[gpstk] 02/09: Imported Upstream version 1.3
Bas Couwenberg
sebastic at debian.org
Sat Jul 9 21:51:09 UTC 2016
This is an automated email from the git hooks/post-receive script.
sebastic pushed a commit to branch master
in repository gpstk.
commit 1b4eaa969cd03e30656a6cc10a94b9ffdb714779
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date: Sat Jun 4 19:28:08 2016 +0200
Imported Upstream version 1.3
---
dev/AUTHORS | 32 +
{trunk => dev}/COPYING | 0
dev/ChangeLog | 442 +
dev/Doxyfile | 1177 +
dev/INSTALL | 386 +
dev/Jamfile | 11 +
dev/Jamrules | 315 +
dev/Makefile.am | 3 +
dev/NEWS | 20 +
dev/README | 98 +
.../DataAvailability/DataAvailabilityAnalyzer.cpp | 760 +
.../DataAvailability/DataAvailabilityAnalyzer.hpp | 200 +
dev/apps/DataAvailability/Jamfile | 7 +
dev/apps/DataAvailability/Makefile.am | 7 +
dev/apps/DataAvailability/daa.cpp | 64 +
dev/apps/Jamfile | 23 +
dev/apps/MDPtools/BELogEntry.cpp | 64 +
dev/apps/MDPtools/BELogEntry.hpp | 51 +
dev/apps/MDPtools/Histogram.hpp | 74 +
dev/apps/MDPtools/Jamfile | 23 +
dev/apps/MDPtools/MDPProcessors.cpp | 337 +
dev/apps/MDPtools/MDPProcessors.hpp | 130 +
dev/apps/MDPtools/Makefile.am | 13 +
dev/apps/MDPtools/NavProc.cpp | 278 +
dev/apps/MDPtools/NavProc.hpp | 72 +
dev/apps/MDPtools/SummaryProc.cpp | 559 +
dev/apps/MDPtools/SummaryProc.hpp | 70 +
dev/apps/MDPtools/TrackProc.cpp | 142 +
dev/apps/MDPtools/TrackProc.hpp | 37 +
dev/apps/MDPtools/UniqueAlmStore.cpp | 406 +
dev/apps/MDPtools/UniqueAlmStore.hpp | 93 +
dev/apps/MDPtools/mdp2fic.cpp | 450 +
dev/apps/MDPtools/mdp2rinex.cpp | 355 +
dev/apps/MDPtools/mdpscreen/Jamfile | 11 +
dev/apps/MDPtools/mdpscreen/ScreenProc.cpp | 436 +
dev/apps/MDPtools/mdpscreen/ScreenProc.hpp | 75 +
dev/apps/MDPtools/mdpscreen/mdpscreen.cpp | 115 +
dev/apps/MDPtools/mdptool.cpp | 267 +
dev/apps/MDPtools/tcptest.cpp | 86 +
dev/apps/Makefile.am | 4 +
dev/apps/RinexPlot/README | 31 +
{trunk => dev}/apps/RinexPlot/RSW214B.obs | 0
{trunk => dev}/apps/RinexPlot/RinexPlot.bat | 0
dev/apps/RinexPlot/RinexPlot.pl | 3487 ++
{trunk => dev}/apps/RinexPlot/alic0320.04o | 0
{trunk => dev}/apps/RinexPlot/goRP | 0
{trunk => dev}/apps/RinexPlot/goRP.bat | 0
{trunk => dev}/apps/RinexPlot/goRP1 | 0
{trunk => dev}/apps/RinexPlot/goRP1.bat | 0
{trunk => dev}/apps/RinexPlot/positions.txt | 0
dev/apps/Rinextools/EditRinex.cpp | 371 +
dev/apps/Rinextools/Jamfile | 13 +
dev/apps/Rinextools/Makefile.am | 14 +
dev/apps/Rinextools/NavMerge.cpp | 276 +
dev/apps/Rinextools/README | 45 +
dev/apps/Rinextools/ResCor.cpp | 2230 +
dev/apps/Rinextools/RinSum.cpp | 852 +
dev/apps/Rinextools/RinexDump.cpp | 369 +
dev/apps/Rinextools/RinexEditor.cpp | 1467 +
dev/apps/Rinextools/RinexEditor.hpp | 317 +
{trunk => dev}/apps/bindings/DayTime.i | 0
{trunk => dev}/apps/bindings/Exception.i | 0
{trunk => dev}/apps/bindings/FFTextStream.i | 0
{trunk => dev}/apps/bindings/GPSZcount.i | 0
{trunk => dev}/apps/bindings/README | 0
{trunk => dev}/apps/bindings/RinexObsStream.i | 0
{trunk => dev}/apps/bindings/common.i | 0
{trunk => dev}/apps/bindings/gpstk.i | 0
dev/apps/bindings/java/Makefile | 51 +
.../apps/bindings/java/examples/example1.java | 0
dev/apps/bindings/octave/Makefile | 29 +
.../apps/bindings/octave/calculatePosition.cpp | 0
.../apps/bindings/octave/readRinexObsFast.cpp | 0
.../apps/bindings/octave/readRinexObsGeom.cpp | 0
dev/apps/bindings/perl/Makefile | 50 +
.../apps/bindings/python/DayTimeException.i | 0
{trunk => dev}/apps/bindings/python/Developer.txt | 0
.../apps/bindings/python/ExtraWaveFact.i | 0
{trunk => dev}/apps/bindings/python/Makefile | 0
{trunk => dev}/apps/bindings/python/RinexDatum.i | 0
{trunk => dev}/apps/bindings/python/RinexObsType.i | 0
{trunk => dev}/apps/bindings/python/common.i | 0
.../apps/bindings/python/examples/example1.html | 0
.../apps/bindings/python/examples/example1.py | 0
.../apps/bindings/python/examples/example2.html | 0
.../apps/bindings/python/examples/example2.py | 0
.../apps/bindings/python/examples/example3.html | 0
.../apps/bindings/python/examples/example3.py | 0
.../apps/bindings/python/gpstkPython.html | 0
{trunk => dev}/apps/bindings/python/gpstkPython.i | 0
.../apps/bindings/python/gpstkPythonUtils.cpp | 0
.../apps/bindings/python/gpstkPythonUtils.i | 0
.../apps/bindings/python/gpstkPython_wrap.cxx | 0
{trunk => dev}/apps/bindings/python/pydoc.py | 0
{trunk => dev}/apps/bindings/python/sensorType.i | 0
{trunk => dev}/apps/bindings/python/streamRead.cpp | 0
{trunk => dev}/apps/bindings/python/streamRead.i | 0
dev/apps/bindings/tcl/Makefile | 49 +
.../apps/bindings/tcl/examples/example1.tcl | 0
.../apps/bindings/tcl/gpstk_wrap_mod.cxx | 0
dev/apps/checktools/CheckFrame.hpp | 121 +
dev/apps/checktools/Jamfile | 12 +
dev/apps/checktools/Makefile.am | 11 +
dev/apps/checktools/ficacheck.cpp | 39 +
dev/apps/checktools/ficcheck.cpp | 39 +
dev/apps/checktools/rmwcheck.cpp | 40 +
dev/apps/checktools/rnwcheck.cpp | 39 +
dev/apps/checktools/rowcheck.cpp | 39 +
dev/apps/converters/Jamfile | 9 +
dev/apps/converters/Makefile.am | 7 +
dev/apps/converters/NovatelData.cpp | 1123 +
dev/apps/converters/NovatelData.hpp | 184 +
dev/apps/converters/NovatelStream.hpp | 97 +
dev/apps/converters/novaRinex.cpp | 1151 +
{trunk => dev}/apps/differential/Jamfile | 0
dev/apps/differential/Makefile.am | 7 +
dev/apps/differential/vecsol.1 | 118 +
dev/apps/differential/vecsol.conf | 11 +
dev/apps/differential/vecsol.cpp | 1303 +
dev/apps/differential/vecsol.eph | 15 +
dev/apps/differential/vecsol.nav | 15 +
{trunk => dev}/apps/differential/vecsol.pdf | Bin
dev/apps/difftools/DiffFrame.hpp | 85 +
dev/apps/difftools/Jamfile | 12 +
dev/apps/difftools/Makefile.am | 11 +
dev/apps/difftools/ephdiff.cpp | 360 +
dev/apps/difftools/ficdiff.cpp | 104 +
dev/apps/difftools/rmwdiff.cpp | 222 +
dev/apps/difftools/rnwdiff.cpp | 206 +
dev/apps/difftools/rowdiff.cpp | 204 +
dev/apps/filetools/Jamfile | 17 +
dev/apps/filetools/Makefile.am | 13 +
{trunk => dev}/apps/filetools/RinexThin.cpp | 0
dev/apps/filetools/bc2sp3.cpp | 323 +
dev/apps/filetools/fic2rin.cpp | 126 +
dev/apps/filetools/ficafic.cpp | 90 +
dev/apps/filetools/ficfica.cpp | 90 +
dev/apps/filetools/navdmp.cpp | 430 +
dev/apps/filetools/sp32bc.cpp | 83 +
dev/apps/filetools/sp3version.cpp | 239 +
dev/apps/geomatics/Jamfile | 12 +
dev/apps/geomatics/Makefile.am | 2 +
dev/apps/geomatics/cycleslips/DiscFix.cpp | 1511 +
dev/apps/geomatics/cycleslips/Jamfile | 16 +
dev/apps/geomatics/cycleslips/Makefile.am | 7 +
.../apps/geomatics}/cycleslips/examples/GFP2.gp | 0
.../geomatics}/cycleslips/examples/GFP2_Win.gp | 0
.../apps/geomatics}/cycleslips/examples/GFP3.gp | 0
.../geomatics}/cycleslips/examples/GFP3_Win.gp | 0
.../apps/geomatics}/cycleslips/examples/GFP6.gp | 0
.../geomatics}/cycleslips/examples/GFP6_Win.gp | 0
.../geomatics}/cycleslips/examples/GFRF2G17.jpg | Bin
.../geomatics}/cycleslips/examples/GFRF3G17.jpg | Bin
.../geomatics}/cycleslips/examples/GFRF6G31.jpg | Bin
.../apps/geomatics}/cycleslips/examples/WLSS2.gp | 0
.../geomatics}/cycleslips/examples/WLSS2G17.jpg | Bin
.../geomatics}/cycleslips/examples/WLSS2_Win.gp | 0
.../apps/geomatics}/cycleslips/examples/WLSS3.gp | 0
.../geomatics}/cycleslips/examples/WLSS3G17.jpg | Bin
.../geomatics}/cycleslips/examples/WLSS3_Win.gp | 0
.../apps/geomatics}/cycleslips/examples/WLSS6.gp | 0
.../geomatics}/cycleslips/examples/WLSS6G31.jpg | Bin
.../geomatics}/cycleslips/examples/WLSS6_Win.gp | 0
.../cycleslips/examples/chmp0110.02o.G31 | 0
.../apps/geomatics}/cycleslips/examples/df.inp | 0
.../geomatics}/cycleslips/examples/df_occult.inp | 0
.../cycleslips/examples/eusk2950.01o.G17 | 0
.../cycleslips/examples/euskCorrected.jpg | Bin
.../apps/geomatics}/cycleslips/examples/goDF1 | 0
.../apps/geomatics}/cycleslips/examples/goDF1.bat | 0
.../apps/geomatics}/cycleslips/examples/goDF2 | 0
.../apps/geomatics}/cycleslips/examples/goDF2.bat | 0
.../geomatics}/cycleslips/examples/mjd2gps.awk | 0
dev/apps/geomatics/kalman/Jamfile | 20 +
dev/apps/geomatics/kalman/Makefile.am | 12 +
dev/apps/geomatics/kalman/mergeSRI.cpp | 180 +
dev/apps/geomatics/kalman/tnl.cpp | 105 +
dev/apps/geomatics/kalman/tsrif.cpp | 1430 +
dev/apps/geomatics/kalman/tsrifsu.cpp | 441 +
dev/apps/geomatics/kalman/tsriftu.cpp | 247 +
dev/apps/geomatics/lib/DCinternals.hpp | 320 +
dev/apps/geomatics/lib/DDid.cpp | 264 +
dev/apps/geomatics/lib/DDid.hpp | 143 +
dev/apps/geomatics/lib/DiscCorr.cpp | 2559 +
dev/apps/geomatics/lib/DiscCorr.hpp | 82 +
dev/apps/geomatics/lib/EarthOrientation.cpp | 535 +
dev/apps/geomatics/lib/EarthOrientation.hpp | 286 +
dev/apps/geomatics/lib/GDCconfiguration.cpp | 204 +
dev/apps/geomatics/lib/GDCconfiguration.hpp | 94 +
dev/apps/geomatics/lib/GSatID.cpp | 51 +
dev/apps/geomatics/lib/GSatID.hpp | 197 +
dev/apps/geomatics/lib/GeodeticFrames.cpp | 2157 +
dev/apps/geomatics/lib/GeodeticFrames.hpp | 483 +
dev/apps/geomatics/lib/Jamfile | 21 +
dev/apps/geomatics/lib/Makefile.am | 7 +
dev/apps/geomatics/lib/Namelist.cpp | 472 +
dev/apps/geomatics/lib/Namelist.hpp | 223 +
dev/apps/geomatics/lib/PhaseWindup.cpp | 407 +
dev/apps/geomatics/lib/PhaseWindup.hpp | 59 +
dev/apps/geomatics/lib/PreciseRange.cpp | 201 +
dev/apps/geomatics/lib/PreciseRange.hpp | 124 +
dev/apps/geomatics/lib/RobustStats.cpp | 328 +
dev/apps/geomatics/lib/RobustStats.hpp | 477 +
dev/apps/geomatics/lib/SRI.cpp | 951 +
dev/apps/geomatics/lib/SRI.hpp | 425 +
dev/apps/geomatics/lib/SRIFilter.cpp | 1200 +
dev/apps/geomatics/lib/SRIFilter.hpp | 519 +
dev/apps/geomatics/lib/SatPass.cpp | 292 +
dev/apps/geomatics/lib/SatPass.hpp | 214 +
dev/apps/geomatics/lib/format.cpp | 57 +
dev/apps/geomatics/lib/format.hpp | 73 +
dev/apps/geomatics/lib/index.hpp | 87 +
dev/apps/geomatics/lib/random.cpp | 170 +
dev/apps/geomatics/lib/random.hpp | 52 +
dev/apps/geomatics/relposition/ClockModel.cpp | 77 +
dev/apps/geomatics/relposition/CommandInput.cpp | 1451 +
dev/apps/geomatics/relposition/CommandInput.hpp | 137 +
.../geomatics/relposition/ComputeRAIMSolution.cpp | 212 +
dev/apps/geomatics/relposition/Configure.cpp | 241 +
dev/apps/geomatics/relposition/DDBase.cpp | 278 +
dev/apps/geomatics/relposition/DDBase.hpp | 126 +
dev/apps/geomatics/relposition/DataOutput.cpp | 338 +
dev/apps/geomatics/relposition/DataStructures.cpp | 134 +
dev/apps/geomatics/relposition/DataStructures.hpp | 176 +
.../geomatics/relposition/DoubleDifference.cpp | 426 +
dev/apps/geomatics/relposition/EditDDs.cpp | 788 +
.../geomatics/relposition/EditRawDataBuffers.cpp | 216 +
dev/apps/geomatics/relposition/ElevationMask.cpp | 135 +
.../geomatics/relposition/EphemerisImprovement.cpp | 154 +
dev/apps/geomatics/relposition/Estimation.cpp | 1611 +
dev/apps/geomatics/relposition/Jamfile | 27 +
dev/apps/geomatics/relposition/Makefile.am | 17 +
dev/apps/geomatics/relposition/ProcessRawData.cpp | 371 +
dev/apps/geomatics/relposition/ReadObsFiles.cpp | 229 +
dev/apps/geomatics/relposition/ReadRawData.cpp | 367 +
dev/apps/geomatics/relposition/Synchronization.cpp | 409 +
dev/apps/geomatics/relposition/Timetable.cpp | 845 +
dev/apps/geomatics/relposition/constants.hpp | 88 +
dev/apps/geomatics/relposition/ddmerge.cpp | 299 +
dev/apps/geomatics/relposition/doc/CodePlan.pdf | Bin 0 -> 248552 bytes
.../geomatics/relposition/doc/DDBaseCmdLineRef.pdf | Bin 0 -> 93250 bytes
dev/apps/geomatics/relposition/doc/DDBaseDoc.pdf | Bin 0 -> 301018 bytes
.../geomatics/relposition/doc/SimpleBasePlan.pdf | Bin 0 -> 104247 bytes
dev/apps/geomatics/robust/Jamfile | 15 +
dev/apps/geomatics/robust/Makefile.am | 7 +
dev/apps/geomatics/robust/rstats.cpp | 344 +
dev/apps/ionosphere/IonoBias.cpp | 1666 +
dev/apps/ionosphere/Jamfile | 10 +
dev/apps/ionosphere/Makefile.am | 8 +
dev/apps/ionosphere/README | 15 +
dev/apps/ionosphere/TECMaps.cpp | 1479 +
dev/apps/ionosphere/VTECMap.cpp | 479 +
dev/apps/ionosphere/VTECMap.hpp | 249 +
{trunk => dev}/apps/ionosphere/example/README | 0
{trunk => dev}/apps/ionosphere/example/bias.inp | 0
{trunk => dev}/apps/ionosphere/example/getigs | 0
{trunk => dev}/apps/ionosphere/example/gobias | 0
{trunk => dev}/apps/ionosphere/example/gomaps | 0
{trunk => dev}/apps/ionosphere/example/gopre | 0
{trunk => dev}/apps/ionosphere/example/list.files | 0
{trunk => dev}/apps/ionosphere/example/maps.inp | 0
{trunk => dev}/apps/ionosphere/example/plotall.pl | 0
.../apps/ionosphere/example/preprocess.pl | 0
{trunk => dev}/apps/ionosphere/example/see | 0
{trunk => dev}/apps/mergetools/Jamfile | 0
dev/apps/mergetools/Makefile.am | 10 +
dev/apps/mergetools/MergeFrame.hpp | 94 +
dev/apps/mergetools/mergeFIC.cpp | 110 +
dev/apps/mergetools/mergeRinMet.cpp | 124 +
dev/apps/mergetools/mergeRinNav.cpp | 127 +
dev/apps/mergetools/mergeRinObs.cpp | 127 +
dev/apps/multipath/Jamfile | 6 +
dev/apps/multipath/Makefile.am | 7 +
dev/apps/multipath/ObsArray.cpp | 390 +
dev/apps/multipath/ObsArray.hpp | 146 +
dev/apps/multipath/SparseBinnedStats.hpp | 106 +
dev/apps/multipath/ValarrayUtils.cpp | 15 +
dev/apps/multipath/ValarrayUtils.hpp | 117 +
dev/apps/multipath/mpsolve.cpp | 343 +
dev/apps/multipath/testObsArray.cpp | 80 +
dev/apps/multipath/testSparseBinnedStats.cpp | 59 +
dev/apps/multipath/testValarrayUtils.cpp | 25 +
dev/apps/positioning/Jamfile | 9 +
dev/apps/positioning/Makefile.am | 10 +
dev/apps/positioning/PRSolve.cpp | 2107 +
{trunk => dev}/apps/positioning/doc/brdc0200.05n | 0
{trunk => dev}/apps/positioning/doc/nga13063.apc | 0
{trunk => dev}/apps/positioning/doc/nga13064.apc | 0
{trunk => dev}/apps/positioning/doc/nga13065.apc | 0
.../apps/positioning/doc/rinexpvt-manual.pdf | Bin
.../apps/positioning/doc/rinexpvt-manual.tm | 0
{trunk => dev}/apps/positioning/doc/usno0200.05m | 0
{trunk => dev}/apps/positioning/doc/usno0200.05o | 0
dev/apps/positioning/examples/brdc3040.03n | 2992 ++
dev/apps/positioning/examples/grca304a.03o | 6522 +++
.../positioning/examples/positions.PRSolve.jpg | Bin 0 -> 48872 bytes
.../positioning/examples/positions.posInterp.jpg | Bin 0 -> 49133 bytes
dev/apps/positioning/examples/rd.pi.gp | 7 +
dev/apps/positioning/examples/rd.prs.gp | 7 +
dev/apps/positioning/examples/testpi | 18 +
dev/apps/positioning/posInterp.cpp | 1119 +
dev/apps/positioning/poscvt.cpp | 216 +
dev/apps/positioning/rinexpvt.cpp | 563 +
dev/apps/positioning/rinexpvt.hpp | 118 +
dev/apps/qa/Expression.cpp | 459 +
dev/apps/qa/Expression.hpp | 245 +
dev/apps/qa/Jamfile | 8 +
dev/apps/qa/LinearCombination.cpp | 94 +
dev/apps/qa/LinearCombination.hpp | 100 +
dev/apps/qa/Makefile.am | 8 +
dev/apps/qa/obsrip.cpp | 45 +
dev/apps/receiver/AshtechMessage.cpp | 434 +
dev/apps/receiver/AshtechMessage.hpp | 193 +
dev/apps/receiver/Jamfile | 13 +
dev/apps/receiver/Makefile.am | 9 +
dev/apps/receiver/ScreenControl.cpp | 19 +
dev/apps/receiver/ScreenControl.hpp | 20 +
dev/apps/receiver/TODO.txt | 23 +
dev/apps/receiver/ash2mdp.cpp | 273 +
dev/apps/receiver/getUnixSerialInfo.cpp | 24 +
dev/apps/receiver/rfw.cpp | 156 +
dev/apps/receiver/rinex.nav.template | 3 +
dev/apps/receiver/rinex.obs.template | 14 +
dev/apps/receiver/rtAshtech.cpp | 502 +
dev/apps/reszilla/CycleSlipList.cpp | 87 +
dev/apps/reszilla/CycleSlipList.hpp | 64 +
dev/apps/reszilla/DDEpoch.cpp | 830 +
dev/apps/reszilla/DDEpoch.hpp | 126 +
dev/apps/reszilla/ElevationRange.hpp | 72 +
dev/apps/reszilla/Jamfile | 36 +
dev/apps/reszilla/Makefile.am | 7 +
dev/apps/reszilla/OrdApp.cpp | 267 +
dev/apps/reszilla/OrdApp.hpp | 69 +
dev/apps/reszilla/OrdEngine.cpp | 268 +
dev/apps/reszilla/OrdEngine.hpp | 83 +
dev/apps/reszilla/PhaseCleaner.cpp | 806 +
dev/apps/reszilla/PhaseCleaner.hpp | 159 +
dev/apps/reszilla/PhaseResidual.cpp | 341 +
dev/apps/reszilla/PhaseResidual.hpp | 134 +
dev/apps/reszilla/RobustLinearEstimator.cpp | 218 +
dev/apps/reszilla/RobustLinearEstimator.hpp | 85 +
dev/apps/reszilla/SvElevationMap.cpp | 72 +
dev/apps/reszilla/SvElevationMap.hpp | 57 +
dev/apps/reszilla/ddGen.cpp | 510 +
dev/apps/reszilla/ddPlot | 400 +
dev/apps/reszilla/ordClock.cpp | 176 +
dev/apps/reszilla/ordEdit.cpp | 379 +
dev/apps/reszilla/ordGen.cpp | 263 +
dev/apps/reszilla/ordLinEst.cpp | 228 +
dev/apps/reszilla/ordPlot | 329 +
dev/apps/reszilla/ordStats.cpp | 329 +
dev/apps/swrx/CACodeGenerator.hpp | 74 +
dev/apps/swrx/CCReplica.cpp | 174 +
dev/apps/swrx/CCReplica.hpp | 121 +
dev/apps/swrx/CodeGenerator.hpp | 64 +
dev/apps/swrx/ConstLinearRecurrentSequence.cpp | 50 +
dev/apps/swrx/ConstLinearRecurrentSequence.hpp | 71 +
dev/apps/swrx/EMLTracker.cpp | 247 +
dev/apps/swrx/EMLTracker.hpp | 139 +
dev/apps/swrx/IQStream.cpp | 324 +
dev/apps/swrx/IQStream.hpp | 219 +
dev/apps/swrx/Jamfile | 23 +
dev/apps/swrx/NAVCodeGenerator.hpp | 42 +
dev/apps/swrx/NavFramer.cpp | 190 +
dev/apps/swrx/NavFramer.hpp | 94 +
dev/apps/swrx/P0CodeGenerator.hpp | 70 +
dev/apps/swrx/PCodeGenerator.hpp | 108 +
dev/apps/swrx/SVSource.hpp | 183 +
dev/apps/swrx/SimpleCorrelator.hpp | 67 +
dev/apps/swrx/codeDump.cpp | 163 +
dev/apps/swrx/complex_math.h | 73 +
dev/apps/swrx/corltr.cpp | 338 +
dev/apps/swrx/gpsSim.cpp | 387 +
dev/apps/swrx/iqdump.cpp | 192 +
dev/apps/swrx/normal.cpp | 67 +
dev/apps/swrx/normal.hpp | 28 +
dev/apps/swrx/plot | 161 +
dev/apps/swrx/simpleNav.cpp | 179 +
dev/apps/swrx/tracker.cpp | 309 +
dev/apps/time/Jamfile | 7 +
dev/apps/time/Makefile.am | 8 +
dev/apps/time/README.txt | 94 +
dev/apps/time/calgps.cpp | 150 +
dev/apps/time/timeconvert.cpp | 229 +
dev/apps/visibility/Jamfile | 13 +
dev/apps/visibility/Makefile.am | 8 +
{trunk => dev}/apps/visibility/UsingWhereSat.doc | Bin
dev/apps/visibility/WhereSat.cpp | 286 +
dev/apps/visibility/findMoreThan12.cpp | 189 +
dev/autogen.sh | 7 +
dev/config.guess | 1459 +
dev/config.sub | 1566 +
dev/configure.ac | 69 +
dev/depcomp | 529 +
dev/examples/Jamfile | 21 +
dev/examples/Makefile.am | 14 +
{trunk => dev}/examples/bahr1620.04m | 0
{trunk => dev}/examples/bahr1620.04n | 0
{trunk => dev}/examples/bahr1620.04o | 0
dev/examples/bell030a.02o | 3185 ++
dev/examples/brdc0300.02n | 2960 ++
dev/examples/ebre030a.02o | 3071 ++
{trunk => dev}/examples/example1.cpp | 0
{trunk => dev}/examples/example2.cpp | 0
dev/examples/example3.cpp | 122 +
dev/examples/example4.cpp | 276 +
dev/examples/example5.cpp | 295 +
dev/examples/example6.cpp | 124 +
dev/examples/example7.cpp | 741 +
dev/install-sh | 323 +
dev/lib/Jamfile | 5 +
dev/lib/Makefile.am | 3 +
dev/lib/rxio/AshtechALB.cpp | 115 +
dev/lib/rxio/AshtechALB.hpp | 79 +
dev/lib/rxio/AshtechData.cpp | 169 +
dev/lib/rxio/AshtechData.hpp | 134 +
dev/lib/rxio/AshtechEPB.cpp | 115 +
dev/lib/rxio/AshtechEPB.hpp | 80 +
dev/lib/rxio/AshtechMBEN.cpp | 252 +
dev/lib/rxio/AshtechMBEN.hpp | 113 +
dev/lib/rxio/AshtechPBEN.cpp | 157 +
dev/lib/rxio/AshtechPBEN.hpp | 92 +
dev/lib/rxio/AshtechStream.hpp | 82 +
dev/lib/rxio/DataStatus.hpp | 69 +
dev/lib/rxio/DeviceStream.hpp | 230 +
dev/lib/rxio/EphReader.cpp | 170 +
dev/lib/rxio/EphReader.hpp | 75 +
dev/lib/rxio/FDStreamBuff.cpp | 181 +
dev/lib/rxio/FDStreamBuff.hpp | 78 +
dev/lib/rxio/FFIdentifier.cpp | 223 +
dev/lib/rxio/FFIdentifier.hpp | 79 +
dev/lib/rxio/Jamfile | 27 +
dev/lib/rxio/MDPHeader.cpp | 405 +
dev/lib/rxio/MDPHeader.hpp | 142 +
dev/lib/rxio/MDPNavSubframe.cpp | 312 +
dev/lib/rxio/MDPNavSubframe.hpp | 135 +
dev/lib/rxio/MDPObsEpoch.cpp | 320 +
dev/lib/rxio/MDPObsEpoch.hpp | 125 +
dev/lib/rxio/MDPPVTSolution.cpp | 152 +
dev/lib/rxio/MDPPVTSolution.hpp | 91 +
dev/lib/rxio/MDPSelftestStatus.cpp | 136 +
dev/lib/rxio/MDPSelftestStatus.hpp | 90 +
dev/lib/rxio/MDPStream.hpp | 93 +
dev/lib/rxio/Makefile.am | 17 +
dev/lib/rxio/MetReader.cpp | 73 +
dev/lib/rxio/MetReader.hpp | 68 +
dev/lib/rxio/ObsReader.cpp | 169 +
dev/lib/rxio/ObsReader.hpp | 81 +
dev/lib/rxio/ObsUtils.cpp | 301 +
dev/lib/rxio/ObsUtils.hpp | 96 +
dev/lib/rxio/RinexConverters.cpp | 283 +
dev/lib/rxio/RinexConverters.hpp | 70 +
dev/lib/rxio/TCPStream.hpp | 81 +
dev/lib/rxio/TCPStreamBuff.cpp | 145 +
dev/lib/rxio/TCPStreamBuff.hpp | 71 +
dev/lib/rxio/miscdefs.hpp | 22 +
dev/lib/rxio/miscenum.hpp | 134 +
dev/ltmain.sh | 6496 +++
dev/missing | 357 +
dev/oldtests/AnotherFileFilterTest.cpp | 151 +
dev/oldtests/DayTimeConversionTest.cpp | 260 +
dev/oldtests/DayTimeIncrementTest.cpp | 131 +
dev/oldtests/DayTimeIncrementTest2.cpp | 104 +
dev/oldtests/DayTimeToleranceTest.cpp | 103 +
dev/oldtests/EphComp.cpp | 107 +
{trunk/tests => dev/oldtests}/EphComp.gp | 0
{trunk/tests => dev/oldtests}/EphCompWin.gp | 0
dev/oldtests/FileSpecTest.cpp | 116 +
dev/oldtests/FileSpecTest.pl | 15 +
dev/oldtests/Jamfile | 64 +
dev/oldtests/Makefile.am | 37 +
{trunk/tests => dev/oldtests}/MatrixTest.cpp | 0
dev/oldtests/MinSfTest.cpp | 309 +
dev/oldtests/Rinex_dl.pl | 111 +
{trunk/tests => dev/oldtests}/RungeKuttaTest.cpp | 0
dev/oldtests/TimeTest.cpp | 446 +
dev/oldtests/Xbegweek.cpp | 135 +
dev/oldtests/Xendweek.cpp | 158 +
dev/oldtests/configfile.txt | 52 +
.../tests => dev/oldtests}/configfile_readme.txt | 0
dev/oldtests/data/405_077A.02M | 108 +
{trunk/tests => dev/oldtests}/data/MatrixTest.ref | 0
.../oldtests}/data/MatrixTest.ref.Win32 | 0
{trunk/tests => dev/oldtests}/data/Xbegweek.can | 0
{trunk/tests => dev/oldtests}/data/Xendweek.can | 0
{trunk/tests => dev/oldtests}/data/anotsym.dat | 0
{trunk/tests => dev/oldtests}/data/cov.dat | 0
{trunk/tests => dev/oldtests}/data/dia.dat | 0
{trunk/tests => dev/oldtests}/data/lt.dat | 0
dev/oldtests/data/nga12600.apc | 5303 ++
dev/oldtests/data/nga12601.apc | 5303 ++
{trunk/tests => dev/oldtests}/data/partials.dat | 0
.../tests => dev/oldtests}/data/positiontest.ref | 0
{trunk/tests => dev/oldtests}/data/squ.dat | 0
.../tests => dev/oldtests}/data/stringutiltest.ref | 0
{trunk/tests => dev/oldtests}/data/sym.dat | 0
{trunk/tests => dev/oldtests}/data/tmatrix.dat | 0
{trunk/tests => dev/oldtests}/data/ut.dat | 0
dev/oldtests/daytimetest.cpp | 80 +
dev/oldtests/delFileSpecTestDirs.pl | 25 +
dev/oldtests/exceptiontest.cpp | 52 +
dev/oldtests/genFileSpecTestDirs.pl | 32 +
dev/oldtests/gpszcounttest.cpp | 184 +
{trunk/tests => dev/oldtests}/petest.cpp | 0
dev/oldtests/positiontest.cpp | 234 +
.../tests => dev/oldtests}/rinex_met_livetest.pl | 0
dev/oldtests/rinex_met_read_write.cpp | 63 +
dev/oldtests/rinex_met_test.cpp | 59 +
dev/oldtests/rinex_nav_read_write.cpp | 61 +
dev/oldtests/rinex_nav_test.cpp | 60 +
dev/oldtests/rinex_obs_read_write.cpp | 65 +
dev/oldtests/rinex_obs_test.cpp | 61 +
{trunk/tests => dev/oldtests}/runAllTests | 0
dev/oldtests/runAllTests.bat | 72 +
dev/oldtests/stringutiltest.cpp | 470 +
dev/oldtests/svnKeyWordTest.txt | 8 +
dev/oldtests/testExpression.cpp | 117 +
dev/oldtests/testscript.pl | 184 +
.../tests => dev/oldtests}/testscript_readme.txt | 0
dev/src/ANSITime.cpp | 148 +
dev/src/ANSITime.hpp | 174 +
dev/src/AlmOrbit.cpp | 284 +
dev/src/AlmOrbit.hpp | 142 +
dev/src/AlmanacStore.cpp | 186 +
dev/src/AlmanacStore.hpp | 135 +
dev/src/BCEphemerisStore.cpp | 489 +
dev/src/BCEphemerisStore.hpp | 285 +
dev/src/Bancroft.cpp | 169 +
dev/src/Bancroft.hpp | 135 +
dev/src/BasicFramework.cpp | 132 +
dev/src/BasicFramework.hpp | 184 +
dev/src/BinUtils.cpp | 61 +
dev/src/BinUtils.hpp | 417 +
dev/src/BinexData.cpp | 1689 +
dev/src/BinexData.hpp | 933 +
dev/src/BinexFilterOperators.hpp | 41 +
dev/src/BinexStream.hpp | 55 +
dev/src/BivarStats.hpp | 435 +
dev/src/CheckPRData.hpp | 100 +
dev/src/CivilTime.cpp | 322 +
dev/src/CivilTime.hpp | 191 +
dev/src/ClockModel.hpp | 77 +
dev/src/CodeBuffer.cpp | 70 +
dev/src/CodeBuffer.hpp | 175 +
dev/src/CodeSmoother.hpp | 415 +
dev/src/CommandOption.cpp | 396 +
dev/src/CommandOption.hpp | 631 +
dev/src/CommandOptionParser.cpp | 360 +
dev/src/CommandOptionParser.hpp | 156 +
dev/src/CommandOptionWithCommonTimeArg.cpp | 82 +
dev/src/CommandOptionWithCommonTimeArg.hpp | 113 +
dev/src/CommandOptionWithPositionArg.cpp | 91 +
dev/src/CommandOptionWithPositionArg.hpp | 131 +
dev/src/CommandOptionWithTimeArg.cpp | 109 +
dev/src/CommandOptionWithTimeArg.hpp | 162 +
dev/src/CommonTime.cpp | 338 +
dev/src/CommonTime.hpp | 356 +
dev/src/ComputeCombination.hpp | 154 +
dev/src/ComputeIURAWeights.hpp | 304 +
dev/src/ComputeLC.hpp | 120 +
dev/src/ComputeLI.hpp | 116 +
dev/src/ComputeLdelta.hpp | 120 +
dev/src/ComputeMOPSWeights.hpp | 317 +
dev/src/ComputeMelbourneWubbena.hpp | 165 +
dev/src/ComputePC.hpp | 129 +
dev/src/ComputePI.hpp | 121 +
dev/src/ComputePdelta.hpp | 125 +
dev/src/DOP.cpp | 71 +
dev/src/DOP.hpp | 97 +
dev/src/DataHeaders.cpp | 152 +
dev/src/DataHeaders.hpp | 542 +
dev/src/DataStructures.cpp | 399 +
dev/src/DataStructures.hpp | 1608 +
dev/src/DayTime.cpp | 1922 +
dev/src/DayTime.hpp | 1217 +
dev/src/DeltaOp.cpp | 96 +
dev/src/DeltaOp.hpp | 375 +
dev/src/ECEF.cpp | 104 +
dev/src/ECEF.hpp | 110 +
dev/src/EngAlmanac.cpp | 540 +
dev/src/EngAlmanac.hpp | 321 +
dev/src/EngEphemeris.cpp | 1386 +
dev/src/EngEphemeris.hpp | 496 +
dev/src/EngNav.cpp | 686 +
dev/src/EngNav.hpp | 284 +
dev/src/EphemerisRange.cpp | 227 +
dev/src/EphemerisRange.hpp | 114 +
dev/src/EphemerisStore.hpp | 129 +
dev/src/EpochClockModel.hpp | 110 +
dev/src/Exception.cpp | 222 +
dev/src/Exception.hpp | 479 +
dev/src/Expression.cpp | 606 +
dev/src/Expression.hpp | 329 +
dev/src/ExtractC1.hpp | 82 +
dev/src/ExtractCombinationData.hpp | 149 +
dev/src/ExtractD1.hpp | 82 +
dev/src/ExtractD2.hpp | 82 +
dev/src/ExtractData.hpp | 175 +
dev/src/ExtractL1.hpp | 82 +
dev/src/ExtractL2.hpp | 82 +
dev/src/ExtractLC.hpp | 94 +
dev/src/ExtractP1.hpp | 82 +
dev/src/ExtractP2.hpp | 82 +
dev/src/ExtractPC.hpp | 97 +
dev/src/FFBinaryStream.hpp | 174 +
dev/src/FFData.cpp | 101 +
dev/src/FFData.hpp | 191 +
dev/src/FFStream.cpp | 278 +
dev/src/FFStream.hpp | 211 +
dev/src/FFStreamError.hpp | 65 +
dev/src/FFTextStream.hpp | 222 +
dev/src/FICAStream.hpp | 92 +
dev/src/FICBase.hpp | 69 +
dev/src/FICData.cpp | 1168 +
dev/src/FICData.hpp | 189 +
dev/src/FICData109.cpp | 88 +
dev/src/FICData109.hpp | 77 +
dev/src/FICData162.cpp | 82 +
dev/src/FICData162.hpp | 78 +
dev/src/FICData62.cpp | 111 +
dev/src/FICData62.hpp | 82 +
dev/src/FICData9.cpp | 133 +
dev/src/FICData9.hpp | 85 +
dev/src/FICFilterOperators.hpp | 303 +
dev/src/FICHeader.cpp | 142 +
dev/src/FICHeader.hpp | 113 +
dev/src/FICStream.hpp | 96 +
dev/src/FICStreamBase.hpp | 87 +
dev/src/FileFilter.hpp | 411 +
dev/src/FileFilterFrame.hpp | 378 +
dev/src/FileFilterFrameWithHeader.hpp | 433 +
dev/src/FileHunter.cpp | 698 +
dev/src/FileHunter.hpp | 229 +
dev/src/FileSpec.cpp | 537 +
dev/src/FileSpec.hpp | 319 +
dev/src/FileStore.hpp | 121 +
dev/src/FileUtils.hpp | 156 +
dev/src/GPSEpochWeekSecond.cpp | 214 +
dev/src/GPSEpochWeekSecond.hpp | 175 +
dev/src/GPSGeoid.hpp | 89 +
dev/src/GPSWeekSecond.cpp | 196 +
dev/src/GPSWeekSecond.hpp | 176 +
dev/src/GPSWeekZcount.cpp | 194 +
dev/src/GPSWeekZcount.hpp | 173 +
dev/src/GPSZcount.cpp | 405 +
dev/src/GPSZcount.hpp | 376 +
dev/src/GPSZcount29.cpp | 186 +
dev/src/GPSZcount29.hpp | 173 +
dev/src/GPSZcount32.cpp | 168 +
dev/src/GPSZcount32.hpp | 170 +
dev/src/GenXSequence.cpp | 215 +
dev/src/GenXSequence.hpp | 161 +
dev/src/Geodetic.cpp | 201 +
dev/src/Geodetic.hpp | 134 +
dev/src/GeoidModel.hpp | 106 +
dev/src/IonoModel.cpp | 182 +
dev/src/IonoModel.hpp | 161 +
dev/src/IonoModelStore.cpp | 95 +
dev/src/IonoModelStore.hpp | 117 +
dev/src/Jamfile | 140 +
dev/src/JulianDate.cpp | 158 +
dev/src/JulianDate.hpp | 170 +
dev/src/LICSDetector.hpp | 422 +
dev/src/LinearClockModel.cpp | 173 +
dev/src/LinearClockModel.hpp | 104 +
dev/src/LoopedFramework.cpp | 68 +
dev/src/LoopedFramework.hpp | 109 +
dev/src/MJD.cpp | 161 +
dev/src/MJD.hpp | 170 +
dev/src/MOPSWeight.cpp | 240 +
dev/src/MOPSWeight.hpp | 148 +
dev/src/MSCData.cpp | 144 +
dev/src/MSCData.hpp | 114 +
dev/src/MSCStream.hpp | 87 +
dev/src/MWCSDetector.hpp | 421 +
dev/src/Makefile.am | 82 +
dev/src/MathBase.hpp | 58 +
dev/src/Matrix.hpp | 712 +
dev/src/MatrixBase.hpp | 422 +
dev/src/MatrixBaseOperators.hpp | 171 +
dev/src/MatrixFunctors.hpp | 762 +
dev/src/MatrixImplementation.hpp | 139 +
dev/src/MatrixOperators.hpp | 774 +
dev/src/MiscMath.hpp | 222 +
dev/src/ModeledPR.cpp | 122 +
dev/src/ModeledPR.hpp | 442 +
dev/src/ModeledPseudorangeBase.hpp | 130 +
dev/src/ModeledReferencePR.cpp | 410 +
dev/src/ModeledReferencePR.hpp | 615 +
dev/src/NablaOp.cpp | 106 +
dev/src/NablaOp.hpp | 284 +
dev/src/ORDEpoch.hpp | 113 +
dev/src/ObsClockModel.cpp | 183 +
dev/src/ObsClockModel.hpp | 224 +
dev/src/ObsEpochMap.cpp | 76 +
dev/src/ObsEpochMap.hpp | 80 +
dev/src/ObsID.cpp | 170 +
dev/src/ObsID.hpp | 193 +
dev/src/ObsRngDev.cpp | 330 +
dev/src/ObsRngDev.hpp | 326 +
dev/src/OneFreqCSDetector.hpp | 513 +
dev/src/PCSmoother.hpp | 342 +
dev/src/PCodeConst.hpp | 100 +
dev/src/PRSolution.cpp | 711 +
dev/src/PRSolution.hpp | 282 +
dev/src/PolyFit.hpp | 266 +
dev/src/Position.cpp | 1540 +
dev/src/Position.hpp | 922 +
dev/src/RACRotation.cpp | 142 +
dev/src/RACRotation.hpp | 62 +
dev/src/README | 216 +
dev/src/RTFileFrame.hpp | 601 +
dev/src/RinexEphemerisStore.cpp | 104 +
dev/src/RinexEphemerisStore.hpp | 98 +
dev/src/RinexMetBase.hpp | 75 +
dev/src/RinexMetData.cpp | 284 +
dev/src/RinexMetData.hpp | 149 +
dev/src/RinexMetFilterOperators.hpp | 249 +
dev/src/RinexMetHeader.cpp | 511 +
dev/src/RinexMetHeader.hpp | 268 +
dev/src/RinexMetStream.hpp | 113 +
dev/src/RinexNavBase.hpp | 75 +
dev/src/RinexNavData.cpp | 575 +
dev/src/RinexNavData.hpp | 254 +
dev/src/RinexNavFilterOperators.hpp | 240 +
dev/src/RinexNavHeader.cpp | 343 +
dev/src/RinexNavHeader.hpp | 165 +
dev/src/RinexNavStream.hpp | 104 +
dev/src/RinexObsBase.hpp | 75 +
dev/src/RinexObsData.cpp | 407 +
dev/src/RinexObsData.hpp | 172 +
dev/src/RinexObsFilterOperators.hpp | 270 +
dev/src/RinexObsHeader.cpp | 1027 +
dev/src/RinexObsHeader.hpp | 373 +
dev/src/RinexObsID.cpp | 64 +
dev/src/RinexObsID.hpp | 70 +
dev/src/RinexObsStream.hpp | 110 +
dev/src/RinexSatID.cpp | 51 +
dev/src/RinexSatID.hpp | 205 +
dev/src/RinexUtilities.cpp | 309 +
dev/src/RinexUtilities.hpp | 110 +
dev/src/RungeKutta4.cpp | 120 +
dev/src/RungeKutta4.hpp | 144 +
dev/src/SEMAlmanacStore.cpp | 107 +
dev/src/SEMAlmanacStore.hpp | 74 +
dev/src/SEMBase.hpp | 78 +
dev/src/SEMData.cpp | 198 +
dev/src/SEMData.hpp | 135 +
dev/src/SEMHeader.cpp | 94 +
dev/src/SEMHeader.hpp | 112 +
dev/src/SEMStream.hpp | 114 +
dev/src/SMODFData.cpp | 328 +
dev/src/SMODFData.hpp | 125 +
dev/src/SMODFStream.hpp | 116 +
dev/src/SP3Base.hpp | 73 +
dev/src/SP3Data.cpp | 317 +
dev/src/SP3Data.hpp | 129 +
dev/src/SP3EphemerisStore.cpp | 140 +
dev/src/SP3EphemerisStore.hpp | 91 +
dev/src/SP3Header.cpp | 330 +
dev/src/SP3Header.hpp | 153 +
dev/src/SP3SatID.cpp | 51 +
dev/src/SP3SatID.hpp | 200 +
dev/src/SP3Stream.hpp | 83 +
dev/src/SVExclusionList.cpp | 346 +
dev/src/SVExclusionList.hpp | 154 +
dev/src/SVPCodeGen.cpp | 112 +
dev/src/SVPCodeGen.hpp | 149 +
dev/src/SatID.hpp | 174 +
dev/src/SimpleFilter.hpp | 320 +
dev/src/SimpleIURAWeight.cpp | 158 +
dev/src/SimpleIURAWeight.hpp | 116 +
dev/src/SimpleKalmanFilter.cpp | 325 +
dev/src/SimpleKalmanFilter.hpp | 379 +
dev/src/SolverBase.hpp | 87 +
dev/src/SolverLMS.cpp | 118 +
dev/src/SolverLMS.hpp | 217 +
dev/src/SolverWMS.cpp | 146 +
dev/src/SolverWMS.hpp | 207 +
dev/src/SourceID.cpp | 97 +
dev/src/SourceID.hpp | 146 +
dev/src/Stats.hpp | 513 +
dev/src/StringUtils.hpp | 2603 +
dev/src/SystemTime.cpp | 59 +
dev/src/SystemTime.hpp | 115 +
dev/src/TabularEphemerisStore.cpp | 265 +
dev/src/TabularEphemerisStore.hpp | 144 +
dev/src/TimeConstants.hpp | 78 +
dev/src/TimeConverters.cpp | 174 +
dev/src/TimeConverters.hpp | 94 +
dev/src/TimeNamedFileStream.hpp | 157 +
dev/src/TimeString.cpp | 724 +
dev/src/TimeString.hpp | 75 +
dev/src/TimeTag.cpp | 171 +
dev/src/TimeTag.hpp | 152 +
dev/src/Triple.cpp | 279 +
dev/src/Triple.hpp | 224 +
dev/src/TropModel.cpp | 2171 +
dev/src/TropModel.hpp | 1435 +
dev/src/TypeID.cpp | 202 +
dev/src/TypeID.hpp | 332 +
dev/src/UnixTime.cpp | 182 +
dev/src/UnixTime.hpp | 193 +
dev/src/ValidType.hpp | 123 +
dev/src/Vector.hpp | 431 +
dev/src/VectorBase.cpp | 38 +
dev/src/VectorBase.hpp | 301 +
dev/src/VectorBaseOperators.hpp | 272 +
dev/src/VectorOperators.hpp | 189 +
dev/src/WGS84Geoid.hpp | 131 +
dev/src/WeightBase.hpp | 70 +
dev/src/WxObsMap.cpp | 243 +
dev/src/WxObsMap.hpp | 174 +
dev/src/X1Sequence.cpp | 161 +
dev/src/X1Sequence.hpp | 134 +
dev/src/X2Sequence.cpp | 239 +
dev/src/X2Sequence.hpp | 296 +
dev/src/XYZ2NED.cpp | 90 +
dev/src/XYZ2NED.hpp | 269 +
dev/src/XYZ2NEU.cpp | 90 +
dev/src/XYZ2NEU.hpp | 270 +
dev/src/Xvt.cpp | 125 +
dev/src/Xvt.hpp | 103 +
dev/src/YDSTime.cpp | 214 +
dev/src/YDSTime.hpp | 174 +
dev/src/YumaAlmanacStore.cpp | 104 +
dev/src/YumaAlmanacStore.hpp | 72 +
dev/src/YumaBase.hpp | 77 +
dev/src/YumaData.cpp | 273 +
dev/src/YumaData.hpp | 141 +
dev/src/YumaHeader.cpp | 66 +
dev/src/YumaHeader.hpp | 106 +
dev/src/YumaStream.hpp | 104 +
dev/src/convhelp.hpp | 135 +
dev/src/geometry.hpp | 71 +
{trunk => dev}/src/getopt.c | 0
{trunk => dev}/src/getopt.h | 0
{trunk => dev}/src/getopt1.c | 0
dev/src/gps_constants.hpp | 67 +
dev/src/gpstkplatform.h | 57 +
dev/src/icd_200_constants.hpp | 183 +
dev/src/mergePCodeWords.h | 52 +
dev/src/regex.c | 4949 ++
{trunk => dev}/src/regex.h | 0
dev/src/stl_helpers.hpp | 129 +
dev/tests/ANSITime/ANSITime.cpp | 1 +
dev/tests/ANSITime/ANSITime.hpp | 1 +
dev/tests/ANSITime/Jamfile | 2 +
dev/tests/ANSITime/Logs/printfOutput | 2 +
dev/tests/ANSITime/xANSITime.cpp | 58 +
dev/tests/ANSITime/xANSITime.hpp | 28 +
dev/tests/ANSITime/xANSITimeM.cpp | 30 +
dev/tests/BCEphemerisStore/BCEphemerisStore.cpp | 1 +
dev/tests/BCEphemerisStore/BCEphemerisStore.hpp | 1 +
dev/tests/BCEphemerisStore/Checks/DumpData0.chk | 4 +
dev/tests/BCEphemerisStore/Checks/DumpData1.chk | 49 +
.../tests/BCEphemerisStore/Checks/DumpData2.chk | 0
.../BCEphemerisStore/Checks/TestRinexDump.dmp | 0
.../BCEphemerisStore/Checks/addEphemerisTest.chk | 5 +
.../BCEphemerisStore/Checks/addToListTest.chk | 1886 +
dev/tests/BCEphemerisStore/Checks/clearTest.chk | 5 +
dev/tests/BCEphemerisStore/Checks/editTest.chk | 33 +
dev/tests/BCEphemerisStore/Checks/findEph1.chk | 46 +
dev/tests/BCEphemerisStore/Checks/findEph15.chk | 46 +
dev/tests/BCEphemerisStore/Checks/findEph32.chk | 46 +
dev/tests/BCEphemerisStore/Checks/findNearTest.chk | 11 +
dev/tests/BCEphemerisStore/Checks/findUserTest.chk | 11 +
dev/tests/BCEphemerisStore/Checks/getPrnXvt1.chk | 1 +
dev/tests/BCEphemerisStore/Checks/getPrnXvt15.chk | 1 +
dev/tests/BCEphemerisStore/Checks/getPrnXvt32.chk | 1 +
dev/tests/BCEphemerisStore/Checks/wiperTest.chk | 31 +
dev/tests/BCEphemerisStore/Checks/wiperTest2.chk | 8 +
dev/tests/BCEphemerisStore/Jamfile | 4 +
dev/tests/BCEphemerisStore/Logs/DumpData.txt | 49 +
dev/tests/BCEphemerisStore/Logs/DumpData0.txt | 4 +
dev/tests/BCEphemerisStore/Logs/DumpData1.txt | 49 +
.../tests/BCEphemerisStore/Logs/DumpData2.txt | 0
dev/tests/BCEphemerisStore/Logs/TestRinex06.031NEW | 347 +
.../BCEphemerisStore/Logs/addEphemerisTest.txt | 5 +
dev/tests/BCEphemerisStore/Logs/addToListTest.txt | 1886 +
dev/tests/BCEphemerisStore/Logs/clearTest.txt | 5 +
dev/tests/BCEphemerisStore/Logs/editTest.txt | 33 +
dev/tests/BCEphemerisStore/Logs/findEph1.txt | 46 +
dev/tests/BCEphemerisStore/Logs/findEph15.txt | 46 +
dev/tests/BCEphemerisStore/Logs/findEph32.txt | 46 +
dev/tests/BCEphemerisStore/Logs/findNearTest.txt | 11 +
dev/tests/BCEphemerisStore/Logs/findUserTest.txt | 11 +
dev/tests/BCEphemerisStore/Logs/getPrnXvt1.txt | 1 +
dev/tests/BCEphemerisStore/Logs/getPrnXvt15.txt | 1 +
dev/tests/BCEphemerisStore/Logs/getPrnXvt2_1.txt | 1 +
dev/tests/BCEphemerisStore/Logs/getPrnXvt2_15.txt | 1 +
dev/tests/BCEphemerisStore/Logs/getPrnXvt2_32.txt | 1 +
dev/tests/BCEphemerisStore/Logs/getPrnXvt32.txt | 1 +
dev/tests/BCEphemerisStore/Logs/s011100a.00nEdit | 233 +
dev/tests/BCEphemerisStore/Logs/wiperTest.txt | 31 +
dev/tests/BCEphemerisStore/Logs/wiperTest2.txt | 8 +
dev/tests/BCEphemerisStore/Makefile | 24 +
dev/tests/BCEphemerisStore/RinexEphemerisStore.cpp | 1 +
dev/tests/BCEphemerisStore/RinexEphemerisStore.hpp | 1 +
dev/tests/BCEphemerisStore/TestRinex06.031 | 339 +
.../BCEphemerisStore/xRinexEphemerisStore.cpp | 658 +
.../BCEphemerisStore/xRinexEphemerisStore.hpp | 57 +
.../BCEphemerisStore/xRinexEphemerisStoreM.cpp | 30 +
dev/tests/BinUtils/BinUtils.cpp | 1 +
dev/tests/BinUtils/BinUtils.hpp | 1 +
dev/tests/BinUtils/Jamfile | 3 +
dev/tests/BinUtils/makefile | 20 +
dev/tests/BinUtils/xBinUtils.cpp | 146 +
dev/tests/BinUtils/xBinUtils.hpp | 30 +
dev/tests/BinUtils/xBinUtilsM.cpp | 30 +
dev/tests/Binex/binex_read_write.cpp | 539 +
dev/tests/Binex/binex_types_test.cpp | 813 +
dev/tests/CivilTime/CivilTime.cpp | 1 +
dev/tests/CivilTime/CivilTime.hpp | 1 +
dev/tests/CivilTime/Jamfile | 2 +
dev/tests/CivilTime/Logs/printfOutput | 4 +
dev/tests/CivilTime/xCivilTime.cpp | 94 +
dev/tests/CivilTime/xCivilTime.hpp | 28 +
dev/tests/CivilTime/xCivilTimeM.cpp | 30 +
dev/tests/CommonTime/CommonTime.cpp | 1 +
dev/tests/CommonTime/CommonTime.hpp | 1 +
dev/tests/CommonTime/Jamfile | 2 +
dev/tests/CommonTime/xCommonTime.cpp | 128 +
dev/tests/CommonTime/xCommonTime.hpp | 28 +
dev/tests/CommonTime/xCommonTimeM.cpp | 30 +
dev/tests/DayTime/DayTime.cpp | 1 +
dev/tests/DayTime/DayTime.hpp | 1 +
dev/tests/DayTime/DayTimeConvTest.hpp | 56 +
dev/tests/DayTime/Jamfile | 5 +
dev/tests/DayTime/Logs/DayTimeDump | 58 +
dev/tests/DayTime/makefile | 34 +
dev/tests/DayTime/xDayTime.cpp | 299 +
dev/tests/DayTime/xDayTime.hpp | 36 +
dev/tests/DayTime/xDayTimeConv.cpp | 196 +
dev/tests/DayTime/xDayTimeInc.cpp | 98 +
dev/tests/DayTime/xDayTimeInc.hpp | 77 +
dev/tests/DayTime/xDayTimeM.cpp | 30 +
.../tests/Example_Classname/Example_ClassName.cpp | 0
.../tests/Example_Classname/Example_ClassName.hpp | 0
.../tests/Example_Classname/Example_Jamfile | 0
.../tests/Example_Classname/Example_xClassName.cpp | 0
.../tests/Example_Classname/Example_xClassName.hpp | 0
.../Example_Classname/Example_xClassNameM.cpp | 0
.../GPSEpochWeekSecond/GPSEpochWeekSecond.cpp | 1 +
.../GPSEpochWeekSecond/GPSEpochWeekSecond.hpp | 1 +
dev/tests/GPSEpochWeekSecond/Jamfile | 2 +
dev/tests/GPSEpochWeekSecond/Logs/printfOutput | 2 +
.../GPSEpochWeekSecond/xGPSEpochWeekSecond.cpp | 82 +
.../GPSEpochWeekSecond/xGPSEpochWeekSecond.hpp | 28 +
.../GPSEpochWeekSecond/xGPSEpochWeekSecondM.cpp | 30 +
dev/tests/GPSWeekSecond/GPSWeekSecond.cpp | 1 +
dev/tests/GPSWeekSecond/GPSWeekSecond.hpp | 1 +
dev/tests/GPSWeekSecond/Jamfile | 2 +
dev/tests/GPSWeekSecond/Logs/printfOutput | 2 +
dev/tests/GPSWeekSecond/xGPSWeekSecond.cpp | 62 +
dev/tests/GPSWeekSecond/xGPSWeekSecond.hpp | 28 +
dev/tests/GPSWeekSecond/xGPSWeekSecondM.cpp | 30 +
dev/tests/GPSWeekZcount/GPSWeekZcount.cpp | 1 +
dev/tests/GPSWeekZcount/GPSWeekZcount.hpp | 1 +
dev/tests/GPSWeekZcount/Jamfile | 2 +
dev/tests/GPSWeekZcount/Logs/printfOutput | 2 +
dev/tests/GPSWeekZcount/xGPSWeekZcount.cpp | 63 +
dev/tests/GPSWeekZcount/xGPSWeekZcount.hpp | 28 +
dev/tests/GPSWeekZcount/xGPSWeekZcountM.cpp | 30 +
dev/tests/IonoModel/IonoModel.cpp | 1 +
dev/tests/IonoModel/IonoModel.hpp | 1 +
dev/tests/IonoModel/Jamfile | 3 +
dev/tests/IonoModel/makefile | 22 +
dev/tests/IonoModel/xIonoModel.cpp | 113 +
dev/tests/IonoModel/xIonoModel.hpp | 36 +
dev/tests/IonoModel/xIonoModelM.cpp | 30 +
dev/tests/Jamfile | 27 +
dev/tests/Jamrules | 22 +
dev/tests/JulianDate/Jamfile | 2 +
dev/tests/JulianDate/JulianDate.cpp | 1 +
dev/tests/JulianDate/JulianDate.hpp | 1 +
dev/tests/JulianDate/Logs/printfOutput | 2 +
dev/tests/JulianDate/xJulianDate.cpp | 56 +
dev/tests/JulianDate/xJulianDate.hpp | 28 +
dev/tests/JulianDate/xJulianDateM.cpp | 30 +
dev/tests/MJD/Jamfile | 2 +
dev/tests/MJD/Logs/printfOutput | 2 +
dev/tests/MJD/MJD.cpp | 1 +
dev/tests/MJD/MJD.hpp | 1 +
dev/tests/MJD/xMJD.cpp | 57 +
dev/tests/MJD/xMJD.hpp | 27 +
dev/tests/MJD/xMJDM.cpp | 30 +
dev/tests/MSC/Jamfile | 2 +
dev/tests/MSC/Logs/CoordFile | 5 +
dev/tests/MSC/Logs/Output | 5 +
dev/tests/MSC/Logs/Output2 | 5 +
dev/tests/MSC/MSCData.cpp | 1 +
dev/tests/MSC/MSCData.hpp | 1 +
.../src/Makefile.am => dev/tests/MSC/MSCStream.cpp | 0
dev/tests/MSC/MSCStream.hpp | 1 +
dev/tests/MSC/xMSC.cpp | 67 +
dev/tests/MSC/xMSC.hpp | 28 +
dev/tests/MSC/xMSCM.cpp | 30 +
dev/tests/Makefile.am | 3 +
dev/tests/PolyFit/Jamfile | 4 +
.../Makefile.am => dev/tests/PolyFit/PolyFit.cpp | 0
dev/tests/PolyFit/PolyFit.hpp | 1 +
dev/tests/PolyFit/makefile | 22 +
dev/tests/PolyFit/xPolyFit.cpp | 280 +
dev/tests/PolyFit/xPolyFit.hpp | 41 +
dev/tests/PolyFit/xPolyFitM.cpp | 30 +
dev/tests/RACRotation/Jamfile | 2 +
dev/tests/RACRotation/RACRotation.cpp | 1 +
dev/tests/RACRotation/RACRotation.hpp | 1 +
dev/tests/RACRotation/xRACRotation.cpp | 224 +
dev/tests/RACRotation/xRACRotation.hpp | 35 +
dev/tests/RACRotation/xRACRotationM.cpp | 30 +
dev/tests/RinexEphemerisStore/Checks/DumpData0.chk | 4 +
dev/tests/RinexEphemerisStore/Checks/DumpData1.chk | 49 +
.../tests/RinexEphemerisStore/Checks/DumpData2.chk | 0
.../RinexEphemerisStore/Checks/TestRinexDump.dmp | 0
.../Checks/addEphemerisTest.chk | 5 +
.../RinexEphemerisStore/Checks/addToListTest.chk | 1886 +
dev/tests/RinexEphemerisStore/Checks/clearTest.chk | 5 +
dev/tests/RinexEphemerisStore/Checks/editTest.chk | 33 +
dev/tests/RinexEphemerisStore/Checks/findEph1.chk | 46 +
dev/tests/RinexEphemerisStore/Checks/findEph15.chk | 46 +
dev/tests/RinexEphemerisStore/Checks/findEph32.chk | 46 +
.../RinexEphemerisStore/Checks/findNearTest.chk | 11 +
.../RinexEphemerisStore/Checks/findUserTest.chk | 11 +
.../RinexEphemerisStore/Checks/getPrnXvt1.chk | 1 +
.../RinexEphemerisStore/Checks/getPrnXvt15.chk | 1 +
.../RinexEphemerisStore/Checks/getPrnXvt32.chk | 1 +
dev/tests/RinexEphemerisStore/Checks/wiperTest.chk | 31 +
.../RinexEphemerisStore/Checks/wiperTest2.chk | 8 +
dev/tests/RinexEphemerisStore/DumpData.txt | 49 +
dev/tests/RinexEphemerisStore/Jamfile | 5 +
dev/tests/RinexEphemerisStore/Logs/DumpData0.txt | 4 +
dev/tests/RinexEphemerisStore/Logs/DumpData1.txt | 49 +
.../tests/RinexEphemerisStore/Logs/DumpData2.txt | 0
.../RinexEphemerisStore/Logs/TestRinex06.031NEW | 347 +
.../RinexEphemerisStore/Logs/addEphemerisTest.txt | 5 +
.../RinexEphemerisStore/Logs/addToListTest.txt | 1886 +
dev/tests/RinexEphemerisStore/Logs/clearTest.txt | 5 +
dev/tests/RinexEphemerisStore/Logs/editTest.txt | 33 +
dev/tests/RinexEphemerisStore/Logs/findEph1.txt | 46 +
dev/tests/RinexEphemerisStore/Logs/findEph15.txt | 46 +
dev/tests/RinexEphemerisStore/Logs/findEph32.txt | 46 +
.../RinexEphemerisStore/Logs/findNearTest.txt | 11 +
.../RinexEphemerisStore/Logs/findUserTest.txt | 11 +
dev/tests/RinexEphemerisStore/Logs/getPrnXvt1.txt | 1 +
dev/tests/RinexEphemerisStore/Logs/getPrnXvt15.txt | 1 +
.../RinexEphemerisStore/Logs/getPrnXvt2_1.txt | 1 +
.../RinexEphemerisStore/Logs/getPrnXvt2_15.txt | 1 +
.../RinexEphemerisStore/Logs/getPrnXvt2_32.txt | 1 +
dev/tests/RinexEphemerisStore/Logs/getPrnXvt32.txt | 1 +
.../RinexEphemerisStore/Logs/s011100a.00nEdit | 233 +
dev/tests/RinexEphemerisStore/Logs/wiperTest.txt | 31 +
dev/tests/RinexEphemerisStore/Logs/wiperTest2.txt | 8 +
.../RinexEphemerisStore/RinexEphemerisStore.cpp | 1 +
.../RinexEphemerisStore/RinexEphemerisStore.hpp | 1 +
dev/tests/RinexEphemerisStore/TestRinex06.031 | 339 +
dev/tests/RinexEphemerisStore/makefile | 24 +
.../RinexEphemerisStore/xRinexEphemerisStore.cpp | 658 +
.../RinexEphemerisStore/xRinexEphemerisStore.hpp | 57 +
.../RinexEphemerisStore/xRinexEphemerisStoreM.cpp | 30 +
dev/tests/RinexMet/Jamfile | 2 +
dev/tests/RinexMet/Logs/408_110a.04m | 108 +
dev/tests/RinexMet/Logs/BLL.04m | 15 +
dev/tests/RinexMet/Logs/BOL.04m | 14 +
dev/tests/RinexMet/Logs/ContLines10.04m | 212 +
dev/tests/RinexMet/Logs/ContinuationLines.04m | 210 +
dev/tests/RinexMet/Logs/ContinuationLines.04mBKUP | 205 +
dev/tests/RinexMet/Logs/ExtraH.04m | 17 +
.../tests/RinexMet/Logs/ExtraOutput.txt | 0
dev/tests/RinexMet/Logs/FER.04m | 14 +
.../tests/RinexMet/Logs/FilterOutput.txt | 0
dev/tests/RinexMet/Logs/FilterTest1.04m | 18 +
dev/tests/RinexMet/Logs/FilterTest2.04m | 18 +
dev/tests/RinexMet/Logs/FilterTest3.04m | 14 +
dev/tests/RinexMet/Logs/InvalidTimeFormat.04m | 14 +
dev/tests/RinexMet/Logs/MetDumps | 13 +
dev/tests/RinexMet/Logs/MissingEOH.04m | 13 +
dev/tests/RinexMet/Logs/MissingMarkerName | 16 +
dev/tests/RinexMet/Logs/NoObsData.04m | 13 +
dev/tests/RinexMet/Logs/NoObsDataCont.04m | 27 +
dev/tests/RinexMet/Logs/NotMetFile.04m | 14 +
dev/tests/RinexMet/Logs/ObsHeaderStringError.04m | 27 +
dev/tests/RinexMet/Logs/Output.txt | 108 +
dev/tests/RinexMet/Logs/OutputCont.txt | 212 +
dev/tests/RinexMet/Logs/OutputDataExceptions.txt | 14 +
dev/tests/RinexMet/Logs/SensorTypeError.04m | 14 +
dev/tests/RinexMet/Logs/UnSupRinex.04m | 14 +
.../tests/RinexMet/RinexMetBase.cpp | 0
dev/tests/RinexMet/RinexMetBase.hpp | 1 +
dev/tests/RinexMet/RinexMetData.cpp | 1 +
dev/tests/RinexMet/RinexMetData.hpp | 1 +
.../tests/RinexMet/RinexMetFilterOperators.cpp | 0
dev/tests/RinexMet/RinexMetFilterOperators.hpp | 1 +
dev/tests/RinexMet/RinexMetHeader.cpp | 1 +
dev/tests/RinexMet/RinexMetHeader.hpp | 1 +
.../tests/RinexMet/RinexMetStream.cpp | 0
dev/tests/RinexMet/RinexMetStream.hpp | 1 +
dev/tests/RinexMet/xRinexMet.cpp | 516 +
dev/tests/RinexMet/xRinexMet.hpp | 54 +
dev/tests/RinexMet/xRinexMetM.cpp | 28 +
dev/tests/RinexNav/Jamfile | 2 +
dev/tests/RinexNav/Logs/BACKUP | 24 +
dev/tests/RinexNav/Logs/BadHeader.99n | 8 +
dev/tests/RinexNav/Logs/FilterOutput.txt | 9 +
dev/tests/RinexNav/Logs/FilterTest1.99n | 24 +
dev/tests/RinexNav/Logs/FilterTest2.99n | 24 +
dev/tests/RinexNav/Logs/FilterTest3.99n | 24 +
dev/tests/RinexNav/Logs/IncompleteHeader.99n | 7 +
dev/tests/RinexNav/Logs/InvalidLineLength.99n | 8 +
dev/tests/RinexNav/Logs/NotaNavFile.99n | 8 +
dev/tests/RinexNav/Logs/RinexDump | 13 +
dev/tests/RinexNav/Logs/RinexNavExample.99n | 24 +
dev/tests/RinexNav/Logs/RinexNavHeaderNorm.99n | 8 +
dev/tests/RinexNav/Logs/TestOutput.99n | 24 +
dev/tests/RinexNav/Logs/TestOutput2.99n | 24 +
dev/tests/RinexNav/Logs/TestOutput3.99n | 24 +
dev/tests/RinexNav/Logs/TestOutputEric.99n | 24 +
.../tests/RinexNav/Logs/TestOutputHeader.99n | 0
.../tests/RinexNav/Logs/TestOutputHeader2.99n | 0
.../tests/RinexNav/Logs/TestOutputHeader3.99n | 0
dev/tests/RinexNav/Logs/UnknownHeaderLabel.99n | 9 +
dev/tests/RinexNav/Logs/UnsupportedRinex.99n | 8 +
.../tests/RinexNav/RinexNavBase.cpp | 0
dev/tests/RinexNav/RinexNavBase.hpp | 1 +
dev/tests/RinexNav/RinexNavData.cpp | 1 +
dev/tests/RinexNav/RinexNavData.hpp | 1 +
.../tests/RinexNav/RinexNavFilterOperators.cpp | 0
dev/tests/RinexNav/RinexNavFilterOperators.hpp | 1 +
dev/tests/RinexNav/RinexNavHeader.cpp | 1 +
dev/tests/RinexNav/RinexNavHeader.hpp | 1 +
.../tests/RinexNav/RinexNavStream.cpp | 0
dev/tests/RinexNav/RinexNavStream.hpp | 1 +
dev/tests/RinexNav/xRinexNav.cpp | 271 +
dev/tests/RinexNav/xRinexNav.hpp | 37 +
dev/tests/RinexNav/xRinexNavM.cpp | 28 +
dev/tests/RinexObs/Jamfile | 2 +
dev/tests/RinexObs/Logs/BACKUP.06o | 155 +
dev/tests/RinexObs/Logs/BadEpochFlag.06o | 154 +
dev/tests/RinexObs/Logs/BadEpochLine.06o | 154 +
dev/tests/RinexObs/Logs/BadLineSize.06o | 154 +
.../tests/RinexObs/Logs/DataExceptionOutput.06o | 0
dev/tests/RinexObs/Logs/FilterOutput.txt | 41 +
dev/tests/RinexObs/Logs/FilterTest1.06o | 154 +
dev/tests/RinexObs/Logs/FilterTest2.06o | 154 +
dev/tests/RinexObs/Logs/FilterTest3.06o | 154 +
dev/tests/RinexObs/Logs/FilterTest4.06o | 154 +
dev/tests/RinexObs/Logs/IncompleteHeader.06o | 154 +
dev/tests/RinexObs/Logs/InvalidLineLength.06o | 155 +
dev/tests/RinexObs/Logs/InvalidNumPRNWaveFact.06o | 155 +
dev/tests/RinexObs/Logs/InvalidTimeFormat.06o | 154 +
dev/tests/RinexObs/Logs/NotObs.06o | 155 +
dev/tests/RinexObs/Logs/ObsDump | 45 +
dev/tests/RinexObs/Logs/RinexContData.06o | 187 +
dev/tests/RinexObs/Logs/RinexObsFile.06o | 154 +
dev/tests/RinexObs/Logs/SystemGeosync.06o | 155 +
dev/tests/RinexObs/Logs/SystemGlonass.06o | 155 +
dev/tests/RinexObs/Logs/SystemMixed.06o | 155 +
dev/tests/RinexObs/Logs/SystemTransit.06o | 155 +
dev/tests/RinexObs/Logs/TestOutput.06o | 215 +
dev/tests/RinexObs/Logs/TestOutput2.06o | 154 +
dev/tests/RinexObs/Logs/TestOutput3.06o | 165 +
dev/tests/RinexObs/Logs/UnSupVersion.06o | 155 +
.../tests/RinexObs/RinexObsBase.cpp | 0
dev/tests/RinexObs/RinexObsBase.hpp | 1 +
dev/tests/RinexObs/RinexObsData.cpp | 1 +
dev/tests/RinexObs/RinexObsData.hpp | 1 +
.../tests/RinexObs/RinexObsFilterOperators.cpp | 0
dev/tests/RinexObs/RinexObsFilterOperators.hpp | 1 +
dev/tests/RinexObs/RinexObsHeader.cpp | 1 +
dev/tests/RinexObs/RinexObsHeader.hpp | 1 +
.../tests/RinexObs/RinexObsStream.cpp | 0
dev/tests/RinexObs/RinexObsStream.hpp | 1 +
dev/tests/RinexObs/xRinexObs.cpp | 277 +
dev/tests/RinexObs/xRinexObs.hpp | 37 +
dev/tests/RinexObs/xRinexObsM.cpp | 28 +
dev/tests/RungeKutta4/Jamfile | 3 +
dev/tests/RungeKutta4/RungeKutta4.cpp | 1 +
dev/tests/RungeKutta4/RungeKutta4.hpp | 1 +
dev/tests/RungeKutta4/makefile | 22 +
dev/tests/RungeKutta4/pendulum.hpp | 43 +
dev/tests/RungeKutta4/xRungeKutta4.cpp | 110 +
dev/tests/RungeKutta4/xRungeKutta4.hpp | 35 +
dev/tests/RungeKutta4/xRungeKutta4M.cpp | 30 +
dev/tests/SEM/Jamfile | 2 +
trunk/src/Makefile.am => dev/tests/SEM/SEMBase.cpp | 0
dev/tests/SEM/SEMBase.hpp | 78 +
dev/tests/SEM/SEMData.cpp | 198 +
dev/tests/SEM/SEMData.hpp | 135 +
dev/tests/SEM/SEMHeader.cpp | 94 +
dev/tests/SEM/SEMHeader.hpp | 112 +
.../src/Makefile.am => dev/tests/SEM/SEMStream.cpp | 0
dev/tests/SEM/SEMStream.hpp | 114 +
.../Makefile.am => dev/tests/SEM/StringUtils.cpp | 0
dev/tests/SEM/StringUtils.hpp | 2603 +
dev/tests/SEM/sem.txt | 272 +
dev/tests/SEM/sem387.txt | 274 +
dev/tests/SEM/xSEM.cpp | 49 +
dev/tests/SetVariables | 27 +
dev/tests/Stats/Jamfile | 3 +
trunk/src/Makefile.am => dev/tests/Stats/Stats.cpp | 0
dev/tests/Stats/Stats.hpp | 1 +
dev/tests/Stats/makefile | 18 +
dev/tests/Stats/xStats.cpp | 454 +
dev/tests/Stats/xStats.hpp | 64 +
dev/tests/Stats/xStatsM.cpp | 30 +
dev/tests/TimeConverters/Jamfile | 2 +
dev/tests/TimeConverters/TimeConverters.cpp | 1 +
dev/tests/TimeConverters/TimeConverters.hpp | 1 +
dev/tests/TimeConverters/xTimeConverters.cpp | 89 +
dev/tests/TimeConverters/xTimeConverters.hpp | 26 +
dev/tests/TimeConverters/xTimeConvertersM.cpp | 30 +
dev/tests/TotalTest.pl | 72 +
dev/tests/UnixTime/Jamfile | 2 +
dev/tests/UnixTime/Logs/printfOutput | 2 +
dev/tests/UnixTime/UnixTime.cpp | 1 +
dev/tests/UnixTime/UnixTime.hpp | 1 +
dev/tests/UnixTime/xUnixTime.cpp | 64 +
dev/tests/UnixTime/xUnixTime.hpp | 28 +
dev/tests/UnixTime/xUnixTimeM.cpp | 30 +
dev/tests/YDSTime/Jamfile | 2 +
dev/tests/YDSTime/Logs/printfOutput | 4 +
dev/tests/YDSTime/YDSTime.cpp | 1 +
dev/tests/YDSTime/YDSTime.hpp | 1 +
dev/tests/YDSTime/xYDSTime.cpp | 82 +
dev/tests/YDSTime/xYDSTime.hpp | 28 +
dev/tests/YDSTime/xYDSTimeM.cpp | 30 +
dev/tests/Yuma/Jamfile | 2 +
.../Makefile.am => dev/tests/Yuma/StringUtils.cpp | 0
dev/tests/Yuma/StringUtils.hpp | 2603 +
.../src/Makefile.am => dev/tests/Yuma/YumaBase.cpp | 0
dev/tests/Yuma/YumaBase.hpp | 77 +
dev/tests/Yuma/YumaData.cpp | 273 +
dev/tests/Yuma/YumaData.hpp | 141 +
.../Makefile.am => dev/tests/Yuma/YumaStream.cpp | 0
dev/tests/Yuma/YumaStream.hpp | 104 +
dev/tests/Yuma/xYuma.cpp | 53 +
dev/tests/Yuma/yuma377.txt | 450 +
dev/tests/a.txt | 3 +
ref/build/gpstk.aip | 431 +
ref/glance/colortbl.dtx | 1296 +
ref/glance/colortbl.ins | 5 +
ref/glance/colortbl.sty | 339 +
ref/glance/svgnam.def | 186 +
ref/glance/toolkitlandscape.tex | 118 +
ref/glance/toolkitportrait.tex | 158 +
ref/glance/x11nam.def | 352 +
ref/glance/xcolor.dtx | 8231 +++
ref/glance/xcolor.ins | 28 +
ref/glance/xcolor.lox | 57 +
ref/glance/xcolor.pro | 56 +
ref/glance/xcolor.sty | 1451 +
ref/glance/xcolor1.tex | 182 +
ref/glance/xcolor2.tex | 157 +
ref/glance/xcolor3.tex | 241 +
ref/glance/xcolor4.tex | 209 +
ref/usersguide/DiscFix.tex | 67 +
ref/usersguide/FICcheck.tex | 45 +
ref/usersguide/IonoBias.tex | 110 +
ref/usersguide/NavMerge.tex | 39 +
ref/usersguide/PRSolve.tex | 82 +
ref/usersguide/RINcheck.tex | 44 +
ref/usersguide/RINdiff.tex | 44 +
ref/usersguide/ResCor.tex | 189 +
ref/usersguide/RinSum.tex | 104 +
ref/usersguide/RinexDump.tex | 56 +
ref/usersguide/TECMaps.tex | 92 +
ref/usersguide/WhereSat.tex | 99 +
ref/usersguide/arl280-10.06m | 299 +
ref/usersguide/arl280-10.06n | 1285 +
ref/usersguide/arl280-10.06o | 48828 ++++++++++++++++++
ref/usersguide/arl2800.06m | 299 +
ref/usersguide/arl2800.06n | 1261 +
ref/usersguide/arl2800.06o | 48700 ++++++++++++++++++
ref/usersguide/arl2800thin.06o | 24356 +++++++++
ref/usersguide/arl2810.06m | 299 +
ref/usersguide/arl2810.06n | 1285 +
ref/usersguide/arl2810.06o | 48828 ++++++++++++++++++
ref/usersguide/brokenfica | 1902 +
ref/usersguide/calgps.tex | 40 +
ref/usersguide/convcoordtime.tex | 177 +
ref/usersguide/data_set/408_213a.99m | 16 +
ref/usersguide/data_set/408_214a.99m | 11 +
ref/usersguide/data_set/408_215a.99m | 11 +
ref/usersguide/data_set/s081213a.99n | 1603 +
ref/usersguide/data_set/s081213a.99o | 49413 ++++++++++++++++++
ref/usersguide/data_set/s081214a.99n | 1579 +
ref/usersguide/data_set/s081214a.99o | 49847 +++++++++++++++++++
ref/usersguide/data_set/s081215a.99n | 1595 +
ref/usersguide/data_set/s081215a.99o | 42971 ++++++++++++++++
ref/usersguide/ephdiff.tex | 39 +
ref/usersguide/fic06.187 | Bin 0 -> 51064 bytes
ref/usersguide/fic1 | Bin 0 -> 291064 bytes
ref/usersguide/fic2 | Bin 0 -> 288472 bytes
ref/usersguide/fic2rin.tex | 63 +
ref/usersguide/fica06.187 | 1902 +
ref/usersguide/ficconv.tex | 66 +
ref/usersguide/ficdiff.tex | 52 +
ref/usersguide/ficm | Bin 0 -> 579496 bytes
ref/usersguide/firstprototype/appsoverview.tex | 138 +
ref/usersguide/firstprototype/faq.tex | 53 +
ref/usersguide/firstprototype/firstprototype.tex | 50 +
ref/usersguide/firstprototype/gpsoverview.tex | 57 +
ref/usersguide/firstprototype/gpstklogo.eps | 32692 ++++++++++++
ref/usersguide/firstprototype/introduction.tex | 9 +
ref/usersguide/firstprototype/makefile | 20 +
ref/usersguide/firstprototype/notices.tex | 1 +
ref/usersguide/firstprototype/rinexpvt.tex | 371 +
ref/usersguide/firstprototype/rtashtech.tex | 292 +
ref/usersguide/firstprototype/titlepg.tex | 39 +
ref/usersguide/firstprototype/vecsol.tex | 49 +
ref/usersguide/firstprototype/wheresat.tex | 161 +
ref/usersguide/gpsfileforms.tex | 42 +
ref/usersguide/gpsnutshell.tex | 58 +
ref/usersguide/gpstk-user-reference.pdf | Bin 0 -> 352330 bytes
ref/usersguide/gpstk-user-reference.tex | 39 +
ref/usersguide/gpstk.bib | 392 +
ref/usersguide/gpstklogo.eps | 32692 ++++++++++++
ref/usersguide/introduction.tex | 9 +
ref/usersguide/makefile | 29 +
ref/usersguide/makescr | 6 +
ref/usersguide/mdpconv.tex | 74 +
ref/usersguide/mdptool.tex | 59 +
ref/usersguide/mergeFIC.tex | 41 +
ref/usersguide/mergeRin.tex | 48 +
ref/usersguide/navdmp.tex | 117 +
ref/usersguide/navsum.tex | 88 +
ref/usersguide/new.06o | 49274 ++++++++++++++++++
ref/usersguide/notices.tex | 1 +
ref/usersguide/novaRinex.tex | 75 +
ref/usersguide/poscvt.tex | 47 +
ref/usersguide/reszilla.tex | 229 +
ref/usersguide/rin1870.06 | 339 +
ref/usersguide/rinexpvt.tex | 53 +
ref/usersguide/rinexthin.tex | 33 +
ref/usersguide/rtAshtech.tex | 53 +
.../Makefile.am => ref/usersguide/s081213-214.99n | 0
ref/usersguide/s081213a.99n | 1603 +
ref/usersguide/s081214a.99n | 1579 +
ref/usersguide/sec2.tex | 44 +
ref/usersguide/src/bibtexall | 17 +
ref/usersguide/src/bibunits.sty | 402 +
ref/usersguide/src/cmd.tex | 60 +
ref/usersguide/src/colortbl.dtx | 1296 +
ref/usersguide/src/colortbl.ins | 5 +
ref/usersguide/src/colortbl.sty | 339 +
ref/usersguide/src/fancyvrb.dtx | 4474 ++
ref/usersguide/src/fancyvrb.ins | 35 +
ref/usersguide/src/fancyvrb.log | 91 +
ref/usersguide/src/fancyvrb.sty | 1421 +
ref/usersguide/src/manual.cls | 754 +
ref/usersguide/src/perltex | 375 +
ref/usersguide/src/perltex.sty | 229 +
ref/usersguide/src/svgnam.def | 186 +
ref/usersguide/src/x11nam.def | 352 +
ref/usersguide/src/xcolor.dtx | 8231 +++
ref/usersguide/src/xcolor.ins | 28 +
ref/usersguide/src/xcolor.log | 541 +
ref/usersguide/src/xcolor.lox | 57 +
ref/usersguide/src/xcolor.pro | 56 +
ref/usersguide/src/xcolor.sty | 1451 +
ref/usersguide/src/xcolor1.tex | 182 +
ref/usersguide/src/xcolor2.tex | 157 +
ref/usersguide/src/xcolor3.tex | 241 +
ref/usersguide/src/xcolor4.tex | 209 +
ref/usersguide/summary | 169 +
ref/usersguide/test.tex | 23 +
ref/usersguide/timeconvert.tex | 56 +
ref/usersguide/titlepg.tex | 43 +
ref/usersguide/toolkitportrait.tex | 148 +
ref/usersguide/vecsol.tex | 75 +
trunk/AUTHORS | 32 -
trunk/ChangeLog | 131 -
trunk/Doxyfile | 1168 -
trunk/INSTALL | 236 -
trunk/Jamfile | 10 -
trunk/Jamrules | 276 -
trunk/Makefile.am | 2 -
trunk/NEWS | 17 -
trunk/README | 91 -
trunk/apps/Jamfile | 21 -
trunk/apps/MDPtools/DataStatus.hpp | 85 -
trunk/apps/MDPtools/FormatConversionFunctions.cpp | 234 -
trunk/apps/MDPtools/FormatConversionFunctions.hpp | 60 -
trunk/apps/MDPtools/Jamfile | 30 -
trunk/apps/MDPtools/MDPHeader.cpp | 350 -
trunk/apps/MDPtools/MDPHeader.hpp | 118 -
trunk/apps/MDPtools/MDPNavSubframe.cpp | 136 -
trunk/apps/MDPtools/MDPNavSubframe.hpp | 76 -
trunk/apps/MDPtools/MDPObsEpoch.cpp | 219 -
trunk/apps/MDPtools/MDPObsEpoch.hpp | 85 -
trunk/apps/MDPtools/MDPPVTSolution.cpp | 116 -
trunk/apps/MDPtools/MDPPVTSolution.hpp | 54 -
trunk/apps/MDPtools/MDPProcessors.cpp | 314 -
trunk/apps/MDPtools/MDPProcessors.hpp | 136 -
trunk/apps/MDPtools/MDPSelftestStatus.cpp | 98 -
trunk/apps/MDPtools/MDPSelftestStatus.hpp | 52 -
trunk/apps/MDPtools/MDPStream.hpp | 101 -
trunk/apps/MDPtools/NavProc.cpp | 159 -
trunk/apps/MDPtools/NavProc.hpp | 55 -
trunk/apps/MDPtools/ScreenProc.cpp | 354 -
trunk/apps/MDPtools/ScreenProc.hpp | 54 -
trunk/apps/MDPtools/SummaryProc.cpp | 402 -
trunk/apps/MDPtools/SummaryProc.hpp | 62 -
trunk/apps/MDPtools/TCPStream.cpp | 317 -
trunk/apps/MDPtools/TCPStream.hpp | 154 -
trunk/apps/MDPtools/TrackProc.cpp | 141 -
trunk/apps/MDPtools/TrackProc.hpp | 36 -
trunk/apps/MDPtools/mdp2rinex.cpp | 301 -
trunk/apps/MDPtools/mdptool.cpp | 296 -
trunk/apps/MDPtools/miscenum.hpp | 134 -
trunk/apps/MDPtools/tcptest.cpp | 83 -
trunk/apps/Makefile.am | 1 -
trunk/apps/Makefile.in | 467 -
trunk/apps/RinexPlot/README | 31 -
trunk/apps/RinexPlot/RinexPlot.pl | 3458 --
trunk/apps/Rinextools/EditRinex | Bin 842076 -> 0 bytes
trunk/apps/Rinextools/EditRinex.cpp | 330 -
trunk/apps/Rinextools/Jamfile | 18 -
trunk/apps/Rinextools/Makefile.am | 13 -
trunk/apps/Rinextools/Makefile.in | 482 -
trunk/apps/Rinextools/NavMerge | Bin 489118 -> 0 bytes
trunk/apps/Rinextools/NavMerge.cpp | 251 -
trunk/apps/Rinextools/README | 45 -
trunk/apps/Rinextools/ResCor | Bin 1331833 -> 0 bytes
trunk/apps/Rinextools/ResCor.cpp | 2063 -
trunk/apps/Rinextools/RinSum | Bin 814962 -> 0 bytes
trunk/apps/Rinextools/RinSum.cpp | 662 -
trunk/apps/Rinextools/RinexDump | Bin 690710 -> 0 bytes
trunk/apps/Rinextools/RinexDump.cpp | 242 -
trunk/apps/Rinextools/RinexEditor.cpp | 1290 -
trunk/apps/Rinextools/RinexEditor.hpp | 287 -
trunk/apps/Rinextools/RinexUtilities.cpp | 237 -
trunk/apps/Rinextools/RinexUtilities.hpp | 90 -
trunk/apps/Rinextools/toolslib.a | Bin 560266 -> 0 bytes
trunk/apps/bindings/java/Makefile | 51 -
trunk/apps/bindings/octave/Makefile | 29 -
trunk/apps/bindings/perl/Makefile | 50 -
trunk/apps/bindings/tcl/Makefile | 49 -
trunk/apps/checktools/CheckFrame.hpp | 120 -
trunk/apps/checktools/Jamfile | 12 -
trunk/apps/checktools/Makefile.am | 10 -
trunk/apps/checktools/Makefile.in | 460 -
trunk/apps/checktools/ficacheck | Bin 529884 -> 0 bytes
trunk/apps/checktools/ficacheck.cpp | 38 -
trunk/apps/checktools/ficcheck | Bin 528156 -> 0 bytes
trunk/apps/checktools/ficcheck.cpp | 38 -
trunk/apps/checktools/rmwcheck | Bin 417111 -> 0 bytes
trunk/apps/checktools/rmwcheck.cpp | 39 -
trunk/apps/checktools/rnwcheck | Bin 508042 -> 0 bytes
trunk/apps/checktools/rnwcheck.cpp | 38 -
trunk/apps/checktools/rowcheck | Bin 495613 -> 0 bytes
trunk/apps/checktools/rowcheck.cpp | 38 -
trunk/apps/converters/Jamfile | 9 -
trunk/apps/converters/Makefile.am | 6 -
trunk/apps/converters/NovatelData.cpp | 1065 -
trunk/apps/converters/NovatelData.hpp | 183 -
trunk/apps/converters/NovatelStream.hpp | 96 -
trunk/apps/converters/novaRinex | Bin 761182 -> 0 bytes
trunk/apps/converters/novaRinex.cpp | 981 -
trunk/apps/cycleslips/DiscCorr.cpp | 2902 --
trunk/apps/cycleslips/DiscCorr.hpp | 246 -
trunk/apps/cycleslips/DiscFix | Bin 748753 -> 0 bytes
trunk/apps/cycleslips/DiscFix.cpp | 1411 -
trunk/apps/cycleslips/Jamfile | 9 -
trunk/apps/cycleslips/Makefile.am | 6 -
trunk/apps/cycleslips/Makefile.in | 422 -
trunk/apps/cycleslips/README | 67 -
trunk/apps/differential/Makefile.am | 6 -
trunk/apps/differential/Makefile.in | 421 -
trunk/apps/differential/vecsol | Bin 1075487 -> 0 bytes
trunk/apps/differential/vecsol.1 | 111 -
trunk/apps/differential/vecsol.conf | 10 -
trunk/apps/differential/vecsol.cpp | 883 -
trunk/apps/differential/vecsol.eph | 7 -
trunk/apps/differential/vecsol.nav | 3 -
trunk/apps/difftools/DiffFrame.hpp | 84 -
trunk/apps/difftools/Jamfile | 12 -
trunk/apps/difftools/Makefile.am | 10 -
trunk/apps/difftools/Makefile.in | 460 -
trunk/apps/difftools/ephdiff | Bin 746819 -> 0 bytes
trunk/apps/difftools/ephdiff.cpp | 359 -
trunk/apps/difftools/ficdiff | Bin 659848 -> 0 bytes
trunk/apps/difftools/ficdiff.cpp | 103 -
trunk/apps/difftools/rmwdiff | Bin 576219 -> 0 bytes
trunk/apps/difftools/rmwdiff.cpp | 221 -
trunk/apps/difftools/rnwdiff | Bin 644514 -> 0 bytes
trunk/apps/difftools/rnwdiff.cpp | 205 -
trunk/apps/difftools/rowdiff | Bin 658399 -> 0 bytes
trunk/apps/difftools/rowdiff.cpp | 203 -
trunk/apps/filetools/Jamfile | 14 -
trunk/apps/filetools/Makefile.am | 10 -
trunk/apps/filetools/Makefile.in | 460 -
trunk/apps/filetools/fic2rin | Bin 690752 -> 0 bytes
trunk/apps/filetools/fic2rin.cpp | 125 -
trunk/apps/filetools/ficafic | Bin 568592 -> 0 bytes
trunk/apps/filetools/ficafic.cpp | 89 -
trunk/apps/filetools/ficfica | Bin 568624 -> 0 bytes
trunk/apps/filetools/ficfica.cpp | 89 -
trunk/apps/filetools/navdmp | Bin 743486 -> 0 bytes
trunk/apps/filetools/navdmp.cpp | 429 -
trunk/apps/filetools/rinexthin | Bin 469813 -> 0 bytes
trunk/apps/ionosphere/IonoBias | Bin 978140 -> 0 bytes
trunk/apps/ionosphere/IonoBias.cpp | 1612 -
trunk/apps/ionosphere/Jamfile | 10 -
trunk/apps/ionosphere/Makefile.am | 7 -
trunk/apps/ionosphere/Makefile.in | 433 -
trunk/apps/ionosphere/README | 15 -
trunk/apps/ionosphere/RinexUtilities.cpp | 237 -
trunk/apps/ionosphere/RinexUtilities.hpp | 90 -
trunk/apps/ionosphere/TECMaps | Bin 1027794 -> 0 bytes
trunk/apps/ionosphere/TECMaps.cpp | 1482 -
trunk/apps/ionosphere/VTECMap.cpp | 484 -
trunk/apps/ionosphere/VTECMap.hpp | 251 -
trunk/apps/mergetools/Makefile.am | 9 -
trunk/apps/mergetools/Makefile.in | 451 -
trunk/apps/mergetools/MergeFrame.hpp | 93 -
trunk/apps/mergetools/mergeFIC | Bin 638182 -> 0 bytes
trunk/apps/mergetools/mergeFIC.cpp | 109 -
trunk/apps/mergetools/mergeRinMet | Bin 572860 -> 0 bytes
trunk/apps/mergetools/mergeRinMet.cpp | 123 -
trunk/apps/mergetools/mergeRinNav | Bin 644262 -> 0 bytes
trunk/apps/mergetools/mergeRinNav.cpp | 126 -
trunk/apps/mergetools/mergeRinObs | Bin 657707 -> 0 bytes
trunk/apps/mergetools/mergeRinObs.cpp | 126 -
trunk/apps/positioning/Jamfile | 8 -
trunk/apps/positioning/Makefile.am | 8 -
trunk/apps/positioning/Makefile.in | 440 -
trunk/apps/positioning/PRSolve | Bin 1207021 -> 0 bytes
trunk/apps/positioning/PRSolve.cpp | 1723 -
trunk/apps/positioning/poscvt | Bin 225733 -> 0 bytes
trunk/apps/positioning/poscvt.cpp | 215 -
trunk/apps/positioning/rinexpvt | Bin 1231371 -> 0 bytes
trunk/apps/positioning/rinexpvt.cpp | 467 -
trunk/apps/positioning/rinexpvt.hpp | 112 -
trunk/apps/reszilla/DDEpoch.cpp | 402 -
trunk/apps/reszilla/DDEpoch.hpp | 61 -
trunk/apps/reszilla/ElevationRange.hpp | 36 -
trunk/apps/reszilla/Jamfile | 22 -
trunk/apps/reszilla/Makefile.am | 10 -
trunk/apps/reszilla/Makefile.in | 451 -
trunk/apps/reszilla/PhaseCleaner.cpp | 180 -
trunk/apps/reszilla/PhaseCleaner.hpp | 38 -
trunk/apps/reszilla/PhaseResidual.cpp | 115 -
trunk/apps/reszilla/PhaseResidual.hpp | 71 -
trunk/apps/reszilla/ordUtils.cpp | 268 -
trunk/apps/reszilla/ordUtils.hpp | 28 -
trunk/apps/reszilla/readers.cpp | 499 -
trunk/apps/reszilla/readers.hpp | 41 -
trunk/apps/reszilla/reszilla | Bin 1517142 -> 0 bytes
trunk/apps/reszilla/reszilla.cpp | 318 -
trunk/apps/reszilla/rlib.a | Bin 805776 -> 0 bytes
trunk/apps/reszilla/util.cpp | 360 -
trunk/apps/reszilla/util.hpp | 126 -
trunk/apps/time/Jamfile | 7 -
trunk/apps/time/Makefile.am | 7 -
trunk/apps/time/Makefile.in | 430 -
trunk/apps/time/README.txt | 94 -
trunk/apps/time/calgps | Bin 238633 -> 0 bytes
trunk/apps/time/calgps.cpp | 142 -
trunk/apps/time/timcvt | Bin 282937 -> 0 bytes
trunk/apps/time/timcvt.cpp | 217 -
trunk/apps/visibility/Jamfile | 7 -
trunk/apps/visibility/Makefile.am | 6 -
trunk/apps/visibility/WhereSat.cpp | 261 -
trunk/apps/visibility/wheresat | Bin 555858 -> 0 bytes
trunk/configure.ac | 54 -
trunk/examples/Jamfile | 7 -
trunk/examples/Makefile.am | 10 -
trunk/examples/Makefile.in | 452 -
trunk/examples/example3.cpp | 112 -
trunk/examples/example4.cpp | 160 -
trunk/src/ANSITime.cpp | 126 -
trunk/src/ANSITime.hpp | 150 -
trunk/src/AlmOrbit.cpp | 282 -
trunk/src/AlmOrbit.hpp | 118 -
trunk/src/AlmanacStore.cpp | 164 -
trunk/src/AlmanacStore.hpp | 114 -
trunk/src/BCEphemerisStore.cpp | 459 -
trunk/src/BCEphemerisStore.hpp | 243 -
trunk/src/BasicFramework.cpp | 130 -
trunk/src/BasicFramework.hpp | 182 -
trunk/src/BinUtils.cpp | 59 -
trunk/src/BinUtils.hpp | 388 -
trunk/src/CivilTime.cpp | 316 -
trunk/src/CivilTime.hpp | 168 -
trunk/src/ClockModel.hpp | 75 -
trunk/src/CodeBuffer.cpp | 81 -
trunk/src/CodeBuffer.hpp | 173 -
trunk/src/CommandOption.cpp | 394 -
trunk/src/CommandOption.hpp | 629 -
trunk/src/CommandOptionParser.cpp | 358 -
trunk/src/CommandOptionParser.hpp | 153 -
trunk/src/CommandOptionWithPositionArg.cpp | 89 -
trunk/src/CommandOptionWithPositionArg.hpp | 129 -
trunk/src/CommandOptionWithTimeArg.cpp | 107 -
trunk/src/CommandOptionWithTimeArg.hpp | 160 -
trunk/src/CommonTime.cpp | 314 -
trunk/src/CommonTime.hpp | 328 -
trunk/src/DayTime.cpp | 1863 -
trunk/src/DayTime.hpp | 1185 -
trunk/src/ECEF.cpp | 102 -
trunk/src/ECEF.hpp | 108 -
trunk/src/EngAlmanac.cpp | 495 -
trunk/src/EngAlmanac.hpp | 320 -
trunk/src/EngEphemeris.cpp | 1383 -
trunk/src/EngEphemeris.hpp | 494 -
trunk/src/EngNav.cpp | 677 -
trunk/src/EngNav.hpp | 176 -
trunk/src/EphemerisRange.cpp | 230 -
trunk/src/EphemerisRange.hpp | 115 -
trunk/src/EphemerisStore.hpp | 115 -
trunk/src/EpochClockModel.hpp | 115 -
trunk/src/Exception.cpp | 213 -
trunk/src/Exception.hpp | 479 -
trunk/src/FFBinaryStream.hpp | 219 -
trunk/src/FFData.cpp | 99 -
trunk/src/FFData.hpp | 189 -
trunk/src/FFStream.cpp | 276 -
trunk/src/FFStream.hpp | 209 -
trunk/src/FFStreamError.hpp | 63 -
trunk/src/FFTextStream.hpp | 220 -
trunk/src/FICAStream.hpp | 90 -
trunk/src/FICBase.hpp | 67 -
trunk/src/FICData.cpp | 1182 -
trunk/src/FICData.hpp | 187 -
trunk/src/FICFilterOperators.hpp | 301 -
trunk/src/FICHeader.cpp | 140 -
trunk/src/FICHeader.hpp | 111 -
trunk/src/FICStream.hpp | 94 -
trunk/src/FICStreamBase.hpp | 85 -
trunk/src/FileFilter.hpp | 409 -
trunk/src/FileFilterFrame.hpp | 376 -
trunk/src/FileFilterFrameWithHeader.hpp | 431 -
trunk/src/FileHunter.cpp | 696 -
trunk/src/FileHunter.hpp | 227 -
trunk/src/FileSpec.cpp | 535 -
trunk/src/FileSpec.hpp | 317 -
trunk/src/FileStore.hpp | 119 -
trunk/src/FileUtils.hpp | 132 -
trunk/src/GPSEpochWeekSecond.cpp | 197 -
trunk/src/GPSEpochWeekSecond.hpp | 151 -
trunk/src/GPSGeoid.hpp | 87 -
trunk/src/GPSWeekSecond.cpp | 186 -
trunk/src/GPSWeekSecond.hpp | 149 -
trunk/src/GPSWeekZcount.cpp | 173 -
trunk/src/GPSWeekZcount.hpp | 149 -
trunk/src/GPSZcount.cpp | 375 -
trunk/src/GPSZcount.hpp | 331 -
trunk/src/GPSZcount29.cpp | 171 -
trunk/src/GPSZcount29.hpp | 149 -
trunk/src/GPSZcount32.cpp | 142 -
trunk/src/GPSZcount32.hpp | 146 -
trunk/src/GenXSequence.cpp | 215 -
trunk/src/GenXSequence.hpp | 159 -
trunk/src/Geodetic.cpp | 199 -
trunk/src/Geodetic.hpp | 132 -
trunk/src/GeoidModel.hpp | 101 -
trunk/src/IonoModel.cpp | 176 -
trunk/src/IonoModel.hpp | 152 -
trunk/src/IonoModelStore.cpp | 93 -
trunk/src/IonoModelStore.hpp | 115 -
trunk/src/Jamfile | 104 -
trunk/src/JulianDate.cpp | 132 -
trunk/src/JulianDate.hpp | 146 -
trunk/src/LinearClockModel.cpp | 176 -
trunk/src/LinearClockModel.hpp | 109 -
trunk/src/LoopedFramework.cpp | 66 -
trunk/src/LoopedFramework.hpp | 107 -
trunk/src/MJD.cpp | 135 -
trunk/src/MJD.hpp | 146 -
trunk/src/MSCData.cpp | 133 -
trunk/src/MSCData.hpp | 112 -
trunk/src/MSCStream.hpp | 85 -
trunk/src/Makefile.in | 309 -
trunk/src/MathBase.hpp | 56 -
trunk/src/Matrix.hpp | 710 -
trunk/src/MatrixBase.hpp | 420 -
trunk/src/MatrixBaseOperators.hpp | 169 -
trunk/src/MatrixFunctors.hpp | 712 -
trunk/src/MatrixImplementation.hpp | 137 -
trunk/src/MatrixOperators.hpp | 737 -
trunk/src/MiscMath.hpp | 201 -
trunk/src/ORDEpoch.hpp | 106 -
trunk/src/ObsClockModel.cpp | 180 -
trunk/src/ObsClockModel.hpp | 211 -
trunk/src/ObsRngDev.cpp | 332 -
trunk/src/ObsRngDev.hpp | 327 -
trunk/src/ObservationStore.cpp | 338 -
trunk/src/ObservationStore.hpp | 338 -
trunk/src/PCodeConst.hpp | 104 -
trunk/src/PRSolution.cpp | 713 -
trunk/src/PRSolution.hpp | 276 -
trunk/src/PolyFit.hpp | 262 -
trunk/src/Position.cpp | 1432 -
trunk/src/Position.hpp | 893 -
trunk/src/RACRotation.cpp | 113 -
trunk/src/RACRotation.hpp | 34 -
trunk/src/RAIM.cpp | 592 -
trunk/src/RAIMSolution.hpp | 240 -
trunk/src/README | 201 -
trunk/src/RTFileFrame.hpp | 599 -
trunk/src/RinexEphemerisStore.cpp | 102 -
trunk/src/RinexEphemerisStore.hpp | 96 -
trunk/src/RinexMetBase.hpp | 73 -
trunk/src/RinexMetData.cpp | 281 -
trunk/src/RinexMetData.hpp | 157 -
trunk/src/RinexMetFilterOperators.hpp | 247 -
trunk/src/RinexMetHeader.cpp | 494 -
trunk/src/RinexMetHeader.hpp | 262 -
trunk/src/RinexMetStream.hpp | 111 -
trunk/src/RinexNavBase.hpp | 73 -
trunk/src/RinexNavData.cpp | 573 -
trunk/src/RinexNavData.hpp | 253 -
trunk/src/RinexNavFilterOperators.hpp | 238 -
trunk/src/RinexNavHeader.cpp | 337 -
trunk/src/RinexNavHeader.hpp | 160 -
trunk/src/RinexNavStream.hpp | 102 -
trunk/src/RinexObsBase.hpp | 73 -
trunk/src/RinexObsData.cpp | 405 -
trunk/src/RinexObsData.hpp | 182 -
trunk/src/RinexObsFilterOperators.hpp | 268 -
trunk/src/RinexObsHeader.cpp | 958 -
trunk/src/RinexObsHeader.hpp | 442 -
trunk/src/RinexObsStream.hpp | 108 -
trunk/src/RungeKutta4.cpp | 118 -
trunk/src/RungeKutta4.hpp | 142 -
trunk/src/SMODFData.cpp | 369 -
trunk/src/SMODFData.hpp | 140 -
trunk/src/SMODFStream.hpp | 114 -
trunk/src/SP3Base.hpp | 71 -
trunk/src/SP3Data.cpp | 146 -
trunk/src/SP3Data.hpp | 117 -
trunk/src/SP3EphemerisStore.cpp | 136 -
trunk/src/SP3EphemerisStore.hpp | 97 -
trunk/src/SP3Header.cpp | 215 -
trunk/src/SP3Header.hpp | 128 -
trunk/src/SP3Stream.hpp | 87 -
trunk/src/SVExclusionList.cpp | 312 -
trunk/src/SVExclusionList.hpp | 126 -
trunk/src/SVPCodeGen.cpp | 118 -
trunk/src/SVPCodeGen.hpp | 151 -
trunk/src/SatID.cpp | 52 -
trunk/src/SatID.hpp | 174 -
trunk/src/Stats.hpp | 512 -
trunk/src/StringUtils.hpp | 2566 -
trunk/src/TabularEphemerisStore.cpp | 265 -
trunk/src/TabularEphemerisStore.hpp | 140 -
trunk/src/TimeConstants.hpp | 49 -
trunk/src/TimeConverters.cpp | 150 -
trunk/src/TimeConverters.hpp | 65 -
trunk/src/TimeString.cpp | 405 -
trunk/src/TimeString.hpp | 35 -
trunk/src/TimeTag.cpp | 168 -
trunk/src/TimeTag.hpp | 121 -
trunk/src/Triple.cpp | 255 -
trunk/src/Triple.hpp | 206 -
trunk/src/TropModel.cpp | 1700 -
trunk/src/TropModel.hpp | 900 -
trunk/src/UnixTime.cpp | 158 -
trunk/src/UnixTime.hpp | 169 -
trunk/src/ValidType.hpp | 125 -
trunk/src/Vector.hpp | 382 -
trunk/src/VectorBase.cpp | 36 -
trunk/src/VectorBase.hpp | 299 -
trunk/src/VectorBaseOperators.hpp | 270 -
trunk/src/VectorOperators.hpp | 187 -
trunk/src/WGS84Geoid.hpp | 126 -
trunk/src/X1Sequence.cpp | 159 -
trunk/src/X1Sequence.hpp | 132 -
trunk/src/X2Sequence.cpp | 237 -
trunk/src/X2Sequence.hpp | 294 -
trunk/src/Xvt.cpp | 123 -
trunk/src/Xvt.hpp | 101 -
trunk/src/YDSTime.cpp | 202 -
trunk/src/YDSTime.hpp | 151 -
trunk/src/convhelp.hpp | 133 -
trunk/src/geometry.hpp | 69 -
trunk/src/gps_constants.hpp | 65 -
trunk/src/gpstkplatform.h | 23 -
trunk/src/icd_200_constants.hpp | 120 -
trunk/src/mergePCodeWords.h | 25 -
trunk/src/regex.c | 4948 --
trunk/src/stl_helpers.hpp | 127 -
trunk/tests/AnotherFileFilterTest.cpp | 149 -
trunk/tests/DayTimeConversionTest.cpp | 258 -
trunk/tests/DayTimeIncrementTest.cpp | 129 -
trunk/tests/DayTimeIncrementTest2.cpp | 102 -
trunk/tests/DayTimeToleranceTest.cpp | 101 -
trunk/tests/EphComp.cpp | 108 -
trunk/tests/FileSpecTest.cpp | 114 -
trunk/tests/FileSpecTest.pl | 15 -
trunk/tests/Jamfile | 63 -
trunk/tests/Makefile.am | 34 -
trunk/tests/MinSfTest.cpp | 307 -
trunk/tests/Rinex_dl.pl | 111 -
trunk/tests/TimeTest.cpp | 388 -
trunk/tests/Xbegweek.cpp | 135 -
trunk/tests/Xendweek.cpp | 158 -
trunk/tests/configfile.txt | 52 -
trunk/tests/data/405_077A.02M | 108 -
trunk/tests/data/nga12600.apc | 5303 --
trunk/tests/data/nga12601.apc | 5303 --
trunk/tests/daytimetest.cpp | 78 -
trunk/tests/delFileSpecTestDirs.pl | 25 -
trunk/tests/exceptiontest.cpp | 50 -
trunk/tests/genFileSpecTestDirs.pl | 30 -
trunk/tests/gpszcounttest.cpp | 182 -
trunk/tests/positiontest.cpp | 232 -
trunk/tests/rinex_met_read_write.cpp | 61 -
trunk/tests/rinex_met_test.cpp | 57 -
trunk/tests/rinex_nav_read_write.cpp | 59 -
trunk/tests/rinex_nav_test.cpp | 58 -
trunk/tests/rinex_obs_read_write.cpp | 63 -
trunk/tests/rinex_obs_test.cpp | 59 -
trunk/tests/runAllTests.bat | 72 -
trunk/tests/stringutiltest.cpp | 468 -
trunk/tests/testscript.pl | 184 -
1818 files changed, 731717 insertions(+), 119371 deletions(-)
diff --git a/dev/AUTHORS b/dev/AUTHORS
new file mode 100644
index 0000000..dc7180d
--- /dev/null
+++ b/dev/AUTHORS
@@ -0,0 +1,32 @@
+$Id$
+
+GPS Toolkit Authorship
+------------------------------------------------------------------------------
+ The GPSTk is sponsored by the Space and Geophysics Laboratory, within the
+ Applied Research Laboratories at the University of Texas at Austin (ARL:UT).
+ GPSTk is the by-product of GPS research conducted at ARL:UT since before
+ the first GPS satellite launched in 1978; it is the combined effort
+ of many software engineers and scientists. In 2003 the research staff
+ at ARL:UT decided to open source much of their basic GPS processing
+ software as the GPSTk.
+
+Contact Information
+------------------------------------------------------------------------------
+ GPSTk Homepage
+ ----------------------------
+ http://gpstk.sourceforge.net
+
+ SGL:ARL:UT Homepage
+ ----------------------------
+ http://sgl.arlut.utexas.edu
+
+ Mailing Lists Subscribe/Unsubscribe/Archive URL
+ ------------------------------------ -------------------------------------
+ gpstk-users at lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/gpstk-users
+ gpstk-devel at lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/gpstk-devel
+ gpstk-announce at lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/gpstk-announce
+ gpstk-admin at lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/gpstk-admin
+
+ Email
+ ----------------------------
+ Please send general GPSTk comments to gpstk at arlut.utexas.edu .
diff --git a/trunk/COPYING b/dev/COPYING
similarity index 100%
rename from trunk/COPYING
rename to dev/COPYING
diff --git a/dev/ChangeLog b/dev/ChangeLog
new file mode 100644
index 0000000..19da576
--- /dev/null
+++ b/dev/ChangeLog
@@ -0,0 +1,442 @@
+Version 1.3 Monday, July 16, 2006
+
+ General modifications
+ ---------------------
+
+ - Added examples/example7.cpp & associated RINEX data files
+ This program shows 10 different ways to process GPS data using
+ "GNSS data structures". The "GNSS Data Structures" paradigm can
+ process GPS code-based data based on Voctors, Matrices
+ and other objects.
+ - Added examples/example6.cpp
+ Shows a rather minimilist way to process GPS data using GNSS Data
+ Strutures
+
+ - Improved src/icd_200_constants.hpp
+ Fixed RSVCLK value
+
+ - GPSTk is now able to build under the MS Visual Studio 2005 (Express
+ Edition)
+
+ Library modifications
+ ---------------------
+
+ - Added src/SimpleKalmanFilter.[h|c]pp
+ Implements a version of the Kalman filter, based in Vectors
+ and Matrices - not yet GNSS data stuctrures-enabled
+
+ - Added src/NablaOp.[h|c]pp
+ Applies differences in satellite-related data to the GNSS
+ data structures (a.k.a. GDS)
+
+ - Added src/TypeID.[h|c]pp
+ Index able to represent any type of observation, correction,
+ model paratmeter or other data value of interest
+
+ - Added src/DataHeaders.[h|c]pp
+ Adds several headers to be used with the GNSS data structures
+ classes
+
+ - Added DataStructures.[h|c]pp
+ Set of data structures to be used by other GPSTk classes
+
+ - Added src/DeltaOp.[h|c]pp
+ Applies differences on ground-related data to the GNSS data
+ structures
+
+ - Added src/ComputeCompination.hpp
+ Base class to ease computing of data for the GNSS data structures
+
+ - Added src/ComputePC.hpp
+ Eases computing the PC combination for GNSS data structures
+
+ - Added src/ComputeLC.hpp
+ Eases computing the LC combination for GNSS data structures
+
+ - Added src/ComputeLI.hpp
+ Eases computing the LI combination for GNSS data structures
+
+ - Added src/ComputeLdelta.hpp
+ Eases computing the Ldelta combination for GNSS data structures
+
+ - Added src/ComputePdelta.hpponly
+ Eases computing the Pdelta combination for GNSS data structures
+
+ - Added src/ComputePI.hpp
+ Eases computing the PI combination for GNSS data structures
+
+ - Added src/ComputeMelbourneWubbena.hpp
+ Eases computing the ComputeMelbourneWubbena combination for
+ GNSS data structures
+
+ - Added src/ComputeIURAWeights.hpp
+ Computes satellites weights based on URA Index for GNSS data
+ structures
+
+ - Added src/ComputeMOPSWeights.hpp
+ Computes satellites weights based on Appendix J of MOPS C
+ (RTCA/DO-229C), for GNSS data structures
+
+ - Added src/SimpleFilter.hpp
+ Filters satellites with observables grossly out of bounds,
+ intended for GNSS data structures
+
+ - Added src/OneFreqCSDetector.hpp
+ Detects cycle slips using observables in just one frequency
+
+ - Added src/LICSDetector.hpp
+ Detects cycle slips using LI observables
+
+ - Added src/MWCSDetector.hpp
+ Detects cycle slips using the Melbourne-Wubbena combination
+
+ - Added src/CodeSmoother.hpp
+ Smoothes a given code observable using the corresponding phase
+ observable
+
+ - Added src/PCsmoother.hpp
+ Smoothes PC code obserrvables using the corresponding LC phase
+ observables
+
+ - Added src/XYZ2NEU.[h|c]pp
+ Refrence frame change from ECEF XYZ to topcentric North-East-Up
+
+ - Added src/XYZ2NED.[h|c]pp
+ Refrence frame change from ECEF XYZ to topcentric North-East-Down
+
+ - Added src/TimeNamedFileStream.hpp
+ Simple time-based file name stream
+
+ - Improved src/ModeledReferencePR.[c|h]pp
+ Adapted to work with GNSS data structures
+
+ - Improved src/ModeledPR.[h|c]pp
+ Adapted to work with GNSS data structures
+
+ - Improved src/TropModel.hpp
+ Added method MOPSTropModel::setAllParameters()
+
+ - Improved src/SolverLMS.[h|c]pp
+ Adapted to work with GNSS data structures
+
+ - Improved src/SolverWMS.[h|c]pp
+ Adapted to work with GNSS data structures
+
+ - Improved src/icd_200_constants.hpp
+ Added data regarding L5, L6, L7 and L8
+
+ - Improved src/RinexHeader.[h|c]pp
+ Can now process RINEX2.11 navigation files
+
+ - Improved src/icd_200_constants.hpp
+ Fixed RSVCLK
+
+ - Improved src/SP3Data.cpp
+ Modified the reader to be tolerant of short PG lines
+
+ - Improved src/RinexUtilitties.[h|c]pp
+ Added a sort routine
+
+ - Improved src/EngAlmanac.[h|c]pp
+ Routing added that performs a simple sanity check on the almanac
+
+ Application modifications
+ -------------------------
+
+ - Improved apps/differential/vecsol.cpp
+ Along with other submissions allows the toolkit to build under
+ the MS Visual Studio 2005
+
+ - Improved apps/Rinextools.[h|c]pp
+ Increased robustness and added multiple input file capabilities
+
+ - Improved all tools to process input files in time order:
+ apps/Rinextools/ResCor.cpp
+ apps/Rinextools/RinSum.cpp
+ apps/Rinextools/RinexDump.cpp
+ apps/positioning/PRSolve.cpp
+
+Version 1.2 Monday, November 6, 2006
+
+ General modifications
+ ---------------------
+
+ - Moved from Perfoce to a Subversion repository located at
+ https://svn.sourceforge.net/svnroot/gpstk
+
+ - GPSTk library testing is now being implemented in dev/tests
+ These unit tests for the library currently cover over
+ 40% of the code with an average of 95% coverage for
+ tested classes. Tests use CppUnit and Perl scripts.
+ See test documentation for more information.
+
+ - Added examples/example5.cpp
+ An example that shows how to use some very useful high level
+ GPSTk classes for positioning
+
+ - Added Python support to the GPSTk
+
+ - Added capability for FileHunter to work under Window and Cigwin
+
+ Library modifications
+ ---------------------
+
+ - Added RINEX version 2.11 support for GPS Navigation files
+
+ - Added the following prototype time classes:
+ src/CommonTime.[h|c]pp
+ src/YDSTime.[h|c]pp
+ src/CivilTime.[h|c]pp
+ src/GPSEpochWeekSecond.[h|c]pp
+ src/GPSWeekSecond.[h|c]pp
+ src/GPSWeekZcount.[h|c]pp
+ src/JulianDate.[h|c]pp
+ src/MJD.[h|c]pp
+ src/UnixTime.[h|c]pp
+
+ - Added src/TimeConstants.hpp
+ Time constants
+
+ - Added src/TimeConverters.[c|h]pp
+ Time converstion routines
+
+ - Added src/Bancroft.[h|c]pp
+ Class gets an initial guess of GPS receiver's position
+
+ - Added src/SVExclusionList.[h|c]pp
+
+ - Added and implemented src/SatID.hpp
+ Class which encapsulates Satellite Identification information
+
+ - Added src/ModeledPR.[h|c]pp
+ Encapsulates computation of modeled psuedoranges of a mobile
+ receiver
+
+ - Added src/SimpleIURAWeight.[h|c]pp
+ Assigns weights to satellites based on their URA Index
+
+ - Added src/ModeledPseudorangeBase.hpp
+ An abstract base class for modeled pseudoranges
+
+ - Added src/WeightBase.hpp
+ An abstract base class for algorithms assigning weights to satellites
+
+ - Improved src/Matrix.hpp and src/Vector.hpp
+ Added unary minus operator, CholeskyCrout class and inverseChol method
+
+ - Improved src/Vector.hpp
+ Added add() method
+
+ - Improved src/Stats.hpp
+ Better handling of weighted input
+
+ - Improved src/Tropmodel.[h|c]pp
+ Added GCAT tropospheric model
+ Added MOPSTropModel
+
+ - Improved src/Position.[h|c]pp
+ Added methods elevationGeodetic() and azimuthGeodetic()
+
+ - Improved src/TabularEphemerisStore.[h|c]pp
+ Added method hasTGD()
+
+ - Improved src/BCEphemerisStore.[h|c]pp
+ Added method getTGD() to return the Total Group Delay of the SV
+
+ - Improved src/EphemerisRange.[h|c]pp
+ Added methods elevationGeodeitc() and azimuthGeodetic().
+ Changed RelativityCorrection() to improved speed and precision
+
+ - Added src/BinexData.[c|h]pp BinexFilterOperators.hpp BinexStream.hpp
+ Added BINEX code
+
+ Application modifications
+ -------------------------
+
+ - Added apps/positioning/poscvt
+ A position converter modeled after timecvt
+
+ - Added apps/geomatics/relposition/DDBase
+ A network positioning application that uses double
+ differenced carrier phases
+
+ - Added apps/geomatics/kalman
+ Tools for Kalman filtering
+
+ - Added apps/geomatics/robust
+ Tool for robust statistics
+
+ - Added apps/geomatics/????
+ Added geodetic reference frames
+
+ - Complete rewrite and move of apps/cycleslips/DiscFix
+ Located now in apps/geomatics/cycleslips/DiscFix
+ DiscFix is now much more object-oriented, faster, more robust
+ and more accurate. Significant changes have been made to the
+ algorithm.
+
+ - Added apps/visibility/wheresat
+ A tool for caculating SV position, azimut and
+ elevation from a navigation file
+
+ - Added apps/converters/novaRinex
+ A Novatel binary to Rinex converter
+
+ - Improved apps/filetools/navdmp
+ Added -r (RINEX) input capability
+
+ - Added apps/qa/Expression
+ A fully functional expression interpreter
+
+ - Added apps/qa/obsrip
+ A utility which transforms RINEX files into linear combos, ect.
+
+ - Added functionality to apps/multipath/ObsArray
+ Can track observations by PRN and by epoch. Also can insert
+ GPS constants into Expressions.
+
+ - Added apps/positioning/posInterp
+ This application interpolates positions in a RINEX file, increasing
+ the data rate by an integer factor. An example that uses both
+ posInterp and PRSolve is included.
+
+ - Added apps/visibility/findMoreThan12
+ A new tools which given an ephemeris source, finds times when there are
+ more than 12 SVs simultaneously above a specified elevation angle.
+
+ - Improved apps/positioning/rinexpvt
+ Added optional log file to output
+ Added option to set observation rate to other than 30s
+
+
+Version 1.1 Friday, January 7, 2005
+
+ General modifications
+ ---------------------
+
+ - Added patches to support more compilers:
+ GNU compiler version 3.4
+ GNU compiler under AIX
+ Sun ONE Studio 8
+
+ - GNU make/configure capabilities have been added. Since this
+ is a new feature, your mileage may vary. The makefiles
+ work on systems with newer autoconf toolchain versions.
+
+ - More examples were added to gpstk/examples.
+ These examples are described in the website.
+
+ - Major revamp of the website.
+
+ Library modifications
+ ---------------------
+
+ - P code generator was allocating over 20 megabytes in
+ processes that use the shared library. Now the 20 megabytes
+ are not allocated until the P code generator is initialized
+ by the user.
+
+ - Bug fix: FileSpec::extractDayTime() now initializes
+ DayTimes generated from file name to have zero hours,
+ zero minutes, zero seconds, etc.
+
+ - Bug fix: DayTime::setGPS now more robust when accepting
+ a year number as a hint to disambiguate which full GPS
+ week to use.
+
+ - Added more DayTime tests.
+
+ - Bug fix: DayTime user-defined tolerance for comparisons now is
+ working.
+
+ - Bug fix: DayTime::setGPS(short week, long zcount, short year)
+ now works across a year rollover.
+
+ - Renamed WxObsData::find(...) to getWxObservation(...) to remove
+ any confusion that might develop over having the same method
+ name as the STL.
+
+ - Bug fix: satellite combinations in RAIM sometimes incorrect when
+ a user-marked satellite was present.
+
+ - Some Vector routines were throwing Exception instead of
+ VectorException.
+
+ - Added Vector-Matrix concatentation operators.
+
+ - Added a sub-Vector constructor.
+
+ - Modification to Householder decomposition routine.
+
+ - Various fixes to MatrixOperators.
+
+ - Updates to FIC routines.
+
+ - Implemented azimuth and elevation functions in Position, making
+ use of the functions inherited from Triple. Modified EphemerisRange
+ to use Position, as well as TropModel and ResCor; this eliminated
+ a bug in the azimuth() in EphemerisRange and means that now there
+ is only one implementation of az and el. Added a test of the new
+ routines in positiontest. Also added a Position constructor from Xvt.
+
+ - Bugs in DayTime::setToString() - %f was missing (!) and %S
+ was acting as %f should; date was trashed when time was set,
+ and vice versa, and year input was not properly handled.
+
+ - Implemented ionospheric model types other than linear.
+
+ - Cleaned up weather data handling (e.g., error checks).
+
+
+ Application modifications
+ -------------------------
+
+ apps/difftools
+
+ - Unified code using a common class.
+
+
+ apps/filetools
+
+ - Improvments to navdmp.
+
+ - New utility called rinexthin for subsampling RINEX observation
+ files.
+
+
+ apps/binding
+
+ - This new project provides GPSTk bindings in other languages
+ has been added. This capability is in an alpha state.
+ Currently there are a limited set of bindings for
+ Tcl/Tk, Python and Octave.
+
+
+ apps/RinexEditor
+
+ - Bug fix: 'delete all' command was being deleted prematurely.
+
+
+ apps/RinexPlot
+
+ - Improved documentation.
+
+ - Various tweaks.
+
+ - Plotting improvements.
+
+
+ apps/ionosphere
+
+ - Various improvements.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dev/Doxyfile b/dev/Doxyfile
new file mode 100644
index 0000000..33e14a2
--- /dev/null
+++ b/dev/Doxyfile
@@ -0,0 +1,1177 @@
+#
+# The version in Subversion is optimized for the GPSTk website. Note that
+# any changes to this file will effect the documentation display at
+# http://www.gpstk.org/doxygen/.
+#
+# This file should work locally without modification however it will have
+# a 'search' entry that will be nonfunctional unless hosted by a web server.
+#
+
+# Doxyfile 1.3.9.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+# TAG = value [value, ...]
+# For lists items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "GPS ToolKit Software Library"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of source
+# files, where putting all generated files in the same directory would otherwise
+# cause performance problems for the file system.
+
+CREATE_SUBDIRS = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish,
+# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese,
+# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish,
+# Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE = English
+
+# This tag can be used to specify the encoding used in the generated output.
+# The encoding is not always determined by the language that is chosen,
+# but also whether or not the output is meant for Windows or non-Windows users.
+# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES
+# forces the Windows encoding (this is the default for the Windows binary),
+# whereas setting the tag to NO uses a Unix-style encoding (the default for
+# all platforms other than Windows).
+
+USE_WINDOWS_ENCODING = NO
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is used
+# as the annotated text. Otherwise, the brief description is used as-is. If left
+# blank, the following values are used ("$name" is automatically replaced with the
+# name of the entity): "The $name class" "The $name widget" "The $name file"
+# "is" "provides" "specifies" "contains" "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
+# members of a class in the documentation of that class as if those members were
+# ordinary class members. Constructors, destructors and assignment operators of
+# the base classes will not be shown.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like the Qt-style comments (thus requiring an
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF = YES
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the DETAILS_AT_TOP tag is set to YES then Doxygen
+# will output the detailed description near the top, like JavaDoc.
+# If set to NO, the detailed description appears after the member
+# documentation.
+
+DETAILS_AT_TOP = YES
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
+# only. Doxygen will then generate output that is more tailored for Java.
+# For instance, namespaces will be presented as packages, qualified scopes
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation.
+
+SHOW_DIRECTORIES = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR = YES
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT = . \
+ ./src/README
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
+# *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
+
+FILE_PATTERNS = *.hpp \
+ *.h \
+ *.cpp
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE = ./tests \
+ ./examples \
+ ./apps
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+
+EXCLUDE_PATTERNS = getopt.h \
+ regex.h
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH = ./tests \
+ ./examples
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS = *.cpp
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output. If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default)
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default)
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION = YES
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX = NO
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader. This is useful
+# if you want to understand what is going on. On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION = YES
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_PREDEFINED tags.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH = ./src
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse the
+# parser if not removed.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base or
+# super classes. Setting the tag to NO turns the diagrams off. Note that this
+# option is superseded by the HAVE_DOT option below. This is only a fallback. It is
+# recommended to install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will
+# generate a call dependency graph for every global function or class method.
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+
+CALL_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found on the path.
+
+DOT_PATH = /usr/bin
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS = .
+
+# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_WIDTH = 1024
+
+# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
+# (in pixels) of the graphs generated by dot. If a graph becomes larger than
+# this value, doxygen will try to truncate the graph, so that it fits within
+# the specified constraint. Beware that most browsers cannot cope with very
+# large images.
+
+MAX_DOT_GRAPH_HEIGHT = 1024
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes that
+# lay further from the root node will be omitted. Note that setting this option to
+# 1 or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that a graph may be further truncated if the graph's image dimensions are
+# not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH and MAX_DOT_GRAPH_HEIGHT).
+# If 0 is used for the depth value (the default), the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE = YES
diff --git a/dev/INSTALL b/dev/INSTALL
new file mode 100644
index 0000000..c8d81be
--- /dev/null
+++ b/dev/INSTALL
@@ -0,0 +1,386 @@
+Installation of the GPSTk library and applications
+--------------------------------------------------
+
+This INSTALL file has these sections
+
+Introduction
+Building and Installing in a UNIX-like Environment using Jam
+Building and Installing in a UNIX-like Environment using GNU make
+Building under Microsoft Visual Studio .NET 2003
+ADDENDUM: Standard notes on using configure
+
+More background information can be found at the GPSTk website,
+http://www.gpstk.org/ .
+
+
+Introduction
+------------
+ This project uses Jam for all of its configuration, build & install tasks.
+ See http://perforce.com/jam/jam.html for more details on this tool.
+ There are two sections below, excepted from the GPSTk website at
+ http://www.gpstk.org/, that describe how UNIX and Windows users
+ can build and install the GPSTk.
+
+ This project uses doxygen to dynamically generate API documentation.
+ See http://www.doxygen.org/ for more details.
+
+ As of ver. 1.1 we have introduced autoconf generated Makefiles into the
+ GPSTk. Since this is a new feature, your mileage may vary. If you don't
+ know how use these makefile, the attached info at the bottom of this file
+ from the Free Software Foundation will help.
+
+ For more information about building the GPSTk, see the website at
+ http://www.gpstk.org/
+
+
+Building and Installing in a UNIX-like Environment using Jam
+------------------------------------------------------------
+
+This section describes build and installation under the following environments.
+
+ - Linux, AIX and Windows/Cygwin using gcc versions 3.3 and 3.4
+ - Solaris using Sun Workshop 6 or Sun ONE Studio 8
+
+The following procedure will build and install the GPSTk.
+
+ 1. Ensure that prerequisites such as jam have been installed.
+
+ 2. Download the GPSTk distribution.
+
+ 3. Extract the GPSTk tarball. For example, using GNU tar
+
+ $ tar xvzf gpstk.tar.gz
+
+ 4. Change into the gpstk directory and type
+
+ $ jam
+
+ 5. To build the source documentation using doxygen:
+
+ $ doxygen
+
+ 6. To install GPSTk as a system library in /usr/local, assume root
+ privileges then execute
+
+ $ jam install
+
+
+Building and Installing in a UNIX-like Environment using GNU make
+-----------------------------------------------------------------
+
+The following procedure will build and install the GPSTk using recent,
+standard GNU build tools. The build has been successfully tested using the
+following tools and versions:
+
+ autoconf (GNU Autoconf) 2.59
+ GNU m4 1.4.2
+ automake (GNU automake) 1.8.5
+
+To check the version of the tool you are using, use the GNU standard version option. For example
+
+ autoconf --version
+
+If you successfully build the GPSTk using other versions of the tools, or
+if you successfully build in a new environment, please let us know.
+
+The following procedure will build and install the GPSTk.
+
+ 1. Ensure that prerequisites, except jam , have been installed.
+
+ 2. Download the GPSTk distribution.
+
+ 3. Extract the GPSTk tarball. For example, using GNU tar
+
+ tar xvzf gpstk.tar.gz
+
+ 4. Change into the gpstk directory and type
+
+ ./configure
+ make
+
+ 5. To build the source documentation using doxygen:
+
+ doxygen
+
+ 6. To install GPSTk as a system library in /usr/local, assume root
+ privileges then execute
+
+ make install
+
+
+Building under Microsoft Visual Studio .NET 2003
+------------------------------------------------
+
+If you are building GPSTk under the Cygwin environment, then use the build
+instructions for UNIX-like environments (above).
+
+The GPSTk is not supported under Microsoft Visual C++ 6.0, or earlier, mainly
+because templates in classes are not supported. Currently there are no
+Makefiles for MSVS, so you must use jam to build the GPSTk on the command line.
+
+Here are the steps we have used to build under MSVS.NET 2003.
+
+ 1. Ensure that prerequisites such as jam have been installed.
+
+ 2. You may have to reinstall the compiler to build with GPSTk. In order f
+ or Jam to work under Windows, the MSVS command line tools
+ (compiler and linker) must be installed in a directory without
+ whitespace in it. Thus the default installation directory
+ (\Program Files\...), for example, will cause Jam to fail. Sorry,
+ you'll have to re-install in another directory; for example we used
+ C:\MSVS2003. Also, if the VCVARS32.BAT batch file was not installed,
+ this option must be chosen during a reinstallation.
+
+ 3. Open a command window and run the VCVARS32.BAT batch file before
+ running Jam.
+
+ 4. Jam requires that two other environment variables be set. Using the
+ command line:
+
+ set MSVCNT=C:\MSVS2003\VC7
+ set NEED_REGEX=yes
+
+ The directory on the right of the '=' is the directory where the command
+ line tools are installed (it will have subdirectories bin,lib,include,
+ etc.); this tells Jam where the compiler and linker are. NEED_REGEX
+ tells Jam to compile regex.c into the library, as it is not part of the
+ MSVS libraries.
+
+ 5. Ensure the Jam executable for Windows is in the path. Install the GPSTk
+ tarball and change to the /dev directory of the GPSTk -- the file
+ 'Jamrules' should be here -- and type
+
+ jam
+
+
+ADDENDUM: Standard notes on using configure
+-------------------------------------------
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+ This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+ These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+ By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc. You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+ Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
\ No newline at end of file
diff --git a/dev/Jamfile b/dev/Jamfile
new file mode 100644
index 0000000..c23f3b3
--- /dev/null
+++ b/dev/Jamfile
@@ -0,0 +1,11 @@
+#
+# $Id$
+#
+
+SubDir TOP ;
+
+SubInclude TOP src ;
+SubInclude TOP lib ;
+SubInclude TOP apps ;
+SubInclude TOP examples ;
+# SubInclude TOP tests ;
diff --git a/dev/Jamrules b/dev/Jamrules
new file mode 100644
index 0000000..ad15458
--- /dev/null
+++ b/dev/Jamrules
@@ -0,0 +1,315 @@
+#
+# $Id$
+#
+
+# not much here... just use defaults as much as possible
+
+NotFile install ;
+
+KEEPOBJS = true ;
+
+# where to install the .hpp files
+INCDIR = /usr/local/include ;
+
+# override the built-in EXEMODE
+EXEMODE = 755 ;
+
+# Used to prevent mixing static and dynamic library objects.
+# This was, once upon a time, .lo, but forte's C compiler prevents, stupidly,
+# any attempt to use any extension other than .o
+SUFOBJ2 ?= -l.o ;
+
+# some OS specific stuff
+if $(UNIX)
+{
+ LIBPREFIX = lib ;
+ LDSHARE_FLAGS = -shared ;
+ LINKLIBS += -lm ;
+ switch $(OS)
+ {
+ case CYGWIN :
+ LINKLIBS += -lstdc++ ;
+
+ case LINUX :
+ LINKLIBS += -lstdc++ ;
+ CCSHARE_FLAGS = -fPIC ;
+
+ case OPENBSD :
+ LINKLIBS += -lstdc++ ;
+ CCSHARE_FLAGS = -fPIC ;
+
+ case SOLARIS :
+ LINKLIBS += -lgen ;
+ # for solaris forte
+ if ( $(C++) = CC )
+ {
+ LDSHARE_FLAGS = -G -mt ;
+ CCSHARE_FLAGS = -KPIC ;
+ CCFLAGS += -Xc ;
+ C++FLAGS += -compat=5 ;
+ AR = "CC -xar -o" ;
+ NOARSCAN = true ;
+ RM = "rm -rf" ;
+ # Required for TCP things to compile.
+ LINKLIBS += -lnsl -lsocket ;
+ }
+ else # for solaris gcc
+ {
+ LINKLIBS += -lstdc++ ;
+ CCSHARE_FLAGS = -fPIC ;
+ }
+
+ case AIX :
+ LINKLIBS += -lstdc++ ;
+ }
+ SUFLIBSHR ?= .so ;
+}
+else if $(NT)
+{
+ LIBPREFIX = "" ;
+ NEED_REGEX = true ;
+ # do NOT define __STDC__ here
+
+ # use these to create a dll
+ #LDSHARE_FLAGS ?= /MAP /DLL ;
+ #SUFLIBSHR = .dll ;
+
+ # Microsoft compilers define macro _MSC_VER = MMmm.mm MM=Major ver mm.mm=minor ver.
+ # ------ MS VC++ 2005 : _MSC_VER >= 1400
+ if $(MSCVER) >= 1400 {
+ MSVCVersion = "VC++2005(VC8)" ;
+ LINKLIBS = ;
+ # -wd turns off warnings; warning 4274 says its ignoring #ident
+ # _CRT_SECURE... stops (many!) warnings
+ # /Ox is max optimize for speed, /O2 opt for speed,
+ # /GL whole prgm opt (add /LTCG to LINKFLAGS)
+ # /O2 seems to be the best
+ CCFLAGS += -D_CRT_SECURE_NO_DEPRECATE -wd4274 ;
+ C++FLAGS += /O2 -DWIN32 -D_CRT_SECURE_NO_DEPRECATE /EHsc /GR -wd4274 ;
+ #LINKFLAGS += /LTCG ; # use with /GL
+ }
+ # ------ MS VC++.NET 2003 : _MSC_VER >= 1300
+ else if $(MSCVER) >= 1300 {
+ MSVCVersion = "VC++.NET2003(VC7)" ;
+ LINKLIBS = ;
+ CCFLAGS += /ML -wd4274 ;
+ # use /O2 optimization
+ C++FLAGS += /O2 /ML -DWIN32 /GX /GR -wd4274 -wd4675 ;
+ }
+ # ------ MS VC++ 6 : _MSC_VER >= 1200
+ # VC++ ver 6 and earlier do not support templates in classes or the toolkit
+ else {
+ Echo "If MSCVER is set, compiler is not supported in Jamrules; otherwise" ;
+ Echo " for MSVC++.NET2003, set MSCVER=1300" ;
+ Echo " for MSVC++2005, set MSCVER=1400" ;
+ }
+ Echo " Version" $(MSVCVersion) "( MSCVER ==" $(MSCVER) ")" ;
+}
+
+# compiler specific stuff - this is probably actually pretty clumsy
+if ( $(CC) != gcc )
+{
+ NEED_GETOPT = true ;
+}
+
+if $(PREFIX)
+{
+# fix does this need to be forward/backslash independent? darn windows.
+ BINDIR = [ FDirName $(PREFIX) bin ] ;
+ LIBDIR = [ FDirName $(PREFIX) lib ] ;
+ INCDIR = [ FDirName $(PREFIX) include ] ;
+}
+
+# debug - edit this as needed.
+if $(DEBUG)
+{
+ # forte
+ if ( $(C++) = CC ) && ( $(OS) = SOLARIS )
+ {
+ OPTIM = -g -xs ;
+ }
+ # gcc-ish rules
+ else if ( $(C++) = cc ) || ( $(C++) = g++ ) || ( $(C++) = c++ )
+ {
+ OPTIM = -ggdb ;
+ }
+ else if $(MSVC) || $(MSVCNT)
+ {
+ OPTIM = /DEBUG ;
+ }
+}
+
+rule BonkForte
+{
+ # forte for solaris...
+ if ( $(C++) = CC ) && ( $(OS) = SOLARIS )
+ {
+ # we need the explicit /usr/include to make sure the regex.h there
+ # is included instead of the one in the gpstk/dev/src directory
+ CCFLAGS += -I/usr/include ;
+ C++FLAGS += -I/usr/include ;
+ }
+}
+
+rule LibObjects
+{
+ local _i ;
+
+ for _i in [ FGristFiles $(<) ]
+ {
+ Object $(_i:S=$(SUFOBJ2)) : $(_i) ;
+ Depends obj : $(_i:S=$(SUFOBJ2)) ;
+ }
+}
+
+
+# Useage :
+# GPSSetupLibrary target : depenancies ;
+rule GPSSetupLibrary
+{
+ local lib = [ FGristFiles $(LIBPREFIX)$(<:S=$(SUFLIB)) ] ;
+ MakeLocate $(lib) : $(LOCATE_SOURCE) ;
+ $(1)_DIR = $(SUBDIR) ;
+ $(1)_GRIST = $(lib) ;
+ $(1)_DEPENDENCIES = $(2) ;
+}
+
+rule GPSBuildLibrary
+{
+ # $(<) is short name of lib to build.
+ # $(>) is the list of sources that build lib.
+
+ local shlib arlib ;
+ local statobjs shrobjs ;
+ local dependencies = [ Uniqueify [ GetDependencies $(<) ] ] ;
+
+ if $(dependencies)
+ {
+ local thisDependency ;
+ for thisDependency in $(dependencies)
+ {
+ SubDirHdrs $($(thisDependency)_DIR) ;
+ }
+ }
+
+ arlib = $(LIBPREFIX)$(<:S=$(SUFLIB)) ;
+ statobjs = $(>:S=$(SUFOBJ)) ;
+
+ Depends lib : $(arlib) ;
+ Objects $(>) ;
+ LibraryFromObjects $(arlib) : $(statobjs) ;
+ InstallLib $(LIBDIR) : $(arlib) ;
+
+ # Windows is limited to 1024 character command lines. This goes over that.
+ # Until we can figure out how to properly split our library, we just can't
+ # build DLLs for Windows.
+ if $(UNIX)
+ {
+ shlib = $(LIBPREFIX)$(<:S=$(SUFLIBSHR)) ;
+ shrobjs = $(>:S=$(SUFOBJ2)) ;
+ ObjectCcFlags $(shrobjs) : $(CCSHARE_FLAGS) ;
+ ObjectC++Flags $(shrobjs) : $(CCSHARE_FLAGS) ;
+ LINKFLAGS on $(shlib) += $(CCSHARE_FLAGS) $(LDSHARE_FLAGS) $(OPTIM) ;
+ Depends lib : $(shlib) ;
+ LibObjects $(>) ;
+ MainFromObjects $(shlib) : $(shrobjs) ;
+ InstallLib $(LIBDIR) : $(shlib) ;
+ }
+}
+
+rule GPSLinkLibraries
+{
+ local dependencies = [ Uniqueify [ GetDependencies $(>) ] ] ;
+ dependencies = [ Uniqueify $(>) $(dependencies) ] ;
+
+ if $(dependencies)
+ {
+ local thisDependency ;
+ local thisDir thisLib ;
+ for thisDependency in $(dependencies)
+ {
+ thisDir = $($(thisDependency)_DIR) ;
+ SubDirHdrs $(thisDir) ;
+ thisLib = $($(thisDependency)_GRIST) ;
+ LinkLibraries $(<) : $(thisLib) ;
+ }
+ }
+}
+
+# a rule to replace Main that includes the functionality of GPSFile.
+rule GPSMain
+{
+ Main $(<) : $(>) ;
+ InstallBin $(BINDIR) : $(<:S=$(SUFEXE)) ;
+}
+
+# a rule to replace File that also cleans it when "jam clean" is run.
+# $(1) is the target, $(2) is the source, $(3) is the mode.
+# $(3) is optional - it will default to 644.
+#
+# GPSFile $(TARGETETCDIR)/moo : moo : $(EXEMODE) ;
+# GPSFile $(TARGETETCDIR)/moo2 : moo2 ;
+#
+rule GPSFile
+{
+ File $(1) : $(2) ;
+ if $(3)
+ {
+ MODE on $(1) = $(3) ;
+ }
+ Clean clean : $(1) ;
+}
+
+PREPROCESSING = yes ;
+SubInclude TOP src ;
+SubInclude TOP lib ;
+PREPROCESSING = ;
+
+rule TestFiles
+{
+ Depends test : $(<) ;
+ if $(TESTCODE)
+ {
+ ReallyTestFiles $(<) : $(>) ;
+ }
+}
+
+actions ReallyTestFiles
+{
+ $(<) $(>)
+}
+
+
+rule GetDependencies
+{
+ local thisDepends itr ;
+
+ if $($(1)_DEPENDENCIES)
+ {
+ thisDepends += $($(1)_DEPENDENCIES) ;
+ thisDepends += [ GetDependencies $($(1)_DEPENDENCIES) ] ;
+ }
+ return $(thisDepends) ;
+}
+
+rule Uniqueify
+{
+ local thisList thisItem thatItem found newList ;
+
+ for thatItem in $(1)
+ {
+ found = 0 ;
+ newList = ;
+ for thisItem in $(thisList)
+ {
+ if $(thatItem) != $(thisItem)
+ {
+ newList += $(thisItem) ;
+ }
+ }
+ newList += $(thatItem) ;
+ thisList = $(newList) ;
+ }
+ return $(thisList) ;
+}
+
diff --git a/dev/Makefile.am b/dev/Makefile.am
new file mode 100644
index 0000000..a38c911
--- /dev/null
+++ b/dev/Makefile.am
@@ -0,0 +1,3 @@
+# $Id$
+EXTRA_DIST = README
+SUBDIRS = src lib apps examples
diff --git a/dev/NEWS b/dev/NEWS
new file mode 100644
index 0000000..ed21f53
--- /dev/null
+++ b/dev/NEWS
@@ -0,0 +1,20 @@
+$Id$
+
+GPS Toolkit News
+------------------------------------------------------------------------------
+ July 16, 2007 . . . . Release Cadidate for Version 1.3 is frozen in the
+ repository
+
+ January 10, 2005 . . . Version 1.1 is released.
+
+ September 20, 2004 . . Version 1.0.2 is released to coincide with
+ presentation at the ION GNSS 2002 in
+ Portland, Oregon.
+
+ August 9, 2004 . . . . Version 1.0.1 released quickly to address
+ minor issues.
+
+ August 8, 2004 . . . . The first version of the GPSTk is released to
+ coincide with an article in LinuxJournal.
+
+ February 25, 2004 . . The GPSTk project is registered at SourceForge.net.
diff --git a/dev/README b/dev/README
new file mode 100644
index 0000000..6e1889c
--- /dev/null
+++ b/dev/README
@@ -0,0 +1,98 @@
+$Id$
+
+The following is excerpted from the GPSTk web site at http://www.gpstk.org/.
+
+What is GPSTk?
+--------------
+
+The goal of the GPSTk project is to provide a world class, open source
+computing suite to the satellite navigation community. It is our hope that the
+GPSTk will empower its users to perform new research and create new
+applications.
+
+GPS users employ practically every computational architecture and operating
+system. Therefore the design of the GPSTk suite is as platform-independent as
+possible. Platform independence is achieved through use of the ANSI-standard
+C++ programming language. The principles of object-oriented programming are
+used throughout the GPSTk code base in order to ensure that the code is
+modular, extensible and maintainable.
+
+The GPSTk suite consists of a core ibrary and a set of applications. The
+library provides a wide array of functions that solve processing problems
+associated with GPS such as processing or using RINEX. The library is the
+basis for the more advanced applications distributed as part of the GPSTk
+suite.
+
+The GPSTk is sponsored by Space and Geophysics Laboratory, within the Applied
+Research Laboratories at the University of Texas at Austin (ARL:UT). GPSTk is
+the by-product of GPS research conducted at ARL:UT since before the first
+satellite launched in 1978; it is the combined effort of many software
+engineers and scientists. In 2003 the research staff at ARL:UT decided to
+open source much of their basic GPS processing software as the GPSTk.
+
+
+GPSTk Library
+-------------
+
+The GPSTk library provides a number of models and algorithms found in GPS
+textbooks and classic papers, such as solving for the user position, or
+estimating atmospheric refraction. Common formats are supported as well, such
+as RINEX or SP-3. There are several categories of functions in the GPSTk
+library:
+
+ 1. GPS time. Conversion among time representations such as MJD, GPS week
+ and seconds of week, and many others.
+
+ 2. Ephemeris calculations. Position and clock interpolation for both
+ broadcast and precise ephemerides.
+
+ 3. Atmospheric delay models. Includes ionosphere and troposphere models.
+
+ 4. Position solution. Includes an implementation of a Receiver Autonomous
+ Integrity Monitoring algorithm.
+
+ 5. Mathematics. Includes Matrix and Vector implementations, as well as
+ interpolation and numerical integration.
+
+ 6. Application framework. Includes processing command lines options,
+ providing interactive help and working with file systems.
+
+A more detailed description of the functionality provided by the GPSTk library can be found in the Doxygen documentation.
+
+
+GPSTk Applications
+------------------
+
+The library is the foundation for applications within the GPSTk suite. Many
+such applications are utilities necessary for advanced research and
+development. For example the GPSTk utility DiscFix fixes cycle slips. Some
+applications implement algorithms described in research papers. The TECMap
+application is an example of an application that creates models of the
+ionosphere, based on models published by a number of researchers. To date
+GPSTk applications fall into the following categories.
+
+ 1. Ionosphere modeling. TEC calculation, receiver bias estimation.
+
+ 2. Residual analysis. Computation of pseudorange observations residuals,
+ and comparison between the precise and broadcast ephemerides.
+
+ 3. RINEX file manipulation. Differencing, mergins and clipping RINEX files.
+
+ 4. Interactive analysis. Bindings to Octave, an open source alternative to
+ MATLAB.
+
+
+License
+-------
+
+The source code provided by the GPSTk is distributed under the GNU LGPL
+(http://www.gnu.org/copyleft/lesser.html). This license gives all users the
+right to use and redistribute the code. Users of the GPSTk are not required
+to open their source, according to the LGPL. This makes the GPSTk a practical
+choice for commercial projects.
+
+Contact Info
+------------
+The GPSTk is a collaborative effort. However, you can email to
+gpstk at arlut.utexas.edu or contact one of the CoreTeam members
+(http://www.gpstk.org/bin/view/Development/CoreTeam).
\ No newline at end of file
diff --git a/dev/apps/DataAvailability/DataAvailabilityAnalyzer.cpp b/dev/apps/DataAvailability/DataAvailabilityAnalyzer.cpp
new file mode 100644
index 0000000..94fe389
--- /dev/null
+++ b/dev/apps/DataAvailability/DataAvailabilityAnalyzer.cpp
@@ -0,0 +1,760 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Performs a data availability analysis of the input data. In general,
+ availability is determined by station and satellite position.
+
+ This program refers to the items that can be specified as the (in)dependant
+ variables in the analysis as ObservationIDs or oid. The complete list of
+ these are:
+ el Elevation, degrees (0-90)
+ az Azimuth, degrees (0-360, 0=north)
+ time Time in mjd (or as specified)
+ prn SV ID (1-31)
+ ccid Three character Rinex 3.0 observation specification: tna
+ t: observation type (C, L, D, S)
+ n: carrier band (1, 2, 5)
+ a: code tracked (C, P, W, Y, M, I, Q, ...)
+ ch Channel (1-99)
+ snr Signal to noise ratio (C/C0) in dB-Hz
+ health SV health bits
+ tcnt Continuous tracking count
+ iod Issue of data
+ intrk Number of SVs in track
+ tama Time above mask angle
+*/
+
+#include <map>
+#include <algorithm>
+
+#include "StringUtils.hpp"
+#include "ObsID.hpp"
+
+#include "DataAvailabilityAnalyzer.hpp"
+
+#include "EphReader.hpp"
+#include "ObsReader.hpp"
+
+#include "MSCData.hpp"
+#include "MSCStream.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+//------------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//------------------------------------------------------------------------------
+DataAvailabilityAnalyzer::DataAvailabilityAnalyzer(const std::string& applName)
+ throw()
+ : timeFormat("%Y %j %02H:%02M:%04.1f"),
+ BasicFramework(
+ applName,
+ "Performs a data availability analysis of the input data. In general,"
+ "availability is determined by station and satellite position."),
+
+ inputOpt('o', "obs",
+ "Where to get the data to analyze.", true),
+
+ outputOpt('\0', "output",
+ "Where to send the output. The default is stdout."),
+
+ independantOpt('x', "indepndant",
+ "The independant variable in the analysis. The default "
+ "is time."),
+
+ ephFileOpt('e', "eph", "Where to get the ephemeris data. Can be "
+ " rinex, fic, or sp3", true),
+
+ mscFileOpt('c', "msc", "Station coordinate file"),
+
+ msidOpt('m', "msid", "Station to process data for. Used to select "
+ "a station position from the msc file."),
+
+ timeFmtOpt('t', "time-format", "Daytime format specifier used for "
+ "times in the output. The default is \""
+ + timeFormat + "\"."),
+
+ startTimeOpt('\0', "start-time", "%4Y/%03j/%02H:%02M:%05.2f",
+ "Ignore data before this time. (%4Y/%03j/%02H:%02M:%05.2f)"),
+
+ stopTimeOpt('\0', "stop-time", "%4Y/%03j/%02H:%02M:%05.2f",
+ "Ignore any data after this time"),
+
+ timeSpanOpt('l', "time-span", "How much data to process, in seconds"),
+
+ maskAngleOpt('\0', "mask-angle",
+ "Ignore anomalies on SVs below this elevation. The default"
+ " is 10 degrees."),
+
+ timeMaskOpt('\0', "time-mask",
+ "Ignore anomalies on SVs that haven't been above the mask"
+ " angle for this number of seconds. The default is 0 "
+ "seconds."),
+
+ badHealthMaskOpt('b', "bad-health",
+ "Ignore anomalies associated with SVs that are marked "
+ "unhealthy."),
+
+ smashAdjacentOpt('s', "smash-adjacent",
+ "Combine adjacent lines from the same PRN."),
+
+ maskAngle(10), badHealthMask(false), timeMask(0), smashAdjacent(false),
+ epochRate(0), epochCounter(0), allMissingCounter(0),
+ anyMissingCounter(0), pointsMissedCounter(0)
+{
+ // Set up a couple of helper arrays to map from enum <-> string
+ obsItemName[oiUnknown] = "unk";
+ obsItemName[oiElevation] = "el";
+ obsItemName[oiAzimuth] = "az";
+ obsItemName[oiTime] = "time";
+ obsItemName[oiPRN] = "prn";
+ obsItemName[oiCCID] = "ccid";
+ obsItemName[oiSNR] = "snr";
+ obsItemName[oiHealth] = "health";
+ obsItemName[oiTrackCount] = "tcnt";
+ obsItemName[oiIOD] = "iod";
+
+ for (ObsItemName::const_iterator i=obsItemName.begin();
+ i!=obsItemName.end(); i++)
+ obsItemId[i->second] = i->first;
+}
+
+
+//------------------------------------------------------------------------------
+// Here the command line options parsed and used to configure the program
+//------------------------------------------------------------------------------
+bool DataAvailabilityAnalyzer::initialize(int argc, char *argv[]) throw()
+{
+ if (!BasicFramework::initialize(argc,argv)) return false;
+
+ if (debugLevel)
+ cout << "debugLevel: " << debugLevel << endl
+ << "verboseLevel: " << verboseLevel << endl;
+
+ if (outputOpt.getCount())
+ {
+ output.open(outputOpt.getValue()[0].c_str(), std::ios::out);
+ if (debugLevel)
+ cout << "Sending output to"
+ << outputOpt.getValue()[0]
+ << endl;
+ }
+ else
+ {
+ if (debugLevel)
+ cout << "Sending output to stdout" << endl;
+ output.copyfmt(std::cout);
+ output.clear(std::cout.rdstate());
+ output.basic_ios<char>::rdbuf(std::cout.rdbuf());
+ }
+
+ if (timeFmtOpt.getCount())
+ timeFormat = timeFmtOpt.getValue()[0];
+
+ if (startTimeOpt.getCount())
+ startTime = startTimeOpt.getTime()[0];
+ else
+ startTime = DayTime::BEGINNING_OF_TIME;
+
+ if (stopTimeOpt.getCount())
+ stopTime = stopTimeOpt.getTime()[0];
+ else
+ stopTime = DayTime::END_OF_TIME;
+
+ if (timeSpanOpt.getCount())
+ timeSpan = StringUtils::asDouble(timeSpanOpt.getValue()[0]);
+ else
+ timeSpan = 1e99;
+
+ if (maskAngleOpt.getCount())
+ maskAngle = StringUtils::asDouble(maskAngleOpt.getValue()[0]);
+
+ if (timeMaskOpt.getCount())
+ timeMask = StringUtils::asDouble(timeMaskOpt.getValue()[0]);
+
+ if (badHealthMaskOpt.getCount())
+ badHealthMask = true;
+
+ if (smashAdjacentOpt.getCount())
+ smashAdjacent = true;
+
+ oiX = oiTime;
+ if (independantOpt.getCount())
+ {
+ ObsItemId::const_iterator i;
+ i = obsItemId.find(independantOpt.getValue()[0]);
+ if (i == obsItemId.end())
+ {
+ cout << "Cound not find obs item. Valid items are:" << endl;
+ for (i=obsItemId.begin(); i!=obsItemId.end(); i++)
+ cout << i->first << " ";
+ cout << endl;
+ exit(-1);
+ }
+ else
+ {
+ oiX = i->second;
+ }
+ }
+
+ if (verboseLevel)
+ {
+ cout << "Using " << obsItemName[oiX] << " as the independant variable."
+ << endl
+ << "Using a mask angle of " << maskAngle << " degrees" << endl;
+ if (badHealthMask)
+ cout << "Ignore anomalies associated with SVs marked unhealthy."
+ << endl;
+ else
+ cout << "Including anomalies associated with SVs marked unhealthy."
+ << endl;
+
+ MDPHeader::debugLevel = debugLevel;
+ }
+
+ return true;
+}
+
+
+//------------------------------------------------------------------------------
+// Load all the data to analyze.
+//------------------------------------------------------------------------------
+void DataAvailabilityAnalyzer::spinUp()
+{
+ EphReader ephData;
+ ephData.verboseLevel = verboseLevel;
+ for (int i=0; i < ephFileOpt.getCount(); i++)
+ ephData.read(ephFileOpt.getValue()[i]);
+
+ if (ephData.eph == NULL)
+ {
+ cout << "Didn't get any ephemeris data from the eph files. "
+ << "Exiting." << endl;
+ exit(-1);
+ }
+ eph = ephData.eph;
+
+ msid = 0;
+ bool haveAntennaPos=false;
+ if (msidOpt.getCount())
+ msid = StringUtils::asUnsigned(msidOpt.getValue()[0]);
+
+ if (msid && mscFileOpt.getCount())
+ {
+ string fn = mscFileOpt.getValue()[0];
+ if (verboseLevel)
+ cout << "Reading " << fn << " as MSC data." << endl;
+ MSCStream mscs(fn.c_str(), ios::in);
+ MSCData mscd;
+ while (mscs >> mscd)
+ {
+ if (mscd.station == msid)
+ {
+ antennaPos = mscd.coordinates;
+ if (verboseLevel>1)
+ cout << "Antenna position read from MSC file:"
+ << antennaPos << " (msid: "
+ << msid << ")" << endl;
+ haveAntennaPos=true;
+ break;
+ }
+ }
+ if (!haveAntennaPos)
+ cout << "Did not find station " << msid << " in " << fn
+ << "." << endl;
+ }
+
+ const string fn=inputOpt.getValue()[0];
+ ObsReader obsReader(fn);
+
+ if (obsReader.inputType == FFIdentifier::tRinexObs && !haveAntennaPos)
+ {
+ antennaPos = obsReader.roh.antennaPosition;
+ if (verboseLevel>1)
+ cout << "Antenna position read from RINEX obs file:"
+ << antennaPos << endl;
+ }
+
+ if (obsReader.inputType == FFIdentifier::tSMODF)
+ obsReader.msid = msid;
+
+ DayTime t0;
+ ObsEpoch oe;
+ int i,j;
+
+ for (i=j=0; i<100 && j<10 && obsReader(); i++)
+ {
+ oe = obsReader.getObsEpoch();
+ double dt = oe.time - t0;
+ if (std::abs(dt - epochRate) > 0.1)
+ {
+ epochRate = dt;
+ j = 0;
+ }
+ else
+ j++;
+ t0 = oe.time;
+ }
+
+ if (j<10)
+ {
+ cout << "Could not determine data rate after " << i << " epochs. Sorry."
+ << " This program is really\nwritten to just work with data that "
+ << "is being collected at a fixed data rate.\nI guess it could be"
+ << " re-written to work for changing data rates but I am too\n"
+ << "lazy to do that right now. I'm not, however, too lazy to "
+ << "write needlessly long\ndiagnostic messages."
+ << endl;
+ exit(-1);
+ }
+
+ if (verboseLevel)
+ cout << "Data rate is " << epochRate << " seconds after " << i
+ << " epochs." << endl;
+}
+
+
+std::string secAsHMS(double seconds, bool frac=false)
+{
+ std::ostringstream oss;
+ oss << setfill('0');
+
+ if (seconds<0)
+ oss << "-";
+
+ seconds = std::abs(seconds);
+ long d=0,h=0,m=0,s=0;
+ s = static_cast<long>(std::floor(seconds));
+ seconds -= static_cast<double>(s);
+
+ if (s > 86400) { d = s/86400; s %= 86400; }
+ if (s > 3600) { h = s/3600; s %= 3600; }
+ if (s > 60) { m = s/60; s %= 60; }
+
+ if (d) oss << d << " d ";
+ if (h) oss << setw(2) << h << ":";
+ if (m) oss << setw(2) << m << ":";
+
+ if (h || m)
+ oss << setfill('0');
+ else
+ oss << setfill(' ');
+
+ oss << setw(2) << s;
+
+ if (seconds>=0.1 && frac)
+ oss << "." << static_cast<int>(seconds*10);
+ else
+ oss << " ";
+
+ return oss.str();
+}
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+DataAvailabilityAnalyzer::MissingList DataAvailabilityAnalyzer::processList(
+ const MissingList& ml, const gpstk::EphemerisStore& eph)
+{
+ MissingList sml;
+ for (MissingList::const_iterator i = ml.begin(); i != ml.end(); i++)
+ {
+ InView curr = *i;
+
+ // calculate SV visibility info
+ short prnTemp = 1;
+ short numSVsInView = 0;
+ ECEF rxpos(antennaPos);
+
+ while (prnTemp <= gpstk::MAX_PRN)
+ {
+ Xvt svXVT;
+ bool NoEph = false;
+
+ try { svXVT = eph.getPrnXvt(prnTemp, curr.time); }
+ catch(gpstk::Exception& e)
+ {
+ if (verboseLevel> 1) {cout << e << endl;}
+ NoEph = true;
+ }
+ double elvAngle = 0;
+ if (!NoEph)
+ {
+ try {elvAngle = rxpos.elvAngle(svXVT.x);}
+ catch(gpstk::Exception& e) { if (verboseLevel > 1)
+ {cout << e << endl;}}
+ if (elvAngle > maskAngle) { numSVsInView++; }
+ }
+ prnTemp++;
+ }
+
+ curr.numSVsVisible = numSVsInView;
+ InView& prev = *sml.rbegin();
+
+ // increment counter if there isn't data from any SVs
+ if (curr.prn == 0)
+ {
+ allMissingCounter++;
+ pointsMissedCounter += numSVsInView;
+ }
+ else
+ pointsMissedCounter++;
+
+
+ if (i == ml.begin())
+ {
+ sml.push_back(curr);
+ anyMissingCounter++;
+ continue;
+ }
+ else if (prev.time != curr.time)
+ anyMissingCounter++;
+
+ // smash together epochs if necessary
+ if (curr.prn == prev.prn && smashAdjacent)
+ {
+ prev.smashCount++;
+ prev.time = curr.time;
+ prev.elevation = curr.elevation;
+ prev.azimuth = curr.azimuth;
+ prev.snr = curr.snr;
+ prev.epochCount = curr.epochCount;
+ }
+ else
+ {
+ sml.push_back(curr);
+ }
+ }
+ return sml;
+}
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+void DataAvailabilityAnalyzer::process()
+{
+ const string fn=inputOpt.getValue()[0];
+ ObsReader obsReader(fn);
+
+ if (msidOpt.getCount() && obsReader.inputType == FFIdentifier::tSMODF)
+ {
+ msid = StringUtils::asUnsigned(msidOpt.getValue()[0]);
+ obsReader.msid = msid;
+ }
+
+ double x=RSS(antennaPos[0], antennaPos[1], antennaPos[2]);
+
+ if (x<1)
+ {
+ cout << "Warning! The antenna appears to be within one meter of the"
+ << endl << "center of the geoid. Please go check it." << endl;
+ return;
+ }
+
+ ObsEpoch oe, prev_oe;
+
+ DayTime firstEpochTime, lastEpochTime;
+ while (obsReader())
+ {
+ oe = obsReader.getObsEpoch();
+ if (startTime > oe.time)
+ continue;
+ if (stopTime < oe.time)
+ break;
+
+ epochCounter++;
+
+ if (obsReader.epochCount==1)
+ {
+ firstEpochTime = oe.time;
+ if (verboseLevel)
+ cout << "First observation is at "
+ << firstEpochTime.printf(timeFormat) << endl;
+ }
+ else
+ {
+ lastEpochTime = oe.time;
+ if (lastEpochTime - firstEpochTime > timeSpan)
+ break;
+
+ processEpoch(antennaPos, oe, prev_oe);
+ }
+ prev_oe = oe;
+ }
+
+ if (verboseLevel)
+ cout << "Last observation is at " << lastEpochTime.printf(timeFormat)
+ << endl;
+}
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+void DataAvailabilityAnalyzer::processEpoch(
+ const Triple& ap,
+ const ObsEpoch& oe,
+ const ObsEpoch& prev_oe)
+{
+ ECEF rxpos(ap);
+ InView::dump ivdumper(cout, timeFormat);
+
+ for (DayTime t = prev_oe.time + epochRate; t <= oe.time; t += epochRate)
+ {
+
+ for (int prn=1; prn<=32; prn++)
+ inView[prn].update(prn, t, rxpos, *eph, gm, maskAngle, verboseLevel);
+
+ if (verboseLevel>2)
+ {
+ cout << t.printf(timeFormat) << " SVs in view: ";
+ for (int prn=1; prn<=32; prn++)
+ if (inView[prn].up)
+ cout << prn << "(" << setprecision(3)
+ << inView[prn].elevation << ") ";
+ cout << endl;
+ }
+
+ if (t != oe.time)
+ {
+ InView iv;
+ iv.prn = 0;
+ iv.time = t;
+ missingList.push_back(iv);
+ continue;
+ }
+
+ for (int prn=1; prn<=32; prn++)
+ {
+ ObsEpoch::const_iterator oei;
+ SatID svid(prn, SatID::systemGPS);
+
+ oei = oe.find(svid);
+ InView& iv=inView[prn];
+ iv.inTrack = oe.size();
+
+ if (oei == oe.end()) // No data from this SV
+ {
+ if (oe.size()<12 && iv.elevation>maskAngle &&
+ (!iv.health || !badHealthMask))
+ {
+ missingList.push_back(iv);
+ }
+ }
+ else // There is data from this SV
+ {
+ if (verboseLevel>3)
+ cout << oei->first << " " << oei->second << endl;
+ if (verboseLevel>3)
+ ivdumper(iv);
+ if (!iv.up)
+ {
+ missingList.push_back(iv);
+ }
+ else
+ {
+ iv.epochCount++;
+ const SvObsEpoch& soe = oei->second;
+ SvObsEpoch::const_iterator q;
+
+ q = soe.find(ObsID(ObsID::otSNR, ObsID::cbL1, ObsID::tcCA));
+ if (q != soe.end())
+ iv.snr = q->second;
+ } // else
+ } // else
+ } // for (int prn=1; prn<=32; prn++)
+ } // for (DayTime t=prev_oe.time+epochRate;t<=oe.time;t+= epochRate)
+} // void DataAvailabilityAnalyzer::processEpoch()
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+void DataAvailabilityAnalyzer::shutDown()
+{
+ MissingList sml = processList(missingList, *eph);
+
+ cout << "\n Availability Raw Results:\n\n";
+ cout << " Time Smashes PRN CCID Elv Az Hlth SNR SVs"
+ << " Above Mask tama\n"
+ << "=================================================================="
+ << "======================\n";
+
+ for_each(sml.begin(), sml.end(), InView::dump(cout, timeFormat));
+
+ outputSummary();
+}
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+void DataAvailabilityAnalyzer::InView::update(
+ short prn,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ float maskAngle,
+ const int verbosityLevel)
+{
+ verbosity = verbosityLevel;
+
+ try
+ {
+ this->prn = prn;
+ this->time = time;
+ // We really don't care about the observed range deviation, the
+ // ObsRngDev class is just a convient way to get the azimuth,
+ // elevation, health, iodc,
+
+ ObsRngDev ord(0, SatID(prn, SatID::systemGPS), time, rxpos, eph, gm);
+ vfloat el=ord.getElevation();
+
+ if (el.is_valid() && el > 0)
+ {
+ if (!up)
+ {
+ firstEpoch = time;
+ up = true;
+ aboveMask = false;
+ epochCount = 0;
+ snr = 0;
+ inTrack = 0;
+ }
+ else
+ {
+ rising = el > elevation;
+ }
+ if (el > maskAngle && !aboveMask)
+ {
+ aboveMask = true;
+ firstEpochAboveMask = time;
+ }
+ }
+ else
+ {
+ up = false;
+ aboveMask = false;
+ }
+ elevation = ord.getElevation();
+ azimuth = ord.getAzimuth();
+ iodc = ord.getIODC();
+ health = ord.getHealth();
+ }
+ catch (EphemerisStore::NoEphemerisFound& e)
+ {
+ up = false;
+ aboveMask = false;
+ elevation = 0;
+ azimuth = 0;
+ iodc = 0;
+ health = 0;
+ }
+} // end of InView::update()
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+bool DataAvailabilityAnalyzer::InView::dump::operator()(const InView& iv)
+{
+ double timeUp = iv.time - iv.firstEpoch;
+ double timeUpMask = iv.time - iv.firstEpochAboveMask;
+ char dir;
+ if (iv.elevation > 0)
+ dir = iv.rising ? '^' : 'v';
+ else
+ dir = ' ';
+
+ string ccid="all";
+
+ cout << left << iv.time.printf(timeFormat)
+ << " " << setw(4) << iv.smashCount << " ";
+
+ if (iv.prn>0)
+ {
+ cout << setw(3) << iv.prn << " "
+ << ccid << " "
+ << fixed << right
+ << setprecision(2) << setw(6) << iv.elevation
+ << dir << " "
+ << setprecision(0) << setw(3) << iv.azimuth << " "
+ << hex << setw(2) << iv.health << " " << dec;
+
+ if (iv.up)
+ cout << setprecision(1) << setw(4) << iv.snr;
+ else
+ cout << "-El ";
+
+ if (iv.smashCount == 0)
+ cout << right << setw(14) << iv.numSVsVisible;
+
+ else
+ cout << right << setw(14) << "n/a-smashed";
+
+ if (iv.up)
+ cout << right << setw(16) << secAsHMS(timeUpMask);
+ else
+ cout << right << setw(16) << "-El";
+ }
+ else
+ {
+ cout << "All";
+ if (iv.smashCount == 0)
+ cout << right << setw(42) << iv.numSVsVisible;
+ else
+ cout << right << setw(42) << "n/a-smashed";
+ }
+
+ cout << endl;
+
+ return true;
+}
+
+void DataAvailabilityAnalyzer::outputSummary()
+{
+ cout << "\n\n Summary:\n\n";
+
+ cout << right << setw(40) << "Total number of epochs with data: "
+ << left << setw(10) << epochCounter << endl;
+ cout << right << setw(40) << "Epochs with any # of missed points: "
+ << left << setw(10) << anyMissingCounter << endl;
+ cout << right << setw(40) << "Epochs without data from any SV: "
+ << left << setw(10) << allMissingCounter << endl;
+ cout << right << setw(40) << "Total number of points missed: "
+ << left << setw(10) << pointsMissedCounter << endl << endl;
+
+
+}
diff --git a/dev/apps/DataAvailability/DataAvailabilityAnalyzer.hpp b/dev/apps/DataAvailability/DataAvailabilityAnalyzer.hpp
new file mode 100644
index 0000000..5da7fb5
--- /dev/null
+++ b/dev/apps/DataAvailability/DataAvailabilityAnalyzer.hpp
@@ -0,0 +1,200 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Performs a data availability analysis of the input data. In general,
+ availability is determined by station and satellite position.
+*/
+
+#ifndef DATAAVAILABILITYANALYZER_HPP
+#define DATAAVAILABILITYANALYZER_HPP
+
+#include <fstream>
+#include <list>
+
+#include "BasicFramework.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "GPSGeoid.hpp"
+#include "MiscMath.hpp"
+#include "ObsRngDev.hpp"
+#include "EphemerisStore.hpp"
+
+class DataAvailabilityAnalyzer : public gpstk::BasicFramework
+{
+public:
+ DataAvailabilityAnalyzer(const std::string& applName) throw();
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void spinUp();
+ virtual void process();
+ virtual void shutDown();
+
+private:
+ void processEpoch(
+ const gpstk::Triple& antPos,
+ const gpstk::ObsEpoch& oe,
+ const gpstk::ObsEpoch& prev_oe);
+
+ void outputSummary();
+
+ std::ifstream input;
+ std::ofstream output;
+ std::string timeFormat;
+ gpstk::CommandOptionWithAnyArg inputOpt, outputOpt, independantOpt,
+ mscFileOpt, msidOpt, timeFmtOpt, ephFileOpt, maskAngleOpt, timeMaskOpt;
+
+ gpstk::CommandOptionNoArg badHealthMaskOpt, smashAdjacentOpt;
+
+ gpstk::CommandOptionWithNumberArg timeSpanOpt;
+ gpstk::CommandOptionWithTimeArg startTimeOpt, stopTimeOpt;
+
+ gpstk::DayTime startTime, stopTime;
+ double timeSpan, timeMask;
+ double epochRate;
+
+ // these are counters used in the summary
+ unsigned long epochCounter;
+ unsigned long allMissingCounter;
+ unsigned long anyMissingCounter;
+ unsigned long pointsMissedCounter;
+
+ enum ObsItemEnum {oiUnknown, oiElevation, oiAzimuth, oiTime, oiPRN, oiCCID,
+ oiSNR, oiHealth, oiTrackCount, oiIOD};
+
+ typedef std::map<ObsItemEnum, std::string> ObsItemName;
+ typedef std::map<std::string, ObsItemEnum> ObsItemId;
+ typedef std::map<gpstk::DayTime, int> SVsInView;
+
+ ObsItemName obsItemName;
+ ObsItemId obsItemId;
+ ObsItemEnum oiX;
+
+ bool badHealthMask, smashAdjacent;
+
+ gpstk::EphemerisStore* eph;
+ gpstk::GPSGeoid gm;
+ gpstk::Triple antennaPos;
+ long msid;
+
+ float maskAngle;
+
+ // This is used to keep track of SV info for both what SVs are in view
+ // and when there is a obs that is missing.
+ struct InView
+ {
+ InView() : up(false), aboveMask(false), smashCount(0){};
+
+ void update(
+ short prn,
+ const gpstk::DayTime& time,
+ const gpstk::ECEF& rxpos,
+ const gpstk::EphemerisStore& eph,
+ gpstk::GeoidModel& gm,
+ float maskAngle,
+ const int verbosityLevel);
+
+ short prn;
+ gpstk::DayTime time;
+
+ int verbosity;
+
+ // Set true when this SV has an elevation greater than 0
+ // If this is false, no other fields are valid.
+ bool up;
+
+ // true when the sv is rising
+ bool rising;
+
+ // First epoch when this SV had an elevation greater than 0
+ gpstk::DayTime firstEpoch;
+
+ // Set true when this SV has risen above the 'mask angle'
+ // It is not cleared when the SV goes back below the mask angle.
+ bool aboveMask;
+
+ // First epoch when this SV had an elevation greater than the
+ // 'mask angle'. Not valid unles aboveMask is true.
+ gpstk::DayTime firstEpochAboveMask;
+
+ // Number of epochs received from this SV during this pass
+ unsigned epochCount;
+ float elevation,azimuth;
+ short iodc, health;
+
+ // This following items are only useful when this class is used to record
+ // information associated with missing data.
+
+ // Set only when the smash function merges this record with others.
+ // Indicates the number of records merged.
+ unsigned smashCount;
+
+ // The number of SVs in track at this point in time.
+ short inTrack;
+
+ // The number of SVs physically above the mask angle at this time
+ short numSVsVisible;
+
+ // The SNR of the CA signal. Note that this will be the SNR of the
+ // most recently received observation when an outage is detected.
+ float snr;
+
+ // A function object to allow printing of a list of these with a
+ // for_each loop
+ class dump
+ {
+ public:
+ dump(std::ostream& s, const std::string fmt)
+ : stream(s), timeFormat(fmt) {};
+ std::ostream& stream;
+ std::string timeFormat;
+ bool operator()(const InView& iv);
+ };
+ };
+
+ typedef std::list<InView> MissingList;
+ MissingList missingList;
+
+ // This combines adjecent items from the same SV
+ MissingList processList(const MissingList& ml,
+ const gpstk::EphemerisStore& eph);
+
+ std::map<int, InView> inView;
+
+
+};
+#endif
diff --git a/dev/apps/DataAvailability/Jamfile b/dev/apps/DataAvailability/Jamfile
new file mode 100644
index 0000000..f370255
--- /dev/null
+++ b/dev/apps/DataAvailability/Jamfile
@@ -0,0 +1,7 @@
+# $Id:$
+
+SubDir TOP apps DataAvailability ;
+
+GPSLinkLibraries daa : rxio gpstk ;
+
+GPSMain daa : daa.cpp DataAvailabilityAnalyzer.cpp ;
diff --git a/dev/apps/DataAvailability/Makefile.am b/dev/apps/DataAvailability/Makefile.am
new file mode 100644
index 0000000..4b0af9f
--- /dev/null
+++ b/dev/apps/DataAvailability/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../lib/rxio -I$(srcdir)/../../src
+LDADD = ../../lib/rxio/librxio.la ../../src/libgpstk.la
+
+bin_PROGRAMS = daa
+
+daa_SOURCES = daa.cpp DataAvailabilityAnalyzer.cpp
diff --git a/dev/apps/DataAvailability/daa.cpp b/dev/apps/DataAvailability/daa.cpp
new file mode 100644
index 0000000..c054bb3
--- /dev/null
+++ b/dev/apps/DataAvailability/daa.cpp
@@ -0,0 +1,64 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Performs a data availability analysis of the input data. In general,
+ availability is determined by station and satellite position.
+*/
+
+#include "DataAvailabilityAnalyzer.hpp"
+
+using namespace std;
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ DataAvailabilityAnalyzer crap(argv[0]);
+
+ if (!crap.initialize(argc, argv))
+ exit(0);
+
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/Jamfile b/dev/apps/Jamfile
new file mode 100644
index 0000000..eeb7830
--- /dev/null
+++ b/dev/apps/Jamfile
@@ -0,0 +1,23 @@
+#
+# $Id$
+#
+
+SubDir TOP apps ;
+
+SubInclude TOP apps checktools ;
+SubInclude TOP apps converters ;
+SubInclude TOP apps DataAvailability ;
+SubInclude TOP apps differential ;
+SubInclude TOP apps difftools ;
+SubInclude TOP apps filetools ;
+SubInclude TOP apps geomatics ;
+SubInclude TOP apps ionosphere ;
+SubInclude TOP apps mergetools ;
+SubInclude TOP apps MDPtools ;
+SubInclude TOP apps multipath ;
+SubInclude TOP apps positioning ;
+SubInclude TOP apps receiver ;
+SubInclude TOP apps reszilla ;
+SubInclude TOP apps Rinextools ;
+SubInclude TOP apps time ;
+SubInclude TOP apps visibility ;
diff --git a/dev/apps/MDPtools/BELogEntry.cpp b/dev/apps/MDPtools/BELogEntry.cpp
new file mode 100644
index 0000000..49acf79
--- /dev/null
+++ b/dev/apps/MDPtools/BELogEntry.cpp
@@ -0,0 +1,64 @@
+#pragma ident "$Id$"
+
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+/**
+ * @file BELogEntry.cpp
+ */
+#include "DayTime.hpp"
+#include "BELogEntry.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ // Initialize the static const.
+ const std::string BELogEntry::header = "PRN Earliest SF 1 HOW ! Toe IODC #Collected";
+
+ BELogEntry::BELogEntry( const gpstk::EngEphemeris ee )
+ {
+ HOWSF1 = ee.getTransmitTime();
+ Toe = ee.getEpochTime();
+ PRN_ID = ee.getPRNID();
+ IODC = ee.getIODC();
+ count = 1;
+
+ long shortweek = (long) ee.getFullWeek();
+ shortweek &= 0x0000001F;
+ long sixteenSecCount = long (Toe.GPSsow() / 16.0);
+
+ // The purpose of the key is to enable placing these objects
+ // into SV-specific maps ordered by
+ // Primary :week
+ // Secondary :SOW
+ // Tertiary: IODC
+ // The latter (IODC) is actually only a part of the key so as to
+ // enforce uniqueness
+ key = shortweek << 26 |
+ sixteenSecCount << 10 | IODC;
+ }
+
+ unsigned long BELogEntry::getKey() const { return(key); }
+ DayTime BELogEntry::getHOW() const { return(HOWSF1); }
+ void BELogEntry::increment() { count++; }
+
+ std::string BELogEntry::getStr() const
+ {
+ std::string timeFmt1 = "%02m/%02d/%02y %02H:%02M:%02S";
+ std::string timeFmt2 = "%02m/%02d/%02y %02H:%02M:%02S %03j %5.0s %04F %6.0g";
+ char line[100];
+ sprintf( line, " %02d %s ! %s 0x%03X %4d",
+ PRN_ID, HOWSF1.printf( timeFmt1 ).c_str(),
+ Toe.printf(timeFmt2).c_str(),
+ IODC,count);
+ std::string retStr(line);
+ return(retStr);
+ }
+
+} // namespace
diff --git a/dev/apps/MDPtools/BELogEntry.hpp b/dev/apps/MDPtools/BELogEntry.hpp
new file mode 100644
index 0000000..ed459d7
--- /dev/null
+++ b/dev/apps/MDPtools/BELogEntry.hpp
@@ -0,0 +1,51 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file BELogEntry.hpp
+ * Record the unique identifying information associated
+ * with a Broadcast Ephemeris, allow it to be ordered (i.e. map support)
+ * and provide a string output capability.
+ */
+
+#ifndef GPSTK_BELOGENTRY_HPP
+#define GPSTK_BELOGENTRY_HPP
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+#include "EngEphemeris.hpp"
+
+namespace gpstk
+{
+ class BELogEntry
+ {
+ public:
+ /// Default constructor
+ BELogEntry( const gpstk::EngEphemeris ee );
+
+ /// Destructor
+ virtual ~BELogEntry() {}
+
+ std::string getStr() const;
+ gpstk::DayTime getHOW() const;
+ void increment();
+ unsigned long getKey() const;
+ static const std::string header;
+
+ protected:
+ DayTime HOWSF1;
+ DayTime Toe;
+ int PRN_ID;
+ int IODC;
+ int count;
+ unsigned long key;
+
+ }; // class BELogEntry
+
+} // namespace
+
+#endif
diff --git a/dev/apps/MDPtools/Histogram.hpp b/dev/apps/MDPtools/Histogram.hpp
new file mode 100644
index 0000000..39e9dd8
--- /dev/null
+++ b/dev/apps/MDPtools/Histogram.hpp
@@ -0,0 +1,74 @@
+#pragma ident "$Id: Histogram.hpp 71 2006-08-01 18:46:39Z ehagen $"
+
+#ifndef HISTOGRAM_HPP
+#define HISTOGRAM_HPP
+
+#include <map>
+#include <list>
+#include <ostream>
+
+namespace gpstk
+{
+
+ //-----------------------------------------------------------------------------
+ class Histogram
+ {
+ public:
+ typedef std::pair<double, double> BinRange;
+ typedef std::list<BinRange> BinRangeList;
+ typedef std::map<BinRange, unsigned> BinMap;
+
+ BinMap bins;
+ unsigned total;
+
+ void resetBins(const BinRangeList& brl)
+ {
+ bins.clear();
+ total=0;
+ for (BinRangeList::const_iterator i=brl.begin(); i != brl.end(); i++)
+ bins[*i] = 0;
+ }
+
+ inline void addValue(double v)
+ {
+ BinMap::iterator bm_itr;
+ for (bm_itr=bins.begin(); bm_itr != bins.end(); bm_itr++)
+ {
+ const BinRange& range = bm_itr->first;
+ if (range.first < v && v <= range.second)
+ {
+ bm_itr->second++;
+ total++;
+ break;
+ }
+ }
+ }
+
+ inline void dump(std::ostream& s) const
+ {
+ BinMap::const_iterator bmi;
+ for (bmi = bins.begin(); bmi != bins.end(); bmi++)
+ {
+ const BinRange& br = bmi->first;
+ s << std::right << std::setw(3) << br.first
+ << "-" << std::left << std::setw(3) << br.second
+ << ": " << std::right << bmi->second
+ << std::endl;
+ }
+
+ s << std::right << std::setw(3) << bins.begin()->first.first
+ << "-" << std::left << std::setw(3) << bins.rbegin()->first.second
+ << ": " << std::right << total
+ << std::endl;
+ };
+
+ };
+
+ inline std::ostream& operator<<(std::ostream& s, const Histogram& hist)
+ {
+ hist.dump(s);
+ return s;
+ };
+
+}
+#endif
diff --git a/dev/apps/MDPtools/Jamfile b/dev/apps/MDPtools/Jamfile
new file mode 100644
index 0000000..18ebea3
--- /dev/null
+++ b/dev/apps/MDPtools/Jamfile
@@ -0,0 +1,23 @@
+# $Id$
+
+SubDir TOP apps MDPtools ;
+
+
+# Note that the local library needs to be declaired and built prior to anything
+# else is done.
+GPSLinkLibraries mdplib : rxio gpstk ;
+Library mdplib : MDPProcessors.cpp SummaryProc.cpp TrackProc.cpp NavProc.cpp ;
+
+
+# Now we can set up the things that depend upon the local library. Note that
+# the LinkLibraries rule for mdplib must preceede the GPSLinkLibraries rule
+# for things to build properly
+LinkLibraries mdptool mdp2rinex tcptest : mdplib ;
+GPSLinkLibraries mdptool mdp2rinex tcptest : rxio gpstk ;
+
+
+GPSMain mdptool : mdptool.cpp ;
+
+GPSMain mdp2rinex : mdp2rinex.cpp ;
+
+GPSMain tcptest : tcptest.cpp ;
diff --git a/dev/apps/MDPtools/MDPProcessors.cpp b/dev/apps/MDPtools/MDPProcessors.cpp
new file mode 100644
index 0000000..b5bb860
--- /dev/null
+++ b/dev/apps/MDPtools/MDPProcessors.cpp
@@ -0,0 +1,337 @@
+#pragma ident "$Id$"
+
+
+/** @file Various presentations/analysis on MDP streams */
+
+//lgpl-license START
+//lgpl-license END
+
+#include "MDPProcessors.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+gpstk::MDPStream d1;
+std::ofstream d2;
+
+
+MDPProcessor::MDPProcessor() :
+ timeFormat("%4Y/%03j/%02H:%02M:%04.1f"),
+ stopTime(gpstk::DayTime::END_OF_TIME),
+ startTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ timeSpan(-1), processBad(false), bugMask(0),
+ debugLevel(0), verboseLevel(0), in(d1), out(d2), die(false),
+ pvtOut(false), obsOut(false), navOut(false), tstOut(false)
+{}
+
+MDPProcessor::MDPProcessor(gpstk::MDPStream& in, std::ofstream& out) :
+ timeFormat("%4Y/%03j/%02H:%02M:%04.1f"),
+ stopTime(gpstk::DayTime::END_OF_TIME),
+ startTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ timeSpan(-1), processBad(false), bugMask(0),
+ debugLevel(0), verboseLevel(0), in(in), out(out), die(false),
+ pvtOut(false), obsOut(false), navOut(false), tstOut(false)
+{}
+
+void MDPProcessor::process()
+{
+ MDPHeader header;
+
+ msgCount=0;
+ firstFC=0;
+ lastFC=0;
+ fcErrorCount=0;
+
+ while (!die && in >> header)
+ {
+ if (startTime == DayTime(DayTime::BEGINNING_OF_TIME) && timeSpan>0)
+ {
+ startTime = header.time;
+ if (debugLevel)
+ cout << "startTime: " << startTime << endl;
+ }
+
+ if (stopTime == DayTime(DayTime::END_OF_TIME) && timeSpan>0)
+ {
+ stopTime = startTime + timeSpan;
+ if (debugLevel)
+ cout << "stopTime: " << stopTime << endl;
+ }
+
+ if (header.time > stopTime)
+ return;
+
+ if (header.time < startTime)
+ continue;
+
+ msgCount++;
+
+ if (verboseLevel>5 || debugLevel>2)
+ out << "Record: " << in.recordNumber
+ << ", message: " << msgCount << endl;
+
+ if (msgCount == 1)
+ firstFC = lastFC = in.header.freshnessCount;
+ else
+ {
+ if (in.header.freshnessCount != static_cast<unsigned short>(lastFC+1))
+ {
+ fcErrorCount++;
+ if (verboseLevel)
+ cout << header.time.printf(timeFormat)
+ <<" Freshness count error. Previous was " << lastFC
+ << " current is " << in.header.freshnessCount << endl;
+ }
+ lastFC = in.header.freshnessCount;
+ }
+
+ switch (in.header.id)
+ {
+ case gpstk::MDPObsEpoch::myId:
+ if (obsOut)
+ {
+ gpstk::MDPObsEpoch obs;
+ in >> obs;
+ if (obs || processBad)
+ process(obs);
+ }
+ break;
+
+ case gpstk::MDPPVTSolution::myId:
+ if (pvtOut)
+ {
+ gpstk::MDPPVTSolution pvt;
+ in >> pvt;
+ if (pvt || processBad)
+ process(pvt);
+ }
+ break;
+
+ case gpstk::MDPNavSubframe::myId:
+ if (navOut)
+ {
+ gpstk::MDPNavSubframe nav;
+ in >> nav;
+ if (nav || processBad)
+ process(nav);
+ }
+ break;
+
+ case gpstk::MDPSelftestStatus::myId:
+ if (tstOut)
+ {
+ gpstk::MDPSelftestStatus sts;
+ in >> sts;
+ if (sts || processBad)
+ process(sts);
+ }
+ break;
+ } // end of switch()
+ } // end of while()
+}
+
+
+//-----------------------------------------------------------------------------
+MDPTableProcessor::MDPTableProcessor(gpstk::MDPStream& in, std::ofstream& out) :
+ MDPProcessor(in, out), headerDone(false)
+{}
+
+
+//-----------------------------------------------------------------------------
+void MDPTableProcessor::outputHeader()
+{
+ if (headerDone)
+ return;
+
+ if (obsOut)
+ out << "# time, 300, prn, chan, hlth, #SVs, ele, az, code, carrier, LC, SNR, range, phase, doppler" << endl;
+ if (pvtOut)
+ out << "# time, 301, #SV, dtime, ddtime, x, y, z, vx, vy, vz" << endl;
+ if (navOut)
+ out << "# time, 310, prn, carrier_code, range_code, nav_code, word1, word2, ..." << endl;
+ if (tstOut)
+ out << "# time, 400, tstTime, startTime, Tant, Trx, status, cpu, freq, ssw" << endl;
+
+ headerDone=true;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPTableProcessor::process(const gpstk::MDPObsEpoch& oe)
+{
+ outputHeader();
+ MDPObsEpoch::ObsMap::const_iterator i;
+ for (i = oe.obs.begin(); i != oe.obs.end(); i++)
+ {
+ const MDPObsEpoch::Observation& obs=i->second;
+ out << oe.time.printf(timeFormat)
+ << fixed
+ << ", " << setw(3) << oe.id
+ << ", " << setw(2) << (int) oe.prn
+ << ", " << setw(2) << (int) oe.channel
+ << ", " << setw(2) << hex << (int) oe.status << dec
+ << ", " << setw(2) << (int) oe.numSVs
+ << setprecision(1)
+ << ", " << setw(2) << (int) oe.elevation
+ << ", " << setw(3) << (int) oe.azimuth
+ << ", " << setw(1) << obs.range
+ << ", " << setw(1) << obs.carrier
+ << ", " << setw(7) << obs.lockCount
+ << setprecision(2)
+ << ", " << setw(5) << obs.snr
+ << setprecision(4)
+ << ", " << setw(13) << obs.pseudorange
+ << ", " << setw(14) << obs.phase
+ << ", " << setw(10) << obs.doppler
+ << endl;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPTableProcessor::process(const gpstk::MDPPVTSolution& pvt)
+{
+ outputHeader();
+ out << pvt.time.printf(timeFormat)
+ << fixed
+ << ", " << setw(3) << pvt.id
+ << ", " << setw(2) << (int)pvt.numSVs
+ << setprecision(3)
+ << ", " << setw(12) << pvt.dtime*1e9
+ << setprecision(6)
+ << ", " << setw(9) << pvt.ddtime*1e9
+ << setprecision(3)
+ << ", " << setw(12) << pvt.x[0]
+ << ", " << setw(12) << pvt.x[1]
+ << ", " << setw(12) << pvt.x[2]
+ << setprecision(3)
+ << ", " << setw(8) << pvt.v[0]
+ << ", " << setw(8) << pvt.v[1]
+ << ", " << setw(8) << pvt.v[2]
+ << endl;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPTableProcessor::process(const gpstk::MDPNavSubframe& sf)
+{
+ outputHeader();
+ out << sf.time.printf(timeFormat)
+ << fixed
+ << ", " << setw(3) << sf.id
+ << ", " << setw(2) << sf.prn
+ << ", " << int(sf.carrier)
+ << ", " << int(sf.range)
+ << ", " << int(sf.nav);
+
+ if (verboseLevel)
+ {
+ out << setfill('0') << hex;
+ for(int i = 1; i < sf.subframe.size(); i++)
+ out << ", " << setw(8) << uppercase << sf.subframe[i];
+ out << dec << setfill(' ');
+ }
+ out << endl;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPTableProcessor::process(const gpstk::MDPSelftestStatus& sts)
+{
+ outputHeader();
+ out << sts.time.printf(timeFormat)
+ << fixed
+ << ", " << setw(3) << sts.id
+ << ", " << sts.selfTestTime.printf("%4F/%9.2g")
+ << ", " << sts.firstPVTTime.printf("%4F/%9.2g")
+ << ", " << setprecision(1) << sts.antennaTemp
+ << ", " << setprecision(1) << sts.receiverTemp
+ << ", " << hex << sts.status << dec
+ << ", " << setprecision(1) << sts.cpuLoad
+ << ", " << hex << sts.extFreqStatus << dec
+ << ", " << hex << sts.saasmStatusWord << dec
+ << endl;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPVerboseProcessor::process(const gpstk::MDPObsEpoch& oe)
+{
+ if (verboseLevel)
+ {
+ oe.dump(out);
+ out << endl;
+ }
+ else
+ {
+ out << oe.getName() << "-:"
+ << " T:" << oe.time.printf(timeFormat)
+ << left
+ << " #SV:" << setw(2) << (int)oe.numSVs
+ << " Ch:" << setw(2) << (int)oe.channel
+ << " PRN:" << setw(2) << (int)oe.prn
+ << " El:" << setw(2) << (int)oe.elevation;
+
+ MDPObsEpoch::ObsMap::const_iterator i;
+ for (i = oe.obs.begin(); i != oe.obs.end(); i++)
+ {
+ const MDPObsEpoch::Observation& obs=i->second;
+ out << " " << StringUtils::asString(obs.carrier)
+ << "-" << StringUtils::asString(obs.range);
+ }
+ out << endl;
+ }
+
+
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPVerboseProcessor::process(const gpstk::MDPPVTSolution& pvt)
+{
+ if (verboseLevel)
+ {
+ pvt.dump(out);
+ out << endl;
+ }
+ else
+ {
+ out << pvt.getName() << "-:"
+ << " T:" << pvt.time.printf(timeFormat)
+ << left
+ << " #SV:" << setw(2) << (int)pvt.numSVs
+ << " X:" << StringUtils::asString(pvt.x[0], 3)
+ << " Y:" << StringUtils::asString(pvt.x[1], 3)
+ << " Z:" << StringUtils::asString(pvt.x[2], 3)
+ << endl;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPVerboseProcessor::process(const gpstk::MDPNavSubframe& sf)
+{
+ if (verboseLevel)
+ {
+ sf.dump(out);
+ out << endl;
+ }
+ else
+ {
+ out << sf.getName() << "-:"
+ << " T:" << sf.time.printf(timeFormat)
+ << " PRN:" << sf.prn
+ << " " << StringUtils::asString(sf.carrier)
+ << "-" << StringUtils::asString(sf.range)
+ << " " << static_cast<int>(sf.nav)
+ << endl;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPVerboseProcessor::process(const gpstk::MDPSelftestStatus& sts)
+{
+ sts.dump(out);
+ out << endl;
+}
diff --git a/dev/apps/MDPtools/MDPProcessors.hpp b/dev/apps/MDPtools/MDPProcessors.hpp
new file mode 100644
index 0000000..2826213
--- /dev/null
+++ b/dev/apps/MDPtools/MDPProcessors.hpp
@@ -0,0 +1,130 @@
+#pragma ident "$Id$"
+
+
+/** @file Various presentations/analysis on MDP streams */
+
+//lgpl-license START
+//lgpl-license END
+
+#ifndef MDPPROCESSORS_HPP
+#define MDPPROCESSORS_HPP
+
+#include <vector>
+#include <map>
+#include <set>
+
+#include <StringUtils.hpp>
+#include <Stats.hpp>
+#include <DayTime.hpp>
+
+#include "MDPStream.hpp"
+#include "MDPNavSubframe.hpp"
+#include "MDPObsEpoch.hpp"
+#include "MDPPVTSolution.hpp"
+#include "MDPSelftestStatus.hpp"
+
+//-----------------------------------------------------------------------------
+class MDPProcessor
+{
+public:
+
+ MDPProcessor();
+ MDPProcessor(gpstk::MDPStream& in, std::ofstream& out);
+ virtual ~MDPProcessor() {};
+
+ void process();
+
+ std::string timeFormat;
+ int debugLevel;
+ int verboseLevel;
+ bool die;
+
+ bool processBad;
+ bool pvtOut, obsOut, navOut, tstOut;
+
+ std::ofstream& out;
+ gpstk::MDPStream& in;
+
+ gpstk::DayTime startTime, stopTime;
+ double timeSpan;
+
+ unsigned long msgCount, fcErrorCount;
+ unsigned short firstFC, lastFC;
+
+ // A bitmask of bugs to not report
+ // bit 0: SV count mismatch
+ //
+ unsigned long bugMask;
+
+private:
+ /// All processors are defined so that subclasses don't have to
+ /// define process methods for messages they don't care about.
+ virtual void process(const gpstk::MDPObsEpoch& oe) {};
+ virtual void process(const gpstk::MDPPVTSolution& pvt) {};
+ virtual void process(const gpstk::MDPNavSubframe& sf) {};
+ virtual void process(const gpstk::MDPSelftestStatus& sts) {};
+};
+
+
+//-----------------------------------------------------------------------------
+class MDPTableProcessor : public MDPProcessor
+{
+ void process(const gpstk::MDPObsEpoch& oe);
+ void process(const gpstk::MDPPVTSolution& pvt);
+ void process(const gpstk::MDPNavSubframe& sts);
+ void process(const gpstk::MDPSelftestStatus& sts);
+
+ bool headerDone;
+ void outputHeader();
+
+public:
+ MDPTableProcessor(gpstk::MDPStream& in, std::ofstream& out);
+};
+
+
+//-----------------------------------------------------------------------------
+class MDPBriefProcessor : public MDPProcessor
+{
+ void process(const gpstk::MDPObsEpoch& oe)
+ {out << "o " << std::flush; };
+
+ void process(const gpstk::MDPPVTSolution& pvt)
+ {out << "p " << std::flush; };
+
+ void process(const gpstk::MDPNavSubframe& sf)
+ {out << "n " << std::flush; };
+
+ void process(const gpstk::MDPSelftestStatus& sts)
+ {out << "s " << std::flush; };
+
+public:
+ MDPBriefProcessor(gpstk::MDPStream& in, std::ofstream& out) :
+ MDPProcessor(in, out)
+ {};
+};
+
+
+//-----------------------------------------------------------------------------
+class MDPVerboseProcessor : public MDPProcessor
+{
+ void process(const gpstk::MDPObsEpoch& oe);
+ void process(const gpstk::MDPPVTSolution& pvt);
+ void process(const gpstk::MDPNavSubframe& sf);
+ void process(const gpstk::MDPSelftestStatus& sts);
+
+public:
+ MDPVerboseProcessor(gpstk::MDPStream& in, std::ofstream& out) :
+ MDPProcessor(in, out)
+ {}
+};
+
+
+//-----------------------------------------------------------------------------
+class MDPNullProcessor : public MDPProcessor
+{
+public:
+ MDPNullProcessor(gpstk::MDPStream& in, std::ofstream& out) :
+ MDPProcessor(in, out)
+ {}
+};
+#endif
diff --git a/dev/apps/MDPtools/Makefile.am b/dev/apps/MDPtools/Makefile.am
new file mode 100644
index 0000000..4874ee7
--- /dev/null
+++ b/dev/apps/MDPtools/Makefile.am
@@ -0,0 +1,13 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../lib/rxio -I$(srcdir)/../../src
+LDADD = ./libmdplib.la ../../lib/rxio/librxio.la ../../src/libgpstk.la
+
+lib_LTLIBRARIES = libmdplib.la
+libmdplib_la_SOURCES = MDPProcessors.cpp SummaryProc.cpp TrackProc.cpp \
+NavProc.cpp
+
+bin_PROGRAMS = mdp2rinex mdptool tcptest
+
+mdptool_SOURCES = mdptool.cpp
+mdp2rinex_SOURCES = mdp2rinex.cpp
+tcptest_SOURCES = tcptest.cpp
diff --git a/dev/apps/MDPtools/NavProc.cpp b/dev/apps/MDPtools/NavProc.cpp
new file mode 100644
index 0000000..cf34a4d
--- /dev/null
+++ b/dev/apps/MDPtools/NavProc.cpp
@@ -0,0 +1,278 @@
+#pragma ident "$Id$"
+
+
+/*
+ Think, navdmp for mdp, with bonus output that you get data from all code/carrier
+ combos.
+*/
+
+#include "Geodetic.hpp"
+#include "NavProc.hpp"
+
+#include "RinexConverters.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+
+//-----------------------------------------------------------------------------
+MDPNavProcessor::MDPNavProcessor(gpstk::MDPStream& in, std::ofstream& out)
+ : MDPProcessor(in, out),
+ firstNav(true), almOut(false), ephOut(false), minimalAlm(false),
+ badNavSubframeCount(0), navSubframeCount(0)
+{
+ timeFormat = "%4Y/%03j/%02H:%02M:%02S";
+
+ binByElevation = true;
+ if (binByElevation)
+ {
+ double binSize=5;
+ for (double x=0; x<90; x+=binSize)
+ bins.push_back(Histogram::BinRange(x, x+binSize));
+ }
+ else
+ {
+ bins.push_back(Histogram::BinRange(0, 30));
+ double binSize=3;
+ for (double x=30; x<60; x+=binSize)
+ bins.push_back(Histogram::BinRange(x, x+binSize));
+ bins.push_back(Histogram::BinRange(60, 99));
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+MDPNavProcessor::~MDPNavProcessor()
+{
+ using gpstk::RangeCode;
+ using gpstk::CarrierCode;
+ using gpstk::StringUtils::asString;
+
+ out << "Done processing data." << endl << endl;
+
+ out << endl << "Navigation Subframe message summary:" << endl;
+ if (firstNav)
+ out << " No Navigation Subframe messages processed." << endl;
+ else
+ {
+ out << " navSubframeCount: " << navSubframeCount << endl;
+ out << " badNavSubframeCount: " << badNavSubframeCount << endl;
+ }
+
+ cout << "Parity Errors" << endl;
+ cout << "# snr ";
+ std::map<RangeCarrierPair, Histogram>::const_iterator peh_itr;
+ for (peh_itr = peHist.begin(); peh_itr != peHist.end(); peh_itr++)
+ {
+ const RangeCarrierPair& rcp=peh_itr->first;
+ cout << " " << asString(rcp.second)
+ << "-" << leftJustify(asString(rcp.first), 2);
+ }
+ cout << endl;
+
+ Histogram::BinRangeList::const_iterator brl_itr;
+ for (brl_itr = bins.begin(); brl_itr != bins.end(); brl_itr++)
+ {
+ const Histogram::BinRange& br = *brl_itr ;
+ std::cout << right << setw(2) << br.first << "-"
+ << left << setw(2) << br.second << ":";
+
+ for (peh_itr = peHist.begin(); peh_itr != peHist.end(); peh_itr++)
+ {
+ const RangeCarrierPair& rcp=peh_itr->first;
+ Histogram h=peh_itr->second;
+ cout << right << setw(9) << h.bins[br];
+ }
+
+ cout << endl;
+ }
+
+ // Whoever would write a reference like this should be shot...
+ cout << right << setw(2) << peHist.begin()->second.bins.begin()->first.first
+ << "-" << left << setw(2) << peHist.begin()->second.bins.rbegin()->first.second
+ << ":";
+
+ for (peh_itr = peHist.begin(); peh_itr != peHist.end(); peh_itr++)
+ cout << right << setw(9) << peh_itr->second.total;
+
+ out << endl;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPNavProcessor::process(const gpstk::MDPNavSubframe& msg)
+{
+ if (firstNav)
+ {
+ firstNav = false;
+ if (verboseLevel)
+ out << msg.time.printf(timeFormat)
+ << " Received first Navigation Subframe message"
+ << endl;
+ }
+
+ navSubframeCount++;
+ RangeCarrierPair rcp(msg.range, msg.carrier);
+ NavIndex ni(rcp, msg.prn);
+
+ gpstk::MDPNavSubframe umsg = msg;
+
+ ostringstream oss;
+ oss << umsg.time.printf(timeFormat)
+ << " PRN:" << setw(2) << umsg.prn
+ << " " << asString(umsg.carrier)
+ << ":" << setw(2) << left << asString(umsg.range)
+ << " ";
+ string msgPrefix = oss.str();
+
+ // First try the data assuming it is already upright
+ umsg.cooked = true;
+ bool parityGood = umsg.checkParity();
+ if (!parityGood)
+ {
+ if (verboseLevel>3)
+ out << msgPrefix << "Raw subframe" << endl;
+ umsg.cooked = false;
+ umsg.cookSubframe();
+ parityGood = umsg.checkParity();
+ }
+ else
+ {
+ if (verboseLevel>3)
+ out << msgPrefix << "Cooked subframe" << endl;
+ }
+
+ if (!parityGood)
+ {
+ badNavSubframeCount++;
+ if (verboseLevel)
+ out << msgPrefix << "Parity error"
+ << " SNR:" << fixed << setprecision(1) << snr[ni]
+ << " EL:" << el[ni]
+ << endl;
+
+ if (peHist.find(rcp) == peHist.end())
+ peHist[rcp].resetBins(bins);
+
+ if (binByElevation)
+ peHist[rcp].addValue(el[ni]);
+ else
+ peHist[rcp].addValue(snr[ni]);
+
+ return;
+ }
+
+ short sfid = umsg.getSFID();
+ short svid = umsg.getSVID();
+ bool isAlm = sfid > 3;
+ long sow = umsg.getHOWTime();
+ short page = ((sow-6) / 30) % 25 + 1;
+
+ if (((isAlm && almOut) || (!isAlm && ephOut))
+ && verboseLevel>2)
+ {
+ out << msgPrefix
+ << "SOW:" << setw(6) << sow
+ << " NC:" << static_cast<int>(umsg.nav)
+ << " I:" << umsg.inverted
+ << " SFID:" << sfid;
+ if (isAlm)
+ out << " SVID:" << svid
+ << " Page:" << page;
+ out << endl;
+ }
+
+ // Sanity check on the header time versus the HOW time
+ short week = umsg.time.GPSfullweek();
+ if (sow <0 || sow>=604800)
+ {
+ badNavSubframeCount++;
+ if (verboseLevel>1)
+ out << msgPrefix << " Bad SOW: " << sow << endl;
+ return;
+ }
+
+ DayTime howTime(week, umsg.getHOWTime());
+ if (howTime == umsg.time)
+ {
+ if (verboseLevel && ! (bugMask & 0x4))
+ out << msgPrefix << " Header time==HOW time" << endl;
+ }
+ else if (howTime != umsg.time+6)
+ {
+ badNavSubframeCount++;
+ if (verboseLevel>1)
+ out << msgPrefix << " HOW time != hdr time+6, HOW:"
+ << howTime.printf(timeFormat)
+ << endl;
+ return;
+ }
+
+ prev[ni] = curr[ni];
+ curr[ni] = umsg;
+
+ if (isAlm && almOut)
+ {
+ AlmanacPages& almPages = almPageStore[ni];
+ EngAlmanac& engAlm = almStore[ni];
+ SubframePage sp(sfid, page);
+ almPages[sp] = umsg;
+ almPages.insert(make_pair(sp, umsg));
+
+ if (makeEngAlmanac(engAlm, almPages, !minimalAlm))
+ {
+ out << msgPrefix << "Built complete almanac" << endl;
+ if (verboseLevel>2)
+ dump(out, almPages);
+ if (verboseLevel>1)
+ engAlm.dump(out);
+ almPages.clear();
+ engAlm = EngAlmanac();
+ }
+ }
+ if (!isAlm && ephOut)
+ {
+ EphemerisPages& ephPages = ephPageStore[ni];
+ ephPages[sfid] = umsg;
+ EngEphemeris engEph;
+ try
+ {
+ if (makeEngEphemeris(engEph, ephPages))
+ {
+ out << msgPrefix << "Built complete ephemeris, iocd:0x"
+ << hex << setw(3) << engEph.getIODC() << dec
+ << endl;
+ if (verboseLevel>2)
+ dump(out, ephPages);
+ if (verboseLevel>1)
+ out << engEph;
+ ephStore[ni] = engEph;
+ }
+ }
+ catch (gpstk::Exception& e)
+ {
+ out << e << endl;
+ }
+ }
+
+ if (verboseLevel>3)
+ out << endl;
+
+} // end of process()
+
+
+void MDPNavProcessor::process(const gpstk::MDPObsEpoch& msg)
+{
+ if (!msg)
+ return;
+
+ for (gpstk::MDPObsEpoch::ObsMap::const_iterator i = msg.obs.begin();
+ i != msg.obs.end(); i++)
+ {
+ const gpstk::MDPObsEpoch::Observation& obs=i->second;
+ NavIndex ni(RangeCarrierPair(obs.range, obs.carrier), msg.prn);
+ snr[ni] = obs.snr;
+ el[ni] = msg.elevation;
+ }
+}
diff --git a/dev/apps/MDPtools/NavProc.hpp b/dev/apps/MDPtools/NavProc.hpp
new file mode 100644
index 0000000..bc80a4e
--- /dev/null
+++ b/dev/apps/MDPtools/NavProc.hpp
@@ -0,0 +1,72 @@
+#pragma ident "$Id$"
+
+#ifndef MDPNAV_HPP
+#define MDPNAV_HPP
+
+#include <map>
+
+#include "EngEphemeris.hpp"
+#include "EngAlmanac.hpp"
+
+#include "Histogram.hpp"
+
+#include "MDPProcessors.hpp"
+
+
+//-----------------------------------------------------------------------------
+class MDPNavProcessor : public MDPProcessor
+{
+public:
+ MDPNavProcessor(gpstk::MDPStream& in, std::ofstream& out);
+ ~MDPNavProcessor();
+
+ virtual void process(const gpstk::MDPNavSubframe& msg);
+ virtual void process(const gpstk::MDPObsEpoch& msg);
+
+ bool firstNav;
+
+ static const int maxChannel=12;
+
+ // First time is of the first missed epoch, second time is the last missed epoch
+ // (i.e. first = previous + obsRateEst, second=current-ObsRateEst
+ typedef std::pair<gpstk::DayTime, gpstk::DayTime> DayTimePair;
+ typedef std::list<DayTimePair> DayTimePairList;
+
+ // Used to control whether we process the engineering eph/alms.
+ bool ephOut;
+ bool almOut;
+ bool minimalAlm; // Set true to allow an alm to be built from a minimal set of pages
+
+ // This is really a triple: RangeCode, CarrierCode, prn
+ typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> RangeCarrierPair;
+ typedef std::pair<RangeCarrierPair, short> NavIndex;
+
+ // This class can keep track of a subframe and where it came from
+ typedef std::map<NavIndex, gpstk::MDPNavSubframe> NavMap;
+
+ // A note on nomenclature. A navigation subframe is as defined in the
+ // '200 and refers a set of 300 bits of the navigation that can be modulated
+ // on the various codes. Think of it as the raw bits. A navigation message
+ // is a logical set of these subframes. For an ephemeris it will always consist
+ // of three subframes, with subframe ids of 1, 2, and 3. For an almanac it will
+ // consist of an undefined number of subframes, all with subframe ids of 4 and 5.
+
+ NavMap prev, curr;
+
+ std::map<NavIndex, gpstk::AlmanacPages> almPageStore;
+ std::map<NavIndex, gpstk::EngAlmanac> almStore;
+
+ std::map<NavIndex, gpstk::EphemerisPages> ephPageStore;
+ std::map<NavIndex, gpstk::EngEphemeris> ephStore;
+
+ std::list<gpstk::MDPNavSubframe> badList;
+ unsigned long badNavSubframeCount, navSubframeCount;
+
+ std::map<NavIndex, double> snr; // 'current' SNR
+ std::map<NavIndex, double> el; // 'current' elevation
+
+ bool binByElevation;
+ std::map<RangeCarrierPair, gpstk::Histogram> peHist;
+ gpstk::Histogram::BinRangeList bins;
+};
+#endif
diff --git a/dev/apps/MDPtools/SummaryProc.cpp b/dev/apps/MDPtools/SummaryProc.cpp
new file mode 100644
index 0000000..021325e
--- /dev/null
+++ b/dev/apps/MDPtools/SummaryProc.cpp
@@ -0,0 +1,559 @@
+#pragma ident "$Id$"
+
+
+/*
+ This intended to perform a quick summary/analysis of the data in a MDP file
+ or stream. The idea is teqc +meta or +mds with a little bit of +qc thrown
+ in for good measure.
+
+ Mainly driven by the needs of the receiver test cases. The following are
+ some of the test cases that this class is to support.
+
+ RS-13 | needs to report data gaps |
+ RS-16 | needs to report data gaps (based upon presense of data, not sv visibility) |
+ RS-31 | Needs to report jumps in the clock offset reported in the PVT messages |
+ RS-32 | "" |
+ RS-58 | Analyze the changes in lock count over tracking anomolies |
+ RS-72 | |
+ RS-133 | Heh, need to run this for 90 days... |
+*/
+
+#include "Geodetic.hpp"
+#include "EngEphemeris.hpp"
+#include "SummaryProc.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+
+//-----------------------------------------------------------------------------
+MDPSummaryProcessor::MDPSummaryProcessor(gpstk::MDPStream& in, std::ofstream& out)
+ : MDPProcessor(in, out),
+ numEpochs(0), numObsEpochMsg(0),
+ firstObs(true), firstPvt(true), firstNav(true), firstSelftest(true),
+ firstObsTime(gpstk::DayTime::END_OF_TIME),
+ lastObsTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ firstNavTime(gpstk::DayTime::END_OF_TIME),
+ lastNavTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ prevEpochTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ obsRateEst(0), pvtRateEst(0),
+ prevObs(maxChannel+1),
+ chanGapList(maxChannel+1),
+ svCountErrorCount(0)
+{
+ elevBins.push_back(elevationPair(10,90));
+ elevBins.push_back(elevationPair( 0, 5));
+ elevBins.push_back(elevationPair( 5,10));
+ elevBins.push_back(elevationPair(10,20));
+ elevBins.push_back(elevationPair(20,60));
+ elevBins.push_back(elevationPair(60,90));
+ processBad = true;
+}
+
+
+//-----------------------------------------------------------------------------
+MDPSummaryProcessor::~MDPSummaryProcessor()
+{
+ using gpstk::RangeCode;
+ using gpstk::CarrierCode;
+ using gpstk::StringUtils::asString;
+
+ out << "Done processing data." << endl << endl;
+
+ out << endl << "Header summary:" << endl;
+ cout << " Processed "<< msgCount << " headers." << endl
+ << " First freshness count was " << hex << firstFC << dec << endl
+ << " Last freshness count was " << hex << lastFC << dec << endl
+ << " Encountered " << fcErrorCount << " breaks in the freshness count" << endl;
+
+ out << endl << "Observation Epoch message summary:" << endl;
+
+ if (firstObs)
+ out << "No Observation Epoch messages processed." << endl;
+ else
+ {
+ double dt = lastObsTime - firstObsTime;
+ out << " Processed " << numObsEpochMsg
+ << " observation epoch messages spanning "
+ << numEpochs << " epochs."
+ << endl
+ << " Obs data spans " << firstObsTime.printf(timeFormat)
+ << " to " << lastObsTime.printf(timeFormat)
+ << " (" << secondsAsHMS(dt) << ")"
+ << endl
+ << " Obs output rate is " << setprecision(2) << obsRateEst
+ << " sec."
+ << endl;
+
+ for (DayTimePairList::const_iterator i=epochGapList.begin(); i!=epochGapList.end(); i++)
+ if (std::abs(i->first - i->second - obsRateEst) > 1e-3)
+ out << " Data gap from " << i->second.printf(timeFormat)
+ << " to " << i->first.printf(timeFormat)
+ << " ( " << secondsAsHMS(i->first - i->second) << " )."
+ << endl;
+
+ for (elevBinList::const_iterator i=elevBins.begin(); i!=elevBins.end(); i++)
+ {
+ const ocm &oc = whack[*i];
+ if (oc.size())
+ out << " Elevation: " << i->first << "..." << i->second << endl;
+ for (ocm::const_iterator j=oc.begin(); j!=oc.end(); j++)
+ {
+ const rc_set ccs = j->first;
+ if (ccs.size())
+ {
+ out << setw(10) << j->second << " ";
+ for (rc_set::const_iterator k=ccs.begin(); k!=ccs.end(); k++)
+ out << "(" << asString(k->second)
+ << ", " << asString(k->first) << ")";
+ out << endl;
+ }
+ }
+ if (verboseLevel<2)
+ break;
+ out << endl;
+ }
+
+ cout << "Encountered " << svCountErrorCount << " SV count errors." << endl;
+ }
+
+ out << endl << "PVT Solution message summary:" << endl;
+ if (firstPvt)
+ out << " No PVT Solution messages processed." << endl;
+ else
+ {
+ double dt = lastPvtTime - firstPvtTime;
+ out << " Pvt data spans " << firstPvtTime.printf(timeFormat)
+ << " to " << lastPvtTime.printf(timeFormat)
+ << " (" << secondsAsHMS(dt) << ")"
+ << endl
+ << " PVT output rate is " << setprecision(2) << pvtRateEst << " sec."
+ << endl << endl;
+ }
+
+
+ out << endl << "Navigation Subframe message summary:" << endl;
+ if (firstNav)
+ out << " No Navigation Subframe messages processed." << endl;
+ else
+ {
+ double dt = lastNavTime - firstNavTime;
+ out << " Nav data spans " << firstNavTime.printf(timeFormat)
+ << " to " << lastNavTime.printf(timeFormat)
+ << " (" << secondsAsHMS(dt) << ")"
+ << endl << endl;
+ }
+
+ out << endl;
+ if (badMessages.size())
+ {
+ out << "Received " << badMessages.size() << " messages with an error." << endl;
+ if (verboseLevel>1)
+ {
+ out << "Headers from the bad messages:" << endl;
+ for (MDPList::const_iterator i=badMessages.begin(); i!=badMessages.end(); i++)
+ i->dump(out);
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPSummaryProcessor::process(const gpstk::MDPObsEpoch& msg)
+{
+ if (!msg)
+ {
+ badMessages.push_back(msg);
+ return;
+ }
+
+ // First, do gross accounting on the rate the obs are coming in
+ if (firstObs)
+ {
+ firstObsTime = msg.time;
+ firstObs = false;
+ if (verboseLevel)
+ out << msg.time.printf(timeFormat)
+ << " Received first Observation Epoch message"
+ << endl;
+ }
+ else
+ {
+ double dt = msg.time - prevEpochTime;
+ if (std::abs(dt - obsRateEst) > 1e-3 && dt>0)
+ {
+ if (obsRateEst > 0)
+ {
+ gpstk::DayTime first = prevEpochTime + dt;
+ gpstk::DayTime second = msg.time - dt;
+ epochGapList.push_back(DayTimePair(first, second));
+ if (verboseLevel)
+ {
+ out << msg.time.printf(timeFormat)
+ << " Obs output rate " << dt << " sec";
+ if (obsRateEst != 0)
+ out << " (was " << obsRateEst << " sec).";
+ out << endl;
+ }
+ }
+ obsRateEst = dt;
+ }
+ }
+
+ lastObsTime=msg.time;
+
+ // Next, make a set of the obs that this epoch has and add
+ // this to a list in the appropriate elevation bin
+ rc_set ccs;
+ for (gpstk::MDPObsEpoch::ObsMap::const_iterator i = msg.obs.begin();
+ i != msg.obs.end(); i++)
+ {
+ const gpstk::MDPObsEpoch::Observation& obs=i->second;
+ rcpair rcPair(obs.range, obs.carrier);
+ ccs.insert(rcPair);
+ }
+
+ // figure out what bins we should update code/carrier counts on
+ for (elevBinList::const_iterator i=elevBins.begin(); i!=elevBins.end(); i++)
+ if (msg.elevation >= i->first && msg.elevation <= i->second)
+ whack[*i][ccs]++;
+
+ // This part does some accounting on a per channel basis. The intent is to
+ // look for when there is a gap in the data on a channel.
+ int prn=msg.prn;
+ int chan=msg.channel;
+
+ // First check to see if this channel has been used yet...
+ if (prevObs[chan].prn == 0)
+ {
+ // do nothing
+ }
+ else
+ {
+ // flag when there is a gap on this channel
+ double dt = msg.time - prevObs[chan].time;
+ if (std::abs(dt) < 1e-3)
+ {
+ out << msg.time.printf(timeFormat)
+ << " Got two consecutive obs on channel "
+ << chan << " with the same time." << endl;
+ if (verboseLevel)
+ msg.dump(out), prevObs[chan].dump(out);
+ }
+ else if (obsRateEst == 0)
+ {
+ // do nothing
+ }
+ else if ( (std::abs(dt - obsRateEst) > 1e-3) &&
+ (prevObs[chan].prn == msg.prn) )
+ {
+ gpstk::DayTime first = prevObs[chan].time + dt;
+ gpstk::DayTime second = msg.time - dt;
+ chanGapList[chan].push_back(DayTimePair(first, second));
+ if (verboseLevel>1)
+ out << msg.time.printf(timeFormat)
+ << " Data gap on channel " << chan
+ << ", " << secondsAsHMS(dt)
+ << endl;
+ if (verboseLevel>2)
+ {
+ out << " prev obs on chan " << chan << endl;
+ prevObs[chan].dump(out);
+ out << " curr obs:" << endl;
+ msg.dump(out);
+ }
+ }
+
+ // Look for discontinuities in the lock count
+ // Since this can be quite verbose, only do it in verbose mode
+ if (verboseLevel)
+ {
+ for (gpstk::MDPObsEpoch::ObsMap::const_iterator i = msg.obs.begin();
+ i != msg.obs.end(); i++)
+ {
+ const gpstk::MDPObsEpoch::Observation& curr=i->second;
+ if (prevObs[chan].haveObservation(i->first.first, i->first.second))
+ {
+ gpstk::MDPObsEpoch::Observation prev = prevObs[chan].getObservation(i->first.first, i->first.second);
+ if (curr.lockCount - prev.lockCount != 1)
+ {
+ // The current ash2mdp has periods where it outputs every
+ // message with a lock count of zero
+ if ((prev.lockCount > 0 && verboseLevel>1) || verboseLevel>2)
+ out << msg.time.printf(timeFormat)
+ << " Lock count reset prn " << prn
+ << ", chan " << chan
+ << ", " << asString(i->first.first)
+ << " " << asString(i->first.second)
+ << " (" << prev.lockCount
+ << " -> " << curr.lockCount
+ << ")" << endl;
+ }
+ }
+ }
+ }
+ }
+
+ // Keep track of the number of epochs we have processed and check the
+ // numSVs field.
+ if (prevEpochTime != msg.time)
+ {
+ numEpochs++;
+
+ int prevActual=0;
+ int prevReported=0;
+ for (size_t i = 1; i<=maxChannel; i++)
+ {
+ if (prevObs[i].time == prevEpochTime)
+ {
+ prevActual++;
+ if (prevReported==0)
+ prevReported = prevObs[i].numSVs;
+ }
+ }
+ if (prevActual != prevReported)
+ {
+ svCountErrorCount++;
+ if (! (bugMask & 0x01))
+ cout << prevEpochTime.printf(timeFormat)
+ << " Epoch claimed " << prevReported
+ << " SVs but only received " << prevActual << endl;
+ }
+ }
+
+ prevObs[chan] = msg;
+ prevEpochTime = msg.time;
+ numObsEpochMsg++;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPSummaryProcessor::process(const gpstk::MDPPVTSolution& msg)
+{
+ if (!msg)
+ {
+ badMessages.push_back(msg);
+ return;
+ }
+
+ if (firstPvt)
+ {
+ firstPvt = false;
+ firstPvtTime = msg.time;
+ if (verboseLevel)
+ out << msg.time.printf(timeFormat)
+ << " Received first PVT Solution message"
+ << endl;
+ }
+ else
+ {
+ double dt = msg.time - prevPvt.time;
+ if (std::abs(dt - pvtRateEst) > 1e-3 && dt>0)
+ {
+ if (verboseLevel)
+ {
+ out << msg.time.printf(timeFormat)
+ << " PVT output rate " << dt << " sec";
+ if (pvtRateEst != 0)
+ out << "(was " << pvtRateEst << " sec).";
+ out << endl;
+ }
+ pvtRateEst = dt;
+
+ // flag when there is a gap
+ double dt = msg.time - prevPvt.time;
+ if (std::abs(dt) < 1e-3)
+ {
+ out << msg.time.printf(timeFormat)
+ << " Got two consecutive PVT messages with the same time." << endl;
+ if (verboseLevel)
+ msg.dump(out), prevPvt.dump(out);
+ }
+ else if (pvtRateEst == 0)
+ {
+ // do nothing
+ }
+ else if ( std::abs(dt - pvtRateEst) > 1e-3 )
+ {
+ gpstk::DayTime first = prevPvt.time + dt;
+ gpstk::DayTime second = msg.time - dt;
+ if (verboseLevel)
+ out << msg.time.printf(timeFormat)
+ << " Gap in PVT messages: " << secondsAsHMS(dt)
+ << endl;
+ if (verboseLevel>2)
+ {
+ out << " prev pvt:" << endl;
+ prevPvt.dump(out);
+ out << " curr obs:" << endl;
+ msg.dump(out);
+ }
+ }
+
+ // Look for discontinuities in the recevier clock estimate
+ double ddt = msg.dtime - prevPvt.dtime;
+ double dtdt = ddt/(msg.time - prevPvt.time);
+ double dtdtErr = std::abs(dtdt - msg.ddtime);
+ if (dtdt > 1e-6)
+ out << msg.time.printf(timeFormat)
+ << " Clock jump: " << setprecision(3) << scientific << ddt
+ << " sec, (" << dtdt << " vs " << msg.ddtime
+ << " sec/sec)"
+ << fixed << endl;
+ else if (dtdtErr > 1e-8 && verboseLevel)
+ out << msg.time.printf(timeFormat)
+ << " Clock error: " << setprecision(3) << scientific << ddt
+ << " sec, (" << dtdt << " vs " << msg.ddtime
+ << " sec/sec)"
+ << fixed << endl;
+ }
+
+ prevPvt = msg;
+ lastPvtTime = msg.time;
+ }
+}
+
+//-----------------------------------------------------------------------------
+void MDPSummaryProcessor::process(const gpstk::MDPNavSubframe& msg)
+{
+ if (!msg)
+ {
+ badMessages.push_back(msg);
+ return;
+ }
+
+ gpstk::MDPNavSubframe umsg = msg;
+
+ // First try the data assuming it is already upright
+ umsg.cooked = true;
+ bool parityGood = umsg.checkParity();
+ if (!parityGood)
+ {
+ if (verboseLevel>2)
+ out << msg.time.printf(timeFormat)
+ << " Subframe appears raw" << endl;
+ umsg.cooked = false;
+ umsg.cookSubframe();
+ parityGood = umsg.checkParity();
+ }
+ else
+ {
+ if (verboseLevel>2)
+ out << msg.time.printf(timeFormat)
+ << " Subframe appears cooked" << endl;
+ }
+
+
+ if (!(bugMask & 0x2) && !parityGood)
+ {
+ MDPNavSubframe tmp(msg);
+ tmp.setstate(parbit);
+ badMessages.push_back(tmp);
+ return;
+ }
+
+ long how_sow = umsg.getHOWTime();
+ long hdr_sow = static_cast<long>(umsg.time.GPSsow());
+ if (how_sow < 0 || how_sow >= 604800)
+ {
+ if (verboseLevel)
+ out << umsg.time.printf(timeFormat)
+ << " Bogus HOW SOW (" << how_sow << ")"
+ << endl;
+ MDPNavSubframe tmp(umsg);
+ tmp.setstate(fmtbit);
+ badMessages.push_back(tmp);
+ return;
+ }
+
+ if ( (how_sow != hdr_sow+6 && how_sow != hdr_sow) ||
+ (how_sow == hdr_sow && !(bugMask & 0x4)) )
+ {
+ if (verboseLevel)
+ out << umsg.time.printf(timeFormat)
+ << " Navigation Subframe HOW/header time mismatch ("
+ << how_sow << " vs " << hdr_sow << ")"
+ << endl;
+ MDPNavSubframe tmp(umsg);
+ tmp.setstate(fmtbit);
+ badMessages.push_back(tmp);
+ return;
+ }
+
+ if (umsg && firstNav)
+ {
+ firstNav = false;
+ firstNavTime = umsg.time;
+ if (verboseLevel)
+ out << umsg.time.printf(timeFormat)
+ << " Received first Navigation Subframe message"
+ << endl;
+ }
+
+ lastNavTime = umsg.time;
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPSummaryProcessor::process(const gpstk::MDPSelftestStatus& msg)
+{
+ if (!msg)
+ {
+ badMessages.push_back(msg);
+ return;
+ }
+
+ if (firstSelftest)
+ {
+ firstSelftest = false;
+ if (verboseLevel)
+ out << msg.time.printf(timeFormat)
+ << " Received first Selftest Status message"
+ << endl;
+ }
+
+ if (verboseLevel)
+ {
+ if (msg.extFreqStatus != prevSelftestStatus.extFreqStatus)
+ out << msg.time.printf(timeFormat)
+ << " External Frequency Status: "
+ << msg.extFreqStatus
+ << endl;
+
+ if (msg.saasmStatusWord != prevSelftestStatus.saasmStatusWord)
+ out << msg.time.printf(timeFormat)
+ << " SAASM Status Word: 0x"
+ << hex << msg.saasmStatusWord << dec
+ << endl;
+ }
+ prevSelftestStatus = msg;
+}
+
+std::string MDPSummaryProcessor::secondsAsHMS(double seconds) const
+{
+ std::ostringstream oss;
+ oss << setfill('0');
+
+ if (seconds<0)
+ oss << "-";
+
+ seconds = std::abs(seconds);
+ long d=0,h=0,m=0,s=0;
+ s = static_cast<long>(std::floor(seconds));
+ seconds -= static_cast<double>(s);
+
+ if (s > 86400) { d = s/86400; s %= 86400; }
+ if (s > 3600) { h = s/3600; s %= 3600; }
+ if (s > 60) { m = s/60; s %= 60; }
+
+ if (d) oss << d << " d ";
+ if (h) oss << setw(2) << h << ":";
+ if (m) oss << setw(2) << m << ":";
+ if (h || m)
+ oss << fixed << setprecision(1) << setw(4) << seconds+s;
+ else
+ oss << setfill(' ') << fixed << setprecision(1) << seconds+s << " s";
+
+ return oss.str();
+}
diff --git a/dev/apps/MDPtools/SummaryProc.hpp b/dev/apps/MDPtools/SummaryProc.hpp
new file mode 100644
index 0000000..ce8d8a6
--- /dev/null
+++ b/dev/apps/MDPtools/SummaryProc.hpp
@@ -0,0 +1,70 @@
+#pragma ident "$Id$"
+
+
+#ifndef MDPSUMMARY_HPP
+#define MDPSUMMARY_HPP
+
+#include "MDPProcessors.hpp"
+
+//-----------------------------------------------------------------------------
+class MDPSummaryProcessor : public MDPProcessor
+{
+public:
+ MDPSummaryProcessor(gpstk::MDPStream& in, std::ofstream& out);
+ ~MDPSummaryProcessor();
+
+ virtual void process(const gpstk::MDPObsEpoch& msg);
+ virtual void process(const gpstk::MDPPVTSolution& msg);
+ virtual void process(const gpstk::MDPNavSubframe& msg);
+ virtual void process(const gpstk::MDPSelftestStatus& msg);
+
+ unsigned long numEpochs;
+ unsigned long numObsEpochMsg;
+
+ std::string secondsAsHMS(double s) const;
+
+ typedef std::pair<int, int> elevationPair; // first is min, second is max
+ typedef std::list<elevationPair> elevBinList;
+ elevBinList elevBins;
+
+ // Used to determine how many of each type of obs we get
+ typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> rcpair;
+ typedef std::set<rcpair> rc_set;
+ typedef std::map<rc_set, unsigned long> ocm;
+ typedef std::map<elevationPair, ocm> ebocm;
+ ebocm whack;
+
+ // How many epochs that have the incorrect number of SVs in them.
+ unsigned long svCountErrorCount;
+
+ // the time of the first epoch processed and the last epoch processed
+ gpstk::DayTime firstObsTime, lastObsTime;
+ gpstk::DayTime firstPvtTime, lastPvtTime;
+ gpstk::DayTime firstNavTime, lastNavTime;
+
+ bool firstObs, firstPvt, firstNav, firstSelftest;
+ double obsRateEst, pvtRateEst;
+ gpstk::DayTime prevEpochTime;
+
+ static const int maxChannel=12;
+
+ // First time is of the first missed epoch, second time is the last missed epoch
+ // (i.e. first = previous + obsRateEst, second=current-ObsRateEst
+ typedef std::pair<gpstk::DayTime, gpstk::DayTime> DayTimePair;
+ typedef std::list<DayTimePair> DayTimePairList;
+ DayTimePairList epochGapList;
+ std::vector<DayTimePairList> chanGapList;
+
+ // This is used to record the previous obs on each channel
+ typedef std::vector<gpstk::MDPObsEpoch> ObsEpochVector;
+ ObsEpochVector prevObs;
+
+ gpstk::MDPPVTSolution prevPvt;
+ gpstk::MDPSelftestStatus prevSelftestStatus;
+
+ // A list of all messages that had an error decoding them...
+ typedef std::list<gpstk::MDPHeader> MDPList;
+ MDPList badMessages;
+
+};
+#endif
diff --git a/dev/apps/MDPtools/TrackProc.cpp b/dev/apps/MDPtools/TrackProc.cpp
new file mode 100644
index 0000000..99cfbda
--- /dev/null
+++ b/dev/apps/MDPtools/TrackProc.cpp
@@ -0,0 +1,142 @@
+#pragma ident "$Id$"
+
+
+/*
+ This intended to perform a quick summary/analysis of the data in a MDP file
+ or stream. The idea is teqc +meta or +mds with a little bit of +qc thrown
+ in for good measure
+*/
+
+#include "Geodetic.hpp"
+#include "TrackProc.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+
+//-----------------------------------------------------------------------------
+MDPTrackProcessor::MDPTrackProcessor(gpstk::MDPStream& in, std::ofstream& out)
+ : MDPProcessor(in, out),
+ currCv(13), prevCv(13)
+{
+ timeFormat = "%02H:%02M:%04.1f";
+ for (int i=1; i<currCv.size(); i++)
+ currCv[i].prn=-1;
+ for (int i=1; i<prevCv.size(); i++)
+ prevCv[i].prn=-1;
+
+ obsOut = true;
+}
+
+
+MDPTrackProcessor::~MDPTrackProcessor()
+{}
+
+void MDPTrackProcessor::process(const gpstk::MDPObsEpoch& oe)
+{
+ if (oe.time != currTime)
+ {
+ printChanges();
+ prevTime = currTime;
+ currTime = oe.time;
+ prevCv = currCv;
+ for (int i=1; i<currCv.size(); i++)
+ currCv[i].prn=-1;
+ }
+
+ int prn=oe.prn;
+ int chan=oe.channel;
+
+ if (chan<1 || chan >12)
+ cout << "Bad channel" << endl, exit(-1);
+
+ // make a set of the obs that this epoch has
+ rc_set ccs;
+ currCv[chan].codes = " ";
+ for (gpstk::MDPObsEpoch::ObsMap::const_iterator i = oe.obs.begin();
+ i != oe.obs.end(); i++)
+ {
+ const gpstk::MDPObsEpoch::Observation& obs=i->second;
+ rcpair rcPair(obs.range, obs.carrier);
+ ccs.insert(rcPair);
+ if (obs.carrier == ccL1)
+ {
+ if (obs.range == rcCA) currCv[chan].codes[0] = 'c';
+ if (obs.range == rcPcode) currCv[chan].codes[1] = 'p';
+ else if (obs.range == rcYcode) currCv[chan].codes[1] = 'y';
+ else if (obs.range == rcCodeless) currCv[chan].codes[1] = 'z';
+ }
+ else if (obs.carrier == ccL2)
+ {
+ if (obs.range == rcCM) currCv[chan].codes[2] = 'm';
+ else if (obs.range == rcCL) currCv[chan].codes[2] = 'l';
+ else if (obs.range == rcCMCL) currCv[chan].codes[2] = 'x';
+ else if (obs.range == rcCA) currCv[chan].codes[2] = 'c';
+ if (obs.range == rcPcode) currCv[chan].codes[3] = 'p';
+ else if (obs.range == rcYcode) currCv[chan].codes[3] = 'y';
+ else if (obs.range == rcCodeless) currCv[chan].codes[3] = 'z';
+ }
+ }
+ currCv[chan].obs = ccs;
+ currCv[chan].prn = oe.prn;
+ currCv[chan].elevation = oe.elevation;
+}
+
+void MDPTrackProcessor::printChanges()
+{
+ if (verboseLevel)
+ {
+ // This is the one line per channel format.
+ for (int i = 1; i < currCv.size(); i++)
+ {
+ // This means that there has been a change in track
+ bool change = currCv[i].obs != prevCv[i].obs ||
+ currCv[i].prn != prevCv[i].prn ||
+ (prevCv[i].prn == -1 && currCv[i].prn == -1);
+ if (change)
+ {
+ if (prevCv[i].prn == -1 && currCv[i].prn == -1)
+ continue;
+ out << currTime.printf(timeFormat) << " Ch:" << setw(2) << i;
+ if (currCv[i].prn >0)
+ {
+ out << " Prn: " << setw(2) << currCv[i].prn
+ << " Elev: " << fixed << setprecision(1) << setw(4)
+ << currCv[i].elevation << " ";
+ const rc_set &ccs = currCv[i].obs;
+ for (rc_set::const_iterator j=ccs.begin(); j!=ccs.end(); j++)
+ out << " (" << asString(j->second)
+ << ", " << asString(j->first) << ")";
+ }
+ else
+ {
+ out << " unused";
+ }
+ out << endl;
+ }
+ }
+ }
+ else
+ {
+ // This is the one line per epoch with changes
+ bool change=false;
+ for (int i = 1; i < currCv.size() && change==false; i++)
+ change = (currCv[i].obs != prevCv[i].obs ||
+ currCv[i].prn != prevCv[i].prn) &&
+ (prevCv[i].prn != -1 || currCv[i].prn != -1);
+
+ if (change)
+ {
+ out << currTime.printf(timeFormat);
+ for (int i = 1; i < currCv.size(); i++)
+ {
+ if (currCv[i].prn >0)
+ out << setw(4) << currCv[i].prn << currCv[i].codes;
+ else
+ out << setw(4) << " -" << " ";
+ }
+ out << endl;
+ }
+ }
+}
diff --git a/dev/apps/MDPtools/TrackProc.hpp b/dev/apps/MDPtools/TrackProc.hpp
new file mode 100644
index 0000000..98450ad
--- /dev/null
+++ b/dev/apps/MDPtools/TrackProc.hpp
@@ -0,0 +1,37 @@
+#pragma ident "$Id$"
+
+
+#ifndef MDPTRACK_HPP
+#define MDPTRACK_HPP
+
+#include "MDPProcessors.hpp"
+
+//-----------------------------------------------------------------------------
+class MDPTrackProcessor : public MDPProcessor
+{
+public:
+ MDPTrackProcessor(gpstk::MDPStream& in, std::ofstream& out);
+ ~MDPTrackProcessor();
+
+ virtual void process(const gpstk::MDPObsEpoch& oe);
+
+ // Used to determine how many of each type of obs we get
+ typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> rcpair;
+ typedef std::set<rcpair> rc_set;
+
+ struct ChanRec
+ {
+ int prn;
+ float elevation;
+ rc_set obs;
+ std::string codes;
+ };
+
+ // This is a list of what is being received for each channel
+ typedef std::vector<ChanRec> ChanVector;
+ ChanVector currCv, prevCv;
+ gpstk::DayTime currTime, prevTime;
+
+ void printChanges();
+};
+#endif
diff --git a/dev/apps/MDPtools/UniqueAlmStore.cpp b/dev/apps/MDPtools/UniqueAlmStore.cpp
new file mode 100644
index 0000000..a5c0519
--- /dev/null
+++ b/dev/apps/MDPtools/UniqueAlmStore.cpp
@@ -0,0 +1,406 @@
+#pragma ident "$Id$"
+
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+/**
+ * @file UniqueAlmStore.cpp
+ */
+#include <iostream>
+#include "UniqueAlmStore.hpp"
+
+#include "FICData162.hpp"
+#include "FICData62.hpp"
+#include "gps_constants.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ // Table 20-V from IS-GPS-200. Negative numbers inidicate
+ // that the SVID given is nominal, but substitutions are allowe4.
+ static short SVIDOrder[] = { 57, 1,
+ 25, 2,
+ 26, 3,
+ 27, 4,
+ 28, 5,
+ 57, 6,
+ 29, 7,
+ 30, 8,
+ 31, 9,
+ 32, 10,
+ 57, 11,
+ 62, 12,
+ 52, 13,
+ 53, 14,
+ 54, 15,
+ 57, 16,
+ 55, 17,
+ 56, 18,
+ -58, 19,
+ -59, 20,
+ 57, 21,
+ -60, 22,
+ -61, 23,
+ 62, 24,
+ 63, 51 };
+
+ UniqueAlmStore::UniqueAlmStore( NavIndex ni, NavCode nc )
+ {
+ state = WAITING;
+ prn = ni.second;
+ range = (ni.first).first;
+ navCode = nc;
+ startingSOW = -10;
+ candidateToa = -10;
+ written = false;
+ numPagesExamined = 0;
+ ToaTime = gpstk::DayTime::BEGINNING_OF_TIME;
+ }
+
+ pmCI UniqueAlmStore::begin() const { return(pageMap.begin()); }
+ pmCI UniqueAlmStore::end() const { return(pageMap.end()); }
+
+ void UniqueAlmStore::newSubframe( gpstk::MDPNavSubframe nav )
+ {
+ numPagesExamined++;
+
+ // Check parity
+ long sfa[10];
+ nav.fillArray(sfa);
+ uint32_t uint_sfa[10];
+ for (int j=0; j<10; ++j) uint_sfa[j] = static_cast<uint32_t>( sfa[j] );
+ if (!gpstk::EngNav::checkParity(uint_sfa))
+ return;
+
+ // Pull the SVID and time from the subframe
+ short SVID = nav.getSVID();
+ short week = nav.time.GPSfullweek();
+ long sow = nav.getHOWTime();
+ if ( sow >604800)
+ return;
+
+ DayTime howTime(week, sow);
+
+ //if (nav.prn==1) cout << "state, SFID, SVID: " << state << ", " << nav.getSFID() << ", " << SVID;
+ // Definitions that appear to need to be outside the switch
+ short expectedSVID;
+ bool optional;
+ bool storePage;
+ int newState = state;
+ switch (state)
+ {
+ // If WAITING, we're looking for SF 5, Page 25
+ // which is SVID 51.
+ case WAITING:
+ if (SVID!=51) break;
+ candidateToa = getToa(nav);
+ newState = START_ON_NEXT_FRAME;
+ if (nav.prn==1) cout << "State Change:START_ON_NEXT_FRAME" << endl;
+ // Clear the subframe map so it's ready to fill
+ pageMap.clear();
+ ToaTime = DayTime::BEGINNING_OF_TIME;
+ startingSOW = -10;
+ written = false;
+ break;
+
+ // The previous SF5 was pg 25, SVID 51.
+ // The next almanac SF we see should be
+ // Pg 4, pg 1, SVID 57 with a time that's
+ // equal to an even 12.5 min (750 sec) epoch
+ // (lus an appropriate offset for the 3 ephemeris
+ // pages and the usual +6 HOW offset(
+ // in terms of SOW. If so, we've established
+ // sync with the almanac cycle and we should
+ // start collecting.
+ case START_ON_NEXT_FRAME:
+ {
+ if (nav.prn==1) cout << "Checking for start. SFID, SVID = " << nav.getSFID() << ", " << SVID << endl;
+ if (nav.getSFID()!=4 ||
+ SVID!=57 ) { newState=WAITING; break; }
+ long test = nav.getHOWTime();
+ long remainder = test % ALMANAC_PERIOD;
+ if (remainder!=SF4_OFFSET) {newState=WAITING; break; }
+ // Appear to have sync, initialize collection
+ SVIDOrderNdx = 0;
+ startingSOW = test;
+ newState = COLLECTING;
+ if (nav.prn==1) cout << "State Change:COLLECTING" << endl;
+ //break; - NO BREAK, we WANT to drop through
+ // to COLLECTING and process this SF
+ }
+
+ // If COLLECTING, we're
+ case COLLECTING:
+ if (nav.prn==1) cout << "COLLECTING: SVID = : " << SVID << endl;
+ if (isToaPage(SVID))
+ {
+ if (candidateToa!=getToa(nav))
+ {
+ newState = WAITING; // Toa mismatch, restart
+ if (nav.prn==1) cout << "State change: WAITING. toa mismatch" << endl;
+ break;
+ }
+ }
+
+ // Test the SVID
+ storePage = true;
+ expectedSVID = SVIDOrder[SVIDOrderNdx];
+ optional = false;
+ if (expectedSVID < 0)
+ {
+ optional = true;
+ expectedSVID = -1 * expectedSVID;
+ }
+ // Test if page is for unavailable SV
+ if (nav.getSVID()==0 &&
+ expectedSVID>1 && expectedSVID<=32)
+ {
+ storePage = false;
+ }
+ // A relaxed test if page is optional in the ordering
+ else if (optional &&
+ nav.getSVID()!=expectedSVID)
+ {
+ cerr << "WARNING: Expected SVID " << expectedSVID <<
+ ", received SVID " << nav.getSVID() <<
+ ". Continuing." << endl;
+ }
+ else if (expectedSVID!=nav.getSVID())
+ {
+ newState = WAITING; // SVID mismatch, restart
+ if (nav.prn==1) cout << "State change: WAITING. SVID out of order" << endl;
+ break;
+ }
+ SVIDOrderNdx++;
+
+ // All tests passed. Store the page.
+ if (storePage) pageMap.insert( make_pair(expectedSVID,nav) );
+
+ // If this is true, we've collected the final
+ // page of a possible set. Perform some checks.
+ if (expectedSVID==51)
+ {
+ if (nav.prn==1) cout << "Testing for end of cycle." << endl;
+ // Check 12.5 min period
+ // First page in set was a SF4, we're now
+ // 24 frames later with a SF5.
+ // (24 frames * 30s/frame) + 6s = 726s;
+ long nowHOW = nav.getHOWTime();
+ long diff = nowHOW - startingSOW;
+ if (diff!= (ALMANAC_PERIOD+6-30) )
+ {
+ newState = WAITING; // Wrong time for cycle, restart
+ if (nav.prn==1) cout << "State change: WAITING. Cycle time of " << diff << " incorrect" << endl;
+ break;
+ }
+
+ // Check for page completeness
+ if (!completeSetOfPages())
+ {
+ newState = WAITING; // Incomplete attempt, restart
+ if (nav.prn==1) cout << "State change: WAITING. incomplete set of pages" << endl;
+ break;
+ }
+
+ // Set ToA time
+ short currentWeek = nav.time.GPSfullweek();
+ uint32_t word = nav.subframe[3];
+ word &= 0x00003FC0;
+ word >>= 6;
+ short toaWeek = fullWeekFrom8Bit( currentWeek, (short) word );
+ ToaTime = DayTime( toaWeek, candidateToa );
+
+ newState = COMPLETE;
+ if (nav.prn==1) cout << "State Change:COMPLETE !!!" << endl;
+ }
+ break;
+
+ // If COMPLETE, then we're
+ // watching the stream to see a change in the
+ // Toa. At that point, we flush the current
+ // data and start all over again in WAITING.
+ case COMPLETE:
+ if (isToaPage(SVID))
+ {
+ if (candidateToa!=getToa(nav))
+ {
+ newState = WAITING; // New Toa, start a new collection
+ if (nav.prn==1) cout << "State Change:WAITING. Found new Toa" << endl;
+ }
+ }
+ break;
+ }
+ // update the state
+ state = newState;
+ return;
+ }
+
+ bool UniqueAlmStore::completeSetOfPages() const
+ {
+ int n;
+
+ // SV IDs 51-57, 62, and 63 must be present
+ pmCI p;
+ for (n=51;n<57;++n)
+ {
+ p = pageMap.find(n);
+ if ( p==pageMap.end() ) return(false);
+ }
+ p = pageMap.find(62);
+ if ( p==pageMap.end() ) return(false);
+ p = pageMap.find(63);
+ if ( p==pageMap.end() ) return(false);
+
+ // For SVID 1-32, should have a page for every
+ // SV where health is not 0x3F.
+ // First unpack the health for all 32 SVs
+ // (we already proved we have the health pages).
+ short tempHealth[gpstk::MAX_PRN+2]; // a. want to index 1-32
+ short SVndx = 0; // b. there's a "don't care" 33
+
+ // SF5, pg 25, SVID 51. Health for PRNID 1-24
+ p = pageMap.find(51);
+ const MDPNavSubframe& nav51 = p->second;
+ uint32_t word;
+ uint32_t h;
+ for (n=4;n<=9;++n)
+ {
+ word = nav51.subframe[n];
+ word >>= 6; // Remove parity
+ for (int bndx=4;bndx>=1;--bndx)
+ {
+ h = word & 0x0000003F;
+ int pndx = SVndx+bndx;
+ tempHealth[pndx] = (short) h;
+ word >>= 6;
+ }
+ SVndx += 4;
+ }
+
+ // SF4, pg 25, SVID 63. Health for PRNID 25-32
+ p = pageMap.find(63);
+ const MDPNavSubframe& nav63 = p->second;
+
+ // PRN 25 is all by itself
+ word = nav63.subframe[8];
+ word >>= 6;
+ h = word & 0x0000003F;
+ tempHealth[SVndx++] = (short) h;
+
+ // PRN 26-32 (plus a bogus extra)
+ for (n=9;n<=10;++n)
+ {
+ word = nav63.subframe[n];
+ word >>= 6; // Remove parity
+ for (int bndx=4;bndx>=1;--bndx)
+ {
+ h = word & 0x0000003F;
+ int pndx = SVndx+bndx;
+ tempHealth[pndx] = (short) h;
+ word >>= 6;
+ }
+ SVndx += 4;
+ }
+
+ //debug
+ //for (n=1;n<=gpstk::MAX_PRN;++n)
+ //{
+ // cout << n << ":" << tempHealth[n] << ", ";
+ // if (n%6==0) cout << endl;
+ //}
+
+ // Now perform the checks
+ bool tripwire = false;
+ for (n=1;n<=gpstk::MAX_PRN;++n)
+ {
+ if (tempHealth[n]!=DEAD_HEALTH && pageMap.find(n)==pageMap.end())
+ {
+ //cout << "Health = " << tempHealth[n] << " for PRNID " << n << " and no page found. " << endl;
+ tripwire = true;
+ }
+ }
+ if (tripwire) return(false);
+ return(true);
+ }
+
+ short UniqueAlmStore::fullWeekFrom8Bit( const short full, const short eightBit )
+ {
+ short curr8bitWeek = full & 0x00FF;
+ short diff = curr8bitWeek - eightBit;
+ short retArg = eightBit;
+ short upperBits = full & 0xFF00;
+ if (diff>HALF_8BITS) upperBits -= 0x0100;
+ else if (diff<-HALF_8BITS) upperBits += 0x0100;
+ retArg = upperBits | eightBit;
+ return(retArg);
+ }
+
+ bool UniqueAlmStore::isToaPage( const short SVID )
+ {
+ if (SVID>=1 && SVID<=38) return(true);
+ if (SVID==51) return(true);
+ return(false);
+ }
+
+ long UniqueAlmStore::getToa( const MDPNavSubframe& nav )
+ {
+ uint32_t word;
+ long retToa = -1;
+ short SVID = nav.getSVID();
+ if (SVID>=1 && SVID<=38)
+ {
+ word = nav.subframe[4];
+ word &= 0x3FFFFFFF;
+ word >>= 22;
+ retToa = (long) word;
+ }
+ else if (SVID==51)
+ {
+ word = nav.subframe[3];
+ word &= 0x003FC000;
+ word >>= 14;
+ retToa = (long) word;
+ }
+ return(retToa);
+ }
+
+ bool UniqueAlmStore::readyToWrite() const
+ {
+ if (state==COMPLETE && !written) return(true);
+ return(false);
+ }
+
+ void UniqueAlmStore::write(gpstk::FICStream& out)
+ {
+ // Cycle through complete almanac
+ // For each page, convert to 162, output 162,
+ // convert to 62, output 62
+ // NOTE: This would be a BAD IDEA for a real-time
+ // implementation. In such a system, the converts
+ // would be better spaced out as the pages are collected;
+ for (pmCI p1=pageMap.begin();p1!=pageMap.end();++p1)
+ {
+ const MDPNavSubframe& nav = p1->second;
+ FICData162 new162( nav.prn,
+ nav.getSVID(),
+ nav.time.GPSfullweek(),
+ ToaTime.GPSfullweek(),
+ nav.subframe);
+ FICData62 new62( new162);
+ out << new162;
+ out << new62;
+ }
+
+ // Set the flag so we don't keep writing the same data
+ // over and over.
+ written = true;
+ }
+
+
+} // namespace
diff --git a/dev/apps/MDPtools/UniqueAlmStore.hpp b/dev/apps/MDPtools/UniqueAlmStore.hpp
new file mode 100644
index 0000000..d8c296e
--- /dev/null
+++ b/dev/apps/MDPtools/UniqueAlmStore.hpp
@@ -0,0 +1,93 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file UniqueAlmStore.hpp
+ *
+ * Almanac uniqueness has always be a challenge. Here's the working definition
+ * for this module:
+ * 1. Collected within a single 12.5 min cycle
+ * 2. Collected from the same PRN
+ * 3. SF5,Pg25 - complete cycle - SF4,Pg1 all must have the same Toa
+ * 4. SVID available for each PRN for which almanac health is other than
+ * "6 ones" (see IS-GPS-200, 20.3.????)
+ */
+
+#ifndef GPSTK_UNIQUEALMSTORE_HPP
+#define GPSTK_UNIQUEALMSTORE_HPP
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+#include "FICStream.hpp"
+#include "DayTime.hpp"
+#include "EngAlmanac.hpp"
+
+ // Project
+#include "miscdefs.hpp"
+#include "MDPNavSubframe.hpp"
+
+namespace gpstk
+{
+ // The int in the following map is the SVID
+ // The MDPNavSubframe is the corresponding almanac page
+ typedef std::map <short,gpstk::MDPNavSubframe> PageMap;
+ typedef PageMap::iterator pmI;
+ typedef PageMap::const_iterator pmCI;
+
+ class UniqueAlmStore
+ {
+ public:
+ /// Default constructor
+ UniqueAlmStore( gpstk::NavIndex ni, gpstk::NavCode nc );
+
+ /// Destructor
+ virtual ~UniqueAlmStore( ) {}
+
+ pmCI begin() const;
+ pmCI end() const;
+ void newSubframe( gpstk::MDPNavSubframe sf );
+ bool readyToWrite() const;
+ void write(gpstk::FICStream& out);
+
+ protected:
+ bool completeSetOfPages() const;
+ short fullWeekFrom8Bit( const short full, const short eightBit );
+ bool isToaPage( const short SVID );
+ long getToa( const MDPNavSubframe& nav );
+
+ int state; /// Current state of the collection process
+ /// See table of static const below.
+ bool written; /// Has this almanac been written out since last collection?
+ long numPagesExamined;
+
+ int prn; /// < The SV's PRN
+ CarrierCode carrier; /// < This almanac's carrier frequency code
+ RangeCode range; /// < This alamanc's range code
+ NavCode navCode; /// < This almanac's nav code
+
+ short SVIDOrderNdx;
+
+ long startingSOW;
+ long candidateToa;
+ gpstk::DayTime ToaTime; // Not valid until state==COMPLETE | WRITTEN
+ PageMap pageMap;
+
+ // Possible values for member state
+ static const int WAITING = 0;
+ static const int START_ON_NEXT_FRAME = 3;
+ static const int COLLECTING = 1;
+ static const int COMPLETE = 2;
+
+ // Other useful "magic numbers"
+ static const long ALMANAC_PERIOD = 750; // 12.5 minutes in seconds
+ static const long SF4_OFFSET = 24;
+ static const short HALF_8BITS = 128;
+ static const short DEAD_HEALTH = 0x3F;
+
+ }; // class UniqueAlmStore
+} // namespace
+
+#endif
diff --git a/dev/apps/MDPtools/mdp2fic.cpp b/dev/apps/MDPtools/mdp2fic.cpp
new file mode 100644
index 0000000..f73947b
--- /dev/null
+++ b/dev/apps/MDPtools/mdp2fic.cpp
@@ -0,0 +1,450 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Converts an MDP stream into FIC nav file */
+
+#include "StringUtils.hpp"
+#include "LoopedFramework.hpp"
+
+#include "FICStream.hpp"
+#include "FICHeader.hpp"
+#include "FICData.hpp"
+
+#include "MDPStream.hpp"
+#include "MDPNavSubframe.hpp"
+#include "MDPObsEpoch.hpp"
+#include "FICData109.hpp"
+#include "FICData9.hpp"
+#include "BELogEntry.hpp"
+#include "UniqueAlmStore.hpp"
+#include "miscdefs.hpp"
+
+#include "FormatConversionFunctions.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+class MDP2FIC : public gpstk::LoopedFramework
+{
+public:
+ MDP2FIC(const std::string& applName)
+ throw()
+ : LoopedFramework(applName, "Converts an MDP stream to FIC."),
+ navFileOpt('n', "nav", "Filename to which FIC nav data will be written.", true),
+ mdpFileOpt('i', "mdp-input", "Filename to read MDP data from. The filename of '-' means to use stdin.", true),
+ logFileOpt('l', "log", "Filename for (optional) output log file",false)
+ {
+ navFileOpt.setMaxCount(1);
+ mdpFileOpt.setMaxCount(1);
+ }
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ if (!LoopedFramework::initialize(argc,argv)) return false;
+
+ if (mdpFileOpt.getCount())
+ if (mdpFileOpt.getValue()[0] != "-")
+ mdpInput.open(mdpFileOpt.getValue()[0].c_str());
+ else
+ {
+
+ if (debugLevel)
+ cout << "Taking input from stdin." << endl;
+ mdpInput.copyfmt(std::cin);
+ mdpInput.clear(std::cin.rdstate());
+ mdpInput.std::basic_ios<char>::rdbuf(std::cin.rdbuf());
+ }
+
+ if (navFileOpt.getCount())
+ FICOutput.open(navFileOpt.getValue()[0].c_str(), std::ios::out);
+ else
+ FICOutput.clear(std::ios::badbit);
+
+ logActive = false;
+ if (logFileOpt.getCount())
+ {
+ logfp = fopen( logFileOpt.getValue()[0].c_str(), "wt");
+ if (logfp!=0) logActive = true;
+ else cout << "Log file open failed. Continuing" << endl;
+ }
+ obsCount = 0;
+ firstObs = true;
+ numSubframesCollected = 0;
+ paritySuccessCount = 0;
+ parityFailCount = 0;
+ firstNavSF = true;
+ earliestTime = gpstk::DayTime::BEGINNING_OF_TIME;
+ latestTime = gpstk::DayTime::END_OF_TIME;
+
+ debugCount = 0;
+
+ return true;
+ }
+
+protected:
+ virtual void spinUp()
+ {
+ if (!mdpInput)
+ {
+ cout << "Error: could not open input." << endl;
+ exit(-1);
+ }
+
+ mdpInput.exceptions(fstream::failbit);
+
+ if (FICOutput)
+ FICOutput.exceptions(fstream::failbit);
+
+ DayTime timeNow;
+ std::string timeStr = timeNow.printf("%02H:%02M, %02m/%02d/%02y");
+ fich.header = "Generated by mdp2fic on " + timeStr;
+
+ if (FICOutput)
+ FICOutput << fich;
+ }
+
+ virtual void process(MDPNavSubframe& nav)
+ {
+ short sfid = nav.getSFID();
+ // For now, only consider SF 1-3 (ephemeris).
+ // Ignore the almanac
+ if (sfid > 3) processSubframes4and5(nav);
+ else processSubframes1to3(nav);
+ return;
+ }
+
+ void processSubframes4and5(MDPNavSubframe& nav)
+ {
+ // For now, just look at L1 C/A navigation message
+ if (nav.range != rcCA || nav.carrier != ccL1)
+ return;
+
+ // Pull the time from the subframe
+ short week = nav.time.GPSfullweek();
+ long sow = nav.getHOWTime();
+ if ( sow >604800)
+ return;
+
+ DayTime howTime(week, sow);
+
+ NavIndex ni(RangeCarrierPair(nav.range, nav.carrier), nav.prn);
+
+ AlmMap::iterator a;
+ a = almData.find(ni);
+ if (a==almData.end())
+ {
+ UniqueAlmStore init( ni, nav.nav );
+ //pair<NavIndex,gpstk::UniqueAlmStore> = node(ni,init);
+ almData.insert( make_pair(ni,init) );
+ a = almData.find(ni);
+ if (a==almData.end())
+ {
+ cerr << "Almanac map insertion failed in mdp2fic.processSubframes4and5." << endl;
+ exit(1);
+ }
+ cout << "Inserted a new almanac map for PRN " << nav.prn << endl;
+ }
+ UniqueAlmStore& uas = a->second;
+ uas.newSubframe(nav);
+ if (uas.readyToWrite()) uas.write( FICOutput );
+ }
+
+ void processSubframes1to3(MDPNavSubframe& nav)
+ {
+ // For now, just look at L1 C/A navigation message
+ if (nav.range != rcCA || nav.carrier != ccL1)
+ return;
+
+ NavIndex ni(RangeCarrierPair(nav.range, nav.carrier), nav.prn);
+ ephData[ni] = nav;
+
+ long sfa[10];
+ nav.fillArray(sfa);
+ uint32_t uint_sfa[10];
+
+ for( int j = 0; j < 10; j++ )
+ uint_sfa[j] = static_cast<uint32_t>( sfa[j] );
+
+ numSubframesCollected++;
+ if (gpstk::EngNav::checkParity(uint_sfa))
+ {
+ paritySuccessCount++;
+ ephPageStore[ni][nav.getSFID()] = nav;
+ EngEphemeris engEph;
+ if (makeEngEphemeris(engEph, ephPageStore[ni]))
+ {
+ currentPRN = engEph.getPRNID(); // debug
+ if (firstNavSF)
+ {
+ earliestTime = engEph.getTransmitTime();
+ firstNavSF = false;
+ }
+ latestTime = engEph.getTransmitTime();
+ processEphemeris( engEph, ephPageStore[ni] );
+ }
+ }
+ else parityFailCount++;
+ } // end of process(MDPNavSubframe)
+
+ virtual void process()
+ {
+ MDPHeader header;
+ MDPNavSubframe nav;
+ MDPObsEpoch obs;
+
+ // Ought to be able to catch EOF here....
+ try
+ {
+ mdpInput >> header;
+ switch (header.id)
+ {
+ case MDPNavSubframe::myId :
+ mdpInput >> nav;
+ process(nav);
+ break;
+
+ case MDPObsEpoch::myId :
+ mdpInput >> obs;
+ obsCount++;
+ if (debugLevel && (obsCount % 1000)==0) cout << "obsCount: " << obsCount << endl;
+ break;
+ }
+ }
+ catch (gpstk::Exception &exc)
+ {
+ cout << "Caught a GPSTk Exception in process()." << endl;
+ cout << exc << endl;
+ timeToDie = true;
+ return;
+ }
+ catch (std::exception &exc)
+ {
+ cout << "Trapped an exception in process()." << endl;
+ timeToDie = true;
+ return;
+ }
+ catch (...)
+ {
+ cout << "I don't know HOW we got here, but we caught an unexpcted exception." << endl;
+ timeToDie = true;
+ return;
+ }
+ timeToDie = !mdpInput;
+ }
+
+ virtual void shutDown()
+ {
+ cout << "Entering shutDown()." << endl;
+ writeLogFile( );
+ }
+
+ void writeLogFile( )
+ {
+ typedef PrnBELogMap::const_iterator ciPRN;
+ if (logActive)
+ {
+ std::string timestring = "%02m/%02d/%02y %03j %02H:%02M:%02S, GPS Week %F, SOW %6.0g";
+ fprintf(logfp,"Output log from mdp2fic.\n");
+ fprintf(logfp,"Earliest Transmit Time: %s\n",earliestTime.printf(timestring).c_str());
+ fprintf(logfp,"Latest Transmit Time : %s\n",latestTime.printf(timestring).c_str());
+ fprintf(logfp,"Statistics on parity checks\n");
+ fprintf(logfp,"Total number of subframes processed: %7d\n",numSubframesCollected);
+ fprintf(logfp,"Number of successful parity checks : %7d\n",paritySuccessCount);
+ fprintf(logfp,"Number of failed parity chekcs : %7d\n",parityFailCount);
+ double perCentFail = (parityFailCount *100.0) / numSubframesCollected;
+ fprintf(logfp,"Percent of subframes failing parity: %7.2lf\n",perCentFail);
+
+ ciPRN pp;
+ for (pp=prnBEmap.begin();pp!=prnBEmap.end();++pp)
+ {
+ int prnID = pp->first;
+ const BELogMap& blm = pp->second;
+ int numEntries = blm.size();
+ typedef BELogMap::const_iterator ciBLM;
+ fprintf(logfp,"\nSummary of Broadcast Ephemerides for PRN %02d\n",prnID);
+ fprintf(logfp,"%d unique ephemerides found.\n",numEntries);
+ fprintf(logfp,"%s\n",BELogEntry::header.c_str());
+
+ // NOTE: The table is stored in the wrong order for output.
+ // I had to use the Toe in the key for uniqueness, however,
+ // I want the ending table ordered by earliest HOW. HOW is
+ // in the object, so now that we have a unique list, it can
+ // be used to re-order a new map
+ std::map<double,BELogEntry> reorder;
+ for (ciBLM bp=blm.begin();bp!=blm.end();++bp)
+ {
+ const BELogEntry& ble = bp->second;
+ double HOW = ble.getHOW().GPSsow();
+ pair<double,BELogEntry> node(HOW,ble);
+ reorder.insert(node);
+ }
+ typedef std::map<double,BELogEntry>::const_iterator rei;
+ for (rei rp=reorder.begin();rp!=reorder.end();++rp)
+ {
+ const BELogEntry& bler = rp->second;
+ fprintf(logfp,"%s\n", bler.getStr().c_str() );
+ }
+ }
+ fclose(logfp);
+ }
+ }
+
+ void processEphemeris( gpstk::EngEphemeris engEph,
+ gpstk::EphemerisPages ephPages )
+ {
+
+ // Construct a BELogEntry and see if it already exists in the
+ // map for the PRN. If it does, we already stored this one,
+ // move on. If not, convert the information to Block 109 and
+ // Block 9 and write it out.
+ BELogEntry curBELog( engEph );
+ unsigned long key = curBELog.getKey();
+ pair<long,BELogEntry> qnode(key,curBELog);
+
+ bool needToOutput = false;
+ PrnBELogMap::iterator pmap = prnBEmap.find( engEph.getPRNID() );
+
+ // May need to add this PRN to the map.
+ if (pmap==prnBEmap.end())
+ {
+ pair<long,BELogEntry> qnode(key,curBELog);
+ BELogMap blm;
+ blm.insert(qnode);
+ pair<int,BELogMap> pnode( (int) engEph.getPRNID(), blm);
+ prnBEmap.insert( pnode );
+ needToOutput = true;
+ }
+ else
+ {
+ BELogMap& blmr = pmap->second;
+ BELogMap::iterator iBLM = blmr.find( key );
+ if (iBLM==blmr.end())
+ {
+ pair<long,BELogEntry> qnode(key,curBELog);
+ blmr.insert(qnode);
+ needToOutput = true;
+ }
+ else
+ {
+ BELogEntry& ble = iBLM->second;
+ ble.increment();
+ }
+ }
+
+ if (needToOutput)
+ {
+ EphemerisPages::const_iterator MDPsf[4];
+ MDPsf[1] = ephPages.find(1);
+ MDPsf[2] = ephPages.find(2);
+ MDPsf[3] = ephPages.find(3);
+ FICData109 new109( engEph.getPRNID(),
+ MDPsf[1]->second.subframe,
+ MDPsf[2]->second.subframe,
+ MDPsf[3]->second.subframe );
+ FICData9 new9( new109, engEph );
+ FICOutput << new109;
+ FICOutput << new9;
+ }
+ }
+
+private:
+ gpstk::FICHeader fich;
+ MDPStream mdpInput;
+ FICStream FICOutput;
+ MDPEpoch epoch;
+
+ long obsCount;
+
+ // Defs and maps related to ephemeris handling
+ //typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> RangeCarrierPair;
+ //typedef std::pair<RangeCarrierPair, short> NavIndex;
+ typedef std::map<NavIndex, gpstk::MDPNavSubframe> NavMap;
+ NavMap ephData;
+ std::map<NavIndex, gpstk::EphemerisPages> ephPageStore;
+ std::map<NavIndex, gpstk::EngEphemeris> ephStore;
+
+ // Ordered list of BELogEntries
+ typedef std::map<long,BELogEntry> BELogMap;
+
+ // For each PRN, there is a map pointing to the BE logs for that SV
+ typedef std::map<int, BELogMap> PrnBELogMap;
+ PrnBELogMap prnBEmap;
+
+ // Def and maps related to almanac handling
+ typedef std::map<NavIndex, gpstk::UniqueAlmStore> AlmMap;
+ AlmMap almData;
+
+ // Output file
+ FILE *logfp;
+ bool logActive;
+
+ //debug
+ int currentPRN;
+ int debugCount;
+
+ long numSubframesCollected;
+ long paritySuccessCount;
+ long parityFailCount;
+ bool firstNavSF;
+ gpstk::DayTime earliestTime;
+ gpstk::DayTime latestTime;
+
+ bool firstObs;
+ gpstk::DayTime prevTime;
+ gpstk::CommandOptionWithAnyArg mdpFileOpt, navFileOpt, logFileOpt;
+};
+
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ MDP2FIC crap(argv[0]);
+ if (!crap.initialize(argc, argv))
+ exit(0);
+
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/MDPtools/mdp2rinex.cpp b/dev/apps/MDPtools/mdp2rinex.cpp
new file mode 100644
index 0000000..7caba26
--- /dev/null
+++ b/dev/apps/MDPtools/mdp2rinex.cpp
@@ -0,0 +1,355 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Converts an MDP stream into RINEX obs/nav files */
+
+#include "StringUtils.hpp"
+#include "LoopedFramework.hpp"
+
+#include "RinexObsStream.hpp"
+#include "RinexObsData.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+
+#include "MDPStream.hpp"
+#include "MDPNavSubframe.hpp"
+#include "MDPObsEpoch.hpp"
+
+#include "RinexConverters.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+class MDP2Rinex : public gpstk::LoopedFramework
+{
+public:
+ MDP2Rinex(const std::string& applName)
+ throw()
+ : LoopedFramework(applName, "Converts an MDP stream to RINEX."),
+ obsFileOpt('o', "obs", "Filename to write RINEX obs data to. The filename of '-' means to use stdout.", true),
+ navFileOpt('n', "nav", "Filename to write RINEX nav data to."),
+ mdpFileOpt('i', "mdp-input", "Filename to read MDP data from. The filename of '-' means to use stdin.", true),
+ c2Opt('c', "l2c", "Enable output of L2C data in C2"),
+ antPosOpt('p',"pos", "Antenna position to write into obs file header. Format as string: \"X Y Z\"."),
+ thinningOpt('t', "thinning", "A thinning factor for the data, specified in seconds between points. Default: none.")
+ {
+ navFileOpt.setMaxCount(1);
+ obsFileOpt.setMaxCount(1);
+ mdpFileOpt.setMaxCount(1);
+ antPosOpt.setMaxCount(1);
+ } //MDP2Rinex::MDP2Rinex()
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ if (!LoopedFramework::initialize(argc,argv)) return false;
+
+ if (mdpFileOpt.getCount())
+ if (mdpFileOpt.getValue()[0] != "-")
+ mdpInput.open(mdpFileOpt.getValue()[0].c_str());
+ else
+ {
+ if (debugLevel)
+ cout << "Taking input from stdin." << endl;
+ mdpInput.copyfmt(std::cin);
+ mdpInput.clear(std::cin.rdstate());
+ mdpInput.basic_ios<char>::rdbuf(std::cin.rdbuf());
+ }
+
+
+ if (obsFileOpt.getCount())
+ if (obsFileOpt.getValue()[0] != "-")
+ rinexObsOutput.open(obsFileOpt.getValue()[0].c_str(), std::ios::out);
+ else
+ {
+ if (debugLevel)
+ cout << "Sending output to stdout." << endl;
+ rinexObsOutput.copyfmt(std::cout);
+ rinexObsOutput.clear(std::cout.rdstate());
+ rinexObsOutput.basic_ios<char>::rdbuf(std::cout.rdbuf());
+ }
+
+ if (navFileOpt.getCount())
+ rinexNavOutput.open(navFileOpt.getValue()[0].c_str(), std::ios::out);
+ else
+ rinexNavOutput.clear(std::ios::badbit);
+
+ if (thinningOpt.getCount())
+ {
+ thin = true;
+ thinning = gpstk::StringUtils::asInt(thinningOpt.getValue()[0]);
+ if (debugLevel)
+ cout << "Thinning data modulo " << thinning << " seconds." << endl;
+ }
+ else
+ thin = false;
+
+ firstObs = true;;
+ firstEph = true;
+
+ MDPHeader::debugLevel = debugLevel;
+
+ return true;
+ } // MDP2Rinex::initialize()
+
+protected:
+ virtual void spinUp()
+ {
+ if (!mdpInput)
+ {
+ cout << "Error: could not open input." << endl;
+ exit(-1);
+ }
+
+ mdpInput.exceptions(fstream::failbit);
+ rinexObsOutput.exceptions(fstream::failbit);
+ if (rinexNavOutput)
+ rinexNavOutput.exceptions(fstream::failbit);
+
+ roh.valid |= gpstk::RinexObsHeader::allValid21;
+ roh.fileType = "Observation";
+ roh.fileProgram = "mdp2rinex";
+ roh.markerName = "Unknown";
+ roh.observer = "Unknown";
+ roh.agency = "Unknown";
+ roh.antennaOffset = gpstk::Triple(0,0,0);
+ //roh.antennaPosition = gpstk::Triple(0,0,0);
+ roh.wavelengthFactor[0] = 1;
+ roh.wavelengthFactor[1] = 1;
+ roh.recType = "Unknown MDP";
+ roh.recVers = "Unknown";
+ roh.recNo = "1";
+ roh.antType = "Unknown";
+ roh.antNo = "1";
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::C1);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::P1);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::L1);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::D1);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::S1);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::P2);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::L2);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::D2);
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::S2);
+ if (antPosOpt.getCount())
+ {
+ double x, y, z;
+ sscanf(antPosOpt.getValue().front().c_str(),"%lf %lf %lf", &x, &y, &z);
+ antPos = gpstk::Triple(x,y,z);
+ }
+ else
+ antPos = gpstk::Triple(0,0,0);
+
+ roh.antennaPosition = antPos;
+
+ if (c2Opt.getCount())
+ roh.obsTypeList.push_back(gpstk::RinexObsHeader::C2);
+
+ rnh.valid = gpstk::RinexNavHeader::allValid21;
+ rnh.fileType = "Navigation";
+ rnh.fileProgram = "mdp2rinex";
+ rnh.fileAgency = "Unknown";
+ rnh.version = 2.1;
+ } // MDP2Rinex::spinUp()
+
+
+ virtual void process(MDPNavSubframe& nav)
+ {
+ if (!rinexNavOutput)
+ return;
+
+ if (firstEph)
+ {
+ rinexNavOutput << rnh;
+ cout << "Got first nav SF" << endl;
+ }
+
+ firstEph=false;
+
+ nav.cookSubframe();
+ if (!nav.checkParity())
+ return;
+
+ short sfid = nav.getSFID();
+ if (sfid > 3)
+ return;
+
+ short week = nav.time.GPSfullweek();
+ long sow = nav.getHOWTime();
+ if ( sow >604800)
+ return;
+
+ DayTime howTime(week, sow);
+
+ if (nav.range != rcCA || nav.carrier != ccL1)
+ return;
+
+ NavIndex ni(RangeCarrierPair(nav.range, nav.carrier), nav.prn);
+ ephData[ni] = nav;
+
+ ephPageStore[ni][sfid] = nav;
+ EngEphemeris engEph;
+ if (makeEngEphemeris(engEph, ephPageStore[ni]))
+ {
+ RinexNavData rnd(engEph);
+ rinexNavOutput << rnd;
+ ephPageStore[ni].clear();
+ }
+ } // MDP2Rinex::process(MDPNavSubframe)
+
+
+ virtual void process(MDPObsEpoch& obs)
+ {
+ if (!rinexObsOutput)
+ return;
+
+ const DayTime& t=epoch.begin()->second.time;
+
+ if (!firstObs && t<prevTime)
+ {
+ if (debugLevel)
+ cout << "Out of order data at " << t << endl;
+ return;
+ }
+
+ if (epoch.size() > 0 && t != obs.time)
+ {
+ if (!thin || (static_cast<int>(t.DOYsecond()) % thinning) == 0)
+ {
+ if (firstObs)
+ {
+ roh.firstObs = t;
+ rinexObsOutput << roh;
+ firstObs=false;
+ if (debugLevel)
+ cout << "Got first obs" << endl;
+ }
+
+ RinexObsData rod;
+ rod = makeRinexObsData(epoch);
+ rinexObsOutput << rod;
+ }
+ epoch.clear();
+ prevTime = t;
+ }
+ epoch[obs.prn] = obs;
+ } // MDP2Rinex::process(MDPObsEpoch)
+
+
+ virtual void process()
+ {
+ MDPHeader header;
+ MDPNavSubframe nav;
+ MDPObsEpoch obs;
+
+ try
+ {
+ mdpInput >> header;
+ switch (header.id)
+ {
+ case MDPNavSubframe::myId :
+ mdpInput >> nav;
+ if (nav.rdstate())
+ cout << "Error decoding nav " << nav.rdstate() << endl;
+ else
+ process(nav);
+ break;
+
+ case MDPObsEpoch::myId :
+ mdpInput >> obs;
+ if (obs.rdstate())
+ cout << "Error decoding obs " << obs.rdstate() << endl;
+ else
+ process(obs);
+ break;
+ }
+ }
+ catch (EndOfFile& e)
+ {
+ if (debugLevel)
+ cout << e << endl;
+ timeToDie = true;
+ }
+ timeToDie |= !mdpInput;
+ } // MDP2Rinex::process()
+
+ virtual void shutDown()
+ {}
+
+private:
+ gpstk::RinexObsHeader roh;
+ gpstk::RinexNavHeader rnh;
+ MDPStream mdpInput;
+ RinexObsStream rinexObsOutput;
+ RinexNavStream rinexNavOutput;
+ MDPEpoch epoch;
+
+ typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> RangeCarrierPair;
+ typedef std::pair<RangeCarrierPair, short> NavIndex;
+ typedef std::map<NavIndex, gpstk::MDPNavSubframe> NavMap;
+ NavMap ephData;
+ std::map<NavIndex, gpstk::EphemerisPages> ephPageStore;
+ std::map<NavIndex, gpstk::EngEphemeris> ephStore;
+
+ bool thin;
+ int thinning;
+ bool firstObs, firstEph;
+ gpstk::DayTime prevTime;
+ gpstk::Triple antPos;
+ gpstk::CommandOptionWithAnyArg mdpFileOpt, navFileOpt, obsFileOpt;
+ gpstk::CommandOptionWithAnyArg thinningOpt, antPosOpt, c2Opt;
+};
+
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ MDP2Rinex crap(argv[0]);
+
+ if (!crap.initialize(argc, argv))
+ exit(0);
+
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/MDPtools/mdpscreen/Jamfile b/dev/apps/MDPtools/mdpscreen/Jamfile
new file mode 100644
index 0000000..3afbf0a
--- /dev/null
+++ b/dev/apps/MDPtools/mdpscreen/Jamfile
@@ -0,0 +1,11 @@
+# $Id$
+
+SubDir TOP apps MDPtools mdpscreen ;
+
+LINKLIBS += -lncurses ;
+
+SEARCH_SOURCE += $(TOP)/apps/MDPtools ;
+
+GPSLinkLibraries mdpscreen : gpstk rxio ;
+
+GPSMain mdpscreen : mdpscreen.cpp MDPProcessors.cpp ScreenProc.cpp ;
diff --git a/dev/apps/MDPtools/mdpscreen/ScreenProc.cpp b/dev/apps/MDPtools/mdpscreen/ScreenProc.cpp
new file mode 100644
index 0000000..8c0fbfe
--- /dev/null
+++ b/dev/apps/MDPtools/mdpscreen/ScreenProc.cpp
@@ -0,0 +1,436 @@
+#pragma ident "$Id$"
+
+
+#include "Geodetic.hpp"
+#include "GPSGeoid.hpp"
+#include "StringUtils.hpp"
+
+#include "ScreenProc.hpp"
+#include "RinexConverters.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+extern "C" void wench(int sig);
+
+/* 1 2 3 4 5 6 7
+ 01234567890123456789012345678901234567890123456789012345678901234567890123456789
+ |--------------------------------------------------------------------------------
+ 0|hostname:port 02:43:12 7/7/06 GPS
+ 1|
+ 2|PVT: 02:43:23.5 Offset: 234,456.1 ns Drift: 13.235 ns/d
+ 3|Lon: -179.122345 Lat: 30.12345 N Ht: 230.0 m Rate: 1.0 s
+ 4| Vx: 0.0 cm/s Vy: 0.0 cm/s Vz: 0.00 cm/s FOM: 12.2
+ 5| Trx: 28 C ExtFreq: Unlocked StartTime: 12:34 6/2/06 SSW: 311
+ 6|Tant: 39 C Selftest: 0x000001 TestTime: 02:30 7/7/06
+ 7|
+ 8|Obs Rate: 1.5 s
+ 9| C1 P1 C2 P2 lock res
+10|Ch Prn Az El SNR SNR SNR SNR count iodc h (m)
+11|-- --- --- --- ---- ------ ---- ------ ------ ---- - -----
+12| 1 8 133 22+ 41.2 33.8 Y 38.1 39.2 Y 432000 2ba 0
+13| 2 31
+14| 3 23
+15| 4 27
+16| 5 28
+17| 6 3
+18| 7 11
+19| 8 13
+20| 9 7
+21|10 19
+22|11 --
+23|12 --
+ |-------------------------------------------------------------------------------
+*/
+int pvtRow=2;
+int tCol=5, offCol=26, driftCol=47;
+int lonCol=5, latCol=23, altCol=40, prateCol=59;
+
+int stsRow=5;
+int trxCol=6, freqCol=22, stsTimeCol=44, stsSSWCol=65;
+
+int chanRow=11;
+int prnCol=3, azCol=8, elCol=13, c1snrCol=18, p1snrCol=24, c2snrCol=32;
+int p2snrCol=38, resCol=63, lockCol=46, iodcCol=54, healthCol=60, orateCol=10;
+
+bool MDPScreenProcessor::gotWench;
+
+MDPScreenProcessor::MDPScreenProcessor(gpstk::MDPStream& in, std::ofstream& out):
+ MDPProcessor(in, out),
+ updateRate(0.5), obsRate(-1), pvtRate(-1)
+{
+
+ // First set up curses
+ signal(SIGWINCH, wench);
+ win = initscr();
+ cbreak();
+ nodelay(win,true);
+ noecho();
+ nonl();
+ intrflush(win, true);
+ keypad(win, true);
+ prev_curs = ::curs_set(0); // we want an invisible cursor.
+ gotWench=false;
+
+ host=in.filename;
+
+ drawBase();
+
+ obsOut = true;
+ pvtOut = true;
+ navOut = true;
+ tstOut = true;
+}
+
+
+MDPScreenProcessor::~MDPScreenProcessor()
+{
+ curs_set(prev_curs);
+ endwin();
+}
+
+
+//-----------------------------------------------------------------------------
+void MDPScreenProcessor::process(const MDPObsEpoch& oe)
+{
+ int chan=oe.channel;
+
+ if (chan>12)
+ return;
+
+ // Figure out whether the SV is rising or setting
+ if ((currentObs[chan]).elevation > oe.elevation)
+ elDir[chan]=-1;
+ else if ((currentObs[chan]).elevation < oe.elevation)
+ elDir[chan]=+1;
+ else
+ elDir[chan]=0;
+
+ // Determine the obs output rate
+ double dt = oe.time - currentObs[chan].time;
+ if (currentObs[chan].prn > 0 && std::abs(dt-obsRate) > 1e-3)
+ obsRate=dt;
+
+ currentObs[chan] = oe;
+
+ // Set channels inactive if we haven't seen data from them recently
+ if (obsRate>0)
+ for (int i=1; i<=12; i++)
+ if (currentObs[i].prn > 0 && oe.time - currentObs[i].time > obsRate*2)
+ currentObs[i].prn = 0;
+
+ drawChan(chan);
+ redraw();
+}
+
+//-----------------------------------------------------------------------------
+void MDPScreenProcessor::process(const MDPPVTSolution& pvt)
+{
+ if (host=="")
+ {
+ host=in.filename;
+ drawBase();
+ }
+
+ double dt = pvt.time - currentPvt.time;
+ if (std::abs(dt-pvtRate) > 1e-3)
+ pvtRate=dt;
+ currentPvt = pvt;
+ drawPVT();
+ redraw();
+}
+
+
+void MDPScreenProcessor::process(const gpstk::MDPNavSubframe& sf)
+{
+ short sfid = sf.getSFID();
+
+ NavIndex ni(RangeCarrierPair(sf.range, sf.carrier), sf.prn);
+ prev[ni] = curr[ni];
+ curr[ni] = sf;
+
+ long sfa[10];
+ sf.fillArray(sfa);
+ if (gpstk::EngNav::subframeParity(sfa))
+ {
+ if (sfid > 3)
+ return;
+
+ EphemerisPages& ephPages = ephPageStore[ni];
+ ephPages[sfid] = sf;
+ EngEphemeris engEph;
+
+ if (makeEngEphemeris(engEph, ephPages))
+ ephStore[ni] = engEph;
+ }
+ else
+ {
+ parErrCnt[ni]++;
+ }
+}
+
+void MDPScreenProcessor::process(const gpstk::MDPSelftestStatus& sts)
+{
+ currentSts = sts;
+ drawSTS();
+ redraw();
+}
+
+// Yes, one would think that sun would have a working curses but NO!!
+// They require a non-const string to be passed to mvwaddstr()
+// grrr.
+void writeAt(WINDOW* win, int row, int col, const string s)
+{
+ char *str = const_cast<char*>(s.c_str());
+ mvwaddstr(win, row, col, str);
+}
+
+void MDPScreenProcessor::redraw()
+{
+ gpstk::DayTime now;
+ if (now - lastUpdateTime > updateRate)
+ {
+ string time=currentPvt.time.printf(" %02H:%02M:%02S %2m/%d/%02y");
+ writeAt(win, 0, COLS-time.length()-5, time.c_str());
+ lastUpdateTime = now;
+ int ch = getch();
+ if (tolower(ch)=='q')
+ {
+ die=true;
+ writeAt(win, 0, 0, "Exiting program.");
+ // Use this to indicate that it is time to quit
+ in.setstate(ios_base::failbit);
+ }
+
+ /* should consider doing endwin(), initscr() and redrawing the window */
+ if (gotWench || tolower(ch)=='r')
+ {
+ char buff[30];
+ sprintf(buff, "%2d x %2d (wench)", LINES, COLS);
+ writeAt(win, 0, COLS/2-15, buff);
+ gotWench=false;
+ clearok(win,true);
+ drawBase();
+ }
+ }
+ wrefresh(win);
+}
+
+void MDPScreenProcessor::drawSTS()
+{
+ string firstTime=currentSts.firstPVTTime.printf("%02H:%02M %m/%d/%2Y ");
+ writeAt(win, stsRow, stsTimeCol, firstTime.c_str());
+
+ string testTime=currentSts.selfTestTime.printf("%02H:%02M %m/%d/%2Y ");
+ writeAt(win, stsRow+1, stsTimeCol, testTime.c_str());
+
+ if (currentSts.extFreqStatus)
+ writeAt(win, stsRow, freqCol, "Locked ");
+ else
+ writeAt(win, stsRow, freqCol, "UnLocked");
+
+ string sts=leftJustify(int2x(currentSts.status), 8);
+ writeAt(win, stsRow+1, freqCol, sts.c_str());
+
+ string trx=leftJustify(asString(currentSts.receiverTemp, 0), 2) + "C";
+ writeAt(win, stsRow, trxCol, trx.c_str());
+
+ string tant=leftJustify(asString(currentSts.antennaTemp, 0), 2) + "C";
+ writeAt(win, stsRow+1, trxCol, tant.c_str());
+
+ string ssw=leftJustify(int2x(currentSts.saasmStatusWord), 3);
+ writeAt(win, stsRow, stsSSWCol, ssw.c_str());
+}
+
+void MDPScreenProcessor::drawPVT()
+{
+ string s=rightJustify(asString(pvtRate,1), 3) + " s";
+ writeAt(win, pvtRow+1 , prateCol, s.c_str());
+
+ string time=currentPvt.time.printf("%02H:%02M:%04.1f");
+ writeAt(win, pvtRow, tCol, time.c_str());
+ string off=rightJustify(asString(currentPvt.dtime*1e9, 1), 9) + " ns";
+ writeAt(win, pvtRow, offCol, off.c_str());
+
+ gpstk::GPSGeoid gm;
+ gpstk::Geodetic llh(currentPvt.x, &gm);
+
+ string lat, lon, alt;
+ if (llh[0] > 0)
+ lat=leftJustify(asString(llh[0],5)+" N", 12);
+ else
+ lat=leftJustify(asString(std::abs(llh[0]),5)+" S", 12);
+ if (llh[1] < 180)
+ lon=leftJustify(asString(llh[1],5)+" E", 12);
+ else
+ lon=leftJustify(asString(360.0-llh[1],5)+" W", 12);
+ alt=leftJustify(asString(llh[2],3) + " m", 12);
+ writeAt(win, pvtRow+1, latCol, (const char *)lat.c_str());
+ writeAt(win, pvtRow+1, lonCol, lon.c_str());
+ writeAt(win, pvtRow+1, altCol, alt.c_str());
+
+ string drift=rightJustify(asString(currentPvt.ddtime*1e9*86400, 2), 9) + " ns/d";
+ writeAt(win, pvtRow, driftCol, drift.c_str());
+ string vx, vy, vz;
+ vx=leftJustify(asString(currentPvt.v[0] * 100, 2)+" cm/s", 11);
+ vy=leftJustify(asString(currentPvt.v[1] * 100, 2)+" cm/s", 11);
+ vz=leftJustify(asString(currentPvt.v[2] * 100, 2)+" cm/s", 11);
+ writeAt(win, pvtRow+2, lonCol, vx.c_str());
+ writeAt(win, pvtRow+2, latCol, vy.c_str());
+ writeAt(win, pvtRow+2, altCol, vz.c_str());
+
+ string fom = leftJustify(asString((int)currentPvt.fom), 3);
+ writeAt(win, pvtRow+2, prateCol, fom.c_str());
+ fom = leftJustify(asString((int)currentPvt.pvtMode), 2);
+ writeAt(win, pvtRow+2, prateCol+4, fom.c_str());
+ fom = leftJustify(asString((int)currentPvt.corrections), 2);
+ writeAt(win, pvtRow+2, prateCol+6, fom.c_str());
+}
+
+void MDPScreenProcessor::drawChan(int chan)
+{
+ if (chan>12 || chan < 1)
+ return;
+
+ for (int i=1; i<=12; i++)
+ if (currentObs[i].prn == 0)
+ {
+ writeAt(win, chanRow+i, prnCol, " --");
+ wclrtoeol(win);
+ }
+
+ int row = chanRow + chan;
+ const MDPObsEpoch& obs=currentObs[chan];
+ if (obs.prn == 0)
+ return;
+
+ string orate = leftJustify(asString(obsRate,1)+" s", 7);
+ writeAt(win, chanRow-3 , orateCol, orate.c_str());
+
+ string prn=rightJustify(asString((int)obs.prn), 3);
+ string az=rightJustify(asString(obs.azimuth, 0), 3);
+ string el=rightJustify(asString(obs.elevation, 0), 2);
+ string health = rightJustify(int2x(obs.status), 2);
+
+ if (elDir[chan] > 0)
+ el=el+"+";
+ else if (elDir[chan] < 0)
+ el=el+"-";
+
+ writeAt(win, row, prnCol, prn.c_str());
+ writeAt(win, row, azCol, az.c_str());
+ writeAt(win, row, elCol, el.c_str());
+ writeAt(win, row, healthCol, health.c_str());
+
+ // RangeCode: rcUnknown, rcCA, rcPcode, rcYcode, rcCodeless, rcL2CM, rcL2CL, rcMcode1, rcMcode2
+ // NavCode: ncUnknown, ncICD_200_2, ncICD_700_M, ncICD_705_L5, ncICD_200_4
+ if (obs.haveObservation(ccL1, rcCA))
+ {
+ MDPObsEpoch::Observation o = obs.getObservation(ccL1, rcCA);
+ string snr = rightJustify(asString(o.snr, 1), 4);
+ string lockCount = rightJustify(asString(o.lockCount), 6);
+ writeAt(win, row, c1snrCol, snr.c_str());
+ writeAt(win, row, lockCol, lockCount.c_str());
+ }
+
+ if (obs.haveObservation(ccL2,rcCM))
+ {
+ MDPObsEpoch::Observation o = obs.getObservation(ccL2, rcCM);
+ string snr = rightJustify(asString(o.snr, 1), 4);
+ string lockCount = rightJustify(asString(o.lockCount), 6);
+ writeAt(win, row, c2snrCol, snr.c_str());
+ }
+
+ if (obs.haveObservation(ccL1, rcYcode))
+ {
+ MDPObsEpoch::Observation o=obs.getObservation(ccL1, rcYcode);
+ string snr = rightJustify(asString(o.snr, 1), 4) + " Y";
+ writeAt(win, row, p1snrCol, snr.c_str());
+ }
+ else if (obs.haveObservation(ccL1, rcPcode))
+ {
+ MDPObsEpoch::Observation o=obs.getObservation(ccL1, rcPcode);
+ string snr = rightJustify(asString(o.snr, 1), 4) + " P";
+ writeAt(win, row, p1snrCol, snr.c_str());
+ }
+ else if (obs.haveObservation(ccL1, rcCodeless))
+ {
+ MDPObsEpoch::Observation o=obs.getObservation(ccL1, rcCodeless);
+ string snr = rightJustify(asString(o.snr, 1), 4) + " Z";
+ writeAt(win, row, p1snrCol, snr.c_str());
+ }
+
+ if (obs.haveObservation(ccL2, rcYcode))
+ {
+ MDPObsEpoch::Observation o=obs.getObservation(ccL2, rcYcode);
+ string snr = rightJustify(asString(o.snr, 1), 4) + " Y";
+ writeAt(win, row, p2snrCol, snr.c_str());
+ }
+ else if (obs.haveObservation(ccL2, rcPcode))
+ {
+ MDPObsEpoch::Observation o=obs.getObservation(ccL2, rcPcode);
+ string snr = rightJustify(asString(o.snr, 1), 4) + " P";
+ writeAt(win, row, p2snrCol, snr.c_str());
+ }
+ else if (obs.haveObservation(ccL2, rcCodeless))
+ {
+ MDPObsEpoch::Observation o=obs.getObservation(ccL2, rcCodeless);
+ string snr = rightJustify(asString(o.snr, 1), 4) + " Z";
+ writeAt(win, row, p2snrCol, snr.c_str());
+ }
+
+ EphStore::const_iterator es_itr;
+ for (es_itr=ephStore.begin(); es_itr != ephStore.end(); es_itr++)
+ if (es_itr->first.second == obs.prn)
+ break;
+
+ if (es_itr == ephStore.end())
+ return;
+
+ const NavIndex& ni = es_itr->first;
+ const gpstk::EngEphemeris& eph=es_itr->second;
+ const gpstk::RangeCode rc = ni.first.first;
+ const gpstk::CarrierCode cc = ni.first.second;
+
+ string iodc=rightJustify(int2x(eph.getIODC()), 4);
+ writeAt(win, row, iodcCol, iodc);
+}
+
+void MDPScreenProcessor::drawBase()
+{
+ wclear(win);
+ char buff[80];
+ sprintf(buff, "%2d x %2d", LINES, COLS);
+ writeAt(win, 0, COLS/2-4, buff);
+
+ writeAt(win, 0, 0, host.c_str());
+ writeAt(win, 0, COLS-3, "GPS");
+
+ writeAt(win, pvtRow, 0, "PVT: Offset:");
+ writeAt(win, pvtRow+1, 0, "Lon: Lat: Ht: Rate:");
+ writeAt(win, pvtRow, 0, "PVT: Offset: Drift:");
+ writeAt(win, pvtRow+2, 0, " Vx: Vy: Vz: FOM:");
+
+ writeAt(win, stsRow, 0, " Trx: ExtFreq: StartTime: SSW:");
+ writeAt(win, stsRow+1, 0, "Tant: Selftest: TestTime: ");
+
+ writeAt(win, chanRow-3, 0, "Obs Rate:");
+ writeAt(win, chanRow-2, 0, " C1 P1 C2 P2 lock ");
+ writeAt(win, chanRow-1, 0, "Ch Prn Az El SNR SNR SNR SNR count iodc h");
+ writeAt(win, chanRow, 0, "-- --- --- -- ---- ------ ---- ------ ------ ---- --");
+ for (int i=1; i<=12; i++)
+ {
+ string str=rightJustify(asString(i),2);
+ writeAt(win, chanRow+i, 0, str.c_str());
+ writeAt(win, chanRow+i, prnCol, " --");
+ wclrtoeol(win);
+ }
+ redraw();
+}
+
+/* should consider doing endwin(), initscr() and redrawing the window */
+void wench(int sig)
+{
+ MDPScreenProcessor::gotWench=true;
+}
diff --git a/dev/apps/MDPtools/mdpscreen/ScreenProc.hpp b/dev/apps/MDPtools/mdpscreen/ScreenProc.hpp
new file mode 100644
index 0000000..90d0d24
--- /dev/null
+++ b/dev/apps/MDPtools/mdpscreen/ScreenProc.hpp
@@ -0,0 +1,75 @@
+#pragma ident "$Id$"
+
+
+#ifndef MDPSCREEN_HPP
+#define MDPSCREEN_HPP
+
+#include "EngEphemeris.hpp"
+
+#include "MDPProcessors.hpp"
+
+#include <signal.h>
+#ifdef LINUX
+#include <bits/signum.h>
+#endif
+
+// This prevents forte from using the macro implementation of many of
+// the curses calls. They tend to interfere with parts of the STL.
+#define NOMACROS
+#include <curses.h>
+#if !defined( __linux__) && !defined(NCURSES_ATTR_T)
+typedef int attr_t;
+#endif
+
+
+class MDPScreenProcessor : public MDPProcessor
+{
+public:
+ MDPScreenProcessor(gpstk::MDPStream& in, std::ofstream& out);
+ ~MDPScreenProcessor();
+
+ virtual void process(const gpstk::MDPObsEpoch& obs);
+ virtual void process(const gpstk::MDPPVTSolution& pvt);
+ virtual void process(const gpstk::MDPNavSubframe& sf);
+ virtual void process(const gpstk::MDPSelftestStatus& sts);
+
+ void redraw();
+
+ void drawChan(int chan=0);
+ void drawPVT();
+ void drawSTS();
+ void drawBase();
+
+ std::string host;
+ float updateRate;
+ double obsRate, pvtRate;
+ WINDOW *win;
+ int prev_curs;
+
+ static bool gotWench;
+
+ int elDir[13];
+ gpstk::MDPObsEpoch currentObs[13];
+ gpstk::MDPPVTSolution currentPvt;
+ gpstk::MDPSelftestStatus currentSts;
+ gpstk::DayTime lastUpdateTime;
+
+ // This is really a triple: prn, RangeCode, CarrierCode
+ typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> RangeCarrierPair;
+ typedef std::pair<RangeCarrierPair, short> NavIndex;
+
+ // This class can keep track of a subframe and where it came from
+ typedef std::map<NavIndex, gpstk::MDPNavSubframe> NavMap;
+
+ NavMap prev, curr;
+
+ typedef std::map<NavIndex, gpstk::EphemerisPages> EphPageStore;
+ EphPageStore ephPageStore;
+
+ typedef std::map<NavIndex, gpstk::EngEphemeris> EphStore;
+ EphStore ephStore;
+
+ std::map<NavIndex, unsigned long> parErrCnt;
+};
+
+#endif
diff --git a/dev/apps/MDPtools/mdpscreen/mdpscreen.cpp b/dev/apps/MDPtools/mdpscreen/mdpscreen.cpp
new file mode 100644
index 0000000..1d99612
--- /dev/null
+++ b/dev/apps/MDPtools/mdpscreen/mdpscreen.cpp
@@ -0,0 +1,115 @@
+#pragma ident "$Id$"
+
+
+//lgpl-license START
+//lgpl-license END
+
+#include "StringUtils.hpp"
+#include "LoopedFramework.hpp"
+#include "CommandOption.hpp"
+
+#include "DeviceStream.hpp"
+#include "TCPStreamBuff.hpp"
+
+#include "MDPProcessors.hpp"
+#include "ScreenProc.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MDPTool : public BasicFramework
+{
+public:
+ MDPTool(const std::string& applName)
+ throw()
+ : BasicFramework(applName, "A curses based near-real-time display of an "
+ " MDP stream."),
+ mdpInputOpt('i', "input", "Where to get the MDP data from. The default "
+ "is to use stdin. If the file name begins with \"tcp:\" "
+ "the remainder is assumed to be a hostname[:port] and the "
+ "source is taken from a tcp socket at this address. If the "
+ "port number is not specified a default of 8910 is used.")
+ {}
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ if (debugLevel)
+ cout << "debugLevel: " << debugLevel << endl
+ << "verboseLevel: " << verboseLevel << endl;
+
+ string fn;
+ if (mdpInputOpt.getCount())
+ fn = mdpInputOpt.getValue()[0];
+ DeviceStream<ifstream> *inputDev = new DeviceStream<ifstream>(fn, ios::in);
+ mdpInput.std::basic_ios<char>::rdbuf(inputDev->std::basic_ios<char>::rdbuf());
+ mdpInput.filename = inputDev->getTarget();
+
+ processor = new MDPScreenProcessor(mdpInput, output);
+
+ processor->debugLevel = debugLevel;
+ processor->verboseLevel = verboseLevel;
+
+ MDPHeader::debugLevel = debugLevel;
+
+ return true;
+ }
+
+protected:
+ virtual void spinUp()
+ {
+ if (!processor)
+ cout << "No processor assigned." << endl, exit(-1);
+ }
+
+ virtual void process()
+ {
+ try
+ {
+ processor->process();
+ }
+ catch (gpstk::Exception &e)
+ {
+ cout << e << endl;
+ }
+ catch (std::exception &e)
+ {
+ cout << e.what() << endl;
+ }
+ }
+
+ virtual void shutDown()
+ {
+ delete processor;
+ }
+
+private:
+ MDPStream mdpInput;
+ ofstream output;
+ TCPStreamBuff rdbuf;
+ CommandOptionWithAnyArg mdpInputOpt;
+
+ MDPProcessor* processor;
+};
+
+
+int main(int argc, char *argv[])
+{
+try
+ {
+ MDPTool crap(argv[0]);
+
+ if (!crap.initialize(argc, argv))
+ exit(0);
+
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/MDPtools/mdptool.cpp b/dev/apps/MDPtools/mdptool.cpp
new file mode 100644
index 0000000..3460c49
--- /dev/null
+++ b/dev/apps/MDPtools/mdptool.cpp
@@ -0,0 +1,267 @@
+#pragma ident "$Id$"
+
+
+/** @file Various utility functions on MDP streams/files */
+
+//lgpl-license START
+//lgpl-license END
+
+#include "StringUtils.hpp"
+#include "LoopedFramework.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+
+#include "DeviceStream.hpp"
+
+#include "MDPProcessors.hpp"
+#include "SummaryProc.hpp"
+#include "TrackProc.hpp"
+#include "NavProc.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MDPTool : public gpstk::BasicFramework
+{
+public:
+ MDPTool(const std::string& applName)
+ throw()
+ : BasicFramework(
+ applName,
+ "Perform various functions on a stream of MDP "
+ "data. In the summary mode, the default is to only "
+ "summarize the obs data above 10 degrees. Increasing "
+ "the verbosity level will also summarize the data below "
+ "10 degrees."),
+ mdpInputOpt(
+ 'i', "input",
+ "Where to get the MDP data from. The default "
+ "is to use stdin. If the file name begins with \"tcp:\" "
+ "the remainder is assumed to be a hostname[:port] and the "
+ "source is taken from a tcp socket at this address. If the "
+ "port number is not specified a default of 8910 is used."),
+ outputOpt(
+ '\0', "output",
+ "Where to send the output. The default is stdout."),
+ styleOpt(
+ 's', "output-style",
+ "What type of output to produce from the "
+ "MDP stream. Valid styles are: brief, verbose, table, track, "
+ "null, mdp, nav, and summary. The default is summary. Some "
+ "modes aren't quite complete. Sorry."),
+ pvtOpt('p', "pvt", "Enable pvt output"),
+ navOpt('n', "nav", "Enable nav output"),
+ tstOpt('t', "test", "Enable selftest output"),
+ obsOpt('o', "obs", "Enable obs output"),
+ hexOpt('x', "hex", "Dump all messages in hex"),
+ badOpt('b', "bad", "Try to process bad messages also."),
+ bugMaskOpt('m', "bug-mask", "What RX bugs to be quite about. "
+ "1 SV count, 2 nav parity/fmt, 4 HOW/hdr time equal."),
+ almOpt(
+ 'a', "almanac",
+ "Build and process almanacs. Only applies to the nav style"),
+ ephOpt(
+ 'e', "ephemeris",
+ "Build and process engineering ephemerides. Only applies to the "
+ "nav style"),
+ minimalAlmOpt(
+ '\0', "min-alm",
+ "This allows a complete almanac to be constructed from fewer than "
+ "50 pages. It is required for receivers the Ashtech Z(Y)12. The "
+ "default is to require all 50 pages."),
+ startTimeOpt(
+ '\0', "start-time", "%4Y/%03j/%02H:%02M:%05.2f",
+ "Ignore data before this time. (%4Y/%03j/%02H:%02M:%05.2f)"),
+ stopTimeOpt(
+ '\0', "stop-time", "%4Y/%03j/%02H:%02M:%05.2f",
+ "Ignore any data after this time"),
+ timeSpanOpt('l', "time-span", "How much data to process, in seconds")
+ {
+ pvtOpt.setMaxCount(1);
+ navOpt.setMaxCount(1);
+ obsOpt.setMaxCount(1);
+ tstOpt.setMaxCount(1);
+ styleOpt.setMaxCount(1);
+ }
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ if (!BasicFramework::initialize(argc,argv)) return false;
+
+ if (debugLevel)
+ cout << "debugLevel: " << debugLevel << endl
+ << "verboseLevel: " << verboseLevel << endl;
+
+ string fn;
+ if (mdpInputOpt.getCount())
+ fn = mdpInputOpt.getValue()[0];
+ inputDev.open(fn, ios::in);
+ if (debugLevel)
+ cout << "Taking input from " << inputDev.getTarget() << endl;
+ mdpInput.std::basic_ios<char>::rdbuf(inputDev.std::basic_ios<char>::rdbuf());
+
+ if (outputOpt.getCount())
+ {
+ output.open(outputOpt.getValue()[0].c_str(), std::ios::out);
+ if (debugLevel)
+ cout << "Sending output to"
+ << outputOpt.getValue()[0]
+ << endl;
+ }
+ else
+ {
+ if (debugLevel)
+ cout << "Sending output to stdout" << endl;
+ output.copyfmt(std::cout);
+ output.clear(std::cout.rdstate());
+ output.std::basic_ios<char>::rdbuf(std::cout.rdbuf());
+ }
+
+ style = "summary";
+ if (styleOpt.getCount())
+ style = styleOpt.getValue()[0];
+
+ if (style == "brief")
+ processor = new MDPBriefProcessor(mdpInput, output);
+ else if (style == "table")
+ processor = new MDPTableProcessor(mdpInput, output);
+ else if (style == "verbose")
+ processor = new MDPVerboseProcessor(mdpInput, output);
+ else if (style == "summary")
+ processor = new MDPSummaryProcessor(mdpInput, output);
+ else if (style == "null")
+ processor = new MDPNullProcessor(mdpInput, output);
+ else if (style == "track")
+ processor = new MDPTrackProcessor(mdpInput, output);
+ else if (style == "nav")
+ processor = new MDPNavProcessor(mdpInput, output);
+ else
+ {
+ cout << "Style " << style << " is not a valid style. (it may just not be implimented yet.)" << endl;
+ return false;
+ }
+
+ if (debugLevel)
+ cout << "Using style: " << style << endl;
+
+ processor->pvtOut |= pvtOpt;
+ processor->obsOut |= obsOpt;
+ processor->navOut |= navOpt;
+ processor->tstOut |= tstOpt;
+ processor->processBad |= badOpt;
+
+ // Some nav specific options
+ if (style == "nav")
+ {
+ processor->navOut = true;
+ processor->obsOut = true; // needed to know elevation/SNR of SVs
+ MDPNavProcessor& np=dynamic_cast<MDPNavProcessor&>(*processor);
+ np.almOut = almOpt;
+ np.ephOut = ephOpt;
+ np.minimalAlm = minimalAlmOpt;
+ }
+
+ // If no outputs are specified, then at least set the obs output
+ if (!processor->pvtOut && !processor->obsOut
+ && !processor->navOut && !processor->tstOut)
+ {
+ if (style == "summary")
+ processor->obsOut = processor->pvtOut = processor->navOut = processor->tstOut = true;
+ else
+ processor->obsOut = true;
+ }
+
+ for (int i=0; i<bugMaskOpt.getCount(); i++)
+ processor->bugMask |= StringUtils::asUnsigned(bugMaskOpt.getValue()[i]);
+
+ if (debugLevel)
+ {
+ string msgList;
+ if (processor->pvtOut) msgList += "pvt ";
+ if (processor->obsOut) msgList += "obs ";
+ if (processor->navOut) msgList += "nav ";
+ if (processor->tstOut) msgList += "tst ";
+ if (msgList.size()==0)
+ msgList = "no ";
+ cout << "Processing " << msgList << "messages." << endl;
+ }
+
+ processor->debugLevel = debugLevel;
+ processor->verboseLevel = verboseLevel;
+
+ MDPHeader::hexDump = hexOpt;
+ MDPHeader::debugLevel = debugLevel;
+
+ if (startTimeOpt.getCount())
+ processor->startTime = startTimeOpt.getTime()[0];
+ if (stopTimeOpt.getCount())
+ processor->stopTime = stopTimeOpt.getTime()[0];
+ if (timeSpanOpt.getCount())
+ processor->timeSpan = StringUtils::asDouble(timeSpanOpt.getValue()[0]);
+
+ return true;
+ }
+
+protected:
+ virtual void spinUp()
+ {
+ if (!processor)
+ cout << "No processor assigned." << endl, exit(-1);
+ }
+
+ virtual void process()
+ {
+ try
+ {
+ processor->process();
+ }
+ catch (gpstk::Exception &e)
+ {
+ cout << e << endl;
+ }
+ catch (std::exception &e)
+ {
+ cout << e.what() << endl;
+ }
+ }
+
+ virtual void shutDown()
+ {
+ delete processor;
+ }
+
+private:
+ DeviceStream<ifstream> inputDev;
+ MDPStream mdpInput;
+ ofstream output;
+ gpstk::CommandOptionWithAnyArg mdpInputOpt, outputOpt;
+
+ gpstk::CommandOptionNoArg pvtOpt, obsOpt, navOpt, tstOpt, hexOpt, badOpt;
+ gpstk::CommandOptionNoArg almOpt, ephOpt, minimalAlmOpt;
+ gpstk::CommandOptionWithAnyArg styleOpt;
+ gpstk::CommandOptionWithNumberArg timeSpanOpt, bugMaskOpt;
+ gpstk::CommandOptionWithTimeArg startTimeOpt, stopTimeOpt;
+
+ string style;
+
+ MDPProcessor* processor;
+};
+
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ MDPTool crap(argv[0]);
+
+ if (!crap.initialize(argc, argv))
+ exit(0);
+
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/MDPtools/tcptest.cpp b/dev/apps/MDPtools/tcptest.cpp
new file mode 100644
index 0000000..adbfd91
--- /dev/null
+++ b/dev/apps/MDPtools/tcptest.cpp
@@ -0,0 +1,86 @@
+#pragma ident "$Id$"
+
+
+#include <iostream>
+#include <string>
+using std::istream;
+using std::cout;
+using std::endl;
+
+#include "TCPStream.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/errno.h>
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ gpstk::SocketAddr client(std::string("localhost"), 4621);
+ gpstk::IPaddress any;
+ gpstk::SocketAddr server(any, 4621);
+ int debugLevel = 0;
+ gpstk::CommandOptionNoArg
+ debugOption('d', "debug", "Enable debug output."),
+ serverOption('s', "server", "Run as server, not client");
+ std::string appDescription("Test program for the TCPStream stuff.");
+ gpstk::CommandOptionParser cop(appDescription);
+ cop.parseOptions(argc, argv);
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ debugLevel = debugOption.getCount();
+
+ gpstk::TCPStream tcpStream;
+
+ if (serverOption.getCount())
+ {
+ cout << "Running as a server on " << server << endl;
+ int listening_socket = ::socket(AF_INET,SOCK_STREAM,0);
+ if (listening_socket < 0)
+ cout << "Couldn't create listening socket"
+ << " (" << strerror(errno) << ")" << endl, exit(-1);
+
+ int value = 1;
+ int rc=0;
+
+ if (::setsockopt(listening_socket, SOL_SOCKET, SO_REUSEADDR,
+ (char*)&value, sizeof(value)))
+ cout << "Couldn't set reuse address"
+ << " (" << strerror(errno) << ")" << endl, exit(-1);
+
+ if (::bind(listening_socket, (sockaddr *)server, sizeof(sockaddr)))
+ cout << "Couldn't bind"
+ << " (" << strerror(errno) << ")" << endl, exit(-1);
+
+ if (::listen(listening_socket, 5))
+ cout << "Couldn't listen"
+ << " (" << strerror(errno) << ")" << endl, exit(-1);
+
+ gpstk::TCPStream link;
+ gpstk::SocketAddr peeraddr = gpstk::SocketAddr(any,1);
+ link.rdbuf()->accept(listening_socket,peeraddr);
+ cout << "Accepted connection from " << peeraddr << endl;
+ link.close();
+ }
+ else
+ {
+ cout << "Running as client, :" << client << endl;
+
+ tcpStream.connect(client);
+ if( !tcpStream.good() )
+ cout << "Connection failed!" << endl, exit(0);
+ }
+ }
+ catch (...)
+ {
+ cout << "Caught one" << endl;
+ }
+}
diff --git a/dev/apps/Makefile.am b/dev/apps/Makefile.am
new file mode 100644
index 0000000..44e3328
--- /dev/null
+++ b/dev/apps/Makefile.am
@@ -0,0 +1,4 @@
+# $Id$
+SUBDIRS = DataAvailability MDPtools Rinextools checktools converters \
+differential difftools filetools geomatics ionosphere mergetools multipath \
+positioning receiver reszilla time visibility
diff --git a/dev/apps/RinexPlot/README b/dev/apps/RinexPlot/README
new file mode 100644
index 0000000..6bf601a
--- /dev/null
+++ b/dev/apps/RinexPlot/README
@@ -0,0 +1,31 @@
+RinexPlot (/apps/RinexPlot)
+
+ This directory contains a Perl script which uses the Perl::Tk module to
+provide a menu-driven GUI that will plot the data in Rinex observation files.
+It makes use of the Rinex tools, found in /apps/Rinextools, by calling them on
+the command line from within Perl.
+
+ RinexPlot will run under Unix, Linux and Windows. For Windows, you must
+have Perl and Perl::Tk installed on your system; the best place to get these
+(free) is at ActiveState:
+
+http://www.activestate.com/Products/ActivePerl/
+
+Be sure to get Perl::Tk. Normally the Tk module will come with ActivePerl;
+you also get a Perl Package Manager which allows you to update your perl,
+or you can do this with CPAN. Under Windows you can use the
+batch file RinexPlot.bat.
+
+ Two examples are included here, using scripts goRP and goRP1 (Unix), or
+goRP.bat and goRP1.bat (Windows).
+
+ Getting started is easy. Run the example scripts (batch files) first. The
+GUI is menu and mouse driven, and you can get some brief instructions from the
+Help/Topics menu item. You can also provide options on the command line; see
+under Help/Topics again, or just look in the example scripts.
+
+ RinexPlot is young; some menu items are yet to be implemented, and it still
+has a few rough edges. I expect to it be improved greatly in the near future.
+
+Brian Tolman
+btolman at arlut.utexas.edu
diff --git a/trunk/apps/RinexPlot/RSW214B.obs b/dev/apps/RinexPlot/RSW214B.obs
similarity index 100%
rename from trunk/apps/RinexPlot/RSW214B.obs
rename to dev/apps/RinexPlot/RSW214B.obs
diff --git a/trunk/apps/RinexPlot/RinexPlot.bat b/dev/apps/RinexPlot/RinexPlot.bat
similarity index 100%
rename from trunk/apps/RinexPlot/RinexPlot.bat
rename to dev/apps/RinexPlot/RinexPlot.bat
diff --git a/dev/apps/RinexPlot/RinexPlot.pl b/dev/apps/RinexPlot/RinexPlot.pl
new file mode 100644
index 0000000..188f853
--- /dev/null
+++ b/dev/apps/RinexPlot/RinexPlot.pl
@@ -0,0 +1,3487 @@
+#!/usr/bin/perl
+#
+# RinexPlot - plot Rinex data
+#
+# $Id$
+#
+#============================================================================
+#
+# This file is part of GPSTk, the GPS Toolkit.
+#
+# The GPSTk is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# any later version.
+#
+# The GPSTk is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GPSTk; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Copyright 2004, The University of Texas at Austin
+#
+#============================================================================
+#-------------------------------------------------------------------------------------
+# TD
+# (option?) don't plot points with value 0
+# it doesn't plot a symbol for the first point.
+# need to figure out the height and width of a character in pixels. **
+# you can open a file in a re-entrant sub .. see the Perl books .. use for --load
+# make it safe to run two copies at once .. use unique name for $CFG{'datafile'}
+# Right axis
+# Time limits
+# Gnuplot output
+# postscript output?
+# RAIM -- how to plot?
+# Dataset/Configure ? ... all ResCor options
+
+#-------------------------------------------------------------------------------------
+use strict;
+use Tk;
+use Tk::Dialog;
+use Tk::DialogBox;
+use Tk::ROText;
+use Tk::BrowseEntry;
+use File::stat;
+use File::Basename;
+use IO::Handle;
+
+#-------------------------------------------------------------------------------------
+# Version number
+my $VERSION = "1.2 (10/1/2004)";
+# Message box description of this program
+my $ABOUT_TEXT = "\nRinexPlot is a GUI for utility programs developed with\n"
+ . "the GPS Toolkit (GPSTk) that will read, manipulate and plot\n"
+ . "data in a Rinex file.\n";
+my $AUTHOR_TEXT = "RinexPlot is written in Perl/Tk by Dr. Brian W. Tolman.\n";
+
+#-------------------------------------------------------------------------------------
+# configuration - most things are stored in a hash - see Defaults()
+my (%CFG,%OPT); # CFG has one value per key, OPT can have many values per key
+my ($key,$val);
+my %Options; # valid options for command line -- see Defaults()
+my %Grow; # valid options that can have many values (OPT) -- see Defaults()
+
+my $SLASH="/";
+if ($^O eq "MSWin32") {
+ $SLASH="\\";
+}
+my $menutear = 1;
+
+#-------------------------------------------------------------------------------------
+# drawing area TD add to CFG
+my $BCOLOR = 'white'; # background color for canvas
+my $FCOLOR = 'blue'; # foreground color for canvas
+my $MCOLOR = 'black'; # color of mouse rectangles
+my $firstcanvas = 0; # mark very first resizing of canvas
+
+# cursors -- see
+# Win32 : \perl\site\lib\Tk\X11\cursorfont.h
+# Linux : /usr/X11R6/include/X11/cursorfont.h
+my ($cursor,$waitcursor,$crosshair)=('crosshair','watch','crosshair');
+
+#my @items = ();
+
+#-------------------------------------------------------------------------------------
+# Widgets
+my $w_top; # top level window
+my $w_canvas; # canvas
+my $statusbar; # status bar
+my $menubar; # menu bar
+
+#-------------------------------------------------------------------------------------
+# Plot configuration
+my ($Xrate, $Yrate);
+my $FirstAutoscale = 1; # flag showing need to call autoscale()
+my $LimitsSet = 0; # flag indicating LoadConfig has set limits
+my $UsingDefaults = 1; # flag indicating all labels are defaults
+my $LogOpen = 0; # flag saying when LOG is open
+my $MainUp = 0; # flag saying main window is up
+my $ScaleDefined = 0; # flag saying scales have been defined (Rates())
+my ($begW,$begS)=(0,0); # used in DataTime
+my ($endW,$endS);
+
+#-------------------------------------------------------------------------------------
+# Axes
+# Call NiceScale(datamin,datamax,$ScaleN,totalpixels);
+# Labels are ($ScaleMin + ($i-1) * $ScaleStep) foreach $i (1..$ScaleN).
+# Multiply labels by 10**ScaleExp to make them all (minimum size) integers.
+# There are $ScalePPL pixels per label.
+my ($ScaleMin,$ScaleStep,$ScaleExp,$ScaleN,$ScalePPL)=(0,0,0,0,0);
+my @NiceUnits=(0,12,15,20,25,30,40,50,60,80,100,120,150);
+my ($YScaleMin,$YScaleStep,$YScaleExp)=(0,0,0);
+my ($XScaleMin,$XScaleStep,$XScaleExp)=(0,0,0);
+# if plot limits (XMin,etc) are fixed by user, set this =1, else (autoscale) set =0
+my $ScaleFixed=0;
+# tics
+my ($XTicLen,$YTicLen)=(5,5);
+# use these as input to NewScale
+my ($XMin,$XMax,$YMin,$YMax);
+# save previous values for 'unzoom'
+my ($OldXMin,$OldXMax,$OldYMin,$OldYMax)=('','','','');
+
+#-------------------------------------------------------------------------------------
+# Curves to plot (ncurv of them)
+# each curve defined by Sat, OT, column in file, color, symbol type
+my $Reconfigure; # flag that says call ConfigureCurves()
+my $ncurv; # number of curves defined
+my @curvSV = (); # satellite for this curve
+my @curvOT = (); # obs type (from @obslist)
+my @curvON = (); # switch to turn off curve, on is non-zero
+my @curvCol = (); # column in $CFG{'datafile'} where data is found
+my @curvLines = (); # plot with lines or not (0)
+my @curvSymbs = (); # plot with symbols
+my @symbols = ('none','cross','plus','diamond','square','circle','del','delta');
+my @curvColor = (); # color to plot
+my @colors = (
+ '#0000ff', # bright blue
+ '#ff0000', # bright red
+ '#00ff00', # bright green
+ '#ff00ff', # magenta
+ '#00ffff', # cyan
+ '#80ff00', # electric green
+ '#ff0080', # pink
+ '#8000ff', # purple
+ '#ffff00', # yellow
+ '#ff8000', # orange
+ '#00ff80', # sea green
+ '#0080ff', # sky blue
+ '#000080', # dark blue
+ '#800000', # dark red almost brown
+ '#008000', # dark green
+);
+#'#000000', # black
+#'#ffffff', # white
+#'#a0b7ce', # "MSWin blue"
+
+#-------------------------------------------------------------------------------------
+# Mouse rectangle
+my $MOUSE_RECT; # the rectangle id
+my $MAKE_RECT=0; # state, initially off
+my ($RECT_X0,$RECT_X1,$RECT_Y0,$RECT_Y1); # rectangle limits
+my $CLICK = 0; # is the mouse button down?
+
+#-------------------------------------------------------------------------------------
+# Data file(s)
+#my $AutoView=1; # flag that says view RinSum output when created
+my ($filename,$ConfigFile,$ResCorfilename);
+my ($RinexInSummary,$RinexRCSummary);
+my @filelist=();
+my ($numobs, $numsvs); # number of obs types and SVs in Rinex file
+my ($nobssel, $nsvssel); # number of obs types and SVs (above) that are selected
+my @obslist=(); # list of obs types in Rinex header
+my @obsdesc=(); # descriptions of obs types from Rinex header dump
+my @obsselect=(); # list of switches (0,1) parallel to obslist
+my @svlist=(); # list of SVs in Rinex file
+my @svselect=(); # list of switches (0,1) parallel to svlist
+my @svbegin=(); # list of SV begin times (W,SOW)
+my @svend=(); # list of SV end times (W,SOW)
+
+#-------------------------------------------------------------------------------------
+# Computation using ResCor (create file $ResCorfilename)
+# list of extended obs types that ResCor can compute, with desc., units, dependence
+my (@ExtOT, @ExtDesc, @ExtDep, @ExtSelect); # these kept parallel
+# hash: ExtUnit{$ExtOT[$i]} = units of that OT
+my %ExtUnit=('L1','cycles','L2','cycles','C1','meters','P1','meters','P2','meters',
+ 'D1','Hz','D2','Hz','S1','dB-Hz','S2','dB-Hz');
+# flags giving dependence of the Ext obs types on standard obs types
+my ($DepL1,$DepL2,$DepC1,$DepP1,$DepP2,$DepEP,$DepPS) = (1,2,4,8,16,32,64);
+my $ETdb; # dialog box that selects extended obs types ... create only once
+# for use as input to ResCor -- receiver label, position
+my ($RxLabel,$RxX,$RxY,$RxZ,$RxComment) = ('','','','','');
+# types that ResCor will debias: SP VP L3 L4 L5 MP M1 M2 M3 M4 M5 XR XI X1 X2
+# (XR should not be debiased by ResCor)
+# TD add config option to turn this on/off
+my %MayDebias=('SP',1,'VP',1,'L3',1,'L4',1,'L5',1,
+ 'MP',1,'M1',1,'M2',1,'M3',1,'M4',1,'M5',1,
+ 'XR',0,'XI',1,'X1',1,'X2',1);
+#
+my $MyPrgmDir='unknown';
+if ($^O eq 'MSWin32') {
+ $MyPrgmDir="C:\\Code\\GPSLIB\\Working\\dev\\apps\\Rinextools";
+}
+elsif ($^O eq 'linux') {
+ $MyPrgmDir="/home/btolman/mybin";
+}
+#-------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------
+# This lists and defines(!) all valid options for CFG and OPT. This string is written
+# in the Help/Topics window, and is printed to the screen when '--help' is the only
+# cmdline option.
+# It is also parsed by Defaults() into the default CFG and OPT settings, with rules:
+# 0. one key/value pair per line.
+# 1. the key follows '--' and does not contain whitespace.
+# 2. the value is in parentheses at the end : ($val)\n$
+# 3. the option is repeatable (cmdline only) if the string '(can repeat)' appears.
+# 4. everything after 'Example:' is ignored.
+# 5. ignore any line that starts (col 1) with '#'.
+my $CmdText =
+"# RinexPlot, part of the GPSTk : Plot Rinex data\n" .
+"# Usage: perl RinexPlot.pl [--option <arg>]\n" .
+"# Input options (put on command line or in config file) :\n" .
+"# Rinex tools directory:\n" .
+" --prgmdir <dir> directory of GPSTK programs (". $MyPrgmDir . ")\n" .
+"# input:\n" .
+" --load <file> load options file, but don't nest (can repeat) ()\n" .
+" --Rinex <file> load and summarize this Rinex observation file ()\n" .
+" --nav <file> load this Rinex navigation file ()\n" .
+"# output:\n" .
+" --log <file> send all diagnostic output to <file> (SCREEN)\n" .
+" --datafile <file> store data to be plotted in flat <file> (RP.dat)\n" .
+"# create new obs types:\n" .
+" --AO <ExOT> add extended obs types (can repeat) ()\n" .
+" --create [on|off] run ResCor to create any new (AO) obs types (on)\n" .
+" --debias <limit> limit that triggers bias reset in ResCor (100)\n" .
+"# plot datasets\n" .
+" --sat <sat> select satellite for plot (can repeat) ()\n" .
+" --obs <OT> select obs type for plot (can repeat) ()\n" .
+" --refresh [on|off] draw the screen (only if --sat and --obs) (on)\n" .
+" --begin <wk,sow> begin GPS time -- do not read data before this time (0,0)\n" .
+" --end <wk,sow> end GPS time -- do not read data after this time (9999,0)\n" .
+"# plot configuration:\n" .
+" --width <pixels> width of plot surface, L-axis to R-axis (640)\n" .
+" --height <pixels> height of plot surface, B-axis to T-axis (480)\n" .
+" --lines [on|off] draw a line when drawing curves (on)\n" .
+" --points [on|off] draw points when drawing curves (off)\n" .
+" --XMin <x> set minimum value on X axis, omit to autoscale ()\n" .
+" --XMax <x> set maximum value on X axis, omit to autoscale ()\n" .
+" --YMin <y> set minimum value on Y axis, omit to autoscale ()\n" .
+" --YMax <y> set maximum value on Y axis, omit to autoscale ()\n" .
+" --Week <w> week number associated with XMin/Max (for Blabel) ()\n" .
+" --Bmargin <pixels> distance between graph and window bottom (30)\n" .
+" --Tmargin <pixels> distance between graph and window top (30)\n" .
+" --Lmargin <pixels> distance between graph and window left (40)\n" .
+" --Rmargin <pixels> distance between graph and window right (30)\n" .
+" --BticN <n> number of tics on bottom axis (5)\n" .
+" --TticN <n> number of tics on top axis (5)\n" .
+" --LticN <n> number of tics on left axis (5)\n" .
+" --RticN <n> number of tics on right axis (5)\n" .
+"# plot labels:\n" .
+" --Blabel <string> label below the bottom axis (GPS Seconds of Week)\n" .
+" --Tlabel <string> label above the top axis, i.e title (Title)\n" .
+" --Llabel <string> label above the left axis ()\n" .
+" --Rlabel <string> label above the right axis ()\n" .
+"# switches:\n" .
+" --verbose [on|off] output more information to log file (off)\n" .
+" --keepdata [on|off] on exit, do not delete the data file RP.dat (off)\n" .
+" --autoview [on|off] automatically display data file summary (on)\n" .
+" --Cforce [on|off] force C1 to replace P1 (off)\n" .
+" --Callow [on|off] allow C1 to replace a missing P1 (on)\n" .
+"# other:\n" .
+" --zoomX <frac> zoom commands expand(contract) by fraction (0.1)\n" .
+" --help [on|off] show the help window (off)\n" .
+"#\n" .
+" Example:\natom>./RinexPlot --Rinex ../gdms/data/04032/alic0320.04o --autoview off" .
+"\n --AO L4 --AO M5 --sat G08 --sat G30 --obs L4 --obs M5 --refresh\n";
+
+#-------------------------------------------------------------------------------------
+# Temp data
+my (@opt, $file, $dummy, $i, $j, $ans, $msg);
+my ($cmd,$buffer,$len);
+
+#-------------------------------------------------------------------------------------
+# computation of scales and coordinate transformations
+#-------------------------------------------------------------------------------------
+# compute a new 'nice' scale, using $XMin,$XMax,$YMin,$YMax.
+# call with first arg 'fixed' if plot limits are fixed, else 'auto' to "autoscale"
+# second arg is a label printed on LOG and Status
+sub NewScale {
+ my ($flag,$str)=@_;
+
+ ($OldXMin, $OldXMax, $OldYMin, $OldYMax) =
+ ($CFG{'XMin'},$CFG{'XMax'},$CFG{'YMin'},$CFG{'YMax'});
+
+ if($YMin > $YMax) { $ans=$YMax; $YMax=$YMin; $YMin=$ans; }
+ if($XMin > $XMax) { $ans=$XMax; $XMax=$XMin; $XMin=$ans; }
+
+ my $tics = $CFG{'BticN'};
+ if($flag eq 'fixed') { $tics = $CFG{'BticN'} + 2; }
+ NiceScale($XMin,$XMax,$tics,$CFG{'width'});
+ if($flag eq 'fixed') { $XScaleMin = $ScaleMin+$ScaleStep; }
+ if($flag eq 'auto') { $XScaleMin = $ScaleMin; }
+ $XScaleStep = $ScaleStep;
+ $XScaleExp = $ScaleExp;
+
+ $tics = $CFG{'LticN'};
+ if($flag eq 'fixed') { $tics = $CFG{'LticN'} + 2; }
+ NiceScale($YMin,$YMax,$tics,$CFG{'height'});
+ if($flag eq 'fixed') { $YScaleMin = $ScaleMin+$ScaleStep; }
+ if($flag eq 'auto') { $YScaleMin = $ScaleMin; }
+ $YScaleStep = $ScaleStep;
+ $YScaleExp = $ScaleExp;
+
+ if($flag eq 'auto') {
+ # let NiceScale determine the plot limits
+ $YMin = $YScaleMin;
+ $YMax = $YScaleMin+($CFG{'LticN'}-1)*$YScaleStep;
+ $XMin = $XScaleMin;
+ $XMax = $XScaleMin+($CFG{'BticN'}-1)*$XScaleStep;
+ }
+
+ ($CFG{'XMin'},$CFG{'XMax'},$CFG{'YMin'},$CFG{'YMax'})=($XMin,$XMax,$YMin,$YMax);
+ Rates(); # Rates() can change XMin, etc.
+
+ print LOG "$str: new limits are $YMin, $YMax, $XMin, $XMax\n";
+ Status("$str: new limits are X: "
+ . sprintf("%10.3f",$XMin) . ", "
+ . sprintf("%10.3f",$XMax) . ", Y: "
+ . sprintf("%.3f",$YMin) . ", "
+ . sprintf("%.3f",$YMax) . ".");
+
+ if($flag eq 'fixed') { $ScaleFixed=1; } else { $ScaleFixed=0; }
+ $FirstAutoscale = 0;
+}
+
+# compute the 'rates' needed for coordinate transformations
+sub Rates {
+ # check for division by 0
+ if($CFG{'XMin'} == $CFG{'XMax'}) {
+ if($CFG{'XMax'} == 0) { $CFG{'XMax'} = 1; }
+ else { $CFG{'XMax'} += 1.5 * $CFG{'XMax'}; }
+ }
+ if($CFG{'YMin'} == $CFG{'YMax'}) {
+ if($CFG{'YMax'} == 0) { $CFG{'YMax'} = 1; }
+ else { $CFG{'YMax'} += 1.5 * $CFG{'YMax'}; }
+ }
+ $Xrate = $CFG{'width'}/($CFG{'XMax'}-$CFG{'XMin'});
+ $Yrate = -$CFG{'height'}/($CFG{'YMax'}-$CFG{'YMin'});
+
+ $ScaleDefined = 1;
+}
+
+# convert data X units, ($CFG{'XMin'} <= $rawx <= $CFG{'XMax'} )
+# into screen coordinates (0 <= $x <= $CFG{'width'})
+sub Xdata2scr {
+ my $rawx = shift;
+ my $x = $CFG{'Lmargin'} + ($rawx-$CFG{'XMin'}) * $Xrate;
+ return int($x);
+}
+
+# convert data Y units, ($CFG{'YMin'} <= $rawy <= $CFG{'YMax'})
+# into screen coordinates ($CFG{'height'} <= $y <= 0 )
+sub Ydata2scr {
+ my $rawy = shift;
+ my $y = $CFG{'Tmargin'} + $CFG{'height'} + ($rawy-$CFG{'YMin'}) * $Yrate;
+ return int($y);
+}
+
+# convert screen coordinates (0 <= $x <= $CFG{'width'})
+# into data units, ($CFG{'XMin'} <= $rawx <= $CFG{'XMax'} )
+sub scr2Xdata {
+ my $x = shift;
+ my $rawx = $CFG{'XMin'} + ($x - $CFG{'Lmargin'})/$Xrate;
+ return $rawx;
+}
+
+# convert screen coordinates ($CFG{'height'} <= $y <= 0 )
+# into data units, ($CFG{'YMin'} <= $rawy <= $CFG{'YMax'})
+sub scr2Ydata {
+ my $y = shift;
+ my $rawy = ($y - $CFG{'Tmargin'} - $CFG{'height'})/$Yrate + $CFG{'YMin'};
+ return $rawy;
+}
+
+#-------------------------------------------------------------------------------------
+# menu callbacks
+#-------------------------------------------------------------------------------------
+sub FileLoad {
+ $filename = $w_top->getOpenFile(-title => 'Load a configuration file',
+ -initialfile => basename($ConfigFile),
+ #-initialdir => $dir,
+ #-defaultextension => $ext,
+ );
+ if($filename eq '') { return; }
+
+ $LimitsSet = 0; # LoadConfig will notice if limits are set
+ $ans = LoadConfig($filename);
+ if($ans ne 'fail') {
+ ProcessConfig();
+ }
+}
+
+sub FileSave {
+ print LOG "Save the configuration file $ConfigFile\n";
+ $ans = SaveConfig($ConfigFile);
+ if($ans eq 'fail') {
+ print LOG "Could not save configuration file $ConfigFile\n";
+ }
+}
+
+sub FileSaAs {
+ my $Savefilename = $w_top->getSaveFile(-title => 'Save configuration in a file');
+ $ans = SaveConfig($Savefilename);
+ if($ans eq 'fail') {
+ print LOG "Could not save configuration file $Savefilename\n";
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub FileExit {
+ Status("Cleaning up...");
+ print LOG "Clean up and exit.\n";
+ if($CFG{'keepdata'} ne 'on') {
+ $dummy = `rm -f $CFG{'datafile'}`;
+ if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ }
+ if($CFG{'log'} ne '') { close LOG; }
+ exit;
+}
+
+#-------------------------------------------------------------------------------------
+sub FileInpu {
+ Status("Get the name of a Rinex observation file...");
+ $filename = $w_top->getOpenFile(-title => 'Choose a Rinex obs file');
+ if($filename eq '') { return; }
+ DataInputProcess($filename);
+}
+
+#-------------------------------------------------------------------------------------
+sub FileSumm {
+ $file = $RinexInSummary;
+ if($ResCorfilename ne '') { $file=$RinexRCSummary; }
+ if($file eq '') {
+ PopNotice("Error: no file","No input Rinex observation file has been chosen\n"
+ . "Go to File/Rinex Obs");
+ #$ans = $w_top->messageBox(-title => 'Error: no file',
+ #-message => "No input observation file has been chosen\n"
+ #. "Go to File/Rinex Obs",
+ #-type => 'OK', -icon => 'info');
+ return;
+ }
+ Status("Press the Close button to return to the main window...");
+ #print LOG "View data from $file\n";
+ $buffer = '';
+ my $len=0;
+ if (not open(F, "<$file")) {
+ $w_top->Dialog(
+ -title => 'File not found',
+ -text => "Could not open the file $file",
+ -bitmap => 'error',
+ )->Show;
+ return;
+ }
+ $len = read(F, $buffer, 100000);
+ #print LOG "Read $len bytes\n";
+ my @list = split("\n", $buffer);
+ my $width=0; foreach $i (@list) { if(length($i)>$width) { $width=length($i); } }
+ my $TWdb = $w_top->DialogBox(
+ -title => "View RinSum output ($len bytes): $file",
+ -buttons => ['Close'],
+ -popover => $w_top,
+ -overanchor => 'w',
+ -popanchor => 'w',
+ );
+ my $text_win = $TWdb->Scrolled('Text',
+ -setgrid => 'true',
+ -scrollbars => 'e',
+ -height => '40', #lines
+ -width => $width, #characters
+ )->pack(-expand => 'yes', -fill => 'both');
+ $text_win->insert('end', $buffer); # add text at end of (empty) widget
+ $text_win->see('end'); # scroll to end of text
+ $TWdb->Show();
+ close F;
+ Status("...");
+}
+
+#-------------------------------------------------------------------------------------
+sub FileSele {
+ Status('');
+
+ # figure out the width of the box
+ my $len = length($CFG{'Rinex'});
+ if($len < length($CFG{'nav'})) { $len = length($CFG{'nav'}); }
+ if($RxLabel ne '' && $len < 60) { $len = 60; }
+ if($ResCorfilename ne '' && $len < length($ResCorfilename)) {
+ $len = length($ResCorfilename);
+ }
+ if($len < 20) { $len = 20; }
+
+ # are there extended obs types defined?
+ $dummy = 0;
+ $msg = '';
+ foreach $i (0..$#ExtOT) {
+ if($ExtSelect[$i] != 0) {
+ $dummy++;
+ $msg = $msg . $ExtOT[$i] . " ";
+ }
+ }
+
+ my $FSdb = $w_top->DialogBox(
+ -title => "Current Selections",
+ -buttons => ['Ok','Clear'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $FSdb->add('Label',-text => "Rinex Observation File:")->pack(-anchor => 'w');
+ my $f1=$FSdb->Frame(-borderwidth => 2, -relief => 'groove',
+ )->pack(-anchor => 'w');
+ $FSdb->add('Label',-text => "Rinex Navigation File:")->pack(-anchor => 'w');
+ my $f2=$FSdb->Frame(-borderwidth => 2, -relief => 'groove',
+ )->pack(-anchor => 'w');
+ my ($f3,$f4,$f5,$f6);
+ if($RxLabel ne '') {
+ $FSdb->add('Label',-text => "Receiver Position:")->pack(-anchor => 'w');
+ $f3=$FSdb->Frame(-borderwidth => 2, -relief => 'groove',
+ )->pack(-anchor => 'w');
+ }
+ if($ResCorfilename ne '') {
+ $FSdb->add('Label',-text => "Computed Observations File")->pack(-anchor => 'w');
+ $f4=$FSdb->Frame(-borderwidth => 2, -relief => 'groove',
+ )->pack(-anchor => 'w');
+ }
+ if($dummy > 0) {
+ $FSdb->add('Label',-text => "Computed Observation Types")->pack(-anchor => 'w');
+ $f5=$FSdb->Frame(-borderwidth => 2, -relief => 'groove',
+ )->pack(-anchor => 'w');
+ }
+ $FSdb->add('Label',-text => "Current configuration file")->pack(-anchor => 'w');
+ $f6=$FSdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+
+
+ my $e1=$f1->Entry(
+ -textvariable => \$CFG{'Rinex'}, -width => $len, -justify => 'left',
+ )->pack(-side => 'top', -anchor => 'w');
+ $f1->Label(-text => 'Summary file:')->pack(-side => 'left');
+ $f1->Label(-text => $RinexInSummary, -justify => 'left')->pack(-side => 'left');
+ my $e2=$f2->Entry(
+ -textvariable => \$CFG{'nav'}, -width => $len)->pack(-side => 'left');
+ if($RxLabel ne '') {
+ my $f31=$f3->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+ $f31->Label(-text => "Label : ")->pack(-side => 'left');
+ $f31->Entry(-textvariable => \$RxLabel, -width => 5)->pack(-side => 'left');
+ my $f32=$f3->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+ $f32->Label(-text => "X : ")->pack(-side => 'left');
+ $f32->Entry(-textvariable => \$RxX, -width => 15)->pack(-side => 'left');
+ $f32->Label(-text => " Y : ")->pack(-side => 'left');
+ $f32->Entry(-textvariable => \$RxY, -width => 15)->pack(-side => 'left');
+ $f32->Label(-text => " Z : ")->pack(-side => 'left');
+ $f32->Entry(-textvariable => \$RxZ, -width => 15)->pack(-side => 'left');
+ my $f33=$f3->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+ $f33->Label(-text => "Comment: ")->pack(-side => 'left');
+ $f33->Entry(-textvariable => \$RxComment, -width => 50)->pack(-side => 'left');
+ }
+ if($ResCorfilename ne '') {
+ $f4->Label(-text => $ResCorfilename, -justify => 'left',
+ )->pack(-side => 'top', -anchor => 'w');
+ $f4->Label(-text => 'Summary file:'
+ )->pack(-side => 'left', -anchor => 'w');
+ $f4->Label(-text => $RinexRCSummary, -justify => 'left',
+ )->pack(-side => 'left', -anchor => 'w');
+ }
+
+ #TD add ExtOT, Selected sats/obs ?
+ if($dummy > 0) {
+ $f5->Label(-text => $msg, -justify => 'left',
+ )->pack(-side => 'top', -anchor => 'w');
+ }
+
+ $f6->Label(-text => $ConfigFile, -justify => 'left',
+ )->pack(-side => 'top', -anchor => 'w');
+
+ $ans = $FSdb->Show();
+ $e1->focus; $e1->icursor('end');
+ if($ans eq 'Clear') {
+ FileClea();
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub FileClea {
+ $ans = $w_top->messageBox(
+ -title => "Clear all selections",
+ -message => "Are you sure you want to clear\n"
+ . "all file names and all data selections? ",
+ -type => 'YesNo',
+ -icon => 'question',
+ #no popover for messageBox
+ );
+ if($ans eq 'yes') { ClearAll(); }
+}
+
+#-------------------------------------------------------------------------------------
+sub ClearAll {
+ Status("All the input files and data selection have been cleared.");
+ $CFG{'nav'} = '';
+ $CFG{'Rinex'} = '';
+ $ResCorfilename = '';
+ $RinexInSummary = '';
+ $RinexRCSummary = '';
+ $RxLabel = '';
+ @obslist = ();
+ @obsdesc = ();
+ @obsselect = ();
+ @svlist = ();
+ @svselect = ();
+ $dummy = `rm -f $CFG{'datafile'}`;
+ if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ @svbegin = ();
+ @svend = ();
+ $numobs = 0;
+ $numsvs = 0;
+ $nobssel = 0;
+ $nsvssel = 0;
+ $FirstAutoscale = 1;
+ ClearExot();
+}
+
+#-------------------------------------------------------------------------------------
+sub DataInputProcess {
+ ($filename) = @_;
+ # first see that it exists
+ if (not open(F, "<$filename")) {
+ PopNotice("Empty file","File $filename \ndoes not exist or is empty.");
+ return;
+ }
+ print LOG "Selected input Rinex obs file $filename\n";
+ ClearAll();
+ WaitCursor();
+
+ # get extended obs type information here (once) from ResCor
+ ExtDialogInit();
+
+ Status("Summarizing obs file $filename...please wait...");
+ $CFG{'Rinex'} = $filename;
+ $ResCorfilename = '';
+ $RinexRCSummary = '';
+ $RinexInSummary = basename($filename) . ".sum";
+ $cmd = $CFG{'prgmdir'} . $SLASH . "RinSum -g -i" . $CFG{'Rinex'}
+ . " > $RinexInSummary";
+ print LOG "Summarize obs file: Execute $cmd\n";
+ $dummy = `$cmd`; if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+
+ # pull out obs types from $RinexInSummary
+ $ans = DataGather($RinexInSummary);
+ if($ans == -1) {
+ Status("Choose another observation file");
+ PopNotice("Error: wrong file type",
+ $CFG{'Rinex'} . " \nis NOT a Rinex observation file.\n");
+ $CFG{'Rinex'} = '';
+ $ResCorfilename = '';
+ $RinexInSummary = '';
+ }
+ else {
+ if($CFG{'autoview'} eq 'on') { FileSumm(); }
+ $FirstAutoscale = 1;
+ }
+ Status("Summary complete for $filename.");
+ NormalCursor();
+}
+
+#-------------------------------------------------------------------------------------
+sub DataGather {
+ ($file) = @_;
+ open FILE, "$file" or die "Error: DataGather could not open file $file\n";
+ @obslist = ();
+ @obsdesc = ();
+ @obsselect = ();
+ @svlist = ();
+ @svselect = ();
+ $dummy = `rm -f $CFG{'datafile'}`; if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ @svbegin = ();
+ @svend = ();
+ $nobssel = 0;
+ $nsvssel = 0;
+ my $EOH = 0;
+ while(<FILE>) {
+ chomp;
+ $_ =~ s/^\s+//;
+ if(m/is not a Rinex observation file/) {
+ return -1;
+ }
+ if(m/END OF HEADER/) { $EOH=1; }
+
+ @opt = split (/\s+/, $_);
+ if($opt[0] eq "Type") {
+ push @obslist, $opt[3];
+ push @obsdesc, substr($_,13,length($_)-13);
+ push @obsselect, 0;
+ }
+ # following condition (..eq "G") means only GPS satellites get picked up
+ if($EOH==1 && $opt[0] eq "Sat" && substr($opt[1], 0, 1) eq "G") {
+ $numobs = $#obslist + 1;
+ push @svlist, $opt[1];
+ push @svselect, 0;
+ push @svbegin, [ $opt[$numobs+3], $opt[$numobs+4] ];
+ push @svend, [ $opt[$numobs+6], $opt[$numobs+7] ];
+ }
+ if($opt[0] eq "WARNING:" && $opt[1] eq "ObsType") {
+ $dummy = $opt[2];
+ foreach $i (0..$numobs-1) {
+ if($obslist[$i] eq $dummy) {
+ splice(@obslist, $i, 1);
+ splice(@obsdesc, $i, 1);
+ splice(@obsselect, $i, 1);
+ $numobs--;
+ last;
+ }
+ }
+ }
+ }
+ close FILE;
+ $numsvs = $#svlist + 1;
+
+ #print LOG "Obs types ($numobs) found: @obslist\n";
+ #print LOG "Found $numsvs SVs, here are start and stop times:\n";
+ #foreach $i (0..$numsvs-1) {
+ # print LOG "$svlist[$i] ($svbegin[$i][0],$svbegin[$i][1])"
+ # . " - ($svend[$i][0],$svend[$i][1])\n";
+ #}
+ return 0;
+}
+
+#-------------------------------------------------------------------------------------
+sub DataSats {
+ if($numsvs <= 0) {
+ $msg = "There are no satellites to select!"
+ . "\nGo to File/Input to load a new Rinex data file";
+ PopNotice("Error: no satellites",$msg);
+ return;
+ }
+
+ Status("Select satellites to be plotted.");
+ my $SLdb = $w_top->DialogBox(
+ -title => 'Select satellite(s) for plot',
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor=> 'n',
+ -popanchor => 'n',
+ );
+ my (@cb);
+ my $rows = 6;
+ my ($r,$c,$cols)=(1,0,int 1+$numsvs/$rows);
+
+ # label and frame for satellites
+ $SLdb->add('Label',
+ -text => "Select Satellite(s)",
+ -justify => 'center')->grid(-columnspan => "$cols");
+ my $f1=$SLdb->Frame(-borderwidth => 2, -relief => 'groove')->grid();
+ foreach $i (0..$numsvs-1) {
+ $cb[$i] = $f1->Checkbutton(
+ -text => $svlist[$i],
+ -variable => \$svselect[$i],
+ -relief => 'flat')->grid(-row => $r, -column => $c, -ipadx => '2');
+ $r++;
+ if($r > $rows) { $r = 1; $c++; }
+ }
+ # frame for two buttons
+ $dummy = $rows+1;
+ my $f2 = $f1->Frame(-borderwidth => 2, -relief => 'flat'
+ )->grid(-row => $dummy, -columnspan => "$cols");
+ $dummy = int($cols/2);
+ if($dummy == 0) { $dummy=1; }
+ my $cb2 = $f2->Button(
+ -text => 'All',
+ -width => '15',
+ -relief => 'groove',
+ -command => \&SetAllSats)->grid(-row => 1, -column => 1);
+ my $cb1 = $f2->Button(
+ -text => 'Clear',
+ -width => '15',
+ -relief => 'groove',
+ -command => \&ClearSats)->grid(-row => 1, -column => 2);
+
+ # save a copy to see when sats are un-selected
+ my @saveselect = @svselect;
+ $ans = $SLdb->Show();
+ if($ans eq "Cancel") {
+ @svselect = @saveselect;
+ return;
+ }
+
+ $dummy = 0;
+ $filename = "$CFG{'datafile'}";
+ foreach $i (0..$numsvs-1) {
+ if($saveselect[$i] != $svselect[$i]) {
+ if($svselect[$i] == 0) {
+ if($dummy == 0) { print LOG "DataSet/Sats Selected Sats:"; $dummy=1; }
+ print LOG " -$svlist[$i]";
+ }
+ else {
+ if(-e $filename) {
+ $dummy = `rm -f $filename`;
+ if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ }
+ }
+ $Reconfigure = 1;
+ }
+ if($svselect[$i] != 0) {
+ if($dummy == 0) { print LOG "DataSet/Sats Selected Sats:"; $dummy=1; }
+ print LOG " $svlist[$i]";
+ $nsvssel++;
+ }
+ }
+ if($dummy == 1) { print LOG "\n"; }
+ Status("Satellites selected ... go to DataSet/Obs to select obs?");
+}
+
+#-------------------------------------------------------------------------------------
+sub DataObst {
+ if($numobs <= 0) {
+ $msg = "There are no observation types selected!"
+ . "\nGo to File/Input to load a new Rinex data file";
+ PopNotice("Error: no obs types",$msg);
+ return;
+ }
+
+ Status("Select observations to be plotted.");
+ my $SLdb = $w_top->DialogBox(
+ -title => 'Select observation type(s) for plotting',
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor=> 'n',
+ -popanchor => 'n',
+ );
+ my (@cb);
+ my $rows = 6;
+ my ($r,$c,$cols)=(1,0,int 1+$numobs/$rows);
+
+ # label and frame for obs types
+ $SLdb->add('Label',
+ -text => "\nSelect Obs Type(s)",
+ -justify => 'center')->grid(-columnspan => "$cols");
+ my $f2=$SLdb->Frame(-borderwidth => 2, -relief => 'groove')->grid();
+ foreach $i (0..$numobs-1) {
+ $cb[$i] = $f2->Checkbutton(
+ -text => $obslist[$i] . " = " . $obsdesc[$i],
+ -variable => \$obsselect[$i],
+ -relief => 'flat')->grid(-sticky => 'w');
+ }
+ # frame for two buttons
+ $dummy = $numobs+1;
+ my $f1 = $f2->Frame(-borderwidth => 2, -relief => 'flat'
+ )->grid(-row => $dummy, -columnspan => "$cols");
+ my $cb2 = $f1->Button(
+ -text => 'Clear',
+ -width => '15',
+ -relief => 'groove',
+ -command => \&ClearObs);
+ my $cb1 = $f1->Button(
+ -text => 'All',
+ -width => '15',
+ -relief => 'groove',
+ -command => \&SetAllObs)->grid($cb2);
+
+ # save a copy to see when sats are un-selected
+ my @saveselect = @obsselect;
+ $ans = $SLdb->Show();
+ if($ans eq "Cancel") {
+ @obsselect = @saveselect;
+ return;
+ }
+
+ $dummy = 0;
+ foreach $i (0..$numobs-1) {
+ if($saveselect[$i] != $obsselect[$i]) {
+ $Reconfigure = 1;
+ $ans = `rm -f $CFG{'datafile'}`; if($CFG{'verbose'} eq 'on') { print LOG $ans; }
+ }
+ if($obsselect[$i] != 0) {
+ if($dummy == 0) { print LOG "DataSet/ObsTypes Selected Obs:"; $dummy=1; }
+ print LOG " $obslist[$i]";
+ $nobssel++;
+ }
+ }
+ if($dummy == 1) { print LOG "\n"; }
+ Status("Observations selected ... Refresh?");
+}
+
+#-------------------------------------------------------------------------------------
+sub DataTime {
+ # put up a dialog box with number entry box
+ Status("Dataset/Times Enter new time limits");
+ my $DTdb = $w_top->DialogBox(
+ -title => 'Time Limits',
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+
+ ($begW,$begS) = split(',',$CFG{'begin'});
+ ($endW,$endS) = split(',',$CFG{'end'});
+
+ $DTdb->add('Label',-text => " GPS Week Seconds of week")->pack(-anchor => 'w');
+ my $f1=$DTdb->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+ #$DTdb->add('Label')->pack(-anchor => 'w');
+ my $f2=$DTdb->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+
+ $f1->Label(-text => "Begin : ")->pack(-side => 'left');
+ my $e1=$f1->Entry(-textvariable => \$begW, -width => 5)->pack(-side => 'left');
+ $f1->Entry(-textvariable => \$begS, -width => 15)->pack(-side => 'left');
+ $f1->Button(-text => 'Clear', -width => '10', -relief => 'groove',
+ -command => \&ClearDTL)->pack(-side => 'right', -padx => '10');
+
+ $f2->Label(-text => "End : ")->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$endW, -width => 5)->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$endS, -width => 15)->pack(-side => 'left');
+ $f2->Button(-text => 'Set to Data', -width => '10', -relief => 'groove',
+ -command => \&SetDTL)->pack(-side => 'right', -padx => '10');
+
+ $e1->focus;
+ $e1->icursor('end');
+ $ans = $DTdb->Show();
+ if($ans eq 'Ok') {
+ print LOG "Dataset/Time limits are ($begW,$begS)-($endW,$endS)\n";
+ $CFG{'begin'} = "$begW,$begS";
+ $CFG{'end'} = "$endW,$endS";
+ }
+ Status('');
+}
+sub ClearDTL {
+ $begW = 0;
+ $begS = 0;
+ $endW = 9999;
+ $endS = 0;
+}
+sub SetDTL {
+ ClearDTL();
+ if($numsvs <= 0) { return; }
+ my $firstime = 1;
+ foreach $i (0..$numsvs-1) {
+ if($svselect[$i] != 0) {
+ if($firstime) {
+ $begW = $svbegin[$i][0];
+ $begS = $svbegin[$i][1];
+ $endW = $svend[$i][0];
+ $endS = $svend[$i][1];
+ $firstime = 0;
+ }
+ else {
+ if( $svbegin[$i][0] < $begW ||
+ ($svbegin[$i][0] == $begW && $svbegin[$i][1] < $begS)) {
+ $begW = $svbegin[$i][0];
+ $begS = $svbegin[$i][1];
+ }
+ if( $svend[$i][0] > $endW ||
+ ($svend[$i][0] == $endW && $svend[$i][1] > $endS)) {
+ $endW = $svend[$i][0];
+ $endS = $svend[$i][1];
+ }
+ }
+ }
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub DataConf {
+ #PopNotice("DataSet/Configure","DataSet/Configure is not yet implemented");
+ # Iono height
+ # debiasing
+ # $CFG{'debias'}
+ my ($db,$ih)=($CFG{'debias'},$CFG{'ionoht'});
+ Status("Modify data settings");
+ my $DCdb = $w_top->DialogBox(
+ -title => "Data configuration",
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $DCdb->add('Label',-text => "Data Settings:")->pack(-anchor => 'w');
+ # debias limit for ResCor
+ my $f1=$DCdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f1->Label(-text => " Limit on ResCor debias reset :"
+ )->pack(-side => 'top', -anchor => 'w');
+ $f1->Label(-text => " ")->pack(-side => 'left');
+ my $e1=$f1->Entry(-textvariable => \$db, -width => '20')->pack(-side => 'left');
+
+ # put it up
+ $ans = $DCdb->Show();
+ if($ans eq 'Ok') {
+ $CFG{'debias'} = $db;
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub SetAllSats {
+ if($numsvs <= 0) { return; }
+ foreach $i (0..$numsvs-1) { $svselect[$i] = 1; }
+ $nsvssel = $numsvs;
+ $FirstAutoscale = 1;
+}
+
+#-------------------------------------------------------------------------------------
+sub ClearSats {
+ if($numsvs <= 0) { return; }
+ foreach $i (0..$numsvs-1) {
+ if($svselect[$i] != 0) {
+ $filename = "$CFG{'datafile'}";
+ if(-e $filename) {
+ $dummy = `rm -f $filename`;
+ if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ }
+ }
+ $svselect[$i] = 0;
+ }
+ $nsvssel = 0;
+ $FirstAutoscale = 1;
+}
+
+#-------------------------------------------------------------------------------------
+sub SetAllObs {
+ if($numobs <= 0) { return; }
+ foreach $i (0..$numobs-1) { $obsselect[$i] = 1; }
+ $nobssel = $numobs;
+ $FirstAutoscale = 1;
+}
+
+#-------------------------------------------------------------------------------------
+sub ClearObs {
+ if($numobs <= 0) { return; }
+ foreach $i (0..$numobs-1) { $obsselect[$i] = 0; }
+ $nobssel = 0;
+ $FirstAutoscale = 1;
+}
+
+#-------------------------------------------------------------------------------------
+sub ConfigureCurves {
+ # each curve defined by Sat, OT, column in file, color, symbol type
+ # this routine must be called whenever selected svs OR selected ot changes
+ # when selected ot changes, the file $CFG{'datafile'} must be deleted
+ # if not already called, call this routine: Refresh, Graph/Curves, Graph/Limits
+ if($Reconfigure == 0) { return; }
+ print LOG "Configure curves:";
+ WaitCursor();
+ Status("Configure curves from selected data...please wait...");
+ $ncurv = 0;
+ $dummy = 0; # count colors
+ # count symbols, if symbols 'on' (symbols[0]='none')
+ if($CFG{'points'} eq 'on') { $ans = 1; } else { $ans = 0; }
+ @curvSV = (); # satellite for this curve
+ @curvOT = (); # obs type (from @obslist)
+ @curvON = (); # switch to turn off curve, on is non-zero
+ @curvCol = (); # column in $CFG{'datafile'} where data is found
+ @curvLines = (); # plot with lines or not (0)
+ @curvSymbs = (); # plot with symbols (1-?) or not (0)
+ @curvColor = (); # color to plot
+ foreach $i (0..$numsvs-1) {
+ if($svselect[$i] != 0) { # each satellite <-> file
+ my $n=0; # n just counts the columns <-> obstype
+ foreach $j (0..$numobs-1) {
+ if($obsselect[$j] != 0) { # each obstype
+ $curvSV[$ncurv] = $svlist[$i];
+ $curvOT[$ncurv] = $obslist[$j];
+ $curvON[$ncurv] = 1;
+ $curvCol[$ncurv] = 3*($n+1);
+ $n++;
+ $curvColor[$ncurv] = $colors[$dummy];
+ $dummy++; if($dummy > $#colors) { $dummy=0; }
+ if($CFG{'lines'} eq 'on') { $curvLines[$ncurv] = 1; }
+ else { $curvLines[$ncurv] = 0; }
+ $curvSymbs[$ncurv] = $symbols[$ans];
+ if($CFG{'points'} eq 'on') {
+ $ans++;
+ if($ans > $#symbols) { $ans=1; }
+ }
+ $ncurv++;
+ print LOG " $ncurv:$svlist[$i]/$obslist[$j]";
+ }
+ }
+ }
+ }
+ print LOG "\n";
+
+ if($ncurv <= 0) { # TD message? popup?
+ NormalCursor();
+ Status('');
+ return;
+ }
+
+ #print LOG "Number svs is $numsvs\n";
+ my $file = $CFG{'Rinex'};
+ if($ResCorfilename ne '') { $file = $ResCorfilename; }
+ $filename = "$CFG{'datafile'}";
+ if(not -e $filename) {
+ Status("Configure curves from selected data...please wait...");
+ $cmd = $CFG{'prgmdir'} . $SLASH . "RinexDump " . $file;
+ foreach $i (0..$numsvs-1) {
+ if($svselect[$i] != 0) { $cmd = $cmd . " $svlist[$i]"; }
+ }
+ foreach $j (0..$numobs-1) {
+ if($obsselect[$j] != 0) { $cmd = $cmd . " $obslist[$j]"; }
+ }
+ $cmd = $cmd . " > $filename";
+ print LOG "Collect data for plotting: Execute $cmd\n";
+ $dummy = `$cmd`; if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ }
+
+ if($FirstAutoscale == 1) { autoscale(); }
+ if($Reconfigure == 1 && $UsingDefaults) { DefaultLabels(); }
+ $Reconfigure = 0;
+ NormalCursor();
+ Status("Curves configured...Refresh?");
+}
+
+#-------------------------------------------------------------------------------------
+sub DefaultLabels {
+ print LOG "Configure default labels\n";
+ WaitCursor();
+ Status("Configure labels from selected data...please wait...");
+
+ my (@ot, at sv, at un);
+ my %SVseen = ();
+ my %OTseen = ();
+ my %UNseen = ();
+ foreach $i (0..$ncurv-1) {
+ if($curvON[$i] != 0) {
+ # TD decide if they are plotted on left or right
+ unless($SVseen{$curvSV[$i]}) {
+ $SVseen{$curvSV[$i]} = 1;
+ push @sv, $curvSV[$i];
+ }
+ unless($OTseen{$curvOT[$i]}) {
+ $OTseen{$curvOT[$i]} = 1;
+ push @ot, $curvOT[$i];
+ }
+ unless($UNseen{$ExtUnit{$curvOT[$i]}}) {
+ $UNseen{$ExtUnit{$curvOT[$i]}} = 1;
+ push @un, $ExtUnit{$curvOT[$i]};
+ }
+ }
+ }
+
+ #print LOG "Unique SV @sv\n";
+ #print LOG "Unique OT @ot (@un)\n";
+ if($#un > 0) {
+ print LOG "WARNING: Inconsistent units on left axis (@un).\n";
+ }
+ $CFG{'Tlabel'} = "OTs (@ot) for Sats (@sv) vs. Time";
+ $CFG{'Llabel'} = "@ot (@un)";
+ $CFG{'Rlabel'} = '';
+ $CFG{'Blabel'} ="GPS Seconds of Week $CFG{'Week'}";
+
+ NormalCursor();
+ $UsingDefaults = 1;
+ Status("Labels configured.");
+}
+
+#-------------------------------------------------------------------------------------
+sub CompObst {
+ Status("Select new observation types to create...");
+ $ans = $ETdb->Show();
+ if($ans eq "Cancel") {
+ Status('');
+ return;
+ }
+ Status("New observation types have been selected..." .
+ "go to Compute/Create to compute.");
+
+ $dummy = 0;
+ foreach $i (0..$#ExtOT) {
+ if($ExtSelect[$i] != 0) {
+ if($dummy == 0) { print LOG "Compute/New Selected New Obs:"; $dummy=1; }
+ print LOG " $ExtOT[$i]";
+ }
+ }
+ if($dummy == 1) { print LOG "\n"; }
+}
+
+#-------------------------------------------------------------------------------------
+sub ExtDialogInit {
+ if($#ExtOT == -1) { # only do this once...
+ $cmd = $CFG{'prgmdir'} . $SLASH . "ResCor -h > syntax.rc";
+ print LOG "Get list of possible new obs types: Execute $cmd\n";
+ $dummy = `$cmd`; if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ open FILE, "syntax.rc" or die "Error: could not open syntax.rc\n";
+ my @opt = <FILE>;
+ my @ExtROT;
+ $ans = 0;
+ for($i=0; $i <= $#opt; $i++) {
+ chomp $opt[$i];
+ if($opt[$i] =~ /OT Description/) { $ans = 1; }
+ if($ans == 2) {
+ if($opt[$i] =~ /End of list of extended observation types/) { last; }
+ push @ExtROT, $opt[$i];
+ #print LOG "Line $i is $opt[$i]\n";
+ }
+ if($ans == 1 && $opt[$i] =~ /^ -- --/) { $ans = 2; }
+ }
+ for($i=0; $i <= $#ExtROT; $i++) {
+ push @ExtOT, substr($ExtROT[$i],2,2);
+ #print "New OT ",substr($ExtROT[$i],2,2);
+ my $desc = substr($ExtROT[$i],5,20);
+ #print " desc ",$desc;
+ #$desc =~ s/\s*$//;
+ push @ExtDesc, $desc;
+ my @fields = split(" ", substr($ExtROT[$i],26,length($ExtROT[$i])-26));
+ #push @ExtUnit, $fields[0];
+ $ExtUnit{$ExtOT[$i]} = $fields[0];
+ #print " units ",$ExtUnit{$ExtOT[$i]},"\n";
+ my $dep=0;
+ for($j=1; $j <= $#fields; $j++) {
+ if($fields[$j] eq 'L1') { $dep |= $DepL1; }
+ if($fields[$j] eq 'L2') { $dep |= $DepL2; }
+ if($fields[$j] eq 'P1') { $dep |= $DepP1; }
+ if($fields[$j] eq 'P2') { $dep |= $DepP2; }
+ if($fields[$j] eq 'EP') { $dep |= $DepEP; }
+ if($fields[$j] eq 'PS') { $dep |= $DepPS; }
+ }
+ push @ExtDep, $dep;
+ push @ExtSelect, 0;
+ #for($j=1; $j <= $#fields; $j++) { print LOG "/$fields[$j]"; } # depends
+ #print LOG "\n";
+ }
+ #print LOG "Extended types:\n";
+ #for($i=0; $i <= $#ExtROT; $i++) {
+ #print LOG "$ExtOT[$i] $ExtDesc[$i] $ExtUnit{$ExtOT[$i]} dep(";
+ #if($ExtDep[$i] & $DepL1) { print LOG " L1"; }
+ #if($ExtDep[$i] & $DepL2) { print LOG " L2"; }
+ #if($ExtDep[$i] & $DepP1) { print LOG " P1"; }
+ #if($ExtDep[$i] & $DepP2) { print LOG " P2"; }
+ #if($ExtDep[$i] & $DepEP) { print LOG " EP"; }
+ #if($ExtDep[$i] & $DepPS) { print LOG " PS"; }
+ #print LOG ")\n";
+ #}
+
+ #now make up the dialog box
+ $ETdb = $w_top->DialogBox(
+ -title => 'Select extended observation type for processing',
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor=> 'n',
+ -popanchor => 'n',
+ );
+ my (@cb);
+ my $rows = 1+$#ExtOT/3;
+ my ($r,$c,$cols)=(1,0,3);
+ $ETdb->add('Label',
+ -text => "Select new observation type",
+ -justify => 'center')->grid(-columnspan => "$cols");
+ my $f1=$ETdb->Frame(-borderwidth => 2, -relief => 'groove')->grid();
+ foreach $i (0..$#ExtOT) {
+ my $cb = $f1->Checkbutton(
+ -text => $ExtOT[$i] . " : " . $ExtDesc[$i],
+ -variable => \$ExtSelect[$i],
+ -relief => 'flat')->grid(
+ -sticky => 'w',
+ -row => $r,
+ -column => $c,
+ -ipadx => '2');
+ $r++;
+ if($r > $rows) { $r = 1; $c++; }
+ }
+ my $cb1 = $f1->Button(
+ -text => 'Clear',
+ -width => '15',
+ -relief => 'groove',
+ -command => \&ClearExot)->grid(-columnspan => "$cols");
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub ClearExot {
+ foreach $i (0..$#ExtOT) { $ExtSelect[$i] = 0; }
+}
+
+#-------------------------------------------------------------------------------------
+sub CompNavf {
+ Status("Get the name of a Rinex navigation file...");
+ $filename = $w_top->getOpenFile(-title => 'Choose a Rinex nav file');
+ if($filename eq '') { return; }
+ Status("The Rinex navigation file is $filename");
+ # ought to check that it is a Rinex nav file...
+ $CFG{'nav'} = $filename;
+}
+
+#-------------------------------------------------------------------------------------
+sub CompPosnSele {
+ Status("Select a receiver position");
+ $buffer='';
+ $len=0;
+ if (not open(F, "<positions.txt")) {
+ $w_top->Dialog(
+ -title => 'File \'positions.txt\' not found',
+ -text => "Could not open the file \'positions.txt\'",
+ -bitmap => 'error',
+ )->Show;
+ return;
+ }
+ $len = read(F, $buffer, 100000);
+ #print LOG "Read $len bytes\n";
+ close F;
+ my $CPdb = $w_top->DialogBox(
+ -title => "Compute/Receiver position",
+ -buttons => ['Ok','New','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $CPdb->Label(
+ -text => "Select a receiver position by highlighting\n"
+ . "a selection and pushing \'Ok\'.\n\n"
+ . "( The current Rinex observation file name is\n" . $CFG{'Rinex'}
+ . " )\n",
+ -justify => 'left',
+ )->pack(-side => 'top',-anchor => 'w');
+ my $list_win = $CPdb->Scrolled('Listbox',
+ -setgrid => 'true',
+ -selectmode => 'single',
+ -scrollbars => 'e',
+ -height => '20', #lines
+ -width => '40', #characters
+ );
+ $list_win->pack(-expand => 'yes', -fill => 'both');
+ #$list_win->bind('<Double-1>' =>
+ #sub {
+ #print LOG "You selected " . $_[0]->get('active') . "\n";
+ #}
+ #);
+ my @list = split("\n", $buffer);
+ $list_win->insert(0, @list);
+ $ans = $CPdb->Show();
+ #print LOG "ans is $ans\n";
+ if($ans eq 'Ok') {
+ #print LOG "You selected " . $list_win->get('active') . "\n";
+ ($RxLabel,$RxX,$RxY,$RxZ,$RxComment) = split('\s+',$list_win->get('active'));
+ }
+ elsif($ans eq 'New') {
+ Status("Compute/Receiver Position : Enter a new Receiver position");
+ my $NRdb = $w_top->DialogBox(
+ -title => 'Enter New Receiver',
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+
+ my ($x,$y,$z,$label,$comment)=('','','','name','');
+
+ my $f1=$NRdb->Frame(-borderwidth => 2, -relief => 'flat'
+ )->pack(-anchor => 'w');
+ $NRdb->add('Label',-text => "\nECEF XYZ Coordinates (meters) :"
+ )->pack(-anchor => 'w');
+ my $f2=$NRdb->Frame(-borderwidth => 2, -relief => 'groove'
+ )->pack(-anchor => 'w');
+ $NRdb->add('Label',-text => "\nComment (optional)"
+ )->pack(-anchor => 'w');
+ my $f3=$NRdb->Frame(-borderwidth => 2, -relief => 'flat'
+ )->pack(-anchor => 'w');
+
+ $f1->Label(-text => "Site label for New Receiver (required, 4 characters) : "
+ )->pack(-side => 'left');
+ my $e1=$f1->Entry(-textvariable => \$label, -width => 5
+ )->pack(-side => 'left');
+ $f2->Label(-text => "X : ")->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$x, -width => 15)->pack(-side => 'left');
+ $f2->Label(-text => " Y : ")->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$y, -width => 15)->pack(-side => 'left');
+ $f2->Label(-text => " Z : ")->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$z, -width => 15)->pack(-side => 'left');
+ #$f3->Label(-text => "Comment: ")->pack(-side => 'left');
+ $f3->Entry(-textvariable => \$comment, -width => 60)->pack(-side => 'left');
+
+ $e1->focus;
+ $e1->icursor('end');
+ $ans = $NRdb->Show();
+ if($ans eq 'Ok') {
+ #print LOG "New Rx position is $label, $x, $y, $z, $comment\n";
+ $RxLabel = $label;
+ $RxX = $x;
+ $RxY = $y;
+ $RxZ = $z;
+ $RxComment = $comment;
+ # TD add it to positions.txt
+ }
+ }
+ print LOG "Selected Rx Position is $RxLabel: ($RxX, $RxY, $RxZ) $RxComment\n";
+ Status('');
+}
+
+#-------------------------------------------------------------------------------------
+sub CompPosnRAIM {
+ PopNotice("Compute/Rx Position/RAIM",
+ "Compute/Rx Position/RAIM is not yet implemented");
+}
+
+#-------------------------------------------------------------------------------------
+sub CompConf {
+ my ($cf,$ca)=(0,0);
+ if($CFG{'Cforce'} eq 'on') { $cf=1; }
+ if($CFG{'Callow'} eq 'on') { $ca=1; }
+ Status("Modify computation configuration as preferred");
+ my $CCdb = $w_top->DialogBox(
+ -title => "Computation configuration",
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $CCdb->add('Label',-text => "Computation Configuration")->pack(-anchor => 'w');
+ my $f2=$CCdb->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+ $f2->Checkbutton(
+ -text => "Allow C1 to replace missing P1",
+ -variable => \$ca,
+ -relief => 'flat')->pack(-anchor => 'w');
+
+ my $f1=$CCdb->Frame(-borderwidth => 2, -relief => 'flat')->pack(-anchor => 'w');
+ $f1->Checkbutton(
+ -text => "Force C1 to replace P1",
+ -variable => \$cf,
+ -relief => 'flat')->pack(-anchor => 'w');
+
+ $ans = $CCdb->Show();
+ if($ans eq 'Ok') {
+ if($ca) { $CFG{'Callow'} = 'on'; } else { $CFG{'Callow'} = 'off'; }
+ if($cf) { $CFG{'Cforce'} = 'on'; } else { $CFG{'Cforce'} = 'off'; }
+ }
+ Status('');
+}
+
+#-------------------------------------------------------------------------------------
+sub CompCrea {
+ Status("Create new observation types by computation...");
+ my ($depend,$have,$ok,$need)=(0,0,0,0);
+ my @opt = (); # options passed to ResCor
+ $dummy = 0; # count the number of selected ExtOT
+ for($i=0; $i <= $#ExtOT; $i++) {
+ if($ExtSelect[$i] != 0) { $dummy++; $depend |= $ExtDep[$i]; }
+ }
+ if($dummy == 0) {
+ $msg = "There are no extended obs types defined.\n"
+ . "Go to Compute/Select New Obs types to make a choice ";
+ PopNotice("Error: no new obs types",$msg);
+ return;
+ }
+
+ foreach $i (0..$numobs-1) {
+ if($obslist[$i] eq 'C1') { $have |= $DepC1; }
+ if($obslist[$i] eq 'L1') { $have |= $DepL1; }
+ if($obslist[$i] eq 'L2') { $have |= $DepL2; }
+ if($obslist[$i] eq 'P1') { $have |= $DepP1; }
+ if($obslist[$i] eq 'P2') { $have |= $DepP2; }
+ if($CFG{'nav'} ne '') { $have |= $DepEP; }
+ if($RxLabel ne '') { $have |= $DepPS; }
+ }
+ #if(($have & $DepC1) && ($have & $DepP1)) {
+ #print LOG "Dep bits for C1 and P1 are " . sprintf("%X %X\n",$DepC1,$DepP1);
+ #print LOG "old have is " . sprintf("%X",$have) . "\n";
+ #$have |= $DepP1;
+ #$have &= ~($DepC1);
+ #print LOG "new have is " . sprintf("%X",$have) . "\n";
+ #}
+ $ok = $depend & $have; # those we need AND have
+ $need = $ok ^ $depend; # those we need but do NOT have
+ #print "Have $have\n";
+ #print "Depend $depend\n";
+ #print "Need and have $ok\n";
+ #print "Need and don't have $need\n";
+ # can C1 substitute for P1?
+ if(($need & $DepP1) && ($have & $DepC1)
+ && ($CFG{'Callow'} eq 'on' || $CFG{'Cforce'} eq 'off')) {
+ $need &= ~($DepP1);
+ }
+ if($need != 0) {
+ my $needdata = 0;
+ $msg = "The selected new observation types cannot \n"
+ . "be computed because some input is missing :\n\n";
+ if($need & $DepL1) { $msg = $msg . " L1 is missing\n"; $needdata++; }
+ if($need & $DepL2) { $msg = $msg . " L2 is missing\n"; $needdata++; }
+ if($need & $DepP1) {
+ if($have & $DepC1) {
+ if($CFG{'Callow'} eq 'off') {
+ $msg = $msg . " P1 is missing (Hint: Select 'Allow use of C1'\n"
+ . " under Compute/Configure)\n";
+ $needdata++;
+ }
+ }
+ else { $msg = $msg . " P1 is missing\n"; $needdata++; }
+ }
+ if($need & $DepP2) { $msg = $msg . " P2 is missing\n"; $needdata++; }
+ #if($need & $DepEP) { $msg = $msg . " EP is missing\n"; }
+ #if($need & $DepPS) { $msg = $msg . " PS is missing\n"; }
+ #$msg = $msg . "\n";
+ if($needdata != 0) { $msg = $msg
+ . "\n-> Computation cannot proceed with this obs file. \n";
+ }
+ if($need & $DepEP) { $msg = $msg
+ . "\n-> Go to Compute/Nav File to select a navigation file. \n";
+ }
+ if($need & $DepPS) { $msg = $msg
+ . "\n-> Go to Compute/Rx Position to input a receiver position. \n";
+ }
+ PopNotice("Error: Some input missing",$msg);
+ #$ans = $w_top->messageBox(-title => 'Error: Some input missing',
+ #-message => $msg, -type => 'OK', -icon => 'info');
+ return;
+ }
+
+ # call ResCor
+ WaitCursor();
+ Status("Creating new observation types...please wait");
+ $ResCorfilename = basename($CFG{'Rinex'}) . ".rc";
+ print LOG "Create new obs types; output to file $ResCorfilename\n";
+ push @opt, "-IF$CFG{'Rinex'}";
+ push @opt, "-OF$ResCorfilename";
+ if($CFG{'nav'} ne '') { push @opt, "--nav $CFG{'nav'}"; }
+ if($RxX ne '') { push @opt, "--RxXYZ $RxX,$RxY,$RxZ"; }
+ #TD allow this to be configured
+ foreach $i (0..$#ExtOT) { if($ExtSelect[$i] != 0) {
+ push @opt, "-AO$ExtOT[$i]";
+ if($MayDebias{$ExtOT[$i]}) {
+ push @opt, "--debias $ExtOT[$i],$CFG{'debias'}";
+ }
+ } }
+ # use C1 when P1 is not there
+ if(($have & $DepC1) && $CFG{'Callow'} eq 'on') { push @opt, "--Callow"; }
+ if($CFG{'Cforce'} eq 'on') { push @opt, "--Cforce"; }
+ push @opt, "--verbose";
+
+ $cmd = $CFG{'prgmdir'} . $SLASH . "ResCor " . " @opt";
+
+ print LOG "Create new obs types: Execute $cmd\n";
+ $buffer = `$cmd`;
+ #print LOG "Result is\n$buffer\n";
+ Status("New observation types are ready");
+ $RinexRCSummary = $ResCorfilename . ".sum";
+ $cmd = $CFG{'prgmdir'} . $SLASH . "RinSum -g -i" . $ResCorfilename
+ . " > $RinexRCSummary";
+ Status("Summarizing new obs file $filename...please wait...");
+ print LOG "Summarize obs file: Execute $cmd\n";
+ $dummy = `$cmd`; if($CFG{'verbose'} eq 'on') { print LOG $dummy; }
+ if($CFG{'autoview'} eq 'on') { FileSumm(); }
+ $ans = DataGather($RinexRCSummary);
+ NormalCursor();
+ Status("Summary complete for $filename.");
+}
+
+#-------------------------------------------------------------------------------------
+sub GrapLims {
+ #print LOG "Graph/Limits\n";
+ ConfigureCurves();
+
+ # put up a dialog box with number entry box
+ Status("Graph/Limits: enter new limits, or autoscale (determine from data)");
+ my $DLdb = $w_top->DialogBox(
+ -title => 'Plotting Limits',
+ -buttons => ['Ok','Auto','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+
+ ($YMin,$YMax,$XMin,$XMax)=($CFG{'YMin'},$CFG{'YMax'},$CFG{'XMin'},$CFG{'XMax'});
+
+ $DLdb->add('Label',-text => "Y: data")->pack(-anchor => 'w');
+ my $f1=$DLdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $DLdb->add('Label',-text => "X: time")->pack(-anchor => 'w');
+ my $f2=$DLdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+
+ #$f1->Label(-text => "Y: data : ")->pack(-side => 'left');
+ my $e1=$f1->Entry(-textvariable => \$YMin, -width => 15)->pack(-side => 'left');
+ $f1->Entry(-textvariable => \$YMax, -width => 15)->pack(-side => 'left');
+
+ #$f2->Label(-text => "X: time : ")->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$XMin, -width => 15)->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$XMax, -width => 15)->pack(-side => 'left');
+
+ $e1->focus;
+ $e1->icursor('end');
+ $ans = $DLdb->Show();
+ if($ans eq 'Ok') {
+ print LOG "Graph/Limits are Y: $YMin, $YMax, X: $XMin, $XMax\n";
+ NewScale('fixed','Graph/Limits');
+ Refresh();
+ }
+ elsif($ans eq 'Auto') {
+ autoscale();
+ Refresh();
+ }
+ else { Status(''); }
+}
+
+#-------------------------------------------------------------------------------------
+sub AutoScale {
+ my $fas=$FirstAutoscale;
+ ConfigureCurves();
+ if($fas == 0) { autoscale(); Refresh(); }
+}
+
+#-------------------------------------------------------------------------------------
+# compute max and min y and x from file(s) -- consider time limits
+sub autoscale {
+ Status("Autoscale - redefine limits using data min/max");
+ $filename = "$CFG{'datafile'}";
+ open FILE, "$filename" or die "Error: autoscale could not open $filename\n";
+ my ($first,$firstime,$thistime,$sat)=(1,1,0,'');
+ my ($bw,$bs)=split(',',$CFG{'begin'});
+ my ($ew,$es)=split(',',$CFG{'end'});
+ while(<FILE>) {
+ chomp;
+ $_ =~ s/^\s_//;
+ if(m/Rinexdump/) { next; }
+ if(m/Week/) { next; }
+ s/^\s+//; # no leading white space
+ @opt = split(/\s+/, $_);
+ #$week = $opt[0];
+ #$sow = $opt[1];
+ next if($opt[0] < $bw);
+ next if($opt[0] == $bw && $opt[1] < $bs);
+ last if($opt[0] > $ew);
+ last if($opt[0] == $ew && $opt[1] > $es);
+ $sat = $opt[2];
+ $thistime = 0;
+ foreach $j (0..$ncurv-1) {
+ if($curvON[$j] == 0) { next; }
+ if($curvSV[$j] eq $sat) {
+ $thistime = 1;
+ if($first == 1) {
+ $YMax = $opt[$curvCol[$j]];
+ $YMin = $opt[$curvCol[$j]];
+ $first = 0;
+ }
+ else {
+ if($opt[$curvCol[$j]] < $YMin) { $YMin = $opt[$curvCol[$j]]; }
+ if($opt[$curvCol[$j]] > $YMax) { $YMax = $opt[$curvCol[$j]]; }
+ }
+ }
+ }
+ if($thistime == 1) {
+ if($firstime == 1) {
+ $XMax = $opt[1];
+ $XMin = $opt[1];
+ $CFG{'Week'} = $opt[0];
+ $firstime = 0;
+ }
+ else {
+ $i = ($opt[0]-$CFG{'Week'})*604800 + $opt[1];
+ if($i < $XMin) { $XMin = $i; }
+ if($i > $XMax) { $XMax = $i; }
+ }
+ }
+ }
+
+ if($firstime == 1) {
+ PopNotice("Graph/Autoscale","Autoscale finds no data (within time limits)!");
+ }
+ else {
+ # NewScale requires $XMin,$XMax,$YMin,$YMax as input
+ NewScale('auto','Autoscale');
+ }
+ if($UsingDefaults) { DefaultLabels(); }
+}
+
+#-------------------------------------------------------------------------------------
+sub NiceScale {
+ # call with args Min Max Ntics Npixels
+ # results stored in $ScaleMin $ScaleStep $ScaleExp $ScaleN
+ my ($dmin,$dmax,$ntic,$npix)=@_;
+ #print LOG "NiceScale called with $dmin $dmax $ntic $npix\n";
+ ($ScaleMin,$ScaleStep,$ScaleExp,$ScaleN,$ScalePPL)=(0,0,0,0);
+ if($dmax < $dmin) { $dummy=$dmax; $dmax=$dmin; $dmin=$dummy; }
+ if($npix < 2 || $npix > 10000) {
+ print LOG "NiceScale: Number of pixels is unreasonable\n";
+ return;
+ }
+ $ScalePPL = ($npix-1)/($ntic-1); # pixels per label
+ if($ScalePPL <= 0 || $ScalePPL >= $npix) {
+ print LOG "NiceScale: Number of pixels per label is unreasonable\n";
+ return;
+ }
+ $ScaleN = 1+($npix-1)/$ScalePPL;
+ $dummy = abs($dmax);
+ if(abs($dmin) > $dummy) { $dummy=abs($dmin); }
+ if($dmax-$dmin <= 5.0e-8 * $dummy) { # effectively equal limits
+ if($dmax < 0) { $dmax=0.0; }
+ elsif($dmax == 0) { $dmax=1.0; }
+ elsif($dmax > 0) { $dmax=0.0; }
+ }
+ my $finter=$npix/$ScalePPL;
+ #print LOG "PPL is $ScalePPL, and finter is $finter\n";
+ my $scale=($dmax-$dmin)*1.00002/$finter;
+ $ScaleExp = 0;
+ while($scale <= 10) { $scale *= 10; $ScaleExp++; }
+ while($scale > 100) { $scale /= 10; $ScaleExp--; }
+ #print LOG "scale is $scale\n";
+ #print LOG "Exponent is $ScaleExp\n";
+ my $iunit;
+ foreach $i (1..$#NiceUnits-1) {
+ $iunit = $i;
+ if($scale <= $NiceUnits[$i]) { last; }
+ }
+ #print LOG "NiceUnit[$iunit] is $NiceUnits[$iunit]\n";
+ my ($istay,$aj,$tstep)=(1,0,0);
+ while($istay == 1) {
+ $ScaleStep = $NiceUnits[$iunit] / (10.0 ** $ScaleExp);
+ $aj = 0;
+ while(1) {
+ $aj++;
+ $dummy = int(($NiceUnits[$iunit]+0.1)/$aj);
+ if($NiceUnits[$iunit]-0.1 > $aj*$dummy) { next; }
+ $tstep = $ScaleStep/$aj;
+ $dummy = $dmin/$tstep + $aj*(0.5/$ScalePPL - $finter*1.0e-5);
+ $ScaleMin = $tstep * int($dummy);
+ if($dummy < 0 && $dummy != int($dummy)) { $ScaleMin -= $tstep; }
+ if($dmax < $ScaleMin + $ScaleStep*($finter*0.99999-(0.5/$ScalePPL))) {
+ $istay=0; last;
+ }
+ $dummy = 1.0 - 1.0/($aj * $finter);
+ # TD this fails occasionally: divide by zero
+ if(($NiceUnits[$iunit]/$NiceUnits[$iunit+1])*$dummy < 0.7) {
+ next;
+ }
+ $iunit++;
+ if($iunit > 11) { $istay=0; last; } # TD ??
+ }
+ }
+ foreach $i (1,2) {
+ $aj *= 10;
+ if($NiceUnits[$iunit]-0.1 < $aj*int(($NiceUnits[$iunit]+0.1)/$aj)) {
+ $ScaleExp--;
+ }
+ }
+
+ #print LOG "NiceScale finds exp $ScaleExp ";
+ #foreach $i (0..$ScaleN-1) {
+ # $dummy = $ScaleMin + $i * $ScaleStep;
+ # # $dummy are labels; multiply by 10**ScaleExp to make them all integers
+ # if($ScaleExp > 0) { print LOG sprintf(" %.$ScaleExp"."f",$dummy); }
+ # else { print LOG " $dummy"; }
+ #}
+ #print LOG "\n";
+}
+
+#-------------------------------------------------------------------------------------
+sub GrapAxes {
+ PopNotice("Graph/Axes","Graph/Axes is not yet implemented");
+}
+
+#-------------------------------------------------------------------------------------
+sub GrapLabe {
+ Status("Labels on the graph");
+ my $GLdb = $w_top->DialogBox(
+ -title => "Graph Labels",
+ -buttons => ['Ok','Default','Clear'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $GLdb->add('Label',-text => "Title:")->pack(-anchor => 'w');
+ my $f1=$GLdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $GLdb->add('Label',-text => "Bottom (X) axis label:")->pack(-anchor => 'w');
+ my $f2=$GLdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $GLdb->add('Label',-text => "Left (Y) axis label:")->pack(-anchor => 'w');
+ my $f3=$GLdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $GLdb->add('Label',-text => "Right (Y) axis label:")->pack(-anchor => 'w');
+ my $f4=$GLdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+
+ my $len = length($CFG{'Tlabel'});
+ if($len < length($CFG{'Blabel'})) { $len = length($CFG{'Blabel'}); }
+ if($len < length($CFG{'Llabel'})) { $len = length($CFG{'Llabel'}); }
+ if($len < length($CFG{'Rlabel'})) { $len = length($CFG{'Rlabel'}); }
+ if($len < 20) { $len = 20; }
+
+ my $e1=
+ $f1->Entry(-textvariable => \$CFG{'Tlabel'},-width => $len)->pack(-side => 'left');
+ $f2->Entry(-textvariable => \$CFG{'Blabel'},-width => $len)->pack(-side => 'left');
+ $f3->Entry(-textvariable => \$CFG{'Llabel'},-width => $len)->pack(-side => 'left');
+ $f4->Entry(-textvariable => \$CFG{'Rlabel'},-width => $len)->pack(-side => 'left');
+
+ $ans = $GLdb->Show();
+ $e1->focus; $e1->icursor('end');
+ if($ans eq 'Default') {
+ DefaultLabels();
+ GrapLabe();
+ }
+ if($ans eq 'Clear') {
+ $CFG{'Tlabel'}='';
+ $CFG{'Blabel'}='';
+ $CFG{'Llabel'}='';
+ $CFG{'Rlabel'}='';
+ GrapLabe();
+ }
+ else {
+ $UsingDefaults = 0;
+ }
+ Status('');
+}
+
+#-------------------------------------------------------------------------------------
+sub GrapCurv {
+ ConfigureCurves();
+
+ if($ncurv <= 0) {
+ $msg = "There are no curves defined.\n" .
+ "Go to DataSet/Select to make a choice ";
+ PopNotice("Error: no curves",$msg);
+ return;
+ }
+
+ Status("Curves to be plotted");
+ #PopNotice("Graph/Curves","Graph/Curves is not yet implemented");
+ my $GCdb = $w_top->DialogBox(
+ -title => 'Curves defined for plotting',
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor=> 'n',
+ -popanchor => 'n',
+ );
+
+ $GCdb->add('Label', -text => "CURVES", -justify => 'center')->pack(-side => 'top');
+ $GCdb->add('Label', -text =>
+ ' N On Sat OT Color Line Symbol ',
+ #-font => 'C_small',
+ -justify => 'left')->pack(-side => 'top');
+ my @fr; # frame for each curve
+ my @sats = @curvSV;
+ my @otss = @curvOT;
+ my @swit = @curvON;
+ my @line = @curvLines;
+ my @symb = @curvSymbs;
+ my @colo = @curvColor;
+ my @cb;
+ $dummy = ' ';
+ foreach $i (0..$ncurv-1) {
+ # frame for each curve
+ $fr[$i]=$GCdb->Frame(-borderwidth => 2, -relief => 'groove'
+ )->pack(-side => 'top');
+ # label and entry for Sat
+ $fr[$i]->Label(-text => sprintf("%2d",$i), -font => 'C_small'
+ )->pack(-side => 'left');
+ $fr[$i]->Checkbutton(-text => ' ', -variable => \$swit[$i],
+ -relief => 'flat')->pack(-side => 'left');
+ $fr[$i]->Label(-text => " ")->pack(-side => 'left');
+ $fr[$i]->Entry(-textvariable => \$sats[$i], -width => 4)->pack(-side => 'left');
+ $fr[$i]->Label(-text => " ")->pack(-side => 'left');
+ $fr[$i]->Entry(-textvariable => \$otss[$i], -width => 3)->pack(-side => 'left');
+ $fr[$i]->Label(-text => " ")->pack(-side => 'left');
+ # color - colored button calls up color selection dialog
+ $cb[$i] = $fr[$i]->Button(-text => ' ',
+ -width => 2,
+ -background => $colo[$i],
+ -activebackground => $colo[$i],
+ -command => sub {
+ $dummy = $fr[$i]->chooseColor(
+ -title => 'choose a new color',
+ -initialcolor => $colo[$i]);
+ if($dummy ne '') {
+ $colo[$i] = $dummy;
+ $cb[$i]->configure('-background' => $colo[$i],
+ '-activebackground' => $colo[$i]);
+ }
+ })->pack(-side => 'left', -ipadx => '2');
+ # line checkbox
+ $fr[$i]->Checkbutton(-text => '', -variable => \$line[$i],
+ -relief => 'flat')->pack(-side => 'left', -ipadx => '4');
+ # symbol browseentry
+ $fr[$i]->BrowseEntry(-label => ' ',
+ -variable => \$symb[$i],
+ -choices => \@symbols,
+ -width => 6,
+ -listwidth => 18,
+ -state => 'readonly',
+ )->pack(-side => 'left', -ipadx => '2');
+ #space on the right
+ $fr[$i]->Label(-text => " ")->pack(-side => 'left');
+ }
+
+ $ans = $GCdb->Show();
+ Status('');
+ if($ans eq "Cancel") { return; }
+
+ $dummy = 0;
+ foreach $i (0..$#curvON) {
+ if($curvON[$i] != $swit[$i]) {
+ if($dummy == 0) { print LOG "Graph/Curves toggles"; $dummy=1; }
+ print LOG " $i:";
+ if($swit[$i] == 0) { print LOG "OFF"; } else { print LOG "ON"; }
+ }
+ }
+ if($dummy != 0) { print LOG "\n"; }
+ @curvON = @swit;
+ @curvLines = @line;
+ @curvSymbs = @symb;
+ @curvColor = @colo;
+}
+
+#sub GrapColo {
+# #print LOG "Graph/Colors\n";
+# $FCOLOR= $w_top->chooseColor(-title => "Choose color for plot",
+# -initialcolor => $FCOLOR);
+# print LOG "New color is $FCOLOR\n";
+#}
+
+#-------------------------------------------------------------------------------------
+sub GrapZoom {
+ # (for some reason, when called from menu, arguments are different)
+ my $io;
+ ($dummy, $io) = @_; # ignore dummy here
+ $dummy = $CFG{'zoomX'} / 2;
+
+ my $size=$CFG{'XMax'}-$CFG{'XMin'};
+ if($io eq 'In') { $size = -$size; }
+ $XMin = $CFG{'XMin'} - $CFG{'zoomX'} * $size;
+ $XMax = $CFG{'XMax'} + $CFG{'zoomX'} * $size;
+
+ $size=$CFG{'YMax'}-$CFG{'YMin'};
+ if($io eq 'In') { $size = -$size; }
+ $YMin = $CFG{'YMin'} - $CFG{'zoomX'} * $size;
+ $YMax = $CFG{'YMax'} + $CFG{'zoomX'} * $size;
+
+ # NewScale requires $XMin,$XMax,$YMin,$YMax as input
+ NewScale('fixed','Graph/Zoom');
+ Refresh();
+}
+
+#-------------------------------------------------------------------------------------
+sub GrapUnzo {
+ if($OldXMin eq '') { return; }
+ ($XMin,$XMax,$YMin,$YMax) = ($OldXMin,$OldXMax,$OldYMin,$OldYMax);
+ # NewScale requires $XMin,$XMax,$YMin,$YMax as input
+ NewScale('fixed','Graph/Unzoom');
+ Refresh();
+}
+
+#-------------------------------------------------------------------------------------
+sub GrapGnup {
+ PopNotice("Graph/Gnuplot","Graph/Gnuplot is not yet implemented.");
+}
+
+#-------------------------------------------------------------------------------------
+sub HelpTopi {
+ #PopNotice("Help/Topics","Help/Topics is \nnot yet implemented.");
+
+ #if(! Exists($HTmw)) { # not necessary
+ my $HTmw = MainWindow->new();
+ $HTmw->title("Help on RinexPlot");
+ my $b = $HTmw->Button(
+ -text => 'Close this Help window',
+ -width => '40',
+ -command => sub { $HTmw->withdraw },
+ )->pack();
+ my $t = $HTmw->Scrolled('ROText',
+ -setgrid => 'true',
+ -width => '65',
+ -height => '30',
+ -font => 'normal',
+ -wrap => 'word',
+ -scrollbars => 'e');
+ $t->pack(qw/-expand yes -fill both/);
+
+ # Set up display styles.
+ $HTmw->fontCreate(qw/C_small -family courier -size 10/);
+ $HTmw->fontCreate(qw/C_big -family courier -size 14 -weight bold/);
+ $HTmw->fontCreate(qw/C_vbig -family helvetica -size 24 -weight bold/);
+ $HTmw->fontCreate(qw/C_bold -family courier -size 12 -weight bold -slant italic/);
+ $t->tag(qw/configure bold -font C_bold/);
+ $t->tag(qw/configure big -font C_big/);
+ $t->tag(qw/configure verybig -font C_vbig/);
+ $t->tag(qw/configure small -font C_small/);
+ if ($HTmw->depth > 1) {
+ $t->tag(qw/configure color1 -background/ => '#a0b7ce'); #this color is "MSWin blue"
+ $t->tag(qw/configure color2 -foreground red/);
+ $t->tag(qw/configure raised -relief raised -borderwidth 1/);
+ $t->tag(qw/configure sunken -relief sunken -borderwidth 1/);
+ } else {
+ $t->tag(qw/configure color1 -background black -foreground white/);
+ $t->tag(qw/configure color2 -background black -foreground white/);
+ $t->tag(qw/configure raised -background white -relief raised -bd 1/);
+ $t->tag(qw/configure sunken -background white -relief sunken -bd 1/);
+ }
+ $t->tag(qw/configure bgstipple -background black -borderwidth 0
+ -bgstipple gray12/);
+ $t->tag(qw/configure fgstipple -fgstipple gray50/);
+ $t->tag(qw/configure underline -underline on/);
+ $t->tag(qw/configure overstrike -overstrike on/);
+ $t->tag(qw/configure right -justify right/);
+ $t->tag(qw/configure center -justify center/);
+ $t->tag(qw/configure super -offset 4p -font C_small/);
+ $t->tag(qw/configure sub -offset -2p -font C_small/);
+ $t->tag(qw/configure margins -lmargin1 12m -lmargin2 6m -rmargin 10m/);
+ $t->tag(qw/configure spacing -spacing1 10p -spacing2 2p
+ -lmargin1 12m -lmargin2 6m -rmargin 10m/);
+
+
+ # now insert text
+ $t->insert('0.0', "RinexPlot is a GUI for the GPS Toolkit (gpstk) utility "
+ . "programs that will read, manipulate and plot data in a Rinex file.\n\n",
+ 'big');
+ $t->insert('insert',"Here is the general flow of things:\n");
+ $t->insert('insert'," 1.",'big');
+ $t->insert('insert'," Select a Rinex observation file by choosing "
+ . "'File/Obs file' from the main menu. Wait for the summary window to come up,"
+ . " then close it to return to the main menu.\n");
+ $t->insert('insert'," 2.",'big');
+ $t->insert('insert'," (2-4 Optional) Select new observation types by choosing "
+ . "'Compute/New Data types' from the main menu\n");
+ $t->insert('insert'," 3.",'big');
+ $t->insert('insert'," Choose a Rinex navigation file (Compute/Nav file)"
+ . " and a Receiver position (Compute/Rx position)...these may or may not be "
+ . "required, depending on the choices you made in Step 2 (Step 4 will inform"
+ . " you if more input is needed.\n");
+ $t->insert('insert'," 4.",'big');
+ $t->insert('insert'," Compute the new types by choosing 'Compute/Create new data'."
+ . " (This step is important! - if your new obs types do not show up under"
+ . " Dataset/Obs types, you may have skipped this step.)\n");
+ $t->insert('insert'," 5.",'big');
+ $t->insert('insert'," Select dataset(s) to plot by choosing 'Dataset/Satellites'"
+ . " AND 'Dataset/Obs types'; optionally also limit the plot in time using"
+ . " 'Dataset/Times', and in other ways under Dataset/Configure.\n");
+ $t->insert('insert'," 6.",'big');
+ $t->insert('insert'," Now press 'Refresh' to re-draw the screen...whenever the "
+ . "data and/or graph are changed, press Refresh to draw the new plot.\n");
+ $t->insert('insert'," 7.",'big');
+ $t->insert('insert'," Features of the plot, such as limits and colors, can be seen"
+ . " and set under 'Graph' on the main menu.\n");
+ $t->insert('insert'," 8.",'big');
+ $t->insert('insert'," Preferences and switches can be set under 'Settings' on the"
+ . " main menu.\n");
+ #$t->insert('insert'," 9.",'big');
+ #$t->insert('insert',"\n");
+ $t->insert('insert',"\n(Usually you can look at the status bar at the bottom of "
+ . "the window to get hints about what has just happened or what to do next.)\n");
+
+ $t->insert('insert',"\nSwitches and options\n",'big');
+ $t->insert('insert',"- Summary files automatically shown in window.\n");
+ $t->insert('insert',"- Refresh automatically after selection/zoom/resizing.\n");
+ $t->insert('insert',"- GPS satellites only.\n");
+ $t->insert('insert',"- Output to a log file or the screen\n");
+ $t->insert('insert',"- Directory of GPSTk programs\n");
+
+ $t->insert('insert',"\nCommand line arguments:\n",'big');
+ $t->insert('insert'," Command line arguments may come in any order, but note that"
+ . " many depend on others and have no effect unless those others are present."
+ . "\n\n");
+ $t->insert('insert',"All command line options:\n");
+ $t->insert('insert'," [Note pattern: --opt <arg> OR --opt=<arg>]\n",'small');
+ $t->insert('insert',$CmdText,'small');
+
+ $t->insert('insert',"\nMouse things\n",'big');
+ $t->insert('insert',"- Click on any point in the graph; the status bar will show "
+ . "coordinates (both screen and data).\n");
+ $t->insert('insert',"- Click, drag and un-click to make a rectangle on the graph."
+ . " A box pops up allowing you to zoom the plot to the rectangle.\n");
+
+ $t->mark(qw/set insert 0.0/);
+
+ #} else { # HTmw already exists
+ #$HTmw->deiconify();
+ #$HTmw->raise();
+ #}
+}
+
+#-------------------------------------------------------------------------------------
+sub HelpAbou {
+ #print LOG "Help/About\n";
+ my $HAdb = $w_top->DialogBox(
+ -title => 'About RinexPlot',
+ -buttons => ['Ok'],
+ -popover => $w_top,
+ -overanchor => 'n',
+ -popanchor => 'n',
+ );
+ $HAdb->add('Label', -text => $ABOUT_TEXT,
+ -justify => 'left')->pack;
+ $HAdb->add('Label', -text => $AUTHOR_TEXT,
+ -justify => 'left')->pack;
+ $HAdb->add('Label', -text => "Version is " . $VERSION . "\n",
+ -justify => 'left')->pack;
+ $HAdb->add('Label', -text => "Operating System is $^O",
+ -justify => 'left')->pack;
+ $HAdb->Show();
+}
+
+#-------------------------------------------------------------------------------------
+sub SettPref {
+ # menu tearoff (command line only - before creation) my $menutear = 1; ???
+ # (to do this you would have to scan args before calling init() )
+ my ($av,$ud,$lf,$zf)=(0,$CFG{'prgmdir'},$CFG{'log'},$CFG{'zoomX'});
+ my ($vb,$lr,$lo,$so)=(0,0,0,0);
+ if($CFG{'autoview'} eq 'on') { $av=1; }
+ if($CFG{'verbose'} eq 'on') { $vb=1; }
+ if($CFG{'keepdata'} eq 'on') { $lr=1; }
+ if($CFG{'lines'} eq 'on') { $lo=1; }
+ if($CFG{'points'} eq 'on') { $so=1; }
+ Status("Modify settings of global configuration as preferred");
+ my $SPdb = $w_top->DialogBox(
+ -title => "Preferences",
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $SPdb->add('Label',-text => "Global Settings:")->pack(-anchor => 'w');
+ # AutoView
+ my $f1=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f1->Checkbutton(
+ -text => "Autoview: automatically show summary file ",
+ -variable => \$av,
+ -relief => 'flat')->pack(-anchor => 'w');
+ # Log file name
+ my $f2=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f2->Label(-text => " Output log file :"
+ )->pack(-side => 'top', -anchor => 'w');
+ $f2->Label(-text => " ")->pack(-side => 'left');
+ if($lf eq '') { $lf="SCREEN"; }
+ my $e1=$f2->Entry(-textvariable => \$lf, -width => '20')->pack(-side => 'left');
+ $f2->Checkbutton(-text => "Verbose output", -variable => \$vb, -relief => 'flat',
+ )->pack(-side => 'left');
+ # GPSTk directory
+ my $f3=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f3->Label(-text => " Directory of GPSTk utilities :"
+ )->pack(-side => 'top', -anchor => 'w');
+ $f3->Label(-text => " ")->pack(-side => 'left');
+ my $e1=$f3->Entry(-textvariable => \$ud, -width => '37')->pack(-side => 'left');
+ $e1->focus; $e1->icursor('end');
+ # Default lines
+ my $f4=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f4->Label(-text => "Default curves have:")->pack(-side => 'left');
+ $f4->Checkbutton(
+ -text => "Lines",
+ -variable => \$lo,
+ -relief => 'flat')->pack(-side => 'left');
+ # Default symbols
+ $f4->Checkbutton(
+ -text => "Points ",
+ -variable => \$so,
+ -relief => 'flat')->pack(-side => 'left');
+ # Zoom factor
+ my $f5=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f5->Label(-text => " Zoom factor (0 < zf < 1) : ")->pack(-side => 'left');
+ my $e2=$f5->Entry(-textvariable => \$zf, -width => '17')->pack(-side => 'left');
+ $e2->icursor('end');
+ # GPS only
+ #my $f5=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ #$f5->Checkbutton(
+ # -text => "GPS satellites only ",
+ # -variable => \$go,
+ # -relief => 'flat')->pack(-anchor => 'w');
+ # Leave $CFG{'datafile'}
+ my $f6=$SPdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f6->Checkbutton(
+ -text => "Leave data file ($CFG{'datafile'}) after exit ",
+ -variable => \$lr,
+ -relief => 'flat')->pack(-anchor => 'w');
+
+ # put it up
+ $ans = $SPdb->Show();
+ if($ans eq 'Ok') {
+ if($av) { $CFG{'autoview'} = 'on'; } else { $CFG{'autoview'} = 'off'; }
+ if($lo) { $CFG{'lines'} = 'on'; } else { $CFG{'lines'} = 'off'; }
+ if($so) { $CFG{'points'} = 'on'; } else { $CFG{'points'} = 'off'; }
+ $CFG{'zoomX'} = $zf;
+ if($lr) { $CFG{'keepdata'} = 'on'; } else { $CFG{'keepdata'} = 'off'; }
+ if($lf eq 'SCREEN') { $CFG{'log'} eq ''; } else {
+ close LOG;
+ $CFG{'log'} = $lf;
+ open LOG, ">$CFG{'log'}" or die "Could not open log file $CFG{'log'}\n";
+ autoflush LOG;
+ print LOG "Log file for RinexPlot\n";
+ }
+ if($vb) { $CFG{'verbose'} = 'on'; }
+ if($ud ne $CFG{'prgmdir'}) {
+ my($ResCor,$RinSum,$RinexDump)=('ResCor','RinSum','RinexDump');
+ if ($^O eq "MSWin32") {
+ $ResCor='ResCor.exe';
+ $RinSum='RinSum.exe';
+ $RinexDump='RinexDump.exe';
+ }
+ if(not -e $ud . $SLASH . $RinSum
+ || not -e $ud . $SLASH . $ResCor
+ || not -e $ud . $SLASH . $RinexDump) {
+ PopNotice("Error:","Error: GPSTk utilities not found in directory $ud.\n"
+ . "Go to Settings/Preferences to change it");
+ }
+ else { $CFG{'prgmdir'} = $ud; }
+ }
+ }
+ Status('');
+}
+
+#-------------------------------------------------------------------------------------
+sub SettCurs {
+ ## Open file that contains all available cursors
+ ## Might have to change this if your cursorfont.h is elsewhere
+ ## On Win32 systems look in C:\Perl\lib\site\Tk\X11\cursorfont.h
+ my $cursorfile='/usr/X11R6/include/X11/cursorfont.h';
+ if ($^O eq "MSWin32") {
+ $cursorfile = '\\perl\\site\\lib\\Tk\\X11\\cursorfont.h';
+ }
+ my @cursors=();
+ open (FH, $cursorfile) or die "Couldn't open cursor file.\n";
+ while (<FH>) { push(@cursors, $1) if (/\#define XC_(\w+) /); }
+ close(FH);
+
+ my $HSdb = $w_top->DialogBox(
+ -title => 'Available cursors',
+ -buttons => ['Ok','Cancel'],
+ -popover => $w_top,
+ -overanchor => 'n',
+ -popanchor => 'n',
+ );
+ my $lab = $HSdb->add('Label',-text =>
+ "Select a cursor name by clicking\n" .
+ "on it, then move the mouse onto\n" .
+ "the canvas to see the result.\n" .
+ "The default cursor is crosshair.\n" .
+ "The current cursor is $cursor")->pack(-anchor => 'w');
+ my $scroll = $HSdb->Scrollbar;
+ my $lb = $HSdb->Listbox(-selectmode => 'single',
+ -yscrollcommand => [set => $scroll]);
+ $scroll->configure(-command => [yview => $lb]);
+ $scroll->pack(-side => 'right', -fill => 'y');
+ $lb->pack(-side => 'left', -fill => 'both');
+ $lb->insert('end', sort @cursors);
+ $lb->bind('<ButtonPress-1>',
+ sub {
+ $cursor = $lb->get($lb->curselection);
+ $w_canvas->configure(-cursor => $cursor);
+ $w_top->update;
+ print LOG "Configure cursor $cursor\n";
+ }
+ );
+ $ans = $HSdb->Show();
+ if($ans eq 'Cancel') {
+ $cursor = $crosshair;
+ NormalCursor();
+ }
+}
+
+#-------------------------------------------------------------------------------------
+# this is the guts of OutputCommand() and SaveConfig()
+# call with argument 'config' for config file format : ^key = value$
+# otherwise for command line format : (sp)--key value
+sub ConfigString {
+ ($ans) = @_;
+ my $cmd='';
+ my ($p1,$p2,$p3)=(' --',' ',''); # for the command line
+ if($ans eq 'config') { # for the config file
+ $p1 = '';
+ $p2 = ' = ';
+ $p3 = "\n";
+ }
+
+ foreach $key (sort keys %CFG) {
+ next if($CFG{$key} eq '');
+ if($CFG{$key} =~ m/\s+/) {
+ $cmd = $cmd . $p1 . $key . $p2 . "\"$CFG{$key}\"" . $p3;
+ }
+ else {
+ $cmd = $cmd . $p1 . $key . $p2 . $CFG{$key} . $p3;
+ }
+ }
+ #foreach $key (sort keys %OPT) {
+ # next if($OPT{$key}[0] eq '');
+ # foreach $i (@{$OPT{$key}}) {
+ # $cmd = $cmd . " --$key $i";
+ # }
+ #}
+
+ # --AO <OT> extended obs type
+ $dummy = 0;
+ foreach $i (0..$#ExtOT) {
+ if($ExtSelect[$i] != 0) {
+ $dummy =1;
+ $cmd = $cmd . $p1 . "AO" . $p2 . $ExtOT[$i] . $p3;
+ }
+ }
+ # --create call create only if --AO
+ if($dummy == 1) {
+ $cmd = $cmd . $p1 . "create" . $p2 . "on" . $p3;
+ }
+ # --sat <sat> select sat
+ $dummy = 0;
+ foreach $i (0..$#svlist) {
+ if($svselect[$i] != 0) {
+ $cmd = $cmd . $p1 . "sat" . $p2 . $svlist[$i] . $p3;
+ $dummy = 1;
+ }
+ }
+ # --obs <ot> select obs type
+ $ans = 0;
+ foreach $i (0..$#obslist) {
+ if($obsselect[$i] != 0) {
+ $cmd = $cmd . $p1 . "obs" . $p2 . $obslist[$i] . $p3;
+ $ans = 1;
+ }
+ }
+ # --refresh call refresh only if --sat and --obs
+ if($dummy != 0 && $ans != 0) {
+ $cmd = $cmd . $p1 . "refresh" . $p2 . "on" . $p3;
+ }
+
+ if($ans ne 'config') {
+ $cmd = $cmd . "\n";
+ }
+
+ return $cmd;
+}
+
+#-------------------------------------------------------------------------------------
+sub OutputCommand {
+ Status("Output the current configuration as a command line...");
+ # ask user for name of file to write to ... or screen
+ my $file = "LOG";
+ my $SOdb = $w_top->DialogBox(
+ -title => "Command line output",
+ -buttons => ['Ok','Cancel'],
+ -default_button => 'Ok',
+ -popover => 'cursor',
+ -overanchor => 'c',
+ -popanchor => 'nw',
+ );
+ #$SOdb->add('Label',-text => "Command line output")->pack(-anchor => 'w');
+ my $f1=$SOdb->Frame(-borderwidth => 2, -relief => 'groove')->pack(-anchor => 'w');
+ $f1->Label(-text => " Output file name for command line\n"
+ . " (SCREEN for stdout, LOG for logfile) :"
+ )->pack(-side => 'top', -anchor => 'w');
+ my $e1=$f1->Entry(-textvariable => \$file, -width => '30')->pack(-side => 'left');
+ $ans = $SOdb->Show();
+ if($ans eq 'Ok') {
+ my $cmd;
+ if($^O eq "MSWin32") { $cmd = "call RinexPlot"; }
+ elsif($^O eq "linux") { $cmd = "perl RinexPlot.pl"; }
+ else { $cmd = "RinexPlot"; }
+
+ $msg = ConfigString();
+ $cmd = $cmd . ' ' . $msg;
+
+ if($file eq "SCREEN") {
+ open(CMDOUT,">-") or die "Could not re-open STDOUT\n";
+ print CMDOUT "$cmd";
+ }
+ elsif($file eq "LOG") {
+ print LOG "$cmd";
+ }
+ else {
+ open CMDOUT, ">$file" or die "Could not open log file $file\n";
+ print CMDOUT "$cmd";
+ close CMDOUT;
+ }
+ }
+ Status('');
+}
+
+#-------------------------------------------------------------------------------------
+sub Refresh {
+ #print LOG "Refresh\n";
+ ConfigureCurves();
+
+ if($ncurv <= 0) {
+ $msg = "There are no curves defined.\n" .
+ "Go to DataSet/Select to make a choice ";
+ PopNotice("Error: no curves",$msg);
+ return;
+ }
+
+ WaitCursor();
+ Status("Refreshing the screen...");
+
+ # clear the screen
+ #$w_canvas->createRectangle(0,0,$CFG{'Lmargin'}+$CFG{'width'}+$CFG{'Rmargin'},
+ # $CFG{'Tmargin'}+$CFG{'height'}+$CFG{'Bmargin'},
+ # -outline => $BCOLOR, -fill => $BCOLOR);
+ $w_canvas->delete("all");
+
+ DrawBase();
+
+ PlotData();
+
+ NormalCursor();
+ Status("Refresh done.");
+}
+
+#-------------------------------------------------------------------------------------
+sub DrawBase {
+ # draw around the matte
+ $w_canvas->createRectangle($CFG{'Lmargin'}, $CFG{'Tmargin'},
+ $CFG{'width'}+$CFG{'Lmargin'}, $CFG{'height'}+$CFG{'Tmargin'},
+ -outline => 'black');
+
+ print LOG "Draw base: limits are X: ";
+ if($XScaleExp > 0) {
+ print LOG sprintf("%.$XScaleExp"."f",$CFG{'XMin'}) . ", "
+ . sprintf("%.$XScaleExp"."f",$CFG{'XMax'}) . ", Y: ";
+ }
+ else { print LOG "$CFG{'XMin'},$CFG{'XMax'}, Y: "; }
+ if($YScaleExp > 0) {
+ print LOG sprintf("%.$YScaleExp"."f",$CFG{'YMin'}) . ", "
+ . sprintf("%.$YScaleExp"."f",$CFG{'YMax'}) . "\n";
+ }
+ else { print LOG "$CFG{'YMin'},$CFG{'YMax'}\n"; }
+
+ print LOG "XScale : exp $XScaleExp ";
+ foreach $i (0..$CFG{'BticN'}-1) {
+ $dummy = $XScaleMin + $i * $XScaleStep;
+ if($XScaleExp > 0) { print LOG sprintf(" %.$XScaleExp"."f",$dummy); }
+ else { print LOG " $dummy"; }
+ }
+ print LOG "\n";
+ print LOG "YScale : exp $YScaleExp ";
+ foreach $i (0..$CFG{'LticN'}-1) {
+ $dummy = $YScaleMin + $i * $YScaleStep;
+ if($YScaleExp > 0) { print LOG sprintf(" %.$YScaleExp"."f",$dummy); }
+ else { print LOG " $dummy"; }
+ }
+ print LOG "\n";
+
+ # title above plot
+ $ans = $w_canvas->createText($CFG{'Lmargin'}+$CFG{'width'}/2,$CFG{'Tmargin'}/2,
+ -justify => 'center', -fill => 'black', -text => $CFG{'Tlabel'},
+ # -font => 'fontname',
+ );
+ # bottom label
+ $ans = $w_canvas->createText($CFG{'Lmargin'}+$CFG{'width'}/2,
+ $CFG{'Tmargin'}+$CFG{'height'}+$CFG{'Bmargin'}-8,
+ -justify => 'center', -fill => 'black', -text => $CFG{'Blabel'},
+ # -font => 'fontname',
+ );
+ # left label
+ $ans = $w_canvas->createText(0.28*$CFG{'Lmargin'}+2*length($CFG{'Llabel'}),
+ 0.6*$CFG{'Tmargin'}, -justify => 'left', -fill => 'black',
+ -text => $CFG{'Llabel'},
+ # -font => 'fontname',
+ );
+ # right label
+ $ans = $w_canvas->createText(
+ $CFG{'Lmargin'}+$CFG{'width'}+0.70*$CFG{'Rmargin'}-2*length($CFG{'Rlabel'}),
+ 0.6*$CFG{'Tmargin'}, -justify => 'right', -fill => 'black',
+ -text => $CFG{'Rlabel'},
+ # -font => 'fontname',
+ );
+
+ DrawLabels();
+}
+
+#-------------------------------------------------------------------------------------
+sub DrawLabels {
+ # tics and numeric labels
+ # (M,M) (M+W,M)
+ # (M,M+H) (M+W,M+H)
+ my ($min,$max)=(0,0);
+ foreach $i (-1..$CFG{'BticN'}) { # X axes
+ $dummy = Xdata2scr($XScaleMin+$i*$XScaleStep);
+ if($dummy >= $CFG{'Lmargin'} && $dummy <= $CFG{'width'}+$CFG{'Lmargin'}) {
+ # bottom tic
+ $ans = $w_canvas->createLine($dummy,$CFG{'Tmargin'}+$CFG{'height'},$dummy,
+ $CFG{'Tmargin'}+$CFG{'height'}-$XTicLen, -fill => 'black');
+ # bottom numeric label
+ $msg = sprintf("%d",$XScaleMin+$i*$XScaleStep);
+ $ans = $w_canvas->createText($dummy, $CFG{'Tmargin'}+$CFG{'height'}+10,
+ -justify => 'center', -fill => 'black', -text => $msg);
+ # save for next if block
+ if($min == 0) { $min = $dummy; }
+ $max = $dummy;
+
+ # top tic
+ $ans = $w_canvas->createLine($dummy, $CFG{'Tmargin'}, $dummy,
+ $CFG{'Tmargin'}+$XTicLen, -fill => 'black');
+ }
+ }
+ if($ScaleFixed == 1) { # numeric labels at ends
+ my $limit=$CFG{'width'}/(2*$CFG{'BticN'});
+ $msg = sprintf("%d",$CFG{'XMin'});
+ if($min-$CFG{'Lmargin'} > $limit) { # don't print if too close to another label
+ $ans = $w_canvas->createText(
+ $CFG{'Lmargin'}, $CFG{'Tmargin'}+$CFG{'height'}+10,
+ -justify => 'center', -fill => 'black', -text => $msg);
+ }
+ $msg = sprintf("%d",$CFG{'XMax'});
+ if($CFG{'Lmargin'}+$CFG{'width'}-$max > $limit) {
+ $ans = $w_canvas->createText(
+ $CFG{'Lmargin'}+$CFG{'width'},$CFG{'Tmargin'}+$CFG{'height'}+10,
+ -justify => 'center', -fill => 'black', -text => $msg);
+ }
+ }
+ #($min,$max)=(0,0);
+ foreach $i (-1..$CFG{'LticN'}) { # Y axes
+ $dummy = Ydata2scr($YScaleMin+$i*$YScaleStep);
+ if($dummy >= $CFG{'Tmargin'} && $dummy <= $CFG{'Tmargin'}+$CFG{'height'}) {
+ # left tic
+ $ans = $w_canvas->createLine(
+ $CFG{'Lmargin'},$dummy,$CFG{'Lmargin'}+$YTicLen,$dummy,
+ -fill => 'black'); # tics
+ if($YScaleExp > 0) {
+ $msg = sprintf(" %.$YScaleExp"."f",$YScaleMin+$i*$YScaleStep);
+ }
+ else { $msg = sprintf("%.0f",$YScaleMin+$i*$YScaleStep); }
+ # left numeric label
+ $ans = $w_canvas->createText($CFG{'Lmargin'}-2*length($msg)-5, $dummy,
+ -justify => 'left', -fill => 'black', -text => $msg);
+ # save for next if block
+ #if($min == 0) { $min = $dummy; }
+ #$max = $dummy;
+
+ # right tic
+ $ans = $w_canvas->createLine(
+ $CFG{'Lmargin'}+$CFG{'width'}, $dummy,
+ $CFG{'Lmargin'}+$CFG{'width'}-$YTicLen, $dummy, -fill => 'black');
+ }
+ }
+ #if($ScaleFixed) { # numeric labels at ends
+ # my $limit=20; # need character size in pixels here...
+ # $msg = sprintf("%d",$CFG{'YMin'});
+ # if($min-$CFG{'Tmargin'} > $limit) {# don't print if too close to another label
+ # $ans = $w_canvas->createText($CFG{'Lmargin'}-2*length($msg)-5,
+ # $CFG{'Tmargin'}+$CFG{'height'},
+ # -justify => 'left', -fill => 'black', -text => $msg);
+ # }
+ # if($CFG{'Tmargin'}+$CFG{'height'}-$max > $limit) {
+ # $msg = sprintf("%d",$CFG{'YMax'});
+ # $ans = $w_canvas->createText($CFG{'Lmargin'}-2*length($msg)-5,
+ # $CFG{'Tmargin'}, -justify => 'left', -fill => 'black', -text => $msg);
+ # }
+ #}
+}
+
+#-------------------------------------------------------------------------------------
+sub PlotData { # plot the data
+ my (@penup, at y, at prevx, at prevy);
+ my ($x,$id);
+ my ($xfr,$xto,$yfr,$yto,$tfl,$ffl);
+ ($begW,$begS) = split(',',$CFG{'begin'});
+ ($endW,$endS) = split(',',$CFG{'end'});
+ my ($sat,$c,$week,$sow);
+ my $sow0 = 0;
+ $CFG{'Week'} = 0;
+
+ # lift all pens
+ foreach $j (0..$ncurv-1) { $penup[$j] = 1; }
+
+ # open the data file and read
+ $filename = "$CFG{'datafile'}";
+ print LOG "Open $filename to plot ...";
+ open FILE, "$filename" or die "Error: Refresh could not open $filename\n";
+ Status("Refresh is plotting data in file $filename ...");
+
+ # loop over data in this file
+ while(<FILE>) {
+ chomp;
+ $_ =~ s/^\s_//;
+ if(m/Rinexdump/) { next; }
+ if(m/Week/) { next; }
+ # data
+ #print LOG "Read $_\n";
+ s/^\s+//; # no leading white space
+ @opt = split(/\s+/, $_);
+ $week = $opt[0]; # GPS week
+ $sow = $opt[1]; # GPS seconds of week
+ # ignore if outside time limits
+ next if($week < $begW);
+ next if($week == $begW && $sow < $begS);
+ last if($week > $endW);
+ last if($week == $endW && $sow > $endS);
+ if($CFG{'Week'} == 0) { $CFG{'Week'} = $week; $sow0 = $sow; }
+ $x = Xdata2scr($sow + ($week-$CFG{'Week'})*604800.);
+ $sat = $opt[2];
+ #print LOG "Sat is $sat ncurves $ncurv\n";
+ foreach $j (0..$ncurv-1) {
+ if($curvON[$j] == 0) { next; }
+ if($curvSV[$j] eq $sat) {
+ $y[$j] = Ydata2scr($opt[$curvCol[$j]]);
+ #print LOG "Data $sat: x=$opt[1] y=$opt[$curvCol[$j]] "
+ #. "sx=$x sy=$y[$j] pen=$penup[$j]\n";
+ if($penup[$j] == 1) {
+ $penup[$j] = 0;
+ }
+ elsif($penup[$j] == 0) {
+ #print LOG "Plot [$j]: ($prevx[$j],$prevy[$j]) to ($x,$y[$j])\n";
+ $xfr = $prevx[$j]; $xto = $x; $yfr = $prevy[$j]; $yto = $y[$j];
+ # clip
+ #print LOG "Clip [$j]: ($xfr,$yfr,$xto,$yto,$tfl,$ffl)\n";
+ if(Clip(\$xfr,\$yfr,\$xto,\$yto,\$tfl,\$ffl) != 0) {
+ $c = $curvColor[$j];
+ #print LOG "Draw [$j]: ($xfr,$yfr) to ($xto,$yto)\n";
+ if($curvLines[$j] != 0) {
+ # draw line
+ $id = $w_canvas->createLine($xfr,$yfr,$xto,$yto,-fill => $c);
+ }
+ if($tfl != 0 && $curvSymbs[$j] ne 'none') {
+ # pt visible, symb selected -> draw symbol
+ # (no clipping here ... maybe should)
+ if($curvSymbs[$j] eq 'cross') {
+ $id = $w_canvas->createLine( # why 2/3 you ask? I don't know
+ $xto-2,$yto-2,$xto+3,$yto+3,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto+2,$yto-2,$xto-3,$yto+3,-fill => $c);
+ }
+ elsif($curvSymbs[$j] eq 'plus') {
+ $id = $w_canvas->createLine(
+ $xto-2,$yto,$xto+3,$yto,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto,$yto-2,$xto,$yto+3,-fill => $c);
+ }
+ elsif($curvSymbs[$j] eq 'diamond') {
+ $id = $w_canvas->createLine(
+ $xto-3,$yto,$xto,$yto+3,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto,$yto+3,$xto+3,$yto,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto+3,$yto,$xto,$yto-3,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto,$yto-3,$xto-3,$yto,-fill => $c);
+ }
+ elsif($curvSymbs[$j] eq 'square') {
+ $id = $w_canvas->createLine(
+ $xto-2,$yto-2,$xto-2,$yto+2,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto-2,$yto+2,$xto+2,$yto+2,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto+2,$yto+2,$xto+2,$yto-2,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto+2,$yto-2,$xto-2,$yto-2,-fill => $c);
+ }
+ elsif($curvSymbs[$j] eq 'circle') {
+ $id = $w_canvas->createOval($xto-2,$yto-2,
+ $xto+2,$yto+2,-outline => $c);
+ }
+ elsif($curvSymbs[$j] eq 'del') {
+ $id = $w_canvas->createLine(
+ $xto,$yto+3,$xto+3,$yto-2,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto+3,$yto-2,$xto-2,$yto-2,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto-2,$yto-2,$xto,$yto+3,-fill => $c);
+ }
+ elsif($curvSymbs[$j] eq 'delta') {
+ $id = $w_canvas->createLine(
+ $xto-2,$yto+2,$xto+3,$yto+2,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto+3,$yto+2,$xto,$yto-3,-fill => $c);
+ $id = $w_canvas->createLine(
+ $xto,$yto-3,$xto-2,$yto+2,-fill => $c);
+ }
+ }
+ }
+ }
+ $prevy[$j] = $y[$j];
+ $prevx[$j] = $x;
+ next;
+ }
+ }
+ }
+ close FILE;
+ print LOG " done.\n";
+}
+
+#-------------------------------------------------------------------------------------
+sub Clip {
+ # (M,M) (M+W,M)
+ # (M,M+H) (M+W,M+H)
+ #my $fflag=0; # flag = 1,0 as inside, outside region
+ #my $tflag=0; # 'f' is from, 't' is to
+ my $xf = shift;
+ my $yf = shift;
+ my $xt = shift;
+ my $yt = shift;
+ my $tflag = shift;
+ my $fflag = shift;
+ $$tflag = 0;
+ $$fflag = 0;
+ if($$xt >= $CFG{'Lmargin'} && $$xt <= $CFG{'Lmargin'}+$CFG{'width'}
+ && $$yt >= $CFG{'Tmargin'} && $$yt <= $CFG{'Tmargin'}+$CFG{'height'}) {
+ $$tflag = 1;
+ }
+ if($$xf >= $CFG{'Lmargin'} && $$xf <= $CFG{'Lmargin'}+$CFG{'width'}
+ && $$yf >= $CFG{'Tmargin'} && $$yf <= $CFG{'Tmargin'}+$CFG{'height'}) {
+ $$fflag = 1;
+ }
+ if($$tflag == 1 && $$fflag == 1) { return 1; }
+
+ # Two line segments intersect at (x,y) where
+ # * (x3,y3)
+ # |
+ # |
+ # (x2,y2) * --------+-----------* (x1,y1)
+ # |
+ # |
+ # |
+ # |
+ # * (x4,y4)
+ #
+ # and x = [(x1*y2-x2*y1)*(x3-x4)-(x3*y4-x4*y3)*(x1-x2)]
+ # / [(x1-x2)*(y3-y4)-(x3-x4)*(y1-y2)] ,
+ # y = [(x1*y2-x2*y1)*(y3-y4)-(x3*y4-x4*y3)*(y1-y2)]
+ # / [(x1-x2)*(y3-y4)-(x3-x4)*(y1-y2)]
+ # Note correct reduction when horiz or vert: x=x3 when x3=x4, y=y1 when y1=y2, etc.
+
+ my ($p,$x1,$y1,$x2,$y2); # intersections
+ my $npt=0;
+ $ans = $$yt-$$yf; # y3-y4
+ if($ans != 0) {
+ $dummy = ($$xt*$$yf-$$xf*$$yt)/$ans;
+ $msg = ($$xt-$$xf)/$ans;
+ # intersect top x2=$CFG{'Lmargin'}, x1=$CFG{'Lmargin'}+$CFG{'width'},
+ # y1=y2=$CFG{'Tmargin'}
+ $ans = $CFG{'Tmargin'};
+ $p = int($ans*$msg-$dummy+0.5);
+ if($p > $CFG{'Lmargin'} && $p < $CFG{'Lmargin'}+$CFG{'width'}
+ && ($$yt-$ans)*($$yf-$ans) < 0) {
+ $x1 = $p; $y1 = $CFG{'Tmargin'}; $npt = 1;
+ }
+ # intersect bottom x2=$CFG{'Lmargin'}, x1=$CFG{'Lmargin'}+$CFG{'width'},
+ # y1=y2=$CFG{'Tmargin'}+$CFG{'height'}
+ $ans = $CFG{'Tmargin'}+$CFG{'height'};
+ $p = int($ans*$msg-$dummy+0.5);
+ if($p > $CFG{'Lmargin'} && $p < $CFG{'Lmargin'}+$CFG{'width'}
+ && ($$yt-$ans)*($$yf-$ans) < 0) {
+ if($npt == 0) { $x1 = $p; $y1 = $CFG{'Tmargin'}+$CFG{'height'}; }
+ else { $x2 = $p; $y2 = $CFG{'Tmargin'}+$CFG{'height'}; }
+ $npt++;
+ }
+ }
+ $ans = $$xt-$$xf; # x3-x4
+ if($ans != 0) {
+ $dummy = ($$yt*$$xf-$$yf*$$xt)/$ans;
+ $msg = ($$yt-$$yf)/$ans;
+ # intersect left x3=x4=$CFG{'Lmargin'},s
+ # y3=$CFG{'Tmargin'}, $y4=$CFG{'Tmargin'}+$CFG{'height'}
+ $ans = $CFG{'Lmargin'};
+ $p = int($ans*$msg-$dummy+0.5);
+ if($p > $CFG{'Tmargin'} && $p < $CFG{'Tmargin'}+$CFG{'height'}
+ && ($$xt-$ans)*($$xf-$ans) < 0) {
+ if($npt == 0) { $y1 = $p; $x1 = $CFG{'Lmargin'}; }
+ else { $y2 = $p; $x2 = $CFG{'Lmargin'}; }
+ $npt++;
+ }
+
+ # intersect right x3=x4=$CFG{'Lmargin'}+$CFG{'width'},
+ # y3=$CFG{'Tmargin'}, $y4=$CFG{'Tmargin'}+$CFG{'height'}
+ $ans = $CFG{'Lmargin'}+$CFG{'width'};
+ $p = int($ans*$msg-$dummy+0.5);
+ if($p > $CFG{'Tmargin'} && $p < $CFG{'Tmargin'}+$CFG{'height'}
+ && ($$xt-$ans)*($$xf-$ans) < 0) {
+ if($npt == 0) { $y1 = $p; $x1 = $CFG{'Lmargin'}+$CFG{'width'}; }
+ else { $y2 = $p; $x2 = $CFG{'Lmargin'}+$CFG{'width'}; }
+ $npt++;
+ }
+ }
+
+ if($npt == 0) { return 0; } # no intersections
+
+ if($$tflag == 1 && $$fflag == 0) { # outside to inside
+ $$xf = $x1; $$yf = $y1;
+ }
+ elsif($$tflag == 0 && $$fflag == 1) { # inside to outside
+ $$xt = $x1; $$yt = $y1;
+ }
+ else { # outside to outside
+ if($npt!=2) {
+ print LOG "WARNING: Clip finds outside to outside with"
+ . " $npt intersections\n";
+ return 0;
+ }
+ if((($$xt-$x1)*($$xt-$x1)+($$yt-$y1)*($$yt-$y1)) <
+ (($$xf-$x1)*($$xf-$x1)+($$yf-$y1)*($$yf-$y1))) {
+ $$xt = $x1; $$yt = $y1;
+ $$xf = $x2; $$yf = $y2;
+ }
+ else {
+ $$xt = $x2; $$yt = $y2;
+ $$xf = $x1; $$yf = $y1;
+ }
+ }
+ return 1;
+}
+
+#-------------------------------------------------------------------------------------
+sub CanvConf {
+ my $w = $w_canvas->width;
+ my $h = $w_canvas->height;
+ my $W = $CFG{'Lmargin'}+$CFG{'width'}+$CFG{'Rmargin'};
+ my $H = $CFG{'Tmargin'}+$CFG{'height'}+$CFG{'Bmargin'};
+ if($w != $CFG{'Lmargin'}+$CFG{'width'}+$CFG{'Rmargin'} ||
+ $h != $CFG{'Tmargin'}+$CFG{'height'}+$CFG{'Bmargin'}) {
+ $CFG{'width'} = $w - $CFG{'Lmargin'} - $CFG{'Rmargin'};
+ $CFG{'height'} = $h - $CFG{'Tmargin'} - $CFG{'Bmargin'};
+ Rates();
+ if($firstcanvas == 1) {
+ Status("Plot reconfigured to $CFG{'width'} x $CFG{'height'} ...Refresh?");
+ }
+ $firstcanvas = 1;
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub PopNotice {
+ my ($dummy1, $dummy2) = @_;
+ #$ans = $w_top->messageBox(
+ #-title => $dummy1,
+ #-message => $dummy2 . " ",
+ #-type => 'OK',
+ #-icon => 'info',
+ ##no popover for messageBox
+ #);
+ my $PNdb = $w_top->DialogBox(
+ -title => $dummy1,
+ -buttons => ['Ok'],
+ -popover => $w_top,
+ -overanchor => 'c',
+ -popanchor => 'c',
+ );
+ $PNdb->add('Label', -text => $dummy2, -justify => 'left')->pack;
+ $PNdb->Show();
+}
+
+#-------------------------------------------------------------------------------------
+sub Status {
+ ($dummy) = (@_);
+ $statusbar->delete('0.0','end');
+ $statusbar->insert('0.0',$dummy);
+ $w_top->update;
+}
+
+#-------------------------------------------------------------------------------------
+sub WaitCursor {
+ $w_canvas->configure(-cursor => $waitcursor);
+ $w_top->update;
+}
+
+#-------------------------------------------------------------------------------------
+sub NormalCursor {
+ $w_canvas->configure(-cursor => $cursor);
+ $w_top->update;
+}
+
+#-------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------
+sub mouse_events {
+ # do not enter this routine unless screen is up and scale has been defined
+ if($MainUp == 0 || $ScaleDefined == 0) { return; }
+
+ my ($canv, $x, $y, $mousemsg) = @_;
+
+ if($mousemsg eq "motion") {
+ if($MAKE_RECT) {
+ # first erase the old one
+ $canv->delete($MOUSE_RECT);
+
+ # where is the corner now?
+ $RECT_X1 = $canv->canvasx($x);
+ $RECT_Y1 = $canv->canvasy($y);
+
+ # draw a new foreground-color rectangle
+ $MOUSE_RECT = $canv->createRectangle(
+ $RECT_X0,$RECT_Y0, $RECT_X1,$RECT_Y1,
+ -outline => $MCOLOR );
+ }
+ }
+ else {
+ #print LOG "mouse$msg: (x,y) = ", $canv->canvasx($x), ", ", $canv->canvasy($y),
+ # " (datax,datay) = ", scr2Xdata($canv->canvasx($x)), " , ",
+ # scr2Ydata($canv->canvasy($y)),
+ # "\n";
+ if($mousemsg eq "push left") {
+ $RECT_X0 = $canv->canvasx($x);
+ $RECT_Y0 = $canv->canvasy($y);
+ #print LOG "push: RECT_X0 $RECT_X0, RECT_Y0 $RECT_Y0\n";
+ $MAKE_RECT = 1;
+ }
+ if($mousemsg eq "rel left") {
+ $RECT_X1 = $canv->canvasx($x);
+ $RECT_Y1 = $canv->canvasy($y);
+ #print LOG "rele: RECT_X1 $RECT_X1, RECT_Y1 $RECT_Y1\n";
+ #print LOG "just checking: (x,y) = ", $RECT_X1, ", ", $RECT_Y1,
+ # " (datax,datay) = ", scr2Xdata($RECT_X1), " , ", scr2Ydata($RECT_Y1),
+ # "\n";
+ Status("(x,y) = screen("
+ . $RECT_X1 . ","
+ . $RECT_Y1 . ") = data("
+ . sprintf("%10.3f",scr2Xdata($RECT_X1)) . ","
+ . sprintf("%.3f",scr2Ydata($RECT_Y1)) . ")");
+ $canv->delete($MOUSE_RECT);
+ $MAKE_RECT = 0;
+
+ # ignore zero-area rectangles
+ if(($RECT_X0 == $RECT_X1) || ($RECT_Y0 == $RECT_Y1)) {
+ return;
+ }
+
+ $MOUSE_RECT = $canv->createRectangle(
+ $RECT_X0,$RECT_Y0, $RECT_X1,$RECT_Y1,
+ -outline => $MCOLOR );
+
+ # put up a dialog asking what to do with the rectangle
+ my $db = $w_top->DialogBox(
+ -title => 'Mouse Rectangle',
+ -buttons => ['Zoom', 'Cancel'],
+ -default_button => 'Zoom',
+ -popover => 'cursor', -overanchor => 'c', -popanchor => 'nw',
+ );
+ $db->add('Label', -text => "Zoom: are you sure? ")->pack;
+ $ans = $db->Show();
+ if($ans eq "Zoom") {
+ #print LOG "You said to zoom to mouse rectangle\n";
+ #$canv->move($MOUSE_RECT, 100, 100);
+ ($YMin, $YMax, $XMin, $XMax) =
+ (scr2Ydata($RECT_Y1), scr2Ydata($RECT_Y0),
+ scr2Xdata($RECT_X0), scr2Xdata($RECT_X1) );
+ if($YMin > $YMax) {
+ $ans = $YMax;
+ $YMax = $YMin;
+ $YMin = $ans;
+ }
+ if($XMin > $XMax) {
+ $ans = $XMax;
+ $XMax = $XMin;
+ $XMin = $ans;
+ }
+ # NewScale requires $XMin,$XMax,$YMin,$YMax as input
+ NewScale('fixed','Mouse zoom');
+ Refresh();
+ }
+ if($ans eq "Cancel") {
+ #print LOG "You said to cancel mouse rectangle\n";
+ $canv->delete($MOUSE_RECT);
+ Status('');
+ }
+ }
+ }
+}
+
+#-------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------
+# string CmdText defines configuration constants and options on command line,
+# with their default values. See documentation of CmdText and sub CommandLine.
+sub Defaults {
+ # parse CmdText
+ my @lines = split('\n',$CmdText);
+ foreach (@lines) {
+ last if(m/Example:/);
+ next if(m/^#/);
+ if(m/(can repeat)/) { $dummy='grow'; } else { $dummy=''; }
+ s/--(\S+)\s.*\((.*)\)$/$1 = $2/;
+ s/^\s+//;
+ s/\s+$//;
+ ($key, $val) = split(/ = /,$_,2);
+ if($val eq '') { $key =~ s/ =$//; }
+ #print "Line:",$_,"\n";
+ #print "key |$key| value |$val|\n";
+ #AddDefault($key,$val,$dummy);
+ $Options{$key} = 1; # this says 'key' is a valid option
+ if($dummy eq 'grow') {
+ $Grow{$key} = 1; # this says 'key' belongs to OPT, not CFG
+ if($val ne '') { push(@{$OPT{$key}}, $val); } # OPT -- 1 to many
+ }
+ else {
+ if($val ne '') { $CFG{$key} = $val; } # CFG -- 1 to 1
+ }
+ }
+ # TD this should belong to CFG also
+ $ConfigFile = 'rp.cfg';
+}
+
+#-------------------------------------------------------------------------------------
+# command line arguments -- see CmdText above for doc.
+# process the command line, converting command line into key/val pairs,
+# where --key=val --key val --key (val='on')
+# don't allow -key because this makes val = (negative number) impossible
+sub CommandLine {
+ if($#ARGV == 0 && $ARGV[0] eq '--help') {
+ print $CmdText,"\n";
+ exit;
+ }
+ $LimitsSet = 0; # notice if limits are set
+ $key = '';
+ $val = '';
+ while($#ARGV >= 0) {
+ $dummy = shift @ARGV;
+ if(substr($dummy,0,2) eq "--") { # '--' => its key or key=value
+ $dummy = substr($dummy,2,length($dummy)-2); # remove --
+ if($key ne '' && $val eq 'on') { # was prev arg a key alone?
+ AddToConfig($key,$val);
+ $key = '';
+ $val = '';
+ }
+ if($dummy =~ '=') { # is there an '='?
+ ($key, $val) = split(/=/,$dummy,2);
+ AddToConfig($key,$val);
+ $key = '';
+ $val = '';
+ }
+ else { # no =; val is 'on' for now
+ $key = $dummy;
+ $val = 'on';
+ }
+ }
+ else { # no '--' => its val or an error
+ if($key ne '' && $val eq 'on') { # prev arg was --key
+ $val = $dummy;
+ AddToConfig($key,$val);
+ $key = '';
+ $val = '';
+ }
+ else { # isolated and no '--' => err
+ print "Unrecognized argument: $dummy\n";
+ }
+ }
+ }
+ # the last arg
+ if($key ne '' && $val eq 'on') { AddToConfig($key,$val); }
+}
+
+#-------------------------------------------------------------------------------------
+sub AddToConfig {
+ my ($k,$v) = @_;
+ if($Options{$k} == 1) {
+ if($Grow{$k} == 1) {
+ push(@{$OPT{$k}}, split(/\s+/,$v));
+ }
+ else {
+ if($k eq 'prgmdir') {
+ $v =~ s/\//$SLASH/g;
+ $v =~ s/\\/$SLASH/g;
+ }
+ # save it
+ $CFG{$k} = $v;
+ # set flags here -- any option set by the user will pass here
+ if($k eq 'XMin' or $k eq 'XMax' or $k eq 'YMin' or $k eq 'YMax') {
+ $LimitsSet = 1;
+ }
+ if(($k eq 'Blabel' && $v ne 'GPS Seconds of Week') or
+ ($k eq 'Tlabel' && $v ne 'Title') or
+ $k eq 'Rlabel' or
+ $k eq 'Llabel') {
+ $UsingDefaults = 0;
+ }
+ }
+
+ # open file and read as config; do here so later cmds may override
+ if($k eq 'load') {
+ my @c = @{$OPT{'load'}};
+ while($#c >= 0) {
+ $i = shift @c;
+ last unless($i ne '');
+ delete(@{$OPT{'load'}}[0]);
+ LoadConfig($i);
+ }
+ }
+
+ return 'ok';
+ }
+ else {
+ print "Invalid configuration option: $k\n";
+ return 'fail';
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub LoadConfig {
+ ($filename) = @_;
+ if($CFG{'verbose'}) {
+ if($LogOpen) {
+ print LOG "Attempt to open and read configuration file $filename\n";
+ }
+ else {
+ print "Attempt to open and read configuration file $filename\n";
+ }
+ }
+
+ $dummy = 0; # dummy will count the number of read errors
+ $LimitsSet = 0;
+ if(open(CONFIG, "$filename")) {
+ while (<CONFIG>) {
+ if($dummy > 20) {
+ close CONFIG;
+ if($LogOpen) {
+ print LOG "\nAbort - Too many read errors loading configuration\n";
+ print LOG " File \"$filename\" may not be a configuration file.\n";
+ }
+ else {
+ print "\nAbort - Too many read errors loading configuration\n";
+ print " File \"$filename\" may not be a configuration file.\n";
+ }
+ if($MainUp) {
+ PopNotice("Error loading file",
+ "Abort - Too many read errors while loading a\n" .
+ "configuration file. This may not be a configuration file:\n" .
+ " $filename");
+ }
+ return 'fail';
+ }
+ chomp; # no newline
+ s/^\s+//; # no leading whitespace
+ s/#.*//; # no comments
+ s/\s+$//; # no trailing whitespace
+ s/^--//; # no leading --
+ next unless length; # anything left?
+ unless(m/=/) { # ignore if no =
+ print "Warning: configuration option has no '=' : $_\n";
+ $dummy++;
+ next;
+ }
+ ($key, $val) = split(/\s*=\s*/, $_, 2);
+ # nested conf files do not work
+ if($key eq 'load') {
+ print "Warning: nested --load <file> do not work\n";
+ next;
+ }
+ if($val =~ m/^"/ && $val =~ m/"$/) {
+ # remove quotes around values with whitespace
+ $val =~ s/^"//;
+ $val =~ s/"$//;
+ $ans = AddToConfig($key,$val);
+ }
+ else {
+ $ans = AddToConfig($key,$val);
+ }
+ if($ans eq 'fail') { $dummy++; }
+ }
+ close CONFIG;
+
+ $ConfigFile = $filename;
+ return 'ok';
+ }
+ else {
+ # don't put a popup here b/c top level window may not exist yet.
+ if($LogOpen) {
+ print LOG "Error: Could not open configuration file $filename\n";
+ }
+ else {
+ print "Error: Could not open configuration file $filename\n";
+ }
+ #$ConfigFile = '';
+ return 'fail';
+ }
+}
+
+#-------------------------------------------------------------------------------------
+sub SaveConfig {
+ my ($file)=@_;
+ if($file eq '') { return 'ok'; }
+ print LOG "Save the configuration to the file $file\n";
+
+ my $cmd = ConfigString('config');
+
+ if(open(CONFIG, ">$file")) {
+ print CONFIG $cmd;
+ close CONFIG;
+ return 'ok';
+ }
+ else {
+ return 'fail';
+ }
+}
+
+#-------------------------------------------------------------------------------------
+# process the config, used for command line processing and after config file loaded.
+sub ProcessConfig {
+ if($CFG{'log'} ne '' && $CFG{'log'} ne 'SCREEN') {
+ open LOG, ">$CFG{'log'}" or die "Could not open log file $CFG{'log'}\n";
+ autoflush LOG;
+ $LogOpen = 1;
+ if($CFG{'verbose'}) {
+ print "RP Output directed to log file $CFG{'log'}\n";
+ print LOG "Log file for RinexPlot\n";
+ }
+ }
+ else { open(LOG,">-") or die "Could not re-open STDOUT\n"; }
+
+ if($CFG{'Rinex'} ne '') {
+ DataInputProcess($CFG{'Rinex'});
+
+ my %index;
+ my (@AOs, at Sats, at Obs)=((),(),());
+ if(defined(@{$OPT{'AO'}})) { @AOs = @{$OPT{'AO'}}; }
+ if(defined(@{$OPT{'sat'}})) { @Sats = @{$OPT{'sat'}}; }
+ if(defined(@{$OPT{'obs'}})) { @Obs = @{$OPT{'obs'}}; }
+
+ if($#AOs >= 0) {
+ %index=();
+ $j=0;
+ foreach $i (@ExtOT) {
+ unless($index{$i}) {
+ $index{$i}=$j;
+ $j++;
+ }
+ }
+ $dummy = 0;
+ foreach $i (@AOs) {
+ $j = $index{$i};
+ if($dummy == 0) { print LOG "Selected new obs types"; $dummy=1; }
+ print LOG " $i";
+ $ExtSelect[$j] = 1;
+ }
+ if($dummy==1) { print LOG "\n"; }
+ if($CFG{'create'} eq 'on') { CompCrea(); }
+ }
+ if($#Sats >= 0) {
+ %index=();
+ $j=0;
+ foreach $i (@svlist) {
+ unless($index{$i}) {
+ $index{$i}=$j;
+ $j++;
+ }
+ }
+ $dummy = 0;
+ foreach $i (@Sats) {
+ $j = $index{$i};
+ if($j eq '') {
+ if($dummy==1) { print LOG "\n"; }
+ print LOG "Error: satellite $i is not found in file!\n";
+ print LOG " Satellites in file are: @svlist\n";
+ }
+ else {
+ if($dummy == 0) { print LOG "Selected Sats:"; $dummy=1; }
+ print LOG " $i";
+ $svselect[$j] = 1;
+ }
+ }
+ if($dummy==1) { print LOG "\n"; }
+ }
+ if($#Obs >= 0) {
+ %index=();
+ $j=0;
+ foreach $i (@obslist) {
+ unless($index{$i}) {
+ $index{$i}=$j;
+ $j++;
+ }
+ }
+ $dummy = 0;
+ foreach $i (@Obs) {
+ $j = $index{$i};
+ if($j eq '') {
+ if($dummy==1) { print LOG "\n"; }
+ print LOG "Error: obs type $i is not found in file!\n";
+ print LOG " Obs types in file are: @obslist\n";
+ }
+ else {
+ if($dummy == 0) { print LOG "Selected Obs:"; $dummy=1; }
+ print LOG " $i";
+ $obsselect[$j] = 1;
+ }
+ }
+ if($dummy==1) { print LOG "\n"; }
+ }
+ if($CFG{'refresh'} eq 'on' && $#Obs >= 0 && $#Sats >= 0) {
+ # NewScale requires $XMin,$XMax,$YMin,$YMax as input
+ ($XMin,$XMax,$YMin,$YMax)
+ = ($CFG{'XMin'},$CFG{'XMax'},$CFG{'YMin'},$CFG{'YMax'});
+ NewScale('fixed','Command line');
+ if($LimitsSet == 1) {
+ $FirstAutoscale = 0;
+ $LimitsSet = 0;
+ }
+ else { $FirstAutoscale = 1; }
+ $Reconfigure = 1;
+ ConfigureCurves();
+ Refresh();
+ }
+ }
+ if($CFG{'help'} eq 'on') { HelpTopi(); }
+
+ $LimitsSet = 0;
+ # delete these, as they are used only for cmdline and config file input
+ delete($OPT{'load'});
+ delete($OPT{'AO'});
+ delete($CFG{'create'});
+ delete($OPT{'sat'});
+ delete($OPT{'obs'});
+ delete($CFG{'refresh'});
+ delete($CFG{'help'});
+}
+
+#-------------------------------------------------------------------------------------
+#-------------------------------------------------------------------------------------
+# Create the menubar and everything under it.
+sub create_menu {
+ [
+ [ 'cascade', '~File', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', '~Load File ...', -accelerator => 'Ctrl-L',
+ -command => \&FileLoad ],
+ ['command', '~Save File', -accelerator => 'Ctrl-S', -command => \&FileSave ],
+ ['command', 'Save ~As ...', -command => \&FileSaAs ],
+ ['command', '~Output as command ...', -command => \&OutputCommand ],
+ '',
+ ['command', '~Rinex Obs File ...', -command => \&FileInpu ],
+ '',
+ ['command', 'View ~Data Summary ...', -command => \&FileSumm ],
+ ['command', '~View Selections ...', -command => \&FileSele ],
+ ['command', '~Clear all selections', -command => \&FileClea ],
+ '',
+ ['command', '~Exit', -accelerator => 'Ctrl-Q', -command => \&FileExit ],
+ ],
+ ],
+
+ [ 'cascade', '~Compute', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', 'New ~Data types...', -command => \&CompObst ],
+ ['command', '~Nav File...', -command => \&CompNavf ],
+ ['cascade', '~Rx Position', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', '~Select Rx...', -command => \&CompPosnSele ],
+ ['command', '~RAIM Solution', -command => \&CompPosnRAIM ],
+ ],
+ ],
+ ['command', 'Con~figure...', -command => \&CompConf ],
+ '',
+ ['command', '~Create new data', -command => \&CompCrea ],
+ ],
+ ],
+
+ [ 'cascade', '~DataSet', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', '~Satellites', -command => \&DataSats ],
+ ['command', '~Obs types', -command => \&DataObst ],
+ ['command', '~Times', -command => \&DataTime ],
+ ['command', '~Configure', -command => \&DataConf ],
+ ],
+ ],
+
+ [ 'cascade', '~Graph', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', '~AutoScale', -accelerator => ' Ctrl-A',
+ -command => \&AutoScale ],
+ ['command', '~Limits', -command => \&GrapLims ],
+ ['command', '~Axes', -command => \&GrapAxes ],
+ ['command', 'La~bels', -command => \&GrapLabe ],
+ ['command', '~Curves', -command => \&GrapCurv ],
+ ['command', 'Zoom ~In', '-accelerator', ' Ctrl-I',
+ -command => [ \&GrapZoom, 'dummy', 'In' ] ],
+ ['command', 'Zoom ~Out', '-accelerator', ' Ctrl-O',
+ -command => [ \&GrapZoom, 'dummy', 'Out' ] ],
+ ['command', '~UnZoom', '-accelerator', ' Ctrl-U',
+ -command => \&GrapUnzo ],
+ '',
+ ['command', '~Gnuplot', -command => \&GrapGnup ],
+ ],
+ ],
+
+ # this makes Refresh just a button - no menu under it
+ [ 'command', '~Refresh', -command => \&Refresh ],
+
+ [ 'cascade', '~Settings', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', '~Preferences', -command => \&SettPref ],
+ ['command', '~Set Cursor', -command => \&SettCurs ],
+ ],
+ ],
+
+ [ 'cascade', '~Help', -tearoff => $menutear, -menuitems =>
+ [
+ ['command', '~Topics', -command => \&HelpTopi ],
+ ['command', '~About', -command => \&HelpAbou ],
+ ],
+ ],
+
+ ];
+} # end sub create_menu
+
+#-------------------------------------------------------------------------------------
+# initialize: create menu system and define bindings
+sub init {
+ create_screen();
+
+ # key bindings
+ $w_top->bind("<Control-Key-l>", \&FileLoad);
+ $w_top->bind("<Control-Key-s>", \&FileSave);
+ $w_top->bind("<Control-Key-a>", \&AutoScale);
+ $w_top->bind("<Control-Key-q>", \&FileExit);
+ $w_top->bind("<Control-Key-i>", [ \&GrapZoom, "In"] );
+ $w_top->bind("<Control-Key-o>", [ \&GrapZoom, "Out"] );
+ $w_top->bind("<Control-Key-u>", \&GrapUnzo);
+ $w_top->bind("<Control-Key-r>", \&Refresh);
+
+ # mouse bindings
+ $w_canvas->CanvasBind("<ButtonPress-1>",
+ [ \&mouse_events, Ev('x'), Ev('y'), "push left" ]);
+ $w_canvas->CanvasBind("<ButtonPress-3>",
+ [ \&mouse_events, Ev('x'), Ev('y'), "push right" ]);
+ $w_canvas->CanvasBind("<ButtonRelease-1>",
+ [ \&mouse_events, Ev('x'), Ev('y'), "rel left" ]);
+ $w_canvas->CanvasBind("<ButtonRelease-3>",
+ [ \&mouse_events, Ev('x'), Ev('y'), "rel right" ]);
+ $w_canvas->CanvasBind("<Motion>",
+ [ \&mouse_events, Ev('x'), Ev('y'), "motion" ]);
+
+ # window resizing
+ $w_canvas->CanvasBind("<Configure>", \&CanvConf);
+
+ # fonts
+ $w_top->fontCreate(qw/C_small -family courier -size 10/);
+ $w_top->fontCreate(qw/C_big -family courier -size 14 -weight bold/);
+ $w_top->fontCreate(qw/C_vbig -family helvetica -size 24 -weight bold/);
+ $w_top->fontCreate(qw/C_bold -family courier -size 12 -weight bold -slant italic/);
+
+ $MainUp = 1;
+}
+
+#-------------------------------------------------------------------------------------
+sub create_screen {
+ $w_top = MainWindow->new(-title =>'Rinex Plot');
+
+ # menus
+ $w_top->configure(-menu => $menubar = $w_top->Menu(-menuitems => create_menu));
+
+ # status bar - putting statusbar before canvas means when resizing window,
+ # canvas shrinks but status bar stays
+ $statusbar = $w_top->ROText(
+ -height => 1,
+ -relief => 'flat',
+ -background => '#a0b7ce',
+ -foreground => 'white',
+ -borderwidth => 2
+ )->pack(
+ -expand => '0',
+ -fill => 'both',
+ -side => 'bottom',
+ -anchor => 'w');
+ $statusbar->insert('0.0', 'Welcome to Rinex Plot');
+
+ # canvas
+ $w_canvas = $w_top->Canvas(
+ '-width' => $CFG{'width'}+$CFG{'Lmargin'}+$CFG{'Rmargin'},
+ '-height' => $CFG{'height'}+$CFG{'Tmargin'}+$CFG{'Bmargin'},
+ '-border' => 1,
+ # this has no effect ... '-relief' => 'solid',
+ '-background' => $BCOLOR,
+ '-cursor' => $cursor);
+ $w_canvas->pack(-expand => '1', -anchor => 'nw', -fill => 'both');
+
+ # need update here to prevent a <Configure> event that calls CanvConf at odd time
+ $w_top->update;
+}
+
+#-------------------------------------------------------------------------------------
+# execution begins here
+#-------------------------------------------------------------------------------------
+# define default CFG values
+Defaults();
+
+# process command line arguments
+CommandLine();
+
+# create menu and screen and define bindings
+init();
+
+# process any command line input
+ProcessConfig();
+
+# make sure utilities are available
+my($ResCor,$RinSum,$RinexDump)=('ResCor','RinSum','RinexDump');
+if ($^O eq "MSWin32") {
+ $ResCor='ResCor.exe';
+ $RinSum='RinSum.exe';
+ $RinexDump='RinexDump.exe';
+}
+if(not -e $CFG{'prgmdir'} . $SLASH . $RinSum
+ || not -e $CFG{'prgmdir'} . $SLASH . $ResCor
+ || not -e $CFG{'prgmdir'} . $SLASH . $RinexDump) {
+ PopNotice("Error: GPSTk not found",
+ "Error: GPSTk utilities are not found in directory $CFG{'prgmdir'}.\n"
+ . "Go to Settings/Preferences to change this");
+}
+
+MainLoop();
+#-------------------------------------------------------------------------------------
diff --git a/trunk/apps/RinexPlot/alic0320.04o b/dev/apps/RinexPlot/alic0320.04o
similarity index 100%
rename from trunk/apps/RinexPlot/alic0320.04o
rename to dev/apps/RinexPlot/alic0320.04o
diff --git a/trunk/apps/RinexPlot/goRP b/dev/apps/RinexPlot/goRP
similarity index 100%
rename from trunk/apps/RinexPlot/goRP
rename to dev/apps/RinexPlot/goRP
diff --git a/trunk/apps/RinexPlot/goRP.bat b/dev/apps/RinexPlot/goRP.bat
similarity index 100%
rename from trunk/apps/RinexPlot/goRP.bat
rename to dev/apps/RinexPlot/goRP.bat
diff --git a/trunk/apps/RinexPlot/goRP1 b/dev/apps/RinexPlot/goRP1
similarity index 100%
rename from trunk/apps/RinexPlot/goRP1
rename to dev/apps/RinexPlot/goRP1
diff --git a/trunk/apps/RinexPlot/goRP1.bat b/dev/apps/RinexPlot/goRP1.bat
similarity index 100%
rename from trunk/apps/RinexPlot/goRP1.bat
rename to dev/apps/RinexPlot/goRP1.bat
diff --git a/trunk/apps/RinexPlot/positions.txt b/dev/apps/RinexPlot/positions.txt
similarity index 100%
rename from trunk/apps/RinexPlot/positions.txt
rename to dev/apps/RinexPlot/positions.txt
diff --git a/dev/apps/Rinextools/EditRinex.cpp b/dev/apps/Rinextools/EditRinex.cpp
new file mode 100644
index 0000000..3f38b57
--- /dev/null
+++ b/dev/apps/Rinextools/EditRinex.cpp
@@ -0,0 +1,371 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file EditRinex.cpp
+ * Edit a Rinex observation file using the RinexEditor in gpstk.
+ */
+
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "DayTime.hpp"
+#include "CommandOptionParser.hpp"
+#include "CommandOption.hpp"
+#include "RinexUtilities.hpp"
+#include "StringUtils.hpp"
+
+#include "RinexEditor.hpp"
+
+#include <string>
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <time.h>
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// NB Version for this prgm is just the RinexEditor version.
+
+//------------------------------------------------------------------------------------
+// data input from command line
+string LogFile("EditRinex.log");
+bool Verbose=false,Debug=false;
+string Title;
+// timer
+clock_t totaltime;
+// log file
+ofstream oflog;
+
+//------------------------------------------------------------------------------------
+// prototypes
+int GetCommandLine(int argc, char **argv, RinexEditor& re) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ totaltime = clock();
+
+ int iret;
+ DayTime last;
+ // NB. Do not instantiate editor outside main(), b/c DayTime::END_OF_TIME is a
+ // static const that can produce static intialization order problems under some OS.
+ RinexEditor REC;
+
+ // Title and description
+ Title = string("EditRinex, part of the GPS ToolKit, Ver ")
+ + REC.getRinexEditVersion() + string(", Run ");
+ time_t timer;
+ struct tm *tblock;
+
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ last.setYMDHMS(1900+tblock->tm_year,1+tblock->tm_mon,
+ tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
+ Title += last.printf("%04Y/%02m/%02d %02H:%02M:%02S\n");
+ cout << Title;
+
+ // define extended types
+ iret = RegisterARLUTExtendedTypes();
+ if(iret) goto quit;
+
+ // get command line
+ iret=GetCommandLine(argc, argv, REC);
+ if(iret) goto quit;
+
+ iret=REC.EditFile();
+ if(iret) goto quit;
+
+ quit:
+ // compute run time
+ totaltime = clock()-totaltime;
+ oflog << "EditRinex timing: " << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+
+ return iret;
+}
+catch(gpstk::FFStreamError& e) { cerr << e; }
+catch(gpstk::Exception& e) { cerr << e; }
+catch(exception& e) { cerr << e.what(); }
+catch (...) { cerr << "Unknown error. Abort." << endl; }
+ return 1;
+} // end main()
+
+//------------------------------------------------------------------------------------
+int GetCommandLine(int argc, char **argv, RinexEditor& REC) throw(Exception)
+{
+ bool help=false;
+ int i,j,iret=0;
+ vector<string> values; // to get values found on command line
+
+try {
+ // required options
+
+ // optional options
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," [-f|--file] <file> file containing more options");
+
+ CommandOption dashl(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"log"," [-l|--log] <file> Output log file name");
+ dashl.setMaxCount(1);
+
+ CommandOptionNoArg dashh('h', "help",
+ " [-h|--help] print syntax and quit.");
+
+ CommandOptionNoArg dashd('d', "debug",
+ " [-d|--debug] print extended output info.");
+
+ CommandOptionNoArg dashv('v', "verbose",
+ " [-v|--verbose] print extended output info."
+ "\n [<REC>] Rinex editing commands - cf. following");
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par(
+ " Prgm EditRinex will open and read one RINEX file, apply editing commands,\n"
+ " and write the modified RINEX data to another RINEX file(s).\n"
+ " Input is on the command line, or of the same format in a file (-f<file>).\n");
+
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0 || dashh.getCount())
+ help = true;
+
+ // open the log file first
+ oflog.open(LogFile.c_str(),ios_base::out);
+ if(!oflog) {
+ cerr << "Failed to open log file " << LogFile << endl;
+ return -1;
+ }
+ cout << "EditRinex output directed to log file " << LogFile << endl;
+ REC.oflog = &oflog;
+ oflog << Title;
+
+ //if(Debug) {
+ //cout << "List passed to REditCommandLine:\n";
+ //for(i=0; i<Args.size(); i++) cout << i << " " << Args[i] << endl;
+ // strip out the REditCmds
+ //}
+
+ // set up editor and pull out (delete) editing commands
+ REC.REVerbose = Verbose;
+ REC.REDebug = Debug;
+ REC.AddCommandLine(Args);
+
+ //if(Debug) {
+ //deque<REditCmd>::iterator jt=REC.Cmds.begin();
+ //cout << "\nHere is the list of RE cmds\n";
+ //while(jt != REC.Cmds.end()) { jt->Dump(cout,string("")); ++jt; }
+ //cout << "End of list of RE cmds" << endl;
+ //}
+
+ // preprocess the commands
+ iret = REC.ParseCommands();
+ if(iret) {
+ cerr << "EditRinex Error: no " << (iret==-1 ? "input" : "output")
+ << " file specified\n";
+ oflog << "EditRinex Error: no " << (iret==-1 ? "input" : "output")
+ << " file specified\n";
+ }
+ //if(Debug) {
+ //cout << "\nHere is the parsed list of RE cmds\n";
+ //it=REC.Cmds.begin();
+ //while(it != REC.Cmds.end()) { it->Dump(cout,string("")); ++it; }
+ //cout << "End of sorted list of RE cmds" << endl;
+ //}
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ //if(Debug) {
+ //cout << "List passed to parse\n";
+ //for(i=0; i<argc; i++) cout << i << " " << CArgs[i] << endl;
+ //}
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ if(iret != 0 || dashh.getCount() > 0) { // iret from ParseCommands
+ if(help) {
+ Par.displayUsage(cout,false);
+ cout << endl;
+ DisplayRinexEditUsage(cout);
+ }
+ else {
+ Par.displayUsage(oflog,false);
+ oflog << endl;
+ DisplayRinexEditUsage(oflog);
+ }
+ help = true; //return 1;
+ }
+
+ if (Par.hasErrors())
+ {
+ cerr << "\nErrors found in command line input:\n";
+ oflog << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cerr);
+ Par.dumpErrors(oflog);
+ cerr << "...end of Errors\n\n";
+ oflog << "...end of Errors\n\n";
+ help = true;
+ }
+
+ // f never appears because we intercept it in PreProcessArgs
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+ // get log file name - pull out in PreProcessArgs
+ //if(dashl.getCount()) {
+ // values = dashl.getValue();
+ // LogFile = values[0];
+ // if(help) cout << "Output log file is: " << LogFile << endl;
+ //}
+
+ //if(dashh.getCount() && help)
+ // oflog << "Option h appears " << dashh.getCount() << " times\n";
+ if(dashv.getCount() && help) {
+ Verbose = true;
+ //if(help) oflog << "Option v appears " << dashv.getCount() << " times\n";
+ }
+ if(dashd.getCount() && help) {
+ Debug = true;
+ //if(help) oflog << "Option d appears " << dashd.getCount() << " times\n";
+ }
+
+ if(Rest.getCount() && help) {
+ oflog << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) oflog << values[i] << endl;
+ }
+ if(Verbose && help) {
+ oflog << "\nTokens on command line (" << Args.size() << ") are:" << endl;
+ for(j=0; j<Args.size(); j++) oflog << Args[j] << endl;
+ }
+ if(help) return 1;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+// Pull out --debug --verbose -f<f> and --file <f> and -l<f> --log <f> options.
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+ static bool found_log_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ if(Debug) cout << "Found a file of options: " << filename << endl;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ bool again_log_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(again_log_file) {
+ word = "-l" + word;
+ again_log_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer.clear();
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word == "--log" || word == "-l")
+ again_log_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if(found_log_file || (arg[0]=='-' && arg[1]=='l')) {
+ LogFile = string(arg);
+ if(!found_log_file) LogFile.erase(0,2); else found_log_file = false;
+ }
+ else if((arg[0]=='-' && arg[1]=='d') || string(arg)==string("--debug"))
+ Debug = true;
+ else if((arg[0]=='-' && arg[1]=='v') || string(arg)==string("--verbose"))
+ Verbose = true;
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ else if(string(arg) == "--log")
+ found_log_file = true;
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/Rinextools/Jamfile b/dev/apps/Rinextools/Jamfile
new file mode 100644
index 0000000..19144cd
--- /dev/null
+++ b/dev/apps/Rinextools/Jamfile
@@ -0,0 +1,13 @@
+#
+# $Id$
+#
+
+SubDir TOP apps Rinextools ;
+
+GPSLinkLibraries NavMerge RinexDump ResCor EditRinex RinSum : gpstk ;
+
+GPSMain NavMerge : NavMerge.cpp ;
+GPSMain RinexDump : RinexDump.cpp ;
+GPSMain RinSum : RinSum.cpp ;
+GPSMain EditRinex : EditRinex.cpp RinexEditor.cpp ;
+GPSMain ResCor : ResCor.cpp RinexEditor.cpp ;
diff --git a/dev/apps/Rinextools/Makefile.am b/dev/apps/Rinextools/Makefile.am
new file mode 100644
index 0000000..564aa4f
--- /dev/null
+++ b/dev/apps/Rinextools/Makefile.am
@@ -0,0 +1,14 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ./libtoolslib.la ../../src/libgpstk.la
+
+lib_LTLIBRARIES = libtoolslib.la
+libtoolslib_la_SOURCES = RinexEditor.cpp
+
+bin_PROGRAMS = NavMerge RinexDump ResCor EditRinex RinSum
+
+NavMerge_SOURCES = NavMerge.cpp
+RinexDump_SOURCES = RinexDump.cpp
+RinSum_SOURCES = RinSum.cpp
+EditRinex_SOURCES = EditRinex.cpp
+ResCor_SOURCES = ResCor.cpp
diff --git a/dev/apps/Rinextools/NavMerge.cpp b/dev/apps/Rinextools/NavMerge.cpp
new file mode 100755
index 0000000..c8e8c4d
--- /dev/null
+++ b/dev/apps/Rinextools/NavMerge.cpp
@@ -0,0 +1,276 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file NavMerge.cpp
+ * Read, summarize and optionally merge, Rinex navigation files.
+ * NavMerge will merge any number of Rinex nav files into a unique superset,
+ * and either write them out to a new Rinex file (if an output file is given),
+ * or write a summary of the data to the screen. NavMerge also finds
+ * and fixes full week number when it is inconsistent with epoch.
+ */
+
+//------------------------------------------------------------------------------------
+#include <string>
+#include <vector>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavStream.hpp"
+#include "BCEphemerisStore.hpp"
+
+//------------------------------------------------------------------------------------
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+void BadArg(string& arg) { cout << "Error: nothing follows option " << arg << endl; }
+
+//------------------------------------------------------------------------------------
+// Returns 0 when successful.
+int main(int argc, char *argv[])
+{
+ if (argc<2)
+ {
+ cout <<
+"Usage: NavMerge [options] <RINEX nav file name(s)>\n"
+" Options are:\n"
+" [-o|--out] <file> Output RINEX navigation file name. If omitted, a data summary is displayed.\n"
+" [-tb|--begTime] <tb> Output data only if epoch is within 4 hours of the interval (tb,te).\n"
+" [-te|--endTime] <te> If one of (te,tb) is omitted, they are made equal.\n"
+" Times are either 'year,mon,day,hr,min,sec' or 'GPSweek,secOfWeek'\n"
+" NB. NavMerge corrects data for output when GPS full week number is inconsistent with epoch time.\n"
+ ;
+
+ return -1;
+ }
+
+ try
+ {
+ int i;
+ string arg,filename,outfile,YMDformat("%Y,%m,%d,%H,%M,%f"),GPSformat("%F,%g");
+ DayTime tb,te;
+
+ te = tb = DayTime::BEGINNING_OF_TIME;
+
+ i = 1;
+ while(i < argc) {
+ arg = string(argv[i]);
+ if(arg == "--out" || arg.substr(0,2) == "-o") {
+ if(arg == "--out") {
+ argv[i][0] = '\0';
+ if(++i == argc) { BadArg(arg); break; }
+ outfile = string(argv[i]);
+ }
+ else
+ outfile = arg.substr(2);
+ cout << "Output file name is " << outfile << endl;
+ argv[i][0] = '\0';
+ }
+ else if(arg == "--begTime" || arg == "-tb" || arg.substr(0,3) == "-tb") {
+ if(arg.substr(0,3) == "-tb" && arg.size() > 3)
+ arg = arg.substr(3);
+ else {
+ argv[i][0] = '\0';
+ if(++i == argc) { BadArg(arg); break; }
+ arg = string(argv[i]);
+ }
+
+ if(numWords(arg,',') == 2)
+ tb.setToString(arg,GPSformat);
+ else if(numWords(arg,',') == 6)
+ tb.setToString(arg,YMDformat);
+ else
+ cout << "Unable to understand timetag option: " << arg << endl;
+ argv[i][0] = '\0';
+ }
+ else if(arg == "--endTime" || arg == "-te" || arg.substr(0,3) == "-te") {
+ if(arg.substr(0,3) == "-te" && arg.size() > 3)
+ arg = arg.substr(3);
+ else {
+ argv[i][0] = '\0';
+ if(++i == argc) { BadArg(arg); break; }
+ arg = string(argv[i]);
+ }
+
+ if(numWords(arg,',') == 2)
+ te.setToString(arg,GPSformat);
+ else if(numWords(arg,',') == 6)
+ te.setToString(arg,YMDformat);
+ else
+ cout << "Unable to understand timetag option: " << arg << endl;
+ argv[i][0] = '\0';
+ }
+
+ i++;
+ }
+
+ if(te != DayTime::BEGINNING_OF_TIME &&
+ tb == DayTime::BEGINNING_OF_TIME) tb = te;
+ else
+ if(tb != DayTime::BEGINNING_OF_TIME &&
+ te == DayTime::BEGINNING_OF_TIME) te = tb;
+ if(tb > te) { DayTime tt=tb; tb=te; te=tt; }
+
+ if(tb != DayTime::BEGINNING_OF_TIME)
+ cout << "Time limits are " << tb.printf(YMDformat)
+ << " - " << te.printf(YMDformat) << endl;
+
+ RinexNavHeader rnh,rnhout;
+ RinexNavData rne;
+ BCEphemerisStore EphStore;
+ RinexNavStream RNFileOut;
+
+ if(outfile != string("")) {
+ RNFileOut.open(outfile.c_str(),ios::out);
+ RNFileOut.exceptions(fstream::failbit);
+ rnhout.version = 2.1;
+ rnhout.valid |= RinexNavHeader::versionValid;
+ rnhout.fileType = string("NAVIGATION");
+ rnhout.fileProgram = string("NavMerge");
+ rnhout.fileAgency = string("ARL:UT/SGL/GPSTK");
+ rnhout.valid |= RinexNavHeader::runByValid;
+ rnhout.commentList.clear();
+ rnhout.valid |= RinexNavHeader::commentValid;
+ rnhout.valid |= RinexNavHeader::endValid;
+ }
+
+ int na=1,n=0,nf;
+ while(na < argc) {
+ filename = string(argv[na]);
+ if(filename == string("")) { na++; continue; }
+
+ try {
+ RinexNavStream RNFileIn(filename.c_str());
+ if(!RNFileIn) {
+ cout << "Could not open file " << filename << endl;
+ na++;
+ continue;
+ }
+ RNFileIn.exceptions(fstream::failbit);
+
+ RNFileIn >> rnh;
+ if(rnh.valid & RinexNavHeader::ionAlphaValid) {
+ for(i=0; i<4; i++) rnhout.ionAlpha[i]=rnh.ionAlpha[i];
+ rnhout.valid |= RinexNavHeader::ionAlphaValid;
+ }
+ if(rnh.valid & RinexNavHeader::ionBetaValid) {
+ for(i=0; i<4; i++) rnhout.ionBeta[i]=rnh.ionBeta[i];
+ rnhout.valid |= RinexNavHeader::ionBetaValid;
+ }
+ if(rnh.valid & RinexNavHeader::deltaUTCValid) {
+ rnhout.A0 = rnh.A0;
+ rnhout.A1 = rnh.A1;
+ rnhout.UTCRefWeek = rnh.UTCRefWeek;
+ rnhout.UTCRefTime = rnh.UTCRefTime;
+ rnhout.valid |= RinexNavHeader::deltaUTCValid;
+ }
+ if(rnh.valid & RinexNavHeader::leapSecondsValid) {
+ rnhout.leapSeconds = rnh.leapSeconds;
+ rnhout.valid |= RinexNavHeader::leapSecondsValid;
+ }
+
+ nf = 0;
+ while (RNFileIn >> rne)
+ {
+ nf++;
+ n++;
+ // check that week number (associated with HOW) is consistent with TOC.
+ // (NB. in Rinex nav file, the week number is associated with the TOE;
+ // RinexNavData converts it to associate with the HOW)
+ int wkTOC,wk;
+ wk = rne.weeknum; // 'weeknum' associated with HOW
+ wkTOC = rne.time.GPSfullweek(); // 'time' comes from epoch line
+ if(ABS(wk-wkTOC) > 1) { // HOW and TOC should be w/in 1 week
+ double dt = double(wk-wkTOC)/1024.0;
+ dt += (dt < 0.0 ? -0.5 : 0.5);
+ wk -= int(dt) * 1024;
+ if(ABS(wk-wkTOC) > 1) {
+ cout << "WARNING: Ephemeris in " << filename
+ << " for satellite G"
+ << setw(2) << setfill('0') << rne.PRNID << setfill(' ')
+ << " at time " << rne.time
+ << " has inconsistent week number " << rne.weeknum << endl;
+ }
+ else {
+ cout << "NavMerge corrected the week in G"
+ << setw(2) << setfill('0') << rne.PRNID << setfill(' ')
+ << " " << rne.time
+ << " " << filename << endl;
+ rne.weeknum = wk;
+ }
+ }
+ // if healthy, add to the store
+ if(rne.health == 0) EphStore.addEphemeris(rne);
+ }
+ }
+ catch(Exception& e) {
+ cout << "Exception: " << e << endl;
+ }
+ na++;
+ cout << "Read " << setw(4) << nf << " ephemerides from file "
+ << filename << endl;
+ }
+ cout << "Read " << setw(4) << n << " total ephemerides." << endl;
+
+ // pull out all the ephemerides
+ list<EngEphemeris> EphList;
+ i = EphStore.addToList(EphList);
+
+ if(outfile != string("")) {
+ // write the output header
+ RNFileOut << rnhout;
+
+ // write out all the ephemerides
+ list<EngEphemeris>::iterator it=EphList.begin();
+ n=0;
+ while(it != EphList.end()) {
+ rne = RinexNavData(*it);
+ if(tb == DayTime::BEGINNING_OF_TIME ||
+ (rne.time - tb > -14400.0 && rne.time - te < 14400.0))
+ {
+ n++;
+ RNFileOut << rne;
+ }
+ it++;
+ }
+ cout << "Wrote " << setw(3) << n << " unique ephemerides to file "
+ << outfile << endl;
+ }
+ else {
+ EphStore.dump(1);
+ }
+
+ return 0;
+ }
+ catch(Exception& e) { cout << e; }
+ catch (...) { cout << "unknown error. Done." << endl; }
+ return 1;
+
+ return 0;
+}
diff --git a/dev/apps/Rinextools/README b/dev/apps/Rinextools/README
new file mode 100644
index 0000000..c0d12ce
--- /dev/null
+++ b/dev/apps/Rinextools/README
@@ -0,0 +1,45 @@
+Rinex tools (/apps/Rinextools)
+
+ This directory contains 4 standalone programs which are useful in
+manipulating Rinex observation files. They are:
+ RinexDump dumps Rinex observation data in columns in a flat file, useful
+ for plotting
+ RinSum summarizes a Rinex observation file
+ EditRinex reads and edits a Rinex observation file, writing out the a
+ new, edited one.
+ ResCor reads a Rinex file(s) and computes any of several residuals and
+ corrections from the data, and then writes them to an output
+ Rinex observation file.
+ NavMerge reads any number of Rinex navigation files and either prints a
+ summary on the screen, or, if an output file is specified,
+ writes a unique superset of all the ephemeris data to that file.
+ It will also correct the week number in the ephemeris if it is
+ inconsistent with the time on the epoch line.
+
+ In addition there is the RinexEditor module, which implements a class that
+may be called within other programs to edit the Rinex data. The EditRinex program is really just a shell that calls the RinexEditor, while ResCor is a more complicated program that also calls the RinexEditor but also modifies the data (i.e. computes the residuals and corrections) before writing it out.
+
+ All of these programs are run from the command line, and input and outputs are all flat files. To see the command line syntax, run the program with either no arguments, or with arguments but including --help.
+
+ Examples are not included here; however, examples are available elsewhere. RinSum is very easy to run; try typing
+
+ RinSum -i<file>
+
+at the command line for any Rinex observation file <file>. Note, also, that the
+discontinuity corrector uses EditRinex to apply its corrections, and that an
+example of this is found in /apps/cycleslips/examples. Finally, the RinexPlot utility (/apps/RinexPlot) makes extensive use of the other utility programs
+here; it is actually a Perl script and runs these programs from the command
+line.
+
+Brian Tolman
+btolman at arlut.utexas.edu
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/apps/Rinextools/ResCor.cpp b/dev/apps/Rinextools/ResCor.cpp
new file mode 100644
index 0000000..bb77aef
--- /dev/null
+++ b/dev/apps/Rinextools/ResCor.cpp
@@ -0,0 +1,2230 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file ResCor.cpp
+ * 'Residuals and Corrections'
+ * Open and read a single Rinex observation file, apply editing commands
+ * using the RinexEditor package, compute any of several residuals and corrections
+ * and register extended Rinex observation types for them, and then write
+ * the edited data, along with the new extended observation types,
+ * to an output Rinex observation file. Input is all on the command line.
+ * ResCor is implemented by deriving a special class from class RinexEditor and
+ * using its virtual functions to implement all the changes necessary to define
+ * and compute the residuals and corrections.
+ */
+
+//------------------------------------------------------------------------------------
+// ToDo
+// catch exceptions -- elsewhere and on reading header and obs
+// allow user to specify trop model, both for RAIM and for TR output
+//
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexSatID.hpp"
+#include "CommandOptionParser.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "SP3Stream.hpp"
+#include "SP3EphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "EphemerisRange.hpp"
+#include "TropModel.hpp"
+#include "PRSolution.hpp"
+#include "WGS84Geoid.hpp" // for obliquity
+#include "Stats.hpp"
+#include "geometry.hpp" // DEG_TO_RAD
+#include "icd_200_constants.hpp" // PI,C_GPS_M,OSC_FREQ,L1_MULT,L2_MULT
+
+#include "RinexEditor.hpp"
+#include "RinexUtilities.hpp"
+#include "Position.hpp"
+
+#include <time.h>
+#include <string>
+#include <vector>
+#include <map>
+#include <algorithm>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+ // prgm data
+string PrgmName("ResCor");
+string PrgmVers("3.7 1/22/07");
+
+// data used in program
+const double CFF=C_GPS_M/OSC_FREQ;
+const double F1=L1_MULT; // 154.0;
+const double F2=L2_MULT; // 120.0;
+const double f12=F1*F1;
+const double f22=F2*F2;
+const double wl1=CFF/F1;
+const double wl2=CFF/F2;
+const double wl1r=F1/(F1+F2);
+const double wl2r=F2/(F1+F2);
+const double wl1p=wl1*F1/(F1-F2);
+const double wl2p=-wl2*F2/(F1-F2);
+const double if1r=f12/(f12-f22);
+const double if2r=-f22/(f12-f22);
+const double if1p=wl1*f12/(f12-f22);
+const double if2p=-wl2*f22/(f12-f22);
+const double gf1r=-1;
+const double gf2r=1;
+const double gf1p=wl1;
+const double gf2p=-wl2;
+const double alpha=f12/f22 - 1.0;
+const double FL1=F1*10.23e6; // Hz
+const double TECUperM=FL1*FL1*1.e-16/40.28; // 6.1617 TECU/m (0.16229 m/TECU)
+
+clock_t totaltime;
+string Title;
+ // input flags and data
+bool Debug,Verbose,Callow,Cforce;
+double IonoHt;
+RinexSatID SVonly;
+string LogFile;
+ofstream logof,oferr; // don't call it oflog - RinexEditor has that
+ // Rinex headers, input and output, saved
+RinexObsHeader rhead, rheadout;
+ // ephemeris
+string NavDir;
+vector<string> NavFiles;
+SP3EphemerisStore SP3EphList;
+BCEphemerisStore BCEphList;
+SimpleTropModel ggtm;
+ // for use with current position and in RefPosMap (RAIM and/or RefPosFile)
+typedef struct ReferencePositionFileData {
+ Position RxPos; // XYZT
+ bool valid;
+ int NPRN;
+ double clk,PDOP,GDOP,RMS;
+} RefPosData;
+RefPosData CurrRef; // current reference position
+ // reference and RAIM solution
+string RefPosFile,KnownPos;
+bool doRAIM,editRAIM,outRef,headRAIM,HaveRAIM;
+bool RefPosInput,KnownPosInput,KnownLLH,RefPosFlat;
+double minElev;
+vector<SatID> Sats;
+vector<double> PRange;
+//RAIMSolution RAIMSol;
+PRSolution prsol;
+Stats<double> ARSX,ARSY,ARSZ; // average solution, for header output
+ // computation
+int inC1,inP1,inP2,inL1,inL2; // indexes in rhead of C1, C1/P1, P2, L1 and L2
+int inEP,inPS; // flags for input of ephemeris, Rx position
+int inD1,inD2,inS1,inS2;
+DayTime CurrentTime, PrgmEpoch;
+// these 3 vectors parallel
+vector<string> OTstrings; // list of OTs (strings) to be computed
+vector<RinexObsHeader::RinexObsType> OTList;
+vector<int> OTindex;
+int otC1,otP1,otP2,otL1,otL2; // indexes in rheadout of C1, C1/P1, P2, L1 and L2
+int otD1,otD2,otS1,otS2;
+bool DoSVX;
+WGS84Geoid WGS84;
+// compute non-dispersive range, ionospheric delay, multipath (L1 and L2)
+bool DoXR;
+double XRM0[4],XRM1[4],XRM2[4],XRM3[4];
+double *XRM[4]={XRM0,XRM1,XRM2,XRM3};
+double XRdat[4],XRsol[4];
+ // structure for holding raw range and phase data during computation
+typedef struct range_and_phase_data {
+ double L1,L2,P1,P2;
+ int LL1,LL2;
+} RCData;
+ // map of <sat,RCData>
+RCData DataStore;
+map<RinexSatID,RCData> DataStoreMap;
+ // debiasing output data
+map<RinexObsHeader::RinexObsType,map<RinexSatID,double> > AllBiases; // (OT,SV)
+ // reference position as function of time (from input)
+map<DayTime,RefPosData> RefPosMap;
+double RefPosMapDT;
+
+string RxhelpString=
+"\n --RxFlat <fn> : fn is a file with reference receiver positions and times:\n"
+" The first line in the file (other than comments, marked by # in column 1)\n"
+" is the format for each line of the file, using the specifications in\n"
+" DayTime::setToString() and Position::setToString().\n"
+" The second line is a pattern made up of characters T, P and X indicating the\n"
+" content of both the lines in the file and the format: (white-space-delimited)\n"
+" words on each line are either part of the time(T) or position(P) specification,\n"
+" or are to be ignored(X). For example, the file begins with these six lines:\n"
+" # format:\n"
+" t= %F %g p= %x %y %z\n"
+" # pattern:\n"
+" XTTXPPP\n"
+" # data:\n"
+" t= 1281 259200 p= -2701232.4 6123085.7 1419837.5";
+
+//------------------------------------------------------------------------------------
+// inherit RinexEditor so that callback routines can be defined by Prgm ResCor
+class RCRinexEditor : public RinexEditor
+{
+ public:
+ /// Constructor.
+ RCRinexEditor() throw() {};
+
+ /// destructor
+ virtual ~RCRinexEditor() {}
+
+ /// after reading input header and before calling
+ /// RinexEditor::EditHeader (pass input header)
+ virtual int BeforeEditHeader(const RinexObsHeader& rhin) throw(Exception);
+
+ /// after calling RinexEditor::EditHeader (pass output header)
+ virtual int AfterEditHeader(const RinexObsHeader& rhout) throw(Exception);
+
+ /// after reading input obs and before calling
+ /// RinexEditor::EditObs (pass input obs)
+ virtual int BeforeEditObs(const RinexObsData& roin) throw(Exception);
+
+ /// before writing out header (pass output header)
+ virtual int BeforeWritingHeader(RinexObsHeader& rhout) throw(Exception);
+
+ /// before writing out filled header
+ virtual int BeforeWritingFilledHeader(RinexObsHeader& rhout) throw(Exception);
+
+ /// just before writing output obs (pass output obs)
+ virtual int BeforeWritingObs(RinexObsData& roout) throw(Exception);
+
+}; // end class RCRinexEditor
+
+//------------------------------------------------------------------------------------
+// prototypes
+int GetCommandLine(int argc, char **argv, RCRinexEditor& rc) throw(Exception);
+int PrepareInput(void) throw(Exception);
+int LoopOverObs(void) throw(Exception);
+void SaveData(const RinexObsData& rod, const RinexObsHeader& rh,
+ int xL1, int xL2, int xP1, int xP2) throw(Exception);
+int UpdateRxPosition(void) throw(Exception);
+void ComputeNewOTs(RinexObsData& rod) throw(Exception);
+void CloseOutputFile(void) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+int setBiasLimit(RinexObsHeader::RinexObsType& ot, double lim) throw(Exception);
+double removeBias(const RinexObsHeader::RinexObsType& ot, const RinexSatID& sat,
+ bool& reset, DayTime& tt, double delta) throw(Exception);
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ totaltime = clock();
+ int iret;
+ // NB. Do not instantiate editor outside main(), b/c DayTime::END_OF_TIME is a
+ // static const that can produce static intialization order problems under some OS.
+ RCRinexEditor REC;
+ CurrentTime = DayTime::BEGINNING_OF_TIME; // for same reason, init here...
+
+ // Title and description
+ Title = PrgmName + ", part of the GPS ToolKit, Ver. " + PrgmVers
+ + " (editor " + REC.getRinexEditVersion() + string("), Run ");
+ time_t timer;
+ struct tm *tblock;
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ PrgmEpoch.setYMDHMS(1900+tblock->tm_year,1+tblock->tm_mon,
+ tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
+ Title += PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ Title += "\n";
+ cout << Title;
+
+ // define extended types
+ iret = RegisterARLUTExtendedTypes();
+ if(iret) goto quit;
+
+ // Set defaults, define command line and parse it.
+ // Send REdit cmds to REC. Check validity of input.
+ iret = GetCommandLine(argc, argv, REC);
+ if(iret) goto quit;
+
+ // Initialize, read ephemerides, set flags and prepare for processing
+ iret = PrepareInput();
+ if(iret) goto quit;
+
+ // Edit the file, including callbacks
+ iret = REC.EditFile();
+ if(Debug) logof << "EditFile returned " << iret << endl;
+ if(iret) goto quit;
+
+ quit:
+ // compute run time
+ totaltime = clock()-totaltime;
+ logof << "ResCor timing: " << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+
+ logof.close();
+ cout << "End ResCor" << endl;
+ return iret;
+}
+catch(gpstk::FFStreamError& e) { cerr << e; }
+catch(gpstk::Exception& e) { cerr << e; }
+catch(exception& e) { cerr << e.what(); }
+catch (...) { cerr << "Unknown error. Abort." << endl; }
+ return 1;
+} // end main()
+
+//------------------------------------------------------------------------------------
+// Set defaults, define command line and parse it. Send REdit cmds to REC.
+// Check validity of input
+int GetCommandLine(int argc, char **argv, RCRinexEditor& REC) throw(Exception)
+{
+ bool help=false,Rxhelp=false,REChelp=false,ROThelp=false;
+ int i,j,iret;
+try {
+ // defaults
+ Debug = Verbose = false;
+
+ doRAIM = false;
+ KnownPosInput = RefPosInput = false;
+ outRef = true;
+ editRAIM = true;
+ headRAIM = false;
+ minElev = 0.0;
+
+ IonoHt = 400.0; // km
+
+ Callow = true;
+ Cforce = false;
+
+ LogFile = string("ResCor.log");
+
+ // -------------------------------------------------
+ // required options
+
+ // optional options
+
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',"","\nConfiguration input:\n --file <file> File containing more options");
+
+ // ephemeris
+ CommandOption dashn(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"nav"," --nav <file> Navigation (Rinex Nav OR SP3) file(s)");
+
+ CommandOption dashnd(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"navdir"," --navdir <dir> Directory of navigation file(s)");
+ dashnd.setMaxCount(1);
+
+ // reference position(s)
+ CommandOption dashRx1(CommandOption::hasArgument,CommandOption::stdType,0,"RxLLH",
+ "Reference position input: (there are six ways to input the reference "
+ "position(s):\n --RxLLH <l,l,h> 1.Receiver position (static) in geodetic "
+ "lat, lon(E), ht (deg,deg,m)");
+ dashRx1.setMaxCount(1);
+
+ CommandOption dashRx2(CommandOption::hasArgument, CommandOption::stdType,0,"RxXYZ",
+ " --RxXYZ <x,y,z> 2.Receiver position (static) in ECEF coordinates (m)");
+ dashRx2.setMaxCount(1);
+
+ CommandOptionNoArg dashRx3(0,"Rxhere",
+ " --Rxhere 3.Reference site positions(time) from this file"
+ " (i.e. -IF<RinexFile>)");
+ dashRx3.setMaxCount(1);
+
+ CommandOption dashRx4(CommandOption::hasArgument, CommandOption::stdType,0,
+ "RxRinex"," --RxRinex <fn> 4.Reference site positions(time) from another "
+ "Rinex file named <fn>");
+ dashRx4.setMaxCount(1);
+
+ CommandOption dashRx5(CommandOption::hasArgument,CommandOption::stdType,0,"RxFlat",
+ " --RxFlat <fn> 5.Reference site positions and times given in a flat file"
+ " named <fn>");
+ dashRx5.setMaxCount(1);
+
+ CommandOptionNoArg dashRxhelp(0,"Rxhelp"," --Rxhelp "
+ "(Enter --Rxhelp for a description of the -RxFlat file format)");
+ dashRxhelp.setMaxCount(1);
+
+ CommandOptionNoArg dashRx6(0,"RAIM",
+ " --RAIM 6.Reference site positions computed via RAIM"
+ " (requires P1,P2,EP)");
+ dashRx6.setMaxCount(1);
+
+ CommandOptionNoArg dashred(0,"noRAIMedit",
+ " (NB the following four options apply only if --RAIM is found)\n"
+ " --noRAIMedit Do not edit data based on RAIM solution");
+ dashred.setMaxCount(1);
+
+ CommandOptionNoArg dashrh(0,"RAIMhead",
+ " --RAIMhead Output average RAIM solution to Rinex header "
+ "(if -HDf also appears)");
+ dashrh.setMaxCount(1);
+
+ CommandOptionNoArg dashro(0,"noRefout",
+ " --noRefout Do not output reference solution to Rinex");
+ dashro.setMaxCount(1);
+
+ CommandOption dashelev(CommandOption::hasArgument,CommandOption::stdType,
+ 0,"MinElev",
+ " --MinElev <el> Minimum satellite elevation (deg) for output");
+ dashelev.setMaxCount(1);
+
+ // residual and correction computation, processing options
+ CommandOption dashdb(CommandOption::hasArgument, CommandOption::stdType,0,"debias",
+ "Residual/Correction computation:\n"
+ " --debias <OT,l> Debias new output type <OT>; "
+ "trigger a bias reset with limit <l>");
+
+ CommandOptionNoArg dashca(0,"Callow",
+ " --Callow Allow C1 to replace P1 when P1 is not available");
+ dashca.setMaxCount(1);
+
+ CommandOptionNoArg dashcf(0,"Cforce",
+ " --Cforce Force C/A code pseudorange C1 to replace P1");
+ dashcf.setMaxCount(1);
+
+ CommandOption dashih(CommandOption::hasArgument, CommandOption::stdType,0,"IonoHt",
+ " --IonoHt <ht> Height of ionosphere in km (default 400) "
+ "(needed for LA,LO,VR,VP)");
+ dashih.setMaxCount(1);
+
+ CommandOption dashSV(CommandOption::hasArgument, CommandOption::stdType, 0,"SVonly",
+ " --SVonly <sat> Process this satellite ONLY (use editing command -DS<Sat> to delete Sat)");
+ dashSV.setMaxCount(1);
+
+ // output files
+ CommandOption dashLog(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Log","Output files:\n --Log <file> Output log file name (rc.log)");
+ dashLog.setMaxCount(1);
+
+ //CommandOption dashErr(CommandOption::hasArgument, CommandOption::stdType,
+ // 0,"Err"," --Err <file> Output error file name (rc.err)");
+ //dashErr.setMaxCount(1);
+
+ // help
+ CommandOptionNoArg dashVerb(0,"verbose",
+ "Help:\n --verbose Print extended output to log file.");
+ dashVerb.setMaxCount(1);
+
+ CommandOptionNoArg dashDebug(0,"debug",
+ " --debug Print debugging information to log file.");
+ dashDebug.setMaxCount(1);
+
+ CommandOptionNoArg dashh('h', "help"," --help [or -h] Print syntax and quit.");
+ CommandOptionNoArg dashrech(0, "REChelp",
+ " --REChelp Print syntax of RinexEditor commands and quit.");
+ CommandOptionNoArg dashexth(0, "ROThelp",
+ " --ROThelp Print list of extended Rinex observation types and quit.");
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par(
+ "Prgm ResCor will open and read a single Rinex observation file, "
+ "apply editing commands\n"
+ " using the RinexEditor package, compute any of several residuals "
+ "and corrections and\n"
+ " register extended Rinex observation types for them, and then write "
+ "the edited data,\n"
+ " along with the new extended observation types, to an output Rinex "
+ "observation file.\n"
+ "\nRequired arguments:\n"
+ " -IF and -OF (RinexEditor commands: cf. --REChelp) are required arguments.\n");
+
+ // -------------------------------------------------
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+ argc = Args.size();
+ if(argc==0) Args.push_back(string("--help"));
+
+ //if(Debug) {
+ //cout << "List after PreProcessArgs\n";
+ //for(i=0; i<argc; i++) cout << i << " " << Args[i] << endl;
+ //}
+
+ // add PRGM and RUNBY strings to the header
+ REC.REVerbose = Verbose;
+ REC.REDebug = Debug;
+ Args.push_back(string("-HDp") + PrgmName + string(" v.") + PrgmVers.substr(0,4));
+ Args.push_back(string("-HDrARL:UT/SGL/GPSTK"));
+
+ if(Debug) {
+ cout << "List passed to REditCommandLine:\n";
+ for(i=0; i<argc; i++) cout << i << " " << Args[i] << endl;
+ }
+
+ // Add RE cmds; this will strip out the REditCmds from Args
+ REC.AddCommandLine(Args);
+ if(Debug) {
+ cout << "List after REC.AddCommandLine(Args)\n";
+ argc = Args.size();
+ for(i=0; i<argc; i++) cout << i << " " << Args[i] << endl;
+ }
+
+ // get the list of commands and create OTstrings
+ vector<string> cmds=REC.CommandList();
+ if(Debug) cout << "Here is the list of RE commands:\n";
+ for(i=0; i<cmds.size(); i++) {
+ string cmd = cmds[i];
+ if(Debug) cout << " " << cmd << endl;
+
+ vector<string> field;
+ while(cmd.size() > 0)
+ field.push_back(stripFirstWord(cmd,','));
+ if(field.size() < 5) continue;
+ if(field[0] == "AO")
+ OTstrings.push_back(field[4]);
+ }
+ if(Debug) cout << "End list of RE commands." << endl;
+
+ // preprocess the commands
+ // Return 0 ok, -1 no input file name, -2 no output file name
+ iret = REC.ParseCommands();
+ //if(Debug) {
+ //cout << "\nHere is the parsed list of RE cmds\n";
+ //it=REC.Cmds.begin();
+ //while(it != REC.Cmds.end()) { it->Dump(cout,string("")); ++it; }
+ //cout << "End of sorted list of RE cmds" << endl << endl;
+
+ // pass the rest to the regular command line processor
+ //}
+
+ // -------------------------------------------------------------------
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ //if(Debug) {
+ //cout << "List passed to parser\n";
+ //for(i=0; i<argc; i++) cout << i << " " << CArgs[i] << endl;
+ //}
+
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ // -------------------------------------------------
+ // was help requested?
+ if(dashh.getCount() > 0) help=true;
+ if(dashRxhelp.getCount() > 0) Rxhelp=true;
+ if(dashrech.getCount() > 0) REChelp=true;
+ if(dashexth.getCount() > 0) ROThelp=true;
+ // if errors on the command line, dump them and turn on help
+ if(!(help || Rxhelp || REChelp || ROThelp) && (iret<0 || Par.hasErrors())) {
+ cout << "Errors found in command line input:\n";
+ if(iret==-1 || iret==-3) cout << "Input file name required: use -IF<name>\n";
+ if(iret==-2 || iret==-3) cout << "Output file name required: use -OF<name>\n";
+ Par.dumpErrors(cout);
+ cout << "...end of Errors\n\n";
+ help = true;
+ }
+ // display syntax page(s)
+ if(help || Rxhelp || REChelp || ROThelp) {
+ if(help)
+ Par.displayUsage(cout,false);
+ if(Rxhelp)
+ cout << RxhelpString << endl;
+ if(REChelp) {
+ if(help || Rxhelp) cout << endl;
+ cout << "ResCor is an implementation of the RinexEditor, therefore the"
+ << " following commands are accepted.\n";
+ DisplayRinexEditUsage(cout);
+ }
+ if(ROThelp) {
+ if(help || Rxhelp || REChelp) cout << endl;
+ DisplayStandardRinexObsTypes(cout);
+ cout << "End of list of standard observation types\n";
+ DisplayExtendedRinexObsTypes(cout);
+ cout << "End of list of extended observation types\n";
+ }
+ if(iret < 0) return iret;
+ }
+
+ // -------------------------------------------------
+ // get values found on command line
+ vector<string> values;
+
+ //dashf intercepted above by PreProcessArgs
+ //dashh Handled above (first)
+ //if(dashDebug.getCount()) Debug=true; done by PreProcessArgs
+ //if(dashVerb.getCount()) Verbose=true; done by PreProcessArgs
+
+ // now do the rest
+ // ephemeris input
+ if(dashnd.getCount()) {
+ values = dashnd.getValue();
+ NavDir = values[0];
+ if(help) cout << "Nav Directory is " << NavDir << endl;
+ }
+ if(dashn.getCount()) {
+ values = dashn.getValue();
+ NavFiles = values;
+ if(help) {
+ cout << "Nav files are:";
+ for(i=0; i<NavFiles.size(); i++) cout << " " << NavFiles[i];
+ cout << endl;
+ }
+ }
+
+ // reference position
+ if(dashRx1.getCount()) {
+ values = dashRx1.getValue();
+ KnownPos = values[0];
+ KnownLLH = true;
+ KnownPosInput = true;
+ if(help) cout << "Get reference position from explicit input (LLH) "
+ << KnownPos << endl;
+ }
+ if(dashRx2.getCount()) {
+ values = dashRx2.getValue();
+ KnownPos = values[0];
+ KnownLLH = false;
+ KnownPosInput = true;
+ if(help) cout << "Get reference position from explicit input (XYZ) "
+ << KnownPos << endl;
+ }
+ if(dashRx3.getCount()) { // get ref from this input file
+ RefPosInput = true;
+ if(help) cout << "Get reference position from this input file" << endl;
+ }
+ if(dashRx4.getCount()) {
+ values = dashRx4.getValue();
+ RefPosFile = values[0];
+ RefPosFlat = false;
+ if(help) cout << "Get reference position from Rinex file " << RefPosFile<<endl;
+ }
+ if(dashRx5.getCount()) {
+ values = dashRx5.getValue();
+ RefPosFile = values[0];
+ RefPosFlat = true;
+ if(help) cout << "Get reference position from flat file " << RefPosFile << endl;
+ }
+ if(dashRx6.getCount()) {
+ doRAIM = true;
+ if(help) cout << "Compute a RAIM solution" << endl;
+ }
+
+ // RAIM options
+ if(dashred.getCount()) {
+ if(doRAIM) {
+ editRAIM = false;
+ if(help) cout << "Do not edit data based on RAIM solution" << endl;
+ }
+ else if(help) cout << "Ignore --noRAIMedit: --RAIM was not set" << endl;
+ }
+ if(dashro.getCount()) {
+ outRef = false;
+ if(help) cout << "Do not output Reference solution to Rinex" << endl;
+ }
+ if(dashelev.getCount()) {
+ values = dashelev.getValue();
+ minElev = asDouble(values[0]);
+ if(help) cout << "Set minimum elevation angle "
+ << fixed << setprecision(2) << minElev << endl;
+ }
+ if(dashrh.getCount()) {
+ if(doRAIM) {
+ headRAIM = true;
+ if(help) cout << "Output average RAIM solution to header" << endl;
+ }
+ else if(help) cout << "Ignore --RAIMhead: --RAIM was not set" << endl;
+ }
+
+ if(dashdb.getCount()) {
+ values = dashdb.getValue();
+ vector<string> subfield;
+ string::size_type pos;
+ for(i=0; i<values.size(); i++ ) {
+ string argbias=values[i];
+ subfield.clear();
+ while(argbias.size() > 0) {
+ pos = argbias.find(",");
+ if(pos==string::npos) pos=argbias.size();
+ if(pos==0) subfield.push_back(" ");
+ else subfield.push_back(argbias.substr(0,pos));
+ if(pos >= argbias.size()) break;
+ argbias.erase(0,pos+1);
+ }
+ RinexObsHeader::RinexObsType OT;
+ OT = RinexObsHeader::convertObsType(subfield[0]);
+ double limit=asDouble(subfield[1]);
+ int iret=setBiasLimit(OT,limit);
+ if(iret) {
+ cout << "Error: '--debias <OT,lim>' input is invalid: "
+ << values[i] << endl;
+ cerr << "Error: '--debias <OT,lim>' input is invalid: "
+ << values[i] << endl;
+ }
+ else if(Debug)
+ cout << "Set bias limit for " << RinexObsHeader::convertObsType(OT)
+ << " to " << fixed << setprecision(3) << limit
+ << " (" << values[i] << ")" << endl;
+ }
+ }
+ if(dashca.getCount()) {
+ Callow = true;
+ if(help) cout << "Allow C1 to be P1 when P1 not available\n";
+ }
+ if(dashcf.getCount()) {
+ Cforce = true;
+ if(help) cout << "Force C1 to replace P1 when C1 available\n";
+ }
+ if(dashih.getCount()) {
+ values = dashih.getValue();
+ IonoHt = asDouble(values[0]);
+ if(help) cout << "Set ionosphere height to " << values[0] << " km" << endl;
+ }
+ if(dashSV.getCount()) {
+ values = dashSV.getValue();
+ SVonly.fromString(values[0]);
+ if(help) cout << "Process only satellite : " << SVonly << endl;
+ }
+ if(dashLog.getCount()) {
+ values = dashLog.getValue();
+ LogFile = values[0];
+ if(help) cout << "Log file is " << LogFile << endl;
+ }
+
+ if(Rest.getCount() && help) {
+ cout << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) cout << values[i] << endl;
+ }
+
+ //if(Verbose && help) {
+ // cout << "\nTokens on command line (" << Args.size() << ") are:" << endl;
+ // for(j=0; j<Args.size(); j++) cout << Args[j] << endl;
+ //}
+
+ // -------------------------------------------------
+ // now process some of the input
+ try {
+ logof.clear();
+ logof.exceptions(ios_base::badbit | ios_base::failbit);
+ logof.open(LogFile.c_str(),ios::out);
+ if(logof.fail()) {
+ cout << "Failed to open log file " << LogFile << endl;
+ return -1;
+ }
+ else {
+ cout << "Opened log file (for all output, including debug) "
+ << LogFile << endl;
+ logof << Title;
+ }
+ REC.oflog = &logof;
+ }
+ catch(ios_base::failure& e) {
+ cout << "Exception " << e.what() << endl;
+ return -1;
+ }
+
+ // check for multiple inputs
+ if(KnownPosInput || !RefPosFile.empty() || doRAIM || RefPosInput) {
+ i = 0;
+ if(KnownPosInput) i++;
+ if(!RefPosFile.empty()) i++;
+ if(doRAIM) i++;
+ if(RefPosInput) i++;
+ if(i > 1) {
+ ostringstream stst;
+ stst << "ERROR: multiple inputs inconsistent:";
+ if(KnownPosInput) stst << (KnownLLH ? " --RxLLH" : " --RxXYZ");
+ if(!RefPosFile.empty()) stst << (RefPosFlat ? " --RxFlat" : " --RxRinex");
+ if(doRAIM) stst << " --RAIM";
+ if(RefPosInput) stst << " --RxHere";
+ stst << endl;
+ logof << stst.str();
+ cerr << stst.str();
+ return -1; // fail? or take default
+ }
+ else if(help) logof << "Position input ok\n";
+ }
+ // print config to log
+ if(Verbose) {
+ logof << "-------- Here is the program configuration:\n";
+ logof << "Input Rinex observation file name is: "
+ << REC.InputFileName() << endl;
+ logof << "Input Directory is " << REC.InputDirectory() << endl;
+ logof << "Output Rinex obs file name is: " << REC.OutputFileName() << endl;
+ logof << "Output Directory is " << REC.OutputDirectory() << endl;
+ if(REC.BeginTimeLimit() > DayTime::BEGINNING_OF_TIME)
+ logof << "Begin time limit is " << REC.BeginTimeLimit() << endl;
+ if(REC.EndTimeLimit() < DayTime::END_OF_TIME)
+ logof << "End time limit is " << REC.EndTimeLimit() << endl;
+ if(REC.Decimation() != 0) logof << "Decmimation time interval is "
+ << setprecision(2) << REC.Decimation() << " seconds." << endl;
+ logof << "Tolerance in time-comparisions is " << setprecision(8)
+ << REC.Tolerance() << " seconds." << endl;
+ logof << "Log file name is " << LogFile << " (this file)" << endl;
+ if(SVonly.id > 0) logof << "Process only satellite : " << SVonly << endl;
+
+ if(!NavDir.empty()) logof << "Nav Directory is " << NavDir << endl;
+ if(NavFiles.size()) {
+ logof << "Nav files:";
+ for(i=0; i<NavFiles.size(); i++) logof << " " << NavFiles[i];
+ logof << endl;
+ }
+ if(KnownPosInput) logof << "Get reference position from explicit input ("
+ << (KnownLLH ? "LLH" : "XYZ") << ") : " << KnownPos << endl;
+ if(doRAIM) logof << "Compute a RAIM solution" << endl;
+ if(minElev > 0.0) logof << "Minimum elevation angle limit "
+ << fixed << setprecision(2) << minElev << " degrees." << endl;
+ if(RefPosInput) logof << "Get reference position from in-line headers in "
+ << "the input Rinex file" << endl;
+ if(!RefPosFile.empty())
+ logof << "Get reference position from a " << (RefPosFlat ? "flat" : "Rinex")
+ << " file: " << RefPosFile << endl;
+ if(!editRAIM) logof << "Do not ";
+ logof << "Edit data based on RAIM solution" << endl;
+ if(!outRef) logof << "Do not ";
+ logof << "Output Reference solution to Rinex" << endl;
+ if(!headRAIM) logof << "Do not ";
+ logof << "Output average RAIM solution to header" << endl;
+ if(Callow) logof << "Allow C1 to be P1 when P1 not available\n";
+ if(Cforce) logof << "Force C1 to replace P1 when C1 available\n";
+ logof << "Ionosphere height is " << IonoHt << " km" << endl;
+ if(AllBiases.size()) {
+ logof << "The list of de-biasing limits is:\n";
+ map<RinexObsHeader::RinexObsType,map<RinexSatID,double> >::iterator it;
+ for(it=AllBiases.begin(); it!=AllBiases.end(); it++) {
+ map<RinexSatID,double>::iterator jt;
+ for(jt=it->second.begin(); jt!=it->second.end(); jt++) {
+ logof << " Bias limit(" << RinexObsHeader::convertObsType(it->first)
+ << ") = " << fixed << setprecision(3) << jt->second << endl;
+ }
+ }
+ }
+ logof << "-------- End of the program configuration.\n";
+ logof << endl;
+ }
+
+ if(help) return 1;
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+// Initialize, read ephemerides, set flags and prepare for processing
+int PrepareInput(void) throw(Exception)
+{
+try {
+ int iret,i;
+
+ // set all input/output indexes to 'undefined'
+ inC1 = inP1 = inP2 = inL1 = inL2 = inEP = inPS = inD1 = inD2 = inS1 = inS2 = -1;
+ otC1 = otP1 = otP2 = otL1 = otL2 = otD1 = otD2 = otS1 = otS2 = -1;
+
+ // --------------------------------------------------------------------
+ // ephemeris
+ // add Nav directory to nav file names
+ if(!NavDir.empty() && NavFiles.size()>0) {
+ for(i=0; i<NavFiles.size(); i++)
+ NavFiles[i] = NavDir + string("/") + NavFiles[i];
+ }
+
+ // open nav files and read EphemerisStore -- set inEP and inPS
+ iret = FillEphemerisStore(NavFiles, SP3EphList, BCEphList);
+ if(SP3EphList.size()) {
+ if(Verbose) SP3EphList.dump(1,logof);
+ inEP = 1;
+ }
+ else if(Verbose) logof << "SP3 Ephemeris list is empty\n";
+
+ if(BCEphList.size()) {
+ BCEphList.SearchNear();
+ if(Verbose) BCEphList.dump(0,logof);
+ inEP = 1;
+ }
+ else if(Verbose) logof << "BC Ephemeris list is empty\n";
+
+ // --------------------------------------------------------------------
+ // position:
+ // if KnownPosInput, position is input
+ // if !RefPosFile.empty(), open file
+ // if RefPosInput, use the aux headers in input file
+ // if(doRAIM) set up RAIMsolution - including input of RMS, etc?
+ if(KnownPosInput) { // parse the string to get position
+ vector<string> subfield;
+ string::size_type pos;
+ while(KnownPos.size() > 0) {
+ pos = KnownPos.find(",");
+ if(pos==string::npos) pos=KnownPos.size();
+ if(pos==0) subfield.push_back(" ");
+ else subfield.push_back(KnownPos.substr(0,pos));
+ if(pos >= KnownPos.size()) break;
+ KnownPos.erase(0,pos+1);
+ };
+
+ CurrRef.valid = true;
+ CurrRef.clk = 0;
+ CurrRef.NPRN = 0;
+ CurrRef.PDOP = 0;
+ CurrRef.GDOP = 0;
+ CurrRef.RMS = 0;
+ if(KnownLLH) {
+ CurrRef.RxPos.setGeodetic(asDouble(subfield[0]), asDouble(subfield[1]),
+ asDouble(subfield[2]));
+ CurrRef.RxPos.transformTo(Position::Cartesian);
+ }
+ else {
+ CurrRef.RxPos.setECEF(asDouble(subfield[0]), asDouble(subfield[1]),
+ asDouble(subfield[2]));
+ }
+
+ // output
+ logof << "Reference position comes from explicit input of "
+ << "position components:\n";
+ logof << " " << subfield[0] << " " << subfield[1] << " " << subfield[2] << endl;
+ logof << " =" << fixed
+ << " " << setw(13) << setprecision(3) << CurrRef.RxPos.X()
+ << " " << setw(13) << setprecision(3) << CurrRef.RxPos.Y()
+ << " " << setw(13) << setprecision(3) << CurrRef.RxPos.Z()
+ << endl;
+ logof << " = " << fixed
+ << setw(12) << setprecision(8) << CurrRef.RxPos.geodeticLatitude() << "N "
+ << setw(12) << setprecision(8) << CurrRef.RxPos.longitude() << "E "
+ << setw(9) << setprecision(3) << CurrRef.RxPos.height() << "m" << endl;
+ inPS = 1;
+ }
+ else if(!RefPosFile.empty()) {
+ DayTime timetag;
+ //logof << "Reference position from a file (" << RefPosFile << ")\n";
+ // make sure it exists first
+ ifstream inf(RefPosFile.c_str());
+ if(!inf) {
+ logof << "Error: could not open positions file " << RefPosFile << endl;
+ oferr << "Error: could not open positions file " << RefPosFile << endl;
+ return -1;
+ }
+ // fill the map<DayTime,RefPosData> RefPosMap;
+ RefPosMap.clear();
+ if(isRinexObsFile(RefPosFile)) {
+ if(Verbose) {
+ logof << "Reference position will come from input Rinex obs file "
+ << RefPosFile << endl;
+ if(RefPosFlat)
+ logof << " WARNING -- Reference position file is Rinex, not flat!\n";
+ }
+
+ inf.close();
+ RinexObsHeader header;
+ RinexObsData robs;
+ RinexObsStream rostream(RefPosFile.c_str());
+ rostream.exceptions(fstream::failbit);
+
+ rostream >> header;
+ //timetag = header.firstObs;
+ while(rostream >> robs) {
+ if(robs.epochFlag == 4) {
+ // TD: check this; often the in-line header has a bad epoch
+ // But if it has XYZT and DIAG, then GPSTk probably wrote it....
+ timetag = robs.time;
+ CurrRef.NPRN = 0;
+ CurrRef.valid = true;
+ CurrRef.clk = CurrRef.PDOP = CurrRef.GDOP = CurrRef.RMS = 0.0;
+ for(i=0; i<robs.auxHeader.commentList.size(); i++) {
+ string s=robs.auxHeader.commentList[i];
+ string t=stripFirstWord(s);
+ if(t == string("XYZT")) {
+ double x=asDouble(stripFirstWord(s));
+ double y=asDouble(stripFirstWord(s));
+ double z=asDouble(stripFirstWord(s));
+ CurrRef.RxPos.setECEF(x,y,z);
+ CurrRef.clk = asDouble(stripFirstWord(s));
+ }
+ else if(t==string("DIAG")) {
+ CurrRef.NPRN = asInt(stripFirstWord(s));
+ CurrRef.PDOP = asDouble(stripFirstWord(s));
+ CurrRef.GDOP = asDouble(stripFirstWord(s));
+ CurrRef.RMS = asDouble(stripFirstWord(s));
+ }
+ }
+ RefPosMap[timetag] = CurrRef;
+ }
+ }
+ rostream.close();
+ inPS = 1;
+ }
+ else { // flat file input
+ if(Verbose) {
+ logof << "Reference position will come from input flat file "
+ << RefPosFile << endl;
+ if(!RefPosFlat)
+ logof << " WARNING -- Reference position file is flat, not Rinex!\n";
+ }
+
+ bool ok,have=false,havefmt=false,havepat=false;
+ string line,format,pattern,lineT,lineP,word,fword,fmtT,fmtP;
+ Position pos;
+ CurrRef.NPRN = 0;
+ CurrRef.clk = CurrRef.PDOP = CurrRef.GDOP = CurrRef.RMS = 0.0;
+ while(!inf.eof() && inf.good()) {
+ ok = true;
+ while(line.size() > 0) {
+ if(Debug) logof << "echo: " << line << endl;
+ if(line[0] == '#') break; // skip comments
+ if(!have) {
+ if(!havefmt) {
+ format = line;
+ havefmt = true;
+ if(Debug) logof << "Format is " << format << endl;
+ }
+ else if(!havepat) {
+ pattern = line;
+ havepat = true;
+ if(Debug) logof << "Pattern is " << pattern << endl;
+ }
+ have = havefmt & havepat;
+ break;
+ }
+ fmtT = fmtP = lineT = lineP = string("");
+ for(i=0; i<numWords(line); i++) {
+ word = words(line,i,1);
+ fword = words(format,i,1);
+ if(pattern[i] == 'X') continue;
+ else if(pattern[i] == 'T') {
+ lineT += string(" ") + word;
+ fmtT += string(" ") + fword;
+ }
+ else if(pattern[i] == 'P') {
+ lineP += string(" ") + word;
+ fmtP += string(" ") + fword;
+ }
+ }
+ try {
+ timetag.setToString(lineT,fmtT);
+ }
+ catch(Exception& dte) {
+ logof << "ERROR: reading the receiver position flat file threw"
+ << " a DayTime exception:\n"
+ << " This is the time format: " << fmtT << endl;
+ ok = have = havefmt = false;
+ break;
+ }
+ try {
+ pos.setToString(lineP,fmtP);
+ pos.transformTo(Position::Cartesian);
+ CurrRef.RxPos = pos;
+ }
+ catch(Exception& ge) {
+ logof << "ERROR: reading the receiver position flat file threw"
+ << " a Position exception:\n"
+ << " This is the position format: " << fmtP << endl;
+ ok = have = havefmt = havepat = false;
+ }
+ if(ok) {
+ if(Debug)logof << "Result: t= " << timetag << " p= " << pos << endl;
+ RefPosMap[timetag] = CurrRef;
+ CurrRef.valid = true;
+ }
+ break;
+ }
+ if(!ok) break;
+ getline(inf,line);
+ stripTrailing(line,'\r');
+ }
+ inf.close();
+ if(!have) {
+ logof << "ERROR in reading receiver position file: ";
+ if(!havefmt) logof << "format ";
+ if(!havepat) {
+ if(!havefmt) logof << "and pattern ";
+ else logof << "pattern ";
+ }
+ logof << ((havepat || havefmt) ? "was " : "were ")
+ << "wrong or not found!\n";
+ logof << RxhelpString << endl;
+ logof << " [The input format is " << format << "]" << endl;
+ logof << " [The input pattern is " << pattern << "]" << endl;
+ return -2;
+ }
+ inPS = 1;
+ } // end flat file input
+
+ // compute the nominal time spacing of the map
+ {
+ const int ndtmax=15;
+ double dt,bestdt[ndtmax];
+ int j,k,nleast,ndt[ndtmax]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
+ DayTime prev(DayTime::BEGINNING_OF_TIME);
+ map<DayTime,RefPosData>::const_iterator it;
+
+ if(Debug) logof << "Here is the reference position map\n";
+ for(it=RefPosMap.begin(); it != RefPosMap.end(); it++) {
+ if(Debug) logof << " " << it->first << " " << fixed
+ << " " << setw(13) << setprecision(3) << it->second.RxPos.X()
+ << " " << setw(13) << setprecision(3) << it->second.RxPos.Y()
+ << " " << setw(13) << setprecision(3) << it->second.RxPos.Z()
+ << endl;
+ if(prev != DayTime::BEGINNING_OF_TIME) {
+ dt = it->first - prev;
+ for(i=0; i<ndtmax; i++) {
+ if(ndt[i] <= 0) { bestdt[i]=dt; ndt[i]=1; break; }
+ if(fabs(dt-bestdt[i]) < 0.0001) { ndt[i]++; break; }
+ if(i == ndtmax-1) {
+ k = 0; nleast = ndt[k];
+ for(j=1; j<ndtmax; j++) if(ndt[j] <= nleast) {
+ k=j; nleast=ndt[j];
+ }
+ ndt[k]=1; bestdt[k]=dt;
+ }
+ }
+ }
+ prev = it->first;
+ }
+ for(i=1,j=0; i<ndtmax; i++) if(ndt[i] > ndt[j]) j=i;
+ RefPosMapDT = bestdt[j];
+ }
+
+ } // end non-empty RefPosFile name
+
+ else if(doRAIM) {
+ // if(Debug) prsol.Debug = true; // write to cout ...
+ prsol.Algebraic = false;
+ //prsol.MaxNIterations = PIC.NIter; // TD add to command line?
+ //prsol.Convergence = PIC.Conv;
+ // set inPS below, when you know you can do RAIM
+ logof << "Reference position will come from RAIM\n";
+ }
+ else if(RefPosInput) {
+ logof << "Reference position will come from the input file\n";
+ inPS = 1;
+ }
+
+ // reset average RAIM solution
+ if(headRAIM) {
+ ARSX.Reset();
+ ARSY.Reset();
+ ARSZ.Reset();
+ }
+
+ // --------------------------------------------------------------------
+ // misc
+ // IonoHt used in meters
+ IonoHt *= 1000.0;
+
+ // search for SX,Y,Z input and set DoSX flag, also XR,XI,X1,X2 and DoXR
+ DoSVX = DoXR = false;
+ for(i=0; i<OTstrings.size(); i++) {
+ if(OTstrings[i]==string("SX")
+ || OTstrings[i]==string("SY")
+ || OTstrings[i]==string("SZ")) DoSVX = true;
+ if(OTstrings[i]==string("XR") || OTstrings[i]==string("XI")
+ || OTstrings[i]==string("X1") || OTstrings[i]==string("X2")) DoXR = true;
+ }
+
+ if(DoXR) {
+ int j;
+ // transformation matrix is constant
+ XRM0[0] = alpha+1; XRM0[1] = -1; XRM0[2] = 0; XRM0[3] = 0;
+ XRM1[0] = 1; XRM1[1] = -1; XRM1[2] = 0; XRM1[3] = 0;
+ XRM2[0] = -alpha-2; XRM2[1] = 2; XRM2[2] = alpha; XRM2[3] = 0;
+ XRM3[0] = -2*(alpha+1); XRM3[1] = alpha+2; XRM3[2] = 0; XRM3[3] = alpha;
+ for(i=0; i<4; i++) for(j=0; j<4; j++) XRM[i][j] /= alpha;
+ if(Debug) {
+ logof << "XRM matrix is:\n" << fixed;
+ for(i=0; i<4; i++) {
+ for(j=0; j<4; j++) {
+ logof << " " << setw(20) << setprecision(4) << XRM[i][j];
+ }
+ logof << endl;
+ }
+ }
+ }
+
+ CurrRef.valid = false;
+ if(Debug) logof << "Return from PrepareInput" << endl;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+// after reading input header and before calling REC.EditHeader (pass input header)
+int RCRinexEditor::BeforeEditHeader(const RinexObsHeader& rhin) throw(Exception)
+{
+try {
+ int i;
+
+ // save the header for later use by SaveData and ComputeNewOTs
+ rhead = rhin;
+
+ // -----------------------------------------------------------------------
+ // get indexes of input obs types, for dependence checking and fast access
+ for(i=0; i<rhin.obsTypeList.size(); i++) {
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("C1")) inC1=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("L1")) inL1=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("L2")) inL2=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("P1")) inP1=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("P2")) inP2=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("D1")) inD1=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("D2")) inD2=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("S1")) inS1=i;
+ if(rhin.obsTypeList[i] == RinexObsHeader::convertObsType("S2")) inS2=i;
+ }
+
+ // redefine inP1 based on inC1, Callow and Cforce
+ if(Callow && inC1 > -1 && inP1 == -1) inP1=inC1;
+ if(Cforce && inC1 > -1) inP1=inC1;
+
+ // -----------------------------------------------------------------------
+ // Check dependences of input and output data types
+ // -----------------------------------------------------------------------
+ // check that we can do RAIM
+ if(doRAIM) {
+ if(inP1>-1 && inP2>-1) inPS=1;
+ else {
+ ostringstream stst;
+ stst << "Error: cannot compute RAIM solution: missing";
+ if(inP1 == -1) stst << " P1";
+ if(inP2 == -1) stst << " P2";
+ if(inEP == -1) stst << " EP";
+ stst << "; abort.\n";
+ logof << stst.str();
+ oferr << stst.str();
+ return -2;
+ }
+ }
+
+ // -----------------------------------------------------------------------
+ // Define bit flags for input data types
+ unsigned int InputData=0;
+ if(Verbose) logof << "Input data:\n";
+ if(inP1 > -1) {
+ InputData |= 0x08;
+ if(Verbose) logof << " P1(" << inP1 << ")";
+ }
+ if(inP2 > -1) {
+ InputData |= 0x10;
+ if(Verbose) logof << " P2(" << inP2 << ")";
+ }
+ if(inL1 > -1) {
+ InputData |= 0x02;
+ if(Verbose) logof << " L1(" << inL1 << ")";
+ }
+ if(inL2 > -1) {
+ InputData |= 0x04;
+ if(Verbose) logof << " L2(" << inL2 << ")";
+ }
+ if(inEP > -1) {
+ InputData |= RinexObsHeader::RinexObsType::EPdepend;
+ if(Verbose) logof << " EP";
+ }
+ if(inPS > -1) {
+ InputData |= 0x40;
+ if(Verbose) logof << " PS";
+ }
+ if(Verbose) logof << "(" << hex << InputData << ")" << dec << endl;
+
+ // -----------------------------------------------------------------------
+ // create list OTList of RinexObsTypes here, for use later
+ // check dependencies of requested output OTs
+ if(Verbose) logof << "Here is the list of added OTs:";
+ for(i=0; i<OTstrings.size(); i++) {
+ if(Verbose) logof << " " << OTstrings[i];
+ OTList.push_back(RinexObsHeader::convertObsType(OTstrings[i]));
+ }
+ if(Verbose) logof << endl;
+ bool ok=true;
+ for(i=0; i<OTList.size(); i++) {
+ if((InputData & OTList[i].depend) != OTList[i].depend) {
+ ostringstream stst;
+ ok = false;
+ stst << "ResCor Error: Abort: Output OT " << OTstrings[i]
+ << " requires missing input:";
+ unsigned int test=(InputData & OTList[i].depend);
+ test ^= OTList[i].depend;
+ if(test & rhin.obsTypeList[inL1].depend) stst << " L1";
+ if(test & rhin.obsTypeList[inL2].depend) stst << " L2";
+ if(test & rhin.obsTypeList[inP1].depend) stst << " P1";
+ if(test & rhin.obsTypeList[inP2].depend) stst << " P2";
+ if(test & RinexObsHeader::RinexObsType::EPdepend) stst << " EP";
+ if(test & RinexObsHeader::RinexObsType::PSdepend) stst << " PS";
+ stst << endl;
+ logof << stst.str();
+ oferr << stst.str();
+ }
+ }
+ if(!ok) return -3;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// after calling REC.EditHeader (pass output header)
+int RCRinexEditor::AfterEditHeader(const RinexObsHeader& rhout) throw(Exception)
+{
+try {
+ int i,j;
+
+ // save header for later use by SaveData
+ rheadout = rhout;
+
+ // -----------------------------------------------------------------------
+ // define indexes of raw data in output header
+ for(i=0; i<rhout.obsTypeList.size(); i++) {
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("C1")) otC1=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("L1")) otL1=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("L2")) otL2=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("P1")) otP1=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("P2")) otP2=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("D1")) otD1=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("D2")) otD2=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("S1")) otS1=i;
+ if(rhout.obsTypeList[i] == RinexObsHeader::convertObsType("S2")) otS2=i;
+ }
+
+ // redefine otP1 based on otC1, inP1, inC1, Callow and Cforce
+ if(Callow && otC1 > -1 && inC1 > -1 && inP1 == -1) otP1=otC1;
+ if(Cforce && otC1 > -1) otP1=otC1;
+
+ // -----------------------------------------------------------------------
+ // create a list of indexes parallel to OTstrings and OTList
+ for(j=0; j<OTList.size(); j++) {
+ for(i=0; i<rhout.obsTypeList.size(); i++) {
+ if(rhout.obsTypeList[i] == OTList[j]) OTindex.push_back(i);
+ }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// after reading input obs and before calling EditObs (pass input obs)
+int RCRinexEditor::BeforeEditObs(const RinexObsData& roin) throw(Exception)
+{
+try {
+ if(Debug) logof << "\n----------------------------- " << roin.time
+ << " ------------------------" << endl;
+
+ // -----------------------------------------------------------------------
+ // in-line header info
+ // note that often these have a bad (all zeros) epoch
+ if(roin.epochFlag != 0 && roin.epochFlag != 1) {
+ if(Debug) logof << "Found in-line header (dump comments only)" << endl;
+ //roin.auxHeader.dump(logof);
+ for(int i=0; i<roin.auxHeader.commentList.size(); i++) {
+ string s=roin.auxHeader.commentList[i];
+ if(Debug) logof << s << endl;
+ if(RefPosInput) {
+ string t=stripFirstWord(s);
+ if(t == string("XYZT")) {
+ double x=asDouble(stripFirstWord(s));
+ double y=asDouble(stripFirstWord(s));
+ double z=asDouble(stripFirstWord(s));
+ CurrRef.RxPos.setECEF(x,y,z);
+ CurrRef.clk = asDouble(stripFirstWord(s));
+ }
+ else if(t==string("DIAG")) {
+ CurrRef.NPRN = asInt(stripFirstWord(s));
+ CurrRef.PDOP = asDouble(stripFirstWord(s));
+ CurrRef.GDOP = asDouble(stripFirstWord(s));
+ CurrRef.RMS = asDouble(stripFirstWord(s));
+ CurrRef.valid = true;
+//logof << "Found position:\n" << CurrRef.RxPos.printf("%.4x %.4y %.4z\n");
+ }
+ }
+ }
+ return 0;
+ }
+
+ // --------------------------------------------------------------------
+ // Save the time tag (wait to define until after in-line header info)
+ CurrentTime = roin.time;
+
+ // --------------------------------------------------------------------
+ // save the raw data, if they're not in the output
+ DataStoreMap.clear();
+ if((inL1>-1 && otL1==-1) || (inL2>-1 && otL2==-1) ||
+ (inP1>-1 && (otP1==-1 || (Cforce && otC1==-1))) || (inP2>-1 && otP2==-1)) {
+ SaveData(roin, rhead, inL1, inL2, inP1, inP2);
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// before writing out header (pass output header)
+int RCRinexEditor::BeforeWritingHeader(RinexObsHeader& rhout) throw(Exception)
+{
+try {
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// before writing out filled header (pass output header)
+int RCRinexEditor::BeforeWritingFilledHeader(RinexObsHeader& rhout) throw(Exception)
+{
+try {
+ if(headRAIM) {
+ // put average RAIM position in header
+ rhout.antennaPosition[0] = ARSX.Average();
+ rhout.antennaPosition[1] = ARSY.Average();
+ rhout.antennaPosition[2] = ARSZ.Average();
+ rhout.valid |= RinexObsHeader::antennaPositionValid;
+ if(Verbose) logof << "Average RAIM solution (" << ARSX.N()
+ << ") at time " << CurrentTime << " : "
+ << " " << fixed << setw(16) << setprecision(6) << ARSX.Average()
+ << " +/- " << scientific << setw(8) << setprecision(2) << ARSX.StdDev()
+ << ", " << fixed << setw(16) << setprecision(6) << ARSY.Average()
+ << " +/- " << scientific << setw(8) << setprecision(2) << ARSY.StdDev()
+ << ", " << fixed << setw(16) << setprecision(6) << ARSZ.Average()
+ << " +/- " << scientific << setw(8) << setprecision(2) << ARSZ.StdDev()
+ << endl;
+ }
+
+ if(Verbose) logof << "\nHere is the output header after optional records filled\n";
+ rhout.dump(logof);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// just before writing output obs (pass output obs)
+// return value of BeforeWritingObs determines what is written:
+// if return <0 abort
+// 0 write nothing
+// 1 write the obs data structure (note that if epochFlag==4,
+// this will result in in-line header information only)
+// 2 write both header data (in auxHeader) and obs data
+int RCRinexEditor::BeforeWritingObs(RinexObsData& roout) throw(Exception)
+{
+try {
+ int i;
+ // what to do with other epochFlags (in-line header information, etc)
+ if(roout.epochFlag != 0 && roout.epochFlag != 1) return 0;
+
+ // save the data, if they're in the output
+ if(otL1>-1 || otL2>-1 || otP1>-1 || otP2>-1)
+ SaveData(roout, rheadout, otL1, otL2, otP1, otP2);
+
+ // update the receiver position (via RAIM or file input)
+ if(UpdateRxPosition()) {
+ logof << "Failed to update Rx position at time " << CurrentTime << endl;
+ cerr << "Failed to update Rx position at time " << CurrentTime << endl;
+ return -1;
+ }
+
+ // compute new OTs, and add to obs
+ ComputeNewOTs(roout);
+
+ // write RAIM position solution to in-line header
+ if(outRef && (HaveRAIM || !RefPosFile.empty())) {
+ ostringstream stst1,stst2;
+ roout.auxHeader.clear();
+ stst1 << "XYZT";
+ stst1 << fixed << " " << setw(13) << setprecision(3) << CurrRef.RxPos.X();
+ stst1 << fixed << " " << setw(13) << setprecision(3) << CurrRef.RxPos.Y();
+ stst1 << fixed << " " << setw(13) << setprecision(3) << CurrRef.RxPos.Z();
+ stst1 << fixed << " " << setw(13) << setprecision(3) << CurrRef.clk;
+ roout.auxHeader.commentList.push_back(stst1.str());
+ if(Verbose)
+ logof << "RAIM output: " << roout.time.printf("%02M:%04.1f ") << stst1.str();
+
+ //for(Nsvs=0,i=0; i<Sats.size(); i++) if(Sats[i].sat > 0) Nsvs++;
+ //PDOP = RSS(prsol.Covariance(0,0),
+ // prsol.Covariance(1,1),prsol.Covariance(2,2));
+ //GDOP = RSS(PDOP, prsol.Covariance(3,3));
+ //rms = prsol.RMSResidual;
+ stst2 << "DIAG";
+ stst2 << " " << setw(2) << CurrRef.NPRN
+ << " " << fixed << setw(5) << setprecision(2) << CurrRef.PDOP
+ << " " << fixed << setw(5) << setprecision(2) << CurrRef.GDOP
+ << " " << fixed << setw(9) << setprecision(3) << CurrRef.RMS
+ << " (N,P-,G-Dop,RMS)";
+ roout.auxHeader.commentList.push_back(stst2.str());
+ if(Verbose) logof << " " << stst2.str() << endl;
+ roout.auxHeader.valid |= RinexObsHeader::commentValid;
+
+ return 4; // write both header (with epochFlag=4) and obs data
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+void SaveData(const RinexObsData& rod, const RinexObsHeader& rhd,
+ int xL1, int xL2, int xP1, int xP2) throw(Exception)
+{
+try {
+ RinexSatID sat;
+ RinexObsData::RinexObsTypeMap otmap;
+ RinexObsData::RinexSatMap::const_iterator it;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+ map<RinexSatID,RCData>::const_iterator kt;
+
+ for(it=rod.obs.begin(); it != rod.obs.end(); ++it) { // loop over satellites
+ sat = RinexSatID(it->first.id,SatID::systemGPS);
+ otmap = it->second;
+ // find the saved input data for this sat, if any
+ kt = DataStoreMap.find(sat);
+ if(kt != DataStoreMap.end()) DataStore=kt->second;
+
+ if(xL1>-1 && (jt=otmap.find(rhd.obsTypeList[xL1])) != otmap.end()) {
+ DataStore.L1 = jt->second.data;
+ DataStore.LL1 = int(jt->second.lli);
+ }
+ if(xL2>-1 && (jt=otmap.find(rhd.obsTypeList[xL2])) != otmap.end()) {
+ DataStore.L2 = jt->second.data;
+ DataStore.LL2 = int(jt->second.lli);
+ }
+ if(xP1>-1 && (jt=otmap.find(rhd.obsTypeList[xP1])) != otmap.end()) {
+ DataStore.P1 = jt->second.data;
+ }
+ if(xP2>-1 && (jt=otmap.find(rhd.obsTypeList[xP2])) != otmap.end()) {
+ DataStore.P2 = jt->second.data;
+ }
+ DataStoreMap[sat] = DataStore;
+ } // end loop over sats
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// fill global data CurrRef
+int UpdateRxPosition(void) throw(Exception)
+{
+try {
+ int iret,i;
+ double rho;
+ Xvt xvt;
+ RinexSatID sat;
+ CorrectedEphemerisRange CER;
+
+ // compute a RAIM solution, add it to average
+ HaveRAIM = false;
+ map<RinexSatID,RCData>::const_iterator kt;
+ if(doRAIM) {
+ Sats.clear();
+ PRange.clear();
+
+ //map<RinexSatID,RCData> DataStoreMap;
+ for(kt=DataStoreMap.begin(); kt != DataStoreMap.end(); kt++) {
+ if(kt->second.P1 == 0 || kt->second.P2 == 0) continue;
+ sat = kt->first;
+ if(minElev > 0.0 && CurrRef.valid) {
+ try {
+ if(SP3EphList.size() > 0)
+ rho = CER.ComputeAtReceiveTime(CurrentTime, xvt, sat,
+ SP3EphList);
+ else if(BCEphList.size() > 0)
+ rho = CER.ComputeAtReceiveTime(CurrentTime, xvt, sat,
+ BCEphList);
+ else continue;
+ }
+ catch(gpstk::EphemerisStore::NoEphemerisFound& e) {
+ continue;
+ }
+ }
+ Sats.push_back(sat);
+ PRange.push_back(if1r*kt->second.P1+if2r*kt->second.P2);
+ }
+
+ if(SP3EphList.size() > 0)
+ iret = prsol.RAIMCompute(CurrentTime, Sats, PRange, SP3EphList, &ggtm);
+ else if(BCEphList.size() > 0)
+ iret = prsol.RAIMCompute(CurrentTime, Sats, PRange, BCEphList, &ggtm);
+ else iret = -4;
+ // 2 failed to find a good solution (RMS residual or slope exceed limits)
+ // 1 solution is suspect (slope is large)
+ // 0 ok
+ // -1 failed to converge
+ // -2 singular problem
+ // -3 not enough good data to form a RAIM solution
+ // (the 4 satellite solution might be returned - check isValid())
+ // -4 ephemeris not found for one or more satellites
+ HaveRAIM = (iret==0 || iret==1);
+ if(HaveRAIM) {
+ if(Verbose) { // output results and return value
+ int Nsvs;
+ for(Nsvs=0,i=0; i<Sats.size(); i++) if(Sats[i].id > 0) Nsvs++;
+ logof << "RPF " << setw(2) << Sats.size()-Nsvs
+ << " " << setw(4) << CurrentTime.GPSfullweek() << fixed
+ << " " << setw(10) << setprecision(3) << CurrentTime.GPSsecond()
+ << " " << setw(2) << Nsvs
+ << " " << setw(16) << setprecision(6) << prsol.Solution(0)
+ << " " << setw(16) << setprecision(6) << prsol.Solution(1)
+ << " " << setw(16) << setprecision(6) << prsol.Solution(2)
+ << " " << setw(16) << setprecision(6) << prsol.Solution(3)
+ << " " << setw(16) << setprecision(6) << prsol.RMSResidual
+ << " " << fixed << setw(7) << setprecision(1) << prsol.MaxSlope
+ << " " << prsol.NIterations
+ << " " << scientific
+ << setw(8) << setprecision(2) << prsol.Convergence;
+ for(i=0; i<Sats.size(); i++) logof << " " << setw(3) << Sats[i].id;
+ logof << " (" << iret << ")" << (prsol.isValid() ? " V":" NV") << endl;
+ }
+
+ CurrRef.RxPos.setECEF(prsol.Solution(0),prsol.Solution(1),
+ prsol.Solution(2));
+ CurrRef.valid = true;
+ CurrRef.clk = prsol.Solution(3);
+ CurrRef.NPRN = prsol.Nsvs;
+ CurrRef.PDOP = RSS(prsol.Covariance(0,0),prsol.Covariance(1,1),
+ prsol.Covariance(2,2));
+ CurrRef.GDOP = RSS(CurrRef.PDOP, prsol.Covariance(3,3));
+ CurrRef.RMS = prsol.RMSResidual;
+ if(headRAIM) { // add to average
+ ARSX.Add(CurrRef.RxPos.X());
+ ARSY.Add(CurrRef.RxPos.Y());
+ ARSZ.Add(CurrRef.RxPos.Z());
+ }
+ inPS = 1;
+ }
+ else { // RAIM failed
+ if(Verbose) {
+ logof << "RAIM failed at " << CurrentTime << " : returned '";
+ if(iret == 2) logof << "failed to find a good solution "
+ << "(RMS residual or slope exceed limits)";
+ if(iret == -1) logof << "failed to converge";
+ if(iret == -2) logof << "singular problem";
+ if(iret == -3) logof << "not enough good data to form a RAIM solution";
+ if(iret == -4) {
+ logof << "ephemeris not found for satellite";
+ for(i=0; i<Sats.size(); i++) {
+ if(Sats[i].id < 0) {
+ Sats[i].id *= -1;
+ logof << " " << Sats[i];
+ }
+ }
+ }
+ logof << "'." << endl;
+ }
+ inPS=-1;
+ }
+ }
+ else if(!RefPosFile.empty()) { // update RxPos from map
+ map<DayTime,RefPosData>::iterator ite;
+ ite = RefPosMap.lower_bound(CurrentTime);
+ // ite points to first element with value >= CurrentTime
+ if(ite == RefPosMap.end() || fabs(ite->first - CurrentTime) > 0.1*RefPosMapDT) {
+ if(Verbose) logof << "No Rx position found at " << CurrentTime << endl;
+ CurrRef.valid = false;
+ inPS = -1;
+ }
+ else {
+ CurrRef.RxPos = ite->second.RxPos;
+ CurrRef.clk = ite->second.clk;
+ CurrRef.NPRN = ite->second.NPRN;
+ CurrRef.PDOP = ite->second.PDOP;
+ CurrRef.GDOP = ite->second.GDOP;
+ CurrRef.RMS = ite->second.RMS;
+ CurrRef.valid = true;
+ inPS = 1;
+ }
+ }
+
+ if(Debug && inPS > -1) {
+ logof << "RxPos " << CurrentTime
+ << " " << CurrentTime.printf("%04F %10.3g") << fixed << setprecision(3)
+ << " " << setw(13) << CurrRef.RxPos.X()
+ << " " << setw(13) << CurrRef.RxPos.Y()
+ << " " << setw(13) << CurrRef.RxPos.Z()
+ << endl;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void ComputeNewOTs(RinexObsData& rod) throw(Exception)
+{
+try {
+ bool HaveR,HaveP,HaveEphRange,ok,reset,HaveEphThisSat;
+ double rho,IPPLat,IPPLon,Obliq,Trop,Tgd;
+ RinexObsData::RinexSatMap::iterator it; // for loop over sats
+ map<RinexSatID,RCData>::const_iterator kt; // for DataStoreMap
+ vector<RinexSatID> SVDelete;
+ RinexSatID sat;
+ //RinexObsData::RinexObsTypeMap otmap;
+ CorrectedEphemerisRange CER;
+
+ if(Debug) {
+ logof << "Obs data before mods\n";
+ rod.dump(logof);
+ }
+
+ // loop over sats
+ for(it=rod.obs.begin(); it != rod.obs.end(); ++it) {
+ sat = RinexSatID(it->first.id,SatID::systemGPS);
+ //otmap = it->second;
+
+ // delete this satellite if it is excluded, or if RAIM has marked it
+ if( (SVonly.id > 0 && sat != SVonly) ||
+ (editRAIM && HaveRAIM &&
+ find(Sats.begin(),Sats.end(),RinexSatID(-sat.id,sat.system))!=Sats.end()))
+ {
+ SVDelete.push_back(sat);
+ continue;
+ }
+
+ // --------------------------------------------------------
+ // find the saved input data for this sat
+ kt = DataStoreMap.find(sat);
+ HaveR = HaveP = false;
+ if(kt != DataStoreMap.end()) { // have data
+ HaveR = (kt->second.P1 != 0.0 && kt->second.P2 != 0.0);
+ HaveP = (kt->second.L1 != 0.0 && kt->second.L2 != 0.0);
+ }
+ if(doRAIM && !HaveRAIM) inPS=-1;
+
+ // --------------------------------------------------------
+ // compute ephemeris range and ionospheric pierce point
+ if(inEP > -1) HaveEphThisSat=true;
+ HaveEphRange = (HaveEphThisSat && inPS > -1);
+ rho = IPPLat = IPPLon = Obliq = Tgd = 0;
+ if(HaveEphRange) {
+ Xvt xvt;
+ xvt.x[0] = CurrRef.RxPos.X();
+ xvt.x[1] = CurrRef.RxPos.Y();
+ xvt.x[2] = CurrRef.RxPos.Z();
+ try {
+ if(SP3EphList.size() > 0)
+ rho = CER.ComputeAtReceiveTime(CurrentTime, xvt, sat, SP3EphList);
+ else if(BCEphList.size() > 0)
+ rho = CER.ComputeAtReceiveTime(CurrentTime, xvt, sat, BCEphList);
+ else {
+ gpstk::EphemerisStore::NoEphemerisFound e("No ephemeris in store");
+ GPSTK_THROW(e);
+ }
+ }
+ catch(gpstk::EphemerisStore::NoEphemerisFound& e) {
+ if(Verbose)
+ logof << "ComputeNewOTs failed to find ephemeris for satellite "
+ << sat << " at time " << CurrentTime << endl;
+ HaveEphThisSat = false;
+ HaveEphRange = false;
+ }
+
+ if(HaveEphRange) {
+ if(minElev > 0.0 && CER.elevation < minElev) {
+ HaveEphRange = HaveEphThisSat = false;
+ SVDelete.push_back(sat);
+ }
+ else {
+ Position IPP=CurrRef.RxPos.getIonosphericPiercePoint(
+ CER.elevation,CER.azimuth, IonoHt);
+ IPPLat = IPP.geodeticLatitude();
+ IPPLon = IPP.longitude();
+ //Obliq = WGS84.a()*cos(CER.elevation*DEG_TO_RAD)/(WGS84.a()+IonoHt);
+ Obliq = cos(CER.elevation*DEG_TO_RAD)/(1.0+IonoHt/WGS84.a());
+ Obliq = ::sqrt(1.0-Obliq*Obliq);
+ // NB other trop models may require a different call,
+ // and will throw(InvalidTropModel) here
+ Trop = ggtm.correction(CER.elevation);
+ if(BCEphList.size() > 0) {
+ const EngEphemeris& eph = BCEphList.findEphemeris(sat,CurrentTime);
+ Tgd = C_GPS_M * eph.getTgd();
+ }
+ }
+ }
+ }
+
+ // --------------------------------------------------------
+ // compute XR,XI,X1,X2
+ if(DoXR && HaveR && HaveP) {
+ XRdat[0] = wl1 * kt->second.L1;
+ XRdat[1] = wl2 * kt->second.L2;
+ XRdat[2] = kt->second.P1;
+ XRdat[3] = kt->second.P2;
+ for(int i=0; i<4; i++) {
+ XRsol[i] = 0.0;
+ for(int j=0; j<4; j++) {
+ XRsol[i] += XRM[i][j] * XRdat[j];
+ }
+ }
+ }
+
+ // --------------------------------------------------------
+ // get satellite position (if not found above)
+ if(DoSVX && HaveEphThisSat && inPS == -1) {
+ unsigned long ref;
+ try {
+ if(SP3EphList.size())
+ CER.svPosVel = SP3EphList.getSatXvt(sat,CurrentTime);
+ else
+ CER.svPosVel = BCEphList.getSatXvt(sat,CurrentTime);
+ }
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ HaveEphThisSat = false;
+ }
+ }
+
+ // --------------------------------------------------------
+ // now loop over new output OTs, compute and debias them
+ RinexObsData::RinexObsTypeMap::iterator jt;
+ for(int i=0; i<OTList.size(); i++) {
+ jt = it->second.find(OTList[i]);
+ if(jt == it->second.end()) continue; // error. throw?
+
+ jt->second.data = 0.0; // default = marked bad
+ ok = false;
+
+ if(OTstrings[i] == string("ER")) {
+ ok = HaveEphRange;
+ if(ok) jt->second.data = rho;
+ }
+ else if(OTstrings[i] == string("RI")) {
+ ok = HaveR;
+ if(ok) jt->second.data = (kt->second.P2 - kt->second.P1)/alpha;
+ }
+ else if(OTstrings[i] == string("PI")) {
+ ok = HaveP;
+ if(ok) jt->second.data = (wl1*kt->second.L1 - wl2*kt->second.L2)/alpha;
+ }
+ else if(OTstrings[i] == string("TR")) {
+ ok = HaveEphRange;
+ if(ok) jt->second.data = Trop;
+ }
+ else if(OTstrings[i] == string("RL")) {
+ ok = HaveEphThisSat;
+ if(ok) jt->second.data = CER.relativity;
+ }
+ else if(OTstrings[i] == string("SC")) {
+ ok = HaveEphThisSat;
+ if(ok) jt->second.data = CER.svclkbias;
+ }
+ else if(OTstrings[i] == string("EL")) {
+ ok = HaveEphRange;
+ if(ok) jt->second.data = CER.elevation;
+ }
+ else if(OTstrings[i] == string("AZ")) {
+ ok = HaveEphRange;
+ if(ok) jt->second.data = CER.azimuth;
+ }
+ else if(OTstrings[i] == string("SR")) {
+ ok = HaveR;
+ if(ok) jt->second.data =
+ (kt->second.P2 - kt->second.P1 - Tgd)*TECUperM/alpha;
+ }
+ else if(OTstrings[i] == string("SP")) {
+ ok = HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ (wl1*kt->second.L1 - wl2*kt->second.L2)*TECUperM/alpha);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("VR")) {
+ ok = (HaveR && HaveEphRange);
+ if(ok) jt->second.data =
+ ((kt->second.P2 - kt->second.P1 - Tgd)*TECUperM/alpha)*Obliq;
+ }
+ else if(OTstrings[i] == string("VP")) {
+ ok = (HaveP && HaveEphRange);
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ ((wl1*kt->second.L1 - wl2*kt->second.L2 - Tgd)*TECUperM/alpha)*Obliq);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("LA")) {
+ ok = HaveEphRange;
+ if(ok) jt->second.data = IPPLat;
+ }
+ else if(OTstrings[i] == string("LO")) {
+ ok = HaveEphRange;
+ if(ok) jt->second.data = IPPLon;
+ }
+ else if(OTstrings[i] == string("P3")) {
+ ok = HaveR;
+ if(ok) jt->second.data = if1r*kt->second.P1 + if2r*kt->second.P2;
+ }
+ else if(OTstrings[i] == string("L3")) {
+ ok = HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ if1p*kt->second.L1 + if2p*kt->second.L2);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("PF")) {
+ ok = HaveR;
+ if(ok) jt->second.data = gf1r*kt->second.P1 + gf2r*kt->second.P2;
+ }
+ else if(OTstrings[i] == string("LF")) {
+ ok = HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ gf1p*kt->second.L1 + gf2p*kt->second.L2);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("PW")) {
+ ok = HaveR;
+ if(ok) jt->second.data = wl1r*kt->second.P1 + wl2r*kt->second.P2;
+ }
+ else if(OTstrings[i] == string("LW")) {
+ ok = HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ wl1p*kt->second.L1 + wl2p*kt->second.L2);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("MP") || OTstrings[i] == string("M3")) {
+ ok = (HaveP && HaveR);
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ if1r*kt->second.P1 + if2r*kt->second.P2
+ - (if1p*kt->second.L1 + if2p*kt->second.L2));
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("R1")) {
+ ok = (kt->second.P1 != 0 && kt->second.L1 != 0);
+ if(ok) jt->second.data = 0.5*(kt->second.P1 + kt->second.L1);
+ }
+ else if(OTstrings[i] == string("R2")) {
+ ok = (kt->second.P2 != 0 && kt->second.L2 != 0);
+ if(ok) jt->second.data = 0.5*(kt->second.P2 + kt->second.L2);
+ }
+ else if(OTstrings[i] == string("M1")) {
+ ok = (kt->second.P1 != 0 && kt->second.L1 != 0);
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ kt->second.P1 - wl1*kt->second.L1);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("M2")) {
+ ok = (kt->second.P2 != 0 && kt->second.L2 != 0);
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ kt->second.P2 - wl2*kt->second.L2);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ // M3 is MP
+ else if(OTstrings[i] == string("M4")) {
+ ok = (HaveP && HaveR);
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ gf1r*kt->second.P1 + gf2r*kt->second.P2
+ - (gf1p*kt->second.L1 + gf2p*kt->second.L2));
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("M5")) {
+ ok = (HaveP && HaveR);
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,
+ wl1r*kt->second.P1 + wl2r*kt->second.P2
+ - (wl1p*kt->second.L1 + wl2p*kt->second.L2));
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("XR")) {
+ ok = HaveR && HaveP;
+ if(ok) {
+ jt->second.data = XRsol[0];
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("XI")) {
+ ok = HaveR && HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,XRsol[1]);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("X1")) {
+ ok = HaveR && HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,XRsol[2]);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("X2")) {
+ ok = HaveR && HaveP;
+ if(ok) {
+ jt->second.data = removeBias(OTList[i], sat, reset, rod.time,XRsol[3]);
+ if(reset) jt->second.lli |= 1;
+ }
+ }
+ else if(OTstrings[i] == string("SX")) {
+ ok = HaveP && HaveEphThisSat;
+ if(ok) jt->second.data = CER.svPosVel.x[0];
+ }
+ else if(OTstrings[i] == string("SY")) {
+ ok = HaveP && HaveEphThisSat;
+ if(ok) jt->second.data = CER.svPosVel.x[1];
+ }
+ else if(OTstrings[i] == string("SZ")) {
+ ok = HaveP && HaveEphThisSat;
+ if(ok) jt->second.data = CER.svPosVel.x[2];
+ }
+ else ok = false;
+
+ if(!ok) continue;
+
+ // --------------------------------------------------------
+ // set LLI flag, if it depends on phase, and if phase LLI is set
+ unsigned int test=0;
+ if(inL1 > -1) test=rhead.obsTypeList[inL1].depend;
+ else if(otL1 > -1) test=rhead.obsTypeList[otL1].depend;
+ if((OTList[i].depend & test) && (kt->second.LL1 & 0x01))
+ jt->second.lli |= 1;
+ test = 0;
+ if(inL2 > -1) test=rhead.obsTypeList[inL2].depend;
+ else if(otL2 > -1) test=rhead.obsTypeList[otL2].depend;
+ if((OTList[i].depend & test) && (kt->second.LL2 & 0x01))
+ jt->second.lli |= 1;
+
+ //if(ok && Verbose) ; // TD output here
+
+ } // end loop over new output OTs
+
+ // --------------------------------------------------------
+ // delete this satellite if there is no good data in it
+ for(jt=it->second.begin(); jt != it->second.end(); jt++) {
+ if(jt->second.data != 0.0) break;
+ }
+ if(jt == it->second.end()) SVDelete.push_back(sat);
+
+ } // end loop over sats
+
+ // delete satellites
+ for(int i=0; i<SVDelete.size(); i++) {
+ rod.obs.erase(RinexSatID(SVDelete[i].id,SatID::systemGPS));
+ rod.numSvs--;
+ }
+
+ if(Debug) {
+ logof << "Obs data after mods\n";
+ rod.dump(logof);
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+//------------------------------------------------------------------------------------//------------------------------------------------------------------------------------
+// NB reentrant, but ugly, function
+// NB PreProcessArgs pulls out --debug --verbose and the -f<f> and --file <f> options.
+// NB It also allow --ROThelp and --REChelp to have any case
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ if(Debug) cout << "Found a file of options: " << filename << endl;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer = "";
+ }
+ else if(word == "--file")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped below
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ // check this last b/c there can be a line at EOF without CRLF...
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if(string(arg)==string("--verbose"))
+ Verbose = true;
+ else if(string(arg)==string("--debug"))
+ Debug = true;
+ else if(string(arg)==string("--file"))
+ found_cfg_file = true;
+ else if(lowerCase(string(arg)) == string("--rothelp"))
+ Args.push_back(string("--ROThelp"));
+ else if(lowerCase(string(arg)) == string("--rechelp"))
+ Args.push_back(string("--REChelp"));
+ else if(lowerCase(string(arg)) == string("--rxhelp"))
+ Args.push_back(string("--Rxhelp"));
+ else
+ Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// define the bias limit, assign it to the invalid (-1,GPS) satellite
+int setBiasLimit(RinexObsHeader::RinexObsType& ot, double lim) throw(Exception)
+{
+try {
+ if(RinexObsHeader::convertObsType(ot)==string("UN") || lim <= 0.0) return -1;
+ RinexSatID p; // invalid: -1,GPS ... let this hold the LIMIT in the map
+ map<RinexObsHeader::RinexObsType,map<RinexSatID,double> >::iterator it;
+ if( (it=AllBiases.find(ot)) == AllBiases.end()) { // not found
+ map<RinexSatID,double> bm;
+ bm[p] = lim;
+ AllBiases[ot] = bm;
+ if(Verbose) logof << "Set bias for " << RinexObsHeader::convertObsType(ot)
+ << "," << p << " to " << fixed << setprecision(3) << lim << endl;
+ }
+ else { // found
+ it->second[p] = lim;
+ if(Verbose) logof << "Re-Set bias for " << RinexObsHeader::convertObsType(ot)
+ << "," << p << " to " << fixed << setprecision(3) << lim << endl;
+ }
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// set bias, if necessary, and return raw-bias
+double removeBias(const RinexObsHeader::RinexObsType& ot, const RinexSatID& sv,
+ bool& rset, DayTime& tt, double raw) throw(Exception)
+{
+try {
+ rset = false;
+ // is the input valid?
+ if(RinexObsHeader::convertObsType(ot)==string("UN") || sv.id==-1) return raw;
+
+ // get the map<RinexSatID,double> for this OT
+ map<RinexObsHeader::RinexObsType,map<RinexSatID,double> >::iterator it;
+ if( (it=AllBiases.find(ot)) == AllBiases.end()) return raw; // did not find OT
+ // it->second is the right map<RinexSatID,double>
+
+ // get the limit
+ RinexSatID p;
+ map<RinexSatID,double>::iterator jt;
+ jt = it->second.find(p); // p is (-1,GPS) here, so bias=limit
+ if(jt == it->second.end()) return raw; // should never happen - throw?
+ double limit=jt->second;
+
+ // now find the current bias for the input satellite
+ double bias;
+ if( (jt=it->second.find(sv)) == it->second.end()) { // sat not found, define bias
+ bias = it->second[sv] = raw-0.001;
+ if(Verbose) logof << "Did not find a bias for "
+ << RinexObsHeader::convertObsType(ot) << "," << sv
+ << " at time " << tt.printf("%4F %10.3g = %4Y/%02m/%02d %02H:%02M:%02S")
+ << ", set it to " << fixed << setprecision(3) << bias << endl;
+ rset = true;
+ }
+ else { // found the sat
+ bias = jt->second;
+ // logof << "Found bias for " << RinexObsHeader::convertObsType(ot)
+ // << "," << sv << " = " << fixed << setprecision(3) << bias << endl;
+ if(fabs(raw-jt->second) > limit) {
+ if(Verbose) logof << "Bias limit for " << RinexObsHeader::convertObsType(ot)
+ << "," << sv << " was exceeded at time "
+ << tt.printf("%4F %10.3g = %4Y/%02m/%02d %02H:%02M:%02S")
+ << " (" << fixed << setprecision(3) << raw-jt->second
+ << " > " << setprecision(3) << limit
+ << "), set it to " << fixed << setprecision(3) << raw-0.001 << endl;
+ bias = it->second[sv] = raw-0.001;
+ rset = true;
+ }
+ }
+
+ return raw-bias;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/Rinextools/RinSum.cpp b/dev/apps/Rinextools/RinSum.cpp
new file mode 100644
index 0000000..8697c16
--- /dev/null
+++ b/dev/apps/Rinextools/RinSum.cpp
@@ -0,0 +1,852 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file RinSum.cpp
+ * Read and summarize Rinex observation files, optionally fill header in-place.
+ */
+
+#include "MathBase.hpp"
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexNavBase.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "RinexSatID.hpp"
+#include "CommandOptionParser.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "icd_200_constants.hpp"
+#include "RinexUtilities.hpp"
+
+#include <string>
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <algorithm>
+#include <time.h>
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+string version("2.4 1/22/07");
+
+// data input from command line
+vector<string> InputFiles;
+string InputDirectory;
+string OutputFile;
+ostream* pout;
+DayTime BegTime, EndTime;
+bool ReplaceHeader=false;
+bool TimeSortTable=false;
+bool GPSTimeOutput=false;
+bool debug=false;
+bool brief=false;
+
+//------------------------------------------------------------------------------------
+// data used for computation
+const int ndtmax=15;
+double dt,bestdt[ndtmax];
+int ndt[ndtmax]={-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
+int nepochs,ncommentblocks;
+
+//------------------------------------------------------------------------------------
+// class used to store SAT/Obs table
+class TableData {
+public:
+ RinexSatID sat;
+ vector<int> nobs;
+ double prevC1,prevP1,prevL1;
+ DayTime begin,end;
+ TableData(const SatID& p, const int& n)
+ { sat=RinexSatID(p); nobs=vector<int>(n); prevC1=prevP1=prevL1=0; };
+ // needed for find()
+ inline bool operator==(const TableData& d) {return d.sat == sat;}
+};
+ // for sort()
+class TableSATLessThan {
+public:
+ bool operator()(const TableData& d1, const TableData& d2)
+ { return d1.sat < d2.sat; }
+};
+class TableBegLessThan {
+public:
+ bool operator()(const TableData& d1, const TableData& d2)
+ { return d1.begin < d2.begin; }
+};
+
+//------------------------------------------------------------------------------------
+// prototypes
+int GetCommandLine(int argc, char **argv) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ int iret,i,j,k,n,ifile,nsats,nclkjumps,L1lli;
+ double C1,L1,P1,clkjumpave,clkjumpvar;
+ DayTime last,prev,ftime;
+ vector<DayTime> clkjumpTimes;
+ vector<double> clkjumpMillsecs,clkjumpUncertainty;
+ vector<int> clkjumpAgree;
+
+ BegTime = DayTime::BEGINNING_OF_TIME;
+ EndTime = DayTime::END_OF_TIME;
+
+ // Title and description
+ string Title;
+ Title = "RINSUM, part of the GPS ToolKit, Ver " + version + ", Run ";
+ time_t timer;
+ struct tm *tblock;
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ last.setYMDHMS(1900+tblock->tm_year,1+tblock->tm_mon,
+ tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
+ Title += last.printf("%04Y/%02m/%02d %02H:%02M:%02S\n");
+ cout << Title;
+
+ iret=GetCommandLine(argc, argv);
+ if(iret) return iret;
+
+ iret = RegisterARLUTExtendedTypes();
+ if(iret) return iret;
+
+ // open the output file and write to it
+ if(!OutputFile.empty()) {
+ pout = new ofstream(OutputFile.c_str(),ios::out);
+ if(pout->fail()) {
+ cerr << "Could not open output file " << OutputFile << endl;
+ pout = &cout;
+ }
+ else {
+ pout->exceptions(ios::failbit);
+ *pout << Title;
+ cout << "Writing summary to file " << OutputFile << endl;
+ }
+ }
+ else pout = &cout;
+
+ // add path to input file names
+ if(!InputDirectory.empty()) for(ifile=0; ifile<InputFiles.size(); ifile++) {
+ InputFiles[ifile] = InputDirectory + "/" + InputFiles[ifile];
+ }
+ // sort the input file names on header first time
+ if(InputFiles.size() > 1) sortRinexObsFiles(InputFiles);
+
+ // now open the input files, read the headers and data
+ RinexObsHeader rheader;
+ RinexObsData robs;
+ for(ifile=0; ifile<InputFiles.size(); ifile++) {
+ string filename;
+ if(!InputDirectory.empty()) filename = InputDirectory + "/";
+ filename += InputFiles[ifile];
+ RinexObsStream InStream(filename.c_str());
+ if(!InStream) {
+ *pout << "File " << filename << " could not be opened.\n";
+ continue;
+ }
+ InStream.exceptions(ios::failbit);
+ if(!isRinexObsFile(filename)) {
+ *pout << "File " << filename << " is not a Rinex observation file\n";
+ if(isRinexNavFile(filename))
+ *pout << "This file is a Rinex navigation file - try NavMerge\n";
+ continue;
+ }
+
+ prev = DayTime::BEGINNING_OF_TIME;
+ ftime = DayTime::BEGINNING_OF_TIME;
+
+ if(!brief) *pout << "+++++++++++++ RinSum summary of Rinex obs file "
+ << filename << " +++++++++++++\n";
+ else *pout << "\nFile name: " << filename << endl;
+
+ // input header
+ try {
+ InStream >> rheader;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading header: "
+ << e.getText(0) << endl;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught a gpstk exception while reading header: "
+ << e.getText(0) << endl;
+ }
+
+ if(!brief) {
+ *pout << "Rinex header:\n";
+ rheader.dump(*pout);
+ }
+ else *pout << "Position (XYZ,m) : " << fixed << setprecision(4)
+ << rheader.antennaPosition << ".\n";
+
+ if(!rheader.isValid()) {
+ *pout << "Abort: header is invalid\n";
+ if(!brief) *pout << "\n+++++++++++++ End of RinSum summary of "
+ << filename << " +++++++++++++\n";
+ continue;
+ }
+
+ //RinexObsStream out(argv[2], ios::out);
+ //out << rheader;
+
+ nepochs = ncommentblocks = 0;
+ n = rheader.obsTypeList.size();
+ vector<TableData> table;
+ vector<int> totals(n);
+
+ if(pout == &cout) *pout << "Reading the observation data..." << endl;
+
+ // input obs
+ while(InStream >> robs)
+ {
+ if(debug) *pout << "Epoch: " << robs.time
+ << ", Flag " << robs.epochFlag
+ << ", Nsat " << robs.obs.size()
+ << ", clk " << fixed << robs.clockOffset << endl;
+
+ // is this a comment?
+ if(robs.epochFlag > 1) {
+ ncommentblocks++;
+ //*pout << "inline header info:\n";
+ //robs.auxHeader.dump(*pout);
+ continue;
+ }
+
+ // update first and last time seen, check time limits, count epochs
+ last = robs.time;
+ if(last < BegTime) continue;
+ if(last > EndTime) break;
+ if(ftime == DayTime::BEGINNING_OF_TIME) ftime=last;
+ nepochs++;
+ nsats = nclkjumps = 0; // count sats and signs clock jumps have occurred
+ clkjumpave = clkjumpvar = 0.0;
+
+ // loop over satellites
+ RinexObsData::RinexSatMap::const_iterator it;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+ for(it=robs.obs.begin(); it != robs.obs.end(); ++it) {
+ // update the table
+ vector<TableData>::iterator ptab;
+ ptab = find(table.begin(),table.end(),TableData(it->first,n));
+ if(ptab == table.end()) { // sat not found in table - create one
+ table.push_back(TableData(it->first,n));
+ ptab = find(table.begin(),table.end(),TableData(it->first,n));
+ ptab->begin = last;
+ }
+ // update end time for this sat
+ ptab->end = last;
+ if(debug) *pout << "Sat " << setw(2) << RinexSatID(it->first);
+
+ // loop over obs types
+ C1 = P1 = L1 = 0;
+ for(jt=it->second.begin(); jt!=it->second.end(); jt++) {
+ // find the index for this obs type
+ for(k=0; k<n; k++) if(rheader.obsTypeList[k] == jt->first) break;
+ // count this obs
+ if(jt->second.data != 0) {
+ ptab->nobs[k]++; // per obs
+ totals[k]++;
+ }
+ // save L1 range and phase for clk jump test below
+ if(jt->first==RinexObsHeader::C1) C1 = jt->second.data*1000.0/C_GPS_M;
+ if(jt->first==RinexObsHeader::P1) P1 = jt->second.data*1000.0/C_GPS_M;
+ if(jt->first == RinexObsHeader::L1) {
+ L1 = jt->second.data * 1000.0/C_GPS_M;
+ L1lli = jt->second.lli;
+ }
+ // dump this data
+ if(debug) *pout << " " << RinexObsHeader::convertObsType(jt->first)
+ << " " << setw(13) << setprecision(3) << jt->second.data << " "
+ << jt->second.lli << " " << jt->second.ssi;
+ } // end loop over obs types
+ if(debug) *pout << endl;
+
+ // test for millisecond clock adjusts -
+ // sometimes they are applied to range but not phase or vice-versa
+ if(prev != DayTime::BEGINNING_OF_TIME && L1 != 0 && ptab->prevL1 != 0) {
+ int nms;
+ double test;
+ nsats++;
+ if(P1 != 0 && ptab->prevP1 != 0)
+ test = P1-L1_WAVELENGTH*L1
+ - (ptab->prevP1-L1_WAVELENGTH*ptab->prevL1);
+ else if(C1 != 0 && ptab->prevC1 != 0)
+ test = C1-L1_WAVELENGTH*L1
+ - (ptab->prevC1-L1_WAVELENGTH*ptab->prevL1);
+ else
+ test = 0.0;
+ if(fabs(test) > 0.5) { // test must be > 150 km =~ 1/2 millisecond
+ // is it nearly an even multiple of 1 millisecond?
+ //test *= 1000.0/C_GPS_M;
+ if(debug) *pout << "possible clock jump: test = "
+ << setprecision(9) << test;
+ nms = long(test + (test > 0 ? 0.5 : -0.5));
+ if(fabs(test - double(nms)) < 0.001) {
+ if(debug) *pout << " -> " << setprecision(9)
+ << fabs(test - double(nms));
+ // keep clkjumpave = sequential average nms, clkjumpvar=variance
+ if(test < 0) nms *= -1;
+ nclkjumps++;
+ clkjumpave += (double(nms)-clkjumpave)/double(nclkjumps);
+ if(nclkjumps > 1)
+ clkjumpvar = (clkjumpvar*(nclkjumps-2)
+ + nclkjumps*(double(nms)-clkjumpave)*(double(nms)-clkjumpave)
+ /(nclkjumps-1))/(nclkjumps-1);
+ }
+ else if(debug) *pout << " - failed.";
+ if(debug && L1lli != 0) { *pout << " LLI is set"; }
+ if(debug) *pout << " " << RinexSatID(it->first)
+ << " " << last.printf("%4F %.3g") << endl;
+ }
+ }
+ // save C1,L1,P1 for this sat for next time
+ ptab->prevC1 = C1;
+ ptab->prevL1 = L1;
+ ptab->prevP1 = P1;
+
+ } // end loop over sats
+
+ //out << robs;
+
+ // if more than half the sats saw a clk jump, call it
+ if(nclkjumps > nsats/2) {
+ if(debug) *pout << "test nclkjumps is " << nclkjumps
+ << " and nsats is " << nsats
+ << ", ave is " << fixed << setprecision(3) << clkjumpave
+ << " and stddev is " << setprecision(3) << sqrt(clkjumpvar)
+ << endl;
+ clkjumpTimes.push_back(last);
+ clkjumpMillsecs.push_back(clkjumpave);
+ clkjumpAgree.push_back(nsats-nclkjumps);
+ clkjumpUncertainty.push_back(sqrt(clkjumpvar));
+ }
+
+ if(prev != DayTime::BEGINNING_OF_TIME) {
+ dt = last-prev;
+ if(dt > 0.0) {
+ for(i=0; i<ndtmax; i++) {
+ if(ndt[i] <= 0) { bestdt[i]=dt; ndt[i]=1; break; }
+ if(fabs(dt-bestdt[i]) < 0.0001) { ndt[i]++; break; }
+ if(i == ndtmax-1) {
+ k = 0;
+ int nleast=ndt[k];
+ for(j=1; j<ndtmax; j++) if(ndt[j] <= nleast) {
+ k=j; nleast=ndt[j];
+ }
+ ndt[k]=1; bestdt[k]=dt;
+ }
+ }
+ }
+ else {
+ cerr << " WARNING time tags out of order: "
+ //<< " prev > curr : "
+ << prev.printf("%F/%.0g = %04Y/%02m/%02d %02H:%02M:%02S")
+ << " > "
+ << last.printf("%F/%.0g = %04Y/%02m/%02d %02H:%02M:%02S")
+ << endl;
+ }
+ }
+ prev = last;
+
+ } // end loop over epochs in the file
+ InStream.close();
+
+ // check that we found some data
+ if(nepochs <= 0) {
+ *pout << "File " << filename << " : no data found. Are time limits wrong?\n";
+ continue;
+ }
+
+ // compute interval
+ for(i=1,j=0; i<ndtmax; i++) if(ndt[i]>ndt[j]) j=i;
+ dt = bestdt[j];
+
+ // summary info
+ *pout << "Computed interval "
+ << fixed << setw(5) << setprecision(2) << dt << " seconds." << endl;
+ *pout << "Computed first epoch: " << ftime.printf("%4F %14.7g") << " = "
+ << ftime.printf("%04Y/%02m/%02d %02H:%02M:%010.7f") << endl;
+ *pout << "Computed last epoch: " << last.printf("%4F %14.7g") << " = "
+ << last.printf("%04Y/%02m/%02d %02H:%02M:%010.7f") << endl;
+
+ *pout << "Computed time span:";
+ double secs=last-ftime;
+ int iday = int(secs/86400.0);
+ if(iday > 0) *pout << " " << iday << "d";
+ DayTime delta;
+ delta.setSecOfDay(secs - iday*86400);
+ *pout << " " << delta.hour() << "h "
+ << delta.minute() << "m "
+ << delta.second() << "s = "
+ << secs << " seconds." << endl;
+
+ i = 1+int(0.5+(last-ftime)/dt);
+ if(!brief) *pout << "There were " << nepochs << " epochs ("
+ << setprecision(2) << double(nepochs*100)/i
+ << "% of " << i << " possible epochs in this timespan) and "
+ << ncommentblocks << " inline header blocks.\n";
+
+ // sort table
+ sort(table.begin(),table.end(),TableSATLessThan());
+ if(TimeSortTable) sort(table.begin(),table.end(),TableBegLessThan());
+
+ // output table
+ // header
+ vector<TableData>::iterator tit;
+ if(table.size() > 0) table.begin()->sat.setfill('0');
+ if(!brief) {
+ *pout << "\n Summary of data available in this file: "
+ << "(Totals are based on times and interval)\n";
+ *pout << "Sat OT:";
+ for(k=0; k<n; k++)
+ *pout << setw(7) << rheader.obsTypeList[k].type;
+ *pout << " Total Begin time - End time\n";
+ // loop
+ for(tit=table.begin(); tit!=table.end(); ++tit) {
+ *pout << "Sat " << tit->sat << " ";
+ for(k=0; k<n; k++) *pout << setw(7) << tit->nobs[k];
+ // compute total based on times
+ *pout << setw(7) << 1+int(0.5+(tit->end-tit->begin)/dt);
+ if(GPSTimeOutput) {
+ *pout << " " << tit->begin.printf("%4F %10.3g")
+ << " - " << tit->end.printf("%4F %10.3g") << endl;
+ }
+ else {
+ *pout
+ << " " << tit->begin.printf("%04Y/%02m/%02d %02H:%02M:%04.1f")
+ << " - " << tit->end.printf("%04Y/%02m/%02d %02H:%02M:%04.1f")
+ << endl;
+ }
+ }
+ *pout << "TOTAL "; for(k=0; k<n; k++) *pout << setw(7) << totals[k];
+ *pout << endl;
+ }
+ else {
+ *pout << "SATs(" << table.size() << "):";
+ for(tit=table.begin(); tit!=table.end(); ++tit)
+ *pout << " " << tit->sat;
+ *pout << endl;
+
+ *pout << "Obs types(" << rheader.obsTypeList.size() << "): ";
+ for(i=0; i<rheader.obsTypeList.size(); i++)
+ *pout << " " << rheader.obsTypeList[i].type;
+ *pout << endl;
+ }
+
+ // warnings
+ if((rheader.valid & RinexObsHeader::intervalValid)
+ && fabs(dt-rheader.interval) > 1.e-3)
+ *pout << " WARNING: Computed interval is " << setprecision(2)
+ << dt << " sec, while input header has " << setprecision(2)
+ << rheader.interval << " sec.\n";
+ if(fabs(ftime-rheader.firstObs) > 1.e-8)
+ *pout << " WARNING: Computed first time does not agree with header\n";
+ if((rheader.valid & RinexObsHeader::lastTimeValid)
+ && fabs(last-rheader.lastObs) > 1.e-8)
+ *pout << " WARNING: Computed last time does not agree with header\n";
+
+ if(clkjumpTimes.size() > 0) {
+ *pout << " WARNING: millisecond clock adjusts at these times:\n";
+ for(i=0; i<clkjumpTimes.size(); i++) {
+ *pout << " "
+ << clkjumpTimes[i].printf("%4F %10.3g = %04Y/%02m/%02d %02H:%02M:%06.3f")
+ << " " << setprecision(2) << clkjumpMillsecs[i] << " ms_clock_adjust";
+ if(clkjumpAgree[i] > 0 || clkjumpUncertainty[i] > 0.01)
+ *pout << " (low quality determination; data may be irredeemable)";
+ *pout << endl;
+ }
+ }
+ // look for 'empty' obs types
+ for(k=0; k<n; k++) {
+ if(totals[k] <= 0) *pout << " WARNING: ObsType "
+ << rheader.obsTypeList[k].type
+ << " should be deleted from header.\n";
+ }
+
+ if(ReplaceHeader) {
+ // modify the header
+ rheader.version = 2.1; rheader.valid |= RinexObsHeader::versionValid;
+ rheader.interval = dt; rheader.valid |= RinexObsHeader::intervalValid;
+ rheader.lastObs = last; rheader.valid |= RinexObsHeader::lastTimeValid;
+ // now the table
+ rheader.numSVs = table.size(); rheader.valid |= RinexObsHeader::numSatsValid;
+ rheader.numObsForSat.clear();
+ for(tit=table.begin(); tit!=table.end(); ++tit) { // tit defined above
+ rheader.numObsForSat.insert(
+ map<SatID, vector<int> >::value_type(tit->sat,tit->nobs) );
+ }
+ rheader.valid |= RinexObsHeader::prnObsValid;
+ //*pout << "\nNew header\n";
+ //rheader.dump(*pout);
+
+ // now re-open the file and replace the header
+#ifdef _MSC_VER
+ char newname[L_tmpnam];
+ if(!tmpnam(newname)) {
+ cerr << "Could not create temporary file name - abort\n";
+ return -1;
+ }
+#else
+ char newname[]="RinSumTemp.XXXXXX";
+ if(mkstemp(newname)==-1) {
+ cerr << "Could not create temporary file name - abort\n";
+ return -1;
+ }
+#endif
+ remove(newname);
+
+ RinexObsHeader rhjunk;
+ RinexObsStream ROutStr(newname, ios::out);
+ RinexObsStream InAgain(filename.c_str());
+ InAgain.exceptions(ios::failbit);
+
+ InAgain >> rhjunk;
+ ROutStr << rheader;
+ while(InAgain >> robs) {
+ last = robs.time;
+ if(last < BegTime) continue;
+ if(last > EndTime) break;
+ ROutStr << robs;
+ }
+ InAgain.close();
+ ROutStr.close();
+ // delete original file and rename the temporary
+ iret = remove(filename.c_str());
+ if(iret) *pout << "RinSum: Error: Could not remove existing file: "
+ << filename << endl;
+ else {
+ iret = rename(newname,filename.c_str());
+ if(iret) *pout << "RinSum: Error: Could not rename new file " << newname
+ << " using old name " << filename << endl;
+ else *pout << "\nRinSum: Replaced original header with complete one,"
+ << " using temporary file name "
+ << newname << endl;
+ }
+ }
+
+ if(!brief) *pout << "\n+++++++++++++ End of RinSum summary of " << filename
+ << " +++++++++++++\n";
+ }
+
+ if(pout != &cout) {
+ ((ofstream *)pout)->close();
+ delete pout;
+ }
+
+ return 0;
+}
+catch(gpstk::FFStreamError& e) { cerr << "FFStreamError: " << e; }
+catch(gpstk::Exception& e) { cerr << "Exception: " << e; }
+catch (...) { cerr << "Unknown exception. Abort." << endl; }
+ return 1;
+} // end main()
+
+//------------------------------------------------------------------------------------
+int GetCommandLine(int argc, char **argv) throw(Exception)
+{
+try {
+ bool help=false;
+ int j;
+ // required options
+
+ // optional
+ CommandOption dashi(CommandOption::hasArgument, CommandOption::stdType,
+ 'i',"input"," [-i|--input] <file> Input RINEX observation file name(s)");
+ //dashi.setMaxCount(1);
+
+ // optional options
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," [-f|--file] <file> file containing more options");
+
+ CommandOption dasho(CommandOption::hasArgument, CommandOption::stdType,
+ 'o',"output"," [-o|--output] <file> Output the summary to a file named <file>");
+ dasho.setMaxCount(1);
+
+ CommandOption dashp(CommandOption::hasArgument, CommandOption::stdType,
+ 'p',"path"," [-p|--path] <path> Find the input file(s) in this directory");
+ dashp.setMaxCount(1);
+
+ CommandOptionNoArg dashr('R', "Replace",
+ " [-R|--Replace] Replace input file header with a full one, in place.");
+ dashr.setMaxCount(1);
+
+ CommandOptionNoArg dashs('s', "sort",
+ " [-s|--sort] Sort the SAT/Obs table on begin time.");
+
+ CommandOptionNoArg dashg('g', "gps",
+ " [-g|--gps] Print times in the SAT/Obs table as GPS times.");
+
+ // time
+ // times - don't use CommandOptionWithTimeArg
+ CommandOption dashbt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"start", " --start <time> Start time: <time> is 'GPSweek,sow' OR "
+ "'YYYY,MM,DD,HH,Min,Sec'");
+ dashbt.setMaxCount(1);
+
+ CommandOption dashet(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"stop", " --stop <time> Stop time: <time> is 'GPSweek,sow' OR "
+ "'YYYY,MM,DD,HH,Min,Sec'");
+ dashet.setMaxCount(1);
+
+ CommandOptionNoArg dashb('b', "brief",
+ " [-b|--brief] produce a brief (6-line) summary.");
+
+ // help and debug
+ CommandOptionNoArg dashh('h', "help",
+ " [-h|--help] print this help page and quit.");
+ CommandOptionNoArg dashd('d', "debug",
+ " [-d|--debug] print debugging info.");
+
+ // ... other options
+ CommandOptionRest Rest("<filename(s)>");
+
+ CommandOptionParser Par(
+ "Prgm RINSUM reads a Rinex file and summarizes it content.\n"
+ " It can optionally fill the header of the input file.\n"
+ " [either <filenames> or --input required; put <filenames> after options].\n"
+ );
+
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0)
+ Args.push_back(string("-h"));
+
+ argc = Args.size()+1;
+ char **CArgs;
+ CArgs = new char * [argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ // get help option first
+ if(dashh.getCount() > 0) {
+ Par.displayUsage(cout,false);
+ help = true; //return 1;
+ }
+
+ if (Par.hasErrors())
+ {
+ cerr << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cerr);
+ cerr << "...end of Errors\n\n";
+ Par.displayUsage(cout,false);
+ help = true; // return -1;
+ }
+
+ // get values found on command line
+ string msg;
+ vector<string> values,field;
+
+ // f never appears because we intercept it above
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+
+ if(dashi.getCount()) {
+ InputFiles = dashi.getValue();
+ if(help) {
+ cout << "Input: input files (--input) are:\n";
+ for(int i=0; i<InputFiles.size(); i++)
+ cout << " " << InputFiles[i] << endl;
+ }
+ }
+ if(dasho.getCount()) {
+ values = dasho.getValue();
+ OutputFile = values[0];
+ if(help) cout << "Input: output file is " << OutputFile << endl;
+ }
+ if(dashp.getCount()) {
+ values = dashp.getValue();
+ InputDirectory = values[0];
+ if(help) cout << "Input: set path to " << InputDirectory << endl;
+ }
+
+ if(dashr.getCount()) {
+ ReplaceHeader=true;
+ if(help) cout << "Input: replace header in output" << endl;
+ }
+ if(dashs.getCount()) {
+ TimeSortTable=true;
+ if(help) cout << "Input: sort the SAT/Obs table" << endl;
+ }
+ if(dashg.getCount()) {
+ GPSTimeOutput=true;
+ if(help) cout << "Input: output in GPS time" << endl;
+ }
+ // times
+ // TD put try {} around setToString and catch invalid formats...
+ if(dashbt.getCount()) {
+ values = dashbt.getValue();
+ msg = values[0];
+ field.clear();
+ while(msg.size() > 0)
+ field.push_back(stripFirstWord(msg,','));
+ if(field.size() == 2)
+ BegTime.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ BegTime.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cerr << "Error: invalid --start input: " << values[0] << endl;
+ }
+ if(help) cout << " Input: begin time " << values[0] << " = "
+ << BegTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ if(dashet.getCount()) {
+ values = dashet.getValue();
+ msg = values[0];
+ field.clear();
+ while(msg.size() > 0)
+ field.push_back(stripFirstWord(msg,','));
+ if(field.size() == 2)
+ EndTime.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ EndTime.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cerr << "Error: invalid --stop input: " << values[0] << endl;
+ }
+ if(help) cout << " Input: end time " << values[0] << " = "
+ << EndTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+
+ if(dashb.getCount()) {
+ brief = true;
+ if(help) cout << "Input: found the brief flag" << endl;
+ }
+
+ if(dashd.getCount()) {
+ debug = true;
+ if(help) cout << "Input: found the debug flag" << endl;
+ }
+
+ if(Rest.getCount())
+ {
+ values = Rest.getValue();
+ if(help) cout << "Input: input files are:\n";
+ for (int i=0; i<values.size(); i++) {
+ if(help) cout << " " << values[i] << endl;
+ InputFiles.push_back(values[i]);
+ }
+ }
+
+ if(debug && help) {
+ cout << "\nTokens on command line (" << Args.size() << ") are:" << endl;
+ for(j=0; j<Args.size(); j++) cout << Args[j] << endl;
+ }
+ if(help) return 1;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+// Pull out -f<f> and --file <f> and deprecated options
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer = "";
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ // old versions of args -- deprecated
+ else if(string(arg)==string("--EpochBeg")) { Args.push_back("--start"); }
+ else if(string(arg)==string("--GPSBeg")) { Args.push_back("--start"); }
+ else if(string(arg)==string("--EpochEnd")) { Args.push_back("--stop"); }
+ else if(string(arg)==string("--GPSEnd")) { Args.push_back("--stop"); }
+ // regular arg
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/Rinextools/RinexDump.cpp b/dev/apps/Rinextools/RinexDump.cpp
new file mode 100644
index 0000000..0a62e6b
--- /dev/null
+++ b/dev/apps/Rinextools/RinexDump.cpp
@@ -0,0 +1,369 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file RinexDump.cpp
+ * Dump Rinex observation data to a flat file.
+ * Read a RINEX file and dump the data for the given satellite(s).
+ * Any number of obstypes may appear in the command; if none appear, all are dumped.
+ * Any number of satellite ID (e.g. G27) may appear; if none appears, all are dumped.
+ * The output file is ASCII column-delimited with time, satellite ID and then three
+ * columns 'observation LLI SSI' for each observation type.
+ */
+
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "DayTime.hpp"
+#include "RinexSatID.hpp"
+#include "StringUtils.hpp"
+#include "RinexUtilities.hpp"
+
+#include <vector>
+#include <string>
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// find the index of first occurance of item t (of type T) in vector<T> v;
+// i.e. v[index]=t Return -1 if t is not found.
+template<class T> int index(const std::vector<T> v, const T& t)
+{
+ for(int i=0; i<v.size(); i++) {
+ if(v[i] == t) return i;
+ }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+// Returns 0 on success. Input and output files should diff without error.
+int main(int argc, char *argv[])
+{
+try {
+ bool debug=false;
+ bool AllNumeric=false, DumpPos=false, help=false;
+ bool DumpAll=false,DumpAllObs=false,DumpAllSat=false,ok;
+ int i,j;
+ string X,Y,Z,T,rms,pdop,gdop,N,outputFormat=string("%4F %10.3g");
+ RinexObsHeader::RinexObsType ot;
+ RinexSatID sat;
+ string line, word, filename, leftpad=string(""), rightpad=string("");
+ vector<string> filenames;
+ vector<RinexObsHeader::RinexObsType> otlist;
+ vector<RinexSatID> satlist;
+ RinexObsHeader header;
+ RinexObsData obsdata;
+
+ sat.setfill('0');
+ RegisterARLUTExtendedTypes();
+ //cout << "Registered Obs types are:\n";
+ //for(j=0; j<RinexObsHeader::RegisteredRinexObsTypes.size(); j++)
+ // cout << "ROT[" << j << "] = " << RinexObsHeader::RegisteredRinexObsTypes[j]
+ // << endl;
+
+ // parse command line input
+ for(i=1; i<argc; i++) {
+ word = string(argv[i]);
+ if(debug) cout << "arg = " << word << endl;
+ if(word == "pos") DumpPos = true;
+ else if(word == "-h" || word == "--help") help = true;
+ else if(word == "-f" || word == "-file" || word == "--file") {
+ filename = string(argv[++i]);
+ filenames.push_back(filename);
+ }
+ else if(word == "-n" || word == "--num") AllNumeric = true;
+ else if(word == "--format") outputFormat = string(argv[++i]);
+ else if(word == "-sat" || word == "--sat") {
+ sat.fromString(string(argv[++i]));
+ if(!sat.isValid()) cout << "Error: input argument " << argv[i]
+ << " is not a valid satellite id" << endl;
+ else
+ satlist.push_back(sat);
+ }
+ else if(word == "-obs" || word == "--obs") {
+ ot = RinexObsHeader::convertObsType(argv[++i]);
+ if(RinexObsHeader::convertObsType(ot) == string("UN"))
+ cout << "Error: input argument " << argv[i]
+ << " is not a valid obs type" << endl;
+ else
+ otlist.push_back(ot);
+ }
+ else { // try to figure out what it is...
+ if(debug) cout << " try making it a RINEX obs file: " << word << endl;
+ if(isRinexObsFile(word)) {
+ filenames.push_back(word);
+ continue;
+ }
+
+ if(debug) cout << " try making it an obs type: " << word << endl;
+ ot = RinexObsHeader::convertObsType(argv[i]);
+ if(RinexObsHeader::convertObsType(ot) != string("UN")) {
+ otlist.push_back(ot);
+ continue;
+ }
+
+ if(debug) cout << " try making it a sat : " << word << endl;
+ try {
+ sat.fromString(word);
+ if(sat.isValid()) {
+ satlist.push_back(sat);
+ continue;
+ }
+ }
+ catch(Exception& e) { ; }
+
+ cout << "Unknown argument, ignore: " << word << endl;
+ }
+ }
+
+ if(argc < 2 || help) {
+ cout <<
+"Read RINEX file(s) and dump the given observation types in columns.\n"
+"Output is to the screen, with one time tag and one satellite per line.\n"
+" Usage: RinexDump [options] file obs sat [pos]\n"
+" If no satellites are given, all are output; likewise for observation types.\n"
+" Output begins with header lines (starting with #) identifying input and columns.\n"
+" Options are:\n"
+" pos output only positions from aux headers; sat and obs are ignored.\n"
+" --num or -n make output purely numeric (no header, no system char on sats)\n"
+" --format <f> output times in (DayTime) format (default " << outputFormat << ")\n"
+" --file <file> file is a RINEX observation file; this option may be repreated.\n"
+" --obs <obs> obs is a RINEX observation type (e.g. P1) found in the file header.\n"
+" --sat <sat> sat is a RINEX satellite id (e.g. G31 for GPS PRN 31)\n"
+" [--file, --obs and --sat are optional but may be needed to remove ambiguity.]\n"
+" --help or -h print this and quit.\n"
+" E.g. RinexDump test2820.06o L1 L2 G17\n";
+ return -1;
+ }
+
+ if(otlist.size() == 0) DumpAllObs = true;
+ if(satlist.size() == 0) DumpAllSat = true;
+ if(DumpAllObs && DumpAllSat) DumpAll = true;
+
+ vector<RinexObsHeader::RinexObsType>::iterator it;
+
+ if(filenames.size() == 0) cerr << "Error - no file names specified.\n";
+ if(debug || filenames.size() == 0) {
+ cout << "RinexDump read the following from the command line:\n";
+ for(i=0; i<filenames.size(); i++)
+ cout << " File: " << filenames[i] << endl;
+ cout << " Observation types:";
+ if(otlist.size() == 0) cout << " all";
+ else for(i=0; i<otlist.size(); i++)
+ cout << " " << RinexObsHeader::convertObsType(otlist[i]);
+ cout << endl;
+ cout << " Satellites:";
+ if(satlist.size() == 0) cout << " all";
+ else for(i=0; i<satlist.size(); i++) cout << " " << satlist[i];
+ cout << endl;
+ }
+
+ if(filenames.size() == 0) return -1;
+
+ // sort the file names on the begin time in the header
+ if(filenames.size() > 1) sortRinexObsFiles(filenames);
+
+ // loop over input files
+ for(int nfile=0; nfile < filenames.size(); nfile++) {
+ filename = filenames[nfile];
+
+ // does the file exist?
+ RinexObsStream RinFile(filename.c_str());
+ if(filename.empty() || !RinFile) {
+ cerr << "Error: input file " << filename << " does not exist.\n";
+ continue; //return -1;
+ }
+ RinFile.exceptions(fstream::failbit);
+
+ // is it a Rinex Obs file? ... read the header
+ try { RinFile >> header; }
+ catch(Exception& e) {
+ cerr << "Error: input file " << filename << " is not a Rinex obs file\n";
+ continue; //return -2;
+ }
+ //cout << "Rinex header:\n";
+ //header.dump(cout);
+
+ // check that obs types are in header
+ for(it=otlist.begin(); it !=otlist.end(); ) {
+ ok = false;
+ for(j=0; j<header.obsTypeList.size(); j++) {
+ if(*it == header.obsTypeList[j]) { ok = true; break; }
+ }
+ if(!ok) {
+ cout << "Warning: " << *it << " not found in header of file "
+ << filename << endl;
+ it = otlist.erase(it);
+ }
+ else it++;
+ }
+
+ if(DumpAllObs) {
+ otlist.clear();
+ for(j=0; j<header.obsTypeList.size(); j++)
+ otlist.push_back(header.obsTypeList[j]);
+ }
+
+ // echo input
+ if(!AllNumeric) {
+ cout << "# Rinexdump File: " << filename;
+ if(DumpPos) cout << " Positions (in auxiliary header comments)";
+ else {
+ cout << " Satellites:";
+ if(satlist.size() > 0)
+ for(j=0; j<satlist.size(); j++) { cout << " " << satlist[j]; }
+ else cout << " ALL";
+ cout << " Observations:";
+ if(!DumpAllObs) for(j=0; j<otlist.size(); j++)
+ cout << " " << RinexObsHeader::convertObsType(otlist[j]);
+ else cout << " ALL";
+ }
+ cout << endl;
+ }
+
+ if(otlist.size() == 0) {
+ cout << " Nothing to do.\n";
+ continue; //return -1;
+ }
+
+ // dump the column headers
+ if(!AllNumeric) {
+ // figure out widths
+ DayTime Now;
+ string ts;
+ ts = "# Time (" + outputFormat + ")";
+ int n = ts.size() - Now.printf(outputFormat).size();
+ if(n < 0) rightpad = leftJustify(string(""),-n-1);
+ else leftpad = leftJustify(string(""),n);
+ cout << ts;
+
+ if(DumpPos) cout << " NSVs X(m) Y(m) Z(m)"
+ << " Clk(m) PDOP GDOP RMS(m)";
+ else {
+ cout << " Sat";
+ for(j=0; j<otlist.size(); j++) cout << " "
+ << RinexObsHeader::convertObsType(otlist[j]) << " L S";
+ }
+ cout << endl;
+ }
+
+ cout << fixed;
+ while(RinFile >> obsdata) {
+ RinexObsData::RinexSatMap::const_iterator it;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+
+ // if dumping regular data, skip auxiliary header, etc
+ if(!DumpPos && obsdata.epochFlag != 0 && obsdata.epochFlag != 1)
+ continue;
+
+ // dump position data
+ if(DumpPos && obsdata.epochFlag == 4) {
+ // loop over comments in the header data
+ X=Y=Z=T=pdop=gdop=rms=N=string();
+ for(j=0,i=0; i<obsdata.auxHeader.commentList.size(); i++) {
+ line = stripTrailing(obsdata.auxHeader.commentList[i],
+ string("COMMENT"),1);
+ word = stripFirstWord(line);
+ if(word == "XYZT") {
+ X = stripFirstWord(line);
+ Y = stripFirstWord(line);
+ Z = stripFirstWord(line);
+ T = stripFirstWord(line);
+ j++;
+ }
+ else if(word == "DIAG") {
+ N = stripFirstWord(line);
+ pdop = stripFirstWord(line);
+ gdop = stripFirstWord(line);
+ rms = stripFirstWord(line);
+ j++;
+ }
+ else { // ignore
+ }
+ }
+
+ // print it
+ if(j==2) cout << leftpad << obsdata.time.printf(outputFormat) << rightpad
+ << setw(4) << N
+ << setprecision(3)
+ << " " << setw(13) << X
+ << " " << setw(13) << Y
+ << " " << setw(13) << Z
+ << " " << setw(13) << T
+ << " " << setw(5) << pdop
+ << " " << setw(5) << gdop
+ << " " << setw(9) << rms
+ << endl;
+
+ } // end if dumping position data
+
+ if(DumpPos) continue;
+
+ // loop over satellites
+ for(it=obsdata.obs.begin(); it != obsdata.obs.end(); ++it) {
+ // convert to RinexSatID to get the fill character
+ RinexSatID sat = it->first;
+ if(!DumpAll && !DumpAllSat && index(satlist, sat) == -1) continue;
+ // loop over obs
+ ok = false; // set true only when data exists to output
+ for(j=0; j<otlist.size(); j++) {
+ if((jt=it->second.find(otlist[j])) == it->second.end()) {
+ cout << " " << setw(13) << setprecision(3)
+ << 0.0 << " " << 0 << " " << 0;
+ }
+ else {
+ if(!ok) { // output a line
+ // time tag
+ cout << leftpad << obsdata.time.printf(outputFormat) << rightpad;
+ // satellite
+ cout << " ";
+ if(AllNumeric)
+ cout << setw(3) << sat.id;
+ else
+ cout << sat;
+ ok = true;
+ }
+ cout << " " << setw(13) << setprecision(3) << jt->second.data
+ << " " << jt->second.lli << " " << jt->second.ssi;
+ }
+ }
+ if(ok) cout << endl;
+ } // end loop over satellites
+ } // end loop over obs data in file
+
+ RinFile.close();
+ } // end loop over input files
+
+ return 0;
+}
+catch(FFStreamError& e) { cout << e; }
+catch(Exception& e) { cout << e; }
+catch (...) { cout << "unknown error. Done." << endl; }
+ return -1;
+} // main()
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/Rinextools/RinexEditor.cpp b/dev/apps/Rinextools/RinexEditor.cpp
new file mode 100644
index 0000000..7c1108f
--- /dev/null
+++ b/dev/apps/Rinextools/RinexEditor.cpp
@@ -0,0 +1,1467 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file RinexEditor.cpp
+ * Edit Rinex observation files.
+ * class REditCmd encapsulates commands passed to the Rinex Editor
+ */
+
+//------------------------------------------------------------------------------------
+// TD Do better at catching exceptions
+
+//------------------------------------------------------------------------------------
+#include <vector>
+#include <algorithm>
+#include <time.h>
+#include <stdlib.h> // for mkstemp
+#include <iostream>
+
+#include "RinexEditor.hpp"
+
+#include "MathBase.hpp"
+#include "StringUtils.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexUtilities.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+string RinexEditVersion; // see below in Initialize()
+std::map<REditCmd::TYPE, std::string> REditCmd::typeLabel;
+
+//------------------------------------------------------------------------------------
+// Initialize
+REditCmd::Initialize REditCmdInitializer;
+
+REditCmd::Initialize::Initialize()
+{
+ RinexEditVersion = string("3.5 6/21/2007");
+
+ typeLabel[INVALID] = string("INVALID");
+ typeLabel[IF] = string("IF");
+ typeLabel[OF] = string("OF");
+ typeLabel[ID] = string("ID");
+ typeLabel[OD] = string("OD");
+ typeLabel[HD] = string("HD");
+ typeLabel[TN] = string("TN");
+ typeLabel[TB] = string("TB");
+ typeLabel[TE] = string("TE");
+ typeLabel[TT] = string("TT");
+ typeLabel[AO] = string("AO");
+ typeLabel[DA] = string("DA");
+ typeLabel[DO] = string("DO");
+ typeLabel[DS] = string("DS");
+ typeLabel[DD] = string("DD");
+ typeLabel[SD] = string("SD");
+ typeLabel[SS] = string("SS");
+ typeLabel[SL] = string("SL");
+ typeLabel[BD] = string("BD");
+ typeLabel[BS] = string("BS");
+ typeLabel[BL] = string("BL");
+ typeLabel[BZ] = string("BZ");
+}
+
+//------------------------------------------------------------------------------------
+// find the index of first occurance of item t (of type T) in vector<T> v;
+// i.e. v[index]=t Return -1 if t is not found.
+template<class T> int index(const std::vector<T> v, const T& t)
+{
+ for(int i=0; i<v.size(); i++) {
+ if(v[i] == t) return i;
+ }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+string RinexEditor::getRinexEditVersion(void) { return RinexEditVersion; }
+
+//------------------------------------------------------------------------------------
+// REditCmd member functions
+//------------------------------------------------------------------------------------
+// constructor from a string, pass by value to avoid changing original
+REditCmd::REditCmd(string s, ostream *oflog) throw(Exception)
+{
+try {
+ type = INVALID;
+
+ // ignore leading '-'s
+ while(s.size() && (s[0]=='-' || (s[0]==' '||s[0]=='\t'))) s.erase(0,1);
+ if(s.size() < 2) return;
+
+ // separate type and the rest
+ string tag=s.substr(0,2);
+ field = s.substr(2,s.size()-2);
+
+ // first identify the type
+ map<TYPE,string>::const_iterator it;
+ for(it=typeLabel.begin(); it != typeLabel.end(); it++) {
+ if(tag == it->second) { type = it->first; break; }
+ }
+
+ // defaults
+ bias = -99.99;
+ SV = RinexSatID(33,SatID::systemGPS);
+ sign = 0;
+ inOT = -1;
+ time = DayTime::BEGINNING_OF_TIME;
+
+ // bail if invalid
+ if(type==INVALID) return;
+
+ // BZ needs nothing more
+ if(type==BZ) return;
+
+ // break field into subfields
+ if(field.size() == 0) { type = INVALID; return; }
+ vector<string> subfield;
+ string::size_type pos;
+ while(field.size() > 0) {
+ pos = field.find(",");
+ if(pos==string::npos) pos=field.size();
+ if(pos==0) subfield.push_back(" ");
+ else subfield.push_back(field.substr(0,pos));
+ if(pos >= field.size()) break;
+ field.erase(0,pos+1);
+ };
+
+ // TN just needs time spacing
+ if(type==TN) {
+ bias = asDouble(subfield[0]);
+ // validate?
+ return;
+ }
+
+ // TT just needs delta time
+ if(type==TT) {
+ bias = asDouble(subfield[0]);
+ // validate?
+ return;
+ }
+
+ // get (optional) sign
+ if(type==DA || type==DS || type==DD || type==SL || type==BD) {
+ if(subfield[0][0]=='+') { sign=+1; subfield[0].erase(0,1); }
+ if(subfield[0][0]=='-') { sign=-1; subfield[0].erase(0,1); }
+ }
+
+ // field = filename, OT, or header info
+ if(type==IF || type==OF || type==ID || type==OD || type==HD
+ || type==AO || type==DO) {
+ field = subfield[0];
+ if(type==HD) { // inOT = int(first character)
+ char c=field[0];
+ inOT = int(toupper(c));
+ if(inOT!='F' && inOT!='P' && inOT!='R' && inOT!='O' && inOT!='A' &&
+ inOT!='M' && inOT!='N' && inOT!='C' && inOT!='D' && inOT!='X')
+ { type=INVALID; return; }
+ if(inOT == 'X') {
+ if(subfield.size() < 3) { type=INVALID; return; }
+ field += ";" + subfield[1] + ";" + subfield[2];
+ }
+ field.erase(0,1);
+ }
+ if(type!=OF || subfield.size()==1) return;
+ subfield.erase(subfield.begin());
+ }
+ else field = string(" ");
+
+ // get an SV
+ if(type >= DS) {
+ SV.fromString(subfield[0]);
+ //if(REDebug) *oflog << "REC: PRN is " << SV << endl;
+
+ // allow all commands from DS on to have SV = (system,-1)
+ // where id==-1 means 'all SV of this system'
+ //if((type==DS || type==SL) && SV.id == -1) ; // ok
+ //else if(SV.system == SatID::systemGPS && (SV.id<=0 || SV.id>32))
+ // { type=INVALID; return; }
+ if(type==DS && subfield.size()==1) return;
+ subfield.erase(subfield.begin());
+ }
+
+ // get an OT
+ if(type >= DD) {
+ field = subfield[0];
+ // TD have a bool valid(string) function or bool valid(RinexObsType)
+ RinexObsHeader::RinexObsType rot=RinexObsHeader::convertObsType(field);
+ if(rot.type==string("UN")) { type=INVALID; return; }
+ //if(REDebug) *oflog << "REC: processed OT is " << rot.type << endl;
+ subfield.erase(subfield.begin());
+ }
+
+ // get a time
+ if(subfield.size()==2 || subfield.size()==3) {
+ time.setGPSfullweek(asInt(subfield[0]), asDouble(subfield[1]));
+ }
+ if(subfield.size()==6 || subfield.size()==7) {
+ time.setYMDHMS(asInt(subfield[0]), asInt(subfield[1]),
+ asInt(subfield[2]), asInt(subfield[3]),
+ asInt(subfield[4]), asDouble(subfield[5]));
+ }
+ //if(REDebug) *oflog << "REC: time is "
+ //<< time.printf("%4Y/%2m/%2d %2H:%2M:%.4f") << endl;
+ // test validity?
+
+ // bias
+ if(type >= SD) {
+ //if(REDebug) *oflog << "REC: bias field is " << subfield.back() << endl;
+ bias = asDouble(subfield.back().c_str());
+ //if(REDebug) *oflog << "REC: bias is " << bias << endl;
+ }
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end REditCmd::REditCmd(string)
+
+//------------------------------------------------------------------------------------
+REditCmd::~REditCmd(void)
+{
+}
+
+//------------------------------------------------------------------------------------
+void REditCmd::Dump(ostream& os, string msg) throw(Exception)
+{
+try {
+ if(msg.size()) os << msg;
+ os << " type=" << typeLabel[type] << ", sign=" << sign << ", SV="
+ << SV.toString()
+ << ", inOT=" << inOT
+ << ", field=" << field
+ << ", bias=" << fixed << setprecision(3) << bias
+ << ", time = " << time.printf("%4Y/%2m/%2d %2H:%2M:%.4f") << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// RinexEditor member functions
+//------------------------------------------------------------------------------------
+RinexEditor::RinexEditor(void)
+{
+ Decimate = 0.0;
+ TimeTol = 0.001;
+ BegTime = DayTime::BEGINNING_OF_TIME;
+ EndTime = DayTime::END_OF_TIME;
+ REVerbose = REDebug = BiasZeroData = FillOptionalHeader = HDDeleteOldComments
+ = false;
+ Skip = false;
+ IVLast = IVInterval = IVTable = false;
+ for(int i=0; i<9; i++) ndt[i]=-1;
+ oflog = &cout;
+}
+
+//------------------------------------------------------------------------------------
+RinexEditor::~RinexEditor(void)
+{
+ Cmds.erase(Cmds.begin(),Cmds.end());
+ OneTimeCmds.erase(OneTimeCmds.begin(),OneTimeCmds.end());
+ CurrentCmds.erase(CurrentCmds.begin(),CurrentCmds.end());
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok, -1 no input file name, -2 no output file name
+int RinexEditor::ParseCommands(void) throw(Exception)
+{
+try {
+ bool flag;
+ int i,iret=0;
+ // first scan command list for BZ,HDf,TN,TT,TB,TE,IF,OF,ID,OD
+ for(i=0; i<Cmds.size(); i++) {
+ if(REDebug) Cmds[i].Dump(*oflog,string("parse this command"));
+ switch(Cmds[i].type) {
+ case REditCmd::TN:
+ Decimate = Cmds[i].bias;
+ IVInterval = true;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set TN with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::TT:
+ TimeTol = Cmds[i].bias;
+ if(REDebug) Cmds[i].Dump(*oflog,string("set TT with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::TB:
+ BegTime = Cmds[i].time;
+ IVTable = true;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set TB with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::TE:
+ EndTime = Cmds[i].time;
+ IVLast = IVTable = true;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set TE with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::IF:
+ //InputFile = Cmds[i].field;
+ Inputfiles.push_back(Cmds[i].field);
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set IF with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::OF:
+ if(Cmds[i].time == DayTime::BEGINNING_OF_TIME) {
+ OutputFile = Cmds[i].field;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set OF with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ }
+ break;
+ case REditCmd::ID:
+ InputDir = Cmds[i].field;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set ID with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::OD:
+ OutputDir = Cmds[i].field;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set OD with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::BZ:
+ BiasZeroData = true;
+ //if(REDebug) Cmds[i].Dump(*oflog,string("set BZ with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ break;
+ case REditCmd::HD:
+ flag = true;
+ switch(Cmds[i].inOT) {
+ case int('F'): FillOptionalHeader=true; break;
+ case int('D'): HDDeleteOldComments=true; break;
+ case int('P'): HDProgram=Cmds[i].field; break;
+ case int('X'): HDPosition=Cmds[i].field; break;
+ case int('R'): HDRunBy=Cmds[i].field; break;
+ case int('O'): HDObserver=Cmds[i].field; break;
+ case int('A'): HDAgency=Cmds[i].field; break;
+ case int('M'): HDMarker=Cmds[i].field; break;
+ case int('N'): HDNumber=Cmds[i].field; break;
+ case int('C'): HDComments.push_back(Cmds[i].field); break;
+ default: flag=false; break;
+ }
+ if(flag) {
+ if(REDebug) Cmds[i].Dump(*oflog,string("set HD rec with this cmd"));
+ Cmds[i].type = REditCmd::INVALID;
+ }
+ break;
+ default: break;
+ }
+ }
+
+ // require an input file name
+ if(Inputfiles.size() == 0) iret -= 1;
+ // sort on begin time (header) and add path
+ else {
+ if(Inputfiles.size() > 1)
+ sortRinexObsFiles(Inputfiles);
+ if(!InputDir.empty()) {
+ for(i=0; i<Inputfiles.size(); i++) {
+ InputFile = InputDir + string("/") + Inputfiles[i];
+ Inputfiles[i] = InputFile;
+ }
+ }
+ }
+
+ // now iterate over the list in reverse, deleting INVALID commands.
+ deque<REditCmd>::iterator jt,it=Cmds.begin();
+ while(it != Cmds.end()) {
+ if(it->type == REditCmd::INVALID) {
+ //if(REDebug) it->Dump(*oflog,string("Erase this INVALID command:"));
+ it = Cmds.erase(it);
+ }
+ else it++;
+ }
+
+ // sort on time
+ sort(Cmds.begin(),Cmds.end(),REditCmdLessThan());
+
+ // iterate over the command list, make sure first OF command has no time tag
+ it = Cmds.begin();
+ if(OutputFile.empty()) {
+ while(it != Cmds.end()) {
+ if(it->type==REditCmd::OF) {
+ if(OutputFile.empty()) {
+ OutputFile = it->field;
+ //if(REDebug) it->Dump(*oflog,string("Let this command set begin time"));
+ BegTime = it->time;
+ it->time = DayTime::BEGINNING_OF_TIME;
+ }
+ }
+ else { IVLast=true; break; }
+ it++;
+ }
+ }
+ if(OutputFile.empty()) { // error
+ iret -= 2;
+ }
+ else if(!OutputDir.empty()) OutputFile = OutputDir + string("/") + OutputFile;
+
+ if(iret) return iret;
+
+ // iterate again, ensure that - commands have corresponding +
+ deque<REditCmd> newCmds;
+ it = Cmds.begin();
+ while(it != Cmds.end()) {
+ if(it->sign == -1) {
+ if(REDebug) it->Dump(*oflog,string("This one needs a +"));
+ flag=false;
+ if(it != Cmds.begin()) {
+ jt = it;
+ bool last=((--jt)==Cmds.begin());
+ while(1) {
+ if(jt->type==it->type && jt->SV==it->SV && jt->field==it->field) {
+ if(REDebug) jt->Dump(*oflog,string("Is this the one ?"));
+ flag = true;
+ break;
+ }
+ if(last) break;
+ last = (--jt==Cmds.begin());
+ }
+ }
+ if(!flag) {
+ REditCmd re(*it);
+ re.sign = 1;
+ re.time = BegTime;
+ newCmds.push_back(re);
+ if(REDebug) re.Dump(*oflog,string("Add this new command:"));
+ }
+ }
+ it++;
+ }
+
+ // add new commands and sort again
+ it = newCmds.begin();
+ while(it != newCmds.end()) {
+ if(REDebug) it->Dump(*oflog,string("this is a new command:"));
+ Cmds.push_back(*it);
+ it++;
+ }
+ sort(Cmds.begin(),Cmds.end(),REditCmdLessThan());
+
+ if(REDebug)
+ for(it=Cmds.begin(); it != Cmds.end(); it++)
+ it->Dump(*oflog,string("final"));
+
+ // have to set the IVTable flag...
+ if(!IVTable) for(it=Cmds.begin(); it != Cmds.end(); it++) {
+ if(it->type==REditCmd::DS || it->type==REditCmd::DA || it->type==REditCmd::DS ||
+ it->type==REditCmd::DO || it->type==REditCmd::AO || it->type==REditCmd::DD)
+ { IVTable = true; break; }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// leading -'s are ok
+void RinexEditor::AddCommand(string cmd) throw(Exception)
+{
+try {
+ REditCmd r(cmd,oflog);
+ if(r.valid()) Cmds.push_back(r);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Adds valid commands to C and removes from args; leading -'s are ok
+void RinexEditor::AddCommandLine(vector<string>& args) throw(Exception)
+{
+try {
+ if(args.size()==0) return;
+ //if(REDebug) *oflog << "\nBefore stripping RE cmds, there are (" << args.size()
+ //<< ") tokens." << endl;
+
+ // ver 3.3 preprocess args to allow new-style input, e.g. --IF <file>
+ // e.g. --HD f; --HDp <program> or --HD p<program>; --DS +...; or --DS+ ...
+ static vector<string> CommandLineLabels;
+ if(CommandLineLabels.size() == 0) {
+ for(map<REditCmd::TYPE,string>::iterator jt=REditCmd::typeLabel.begin();
+ jt!=REditCmd::typeLabel.end();
+ jt++)
+ CommandLineLabels.push_back("--" + jt->second);
+ CommandLineLabels.push_back("--HDp");
+ CommandLineLabels.push_back("--HDr");
+ CommandLineLabels.push_back("--HDo");
+ CommandLineLabels.push_back("--HDa");
+ CommandLineLabels.push_back("--HDx");
+ CommandLineLabels.push_back("--HDm");
+ CommandLineLabels.push_back("--HDn");
+ CommandLineLabels.push_back("--HDc");
+ CommandLineLabels.push_back("--DA+");
+ CommandLineLabels.push_back("--DA-");
+ CommandLineLabels.push_back("--DS+");
+ CommandLineLabels.push_back("--DS-");
+ CommandLineLabels.push_back("--DD+");
+ CommandLineLabels.push_back("--DD-");
+ CommandLineLabels.push_back("--SL+");
+ CommandLineLabels.push_back("--SL-");
+ CommandLineLabels.push_back("--BD+");
+ CommandLineLabels.push_back("--BD-");
+ }
+
+ vector<string>::iterator it=args.begin();
+ while(it != args.end()) {
+ string str(*it);
+ if(str == string("--HDf")) *it = "-HDf";
+ else if(str == string("--HDdc")) *it = "-HDdc";
+ else if(str == string("--BZ")) *it = "-BZ";
+ else if(index(CommandLineLabels,str) != -1) {
+ it = args.erase(it);
+ if(it == args.end()) break;
+ str.erase(0,1);
+ str += *it;
+ *it = str;
+ }
+ it++;
+ }
+
+ // process args
+ it = args.begin();
+ while(it != args.end()) {
+ REditCmd r(*it,oflog);
+ if(r.valid()) {
+ Cmds.push_back(r); //if(REDebug) *oflog << "Erase command " << *it << endl;
+ it = args.erase(it);
+ }
+ else {
+ //if(REDebug) *oflog << "Its not an RE command: " << *it << endl;
+ it++;
+ }
+ }
+ //if(REDebug) *oflog << "\nAfter stripping RE cmds, tokens (" << args.size()
+ //<< ") are:" << endl;
+ //if(REDebug) for(unsigned int j=0; j<args.size(); j++) *oflog << args[j] << endl;
+ //if(REDebug) *oflog << "End of RE cmds, tokens" << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// NB does not fill optional records, even when -HDf (EditObs will).
+int RinexEditor::EditHeader(RinexObsHeader& RHInput, RinexObsHeader& RHOutput)
+ throw(Exception)
+{
+try {
+ // save the input header
+ RHIn = RHOutput = RHInput;
+ // get the obstypes
+ ObsTypes = RHInput.obsTypeList;
+ // iterate over the list (in reverse), applying, then deleting, AO, DO
+ // and DS<SV> commands
+ deque<REditCmd>::iterator it=Cmds.begin();
+ while(it != Cmds.end()) {
+ if(it->type==REditCmd::AO || it->type==REditCmd::DO) {
+ //if(REDebug) it->Dump(*oflog,string("Apply and Erase this AO/DO command:"));
+ RinexObsHeader::RinexObsType rot=RinexObsHeader::convertObsType(it->field);
+ vector<RinexObsHeader::RinexObsType>::iterator jt;
+ jt = find(ObsTypes.begin(),ObsTypes.end(),rot);
+ if(jt != ObsTypes.end() && it->type==REditCmd::DO) {
+ ObsTypes.erase(jt);
+ }
+ if(jt == ObsTypes.end() && it->type==REditCmd::AO) {
+ ObsTypes.push_back(rot);
+ }
+ it = Cmds.erase(it);
+ }
+ else if(it->type==REditCmd::DS
+ && it->time==DayTime::BEGINNING_OF_TIME) {
+ //if(REDebug) it->Dump(*oflog,string("Apply and Erase this DS command:"));
+ if(index(DelSV,it->SV) == -1) DelSV.push_back(it->SV);
+ it = Cmds.erase(it);
+ }
+ else it++;
+ }
+
+ RHOutput.obsTypeList = ObsTypes;
+
+ // fill records in output header
+ DayTime currtime;
+ time_t timer;
+ struct tm *tblock;
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ currtime.setYMDHMS(1900+tblock->tm_year,1+tblock->tm_mon,
+ tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
+ RHOutput.date = currtime.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ { // figure out system -- anything else will be up to caller
+ bool gps=true,glo=true,tra=true,geo=true;
+ if(find(DelSV.begin(),DelSV.end(),RinexSatID(-1,SatID::systemGPS))
+ != DelSV.end()) gps=false;
+ if(find(DelSV.begin(),DelSV.end(),RinexSatID(-1,SatID::systemGlonass))
+ != DelSV.end()) glo=false;
+ if(find(DelSV.begin(),DelSV.end(),RinexSatID(-1,SatID::systemTransit))
+ != DelSV.end()) tra=false;
+ if(find(DelSV.begin(),DelSV.end(),RinexSatID(-1,SatID::systemGeosync))
+ != DelSV.end()) geo=false;
+ if(!glo && !tra && !geo) RHOutput.system.system = RinexSatID::systemGPS;
+ if(!gps && !tra && !geo) RHOutput.system.system = RinexSatID::systemGlonass;
+ if(!gps && !glo && !geo) RHOutput.system.system = RinexSatID::systemTransit;
+ if(!gps && !glo && !tra) RHOutput.system.system = RinexSatID::systemGeosync;
+ }
+ if(HDDeleteOldComments) {
+ RHOutput.commentList.clear();
+ RHOutput.valid ^= RinexObsHeader::commentValid;
+ }
+ if(!HDProgram.empty()) RHOutput.fileProgram = HDProgram;
+ if(!HDPosition.empty() && numWords(HDPosition,';') >= 3) {
+ double x = asDouble(stripFirstWord(HDPosition,';'));
+ double y = asDouble(stripFirstWord(HDPosition,';'));
+ double z = asDouble(stripFirstWord(HDPosition,';'));
+ RHOutput.antennaPosition = Triple(x,y,z);
+ }
+ if(!HDRunBy.empty()) RHOutput.fileAgency = HDRunBy;
+ if(!HDObserver.empty()) RHOutput.observer = HDObserver;
+ if(!HDAgency.empty()) RHOutput.agency = HDAgency;
+ if(!HDMarker.empty()) RHOutput.markerName = HDMarker;
+ if(!HDNumber.empty()) {
+ RHOutput.markerNumber = HDNumber;
+ RHOutput.valid |= RinexObsHeader::markerNumberValid;
+ }
+ if(HDComments.size()) RHOutput.commentList.insert(RHOutput.commentList.end(),
+ HDComments.begin(),HDComments.end());
+ RHOutput.commentList.push_back(string("Edited by GPSTK Rinex Editor ver ") +
+ RinexEditVersion+string(" on ") + RHOutput.date);
+ RHOutput.valid |= RinexObsHeader::commentValid;
+
+ // invalidate header records
+ if(IVTable && (RHOutput.valid & RinexObsHeader::numSatsValid))
+ RHOutput.valid ^= RinexObsHeader::numSatsValid;
+ if(IVTable && (RHOutput.valid & RinexObsHeader::prnObsValid))
+ RHOutput.valid ^= RinexObsHeader::prnObsValid;
+ if(IVLast && (RHOutput.valid & RinexObsHeader::lastTimeValid))
+ RHOutput.valid ^= RinexObsHeader::lastTimeValid;
+ if(IVInterval && (RHOutput.valid & RinexObsHeader::intervalValid))
+ RHOutput.valid ^= RinexObsHeader::intervalValid;
+
+ RHOut = RHOutput; // save this header; if(FillOptionalHeader) mod RHOut in EditObs
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// will fill header (after writing) when -HDf found.
+// Return -2 error
+// -1 time limit exceeded
+// 0 DO NOT write the output obs ROOut
+// 1 DO NOT write the output obs ROOut, but close and re-open the output file
+// 2 DO write the output obs ROOut
+// 3 DO write the output obs ROOut, but first close and re-open output file
+int RinexEditor::EditObs(RinexObsData& ROIn, RinexObsData& ROOut) throw(Exception)
+{
+try {
+ // check that stored input header is valid...but do only once!
+ //if(!RHIn.valid() || !RHOut.valid()) return -2;
+ bool NewFile=false;
+
+ // test time limits
+ // TD some comment blocks have blank epochs...
+ if(ROIn.time-BegTime < -TimeTol) return 0;
+ if(ROIn.time-EndTime > TimeTol) return -1;
+
+ // when embedded comments found, just copy and go on
+ if(ROIn.epochFlag != 0 && ROIn.epochFlag != 1) {
+ ROOut = ROIn;
+ return 2;
+ }
+
+ // decimate the data
+ if(Decimate > 0.0) {
+ // if BegTime is unset, make it the first of the week
+ if(BegTime == DayTime::BEGINNING_OF_TIME)
+ BegTime.setGPSfullweek(ROIn.time.GPSfullweek(),0.0);
+ double dt=fabs(ROIn.time - BegTime);
+ dt -= Decimate*long(0.5+dt/Decimate);
+ if(fabs(dt) > TimeTol) return 0;
+ }
+
+ // scan command list, updating current, onetime command lists,
+ // delete-SV list, Skip, NewFile
+ // delete the command after processing it
+ double dt;
+ while(Cmds.size() > 0) {
+ dt = Cmds[0].time - ROIn.time;
+ if(dt < -TimeTol || fabs(dt) < TimeTol) { // commands in present and past
+ if(REDebug) Cmds[0].Dump(*oflog,
+ Cmds[0].time.printf("%4Y/%2m/%2d %2H:%2M:%.4f")
+ + string(": Process (now) : "));
+ switch(Cmds[0].type) {
+ case REditCmd::DA:
+ if(Cmds[0].sign > 0) Skip=true;
+ if(Cmds[0].sign < 0) Skip=false;
+ break;
+ case REditCmd::OF:
+ OutputFile = Cmds[0].field;
+ if(!OutputDir.empty()) OutputFile = OutputDir + string("/")
+ + OutputFile;
+ NewFile = true;
+ break;
+ case REditCmd::DS:
+ if(Cmds[0].sign > 0 && index(DelSV,Cmds[0].SV) == -1)
+ DelSV.push_back(Cmds[0].SV);
+ if(Cmds[0].sign < 0) {
+ if(find(DelSV.begin(),DelSV.end(),Cmds[0].SV) != DelSV.end())
+ DelSV.erase(find(DelSV.begin(),DelSV.end(),Cmds[0].SV));
+ }
+ if(Cmds[0].sign == 0 && fabs(dt) < TimeTol)
+ OneTimeCmds.push_back(Cmds[0]);
+ if(Cmds[0].sign != 0 && REDebug) {
+ *oflog << "DS: DelSV is";
+ for(int itemp=0; itemp<DelSV.size(); itemp++)
+ *oflog << " " << DelSV[itemp];
+ *oflog << endl;
+ }
+ break;
+ case REditCmd::DD:
+ case REditCmd::SS:
+ case REditCmd::SL:
+ case REditCmd::SD:
+ case REditCmd::BD:
+ case REditCmd::BS:
+ case REditCmd::BL:
+ if(Cmds[0].sign > 0)
+ CurrentCmds.push_back(Cmds[0]);
+ if(Cmds[0].sign < 0) {
+ vector<REditCmd>::iterator it;
+ it = find(CurrentCmds.begin(), CurrentCmds.end(),Cmds[0]);
+ if(it != CurrentCmds.end()) CurrentCmds.erase(it);
+ }
+ if(Cmds[0].sign == 0 && fabs(dt) < TimeTol)
+ OneTimeCmds.push_back(Cmds[0]);
+ break;
+ default:
+ if(REDebug) Cmds[0].Dump(*oflog,
+ Cmds[0].time.printf("%4Y/%2m/%2d %2H:%2M:%.4f")
+ + string(": This command not implemented! : "));
+ break;
+ } // end switch(type)
+
+ // delete this command
+ if(REDebug) Cmds[0].Dump(*oflog,
+ Cmds[0].time.printf("%4Y/%2m/%2d %2H:%2M:%.4f")
+ + string(": Delete (old) : "));
+ Cmds.pop_front();
+ }
+ else break; // this command (and all others) is in future
+ }
+
+ // clear out anything old
+ ROOut.obs.clear();
+
+ // if not writing out, return here
+ if(Skip && !NewFile) return 0;
+ if(Skip && NewFile) return 1;
+
+ // copy data over to new obs structure
+ RinexObsData::RinexDatum datum; // place holder and zero
+ datum.data = 0.0;
+ datum.lli = datum.ssi = 0;
+ RinexObsData::RinexObsTypeMap otmap; // place holder for ROOut.obs.second
+
+ for(int j=0; j<RHOut.obsTypeList.size(); j++) // loop over obstypes (out) in otmap
+ otmap.insert(std::map<RinexObsHeader::RinexObsType,
+ RinexObsData::RinexDatum>::value_type(RHOut.obsTypeList[j],datum) );
+
+ // loop over prns, create otmap and then insert it with the correct sat
+ int nsvs=0;
+ RinexObsData::RinexSatMap::iterator it;
+ RinexObsData::RinexObsTypeMap::iterator jt,kt;
+ for(it=ROIn.obs.begin(); it != ROIn.obs.end(); ++it) {
+ // loop over prn=it->first, ObsTypeMap=it->second
+ if(find(DelSV.begin(),DelSV.end(),it->first) != DelSV.end()) {
+ if(REDebug) *oflog << "Deleted sat " << it->first
+ << " at " << ROIn.time << endl;
+ continue;
+ }
+ RinexSatID p(-1,it->first.system);
+ if(find(DelSV.begin(),DelSV.end(),p) != DelSV.end()) continue;
+ for(int j=0; j<RHOut.obsTypeList.size(); j++) { // loop over obstypes
+ jt = otmap.find(RHOut.obsTypeList[j]); // jt points to ObsTypeMap output
+ kt = it->second.find(RHOut.obsTypeList[j]); // kt points to ObsTypeMap input
+ if(kt==it->second.end()) // not found
+ jt->second = datum;
+ else
+ jt->second = kt->second;
+ }
+ // TD should test for all zero data -> delete this SV.
+ ROOut.obs.insert(std::map<SatID,
+ RinexObsData::RinexObsTypeMap>::value_type(it->first,otmap) );
+ } // end loop over sats
+
+ ROOut.time = ROIn.time;
+ if(!NewFile) {
+ PrevEpoch = CurrEpoch;
+ CurrEpoch = ROOut.time;
+ }
+ ROOut.clockOffset = ROIn.clockOffset;
+ ROOut.epochFlag = ROIn.epochFlag;
+
+ // apply current commands
+ vector<REditCmd>::iterator cit; // iterator for commands
+ for(cit=CurrentCmds.begin(); cit != CurrentCmds.end(); cit++) {
+ if(REDebug) cit->Dump(*oflog,string("Current : "));
+ // for SV=system only, start at beginning, else start with command SV
+ for(it = ROOut.obs.begin(); it != ROOut.obs.end(); it++) {
+ // skip if the sat is not a match
+ if(cit->SV.system != it->first.system ||
+ (cit->SV.id > -1 && cit->SV.id != it->first.id)) continue;
+ // find the command obs type in the data
+ jt = it->second.find(RinexObsHeader::convertObsType(cit->field));
+ // if its there, edit it
+ if(jt != it->second.end()) {
+ if(cit->type == REditCmd::DD) jt->second.data = 0.0;
+ if(cit->type == REditCmd::SS) jt->second.ssi =
+ (int(cit->bias) < 0 ? 0 : (int(cit->bias) > 9 ? 9 : int(cit->bias)));
+ if(cit->type == REditCmd::SL) jt->second.lli = int(cit->bias);
+ (int(cit->bias) < 0 ? 0 : (int(cit->bias) > 9 ? 9 : int(cit->bias)));
+ if(cit->type == REditCmd::BD) {
+ if(BiasZeroData || fabs(jt->second.data) > 0.001)
+ jt->second.data += cit->bias;
+ }
+ if(cit->type == REditCmd::BS) {
+ jt->second.ssi += int(cit->bias);
+ if(jt->second.ssi < 0) jt->second.ssi = 0;
+ if(jt->second.ssi > 9) jt->second.ssi = 9;
+ }
+ if(cit->type == REditCmd::BL) {
+ jt->second.lli += int(cit->bias);
+ if(jt->second.lli < 0) jt->second.lli = 0;
+ if(jt->second.lli > 9) jt->second.lli = 9;
+ }
+ }
+ } // end loop over satellites
+ } // end loop over current commands
+
+ // apply one-time commands .. iterate in reverse so you can erase as you go
+ vector<REditCmd>::reverse_iterator irt;
+ RinexObsData::RinexSatMap::reverse_iterator roit; // reverse iterator for obs data
+ for(irt=OneTimeCmds.rbegin(); irt != OneTimeCmds.rend(); irt++) {
+ if(REDebug) irt->Dump(*oflog,string("1-time : "));
+ // for SV=system only, start at beginning, else start with command SV
+ for(roit = ROOut.obs.rbegin(); roit != ROOut.obs.rend(); ) {
+ // skip if not a match
+ if(irt->SV.system != roit->first.system ||
+ (irt->SV.id > -1 && irt->SV.id != roit->first.id)) { roit++; continue; }
+ // DS : delete SV altogether
+ if(irt->type == REditCmd::DS) ROOut.obs.erase(roit->first);
+ else {
+ // find the command obs type in the data
+ jt=roit->second.find(RinexObsHeader::convertObsType(irt->field));
+ if(jt != roit->second.end()) {
+ if(irt->type == REditCmd::DD) jt->second.data = 0.0;
+ if(irt->type == REditCmd::SD) jt->second.data = irt->bias;
+ if(irt->type == REditCmd::SS)
+ (int(irt->bias) < 0 ? 0 : (int(irt->bias) > 9 ? 9 : int(irt->bias)));
+ if(irt->type == REditCmd::SL)
+ (int(irt->bias) < 0 ? 0 : (int(irt->bias) > 9 ? 9 : int(irt->bias)));
+ if(irt->type == REditCmd::BD) {
+ if(BiasZeroData || fabs(jt->second.data) > 0.001)
+ jt->second.data += irt->bias;
+ }
+ if(irt->type == REditCmd::BS) {
+ jt->second.ssi += int(irt->bias);
+ if(jt->second.ssi < 0) jt->second.ssi = 0;
+ if(jt->second.ssi > 9) jt->second.ssi = 9;
+ }
+ if(irt->type == REditCmd::BL) {
+ jt->second.lli += int(irt->bias);
+ if(jt->second.lli < 0) jt->second.lli = 0;
+ if(jt->second.lli > 9) jt->second.lli = 9;
+ }
+ }
+ roit++;
+ }
+ } // end loop over satellites
+
+ // delete this command
+ OneTimeCmds.pop_back();
+ } // end loop over one-time commands
+
+ ROOut.numSvs = ROOut.obs.size();
+
+ // update estimate of dt
+ if(FillOptionalHeader) {
+ if(PrevEpoch.year() != 1) {
+ dt = CurrEpoch-PrevEpoch;
+ for(int i=0; i<9; i++) {
+ if(ndt[i] <= 0) { bestdt[i]=dt; ndt[i]=1; break; }
+ if(fabs(dt-bestdt[i]) < 0.0001) { ndt[i]++; break; }
+ if(i == 8) {
+ int k = 0;
+ int nleast=ndt[k];
+ for(int j=1; j<9; j++) if(ndt[j] <= nleast) {
+ k=j; nleast=ndt[j];
+ }
+ ndt[k]=1; bestdt[k]=dt;
+ }
+ }
+ }
+ }
+
+ if(NewFile) return 3;
+ return 2;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// use remove(newname) to delete it
+string GetTempFileName(void) throw(Exception)
+{
+try {
+#ifdef _MSC_VER
+ char newname[L_tmpnam];
+ if(!tmpnam(newname)) {
+#else
+ char newname[]="RETemp.XXXXXX";
+ if(mkstemp(newname)==-1) {
+#endif
+ return string("");
+ }
+ return string(newname);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// assumes TempFile has been written with RHOut, and info is in config
+// Return 0 or -1 if could not open/delete files
+int RinexEditor::FillHeaderAndReplaceFile(string& TempFile, string& TrueOutputFile)
+ throw(Exception)
+{
+try {
+ int i,j;
+ // compute interval
+ for(i=1,j=0; i<9; i++) if(ndt[i]>ndt[j]) j=i;
+ double dt = bestdt[j];
+ // modify the header
+ RHOut.version = 2.1; RHOut.valid |= RinexObsHeader::versionValid;
+ RHOut.interval = dt; RHOut.valid |= RinexObsHeader::intervalValid;
+ RHOut.lastObs = CurrEpoch; RHOut.valid |= RinexObsHeader::lastTimeValid;
+ // now the table
+ RHOut.numSVs = table.size(); RHOut.valid |= RinexObsHeader::numSatsValid;
+ RHOut.numObsForSat.clear();
+ vector<TableData>::iterator tit;
+ for(tit=table.begin(); tit!=table.end(); ++tit) {
+ RHOut.numObsForSat.insert(map<SatID,
+ vector<int> >::value_type(tit->prn,tit->nobs));
+ }
+ RHOut.valid |= RinexObsHeader::prnObsValid;
+
+ // callback
+ i = BeforeWritingFilledHeader(RHOut);
+ if(i) return -2;
+
+ // here you need to validate the RHOut header
+
+ // now re-open the file and replace the header
+ RinexObsHeader rhjunk;
+ RinexObsStream ROutStr(TrueOutputFile.c_str(), ios::out);
+ RinexObsStream InAgain(TempFile.c_str());
+ InAgain.exceptions(ios::failbit);
+
+ InAgain >> rhjunk;
+ ROutStr << RHOut;
+
+ RinexObsData robs;
+ while(InAgain >> robs) {
+ if(robs.time < BegTime) continue;
+ if(robs.time > EndTime) break;
+ ROutStr << robs;
+ }
+ InAgain.close();
+ ROutStr.close();
+
+ // delete the temporary
+ if(remove(TempFile.c_str()) != 0) {
+ *oflog << "Error: Could not remove existing temp file: " << TempFile << endl;
+ return -1;
+ }
+ else if(REVerbose) *oflog << "Removed temporary file " << TempFile << endl;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// Return -1 failed to open file
+// -2 failed to read input file correctly (includes file not an obs file)
+// -4 failed to fill header and replace original file
+// -5 could not create temporary file
+// -6 callback to BeforeEditHeader returned error
+// -7 callback to AfterEditHeader returned error
+// -8 callback to BeforeEditObs returned error
+// -9 callback to BeforeWritingHeader returned error
+// -10 callback to BeforeWritingObs returned error
+// will replace header after filling using temp file
+int RinexEditor::EditFile(void) throw(Exception)
+{
+try {
+ int iret,Noutput;
+ RinexObsHeader rhin,rhout;
+ RinexObsData roin,roout;
+ string TrueOutputFile,TempFile;
+ RinexObsStream ROFin;
+ RinexObsStream ROFout;
+
+ if(REVerbose) *oflog << "EditFile: Reading " << Inputfiles.size()
+ << " input files, and Writing " << OutputFile << endl;
+
+ // --------------------------------------------------------------
+ // loop over input files
+ for(int nfile=0; nfile < Inputfiles.size(); nfile++) {
+ InputFile = Inputfiles[nfile];
+
+ // --------------------------------------------------------------
+ // open input file
+ ROFin.open(InputFile.c_str(), ios::in);
+ if(!ROFin) {
+ if(REVerbose) *oflog << "RinexEditor::EditFile could not open input file "
+ << InputFile << endl;
+ cerr << "RinexEditor::EditFile could not open input file " << InputFile << endl;
+ if(REVerbose) *oflog << "RinexEditor::EditFile could not open input file "
+ << InputFile << endl;
+ return -1;
+ }
+ ROFin.exceptions(ios::failbit);
+ if(REDebug) *oflog << "Opened input file " << InputFile << endl;
+
+ // --------------------------------------------------------------
+ // read header
+ try {
+ ROFin >> rhin;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading header:\n" << e.getText(0)
+ << endl;
+ if(REVerbose) *oflog << "Caught an FFStreamError while reading header:\n"
+ << e.getText(0) << endl;
+ return -2;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught an exception while reading header:\n" << e.getText(0) << endl;
+ if(REVerbose) *oflog << "Caught an exception while reading header:\n"
+ << e.getText(0) << endl;
+ return -2;
+ }
+ if(REDebug) *oflog << "Read input header" << endl;
+
+ // dump header
+ if(REVerbose) {
+ *oflog << "Input header:\n";
+ rhin.dump(*oflog);
+ }
+
+ // --------------------------------------------------------------
+ // Edit header and open output file - do this only once
+ if(nfile == 0) {
+ // callback before editing input header
+ iret = BeforeEditHeader(rhin);
+ if(iret) return -6;
+
+ // edit header
+ EditHeader(rhin,rhout);
+ if(REVerbose) *oflog << "Edit header done" << endl;
+
+ // callback after calling EditHeader (pass output header)
+ iret = AfterEditHeader(rhout);
+ if(iret) return -7;
+
+ // -----------------------------------------------------------
+ // if header is to be filled, write to a temporary file
+ TrueOutputFile = OutputFile;
+ if(FillOptionalHeader) {
+ OutputFile = GetTempFileName();
+ if(OutputFile.empty()) {
+ cerr << "Could not create temporary file name - abort\n";
+ if(REVerbose) *oflog << "Could not create temporary file name - abort\n";
+ return -5;
+ }
+ // some OSs create the file when you get the name...
+ remove(OutputFile.c_str());
+ if(!OutputDir.empty()) OutputFile = OutputDir + string("/") + OutputFile;
+ TempFile = OutputFile;
+ }
+
+ // -----------------------------------------------------------
+ // open output file
+ ROFout.open(OutputFile.c_str(), ios::out);
+ if(!ROFout) {
+ cerr << "RinexEditor::EditFile could not open output file "
+ << OutputFile << endl;
+ if(REVerbose) *oflog << "RinexEditor::EditFile could not open output file "
+ << OutputFile << endl;
+ return -1;
+ }
+
+ ROFout.exceptions(ios::failbit);
+ Noutput = 0;
+
+ } // end if this is the first input file
+
+ // --------------------------------------------------------------
+ // loop over epochs, reading input and writing to output
+ while (1) {
+
+ // read next observation epoch
+ try {
+ ROFin >> roin;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "RinexEditor::EditFile caught an FFStreamError while reading obs:\n"
+ << e << endl;
+ if(REVerbose) *oflog
+ << "RinexEditor::EditFile caught an FFStreamError while reading obs:\n"
+ << e << endl;
+ return -2;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "RinexEditor::EditFile caught an exception while reading obs:\n"
+ << e << endl;
+ if(REVerbose) *oflog
+ << "RinexEditor::EditFile caught an exception while reading obs:\n"
+ << e << endl;
+ return -2;
+ }
+
+ // was read successful?
+ if(!ROFin) { // no
+ if(REVerbose) *oflog << "Reached EOF on " << InputFile << endl;
+ if(nfile == Inputfiles.size()-1) iret = -1;
+ else break;
+ }
+ else { // yes, edit the obs data
+ if(REDebug) {
+ *oflog << "Epoch: " << roin.time << ", Flag " << roin.epochFlag
+ << ", clk " << roin.clockOffset << endl;
+ roin.dump(*oflog);
+ }
+
+ // callback after reading input obs
+ // and before calling EditObs (pass input obs)
+ iret = BeforeEditObs(roin);
+ if(iret) { iret=-8; break; }
+
+ iret = EditObs(roin,roout);
+ // Return -2 error
+ // -1 time limit reached
+ // 0 DO NOT write the output obs ROOut
+ // 1 DO NOT write the output obs ROOut,
+ // but close and re-open the output file
+ // 2 DO write the output obs ROOut
+ // 3 DO write the output obs ROOut,
+ // but first close and re-open the output file
+ if(REDebug) {
+ *oflog << "EditObs returned " << iret << endl;
+ roout.dump(*oflog);
+ }
+ }
+
+ if(iret == -2) break; // error => abort
+
+ if(iret == -1 || iret == 1 || iret == 3) { // new output file
+ // close this output file
+ ROFout.close();
+ // fill the optional header records
+ if(FillOptionalHeader) {
+ if(Noutput > 0) {
+ if(FillHeaderAndReplaceFile(TempFile,TrueOutputFile) != 0) {
+ cerr << "Failed to fill header and replace file - abort\n";
+ if(REVerbose)
+ *oflog << "Failed to fill header and replace file - abort\n";
+ return -4;
+ }
+ else if(REVerbose) *oflog << "Added header to " << TempFile
+ << " and put in " << TrueOutputFile << endl;
+ }
+
+ if(iret != -1) { // not EOF => going on to another file
+ TrueOutputFile = OutputFile;
+ OutputFile = GetTempFileName();
+ if(OutputFile.empty()) {
+ cerr << "Could not create temporary file name - abort\n";
+ if(REVerbose)
+ *oflog << "Could not create temporary file name - abort\n";
+ return -5;
+ }
+ // some OSs create the file when you get the name...
+ remove(OutputFile.c_str());
+ if(!OutputDir.empty())
+ OutputFile = OutputDir + string("/") + OutputFile;
+ TempFile = OutputFile;
+ if(REVerbose) *oflog << "New temp file is " << TempFile
+ << ", and true output file is " << TrueOutputFile << endl;
+ }
+
+ } // end if FillOptionalHeader
+ else {
+ TrueOutputFile = OutputFile;
+ }
+
+ if(iret == -1) { // quit
+ if(REVerbose)
+ *oflog << "Finished processing obs file " << InputFile << endl;
+ iret = 0;
+ break;
+ }
+
+ // open the new output file
+ ROFout.open(OutputFile.c_str(), ios::out);
+ Noutput = 0;
+ if(REVerbose) *oflog << "New output file " << TrueOutputFile
+ << " (really " << OutputFile << ") at time " << roin.time << endl;
+
+ } // end if new output file
+
+ // write to output
+ if(iret > 1) { // not EOF nor error
+ if(Noutput == 0) {
+ rhout.firstObs = roout.time;
+ // callback before writing out header (pass output header)
+ iret = BeforeWritingHeader(rhout);
+ if(iret) return -9;
+
+ ROFout << rhout;
+ if(REVerbose) {
+ *oflog << "Dump output header (iret is " << iret << "):\n";
+ rhout.dump(*oflog);
+ }
+ // prepare for next file
+ RHOut = rhout;
+ table.clear();
+ for(int i=0; i<9; i++) ndt[i]=-1;
+ }
+
+ // callback just before writing output obs (pass reference to output obs)
+ // return value of BeforeWritingObs determines what is written:
+ // if return <0 abort
+ // 0 write nothing
+ // 1 write the obs data structure (note that the caller may set
+ // roout.epochFlag to determine what is output : 0,1 are data,
+ // while 2,3,4 or 5, is for in-line header auxHeader only)
+ // >1 write BOTH header data (in auxHeader, setting
+ // epochFlag=return) AND obs data
+ roout.auxHeader.clear();
+ iret = BeforeWritingObs(roout);
+ if(iret < 0) return -10;
+ if(iret > 1) { // write auxiliary header info first
+ int flag=roout.epochFlag, nsvs=roout.numSvs;
+ roout.epochFlag = iret;
+ roout.numSvs = roout.auxHeader.NumberHeaderRecordsToBeWritten();
+ // write out the header records
+ ROFout << roout;
+ Noutput++;
+ // prepare to write obs
+ roout.epochFlag = flag;
+ roout.numSvs = nsvs;
+ }
+
+ // add count of valid obs to table for header
+ // -- have to do it here b/c BeforeWritingObs has just filled it
+ if(FillOptionalHeader) {
+ int k,n=RHOut.obsTypeList.size();
+ RinexObsData::RinexSatMap::const_iterator pit;
+ RinexObsData::RinexObsTypeMap::const_iterator pjt;
+ for(pit=roout.obs.begin(); pit != roout.obs.end(); ++pit) {
+ vector<TableData>::iterator ptab;
+ ptab = find(table.begin(),table.end(),TableData(pit->first,n));
+ if(ptab == table.end()) {
+ table.push_back(TableData(pit->first,n));
+ ptab = find(table.begin(),table.end(),TableData(pit->first,n));
+ }
+ for(pjt=pit->second.begin(); pjt!=pit->second.end(); pjt++) {
+ for(k=0; k<n; k++) if(RHOut.obsTypeList[k] == pjt->first) break;
+ if(pjt->second.data != 0.0) ptab->nobs[k]++;
+ }
+ }
+ }
+
+ // now write out the obs
+ if(REDebug) {
+ *oflog << "Write this obs to output:\n";
+ roout.dump(*oflog);
+ }
+ ROFout << roout;
+ Noutput++;
+ }
+
+ } // end while loop over epochs
+
+ if(REDebug) *oflog << "Close input file" << endl;
+ ROFin.clear();
+ ROFin.close();
+
+ } // end loop over input file names
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+vector<string> RinexEditor::CommandList(void) throw(Exception)
+{
+try {
+ string str,comma(",");
+ vector<string> strs;
+ deque<REditCmd>::iterator jt;
+
+ for(jt=Cmds.begin(); jt != Cmds.end(); jt++) {
+ str = REditCmd::typeLabel[jt->type]
+ + comma + (jt->sign < 0 ? string("-1") :
+ (jt->sign > 0 ? string("1") : string("0")))
+ + comma + jt->SV.toString()
+ + comma + asString(jt->inOT)
+ + comma + jt->field
+ + comma + asString(jt->bias,3)
+ + comma + jt->time.printf("%4Y/%02m/%02d,%02H:%02M:%.4f")
+ ;
+ strs.push_back(str);
+ }
+
+ return strs;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void DisplayRinexEditUsage(ostream& os) throw()
+{
+ os <<
+" Rinex Editor commands:\n"
+" ===================================================================================\n"
+" Commands consist of an identifier and a comma-delimited data field; they may be\n"
+" separated by space(s) '--id <data>' (two minuses) or not '-id<data>' (one minus).\n"
+" Examples are '--IF myFile' or '-IFmyFile'; '--HDc msg' or '--HD cmsg' or '-HDcmsg';\n"
+" --BZ or -BZ; '--DD +<SV,OT,t>' or '--DD+ <SV,OT,t>' or '-DD+<SV,OT,t>'.\n"
+" The data field contains no whitespace and sub-fields are comma-delimited.\n"
+" <SV> is a RINEX 'system & id' identifier, e.g. G27 (= GPS PRN 27);\n"
+" satellite system alone denotes 'all satellites this system', e.g. 'R' (GLONASS).\n"
+" <OT> is a RINEX observation type, e.g. L1 or P2, and is case sensitive.\n"
+" <time> is either <GPSweek,GPSsecOfWeek> or <year,mon,day,hour,min,second>.\n"
+"\n"
+" File I/O:\n"
+" ---------\n"
+" -IF<file> Input RINEX observation file name [may be repeated] (required)\n"
+" -ID<dir> Directory in which to find input file\n"
+" -OF<file> Output RINEX file name (required, or -OF<file>,<time>)\n"
+" -OF<f>,<time> At RINEX epoch <time>, close output file and open another named <f>\n"
+" -OD<dir> Directory in which to put output file(s)\n"
+"\n"
+" Output RINEX header:\n"
+" --------------------\n"
+" -HDf If present, fill optional records in the output RINEX header\n"
+//" (NB EditObs() and EditFile() will do this, but NOT EditHeader().)\n"
+" -HDp<program> Set output RINEX header 'program' field\n"
+" -HDr<run_by> Set output RINEX header 'run by' field\n"
+" -HDo<observer> Set output RINEX header 'observer' field\n"
+" -HDa<agency> Set output RINEX header 'agency' field\n"
+" -HDx<x,y,z> Set output RINEX header 'position' field to ECEF position (x,y,z)\n"
+" -HDm<marker> Set output RINEX header 'marker' field\n"
+" -HDn<number> Set output RINEX header 'number' field\n"
+" -HDc<comment> Add comment to output RINEX header (more than one allowed).\n"
+" -HDdc Delete all comments in output RINEX header\n"
+" (NB -HDdc cannot delete comments created by *subsequent* -HDc commands)\n"
+"\n"
+" Output RINEX observation types (also see 'Specific edit commands' below):\n"
+" -------------------------------------------------------------------------\n"
+" -AO<OT> Add observation type OT to header and observation data\n"
+" -DO<OT> Delete observation type OT entirely (including in header)\n"
+"\n"
+" Time-related edit commands:\n"
+" ---------------------------\n"
+" -TB<time> Begin time: reject data before this time (also used for decimation)\n"
+" -TE<time> End time: reject data after this time\n"
+" -TT<dt> Tolerance in comparing times, in seconds (default=1ms)\n"
+" -TN<dt> Decimate data to epochs = Begin + integer*dt (within tolerance)\n"
+"\n"
+" Specific edit commands:\n"
+" -----------------------\n"
+" (Generally each '+' command (e.g DA+<time>) has a corresponding '-' command,\n"
+" and vice-versa; if not, end-of-file or beginning-of-file is assumed.\n"
+" Note that one-time commands are applied AFTER other commands of the same type.)\n"
+"\n"
+" Delete commands:\n"
+" -DA+<time> Delete all data beginning at this time\n"
+" -DA-<time> Stop deleting data at this time\n"
+" -DO<OT> Delete observation type OT entirely (including in header)\n"
+" -DS<SV> Delete all data for satellite SV entirely (SV may be system only)\n"
+" -DS<SV>,<time> Delete all data for satellite SV at this single time only\n"
+" -DS+<SV>,<time> Delete all data for satellite SV beginning at this time\n"
+" -DS-<SV>,<time> Stop deleting all data for satellite SV at this time\n"
+" -DD<SV,OT,t> Delete a single RINEX datum(SV,OT,t) at time <t>\n"
+" -DD+<SV,OT,t> Delete all (SV,OT) data, beginning at time <t>\n"
+" -DD-<SV,OT,t> Stop deleting all (SV,OT) data at time <t>\n"
+" (NB deleting data for one OT means setting it to zero - as RINEX requires)\n"
+"\n"
+" Set commands:\n"
+" -SD<SV,OT,t,d> Set data(SV,OT,t) to <d> at time <t>\n"
+" -SS<SV,OT,t,s> Set ssi(SV,OT,t) to <s> at time <t>\n"
+" -SL+<SV,OT,t,l> Set all lli(SV,OT,t) to <l> at time <t>\n"
+" -SL-<SV,OT,t,l> Stop setting lli(SV,OT,t) to <l> at time <t> (',<l>' is optional)\n"
+" -SL<SV,OT,t,l> Set lli(SV,OT,t) to <l> at the single time <t> only\n"
+"\n"
+" Bias commands:\n"
+" (NB. BD commands apply only when data is non-zero, unless -BZ appears)\n"
+" -BZ Apply BD commands even when data is zero (i.e. 'missing')\n"
+" -BD<SV,OT,t,d> Add the value of <d> to data(SV,OT,t) at time <t>\n"
+" -BD+<SV,OT,t,d> Add value <d> to data(SV,OT) beginning at time <t>\n"
+" -BD-<SV,OT,t,d> Stop adding <d> to data(SV,OT) at time <t> (',<d>' optional)\n"
+" -BS<SV,OT,t,s> Add the value of <s> to ssi(SV,OT,t) at time <t>\n"
+" -BL<SV,OT,t,l> Add the value of <l> to lli(SV,OT,t) at time <t>\n"
+"\n End of Rinex Editor commands.\n"
+" ===================================================================================\n"
+ ;
+ os << endl;
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/Rinextools/RinexEditor.hpp b/dev/apps/Rinextools/RinexEditor.hpp
new file mode 100644
index 0000000..b92a96d
--- /dev/null
+++ b/dev/apps/Rinextools/RinexEditor.hpp
@@ -0,0 +1,317 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file RinexEditor.hpp
+ * Edit Rinex observation files.
+ */
+
+#ifndef RINEX_EDITING_COMMANDS_INCLUDE
+#define RINEX_EDITING_COMMANDS_INCLUDE
+
+//------------------------------------------------------------------------------------
+#include "Exception.hpp"
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "DayTime.hpp"
+#include "RinexSatID.hpp"
+
+#include <fstream>
+#include <string>
+#include <vector>
+#include <deque>
+
+//------------------------------------------------------------------------------------
+namespace gpstk {
+
+ /** @addtogroup rinexutils */
+ //@{
+
+ // forward declarations
+class RinexEditor;
+class REditCmdLessThan;
+class TableData;
+class TablePRNLessThan;
+
+//------------------------------------------------------------------------------------
+/// Class REditCmd encapsulates commands passed to the Rinex Editor
+/// (class RinexEditor).
+class REditCmd {
+ friend class RinexEditor;
+ friend class REditCmdLessThan;
+ friend bool operator==(const REditCmd& x, const REditCmd& y);
+private:
+ /// The command types: input file, output file, etc.
+ enum TYPE {
+ //(order matters)
+ INVALID=0,IF,OF,ID,OD,HD,TN,TB,TE,TT,AO,DA,DO,DS,DD,SD,SS,SL,BD,BS,BL,BZ
+ };
+ /// The type of this command
+ TYPE type;
+ /// Satellite identifier for data to which this command will apply.
+ RinexSatID SV;
+ /// Time associated with this command.
+ DayTime time;
+ /// Sign associated with this command.
+ int sign;
+ /// String associated with this command.
+ std::string field;
+ /// integer associated with this command.
+ int inOT;
+ /// bias associated with this command.
+ double bias;
+ /// map giving label as a string for each command type
+ static std::map<TYPE, std::string> typeLabel;
+
+public:
+ /// Default constructor (type is set INVALID).
+ REditCmd(void) { type=INVALID; }
+ /// Destructor
+ ~REditCmd(void);
+ /// Constructor from a string which contains the editing command.
+ REditCmd(std::string s, std::ostream *oflog=&std::cout) throw(Exception);
+ /// Is this a valid command?
+ inline bool valid(void) throw() { return (type!=INVALID); }
+ /// Print the command on an ostream, with an optional message.
+ void Dump(std::ostream& os, std::string msg) throw(Exception);
+
+ class Initialize {
+ public: Initialize();
+ };
+ static Initialize REditCmdInitializer;
+};
+
+ /// operator==(REditCmd), defined so algorithm find() can be used to find
+ /// the "-" companion to "+" commands.
+inline bool operator==(const REditCmd& x, const REditCmd& y)
+ { return (x.type == y.type &&
+ x.SV == y.SV &&
+ //x.time == y.time &&
+ x.sign == -y.sign && // note the -
+ x.field == y.field &&
+ //x.bias == y.bias &&
+ x.inOT == y.inOT); }
+
+/// class REditCmdLessThan, for use with algorithm sort().
+class REditCmdLessThan {
+public:
+ /// return true if c1 is less than c2.
+ bool operator()(const REditCmd& c1, const REditCmd& c2)
+ { return c1.time < c2.time; }
+};
+
+//------------------------------------------------------------------------------------
+/// class RinexEditor encapsulates the process of editing a Rinex observation dataset
+/// (header and observations), including the editing commands that have been input
+/// from the user.
+class RinexEditor {
+private:
+ /// all input files
+ std::vector<std::string> Inputfiles;
+ /// input and output file names.
+ std::string InputFile,OutputFile;
+ /// directories for the input and output files.
+ std::string InputDir,OutputDir;
+ /// start and stop times, for windowing the data.
+ DayTime BegTime,EndTime;
+ /// tolerance to be used in comparing time tags.
+ double TimeTol;
+ /// time step interval if the data is to be decimated.
+ double Decimate;
+ /// flag to indicate how to handle data with value 'zero'.
+ bool BiasZeroData;
+ /// flag used when data is omitted from output
+ bool Skip;
+ /// vector of Rinex observation types in header.
+ std::vector<RinexObsHeader::RinexObsType> ObsTypes;
+ /// vector of satellites to be deleted.
+ std::vector<RinexSatID> DelSV;
+ /// input and output Rinex headers.
+ RinexObsHeader RHIn,RHOut;
+ /// flag for editing the Rinex header.
+ bool FillOptionalHeader,HDDeleteOldComments;
+ /// flags indicating validity of optional records in the input header.
+ bool IVLast,IVInterval,IVTable;
+ /// content of the PROGRAM header record.
+ std::string HDProgram;
+ /// content of the RUN BY header record.
+ std::string HDRunBy;
+ /// content of the OBSERVER header record.
+ std::string HDObserver;
+ /// content of the AGENCY header record.
+ std::string HDAgency;
+ /// content of the POSITION header record, in the form 'x,y,z'
+ std::string HDPosition;
+ /// content of the MARKER header record.
+ std::string HDMarker;
+ /// content of the NUMBER header record.
+ std::string HDNumber;
+ /// comments in the Rinex header.
+ std::vector<std::string> HDComments;
+ /// times for computing start and stop times, to go in the Rinex header.
+ DayTime CurrEpoch,PrevEpoch;
+ /// an integer array for computing the time interval, to go in the Rinex header.
+ int ndt[9];
+ /// a double array for computing the time interval, to go in the Rinex header.
+ double bestdt[9];
+ /// storage for the PRN/OBS table, to go in the Rinex header.
+ std::vector<TableData> table;
+
+ /// Rinex Editing commands that will have to be saved.
+ std::deque<REditCmd> Cmds;
+ /// Rinex Editing commands for use during processing.
+ std::vector<REditCmd> OneTimeCmds;
+ /// Rinex Editing commands for use in the current timestep.
+ std::vector<REditCmd> CurrentCmds;
+
+public:
+ /// flag to control debugging and analysis output.
+ bool REVerbose,REDebug;
+ /// the output log file stream.
+ std::ostream *oflog;
+
+ /// Default constructor. NB. Do not instantiate a RinexEditor outside of
+ /// main(), as static initialization order on some OSs (Solaris) mean that
+ /// DayTime::END_OF_TIME may not be defined at that point.
+ RinexEditor(void);
+ /// Destructor
+ virtual ~RinexEditor(void);
+ /// return string giving the editor version
+ std::string getRinexEditVersion(void);
+ /// pretty print configuration
+ std::ostream& operator<<(const std::ostream& os);
+ /// Add the Rinex Editing command structures to the user's command line.
+ void AddCommandLine(std::vector<std::string>& args) throw(Exception);
+ /// Add a Rinex Editing command to this Editor.
+ void AddCommand(std::string cmd) throw(Exception);
+ /// Parse the command line for Rinex Editing commands.
+ int ParseCommands(void) throw(Exception);
+ /// Edit the input header to produce the output header.
+ int EditHeader(RinexObsHeader& RHIn, RinexObsHeader& RHOut) throw(Exception);
+ /// Edit the input observation to produce the output observation.
+ int EditObs(RinexObsData& ROIn, RinexObsData& ROOut) throw(Exception);
+ /// Edit a Rinex observation file, using the stored Rinex Editing commands.
+ int EditFile(void) throw(Exception);
+ /// used to add optional records to the header.
+ int FillHeaderAndReplaceFile(std::string& TempFile,std::string& TrueOutputFile)
+ throw(Exception);
+
+ /// This function is called after reading input header and before
+ /// calling EditHeader (pass input header).
+ virtual int BeforeEditHeader(const RinexObsHeader& rhin) throw(Exception)
+ { return 0; }
+
+ /// This function is called after calling EditHeader (pass it the output header).
+ virtual int AfterEditHeader(const RinexObsHeader& rhout) throw(Exception)
+ { return 0; }
+
+ /// This function is called after reading the input observation and before
+ /// calling EditObs (pass it the input observation).
+ virtual int BeforeEditObs(const RinexObsData& roin) throw(Exception)
+ { return 0; }
+
+ /// This function is called before writing out the header (pass it
+ /// the output header).
+ virtual int BeforeWritingHeader(RinexObsHeader& rhout) throw(Exception)
+ { return 0; }
+
+ /// This function is called before writing out the header that has been
+ /// filled with optional records
+ virtual int BeforeWritingFilledHeader(RinexObsHeader& rhout) throw(Exception)
+ { return 0; }
+
+ /** Callback, just before writing output obs (pass output obs)
+ * Return value of BeforeWritingObs determines what is written:
+ * if return <0 write nothing and abort
+ * 0 write nothing
+ * 1 write the obs data roout ONLY (note that the caller may set
+ * roout.epochFlag to determine what is output : 0,1 are data,
+ * while 2,3,4 or 5, are for in-line header (roout.auxHeader)
+ * only -- see the Rinex or RinexObsData documentation)
+ * >1 write BOTH header data (in roout.auxHeader), first setting
+ * roout.epochFlag = the return value), AND the obs data
+ * in roout, using the original value of roout.epochFlag
+ */
+ virtual int BeforeWritingObs(RinexObsData& roout) throw(Exception)
+ { return 0; }
+
+ /// member access of the decimation time interval.
+ double Decimation(void) { return Decimate; }
+ /// member access of the time comparison tolerance.
+ double Tolerance(void) { return TimeTol; }
+ /// member access of the start time.
+ DayTime BeginTimeLimit(void) { return BegTime; }
+ /// member access of the end time.
+ DayTime EndTimeLimit(void) { return EndTime; }
+ /// member access of the input file name.
+ std::string InputFileName(void) { return InputFile; }
+ /// member access of the output file name.
+ std::string OutputFileName(void) { return OutputFile; }
+ /// member access input directory.
+ std::string InputDirectory(void) { return InputDir; }
+ /// member access output directory.
+ std::string OutputDirectory(void) { return OutputDir; }
+ /// member access command list, return vector of strings, each with
+ /// comma-delimited fields: type,sign,sat,inOT,field,bias,time
+ /// e.g. AO,0,G33,-1,SZ,-99.990,-4713/01/01,00:00:0.0000
+ /// IF,0,G33,-1,usno2930.06o.df,-99.990,-4713/01/01,00:00:0.0000
+ /// HD,0,G33,80,ResCor v.3.7 ,-99.990,-4713/01/01,00:00:0.0000
+ std::vector<std::string> CommandList(void) throw(Exception);
+
+}; // end class RinexEditor
+
+//------------------------------------------------------------------------------------
+/// class TableData is used to store the information in the PRN/Obs table in the
+/// Rinex observation header.
+class TableData { // class used to store PRN/Obs table
+public:
+ /// satellite identifier.
+ RinexSatID prn;
+ /// vector of the number of observations, parallel to the obs types in the header.
+ std::vector<int> nobs;
+ /// constructor, given a satellite id and the number of observation types.
+ TableData(const RinexSatID& p, const int& n) { prn=p; nobs=std::vector<int>(n); };
+ /// operator==(), needed for find() (compares prn only).
+ inline bool operator==(const TableData& d) {return d.prn == prn;}
+};
+
+/// class define for use with sort(TableData).
+class TablePRNLessThan {
+public:
+ /// return true is d1 is less than d2 (compares prn only).
+ bool operator()(const TableData& d1, const TableData& d2)
+ { return d1.prn < d2.prn; }
+};
+
+ //@}
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
+/// Pretty print the Rinex Editing command syntax, for use by the calling program.
+void DisplayRinexEditUsage(std::ostream& os) throw();
+
+//------------------------------------------------------------------------------------
+#endif // nothing below this
diff --git a/trunk/apps/bindings/DayTime.i b/dev/apps/bindings/DayTime.i
similarity index 100%
rename from trunk/apps/bindings/DayTime.i
rename to dev/apps/bindings/DayTime.i
diff --git a/trunk/apps/bindings/Exception.i b/dev/apps/bindings/Exception.i
similarity index 100%
rename from trunk/apps/bindings/Exception.i
rename to dev/apps/bindings/Exception.i
diff --git a/trunk/apps/bindings/FFTextStream.i b/dev/apps/bindings/FFTextStream.i
similarity index 100%
rename from trunk/apps/bindings/FFTextStream.i
rename to dev/apps/bindings/FFTextStream.i
diff --git a/trunk/apps/bindings/GPSZcount.i b/dev/apps/bindings/GPSZcount.i
similarity index 100%
rename from trunk/apps/bindings/GPSZcount.i
rename to dev/apps/bindings/GPSZcount.i
diff --git a/trunk/apps/bindings/README b/dev/apps/bindings/README
similarity index 100%
rename from trunk/apps/bindings/README
rename to dev/apps/bindings/README
diff --git a/trunk/apps/bindings/RinexObsStream.i b/dev/apps/bindings/RinexObsStream.i
similarity index 100%
rename from trunk/apps/bindings/RinexObsStream.i
rename to dev/apps/bindings/RinexObsStream.i
diff --git a/trunk/apps/bindings/common.i b/dev/apps/bindings/common.i
similarity index 100%
rename from trunk/apps/bindings/common.i
rename to dev/apps/bindings/common.i
diff --git a/trunk/apps/bindings/gpstk.i b/dev/apps/bindings/gpstk.i
similarity index 100%
rename from trunk/apps/bindings/gpstk.i
rename to dev/apps/bindings/gpstk.i
diff --git a/dev/apps/bindings/java/Makefile b/dev/apps/bindings/java/Makefile
new file mode 100644
index 0000000..8930ca2
--- /dev/null
+++ b/dev/apps/bindings/java/Makefile
@@ -0,0 +1,51 @@
+#
+# $Id$
+#
+# This simple makefile builds a Java interface to the GPSTk from code
+# generated the SWIG utility (http://www.swig.org/).
+#
+#
+# What you do need:
+# - A C/C++ compiler.
+# - Development kit for Java
+# - The sed utility
+# - the swig utility
+#
+# Not all GPSTk functionality is present in these bindings.
+# Two reasons: First, this is a work in progress and should be considered
+# incomplete. Second, not all of the GPSTk's functionality _can_ be mapped
+# into other languages such as Java.
+#
+# Examples of usage of this interface are in the examples subdirectory.
+#
+# Reminder for later: $@ is target, $< is rhs, $^ is rhs
+
+all : libgpstk.so
+
+gpstk_wrap.cxx: ../gpstk.i ../common.i ../Exception.i ../GPSZcount.i \
+ ../DayTime.i
+ swig -java -c++ -noexcept -I.. gpstk.i
+
+gpstk_wrap_mod.cxx: gpstk_wrap.cxx
+ sed 's/DayTime.hpp\"/DayTime.hpp\"\nusing namespace gpstk;/' gpstk_wrap.cxx > gpstk_wrap_mod.cxx
+
+gpstk_wrap_mod.o: gpstk_wrap_mod.cxx
+ g++ -fPIC -c gpstk_wrap_mod.cxx -I.. \
+ -I/usr/local/jdk1.5.0_01/include \
+ -I/usr/local/jdk1.5.0_01/include/linux
+
+libgpstk.so: gpstk_wrap_mod.o
+ g++ -shared gpstk_wrap_mod.o -o libgpstk.so -lgpstk
+
+clean:
+ rm *.class
+ rm *.java
+ rm *_wrap*
+ rm *gpstk*.so
+
+
+
+
+
+
+
diff --git a/trunk/apps/bindings/java/examples/example1.java b/dev/apps/bindings/java/examples/example1.java
similarity index 100%
rename from trunk/apps/bindings/java/examples/example1.java
rename to dev/apps/bindings/java/examples/example1.java
diff --git a/dev/apps/bindings/octave/Makefile b/dev/apps/bindings/octave/Makefile
new file mode 100644
index 0000000..180ffd3
--- /dev/null
+++ b/dev/apps/bindings/octave/Makefile
@@ -0,0 +1,29 @@
+#
+# $Id$
+#
+# To use these routines the GPSTk shared library either needs to be
+# installed as a system shared library, or the environment variable
+# LD_LIBRARY_PATH needs to set to the directory where the shared
+# library file resides
+#
+
+all : readRinexObsFast.oct readRinexObsGeom.oct \
+ calculatePosition.oct
+
+readRinexObsFast.oct: readRinexObsFast.cpp
+ $(make_oct)
+
+readRinexObsGeom.oct: readRinexObsGeom.cpp
+ $(make_oct)
+
+calculatePosition.oct: calculatePosition.cpp
+ $(make_oct)
+
+define make_oct
+ @echo "making oct file: $@"
+ @echo "mkoctfile $(CXXFLAGS) -o $@ $^ $(LDLIBS)"
+ mkoctfile -I../src -L../src -lgpstk -o $@ $^ $(LDLIBS)
+ chmod 755 $@
+ for file in $^ ; do $(RM) $$file.o ; done
+endef
+
diff --git a/trunk/apps/bindings/octave/calculatePosition.cpp b/dev/apps/bindings/octave/calculatePosition.cpp
similarity index 100%
rename from trunk/apps/bindings/octave/calculatePosition.cpp
rename to dev/apps/bindings/octave/calculatePosition.cpp
diff --git a/trunk/apps/bindings/octave/readRinexObsFast.cpp b/dev/apps/bindings/octave/readRinexObsFast.cpp
similarity index 100%
rename from trunk/apps/bindings/octave/readRinexObsFast.cpp
rename to dev/apps/bindings/octave/readRinexObsFast.cpp
diff --git a/trunk/apps/bindings/octave/readRinexObsGeom.cpp b/dev/apps/bindings/octave/readRinexObsGeom.cpp
similarity index 100%
rename from trunk/apps/bindings/octave/readRinexObsGeom.cpp
rename to dev/apps/bindings/octave/readRinexObsGeom.cpp
diff --git a/dev/apps/bindings/perl/Makefile b/dev/apps/bindings/perl/Makefile
new file mode 100644
index 0000000..5b73d37
--- /dev/null
+++ b/dev/apps/bindings/perl/Makefile
@@ -0,0 +1,50 @@
+#
+# $Id$
+#
+# This simple makefile builds a Perl interface to the GPSTk from code
+# generated the SWIG utility (http://www.swig.org/).
+#
+# You shouldn't need to install SWIG to compile this interface as
+# distributed, unless you change the interface definition (.i files).
+#
+# What you do need:
+# - A C/C++ compiler.
+# - Development headers of Perl
+# - Knowledge of which directory contains "perl.h", "Extern.h" and "XSUB.h"
+# - The sed utility
+#
+# Not all GPSTk functionality is present in these bindings.
+# Two reasons: First, this is a work in progress and should be considered
+# incomplete. Second, not all of the GPSTk's functionality _can_ be mapped
+# into other languages such as perl.
+#
+# Examples of usage of this interface are in the examples subdirectory.
+#
+# Reminder for later: $@ is target, $< is rhs, $^ is rhs
+
+all : gpstk-perl.so
+
+gpstk_wrap.cxx: ../gpstk.i ../common.i ../Exception.i ../GPSZcount.i \
+ ../DayTime.i ../FFTextStream.i ../RinexObsStream.i
+ swig -perl5 -c++ -I.. \
+ gpstk.i
+
+gpstk_wrap_mod.cxx: gpstk_wrap.cxx
+ sed 's/DayTime.hpp\"/DayTime.hpp\"\nusing namespace gpstk;/' gpstk_wrap.cxx > gpstk_wrap_mod.cxx
+
+gpstk_wrap_mod.o: gpstk_wrap_mod.cxx
+ g++ -fpic -c gpstk_wrap_mod.cxx -I.. -I /usr/lib/perl/5.8.4/CORE \
+ -Dbool=char `perl -e 'use Config; print $Config{ccflags}'`
+
+gpstk-perl.so: gpstk_wrap_mod.o
+ g++ -shared gpstk_wrap_mod.o -o gpstk-perl.so -lgpstk
+
+clean:
+ rm *_wrap*
+ rm *gpstk*.so
+
+
+
+
+
+
diff --git a/trunk/apps/bindings/python/DayTimeException.i b/dev/apps/bindings/python/DayTimeException.i
similarity index 100%
rename from trunk/apps/bindings/python/DayTimeException.i
rename to dev/apps/bindings/python/DayTimeException.i
diff --git a/trunk/apps/bindings/python/Developer.txt b/dev/apps/bindings/python/Developer.txt
similarity index 100%
rename from trunk/apps/bindings/python/Developer.txt
rename to dev/apps/bindings/python/Developer.txt
diff --git a/trunk/apps/bindings/python/ExtraWaveFact.i b/dev/apps/bindings/python/ExtraWaveFact.i
similarity index 100%
rename from trunk/apps/bindings/python/ExtraWaveFact.i
rename to dev/apps/bindings/python/ExtraWaveFact.i
diff --git a/trunk/apps/bindings/python/Makefile b/dev/apps/bindings/python/Makefile
similarity index 100%
rename from trunk/apps/bindings/python/Makefile
rename to dev/apps/bindings/python/Makefile
diff --git a/trunk/apps/bindings/python/RinexDatum.i b/dev/apps/bindings/python/RinexDatum.i
similarity index 100%
rename from trunk/apps/bindings/python/RinexDatum.i
rename to dev/apps/bindings/python/RinexDatum.i
diff --git a/trunk/apps/bindings/python/RinexObsType.i b/dev/apps/bindings/python/RinexObsType.i
similarity index 100%
rename from trunk/apps/bindings/python/RinexObsType.i
rename to dev/apps/bindings/python/RinexObsType.i
diff --git a/trunk/apps/bindings/python/common.i b/dev/apps/bindings/python/common.i
similarity index 100%
rename from trunk/apps/bindings/python/common.i
rename to dev/apps/bindings/python/common.i
diff --git a/trunk/apps/bindings/python/examples/example1.html b/dev/apps/bindings/python/examples/example1.html
similarity index 100%
rename from trunk/apps/bindings/python/examples/example1.html
rename to dev/apps/bindings/python/examples/example1.html
diff --git a/trunk/apps/bindings/python/examples/example1.py b/dev/apps/bindings/python/examples/example1.py
similarity index 100%
rename from trunk/apps/bindings/python/examples/example1.py
rename to dev/apps/bindings/python/examples/example1.py
diff --git a/trunk/apps/bindings/python/examples/example2.html b/dev/apps/bindings/python/examples/example2.html
similarity index 100%
rename from trunk/apps/bindings/python/examples/example2.html
rename to dev/apps/bindings/python/examples/example2.html
diff --git a/trunk/apps/bindings/python/examples/example2.py b/dev/apps/bindings/python/examples/example2.py
similarity index 100%
rename from trunk/apps/bindings/python/examples/example2.py
rename to dev/apps/bindings/python/examples/example2.py
diff --git a/trunk/apps/bindings/python/examples/example3.html b/dev/apps/bindings/python/examples/example3.html
similarity index 100%
rename from trunk/apps/bindings/python/examples/example3.html
rename to dev/apps/bindings/python/examples/example3.html
diff --git a/trunk/apps/bindings/python/examples/example3.py b/dev/apps/bindings/python/examples/example3.py
similarity index 100%
rename from trunk/apps/bindings/python/examples/example3.py
rename to dev/apps/bindings/python/examples/example3.py
diff --git a/trunk/apps/bindings/python/gpstkPython.html b/dev/apps/bindings/python/gpstkPython.html
similarity index 100%
rename from trunk/apps/bindings/python/gpstkPython.html
rename to dev/apps/bindings/python/gpstkPython.html
diff --git a/trunk/apps/bindings/python/gpstkPython.i b/dev/apps/bindings/python/gpstkPython.i
similarity index 100%
rename from trunk/apps/bindings/python/gpstkPython.i
rename to dev/apps/bindings/python/gpstkPython.i
diff --git a/trunk/apps/bindings/python/gpstkPythonUtils.cpp b/dev/apps/bindings/python/gpstkPythonUtils.cpp
similarity index 100%
rename from trunk/apps/bindings/python/gpstkPythonUtils.cpp
rename to dev/apps/bindings/python/gpstkPythonUtils.cpp
diff --git a/trunk/apps/bindings/python/gpstkPythonUtils.i b/dev/apps/bindings/python/gpstkPythonUtils.i
similarity index 100%
rename from trunk/apps/bindings/python/gpstkPythonUtils.i
rename to dev/apps/bindings/python/gpstkPythonUtils.i
diff --git a/trunk/apps/bindings/python/gpstkPython_wrap.cxx b/dev/apps/bindings/python/gpstkPython_wrap.cxx
similarity index 100%
rename from trunk/apps/bindings/python/gpstkPython_wrap.cxx
rename to dev/apps/bindings/python/gpstkPython_wrap.cxx
diff --git a/trunk/apps/bindings/python/pydoc.py b/dev/apps/bindings/python/pydoc.py
similarity index 100%
rename from trunk/apps/bindings/python/pydoc.py
rename to dev/apps/bindings/python/pydoc.py
diff --git a/trunk/apps/bindings/python/sensorType.i b/dev/apps/bindings/python/sensorType.i
similarity index 100%
rename from trunk/apps/bindings/python/sensorType.i
rename to dev/apps/bindings/python/sensorType.i
diff --git a/trunk/apps/bindings/python/streamRead.cpp b/dev/apps/bindings/python/streamRead.cpp
similarity index 100%
rename from trunk/apps/bindings/python/streamRead.cpp
rename to dev/apps/bindings/python/streamRead.cpp
diff --git a/trunk/apps/bindings/python/streamRead.i b/dev/apps/bindings/python/streamRead.i
similarity index 100%
rename from trunk/apps/bindings/python/streamRead.i
rename to dev/apps/bindings/python/streamRead.i
diff --git a/dev/apps/bindings/tcl/Makefile b/dev/apps/bindings/tcl/Makefile
new file mode 100644
index 0000000..4a4a270
--- /dev/null
+++ b/dev/apps/bindings/tcl/Makefile
@@ -0,0 +1,49 @@
+#
+# $Id$
+#
+# This simple makefile builds a Tcl/Tk interface to the GPSTk from code
+# generated the SWIG utility (http://www.swig.org/).
+#
+# You shouldn't need to install SWIG to compile this interface as
+# distributed, unless you change the interface definition (.i files).
+#
+# What you do need:
+# - A C/C++ compiler.
+# - Development headers of Tcl/Tk
+# - Knowledge where the header tcl.h is installed
+# - The sed utility
+#
+# Not all GPSTk functionality is present in these Tcl/Tk bindings.
+# Two reasons: First, this is a work in progress and should be considered
+# incomplete. Second, not all of the GPSTk's functionality _can_ be mapped
+# into other languages such as Tcl/Tk.
+#
+# Examples of usage of this interface are in the examples subdirectory.
+#
+# Reminder for later: $@ is target, $< is rhs, $^ is rhs
+
+all : gpstk-tcl.so
+
+gpstk_wrap.cxx: ../gpstk.i ../common.i ../Exception.i ../GPSZcount.i \
+ ../DayTime.i ../FFTextStream.i ../RinexObsStream.i
+ swig -tcl -c++ -importall -ignoremissing -I.. \
+ gpstk.i
+
+gpstk_wrap_mod.cxx: gpstk_wrap.cxx
+ sed 's/DayTime.hpp\"/DayTime.hpp\"\nusing namespace gpstk;/' gpstk_wrap.cxx > gpstk_wrap_mod.cxx
+
+gpstk_wrap_mod.o: gpstk_wrap_mod.cxx
+ g++ -fpic -c gpstk_wrap_mod.cxx -I.. -I /usr/include/tcl8.4
+
+gpstk-tcl.so: gpstk_wrap_mod.o
+ g++ -shared gpstk_wrap_mod.o -o gpstk-tcl.so -lgpstk
+
+clean:
+ rm *_wrap*
+ rm *gpstk*.so
+
+
+
+
+
+
diff --git a/trunk/apps/bindings/tcl/examples/example1.tcl b/dev/apps/bindings/tcl/examples/example1.tcl
similarity index 100%
rename from trunk/apps/bindings/tcl/examples/example1.tcl
rename to dev/apps/bindings/tcl/examples/example1.tcl
diff --git a/trunk/apps/bindings/tcl/gpstk_wrap_mod.cxx b/dev/apps/bindings/tcl/gpstk_wrap_mod.cxx
similarity index 100%
rename from trunk/apps/bindings/tcl/gpstk_wrap_mod.cxx
rename to dev/apps/bindings/tcl/gpstk_wrap_mod.cxx
diff --git a/dev/apps/checktools/CheckFrame.hpp b/dev/apps/checktools/CheckFrame.hpp
new file mode 100644
index 0000000..364a69f
--- /dev/null
+++ b/dev/apps/checktools/CheckFrame.hpp
@@ -0,0 +1,121 @@
+#pragma ident "$Id$"
+
+
+#ifndef CHECKFRAME_HPP
+#define CHECKFRAME_HPP
+
+#include "CommandOptionWithTimeArg.hpp"
+#include "FileFilterFrame.hpp"
+#include "BasicFramework.hpp"
+
+template <class FileData>
+struct NullTimeFilter : public std::unary_function<FileData, bool>
+{
+public:
+ NullTimeFilter(const gpstk::DayTime& startTime,
+ const gpstk::DayTime& endTime)
+ {}
+
+ bool operator() (const FileData& l) const
+ {
+ return false;
+ }
+};
+
+
+template <class FileStream, class FileData, class FilterTimeOperator = NullTimeFilter<FileData> >
+class CheckFrame : public gpstk::BasicFramework
+{
+public:
+ CheckFrame(char* arg0, std::string fileType) :
+ gpstk::BasicFramework(arg0,
+ "Reads given input " + fileType +
+ " files and check for errors. This will only"
+ " report the first error found in each file. "
+ " The entire file is always checked, regardless"
+ " of time options."),
+ timeOption('t', "time", "Time of first record to count (default ="
+ " \"beginning of time\")"),
+ eTimeOption('e', "end-time", "End of time range to compare (default"
+ " = \"end of time\")"),
+ inputFileOption("Each input file is checked for errors.", true),
+ startTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ endTime(gpstk::DayTime::END_OF_TIME)
+ {
+ timeOption.setMaxCount(1);
+ eTimeOption.setMaxCount(1);
+ timeOptions.addOption(&timeOption);
+ timeOptions.addOption(&eTimeOption);
+ }
+
+ virtual bool initialize(int argc, char* argv[]) throw()
+ {
+ if (!gpstk::BasicFramework::initialize(argc, argv))
+ return false;
+ if (timeOption.getCount())
+ startTime = timeOption.getTime()[0];
+ if (eTimeOption.getCount())
+ endTime = eTimeOption.getTime()[0];
+ if (startTime > endTime)
+ {
+ std::cerr << "End time can't precede start time." << std::endl;
+ return false;
+ }
+ return true;
+ }
+
+protected:
+ virtual void process()
+ {
+ std::vector<std::string> inputFiles = inputFileOption.getValue();
+ std::vector<std::string>::iterator itr = inputFiles.begin();
+ FilterTimeOperator timeFilt(startTime, endTime);
+ while (itr != inputFiles.end())
+ {
+ std::cout << "Checking " << *itr << std::endl;
+ unsigned long recCount = 0;
+ try
+ {
+ FileStream f((*itr).c_str());
+ f.exceptions(std::ios::failbit);
+
+ FileData temp;
+ while (f >> temp)
+ {
+ if (!timeFilt(temp))
+ recCount++;
+ }
+
+ std::cout << "Read " << recCount << " records."
+ << std::endl << std::endl;
+ }
+ catch (gpstk::Exception& e)
+ {
+ std::cout << e << std::endl << std::endl;
+ }
+ catch (std::exception& e)
+ {
+ std::cout << e.what() << std::endl;
+ }
+ catch (...)
+ {
+ std::cout << "unknown exception caught" << std::endl;
+ }
+
+ itr++;
+ }
+ }
+
+ /// start time for record counting
+ gpstk::CommandOptionWithSimpleTimeArg timeOption;
+ /// end time for record counting
+ gpstk::CommandOptionWithSimpleTimeArg eTimeOption;
+ /// if either of the time options are set
+ gpstk::CommandOptionGroupOr timeOptions;
+ gpstk::CommandOptionRest inputFileOption;
+
+ gpstk::DayTime startTime, endTime;
+
+};
+
+#endif
diff --git a/dev/apps/checktools/Jamfile b/dev/apps/checktools/Jamfile
new file mode 100644
index 0000000..ec8980c
--- /dev/null
+++ b/dev/apps/checktools/Jamfile
@@ -0,0 +1,12 @@
+# $Id$
+
+SubDir TOP apps checktools ;
+
+GPSLinkLibraries rowcheck rmwcheck rnwcheck ficcheck ficacheck : gpstk ;
+BonkForte ; # bleah.
+
+GPSMain rowcheck : rowcheck.cpp ;
+GPSMain rmwcheck : rmwcheck.cpp ;
+GPSMain rnwcheck : rnwcheck.cpp ;
+GPSMain ficcheck : ficcheck.cpp ;
+GPSMain ficacheck : ficacheck.cpp ;
diff --git a/dev/apps/checktools/Makefile.am b/dev/apps/checktools/Makefile.am
new file mode 100644
index 0000000..12f415b
--- /dev/null
+++ b/dev/apps/checktools/Makefile.am
@@ -0,0 +1,11 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = rowcheck rmwcheck rnwcheck ficcheck ficacheck
+
+rowcheck_SOURCES = rowcheck.cpp
+rmwcheck_SOURCES = rmwcheck.cpp
+rnwcheck_SOURCES = rnwcheck.cpp
+ficcheck_SOURCES = ficcheck.cpp
+ficacheck_SOURCES = ficacheck.cpp
diff --git a/dev/apps/checktools/ficacheck.cpp b/dev/apps/checktools/ficacheck.cpp
new file mode 100644
index 0000000..79d7525
--- /dev/null
+++ b/dev/apps/checktools/ficacheck.cpp
@@ -0,0 +1,39 @@
+#pragma ident "$Id$"
+
+
+#include "CheckFrame.hpp"
+
+#include "FICAStream.hpp"
+#include "FICData.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ CheckFrame<FICAStream, FICData> cf(argv[0],
+ std::string("FIC ASCII"));
+
+ if (!cf.initialize(argc, argv))
+ return 0;
+ if (!cf.run())
+ return 1;
+
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/checktools/ficcheck.cpp b/dev/apps/checktools/ficcheck.cpp
new file mode 100644
index 0000000..dd5a9d7
--- /dev/null
+++ b/dev/apps/checktools/ficcheck.cpp
@@ -0,0 +1,39 @@
+#pragma ident "$Id$"
+
+
+#include "CheckFrame.hpp"
+
+#include "FICStream.hpp"
+#include "FICData.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ CheckFrame<FICStream, FICData> cf(argv[0],
+ std::string("FIC"));
+
+ if (!cf.initialize(argc, argv))
+ return 0;
+ if (!cf.run())
+ return 1;
+
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/checktools/rmwcheck.cpp b/dev/apps/checktools/rmwcheck.cpp
new file mode 100644
index 0000000..3e4dbf3
--- /dev/null
+++ b/dev/apps/checktools/rmwcheck.cpp
@@ -0,0 +1,40 @@
+#pragma ident "$Id$"
+
+
+#include "CheckFrame.hpp"
+
+#include "RinexMetStream.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetFilterOperators.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ CheckFrame<RinexMetStream, RinexMetData, RinexMetDataFilterTime>
+ cf(argv[0], "Rinex Met");
+
+ if (!cf.initialize(argc, argv))
+ return 0;
+ if (!cf.run())
+ return 1;
+
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/checktools/rnwcheck.cpp b/dev/apps/checktools/rnwcheck.cpp
new file mode 100644
index 0000000..79daf99
--- /dev/null
+++ b/dev/apps/checktools/rnwcheck.cpp
@@ -0,0 +1,39 @@
+#pragma ident "$Id$"
+
+
+#include "CheckFrame.hpp"
+
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ CheckFrame<RinexNavStream, RinexNavData> cf(argv[0],
+ std::string("Rinex Nav"));
+
+ if (!cf.initialize(argc, argv))
+ return 0;
+ if (!cf.run())
+ return 1;
+
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/checktools/rowcheck.cpp b/dev/apps/checktools/rowcheck.cpp
new file mode 100644
index 0000000..ed1d3b5
--- /dev/null
+++ b/dev/apps/checktools/rowcheck.cpp
@@ -0,0 +1,39 @@
+#pragma ident "$Id$"
+
+
+#include "CheckFrame.hpp"
+
+#include "RinexObsStream.hpp"
+#include "RinexObsData.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ CheckFrame<RinexObsStream, RinexObsData> cf(argv[0],
+ std::string("Rinex Obs"));
+
+ if (!cf.initialize(argc, argv))
+ return 0;
+ if (!cf.run())
+ return 1;
+
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/converters/Jamfile b/dev/apps/converters/Jamfile
new file mode 100644
index 0000000..7daf81e
--- /dev/null
+++ b/dev/apps/converters/Jamfile
@@ -0,0 +1,9 @@
+#
+# $Id$
+#
+
+SubDir TOP apps converters ;
+
+GPSLinkLibraries novaRinex : gpstk ;
+
+GPSMain novaRinex : novaRinex.cpp NovatelData.cpp ;
diff --git a/dev/apps/converters/Makefile.am b/dev/apps/converters/Makefile.am
new file mode 100644
index 0000000..a900d92
--- /dev/null
+++ b/dev/apps/converters/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = novaRinex
+
+novaRinex_SOURCES = novaRinex.cpp NovatelData.cpp
diff --git a/dev/apps/converters/NovatelData.cpp b/dev/apps/converters/NovatelData.cpp
new file mode 100644
index 0000000..a90152a
--- /dev/null
+++ b/dev/apps/converters/NovatelData.cpp
@@ -0,0 +1,1123 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file NovatelData.cpp
+ * gpstk::NovatelData - container for Novatel data, with methods to convert
+ * binary data files to Rinex
+ */
+
+#include "BinUtils.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "EngEphemeris.hpp"
+#include "RinexObsHeader.hpp"
+#include "icd_200_constants.hpp"
+#include "NovatelData.hpp"
+
+using namespace std;
+using namespace gpstk::BinUtils;
+using namespace gpstk::StringUtils;
+
+static bool debug=false;
+
+namespace gpstk
+{
+
+ // --------------------------------------------------------------------------------
+ const double CFF=C_GPS_M/OSC_FREQ;
+ const double wl1=CFF/L1_MULT;
+ const double wl2=CFF/L2_MULT;
+ const double PhaseRollover=8388608;
+
+ // --------------------------------------------------------------------------------
+ const string NovatelData::RecNames[] = {
+ string("Unknown"),
+ string("RGEB obs"),
+ string("RGEC obs"),
+ string("POSB pos"),
+ string("REPB nav"),
+ string("RCSB sts"),
+ string("RANGE obs"),
+ string("RANGECMP obs"),
+ string("RAWEPHEM nav")
+ };
+
+ // --------------------------------------------------------------------------------
+ bool NovatelData::isNav(void) const
+ {
+ switch(rectype) {
+ case POSB:
+ case RCSB:
+ return false;
+ case REPB:
+ case RAWEPHEM:
+ return true;
+ case RGEB:
+ case RGEC:
+ case RANGE:
+ case RANGECMP:
+ return false;
+ case Unknown:
+ default:
+ return false;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ bool NovatelData::isObs(void) const
+ {
+ switch(rectype) {
+ case POSB:
+ case RCSB:
+ return false;
+ case REPB:
+ case RAWEPHEM:
+ return false;
+ case RGEB:
+ case RGEC:
+ case RANGE:
+ case RANGECMP:
+ return true;
+ case Unknown:
+ default:
+ return false;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ bool NovatelData::isAux(void) const
+ {
+ switch(rectype) {
+ case POSB:
+ case RCSB:
+ return true;
+ case REPB:
+ case RAWEPHEM:
+ return false;
+ case RGEB:
+ case RGEC:
+ case RANGE:
+ case RANGECMP:
+ return false;
+ case Unknown:
+ default:
+ return false;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // True if this record belongs to OEM2 receivers
+ bool NovatelData::isOEM2(void) const
+ {
+ switch(rectype) {
+ case POSB:
+ case RCSB:
+ case REPB:
+ case RGEB:
+ case RGEC:
+ return true;
+ case RAWEPHEM:
+ case RANGE:
+ case RANGECMP:
+ case Unknown:
+ default:
+ return false;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // True if this record belongs to OEM4 receivers
+ bool NovatelData::isOEM4(void) const
+ {
+ switch(rectype) {
+ case RAWEPHEM:
+ case RANGE:
+ case RANGECMP:
+ return true;
+ case POSB:
+ case RCSB:
+ case REPB:
+ case RGEB:
+ case RGEC:
+ case Unknown:
+ default:
+ return false;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ bool NovatelData::isValid(void) const
+ {
+ switch(rectype) {
+ case POSB:
+ case RCSB:
+ case REPB:
+ case RAWEPHEM:
+ case RGEB:
+ case RGEC:
+ case RANGE:
+ case RANGECMP:
+ if(datasize == 0 || headersize==0) return false;
+ return true;
+ case Unknown:
+ default:
+ return false;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ void NovatelData::dump(ostream& str) const
+ {
+ str << "Record type is " << rectype << endl;
+ }
+
+ // --------------------------------------------------------------------------------
+ void NovatelData::reallyPutRecord(FFStream& s) const
+ throw(exception, StringUtils::StringException, FFStreamError)
+ {
+ FFStreamError e("Novatel::reallyPutRecord() is not implemented");
+ GPSTK_THROW(e);
+ }
+
+
+ // --------------------------------------------------------------------------------
+ void NovatelData::reallyGetRecord(FFStream& ffs)
+ throw(exception, StringUtils::StringException, FFStreamError)
+ {
+ try {
+ if(dynamic_cast<NovatelStream*>(&ffs)) {
+
+ NovatelStream& strm = dynamic_cast<NovatelStream&>(ffs);
+
+ unsigned char *p0 = &buffer[0];
+ unsigned char *p1 = &buffer[1];
+ unsigned char *p2 = &buffer[2];
+ unsigned char *p3 = &buffer[3];
+ unsigned char *p4 = &buffer[4];
+ int i,j,k,failure;
+ long filepos;
+
+ if(debug) cout << "Entered NovatelData::reallyGetRecord()" << endl;
+ // read loop
+ do {
+
+ // move data down by 1 byte
+ *p0 = *p1;
+ *p1 = *p2;
+
+ // get another character
+ try {
+ strm.read((char *)p2, 1);
+ }
+ catch(exception& e) {
+ if(debug) cout << "read 1 threw std exception: " << e.what() << endl;
+ //FFStreamError fe(string("std exception: ")+e.what());
+ //GPSTK_THROW(fe);
+ }
+
+ if(strm.bad()) {
+ FFStreamError fe("Read error");
+ GPSTK_THROW(fe);
+ }
+ if(strm.eof()) {
+ if(debug) cout << "Reached EOF" << endl;
+ break;
+ }
+
+ if(debug) cout << "got char 0x" << hex << uppercase << int(buffer[2])
+ << dec << endl;
+
+ // look for sync bytes
+ if(*p0==0xAA && *p1==0x44 && *p2==0x11) {
+ // -------------------------------------------------- OEM2
+ if(debug) cout << "Found OEM2 sync" << endl;
+
+ // save position in case of failure
+ filepos = strm.tellg();
+ if(debug) cout << "File position " << filepos << endl;
+
+ // read 9 more characters into buffer, giving total of 12
+ strm.read((char *)p3,9);
+ if(strm.bad()) {
+ FFStreamError fe("Read error");
+ GPSTK_THROW(fe);
+ }
+ if(strm.eof()) {
+ if(debug) cout << "Reached EOF" << endl;
+ break;
+ }
+
+ // read the record ID
+ if(*p4==0x20) rectype = RGEB;
+ else if(*p4==0x21) rectype = RGEC;
+ else if(*p4==0x01) rectype = POSB;
+ else if(*p4==0x0E) rectype = REPB;
+ else if(*p4==0x0D) rectype = RCSB;
+ else rectype = Unknown;
+ recnum = int(*p4);
+ intelToHost(recnum);
+
+ // read the rest of the record
+ failure = 0;
+ if(rectype != Unknown) {
+
+ // get the size of the record
+ memmove(&datasize, &(buffer[8]), 4);
+ intelToHost(datasize);
+
+ // read the rest of the record
+ if(datasize-12 >= 1024) {
+ //FFStreamError fe("Read error - buffer overflow");
+ //GPSTK_THROW(fe);
+ failure = 1;
+ }
+ else {
+ strm.read((char *)&buffer[12],datasize-12);
+ if(strm.bad()) {
+ FFStreamError fe("Read error");
+ GPSTK_THROW(fe);
+ }
+ if(strm.eof()) {
+ if(debug) cout << "Reached EOF" << endl;
+ break;
+ }
+ headersize = 3; // just the sync bytes
+
+ // compute the checksum
+ // Ref OEM2 manual
+ unsigned char checksum = 0;
+ checksum ^= buffer[0];
+ checksum ^= buffer[1];
+ checksum ^= buffer[2];
+ for(i=4; i<datasize; i++) checksum ^= buffer[i];
+
+ if(checksum == buffer[3]) break; // sucess
+ failure = 2;
+
+ } // end if datasize fits into buffer
+ } // end if record type != unknown
+
+ // failure - either type unknown, buffer overflow or failed checksum
+ if(debug) {
+ cout << "Failure - ";
+ if(failure == 0) cout << "type unknown";
+ else if(failure == 1) cout << "buffer overflow";
+ else if(failure == 2) cout << "failed checksum";
+ cout << " for recnum " << recnum
+ << " with headersize " << headersize
+ << " and message size " << datasize << endl;
+ }
+
+ strm.seekg(filepos); // rewind to just after the sync bytes
+ datasize = headersize = 0;
+
+ } // end if OEM2 sync
+
+ else if(*p0==0xAA && *p1==0x44 && *p2==0x12) {
+ // -------------------------------------------------- OEM4
+ // Ref OEM4 Manual pg 15
+
+ if(debug) cout << "Found OEM4 sync" << endl;
+
+ // save position in case of failure
+ filepos = strm.tellg();
+ if(debug) cout << "File position " << filepos << endl;
+
+ // ---------------------------------------
+ // read header, 25 characters, into buffer
+ strm.read((char *)p3,25);
+ if(strm.bad()) {
+ FFStreamError fe("Read error");
+ GPSTK_THROW(fe);
+ }
+ if(strm.eof()) {
+ if(debug) cout << "Reached EOF" << endl;
+ break;
+ }
+
+ // parse the header
+ // Ref OEM4 Manual pg 16
+ // (only need some of the data here - cast to Rinex functions
+ // will parse the whole thing)
+ unsigned char headerLength;
+ memmove(&headerLength, &(buffer[3]), 1); intelToHost(headerLength);
+ short messageID;
+ memmove(&messageID, &(buffer[4]), 2); intelToHost(messageID);
+ //char messageType;
+ //memmove(&messageType, &(buffer[6]), 1); intelToHost(messageType);
+ //char portAddress;
+ //memmove(&portAddress, &(buffer[7]), 1); intelToHost(portAddress);
+ short messageLength;
+ memmove(&messageLength, &(buffer[8]), 2); intelToHost(messageLength);
+ //short sequence;
+ //memmove(&sequence, &(buffer[10]), 2); intelToHost(sequence);
+ //char idleTime;
+ //memmove(&idleTime, &(buffer[12]), 1); intelToHost(idleTime);
+ //char timeStatus;
+ //memmove(&timeStatus, &(buffer[13]), 1); intelToHost(timeStatus);
+ //short week;
+ //memmove(&week, &(buffer[14]), 2); intelToHost(week);
+ //long msecOfWeek;
+ //memmove(&msecOfWeek, &(buffer[16]), 4); intelToHost(msecOfWeek);
+ //long rxStatus;
+ //memmove(&rxStatus, &(buffer[20]), 4); intelToHost(rxStatus);
+ //short reserved;
+ //memmove(&reserved, &(buffer[24]), 2); intelToHost(reserved);
+ //short rxSWVersion;
+ //memmove(&rxSWVersion, &(buffer[26]), 2); intelToHost(rxSWVersion);
+
+ datasize = messageLength;
+ headersize = int(headerLength);
+ recnum = messageID;
+
+ if(headersize != 28) { // manual warns that changes may be made
+ Exception e("Header size : expected 28 but found "
+ + StringUtils::asString(headersize) + " for record ID "
+ + StringUtils::asString(recnum));
+ GPSTK_THROW(e);
+ }
+
+ if(debug) cout << "hL " << int(headerLength)
+ << " ID " << messageID
+ << " mL " << messageLength
+ //<< " seq " << sequence
+ //<< " week " << week
+ //<< " msow " << msecOfWeek
+ //<< " rxver " << rxSWVersion
+ << endl;
+
+ if( recnum == 43) rectype = RANGE;
+ else if(recnum == 140) rectype = RANGECMP;
+ else if(recnum == 41) rectype = RAWEPHEM;
+ else rectype = Unknown;
+
+ failure=0;
+ if(rectype != Unknown) {
+
+ // ---------------------------------------
+ // read the data message, but don't overwrite the header
+ // first check against buffer overflow
+ if(datasize-28 >= 1024) {
+ //FFStreamError fe("Read error - buffer overflow");
+ //GPSTK_THROW(fe);
+ failure = 1;
+ }
+ else {
+ strm.read((char *)&(buffer[28]),datasize);
+ if(strm.bad()) {
+ FFStreamError fe("Read error");
+ GPSTK_THROW(fe);
+ }
+ if(strm.eof()) {
+ datasize = 0; // mark a bad record
+ if(debug) cout << "Reached EOF" << endl;
+ break;
+ }
+ if(debug) cout << "Successfully read message" << endl;
+
+ // ---------------------------------------
+ // validate with 32-bit CRC
+ // cf. Ref OEM4 manual pg 21.
+
+ // get the checksum at the end
+ unsigned int checksum =
+ intelToHost(strm.getData<unsigned int>());
+
+ // calculate the checksum of the header(even sync)+data
+ unsigned int check=0,ultemp1,ultemp2;
+ for(i=0; i<datasize+28; i++) {
+ ultemp1 = (check >> 8) & 0x00FFFFFFL;
+ j = ((int)check ^ buffer[i]) & 0xFF;
+ ultemp2 = j;
+ for(k=8; k>0; k--) {
+ if(ultemp2 & 1)
+ ultemp2 = (ultemp2 >> 1) ^ 0xEDB88320L;
+ else
+ ultemp2 >>= 1;
+ }
+ check = ultemp1 ^ ultemp2;
+ }
+
+ if(check == checksum) {
+ if(debug) cout << "checksum ok" << endl;
+ break;
+ }
+ else failure = 2;
+
+ } // end if datasize-28 < buffersize
+ } // end if rectype != Unknown
+
+ // failure - either type unknown, buffer overflow or failed checksum
+ if(debug) {
+ cout << "Failure - ";
+ if(failure == 0) cout << "type unknown";
+ else if(failure == 1) cout << "buffer overflow";
+ else if(failure == 2) cout << "failed checksum";
+ cout << " for recnum " << recnum
+ << " with headersize " << headersize
+ << " and message size " << datasize << endl;
+ }
+ strm.seekg(filepos);
+ datasize = headersize = 0; // marks an invalid object
+
+ } // end if OEM4 sync
+
+ else { // skip these bytes
+ // print only if sync is not underway
+ if(debug && !(*p1==0xAA && *p2==0x44) && !(*p2==0xAA) )
+ cout << "Skip a byte " << hex << uppercase << setfill('0')
+ << setw(2) << *p0 << dec << setfill(' ') << endl;
+ }
+
+ } while(1); // end read loop
+ }
+ else {
+ FFStreamError e("NovatelData tried to read from a non-Novatel file");
+ GPSTK_THROW(e);
+ }
+
+ if(!isValid()) {
+ FFStreamError e("Read an invalid Novatel record");
+ GPSTK_THROW(e);
+ }
+
+ }
+ catch(Exception e) {
+ if(debug) cout << "reallyGetRecord caught GPSTK exception " << e << endl;
+ }
+ catch(exception e) {
+ if(debug) cout << "reallyGetRecord caught std exception " << e.what() << endl;
+ }
+ catch(...) {
+ if(debug) cout << "reallyGetRecord caught an unknown exception" << endl;
+ }
+
+ } // end NovatelData::reallyGetRecord
+
+
+ // --------------------------------------------------------------------------------
+ NovatelData::operator RinexNavData()
+ throw(Exception)
+ {
+ if(!isValid() || !isNav()) {
+ Exception e("Invalid or non-Nav record");
+ GPSTK_THROW(e);
+ }
+
+ int i,j,k;
+ long templ;
+ EngEphemeris eeph;
+
+ if(rectype == RAWEPHEM) { // OEM4
+
+ // parse header
+ // Ref OEM4 Manual pg 16
+ unsigned char headerLength;
+ memmove(&headerLength, &(buffer[3]), 1); intelToHost(headerLength);
+ short messageID;
+ memmove(&messageID, &(buffer[4]), 2); intelToHost(messageID);
+ char messageType;
+ memmove(&messageType, &(buffer[6]), 1); intelToHost(messageType);
+ char portAddress;
+ memmove(&portAddress, &(buffer[7]), 1); intelToHost(portAddress);
+ short messageLength;
+ memmove(&messageLength, &(buffer[8]), 2); intelToHost(messageLength);
+ short sequence;
+ memmove(&sequence, &(buffer[10]), 2); intelToHost(sequence);
+ char idleTime;
+ memmove(&idleTime, &(buffer[12]), 1); intelToHost(idleTime);
+ char timeStatus;
+ memmove(&timeStatus, &(buffer[13]), 1); intelToHost(timeStatus);
+ short week;
+ memmove(&week, &(buffer[14]), 2); intelToHost(week);
+ long msecOfWeek;
+ memmove(&msecOfWeek, &(buffer[16]), 4); intelToHost(msecOfWeek);
+ long rxStatus;
+ memmove(&rxStatus, &(buffer[20]), 4); intelToHost(rxStatus);
+ short reserved;
+ memmove(&reserved, &(buffer[24]), 2); intelToHost(reserved);
+ short rxSWVersion;
+ memmove(&rxSWVersion, &(buffer[26]), 2); intelToHost(rxSWVersion);
+
+ // parse data
+ // Ref OEM4 Manual pg 206
+ short prn,track=1;
+ long gpsSOW;
+
+ // get PRN and timetag
+ memmove(&templ, &(buffer[28]), 4);
+ intelToHost(templ);
+ prn = short(templ);
+ memmove(&gpsWeek, &(buffer[32]), 4); // long gpsWeek is member data
+ intelToHost(gpsWeek);
+ memmove(&gpsSOW, &(buffer[36]), 4);
+ intelToHost(gpsSOW);
+
+ // convert the 3 subframes and create EngEphemeris
+ long subframe[10];
+ for(j=0; j<3; j++) {
+ k = 40 + j*30;
+
+ if(debug) {
+ cout << "Subframe " << setfill('0') << j+1;
+ for(i=0; i<30; i++)
+ cout << " " << hex << uppercase << setw(2) << int(buffer[k+i]);
+ cout << dec << setfill(' ') << endl;
+ }
+
+ for(i=0; i<10; i++) {
+ subframe[i] = (buffer[k] << 22)+(buffer[k+1] << 14)+(buffer[k+2] << 6);
+ k += 3;
+ }
+ if(!eeph.addSubframe(subframe,gpsWeek,prn,track)){
+ if(debug) cout << "Failed to convert RAWEPH subframe " << j+1
+ << ", prn " << prn << " at time " << gpsWeek << " " << gpsSOW
+ << endl;
+ }
+ }
+ } // end RAWEPH record
+
+ else if(rectype == REPB) { // OEM2
+
+ long prn;
+ short track=1;
+
+ // get PRN
+ memmove(&prn,&(buffer[12]), 4);
+ intelToHost(prn);
+
+ // be sure week is defined
+ if(gpsWeek == -1) {
+ DayTime sysTime;
+ gpsWeek = long(sysTime.GPSfullweek());
+ }
+
+ // convert the 3 subframes and create EngEphemeris
+ long subframe[10];
+ for(j=0; j<3; j++) {
+ k = 16 + j*30;
+
+ if(debug) {
+ cout << "Subframe " << setfill('0') << j+1;
+ for(i=0; i<30; i++)
+ cout << " " << hex << uppercase << setw(2) << int(buffer[k+i]);
+ cout << dec << setfill(' ') << endl;
+ }
+
+ for(i=0; i<10; i++) {
+ subframe[i] = (buffer[k] << 22)+(buffer[k+1] << 14)+(buffer[k+2] << 6);
+ k += 3;
+ }
+ if(!eeph.addSubframe(subframe,gpsWeek,short(prn),track)){
+ if(debug) cout << "Failed to convert REPB subframe " << j+1
+ << ", prn " << prn << endl;
+ }
+ }
+
+ } // end REPB record
+
+ // convert it to Rinex
+ RinexNavData rnd(eeph);
+
+ return rnd;
+
+ } // end NovatelData::operator RinexNavData()
+
+
+ // --------------------------------------------------------------------------------
+ NovatelData::operator RinexObsData()
+ throw(Exception)
+ {
+ if(!isValid() || !isObs()) {
+ Exception e("Invalid or non-Obs record");
+ GPSTK_THROW(e);
+ }
+
+ int i,j;
+ short temps;
+ long nobs; // number of observation records (may be 2/PRN: L1 and L2)
+ SatID sat;
+ RinexObsData rod; // this will be returned
+ RinexObsData::RinexDatum rd;
+ RinexObsData::RinexSatMap::iterator satit;
+ RinexObsData::RinexObsTypeMap::iterator obsit;
+
+ if( rectype == RGEB) { // OEM2
+
+
+ } // end RGEB record
+
+ else if(rectype == RGEC) { // OEM2
+ // Ref OEM2 Manual pg 97
+
+ if(debug) {
+ cout << "Header " << setfill('0') << hex << uppercase;
+ for(i=0; i<24; i++) cout << " " << setw(2) << int(buffer[i]);
+ cout << dec << setfill(' ') << endl;
+ }
+
+ // number of observation records to follow
+ memmove(&temps, &(buffer[12]), 2);
+ intelToHost(temps);
+ nobs = long(temps);
+
+ // GPS week (long gpsWeek is member data)
+ memmove(&temps, &(buffer[14]), 2);
+ intelToHost(temps);
+
+ // resolve the week number ambiguity
+ if(gpsWeek == -1) {
+ DayTime sysTime;
+ gpsWeek = long(sysTime.GPSfullweek());
+ }
+ gpsWeek = long(temps) + 1024*(gpsWeek/1024);
+
+ // seconds of week * 100
+ long gpsSOW;
+ memmove(&gpsSOW, &(buffer[16]), 4);
+ intelToHost(gpsSOW);
+
+ // receiver status
+ long rxStatus;
+ memmove(&rxStatus, &(buffer[20]), 4);
+
+ // put timetag into rod
+ rod.time = DayTime(gpsWeek,gpsSOW/100.);
+ rod.epochFlag = 0;
+ rod.clockOffset = 0.0; // don't have it ?
+ rod.numSvs = 0;
+
+ // loop over observation records
+ for(i=0; i<nobs; i++) {
+ unsigned long data[5];
+ for(j=0; j<5; j++)
+ memmove(&data[j], &(buffer[24+i*20+j*4]), 4);
+
+ int prn = int(data[0] & 0x0000003FL);
+
+ double SNR = double((data[0] & 0x000007C0L) >> 6);
+
+ double locktime = double((data[0] & 0xFFFFF800L) >> 11);
+
+ double Ph;
+ if(data[1] & 0x80000000L) // 2s complement
+ Ph = double(data[1] ^ 0x7FFFFFFFL + 1);
+ else
+ Ph = double(data[1]);
+
+ double Doppler = double((data[2] & 0xFFFFFFF0L) >> 4);
+ if(data[2] & 0x80000000L) // 2s complement
+ Doppler = -double((((data[2] & 0xFFFFFFF0L) ^ 0xFFFFFFF0L) >> 4)+1);
+
+ // this is 0xFFFFFFFF + 1
+ double Pr = double(data[2] & 0x0000000FL) * 4294967296.
+ + double(data[3]);
+ // could the pseudorange ever be negative?
+ if(data[2] & 0x00000008L) // 2s complement
+ Pr = -double((data[2] & 0x0000000FL) ^ 0x0000000FL) * 4294967296.
+ - double(data[3] ^ 0xFFFFFFFFL + 1);
+
+ double SdPh = int(data[4] & 0x0000000FL);
+
+ double SdPr = double((data[4] & 0x000000F0L) >> 4);
+
+ long TrackStatus = long((data[4] & 0xFFFFFF00L) >> 8);
+ // the rest are reserved
+
+ // swap bytes
+ intelToHost(prn);
+ intelToHost(SNR);
+ intelToHost(locktime);
+ intelToHost(Ph);
+ intelToHost(Doppler);
+ intelToHost(Pr);
+ intelToHost(SdPr);
+ intelToHost(SdPh);
+
+ // convert to physical units
+ SNR += 20.; // dB-Hz, but 51 means >=51, and 20 means <=20.
+ locktime /= 32.; // sec
+ Doppler /= 256.; // Hz
+ Pr /= 128.; // m
+ Ph /= 256.; // cycles
+ SdPr = (SdPr + 1.)/16.; // m
+ SdPh = (SdPh + 1)/512.; // cycles
+
+ // break out the TrackStatus
+ // cf. Table 5-6, pg 95 of OEM2 manual
+ int TrackState = int( TrackStatus & 0x0000000FL);
+ int Channel = int((TrackStatus & 0x000001F0L) >> 4);
+ bool PhaseLock = bool(TrackStatus & 0x00000200L);
+ bool ParityKnown = bool(TrackStatus & 0x00000400L);
+ bool CodeLock = bool(TrackStatus & 0x00000800L);
+ int Frequency = int((TrackStatus & 0x00100000L) >> 20); // 0:L1 1:L2
+ // CodeType is 0: CA 1: P 2: Pcodeless
+ int CodeType = int((TrackStatus & 0x00600000L) >> 21);
+
+ if(!PhaseLock || !CodeLock) continue;
+
+ // correct the phase for rollovers
+ // ref. OEM2 manual pg 97
+ double ADRrolls = ((-Pr/(Frequency==0 ? wl1 : wl2))-Ph)/PhaseRollover;
+ Ph += long(ADRrolls + (ADRrolls > 0 ? 0.5 : -0.5)) * PhaseRollover;
+
+ //apparently the Novatel convert utility ignores this too
+ //ignore if(!ParityKnown) Ph = 0.0;
+
+ // fill RinexObsData rod
+ sat = SatID(prn,SatID::systemGPS);
+ satit = rod.obs.find(sat); // find the sat
+ if(satit == rod.obs.end()) { // not there - add this sat
+ RinexObsData::RinexObsTypeMap rotm;
+ rod.obs[sat] = rotm;
+ rod.numSvs++;
+ satit = rod.obs.find(sat); // now find it
+ }
+
+ // for convenience, reference the obs data map
+ RinexObsData::RinexObsTypeMap& obs = satit->second;
+ if(Frequency == 0) { // frequency = L1
+ rd.ssi = rd.lli = 0; rd.data = -Ph;
+ obs[RinexObsHeader::L1] = rd; // L1
+
+ rd.ssi = rd.lli = 0; rd.data = Pr;
+ if(CodeType == 0) obs[RinexObsHeader::C1] = rd; // C1
+ else obs[RinexObsHeader::P1] = rd; // P1
+
+ rd.ssi = rd.lli = 0; rd.data = -Doppler;
+ obs[RinexObsHeader::D1] = rd; // D1
+
+ rd.ssi = rd.lli = 0; rd.data = SNR; // S1
+ obs[RinexObsHeader::S1] = rd;
+ }
+ else {
+ rd.ssi = rd.lli = 0; rd.data = Ph;
+ obs[RinexObsHeader::L2] = rd; // L2
+
+ rd.ssi = rd.lli = 0; rd.data = Pr;
+ obs[RinexObsHeader::P2] = rd; // P2
+
+ rd.ssi = rd.lli = 0; rd.data = -Doppler;
+ obs[RinexObsHeader::D2] = rd; // D2
+
+ rd.ssi = rd.lli = 0; rd.data = SNR;
+ obs[RinexObsHeader::S2] = rd; // S2
+ }
+
+ }
+
+ } // end RGEC record
+
+ else { // all OEM4 obs records
+
+ // header
+ // Ref OEM4 Manual pg 16
+ unsigned char headerLength;
+ memmove(&headerLength, &(buffer[3]), 1); intelToHost(headerLength);
+ short messageID;
+ memmove(&messageID, &(buffer[4]), 2); intelToHost(messageID);
+ char messageType;
+ memmove(&messageType, &(buffer[6]), 1); intelToHost(messageType);
+ char portAddress;
+ memmove(&portAddress, &(buffer[7]), 1); intelToHost(portAddress);
+ short messageLength;
+ memmove(&messageLength, &(buffer[8]), 2); intelToHost(messageLength);
+ short sequence;
+ memmove(&sequence, &(buffer[10]), 2); intelToHost(sequence);
+ char idleTime;
+ memmove(&idleTime, &(buffer[12]), 1); intelToHost(idleTime);
+ char timeStatus;
+ memmove(&timeStatus, &(buffer[13]), 1); intelToHost(timeStatus);
+ short week;
+ memmove(&week, &(buffer[14]), 2); intelToHost(week);
+ long msecOfWeek;
+ memmove(&msecOfWeek, &(buffer[16]), 4); intelToHost(msecOfWeek);
+ long rxStatus;
+ memmove(&rxStatus, &(buffer[20]), 4); intelToHost(rxStatus);
+ short reserved;
+ memmove(&reserved, &(buffer[24]), 2); intelToHost(reserved);
+ short rxSWVersion;
+ memmove(&rxSWVersion, &(buffer[26]), 2); intelToHost(rxSWVersion);
+
+ // put timetag into rod
+ rod.time = DayTime(week,double(msecOfWeek)/1000.);
+ rod.epochFlag = 0;
+ rod.clockOffset = 0.0; // don't have it ?
+
+ if( rectype == RANGE) {
+ // Ref OEM4 Manual pg 198-201
+
+ nobs = 0;
+ memmove(&nobs, &(buffer[28]), 4);
+ intelToHost(nobs);
+
+ rod.numSvs = 0;
+ for(i=0; i<nobs; i++) {
+ unsigned short prn,reserved;
+ unsigned long TrackStatus;
+ float PrStd,PhStd,Doppler,SNR,locktime;
+ double Pr,Ph;
+
+ memmove(&prn, &(buffer[32+i*44]), 2);
+ intelToHost(prn);
+ memmove(&reserved, &(buffer[34+i*44]), 2);
+ intelToHost(reserved);
+ memmove(&Pr, &(buffer[36+i*44]), 8);
+ intelToHost(Pr);
+ memmove(&PrStd, &(buffer[44+i*44]), 4);
+ intelToHost(PrStd);
+ memmove(&Ph, &(buffer[48+i*44]), 8);
+ intelToHost(Ph);
+ memmove(&PhStd, &(buffer[56+i*44]), 4);
+ intelToHost(PhStd);
+ memmove(&Doppler, &(buffer[60+i*44]), 4);
+ intelToHost(Doppler);
+ memmove(&SNR, &(buffer[64+i*44]), 4);
+ intelToHost(SNR);
+ memmove(&locktime, &(buffer[68+i*44]), 4);
+ intelToHost(locktime);
+ memmove(&TrackStatus, &(buffer[72+i*44]), 4);
+ intelToHost(TrackStatus);
+
+ // break out the TrackStatus
+ // cf. Table 56, pg 199 of OEM4 manual
+ int TrackState = int( TrackStatus & 0x0000001FL);
+ int Channel = int((TrackStatus & 0x000003E0L) >> 5);
+ bool PhaseLock = bool(TrackStatus & 0x00000400L);
+ bool CodeLock = bool(TrackStatus & 0x00001000L);
+ int Frequency = int((TrackStatus & 0x00600000L) >> 21); // 0:L1 1:L2
+ // CodeType is 0CA 1P 2Pcodeless
+ int CodeType = int((TrackStatus & 0x03800000L) >> 23);
+ bool HalfCycle = bool(TrackStatus & 0x10000000L);
+
+ if(!PhaseLock || !CodeLock) continue; // data is not reliable
+
+ // fill RinexObsData rod
+ sat = SatID(prn,SatID::systemGPS);
+ satit = rod.obs.find(sat); // find the sat
+ if(satit == rod.obs.end()) { // not there - add this sat
+ RinexObsData::RinexObsTypeMap rotm;
+ rod.obs[sat] = rotm;
+ rod.numSvs++;
+ satit = rod.obs.find(sat); // now find it
+ }
+
+ // for convenience, reference the obs data map inside rod
+ RinexObsData::RinexObsTypeMap& obs = satit->second;
+ if(Frequency == 0) { // frequency = L1
+ rd.ssi = rd.lli = 0; rd.data = -Ph;
+ obs[RinexObsHeader::L1] = rd; // L1
+
+ rd.ssi = rd.lli = 0; rd.data = Pr;
+ if(CodeType == 0) obs[RinexObsHeader::C1] = rd; // C1
+ else obs[RinexObsHeader::P1] = rd; // P1
+
+ rd.ssi = rd.lli = 0; rd.data = Doppler;
+ obs[RinexObsHeader::D1] = rd; // D1
+
+ rd.ssi = rd.lli = 0; rd.data = SNR;
+ obs[RinexObsHeader::S1] = rd; // S1
+ }
+ else {
+ rd.ssi = rd.lli = 0; rd.data = -Ph;
+ obs[RinexObsHeader::L2] = rd; // L2
+
+ rd.ssi = rd.lli = 0; rd.data = Pr;
+ obs[RinexObsHeader::P2] = rd; // P2
+
+ rd.ssi = rd.lli = 0; rd.data = Doppler;
+ obs[RinexObsHeader::D2] = rd; // D2
+
+ rd.ssi = rd.lli = 0; rd.data = SNR;
+ obs[RinexObsHeader::S2] = rd; // S2
+ }
+
+ }
+
+ } // end RANGE record
+
+ else if(rectype == RANGECMP) {
+ // Ref OEM4 Manual pg 202-203
+
+ nobs = 0;
+ memmove(&nobs, &(buffer[28]), 4);
+ intelToHost(nobs);
+
+ rod.numSvs = 0;
+ for(i=0; i<nobs; i++) {
+ unsigned long data[6];
+ for(j=0; j<6; j++)
+ memmove(&data[j], &(buffer[32+i*24+j*4]), 4);
+
+ long TrackStatus = data[0];
+ // this is what is in the manual - its wrong
+ //double Doppler = double(data[1] & 0x0FFFFFFFL);
+ // this is not documented in the manual...
+ //double Doppler = double(data[1] & 0x000FFFFFL);
+ //if(data[1] & 0x0FF00000L == 0x0FF00000L) Doppler = -Doppler;
+ // try this - cf the OEM2 manual and implementation above
+ double Doppler = double((data[1] & 0x0FFFFFFFL));
+ if(data[1] & 0x08000000L) // 2s complement
+ Doppler = -double(((data[1] & 0x0FFFFFFFL) ^ 0x0FFFFFFFL) + 1);
+ double Pr = double((data[1] & 0xF0000000L) >> 28)
+ + double(data[2]) * 16.;
+ double Ph = double(data[3]);
+ int SdPrCode = int(data[4] & 0x0000000FL);
+ double SdPh = double((data[4] & 0x000000F0L) >> 4);
+ int prn = int((data[4] & 0x0000FF00L) >> 8);
+ double locktime = double((data[4] & 0xFFFF0000L) >> 16)
+ + double(data[5] & 0x0000001FL);
+ double SNR = double((data[5] & 0x000003E0L) >> 5);
+ // the rest are reserved
+
+ // swap bytes
+ intelToHost(Doppler);
+ intelToHost(Pr);
+ intelToHost(Ph);
+ intelToHost(SdPrCode); // code - see pg 203 of OEM4 manual
+ intelToHost(SdPh);
+ intelToHost(prn);
+ intelToHost(locktime);
+ intelToHost(SNR);
+
+ // convert to physical units
+ Doppler /= 256.; // Hz
+ Pr /= 128.; // m
+ Ph /= 256.; // cycles
+ double SdPr;
+ switch(SdPrCode) { // this is just a code
+ // ref table on pg 203 of OEM4 manual
+ case 0: SdPr = 0.050; break; // m
+ case 1: SdPr = 0.075; break; // m
+ case 2: SdPr = 0.113; break; // m
+ case 3: SdPr = 0.169; break; // m
+ case 4: SdPr = 0.253; break; // m
+ case 5: SdPr = 0.380; break; // m
+ case 6: SdPr = 0.570; break; // m
+ case 7: SdPr = 0.854; break; // m
+ case 8: SdPr = 1.281; break; // m
+ case 9: SdPr = 2.375; break; // m
+ case 10: SdPr = 4.750; break; // m
+ case 11: SdPr = 9.500; break; // m
+ case 12: SdPr = 19.000; break; // m
+ case 13: SdPr = 38.000; break; // m
+ case 14: SdPr = 76.000; break; // m
+ case 15: SdPr = 152.000; break; // m
+ default: SdPr = 0.00; break;
+ }
+ SdPh = (SdPh + 1)/512.; // cycles
+ locktime /= 32.; // seconds
+ SNR += 20.; // dB-Hz
+ // NB SNR 51 means >=51, and 20 means <=20.
+
+ // break out the TrackStatus
+ // cf. Table 56, pg 199 of OEM4 manual
+ int TrackState = int( TrackStatus & 0x0000001FL);
+ int Channel = int((TrackStatus & 0x000003E0L) >> 5);
+ bool PhaseLock = bool(TrackStatus & 0x00000400L);
+ bool CodeLock = bool(TrackStatus & 0x00001000L);
+ int Frequency = int((TrackStatus & 0x00600000L) >> 21); // 0:L1 1:L2
+ // CodeType is 0CA 1P 2Pcodeless
+ int CodeType = int((TrackStatus & 0x03800000L) >> 23);
+ bool HalfCycle = bool(TrackStatus & 0x10000000L);
+
+ if(!PhaseLock || !CodeLock) continue; // data is not reliable
+
+ // correct the phase for rollovers
+ // cf. OEM4 manual pg 203
+ double ADRrolls = ((Pr/(Frequency==0 ? wl1 : wl2)) + Ph)/PhaseRollover;
+ Ph -= long(ADRrolls + (ADRrolls > 0 ? 0.5 : -0.5)) * PhaseRollover;
+
+ // consider debiasing the phase
+
+ // use track status flags to set lli on the phase
+
+ // what to do with HalfCycle?
+
+ // fill RinexObsData rod
+ sat = SatID(prn,SatID::systemGPS);
+ satit = rod.obs.find(sat); // find the sat
+ if(satit == rod.obs.end()) { // not there - add this sat
+ RinexObsData::RinexObsTypeMap rotm;
+ rod.obs[sat] = rotm;
+ rod.numSvs++;
+ satit = rod.obs.find(sat); // now find it
+ }
+
+ // for convenience, reference the obs data map inside rod
+ RinexObsData::RinexObsTypeMap& obs = satit->second;
+ if(Frequency == 0) { // frequency = L1
+ rd.ssi = rd.lli = 0; rd.data = -Ph;
+ obs[RinexObsHeader::L1] = rd; // L1
+
+ rd.ssi = rd.lli = 0; rd.data = Pr;
+ if(CodeType == 0) obs[RinexObsHeader::C1] = rd; // C1
+ else obs[RinexObsHeader::P1] = rd; // P1
+
+ rd.ssi = rd.lli = 0; rd.data = Doppler;
+ obs[RinexObsHeader::D1] = rd; // D1
+
+ rd.ssi = rd.lli = 0; rd.data = SNR;
+ obs[RinexObsHeader::S1] = rd; // S1
+ }
+ else {
+ rd.ssi = rd.lli = 0; rd.data = -Ph;
+ obs[RinexObsHeader::L2] = rd; // L2
+
+ rd.ssi = rd.lli = 0; rd.data = Pr;
+ obs[RinexObsHeader::P2] = rd; // P2
+
+ rd.ssi = rd.lli = 0; rd.data = Doppler;
+ obs[RinexObsHeader::D2] = rd; // D2
+
+ rd.ssi = rd.lli = 0; rd.data = SNR;
+ obs[RinexObsHeader::S2] = rd; // S2
+ }
+
+ } // end loop over obs
+
+ } // end RANGECMP record
+
+ } // end all OEM4 obs records
+
+ return rod;
+
+ } // end NovatelData::operator RinexObsData()
+
+} // end namespace gpstk
diff --git a/dev/apps/converters/NovatelData.hpp b/dev/apps/converters/NovatelData.hpp
new file mode 100644
index 0000000..6cab0bf
--- /dev/null
+++ b/dev/apps/converters/NovatelData.hpp
@@ -0,0 +1,184 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file NovatelData.hpp
+ * gpstk::NovatelData - container for Novatel data, with methods to convert to Rinex
+ */
+
+#ifndef GPSTK_NOVATEL_DATA_HPP
+#define GPSTK_NOVATEL_DATA_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <ostream>
+#include "Exception.hpp"
+#include "FFStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexObsData.hpp"
+#include "NovatelStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup NovatelGroup */
+ //@{
+
+ /// Read Novatel binary records and parse into Rinex. Currently supports
+ /// the basic data records of OEM2 and OEM4 files only; others are yet to be
+ /// implemented.
+ /// Ref. (OEM2) 'GPSCard Command Descriptions' Manual (Rev 3)
+ /// Ref. 'OEM4 Family of Receivers,' Users Manual Volume 2 (OM-20000047 Rev 12)
+ class NovatelData : public FFData
+ {
+ public:
+ /// block types implemented here
+ enum RecType
+ {
+ Unknown=0, ///< unknown block type
+ // OEM2 records
+ RGEB, ///< observations -- not implemented
+ RGEC, ///< observations
+ POSB, ///< position solution -- not implemented
+ REPB, ///< ephemeris
+ RCSB, ///< receiver stats -- not implemented
+ // OEM4 records
+ RANGE, ///< range and phase data (synchronous)
+ RANGECMP, ///< range and phase data, compressed (synchronous)
+ RAWEPHEM ///< ephemeris data (asynchronous)
+ };
+
+ /// Names of the record types : RecNames[rectype]
+ static const std::string RecNames[];
+
+ /// Default constructor
+ NovatelData(void) : rectype(Unknown), datasize(0), headersize(0), gpsWeek(-1)
+ {}
+
+ /// Destructor
+ virtual ~NovatelData(void) {}
+
+ /// Return true if this is a valid Novatel record.
+ /// Test the validity of the record with this before further processing.
+ bool isValid(void) const;
+
+ /// This class is not header
+ virtual bool isHeader(void) const { return false; }
+
+ /// This class is data
+ virtual bool isData(void) const { return true; }
+
+ /// True if this record is an ephemeris record
+ /// Test the identity of the record with this before casting into Rinex.
+ bool isNav(void) const;
+
+ /// True if this record is observation data
+ /// Test the identity of the record with this before casting into Rinex.
+ bool isObs(void) const;
+
+ /// True if this record is auxiliary data (not Nav, not Obs)
+ /// (only one of isNav(), isObs() and isAux() is true
+ bool isAux(void) const;
+
+ /// True if this record belongs to OEM2 receivers
+ bool isOEM2(void) const;
+
+ /// True if this record belongs to OEM4 receivers
+ bool isOEM4(void) const;
+
+ /// Dump the contents of the record to the ostream \c str.
+ virtual void dump(std::ostream& str) const;
+
+ /// set the week number of the data, this is required for
+ /// OEM2 nav records that are processed before any obs records
+ void setWeek(long& gpsweek) { gpsWeek = gpsweek; }
+
+ /// cast *this into an gpstk::RinexNavData.
+ /// @throw if the record is invalid or not an ephemeris (isNav()==false)
+ operator RinexNavData() throw(gpstk::Exception);
+
+ /// cast *this into a gpstk::RinexObsData
+ /// @throw if the record is invalid or not an observation (isObs()==false)
+ operator RinexObsData() throw(gpstk::Exception);
+
+ /// public data members
+ RecType rectype; ///< record type (cf. enum RecType)
+ int recnum; ///< record number (byte 4 of record)
+ long datasize; ///< size of data in bytes
+ int headersize; ///< size of header in bytes (=3 for OEM2)
+
+ protected:
+ /// Write this record to the stream \a s.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError);
+
+ /**
+ * Read a NovatelData record from the FFStream \c s.
+ * If an error is encountered, the function will
+ * return the stream to its original state and mark its fail-bit.
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError);
+
+ private:
+ /// private data members
+ unsigned char buffer[1024]; ///< buffer for raw data
+
+ /// Reference GPS week, for OEM2, where the nav records require a GPS week,
+ /// but only the obs records have one, and then it is 10-bit.
+ /// This epoch will be used to remove the ambiguity in the 10-bit week
+ /// number of the obs records, and then will provide a week number for
+ /// for the nav records. If not set by the user, it will be set by the
+ /// system time, and then by the first obs record.
+ long gpsWeek;
+
+ }; // end class NovatelData
+
+ //@}
+
+} // end namespace gpstk
+
+#endif
diff --git a/dev/apps/converters/NovatelStream.hpp b/dev/apps/converters/NovatelStream.hpp
new file mode 100644
index 0000000..c4bc919
--- /dev/null
+++ b/dev/apps/converters/NovatelStream.hpp
@@ -0,0 +1,97 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file NovatelStream.hpp
+ * gpstk::NovatelStream - binary Novatel file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef GPSTK_NOVATELSTREAM_HPP
+#define GPSTK_NOVATELSTREAM_HPP
+
+#include <vector>
+#include <map>
+
+#include "FFBinaryStream.hpp"
+
+namespace gpstk
+{
+ /** @defgroup NovatelGroup Novatel receiver utilities */
+ //@{
+
+ /**
+ * The stream used to obtain data from a binary Novatel File.
+ * \sa NovatelData
+ */
+ class NovatelStream : public FFBinaryStream
+ {
+ public:
+ /// default constructor
+ NovatelStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the Novatel file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ NovatelStream(const char* fn,
+ std::ios::openmode mode=std::ios::in|std::ios::binary)
+ : FFBinaryStream(fn, mode)
+ {}
+
+ /// destructor per the coding standards
+ virtual ~NovatelStream() {}
+
+ /// overrides open
+ virtual void open(const char* fn,
+ std::ios::openmode mode=std::ios::in|std::ios::binary)
+ { FFBinaryStream::open(fn, mode); }
+
+ }; // class NovatelStream
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/apps/converters/novaRinex.cpp b/dev/apps/converters/novaRinex.cpp
new file mode 100644
index 0000000..05f6873
--- /dev/null
+++ b/dev/apps/converters/novaRinex.cpp
@@ -0,0 +1,1151 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file novaRinex.cpp
+ * gpstk::novaRinex - convert Novatel binary data files to RINEX format
+ */
+
+#include <iostream>
+#include <iomanip>
+#include <time.h>
+#include <string>
+#include <map>
+
+// GPSTk
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "CommandOptionParser.hpp"
+#include "NovatelStream.hpp"
+#include "NovatelData.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexObsHeader.hpp"
+#include "Triple.hpp"
+//#include "RinexBinex.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+// -----------------------------------------------------------------------------------
+string Prgm("novaRinex"); // name of this program
+string Vers("v2.0 4/07"); // version - keep to 10 char
+// 1.0 8/05
+// 1.1 2/06 process obs only when datasize > 4 - empty records were setting FirstEpoch
+// 1.2 6/06 catch exceptions, and allow blanks on cmd line and in input file
+// 1.3 7/06 correctly open files in other than current directory, don't print input
+// errors when help is the only option
+// 1.4 7/06 handle exceptions
+// 1.5 7/06 correct handling of header inputs
+// 2.0 4/07 added Binex output -- commented out
+
+// -----------------------------------------------------------------------------------
+// global data, mostly to save information to go in the final RINEX header
+// for computing the data time interval
+int ndt[9];
+double bestdt[9];
+// epochs
+DayTime CurrEpoch,PrevEpoch,FirstEpoch;
+// table of PRN/#obs
+map<SatID,vector<int> > table;
+vector<int> totals;
+// Command line input
+bool help,Debug,verbose;
+DayTime BegTime,EndTime;
+string NovatelFile, RinexObsFile, RinexNavFile; //, BinexFile;
+string InputDirectory;
+// header fields
+bool FillOptionalHeader;
+Triple HDAntPos,HDAntOffset; // TD
+vector<string> HDcomments;
+vector<RinexObsHeader::RinexObsType> OutputTypes;
+long gpsWeek;
+bool debias;
+
+//------------------------------------------------------------------------------------
+// other global data
+string TempFileName; // initial output is here, before header is filled
+NovatelStream instr;
+RinexObsStream rostr;
+RinexNavStream rnstr;
+RinexObsHeader roh; // used in CommandLine
+// indexes for the std obs types in the header
+int inC1,inP1,inL1,inD1,inS1,inP2,inL2,inD2,inS2;
+
+// -----------------------------------------------------------------------------------
+// command line input
+int GetCommandInput(int argc, char **argv) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+void DumpCommandLine(ostream& ofs = cout) throw(Exception);
+
+// open input and output files
+int OpenFiles(void) throw(Exception);
+
+// fill header initially
+void InitializeHeaders(RinexObsHeader& roh, RinexNavHeader& rnh) throw(Exception);
+
+// update saved information for revised header
+void UpdateInformation(RinexObsData& rod) throw(Exception);
+
+// final header update, and write out
+int UpdateHeader(string& TempFile, string& OutputFile, RinexObsHeader& rh)
+ throw(Exception);
+
+// final obs output - modify header and write to the real output file name
+string GetTempFileName(void) throw(Exception);
+int FillHeaderAndReplaceFile(string& TempFile,string& OutputFile,RinexObsHeader& rh)
+ throw(Exception);
+
+// -----------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+ try {
+
+ int i,n,nobs,nnav;
+ double dt;
+
+ // get the current system time
+ time_t timer;
+ struct tm *tblock;
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ CurrEpoch.setLocalTime();
+
+ i = GetCommandInput(argc, argv);
+ if(i) return 0;
+ if(verbose) {
+ cout << Prgm << " version " << Vers << " run " << CurrEpoch << endl;
+ DumpCommandLine();
+ }
+
+ i = OpenFiles();
+ if(i) return i;
+
+ // declare data objects used for I/O
+ long bytesread=0; // at the end, bytesread should equal the Novatel file size.
+ NovatelData novad;
+ novad.setWeek(gpsWeek);
+
+ RinexNavHeader rnh;
+ RinexNavData rnd;
+ RinexObsData rod;
+
+ // initialize the headers (indexes inC1,etc defined here)
+ InitializeHeaders(roh, rnh);
+
+ // write headers
+ rostr << roh;
+ rnstr << rnh;
+
+ // prep for the I/O loop
+ FirstEpoch = DayTime::BEGINNING_OF_TIME;
+ for(i=0; i<9; i++) ndt[i] = -1;
+
+ // show a counter
+ nobs = nnav = n = 0;
+ // loop over data in the Novatel file
+ try{
+ while(instr >> novad) {
+ if(Debug) cout << "Read " << NovatelData::RecNames[novad.rectype]
+ << " size " << novad.headersize << " + " << novad.datasize
+ << " number " << novad.recnum;
+
+ if(novad.isOEM2()) {
+ if(roh.recVers == string("OEM2/4")) roh.recVers = "OEM2";
+ if(Debug) cout << " OEM2";
+ }
+
+ if(novad.isOEM4()) {
+ if(Debug) cout << " OEM4";
+ if(roh.recVers == string("OEM2/4")) roh.recVers = "OEM4";
+ }
+
+ if(Debug) {
+ if(novad.isObs()) cout << " obs";
+ if(novad.isNav()) cout << " nav";
+ if(novad.isAux()) cout << " aux";
+ cout << endl;
+ }
+
+ bytesread += novad.datasize + novad.headersize;
+ if(novad.isOEM2()) bytesread += 1; // CRC byte
+ if(novad.isOEM4()) bytesread += 4; // CRC bytes
+
+ if(novad.isObs() && novad.datasize > 4) { // obs only, with data
+ rod = RinexObsData(novad); // convert
+ if(rod.time < BegTime) continue;
+ if(rod.time > EndTime) break;
+ if(Debug) rod.dump(cout); // dump
+
+ rostr << rod; // write out
+ nobs++;
+
+ UpdateInformation(rod);
+ }
+ else if(novad.isNav()) { // nav only
+ rnd = RinexNavData(novad); // convert
+ if(Debug) rnd.dump(cout); // dump
+ rnstr << rnd; // write out
+ nnav++;
+ }
+
+ n++;
+ if(verbose && !Debug) {
+ if(n == 100) cout << "Reading Novatel records: (100 per .)\n";
+ if(!(n % 100)) { cout << "."; cout.flush(); }
+ if(!(n % 8000)) cout << endl;
+ }
+
+ } // end while loop over data
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+
+ if(verbose && !Debug) cout << "\n";
+
+ //instr.clear();
+ instr.close();
+ //rostr.clear();
+ rostr.close();
+ //rnstr.clear();
+ rnstr.close();
+
+ // now update the header and (re)write it to the file
+ i = UpdateHeader(TempFileName, RinexObsFile, roh);
+
+ if(verbose) {
+ cout << "novaRinex read " << n
+ << " records, and wrote " << nobs
+ << " observations and " << nnav << " ephemerides\n";
+ cout << "Total bytes read = " << bytesread << endl;
+ }
+
+ return i;
+ }
+ catch(Exception& e) { cerr << "Caught exception\n" << e << endl; }
+ catch(...) { cerr << "Unknown error." << endl; }
+
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+int OpenFiles(void) throw(Exception)
+{
+try {
+ string filename;
+ if(InputDirectory.empty())
+ filename = NovatelFile;
+ else
+ filename = InputDirectory + string("/") + NovatelFile;
+ instr.open(filename.c_str(),ios::in | ios::binary);
+ if(!instr) {
+ cerr << "Failed to open input file " << NovatelFile << endl;
+ return -1;
+ }
+ if(verbose) cout << "Opened input file " << NovatelFile << endl;
+ instr.exceptions(fstream::failbit);
+
+ TempFileName = GetTempFileName();
+ rostr.open(TempFileName.c_str(),ios::out);
+ if(!rostr) {
+ cerr << "Failed to open temporary output file " << TempFileName << endl;
+ return -2;
+ }
+ rostr.exceptions(fstream::failbit);
+
+ rnstr.open(RinexNavFile.c_str(),ios::out);
+ if(!rnstr) {
+ cerr << "Failed to open output nav file " << RinexNavFile << endl;
+ return -3;
+ }
+ if(verbose) cout << "Opened output nav file " << RinexNavFile << endl;
+ rnstr.exceptions(fstream::failbit);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void InitializeHeaders(RinexObsHeader& roh, RinexNavHeader& rnh) throw(Exception)
+{
+try {
+ int i;
+ // observation header
+ roh.version = 2.1;
+ roh.fileType = "Observation";
+ roh.system = RinexSatID();
+ // use same format as writer in RinexObsHeader.cpp uses
+ // old "%04Y/%02m/%02d %02H:%02M:%02S");
+ roh.date = CurrEpoch.printf("%02m/%02d/%04Y %02H:%02M:%02S");
+ roh.antennaPosition = Triple(0.0,0.0,0.0);
+ roh.antennaOffset = Triple(0.0,0.0,0.0);
+ roh.wavelengthFactor[0] = 1;
+ roh.wavelengthFactor[1] = 1;
+
+ // must keep track of indexes - for use in table
+ if(Debug) cout << "Output obs types and indexes:";
+ inC1 = inP1 = inL1 = inD1 = inS1 = inP2 = inL2 = inD2 = inS2 = -1;
+ for(i=0; i<OutputTypes.size(); i++) {
+ if(OutputTypes[i] == RinexObsHeader::C1) inC1=i;
+ if(OutputTypes[i] == RinexObsHeader::P1) inP1=i;
+ if(OutputTypes[i] == RinexObsHeader::L1) inL1=i;
+ if(OutputTypes[i] == RinexObsHeader::D1) inD1=i;
+ if(OutputTypes[i] == RinexObsHeader::S1) inS1=i;
+ if(OutputTypes[i] == RinexObsHeader::P2) inP2=i;
+ if(OutputTypes[i] == RinexObsHeader::L2) inL2=i;
+ if(OutputTypes[i] == RinexObsHeader::D2) inD2=i;
+ if(OutputTypes[i] == RinexObsHeader::S2) inS2=i;
+ if(Debug)
+ cout << " " << RinexObsHeader::convertObsType(OutputTypes[i]) << ":" << i;
+ }
+ if(Debug) cout << endl;
+ roh.obsTypeList = OutputTypes;
+
+ roh.interval = 10.; // defined later by data
+ roh.firstObs = CurrEpoch; // defined later by data
+ roh.firstSystem = RinexSatID();
+ roh.lastObs = CurrEpoch; // defined later by data
+ roh.commentList.push_back("Created by GPSTK program " + Prgm + " " + Vers
+ + CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S"));
+ for(i=0; i<HDcomments.size(); i++)
+ roh.commentList.push_back(HDcomments[i]);
+
+ roh.valid = RinexObsHeader::allValid21;
+ roh.valid |= RinexObsHeader::commentValid;
+
+ // navigation header
+ rnh.version = 2.1;
+ rnh.fileType = "Observation";
+ rnh.fileProgram = roh.fileProgram;
+ rnh.fileAgency = roh.fileAgency;
+ rnh.date = CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ rnh.commentList.push_back("Created by GPSTK program " + Prgm + " " + Vers
+ + CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S"));
+ for(i=0; i<HDcomments.size(); i++)
+ rnh.commentList.push_back(HDcomments[i]);
+
+ rnh.valid = RinexNavHeader::allValid21;
+ rnh.valid |= RinexNavHeader::commentValid;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void UpdateInformation(RinexObsData& rod) throw(Exception)
+{
+try {
+ int i,j,k;
+ double dt;
+ SatID sat;
+
+ if(fabs(FirstEpoch - DayTime::BEGINNING_OF_TIME) < 1) {
+ PrevEpoch = FirstEpoch = rod.time;
+ if(verbose) cout << "Set First Epoch to "
+ << rod.time.printf("%Y/%m/%d %H:%02M:%6.3f = %F/%10.3g") << endl;
+ }
+ else
+ PrevEpoch = CurrEpoch;
+ CurrEpoch = rod.time;
+
+ // compute the most likely value of dt, the time spacing of the data
+ dt=CurrEpoch-PrevEpoch;
+ if(dt > 0.0) {
+ for(i=0; i<9; i++) {
+ if(ndt[i] <= 0) { bestdt[i]=dt; ndt[i]=1; break; }
+ if(fabs(dt-bestdt[i]) < 0.0001) { ndt[i]++; break; }
+ if(i == 8) {
+ k = 0;
+ int nleast=ndt[k];
+ for(j=1; j<9; j++) if(ndt[j] <= nleast) {
+ k=j; nleast=ndt[j];
+ }
+ ndt[k]=1; bestdt[k]=dt;
+ }
+ }
+ }
+ else if(dt < 0.0)
+ cout << "Warning! observation records out of time order (previous > current) : "
+ << PrevEpoch.printf("%F %.3g") << " > " << CurrEpoch.printf("%F %.3g")
+ << endl;
+
+ RinexObsData::RinexSatMap::iterator jt;
+ map<SatID,vector<int> >::iterator it;
+ for(jt=rod.obs.begin(); jt != rod.obs.end(); jt++) {
+ // find this satellite in the table
+ sat = jt->first;
+ if((it=table.find(sat)) == table.end()) {
+ table[sat] = vector<int>(OutputTypes.size(),0);
+ it = table.find(sat);
+ }
+
+ // increment counter for each obstype found
+ if(inC1 >= 0 &&
+ rod.obs[sat][RinexObsHeader::C1].data != 0.0) {
+ table[sat][inC1]++;
+ totals[inC1]++;
+ }
+ if(inP1 >= 0 &&
+ rod.obs[sat][RinexObsHeader::P1].data != 0.0) {
+ table[sat][inP1]++;
+ totals[inP1]++;
+ }
+ if(inL1 >= 0 &&
+ rod.obs[sat][RinexObsHeader::L1].data != 0.0) {
+ table[sat][inL1]++;
+ totals[inL1]++;
+ }
+ if(inD1 >= 0 &&
+ rod.obs[sat][RinexObsHeader::D1].data != 0.0) {
+ table[sat][inD1]++;
+ totals[inD1]++;
+ }
+ if(inS1 >= 0 &&
+ rod.obs[sat][RinexObsHeader::S1].data != 0.0) {
+ table[sat][inS1]++;
+ totals[inS1]++;
+ }
+ if(inP2 >= 0 &&
+ rod.obs[sat][RinexObsHeader::P2].data != 0.0) {
+ table[sat][inP2]++;
+ totals[inP2]++;
+ }
+ if(inL2 >= 0 &&
+ rod.obs[sat][RinexObsHeader::L2].data != 0.0) {
+ table[sat][inL2]++;
+ totals[inL2]++;
+ }
+ if(inD2 >= 0 &&
+ rod.obs[sat][RinexObsHeader::D2].data != 0.0) {
+ table[sat][inD2]++;
+ totals[inD2]++;
+ }
+ if(inS2 >= 0 &&
+ rod.obs[sat][RinexObsHeader::S2].data != 0.0) {
+ table[sat][inS2]++;
+ totals[inS2]++;
+ }
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+string GetTempFileName(void) throw(Exception)
+{
+try {
+#ifdef _MSC_VER
+ char newname[L_tmpnam];
+ if(!tmpnam(newname)) {
+#else
+ char newname[]="TempnovaRinex.XXXXXX";
+ if(mkstemp(newname)==-1) {
+#endif
+ return string("");
+ }
+ remove(newname);
+ return string(newname);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int UpdateHeader(string& TempFile, string& OutputFile, RinexObsHeader& rh)
+ throw(Exception)
+{
+try {
+ int i,j;
+
+ // update header
+ if(FillOptionalHeader) {
+ for(i=1,j=0; i<9; i++) if(ndt[i]>ndt[j]) j=i;
+ rh.interval = bestdt[j];
+ rh.valid |= RinexObsHeader::intervalValid;
+ rh.firstObs = FirstEpoch;
+ rh.lastObs = CurrEpoch;
+ rh.valid |= RinexObsHeader::lastTimeValid;
+ }
+
+ // edit out obs types that have no data
+ vector<RinexObsHeader::RinexObsType>::iterator it;
+ vector<int> indexes; // indexes is a list of 'good' indexes into table
+ for(i=0, it=rh.obsTypeList.begin(); it != rh.obsTypeList.end(); i++) {
+ if(totals[i] <= 0) {
+ // no data for this obs type
+ if(Debug) cout << " Obs type " << RinexObsHeader::convertObsType(*it)
+ << " had no data - delete" << endl;
+ // delete from header
+ rh.obsTypeList.erase(it);
+ }
+ else {
+ indexes.push_back(i); // this is an index with data
+ it++;
+ }
+ }
+ // now edit the table
+ map<SatID,vector<int> >::iterator jt;
+ for(jt=table.begin(); jt != table.end(); jt++) { // for each sat..
+ for(j=0,i=0; i<indexes.size(); i++,j++)
+ if(j != indexes[i]) jt->second[j] = jt->second[indexes[i]];
+ jt->second.resize(indexes.size());
+ }
+
+
+ // add the PRN/obs table
+ if(FillOptionalHeader && table.size() > 0) {
+ rh.numSVs = table.size();
+ rh.valid |= RinexObsHeader::numSatsValid;
+ rh.numObsForSat.clear();
+ rh.numObsForSat = table;
+ rh.valid |= RinexObsHeader::prnObsValid;
+ }
+
+ // re-open the obs file for reading, and replace the header
+ RinexObsStream InAgain(TempFile.c_str());
+ if(!InAgain) {
+ cerr << "Failed to re-open temp output Rinex obs file " << TempFile << endl;
+ return -3;
+ }
+ InAgain.exceptions(fstream::failbit);
+
+ // open the true output obs file for writing
+ RinexObsStream ROutStr(OutputFile.c_str(), ios::out);
+ if(!ROutStr) {
+ cerr << "Failed to open output Rinex obs file " << OutputFile << endl;
+ return -3;
+ }
+ if(verbose) cout << "Opened file " << OutputFile << " for RINEX output." << endl;
+ ROutStr.exceptions(fstream::failbit);
+
+ // // open a BINEX stream
+ //BinexStream BinexOut;
+ //if(!BinexFile.empty()) {
+ // BinexOut.open(BinexFile.c_str(), std::ios::out | std::ios::binary);
+ // if(!BinexOut) {
+ // cerr << "Failed to open output BINEX file " << BinexFile << endl;
+ // return -3;
+ // }
+ // BinexOut.exceptions(ios_base::failbit | ios_base::badbit);
+ // if(verbose) cout << "Opened file " << BinexFile << " for BINEX output." << endl;
+ //}
+
+ // read preliminary header, ...
+ RinexObsHeader rhjunk;
+ InAgain >> rhjunk;
+ // ...write out the full one
+ ROutStr << rh;
+ // write header to BINEX, also all the nav information
+ //if(!BinexFile.empty()) {
+ // writeBinex(BinexOut, rh, char(4)); // 4 means 'from native receiver format'
+ // // open nav file RinexNavFile, read it all and write it all to Binex
+ // RinexNavStream rns(RinexNavFile.c_str(),ios::in);
+ // if(!rns) {
+ // cerr << "Failed to re-open output nav file " << RinexNavFile << endl;
+ // return -3;
+ // }
+ // rns.exceptions(fstream::failbit);
+ // // ignore the header
+ // RinexNavHeader rnh;
+ // rns >> rnh;
+ // RinexNavData rnd;
+ // while(rns >> rnd) writeBinex(BinexOut, rnd);
+ // rns.close();
+ //}
+
+ RinexObsData robs;
+ while(InAgain >> robs) {
+ ROutStr << robs;
+ //if(!BinexFile.empty()) writeBinex(BinexOut, robs);
+ }
+
+ InAgain.close();
+ ROutStr.close();
+ //if(!BinexFile.empty()) BinexOut.close();
+
+ // delete the temporary
+ if(remove(TempFile.c_str()) != 0) {
+ cerr << "Error: Could not remove existing temp file: " << TempFile << endl;
+ return -1;
+ }
+ else if(Debug) cout << "Deleted temporary file " << TempFile << endl;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+int GetCommandInput(int argc, char **argv) throw(Exception)
+{
+try {
+ int i,j;
+ vector<string> values;
+
+ // --------------------------------------------------------------------------------
+ // set all the defaults
+ Debug = help = verbose = false;
+ BegTime = DayTime::BEGINNING_OF_TIME;
+ EndTime = DayTime::END_OF_TIME;
+ //NovatelFile,
+ RinexObsFile = string("RnovaRinex.obs");
+ RinexNavFile = string("RnovaRinex.nav");
+ //BinexFile = string();
+ InputDirectory = string("");
+ // header fields
+ FillOptionalHeader = true;
+ roh.fileProgram = Prgm+" "+Vers;
+ roh.fileAgency = string("ARL:UT/GPSTk");
+ roh.observer = string(" ");
+ roh.agency = string("ARL:UT/GPSTk");
+ roh.markerName = string(" ");
+ roh.markerNumber = string(" ");
+ roh.recNo = " ";
+ roh.recType = "Novatel";
+ roh.recVers = "OEM2/4"; // defined later by data
+ roh.antNo = " ";
+ roh.antType = " ";
+ //string HDRxNo,HDRxType,HDRxVer,HDAntNo,HDAntType; // TD
+ //vector<string> HDcomments; // none
+ //vector<RinexObsHeader::RinexObsType> OutputTypes; // define later
+ gpsWeek = -1;
+ debias = false;
+
+ // --------------------------------------------------------------------------------
+ // Define the options
+
+ // required options:
+ RequiredOption dashinput(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"input"," --input <file> Novatel binary input file");
+ dashinput.setMaxCount(1);
+
+ // optional arguments:
+ // this is here only so it will show up in the help msg...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," [-f|--file] <fn> Name of file containing more options"
+ " (ignores '#' to EOL)");
+
+ CommandOption dashdir(CommandOption::hasArgument, CommandOption::stdType,0,"dir",
+ " --dir <dir> Directory in which to find input file (defaults to ./)");
+ dashdir.setMaxCount(1);
+
+ CommandOption dashobs(CommandOption::hasArgument, CommandOption::stdType,0,"obs",
+ " --obs <file> RINEX observation output file (RnovaRinex.obs)");
+ dashobs.setMaxCount(1);
+
+ CommandOption dashnav(CommandOption::hasArgument, CommandOption::stdType,0,"nav",
+ " --nav <file> RINEX navigation output file (RnovaRinex.nav)");
+ dashnav.setMaxCount(1);
+
+ //CommandOption dashbin(CommandOption::hasArgument, CommandOption::stdType,0,"bin",
+ // " --bin <file> BINEX (binary) output file (RnovaRinex.bnx)");
+ //dashbin.setMaxCount(1);
+
+ CommandOption dashNHF(CommandOption::hasArgument, CommandOption::stdType,0,
+ "noHDopt", "\nOutput RINEX header fields:\n --noHDopt If present, "
+ "do not fill optional records in the output RINEX header");
+ dashNHF.setMaxCount(1);
+
+ CommandOption dashHDp(CommandOption::hasArgument, CommandOption::stdType,0,"HDp",
+ " --HDp <program> Set output RINEX header 'program' field ('"
+ + roh.fileProgram + "')");
+ dashHDp.setMaxCount(1);
+
+ CommandOption dashHDr(CommandOption::hasArgument, CommandOption::stdType,0,"HDr",
+ " --HDr <run_by> Set output RINEX header 'run by' field ('"
+ + roh.fileAgency + "')");
+ dashHDr.setMaxCount(1);
+
+ CommandOption dashHDo(CommandOption::hasArgument, CommandOption::stdType,0,"HDo",
+ " --HDo <obser> Set output RINEX header 'observer' field ('"
+ + roh.observer + "')");
+ dashHDo.setMaxCount(1);
+
+ CommandOption dashHDa(CommandOption::hasArgument, CommandOption::stdType,0,"HDa",
+ " --HDa <agency> Set output RINEX header 'agency' field ('"
+ + roh.agency + "')");
+ dashHDa.setMaxCount(1);
+
+ CommandOption dashHDm(CommandOption::hasArgument, CommandOption::stdType,0,"HDm",
+ " --HDm <marker> Set output RINEX header 'marker' field ('"
+ + roh.markerName + "')");
+ dashHDm.setMaxCount(1);
+
+ CommandOption dashHDn(CommandOption::hasArgument, CommandOption::stdType,0,"HDn",
+ " --HDn <number> Set output RINEX header 'number' field ('"
+ + roh.markerNumber + "')");
+ dashHDn.setMaxCount(1);
+
+ CommandOption dashHDrn(CommandOption::hasArgument, CommandOption::stdType,0,"HDrn",
+ " --HDrn <number> Set output RINEX header 'Rx number' field ('"
+ + roh.recNo + "')");
+ dashHDrn.setMaxCount(1);
+
+ CommandOption dashHDrt(CommandOption::hasArgument, CommandOption::stdType,0,"HDrt",
+ " --HDrt <type> Set output RINEX header 'Rx type' field ('"
+ + roh.recType + "')");
+ dashHDrt.setMaxCount(1);
+
+ CommandOption dashHDrv(CommandOption::hasArgument, CommandOption::stdType,0,"HDrv",
+ " --HDrv <vers> Set output RINEX header 'Rx version' field ('"
+ + roh.recVers + "')");
+ dashHDrv.setMaxCount(1);
+
+ CommandOption dashHDan(CommandOption::hasArgument, CommandOption::stdType,0,"HDan",
+ " --HDan <number> Set output RINEX header 'antenna number' field ('"
+ + roh.antNo + "')");
+ dashHDan.setMaxCount(1);
+
+ CommandOption dashHDat(CommandOption::hasArgument, CommandOption::stdType,0,"HDat",
+ " --HDat <type> Set output RINEX header 'antenna type' field ('"
+ + roh.antType + "')");
+ dashHDat.setMaxCount(1);
+
+ CommandOption dashHDc(CommandOption::hasArgument, CommandOption::stdType,0,"HDc",
+ " --HDc <comment> Add comment to output RINEX headers (>1 allowed).");
+ //dashHDc.setMaxCount(1);
+
+ CommandOption dashobstype(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"obstype","\nOutput RINEX observation data:\n"
+ " --obstype <OT> Output this RINEX (standard) obs type (i.e. <OT> is one of\n"
+ " L1,L2,C1,P1,P2,D1,D2,S1,or S2); repeat for each type.\n"
+ " NB default is ALL std. types that have data.");
+ //dashobstype.setMaxCount(1);
+
+
+ // times
+ CommandOptionWithTimeArg dasheb(0,"begin","%Y,%m,%d,%H,%M,%f",
+ "\nOutput configuration:\n --begin <arg> Start time, arg is of the form "
+ "YYYY,MM,DD,HH,Min,Sec");
+ CommandOptionWithTimeArg dashgb(0,"beginGPS","%F,%g",
+ " --beginGPS <arg> Start time, arg is of the form GPSweek,GPSsow");
+
+ CommandOptionWithTimeArg dashee(0,"end","%Y,%m,%d,%H,%M,%f",
+ " --end <arg> End time, arg is of the form YYYY,MM,DD,HH,Min,Sec");
+ CommandOptionWithTimeArg dashge(0,"endGPS","%F,%g",
+ " --endGPS <arg> End time, arg is of the form GPSweek,GPSsow");
+
+ // allow ONLY one start time (use startmutex(true) if one is required)
+ CommandOptionMutex startmutex(false);
+ startmutex.addOption(&dasheb);
+ startmutex.addOption(&dashgb);
+ CommandOptionMutex stopmutex(false);
+ stopmutex.addOption(&dashee);
+ stopmutex.addOption(&dashge);
+
+ CommandOption dashweek(CommandOption::hasArgument, CommandOption::stdType,0,"week",
+ " --week <week> GPS Week number of this data, NB: this is for OEM2;\n"
+ " this command serves two functions, resolving the ambiguity\n"
+ " in the 10-bit week (default uses --begin, --end, or the\n"
+ " current system time) and ensuring that ephemeris records\n"
+ " that precede any obs records are not lost.");
+ dashweek.setMaxCount(1);
+
+ CommandOptionNoArg dashdebias(0,"debias",
+ " --debias Remove an initial bias from the phase");
+ dashdebias.setMaxCount(1);
+
+ CommandOptionNoArg dashhelp('h',"help",
+ " [-h|--help] print this message and quit");
+ dashhelp.setMaxCount(1);
+
+ CommandOptionNoArg dashVerbose('v', "verbose",
+ " --verbose print more information");
+ dashVerbose.setMaxCount(1);
+
+ CommandOptionNoArg dashDebug('d',"debug",
+ " [-d|--debug] print much more information");
+ dashDebug.setMaxCount(1);
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ // --------------------------------------------------------------------------------
+ // Define the parser here, after the options -- this is the 'prgm description'
+ CommandOptionParser Par(
+" Prgm " + Prgm + " (" + Vers + ") will open and read a binary Novatel file\n"
+" (OEM2 and OEM4 receivers are supported), and convert the data to RINEX format\n"
+" observation and navigation files. The RINEX header is filled using user input\n"
+" (see below), and optional records are filled. Input is on the command line,\n"
+" or of the same format in a file (--file <file>).\n");
+
+ // parse the command line
+ // allow user to put all options in a file
+ // PreProcessArgs pulls out help and Debug
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0) help = true;
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ if(Debug) {
+ cout << "Argument list passed to parser:\n";
+ for(j=0; j<argc; j++) cout << j << " " << CArgs[j] << endl;
+ }
+
+ Par.parseOptions(argc, CArgs);
+ for(j=1; j<argc; j++) delete[] CArgs[j];
+ delete[] CArgs;
+
+ // if help, print usage
+ if(help) {
+ Par.displayUsage(cout,false);
+ cout << endl;
+ if(argc <= 2) return 1;
+ }
+
+ // check for errors on the command line
+ if (Par.hasErrors() || Rest.getCount()) {
+ cerr << "\nErrors found in command line input:\n";
+ if(Par.hasErrors()) Par.dumpErrors(cerr);
+ if(Rest.getCount()) {
+ cerr << "The following command line fields were not recognized:\n";
+ values = Rest.getValue();
+ for(i=0; i<values.size(); i++)
+ cerr << " " << values[i] << endl;
+ }
+ cerr << "...end of Errors. Abort.\n";
+ help = true;
+ }
+
+ if(help && argc > 1)
+ cout << endl << "--------- parsed input:" << endl;
+
+ // --------------------------------------------------------------------------------
+ // pull out the parsed input
+
+ if(dashinput.getCount()) {
+ values = dashinput.getValue();
+ if(help) cout << " Input Novatel file name " << values[0] << endl;
+ NovatelFile = values[0];
+ }
+ if(dashdir.getCount()) {
+ values = dashdir.getValue();
+ if(help) cout << " Input Novatel file directory " << values[0] << endl;
+ InputDirectory = values[0];
+ }
+ if(dashobs.getCount()) {
+ values = dashobs.getValue();
+ if(help) cout << " Input RINEX obs file name " << values[0] << endl;
+ RinexObsFile = values[0];
+ }
+ if(dashnav.getCount()) {
+ values = dashnav.getValue();
+ if(help) cout << " Input RINEX nav file name " << values[0] << endl;
+ RinexNavFile = values[0];
+ }
+ //if(dashbin.getCount()) {
+ // values = dashbin.getValue();
+ // if(help) cout << " Input BINEX file name " << values[0] << endl;
+ // BinexFile = values[0];
+ //}
+ if(dashNHF.getCount()) {
+ values = dashNHF.getValue();
+ if(help) cout << " Turn off filling of optional header" << endl;
+ FillOptionalHeader = false;
+ }
+ if(dashHDp.getCount()) {
+ values = dashHDp.getValue();
+ if(help) cout << " Input header program name " << values[0] << endl;
+ roh.fileProgram = values[0];
+ }
+ if(dashHDr.getCount()) {
+ values = dashHDr.getValue();
+ if(help) cout << " Input header 'run by' field " << values[0] << endl;
+ roh.fileAgency = values[0];
+ }
+ if(dashHDo.getCount()) {
+ values = dashHDo.getValue();
+ if(help) cout << " Input header observer field " << values[0] << endl;
+ roh.observer = values[0];
+ }
+ if(dashHDa.getCount()) {
+ values = dashHDa.getValue();
+ if(help) cout << " Input header agency field " << values[0] << endl;
+ roh.agency = values[0];
+ }
+ if(dashHDm.getCount()) {
+ values = dashHDm.getValue();
+ if(help) cout << " Input header marker field " << values[0] << endl;
+ roh.markerName = values[0];
+ }
+ if(dashHDn.getCount()) {
+ values = dashHDn.getValue();
+ if(help) cout << " Input header marker name " << values[0] << endl;
+ roh.markerNumber = values[0];
+ }
+ if(dashHDrn.getCount()) {
+ values = dashHDrn.getValue();
+ if(help) cout << " Input header receiver number " << values[0] << endl;
+ roh.recNo = values[0];
+ }
+ if(dashHDrt.getCount()) {
+ values = dashHDrt.getValue();
+ if(help) cout << " Input header receiver type " << values[0] << endl;
+ roh.recType = values[0];
+ }
+ if(dashHDrv.getCount()) {
+ values = dashHDrv.getValue();
+ if(help) cout << " Input header receiver version " << values[0] << endl;
+ roh.recVers = values[0];
+ }
+ if(dashHDan.getCount()) {
+ values = dashHDan.getValue();
+ if(help) cout << " Input header antenna number " << values[0] << endl;
+ roh.antNo = values[0];
+ }
+ if(dashHDat.getCount()) {
+ values = dashHDat.getValue();
+ if(help) cout << " Input header antenna type " << values[0] << endl;
+ roh.antType = values[0];
+ }
+ if(dashHDc.getCount()) {
+ values = dashHDc.getValue();
+ for(i=0; i<values.size(); i++) {
+ if(help) cout << " Input comment for headers " << values[i] << endl;
+ HDcomments.push_back(values[i]);
+ }
+ }
+ if(dashobstype.getCount()) {
+ values = dashobstype.getValue();
+ for(i=0; i<values.size(); i++) {
+ RinexObsHeader::RinexObsType rot;
+ rot = RinexObsHeader::convertObsType(values[i]);
+ OutputTypes.push_back(rot);
+ if(help) cout << " Input output RINEX obs type " << values[i] << endl;
+ }
+ }
+ if(dasheb.getCount()) {
+ values = dasheb.getValue();
+ BegTime.setToString(values[0], "%Y,%m,%d,%H,%M,%S");
+ if(help) cout << " Input begin time " << values[0] << " = " << BegTime << endl;
+ if(gpsWeek == -1) gpsWeek = BegTime.GPSfullweek();
+ }
+ if(dashgb.getCount()) {
+ values = dashgb.getValue();
+ BegTime.setToString(values[0], "%F,%g");
+ if(help) cout << " Input begin time " << values[0] << " = " << BegTime << endl;
+ if(gpsWeek == -1) gpsWeek = BegTime.GPSfullweek();
+ }
+ if(dashee.getCount()) {
+ values = dashee.getValue();
+ EndTime.setToString(values[0], "%Y,%m,%d,%H,%M,%S");
+ if(help) cout << " Input end time " << values[0] << " = " << EndTime << endl;
+ if(gpsWeek == -1) gpsWeek = EndTime.GPSfullweek();
+ }
+ if(dashge.getCount()) {
+ values = dashge.getValue();
+ EndTime.setToString(values[0], "%F,%g");
+ if(help) cout << " Input end time " << values[0] << " = " << EndTime << endl;
+ if(gpsWeek == -1) gpsWeek = EndTime.GPSfullweek();
+ }
+ if(dashweek.getCount()) {
+ values = dashweek.getValue();
+ gpsWeek = StringUtils::asInt(values[0]);
+ }
+ if(dashdebias.getCount()) {
+ if(help) cout << " Turn on debiasing of the phase " << endl;
+ debias = true;
+ }
+ // help and Debug are pulled out by PreProcessArgs
+ //if(dashhelp.getCount()) {
+ // help = true;
+ //}
+ //if(dashDebug.getCount()) {
+ // Debug = true;
+ //}
+ if(dashVerbose.getCount() || Debug) verbose = true;
+
+
+ // process input
+ if(gpsWeek == -1) gpsWeek = CurrEpoch.GPSfullweek();
+ if(OutputTypes.size() == 0) { // fill with the standard types
+ OutputTypes.push_back(RinexObsHeader::C1);
+ OutputTypes.push_back(RinexObsHeader::P1);
+ OutputTypes.push_back(RinexObsHeader::L1);
+ OutputTypes.push_back(RinexObsHeader::D1);
+ OutputTypes.push_back(RinexObsHeader::S1);
+ OutputTypes.push_back(RinexObsHeader::P2);
+ OutputTypes.push_back(RinexObsHeader::L2);
+ OutputTypes.push_back(RinexObsHeader::D2);
+ OutputTypes.push_back(RinexObsHeader::S2);
+ }
+ // table will be initialized inside the loop
+ totals = vector<int>(OutputTypes.size(),0);
+
+ if(help) return 1;
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Pull out --debug --help and --file
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ if(Debug) cout << "Found a file of options: " << filename << endl;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer.clear();
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if((arg[0]=='-' && arg[1]=='d') || string(arg)==string("--debug"))
+ Debug = true;
+ else if((arg[0]=='-' && arg[1]=='h') || string(arg)==string("--help"))
+ help = true;
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+
+//------------------------------------------------------------------------------------
+void DumpCommandLine(ostream& ofs) throw(Exception)
+{
+try {
+ int i;
+
+ ofs << "Summary of command line input:" << endl;
+ ofs << " Debug is " << (Debug ? "on":"off") << endl;
+ ofs << " Verbose is " << (verbose ? "on":"off") << endl;
+ if(!InputDirectory.empty()) ofs << " Path for input Novatel file is "
+ << InputDirectory << endl;
+ ofs << " Input Novatel file is: " << NovatelFile << endl;
+ ofs << " Output RINEX obs file is: " << RinexObsFile << endl;
+ ofs << " Output RINEX nav file is: " << RinexNavFile << endl;
+ //ofs << " Output BINEX (obs/nav) file is: " << BinexFile << endl;
+ ofs << " --------- Header information:\n";
+ if(!FillOptionalHeader) ofs << " Do not";
+ ofs << " Fill optional records in header" << endl;
+ ofs << " Header program: " << roh.fileProgram << endl;
+ ofs << " Header run by: " << roh.fileAgency << endl;
+ ofs << " Header observer: " << roh.observer << endl;
+ ofs << " Header agency: " << roh.agency << endl;
+ ofs << " Header marker name: " << roh.markerName << endl;
+ ofs << " Header marker number: " << roh.markerNumber << endl;
+ if(HDcomments.size() > 0) {
+ ofs << " Header comments:\n";
+ for(i=0; i<HDcomments.size(); i++) ofs << HDcomments[i] << endl;
+ }
+ ofs << " Output RINEX observation types (if found in the data):\n";
+ for(i=0; i<OutputTypes.size(); i++)
+ ofs << " " << RinexObsHeader::convertObsType(OutputTypes[i]);
+ ofs << endl;
+ if(BegTime > DayTime::BEGINNING_OF_TIME) ofs << " Begin time is "
+ << BegTime.printf("%Y/%m/%d %H:%02M:%6.3f = %F/%10.3g") << endl;
+ if(EndTime < DayTime::END_OF_TIME) ofs << " End time is "
+ << EndTime.printf("%Y/%m/%d %H:%02M:%6.3f = %F/%10.3g") << endl;
+ ofs << " Debiasing of phase is turned " << (debias ? "on" : "off") << endl;
+
+ ofs << "End of command line input summary." << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
diff --git a/trunk/apps/differential/Jamfile b/dev/apps/differential/Jamfile
similarity index 100%
rename from trunk/apps/differential/Jamfile
rename to dev/apps/differential/Jamfile
diff --git a/dev/apps/differential/Makefile.am b/dev/apps/differential/Makefile.am
new file mode 100644
index 0000000..8bdd5b9
--- /dev/null
+++ b/dev/apps/differential/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = vecsol
+
+vecsol_SOURCES = vecsol.cpp
diff --git a/dev/apps/differential/vecsol.1 b/dev/apps/differential/vecsol.1
new file mode 100644
index 0000000..953284b
--- /dev/null
+++ b/dev/apps/differential/vecsol.1
@@ -0,0 +1,118 @@
+.TH VECSOL "1" "September 2005" "vecsol (GPStk) 0.9" "User Commands"
+.SH NAME
+vecsol \- GPS Vector Solver, computes a 3D vector from RINEX input
+.SH SYNOPSIS
+.B vecsol
+[\fIRINEX obs file 1\fR] [\fIRINEX obs file 2\fR]
+.SH DESCRIPTION
+.\" Add any additional description here
+.PP
+Computes a 3D vector solution using dual-frequency carrier phases. A double
+difference algorithm is applied with properly computed weights
+(elevation sine weighting) and correlations. The program iterates to
+convergence and attempts to resolve ambiguities to integer values if
+close enough. Crude outlier rejection is provided based on a
+triple-difference test. Ephemeris used are either broadcast or precise
+(SP3). Alternatively, also P code processing is provided.
+.PP
+The solution is computed using the ionosphere-free linear combination.
+The ionospheric model included in broadcast ephemeris may be used. A
+standard tropospheric correction is applied, or tropospheric parameters
+(zenith delays) may be estimated.
+.SH FILES
+.TP
+\fBRINEX obs files 1 and 2\fR
+contain the observations collected at the two end points 1 and 2 of the
+baseline. They \fImust\fR contain a sufficient set of simultaneous
+observations to the same satellites.
+.TP
+\fBvecsol.conf\fR
+contains the input options for the program, one per line.
+.PP
+.SS Options
+.TP 10
+ \fBphase\fR [1/0]
+Process carrier phase data (instead of P code data)
+.TP
+ \fBtruecov\fR [1/0]
+If 1, use true double difference covariances. If 0, ignore any possible
+correlations
+.TP
+ \fBprecise\fR [1/0]
+If 1, use precise ephemeris, if 0, use broadcast ephemeris
+.TP
+ \fBiono\fR [1/0]
+If 1, use the 8-parameter ionospheric model that comes with the
+broadcast ephemeris (.nav) files
+.TP
+ \fBtropo\fR [1/0]
+Estimate troposphere parameters (zenith delays relative to the standard
+value, which is always applied)
+.TP
+ \fBvecmode\fR [1/0]
+If 1, solve the \fIvector\fR, i.e. the three co-ordinate differences
+between the baseline end points. If 0, solve for the absolute
+co-ordinates of both end points
+.TP
+ \fBdebug\fR [1/0]
+If 1, produce lots of gory debugging output. See the source for what it
+all means
+.TP
+ \fBrefsat_elev\fR
+Minimum elevation of the reference satellite used for computing
+inter-satellite differences. Good initial choice: 30.0
+.TP
+ \fBcutoff_elev\fR
+cut-off elevation. Good initial choice: 10.0 \- 20.0
+.TP
+ \fBPTDRej, CTDRej\fR
+Rejection limits for phase and code observations on triple
+difference level. Good choice: 0.001 0.1
+.TP
+ \fBreduce\fR
+Reduce out dependencies between DD biases
+
+.PP
+.TP
+\fBvecsol.nav\fR
+contains the names of the navigation RINEX files ("nav files", extension .yyN) to be used, one per line.
+.PP
+Good navigation RINEX files that are globally valid can be found from the CORS website at
+.B http://www.ngs.noaa.gov/CORS/
+.
+.TP
+\fBvecsol.eph\fR
+contains the names of the precise ephemeris SP3 files (extension .sp3)
+to be used. These should cover the time span of the observations, with
+time to spare on both ends.
+.PP
+Note that the date in the filenames of the SP3 files is given as GPS
+week + weekday, not year + day of year, as in the observation and nav
+files.
+.PP
+In the .nav and .eph files, comment lines have # in the first position.
+
+.SH AUTHOR
+Written by Martin Vermeer and others.
+.SH BUGS
+Doesn't currently recover \fIat all\fR from cycle slips, so the RINEX
+observation files used have to be fairly clean already.
+.PP
+Report bugs to <gpstk-devel at lists.sourceforge.net>.
+.SH COPYRIGHT
+Copyright \(co 2005 The Authors.
+.br
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+.SH "SEE ALSO"
+The full documentation for the
+.B GPStk
+package of which
+.B vecsol
+is a part can be found on the website of
+.B GPStk
+at
+.IP
+.B http://gpstk.sourceforge.net
+.
+
diff --git a/dev/apps/differential/vecsol.conf b/dev/apps/differential/vecsol.conf
new file mode 100644
index 0000000..cbded09
--- /dev/null
+++ b/dev/apps/differential/vecsol.conf
@@ -0,0 +1,11 @@
+1 obsmode
+1 true covariances
+1 precise ephemeris
+0 nav file ionosphere
+1 tropo estimation
+1 vector mode
+1 debug
+30.0 ref sat cut-off
+20.0 cut-off angle
+0.1 0.1 triple diff rejection limits (phase, code)
+1 reduce
diff --git a/dev/apps/differential/vecsol.cpp b/dev/apps/differential/vecsol.cpp
new file mode 100644
index 0000000..1758c24
--- /dev/null
+++ b/dev/apps/differential/vecsol.cpp
@@ -0,0 +1,1303 @@
+/* vim: set cindent shiftwidth=4: */
+#include <string>
+#include <vector>
+#include <map>
+
+#include <limits.h>
+#include <float.h>
+
+#include "geometry.hpp"
+
+#include "Matrix.hpp"
+#include "MatrixOperators.hpp"
+
+#include "RinexObsBase.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+
+#include "RinexNavBase.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+
+#include "SP3Base.hpp"
+#include "SP3Header.hpp"
+#include "SP3Data.hpp"
+#include "SP3Stream.hpp"
+
+#include "TropModel.hpp"
+#include "WGS84Geoid.hpp"
+#include "IonoModelStore.hpp"
+
+#include "BCEphemerisStore.hpp"
+#include "SP3EphemerisStore.hpp"
+#include "EphemerisRange.hpp"
+#include "icd_200_constants.hpp"
+
+
+/**
+ * @file vecsol.cpp
+ * Vector solution using dual-frequency carrier phases. Double difference
+ * algorithm with proper weights, iteration with attempted ambiguity
+ * resolution, crude outlier rejection, elevation sine weighting.
+ * Alternatively also code processing provided.
+ * The configuration file is 'vecsol.conf'; broadcast or precise ephemeris
+ * are in files 'vecsol.nav' and 'vecsol.eph', respectively.
+
+ * LGPL (see COPYING). No furry animals were harmed in the coding
+ * of this software.
+
+ * (c) 2005-2006 Martin Vermeer
+
+
+GPS data in RINEX format, as well as precise orbits, can be downloaded
+from the SOPAC site: http://sopac.ucsd.edu/cgi-bin/dbDataByDate.cgi
+
+Site co-ordinates for testing can be had from:
+http://sopac.ucsd.edu/sites/getSiteInfo.html
+
+
+ To Do:
+ - Use of ssi and lli bits?
+ - Remove limitation that unknowns must be same across iterations
+ - Ionosphere models: use IONEX
+ - Satellite center-of-mass correction
+ - Receiver antenna phase delay patterns
+ - Earth tides
+ - Output of vectors to be read by other software
+
+ */
+
+
+using namespace std;
+using namespace gpstk;
+using gpstk::StringUtils::asString;
+using gpstk::transpose;
+
+ void
+stationData(RinexObsData const & rod, bool const phase,
+ vector < SatID > &prnVec,
+ vector < double >&rangeVecL1, vector < double >&rangeVecL2)
+{
+ RinexObsData::RinexSatMap::const_iterator it;
+ for (it = rod.obs.begin(); it != rod.obs.end(); it++) {
+ RinexObsData::RinexObsTypeMap otmap;
+ RinexObsData::RinexObsTypeMap::const_iterator itL1, itL2;
+ otmap = (*it).second;
+ if (phase) {
+ itL1 = otmap.find(RinexObsHeader::L1);
+ itL2 = otmap.find(RinexObsHeader::L2);
+ } else {
+ itL1 = otmap.find(RinexObsHeader::P1);
+ itL2 = otmap.find(RinexObsHeader::P2);
+ }
+ if (itL1 != otmap.end() && itL2 != otmap.end()) {
+ double /* const */ rangeL1 = (*itL1).second.data;
+ double /* const */ rangeL2 = (*itL2).second.data;
+
+ // here we would have Loss of Lock Indicator
+ // and Signal Strength Indicator: =0, >5 are OK
+ // cout << (*itL2).second.lli << endl;
+ // cout << (*itL2).second.ssi << endl;
+
+ // Discard empty data
+ if (rangeL1 != 0.0 && rangeL2 != 0.0) {
+ prnVec.push_back((*it).first);
+ rangeVecL1.push_back(rangeL1);
+ rangeVecL2.push_back(rangeL2);
+ }
+ }
+ }
+}
+
+
+enum FixType {
+ FIX_NONE,
+ FIX_WIDELANE,
+ FIX_BOTH
+};
+
+
+FixType phaseCycles(vector <double> & DDobs,
+ double const lambda1, double const lambda2, double const wt1,
+ double const wt2)
+{
+#define WITHIN_HALF_CYCLE(Lx) Lx = Lx - int(Lx); \
+ (Lx < -0.5 ? Lx += 1.0 : (Lx > 0.5 ? Lx -= 1.0 : Lx = Lx))
+
+ double L1 = DDobs[1] / lambda1;
+ double L2 = DDobs[2] / lambda2;
+ double L5 = L1 - L2;
+
+ WITHIN_HALF_CYCLE(L1);
+ WITHIN_HALF_CYCLE(L2);
+ WITHIN_HALF_CYCLE(L5);
+
+ cout << fixed << setprecision(8) << L1 << " " << L2 << " | " << L5;
+
+ bool const L1fixable = L1 < 0.1 && L1 > -0.1;
+ bool const L2fixable = L2 < 0.1 && L2 > -0.1;
+ bool const L5fixable = L5 < 0.07 && L5 > -0.07;
+ double const L3 = wt1 * lambda1 * L1 + wt2 * lambda2 * L2;
+ // Unit for L3: m
+ bool const L3fixable = L3 < 0.02 && L3 > -0.02;
+
+ if (L1fixable && L2fixable && L5fixable) {
+ DDobs[1] -= L1 * lambda1;
+ DDobs[2] -= L2 * lambda2;
+ cout << " FIX" << endl;
+ return FIX_BOTH;
+ }
+
+ if (L5fixable && L3fixable) {
+ DDobs[1] -= L1 * lambda1;
+ DDobs[2] -= L2 * lambda2;
+ cout << " QIF" << endl;
+ return FIX_BOTH;
+ }
+
+ if (L5fixable) {
+ DDobs[1] -= 0.5 * L5 * lambda1;
+ DDobs[2] += 0.5 * L5 * lambda2;
+ cout << " Widelane" << endl;
+ return FIX_WIDELANE;
+ }
+
+ cout << endl;
+ return FIX_NONE;
+}
+
+
+enum SolveType {
+ SOLVE_AMBS,
+ SOLVE_COORDS
+};
+
+
+void Solve(gpstk::Matrix <double> N, gpstk::Matrix <double> const b,
+ gpstk::Matrix <double> & N2, gpstk::Matrix <double> & b2,
+ SolveType const solveType,
+ gpstk::Vector <FixType> const fixed,
+ int const MaxUnkn, int const unknowns, bool const tropo)
+{
+ if (solveType == SOLVE_COORDS) {
+ // Fix "fixed" unknowns:
+ for (int k = MaxUnkn; k < unknowns; k++) {
+ if (fixed[k] == FIX_BOTH)
+ N(k,k) += 1.0E8; // absolutely fixed
+ // Note: we store separately the bias unknowns (ambiuguities) for L1 and
+ // L2. However, in the normal matrix we have them jointly. This limits
+ // what we can do here with weighting in case of a widelane fix.
+ // Obviously it would be better to have them separately in the normal
+ // matrix also, but then the solution effort would be 8x as expensive
+ // numerically.
+ if (fixed[k] == FIX_WIDELANE)
+ N(k,k) *= 1.25; // upgraded
+ }
+ } else { // SOLVE_AMBS
+ int const endCoords = ( tropo ? MaxUnkn - 2 : MaxUnkn );
+ for (int k = 0; k < endCoords; k++) {
+ N(k,k) += 1.0E8; // Keep only coords fixed (to earlier solved values)
+ }
+ }
+ // Soft-constrain tropo params. This is tricky, as this has to be scaled
+ // with the variance of unit weight for the GPS observations. Use
+ // conservative values:
+ if (tropo) {
+ N(MaxUnkn - 1, MaxUnkn - 1) += 0.01;
+ N(MaxUnkn - 2, MaxUnkn - 2) += 0.01;
+ }
+
+ // Copy over to correctly sized matrices
+ gpstk::Matrix <double> N1(unknowns, unknowns);
+ gpstk::Matrix <double> bb(unknowns, 3);
+ for (int k = 0; k < unknowns; k++) {
+ for (int m = 0; m < unknowns; m++)
+ N1(k,m) = N(k,m);
+ // Suppress unused unknowns, if any
+ if (N1(k,k) == 0.0)
+ N1(k,k) = 1.0;
+ for (int ot = 0; ot < 3; ot++)
+ bb(k,ot) = b(k,ot);
+ }
+
+ N2 = gpstk::inverse(N1);
+ double big, small;
+ cout << setprecision(10) << "Condition number(" << solveType << "):"
+ << condNum(N1, big, small) << endl;
+
+ cout << "Largest, smallest eigenvalue:" << " [" << big << " > "
+ << small << ']' << endl;
+ // Is it my imagination, or does SVD sometimes fail to order the
+ // eigenvalues properly? -- MV 01.03.2006
+ gpstk::SVD<double> svd;
+ svd(N1);
+ double big2 = 0;
+ for (int k = 0; k < unknowns; k++)
+ if (svd.S(k) > big2)
+ big2 = svd.S(k);
+ if (big != big2) {
+ // List all the eigenvalues; this shouldn't happen
+ for (int k = 0; k < unknowns; k++)
+ cout << k << ':' << svd.S(k) << ' ';
+ cout << endl;
+ }
+
+ for (int k = 0; k < unknowns; k++) {
+ if (N2(k,k) < 0.0)
+ cout << "Negative diagonal element "
+ << k << ": " << N2(k,k) << endl;
+ }
+ b2 = bb;
+}
+
+
+bool Reduce(gpstk::Matrix <double> & N, gpstk::Matrix <double> & sol,
+ Matrix <double> x0,
+ int const k, int const j, int const l,
+ int const dir1, int const dir2, int const dir3,
+ int const MaxUnkn, int const unknowns)
+{
+ // Here, the relationships ("closures") that may exist between different
+ // DD real-valued amvbiguities (biases) are used as condition equations
+ // to least-squares adjust (improve) them.
+ // The condition equation coefficient matrix is B, the condition
+ // quantity ("zero variate") is y.
+ gpstk::Matrix <double> B(1, unknowns);
+ gpstk::Matrix <double> BT(unknowns, 1);
+ gpstk::Matrix <double> y, BN, NBT, BNBT, InvBNBT;
+ int m;
+
+ // dir1/2/3 contain the "directions" of Double Diffs used,
+ // i.e., +1 or -1.
+ for (m = 0; m < unknowns; m++) {
+ if (m == k)
+ B(0, m) = dir1;
+ else if (m == j)
+ B(0, m) = dir2;
+ else if (m == l)
+ B(0, m) = dir3;
+ else
+ B(0, m) = 0.0;
+ }
+
+ // Least squares condition eqs. adjustment machinery
+ BT = transpose(B);
+ BN = B * N;
+ NBT = transpose(BN);
+ BNBT = BN * BT;
+ InvBNBT = BNBT; // Make sure size is always right
+ if (BNBT(0, 0) == 0.0) {
+ cout << "Warning: Zero Variance!" << endl;
+ InvBNBT(0, 0) = 0.0;
+ } else
+ InvBNBT(0, 0) = 1.0 / BNBT(0, 0);
+
+ // Create replacement of proper dimensions:
+ gpstk::Matrix <double> x0b(unknowns, 3);
+ for (int i = 0; i < unknowns; i++)
+ for (int m = 0; m < 3; m++)
+ x0b(i, m) = x0(i, m);
+
+ y = B * (sol + x0b);
+
+ if (abs(y(0, 0)) < 0.1) {
+ sol = sol - NBT * InvBNBT * y;
+ N = N - NBT * InvBNBT * BN;
+ cout << "DD ambigs.: " << k << ' ' << j << ' ' << l << endl;
+ cout << "Directions: " << dir1 << ' ' << dir2 << ' ' << dir3 << endl;
+ cout << "Closures: " << y << endl;
+ cout << "(Previous): " << B * x0b << endl;
+ return true;
+ }
+ return false;
+}
+
+
+Triple Rotate(Triple const UEN, Triple const R)
+ {
+ // Rotates an Up-East-North antenna offset to geocentric XYZ
+ // (This should be part of the GPStk library)
+ double const rad = R.mag();
+ double const rho = sqrt(R[0] * R[0] + R[1] * R[1]);
+ double const sf = R[2] / rad;
+ double const cf = rho / rad;
+ double const sl = R[1] / rho;
+ double const cl = R[0] / rho;
+ Triple a;
+ a[0] = cl * cf * UEN[0] - sl * UEN[1] - cl * sf * UEN[2];
+ a[1] = sl * cf * UEN[0] + cl * UEN[1] - sl * sf * UEN[2];
+ a[2] = sf * UEN[0] + cf * UEN[2];
+ return a;
+ }
+
+
+Triple permanentTide(double const phi)
+{
+ // Based on McCarthy (1996). Permanent part of the solid Earth tide,
+ // computed with conventional Love number, as has been the practice.
+ // Note that this is only meant to reduce measured GPS co-ordinates in a
+ // way that makes them comparable to ITRF published co-ordinates.
+ Triple disp;
+ double const c = cos(phi * DEG_TO_RAD);
+ disp [0] = 0.6026 * 0.19844 * (1.5 * c*c - 1.0);
+ disp [1] = 0.0;
+ disp [2] = 0.0831 * 0.19844 * 1.5 * sin(2.0 * phi);
+ return disp;
+}
+
+
+ int main(int argc, char *argv[])
+ {
+#define EPH_RANGE(C,T,X,S) ((precise ? \
+ C.ComputeAtReceiveTime(T.time,X,S,sp3store) : \
+ C.ComputeAtReceiveTime(T.time,X,S,bcestore)))
+
+ BCEphemerisStore bcestore;
+ SP3EphemerisStore sp3store;
+ WGS84Geoid geoid;
+ IonoModelStore ion;
+ CorrectedEphemerisRange CER1, CER2;
+ SimpleTropModel trop;
+
+ if (argc != 3) {
+ cerr << "Usage:" << endl;
+ cerr << " " << argv[0] <<
+ " <RINEX Obs file 1> <RINEX Obs file 2>" <<
+ endl;
+ cerr << "Edit vecsol.conf, vecsol.nav and vecsol.eph for input" <<
+ endl;
+ exit(-1);
+ }
+
+ int obsMode; // 0,2 = code, 1,3 = phase; 0,1 = iono free, 2,3 L1+L2
+ bool phase; // Process carrier phase data (instead of P code data)
+ bool ionoFree; // Compute iono free (instead of L1 + L2)
+ bool truecov; // Use true DD covariances (inst. of no correlations)
+ bool precise; // Use precise ephemeris (inst. of broadcast)
+ bool iono; // Use nav file iono model
+ bool tropo; // Estimate troposphere parameters
+ bool vecmode; // Solve vector (inst. of end point coords)
+ bool debug;
+ double refsat_elev; // Minimum elevation of the reference satellite.
+ // Good value: 30.0
+ double cutoff_elev; // cut-off elevation. Good value: 10.0
+ int MaxUnkn; // The number of std. unknowns. 3 for baseline est.,
+ // 6 for two endpoint positions, 8 for tropo est. too.
+ // rejection criteria, m/s, m
+ double PTDrej, CTDrej, DDrej = 1.0;
+ bool reduce; // Reduce out dependencies between DD biases
+
+ char s[80];
+ std::ifstream conf;
+ conf.open("vecsol.conf", ios::in);
+ conf >> obsMode; conf.getline(s, 80);
+ phase = obsMode == 1 || obsMode == 3;
+ ionoFree = obsMode == 0 || obsMode == 1;
+ conf >> truecov; conf.getline(s, 80);
+ conf >> precise; conf.getline(s, 80);
+ conf >> iono; conf.getline(s, 80);
+ conf >> tropo; conf.getline(s, 80);
+ conf >> vecmode; conf.getline(s, 80);
+ conf >> debug; conf.getline(s, 80);
+ conf >> refsat_elev; conf.getline(s, 80);
+ conf >> cutoff_elev; conf.getline(s, 80);
+ conf >> PTDrej >> CTDrej;
+ conf.getline(s, 80);
+ conf >> reduce; conf.getline(s, 80);
+ conf.close();
+
+ if (vecmode)
+ MaxUnkn = 3;
+ else
+ MaxUnkn = 6;
+ if (tropo)
+ MaxUnkn += 2;
+
+ cout << endl;
+ cout << "Configuration data from vecsol.conf" << endl;
+ cout << "-----------------------------------" << endl;
+ cout << "Use carrier phases: " << phase << endl;
+ cout << "Compute ionosphere-free: " << ionoFree << endl;
+ cout << "Use true correlations: " << truecov << endl;
+ cout << "Use precise ephemeris: " << precise << endl;
+ cout << "Use broadcast iono model: " << iono << endl;
+ cout << "Use tropospheric est.: " << tropo << endl;
+ cout << "Vector mode: " << vecmode << endl;
+ cout << "Debugging mode: " << debug << endl;
+ cout << "Ref sat elevation limit: " << refsat_elev << endl;
+ cout << "Cut-off elevation: " << cutoff_elev << endl;
+ cout << "TD rej. limits (phase, code): " << PTDrej << " "
+ << CTDrej << endl;
+ cout << "Reduce out DD dependencies: " << reduce << endl;
+ cout << endl;
+
+ int const MaxDim(phase ? 1000 : MaxUnkn); // For reserving array space
+ int const MaxSats(30); // Same
+
+ const double gamma((L1_FREQ / L2_FREQ) * (L1_FREQ / L2_FREQ));
+ const double L1_F2(L1_FREQ * L1_FREQ), L2_F2(L2_FREQ * L2_FREQ);
+ const double LDIF_F2(L1_F2 - L2_F2);
+ // Weights for adding L1 and L2 pseudo-ranges into metric iono free
+ const double wt1(L1_F2 / LDIF_F2);
+ const double wt2(-L2_F2 / LDIF_F2);
+ double lambda1, lambda2;
+ if (phase) {
+ lambda1 = C_GPS_M / L1_FREQ;
+ lambda2 = C_GPS_M / L2_FREQ;
+ } else {
+ lambda1 = 1.0; // Already in metres
+ lambda2 = 1.0;
+ }
+
+ try {
+ if (!precise) {
+ try {
+ // Read nav file(s) and store unique list of ephemerides
+ string filename;
+ std::ifstream nav;
+ nav.open("vecsol.nav", ios::in);
+ while (nav >> filename) {
+ cout << "Nav file: " << filename;
+ // Comment:
+ if (filename[0] == '#') {
+ cout << " skipped" << endl;
+ nav.getline(s, 80);
+ } else {
+ cout << endl;
+ RinexNavStream rnffs(filename.c_str());
+ rnffs.exceptions(ios::failbit);
+ RinexNavData rne;
+ RinexNavHeader hdr;
+
+ rnffs >> hdr;
+ if (iono)
+ ion.addIonoModel(DayTime::BEGINNING_OF_TIME,
+ IonoModel(hdr.ionAlpha, hdr.ionBeta));
+ while (rnffs >> rne)
+ bcestore.addEphemeris(rne);
+ }
+ }
+ bcestore.SearchNear();
+ }
+ catch(...) {
+ cerr << "Something wrong with nav files." << endl << endl;
+ exit(-1);
+ }
+ } else {
+ try{
+ // Precise ephemerides:
+ string filename;
+ std::ifstream eph;
+ eph.open("vecsol.eph", ios::in);
+ while (eph >> filename) {
+ cout << "Eph file: " << filename;
+ // Comment:
+ if (filename[0] == '#') {
+ cout << " skipped" << endl;
+ eph.getline(s, 80);
+ } else {
+ cout << endl;
+ sp3store.loadFile(filename.c_str());
+ }
+ }
+ sp3store.dump(1, cout);
+ }
+ catch(...) {
+ cerr << "Something wrong with SP3 files." << endl << endl;
+ exit(-1);
+ }
+ }
+
+ gpstk::Matrix <double> x0(MaxDim, 3, 0.0);
+ gpstk::Vector <FixType> fixed(MaxDim, FIX_NONE);
+ gpstk::Vector <SatID> FromSat(MaxDim), ToSat(MaxDim);
+
+ // Get station positions from RINEX headers:
+ RinexObsHeader roh1, roh2;
+
+ try {
+ RinexObsStream roffs1(argv[1]);
+ RinexObsStream roffs2(argv[2]);
+ roffs1.exceptions(ios::failbit);
+ roffs2.exceptions(ios::failbit);
+
+ roffs1 >> roh1;
+ roffs2 >> roh2;
+ }
+ catch(...) {
+ cerr << "Something wrong with obs files." << endl << endl;
+ exit(-1);
+ }
+ // Here we should input pre-given coordinates (if any) that
+ // will override those from the RINEX header
+ bool coords = true;
+ string const name1(roh1.markerName);
+ string const name2(roh2.markerName);
+ Position XYZ1, XYZ2;
+ std::ifstream coord1, coord2;
+ try {
+ coord1.exceptions(ios::failbit);
+ coord2.exceptions(ios::failbit);
+ coord1.open((name1 + ".crd").c_str(), ios::in);
+ coord2.open((name2 + ".crd").c_str(), ios::in);
+ }
+ catch(...) {
+ cout << endl;
+ cout << "Did not find / cannot open coordinate files." << endl << endl;
+ coords = false;
+ }
+ if (coords) {
+ // Here the given coordinates (of BENCHMARK!) are used if available:
+ coord1 >> XYZ1[0] >> XYZ1[1] >> XYZ1[2];
+ coord2 >> XYZ2[0] >> XYZ2[1] >> XYZ2[2];
+ coord1.close();
+ coord2.close();
+ roh1.antennaPosition = XYZ1;
+ roh2.antennaPosition = XYZ2;
+ cout << "Positions : " << setprecision(12) << Triple(XYZ1) << endl;
+ cout << "From files : " << setprecision(12) << Triple(XYZ2) << endl << endl;
+ }
+ Triple AO1 = Rotate(roh1.antennaOffset, roh1.antennaPosition);
+ Triple AO2 = Rotate(roh2.antennaOffset, roh2.antennaPosition);
+
+ cout << "Geocentric : " << AO1 << endl
+ << "antenna offsets : " << AO2 << endl << endl;
+
+ // Receiver provided offset to be re-subtracted
+ bool apply_clockOffset1(roh1.receiverOffsetValid &&
+ roh1.receiverOffset);
+ bool apply_clockOffset2(roh2.receiverOffsetValid &&
+ roh2.receiverOffset);
+ // However, sometimes the header record is missing and yet the
+ // data contains valid offsets (Huh? Ask Werner).
+ // (WinPrism's Ashtech rinexer seems to need this, and
+ // doesn't seem to harm otherwise)
+ apply_clockOffset1 = true;
+ apply_clockOffset2 = true;
+
+#if 0
+ // Low hanging fruit
+ Triple PT1 =
+ permanentTide(Position(roh1.antennaPosition).geodeticLatitude());
+ Triple PT2 =
+ permanentTide(Position(roh2.antennaPosition).geodeticLatitude());
+ cout << "Tides:" << PT1 << " " << PT2 << endl;
+#else
+ Triple PT1, PT2;
+#endif
+ // t1, t2 represent now antenna (ARP) positions.
+ // (roh1/2.antennaPosition is named wrong, it is benchmark pos!)
+ Position t1(roh1.antennaPosition + AO1, Position::Cartesian);
+ Position t2(roh2.antennaPosition + AO2, Position::Cartesian);
+
+ cout << "Data interval: " << roh1.interval << "," <<
+ roh2.interval << endl;
+ cout << "Generated by: " <<
+ roh1.fileProgram << ", " << roh2.fileProgram << endl;
+
+ // How was this RINEX generated?
+ bool javad1 = roh1.fileProgram.find("Pinnacle") != string::npos;
+ bool javad2 = roh2.fileProgram.find("Pinnacle") != string::npos;
+ // Note: we compute the reduction by comparing L1 with the
+ // computed range. This is only valid if L1, L2 were 'gauged' to
+ // pseudoranges, which is the case for Pinnacle RINEX. If not,
+ // we would have to use one of the code observables instead. See
+ // code further below.
+ if (javad1 || javad2) {
+ cout << "RINEX file was not reduced for clock offset." << endl;
+ cout << "We do the reduction ourselves." << endl << endl;
+ }
+
+ Position const t10(t1); // To keep unknowns invariant
+ Position const t20(t2);
+ Position Pos1, Pos2;
+
+ double crit(1.0);
+ double const limit = (phase ? 0.0001 : 0.001);
+ for (int l = 0; (crit > limit) && l < 25; l++) {
+ // Iteration loop. Important! The unknowns are expected to
+ // remain _identical_ across iterations.
+ cout << "Iteration: " << l << endl;
+
+ // Map pointing from PRN to obs. eq. element position
+ map <SatID, int> CommonSatsPrev;
+
+ SatID OldRefSat;
+
+ map <SatID, vector<double> > DDobsPrev;
+ map <SatID, double> SecsPrev;
+
+ // Open and read the observation files one epoch at a time.
+ // Compute a contribution to normal matrix and right hand
+ // side
+ RinexObsStream roffs1(argv[1]);
+ RinexObsStream roffs2(argv[2]);
+ roffs1.exceptions(ios::failbit);
+ roffs2.exceptions(ios::failbit);
+
+ RinexObsHeader dummy1, dummy2;
+ RinexObsData rod1, rod2;
+
+ // Only skip over header this time:
+ roffs1 >> dummy1;
+ roffs2 >> dummy2;
+
+ // Improve antenna positions from previous iteration:
+ if (l > 0) {
+ t1 = t1 + 0.5 * Pos1;
+ if (!vecmode)
+ t2 = t2 + 0.5 * Pos2;
+ }
+ Geodetic g1(t1, &geoid);
+ Geodetic g2(t2, &geoid);
+
+ // Output bench mark (not: antenna) positions: (Published
+ // GPS positions are always reduced for solid Earth tides)
+ cout << name1 << ": " << Position(Triple(t1) - AO1 - PT1) << endl
+ << name2 << ": " << Position(Triple(t2) - AO2 - PT2) << endl << endl;
+ // Print also geographic coords:
+ Position t1g(Triple(t1) - AO1 - PT1);
+ Position t2g(Triple(t2) - AO2 - PT2);
+ cout << name1 << ": " << t1g.asGeodetic() << endl
+ << name2 << ": " << t2g.asGeodetic() << endl;
+
+ // Update these for output at program end:
+ XYZ1 = t1g.asECEF();
+ XYZ2 = t2g.asECEF();
+
+ gpstk::Matrix <double> N(MaxDim, MaxDim, 0.0);
+ gpstk::Matrix <double> b(MaxDim, 3, 0.0);
+ int observations(0), rejections(0), rej_DD(0);
+ double TD_RMS(0), DD_RMS(0), Iono_RMS(0);
+ // points to _after_ the last unknown
+ int unknowns = MaxUnkn;
+
+ while (roffs1 >> rod1 && roffs2 >> rod2) { // Epoch loop
+ // Make sure we have a common epoch:
+ while (rod1.time > rod2.time + 0.1 && roffs2 >> rod2) { }
+ while (rod1.time + 0.1 < rod2.time && roffs1 >> rod1) { }
+ double sync_err = rod2.time.secOfDay() - rod1.time.secOfDay();
+ if (abs(sync_err) > 0.001) {
+ cout << "Synchronization Error: " <<
+ std::setprecision(6) << sync_err << " sec" << endl;
+ }
+ double Secs = rod1.time.secOfDay();
+
+ // Experimental for WinPrism's RINEX
+ if (apply_clockOffset1)
+ rod1.time -= rod1.clockOffset;
+ if (apply_clockOffset2)
+ rod2.time -= rod2.clockOffset;
+
+ if (rod1.epochFlag < 2 && rod2.epochFlag < 2)
+ // Observations are good
+ {
+ map <SatID, int> CommonSats;
+ CommonSats.clear();
+ vector <SatID> prnVec_1, prnVec_2;
+ vector <double> rangeVecL1_1, rangeVecL2_1;
+ vector <double> rangeVecL1_2, rangeVecL2_2;
+
+ // First station
+ stationData(rod1, phase, prnVec_1, rangeVecL1_1,
+ rangeVecL2_1);
+ // Second station
+ stationData(rod2, phase, prnVec_2, rangeVecL1_2,
+ rangeVecL2_2);
+
+ /// Process station pairs
+
+ // for construction of double diffs
+ SatID RefSat;
+ bool hasRefSat(false);
+
+ double ref_rdiffL1, ref_rdiffL2;
+ vector <double> ref_A(MaxUnkn);
+ gpstk::Matrix <double> A(MaxDim, MaxSats, 0.0);
+ gpstk::Matrix <double> Obs(MaxSats, 3, 0.0);
+ // For var-cov modelling
+ vector <double> Q(MaxSats),
+ Elev10(MaxSats), Elev20(MaxSats);
+ double Qref;
+ int nObs(0);
+
+ // Find out the highest satellite:
+ double best(0.0);
+ int bestIdx(0);
+ bool stickWithOld = false;
+ for (int i = 0; i != prnVec_2.size(); i++)
+ if (prnVec_2[i].id > 0) {
+
+ // Invariant over iterations! Uses t10, t20
+ double dummy = EPH_RANGE(CER2, rod2, t10,
+ prnVec_2[i]);
+ double const riseVel1 = CER2.svPosVel.v.dot(t10);
+ //double const riseVel1 =
+ // -CER2.svPosVel.v.dot(CER2.svPosVel.x);
+ Elev10[i] = CER2.elevation;
+ bool const elev1OK = CER2.elevation > refsat_elev;
+
+ dummy = EPH_RANGE(CER2, rod2, t20,
+ prnVec_2[i]);
+ double const riseVel2 = CER2.svPosVel.v.dot(t20);
+ //double const riseVel2 =
+ // -CER2.svPosVel.v.dot(CER2.svPosVel.x);
+ Elev20[i] = CER2.elevation;
+ bool const elev2OK = CER2.elevation > refsat_elev;
+
+ double const riseVel = 0.5 * (riseVel1 + riseVel2);
+
+ if (elev1OK && elev2OK
+ && riseVel > best
+ && !stickWithOld) {
+ best = riseVel;
+ bestIdx = i;
+ }
+ // Hang on to same ref sat if still high enough
+ if (OldRefSat == prnVec_2[i]
+ && CER2.elevation > refsat_elev) {
+ bestIdx = i;
+ stickWithOld = true;
+ }
+ }
+
+ for (int ii = 0; ii != prnVec_2.size(); ii++) {
+ // Reshuffle...
+ int i = (ii + bestIdx) % prnVec_2.size();
+ if (prnVec_2[i].id > 0
+ && Elev10[i] > cutoff_elev
+ && Elev20[i] > cutoff_elev) {
+ double r2 = EPH_RANGE(CER2, rod2, t2,
+ prnVec_2[i]);
+ double trop2 =
+ trop.correction(t2, CER2.svPosVel.x, rod2.time);
+ r2 += trop2;
+
+ for (int j = 0; j != prnVec_1.size(); j++) {
+ if (prnVec_1[j].id > 0
+ && prnVec_1[j].id == prnVec_2[i].id)
+ {
+ // This sat is visible from both
+ // stations
+ double r1 = EPH_RANGE(CER1, rod1, t1,
+ prnVec_1[j]);
+ double trop1 = trop.correction(t1,
+ CER1.svPosVel.x, rod1.time);
+ r1 += trop1;
+
+ // Between-station diffs to each satellite
+ double diffL1 = rangeVecL1_1[j] - rangeVecL1_2[i];
+ double diffL2 = rangeVecL2_1[j] - rangeVecL2_2[i];
+ // Subtract out approx values; this
+ // value now roughly reflects the
+ // inter-station bias difference and
+ // is thus nearly the same for all
+ // sats
+ double rdiffL1 = lambda1 * diffL1 - (r1 - r2);
+ double rdiffL2 = lambda2 * diffL2 - (r1 - r2);
+
+ // The clock offset problem for
+ // Javad / Pinnacle:
+ double rr1, rr2;
+ // Range rates:
+ if (javad1)
+ rr1 = CER1.svPosVel.v.dot(CER1.cosines);
+ if (javad2)
+ rr2 = CER2.svPosVel.v.dot(CER2.cosines);
+ // Clock corrections:
+ double cc1 = lambda1 * rangeVecL1_1[j] - r1;
+ double cc2 = lambda1 * rangeVecL1_2[i] - r2;
+ rdiffL1 -= (rr1 * cc1 - rr2 * cc2) / C_GPS_M;
+ rdiffL2 -= (rr1 * cc1 - rr2 * cc2) / C_GPS_M;
+
+ if (iono) {
+ // Ionospheric corrections:
+ double const
+ ionoL1_1 = ion.getCorrection(
+ rod1.time, g1, CER1.elevation,
+ CER1.azimuth, IonoModel::L1);
+ double const
+ ionoL2_1 = ion.getCorrection(
+ rod1.time, g1, CER1.elevation,
+ CER1.azimuth, IonoModel::L2);
+ double const
+ ionoL1_2 = ion.getCorrection(
+ rod2.time, g2, CER2.elevation,
+ CER2.azimuth, IonoModel::L1);
+ double const
+ ionoL2_2 = ion.getCorrection(
+ rod2.time, g2, CER2.elevation,
+ CER2.azimuth, IonoModel::L2);
+ // Apply them:
+ if (phase) {
+ rdiffL1 += ionoL1_1 - ionoL1_2;
+ rdiffL2 += ionoL2_1 - ionoL2_2;
+ } else {
+ rdiffL1 -= ionoL1_1 - ionoL1_2;
+ rdiffL2 -= ionoL2_1 - ionoL2_2;
+ }
+ }
+
+ vector <double> A_(MaxDim, 0.0);
+ // Store obs. coefficients for
+ // coordinates
+ for (int k = 0; k < 3; k++)
+ A_[k] = CER1.cosines[k];
+ if (!vecmode) {
+ for (int k = 3; k < 6; k++)
+ A_[k] = -CER2.cosines[k - 3];
+ }
+ // Tropo estimation
+ if (tropo) {
+ A_[MaxUnkn - 2] = trop1;
+ A_[MaxUnkn - 1] = -trop2;
+ }
+
+ // Weight coefficient of this obs:
+ double const q_ = 1.0 /
+ sin(DEG_TO_RAD * CER1.elevation) + 1.0 /
+ sin(DEG_TO_RAD * CER2.elevation);
+ // Build obs. coefs for satellite
+ // ambiguities
+ if (!hasRefSat) {
+ RefSat = prnVec_1[j];
+ hasRefSat = true;
+
+ // Ref sat change; invalidates
+ // unknowns
+ if (RefSat != OldRefSat) {
+ CommonSatsPrev.clear();
+ cout << "New ref sat:" <<
+ RefSat << endl;
+ }
+
+ ref_rdiffL1 = rdiffL1;
+ ref_rdiffL2 = rdiffL2;
+ Qref = q_;
+ for (int k = 0; k < MaxUnkn; k++)
+ ref_A[k] = A_[k];
+ } else {
+ // Construct inter-sat diffs
+ bool reject(false);
+ FixType fix(FIX_NONE);
+ vector <double> DDobs(3);
+ DDobs[1] = rdiffL1 - ref_rdiffL1;
+ DDobs[2] = rdiffL2 - ref_rdiffL2;
+
+ // iono free observable, unit metres
+ DDobs[0] =
+ wt1 * DDobs[1] + wt2 * DDobs[2];
+ for (int k = 0; k < MaxUnkn; k++)
+ A_[k] -= ref_A[k];
+
+ SatID ThisSat = prnVec_1[j];
+ if (CommonSatsPrev.find(ThisSat) ==
+ CommonSatsPrev.end()) {
+ // New satellite
+ CommonSats[ThisSat] = unknowns;
+ if (phase) {
+ FromSat[unknowns] = RefSat;
+ ToSat [unknowns] = ThisSat;
+ cout << endl << "New unknown "
+ << unknowns << " == "
+ << asString(FromSat[unknowns])
+ << " -> "
+ << asString(ToSat[unknowns])
+ << endl;
+
+ // create new DD ambiguity unknown
+ A_[unknowns] = 1.0;
+ // Initial approx. ambiguities
+ if (l == 0)
+ for (int k = 0; k < 3; k++)
+ x0(unknowns,k) =
+ DDobs[k];
+
+ for (int k = 0; k < 3; k++)
+ DDobs[k] -=
+ x0(unknowns,k);
+ unknowns++;
+ } else {
+ // Rough test double diffs
+ reject =
+ (std::abs(DDobs[0]) > DDrej);
+ }
+ // Initialize previous obs for
+ // triple diff comp
+ DDobsPrev[ThisSat] = DDobs;
+ SecsPrev[ThisSat] = Secs;
+ reject = false;
+ } else {
+
+ // Already known sat, copy forward
+ CommonSats[ThisSat] =
+ CommonSatsPrev[ThisSat];
+ if (phase) {
+ A_[CommonSats[ThisSat]] = 1.0;
+ for (int k = 0; k < 3; k++)
+ DDobs[k] -=
+ x0(CommonSats[ThisSat],k);
+ }
+
+ // Triple difference testing
+
+ double timebase
+ = Secs - SecsPrev[ThisSat];
+ timebase =
+ (timebase > 10 * roh1.interval ?
+ 0.000001 : roh1.interval);
+ double res
+ = (DDobs[0] -
+ DDobsPrev[ThisSat][0]) / timebase;
+ // Cycle slips will show up here
+ // over 30 s as 0.0226 and
+ // 0.0131, respectively.
+ reject =
+ (std::abs(res) *
+ sqrt(2.0 / (Qref + q_)) >
+ (phase ? PTDrej : CTDrej));
+
+ // Include rough DD test
+ // too: this occurs esp.
+ // with newly appearing sats
+ if (!reject &&
+ std::abs(DDobs[0]) > DDrej) {
+ if (debug)
+ cout << "DD rej:"
+ << DDobs[0];
+ rej_DD++;
+ reject = true;
+ }
+
+ if (!reject) {
+ // Accumulate statistics
+ TD_RMS += res * res;
+ DD_RMS +=
+ DDobs[0] * DDobs[0];
+ double Iono =
+ (DDobs[2] - DDobs[1])
+ / wt1;
+ Iono_RMS += Iono * Iono;
+
+ }
+ else {
+ rejections++;
+ }
+ if (debug) {
+ cout << ThisSat << ":";
+ if (reject)
+ cout << "REJ [" <<
+ Elev10[i] << ":" <<
+ Elev20[i] << "] ";
+ cout << setprecision(4) << res << " ";
+ }
+ observations++;
+ }
+
+ if (!reject) {
+ // Update "last good" obs
+ DDobsPrev[ThisSat] = DDobs;
+ SecsPrev[ThisSat] = Secs;
+
+ // Collect per-obs quantities
+ // into per-epoch tables
+ for (int k = 0; k < unknowns; k++)
+ A(k, nObs) = A_[k];
+ for (int k = 0; k < 3; k++)
+ Obs(nObs, k) = DDobs[k];
+ Q[nObs] = q_;
+ nObs++;
+ }
+
+ } // end other-than-ref sats processing
+
+ } // end sats visible from both stations
+ }
+ }
+ } // All obs for this epoch processed
+
+ if (nObs > 0) {
+ gpstk::Matrix <double> Qmat(nObs, nObs, 0.0);
+ for (int io = 0; io < nObs; io++) {
+ if (truecov)
+ for (int jo = 0; jo < nObs; jo++)
+ Qmat(io, jo) = Qref;
+ Qmat(io, io) += Q[io];
+ }
+ Qmat = gpstk::inverse(Qmat);
+
+ // Right hand side vector
+ for (int k = 0; k < unknowns; k++)
+ for (int io = 0; io < nObs; io++) {
+ for (int jo = 0; jo < nObs; jo++)
+ for (int ot = 0; ot < 3; ot++)
+ b(k, ot) += A(k, io) * Obs(jo, ot)
+ * Qmat(io, jo);
+
+ }
+
+ // Normal eqs fill-in with full weight matrix per-epoch
+ for (int k = 0; k < unknowns; k++) {
+ for (int io = 0; io < nObs; io++) {
+ if (A(k, io) != 0.0) { // Optimize
+ for (int m = 0; m < unknowns; m++) {
+ for (int jo = 0; jo < nObs; jo++)
+ N(k, m) += A(k, io) * A(m, jo) *
+ Qmat(io, jo);
+ }
+ }
+ }
+ }
+ } // Normals building
+
+ cout << endl;
+ cout << "epoch " << rod1.time;
+ cout << " unkn " << unknowns;
+ cout << " obs " << nObs;
+ cout << " sats " << CommonSats.size() << endl;
+
+ CommonSatsPrev = CommonSats;
+ OldRefSat = RefSat;
+
+ } // End usable data
+
+ } // End loop through each epoch
+
+ cout << endl;
+ cout << "Total unknowns: " << unknowns << endl;
+ cout << "Observations: " << observations << endl;
+ cout << "Rejected: " << rejections;
+ cout << " or " << 100.0 * rejections / observations << "%" << endl;
+ cout << " of which DD-based: " << rej_DD;
+ cout << " or " << 100.0 * rej_DD / observations << "%" << endl;
+ cout << "Triple-diff RMS [m/s]: " << sqrt(TD_RMS /
+ (observations -
+ rejections)) << endl;
+ float const DDrms = sqrt(DD_RMS / (observations - rejections));
+ cout << "Double-diff RMS [m]: " << DDrej << endl;
+ // Three-sigma criterion, generous:
+ DDrej = 2.0 * 3.0 * DDrms;
+ cout << "Iono RMS on L1 [m]: " << sqrt(Iono_RMS /
+ (observations -
+ rejections)) <<
+ endl << endl;
+
+ if (debug) {
+ cout << "Start of b vector:" << setprecision(10) << endl;
+ cout << "b0: " << b(0,0) << " " << b(1,0) << " " << b(2,0)
+ << endl;
+ cout << "b1: " << b(0,1) << " " << b(1,1) << " " << b(2,1)
+ << endl;
+ cout << "b2: " << b(0,2) << " " << b(1,2) << " " << b(2,2)
+ << endl << endl;
+ }
+
+ // Here we solve the normal equations and print solution
+ gpstk::Matrix <double> NN(unknowns, unknowns);
+ gpstk::Matrix <double> bb(unknowns, 3);
+ Solve(N, b, NN, bb, SOLVE_COORDS, fixed, MaxUnkn, unknowns,
+ tropo);
+
+ cout << "Weight coefficient matrix:" << endl;
+ for (int i = 0; i < MaxUnkn; i++) {
+ for (int j = 0; j < MaxUnkn; j++) {
+ cout << setw(10) << NN(i, j) << " ";
+ }
+ cout << endl;
+ }
+ cout << endl;
+
+ // Solution:
+ gpstk::Matrix <double> sol = NN * bb;
+
+ cout << "Solution (correction to inter-station vector):" <<
+ setprecision(5) << endl;
+ Triple PosCorr0 = Triple(sol(0,0), sol(1,0), sol(2,0));
+ Triple PosCorr1 = Triple(sol(0,1), sol(1,1), sol(2,1));
+ Triple PosCorr2 = Triple(sol(0,2), sol(1,2), sol(2,2));
+ if (ionoFree)
+ Pos1 = PosCorr0;
+ else
+ Pos1 = 0.5 * (PosCorr1 + PosCorr2);
+ if (!vecmode) {
+ PosCorr0 = PosCorr0 - Triple(sol(3,0), sol(4,0), sol(5,0));
+ PosCorr1 = PosCorr1 - Triple(sol(3,1), sol(4,1), sol(5,1));
+ PosCorr2 = PosCorr2 - Triple(sol(3,2), sol(4,2), sol(5,2));
+ if (ionoFree)
+ Pos2 = Pos1 - Position(PosCorr0);
+ else
+ Pos2 = Pos1 + 0.5 * Position(PosCorr1 + PosCorr2);
+ }
+ cout << "Iono free: " << PosCorr0 << endl;
+ cout << "Freq. 1: " << PosCorr1 << endl;
+ cout << "Freq. 2: " << PosCorr2 << endl;
+ cout << endl;
+
+ // Manhattan distance for iteration stop (is there a
+ // std method for this?):
+ if (ionoFree)
+ crit = std::abs(PosCorr0[0]) + std::abs(PosCorr0[1])
+ + std::abs(PosCorr0[2]);
+ else
+ crit = 0.5 *
+ (std::abs(PosCorr1[0]) + std::abs(PosCorr1[1])
+ + std::abs(PosCorr1[2]) + std::abs(PosCorr2[0])
+ + std::abs(PosCorr2[1]) + std::abs(PosCorr2[2]));
+
+ cout << "Standard deviations (unscaled):" << endl;
+ for (int k = 0; k < MaxUnkn; k++)
+ cout << sqrt(NN(k, k)) << " ";
+ cout << endl;
+
+ // Again: published vectors must be conventionally
+ // reduced for tide.
+ // And published vector must be inter-benchmark:
+ Position vec = Position(Triple(t1) - AO1 - PT1)
+ - Position(Triple(t2) - AO2 - PT2);
+ cout << "A priori vector:" << endl << vec << endl;
+ cout << "A posteriori vector:" << endl
+ << Position(Triple(vec) + PosCorr0)
+ << " (Iono free)" << endl;
+ Triple PosCorrMean(PosCorr1 + PosCorr2);
+ PosCorrMean = 0.5 * PosCorrMean;
+ cout << Position(Triple(vec) + PosCorrMean)
+ << " (L1 + L2)" << endl;
+ cout << endl;
+
+ if (tropo) {
+ cout <<
+ "Tropospheric corr. parameters (fraction of full effect):"
+ << endl;
+
+ cout << sol(MaxUnkn - 2, 0) << " " << sol(MaxUnkn - 1, 0) << endl;
+ cout << "Standard deviations (unscaled):" << endl;
+ cout << sqrt(NN(MaxUnkn - 2, MaxUnkn - 2)) << " "
+ << sqrt(NN(MaxUnkn - 1, MaxUnkn - 1)) << endl <<
+ endl;
+ }
+
+ // Ambiguity fixing on the unknowns, keeping coords as known:
+ if (phase) {
+ Solve(N, b, NN, bb, SOLVE_AMBS, fixed, MaxUnkn,
+ unknowns, tropo);
+ sol = NN * bb;
+
+ // Here we use the relationships between DD ambiguities,
+ // e.g. (G18-G6) - (G26-G6) - (G26-G18) = 0
+ // for a condition equation adjustment on NN, bb
+ int k, j, l, dir1, dir2, dir3;
+ int closures = 0;
+ SatID Free1, Free2;
+ for (k = MaxUnkn; k < unknowns; k++)
+ for (j = k + 1; j < unknowns; j++) {
+ dir1 = 0;
+ if (FromSat[k] == FromSat[j]) {
+ dir1 = 1;
+ dir2 = -1;
+ Free1 = ToSat[k];
+ Free2 = ToSat[j];
+ }
+ if (ToSat[k] == ToSat[j]) {
+ dir1 = -1;
+ dir2 = 1;
+ Free1 = FromSat[k];
+ Free2 = FromSat[j];
+ }
+ if (FromSat[k] == ToSat[j]) {
+ dir1 = 1;
+ dir2 = 1;
+ Free1 = ToSat[k];
+ Free2 = FromSat[j];
+ }
+ if (ToSat[k] == FromSat[j]) {
+ dir1 = -1;
+ dir2 = -1;
+ Free1 = FromSat[k];
+ Free2 = ToSat[j];
+ }
+
+ if (dir1 != 0)
+ for (l = j + 1; l < unknowns; l++) {
+ dir3 = 0;
+ if (Free1 == FromSat[l] && Free2 == ToSat[l])
+ dir3 = 1;
+ if (Free1 == ToSat[l] && Free2 == FromSat[l])
+ dir3 = -1;
+ if (reduce && dir3 != 0) {
+ if (Reduce(NN, sol, x0, k, j, l,
+ dir1, dir2, dir3,
+ MaxUnkn, unknowns))
+ closures++;
+ }
+ }
+ }
+
+ cout << endl << "No. of closures: " << closures << endl << endl;
+ int fixedunknowns = 0;
+ int widelanes = 0;
+ cout << "DD bias fixes (fractional cycles):" << endl;
+ for (int k = MaxUnkn; k < unknowns; k++) {
+ cout << "[" << setprecision(8) << sqrt(NN(k,k)) << "] ";
+ cout << k << " (";
+ cout << asString(FromSat[k]) << " -> "
+ << asString(ToSat[k]) << "): ";
+ vector <double> x0vec(3);
+ x0vec[1] = x0(k, 1) + sol(k, 1);
+ x0vec[2] = x0(k, 2) + sol(k, 2);
+ FixType f = phaseCycles(x0vec, lambda1, lambda2, wt1, wt2);
+ // remember to correct iono-free too
+ x0(k, 0) = wt1 * x0vec[1] + wt2 * x0vec[2];
+ x0(k, 1) = x0vec[1];
+ x0(k, 2) = x0vec[2];
+ if (f == FIX_BOTH)
+ fixedunknowns++;
+ if (f == FIX_WIDELANE)
+ widelanes++;
+ fixed[k] = f;
+ }
+ cout << endl;
+ cout << "Fixed: " << fixedunknowns << " "
+ << 100.0 * fixedunknowns / (unknowns - MaxUnkn) << "%" << endl;
+ cout << "Widelanes: " << widelanes << " "
+ << 100.0 * widelanes / (unknowns - MaxUnkn) << "%" << endl;
+ cout << endl;
+ }
+
+ } // iteration loop end
+
+ cout << "Writing coordinate(s) to file(s)..." << endl;
+ std::ofstream coord1o, coord2o;
+ try {
+ coord1o.exceptions(ios::failbit);
+ coord1o.open((name1 + ".crd").c_str(), ios::out | ios::trunc);
+ coord1o << setprecision(12) <<
+ XYZ1[0] << ' ' << XYZ1[1] << ' ' << XYZ1[2] << endl;
+ coord1o.close();
+ if (!vecmode || !coords) {
+ coord2o.exceptions(ios::failbit);
+ coord2o.open((name2 + ".crd").c_str(), ios::out | ios::trunc);
+ coord2o << setprecision(12) <<
+ XYZ2[0] << ' ' << XYZ2[1] << ' ' << XYZ2[2] << endl;
+ coord2o.close();
+ }
+ }
+ catch(...) {
+ cerr << "Exception writing coordinate file(s)" << endl;
+ }
+
+ cout << "Finished." << endl;
+ }
+ catch(Exception & e) {
+ cerr << e << endl;
+ }
+ catch(...) {
+ cerr << "Caught an unexpected exception." << endl;
+ }
+
+ exit(0);
+
+ }
+
+
diff --git a/dev/apps/differential/vecsol.eph b/dev/apps/differential/vecsol.eph
new file mode 100644
index 0000000..e8d2581
--- /dev/null
+++ b/dev/apps/differential/vecsol.eph
@@ -0,0 +1,15 @@
+# The sp3 precise ephemeris file. Use # in first pos for comment
+igs11172.sp3
+igs11173.sp3
+igs11174.sp3
+igs11175.sp3
+igs11176.sp3
+# Day 6 of GPS week 1323 is May 21, 2005
+igs13235.sp3
+igs13236.sp3
+#gfz13236.sp3
+igs13240.sp3
+# rapid orbits 7-8 sep 2005
+igr13393.sp3
+igr13394.sp3
+igs13250.sp3
diff --git a/dev/apps/differential/vecsol.nav b/dev/apps/differential/vecsol.nav
new file mode 100644
index 0000000..430ebe5
--- /dev/null
+++ b/dev/apps/differential/vecsol.nav
@@ -0,0 +1,15 @@
+# Broadcast ephemeris file. Use # in first pos for comment
+# day 141 of 2005 is May 21
+brdc1410.05n
+brdc2510.05n
+brdc2500.05n
+# Sep 7
+SAHA2501.05N
+# Sep 8
+KUMP2511.05N
+# Mauri
+0058275h.03N
+6146275g.03N
+#
+kiru1550.05n
+mas11550.05n
diff --git a/trunk/apps/differential/vecsol.pdf b/dev/apps/differential/vecsol.pdf
similarity index 100%
rename from trunk/apps/differential/vecsol.pdf
rename to dev/apps/differential/vecsol.pdf
diff --git a/dev/apps/difftools/DiffFrame.hpp b/dev/apps/difftools/DiffFrame.hpp
new file mode 100644
index 0000000..7caeb27
--- /dev/null
+++ b/dev/apps/difftools/DiffFrame.hpp
@@ -0,0 +1,85 @@
+#pragma ident "$Id$"
+
+
+#ifndef DIFFFRAME_HPP
+#define DIFFFRAME_HPP
+
+#include "CommandOptionWithTimeArg.hpp"
+#include "BasicFramework.hpp"
+
+class DiffFrame : public gpstk::BasicFramework
+{
+public:
+ /**
+ * arg0 is the name of the executable from argv[0].
+ * type is a string with the type of file (i.e. "RINEX Obs").
+ * message is an extra message that gets passed to the
+ * program description.
+ */
+ DiffFrame(char* arg0,
+ const std::string& type,
+ const std::string& message = std::string())
+ : gpstk::BasicFramework(arg0,
+ "Diffs input " + type + " files. " + message),
+ timeOption('t', "time", "Start of time range to compare (default ="
+ " \"beginning of time\")"),
+ eTimeOption('e', "end-time", "End of time range to compare"
+ " (default = \"end of time\")"),
+ inputFileOption("An input " + type + " file.", true),
+ startTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ endTime(gpstk::DayTime::END_OF_TIME)
+ {
+ inputFileOption.setMaxCount(2);
+ timeOption.setMaxCount(1);
+ eTimeOption.setMaxCount(1);
+ timeOptions.addOption(&timeOption);
+ timeOptions.addOption(&eTimeOption);
+ }
+
+ virtual bool initialize(int argc, char* argv[]) throw()
+ {
+ if (!gpstk::BasicFramework::initialize(argc, argv))
+ {
+ return false;
+ }
+
+ if (inputFileOption.getCount() != 2)
+ {
+ std::cerr << "This program requires two input files." << std::endl;
+ return false;
+ }
+
+ if (timeOption.getCount())
+ {
+ startTime = timeOption.getTime()[0];
+ }
+
+ if (eTimeOption.getCount())
+ {
+ endTime = eTimeOption.getTime()[0];
+ }
+
+ if (startTime > endTime)
+ {
+ std::cerr << "End time can't precede start time." << std::endl;
+ return false;
+ }
+ return true;
+ }
+
+protected:
+ virtual void process() = 0;
+
+ /// start time for file record differencing
+ gpstk::CommandOptionWithSimpleTimeArg timeOption;
+ /// end time for file record differencing
+ gpstk::CommandOptionWithSimpleTimeArg eTimeOption;
+ /// if either of the time options are set
+ gpstk::CommandOptionGroupOr timeOptions;
+ gpstk::CommandOptionRest inputFileOption;
+
+ gpstk::DayTime startTime, endTime;
+};
+
+
+#endif
diff --git a/dev/apps/difftools/Jamfile b/dev/apps/difftools/Jamfile
new file mode 100644
index 0000000..1d18d67
--- /dev/null
+++ b/dev/apps/difftools/Jamfile
@@ -0,0 +1,12 @@
+# $Id$
+
+SubDir TOP apps difftools ;
+
+GPSLinkLibraries rowdiff rnwdiff rmwdiff ephdiff ficdiff : gpstk ;
+BonkForte ; # bleah.
+
+GPSMain rowdiff : rowdiff.cpp ;
+GPSMain rnwdiff : rnwdiff.cpp ;
+GPSMain rmwdiff : rmwdiff.cpp ;
+GPSMain ephdiff : ephdiff.cpp ;
+GPSMain ficdiff : ficdiff.cpp ;
diff --git a/dev/apps/difftools/Makefile.am b/dev/apps/difftools/Makefile.am
new file mode 100644
index 0000000..8d63dba
--- /dev/null
+++ b/dev/apps/difftools/Makefile.am
@@ -0,0 +1,11 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = rowdiff rnwdiff rmwdiff ephdiff ficdiff
+
+rowdiff_SOURCES = rowdiff.cpp
+rnwdiff_SOURCES = rnwdiff.cpp
+rmwdiff_SOURCES = rmwdiff.cpp
+ephdiff_SOURCES = ephdiff.cpp
+ficdiff_SOURCES = ficdiff.cpp
diff --git a/dev/apps/difftools/ephdiff.cpp b/dev/apps/difftools/ephdiff.cpp
new file mode 100644
index 0000000..198895b
--- /dev/null
+++ b/dev/apps/difftools/ephdiff.cpp
@@ -0,0 +1,360 @@
+#pragma ident "$Id$"
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICStream.hpp"
+#include "FICData.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "FileFilterFrame.hpp"
+
+#include "BasicFramework.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+struct EphDiffLessThan :
+ public std::binary_function<EngEphemeris, EngEphemeris, bool>
+{
+public:
+ bool operator() (const EngEphemeris& l, const EngEphemeris& r) const
+ {
+ if (l.getPRNID() < r.getPRNID())
+ return true;
+ else if (l.getPRNID() > r.getPRNID())
+ return false;
+ else if (l.getFullWeek() < r.getFullWeek())
+ return true;
+ else if (l.getFullWeek() > r.getFullWeek())
+ return false;
+ else if (l.getIODC() < r.getIODC())
+ return true;
+ else if (l.getIODC() > r.getIODC())
+ return false;
+ else if (l.getASAlert(1) < r.getASAlert(1))
+ return true;
+ else if (l.getASAlert(1) > r.getASAlert(1))
+ return false;
+ else if (l.getASAlert(2) < r.getASAlert(2))
+ return true;
+ else if (l.getASAlert(2) > r.getASAlert(2))
+ return false;
+ else if (l.getASAlert(3) < r.getASAlert(3))
+ return true;
+ else if (l.getASAlert(3) > r.getASAlert(3))
+ return false;
+
+ return false;
+ }
+};
+
+struct EphDiffEquals :
+ public std::binary_function<EngEphemeris, EngEphemeris, bool>
+{
+public:
+ bool operator() (const EngEphemeris& l, const EngEphemeris& r) const
+ {
+ if ( (l.getPRNID() == r.getPRNID()) &&
+ (l.getIODC() == r.getIODC()) )
+ return true;
+ return false;
+ }
+};
+
+struct EphDiffFinder :
+ public std::unary_function<EngEphemeris, bool>
+{
+public:
+ EphDiffFinder(const EngEphemeris& e)
+ : PRN(e.getPRNID()), IODC(e.getIODC())
+ {}
+
+ bool operator() (const EngEphemeris& l) const
+ {
+ if ( (l.getPRNID() == PRN) && (l.getIODC() == IODC) )
+ return true;
+ return false;
+ }
+
+private:
+ short PRN;
+ double IODC;
+};
+
+class EphDiff : public BasicFramework
+{
+public:
+ EphDiff(char* arg0);
+ virtual bool initialize(int argc, char* argv[]) throw();
+
+protected:
+ virtual void process();
+
+ void fillFIC(FileFilterFrame<FICStream, FICData>& ff,
+ vector<EngEphemeris>& l);
+ void fillRINEX(FileFilterFrame<RinexNavStream, RinexNavData>& ff,
+ vector<EngEphemeris>& l);
+
+private:
+ CommandOptionWithAnyArg ficFileOption;
+ CommandOptionWithAnyArg rinexFileOption;
+
+ string file1, file2;
+
+ vector<EngEphemeris> file1list, file2list;
+};
+
+EphDiff::EphDiff(char* arg0)
+ : BasicFramework(arg0, "Compares the contents of two files with ephemeris data - either file can be RINEX or FIC"),
+ ficFileOption('f',
+ "fic",
+ "Name of an input FIC file.",
+ false),
+ rinexFileOption('r',
+ "rinex",
+ "Name of an input RINEX NAV file",
+ false)
+{
+}
+
+bool EphDiff::initialize(int argc, char* argv[]) throw()
+{
+ if(!BasicFramework::initialize(argc, argv))
+ {
+ return false;
+ }
+
+ // check the command options for 2 input files
+ int ficCount = ficFileOption.getCount();
+ int rinexCount = rinexFileOption.getCount();
+
+ if ( ((ficCount == 2) && (rinexCount != 0)) ||
+ ((ficCount == 1) && (rinexCount != 1)) ||
+ ((ficCount == 0) && (rinexCount != 2)) )
+ {
+ cout << "Exactly two input files must be specified on the command line"
+ << endl
+ << " ephdiff is ending..." << endl
+ << endl;
+ return false;
+ }
+
+ // open the files
+
+ // in the case of 1 FIC and 1 rinex file, make sure the first file
+ // is chosen correctly...
+ if ( (ficCount == 1) && (rinexCount == 1) )
+ {
+ string ficname = ficFileOption.getValue()[0];
+ string rinexname = rinexFileOption.getValue()[0];
+
+ FileFilterFrame<FICStream, FICData> ficdata(ficname);
+ FileFilterFrame<RinexNavStream, RinexNavData> rinexdata(rinexname);
+
+ if (ficFileOption.getOrder() < rinexFileOption.getOrder())
+ {
+ file1 = ficname;
+ file2 = rinexname;
+ fillFIC(ficdata, file1list);
+ fillRINEX(rinexdata, file2list);
+ }
+ else
+ {
+ file1 = rinexname;
+ file2 = ficname;
+ fillRINEX(rinexdata, file1list);
+ fillFIC(ficdata, file2list);
+ }
+
+ }
+ else if (ficCount == 2)
+ {
+ file1 = ficFileOption.getValue()[0];
+ FileFilterFrame<FICStream, FICData> fic1(file1);
+ file2 = ficFileOption.getValue()[1];
+ FileFilterFrame<FICStream, FICData> fic2(file2);
+
+ fillFIC(fic1, file1list);
+ fillFIC(fic2, file2list);
+ }
+ else // if (rinexCount == 2)
+ {
+ file1 = rinexFileOption.getValue()[0];
+ FileFilterFrame<RinexNavStream, RinexNavData> rn1(file1);
+ file2 = rinexFileOption.getValue()[1];
+ FileFilterFrame<RinexNavStream, RinexNavData> rn2(file2);
+
+ fillRINEX(rn1, file1list);
+ fillRINEX(rn2, file2list);
+ }
+
+ return true;
+}
+
+void EphDiff::process()
+{
+ // first sort and filter the lists
+ stable_sort(file1list.begin(), file1list.end(), EphDiffLessThan());
+ stable_sort(file2list.begin(), file2list.end(), EphDiffLessThan());
+
+ vector<EngEphemeris>::iterator listitr;
+
+ listitr = unique(file1list.begin(), file1list.end(), EphDiffEquals());
+ file1list.erase(listitr, file1list.end());
+
+ listitr = unique(file2list.begin(), file2list.end(), EphDiffEquals());
+ file2list.erase(listitr, file2list.end());
+
+ // for each element in the first list, try to find a match in the
+ // second list. if a match is found, compare the data. otherwise
+ // add to the unmatchedData list.
+ vector<EngEphemeris> unmatchedData;
+
+ while (!file1list.empty())
+ {
+ listitr = find_if(file2list.begin(),
+ file2list.end(),
+ EphDiffFinder(file1list[0]));
+
+ if (listitr != file2list.end())
+ {
+ // compare the data
+
+ // delete the data so we don't search for it again
+ file2list.erase(listitr);
+ }
+ else
+ unmatchedData.push_back(file1list[0]);
+
+ file1list.erase(file1list.begin());
+ }
+
+ // that's all the processing... now just write the results
+ cout << "Data in " << file1 << " not found in " << file2 << ": " << endl;
+
+ if (!unmatchedData.empty())
+ {
+ listitr = unmatchedData.begin();
+ while (listitr != unmatchedData.end())
+ {
+ (*listitr).dump(cout << endl);
+ listitr++;
+ }
+ }
+ else
+ cout << " All data in " << file1 << " was found in " << file2 << "."
+ << endl;
+
+ cout << endl;
+ cout << "Data in " << file2 << " not found in " << file1 << ": " << endl;
+
+ if (!file2list.empty())
+ {
+ listitr = file2list.begin();
+ while (listitr != file2list.end())
+ {
+ (*listitr).dump(cout << endl);
+ listitr++;
+ }
+ }
+ else
+ cout << " All data in " << file2 << " was found in " << file1 << "."
+ << endl;
+
+}
+
+void EphDiff::fillFIC(FileFilterFrame<FICStream, FICData>& ff,
+ vector<EngEphemeris>& l)
+{
+ list<FICData>& ficlist = ff.getData();
+
+ list<FICData>::iterator itr = ficlist.begin();
+
+ while (itr != ficlist.end())
+ {
+ if ((*itr).blockNum == 9)
+ l.push_back(*itr);
+ itr++;
+ }
+}
+
+void EphDiff::fillRINEX(FileFilterFrame<RinexNavStream, RinexNavData>& ff,
+ vector<EngEphemeris>& l)
+{
+ list<RinexNavData>& ficlist = ff.getData();
+
+ list<RinexNavData>::iterator itr = ficlist.begin();
+
+ while (itr != ficlist.end())
+ {
+ l.push_back(EngEphemeris(*itr));
+ itr++;
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ EphDiff ed(argv[0]);
+ if (!ed.initialize(argc, argv))
+ return 0;
+ if (!ed.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/difftools/ficdiff.cpp b/dev/apps/difftools/ficdiff.cpp
new file mode 100644
index 0000000..d567188
--- /dev/null
+++ b/dev/apps/difftools/ficdiff.cpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+#include "FICFilterOperators.hpp"
+#include "FileFilterFrame.hpp"
+
+#include "DiffFrame.hpp"
+#include "FICData.hpp"
+#include "FICStream.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class FICDiff : public DiffFrame
+{
+public:
+ FICDiff(char* arg0)
+ : DiffFrame(arg0,
+ std::string("binary FIC"))
+ {}
+
+protected:
+ virtual void process();
+};
+
+void FICDiff::process()
+{
+ try
+ {
+ FileFilterFrame<FICStream, FICData> ff1(inputFileOption.getValue()[0]);
+ FileFilterFrame<FICStream, FICData> ff2(inputFileOption.getValue()[1]);
+
+ ff1.sort(FICDataOperatorLessThanFull());
+ ff2.sort(FICDataOperatorLessThanFull());
+
+ pair< list<FICData>, list<FICData> > difflist =
+ ff1.diff(ff2, FICDataOperatorLessThanFull());
+
+ if (difflist.first.empty() && difflist.second.empty())
+ exit(0);
+
+ list<FICData>::iterator itr = difflist.first.begin();
+ while (itr != difflist.first.end())
+ {
+ (*itr).dump(cout << '<');
+ itr++;
+ }
+
+ cout << endl;
+
+ itr = difflist.second.begin();
+ while (itr != difflist.second.end())
+ {
+ (*itr).dump(cout << '>');
+ itr++;
+ }
+
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl
+ << endl
+ << "Terminating.." << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl
+ << endl
+ << "Terminating.." << endl;
+ }
+ catch(...)
+ {
+ cout << "Unknown exception... terminating..." << endl;
+ }
+
+}
+
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ FICDiff m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 0;
+}
diff --git a/dev/apps/difftools/rmwdiff.cpp b/dev/apps/difftools/rmwdiff.cpp
new file mode 100644
index 0000000..1c32612
--- /dev/null
+++ b/dev/apps/difftools/rmwdiff.cpp
@@ -0,0 +1,222 @@
+#pragma ident "$Id$"
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileFilterFrameWithHeader.hpp"
+
+#include "RinexMetData.hpp"
+#include "RinexMetStream.hpp"
+#include "RinexMetFilterOperators.hpp"
+
+#include "DiffFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class RMWDiff : public DiffFrame
+{
+public:
+ RMWDiff(char* arg0)
+ : DiffFrame(arg0,
+ std::string("RINEX Met"))
+ {}
+
+protected:
+ virtual void process();
+};
+
+
+void RMWDiff::process()
+{
+ try
+ {
+ FileFilterFrameWithHeader<RinexMetStream, RinexMetData, RinexMetHeader>
+ ff1(inputFileOption.getValue()[0]), ff2(inputFileOption.getValue()[1]);
+
+ // find the obs data intersection
+ RinexMetHeaderTouchHeaderMerge merged;
+
+ // no data? FIX make this program faster.. if one file
+ // doesn't exist, there's little point in reading any.
+ if (ff1.emptyHeader())
+ cerr << "No header information for " << inputFileOption.getValue()[0]
+ << endl;
+ if (ff2.emptyHeader())
+ cerr << "No header information for " << inputFileOption.getValue()[1]
+ << endl;
+ if (ff1.emptyHeader() || ff2.emptyHeader())
+ {
+ cerr << "Check that files exist." << endl;
+ cerr << "diff failed." << endl;
+ exit(1);
+ }
+
+ merged(ff1.frontHeader());
+ merged(ff2.frontHeader());
+
+ set<RinexMetHeader::RinexMetType> intersection = merged.obsSet;
+
+ cout << "Comparing the following fields (other header data is ignored):" << endl;
+ set<RinexMetHeader::RinexMetType>::iterator m = intersection.begin();
+ while (m != intersection.end())
+ {
+ cout << RinexMetHeader::convertObsType(*m) << ' ';
+ m++;
+ }
+ cout << endl;
+
+ if (timeOptions.getCount())
+ {
+ ff1.filter(RinexMetDataFilterTime(startTime, endTime));
+ ff2.filter(RinexMetDataFilterTime(startTime, endTime));
+ }
+
+ ff1.sort(RinexMetDataOperatorLessThanFull(intersection));
+ ff2.sort(RinexMetDataOperatorLessThanFull(intersection));
+
+ pair< list<RinexMetData>, list<RinexMetData> > difflist =
+ ff1.diff(ff2, RinexMetDataOperatorLessThanFull(intersection));
+
+ if (difflist.first.empty() && difflist.second.empty())
+ exit(0);
+
+ list<RinexMetData>::iterator firstitr = difflist.first.begin();
+ while (firstitr != difflist.first.end())
+ {
+ bool matched = false;
+ list<RinexMetData>::iterator seconditr = difflist.second.begin();
+ while ((!matched) && (seconditr != difflist.second.end()))
+ {
+ if (firstitr->time == seconditr->time)
+ {
+ cout << setw(3) << firstitr->time.DOYday() << ' '
+ << setw(10) << setprecision(0)
+ << firstitr->time.DOYsecond() << ' '
+ << ff1.frontHeader().markerName << ' '
+ << ff2.frontHeader().markerName << ' ';
+
+ for (m = intersection.begin(); m != intersection.end(); m++)
+ {
+ double diff = firstitr->data[*m];
+ diff -= seconditr->data[*m];
+
+ cout << setw(7) << setprecision(1) << fixed << diff << ' '
+ << RinexMetHeader::convertObsType(*m) << ' ';
+
+ }
+ cout << endl;
+
+ firstitr = difflist.first.erase(firstitr);
+ seconditr = difflist.second.erase(seconditr);
+ matched = true;
+ }
+ else
+ seconditr++;
+ }
+
+ if (!matched)
+ firstitr++;
+ }
+
+ list<RinexMetData>::iterator itr = difflist.first.begin();
+ while (itr != difflist.first.end())
+ {
+ (*itr).dump(cout << '<');
+ itr++;
+ }
+
+ cout << endl;
+
+ itr = difflist.second.begin();
+ while (itr != difflist.second.end())
+ {
+ (*itr).dump(cout << '>');
+ itr++;
+ }
+
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl
+ << endl
+ << "Terminating.." << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl
+ << endl
+ << "Terminating.." << endl;
+ }
+ catch(...)
+ {
+ cout << "Unknown exception... terminating..." << endl;
+ }
+}
+
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ RMWDiff m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/difftools/rnwdiff.cpp b/dev/apps/difftools/rnwdiff.cpp
new file mode 100644
index 0000000..294de81
--- /dev/null
+++ b/dev/apps/difftools/rnwdiff.cpp
@@ -0,0 +1,206 @@
+#pragma ident "$Id$"
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileFilterFrame.hpp"
+
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavFilterOperators.hpp"
+
+#include "DiffFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class RNWDiff : public DiffFrame
+{
+public:
+ RNWDiff(char* arg0)
+ : DiffFrame(arg0,
+ std::string("RINEX Nav"))
+ {}
+
+protected:
+ virtual void process();
+};
+
+
+void RNWDiff::process()
+{
+ try
+ {
+ FileFilterFrame<RinexNavStream, RinexNavData> ff1(inputFileOption.getValue()[0]);
+ FileFilterFrame<RinexNavStream, RinexNavData> ff2(inputFileOption.getValue()[1]);
+
+ ff1.sort(RinexNavDataOperatorLessThanFull());
+ ff2.sort(RinexNavDataOperatorLessThanFull());
+
+ pair< list<RinexNavData>, list<RinexNavData> > difflist =
+ ff1.diff(ff2, RinexNavDataOperatorLessThanFull());
+
+ if (difflist.first.empty() && difflist.second.empty())
+ exit(0);
+
+ list<RinexNavData>::iterator firstitr = difflist.first.begin();
+ while (firstitr != difflist.first.end())
+ {
+ bool matched = false;
+ list<RinexNavData>::iterator seconditr = difflist.second.begin();
+ while ((!matched) && (seconditr != difflist.second.end()))
+ {
+ // this will match the exact same nav message in both
+ // files, not just the same ephemeris broadcasted at
+ // different times.
+ if ((firstitr->time == seconditr->time) &&
+ (firstitr->PRNID == seconditr->PRNID) &&
+ (firstitr->HOWtime == seconditr->HOWtime) )
+ {
+ cout << fixed << setw(3) << firstitr->time.DOYday() << ' '
+ << setw(10) << setprecision(0)
+ << firstitr->time.DOYsecond() << ' '
+ << setw(19) << setprecision(12) << scientific
+ << (firstitr->af0 - seconditr->af0) << ' '
+ << (firstitr->af1 - seconditr->af1) << ' '
+ << (firstitr->af2 - seconditr->af2) << ' '
+ << (firstitr->IODE - seconditr->IODE) << ' '
+ << (firstitr->Crs - seconditr->Crs) << ' '
+ << (firstitr->dn - seconditr->dn) << ' '
+ << (firstitr->M0 - seconditr->M0) << ' '
+ << (firstitr->Cuc - seconditr->Cuc) << ' '
+ << (firstitr->ecc - seconditr->ecc) << ' '
+ << (firstitr->Cus - seconditr->Cus) << ' '
+ << (firstitr->Ahalf - seconditr->Ahalf) << ' '
+ << (firstitr->Toe - seconditr->Toe) << ' '
+ << (firstitr->Cic - seconditr->Cic) << ' '
+ << (firstitr->OMEGA0 - seconditr->OMEGA0) << ' '
+ << (firstitr->Cis - seconditr->Cis) << ' '
+ << (firstitr->i0 - seconditr->i0) << ' '
+ << (firstitr->Crc - seconditr->Crc) << ' '
+ << (firstitr->w - seconditr->w) << ' '
+ << (firstitr->OMEGAdot - seconditr->OMEGAdot) << ' '
+ << (firstitr->idot - seconditr->idot) << ' '
+ << (firstitr->codeflgs - seconditr->codeflgs) << ' '
+ << (firstitr->weeknum - seconditr->weeknum) << ' '
+ << (firstitr->L2Pdata - seconditr->L2Pdata) << ' '
+ << (firstitr->accuracy - seconditr->accuracy) << ' '
+ << (firstitr->health - seconditr->health) << ' '
+ << (firstitr->Tgd - seconditr->Tgd) << ' '
+ << (firstitr->IODC - seconditr->IODC) << ' '
+ << (firstitr->HOWtime - seconditr->HOWtime) << ' '
+ << (firstitr->fitint - seconditr->fitint)
+ << endl;
+
+ firstitr = difflist.first.erase(firstitr);
+ seconditr = difflist.second.erase(seconditr);
+ matched = true;
+ }
+ else
+ seconditr++;
+ }
+
+ if (!matched)
+ firstitr++;
+ }
+
+ list<RinexNavData>::iterator itr = difflist.first.begin();
+ while (itr != difflist.first.end())
+ {
+ (*itr).dump(cout << '<');
+ itr++;
+ }
+
+ cout << endl;
+
+ itr = difflist.second.begin();
+ while (itr != difflist.second.end())
+ {
+ (*itr).dump(cout << '>');
+ itr++;
+ }
+
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl
+ << endl
+ << "Terminating.." << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl
+ << endl
+ << "Terminating.." << endl;
+ }
+ catch(...)
+ {
+ cout << "Unknown exception... terminating..." << endl;
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ RNWDiff m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/difftools/rowdiff.cpp b/dev/apps/difftools/rowdiff.cpp
new file mode 100644
index 0000000..2035c88
--- /dev/null
+++ b/dev/apps/difftools/rowdiff.cpp
@@ -0,0 +1,204 @@
+#pragma ident "$Id$"
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileFilterFrameWithHeader.hpp"
+
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexObsFilterOperators.hpp"
+
+#include "DiffFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class ROWDiff : public DiffFrame
+{
+public:
+ ROWDiff(char* arg0)
+ : DiffFrame(arg0,
+ std::string("RINEX Obs"))
+ {}
+
+protected:
+ virtual void process();
+};
+
+void ROWDiff::process()
+{
+ gpstk::FileFilterFrameWithHeader<RinexObsStream, RinexObsData, RinexObsHeader>
+ ff1(inputFileOption.getValue()[0]), ff2(inputFileOption.getValue()[1]);
+
+ // find the obs data intersection
+ RinexObsHeaderTouchHeaderMerge merged;
+
+ // no data? FIX make this program faster.. if one file
+ // doesn't exist, there's little point in reading any.
+ if (ff1.emptyHeader())
+ cerr << "No header information for " << inputFileOption.getValue()[0]
+ << endl;
+ if (ff2.emptyHeader())
+ cerr << "No header information for " << inputFileOption.getValue()[1]
+ << endl;
+ if (ff1.emptyHeader() || ff2.emptyHeader())
+ {
+ cerr << "Check that files exist." << endl;
+ cerr << "diff failed." << endl;
+ exit(1);
+ }
+
+ merged(ff1.frontHeader());
+ merged(ff2.frontHeader());
+
+ cout << "Comparing the following fields (other header data is ignored):"
+ << endl;
+ set<RinexObsHeader::RinexObsType> intersection = merged.obsSet;
+ set<RinexObsHeader::RinexObsType>::iterator m = intersection.begin();
+ while (m != intersection.end())
+ {
+ cout << gpstk::RinexObsHeader::convertObsType(*m) << ' ';
+ m++;
+ }
+ cout << endl;
+
+ ff1.sort(RinexObsDataOperatorLessThanFull(intersection));
+ ff2.sort(RinexObsDataOperatorLessThanFull(intersection));
+
+ pair< list<RinexObsData>, list<RinexObsData> > difflist =
+ ff1.diff(ff2, RinexObsDataOperatorLessThanFull(intersection));
+
+ if (difflist.first.empty() && difflist.second.empty())
+ exit(0);
+
+ list<RinexObsData>::iterator firstitr = difflist.first.begin();
+ while (firstitr != difflist.first.end())
+ {
+ bool matched = false;
+ list<RinexObsData>::iterator seconditr = difflist.second.begin();
+ while ((!matched) && (seconditr != difflist.second.end()))
+ {
+ if (firstitr->time == seconditr->time)
+ {
+ RinexObsData::RinexSatMap::iterator fpoi, spoi;
+ for (fpoi = firstitr->obs.begin(); fpoi != firstitr->obs.end();
+ fpoi++)
+ {
+ cout << setw(3) << firstitr->time.DOYday() << ' '
+ << setw(10) << setprecision(0)
+ << firstitr->time.DOYsecond() << ' '
+ << ff1.frontHeader().markerName << ' '
+ << ff2.frontHeader().markerName << ' '
+ << setw(2) << fpoi->first << ' ';
+ spoi = seconditr->obs.find(fpoi->first);
+ for (m = intersection.begin(); m != intersection.end(); m++)
+ {
+ // no need to do a find, we're using the merged
+ // set of obses which guarantees that we have the
+ // obs in this record
+ double diff = (fpoi->second[*m]).data;
+ if (spoi != seconditr->obs.end())
+ diff -= (spoi->second[*m]).data;
+
+ cout << setw(14) << setprecision(3) << fixed << diff << ' '
+ << RinexObsHeader::convertObsType(*m) << ' ';
+
+ }
+ cout << endl;
+ }
+ firstitr = difflist.first.erase(firstitr);
+ seconditr = difflist.second.erase(seconditr);
+ matched = true;
+ }
+ else
+ seconditr++;
+ }
+
+ if (!matched)
+ firstitr++;
+ }
+
+ list<RinexObsData>::iterator itr = difflist.first.begin();
+ while (itr != difflist.first.end())
+ {
+ (*itr).dump(cout << '<');
+ itr++;
+ }
+
+ cout << endl;
+
+ itr = difflist.second.begin();
+ while (itr != difflist.second.end())
+ {
+ (*itr).dump(cout << '>');
+ itr++;
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ ROWDiff m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
+
diff --git a/dev/apps/filetools/Jamfile b/dev/apps/filetools/Jamfile
new file mode 100644
index 0000000..d93e8b3
--- /dev/null
+++ b/dev/apps/filetools/Jamfile
@@ -0,0 +1,17 @@
+#
+# $Id$
+#
+
+SubDir TOP apps filetools ;
+
+GPSLinkLibraries ficafic ficfica navdmp fic2rin rinexthin sp3version bc2sp3 : gpstk ;
+
+GPSMain navdmp : navdmp.cpp ;
+GPSMain ficfica : ficfica.cpp ;
+GPSMain ficafic : ficafic.cpp ;
+GPSMain fic2rin : fic2rin.cpp ;
+GPSMain rinexthin : RinexThin.cpp ;
+GPSMain sp3version : sp3version.cpp ;
+GPSMain bc2sp3 : bc2sp3.cpp ;
+#GPSMain sp32bc : sp32bc.cpp ;
+
diff --git a/dev/apps/filetools/Makefile.am b/dev/apps/filetools/Makefile.am
new file mode 100644
index 0000000..f9d2a46
--- /dev/null
+++ b/dev/apps/filetools/Makefile.am
@@ -0,0 +1,13 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = ficafic ficfica navdmp fic2rin rinexthin sp3version bc2sp3
+
+ficfica_SOURCES = ficfica.cpp
+ficafic_SOURCES = ficafic.cpp
+fic2rin_SOURCES = fic2rin.cpp
+navdmp_SOURCES = navdmp.cpp
+rinexthin_SOURCES = RinexThin.cpp
+sp3version_SOURCES = sp3version.cpp
+bc2sp3_SOURCES = bc2sp3.cpp
diff --git a/trunk/apps/filetools/RinexThin.cpp b/dev/apps/filetools/RinexThin.cpp
similarity index 100%
rename from trunk/apps/filetools/RinexThin.cpp
rename to dev/apps/filetools/RinexThin.cpp
diff --git a/dev/apps/filetools/bc2sp3.cpp b/dev/apps/filetools/bc2sp3.cpp
new file mode 100644
index 0000000..b3f6150
--- /dev/null
+++ b/dev/apps/filetools/bc2sp3.cpp
@@ -0,0 +1,323 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file bc2sp3.cpp
+ * Read RINEX format navigation file(s) and write the data out to an SP3 format file.
+ * Potential problems related to discontinuities at change of BCE are ignored.
+ */
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <vector>
+
+#include "RinexNavStream.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "EphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "SP3Stream.hpp"
+#include "SP3Header.hpp"
+#include "SP3Data.hpp"
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char *argv[])
+{
+ string Usage(
+ "Usage: bc2sp3 <RINEX nav file(s)> [options]\n"
+ " Read RINEX nav file(s) and write to SP3(a or c) file.\n"
+ " Options (defaults):\n"
+ " --in <file> Read the input file <file> (--in is optional, repeatable) ()\n"
+ " --out <file> Name the output file <file> (sp3.out)\n"
+ " --tb <time> Output beginning epoch; <time> = week,sec-of-week (earliest in input)\n"
+ " --te <time> Output ending epoch; <time> = week,sec-of-week (latest in input)\n"
+ " --outputC Output version c (no correlation) (otherwise a)\n"
+ " --msg \"...\" Add ... as a comment to the output header (repeatable)\n"
+ " --verbose Output to screen: dump headers, data, etc\n"
+ " --help Print this message and quit\n"
+ );
+ if(argc < 2) { cout << Usage; return -1; }
+
+ try
+ {
+ bool verbose=false;
+ char version_out='a';
+ int i,j,nrec,nfile;
+ string fileout("sp3.out");
+ vector<string> inputFiles;
+ vector<string> comments;
+ map<SatID,long> IODEmap;
+ DayTime begTime=DayTime::BEGINNING_OF_TIME;
+ DayTime endTime=DayTime::END_OF_TIME;
+ DayTime tt;
+ BCEphemerisStore BCEph;
+ SP3Header sp3header;
+ SP3Data sp3data;
+
+ for(i=1; i<argc; i++) {
+ if(argv[i][0] == '-') {
+ string arg(argv[i]);
+ if(arg == string("--outputC")) {
+ version_out = 'c';
+ if(verbose) cout << " Output version c\n";
+ }
+ else if(arg == string("--in")) {
+ inputFiles.push_back(string(argv[++i]));
+ if(verbose) cout << " Input file name "
+ << inputFiles[inputFiles.size()-1] << endl;
+ }
+ else if(arg == string("--out")) {
+ fileout = string(argv[++i]);
+ if(verbose) cout << " Output file name " << fileout << endl;
+ }
+ else if(arg == string("--tb")) {
+ arg = string(argv[++i]);
+ int wk=StringUtils::asInt(StringUtils::stripFirstWord(arg,','));
+ double sow=StringUtils::asDouble(StringUtils::stripFirstWord(arg,','));
+ begTime.setGPSfullweek(wk,sow);
+ if(verbose) cout << " Begin time "
+ << begTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g")
+ << endl;
+ }
+ else if(arg == string("--te")) {
+ arg = string(argv[++i]);
+ int wk=StringUtils::asInt(StringUtils::stripFirstWord(arg,','));
+ double sow=StringUtils::asDouble(StringUtils::stripFirstWord(arg,','));
+ endTime.setGPSfullweek(wk,sow);
+ if(verbose) cout << " End time "
+ << endTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g")
+ << endl;
+ }
+ else if(arg == string("--msg")) {
+ comments.push_back(string(argv[++i]));
+ if(verbose) cout << " Add comment " << comments[comments.size()-1]
+ << endl;
+ }
+ else if(arg == string("--help")) {
+ cout << Usage;
+ return -1;
+ }
+ else if(arg == string("--verbose"))
+ verbose = true;
+ else
+ cout << "Ignore unknown option: " << arg << endl;
+ }
+ else {
+ inputFiles.push_back(string(argv[i]));
+ if(verbose) cout << " Input file name "
+ << inputFiles[inputFiles.size()-1] << endl;
+ }
+ }
+
+ if(inputFiles.size() == 0) {
+ cout << "Error - no input filename specified. Abort.\n";
+ return -1;
+ }
+
+ // open the output SP3 file
+ SP3Stream outstrm(fileout.c_str(),ios::out);
+ outstrm.exceptions(ifstream::failbit);
+
+ for(nfile=0; nfile<inputFiles.size(); nfile++) {
+ RinexNavHeader rnh;
+ RinexNavData rnd;
+
+ RinexNavStream rns(inputFiles[nfile].c_str());
+ if(!rns) {
+ cout << "Could not open input file " << inputFiles[nfile] << endl;
+ continue;
+ }
+ rns.exceptions(ifstream::failbit);
+
+ if(verbose) cout << "Reading file " << inputFiles[nfile] << endl;
+
+ rns >> rnh;
+ if(verbose) {
+ cout << "Input";
+ rnh.dump(cout);
+ }
+
+ while(rns >> rnd)
+ if(rnd.health == 0) BCEph.addEphemeris(rnd);
+
+ }
+
+ // time limits, if not given by user
+ if(begTime == DayTime::BEGINNING_OF_TIME)
+ begTime = BCEph.getInitialTime();
+ if(endTime == DayTime::END_OF_TIME)
+ endTime = BCEph.getFinalTime();
+
+ // define the data version and the header info
+ if(version_out == 'c') {
+ // data and header must have the correct version
+ sp3data.version = sp3header.version = 'c';
+
+ sp3header.system = SP3SatID();
+ sp3header.timeSystem = SP3Header::timeGPS;
+ sp3header.basePV = 0.0;
+ sp3header.baseClk = 0.0;
+ }
+ else {
+ sp3data.version = sp3header.version = 'a';
+ }
+
+ // fill the header
+ sp3header.pvFlag = 'V';
+ sp3header.time = DayTime::END_OF_TIME;
+ sp3header.epochInterval = 900.0; // hardcoded here only
+ sp3header.dataUsed = "BCE";
+ sp3header.coordSystem = "WGS84";
+ sp3header.orbitType = " ";
+ sp3header.agency = "ARL";
+
+ // determine which SVs, with accuracy, start time, epoch interval,
+ // number of epochs, for header
+ // this is a pain....
+ sp3header.numberOfEpochs = 0;
+ tt = begTime;
+ while(tt < endTime) {
+ bool foundSome = false;
+ for(i=1; i<33; i++) { // for each PRN ...
+ SatID sat(i,SatID::systemGPS);
+ try { EngEphemeris ee = BCEph.findEphemeris(sat, tt); }
+ catch(EphemerisStore::NoEphemerisFound& nef) { continue; }
+
+ if(sp3header.satList.find(sat) == sp3header.satList.end()) {
+ sp3header.satList[sat] = 0; // sat accuracy = ?
+ IODEmap[sat] = -1;
+ }
+
+ if(!foundSome) {
+ sp3header.numberOfEpochs++;
+ foundSome = true;
+ if(tt < sp3header.time) sp3header.time = tt;
+ }
+ }
+ tt += sp3header.epochInterval;
+ }
+
+ // add comments
+ if(comments.size() > 0) {
+ // try to keep existing comments
+ for(i=0; i<comments.size(); i++) {
+ if(i > 3) {
+ cout << "Warning - only 4 comments are allowed in SP3 header.\n";
+ break;
+ }
+ sp3header.comments.push_back(comments[i]);
+ }
+ }
+
+ // dump the SP3 header
+ if(verbose) sp3header.dump(cout);
+
+ // write the header
+ outstrm << sp3header;
+
+ // sigmas to output (version c)
+ for(j=0; j<4; j++) sp3data.sig[j]=0; // sigma = ?
+
+ tt = begTime;
+ while(tt < endTime) {
+ bool epochOut=false;
+
+ for(i=1; i<33; i++) {
+ long iode;
+ SatID sat(i,SatID::systemGPS);
+ Xvt xvt;
+ EngEphemeris ee;
+
+ try { ee = BCEph.findEphemeris(sat, tt); }
+ catch(EphemerisStore::NoEphemerisFound& nef) { continue; }
+
+ sp3data.sat = sat;
+ xvt = BCEph.getSatXvt(sat, tt);
+
+ // epoch
+ if(!epochOut) {
+ sp3data.time = tt;
+ sp3data.flag = '*';
+ outstrm << sp3data;
+ if(verbose) sp3data.dump(cout);
+ epochOut = true;
+ }
+
+ // Position
+ sp3data.flag = 'P';
+ for(j=0; j<3; j++) sp3data.x[j] = xvt.x[j]/1000.0; // km
+ // must remove the relativity correction from Xvt::dtime
+ // see EngEphemeris::svXvt() - also convert to microsec
+ sp3data.clk = (xvt.dtime - ee.svRelativity(tt)) * 1000000.0;
+
+ //if(version_out == 'c') for(j=0; j<4; j++) sp3data.sig[j]=...
+ iode = ee.getIODE();
+ if(IODEmap[sat] == -1) IODEmap[sat] = iode;
+ if(IODEmap[sat] != iode) {
+ sp3data.orbitManeuverFlag = true;
+ IODEmap[sat] = iode;
+ }
+ else sp3data.orbitManeuverFlag = false;
+
+ outstrm << sp3data;
+ if(verbose) sp3data.dump(cout);
+
+ // Velocity
+ sp3data.flag = 'V';
+ for(j=0; j<3; j++) sp3data.x[j] = xvt.v[j]/10.0; // dm/s
+ sp3data.clk = xvt.ddtime; // s/s
+ //if(version_out == 'c') for(j=0; j<4; j++) sp3data.sig[j]=...
+
+ outstrm << sp3data;
+ if(verbose) sp3data.dump(cout);
+ }
+
+ tt += sp3header.epochInterval;
+ }
+ // don't forget this
+ outstrm << "EOF" << endl;
+
+ outstrm.close();
+
+ if(verbose) cout << "Wrote " << sp3header.numberOfEpochs << " records" << endl;
+ }
+ catch (Exception& e)
+ {
+ cout << e;
+ return -1;
+ }
+ catch (...)
+ {
+ cout << "Caught an unknown exception" << endl;
+ return -1;
+ }
+
+ return 0;
+}
diff --git a/dev/apps/filetools/fic2rin.cpp b/dev/apps/filetools/fic2rin.cpp
new file mode 100644
index 0000000..720546b
--- /dev/null
+++ b/dev/apps/filetools/fic2rin.cpp
@@ -0,0 +1,126 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file fic2rin.cpp Convert FIC files to RINEX.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICStream.hpp"
+#include "FICHeader.hpp"
+#include "FICData.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "FICFilterOperators.hpp"
+#include "RinexNavFilterOperators.hpp"
+#include "FileFilterFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ if (argc != 3)
+ {
+ cout << "fic2rin" << endl
+ << " converts a binary FIC file to a Rinex Nav file" << endl
+ << endl
+ << "usage:" << endl
+ << " fic2rin inputfile outputfile" << endl
+ << endl
+ << "where:" << endl
+ << " inputfile: an input binary FIC file name" << endl
+ << " outputfile: an output Rinex Nav file name" << endl;
+ return 0;
+ }
+ // What is up
+ FileFilterFrame<FICStream, FICData> input(argv[1]);
+ list<FICData> alist = input.getData();
+
+ // write the header info
+ RinexNavStream rns(argv[2], ios::out|ios::trunc);
+ RinexNavHeader rnh;
+ rnh.fileType = "Navigation";
+ rnh.fileProgram = "fic2rin";
+ rnh.fileAgency = "";
+ ostringstream ostr;
+ ostr << DayTime();
+ rnh.date = ostr.str();
+ rnh.version = 2.1;
+ rnh.valid |= RinexNavHeader::versionValid;
+ rnh.valid |= RinexNavHeader::runByValid;
+ rnh.valid |= RinexNavHeader::endValid;
+ rns.header = rnh;
+ rnh.putRecord(rns);
+ rns.close();
+
+ // filter the FIC data for block 9
+ list<long> blockList;
+ blockList.push_back(9);
+ input.filter(FICDataFilterBlock(blockList));
+ input.sort(FICDataOperatorLessThanBlock9());
+ input.unique(FICDataUniqueBlock9());
+
+ // some hand waving for the data conversion
+ list<RinexNavData> rndList;
+ list<FICData>& ficList = input.getData();
+ list<FICData>::iterator itr = ficList.begin();
+ while (itr != ficList.end())
+ {
+ // use TOE and transmit week number to determine time
+ DayTime time;
+ time.setGPSfullweek(short((*itr).f[5]), (double)(*itr).f[33]);
+ // this station number is bogus, but it's unused so it should be ok
+ EngEphemeris ee(*itr);
+ rndList.push_back(RinexNavData(ee));
+ itr++;
+ }
+
+ // write the file data
+ FileFilterFrame<RinexNavStream, RinexNavData> output;
+ output.addData(rndList);
+ output.sort(RinexNavDataOperatorLessThanFull());
+ output.writeFile(argv[2], true);
+
+ return 0;
+}
diff --git a/dev/apps/filetools/ficafic.cpp b/dev/apps/filetools/ficafic.cpp
new file mode 100644
index 0000000..80f4bc2
--- /dev/null
+++ b/dev/apps/filetools/ficafic.cpp
@@ -0,0 +1,90 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file ficafic.cpp Convert FICA files to FIC.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICStream.hpp"
+#include "FICAStream.hpp"
+#include "FICHeader.hpp"
+#include "FICData.hpp"
+#include "FileFilterFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ if (argc != 3)
+ {
+ cout << "FICAFIC" << endl
+ << " converts an ASCII FIC file to a binary FIC file" << endl
+ << endl
+ << "usage:" << endl
+ << " ficfica inputfile outputfile" << endl
+ << endl
+ << "where:" << endl
+ << " inputfile: an input ASCII FIC file name" << endl
+ << " outputfile: an output binary FIC file name" << endl;
+ return 0;
+ }
+
+ FICAStream fics(argv[1]);
+ FICHeader header;
+ header.getRecord(fics);
+ fics.close();
+
+ FICStream out(argv[2], ios::out);
+ out << header;
+ out.close();
+
+ FileFilterFrame<FICAStream, FICData> input(argv[1]);
+ FileFilterFrame<FICStream, FICData> output;
+ list<FICData> alist = input.getData();
+ output.addData(alist);
+ output.writeFile(argv[2], true);
+
+ return 0;
+}
diff --git a/dev/apps/filetools/ficfica.cpp b/dev/apps/filetools/ficfica.cpp
new file mode 100644
index 0000000..59096bc
--- /dev/null
+++ b/dev/apps/filetools/ficfica.cpp
@@ -0,0 +1,90 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file ficfica.cpp Convert FIC files to FICA.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICStream.hpp"
+#include "FICAStream.hpp"
+#include "FICHeader.hpp"
+#include "FICData.hpp"
+#include "FileFilterFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ if (argc != 3)
+ {
+ cout << "FICFICA" << endl
+ << " converts a binary FIC file to an ASCII FIC file" << endl
+ << endl
+ << "usage:" << endl
+ << " ficfica inputfile outputfile" << endl
+ << endl
+ << "where:" << endl
+ << " inputfile: an input binary FIC file name" << endl
+ << " outputfile: an output ASCII FIC file name" << endl;
+ return 0;
+ }
+
+ FICStream fics(argv[1]);
+ FICHeader header;
+ header.getRecord(fics);
+ fics.close();
+
+ FICAStream out(argv[2], ios::out);
+ out << header;
+ out.close();
+
+ FileFilterFrame<FICStream, FICData> input(argv[1]);
+ FileFilterFrame<FICAStream, FICData> output;
+ list<FICData> alist = input.getData();
+ output.addData(alist);
+ output.writeFile(argv[2], true);
+
+ return 0;
+}
diff --git a/dev/apps/filetools/navdmp.cpp b/dev/apps/filetools/navdmp.cpp
new file mode 100644
index 0000000..8b3b52b
--- /dev/null
+++ b/dev/apps/filetools/navdmp.cpp
@@ -0,0 +1,430 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file navdmp.cpp - print a human readable file from a binary FIC file
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "CommandOptionWithTimeArg.hpp"
+#include "FileFilterFrame.hpp"
+#include "BasicFramework.hpp"
+#include "FICData.hpp"
+#include "FICStream.hpp"
+#include "FICFilterOperators.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavFilterOperators.hpp"
+
+#include "gps_constants.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class NavDump : public BasicFramework
+{
+public:
+ NavDump(char* arg0);
+ bool initialize(int argc, char* argv[]) throw();
+
+protected:
+ virtual void process();
+ // additional setup will get filtering options from the user
+ virtual void additionalSetup();
+
+private:
+ void printCurrentFilter();
+ void getNewTime(DayTime& dt);
+ void getFICBlocks();
+ void getSVs();
+
+ CommandOptionWithAnyArg inputFileOption;
+ CommandOptionWithAnyArg outputFileOption;
+ /// command option to use default values (i.e. no prompting)
+ CommandOptionNoArg defaultsOption;
+ /// command option for start time for matching
+ CommandOptionWithSimpleTimeArg timeOption;
+ /// command option for end time for matching
+ CommandOptionWithSimpleTimeArg eTimeOption;
+ /// meta-option for grouping time options
+ CommandOptionGroupAnd seTimeOptions;
+ /// command option for PRNs
+ CommandOptionWithNumberArg prnOption;
+ /// command option for FIC blocks
+ CommandOptionWithNumberArg blockOption;
+ /// command option for using a RINEX navigation message file (vice FIC)
+ CommandOptionNoArg rinexOption;
+
+ DayTime startTime, endTime;
+ list<long> prnFilterList;
+ list<long> blockFilterList;
+
+ bool isRinexInput;
+};
+
+NavDump::NavDump(char* arg0)
+ : BasicFramework(arg0, "Prints the contents of an FIC or RINEX file into a human readable file and allows filtering of the data."),
+ inputFileOption('i',
+ "input",
+ "Name of an input navigation message file",
+ true),
+ outputFileOption('o',
+ "output",
+ "Name of an output file",
+ true),
+ timeOption('t', "time", "Start time (of data) for processing"),
+ eTimeOption('e', "end-time", "End time (of data) for processing"),
+ prnOption('p', "prn", "PRN(s) to include"),
+ blockOption('b', "block", "FIC block number(s) to process ((9)109"
+ " (Engineering) ephemerides, (62)162 (engineering)"
+ " almanacs)"),
+ defaultsOption('a', "all-records", "Unless otherwise specified, use"
+ " default values for record filtration"),
+ rinexOption('r',"RINEX", "Assume input file is a RINEX navigation"
+ " message file"),
+ startTime(0,0.0),
+ endTime(DayTime::END_OF_TIME)
+{
+ seTimeOptions.addOption(&timeOption);
+ seTimeOptions.addOption(&eTimeOption);
+ inputFileOption.setMaxCount(1);
+ outputFileOption.setMaxCount(1);
+ timeOption.setMaxCount(1);
+ eTimeOption.setMaxCount(1);
+ isRinexInput = false;
+}
+
+void NavDump::printCurrentFilter()
+{
+ cout << "Current filtering options:" << endl
+ << "\tStart time:\t" << startTime << endl
+ << "\tEnd time:\t" << endTime << endl
+ << "\tPRNs:\t\t";
+ if (prnFilterList.empty())
+ cout << "using all PRNs";
+ else
+ copy(prnFilterList.begin(), prnFilterList.end(),
+ ostream_iterator<long>(cout, " "));
+ if (!isRinexInput)
+ {
+ cout << endl
+ << "\tFIC blocks:\t";
+ if (blockFilterList.empty())
+ cout << "using all blocks";
+ else
+ copy(blockFilterList.begin(), blockFilterList.end(),
+ ostream_iterator<long>(cout, " "));
+ }
+ cout << endl;
+}
+
+bool NavDump::initialize(int argc, char* argv[]) throw()
+{
+ using gpstk::StringUtils::asInt;
+
+ if (!BasicFramework::initialize(argc, argv))
+ return false;
+
+ if (prnOption.getCount())
+ {
+ for (int i = 0; i < prnOption.getCount(); i++)
+ prnFilterList.push_back(asInt(prnOption.getValue()[i]));
+ }
+
+ if (blockOption.getCount())
+ {
+ for (int i = 0; i < blockOption.getCount(); i++)
+ blockFilterList.push_back(asInt(blockOption.getValue()[i]));
+ }
+
+ if (timeOption.getCount())
+ startTime = timeOption.getTime()[0];
+ if (eTimeOption.getCount())
+ endTime = eTimeOption.getTime()[0];
+
+ if (rinexOption.getCount())
+ isRinexInput = true;
+
+ return true;
+}
+
+void NavDump::additionalSetup()
+{
+ int option = 0;
+ string line;
+
+ if (defaultsOption.getCount() ||
+ (seTimeOptions.getCount() && blockOption.getCount() &&
+ prnOption.getCount()))
+ return;
+
+ while (option != 5)
+ {
+ cout << endl;
+ printCurrentFilter();
+
+ cout << endl
+ << "Choose an option by number then push enter:" << endl
+ << "\t1) Change the start time" << endl
+ << "\t2) Change the end time" << endl
+ << "\t3) Select specific PRNs" << endl;
+ if (!isRinexInput)
+ {
+ cout << "\t4) Select specific FIC block numbers" << endl;
+ }
+ cout << "\t5) Process the file" << endl
+ << "use ctrl-c to exit" << endl
+ << "? ";
+
+ getline(cin, line);
+ istringstream optionstr(line);
+ optionstr >> option;
+ cout << endl;
+
+ switch(option)
+ {
+ case 1:
+ cout << "Entering a new start time..." << endl;
+ getNewTime(startTime);
+ option = 0;
+ break;
+ case 2:
+ cout << "Entering a new end time..." << endl;
+ getNewTime(endTime);
+ option = 0;
+ break;
+ case 3:
+ getSVs();
+ option = 0;
+ break;
+ case 4:
+ if (!isRinexInput) getFICBlocks();
+ option = 0;
+ break;
+ case 5:
+ break;
+ default:
+ cout << '\"' << line << "\" is an invalid option" << endl;
+ option = 0;
+ break;
+ }
+
+ if (startTime > endTime)
+ cout << endl
+ << "Please check the start and end times because all the data will be filtered" << endl
+ << "with this setting (startTime > endTime)." << endl;
+ }
+
+ cout << "processing..." << endl;
+}
+
+void NavDump::getFICBlocks()
+{
+ int block;
+ string line;
+ cout << "Enter a list of FIC blocks to search for separated by spaces." << endl
+ << "The old list will be discarded." << endl
+ << " 9 : Ephemeris - engineering units." << endl
+ << " 109 : Ephemeris - as broadcast." << endl
+ << " 62 : Almanac - engineering units." << endl
+ << " 162 : Almanac - as broadcast." << endl
+ << "Enter '0' for all blocks - any other blocks entered will be ignored." << endl
+ << "? ";
+ getline(cin, line);
+ istringstream is(line);
+ while (is >> block)
+ if (block == 0)
+ {
+ blockFilterList.clear();
+ return;
+ }
+ else
+ switch(block)
+ {
+ case 9:
+ case 109:
+ case 62:
+ case 162:
+ blockFilterList.push_back(block);
+ break;
+ default:
+ break;
+ }
+}
+
+void NavDump::getSVs()
+{
+ int prn;
+ string line;
+ cout << "Enter a list of PRNs separated by spaces to search for." << endl
+ << "The old list will be discarded." << endl
+ << "Enter '0' for all PRNs - any other PRNs listed will be ignored." << endl
+ << "? ";
+ getline(cin, line);
+ istringstream is(line);
+ while (is >> prn)
+ if (prn == 0)
+ {
+ prnFilterList.clear();
+ return;
+ }
+ else if ( (prn > 0) && (prn <= MAX_PRN) )
+ {
+ prnFilterList.push_back(prn);
+ }
+}
+
+void NavDump::getNewTime(DayTime& dt)
+{
+ short week = -1;
+ double SOW;
+ string buf;
+ short done = 0;
+
+ while (!done)
+ {
+ cout << " Enter full GPS week: ";
+ getline(cin, buf);
+ istringstream instr(buf);
+ instr >> week;
+ if (week != -1)
+ done = 1;
+ else
+ cout << " Error entering week. Please try again." << endl;
+ }
+
+ // Now reset flag and get SOW
+ done = 0;
+ while (!done)
+ {
+ cout << " Enter GPS seconds of week: ";
+ getline(cin,buf);
+ istringstream instr(buf);
+ instr >> SOW;
+ if ((SOW >= 0.0L) && (SOW < 604800.0L) )
+ done = 1;
+ else
+ cout << " Error entering SOW. Please try again." << endl;
+ }
+ dt.setGPSfullweek(week, SOW);
+}
+
+void NavDump::process()
+{
+
+ ofstream out;
+ out.open(outputFileOption.getValue()[0].c_str());
+ if (out.fail())
+ {
+ cout << "Opening output file " << outputFileOption.getValue()[0]
+ << " failed." << endl
+ << " navdump is ending..." << endl
+ << endl;
+ return;
+ }
+
+ if (!isRinexInput)
+ {
+ // filter the data... first by block number, then by PRN
+ FileFilterFrame<FICStream, FICData> data(inputFileOption.getValue()[0]);
+ if (!blockFilterList.empty())
+ data.filter(FICDataFilterBlock(blockFilterList));
+ if (!prnFilterList.empty())
+ data.filter(FICDataFilterPRN(prnFilterList));
+
+ list<FICData>& ficlist = data.getData();
+ list<FICData>::iterator itr = ficlist.begin();
+ while (itr != ficlist.end())
+ {
+ (*itr).prettyDump(out);
+ itr++;
+ }
+ }
+ else // Rinex navigation message data
+ {
+ FileFilterFrame<RinexNavStream, RinexNavData>
+ data(inputFileOption.getValue()[0]);
+ if (!prnFilterList.empty())
+ data.filter(RinexNavDataFilterPRN(prnFilterList));
+
+ list<RinexNavData>& rnavlist = data.getData();
+ list<RinexNavData>::iterator itr = rnavlist.begin();
+ while (itr!=rnavlist.end())
+ {
+ RinexNavData& r = *itr;
+ EngEphemeris ee(r);
+ ee.dump(out);
+ itr++;
+ }
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ NavDump nd(argv[0]);
+ if (!nd.initialize(argc, argv))
+ return 0;
+ if (!nd.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(std::exception& e)
+ {
+ cout << "Caught std::exception " << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "Caught unknown exception" << endl;
+ }
+
+ return 1;
+}
+
diff --git a/dev/apps/filetools/sp32bc.cpp b/dev/apps/filetools/sp32bc.cpp
new file mode 100644
index 0000000..294d4a7
--- /dev/null
+++ b/dev/apps/filetools/sp32bc.cpp
@@ -0,0 +1,83 @@
+#pragma ident "$Id: bc2sp3.cpp 208 2006-10-11 16:35:25Z btolman $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file sp32bc.cpp
+ * Reads SP3 format precise ephemeris file, outputs a series of RINEX ephemeris * One ephemeris is generated for each satellite and epoch.
+ */
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <vector>
+
+#include "RinexNavStream.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "EphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "SP3Stream.hpp"
+#include "SP3Header.hpp"
+#include "SP3Data.hpp"
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "StringUtils.hpp"
+#include "CommandOptionParser.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char *argv[])
+{
+ try {
+ CommandOptionNoArg helpOption('h',"help","Display argument list.",false);
+ CommandOptionWithStringArg sp3input('p',"pe","Input precise ephemeris");
+ CommandOptionWithNumberArg rate('r', "output-rate", "Rate of broadcast ephemeris output (seconds)");
+ CommandOptionParser cop("GPSTk SP3 to RINEX NAV Conversion");
+ cop.parseOptions(argc, argv);
+
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ return 1;
+ }
+
+ if(helpOption.getCount())
+ {
+ cop.displayUsage(cout);
+ return 0;
+ }
+
+
+ }
+ catch( Exception error)
+ {
+ cout << error << endl;
+ exit(-1);
+ }
+
+ exit(0);
+
+}
diff --git a/dev/apps/filetools/sp3version.cpp b/dev/apps/filetools/sp3version.cpp
new file mode 100644
index 0000000..50588eb
--- /dev/null
+++ b/dev/apps/filetools/sp3version.cpp
@@ -0,0 +1,239 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file sp3version.cpp
+ * Read an SP3 format file (any version) and write the data out to another,
+ * specifying the SP3 version. This code is intended for testing and as a pattern
+ * for SP3 I/O and analysis programs; currently in converting SP3a to SP3c it
+ * inserts random data.
+ */
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <vector>
+
+#include "SP3Stream.hpp"
+#include "SP3Header.hpp"
+#include "SP3Data.hpp"
+#include "DayTime.hpp"
+#include "SatID.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+double unitrand(void) { return double(rand())/RAND_MAX; }
+
+int main(int argc, char *argv[])
+{
+ if(argc < 2)
+ {
+ cout << "Usage: sp3version <SP3 file> [options]\n";
+ cout << " Read an SP3 file (either a or c format) and write it to another\n";
+ cout << " file, also in either a or c format.\n";
+ cout << " Options:\n";
+ cout << " --in <file> Read the input file <file> ()\n";
+ cout << " --out <file> Name the output file <file> (sp3.out)\n";
+ cout << " --outputC Output version c (otherwise a)\n";
+ cout << " NB. for a->c, generate random correlations\n";
+ cout << " --msg \"...\" Add ... as a comment to the output header\n";
+ cout << " --verbose Output to screen: dump headers, data, etc\n";
+ return -1;
+ }
+
+ try
+ {
+ bool verbose=false;
+ char version_out='a',version_in;
+ int i,n;
+ string filein,fileout("sp3.out");
+ DayTime currentTime=DayTime::BEGINNING_OF_TIME;
+ SP3Header sp3header;
+ SP3Data sp3data;
+ vector<string> comments;
+
+ for(i=1; i<argc; i++) {
+ if(argv[i][0] == '-') {
+ string arg(argv[i]);
+ if(arg == string("--outputC"))
+ version_out = 'c';
+ else if(arg == string("--in"))
+ filein = string(argv[++i]);
+ else if(arg == string("--out"))
+ fileout = string(argv[++i]);
+ else if(arg == string("--msg"))
+ comments.push_back(string(argv[++i]));
+ else if(arg == string("--verbose"))
+ verbose = true;
+ else
+ cout << "Ignore unknown option: " << arg << endl;
+ }
+ else {
+ filein = string(argv[i]);
+ }
+ }
+
+ if(filein.empty()) {
+ cout << "Error - no filename specified. Abort.\n";
+ return -1;
+ }
+ if(verbose) cout << "Reading file " << filein << endl;
+
+ SP3Stream instrm(filein.c_str());
+ instrm.exceptions(ifstream::failbit);
+
+ SP3Stream outstrm(fileout.c_str(),ios::out);
+ outstrm.exceptions(ifstream::failbit);
+
+ // read the header
+ instrm >> sp3header;
+ if(verbose) {
+ cout << "Input ";
+ sp3header.dump(cout);
+ cout << endl;
+ }
+ version_in = sp3header.version;
+
+ // add comments
+ if(comments.size() > 0) {
+ // try to keep existing comments
+ for(i=0; i<4-comments.size(); i++)
+ comments.push_back(sp3header.comments[i]);
+ sp3header.comments.clear();
+ for(i=0; i<comments.size(); i++) {
+ sp3header.comments.push_back(comments[i]);
+ }
+ }
+
+ // prepare to write the header
+ if(version_out == 'c') {
+ sp3header.version = 'c';
+ sp3header.system = SP3SatID();
+ sp3header.timeSystem = SP3Header::timeGPS;
+ sp3header.basePV = 1.25; // make these up ... a real app would
+ sp3header.baseClk = 1.025; // assign them based on what SP3Data will hold
+ }
+ if(verbose) {
+ cout << "Output ";
+ sp3header.dump(cout);
+ cout << endl;
+ }
+
+ // write the header
+ outstrm << sp3header;
+
+ // for reading and writing, sp3data MUST have the version of the header;
+ // this is crucial for version 'c'
+ sp3data.version = version_in; // for input
+
+ n = 0; // count records
+ while(instrm >> sp3data) {
+ // data has now been read in
+ // ...handle the data
+ if(verbose) { cout << "Input:\n"; sp3data.dump(cout); }
+ // if correlationFlag has been set, there is new correlation data
+ if(sp3data.correlationFlag) {
+ cout << "Input sdev";
+ for(i=0; i<4; i++) cout << " " << sp3data.sdev[i];
+ cout << endl;
+ cout << "Input correl";
+ for(i=0; i<6; i++) cout << " " << sp3data.correlation[i];
+ cout << endl;
+ }
+
+ // output
+ sp3data.version = version_out; // for output
+
+ // write the epoch record
+ if(sp3data.time > currentTime) {
+ char saveFlag = sp3data.flag;
+ sp3data.flag = '*';
+ outstrm << sp3data;
+ sp3data.flag = saveFlag;
+ currentTime = sp3data.time;
+ }
+
+ // make up some data...a real app would have this data
+ if(version_in == 'a' && version_out == 'c') {
+ // sigmas on the P|V rec
+ for(i=0; i<4; i++) sp3data.sig[i] = int(99*unitrand());
+ // flags on the P line
+ if(sp3data.flag == 'P') {
+ sp3data.clockEventFlag = (unitrand() > 0.5);
+ sp3data.clockPredFlag = (unitrand() > 0.5);
+ sp3data.orbitManeuverFlag = (unitrand() > 0.5);
+ sp3data.orbitPredFlag = (unitrand() > 0.5);
+ }
+ // write out the correlation records ... maybe
+ if(unitrand() > 0.5) {
+ // set the flag for output
+ sp3data.correlationFlag = true;
+ for(i=0; i<4; i++) sp3data.sdev[i] = int(9999*unitrand());
+ for(i=0; i<6; i++) sp3data.correlation[i] = int(99999999*unitrand());
+ cout << "Output sdev";
+ for(i=0; i<4; i++) cout << " " << sp3data.sdev[i];
+ cout << endl;
+ cout << "Output correl";
+ for(i=0; i<6; i++) cout << " " << sp3data.correlation[i];
+ cout << endl;
+ }
+ else sp3data.correlationFlag = false;
+ }
+
+ // write the data P|V record, and if correlationFlag, the EP|EV record
+ if(verbose) { cout << "Output:\n"; sp3data.dump(cout); }
+ outstrm << sp3data;
+
+ // count records
+ n++;
+
+ // prepare for the next read
+ sp3data.version = version_in;
+ // must reset before input, since same sp3data is for input and output
+ sp3data.correlationFlag = false;
+ }
+
+ // don't forget this
+ outstrm << "EOF" << endl;
+
+ instrm.close();
+ outstrm.close();
+
+ if(verbose) cout << "Read " << n << " records" << endl;
+ }
+ catch (Exception& e)
+ {
+ cout << e;
+ return -1;
+ }
+ catch (...)
+ {
+ cout << "Caught an unknown exception" << endl;
+ return -1;
+ }
+
+ cout << "Done." << endl;
+ return 0;
+}
diff --git a/dev/apps/geomatics/Jamfile b/dev/apps/geomatics/Jamfile
new file mode 100644
index 0000000..eb037b8
--- /dev/null
+++ b/dev/apps/geomatics/Jamfile
@@ -0,0 +1,12 @@
+#
+# $Id: Jamfile 71 2006-08-01 18:46:39Z ehagen $
+#
+
+SubDir TOP apps geomatics ;
+
+SubInclude TOP apps geomatics lib ;
+
+SubInclude TOP apps geomatics cycleslips ;
+SubInclude TOP apps geomatics kalman ;
+SubInclude TOP apps geomatics relposition ;
+SubInclude TOP apps geomatics robust ;
diff --git a/dev/apps/geomatics/Makefile.am b/dev/apps/geomatics/Makefile.am
new file mode 100644
index 0000000..6468441
--- /dev/null
+++ b/dev/apps/geomatics/Makefile.am
@@ -0,0 +1,2 @@
+# $Id$
+SUBDIRS = lib cycleslips kalman relposition robust
diff --git a/dev/apps/geomatics/cycleslips/DiscFix.cpp b/dev/apps/geomatics/cycleslips/DiscFix.cpp
new file mode 100644
index 0000000..b59b35d
--- /dev/null
+++ b/dev/apps/geomatics/cycleslips/DiscFix.cpp
@@ -0,0 +1,1511 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//------------------------------------------------------------------------------------
+// DiscFix.cpp Read a RINEX observation file containing dual frequency
+// pseudorange and phase, separate the data into satellite passes, and then
+// find and estimate discontinuities in the phase (using the GPSTk Discontinuity
+// Corrector (GDC) in DiscCorr.hpp).
+// The corrected data can be written out to another RINEX file, plus there is the
+// option to smooth the pseudorange and/or debias the phase (SatPass::smooth()).
+//
+// This program is useful as a way to process RINEX data by satellite pass.
+// It reads an entire RINEX obs file, breaking it into satellite passes (SatPass)
+// and processing it (ProcessSatPass()), then writes it out again from the
+// SatPass data. It was designed so that all the input data gets into one SatPass
+// and is altered only by the routine(s) called in ProcessSatPass(). Thus by
+// modifying just that routine, this program could be used to do something else
+// to the satellite passes. Also note that there is a choice of when to write out
+// the data, either as soon as possible, or only at the end: cf. bool WriteASAP.
+//------------------------------------------------------------------------------------
+
+/**
+ * @file DiscFix.cpp
+ * Correct phase discontinuities (cycle slips) in dual frequency data in a RINEX
+ * observation file, plus optionally smooth the pseudoranges and/or debias the phases.
+ */
+
+#include "MathBase.hpp"
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "DayTime.hpp"
+#include "StringUtils.hpp"
+
+#include "SatPass.hpp"
+#include "DiscCorr.hpp"
+
+#include <time.h>
+#include <string>
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <algorithm>
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// prgm data
+string PrgmName("DiscFix");
+string PrgmVers("4.1 4/07/06");
+
+typedef struct configuration {
+ // input
+ string Directory;
+ vector<string> InputObsName;
+ // data flow
+ double ith;
+ DayTime begTime, endTime;
+ double MaxGap;
+ //int MinPts;
+ // processing
+ double dt;
+ bool UseCA;
+ vector<GSatID> ExSV;
+ GSatID SVonly;
+ // output files
+ string LogFile,OutFile;
+ ofstream oflog,ofout;
+ string format;
+ // output
+ string OutRinexObs;
+ string HDPrgm; // header of output RINEX file
+ string HDRunby;
+ string HDObs;
+ string HDAgency;
+ string HDMarker;
+ string HDNumber;
+ int NrecOut;
+ DayTime FirstEpoch,LastEpoch;
+ bool smoothPR,smoothPH,smooth;
+ //bool CAOut;
+ //bool DopOut;
+ bool verbose;
+ // estimate dt from data
+ double estdt[9];
+ int ndt[9];
+} DFConfig;
+
+//------------------------------------------------------------------------------------
+// data input from command line
+DFConfig config; // for DiscFix
+GDCconfiguration GDConfig; // the discontinuity corrector configuration
+
+// if true, write to RINEX only after ALL data has been processed (by ProcessSatPass)
+// (I can't see why DiscFix would want to set this false, so it is not in the input.)
+bool WriteASAP=true;
+
+// data used in program
+clock_t totaltime;
+string Title;
+DayTime CurrEpoch, PrgmEpoch;
+
+RinexObsStream irfstr, orfstr; // input and output RINEX files
+RinexObsHeader rhead;
+int inC1,inP1,inP2,inL1,inL2; // indexes in rhead of C1, C1/P1, P2, L1 and L2
+bool UsingCA;
+
+// Data for an entire pass is stored in SatPass object
+// this contains all the SatPass's defined so far
+// the parallel vector holds an iterator for use in writing out the data
+vector<SatPass> SPList;
+vector<unsigned int> SPIndexList;
+// this is a map relating a satellite to the index in SVPList of the current pass
+map<GSatID,int> SatToCurrentIndexMap;
+
+//------------------------------------------------------------------------------------
+// prototypes
+int ReadFile(int nfile) throw(Exception);
+int ProcessOneEntireEpoch(RinexObsData& ro) throw(Exception);
+int ProcessOneSatOneEpoch(GSatID, DayTime, SatPassData& ) throw(Exception);
+
+void ProcessSatPass(int index) throw(Exception);
+int AfterReadingFiles(void) throw(Exception);
+void WriteToRINEXfile(void) throw(Exception);
+void WriteRINEXheader(void) throw(Exception);
+void WriteRINEXdata(DayTime& WriteEpoch, const DayTime targetTime) throw(Exception);
+
+void PrintSPList(ostream&, string, const vector<SatPass>&, bool printTime);
+int GetCommandLine(int argc, char **argv) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+ try {
+ totaltime = clock();
+ int iret;
+
+ // Title and description
+ //cout << "Name " << string(argv[0]) << endl;
+ Title = PrgmName + ", part of the GPS ToolKit, Ver " + PrgmVers + ", Run ";
+ PrgmEpoch.setLocalTime();
+ Title += PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S\n");
+ cout << Title;
+
+ // set fill char in GSatID
+ config.SVonly.setfill('0');
+ config.FirstEpoch = DayTime::BEGINNING_OF_TIME;
+ config.LastEpoch = DayTime::BEGINNING_OF_TIME;
+ CurrEpoch = DayTime::BEGINNING_OF_TIME;
+
+ // get command line
+ iret = GetCommandLine(argc, argv);
+ if(iret) return iret;
+
+ // configure SatPass
+ {
+ SatPass dummy(config.SVonly,config.dt);
+ dummy.setMaxGap(config.MaxGap);
+ dummy.setOutputFormat(config.format);
+ }
+
+ // open output files
+ // output for editing commands - write to this in ProcessSatPass()
+ config.ofout.open(config.OutFile.c_str());
+ if(config.oflog.fail()) {
+ config.oflog << "Error: " << PrgmName << " failed to open output file "
+ << config.OutFile << endl;
+ }
+ else
+ cout << PrgmName << " is writing to output file " << config.OutFile << endl;
+ // RINEX output
+ orfstr.open(config.OutRinexObs.c_str(), ios::out);
+ if(!config.OutRinexObs.empty()) {
+ if(orfstr.fail()) {
+ config.oflog << "Failed to open output file " << config.OutRinexObs
+ << ". Abort.\n";
+ cout << "Failed to open output file " << config.OutRinexObs
+ << ". Abort.\n";
+ irfstr.close();
+ return 1;
+ }
+ else cout << PrgmName << " is writing to RINEX file "
+ << config.OutRinexObs << endl;
+ orfstr.exceptions(ios::failbit);
+ }
+
+ // loop over input files
+ for(int nfile=0; nfile<config.InputObsName.size(); nfile++) {
+ iret = ReadFile(nfile);
+ if(iret < 0) break;
+ } // end loop over input files
+
+ iret = AfterReadingFiles();
+
+ // clean up
+ orfstr.close();
+ config.ofout.close();
+ SatToCurrentIndexMap.clear();
+ SPList.clear();
+ SPIndexList.clear();
+
+ totaltime = clock()-totaltime;
+ config.oflog << PrgmName << " timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ cout << PrgmName << " timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+
+ config.oflog.close();
+
+ return iret;
+ }
+ catch(Exception& e) {
+ config.oflog << e;
+ }
+ catch (...) {
+ config.oflog << PrgmName << ": Unknown error. Abort." << endl;
+ cout << PrgmName << ": Unknown error. Abort." << endl;
+ }
+
+ return -1;
+
+} // end main()
+
+//------------------------------------------------------------------------------------
+// open the file, read header and check for data; then loop over the epochs
+// Return 0 ok, <0 fatal error, >0 non-fatal error (ie skip this file)
+// 0 ok, 1 couldn't open file, 2 file doesn't have required data
+int ReadFile(int nfile) throw(Exception)
+{
+ try {
+ string name;
+ // open input file
+ name = config.InputObsName[nfile];
+ if(!config.Directory.empty() && config.Directory != string("."))
+ name = config.Directory + string("/") + name;
+ irfstr.open(name.c_str(),ios::in);
+ if(irfstr.fail()) {
+ config.oflog << "Failed to open input file " << name << ". Abort.\n";
+ cout << "Failed to open input file " << name << ". Abort.\n";
+ return 1;
+ }
+ else if(config.verbose)
+ config.oflog << "Opened input file " << name << endl;
+ irfstr.exceptions(ios::failbit);
+
+ // read the header
+ irfstr >> rhead;
+ if(config.verbose) {
+ config.oflog << "\nHere is the input header for file " << name << endl;
+ rhead.dump(config.oflog);
+ config.oflog << endl;
+ }
+
+ // check that file contains C1/P1,P2,L1,L2
+ inC1 = inP1 = inP2 = inL1 = inL2 = -1;
+ for(int j=0; j<rhead.obsTypeList.size(); j++) {
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("C1")) inC1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("L1")) inL1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("L2")) inL2=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("P1")) inP1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("P2")) inP2=j;
+ }
+
+ if((inC1 == -1 && config.UseCA) || // no C1, but user wants C1
+ (inP1 == -1 && inC1 == -1) || // no C1 and no P1
+ inP2 == -1 || inL1 == -1 || inL2 == -1)
+ {
+ config.oflog << "Error: file " << name << " does not contain";
+ if(inC1 == -1) config.oflog
+ << " C1 (--forceCA was" << (config.UseCA ? "" : " not") << " found)";
+ if(inL1 == -1) config.oflog << " L1";
+ if(inL2 == -1) config.oflog << " L2";
+ if(inP1 == -1) config.oflog << " P1";
+ if(inP2 == -1) config.oflog << " P2";
+ config.oflog << " .. abort." << endl;
+ irfstr.clear();
+ irfstr.close();
+ return 2;
+ }
+ else if(inP1==-1) {
+ inP1 = inC1;
+ }
+
+ if(config.UseCA) inP1 = inC1;
+ if(inP1 == inC1) UsingCA = true; else UsingCA = false;
+
+ // loop over epochs in the file
+ bool first=true;
+ int iret;
+ RinexObsData rodata;
+ while(1) {
+ irfstr >> rodata;
+ if(irfstr.eof()) break;
+ if(irfstr.bad()) {
+ config.oflog << "input RINEX stream is bad" << endl;
+ break;
+ }
+ iret = ProcessOneEntireEpoch(rodata);
+ if(iret < -1) break;
+ if(iret == -1) { iret=0; break; } // end of file
+ }
+
+ irfstr.clear();
+ irfstr.close();
+
+ return iret;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return :
+// <-1 fatal error,
+// -1 end of file (or past end time limit),
+// 0 ok,
+// 1 skip this epoch : before begin time
+// 2 skip this epoch : comment block,
+// 3 skip this epoch : decimated
+int ProcessOneEntireEpoch(RinexObsData& roe) throw(Exception)
+{
+ try {
+ bool ok;
+ int i,j,k;
+ double dt;
+ string str,datastr;
+ GSatID sat;
+ SatPassData spd;
+ RinexObsData::RinexObsTypeMap otmap;
+ RinexObsData::RinexSatMap::iterator it;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+
+ // stay within time limits
+ if(roe.time < config.begTime) return 1;
+ if(roe.time > config.endTime) return -1;
+
+ // ignore comment blocks ...
+ if(roe.epochFlag != 0 && roe.epochFlag != 1) return 2;
+
+ // decimate data
+ // if begTime is still undefined, set it to begin of week
+ if(config.ith > 0.0) {
+ if(fabs(config.begTime-DayTime(DayTime::BEGINNING_OF_TIME)) < 1.e-8)
+ config.begTime =
+ config.begTime.setGPSfullweek(roe.time.GPSfullweek(),0.0);
+ double dt=fabs(roe.time - config.begTime);
+ dt -= config.ith*long(0.5+dt/config.ith);
+ if(fabs(dt) > 0.25) return 3; // TD set tolerance? clock bias?
+ }
+
+ // save current time
+ CurrEpoch = roe.time;
+
+ // loop over sat=it->first, ObsTypeMap=it->second
+ for(it=roe.obs.begin(); it != roe.obs.end(); ++it) {
+
+ // Is this satellite excluded ?
+ sat = it->first;
+ if(sat.system != SatID::systemGPS) continue; // ignore non-GPS satellites
+ for(k=-1,i=0; i<config.ExSV.size(); i++) // ignore input sat (--exSat)
+ if(config.ExSV[i] == sat) { k = i; break; }
+ if(k > -1) continue;
+
+ // if only one satellite is included, skip all the rest
+ if(config.SVonly.id != -1 && !(sat == config.SVonly)) continue;
+
+ // pull out the data and the SSI and LLI (indicators)
+ // put all the indicators together in a string, then make it a long
+ // order of the indicators: P1P2L1L2*ls AaBbCcDd
+ str = string("00000000");
+ otmap = it->second;
+ if( (jt = otmap.find(rhead.obsTypeList[inP1])) != otmap.end()) {
+ spd.P1 = jt->second.data;
+ str[0] = (asString(jt->second.lli))[0];
+ str[1] = (asString(jt->second.ssi))[0];
+ }
+ if( (jt = otmap.find(rhead.obsTypeList[inP2])) != otmap.end()) {
+ spd.P2 = jt->second.data;
+ str[2] = (asString(jt->second.lli))[0];
+ str[3] = (asString(jt->second.ssi))[0];
+ }
+ if( (jt = otmap.find(rhead.obsTypeList[inL1])) != otmap.end()) {
+ spd.L1 = jt->second.data;
+ str[4] = (asString(jt->second.lli))[0];
+ str[5] = (asString(jt->second.ssi))[0];
+ }
+ if( (jt = otmap.find(rhead.obsTypeList[inL2])) != otmap.end()) {
+ spd.L2 = jt->second.data;
+ str[6] = (asString(jt->second.lli))[0];
+ str[7] = (asString(jt->second.ssi))[0];
+ }
+ spd.indicators = asUnsigned(str);
+
+ // is it good?
+ ok = true;
+ if(spd.P1 < 1000.0 || spd.P2 < 1000.0) ok = false;
+ if(fabs(spd.L1) <= 0.001 || fabs(spd.L2) <= 0.001) ok = false;
+ spd.flag = (ok ? SatPass::OK : SatPass::BAD);
+
+ // process this sat
+ try { ProcessOneSatOneEpoch(sat, CurrEpoch, spd); }
+ catch(Exception& e) {
+ config.oflog << "Error: time tags are out of order. Abort.\n";
+ return -3;
+ }
+
+ } // end loop over sats
+
+ // update LastEpoch and estimate of config.dt
+ if(config.LastEpoch > DayTime(DayTime::BEGINNING_OF_TIME)) {
+ double dt = CurrEpoch-config.LastEpoch;
+ for(i=0; i<9; i++) {
+ if(config.ndt[i] <=0 ) { config.estdt[i]=dt; config.ndt[i]=1; break; }
+ if(fabs(dt-config.estdt[i]) < 0.0001) { config.ndt[i]++; break; }
+ if(i == 8) {
+ k = 0;
+ int nl=config.ndt[k];
+ for(j=1; j<9; j++) if(config.ndt[j] <= nl) {
+ k = j;
+ nl = config.ndt[j];
+ }
+ config.ndt[k] = 1;
+ config.estdt[k] = dt;
+ }
+ }
+ }
+ config.LastEpoch = CurrEpoch;
+
+ // check times looking for passes that ought to be processed
+ for(i=0; i<SPList.size(); i++) {
+ if(SPList[i].status > 1)
+ continue; // already processed
+ if(SPList[i].includesTime(CurrEpoch))
+ continue; // don't process yet
+
+ ProcessSatPass(i); // ok, process this pass
+ if(!orfstr) SPList[i].status = 99; // status == 99 means 'written out'
+ }
+
+ // try writing more data to output RINEX file
+ if(WriteASAP) {
+ WriteToRINEXfile();
+ // gut passes that have 99
+ //for(i=0; i<SPList.size(); i++) {
+ // if(SPList[i].status != 99) continue;
+ // SPList[i].resize(0);
+ //}
+ }
+
+ return 0;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int ProcessOneSatOneEpoch(GSatID sat, DayTime tt, SatPassData& spd)
+ throw(Exception)
+{
+ try {
+ int index;
+ map<GSatID,int>::const_iterator kt;
+
+ // find the current SatPass for this sat
+ kt = SatToCurrentIndexMap.find(sat);
+ // if there is not one, create one
+ if(kt == SatToCurrentIndexMap.end()) {
+ SatPass newSP(sat,config.dt);
+ SPList.push_back(newSP);
+ SPIndexList.push_back(99999); // keep parallel
+ SatToCurrentIndexMap[sat] = SPList.size()-1;
+ kt = SatToCurrentIndexMap.find(sat);
+ }
+
+ // update the first epoch
+ if(config.FirstEpoch == DayTime::BEGINNING_OF_TIME)
+ config.FirstEpoch = CurrEpoch;
+
+ // get the index of this SatPass in the SPList vector
+ // and add the data to that SatPass
+ index = kt->second;
+ SPList[index].status = 1; // status == 1 means 'fill'
+ if( SPList[index].push_back(tt,spd) )
+ return 0;
+
+ // --- need to create a new pass ---
+
+ // first process the old one
+ ProcessSatPass(index);
+ if(!orfstr) // not writing to RINEX
+ SPList[index].status = 99; // status == 99 means 'written out'
+ else if(WriteASAP)
+ WriteToRINEXfile(); // try writing out
+
+ // create a new SatPass for this sat
+ SatPass newSP(sat,config.dt);
+ // add it to the list
+ SPList.push_back(newSP);
+ SPIndexList.push_back(99999); // keep parallel
+ // get the new index
+ index = SPList.size()-1;
+ // and add it to the map
+ SatToCurrentIndexMap[sat] = index;
+ // add the data
+ SPList[index].status = 1; // status == 1 means 'fill'
+ SPList[index].push_back(tt,spd); // cannot fail
+
+ return 0;
+
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Process the pass (call DC); if there is an output file, try writing to it.
+void ProcessSatPass(int in) throw(Exception)
+{
+ try {
+ config.oflog << "Proc " << SPList[in]
+ << " at " << CurrEpoch.printf(config.format) << endl;
+ //SPList[in].dump(config.oflog,"RAW");
+
+ // remove this SatPass from the SatToCurrentIndexMap map
+ SatToCurrentIndexMap.erase(SPList[in].getSat());
+
+ // --------- call DC on this pass -------------------
+ vector<string> EditCmds;
+ int iret = DiscontinuityCorrector(SPList[in], GDConfig, EditCmds);
+ if(iret != 0) {
+ SPList[in].status = 100; // status == 100 means 'failed'
+ return;
+ }
+ SPList[in].status = 2; // status == 2 means 'processed'.
+
+ // --------- output editing commands ----------------
+ for(int i=0; i<EditCmds.size(); i++)
+ config.ofout << EditCmds[i] << endl;
+
+ // --------- smooth pseudorange and debias phase ----
+ if(config.smooth) {
+ SPList[in].smooth(config.smoothPR,config.smoothPH,config.oflog);
+ SPList[in].status = 3; // status == 3 means 'smoothed'.
+ }
+
+ // status == 0 means 'new'
+ // status == 1 means 'still being filled', so status MUST be set to >1 here
+ // status == 2 means 'processed'
+ // status == 3 means 'smoothed'
+ // status == 98 means 'writing out'
+ // status == 99 means 'written out'
+ // status == 100 means 'failed'
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int AfterReadingFiles(void) throw(Exception)
+{
+ try {
+ config.oflog << "After reading files" << endl;
+
+ // compute the estimated data interval and write it out
+ for(int i=1; i<9; i++) if(config.ndt[i] > config.ndt[0]) {
+ int j = config.ndt[i]; double est = config.estdt[i];
+ config.ndt[i] = config.ndt[0]; config.estdt[i] = config.estdt[0];
+ config.ndt[0] = j; config.estdt[0] = est;
+ }
+ if(config.verbose)
+ config.oflog << "Data interval estimated from the data is "
+ << config.estdt[0] << " seconds." << endl;
+
+ // process all the passes that have not been processed yet
+ for(int i=0; i<SPList.size(); i++) {
+ if(SPList[i].status <= 1) {
+ ProcessSatPass(i);
+ if(!orfstr) // not writing out to RINEX
+ SPList[i].status = 99; // status == 99 means 'written out'
+ }
+ }
+
+ // write out all the (processed) data that has not already been written
+ WriteToRINEXfile();
+
+ // print a summary
+ PrintSPList(config.oflog,"Fine",SPList,false);
+
+ return 0;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// this will only write out passes for which ProcessSatPass() has been called. It
+// could be called anytime, particularly after each call to ProcessSatPass.
+void WriteToRINEXfile(void) throw(Exception)
+{
+ try {
+ int in,n;
+ DayTime targetTime=DayTime::END_OF_TIME;
+ static DayTime WriteEpoch(DayTime::BEGINNING_OF_TIME);
+
+ // find all passes that have been newly processed (status > 1 but < 98)
+ // mark these passes 'being written out' and initialize the iterator
+ for(in=0; in<SPList.size(); in++) {
+ if(SPList[in].status > 1 && SPList[in].status < 98) {
+ SPList[in].status = 98; // status == 98 means 'being written out'
+ SPIndexList[in] = 0; // initialize iteration over the data array
+ }
+ }
+
+ // find the earliest FirstTime of 'non-processed' (status==1) passes
+ for(in=0; in<SPList.size(); in++) {
+ if(SPList[in].status == 1 && SPList[in].getFirstTime() < targetTime)
+ targetTime = SPList[in].getFirstTime();
+ }
+ // targetTime will == END_OF_TIME, when all passes have been processed
+
+ if(targetTime < DayTime::END_OF_TIME
+ && WriteEpoch == DayTime::BEGINNING_OF_TIME) {
+ WriteRINEXheader();
+ WriteEpoch = config.FirstEpoch;
+ }
+
+ // nothing to do
+ if(targetTime <= WriteEpoch)
+ return;
+
+ WriteRINEXdata(WriteEpoch,targetTime);
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void WriteRINEXheader(void) throw(Exception)
+{
+ try {
+ RinexObsHeader rheadout;
+
+ config.oflog << "Write the output header at "
+ << CurrEpoch.printf(config.format) << endl;
+
+ // copy input
+ rheadout = rhead;
+
+ // change the obs type list to include only P1(C1) P2 L1 L2
+ rheadout.obsTypeList.clear();
+
+ rheadout.obsTypeList.push_back(RinexObsHeader::L1);
+ rheadout.obsTypeList.push_back(RinexObsHeader::L2);
+ if(UsingCA)
+ rheadout.obsTypeList.push_back(RinexObsHeader::C1);
+ else
+ rheadout.obsTypeList.push_back(RinexObsHeader::P1);
+ rheadout.obsTypeList.push_back(RinexObsHeader::P2);
+
+ // fill records in output header
+ rheadout.date = PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ rheadout.fileProgram = PrgmName;
+ if(!config.HDRunby.empty()) rheadout.fileAgency = config.HDRunby;
+ if(!config.HDObs.empty()) rheadout.observer = config.HDObs;
+ if(!config.HDAgency.empty()) rheadout.agency = config.HDAgency;
+ if(!config.HDMarker.empty()) rheadout.markerName = config.HDMarker;
+ if(!config.HDNumber.empty()) rheadout.markerNumber = config.HDNumber;
+ rheadout.version = 2.1; rheadout.valid |= RinexObsHeader::versionValid;
+ rheadout.firstObs = config.FirstEpoch; rheadout.valid
+ |= RinexObsHeader::firstTimeValid;
+ rheadout.interval = config.dt; rheadout.valid |= RinexObsHeader::intervalValid;
+ if(!WriteASAP) {
+ rheadout.interval = config.estdt[0];
+ rheadout.valid |= RinexObsHeader::intervalValid;
+ rheadout.lastObs = config.LastEpoch;
+ rheadout.valid |= RinexObsHeader::lastTimeValid;
+ }
+ if(config.smoothPR)
+ rheadout.commentList.push_back(string("Ranges smoothed by ") +
+ PrgmName + string(" v.") + PrgmVers.substr(0,4) + string(" ") +
+ rheadout.date);
+ if(config.smoothPH)
+ rheadout.commentList.push_back(string("Phases debiased by ") +
+ PrgmName + string(" v.") + PrgmVers.substr(0,4) + string(" ") +
+ rheadout.date);
+ if(config.smoothPR || config.smoothPH)
+ rheadout.valid |= RinexObsHeader::commentValid;
+ // invalidate the table
+ if(rheadout.valid & RinexObsHeader::numSatsValid)
+ rheadout.valid ^= RinexObsHeader::numSatsValid;
+ if(rheadout.valid & RinexObsHeader::prnObsValid)
+ rheadout.valid ^= RinexObsHeader::prnObsValid;
+
+ orfstr << rheadout;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void WriteRINEXdata(DayTime& WriteEpoch, const DayTime targetTime) throw(Exception)
+{
+ try {
+ bool first;
+ int in,n;
+ string str;
+ GSatID sat;
+ RinexObsData roe;
+ SatPassData spd;
+
+ // loop over epochs, up to just before targetTime
+ do {
+ // find the next WriteEpoch = earliest iterator time among the status==98
+ first = true;
+ for(in=0; in<SPList.size(); in++) {
+ if(SPList[in].status != 98) // status == 98 means 'being written out'
+ continue;
+
+ n = SPIndexList[in]; // current iterator index
+ if(first || SPList[in].time(n) < WriteEpoch) {
+ WriteEpoch = SPList[in].time(n);
+ first = false;
+ }
+ }
+ if(first) break;
+
+ // quit if reached the target
+ if(WriteEpoch >= targetTime) break;
+ // prepare the RINEX obs data
+ roe.epochFlag = 0;
+ roe.time = WriteEpoch;
+ roe.clockOffset = 0.0; // TD save from input?
+ roe.numSvs = 0; // will be incremented below
+ roe.obs.clear();
+
+ // output all data at this WriteEpoch
+ for(in=0; in<SPList.size(); in++) {
+ if(SPList[in].status != 98) continue;
+
+ sat = SPList[in].getSat();
+ n = SPIndexList[in]; // current iterator index
+
+ if(fabs(SPList[in].time(n) - WriteEpoch) < 0.00001) {
+ // get the data for this epoch
+ spd = SPList[in].getData(SPIndexList[in]);
+ str = asString(spd.indicators); // P1P2L1L2*ls AaBbCcDd
+ str = rightJustify(str,8,'0');
+
+ if(spd.flag > 0) { // data is good
+ // add sat to RinexObs
+ RinexObsData::RinexObsTypeMap rotm;
+ roe.obs[sat] = rotm;
+ roe.numSvs++;
+
+ // build the RINEX data object
+ RinexObsData::RinexDatum rd;
+
+ rd.lli = asInt(asString<char>(str[0]));
+ rd.ssi = asInt(asString<char>(str[1]));
+ rd.data = spd.P1;
+ if(UsingCA)
+ roe.obs[sat][RinexObsHeader::C1] = rd;
+ else
+ roe.obs[sat][RinexObsHeader::P1] = rd;
+
+ rd.lli = asInt(asString<char>(str[2]));
+ rd.ssi = asInt(asString<char>(str[3]));
+ rd.data = spd.P2;
+ roe.obs[sat][RinexObsHeader::P2] = rd;
+
+ //rd.lli = asInt(asString<char>(str[4]));
+ // TD ought to set the low bit
+ rd.lli = (spd.flag & SatPass::LL1)!=0 ? 1 : 0;
+ rd.ssi = asInt(asString<char>(str[5]));
+ rd.data = spd.L1;
+ roe.obs[sat][RinexObsHeader::L1] = rd;
+
+ //rd.lli = asInt(asString<char>(str[6]));
+ rd.lli = (spd.flag & SatPass::LL2)!=0 ? 1 : 0;
+ rd.ssi = asInt(asString<char>(str[7]));
+ rd.data = spd.L2;
+ roe.obs[sat][RinexObsHeader::L2] = rd;
+
+ config.oflog << "Out "
+ << WriteEpoch.printf(config.format)
+ << " " << roe.time.printf(config.format)
+ << " " << sat
+ << " " << spd.flag
+ << " " << setw(3) << spd.ndt // count
+ << fixed << setprecision(3)
+ << " " << setw(13) << spd.P1
+ << " " << setw(13) << spd.P2
+ << " " << setw(13) << spd.L1
+ << " " << setw(13) << spd.L2
+ << endl;
+ }
+
+ // go to next point
+ SPIndexList[in]++;
+
+ // end of data?
+ if(SPIndexList[in] >= SPList[in].size())
+ SPList[in].status = 99; // status == 99 means 'written out'
+ }
+ }
+
+ // actually write to RINEX
+ if(roe.numSvs > 0) {
+ config.SVonly.setfill(' '); // just for the hell of it
+ orfstr << roe;
+ config.SVonly.setfill('0');
+ }
+
+ } while(1); // end while loop over all epochs up to targetTime
+
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void PrintSPList(ostream& os, string msg, const vector<SatPass>& v, bool printTime)
+{
+ int i,j,gap;
+ GSatID sat;
+ map<GSatID,int> lastSP;
+ map<GSatID,int>::const_iterator kt;
+
+ os << "#" << leftJustify(msg,4)
+ << " gap tot sat ok s start time end time dt\n";
+
+ for(i=0; i<v.size(); i++) {
+ os << msg;
+ sat = v[i].getSat();
+ kt = lastSP.find(sat);
+ if(kt == lastSP.end())
+ gap = 0;
+ else {
+ j = kt->second;
+ gap = int((v[i].getFirstTime() - v[j].getLastTime()) / v[i].getDT() + 0.5);
+ lastSP.erase(sat);
+ }
+ lastSP[sat] = i;
+ os << " " << setw(4) << gap;
+
+ os << " " << v[i]; // sat,length,ngood,firstTime,lastTime
+ if(printTime)
+ os << " at " << CurrEpoch.printf(config.format);
+//"%04Y/%02m/%02d %02H:%02M:%6.3f"
+ os << endl;
+ }
+}
+
+//------------------------------------------------------------------------------------
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+int GetCommandLine(int argc, char **argv) throw(Exception)
+{
+ try {
+ bool help=false,DChelp=false,DChelpall=false;
+ int i,j;
+ // defaults
+ config.verbose = false;
+ config.ith = 0.0;
+ config.begTime = DayTime(DayTime::BEGINNING_OF_TIME);
+ config.endTime = DayTime(DayTime::END_OF_TIME);
+ config.MaxGap = 600.0;
+ //config.MinPts = 10;
+
+ config.LogFile = string("df.log");
+ config.OutFile = string("df.out");
+ config.format = string("%4F %10.3g");
+
+ config.UseCA = false; // meaning use P1 unless its absent, then C1
+ // true would mean use C1 only
+ config.dt = -1.0;
+
+ config.HDPrgm = PrgmName + string(" v.") + PrgmVers.substr(0,4);
+ config.HDRunby = string("ARL:UT/SGL/GPSTk");
+
+ config.smoothPR = false;
+ config.smoothPH = false;
+ config.smooth = false;
+ //config.CAOut = false;
+ //config.DopOut = false;
+
+ for(i=0; i<9; i++) config.ndt[i]=-1;
+
+ config.Directory = string(".");
+
+ // -------------------------------------------------
+ // required options
+ RequiredOption dashi(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"inputfile",
+ " --inputfile <file> Input (RINEX obs) file - more than one may be given");
+
+ RequiredOption dashDT(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"dt"," --dt <dt> Time spacing (sec) of the data. "
+ "[NB this defines DT\n in the GDC, hence "
+ + PrgmName + " ignores --DCDT=<dt> ]");
+ dashDT.setMaxCount(1);
+
+ // optional options
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," [-f|--file] <file> file containing more options");
+
+ CommandOption dashd(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"inputdir"," --inputdir <dir> Directory of input file(s)");
+ dashd.setMaxCount(1);
+
+ // time
+ CommandOption dashbt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"beginTime", "# Time limits:"
+ " args are of the form GPSweek,sow OR YYYY,MM,DD,HH,Min,Sec\n"
+ " --beginTime <arg> Start time of processing (BOF)");
+ dashbt.setMaxCount(1);
+
+ CommandOption dashet(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"endTime", " --endTime <arg> End time of processing (EOF)");
+ dashet.setMaxCount(1);
+
+ CommandOption dashith(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"decimate","# Data configuration\n"
+ " --decimate <dt> Decimate data to time interval (sec) dt");
+ dashith.setMaxCount(1);
+
+ CommandOptionNoArg dashCA(0,"forceCA", " --forceCA "
+ "Use C/A code range, NOT P code (default: only if P absent)");
+ dashCA.setMaxCount(1);
+
+ CommandOption dashGap(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"gap"," --gap <t> Minimum data gap (sec) separating "
+ "satellite passes (" + asString(int(config.MaxGap)) + ")");
+ dashGap.setMaxCount(1);
+
+ //CommandOption dashPts(CommandOption::hasArgument, CommandOption::stdType,
+ //0,"Points"," --Points <n> Minimum number of points needed to "
+ //"process a pass");
+ //dashPts.setMaxCount(1);
+
+ CommandOption dashSV(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"onlySat"," --onlySat <sat> Process only satellite <sat> "
+ "(a GPS SatID, e.g. G21)");
+ dashSV.setMaxCount(1);
+
+ CommandOption dashXsat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"exSat"," --exSat <sat> Exclude satellite(s) [e.g. --exSat G22]");
+
+ CommandOptionNoArg dashSmoothPR(0,"smoothPR",
+ "# Smoothing: [NB smoothed " "pseudorange and debiased phase are not identical.]\n"
+ " --smoothPR Smooth pseudorange and output in place of raw pseudorange");
+ dashSmoothPR.setMaxCount(1);
+
+ CommandOptionNoArg dashSmoothPH(0,"smoothPH",
+ " --smoothPH Debias phase and output in place of raw phase");
+ dashSmoothPH.setMaxCount(1);
+
+ // last smooth option - tack on a 'vapor-option'
+ CommandOptionNoArg dashSmooth(0,"smooth",
+ " --smooth Same as (--smoothPR AND --smoothPH)\n"
+ "# Discontinuity Corrector (DC) configuration:\n"
+ " --DClabel=value Set Discontinuity Corrector parameter 'label' to 'value'\n"
+ " [e.g. --DCWLSigma=1.5 or --DCDebug:7 " "or --DCMinPts,6]\n"
+ " --DChelp Print a list of GDC parameters and their defaults, then quit"
+ );
+ dashSmooth.setMaxCount(1);
+
+ CommandOption dashLog(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"logOut","# Output:\n --logOut <file> Output log file name ("
+ + config.LogFile + ")");
+ //dashLog.setMaxCount(1);
+
+ CommandOption dashOut(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"cmdOut"," --cmdOut <file> Output file name (for editing commands) ("
+ + config.OutFile + ")");
+ dashOut.setMaxCount(1);
+
+ CommandOption dashFormat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"format"," --format \"<format>\" Output time format (cf. gpstk::"
+ "DayTime) (" + config.format + ")");
+ dashFormat.setMaxCount(1);
+
+ CommandOption dashRfile(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RinexFile","# RINEX output:\n"
+ " --RinexFile <file> RINEX (obs) file name for output of corrected data");
+ //dashRfile.setMaxCount(1);
+
+ CommandOption dashRrun(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RunBy"," --RunBy <string> RINEX header 'RUN BY' string for output");
+ dashRrun.setMaxCount(1);
+
+ CommandOption dashRobs(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Observer"," --Observer <string> RINEX header 'OBSERVER' string for output");
+ dashRobs.setMaxCount(1);
+
+ CommandOption dashRag(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Agency"," --Agency <string> RINEX header 'AGENCY' string for output");
+ dashRag.setMaxCount(1);
+
+ CommandOption dashRmark(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Marker"," --Marker <string> RINEX header 'MARKER' string for output");
+ dashRmark.setMaxCount(1);
+
+ CommandOption dashRnumb(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Number"," --Number <string> RINEX header 'NUMBER' string for output");
+ dashRnumb.setMaxCount(1);
+
+ // TD? pass-through 'other' data found in input RINEX file - requires buffering?
+ //CommandOptionNoArg dashCAOut(0,"CAOut",
+ // " --CAOut Output C/A code in RINEX");
+ //dashCAOut.setMaxCount(1);
+
+ //CommandOptionNoArg dashDOut(0,"DOut",
+ // " --DOut Output Doppler in RINEX");
+ //dashDOut.setMaxCount(1);
+
+ CommandOptionNoArg dashh('h', "help",
+ "# Help:\n"
+ " [-h|--help] print this syntax page and quit."
+ "\n --DChelp Print a list of GDC parameters and "
+ "their defaults, and quit");
+ dashh.setMaxCount(1);
+
+ CommandOptionNoArg dashVerb(0,"verbose",
+ " --verbose print extended output to the log file");
+ dashVerb.setMaxCount(1);
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par("Prgm " + PrgmName +
+ " reads a RINEX observation data file containing GPS dual-frequency\n"
+ " pseudorange and carrier phase measurements, divides the data into 'satellite\n"
+ " passes', and finds and fixes discontinuities in the phases for each pass.\n"
+ " Output is a list of editing commands for use with program RinexEdit.\n"
+ " " + PrgmName
+ + " will (optionally) write the corrected pseudorange and phase data\n"
+ " to a new RINEX observation file. Other options will also smooth the\n"
+ " pseudorange and/or debias the corrected phase.\n"
+ " "+PrgmName+" calls the GPSTk Discontinuity Corrector (GDC vers "
+ + GDConfig.Version() + ").\n");
+
+ // -------------------------------------------------
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0) Args.push_back(string("-h"));
+
+ // strip out the DCcmds
+ vector<string> DCcmds;
+ vector<string>::iterator it=Args.begin();
+ while(it != Args.end()) {
+ if(it->substr(0,4) == string("--DC")) {
+ if(*it == "--DChelp") DChelp=true;
+ else if(*it == "--DChelpall" || *it == "--DCall") DChelp=DChelpall=true;
+ else DCcmds.push_back(*it);
+ it = Args.erase(it);
+ }
+ else it++;
+ }
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cout << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cout << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ // -------------------------------------------------
+ if(dashh.getCount() > 0) help = true;
+ if(Par.hasErrors()) {
+ if(!help && !DChelp) {
+ cout << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cout);
+ cout << "...end of Errors. For help run with option --help\n\n";
+ }
+ help = true;
+ }
+
+ // -------------------------------------------------
+ // get values found on command line
+ string msg;
+ vector<string> field;
+ vector<string> values;
+
+ // f never appears because we intercept it above
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+
+ // do help first
+ if(dashh.getCount()) help=true;
+
+ // now get the rest of the options
+ if(dashVerb.getCount()) config.verbose=true;
+ if(dashi.getCount()) {
+ values = dashi.getValue();
+ if(help) cout << "Input RINEX obs files are:\n";
+ for(i=0; i<values.size(); i++) {
+ config.InputObsName.push_back(values[i]);
+ if(help) cout << " " << values[i] << endl;
+ }
+ }
+ if(dashd.getCount()) {
+ values = dashd.getValue();
+ config.Directory = values[0];
+ if(help) cout << "Input Directory is " << config.Directory << endl;
+ }
+ if(dashith.getCount()) {
+ values = dashith.getValue();
+ config.ith = asDouble(values[0]);
+ if(help) cout << "Decimate value is " << config.ith << endl;
+ }
+
+ // TD put try {} around setToString and catch invalid formats...
+ if(dashbt.getCount()) {
+ values = dashbt.getValue();
+ msg = values[0];
+ field.clear();
+ while(msg.size() > 0)
+ field.push_back(stripFirstWord(msg,','));
+ if(field.size() == 2)
+ config.begTime.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ config.begTime.setToString(field[0]+","+field[1]+","+field[2]+","
+ +field[3]+","+field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cout << "Error: invalid --beginTime input: " << values[0] << endl;
+ }
+ if(help) cout << " Input: begin time " << values[0] << " = "
+ << config.begTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ if(dashet.getCount()) {
+ values = dashet.getValue();
+ msg = values[0];
+ field.clear();
+ while(msg.size() > 0)
+ field.push_back(stripFirstWord(msg,','));
+ if(field.size() == 2)
+ config.endTime.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ config.endTime.setToString(field[0]+","+field[1]+","+field[2]
+ +","+field[3]+","+field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cout << "Error: invalid --endTime input: " << values[0] << endl;
+ }
+ if(help) cout << " Input: end time " << values[0] << " = "
+ << config.endTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+
+ if(dashCA.getCount()) {
+ config.UseCA = true;
+ if(help) cout << "Input: Set the 'Use C/A code range' flag\n";
+ }
+ if(dashDT.getCount()) {
+ values = dashDT.getValue();
+ config.dt = asDouble(values[0]);
+ if(help) cout << "dt is set to " << config.dt << " seconds." << endl;
+ }
+ if(dashGap.getCount()) {
+ values = dashGap.getValue();
+ config.MaxGap = asDouble(values[0]);
+ if(help) cout << "Max gap is " << config.MaxGap << " seconds which is "
+ << int(config.MaxGap/config.dt) << " points." << endl;
+ }
+ //if(dashPts.getCount()) {
+ //values = dashPts.getValue();
+ //config.MinPts = asInt(values[0]);
+ //if(help) cout << "Minimum points is " << config.MinPts << endl;
+ //}
+ if(dashXsat.getCount()) {
+ values = dashXsat.getValue();
+ for(i=0; i<values.size(); i++) {
+ GSatID p(values[i]);
+ if(help) cout << "Exclude satellite " << p << endl;
+ config.ExSV.push_back(p);
+ }
+ }
+ if(dashSV.getCount()) {
+ values = dashSV.getValue();
+ GSatID p(values[0]);
+ config.SVonly = p;
+ if(help) cout << "Process only satellite : " << p << endl;
+ }
+ if(dashFormat.getCount()) {
+ values = dashFormat.getValue();
+ config.format = values[0];
+ if(help) cout << "Output times with format: " << config.format << endl;
+ }
+ if(dashOut.getCount()) {
+ values = dashOut.getValue();
+ config.OutFile = values[0];
+ if(help) cout << "Command output file is " << config.OutFile << endl;
+ }
+ if(dashRfile.getCount()) {
+ values = dashRfile.getValue();
+ // pick the last one entered
+ config.OutRinexObs = values[values.size()-1];
+ if(help) cout << "Output RINEX file name is "
+ << config.OutRinexObs << endl;
+ }
+ if(dashRrun.getCount()) {
+ values = dashRrun.getValue();
+ config.HDRunby = values[0];
+ if(help) cout << "Output RINEX 'RUN BY' is " << config.HDRunby << endl;
+ }
+ if(dashRobs.getCount()) {
+ values = dashRobs.getValue();
+ config.HDObs = values[0];
+ if(help) cout << "Output RINEX 'OBSERVER' is " << config.HDObs << endl;
+ }
+ if(dashRag.getCount()) {
+ values = dashRag.getValue();
+ config.HDAgency = values[0];
+ if(help) cout << "Output RINEX 'AGENCY' is " << config.HDAgency << endl;
+ }
+ if(dashRmark.getCount()) {
+ values = dashRmark.getValue();
+ config.HDMarker = values[0];
+ if(help) cout << "Output RINEX 'MARKER' is " << config.HDMarker << endl;
+ }
+ if(dashRnumb.getCount()) {
+ values = dashRnumb.getValue();
+ config.HDNumber = values[0];
+ if(help) cout << "Output RINEX 'NUMBER' is " << config.HDNumber << endl;
+ }
+ if(dashSmooth.getCount()) {
+ config.smoothPH = config.smoothPR = true;
+ if(help) cout << "'smooth both' option is on\n";
+ }
+ if(dashSmoothPR.getCount()) {
+ config.smoothPR = true;
+ if(help) cout << "smooth the pseudorange\n";
+ }
+ if(dashSmoothPH.getCount()) {
+ config.smoothPH = true;
+ if(help) cout << "debias the phase\n";
+ }
+ //if(dashCAOut.getCount()) {
+ // config.CAOut = true;
+ // if(help) cout << "Output the C/A code to RINEX\n";
+ //}
+ //if(dashDOut.getCount()) {
+ // config.DopOut = true;
+ // if(help) cout << "Output the doppler to RINEX\n";
+ //}
+
+ if(Rest.getCount() && help) {
+ cout << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) cout << values[i] << endl;
+ }
+ //if(config.verbose && help) {
+ // cout << "\nTokens on command line (" << Args.size() << ") are:"
+ // << endl;
+ // for(j=0; j<Args.size(); j++) cout << Args[j] << endl;
+ //}
+
+ //if(config.verbose) { // if GDCorrector::Debug is not set higher, set to 2
+ //GDCorrector.SetParameter(string("Debug=2"));
+ //}
+
+ // if help, print usage and quit
+ if(help || DChelp) {
+ if(help) Par.displayUsage(cout,false);
+ if(DChelp) {
+ GDConfig.DisplayParameterUsage(cout,DChelpall);
+ cout << "For " << PrgmName
+ << ", GDC commands are of the form --DC<GDCcmd>,"
+ << " e.g. --DCWLSigma=1.5\n" << endl;
+ }
+ return 1;
+ }
+
+ // get the log file name
+ if(dashLog.getCount()) {
+ values = dashLog.getValue();
+ // pick the last one entered
+ config.LogFile = values[values.size()-1];
+ //if(help) cout << "Log file is " << config.LogFile << endl;
+ }
+ // open the log file
+ config.oflog.open(config.LogFile.c_str(),ios::out);
+ if(config.oflog.fail()) {
+ cout << PrgmName << " failed to open log file "
+ << config.LogFile << ". Abort.\n";
+ return -1;
+ }
+ else {
+ cout << PrgmName << " is writing to log file " << config.LogFile << endl;
+ // output first stuff to log file
+ config.oflog << Title;
+ // allow GDC to output to log file
+ GDConfig.setDebugStream(config.oflog);
+ }
+
+ if(config.dt <= 0.0) {
+ config.oflog << PrgmName << ": dt must be positive" << endl;
+ return -1;
+ }
+
+ if(!config.smooth) config.smooth = (config.smoothPR || config.smoothPH);
+
+ // set the commands now (setParameter may write to log file)
+ for(i=0; i<DCcmds.size(); i++)
+ GDConfig.setParameter(DCcmds[i]);
+ // also, use the dt in SatPass to define the dt in GDC
+ // NB this means --DCDT on the DiscFix command line is ignored!
+ GDConfig.setParameter("DT",config.dt);
+
+ // print config to log, first DF
+ config.oflog << "\nHere is the " << PrgmName << " configuration:\n";
+ config.oflog << " Input RINEX obs files are:\n";
+ for(i=0; i<config.InputObsName.size(); i++) {
+ config.oflog << " " << config.InputObsName[i] << endl;
+ }
+ config.oflog << " Input Directory is " << config.Directory << endl;
+ config.oflog << " Ithing time interval is " << config.ith << endl;
+ if(config.begTime > DayTime(DayTime::BEGINNING_OF_TIME))
+ config.oflog << " Begin time is "
+ << config.begTime.printf("%04Y/%02m/%02d %02H:%02M:%.3f")
+ << " = " << config.begTime.printf("%04F/%10.3g") << endl;
+ if(config.endTime < DayTime(DayTime::END_OF_TIME))
+ config.oflog << " End time is "
+ << config.endTime.printf("%04Y/%02m/%02d %02H:%02M:%.3f")
+ << " = " << config.endTime.printf("%04F/%10.3g") << endl;
+ if(config.UseCA) config.oflog << " 'Use the C/A pseudorange' flag is set\n";
+ else config.oflog << "Do not use C/A code range (C1) unless P1 is absent\n";
+ config.oflog << " dt is set to " << config.dt << " seconds." << endl;
+ config.oflog << " Max gap is " << config.MaxGap << " seconds which is "
+ << int(config.MaxGap/config.dt) << " points." << endl;
+ //config.oflog << " Minimum points is " << config.MinPts << endl;
+ if(config.ExSV.size()) {
+ config.oflog << " Exclude satellites";
+ for(i=0; i<config.ExSV.size(); i++) {
+ if(config.ExSV[i].id == -1) config.oflog << " (all "
+ << config.ExSV[i].systemString() << ")" << endl;
+ else config.oflog << " " << config.ExSV[i];
+ }
+ config.oflog << endl;
+ }
+ if(config.SVonly.id > 0)
+ config.oflog << " Process only satellite : " << config.SVonly << endl;
+ config.oflog << " Log file is " << config.LogFile << endl;
+ config.oflog << " Out file is " << config.OutFile << endl;
+ config.oflog << " Output times in this format " << config.format << endl;
+ if(!config.OutRinexObs.empty())
+ config.oflog << " Output RINEX file name is " << config.OutRinexObs << endl;
+ if(!config.HDRunby.empty())
+ config.oflog << " Output RINEX 'RUN BY' is " << config.HDRunby << endl;
+ if(!config.HDObs.empty())
+ config.oflog << " Output RINEX 'OBSERVER' is " << config.HDObs << endl;
+ if(!config.HDAgency.empty())
+ config.oflog << " Output RINEX 'AGENCY' is " << config.HDAgency << endl;
+ if(!config.HDMarker.empty())
+ config.oflog << " Output RINEX 'MARKER' is " << config.HDMarker << endl;
+ if(!config.HDNumber.empty())
+ config.oflog << " Output RINEX 'NUMBER' is " << config.HDNumber << endl;
+ if(config.smoothPR) config.oflog << " 'Smoothed range' option is on\n";
+ if(config.smoothPH) config.oflog << " 'Smoothed phase' option is on\n";
+ if(!config.smooth) config.oflog << " No smoothing.\n";
+ //if(config.CAOut) config.oflog << " 'C/A output' option is on\n";
+ //if(config.DopOut) config.oflog << " 'Doppler output' option is on\n";
+
+ // print config to log, second GDC
+ config.oflog << "\nHere is the GPSTk DC configuration:\n";
+ GDConfig.DisplayParameterUsage(config.oflog,DChelpall);
+ config.oflog << endl;
+
+ return 0;
+
+ } // end try
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+ try {
+ static bool found_cfg_file=false;
+
+ if(string(arg) == string()) return;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip this line
+ buffer.clear();
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // this simply removes it from buffer
+ }
+ // break on EOF here b/c there can be a line w/o LF at EOF
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ // -v or --verbose
+ else if((arg[0]=='-' && arg[1]=='v') || string(arg)==string("--verbose")) {
+ config.verbose = true;
+ }
+ // old versions of args -- deprecated
+ else if(string(arg)==string("--directory")) { Args.push_back("--inputdir"); }
+ else if(string(arg)==string("--EpochBeg")) { Args.push_back("--beginTime"); }
+ else if(string(arg)==string("--EpochEnd")) { Args.push_back("--endTime"); }
+ else if(string(arg)==string("--GPSBeg")) { Args.push_back("--beginTime"); }
+ else if(string(arg)==string("--GPSEnd")) { Args.push_back("--endTime"); }
+ else if(string(arg)==string("--CA")) { Args.push_back("--forceCA"); }
+ else if(string(arg)==string("--useCA")) { Args.push_back("--forceCA"); }
+ else if(string(arg)==string("--DT")) { Args.push_back("--dt"); }
+ else if(string(arg)==string("--Gap")) { Args.push_back("--gap"); }
+ else if(string(arg)==string("--Smooth")) { Args.push_back("--smooth"); }
+ else if(string(arg)==string("--SmoothPR")) { Args.push_back("--smoothPR"); }
+ else if(string(arg)==string("--SmoothPH")) { Args.push_back("--smoothPH"); }
+ else if(string(arg)==string("--XPRN")) { Args.push_back("--exSat"); }
+ else if(string(arg)==string("--SVonly")) { Args.push_back("--onlySat"); }
+ else if(string(arg)==string("--Log")) { Args.push_back("--logOut"); }
+ else if(string(arg)==string("--Out")) { Args.push_back("--cmdOut"); }
+ // else its a regular command
+ else Args.push_back(arg);
+ //if(debug) cout << "arg " << string(arg) << endl;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(exception& e)
+ { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+ catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/cycleslips/Jamfile b/dev/apps/geomatics/cycleslips/Jamfile
new file mode 100644
index 0000000..e10b178
--- /dev/null
+++ b/dev/apps/geomatics/cycleslips/Jamfile
@@ -0,0 +1,16 @@
+#
+# $Id: Jamfile 71 2006-08-01 18:46:39Z ehagen $
+#
+
+SubDir TOP apps geomatics cycleslips ;
+
+SEARCH_SOURCE += $(TOP)/src ;
+SEARCH_SOURCE += $(TOP)/apps/geomatics/lib ;
+
+# link apps to libraries
+# must have the prefix here ... why, and why not with others?
+LinkLibraries DiscFix : $(LIBPREFIX)geomatic ;
+# gpstk must be last
+GPSLinkLibraries DiscFix : gpstk ;
+
+GPSMain DiscFix : DiscFix.cpp ;
diff --git a/dev/apps/geomatics/cycleslips/Makefile.am b/dev/apps/geomatics/cycleslips/Makefile.am
new file mode 100644
index 0000000..c91c3d7
--- /dev/null
+++ b/dev/apps/geomatics/cycleslips/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../../src -I$(srcdir)/../lib
+LDADD = ../../../src/libgpstk.la ../lib/libgeomatic.la
+
+bin_PROGRAMS = DiscFix
+
+DiscFix_SOURCES = DiscFix.cpp
diff --git a/trunk/apps/cycleslips/examples/GFP2.gp b/dev/apps/geomatics/cycleslips/examples/GFP2.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFP2.gp
rename to dev/apps/geomatics/cycleslips/examples/GFP2.gp
diff --git a/trunk/apps/cycleslips/examples/GFP2_Win.gp b/dev/apps/geomatics/cycleslips/examples/GFP2_Win.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFP2_Win.gp
rename to dev/apps/geomatics/cycleslips/examples/GFP2_Win.gp
diff --git a/trunk/apps/cycleslips/examples/GFP3.gp b/dev/apps/geomatics/cycleslips/examples/GFP3.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFP3.gp
rename to dev/apps/geomatics/cycleslips/examples/GFP3.gp
diff --git a/trunk/apps/cycleslips/examples/GFP3_Win.gp b/dev/apps/geomatics/cycleslips/examples/GFP3_Win.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFP3_Win.gp
rename to dev/apps/geomatics/cycleslips/examples/GFP3_Win.gp
diff --git a/trunk/apps/cycleslips/examples/GFP6.gp b/dev/apps/geomatics/cycleslips/examples/GFP6.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFP6.gp
rename to dev/apps/geomatics/cycleslips/examples/GFP6.gp
diff --git a/trunk/apps/cycleslips/examples/GFP6_Win.gp b/dev/apps/geomatics/cycleslips/examples/GFP6_Win.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFP6_Win.gp
rename to dev/apps/geomatics/cycleslips/examples/GFP6_Win.gp
diff --git a/trunk/apps/cycleslips/examples/GFRF2G17.jpg b/dev/apps/geomatics/cycleslips/examples/GFRF2G17.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFRF2G17.jpg
rename to dev/apps/geomatics/cycleslips/examples/GFRF2G17.jpg
diff --git a/trunk/apps/cycleslips/examples/GFRF3G17.jpg b/dev/apps/geomatics/cycleslips/examples/GFRF3G17.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFRF3G17.jpg
rename to dev/apps/geomatics/cycleslips/examples/GFRF3G17.jpg
diff --git a/trunk/apps/cycleslips/examples/GFRF6G31.jpg b/dev/apps/geomatics/cycleslips/examples/GFRF6G31.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/GFRF6G31.jpg
rename to dev/apps/geomatics/cycleslips/examples/GFRF6G31.jpg
diff --git a/trunk/apps/cycleslips/examples/WLSS2.gp b/dev/apps/geomatics/cycleslips/examples/WLSS2.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS2.gp
rename to dev/apps/geomatics/cycleslips/examples/WLSS2.gp
diff --git a/trunk/apps/cycleslips/examples/WLSS2G17.jpg b/dev/apps/geomatics/cycleslips/examples/WLSS2G17.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS2G17.jpg
rename to dev/apps/geomatics/cycleslips/examples/WLSS2G17.jpg
diff --git a/trunk/apps/cycleslips/examples/WLSS2_Win.gp b/dev/apps/geomatics/cycleslips/examples/WLSS2_Win.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS2_Win.gp
rename to dev/apps/geomatics/cycleslips/examples/WLSS2_Win.gp
diff --git a/trunk/apps/cycleslips/examples/WLSS3.gp b/dev/apps/geomatics/cycleslips/examples/WLSS3.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS3.gp
rename to dev/apps/geomatics/cycleslips/examples/WLSS3.gp
diff --git a/trunk/apps/cycleslips/examples/WLSS3G17.jpg b/dev/apps/geomatics/cycleslips/examples/WLSS3G17.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS3G17.jpg
rename to dev/apps/geomatics/cycleslips/examples/WLSS3G17.jpg
diff --git a/trunk/apps/cycleslips/examples/WLSS3_Win.gp b/dev/apps/geomatics/cycleslips/examples/WLSS3_Win.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS3_Win.gp
rename to dev/apps/geomatics/cycleslips/examples/WLSS3_Win.gp
diff --git a/trunk/apps/cycleslips/examples/WLSS6.gp b/dev/apps/geomatics/cycleslips/examples/WLSS6.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS6.gp
rename to dev/apps/geomatics/cycleslips/examples/WLSS6.gp
diff --git a/trunk/apps/cycleslips/examples/WLSS6G31.jpg b/dev/apps/geomatics/cycleslips/examples/WLSS6G31.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS6G31.jpg
rename to dev/apps/geomatics/cycleslips/examples/WLSS6G31.jpg
diff --git a/trunk/apps/cycleslips/examples/WLSS6_Win.gp b/dev/apps/geomatics/cycleslips/examples/WLSS6_Win.gp
similarity index 100%
rename from trunk/apps/cycleslips/examples/WLSS6_Win.gp
rename to dev/apps/geomatics/cycleslips/examples/WLSS6_Win.gp
diff --git a/trunk/apps/cycleslips/examples/chmp0110.02o.G31 b/dev/apps/geomatics/cycleslips/examples/chmp0110.02o.G31
similarity index 100%
rename from trunk/apps/cycleslips/examples/chmp0110.02o.G31
rename to dev/apps/geomatics/cycleslips/examples/chmp0110.02o.G31
diff --git a/trunk/apps/cycleslips/examples/df.inp b/dev/apps/geomatics/cycleslips/examples/df.inp
similarity index 100%
rename from trunk/apps/cycleslips/examples/df.inp
rename to dev/apps/geomatics/cycleslips/examples/df.inp
diff --git a/trunk/apps/cycleslips/examples/df_occult.inp b/dev/apps/geomatics/cycleslips/examples/df_occult.inp
similarity index 100%
rename from trunk/apps/cycleslips/examples/df_occult.inp
rename to dev/apps/geomatics/cycleslips/examples/df_occult.inp
diff --git a/trunk/apps/cycleslips/examples/eusk2950.01o.G17 b/dev/apps/geomatics/cycleslips/examples/eusk2950.01o.G17
similarity index 100%
rename from trunk/apps/cycleslips/examples/eusk2950.01o.G17
rename to dev/apps/geomatics/cycleslips/examples/eusk2950.01o.G17
diff --git a/trunk/apps/cycleslips/examples/euskCorrected.jpg b/dev/apps/geomatics/cycleslips/examples/euskCorrected.jpg
similarity index 100%
rename from trunk/apps/cycleslips/examples/euskCorrected.jpg
rename to dev/apps/geomatics/cycleslips/examples/euskCorrected.jpg
diff --git a/trunk/apps/cycleslips/examples/goDF1 b/dev/apps/geomatics/cycleslips/examples/goDF1
similarity index 100%
rename from trunk/apps/cycleslips/examples/goDF1
rename to dev/apps/geomatics/cycleslips/examples/goDF1
diff --git a/trunk/apps/cycleslips/examples/goDF1.bat b/dev/apps/geomatics/cycleslips/examples/goDF1.bat
similarity index 100%
rename from trunk/apps/cycleslips/examples/goDF1.bat
rename to dev/apps/geomatics/cycleslips/examples/goDF1.bat
diff --git a/trunk/apps/cycleslips/examples/goDF2 b/dev/apps/geomatics/cycleslips/examples/goDF2
similarity index 100%
rename from trunk/apps/cycleslips/examples/goDF2
rename to dev/apps/geomatics/cycleslips/examples/goDF2
diff --git a/trunk/apps/cycleslips/examples/goDF2.bat b/dev/apps/geomatics/cycleslips/examples/goDF2.bat
similarity index 100%
rename from trunk/apps/cycleslips/examples/goDF2.bat
rename to dev/apps/geomatics/cycleslips/examples/goDF2.bat
diff --git a/trunk/apps/cycleslips/examples/mjd2gps.awk b/dev/apps/geomatics/cycleslips/examples/mjd2gps.awk
similarity index 100%
rename from trunk/apps/cycleslips/examples/mjd2gps.awk
rename to dev/apps/geomatics/cycleslips/examples/mjd2gps.awk
diff --git a/dev/apps/geomatics/kalman/Jamfile b/dev/apps/geomatics/kalman/Jamfile
new file mode 100644
index 0000000..a646308
--- /dev/null
+++ b/dev/apps/geomatics/kalman/Jamfile
@@ -0,0 +1,20 @@
+#
+# $Id: Jamfile 71 2006-08-01 18:46:39Z ehagen $
+#
+
+SubDir TOP apps geomatics kalman ;
+
+SEARCH_SOURCE += $(TOP)/src ;
+SEARCH_SOURCE += $(TOP)/apps/geomatics/lib ;
+
+#link prgms to libraries
+# must have the prefix here ... why, and why not with others?
+LinkLibraries tnl tsrif tsrifsu tsriftu mergeSRI : $(LIBPREFIX)geomatic ;
+# gpstk must be last
+GPSLinkLibraries tnl tsrif tsrifsu tsriftu mergeSRI : gpstk ;
+
+GPSMain tnl : tnl.cpp ;
+GPSMain tsrif : tsrif.cpp ;
+GPSMain tsrifsu : tsrifsu.cpp ;
+GPSMain tsriftu : tsriftu.cpp ;
+GPSMain mergeSRI : mergeSRI.cpp ;
diff --git a/dev/apps/geomatics/kalman/Makefile.am b/dev/apps/geomatics/kalman/Makefile.am
new file mode 100644
index 0000000..8558bc7
--- /dev/null
+++ b/dev/apps/geomatics/kalman/Makefile.am
@@ -0,0 +1,12 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../../src -I$(srcdir)/../lib
+# In this order!
+LDADD = ../lib/libgeomatic.la ../../../src/libgpstk.la
+
+bin_PROGRAMS = tnl tsrif tsrifsu tsriftu mergeSRI
+
+mergeSRI_SOURCES = mergeSRI.cpp
+tnl_SOURCES = tnl.cpp
+tsrif_SOURCES = tsrif.cpp
+tsrifsu_SOURCES = tsrifsu.cpp
+tsriftu_SOURCES = tsriftu.cpp
diff --git a/dev/apps/geomatics/kalman/mergeSRI.cpp b/dev/apps/geomatics/kalman/mergeSRI.cpp
new file mode 100644
index 0000000..c91488d
--- /dev/null
+++ b/dev/apps/geomatics/kalman/mergeSRI.cpp
@@ -0,0 +1,180 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file mergeSRI.cpp
+ * Read files containing SRIs with labels, merge into a single SRI.
+ */
+
+//------------------------------------------------------------------------------------
+#include <iostream>
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <string>
+#include <vector>
+#include "StringUtils.hpp"
+#include "SRI.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// Read all the files on the command line, they should contain covariance and state
+// with labels. Merge all these SRIs and output the final covariance and state.
+int main(int argc, char **argv)
+{
+ try {
+ bool verbose=false;
+ int i,n,N,nfile,nline,nword;
+ string line,word;
+ Matrix<double> cov;
+ Vector<double> state;
+ Namelist name;
+ SRI S;
+
+ if(argc <= 1) {
+ cout << "Prgm mergeSRI combines solution and covariance results from "
+ << "different sources\n into a single result. Each file named on the "
+ << "command line consists of lines,\n one per row of the covariance "
+ << "matrix, of the form\n label(i) cov(i,0) cov(i,1) ... cov(i,n) "
+ << "solution(i)\n where there are n lines in the file (i.e. the "
+ << "covariance matrix is square)\n and labels are used consistently "
+ << "among all the results in all the files.\n Results are output as "
+ << "a single combined namelist, covariance and solution.\n";
+ return 0;
+ }
+
+ nfile = 0;
+ for(i=1; i<argc; i++) {
+ if(string(argv[i]) == string("-v") ||
+ string(argv[i]) == string("--verbose")) {
+ verbose = true;
+ continue;
+ }
+
+ ifstream ifs(argv[i]);
+ if(!ifs) {
+ cout << "Could not open file " << argv[i] << endl;
+ continue;
+ }
+ if(verbose) cout << "Opened file " << argv[i] << endl;
+
+ // read the file
+ N = nline = 0; // N is the dimension of cov and state and name
+ while(!ifs.eof() && ifs.good()) {
+ getline(ifs,line);
+ StringUtils::stripTrailing(line,'\r');
+ if(ifs.bad()) break;
+ StringUtils::stripLeading(line);
+ if(line.empty()) break;
+ n = StringUtils::numWords(line);
+ if(N == 0) {
+ N = n-2;
+ cov = Matrix<double>(N,N,0.0);
+ state = Vector<double>(N,0.0);
+ name.clear();
+ }
+ else if(n-2 != N) {
+ cerr << "Warning - dimensions are wrong in file " << argv[i]
+ << " : " << n-2 << " != " << N << endl;
+ }
+ nword = 0;
+ while(1) {
+ word = StringUtils::stripFirstWord(line);
+ if(word.empty()) break;
+ if(nword == 0) {
+ name += word;
+ }
+ else if(nword < N+1) {
+ cov(nline,nword-1) = StringUtils::asDouble(word);
+ }
+ else if(nword == N+1) {
+ state(nline) = StringUtils::asDouble(word);
+ }
+ nword++;
+ };
+ nline++;
+ if(nline > N) break;
+ }
+ ifs.close();
+
+ if(N <= 0 || name.size() <= 0) {
+ cout << "Empty file - ignore : " << argv[i] << endl;
+ continue;
+ }
+
+ name.resize(N);
+ cout << "Add file " << argv[i] << " : state names " << name << endl;
+ if(verbose) {
+ LabelledVector Lstate(name,state);
+ Lstate.fixed().setw(16).setprecision(6);
+ cout << "State" << endl << Lstate << endl;
+ LabelledMatrix Lcov(name,cov);
+ Lcov.scientific().setw(16).setprecision(6);
+ cout << "Covariance" << endl << Lcov << endl;
+ }
+
+ SRI S1(name);
+ S1.addAPriori(cov,state);
+ S += S1;
+
+ nfile++;
+ }
+
+ if(nfile <= 0) {
+ cout << "No files!\n";
+ return 0;
+ }
+
+ double small,big;
+ S.getStateAndCovariance(state,cov,&small,&big);
+ cout << endl;
+ LabelledVector Ls(name,state);
+ Ls.fixed().setw(16).setprecision(6);
+ cout << "Final state" << endl << Ls << endl;
+ LabelledMatrix Lc(name,cov);
+ Lc.scientific().setw(16).setprecision(6);
+ cout << endl << "Final covariance" << endl << Lc << endl;
+ }
+ catch(MatrixException& me) {
+ cerr << "Exception: " << me << endl;
+ return -1;
+ }
+ return 0;
+}
diff --git a/dev/apps/geomatics/kalman/tnl.cpp b/dev/apps/geomatics/kalman/tnl.cpp
new file mode 100644
index 0000000..0f7aef8
--- /dev/null
+++ b/dev/apps/geomatics/kalman/tnl.cpp
@@ -0,0 +1,105 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file tnl.cpp
+ * Test the namelist class.
+ */
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <vector>
+#include "Namelist.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+int main(void)
+{
+ vector<string> vs;
+ Namelist N,N1,N2,N3;
+
+ N1 += string("Fred");
+ N1 += string("Millie");
+ N1 += string("Constipation");
+ N1 += string("Serendipity");
+ N1 += string("Harmony");
+ vs.push_back(string("X comp"));
+ vs.push_back(string("Y bias"));
+ vs.push_back(string("Harmony"));
+ vs.push_back(string("Z res"));
+ N2 = Namelist(vs);
+ N3 = N1 | N2;
+
+ cout << " Namelist 1: " << N1 << endl;
+ cout << " Namelist 2: " << N2 << endl;
+ cout << " Namelist 3: " << N3 << endl;
+
+ N = N1 ^ N2;
+ cout << " N1 xor N2: " << N << endl;
+ N = N1 | N2;
+ cout << " N1 or N2: " << N << endl;
+ N = N1 & N3;
+ cout << " N1 and N3: " << N << endl;
+ N -= (string("Fred"));
+ cout << " N1 and N3 without Fred: " << N << endl;
+ N.resize(6);
+ cout << " Prev NL resized to 6: " << N << endl;
+ N -= string("Millie");
+ N -= string("Harmony");
+ N -= string("Constipation");
+ cout << " Prev NL without Millie and Harmony and Constipation\n " << N << endl;
+ N.resize(6);
+ cout << " Prev NL resized to 6: " << N << endl;
+ N.resize(7);
+ N.setName(5,string("Twenty"));
+ cout << " Prev NL resized to 7: " << N << endl;
+ N.sort();
+ cout << " Prev NL sorted: " << N << endl;
+ cout << " print the elements of N2 using get : ";
+ for(int i=0; i<N2.size(); i++) cout << " / " << N2.getName(i);
+ cout << endl;
+
+ cout << "End test prgm" << endl;
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+
diff --git a/dev/apps/geomatics/kalman/tsrif.cpp b/dev/apps/geomatics/kalman/tsrif.cpp
new file mode 100644
index 0000000..9f4f3ed
--- /dev/null
+++ b/dev/apps/geomatics/kalman/tsrif.cpp
@@ -0,0 +1,1430 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file tsrif.cpp
+ * Test class measurement update of SRIFilter
+ */
+
+//------------------------------------------------------------------------------------
+#include <iostream>
+#include <iomanip>
+
+#include "SRIFilter.hpp"
+#include "StringUtils.hpp"
+#include "random.hpp"
+#include "DayTime.hpp"
+#include "Stats.hpp"
+#include "PolyFit.hpp"
+#include "RobustStats.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// convenience
+void LSFunc(Vector<double>& X, Vector<double>& f, Matrix<double>& P);
+void doIt(Vector<double>& data, Vector<double>& sol, Matrix<double>& cov);
+
+//------------------------------------------------------------------------------------
+// prints inside SRIFilter
+bool verbose=false;
+// data for the various tests
+int test,batch,batchsize,batchlen;
+// fake satellites
+// (X,Y,Z)(t) = RSV*(st*sp,st*cp,ct)
+// where t=Theta+OmegaTheta*t, p=Phi+OmegaPhi*t, s=sin(), c=cos()
+double RSV[4]={22.123, 20.984, 21.873, 22.749},
+ OmegaPhi[4]={ 0.222, 0.128, -0.209, 0.399},
+OmegaTheta[4]={ 0.199, -0.233, 0.212, -0.274},
+ Phi[4]={-5.000, 3.209, 0.000, -1.230},
+ Theta[4]={ 0.000, 6.123, -1.237, 4.003},
+ Bias[4]={18.239, 83.928, -2.489, 45.209},
+ Drift[4]={ 0.238, -0.983, 0.703, 0.834};
+Matrix<double> P6; // for test 6,7
+Vector<double> D6; // for test 6,7
+Vector<double> D4; // for test 4,5
+// test 8,9
+// n is the number of turns
+// w is the wire width (microm)
+// d is the inner diameter (microm)
+// D is the outer diameter (microm)
+// L is the measured inductance (nH)
+double n8[50] = {
+ 3.7500, 4.2500, 9.2500, 4.5000, 5.7500, 12.0000, 7.0000, 6.0000, 8.0000, 4.0000,
+ 11.0000, 8.0000, 6.0000, 3.0000, 5.0000, 9.0000, 16.0000, 6.0000, 3.0000, 4.0000,
+ 2.0000, 2.0000, 3.0000, 9.2500, 4.0000, 8.0000, 6.0000, 3.5000, 4.5000, 5.5000,
+ 6.5000, 7.5000, 9.2500, 6.7500, 2.5000, 4.2500, 7.0000, 3.0000, 9.0000, 8.0000,
+ 5.0000, 9.0000, 3.2500, 4.5000, 3.0000, 5.7500, 3.0000, 4.0000, 6.0000, 8.0000
+};
+double w8[50] = {
+ 22.4000, 21.0000, 6.0000, 17.6000, 12.0000, 3.2000, 13.0000, 24.0000, 5.0000,
+ 5.0000, 9.0000, 14.0000, 19.0000, 19.0000, 24.0000, 6.5000, 5.0000, 9.0000,
+ 9.0000, 14.0000, 14.0000, 19.0000, 24.0000, 5.2000, 16.0000, 10.0000, 15.0000,
+ 10.0000, 10.0000, 10.0000, 10.0000, 10.0000, 5.2000, 13.0000, 13.0000, 13.0000,
+ 15.0000, 20.0000, 6.5000, 6.0000, 7.0000, 7.0000, 25.0000, 23.0000, 18.0000,
+ 9.5000, 90.0000, 16.0000, 16.0000, 16.0000
+};
+double d8[50] = {
+ 165.4500, 132.8500, 64.3500, 221.9000, 82.0500, 57.0000, 34.0000, 42.0000,
+ 164.0000, 236.0000, 22.0000, 20.0000, 32.0000, 170.0000, 28.0000, 25.0000,
+ 20.0000, 152.0000, 230.0000, 164.0000, 236.0000, 216.0000, 140.0000, 15.8000,
+ 38.0000, 80.0000, 75.0000, 177.5000, 115.5000, 75.5000, 44.5000, 20.5000,
+ 15.8000, 34.0000, 204.0000, 34.0000, 30.0000, 210.0000, 5.0000, 46.0000,
+ 44.0000, 44.0000, 150.5000, 51.0000, 168.0000, 23.7500, 136.0000, 74.0000,
+ 100.0000, 136.0000
+};
+double D8[50] = {
+ 345, 325, 210, 395, 240, 180, 300, 400, 300, 300,
+ 300, 300, 300, 300, 300, 230, 300, 300, 300, 300,
+ 300, 300, 300, 145, 226, 310, 285, 255, 216, 199,
+ 191, 190, 145, 290, 290, 190, 300, 410, 210, 226,
+ 154, 250, 340, 300, 300, 190, 700, 262, 392, 532
+};
+double L8[50] = {
+ 5.2000, 5.5000, 13.7000, 10.2000, 6.5000, 20.1000, 7.6000, 7.3000, 23.5000,
+ 9.7000, 17.3000, 9.0000, 5.5000, 3.5000, 3.7000, 9.6000, 36.6000, 12.3000,
+ 5.2000, 5.9000, 2.4000, 2.1000, 2.8000, 6.4000, 2.1000, 13.9000, 7.2000,
+ 5.2000, 5.3000, 5.3000, 5.3000, 5.5000, 6.2000, 7.0000, 3.1000, 2.1000,
+ 7.4000, 4.3000, 7.5000, 9.1000, 2.8000, 12.1000, 3.6000, 3.5000, 3.4000,
+ 3.4000, 3.9000, 3.1000, 9.8000, 23.8000
+};
+double x10[5]={ 1.5, 1.5, 1.8, 2.0, 2.5 };
+//double x10[5]={ 1.5, 1.5, 1.0, 2.0, 2.5 }; // sats in line -> clear double well
+double y10[5]={ 1.5, 2.0, 2.5, 1.75, 1.5 };
+// 150 data - actually 149, 2005 is made up
+int years11[] = {1856,1857,1858,1859,1860,1861,1862,1863,1864,1865,1866,1867,
+ 1868,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,
+ 1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,
+ 1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,
+ 1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,
+ 1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,
+ 1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,
+ 1952,1953,1954,1955,1956,1957,1958,1959,1960,1961,1962,1963,1964,1965,
+ 1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,
+ 1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,
+ 1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005
+};
+double temps11[] = {-0.379,-0.462,-0.416,-0.225,-0.372,-0.404,-0.527,-0.273,
+ -0.474,-0.267,-0.223,-0.291,-0.225,-0.305,-0.296,-0.351,-0.266,-0.327,
+ -0.376,-0.424,-0.452,-0.211,-0.057,-0.287,-0.296,-0.246,-0.262,-0.318,
+ -0.349,-0.350,-0.254,-0.343,-0.311,-0.200,-0.413,-0.353,-0.407,-0.449,
+ -0.414,-0.362,-0.199,-0.186,-0.339,-0.250,-0.192,-0.256,-0.349,-0.445,
+ -0.443,-0.371,-0.292,-0.505,-0.477,-0.447,-0.442,-0.465,-0.406,-0.393,
+ -0.248,-0.159,-0.373,-0.495,-0.410,-0.292,-0.293,-0.217,-0.323,-0.299,
+ -0.347,-0.246,-0.116,-0.218,-0.227,-0.361,-0.152,-0.099,-0.137,-0.239,
+ -0.139,-0.172,-0.121,-0.024,0.076,-0.038,-0.083,0.028,-0.020,0.001,
+ 0.158,0.039,-0.120,-0.105,-0.093,-0.097,-0.210,-0.093,-0.025,0.045,
+ -0.170,-0.189,-0.272,-0.006,0.061,0.014,-0.028,0.015,0.008,0.039,-0.233,
+ -0.166,-0.084,-0.093,-0.105,0.040,-0.031,-0.187,-0.041,0.093,-0.171,
+ -0.123,-0.200,0.057,-0.036,0.067,0.102,0.133,0.019,0.226,0.031,0.014,
+ 0.096,0.253,0.240,0.163,0.310,0.251,0.116,0.179,0.232,0.373,0.227,0.411,
+ 0.579,0.340,0.289,0.422,0.474,0.474,0.459,0.5
+};
+
+const int M151=72;
+string msg1(" (from DDBase T202B ASWA CTRA G11 G14)");
+int n151[] = {
+ 213, 214, 215, 216, 217, 218, 228, 229, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
+ 293, 294, 295, 296, 297, 298, 299, 300
+};
+double y151[] = {
+ 0.021, -0.012, -0.027, -0.068, -0.024, -0.043, -0.064, -0.023, -0.114, -0.030,
+ 0.009, 0.095, 0.108, 0.088, 0.126, 0.195, 0.295, 0.305, 0.303, 0.305, 0.310,
+ 0.312, 0.310, 0.309, 0.316, 0.313, 0.319, 0.321, 0.322, 0.319, 0.320, 0.320,
+ 0.319, 0.323, 0.326, 0.325, 0.330, 0.328, 0.329, 0.330, 0.339, 0.337, 0.336,
+ 0.344, 0.343, 0.343, 0.347, 0.346, 0.345, 0.344, 0.339, 0.345, 0.352, 0.349,
+ 0.355, 0.357, 0.360, 0.360, 0.359, 0.363, 0.361, 0.357, 0.359, 0.362, 0.363,
+ 0.364, 0.366, 0.366, 0.367, 0.374, 0.374, 0.375
+};
+
+const int M152=276;
+string msg2(" (from DDBase T202D ASWA CTRA G16 G25)");
+int n152[] = {
+25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
+35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
+65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
+95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
+115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
+125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
+145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
+155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
+185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
+215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
+295, 296, 297, 298, 299, 300
+};
+double y152[] = {
+0.173, 0.189, 0.175, 0.126, 0.044, -0.081, -0.076, -0.079, -0.079, -0.081,
+-0.077, -0.079, -0.074, -0.070, -0.073, -0.072, -0.066, -0.067, -0.060, -0.059,
+-0.059, -0.054, -0.055, -0.049, -0.052, -0.052, -0.046, -0.044, -0.044, -0.038,
+-0.037, -0.033, -0.036, -0.031, -0.040, -0.036, -0.035, -0.031, -0.035, -0.031,
+-0.030, -0.031, -0.030, -0.030, -0.028, -0.025, -0.024, -0.026, -0.027, -0.025,
+-0.014, -0.014, -0.012, -0.012, -0.011, -0.005, 0.000, -0.004, 0.001, -0.004,
+0.002, 0.001, 0.003, 0.004, 0.002, 0.009, 0.012, 0.011, 0.012, 0.012,
+0.011, 0.007, 0.009, 0.011, 0.010, 0.012, 0.010, 0.010, 0.017, 0.018,
+0.019, 0.026, 0.024, 0.024, 0.031, 0.034, 0.037, 0.038, 0.040, 0.045,
+0.047, 0.045, 0.046, 0.046, 0.044, 0.048, 0.048, 0.046, 0.046, 0.049,
+0.046, 0.047, 0.050, 0.044, 0.047, 0.049, 0.050, 0.055, 0.057, 0.056,
+0.056, 0.064, 0.066, 0.072, 0.072, 0.072, 0.071, 0.073, 0.075, 0.075,
+0.077, 0.076, 0.072, 0.071, 0.081, 0.081, 0.082, 0.086, 0.086, 0.088,
+0.083, 0.090, 0.089, 0.094, 0.091, 0.092, 0.095, 0.097, 0.093, 0.095,
+0.098, 0.098, 0.099, 0.098, 0.098, 0.103, 0.100, 0.102, 0.101, 0.106,
+0.104, 0.107, 0.108, 0.112, 0.112, 0.112, 0.116, 0.117, 0.118, 0.119,
+0.125, 0.124, 0.127, 0.127, 0.126, 0.127, 0.127, 0.128, 0.128, 0.132,
+0.131, 0.135, 0.131, 0.135, 0.130, 0.131, 0.135, 0.134, 0.136, 0.139,
+0.140, 0.140, 0.140, 0.144, 0.145, 0.147, 0.147, 0.149, 0.152, 0.150,
+0.151, 0.151, 0.154, 0.154, 0.157, 0.161, 0.163, 0.163, 0.161, 0.162,
+0.164, 0.165, 0.165, 0.167, 0.166, 0.166, 0.169, 0.170, 0.171, 0.170,
+0.173, 0.172, 0.173, 0.174, 0.175, 0.175, 0.176, 0.176, 0.179, 0.182,
+0.184, 0.181, 0.180, 0.183, 0.182, 0.188, 0.187, 0.190, 0.192, 0.194,
+0.196, 0.195, 0.196, 0.200, 0.196, 0.201, 0.201, 0.198, 0.199, 0.200,
+0.199, 0.201, 0.202, 0.203, 0.201, 0.204, 0.206, 0.209, 0.207, 0.208,
+0.210, 0.210, 0.209, 0.212, 0.213, 0.215, 0.211, 0.216, 0.215, 0.214,
+0.212, 0.217, 0.216, 0.217, 0.218, 0.219, 0.222, 0.222, 0.223, 0.224,
+0.227, 0.227, 0.226, 0.224, 0.226, 0.227
+};
+
+const int M153=190;
+string msg3(" (from DDBase T202D ASWA CTRA G20 G25)");
+int n153[] = {
+111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
+151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
+161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
+171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
+191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
+201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
+211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
+221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
+231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
+241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
+251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
+261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
+281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
+291, 292, 293, 294, 295, 296, 297, 298, 299, 300
+};
+double y153[] = {
+-0.090, -0.100, -0.084, -0.027, 0.070, 0.202, 0.200, 0.204, 0.203, 0.205,
+0.207, 0.208, 0.207, 0.217, 0.212, 0.217, 0.219, 0.221, 0.224, 0.224,
+0.229, 0.228, 0.238, 0.235, 0.232, 0.237, 0.239, 0.242, 0.246, 0.243,
+0.242, 0.248, 0.243, 0.246, 0.248, 0.254, 0.253, 0.253, 0.253, 0.259,
+0.256, 0.259, 0.262, 0.265, 0.267, 0.269, 0.272, 0.274, 0.273, 0.274,
+0.276, 0.275, 0.282, 0.282, 0.287, 0.281, 0.289, 0.290, 0.293, 0.297,
+0.299, 0.301, 0.298, 0.300, 0.302, 0.306, 0.309, 0.310, 0.310, 0.308,
+0.317, 0.316, 0.316, 0.323, 0.326, 0.322, 0.329, 0.327, 0.328, 0.338,
+0.336, 0.332, 0.339, 0.345, 0.343, 0.347, 0.350, 0.353, 0.354, 0.355,
+0.356, 0.361, 0.364, 0.361, 0.364, 0.368, 0.366, 0.370, 0.372, 0.373,
+0.368, 0.374, 0.379, 0.376, 0.374, 0.378, 0.380, 0.384, 0.387, 0.388,
+0.389, 0.394, 0.396, 0.395, 0.399, 0.399, 0.398, 0.400, 0.404, 0.408,
+0.411, 0.413, 0.415, 0.413, 0.418, 0.419, 0.420, 0.424, 0.428, 0.429,
+0.429, 0.429, 0.438, 0.435, 0.438, 0.439, 0.441, 0.440, 0.439, 0.447,
+0.448, 0.452, 0.452, 0.454, 0.456, 0.458, 0.461, 0.462, 0.461, 0.465,
+0.468, 0.470, 0.469, 0.471, 0.471, 0.478, 0.476, 0.480, 0.481, 0.485,
+0.482, 0.492, 0.493, 0.495, 0.493, 0.491, 0.496, 0.501, 0.503, 0.504,
+0.509, 0.509, 0.510, 0.510, 0.512, 0.515, 0.516, 0.514, 0.521, 0.520,
+0.523, 0.524, 0.527, 0.526, 0.532, 0.533, 0.535, 0.540, 0.537, 0.541
+};
+
+const int M154=61;
+string msg4(" (from DDBase T202B ASWA CTRA G11 G14 after edit-resets)");
+int n154[] = {
+240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
+250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
+260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
+280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
+290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+300
+};
+double y154[] = {
+0.095, 0.108, 0.088, 0.126, 0.195, 0.295, 0.305, 0.303, 0.305, 0.310,
+0.312, 0.310, 0.309, 0.316, 0.313, 0.319, 0.321, 0.322, 0.319, 0.320,
+0.320, 0.319, 0.323, 0.326, 0.325, 0.330, 0.328, 0.329, 0.330, 0.339,
+0.337, 0.336, 0.344, 0.343, 0.343, 0.347, 0.346, 0.345, 0.344, 0.339,
+0.345, 0.352, 0.349, 0.355, 0.357, 0.360, 0.360, 0.359, 0.363, 0.361,
+0.357, 0.359, 0.362, 0.363, 0.364, 0.366, 0.366, 0.367, 0.374, 0.374,
+0.375
+};
+
+int *n15,M15;
+double *y15,w15[M152];
+string msg;
+
+// formats
+#include "format.hpp"
+format f103(10,3),f103e(10,3,2),f106(10,6),f133(13,3),f63(6,3);
+
+// stuff for doIt
+Vector<double> truth;
+SRIFilter srif;
+
+//------------------------------------------------------------------------------------
+// test least squares using SRIFilter
+int main(int argc, char **argv)
+{
+try {
+ int iterationsLimit = 20;
+ double convergenceLimit = 1.e-14;
+ int i,j,k,M,N,dataset=2;
+ double t,inputsig=-1.,inputtau=-1.;
+ Vector<double> data;
+ Vector<double> sol;
+ Matrix<double> cov,partials;
+ Namelist NL;
+
+ if(argc > 1) {
+ for(i=1; i<argc; i++) {
+ //cout << "arg " << i << " is " << argv[i] << endl;
+ j = atoi(argv[i]);
+ if(j > 0)
+ test = j;
+ else if(argv[i][0] == '-') {
+ if(argv[i][1] == 'v' || argv[i][1]=='V')
+ verbose = true;
+ else if(argv[i][1] == 't' || argv[i][1] == 'T') {
+ i++;
+ inputtau = atof(argv[i]);
+ }
+ else if(argv[i][1] == 's' || argv[i][1] == 'S') {
+ i++;
+ inputsig = atof(argv[i]);
+ }
+ else if(argv[i][1] == 'd' || argv[i][1] == 'D') {
+ i++;
+ dataset = atoi(argv[i]);
+ }
+ }
+ else
+ cout << "Unrecognized option: " << argv[i] << endl;
+ }
+ if(dataset < 1 || dataset > 4) {
+ cout << "Error: -d [1234] only. Abort\n";
+ return -1;
+ }
+ }
+ else {
+ cout << "Test least squares using class SRIFilter\n";
+ cout << " Usage tsrif <n> [-v] [-t tau] [-s sig] [-d n]" << endl;
+ cout << " where -v turns on verbose output inside SRIFilter" << endl;
+ cout << " and -t and -s are for choice 14 (see below)" << endl;
+ cout << " and -d is for choices 15 & 16, n=1,2,3,or4 (see below)" << endl;
+ cout << " and n is:" << endl;
+ cout << " 1 simple 1-d linear problem" << endl;
+ cout << " 2 simple 1-d linearized problem" << endl;
+ cout << " 3 multi-dimensional non-linear problem" << endl;
+ cout << " 4 a non-linear batch test; a ranging problem" << endl;
+ cout << " 5 test 4 done sequentially" << endl;
+ cout << " 6 a batch linear test with random partials and data" << endl;
+ cout << " 7 same as 6, but sequential" << endl;
+ cout << " 8 a very non-linear equation made linear" << endl;
+ cout << " 9 direct linearized solution of test 8" << endl;
+ cout << " 10 a 2-d ranging problem with a false minimum" << endl;
+ cout << " 11 global warming trends - polynomial fit in batchs" << endl;
+ cout << " 12 global warming trends - polynomial fit in one batch" << endl;
+ cout << " 13 global warming trends - piecewise fit in one batch" << endl;
+ cout << " 14 global warming trends - piecewise fit constrained by "
+ << "Gauss-Markov process\n characterized by sigma and tau "
+ << "(input or defaults: tau=50,sig=0.1)." << endl;
+ cout << " 15 weighted LS using DD phase data (for dataset n use -d n)"<< endl;
+ cout << " 16 robust LS using DD phase data of problem 15" << endl;
+ return 0;
+ }
+
+ cout << "\n========================= Test " << test
+ << " =========================" << endl;
+ if(test == 1) {
+ cout << " linear model : \n f(X) = [ x0 + x1*t + x2*t*t]" << endl;
+ cout << " partials : \n = [ 1 , t , t*t]" << endl;
+ cout << " add 0.025 gaussian noise to data" << endl;
+ M=1; batch=10; N=3;
+ data.resize(M*batch);
+ truth.resize(N); truth(0) = 1.0; truth(1) = 2.0; truth(2) = 4.0;
+
+ NL += "x0"; NL += "x1"; NL += "x2";
+ srif = SRIFilter(NL);
+ srif.doLinearize = false;
+ sol.resize(N); sol = 1.5;
+ for(i=0; i<batch; i++) {
+ t = i * 0.32;
+ data(M*i) = RandNorm(0.025) + truth(0) + truth(1)*t + truth(2)*t*t;
+ }
+ doIt(data,sol,cov);
+ }
+ else if(test == 2) {
+ cout << " linearized :\n f(X) = [ x0*sin(t) + sin(x1)*cos(t) ]" << endl;
+ cout << " partials :\n [ sin(t), cos(x1)*cos(t) ]" << endl;
+ cout << " add 0.025 gaussian noise to data" << endl;
+ M=1; batch=20; N=2;
+ data.resize(M*batch);
+ truth.resize(N); truth(0) = 1.0; truth(1) = -0.5;
+
+ NL += "x0"; NL += "x1";
+ srif = SRIFilter(NL);
+ srif.doLinearize = true;
+ sol.resize(N); sol = -1.;
+ for(i=0; i<batch; i++) {
+ t = i * 0.32;
+ data(M*i) = RandNorm(0.025) + truth(0)*sin(t) + sin(truth(1))*cos(t);
+ }
+ doIt(data,sol,cov);
+ }
+ else if(test == 3) {
+ cout << " A multi-dimensional non-linear problem" << endl;
+ cout << " [ cos(x1)*sin(t) - 10*sin(x2)*cos(t) ]" << endl;
+ cout << " f(X) = [ 2*sin(x0)*cos(t) + 4*cos(x3) ]" << endl;
+ cout << " [ x0*sin(x1)*t*t - x2*cos(x3)*tan(t) ]" << endl;
+ cout << " partials = " << endl;
+ cout<<" [0 -sin(x1)*sin(t) -10*cos(x2)*cos(t) 0 ]"
+ << endl;
+ cout<<" [2*cos(x0)*cos(t) 0 0 -4*sin(x3) ]"
+ << endl;
+ cout<<" [sin(x1)*t*t x0*cos(x1)*t*t -cos(x3)*tan(t) x2*sin(x3)*tan(t)]"
+ << endl;
+ M=3; batch=10; N=4;
+ data.resize(M*batch);
+ sol.resize(N);
+ truth.resize(N);
+ truth(0) = 1.0; sol(0) = 1.1;
+ truth(1) = -2.0; sol(1) = -2.1;
+ truth(2) = 3.0; sol(2) = 3.1;
+ truth(3) = -4.0; sol(3) = -4.1;
+ // generate fake data with noise
+ for(i=0; i<batch; i++) {
+ t = i * 0.32;
+ data(M*i) = RandNorm(.005) + cos(truth(1))*sin(t)
+ - 10*sin(truth(2))*cos(t);
+ data(M*i+1) = RandNorm(.025) + 2*sin(truth(0))*cos(t) + 4*cos(truth(3));
+ data(M*i+2) = RandNorm(.015) + truth(0)*sin(truth(1))*t*t
+ - truth(2)*cos(truth(3))*tan(t);
+ }
+
+ NL += "x0"; NL += "x1"; NL += "x2"; NL += "x3";
+ srif = SRIFilter(NL);
+ srif.doLinearize = true;
+
+ doIt(data,sol,cov);
+ }
+ else if(test == 4) {
+ cout << " a non-linear batch test; a ranging problem" << endl;
+ cout << " f(X) = [ sqrt(d0*d0 + d1*d1 + d2*d2) - d3 ]" << endl;
+ cout << " where di = XSV[j][i]-xi for each of 4 sats j" << endl;
+ cout << endl;
+ cout << " partials = [ d0/r d1/r d2/r -1 ]" << endl;
+ cout << " where r = 1/sqrt(d0*d0 + d1*d1 + d2*d2)" << endl;
+ cout << "" << endl;
+ cout << " add gaussian noise at 0.01 to the data" << endl;
+ M=4; batch=5; N=4;
+ data.resize(M*batch);
+ sol.resize(N);
+ truth.resize(N);
+ partials.resize(M*batch,N);
+ truth(0) = 1.0;
+ truth(1) = -2.0;
+ truth(2) = 3.0;
+ truth(3) = -4.0;
+ sol = 0.0;
+ // generate fake data with noise
+ LSFunc(truth,data,partials);
+ for(i=0; i<M*batch; i++) data(i) += RandNorm(0.01);
+
+ NL += "X"; NL += "Y"; NL += "Z"; NL += "cdT";
+ srif = SRIFilter(NL);
+ srif.doLinearize = true;
+
+ doIt(data,sol,cov);
+ }
+ else if(test == 5) {
+ cout << " do test 4 again but sequentially, one batch at a time.\n";
+ //cout << " add normal noise at 0.001 to the data\n";
+ cout << " this problem is very sensitive to the noise on the data\n";
+ cout << endl;
+ cout << " NB doing this is very different than the batch solution when\n";
+ cout << " doLinearize is set. In this case the solution depends strongly on\n";
+ cout << " the initial nominal solution: bad X0 => bad Inf0 => bad X1 => ...\n";
+ cout << " A problem like this is best handled with a very good initial X,\n";
+ cout << " or a big batch for first sequential step.\n";
+ cout << " model\n";
+ cout << " f(X) = [ sqrt(d0*d0 + d1*d1 + d2*d2) - d3 ]\n";
+ cout << " where di = XSV[j][i]-xi for each of 4 sats j\n";
+ cout << " partials = [ d0/r d1/r d2/r -1 ]\n";
+ cout << " where r = 1/sqrt(d0*d0 + d1*d1 + d2*d2)\n";
+ M=4; N=4; batch=5;
+ data.resize(M);
+ sol.resize(N);
+ truth.resize(N);
+ partials.resize(M,N);
+ // true solution
+ truth(0) = 1.0;
+ truth(1) = -2.0;
+ truth(2) = 3.0;
+ truth(3) = -4.0;
+ // need a good starting point - let it be solution from test 4
+ sol(0) = 0.964780;
+ sol(1) = -1.974532;
+ sol(2) = 2.936646;
+ sol(3) = -4.058416;
+
+ NL += "X"; NL += "Y"; NL += "Z"; NL += "cT";
+ srif = SRIFilter(NL);
+ srif.doLinearize = true;
+ srif.doSequential = true;
+
+ for(batch=0; batch<5; batch++) {
+ cout << "\n------ Batch = " << batch << " ------" << endl;
+ // generate fake data with noise
+ LSFunc(truth,data,partials);
+ //for(i=0; i<M; i++) data(i) += RandNorm(0.001);
+ doIt(data,sol,cov);
+ }
+ }
+ else if(test == 6 || test == 7) {
+ batch=5;
+ M=4; N=4;
+ sol.resize(N);
+ truth.resize(N);
+ // true solution - arbitrary: it will be used to generate data
+ truth(0) = 1.0;
+ truth(1) = -2.0;
+ truth(2) = 3.0;
+ truth(3) = -4.0;
+ // P6 is used to generate data
+ P6.resize(M,N);
+ for(i=0; i<M; i++) for(j=0; j<N; j++) P6(i,j)=RandNorm(10.0);
+ cout << " Random partials matrix P6 is\n" << P6 << endl;
+ // generate fake data with noise
+ D6.resize(batch*M);
+ partials.resize(M*batch,N);
+ i = test; test = 6; LSFunc(truth,D6,partials); test = i;
+ for(i=0; i<M*batch; i++) D6(i) += RandNorm(1.0);
+
+ NL += "A"; NL += "B"; NL += "C"; NL += "D";
+ srif = SRIFilter(NL);
+ srif.doLinearize = false;
+ sol = 0.0;
+
+ if(test == 6) {
+ cout << " a batch linear test using random data (same as 7):\n";
+ srif.doSequential = false;
+ data.resize(M*batch);
+ data = D6;
+ doIt(data,sol,cov);
+ }
+ else if(test == 7) {
+ cout << " a sequential linear test using random data (same as 6):\n";
+ srif.doSequential = true;
+ data.resize(M);
+ partials.resize(M,N);
+ for(batch=0; batch<5; batch++) {
+ cout << "\n ------------- Batch = " << batch << " --------------" << endl;
+ for(i=0; i<M; i++) data(i) = D6(batch*M+i);
+ doIt(data,sol,cov);
+ }
+ }
+ }
+ else if(test == 8) {
+ cout << " solve this very non-linear equation:\n";
+ cout << " L = exp(x0) * n^x1 * w^x2 * d^x3 * D^x4\n";
+ cout << " by making it linear:\n";
+ cout << " log(L) = x0 + x1*log(n) + x2*log(w) + x3*log(d) + x4*log(D)\n";
+ cout << " (test 9 will solve the non-linear equation.)\n";
+ cout << endl;
+ M=50; N=5;
+ data.resize(M);
+ partials.resize(M,N);
+ sol.resize(N);
+ truth.resize(N);
+ for(i=0; i<M; i++) data(i) = log(L8[i]);
+ sol = 0.0;
+ // I don't have the real truth...
+ truth(0) = -7.254122;
+ truth(1) = 1.379365;
+ truth(2) = -0.480604;
+ truth(3) = 0.275616;
+ truth(4) = 1.213172;
+
+ NL += "x0"; NL += "x1"; NL += "x2"; NL += "x3"; NL += "x4";
+ srif = SRIFilter(NL);
+ srif.doLinearize = false;
+ srif.doSequential = false;
+
+ doIt(data,sol,cov);
+ }
+ else if(test == 9) {
+ cout << " solve this very non-linear equation:\n";
+ cout << " L = exp(x0) * n^x1 * w^x2 * d^x3 * D^x4\n";
+ cout << " (test 8 solves the log of this equation (linear).)\n";
+ cout << endl;
+ M=50; N=5;
+ partials.resize(M,N);
+ sol.resize(N);
+ truth.resize(N);
+ data.resize(M);
+ data = L8;
+ // I don't have the real truth...
+ truth(0) = -7.254122;
+ truth(1) = 1.379365;
+ truth(2) = -0.480604;
+ truth(3) = 0.275616;
+ truth(4) = 1.213172;
+ sol = truth; // 0.0;
+
+ NL += "x0"; NL += "x1"; NL += "x2"; NL += "x3"; NL += "x4";
+ srif = SRIFilter(NL);
+ srif.doLinearize = true;
+ srif.doSequential = false;
+
+ doIt(data,sol,cov);
+ }
+ else if(test == 10) {
+ cout << " a 2-d ranging problem with a false minimum.\n";
+ cout << " generate data from truth, adding 0.002 gaussian noise.\n";
+ cout << " look at the plot, which is the potential well.\n";
+ cout << " it has a minimum at (1,1), which is the true solution,\n";
+ cout << " but also another local minimum, at (2.81,2.46).\n";
+ cout << " try starting a (0,0), then again starting at (4,4)\n";
+ cout << endl;
+ M=5; N=2;
+ Vector<double> f(M),D(M);
+ data.resize(M);
+ truth.resize(N);
+ sol.resize(N);
+ partials.resize(M,N);
+ truth(0) = truth(1) = 1.0;
+ // generate the data from truth + noise
+ LSFunc(truth,data,partials);
+
+ // generate a contour plot of the data
+ while(1) {
+ double x,y,z,r;
+ ofstream ofs("tsrif10.dat",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif10.dat .. abort contour plot\n";
+ break;
+ }
+ for(i=0; i<40; i++) {
+ sol(0) = x = i*0.10;
+ for(j=0; j<40; j++) {
+ sol(1) = y = j*0.10;
+ LSFunc(sol,f,partials);
+ z = norm(f-data); // ie RSS
+ ofs << f63 << x << " " << f63 << y << " " << f63 << z*z << endl;
+ }
+ ofs << " " << endl; // gnuplot wants a blank line
+ }
+ ofs.close();
+ cout << " Created file tsrif10.dat\n";
+
+ ofs.open("tsrif10.gp",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif10.gp .. abort contour plot\n";
+ break;
+ }
+ ofs << "set title \"tsrif 10 - ranging problem with false minimum\"\n";
+ ofs << "set xlabel \"X\"\n";
+ ofs << "set ylabel \"Y\"\n";
+ ofs << "set zlabel \"Potential = |f-d|^2\"\n";
+ ofs << "#set xrange [40:60]\n";
+ ofs << "#set yrange [250:290]\n";
+ ofs << "#set zrange [0:12]\n";
+ ofs << "#set cbrange [0:12]\n";
+ ofs << "set pm3d\n";
+#ifndef _WIN32
+ ofs << "set term x11 enhanced font \"luxi sans,17\"\n"; // linux only
+#endif
+ ofs << "unset key\n";
+ ofs << "set data style lines\n";
+ ofs << "set contour base\n";
+ ofs << "set cntrparam levels incremental 0.0,0.25,12.0\n";
+ ofs << "# comment out next two to see only contours\n";
+ ofs << "set hidden3d\n";
+ ofs << "set view 60,45\n";
+ ofs << "# un-comment out next two to see only contours\n";
+ ofs << "#set nosurface\n";
+ ofs << "#set view 0,0\n";
+ ofs << "set label 1 \"potential well - note true minimum at (1,1) "
+ << "and local minimum at (2.81,2.46)\" at screen 0.5,0.88 center\n";
+ ofs << "splot \"tsrif10.dat\" using 1:2:3\n";
+ ofs.close();
+ cout << " Created file tsrif10.gp .. try gnuplot tsrif10.gp\n\n";
+ break;
+ }
+
+ for(k=0; k<5; k++) data(k) += RandNorm(0.002);
+ D = data; // save
+
+ NL += "X"; NL += "Y";
+ srif = SRIFilter(NL);
+ srif.doLinearize = true;
+ srif.doSequential = false;
+
+ // starting value
+ sol(0) = sol(1) = 0.0;
+ doIt(data,sol,cov);
+ cout << endl << " ---------------------------------------------------------\n"
+ << " do it again, starting at (4,4) to get the false minimum.\n";
+ sol(0) = sol(1) = 4.0;
+ data = D;
+ srif.zeroAll();
+ srif.iterationsLimit = 40;
+ doIt(data,sol,cov);
+ }
+ else if(test == 11) {
+ //{
+ // ifstream ifs("globaltemp.data");
+ // if(!ifs) {
+ // cout << "could not open globaltemp.data .. abort\n";
+ // return 0;
+ // }
+ // const int BUFF_SIZE=100;
+ // char buffer[BUFF_SIZE];
+ // int year=0;
+ // double temp;
+ // vector<int> years;
+ // vector<double> temps;
+ // while(ifs.getline(buffer,BUFF_SIZE)) {
+ // if(buffer[0]=='#') continue;
+ // string line=buffer;
+ // StringUtils::stripTrailing(buffer,'\r');
+ // string::size_type p;
+ // vector<string> fs;
+ // while(line.size() > 0) {
+ // p = line.find(" ");
+ // if(p==string::npos) p=line.size();
+ // if(p != 0) fs.push_back(line.substr(0,p));
+ // if(p >= line.size()) break;
+ // line.erase(0,p+1);
+ // }
+ // if(StringUtils::asInt(fs[0]) == year) continue; // percentages line
+ // year = StringUtils::asInt(fs[0]);
+ // temp = StringUtils::asDouble(fs[13]);
+ // years.push_back(year);
+ // temps.push_back(temp);
+ // cout << year << " " << fixed << setprecision(3) << setw(6)
+ // << temp << endl;
+ // }
+ // ifs.close();
+ // for(i=0; i<years.size(); i++) cout << "," << years[i]; cout << endl;
+ // for(i=0; i<temps.size(); i++) cout << "," << temps[i]; cout << endl;
+ //}
+ cout << " a simple but noisy polynomial fit" << endl;
+ cout << " to global temperature anomaly data." << endl;
+ cout << " do it in 8 batches (7 of 20, then 1 of 9) points each." << endl;
+ cout << " cf. www.cru.uea.ac.uk/cru/data/temperature" << endl;
+ NL += "c0"; NL += "c1"; NL += "c2"; NL += "c3"; NL += "c4"; NL += "c5";
+ N = NL.size();
+ M = batchlen = batchsize = 20;
+ Vector<double> f(M);
+ Matrix<double> Coef(8,N); // save the results from each batch
+ data.resize(M);
+ truth.resize(N);
+ sol.resize(N);
+ partials.resize(M,N);
+ truth = 0.0; // don't know it
+
+ srif = SRIFilter(NL);
+ srif.doLinearize = false;
+ srif.doSequential = true;
+
+ sol = 0.0;
+ Coef = 0.0;
+ for(batch=0; batch<8; batch++) {
+ if(batch == 7) {
+ batchlen = 9;
+ data.resize(batchlen); // actually not necessary...
+ }
+ for(i=0; i<batchlen; i++) data(i) = temps11[batch*batchsize+i];
+ cout << "\n -------- Batch " << batch+1 << " --------" << endl;
+ doIt(data,sol,cov);
+ for(i=0; i<N; i++) Coef(batch,i)=sol(i);
+ }
+
+ // print out the results, and generate a plot
+ cout << "\n Coefficients (batch vs coefficients) :\n" << fixed
+ << setw(10) << setprecision(3) << Coef << endl;
+
+ ofstream ofs("tsrif11.dat",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif11.dat .. abort plot\n";
+ }
+ else {
+ // print all the data and all the solutions -- do in one big batch
+ batch = 0; // this necessary for LSFunc to operate correctly
+ M = batchlen = batchsize = 149;
+ Matrix<double> F(M,8);
+ f.resize(M);
+ partials.resize(M,N);
+ for(j=0; j<8; j++) {
+ sol = Coef.rowCopy(j); // pick out the jth solution
+ LSFunc(sol,f,partials); // evaluate at all 149 times
+ //for(i=0; i<M; i++) F(i,j)=f(i); // use slice instead
+ // (matrix,col index,slice=(start,length,stride))
+ MatrixColSlice<double> Fcol(F,j,std::slice(0,M,1));
+ Fcol = f; // copy into (the slice of) F
+ //MatrixRowSlice<double> Frow(F,17,std::slice(0,7,1));
+ //cout << "Col slice is\n" << Fcol << endl;
+ //cout << "Row slice is\n" << Frow << endl;
+ }
+ // print all the evaluated polynomials at all the times
+ for(i=0; i<M; i++) {
+ // times and data
+ ofs << setw(4) << years11[i] << " " << f63 << temps11[i];
+ // solutions
+ for(j=0; j<8; j++) ofs << " " << f63 << F(i,j);
+ ofs << endl;
+ }
+ ofs.close();
+ cout << " Created tsrif11.dat" << endl;
+ ofs.open("tsrif11.gp",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif11.gp .. abort plot\n";
+ }
+ else {
+ ofs << "set title \"Global temperature anomaly - "
+ << "sequential fits of order " << N-1 << " in 7 batches of 20 points "
+ << "and 1 of 9 ... tsrif(11)\"\n";
+ ofs << "set xlabel \"Year\"\n";
+ ofs << "set ylabel \"Temperature anomaly\"\n";
+ ofs << "unset mouse\n";
+#ifndef _WIN32
+ ofs << "set term x11 enhanced font \"luxi sans,17\"\n"; // linux only
+#endif
+ ofs << "set key left\n";
+ ofs << "#set xrange [40:60]\n";
+ ofs << "set yrange [-0.6:0.6]\n";
+ ofs << "set style line 1 lt 8 lw 2\n";
+ ofs << "plot \"tsrif11.dat\" using 1:2 t \"dT\" with points\n";
+ ofs << "replot \"tsrif11.dat\" using 1:3 t \"fit1\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:4 t \"fit2\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:5 t \"fit3\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:6 t \"fit4\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:7 t \"fit5\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:8 t \"fit6\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:9 t \"fit7\" with lines\n";
+ ofs << "replot \"tsrif11.dat\" using 1:10 t \"fit8\" with lines ls 1\n";
+ ofs.close();
+ cout << " Created file tsrif11.gp .. try gnuplot tsrif11.gp\n";
+ }
+ }
+ }
+ else if(test == 12) {
+ cout << " a simple but noisy polynomial fit";
+ cout << " to global temperature anomaly data." << endl;
+ cout << " do it in one big batch of 149 points,";
+ cout << " and plot the data." << endl;
+ cout << " cf. www.cru.uea.ac.uk/cru/data/temperature" << endl;
+ NL += "c0"; NL += "c1"; NL += "c2"; NL += "c3"; NL += "c4"; NL += "c5";
+ //NL += "c6"; NL += "c7"; NL += "c8";
+ //NL += "c9"; NL += "c10"; NL += "c11";
+ batchlen=batchsize=M=149; N=NL.size();
+ Vector<double> f(M);
+ data.resize(M);
+ truth.resize(N);
+ sol.resize(N);
+ partials.resize(M,N);
+ truth = 0.0; // don't know it
+
+ srif = SRIFilter(NL);
+ srif.doLinearize = false;
+ srif.doSequential = false;
+
+ sol = 0.0;
+ batch = 0; // for LSFunc
+ for(i=0; i<M; i++) data(i) = temps11[i];
+ doIt(data,sol,cov);
+
+ ofstream ofs("tsrif12.dat",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif12.dat .. abort plot\n";
+ }
+ else {
+ LSFunc(sol,f,partials);
+ for(i=0; i<M; i++) {
+ ofs << setw(4) << years11[i]
+ << " " << f63 << temps11[i]
+ << " " << f63 << f[i] << endl;
+ }
+ ofs.close();
+ cout << " Created tsrif12.dat" << endl;
+ ofs.open("tsrif12.gp",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif12.gp .. abort plot\n";
+ }
+ else {
+ ofs << "set title \"Global temperature anomaly - fit of order "
+ << N-1 << " tsrif(12)\"\n";
+ ofs << "set xlabel \"Year\"\n";
+ ofs << "set ylabel \"Temperature anomaly\"\n";
+ ofs << "unset mouse\n";
+#ifndef _WIN32
+ ofs << "set term x11 enhanced font \"luxi sans,17\"\n"; // linux only
+#endif
+ ofs << "set key left\n";
+ ofs << "#set xrange [40:60]\n";
+ ofs << "#set yrange [250:290]\n";
+ ofs << "plot \"tsrif12.dat\" using 1:2 t \"dT\" with points\n";
+ ofs << "replot \"tsrif12.dat\" using 1:3 t \"fit\" with lines\n";
+ ofs.close();
+ cout << "\n Created file tsrif12.gp .. try gnuplot tsrif12.gp\n";
+ }
+ }
+ }
+ else if(test == 13 || test == 14) {
+ // see discussion below under test == 14
+ double tau=50.0,sig=0.1,B=0.0; // data residuals are about 0.1
+ // input may come from command line
+ if(inputsig > 0) sig=inputsig;
+ if(inputtau > 0) tau=inputtau;
+
+ cout << "Try fitting the global temperature data of options 11 and 12\n";
+ cout << "another way. Divide the timeline into N equal parts. In each part,\n";
+ cout << "fit the data to a constant (13). Then do it again (14), but with\n";
+ cout << "a priori information which correlates the solution elements\n";
+ cout << "using a first order Markov (random walk) process.\n";
+
+ NL += "c0"; NL += "c1"; NL += "c2"; NL += "c3"; NL += "c4"; NL += "c5";
+ NL += "c6"; NL += "c7"; NL += "c8"; NL += "c9";
+ N = NL.size();
+
+ batchlen = batchsize = M = 150;
+ data.resize(M);
+ truth.resize(N);
+ sol.resize(N);
+ partials.resize(M,N);
+ for(i=0; i<N; i++) {
+ truth(i) = 0.0;
+ for(int j=i*(150/N); j<(i+1)*(150/N); j++)
+ truth(i) += temps11[j];
+ truth(i) /= (150/N);
+ }
+
+ srif = SRIFilter(NL);
+ srif.doLinearize = false;
+ srif.doSequential = false;
+
+ sol = 0.0;
+ batch = 0; // for LSFunc
+ for(i=0; i<M; i++) data(i) = temps11[i];
+
+ if(test == 13) cout << " Don't correlate the state elements" << endl;
+ if(test == 14) {
+ cout << " Add correlation to the state elements" << endl;
+ // State = 0
+ // Cov = (sig2,B2=const, e=exp(-dt/tau) where dt is
+ // the time spacing of the state elements....
+ // [ 1 e e^2 ]
+ // [ e 1 e ] * sig2 + B2
+ // [ e^2 e 1 ]
+ // sig2 = variance = (sigma)^2, sigma = uncertainty on state element
+ // tau = time constant => stiffer for larger tau
+ double d,ex;
+ ex = exp(-(M/N)/tau); // dt = M/N years
+ Matrix<double> apCov(N,N);
+ Vector<double> apSt(N,0.0); // apriori state is the 'expected' values
+ ident(apCov);
+ for(i=0; i<N-1; i++) { // row i
+ d = ex;
+ for(j=i+1; j<N; j++) { // col j
+ apCov(i,j) = apCov(j,i) = d;
+ d *= ex;
+ }
+ }
+ apCov *= sig*sig;
+ //apCov += B*B;
+
+ LabelledMatrix LC(NL,apCov);
+ LC.setw(10).setprecision(6);
+ LC.message(" apCov");
+ cout << LC << endl;
+
+ srif.addAPriori(apCov,apSt);
+ }
+
+ doIt(data,sol,cov);
+
+ ofstream ofs("tsrif13.dat",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif13.dat .. abort plot\n";
+ }
+ else {
+ for(i=0; i<M; i++) {
+ k = i/(M/N);
+ ofs << setw(4) << years11[i]
+ << " " << f63 << temps11[i]
+ << " " << f63 << sol(k) << endl;
+ }
+ ofs.close();
+ cout << " Created tsrif13.dat" << endl;
+ ofs.open("tsrif13.gp",ios::out);
+ if(!ofs) {
+ cout << " Could not open tsrif13.gp .. abort plot\n";
+ }
+ else {
+ ofs << "set title \"Global temperature anomaly : piecewise";
+ if(test==13) ofs << " fit (13)\"\n";
+ if(test==14) ofs << " constrained fit, tau="
+ << setprecision(1) << tau << "yrs, sig="
+ << setprecision(3) << sig << "C"
+ << " (14)\"\n";
+ ofs << "set xlabel \"Year\"\n";
+ ofs << "set ylabel \"Temperature anomaly (deg C)\"\n";
+ ofs << "unset mouse\n";
+#ifndef _WIN32
+ ofs << "set term x11 enhanced font \"luxi sans,17\"\n"; // linux only
+#endif
+ ofs << "set key left\n";
+ ofs << "#set xrange [40:60]\n";
+ ofs << "#set yrange [250:290]\n";
+ ofs << "plot \"tsrif13.dat\" using 1:2 t \"dT\" with points\n";
+ ofs << "replot \"tsrif13.dat\" using 1:3 t \"fit\" with linespoints\n";
+ ofs.close();
+ cout << "\n Created file tsrif13.gp .. try gnuplot tsrif13.gp\n";
+ }
+ }
+ }
+ else if(test == 15 || test == 16) {
+ cout << "Dataset is " << dataset << endl;
+ if(dataset==1) { msg=msg1; n15 = &n151[0]; y15 = &y151[0]; M15=M151; }
+ if(dataset==2) { msg=msg2; n15 = &n152[0]; y15 = &y152[0]; M15=M152; }
+ if(dataset==3) { msg=msg3; n15 = &n153[0]; y15 = &y153[0]; M15=M153; }
+ if(dataset==4) { msg=msg4; n15 = &n154[0]; y15 = &y154[0]; M15=M154; }
+ NL += "Bias"; NL += "Linear"; NL += "Quad";
+ N=NL.size();
+ batchlen=batchsize=M=M15;
+ if(test == 15) cout << " a weighted polynomial fit";
+ if(test == 16) cout << " a robust polynomial fit";
+ cout << " to " << M << " double difference phase data points." << endl;
+ cout << msg << endl;
+
+ Vector<double> f(M);
+ Vector<double> res,wt(M);
+ Stats<double> stat;
+ PolyFit<double> PF;
+
+ data.resize(M);
+ truth.resize(N);
+ sol.resize(N);
+ partials.resize(M,N);
+ truth = 0.0; // don't know it
+
+ // configure srif
+ srif = SRIFilter(NL);
+ srif.iterationsLimit = 20;
+ srif.doLinearize = false;
+ srif.doSequential = false;
+
+ // ---------- do it robust
+ if(test == 16) {
+ srif.doRobust = true;
+ srif.doWeight = false;
+ srif.convergenceLimit = 1.e-2;
+ }
+ // ---------- OR weight it
+ if(test == 15) {
+ srif.doRobust = false;
+ srif.doWeight = true;
+ // compute mest of y15 to get weights
+ double median,mad,mest;
+ mad = Robust::MAD(y15,M,median,true);
+ mest = Robust::MEstimate(y15,M,median,mad,w15);
+ cov.resize(M,M);
+ ident(cov);
+ for(i=0; i<M; i++) cov(i,i) = 1.0/(w15[i]*w15[i]); // meas. cov.
+ //Robust::StemLeafPlot(cout, y15, M, "raw dd phase data");
+ }
+
+ // initialize for doit()
+ sol = 0.0;
+ batch = 0; // for LSFunc
+ for(i=0; i<M; i++) {
+ f(i) = double(n15[i]); // f used as a temp, for PolyFit PF
+ data(i) = y15[i];
+ }
+
+ // first compute regular polynomial fit to data, and compute statistics
+ PF.Reset(3);
+ PF.Add(data,f);
+ res = data - PF.Evaluate(f);
+ stat.Reset();
+ stat.Add(res);
+ cout << " Initial raw statistics on residuals of fit:\n "
+ << scientific << setprecision(3) << stat << endl;
+
+ // least squares
+ doIt(data,sol,cov);
+
+ // compute final weighted stats on residuals of fit
+ LSFunc(sol,f,partials); // f will be the fit evaluted at each point
+ if(test == 15) {
+ res = data; // leastSquares returns residuals in data Vector
+ for(i=0; i<M; i++) {
+ data(i)=y15[i];
+ wt(i)=w15[i];
+ }
+ }
+ if(test == 16) {
+ wt = data; // leastSquares(robust) returns weights in data Vec
+ for(i=0; i<M; i++) data(i)=y15[i];
+ res = data-f;
+ }
+
+ //cout << "Weights: " << wt << endl;
+ stat.Reset();
+ stat.Add(res,wt);
+ cout << " Final weighted statistics on residuals of fit:\n "
+ << scientific << setprecision(3) << stat << endl;
+
+ // plot
+ string filename;
+ filename = "tsrif" + StringUtils::asString(test) + ".dat";
+ ofstream ofs(filename.c_str(),ios::out);
+ if(!ofs) {
+ cout << " Could not open " << filename << " .. abort plot\n";
+ }
+ else {
+ for(i=0; i<M; i++) {
+ ofs << fixed << setw(4) << n15[i]
+ << " " << f63 << data[i]
+ << " " << f63 << f[i]
+ << " " << f63 << res[i]
+ << " " << f63 << wt[i]
+ << " " << f63 << fabs(res[i])/stat.StdDev()
+ << endl;
+ }
+ ofs.close();
+ cout << " Created " << filename << endl;
+ filename = "tsrif" + StringUtils::asString(test) + ".gp";
+ ofs.open(filename.c_str(),ios::out);
+ if(!ofs) {
+ cout << " Could not open " << filename << " .. abort plot\n";
+ }
+ else {
+ if(test == 15) ofs << "set title \"DD Phase data - wt'd fit of order "
+ << N-1 << " tsrif(15," << dataset << ")\\n(wts from m-est of data)\"\n";
+ if(test == 16) ofs << "set title \"DD Phase data - robust fit of order "
+ << N-1 << " tsrif(16," << dataset << ")\"\n";
+ ofs << "set xlabel \"Count\"\n";
+ ofs << "set ylabel \"DDPhase(m)\"\n";
+ ofs << "unset mouse\n";
+#ifndef _WIN32
+ ofs << "set term x11 enhanced font \"luxi sans,17\"\n"; // linux only
+#endif
+ ofs << "set key bottom right\n";
+ ofs << "set autoscale y2\n";
+ ofs << "set ytics nomirror\n";
+ ofs << "set y2tics\n";
+ if(test == 15) ofs << "set y2label \"Residual (m)\"\n";
+ if(test == 16) ofs << "set y2label \"Weight\"\n";
+ ofs << "#set xrange [40:60]\n";
+ ofs << "#set yrange [250:290]\n";
+ ofs << "plot \"tsrif" << test
+ << ".dat\" using 1:2 t \"DDPh\" with points\n";
+ ofs << "replot \"tsrif" << test
+ << ".dat\" using 1:3 t \"fit\" with lines\n";
+ ofs << "replot \"tsrif" << test
+ << ".dat\" using 1:4 axes x1y2 t \"res\" with linespoints\n";
+ ofs << "replot \"tsrif" << test
+ << ".dat\" using 1:5 axes x1y2 t \"wt\" with linespoints\n";
+ ofs.close();
+ cout << "\n Created file tsrif" << test
+ << ".gp .. try gnuplot tsrif" << test << ".gp\n";
+ }
+ }
+
+ if(test == 16) {
+ QSort(&wt[0],M);
+ Robust::StemLeafPlot(cout, &wt[0], M, "weights");
+ }
+ }
+ else {
+ cout << " ... not implemented\n";
+ }
+
+ return 0;
+}
+catch(gpstk::Exception& e) {
+ cerr << "tsrif caught an exception\n" << e << endl;
+ return 0;
+}
+}
+
+//------------------------------------------------------------------------------------
+void doIt(Vector<double>& data, Vector<double>& sol, Matrix<double>& cov)
+{
+try {
+ int i,pre=6,wid=12;
+ format fmts(wid,pre,2);
+
+ srif.doVerbose = verbose;
+ cout << " Start at x = (" << fixed;
+ for(i=0; i<sol.size(); i++) cout << (i==0 ? "":",") << sol[i];
+ cout << ")" << endl;
+ //cout << " Data is (" << data.size() << "):" << setprecision(pre) << data << endl;
+
+ i = srif.leastSquaresEstimation(data,sol,cov,&LSFunc);
+ if(i) cout << " LS failed (" << i << ") "
+ << (i==-1 ? "Underdetermined" :
+ (i==-2 ? "Singular" :
+ (i==-3 ? "Failed to converge" : "Diverged")))
+ << endl;
+ cout << " SRIFilter is" << (srif.isValid() ? "":" not") << " valid" << endl;
+
+ Namelist NL=srif.getNames();
+ LabelledVector LT(NL,truth);
+ LT.setw(wid).setprecision(pre);
+ LT.message(" Truth:");
+ cout << LT << endl;
+ Vector<double> delta(sol-truth);
+ LabelledVector LR(NL,delta);
+ LR.setw(wid).setprecision(pre);
+ LR.message(" Residuals:");
+ cout << LR << endl;
+ cout << " RMS residuals of fit: " << fmts << RMS(data) << endl;
+ LabelledMatrix LC(NL,cov);
+ LC.setw(wid).setprecision(pre);
+ LC.message(" Covariance:");
+ cout << LC << endl;
+ cout << " Condition number is " << fmts << srif.ConditionNumber() << endl;
+ if(srif.doLinearize || srif.doRobust) {
+ cout << " There were " << srif.Iterations() << " iterations,";
+ cout << " and convergence was " << fmts << srif.Convergence() << endl;
+ }
+ //cout << " Data residuals (" << data.size() << ") : " << scientific
+ //<< setprecision(pre) << data << endl;
+}
+catch(gpstk::Exception& e) { GPSTK_RETHROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void LSFunc(Vector<double>& X, Vector<double>& f, Matrix<double>& P)
+{
+try {
+ double t;
+ if(test == 1) {
+ // f(X) = [ x0 + x1*t + x2*t*t]
+ // partials = [ 1 t t*t ]
+ // t = i * 0.32;
+ int M=1;
+ for(int i=0; i<batch; i++) {
+ t = i * 0.32;
+ f(M*i) = 0.0; // its linear X(0) + X(1)*t + X(2)*t*t;
+ P(M*i,0)=1.0; P(M*i,1)=t; P(M*i,2)=t*t;
+ }
+ }
+ else if(test == 2) {
+ // f(X) = [ x0*sin(t) + sin(x1)*cos(t) ]
+ // partials = [ sin(t) cos(x1)*cos(t) ]
+ // t = i * 0.32;
+ int M=1;
+ for(int i=0; i<batch; i++) {
+ t = i * 0.32;
+ f(M*i) = X(0)*sin(t) + sin(X(1))*cos(t);
+ P(M*i,0)=sin(t); P(M*i,1)=cos(X(1))*cos(t);
+ }
+ }
+ else if(test == 3) {
+ // [ cos(x1)*sin(t) - 10*sin(x2)*cos(t) ]
+ // f(X) = [ 2*sin(x0)*cos(t) + 4*cos(x3) ]
+ // [ x0*sin(x1)*t*t - x2*cos(x3)*tan(t) ]
+ //
+ // partials =
+ // [ 0 -sin(x1)*sin(t) -10*cos(x2)*cos(t) 0 ]
+ // [ 2*cos(x0)*cos(t) 0 0 -4*sin(x3) ]
+ // [ sin(x1)*t*t cos(x1)*t*t -cos(x3)*tan(t) sin(x3)*tan(t) ]
+ //
+ int M=3;
+ for(int i=0; i<batch; i++) { // loop over batch
+ t = i * 0.32;
+ f(M*i) = cos(X(1))*sin(t) - 10*sin(X(2))*cos(t);
+ f(M*i+1) = 2*sin(X(0))*cos(t) + 4*cos(X(3));
+ f(M*i+2) = X(0)*sin(X(1))*t*t - X(2)*cos(X(3))*tan(t);
+
+ P(M*i+0,0)=0.0;
+ P(M*i+0,1)=-sin(X(1))*sin(t);
+ P(M*i+0,2)=-10.0*cos(X(2))*cos(t);
+ P(M*i+0,3)=0.0;
+
+ P(M*i+1,0)=2*cos(X(0))*cos(t);
+ P(M*i+1,1)=0.0;
+ P(M*i+1,2)=0.0;
+ P(M*i+1,3)=4.0;
+
+ P(M*i+2,0)=sin(X(1))*t*t;
+ P(M*i+2,1)=X(0)*cos(X(1))*t*t;
+ P(M*i+2,2)=-cos(X(3))*tan(t);
+ P(M*i+2,3)=X(2)*sin(X(3))*tan(t);
+ }
+ }
+ else if(test == 4) {
+ double x,y,z,r,tb,th,ph;
+ for(int i=0; i<batch; i++) { // loop over batch
+ t = i * 0.32;
+ for(int j=0; j<4; j++) { // loop over satellites
+ th = Theta[j]+OmegaTheta[j]*t;
+ ph = Phi[j]+OmegaPhi[j]*t;
+ x = RSV[j]*sin(th)*sin(ph);
+ y = RSV[j]*sin(th)*cos(ph);
+ z = RSV[j]*cos(th);
+ tb = Bias[j]; //+Drift[j]*t;
+ r = sqrt( (X(0)-x)*(X(0)-x) + (X(1)-y)*(X(1)-y) + (X(2)-z)*(X(2)-z) );
+ f(4*i+j) = r-(tb-X(3));
+ P(4*i+j,0) = (X(0)-x)/r;
+ P(4*i+j,1) = (X(1)-y)/r;
+ P(4*i+j,2) = (X(2)-z)/r;
+ P(4*i+j,3) = 1.0;
+ }
+ }
+ }
+ else if(test == 5) {
+ double x,y,z,r,tb,th,ph;
+ t = batch * 0.32;
+ for(int j=0; j<4; j++) { // loop over satellites
+ th = Theta[j]+OmegaTheta[j]*t;
+ ph = Phi[j]+OmegaPhi[j]*t;
+ x = RSV[j]*sin(th)*sin(ph);
+ y = RSV[j]*sin(th)*cos(ph);
+ z = RSV[j]*cos(th);
+ tb = Bias[j]; //+Drift[j]*t;
+ r = sqrt( (X(0)-x)*(X(0)-x) + (X(1)-y)*(X(1)-y) + (X(2)-z)*(X(2)-z) );
+ f(j) = r-(tb-X(3));
+ P(j,0) = (X(0)-x)/r;
+ P(j,1) = (X(1)-y)/r;
+ P(j,2) = (X(2)-z)/r;
+ P(j,3) = 1.0;
+ }
+ }
+ else if(test == 6) {
+ // P6 is random but fixed
+ Vector<double> f4;
+ f4 = P6*X;
+ for(int i=0; i<batch; i++) {
+ for(int j=0; j<4; j++) {
+ f(4*i+j) = f4(j);
+ for(int k=0; k<4; k++) P(4*i+j,k) = P6(j,k);
+ }
+ }
+ }
+ else if(test == 7) {
+ P = P6;
+ f = P6*X;
+ }
+ else if(test == 8) {
+ // log(L) = log(x0) + x1*log(n) + x2*log(w) + x3*log(d) + x4*log(D)
+ for(int i=0; i<f.size(); i++) {
+ f(i) = 0.0;
+ P(i,0) = 1.0;
+ P(i,1) = log(n8[i]);
+ P(i,2) = log(w8[i]);
+ P(i,3) = log(d8[i]);
+ P(i,4) = log(D8[i]);
+ }
+ }
+ else if(test == 9) {
+ // f(x) = exp( x0 + x1*log(n) + x2*log(w) + x3*log(d) + x4*log(D) ) = L
+ for(int i=0; i<f.size(); i++) {
+ f(i) = exp(X(0) + X(1)*log(n8[i]) + X(2)*log(w8[i]) + X(3)*log(d8[i])
+ + X(4)*log(D8[i]));
+ P(i,0) = f(i);
+ P(i,1) = f(i)*log(n8[i]);
+ P(i,2) = f(i)*log(w8[i]);
+ P(i,3) = f(i)*log(d8[i]);
+ P(i,4) = f(i)*log(D8[i]);
+ }
+ }
+ else if(test == 10) {
+ for(int i=0; i<f.size(); i++) {
+ f(i) = sqrt((X(0)-x10[i])*(X(0)-x10[i]) + (X(1)-y10[i])*(X(1)-y10[i]));
+ P(i,0) = (X(0)-x10[i])/f(i);
+ P(i,1) = (X(1)-y10[i])/f(i);
+ }
+ }
+ else if(test == 11 || test == 12) {
+ double t;
+ for(int i=0; i<batchlen; i++) {
+ t = (years11[batch*batchsize+i] - 1856.0)/144.;
+ P(i,0) = 1.0;
+ for(int j=1; j<X.size(); j++) P(i,j) = P(i,j-1)*t;
+ }
+ f = P * X;
+ }
+ else if(test == 13 || test == 14) {
+ P = 0.0;
+ int n;
+ for(int i=0; i<batchlen; i++) {
+ n = (batch*batchsize+i)/(batchsize/X.size());
+ P(i,n) = 1.0;
+ }
+ f = P * X;
+ }
+ else if(test == 15 || test == 16) {
+ for(int i=0; i<batchlen; i++) {
+ t = n15[batch*batchsize+i] - n15[0];
+ P(i,0) = 1.0;
+ for(int j=1; j<X.size(); j++) P(i,j) = P(i,j-1)*t;
+ }
+ f = P * X;
+ }
+}
+catch(gpstk::Exception& e) { GPSTK_RETHROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/kalman/tsrifsu.cpp b/dev/apps/geomatics/kalman/tsrifsu.cpp
new file mode 100644
index 0000000..5426dfd
--- /dev/null
+++ b/dev/apps/geomatics/kalman/tsrifsu.cpp
@@ -0,0 +1,441 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file tsrifsu.cpp
+ * Test the smoother updates in class SRIFilter
+ */
+
+#include <iostream>
+#include "Exception.hpp"
+#include "Vector.hpp"
+#include "Matrix.hpp"
+#include "SRIFilter.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char **argv)
+{
+try {
+ int test=1; // 1 for SRIFSU, 2 for HH, 3 for SRISDM
+ int n=3,ns=3;
+ //ns = 2;
+
+ if(argc > 1) test=atoi(argv[1]);
+
+ Matrix<double> R(n,n,0.0);
+ R(0,0) = -2.825;
+ R(0,1) = 0.9551;
+ R(1,1) = -2.824;
+ R(0,2) = -0.1459;
+ R(1,2) = 0.5276;
+ R(2,2) = -1.930;
+
+ Vector<double> z(n);
+ z(0) = -73.28;
+ z(1) = -4.581;
+ z(2) = 1.567;
+
+ Matrix<double> Phi(n,n,0.0);
+ Phi(0,0) = 1.0;
+ Phi(1,1) = 1.0;
+ Phi(2,2) = 1.0;
+ double dt=5.0;
+ Phi(0,1) = dt;
+ Phi(0,2) = dt*dt;
+ Phi(1,2) = dt;
+
+ Matrix<double> G(n,ns,0.0);
+ G(0,0) = 1.0;
+ G(1,1) = 1.0;
+ if(ns > 2) G(2,2) = 1.0;
+ G(0,1) = 0.05;
+ if(ns > 2) G(0,2) = 0.001667;
+ if(ns > 2) G(1,2) = 0.05;
+
+ Matrix<double> Rw(ns,ns,0.0);
+ Rw(0,0) = 8485.0;
+ Rw(0,1) = 0.0;
+ Rw(1,1) = 109.50;
+ if(ns > 2) Rw(0,2) = 0.0;
+ if(ns > 2) Rw(1,2) = 0.0;
+ if(ns > 2) Rw(2,2) = 3.162;
+
+ Matrix<double> Rwx(ns,n,0.0);
+ Rwx(0,0) = 0.028934;
+ Rwx(0,1) = 5.30428;
+ Rwx(0,2) = 1.667;
+ Rwx(1,0) = 1.2093;
+ Rwx(1,1) = 1.384725;
+ Rwx(1,2) = 2.340;
+ Rwx(0,2) = -1.2039;
+ Rwx(1,2) = 8.9984;
+ if(ns > 2) Rwx(2,2) = 0.0023143;
+
+ Vector<double> zw(ns);
+ zw(0) = 3.28;
+ zw(1) = 2.581;
+ if(ns > 2) zw(2) = -1.567;
+
+ Namelist NL,NLs;
+ NL += "X"; NL += "Y"; NL += "Z";
+ NLs += "Xs"; NLs += "Ys";
+ if(ns > 2) NLs += "Zs";
+ SRIFilter srif(R,z,NL);
+
+ cout << "SRI before SU:\n" << setw(13) << setprecision(7) << srif << endl;
+
+ LabelledMatrix LP(NL,Phi);
+ LP.setw(13).setprecision(7);
+ cout << "Phi before SU:\n" << LP << endl;
+
+ Matrix<double> Phinv;
+ Phinv = inverse(Phi);
+ LabelledMatrix LPi(NL,Phinv);
+ LPi.setw(13).setprecision(7);
+ cout << "Phinv before SU:\n" << LPi << endl;
+
+ LabelledMatrix LG(NL,NLs,G);
+ LG.setw(13).setprecision(7);
+ cout << "G before SU:\n" << LG << endl;
+
+ LabelledMatrix LRw(NLs,NLs,Rw);
+ LRw.setw(13).setprecision(7);
+ cout << "Rw before SU:\n" << LRw << endl;
+
+ LabelledMatrix LRwx(NLs,NL,Rwx);
+ LRwx.setw(13).setprecision(7);
+ cout << "Rwx before SU:\n" << LRwx << endl;
+
+ LabelledVector Lzw(NL,zw);
+ Lzw.setw(13).setprecision(7);
+ cout << "zw before SU:\n" << Lzw << endl;
+
+ Vector<double> X;
+ Matrix<double> C;
+ double small,big;
+ LabelledMatrix LC(NL,NL,C);
+ LabelledVector LX(NL,X);
+ srif.getStateAndCovariance(X,C,&small,&big);
+
+ LC.setw(13).setprecision(7);
+ cout << "Covariance before SU:\n" << LC << endl;
+ LX.setw(13).setprecision(7);
+ cout << "State before SU:\n" << LX << endl;
+
+ if(test==1) {
+ cout << "\nCall smoother update\n\n";
+ srif.smootherUpdate(Phi,Rw,G,zw,Rwx);
+ srif.getStateAndCovariance(X,C,&small,&big);
+ }
+ else if(test==2) {
+ cout << "\nDo the HH manually\n\n";
+ // _ (Ns) (N) (1) _ _ _
+ // (Ns) | Rw+Rwx*G Rwx*Phi zw | ==> | Rw Rwx zw |
+ // (N) | R*G R*Phi z | ==> | 0 R z | .
+ // - - - -
+ Matrix<double> Big;
+ Big = ( (Rw + Rwx*G) || Rwx*Phi || zw )
+ && ( R*G || R*Phi || z );
+
+ Namelist NLB=NLs|NL;
+ NLB += "State";
+ LabelledMatrix LB(NLs|NL,NLB,Big);
+ LB.setw(13).setprecision(7);
+ cout << "Composite Matrix\n" << LB << endl;
+
+ Householder<double> HHB;
+ HHB(Big);
+ LabelledMatrix LBH(NLs|NL,NLB,HHB.A);
+ LBH.setw(13).setprecision(7);
+ cout << "Composite Matrix after HH\n" << LBH << endl;
+ // (matrix,col index,slice=(start,length,stride))
+ MatrixColSlice<double> Zslice(HHB.A,n+ns,std::slice(ns,n,1));
+ //cout << "Zslice is (" << Zslice.rows() << "," << Zslice.cols() << ")\n"
+ //<< Zslice << endl;
+ z = Zslice.colCopy(0);
+ //MatrixSlice<double> Rslice(HHB.A,ns,ns,n,n);
+ //R = Matrix<double>(Rslice);
+ R = Matrix<double>(HHB.A,ns,ns,n,n);
+ // Householder() does this, but just in case....
+ //for(int i=0; i<n; i++) for(int j=0; j<i; j++) R(i,j) = 0.0;
+ srif = SRIFilter(R,z,NL);
+ srif.getStateAndCovariance(X,C,&small,&big);
+ }
+ else if(test==3) {
+ cout << "\nCall the C/X version of the smoother update\n\n";
+ SRIFilter::DMsmootherUpdate(C,X,Phinv,Rw,G,zw,Rwx);
+ Cholesky<double> Ch;
+ Ch(C);
+ R = inverse(Ch.U);
+ z = R * X;
+ srif = SRIFilter(R,z,NL);
+ }
+ cout << "Phinv after SU:\n" << LP << endl; // note LP not LPi
+ cout << "G after SU:\n" << LG << endl;
+ cout << "Rw after SU:\n" << LRw << endl;
+ cout << "Rwx after SU:\n" << LRwx << endl;
+ cout << "zw after SU:\n" << Lzw << endl;
+ cout << "SRI after SU:\n" << setw(13) << setprecision(7) << srif << endl;
+ cout << "Covariance after SU:\n" << LC << endl;
+ cout << "State after SU:\n" << LX << endl;
+
+ return 0;
+}
+catch(Exception& e) {
+ cerr << "Caught exception\n" << e << endl;
+ return -1;
+}
+}
+
+
+/* the output should be equivalent to the following. Note that many quantities
+ (Phi,Phinv,G,Rw,Rwx,zw) are intermediate values and so may differ in the 3 cases.
+-------------------------------------------------------------------------------
+For test==1:
+-------------------------------------------------------------------------------
+Matrix Print (UPT:3,3): SRI Covariance R before SU:
+ -2.8250000 0.9551000 -0.1459000
+ (0) -2.8240000 0.5276000
+ (0) (0) -1.9300000
+Vector (l=3,b=0,e=2): SRI State vector before SU:
+ -73.2800000 -4.5810000 1.5670000
+Matrix Print (SQU:3,3): Phi before SU:
+ 1.0000000 5.0000000 25.0000000
+ 0.0000000 1.0000000 5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (SQU:3,3): Phi inverse
+ 1.0000000 -5.0000000 0.0000000
+ 0.0000000 1.0000000 -5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (GEN:3,3): G matrix before SU:
+ 1.0000000 0.0500000 0.0016670
+ 0.0000000 1.0000000 0.0500000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (UPT:3,3): Rw matrix before SU:
+ 8485.0000000 0.0000000 0.0000000
+ (0) 109.5000000 0.0000000
+ (0) (0) 3.1620000
+Matrix Print (SYM:3,3): Covariance before SU:
+ 0.1396719 0.0429714 0.0030922
+ 0.0429714 0.1347628 0.0501563
+ 0.0030922 0.0501563 0.2684636
+Vector (l=3,b=0,e=2): State X before SU:
+ 26.4789073 1.4704789 -0.8119171
+
+Call SrifSU
+
+Matrix Print (SQU:3,3): Phi inverse after SU:
+ 2.8308464 13.2002762 66.1692641
+ 0.0186639 2.7399474 13.1207326
+ 0.0370416 -0.1270013 1.6464965
+Matrix Print (GEN:3,3): G after SU:
+ -2.8250000 0.8156191 -0.1697817
+ 0.0000000 -2.8240000 0.6170483
+ 0.0000000 0.0000000 -1.9300000
+Matrix Print (UPT:3,3): Rw after SU:
+ 8485.0000000 0.0000000 0.0000000
+ (0) 109.5000000 0.0000000
+ (0) (0) 3.1620000
+Matrix Print (GEN:3,3): Rwx after SU:
+ -0.0300469 -5.4543935 -26.0693988
+ -1.1881107 -7.4029263 -45.9955463
+ -0.1329200 -0.1645391 -1.9486389
+Vector (l=3,b=0,e=2): zw vector after SU:
+ -3.3047654 -2.1576620 -0.4445507
+Matrix Print (UPT:3,3): SRI Covariance R after SU:
+ 2.8308464 13.2002762 66.1692641
+ (0) 2.7399474 13.1207326
+ (0) (0) 1.6464965
+Vector (l=3,b=0,e=2): SRI State vector after SU:
+ 73.3032284 4.8851499 -0.5218388
+Matrix Print (SYM:3,3): Covariance after SU:
+ 3.4237044 1.2242346 -0.3853596
+ 1.2242346 8.5920292 -1.7664210
+ -0.3853596 -1.7664210 0.3688743
+Vector (l=3,b=0,e=2): State X after SU:
+ 17.9117060 3.3006549 -0.3169389
+-------------------------------------------------------------------------------
+For test==2:
+-------------------------------------------------------------------------------
+Matrix Print (UPT:3,3): SRI Covariance R before SU:
+ -2.8250000 0.9551000 -0.1459000
+ (0) -2.8240000 0.5276000
+ (0) (0) -1.9300000
+Vector (l=3,b=0,e=2): SRI State vector before SU:
+ -73.2800000 -4.5810000 1.5670000
+Matrix Print (SQU:3,3): Phi before SU:
+ 1.0000000 5.0000000 25.0000000
+ 0.0000000 1.0000000 5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (SQU:3,3): Phi inverse
+ 1.0000000 -5.0000000 0.0000000
+ 0.0000000 1.0000000 -5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (GEN:3,3): G matrix before SU:
+ 1.0000000 0.0500000 0.0016670
+ 0.0000000 1.0000000 0.0500000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (UPT:3,3): Rw matrix before SU:
+ 8485.0000000 0.0000000 0.0000000
+ (0) 109.5000000 0.0000000
+ (0) (0) 3.1620000
+Matrix Print (SYM:3,3): Covariance before SU:
+ 0.1396719 0.0429714 0.0030922
+ 0.0429714 0.1347628 0.0501563
+ 0.0030922 0.0501563 0.2684636
+Vector (l=3,b=0,e=2): State X before SU:
+ 26.4789073 1.4704789 -0.8119171
+
+Do the HH manually
+
+Do the SU manually:
+Matrix Print (GEN:6,7): Composite matrix
+ 8485.0289340 5.3057267 -0.9386378 0.0289340 5.4489500 26.0408500 3.2800000
+ 1.2093000 110.9451900 9.0696522 1.2093000 7.4312250 46.1545250 2.5810000
+ 0.0000000 0.0000000 3.1643143 0.0000000 0.0000000 0.0023143 -1.5670000
+ -2.8250000 0.8138500 -0.1028543 -2.8250000 -13.1699000 -65.9954000 -73.2800000
+ 0.0000000 -2.8240000 0.3864000 0.0000000 -2.8240000 -13.5924000 -4.5810000
+ 0.0000000 0.0000000 -1.9300000 0.0000000 0.0000000 -1.9300000 1.5670000
+
+Do HouseHolder
+
+Matrix Print (GEN:6,7): Composite matrix after HH
+ -8485.0294905 -5.3212675 0.9373108 -0.0300469 -5.4543935 -26.0693988 -3.3047654
+ 1.2093000 -110.9833652 -9.0560140 -1.1881107 -7.4029263 -45.9955463 -2.1576620
+ 0.0000000 0.0000000 -3.7612976 -0.1329200 -0.1645391 -1.9486389 -0.4445507
+ -2.8250000 0.8156191 -0.1697817 2.8308464 13.2002762 66.1692641 73.3032284
+ 0.0000000 -2.8240000 0.6170483 0.0186639 2.7399474 13.1207326 4.8851499
+ 0.0000000 0.0000000 -1.9300000 0.0370416 -0.1270013 1.6464965 -0.5218388
+Matrix Print (SQU:3,3): Phi inverse after SU:
+ -2.8250000 -13.1699000 -65.9954000
+ 0.0000000 -2.8240000 -13.5924000
+ 0.0000000 0.0000000 -1.9300000
+Matrix Print (GEN:3,3): G after SU:
+ -2.8250000 0.8138500 -0.1028543
+ 0.0000000 -2.8240000 0.3864000
+ 0.0000000 0.0000000 -1.9300000
+Matrix Print (UPT:3,3): Rw after SU:
+ 8485.0000000 0.0000000 0.0000000
+ (0) 109.5000000 0.0000000
+ (0) (0) 3.1620000
+Matrix Print (GEN:3,3): Rwx after SU:
+ 0.0289340 5.4489500 26.0408500
+ 1.2093000 7.4312250 46.1545250
+ 0.0000000 0.0000000 0.0023143
+Vector (l=3,b=0,e=2): zw vector after SU:
+ 3.2800000 2.5810000 -1.5670000
+Matrix Print (UPT:3,3): SRI Covariance R after SU:
+ 2.8308464 13.2002762 66.1692641
+ (0) 2.7399474 13.1207326
+ (0) (0) 1.6464965
+Vector (l=3,b=0,e=2): SRI State vector after SU:
+ 73.3032284 4.8851499 -0.5218388
+Matrix Print (SYM:3,3): Covariance after SU:
+ 3.4237044 1.2242346 -0.3853596
+ 1.2242346 8.5920292 -1.7664210
+ -0.3853596 -1.7664210 0.3688743
+Vector (l=3,b=0,e=2): State X after SU:
+ 17.9117060 3.3006549 -0.3169389
+-------------------------------------------------------------------------------
+For test==3:
+-------------------------------------------------------------------------------
+Matrix Print (UPT:3,3): SRI Covariance R before SU:
+ -2.8250000 0.9551000 -0.1459000
+ (0) -2.8240000 0.5276000
+ (0) (0) -1.9300000
+Vector (l=3,b=0,e=2): SRI State vector before SU:
+ -73.2800000 -4.5810000 1.5670000
+Matrix Print (SQU:3,3): Phi before SU:
+ 1.0000000 5.0000000 25.0000000
+ 0.0000000 1.0000000 5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (SQU:3,3): Phi inverse
+ 1.0000000 -5.0000000 0.0000000
+ 0.0000000 1.0000000 -5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (GEN:3,3): G matrix before SU:
+ 1.0000000 0.0500000 0.0016670
+ 0.0000000 1.0000000 0.0500000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (UPT:3,3): Rw matrix before SU:
+ 8485.0000000 0.0000000 0.0000000
+ (0) 109.5000000 0.0000000
+ (0) (0) 3.1620000
+Matrix Print (SYM:3,3): Covariance before SU:
+ 0.1396719 0.0429714 0.0030922
+ 0.0429714 0.1347628 0.0501563
+ 0.0030922 0.0501563 0.2684636
+Vector (l=3,b=0,e=2): State X before SU:
+ 26.4789073 1.4704789 -0.8119171
+
+Call SrisDM
+
+Matrix Print (SQU:3,3): Phi inverse after SU:
+ 1.0000000 5.0000000 25.0000000
+ 0.0000000 1.0000000 5.0000000
+ 0.0000000 0.0000000 1.0000000
+Matrix Print (GEN:3,3): G after SU:
+ 0.0001179 0.0004566 0.0005272
+ 0.0000000 0.0091324 0.0158128
+ 0.0000000 0.0000000 0.3162555
+Matrix Print (UPT:3,3): Rw after SU:
+ 0.0001179 0.0000000 0.0000000
+ (0) 0.0091324 0.0000000
+ (0) (0) 0.3162555
+Matrix Print (GEN:3,3): Rwx after SU:
+ 0.0289340 5.3042800 -1.2039000
+ 1.2093000 1.3847250 8.9984000
+ 0.0000000 0.0000000 0.0023143
+Vector (l=3,b=0,e=2): zw vector after SU:
+ 3.2800000 2.5810000 -1.5670000
+Matrix Print (UPT:3,3): SRI Covariance R after SU:
+ 2.8308464 13.2002762 66.1692641
+ (0) 2.7399474 13.1207326
+ (0) (0) 1.6464965
+Vector (l=3,b=0,e=2): SRI State vector after SU:
+ 73.3032284 4.8851499 -0.5218388
+Matrix Print (SQU:3,3): Covariance after SU:
+ 3.4237044 1.2242346 -0.3853596
+ 1.2242346 8.5920292 -1.7664210
+ -0.3853596 -1.7664210 0.3688743
+Vector (l=3,b=0,e=2): State X after SU:
+ 17.9117060 3.3006549 -0.3169389
+-------------------------------------------------------------------------------
+*/
diff --git a/dev/apps/geomatics/kalman/tsriftu.cpp b/dev/apps/geomatics/kalman/tsriftu.cpp
new file mode 100644
index 0000000..684606e
--- /dev/null
+++ b/dev/apps/geomatics/kalman/tsriftu.cpp
@@ -0,0 +1,247 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file tsriftu.cpp
+ * Test the time update in class SRIFilter
+ */
+
+#include <iostream>
+#include "Exception.hpp"
+#include "Vector.hpp"
+#include "Matrix.hpp"
+#include "SRIFilter.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char **argv)
+{
+try {
+ int N=3,Ns=3;
+ Matrix<double> R(N,N,0.0);
+ R(0,0) = -2.825;
+ R(0,1) = 0.9551;
+ R(1,1) = -2.824;
+ R(0,2) = -0.1459;
+ R(1,2) = 0.5276;
+ R(2,2) = -1.930;
+
+ Vector<double> Z(N);
+ Z(0) = -73.28;
+ Z(1) = -4.581;
+ Z(2) = 1.567;
+
+ Matrix<double> Phinv(N,N);
+ Phinv = 0.0;
+ Phinv(0,0) = 1.0;
+ Phinv(1,1) = 1.0;
+ Phinv(2,2) = 1.0;
+ double dt=-0.1;
+ Phinv(0,1) = dt;
+ Phinv(0,2) = dt*dt;
+ Phinv(1,2) = dt;
+
+ Matrix<double> G(N,Ns);
+ G = 0.0;
+ G(0,0) = 1.0;
+ G(1,1) = 1.0;
+ G(2,2) = 1.0;
+ G(0,1) = 0.05;
+ G(0,2) = 0.001667;
+ G(1,2) = 0.05;
+
+ Matrix<double> Rw(Ns,Ns,0.0);
+ Rw(0,0) = 8485.0;
+ Rw(0,1) = 0.0;
+ Rw(1,1) = 109.50;
+ Rw(0,2) = 0.0;
+ Rw(1,2) = 0.0;
+ Rw(2,2) = 3.162;
+
+ Matrix<double> Rwx(Ns,N,0.0); // Rwx must be 0
+ Vector<double> Zw(Ns);
+ Zw(0) = 1.0;
+ Zw(1) = 1.2;
+ Zw(2) = 1.3;
+
+ Namelist NL,NLs;
+ NL += "X"; NL += "Y"; NL += "Z";
+ NLs += "Xs"; NLs += "Ys";
+ if(Ns > 2) NLs += "Zs";
+ SRIFilter srif(R,Z,NL);
+
+ cout << "SRI before TU:\n" << setw(13) << setprecision(7) << srif << endl;
+
+ LabelledMatrix LP(NL,Phinv);
+ LP.setw(13).setprecision(7);
+ cout << "Phinv before TU:\n" << LP << endl;
+
+ LabelledMatrix LG(NL,NLs,G);
+ LG.setw(13).setprecision(7);
+ cout << "G before TU:\n" << LG << endl;
+
+ LabelledMatrix LRw(NLs,Rw);
+ LRw.setw(13).setprecision(7);
+ cout << "Rw before TU:\n" << LRw << endl;
+
+ LabelledMatrix LRwx(NLs,NL,Rwx);
+ LRwx.setw(13).setprecision(7);
+ cout << "Rwx before TU:\n" << LRwx << endl;
+
+ LabelledVector LZw(NLs,Zw);
+ LZw.setw(13).setprecision(7);
+ cout << "Zw before TU:\n" << LZw << endl;
+
+ // Do the HH manually
+ // _ (Ns) (N) (1) _ _ _
+ // (Ns) | Rw 0 Zw | ==> | Rw Rwx Zw |
+ // (N) | -R*Phinv*G R*Phinv Z | ==> | 0 R Z | .
+ // - - - -
+
+ Matrix<double> Big;
+ Big = ( Rw || Rwx || Zw )
+ && ( -R*Phinv*G || R*Phinv || Z );
+
+ cout << "\nCall SrifTU\n\n";
+ srif.timeUpdate(Phinv,Rw,G,Zw,Rwx);
+
+ cout << "SRI after TU:\n" << setw(13) << setprecision(7) << srif << endl;
+ cout << "Phinv after TU:\n" << LP << endl;
+ cout << "G after TU:\n" << LG << endl;
+ cout << "Rw after TU:\n" << LRw << endl;
+ cout << "Rwx after TU:\n" << LRwx << endl;
+ cout << "Zw after TU:\n" << LZw << endl;
+
+ cout << "\nNow do the TU manually:\n";
+ cout << "\tIf Rd=R*Phinv,\n\t| Rw 0 Zw | --> | Rw Rwx Zw |\n";
+ cout << "\t| -Rd*G Rd Z | --> | 0 R Z |\n\n";
+
+ Namelist NLB=NLs|NL;
+ NLB += "State";
+ LabelledMatrix LBig(NLs|NL,NLB,Big);
+ LBig.setw(13).setprecision(7);
+ cout << "Composite matrix before HH:\n" << LBig << endl;
+
+ Householder<double> HHB;
+ HHB(Big);
+ LabelledMatrix LBH(NLs|NL,NLB,HHB.A);
+ LBH.setw(13).setprecision(7);
+ cout << "Composite matrix after HH:\n" << LBH << endl;
+}
+catch(Exception& e) {
+ cerr << "Caught exception\n" << e << endl;
+ return -1;
+}
+}
+
+/* the output should be:
+SRI before TU:
+ X Y Z State
+ X -2.8250000 0.9551000 -0.1459000 -73.2800000
+ Y 0.0000000 -2.8240000 0.5276000 -4.5810000
+ Z 0.0000000 0.0000000 -1.9300000 1.5670000
+Phinv before TU:
+ X Y Z
+ X 1.0000000 -0.1000000 0.0100000
+ Y 0.0000000 1.0000000 -0.1000000
+ Z 0.0000000 0.0000000 1.0000000
+G before TU:
+ Xs Ys Zs
+ X 1.0000000 0.0500000 0.0016670
+ Y 0.0000000 1.0000000 0.0500000
+ Z 0.0000000 0.0000000 1.0000000
+Rw before TU:
+ Xs Ys Zs
+ Xs 8485.0000000 0.0000000 0.0000000
+ Ys 0.0000000 109.5000000 0.0000000
+ Zs 0.0000000 0.0000000 3.1620000
+
+Call SrifTU
+
+SRI after TU:
+ X Y Z State
+ X 2.8203762 -1.2066130 0.2051914 73.2522809
+ Y 0.0000000 2.7781779 -0.6182688 4.3616701
+ Z 0.0000000 0.0000000 1.6473746 -1.3375316
+Phinv after TU:
+ X Y Z
+ X 2.8203762 -1.2066130 0.2051914
+ Y -0.0157050 2.7781779 -0.6182688
+ Z 0.0442855 -0.1397111 1.6473746
+G after TU:
+ Xs Ys Zs
+ X 2.8250000 -1.0963499 0.2123923
+ Y 0.0000000 2.8240000 -0.6685503
+ Z 0.0000000 0.0000000 1.9300000
+Rw after TU:
+ Xs Ys Zs
+ Xs-8485.0004703 0.0003650 -0.0000707
+ Ys 0.0000000 -109.5418959 0.0193684
+ Zs 0.0000000 0.0000000 -3.7703069
+Rwx after TU:
+ X Y Z
+ Xs 0.0009406 -0.0004120 0.0000898
+ Ys -0.0282740 0.0851895 -0.0235808
+ Zs 0.1590678 -0.5702501 1.1467160
+Zw after TU:
+ Xs Ys Zs
+ 0.0243979 -0.6153242 2.5120533
+
+Now do the TU manually:
+ If Rd=R*Phinv,
+ | Rw 0 Zw | --> | Rw Rwx Zw |
+ | -RdG Rd Zw | --> | 0 R Z |
+
+Composite matrix before HH:
+ Xs Ys Zs X Y Z State
+ Xs 8485.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
+ Ys 0.0000000 109.5000000 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000
+ Zs 0.0000000 0.0000000 3.1620000 0.0000000 0.0000000 0.0000000 0.0000000
+ X 2.8250000 -1.0963500 0.2124893 -2.8250000 1.2376000 -0.2696600 -73.2800000
+ Y 0.0000000 2.8240000 -0.6688000 0.0000000 -2.8240000 0.8100000 -4.5810000
+ Z 0.0000000 0.0000000 1.9300000 0.0000000 0.0000000 -1.9300000 1.5670000
+Composite matrix after HH:
+ Xs Ys Zs X Y Z State
+ Xs 8485.0004703 -0.0003650 0.0000707 -0.0009406 0.0004120 -0.0000898 -0.0243979
+ Ys 0.0000000 -109.5418959 0.0193684 -0.0282740 0.0851895 -0.0235808 -0.6153242
+ Zs 0.0000000 0.0000000 3.7703069 -0.1590678 0.5702501 -1.1467160 -2.5120533
+ X 0.0000000 0.0000000 0.0000000 2.8203762 -1.2066130 0.2051914 73.2522809
+ Y 0.0000000 0.0000000 0.0000000 0.0000000 -2.7781779 0.6182688 -4.3616701
+ Z 0.0000000 0.0000000 0.0000000 0.0000000 0.0000000 1.6473746 -1.3375316
+*/
diff --git a/dev/apps/geomatics/lib/DCinternals.hpp b/dev/apps/geomatics/lib/DCinternals.hpp
new file mode 100644
index 0000000..3d418ea
--- /dev/null
+++ b/dev/apps/geomatics/lib/DCinternals.hpp
@@ -0,0 +1,320 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file DCinternals.hpp
+ * Class information used internally in DiscCorr.cpp
+ */
+
+namespace gpstk {
+//------------------------------------------------------------------------------------
+// constants used in linear combinations
+const double CFF=C_GPS_M/OSC_FREQ;
+const double F1=L1_MULT; // 154.0;
+const double F2=L2_MULT; // 120.0;
+ // wavelengths
+const double wl1=CFF/F1; // 19.0cm
+const double wl2=CFF/F2; // 24.4cm
+const double wlwl=CFF/(F1-F2); // 86.2cm, the widelane wavelength
+const double wl21=CFF*(1.0/F2 - 1.0/F1); // 5.4cm, the 'GF' wavelength
+ // for widelane R & Ph
+const double wl1r=F1/(F1+F2);
+const double wl2r=F2/(F1+F2);
+const double wl1p=wl1*F1/(F1-F2);
+const double wl2p=-wl2*F2/(F1-F2);
+ // for geometry-free R and Ph
+const double gf1r=-1;
+const double gf2r=1;
+const double gf1p=wl1;
+const double gf2p=-wl2;
+
+//------------------------------------------------------------------------------------
+// Return values (used by all routines within this module):
+const int NoData=-4;
+const int FatalProblem=-3;
+//const int PrematureEnd=-2;
+const int Singular=-1;
+const int ReturnOK=0;
+// NoData:
+// preprocess
+// fixAllSlips segment list is empty
+// FatalProblem:
+// preprocess DT is not set
+// firstDifferences A1.size is wrong
+// Singular:
+// prepareGFdata polynomial fit to GF range failed
+// no - delete segment instead GFphaseResiduals polynomial fit to GF range failed
+
+//------------------------------------------------------------------------------------
+// Segment - used internally only.
+// An object to hold information about segments = periods of continuous phase.
+// Keep a linked list of these objects, subdivide whenever a discontinuity is
+// detected, and join whenever one is fixed.
+class Segment {
+public:
+ // member data
+ int nbeg,nend; // array indexes of the first and last good points
+ // always maintain these so they point to good data
+ int npts; // number of good points in this Segment
+ int nseg; // segment number - used for data dumps only
+ double bias1; // bias subtracted from WLbias for WLStats - only
+ Stats<double> WLStats; // includes N,min,max,ave,sig
+ double bias2; // bias subtracted from GFP for polynomial fit - only
+ PolyFit<double> PF; // for fit to GF range
+ double RMSROF; // RMS residual of fit of polynomial (PF) to GFR
+ bool WLsweep; // WLstatSweep(this) was called, used by detectWLsmallSlips
+
+ // member functions
+ Segment(void) : nbeg(0),nend(0),npts(0),nseg(0),bias1(0.0),bias2(0.0)
+ { WLStats.Reset(); WLsweep=false; }
+ Segment(const Segment& s)
+ { *this = s; }
+ ~Segment(void) { }
+ Segment& operator=(const Segment& s) {
+ if(this==&s) return *this;
+ nbeg = s.nbeg; nend = s.nend; npts = s.npts; nseg = s.nseg;
+ bias1 = s.bias1; bias2 = s.bias2;
+ WLStats = s.WLStats; PF = s.PF; RMSROF = s.RMSROF; WLsweep = s.WLsweep;
+ return *this;
+ }
+}; // end class Segment
+
+//------------------------------------------------------------------------------------
+// class Slip - used internally only
+class Slip {
+public:
+ int index; // index in arrays where this slip occurs
+ long NWL,N1; // slip fixes for WL (N1-N2) and GF (=N1)
+ string msg; // string to be output after '#' on edit cmds
+ explicit Slip(int in) : index(in),NWL(0),N1(0) { }
+ bool operator<(const Slip &rhs) const { return index < rhs.index; }
+}; // end class Slip
+
+//------------------------------------------------------------------------------------
+class GDCPass : public SatPass, public GDCconfiguration
+{
+public:
+ static const unsigned short DETECT; // both WL and GF
+ static const unsigned short FIX; // both WL and GF
+ static const unsigned short WLDETECT;
+ static const unsigned short WLFIX;
+ static const unsigned short GFDETECT;
+ static const unsigned short GFFIX;
+
+ explicit GDCPass(const SatPass& sp, const GDCconfiguration& gdc)
+ : SatPass(sp.getSat(), sp.getDT())
+ { *((SatPass*)this) = sp; *((GDCconfiguration*)this) = gdc; }
+
+ //~GDCPass(void) { };
+
+ /// initialize the pass - just clear the 'learn' map and create temporary arrays
+ void initialize(void) throw()
+ { learn.clear(); A1.resize(data.size(),0.0); A2.resize(data.size(),0.0); }
+
+ /// edit obvious outliers, divide into segments using MaxGap
+ int preprocess(void) throw(Exception);
+
+ /// compute linear combinations and place the result in the data arrays:
+ /// L1 -> L1; L2 -> GFP(m)
+ /// P1 -> WLB(cyc) P2 -> -GFR(m)
+ int linearCombinations(void) throw(Exception);
+
+ /// detect slips in the wide lane bias
+ int detectWLslips(void) throw(Exception);
+
+ /// detect obvious slips by computing the first difference (of either WL or GFP)
+ /// and looking for outliers. create new segments where there are slips
+ /// which is either 'WL' or 'GF'.
+ int detectObviousSlips(string which) throw(Exception);
+
+ /// compute first differences of data arrays for WL and GF gross slips detection.
+ /// for WL difference the WLbias; for GF, the GFP and the residual GFP-GFR
+ /// Store results in temporary array A1 and A2
+ int firstDifferences(string which) throw(Exception);
+
+ /// for one segment, compute conventional statistics on the
+ /// WL bias and count the number of good points
+ void WLcomputeStats(list<Segment>::iterator& it) throw(Exception);
+
+ /// for one segment mark bad points that lie outside N*sigma
+ /// delete segments that are too small
+ void WLsigmaStrip(list<Segment>::iterator& it) throw(Exception);
+
+ /// for one segment, compute statistics on the WL bias using a
+ /// 'two-paned sliding window', each pane of width 'width' good points.
+ /// store the results in the parallel (to SatPass::data) arrays A1,A2.
+ int WLstatSweep(list<Segment>::iterator& it, int width) throw(Exception);
+
+ /// detect slips in all segments using the results of WLstatSweep()
+ /// if close to either end (< window width), just chop off the small segment
+ /// when a slip is found, create a new segment
+ /// also compute conventional stats for each Segment, store in Segment.WLStats
+ int detectWLsmallSlips(void) throw(Exception);
+
+ /// determine if a slip has been found at index i, in segment nseg (0..)
+ /// which is associated with it.
+ /// conditions for a slip to be detected:
+ /// 1. test must be >~ 0.67 wlwl
+ /// 2. limit must be much smaller than test
+ /// 3. slip must be far (>1/2 window) from either end
+ /// 4. test must be at a local maximum (~ 2 window widths)
+ /// 5. limit must be at a local minimum (")
+ /// also, large limit (esp near end of a pass) means too much noise, and
+ bool foundWLsmallSlip(list<Segment>::iterator& it, int i) throw(Exception);
+
+ /// estimate slips in the WL bias and adjust biases appropriately - ie fix WL slips
+ /// also compute stats for WL for the whole pass
+ int fixAllSlips(string which) throw(Exception);
+
+ /// fix the slip at the beginning of the segment pointed to by kt,
+ /// which is the string 'WL' or 'GF'.
+ void fixOneSlip(list<Segment>::iterator& kt, string which) throw(Exception);
+
+ /// fix the slip between segments pointed to by left and right
+ void WLslipFix(list<Segment>::iterator& left,
+ list<Segment>::iterator& right)
+ throw(Exception);
+
+ /// fit a polynomial to the GF range, and replace P2 (-gfr) with the residual
+ /// gfp+fit(gfr); divide both P1(gfp) and P2(residual) by wl21 to convert to cycles
+ /// also place the residual gfp+gfr(cycles) in L1
+ int prepareGFdata(void) throw(Exception);
+
+ /// detect slips in the geometry-free phase
+ int detectGFslips(void) throw(Exception);
+
+ /// for each segment, fit a polynomial to the gfr, then compute and store the
+ /// residual of fit; at the same time, compute stats on the first difference of GF
+ int GFphaseResiduals(list<Segment>::iterator& it) throw(Exception);
+
+ /// detect small slips in the geometry-free phase using its first difference
+ /// compute statistics in two windows of fixed width on either side of the point
+ /// of interest and use these to find slips and outliers
+ int detectGFsmallSlips(void) throw(Exception);
+
+ /// determine if there is an outlier in the GF phase, using the
+ /// GFP first difference and the statistics computed in detectGFsmallSlips().
+ /// Criteria:
+ /// 1. adjacent first differences have different signs
+ /// 2. they have approximately the same magnitude
+ /// 3. that magnitude is large compared to the noise in the dGFP
+ bool foundGFoutlier(int i,int inew,Stats<double>& pastSt,Stats<double>& futureSt)
+ throw(Exception);
+
+ /// determine if a small GF slip is found, using the first differenced gfp
+ /// and statistics computed in detectGFsmallSlips()
+ /// Criteria:
+ /// 1. slip is non-trivial - at least one wavelength
+ /// 2. the change in the average 1stDiff(GFP) across the slip is small
+ /// 3. the slip itself is large compared to the average on either side
+ /// 4. the slip itself is large compared to the noise
+ /// Declare 'slips' that are very near the ends of the segment as outliers
+ /// Conservatively, ignore small slips that are near the level of the noise,
+ /// unless there was a WL slip at the same epoch.
+ bool foundGFsmallSlip(int i, int nseg, int iend, int ibeg,
+ deque<int>& pastIn, deque<int>& futureIn,
+ Stats<double>& pastSt, Stats<double>& futureSt)
+ throw(Exception);
+
+ /// fix the slip between segments pointed to by left and right
+ void GFslipFix(list<Segment>::iterator& left,
+ list<Segment>::iterator& right)
+ throw(Exception);
+
+ /// estimate the size of the slip between segments left and right,
+ /// using points from indexes nb to ne; n1 is the initial estimate of the slip
+ /// called by GFslipFix()
+ long EstimateGFslipFix(list<Segment>::iterator& left,
+ list<Segment>::iterator& right,
+ int nb, int ne, long n1)
+ throw(Exception);
+
+ /// final check on consistency of WL slip fixes with GF slip detection
+ int WLconsistencyCheck(void) throw(Exception);
+
+ /// last call before returning: copy edited data back into caller's SatPass,
+ /// generate editing commands, and print final summary.
+ void finish(int iret, SatPass& svp, vector<string>& editCmds) throw(Exception);
+
+ /// create a new segment from the given one, starting at index ibeg,
+ /// and insert it after the given iterator.
+ /// Return an iterator pointing to the new segment. String msg is for debug output
+ list<Segment>::iterator createSegment(list<Segment>::iterator sit,
+ int ibeg,
+ string msg=string())
+ throw(Exception);
+
+ /// dump a list of the segments, detail dependent on level
+ /// level=0 one line summary (number of segments)
+ /// level=1 one per line list of segments
+ /// level=2 dump all data, including (if extra) temporary arrays
+ void dumpSegments(string msg, int level=2, bool extra=false)
+ throw(Exception);
+
+ /// delete (set all points bad) segment it, optional message
+ /// is used in debug print
+ void deleteSegment(list<Segment>::iterator& it, string msg=string())
+ throw(Exception);
+
+ /// resize the temporary arrays to zero
+ void clearTempArrays(void) { A1.clear(); A2.clear(); }
+
+private:
+
+ /// define this function so that invalid labels will throw, because
+ /// this fails silently #define cfg(a) CFG[#a] // stringize
+ double cfg_func(string a) throw(Exception)
+ {
+ if(CFGdescription[a] == string()) {
+ Exception e("cfg(UNKNOWN LABEL) : " + a);
+ GPSTK_THROW(e);
+ }
+ return CFG[a];
+ }
+
+ /// list of Segments, always in time order, of segments of
+ /// continuous data within the SVPass.
+ list<Segment> SegList;
+
+ /// list of Slips found; used to generate the editing commands on output
+ list<Slip> SlipList;
+
+ /// temporary storage arrays, parallel to SatPass::data
+ vector<double> A1,A2;
+
+ /// stats on the WL bias after editing for the entire pass
+ Stats<double> WLPassStats;
+
+ /// stats on the first difference of GF after detectObviousSlips(GF)
+ Stats<double> GFPassStats;
+
+ /// polynomial fit to the geometry-free range for the whole pass
+ PolyFit<double> GFPassFit;
+
+ /// keep count of various results: slips, deletions, etc.; print to log in finish()
+ map<string,int> learn;
+
+}; // end class GDCPass
+
+} // end namespace gpstk
diff --git a/dev/apps/geomatics/lib/DDid.cpp b/dev/apps/geomatics/lib/DDid.cpp
new file mode 100644
index 0000000..9a6a58b
--- /dev/null
+++ b/dev/apps/geomatics/lib/DDid.cpp
@@ -0,0 +1,264 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DDid.cpp
+ * Implement DDid - double difference identification, a class to handle the
+ * bookkeeping of DDs.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+#include "DDid.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace gpstk;
+using namespace std;
+
+namespace gpstk {
+//------------------------------------------------------------------------------------
+// empty constructor - sites are empty and sats are GPS,-1
+//DDid::DDid(void)
+//{
+// site1 = site2 = string("");
+// sat1 = sat2 = GSatID(-1,systemGPS);
+// ssat = ssite = 1;
+//}
+
+//------------------------------------------------------------------------------------
+// explicit constructor - may reorder input to standard form
+DDid::DDid(string s1, string s2, GSatID p1, GSatID p2)
+{
+ if(s1 == s2 || p1.id == p2.id || p1.system != p2.system) {
+ Exception e("DDid constructor with identical parts");
+ GPSTK_THROW(e);
+ }
+ if(s1 < s2) ssite=1; else ssite=-1;
+ site1 = (s1 < s2 ? s1 : s2);
+ site2 = (s1 < s2 ? s2 : s1);
+
+ if(p1.id < p2.id) ssat=1; else ssat=-1;
+ sat1 = (p1.id < p2.id ? p1 : p2);
+ sat2 = (p1.id < p2.id ? p2 : p1);
+}
+
+//------------------------------------------------------------------------------------
+// return 0 if either is invalid
+// return +1 if the same, -1 if the same except for one switch
+// return +2 if left is greater than right
+// return -2 if left is less than right
+int DDid::compare(const DDid& left, const DDid& right)
+{
+ if(left.site1 == left.site2 || left.sat1 == left.sat2 ||
+ right.site1 == right.site2 || right.sat1 == right.sat2) return 0;
+ if(left.site1 < right.site1) return -2;
+ if(left.site1 > right.site1) return 2;
+ if(left.site2 < right.site2) return -2;
+ if(left.site2 > right.site2) return 2;
+ if(left.sat1.id < right.sat1.id) return -2;
+ if(left.sat1.id > right.sat1.id) return 2;
+ if(left.sat2.id < right.sat2.id) return -2;
+ if(left.sat2.id > right.sat2.id) return 2;
+ return left.ssite*right.ssite*left.ssat*right.ssat;
+}
+
+//------------------------------------------------------------------------------------
+bool DDid::operator>(const DDid& that) const
+{
+ return (DDid::compare(*this,that) == 2);
+}
+
+//------------------------------------------------------------------------------------
+bool DDid::operator==(const DDid& that) const
+{
+ return (abs(DDid::compare(*this,that)) == 1);
+}
+
+//------------------------------------------------------------------------------------
+bool DDid::operator!=(const DDid& that) const
+{
+ return (abs(DDid::compare(*this,that)) != 1);
+}
+
+//------------------------------------------------------------------------------------
+bool DDid::operator<(const DDid &that) const
+{
+ return (DDid::compare(*this,that) == -2);
+}
+
+//------------------------------------------------------------------------------------
+ostream& operator<<(ostream& s, const DDid& t)
+{
+ if(t.ssite > 0) s << t.site1 << " " << t.site2 << " ";
+ else s << t.site2 << " " << t.site1 << " ";
+ if(t.ssat > 0) s << t.sat1 << " " << t.sat2;
+ else s << t.sat2 << " " << t.sat1;
+ return s;
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// empty constructor - sites are empty and sats are GPS,-1
+//SDid::SDid(void)
+//{
+// site1 = site2 = string("");
+// sat = GSatID(-1,systemGPS);
+// ssite = 1;
+//}
+
+//------------------------------------------------------------------------------------
+// explicit constructor - may reorder input to standard form
+SDid::SDid(string s1, string s2, GSatID p)
+{
+ if(s1 == s2) {
+ Exception e("SDid constructor with identical sites");
+ GPSTK_THROW(e);
+ }
+ if(s1 < s2) ssite=1; else ssite=-1;
+ site1 = (s1 < s2 ? s1 : s2);
+ site2 = (s1 < s2 ? s2 : s1);
+ sat = p;
+}
+
+//------------------------------------------------------------------------------------
+// return 0 if either is invalid
+// return +1 if the same, -1 if the same except for one switch
+// return +2 if left is greater than right
+// return -2 if left is less than right
+int SDid::compare(const SDid& left, const SDid& right)
+{
+ if(left.site1 == left.site2 || right.site1 == right.site2) return 0;
+ if(left.site1 < right.site1) return -2;
+ if(left.site1 > right.site1) return 2;
+ if(left.site2 < right.site2) return -2;
+ if(left.site2 > right.site2) return 2;
+ if(left.sat.id < right.sat.id) return -2;
+ if(left.sat.id > right.sat.id) return 2;
+ return left.ssite*right.ssite;
+}
+
+//------------------------------------------------------------------------------------
+bool SDid::operator>(const SDid& that) const
+{
+ return (SDid::compare(*this,that) == 2);
+}
+
+//------------------------------------------------------------------------------------
+bool SDid::operator==(const SDid& that) const
+{
+ return (abs(SDid::compare(*this,that)) == 1);
+}
+
+//------------------------------------------------------------------------------------
+bool SDid::operator<(const SDid &that) const
+{
+ return (SDid::compare(*this,that) == -2);
+}
+
+//------------------------------------------------------------------------------------
+ostream& operator<<(ostream& s, const SDid& t)
+{
+ if(t.ssite > 0) s << t.site1 << " " << t.site2 << " " << t.sat;
+ else s << t.site2 << " " << t.site1 << " " << t.sat;
+ return s;
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// empty constructor - sites are empty and sats are GPS,-1
+//OWid::OWid(void)
+//{
+// site = string("");
+// sat = GSatID(-1,systemGPS);
+//}
+
+//------------------------------------------------------------------------------------
+// explicit constructor - may reorder input to standard form
+OWid::OWid(string& s, GSatID& p)
+{
+ site = s;
+ sat = p;
+}
+
+//------------------------------------------------------------------------------------
+// return 0 if either is invalid
+// return +1 if the same, -1 if the same except for one switch
+// return +2 if left is greater than right
+// return -2 if left is less than right
+int OWid::compare(const OWid& left, const OWid& right)
+{
+ int isit=0;
+ if( left.site == right.site) isit=1;
+ else if(left.site < right.site) return -2;
+ else if(left.site > right.site) return 2;
+ int isat=0;
+ if( left.sat.id == right.sat.id) isat=1;
+ else if(left.sat.id < right.sat.id) return -2;
+ else if(left.sat.id > right.sat.id) return 2;
+
+ return isit*isat;
+}
+
+//------------------------------------------------------------------------------------
+bool OWid::operator>(const OWid& that) const
+{
+ return (OWid::compare(*this,that) == 2);
+}
+
+//------------------------------------------------------------------------------------
+bool OWid::operator==(const OWid& that) const
+{
+ return (abs(OWid::compare(*this,that)) == 1);
+}
+
+//------------------------------------------------------------------------------------
+bool OWid::operator<(const OWid &that) const
+{
+ return (OWid::compare(*this,that) == -2);
+}
+
+//------------------------------------------------------------------------------------
+ostream& operator<<(ostream& s, const OWid& t)
+{
+ s << t.site << " " << t.sat;
+ return s;
+}
+
+} // end namespace gpstk
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/DDid.hpp b/dev/apps/geomatics/lib/DDid.hpp
new file mode 100644
index 0000000..9232261
--- /dev/null
+++ b/dev/apps/geomatics/lib/DDid.hpp
@@ -0,0 +1,143 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DDid.hpp
+ * Include file defining DDid - double difference identification, a class to handle
+ * the bookkeeping of double differences.
+ */
+
+#ifndef CLASS_DOUB_DIFF_ID_INCLUDE
+#define CLASS_DOUB_DIFF_ID_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+#include <ostream>
+
+// GPSTk
+#include "Exception.hpp"
+// Geomatics
+#include "GSatID.hpp"
+
+namespace gpstk {
+//------------------------------------------------------------------------------------
+// double difference identification
+class DDid {
+public:
+ std::string site1,site2;
+ gpstk::GSatID sat1,sat2;
+ int ssite,ssat;
+ // empty constructor - sites are empty and sats are GPS,-1
+ //DDid(void);
+ // explicit constructor - do not reorder
+ explicit DDid(std::string s1,
+ std::string s2,
+ gpstk::GSatID p1,
+ gpstk::GSatID p2);
+
+ // 'less than' is required for map<DDid,...>.find(DDid)
+ bool operator<(const DDid& right) const;
+ bool operator>(const DDid& right) const;
+ bool operator==(const DDid& right) const;
+ bool operator!=(const DDid& right) const;
+
+ // return 0 if either is invalid
+ // return +1 if the same, -1 if the same except for one switch
+ // return +2 if left is greater than right
+ // return -2 if left is less than right
+ static int compare(const DDid& left, const DDid& right);
+
+ friend std::ostream& operator<<(std::ostream& s, const DDid& t);
+
+};
+
+//------------------------------------------------------------------------------------
+// single difference id
+class SDid {
+public:
+ std::string site1,site2;
+ gpstk::GSatID sat;
+ int ssite;
+ // empty constructor - sites are empty and sat is GPS,-1
+ //SDid(void);
+ // explicit constructor - do not reorder
+ explicit SDid(std::string s1,
+ std::string s2,
+ gpstk::GSatID p);
+
+ bool operator<(const SDid& right) const;
+ bool operator>(const SDid& right) const;
+ bool operator==(const SDid& right) const;
+
+ // return 0 if either is invalid
+ // return +1 if the same, -1 if the same except for one switch
+ // return +2 if left is greater than right
+ // return -2 if left is less than right
+ static int compare(const SDid& left, const SDid& right);
+
+ friend std::ostream& operator<<(std::ostream& s, const SDid& t);
+};
+
+//------------------------------------------------------------------------------------
+// one-way data id
+class OWid {
+public:
+ std::string site;
+ gpstk::GSatID sat;
+ // empty constructor - site is empty and sat is GPS,-1
+ //OWid(void);
+ // explicit constructor - do not reorder
+ explicit OWid(std::string& s1, gpstk::GSatID& p);
+
+ bool operator<(const OWid& right) const;
+ bool operator>(const OWid& right) const;
+ bool operator==(const OWid& right) const;
+
+ // return 0 if either is invalid
+ // return +1 if the same
+ // return +2 if left is greater than right
+ // return -2 if left is less than right
+ static int compare(const OWid& left, const OWid& right);
+
+ friend std::ostream& operator<<(std::ostream& s, const OWid& t);
+};
+
+} // end namespace gpstk
+//------------------------------------------------------------------------------------
+#endif
diff --git a/dev/apps/geomatics/lib/DiscCorr.cpp b/dev/apps/geomatics/lib/DiscCorr.cpp
new file mode 100644
index 0000000..d6e312c
--- /dev/null
+++ b/dev/apps/geomatics/lib/DiscCorr.cpp
@@ -0,0 +1,2559 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file DiscCorr.cpp
+ * GPS phase discontinuity correction. Given a SatPass object
+ * containing dual-frequency pseudorange and phase for an entire satellite pass,
+ * and a configuration object (as defined herein), detect discontinuities in
+ * the phase and, if possible, estimate their size.
+ * Output is in the form of Rinex editing commands (see class RinexEditor).
+ */
+
+#include <string>
+#include <iostream>
+#include <sstream>
+#include <vector>
+#include <deque>
+#include <list>
+#include <algorithm>
+
+#include "StringUtils.hpp"
+#include "Stats.hpp"
+#include "PolyFit.hpp"
+#include "icd_200_constants.hpp" // PI,C_GPS_M,OSC_FREQ,L1_MULT,L2_MULT
+#include "RobustStats.hpp"
+
+#include "DiscCorr.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+// only to unclutter the top of this file; not included anywhere else...
+#include "DCinternals.hpp"
+
+//------------------------------------------------------------------------------------
+// NB. string giving version of GDC (GDCVersion) is found in GDCconfiguration.cpp
+
+// these are used only to associate a unique number in the log file with each pass
+int GDCUnique=0; // unique number for each call
+int GDCUniqueFix; // unique for each (WL,GF) fix
+
+// conveniences only...
+#define log *(p_oflog)
+#define cfg(a) cfg_func(#a)
+
+//------------------------------------------------------------------------------------
+// These from SatPass.cpp
+//const unsigned short SatPass::BAD = 0; // used by caller and DC to mark bad data
+//const unsigned short SatPass::OK = 1; // good data, no discontinuity
+//const unsigned short SatPass::LL1 = 2; // good data, discontinuity on L1 only
+//const unsigned short SatPass::LL2 = 4; // good data, discontinuity on L2 only
+//const unsigned short SatPass::LL3 = 6; // good data, discontinuity on L1 and L2
+const unsigned short GDCPass::WLDETECT = 2;
+const unsigned short GDCPass::GFDETECT = 4;
+const unsigned short GDCPass::DETECT = 6; // = WLDETECT | GFDETECT
+const unsigned short GDCPass::WLFIX = 8;
+const unsigned short GDCPass::GFFIX = 16;
+const unsigned short GDCPass::FIX = 24; // = WLFIX | GFFIX
+
+// notes on the use of these flags:
+// if(flag & DETECT) is true for EITHER WL or GF or both
+// if(flag & FIX) is true for EITHER WL or GF or both
+// if((flag & WLDETECT) && (flag & GFDETECT)) is true only for both WL and GF
+
+// NB typical slip will have flag = DETECT+OK+FIX = 31
+// typical unfixed slip flag = DETECT+OK = 7
+
+// BAD is used either as flag == BAD (for bad data) or flag != BAD (for good data),
+// thus there are two gotcha's
+// - if a point is marked, but is later set BAD, that info is lost
+// - if a BAD point is marked, it becomes 'good'
+// To avoid this we have to use OK rather than BAD:
+// either !(flag & OK) or (flag ^ OK) for bad data, and (flag & OK) for good data
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// yes you need the gpstk::
+int gpstk::DiscontinuityCorrector(SatPass& svp,
+ GDCconfiguration& gdc,
+ vector<string>& editCmds)
+ throw(Exception)
+{
+try {
+ int iret;
+ GDCUnique++;
+
+ // create the GDCPass from the input SatPass and the input GDC configuration
+ GDCPass gp(svp,gdc);
+ gp.initialize();
+
+ // NB search for 'change the arrays' for places where arrays are re-defined
+ // NB search for 'change the data' for places where the data is modified (! biases)
+ // NB search for 'change the bias' for places where the bias is changed
+ for(;;) { // a convenience...
+ // preparation
+ if( (iret = gp.preprocess() )) break;
+ if( (iret = gp.linearCombinations() )) break;
+
+ // WL
+ if( (iret = gp.detectWLslips() )) break;
+ if( (iret = gp.fixAllSlips("WL") )) break;
+
+ // GF
+ if( (iret = gp.prepareGFdata() )) break;
+ if( (iret = gp.detectGFslips() )) break;
+ if( (iret = gp.WLconsistencyCheck() )) break;
+ if( (iret = gp.fixAllSlips("GF") )) break;
+
+ break; // mandatory
+ }
+
+ // generate editing commands for deleted (flagged) data and slips,
+ // use editing command (slips and deletes) to modify the original SatPass data
+ // and print ending summary
+ gp.finish(iret, svp, editCmds);
+
+ // clear the temp arrays
+ gp.clearTempArrays();
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+int GDCPass::preprocess(void) throw(Exception)
+{
+try {
+ int i,ilast,Ngood;
+ double biasL1,biasL2,dbias;
+ list<Segment>::iterator it;
+
+ if(cfg(Debug) >= 2) {
+ DayTime CurrentTime;
+ CurrentTime.setLocalTime();
+ log << "\n======== Beg GPSTK Discontinuity Corrector " << GDCUnique
+ << " ================================================\n";
+ log << "GPSTK Discontinuity Corrector Ver. " << GDCVersion << " Run "
+ << CurrentTime << endl;
+ }
+
+ // check input
+ if(cfg(DT) <= 0) {
+ log << "Error: data time interval is not set...Abort" << endl;
+ return FatalProblem;
+ }
+
+ // create the first segment
+ SegList.clear();
+ {
+ Segment s;
+ s.nseg = 1;
+ SegList.push_back(s);
+ }
+ it = SegList.begin();
+
+ // loop over points in the pass
+ // editing obviously bad data and adding segments where necessary
+ for(ilast=-1,i=0; i<data.size(); i++) {
+
+ if(!(data[i].flag & OK)) continue;
+
+ // just in case the caller has set it to something else...
+ data[i].flag = OK;
+
+ // look for obvious outliers
+ // Don't do this - sometimes the pseudoranges get extreme values b/c the
+ // clock is allowed to run off for long times - perfectly normal
+ //if(data[i].P1 < cfg(MinRange) || data[i].P1 > cfg(MaxRange) ||
+ // data[i].P2 < cfg(MinRange) || data[i].P2 > cfg(MaxRange) )
+ //{
+ // data[i].flag = BAD;
+ // learn["points deleted: obvious outlier"]++;
+ // if(cfg(Debug) > 6)
+ // log << "Obvious outlier " << GDCUnique << " " << sat
+ // << " at " << i << " " << time(i).printf(outFormat) << endl;
+ // continue;
+ //}
+
+ // note first good point
+ if(ilast == -1) ilast = it->nbeg = i;
+
+ // is there a gap here? if yes, create a new segment
+ // TD? do this here? why not allow any gap in the WL, and look for gaps
+ // TD? only in the GF?
+ if(cfg(DT)*(i-ilast) > cfg(MaxGap))
+ it = createSegment(it,i,"initial gap");
+
+ // count good points
+ it->npts++;
+ ilast = i;
+ }
+
+ // note last good point
+ if(ilast == -1) ilast = it->nbeg;
+ it->nend = ilast;
+
+ // 'change the arrays' A1, A2 to be range minus phase for output
+ // do the same at the end ("AFT")
+ // loop over segments, counting the number of non-trivial ones
+ for(Ngood=0,it=SegList.begin(); it != SegList.end(); it++) {
+ biasL1 = biasL2 = 0.0;
+
+ // loop over points in this segment
+ for(i=it->nbeg; i<=it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ dbias = fabs(data[i].P1-wl1*data[i].L1-biasL1);
+ if(dbias > cfg(RawBiasLimit)) {
+ if(cfg(Debug) >= 2) log << "BEFresetL1 " << GDCUnique
+ << " " << sat << " " << time(i).printf(outFormat)
+ << " " << fixed << setprecision(3) << biasL1
+ << " " << data[i].P1 - wl1 * data[i].L1 << endl;
+ biasL1 = data[i].P1 - wl1 * data[i].L1;
+ }
+
+ dbias = fabs(data[i].P2-wl2*data[i].L2-biasL2);
+ if(dbias > cfg(RawBiasLimit)) {
+ if(cfg(Debug) >= 2) log << "BEFresetL2 " << GDCUnique
+ << " " << sat << " " << time(i).printf(outFormat)
+ << " " << fixed << setprecision(3) << biasL2
+ << " " << data[i].P2 - wl2 * data[i].L2 << endl;
+ biasL2 = data[i].P2 - wl2 * data[i].L2;
+ }
+
+ A1[i] = data[i].P1 - wl1 * data[i].L1 - biasL1;
+ A2[i] = data[i].P2 - wl2 * data[i].L2 - biasL2;
+
+ } // end loop over points in the segment
+
+ // delete small segments
+ if(it->npts < int(cfg(MinPts)))
+ deleteSegment(it,"insufficient data in segment");
+ else
+ Ngood++;
+ }
+
+ if(cfg(Debug) >= 2) dumpSegments("BEF",2,true);
+
+ if(Ngood == 0) return NoData;
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+int GDCPass::linearCombinations(void) throw(Exception)
+{
+try {
+ int i;
+ double wlr,wlp,wlbias,gfr,gfp;
+ list<Segment>::iterator it;
+
+ // iterate over segments
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+ it->npts = 0; // re-compute npts here
+
+ // loop over points in this segment
+ for(i=it->nbeg; i<=it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ wlr = wl1r * data[i].P1 + wl2r * data[i].P2; // narrow lane range (m)
+ wlp = wl1p * data[i].L1 + wl2p * data[i].L2; // wide lane phase (m)
+ gfr = data[i].P1 - data[i].P2; // geometry-free range (m)
+ gfp = gf1p * data[i].L1 + gf2p * data[i].L2; // geometry-free phase (m)
+ wlbias = (wlp-wlr)/wlwl; // wide lane bias (cycles)
+
+ // change the bias
+ if(it->npts == 0) { // first good point
+ it->bias1 = wlbias; // WL bias (NWL)
+ it->bias2 = gfp; // GFP bias
+ }
+
+ // change the arrays
+ data[i].L1 = gfp + gfr; // only used in GF
+ data[i].L2 = gfp;
+ data[i].P1 = wlbias;
+ data[i].P2 = - gfr;
+
+ it->npts++;
+ }
+ }
+
+ if(cfg(Debug) >= 2) dumpSegments("LCD");
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// detect slips in the wide lane bias
+int GDCPass::detectWLslips(void) throw(Exception)
+{
+try {
+ int iret;
+ list<Segment>::iterator it;
+
+ // look for obvious slips. this will break one segment into many
+ if( (iret = detectObviousSlips("WL"))) return iret;
+
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+
+ // compute stats and delete segments that are too small
+ WLcomputeStats(it);
+
+ // sigma-strip the WL bias, and remove small segments
+ if(it->npts > 0) WLsigmaStrip(it);
+
+ // print this before deleting segments with large sigma
+ if(cfg(Debug) >= 1 && it->npts >= int(cfg(MinPts)))
+ log << "WLSIG " << GDCUnique << " " << sat
+ << " " << it->nseg
+ << " " << time(it->nbeg).printf(outFormat)
+ << fixed << setprecision(3)
+ << " " << it->WLStats.StdDev()
+ << " " << it->WLStats.Average()
+ << " " << it->WLStats.Minimum()
+ << " " << it->WLStats.Maximum()
+ << " " << it->npts
+ << " " << it->nbeg << " - " << it->nend
+ << " " << it->bias1
+ << " " << it->bias2
+ << endl;
+
+ // delete segments if sigma is too high...
+ if(it->WLStats.StdDev() > cfg(WLNSigmaDelete)*cfg(WLSigma))
+ deleteSegment(it,"WL sigma too big");
+
+ // if there are less than about 2.5*cfg(WLWindowWidth) good points, don't bother
+ // to use the sliding window method to look for slips; otherwise
+ // compute stats for each segment using the 'two-paned sliding stats window',
+ // store results in the temporary arrays
+ if(double(it->npts) >= cfg(WLNWindows) * int(cfg(WLWindowWidth))) {
+ iret = WLstatSweep(it,int(cfg(WLWindowWidth)));
+ if(iret) return iret;
+ }
+
+ } // end loop over segments
+
+ // use the temporary arrays filled by WLstatSweep to detect slips in the WL bias
+ // recompute WLstats, and break up the segments where slips are found
+ if( (iret = detectWLsmallSlips())) return iret;
+
+ // delete all segments that are too small
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+ if(it->npts < int(cfg(MinPts)))
+ deleteSegment(it,"insufficient data in segment");
+ }
+
+ if(cfg(Debug) >= 4) dumpSegments("WLD");
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// detect obvious slips by computing the first difference (of either WL or GFP)
+// and looking for outliers. create new segments where there are slips
+// which is either 'WL' or 'GF'.
+int GDCPass::detectObviousSlips(string which) throw(Exception)
+{
+try {
+ // TD determine from range noise // ~ 2*range noise/wl2
+ const double WLobviousNwlLimit=cfg(WLobviousLimit)*cfg(WLSigma);
+ const double GFobviousNwlLimit=cfg(GFobviousLimit)*cfg(GFVariation)/wl21;
+ bool outlier;
+ int i,j,iret,ibad,igood,nok;
+ double limit,wlbias;
+ list<Segment>::iterator it;
+
+ // compute 1st differences of (WL bias, GFP-GFR) as which is (WL,GF)
+ iret = firstDifferences(which);
+ if(iret) return iret;
+
+ if(cfg(Debug) >= 5) dumpSegments(string("D")+which,2,true); // DWL DGF
+
+ // scan the first differences, eliminate outliers and
+ // break into segments where there are WL slips.
+ limit = (which == string("WL") ? WLobviousNwlLimit : GFobviousNwlLimit);
+ it = SegList.begin();
+ nok = 0;
+ igood = -1;
+ outlier = false;
+ for(i=0; i<data.size(); i++) {
+ if(i < it->nbeg) {
+ outlier = false;
+ continue;
+ }
+ if(i > it->nend) { // change segments
+ if(outlier) {
+ if(data[ibad].flag & OK) nok--;
+ data[ibad].flag = BAD;
+ learn[string("points deleted: ") + which + string(" slip outlier")]++;
+ outlier = false;
+ }
+ it->npts = nok;
+ // update nbeg and nend
+ while(it->nbeg < it->nend
+ && it->nbeg < data.size()
+ && !(data[it->nbeg].flag & OK) ) it->nbeg++;
+ while(it->nend > it->nbeg
+ && it->nend > 0
+ && !(data[it->nend].flag & OK) ) it->nend--;
+ it++;
+ if(it == SegList.end())
+ return ReturnOK;
+ nok = 0;
+ }
+
+ if(!(data[i].flag & OK))
+ continue;
+ nok++; // nok = # good points in segment
+
+ if(igood == -1) igood = i; // igood is index of last good point
+
+ if(fabs(A1[i]) > limit) { // found an outlier (1st diff, cycles)
+ outlier = true;
+ ibad = i; // ibad is index of last bad point
+ }
+ else if(outlier) { // this point good, but not past one(s)
+ for(j=igood+1; j<ibad; j++) {
+ if(data[j].flag & OK)
+ nok--;
+ if(data[j].flag & DETECT)
+ log << "Warning - found an obvious slip, "
+ << "but marking BAD a point already marked with slip "
+ << GDCUnique << " " << sat
+ << " " << time(j).printf(outFormat) << " " << j << endl;
+ data[j].flag = BAD; // mark all points between as bad
+ learn[string("points deleted: ") + which + string(" slip outlier")]++;
+ }
+
+ // create a new segment, starting at the last outlier
+ it->npts = nok-2;
+ // WL slip gross OR GF slip gross
+ it = createSegment(it,ibad,which+string(" slip gross"));
+
+ // mark it
+ data[ibad].flag |= (which == string("WL") ? WLDETECT : GFDETECT);
+
+ // change the bias in the new segment
+ if(which == "WL") {
+ wlbias = data[ibad].P1;
+ it->bias1 = long(wlbias+(wlbias > 0 ? 0.5 : -0.5)); // WL bias (NWL)
+ }
+ if(which == "GF")
+ it->bias2 = data[ibad].L2; // GFP bias
+
+ // prep for next point
+ nok = 2;
+ outlier = false;
+ igood = ibad;
+ }
+ else
+ igood = i;
+ }
+ it->npts = nok;
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// compute first differences of data array(s) for WL and GF gross slip detection.
+// for WL difference the WLbias (P1); for GF, the GFP (L2) and the GFR (P2)
+// Store results in A1, and for GF put the range difference in A2
+int GDCPass::firstDifferences(string which) throw(Exception)
+{
+try {
+ if(A1.size() != data.size()) return FatalProblem;
+
+ int i,iprev = -1;
+
+ for(i=0; i<data.size(); i++) {
+ // ignore bad data
+ if(!(data[i].flag & OK)) {
+ A1[i] = A2[i] = 0.0;
+ continue;
+ }
+
+ // compute first differences - 'change the arrays' A1 and A2
+ if(which == string("WL")) {
+ if(iprev == -1)
+ A1[i] = 0.0;
+ else
+ A1[i] = (data[i].P1 - data[iprev].P1) / (data[i].ndt-data[iprev].ndt);
+ }
+ else if(which == string("GF")) {
+ if(iprev == -1) // first difference not defined at first point
+ A1[i] = A2[i] = 0.0;
+ else {
+ // compute first difference of L1 = raw residual GFP-GFR
+ A1[i] = (data[i].L1 - data[iprev].L1) / (data[i].ndt-data[iprev].ndt);
+ // compute first difference of GFP = L2
+ A2[i] = (data[i].L2 - data[iprev].L2) / (data[i].ndt-data[iprev].ndt);
+ }
+ }
+
+ // go to next point
+ iprev = i;
+ }
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// for one segment, compute conventional statistics on the
+// WL bias and count the number of good points
+void GDCPass::WLcomputeStats(list<Segment>::iterator& it) throw(Exception)
+{
+try {
+ // compute WLStats
+ it->WLStats.Reset();
+ it->npts = 0;
+
+ // loop over data, adding to Stats, and counting good points
+ for(int i=it->nbeg; i<=it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+ it->WLStats.Add(data[i].P1 - it->bias1);
+ it->npts++;
+ }
+
+ // eliminate segments with too few points
+ if(it->npts < int(cfg(MinPts)))
+ deleteSegment(it,"insufficient data in segment");
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// for one segment, compute conventional statistics on the
+// WL bias, remove small segments, and mark bad points that lie outside N*sigma
+void GDCPass::WLsigmaStrip(list<Segment>::iterator& it) throw(Exception)
+{
+try {
+ bool outlier,haveslip;
+ unsigned short slip;
+ int i,slipindex;
+ double wlbias,nsigma,ave;
+
+ // use robust stats on small segments, for big ones stick with conventional
+ // 'change the arrays' A1 and A2; they will be used again by WLstatSweep
+ if(it->npts < cfg(WLNptsOutlierStats)) { // robust
+ int j;
+ double median,mad;
+ // put wlbias in A1, but without gaps - let j index good points only from nbeg
+ for(j=i=it->nbeg; i<=it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+ wlbias = data[i].P1 - it->bias1;
+ A1[j] = wlbias;
+ j++;
+ }
+
+ mad = Robust::MAD(&(A1[it->nbeg]),j-it->nbeg,median,true);
+ nsigma = cfg(WLNSigmaStrip) * mad;
+ // change the array : A1 is wlbias, A2 will contain the weights
+ ave = Robust::MEstimate(&(A1[it->nbeg]),j-it->nbeg,median,mad,&(A2[it->nbeg]));
+
+ haveslip = false;
+ for(j=i=it->nbeg; i<=it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ wlbias = data[i].P1 - it->bias1;
+
+ // TD ? use weights at all? they remove a lot of points
+ // TD add absolute limit?
+ if(fabs(wlbias-ave) > nsigma || A2[j] < cfg(WLRobustWeightLimit))
+ outlier = true;
+ else
+ outlier = false;
+
+ // remove points by sigma stripping
+ if(outlier) {
+ if(data[i].flag & DETECT || i == it->nbeg) {
+ haveslip = true;
+ slipindex = i; // mark
+ slip = data[i].flag; // save to put on first good point
+ //log << "Warning - marking a slip point BAD in WL sigma strip "
+ // << GDCUnique << " " << sat
+ // << " " << time(i).printf(outFormat) << " " << i << endl;
+ }
+ data[i].flag = BAD;
+ learn["points deleted: WL sigma stripping"]++;
+ it->npts--;
+ it->WLStats.Subtract(wlbias);
+ }
+ else if(haveslip) {
+ data[i].flag = slip;
+ haveslip = false;
+ }
+
+ if(cfg(Debug) >= 6) {
+ log << "DSCWLR " << GDCUnique << " " << sat
+ << " " << it->nseg
+ << " " << time(i).printf(outFormat)
+ << fixed << setprecision(3)
+ << " " << setw(3) << data[i].flag
+ << " " << setw(13) << A1[j] // wlbias
+ << " " << setw(13) << fabs(wlbias-ave)
+ << " " << setw(5) << A2[j] // 0 <= weight <= 1
+ << " " << setw(3) << i
+ << (outlier ? " outlier" : "");
+ if(i == it->nbeg) log
+ << " " << setw(13) << it->bias1
+ << " " << setw(13) << it->bias2;
+ log << endl;
+ }
+
+ j++;
+ }
+
+ }
+ else { // conventional
+
+ //nsigma = WLsigmaStrippingNsigmaLimit * it->WLStats.StdDev();
+ nsigma = cfg(WLNSigmaStrip) * it->WLStats.StdDev();
+
+ haveslip = false;
+ ave = it->WLStats.Average();
+ for(i=it->nbeg; i<=it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ wlbias = data[i].P1 - it->bias1;
+
+ // remove points by sigma stripping
+ if(fabs(wlbias-ave) > nsigma) { // TD add absolute limit?
+ if(data[i].flag & DETECT) {
+ haveslip = true;
+ slipindex = i; // mark
+ slip = data[i].flag; // save to put on first good point
+ //log << "Warning - marking a slip point BAD in WL sigma strip "
+ // << GDCUnique << " " << sat
+ // << " " << time(i).printf(outFormat) << " " << i << endl;
+ }
+ data[i].flag = BAD;
+ learn["points deleted: WL sigma stripping"]++;
+ it->npts--;
+ it->WLStats.Subtract(wlbias);
+ }
+ else if(haveslip) {
+ data[i].flag = slip;
+ haveslip = false;
+ }
+
+ } // loop over points in segment
+ }
+
+ // change nbeg, but don't change the bias
+ if(haveslip) {
+ it->nbeg = slipindex;
+ //wlbias = data[slipindex].P1;
+ //it->bias1 = long(wlbias+(wlbias > 0 ? 0.5 : -0.5));
+ }
+
+ // again
+ if(it->npts < int(cfg(MinPts)))
+ deleteSegment(it,"WL sigma stripping");
+ else {
+ // update nbeg and nend // TD add limit 0 data.size()
+ while(it->nbeg < it->nend && !(data[it->nbeg].flag & OK)) it->nbeg++;
+ while(it->nend > it->nbeg && !(data[it->nend].flag & OK)) it->nend--;
+ }
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// in the given segment, compute statistics on the WL bias using a
+// 'two-paned sliding window', each pane of width 'width' good points.
+// store the results in the parallel (to SatPass::data) arrays A1,A2.
+int GDCPass::WLstatSweep(list<Segment>::iterator& it, int width) throw(Exception)
+{
+try {
+ int iminus,i,iplus;
+ double wlbias,test,limit;
+ Stats<double> pastStats, futureStats;
+
+ // ignore empty segments
+ if(it->npts == 0) return ReturnOK;
+ it->WLsweep = true;
+
+ // Cartoon of the 'two-pane moving window'
+ // windows: 'past window' 'future window'
+ // stats : --- pastStats---- ----futureStats--
+ // data : (x x x x x x x x x)(x x x x x x x x x) x ...
+ // | | | |
+ // indexes: iminus i-1 i iplus
+
+ // start with the window 'squashed' to one point - the first one
+ iminus = i = iplus = it->nbeg;
+
+ // fill up the future window to size 'width', but don't go beyond the segment
+ while(futureStats.N() < width && iplus <= it->nend) {
+ if(data[iplus].flag & OK) { // add only good data
+ futureStats.Add(data[iplus].P1 - it->bias1);
+ }
+ iplus++;
+ }
+
+ // now loop over all points in the segment
+ for(i=it->nbeg; i<= it->nend; i++) {
+ if(!(data[i].flag & OK)) // add only good data
+ continue;
+
+ // compute test and limit
+ test = 0;
+ if(pastStats.N() > 0 && futureStats.N() > 0)
+ test = fabs(futureStats.Average()-pastStats.Average());
+ limit = ::sqrt(futureStats.Variance() + pastStats.Variance());
+ // 'change the arrays' A1 and A2
+ A1[i] = test;
+ A2[i] = limit;
+
+ wlbias = data[i].P1 - it->bias1; // debiased WLbias
+
+ // dump the stats
+ if(cfg(Debug) >= 6) log << "WLS " << GDCUnique
+ << " " << sat << " " << it->nseg
+ << " " << time(i).printf(outFormat)
+ << fixed << setprecision(3)
+ << " " << setw(3) << pastStats.N()
+ << " " << setw(7) << pastStats.Average()
+ << " " << setw(7) << pastStats.StdDev()
+ << " " << setw(3) << futureStats.N()
+ << " " << setw(7) << futureStats.Average()
+ << " " << setw(7) << futureStats.StdDev()
+ << " " << setw(9) << A1[i]
+ << " " << setw(9) << A2[i]
+ << " " << setw(9) << wlbias
+ << " " << setw(3) << i
+ << endl;
+
+ // update stats :
+ // move point i from future to past, ...
+ futureStats.Subtract(wlbias);
+ pastStats.Add(wlbias);
+ // ... and move iplus up by one (good) point, ...
+ while(futureStats.N() < width && iplus <= it->nend) {
+ if(data[iplus].flag & OK) {
+ futureStats.Add(data[iplus].P1 - it->bias1);
+ }
+ iplus++;
+ }
+ // ... and move iminus up by one good point
+ while(pastStats.N() > width && iminus <= it->nend) {// <= nend not really nec.
+ if(data[iminus].flag & OK) {
+ pastStats.Subtract(data[iminus].P1 - it->bias1);
+ }
+ iminus++;
+ }
+
+ } // end loop over i=all points in segment
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// look for slips in the WL using the results of WLstatSweep
+// if slip is close to either end (< window width), just chop off the small segment
+// recompute WLstats; when a slip is found, create a new segment
+int GDCPass::detectWLsmallSlips(void) throw(Exception)
+{
+try {
+ int i,k,nok;
+ double wlbias;
+ list<Segment>::iterator it;
+
+ // find first segment for which WLstatSweep was called
+ it = SegList.begin();
+ while(!it->WLsweep) {
+ it++;
+ if(it == SegList.end()) return ReturnOK;
+ }
+ it->WLStats.Reset();
+
+ // loop over the data arrays - all segments
+ i = it->nbeg;
+ nok = 0;
+ while(i < data.size())
+ {
+ // must skip segments for which WLstatSweep was not called
+ while(i > it->nend || !it->WLsweep) {
+ if(i > it->nend) {
+ it->npts = nok;
+ nok = 0;
+ }
+ it++;
+ if(it == SegList.end()) return ReturnOK;
+ i = it->nbeg;
+ if(it->WLsweep) {
+ it->WLStats.Reset();
+ }
+ }
+
+ if(data[i].flag & OK) {
+ nok++; // nok = # good points in segment
+
+ if(nok == 1) { // change the bias, as WLStats reset
+ wlbias = data[i].P1;
+ it->bias1 = long(wlbias+(wlbias > 0 ? 0.5 : -0.5));
+ }
+
+ // condition 3 - near ends of segment?
+ if(nok < 2 || (it->npts - nok) < 2 ) { // TD input 1/2 width
+ // failed test 3 - near ends of segment
+ // consider chopping off this end of segment - large limit?
+ // TD must do something here ...
+ log << "too near end " << GDCUnique
+ << " " << i << " " << nok << " " << it->npts-nok
+ << " " << time(i).printf(outFormat)
+ << " " << A1[i] << " " << A2[i]
+ << endl;
+
+
+
+ }
+ else if(foundWLsmallSlip(it,i)) { // met condition 3
+ // create new segment
+ // TD what if nok < MinPts? -- cf detectGFsmallSlips
+ k = it->npts;
+ it->npts = nok;
+ //log << "create new segment at i = " << i << " " << nok << "pts\n";
+ it = createSegment(it,i,"WL slip small");
+
+ // mark it
+ data[i].flag |= WLDETECT;
+
+ // prep for next segment
+ // biases remain the same in the new segment
+ it->npts = k - nok;
+ nok = 0;
+ it->WLStats.Reset();
+ wlbias = data[i].P1; // change the bias, as WLStats reset
+ it->bias1 = long(wlbias+(wlbias > 0 ? 0.5 : -0.5));
+ }
+
+ it->WLStats.Add(data[i].P1 - it->bias1);
+
+ } // end if good data
+
+ i++;
+
+ } // end loop over points in the pass
+
+ it->npts = nok;
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// determine if a slip has been found at index i, in segment it
+// CONDITIONs for a slip to be detected:
+// 1. test must be >= ~0.67 wlwl
+// 2. limit must be much smaller than test
+// 3. slip must be far (>1/2 window) from either end
+// 4. test must be at a local maximum within ~ window width
+// 5. limit must be at a local minimum (")
+// 6. (test-limit)/limit > 1.2
+// large limit (esp near end of a pass) means too much noise
+bool GDCPass::foundWLsmallSlip(list<Segment>::iterator& it, int i)
+ throw(Exception)
+{
+try {
+ const int minMaxWidth=int(cfg(WLSlipEdge)); // test 4,5, = ~~1/2 WLWindowWidth
+ int j,jp,jm,pass4,pass5,Pass;
+
+ // A1 = test = fabs(futureStats.Average() - pastStats.Average());
+ // A2 = limit = ::sqrt(futureStats.Variance() + pastStats.Variance());
+ // all units WL cycles
+
+ // CONDITION 1 CONDITION 2
+ if(A1[i] <= cfg(WLSlipSize) || A1[i]-A2[i] <= cfg(WLSlipExcess)) {
+ return false;
+ }
+
+ // Debug print
+ if(cfg(Debug) >= 6) log << "WLslip " << GDCUnique
+ << " " << sat << " " << it->nseg
+ << " " << setw(3) << i
+ << " " << time(i).printf(outFormat)
+ //<< " " << it->npts << "pt"
+ << fixed << setprecision(2)
+ << " test " << setw(4) << A1[i] << (A1[i]>0.67?">":"<=") << "0.67"
+ << ", " << setw(4) << A1[i]-A2[i]
+ << (A1[i]-A2[i]>0.1 ? ">" : "<=") << "0.1"
+ << ", lim " << setw(4) << A2[i]
+ << " (" << (A1[i]-A2[i])/A2[i];
+ // no endl
+
+ // CONDITIONs 4 and 5
+ // do for 3 points on each side of point - best score is pass=6
+ j = pass4 = pass5 = 0;
+ jp = jm = i;
+ do {
+ // find next good point in future
+ do { jp++; } while(jp < it->nend && !(data[jp].flag & OK));
+ // CONDITION 4: test(A1) is a local maximum
+ if(A1[i]-A1[jp] > 0) pass4++;
+ // CONDITION 5: limit(A2) is a local maximum
+ if(A2[i]-A2[jp] < 0) pass5++;
+
+ // find next good point in past
+ do { jm--; } while(jm > it->nbeg && !(data[jm].flag & OK));
+ // CONDITION 4: test(A1) is a local maximum
+ if(A1[i]-A1[jp] > 0) pass4++;
+ // CONDITION 5: limit(A2) is a local maximum
+ if(A2[i]-A2[jp] < 0) pass5++;
+
+ } while(++j < minMaxWidth);
+
+ // perfect = 2*minMaxWidth; allow 1 miss...?
+ Pass = 0;
+ if(pass4 >= 2*minMaxWidth-1) { Pass++; if(cfg(Debug) >= 6) log << " tst_max"; }
+ if(pass5 >= 2*minMaxWidth-1) { Pass++; if(cfg(Debug) >= 6) log << " lim_min"; }
+
+ // CONDITION 6
+ if( (A1[i]-A2[i])/A2[i] > cfg(WLSlipSeparation) ) {
+ Pass++;
+ if(cfg(Debug) >= 6) log << " tst_lim_separation";
+ }
+
+ if(cfg(Debug) >= 6) log << ")";
+
+ if(Pass == 3) {
+ if(cfg(Debug) >= 6) log << " possible WL slip" << endl;
+ return true;
+ }
+ if(cfg(Debug) >= 6) log << endl;
+
+ return false;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// estimate slips and adjust biases appropriately - ie fix slips - for both WL and GF
+// merge all data into one segment
+int GDCPass::fixAllSlips(string which) throw(Exception)
+{
+try {
+ // find the largest segment and start there, always combine the largest with its
+ // largest neighbor
+ int i,nmax,ifirst;
+ list<Segment>::iterator it, kt;
+
+ // loop over all segments, erasing empty ones
+ it = SegList.begin();
+ while(it != SegList.end()) {
+ if(it->npts == 0)
+ it = SegList.erase(it);
+ else
+ it++;
+ }
+
+ if(SegList.empty())
+ return NoData;
+
+ // find the largest segment
+ for(kt=SegList.end(),nmax=0,it=SegList.begin(); it != SegList.end(); it++) {
+ if(it->npts > nmax) {
+ nmax = it->npts;
+ kt = it;
+ }
+ }
+
+ // fix all the slips, starting with the largest segment
+ // this will merge all segments into one
+ GDCUniqueFix = 0;
+ while(kt != SegList.end()) {
+ fixOneSlip(kt,which);
+ }
+
+ // TD here to return should be a separate call...
+
+ // now compute stats for the WL for the (single segment) whole pass
+ kt = SegList.begin();
+ if(which == string("WL")) { // WL
+ WLPassStats.Reset();
+ for(i=kt->nbeg; i <= kt->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+ WLPassStats.Add(data[i].P1 - kt->bias1);
+ }
+ // NB Now you have a measure of range noise for the whole pass :
+ // sigma(WLbias) ~ sigma(WLrange) = 0.71*sigma(range), so
+ // range noise = WLPassStats.StdDev() * wlwl / 0.71; // meters
+ // 0.71 / wlwl = 0.83
+
+ // TD mark the first slip 'fixed' - unmark it - or something
+ }
+ // change the biases - reset the GFP bias so that it matches the GFR
+ else { // GF
+//temp
+dumpSegments("GFFbefRebias",2,true);
+ for(ifirst=-1,i=kt->nbeg; i <= kt->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+ if(ifirst == -1) {
+ ifirst = i;
+ kt->bias2 = data[ifirst].L2 + data[ifirst].P2;
+ kt->bias1 = data[ifirst].P1;
+ }
+ // change the data - recompute GFR-GFP so it has one consistent bias
+ data[i].L1 = data[i].L2 + data[i].P2;
+ }
+ }
+
+ if(cfg(Debug) >= 3) dumpSegments(which + string("F"),2,true); // WLF GFF
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by fixAllSlips
+// assume there are no empty segments in the list
+void GDCPass::fixOneSlip(list<Segment>::iterator& kt, string which) throw(Exception)
+{
+try {
+ if(kt->npts == 0) { kt++; return; }
+
+ list<Segment>::iterator left,right,it;
+
+ // kt points to the biggest segment
+ // define left and right to be the two segments on each side of the slip to be
+ // fixed; assume there are no empty segments in the list
+ right = left = kt;
+
+ // choose the next segment on the right of kt
+ right++;
+
+ // choose the next segment on the left of kt
+ if(kt != SegList.begin())
+ left--;
+ else
+ left = SegList.end(); // nothing on the left
+
+ // no segment left of kt and no segment right of kt - nothing to do
+ if(left == SegList.end() && right == SegList.end()) {
+ kt++;
+ return;
+ }
+
+ // Always define kt to == left, as it will be returned and right will be erased.
+ if(left == SegList.end()) { // no segment on left
+ left = kt;
+ }
+ else if(right == SegList.end() // no segment on right
+ || left->npts >= right->npts) { // or left is the bigger segment
+ right = kt;
+ kt = left; // fix between left and kt
+ }
+ else { // left and right exist, and right is bigger
+ left = kt; // fix between kt and right
+ }
+
+ // fix the slip between left and right, making data in 'right' part of 'left'
+ if(which == string("WL"))
+ WLslipFix(left,right);
+ else
+ GFslipFix(left,right);
+
+ left->npts += right->npts;
+ left->nend = right->nend;
+
+ // always delete right, otherwise on return kt(==left) will be invalid
+ // (ignore return value = iterator to first element after the one erased)
+ SegList.erase(right);
+
+ return;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by fixOneSlip
+void GDCPass::WLslipFix(list<Segment>::iterator& left,
+ list<Segment>::iterator& right)
+throw(Exception)
+{
+try {
+ int i;
+
+ GDCUniqueFix++;
+
+ // full slip
+ double dwl = right->bias1 + right->WLStats.Average()
+ - (left->bias1 + left->WLStats.Average());
+ long nwl = long(dwl + (dwl > 0 ? 0.5 : -0.5));
+
+ // TD ? test gap size?
+ //if(cfg(DT)*(right->nbeg - left->nend) > cfg(MaxGap)) break;
+
+ // test that total variance is small
+ //if(::sqrt(left->WLStats.Variance() + right->WLStats.Variance())
+ // / (left->WLStats.N() + right->WLStats.N()) < cfg(WLFixSigma)) {
+ // log << "Cannot fix WL slip (noisy) at " << right->nbeg
+ // << " " << time(right->nbeg).printf(outFormat)
+ // << endl;
+ // break;
+ //}
+
+ // TD ? test fractional part of offset fabs
+ //if(fabs(dwl-nwl) > cfg(WLFixFrac)) break;
+
+ if(cfg(Debug) >= 6) log << "Fix " << GDCUnique << " " << sat << " " << GDCUniqueFix
+ << " WL " << time(right->nbeg).printf(outFormat)
+ << " " << left->nseg << "-" << right->nseg
+ << fixed << setprecision(2)
+ << " right: " << right->bias1 << " + " << right->WLStats.Average()
+ << " - left: " << left->bias1 << " + " << left->WLStats.Average()
+ << " = " << dwl << " " << nwl << " "
+ << endl;
+
+ // now do the fixing - change the data in the right segment to match left's
+ for(i=right->nbeg; i<=right->nend; i++) {
+ //if(!(data[i].flag & OK)) continue;
+ data[i].P1 -= nwl; // WLbias
+ data[i].L2 -= nwl * wl2; // GFP
+ // add to WLStats
+ //if(!(data[i].flag & OK)) continue;
+ //left->WLStats.Add(data[i].P1 - left->bias1);
+ }
+
+ // fix the slips beyond the 'right' segment.
+ // change the data in the GFP, and change the both the data and the bias in the WL.
+ // this way, WLStats is still valid, but if we change the GF bias, we will lose
+ // that information before the GF slips get fixed.
+ list<Segment>::iterator it = right;
+ for(it++; it != SegList.end(); it++) {
+ // Use real, not int, nwl b/c rounding error in a pass with many slips
+ // can build up and produce errors.
+ it->bias1 -= dwl;
+ for(i=it->nbeg; i<=it->nend; i++) {
+ //if(!(data[i].flag & OK)) continue; // TD don't?
+ data[i].P1 -= nwl; // WLbias
+ data[i].L2 -= nwl * wl2; // GFP
+ }
+ }
+
+ // Add to slip list
+ Slip newSlip(right->nbeg);
+ newSlip.NWL = nwl;
+ newSlip.msg = "WL";
+ SlipList.push_back(newSlip);
+
+ // mark it
+ data[right->nbeg].flag |= WLFIX;
+
+ return;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// fix one slip in the geometry-free phase
+// called by fixOneSlip
+void GDCPass::GFslipFix(list<Segment>::iterator& left,
+ list<Segment>::iterator& right) throw(Exception)
+{
+try {
+ // use this number of data points on each side of slip
+ const int Npts=int(cfg(GFFixNpts));
+ int i,nb,ne,nl,nr,ilast;
+ long n1,nadj; // slip magnitude (cycles)
+ double dn1,dnGFR;
+ Stats<double> Lstats,Rstats;
+
+ GDCUniqueFix++;
+
+//temp
+log << "GFslipFix " << GDCUniqueFix << " biases L: " << left->bias2 << " R: " << right->bias2 << endl;
+ // find Npts points on each side of slip
+ nb = left->nend;
+ i = 1;
+ nl = 0;
+ ilast = -1; // ilast is last good point before slip
+ while(nb > left->nbeg && i < Npts) {
+ if(data[nb].flag & OK) {
+ if(ilast == -1) ilast = nb;
+ i++; nl++;
+ Lstats.Add(data[nb].L1 - left->bias2);
+log << "LDATA " << nb << " " << data[nb].L1-left->bias2 << endl;
+ }
+ nb--;
+ }
+ ne = right->nbeg;
+ i = 1;
+ nr = 0;
+ while(ne < right->nend && i < Npts) {
+ if(data[ne].flag & OK) {
+ i++; nr++;
+ Rstats.Add(data[ne].L1 - right->bias2);
+log << "RDATA " << ne << " " << data[ne].L1-right->bias2 << endl;
+ }
+ ne++;
+ }
+
+ // first estimate of n1, without biases
+ // need to use the GFR-GFP estimate here, and limit |nadj| to be well within
+ // sigmas on the stats, b/c when ionosphere is very active, GFP and GFR will both
+ // vary sharply, and fitting a polynomial to GFP is a BAD thing to do....
+ // ultimately, GFR-GFP is accurate but noisy.
+ // rms rof should tell you how much weight to put on rof
+ // larger rof -> smaller npts and larger degree
+ dn1 = data[right->nbeg].L2 - right->bias2 - (data[ilast].L2 - left->bias2);
+ // this screws up most fixes
+ //dn1 = Rstats.Average() - right->bias2 - (Lstats.Average() - left->bias2);
+ n1 = long(dn1 + (dn1 > 0 ? 0.5 : -0.5));
+
+ // TD worry about too small pieces - nr or nl too small
+
+ // estimate the slip using polynomial fits - this prints GFE data
+ nadj = EstimateGFslipFix(left,right,nb,ne,n1);
+
+ // adjust the adjustment if it is not consistent with Lstats vs Rstats
+ // dn1+nadj - a. current best estimate
+ // Rstats.Averge()-Lstats.Average - b. estimate from stats on GFR-GFP across slip
+ // difference should be consistent with R/Lstats.StdDev
+ // if not, replace nadj with b. - dn1
+ dnGFR = Rstats.Average() - Lstats.Average();
+// temp add factor 10.*
+ if(fabs(n1+nadj-dnGFR) > 10.*(Rstats.StdDev()+Lstats.StdDev())) {
+ if(cfg(Debug) >= 6)
+ log << "GFRadjust " << GDCUnique << " " << sat << " " << GDCUniqueFix
+ << " GF " << time(right->nbeg).printf(outFormat)
+ << fixed << setprecision(2)
+ << " dbias(GFR): " << dnGFR
+ << " n1+nadj: " << n1+nadj;
+
+ nadj = long(dnGFR+(dnGFR > 0 ? 0.5 : -0.5)) - n1;
+
+ if(cfg(Debug) >= 6)
+ log << " new n1+nadj: " << n1+nadj << endl;
+ }
+
+ // output result
+ if(cfg(Debug) >= 6) {
+ log << "Fix " << GDCUnique << " " << sat << " " << GDCUniqueFix
+ << " GF " << time(right->nbeg).printf(outFormat)
+ << fixed << setprecision(2)
+ << " dbias: " << right->bias2 - left->bias2
+ << ", dn1: " << dn1 << ", n1: " << n1 << ", adj: " << nadj
+ << " indexes " << nb << " " << ne << " " << nl << " " << nr
+ << " segs " << left->nseg << " " << right->nseg
+ << " GFR-GFP:L: "
+ << Lstats.N() << " " << Lstats.Average() << " " << Lstats.StdDev()
+ << " R: "
+ << Rstats.N() << " " << Rstats.Average() << " " << Rstats.StdDev()
+ << " tests " << n1+nadj-dnGFR << " " << Rstats.StdDev()+Lstats.StdDev()
+ << endl;
+ }
+
+ // full slip, including biases
+ dn1 += right->bias2 - left->bias2;
+ n1 = long(dn1 + (dn1 > 0 ? 0.5 : -0.5));
+ n1 += nadj;
+
+ // now do the fixing : 'change the data' within right segment
+ // and through the end of the pass, to fix the slip
+ for(i=right->nbeg; i<data.size(); i++) {
+ //if(!(data[i].flag & OK)) continue; // TD? don't?
+ //data[i].P1 -= nwl; // no change to WLbias
+ data[i].L2 -= n1; // GFP
+ data[i].L1 -= n1; // GFR+GFP
+ }
+// temp add this
+ // 'change the bias' for all segments in the future (although right to be deleted)
+ list<Segment>::iterator kt;
+ for(kt=right; kt != SegList.end(); kt++)
+ kt->bias2 -= n1;
+
+ // Add to slip list, but if one exists with same time tag, use it instead
+ list<Slip>::iterator jt;
+ for(jt=SlipList.begin(); jt != SlipList.end(); jt++)
+ if(jt->index == right->nbeg) break;
+
+ if(jt == SlipList.end()) {
+ Slip newSlip(right->nbeg);
+ newSlip.N1 = -n1;
+ newSlip.msg = "GF only";
+ SlipList.push_back(newSlip);
+ }
+ else {
+ jt->N1 = -n1;
+ jt->msg += string(" GF");
+ }
+
+ // mark it
+ data[right->nbeg].flag |= GFFIX;
+
+ return;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by GFslipFix
+// estimate GF slip using polynomial fit to data around it
+long GDCPass::EstimateGFslipFix(list<Segment>::iterator& left,
+ list<Segment>::iterator& right,
+ int nb, int ne, long n1)
+throw(Exception)
+{
+try {
+ bool quit;
+ int i,k,in[3];
+ double rof,rmsrof[3];
+ PolyFit<double> PF[3];
+
+ // start at zero and limit |nadj| to ...TD
+ long nadj = 0;
+
+ // use a little indirect indexing array to avoid having to copy PolyFit objects....
+ for(k=0; k<3; k++) {
+ in[k]=k;
+ PF[in[k]].Reset(int(cfg(GFFixDegree)));
+ }
+
+ while(1) {
+ // compute 3 polynomial fits to this data, with slips of
+ // (nadj-1, nadj and nadj+1) wavelengths added to left segment
+ for(k=0; k<3; k++) {
+ if(PF[in[k]].N() > 0) continue;
+
+ // add all the data
+ for(i=nb; i<=ne; i++) {
+ if(!(data[i].flag & OK)) continue;
+ PF[in[k]].Add(
+ // data - (either left bias - poss. slip : right bias)
+ data[i].L2 - (i < right->nbeg ? left->bias2-n1-(nadj+k-1) : right->bias2),
+ // use debiased count
+ data[i].ndt - data[nb].ndt
+ );
+ }
+
+ // TD check that it not singular
+
+ // compute RMS residual of fit
+ rmsrof[in[k]] = 0.0;
+ for(i=nb; i<=ne; i++) {
+ if(!(data[i].flag & OK)) continue;
+ rof = // data minus fit
+ data[i].L2 - (i < right->nbeg ? left->bias2-n1-(nadj+k-1) : right->bias2)
+ - PF[in[k]].Evaluate(data[i].ndt - data[nb].ndt);
+ rmsrof[in[k]] += rof*rof;
+ }
+ rmsrof[in[k]] = ::sqrt(rmsrof[in[k]]);
+
+ } // end loop over fits
+
+ // the value of this is questionable, b/c with active ionosphere the real
+ // GFP is NOT smooth
+ for(quit=false,k=0; k<3; k++) if(rmsrof[in[k]] > cfg(GFFixMaxRMS)) {
+ log << "Warning - large RMS ROF in GF slip fix at in,k = "
+ << in[k] << " " << k << " " << rmsrof[in[k]] << " abort.\n";
+ quit = true;
+ }
+ if(quit) break;
+
+ //if(cfg(Debug) >= 6) {
+ // log << "Fix GF slip RMSROF : adj: " << nadj;
+ // for(i=0; i<3; i++) log << " " << rmsrof[in[i]];
+ // // below log << endl;
+ //}
+
+ // three cases: (TD - exceptions?) :
+ // rmsrof: 0 > 1 < 2 good
+ // 0 > 1 > 2 shift 0,1,2 to 1,2,3
+ // 0 < 1 < 2 shift 0,1,2 to -1,0,1
+ // 0 < 1 > 2 local max! - ??
+ if(rmsrof[in[0]] > rmsrof[in[1]]) {
+ if(rmsrof[in[1]] < rmsrof[in[2]]) { // local min - done
+ //if(cfg(Debug) >= 6) log << " done." << endl;
+ break;
+ }
+ else { // shift 0,1,2 to 1,2,3
+ k = in[0];
+ in[0] = in[1];
+ in[1] = in[2];
+ in[2] = k;
+ PF[in[2]].Reset();
+ nadj += 1;
+ //if(cfg(Debug) >= 6) log << " shift left" << endl;
+ }
+ }
+ else {
+ if(rmsrof[in[1]] < rmsrof[in[2]]) { // shift 0,1,2 to -1,0,1
+ k = in[2];
+ in[2] = in[1];
+ in[1] = in[0];
+ in[0] = k;
+ PF[in[0]].Reset();
+ nadj -= 1;
+ //if(cfg(Debug) >= 6) log << " shift right" << endl;
+ }
+ else { // local max
+ log << "Warning - local maximum in RMS residuals in EstimateGFslipFix"
+ << endl;
+ // TD do something
+ break;
+ }
+ }
+
+ } // end while loop
+
+ // dump the raw data with all the fits
+ for(i=nb; i<=ne; i++) {
+ if(!(data[i].flag & OK)) continue;
+ log << "GFE " << GDCUnique << " " << sat
+ << " " << GDCUniqueFix
+ << " " << time(i).printf(outFormat)
+ << " " << setw(2) << data[i].flag << fixed << setprecision(3);
+ for(k=0; k<3; k++) log << " "
+ << data[i].L2 - (i < right->nbeg ? left->bias2-n1-(nadj+k-1) : right->bias2)
+ << " " << PF[in[k]].Evaluate(data[i].ndt - data[nb].ndt);
+ log << " " << setw(3) << data[i].ndt << endl;
+ }
+
+ return nadj;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// fit a polynomial to the GF range, and change the units of -gfr(P2) and gfp(L2)
+// to cycles of wl21 (=5.4cm)
+int GDCPass::prepareGFdata(void) throw(Exception)
+{
+try {
+ bool first;
+ int i,nbeg,nend;
+ unsigned ndeg;
+
+ // decide on the degree of fit
+ nbeg = SegList.begin()->nbeg;
+ nend = SegList.begin()->nend;
+ ndeg = 2 + int(0.5 + (nend-nbeg+1)*cfg(DT)/3000.0);
+ if(ndeg > 6) ndeg = 6;
+ //if(ndeg > int(cfg(GFPolyMaxDegree))) ndeg = int(cfg(GFPolyMaxDegree));
+ if(ndeg < 2) ndeg = 2;
+
+ // global fit to the gfr
+ GFPassFit.Reset(ndeg);
+
+ for(first=true,i=nbeg; i <= nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ // 'change the bias' (initial bias only) in the GFP by changing units, also
+ // slip fixing in the WL may have changed the values of GFP
+ if(first) {
+//temp uncomment next 3 lines then comment again
+ //if(fabs(data[i].L2 - SegList.begin()->bias2) > 10.*wl21) {
+ // SegList.begin()->bias2 = data[i].L2;
+ //}
+ SegList.begin()->bias2 /= wl21;
+ first = false;
+ }
+
+ // 'change the arrays'
+ // change units on the GFP and the GFR
+ data[i].P2 /= wl21; // gfr (cycles of wl21)
+ data[i].L2 /= wl21; // gfp (cycles of wl21)
+
+ // compute polynomial fit
+ GFPassFit.Add(data[i].P2,data[i].ndt);
+
+ // 'change the data'
+ // save in L1 // gfp+gfr residual (cycles of wl21)
+ // ?? data[i].L1 = data[i].L2 - data[i].P2 - SegList.begin()->bias2;
+// temp add -bias2 then remove it again
+ data[i].L1 = data[i].L2 - data[i].P2; // - SegList.begin()->bias2;
+ }
+
+ if(GFPassFit.isSingular()) {
+ log << "Polynomial fit to GF range is singular! .. abort." << endl;
+ return Singular;
+ }
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// detect slips in the geometry-free phase
+int GDCPass::detectGFslips(void) throw(Exception)
+{
+try {
+ int i,iret;
+ //temp double bias;
+ list<Segment>::iterator it;
+
+ // places first difference of GF in A1 - 'change the arrays' A1
+ if( (iret = detectObviousSlips("GF"))) return iret;
+// temp
+if(cfg(Debug) >= 4) dumpSegments("GFobvious",2,true);
+
+ GFPassStats.Reset();
+ //temp bias = 0.0;
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+ // use bias for debiasing below
+ // TD what if this segment deleted?
+ //temp if(it == SegList.begin()) bias += it->bias2;
+
+ // compute stats on dGF/dt
+ for(i=it->nbeg; i <= it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ // compute first-diff stats in meters
+ // skip the first point in a segment - it is an obvious GF slip
+ if(i > it->nbeg) GFPassStats.Add(A1[i]*wl21);
+
+ // if a gross GF slip was found, must remove bias in L1=GF(R-P)
+ // in all subsequent segments ; 'change the data' L1
+ //temp if(it != SegList.begin()) data[i].L1 += bias - it->bias2;
+
+ } // end loop over data in segment it
+
+ // delete segments if sigma too high?
+
+ // check number of good points
+ if(it->npts < int(cfg(MinPts))) {
+ deleteSegment(it,"insufficient data in segment");
+ continue;
+ }
+
+ // fit polynomial to GFR in each segment
+ // compute (1stD of) fit residual GFP-fit(GFR) -> A1 - 'change the arrays' A1
+ // delete segment if polynomial is singular - probably due to too little data
+ if( (iret = GFphaseResiduals(it))) {
+ //return iret;
+ deleteSegment(it,"polynomial fit to GF residual failed");
+ continue;
+ }
+ }
+// temp
+if(cfg(Debug) >= 4) dumpSegments("GFrebias",2,true);
+
+ // 'change the arrays'
+ // at this point:
+ // L1 = GFP+GFR in cycles, by prepareGFdata()
+ // L2 = GFP in cycles, by prepareGFdata()
+ // P1 = wlbias
+ // P2 = GFR in cycles, by prepareGFdata()
+ // A1 = GFP-(local fit) OR its 1stD, by GFphaseResiduals()
+ // (was 1stD of GFP+GFR (in L1), by firstDifferences())
+ // A2 = 1stD of GFP (in L2), by firstDifferences()
+ if( (iret = detectGFsmallSlips())) return iret;
+
+ // delete all segments that are too small
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+ if(it->npts < int(cfg(MinPts)))
+ deleteSegment(it,"insufficient data in segment");
+ }
+
+ if(cfg(Debug) >= 4) dumpSegments("GFD",2,true);
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// for each segment, fit a polynomial to the gfr, then compute and store the
+// residual of fit
+int GDCPass::GFphaseResiduals(list<Segment>::iterator& it) throw(Exception)
+{
+try {
+ int i,j,ndeg,nprev;
+ double fit,rbias,prev,tmp;
+ Stats<double> rofStats;
+
+ // decide on the degree of fit
+ ndeg = 2 + int(0.5 + (it->nend-it->nbeg+1)*cfg(DT)/3000.0);
+ //if(ndeg > int(cfg(GFPolyMaxDegree))) ndeg = int(cfg(GFPolyMaxDegree));
+ if(ndeg > 6) ndeg = 6;
+ if(ndeg < 2) ndeg = 2;
+
+ it->PF.Reset(ndeg); // for fit to GF range
+
+ for(i=it->nbeg; i <= it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+ it->PF.Add(data[i].P2,data[i].ndt);
+ }
+
+ if(it->PF.isSingular()) { // this should never happen
+ log << "Polynomial fit to GF range is singular in segment " << it->nseg
+ << "! .. abort." << endl;
+ return Singular;
+ }
+
+ // now compute the residual of fit
+ rbias = prev = 0.0;
+ rofStats.Reset();
+ for(i=it->nbeg; i <= it->nend; i++) {
+ if(!(data[i].flag & OK)) continue;
+
+ // TD? Use whole pass for small segments?
+ //fit = GFPassFit.Evaluate(data[i].ndt); // use fit to gfr for whole pass
+ fit = it->PF.Evaluate(data[i].ndt);
+
+ // all (fit, resid, gfr and gfp) are in cycles of wl21 (5.4cm)
+
+ // compute gfp-(fit to gfr), store in A1 - 'change the arrays' A1 and A2
+ // OR let's try first difference of residual of fit
+ A1[i] = data[i].L2 - it->bias2 - fit; // residual: phase - fit to range
+ if(rbias == 0.0) { rbias = A1[i]; nprev = data[i].ndt - 1; }
+ A1[i] -= rbias; // debias residual for plots
+
+ // compute stats on residual of fit
+ rofStats.Add(A1[i]);
+
+ if(1) { // 1stD of residual - remember A1 has just been debiased
+ tmp = A1[i];
+ A1[i] -= prev; // diff with previous epoch's
+ A1[i] /= (data[i].ndt - nprev);
+ prev = tmp; // store residual for next point
+ nprev = data[i].ndt;
+ }
+
+ // store fit in A2
+ //A2[i] = fit; // fit to gfr (cycles of wl21)
+ // store raw residual GFP-GFR (cycles of wl21) in A2
+ //A2[i] = data[i].L2 - it->bias2 - data[i].P2;
+ }
+
+ // TD? need this? use this?
+ //log << "GFDsum " << GDCUnique << " " << sat << " " << it->nseg << " " << ndeg
+ // << " " << it->nbeg << " " << it->npts << " " << it->nend
+ // << " " << rofStats.N() << fixed << setprecision(3)
+ // << " " << rofStats.Minimum()
+ // << " " << rofStats.Maximum()
+ // << " " << rofStats.Average()
+ // << " " << rofStats.StdDev() << endl;
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// detect small slips in the geometry-free phase
+// TD outliers at the beginning or end of the segment....
+int GDCPass::detectGFsmallSlips(void) throw(Exception)
+{
+try {
+ const int width=int(cfg(GFSlipWidth));
+ int i,j,iplus,inew,ifirst,nok;
+ list<Segment>::iterator it;
+ Stats<double> pastStats,futureStats;
+
+ // loop over segments
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+
+ if(it->npts < 2*width+1) continue;
+
+ // Cartoon of the GF 'two-pane moving window'
+ // point of interest:|
+ // windows: 'past window' | 'future window'
+ // stats : pastStats | futureStats (5 pts in each window)
+ // data : ... x (x x x x x) x (x x x x x) x ...
+ // | | |
+ // indexes: j i iplus
+
+ deque<int> pastIndex, futureIndex;
+ pastStats.Reset();
+ futureStats.Reset();
+ i = inew = ifirst = -1;
+ nok = 0; // recount
+
+ // loop over points in the segment
+ for(iplus=it->nbeg; iplus<=it->nend+width; iplus++) {
+
+ // ignore bad points
+ if(iplus <= it->nend && !(data[iplus].flag & OK)) continue;
+ if(ifirst == -1) ifirst = iplus;
+
+ // pop the new i from the future
+ if(futureIndex.size() == width || iplus > it->nend) {
+ inew = futureIndex.front();
+ futureIndex.pop_front();
+ futureStats.Subtract(A1[inew]);
+ nok++;
+ }
+
+ // put iplus into the future deque
+ if(iplus <= it->nend) {
+ futureIndex.push_back(iplus);
+ futureStats.Add(A1[iplus]);
+ }
+ else
+ futureIndex.push_back(-1);
+
+ // check for outliers
+ // we now have:
+ // ( past ) ( future )
+ // data : ... x (x x x x x) x x (x x x x x) x ...
+ // | | |
+ // indexes: i inew iplus
+ // outlier if: (i,inew) = opposite signs but ~= large magnitude
+ // if found, mark i bad and replace A1(inew) = A1(inew)+A1(i)
+ if(foundGFoutlier(i,inew,pastStats,futureStats)) {
+ // check that i was not marked a slip in the last iteration
+ // if so, let inew be the slip and i the outlier
+ if(data[i].flag & DETECT) {
+ //log << "Warning - marking a slip point BAD in GF detect small "
+ // << GDCUnique << " " << sat
+ // << " " << time(i).printf(outFormat) << " " << i << endl;
+ data[inew].flag = data[i].flag;
+ it->nbeg = inew;
+ }
+ data[i].flag = BAD;
+ A1[inew] += A1[i];
+ learn["points deleted: GF outlier"]++;
+ i = inew;
+ nok--;
+ }
+
+ // pop last from past
+ if(pastIndex.size() == width) {
+ j = pastIndex.front();
+ pastIndex.pop_front();
+ pastStats.Subtract(A1[j]);
+ }
+
+ // move i into the past
+ if(i > -1) {
+ pastIndex.push_back(i);
+ pastStats.Add(A1[i]);
+ }
+
+ // return to original state
+ i = inew;
+
+ // test for slip .. foundGF...prints to log
+ if(foundGFsmallSlip(i,it->nseg,it->nend,it->nbeg,
+ pastIndex,futureIndex,pastStats,futureStats)) {
+
+ // create a new segment
+ it->npts = nok-1;
+ it = createSegment(it,i,"GF slip small");
+ nok = 1;
+
+ // mark it
+ data[i].flag |= GFDETECT;
+
+ // TD print the "possible GF slip" and timetag here - see WLS
+ }
+
+ } // end loop over points in the pass
+ it->npts = nok;
+
+ } // end loop over segments
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+bool GDCPass::foundGFoutlier(int i, int inew,
+ Stats<double>& pastSt, Stats<double>& futureSt)
+ throw(Exception)
+{
+try {
+ if(i < 0 || inew < 0) return false;
+ double pmag = A1[i]; // -pastSt.Average();
+ double fmag = A1[inew]; // -futureSt.Average();
+ double var = ::sqrt(pastSt.Variance() + futureSt.Variance());
+
+ if(cfg(Debug) >= 7) log << "GFoutlier " << GDCUnique
+ << " " << sat << " " << setw(3) << inew
+ << " " << time(inew).printf(outFormat)
+ << fixed << setprecision(3)
+ << " mags: " << pmag << " ~=? " << -fmag
+ //<< "; dmag/mag: " << 2*fabs((pmag+fmag)/(pmag-fmag)) << " <? " << 0.3
+ << "; mag/noise: " << fabs(pmag)/var <<" & "<< fabs(fmag)/var << " >? " << 5;
+
+ if(pmag * fmag >= 0) // opposite signs
+ { if(cfg(Debug) >= 7) log << endl; return false; }
+
+ //if(fabs(pmag+fmag) > 0.15*fabs(pmag-fmag)) // approx equal magnitude
+ //{ if(cfg(Debug) >= 7) log << endl; return false; }
+
+ if(fabs(pmag) < cfg(GFSlipOutlier)*var ||
+ fabs(fmag) < cfg(GFSlipOutlier)*var) // and large
+ {
+ if(cfg(Debug) >= 7) log << endl;
+ return false;
+ }
+
+ if(cfg(Debug) >= 7) log << " possible GF outlier" << endl;
+
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Better to find too many small ones than to miss them, since the fixing algorithm
+// will most likely refuse to act on the questionable ones.
+bool GDCPass::foundGFsmallSlip(int i,int nseg,int iend,int ibeg,
+ deque<int>& pastIn,deque<int>& futureIn,
+ Stats<double>& pastSt, Stats<double>& futureSt)
+ throw(Exception)
+{
+try {
+ if(i < 0) return false;
+
+ int j,k;
+ double mag,pmag,fmag,pvar,fvar;
+
+ pmag = fmag = pvar = fvar = 0.0;
+ // note when past.N == 1, this is first good point, which has 1stD==0
+ // TD be very careful when N is small
+ if(pastSt.N() > 0) pmag = A1[i]-pastSt.Average();
+ if(futureSt.N() > 0) fmag = A1[i]-futureSt.Average();
+ if(pastSt.N() > 1) pvar = pastSt.Variance();
+ if(futureSt.N() > 1) fvar = futureSt.Variance();
+ mag = (pmag + fmag) / 2.0;
+
+ if(cfg(Debug) >= 6) log << "GFS " << GDCUnique
+ << " " << sat << " " << nseg
+ << " " << time(i).printf(outFormat)
+ //<< " P( " << setw(3) << pastIn[0] // don't print this...
+ //<< " " << setw(3) << pastIn[1]
+ //<< " " << setw(3) << pastIn[2]
+ //<< " " << setw(3) << pastIn[3]
+ //<< " " << setw(3) << pastIn[4]
+ //<< ") " << setw(3) << i
+ //<< " F( " << setw(3) << futureIn[0]
+ //<< " " << setw(3) << futureIn[1]
+ //<< " " << setw(3) << futureIn[2]
+ //<< " " << setw(3) << futureIn[3]
+ //<< " " << setw(3) << futureIn[4] << ")" // ...to here
+ << fixed << setprecision(3)
+ << " " << setw(3) << pastSt.N()
+ << " " << setw(7) << pastSt.Average()
+ << " " << setw(7) << pastSt.StdDev()
+ << " " << setw(3) << futureSt.N()
+ << " " << setw(7) << futureSt.Average()
+ << " " << setw(7) << futureSt.StdDev()
+ << " " << setw(7) << mag
+ << " " << setw(7) << ::sqrt(pvar+fvar)
+ << " " << setw(9) << A1[i]
+ << " " << setw(7) << pmag
+ << " " << setw(7) << pvar
+ << " " << setw(7) << fmag
+ << " " << setw(7) << fvar
+ << " " << setw(3) << i
+ << endl;
+
+ // x -- mag
+ //
+ // x x x x - step
+ // x x x x ---
+ const double minMag=cfg(GFSlipSize); // minimum slip magnitude
+ const double STN=cfg(GFSlipStepToNoise); // step (past->future) to noise ratio
+ const double MTS=cfg(GFSlipToStep); // magnitude to step ratio
+ const double MTN=cfg(GFSlipToNoise); // magnitude to noise ratio
+ const int Edge=int(cfg(GFSlipEdge)); // number of points before edge
+ const double RangeCheckLimit = 2*cfg(WLSigma)/(0.83*wl21);
+ // 2 * range noise in units of wl21
+ // if WL slip here - ...?
+
+ // 1. slip must be non-trivial
+ if(fabs(mag) <= minMag) return false;
+
+ // 2. change in average is small compared to noise
+ if(fabs(pmag-fmag) >= STN*::sqrt(pvar+fvar)) return false;
+
+ if(cfg(Debug) >= 7) log << "GFslip " << GDCUnique
+ << " " << sat << " " << nseg
+ << " " << setw(3) << i
+ << " " << time(i).printf(outFormat)
+ << " mag: " << mag << " > " << minMag
+ << "; step/noise: " << fabs(pmag-fmag)/::sqrt(pvar+fvar) << " < " << STN;
+
+ // 3. slip is large compared to change in average
+ if(fabs(mag) <= MTS*fabs(pmag-fmag)) {
+ if(cfg(Debug) >= 7) log << endl;
+ return false;
+ }
+
+ if(cfg(Debug) >= 7)
+ log << "; mag/step: " << fabs(mag/(pmag-fmag)) << " > " << MTS;
+
+ // 4. magnitude is large compared to noise: a 3-sigma slip
+ if(fabs(mag) <= MTN*::sqrt(pvar+fvar)) {
+ if(cfg(Debug) >= 7) log << endl;
+ return false;
+ }
+
+ if(cfg(Debug) >= 7)
+ log << "; mag/noise: " << fabs(mag)/::sqrt(pvar+fvar) << " > " << MTN;
+
+ // if very close to edge, declare it an outlier
+ if(pastSt.N() < Edge || futureSt.N() < Edge+1) {
+ if(cfg(Debug) >= 7) log << "; too close to edge"; // << endl;
+ //return false; // TD
+ }
+
+ // TD? if slip is within a few epochs of WL slip - skip it
+
+
+ // large slips (compared to range noise): check the GFR-GFP for consistency
+ if(fabs(mag) > RangeCheckLimit) {
+ double magGFR,mtnGFR;
+ Stats<double> pGFRmPh,fGFRmPh;
+ for(j=0; j<pastIn.size(); j++) {
+ if(pastIn[j] > -1) pGFRmPh.Add(data[pastIn[j]].L1);
+ if(futureIn[j] > -1) fGFRmPh.Add(data[futureIn[j]].L1);
+ }
+ magGFR = data[i].L1 - (pGFRmPh.Average()+fGFRmPh.Average())/2.0;
+ mtnGFR = fabs(magGFR)/::sqrt(pGFRmPh.Variance()+fGFRmPh.Variance());
+
+ if(cfg(Debug) >= 7)
+ log << "; GFR-GFP has mag: " << magGFR
+ << ", |dmag|: " << fabs(mag-magGFR)
+ << " and mag/noise " << mtnGFR;
+
+ // TD test - mag must ~= magGFR if magGFR/noiseGFR >> 1
+ // test - metz 54,56,57,58
+ if(fabs(mag-magGFR) > fabs(magGFR)) {
+ if(cfg(Debug) >= 7) log << " - does not match GFR "
+ << fabs(mag-magGFR) << endl;
+ return false;
+ }
+ if(mtnGFR < 3) {
+ if(cfg(Debug) >= 7) log << " - cannot see in GFR " << mtnGFR << endl;
+ return false;
+ }
+ }
+
+ // small slips (compared to variations in dGF): extra careful
+ // TD beware of small slips in the presence of noise >~ 1
+ else { //if(fabs(mag) <= RangeCheckLimit)
+ double magFD;
+ Stats<double> fdStats;
+ j = i-1; k=0;
+ while(j >= ibeg && k < 15) {
+ if(data[j].flag & OK) { fdStats.Add(A2[j]); k++; }
+ j--;
+ }
+ j = i+1; k=0;
+ while(j <= iend && k < 15) {
+ if(data[j].flag & OK) { fdStats.Add(A2[j]); k++; }
+ j++;
+ }
+ magFD = A2[i] - fdStats.Average();
+
+ if(cfg(Debug) >= 7)
+ log << "; 1stD(GFP) has mag: " << magFD
+ << ", noise " << fdStats.StdDev()
+ << " and mag/noise " << fabs(magFD)/fdStats.StdDev()
+ << "; min/max are " << fdStats.Minimum() << "/" << fdStats.Maximum();
+ }
+
+ if(cfg(Debug) >= 7) log << " possible GF slip" << endl;
+
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// check the consistency of WL slips where a GF slip, but not a WL slip, was detected.
+int GDCPass::WLconsistencyCheck(void) throw(Exception)
+{
+try {
+ int i,k;
+ const int N=2*int(cfg(WLWindowWidth));
+ double mag,absmag,factor=wl2/wl21;
+
+ // loop over the data and look for points with GFDETECT but not WLDETECT or WLFIX
+ for(i=0; i<data.size(); i++) {
+
+ if(!(data[i].flag & OK)) continue; // bad
+ if(!(data[i].flag & DETECT)) continue; // no slips
+ if(data[i].flag & WLDETECT) continue; // WL was detected
+
+ // GF only slip - compute WL stats on both sides
+ Stats<double> futureStats,pastStats;
+ k = i;
+ // fill future
+ while(k < data.size() && futureStats.N() < N) {
+ if(data[k].flag & OK) // data is good
+ futureStats.Add(data[k].P1); // wlbias
+ k++;
+ }
+ // fill past
+ k = i-1;
+ while(k >= 0 && pastStats.N() < N) {
+ if(data[k].flag & OK) // data is good
+ pastStats.Add(data[k].P1); // wlbias
+ k--;
+ }
+
+ // is there a WL slip here?
+ // 1. magnitude of slip > 0.75
+ // 2. magnitude is > stddev on both sides
+ // 3. N() > 10 on both sides TD??
+ mag = futureStats.Average()-pastStats.Average();
+ absmag = fabs(mag);
+
+ if(absmag > cfg(WLSlipSize) && // 0.75 &&
+ absmag > pastStats.StdDev() &&
+ absmag > futureStats.StdDev()) {
+
+ long nwl;
+ nwl = long(mag + (mag > 0 ? 0.5 : -0.5));
+
+ if(nwl == 0) continue;
+
+ // now do the fixing - change the data to the future of the slip
+ for(k=i; k<data.size(); k++) {
+ //if(!(data[i].flag & OK)) continue;
+ data[k].P1 -= nwl; // WLbias
+ data[k].L2 -= nwl * factor; // GFP
+ }
+
+ // Add to slip list
+ Slip newSlip(i);
+ newSlip.NWL = nwl;
+ newSlip.msg = "WL";
+ SlipList.push_back(newSlip);
+
+ // mark it
+ data[i].flag |= (WLDETECT + WLFIX);
+
+ if(cfg(Debug) >= 6) log << "CHECK " << GDCUnique << " " << sat
+ << " " << i
+ << " " << time(i).printf(outFormat)
+ << fixed << setprecision(3)
+ << " " << pastStats.N()
+ //<< " " << pastStats.Average()
+ << " " << pastStats.StdDev()
+ << " " << futureStats.N()
+ //<< " " << futureStats.Average()
+ << " " << futureStats.StdDev()
+ << " " << futureStats.Average() - pastStats.Average()
+ << " " << nwl
+ << endl;
+
+ }
+ }
+
+ return ReturnOK;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// last call before returning:
+// generate editing commands for deleted (flagged) data,
+// use editing command (slips and deletes) to modify the original SatPass data
+// and print ending summary
+void GDCPass::finish(int iret, SatPass& svp, vector<string>& editCmds)
+ throw(Exception)
+{
+try {
+ bool ok;
+ int i,ifirst,ilast,npts;
+ long N1,N2,prevN1,prevN2;
+ double slipL1,slipL2,WLbias,GFbias;
+ SatPassData spd;
+ list<Slip>::iterator jt;
+
+ // ---------------------------------------------------------
+ // sort the slips in time
+ SlipList.sort();
+
+ // ---------------------------------------------------------
+ // merge *this GDCPass and the input SatPass...
+ // use this->flag to generate edit commands for data marked bad
+ // use the SlipList to fix slips
+ // 'change the arrays' A1 and A2 - fill with range minus phase for output
+ npts = 0;
+ ilast = -1; // ilast is the index of the last good point
+ ifirst = -1; // ifirst is the index of the first good point
+ WLbias = GFbias = slipL1 = slipL2 = 0.0;
+ prevN1 = prevN2 = 0L;
+ jt = SlipList.begin();
+ for(i=0; i<data.size(); i++) {
+
+ // is this point bad?
+ if(!(data[i].flag & OK)) { // data is bad
+ ok = false;
+ if(i == data.size() - 1) { // but this is the last point
+ i++;
+ ok = true;
+ }
+ }
+ else ok = true; // data is good
+
+ if(ok) {
+ if(ifirst == -1) ifirst = i;
+
+ // generate edit commands: delete from ilast+1 to i-1
+ if(i-ilast > 2 && cfg(OutputDeletes) != 0) {
+ // delete 2, or a range of, points
+ // -DS+<sat>,<time>
+ ostringstream stst1;
+ stst1 << "-DS";
+ if(i-ilast > 3) stst1 << "+";
+ stst1 << sat << ",";
+ if(cfg(OutputGPSTime))
+ stst1 << time(ilast+1).printf("%F,%.3g");
+ else
+ stst1 << time(ilast+1).printf("%Y,%m,%d,%H,%M,%f");
+ if(i-ilast > 3) stst1 << " # begin delete of "
+ << asString(i+1-ilast) << " points";
+ editCmds.push_back(stst1.str());
+
+ // -DS-<sat>,<time>
+ ostringstream stst2;
+ stst2 << "-DS";
+ if(i-ilast > 3) stst2 << "-";
+ stst2 << sat << ",";
+ if(cfg(OutputGPSTime))
+ stst2 << time(i-1).printf("%F,%.3g");
+ else
+ stst2 << time(i-1).printf("%Y,%m,%d,%H,%M,%f");
+ if(i-ilast > 3) stst2 << " # end delete of "
+ << asString(i+1-ilast) << " points";
+ editCmds.push_back(stst2.str());
+ }
+ else if(i-ilast > 1 && cfg(OutputDeletes) != 0) {
+ // delete a single isolated point
+ ostringstream stst;
+ stst << "-DS" << sat << ",";
+ if(cfg(OutputGPSTime))
+ stst << time(i-1).printf("%F,%.3g");
+ else
+ stst << time(i-1).printf("%Y,%m,%d,%H,%M,%f");
+ editCmds.push_back(stst.str());
+ }
+
+ ilast = i;
+ npts++;
+ }
+
+ // keep track of net slip fix
+ if(jt != SlipList.end() && i == jt->index) { // there is a slip here
+ // fix the slip by changing the bias added to phase
+ N1 = jt->N1;
+ N2 = jt->N1 - jt->NWL;
+ slipL1 += double(N1);
+ slipL2 += double(N2);
+
+ // generate edit commands
+ {
+ ostringstream stst;
+ stst << "-BD+" << sat << ",L1,";
+ if(cfg(OutputGPSTime))
+ stst << time(jt->index).printf("%F,%.3g");
+ else
+ stst << time(jt->index).printf("%Y,%m,%d,%H,%M,%f");
+ stst << "," << N1-prevN1;
+ if(!jt->msg.empty()) stst << " # " << jt->msg;
+ //stst << " # WL: " << jt->NWL << " N1: " << jt->N1; //temp
+ editCmds.push_back(stst.str());
+ }
+ {
+ ostringstream stst;
+ stst << "-BD+" << sat << ",L2,";
+ if(cfg(OutputGPSTime))
+ stst << time(jt->index).printf("%F,%.3g");
+ else
+ stst << time(jt->index).printf("%Y,%m,%d,%H,%M,%f");
+ stst << "," << N2-prevN2;
+ if(!jt->msg.empty()) stst << " # " << jt->msg;
+ editCmds.push_back(stst.str());
+ }
+
+ prevN1 = N1;
+ prevN2 = N2;
+ jt++;
+ }
+
+ if(i >= data.size()) break;
+
+ // get the untouched data from the input SatPass
+ spd = svp.getData(i);
+
+ // 'change the data' for the last time
+ data[i].L1 = spd.L1 - slipL1;
+ data[i].L2 = spd.L2 - slipL2;
+ data[i].P1 = spd.P1;
+ data[i].P2 = spd.P2;
+
+ // compute range minus phase for output
+ // do the same at the beginning ("BEG")
+
+ // compute WL and GFP
+ double wlr = wl1r * data[i].P1 + wl2r * data[i].P2; // narrow lane range (m)
+ double wlp = wl1p * data[i].L1 + wl2p * data[i].L2; // wide lane phase (m)
+ double gfr = gf1r * data[i].P1 + gf2r * data[i].P2; // geo-free range (m)
+ double gfp = gf1p * data[i].L1 + gf2p * data[i].L2; // geo-free phase (m)
+ if(i == ifirst) {
+ WLbias = (wlp-wlr)/wlwl;
+ GFbias = gfp;
+ }
+ A1[i] = (wlp-wlr)/wlwl - WLbias; // wide lane bias (cyc)
+ A2[i] = gfp - GFbias; // geo-free phase (m)
+ //A2[i] = gfr - gfp; // geo-free range - phase (m)
+
+ } // end loop over all data
+
+ // first fix the segment for dump - TD? is this necessary?
+ if(SegList.begin() != SegList.end()) {
+ SegList.begin()->bias1 = SegList.begin()->bias2 = 0; // not necessary..
+ SegList.begin()->nbeg = 0;
+ SegList.begin()->nend = data.size()-1;
+ SegList.begin()->npts = npts;
+ }
+ // dump the corrected data
+ if(cfg(Debug) >= 2) dumpSegments("AFT",2,true);
+
+ // dump the edit commands to log
+ for(i=0; i<editCmds.size(); i++)
+ log << "EditCmd: " << GDCUnique << " " << editCmds[i] << endl;
+
+ //if(fixOutput) {
+ for(i=0; i<data.size(); i++) {
+ // change the flag for use by SatPass
+ //const unsigned short SatPass::OK = 1; good data
+ //const unsigned short SatPass::BAD = 0; used by caller and DC to mark bad data
+ //const unsigned short SatPass::LL1 = 2; discontinuity on L1 only
+ //const unsigned short SatPass::LL2 = 4; discontinuity on L2 only
+ //const unsigned short SatPass::LL3 = 6; discontinuity on L1 and L2
+ if(data[i].flag & OK) {
+ if(((data[i].flag & DETECT)==0 && (data[i].flag & FIX)!=0) || i==ifirst)
+ data[i].flag = LL3 + OK;
+ else
+ data[i].flag = OK;
+ }
+ else
+ data[i].flag = BAD;
+ }
+ // svp is the original SatPass
+ svp = (SatPass)(*this);
+ //}
+
+ // ---------------------------------------------------------
+ // print stuff at the end
+ if(cfg(Debug) >= 1) dumpSegments("GDC",1);
+
+ // print WL stats for whole pass
+ if(WLPassStats.N() > 2) {
+ log << "GDC " << GDCUnique << " " << sat
+ << " " << fixed << setprecision(3) << WLPassStats.StdDev()
+ << " WL sigma in cycles"
+ << " N=" << WLPassStats.N()
+ << " Min=" << WLPassStats.Minimum()
+ << " Max=" << WLPassStats.Maximum()
+ << " Ave=" << WLPassStats.Average();
+ if(WLPassStats.StdDev() > cfg(WLSigma))
+ log << " Warning - WL sigma > input (" << cfg(WLSigma) << ")";
+ log << endl;
+ }
+
+ if(GFPassStats.N() > 2) {
+ log << "GDC " << GDCUnique << " " << sat
+ << " " << fixed << setprecision(3) << GFPassStats.StdDev()
+ << " sigma GF variation in meters/DT"
+ << " N=" << GFPassStats.N()
+ << " Min=" << GFPassStats.Minimum()
+ << " Max=" << GFPassStats.Maximum()
+ << " Ave=" << GFPassStats.Average()
+ << endl;
+ log << "GDC " << GDCUnique << " " << sat
+ << " " << fixed << setprecision(3)
+ << (fabs(GFPassStats.Minimum()) > fabs(GFPassStats.Maximum()) ?
+ fabs(GFPassStats.Minimum()) : fabs(GFPassStats.Maximum()))
+ << " maximum GF variation in meters/DT"
+ << " N=" << GFPassStats.N()
+ << " Ave=" << GFPassStats.Average()
+ << " Std=" << GFPassStats.StdDev()
+ << endl;
+ }
+
+ // print 'learn' summary
+ map<string,int>::const_iterator kt;
+ for(kt=learn.begin(); kt != learn.end(); kt++)
+ log << "GDC " << GDCUnique << " " << sat
+ << " " << setw(3) << kt->second << " " << kt->first << endl;
+
+ int n = int((lastTime-firstTime)/cfg(DT)) + 1;
+ double percent = 100*ngood/n;
+ log << "GDC# " << setw(2) << GDCUnique << ", SAT " << sat
+ << ", Pts: " << setw(4) << n << " total " << setw(4) << ngood
+ << " good " << setprecision(1) << setw(5) << percent << "%"
+ << ", start " << firstTime.printf(outFormat)
+ << endl;
+
+ if(iret) {
+ log << "GDC is returning with error code: "
+ << (iret == NoData ? "insufficient data" :
+ (iret == Singular ? "singularity" :
+ (iret == FatalProblem ? "fatal problem" : "unknown problem")
+ //(iret == PrematureEnd ? "premature end" : "unknown problem")
+ ))
+ << endl;
+ }
+
+ log << "======== End GPSTK Discontinuity Corrector " << GDCUnique
+ << " ================================================\n";
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// create, delete and dump Segments
+//------------------------------------------------------------------------------------
+// create a new segment from the given one, starting at index ibeg,
+// and insert it after the given iterator.
+// Return an iterator pointing to the new segment. String msg is for debug output
+list<Segment>::iterator GDCPass::createSegment(list<Segment>::iterator sit,
+ int ibeg, string msg) throw(Exception)
+{
+try {
+ Segment s;
+ s = *sit;
+ s.nbeg = ibeg;
+ s.nend = sit->nend;
+ sit->nend = ibeg-1;
+
+ // 'trim' beg and end indexes
+ while(s.nend > s.nbeg && !(data[s.nend].flag & OK)) s.nend--;
+ while(sit->nend > sit->nbeg && !(data[sit->nend].flag & OK)) sit->nend--;
+
+ // get the segment number right
+ s.nseg++;
+ list<Segment>::iterator skt=sit;
+ for(skt++; skt != SegList.end(); skt++) skt->nseg++;
+
+ if(cfg(Debug) >= 6)
+ log << "SEG " << GDCUnique << " " << sat
+ << " " << msg
+ << " " << time(ibeg).printf(outFormat)
+ << " " << s.nbeg << " - " << s.nend
+ << " biases " << fixed << setprecision(3) << s.bias1 << " " << s.bias2
+ << endl;
+
+ learn["breaks found: " + msg]++;
+
+ return SegList.insert(++sit,s); // insert puts s before ++sit
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// dump a list of the segments
+// level=0 one line summary (number of segments)
+// level=1 one per line list of segments
+// level=2 dump all data, including (if extra) temporary arrays
+void GDCPass::dumpSegments(string label, int level, bool extra) throw(Exception)
+{
+try {
+ int i,ifirst,ilast;
+ list<Segment>::iterator it;
+
+ // summary of SegList
+ log << label << " " << GDCUnique
+ << " list of Segments (" << SegList.size() << "):"
+ << endl;
+
+ if(level < 1) return;
+
+ // one line per segment
+ ilast = -1; // last good point
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+ //if(it->npts > 0) {
+ // biaswl = data[it->nbeg].P1;
+ // biasgf = data[it->nbeg].L2;
+ //}
+ //else biaswl = biasgf = 0.0;
+
+ i = (it->nend - it->nbeg + 1); // total number of points
+
+ log << label << " " << GDCUnique << " " << sat
+ << " #" << setw(2) << it->nseg << ": "
+ << setw(4) << it->npts << "/" << setw(4) << i << " pts, # "
+ << setw(4) << it->nbeg << "-" << setw(4) << it->nend
+ << " (" << time(it->nbeg).printf(outFormat)
+ << " - " << time(it->nend).printf(outFormat)
+ << ")";
+
+ if(it->npts > 0) {
+ log << fixed << setprecision(3)
+ << " bias(wl)=" << setw(13) << it->bias1 //biaswl
+ << " bias(gf)=" << setw(13) << it->bias2; //biasgf;
+ if(ilast > -1) {
+ ifirst = it->nbeg;
+ while(ifirst <= it->nend && !(data[ifirst].flag & OK)) ifirst++;
+ i = data[ifirst].ndt - data[ilast].ndt;
+ log << " Gap " << setprecision(1) << setw(5)
+ << cfg(DT)*i << " s = " << i << " pts.";
+ }
+ ilast = it->nend;
+ while(ilast >= it->nbeg && !(data[ilast].flag & OK)) ilast--;
+ }
+
+ log << endl;
+ }
+
+ if(level < 2) return;
+
+ // dump the data
+ for(it=SegList.begin(); it != SegList.end(); it++) {
+ for(i=it->nbeg; i<=it->nend; i++) {
+ //if(!(data[i].flag & OK)) continue; //dfplot ignores bad data
+
+ log << "DSC" << label << " " << GDCUnique << " " << sat << " " << it->nseg
+ << " " << time(i).printf(outFormat)
+ << " " << setw(3) << data[i].flag
+ << fixed << setprecision(3)
+ << " " << setw(13) << data[i].L1 - it->bias2 //biasgf //temp
+ << " " << setw(13) << data[i].L2 - it->bias2 //biasgf
+ << " " << setw(13) << data[i].P1 - it->bias1 //biaswl
+ << " " << setw(13) << data[i].P2;
+ if(extra) log
+ << " " << setw(13) << A1[i]
+ << " " << setw(13) << A2[i];
+ log << " " << setw(4) << i; // TD? make this data[i].ndt?
+ if(i == it->nbeg) log
+ << " " << setw(13) << it->bias1 //biaswl
+ << " " << setw(13) << it->bias2; //biasgf;
+ log << endl;
+ }
+ }
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void GDCPass::deleteSegment(list<Segment>::iterator& it, string msg) throw(Exception)
+{
+try {
+ int i;
+
+ if(cfg(Debug) >= 6) log << "Delete segment "
+ << GDCUnique << " " << sat << " " << it->nseg
+ << " pts " << it->npts
+ << " indexes " << it->nbeg << " - " << it->nend
+ << " start " << firstTime.printf(outFormat)
+ << " : " << msg
+ << endl;
+
+ it->npts = 0;
+ for(i=it->nbeg; i<=it->nend; i++) if(data[i].flag & OK) {
+ // count these : learn
+ learn["points deleted: " + msg]++;
+ data[i].flag = BAD;
+ }
+
+ learn["segments deleted: " + msg]++;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/DiscCorr.hpp b/dev/apps/geomatics/lib/DiscCorr.hpp
new file mode 100644
index 0000000..ddecc8a
--- /dev/null
+++ b/dev/apps/geomatics/lib/DiscCorr.hpp
@@ -0,0 +1,82 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file DiscCorr.hpp
+ * GPS phase discontinuity correction. Given a SatPass object
+ * containing dual-frequency pseudorange and phase for an entire satellite pass,
+ * and a configuration object (as defined herein), detect discontinuities in
+ * the phase and, if possible, estimate their size.
+ * Output is in the form of Rinex editing commands (see class RinexEditor).
+ */
+
+#ifndef GPSTK_DISCONTINUITY_CORRECTOR_INCLUDE
+#define GPSTK_DISCONTINUITY_CORRECTOR_INCLUDE
+
+#include "DayTime.hpp"
+#include "GSatID.hpp"
+#include "RinexObsHeader.hpp"
+#include "SatPass.hpp"
+#include "GDCconfiguration.hpp"
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <string>
+#include <vector>
+
+namespace gpstk {
+
+ /** @addtogroup rinexutils */
+ //@{
+
+ //* const int PrematureEnd=-2;
+ /** GPSTK Discontinuity Corrector. Find, and fix if possible, discontinuities
+ * in the GPS carrier phase data, given dual-frequency pseudorange and phase
+ * data for an entire satellite pass. Input is the SatPass object holding the
+ * data, and a GDCconfiguration object giving the parameter values for
+ * the corrector. Output is in the form of a list of strings - editing commands
+ * - that can be parsed and applied using the GPSTK Rinex Editor (see Prgm
+ * EditRinex and the RinexEditor class). Also, the L1 and L2 arrays in the input
+ * SatPass are corrected. The routine will mark bad points in the input data
+ * using the SatPass flag.
+ * @param SP SatPass object containing the input data.
+ * @param config GDCconfiguration object.
+ * @param EditCmds vector<string> (output) containing RinexEditor commands.
+ * @return 0 for success, otherwise return an Error code;
+ * codes are defined as follows.
+ * const int NoData = -4 insufficient input data, or all data is bad
+ * const int FatalProblem = -3 DT is not set, or memory problem
+ * const int Singularity = -1 polynomial fit fails
+ * const int ReturnOK = 0 normal return
+ */
+ int DiscontinuityCorrector(SatPass&, GDCconfiguration&, std::vector<std::string>&)
+ throw(Exception);
+
+ //@}
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
+#endif
diff --git a/dev/apps/geomatics/lib/EarthOrientation.cpp b/dev/apps/geomatics/lib/EarthOrientation.cpp
new file mode 100644
index 0000000..0fbb8de
--- /dev/null
+++ b/dev/apps/geomatics/lib/EarthOrientation.cpp
@@ -0,0 +1,535 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EarthOrientation.cpp
+ * Implementation of classes to handle earth orientation data:
+ * class gpstk::EarthOrientation encapsulates Earth orientation parameters (EOPs)
+ * class gpstk::EOPPrediction encapsulates formulas to predict EOPs; created from
+ * data obtained by reading NGA 'EOPP###.txt' files.
+ * class gpstk::EOPStore encapsulates input, storage and retreval of EOPs.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <fstream>
+// GPSTk
+#include "icd_200_constants.hpp" // for TWO_PI
+#include "EarthOrientation.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+
+namespace gpstk
+{
+ //---------------------------------------------------------------------------------
+ ostream& operator<<(ostream& os, const EarthOrientation& eo)
+ {
+ os << " " << setw(17) << setprecision(6) << eo.xp
+ << " " << setw(17) << setprecision(6) << eo.yp
+ << " " << setw(17) << setprecision(7) << eo.UT1mUTC;
+ return os;
+ }
+
+ //---------------------------------------------------------------------------------
+ // class EOPPrediction
+ //---------------------------------------------------------------------------------
+ // load the EOPPrediction in the given file
+ // return 0 if ok, -1 if error reading file
+ int EOPPrediction::loadFile(string filename)
+ throw(FileMissingException)
+ {
+ bool ok;
+ int n;
+ string line,word;
+ ifstream inpf(filename.c_str());
+ if(!inpf) {
+ FileMissingException fme("Could not open EOPP file " + filename);
+ GPSTK_THROW(fme);
+ }
+
+ ok = true;
+ n = 0; // n is line number
+ while(!inpf.eof() && inpf.good()) {
+ getline(inpf,line);
+ StringUtils::stripTrailing(line,'\r');
+ if(inpf.bad()) break;
+ if(line.size() > 80) { ok=false; break; }
+ switch(n) {
+ case 0:
+ if(line.size() < 76) { ok=false; break; }
+ word = line.substr( 0,10); ta = StringUtils::asDouble(word);
+ word = line.substr(10,10); A = StringUtils::asDouble(word);
+ word = line.substr(20,10); B = StringUtils::asDouble(word);
+ word = line.substr(30,10); C1 = StringUtils::asDouble(word);
+ word = line.substr(40,10); C2 = StringUtils::asDouble(word);
+ word = line.substr(50,10); D1 = StringUtils::asDouble(word);
+ word = line.substr(60,10); D2 = StringUtils::asDouble(word);
+ word = line.substr(70, 6); P1 = StringUtils::asDouble(word);
+ break;
+ case 1:
+ if(line.size() < 78) { ok=false; break; }
+ word = line.substr( 0, 6); P2 = StringUtils::asDouble(word);
+ word = line.substr( 6,10); E = StringUtils::asDouble(word);
+ word = line.substr(16,10); F = StringUtils::asDouble(word);
+ word = line.substr(26,10); G1 = StringUtils::asDouble(word);
+ word = line.substr(36,10); G2 = StringUtils::asDouble(word);
+ word = line.substr(46,10); H1 = StringUtils::asDouble(word);
+ word = line.substr(56,10); H2 = StringUtils::asDouble(word);
+ word = line.substr(66, 6); Q1 = StringUtils::asDouble(word);
+ word = line.substr(72, 6); Q2 = StringUtils::asDouble(word);
+ break;
+ case 2:
+ if(line.size() < 70) { ok=false; break; }
+ word = line.substr( 0,10); tb = StringUtils::asDouble(word);
+ word = line.substr(10,10); I = StringUtils::asDouble(word);
+ word = line.substr(20,10); J = StringUtils::asDouble(word);
+ word = line.substr(30,10); K1 = StringUtils::asDouble(word);
+ word = line.substr(40,10); K2 = StringUtils::asDouble(word);
+ word = line.substr(50,10); K3 = StringUtils::asDouble(word);
+ word = line.substr(60,10); K4 = StringUtils::asDouble(word);
+ break;
+ case 3:
+ if(line.size() < 76) { ok=false; break; }
+ word = line.substr( 0,10); L1 = StringUtils::asDouble(word);
+ word = line.substr(10,10); L2 = StringUtils::asDouble(word);
+ word = line.substr(20,10); L3 = StringUtils::asDouble(word);
+ word = line.substr(30,10); L4 = StringUtils::asDouble(word);
+ word = line.substr(40, 9); R1 = StringUtils::asDouble(word);
+ word = line.substr(49, 9); R2 = StringUtils::asDouble(word);
+ word = line.substr(58, 9); R3 = StringUtils::asDouble(word);
+ word = line.substr(67, 9); R4 = StringUtils::asDouble(word);
+ break;
+ case 4:
+ if(line.size() < 16) { ok=false; break; }
+ word = line.substr( 0, 4); TAIUTC = StringUtils::asInt(word);
+ word = line.substr( 4, 5); SerialNo = StringUtils::asInt(word);
+ // this actually integer : mjd of begin valid period
+ word = line.substr( 9, 7); tv = StringUtils::asDouble(word);
+ Info = line.substr(16,19);
+ break;
+ } // end switch on n=line number
+ if(!ok) break;
+ n++;
+ };
+ inpf.close();
+ if(!ok) {
+ FileMissingException fme("EOPP File " + filename
+ + " is corrupted or wrong format");
+ GPSTK_THROW(fme);
+ }
+ if(inpf.bad()) return -1;
+ return 0;
+ }
+
+ //---------------------------------------------------------------------------------
+ // generate serial number (NGA files are named EOPP<sn>.txt) from epoch
+ // SN = Year (1 digit) + week of year
+ int EOPPrediction::getSerialNumber(DayTime& t)
+ throw(DayTime::DayTimeException)
+ {
+ int w2 = t.GPSfullweek()-1; // the previous week
+ if(w2 < 0) {
+ using namespace StringUtils;
+ DayTime::DayTimeException dte("Invalid week in EOPP file: "
+ + asString<short>(w2));
+ GPSTK_THROW(dte);
+ }
+
+ int yr,w1;
+ try {
+ DayTime ht;
+ ht.setGPSfullweek(w2,475200.0); // Friday (noon) of previous week
+ yr = ht.year(); // save the year for later
+ ht.setYMDHMS(yr,1,1,0,0,0.0); // first day of that year
+ w1 = ht.GPSfullweek();
+ if(ht.dayOfWeek() == 6) w1++; // GPS week of first Friday in the year
+ yr = yr % 10; // last digit of the year
+ }
+ catch(DayTime::DayTimeException& dte) {
+ GPSTK_RETHROW(dte);
+ }
+ return (100*yr + w2-w1+1); // SN = Year (1 digit) + week of year
+ }
+
+ //---------------------------------------------------------------------------------
+ // Compute the Earth orientation parameters at the given epoch.
+ // TD how to warn if input is outside limits of validity?
+ EarthOrientation EOPPrediction::computeEOP(int& mjd) const
+ throw(DayTime::DayTimeException)
+ {
+ DayTime t;
+ try { t.setMJD(double(mjd)); }
+ catch(DayTime::DayTimeException& dte) { GPSTK_RETHROW(dte); }
+ return computeEOP(t);
+ }
+
+ //---------------------------------------------------------------------------------
+ // 2 2
+ // xp(t)= A + B(t-ta) + SUM(Cj sin[2pi(t-ta)/Pj]) + SUM(Dj cos[2pi(t-ta)/Pj])
+ // j=1 j=1
+ //
+ // 2 2
+ // yp(t)= E + F(t-ta) + SUM(Gk sin[2pi(t-ta)/Qk]) + SUM(Hk cos[2pi(t-ta)/Qk])
+ // k=1 k=1
+ //
+ // 4 4
+ // UT1-UTC(t)= I+J(t-tb) + SUM(Km sin[2pi(t-tb)/Rm]) + SUM(Lm cos[2pi(t-tb)/Rm])
+ // m=1 m=1
+ //---------------------------------------------------------------------------------
+ EarthOrientation EOPPrediction::computeEOP(DayTime& ep) const
+ throw()
+ {
+ double t,dt,arg;
+ EarthOrientation eo;
+
+ t = ep.MJD() + ep.secOfDay()/86400.0;
+ //if(t < tv || t > tv+7) // TD warn - outside valid range
+ //
+ dt = t - ta;
+ arg = TWO_PI*dt;
+ eo.xp = A + B*dt + C1*sin(arg/P1) + D1*cos(arg/P1)
+ + C2*sin(arg/P2) + D2*cos(arg/P2);
+ eo.yp = E + F*dt + G1*sin(arg/Q1) + H1*cos(arg/Q1)
+ + G2*sin(arg/Q2) + H2*cos(arg/Q2);
+
+ dt = t - tb;
+ arg = TWO_PI*dt;
+ eo.UT1mUTC = I + J*dt
+ + K1*sin(arg/R1) + L1*cos(arg/R1)
+ + K2*sin(arg/R2) + L2*cos(arg/R2)
+ + K3*sin(arg/R3) + L3*cos(arg/R3)
+ + K4*sin(arg/R4) + L4*cos(arg/R4);
+
+ return eo;
+ }
+
+ //---------------------------------------------------------------------------------
+ // straight from the doc
+ ostream& operator<<(ostream& os, const EOPPrediction& eopp)
+ {
+ os << fixed
+ << setw(10) << setprecision(2) << eopp.ta
+ << setw(10) << setprecision(6) << eopp.A
+ << setw(10) << setprecision(6) << eopp.B
+ << setw(10) << setprecision(6) << eopp.C1
+ << setw(10) << setprecision(6) << eopp.C2
+ << setw(10) << setprecision(6) << eopp.D1
+ << setw(10) << setprecision(6) << eopp.D2
+ << setw( 6) << setprecision(2) << eopp.P1
+ << " " << endl;
+ os << setw( 6) << setprecision(2) << eopp.P2
+ << setw(10) << setprecision(6) << eopp.E
+ << setw(10) << setprecision(6) << eopp.F
+ << setw(10) << setprecision(6) << eopp.G1
+ << setw(10) << setprecision(6) << eopp.G2
+ << setw(10) << setprecision(6) << eopp.H1
+ << setw(10) << setprecision(6) << eopp.H2
+ << setw( 6) << setprecision(2) << eopp.Q1
+ << setw( 6) << setprecision(2) << eopp.Q2
+ << " " << endl;
+ os << setw(10) << setprecision(2) << eopp.tb
+ << setw(10) << setprecision(6) << eopp.I
+ << setw(10) << setprecision(6) << eopp.J
+ << setw(10) << setprecision(6) << eopp.K1
+ << setw(10) << setprecision(6) << eopp.K2
+ << setw(10) << setprecision(6) << eopp.K3
+ << setw(10) << setprecision(6) << eopp.K4
+ << " " << endl;
+ os << setw(10) << setprecision(6) << eopp.L1
+ << setw(10) << setprecision(6) << eopp.L2
+ << setw(10) << setprecision(6) << eopp.L3
+ << setw(10) << setprecision(6) << eopp.L4
+ << setw( 9) << setprecision(4) << eopp.R1
+ << setw( 9) << setprecision(4) << eopp.R2
+ << setw( 9) << setprecision(4) << eopp.R3
+ << setw( 9) << setprecision(4) << eopp.R4
+ << " " << endl;
+ os << setw(4) << eopp.TAIUTC
+ << setw(5) << eopp.SerialNo
+ << setw(6) << int(eopp.tv+0.5)
+ << " " << eopp.Info
+ << " "
+ << " "
+ << " ";
+ return os;
+ }
+
+ //---------------------------------------------------------------------------------
+ // class EOPStore
+ //---------------------------------------------------------------------------------
+ // Add to the store directly -- not recommended,
+ // use the form that takes EOPPrediction
+ void EOPStore::addEOP(int mjd, EarthOrientation& eop)
+ throw()
+ {
+ mapMJD_EOP[mjd] = eop;
+
+ if(begMJD == -1 || endMJD == -1) {
+ begMJD = endMJD = mjd;
+ }
+ else if(mjd < begMJD) {
+ begMJD = mjd;
+ }
+ else if(mjd > endMJD) {
+ endMJD = mjd;
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Add to the store by computing using an EOPPrediction,
+ // this is the usual way.
+ // @param MJD integer MJD at which to add EOPs
+ // @return non-0 if MJD is outside range
+ int EOPStore::addEOP(int mjd, EOPPrediction& eopp)
+ throw(DayTime::DayTimeException)
+ {
+ EarthOrientation eo;
+ try {
+ eo = eopp.computeEOP(mjd);
+ }
+ catch(DayTime::DayTimeException& dte)
+ {
+ GPSTK_RETHROW(dte);
+ }
+
+ addEOP(mjd,eo);
+
+ return 0;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Add EOPs to the store via an inpu file: either an EOPP file
+ // or a flat file produced by USNO (see http://maia.usno.navy.mil/
+ // and get either file 'finals.data' or finals2000A.data').
+ // @param filename Name of file to read, including path.
+ void EOPStore::addFile(const string& filename)
+ throw(FileMissingException)
+ {
+ try {
+ addEOPPFile(filename);
+ }
+ catch(FileMissingException& fme)
+ {
+ if(StringUtils::matches(fme.getText(),string("wrong format")).empty()) {
+ GPSTK_RETHROW(fme);
+ }
+
+ // try other format
+ try {
+ addIERSFile(filename);
+ }
+ catch(FileMissingException& fme)
+ {
+ GPSTK_RETHROW(fme);
+ }
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Add EOPs to the store via an EOPP file:
+ // read the EOPPrediction from the file and then compute EOPs
+ // for all days within the valid range.
+ // @param filename Name of file to read, including path.
+ void EOPStore::addEOPPFile(const string& filename)
+ throw(FileMissingException)
+ {
+ // read the file into an EOPPrediction
+ EOPPrediction eopp;
+ try {
+ eopp.loadFile(filename);
+ }
+ catch(FileMissingException& fme)
+ {
+ GPSTK_RETHROW(fme);
+ }
+
+ // pull out the beginning of the valid time range
+ int mjd;
+ mjd = eopp.getValidTime();
+ // add all 7 days
+ for(int i=0; i<7; i++) {
+ EarthOrientation eo;
+ eo = eopp.computeEOP(mjd);
+ addEOP(mjd,eo);
+ mjd++;
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // see http://maia.usno.navy.mil/readme.finals
+ void EOPStore::addIERSFile(const string& filename)
+ throw(FileMissingException)
+ {
+ bool ok;
+ int n,mjd;
+ double fracmjd;
+ string line,word;
+
+ ifstream inpf(filename.c_str());
+ if(!inpf) {
+ FileMissingException fme("Could not open IERS file " + filename);
+ GPSTK_THROW(fme);
+ }
+
+ ok = true;
+ while(!inpf.eof() && inpf.good()) {
+ getline(inpf,line);
+ StringUtils::stripTrailing(line,'\r');
+ if(inpf.eof()) break;
+ // line length is actually 187
+ if(inpf.bad() || line.size() < 70) { ok = false; break; }
+ EarthOrientation eo;
+ mjd = StringUtils::asInt(line.substr(7,5));
+ eo.xp = StringUtils::asDouble(line.substr(18,9)); // arcseconds
+ eo.yp = StringUtils::asDouble(line.substr(37,9)); // arcseconds
+ eo.UT1mUTC = StringUtils::asDouble(line.substr(58,10)); // seconds
+
+ addEOP(mjd,eo);
+ };
+ inpf.close();
+
+ if(!ok) {
+ FileMissingException fme("IERS File " + filename
+ + " is corrupted or wrong format");
+ GPSTK_THROW(fme);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Edit the store by deleting all entries before(after)
+ // the given min(max) MJDs. If mjdmin is later than mjdmax,
+ // the two times are switched.
+ // @param mjdmin integer MJD desired earliest store time.
+ // @param mjdmax integer MJD desired latest store time.
+ void EOPStore::edit(int mjdmin, int mjdmax)
+ throw()
+ {
+ if(mjdmin > mjdmax) {
+ int m=mjdmin;
+ mjdmin = mjdmax;
+ mjdmax = m;
+ }
+
+ map<int,EarthOrientation>::iterator it;
+ it = mapMJD_EOP.lower_bound(mjdmin);
+ if(it != mapMJD_EOP.begin())
+ mapMJD_EOP.erase(mapMJD_EOP.begin(), it);
+
+ it = mapMJD_EOP.upper_bound(mjdmax);
+ if(it != mapMJD_EOP.end())
+ mapMJD_EOP.erase(it, mapMJD_EOP.end());
+
+ it = mapMJD_EOP.begin();
+ if(it == mapMJD_EOP.end())
+ begMJD = -1;
+ else
+ begMJD = it->first;
+
+ it = mapMJD_EOP.end();
+ if(--it == mapMJD_EOP.end())
+ endMJD = -1;
+ else
+ endMJD = it->first;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Dump the store to cout.
+ // @param detail determines how much detail to include in the output
+ // 0 start and stop times (MJD), and number of EOPs.
+ // 1 list of all times and EOPs.
+ void EOPStore::dump(short detail, ostream& os) const
+ throw()
+ {
+ DayTime tt;
+ os << "EOPStore dump (" << mapMJD_EOP.size() << " entries):\n";
+ os << " Time limits: [MJD " << begMJD << " - " << endMJD << "]";
+ tt.setMJD(double(begMJD));
+ os << " = [m/d/y " << tt.printf("%m/%d/%Y");
+ tt.setMJD(double(endMJD));
+ os << " - " << tt.printf("%m/%d/%Y") << "]" << endl;
+ if(detail > 0) {
+ int lastmjd=-1;
+ map<int,EarthOrientation>::const_iterator it;
+ for(it=mapMJD_EOP.begin(); it != mapMJD_EOP.end(); it++) {
+ if(lastmjd != -1 && it->first - lastmjd > 1)
+ os << " ....." << endl;
+ os << " " << it->first << " " << it->second
+ << " (" << setfill('0') << setw(3)
+ << EOPPrediction::getSerialNumber(it->first) << setfill(' ') << ")"
+ << endl;
+ lastmjd = it->first;
+ }
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Get the EOP at the given epoch and return it.
+ // @param t DayTime at which to compute the EOPs.
+ // @return EarthOrientation EOPs at time t.
+ // @throw InvalidRequest if the (int) MJDs on either side of t
+ // cannot be found in the map.
+ EarthOrientation EOPStore::getEOP(DayTime& t) const
+ throw(InvalidRequest)
+ {
+ // find the EOs before and after epoch
+ int loMJD = int(t.MJD());
+ int hiMJD = loMJD + 1;
+ // find these EOPs
+ map<int,EarthOrientation>::const_iterator hit,lit;
+ lit = mapMJD_EOP.find(loMJD);
+ hit = mapMJD_EOP.find(hiMJD);
+ if(lit == mapMJD_EOP.end() || hit == mapMJD_EOP.end()) {
+ InvalidRequest ire(string("Time tag (MJD=")
+ + (lit == mapMJD_EOP.end() ?
+ StringUtils::asString(loMJD) : StringUtils::asString(hiMJD))
+ + string(") not found within the EOP store - EOPP files are out-of-date"));
+ GPSTK_THROW(ire);
+ }
+ // linearly interpolate to get EOP at the desired time
+ EarthOrientation eo;
+ double dt=t.MJD()-double(loMJD);
+ eo.xp = (1.0-dt) * lit->second.xp + dt * hit->second.xp;
+ eo.yp = (1.0-dt) * lit->second.yp + dt * hit->second.yp;
+ eo.UT1mUTC = (1.0-dt) * lit->second.UT1mUTC + dt * hit->second.UT1mUTC;
+
+ return eo;
+ }
+
+} // end namespace gpstk
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/EarthOrientation.hpp b/dev/apps/geomatics/lib/EarthOrientation.hpp
new file mode 100644
index 0000000..b6f9471
--- /dev/null
+++ b/dev/apps/geomatics/lib/EarthOrientation.hpp
@@ -0,0 +1,286 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EarthOrientation.hpp
+ * Include file for classes to handle earth orientation data:
+ * class gpstk::EarthOrientation encapsulates Earth orientation parameters (EOPs)
+ * class gpstk::EOPPrediction encapsulates formulas to predict EOPs; created by
+ * reading NGA 'EOPP###.txt' files.
+ * class gpstk::EOPStore encapsulates input, storage and retreval of EOPs.
+ */
+
+#ifndef CLASS_EARTHORIENT_INCLUDE
+#define CLASS_EARTHORIENT_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <map>
+// GPSTk
+#include "Exception.hpp"
+#include "DayTime.hpp"
+
+//------------------------------------------------------------------------------------
+namespace gpstk {
+
+ /// Earth orientation parameters
+ class EarthOrientation
+ {
+ public:
+ double xp; // arcseconds
+ double yp; // arcseconds
+ double UT1mUTC; // seconds
+
+ /// Constructor
+ EarthOrientation() : xp(0),yp(0),UT1mUTC(0) {}
+
+ /// append to output stream
+ friend std::ostream& operator<<(std::ostream& s, const EarthOrientation&);
+ };
+
+ //---------------------------------------------------------------------------------
+ /** Earth orientation parameter prediction
+ * Read data from EOPP###.txt file, available from NGA. The formulas are:
+ * 2 2
+ * xp(t)= A + B(t-ta) + SUM(Cj sin[2pi(t-ta)/Pj]) + SUM(Dj cos[2pi(t-ta)/Pj])
+ * j=1 j=1
+ *
+ * 2 2
+ * yp(t)= E + F(t-ta) + SUM(Gk sin[2pi(t-ta)/Qk]) + SUM(Hk cos[2pi(t-ta)/Qk])
+ * k=1 k=1
+ *
+ * 4 4
+ * UT1-UTC(t)= I+J(t-tb) + SUM(Km sin[2pi(t-tb)/Rm]) + SUM(Lm cos[2pi(t-tb)/Rm])
+ * m=1 m=1
+ * Ref. NGA document 'Earth Orientation Parameter Prediction (EOPP) Description'
+ * Effective date 08 August 2004
+ * http://earth-info.nga.mil/GandG/sathtml/eoppdoc.html
+ */
+ class EOPPrediction
+ {
+ /// MJD of beginning of times at which this formula is valid; end time of
+ /// validity is tv+7. In EOPP files, this is an integer.
+ double tv;
+ /// reference times (MJD) used in the formulas
+ double ta,tb;
+ /// parameters used in the formulas
+ double A,B,C1,C2,D1,D2,E,F,G1,G2,H1,H2,I,J,K1,K2,K3,K4,L1,L2,L3,L4;
+ /// more parameters used in the formulas
+ double P1,P2,Q1,Q2,R1,R2,R3,R4;
+
+ public:
+ /// the difference between TAI and UTC in seconds - not used in the computation
+ int TAIUTC;
+ /// the number used in the file name 'EOPP<SN>.txt'
+ int SerialNo;
+ /// information, including the MJD of generation of these parameters.
+ std::string Info;
+
+ /** access the time (MJD) of validity of these parameters;
+ * the range of validity is 'this' through 'this'+7.
+ */
+ int getValidTime(void) const
+ throw() { return int(tv+0.5); }
+
+ /** load the EOPPrediction in the given file
+ * @param filename Name of file to read, including path.
+ * @return 0 ok, -1 error reading file.
+ * @throw FileMissingException if filename cannot be opened.
+ */
+ int loadFile(std::string filename)
+ throw(FileMissingException);
+
+ /** Generate serial number (NGA files are named EOPP<SN>.txt) from epoch.
+ * SN (3 digit) = YWW : year (1 digit), week of year (2 digit)
+ * @param DayTime t Time at which to compute the serial number
+ * @return the serial number.
+ */
+ static int getSerialNumber(DayTime& t)
+ throw(DayTime::DayTimeException);
+
+ static int getSerialNumber(int mjd)
+ throw(DayTime::DayTimeException)
+ {
+ DayTime t;
+ t.setMJD(double(mjd));
+ return getSerialNumber(t);
+ }
+
+ /** Compute and return the Earth orientation parameters at the given MJD.
+ * TD how to warn if input is outside limits of validity?
+ * @param int mjd Integer MJD at which to compute the earth orientation
+ * parameters.
+ * @return the EarthOrientation.
+ */
+ EarthOrientation computeEOP(int& mjd) const
+ throw(DayTime::DayTimeException);
+
+ /** Compute and return the Earth orientation parameters at the given epoch.
+ * TD how to warn if input is outside limits of validity?
+ * @param DayTime t Time at which to compute the earth orientation
+ * parameters.
+ * @return the EarthOrientation.
+ */
+ EarthOrientation computeEOP(DayTime& t) const
+ throw();
+
+ /** Stream output for the EOPPrediction, in format of EOPP###.txt files.
+ * @param os stream to append formatted EOPPrediction to.
+ * @return reference to the input stream.
+ */
+ friend std::ostream& operator<<(std::ostream& s, const EOPPrediction&);
+ };
+
+ //---------------------------------------------------------------------------------
+ /** Earth orientation parameter store. Store EarthOrientation objects in a map
+ * with key = integer MJD at which the EOPs are computed. Access the store
+ * with any DayTime, linearly interpolating the stored EOPs to the given epoch.
+ */
+ class EOPStore
+ {
+ /// key is MJD at which the Earth orientation parameters apply
+ std::map<int,EarthOrientation> mapMJD_EOP;
+
+ /// first and last times in the store, -1 if store is empty.
+ int begMJD,endMJD;
+
+ public:
+ /// Constructor
+ EOPStore() : begMJD(-1), endMJD(-1) {}
+
+ /// Add to the store directly -- not recommended,
+ /// use the form that takes EOPPrediction
+ void addEOP(int MJD,
+ EarthOrientation& eop)
+ throw();
+
+ /** Add to the store by computing using an EOPPrediction,
+ * this is the usual way.
+ * @param MJD integer MJD at which to add EOPs
+ * @return non-0 if MJD is outside range
+ */
+ int addEOP(int MJD,
+ EOPPrediction& eopp)
+ throw(DayTime::DayTimeException);
+
+ /** Add EOPs to the store via an inpu file: either an EOPP file
+ * or a flat file produced by the IERS and available at USNO
+ * (see http://maia.usno.navy.mil/ and get either file
+ * 'finals.data' or finals2000A.data').
+ * @param filename Name of file to read, including path.
+ */
+ void addFile(const std::string& filename)
+ throw(FileMissingException);
+
+ /** Add EOPs to the store via an EOPP file:
+ * read the EOPPrediction from the file and then compute EOPs
+ * for all days within the valid range.
+ * @param filename Name of file to read, including path.
+ */
+ void addEOPPFile(const std::string& filename)
+ throw(FileMissingException);
+
+ /** Add EOPs to the store via a flat IERS file.
+ * @param filename Name of file to read, including path.
+ */
+ void addIERSFile(const std::string& filename)
+ throw(FileMissingException);
+
+ /** Edit the store by deleting all entries before(after)
+ * the given min(max) MJDs. If mjdmin is later than mjdmax,
+ * the two are switched.
+ * @param mjdmin integer MJD desired earliest store time.
+ * @param mjdmax integer MJD desired latest store time.
+ */
+ void edit(int mjdmin,
+ int mjdmax)
+ throw();
+
+ /** Edit the store by deleting all entries before(after)
+ * the given min(max) times. If tmin is later than tmax,
+ * the two times are switched.
+ * @param tmin DayTime desired earliest store time.
+ * @param tmax DayTime desired latest store time.
+ */
+ void edit(const DayTime& tmin,
+ const DayTime& tmax)
+ throw()
+ { edit(int(tmin.MJD()+0.5),int(tmax.MJD()+1.5)); }
+
+ /// return the number of entries in the store
+ int size(void)
+ throw() { return mapMJD_EOP.size(); }
+
+ /// clear the store
+ void clear(void)
+ throw() { mapMJD_EOP.clear(); begMJD=endMJD=-1; }
+
+ /** Dump the store to cout.
+ * @param detail determines how much detail to include in the output
+ * 0 start and stop times (MJD), and number of EOPs.
+ * 1 list of all times and EOPs.
+ */
+ void dump(short detail=0,
+ std::ostream& s=std::cout) const
+ throw();
+
+ /// Return first time (MJD) in the store.
+ int getFirstMJD(void) throw()
+ { return begMJD; }
+
+ /// Return last time (MJD) in the store.
+ int getLastMJD(void) throw()
+ { return endMJD; }
+
+ /** Get the EOP at the given epoch and return it.
+ * @param t DayTime at which to compute the EOPs.
+ * @return EarthOrientation EOPs at time t.
+ * @throw InvalidRequest if the (int) MJDs on either side of t
+ * cannot be found in the map.
+ */
+ EarthOrientation getEOP(DayTime& t) const
+ throw(InvalidRequest);
+
+ };
+
+} // end namespace gpstk
+
+#endif // nothing below this
diff --git a/dev/apps/geomatics/lib/GDCconfiguration.cpp b/dev/apps/geomatics/lib/GDCconfiguration.cpp
new file mode 100644
index 0000000..0d7d4b2
--- /dev/null
+++ b/dev/apps/geomatics/lib/GDCconfiguration.cpp
@@ -0,0 +1,204 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file GDCconfiguration.cpp
+ * class GDCconfiguration encapsulates the configuration for input to the
+ * GPSTK Discontinuity Corrector.
+ */
+
+#include "GDCconfiguration.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// version number for the entire gpstk discontinuity corrector code,
+// most convenient to keep it here as GDCpass inherits this
+string GDCconfiguration::GDCVersion = string("5.1 4/07/2007");
+
+//------------------------------------------------------------------------------------
+// Set a parameter in the configuration; the input string 'cmd' is of the form
+// '[--DC]<id><s><value>' : separator s is one of ':=,' and leading --DC is optional.
+void GDCconfiguration::setParameter(string cmd) throw(Exception)
+{
+try {
+ if(cmd.empty()) return;
+ // remove leading --DC
+ while(cmd[0] == '-') cmd.erase(0,1);
+ if(cmd.substr(0,2) == "DC") cmd.erase(0,2);
+
+ string label, value;
+ string::size_type pos=cmd.find_first_of(",=:");
+ if(pos == string::npos) {
+ label = cmd;
+ }
+ else {
+ label = cmd.substr(0,pos);
+ value = cmd;
+ value.erase(0,pos+1);
+ }
+
+ setParameter(label, asDouble(value));
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Set a parameter in the configuration using the label and the value,
+// for booleans use (T,F)=(non-zero,zero).
+void GDCconfiguration::setParameter(string label, double value) throw(Exception)
+{
+try {
+ if(CFG.find(label) == CFG.end())
+ ; // throw
+ else {
+ *(p_oflog) << "GDCconfiguration::setParameter sets "
+ << label << " to " << value << endl;
+ CFG[label] = value;
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Print help page, including descriptions and current values of all
+// the parameters, to the ostream.
+void GDCconfiguration::DisplayParameterUsage(ostream& os, bool advanced)
+ throw(Exception)
+{
+try {
+ os << "\nGPSTk Discontinuity Corrector (GDC) v." << GDCVersion
+ << " configuration, with current values"
+ //<< "\n [ pass setParameter() a string '<label><sep><value>';"
+ //<< " <sep> is one of ,=: ]"
+ << endl;
+
+ map<string,double>::const_iterator it;
+ for(it=CFG.begin(); it != CFG.end(); it++) {
+ if(CFGdescription[it->first][0] == '*') // advanced options
+ continue;
+ ostringstream stst;
+ stst << it->first // label
+ << "=" << it->second; // value
+ os << " " << leftJustify(stst.str(),18)
+ << " : " << CFGdescription[it->first] // description
+ << endl;
+ }
+ if(advanced) {
+ os << " Advanced options:\n";
+ for(it=CFG.begin(); it != CFG.end(); it++) {
+ if(CFGdescription[it->first][0] != '*') // ordinary options
+ continue;
+ ostringstream stst;
+ stst << it->first // label
+ << "=" << it->second; // value
+ os << " " << leftJustify(stst.str(),25)
+ << " : " << CFGdescription[it->first].substr(2) // description
+ << endl;
+ }
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+
+//------------------------------------------------------------------------------------
+#define setcfg(a,b,c) { CFG[#a]=b; CFGdescription[#a]=c; }
+// initialize with default values
+void GDCconfiguration::initialize(void)
+{
+try {
+ p_oflog = &cout;
+
+ // use cfg(DT) NOT dt - dt is part of SatPass...
+ setcfg(DT, -1, "nominal timestep of data (seconds) [required - no default!]");
+ setcfg(Debug, 0, "level of diagnostic output to log, from none(0) to extreme(7)");
+ setcfg(MaxGap, 180, "maximum allowed time gap within a segment (seconds)");
+ setcfg(MinPts, 13, "minimum number of good points in phase segment ()");
+ setcfg(WLSigma, 1.5, "expected WL sigma (WL cycle) [NB = ~0.83*p-range noise(m)]");
+ setcfg(GFVariation, 16, // about 300 5.4-cm wavelengths
+ "expected maximum variation in GF phase in time DT (meters)");
+ // output
+ setcfg(OutputGPSTime, 0,
+ "if 0: Y,M,D,H,M,S else: W,SoW (GPS) in editing commands");
+ setcfg(OutputDeletes, 1,
+ "if non-zero, include delete commands in the output cmd list");
+
+ // -------------------------------------------------------------------------
+ // advanced options - ordinary user will most likely NOT change
+ setcfg(RawBiasLimit, 100, "* change in raw R-Ph that triggers bias reset (m)");
+ // WL editing
+ setcfg(WLNSigmaDelete, 2, "* delete segments with sig(WL) > this * WLSigma ()");
+ setcfg(WLWindowWidth, 10, "* sliding window width for WL slip detection (points)");
+ setcfg(WLNWindows, 2.5,
+ "* minimum segment size for WL small slip search (WLWindowWidth)");
+ setcfg(WLobviousLimit, 3,
+ "* minimum delta(WL) that produces an obvious slip (WLSigma)");
+ setcfg(WLNSigmaStrip, 3.5, "* delete points with WL > this * computed sigma ()");
+ setcfg(WLNptsOutlierStats, 200,
+ "* maximum segment size to use robust outlier detection (pts)");
+ setcfg(WLRobustWeightLimit, 0.35,
+ "* minimum good weight in robust outlier detection (0<wt<=1)");
+ // WL small slips
+ setcfg(WLSlipEdge, 3,
+ "* minimum separating WL slips and end of segment, else edit (pts)");
+ setcfg(WLSlipSize, 0.67, "* minimum WL slip size (WL wavelengths)");
+ setcfg(WLSlipExcess, 0.1,
+ "* minimum amount WL slip must exceed noise (WL wavelengths)");
+ setcfg(WLSlipSeparation, 1.2, "* minimum excess/noise ratio of WL slip ()");
+ // GF small slips
+ setcfg(GFSlipWidth, 5,
+ "* minimum segment length for GF small slip detection (pts)");
+ setcfg(GFSlipEdge, 3,
+ "* minimum separating GF slips and end of segment, else edit (pts)");
+ setcfg(GFobviousLimit, 1,
+ "* minimum delta(GF) that produces an obvious slip (GFVariation)");
+ setcfg(GFSlipOutlier, 5, "* minimum GF outlier magnitude/noise ratio ()");
+ setcfg(GFSlipSize, 0.8, "* minimum GF slip size (5.4cm wavelengths)");
+ setcfg(GFSlipStepToNoise, 2, "* maximum GF slip step/noise ratio ()");
+ setcfg(GFSlipToStep, 3, "* minimum GF slip magnitude/step ratio ()");
+ setcfg(GFSlipToNoise, 3, "* minimum GF slip magnitude/noise ratio ()");
+ // GF fix
+ setcfg(GFFixNpts, 15,
+ "* maximum number of points on each side to fix GF slips ()");
+ setcfg(GFFixDegree, 3, "* degree of polynomial used to fix GF slips ()");
+ setcfg(GFFixMaxRMS, 100,
+ "* limit on RMS fit residuals to fix GF slips, else delete (5.4cm)");
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/GDCconfiguration.hpp b/dev/apps/geomatics/lib/GDCconfiguration.hpp
new file mode 100644
index 0000000..56dc7ce
--- /dev/null
+++ b/dev/apps/geomatics/lib/GDCconfiguration.hpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file GDCconfiguration.hpp
+ * class GDCconfiguration encapsulates the configuration for input to the
+ * GPSTK Discontinuity Corrector.
+ */
+
+#ifndef GPSTK_DISCONTINUITY_CORRECTOR_CONFIGURATION_INCLUDE
+#define GPSTK_DISCONTINUITY_CORRECTOR_CONFIGURATION_INCLUDE
+
+#include <string>
+#include <map>
+#include <iostream>
+#include <fstream>
+#include "Exception.hpp"
+
+namespace gpstk {
+ /// class GDCconfiguration encapsulates the configuration for input to the
+ /// GPSTK Discontinuity Corrector.
+class GDCconfiguration
+{
+public:
+ /// constructor; this sets a full default set of parameters.
+ GDCconfiguration(void) { initialize(); }
+ // destructor
+ ~GDCconfiguration(void) { CFG.clear(); CFGdescription.clear(); }
+
+ /// Set a parameter in the configuration; the input string 'cmd'
+ /// is of the form '[--DC]<id><s><value>' where the separator s is
+ /// one of (:=,) and leading '-','--', or '--DC' are optional.
+ void setParameter(std::string cmd) throw(gpstk::Exception);
+
+ /// Set a parameter in the configuration using the label and the value,
+ /// for booleans use (T,F)=(non-zero,zero).
+ void setParameter(std::string label, double value) throw(gpstk::Exception);
+
+ /// Get the parameter in the configuration corresponding to label
+ double getParameter(std::string label) throw() { return CFG[label]; }
+
+ /// Tell GDCconfiguration to which stream to send debugging output.
+ void setDebugStream(std::ostream& os) { p_oflog = &os; }
+
+ /// Print help page, including descriptions and current values of all
+ /// the parameters, to the ostream. If 'advanced' is true, also print
+ /// advanced parameters.
+ void DisplayParameterUsage(std::ostream& os, bool advanced=false)
+ throw(gpstk::Exception);
+
+ /// Return version string
+ std::string Version() throw() { return GDCVersion; }
+
+protected:
+
+ /// map containing configuration labels and their values
+ std::map <std::string,double> CFG;
+
+ /// map containing configuration labels and their descriptions
+ std::map <std::string,std::string> CFGdescription;
+
+ /// Stream on which to write debug output.
+ std::ostream *p_oflog;
+
+ void initialize(void);
+
+ static std::string GDCVersion;
+
+}; // end class GDCconfiguration
+
+} // end namespace gpstk
+//------------------------------------------------------------------------------------
+#endif
diff --git a/dev/apps/geomatics/lib/GSatID.cpp b/dev/apps/geomatics/lib/GSatID.cpp
new file mode 100644
index 0000000..2f17a51
--- /dev/null
+++ b/dev/apps/geomatics/lib/GSatID.cpp
@@ -0,0 +1,51 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file GSatID.cpp
+ * Define a satellite id class for geomatic lib, inheriting SatID.
+ */
+
+#include "GSatID.hpp"
+
+namespace gpstk
+{
+ char GSatID::fillchar = '0';
+}
+
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/GSatID.hpp b/dev/apps/geomatics/lib/GSatID.hpp
new file mode 100644
index 0000000..2101b4b
--- /dev/null
+++ b/dev/apps/geomatics/lib/GSatID.hpp
@@ -0,0 +1,197 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file GSatID.hpp
+ * Define a satellite id class for geomatic lib, inheriting SatID.
+ */
+
+#ifndef CLASS_GEOMATIC_SATELLITE_ID_INCLUDE
+#define CLASS_GEOMATIC_SATELLITE_ID_INCLUDE
+
+#include "Exception.hpp"
+#include "SatID.hpp"
+
+namespace gpstk {
+ class GSatID : public SatID
+ {
+ public:
+
+ /// empty constructor, creates an invalid object
+ GSatID() throw() { id=-1; system=systemGPS; }
+
+ /// explicit constructor, no defaults
+ GSatID(int p, SatelliteSystem s) throw()
+ {
+ id = p; system = s;
+ switch(system) {
+ case systemGPS:
+ case systemGalileo:
+ case systemGlonass:
+ case systemGeosync:
+ case systemLEO:
+ case systemTransit: break;
+ default:
+ system = systemGPS;
+ id = -1;
+ }
+ }
+
+ /// constructor from string
+ GSatID(std::string& str) throw(Exception)
+ try { this->fromString(str); }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+
+ /// cast SatID to GSatID
+ GSatID(const SatID& sat) throw()
+ { *this = GSatID(sat.id,sat.system); }
+
+ /// set the fill character used in output
+ /// return the current fill character
+ char setfill(char c) throw()
+ { char csave=fillchar; fillchar=c; return csave; }
+
+ /// get the fill character used in output
+ char getfill() throw()
+ { return fillchar; }
+
+ // operator=, copy constructor and destructor built by compiler
+
+ /// return the single-character system descriptor
+ char systemChar() const throw()
+ {
+ switch(system) {
+ case systemGPS: return 'G';
+ case systemGalileo: return 'E';
+ case systemGlonass: return 'R';
+ case systemGeosync: return 'S';
+ case systemTransit: return 'T';
+ case systemLEO: return 'L';
+ default: return '?';
+ }
+ };
+
+ /// return string describing system
+ std::string systemString() const throw()
+ {
+ switch(system) {
+ case systemGPS: return "GPS";
+ case systemGalileo: return "Galileo";
+ case systemGlonass: return "Glonass";
+ case systemGeosync: return "Geosync";
+ case systemTransit: return "Transit";
+ case systemLEO: return "LEO";
+ default: return "Unknown";
+ }
+ };
+
+ /// read from string
+ /// @note GPS is default system (no or unknown system char)
+ void fromString(const std::string s) throw(Exception)
+ {
+ char c;
+ std::istringstream iss(s);
+
+ id = -1; system = systemGPS; // default
+ if(s.find_first_not_of(std::string(" \t\n"), 0) == std::string::npos)
+ return; // all whitespace yields the default
+
+ iss >> c; // read one character (non-whitespace)
+ switch(c)
+ {
+ // no leading system character
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ iss.putback(c);
+ system = SatID::systemGPS;
+ break;
+ case 'R': case 'r':
+ system = SatID::systemGlonass;
+ break;
+ case 'T': case 't':
+ system = SatID::systemTransit;
+ break;
+ case 'S': case 's':
+ system = SatID::systemGeosync;
+ break;
+ case 'E': case 'e':
+ system = SatID::systemGalileo;
+ break;
+ case 'L': case 'l':
+ system = SatID::systemLEO;
+ break;
+ case ' ': case 'G': case 'g':
+ system = SatID::systemGPS;
+ break;
+ default: // invalid system character
+ Exception e(std::string("Invalid system character \"")
+ + c + std::string("\""));
+ GPSTK_THROW(e);
+ }
+ iss >> id;
+ if(id <= 0) id = -1;
+ }
+
+ /// convert to string
+ std::string toString() const throw()
+ {
+ std::ostringstream oss;
+ char savechar=oss.fill(fillchar);
+ oss << systemChar()
+ << std::setw(2) << id
+ << std::setfill(savechar);
+ return oss.str();
+ }
+
+ private:
+
+ static char fillchar; ///< fill character used during stream output
+
+ }; // class GSatID
+
+ /// stream output for GSatID
+ inline std::ostream& operator<<(std::ostream& s, const GSatID& sat) throw()
+ {
+ s << sat.toString();
+ return s;
+ }
+
+} // namespace gpstk
+
+#endif
+// nothing below this
diff --git a/dev/apps/geomatics/lib/GeodeticFrames.cpp b/dev/apps/geomatics/lib/GeodeticFrames.cpp
new file mode 100644
index 0000000..1c28357
--- /dev/null
+++ b/dev/apps/geomatics/lib/GeodeticFrames.cpp
@@ -0,0 +1,2157 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file GeodeticFrames.cpp
+ * Implement geodetic frame computations in the GeodeticFrames class.
+ * class gpstk::GeodeticFrames encapsulates frame transformations between the
+ * conventional terrestrial frame and the conventional inertial frame, as defined
+ * by the reference. It implements models of precession and nutation (IERS 1996) of
+ * Earth's axis, as well as the precise rotation of Earth and its 'wobble'
+ * as given by the Earth orientation parameters (see class EarthOrientation).
+ * Reference: IERS Technical Note 21, IERS Conventions (1996),
+ * by Dennis D. McCarthy, U.S. Naval Observatory.
+ */
+
+//------------------------------------------------------------------------------------
+// GPSTk includes
+#include "StringUtils.hpp"
+#include "geometry.hpp" // for DEG_TO_RAD
+#include "icd_200_constants.hpp" // for PI and TWO_PI
+#include "GeodeticFrames.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ //---------------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------
+ // constants
+ // epoch for CoordTransTime
+ const long GeodeticFrames::JulianEpoch=2451545;
+
+ //---------------------------------------------------------------------------------
+ //---------------------------------------------------------------------------------
+ // functions used internally
+
+ //---------------------------------------------------------------------------------
+ // Compute the 'coordinate transformation time' which is the time since
+ // epoch J2000 = January 1 2000 12h UT = 2451545.0JD, divided by 36525 days.
+ // This quantity is used throughout the terrestrial / inertial coordinate
+ // transformations.
+ double GeodeticFrames::CoordTransTime(DayTime t)
+ throw()
+ {
+ double ct = (t.JD()-double(JulianEpoch))/36525.0; // day contribution
+ ct += ((t.secOfDay()-43200.0)/86400.0)/36525.0; // seconds contribution
+ return ct;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Return mean longitude of lunar ascending node, in degrees,
+ // given T, the CoordTransTime at the Epoch of interest. (Ref: F5 pg 23)
+ double GeodeticFrames::Omega(double T)
+ throw()
+ {
+ double om;
+ om = -0.00005939*T; // seconds of arc
+ om = (om + 0.007702)*T;
+ om = (om + 7.4722)*T;
+ om /= 3600.0; // convert to degrees
+ om = (om - 1934.136185139)*T; // 1934.136185139 = 6962890.2665/3600.0
+ om += 125.04455501;
+ //om = fmod(om,360.0);
+ return om;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Return mean longitude of the moon - Omega, in degrees,
+ // given T, the CoordTransTime at the Epoch of interest. (Ref: F3 pg 23)
+ double GeodeticFrames::F(double T)
+ throw()
+ {
+ double f;
+ f = 0.00000417*T; // seconds of arc
+ f = (f - 0.001037)*T;
+ f = (f - 12.7512)*T;
+ f /= 3600.0; // convert to degrees
+ f = (f + 483202.01745772)*T; // 483202.01745772 = 1739527262.8478/3600.0
+ f += 93.27209062;
+ //f = fmod(f,360.0);
+ return 0.0;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Return mean elongation of the moon from the sun, in degrees,
+ // given T, the CoordTransTime at the Epoch of interest. (Ref: F4 pg 23)
+ double GeodeticFrames::D(double T)
+ throw()
+ {
+ double d;
+ d = -0.00003169*T; // seconds of arc
+ d = (d + 0.006593)*T;
+ d = (d - 6.3706)*T;
+ d /= 3600.0; // convert to degrees
+ d = (d + 445267.111446944)*T; // 445267.111446944 = 1602961601.2090 / 3600.0
+ d += 297.85019547;
+ //d = fmod(d,360.0);
+ return d;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Return mean anomaly of the moon, in degrees,
+ // given T, the CoordTransTime at the Epoch of interest. (Ref: F1 pg 23)
+ double GeodeticFrames::L(double T)
+ throw()
+ {
+ double l;
+ l = -0.00024470*T; // seconds of arc
+ l = (l + 0.051635)*T;
+ l = (l + 31.8792)*T;
+ l /= 3600.0; // convert to degrees
+ l = (l + 477198.8675605)*T; // 477198.8675605 = 1717915923.2178 / 3600.0
+ l += 134.96340251;
+ //l = fmod(l,360.0);
+ return l;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Return mean anomaly of the sun, in degrees,
+ // given T, the CoordTransTime at the Epoch of interest. (Ref: F2 pg 23)
+ double GeodeticFrames::Lp(double T)
+ throw()
+ {
+ double lp;
+ lp = -0.00001149*T; // seconds of arc
+ lp = (lp + 0.000136)*T;
+ lp = (lp - 0.5532)*T;
+ lp /= 3600.0; // convert to degrees
+ lp = (lp + 35999.050291139)*T;// 35999.050291139 = 129596581.0481 / 3600.0
+ lp += 357.52910918;
+ //lp = fmod(lp,360.0);
+ return lp;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Compute eps, the obliquity of the ecliptic, in degrees,
+ // given T, the CoordTransTime at the time of interest. IAU76
+ double GeodeticFrames::Obliquity(double T)
+ throw()
+ {
+ double ep;
+ // seconds of arc
+ ep = T*(-46.8150 + T*(-0.00059 + T*0.001813));
+ ep /= 3600.0; // convert to degrees
+ // degrees
+ ep += 23.43929111; // = 84381.448/3600.0
+
+ return ep;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Nutation of the obliquity (deps) and of the longitude (dpsi), IERS 1996
+ // model (ref pg 26), given
+ // @param T, the coordinate transformation time at the time of interest
+ // @param deps, nutation of the obliquity, in arc seconds (output)
+ // @param dpsi, nutation of the longitude, in arc seconds (output)
+ void GeodeticFrames::NutationAngles(double T,
+ double& deps,
+ double& dpsi)
+ throw()
+ {
+ //-----------------------------------------------------------------------
+ // Code to implement Table 5.2 of IERS Conventions 1996 series for
+ // nutation in longitude dpsi and obliquity deps in arc seconds.
+ // (Generated by perl script Table52.pl)
+ double arg;
+ dpsi = deps = 0.0;
+
+ // double T must be defined as time in Julian centuries from epoch J2000.0
+ // Also define (all doubles):
+ double o = Omega(T); // = mean longitude of lunar ascending node, in degrees,
+ double f = F(T) ; // = mean longitude of the moon - Omega, in degrees,
+ double d = D(T) ; // = mean elongation of the moon from the sun, in degrees,
+ double l = L(T) ; // = mean anomaly of the moon, in degrees, and
+ double lp = Lp(T) ; // = mean anomaly of the sun, in degrees.
+ o *= DEG_TO_RAD;
+ f *= DEG_TO_RAD;
+ d *= DEG_TO_RAD;
+ l *= DEG_TO_RAD;
+ lp *= DEG_TO_RAD;
+
+ // line 1 of Table 5.2, period = -6798.38 days
+ arg = o;
+ dpsi += (-17.206277 - 0.017419*T) * ::sin(arg) + 0.003645 * ::cos(arg);
+ deps += (+9.205356 + 0.000886*T) * ::cos(arg) + 0.001553 * ::sin(arg);
+ // line 2 of Table 5.2, period = 182.62 days
+ arg = 2*f-2*d+2*o;
+ dpsi += (-1.317014 - 0.000156*T) * ::sin(arg) - 0.001400 * ::cos(arg);
+ deps += (+0.573058 - 0.000306*T) * ::cos(arg) - 0.000464 * ::sin(arg);
+ // line 3 of Table 5.2, period = 13.66 days
+ arg = 2*f+2*o;
+ dpsi += (-0.227720 - 0.000023*T) * ::sin(arg) + 0.000269 * ::cos(arg);
+ deps += (+0.097864 - 0.000048*T) * ::cos(arg) + 0.000136 * ::sin(arg);
+ // line 4 of Table 5.2, period = -3399.18 days
+ arg = 2*o;
+ dpsi += (+0.207429 + 0.000021*T) * ::sin(arg) - 0.000071 * ::cos(arg);
+ deps += (-0.089747 + 0.000047*T) * ::cos(arg) - 0.000029 * ::sin(arg);
+ // line 5 of Table 5.2, period = -365.26 days
+ arg = -lp;
+ dpsi += (-0.147538 + 0.000364*T) * ::sin(arg) + 0.001121 * ::cos(arg);
+ deps += (+0.007388 - 0.000019*T) * ::cos(arg) + 0.000198 * ::sin(arg);
+ // line 6 of Table 5.2, period = 121.75 days
+ arg = lp+2*f-2*d+2*o;
+ dpsi += (-0.051687 + 0.000123*T) * ::sin(arg) - 0.000054 * ::cos(arg);
+ deps += (+0.022440 - 0.000068*T) * ::cos(arg) - 0.000018 * ::sin(arg);
+ // line 7 of Table 5.2, period = 27.55 days
+ arg = l;
+ dpsi += (+0.071118 + 0.000007*T) * ::sin(arg) - 0.000094 * ::cos(arg);
+ deps -= 0.000687 * ::cos(arg) + 0.000039 * ::sin(arg);
+ // line 8 of Table 5.2, period = 13.63 days
+ arg = 2*f+o;
+ dpsi += (-0.038752 - 0.000037*T) * ::sin(arg) + 0.000034 * ::cos(arg);
+ deps += (+0.020076 + 0.000002*T) * ::cos(arg) + 0.000032 * ::sin(arg);
+ // line 9 of Table 5.2, period = 9.13 days
+ arg = l+2*f+2*o;
+ dpsi += (-0.030137 - 0.000004*T) * ::sin(arg) + 0.000077 * ::cos(arg);
+ deps += (+0.012896 - 0.000006*T) * ::cos(arg) + 0.000035 * ::sin(arg);
+ // line 10 of Table 5.2, period = 365.22 days
+ arg = -lp+2*f-2*d+2*o;
+ dpsi += (+0.021583 - 0.000049*T) * ::sin(arg) + 0.000006 * ::cos(arg);
+ deps += (-0.009591 + 0.000030*T) * ::cos(arg) + 0.000012 * ::sin(arg);
+ // line 11 of Table 5.2, period = 177.84 days
+ arg = 2*f-2*d+o;
+ dpsi += (+0.012820 + 0.000014*T) * ::sin(arg) + 0.000018 * ::cos(arg);
+ deps += (-0.006897 - 0.000001*T) * ::cos(arg) + 0.000004 * ::sin(arg);
+ // line 12 of Table 5.2, period = 27.09 days
+ arg = -l+2*f+2*o;
+ dpsi += (+0.012353 + 0.000001*T) * ::sin(arg) + 0.000002 * ::cos(arg);
+ deps += (-0.005334 + 0.000003*T) * ::cos(arg);
+ // line 13 of Table 5.2, period = 31.81 days
+ arg = -l+2*d;
+ dpsi += (+0.015699 + 0.000001*T) * ::sin(arg) - 0.000018 * ::cos(arg);
+ deps -= 0.000127 * ::cos(arg) + 0.000009 * ::sin(arg);
+ // line 14 of Table 5.2, period = 27.67 days
+ arg = l+o;
+ dpsi += (+0.006314 + 0.000006*T) * ::sin(arg) + 0.000003 * ::cos(arg);
+ deps -= 0.003323 * ::cos(arg) - 0.000001 * ::sin(arg);
+ // line 15 of Table 5.2, period = -27.44 days
+ arg = -l+o;
+ dpsi += (-0.005797 - 0.000006*T) * ::sin(arg) - 0.000019 * ::cos(arg);
+ deps += 0.003141 * ::cos(arg) - 0.000008 * ::sin(arg);
+ // line 16 of Table 5.2, period = 9.56 days
+ arg = -l+2*f+2*d+2*o;
+ dpsi += (-0.005965 - 0.000001*T) * ::sin(arg) + 0.000014 * ::cos(arg);
+ deps += (+0.002554 - 0.000001*T) * ::cos(arg) + 0.000007 * ::sin(arg);
+ // line 17 of Table 5.2, period = 9.12 days
+ arg = l+2*f+o;
+ dpsi += (-0.005163 - 0.000004*T) * ::sin(arg) + 0.000012 * ::cos(arg);
+ deps += 0.002635 * ::cos(arg) + 0.000008 * ::sin(arg);
+ // line 18 of Table 5.2, period = 1305.48 days
+ arg = -2*l+2*f+o;
+ dpsi += (+0.004590 + 0.000005*T) * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += (-0.002424 - 0.000001*T) * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 19 of Table 5.2, period = 14.77 days
+ arg = 2*d;
+ dpsi += (+0.006336 + 0.000001*T) * ::sin(arg) - 0.000015 * ::cos(arg);
+ deps -= 0.000125 * ::cos(arg) + 0.000003 * ::sin(arg);
+ // line 20 of Table 5.2, period = 7.10 days
+ arg = 2*f+2*d+2*o;
+ dpsi -= 0.003854 * ::sin(arg) + 0.000015 * ::cos(arg);
+ deps += 0.001643 * ::cos(arg) + 0.000006 * ::sin(arg);
+ // line 21 of Table 5.2, period = -205.89 days
+ arg = -2*l+2*d;
+ dpsi -= 0.004774 * ::sin(arg) - 0.000002 * ::cos(arg);
+ deps += 0.000048 * ::cos(arg) - 0.000003 * ::sin(arg);
+ // line 22 of Table 5.2, period = 6.86 days
+ arg = 2*l+2*f+2*o;
+ dpsi -= 0.003102 * ::sin(arg) + 0.000012 * ::cos(arg);
+ deps += (+0.001323 - 0.000001*T) * ::cos(arg) + 0.000005 * ::sin(arg);
+ // line 23 of Table 5.2, period = 23.94 days
+ arg = l+2*f-2*d+2*o;
+ dpsi += 0.002863 * ::sin(arg);
+ deps += (-0.001235 + 0.000001*T) * ::cos(arg);
+ // line 24 of Table 5.2, period = 26.98 days
+ arg = -l+2*f+o;
+ dpsi += (+0.002044 + 0.000002*T) * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps -= 0.001076 * ::cos(arg);
+ // line 25 of Table 5.2, period = 13.78 days
+ arg = 2*l;
+ dpsi += 0.002923 * ::sin(arg) - 0.000008 * ::cos(arg);
+ deps -= 0.000062 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 26 of Table 5.2, period = 13.61 days
+ arg = 2*f;
+ dpsi += 0.002585 * ::sin(arg) - 0.000007 * ::cos(arg);
+ deps -= 0.000056 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 27 of Table 5.2, period = 386.00 days
+ arg = lp+o;
+ dpsi += (-0.001406 - 0.000003*T) * ::sin(arg) + 0.000008 * ::cos(arg);
+ deps += 0.000857 * ::cos(arg) - 0.000004 * ::sin(arg);
+ // line 28 of Table 5.2, period = 31.96 days
+ arg = -l+2*d+o;
+ dpsi += (+0.001517 + 0.000001*T) * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps -= 0.000801 * ::cos(arg);
+ // line 29 of Table 5.2, period = 91.31 days
+ arg = 2*lp+2*f-2*d+2*o;
+ dpsi += (-0.001578 + 0.000007*T) * ::sin(arg) - 0.000002 * ::cos(arg);
+ deps += (+0.000685 - 0.000004*T) * ::cos(arg) - 0.000001 * ::sin(arg);
+ // line 30 of Table 5.2, period = -173.31 days
+ arg = -2*f+2*d;
+ dpsi += 0.002178 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps -= 0.000015 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 31 of Table 5.2, period = -31.66 days
+ arg = l-2*d+o;
+ dpsi += (-0.001286 - 0.000001*T) * ::sin(arg) - 0.000004 * ::cos(arg);
+ deps += 0.000694 * ::cos(arg) - 0.000002 * ::sin(arg);
+ // line 32 of Table 5.2, period = -346.64 days
+ arg = -lp+o;
+ dpsi += (-0.001269 + 0.000001*T) * ::sin(arg) + 0.000006 * ::cos(arg);
+ deps += (+0.000642 + 0.000001*T) * ::cos(arg) + 0.000002 * ::sin(arg);
+ // line 33 of Table 5.2, period = 9.54 days
+ arg = -l+2*f+2*d+o;
+ dpsi += (-0.001022 - 0.000001*T) * ::sin(arg) + 0.000002 * ::cos(arg);
+ deps += 0.000522 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 34 of Table 5.2, period = -182.63 days
+ arg = -2*lp;
+ dpsi += (-0.001671 + 0.000008*T) * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += 0.000014 * ::cos(arg) - 0.000001 * ::sin(arg);
+ // line 35 of Table 5.2, period = 5.64 days
+ arg = l+2*f+2*d+2*o;
+ dpsi -= 0.000768 * ::sin(arg) + 0.000004 * ::cos(arg);
+ deps += 0.000325 * ::cos(arg) + 0.000002 * ::sin(arg);
+ // line 36 of Table 5.2, period = 1095.18 days
+ arg = -2*l+2*f;
+ dpsi -= 0.001102 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += 0.000010 * ::cos(arg);
+/*
+ // line 37 of Table 5.2, period = 13.17 days
+ arg = lp+2*f+2*o;
+ dpsi += (+0.000757 - 0.000002*T) * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += (-0.000326 - 0.000002*T) * ::cos(arg);
+ // line 38 of Table 5.2, period = 7.09 days
+ arg = 2*f+2*d+o;
+ dpsi += (-0.000664 - 0.000001*T) * ::sin(arg) + 0.000002 * ::cos(arg);
+ deps += (+0.000335 - 0.000001*T) * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 39 of Table 5.2, period = 14.19 days
+ arg = -lp+2*f+2*o;
+ dpsi += (-0.000714 + 0.000002*T) * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += (+0.000307 + 0.000002*T) * ::cos(arg);
+ // line 40 of Table 5.2, period = 14.80 days
+ arg = 2*d+o;
+ dpsi += (-0.000631 - 0.000001*T) * ::sin(arg);
+ deps += 0.000327 * ::cos(arg);
+ // line 41 of Table 5.2, period = 23.86 days
+ arg = l+2*f-2*d+o;
+ dpsi += (+0.000580 + 0.000001*T) * ::sin(arg);
+ deps -= 0.000307 * ::cos(arg);
+ // line 42 of Table 5.2, period = 12.81 days
+ arg = 2*l+2*f-2*d+2*o;
+ dpsi += 0.000643 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000277 * ::cos(arg);
+ // line 43 of Table 5.2, period = -199.84 days
+ arg = -2*l+2*d+o;
+ dpsi += (-0.000579 - 0.000001*T) * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += 0.000304 * ::cos(arg);
+ // line 44 of Table 5.2, period = 6.85 days
+ arg = 2*l+2*f+o;
+ dpsi -= 0.000533 * ::sin(arg) + 0.000002 * ::cos(arg);
+ deps += 0.000269 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 45 of Table 5.2, period = 346.60 days
+ arg = -lp+2*f-2*d+o;
+ dpsi += (-0.000477 - 0.000001*T) * ::sin(arg);
+ deps += (+0.000271 - 0.000001*T) * ::cos(arg);
+ // line 46 of Table 5.2, period = -14.73 days
+ arg = -2*d+o;
+ dpsi += (-0.000493 - 0.000001*T) * ::sin(arg) - 0.000002 * ::cos(arg);
+ deps += 0.000272 * ::cos(arg) - 0.000001 * ::sin(arg);
+ // line 47 of Table 5.2, period = 34.85 days
+ arg = -l-lp+2*d;
+ dpsi += 0.000735 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 48 of Table 5.2, period = 212.32 days
+ arg = 2*l-2*d+o;
+ dpsi += 0.000405 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps -= 0.000220 * ::cos(arg);
+ // line 49 of Table 5.2, period = 9.61 days
+ arg = l+2*d;
+ dpsi += 0.000657 * ::sin(arg) - 0.000002 * ::cos(arg);
+ deps -= 0.000020 * ::cos(arg);
+ // line 50 of Table 5.2, period = 119.61 days
+ arg = lp+2*f-2*d+o;
+ dpsi += 0.000361 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps -= 0.000194 * ::cos(arg);
+ // line 51 of Table 5.2, period = 29.80 days
+ arg = l-lp;
+ dpsi += 0.000471 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000004 * ::cos(arg);
+ // line 52 of Table 5.2, period = 1615.76 days
+ arg = -2*l+2*f+2*o;
+ dpsi -= 0.000311 * ::sin(arg);
+ deps += 0.000131 * ::cos(arg);
+ // line 53 of Table 5.2, period = 5.49 days
+ arg = 3*l+2*f+2*o;
+ dpsi -= 0.000289 * ::sin(arg) + 0.000002 * ::cos(arg);
+ deps += 0.000124 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 54 of Table 5.2, period = 15.39 days
+ arg = -lp+2*d;
+ dpsi += 0.000435 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000009 * ::cos(arg);
+ // line 55 of Table 5.2, period = 9.37 days
+ arg = l-lp+2*f+2*o;
+ dpsi -= 0.000287 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000123 * ::cos(arg);
+ // line 56 of Table 5.2, period = 9.81 days
+ arg = -l-lp+2*f+2*d+2*o;
+ dpsi -= 0.000282 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000122 * ::cos(arg);
+ // line 57 of Table 5.2, period = 29.53 days
+ arg = d;
+ dpsi -= 0.000422 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000003 * ::cos(arg);
+ // line 58 of Table 5.2, period = 26.88 days
+ arg = -l+2*f;
+ dpsi -= 0.000404 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000004 * ::cos(arg);
+ // line 59 of Table 5.2, period = 7.24 days
+ arg = -lp+2*f+2*d+2*o;
+ dpsi -= 0.000264 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000114 * ::cos(arg);
+ // line 60 of Table 5.2, period = -13.75 days
+ arg = -2*l+o;
+ dpsi -= 0.000228 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += 0.000126 * ::cos(arg);
+ // line 61 of Table 5.2, period = 8.91 days
+ arg = l+lp+2*f+2*o;
+ dpsi += 0.000246 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000106 * ::cos(arg);
+ // line 62 of Table 5.2, period = 13.81 days
+ arg = 2*l+o;
+ dpsi += 0.000218 * ::sin(arg);
+ deps -= 0.000114 * ::cos(arg);
+ // line 63 of Table 5.2, period = 3232.87 days
+ arg = -l+lp+d;
+ dpsi += 0.000327 * ::sin(arg);
+ deps -= 0.000001 * ::cos(arg);
+ // line 64 of Table 5.2, period = 25.62 days
+ arg = l+lp;
+ dpsi -= 0.000338 * ::sin(arg);
+ deps += 0.000004 * ::cos(arg);
+ // line 65 of Table 5.2, period = 9.11 days
+ arg = l+2*f;
+ dpsi += 0.000334 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000011 * ::cos(arg);
+ // line 66 of Table 5.2, period = -32.61 days
+ arg = -l+2*f-2*d+o;
+ dpsi -= 0.000199 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += 0.000107 * ::cos(arg);
+ // line 67 of Table 5.2, period = 27.78 days
+ arg = l+2*o;
+ dpsi -= 0.000197 * ::sin(arg);
+ deps += 0.000085 * ::cos(arg);
+ // line 68 of Table 5.2, period = -411.78 days
+ arg = -l+d;
+ dpsi += 0.000405 * ::sin(arg) - 0.000035 * ::cos(arg);
+ deps -= 0.000055 * ::cos(arg) - 0.000014 * ::sin(arg);
+ // line 69 of Table 5.2, period = 9.34 days
+ arg = 2*f+d+2*o;
+ dpsi += 0.000165 * ::sin(arg);
+ deps -= 0.000072 * ::cos(arg);
+ // line 70 of Table 5.2, period = 5.80 days
+ arg = -l+2*f+4*d+2*o;
+ dpsi -= 0.000151 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000066 * ::cos(arg);
+ // line 71 of Table 5.2, period = 6786.31 days
+ arg = -2*lp+2*f-2*d+o;
+ dpsi -= 0.000130 * ::sin(arg);
+ deps += 0.000069 * ::cos(arg);
+ // line 72 of Table 5.2, period = 6164.17 days
+ arg = -l+lp+d+o;
+ dpsi += 0.000132 * ::sin(arg);
+ deps -= 0.000068 * ::cos(arg);
+ // line 73 of Table 5.2, period = 5.64 days
+ arg = l+2*f+2*d+o;
+ dpsi -= 0.000133 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000066 * ::cos(arg);
+ // line 74 of Table 5.2, period = 14.63 days
+ arg = -2*l+2*f+2*d+2*o;
+ dpsi += 0.000139 * ::sin(arg);
+ deps -= 0.000060 * ::cos(arg);
+ // line 75 of Table 5.2, period = -27.33 days
+ arg = -l+2*o;
+ dpsi += 0.000139 * ::sin(arg);
+ deps -= 0.000060 * ::cos(arg);
+ // line 76 of Table 5.2, period = 22.47 days
+ arg = l+lp+2*f-2*d+2*o;
+ dpsi += 0.000128 * ::sin(arg);
+ deps -= 0.000055 * ::cos(arg);
+ // line 77 of Table 5.2, period = 7.35 days
+ arg = -2*l+2*f+4*d+2*o;
+ dpsi -= 0.000121 * ::sin(arg);
+ deps += 0.000052 * ::cos(arg);
+ // line 78 of Table 5.2, period = 9.06 days
+ arg = -l+4*f+2*o;
+ dpsi += 0.000115 * ::sin(arg);
+ deps -= 0.000049 * ::cos(arg);
+ // line 79 of Table 5.2, period = 12.79 days
+ arg = 2*l+2*f-2*d+o;
+ dpsi += 0.000101 * ::sin(arg);
+ deps -= 0.000054 * ::cos(arg);
+ // line 80 of Table 5.2, period = 4.68 days
+ arg = 2*l+2*f+2*d+2*o;
+ dpsi -= 0.000108 * ::sin(arg) + 0.000001 * ::cos(arg);
+ deps += 0.000047 * ::cos(arg);
+ // line 81 of Table 5.2, period = 9.63 days
+ arg = l+2*d+o;
+ dpsi -= 0.000095 * ::sin(arg);
+ deps += 0.000049 * ::cos(arg);
+ // line 82 of Table 5.2, period = 9.18 days
+ arg = 3*l;
+ dpsi += 0.000157 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 83 of Table 5.2, period = 8.75 days
+ arg = 3*l+2*f-2*d+2*o;
+ dpsi += 0.000094 * ::sin(arg);
+ deps -= 0.000040 * ::cos(arg);
+ // line 84 of Table 5.2, period = 12.66 days
+ arg = 4*f-2*d+2*o;
+ dpsi += 0.000091 * ::sin(arg);
+ deps -= 0.000039 * ::cos(arg);
+ // line 85 of Table 5.2, period = -169.00 days
+ arg = -2*f+2*d+o;
+ dpsi += 0.000087 * ::sin(arg);
+ deps -= 0.000044 * ::cos(arg);
+ // line 86 of Table 5.2, period = 13.14 days
+ arg = lp+2*f+o;
+ dpsi += 0.000081 * ::sin(arg);
+ deps -= 0.000042 * ::cos(arg);
+ // line 87 of Table 5.2, period = 187.66 days
+ arg = 2*f-2*d+3*o;
+ dpsi += 0.000123 * ::sin(arg);
+ deps -= 0.000020 * ::cos(arg);
+ // line 88 of Table 5.2, period = 10.08 days
+ arg = -l+4*d;
+ dpsi += 0.000133 * ::sin(arg);
+ deps -= 0.000004 * ::cos(arg);
+ // line 89 of Table 5.2, period = -943.23 days
+ arg = 2*l-2*f+o;
+ dpsi += 0.000071 * ::sin(arg);
+ deps -= 0.000038 * ::cos(arg);
+ // line 90 of Table 5.2, period = -15.91 days
+ arg = 2*l-4*d;
+ dpsi -= 0.000128 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 91 of Table 5.2, period = 35.03 days
+ arg = -l-lp+2*d+o;
+ dpsi += 0.000075 * ::sin(arg);
+ deps -= 0.000039 * ::cos(arg);
+ // line 92 of Table 5.2, period = -131.67 days
+ arg = -2*l-lp+2*d;
+ dpsi -= 0.000115 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 93 of Table 5.2, period = 14.16 days
+ arg = -lp+2*f+o;
+ dpsi -= 0.000066 * ::sin(arg);
+ deps += 0.000035 * ::cos(arg);
+ // line 94 of Table 5.2, period = -388.27 days
+ arg = -l+d+o;
+ dpsi += 0.000101 * ::sin(arg) - 0.000003 * ::cos(arg);
+ deps -= 0.000049 * ::cos(arg) - 0.000001 * ::sin(arg);
+ // line 95 of Table 5.2, period = -13.58 days
+ arg = -2*f+o;
+ dpsi -= 0.000068 * ::sin(arg);
+ deps += 0.000036 * ::cos(arg);
+ // line 96 of Table 5.2, period = 409.23 days
+ arg = lp+2*o;
+ dpsi += 0.000069 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps -= 0.000033 * ::cos(arg);
+ // line 97 of Table 5.2, period = 25.42 days
+ arg = 2*f-d+2*o;
+ dpsi -= 0.000074 * ::sin(arg);
+ deps += 0.000031 * ::cos(arg);
+ // line 98 of Table 5.2, period = 4.79 days
+ arg = 2*f+4*d+2*o;
+ dpsi -= 0.000069 * ::sin(arg);
+ deps += 0.000029 * ::cos(arg);
+ // line 99 of Table 5.2, period = -34.67 days
+ arg = l+lp-2*d+o;
+ dpsi -= 0.000061 * ::sin(arg);
+ deps += 0.000032 * ::cos(arg);
+ // line 100 of Table 5.2, period = 29.26 days
+ arg = -l+lp+2*d;
+ dpsi -= 0.000094 * ::sin(arg);
+ // line 101 of Table 5.2, period = 5.73 days
+ arg = l-lp+2*f+2*d+2*o;
+ dpsi -= 0.000059 * ::sin(arg);
+ deps += 0.000025 * ::cos(arg);
+ // line 102 of Table 5.2, period = 29.93 days
+ arg = l-lp+o;
+ dpsi += 0.000051 * ::sin(arg);
+ deps -= 0.000027 * ::cos(arg);
+ // line 103 of Table 5.2, period = -329.79 days
+ arg = lp-2*f+2*d;
+ dpsi -= 0.000090 * ::sin(arg);
+ deps += 0.000003 * ::cos(arg);
+ // line 104 of Table 5.2, period = 5.49 days
+ arg = 3*l+2*f+o;
+ dpsi -= 0.000050 * ::sin(arg);
+ deps += 0.000025 * ::cos(arg);
+ // line 105 of Table 5.2, period = 9.31 days
+ arg = -l+lp+2*f+2*d+2*o;
+ dpsi += 0.000056 * ::sin(arg);
+ deps -= 0.000024 * ::cos(arg);
+ // line 106 of Table 5.2, period = 6.96 days
+ arg = lp+2*f+2*d+2*o;
+ dpsi += 0.000054 * ::sin(arg);
+ deps -= 0.000022 * ::cos(arg);
+ // line 107 of Table 5.2, period = -9.60 days
+ arg = -l-2*d+o;
+ dpsi -= 0.000050 * ::sin(arg);
+ deps += 0.000027 * ::cos(arg);
+ // line 108 of Table 5.2, period = 66079.30 days
+ arg = -l+lp+d+2*o;
+ dpsi -= 0.000052 * ::sin(arg);
+ deps += 0.000023 * ::cos(arg);
+ // line 109 of Table 5.2, period = 7.23 days
+ arg = -lp+2*f+2*d+o;
+ dpsi -= 0.000044 * ::sin(arg);
+ deps += 0.000024 * ::cos(arg);
+ // line 110 of Table 5.2, period = -38.74 days
+ arg = l+2*f-4*d+o;
+ dpsi -= 0.000047 * ::sin(arg);
+ deps += 0.000024 * ::cos(arg);
+ // line 111 of Table 5.2, period = -23.77 days
+ arg = -l-2*f+2*d;
+ dpsi += 0.000077 * ::sin(arg);
+ // line 112 of Table 5.2, period = 9.80 days
+ arg = -l-lp+2*f+2*d+o;
+ dpsi -= 0.000046 * ::sin(arg);
+ deps += 0.000024 * ::cos(arg);
+ // line 113 of Table 5.2, period = -329.82 days
+ arg = -lp+2*o;
+ dpsi += 0.000059 * ::sin(arg);
+ deps -= 0.000025 * ::cos(arg);
+ // line 114 of Table 5.2, period = 6.99 days
+ arg = 2*l-lp+2*f+2*o;
+ dpsi -= 0.000048 * ::sin(arg);
+ deps += 0.000021 * ::cos(arg);
+ // line 115 of Table 5.2, period = 9.35 days
+ arg = l-lp+2*f+o;
+ dpsi -= 0.000042 * ::sin(arg);
+ deps += 0.000022 * ::cos(arg);
+ // line 116 of Table 5.2, period = 14.83 days
+ arg = 2*d+2*o;
+ dpsi -= 0.000046 * ::sin(arg);
+ deps += 0.000020 * ::cos(arg);
+ // line 117 of Table 5.2, period = 14.19 days
+ arg = lp+2*d;
+ dpsi -= 0.000067 * ::sin(arg);
+ // line 118 of Table 5.2, period = 25.22 days
+ arg = -l+lp+2*f+2*o;
+ dpsi += 0.000047 * ::sin(arg);
+ deps -= 0.000020 * ::cos(arg);
+ // line 119 of Table 5.2, period = 73.05 days
+ arg = 3*lp+2*f-2*d+2*o;
+ dpsi -= 0.000044 * ::sin(arg);
+ deps += 0.000019 * ::cos(arg);
+ // line 120 of Table 5.2, period = -117.54 days
+ arg = -lp-2*f+2*d;
+ dpsi += 0.000066 * ::sin(arg);
+ // line 121 of Table 5.2, period = 29.66 days
+ arg = d+o;
+ dpsi -= 0.000037 * ::sin(arg);
+ deps += 0.000020 * ::cos(arg);
+ // line 122 of Table 5.2, period = -9.53 days
+ arg = l-2*f-2*d;
+ dpsi -= 0.000064 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 123 of Table 5.2, period = 8.90 days
+ arg = l+lp+2*f+o;
+ dpsi += 0.000036 * ::sin(arg);
+ deps -= 0.000018 * ::cos(arg);
+ // line 124 of Table 5.2, period = 6.73 days
+ arg = 2*l+lp+2*f+2*o;
+ dpsi += 0.000040 * ::sin(arg);
+ deps -= 0.000017 * ::cos(arg);
+ // line 125 of Table 5.2, period = 27.32 days
+ arg = lp+d;
+ dpsi += 0.000057 * ::sin(arg);
+ // line 126 of Table 5.2, period = 32.76 days
+ arg = l-2*f+2*d;
+ dpsi -= 0.000058 * ::sin(arg);
+ // line 127 of Table 5.2, period = 25.72 days
+ arg = l+lp+o;
+ dpsi -= 0.000034 * ::sin(arg);
+ deps += 0.000019 * ::cos(arg);
+ // line 128 of Table 5.2, period = -7.13 days
+ arg = -2*l-2*d;
+ dpsi -= 0.000059 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 129 of Table 5.2, period = 32.11 days
+ arg = -l+2*d+2*o;
+ dpsi -= 0.000038 * ::sin(arg);
+ deps += 0.000017 * ::cos(arg);
+ // line 130 of Table 5.2, period = -29.40 days
+ arg = -d+o;
+ dpsi += 0.000033 * ::sin(arg);
+ deps -= 0.000018 * ::cos(arg);
+ // line 131 of Table 5.2, period = -15.35 days
+ arg = lp-2*d+o;
+ dpsi -= 0.000033 * ::sin(arg);
+ deps += 0.000018 * ::cos(arg);
+ // line 132 of Table 5.2, period = -32.45 days
+ arg = -l+2*f-2*d+2*o;
+ dpsi += 0.000036 * ::sin(arg);
+ deps -= 0.000016 * ::cos(arg);
+ // line 133 of Table 5.2, period = -29.67 days
+ arg = -l+lp+o;
+ dpsi -= 0.000031 * ::sin(arg);
+ deps += 0.000017 * ::cos(arg);
+ // line 134 of Table 5.2, period = 6.98 days
+ arg = l+2*f+d+2*o;
+ dpsi += 0.000033 * ::sin(arg);
+ deps -= 0.000014 * ::cos(arg);
+ // line 135 of Table 5.2, period = -7.38 days
+ arg = -4*d;
+ dpsi -= 0.000048 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 136 of Table 5.2, period = 9.33 days
+ arg = 2*f+d+o;
+ dpsi += 0.000027 * ::sin(arg);
+ deps -= 0.000014 * ::cos(arg);
+ // line 137 of Table 5.2, period = -31.52 days
+ arg = l-2*d+2*o;
+ dpsi += 0.000032 * ::sin(arg);
+ deps -= 0.000014 * ::cos(arg);
+ // line 138 of Table 5.2, period = 13.22 days
+ arg = l+2*f-d+2*o;
+ dpsi -= 0.000033 * ::sin(arg);
+ deps += 0.000013 * ::cos(arg);
+ // line 139 of Table 5.2, period = 9.87 days
+ arg = l-lp+2*d;
+ dpsi += 0.000048 * ::sin(arg);
+ // line 140 of Table 5.2, period = 5.80 days
+ arg = -l+2*f+4*d+o;
+ dpsi -= 0.000026 * ::sin(arg);
+ deps += 0.000013 * ::cos(arg);
+ // line 141 of Table 5.2, period = -7.08 days
+ arg = -2*f-2*d;
+ dpsi -= 0.000041 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 142 of Table 5.2, period = -26.77 days
+ arg = l-2*f+o;
+ dpsi += 0.000027 * ::sin(arg);
+ deps -= 0.000014 * ::cos(arg);
+ // line 143 of Table 5.2, period = 313.04 days
+ arg = -l+2*f-d+o;
+ dpsi -= 0.000023 * ::sin(arg);
+ deps += 0.000014 * ::cos(arg);
+ // line 144 of Table 5.2, period = 22.40 days
+ arg = l+lp+2*f-2*d+o;
+ dpsi += 0.000023 * ::sin(arg);
+ deps -= 0.000012 * ::cos(arg);
+ // line 145 of Table 5.2, period = 4.58 days
+ arg = 4*l+2*f+2*o;
+ dpsi -= 0.000026 * ::sin(arg);
+ deps += 0.000011 * ::cos(arg);
+ // line 146 of Table 5.2, period = 9.11 days
+ arg = lp+2*f+d+2*o;
+ dpsi -= 0.000024 * ::sin(arg);
+ deps += 0.000010 * ::cos(arg);
+ // line 147 of Table 5.2, period = -6.85 days
+ arg = -2*l-2*f;
+ dpsi -= 0.000036 * ::sin(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 148 of Table 5.2, period = 12.38 days
+ arg = 2*l+lp+2*f-2*d+2*o;
+ dpsi += 0.000025 * ::sin(arg);
+ deps -= 0.000010 * ::cos(arg);
+ // line 149 of Table 5.2, period = 14.32 days
+ arg = 2*l-lp;
+ dpsi += 0.000038 * ::sin(arg);
+ // line 150 of Table 5.2, period = -25.53 days
+ arg = -l-lp+o;
+ dpsi += 0.000021 * ::sin(arg);
+ deps -= 0.000012 * ::cos(arg);
+ // line 151 of Table 5.2, period = 14.60 days
+ arg = -2*l+2*f+2*d+o;
+ dpsi += 0.000022 * ::sin(arg);
+ deps -= 0.000011 * ::cos(arg);
+ // line 152 of Table 5.2, period = -2266.12 days
+ arg = 3*o;
+ dpsi -= 0.000022 * ::sin(arg);
+ deps += 0.000010 * ::cos(arg);
+ // line 153 of Table 5.2, period = 8.68 days
+ arg = l+4*f-2*d+2*o;
+ dpsi += 0.000023 * ::sin(arg);
+ deps -= 0.000009 * ::cos(arg);
+ // line 154 of Table 5.2, period = 4.68 days
+ arg = 2*l+2*f+2*d+o;
+ dpsi -= 0.000019 * ::sin(arg);
+ deps += 0.000010 * ::cos(arg);
+ // line 155 of Table 5.2, period = 7.34 days
+ arg = -2*l+2*f+4*d+o;
+ dpsi -= 0.000020 * ::sin(arg);
+ deps += 0.000010 * ::cos(arg);
+ // line 156 of Table 5.2, period = 14.22 days
+ arg = lp+2*d+o;
+ dpsi += 0.000018 * ::sin(arg);
+ deps -= 0.000009 * ::cos(arg);
+ // line 157 of Table 5.2, period = 14.25 days
+ arg = l+d;
+ dpsi -= 0.000033 * ::sin(arg);
+ // line 158 of Table 5.2, period = 10.10 days
+ arg = -l+4*d+o;
+ dpsi -= 0.000018 * ::sin(arg);
+ deps += 0.000009 * ::cos(arg);
+ // line 159 of Table 5.2, period = 9.05 days
+ arg = -l+4*f+o;
+ dpsi += 0.000019 * ::sin(arg);
+ deps -= 0.000009 * ::cos(arg);
+ // line 160 of Table 5.2, period = -35.23 days
+ arg = 2*f-3*d+2*o;
+ dpsi -= 0.000020 * ::sin(arg);
+ deps += 0.000008 * ::cos(arg);
+ // line 161 of Table 5.2, period = 6.82 days
+ arg = 4*f+2*o;
+ dpsi += 0.000019 * ::sin(arg);
+ deps -= 0.000008 * ::cos(arg);
+ // line 162 of Table 5.2, period = 13.28 days
+ arg = 2*l+lp;
+ dpsi -= 0.000028 * ::sin(arg);
+ // line 163 of Table 5.2, period = -16.10 days
+ arg = 2*f-4*d+o;
+ dpsi -= 0.000016 * ::sin(arg);
+ deps += 0.000009 * ::cos(arg);
+ // line 164 of Table 5.2, period = 5.90 days
+ arg = -l-lp+2*f+4*d+2*o;
+ dpsi -= 0.000017 * ::sin(arg);
+ deps += 0.000007 * ::cos(arg);
+ // line 165 of Table 5.2, period = 38.52 days
+ arg = -l-2*lp+2*d;
+ dpsi += 0.000027 * ::sin(arg);
+ // line 166 of Table 5.2, period = 7.39 days
+ arg = 4*d+o;
+ dpsi -= 0.000016 * ::sin(arg);
+ deps += 0.000007 * ::cos(arg);
+ // line 167 of Table 5.2, period = 15.42 days
+ arg = -lp+2*d+o;
+ dpsi -= 0.000014 * ::sin(arg);
+ deps += 0.000007 * ::cos(arg);
+ // line 168 of Table 5.2, period = 4.08 days
+ arg = l+2*f+4*d+2*o;
+ dpsi -= 0.000016 * ::sin(arg);
+ deps += 0.000007 * ::cos(arg);
+ // line 169 of Table 5.2, period = -194.13 days
+ arg = -2*l+2*d+2*o;
+ dpsi += 0.000018 * ::sin(arg);
+ deps -= 0.000008 * ::cos(arg);
+ // line 170 of Table 5.2, period = 1616.44 days
+ arg = -2*l+2*lp+2*d;
+ dpsi -= 0.000022 * ::sin(arg);
+ // line 171 of Table 5.2, period = -507.16 days
+ arg = -2*l-lp+2*f+o;
+ dpsi += 0.000009 * ::sin(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 172 of Table 5.2, period = -9.17 days
+ arg = -3*l+o;
+ dpsi -= 0.000014 * ::sin(arg);
+ deps += 0.000007 * ::cos(arg);
+ // line 173 of Table 5.2, period = 13.69 days
+ arg = 2*f+3*o;
+ dpsi += 0.000020 * ::sin(arg);
+ // line 174 of Table 5.2, period = 4.79 days
+ arg = 2*f+4*d+o;
+ dpsi -= 0.000012 * ::sin(arg);
+ deps += 0.000006 * ::cos(arg);
+ // line 175 of Table 5.2, period = 12.64 days
+ arg = 4*f-2*d+o;
+ dpsi += 0.000012 * ::sin(arg);
+ deps -= 0.000007 * ::cos(arg);
+ // line 176 of Table 5.2, period = 16.06 days
+ arg = -2*lp+2*d;
+ dpsi += 0.000021 * ::sin(arg);
+ // line 177 of Table 5.2, period = 438.33 days
+ arg = l-d+o;
+ dpsi += 0.000017 * ::sin(arg) - 0.000003 * ::cos(arg);
+ deps -= 0.000005 * ::cos(arg) + 0.000001 * ::sin(arg);
+ // line 178 of Table 5.2, period = 5.56 days
+ arg = l+lp+2*f+2*d+2*o;
+ dpsi += 0.000015 * ::sin(arg);
+ deps -= 0.000006 * ::cos(arg);
+ // line 179 of Table 5.2, period = 8.73 days
+ arg = 3*l+2*f-2*d+o;
+ dpsi += 0.000012 * ::sin(arg);
+ deps -= 0.000007 * ::cos(arg);
+ // line 180 of Table 5.2, period = 29.26 days
+ arg = -l-lp+2*f+2*o;
+ dpsi -= 0.000016 * ::sin(arg);
+ deps += 0.000006 * ::cos(arg);
+ // line 181 of Table 5.2, period = -129.17 days
+ arg = -2*l-lp+2*d+o;
+ dpsi -= 0.000013 * ::sin(arg);
+ deps += 0.000007 * ::cos(arg);
+ // line 182 of Table 5.2, period = -14.70 days
+ arg = -2*d+2*o;
+ dpsi += 0.000013 * ::sin(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 183 of Table 5.2, period = 7.38 days
+ arg = -2*lp+2*f+2*d+2*o;
+ dpsi -= 0.000013 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 184 of Table 5.2, period = -10.07 days
+ arg = l-4*d+o;
+ dpsi -= 0.000012 * ::sin(arg);
+ deps += 0.000006 * ::cos(arg);
+ // line 185 of Table 5.2, period = 29.39 days
+ arg = -l+lp+2*d+o;
+ dpsi -= 0.000010 * ::sin(arg);
+ deps += 0.000006 * ::cos(arg);
+ // line 186 of Table 5.2, period = 15.94 days
+ arg = -2*l+4*d+o;
+ dpsi += 0.000011 * ::sin(arg);
+ deps -= 0.000006 * ::cos(arg);
+ // line 187 of Table 5.2, period = 25.33 days
+ arg = 2*f-d+o;
+ dpsi -= 0.000010 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 188 of Table 5.2, period = 187.67 days
+ arg = 2*lp+o;
+ dpsi -= 0.000009 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 189 of Table 5.2, period = 90.10 days
+ arg = 2*lp+2*f-2*d+o;
+ dpsi += 0.000008 * ::sin(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 190 of Table 5.2, period = 7.13 days
+ arg = 2*l+2*d+o;
+ dpsi -= 0.000009 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 191 of Table 5.2, period = -15.87 days
+ arg = 2*l-4*d+o;
+ dpsi -= 0.000011 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 192 of Table 5.2, period = 95.42 days
+ arg = 2*l+2*f-4*d+o;
+ dpsi += 0.000010 * ::sin(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 193 of Table 5.2, period = -9.10 days
+ arg = -l-2*f+o;
+ dpsi -= 0.000010 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 194 of Table 5.2, period = 25.13 days
+ arg = -l+lp+2*f+o;
+ dpsi += 0.000009 * ::sin(arg);
+ deps -= 0.000005 * ::cos(arg);
+ // line 195 of Table 5.2, period = -35.80 days
+ arg = -l+lp+2*f-2*d+o;
+ dpsi -= 0.000011 * ::sin(arg);
+ deps += 0.000005 * ::cos(arg);
+ // line 196 of Table 5.2, period = 10.37 days
+ arg = -l-lp+4*d;
+ dpsi += 0.000015 * ::sin(arg);
+ // line 197 of Table 5.2, period = 37.63 days
+ arg = -3*l+4*d;
+ dpsi += 0.000016 * ::sin(arg);
+ // line 198 of Table 5.2, period = 4.00 days
+ arg = 3*l+2*f+2*d+2*o;
+ dpsi -= 0.000014 * ::sin(arg);
+ // line 199 of Table 5.2, period = 471.89 days
+ arg = 2*l-lp-2*d;
+ dpsi -= 0.000009 * ::sin(arg) - 0.000001 * ::cos(arg);
+ deps += 0.000001 * ::cos(arg);
+ // line 200 of Table 5.2, period = -3396.16 days
+ arg = 2*lp-2*f+2*d;
+ dpsi -= 0.000009 * ::sin(arg);
+ // line 201 of Table 5.2, period = 4.86 days
+ arg = -lp+2*f+4*d+2*o;
+ dpsi -= 0.000009 * ::sin(arg);
+ // line 202 of Table 5.2, period = 27.32 days
+ arg = -lp+2*f-d+2*o;
+ dpsi += 0.000009 * ::sin(arg);
+ // line 203 of Table 5.2, period = 9.37 days
+ arg = l+lp+2*d;
+ dpsi -= 0.000010 * ::sin(arg);
+ // line 204 of Table 5.2, period = 219.17 days
+ arg = 2*l-2*d+2*o;
+ dpsi -= 0.000011 * ::sin(arg);
+ // line 205 of Table 5.2, period = 4.74 days
+ arg = 2*l-lp+2*f+2*d+2*o;
+ dpsi -= 0.000009 * ::sin(arg);
+ // line 206 of Table 5.2, period = 6.89 days
+ arg = 4*l;
+ dpsi += 0.000009 * ::sin(arg);
+ // line 207 of Table 5.2, period = 6.64 days
+ arg = 4*l+2*f-2*d+2*o;
+ dpsi += 0.000012 * ::sin(arg);
+ // line 208 of Table 5.2, period = 15.31 days
+ arg = -l+3*d;
+ dpsi -= 0.000010 * ::sin(arg);
+ // line 209 of Table 5.2, period = 23.43 days
+ arg = -l+4*f-2*d+2*o;
+ dpsi -= 0.000009 * ::sin(arg);
+ // line 210 of Table 5.2, period = 10.08 days
+ arg = -l-2*lp+2*f+2*d+2*o;
+ dpsi -= 0.000009 * ::sin(arg);
+ // line 211 of Table 5.2, period = 16.63 days
+ arg = -2*l-lp+4*d;
+ dpsi += 0.000012 * ::sin(arg);
+ // line 212 of Table 5.2, period = 7.50 days
+ arg = -2*l-lp+2*f+4*d+2*o;
+ dpsi -= 0.000012 * ::sin(arg);
+ // line 213 of Table 5.2, period = 6.95 days
+ arg = lp+2*f+2*d+o;
+ dpsi += 0.000007 * ::sin(arg);
+ // line 214 of Table 5.2, period = 12.71 days
+ arg = 2*lp+2*f+2*o;
+ dpsi += 0.000007 * ::sin(arg);
+ // line 215 of Table 5.2, period = 14.77 days
+ arg = -2*lp+2*f+2*o;
+ dpsi -= 0.000008 * ::sin(arg);
+ // line 216 of Table 5.2, period = 5.82 days
+ arg = l+4*d;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 217 of Table 5.2, period = 5.63 days
+ arg = l+2*f+2*d;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 218 of Table 5.2, period = -38.52 days
+ arg = l+2*f-4*d+2*o;
+ dpsi += 0.000007 * ::sin(arg);
+ // line 219 of Table 5.2, period = 5.73 days
+ arg = l-lp+2*f+2*d+o;
+ dpsi -= 0.000008 * ::sin(arg);
+ // line 220 of Table 5.2, period = 25.62 days
+ arg = l-lp+2*f-2*d+2*o;
+ dpsi -= 0.000007 * ::sin(arg);
+ // line 221 of Table 5.2, period = 32.45 days
+ arg = l-2*lp;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 222 of Table 5.2, period = 13.83 days
+ arg = 2*l+2*o;
+ dpsi -= 0.000008 * ::sin(arg);
+ // line 223 of Table 5.2, period = 134.27 days
+ arg = 2*l+lp-2*d+o;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 224 of Table 5.2, period = 9.20 days
+ arg = 3*l+o;
+ dpsi += 0.000007 * ::sin(arg);
+ // line 225 of Table 5.2, period = 14.13 days
+ arg = -l+2*f+d+2*o;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 226 of Table 5.2, period = 7.22 days
+ arg = -l+2*f+3*d+2*o;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 227 of Table 5.2, period = 38.96 days
+ arg = -l-2*f+4*d;
+ dpsi -= 0.000007 * ::sin(arg);
+ // line 228 of Table 5.2, period = 9.30 days
+ arg = -l+lp+2*f+2*d+o;
+ dpsi += 0.000007 * ::sin(arg);
+ // line 229 of Table 5.2, period = 27.09 days
+ arg = -l+2*lp+2*d;
+ dpsi -= 0.000008 * ::sin(arg);
+ // line 230 of Table 5.2, period = 2189.73 days
+ arg = -l-lp+2*f-d+o;
+ dpsi += 0.000007 * ::sin(arg);
+ // line 231 of Table 5.2, period = -14.93 days
+ arg = -2*l+2*f-2*d+o;
+ dpsi -= 0.000008 * ::sin(arg);
+ // line 232 of Table 5.2, period = 13.49 days
+ arg = -2*l+4*f+2*o;
+ dpsi -= 0.000007 * ::sin(arg);
+ // line 233 of Table 5.2, period = -12.76 days
+ arg = -2*l-2*f+2*d;
+ dpsi += 0.000008 * ::sin(arg);
+ // line 234 of Table 5.2, period = 285.41 days
+ arg = -2*l+lp+2*f+o;
+ dpsi += 0.000009 * ::sin(arg);
+ // line 235 of Table 5.2, period = -28.15 days
+ arg = -3*l+2*f+o;
+ dpsi -= 0.000008 * ::sin(arg);
+ // line 236 of Table 5.2, period = 27.43 days
+ arg = lp+d+o;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 237 of Table 5.2, period = 7.53 days
+ arg = -lp+4*d;
+ dpsi += 0.000006 * ::sin(arg);
+ // line 238 of Table 5.2, period = -14.16 days
+ arg = -lp-2*d+o;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 239 of Table 5.2, period = -177.85 days
+ arg = -2*lp+o;
+ dpsi -= 0.000006 * ::sin(arg);
+ // line 240 of Table 5.2, period = 6.97 days
+ arg = l+2*f+d+o;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 241 of Table 5.2, period = 126.51 days
+ arg = l+2*f-3*d+2*o;
+ dpsi -= 0.000006 * ::sin(arg);
+ // line 242 of Table 5.2, period = -299.26 days
+ arg = l-2*f+d;
+ dpsi -= 0.000007 * ::sin(arg);
+ // line 243 of Table 5.2, period = 13.72 days
+ arg = l+lp+d;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 244 of Table 5.2, period = -29.14 days
+ arg = l-lp-2*d+o;
+ dpsi += 0.000006 * ::sin(arg);
+ // line 245 of Table 5.2, period = 8.93 days
+ arg = 2*l+2*f-d+2*o;
+ dpsi -= 0.000006 * ::sin(arg);
+ // line 246 of Table 5.2, period = 6.73 days
+ arg = 2*l+lp+2*f+o;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 247 of Table 5.2, period = 6.98 days
+ arg = 2*l-lp+2*f+o;
+ dpsi -= 0.000006 * ::sin(arg);
+ // line 248 of Table 5.2, period = 13.28 days
+ arg = 2*l-lp+2*f-2*d+2*o;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 249 of Table 5.2, period = 5.66 days
+ arg = 3*l+2*d;
+ dpsi += 0.000005 * ::sin(arg);
+ // line 250 of Table 5.2, period = 5.58 days
+ arg = 3*l-lp+2*f+2*o;
+ dpsi -= 0.000005 * ::sin(arg);
+ // line 251 of Table 5.2, period = 29.14 days
+ arg = -l-lp+2*f+o;
+ dpsi -= 0.000006 * ::sin(arg);
+ // line 252 of Table 5.2, period = -13.72 days
+ arg = -2*l+2*o;
+ dpsi += 0.000006 * ::sin(arg);
+ // line 253 of Table 5.2, period = 34.48 days
+ arg = -2*l+3*d;
+ dpsi -= 0.000005 * ::sin(arg);
+ // line 254 of Table 5.2, period = -7.12 days
+ arg = -2*l-2*d+o;
+ dpsi -= 0.000005 * ::sin(arg);
+ // line 255 of Table 5.2, period = 14.57 days
+ arg = -2*l+2*f+2*d;
+ dpsi -= 0.000006 * ::sin(arg);
+ // line 256 of Table 5.2, period = -548.04 days
+ arg = -2*l-lp+2*f;
+ dpsi -= 0.000005 * ::sin(arg);
+ // line 257 of Table 5.2, period = 15.24 days
+ arg = -2*l-lp+2*f+2*d+2*o;
+ dpsi += 0.000006 * ::sin(arg);
+ // line 258 of Table 5.2, period = 27.21 days
+ arg = f;
+ dpsi += 0.000008 * ::cos(arg);
+ // line 259 of Table 5.2, period = 27.32 days
+ arg = f+o;
+ dpsi -= 0.000016 * ::cos(arg);
+ deps -= 0.000014 * ::sin(arg);
+ // line 260 of Table 5.2, period = 2190.35 days
+ arg = -l+f;
+ dpsi += 0.000033 * ::cos(arg);
+ // line 261 of Table 5.2, period = 3231.51 days
+ arg = -l+f+o;
+ dpsi -= 0.000105 * ::cos(arg);
+ deps -= 0.000089 * ::sin(arg);
+ // line 262 of Table 5.2, period = 6159.22 days
+ arg = -l+f+2*o;
+ dpsi += 0.000036 * ::cos(arg);
+ deps += 0.000018 * ::sin(arg);
+ // line 263 of Table 5.2, period = 65514.10 days
+ arg = -l+f+3*o;
+ dpsi -= 0.000006 * ::cos(arg);
+*/
+ //End Code implementing Table 5.2 IERS Conventions 1996 nutation series.
+ //-----------------------------------------------------------------------
+ }
+
+ //------------------------------------------------------------------------------
+ // Zonal tide terms for corrections of UT1mUTC when that quantity does not
+ // include tides (e.g. NGA EOP), ref. IERS 1996 Ch. 8, table 8.1 pg 74.
+ // @param T, the coordinate transformation time at the time of interest
+ // @param UT1mUT1R, the correction to UT1mUTC (seconds)
+ // @param dlodR, the correction to the length of day (seconds)
+ // @param domegaR, the correction to the Earth rotation rate, rad/second.
+ void GeodeticFrames::UT1mUTCTidalCorrections(double T,
+ double& UT1mUT1R,
+ double& dlodR,
+ double& domegaR)
+ throw()
+ {
+ //-----------------------------------------------------------------------
+ // Code to implement Table 8.1 of IERS Conventions 1996 series for
+ // Zonal Tide terms for UT1R, length of the day and omega(Earth).
+ // Units for UT1R, length of the day and omega(Earth) are:
+ // seconds, seconds and radians/sec.
+ // (Generated by perl script Table81.pl)
+ double arg;
+ UT1mUT1R = dlodR = domegaR = 0.0;
+
+ // Define (all doubles) and all in RADIANS:
+ double o = Omega(T); // = mean longitude of lunar ascending node, in degrees,
+ double f = F(T) ; // = mean longitude of the moon - Omega, in degrees,
+ double d = D(T) ; // = mean elongation of the moon from the sun, in degrees,
+ double l = L(T) ; // = mean anomaly of the moon, in degrees, and
+ double lp = Lp(T) ; // = mean anomaly of the sun, in degrees.
+ o *= DEG_TO_RAD;
+ f *= DEG_TO_RAD;
+ d *= DEG_TO_RAD;
+ l *= DEG_TO_RAD;
+ lp *= DEG_TO_RAD;
+
+ // line 1 of Table 8.1, period = 5.64 days
+ arg = l+2*f+2*d+2*o;
+ UT1mUT1R -= 0.02e-4 * ::sin(arg);
+ dlodR += 0.3e-5 * ::cos(arg);
+ domegaR -= 0.2e-14 * ::cos(arg);
+ // line 2 of Table 8.1, period = 6.85 days
+ arg = 2*l+2*f+o;
+ UT1mUT1R -= 0.04e-4 * ::sin(arg);
+ dlodR += 0.4e-5 * ::cos(arg);
+ domegaR -= 0.3e-14 * ::cos(arg);
+ // line 3 of Table 8.1, period = 6.86 days
+ arg = 2*l+2*f+2*o;
+ UT1mUT1R -= 0.10e-4 * ::sin(arg);
+ dlodR += 0.9e-5 * ::cos(arg);
+ domegaR -= 0.8e-14 * ::cos(arg);
+ // line 4 of Table 8.1, period = 7.09 days
+ arg = 2*f+2*d+o;
+ UT1mUT1R -= 0.05e-4 * ::sin(arg);
+ dlodR += 0.4e-5 * ::cos(arg);
+ domegaR -= 0.4e-14 * ::cos(arg);
+ // line 5 of Table 8.1, period = 7.10 days
+ arg = 2*f+2*d+2*o;
+ UT1mUT1R -= 0.12e-4 * ::sin(arg);
+ dlodR += 1.1e-5 * ::cos(arg);
+ domegaR -= 0.9e-14 * ::cos(arg);
+ // line 6 of Table 8.1, period = 9.11 days
+ arg = l+2*f;
+ UT1mUT1R -= 0.04e-4 * ::sin(arg);
+ dlodR += 0.3e-5 * ::cos(arg);
+ domegaR -= 0.2e-14 * ::cos(arg);
+ // line 7 of Table 8.1, period = 9.12 days
+ arg = l+2*f+o;
+ UT1mUT1R -= 0.41e-4 * ::sin(arg);
+ dlodR += 2.8e-5 * ::cos(arg);
+ domegaR -= 2.4e-14 * ::cos(arg);
+ // line 8 of Table 8.1, period = 9.13 days
+ arg = l+2*f+2*o;
+ UT1mUT1R -= 0.99e-4 * ::sin(arg);
+ dlodR += 6.8e-5 * ::cos(arg);
+ domegaR -= 5.8e-14 * ::cos(arg);
+ // line 9 of Table 8.1, period = 9.18 days
+ arg = 3*l;
+ UT1mUT1R -= 0.02e-4 * ::sin(arg);
+ dlodR += 0.1e-5 * ::cos(arg);
+ domegaR -= 0.1e-14 * ::cos(arg);
+ // line 10 of Table 8.1, period = 9.54 days
+ arg = -l+2*f+2*d+o;
+ UT1mUT1R -= 0.08e-4 * ::sin(arg);
+ dlodR += 0.5e-5 * ::cos(arg);
+ domegaR -= 0.5e-14 * ::cos(arg);
+ // line 11 of Table 8.1, period = 9.56 days
+ arg = -l+2*f+2*d+2*o;
+ UT1mUT1R -= 0.20e-4 * ::sin(arg);
+ dlodR += 1.3e-5 * ::cos(arg);
+ domegaR -= 1.1e-14 * ::cos(arg);
+ // line 12 of Table 8.1, period = 9.61 days
+ arg = l+2*d;
+ UT1mUT1R -= 0.08e-4 * ::sin(arg);
+ dlodR += 0.5e-5 * ::cos(arg);
+ domegaR -= 0.4e-14 * ::cos(arg);
+ // line 13 of Table 8.1, period = 12.81 days
+ arg = 2*l+2*f-2*d+2*o;
+ UT1mUT1R += 0.02e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 14 of Table 8.1, period = 13.17 days
+ arg = lp+2*f+2*o;
+ UT1mUT1R += 0.03e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 15 of Table 8.1, period = 13.61 days
+ arg = 2*f;
+ UT1mUT1R -= 0.30e-4 * ::sin(arg);
+ dlodR += 1.4e-5 * ::cos(arg);
+ domegaR -= 1.2e-14 * ::cos(arg);
+ // line 16 of Table 8.1, period = 13.63 days
+ arg = 2*f+o;
+ UT1mUT1R -= 3.21e-4 * ::sin(arg);
+ dlodR += 14.8e-5 * ::cos(arg);
+ domegaR -= 12.5e-14 * ::cos(arg);
+ // line 17 of Table 8.1, period = 13.66 days
+ arg = 2*f+2*o;
+ UT1mUT1R -= 7.76e-4 * ::sin(arg);
+ dlodR += 35.7e-5 * ::cos(arg);
+ domegaR -= 30.1e-14 * ::cos(arg);
+ // line 18 of Table 8.1, period = 13.75 days
+ arg = 2*l-o;
+ UT1mUT1R += 0.02e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 19 of Table 8.1, period = 13.78 days
+ arg = 2*l;
+ UT1mUT1R -= 0.34e-4 * ::sin(arg);
+ dlodR += 1.5e-5 * ::cos(arg);
+ domegaR -= 1.3e-14 * ::cos(arg);
+ // line 20 of Table 8.1, period = 13.81 days
+ arg = 2*l+o;
+ UT1mUT1R += 0.02e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 21 of Table 8.1, period = 14.19 days
+ arg = -lp+2*f+2*o;
+ UT1mUT1R -= 0.02e-4 * ::sin(arg);
+ dlodR += 0.1e-5 * ::cos(arg);
+ domegaR -= 0.1e-14 * ::cos(arg);
+ // line 22 of Table 8.1, period = 14.73 days
+ arg = 2*d-o;
+ UT1mUT1R += 0.05e-4 * ::sin(arg);
+ dlodR -= 0.2e-5 * ::cos(arg);
+ domegaR += 0.2e-14 * ::cos(arg);
+ // line 23 of Table 8.1, period = 14.77 days
+ arg = 2*d;
+ UT1mUT1R -= 0.73e-4 * ::sin(arg);
+ dlodR += 3.1e-5 * ::cos(arg);
+ domegaR -= 2.6e-14 * ::cos(arg);
+ // line 24 of Table 8.1, period = 14.80 days
+ arg = 2*d+o;
+ UT1mUT1R -= 0.05e-4 * ::sin(arg);
+ dlodR += 0.2e-5 * ::cos(arg);
+ domegaR -= 0.2e-14 * ::cos(arg);
+ // line 25 of Table 8.1, period = 15.39 days
+ arg = -lp+2*d;
+ UT1mUT1R -= 0.05e-4 * ::sin(arg);
+ dlodR += 0.2e-5 * ::cos(arg);
+ domegaR -= 0.2e-14 * ::cos(arg);
+ // line 26 of Table 8.1, period = 23.86 days
+ arg = l+2*f-2*d+o;
+ UT1mUT1R += 0.05e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 27 of Table 8.1, period = 23.94 days
+ arg = l+2*f-2*d+2*o;
+ UT1mUT1R += 0.10e-4 * ::sin(arg);
+ dlodR -= 0.3e-5 * ::cos(arg);
+ domegaR += 0.2e-14 * ::cos(arg);
+ // line 28 of Table 8.1, period = 25.62 days
+ arg = l+lp;
+ UT1mUT1R += 0.04e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 29 of Table 8.1, period = 26.88 days
+ arg = -l+2*f;
+ UT1mUT1R += 0.05e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 30 of Table 8.1, period = 26.98 days
+ arg = -l+2*f+o;
+ UT1mUT1R += 0.18e-4 * ::sin(arg);
+ dlodR -= 0.4e-5 * ::cos(arg);
+ domegaR += 0.3e-14 * ::cos(arg);
+ // line 31 of Table 8.1, period = 27.09 days
+ arg = -l+2*f+2*o;
+ UT1mUT1R += 0.44e-4 * ::sin(arg);
+ dlodR -= 1.0e-5 * ::cos(arg);
+ domegaR += 0.9e-14 * ::cos(arg);
+ // line 32 of Table 8.1, period = 27.44 days
+ arg = l-o;
+ UT1mUT1R += 0.53e-4 * ::sin(arg);
+ dlodR -= 1.2e-5 * ::cos(arg);
+ domegaR += 1.0e-14 * ::cos(arg);
+ // line 33 of Table 8.1, period = 27.56 days
+ arg = l;
+ UT1mUT1R -= 8.26e-4 * ::sin(arg);
+ dlodR += 18.8e-5 * ::cos(arg);
+ domegaR -= 15.9e-14 * ::cos(arg);
+ // line 34 of Table 8.1, period = 27.67 days
+ arg = l+o;
+ UT1mUT1R += 0.54e-4 * ::sin(arg);
+ dlodR -= 1.2e-5 * ::cos(arg);
+ domegaR += 1.0e-14 * ::cos(arg);
+ // line 35 of Table 8.1, period = 29.53 days
+ arg = d;
+ UT1mUT1R += 0.05e-4 * ::sin(arg);
+ dlodR -= 0.1e-5 * ::cos(arg);
+ domegaR += 0.1e-14 * ::cos(arg);
+ // line 36 of Table 8.1, period = 29.80 days
+ arg = l-lp;
+ UT1mUT1R -= 0.06e-4 * ::sin(arg);
+ dlodR += 0.1e-5 * ::cos(arg);
+ domegaR -= 0.1e-14 * ::cos(arg);
+ // line 37 of Table 8.1, period = 31.66 days
+ arg = -l+2*d-o;
+ UT1mUT1R += 0.12e-4 * ::sin(arg);
+ dlodR -= 0.2e-5 * ::cos(arg);
+ domegaR += 0.2e-14 * ::cos(arg);
+ // line 38 of Table 8.1, period = 31.81 days
+ arg = -l+2*d;
+ UT1mUT1R -= 1.82e-4 * ::sin(arg);
+ dlodR += 3.6e-5 * ::cos(arg);
+ domegaR -= 3.0e-14 * ::cos(arg);
+ // line 39 of Table 8.1, period = 31.96 days
+ arg = -l+2*d+o;
+ UT1mUT1R += 0.13e-4 * ::sin(arg);
+ dlodR -= 0.3e-5 * ::cos(arg);
+ domegaR += 0.2e-14 * ::cos(arg);
+ // line 40 of Table 8.1, period = 32.61 days
+ arg = l-2*f+2*d-o;
+ UT1mUT1R += 0.02e-4 * ::sin(arg);
+ // line 41 of Table 8.1, period = 34.85 days
+ arg = -l-lp+2*d;
+ UT1mUT1R -= 0.09e-4 * ::sin(arg);
+ dlodR += 0.2e-5 * ::cos(arg);
+ domegaR -= 0.1e-14 * ::cos(arg);
+
+ //End Code implementing Table 8.1 IERS Conventions 1996 UT1R tide series.
+ //-----------------------------------------------------------------------
+ }
+
+ //---------------------------------------------------------------------------------
+ // Compute the Greenwich hour angle of the true vernal equinox, or
+ // Greenwich Apparent Sidereal Time (GAST) in radians,
+ // given the (UT) time of interest t, and, where T = CoordTransTime(t),
+ // o = Omega(T) = mean longitude of lunar ascending node, in degrees,
+ // eps = the obliquity of the ecliptic, in degrees,
+ // dpsi = nutation in longitude (counted in the ecliptic),
+ // in seconds of arc.
+ //
+ // GAST = Greenwich hour angle of the true vernal equinox
+ // GAST = GMST + dpsi*cos(eps) + 0.00264" * sin(Omega) +0.000063" * sin(2*Omega)
+ // (these terms account for the accumulated precession and nutation in
+ // right ascension and minimize any discontinuity in UT1)
+ //
+ // GMST = Greenwich hour angle of the mean vernal equinox
+ // = Greenwich Mean Sideral Time
+ // = GMST0 + r*[UTC + (UT1-UTC)]
+ // r = is the ratio of universal to sidereal time
+ // = 1.002737909350795 + 5.9006E-11*T' - 5.9e-15*T'^2
+ // T' = days'/36525
+ // days'= number of days elapsed since the Julian Epoch t0 (J2000)
+ // = +/-(integer+0.5)
+ // and
+ // (UT1-UTC) (seconds) is taken from the IERS bulletin
+ //
+ // GMST0 = GMST at 0h UT1
+ // = 6h 41min (50.54841+8640184.812866*T'+0.093104*T'^2-6.2E-6*T'^3)sec
+ //
+ // see pg 21 of the Reference (IERS 1996).
+ double GeodeticFrames::gast(DayTime t,
+ double om,
+ double eps,
+ double dpsi,
+ double UT1mUTC)
+ throw()
+ {
+ double G = GMST(t,UT1mUTC);
+ // add dpsi, eps and Omega terms
+ om *= DEG_TO_RAD;
+ eps *= DEG_TO_RAD;
+ G += ( dpsi * ::cos(eps)
+ + 0.00264 * ::sin(om)
+ + 0.000063 * ::sin(2.0*om) ) * DEG_TO_RAD / 3600.0;
+
+ return G;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Compute the precession matrix, a 3x3 rotation matrix, given T,
+ // the coordinate transformation time at the time of interest
+ Matrix<double> GeodeticFrames::PrecessionMatrix(double T)
+ throw(InvalidRequest)
+ {
+ try {
+ // IAU76 - ref McCarthy - seconds of arc
+ double zeta = T*(2306.2181 + T*(0.30188 + T*0.017998));
+ double theta = T*(2004.3109 - T*(0.42665 + T*0.041833));
+ double z = T*(2306.2181 + T*(1.09468 + T*0.018203));
+
+ // convert to degrees
+ zeta /= 3600.0;
+ theta /= 3600.0;
+ z /= 3600.0;
+
+ Matrix<double> R1 = rotation(-zeta*DEG_TO_RAD, 3);
+ Matrix<double> R2 = rotation(theta*DEG_TO_RAD, 2);
+ Matrix<double> R3 = rotation(-z*DEG_TO_RAD, 3);
+ Matrix<double> P = R3*R2*R1;
+
+ return P;
+ }
+ catch(InvalidRequest& ire) {
+ GPSTK_RETHROW(ire);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Compute the nutation matrix, given
+ // eps, the obliquity of the ecliptic, in degrees,
+ // dpsi, the nutation in longitude (counted in the ecliptic),
+ // in seconds of arc, and
+ // deps, the nutation in obliquity, in seconds of arc.
+ Matrix<double> GeodeticFrames::NutationMatrix(double eps,
+ double dpsi,
+ double deps)
+ throw(InvalidRequest)
+ {
+ Matrix<double> N;
+ try {
+ Matrix<double> R1 = rotation(-eps*DEG_TO_RAD, 1);
+ Matrix<double> R2 = rotation(dpsi*DEG_TO_RAD/3600.0, 3);
+ Matrix<double> R3 = rotation((eps+deps/3600.0)*DEG_TO_RAD, 1);
+ N = R1*R2*R3;
+ return N;
+ }
+ catch(InvalidRequest& ire) {
+ GPSTK_RETHROW(ire);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // public functions
+
+ //---------------------------------------------------------------------------------
+ // Compute Greenwich Mean Sidereal Time, or the Greenwich hour angle of
+ // the mean vernal equinox, given the coordinate time of interest,
+ // and UT1-UTC (sec), which comes from the IERS bulletin.
+ // @param t DayTime epoch of the rotation.
+ // @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ // @param reduced, bool true when UT1mUTC is 'reduced', meaning assumes
+ // 'no tides', as is the case with the NGA EOPs (default=F).
+ double GeodeticFrames::GMST(DayTime t,
+ double UT1mUTC,
+ bool reduced)
+ throw()
+ {
+ // days' since epoch = +/-(integer+0.5)
+ double days = double(t.JD() - JulianEpoch) - 1.0 + t.secOfDay()/86400.0;
+ int d=int(days);
+ if(d < 0 && days==double(d)) d++;
+ days = d + (days<0.0 ? -0.5 : 0.5);
+ double Tp = days/36525.0;
+
+ // Compute GMST in radians
+ // First compute GMST0
+ double G;
+ //G = 24060.0 + 50.54841 + 8640184.812866*Tp; // seconds (24060s = 6h 41min)
+ //G /= 86400.0; // instead, divide the above equation by 86400.0 manually...
+ G = 0.27847222 + 0.00058505104167 + 100.0021390378009*Tp;
+ G += (0.093104 - 6.2e-6*Tp)*Tp*Tp/86400.0; // seconds/86400 = circles
+
+ // if reduced, compute tidal terms
+ if(reduced) {
+ double dlodR,domegaR,UT1mUT1R;
+ UT1mUTCTidalCorrections(CoordTransTime(t), UT1mUT1R, dlodR, domegaR);
+ UT1mUTC = UT1mUT1R-UT1mUTC;
+ }
+
+ // now get GMST
+ double r=1.002737909350795 + (5.9006e-11 - 5.9e-15*Tp)*Tp;
+ G += r*(UT1mUTC + t.secOfDay() - 13.0)/86400.0; // circles
+ G *= TWO_PI; // radians
+
+ return G;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Compute Greenwich Apparent Sidereal Time, or the Greenwich hour angle of
+ // the true vernal equinox, given the coordinate time of interest,
+ // and UT1-UTC (sec), which comes from the IERS bulletin.
+ // @param t DayTime epoch of the rotation.
+ // @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ double GeodeticFrames::GAST(DayTime t,
+ double UT1mUTC,
+ bool reduced)
+ throw()
+ {
+ double T = CoordTransTime(t);
+ double o = Omega(T);
+ double eps = Obliquity(T);
+ double deps,dpsi;
+
+ NutationAngles(T,deps,dpsi); // deps is not used...
+
+ // if reduced (NGA), correct for tides
+ double UT1mUT1R,dlodR,domegaR;
+ if(reduced)
+ UT1mUTCTidalCorrections(T, UT1mUT1R, dlodR, domegaR);
+
+ return gast(t, o, eps, dpsi, reduced ? UT1mUT1R-UT1mUTC : UT1mUTC);
+ }
+
+ //---------------------------------------------------------------------------------
+ // Generate transformation matrix (3X3 rotation) due to polar motion (xp,yp)
+ // xp and yp are in arc seconds, as found in the IERS bulletin
+ Matrix<double> GeodeticFrames::PolarMotion(double xp,
+ double yp)
+ throw(InvalidRequest)
+ {
+ try {
+ xp *= DEG_TO_RAD/3600.0;
+ yp *= DEG_TO_RAD/3600.0;
+ Matrix<double> R1,R2;
+ R1 = rotation(yp,1);
+ R2 = rotation(xp,2);
+ return (R1*R2);
+ }
+ catch(InvalidRequest& ire) {
+ GPSTK_RETHROW(ire);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Generate precise transformation matrix (3X3 rotation) due to Earth rotation
+ // at Greenwich hour angle of the true vernal equinox and which accounts for
+ // precession and nutation in right ascension, given the UT time of interest
+ // and the UT1-UTC correction (in sec), obtained from the IERS bulletin.
+ Matrix<double> GeodeticFrames::PreciseEarthRotation(DayTime t,
+ double UT1mUTC,
+ bool reduced)
+ throw(InvalidRequest)
+ {
+ try {
+ return (rotation(-GAST(t,UT1mUTC,reduced),3));
+ }
+ catch(InvalidRequest& ire) {
+ GPSTK_RETHROW(ire);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Generate an Earth Nutation Matrix (3X3 rotation) at the given DayTime.
+ // @param t DayTime epoch of the rotation.
+ Matrix<double> GeodeticFrames::Nutation(DayTime t)
+ throw(InvalidRequest)
+ {
+ try {
+ double T=CoordTransTime(t);
+ double eps=Obliquity(T); // degrees
+ double deps,dpsi;
+
+ NutationAngles(T,deps,dpsi);
+
+ return NutationMatrix(eps,dpsi,deps);
+ }
+ catch(InvalidRequest& ire) {
+ GPSTK_RETHROW(ire);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Generate the full transformation matrix (3x3 rotation) relating the ECEF
+ // frame to the conventional inertial frame.
+ // throw(); Input is the time of interest,
+ // the polar motion angles xp and yp (arcseconds), and UT1-UTC (seconds)
+ // (xp,yp and UT1-UTC are just as found in the IERS bulletin).
+ Matrix<double> GeodeticFrames::ECEFtoInertial(DayTime t,
+ double xp,
+ double yp,
+ double UT1mUTC,
+ bool reduced)
+ throw(InvalidRequest)
+ {
+ try {
+ Matrix<double> P,N,W,S;
+
+ double T=CoordTransTime(t);
+ P = PrecessionMatrix(T);
+
+ double eps=Obliquity(T); // degrees
+ double deps,dpsi;
+ NutationAngles(T,deps,dpsi);
+ N = NutationMatrix(eps,dpsi,deps);
+
+ // PolarMotion converts xp, yp to radians
+ W = PolarMotion(xp, yp);
+
+ // if reduced (NGA), correct UT1mUTC for tides
+ double UT1mUT1R,dlodR,domegaR;
+ if(reduced)
+ UT1mUTCTidalCorrections(T, UT1mUT1R, dlodR, domegaR);
+
+ double omega = Omega(T);
+ double g = gast(t, omega, eps, dpsi, reduced ? UT1mUT1R-UT1mUTC : UT1mUTC);
+ S = rotation(-g,3);
+
+ return (P*N*W*S);
+ }
+ catch(InvalidRequest& ire) {
+ GPSTK_RETHROW(ire);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Given a rotation matrix R (3x3), inverse(R)=transpose(R),
+ // find the Euler angles (theta,phi,psi) which produce this rotation,
+ // and also determine the magnitude (alpha) and direction (nhat = unit 3-vector)
+ // of the net rotation.
+ // Throw InvalidRequest if the matrix is not a rotation matrix.
+ //
+ // Euler angles (this is one convention - there are others):
+ // Let R1 = rotation about z through angle phi
+ // R2 = rotation about x through angle theta ( 0 <= theta <= pi)
+ // R3 = rotation about z through angle psi
+ // Any rotation matrix can be expressed as the product of these rotations:
+ // R = R3*R2*R1. In particular, by definition
+ //
+ // [ cos(phi) sin(phi) 0 ]
+ // R1 = [ -sin(phi) cos(phi) 0 ]
+ // [ 0 0 1 ]
+ //
+ // [ cos(theta) 0 -sin(theta) ]
+ // R2 = [ 0 1 0 ]
+ // [ sin(theta) 0 cos(theta) ]
+ //
+ // [ cos(psi) sin(psi) 0 ]
+ // R3 = [ -sin(psi) cos(psi) 0 ]
+ // [ 0 0 1 ]
+ //
+ // and if we define
+ // [ r11 r12 r13 ]
+ // R = [ r21 r22 r23 ]
+ // [ r31 r32 r33 ]
+ //
+ // then
+ // r11 = cos(phi)cos(psi) - cos(theta)sin(phi)sin(psi)
+ // r12 = sin(phi)cos(psi) + cos(theta)cos(phi)sin(psi)
+ // r13 = sin(psi)sin(theta)
+ // r21 = -cos(phi)sin(psi) - cos(theta)sin(phi)cos(psi)
+ // r22 = -sin(phi)sin(psi) + cos(theta)cos(phi)cos(psi)
+ // r23 = cos(psi)sin(theta)
+ // r31 = sin(phi)sin(theta)
+ // r32 = -cos(phi)sin(theta)
+ // r33 = cos(theta)
+ //
+ // This can be inverted to get theta,phi,psi by
+ // cos(theta) = r33
+ // sin(theta) = +sqrt(1-cos^2(theta)) [recall 0 <= theta <= pi]
+ // cos(phi) = -r32/sin(theta) [if sin(theta) != 0]
+ // sin(phi) = r31/sin(theta)
+ // cos(psi) = r23/sin(theta)
+ // sin(psi) = r13/sin(theta)
+ // or better
+ // theta = acos(r33)
+ // phi = atan2(r31,-r32)
+ // psi = atan2(r13,r23)
+ //
+ // If sin(theta) == 0 then cos(theta) = {+1 OR -1}, theta = {0 OR pi},
+ // and (refer to R3*R2*R1 above), R becomes
+ // [ cos(phi+psi) sin(phi+psi) 0 ] OR [ cos(phi-psi) sin(phi-psi) 0 ]
+ // R = [ -sin(phi+psi) cos(phi+psi) 0 ] OR [ sin(phi-psi) -cos(phi-psi) 0 ]
+ // [ 0 0 1 ] OR [ 0 0 -1 ]
+ // and thus
+ // cos(phi+psi) = r11 = r22 OR cos(phi-psi) = r11 = -r22
+ // sin(phi+psi) = r12 = -r21 OR sin(phi-psi) = r12 = r21
+ //
+ // Now let E = e0,e1,e2,e3 = (e0,e) = quaternion [scalar (e0) and 3-vector (e)].
+ // E describes a rotation (through angle alpha) about axis (unit vector) nhat as
+ // cos(alpha) = 2e0^2-1 = e0^2-dot(e,e) = e0^2 - sum_squares(ei,i=1,2,3).
+ // nhat * sin(alpha) = 2e*e0 or
+ // nhat = (e1,e2,e3)/dot(e,e)
+ // [e0^2 + dot(e,e) = sum_squares(ei,i=1,2,3,4) = 1 by identity].
+ // It can be shown that the Euler rotation is equal to the quaternion
+ // e0 = cos[(phi+psi)/2]*cos(theta/2)
+ // e1 = sin[(phi-psi)/2]*sin(theta/2)
+ // e2 = cos[(phi-psi)/2]*sin(theta/2)
+ // e3 = sin[(phi+psi)/2]*cos(theta/2)
+ // and
+ // rij = dij(e0^2-ekek)+2eiej+2(epsijk)e0ek
+ // where dij is the Kroncker delta and epsijk is the permutation symbol;
+ // r11 = e0^2 + e1^2 - e2^2 - e3^2
+ // r12 = 2(e1e2 + e0e3)
+ // r13 = 2(e1e3 - e0e2)
+ // r21 = 2(e1e2 - e0e3)
+ // r22 = e0^2 - e1^2 + e2^2 - e3^2
+ // r23 = 2(e2e3 + e0e1)
+ // r31 = 2(e1e3 + e0e2)
+ // r32 = 2(e2e3 - e0e1)
+ // r33 = e0^2 - e1^2 - e2^2 + e3^2
+ //
+ // If theta=0 this reduces trivially to a simple rotation about z thru phi+psi
+ // e0 = cos[(phi+psi)/2]
+ // e1 = e2 = 0
+ // e3 = sin[(phi+psi)/2]
+ // alpha = phi+psi (phi and psi cannot be separated)
+ // nhat = (0,0,1)
+ // while if theta=pi it reduces to
+ // e0 = e3 = 0
+ // e1 = sin[(phi-psi)/2]
+ // e2 = cos[(phi-psi)/2]
+ // alpha = pi
+ // nhat = (e1,e2,0) (dot(e,e)=1)
+ void GeodeticFrames::ResolveRotation(const Matrix<double>& R,
+ double& theta,
+ double& phi,
+ double& psi,
+ double& alpha,
+ Vector<double>& nhat)
+ throw(InvalidRequest)
+ {
+ if(R.rows() != 3 || R.cols() != 3) {
+ using namespace StringUtils;
+ InvalidRequest ir(string("Input matrix has dimension ")
+ + asString<int>(R.rows()) + string(",")
+ + asString<int>(R.cols()));
+ GPSTK_THROW(ir);
+ }
+
+ const double tol=1.e-12; // tolerance TD use limits
+ Matrix<double> T=transpose(R)*R-ident<double>(3);
+ if(normF(T) > tol) { // RSS of elements
+ InvalidRequest ir(string("Input matrix is not a rotation"));
+ GPSTK_THROW(ir);
+ }
+
+ // first find the Euler angles
+ double st = SQRT(1.0-R(2,2)*R(2,2));
+ if(st < tol) { // theta is 0 or pi
+ if(R(2,2) > 0.0) theta = 0.0;
+ else theta = PI;
+ psi = 0.0; // arbitrary, since only phi +/- psi can be known
+ // tan(phi) = r12/r11 = sin(phi+/-psi) / cos(phi+/-psi)
+ phi = atan2(R(0,1),R(0,0));
+ }
+ else {
+ theta = ::acos(R(2,2));
+ // tan(psi) = r13/r23 = sin(psi)sin(theta)/cos(psi)sin(theta)
+ psi = ::atan2(R(0,2),R(1,2));
+ // tan(phi) = r31/-r32 = sin(phi)sin(theta)/cos(phi)sin(theta)
+ phi = ::atan2(R(2,0),-R(2,1));
+ }
+
+ // now find the rotation angle alpha and the axis of rotation
+ nhat.resize(3);
+ if(theta == 0.0) {
+ alpha = phi;
+ nhat(0) = nhat(1) = 0.0;
+ nhat(2) = 1.0;
+ }
+ else if(theta == PI) {
+ alpha = PI;
+ nhat(0) = ::sin(phi/2.0);
+ nhat(1) = ::cos(phi/2.0);
+ nhat(2) = 0.0;
+ }
+ else {
+ double e0 = ::cos((phi+psi)/2.0) * ::cos(theta/2.0);
+ alpha = ::acos(2.0*e0*e0-1.0);
+ // construct e, then normalize
+ nhat(0) = ::sin((phi-psi)/2.0) * ::sin(theta/2.0);
+ nhat(1) = ::cos((phi-psi)/2.0) * ::sin(theta/2.0);
+ nhat(2) = ::sin((phi+psi)/2.0) * ::cos(theta/2.0);
+ e0 = norm(nhat);
+ nhat /= e0;
+ }
+ }
+
+} // end namespace gpstk
+/*
+# Table 5.2. IERS 1996 series for nutation in longitude Dpsi and obliquity Deps,
+# referred to the mean equator and equinox of date, with t measured in Julian
+# centuries from epoch J2000.0. The signs of the fundamental arguments, periods,
+# and coefficients may differ from the original publication. These
+# have been changed to be consistent with other portions of this chapter.
+# 263
+# Dpsi = sum { (A_i+A'_i*t)*sin(ARGUMENT) + A''_i*cos(ARGUMENT) }
+# i=1
+#
+# 263
+# Deps = sum { (B_i+B'_i*t)*cos(ARGUMENT) + B''_i*sin(ARGUMENT) }
+# i=1
+# LONGITUDE OBLIQUITY
+#MULTIPLIERS OF: PERIOD (0.001 mas) (0.001 mas)
+# l l' F D Om (days) A A' B B' A'' B''
+ 0 0 0 0 1 -6798.38 -17206277 -17419 9205356 886 3645 1553
+ 0 0 2 -2 2 182.62 -1317014 -156 573058 -306 -1400 -464
+ 0 0 2 0 2 13.66 -227720 -23 97864 -48 269 136
+ 0 0 0 0 2 -3399.18 207429 21 -89747 47 -71 -29
+ 0 -1 0 0 0 -365.26 -147538 364 7388 -19 1121 198
+ 0 1 2 -2 2 121.75 -51687 123 22440 -68 -54 -18
+ 1 0 0 0 0 27.55 71118 7 -687 0 -94 39
+ 0 0 2 0 1 13.63 -38752 -37 20076 2 34 32
+ 1 0 2 0 2 9.13 -30137 -4 12896 -6 77 35
+ 0 -1 2 -2 2 365.22 21583 -49 -9591 30 6 12
+ 0 0 2 -2 1 177.84 12820 14 -6897 -1 18 4
+ -1 0 2 0 2 27.09 12353 1 -5334 3 2 0
+ -1 0 0 2 0 31.81 15699 1 -127 0 -18 9
+ 1 0 0 0 1 27.67 6314 6 -3323 0 3 -1
+ -1 0 0 0 1 -27.44 -5797 -6 3141 0 -19 -8
+ -1 0 2 2 2 9.56 -5965 -1 2554 -1 14 7
+ 1 0 2 0 1 9.12 -5163 -4 2635 0 12 8
+ -2 0 2 0 1 1305.48 4590 5 -2424 -1 1 1
+ 0 0 0 2 0 14.77 6336 1 -125 0 -15 3
+ 0 0 2 2 2 7.10 -3854 0 1643 0 15 6
+ -2 0 0 2 0 -205.89 -4774 0 48 0 -2 -3
+ 2 0 2 0 2 6.86 -3102 0 1323 -1 12 5
+ 1 0 2 -2 2 23.94 2863 0 -1235 1 0 0
+ -1 0 2 0 1 26.98 2044 2 -1076 0 1 0
+ 2 0 0 0 0 13.78 2923 0 -62 0 -8 1
+ 0 0 2 0 0 13.61 2585 0 -56 0 -7 1
+ 0 1 0 0 1 386.00 -1406 -3 857 0 8 -4
+ -1 0 0 2 1 31.96 1517 1 -801 0 1 0
+ 0 2 2 -2 2 91.31 -1578 7 685 -4 -2 -1
+ 0 0 -2 2 0 -173.31 2178 0 -15 0 1 1
+ 1 0 0 -2 1 -31.66 -1286 -1 694 0 -4 -2
+ 0 -1 0 0 1 -346.64 -1269 1 642 1 6 2
+ -1 0 2 2 1 9.54 -1022 -1 522 0 2 1
+ 0 -2 0 0 0 -182.63 -1671 8 14 0 -1 -1
+ 1 0 2 2 2 5.64 -768 0 325 0 4 2
+ -2 0 2 0 0 1095.18 -1102 0 10 0 -1 0
+ 0 1 2 0 2 13.17 757 -2 -326 -2 -1 0
+ 0 0 2 2 1 7.09 -664 -1 335 -1 2 1
+ 0 -1 2 0 2 14.19 -714 2 307 2 1 0
+ 0 0 0 2 1 14.80 -631 -1 327 0 0 0
+ 1 0 2 -2 1 23.86 580 1 -307 0 0 0
+ 2 0 2 -2 2 12.81 643 0 -277 0 -1 0
+ -2 0 0 2 1 -199.84 -579 -1 304 0 -1 0
+ 2 0 2 0 1 6.85 -533 0 269 0 2 1
+ 0 -1 2 -2 1 346.60 -477 -1 271 -1 0 0
+ 0 0 0 -2 1 -14.73 -493 -1 272 0 -2 -1
+ -1 -1 0 2 0 34.85 735 0 -5 0 -1 0
+ 2 0 0 -2 1 212.32 405 0 -220 0 1 0
+ 1 0 0 2 0 9.61 657 0 -20 0 -2 0
+ 0 1 2 -2 1 119.61 361 0 -194 0 1 0
+ 1 -1 0 0 0 29.80 471 0 -4 0 -1 0
+ -2 0 2 0 2 1615.76 -311 0 131 0 0 0
+ 3 0 2 0 2 5.49 -289 0 124 0 2 1
+ 0 -1 0 2 0 15.39 435 0 -9 0 -1 0
+ 1 -1 2 0 2 9.37 -287 0 123 0 1 0
+ -1 -1 2 2 2 9.81 -282 0 122 0 1 0
+ 0 0 0 1 0 29.53 -422 0 3 0 1 0
+ -1 0 2 0 0 26.88 -404 0 4 0 1 0
+ 0 -1 2 2 2 7.24 -264 0 114 0 1 0
+ -2 0 0 0 1 -13.75 -228 0 126 0 -1 0
+ 1 1 2 0 2 8.91 246 0 -106 0 -1 0
+ 2 0 0 0 1 13.81 218 0 -114 0 0 0
+ -1 1 0 1 0 3232.87 327 0 -1 0 0 0
+ 1 1 0 0 0 25.62 -338 0 4 0 0 0
+ 1 0 2 0 0 9.11 334 0 -11 0 -1 0
+ -1 0 2 -2 1 -32.61 -199 0 107 0 -1 0
+ 1 0 0 0 2 27.78 -197 0 85 0 0 0
+ -1 0 0 1 0 -411.78 405 0 -55 0 -35 -14
+ 0 0 2 1 2 9.34 165 0 -72 0 0 0
+ -1 0 2 4 2 5.80 -151 0 66 0 1 0
+ 0 -2 2 -2 1 6786.31 -130 0 69 0 0 0
+ -1 1 0 1 1 6164.17 132 0 -68 0 0 0
+ 1 0 2 2 1 5.64 -133 0 66 0 1 0
+ -2 0 2 2 2 14.63 139 0 -60 0 0 0
+ -1 0 0 0 2 -27.33 139 0 -60 0 0 0
+ 1 1 2 -2 2 22.47 128 0 -55 0 0 0
+ -2 0 2 4 2 7.35 -121 0 52 0 0 0
+ -1 0 4 0 2 9.06 115 0 -49 0 0 0
+ 2 0 2 -2 1 12.79 101 0 -54 0 0 0
+ 2 0 2 2 2 4.68 -108 0 47 0 1 0
+ 1 0 0 2 1 9.63 -95 0 49 0 0 0
+ 3 0 0 0 0 9.18 157 0 -5 0 -1 0
+ 3 0 2 -2 2 8.75 94 0 -40 0 0 0
+ 0 0 4 -2 2 12.66 91 0 -39 0 0 0
+ 0 0 -2 2 1 -169.00 87 0 -44 0 0 0
+ 0 1 2 0 1 13.14 81 0 -42 0 0 0
+ 0 0 2 -2 3 187.66 123 0 -20 0 0 0
+ -1 0 0 4 0 10.08 133 0 -4 0 0 0
+ 2 0 -2 0 1 -943.23 71 0 -38 0 0 0
+ 2 0 0 -4 0 -15.91 -128 0 1 0 0 0
+ -1 -1 0 2 1 35.03 75 0 -39 0 0 0
+ -2 -1 0 2 0 -131.67 -115 0 1 0 0 0
+ 0 -1 2 0 1 14.16 -66 0 35 0 0 0
+ -1 0 0 1 1 -388.27 101 0 -49 0 -3 -1
+ 0 0 -2 0 1 -13.58 -68 0 36 0 0 0
+ 0 1 0 0 2 409.23 69 0 -33 0 -1 0
+ 0 0 2 -1 2 25.42 -74 0 31 0 0 0
+ 0 0 2 4 2 4.79 -69 0 29 0 0 0
+ 1 1 0 -2 1 -34.67 -61 0 32 0 0 0
+ -1 1 0 2 0 29.26 -94 0 0 0 0 0
+ 1 -1 2 2 2 5.73 -59 0 25 0 0 0
+ 1 -1 0 0 1 29.93 51 0 -27 0 0 0
+ 0 1 -2 2 0 -329.79 -90 0 3 0 0 0
+ 3 0 2 0 1 5.49 -50 0 25 0 0 0
+ -1 1 2 2 2 9.31 56 0 -24 0 0 0
+ 0 1 2 2 2 6.96 54 0 -22 0 0 0
+ -1 0 0 -2 1 -9.60 -50 0 27 0 0 0
+ -1 1 0 1 2 66079.30 -52 0 23 0 0 0
+ 0 -1 2 2 1 7.23 -44 0 24 0 0 0
+ 1 0 2 -4 1 -38.74 -47 0 24 0 0 0
+ -1 0 -2 2 0 -23.77 77 0 0 0 0 0
+ -1 -1 2 2 1 9.80 -46 0 24 0 0 0
+ 0 -1 0 0 2 -329.82 59 0 -25 0 0 0
+ 2 -1 2 0 2 6.99 -48 0 21 0 0 0
+ 1 -1 2 0 1 9.35 -42 0 22 0 0 0
+ 0 0 0 2 2 14.83 -46 0 20 0 0 0
+ 0 1 0 2 0 14.19 -67 0 0 0 0 0
+ -1 1 2 0 2 25.22 47 0 -20 0 0 0
+ 0 3 2 -2 2 73.05 -44 0 19 0 0 0
+ 0 -1 -2 2 0 -117.54 66 0 0 0 0 0
+ 0 0 0 1 1 29.66 -37 0 20 0 0 0
+ 1 0 -2 -2 0 -9.53 -64 0 1 0 0 0
+ 1 1 2 0 1 8.90 36 0 -18 0 0 0
+ 2 1 2 0 2 6.73 40 0 -17 0 0 0
+ 0 1 0 1 0 27.32 57 0 0 0 0 0
+ 1 0 -2 2 0 32.76 -58 0 0 0 0 0
+ 1 1 0 0 1 25.72 -34 0 19 0 0 0
+ -2 0 0 -2 0 -7.13 -59 0 1 0 0 0
+ -1 0 0 2 2 32.11 -38 0 17 0 0 0
+ 0 0 0 -1 1 -29.40 33 0 -18 0 0 0
+ 0 1 0 -2 1 -15.35 -33 0 18 0 0 0
+ -1 0 2 -2 2 -32.45 36 0 -16 0 0 0
+ -1 1 0 0 1 -29.67 -31 0 17 0 0 0
+ 1 0 2 1 2 6.98 33 0 -14 0 0 0
+ 0 0 0 -4 0 -7.38 -48 0 1 0 0 0
+ 0 0 2 1 1 9.33 27 0 -14 0 0 0
+ 1 0 0 -2 2 -31.52 32 0 -14 0 0 0
+ 1 0 2 -1 2 13.22 -33 0 13 0 0 0
+ 1 -1 0 2 0 9.87 48 0 0 0 0 0
+ -1 0 2 4 1 5.80 -26 0 13 0 0 0
+ 0 0 -2 -2 0 -7.08 -41 0 1 0 0 0
+ 1 0 -2 0 1 -26.77 27 0 -14 0 0 0
+ -1 0 2 -1 1 313.04 -23 0 14 0 0 0
+ 1 1 2 -2 1 22.40 23 0 -12 0 0 0
+ 4 0 2 0 2 4.58 -26 0 11 0 0 0
+ 0 1 2 1 2 9.11 -24 0 10 0 0 0
+ -2 0 -2 0 0 -6.85 -36 0 1 0 0 0
+ 2 1 2 -2 2 12.38 25 0 -10 0 0 0
+ 2 -1 0 0 0 14.32 38 0 0 0 0 0
+ -1 -1 0 0 1 -25.53 21 0 -12 0 0 0
+ -2 0 2 2 1 14.60 22 0 -11 0 0 0
+ 0 0 0 0 3 -2266.12 -22 0 10 0 0 0
+ 1 0 4 -2 2 8.68 23 0 -9 0 0 0
+ 2 0 2 2 1 4.68 -19 0 10 0 0 0
+ -2 0 2 4 1 7.34 -20 0 10 0 0 0
+ 0 1 0 2 1 14.22 18 0 -9 0 0 0
+ 1 0 0 1 0 14.25 -33 0 0 0 0 0
+ -1 0 0 4 1 10.10 -18 0 9 0 0 0
+ -1 0 4 0 1 9.05 19 0 -9 0 0 0
+ 0 0 2 -3 2 -35.23 -20 0 8 0 0 0
+ 0 0 4 0 2 6.82 19 0 -8 0 0 0
+ 2 1 0 0 0 13.28 -28 0 0 0 0 0
+ 0 0 2 -4 1 -16.10 -16 0 9 0 0 0
+ -1 -1 2 4 2 5.90 -17 0 7 0 0 0
+ -1 -2 0 2 0 38.52 27 0 0 0 0 0
+ 0 0 0 4 1 7.39 -16 0 7 0 0 0
+ 0 -1 0 2 1 15.42 -14 0 7 0 0 0
+ 1 0 2 4 2 4.08 -16 0 7 0 0 0
+ -2 0 0 2 2 -194.13 18 0 -8 0 0 0
+ -2 2 0 2 0 1616.44 -22 0 0 0 0 0
+ -2 -1 2 0 1 -507.16 9 0 -5 0 0 0
+ -3 0 0 0 1 -9.17 -14 0 7 0 0 0
+ 0 0 2 0 3 13.69 20 0 0 0 0 0
+ 0 0 2 4 1 4.79 -12 0 6 0 0 0
+ 0 0 4 -2 1 12.64 12 0 -7 0 0 0
+ 0 -2 0 2 0 16.06 21 0 0 0 0 0
+ 1 0 0 -1 1 438.33 17 0 -5 0 -3 1
+ 1 1 2 2 2 5.56 15 0 -6 0 0 0
+ 3 0 2 -2 1 8.73 12 0 -7 0 0 0
+ -1 -1 2 0 2 29.26 -16 0 6 0 0 0
+ -2 -1 0 2 1 -129.17 -13 0 7 0 0 0
+ 0 0 0 -2 2 -14.70 13 0 -5 0 0 0
+ 0 -2 2 2 2 7.38 -13 0 5 0 0 0
+ 1 0 0 -4 1 -10.07 -12 0 6 0 0 0
+ -1 1 0 2 1 29.39 -10 0 6 0 0 0
+ -2 0 0 4 1 15.94 11 0 -6 0 0 0
+ 0 0 2 -1 1 25.33 -10 0 5 0 0 0
+ 0 2 0 0 1 187.67 -9 0 5 0 0 0
+ 0 2 2 -2 1 90.10 8 0 -5 0 0 0
+ 2 0 0 2 1 7.13 -9 0 5 0 0 0
+ 2 0 0 -4 1 -15.87 -11 0 5 0 0 0
+ 2 0 2 -4 1 95.42 10 0 -5 0 0 0
+ -1 0 -2 0 1 -9.10 -10 0 5 0 0 0
+ -1 1 2 0 1 25.13 9 0 -5 0 0 0
+ -1 1 2 -2 1 -35.80 -11 0 5 0 0 0
+ -1 -1 0 4 0 10.37 15 0 0 0 0 0
+ -3 0 0 4 0 37.63 16 0 0 0 0 0
+ 3 0 2 2 2 4.00 -14 0 0 0 0 0
+ 2 -1 0 -2 0 471.89 -9 0 1 0 -1 0
+ 0 2 -2 2 0 -3396.16 -9 0 0 0 0 0
+ 0 -1 2 4 2 4.86 -9 0 0 0 0 0
+ 0 -1 2 -1 2 27.32 9 0 0 0 0 0
+ 1 1 0 2 0 9.37 -10 0 0 0 0 0
+ 2 0 0 -2 2 219.17 -11 0 0 0 0 0
+ 2 -1 2 2 2 4.74 -9 0 0 0 0 0
+ 4 0 0 0 0 6.89 9 0 0 0 0 0
+ 4 0 2 -2 2 6.64 12 0 0 0 0 0
+ -1 0 0 3 0 15.31 -10 0 0 0 0 0
+ -1 0 4 -2 2 23.43 -9 0 0 0 0 0
+ -1 -2 2 2 2 10.08 -9 0 0 0 0 0
+ -2 -1 0 4 0 16.63 12 0 0 0 0 0
+ -2 -1 2 4 2 7.50 -12 0 0 0 0 0
+ 0 1 2 2 1 6.95 7 0 0 0 0 0
+ 0 2 2 0 2 12.71 7 0 0 0 0 0
+ 0 -2 2 0 2 14.77 -8 0 0 0 0 0
+ 1 0 0 4 0 5.82 8 0 0 0 0 0
+ 1 0 2 2 0 5.63 8 0 0 0 0 0
+ 1 0 2 -4 2 -38.52 7 0 0 0 0 0
+ 1 -1 2 2 1 5.73 -8 0 0 0 0 0
+ 1 -1 2 -2 2 25.62 -7 0 0 0 0 0
+ 1 -2 0 0 0 32.45 8 0 0 0 0 0
+ 2 0 0 0 2 13.83 -8 0 0 0 0 0
+ 2 1 0 -2 1 134.27 8 0 0 0 0 0
+ 3 0 0 0 1 9.20 7 0 0 0 0 0
+ -1 0 2 1 2 14.13 8 0 0 0 0 0
+ -1 0 2 3 2 7.22 8 0 0 0 0 0
+ -1 0 -2 4 0 38.96 -7 0 0 0 0 0
+ -1 1 2 2 1 9.30 7 0 0 0 0 0
+ -1 2 0 2 0 27.09 -8 0 0 0 0 0
+ -1 -1 2 -1 1 2189.73 7 0 0 0 0 0
+ -2 0 2 -2 1 -14.93 -8 0 0 0 0 0
+ -2 0 4 0 2 13.49 -7 0 0 0 0 0
+ -2 0 -2 2 0 -12.76 8 0 0 0 0 0
+ -2 1 2 0 1 285.41 9 0 0 0 0 0
+ -3 0 2 0 1 -28.15 -8 0 0 0 0 0
+ 0 1 0 1 1 27.43 5 0 0 0 0 0
+ 0 -1 0 4 0 7.53 6 0 0 0 0 0
+ 0 -1 0 -2 1 -14.16 5 0 0 0 0 0
+ 0 -2 0 0 1 -177.85 -6 0 0 0 0 0
+ 1 0 2 1 1 6.97 5 0 0 0 0 0
+ 1 0 2 -3 2 126.51 -6 0 0 0 0 0
+ 1 0 -2 1 0 -299.26 -7 0 0 0 0 0
+ 1 1 0 1 0 13.72 5 0 0 0 0 0
+ 1 -1 0 -2 1 -29.14 6 0 0 0 0 0
+ 2 0 2 -1 2 8.93 -6 0 0 0 0 0
+ 2 1 2 0 1 6.73 5 0 0 0 0 0
+ 2 -1 2 0 1 6.98 -6 0 0 0 0 0
+ 2 -1 2 -2 2 13.28 5 0 0 0 0 0
+ 3 0 0 2 0 5.66 5 0 0 0 0 0
+ 3 -1 2 0 2 5.58 -5 0 0 0 0 0
+ -1 -1 2 0 1 29.14 -6 0 0 0 0 0
+ -2 0 0 0 2 -13.72 6 0 0 0 0 0
+ -2 0 0 3 0 34.48 -5 0 0 0 0 0
+ -2 0 0 -2 1 -7.12 -5 0 0 0 0 0
+ -2 0 2 2 0 14.57 -6 0 0 0 0 0
+ -2 -1 2 0 0 -548.04 -5 0 0 0 0 0
+ -2 -1 2 2 2 15.24 6 0 0 0 0 0
+ 0 0 1 0 0 27.21 0 0 0 0 8 0
+ 0 0 1 0 1 27.32 0 0 0 0 -16 -14
+ -1 0 1 0 0 2190.35 0 0 0 0 33 0
+ -1 0 1 0 1 3231.51 0 0 0 0 -105 -89
+ -1 0 1 0 2 6159.22 0 0 0 0 36 18
+ -1 0 1 0 3 65514.10 0 0 0 0 -6 0
+# end of table 5.2
+*/
diff --git a/dev/apps/geomatics/lib/GeodeticFrames.hpp b/dev/apps/geomatics/lib/GeodeticFrames.hpp
new file mode 100644
index 0000000..2fad8bf
--- /dev/null
+++ b/dev/apps/geomatics/lib/GeodeticFrames.hpp
@@ -0,0 +1,483 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file GeodeticFrames.hpp
+ * Include file defining the GeodeticFrames class.
+ * class gpstk::GeodeticFrames encapsulates frame transformations between the
+ * conventional terrestrial frame and the conventional inertial frame, as defined
+ * by the reference. It implements models of precession and nutation of
+ * Earth's axis, as well as the precise rotation of Earth and its 'wobble'
+ * as given by the Earth orientation parameters (see class EarthOrientation).
+ * Reference: IERS Technical Note 21, IERS Conventions (1996),
+ * Dennis D. McCarthy, U.S. Naval Observatory, especially Chapter 5.
+ */
+
+//------------------------------------------------------------------------------------
+#ifndef CLASS_GEODETICFRAMES_INCLUDE
+#define CLASS_GEODETICFRAMES_INCLUDE
+
+//------------------------------------------------------------------------------------
+// GPSTk includes
+#include "Exception.hpp"
+#include "DayTime.hpp"
+#include "Matrix.hpp"
+
+//------------------------------------------------------------------------------------
+namespace gpstk
+{
+
+ /** Class GeodeticFrames encapsulates frame transformations between the
+ * conventional terrestrial frame and the conventional inertial frame, as defined
+ * by the reference. It implements models of precession and nutation (IERS 1996)
+ * of Earth's axis, as well as the precise rotation of Earth and its 'wobble'
+ * as given by the Earth orientation parameters (see class EarthOrientation).
+ *
+ * Reference: IERS Technical Note 21, IERS Conventions (1996),
+ * Dennis D. McCarthy, U.S. Naval Observatory.
+ *
+ * The conventional terrestrial system (CTS) or Earth-centered,
+ * Earth-fixed frame (ECEF), is related to the conventional inertial system
+ * (CIS) by four things: a) precession and b) nutation of the Earth and
+ * c) Earth rotation and d) polar motion. The transformation between a vector
+ * X(CTS) in the terrestrial (ECEF) frame and the vector X(CIS) in the inertial
+ * frame is
+ *
+ * <pre>
+ * X(CIS) = P * N * R * W * X(CTS)
+ * where
+ * W is the transformation using Earth Orientation Parameters
+ * xp, yp (pole coordinates obtained from the IERS bulletin),
+ * R is the effect of both Earth rotation and
+ * precession and nutation in the right ascension,
+ * N is the nutation matrix,
+ * P is the precession matrix.
+ *
+ * Reference: IERS Technical Note 21, IERS Conventions (1996), Chapter 5.
+ *
+ * IF
+ * R1(a) = [ 1 0 0 ]
+ * [ 0 cos(a) sin(a) ]
+ * [ 0 -sin(a) cos(a) ]
+ *
+ * R2(b) = [ cos(b) 0 -sin(b) ]
+ * [ 0 1 0 ]
+ * [ sin(b) 0 cos(b) ]
+ *
+ * R3(c) = [ cos(c) sin(c) 0 ]
+ * [ -sin(c) cos(c) 0 ]
+ * [ 0 0 1 ]
+ *
+ * and if
+ *
+ * T = (t-t0)(in days)/36525.0 days
+ * where
+ * t0 = J2000 = January 1 2000 12h UT = 2451545.0JD
+ *
+ * THEN ----------------------------------------------------------------
+ * [PRECESSION IAU76]
+ *
+ * P = R3(zeta)*R2(-theta)*R3(z)
+ * where
+ * zeta = 2306.2181*T + 0.30188*T^2 + 0.017998*T^3 seconds of arc
+ * theta = 2004.3109*T - 0.42665*T^2 - 0.041833*T^3 seconds of arc
+ * z = 2306.2181*T + 1.09468*T^2 + 0.018203*T^3 seconds of arc
+ *
+ * AND -----------------------------------------------------------------
+ * [NUTATION IAU76]
+ *
+ * N = R1(-eps)*R3(dpsi)*R1(eps+deps)
+ * where
+ * eps = obliquity of the ecliptic
+ * deps = nutation in obliquity
+ * dpsi = nutation in longitude (counted in the ecliptic)
+ *
+ * eps = (84381.448 - 46.8150*T - 0.00059*T^2 +0.001813*T^3) seconds of arc
+ *
+ * and the principal terms in the series for the other two parameters are
+ * ( " denotes seconds of arc)
+ *
+ * (IAU76)
+ * deps =
+ * ( 9.205356 + 0.000886*T)*cos(Omega)" + 0.001553*sin(Omega)"
+ * + ( 0.573058 - 0.000306*T)*cos(2F-2D+2Omega)"- 0.000464*sin(2F-2D+2Omega)"
+ * + ( 0.097864 - 0.000048*T)*cos(2F+2Omega)" + 0.000136*sin(2F+2Omega)"
+ * + (-0.089747 + 0.000047*T)*cos(2Omega)" - 0.000029*sin(2Omega)"
+ * + ( 0.007388 - 0.000019*T)*cos(-L')" + 0.000198*sin(-L')"
+ * + ( 0.022440 - 0.000068*T)*cos(Larg)" - 0.000018*sin(Larg)"
+ * + (-0.000687 + 0.000000*T)*cos(L)" - 0.000039*sin(L)"
+ * etc...
+ * dpsi =
+ * (-17.206277- 0.017419*T)*sin(Omega)" + 0.003645*cos(Omega)"
+ * + (-1.317014 - 0.000156*T)*sin(2F-2D+2Omega)"- 0.001400*cos(2F-2D+2Omega)"
+ * + (-0.227720 - 0.000023*T)*sin(2F+2Omega)" + 0.000269*cos(2F+2Omega)"
+ * + ( 0.207429 + 0.000021*T)*sin(2Omega)" - 0.000071*cos(2Omega)"
+ * + (-0.147538 + 0.000364*T)*sin(-L')" + 0.001121*cos(-L')"
+ * + (-0.051687 + 0.000123*T)*sin(Larg)" - 0.000054*cos(Larg)"
+ * + ( 0.071118 + 0.000007*T)*sin(L)" - 0.000094*cos(L)"
+ * etc...
+ * OR
+ *
+ * (IERS 1980)
+ * deps = ( 9.2025 + 0.00089*T)*cos(Omega)"
+ * + ( 0.5736 - 0.00031*T)*cos(2F-2D+2Omega)"
+ * + ( 0.0977 - 0.00005*T)*cos(2F+2Omega)"
+ * + (-0.0895 + 0.00005*T)*cos(2Omega)"
+ * + ( 0.0054 - 0.00001*T)*cos(-L')"
+ * + (-0.0007 + 0.00000*T)*cos(L)"
+ * etc...
+ * dpsi = (-17.1996- 0.01742*T)*sin(Omega)"
+ * + (-1.3187 - 0.00016*T)*sin(2F-2D+2Omega)"
+ * + (-0.2274 - 0.00002*T)*sin(2F+2Omega)"
+ * + ( 0.2062 + 0.00002*T)*sin(2Omega)"
+ * + (-0.1426 + 0.00034*T)*sin(-L')"
+ * + ( 0.0712 + 0.00001*T)*sin(L)"
+ * etc...
+ * with
+ *
+ * Larg = L'+2F-2D+2Omega
+ *
+ * Omega = mean longitude of the lunar ascending node
+ * = 125.04455501 degrees - 6962890.2665"*T + 7.4722"*T^2
+ * + 0.007702"*T^3 - 0.00005939"*T^4
+ *
+ * D = mean elongation of the moon from the sun
+ * = 297.85019547 degrees + 1602961601.2090"*T - 6.3706"*T^2
+ * + 0.006593"*T^3 - 0.00003169"*T^4
+ *
+ * F = mean longitude of the moon - Omega
+ * = 93.27209062 degrees + 1739527262.8478"*T - 12.7512"*T^2
+ * - 0.001037"*T^3 + 0.00000417"*T^4
+ *
+ * L' = mean anomaly of the sun
+ * = 357.52910918 degrees + 129596581.0481"*T - 0.5532"*T^2
+ * + 0.000136"*T^3 - 0.00001149"*T^4
+ *
+ * L = mean anomaly of the moon
+ * = 134.96340251 degrees + 1717915923.2178"*T + 31.8792"*T^2
+ * +0.051635"*T^3 -0.00024470"*T^4
+ *
+ * AND -----------------------------------------------------------------
+ *
+ * R = R3(-GAST)
+ *
+ * GAST = Greenwich hour angle of the true vernal equinox
+ * GAST = Greenwich Apparent Sidereal Time
+ * GAST = GMST + dpsi*cos(eps) + 0.00264"*sin(Omega) +0.000063"*sin(2*Omega)
+ * (these terms account for the accumulated precession and nutation in
+ * right ascension and minimize any discontinuity in UT1)
+ *
+ * GMST = Greenwich hour angle of the mean vernal equinox
+ * = Greenwich Mean Sidereal Time
+ * = GMST0 + r*[(UT1-UTC)+UTC]
+ * r = is the ratio of universal to sidereal time
+ * = 1.002737909350795 + 5.9006E-11*T' - 5.9e-15*T'^2
+ * T' = days'/36525
+ * days'= number of days elapsed since t0 = +/-(integer+0.5)
+ * and
+ * (UT1-UTC) is taken from the IERS bulletin (seconds)
+ *
+ * GMST0 = GMST at 0h UT1
+ * = 6h 41m (50.54841+8640184.812866*T'+0.093104*T'^2-6.2E-6*T'^3)s
+ *
+ * AND -----------------------------------------------------------------
+ *
+ * W = R1(yp)*R2(xp)
+ * where xp and yp are the polar coordinates of the celestial ephemeris pole,
+ * taken from the IERS bulletin. (NB in the bulletin they are in units
+ * of arcseconds, and they must be converted to radians by multiplying
+ * by pi/180/3600.)
+ *
+ * </pre>
+ */
+ class GeodeticFrames
+ {
+ //------------------------------------------------------------------------------
+ // constants
+ /// Epoch for the coordinate transformation time, used throughout the formulas
+ /// = J2000 = January 1 2000 12h UT
+ static const long JulianEpoch;
+
+ //------------------------------------------------------------------------------
+ // functions used internally
+ //------------------------------------------------------------------------------
+ /// Compute the 'coordinate transformation time', which is used throughout the
+ /// class, and is essentially the time since J2000 in centuries.
+ /// @param t DayTime time of interest.
+ /// @return coordinate transformation time at t.
+ static double CoordTransTime(DayTime t)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the mean longitude of lunar ascending node, in degrees,
+ /// given T, the CoordTransTime at the time of interest.
+ /// @param T coordinate transformation time.
+ /// @return Omega in degrees.
+ static double Omega(double T)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the mean longitude of the moon minus Omega, in degrees,
+ /// given T, the CoordTransTime at the time of interest.
+ /// @param T coordinate transformation time.
+ /// @return F in degrees.
+ static double F(double T)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the mean elongation of the moon from the sun, in degrees,
+ /// given T, the CoordTransTime at the time of interest.
+ /// @param T coordinate transformation time.
+ /// @return D in degrees.
+ static double D(double T)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the mean anomaly of the moon, in degrees,
+ /// given T, the CoordTransTime at the time of interest.
+ /// @param T coordinate transformation time.
+ /// @return L in degrees.
+ static double L(double T)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the mean anomaly of the sun, in degrees,
+ /// given T, the CoordTransTime at the time of interest.
+ /// @param T coordinate transformation time.
+ /// @return Lp in degrees.
+ static double Lp(double T)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the obliquity of the ecliptic, in degrees,
+ /// given T, the CoordTransTime at the time of interest.
+ /// @param T coordinate transformation time.
+ /// @return eps in degrees.
+ static double Obliquity(double T)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Nutation of the obliquity (deps) and of the longitude (dpsi), IERS 1996
+ /// model (ref pg 26), given
+ /// @param T, the coordinate transformation time at the time of interest
+ /// @param deps, nutation of the obliquity (output)
+ /// @param dpsi, nutation of the longitude (output)
+ static void NutationAngles(double T,
+ double& deps,
+ double& dpsi)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Zonal tide terms for corrections of UT1mUTC when that quantity does not
+ /// include tides (e.g. NGA EOP), ref. IERS 1996 Ch. 8, table 8.1 pg 74.
+ /// @param T, the coordinate transformation time at the time of interest
+ /// @param UT1mUT1R, the correction to UT1mUTC (seconds)
+ /// @param dlodR, the correction to the length of day (seconds)
+ /// @param domegaR, the correction to the Earth rotation rate, rad/second.
+ static void UT1mUTCTidalCorrections(double T,
+ double& UT1mUTR,
+ double& dlodR,
+ double& domegaR)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the Greenwich hour angle of the true vernal equinox, or
+ /// Greenwich Apparent Sidereal Time, in radians, given the (UT) time of
+ /// interest t, and, where T = CoordTransTime(t),
+ /// om = Omega(T) = mean longitude of lunar ascending node, in degrees,
+ /// ep = Obliquity(T) = the obliquity of the ecliptic, in degrees,
+ /// dp = nutation in longitude (counted in the ecliptic),
+ /// in seconds of arc.
+ ///
+ /// GAST = Greenwich hour angle of the true vernal equinox
+ /// = Greenwich apparent sidereal time
+ /// = GMST + dpsi*cos(eps) + 0.00264"*sin(Omega) + 0.000063"*sin(2*Omega)
+ /// (these terms account for the accumulated precession and nutation in
+ /// right ascension and minimize any discontinuity in UT1)
+ ///
+ /// GMST = Greenwich hour angle of the mean vernal equinox
+ /// = Greenwich mean sidereal time
+ /// = GMST0 + r*[UTC + (UT1-UTC)]
+ /// r = is the ratio of universal to sidereal time
+ /// = 1.002737909350795 + 5.9006E-11*T' - 5.9e-15*T'^2
+ /// T' = days'/36525
+ /// days'= number of days elapsed since t0 = +/-(integer+0.5)
+ /// and
+ /// (UT1-UTC) (seconds) is taken from the IERS bulletin
+ ///
+ /// GMST0 = GMST at 0h UT1
+ /// = 6h 41m (50.54841+8640184.812866*T'+0.093104*T'^2-6.2E-6*T'^3)s
+ ///
+ /// @param t DayTime time of interest.
+ /// @param om, Omega(T), mean longitude of lunar ascending node, in degrees,
+ /// @param eps, Obliquity(T), the obliquity of the ecliptic, in degrees,
+ /// @param dpsi, nutation in longitude (counted in the ecliptic),
+ /// in seconds of arc
+ /// @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ static double gast(DayTime t,
+ double om,
+ double eps,
+ double dpsi,
+ double UT1mUTC)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute the precession matrix, a 3x3 rotation matrix, given
+ /// @param T, the coordinate transformation time at the time of interest
+ /// @return precession matrix Matrix<double>(3,3)
+ static Matrix<double> PrecessionMatrix(double T)
+ throw(InvalidRequest);
+
+ //------------------------------------------------------------------------------
+ /// Nutation model IAU76 (ref McCarthy), compute the nutation matrix,
+ /// a 3x3 rotation matrix, given
+ /// @param ep, Obliquity(T), the obliquity of the ecliptic, in degrees,
+ /// @param dp, dpsi(T), the nutation in longitude (counted in the ecliptic),
+ /// in seconds of arc, and
+ /// @param de, the nutation in obliquity, in seconds of arc.
+ /// @return nutation matrix Matrix<double>(3,3)
+ static Matrix<double> NutationMatrix(double eps,
+ double dpsi,
+ double deps)
+ throw(InvalidRequest);
+
+ public:
+
+ //------------------------------------------------------------------------------
+ // public functions
+ //------------------------------------------------------------------------------
+ /// Compute Greenwich Mean Sidereal Time, or the Greenwich hour angle of
+ /// the mean vernal equinox, given the coordinate time of interest,
+ /// and UT1-UTC (sec), which comes from the IERS bulletin.
+ /// @param t DayTime epoch of the rotation.
+ /// @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ /// @param reduced, bool true when UT1mUTC is 'reduced', meaning assumes
+ /// 'no tides', as is the case with the NGA EOPs (default=F).
+ static double GMST(DayTime t,
+ double UT1mUTC,
+ bool reduced=false)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Compute Greenwich Apparent Sidereal Time, or the Greenwich hour angle of
+ /// the true vernal equinox, given the coordinate time of interest,
+ /// and UT1-UTC (sec), which comes from the IERS bulletin.
+ /// @param t DayTime epoch of the rotation.
+ /// @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ /// @param reduced, bool true when UT1mUTC is 'reduced', meaning assumes
+ /// 'no tides', as is the case with the NGA EOPs (default=F).
+ static double GAST(DayTime t,
+ double UT1mUTC,
+ bool reduced=false)
+ throw();
+
+ //------------------------------------------------------------------------------
+ /// Generate transformation matrix (3X3 rotation) due to the polar motion
+ /// angles xp and yp (arcseconds), as found in the IERS bulletin;
+ /// see class EarthOrientation.
+ /// @param xp, Earth wobble in arcseconds, as found in the IERS bulletin.
+ /// @param yp, Earth wobble in arcseconds, as found in the IERS bulletin.
+ static Matrix<double> PolarMotion(double xp,
+ double yp)
+ throw(InvalidRequest);
+
+ //------------------------------------------------------------------------------
+ /// Generate precise transformation matrix (3X3 rotation) due to Earth rotation
+ /// at Greenwich hour angle of the true vernal equinox and which accounts for
+ /// precession and nutation in right ascension, given the UT time of interest
+ /// and the UT1-UTC correction (in sec), obtained from the IERS bulletin.
+ /// @param t DayTime epoch of the rotation.
+ /// @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ /// @return 3x3 rotation matrix
+ static Matrix<double> PreciseEarthRotation(DayTime t,
+ double UT1mUTC,
+ bool reduced=false)
+ throw(InvalidRequest);
+
+ //------------------------------------------------------------------------------
+ /// Generate an Earth Precession Matrix (3X3 rotation) at the given DayTime.
+ static Matrix<double> Precession(DayTime t)
+ throw(InvalidRequest)
+ { return PrecessionMatrix(CoordTransTime(t)); }
+
+ //------------------------------------------------------------------------------
+ /// Generate an Earth Nutation Matrix (3X3 rotation) at the given DayTime.
+ /// @param t DayTime epoch of the rotation.
+ /// @return 3x3 rotation matrix
+ static Matrix<double> Nutation(DayTime t)
+ throw(InvalidRequest);
+
+ //------------------------------------------------------------------------------
+ /// Generate the full transformation matrix (3x3 rotation) relating the ECEF
+ /// frame to the conventional inertial frame
+ /// throw(); Input is the time of interest,
+ /// the polar motion angles xp and yp (arcseconds), and UT1-UTC (seconds)
+ /// (xp,yp and UT1-UTC are just as found in the IERS bulletin);
+ /// see class EarthOrientation.
+ /// @param t DayTime epoch of the rotation.
+ /// @param xp, Earth wobble in arcseconds, as found in the IERS bulletin.
+ /// @param yp, Earth wobble in arcseconds, as found in the IERS bulletin.
+ /// @param UT1mUTC, UT1-UTC in seconds, as found in the IERS bulletin.
+ /// @param reduced, bool true when UT1mUTC is 'reduced', meaning assumes
+ /// 'no tides', as is the case with the NGA EOPs (default=F).
+ /// @return 3x3 rotation matrix
+ static Matrix<double> ECEFtoInertial(DayTime t,
+ double xp,
+ double yp,
+ double UT1mUTC,
+ bool reduced=false)
+ throw(InvalidRequest);
+
+ //------------------------------------------------------------------------------
+ /// Given a rotation matrix R (3x3), find the Euler angles (theta,phi,psi) which
+ /// produce this rotation, and also determine the magnitude alpha and direction
+ /// nhat (= unit 3-vector) of the net rotation.
+ /// Throw InvalidRequest if the matrix is not a rotation matrix.
+ static void ResolveRotation(const Matrix<double>& R,
+ double& theta,
+ double& phi,
+ double& psi,
+ double& alpha,
+ Vector<double>& nhat)
+ throw(InvalidRequest);
+
+ }; // end class GeodeticFrames
+
+} // end namespace gpstk
+
+#endif // nothing below this...
diff --git a/dev/apps/geomatics/lib/Jamfile b/dev/apps/geomatics/lib/Jamfile
new file mode 100644
index 0000000..33926e7
--- /dev/null
+++ b/dev/apps/geomatics/lib/Jamfile
@@ -0,0 +1,21 @@
+#
+# $Id$
+#
+
+SubDir TOP apps geomatics lib ;
+
+SEARCH_SOURCE += $(TOP)/src ;
+
+Library $(LIBPREFIX)geomatic :
+ SRI.cpp Namelist.cpp SRIFilter.cpp
+ RobustStats.cpp
+ EarthOrientation.cpp GeodeticFrames.cpp PreciseRange.cpp
+ PhaseWindup.cpp
+ SatPass.cpp
+ DiscCorr.cpp GDCconfiguration.cpp
+ GSatID.cpp DDid.cpp
+ random.cpp format.cpp
+ ;
+
+GPSLinkLibraries : gpstk $(LIBPREVIX)geomatic ;
+
diff --git a/dev/apps/geomatics/lib/Makefile.am b/dev/apps/geomatics/lib/Makefile.am
new file mode 100644
index 0000000..4c93ab6
--- /dev/null
+++ b/dev/apps/geomatics/lib/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../../src/
+lib_LTLIBRARIES = libgeomatic.la
+libgeomatic_la_SOURCES = DDid.cpp DiscCorr.cpp EarthOrientation.cpp \
+GDCconfiguration.cpp GSatID.cpp GeodeticFrames.cpp Namelist.cpp \
+PhaseWindup.cpp PreciseRange.cpp RobustStats.cpp SRI.cpp SRIFilter.cpp \
+SatPass.cpp format.cpp random.cpp
diff --git a/dev/apps/geomatics/lib/Namelist.cpp b/dev/apps/geomatics/lib/Namelist.cpp
new file mode 100644
index 0000000..35b05c0
--- /dev/null
+++ b/dev/apps/geomatics/lib/Namelist.cpp
@@ -0,0 +1,472 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Namelist.cpp
+ * Implementation of class Namelist.
+ * class gpstk::Namelist encapsulates a list of labels for use with classes Matrix,
+ * Vector and SRI.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+#include <vector>
+#include <algorithm>
+#include <ostream>
+#include <fstream> // for copyfmt
+// GPSTk
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "Namelist.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// constructor given dimension - creates default labels
+Namelist::Namelist(const unsigned int& n)
+{
+try {
+ if(n == 0) return;
+ string name;
+ for(unsigned int i=0; i<n; i++) {
+ ostringstream oss;
+ oss << "NAME" << setw(2) << setfill('0') << i;
+ name = oss.str();
+ labels.push_back(name);
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// explicit constructor - only a unique subset of names will be included.
+Namelist::Namelist(const vector<string>& names)
+{
+try {
+ for(unsigned int i=0; i<names.size(); i++) {
+ bool unique=true;
+ for(unsigned int j=i+1; j<names.size(); j++) {
+ if(names[i] == names[j]) { unique=false; break; }
+ }
+ if(unique) labels.push_back(names[i]);
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// add a name to the Namelist; do nothing if the name is not unique.
+Namelist& Namelist::operator+=(const string& name)
+{
+try {
+ if(this->contains(name)) return *this;
+ labels.push_back(name);
+ return *this;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// remove a name from the Namelist; does nothing if the name is not found.
+Namelist& Namelist::operator-=(const string& name)
+{
+try {
+ vector<string>::iterator it;
+ if((it=find(labels.begin(),labels.end(),name)) == labels.end()) return *this;
+ labels.erase(it);
+ return *this;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// swap two elements, as given by their indexes; no effect if either index
+// is out of range.
+void Namelist::swap(const unsigned int& i, const unsigned int& j)
+{
+try {
+ if(i == j) return;
+ if(i >= labels.size() || j >= labels.size()) return;
+ string str = labels[i];
+ labels[i] = labels[j];
+ labels[j] = str;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// reorder the list by sorting
+void Namelist::sort(void)
+{
+try {
+ // compiler tries Namelist::sort() first...
+ std::sort(labels.begin(),labels.end());
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// resize the list by either truncation or adding default names.
+void Namelist::resize(unsigned int n)
+{
+try {
+ if(n == labels.size()) return;
+ int N=labels.size();
+ while(labels.size() < n) {
+ string s;
+ do {
+ ostringstream oss;
+ oss << "NAME" << setw(2) << setfill('0') << N << setfill(' ');
+ s = oss.str();
+ N++;
+ } while(this->contains(s));
+ labels.push_back(s);
+ }
+ while(labels.size() > n) {
+ labels.pop_back();
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// randomize the list
+void Namelist::randomize(long seed)
+{
+try {
+ if(labels.size() <= 1) return;
+ random_shuffle(labels.begin(), labels.end());
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// is the Namelist valid? checks for repeated names
+bool Namelist::valid(void) const
+{
+try {
+ for(unsigned int i=0; i<labels.size(); i++)
+ for(unsigned int j=i+1; j<labels.size(); j++)
+ if(labels[i] == labels[j]) return false;
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// does the Namelist contain the input name?
+bool Namelist::contains(const string& name) const
+{
+try {
+ for(unsigned int i=0; i<labels.size(); i++)
+ if(labels[i] == name) return true;
+ return false;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// are two Namelists identical, ignoring a permutation?
+bool operator==(const Namelist& N1, const Namelist& N2)
+{
+try {
+ if(N1.size() != N2.size()) return false;
+ if(N1.size() == 0) return true;
+ for(unsigned int i=0; i<N1.size(); i++) {
+ unsigned int match=0;
+ for(unsigned int j=0; j<N2.size(); j++)
+ if(N1.labels[i] == N2.labels[j]) match++;
+ if(match != 1) return false; // if > 1, N2 is invalid
+ }
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// are two Namelists different, ignoring a permutation?
+bool operator!=(const Namelist& N1, const Namelist& N2)
+{
+try {
+ return !(N1==N2);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// are two Namelists exactly identical, even considering permutations?
+bool identical(const Namelist& N1, const Namelist& N2)
+{
+try {
+ if(N1.size() != N2.size()) return false;
+ if(N1.size() == 0) return true;
+ for(unsigned int i=0; i<N1.size(); i++) {
+ if(N1.labels[i] != N2.labels[i]) return false;
+ }
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// construct the subset Namelist which is common to the two input (AND)
+Namelist operator&(const Namelist& N1, const Namelist& N2)
+{
+try {
+ Namelist N(N1);
+ N &= N2;
+ return N;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// merge two Namelists, i.e. construct a non-redundant combination (OR)
+Namelist operator|(const Namelist& N1, const Namelist& N2)
+{
+try {
+ Namelist N(N1);
+ N |= N2;
+ return N;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// construct the subset Namelist which is NOT common to two others (XOR)
+Namelist operator^(const Namelist& N1, const Namelist& N2)
+{
+try {
+ Namelist N(N1);
+ N ^= N2;
+ return N;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// replace this with (this & input) (AND - common to both)
+Namelist& Namelist::operator&=(const Namelist& N)
+{
+try {
+ Namelist NAND;
+ for(unsigned int i=0; i<labels.size(); i++)
+ if(N.contains(labels[i])) NAND += labels[i];
+ *this = NAND;
+ return *this;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// replace this with (this | input) (OR - merge - superset)
+// NB new elements must be added at the end (for class SRI).
+Namelist& Namelist::operator|=(const Namelist& N)
+{
+try {
+ Namelist NOR(*this);
+ for(unsigned int i=0; i<N.labels.size(); i++)
+ if(!(this->contains(N.labels[i]))) NOR += N.labels[i];
+ *this = NOR;
+ return *this;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// replace this with (this ^ input) (XOR - not common)
+Namelist& Namelist::operator^=(const Namelist& N)
+{
+try {
+ unsigned int i;
+ Namelist NXOR;
+ for(i=0; i<labels.size(); i++)
+ if(!(N.contains(labels[i]))) NXOR += labels[i];
+ for(i=0; i<N.labels.size(); i++)
+ if(!(this->contains(N.labels[i]))) NXOR += N.labels[i];
+ *this = NXOR;
+ return *this;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+
+// access to a specific name, given its index; may be used as lvalue.
+//string& Namelist::operator[](const unsigned int in)
+//{
+// if(in >= labels.size()) throw ...
+// return labels[in];
+//}
+
+// access to a specific name, given its index.
+// returns 'out-of-range' if the index is out of range.
+string Namelist::getName(const unsigned int in) const
+{
+try {
+ if(in >= labels.size()) return string("out-of-range");
+ return labels[in];
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// assign a specific name, given its index;
+// no effect if the index is out of range or the name is not unique.
+// return true if successful
+bool Namelist::setName(const unsigned int in, const string& name)
+{
+try {
+ if(in >= labels.size()) return false;
+ if(labels[in] == name) return true; // NB b/c contains(name) would be true..
+ if(contains(name)) return false;
+ labels[in] = name;
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// return the index of the name in the list that matches the input, -1 if not found.
+int Namelist::index(const string& name) const
+{
+try {
+ for(unsigned int i=0; i<labels.size(); i++)
+ if(labels[i] == name) return i;
+ return -1;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+// output operator
+ostream& operator<<(ostream& os, const Namelist& N)
+{
+try {
+ for(unsigned int i=0; i<N.labels.size(); i++) os << " / " << N.labels[i];
+ os << " / ";
+ return os;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+ostream& operator<<(ostream& os, const LabelledVector& nlp)
+{
+try {
+ unsigned int i;
+ string s;
+ //ofstream savefmt;
+ //savefmt.copyfmt(os);
+ //int wid=os.width(),prec=os.precision();
+
+ if(nlp.msg.size() > 0)
+ s = leftJustify(nlp.msg,nlp.wid);
+ else
+ s = rightJustify(string(""),nlp.wid);
+ os << s;
+ for(i=0; i<nlp.NL.size(); i++) {
+ if(nlp.NL.getName(i).size() > nlp.wid)
+ s = leftJustify(nlp.NL.getName(i),nlp.wid);
+ else
+ s = rightJustify(nlp.NL.getName(i),nlp.wid);
+ os << s;
+ }
+ os << endl;
+
+ s = rightJustify(string(""),nlp.wid);
+ os << s;
+ if(nlp.form == 1) os << fixed;
+ if(nlp.form == 2) os << scientific;
+ for(i=0; i<nlp.V.size(); i++) {
+ //os.copyfmt(savefmt);
+ //os << nlp.V(i);
+ os << setw(nlp.wid) << setprecision(nlp.prec) << nlp.V(i);
+ }
+
+ return os;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+ostream& operator<<(ostream& os, const LabelledMatrix& nlp)
+{
+try {
+ unsigned int i,j;
+ string s;
+ const Namelist *pNLcol = &nlp.NLcols;
+ const Namelist *pNLrow = &nlp.NLrows;
+ // first make sure we have both namelists
+ if(nlp.NLrows.size() == 0 && nlp.NLcols.size() == 0) {
+ os << " Error -- Namelists in LabelledMatrix are empty! ";
+ return os;
+ }
+ if(nlp.NLrows.size() == 0) pNLrow = pNLcol;
+ if(nlp.NLcols.size() == 0) pNLcol = pNLrow;
+
+ // on column labels line, add message or space for row labels
+ if(nlp.rc == 0) { // only if printing both column and row labels
+ if(nlp.msg.size() > 0)
+ s = leftJustify(nlp.msg,nlp.wid);
+ else
+ s = rightJustify(string(""),nlp.wid);
+ os << s;
+ }
+ // print column labels
+ if(nlp.rc != 1) { // but not if 'rows only'
+ for(i=0; i<(nlp.M.cols()<pNLcol->size()?nlp.M.cols():pNLcol->size()); i++) {
+ if(pNLcol->getName(i).size() > nlp.wid)
+ s = leftJustify(pNLcol->getName(i),nlp.wid);
+ else
+ s = rightJustify(pNLcol->getName(i),nlp.wid);
+ os << s;
+ }
+ os << endl;
+ }
+
+ if(nlp.form == 1) os << fixed;
+ if(nlp.form == 2) os << scientific;
+
+ for(i=0; i<nlp.M.rows(); i++) {
+ // print row labels
+ if(nlp.rc != 2) { // but not if 'columns only'
+ if(pNLrow->getName(i).size() > nlp.wid)
+ s = leftJustify(pNLrow->getName(i),nlp.wid);
+ else
+ s = rightJustify(pNLrow->getName(i),nlp.wid);
+ os << s;
+ }
+ // finally, print the data
+ for(j=0; j<nlp.M.cols(); j++) {
+ os << setw(nlp.wid) << setprecision(nlp.prec) << nlp.M(i,j);
+ }
+ if(i<nlp.M.rows()-1) os << endl;
+ }
+
+ return os;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/Namelist.hpp b/dev/apps/geomatics/lib/Namelist.hpp
new file mode 100644
index 0000000..1105431
--- /dev/null
+++ b/dev/apps/geomatics/lib/Namelist.hpp
@@ -0,0 +1,223 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Namelist.hpp
+ * Include file defining class Namelist.
+ * class gpstk::Namelist encapsulates a list of labels for use with classes Matrix,
+ * Vector and SRI.
+ */
+
+#ifndef CLASS_NAMELIST_INCLUDE
+#define CLASS_NAMELIST_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+#include <vector>
+#include <algorithm>
+#include <iomanip>
+#include <ostream>
+#include <sstream>
+// GPSTk
+#include "Matrix.hpp"
+
+namespace gpstk
+{
+
+//------------------------------------------------------------------------------------
+class Namelist;
+/// class LabelledVector. Pretty print a Vector using the labels in a Namelist.
+class LabelledVector {
+public:
+ int wid,prec,form;
+ std::string msg;
+ const Namelist& NL;
+ Vector<double>& V;
+ LabelledVector(const Namelist& nl, Vector<double>& v)
+ : wid(12), prec(5), form(1), NL(nl), V(v) { }
+ LabelledVector& setw(int w) { wid = w; return *this; }
+ LabelledVector& setprecision(int p) { prec = p; return *this; }
+ LabelledVector& fixed(void) { form = 1; return *this; }
+ LabelledVector& scientific(void) { form = 2; return *this; }
+ LabelledVector& message(const std::string& m) { msg=m; return *this; }
+};
+
+/// class LabelledMatrix. Pretty print a Matrix using the labels in a Namelist.
+class LabelledMatrix {
+public:
+ int wid,prec;
+ int form; // format: 1=fixed, 2=scientific
+ int rc; // rows only (1) columns only (2) or both (0)
+ std::string msg;
+ const Namelist& NLrows;
+ const Namelist& NLcols;
+ const Matrix<double>& M;
+ LabelledMatrix(const Namelist& nl, const Matrix<double>& m)
+ : wid(12), prec(5), form(1), rc(0), NLrows(nl), NLcols(nl), M(m) { }
+ LabelledMatrix(const Namelist& nlr, const Namelist& nlc, const Matrix<double>& m)
+ : wid(12), prec(5), form(1), rc(0), NLrows(nlr), NLcols(nlc), M(m) { }
+ LabelledMatrix& setw(int w) { wid = w; return *this; }
+ LabelledMatrix& setprecision(int p) { prec = p; return *this; }
+ LabelledMatrix& fixed(void) { form = 1; return *this; }
+ LabelledMatrix& scientific(void) { form = 2; return *this; }
+ LabelledMatrix& rows(void) { rc=1; return *this; }
+ LabelledMatrix& cols(void) { rc=2; return *this; }
+ LabelledMatrix& message(const std::string& m) { msg=m; return *this; }
+};
+
+std::ostream& operator<<(std::ostream&, const LabelledMatrix&);
+std::ostream& operator<<(std::ostream&, const LabelledVector&);
+
+
+//------------------------------------------------------------------------------------
+/** class Namelist. A Namelist is simply an ordered set of unique strings ('names' or
+ * 'labels') of any length. Namelists are used to label or identify elements of
+ * Vectors or Matrix rows and columns. Namelist is particularly useful in class SRI,
+ * which includes a Matrix and Vector that hold state and covariance information in
+ * an estimation problem; SRI include a Namelist which associates readable labels with
+ * the elements of the state and covariance.
+ */
+
+class Namelist {
+ friend class SRI;
+ friend std::ostream& operator<<(std::ostream&, const LabelledMatrix&);
+ friend std::ostream& operator<<(std::ostream&, const LabelledVector&);
+public:
+ /// empty constructor
+ Namelist(void) {}
+ /// constructor given dimension - creates default labels
+ Namelist(const unsigned int&);
+ /// explicit constructor - only a unique subset of the input will be included.
+ Namelist(const std::vector<std::string>&);
+ /// copy constructor
+ Namelist(const Namelist& names) { labels = names.labels; }
+ /// destructor
+ ~Namelist(void) { labels.clear(); }
+
+ /// operator=
+ Namelist& operator=(const Namelist& right)
+ { labels = right.labels; return *this; }
+ /// add a single name to the Namelist; do nothing if the name is not unique.
+ Namelist& operator+=(const std::string&);
+ /// remove a name from the Namelist; does nothing if the name is not found.
+ Namelist& operator-=(const std::string&);
+
+ /// swap two elements, as given by their indexes; no effect if either index
+ /// is out of range.
+ void swap(const unsigned int&, const unsigned int&);
+ /// reorder the list by sorting
+ void sort(void);
+ /// resize the list by either truncation or adding default names.
+ void resize(unsigned int);
+ /// randomize the list
+ void randomize(long seed=0);
+ /// empty the list
+ void clear(void) { labels.clear(); }
+
+ /// is the Namelist valid? checks for repeated names
+ /// (? not possible to create an invalid Namelist?)
+ bool valid(void) const;
+ /// does the Namelist contain the input name?
+ bool contains(const std::string&) const;
+ /// are two Namelists identical, ignoring permutations?
+ friend bool operator==(const Namelist&, const Namelist&);
+ /// are two Namelists different, ignoring permutations?
+ friend bool operator!=(const Namelist&, const Namelist&);
+ /// are two Namelists exactly identical, even considering permutations?
+ friend bool identical(const Namelist&, const Namelist&);
+
+ /// construct the subset Namelist which is common to the two inputs (AND)
+ friend Namelist operator&(const Namelist&, const Namelist&);
+ /// merge two Namelists, i.e. construct a non-redundant combination (OR)
+ friend Namelist operator|(const Namelist&, const Namelist&);
+ /// construct the subset Namelist which is NOT common to two others (XOR)
+ friend Namelist operator^(const Namelist&, const Namelist&);
+ /// replace this with (this & input)
+ Namelist& operator&=(const Namelist&);
+ /// replace this with (this | input)
+ Namelist& operator|=(const Namelist&);
+ /// replace this with (this ^ input)
+ Namelist& operator^=(const Namelist&);
+
+ /// bind a Namelist to a Matrix<double> before sending it to an output
+ /// stream, to get a 'labelled display' of the matrix.
+ LabelledMatrix operator()(Matrix<double>& m)
+ { return LabelledMatrix(*this,m); }
+
+ /// bind a Namelist to a Vector<double> before sending it to an output
+ /// stream, to get a 'labelled display' of the vector.
+ LabelledVector operator()(Vector<double>& v)
+ { return LabelledVector(*this,v); }
+
+ // member access
+
+ /// return the size of the list.
+ inline unsigned int size(void) const { return labels.size(); }
+
+ //std::string& operator[](const unsigned int);
+ //Don't do this, b/c it means user could create invalid Namelists,
+ //and b/c passing an invalid int would require a throw
+
+ /// access to a specific name, given its index.
+ /// returns 'out-of-range' if the index is out of range.
+ std::string getName(const unsigned int) const;
+
+ /// assign a specific name, given its index;
+ /// no effect if the name is not unique;
+ /// return true if successful.
+ bool setName(const unsigned int, const std::string&);
+
+ /// return the index of the name in the list that matches the input,
+ /// -1 if not found.
+ int index(const std::string&) const;
+
+ /// output operator
+ friend std::ostream& operator<<(std::ostream& s, const Namelist&);
+
+ // member data
+
+ /// vector of names (strings)
+ std::vector<std::string> labels;
+
+//private:
+}; // end class Namelist
+
+} // end of namespace gpstk
+
+#endif
diff --git a/dev/apps/geomatics/lib/PhaseWindup.cpp b/dev/apps/geomatics/lib/PhaseWindup.cpp
new file mode 100644
index 0000000..137fd11
--- /dev/null
+++ b/dev/apps/geomatics/lib/PhaseWindup.cpp
@@ -0,0 +1,407 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file PhaseWindup.cpp
+ * Implement computations of phase windup, solar ephemeris, satellite attitude
+ * and eclipse at the satellite.
+ */
+
+// -----------------------------------------------------------------------------------
+// GPSTk includes
+#include "StringUtils.hpp"
+#include "Position.hpp"
+#include "Matrix.hpp"
+#include "geometry.hpp" // DEG_TO_RAD
+#include "icd_200_constants.hpp" // TWO_PI
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+// -----------------------------------------------------------------------------------
+namespace gpstk {
+
+// -----------------------------------------------------------------------------------
+void SolarPosition(DayTime t, double& lat, double& lon, double& R, double& AR);
+Matrix<double> SatelliteAttitude(DayTime& tt, Position& SV, double& sf);
+double shadowFactor(double Rearth, double Rsun, double dES);
+static double GMST(DayTime t);
+
+// -----------------------------------------------------------------------------------
+// Given a Position, compute unit (ECEF) vectors in the Up, East and North directions
+// at that position. Use geodetic coordinates, i.e. 'up' is perpendicular to the
+// geoid. Return the vectors in the form of a 3x3 Matrix<double>, this is in fact the
+// rotation matrix that will take an ECEF vector into an 'up-east-north' vector.
+Matrix<double> UpEastNorth(Position& P)
+{
+try {
+ Matrix<double> R(3,3);
+ P.transformTo(Position::Geodetic);
+
+ double lat = P.getGeodeticLatitude() * DEG_TO_RAD; // rad N
+ double lon = P.getLongitude() * DEG_TO_RAD; // rad E
+ double ca = ::cos(lat);
+ double sa = ::sin(lat);
+ double co = ::cos(lon);
+ double so = ::sin(lon);
+
+ // This is the rotation matrix which will take X=(x,y,z) into (R*X)(up,east,north)
+ R(0,0) = ca*co; R(0,1) = ca*so; R(0,2) = sa;
+ R(1,0) = -so; R(1,1) = co; R(1,2) = 0.;
+ R(2,0) = -sa*co; R(2,1) = -sa*so; R(2,2) = ca;
+
+ // The rows of R are also the unit vectors, in ECEF, of up,east,north;
+ // R = (U && E && N) = transpose(U || E || N).
+ //Matrix<double> U = R.rowCopy(0);
+ //Matrix<double> E = R.rowCopy(1);
+ //Matrix<double> N = R.rowCopy(2);
+
+ return R;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+// -----------------------------------------------------------------------------------
+// Generate a 3x3 rotation Matrix, for direct rotations about one axis
+// (for XYZ, axis=123), given the rotation angle in radians;
+// @param angle in radians.
+// @param axis 1,2,3 as rotation about X,Y,Z.
+// @return Rotation matrix (3x3).
+// @throw InvalidInput if axis is anything other than 1, 2 or 3.
+Matrix<double> SingleAxisRotation(double angle,
+ int axis)
+ throw(Exception)
+{
+try {
+ if(axis < 1 || axis > 3) {
+ Exception e(string("Invalid axis (1,2,3 <=> X,Y,Z): ") + asString(axis));
+ GPSTK_THROW(e);
+ }
+ Matrix<double> R(3,3,0.0);
+
+ int i1=axis-1; // axis = 1 : 0,1,2
+ int i2=i1+1; if(i2 == 3) i2=0; // axis = 2 : 1,2,0
+ int i3=i2+1; if(i3 == 3) i3=0; // axis = 3 : 2,0,1
+
+ R(i1,i1) = 1.0;
+ R(i2,i2) = R(i3,i3) = ::cos(angle);
+ R(i3,i2) = -(R(i2,i3) = ::sin(angle));
+
+ return R;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+// -----------------------------------------------------------------------------------
+// Compute the satellite attitude, given the time and the satellite position SV.
+// Return a 3x3 Matrix which contains, as rows, the unit (ECEF) vectors X,Y,Z in the
+// body frame of the satellite, namely
+// Z = along the boresight (i.e. towards Earth center),
+// Y = perpendicular to both Z and the satellite-sun direction, and
+// X completing the orthonormal triad. X will generally point toward the sun.
+// Also return the shadow factor = fraction of the sun's area visible to satellite.
+Matrix<double> SatelliteAttitude(DayTime& tt, Position& SV, double& sf)
+{
+try {
+ int i;
+ double d,svrange,lat,lon,DistSun,Radsun,Radearth,dES;
+ Position X,Y,Z,T;
+ Matrix<double> R(3,3);
+
+ // Z points from satellite to Earth center - along the antenna boresight
+ Z = SV;
+ Z.transformTo(Position::Cartesian);
+ svrange = Z.mag();
+ d = -1.0/Z.mag();
+ Z = d * Z; // reverse and normalize Z
+
+ // T points from satellite to sun
+ SolarPosition(tt, lat, lon, DistSun, Radsun);
+ Radsun *= DEG_TO_RAD; // angular radius of sun at satellite
+ Radearth = ::asin(6378137.0/svrange); // angular radius of earth at sat
+
+ T.setGeocentric(lat,lon,DistSun); // vector earth to sun
+ T.transformTo(Position::Cartesian);
+ T = T - SV; // sat to sun=(E to sun)-(E to sat)
+ d = 1.0/T.mag();
+ T = d * T; // normalize T
+
+ dES = ::acos(Z.dot(T)); // apparent angular distance, earth
+ // to sun, as seen at satellite
+
+ sf = shadowFactor(Radearth, Radsun, dES); // is satellite in eclipse?
+ //if(sf > 0.999) { ; // total eclipse }
+ //else if(sf > 0.0) { ; // partial eclipse }
+ //else { ; // no eclipse }
+
+ // Y is perpendicular to Z and T, such that ...
+ Y = Z.cross(T);
+ d = 1.0/Y.mag();
+ Y = d * Y; // normalize Y
+
+ // ... X points generally in the direction of the sun
+ X = Y.cross(Z); // X will be unit vector
+ if(X.dot(T) < 0) { // need to reverse X, hence Y also
+ X = -1.0 * X;
+ Y = -1.0 * Y;
+ }
+
+ // fill the matrix and return it
+ for(i=0; i<3; i++) {
+ R(0,i) = X[i];
+ R(1,i) = Y[i];
+ R(2,i) = Z[i];
+ }
+
+ return R;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+// -----------------------------------------------------------------------------------
+// Compute the phase windup, in cycles, given the time, the unit vector from receiver
+// to transmitter, and the west and north unit vectors at the receiver, all in ECEF.
+// YR is the West unit vector, XR is the North unit vector, at the receiver.
+// shadow is the fraction of the sun's area visible at the satellite.
+double PhaseWindup(DayTime& tt, // epoch of interest
+ Position& SV, // satellite position
+ Position& Rx2Tx, // unit vector from receiver to satellite
+ Position& YR, // west unit vector at receiver
+ Position& XR, // north unit vector at receiver
+ double& shadow) // fraction of sun visible at satellite
+{
+try {
+ double d,windup=0.0;
+ Position DR,DT;
+ Position TR = -1.0 * Rx2Tx; // transmitter to receiver
+
+ // get satellite attitude
+ Position XT,YT,ZT;
+ Matrix<double> Att = SatelliteAttitude(tt, SV, shadow);
+ XT = Position(Att(0,0),Att(0,1),Att(0,2)); // Cartesian is default
+ YT = Position(Att(1,0),Att(1,1),Att(1,2));
+ ZT = Position(Att(2,0),Att(2,1),Att(2,2));
+
+ // compute effective dipoles at receiver and transmitter
+ DR = XR - TR * TR.dot(XR) + Position(TR.cross(YR));
+ DT = XT - TR * TR.dot(XT) - Position(TR.cross(YT));
+
+ // normalize
+ d = 1.0/DR.mag();
+ DR = d * DR;
+ d = 1.0/DT.mag();
+ DT = d * DT;
+
+ windup = ::acos(DT.dot(DR)) / TWO_PI;
+
+ return windup;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Solar ephemeris, in ECEF coordinates.
+// Accuracy is about 1 arcminute, when t is within 2 centuries of 2000.
+// Ref. Astronomical Almanac pg C24, as presented on USNO web site.
+// input
+// t epoch of interest
+// output
+// lat,lon,R latitude, longitude and distance (deg,deg,m in ECEF) of sun at t.
+// AR apparent angular radius of sun as seen at Earth (deg) at t.
+void SolarPosition(DayTime t, double& lat, double& lon, double& R, double& AR)
+{
+try {
+ //const double mPerAU = 149598.0e6;
+ double D; // days since J2000
+ double g,q;
+ double L; // sun's geocentric apparent ecliptic longitude (deg)
+ //double b=0; // sun's geocentric apparent ecliptic latitude (deg)
+ double e; // mean obliquity of the ecliptic (deg)
+ //double R; // sun's distance from Earth (m)
+ double RA; // sun's right ascension (deg)
+ double DEC; // sun's declination (deg)
+ //double AR; // sun's apparent angular radius as seen at Earth (deg)
+
+ D = t.JD() - 2451545.0;
+ g = (357.529 + 0.98560028 * D) * DEG_TO_RAD;
+ q = 280.459 + 0.98564736 * D;
+ L = (q + 1.915 * ::sin(g) + 0.020 * ::sin(2*g)) * DEG_TO_RAD;
+
+ e = (23.439 - 0.00000036 * D) * DEG_TO_RAD;
+ RA = atan2(::cos(e)*::sin(L),::cos(L)) * RAD_TO_DEG;
+ DEC = ::asin(::sin(e)*::sin(L)) * RAD_TO_DEG;
+
+ //equation of time = apparent solar time minus mean solar time
+ //= [q-RA (deg)]/(15deg/hr)
+
+ // compute the hour angle of the vernal equinox = GMST and convert RA to lon
+ lon = fmod(RA-GMST(t),360.0);
+ if(lon < -180.0) lon += 360.0;
+ if(lon > 180.0) lon -= 360.0;
+
+ lat = DEC;
+
+ // ECEF unit vector in direction Earth to sun
+ //xhat = ::cos(lat*DEG_TO_RAD)*::cos(lon*DEG_TO_RAD);
+ //yhat = ::cos(lat*DEG_TO_RAD)*::sin(lon*DEG_TO_RAD);
+ //zhat = ::sin(lat*DEG_TO_RAD);
+
+ // R in AU
+ R = 1.00014 - 0.01671 * ::cos(g) - 0.00014 * ::cos(2*g);
+ // apparent angular radius in degrees
+ AR = 0.2666/R;
+ // convert to meters
+ R *= 149598.0e6;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Consider the sun and the earth as seen from the satellite. Let the sun be a circle
+// of angular radius r, center in direction s, and the earth be a (larger) circle
+// of angular radius R, center in direction e. The circles overlap if |e-s| < R+r;
+// complete overlap if |e-s| < R-r. The satellite is in penumbra if R-r < |e-s| < R+r,// it is in umbra if |e-s| < R-r.
+// Let L == |e-s|. What is the area of overlap in penumbra : R-r < L < R+r ?
+// Call the two points where the circles intersect p1 and p2. Draw a line from e to s;
+// call the points where this line intersects the two circles r1 and R1, respectively.
+// Draw lines from e to s, e to p1, e to p2, s to p1 and s to p2. Call the angle
+// between e-s and e-p1 alpha, and that between s-e and s-p1, beta.
+// Draw a rectangle with top and bottom parallel to e-s passing through p1 and p2,
+// and with sides passing through s and r1. Similarly for e and R1. Note that the
+// area of intersection lies within the intersection of these two rectangles.
+// Call the area of the rectangle outside the circles A and B. The height H of the
+// rectangles is
+// H = 2Rsin(alpha) = 2rsin(beta)
+// also L = rcos(beta)+Rcos(alpha)
+// The area A will be the area of the rectangle
+// minus the area of the wedge formed by the angle 2*alpha
+// minus the area of the two triangles which meet at s :
+// A = RH - (2alpha/2pi)*pi*R*R - 2*(1/2)*(H/2)Rcos(alpha)
+// Similarly
+// B = rH - (2beta/2pi)*pi*r*r - 2*(1/2)*(H/2)rcos(beta)
+// The area of intersection will be the area of the rectangular intersection
+// minus the area A
+// minus the area B
+// Intersection = H(R+r-L) - A - B
+// = HR+Hr-HL -HR+alpha*R*R+(H/2)Rcos(alpha) -Hr+beta*r*r+(H/2)rcos(beta)
+// Cancel terms, and substitute for L using above equation L = ..
+// = -(H/2)rcos(beta)-(H/2)Rcos(alpha)+alpha*R*R+beta*r*r
+// substitute for H/2
+// = -R*R*sin(alpha)cos(alpha)-r*r*sin(beta)cos(beta)+alpha*R*R+beta*r*r
+// Intersection = R*R*[alpha-sin(alpha)cos(alpha)]+r*r*[beta-sin(beta)cos(beta)]
+// Solve for alpha and beta in terms of R, r and L using the H and L relations above
+// (r/R)cos(beta)=(L/R)-cos(alpha)
+// (r/R)sin(beta)=sin(alpha)
+// so
+// (r/R)^2 = (L/R)^2 - (2L/R)cos(alpha) + 1
+// cos(alpha) = (R/2L)(1+(L/R)^2-(r/R)^2)
+// cos(beta) = (L/r) - (R/r)cos(alpha)
+// and 0 <= alpha or beta <= pi
+//
+// Rearth angular radius of the earth as seen at the satellite
+// Rsun angular radius of the sun as seen at the satellite
+// dES angular distance of the sun from the earth
+// return fraction (0 <= f <= 1) of area of sun covered by earth
+// units only need be consistent
+double shadowFactor(double Rearth, double Rsun, double dES)
+{
+try {
+ if(dES >= Rearth+Rsun) return 0.0;
+ if(dES <= fabs(Rearth-Rsun)) return 1.0;
+ double r=Rsun, R=Rearth, L=dES;
+ if(Rsun > Rearth) { r=Rearth; R=Rsun; }
+ double cosalpha = (R/L)*(1.0+(L/R)*(L/R)-(r/R)*(r/R))/2.0;
+ double cosbeta = (L/r) - (R/r)*cosalpha;
+ double sinalpha = ::sqrt(1-cosalpha*cosalpha);
+ double sinbeta = ::sqrt(1-cosbeta*cosbeta);
+ double alpha = ::asin(sinalpha);
+ double beta = ::asin(sinbeta);
+ double shadow = r*r*(beta-sinbeta*cosbeta)+R*R*(alpha-sinalpha*cosalpha);
+ shadow /= ::acos(-1.0)*Rsun*Rsun;
+ return shadow;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+double GMST(DayTime t)
+{
+try {
+ // days' since epoch = +/-(integer+0.5)
+ double days = t.JD() - 2451545;
+ int d=int(days);
+ if(d < 0 && days==double(d)) d++;
+ days = d + (days<0.0 ? -0.5 : 0.5);
+ double Tp = days/36525.0;
+
+ // Compute GMST
+ double G;
+ //G = 24060.0 + 50.54841 + 8640184.812866*Tp; // seconds (24060s = 6h 41min)
+ //G /= 86400.0; // instead, divide the above equation by 86400.0 manually...
+ G = 0.27847222 + 0.00058505104167 + 100.0021390378009*Tp;
+ G += (0.093104 - 6.2e-6*Tp)*Tp*Tp/86400.0; // seconds/86400 = circles
+ double r=1.002737909350795 + (5.9006e-11 - 5.9e-15*Tp)*Tp;
+ G += r*t.secOfDay()/86400.0; // circles
+ G *= 360.0; // degrees
+ //G = fmod(G,360.0);
+ //if(G < -180.0) G += 360.0;
+ //if(G > 180.0) G -= 360.0;
+
+ return G;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+} // end namespace gpstk
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/PhaseWindup.hpp b/dev/apps/geomatics/lib/PhaseWindup.hpp
new file mode 100644
index 0000000..25ca6b1
--- /dev/null
+++ b/dev/apps/geomatics/lib/PhaseWindup.hpp
@@ -0,0 +1,59 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file PhaseWindup.hpp
+ * Include file for the phase windup routines.
+ */
+
+#ifndef PHASE_WINDUP_INCLUDE
+#define PHASE_WINDUP_INCLUDE
+
+namespace gpstk {
+// -----------------------------------------------------------------------------------
+ Matrix<double> UpEastNorth(Position& P);
+ Matrix<double> SingleAxisRotation(double angle, int axis);
+ double PhaseWindup(DayTime& tt,
+ Position& SV,
+ Position& Rx2Tx,
+ Position& RxW,
+ Position& RxN,
+ double& shadow);
+// -----------------------------------------------------------------------------------
+} // end namespace gpstk
+#endif
diff --git a/dev/apps/geomatics/lib/PreciseRange.cpp b/dev/apps/geomatics/lib/PreciseRange.cpp
new file mode 100644
index 0000000..3575358
--- /dev/null
+++ b/dev/apps/geomatics/lib/PreciseRange.cpp
@@ -0,0 +1,201 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file PreciseRange.cpp
+ * Implement computation of range and associated quantities from EphemerisStore,
+ * including earth orientation corrections, given receiver position and time,
+ * in class PreciseRange.
+ */
+
+// -----------------------------------------------------------------------------------
+// GPSTk includes
+#include "PreciseRange.hpp"
+#include "MiscMath.hpp"
+#include "GPSGeoid.hpp"
+#include "icd_200_constants.hpp"
+#include "geometry.hpp"
+#include "GeodeticFrames.hpp"
+
+// Geomatic lib includes
+#include "GSatID.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ double PreciseRange::ComputeAtReceiveTime(const DayTime& tr_nom,
+ const Position& Rx,
+ const int prn,
+ const EphemerisStore& Eph,
+ const EarthOrientation& EO)
+ throw(EphemerisStore::NoEphemerisFound)
+ {
+ try {
+ int nit,i;
+ double tof,tof_old,wt,sx,sy;
+ GPSGeoid geoid;
+ static bool first=false;
+
+ nit = 0;
+ tof = 0.07; // time of flight, initial guess 70ms
+ do {
+ // best estimate of transmit time
+ transmit = tr_nom;
+ transmit -= tof;
+ tof_old = tof;
+
+ // get SV position
+ try {
+ GSatID sat(prn,GSatID::systemGPS);
+ Xvt svPosVel = Eph.getSatXvt(sat,transmit);
+ SVR = Position(svPosVel.x[0],svPosVel.x[1],svPosVel.x[2]);// default is
+ SVV = Position(svPosVel.v[0],svPosVel.v[1],svPosVel.v[2]);// Cartesian
+ SVdtime = svPosVel.dtime;
+ SVdrift = svPosVel.ddtime;
+ }
+ catch(EphemerisStore::NoEphemerisFound& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(InvalidRequest& ir)
+ {
+ EphemerisStore::NoEphemerisFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+
+ // compute new time of flight
+ tof = range(SVR,Rx);
+ tof /= geoid.c();
+
+ // correct for Earth rotation
+ double rr1,rr2;
+ Matrix<double> Rot1,Rot2;
+ Vector<double> Rterr1(3),Rcel(3),Rterr2(3);
+
+ wt = geoid.angVelocity()*tof;
+ Rot1 = rotation<double>(wt,3);
+ if(first) {
+ cout << "Simple rotation\n"
+ << fixed << setw(13) << setprecision(9) << Rot1 << endl;
+ }
+ Matrix<double> W=GeodeticFrames::PolarMotion(EO.xp,EO.yp);
+ Matrix<double> Srx =
+ rotation<double>(
+ (GeodeticFrames::GMST(transmit,0.0,false)
+ -GeodeticFrames::GMST(tr_nom,EO.UT1mUTC,false)),3);
+ Rot2 = transpose(W)*Srx;
+ if(first) {
+ cout << "Complex rotation\n"
+ << fixed << setw(13) << setprecision(9) << Rot2 << endl;
+ }
+
+ for(i=0; i<3; i++) Rcel(i)=SVR[i];
+ Rterr1 = Rot1*Rcel;
+ Rterr2 = Rot2*Rcel;
+ for(i=0; i<3; i++) SVR[i]=Rterr1(i);
+ //for(i=0; i<3; i++) SVR[i]=Rterr2(i);
+
+ rr1 = range(SVR,Rx);
+ rr2 = range(SVR,Rx);
+
+ if(first) {
+ cout << "Simple result "
+ << fixed << setw(13) << setprecision(9) << Rterr1 << endl;
+ cout << "Complex result "
+ << fixed << setw(13) << setprecision(9) << Rterr2 << endl;
+ cout << "Position difference "
+ << fixed << setw(13) << setprecision(9) << (Rterr1-Rterr2) << endl;
+ cout << "Range difference "
+ << fixed << setw(13) << setprecision(9) << (rr1-rr2) << endl;
+ first = false;
+ }
+
+ // update raw range
+ rawrange = rr1;
+ //rawrange = rr2;
+
+ tof = rawrange/geoid.c();
+
+ // dont forget velocity - used for relativity
+ for(i=0; i<3; i++) Rcel(i)=SVV[i];
+ Rterr1 = Rot1*Rcel;
+ for(i=0; i<3; i++) SVV[i]=Rterr1(i);
+ //Rterr2 = Rot2*Rcel;
+ //for(i=0; i<3; i++) SVV[i]=Rterr2(i);
+
+ } while(ABS(tof-tof_old)>1.e-13 && ++nit<5);
+
+ relativity = PreciseRelativityCorrection(SVR,SVV) * C_GPS_M;
+ // relativity correction is added to dtime by the
+ // EphemerisStore::getPrnXvt routines...
+
+ svclkbias = SVdtime*C_GPS_M - relativity;
+ svclkdrift = SVdrift * C_GPS_M;
+
+ cosines[0] = (Rx.X()-SVR.X())/rawrange;
+ cosines[1] = (Rx.Y()-SVR.Y())/rawrange;
+ cosines[2] = (Rx.Z()-SVR.Z())/rawrange;
+
+ elevation = Rx.elevation(SVR);
+ azimuth = Rx.azimuth(SVR);
+
+ return (rawrange-svclkbias-relativity);
+
+ }
+ catch(gpstk::Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end PreciseRange::ComputeAtReceiveTime
+
+ double PreciseRelativityCorrection(const Position& R, const Position& V)
+ {
+ // relativity correction is added to dtime by the
+ // EphemerisStore::getPrnXvt routines...
+ // dtr = -2*dot(R,V)/(c*c) = -4.4428e-10(s/sqrt(m)) * ecc * sqrt(A(m)) * sinE
+ // compute it separately here, in units seconds.
+ double dtr = -2*(R.X()/C_GPS_M)*(V.X()/C_GPS_M)
+ -2*(R.Y()/C_GPS_M)*(V.Y()/C_GPS_M)
+ -2*(R.Z()/C_GPS_M)*(V.Z()/C_GPS_M);
+
+ // TD add Sagnac and second order terms
+
+ return dtr;
+ }
+
+} // namespace gpstk
diff --git a/dev/apps/geomatics/lib/PreciseRange.hpp b/dev/apps/geomatics/lib/PreciseRange.hpp
new file mode 100644
index 0000000..b5a83e5
--- /dev/null
+++ b/dev/apps/geomatics/lib/PreciseRange.hpp
@@ -0,0 +1,124 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file PreciseRange.hpp
+ * Include file defining class PreciseRange: computation of range and associated
+ * quantities from EphemerisStore, including earth orientation corrections,
+ * given receiver position and time.
+ */
+
+//------------------------------------------------------------------------------------
+#ifndef EPHEMERIS_RANGE_HPP
+#define EPHEMERIS_RANGE_HPP
+
+//------------------------------------------------------------------------------------
+// GPSTk
+#include "DayTime.hpp"
+#include "Position.hpp"
+#include "EphemerisStore.hpp"
+#include "Matrix.hpp"
+#include "Xvt.hpp"
+
+// DDBase
+#include "EarthOrientation.hpp"
+
+//------------------------------------------------------------------------------------
+namespace gpstk
+{
+ /** @addtogroup ephemcalc */
+ //@{
+
+ /** class PreciseRange. Compute the corrected range from receiver
+ * at position Rx, to the GPS satellite given by PRN prn, as well as azimuth,
+ * elevation, etc., given a nominal timetag (either received or transmitted
+ * time) and an EphemerisStore.
+ */
+ class PreciseRange
+ {
+ public:
+ /// Default constructor.
+ PreciseRange() {}
+
+ /// Compute the corrected range at RECEIVE time, from receiver at
+ /// position Rx, to the GPS satellite given by PRN prn, as well as all
+ /// the CER quantities, given the nominal receive time tr_nom and
+ /// an EphemerisStore.
+ double ComputeAtReceiveTime(const DayTime& tr_nom,
+ const Position& Rx, const int prn, const EphemerisStore& Eph,
+ const EarthOrientation& EO)
+ throw(EphemerisStore::NoEphemerisFound);
+
+ /// Compute the corrected range at TRANSMIT time, from receiver at
+ /// position Rx, to the GPS satellite given by PRN prn, as well as all
+ /// the CER quantities, given the nominal receive time tr_nom and
+ /// an EphemerisStore.
+ double ComputeAtTransmitTime(const DayTime& tr_nom, const double& pr,
+ const Position& Rx, const int prn, const EphemerisStore& Eph,
+ const EarthOrientation& EO);
+
+ /// The computed raw (geometric) range in meters.
+ double rawrange;
+ /// The satellite clock bias in meters.
+ double svclkbias;
+ /// The satellite clock drift in m/s.
+ double svclkdrift;
+ /// The relativity correction in meters.
+ double relativity;
+ /// The satellite elevation, as seen at the receiver, in degrees.
+ double elevation;
+ /// The satellite azimuth, as seen at the receiver, in degrees.
+ double azimuth;
+ /// The computed transmit time of the signal.
+ DayTime transmit;
+ /// The direction cosines of the satellite, as seen at the receiver (XYZ).
+ Triple cosines;
+ /// The satellite position (m) and velocity (m/s) in ECEF coordinates.
+ Position SVR,SVV;
+ double SVdtime,SVdrift;
+
+ }; // end class PreciseRange
+
+ /// Compute relativity correction (meters) from the satellite position and velocity
+ double PreciseRelativityCorrection(const Position& R, const Position& V);
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/apps/geomatics/lib/RobustStats.cpp b/dev/apps/geomatics/lib/RobustStats.cpp
new file mode 100644
index 0000000..ed7e4e0
--- /dev/null
+++ b/dev/apps/geomatics/lib/RobustStats.cpp
@@ -0,0 +1,328 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file RobustStats.cpp
+ * Namespace Robust includes basic robust statistical computations, including median,
+ * median average deviation, quartiles and m-estimate, as well as implementation of
+ * of stem-and-leaf plots, quantile plots and robust least squares estimation of a
+ * polynomial.
+ * Reference: Mason, Gunst and Hess, "Statistical Design and
+ * Analysis of Experiments," Wiley, New York, 1989.
+ */
+
+//------------------------------------------------------------------------------------
+// GPSTk includes
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "Matrix.hpp"
+#include "RobustStats.hpp"
+
+//------------------------------------------------------------------------------------
+// moved to RobustStats.hpp as macros
+//const double gpstk::Robust::TuningT=1.5; // or 1.345; // or 1.5
+//const double gpstk::Robust::TuningA=0.778; // or 0.67; // or 0.778
+//const double gpstk::Robust::TuningE=0.6745;
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+inline long Stem(double x, double& scale) { return (long(x/scale)); }
+
+//------------------------------------------------------------------------------------
+void Robust::StemLeafPlot(ostream& os, double *xd, long nd, string msg)
+ throw(Exception)
+{
+ long stem, l, nout=0, s, sM, sQ1, sQ3, sOH, sOL;
+ int i, sign, pos, k, leaf;
+ unsigned len=0, kk;
+ char c;
+ double x,scale;
+ string buf;
+
+ if(!xd || nd < 2) GPSTK_THROW(Exception("Invalid input"));
+
+ // find range
+ double range = xd[nd-1] - xd[0]; // max - min
+ if(range < 0.0)
+ GPSTK_THROW(Exception("Array is not sorted"));
+ if(range == 0.0)
+ range = xd[0]; //GPSTK_THROW(Exception("Array has zero range"));
+
+ // find scale
+ scale = 0.0;
+ short nscale=0; // scale = 1*10^nscale
+ if(range >= 10.0)
+ sign = 1;
+ else if(range < 1.0)
+ sign = -1;
+ else
+ scale = 1.0;
+
+ if(!scale) do {
+ nscale += sign;
+ } while(range*::pow(10.0,-nscale) < 1.0 || range*::pow(10.0,-nscale) >= 10.0);
+
+ scale = ::pow(10.0,nscale);
+
+ double M=Robust::Median(xd,nd);
+ double Q1,Q3;
+ Robust::Quartiles(xd,nd,Q1,Q3);
+ // outlier limits
+ double OH=2.5*Q3-1.5*Q1; // outlier high limit
+ double OL=2.5*Q1-1.5*Q3; // outlier low limit ('oh L' not 'zero L')
+
+ // starting stem=stem(min=xd[0]), and stem step==scale
+ i = 1+short((range/scale)+0.5); // number of stems
+ if(xd[0]*xd[nd-1] < 0.0) i++; // add one stem for zero
+ if(nd > 8 && i < 8 && xd[nd-1] != xd[0]) { // fudge so #stems is big enough
+ scale /= 10.0;
+ nscale--;
+ }
+
+ // find length of stem for printing
+ buf = asString<long>(::abs(Stem(xd[0],scale)));
+ len = buf.size();
+ buf = asString<long>(::abs(Stem(xd[nd-1],scale)));
+ if(len < buf.size()) len=buf.size();
+ buf = asString<long>(::abs(Stem(M,scale)));
+ if(len < buf.size()) len=buf.size();
+
+ // loop through data, adding stems and leaves to plot
+ bool start=true;
+ if(xd[0] < 0.0) pos=-1; else pos=1;
+ sM = Stem(M,scale);
+ sQ1 = Stem(Q1,scale);
+ sQ3 = Stem(Q3,scale);
+ sOH = Stem(OH,scale);
+ sOL = Stem(OL,scale);
+ for(l=0; l<nd; l++) {
+ // current: stem=s,pos; data=stem,sign(xd[l])
+ if(xd[l]>OH || xd[l]<OL) nout++; // count outliers
+ sign = 1;
+ if(xd[l] < 0.0) sign=-1;
+ stem = Stem(fabs(xd[l]),scale);
+ x = 10*fabs(xd[l]/scale-sign*stem);
+ leaf = short(x + 0.5);
+ if(leaf == 10) {
+ stem++;
+ leaf=0;
+ }
+ stem = sign*stem;
+
+ // print it
+ if(start || s!=stem || (s==0 && pos*sign<0.0)) {
+ // Change of stem -> print
+ if(start) { // first time through
+ os << "Stem and Leaf Plot (scale "; // print scale
+ i=nscale;
+ if(nscale < 0) {
+ os << "0.";
+ i++;
+ k = 1;
+ }
+ else {
+ os << "1";
+ k = -1;
+ }
+ while(i != 0) {
+ os << "0";
+ i += k;
+ }
+ if(nscale < 0)
+ os << "1";
+ else
+ os << ".0";
+ os << ", " << nd << "pts) : "; // print npts
+ if(msg.size() > 0) os << msg; // and message
+ s = stem - 1; // save for later
+ start = false;
+ }
+
+ while(s < stem || (s==0 && pos*sign<0)) { // also print stems without leaves
+ if(s != 0) s++;
+ else if(pos < 0) pos = 1;
+ else s++;
+
+ // print the new line with stem s
+ os << "\n";
+ buf = asString<long>(s < 0 ? -s : s); // abs(stem)
+
+ //for(kk=buf.size(); kk<len; kk++) os << " ";
+ //if(s<0) c='-'; else if(s>0) c='+'; else if(pos>0)c='+'; else c='-';
+ //os << c;
+ //os << buf << " ";
+
+ if(s<0) c='-'; // sign of stem
+ else if(s>0) c='+';
+ else if(pos>0)c='+';
+ else c='-';
+ os << c;
+
+ for(kk=buf.size(); kk<len; kk++) os << " "; // pad out to length
+ os << buf << " "; // stem/axis space
+
+ // now print either |, M (median), Q (quartiles), or >< (outliers)
+ k=0;
+
+ // if s==sM
+ if(s==sM && (s!=0 || pos*M>0.0)) {
+ os << "M"; // marks the median
+ k++;
+ }
+
+ if((s == sQ3 && (s != 0 || pos*Q3 < 0.0)) ||
+ (s == sQ1 && (s != 0 || pos*Q1 < 0.0) )) {
+ os << "Q"; // marks a quartile
+ k++;
+ }
+
+ if((s < sOL || (s == 0 && sOL == 0 && (pos == -1 && OL > 0.0))) ||
+ (s == sOL && (s != 0 || pos*OL > 0.0))) {
+ os << "<"; // marks an outlier (small)
+ k++;
+ }
+ else if((s > sOH || (s == 0 && sOH == 0 && (pos == 1 && OH < 0.0))) ||
+ (s == sOH && (s != 0 || pos*OH > 0.0))) {
+ os << ">"; // marks an outlier (big)
+ k++;
+ }
+
+ if(k == 0) {
+ os << "|"; // marks a regular point
+ k++;
+ }
+
+ while(k < 3) {
+ os << " ";
+ k++;
+ }
+ }
+ } // end change stem
+
+ // print leaf
+ os << leaf;
+ }
+
+ os << "\nEND Stem and Leaf Plot (there are " << nout << " outliers.)\n";
+
+} // end StemLeafPlot
+
+
+void Robust::QuantilePlot(double *yd, long nd, double *xd)
+ throw(Exception)
+{
+ if(!xd || nd<2 || !yd) {
+ Exception e("Invalid input");
+ GPSTK_THROW(e);
+ }
+
+ double f;
+ for(int i=0; i<nd; i++) {
+ f = double(8*i+5)/double(8*nd+2); // f(i) = i-3/8 / n+1/4, i=1,n
+ xd[i] = 4.91*(::pow(f,0.14) - ::pow(1-f,0.14));
+ }
+
+} // end QuantilePlot
+
+
+int Robust::RobustPolyFit(double *xd, const double *td, int nd,
+ int N, double *c, double *w)
+ throw(Exception)
+{
+ try {
+ if(!xd || !td || !c || nd < 2) {
+ Exception e("Invalid input");
+ GPSTK_THROW(e);
+ }
+
+ int i,j,niter;
+ double x0=xd[0],t0=td[0],mad,median,conv,conv_limit=::sqrt(double(nd))*1.e-3;
+ Matrix<double> PT,P(nd,N,1.0),Cov;
+ Vector<double> Wts(nd,1.0), Coeff(N,0.0), D(nd), Res, ResCopy;
+
+ // build the data vector and the (constant) partials matrix
+ for(i=0; i<nd; i++) {
+ D(i) = xd[i]-x0;
+ for(j=1; j<N; j++)
+ P(i,j) = P(i,j-1)*(td[i]-t0);
+ }
+
+ // iterate until weights don't change
+ niter = 0;
+ while(1) {
+ // compute partials transpose multiplied by 'weight matrix'=diag(squared wts)
+ PT = transpose(P);
+ for(i=0; i<N; i++)
+ for(j=0; j<nd; j++)
+ PT(i,j) *= Wts(j)*Wts(j);
+ Cov = PT * P; // information matrix
+
+ // solve
+ try { Cov = inverse(Cov); }
+ catch(Exception& e) { return -1; }
+ Coeff = Cov * PT * D;
+
+ // compute residuals
+ ResCopy = Res = D - P*Coeff;
+
+ // compute median and MAD. NB Median() will sort the vector...
+ mad = MedianAbsoluteDeviation(&(ResCopy[0]),ResCopy.size(),median);
+
+ // recompute weights
+ Vector<double> OldWts(Wts);
+ for(i=0; i<nd; i++) {
+ if(Res(i) < -RobustTuningT*mad)
+ Wts(i) = -RobustTuningT*mad/Res(i);
+ else if(Res(i) > RobustTuningT*mad)
+ Wts(i) = RobustTuningT*mad/Res(i);
+ else
+ Wts(i) = 1.0;
+ }
+
+ // test for convergence
+ if(++niter > 20) return -2;
+ conv = RMS(OldWts - Wts);
+ if(conv > 1.) return -3;
+ if(niter > 2 && conv < conv_limit) break;
+ }
+
+ // copy out weights, residuals and solution
+ for(i=0; i<N; i++) c[i] = Coeff(i);
+ //c[0] += x0;
+ for(i=0; i<nd; i++) {
+ xd[i] = Res(i);
+ if(w) w[i] = Wts(i);
+ }
+
+ return 0;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/RobustStats.hpp b/dev/apps/geomatics/lib/RobustStats.hpp
new file mode 100644
index 0000000..2b7d019
--- /dev/null
+++ b/dev/apps/geomatics/lib/RobustStats.hpp
@@ -0,0 +1,477 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file RobustStats.hpp
+ * Namespace Robust includes basic robust statistical computations, including median,
+ * median average deviation, quartiles and m-estimate, as well as implementation of
+ * of stem-and-leaf plots, quantile plots and robust least squares estimation of a
+ * polynomial.
+ * Reference: Mason, Gunst and Hess, "Statistical Design and
+ * Analysis of Experiments," Wiley, New York, 1989.
+ */
+
+#ifndef GPSTK_ROBUSTSTATS_HPP
+#define GPSTK_ROBUSTSTATS_HPP
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+
+// GPSTk
+#include "Exception.hpp"
+
+namespace gpstk {
+//------------------------------------------------------------------------------------
+#define ABSOLUTE(x) ((x) < T() ? -(x) : (x))
+/// tuning constant used in M-estimate and Robust least squares (SRIFilter.cpp)
+#define RobustTuningT (1.5) // or 1.345
+/// tuning constant used in robust estimate of variance
+#define RobustTuningA (0.778) // or 0.67
+/// tuning constant used in MAD
+#define RobustTuningE (0.6745)
+
+//------------------------------------------------------------------------------------
+ /** @addtogroup math */
+ //@{
+
+ //--------------------------------------------------------------------------------
+ // quick sort, for use by robust statistics routines
+
+ /// Comparison function for sorting.
+ /// Default comparision function int comp(T a, T b) returns
+ /// 1 if a > b, -1 if a < b, and 0 if a==b. A user defined comparison
+ /// function may be passed as a calling argument to the sort routines.
+ /// @param a and b objects of type T to be compared
+ /// @return 1 if a > b, -1 if a < b, or 0 if a==b.
+ template <typename T>
+ int Qsort_compare(const T& a, const T& b) {
+ if(a > b) return 1;
+ else if(a < b) return -1;
+ else return 0;
+ }
+
+ /// Insert sort. operator>() and operator<() must be defined for T,
+ /// and a user comparison function comp(T,T) may be passed to override
+ /// the default Qsort_compare().
+ /// @param sa is the array of type T to be sorted.
+ /// @param na length of the array to be sorted.
+ template <typename T>
+ void insert(T *sa,
+ int na,
+ int (*comp)(const T&, const T&) = gpstk::Qsort_compare)
+ {
+ int i,j;
+ T stemp;
+ for(i=1; i < na; i=i+1) { // insert the i-th element into the sorted array
+ stemp = sa[i];
+ j = i - 1; // find where it goes
+ while((j >= 0) && (comp(stemp,sa[j]) < 0)) {
+ sa[j+1] = sa[j];
+ j = j - 1;
+ }
+ sa[j+1] = stemp;
+ }
+ } // end insert sort
+
+ /// Quick sort in memory, with insert sort for small arrays.
+ /// operator>() and operator<() must be defined for T,
+ /// and a user comparison function comp(T,T) may be passed to
+ /// override the default Qsort_compare().
+ /// @param sa is the array of type T to be sorted.
+ /// @param na length of the array to be sorted.
+ /// @param comp (optional) the comparison function to be used.
+ template <typename T>
+ void QSort(T *sa,
+ int na,
+ int (*comp)(const T&, const T&) = gpstk::Qsort_compare)
+ {
+ int i,j,nr;
+ T stemp, spart;
+ while(1) {
+ if(na < 8) { // use insert sort for small arrays
+ insert(sa,na,comp);
+ return;
+ }
+ spart = sa[na/2]; // pick middle element as pivot
+ i = -1;
+ j = na;
+ while(1) {
+ do { // find first element to move right
+ i = i + 1;
+ } while(comp(sa[i],spart) < 0);
+ do { // find first element to move left
+ j = j - 1;
+ } while(comp(sa[j], spart) > 0);
+ // if the boundaries have met,
+ // through paritioning,
+ if(i >= j) break;
+ // swap i and j elements
+ stemp = sa[i];
+ sa[i] = sa[j];
+ sa[j] = stemp;
+ }
+ nr = na - i;
+ if(i < (na/2)) { // now sort each partition
+ QSort(sa, i, comp); // sort left side
+ sa = &sa[i]; // sort right side here
+ na = nr; // memsort(&(sa[i]),nr,comp);
+ }
+ else {
+ QSort(&(sa[i]), nr, comp); // sort right side
+ na = i;
+ }
+ }
+ } // end QSort
+
+ /// Insert sort one vector, keeping a second parallel.
+ /// See the single-vector version of insert.
+ /// @param sa is the array of type T to be sorted.
+ /// @param pa is the array of type S to be kept parallel to the first.
+ /// @param na length of the array to be sorted.
+ template <typename T, typename S>
+ void insert(T *sa,
+ S *pa,
+ int na,
+ int (*comp)(const T&, const T&) = gpstk::Qsort_compare)
+ {
+ int i,j;
+ T stemp;
+ S ptemp;
+ for(i=1; i < na; i=i+1) { // insert the i-th element into the sorted array
+ stemp = sa[i];
+ ptemp = pa[i];
+ j = i - 1; // find where it goes
+ while((j >= 0) && (comp(stemp,sa[j]) < 0)) {
+ sa[j+1] = sa[j];
+ pa[j+1] = pa[j];
+ j = j - 1;
+ }
+ sa[j+1] = stemp;
+ pa[j+1] = ptemp;
+ }
+ } // end insert sort
+
+ /// Quick sort of one vector, keeping another parallel.
+ /// See the single-vector version of QSort.
+ /// @param sa is the array of type T to be sorted.
+ /// @param pa is the array of type S to be kept parallel to the first.
+ /// @param na length of the array to be sorted.
+ /// @param comp (optional) the comparison function to be used.
+ template <typename T, typename S>
+ void QSort(T *sa,
+ S *pa,
+ int na,
+ int (*comp)(const T&, const T&) = gpstk::Qsort_compare)
+ {
+ int i,j,nr;
+ T stemp, spart;
+ S ptemp, ppart;
+ while(1) {
+ if(na < 8) { // use insert sort for small arrays
+ insert(sa,pa,na,comp);
+ return;
+ }
+ spart = sa[na/2]; // pick middle element as pivot
+ ppart = pa[na/2];
+ i = -1;
+ j = na;
+ while(1) {
+ do { // find first element to move right
+ i = i + 1;
+ } while(comp(sa[i],spart) < 0);
+ do { // find first element to move left
+ j = j - 1;
+ } while(comp(sa[j], spart) > 0);
+ // if the boundaries have met,
+ // through paritioning,
+ if(i >= j) break;
+ // swap i and j elements
+ stemp = sa[i]; ptemp = pa[i];
+ sa[i] = sa[j]; pa[i] = pa[j];
+ sa[j] = stemp; pa[j] = ptemp;
+ }
+ nr = na - i;
+ if(i < (na/2)) { // now sort each partition
+ QSort(sa, pa, i, comp); // sort left side
+ sa = &sa[i]; // sort right side here
+ pa = &pa[i];
+ na = nr; // memsort(&(sa[i]),nr,comp);
+ }
+ else {
+ QSort(&(sa[i]), &(pa[i]), nr, comp); // sort right side
+ na = i;
+ }
+ }
+ } // end QSort
+
+ //--------------------------------------------------------------------------------
+ /// Robust statistics.
+ namespace Robust
+ {
+ /// Compute median of an array of length nd;
+ /// array xd is returned sorted, unless save_flag is true.
+ /// @param xd array of data.
+ /// @param nd length of array xd.
+ /// @param save_flag if true (default), array xd will NOT be trashed.
+ /// @return median of the data in array xd.
+ template <typename T>
+ T Median(T *xd, const int nd, bool save_flag=true)
+ throw(Exception)
+ {
+ if(!xd || nd < 2) {
+ Exception e("Invalid input");
+ GPSTK_THROW(e);
+ }
+
+ try {
+ int i;
+ T med, *save;
+
+ if(save_flag) {
+ save = new T[nd];
+ if(!save) {
+ Exception e("Could not allocate temporary array");
+ GPSTK_THROW(e);
+ }
+ for(i=0; i<nd; i++) save[i]=xd[i];
+ }
+
+ QSort(xd,nd);
+
+ if(nd%2)
+ med = xd[(nd+1)/2-1];
+ else
+ med = (xd[nd/2-1]+xd[nd/2])/T(2);
+
+ // restore original data from temporary
+ if(save_flag) {
+ for(i=0; i<nd; i++) xd[i]=save[i];
+ delete[] save;
+ }
+
+ return med;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+
+ } // end Median
+
+ /// Compute the quartiles Q1 and Q3 of an array of length nd.
+ /// Array is assumed sorted in ascending order.
+ /// Quartile are values such that one fourth of the
+ /// samples are larger (smaller) than Q3(Q1).
+ /// @param xd array of data.
+ /// @param nd length of array xd.
+ /// @param Q1 (output) first quartile of data in array xd.
+ /// @param Q3 (output) third quartile of data in array xd.
+ template <typename T>
+ void Quartiles(const T *xd, const int nd, T& Q1, T& Q3)
+ throw(Exception)
+ {
+ if(!xd || nd < 2) {
+ Exception e("Invalid input");
+ GPSTK_THROW(e);
+ }
+
+ int q;
+ if(nd % 2) q = (nd+1)/2;
+ else q = nd/2;
+
+ if(q % 2) {
+ Q1 = xd[(q+1)/2-1];
+ Q3 = xd[nd-(q+1)/2];
+ }
+ else {
+ Q1 = (xd[q/2-1]+xd[q/2])/T(2);
+ Q3 = (xd[nd-q/2]+xd[nd-q/2-1])/T(2);
+ }
+ } // end Quartiles
+
+ /// Compute the median absolute deviation of a double array of length nd,
+ /// as well as the median (M = Median(xd,nd));
+ /// NB this routine will trash the array xd unless save_flag is true (default).
+ /// @param xd array of data (input).
+ /// @param nd length of array xd (input).
+ /// @param M median of data in array xd (output).
+ /// @param save_flag if true (default), array xd will NOT be trashed.
+ /// @return median absolute deviation of data in array xd.
+ template <typename T>
+ T MedianAbsoluteDeviation(T *xd, int nd, T& M, bool save_flag=true)
+ throw(Exception)
+ {
+ int i;
+ T mad, *save;
+
+ if(!xd || nd < 2) {
+ Exception e("Invalid input");
+ GPSTK_THROW(e);
+ }
+
+ // store data in a temporary array
+ if(save_flag) {
+ save = new T[nd];
+ if(!save) {
+ Exception e("Could not allocate temporary array");
+ GPSTK_THROW(e);
+ }
+ for(i=0; i<nd; i++) save[i]=xd[i];
+ }
+
+ // get the median (don't care if xd gets sorted...)
+ M = Median(xd, nd, false);
+
+ // compute xd=abs(xd-M)
+ for(i=0; i<nd; i++) xd[i] = ABSOLUTE(xd[i]-M);
+
+ // sort xd in ascending order
+ QSort(xd, nd);
+
+ // find median and normalize to get mad
+ mad = Median(xd, nd, false) / T(RobustTuningE);
+
+ // restore original data from temporary
+ if(save_flag) {
+ for(i=0; i<nd; i++) xd[i]=save[i];
+ delete[] save;
+ }
+
+ return mad;
+
+ } // end MedianAbsoluteDeviation
+
+ /// Compute the median absolute deviation of a double array of length nd;
+ /// see MedianAbsoluteDeviation().
+ template <typename T>
+ T MAD(T *xd, int nd, T& M, bool save_flag=true)
+ throw(Exception)
+ { return MedianAbsoluteDeviation(xd,nd,M,save_flag); }
+
+ /// Compute the m-estimate. Iteratively determine the m-estimate, which
+ /// is a measure of mean or median, but is less sensitive to outliers.
+ /// M is the median (M=Median(xd,nd)), and MAD is the
+ /// median absolute deviation (MAD=MedianAbsoluteDeviation(xd,nd,M)).
+ /// Optionally, a pointer to an array, which will contain the weights
+ /// on output, may be provided.
+ /// @param xd input array of data.
+ /// @param nd input length of array xd.
+ /// @param M input median of data in array xd.
+ /// @param MAD input median absolute deviation of data in array xd.
+ /// @param w output array of length nd to contain weights on output.
+ /// @return m-estimate of data in array xd.
+ template <typename T>
+ T MEstimate(T *xd, int nd, const T& M, const T& MAD, T *w=NULL)
+ throw(Exception)
+ {
+ try {
+ T tv, m, mold, sum, sumw, *wt, weight, *t;
+ T tol=0.000001;
+ int i, n, N=10; // N is the max number of iterations
+
+ if(!xd || nd < 2) {
+ Exception e("Invalid input");
+ GPSTK_THROW(e);
+ }
+
+ tv = T(RobustTuningT)*MAD;
+ n = 0;
+ m = M;
+ do {
+ mold = m;
+ n++;
+ sum = sumw = T();
+ for(i=0; i<nd; i++) {
+ if(w) wt=&w[i];
+ else wt=&weight;
+ *wt = T(1);
+ if(xd[i]<m-tv) *wt = -tv/(xd[i]-m);
+ else if(xd[i]>m+tv) *wt = tv/(xd[i]-m);
+ sumw += (*wt);
+ sum += (*wt)*xd[i];
+ }
+ m = sum / sumw;
+
+ } while(T(ABSOLUTE((m-mold)/m)) > tol && n < N);
+
+ return m;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+
+ } // end MEstimate
+
+ /// Fit a polynomial of degree n to data xd, with independent variable td,
+ /// using robust techniques. The post-fit residuals are returned in the data
+ /// vector, and the computed weights in the result may be output as well.
+ /// Specifically, the equation describing the fit is
+ /// c0 + c[1]*t(j) + c[2]*t(j)*t(j) + ... c[n-1]*pow(t(j),n-1) = xd[j],
+ /// where the zero-th coefficient and the independent variable are debiased
+ /// by the first value; i.e. c0 = c[0]+xd[0] and t(j) = td[i]-td[0].
+ /// Specifically, to evaluate the polynomial at t, eval = f(t), do the following.
+ /// xd0 = xd[0];
+ /// Robust::RobustPolyFit(xd,td,nd,n,c);
+ /// eval = xd0+c[0]; tt = 1.0;
+ /// for(j=1; j<nd; j++) { tt *= (t-td[0]); eval += c[j]*tt; }
+ /// @param xd (input) array of data, of length nd; contains residuals on output.
+ /// @param td (input) array of independent variable, length nd (parallel to xd).
+ /// @param nd (input) length of arrays xd and td.
+ /// @param n (input) degree of polynomial and dimension of coefficient array.
+ /// @param c (output) array of coefficients (dimension n).
+ /// @param w (output, if non-null) array of length nd to contain weights.
+ /// @return 0 for success, -1 for singular problem, -2 failure to converge.
+ int RobustPolyFit(double *xd, const double *td, int nd,
+ int n, double *c, double *w=NULL)
+ throw(Exception);
+
+ /// Print 'stem and leaf' plot of the data in the double array xd of length nd,
+ /// with an optional message, on the given output ostream. It is assumed that
+ /// the input array xd is sorted in ascending order.
+ /// @param os ostream on which to write output.
+ /// @param xd array of data.
+ /// @param nd length of array xd.
+ /// @param msg string containing optional message for output.
+ void StemLeafPlot(std::ostream& os, double *xd, long nd,
+ std::string msg=std::string(""))
+ throw(Exception);
+
+ /// Generate data for a quantile-quantile plot. Given an array of data yd,
+ /// of length nd (sorted in ascending order), and another array xd of the
+ /// same length, fill the xd array with data such that (xd,yd) give a
+ /// quantile-quantile plot. The distribution of yd is a normal distribution
+ /// to the extent that this plot is a straight line, with y-intercept and
+ /// slope identified with mean and standard deviation, respectively, of the
+ /// distribution.
+ /// @param yd array of data, sorted in ascending order.
+ /// @param nd length of array xd.
+ /// @param xd array of length nd containing quantiles of yd on output.
+ void QuantilePlot(double *yd, long nd, double *xd)
+ throw(Exception);
+
+ } // end Robust namespace
+
+ //@}
+
+} // end namespace gpstk
+
+#undef ABSOLUTE
+
+#endif
diff --git a/dev/apps/geomatics/lib/SRI.cpp b/dev/apps/geomatics/lib/SRI.cpp
new file mode 100644
index 0000000..bd8e641
--- /dev/null
+++ b/dev/apps/geomatics/lib/SRI.cpp
@@ -0,0 +1,951 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SRI.cpp
+ * Implementation of class SRI.
+ * class SRI implements the square root information methods, used for least squares
+ * estimation and the SRI form of the Kalman filter.
+ *
+ * Reference: "Factorization Methods for Discrete Sequential Estimation,"
+ * by G.J. Bierman, Academic Press, 1977.
+ */
+
+// -----------------------------------------------------------------------------------
+// system
+#include <string>
+#include <vector>
+#include <algorithm>
+#include <ostream>
+// GPSTk
+#include "SRI.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+using namespace StringUtils;
+
+ // --------------------------------------------------------------------------------
+ // used to mark optional input
+ const Matrix<double> SRINullMatrix;
+
+ //---------------------------------------------------------------------------------
+ // constructor given the dimension N.
+ SRI::SRI(const unsigned int N)
+ throw()
+ {
+ R = Matrix<double>(N,N,0.0);
+ Z = Vector<double>(N,0.0);
+ names = Namelist(N);
+ }
+
+ // --------------------------------------------------------------------------------
+ // constructor given a Namelist, its dimension determines the SRI dimension.
+ SRI::SRI(const Namelist& nl)
+ throw()
+ {
+ if(nl.size() <= 0) return;
+ R = Matrix<double>(nl.size(),nl.size(),0.0);
+ Z = Vector<double>(nl.size(),0.0);
+ names = nl;
+ }
+
+ // --------------------------------------------------------------------------------
+ // explicit constructor - throw if the dimensions are inconsistent.
+ SRI::SRI(const Matrix<double>& r,
+ const Vector<double>& z,
+ const Namelist& nl)
+ throw(MatrixException)
+ {
+ if(r.rows() != r.cols() || r.rows() != z.size() || r.rows() != nl.size()) {
+ MatrixException me("Invalid dimensions in explicit SRI constructor:\n R is "
+ + asString<int>(r.rows()) + "x"
+ + asString<int>(r.cols()) + ", Z has length "
+ + asString<int>(z.size()) + " and NL has length "
+ + asString<int>(nl.size())
+ );
+ GPSTK_THROW(me);
+ }
+ if(r.rows() <= 0) return;
+ R = r;
+ Z = z;
+ names = nl;
+ }
+
+ // --------------------------------------------------------------------------------
+ // copy constructor
+ SRI::SRI(const SRI& s)
+ throw()
+ {
+ R = s.R;
+ Z = s.Z;
+ names = s.names;
+ }
+
+ // --------------------------------------------------------------------------------
+ // operator=
+ SRI& SRI::operator=(const SRI& right)
+ throw()
+ {
+ R = right.R;
+ Z = right.Z;
+ names = right.names;
+ return *this;
+ }
+
+ // ---------------------------------------------------------------------------
+ // modify SRIs
+ // --------------------------------------------------------------------------------
+ // Permute the SRI elements to match the input Namelist, which may differ with
+ // the SRI Namelist by AT MOST A PERMUTATION, throw if this is not true.
+ void SRI::permute(const Namelist& nl)
+ throw(MatrixException,VectorException)
+ {
+ if(identical(names,nl)) return;
+ if(names != nl) {
+ MatrixException me("Invalid input: Namelists must be == to permute");
+ GPSTK_THROW(me);
+ }
+
+ try {
+ unsigned int i,j;
+ // build a permutation matrix
+ Matrix<double> P(R.rows(),R.rows(),0.0);
+ for(i=0; i<R.rows(); i++) {
+ j = nl.index(names.getName(i));
+ P(j,i) = 1;
+ }
+
+ Matrix<double> B;
+ Vector<double> Q;
+ B = P * R * transpose(P);
+ Q = P * Z;
+
+ // re-triangularize
+ R = 0.0;
+ Z = 0.0;
+ SrifMU(R,Z,B,Q);
+ names = nl;
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // Split this SRI (call it S) into two others, S1 and Sleft, where S1 has
+ // a Namelist identical to the input Namelist (NL); set *this = S1 at the
+ // end. NL must be a non-empty subset of names, and (names ^ NL) also must
+ // be non-empty; throw MatrixException if this is not true. The second
+ // output SRI, Sleft, will have the same names as S, but perhaps permuted.
+ //
+ // The routine works by first permuting S so that its Namelist if of the
+ // form {N2,NL}, where N2 = (names ^ NL); this is possible only if NL is
+ // a non-trivial subset of names. Then, the rows of S (rows of R and elements
+ // of Z) naturally separate into the two component SRIs, with zeros in the
+ // elements of the first SRI which correspond to N2, and those in Sleft
+ // which correspond to NL.
+ //
+ // Example: S.name = A B C D E F G and NL = D E F G.
+ // (Obviously, S may be permuted into such an order whenever this is needed.)
+ // Note that here the R,Z pair is written in a format reminiscent of the
+ // set of equations implied by R*X=Z, i.e. 1A+2B+3C+4D+5E+6F+7G=a, etc.
+ //
+ // S (R Z) = S1 + Sleft
+ // with names NL names
+ // A B C D E F G . . . D E F G A B C D E F G
+ // - - - - - - - - - - - - - - - - - - - - - - - -
+ // 1 2 3 4 5 6 7 a = . . . . . . . . + 1 2 3 4 5 6 7 a
+ // 8 9 1 2 3 4 b . . . . . . . 8 9 1 2 3 4 b
+ // 5 6 7 8 9 c . . . . . . 5 6 7 8 9 c
+ // 1 2 3 4 d 1 2 3 4 d . . . . d
+ // 5 6 7 e 5 6 7 e . . . e
+ // 8 9 f 8 9 f . . f
+ // 1 g 1 g . g
+ //
+ // where "." denotes a zero. The split is simply separating the linear
+ // equations which make up R*X=Z into two groups; because of the ordering,
+ // one of the groups of equations (S1) depends only on a particular subset
+ // of the elements of the state vector, i.e. the elements labelled by the
+ // Namelist NL.
+ //
+ // The equation shown here is an information equation; if the two SRIs S1
+ // and Sleft were merged again, none of the information would be lost.
+ // Note that S1 has no dependence on A B C (hence the .'s), and therefore
+ // its size can be reduced. However S2 still depends on the full names
+ // Namelist. Sleft is necessarily singular, but S1 is not.
+ //
+ // Note that the SRI contains information about both the solution and
+ // the covariance, i.e. state and noise, and therefore one must be very careful
+ // in interpreting the results of split and merge (operator+=). [Be especially
+ // careful about the idea that a merge might be reversible with a split() or
+ // vice-versa - strictly this is never possible unless the Namelists are
+ // mutually exclusive - two separate problems.]
+ //
+ // For example, suppose two different SRI's, which have some elements in common,
+ // are merged. The combined SRI will have more information (it can't have less)
+ // about the common elements, and therefore the solution will be 'better'
+ // (assuming the underlying model equations for those elements are identical).
+ // However the noises will also be combined, and the results you get might be
+ // surprising. Also, note that if you then split the combined SRI again, the
+ // solution won't change but the noises will be very different; in particular
+ // the new split part will take all the information with it, so the common states
+ // will have lower noise than they did in the original SRI.
+ // See the test program tsri.cpp
+ //
+ void SRI::split(const Namelist& NL, SRI& Sleft)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ Sleft = SRI(0);
+ unsigned int n,m;
+ n = NL.size();
+ m = names.size();
+ if(n >= m) {
+ MatrixException me("Input Namelist must be a subset of this one");
+ GPSTK_THROW(me);
+ }
+
+ unsigned int i,j;
+ // copy names and permute it so that its end matches NL
+ Namelist N0(names);
+ for(i=1; i<=n; i++) { // loop (backwards) over names in NL
+ for(j=1; j<=m; j++) { // search (backwards) in NO for a match
+ if(NL.labels[n-i] == N0.labels[m-j]) { // if found a match
+ N0.swap(m-i,m-j); // then move matching name to end
+ break; // and go on to next name in NL
+ }
+ }
+ if(j > m) {
+ MatrixException me("Input Namelist is not a non-trivial subset");
+ GPSTK_THROW(me);
+ }
+ }
+
+ // copy *this into Sleft, then do the permutation
+ Sleft = *this;
+ Sleft.permute(N0);
+
+ // copy parts of Sleft into S1, and then zero out those parts of Sleft
+ SRI S1(NL);
+ S1.R = Matrix<double>(Sleft.R,m-n,m-n,n,n);
+ //S1.Z = Vector<double>(Sleft.Z,m-n,n);
+ S1.Z.resize(n);
+ for(i=0; i<n; i++) S1.Z(i) = Sleft.Z(m-n+i);
+ for(i=m-n; i<m; i++) Sleft.zeroOne(i);
+
+ *this = S1;
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // extend this SRI to include the given Namelist, with no added information;
+ // names in the input namelist which are not unique are ignored.
+ SRI& SRI::operator+=(const Namelist& NL)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ Namelist B(names);
+ // NB assume that Namelist::operator|=() adds at the _end_
+ B |= NL;
+ // NB assume that this zeros A.R and A.Z
+ SRI A(B);
+ // should do this with slices..
+ // copy into the new SRI
+ for(unsigned int i=0; i<R.rows(); i++) {
+ A.Z(i) = Z(i);
+ for(unsigned int j=0; j<R.cols(); j++) A.R(i,j) = R(i,j);
+ }
+ *this = A;
+ return *this;
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // reshape this SRI to match the input Namelist, by calling other member
+ // functions, including split(), operator+() and permute()
+ // Given this SRI and a new Namelist NL, if NL does not match names,
+ // transform names to match it, using (1) drop elements (this is probably
+ // optional - you can always keep 'dead' elements), (2) add new elements
+ // (with zero information), and (3) permute to match NL.
+ void SRI::reshape(const Namelist& NL)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ if(names == NL) return;
+ Namelist keep(names);
+ keep &= NL; // keep only those in both names and NL
+ //Namelist drop(names); // (drop is unneeded - split would do it)
+ //drop ^= keep; // lose those in names but not in keep
+ Namelist add(NL);
+ add ^= keep; // add those in NL but not in keep
+ SRI Sdrop; // make a new SRI to hold the losers
+ // would like to allow caller access to Sdrop..
+ split(keep,Sdrop); // split off only the losers
+ // NB names = drop | keep; drop & keep is empty
+ *this += add; // add the new ones
+ this->permute(NL); // permute it to match NL
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // merge this SRI with the given input SRI. ? should this be operator&=() ?
+ // NB may reorder the names in the resulting Namelist.
+ SRI& SRI::operator+=(const SRI& S)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ Namelist all(names);
+ all |= S.names; // assumes Namelist::op|= adds unique S.names to _end_
+
+ //all.sort(); // TEMP - for testing with old version
+
+ // stack the (R|Z)'s from both in one matrix;
+ // all determines the columns, plus last column is for Z
+ unsigned int i,j,k,n,m,sm;
+ n = all.labels.size();
+ m = R.rows();
+ sm = S.R.rows();
+ Matrix<double> A(m+sm,n+1,0.0);
+
+ // copy R into A, permuting columns as names differs from all
+ // loop over columns of R; do Z at the same time using j=row
+ for(j=0; j<m; j++) {
+ // find where this column of R goes in A
+ // (should never throw..)
+ k = all.index(names.labels[j]);
+ if(k == -1) {
+ MatrixException me("Algorithm error 1");
+ GPSTK_THROW(me);
+ }
+
+ // copy this col of R into A (R is UT)
+ for(i=0; i<=j; i++) A(i,k) = R(i,j);
+ // also the jth element of Z
+ A(j,n) = Z(j);
+ }
+ // now do the same for S, but put S.R|S.Z below R|Z
+ for(j=0; j<sm; j++) {
+ k = all.index(S.names.labels[j]);
+ if(k == -1) {
+ MatrixException me("Algorithm error 2");
+ GPSTK_THROW(me);
+ }
+ for(i=0; i<=j; i++) A(m+i,k) = S.R(i,j);
+ A(m+j,n) = S.Z(j);
+ }
+
+ // now triangularize A and pull out the new R and Z
+ Householder<double> HA;
+ HA(A);
+ // submatrix args are matrix,toprow,topcol,numrows,numcols
+ R = Matrix<double>(HA.A,0,0,n,n);
+ Vector<double> T = Vector<double>(HA.A.colCopy(n));
+ Z = Vector<double>(T,0,n);
+ names = all;
+
+ return *this;
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // merge two SRIs to produce a third. ? should this be operator&() ?
+ SRI operator+(const SRI& Sleft,
+ const SRI& Sright)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ SRI S(Sleft);
+ S += Sright;
+ return S;
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // Zero out the nth row of R and the nth element of Z, removing all
+ // information about that element.
+ void SRI::zeroOne(const unsigned int n)
+ throw()
+ {
+ if(n >= R.rows())
+ return;
+
+ //TD this is not right -- you should permute the element
+ //to the first row, then zero
+ for(unsigned int j=n; j<R.cols(); j++)
+ R(n,j) = 0.0;
+ Z(n) = 0.0;
+ }
+
+ // --------------------------------------------------------------------------------
+ // Zero out all the first n rows of R and elements of Z, removing all
+ // information about those elements. Default value of the input is 0,
+ // meaning zero out the entire SRI.
+ void SRI::zeroAll(const int n)
+ throw()
+ {
+ if(n <= 0) {
+ R = 0.0;
+ Z = 0.0;
+ return;
+ }
+
+ if(n >= R.rows())
+ return;
+
+ for(unsigned int i=0; i<n; i++) {
+ for(unsigned int j=i; j<R.cols(); j++)
+ R(i,j) = 0.0;
+ Z(i) = 0.0;
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // Shift the state vector by a constant vector X0; does not change information
+ // i.e. let R * X = Z => R * (X-X0) = Z'
+ // throw on invalid input dimension
+ void SRI::shift(const Vector<double>& X0)
+ throw(MatrixException)
+ {
+ if(X0.size() != R.cols()) {
+ MatrixException me("Invalid input dimension: SRI has dimension "
+ + asString<int>(R.rows()) + " while input has length "
+ + asString<int>(X0.size())
+ );
+ GPSTK_THROW(me);
+ }
+ Z = Z - R * X0;
+ }
+
+ // --------------------------------------------------------------------------------
+ // Transform this SRI with the transformation matrix T;
+ // i.e. R -> T * R * inverse(T) and Z -> T * Z. The matrix inverse(T)
+ // may optionally be supplied as input, otherwise it is computed from
+ // T. NB names in this SRI are most likely changed; but this routine does
+ // not change the Namelist. Throw MatrixException if the input has
+ // the wrong dimension or cannot be inverted.
+ void SRI::transform(const Matrix<double>& T,
+ const Matrix<double>& invT)
+ throw(MatrixException,VectorException)
+ {
+ if(T.rows() != R.rows() ||
+ T.cols() != R.cols() ||
+ (&invT != &SRINullMatrix && (invT.rows() != R.rows() ||
+ invT.cols() != R.cols()))) {
+ MatrixException me("Invalid input dimension:\n SRI has dimension "
+ + asString<int>(R.rows()) + " while T has dimension "
+ + asString<int>(T.rows()) + "x"
+ + asString<int>(T.cols()));
+ if(&invT != &SRINullMatrix) me.addText("\n and invT has dimension "
+ + asString<int>(invT.rows()) + "x"
+ + asString<int>(invT.cols()));
+ GPSTK_THROW(me);
+ }
+
+ try {
+ // get the inverse matrix
+ Matrix<double> Ti(T);
+ if(&invT == &SRINullMatrix)
+ Ti = inverseSVD(T);
+ else
+ Ti = invT;
+
+ // transform
+ Matrix<double> B = T * R * Ti;
+ Vector<double> Q = T * Z;
+
+ // re-triangularize
+ R = 0.0;
+ Z = 0.0;
+ SrifMU(R,Z,B,Q);
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // Transform the state by the transformation matrix T; i.e. X -> T*X,
+ // without transforming the SRI; this is done by right multiplying R by
+ // inverse(T), which is the input. Thus R -> R*inverse(T),
+ // so R*inverse(T)*T*X = Z. Input is the _inverse_ of the transformation.
+ // throw MatrixException if input dimensions are wrong.
+ void SRI::transformState(const Matrix<double>& invT)
+ throw(MatrixException)
+ {
+ if(invT.rows() != R.rows() || invT.cols() != R.rows()) {
+ MatrixException me("Invalid input dimension: SRI has dimension "
+ + asString<int>(R.rows()) + " while invT has dimension "
+ + asString<int>(invT.rows()) + "x"
+ + asString<int>(invT.cols()));
+ GPSTK_THROW(me);
+ }
+
+ // transform
+ Matrix<double> A = R * invT;
+ // re-triangularize
+ Householder<double> HA;
+ HA(A);
+ R = HA.A;
+ }
+
+ // --------------------------------------------------------------------------------
+ // Decrease the information in this SRI for, or 'Q bump', the element
+ // with the input index. This means that the uncertainty and the state
+ // element given by the index are divided by the input factor q; the
+ // default input is zero, which means zero out the information (q = infinite).
+ // A Q bump by factor q is equivalent to 'de-weighting' the element by q.
+ // No effect if input index is out of range.
+ //
+ // Use a specialized form of the time update, with Phi=unity, G(N x 1) = 0
+ // except 1 for the element (in) getting bumped, and Rw(1 x 1) = 1 / q.
+ // Note that this bump of the covariance for element k results in
+ // Cov(k,k) += q (plus, not times!).
+ // if q is 0, replace q with 1/q, i.e. lose all information, covariance
+ // goes singular; this is equivalent to (1) permute so that the 'in'
+ // element is first, (2) zero out the first row of R and the first element
+ // of Z, (3) permute the first row back to in.
+ void SRI::Qbump(const unsigned int& in,
+ const double& q)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ if(in >= R.rows()) return;
+ double factor=0.0;
+ if(q != 0.0) factor=1.0/q;
+
+ unsigned int ns=1,i,j,n=R.rows();
+
+ Matrix<double> A(n+ns,n+ns+1,0.0), G(n,ns,0.0);
+ A(0,0) = factor; // Rw, dimension ns x ns = 1 x 1
+ G(in,0) = 1.0;
+ G = R * G; // R*Phi*G
+ for(i=0; i<n; i++) {
+ A(ns+i,0) = -G(i,0); // A = Rw 0 zw=0
+ for(j=0; j<n; j++) // -R*Phi*G R*Phi Z
+ if(i<=j) A(ns+i,ns+j) = R(i,j); //
+ A(ns+i,ns+n) = Z(i);
+ }
+
+ // triangularize and pull out the new R and Z
+ Householder<double> HA; // A = Rw Rwx zw
+ HA(A); // 0 R z
+ R = Matrix<double>(HA.A,ns,ns,n,n);
+ Vector<double> T=HA.A.colCopy(ns+n);
+ Z = Vector<double>(T,ns,n);
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // Fix the state element with the input index to the input value, and
+ // collapse the SRI by removing that element.
+ // No effect if index is out of range.
+ void SRI::biasFix(const unsigned int& in,
+ const double& bias)
+ throw(MatrixException,VectorException)
+ {
+ if(in >= R.rows()) return;
+
+ try {
+ unsigned int i,j,ii,jj,n=R.rows();
+ Vector<double> Znew(n-1,0.0);
+ Matrix<double> Rnew(n-1,n-1,0.0);
+ // move the X(in) terms to the data vector on the RHS
+ for(i=0; i<=in; i++) Z(i) -= R(i,in)*bias;
+ for(i=0,ii=0; i<=n; i++) {
+ if(i == in) continue;
+ Znew(ii) = Z(i);
+ for(j=i,jj=ii; j<n; j++) {
+ if(j == in) continue;
+ Rnew(ii,jj) = R(i,j);
+ jj++;
+ }
+ ii++;
+ }
+ R = Rnew;
+ Z = Znew;
+ names -= names.labels[in];
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // Add a priori or 'constraint' information
+ void SRI::addAPriori(const Matrix<double>& Cov, const Vector<double>& X)
+ throw(MatrixException)
+ {
+ if(Cov.rows() != Cov.cols() || Cov.rows() != R.rows() || X.size() != R.rows()) {
+ MatrixException me("Invalid input dimensions:\n SRI has dimension "
+ + asString<int>(R.rows()) + ",\n while input is Cov("
+ + asString<int>(Cov.rows()) + "x"
+ + asString<int>(Cov.cols()) + ") and X("
+ + asString<int>(X.size()) + ")."
+ );
+ GPSTK_THROW(me);
+ }
+
+ try {
+ Matrix<double> invcovar;
+ Vector<double> zstate;
+
+ invcovar = inverse(Cov);
+ Cholesky<double> Ch;
+ Ch(invcovar);
+ zstate = Ch.U * X; // R = UT(inv(Cov)) and z = R*X
+ SrifMU(R, Z, Ch.U, zstate);
+ }
+ catch(MatrixException& me) {
+ GPSTK_THROW(me);
+ }
+ }
+
+ // --------------------------------------------------------------------------------
+ // get the state X and the covariance matrix C of the state, where
+ // C = transpose(inverse(R))*inverse(R) and X = inverse(R) * Z.
+ // Throws MatrixException if R is singular.
+ // NB this is the most efficient way to invert the SRI problem.
+ void SRI::getStateAndCovariance(Vector<double>& X,
+ Matrix<double>& C,
+ double *ptrSmall,
+ double *ptrBig)
+ throw(MatrixException,VectorException)
+ {
+ try {
+ Matrix<double> invR;
+ invR = inverseUT(R,ptrSmall,ptrBig);
+ C = UTtimesTranspose(invR);
+ X = invR * Z;
+ }
+ catch(MatrixException& me) {
+ GPSTK_RETHROW(me);
+ }
+ catch(VectorException& ve) {
+ GPSTK_RETHROW(ve);
+ }
+ }
+
+ //---------------------------------------------------------------------------------
+ // output operator
+ ostream& operator<<(ostream& os, const SRI& S)
+ {
+ Namelist NL(S.names);
+ NL += string("State");
+ Matrix<double> A;
+ A = S.R || S.Z;
+ LabelledMatrix LM(NL,A);
+
+ LM.setw(os.width());
+ LM.setprecision(os.precision());
+ os << LM;
+ return os;
+ }
+
+ //---------------------------------------------------------------------------------
+ // This routine uses the Householder algorithm to update the SRIFilter
+ // state and covariance.
+ // Input:
+ // R a priori SRI matrix (upper triangular, dimension N)
+ // Z a priori SRI data vector (length N)
+ // A concatentation of H and D : A = H || D, where
+ // H Measurement partials, an M by N matrix.
+ // D Data vector, of length M
+ // H and D may have row dimension > M; then pass M:
+ // M (optional) Row dimension of H and D
+ // Output:
+ // Updated R and Z. H is trashed, but the data vector D
+ // contains the residuals of fit (D - A*state).
+ // Return values:
+ // SrifMU returns void, but throws exceptions if the input matrices
+ // or vectors have incompatible dimensions.
+ //
+ // Measurment noise associated with H and D must be white
+ // with unit covariance. If necessary, the data can be 'whitened'
+ // before calling this routine in order to satisfy this requirement.
+ // This is done as follows. Compute the lower triangular square root
+ // of the covariance matrix, L, and replace H with inverse(L)*H and
+ // D with inverse(L)*D.
+ //
+ // The Householder transformation is simply an orthogonal
+ // transformation designed to make the elements below the diagonal
+ // zero. It works by explicitly performing the transformation, one
+ // column at a time, without actually constructing the transformation
+ // matrix. Let y be column k of the input matrix. y can be zeroed
+ // below the diagonal as follows: let sum=sign(y(k))*sqrt(y*y), and
+ // define vector u(k)=y(k)+sum, u(j)=y(j) (j.gt.k). This defines the
+ // transformation matrix as (1-bu*u), with b=2/u*u=1/sum*u(k).
+ // Redefine y(k)=u(k) and apply the transformation to elements of the
+ // input matrix below and to the right of the (k,k) element. This
+ // algorithm for each column k=0,n-1 in turn is equivalent to a single
+ // orthogonal transformation which triangularizes the matrix.
+ //
+ // Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+ // Estimation," Academic Press, 1977.
+ template <class T>
+ void SrifMU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& A,
+ unsigned int M)
+ throw(MatrixException)
+ {
+ if(A.cols() <= 1 || A.cols() != R.cols()+1 || Z.size() < R.rows()) {
+ if(A.cols() > 1 && R.rows() == 0 && Z.size() == 0) {
+ // create R and Z
+ R = Matrix<double>(A.cols()-1,A.cols()-1,0.0);
+ Z = Vector<double>(A.cols()-1,0.0);
+ }
+ else {
+ MatrixException me("Invalid input dimensions:\n R has dimension "
+ + asString<int>(R.rows()) + "x"
+ + asString<int>(R.cols()) + ",\n Z has length "
+ + asString<int>(Z.size()) + ",\n and A has dimension "
+ + asString<int>(A.rows()) + "x"
+ + asString<int>(A.cols()));
+ GPSTK_THROW(me);
+ }
+ }
+
+ const T EPS=-T(1.e-200);
+ unsigned int m=M, n=R.rows();
+ if(m==0 || m > A.rows()) m=A.rows();
+ unsigned int np1=n+1; // if np1 = n, state vector Z is not updated
+ unsigned int i,j,k;
+ T dum, delta, beta;
+
+ for(j=0; j<n; j++) { // loop over columns
+ T sum = T(0);
+ for(i=0; i<m; i++)
+ sum += A(i,j)*A(i,j); // sum squares of elements in this column
+ if(sum <= T(0)) continue;
+
+ dum = R(j,j);
+ sum += dum * dum;
+ sum = (dum > T(0) ? -T(1) : T(1)) * ::sqrt(sum);
+ delta = dum - sum;
+ R(j,j) = sum;
+
+ if(j+1 > np1) break;
+
+ beta = sum*delta;
+ if(beta > EPS) continue;
+ beta = T(1)/beta;
+
+ for(k=j+1; k<np1; k++) { // columns to right of diagonal
+ sum = delta * (k==n ? Z(j) : R(j,k));
+ for(i=0; i<m; i++)
+ sum += A(i,j) * A(i,k);
+ if(sum == T(0)) continue;
+
+ sum *= beta;
+ if(k==n) Z(j) += sum*delta;
+ else R(j,k) += sum*delta;
+
+ for(i=0; i<m; i++)
+ A(i,k) += sum * A(i,j);
+ }
+ }
+ } // end SrifMU
+
+ //---------------------------------------------------------------------------------
+ // This is simply SrifMU(R,Z,A) with H and D passed in rather
+ // than concatenated into a single Matrix A = H || D.
+ template <class T>
+ void SrifMU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& H,
+ Vector<T>& D,
+ unsigned int M)
+ throw(MatrixException)
+ {
+ Matrix<double> A;
+ try { A = H || D; }
+ catch(MatrixException& me) { GPSTK_RETHROW(me); }
+
+ SrifMU(R,Z,A,M);
+
+ // copy residuals out of A into D
+ D = Vector<double>(A.colCopy(A.cols()-1));
+ }
+
+ //---------------------------------------------------------------------------------
+ // Invert the upper triangular matrix stored in the square matrix UT, using a very
+ // efficient algorithm. Throw MatrixException if the matrix is singular.
+ // If the pointers are defined, on exit (but not if an exception is thrown),
+ // they return the smallest and largest eigenvalues of the matrix.
+ template <class T>
+ Matrix<T> inverseUT(const Matrix<T>& UT,
+ T *ptrSmall,
+ T *ptrBig)
+ throw(MatrixException)
+ {
+ if(UT.rows() != UT.cols() || UT.rows() == 0) {
+ MatrixException me("Invalid input dimensions: "
+ + asString<int>(UT.rows()) + "x"
+ + asString<int>(UT.cols()));
+ GPSTK_THROW(me);
+ }
+
+ unsigned int i,j,k,n=UT.rows();
+ T big,small,sum,dum;
+ Matrix<T> Inv(UT);
+
+ // start at the last row,col
+ dum = UT(n-1,n-1);
+ if(dum == T(0))
+ throw SingularMatrixException("Singular matrix");
+
+ big = small = dum;
+ Inv(n-1,n-1) = T(1)/dum;
+ if(n == 1) return Inv; // 1x1 matrix
+ for(i=0; i<n-1; i++) Inv(n-1,i)=0;
+
+ // now move to rows i = n-2 to 0
+ for(i=n-2; i>=0; i--) {
+ if(UT(i,i) == T(0))
+ throw SingularMatrixException("Singular matrix");
+
+ if(fabs(UT(i,i)) > big) big = fabs(UT(i,i));
+ if(fabs(UT(i,i)) < small) small = fabs(UT(i,i));
+ dum = T(1)/UT(i,i);
+ Inv(i,i) = dum; // diagonal element first
+
+ // now do off-diagonal elements (i,i+1) to (i,n-1)
+ for(j=i+1; j<n; j++) {
+ sum = T(0);
+ for(k=i+1; k<=j; k++)
+ sum += Inv(k,j) * UT(i,k);
+ Inv(i,j) = - sum * dum;
+ }
+ for(j=0; j<i; j++) Inv(i,j)=0;
+
+ if(i==0) break; // NB i is unsigned, hence 0-1 = 4294967295!
+ }
+
+ if(ptrSmall) *ptrSmall=small;
+ if(ptrBig) *ptrBig=big;
+
+ return Inv;
+ }
+
+ //---------------------------------------------------------------------------------
+ // Given an upper triangular matrix UT, compute the symmetric matrix
+ // UT * transpose(UT) using a very efficient algorithm.
+ template <class T>
+ Matrix<T> UTtimesTranspose(const Matrix<T>& UT)
+ throw(MatrixException)
+ {
+ unsigned int n=UT.rows();
+ if(n == 0 || UT.cols() != n) {
+ MatrixException me("Invalid input dimensions: "
+ + asString<int>(UT.rows()) + "x"
+ + asString<int>(UT.cols()));
+ GPSTK_THROW(me);
+ }
+
+ unsigned int i,j,k;
+ T sum;
+ Matrix<T> S(n,n);
+
+ for(i=0; i<n-1; i++) { // loop over rows of UT, except the last
+ sum = T(0); // diagonal element (i,i)
+ for(j=i; j<n; j++)
+ sum += UT(i,j)*UT(i,j);
+ S(i,i) = sum;
+ for(j=i+1; j<n; j++) { // loop over columns to right of (i,i)
+ sum = T(0);
+ for(k=j; k<n; k++)
+ sum += UT(i,k) * UT(j,k);
+ S(i,j) = S(j,i) = sum;
+ }
+ }
+ S(n-1,n-1) = UT(n-1,n-1)*UT(n-1,n-1); // the last diagonal element
+
+ return S;
+ }
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/SRI.hpp b/dev/apps/geomatics/lib/SRI.hpp
new file mode 100644
index 0000000..371615c
--- /dev/null
+++ b/dev/apps/geomatics/lib/SRI.hpp
@@ -0,0 +1,425 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SRI.hpp
+ * Include file defining class SRI.
+ * class SRI implements the square root information methods, used for least squares
+ * estimation and the SRI form of the Kalman filter.
+ *
+ * Reference: "Factorization Methods for Discrete Sequential Estimation,"
+ * by G.J. Bierman, Academic Press, 1977.
+ */
+
+//------------------------------------------------------------------------------------
+// TD go back thru and add const and throw() everywhere, also in Namelist
+// TD check that names CAN have different length than R and Z -- see zeroAll
+
+//------------------------------------------------------------------------------------
+#ifndef CLASS_SQUAREROOTINFORMATION_INCLUDE
+#define CLASS_SQUAREROOTINFORMATION_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+#include <vector>
+#include <algorithm>
+#include <iomanip>
+#include <ostream>
+#include <sstream>
+// GPSTk
+#include "Matrix.hpp"
+#include "Namelist.hpp"
+
+namespace gpstk
+{
+
+//------------------------------------------------------------------------------------
+/// constant (empty) Matrix used for default input arguments
+extern const Matrix<double> SRINullMatrix;
+
+//------------------------------------------------------------------------------------
+// fundamental routines
+/// Compute inverse of uppertriangular matrix, returning smallest and
+/// largest eigenvalues.
+/// @param UT upper triangular matrix to be inverted
+/// @param ptrS pointer to <T> small, on output *ptrS contains smallest eigenvalue.
+/// @param ptrB pointer to <T> small, on output *ptrB contains largest eigenvalue.
+/// @return inverse of input matrix.
+/// @throw MatrixException if input is not square (assumed upper triangular as well).
+/// @throw SingularMatrixException if input is singular.
+template <class T>
+Matrix<T> inverseUT(const Matrix<T>& UT,
+ T *ptrSmall,
+ T *ptrBig)
+ throw(MatrixException);
+
+/// Compute the product of an upper triangular matrix and its transpose.
+/// @param UT upper triangular matrix
+/// @return product UT * transpose(UT)
+/// @throw MatrixException if input is not square (assumed upper triangular as well).
+template <class T>
+Matrix<T> UTtimesTranspose(const Matrix<T>& UT)
+ throw(MatrixException);
+
+/// Square root information measurement update
+template <class T>
+void SrifMU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& H,
+ Vector<T>& D,
+ unsigned int M=0)
+ throw(MatrixException);
+
+/// Square root information measurement update, with new data in the form of a
+/// single matrix of H and D concatenated: A = H || D.
+template <class T>
+void SrifMU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& A,
+ unsigned int M=0)
+ throw(MatrixException);
+
+//------------------------------------------------------------------------------------
+/// class SRI encapsulates all the information associated with the solution of a set
+/// of simultaneous linear equations. It is used in least squares estimation (linear
+/// and linearized) and is the basis of the preferred implementation of Kalman
+/// filtering. An SRI consists of just three things:
+/// (1) 'R', the 'information matrix', which is an upper triangular matrix of
+/// dimension N, equal to the inverse of the square root (or Cholesky decomposition)
+/// of the solution covariance matrix,
+/// (2) 'Z', the 'SRI state vector' of length N (parallels the components of R),
+/// (not to be confused with the regular state vector X), and
+/// (3) 'names', a Namelist used to label the elements of R and Z (parallels and
+/// labels rows and columns of R and elements of Z). A Namelist is part of class SRI
+/// because the manipulations of SRI (see functions below) requires a consistent way
+/// of manipulating the different individual elements of R and Z, in addition it
+/// allows the user to attach 'human-readable' labels to the elements of the state
+/// vector, which is useful in adding, dropping and bumping states, and it makes
+/// printed results more readable (see the LabelledMatrix class in Namelist.hpp).
+///
+/// The set of simultaneous equations represented by an SRI is R * X = Z, where X is
+/// the (unknown) state vector (the conventional solution vector) also of dimension N.
+/// The state X is solved for as X = inverse(R) * Z, and the covariance matrix of the
+/// state X is equal to transpose(inverse(R))*inverse(R).
+///
+/// Least squares estimation via SRI is very simple and efficient; it uses the
+/// Householder transformation to convert the problem to upper triangular form, and
+/// then uses very efficient algorithms to invert the information matrix to find the
+/// solution and its covariance. The usual matrix equation is H * X = D,
+/// where H is the 'design matrix' or the 'partials matrix', of dimension M x N,
+/// X is the (unknown) solution vector of length N, and D is the 'data' or
+/// 'measurement' vector of length M. In the least squares 'update' of the SRI,
+/// this set of information {H,D} is concatenated with the existing SRI {R,Z} to
+/// form an (N+M x N+1) matrix Q which has R in the upper left, Z upper right,
+/// H lower left and D lower right. This extended matrix is then subjected to a
+/// Householder transformation (see class Matrix), which will put (at least the
+/// first N columns of) Q into upper triangular form. The result is a new, updated
+/// SRI (R and Z) in the place of the old, while in place of D are residuals of fit
+/// corresponding to the measurements in D (the H part of Q is trashed). This result,
+/// in fact (see the reference), produces an updated SRI which gives precisely the
+/// usual least squares solution for the combined 'a priori SRI + new data' problem.
+/// This algorithm is called a 'measurement update' of the SRI.
+///
+/// It is most enlightening to think of the SRI and this process in terms of
+/// 'information'. The SRI contains all the 'information' which has come from
+/// updates that have been made to it using (H,D) pairs. Initially, the SRI is all
+/// zeros, which corresponds to 'no information'. This overcomes one serious problem
+/// with conventional least squares and the Kalman algorithm, namely that a
+/// 'zero information' starting value cannot be correctly expressed, because in that
+/// case the covariance matrix is singular and the state vector is indeterminate;
+/// in the SRI method this is perfectly consistent - the covariance matrix is
+/// singular because the information matrix (R) is zero, and thus the state
+/// is entirely indeterminate. As new 'information' (in the form of data D and
+/// partials matrix H pairs) is added to the SRI (via the Householder algorithm),
+/// the 'information' stored in R and Z is increased and they become non-zero.
+/// (By the way note that the number of rows in the {H,D} information is arbitrary -
+/// information can be added in 'batches' - M large - or one - M=1 - piece at a time.)
+/// When there is enough information, R becomes non-singular, and so can be inverted
+/// and the solution and covariance can be computed. As the amount of information
+/// becomes large, elements of R become large, and thus elements of the covariance
+/// (think of covariance as a measure of uncertainty - the opposite or inverse of
+/// information) become small.
+///
+/// The structure of the SRI method allows some powerful techniques to be used in
+/// manipulating, combining and separating state elements and the information
+/// associated with them in SRIs. For example, if the measurement updates have
+/// failed to increase the information about one particular state element, then
+/// that element, and its information, may be removed from the problem by deleting
+/// that element's row and column of R, and its element of Z (and then
+/// re-triangularizing the SRI). In general, any subset of an SRI may be separated,
+/// or the SRI split (see the routine of that name below - note the caveats) into
+/// two separate SRIs. For another example, SRI allows the information of a each
+/// state element to be selectively reduced or even zeroed, simply by multiplying
+/// the corresponding elements of R and Z by a factor; in Kalman filtering this
+/// is called a 'Q bump' of the element and is very important in some filtering
+/// applications. There are methods (see below) consistently to merge (operator+()),
+/// split, and permute elements of, SRIs.
+///
+/// Kalman filtering is an important application of SRI methods (actually it is
+/// called 'square root information filtering' or SRIF - technically the term
+/// 'Kalman filter algorithm' is reserved for the classical algorithm just as
+/// Kalman presented it, in terms of a state vector and its covariance matrix).
+/// The measurment update described above (which is actually just linear least
+/// squares) is half of the SRIF (Kalman filter) - there is a 'time update' that
+/// propagates the SRI (and thus the state and covariance) forward in time using
+/// the dynamical model of the filter. These are algebraically equivalent to the
+/// classical Kalman algorithm, but are more efficient and numerically stable
+/// (actually the Kalman algorithm has been shown to be numerically unstable!).
+/// There are even SRI smoothing algorithms, corresponding to Kalman smoothers,
+/// which consist of a 'backwards' filter, implemented by applying a
+/// 'smoother update' to the SRI at each point in reverse order.
+///
+/// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential Estimation,"
+/// Academic Press, 1977.
+class SRI {
+public:
+ /// empty constructor
+ SRI(void) throw() { }
+
+ /// constructor given the dimension N.
+ SRI(const unsigned int)
+ throw();
+
+ /// constructor given a Namelist, its dimension determines the SRI dimension.
+ SRI(const Namelist&)
+ throw();
+
+ /// explicit constructor - throw if the dimensions are inconsistent.
+ SRI(const Matrix<double>&,
+ const Vector<double>&,
+ const Namelist&)
+ throw(MatrixException);
+
+ /// copy constructor
+ SRI(const SRI&)
+ throw();
+
+ /// operator=
+ SRI& operator=(const SRI& right)
+ throw();
+
+ // modify SRIs
+
+ /// Permute the SRI elements to match the input Namelist, which may differ with
+ /// the SRI Namelist by AT MOST A PERMUTATION; throw if this is not true.
+ void permute(const Namelist&)
+ throw(MatrixException,VectorException);
+
+ /// split an SRI into two others, this one matching the input Namelist, the
+ /// other containing whatever is left. The input Namelist must be a non-trivial
+ /// subset of this->names; throw MatrixException if it is not. NB. Interpreting
+ /// the results of a split() and merge (operator+()) operations should be done
+ /// very carefully; remember that the SRI contains both solution and noise,
+ /// and that the results of these operations are not always as expected,
+ /// particularly note that split() and operator+() are usually NOT reversible.
+ void split(const Namelist&, SRI&)
+ throw(MatrixException,VectorException);
+
+ /// extend this SRI to include the given Namelist, with no added information;
+ /// names in the input namelist which are not unique are ignored.
+ SRI& operator+=(const Namelist&)
+ throw(MatrixException,VectorException);
+
+ /// reshape this SRI to match the input Namelist, by calling other member
+ /// functions, including split(), operator+() and permute()
+ void reshape(const Namelist&)
+ throw(MatrixException,VectorException);
+
+ /// merge an SRI into this one. NB names may be reordered in the result.
+ void merge(const SRI& S)
+ throw(MatrixException,VectorException)
+ { *this += S; }
+
+ /// merge this SRI with the given input SRI. ? should this be operator&=() ?
+ /// NB may reorder the names in the resulting Namelist.
+ SRI& operator+=(const SRI&)
+ throw(MatrixException,VectorException);
+
+ /// merge two SRIs to produce a third. ? should this be operator&() ?
+ friend SRI operator+(const SRI&,
+ const SRI&)
+ throw(MatrixException,VectorException);
+
+ /// Zero out the nth row of R and the nth element of Z, removing all
+ /// information about that element.
+ void zeroOne(const unsigned int n)
+ throw();
+
+ /// Zero out all the first n rows of R and elements of Z, removing all
+ /// information about those elements. Default value of the input is 0,
+ /// meaning zero out the entire SRI.
+ void zeroAll(const int n=0)
+ throw();
+
+ /// Zero out (set all elements to zero) the Vector Z only.
+ void zeroZ(void)
+ throw()
+ { Z = 0.0; }
+
+ /// Reset the SRI, meaning zero it and optionally change the dimension to n.
+ /// @param n Dimension of the new object (optional).
+ //void reset(int n=0)
+ // throw();
+
+ /// Shift the state vector by a constant vector X0; does not change information
+ /// i.e. let R * X = Z => R' * (X-X0) = Z'
+ /// throw on invalid input dimension
+ void shift(const Vector<double>&)
+ throw(MatrixException);
+
+ /// Transform this SRI with the transformation matrix T;
+ /// i.e. R -> T * R * inverse(T) and Z -> T * Z. The matrix inverse(T)
+ /// may optionally be supplied as input, otherwise it is computed from
+ /// T. NB names in this SRI are most likely changed; but this routine does
+ /// not change the Namelist. Throw MatrixException if the input has
+ /// the wrong dimension or cannot be inverted.
+ void transform(const Matrix<double>& T,
+ const Matrix<double>& invT=SRINullMatrix)
+ throw(MatrixException,VectorException);
+
+ /// Transform the state by the transformation matrix T; i.e. X -> T*X,
+ /// without transforming the SRI; this is done by right multiplying R by
+ /// inverse(T), which is the input. Thus R -> R*inverse(T),
+ /// so R*inverse(T)*T*X = Z. Input is the _inverse_ of the transformation.
+ /// throw MatrixException if input dimensions are wrong.
+ void transformState(const Matrix<double>& invT)
+ throw(MatrixException);
+
+ /// Decrease the information in this SRI for, or 'Q bump', the element
+ /// with the input index. This means that the uncertainty and the state
+ /// element given by the index are divided by the input factor q; the
+ /// default input is zero, which means zero out the information (q = infinite).
+ /// A Q bump by factor q is equivalent to 'de-weighting' the element by q.
+ /// No effect if in is out of range.
+ void Qbump(const unsigned int& in,
+ const double& q=0.0)
+ throw(MatrixException,VectorException);
+
+ /// Fix the state element with the input index to the input value, and
+ /// collapse the SRI by removing that element.
+ /// No effect if index is out of range.
+ void biasFix(const unsigned int&,
+ const double&)
+ throw(MatrixException,VectorException);
+
+ /// Add a priori or constraint information in the form of an ordinary
+ /// state vector and covariance matrix.
+ /// @param Cov Covariance matrix of same dimension as this SRIFilter
+ /// @param X State vector of same dimension as this SRIFilter
+ /// @throw if input is invalid: dimensions are wrong or Cov is singular.
+ void addAPriori(const Matrix<double>& Cov, const Vector<double>& X)
+ throw(MatrixException);
+
+ /// SRIF (Kalman) measurement update, or least squares update
+ void measurementUpdate(Matrix<double>& Partials,
+ Vector<double>& Data)
+ throw(MatrixException)
+ { SrifMU(R, Z, Partials, Data); }
+
+ /// Compute the state X and the covariance matrix C of the state, where
+ /// C = transpose(inverse(R))*inverse(R) and X = inverse(R) * Z.
+ /// Optional pointer arguments will return smallest and largest
+ /// eigenvalues of the R matrix, which is a measure of singularity.
+ /// @param X State vector (output)
+ /// @param C Covariance of the state vector (output)
+ /// @param ptrSmall Pointer to double, on output *ptrSmall set to smallest
+ /// eigenvalue of R
+ /// @param ptrBig Pointer to double, on output *ptrBig set to largest
+ /// eigenvalue of R
+ /// @throw SingularMatrixException if R is singular.
+ /// NB this is the most efficient way to invert the SRI equation.
+ void getStateAndCovariance(Vector<double>& X,
+ Matrix<double>& C,
+ double *ptrSmall=NULL,
+ double *ptrBig=NULL)
+ throw(MatrixException,VectorException);
+
+ // member access
+ /// return the size of the SRI, which is the dimension of R(rows and columns),
+ /// Z and names.
+ unsigned int size(void) const
+ throw()
+ { return R.rows(); }
+
+ /// access the Namelist of the SRI
+ Namelist getNames(void)
+ throw()
+ { return names; }
+
+ /// access the name of a specific state element, given its index.
+ /// returns 'out-of-range' if the index is out of range.
+ std::string getName(const unsigned int in)
+ throw()
+ { return names.getName(in); }
+
+ /// assign the name of a specific state element, given its index;
+ /// no effect, and return false, if the name is not unique;
+ /// return true if successful.
+ bool setName(const unsigned int in,
+ const std::string& name)
+ throw()
+ { return names.setName(in,name); }
+
+ /// return the index of the name in the Namelist that matches the input, or
+ /// -1 if not found.
+ unsigned int index(std::string& name)
+ throw()
+ { return names.index(name); }
+
+ /// output operator
+ friend std::ostream& operator<<(std::ostream& s,
+ const SRI&);
+
+protected:
+ // member data
+ /// Information matrix, an upper triangular (square) matrix
+ Matrix<double> R;
+
+ /// SRI state vector, of length equal to the dimension (row and col) of R.
+ Vector<double> Z;
+
+ /// Namelist parallel to R and Z, labelling the elements of the state vector.
+ Namelist names;
+
+}; // end class SRI
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
+#endif
diff --git a/dev/apps/geomatics/lib/SRIFilter.cpp b/dev/apps/geomatics/lib/SRIFilter.cpp
new file mode 100644
index 0000000..edc3713
--- /dev/null
+++ b/dev/apps/geomatics/lib/SRIFilter.cpp
@@ -0,0 +1,1200 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SRIFilter.cpp
+ * Implementation of class SRIFilter.
+ * class SRIFilter implements the square root information matrix form of the
+ * Kalman filter.
+ *
+ * Reference: "Factorization Methods for Discrete Sequential Estimation,"
+ * G.J. Bierman, Academic Press, 1977.
+ */
+
+//------------------------------------------------------------------------------------
+// GPSTk includes
+#include "SRIFilter.hpp"
+#include "RobustStats.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// empty constructor
+SRIFilter::SRIFilter(void)
+ throw()
+{
+ defaults();
+}
+
+//------------------------------------------------------------------------------------
+// constructor given the dimension N.
+SRIFilter::SRIFilter(const unsigned int N)
+ throw()
+{
+ defaults();
+ R = Matrix<double>(N,N,0.0);
+ Z = Vector<double>(N,0.0);
+ names = Namelist(N);
+}
+
+//------------------------------------------------------------------------------------
+// constructor given a Namelist, its dimension determines the SRI dimension.
+SRIFilter::SRIFilter(const Namelist& NL)
+ throw()
+{
+ defaults();
+ if(NL.size() <= 0) return;
+ R = Matrix<double>(NL.size(),NL.size(),0.0);
+ Z = Vector<double>(NL.size(),0.0);
+ names = NL;
+}
+
+//------------------------------------------------------------------------------------
+// explicit constructor - throw if the dimensions are inconsistent.
+SRIFilter::SRIFilter(const Matrix<double>& Rin,
+ const Vector<double>& Zin,
+ const Namelist& NLin)
+ throw(MatrixException)
+{
+ defaults();
+ if(Rin.rows() != Rin.cols() ||
+ Rin.rows() != Zin.size() ||
+ Rin.rows() != NLin.size()) {
+ MatrixException me("Invalid input dimensions: R is "
+ + asString<int>(Rin.rows()) + "x"
+ + asString<int>(Rin.cols()) + ", Z has length "
+ + asString<int>(Zin.size()) + ", and NL has length "
+ + asString<int>(NLin.size())
+ );
+ GPSTK_THROW(me);
+ }
+ R = Rin;
+ Z = Zin;
+ names = NLin;
+}
+
+//------------------------------------------------------------------------------------
+// operator=
+SRIFilter& SRIFilter::operator=(const SRIFilter& right)
+ throw()
+{
+ R = right.R;
+ Z = right.Z;
+ names = right.names;
+ iterationsLimit = right.iterationsLimit;
+ convergenceLimit = right.convergenceLimit;
+ divergenceLimit = right.divergenceLimit;
+ doWeight = right.doWeight;
+ doRobust = right.doRobust;
+ doLinearize = right.doLinearize;
+ doSequential = right.doSequential;
+ doVerbose = right.doVerbose;
+ valid = right.valid;
+ number_iterations = right.number_iterations;
+ number_batches = right.number_batches;
+ rms_convergence = right.rms_convergence;
+ condition_number = right.condition_number;
+ Xsave = right.Xsave;
+ return *this;
+}
+
+//------------------------------------------------------------------------------------
+// SRIF (Kalman) measurement update, or least squares update
+// Returns (whitened) residuals in D
+void SRIFilter::measurementUpdate(const Matrix<double>& H,
+ Vector<double>& D,
+ const Matrix<double>& CM)
+ throw(MatrixException,VectorException)
+{
+ if(H.cols() != R.cols() || H.rows() != D.size() ||
+ (&CM != &SRINullMatrix && (CM.rows() != D.size() || CM.cols() != D.size())) ) {
+ MatrixException me("Invalid input dimensions:\n SRI is "
+ + asString<int>(R.rows()) + "x"
+ + asString<int>(R.cols()) + ",\n Partials is "
+ + asString<int>(H.rows()) + "x"
+ + asString<int>(H.cols()) + ",\n Data has length "
+ + asString<int>(D.size())
+ );
+ if(&CM != &SRINullMatrix) me.addText(", and Cov is "
+ + asString<int>(CM.rows()) + "x"
+ + asString<int>(CM.cols()));
+ GPSTK_THROW(me);
+ }
+ try {
+ Matrix<double> P(H);
+ Cholesky<double> Ch;
+
+ // whiten partials and data
+ if(&CM != &SRINullMatrix) {
+ Matrix<double> L;
+ Ch(CM);
+ L = inverse(Ch.L);
+ P = L * P;
+ D = L * D;
+ }
+
+ // update *this with the whitened information
+ SrifMU(R, Z, P, D);
+
+ // un-whiten residuals
+ if(&CM != &SRINullMatrix) {
+ D = Ch.L * D;
+ }
+ }
+ catch(MatrixException& me) { GPSTK_RETHROW(me); }
+ catch(VectorException& ve) { GPSTK_RETHROW(ve); }
+}
+
+//------------------------------------------------------------------------------------
+// SRIF (Kalman) measurement update, or least squares update
+// Given data and measurement covariance, compute a solution and
+// covariance using the appropriate least squares algorithm.
+// @param D Data vector, length M
+// Input: raw data
+// Output: post-fit residuals
+// @param X Solution vector, length N
+// Input: nominal solution X0 (zero when doLinearized is false)
+// Output: final solution
+// @param Cov Covariance matrix, dimension (N,N)
+// Input: (If doWeight is true) inverse measurement covariance
+// or weight matrix(M,M)
+// Output: Solution covariance matrix (N,N)
+// @param LSF Pointer to a function which is used to define the equation to be solved.
+// LSF arguments are:
+// X Nominal solution (input)
+// f Values of the equation f(X) (length M) (output)
+// P Partials matrix df/dX evaluated at X (dimension M,N) (output)
+// When doLinearize is false, LSF should ignore X and return the (constant)
+// partials matrix in P and zero in f.
+//
+// Return values: 0 ok
+// -1 Problem is underdetermined (M<N) // TD -- naturalized sol?
+// -2 Problem is singular
+// -3 Algorithm failed to converge
+// -4 Algorithm diverged
+//
+// Reference for robust least squares: Mason, Gunst and Hess,
+// "Statistical Design and Analysis of Experiments," Wiley, New York, 1989, pg 593.
+//
+// Notes on the algorithm:
+// Least squares, including linearized (iterative) and sequential processing.
+// This class will solve the equation f(X) = D, a vector equation in which the
+// solution vector X is of length N, and the data vector D is of length M.
+// The function f(X) may be linear, in which case it is of the form
+// P*X=D where P is a constant matrix,
+// or non-linear, in which case it will be linearized by expanding about a given
+// nominal solution X0:
+// df |
+// -- | * dX = D - f(X0),
+// dX |X=X0
+// where dX is defined as (X-X0), the new solution is X, and the partials matrix is
+// P=(df/dX)|X=X0. Dimensions are P(M,N)*dX(N) = D(M) - f(X0)(M).
+// Linearized problems are iterated until the solution converges (stops changing).
+//
+// The solution may be weighted by a measurement covariance matrix MCov,
+// or weight matrix W (in which case MCov = inverse(W)). MCov must be non-singular.
+//
+// Options are to make the algorithm linearized (via the boolean input variable
+// doLinearize) and/or sequential (doSequential).
+//
+// - linearized. When doLinearize is true, the algorithm solves the linearized
+// version of the measurement equation (see above), rather than the simple
+// linear version P*X=D. Also when doLinearize is true, the code will iterate
+// (repeat until convergence) the linearized algorithm; if you don't want to
+// iterate, set the limit on the number of iterations to zero.
+// NB In this case, a solution must be found for each nominal solution
+// (i.e. the information matrix must be non-singular); otherwise there can be
+// no iteration.
+//
+// - sequential. When doSequential is true, the class will save the accumulated
+// information from all the calls to Compute() and Add() since the last reset()
+// within the class. This means the resulting solution is determined by ALL the
+// data fed to the class since the last reset(). In this case the data is fed
+// to the algorithm in 'batches', which may be of any size.
+//
+// NB When doLinearize is true, the information stored in the class has a
+// different interpretation than it does in the linear case.
+// Calling Solve(X,Cov) will NOT give the solution vector X, but rather the
+// latest update (X-X0) = (X-Xsave).
+//
+// NB In the linear case, the result you get from sequentially processing
+// a large dataset in many small batches is identical to what you would get
+// by processing all the data in one big batch. This is NOT true in the
+// linearized case, because the information at each batch is dependent on thes
+// nominal state. See the next comment.
+//
+// NB Sequential, linearized LS really makes sense only when the state is
+// changing. It is difficult to get a good solution in this case with small
+// batches, because the stored information is dependent on the (final) state
+// solution at each batch. Start with a good nominal state, or with a large
+// batch of data that will produce one.
+//
+// The general Least Squares algorithm is:
+// 0. set i=0.
+// 1. If non-sequential, or if this is the first call, set R=0=z
+// 2. Let X = X0 = initial nominal solution (input). if(linear, X0==0).
+// 3. Save SRIsave=SRI and X0save=X0
+// 4. start iteration i here.
+// 5. Compute partials matrix P and f(X0) by calling LSF(X0,f,P).
+// if(linear), LSF returns the constant P and f(X0)=0.
+// 6. Set R = SRIsave.R + P(T)*inverse(MCov)*P
+// 7. Set z = SRIsave.Z + P(T)*inverse(MCov)*(D-f(X0))
+// 8. (The measurement equation is now
+// P(X-X0save)=d-F(X0)
+// which is, in the linear case,
+// PX = d )
+// 9. Compute RMS change in X: rms = ||X-X0||/N
+// 10. Solve z=Rx to get
+// Cov = inverse(R)
+// and
+// X = X0save + inverse(R)*z [or in the linear case X = inverse(R)*z]
+// 11. if(linear) goto quit
+// [else linearized]
+// 12. increment the number of iterations
+// 13. If rms > divergence limit, goto quit (failure).
+// 14. If i > 1 and rms < convergence limit, goto quit (success)
+// 15. If i (number of iterations) >= iteration limit, goto quit (failure)
+// 16. Set X0 = X
+// 17. Return to step 4.
+// 18. quit: if(sequential and failed) set SRI=SRIsave.
+//
+int SRIFilter::leastSquaresEstimation(Vector<double>& D,
+ Vector<double>& X,
+ Matrix<double>& Cov,
+ void (LSF)(Vector<double>& X,
+ Vector<double>& f,
+ Matrix<double>& P)
+ )
+ throw(MatrixException)
+{
+ int M = D.size();
+ int N = R.rows();
+ if(doVerbose) cout << "\nSRIFilter::leastSquaresUpdate : M,N are "
+ << M << "," << N << endl;
+
+ // errors
+ if(N == 0) {
+ MatrixException me("Called with zero-sized SRIFilter");
+ GPSTK_THROW(me);
+ }
+ if(doLinearize && M < N) {
+ MatrixException me(
+ string("When linearizing, problem must not be underdetermined:\n")
+ + string(" data dimension is ") + asString(M)
+ + string(" while state dimension is ") + asString(N));
+ GPSTK_THROW(me);
+ }
+ if(doSequential && R.rows() != X.size()) {
+ MatrixException me("Sequential problem has inconsistent dimensions:\n SRI is "
+ + asString<int>(R.rows()) + "x"
+ + asString<int>(R.cols()) + " while X has length "
+ + asString<int>(X.size()));
+ GPSTK_THROW(me);
+ }
+ if(doWeight && doRobust) {
+ MatrixException me("Cannot have doWeight and doRobust both true.");
+ GPSTK_THROW(me);
+ }
+ // TD disallow Robust and Linearized ?
+ // TD disallow Robust and Sequential ?
+
+ int i,j,iret;
+ double big,small;
+ Vector<double> f(M),Xsol(N),NominalX,Res(M),Wts(M,1.0),OldWts(M,1.0);
+ Matrix<double> Partials(M,N),MeasCov(M,M);
+ const Matrix<double> Rapriori(R);
+ const Vector<double> Zapriori(Z);
+
+ // save measurement covariance matrix
+ if(doWeight) MeasCov=Cov;
+
+ // NO ... this prevents you from giving it apriori information...
+ // if the first time, clear the stored information
+ //if(!doSequential || number_batches==0)
+ // zeroAll();
+
+ // if sequential and not the first call, NominalX must be the last solution
+ if(doSequential && number_batches != 0) X = Xsave;
+
+ // nominal solution
+ if(!doLinearize) {
+ if(X.size() != N) X=Vector<double>(N);
+ X = 0.0;
+ }
+ NominalX = X;
+
+ valid = false;
+ condition_number = 0.0;
+ rms_convergence = 0.0;
+ number_iterations = 0;
+ iret = 0;
+
+ // iteration loop
+ do {
+ number_iterations++;
+
+ // call LSF to get f(NominalX) and Partials(NominalX)
+ LSF(NominalX,f,Partials);
+
+ // Res will be both pre- and post-fit data residuals
+ Res = D-f;
+ if(doVerbose) {
+ cout << "\nSRIFilter::leastSquaresUpdate :";
+ if(doLinearize || doRobust)
+ cout << " Iteration " << number_iterations;
+ cout << endl;
+ LabelledVector LNX(names,NominalX);
+ LNX.message(" Nominal X:");
+ cout << LNX << endl;
+ cout << " Pre-fit data residuals: "
+ << fixed << setprecision(6) << Res << endl;
+ }
+
+ // build measurement covariance matrix for robust LS
+ if(doRobust) {
+ MeasCov = 0.0;
+ for(i=0; i<M; i++) MeasCov(i,i) = 1.0 / (Wts(i)*Wts(i));
+ }
+
+ // restore apriori information
+ if(number_iterations > 1) {
+ R = Rapriori;
+ Z = Zapriori;
+ }
+
+ // update information with simple MU
+ if(doVerbose) {
+ cout << " Meas Cov:";
+ for(i=0; i<M; i++) cout << " " << MeasCov(i,i);
+ cout << endl;
+ cout << " Partials:\n" << Partials << endl;
+ }
+ if(doRobust || doWeight)
+ measurementUpdate(Partials,Res,MeasCov);
+ else
+ measurementUpdate(Partials,Res);
+
+ if(doVerbose) {
+ cout << " Updated information matrix\n" << LabelledMatrix(names,R) << endl;
+ cout << " Updated information vector\n" << LabelledVector(names,Z) << endl;
+ }
+
+ // invert
+ try { getStateAndCovariance(Xsol,Cov,&small,&big); }
+ catch(SingularMatrixException& sme) {
+ iret = -2;
+ break;
+ }
+ condition_number = big/small;
+ if(doVerbose) {
+ cout << " Condition number: " << scientific << condition_number
+ << fixed << endl;
+ cout << " Post-fit data residuals: "
+ << fixed << setprecision(6) << Res << endl;
+ }
+
+ // update X: when linearized, solution = dX
+ if(doLinearize) {
+ Xsol += NominalX;
+ }
+ if(doVerbose) {
+ LabelledVector LXsol(names,Xsol);
+ LXsol.message(" Updated X:");
+ cout << LXsol << endl;
+ }
+
+ // linear non-robust is done..
+ if(!doLinearize && !doRobust) break;
+
+ // test for convergence of linearization
+ if(doLinearize) {
+ rms_convergence = RMS(Xsol - NominalX);
+ if(doVerbose) {
+ cout << " RMS convergence : "
+ << scientific << rms_convergence << fixed << endl;
+ }
+ }
+
+ // test for convergence of robust weighting, and compute new weights
+ if(doRobust) {
+ // must de-weight post-fit residuals
+ LSF(Xsol,f,Partials);
+ Res = D-f;
+
+ // compute a new set of weights
+ double mad,median;
+ //for(mad=0.0,i=0; i<M; i++)
+ // mad += Wts(i)*Res(i)*Res(i);
+ //mad = sqrt(mad)/sqrt(Robust::TuningA*(M-1));
+ mad = Robust::MedianAbsoluteDeviation(&(Res[0]),Res.size(),median);
+
+ OldWts = Wts;
+ for(i=0; i<M; i++) {
+ if(Res(i) < -RobustTuningT*mad)
+ Wts(i) = -RobustTuningT*mad/Res(i);
+ else if(Res(i) > RobustTuningT*mad)
+ Wts(i) = RobustTuningT*mad/Res(i);
+ else
+ Wts(i) = 1.0;
+ }
+
+ // test for convergence
+ rms_convergence = RMS(OldWts - Wts);
+ if(doVerbose) cout << " Convergence: "
+ << scientific << setprecision(3) << rms_convergence << endl;
+ }
+
+ // failures
+ if(rms_convergence > divergenceLimit) iret=-4;
+ if(number_iterations >= iterationsLimit) iret=-3;
+ if(iret) {
+ if(doSequential) {
+ R = Rapriori;
+ Z = Zapriori;
+ }
+ break; // return iret;
+ }
+
+ // success
+ if(number_iterations > 1 && rms_convergence < convergenceLimit) break;
+
+ // prepare for another iteration
+ if(doLinearize)
+ NominalX = Xsol;
+ if(doRobust)
+ NominalX = X;
+
+ } while(1); // end iteration loop
+
+ number_batches++;
+ if(doVerbose) cout << "Return from SRIFilter::leastSquaresUpdate\n\n";
+
+ if(iret) return iret;
+
+ // output the solution
+ Xsave = X = Xsol;
+
+ // put residuals of fit into data vector, or weights if Robust
+ if(doRobust)
+ D = OldWts;
+ else
+ D = Res;
+
+ valid = true;
+ return iret;
+}
+
+//------------------------------------------------------------------------------------
+// SRIF (Kalman) time update see SrifTU for doc.
+void SRIFilter::timeUpdate(Matrix<double>& Phi,
+ Matrix<double>& Rw,
+ Matrix<double>& G,
+ Vector<double>& Zw,
+ Matrix<double>& Rwx)
+ throw(MatrixException)
+{
+ try { SrifTU(R, Z, Phi, Rw, G, Zw, Rwx); }
+ catch(MatrixException& me) { GPSTK_RETHROW(me); }
+}
+
+//------------------------------------------------------------------------------------
+// SRIF (Kalman) smoother update see SrifSU for doc.
+void SRIFilter::smootherUpdate(Matrix<double>& Phi,
+ Matrix<double>& Rw,
+ Matrix<double>& G,
+ Vector<double>& Zw,
+ Matrix<double>& Rwx)
+ throw(MatrixException)
+{
+ try { SrifSU(R, Z, Phi, Rw, G, Zw, Rwx); }
+ catch(MatrixException& me) { GPSTK_RETHROW(me); }
+}
+
+//------------------------------------------------------------------------------------
+void SRIFilter::DMsmootherUpdate(Matrix<double>& P,
+ Vector<double>& X,
+ Matrix<double>& Phinv,
+ Matrix<double>& Rw,
+ Matrix<double>& G,
+ Vector<double>& Zw,
+ Matrix<double>& Rwx)
+ throw(MatrixException)
+{
+ try { SrifSU_DM(P, X, Phinv, Rw, G, Zw, Rwx); }
+ catch(MatrixException& me) { GPSTK_RETHROW(me); }
+}
+
+//------------------------------------------------------------------------------------
+// output operator
+ostream& operator<<(ostream& os,
+ const SRIFilter& srif)
+{
+ Namelist NL(srif.names);
+ NL += string("State");
+ Matrix<double> A;
+ A = srif.R || srif.Z;
+ LabelledMatrix LM(NL,A);
+ LM.setw(os.width());
+ LM.setprecision(os.precision());
+ os << LM;
+ return os;
+}
+
+//------------------------------------------------------------------------------------
+// reset the computation, i.e. remove all stored information
+void SRIFilter::zeroAll(void)
+{
+ SRI::zeroAll();
+ Xsave = 0.0;
+ number_batches = 0;
+}
+
+//------------------------------------------------------------------------------------
+// reset the computation, i.e. remove all stored information, and
+// optionally change the dimension. If N is not input, the
+// dimension is not changed.
+// @param N new SRIFilter dimension (optional).
+void SRIFilter::Reset(const int N)
+{
+ if(N > 0 && N != R.rows()) {
+ R.resize(N,N,0.0);
+ Z.resize(N,0.0);
+ }
+ else
+ SRI::zeroAll(N);
+ if(N > 0) Xsave.resize(N);
+ Xsave = 0.0;
+ number_batches = 0;
+}
+
+//------------------------------------------------------------------------------------
+// private beyond this
+//------------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------------
+// Kalman time update.
+// This routine uses the Householder transformation to propagate the SRIFilter
+// state and covariance through a time step.
+// Input:
+// R A priori square root information (SRI) matrix (an n by n
+// upper triangular matrix)
+// Z a priori SRIF state vector, of length n (state is X, Z = R*X).
+// Phi Inverse of state transition matrix, an n by n matrix.
+// Phi is destroyed on output.
+// Rw a priori square root information matrix for the process
+// noise, an ns by ns upper triangular matrix
+// G The n by ns matrix associated with process noise. The
+// process noise covariance is G*Q*transpose(G) where inverse(Q)
+// is transpose(Rw)*Rw. G is destroyed on output.
+// Zw a priori 'state' associated with the process noise,
+// a vector with ns elements. Usually set to zero by
+// the calling routine (for unbiased process noise).
+// Rwx An ns by n matrix which is set to zero by this routine
+// but is used for output.
+//
+// Output:
+// The updated square root information matrix and SRIF state (R,Z) and
+// the matrices which are used in smoothing: Rw, Zw, Rwx.
+// Note that Phi and G are trashed, and that Rw and Zw are modified.
+//
+// Return values:
+// SrifTU returns void, but throws exceptions if the input matrices
+// or vectors have incompatible dimensions or incorrect types.
+//
+// Method:
+// This SRIF time update method treats the process noise and mapping
+// information as a separate data equation, and applies a Householder
+// transformation to the (appended) equations to solve for an updated
+// state. Thus there is another 'state' variable associated with
+// whatever state variables have process noise. The matrix G relates
+// the process noise variables to the regular state variables, and
+// appears in the term GQG(trans) of the covariance. If all n state
+// variables have process noise, then ns=n and G is an n by n matrix.
+// Since some (or all) of the state variables may not have process
+// noise, ns may be zero. [Bierman ftnt pg 122 seems to indicate that
+// variables with zero process noise can be handled by ns=n & setting a
+// column of G=0. But note that the case of the matrix G=0 is the
+// same as ns=0, because the first ns columns would be zero below the
+// diagonal in that case anyway, so the HH transformation would be
+// null.]
+// For startup, all of the a priori information and state arrays may
+// be zero. That is, "no information" would imply that R and Z are zero,
+// as well as Rw and Zw. A priori information (covariance) and state
+// are handled by setting P = inverse(R)*transpose(inverse((R)), Z = R*X.
+// There are three ways to handle non-zero process noise covariance.
+// (1) If Q is the (known) a priori process noise covariance Q, then
+// set Q=Rw(-1)*Rw(-T), and G=1.
+// (2) Transform process noise covariance matrix to UDU form, Q=UDU,
+// then set G=U and Rw = (D)**-1/2.
+// (3) Take the sqrt of process noise covariance matrix Q, then set
+// G=this sqrt and Rw = 1. [2 and 3 have been tested.]
+// The routine applies a Householder transformation to a large
+// matrix formed by addending the input matricies. Two preliminary
+// steps are to form Rd = R*Phi (stored in Phi) and -Rd*G (stored in
+// G) by matrix multiplication, and to set Rwx to the zero matrix.
+// Then the Householder transformation is applied to the following
+// matrix, dimensions are shown in ():
+// _ (ns) (n) (1) _ _ _
+// (ns) | Rw 0 Zw | ==> | Rw Rwx Zw |
+// (n) | -Rd*G Rd Z | ==> | 0 R Z | .
+// - - - -
+// The SRI matricies R and Rw remain upper triangular.
+//
+// For the programmer: after Rwx is set to zero, G is made into
+// -Rd*G and Phi is made into R*Phi, the transformation is applied
+// to the matrix:
+// _ (ns) (n) (1) _
+// (ns) | Rw Rwx Zw |
+// (n) | G Phi Z |
+// - -
+// then the (upper triangular) matrix R is copied out of Phi into R.
+// -------------------------------------------------------------------
+// The matrix Rwx is related to the sensitivity of the state
+// estimate to the unmodeled parameters in Zw. The sensitivity matrix
+// is Sen = -inverse(Rw)*Rwx,
+// where perturbation in model X =
+// Sen * diagonal(a priori sigmas of parameter uncertainties).
+// -------------------------------------------------------------------
+// The quantities Rw, Rwx and Zw on output are to be saved and used
+// in the sqrt information fixed interval smoother (SRIS), during the
+// backward filter process.
+// -------------------------------------------------------------------
+// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+// Estimation," Academic Press, 1977.
+// -------------------------------------------------------------------
+template <class T>
+void SRIFilter::SrifTU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& Phi,
+ Matrix<T>& Rw,
+ Matrix<T>& G,
+ Vector<T>& Zw,
+ Matrix<T>& Rwx)
+ throw(MatrixException)
+{
+ const T EPS=-T(1.e-200);
+ unsigned int n=R.rows(),ns=Rw.rows();
+ unsigned int i,j,k;
+ T sum, beta, delta, dum;
+
+ if(Phi.rows() < n || Phi.cols() < n ||
+ G.rows() < n || G.cols() < ns ||
+ R.cols() != n ||
+ Rwx.rows() < ns || Rwx.cols() < n ||
+ Z.size() < n || Zw.size() < ns) {
+ MatrixException me("Invalid input dimensions:\n R is "
+ + asString<int>(R.rows()) + "x"
+ + asString<int>(R.cols()) + ", Z has length "
+ + asString<int>(Z.size()) + "\n Phi is "
+ + asString<int>(Phi.rows()) + "x"
+ + asString<int>(Phi.cols()) + "\n Rw is "
+ + asString<int>(Rw.rows()) + "x"
+ + asString<int>(Rw.cols()) + "\n G is "
+ + asString<int>(G.rows()) + "x"
+ + asString<int>(G.cols()) + "\n Zw has length "
+ + asString<int>(Zw.size()) + "\n Rwx is "
+ + asString<int>(Rwx.rows()) + "x"
+ + asString<int>(Rwx.cols())
+ );
+ GPSTK_THROW(me);
+ }
+
+ try {
+ Phi = R * Phi; // set Phi = Rd = R*Phi
+ Rwx = T(0);
+ G = -Phi * G; // set G = -Rd*G
+
+ //---------------------------------------------------------------
+ for(j=0; j<ns; j++) { // loop over first ns columns
+ sum = T(0);
+ for(i=0; i<n; i++) // rows of -Rd*G
+ sum += G(i,j)*G(i,j);
+ dum = Rw(j,j);
+ sum += dum*dum;
+ sum = (dum > T(0) ? -T(1) : T(1)) * ::sqrt(sum);
+ delta = dum - sum;
+ Rw(j,j) = sum;
+
+ beta = sum * delta;
+ if(beta > EPS) continue;
+ beta = T(1)/beta;
+
+ // apply jth Householder transformation
+ // to submatrix below and right of (j,j)
+ if(j+1 < ns) { // apply to G
+ for(k=j+1; k<ns; k++) { // columns to right of diagonal
+ sum = delta * Rw(j,k);
+ for(i=0; i<n; i++) // rows of G
+ sum += G(i,j)*G(i,k);
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Rw(j,k) += sum*delta;
+ for(i=0; i<n; i++) // rows of G again
+ G(i,k) += sum * G(i,j);
+ }
+ }
+
+ // apply jth Householder transformation
+ // to Rwx and Phi
+ for(k=0; k<n; k++) { // columns of Rwx and Phi
+ sum = delta * Rwx(j,k);
+ for(i=0; i<n; i++) // rows of Phi and G
+ sum += Phi(i,k) * G(i,j);
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Rwx(j,k) += sum*delta;
+ for(i=0; i<n; i++) // rows of Phi and G
+ Phi(i,k) += sum * G(i,j);
+ } // end loop over columns of Rwx and Phi
+
+ // apply jth Householder transformation
+ // to Zw and Z
+ sum = delta * Zw(j);
+ for(i=0; i<n; i++) // rows of G and elements of Z
+ sum += Z(i) * G(i,j);
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Zw(j) += sum * delta;
+ for(i=0; i<n; i++) // rows of G and elements of Z
+ Z(i) += sum * G(i,j);
+ } // end loop over first ns columns
+
+ //---------------------------------------------------------------
+ for(j=0; j<n; j++) { // loop over columns of Rwx and Phi
+ sum = T(0);
+ for(i=j+1; i<n; i++) // rows of Phi
+ sum += Phi(i,j)*Phi(i,j);
+ dum = Phi(j,j);
+ sum += dum*dum;
+ sum = (dum > T(0) ? -T(1) : T(1)) * ::sqrt(sum);
+ delta = dum - sum;
+ Phi(j,j) = sum;
+ beta = sum*delta;
+ if(beta > EPS) continue;
+ beta = T(1)/beta;
+
+ // apply jth Householder transformation to columns of Phi on row j
+ for(k=j+1; k<n; k++) { // columns of Phi
+ sum = delta * Phi(j,k);
+ for(i=j+1; i<n; i++)
+ sum += Phi(i,j)*Phi(i,k);
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Phi(j,k) += sum*delta;
+ for(i=j+1; i<n; i++)
+ Phi(i,k) += sum * Phi(i,j);
+ }
+
+ // apply jth Householder transformation to Z
+ sum = delta *Z(j);
+ for(i=j+1; i<n; i++)
+ sum += Z(i) * Phi(i,j);
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Z(j) += sum*delta;
+ for(i=j+1; i<n; i++)
+ Z(i) += sum * Phi(i,j);
+ } // end loop over cols of Rwx and Phi
+
+ // copy transformed R out of Phi
+ for(j=0; j<n; j++)
+ for(i=0; i<=j; i++)
+ R(i,j) = Phi(i,j);
+
+ }
+ catch(MatrixException& me) { GPSTK_RETHROW(me); }
+} // end SrifTU
+
+//------------------------------------------------------------------------------------
+// Kalman smoother update.
+// This routine uses the Householder transformation to propagate the SRIF
+// state and covariance through a smoother (backward filter) step.
+// Input:
+// R A priori square root information (SRI) matrix (an N by N
+// upper triangular matrix)
+// z a priori SRIF state vector, an N vector (state is x, z = R*x).
+// Phi State transition matrix, an N by N matrix. Phi is destroyed on output.
+// Rw A priori square root information matrix for the process
+// noise, an Ns by Ns upper triangular matrix (which has
+// Ns(Ns+1)/2 elements).
+// G The N by Ns matrix associated with process noise. The
+// process noise covariance is GQGtrans where Qinverse
+// is Rw(trans)*Rw.
+// Zw A priori 'state' associated with the process noise,
+// a vector with Ns elements.
+// Rwx An Ns by N matrix.
+//
+// The inputs Rw,Zw,Rwx are the output of the SRIF time update, and these and
+// Phi and G are associated with the same timestep.
+//
+// Output:
+// The updated square root information matrix and SRIF smoothed state (R,z).
+// All other inputs are trashed.
+//
+// Return values:
+// SrifSU returns void, but throws exceptions if the input matrices
+// or vectors have incompatible dimensions or incorrect types.
+//
+// Method:
+// The fixed interval square root information smoother (SRIS) is
+// composed of two Kalman filters, one identical with the square root
+// information filter (SRIF), the other similar but operating on the
+// data in reverse order and combining the current (smoothed) state
+// with elements output by the SRIF in its forward run and saved.
+// Thus a smoother is composed of a forward filter which saves all of
+// its output, followed by a backward filter which makes use of that
+// saved information.
+// This form of the SRIF backward filter algorithm is equivalent to the
+// Dyer-McReynolds SRIS algorithm, which uses less computer resources, but
+// propagates the state and covariance rather than the SRI (R,z). (As always,
+// at any point the state X and covariance P are related to the SRI by
+// X = R^-1 * z , P = R^-1 * R^-T.)
+// For startup of the backward filter, the state after the final
+// measurement update of the SRIF is given another time update, the
+// output of which is identified with the a priori values for the
+// backward filter. Backward filtering proceeds from there, the N+1st
+// point, toward the first point.
+//
+// In this implementation of the backward filter, the Householder
+// transformation is applied to the following matrix
+// (dimensions are shown in ()):
+//
+// _ (Ns) (N) (1) _ _ _
+// (Ns) | Rw+Rwx*G Rwx*Phi Zw | ==> | Rw Rwx Zw |
+// (N) | R*G R*Phi z | ==> | 0 R z | .
+// - - - -
+// The SRI matricies R and Rw remain upper triangular.
+//
+// For the programmer: First create an NsXNs matrix A, then
+// Rw+Rwx*G -> A, Rwx*Phi -> Rwx, R*Phi -> Phi, and R*G -> G, and
+// the transformation is applied to the matrix:
+//
+// _ (Ns) (N) (1) _
+// (Ns) | A Rwx Zw |
+// (N) | G Phi z |
+// - -
+//
+// then the (upper triangular) matrix R is copied out of Phi into R.
+// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+// Estimation," Academic Press, 1977.
+template <class T>
+void SRIFilter::SrifSU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& Phi,
+ Matrix<T>& Rw,
+ Matrix<T>& G,
+ Vector<T>& Zw,
+ Matrix<T>& Rwx)
+ throw(MatrixException)
+{
+ unsigned int N=R.rows(),Ns=Rw.rows();
+
+ if(Phi.rows() < N || Phi.cols() < N ||
+ G.rows() < N || G.cols() < Ns ||
+ R.cols() != N ||
+ Rwx.rows() < Ns || Rwx.cols() < N ||
+ Z.size() < N || Zw.size() < Ns) {
+ MatrixException me("Invalid input dimensions:\n R is "
+ + asString<int>(R.rows()) + "x"
+ + asString<int>(R.cols()) + ", Z has length "
+ + asString<int>(Z.size()) + "\n Phi is "
+ + asString<int>(Phi.rows()) + "x"
+ + asString<int>(Phi.cols()) + "\n Rw is "
+ + asString<int>(Rw.rows()) + "x"
+ + asString<int>(Rw.cols()) + "\n G is "
+ + asString<int>(G.rows()) + "x"
+ + asString<int>(G.cols()) + "\n Zw has length "
+ + asString<int>(Zw.size()) + "\n Rwx is "
+ + asString<int>(Rwx.rows()) + "x"
+ + asString<int>(Rwx.cols())
+ );
+ GPSTK_THROW(me);
+ }
+
+ const T EPS=-T(1.e-200);
+ int i, j, k;
+ T sum, beta, delta, diag;
+
+try {
+ // Rw+Rwx*G -> A
+ Matrix<T> A;
+ A = Rw + Rwx*G;
+ Rwx = Rwx * Phi;
+ Phi = R * Phi;
+ G = R * G;
+
+ //-----------------------------------------
+ // HouseHolder Transformation
+
+ // Loop over first Ns columns
+ for(j=0; j<Ns; j++) { // columns of A
+ sum = T(0);
+ for(i=j+1; i<Ns; i++) { // rows i below diagonal in A
+ sum += A(i,j) * A(i,j);
+ }
+ for(i=0; i<N; i++) { // all rows i in G
+ sum += G(i,j) * G(i,j);
+ }
+
+ diag = A(j,j);
+ sum += diag*diag;
+ sum = (diag > T(0) ? -T(1) : T(1)) * ::sqrt(sum);
+ delta = diag - sum;
+ A(j,j) = sum;
+ beta = sum*delta;
+ if(beta > EPS) continue;
+ beta = T(1)/beta;
+
+ // apply jth HH trans to submatrix below and right of j,j
+ for(k=j+1; k<Ns; k++) { // cols to right of diag
+ sum = delta * A(j,k);
+ for(i=j+1; i<Ns; i++) { // rows of A below diagonal
+ sum += A(i,j)*A(i,k);
+ }
+ for(i=0; i<N; i++) { // all rows of G
+ sum += G(i,j)*G(i,k);
+ }
+ if(sum == T(0)) continue;
+ sum *= beta;
+ //------------------------------------------
+ A(j,k) += sum*delta;
+
+ for(i=j+1; i<Ns; i++) { // rows of A > j (same loops again)
+ A(i,k) += sum * A(i,j);
+ }
+ for(i=0; i<N; i++) { // all rows of G (again)
+ G(i,k) += sum * G(i,j);
+ }
+ }
+
+ // apply jth HH trans to Rwx and Phi sub-matrices
+ for(k=0; k<N; k++) { // all columns of Rwx / Phi
+ sum = delta * Rwx(j,k);
+ for(i=j+1; i<Ns; i++) { // rows of Rwx below j
+ sum += A(i,j) * Rwx(i,k);
+ }
+ for(i=0; i<N; i++) { // all rows of Phi
+ sum += G(i,j) * Phi(i,k);
+ }
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Rwx(j,k) += sum*delta;
+ for(i=j+1; i<Ns; i++) { // rows of Rwx below j (again)
+ Rwx(i,k) += sum * A(i,j);
+ }
+ for(i=0; i<N; i++) { // all rows of Phi (again)
+ Phi(i,k) += sum * G(i,j);
+ }
+ }
+
+ // apply jth HH trans to Zw and Z
+ sum = delta * Zw(j);
+ for(i=j+1; i<Ns; i++) { // rows (elements) of Zw below j
+ sum += A(i,j) * Zw(i);
+ }
+ for(i=0; i<N; i++) { // all rows (elements) of Z
+ sum += Z(i) * G(i,j);
+ }
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Zw(j) += sum*delta;
+ for(i=j+1; i<Ns; i++) { // rows of Zw below j (again)
+ Zw(i) += sum * A(i,j);
+ }
+ for(i=0; i<N; i++) { // all rows of Z (again)
+ Z(i) += sum * G(i,j);
+ }
+ }
+
+ // Loop over columns past the Ns block: all of Rwx and Phi
+ for(j=0; j<N; j++) {
+ sum = T(0);
+ for(i=j+1; i<N; i++) { // rows of Phi at and below j
+ sum += Phi(i,j) * Phi(i,j);
+ }
+ diag = Phi(j,j);
+ sum += diag*diag;
+ sum = (diag > T(0) ? -T(1) : T(1)) * ::sqrt(sum);
+ delta = diag - sum;
+ Phi(j,j) = sum;
+ beta = sum*delta;
+ if(beta > EPS) continue;
+ beta = T(1)/beta;
+
+ // apply HH trans to Phi sub-block below and right of j,j
+ for(k=j+1; k<N; k++) { // columns k > j
+ sum = delta * Phi(j,k);
+ cout << "";//gcc 3.4.4 bug
+ for(i=j+1; i<N; i++) { // rows below j
+ sum += Phi(i,j) * Phi(i,k);
+ }
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Phi(j,k) += sum*delta;
+ for(i=j+1; i<N; i++) { // rows below j (again)
+ Phi(i,k) += sum * Phi(i,j);
+ }
+ }
+ // Now apply to the Z column
+ sum = delta * Z(j);
+ for(i=j+1; i<N; i++) { // rows of Z below j
+ sum += Z(i) * Phi(i,j);
+ }
+ if(sum == T(0)) continue;
+ sum *= beta;
+ Z(j) += sum*delta;
+ for(i=j+1; i<N; i++) { // rows of Z below j (again)
+ Z(i) += sum * Phi(i,j);
+ }
+ }
+ //------------------------------
+ // Transformation finished
+
+ //-------------------------------------
+ // copy transformed R out of Phi into R
+ R = T(0);
+ for(j=0; j<N; j++) {
+ for(i=0; i<=j; i++) {
+ R(i,j) = Phi(i,j);
+ }
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+} // end SrifSU
+
+//------------------------------------------------------------------------------
+// Covariance/State version of the Kalman smoother update (Dyer-McReynolds).
+// This routine implements the Dyer-McReynolds form of the state and covariance
+// recursions which constitute the backward filter of the Square Root
+// Information Smoother.
+//
+// Input: (assume N and Ns are greater than zero)
+// Vector X(N) A priori state, derived from SRI (R*X=Z)
+// Matrix P(N,N) A priori covariance, derived from SRI (P=R^-1*R^-T)
+// Matrix Rw(Ns,Ns) Process noise covariance (UT), output of SRIF TU
+// Matrix Rwx(Ns,N) PN 'cross term', output of SRIF TU
+// Vector Zw(Ns) Process noise state, output of SRIF TU
+// Matrix Phinv(N,N) Inverse of state transition, saved at SRIF TU
+// Matrix G(N,Ns) Noise coupling matrix, saved at SRIF TU
+// Output:
+// Updated X and P. The other inputs are trashed.
+// Return values:
+// GPSTK::SINGULAR if the Process Noise Matrix (Rw) is singular
+// GPSTK::OK if ok
+//
+// Method:
+// The fixed interval square root information smoother (SRIS) is
+// composed of two Kalman filters, one identical with the square root
+// information filter (SRIF), the other similar but operating on the
+// data in reverse order and combining the current (smoothed) state
+// with elements output by the SRIF in its forward run and saved.
+// Thus a smoother is composed of a forward filter which saves all of
+// its output, followed by a backward filter which makes use of that
+// saved information.
+// This form of the SRIS algorithm is equivalent to the SRIS backward
+// filter Householder transformation algorithm, but uses less computer
+// resources. It is not necessary to update both the state and the
+// covariance, although doing both at once is less expensive than
+// doing them separately. (This routine does both.)
+// For startup of the backward filter, the state after the final
+// measurement update of the SRIF is given another time update, the
+// output of which is identified with the a priori values for the
+// backward filter. Backward filtering proceeds from there, the N+1st
+// point, toward the first point.
+//
+// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+// Estimation," Academic Press, 1977.
+template <class T>
+void SRIFilter::SrifSU_DM(Matrix<T>& P,
+ Vector<T>& X,
+ Matrix<T>& Phinv,
+ Matrix<T>& Rw,
+ Matrix<T>& G,
+ Vector<T>& Zw,
+ Matrix<T>& Rwx)
+ throw(MatrixException)
+{
+ unsigned int N=P.rows(),Ns=Rw.rows();
+
+ if(P.cols() != P.rows() ||
+ X.size() != N ||
+ Rwx.cols() != N ||
+ Zw.size() != Ns ||
+ Rwx.rows() != Ns || Rwx.cols() != N ||
+ Phinv.rows() != N || Phinv.cols() != N ||
+ G.rows() != N || G.cols() != Ns ) {
+ MatrixException me("Invalid input dimensions:\n P is "
+ + asString<int>(P.rows()) + "x"
+ + asString<int>(P.cols()) + ", X has length "
+ + asString<int>(X.size()) + "\n Phinv is "
+ + asString<int>(Phinv.rows()) + "x"
+ + asString<int>(Phinv.cols()) + "\n Rw is "
+ + asString<int>(Rw.rows()) + "x"
+ + asString<int>(Rw.cols()) + "\n G is "
+ + asString<int>(G.rows()) + "x"
+ + asString<int>(G.cols()) + "\n Zw has length "
+ + asString<int>(Zw.size()) + "\n Rwx is "
+ + asString<int>(Rwx.rows()) + "x"
+ + asString<int>(Rwx.cols())
+ );
+ GPSTK_THROW(me);
+ }
+
+try {
+ G = G * inverse(Rw);
+ Matrix<T> F;
+ F = ident<T>(N) + G*Rwx;
+ // update X
+ Vector<T> C;
+ C = F*X - G*Zw;
+ X = Phinv * C;
+ // update P
+ P = F*P*transpose(F) + G*transpose(G);
+ P = Phinv*P*transpose(Phinv);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+} // end SrifSU_DM
+
+//------------------------------------------------------------------------------------
+} // end namespace gpstk
diff --git a/dev/apps/geomatics/lib/SRIFilter.hpp b/dev/apps/geomatics/lib/SRIFilter.hpp
new file mode 100644
index 0000000..f27b5e2
--- /dev/null
+++ b/dev/apps/geomatics/lib/SRIFilter.hpp
@@ -0,0 +1,519 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SRIFilter.hpp
+ * Include file defining class SRIFilter.
+ * class SRIFilter implements the square root information matrix form of the
+ * Kalman filter and smoother.
+ *
+ * Reference: "Factorization Methods for Discrete Sequential Estimation,"
+ * G.J. Bierman, Academic Press, 1977.
+ */
+
+//------------------------------------------------------------------------------------
+#ifndef CLASS_SQUAREROOT_INFORMATION_FILTER_INCLUDE
+#define CLASS_SQUAREROOT_INFORMATION_FILTER_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system
+#include <ostream>
+// GPSTk
+#include "Vector.hpp"
+#include "Matrix.hpp"
+#include "SRI.hpp"
+
+namespace gpstk
+{
+
+//------------------------------------------------------------------------------------
+/** class SRIFilter inherits SRI and implements a square root information filter,
+ * which is the square root formulation of the Kalman filter algorithm. SRIFilter may
+ * be used for Kalman filtering, smoothing, or for simple least squares, including
+ * weighted, linear or linearized, robust and/or sequential algorithms.
+ *
+ * At any point the state X and covariance P are related to the SRI by
+ * X = inverse(R) * z , P = inverse(R) * inverse(transpose(R)), or
+ * R = upper triangular square root (Cholesky decomposition) of the inverse of P,
+ * and z = R * X.
+ *
+ * The SRIFilter implements Kalman filter algorithm, which includes sequential least
+ * squares (measurement update), dynamic propagation (time update), and smoothing
+ * (technically the term 'Kalman filter algorithm' is reserved for the classical
+ * algorithm just as Kalman presented it, in terms of a state vector and its
+ * covariance matrix).
+ *
+ * The SRIFilter measurment update (which is actually just linear least squares) is
+ * half of the SRIFilter (Kalman filter) - there is a 'time update' that propagates
+ * the SRI (and thus the state and covariance) forward in time using the dynamical
+ * model of the filter. These are algebraically equivalent to the classical Kalman
+ * algorithm, but are more efficient and numerically stable (actually the Kalman
+ * algorithm has been shown to be numerically unstable!). The SRIFilter smoothing
+ * algorithms consists of a 'backwards' filter, implemented by applying a
+ * 'smoother update' to the SRIFilter at each point in reverse order.
+ *
+ * Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential Estimation,"
+ * Academic Press, 1977.
+ */
+class SRIFilter : public SRI {
+public:
+ /// empty constructor
+ SRIFilter(void) throw();
+
+ /// constructor given the dimension N.
+ /// @param N dimension of the SRIFilter.
+ SRIFilter(const unsigned int N)
+ throw();
+
+ /// constructor given a Namelist; its dimension determines the SRI dimension.
+ /// @param NL Namelist for the SRIFilter.
+ SRIFilter(const Namelist& NL)
+ throw();
+
+ /// explicit constructor - throw if the dimensions are inconsistent.
+ /// @param R Initial information matrix, an upper triangular matrix of dim N.
+ /// @param Z Initial information data vector, of length N.
+ /// @param NL Namelist for the SRIFilter, also of length N.
+ /// @throw MatrixException if dimensions are not consistent.
+ SRIFilter(const Matrix<double>& R,
+ const Vector<double>& Z,
+ const Namelist& NL)
+ throw(MatrixException);
+
+ /// copy constructor
+ /// @param right SRIFilter to be copied
+ SRIFilter(const SRIFilter& right)
+ throw()
+ { *this = right; }
+
+ /// operator=
+ /// @param right SRIFilter to be copied
+ SRIFilter& operator=(const SRIFilter& right)
+ throw();
+
+ /// SRIF (Kalman) simple linear measurement update with optional weight matrix
+ /// @param H Partials matrix, dimension MxN.
+ /// @param D Data vector, length M; on output D is post-fit residuals.
+ /// @param CM Measurement covariance matrix, dimension MxM.
+ /// @throw if dimension N does not match dimension of SRI, or if other
+ /// dimensions are inconsistent, or if CM is singular.
+ void measurementUpdate(const Matrix<double>& H,
+ Vector<double>& D,
+ const Matrix<double>& CM=SRINullMatrix)
+ throw(MatrixException,VectorException);
+
+ /// SRIF (Kalman) measurement update, or least squares update
+ /// Given data and measurement covariance, compute a solution and
+ /// covariance using the appropriate least squares algorithm.
+ /// @param D Data vector, length M
+ /// Input: raw data
+ /// Output: post-fit residuals
+ /// @param X Solution vector, length N
+ /// Input: nominal solution X0 (zero when doLinearized is false)
+ /// Output: final solution
+ /// @param Cov Covariance matrix, dimension (N,N)
+ /// Input: (If doWeight is true) inverse measurement covariance
+ /// or weight matrix(M,M)
+ /// Output: Solution covariance matrix (N,N)
+ /// @param LSF Pointer to a function which is used to define the equation
+ /// to be solved.
+ /// LSF arguments are:
+ /// X Nominal solution (input)
+ /// f Values of the equation f(X) (length M) (output)
+ /// P Partials matrix df/dX evaluated at X (dimension M,N) (output)
+ /// When doLinearize is false, LSF ignores X and returns the (constant)
+ /// partials matrix P and zero for f(X).
+ /// @throw MatrixException if the input is inconsistent
+ /// Return values: 0 ok
+ /// -1 Problem is underdetermined (M<N) // TD -- naturalized sol?
+ /// -2 Problem is singular
+ /// -3 Algorithm failed to converge
+ /// -4 Algorithm diverged
+ int leastSquaresEstimation(Vector<double>& D,
+ Vector<double>& X,
+ Matrix<double>& Cov,
+ void (LSF)(Vector<double>& X,
+ Vector<double>& f,
+ Matrix<double>& P)
+ )
+ throw(MatrixException);
+
+ /// SRIF (Kalman) time update
+ /// This routine uses the Householder transformation to propagate the SRIFilter
+ /// state and covariance through a time step.
+ /// If the existing SRI state is of dimension n, and the number of noise
+ /// parameter is ns, then the inputs must be dimensioned as indicated.
+ /// @param Phi Matrix<double>
+ /// Inverse of state transition matrix, an n by n matrix.
+ /// Phi is destroyed on output.
+ /// @param Rw Matrix<double>
+ /// a priori square root information matrix for the process
+ /// noise, an ns by ns upper triangular matrix
+ /// @param G Matrix<double>
+ /// The n by ns matrix associated with process noise. The
+ /// process noise covariance is G*Q*transpose(G) where inverse(Q)
+ /// is transpose(Rw)*Rw. G is destroyed on output.
+ /// @param Zw Vector<double>
+ /// a priori 'state' associated with the process noise,
+ /// a vector with ns elements. Usually set to zero by
+ /// the calling routine (for unbiased process noise). Used for output.
+ /// @param Rwx Matrix<double>
+ /// An ns by n matrix which is set to zero by this routine
+ /// and used for output.
+ ///
+ /// Output:
+ /// The updated square root information matrix and SRIF state (R,Z) and
+ /// the matrices which are used in smoothing: Rw, Zw, Rwx.
+ ///
+ /// @throw MatrixException if the input is inconsistent
+ /// @return void
+ ///
+ /// Method:
+ /// This SRIF time update method treats the process noise and mapping
+ /// information as a separate data equation, and applies a Householder
+ /// transformation to the (appended) equations to solve for an updated
+ /// state. Thus there is another 'state' variable associated with
+ /// whatever state variables have process noise. The matrix G relates
+ /// the process noise variables to the regular state variables, and
+ /// appears in the term GQtranspose(G) of the covariance. If all n state
+ /// variables have process noise, then ns=n and G is an n by n matrix.
+ /// Since some (or all) of the state variables may not have process
+ /// noise, ns may be zero. [Ref. Bierman ftnt pg 122 seems to indicate that
+ /// variables with zero process noise can be handled by ns=n & setting a
+ /// column of G=0. But note that the case of the matrix G=0 is the
+ /// same as ns=0, because the first ns columns would be zero below the
+ /// diagonal in that case anyway, so the HH transformation would be
+ /// null.]
+ /// For startup, all of the a priori information and state arrays may
+ /// be zero. That is, "no information" would imply that R and Z are zero,
+ /// as well as Zw. A priori information (covariance) and state
+ /// are handled by setting P = inverse(R)*transpose(inverse((R)), Z = R*X.
+ /// There are three ways to handle non-zero process noise covariance.
+ /// (1) If Q is the (known) a priori process noise covariance Q, then
+ /// set Q=Rw(-1)*Rw(-T), and G=1.
+ /// (2) Transform process noise covariance matrix to UDU form, Q=UDU,
+ /// then set G=U and Rw = (D)**-1/2.
+ /// (3) Take the sqrt of process noise covariance matrix Q, then set
+ /// G=this sqrt and Rw = 1. [2 and 3 have been tested.]
+ /// The routine applies a Householder transformation to a large
+ /// matrix formed by addending the input matricies. Two preliminary
+ /// steps are to form Rd = R*Phi (stored in Phi) and -Rd*G (stored in
+ /// G) by matrix multiplication, and to set Rwx to the zero matrix.
+ /// Then the Householder transformation is applied to the following
+ /// matrix, dimensions are shown in ():
+ /// _ (ns) (n) (1) _ _ _
+ /// (ns) | Rw 0 Zw | ==> | Rw Rwx Zw |
+ /// (n) | -Rd*G Rd Z | ==> | 0 R Z | .
+ /// - - - -
+ /// The SRI matricies R and Rw remain upper triangular.
+ ///
+ /// The matrix Rwx is related to the sensitivity of the state
+ /// estimate to the unmodeled parameters in Zw. The sensitivity matrix
+ /// is Sen = -inverse(Rw)*Rwx,
+ /// where perturbation in model X =
+ /// Sen * diagonal(a priori sigmas of parameter uncertainties).
+ ///
+ /// The quantities Rw, Rwx and Zw on output are to be saved and used
+ /// in the sqrt information fixed interval smoother (SRIS), during the
+ /// backward filter process.
+ /// -------------------------------------------------------------------
+ /// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+ /// Estimation," Academic Press, 1977.
+ void timeUpdate(Matrix<double>& Phi,
+ Matrix<double>& Rw,
+ Matrix<double>& G,
+ Vector<double>& zw,
+ Matrix<double>& Rwx)
+ throw(MatrixException);
+
+ /// SRIF (Kalman) smoother update
+ /// This routine uses the Householder transformation to propagate the SRIF
+ /// state and covariance through a smoother (backward filter) step.
+ /// If the existing SRI state is of dimension N, and the number of noise
+ /// parameter is Ns, then the inputs must be dimensioned as indicated.
+ /// @param Phi Matrix<double>
+ /// State transition matrix, an N by N matrix.
+ /// Phi is destroyed on output.
+ /// @param Rw Matrix<double>
+ /// A priori square root information matrix for the process
+ /// noise, an Ns by Ns upper triangular matrix (which has
+ /// Ns(Ns+1)/2 elements), output of the time update.
+ /// @param G Matrix<double>
+ /// The N by Ns matrix associated with process noise. The
+ /// process noise covariance is GQtranspose(G) where inverse(Q)
+ /// is Rw(trans)*Rw, also input to the time update. // TD
+ /// @param zw Vector<double>
+ /// A priori 'state' associated with the process noise,
+ /// a vector with Ns elements, output of the time update.
+ /// @param Rwx Matrix<double> An Ns by N matrix, output of the time update.
+ ///
+ /// The inputs Rw,zw,Rwx are the output of the SRIF time update, and these and
+ /// Phi and G are associated with the same timestep. All the inputs are trashed
+ /// on output.
+ ///
+ /// @throw MatrixException if the input is inconsistent
+ /// @return void
+ ///
+ /// Method:
+ /// The fixed interval square root information smoother (SRIS) is
+ /// composed of two Kalman filters, one identical with the square root
+ /// information filter (SRIF), the other similar but operating on the
+ /// data in reverse order and combining the current (smoothed) state
+ /// with elements output by the SRIF in its forward run and saved.
+ /// Thus a smoother is composed of a forward filter which saves all of
+ /// its output, followed by a backward filter which makes use of that
+ /// saved information.
+ /// This form of the SRIF backward filter algorithm is equivalent to the
+ /// Dyer-McReynolds SRIS algorithm, which uses less computer resources, but
+ /// propagates the state and covariance rather than the SRI (R,z). [As always,
+ /// at any point the state X and covariance P are related to the SRI by
+ /// X = inverse(R) * z , P = inverse(R) * inverse(transpose(R)).]
+ /// For startup of the backward filter, the state after the final
+ /// measurement update of the SRIF is given another time update, the
+ /// output of which is identified with the a priori values for the
+ /// backward filter. Backward filtering proceeds from there, the N+1st
+ /// point, toward the first point.
+ ///
+ /// In this implementation of the backward filter, the Householder
+ /// transformation is applied to the following matrix
+ /// [dimensions are shown in ()]:
+ ///
+ /// _ (Ns) (N) (1) _ _ _
+ /// (Ns) | Rw+Rwx*G Rwx*Phi zw | ==> | Rw Rwx zw |
+ /// (N) | R*G R*Phi z | ==> | 0 R z | .
+ /// - - - -
+ /// The SRI matricies R and Rw remain upper triangular.
+ ///
+ /// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+ /// Estimation," Academic Press, 1977.
+ void smootherUpdate(Matrix<double>& Phi,
+ Matrix<double>& Rw,
+ Matrix<double>& G,
+ Vector<double>& zw,
+ Matrix<double>& Rwx)
+ throw(MatrixException);
+
+ /// Covariance/State version of the Kalman smoother update (Dyer-McReynolds).
+ /// This routine implements the Dyer-McReynolds form of the state and covariance
+ /// recursions which constitute the backward filter of the Square Root
+ /// Information Smoother; it is equivalent to the SRI form implemented in
+ /// SRIFilter::smootherUpdate().
+ ///
+ /// @param X Vector<double> X(N)
+ /// A priori state, derived from SRI (R*X=Z)
+ /// @param P Matrix<double> P(N,N)
+ /// A priori covariance, derived from SRI (P=R^-1*R^-T)
+ /// @param Rw Matrix<double> Rw(Ns,Ns)
+ /// Process noise covariance (UT), output of SRIF TU
+ /// @param Rwx Matrix<double> Rwx(Ns,N)
+ /// PN 'cross term', output of SRIF TU
+ /// @param Zw Vector<double> Zw(Ns)
+ /// Process noise state, output of SRIF TU
+ /// @param Phinv Matrix<double> Phinv(N,N)
+ /// Inverse of state transition, saved at SRIF TU
+ /// @param G Matrix<double> G(N,Ns)
+ /// Noise coupling matrix, saved at SRIF TU
+ /// @throw MatrixException if the input is inconsistent
+ /// @return void
+ /// On return, X and P are the updated state and covariance, and the
+ /// other inputs are trashed.
+ ///
+ /// Method:
+ /// The fixed interval square root information smoother (SRIS) is
+ /// composed of two Kalman filters, one identical with the square root
+ /// information filter (SRIF), the other similar but operating on the
+ /// data in reverse order and combining the current (smoothed) state
+ /// with elements output by the SRIF in its forward run and saved.
+ /// Thus a smoother is composed of a forward filter which saves all of
+ /// its output, followed by a backward filter which makes use of that
+ /// saved information.
+ /// This form of the SRIS algorithm is equivalent to the SRIS backward
+ /// filter Householder transformation algorithm, but uses less computer
+ /// resources. It is not necessary to update both the state and the
+ /// covariance, although doing both at once is less expensive than
+ /// doing them separately. (This routine does both.)
+ /// For startup of the backward filter, the state after the final
+ /// measurement update of the SRIF is given another time update, the
+ /// output of which is identified with the a priori values for the
+ /// backward filter. Backward filtering proceeds from there, the N+1st
+ /// point, toward the first point.
+ ///
+ /// Ref: Bierman, G.J. "Factorization Methods for Discrete Sequential
+ /// Estimation," Academic Press, 1977.
+ static void DMsmootherUpdate(Matrix<double>& P,
+ Vector<double>& X,
+ Matrix<double>& Phinv,
+ Matrix<double>& Rw,
+ Matrix<double>& G,
+ Vector<double>& Zw,
+ Matrix<double>& Rwx)
+ throw(MatrixException);
+
+ /// output operator
+ friend std::ostream& operator<<(std::ostream& s,
+ const SRIFilter& srif);
+
+ /// Get the current solution vector
+ /// @return current solution vector
+ Vector<double> Solution(void) { return Xsave; }
+
+ /// Get the number of iterations used in last call to leastSquaresEstimation()
+ /// @return the number of iterations
+ int Iterations() { return number_iterations; }
+
+ /// Get the convergence value found in last call to leastSquaresEstimation()
+ /// @return the convergence value
+ double Convergence() { return rms_convergence; }
+
+ /// Get the condition number of the covariance matrix from last calls
+ /// to leastSquaresEstimation() (Larger means 'closer to singular' except
+ /// zero means condition number is infinite)
+ double ConditionNumber() { return condition_number; }
+
+ /// Return true if the algorithm succeeded.
+ /// Currently used only by leastSquaresEstimation(). TD - do in TU and SU
+ bool isValid() { return valid; }
+
+ /// remove all stored information by setting the SRI to zero
+ /// (does not re-dimension).
+ void zeroAll(void);
+
+ /// reset the computation, i.e. remove all stored information, and
+ /// optionally change the dimension. If N is not input, the
+ /// dimension is not changed.
+ /// @param N new SRIFilter dimension (optional).
+ void Reset(const int N=0);
+
+ // ------------- member data ---------------
+ /// limit on the number of iterations
+ int iterationsLimit;
+ /// limit on the RSS change in solution which produces success
+ double convergenceLimit;
+ /// upper limit on the RSS change in solution which produces an abort
+ double divergenceLimit;
+ /// if true, weight the equation using the inverse of covariance matrix
+ /// on input - default is false
+ bool doWeight;
+ /// if true, weight the equation using robust statistical techniques
+ /// - default is false
+ bool doRobust;
+ /// if true, save information for a sequential solution - default is false
+ bool doSequential;
+ /// if true, equation F(X)=D is non-linear, the algorithm will be iterated,
+ /// and LSF must return partials matrix and F(X). - default is false
+ bool doLinearize;
+ /// if true, output intermediate results
+ bool doVerbose;
+
+private:
+ /// SRIF time update (non-SRI version); SRIFilter::timeUpdate for doc.
+ template <class T>
+ static void SrifTU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& Phi,
+ Matrix<T>& Rw,
+ Matrix<T>& G,
+ Vector<T>& Zw,
+ Matrix<T>& Rwx)
+ throw(MatrixException);
+
+ /// SRIF smoother update (non-SRI version); SRIFilter::smootherUpdate for doc.
+ template <class T>
+ static void SrifSU(Matrix<T>& R,
+ Vector<T>& Z,
+ Matrix<T>& Phi,
+ Matrix<T>& Rw,
+ Matrix<T>& G,
+ Vector<T>& Zw,
+ Matrix<T>& Rwx)
+ throw(MatrixException);
+
+ /// SRIF smoother update in covariance / state form;
+ /// see SRIFilter::DMsmootherUpdate() for doc.
+ template <class T>
+ static void SrifSU_DM(Matrix<T>& P,
+ Vector<T>& X,
+ Matrix<T>& Phinv,
+ Matrix<T>& Rw,
+ Matrix<T>& G,
+ Vector<T>& Zw,
+ Matrix<T>& Rwx)
+ throw(MatrixException);
+
+ /// initialization used by constructors
+ void defaults(void) throw()
+ {
+ iterationsLimit = 10;
+ convergenceLimit = 1.e-8;
+ divergenceLimit = 1.e10;
+ doWeight = false;
+ doRobust = false;
+ doLinearize = false;
+ doSequential = false;
+ doVerbose = false;
+ valid = false;
+ number_iterations = number_batches = 0;
+ rms_convergence = condition_number = 0.0;
+ }
+
+ // private member data - inherits from SRI
+ // inherit SRI Information matrix, an upper triangular (square) matrix
+ //Matrix<double> R;
+ // inherit SRI state vector, of length equal to dimension (row and col) of R.
+ //Vector<double> Z;
+ // inherit SRI Namelist parallel to R and Z, labelling elements of state vector.
+ //Namelist names;
+ /// indicates if filter is valid - set false when inversion finds singularity.
+ bool valid;
+ /// current number of iterations
+ int number_iterations;
+ /// current number of batches seen
+ int number_batches;
+ /// RMS change in state, used for convergence test
+ double rms_convergence;
+ /// condition number, defined in inversion to get state and covariance
+ double condition_number;
+ /// solution X consistent with current information RX=z
+ Vector<double> Xsave;
+
+}; // end class SRIFilter
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
+#endif
diff --git a/dev/apps/geomatics/lib/SatPass.cpp b/dev/apps/geomatics/lib/SatPass.cpp
new file mode 100644
index 0000000..6dab8ac
--- /dev/null
+++ b/dev/apps/geomatics/lib/SatPass.cpp
@@ -0,0 +1,292 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SatPass.cpp
+ * Data for one complete satellite pass overhead.
+ */
+
+//------------------------------------------------------------------------------------
+#include <ostream>
+#include <string>
+#include "SatPass.hpp"
+#include "icd_200_constants.hpp" // OSC_FREQ,L1_MULT,L2_MULT
+#include "Stats.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+
+// for use in smooth()
+const double CFF=gpstk::C_GPS_M/gpstk::OSC_FREQ;
+const double F1=gpstk::L1_MULT; // 154.0;
+const double F2=gpstk::L2_MULT; // 120.0;
+// wavelengths
+const double wl1=CFF/F1; // 19.0cm
+const double wl2=CFF/F2; // 24.4cm
+// ionospheric constant
+const double alpha = ((F1/F2)*(F1/F2) - 1.0);
+// transformation matrix
+const double D11 = (alpha+2.)/alpha;
+const double D12 = -2./alpha;
+const double D21 = (2*alpha+2.)/alpha;
+const double D22 = -D11;
+
+//------------------------------------------------------------------------------------
+namespace gpstk {
+
+using namespace StringUtils;
+
+// note that flag & LL1 = true for all L1 discontinuities
+// flag & LL2 = true for all L2 discontinuities
+const unsigned short SatPass::OK = 1; // good data, no discontinuity
+const unsigned short SatPass::BAD = 0; // used by caller and DC to mark bad data
+const unsigned short SatPass::LL1 = 2; // discontinuity on L1 only
+const unsigned short SatPass::LL2 = 4; // discontinuity on L2 only
+const unsigned short SatPass::LL3 = 6; // discontinuity on L1 and L2
+double SatPass::maxGap = 1800; // maximum gap (seconds) allowed within pass
+string SatPass::outFormat = string("%4F %10.3g"); // GPS week, seconds of week
+
+// Default constructor
+SatPassData::SatPassData(void)
+{
+ flag = SatPass::OK;
+ ndt = 0;
+ L1 = L2 = P1 = P2 = 0.0;
+ indicators = 0;
+}
+
+// Destructor
+SatPassData::~SatPassData(void) { }
+
+// Default constructor
+SatPass::SatPass(GSatID insat, double indt)
+{
+ sat = insat;
+ dt = indt;
+ ngood = 0;
+ status = 0;
+}
+
+// Destructor
+SatPass::~SatPass(void) { }
+
+// operator =
+SatPass& SatPass::operator=(const SatPass& sp)
+{
+ sat = sp.sat;
+ dt = sp.dt;
+ ngood = sp.ngood;
+ status = sp.status;
+ firstTime = sp.firstTime;
+ lastTime = sp.lastTime;
+ data.resize(sp.data.size());
+ for(int i=0; i<sp.data.size(); i++) {
+ data[i] = sp.data[i];
+ }
+ return *this;
+}
+
+// add data (P1,P2,L1,L2) to the arrays at timetag tt, optionally flag it BAD
+bool SatPass::push_back(const DayTime tt, SatPassData& spd)
+{
+ int n;
+
+ // if this is the first point, save first time
+ if(data.size() == 0) {
+ firstTime = lastTime = tt;
+ n = 0;
+ }
+ else {
+ if(tt < lastTime) { // TD return false?
+ Exception e("times are out of order");
+ GPSTK_THROW(e);
+ }
+ // compute count for this point
+ n = int((tt-firstTime)/dt + 0.5);
+
+ // test size of gap
+ if( (n - data[data.size()-1].ndt) * dt > maxGap)
+ return false;
+
+ lastTime = tt;
+ }
+
+ // add it
+ if(spd.flag & OK) ngood++;
+ spd.ndt = n;
+ spd.toffset = tt - firstTime - n*dt;
+ data.push_back(spd);
+
+ return true;
+}
+
+// return the time corresponding to the given index in the data array
+DayTime SatPass::time(unsigned int i) const throw(Exception)
+{
+ if(i > data.size()) {
+ Exception e("invalid in time() " + asString(i));
+ GPSTK_THROW(e);
+ }
+ // computing toff first is necessary to avoid a rare bug in DayTime..
+ double toff=data[i].ndt*dt+data[i].toffset;
+ //return (firstTime + data[i].ndt*dt + data[i].toffset);
+ return (firstTime + toff);
+}
+
+// return true if the input time could lie within the pass
+bool SatPass::includesTime(const DayTime& tt) const throw()
+{
+ if(tt < firstTime) {
+ if((firstTime-tt) > maxGap) return false;
+ }
+ else if(tt > lastTime) {
+ if((tt-lastTime) > maxGap) return false;
+ }
+ return true;
+}
+
+// get one element of the data array of this SatPass
+SatPassData SatPass::getData(unsigned int i) const throw(Exception)
+{
+ if(i >= data.size()) {
+ Exception e("invalid in getData() " + asString(i));
+ GPSTK_THROW(e);
+ }
+ return data[i];
+}
+
+// get one element of the count array of this SatPass
+unsigned int SatPass::getCount(unsigned int i) const throw(Exception)
+{
+ if(i >= data.size()) {
+ Exception e("invalid in getCount() " + asString(i));
+ GPSTK_THROW(e);
+ }
+ return data[i].ndt;
+}
+
+// smooth pseudorange and debias phase; replace the data only if the
+// corresponding input flag is 'true'.
+// call this ONLY after cycleslips have been removed.
+void SatPass::smooth(bool smoothPR, bool smoothPH, ostream& os)
+{
+ // PB = D * L - R pure biases = constants for continuous phase
+ // RB = D * PB real biases = wavelength * N
+ // dbL = L - RB debiased phase
+ // smR = D * dbL smoothed range
+ // 1 [ a+2 -2 ]
+ // D = -- [ ]
+ // a [ 2a+2 -(a+2) ]
+
+ int i;
+ double RB1,RB2,dbL1,dbL2;
+ Stats<double> PB1,PB2;
+
+ // get the average pure bias
+ for(i=0; i<data.size(); i++) {
+ if(!(data[i].flag & OK)) continue; // skip bad data
+ PB1.Add(D11*wl1*data[i].L1 + D12*wl2*data[i].L2 - data[i].P1);
+ PB2.Add(D21*wl1*data[i].L1 + D22*wl2*data[i].L2 - data[i].P2);
+ }
+ // real biases / wavelength
+ RB1 = (D11*(PB1.Average()) + D12*(PB2.Average()))/wl1;
+ RB2 = (D21*(PB1.Average()) + D22*(PB2.Average()))/wl2;
+
+ os << "SMT" << fixed << setprecision(2)
+ << " " << sat
+ << " " << firstTime.printf(outFormat)
+ << " " << lastTime.printf(outFormat)
+ << " " << setw(5) << PB1.N()
+ << " " << setw(12) << PB1.Average()
+ << " " << setw(5) << PB1.StdDev()
+ << " " << setw(12) << PB1.Minimum()
+ << " " << setw(12) << PB1.Maximum()
+ << " " << setw(5) << PB2.N()
+ << " " << setw(12) << PB2.Average()
+ << " " << setw(5) << PB2.StdDev()
+ << " " << setw(12) << PB2.Minimum()
+ << " " << setw(12) << PB2.Maximum()
+ << " " << setw(12) << RB1
+ << " " << setw(12) << RB2
+ << endl;
+
+ if(!smoothPH && !smoothPR) return;
+
+ for(i=0; i<data.size(); i++) {
+ if(!(data[i].flag & OK)) continue; // skip bad data
+
+ dbL1 = data[i].L1 - RB1;
+ dbL2 = data[i].L2 - RB2;
+ // debias the phase
+ if(smoothPH) {
+ data[i].L1 = dbL1;
+ data[i].L2 = dbL2;
+ }
+ // smooth the range
+ if(smoothPR) {
+ data[i].P1 = D11*wl1*dbL1 + D12*wl2*dbL2;
+ data[i].P2 = D21*wl1*dbL1 + D22*wl2*dbL2;
+ }
+ }
+}
+
+// dump all the data in the pass, one line per timetag;
+// put message msg at beginning of each line.
+void SatPass::dump(ostream& os, string msg1, string msg2) const throw()
+{
+ os << '#' << msg1 << " " << *this << " " << msg2 << endl;
+
+ DayTime tt;
+ for(int i=0; i<data.size(); i++) {
+ tt = time(i);
+ os << msg1
+ << " " << setw(3) << i
+ << " " << sat
+ << " " << setw(3) << data[i].ndt
+ << " " << setw(2) << data[i].flag
+ << " " << tt.printf(SatPass::outFormat)
+ << fixed << setprecision(3)
+ << " " << setw(13) << data[i].L1
+ << " " << setw(13) << data[i].L2
+ << " " << setw(13) << data[i].P1
+ << " " << setw(13) << data[i].P2
+ << endl;
+ }
+}
+
+// output SatPass to ostream
+ostream& operator<<(ostream& os, const SatPass& sp )
+{
+ os << setw(3) << sp.data.size()
+ << " " << sp.sat
+ << " " << setw(3) << sp.ngood
+ << " " << setw(2) << sp.status
+ << " " << sp.firstTime.printf(SatPass::outFormat)
+ << " " << sp.lastTime.printf(SatPass::outFormat)
+ << " " << fixed << setprecision(1) << sp.dt;
+
+ return os;
+}
+
+} // end namespace gpstk
diff --git a/dev/apps/geomatics/lib/SatPass.hpp b/dev/apps/geomatics/lib/SatPass.hpp
new file mode 100644
index 0000000..d06a695
--- /dev/null
+++ b/dev/apps/geomatics/lib/SatPass.hpp
@@ -0,0 +1,214 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SatPass.hpp
+ * Data for one complete satellite pass overhead.
+ */
+
+#ifndef GPSTK_SATELLITE_PASS_INCLUDE
+#define GPSTK_SATELLITE_PASS_INCLUDE
+
+#include "DayTime.hpp"
+#include "GSatID.hpp"
+#include "RinexObsHeader.hpp"
+#include "Exception.hpp"
+
+#include <vector>
+
+namespace gpstk {
+
+ /** @addtogroup rinexutils */
+ //@{
+
+/** class SatPassData is used in SatPass to hold the RINEX data. */
+class SatPassData {
+public:
+ /// Constructor
+ SatPassData(void);
+ /// Destructor
+ ~SatPassData(void);
+
+ /// a flag (cf. SatPass::BAD, etc.) that is set to OK or BAD at creation (by the
+ /// caller of SatPass::push_back), then reset by other processing.
+ unsigned short flag;
+ /// time 'count' : time of data[i] = FirstTime + ndt[i] * dt + offset
+ unsigned int ndt;
+ /// offset of time from integer number * dt since FirstTime.
+ double toffset;
+ /// data arrays for dual frequency pseudorange (m) and carrier phase (cycles)
+ double P1,P2,L1,L2;
+ /// loss-of-lock and signal-strength indicators (from RINEX) for the P1,P2,L1,L2
+ /// data, 'merged' together into a single integer. I.e. if the LLI and SSI for
+ /// the data are 2,5,3,6,7,9,3 & 9, then indicators = 25367939.
+ unsigned long indicators;
+
+}; // end class SatPassData
+
+/** class SatPass holds all range and phase data for a full satellite pass.
+ * Constructed and filled by the calling program, it is used to pass data into
+ * and out of the GPSTK discontinuity corrector.
+ */
+class SatPass {
+public:
+ /// flag indicating bad data
+ static const unsigned short BAD;
+ /// flag indicating good data with no phase discontinuity
+ /// NB test for 'good' data using (flag != SatPass::BAD), NOT flag==SatPass::OK
+ static const unsigned short OK;
+ /// flag indicating good data with phase discontinuity on L1 only.
+ static const unsigned short LL1;
+ /// flag indicating good data with phase discontinuity on L2 only.
+ static const unsigned short LL2;
+ /// flag indicating good data with phase discontinuity on both L1 and L2.
+ static const unsigned short LL3;
+ /// size of maximum time gap, in seconds, allowed within SatPass data.
+ static double maxGap;
+ /// format string, as defined in class DayTime, for output of times
+ static std::string outFormat;
+
+ typedef std::vector<SatPassData>::iterator iterator;
+ typedef std::vector<SatPassData>::const_iterator const_iterator;
+
+ // member functions ----------------------------------------------
+ /// Default constructor
+ SatPass(GSatID sat, double dt);
+
+ /// Destructor
+ ~SatPass(void);
+
+ /// Copy constructor
+ SatPass(const SatPass& sp) { *this = sp; }
+
+ /// operator =
+ SatPass& operator=(const SatPass& sp);
+
+ /// add data to the arrays at timetag tt
+ /// Calls must be made in time order
+ /// Caller sets the flag to either BAD or OK; other processing (DC) may reset.
+ bool push_back(const DayTime tt, SatPassData& spd);
+
+ /// smooth pseudorange and debias phase; call this ONLY after cycleslips
+ /// have been removed.
+ void smooth(bool smoothPR, bool smoothPH, std::ostream& os);
+
+ /// change the maximum time gap (in seconds) allowed within any SatPass
+ /// return the input.
+ static double setMaxGap(const double gap)
+ { maxGap = gap; return maxGap; }
+
+ /// set timetag output format
+ void setOutputFormat(std::string fmt) { outFormat = fmt; };
+
+ /// get the max. gap limit size (seconds); for all SatPass objects
+ double getMaxGap(void) const throw() { return maxGap; }
+
+ /// get the timetag of the first data in this SatPass
+ DayTime getFirstTime(void) const throw() { return firstTime; }
+
+ /// get the timetag of the last data in this SatPass
+ DayTime getLastTime(void) const throw() { return lastTime; }
+
+ /// get the satellite of this SatPass
+ GSatID getSat(void) const throw() { return sat; }
+
+ /// get the time interval of this SatPass
+ double getDT(void) const throw() { return dt; }
+
+ /// get the number of good points in this SatPass
+ int getNgood(void) const throw() { return ngood; }
+
+ /// get the size of (the arrays in) this SatPass
+ unsigned int size(void) const throw() { return data.size(); }
+
+ /// resize the arrays in this SatPass
+ void resize(unsigned int n) throw() { data.resize(n); }
+
+ /// get one element of the count array of this SatPass
+ unsigned int getCount(unsigned int i) const throw(Exception);
+
+ /// get one element of the data array of this SatPass
+ SatPassData getData(unsigned int i) const throw(Exception);
+
+ /// compute the timetag associated with index i in the data array
+ DayTime time(unsigned int i) const throw(Exception);
+
+ /// return true if the given timetag is or could be part of this pass
+ bool includesTime(const DayTime& tt) const throw();
+
+ /// dump all the data in the pass, one line per timetag;
+ /// put message msg1 at beginning of each line,
+ /// msg2 at the end of the first (#comment) line.
+ void dump(std::ostream& os, std::string msg1, std::string msg2=std::string())
+ const throw();
+
+ /// STL iterator begin
+ iterator begin() { return data.begin(); }
+ /// STL const iterator begin
+ const_iterator begin() const
+ { return data.begin(); }
+ /// STL iterator end
+ iterator end() { return data.end(); }
+ /// STL const iterator end
+ const_iterator end() const
+ { return data.end(); }
+
+ // other ---------------------------------------------------------
+ friend std::ostream& operator<<(std::ostream& os, const gpstk::SatPass& sp);
+
+ // member data ---------------------------------------------------
+ /// status flag for use by DC, caller, etc.; set to 0 by constructor,
+ /// but otherwise ignored by class SatPass.
+ unsigned int status;
+
+protected:
+ /// nominal time spacing of the data.
+ double dt;
+
+ /// timetags of the first and last data points.
+ DayTime firstTime,lastTime;
+
+ /// Satellite identifier for this data.
+ GSatID sat;
+
+ /// number of timetags with good data in the data arrays.
+ unsigned int ngood;
+
+ /// All data in the pass (good and bad points), stored in SatPassData,
+ /// are stored in this vector.
+ std::vector<SatPassData> data;
+
+}; // end class SatPass
+
+ ///Stream output for SatPass.
+ ///@param os output stream to write to
+ ///@param sp SatPass to write
+ ///@return reference to os.
+std::ostream& operator<<(std::ostream& os, const gpstk::SatPass& sp);
+
+ //@}
+
+} // end namespace gpstk
+
+#endif
diff --git a/dev/apps/geomatics/lib/format.cpp b/dev/apps/geomatics/lib/format.cpp
new file mode 100644
index 0000000..64dd650
--- /dev/null
+++ b/dev/apps/geomatics/lib/format.cpp
@@ -0,0 +1,57 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file format.cpp
+ * Simple class to encapsulate output format
+ */
+
+//-----------------------------------------------------------------------------
+#include "format.hpp"
+#include <iomanip>
+using namespace std;
+ostream& operator<<(ostream& os, const format& f)
+{
+ if(f.form) os << (f.form==1 ? fixed : scientific);
+ if(f.wide > 0) os << setw(f.wide);
+ os << setprecision(f.prec);
+ return os;
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/format.hpp b/dev/apps/geomatics/lib/format.hpp
new file mode 100644
index 0000000..4497284
--- /dev/null
+++ b/dev/apps/geomatics/lib/format.hpp
@@ -0,0 +1,73 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file format.hpp
+ * Simple class to encapsulate output format
+ */
+
+#ifndef CLASS_FORMAT_HELPER_INCLUDE
+#define CLASS_FORMAT_HELPER_INCLUDE
+
+#include <ostream>
+
+//------------------------------------------------------------------------------------
+class format {
+ int form; // 0=general,1=float,2=scientific
+ int wide;
+ int prec;
+public:
+ explicit format(int w, int p, int f=1) : wide(w),prec(p),form(f) {}
+ format& scientific() { form=2; return *this; }
+ format& sci() { form=2; return *this; }
+ format& fixed() { form=1; return *this; }
+ format& fix() { form=1; return *this; }
+ format& general() { form=0; return *this; }
+ format& gen() { form=0; return *this; }
+ format& width(int w) { wide=w; return *this; }
+ format& w(int w) { wide=w; return *this; }
+ format& precision(int p) { prec=p; return *this; }
+ format& p(int p) { prec=p; return *this; }
+ format& wp(int w, int p) { prec=p; wide=w; return *this; }
+
+ friend std::ostream& operator<<(std::ostream& os, const format& f);
+}; // end class format
+
+//------------------------------------------------------------------------------------
+#endif
+// nothing below this..
diff --git a/dev/apps/geomatics/lib/index.hpp b/dev/apps/geomatics/lib/index.hpp
new file mode 100644
index 0000000..f8a1e02
--- /dev/null
+++ b/dev/apps/geomatics/lib/index.hpp
@@ -0,0 +1,87 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file index.hpp
+ * A template function to find the index of a particular element of std::vector
+ */
+
+#ifndef INDEX_ROUTINE_INCLUDE
+#define INDEX_ROUTINE_INCLUDE
+
+//------------------------------------------------------------------------------------
+// find the index of first occurance of item t (of type T) in vector<T> v;
+// i.e. j = index(v,t); implies v[j] == t. Return -1 if t is not found.
+template<class T> int index(const std::vector<T> v, const T& t)
+{
+ for(int i=0; i<v.size(); i++) {
+ if(v[i] == t) return i;
+ }
+ return -1;
+}
+
+/*
+// find the index of first occurance of item t (of type T) in vector<T> v;
+// i.e. j = index(v,t); implies v[j] == t. Return -1 if t is not found.
+// assume that the vector<T> is strictly increasing,
+// that is that J > I strictly implies v[J] > v[I].
+// let istart be a suggested starting point for the search;
+// that is istart+(small) or istart-(small) may very well be the desired index
+template<class T> int index_uniform(const std::vector<T> v, const T& t, int istart=0)
+{
+ if(istart < 0 || istart > v.size()) istart=0;
+ int i=istart,k=0;
+ while(i<v.size() && i>=0) {
+ if(v[i] == t) {
+ return i;
+ }
+ else if(v[i] < t) {
+ if(k == -1) return -1;
+ k = 1; // increasing
+ }
+ else {
+ if(k == 1) return -1;
+ k = -1; // decreasing
+ }
+ i += k;
+ }
+ return -1;
+}
+*/
+
+#endif
diff --git a/dev/apps/geomatics/lib/random.cpp b/dev/apps/geomatics/lib/random.cpp
new file mode 100644
index 0000000..e94c8e0
--- /dev/null
+++ b/dev/apps/geomatics/lib/random.cpp
@@ -0,0 +1,170 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file random.cpp
+ * Simple random number generator.
+ */
+
+// -----------------------------------------------------------------------------
+#include <iostream>
+#include <iomanip>
+#include <cmath>
+#include <ctime>
+
+#include "random.hpp"
+
+using namespace std;
+
+// -----------------------------------------------------------------------------
+// Generate random numbers uniformly distributed from 0.0 to 1.0. Mbig and
+// Mseed are large but arbitrary, but Mbig > Mseed. The 55 is not arbitrary.
+double Rand(long seed)
+{
+#define Mbig 1000000000.
+#define Mseed 161803398.
+#define imod(x,y) ((x)-((x)/(y))*(y))
+ static short iff=0,inext,inextp;
+ static double Ma[55];
+ double mj,mk;
+ short i,ii,k;
+ if(!iff) {
+ if(seed < 0) seed=-seed;
+ mj = Mseed-seed;
+ mj = fmod(mj,Mbig);
+ Ma[54] = mj;
+ mk = 1.0;
+ for(i=0; i<55; i++) {
+ ii = imod(21*(i+1),55);
+ Ma[ii] = mk;
+ mk = mj - mk;
+ if(mk < 0.0) mk += Mbig;
+ mj = Ma[ii];
+ }
+ for(k=0; k<4; k++) {
+ for(i=0; i<55; i++) {
+ Ma[i] -= Ma[imod(i+30,55)];
+ if(Ma[i] < 0.0) Ma[i] += Mbig;
+ }
+ }
+ inext = -1;
+ inextp = 30;
+ iff=1;
+ }
+ inext++; if(inext == 55) inext=0;
+ inextp++; if(inextp == 55) inextp=0;
+ mj = Ma[inext]-Ma[inextp];
+ if(mj < 0.0) mj += Mbig;
+ Ma[inext] = mj;
+ return mj/Mbig;
+#undef Mbig
+#undef Mseed
+#undef imod
+}
+
+// -----------------------------------------------------------------------------
+// Generate normally distributed random numbers, zero mean and
+// sqrt of variance sigma. Uses Box-Muller and Rand() above.
+double RandNorm(double sigma)
+{
+#ifdef RAND_NORM_SAVE
+ static short iset=0;
+ static double saved;
+ double r, v1, v2, fact;
+ if(!iset) {
+ do {
+ v1 = 2.0*Rand(1)-1.0;
+ v2 = 2.0*Rand(1)-1.0;
+ r = v1*v1 + v2*v2;
+ } while( r >= 1.0 || r == 0.0);
+ fact = sigma*sqrt(-2.*log(r)/r);
+ saved = v1*fact;
+ iset = 1;
+ return v2*fact;
+ }
+ iset = 0;
+ return saved;
+#else
+ double r, v1, v2, fact;
+ do {
+ v1 = 2.0*Rand(1)-1.0;
+ v2 = 2.0*Rand(1)-1.0;
+ r = v1*v1 + v2*v2;
+ } while( r >= 1.0 || r == 0.0);
+ fact = sigma*sqrt(-2.*log(r)/r);
+ return v2*fact;
+#endif
+}
+
+// -----------------------------------------------------------------------------
+// Return random integers between low and hi. If you want a different seed,
+// call Rand(seed) before you call this.
+int ARand(int low, int hi)
+{
+ double r=Rand(),d=(double)(hi-low);
+ if(d < 0.0) d = -d;
+ d = r*d;
+ int i=(int)(d+0.5) + low;
+ return i;
+}
+
+// -----------------------------------------------------------------------------
+// Return random doubles between low and hi. If you want a different seed,
+// call Rand(seed) before you call this.
+double ARand(double low, double hi)
+{
+ double r=Rand(),d=(hi-low);
+ if(d < 0.0) d = -d;
+ d = r*d;
+ return (low+d);
+}
+
+// -----------------------------------------------------------------------------
+// Generate a random walk sequence, given sqrt variance sigma, time step dt
+// and previous point xlast.
+//
+double RandomWalk(double dt, double sigma, double xlast)
+{
+ return xlast+RandNorm(sigma)*dt;
+}
+
+// -----------------------------------------------------------------------------
+// Generate an exponentially correlated random sequence, given time step dt,
+// sqrt variance sigma, time constant T and previous point xlast.
+//
+//double RandExpCor(double dt, double sigma, double T, double xlast)
+//{
+ //return exp(-dt/T)*xlast+RandNorm(sigma);
+//}
+
+// -----------------------------------------------------------------------------
+// integer mod function. assume arguments positive.
+//static int imod(int x, int y)
+//{
+ //if(x == 0 || y == 0) return 0;
+ //return (x-(x/y)*y);
+//}
+
+// -----------------------------------------------------------------------------
+// -----------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/lib/random.hpp b/dev/apps/geomatics/lib/random.hpp
new file mode 100644
index 0000000..fec3afb
--- /dev/null
+++ b/dev/apps/geomatics/lib/random.hpp
@@ -0,0 +1,52 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file random.hpp
+ * Simple random number generator.
+ */
+
+#ifndef GPSTK_GEOMATICS_RANDOM_INCLUDE
+#define GPSTK_GEOMATICS_RANDOM_INCLUDE
+
+/// Generate random numbers uniformly distributed from 0 to 1.
+double Rand(long seed=0);
+
+/// Generate normally distributed random numbers, zero mean and
+/// sqrt of variance sigma. Uses Box-Muller and Rand().
+double RandNorm(double sigma);
+
+/// Return random integers between low and hi. Seed the generator by calling
+/// Rand(seed) before this call.
+int ARand(int low, int hi);
+
+/// Return random doubles between low and hi. Seed the generator by calling
+/// Rand(seed) before this call.
+double ARand(double low, double hi);
+
+/// Generate a random walk sequence, given sqrt variance sigma, time step dt
+/// and previous point xlast.
+double RandomWalk(double dt, double sigma, double xlast);
+
+#endif
diff --git a/dev/apps/geomatics/relposition/ClockModel.cpp b/dev/apps/geomatics/relposition/ClockModel.cpp
new file mode 100644
index 0000000..474091b
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ClockModel.cpp
@@ -0,0 +1,77 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ClockModel.cpp
+ * Implement clock modeling for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+int OutputClockData(void); // DataIO.cpp
+
+//------------------------------------------------------------------------------------
+int ClockModel(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN ClockModel()"; // << endl;
+ oflog << " -- ClockModel() is not yet implemented." << endl;
+
+ OutputClockData(); // may be done in ReadRawData if PRS is far off
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end ClockModel()
+
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/CommandInput.cpp b/dev/apps/geomatics/relposition/CommandInput.cpp
new file mode 100644
index 0000000..d18f527
--- /dev/null
+++ b/dev/apps/geomatics/relposition/CommandInput.cpp
@@ -0,0 +1,1451 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file CommandInput.cpp
+ * Implement command line input, including defaults and validation for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD CommandInput.cpp need baseline identifier to Tight and Loose cmds
+// TD CommandInput.cpp test reasonableness of input station positions
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+
+// GPSTk
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+
+// DDBase
+#include "DDBase.hpp"
+// DDBase.hpp includes CommandInput.hpp
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// local data
+
+//------------------------------------------------------------------------------------
+void CommandInput::SetDefaults()
+{
+try {
+ Debug = false;
+ Verbose = false;
+ Screen = true; // TD user input
+ Validate = false;
+ // log file
+ LogFile = string("ddbase.log");
+ // input data files
+ InputPath = string("");
+ NavPath = string("");
+ NavFileNames.clear();
+ EOPPath = string("");
+ EOPFileNames.clear();
+ // time limits
+ BegTime = DayTime::BEGINNING_OF_TIME;
+ EndTime = DayTime::END_OF_TIME;
+ // process configuration
+ Frequency = 1;
+ // for pseudorange solution
+ PRSrmsLimit = 6.5; // this is the PRSolution() default
+ PRSalgebra = false;
+ PRSnIter = 10;
+ PRSconverge = 1.e-9;
+ PRSMinElevation = 10.0;
+ // for modeling residual zenith delay
+ NRZDintervals = 0;
+ RZDtimeconst = 2.0; // hours
+ RZDsigma = 0.5; // meters
+ //
+ DataInterval = -1.0;
+ // editing
+ MinElevation = 10.0;
+ RotatedAntennaElevation = 0.0;
+ RotatedAntennaAzimuth = 0.0;
+ MaxGap = 10;
+ MinDDSeg = 50;
+ PhaseBiasReset = 10;
+ ExSV.clear();
+ // timetable
+ RefSat = GSatID(-1,SatID::systemGPS);
+ // estimation
+ noEstimate = false; // for Estimation()
+ nIter = 5; // for Estimation()
+ convergence = 5.0e-8; // TD convergence criterion input
+ noRAIM = false; // turn off pseudorange solution (! -> clk?)
+ FixBiases = false;
+ // Don't implement default constraints - this needs more study
+ TightConstraint = 1.e-4; // 1.e-5;
+ LooseConstraint = 1.e-1; // 1.e-1;
+ DefaultTemp = 20.0; // deg C
+ DefaultPress = 1010.0; // mbars at sea level
+ DefaultRHumid = 50.0; // %
+ // output
+ OutputClkFile = string("");
+ OutputDDDFile = string("");
+ OutputTDDFile = string("");
+ OutputRawFile = string("");
+ OutputRawDDFile = string("");
+ OutputPRSFile = string("");
+ OutputDDRFile = string("");
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int CommandInput::GetCmdInput(int argc, char **argv)
+{
+try {
+ help = false;
+ int i,j;
+ string msg;
+ vector<string> values,field;
+
+ // set all to default
+ SetDefaults();
+
+ // --------------------------------------------------------------------------------
+ // Define the options
+
+ // required options:
+
+ // optional options:
+
+ // this is here only so it will show up in the help msg...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',"","\n -f<file> Name of file containing more options"
+ " ('#' to EOL : comment)");
+
+ // log file
+ CommandOption dashl(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Log"," --Log <file> Name of output log file (" + LogFile + ")");
+ dashl.setMaxCount(1);
+
+ // files
+ // observation
+ CommandOption dashop(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"ObsPath",
+ "\n# Observations:\n --ObsPath <path> Path for input obs file(s) (.)");
+ dashop.setMaxCount(1);
+
+ CommandOption dashof(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"ObsFile"," --ObsFile <name,id> Rinex observation file name(s),"
+ " followed by a station label.");
+
+ // ephemeris
+ CommandOption dashnp(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "NavPath","# Ephemeris and Earth orientation:\n"
+ " --NavPath <dir> Path of navigation file(s) (.)");
+ dashnp.setMaxCount(1);
+
+ CommandOption dashnf(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"NavFile"," --NavFile <file> Navigation (Rinex Nav OR SP3) file(s)");
+
+ // earth orientation
+ CommandOption dashep(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "EOPPath"," --EOPPath <dir> "
+ "Path of earth orientation file(s)");
+ dashep.setMaxCount(1);
+
+ CommandOption dashef(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"EOPFile"," --EOPFile <file> "
+ "Earth orientation parameter (EOPP or IERS format) file(s).\n"
+ " If no EOP file is given, DDBase will search "
+ "for the IERS\n format file 'finals.daily' in the "
+ "current directory.");
+
+ // station configuration
+ CommandOption dashXYZ(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PosXYZ",
+ "\n# Station configuration [--Pos.. (1 only) MUST be given for each site]:\n"
+ " --PosXYZ <X,Y,Z,id> Station position in ECEF coordinates (m),\n"
+ " followed by a label identifying the station.");
+
+ CommandOption dashLLH(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PosLLH"," --PosLLH <La,Lo,H,id> Station position in geodetic coordinates:\n"
+ " Latitude(deg),Longitude(E,deg),Height(m),label");
+
+ CommandOption dashPRS(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PosPRS"," --PosPRS <id> Let position of station labelled <id> be set"
+ " to the computed\n average pseudorange solution"
+ " for that site.");
+
+ CommandOption dashtrop(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"TropModel"," --TropModel <trop,id> Use trop model <trop> for station <id>, "
+ "choices are: 'Zero',\n 'Black','NewB','ModHop',"
+ "'ModHopH','Saas' (Saas) [cf. GPSTk]");
+
+ msg = string(
+ " --Weather <T,P,H,id> Weather parameters: Temperature(degC),Pressure(mbar),\n"
+ " Humidity(%), followed by a label identifying the\n"
+ " station. ("
+ + StringUtils::asString(CI.DefaultTemp,1) + string(",")
+ + StringUtils::asString(CI.DefaultPress,2) + string(",")
+ + StringUtils::asString(CI.DefaultRHumid,1) + string(")")
+ );
+ CommandOption dashWx(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Weather",msg);
+
+ CommandOption dashfix(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Fix"," --Fix <id> Hold the station <id> fixed "
+ "in estimation (don't)");
+
+ //CommandOption dashant(CommandOption::hasArgument, CommandOption::stdType,
+ // 0,"AntAz"," --AntAz <angle,id> "
+ // "Antenna relative azimuth angle (deg) for station <id> (0.0)");
+
+ // configuration
+ CommandOptionNoArg dashnoest(0, "noEstimate", "\n# Configuration:\n"
+ " --noEstimate Quit before performing the estimation.");
+ dashnoest.setMaxCount(1);
+
+ CommandOption dashfreq(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Freq"," --Freq <L1|L2|L3> Process L1, L2 or L3(L1+L2) frequency data"
+ " (L3 not validated)");
+ dashfreq.setMaxCount(1);
+
+ CommandOption dashnit(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"nIter"," --nIter <n> Maximum number of estimation iterations ("
+ + StringUtils::asString(nIter) + ")");
+ dashnit.setMaxCount(1);
+
+ {
+ ostringstream oss;
+ oss << scientific << setprecision(2) << convergence;
+ msg = oss.str();
+ }
+ CommandOption dashconv(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Converge"," --Converge <cl> Convergence limit on RSS change in state ("
+ + msg + " m)");
+ dashconv.setMaxCount(1);
+
+ CommandOptionNoArg dashfixbias(0, "FixBiases", " --FixBiases "
+ "Perform an extra, last iteration that fixes the phase biases");
+ dashfixbias.setMaxCount(1);
+
+ // state model
+ CommandOption dashntrop(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RZDnIntervals","\n# State model, a priori constraints:\n"
+ " --RZDnIntervals <n> Number of (equal time) residual zenith delay "
+ "intervals (" + StringUtils::asString(NRZDintervals) + ")\n"
+ " (enter 0 to turn off estimation of RZD)");
+ dashntrop.setMaxCount(1);
+
+ CommandOption dashttrop(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RZDtimeconst",
+ " --RZDtimeconst <tau> Time constant (hours) for multiple RZD intervals ("
+ + StringUtils::asString(RZDtimeconst,2) + ")");
+ dashttrop.setMaxCount(1);
+
+ CommandOption dashstrop(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RZDsigma",
+ " --RZDsigma <sig> A priori sigma (m) for residual zenith delay ("
+ + StringUtils::asString(RZDsigma,2) + ")");
+ dashstrop.setMaxCount(1);
+
+ // TD need baseline identifier: --Tight <id,id,ppm>. also Loose
+ CommandOption dashtight(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Tight"," --Tight <ppm> Tight a priori constraint, a fraction "
+ "of baseline (" + StringUtils::asString(TightConstraint,4) + ")");
+ dashtight.setMaxCount(1);
+
+ CommandOption dashloose(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Loose"," --Loose <ppm> Loose a priori constraint, a fraction "
+ "of baseline ("+StringUtils::asString(LooseConstraint,1)+")");
+ dashloose.setMaxCount(1);
+
+ // times - don't use CommandOptionWithTimeArg
+ CommandOption dashbt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BeginTime",
+ "\n# Time limits:\n --BeginTime <arg> Start time: arg is "
+ "'GPSweek,sow' OR 'YYYY,MM,DD,HH,Min,Sec'");
+ dashbt.setMaxCount(1);
+
+ CommandOption dashet(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"EndTime",
+ " --EndTime <arg> End time: arg is 'GPSweek,sow' OR "
+ "'YYYY,MM,DD,HH,Min,Sec'");
+ dashet.setMaxCount(1);
+
+ // time table(s)
+ CommandOption dashttab(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"TimeTable","\n# Satellite time table:\n"
+ " --TimeTable <file> Time table file name (if this option does not appear"
+ "\n a time table will be computed and output to log"
+ " file)");
+ dashttab.setMaxCount(1);
+
+ CommandOption dashRef(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "Ref", " --Ref <sat> Use <sat> as 'reference' "
+ "in DDs; don't use a timetable");
+ dashRef.setMaxCount(1);
+
+ // data editing
+ CommandOption dashelev(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinElev","\n# Data editing:\n --MinElev <elev> Ignore data "
+ "below elevation <elev> degrees, DDs only ("
+ + StringUtils::asString(MinElevation,2) + ")");
+ dashelev.setMaxCount(1);
+
+ CommandOption dashrotelev(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"AntRotElev"," --AntRotElev <elev> Apply MinElev to antenna rotated "
+ "in elevation by <elev> deg.");
+ dashrotelev.setMaxCount(1);
+
+ CommandOption dashrotaz(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"AntRotAz"," --AntRotAz <az> Apply MinElev to antenna rotated "
+ "in azimuth by <az> deg.");
+ dashrotaz.setMaxCount(1);
+
+ CommandOption dashgap(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "MaxGap"," --MaxGap Maximum acceptable gap in data "
+ "[number of --DT intervals] (" + StringUtils::asString(MaxGap) + ")\n"
+ " [Used in raw data editing and synchronization]");
+ dashgap.setMaxCount(1);
+
+ CommandOption dashmindd(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "MinDDSeg"," --MinDDSeg Minimum acceptable length of DD data segment"
+ " (" + StringUtils::asString(MinDDSeg) + ")");
+ dashmindd.setMaxCount(1);
+
+ CommandOption dashphbias(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "PhaseBiasReset"," --PhaseBiasReset Limit on pt-to-pt change in pha"
+ "se without reset, in cycles (" + StringUtils::asString(PhaseBiasReset) + ")");
+ dashphbias.setMaxCount(1);
+
+ CommandOption dashXsat(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "XSat", " --XSat <sat> Exclude this satellite ()");
+
+ CommandOption dashDT(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "DT"," --DT <t> Data time interval in sec [will also decimate"
+ " input data]");
+ dashDT.setMaxCount(1);
+
+ // pseudorange solution
+ CommandOption dashprsnit(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PRSniter","\n# Pseudorange solution (PRS) configuration:\n"
+ " --PRSniter <n> PRS: Limit on number of iterations ("
+ + StringUtils::asString(PRSnIter) + ")");
+ dashprsnit.setMaxCount(1);
+
+ {
+ ostringstream oss;
+ oss << scientific << setprecision(2) << PRSconverge;
+ msg = oss.str();
+ }
+ CommandOption dashprscon(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PRSconverge",
+ " --PRSconverge <cl> PRS: Convergence limit (m) (" + msg + ")");
+ dashprscon.setMaxCount(1);
+
+ CommandOption dashprsrms(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PRSrmsLimit",
+ " --PRSrmsLimit <rms> PRS: RMS residual limit (m) ("
+ + StringUtils::asString(PRSrmsLimit,2) + ")");
+ dashprsrms.setMaxCount(1);
+
+ CommandOption dashprsalg(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PRSalgebra",
+ " --PRSalgebra PRS: Use algebraic algorithm (don't)");
+ dashprsalg.setMaxCount(1);
+
+ CommandOption dashprselev(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PRSMinElev"," --PRSMinElev <elev> PRS: Reject data below elevation "
+ "<elev> degrees ("
+ + StringUtils::asString(PRSMinElevation,2) + ")");
+ dashprselev.setMaxCount(1);
+
+ //dont CommandOptionNoArg dashnoprs(0, "noPRS",
+ //dont " --noPRS Skip the pseudorange solution (!)");
+ //dont dashnoprs.setMaxCount(1);
+
+ // output flags
+ CommandOption dashrawout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RAWFileOut","\n# Output files:\n --RAWFileOut <file> "
+ "Filename for output of raw data ()");
+ dashrawout.setMaxCount(1);
+
+ CommandOption dashprsout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PRSFileOut"," --PRSFileOut <file> "
+ "Filename for output of pseudorange solution ()");
+ dashprsout.setMaxCount(1);
+
+ CommandOption dashclkout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"CLKFileOut"," --CLKFileOut <file> "
+ "Filename for output of Rx clock bias and model ()");
+ dashclkout.setMaxCount(1);
+
+ CommandOption dashrddout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RDDFileOut",
+ " --RDDFileOut <file> Filename for output of raw DD data ()");
+ dashrddout.setMaxCount(1);
+
+ CommandOption dashdddout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"DDDFileOut"," --DDDFileOut <file> Filename for output of (edited) DD data"
+ " ()");
+ dashdddout.setMaxCount(1);
+
+ CommandOption dashtddout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"TDDFileOut"," --TDDFileOut <file> Filename for output of triple "
+ "difference data ()");
+ dashtddout.setMaxCount(1);
+
+ CommandOption dashddrout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"DDRFileOut"," --DDRFileOut <file> Filename for output of DD post-fit "
+ "residuals ()");
+ dashddrout.setMaxCount(1);
+
+ CommandOption dashbaseout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BaseOut","\n# Output misc:\n --BaseOut <id-id,x,y,z> Baseline to output;"
+ " <id>s are station labels, '-' is\n "
+ "required, <x,y,z> are optional baseline coordinates.");
+
+ CommandOptionNoArg dashvalid('0', "validate",
+ " --validate Read input and validate it, then quit.");
+ dashvalid.setMaxCount(1);
+
+ CommandOptionNoArg dashv('v', "verbose",
+ " --verbose (also -v) print extended output info.");
+
+ CommandOptionNoArg dashd('d', "debug",
+ " --debug (also -d) print very extended output info "
+ "(for developers).");
+
+ CommandOptionNoArg dashh('h', "help",
+ " --help (also -h) print this help message and quit.");
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ // --------------------------------------------------------------------------------
+ // Define the parser here: before the options -- this is the "prgm description" ...
+ CommandOptionParser Par(PrgmDesc);
+
+ // parse the command line
+ // allow user to put all options in a file
+ // PreProcessArgs pulls out help, Debug, Verbose
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+ argc = Args.size();
+ if(argc==0)
+ help = true;
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ if(Debug) {
+ cout << "Argument list passed to parser:\n";
+ for(j=0; j<argc; j++) cout << j << " " << CArgs[j] << endl;
+ }
+
+ Par.parseOptions(argc, CArgs);
+ for(j=1; j<argc; j++) delete[] CArgs[j];
+ delete[] CArgs;
+
+ // check for errors on the command line
+ // hasErrors() returns invalid commands
+ // Rest contains things not recognized
+ if (Par.hasErrors() || Rest.getCount()) {
+ cerr << "\nErrors found in command line input:\n";
+ if(Par.hasErrors()) Par.dumpErrors(cerr);
+ if(Rest.getCount()) {
+ cerr << "The following command line fields were not recognized:\n";
+ values = Rest.getValue();
+ for(i=0; i<values.size(); i++) cerr << " " << values[i] << endl;
+ }
+ cerr << "...end of Errors\nAbort.\n";
+ help = true;
+ }
+
+ // if help, print usage
+ if(help) {
+ Par.displayUsage(cout,false);
+ cout << endl;
+ }
+
+ if(help && argc > 1) cout << endl << "--------- parsed input:" << endl;
+
+ // --------------------------------------------------------------------------------
+ // pull out the parsed input
+
+ // these already parsed by PreProcessArgs
+ //if(dashh.getCount()) help
+ //if(dashv.getCount()) verbose
+ //if(dashd.getCount()) debug
+
+ if(help && Verbose) cout << " Input: turn on verbose flag" << endl;
+ if(help && Debug) cout << " Input: turn on debug flag" << endl;
+
+ // open the log file first
+ if(dashl.getCount()) {
+ values = dashl.getValue();
+ LogFile = values[0];
+ if(help) cout << " Input: log file name " << LogFile << endl;
+ }
+ if(Debug) cout << " Log file name is " << LogFile << endl;
+ oflog.open(LogFile.c_str(),ios_base::out);
+ if(!oflog) {
+ cerr << "Failed to open log file " << LogFile << endl;
+ return -1;
+ }
+
+ if(Debug) cout << " Opened log file " << LogFile << endl;
+ oflog << Title << endl;
+ if(Par.hasErrors()) {
+ oflog << "\nErrors found in command line input:\n";
+ Par.dumpErrors(oflog);
+ oflog << "...end of Errors\n\n";
+ }
+
+ // paths
+ if(dashop.getCount()) {
+ values = dashop.getValue();
+ if(help) cout << " Input: obs path name: " << values[0] << endl;
+ InputPath = values[0];
+ }
+ else InputPath = string("");
+ if(dashnp.getCount()) {
+ values = dashnp.getValue();
+ if(help) cout << " Input: nav path name: " << values[0] << endl;
+ NavPath = values[0];
+ }
+ else NavPath = string("");
+ if(dashep.getCount()) {
+ values = dashep.getValue();
+ if(help) cout << " Input: EOP path name: " << values[0] << endl;
+ EOPPath = values[0];
+ }
+ else EOPPath = string("");
+
+ // files
+ // obs
+ if(dashof.getCount()) {
+ values = dashof.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ while(values[i].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ if(field.size() < 2) {
+ oflog << "Error: no label in --obsfile input: " << values[i] << endl;
+ cerr << "Error: no label in --obsfile input: " << values[i] << endl;
+ continue;
+ }
+ Station& st=findStationInList(Stations,field[1]);
+ // create new ObsFile and add to list
+ ObsFile of;
+ of.name = field[0];
+ of.label = field[1];
+ of.nread = -1;
+ of.valid = false;
+ ObsFileList.push_back(of);
+
+ if(help) cout << " Input: Obs file (" << field[1] << ") : "
+ << field[0] << endl;
+ }
+ }
+ // nav
+ if(dashnf.getCount()) {
+ values = dashnf.getValue();
+ NavFileNames = values;
+ if(help) {
+ cout << " Input: Nav files :";
+ for(j=0; j<NavFileNames.size(); j++) cout << " " << NavFileNames[j];
+ cout << endl;
+ }
+ }
+ // eop
+ if(dashef.getCount()) {
+ values = dashef.getValue();
+ EOPFileNames = values;
+ if(help) {
+ cout << " Input: Earth orientation files :";
+ for(j=0; j<EOPFileNames.size(); j++) cout << " " << EOPFileNames[j];
+ cout << endl;
+ }
+ }
+
+ // positions
+ if(dashXYZ.getCount()) {
+ values = dashXYZ.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ while(values[i].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ if(field.size() < 4) {
+ oflog << "Error: less than four fields in --PosXYZ input: "
+ << values[i] << endl;
+ cerr << "Error: less than four fields in --PosXYZ input: "
+ << values[i] << endl;
+ continue;
+ }
+ Station& st=findStationInList(Stations,field[3]);
+ Position p(StringUtils::asDouble(field[0]),
+ StringUtils::asDouble(field[1]),
+ StringUtils::asDouble(field[2]));
+ st.pos = p;
+ if(help) cout << " Input: XYZ for station " << field[3] << ":"
+ << " " << field[0] << " " << field[1] << " " << field[2] << endl;
+ }
+ }
+ if(dashLLH.getCount()) {
+ values = dashLLH.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ while(values[i].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ if(field.size() < 4) {
+ oflog << "Error: less than four fields in --PosLLH input: "
+ << values[i] << endl;
+ cerr << "Error: less than four fields in --PosLLH input: "
+ << values[i] << endl;
+ continue;
+ }
+ Station& st=findStationInList(Stations,field[3]);
+ Position p;
+ p.setGeodetic(StringUtils::asDouble(field[0]),
+ StringUtils::asDouble(field[1]),
+ StringUtils::asDouble(field[2]));
+ st.pos = p;
+ if(help) cout << " Input: LLH for station " << field[3] << ":"
+ << " " << field[0] << " " << field[1] << " " << field[2] << endl;
+ }
+ }
+ if(dashPRS.getCount()) {
+ values = dashPRS.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ Station& st=findStationInList(Stations,field[0]);
+ st.usePRS = true;
+ if(help) cout << " Input: pos for station " << field[0]
+ << ": use average PR solution" << endl;
+ }
+ }
+ if(dashtrop.getCount()) {
+ values = dashtrop.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ while(values[i].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ if(field.size() < 2) {
+ oflog << "Error: less than two fields in --TropModel input: "
+ << values[i] << endl;
+ cerr << "Error: less than two fields in --TropModel input: "
+ << values[i] << endl;
+ continue;
+ }
+ Station& st=findStationInList(Stations,field[1]);
+ st.TropType = field[0];
+ if(help) cout << " Input: Trop model " << field[0]
+ << " at Station " << field[1] << endl;
+ }
+ }
+ if(dashWx.getCount()) {
+ values = dashWx.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ while(values[i].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ if(field.size() < 4) {
+ oflog << "Error: less than four fields in --Weather input: "
+ << values[i] << endl;
+ cerr << "Error: less than four fields in --Weather input: "
+ << values[i] << endl;
+ continue;
+ }
+ Station& st=findStationInList(Stations,field[3]);
+ st.temp = StringUtils::asDouble(field[0]);
+ st.press = StringUtils::asDouble(field[1]);
+ st.rhumid = StringUtils::asDouble(field[2]);
+
+ if(help) cout << " Weather input for station " << field[3] << ":"
+ << " " << field[0] << " " << field[1] << " " << field[2] << endl;
+ }
+ }
+ if(dashfix.getCount()) {
+ values = dashfix.getValue();
+ for(i=0; i<values.size(); i++) {
+ Station& st=findStationInList(Stations,values[i]);
+ st.fixed = true;
+ if(help) cout << " Input: Hold Station " << values[i] << " fixed." << endl;
+ }
+ }
+ //if(dashant.getCount()) {
+ // values = dashant.getValue();
+ // for(i=0; i<values.size(); i++) {
+ // field.clear();
+ // while(values[i].size() > 0)
+ // field.push_back(StringUtils::stripFirstWord(values[i],','));
+ // if(field.size() < 2) {
+ // oflog << "Error: invalid AntAz input: " << values[i] << endl;
+ // cerr << "Error: invalid AntAz input: " << values[i] << endl;
+ // continue;
+ // }
+ // Station& st=findStationInList(Stations,field[1]);
+ // st.ant_azimuth = StringUtils::asDouble(field[0]);
+
+ // if(help) cout << " Input: antenna azimuth for station " << field[1] << ": "
+ // << fixed << setprecision(2) << st.ant_azimuth << " degrees" << endl;
+ // }
+ //}
+
+ // configuration
+ if(dashfreq.getCount()) {
+ values = dashfreq.getValue();
+ if(values[0] == string("L1") || values[0] == string("1"))
+ Frequency = 1;
+ else if(values[0] == string("L2") || values[0] == string("2"))
+ Frequency = 2;
+ else if(values[0] == string("L3") || values[0] == string("3"))
+ Frequency = 3;
+ else {
+ cout << "Error: invalid input (" << values[0]
+ << ") --Frequency must be followed by 'L1','L2' or 'L3'" << endl;
+ return -1;
+ }
+ if(help) cout << " Input: process frequency L" << Frequency << endl;
+ }
+ if(dashRef.getCount()) {
+ values = dashRef.getValue();
+ RefSat.fromString(values[0]);
+ if(help) cout << " Input: set satellite " << RefSat << " as reference" << endl;
+ }
+ if(dashnoest.getCount()) {
+ noEstimate = true;
+ if(help) cout << " *** Turn OFF the estimation ***" << endl;
+ }
+ if(dashprsnit.getCount()) {
+ values = dashprsnit.getValue();
+ PRSnIter = StringUtils::asInt(values[0]);
+ if(help) cout << " Input: set PRS iteration limit to " << PRSnIter << endl;
+ }
+ if(dashprsrms.getCount()) {
+ values = dashprsrms.getValue();
+ PRSrmsLimit = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: set PRS RMS residual limit to "
+ << scientific << setprecision(2) << PRSrmsLimit << endl;
+ }
+ if(dashprscon.getCount()) {
+ values = dashprscon.getValue();
+ PRSconverge = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: set PRS convergence limit to "
+ << scientific << setprecision(2) << PRSconverge << endl;
+ }
+ if(dashprsalg.getCount()) {
+ PRSalgebra = true;
+ if(help) cout << " Input: use algebraic algorithm in pseudorange solution"
+ << endl;
+ }
+ if(dashprselev.getCount()) {
+ values = dashprselev.getValue();
+ PRSMinElevation = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: set PRS elevation limit to "
+ << fixed << setprecision(2) << PRSMinElevation << endl;
+ }
+ //dont if(dashnoprs.getCount()) {
+ //dont noRAIM = true;
+ //dont if(help) cout << " *** Turn OFF the pseudorange solution ***" << endl;
+ //dont }
+ if(dashnit.getCount()) {
+ values = dashnit.getValue();
+ nIter = StringUtils::asInt(values[0]);
+ if(help)
+ cout << " Input: number of iterations in Estimation : " << nIter << endl;
+ }
+ if(dashconv.getCount()) {
+ values = dashconv.getValue();
+ convergence = fabs(StringUtils::asDouble(values[0]));
+ if(help)
+ cout << " Input: convergence limit in Estimation : "
+ << scientific << setprecision(3) << convergence << endl;
+ }
+ if(dashfixbias.getCount()) {
+ FixBiases = true;
+ if(help) cout << " Input: Turn ON fixing of biases in last iteration" << endl;
+ }
+ if(dashntrop.getCount()) {
+ values = dashntrop.getValue();
+ NRZDintervals = StringUtils::asInt(values[0]);
+ if(help) cout << " Input: " << NRZDintervals
+ << " residual zenith delay intervals" << endl;
+ }
+ if(dashttrop.getCount()) {
+ values = dashttrop.getValue();
+ RZDtimeconst = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: RZD time constant " << fixed << setprecision(2)
+ << RZDtimeconst << " hours" << endl;
+ }
+ if(dashstrop.getCount()) {
+ values = dashstrop.getValue();
+ RZDsigma = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: RZD sigma " << fixed << setprecision(2)
+ << RZDsigma << " meters" << endl;
+ }
+ if(dashtight.getCount()) {
+ values = dashtight.getValue();
+ TightConstraint = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: tight constraint "
+ << scientific << setprecision(2) << TightConstraint
+ << " (fraction of baseline)" << endl;
+ }
+ if(dashloose.getCount()) {
+ values = dashloose.getValue();
+ LooseConstraint = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: loose constraint "
+ << scientific << setprecision(2) << LooseConstraint
+ << " (fraction of baseline)" << endl;
+ }
+
+ // times
+ // TD put try {} around setToString and catch invalid formats...
+ if(dashbt.getCount()) {
+ values = dashbt.getValue();
+ msg = values[0];
+ field.clear();
+ while(msg.size() > 0)
+ field.push_back(StringUtils::stripFirstWord(msg,','));
+ if(field.size() == 2)
+ BegTime.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ BegTime.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cerr << "Error: invalid --BeginTime input: " << values[0] << endl;
+ oflog << "Error: invalid --BeginTime input: " << values[0] << endl;
+ }
+ if(help) cout << " Input: begin time " << values[0] << " = "
+ << BegTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ if(dashet.getCount()) {
+ values = dashet.getValue();
+ msg = values[0];
+ field.clear();
+ while(msg.size() > 0)
+ field.push_back(StringUtils::stripFirstWord(msg,','));
+ if(field.size() == 2)
+ EndTime.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ EndTime.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cerr << "Error: invalid --EndTime input: " << values[0] << endl;
+ oflog << "Error: invalid --EndTime input: " << values[0] << endl;
+ }
+ if(help) cout << " Input: end time " << values[0] << " = "
+ << EndTime.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+
+ // time table
+ if(dashttab.getCount()) {
+ values = dashttab.getValue();
+ TimeTableFile = values[0];
+ if(help) cout << " Input: time table file name " << TimeTableFile << endl;
+ }
+
+ // data editing
+ if(dashelev.getCount()) {
+ values = dashelev.getValue();
+ MinElevation = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: minimum elevation for phases : "
+ << values[0] << " degrees" << endl;
+ }
+ if(dashrotelev.getCount()) {
+ values = dashrotelev.getValue();
+ RotatedAntennaElevation = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: rotate antenna in elevation by : "
+ << values[0] << " degrees" << endl;
+ }
+ if(dashrotaz.getCount()) {
+ values = dashrotaz.getValue();
+ RotatedAntennaAzimuth = StringUtils::asDouble(values[0]);
+ if(help) cout << " Input: rotate antenna in azimuth by : "
+ << values[0] << " degrees" << endl;
+ }
+ if(dashgap.getCount()) {
+ values = dashgap.getValue();
+ MaxGap = StringUtils::asInt(values[0]);
+ if(help) cout << " Input: maximum acceptable gap (units DT): "
+ << values[0] << endl;
+ }
+ if(dashmindd.getCount()) {
+ values = dashmindd.getValue();
+ MinDDSeg = StringUtils::asInt(values[0]);
+ if(help) cout << " Input: minimum acceptable double difference segment: "
+ << values[0] << endl;
+ }
+ if(dashphbias.getCount()) {
+ values = dashphbias.getValue();
+ PhaseBiasReset = StringUtils::asInt(values[0]);
+ if(help) cout << " Input: phase bias reset limit (cycles) "
+ << values[0] << endl;
+ }
+ if(dashXsat.getCount()) {
+ values = dashXsat.getValue();
+ for(i=0; i<values.size(); i++) {
+ GSatID p(values[i]);
+ if(help) cout << " Exclude satellite " << p << endl;
+ ExSV.push_back(p);
+ }
+ }
+ if(dashDT.getCount()) {
+ values = dashDT.getValue();
+ DataInterval = StringUtils::asDouble(values[0]);
+ if(DataInterval < 0.0) DataInterval=fabs(DataInterval);
+ if(help) cout << " Input: data interval " << fixed << setprecision(2)
+ << DataInterval << " seconds" << endl;
+ }
+
+ // output
+ if(dashrawout.getCount()) {
+ values = dashrawout.getValue();
+ OutputRawFile = values[0];
+ if(help) cout << " Input: file name for raw data output ............... "
+ << values[0] << endl;
+ }
+ if(dashprsout.getCount()) {
+ values = dashprsout.getValue();
+ OutputPRSFile = values[0];
+ if(help) cout << " Input: file name for PRS output .................... "
+ << values[0] << endl;
+ }
+ if(dashclkout.getCount()) {
+ values = dashclkout.getValue();
+ OutputClkFile = values[0];
+ if(help) cout << " Input: file name for clock output .................. "
+ << values[0] << endl;
+ }
+ if(dashrddout.getCount()) {
+ values = dashrddout.getValue();
+ OutputRawDDFile = values[0];
+ if(help) cout << " Input: file name for raw DD data output ............ "
+ << values[0] << endl;
+ }
+ if(dashdddout.getCount()) {
+ values = dashdddout.getValue();
+ OutputDDDFile = values[0];
+ if(help) cout << " Input: file name for edited DD data output ......... "
+ << values[0] << endl;
+ }
+ if(dashtddout.getCount()) {
+ values = dashtddout.getValue();
+ OutputTDDFile = values[0];
+ if(help) cout << " Input: file name for triple differece data output .. "
+ << values[0] << endl;
+ }
+ if(dashddrout.getCount()) {
+ values = dashddrout.getValue();
+ OutputDDRFile = values[0];
+ if(help) cout << " Input: file name for DD post-fit residuals output .. "
+ << values[0] << endl;
+ }
+ if(dashbaseout.getCount()) {
+ values = dashbaseout.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ field.push_back(StringUtils::stripFirstWord(values[i],'-'));
+ while(values[i].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[i],','));
+ if(field.size() != 2 && field.size() != 5) {
+ oflog << "Error: invalid --BaseOut input: " << values[i] << endl;
+ cerr << "Error: invalid --BaseOut input: " << values[i] << endl;
+ continue;
+ }
+
+ CI.OutputBaselines.push_back(field[0] + string("-") + field[1]);
+ if(help) cout << " Input: baseline for output "
+ << field[0] << "-" << field[1];
+
+ Triple trip(0.0,0.0,0.0);
+ if(field.size() == 5) {
+ double x=StringUtils::asDouble(field[2]);
+ double y=StringUtils::asDouble(field[3]);
+ double z=StringUtils::asDouble(field[4]);
+ trip = Triple(x,y,z);
+ if(help) cout << " with offset " << field[2]
+ << "," << field[3] << "," << field[4];
+ }
+ else {
+ if(help) cout << " ... no offset";
+ }
+ CI.OutputBaselineOffsets.push_back(trip);
+
+ if(help) cout << endl;
+ }
+ }
+
+ if(dashvalid.getCount()) {
+ Validate = true;
+ if(help) cout << " Input: validate -- read, test input and quit" << endl;
+ }
+
+ if(help) {
+ if(argc > 1) cout << "--------- end of parsed input, Quit." << endl << endl;
+ return -1;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void CommandInput::PreProcessArgs(const char *arg, vector<string>& Args)
+{
+try {
+ if(string(arg) == string()) return;
+ if(arg[0]=='-' && arg[1]=='f') {
+ string filename(arg);
+ filename.erase(0,2);
+ if(Debug) cout << "Found a file of options: " << filename << endl;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cerr << "Error: could not open options file "
+ << filename << endl;
+ }
+ else {
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ StringUtils::stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = StringUtils::firstWord(buffer);
+ if(word[0] == '#') { // skip to end of line
+ break;
+ }
+ else if(word[0] == '"') {
+ word = StringUtils::stripFirstWord(buffer,'"');
+ }
+ else {
+ word = StringUtils::stripFirstWord(buffer);
+ }
+ PreProcessArgs(word.c_str(),Args);
+ if(buffer.empty()) break;
+ }
+
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ }
+ else if(string(arg)==string("-h") || string(arg)==string("--help")) {
+ help = true;
+ if(Debug) cout << "Found the help switch" << endl;
+ }
+ else if(string(arg)==string("-d") || string(arg)==string("--debug")) {
+ Debug = true;
+ cout << "Found the debug switch" << endl;
+ }
+ else if(string(arg)==string("-v") || string(arg)==string("--verbose")) {
+ Verbose = true;
+ if(Debug) cout << "Found the verbose switch" << endl;
+ }
+ // undocumented shortcut
+ else if(string(arg).substr(0,7)==string("-AllOut")) {
+ string stem=string(arg).substr(7);
+ Args.push_back("--RAWFileOut"); Args.push_back("RAW" + stem);
+ Args.push_back("--PRSFileOut"); Args.push_back("PRS" + stem);
+ Args.push_back("--CLKFileOut"); Args.push_back("CLK" + stem);
+ Args.push_back("--RDDFileOut"); Args.push_back("RDD" + stem);
+ Args.push_back("--DDDFileOut"); Args.push_back("DDD" + stem);
+ Args.push_back("--TDDFileOut"); Args.push_back("TDD" + stem);
+ Args.push_back("--DDRFileOut"); Args.push_back("DDR" + stem);
+ }
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int CommandInput::ValidateCmdInput(void)
+{
+try {
+ bool ok=true,flag;
+ int i,n;
+ string site1,site2,msg;
+ vector<string> fixed,notfixed;
+ map<string,Station>::iterator it;
+
+ // data interval must be given
+ if(DataInterval == -1.0) {
+ cerr << "Input ERROR: data interval must be specified: --DT <t>. Abort.\n";
+ oflog << "Input ERROR: data interval must be specified: --DT <t>. Abort.\n";
+ ok = false;
+ }
+
+ if(BegTime > DayTime::BEGINNING_OF_TIME &&
+ EndTime < DayTime::END_OF_TIME &&
+ BegTime >= EndTime)
+ {
+ cerr << "Input ERROR: end time is at or before begin time. Abort.\n";
+ oflog << "Input ERROR: end time is at or before begin time. Abort.\n";
+ ok = false;
+ }
+
+ if(Frequency == 3 && FixBiases) {
+ msg = string("Input ERROR: Frequency L3 (--Freq L3) and bias fixing "
+ "(--FixBias) are inconsistent. Abort.\n");
+ cerr << msg;
+ oflog << msg;
+ ok = false;
+ }
+
+ if(MinElevation < 0.0 || MinElevation > 90.0) {
+ msg = "Input ERROR: Elevation limit (--MinElevation) is out of bounds: "
+ + StringUtils::asString(MinElevation,2) + " Abort.\n";
+ cerr << msg;
+ oflog << msg;
+ ok = false;
+ }
+
+ if(PRSMinElevation < 0.0 || PRSMinElevation > 90.0) {
+ msg = "Input ERROR: Elevation limit (--PRSMinElevation) is out of bounds: "
+ + StringUtils::asString(PRSMinElevation,2) + " Abort.\n";
+ cerr << msg;
+ oflog << msg;
+ ok = false;
+ }
+
+ // loop over stations
+ // make sure there is at least one fixed station, and one non-fixed.
+ // check weather, create trop model, etc
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ if(it->second.fixed) {
+ fixed.push_back(it->first);
+ }
+ else {
+ notfixed.push_back(it->first);
+ }
+
+ // check that ids do not contain '-' or '_'
+ if(it->first.find_first_of(string("-_")) != string::npos) {
+ cerr << "Input ERROR: station label " << it->first
+ << " invalid (must not contain '-' or '_'). Abort.\n";
+ oflog << "Input ERROR: station label " << it->first
+ << " invalid (must not contain '-' or '_'). Abort.\n";
+ ok = false;
+ }
+
+ // check that there is 1+ data files
+ for(n=0,i=0; i<ObsFileList.size(); i++)
+ if(ObsFileList[i].label == it->first) n++;
+ if(n==0) {
+ cerr << "Input ERROR: station " << it->first
+ << " has no observation data files. Abort.\n";
+ oflog << "Input ERROR: station " << it->first
+ << " has no observation data files. Abort.\n";
+ ok = false;
+ }
+
+ // check weather
+ if(it->second.temp == 0.0) it->second.temp = CI.DefaultTemp;
+ if(it->second.press == 0.0) it->second.press = CI.DefaultPress;
+ if(it->second.rhumid == 0.0) it->second.rhumid = CI.DefaultRHumid;
+ if(it->second.temp <= 0 || it->second.temp > 40 ||
+ it->second.press < 900. || it->second.press > 1050. ||
+ it->second.rhumid < 0 || it->second.rhumid > 100) {
+ cerr << "Input ERROR: station " << it->first
+ << " has invalid weather parameters. Abort.\n";
+ oflog << "Input ERROR: station " << it->first
+ << " has invalid weather parameters. Abort.\n";
+ ok = false;
+ }
+ // define the trop model for the estimation
+ // see dashtrop above "choices are 'Black','NewB','ModHop','ModHopH','Saas'"
+ // configure in Configure(2)
+ flag = true;
+ if(it->second.TropType == string("Saas")) {
+ it->second.pTropModel = new SaasTropModel;
+ }
+ else if(it->second.TropType == string("ModHop")) {
+ it->second.pTropModel = new GGTropModel;
+ }
+ else if(it->second.TropType == string("ModHopH")) {
+ it->second.pTropModel = new GGHeightTropModel;
+ }
+ else if(it->second.TropType == string("NewB")) {
+ it->second.pTropModel = new NBTropModel;
+ }
+ else if(it->second.TropType == string("Black")) {
+ it->second.pTropModel = new SimpleTropModel;
+ }
+ else if(it->second.TropType == string("Zero")) {
+ it->second.pTropModel = new ZeroTropModel;
+ }
+ else {
+ cerr << "Input ERROR: unknown trop model for station " << it->first
+ << " : " << it->second.TropType
+ << "\n (choices are 'Black','NewB','ModHop','ModHopH','Saas')"
+ << ". Abort.\n";
+ oflog << "Input ERROR: unknown trop model for station " << it->first
+ << " : " << it->second.TropType
+ << "\n (choices are 'Black','NewB','ModHop','ModHopH','Saas')"
+ << ". Abort.\n";
+ ok = flag = false;
+ }
+ if(flag && ! it->second.pTropModel) {
+ cerr << "Input ERROR: failed to allocate Trop model. Abort.\n";
+ oflog << "Input ERROR: failed to allocate Trop model. Abort.\n";
+ ok = false;
+ }
+
+ // test validity of stations -- is everything there?
+
+ // is position valid? TD check geodetic height - warn if not small
+ if(!it->second.usePRS && it->second.pos.getRadius() < 1.) {
+ oflog << "Input ERROR: station " << it->first
+ << " has undefined position. Abort.\n";
+ cerr << "Input ERROR: station " << it->first
+ << " has undefined position. Abort.\n";
+ ok = false;
+ }
+
+ } // end loop over stations
+
+ if(fixed.size() == 0) {
+ cerr << "Input ERROR: at least one station must be fixed. Abort.\n";
+ oflog << "Input ERROR: at least one station must be fixed. Abort.\n";
+ ok = false;
+ }
+ // not true
+ //if(notfixed.size() == 0) {
+ // cerr << "Input ERROR: at least one station must be not fixed. Abort.\n";
+ // oflog << "Input ERROR: at least one station must be not fixed. Abort.\n";
+ // ok = false;
+ //}
+
+ // make up the list of baselines for computation
+ // use first fixed site - all others ... can this matter?
+ for(i=1; i<fixed.size(); i++) {
+ Baselines.push_back(fixed[0] + string("-") + fixed[i]);
+ if(CI.Verbose)
+ oflog << " Compute baseline : " << Baselines[i] << endl;
+ if(CI.Screen)
+ cout << " Compute baseline : " << Baselines[i] << endl;
+ }
+ for(i=0; i<notfixed.size(); i++) {
+ Baselines.push_back(fixed[0] + string("-") + notfixed[i]);
+ if(CI.Verbose)
+ oflog << " Compute baseline : " << Baselines[i] << endl;
+ if(CI.Screen)
+ cout << " Compute baseline : " << Baselines[i] << endl;
+ }
+
+ // check that baselines for output are all valid
+ for(i=0; i<CI.OutputBaselines.size(); i++) {
+ site1 = StringUtils::word(CI.OutputBaselines[i],0,'-');
+ site2 = StringUtils::word(CI.OutputBaselines[i],1,'-');
+ if( Stations.find(site1) == Stations.end()
+ || Stations.find(site2) == Stations.end()) {
+
+ cerr << "Input ERROR: Invalid output baseline : '" << CI.OutputBaselines[i]
+ << "', station not found. Abort.\n";
+ oflog << "Input ERROR: Invalid output baseline : '" << CI.OutputBaselines[i]
+ << "', station not found. Abort.\n";
+ ok = false;
+ }
+ }
+
+ oflog << " ---- Input is " << (ok ? "" : "NOT ") << "valid ----\n";
+ if(CI.Screen) cout << " ---- Input is " << (ok ? "" : "NOT ") << "valid ----\n";
+ return (ok ? 0 : 1);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void CommandInput::Dump(std::ostream& ofs) const
+{
+try {
+ int i;
+ ofs << "Summary of command line input:" << endl;
+ if(Validate) ofs << " ------------ validate: this run will quit after "
+ << "validating the input ---------" << endl;
+ ofs << " Debug is " << (Debug ? "on":"off") << endl;
+ ofs << " Verbose is " << (Verbose ? "on":"off") << endl;
+ ofs << " Log file name is " << LogFile << endl;
+ if(!InputPath.empty()) ofs << " Path for input obs files is "
+ << InputPath << endl;
+ ofs << " Input Observation files are:\n";
+ for(i=0; i<ObsFileList.size(); i++)
+ ofs << " " << ObsFileList[i].name
+ << " (station " << ObsFileList[i].label << ")" << endl;
+ if(!NavPath.empty()) ofs << " Path for input nav files is "
+ << NavPath << endl;
+ ofs << " Input Navigation files are:\n";
+ for(i=0; i<NavFileNames.size(); i++) ofs << " " << NavFileNames[i]; ofs << endl;
+ if(!EOPPath.empty()) ofs << " Path for input earth orientation files is "
+ << EOPPath << endl;
+ if(EOPFileNames.size() > 0) {
+ ofs << " Input Earth orientation parameter files are:\n";
+ for(i=0; i<EOPFileNames.size(); i++)
+ ofs << " " << EOPFileNames[i]; ofs << endl;
+ }
+ else
+ ofs << " No EOP files - DDBase will search for 'finals.daily'" << endl;
+ ofs << " Station list is:\n";
+ map<string,Station>::const_iterator it;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ ofs << " Station " << it->first
+ << " (" << (it->second.fixed ? "":"not ") << "fixed)" << endl;
+ ofs << " Position: " << it->second.pos.printf("%.4x %.4y %.4z m\n");
+ ofs << " Position: " << it->second.pos.printf("%A deg N %L deg E %h m\n");
+ if(it->second.usePRS)
+ ofs << " (NB: use average PR solution to define this position.)\n";
+ ofs << " Trop model: " << it->second.TropType << endl;
+ ofs << " Weather: " << fixed
+ << setprecision(1) << it->second.temp << " degC, "
+ << setprecision(2) << it->second.press << " mbar, "
+ << setprecision(1) << it->second.rhumid << " %" << endl;
+ //if(it->second.ant_azimuth != 0) ofs << " Antenna orientation: "
+ // << setprecision(2) << it->second.ant_azimuth << " deg" << endl;
+ ofs << " Obs files: " << endl;
+ for(i=0; i<ObsFileList.size(); i++)
+ if(it->first == ObsFileList[i].label)
+ ofs << " " << ObsFileList[i].name << endl;
+ }
+ ofs << " End of Station list.\n";
+ if(TimeTableFile.size() > 0)
+ ofs << " Input time table file name " << TimeTableFile << endl;
+ ofs << " Process L" << Frequency << " data." << endl;
+ if(BegTime > DayTime::BEGINNING_OF_TIME) ofs << " Begin time is "
+ << BegTime.printf("%Y/%m/%d %H:%02M:%6.3f = %F/%10.3g") << endl;
+ if(EndTime < DayTime::END_OF_TIME) ofs << " End time is "
+ << EndTime.printf("%Y/%m/%d %H:%02M:%6.3f = %F/%10.3g") << endl;
+ ofs << " Set satellite " << RefSat << " as the reference in DDs" << endl;
+ if(noEstimate) ofs << " ** Estimation is turned OFF **" << endl;
+ if(noRAIM) ofs << " ** Pseudorange solution is turned OFF **" << endl;
+ ofs << " Set the number of iterations to " << nIter << endl;
+ ofs << " Set the convergence limit to "
+ << scientific << setprecision(3) << convergence << endl;
+ ofs << " On last iteration," << (FixBiases ? "" : " do not")
+ << " fix biases" << endl;
+ if(NRZDintervals > 0) {
+ ofs << " Estimate " << NRZDintervals
+ << " residual zenith delay intervals" << endl;
+ ofs << " RZD time constant is " << RZDtimeconst << " hours" << endl;
+ ofs << " RZD sigma is " << RZDsigma << " meters" << endl;
+ }
+ else ofs << " Do not estimate any residual zenith delay" << endl;
+ ofs << " A priori constraints, in ppm of the baseline:" << endl;
+ ofs << " Loose : " << scientific << setprecision(2) << LooseConstraint << endl;
+ ofs << " Tight : " << scientific << setprecision(2) << TightConstraint << endl;
+ ofs << " Pseudorange solution: iterations " << PRSnIter
+ << ", convergence " << scientific << setprecision(2) << PRSconverge
+ << ", " << (PRSalgebra ? "" : "do not ") << "use algebra," << endl
+ << " RMS residual limit " << fixed << PRSrmsLimit
+ << ", elevation mask " << fixed << PRSMinElevation
+ << endl;
+ if(DataInterval != -1)
+ ofs << " Data interval is DT = "
+ << fixed << setprecision(2) << DataInterval << " seconds." << endl;
+ else
+ ofs << " ERROR -- data interval must be specified: --DT <t>" << endl;
+ ofs << " Maximum gap in data = " << MaxGap << " * DT" << endl;
+ ofs << " Minimum DD dataset length = " << MinDDSeg << endl;
+ ofs << " Phase bias reset limit is " << PhaseBiasReset << " cycles" << endl;
+ ofs << " Minimum elevation for DD data is "
+ << fixed << setw(6) << setprecision(2) << MinElevation << " degrees." << endl;
+ if(RotatedAntennaElevation > 0 || RotatedAntennaAzimuth > 0)
+ ofs << " Minimum elevation cutoff for antenna rotated through (el,az) = ("
+ << fixed << setprecision(2) << RotatedAntennaElevation
+ << "," << RotatedAntennaAzimuth << ") degrees." << endl;
+ if(ExSV.size()) {
+ ofs << " Exclude satellites :";
+ for(i=0; i<ExSV.size(); i++) ofs << " " << ExSV[i];
+ ofs << endl;
+ }
+ ofs << " Computed baselines :" << endl;
+ for(i=0; i<Baselines.size(); i++) ofs << " " << Baselines[i] << endl;
+ if(CI.OutputBaselines.size()) {
+ ofs << " Output baselines :" << endl;
+ for(i=0; i<CI.OutputBaselines.size(); i++) {
+ ofs << " " << CI.OutputBaselines[i] << setprecision(5);
+ Triple trip = CI.OutputBaselineOffsets[i];
+ if(trip.mag() < 0.01) ofs << " ...without offset";
+ else ofs << " with offset " << trip[0] << "," << trip[1] << "," << trip[2];
+ ofs << endl;
+ }
+ }
+ if(!OutputRawFile.empty())
+ ofs << " Output file name: " << OutputRawFile << " for raw data." << endl;
+ if(!OutputPRSFile.empty())
+ ofs << " Output file name: " << OutputPRSFile << " for PRS." << endl;
+ if(!OutputClkFile.empty())
+ ofs << " Output file name: " << OutputClkFile << " for clock bias." << endl;
+ if(!OutputRawDDFile.empty())
+ ofs << " Output file name: " << OutputRawDDFile << " for raw DD data." << endl;
+ if(!OutputDDDFile.empty())
+ ofs << " Output file name: " << OutputDDDFile << " for edited DD data." << endl;
+ if(!OutputDDRFile.empty())
+ ofs << " Output file name: " << OutputDDRFile<< " for DD post-fit residuals."
+ << endl;
+ if(!OutputTDDFile.empty())
+ ofs << " Output file name: " << OutputTDDFile << " for triple diff data."
+ << endl;
+
+ ofs << "End of command line input summary." << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/CommandInput.hpp b/dev/apps/geomatics/relposition/CommandInput.hpp
new file mode 100644
index 0000000..30dd77e
--- /dev/null
+++ b/dev/apps/geomatics/relposition/CommandInput.hpp
@@ -0,0 +1,137 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file CommandInput.hpp
+ * Include file for command line input, including defaults and
+ * validation for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+#ifndef CLASS_DDBASE_COMMANDINPUT_INCLUDE
+#define CLASS_DDBASE_COMMANDINPUT_INCLUDE
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+// GPSTk
+// DDBase
+// put '#include this file' at bottom of DDBase.hpp #include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+/// Class CommandInput encapsulates all the data input from command line.
+class CommandInput {
+public:
+ // functions
+ int GetCmdInput(int argc, char **argv);
+ int ValidateCmdInput(void);
+ void Dump(std::ostream& s=std::cout) const;
+
+ // member data
+ bool Debug;
+ bool Verbose;
+ bool Screen;
+ bool Validate;
+ std::string LogFile;
+ std::string InputPath;
+ std::string NavPath;
+ std::string EOPPath;
+ std::vector<std::string> NavFileNames;
+ std::vector<std::string> EOPFileNames;
+ std::string TimeTableFile;
+ gpstk::DayTime BegTime;
+ gpstk::DayTime EndTime;
+ int Frequency;
+ // for configuration of pseudorange solution
+ double PRSrmsLimit;
+ //double PRSslopeLimit; // no
+ bool PRSalgebra;
+ //bool PRSresidCrit; // no
+ //bool PRSreturnatonce // no
+ int PRSnIter;
+ double PRSconverge;
+ // for use by pseudorange solution only
+ double PRSMinElevation;
+ gpstk::TropModel *pTropModel; // Station has another for Estimation
+ bool noRAIM; // not implemented right now
+ // for modeling the residual zenith delay (RZD) of the troposphere
+ int NRZDintervals; // 0 for no RZD estimation
+ double RZDtimeconst; // hours
+ double RZDsigma; // meters
+ //
+ double DataInterval;
+ // editing
+ double MinElevation;
+ double RotatedAntennaElevation;
+ double RotatedAntennaAzimuth;
+ int MaxGap;
+ int MinDDSeg;
+ int PhaseBiasReset;
+ std::vector<gpstk::GSatID> ExSV;
+ // timetable
+ gpstk::GSatID RefSat;
+ // Estimation
+ bool noEstimate;
+ int nIter;
+ double convergence;
+ bool FixBiases;
+ double TightConstraint,LooseConstraint;// in ppm (of baseline)
+ double DefaultTemp,DefaultPress,DefaultRHumid;
+ // output
+ std::vector<std::string> OutputBaselines;
+ std::vector<gpstk::Triple> OutputBaselineOffsets;
+ std::string OutputClkFile;
+ std::string OutputRawDDFile;
+ std::string OutputDDDFile;
+ std::string OutputTDDFile;
+ std::string OutputRawFile;
+ std::string OutputPRSFile;
+ std::string OutputDDRFile;
+
+private:
+ bool help;
+ void SetDefaults();
+ void PreProcessArgs(const char *arg, std::vector<std::string>& Args);
+}; // end class CommandInput
+
+//------------------------------------------------------------------------------------
+extern CommandInput CI;
+
+#endif
+// nothing below this
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/ComputeRAIMSolution.cpp b/dev/apps/geomatics/relposition/ComputeRAIMSolution.cpp
new file mode 100644
index 0000000..019ae30
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ComputeRAIMSolution.cpp
@@ -0,0 +1,212 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ComputeRAIMSolution.cpp
+ * Compute a pseudorange solution using a RAIM algorithm, and edit data based on
+ * the result, for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+#include <fstream>
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+extern ofstream ofprs; // ReadRawData.cpp
+
+//------------------------------------------------------------------------------------
+// called by ProcessRawData
+int ComputeRAIMSolution(ObsFile& of, DayTime& tt, vector<SatID>& Sats)
+{
+try {
+ int nsvs,i,iret;
+ double PR;
+ vector<double> Ranges;
+ format f166(16,6),f62(6,2);
+
+ Sats.clear();
+
+ if(CI.noRAIM) return 0; // this option is commented out in CommandInput
+ if(CI.Debug) oflog << "CRS for file " << of.name << ", site " << of.label << endl;
+
+ // station associated with ObsFile
+ Station& st=Stations[of.label];
+
+ // pull data out of raw data map
+ map<GSatID,DataStruct>::iterator it;
+ for(nsvs=0,it=st.RawDataMap.begin(); it != st.RawDataMap.end(); it++) {
+ //if(CI.Frequency == 1) PR = it->second.P1;
+ //else if(CI.Frequency == 2) PR = it->second.P2;
+ //else if(CI.Frequency == 3) {
+ // if(it->second.P1 == 0 || it->second.P2 == 0) PR = 0.0;
+ // else PR = if1r * it->second.P1 + if2r * it->second.P2;
+ //}
+ // use dual frequency if you have it
+ if(it->second.P1 != 0 && it->second.P2 != 0)
+ PR = if1r * it->second.P1 + if2r * it->second.P2;
+ else if(it->second.P1 == 0 && it->second.P2 == 0) PR = 0.0;
+ else if(it->second.P1 == 0)
+ PR = it->second.P2;
+ else
+ PR = it->second.P1;
+
+ if(PR != 0.0) {
+ Sats.push_back(SatID(it->first));
+ Ranges.push_back(PR);
+ nsvs++;
+ }
+ }
+
+ if(CI.Debug) {
+ oflog << "Satellites and Ranges before Compute:\n";
+ for(i=0; i<Ranges.size(); i++)
+ oflog << " " << setw(2) << GSatID(Sats[i]) << fixed
+ << " " << setw(13) << setprecision(3) << Ranges[i] << endl;
+ }
+
+ // compute a RAIM solution
+ if(nsvs <= 4) {
+ if(CI.Verbose) oflog << "Not enough data to compute RAIM solution for file "
+ << of.name << " at time "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ return -2;
+ }
+
+ //temp
+//cout << "RAIM Compute for file " << of.name << " at time ";
+//cout << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+
+ iret = st.PRS.RAIMCompute(tt, Sats, Ranges, *pEph, CI.pTropModel);
+
+ if(iret < 0) {
+ if(iret == -4)
+ oflog << "RAIM Solution failed to find ephemeris";
+ if(iret == -3)
+ oflog << "Not enough data for a RAIM solution";
+ if(iret == -2)
+ oflog << "Singular RAIM problem";
+ oflog << " for file " << of.name << " at time "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ return iret;
+ }
+ if(iret > 0) {
+ //oflog << "RAIM solution is suspect (" << iret << ")" << endl;
+ return iret;
+ }
+ if(!st.PRS.isValid()) return -5;
+ for(nsvs=0,i=0; i<Sats.size(); i++) if(Sats[i].id > 0) nsvs++;
+
+ if(iret < 0 || nsvs <= 4) { // did not compute a solution
+ if(CI.Verbose) oflog << "At " << SolutionEpoch
+ << " RAIM returned " << iret << endl;
+ st.PRS.Valid = false;
+ if(iret >= 0) return -3;
+ return iret;
+ }
+
+ if(!CI.OutputPRSFile.empty()) {
+ ofprs << "PRS " << of.label << " " << setw(2) << nsvs
+ << tt.printf(" %4F %10.3g");
+
+ // if a Position is defined for this Station, output residuals
+ if(st.pos.getSystemName() != string("Unknown"))
+ ofprs
+ << " " << f166 << st.PRS.Solution(0)-st.pos.X()
+ << " " << f166 << st.PRS.Solution(1)-st.pos.Y()
+ << " " << f166 << st.PRS.Solution(2)-st.pos.Z();
+ else
+ ofprs
+ << " " << f166 << st.PRS.Solution(0)
+ << " " << f166 << st.PRS.Solution(1)
+ << " " << f166 << st.PRS.Solution(2);
+
+ ofprs
+ << " " << f166 << st.PRS.Solution(3)
+ << " " << f62 << st.PRS.RMSResidual;
+ //<< " " << f51 << st.PRS.MaxSlope
+ //<< " " << st.PRS.NIterations
+ //<< " " << f82s << st.PRS.Convergence;
+ for(i=0; i<Sats.size(); i++) ofprs << " " << setw(3) << Sats[i].id;
+ ofprs << " (" << iret << ")" << (st.PRS.isValid() ? " V" : " NV");
+ ofprs << endl;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end ComputeRAIMSolution()
+
+//------------------------------------------------------------------------------------
+void RAIMedit(ObsFile& of, vector<SatID>& Sats)
+{
+try {
+ int i;
+ Station& st=Stations[of.label];
+
+ if(!st.PRS.Valid) {
+ st.RawDataMap.clear();
+ return;
+ }
+
+ // delete satellites that were marked by RAIM
+ for(i=0; i<Sats.size(); i++) {
+ if(Sats[i].id > 0) continue;
+ Sats[i].id *= -1;
+ st.RawDataMap.erase(GSatID(Sats[i]));
+ }
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/Configure.cpp b/dev/apps/geomatics/relposition/Configure.cpp
new file mode 100644
index 0000000..ee30f33
--- /dev/null
+++ b/dev/apps/geomatics/relposition/Configure.cpp
@@ -0,0 +1,241 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Configure.cpp
+ * Manage configuration details, at various points, for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+#include "RinexUtilities.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// local data
+BCEphemerisStore BCEphList; // global pEph will point to one of these
+SP3EphemerisStore SP3EphList;
+
+SimpleTropModel TropModelSimple; // CI.pTropModel will point to one of these
+GGTropModel TropModelGG;
+GGHeightTropModel TropModelGGh;
+NBTropModel TropModelNB;
+SaasTropModel TropModelSaas;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+int Initialize(void);
+int UpdateConfig(void);
+void ReadAllObsHeaders(void); // ReadObsFiles.cpp
+int ConfigureEstimation(void); // Estimation.cpp
+
+//------------------------------------------------------------------------------------
+int Configure(int which)
+{
+try {
+ if(which == 1) return Initialize();
+ if(which == 2) return UpdateConfig();
+ if(which == 3) {
+ if(CI.Verbose) oflog << "BEGIN Configure(3)" << endl;
+ return ConfigureEstimation(); // Estimation.cpp
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end Configure()
+
+//------------------------------------------------------------------------------------
+// Configure(1)
+// open and read navigation files
+// open and read headers of all observation files
+int Initialize(void)
+{
+try {
+ int i,j;
+
+ if(CI.Verbose) oflog << "BEGIN Configure(1)" << endl;
+ if(CI.Frequency == 1) wave = wl1;
+ if(CI.Frequency == 2) wave = wl2;
+ // NB wave should never be used for L3 -- see warning in CommandInput.cpp
+ else if(CI.Frequency == 3) wave = wl1;
+
+ // open nav files and read EphemerisStore
+ if(!CI.NavPath.empty())
+ for(i=0; i<CI.NavFileNames.size(); i++)
+ CI.NavFileNames[i] = CI.NavPath + "/" + CI.NavFileNames[i];
+
+ // fill ephemeris store -- this routine in RinexUtilities.cpp
+ FillEphemerisStore(CI.NavFileNames, SP3EphList, BCEphList);
+
+ // dump SP3 store to log
+ if(SP3EphList.size()) {
+ if(CI.Verbose) SP3EphList.dump(0,oflog);
+ }
+ else if(CI.Verbose) oflog << "SP3 Ephemeris store is empty" << endl;
+
+ // dump BCE store to log
+ if(BCEphList.size()) {
+ // this causes the CorrectedEphemerisRange routines to pick the
+ // closest TOE in either future or past of the epoch, rather
+ // than the closest in the past -- see BCEphemerisStore.hpp
+ BCEphList.SearchNear();
+
+ if(CI.Debug) BCEphList.dump(1,oflog);
+ else if(CI.Verbose) BCEphList.dump(0,oflog);
+ }
+ else if(CI.Verbose) oflog << "BC Ephemeris store is empty" << endl;
+
+ // assign pointer
+ if(SP3EphList.size()) pEph = &SP3EphList;
+ else if(BCEphList.size()) pEph = &BCEphList;
+ else {
+ cerr << "Initialize ERROR: no ephemeris. Abort." << endl;
+ oflog << "Initialize ERROR: no ephemeris. Abort." << endl;
+ return 1;
+ }
+
+ // open all EOP files and fill the EOPstore
+ if(!CI.EOPPath.empty())
+ for(i=0; i<CI.EOPFileNames.size(); i++)
+ CI.EOPFileNames[i] = CI.EOPPath + "/" + CI.EOPFileNames[i];
+
+ if(CI.EOPFileNames.size() > 0) {
+ for(i=0; i<CI.EOPFileNames.size(); i++)
+ EOPList.addFile(CI.EOPFileNames[i]);
+ }
+ else {
+ try {
+ EOPList.addIERSFile("finals.daily");
+ }
+ catch(FileMissingException& fme) {
+ string msg("DDBase was unable to find any Earth Orientation parameters:\n"
+ " either add option --EOPFile <file> or put file 'finals.daily' in the"
+ " current directory.\n (http://maia.usno.navy.mil/ser7/finals.daily)\n");
+ cerr << msg;
+ oflog << msg;
+ GPSTK_RETHROW(fme);
+ }
+ }
+
+ if(EOPList.size()) {
+ if(CI.Debug) EOPList.dump(1,oflog);
+ else if(CI.Verbose) EOPList.dump(0,oflog);
+ }
+ else oflog << "Warning - no Earth Orientation Parameters were input\n";
+
+ // read all headers and store information in Station object
+ ReadAllObsHeaders();
+
+ // assign trop model for RAIM (model for DD est assigned in Configure(2))
+ // NB using another, like Saastamoinen, here, is problematic because it
+ // requires height, latitude and DOY input, [ this because RAIM calls
+ // CI.pTropModel->correction(elevation) ], and that info is different for
+ // different sites and not all available.
+ CI.pTropModel = &TropModelSimple;
+ // TD per site
+ CI.pTropModel->setWeather(CI.DefaultTemp,CI.DefaultPress,CI.DefaultRHumid);
+
+ // Define first and last epochs
+ FirstEpoch = DayTime::BEGINNING_OF_TIME;
+ LastEpoch = DayTime::END_OF_TIME;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Configure(2)
+int UpdateConfig(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN Configure(2)" << endl;
+
+ // configure trop model for each station
+ // dump height, zenith delays, etc
+ map<string,Station>::iterator it;
+ oflog << "Zenith tropospheric delays and station heights" << endl;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ Station& st=it->second;
+ oflog << " Station " << it->first
+ << " (" << (st.fixed ? "":"not ") << "fixed)" << endl;
+ oflog << " Position: " << st.pos.printf("%13.3x m %13.3y m %13.3z m")
+ << endl;
+ oflog << " Position: " << st.pos.printf("%A deg N, %L deg E, %h m")
+ << endl;
+ oflog << " Weather " << setprecision(1) << st.temp << " deg C, "
+ << setprecision(2) << st.press << " mbars, "
+ << setprecision(1) << st.rhumid << "%" << endl;
+
+ st.pTropModel->setWeather(st.temp,st.press,st.rhumid);
+ st.pTropModel->setReceiverHeight(st.pos.getHeight());
+ st.pTropModel->setReceiverLatitude(st.pos.getGeodeticLatitude());
+ st.pTropModel->setDayOfYear(int(FirstEpoch.DOYday()));
+
+ oflog << " Trop (model: " << st.TropType << fixed << ") zenith delays:"
+ << " dry " << setprecision(6) << st.pTropModel->dry_zenith_delay();
+ oflog << " m, wet " << setprecision(6) << st.pTropModel->wet_zenith_delay();
+ oflog << " m, total "
+ << setprecision(6) << st.pTropModel->correction(90.0) << " m";
+ oflog << endl;
+ }
+
+ // check how much data there is
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/DDBase.cpp b/dev/apps/geomatics/relposition/DDBase.cpp
new file mode 100644
index 0000000..23f240c
--- /dev/null
+++ b/dev/apps/geomatics/relposition/DDBase.cpp
@@ -0,0 +1,278 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DDBase.cpp
+ * Main program for DDBase - the ARL:UT network precise position estimation
+ * using double differenced GPS carrier phase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <time.h>
+
+// GPSTk
+//#define RANGECHECK // throw on invalid ranges in Vector and Matrix
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+string Version("4.0 9/8/06");
+// 4.0 9/08/06 Convert to SatID and new RinexObs* names
+// 3.9 7/27/06 In EditDDs: pts between two combined slips not removed, TD miscomputed
+// 3.8 7/24/06 Remove CR at EOL and read line w/o CRLF at EOF
+// 3.7 6/01/06 Added L3 and checked L2.
+// 3.6 4/01/06 Fixed rotated antenna to work properly.
+// 3.5 3/01/06 Catch std exceptions
+// 3.4 2/27/06 Iterate slip fixing -- see test/Feb20/go15 for justification
+// 3.3 2/22/06 Slip bug introduced in 2.8; revert to slip tolerance 0.5
+// 3.2 2/16/06 Ignore unhealthy BC ephemeris, keep BCE in fit interval, screen output
+// 3.1 2/02/06 Imp. convergence criterion, bias-fix iteration goes beyond nIter
+// 3.0 2/02/06 Fixed: consequences of PosPRS option, MaxGap error
+// 2.9 11/06/05 Added option for 'finals.daily' input for EOP
+// 2.8 10/10/05 Improved EditDDs, incl changed slip tolerance to 0.9
+// 2.7 9/20/05 Added rotated antenna option and ElevationMask routine
+// 2.6 8/30/05 Improved stochastic model -- decreased eps and made cos^2
+// 2.5 8/11/05
+
+//------------------------------------------------------------------------------------
+// TD DDBase -Edit the data within estimation loop..see memo on false slips w/--PosPRS
+// TD DDBase -Add data sequentially, but invert less often (input)
+// TD DDBase -Be careful how bias states are added..they should be added only when
+// TD DDBase they appear in the data. They don't need to be removed even if they
+// TD DDBase don't have any more data .. they can either be left in there (they won't
+// TD DDBase harm the position states) or the biases can be fixed when the data goes
+// TD DDBase away.
+// TD DDBase -When there is no data in the file(s) for a site, it fails by finding PRS
+// TD DDBase equal to (0,0,0)...it should abort more gracefully.
+// TD DDBase -When the time step is large, the test for slips using the triple diff
+// TD DDBase should be modified -- TDs are much larger
+// TD DDBase -When there is a problem with the data often it fails with a 'slip' in
+// TD DDBase the triple difference at every epoch -- it should abort if #slips is big
+
+//------------------------------------------------------------------------------------
+// Global data -- declared extern in DDBase.hpp
+string PrgmName("DDBase"); // program name, used in title, desc., and output
+string Title; // program name and run time, for output
+string PrgmDesc; // program description, used in CommandInput
+ofstream oflog; // output log file stream
+CommandInput CI; // all command line input .. see CommandInput.hpp
+
+std::vector<std::string> Baselines; // *computed* Baselines, (those to output in CI)
+
+DayTime SolutionEpoch; // current solution epoch
+DayTime FirstEpoch,LastEpoch; // first and last solution epoch seen
+DayTime MedianEpoch; // median of first and last, computed in Configure(3)
+int Count; // current number of data intervals since first epoch
+int minCount,maxCount; // minimum and maximum timetag count seen
+int begcount,endcount; // first and last counts of *good* data in buffers
+double wave; // wavelength (m) being processed (see CI.Frequency)
+
+EphemerisStore *pEph; // pointer to ephemeris store (BC or SP3)
+EOPStore EOPList; // store of EarthOrientation parameters
+EarthOrientation eorient; // earth orientation parameters at mean time of dataset
+
+// list of labels, which identify sites, and associated Station objects.
+// label should be 4 char, but .. Don't allow a default b/c this ties inputs together.
+map<string,Station> Stations;
+
+vector<ObsFile> ObsFileList; // list of all observation files
+
+map<DDid,DDData> DDDataMap; // buffered DDs
+
+//------------------------------------------------------------------------------------
+int OutputRawData(void); // DataIO.cpp
+// prototypes -- this module only
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ // ------------------------------------------------------------------
+ // START
+ clock_t totaltime = clock();
+ int iret;
+ DayTime CurrEpoch;
+
+ // Title title and version
+ Title = PrgmName + ", ARL:UT DD phase estimation processor, Ver " + Version;
+ // PrgmDesc description
+ PrgmDesc = " Prgm " + PrgmName +
+ " will read RINEX obs data from any number of files and process them\n"
+ " in a double-differenced carrier phase estimation algorithm to produce precise\n"
+ " estimates of relative positions. Input is on the command line, or of the same\n"
+ " format in a file (see -f<file> below). DDBase is built on the GPS Toolkit (GPSTk).\n"
+ " NB. Input option --DT <data_interval_(seconds)> is required.\n"
+ " NB. Stations are defined, and many inputs for each are identified, by a label\n"
+ " (called station label or id below), which is case sensitive and must be used\n"
+ " consistently throughout. It cannot be 'X','Y' or 'Z' nor contain '-' or '_';\n"
+ " four characters work best.\n"
+ " NB. There must be at least two stations defined, with observation file(s)\n"
+ " provided for each, and at least one station must be fixed.\n"
+ "\n"
+ " Options may be given in an input file (see -f<file>); the '#' character marks\n"
+ " a comment, to EOL. All input options are shown below, followed by a\n"
+ " description, and the default value, if there is one, in ().\n";
+
+ // get current time
+ time_t timer;
+ struct tm *tblock;
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ CurrEpoch.setYMDHMS(1900+tblock->tm_year,1+tblock->tm_mon,
+ tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
+ // print title and current time to screen
+ Title += CurrEpoch.printf(", Run %04Y/%02m/%02d %02H:%02M:%02S");
+ cout << Title << endl;
+
+ for(;;) {
+ // ------------------------------------------------------------------
+ // get command line input
+ if((iret = CI.GetCmdInput(argc, argv))) break;
+
+ // ------------------------------------------------------------------
+ // test command input for validity
+ if((iret = CI.ValidateCmdInput())) break;
+
+ // dump command input to log
+ if(CI.Verbose) {
+ cout << "Output is directed to log file " << CI.LogFile << endl;
+ CI.Dump(oflog);
+ }
+
+ // if 'validate' switch is on, quit here
+ if(CI.Validate) break;
+
+ // ------------------------------------------------------------------
+ // Configure #1
+ if((iret = Configure(1))) break;
+
+ // ------------------------------------------------------------------
+ // Open and read all files, compute PR solution, edit and buffer raw data
+ if((iret = ReadRawData())) break;
+
+ // ------------------------------------------------------------------
+ // Edit buffers
+ if((iret = EditRawDataBuffers())) break;
+
+ // ------------------------------------------------------------------
+ // Output raw data buffers
+ if((iret = OutputRawDataBuffers())) break;
+
+ // ------------------------------------------------------------------
+ // Configure #2
+ if((iret = Configure(2))) break;
+
+ // ------------------------------------------------------------------
+ // Orbit processing
+ if((iret = EphemerisImprovement())) break;
+
+ // ------------------------------------------------------------------
+ // clock processing
+ if((iret = ClockModel())) break;
+
+ // ------------------------------------------------------------------
+ // synchronization of data to epoch (SolutionEpoch)
+ if((iret = Synchronization())) break;
+
+ // ------------------------------------------------------------------
+ // correct ephemeris range, elevation, and compute phase windup
+ if((iret = RecomputeFromEphemeris())) break;
+
+ // output data here, as phase and elevation are changed in Recompute...
+ OutputRawData();
+
+ // ------------------------------------------------------------------
+ // Compute or read the timetable
+ if((iret = Timetable())) break;
+
+ // ------------------------------------------------------------------
+ // Compute double differences, and buffer
+ if((iret = DoubleDifference())) break;
+
+ // ------------------------------------------------------------------
+ // Edit double differences
+ if((iret = EditDDs())) break;
+
+ // ------------------------------------------------------------------
+ // Configure #3 : prepare estimation
+ if((iret = Configure(3))) break;
+
+ // ------------------------------------------------------------------
+ // Estimation
+ if((iret = Estimation())) break;
+
+ break;
+ } // end for(;;)
+
+ // END --------------------------------------------------------------
+ // error condition?
+ if(iret) {
+ cerr << PrgmName << " terminating with error code " << iret << endl;
+ oflog << PrgmName << " terminating with error code " << iret << endl;
+ }
+
+ // compute run time
+ totaltime = clock()-totaltime;
+ cout << PrgmName << " timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds." << endl;
+ oflog << PrgmName << " timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds." << endl;
+
+ return iret;
+}
+catch(Exception& e) {
+ cerr << "GPSTk Exception : " << e;
+ oflog << "GPSTk Exception : " << e;
+}
+catch (...) {
+ cerr << "Unknown error in DDBase. Abort." << endl;
+ oflog << "Unknown error in DDBase. Abort." << endl;
+}
+
+ // close files
+ oflog.close();
+ return -1;
+} // end main()
+
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/DDBase.hpp b/dev/apps/geomatics/relposition/DDBase.hpp
new file mode 100644
index 0000000..13f82d9
--- /dev/null
+++ b/dev/apps/geomatics/relposition/DDBase.hpp
@@ -0,0 +1,126 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DDBase.hpp
+ * Main include file for DDBase - the ARL:UT network precise position estimation
+ * using double differenced GPS carrier phase.
+ */
+
+//------------------------------------------------------------------------------------
+#ifndef CLASS_DDBASE_PROCESSOR_INCLUDE
+#define CLASS_DDBASE_PROCESSOR_INCLUDE
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <string>
+#include <vector>
+#include <map>
+
+// GPSTk
+//#define RANGECHECK // if defined, Vector and Matrix will throw on invalid index.
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "TropModel.hpp"
+#include "SP3EphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "EarthOrientation.hpp"
+#include "Position.hpp"
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+
+// DDBase
+#include "GSatID.hpp" // this one first
+#include "DataStructures.hpp"
+#include "DDid.hpp"
+#include "constants.hpp"
+#include "format.hpp"
+
+//------------------------------------------------------------------------------------
+// prototypes
+int Configure(int which); // Configure.cpp
+int ReadRawData(void); // ReadRawData.cpp
+int EditRawDataBuffers(void); // EditRawDataBuffers.cpp
+int OutputRawDataBuffers(void); // EditRawDataBuffers.cpp
+int EphemerisImprovement(void); // EphemerisImprovement.cpp
+int ClockModel(void); // ClockModel.cpp
+int Synchronization(void); // Synchronization.cpp
+int RecomputeFromEphemeris(void); // Synchronization.cpp
+int Timetable(void); // Timetable.cpp
+int QueryTimeTable(gpstk::SDid& sdid, gpstk::DayTime& tt); // Timetable.cpp
+int QueryTimeTable(std::string bl, int& beg, int& end); // Timetable.cpp
+int DoubleDifference(void); // DoubleDifference.cpp
+int EditDDs(void); // EditDDs.cpp
+int Estimation(void); // Estimation.cpp
+
+//------------------------------------------------------------------------------------
+// Global data -- see DDBase.cpp where these are declared and documented
+extern std::string Title;
+extern std::string PrgmDesc;
+extern std::ofstream oflog;
+//extern CommandInput CI; put in CommandInput.hpp
+extern std::vector<std::string> Baselines;
+
+extern gpstk::DayTime SolutionEpoch;
+extern gpstk::DayTime FirstEpoch,LastEpoch,MedianEpoch;
+extern int Count;
+extern int maxCount;
+extern double wave;
+
+extern gpstk::EphemerisStore *pEph;
+extern gpstk::EOPStore EOPList;
+extern gpstk::EarthOrientation eorient;
+
+extern std::map<std::string,Station> Stations;
+extern std::vector<ObsFile> ObsFileList;
+
+extern std::map<gpstk::DDid,DDData> DDDataMap;
+
+#endif
+
+// include the 'command line input configuration' structure
+#include "CommandInput.hpp"
+
+// nothing below this
diff --git a/dev/apps/geomatics/relposition/DataOutput.cpp b/dev/apps/geomatics/relposition/DataOutput.cpp
new file mode 100644
index 0000000..0089ab5
--- /dev/null
+++ b/dev/apps/geomatics/relposition/DataOutput.cpp
@@ -0,0 +1,338 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DataOutput.cpp
+ * Output intermediate data to files for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD DataOutput.cpp error msg for failure to open output files
+// TD DataOutput.cpp add clock polynomial Evaluate(tt) to CLK output
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+#include <fstream>
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+#include "CommandInput.hpp"
+#include "format.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+
+//------------------------------------------------------------------------------------
+int OutputRawData(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN OutputRawData()" << endl;
+
+ if(CI.OutputRawFile.empty()) return 0;
+
+ int i;
+ DayTime tt;
+ map<string,Station>::const_iterator it;
+ map<GSatID,RawData>::const_iterator jt;
+ format f133(13,3),f52(5,2);
+
+ // open an output file for RAW data
+ ofstream rawofs;
+ rawofs.open(CI.OutputRawFile.c_str(),ios::out);
+ if(rawofs) {
+ oflog << "Opened file " << CI.OutputRawFile << " for raw data output.." << endl;
+ rawofs << "# " << Title << endl;
+ rawofs << "RAW site sat week sec_wk count L1_cyc L2_cyc"
+ << " P1_m P2_m ER_m EL AZ\n";
+ }
+ else {
+ // TD error msg
+ return -1;
+ }
+
+ // loop over stations
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+
+ // loop over satellites
+ for(jt=it->second.RawDataBuffers.begin();
+ jt != it->second.RawDataBuffers.end(); jt++) {
+
+ // loop over epochs
+ for(i=0; i<jt->second.count.size(); i++) {
+
+ tt = FirstEpoch + jt->second.count[i]*CI.DataInterval;
+
+ rawofs << "RAW " << it->first << " " << jt->first << " "
+ << tt.printf("%4F %10.3g")
+ << " " << setw(5) << jt->second.count[i]
+ << " " << f133 << jt->second.L1[i]
+ << " " << f133 << jt->second.L2[i]
+ << " " << f133 << jt->second.P1[i]
+ << " " << f133 << jt->second.P2[i]
+ << " " << f133 << jt->second.ER[i]
+ << " " << f52 << jt->second.elev[i]
+ << " " << f52 << jt->second.az[i]
+ << endl;
+
+ } // end loop over epochs
+
+ } // loop over satellites
+
+ } // loop over stations
+
+ // close output file
+ rawofs.close();
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end OutputRawData()
+
+//------------------------------------------------------------------------------------
+int OutputRawDData(const DDid& ddid, const DDData& dddata, const vector<int>& mark)
+{
+try {
+ bool TripleOut=true; // output triple differences as well
+ if(CI.OutputRawDDFile.empty()) return 0;
+
+ static ofstream rddofs;
+
+ // allow caller to close the file...
+ if(mark.size() == 0) {
+ if(rddofs.is_open()) rddofs.close();
+ return 0;
+ }
+
+ if(!rddofs.is_open()) { // first call : open the file
+ if(CI.Verbose) oflog << "BEGIN OutputRawDData()" << endl;
+ rddofs.open(CI.OutputRawDDFile.c_str(),ios::out);
+ if(rddofs) {
+ oflog << "Opened file " << CI.OutputRawDDFile
+ << " for raw DD data output." << endl;
+ rddofs << "# " << Title << endl;
+ rddofs << "RDD sit1 sit2 sat ref week sec_wk flag DDL1_m"
+ << " "
+ << "DDL2_m DDER_m resL1_m resL2_m";
+ if(CI.Frequency == 3) rddofs << " WLbias_m";
+ rddofs << endl;
+ if(TripleOut) rddofs
+ << "RTD sit1 sit2 sat ref week sec_wk flag TDL1_m"
+ << " TDL2_m TDER_m" << endl;
+ }
+ else {
+ // TD error msg
+ return -1;
+ }
+ }
+
+ int i;
+ double wlb;
+ DayTime tt;
+ format f166(16,6);
+
+ // loop over epochs
+ for(i=0; i<dddata.count.size(); i++) {
+
+ tt = FirstEpoch + dddata.count[i]*CI.DataInterval;
+
+ if(CI.Frequency == 3)
+ wlb = wl1p * dddata.DDL1[i] // wide lane range minus phase
+ + wl2p * dddata.DDL2[i] // = WL phase - NL range
+ - wl1r * dddata.DDP1[i]
+ - wl2r * dddata.DDP2[i];
+
+ rddofs << "RDD " << ddid << " " << tt.printf("%4F %10.3g")
+ << " " << setw(2) << mark[i]
+ << " " << f166 << dddata.DDL1[i]
+ << " " << f166 << dddata.DDL2[i]
+ << " " << f166 << dddata.DDER[i]
+ << " " << f166 << dddata.DDL1[i] - dddata.DDER[i]
+ << " " << f166 << dddata.DDL2[i] - dddata.DDER[i];
+ if(CI.Frequency == 3) rddofs << " " << f166 << wlb;
+ rddofs << endl;
+
+ if(TripleOut && i>0) {
+ // wlb is a dummy here, = delta time for this triple diff
+ wlb = (dddata.count[i]-dddata.count[i-1])*CI.DataInterval;
+ rddofs << "RTD " << ddid << " " << tt.printf("%4F %10.3g")
+ << " " << setw(2) << 10*mark[i]+mark[i-1]
+ << " " << f166 << (dddata.DDL1[i]-dddata.DDL1[i-1])/wlb
+ << " " << f166 << (dddata.DDL2[i]-dddata.DDL2[i-1])/wlb
+ << " " << f166 << (dddata.DDER[i]-dddata.DDER[i-1])/wlb
+ << endl;
+ }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end OutputRawDData()
+
+//------------------------------------------------------------------------------------
+int OutputDDData(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN OutputDDData()" << endl;
+
+ if(CI.OutputDDDFile.empty()) return 0;
+
+ int i;
+ double wlb;
+ DayTime tt;
+ map<DDid,DDData>::const_iterator it;
+ format f166(16,6);
+
+ // open an output file for DDD data
+ ofstream dddofs;
+ dddofs.open(CI.OutputDDDFile.c_str(),ios::out);
+ if(dddofs) {
+ oflog << "Opened file " << CI.OutputDDDFile << " for DD data output." << endl;
+ dddofs << "# " << Title << endl;
+ dddofs << "DDD sit1 sit2 sat ref week sec_wk DDL1_m "
+ << "DDL2_m DDER_m resL1_m resL2_m";
+ if(CI.Frequency == 3) dddofs << " WLbias_m";
+ dddofs << endl;
+ }
+ else {
+ // TD error msg
+ return -1;
+ }
+
+ // loop over DDids
+ for(it=DDDataMap.begin(); it != DDDataMap.end(); it++) {
+
+ // loop over epochs
+ for(i=0; i<it->second.count.size(); i++) {
+
+ tt = FirstEpoch + it->second.count[i]*CI.DataInterval;
+
+ if(CI.Frequency == 3)
+ wlb = wl1p * it->second.DDL1[i] // wide lane range minus phase
+ + wl2p * it->second.DDL2[i] // = WL phase - NL range
+ - wl1r * it->second.DDP1[i]
+ - wl2r * it->second.DDP2[i];
+
+ dddofs << "DDD " << it->first << " " << tt.printf("%4F %10.3g")
+ << " " << f166 << it->second.DDL1[i]
+ << " " << f166 << it->second.DDL2[i]
+ << " " << f166 << it->second.DDER[i]
+ << " " << f166 << it->second.DDL1[i] - it->second.DDER[i]
+ << " " << f166 << it->second.DDL2[i] - it->second.DDER[i];
+ if(CI.Frequency == 3) dddofs << " " << f166 << wlb;
+ dddofs << endl;
+ }
+
+ }
+
+ dddofs.close();
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end OutputDDData()
+
+//------------------------------------------------------------------------------------
+int OutputClockData(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN OutputClockData()" << endl;
+
+ if(CI.OutputClkFile.empty()) return 0;
+
+ int i;
+ DayTime tt;
+ map<string,Station>::const_iterator it;
+ format f133(13,3),f92(9,2,2),f96(9,6);
+
+ // open an output file for Clk data
+ ofstream clkofs;
+ clkofs.open(CI.OutputClkFile.c_str(),ios::out);
+ if(clkofs) {
+ oflog << "Opened file " << CI.OutputClkFile << " for DD data output." << endl;
+ clkofs << "# " << Title << endl;
+ clkofs << "CLK site week sec_wk Rx_clk_bias(m) Sig(m) TT_off(s)\n";
+ }
+ else {
+ // TD error msg
+ return -1;
+ }
+
+
+ // loop over stations
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+
+ // loop over epochs
+ for(i=0; i<it->second.ClockBuffer.size(); i++) {
+
+ tt = FirstEpoch + it->second.CountBuffer[i]*CI.DataInterval;
+
+ clkofs << "CLK " << it->first << " " << tt.printf("%4F %10.3g")
+ << " " << f133 << it->second.ClockBuffer[i]
+ << " " << f92 << it->second.ClkSigBuffer[i]
+ // TD add clock polynomial Evaluate(tt)
+ << " " << f92 << it->second.RxTimeOffset[i]
+ << endl;
+
+ } // loop over epochs
+
+ } // loop over stations
+
+ clkofs.close();
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end OutputClockData()
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/DataStructures.cpp b/dev/apps/geomatics/relposition/DataStructures.cpp
new file mode 100644
index 0000000..61f283f
--- /dev/null
+++ b/dev/apps/geomatics/relposition/DataStructures.cpp
@@ -0,0 +1,134 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DataStructures.cpp
+ * Implement various data containers for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+#include "DataStructures.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+Station& findStationInList(map<string,Station>& SL, string& label)
+{
+try {
+ map<string,Station>::const_iterator it;
+ it = SL.find(label);
+ if(it == SL.end()) { // create a new Station
+ Station st;
+ SL[label] = st;
+ }
+ return SL[label];
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+Station::Station(void) throw()
+{
+ fixed = usePRS = false;
+ temp = press = rhumid = 0.0;
+ time = DayTime::BEGINNING_OF_TIME;
+ pTropModel = NULL;
+ TropType = "Saas";
+ ant_azimuth = 0.0;
+}
+
+//------------------------------------------------------------------------------------
+Station::~Station(void) throw()
+{
+ delete pTropModel;
+}
+
+//------------------------------------------------------------------------------------
+ObsFile::ObsFile(void) throw()
+{
+ name = string("");
+ label = string("");
+ nread = -1;
+ valid = false;
+ inC1 = -1;
+ inP1 = -1; inP2 = -1;
+ inL1 = -1; inL2 = -1;
+ inD1 = -1; inD2 = -1;
+ inS1 = -1; inS2 = -1;
+}
+
+//------------------------------------------------------------------------------------
+ObsFile& ObsFile::operator=(const ObsFile& of) throw()
+{
+ name = of.name;
+ label = of.label;
+ nread = of.nread; // number of records read (-1=unopened, 0=header read)
+ valid = of.valid;
+ inC1 = of.inC1;
+ inP1 = of.inP1; inP2 = of.inP2;
+ inL1 = of.inL1; inL2 = of.inL2;
+ inD1 = of.inD1; inD2 = of.inD2;
+ inS1 = of.inS1; inS2 = of.inS2;
+ return *this;
+}
+
+//------------------------------------------------------------------------------------
+ObsFile::ObsFile(const ObsFile& of) throw()
+{
+ *this = of;
+}
+
+//------------------------------------------------------------------------------------
+ObsFile::~ObsFile(void)
+{
+ ins.clear();
+ ins.close();
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/DataStructures.hpp b/dev/apps/geomatics/relposition/DataStructures.hpp
new file mode 100644
index 0000000..5092e30
--- /dev/null
+++ b/dev/apps/geomatics/relposition/DataStructures.hpp
@@ -0,0 +1,176 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DataStructures.hpp
+ * Include file defining the data containers for program DDBase.
+ */
+
+#ifndef CLASS_DDBASE_DATA_STRUCT_INCLUDE
+#define CLASS_DDBASE_DATA_STRUCT_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+#include <vector>
+
+// GPSTk
+#include "PRSolution.hpp"
+#include "Stats.hpp"
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+// Data structures
+
+// structure for raw data
+typedef struct data_structure {
+ double L1; // cycles
+ double L2; // cycles
+ double P1; // m
+ double P2; // m
+ double D1; // Hz optional when fit to phase used in synchronization
+ double D2; // Hz
+ double S1; // dB-Hz unused
+ double S2; // dB-Hz unused
+ double ER; // m
+ double elev; // degrees
+ double az; // degrees
+} DataStruct;
+
+// structure for buffered raw good data
+class RawData {
+public:
+ std::vector<double> L1; // cycles
+ std::vector<double> L2; // cycles
+ std::vector<double> P1; // m
+ std::vector<double> P2; // m
+ std::vector<double> ER; // m
+ std::vector<double> elev; // deg
+ std::vector<double> az; // deg
+ std::vector<int> count; // epoch count since FirstEpoch
+};
+
+// structure for computing single differences -- just counts and min,max elevation
+class SDData {
+public:
+ double elevmin,elevmax;
+ std::vector<int> count;
+};
+
+// structure for buffered DDs with biases
+class DDData {
+public:
+ double L1bias,L2bias;
+ double prevL1,prevL2;
+ // these vectors and count must remain parallel
+ std::vector<double> DDL1,DDL2,DDP1,DDP2,DDER; // data for each point
+ std::vector<int> count; // count for each point
+ std::vector<int> resets; // collection of indexes into
+ // count[] where bias is reset
+ //DDData(void) : last_buffer_index(0) {};
+};
+
+// both reference and unknown positions
+class Station {
+public:
+ bool fixed; // if true, hold position fixed, else solve for it
+ bool usePRS; // if true, use ave. PR solution as position
+ gpstk::Position pos; // either known or solution or apriori
+ gpstk::PRSolution PRS; // pseudorange solution, includes clock bias
+ gpstk::Stats<double> PRSXstats; // stats on pseudorange solution
+ gpstk::Stats<double> PRSYstats; // stats on pseudorange solution
+ gpstk::Stats<double> PRSZstats; // stats on pseudorange solution
+
+ double ant_azimuth; // (relative) orientation of the antenna dipole
+
+ std::map<gpstk::GSatID,DataStruct> RawDataMap;
+ // cleaned, raw data at current epoch
+ gpstk::DayTime time; // timetag (SolutionEpoch) of RawDataMap
+
+ // these buffers must remain parallel
+ std::map<gpstk::GSatID,RawData> RawDataBuffers;
+ // buffers of good raw data
+ std::vector<double> ClockBuffer; // buffer of clock solution (m)
+ std::vector<double> ClkSigBuffer;// buffer of clock solution sigma (m)
+ std::vector<double> RxTimeOffset;// SolutionEpoch minus RxTimetag (sec)
+ // TD not used? used in OutputClockData
+ std::vector<int> CountBuffer; // epoch count since FirstEpoch - if data exists
+
+ std::string TropType; // label from input giving type of trop model
+ gpstk::TropModel *pTropModel; // chosen trop model (defined in CommandInput)
+ double temp; // temperature in degrees Celsius
+ double press; // pressure in mbars at sealevel
+ double rhumid; // relative humidity in % (0-100)
+
+ Station(void) throw(); // empty and only constructor
+ ~Station(void) throw(); // destructor - free trop model
+};
+
+Station& findStationInList(std::map<std::string,Station>& SL, std::string& label);
+
+// Rinex observation input files
+class ObsFile {
+public:
+ std::string name; // file name, not including path
+ std::string label; // Station label to which this obs file belongs
+ gpstk::RinexObsStream ins; // stream for reading
+ // TD use pointer -- operator= does not work for
+ // RinexObsStream, yet operator= necessary to form
+ // vector<RinexObsStream>
+ gpstk::RinexObsHeader Rhead;// RINEX header record (for reading)
+ gpstk::RinexObsData Robs; // RINEX observation record (for reading)
+ int nread; // number of records read (-1=unopened, 0=header read)
+ bool valid; // set false if unopened or at EOF
+ bool getNext; // flag used by ReadNextObs to synchronize reading
+ int inC1,inP1,inP2; // indexes in RINEX header for pseudorange
+ int inL1,inL2; // indexes in RINEX header for carrier phase
+ int inD1,inD2,inS1,inS2; // needed or used ??
+ ObsFile(void) throw(); // empty constructor
+ ObsFile(const ObsFile& of) throw(); // copy constructor
+ // (need for vector<ObsFile>)
+ ~ObsFile(void); // destructor
+ ObsFile& operator=(const ObsFile& of) throw(); // assignment operator
+ // (need for copy c'tor)
+};
+
+#endif
+// nothing below this
+//------------------------------------------------------------------------------------
+
diff --git a/dev/apps/geomatics/relposition/DoubleDifference.cpp b/dev/apps/geomatics/relposition/DoubleDifference.cpp
new file mode 100644
index 0000000..0bef58a
--- /dev/null
+++ b/dev/apps/geomatics/relposition/DoubleDifference.cpp
@@ -0,0 +1,426 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file DoubleDifference.cpp
+ * Form double differences and buffer them, for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD DoubleDifference.cpp make small limit on DD buff size an input parameter
+// TD DoubleDifference.cpp do we allow 'gaps' in ref sat's data?
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+void ComputeSingleDifferences(string baseline, map<SDid,RawData>& SDmap);
+int ComputeDoubleDifferences(map<SDid,RawData>& SDmap);
+//int OutputDDData(void); // DataIO.cpp
+
+//------------------------------------------------------------------------------------
+// other prototypes
+bool ElevationMask(double elevation, double azimuth); // ElevationMask.cpp
+
+//------------------------------------------------------------------------------------
+int DoubleDifference(void)
+{
+try {
+ int n,i,j,k;
+ // map to hold all buffered single differences for one baseline
+ map<SDid,RawData> SDmap;
+
+ if(CI.Verbose) oflog << "BEGIN DoubleDifference()" << endl;
+
+ // clear any existing DDs
+ DDDataMap.clear();
+
+ // loop over baselines
+ for(n=0; n<Baselines.size(); n++) {
+
+ // ----------------------------------------------------------
+ // for this baseline, compute all SDs, then DDs, and buffer them
+ if(CI.Verbose) oflog << "DoubleDifference() for baseline "
+ << Baselines[n] << endl;
+
+ // clear the SD map
+ SDmap.clear();
+
+ // ----------------------------------------------------------
+ // compute all single differences for this baseline
+ // give it same ordering as Baseline
+ ComputeSingleDifferences(Baselines[n],SDmap);
+
+ // loop over SD data, edit small ones and dump summary
+ if(CI.Verbose) oflog << "Single difference summary for baseline "
+ << Baselines[n] << endl;
+
+ vector<SDid> Remove; // these will be small dataset to delete later
+
+ map<SDid,RawData>::const_iterator kt;
+ for(k=1,kt=SDmap.begin(); kt != SDmap.end(); k++,kt++) {
+
+ if(CI.Verbose) {
+ oflog << " " << setw(2) << k << " " << kt->first
+ << " " << setw(5) << kt->second.count.size();
+ if(kt->second.count.size() > 0)
+ oflog << " " << setw(5) << kt->second.count.at(0) << " - "
+ << setw(5) << kt->second.count.at(kt->second.count.size()-1);
+ else
+ oflog << " na - na";
+
+ // gaps - (count : number of pts)
+ if(kt->second.count.size() > 0) { // gcc needs this ...
+ for(i=0; i<kt->second.count.size()-1; i++) {
+ j = kt->second.count.at(i+1) - kt->second.count.at(i);
+ if(j > 1) oflog
+ << " (" << kt->second.count.at(i)+1 << ":" << j-1 << ")";
+ }
+ }
+ }
+
+ // ignore small datasets
+ if(kt->second.count.size() < 10) { // TD make input parameter
+ Remove.push_back(kt->first);
+ if(CI.Verbose) oflog << " **Rejected";
+ }
+
+ if(CI.Verbose) oflog << endl;
+
+ } // end summary loop
+
+ // delete marked SD buffers
+ for(i=0; i<Remove.size(); i++) SDmap.erase(Remove[i]);
+
+ // ----------------------------------------------------------
+ // now compute double differences - according to timetable
+ if(ComputeDoubleDifferences(SDmap)) return 1;
+
+ } // end loop over baselines
+
+ // dump buffers to a file
+ // no - do after editing OutputDDData();
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end DoubleDifference()
+
+//------------------------------------------------------------------------------------
+// Compute all single differences 'site1' - 'site2', using the RawDataBuffers in
+// Stations[site], and store the results in the given map<SDid,RawData>.
+void ComputeSingleDifferences(string baseline, map<SDid,RawData>& SDmap)
+{
+try {
+ int i,j,beg,end;
+ GSatID sat;
+
+ // decompose the baseline
+ string site1=StringUtils::word(baseline,0,'-');
+ string site2=StringUtils::word(baseline,1,'-');
+
+ // find the beginning and ending *counts* of good data for this baseline
+ if(QueryTimeTable(baseline,beg,end)) {
+ oflog << "ERROR - baseline " << baseline
+ << " not found in timetable. No single differences computed." << endl;
+ return;
+ }
+
+ // find satellites in common
+ map<GSatID,RawData>::const_iterator it1,it2;
+
+ // loop over satellites at first site
+ for(it1 = Stations[site1].RawDataBuffers.begin();
+ it1 != Stations[site1].RawDataBuffers.end(); it1++) {
+
+ sat = it1->first;
+ // it1->second is RawData={ L1,L2,P1,P2,elev,az,count buffers = vector<> }
+
+ // does this sat have data at the other station?
+ it2 = Stations[site2].RawDataBuffers.find(sat);
+ if(it2 == Stations[site2].RawDataBuffers.end()) continue; // no
+
+ // compute single differences for this satellite
+ // here is where you define the ordering of sites: first(1) - second(2)
+ SDid sdid(site1,site2,sat);
+ RawData sddata;
+
+ // loop over epochs, finding common data. start and stop the loop
+ // at times determined by the timetable, NOT by the raw data buffers.
+ i = j = 0;
+ while(i < it1->second.count.size() && j < it2->second.count.size()) {
+
+ // impose limits from timetable
+ if(it1->second.count[i] > end) break;
+ else if(it2->second.count[j] > end) break;
+ else if(it1->second.count[i] < beg) i++;
+ else if(it2->second.count[j] < beg) j++;
+ // i and j are the same count (epoch)
+ else if(it1->second.count[i] == it2->second.count[j]) {
+ // reject data below MinElevation here
+ //if(it1->second.elev[i] > CI.MinElevation &&
+ //it2->second.elev[j] > CI.MinElevation) {
+ if(ElevationMask(it1->second.elev[i],it1->second.az[i]) &&
+ ElevationMask(it2->second.elev[j],it2->second.az[j])) {
+
+ // buffer the differences
+ sddata.count.push_back(it1->second.count[i]);
+ sddata.L1.push_back(it1->second.L1[i] - it2->second.L1[j]);
+ sddata.L2.push_back(it1->second.L2[i] - it2->second.L2[j]);
+ sddata.P1.push_back(it1->second.P1[i] - it2->second.P1[j]);
+ sddata.P2.push_back(it1->second.P2[i] - it2->second.P2[j]);
+ sddata.ER.push_back(it1->second.ER[i] - it2->second.ER[j]);
+ sddata.elev.push_back(it1->second.elev[i]);
+
+ } // end if elevation is ok
+
+ // next epoch
+ i++;
+ j++;
+ }
+ // i is behind j in time(count)
+ else if(it1->second.count[i] < it2->second.count[j])
+ i++;
+ // i is ahead of j in time(count)
+ else
+ j++;
+
+ } // end while
+
+ // save it in the map
+ SDmap[sdid] = sddata;
+
+ } // end loop over satellites at first site
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Assume SDmap is all for the same baseline
+int ComputeDoubleDifferences(map<SDid,RawData>& SDmap)
+{
+try {
+ bool frst,ok;
+ int i,j,k,indx,count,ddsign;
+ long nn1,nn2;
+ double ddL1,ddL2,ddER,ddP1,ddP2,dd,db1,db2;
+ DayTime tt,ttnext; // ttnext is the time of the next reference satellite switch
+ //SDid sid,ref; // SDid of the current satellite and reference satellite
+ map<SDid,int> Inext; // index in count (all) buffers which is to be processed next
+ map<SDid,RawData>::const_iterator it;
+
+ if(SDmap.size() == 0) return 0;
+
+ // initialize the 'next index' map to zero
+ // find the smallest (earliest) count
+ frst = true;
+ for(it=SDmap.begin(); it != SDmap.end(); it++) {
+ int jj=0;
+ Inext[it->first] = jj;
+ if(frst || it->second.count[0] < count) {
+ count = it->second.count[0];
+ frst = false;
+ }
+ }
+
+ // ref will be the SDid for the reference satellite
+ SDid ref = SDmap.begin()->first; // ref.sat is TBD by timetable
+
+ // loop over epochs in the SDs
+ ttnext = DayTime::BEGINNING_OF_TIME;
+ while(1) {
+ // time at this count
+ tt = FirstEpoch + count * CI.DataInterval;
+
+ // get the reference satellite at this time
+ if(tt > ttnext) {
+ ttnext = tt;
+ if(QueryTimeTable(ref, ttnext)) { // error - timetable failed
+ oflog << "DD: Error - failed to find reference from timetable at "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << " count "
+ << count << " for baseline " << ref.site1 << "-" << ref.site2 << endl;
+ return 1;
+ }
+ if(CI.Verbose) oflog << "DD: reference is set to " << ref << " at "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g")
+ << " count " << count << endl;
+ }
+
+ // does reference satellite have data at this count?
+ if(SDmap[ref].count[Inext[ref]] != count) {
+ oflog << "Error - failed to find reference data " << ref << " at "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ // TD return here, or just skip the epoch?
+ // question is do we allow 'holes' in ref sat's data?
+ return 1;
+ }
+
+ // compute DDs
+ for(it=SDmap.begin(); it != SDmap.end(); it++) {
+
+ // sid is the SDid for the current satellite
+ SDid sid = it->first;
+ indx = Inext[sid];
+
+ // end of buffer has been reached
+ if(Inext[sid] >= SDmap[sid].count.size()) continue;
+
+ if(sid == ref) continue; // ignore the reference
+
+ // no data for this satellite at this count
+ if(SDmap[sid].count[indx] != count) continue;
+
+ // compute DD phases and DD nominal range
+ ddL1 = wl1 * (SDmap[sid].L1[indx] - SDmap[ref].L1[Inext[ref]]);
+ ddL2 = wl2 * (SDmap[sid].L2[indx] - SDmap[ref].L2[Inext[ref]]);
+ ddP1 = SDmap[sid].P1[indx] - SDmap[ref].P1[Inext[ref]];
+ ddP2 = SDmap[sid].P2[indx] - SDmap[ref].P2[Inext[ref]];
+ ddER = (SDmap[sid].ER[indx] - SDmap[ref].ER[Inext[ref]]);
+
+ // get the appropriate DDData from the map, or create a new one
+ map<DDid,DDData>::iterator jt;
+ DDid ddid((ref.ssite == 1 ? ref.site1 : ref.site2),
+ (ref.ssite == 1 ? ref.site2 : ref.site1),sid.sat,ref.sat);
+ if(DDDataMap.find(ddid) == DDDataMap.end()) {
+ // create a new DDData
+ DDData tddb;
+ dd = (-ddL1+ddER)/wl1;
+ nn1 = int(dd + (dd > 0 ? 0.5 : -0.5));
+ tddb.L1bias = wl1 * nn1;
+ dd = (-ddL2+ddER)/wl2;
+ nn2 = int(dd + (dd > 0 ? 0.5 : -0.5));
+ tddb.L2bias = wl2 * nn2;
+ oflog << " Phase bias (initial) on " << ddid
+ << " at " << setw(3) << count << " "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g")
+ << " L1: " << setw(14) << nn1 << " L2: " << setw(14) << nn2 << endl;
+ //tddb.lastresetcount = count;
+ tddb.resets.push_back(tddb.count.size()); // always one at beginning
+ tddb.prevL1 = (ddL1-ddER)+tddb.L1bias;
+ tddb.prevL2 = (ddL2-ddER)+tddb.L2bias;
+ DDDataMap[ddid] = tddb;
+ }
+
+ // get the current DDData structure, and relative sign
+ jt = DDDataMap.find(ddid); // never fail...
+ ddsign = DDid::compare(ddid,jt->first);
+ DDData& ddb=jt->second;
+ ok = true; // if ok, buffer this DDData = ddb
+
+ // reset bias?
+ db1 = (ddsign*(ddL1-ddER) + ddb.L1bias - ddb.prevL1)/wl1;
+ db2 = (ddsign*(ddL2-ddER) + ddb.L2bias - ddb.prevL2)/wl2;
+ if((CI.Frequency != 2 && fabs(db1) > CI.PhaseBiasReset) ||
+ (CI.Frequency != 1 && fabs(db2) > CI.PhaseBiasReset)) {
+ long ndb1 = long(db1 + (db1 > 0 ? 0.5 : -0.5));
+ long ndb2 = long(db2 + (db2 > 0 ? 0.5 : -0.5));
+ oflog << " Phase bias (reset ) on " << ddid
+ << " at " << setw(3) << count << " "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g")
+ << " L1: " << setw(14) << ndb1 << " L2: " << setw(14) << ndb2 << endl;
+ ddb.L1bias -= wl1 * ndb1;
+ ddb.L2bias -= wl2 * ndb2;
+ //ddb.lastresetcount = count;
+ ddb.resets.push_back(ddb.count.size());
+ }
+
+ // remove the bias from the data
+ ddL1 += ddsign * ddb.L1bias;
+ ddL2 += ddsign * ddb.L2bias;
+
+ // save for next time
+ ddb.prevL1 = ddsign*(ddL1-ddER);
+ ddb.prevL2 = ddsign*(ddL2-ddER);
+
+ // buffer the debiased DDs
+ ddb.DDL1.push_back(ddsign*ddL1);
+ ddb.DDL2.push_back(ddsign*ddL2);
+ ddb.DDP1.push_back(ddsign*ddP1);
+ ddb.DDP2.push_back(ddsign*ddP2);
+ ddb.DDER.push_back(ddsign*ddER);
+ ddb.count.push_back(count);
+
+ // increment Inext
+ Inext[sid]++;
+
+ } // end loop over SD's in SDmap
+
+ Inext[ref]++;
+
+ // find the next count
+ // quit when all Inext are at end
+ frst = true;
+ ok = false;
+ for(it=SDmap.begin(); it != SDmap.end(); it++) {
+ if(Inext[it->first] < SDmap[it->first].count.size()) {
+ if(frst || it->second.count[Inext[it->first]] < count) {
+ count = it->second.count[Inext[it->first]];
+ frst = false;
+ }
+ ok = true;
+ }
+ }
+
+ if(!ok) break;
+
+ } // end while loop over epochs
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/EditDDs.cpp b/dev/apps/geomatics/relposition/EditDDs.cpp
new file mode 100644
index 0000000..4fbef0c
--- /dev/null
+++ b/dev/apps/geomatics/relposition/EditDDs.cpp
@@ -0,0 +1,788 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EditDDs.cpp
+ * Edit buffered double differences for outliers, cycle slips and isolated
+ * points for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD EditDDs.cpp make various numbers input parameters
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+#include <vector>
+
+// GPSTk
+#include "Matrix.hpp"
+#include "Stats.hpp"
+#include "RobustStats.hpp"
+//#include "SRIFilter.hpp"
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+static int ngood,nbad; // number good data, number of data marked bad
+static vector<int> mark; // parallel to count and data vectors, mark bad data
+static ofstream tddofs; // output stream for OutputTDDFile
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+int EditDDResets(const DDid& ddid, DDData& dddata);
+int EditDDIsolatedPoints(const DDid& ddid, DDData& dddata);
+int EditDDSlips(const DDid& ddid, DDData& dddata, int frequency);
+int EditDDOutliers(const DDid& ddid, DDData& dddata, int frequency);
+//void LSPolyFunc(Vector<double>& X, Vector<double>& f, Matrix<double>& P);
+// prototypes -- DataOutput.cpp
+int OutputRawDData(const DDid& ddid, const DDData& dddata, const vector<int>& mark);
+int OutputDDData(void);
+
+//------------------------------------------------------------------------------------
+int EditDDs(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN EditDDs()" << endl;
+
+ if(!CI.OutputTDDFile.empty()) {
+ tddofs.open(CI.OutputTDDFile.c_str(),ios::out);
+ if(tddofs) {
+ oflog << "Opened file " << CI.OutputTDDFile
+ << " for triple difference and cycle slip output." << endl;
+ tddofs << "# " << Title << endl;
+ tddofs << "TDS site site sat sat freq iter cnt week sow "
+ << "dcnt TD(m) slip(cy) frac\n";
+ tddofs << "SED site site sat sat freq iter cnt week sow "
+ << "DDres(m) TDres(m)\n";
+ }
+ else {
+ oflog << "Warning - Failed to open file " << CI.OutputTDDFile << endl;
+ }
+ }
+
+ if(CI.Verbose) {
+ oflog << " TUR site site sat sat iter N Average StdDev SigYX"
+ << " Median M-est MAD\n";
+ oflog << " SUR site site sat sat iter N Average StdDev SigYX"
+ << " Median M-est MAD\n";
+ }
+
+ int i,j,k;
+ map<DDid,DDData>::iterator it;
+
+ // -------------------------------------------------------------------
+ // delete DD buffers that are too small, or that user wants to exclude
+ // also compute maxCount, the largest value of Count seen in all baselines
+ maxCount = 0;
+ vector<DDid> DDdelete;
+ for(it = DDDataMap.begin(); it != DDDataMap.end(); it++) {
+
+ // is it too small?
+ if(it->second.count.size() < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+
+ // prepare 'mark' vector
+ mark.assign(it->second.count.size(),1);
+ ngood = mark.size();
+ nbad = 0;
+
+ // remove points where bias had to be reset multiple times
+ k = EditDDResets(it->first, it->second);
+ if(k || ngood < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+
+ // remove isolated points
+ k = EditDDIsolatedPoints(it->first, it->second);
+ if(k || ngood < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+
+ // find and remove slips
+ if(CI.Frequency != 2) { // L1
+ k = EditDDSlips(it->first, it->second,1);
+ if(k || ngood < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+ }
+ if(CI.Frequency != 1) { // L2
+ k = EditDDSlips(it->first, it->second,2);
+ if(k || ngood < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+ }
+
+ // find and remove outliers
+ if(CI.Frequency != 2) { // L1
+ k = EditDDOutliers(it->first, it->second,1);
+ if(k || ngood < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+ }
+ if(CI.Frequency != 1) { // L2
+ k = EditDDOutliers(it->first, it->second,2);
+ if(k || ngood < CI.MinDDSeg) {
+ DDdelete.push_back(it->first);
+ continue;
+ }
+ }
+
+ // output raw data with mark
+ OutputRawDData(it->first, it->second, mark);
+
+ // use vector 'mark' to delete data
+ if(nbad > 0) {
+ vector<double> nDDL1,nDDL2,nDDP1,nDDP2,nDDER;
+ vector<int> ncount;
+ for(i=0; i<it->second.count.size(); i++) {
+ if(mark[i] == 1) {
+ nDDL1.push_back(it->second.DDL1[i]);
+ nDDL2.push_back(it->second.DDL2[i]);
+ nDDP1.push_back(it->second.DDP1[i]);
+ nDDP2.push_back(it->second.DDP2[i]);
+ nDDER.push_back(it->second.DDER[i]);
+ ncount.push_back(it->second.count[i]);
+ }
+ }
+ it->second.DDL1 = nDDL1;
+ it->second.DDL2 = nDDL2;
+ it->second.DDP1 = nDDP1;
+ it->second.DDP2 = nDDP2;
+ it->second.DDER = nDDER;
+ it->second.count = ncount;
+ // ignore resets from now on...
+ }
+
+ // find the max count
+ if(it->second.count[it->second.count.size()-1] > maxCount)
+ maxCount = it->second.count[it->second.count.size()-1];
+ }
+
+ // close the output file
+ tddofs.close();
+ mark.clear();
+
+ // now delete the ones that were marked
+ for(i=0; i<DDdelete.size(); i++) {
+ if(CI.Verbose) oflog << setw(2) << DDdelete[i]
+ << " total = " << setw(5) << DDDataMap[DDdelete[i]].count.size()
+ << ", count = " << setw(5) << DDDataMap[DDdelete[i]].count[0]
+ << " - " << setw(5)
+ << DDDataMap[DDdelete[i]].count[DDDataMap[DDdelete[i]].count.size()-1]
+ << " -- Delete this DD dataset."
+ << endl;
+ DDDataMap.erase(DDdelete[i]);
+ }
+ DDdelete.clear();
+
+ // -------------------------------------------------------------------
+ // output DD summary
+ if(CI.Screen) {
+ cout << "Double differences summary:" << endl;
+ for(k=1,it=DDDataMap.begin(); it!=DDDataMap.end(); it++,k++) {
+ cout << " " << setw(2) << k << " " << it->first
+ << " " << setw(5) << it->second.count.size()
+ << " " << setw(5) << it->second.count[0]
+ << " - " << setw(5) << it->second.count[it->second.count.size()-1];
+ for(i=0; i<it->second.count.size()-1; i++) {
+ j = it->second.count.at(i+1) - it->second.count.at(i);
+ if(j > 1)
+ cout << " (" << it->second.count.at(i)+1 << ":" << j-1 << ")";
+ }
+ cout << endl;
+ }
+ }
+ if(CI.Verbose) {
+ oflog << "Double differences summary:" << endl;
+ for(k=1,it=DDDataMap.begin(); it!=DDDataMap.end(); it++,k++) {
+ // output
+ oflog << " " << setw(2) << k << " " << it->first
+ << " " << setw(5) << it->second.count.size()
+ << " " << setw(5) << it->second.count[0]
+ << " - " << setw(5) << it->second.count[it->second.count.size()-1];
+ // gaps - (count : number of pts)
+ for(i=0; i<it->second.count.size()-1; i++) {
+ j = it->second.count.at(i+1) - it->second.count.at(i);
+ if(j > 1)
+ oflog << " (" << it->second.count.at(i)+1 << ":" << j-1 << ")";
+ }
+ oflog << endl;
+ }
+ }
+
+ // dump buffers to a file
+ OutputDDData();
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end EditDDs()
+
+//------------------------------------------------------------------------------------
+// There is no provision in DDBase for resetting a bias. This would imply
+// solving for different biases (separated in time) for the same DDid.
+// Therefore, this routine simply deletes all but the largest unbroken segment
+// separated by resets.
+int EditDDResets(const DDid& ddid, DDData& dddata)
+{
+try {
+ int i,j,ibeg,iend;
+
+ // resets[0] will always be the initial count
+ if(dddata.resets.size() <= 1) return 0;
+
+ oflog << " Warning - DD " << ddid << " had " << dddata.resets.size()-1
+ << " resets between " << dddata.count[1]
+ << " and " << dddata.count[dddata.count.size()-1] << " :";
+ for(i=1; i<dddata.resets.size(); i++)
+ oflog << " " << dddata.count[dddata.resets[i]]
+ << "[" << dddata.resets[i] << "]";
+ oflog << endl;
+
+ //for(i=1; i<dddata.resets.size(); i++) {
+ // // difference in index
+ // int di = dddata.resets[i] - dddata.resets[i-1];
+ // // difference in counts
+ // int dc = dddata.count[dddata.resets[i]] - dddata.count[dddata.resets[i-1]];
+ // j = dddata.resets[i];
+ // // mark it bad
+ // if(dc < 12 && mark[j]==1) { // TD make 12 an input parameter
+ // mark[j] = 0;
+ // ngood--;
+ // nbad++;
+ // }
+ //}
+
+ // find the largest segment between resets
+ // NB this assumes nothing yet 'marked'
+ ibeg = 0;
+ iend = dddata.resets[1];
+ for(i=2; i<=dddata.resets.size(); i++) {
+ if(i == dddata.resets.size()) // last point
+ j = dddata.count.size();
+ else
+ j = dddata.resets[i];
+
+ if(j - dddata.resets[i-1] > iend-ibeg) {
+ ibeg = dddata.resets[i-1];
+ iend = j;
+ }
+ }
+
+ if(CI.Verbose) oflog << " Delete data due to reset for DD " << ddid
+ << " in the range " << ibeg << " to " << iend << endl;
+
+ // mark all points from beginning to just before the 'ibeg' reset
+ for(i=0; i<ibeg; i++) if(mark[i]==1) {
+ mark[i] = 0;
+ ngood--;
+ nbad++;
+ }
+
+ // mark all points from 'iend' reset to the end
+ for(i=iend; i<dddata.count.size(); i++) if(mark[i]==1) {
+ mark[i] = 0;
+ ngood--;
+ nbad++;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int EditDDIsolatedPoints(const DDid& ddid, DDData& dddata)
+{
+try {
+ int i,j,gappast,gapfuture;
+
+ // loop over all counts
+ // i is current (good) point, j is the next good point
+ i = 0; while(i<dddata.count.size() & mark[i]==0) i++; // find first good pt
+
+ gapfuture = CI.MaxGap;
+ while(i < dddata.count.size()) {
+ gappast = gapfuture;
+
+ j = i+1; while(j<dddata.count.size() & mark[j]==0) j++;// find next good pt
+
+ if(j < dddata.count.size()) gapfuture = dddata.count[j] - dddata.count[i];
+ else gapfuture = CI.MaxGap;
+
+ if(gappast >= CI.MaxGap && gapfuture >= CI.MaxGap) {
+ if(CI.Verbose) oflog << " Mark isolated " << ddid
+ << " " << dddata.count[i] << endl;
+ mark[i] = 0;
+ ngood--;
+ nbad++;
+ }
+
+ i = j;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int EditDDSlips(const DDid& ddid, DDData& dddata, int frequency)
+{
+try {
+ int i,j,k,n,m,tdcount,tddt,ii,iter;
+ double slip,fslip,tol;
+ vector<int> slipindex;
+ vector<double> td,slipsize;
+ DayTime tt;
+ TwoSampleStats<double> tsstats;
+
+ // -------------------------------------- define td tolerance for slips
+ const int iter_limit = 3; // this allows iter_limit-1 slips to be fixed
+ const double tolerance = 0.5; // cycles
+ // 3.4 const double tol = 0.5; // cycles -- TD make input
+ // 3.2 revert tol = 0.9; // cycles
+//#define turnoffslips 1
+
+ // iterate
+ for(iter=1; iter<=iter_limit; iter++) {
+ if(iter == 1) tol = tolerance;
+ if(iter > 1) tol = 0.6 * tolerance;
+ td.clear();
+ slipsize.clear();
+ slipindex.clear();
+ tsstats.Reset();
+
+ // -------------------------------------- find slips
+ // compute triple differences
+ // j is the index of the previous good point
+ for(k=0,j=-1,i=0; i<dddata.count.size(); i++) {
+ if(mark[i] == 0) {
+ //oflog << "Data 1 marked at count " << dddata.count[i] << endl;
+ continue;
+ }
+ if(j == -1) { j = i; continue; }
+ //tdcount = dddata.count[i];
+ tt = FirstEpoch + CI.DataInterval * dddata.count[i];
+ tddt = dddata.count[i]-dddata.count[j];
+ td.push_back(
+ (frequency == 1 ? dddata.DDL1[i] - dddata.DDL1[j]
+ : dddata.DDL2[i] - dddata.DDL2[j] )
+ - (dddata.DDER[i] - dddata.DDER[j])
+ );
+ tsstats.Add(dddata.count[i],td[k]);
+ // slip in cycles
+ slip = td[k]/(frequency == 1 ? wl1 : wl2);
+ // fractional part of slip
+ fslip = fabs(fmod(slip,1.0));
+ if(fslip > 0.5) fslip = 1.0-fslip;
+#ifndef turnoffslips
+ // look for slips
+ // if frac > 0.2, call it a slip anyway and hope it will be combined
+ if(fabs(slip) > tol) { // || fslip > 0.2)
+ oflog << " Warning - DD " << ddid << " L" << frequency << fixed
+ << " slip " << setprecision(3) << setw(8) << slip << " cycles, at "
+ << tt.printf(" %4F %10.3g = %Y/%02m/%02d %2H:%02M:%6.3f")
+ << " = count " << dddata.count[i] << " on iteration " << iter
+ << endl;
+
+ // first see if it can be combined with previous slip
+ n = slipindex.size();
+ if(n>0 && dddata.count[i]-dddata.count[slipindex[n-1]] < CI.MaxGap) {
+ // combine these slips
+ slipsize[n-1] += slip;
+ // mark all points from old slip to pt before this as bad
+ for(m=slipindex[n-1]; m<i; m++) {
+ mark[m] = 0;
+ ngood--;
+ nbad++;
+ }
+ slipindex[n-1] = i;
+ oflog << " Warning - DD " << ddid << " L" << frequency << fixed
+ << " last two slips combined (iter " << iter << ")"
+ << endl;
+ }
+ else {
+ slipindex.push_back(i);
+ slipsize.push_back(slip);
+ }
+ }
+#endif
+ if(tddofs) {
+ tddofs << "TDS " << ddid << " L" << frequency << fixed
+ << " " << iter
+ << " " << setw(4) << dddata.count[i]
+ << " " << tt.printf("%4F %10.3g")
+ << " " << setw(3) << tddt << setprecision(6)
+ << " " << setw(11) << td[k]
+ << " " << setw(11) << slip << setprecision(3)
+ << " " << setw(8) << fslip
+ << endl; }
+
+ k++;
+ j = i;
+ } // end for loop over dddata to compute TDs
+
+ // if too small, delete the whole pass
+ if(td.size() < 10) return -1;
+
+ // print stats to log
+ if(CI.Verbose) {
+ double median,mad,mest;
+ vector<double> weights;
+ weights.resize(td.size());
+ mad = Robust::MedianAbsoluteDeviation(&td[0], td.size(), median);
+ mest = Robust::MEstimate(&td[0], td.size(), median, mad, &weights[0]);
+
+ oflog << " TUR " << ddid << " L" << frequency << fixed << setprecision(3)
+ << " " << iter
+ << " " << setw(4) << tsstats.N()
+ << " " << setw(7) << tsstats.AverageY()
+ << " " << setw(7) << tsstats.StdDevY()
+ << " " << setw(7) << tsstats.SigmaYX()
+ << " " << setw(7) << median
+ << " " << setw(7) << mest
+ << " " << setw(7) << mad
+ << endl;
+ }
+
+ // if no slips found, normal return
+ if(slipindex.size() == 0) return 0;
+ // if on last iteration, don't bother to fix...
+ if(iter == iter_limit) break;
+ // TD check for too many slips -> reject the whole pass
+
+ //if(CI.Verbose) for(i=0; i<slipindex.size(); i++)
+ // oflog << "Slip " << " L" << frequency << setprecision(3) << slipsize[i]
+ // << " found at count " << dddata.count[slipindex[i]] << endl;
+
+ // -------------------------------------- remove slips
+ // add a dummy..
+ slipindex.push_back(99999);
+
+ // ii is slip count, k is current correction in cycles,
+ // j is index of previous good point
+ for(k=0,j=-1,ii=0,i=0; i<dddata.count.size(); i++) {
+ if(mark[i] == 0) {
+ //oflog << "Data 2 marked at " << dddata.count[i] << endl;
+ continue;
+ }
+ tt = FirstEpoch + CI.DataInterval * dddata.count[i];
+ // fix
+ if(i == slipindex[ii]) { // new slip on this count
+ k += int(slipsize[ii] + (slipsize[ii]>0 ? 0.5 : -0.5));
+ if(CI.Verbose) oflog << " Fix L" << frequency << " slip at count "
+ << dddata.count[i]
+ << " " << tt.printf("%4F %10.3g")
+ << " total mag " << k << " iteration " << iter
+ << endl;
+ ii++;
+ }
+ // fix double differences using accumulated net slip
+ if(k != 0) {
+ if(frequency == 1) dddata.DDL1[i] -= k * wl1;
+ else dddata.DDL2[i] -= k * wl2;
+ }
+ // output the slip-edited DDs and TDs
+ if(tddofs) {
+ tddofs << "SED " << ddid << fixed
+ << " L" << frequency
+ << " " << iter
+ << " " << setw(4) << dddata.count[i]
+ << " " << tt.printf("%4F %10.3g")
+ << " " << setw(11) << setprecision(6) // DD in m
+ << (frequency == 1 ? dddata.DDL1[i] : dddata.DDL2[i])
+ - dddata.DDER[i]
+ << " " << setw(11)
+ << (j == -1 ? 0.0 : // TD in m
+ (frequency == 1 ? dddata.DDL1[i] - dddata.DDL1[j] :
+ dddata.DDL2[i] - dddata.DDL2[j])
+ - (dddata.DDER[i] - dddata.DDER[j])
+ )
+ << endl;
+
+ j = i;
+
+ } // end output
+
+ } // end for loop over data to fix slips
+
+ } // end for loop over iterations
+
+ // failed - return non-zero to delete the whole segment
+ oflog << " Warning - Delete " << ddid << " L" << frequency
+ << ": unable to fix slips" << endl;
+
+ return -1;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// No - use sigma stripping
+// Process using robust least squares fit to a polynomial
+// TD consider using a straight line if size of the dataset is small.
+// Form vector of data = phase residual = raw DD phase minus DD ephemeris range
+// Compute a robust LS fit to a polynomial, compute statistics on residuals of fit.
+// Use weights and residuals normalized by RMSROF to mark outliers.
+// Data used to test this algorithm come from T202:
+// ASWA CTRA G11 G14 T202B
+// ASWA CTRA G16 G25 T202D
+// ASWA CTRA G20 G25 T202D
+int EditDDOutliers(const DDid& ddid, DDData& dddata, int frequency)
+{
+try {
+ int i,j,n,tol;
+ int N,M; // number of parameters, number of data
+ int len = int(dddata.count.size()); // length of the buffers
+ double median,mad,mest;
+ Vector<double> cnt;
+ Vector<double> dat,residuals,weights;
+ TwoSampleStats<double> tsstats;
+
+ if(len < 10) return -1;
+
+ int tolsigstrip = 10; // limit on ratio of ddph to MAD 10 1000
+ double tolsigyx = 0.02; // limit on conditional sigma 0.02 0.5
+
+ for(int iter=1; iter<=2; iter++) {
+ dat.resize(len);
+ cnt.resize(len);
+
+ // pull out the good data, count it and ...
+ for(M=0,i=0; i<len; i++) {
+ if(mark[i] == 0) continue; // skip the bad points
+
+ if(frequency == 1)
+ dat[M] = dddata.DDL1[i] - dddata.DDER[i];
+ else
+ dat[M] = dddata.DDL2[i] - dddata.DDER[i];
+ // pull out the corresponding counts
+ cnt[M] = double(dddata.count[i]);
+ // count the number of good points
+ M++;
+ }
+ if(M != len) {
+ dat.resize(M);
+ cnt.resize(M); // important -- see LSPolyFunc()
+ }
+
+ // ... compute stats on it
+ tsstats.Reset();
+ tsstats.Add(cnt,dat);
+ mad = Robust::MedianAbsoluteDeviation(&dat[0], dat.size(), median);
+ mest = Robust::MEstimate(&dat[0], dat.size(), median, mad, &weights[0]);
+
+ // print stats to log
+ if(CI.Verbose) {
+ oflog << " SUR " << ddid << " L" << frequency << " " << iter
+ << fixed << setprecision(3)
+ << " " << setw(4) << tsstats.N()
+ << " " << setw(7) << tsstats.AverageY()
+ << " " << setw(7) << tsstats.StdDevY()
+ << " " << setw(7) << tsstats.SigmaYX()
+ << " " << setw(7) << median
+ << " " << setw(7) << mest
+ << " " << setw(7) << mad
+ << endl;
+ }
+
+ // only continue if the conditional sigma is high...
+ if(tsstats.SigmaYX() <= tolsigyx) return 0; // success
+
+ oflog << " Warning - high sigma (" << iter << ") for "
+ << ddid << " L" << frequency << " : " << fixed
+ << setprecision(3) << setw(7) << tsstats.SigmaYX() << endl;
+
+ // if this is the second iteration, failure
+ if(iter == 2) break;
+
+ // sigma stripping ... robust fit to quadratic is too slow...
+ for(n=j=0,i=0; i<len; i++) {
+ if(mark[i] == 0) continue; // skip the bad points
+
+ //oflog << "HIS " << ddid
+ // << " L" << frequency << " " << setw(3) << i
+ // << " " << setw(3) << dddata.count[i]
+ // << fixed << setprecision(3)
+ // << " " << setw(8) << dat[j]
+ // << endl;
+
+ if(fabs(dat[j]) > tolsigstrip*mad) {
+ if(CI.Verbose) oflog << " Warning - mark outlier " << ddid
+ << " L" << frequency << fixed << setprecision(3)
+ << " count " << dddata.count[i]
+ << " ddph " << dat[j]
+ << " res/sig " << fabs(dat[j])/(tolsigstrip*mad)
+ << endl;
+ mark[i] = 0;
+ ngood--;
+ nbad++;
+ n++;
+ }
+ j++;
+ }
+
+ } // end iteration loop
+
+ // failed - return non-zero to delete the whole segment
+ oflog << " Warning - Delete " << ddid << " L" << frequency
+ << " : unable to sigma strip" << endl;
+
+ return -1;
+
+/* this is too slow...
+ // leave LSdata unchanged; SRIFilter will take data input, output weights.
+ weights = LSdata;
+
+ // compute a robust least squares fit to a polynomial
+ N = 3; // degree of polynomial .. TD consider 2 if dataset is small
+ Vector<double> sol(N);
+ Matrix<double> cov(N,N);
+ SRIFilter robfit(N);
+ //robfit.doVerbose = true; // temp
+ robfit.doRobust = true;
+ robfit.doLinearize = false;
+ robfit.doWeight = false;
+ robfit.doSequential = false;
+ robfit.iterationsLimit = 10;
+ robfit.convergenceLimit = 1.e-2;
+ sol = 0.0;
+
+ // robust LS will return weights in data Vector = weights
+ i = robfit.leastSquaresEstimation(weights,sol,cov,&LSPolyFunc);
+ if(i) {
+ oflog << " Warning - outlier check: robust fit for " << ddid
+ << " returned " << i << endl;
+ if(i==-1) return i; // underdetermined
+ if(i==-2) return i; // singular
+ if(i==-3) return i; // failed to converge
+ return i; // ??
+ }
+ //if(!robfit.isValid()) // probably did not converge
+
+ // compute post-fit residual weighted statistics
+ Vector<double> f(M);
+ Matrix<double> partials(M,N);
+ LSPolyFunc(sol,f,partials); // so f = solution evaluated at each point
+
+ residuals = LSdata - f; // residuals of fit
+
+ stats.Reset();
+ stats.Add(residuals,weights); // compute weighted stats
+
+ // Loop over counts (epochs)
+ for(j=0,i=0; i<len; i++) {
+
+ if(mark[i] == 0) continue; // skip the bad points
+
+ double resnorm = fabs(residuals[j]/stats.StdDev());
+
+ if(CI.Verbose) oflog << "FIT " << ddid // TD debug?
+ << " " << setw(3) << i
+ << " " << setw(3) << dddata.count[i]
+ << fixed << setprecision(3)
+ << " " << setw(5) << weights[j]
+ << " " << setw(8) << LSdata[j]
+ << " " << setw(8) << f[j]
+ << " " << setw(8) << residuals[j]
+ << " " << setw(8) << resnorm
+ << endl;
+
+ if(weights[j] <= 0.25 && resnorm > 4.0) {
+ if(CI.Verbose) oflog << " Warning - mark outlier " << ddid
+ << fixed << setprecision(3)
+ << " count " << dddata.count[i]
+ << " weight " << weights[j]
+ << " res/sig " << resnorm
+ << endl;
+ mark[i] = 0;
+ ngood--;
+ nbad++;
+ }
+
+ j++;
+
+ } // end loop over counts
+*/
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+// compute the partials matrix P and the solution at each data point (Vector f),
+// given the solution Vector X. Called by SRIFilter::leastSquaresEstimation()
+//void LSPolyFunc(Vector<double>& X, Vector<double>& f, Matrix<double>& P)
+//{
+// try {
+// for(int i=0; i<LScount.size(); i++) {
+// double t = LScount[i] - LScount[0];
+// P(i,0) = 1.0;
+// for(int j=1; j<X.size(); j++) P(i,j) = P(i,j-1) * t;
+// }
+// f = P * X;
+// }
+// catch(Exception& e) { GPSTK_RETHROW(e); }
+//}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/EditRawDataBuffers.cpp b/dev/apps/geomatics/relposition/EditRawDataBuffers.cpp
new file mode 100644
index 0000000..fd190a7
--- /dev/null
+++ b/dev/apps/geomatics/relposition/EditRawDataBuffers.cpp
@@ -0,0 +1,216 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EditRawDataBuffers.cpp
+ * Edit raw data in the buffers, part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+int OutputRawData(void); // DataIO.cpp
+
+//------------------------------------------------------------------------------------
+int EditRawDataBuffers(void)
+{
+try {
+ int i,j,k;
+ map<string,Station>::iterator kt;
+ map<GSatID,RawData>::iterator it;
+
+ if(CI.Verbose) oflog << "BEGIN EditRawDataBuffers()" << endl;
+
+ // find the largest value of Count seen in the raw data (same will be done for DD)
+ maxCount = 0;
+ for(kt=Stations.begin(); kt != Stations.end(); kt++) {
+ vector<GSatID> Emptys;
+
+ Station& st = kt->second;
+
+ // first find and remove empty RawData's
+ for(it=st.RawDataBuffers.begin(); it != st.RawDataBuffers.end(); it++) {
+ if(it->second.elev.size() == 0)
+ Emptys.push_back(it->first);
+ else { // find the max count
+ if(it->second.count.size() > 0 &&
+ it->second.count[int(it->second.count.size())-1] > maxCount)
+ maxCount = it->second.count[int(it->second.count.size())-1];
+ }
+ }
+ // remove empty buffers
+ for(i=0; i<Emptys.size(); i++)
+ st.RawDataBuffers.erase(Emptys[i]);
+
+ // remove isolated points (single points with gaps > CI.MaxGap on both sides
+ for(it=st.RawDataBuffers.begin(); it != st.RawDataBuffers.end(); it++) {
+ RawData& rd=it->second;
+ vector<int>::iterator cjt,cit=rd.count.begin();
+ vector<double>::iterator ditL1=rd.L1.begin();
+ vector<double>::iterator ditL2=rd.L2.begin();
+ vector<double>::iterator ditP1=rd.P1.begin();
+ vector<double>::iterator ditP2=rd.P2.begin();
+ vector<double>::iterator ditER=rd.ER.begin();
+ vector<double>::iterator ditEL=rd.elev.begin();
+ vector<double>::iterator ditAZ=rd.az.begin();
+ k = CI.MaxGap+1; // k is the gap behind point i
+ while(cit != rd.count.end()) {
+ (cjt = cit)++; // cjt points to the next count
+ // gap or begin before && gap or end after
+ if(k >= CI.MaxGap && (cjt == rd.count.end() || *cjt - *cit > CI.MaxGap)) {
+ // this is an isolated pt
+ k = *cjt - *cit;
+ cit = rd.count.erase(cit); // cit now pts to the following element
+ ditL1 = rd.L1.erase(ditL1);
+ ditL2 = rd.L2.erase(ditL2);
+ ditP1 = rd.P1.erase(ditP1);
+ ditP2 = rd.P2.erase(ditP2);
+ ditER = rd.ER.erase(ditER);
+ ditEL = rd.elev.erase(ditEL);
+ ditAZ = rd.az.erase(ditAZ);
+ }
+ else {
+ k = *cjt - *cit;
+ cit++;
+ ditL1++;
+ ditL2++;
+ ditP1++;
+ ditP2++;
+ ditER++;
+ ditEL++;
+ ditAZ++;
+ }
+ }
+ }
+
+ // find the largest value of count
+ for(it=st.RawDataBuffers.begin(); it != st.RawDataBuffers.end(); it++) {
+ if(it->second.count.size() > 0 &&
+ it->second.count[int(it->second.count.size())-1] > maxCount)
+ maxCount = it->second.count[int(it->second.count.size())-1];
+ }
+
+ }
+
+ if(maxCount <= 0) {
+ oflog << "..No raw data found after EditRawDataBuffers()! Abort." << endl;
+ return 1;
+ }
+ if(CI.Verbose) oflog << "Max count is " << maxCount << endl;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int OutputRawDataBuffers(void)
+{
+try {
+ int i,j,k;
+ map<string,Station>::iterator kt;
+ map<GSatID,RawData>::const_iterator it;
+
+ if(CI.Verbose) oflog << "BEGIN OutputRawDataBuffers()" << endl;
+
+ oflog << "Raw buffered data summary : n SITE sat npts span (count,gap size) (..)"
+ << endl;
+ if(CI.Screen)
+ cout << "Raw buffered data summary : n SITE sat npts span (count,gap size) (..)"
+ << endl;
+ //DayTime tt;
+ for(kt=Stations.begin(); kt != Stations.end(); kt++) {
+ Station& st = kt->second;
+ for(k=1,it=st.RawDataBuffers.begin(); it != st.RawDataBuffers.end(); it++,k++) {
+ oflog << " " << setw(2) << k << " " << kt->first
+ << " " << it->first
+ << " " << setw(5) << it->second.count.size();
+ if(CI.Screen)
+ cout << " " << setw(2) << k << " " << kt->first
+ << " " << it->first
+ << " " << setw(5) << it->second.count.size();
+ //tt = FirstEpoch + it->second.count[0]*CI.DataInterval;
+ //oflog << " " << tt;
+ //tt += double(CI.DataInterval*it->second.count[it->second.count.size()-1]);
+ //oflog << " " << tt;
+ if(it->second.count.size() > 0) {
+ oflog << " " << setw(5) << it->second.count[0]
+ << " - " << setw(5) << it->second.count[it->second.count.size()-1];
+ if(CI.Screen)
+ cout << " " << setw(5) << it->second.count[0]
+ << " - " << setw(5) << it->second.count[it->second.count.size()-1];
+ for(i=0; i<it->second.count.size()-1; i++) {
+ j = it->second.count.at(i+1) - it->second.count.at(i);
+ if(j > 1) {
+ oflog << " (" << it->second.count.at(i)+1 << ":" << j-1 << ")";
+ if(CI.Screen)
+ cout << " (" << it->second.count.at(i)+1 << ":" << j-1 << ")";
+ }
+ }
+ }
+ oflog << endl;
+ if(CI.Screen)
+ cout << endl;
+ }
+ }
+
+ // output the raw data itself
+ // move to after Synchronize() OutputRawData();
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/ElevationMask.cpp b/dev/apps/geomatics/relposition/ElevationMask.cpp
new file mode 100644
index 0000000..36f8d72
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ElevationMask.cpp
@@ -0,0 +1,135 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ElevationMask.cpp
+ * Implement an elevation mask function for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+#include "geometry.hpp" // for DEG_TO_RAD
+
+// DDBase
+#include "DDBase.hpp"
+#include "PhaseWindup.hpp" // for SingleAxisRotation()
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+bool DefaultElevationMask(double elevation, double azimuth, double ElevCutoff);
+bool RotatedAntennaElevationMask(double elevation, double azimuth, double ElevCutoff);
+double RotatedAntennaElevation(double elevation, double azimuth);
+
+//------------------------------------------------------------------------------------
+// return 'true' if satellite data at elevation and azimuth (both in degrees)
+// is accepted.
+bool ElevationMask(double elevation, double azimuth)
+{
+try {
+ if(DefaultElevationMask(elevation,azimuth,CI.MinElevation))
+ return RotatedAntennaElevationMask(elevation, azimuth,CI.MinElevation);
+ else
+ return false;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end ElevationMask
+
+//------------------------------------------------------------------------------------
+inline bool DefaultElevationMask(double elevation, double azimuth, double ElevCutoff)
+{
+ return (elevation >= ElevCutoff);
+}
+
+//------------------------------------------------------------------------------------
+bool RotatedAntennaElevationMask(double elevation, double azimuth, double ElevCutoff)
+{
+try {
+ return ( RotatedAntennaElevation(elevation, azimuth) >= ElevCutoff );
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return the elevation of the input direction (elevation and azimuth) in a frame
+// which is rotated by angles RotateElev and RotateAzimuth. All angles in degrees.
+double RotatedAntennaElevation(double elevation, double azimuth)
+{
+try {
+ if(CI.RotatedAntennaElevation > 0.0 || CI.RotatedAntennaAzimuth > 0.0) {
+ Matrix<double> R;
+ Vector<double> rhat(3),rotated_rhat;
+
+ elevation *= DEG_TO_RAD;
+ azimuth *= DEG_TO_RAD;
+ double RotateElev = CI.RotatedAntennaElevation * DEG_TO_RAD;
+ double RotateAzimuth = CI.RotatedAntennaAzimuth * DEG_TO_RAD;
+
+ // construct the rotation matrix
+ R = SingleAxisRotation(-RotateElev,2) * SingleAxisRotation(RotateAzimuth,3);
+
+ // unit vector, Rx to SV, in ordinary geodetic frame
+ rhat(0) = ::cos(azimuth) * ::cos(elevation);
+ rhat(1) = ::sin(azimuth) * ::cos(elevation);
+ rhat(2) = ::sin(elevation);
+
+ // rotate into the frame of the (rotated) antenna
+ rotated_rhat = R * rhat;
+
+ elevation = atan2(rotated_rhat(2),RSS(rotated_rhat(0),rotated_rhat(1)));
+ elevation *= RAD_TO_DEG;
+ }
+
+ return elevation;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end RotatedAntennaElevation
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/EphemerisImprovement.cpp b/dev/apps/geomatics/relposition/EphemerisImprovement.cpp
new file mode 100644
index 0000000..23e5a90
--- /dev/null
+++ b/dev/apps/geomatics/relposition/EphemerisImprovement.cpp
@@ -0,0 +1,154 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EphemerisImprovement.cpp
+ * Implement improvements to the input satellite ephemerides, part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <list>
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+
+//------------------------------------------------------------------------------------
+int EphemerisImprovement(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN EphemerisImprovement()" << endl;
+
+ if(dynamic_cast<BCEphemerisStore*>(pEph)) {
+
+ BCEphemerisStore& BCE = dynamic_cast<BCEphemerisStore&>(*pEph);
+ list<EngEphemeris> EphList;
+
+ oflog << "EphemerisStore is broadcast ephemeris" << endl;
+ //BCE.dump(1,oflog);
+
+ long i, neph = BCE.addToList(EphList);
+ //oflog << "There are " << neph << " ephemerides in the list:" << endl;
+
+ GSatID sat;
+ map<GSatID,long> IODEmap;
+ map<GSatID,long>::iterator Imapit;
+ list<EngEphemeris>::const_iterator it;
+ // dump the list of ephemerides, and build a map of sat,IODE
+ for(i=0,it=EphList.begin(); it != EphList.end(); it++,i++) {
+ short prn = it->getPRNID();
+ sat = GSatID(prn,SatID::systemGPS);
+ if(IODEmap.find(sat) == IODEmap.end()) {
+ IODEmap[sat] = -1;
+ }
+ //oflog << " " << setw(2) << i+1
+ // << " " << sat
+ // << " TOE: " << it->getEphemerisEpoch()
+ // << " TOC: " << it->getEpochTime()
+ // << " HOW: " << it->getTransmitTime()
+ // << " IODE: " << it->getIODE()
+ // << endl;
+ }
+
+ //for(Imapit=IODEmap.begin(); Imapit != IODEmap.end(); Imapit++) {
+ // oflog << " IODEmap[" << Imapit->first << "] = " << Imapit->second << endl;
+ //}
+
+ // test change of ephemeris during the time span of the data
+ DayTime tt=FirstEpoch;
+ do {
+
+ for(Imapit=IODEmap.begin(); Imapit != IODEmap.end(); Imapit++) {
+ sat = Imapit->first;
+ try {
+ //const EngEphemeris& eph = BCE.findNearEphemeris(sat.prn,tt);
+ // findNearEphemeris is obsolete b/c when an ephemeris is updated
+ // early, its fit interval is adjusted to start (usually 16 seconds)
+ // BEFORE that of the ephemeris it is replacing.
+ // This means findEphemeris will now always find the 'best' ephemeris,
+ // whereas findNearEphemeris used to fill that purpose.
+ const EngEphemeris& eph = BCE.findEphemeris(sat,tt);
+ i = eph.getIODE();
+ if(IODEmap[sat] == -1) {
+ //oflog << "Satellite " << sat
+ // << " starts with ephemeris IODE " << i
+ // << " at epoch " << tt << endl;
+ IODEmap[sat] = i;
+ }
+ if(IODEmap[sat] != i) {
+ oflog << "Satellite " << sat
+ << " changes ephemeris (" << IODEmap[sat]
+ << " -> " << i << ") at epoch "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ IODEmap[sat] = i;
+ }
+ }
+ catch(EphemerisStore::NoEphemerisFound& nef) { continue; }
+ }
+
+ tt += CI.DataInterval;
+
+ } while(tt < LastEpoch);
+
+ }
+
+ if(dynamic_cast<SP3EphemerisStore*>(pEph)) {
+
+ SP3EphemerisStore& SP3E = dynamic_cast<SP3EphemerisStore&>(*pEph);
+
+ oflog << "EphemerisStore is SP3 ephemeris" << endl;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end EphemerisImprovement()
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/Estimation.cpp b/dev/apps/geomatics/relposition/Estimation.cpp
new file mode 100644
index 0000000..a39bd7f
--- /dev/null
+++ b/dev/apps/geomatics/relposition/Estimation.cpp
@@ -0,0 +1,1611 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Estimation.cpp
+ * Solve estimation problem using linearized least squares, part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD Estimation.cpp SRIF convergence parameters -> input parameters
+// TD Estimation.cpp For L3 : average DD WL range-phase to solve for widelane bias,
+// TD Estimation.cpp use this to solve for biases, then allow fixing of biases.
+// TD Estimation.cpp Need to account for signs in single diff
+// TD Estimation.cpp Singular problems in Solve
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+#include "Vector.hpp"
+#include "Matrix.hpp"
+#include "Namelist.hpp"
+#include "SRIFilter.hpp"
+#include "PreciseRange.hpp"
+#include "Stats.hpp"
+#include "RobustStats.hpp"
+#include "geometry.hpp"
+
+// DDBase
+#include "DDBase.hpp"
+#include "index.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+ // called by ConfigureEstimation(), which is Configure(3)
+void DefineStateVector(void);
+void DefineLSProblem(void);
+string ComposeName(const string& site1, const string& site2,
+ const GSatID& sat1, const GSatID& sat2);
+string ComposeName(const DDid& ddid);
+void DecomposeName(const string& label, string& site1, string& site2,
+ GSatID& sat1, GSatID& sat2);
+ // called by Estimation() -- inside the loop
+int EditDDdata(int n);
+int ModifyState(int n);
+int InitializeEstimator(void);
+int aPrioriConstraints(void);
+int FillDataVector(int count);
+void StochasticModel(int count, Namelist& DNL, Matrix<double>& MCov);
+void EvaluateLSEquation(Vector<double>& X,Vector<double>& f,Matrix<double>& P);
+int MeasurementUpdate(Matrix<double>& P, Vector<double>& f, Matrix<double>& MC);
+int Solve(void);
+int UpdateNominalState(void);
+void OutputIterationResults(bool final);
+int IterationControl(int iter_n);
+void OutputFinalResults(int iret);
+double RMSResidualOfFit(int N, Vector<double>& dX, bool final=false);
+
+//------------------------------------------------------------------------------------
+// local data
+static int N,M; // lengths of state and data
+static Namelist StateNL; // state vector namelist
+static Vector<double> State; // state vector
+static Vector<double> dX; // update to state vector
+static Matrix<double> Cov; // covariance matrix
+static Namelist DataNL; // data vector namelist
+static Vector<double> Data; // data vector
+static Matrix<double> MeasCov; // measurement covariance matrix
+static Matrix<double> Partials; // partials matrix
+static bool Biasfix; // if true, fix estimated biases and solve for
+ // position states only -- NB used widely!
+static SRIFilter srif; // square root information filter for least squares
+static double small,big; // condition number in inversion = big/small
+static int NEp,nDD; // counters used in LS problem
+static int Mmax; // largest M (data size) encountered
+static int NState; // true length of the state vector
+static Vector<double> BiasState; // save the solution for biases, before bias fixing
+static Matrix<double> BiasCov; // save covariance for biases, before bias fixing
+static Vector<double> NominalState;// save the nominal state to output with solution
+
+//------------------------------------------------------------------------------------
+// currently the estimation problem is designed like this:
+// start with state of length np
+// loop over data epochs
+// fill data vector for this epoch, length nd
+// fill measurement covariance matrix, nd x nd
+// compute partials and nominal data vector, P(nd x np), f(nd)
+// update srif with P(nd x np), data - f (nd), mc(nd x nd)
+// end loop over data epochs
+// invert to get solution
+//
+// inupt batch size : number of epochs / batch (nepb)
+//
+// start with state of length np, nepb
+// loop over data epochs
+// fill a data vector for this epoch, length nd
+// fill a measurement covariance matrix for this epoch, nd x nd
+// compute a partials and a nominal data vector, P(nd x np), f(nd)
+// add to current totals: PP = PP && P ff = ff && f
+// PP = (P1) ff = (f1) MC = (mc1) 0 0
+// (P2) (f2) 0 (mc2) 0
+// (P3) (f3) 0 0 (mc3)
+// (PP grows only in rows, MC grows in rows and columns)
+// also fill in correlation (off-diagonal) parts of MC
+// if(its the end || nepb has been reached)
+// update srif with PP, Data-ff and MC
+// if(its the end) break
+// optional - invert to get solution
+// clear out PP, ff, MC
+// endif
+// end loop over data epochs
+// invert to get solution
+int Estimation(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN Estimation()" << endl;
+ if(CI.noEstimate) {
+ oflog << "Option --noEstimate was chosen .. terminate.\n";
+ return 0;
+ }
+ if(CI.Screen) cout << "BEGIN Estimation..." << endl;
+
+ bool final=false;
+ int iret,n,curr;
+ Vector<double> NomData,RHS;
+
+ // iterative loop for linearized least squares estimation
+ for(n=0; ; n++) {
+
+ if(CI.Verbose) oflog << "BEGIN LLS Iteration #" << n+1
+ << "------------------------------------------------------------------\n";
+ if(CI.Screen) cout << "BEGIN LLS Iteration #" << n+1
+ << "------------------------------------------------------------------\n";
+
+ // edit DD data
+ if((iret = EditDDdata(n))) break;
+
+ // modify state - e.g. fix biases:
+ // if user has chosen to fix biases, Biasfix is set true on last iteration
+ if((iret = ModifyState(n))) break;
+
+ //
+ if((iret = InitializeEstimator())) break;
+
+ //
+ if((iret = aPrioriConstraints())) break;
+
+ // ------------------ loop over epochs in the DD buffers
+ // build the data vector and Namelist
+ // build the measurement covariance matrix
+ // update the SRI filter
+ curr = -1; // current value of count
+ NEp = nDD = 0;
+ while(1) {
+ curr++;
+ if(curr > maxCount) break;
+
+ // this needed by EvaluateLSEquation, and is used in output
+ SolutionEpoch = FirstEpoch + curr*CI.DataInterval;
+
+ // get the data and the data namelist
+ M = FillDataVector(curr);
+ // no data -- but don't assume this implies the last epoch
+ if(M == 0) continue;
+ nDD += M;
+
+ // compute the measurement covariance matrix
+ StochasticModel(curr,DataNL,MeasCov);
+
+ // get nominal data = NomData(nominal state) and partials
+ // NB position components of state not used in here..
+ EvaluateLSEquation(State,NomData,Partials);
+
+ if(CI.Debug)
+ oflog << "EvaluateLSEquation returns vector\n" << fixed
+ << setw(8) << setprecision(3) << NomData
+ << "\n diff with data " << setw(8) << setprecision(3) << (Data-NomData)
+ << "\n partials matrix\n" << setw(8) << setprecision(3) << Partials
+ << "\n State\n" << setw(8) << setprecision(3) << State << endl;
+
+ RHS = Data - NomData; // RHS of linearized LS equation
+
+ // update the SRI filter
+ if((iret = MeasurementUpdate(Partials,RHS,MeasCov))) break;
+
+ NEp++;
+
+ } // end while loop over data epochs
+ if(iret) break;
+
+ if((iret = Solve())) break;
+
+ if((iret = UpdateNominalState())) break;
+
+ // return -1 quit now
+ // 0 go on
+ // 1 reached convergence and don't fix biases
+ // 2 reached last iteration and don't fix biases
+ // 4 1 and/or 2 and fix biases, i.e. fix the biases then quit
+ iret = IterationControl(n+1);
+
+ oflog << endl;
+
+ //if(iret == -1) { // biases have been fixed
+ // iret = 0;
+ // break;
+ //}
+ //else if(iret == 4) // one more, with biases fixed
+ // final = true;
+ //else if(iret) { // quit now
+ // iret = 0;
+ // break;
+ //}
+ if(iret && iret != 4) final = true;
+
+ OutputIterationResults(final);
+
+ if(iret && iret != 4) {
+ iret = 0;
+ break;
+ }
+
+ } // end iterative loop
+
+ // iret is -2 (singular) or 0
+
+ OutputFinalResults(iret);
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end Estimation()
+
+//------------------------------------------------------------------------------------
+// called by Configure(3)
+int ConfigureEstimation(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN ConfigureEstimation()" << endl;
+
+ // find the mean time, get Earth orientation parameters
+ MedianEpoch = FirstEpoch;
+ MedianEpoch += (LastEpoch-FirstEpoch)/2.;
+ eorient = EOPList.getEOP(MedianEpoch);
+ if(CI.Verbose) {
+ oflog << "Earth orientation parameters at median time " << MedianEpoch << " :"
+ << endl << " xp, yp, UT1mUTC*Wearth (all radians) =" << fixed
+ << " " << setprecision(9) << eorient.xp*DEG_TO_RAD/3600.0
+ << ", " << setprecision(9) << eorient.yp*DEG_TO_RAD/3600.0
+ << ", " << setprecision(9) << eorient.UT1mUTC * 7.2921151467e-5 << endl;
+ }
+
+ // define the initial State vector
+ DefineStateVector();
+
+ // Configure the SRIF for the estimation
+ DefineLSProblem();
+
+ // initial value
+ Biasfix = false;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by ConfigureEstimation()
+void DefineStateVector(void)
+{
+try {
+ // set up the names of the state vector
+ // set up the initial value of the nominal state
+ // State = offset from nominal position, stored in Stations[].pos
+ // plus offset from nominal biases
+ // NB biases MUST be last, after all other states. This b/c inside
+ // LSIterationLoop(), dX will be State - bias states when Biasfix == true
+
+ int i;
+
+ // add position states for all the non-fixed stations
+ // add residual zenith delay states (per site)
+ map<string,Station>::const_iterator it;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ if(!(it->second.fixed)) {
+ StateNL += it->first + string("-X");
+ StateNL += it->first + string("-Y");
+ StateNL += it->first + string("-Z");
+ }
+ if(CI.NRZDintervals > 0) {
+ for(i=0; i<CI.NRZDintervals; i++) {
+ StateNL += it->first + string("-RZD") + StringUtils::asString(i);
+ }
+ }
+ }
+
+ // add bias states
+ map<DDid,DDData>::iterator jt;
+ for(jt=DDDataMap.begin(); jt != DDDataMap.end(); jt++) {
+ // += adds it only if it is unique..
+ StateNL += ComposeName(jt->first);
+ }
+
+ // temp - sanity check
+ for(int i=0; i<StateNL.size(); i++) {
+ string site1,site2;
+ GSatID sat1,sat2;
+ DecomposeName(StateNL.getName(i), site1, site2, sat1, sat2);
+ oflog << "State name (" << setw(2) << i << ") decomposes as "
+ << site1 << " " << site2 << " " << sat1 << " " << sat2;
+
+ // interpret it
+ oflog << " [ " << site1;
+ if(site2 == string("X") || site2 == string("Y") || site2 == string("Z")) {
+ oflog << " : " << site2 << "-component position";
+ }
+ else if(site2.substr(0,3) == "RZD") {
+ oflog << " : trop delay #" << site2.substr(3,site2.size()-3);
+ }
+ else if(Stations.find(site2) != Stations.end() &&
+ sat1.id != -1 &&
+ sat2.id != -1) {
+ oflog << " " << site2 << " " << sat1 << " " << sat2 << " : bias";
+ }
+ else
+ oflog << " : unknown!";
+
+ oflog << " ]" << endl;
+ }
+
+ // dimensions
+ // state N, data M, NState=N but if biases are fixed N=non-bias states only
+ // State and StateNL always has length NState
+ // actual state may shrink to N when biases fixed,
+ // but then LSIterationLoop() uses temporaries
+ NState = StateNL.size();
+ State = Vector<double>(NState,0.0);
+ Mmax = DDDataMap.size(); // the largest M (Data.size()) could be
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by ConfigureEstimation()
+void DefineLSProblem(void)
+{
+try {
+ // define the least squares processor
+ srif.iterationsLimit = CI.nIter;
+ srif.convergenceLimit = CI.convergence;
+ srif.divergenceLimit = 1.e10; // TD input parameter
+ srif.doWeight = false;
+ srif.doRobust = false;
+ srif.doLinearize = false;
+ srif.doSequential = true;
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+// currently, n is not used...
+// currently does nothing but print stats on the residuals
+int EditDDdata(int n)
+{
+try {
+ int i,k;
+ double res,median,mad,mest;
+ map<DDid,DDData>::iterator it;
+
+ oflog << " Estimation data summary "
+ << "N M-est MAD Ave Std SigYX Slop_um SigSl_um" << endl;
+
+ // loop over the data
+ for(k=1, it = DDDataMap.begin(); it != DDDataMap.end(); it++) {
+ vector<double> ddres,weights;
+ TwoSampleStats<double> tsstats;
+
+ for(i=0; i<it->second.count.size(); i++) {
+ res = (CI.Frequency == 1 ? it->second.DDL1[i] - it->second.DDER[i] :
+ (CI.Frequency == 2 ? it->second.DDL2[i] - it->second.DDER[i] :
+ if1p*it->second.DDL1[i]+if2p*it->second.DDL2[i]
+ - it->second.DDER[i]));
+ tsstats.Add(it->second.count[i],res);
+ ddres.push_back(res);
+ }
+
+ weights.resize(ddres.size());
+ mad = Robust::MedianAbsoluteDeviation(&ddres[0], ddres.size(), median);
+ mest = Robust::MEstimate(&ddres[0], ddres.size(), median, mad, &weights[0]);
+
+ // output
+ oflog << "EDS " << setw(2) << k << " " << it->first
+ << " " << setw(5) << it->second.count.size()
+ << fixed << setprecision(3)
+ << " " << setw(7) << mest
+ << " " << setw(7) << mad
+ << " " << setw(7) << tsstats.AverageY()
+ << " " << setw(7) << tsstats.StdDevY()
+ << " " << setw(7) << tsstats.SigmaYX()
+ << " " << setw(7) << tsstats.Slope()*1000000.0
+ << " " << setw(7) << tsstats.SigmaSlope()*1000000.0
+ << " " << setw(7) << tsstats.Slope()*1000.0*it->second.count.size()
+ << endl;
+
+ k++;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+int ModifyState(int niter)
+{
+try {
+ int i,j,k;
+
+ // set the State elements to zero for next iteration
+ map<string,Station>::const_iterator it;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+
+ // ignore fixed sites
+ if(it->second.fixed) continue;
+
+ // find the position states
+ i = StateNL.index(it->first+string("-X"));
+ j = StateNL.index(it->first+string("-Y"));
+ k = StateNL.index(it->first+string("-Z"));
+ if(i == -1 || j == -1 || k == -1) {
+ Exception e("Position states confused: unable to find for " + it->first);
+ GPSTK_THROW(e);
+ }
+
+ State(i) = State(j) = State(k) = 0.0;
+ }
+
+ // ----------------- fix biases?
+ if(Biasfix) {
+ if(CI.Verbose) oflog << "Fix the biases:\n";
+ // State must have the (fixed) biases still in it
+ for(i=0; i<State.size(); i++) {
+ string site1,site2;
+ GSatID sat1,sat2;
+ DecomposeName(StateNL.getName(i), site1, site2, sat1, sat2);
+ if(site2 == string("X") || site2 == string("Y") || site2 == string("Z"))
+ continue;
+ if(site2 == string("rzd"))
+ continue;
+ if(Stations.find(site2) == Stations.end())
+ continue;
+ if(sat1.id == -1 || sat2.id == -2)
+ continue;
+
+ long bias=long(State[i]/wave + (State[i]/wave > 0 ? 0.5 : -0.5));
+ if(CI.Verbose) oflog << " fix " << StateNL.getName(i)
+ << " to " << bias << " cycles" << endl;
+ State(i) = wave*double(bias);
+ }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+// actually fixes the biases
+int InitializeEstimator(void)
+{
+try {
+ int i;
+ Namelist NL;
+
+ // ----------------- initialize this iteration
+ // determine length of state, reset the LS
+ // Use N and NL rather than NState and StateNL
+ N = NState;
+ NL = StateNL;
+ if(Biasfix) {
+ // State will still be full length = NState
+ // StateNL will also stay full length, but N and NL will not
+ NL.clear();
+ for(N=0,i=0; i<NState; i++) {
+ string site1,site2;
+ GSatID sat1,sat2;
+ DecomposeName(StateNL.getName(i), site1, site2, sat1, sat2);
+ if(Stations.find(site2) != Stations.end() &&
+ sat1.id != -1 &&
+ sat2.id != -1)
+ break; // quit when first bias state found
+ else { // not a bias state
+ NL += StateNL.getName(i);
+ N++;
+ }
+ }
+ oflog << "Fix biases on this iteration (new State dimension is "
+ << N << ")" << endl;
+ if(CI.Screen) cout << "Fix biases on this iteration (new State dimension is "
+ << N << ")" << endl;
+ }
+ dX.resize(N);
+ srif = SRIFilter(NL);
+
+ // save the nominal state for output with Solution (OutputIterationResults)
+ NominalState = State;
+
+ // dump the nominal state (including biases, even if fixed)
+ //if(CI.Verbose) {
+ // LabelledVector LabSt(StateNL,State);
+ // LabSt.setw(20).setprecision(6);
+ // oflog << "Nominal State :\n" << LabSt << endl;
+ //}
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+int aPrioriConstraints(void)
+{
+try {
+ // add initial constraints
+ Matrix<double> apCov(N,N,0.0);
+ Vector<double> apState(N,0.0); // most states have apriori value = 0
+
+ int i,j,k,n;
+ double ss;
+ Position BL;
+ map<string,Station>::const_iterator it;
+
+ // set apCov = unity
+ //ident(apCov);
+
+ // loop over baselines - to get the position constraints
+ for(n=0; n<Baselines.size(); n++) {
+ string one=StringUtils::word(Baselines[n],0,'-');
+ string two=StringUtils::word(Baselines[n],1,'-');
+ BL = Stations[one].pos - Stations[two].pos;
+
+ // find the position states
+ i = StateNL.index(two+string("-X"));
+ j = StateNL.index(two+string("-Y"));
+ k = StateNL.index(two+string("-Z"));
+ // you may have a baseline where both sites are fixed.
+ if(i == -1 || j == -1 || k == -1) continue;
+
+ if(Biasfix) { // 10ppm of baseline
+ ss = CI.TightConstraint * fabs(BL.X());
+ apCov(i,i) = (ss*ss);
+ ss = CI.TightConstraint * fabs(BL.Y());
+ apCov(j,j) = (ss*ss);
+ ss = CI.TightConstraint * fabs(BL.Z());
+ apCov(k,k) = (ss*ss);
+ // 1 mm v2.6
+ //ss = 1.e-3 ;
+ //apCov(i,i) = (ss*ss);
+ //ss = 1.e-3 ;
+ //apCov(j,j) = (ss*ss);
+ //ss = 1.e-3 ;
+ //apCov(k,k) = (ss*ss);
+ }
+ else { // loose on position
+ ss = CI.LooseConstraint * fabs(BL.X());
+ apCov(i,i) = (ss*ss);
+ ss = CI.LooseConstraint * fabs(BL.Y());
+ apCov(j,j) = (ss*ss);
+ ss = CI.LooseConstraint * fabs(BL.Z());
+ apCov(k,k) = (ss*ss);
+ }
+
+ if(CI.Verbose) {
+ // assume i,j,k are in order:
+ MatrixSlice<double> Rslice(apCov,i,i,3,3);
+ Matrix<double> R(Rslice);
+ Namelist NL;
+ NL += StateNL.getName(i);
+ NL += StateNL.getName(j);
+ NL += StateNL.getName(k);
+ LabelledMatrix Lapc(NL,R);
+ Lapc.setw(20).setprecision(3).scientific();
+ Lapc.message("a priori covariance");
+ oflog << Lapc << endl;
+ }
+ }
+
+ // constrain the residual trop delay
+ if(CI.NRZDintervals > 0) {
+ // RZD in different intervals correlated; first order Gauss-Markov
+ // dt = time between intervals in hours; these unused if N==1
+ double dt = (LastEpoch-FirstEpoch)/(3600.*CI.NRZDintervals);
+ double exn,ex = exp(-dt/CI.RZDtimeconst);
+
+ // do for each site
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+
+ // find indexes in state vector of all RZD states for this site
+ string stname;
+ vector<int> indexes;
+ for(n=0; n<CI.NRZDintervals; n++) {
+ stname = it->first + string("-RZD") + StringUtils::asString(n);
+ i = StateNL.index(stname);
+ if(i == -1) {
+ Exception e("RZD states confused: unable to find state " + stname);
+ GPSTK_THROW(e);
+ }
+ if(CI.Debug) oflog << "RZD state " << stname << " = index " << i << endl;
+ indexes.push_back(i);
+ }
+
+ // fill the matrix
+ for(n=0; n<indexes.size(); n++) {
+ // diagonal element
+ i = indexes[n];
+ apCov(i,i) = CI.RZDsigma * CI.RZDsigma;
+ // off-diagonal elements: rows up and cols to the left
+ exn = ex;
+ for(k=n-1; k>=0; k--) {
+ j = indexes[k];
+ apCov(j,i) = apCov(i,j) = CI.RZDsigma * CI.RZDsigma * exn;
+ exn *= ex;
+ }
+ } // end loop over diagonal matrix elements for this site
+
+ // dump
+ if(CI.Verbose) {
+ if(CI.NRZDintervals > 1) {
+ // assume indexes are in order:
+ MatrixSlice<double> Rslice(apCov,indexes[0],indexes[0],
+ CI.NRZDintervals,CI.NRZDintervals);
+ Matrix<double> R(Rslice);
+ Namelist NL;
+ for(n=0; n<indexes.size(); n++) NL += StateNL.getName(indexes[n]);
+ LabelledMatrix Lapc(NL,R);
+ Lapc.setw(20).setprecision(3).scientific();
+ Lapc.message("a priori covariance");
+ oflog << Lapc << endl;
+ }
+ else
+ oflog << "a priori covariance for RZD at " << it->first
+ << ": " << setprecision(3) << scientific << CI.RZDsigma*CI.RZDsigma
+ << endl;
+ }
+
+ } // end loop over sites
+
+ } // end if there are RZD states..
+
+ // TD need to constrain biases ... what is reasonable?
+ if(!Biasfix) {
+ ss = 0.25 * wave;
+ for(n=0; n<StateNL.size(); n++) {
+ string site1,site2;
+ GSatID sat1,sat2;
+ DecomposeName(StateNL.getName(n), site1, site2, sat1, sat2);
+ if(site2 == string("X") || site2 == string("Y") || site2 == string("Z")) {
+ continue; // oflog << " : " << site2 << "-component position";
+ }
+ else if(site2.substr(0,3) == "RZD") {
+ continue; // oflog << " : trop #" << site2.substr(3,site2.size()-3);
+ }
+ else if(Stations.find(site2) != Stations.end() &&
+ sat1.id != -1 &&
+ sat2.id != -1) {
+ // bias oflog << " " << site2 << " " << sat1 << " " << sat2 << " : bias";
+ apCov(n,n) = ss*ss;
+ }
+ else
+ continue; // oflog << " : unknown!";
+ }
+ oflog << "a priori covariance for biases : " << setprecision(3)
+ << scientific << ss*ss << endl;
+ }
+
+ // dump the whole matrix
+ //if(CI.Verbose) {
+ // LabelledMatrix Lapc(StateNL,apCov);
+ // Lapc.setw(20).setprecision(3).scientific();
+ // Lapc.message("a priori covariance");
+ // oflog << Lapc << endl;
+ //}
+
+ // add it to srif
+ srif.addAPriori(apCov,apState);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the data loop, inside the iteration loop
+int FillDataVector(int count)
+{
+try {
+ int i,j;
+ string lab;
+
+ Data = Vector<double>(Mmax,0.0);
+ DataNL.clear();
+ // loop over the data
+ map<DDid,DDData>::iterator it;
+ for(i=0,it = DDDataMap.begin(); it != DDDataMap.end(); it++) {
+ j = index(it->second.count,count);
+ if(j == -1) continue;
+ if(CI.Frequency == 1) Data(i) = it->second.DDL1[j];
+ if(CI.Frequency == 2) Data(i) = it->second.DDL2[j];
+ if(CI.Frequency == 3) // ionosphere-free phase
+ Data(i) = if1p * it->second.DDL1[j] + if2p * it->second.DDL2[j];
+ lab = ComposeName(it->first);
+ DataNL += lab;
+ i++;
+ }
+
+ if(i > 0) {
+ Data.resize(i);
+ if(CI.Debug) {
+ LabelledVector LD(DataNL,Data);
+ LD.setw(20).setprecision(6);
+ oflog << "At count " << count
+ << " found time " << SolutionEpoch.printf("%F %10.3g")
+ << " and Data\n" << LD << endl;
+ }
+ }
+
+ return i;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the data loop, inside the iteration loop
+// Input is Namelist DNL, the double difference data Namelist (DataNL)
+// Output is MCov, the measurement covariance matrix for this data (MeasCov).
+// Let:
+// d = vector of one-way data (one site, one satellite)
+// sd = vector of single difference data (two sites, one satellite)
+// dd = vector of double difference data (two sites, two satellites)
+// DD and SD are matricies with elements 0,1,-1 which transform d to sd to dd:
+// sd = SD * d
+// dd = DD * sd
+// dd = DD * SD * d
+// The covariance matrix will be MC = (DD*SD)*transpose(DD*SD)
+// = DD*SD*transpose(SD)*transpose(DD)
+// If the one-way data has a measurement covariance, then fill the vector d with
+// them; then MC = DD*SD* d * transpose(SD)*transpose(DD).
+// Building DD and SD is just a matter of lists:
+// loop through the dd namelist, keeping lists of:
+// one-way data (site-satellite pairs) (d)
+// single differences (site-site-satellite sets) (sd)
+// and you have a list of double differences (DNL)
+//
+// TD MinElevation here should be a separate parameter, not necessarily the mask angle
+void StochasticModel(int count, Namelist& DNL, Matrix<double>& MCov)
+{
+try {
+ unsigned int m=DNL.size();
+ if(m==0) return;
+
+ int i,j,in,jn,kn;
+ double eps,coselev,d0,sig0;
+ string site1,site2;
+ GSatID sat1,sat2;
+ vector<double> d; // weights of one-way data
+ vector<OWid> ld; // labels of d
+ vector<SDid> sd;
+
+ // eps non-zero avoids blowup at zenith
+ //eps = 0.0000001; seems to have no effect
+ eps = 0.001;
+
+ for(i=0; i<DNL.size(); i++) {
+ // break the label into site1,site2,sat1,sat2
+ DecomposeName(DNL.getName(i), site1, site2, sat1, sat2);
+ if(index(ld,OWid(site1,sat1)) == -1) ld.push_back(OWid(site1,sat1));
+ if(index(ld,OWid(site1,sat2)) == -1) ld.push_back(OWid(site1,sat2));
+ if(index(ld,OWid(site2,sat1)) == -1) ld.push_back(OWid(site2,sat1));
+ if(index(ld,OWid(site2,sat2)) == -1) ld.push_back(OWid(site2,sat2));
+ if(index(sd,SDid(site1,site2,sat1)) == -1) sd.push_back(SDid(site1,site2,sat1));
+ if(index(sd,SDid(site1,site2,sat2)) == -1) sd.push_back(SDid(site1,site2,sat2));
+ }
+
+ // fill d with the weights
+ // d needs to have units meters and be realistic ~ sigma(phase)
+ // =sig0(m) at min elev, smaller at higher elevation
+ sig0 = 1.0e-3; // smaller than e-2, else little effect
+ coselev = eps + cos(CI.MinElevation * DEG_TO_RAD); // TD new input param
+ d0 = sig0 / (coselev*coselev); // cosine squared model
+ //d0 = sig0 / coselev; // cosine model
+ d = vector<double>(ld.size());
+ for(i=0; i<ld.size(); i++) {
+ j = index(Stations[ld[i].site].RawDataBuffers[ld[i].sat].count,count);
+ if(j == -1) {
+ oflog << "Error -- count " << count << " not found in buffer for " << ld[i]
+ << endl;
+ d[i] = d0;
+ }
+ else {
+ coselev = eps + cos(Stations[ld[i].site].RawDataBuffers[ld[i].sat].elev[j]
+ * DEG_TO_RAD);
+ d[i] = d0 * coselev * coselev; // cosine squared model
+ //d[i] = d0 * coselev; // cosine model
+ }
+ }
+
+ // temp
+ //format f113s(11,3,2);
+ //oflog << "DDs are (" << DNL.size() << "):\n" << setw(20) << DNL << endl;
+ //oflog << "SDs are: (" << sd.size() << ")" << fixed << endl;
+ //for(i=0; i<sd.size(); i++) oflog << " / " << sd[i];
+ //oflog << endl;
+ //oflog << "OWs are: (" << ld.size() << ")" << endl;
+ //for(i=0; i<ld.size(); i++) oflog << " / " << ld[i];
+ //oflog << endl;
+ //oflog << "OW wts are: (" << d.size() << ")" << endl;
+ //for(i=0; i<d.size(); i++) oflog << " " << f113s << d[i];
+ //oflog << endl;
+
+ Matrix<double> SD(sd.size(),ld.size(),0.0);
+ Matrix<double> DD(m,sd.size(),0.0);
+ // TD need to account for signs here ... sd[.] may be site2,site1,sat1 ...
+ for(in=0; in<DNL.size(); in++) {
+ DecomposeName(DNL.getName(in), site1, site2, sat1, sat2);
+ jn = index(sd,SDid(site1,site2,sat1)); // site1-site2, sat1
+ DD(in,jn) = 1;
+ kn = index(ld,OWid(site1,sat1)); // site1, sat1
+ SD(jn,kn) = d[kn];
+ kn = index(ld,OWid(site2,sat1)); // site2, sat1
+ SD(jn,kn) = -d[kn];
+
+ jn = index(sd,SDid(site1,site2,sat2)); // site1-site2, sat2
+ DD(in,jn) = -1;
+ kn = index(ld,OWid(site1,sat2)); // site1, sat2
+ SD(jn,kn) = d[kn];
+ kn = index(ld,OWid(site2,sat2)); // site2, sat2
+ SD(jn,kn) = -d[kn];
+ }
+
+ //oflog << " SD is\n" << fixed << setw(3) << SD << endl;
+ //oflog << " DD is\n" << fixed << setw(3) << DD << endl;
+
+ Matrix<double> T;
+ T = DD * SD;
+ MCov = T * transpose(T);
+
+ if(CI.Debug) oflog << "Measurement covariance is\n" << scientific
+ << setw(8) << setprecision(3) << MeasCov << endl;
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the data loop, inside the iteration loop
+// Given a nominal state vector X, compute the function f(X) and the partials matrix
+// P at X.
+// NB X is not used here ... except that State is used for biases
+void EvaluateLSEquation(Vector<double>& X, Vector<double>& f, Matrix<double>& P)
+{
+try {
+ int i,j,k,n,m,ntrop;
+ double ER,trop,mapf;
+ string site1,site2;
+ GSatID sat1,sat2;
+ PreciseRange CER;
+ //CorrectedEphemerisRange CER;
+
+ //
+ // assume Station.pos has been defined outside this routine... in UpdateNom.St.
+ //
+
+ // find the trop estimation interval for this epoch
+ // trop is a temporary here..
+ if(CI.NRZDintervals > 0) {
+ ntrop = int( (SolutionEpoch-FirstEpoch) /
+ (((LastEpoch-FirstEpoch)+CI.DataInterval)/CI.NRZDintervals) );
+ }
+
+ // loop over the data vector, computing f(X) and filling P
+ f = Vector<double>(M,0.0);
+ P = Matrix<double>(M,N,0.0);
+ for(m=0; m<DataNL.size(); m++) {
+
+ // break name into its parts
+ DecomposeName(DataNL.getName(m), site1, site2, sat1, sat2);
+
+ Station& st1=Stations[site1];
+ Station& st2=Stations[site2];
+
+ // -----------------------------------------------------------
+ // site1 ----------------------------------------------------
+ if(!st1.fixed) {
+ i = StateNL.index(site1 + string("-X"));
+ j = StateNL.index(site1 + string("-Y"));
+ k = StateNL.index(site1 + string("-Z"));
+ if(i == -1 || j == -1 || k == -1) {
+ Exception e("Position states confused: unable to find for " + site1);
+ GPSTK_THROW(e);
+ }
+ }
+ // sat 1 CER.SVR is satellite Position
+ // pos 1 st1.pos is station Position
+
+ // position states
+ // should you use CER.rawrange here?
+ ER = CER.ComputeAtReceiveTime(SolutionEpoch,st1.pos,sat1.id,*pEph,eorient);
+ trop = st1.pTropModel->correction(st1.pos,CER.SVR,SolutionEpoch);
+ f(m) += ER+trop;
+ if(!st1.fixed) {
+ P(m,i) += CER.cosines[0];
+ P(m,j) += CER.cosines[1];
+ P(m,k) += CER.cosines[2];
+ }
+
+ // trop rzd .. depends on site, sat and trop model
+ if(CI.NRZDintervals > 0) {
+ n = StateNL.index(site1 + string("-RZD") + StringUtils::asString(ntrop));
+ if(n == -1) {
+ Exception e("RZD states confused: unable to find state " +
+ site1 + string("-RZD") + StringUtils::asString(ntrop));
+ GPSTK_THROW(e);
+ }
+ mapf = st1.pTropModel->wet_mapping_function(CER.elevation);
+ P(m,n) += mapf;
+ f(m) += mapf * State(n);
+ }
+
+ // sat 2 -----------------------------------------------------
+ ER = CER.ComputeAtReceiveTime(SolutionEpoch,st1.pos,sat2.id,*pEph,eorient);
+ trop = st1.pTropModel->correction(st1.pos,CER.SVR,SolutionEpoch);
+ f(m) -= ER+trop;
+ if(!st1.fixed) {
+ P(m,i) -= CER.cosines[0];
+ P(m,j) -= CER.cosines[1];
+ P(m,k) -= CER.cosines[2];
+ }
+
+ // trop rzd .. depends on site, sat and trop model
+ if(CI.NRZDintervals > 0) {
+ mapf = st1.pTropModel->wet_mapping_function(CER.elevation);
+ P(m,n) += mapf;
+ f(m) += mapf * State(n);
+ }
+
+ // -----------------------------------------------------------
+ // site 2 ----------------------------------------------------
+ if(!st2.fixed) {
+ i = StateNL.index(site2 + string("-X"));
+ j = StateNL.index(site2 + string("-Y"));
+ k = StateNL.index(site2 + string("-Z"));
+ if(i == -1 || j == -1 || k == -1) {
+ Exception e("Position states confused: unable to find for " + site2);
+ GPSTK_THROW(e);
+ }
+ }
+ // sat 1 -----------------------------------------------------
+ ER = CER.ComputeAtReceiveTime(SolutionEpoch,st2.pos,sat1.id,*pEph,eorient);
+ trop = st2.pTropModel->correction(st2.pos,CER.SVR,SolutionEpoch);
+ f(m) -= ER+trop;
+ if(!st2.fixed) {
+ P(m,i) -= CER.cosines[0];
+ P(m,j) -= CER.cosines[1];
+ P(m,k) -= CER.cosines[2];
+ }
+
+ // trop rzd .. depends on site, sat and trop model
+ if(CI.NRZDintervals > 0) {
+ n = StateNL.index(site2 + string("-RZD") + StringUtils::asString(ntrop));
+ if(n == -1) {
+ Exception e("RZD states confused: unable to find state " +
+ site2 + string("-RZD") + StringUtils::asString(ntrop));
+ GPSTK_THROW(e);
+ }
+ mapf = st2.pTropModel->wet_mapping_function(CER.elevation);
+ P(m,n) += mapf;
+ f(m) += mapf * State(n);
+ }
+
+ // sat 2 -----------------------------------------------------
+ ER = CER.ComputeAtReceiveTime(SolutionEpoch,st2.pos,sat2.id,*pEph,eorient);
+ trop = st2.pTropModel->correction(st2.pos,CER.SVR,SolutionEpoch);
+ f(m) += ER+trop;
+ if(!st2.fixed) {
+ P(m,i) += CER.cosines[0];
+ P(m,j) += CER.cosines[1];
+ P(m,k) += CER.cosines[2];
+ }
+
+ // trop rzd .. depends on site, sat and trop model
+ if(CI.NRZDintervals > 0) {
+ mapf = st2.pTropModel->wet_mapping_function(CER.elevation);
+ P(m,n) += mapf;
+ f(m) += mapf * State(n);
+ }
+
+ // -----------------------------------------------------------
+ // bias ------------------------------------------------------
+ j = 1;
+ i = StateNL.index(DataNL.getName(m));
+ if(i == -1) {
+ // but what if the bias is A-B_s-r and the data B-A_r-s?
+ // (Decompose was called at top of loop)
+ j = -1;
+ i = StateNL.index(ComposeName(site1,site2,sat2,sat1)); // most likely
+ if(i == -1) {
+ i = StateNL.index(ComposeName(site2,site1,sat1,sat2));
+ if(i == -1) {
+ j = 1;
+ i = StateNL.index(ComposeName(site2,site1,sat2,sat1));
+ }
+ }
+ }
+ f(m) += j * State(i);
+ if(!Biasfix)
+ P(m,i) = j;
+
+ } // end loop over data
+
+ f.resize(M);
+ P.resize(M,N);
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the data loop, inside the iteration loop
+int MeasurementUpdate(Matrix<double>& P, Vector<double>& f, Matrix<double>& MC)
+{
+try {
+
+ srif.measurementUpdate(P,f,MC);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+int Solve(void)
+{
+try {
+
+ try {
+ srif.getStateAndCovariance(dX,Cov,&small,&big);
+ }
+ catch(SingularMatrixException& sme) {
+ oflog << "Problem is singular " << endl;
+ return -2; // TD handle singular problems in Solve()
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+int UpdateNominalState(void)
+{
+try {
+ int n,i,j,k;
+
+ if(Biasfix) {
+ // NB when Biasfix, State has dimension NState buf dX has dimension N>NState
+ // EvaluateLSFunction uses State bias elements even when Biasfix
+ for(i=0; i<N; i++) {
+ State[i] += dX[i];
+ }
+ }
+ else { // regular update, save for when Biasfix is set
+ State += dX;
+ BiasState = State;
+ BiasCov = Cov;
+ }
+ // redefine the nominal position
+ // set all floating position states to zero
+ map<string,Station>::const_iterator it;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ if(it->second.fixed) // ignore fixed sites
+ continue;
+
+ // find the position states
+ i = StateNL.index(it->first+string("-X"));
+ j = StateNL.index(it->first+string("-Y"));
+ k = StateNL.index(it->first+string("-Z"));
+ if(i == -1 || j == -1 || k == -1) {
+ Exception e("Position states confused: unable to find for " + it->first);
+ GPSTK_THROW(e);
+ }
+
+ // update the nominal position in Stations[]
+ Stations[it->first].pos.setECEF(
+ Stations[it->first].pos.X()+dX(i),
+ Stations[it->first].pos.Y()+dX(j),
+ Stations[it->first].pos.Z()+dX(k));
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation() - inside the iteration loop
+void OutputIterationResults(bool final)
+{
+try {
+ int i,N=dX.size();
+ format f166(16,6),f206(20,6),f82s(8,2,2);
+
+ oflog << " State label"
+ << " Nominal State"
+ << " State Update"
+ << " New Solution"
+ << " Sigma"
+ << endl;
+ for(i=0; i<N; i++) {
+ oflog << setw(20) << StateNL.getName(i)
+ << " " << f166 << NominalState[i]
+ << " " << f166 << dX[i]
+ << " " << f166 << State[i]
+ << " " << f166 << SQRT(Cov(i,i))
+ << endl;
+ }
+
+ //LabelledVector LSol(StateNL,dX);
+ //LSol.setw(20).setprecision(6);
+ //oflog << "Solution\n" << LSol << endl;
+
+ ////LabelledMatrix LCov(StateNL,Cov);
+ //Vector<double> Sig(N);
+ //for(i=0; i<N; i++) Sig(i)=SQRT(Cov(i,i));
+ //LabelledVector LCov(StateNL,Sig);
+ //LCov.setw(20).setprecision(6);
+ ////oflog << "Covariance\n" << LCov << endl;
+ //oflog << "Sigma\n" << LCov << endl;
+
+ // output baselines
+ Position BL;
+ for(i=0; i<CI.OutputBaselines.size(); i++) {
+ // dependent on the order given in ComputeSingleDifferences()
+ string one=StringUtils::word(CI.OutputBaselines[i],0,'-');
+ string two=StringUtils::word(CI.OutputBaselines[i],1,'-');
+ BL = Stations[one].pos - Stations[two].pos;
+ oflog << "Baseline " << CI.OutputBaselines[i]
+ << " " << BL.printf("%16.6x %16.6y %16.6z")
+ << " " << f166 << BL.getRadius() << endl;
+ if(CI.Screen) cout << "Baseline " << CI.OutputBaselines[i]
+ << " " << BL.printf("%16.6x %16.6y %16.6z")
+ << " " << f166 << BL.getRadius() << endl;
+ // offset - if one was input
+ if(CI.OutputBaselineOffsets[i].mag() >= 0.01) {
+ oflog << " Offset " << CI.OutputBaselines[i]
+ << " " << f166 << BL.X() - CI.OutputBaselineOffsets[i][0]
+ << " " << f166 << BL.Y() - CI.OutputBaselineOffsets[i][1]
+ << " " << f166 << BL.Z() - CI.OutputBaselineOffsets[i][2]
+ << " " << f166 << BL.getRadius() - CI.OutputBaselineOffsets[i].mag()
+ << endl;
+ if(CI.Screen) cout << " Offset " << CI.OutputBaselines[i]
+ << " " << f166 << BL.X() - CI.OutputBaselineOffsets[i][0]
+ << " " << f166 << BL.Y() - CI.OutputBaselineOffsets[i][1]
+ << " " << f166 << BL.Z() - CI.OutputBaselineOffsets[i][2]
+ << " " << f166 << BL.getRadius() - CI.OutputBaselineOffsets[i].mag()
+ << endl;
+ }
+ }
+
+ // compute residuals of fit and output
+ double rmsrof = RMSResidualOfFit(N,dX,final);
+ oflog << "RES " << (final ? "final " : "" ) << "total RMS = "
+ << f82s << rmsrof << endl;
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// called by Estimation()
+// return -1 quit now
+// 0 go on
+// 1 reached convergence and don't fix biases
+// 2 reached last iteration and don't fix biases
+// 4 1 and/or 2 and fix biases, i.e. fix the biases then quit
+int IterationControl(int iter_n)
+{
+try {
+ int done=0;
+ double converge;
+
+ // has it converged?
+ converge = norm(dX);
+ if(converge <= CI.convergence) {
+ oflog << "DDBase finds convergence: " << iter_n << " iterations"
+ << ", convergence criterion = " << scientific << setprecision(3)
+ << converge << " m; (" << CI.convergence << " m)" << endl;
+ if(CI.Screen)
+ cout << "DDBase finds convergence: " << iter_n << " iterations"
+ << ", convergence criterion = " << scientific << setprecision(3)
+ << converge << " m; (" << CI.convergence << " m)" << endl;
+ done += 1;
+ }
+
+ // have we reached the last iteration?
+ if(iter_n == CI.nIter) {
+ oflog << "DDBase finds last iteration: " << iter_n << " iterations"
+ << ", convergence criterion = " << scientific << setprecision(3)
+ << converge << " m; (" << CI.convergence << " m)" << endl;
+ if(CI.Screen)
+ cout << "DDBase finds last iteration: " << iter_n << " iterations"
+ << ", convergence criterion = " << scientific << setprecision(3)
+ << converge << " m; (" << CI.convergence << " m)" << endl;
+ done += 2;
+ }
+
+ if(!done && CI.Verbose) {
+ oflog << "DDBase: " << iter_n << " iterations"
+ << ", convergence criterion = " << scientific << setprecision(3)
+ << converge << " m; (" << CI.convergence << " m)" << endl;
+ if(CI.Screen)
+ cout << "DDBase: " << iter_n << " iterations"
+ << ", convergence criterion = " << scientific << setprecision(3)
+ << converge << " m; (" << CI.convergence << " m)" << endl;
+ }
+
+ // if the previous iteration fixed the biases, we are done no matter what
+ if(Biasfix) return 5;
+
+ if(CI.FixBiases && done) {
+ Biasfix = true;
+ return 4; // signals one more iteration
+ }
+
+ return done;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+// Utilities - use consistently throughout! these three routines must change together.
+string ComposeName(const string& site1,
+ const string& site2,
+ const GSatID& sat1,
+ const GSatID& sat2)
+{
+try {
+ //RinexSatID rsat1=sat2,rsat2=sat2; // use RinexSatID to get the fill char == '0'
+ return ( site1 + string("-") + site2 + string("_")
+ //+ rsat1.toString() + string("-") + rsat2.toString() );
+ //+ sat1.toString() + string("-") + sat2.toString() );
+ + StringUtils::asString(sat1) + string("-") + StringUtils::asString(sat2) );
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+//------------------------------------------------------------------------------------
+string ComposeName(const DDid& ddid)
+{
+try {
+ //ostringstream oss;
+ //if(ddid.ssite > 0) oss << ddid.site1 << "-" << ddid.site2 << "_";
+ //else oss << ddid.site2 << "-" << ddid.site1 << "_";
+ //if(ddid.ssat > 0) oss << ddid.sat1 << "-" << ddid.sat2;
+ //else oss << ddid.sat2 << "-" << ddid.sat1;
+ //return(oss.str());
+ if(ddid.ssite > 0) {
+ if(ddid.ssat > 0)
+ return ComposeName(ddid.site1,ddid.site2,ddid.sat1,ddid.sat2);
+ else
+ return ComposeName(ddid.site1,ddid.site2,ddid.sat2,ddid.sat1);
+ }
+ else {
+ if(ddid.ssat > 0)
+ return ComposeName(ddid.site2,ddid.site1,ddid.sat1,ddid.sat2);
+ else
+ return ComposeName(ddid.site2,ddid.site1,ddid.sat2,ddid.sat1);
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+//------------------------------------------------------------------------------------
+void DecomposeName(const string& label,
+ string& site1,
+ string& site2,
+ GSatID& sat1,
+ GSatID& sat2)
+{
+try {
+ string copy=label;
+ //oflog << "Decompose found " << label << " = ";
+ site1 = StringUtils::stripFirstWord(copy,'-');
+ //oflog << site1;
+ site2 = StringUtils::stripFirstWord(copy,'_');
+ //oflog << " " << site2;
+ sat1.fromString(StringUtils::stripFirstWord(copy,'-'));
+ //oflog << " " << sat1;
+ sat2.fromString(copy);
+ //oflog << " " << sat2 << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void OutputFinalResults(int iret)
+{
+try {
+ int i,j,len;
+ string site1,site2;
+ GSatID sat1,sat2;
+ format f133(13,3),f166(16,6);
+
+ oflog << "Final Solution:" << endl;
+
+ if(iret != -2) {
+
+ if(CI.NRZDintervals > 0) {
+ oflog << "Residual zenith tropospheric delays (m) with sigma" << endl;
+ for(i=0; i<NState; i++) {
+ DecomposeName(StateNL.getName(i), site1, site2, sat1, sat2);
+ if(site2.substr(0,3) != string("RZD")) continue;
+ oflog << site1 << " : trop delay (m) #" << site2.substr(3,site2.size()-3)
+ << " " << f133 << State(i)
+ << " " << f133 << SQRT(Cov(i,i))
+ << endl;
+ }
+ oflog << endl;
+ }
+
+ oflog << "Biases (cycles) with sigma" << endl;
+ for(i=0; i<NState; i++) {
+ DecomposeName(StateNL.getName(i), site1, site2, sat1, sat2);
+ if(site2.size() ==0 || sat1.id == -1 || sat2.id == -1) continue;
+ oflog << StateNL.getName(i)
+ << " " << f133 << BiasState(i)/wl1
+ << " " << f133 << SQRT(BiasCov(i,i))/wl1
+ << endl;
+ }
+ oflog << endl;
+
+ // output position and covariance for input to later adjustment
+ oflog << "Final covariance and position solutions:\n";
+ for(len=0,j=0; j<NState; j++) {
+ DecomposeName(StateNL.getName(j), site1, site2, sat1, sat2);
+ if(site2 == string("X") || site2 == string("Y") || site2 == string("Z")) {
+ if(len==0) {
+ len = StateNL.getName(j).size();
+ oflog << setw(len) << ' ';
+ if(len < 16) len=16;
+ }
+ oflog << setw(len) << StateNL.getName(j);
+ }
+ }
+ oflog << setw(len) << "Position" << endl;
+ for(i=0; i<NState; i++) {
+ DecomposeName(StateNL.getName(i), site1, site2, sat1, sat2);
+ if(site2!=string("X") && site2!=string("Y") && site2!=string("Z"))
+ continue;
+ oflog << StateNL.getName(i);
+ for(j=0; j<NState; j++) {
+ string site22,site11;
+ GSatID sat11,sat22;
+ DecomposeName(StateNL.getName(j), site11, site22, sat11, sat22);
+ if(site22==string("X") || site22==string("Y") || site22==string("Z"))
+ oflog << scientific << setw(len) << setprecision(6) << Cov(i,j);
+ }
+ if(site2 == string("X")) oflog << fixed << setw(len)
+ << setprecision(6) << Stations[site1].pos.X();
+ if(site2 == string("Y")) oflog << fixed << setw(len)
+ << setprecision(6) << Stations[site1].pos.Y();
+ if(site2 == string("Z")) oflog << fixed << setw(len)
+ << setprecision(6) << Stations[site1].pos.Z();
+ oflog << endl;
+ }
+ oflog << endl;
+
+ // output position and sigmas for all non-fixed positions
+ map<string,Station>::const_iterator it;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ oflog << it->first << ": " << (it->second.fixed ? " Fixed" : "Estimated")
+ << " Position "
+ << Stations[it->first].pos.printf("%16.6x %16.6y %16.6z") << endl;
+ if(!(Stations[it->first].fixed)) {
+ oflog << it->first << ": Estimated Sigmas";
+ i = StateNL.index(it->first + string("-X"));
+ oflog << " " << f166 << SQRT(Cov(i,i));
+ i = StateNL.index(it->first + string("-Y"));
+ oflog << " " << f166 << SQRT(Cov(i,i));
+ i = StateNL.index(it->first + string("-Z"));
+ oflog << " " << f166 << SQRT(Cov(i,i));
+ oflog << endl;
+ }
+ }
+
+ // do for all baselines
+ for(i=0; i<CI.OutputBaselines.size(); i++) {
+ string one=StringUtils::word(CI.OutputBaselines[i],0,'-');
+ string two=StringUtils::word(CI.OutputBaselines[i],1,'-');
+ Position BL = Stations[one].pos - Stations[two].pos;
+ oflog << "Final Baseline " << CI.OutputBaselines[i]
+ << " " << BL.printf("%16.6x %16.6y %16.6z")
+ << " " << f166 << BL.getRadius() << endl;
+ if(CI.Screen)
+ cout << "Final Baseline " << CI.OutputBaselines[i]
+ << " " << BL.printf("%16.6x %16.6y %16.6z")
+ << " " << f166 << BL.getRadius() << endl;
+
+ // offset - if one was input
+ if(CI.OutputBaselineOffsets[i].mag() >= 0.01) {
+ oflog << "Final Offset " << CI.OutputBaselines[i]
+ << " " << f166 << BL.X() - CI.OutputBaselineOffsets[i][0]
+ << " " << f166 << BL.Y() - CI.OutputBaselineOffsets[i][1]
+ << " " << f166 << BL.Z() - CI.OutputBaselineOffsets[i][2]
+ << " " << f166 << BL.getRadius() - CI.OutputBaselineOffsets[i].mag()
+ << endl;
+ if(CI.Screen)
+ cout << "Final Offset " << CI.OutputBaselines[i]
+ << " " << f166 << BL.X() - CI.OutputBaselineOffsets[i][0]
+ << " " << f166 << BL.Y() - CI.OutputBaselineOffsets[i][1]
+ << " " << f166 << BL.Z() - CI.OutputBaselineOffsets[i][2]
+ << " " << f166 << BL.getRadius() - CI.OutputBaselineOffsets[i].mag()
+ << endl;
+ }
+ }
+ }
+ oflog << "Data Totals: " << NEp << " epochs, " << nDD << " DDs." << endl;
+ if(CI.Screen)
+ cout << "Data Totals: " << NEp << " epochs, " << nDD << " DDs." << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+double RMSResidualOfFit(int N, Vector<double>& dX, bool final)
+{
+try {
+ int i,j,nd,cnt;
+ double rms;
+ string lab;
+ Vector<double> f,Res;
+ Matrix<double> P;
+ map<DDid,DDData>::iterator it;
+ format f166(16,6),f133(13,3),f82s(8,2,2);
+
+ // open an output file for post fit DD residuals
+ ofstream ddrofs;
+ if(final && !CI.OutputDDRFile.empty()) {
+ ddrofs.open(CI.OutputDDRFile.c_str(),ios::out);
+ if(ddrofs) {
+ oflog << "Opened file " << CI.OutputDDRFile
+ << " for post fit residuals output." << endl;
+ ddrofs << "# " << Title << endl;
+ ddrofs << "RES site site sat sat week sec_wk count"
+ << " Data Estimate Residual" << endl;
+ }
+ else {
+ oflog << "Warning - Failed to open DDR output file " << CI.OutputDDRFile
+ << ". Do not output post fit residuals.\n";
+ }
+ }
+
+ // go all the way back through the data
+ nd= 0;
+ rms = 0.0;
+ cnt = -1;
+ while(1) {
+ cnt++;
+ if(cnt > maxCount) break;
+ Data = Vector<double>(Mmax,0.0);
+ DataNL.clear();
+ for(i=0,it=DDDataMap.begin(); it != DDDataMap.end(); it++) {
+ j = index(it->second.count,cnt);
+ if(j == -1) continue;
+ if(CI.Frequency == 1) Data(i) = it->second.DDL1[j];
+ if(CI.Frequency == 2) Data(i) = it->second.DDL2[j];
+ if(CI.Frequency == 3) // ionosphere-free phase
+ Data(i) = if1p * it->second.DDL1[j] + if2p * it->second.DDL2[j];
+ lab = ComposeName(it->first);
+ DataNL += lab;
+ i++;
+ }
+ if(i==0) continue; // no data -- don't assume this is the end
+ M = i;
+ Data.resize(M);
+
+ // this needed by EvaluateLSEquation
+ SolutionEpoch = FirstEpoch + cnt*CI.DataInterval;
+ EvaluateLSEquation(State,f,P);
+
+ Res = Data - f;
+ if(rms == 0.0) rms = norm(Res);
+ else rms *= sqrt(1.0+norm(Res)/(rms*rms));
+ nd += M;
+
+ if(final && ddrofs) {
+ string site1,site2;
+ GSatID sat1,sat2;
+ for(i=0; i<M; i++) {
+ DecomposeName(DataNL.getName(i), site1, site2, sat1, sat2);
+ ddrofs << "RES " << site1 << " " << site2 << " " << sat1 << " " << sat2
+ << " " << SolutionEpoch.printf("%4F %10.3g")
+ << " " << setw(5) << cnt
+ << " " << f166 << Data[i]
+ << " " << f166 << f[i]
+ << " " << f166 << Res[i]
+ << endl;
+ }
+ }
+
+ } // end loop over data
+
+ if(final && ddrofs) ddrofs.close();
+
+ rms /= sqrt(double(nd));
+
+ return rms;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/Jamfile b/dev/apps/geomatics/relposition/Jamfile
new file mode 100644
index 0000000..0d61f3f
--- /dev/null
+++ b/dev/apps/geomatics/relposition/Jamfile
@@ -0,0 +1,27 @@
+#
+# $Id: Jamfile 71 2006-08-01 18:46:39Z ehagen $
+#
+
+SubDir TOP apps geomatics relposition ;
+
+SEARCH_SOURCE += $(TOP)/src ;
+SEARCH_SOURCE += $(TOP)/apps/geomatics/lib ;
+
+# this is necessary for Windows b/c the linker command line gets too long!
+Library baselib : DataStructures.cpp CommandInput.cpp Configure.cpp
+ ReadRawData.cpp ReadObsFiles.cpp
+ EphemerisImprovement.cpp ClockModel.cpp Synchronization.cpp
+ DoubleDifference.cpp EditDDs.cpp DataOutput.cpp
+ Estimation.cpp Timetable.cpp ElevationMask.cpp
+ ProcessRawData.cpp ComputeRAIMSolution.cpp EditRawDataBuffers.cpp
+ ;
+
+#link prgms to libraries
+LinkLibraries DDBase : baselib ;
+# must have the prefix here ... why, and why not with others?
+LinkLibraries DDBase dprgm : $(LIBPREFIX)geomatic ;
+# gpstk must be last
+GPSLinkLibraries DDBase ddmerge : gpstk ;
+
+GPSMain DDBase : DDBase.cpp ;
+GPSMain ddmerge : ddmerge.cpp ;
diff --git a/dev/apps/geomatics/relposition/Makefile.am b/dev/apps/geomatics/relposition/Makefile.am
new file mode 100644
index 0000000..28876d1
--- /dev/null
+++ b/dev/apps/geomatics/relposition/Makefile.am
@@ -0,0 +1,17 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../../src -I$(srcdir)/../lib
+
+LDADD = ../lib/libgeomatic.la ../../../src/libgpstk.la
+DDBase_LDADD = ../lib/libgeomatic.la ../../../src/libgpstk.la ./libbase.la
+
+lib_LTLIBRARIES = libbase.la
+libbase_la_SOURCES = ClockModel.cpp CommandInput.cpp ComputeRAIMSolution.cpp \
+Configure.cpp DataOutput.cpp DataStructures.cpp DoubleDifference.cpp \
+EditDDs.cpp EditRawDataBuffers.cpp ElevationMask.cpp EphemerisImprovement.cpp \
+Estimation.cpp ProcessRawData.cpp ReadObsFiles.cpp ReadRawData.cpp \
+Synchronization.cpp Timetable.cpp
+
+bin_PROGRAMS = DDBase ddmerge
+
+DDBase_SOURCES = DDBase.cpp
+ddmerge_SOURCES = ddmerge.cpp
diff --git a/dev/apps/geomatics/relposition/ProcessRawData.cpp b/dev/apps/geomatics/relposition/ProcessRawData.cpp
new file mode 100644
index 0000000..d62019a
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ProcessRawData.cpp
@@ -0,0 +1,371 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ProcessRawData.cpp
+ * Process raw data, including editing, buffering and computation of a pseudorange
+ * solution using RAIM algorithm, part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD ProcessRawData put back EOP mean of date
+// TD ProcessRawData user input pseudorange limits in EditRawData(ObsFile& obsfile)
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+#include "EphemerisRange.hpp"
+
+// DDBase
+//#include "PreciseRange.hpp"
+#include "DDBase.hpp"
+#include "index.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// local data
+static vector<SatID> Sats; // used by RAIM, bad ones come back marked (id < 0)
+
+//------------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+ // ComputeRAIMSolution.cpp
+int ComputeRAIMSolution(ObsFile& of, DayTime& tt, vector<SatID>& Sats);
+void RAIMedit(ObsFile& of, vector<SatID>& Sats);
+ // here
+void FillRawData(ObsFile& of);
+void GetEphemerisRange(ObsFile& obsfile, DayTime& timetag);
+void EditRawData(ObsFile& of);
+int BufferRawData(ObsFile& of);
+
+//------------------------------------------------------------------------------------
+int ProcessRawData(ObsFile& obsfile, DayTime& timetag)
+{
+try {
+ int iret;
+
+ // fill RawDataMap for Station
+ FillRawData(obsfile);
+
+ // compute nominal elevation and ephemeris range; RecomputeFromEphemeris
+ // will re-do after synchronization and before differencing
+ GetEphemerisRange(obsfile,timetag);
+
+ // Edit raw data for this station
+ EditRawData(obsfile);
+
+ // fill RawDataMap for Station, and compute pseudorange solution
+ // return Sats, with bad satellites marked with (id < 0)
+ iret = ComputeRAIMSolution(obsfile,timetag,Sats);
+ if(iret) {
+ if(CI.Verbose) oflog
+ << " Warning - ProcessRawData for station " << obsfile.label
+ << ", at time "
+ << timetag.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g,")
+ << " failed with code " << iret
+ << (iret == 2 ? " (large RMS residual)" :
+ (iret == 1 ? " (large slope)" :
+ (iret == -1 ? " (no convergence)" :
+ (iret == -2 ? " (singular)" :
+ (iret == -3 ? " (not enough satellites)" :
+ (iret == -4 ? " (no ephemeris)" :
+ (iret == -5 ? " (invalid solution)" :
+ " (unknown)")))))))
+ << endl;
+ // TD change this -- or user input ?
+ //if(iret > 0) iret = 0; // suspect solution
+ if(iret) {
+ Stations[obsfile.label].PRS.Valid = false; // remove data in RAIMedit
+ }
+ }
+
+ // save statistics on PR solution
+ Station& st=Stations[obsfile.label];
+ if(st.PRS.Valid) {
+ st.PRSXstats.Add(st.PRS.Solution(0));
+ st.PRSYstats.Add(st.PRS.Solution(1));
+ st.PRSZstats.Add(st.PRS.Solution(2));
+ }
+
+ // if user wants PRSolution as a priori, update it here so that the
+ // elevation can be computed - this serves to eliminate the low-elevation
+ // data from the raw data buffers and simplifies processing.
+ // it does not seem to affect the final estimation processing at all...
+ if(st.usePRS && st.PRSXstats.N() >= 10) {
+ Position prs;
+ prs.setECEF(st.PRSXstats.Average(),
+ st.PRSYstats.Average(),
+ st.PRSZstats.Average());
+ st.pos = prs;
+
+ if(CI.Debug) oflog << "Update apriori=PR solution for " << obsfile.label
+ << " at " << timetag.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g")
+ << fixed << setprecision(5)
+ << " " << setw(15) << st.PRSXstats.Average()
+ << " " << setw(15) << st.PRSYstats.Average()
+ << " " << setw(15) << st.PRSZstats.Average()
+ << endl;
+ }
+
+ // edit based on RAIM, using Sats
+ RAIMedit(obsfile,Sats);
+
+ // buffer raw data, including ER(==0), EL and clock
+ iret = BufferRawData(obsfile);
+ if(iret) return iret; // always returns 0
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void FillRawData(ObsFile& of)
+{
+try {
+ //int nsvs;
+ double C1;
+ GSatID sat;
+ RinexObsData::RinexSatMap::const_iterator it;
+ RinexObsData::RinexObsTypeMap otmap;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+ Station& st=Stations[of.label];
+ st.RawDataMap.clear(); // assumes one file per site at each epoch
+
+ // loop over sat=it->first, ObsTypeMap=it->second
+ // fill DataStruct
+ //nsvs = 0;
+ for(it=of.Robs.obs.begin(); it != of.Robs.obs.end(); ++it) {
+ sat = it->first;
+ otmap = it->second;
+
+ // ignore non-GPS satellites
+ if(sat.system != SatID::systemGPS) continue;
+
+ // is the satellite excluded?
+ if(index(CI.ExSV,sat) != -1) continue;
+
+ // pull out the data
+ DataStruct D;
+ D.P1 = D.P2 = D.L1 = D.L2 = D.D1 = D.D2 = D.S1 = D.S2 = 0;
+ if(of.inP1>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inP1])) != otmap.end())
+ D.P1 = jt->second.data;
+ if(of.inP2>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inP2])) != otmap.end())
+ D.P2 = jt->second.data;
+ if(of.inL1>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inL1])) != otmap.end())
+ D.L1 = jt->second.data;
+ if(of.inL2>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inL2])) != otmap.end())
+ D.L2 = jt->second.data;
+ if(of.inD1>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inD1])) != otmap.end())
+ D.D1 = jt->second.data;
+ if(of.inD2>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inD2])) != otmap.end())
+ D.D2 = jt->second.data;
+ if(of.inS1>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inS1])) != otmap.end())
+ D.S1 = jt->second.data;
+ if(of.inS2>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inS2])) != otmap.end())
+ D.S2 = jt->second.data;
+ if(of.inC1>-1 && (jt=otmap.find(of.Rhead.obsTypeList[of.inC1])) != otmap.end())
+ C1 = jt->second.data;
+
+ // if P1 is not available, but C1 is, use C1 in place of P1
+ if((of.inP1 == -1 || D.P1 == 0) && of.inC1 > -1 &&
+ (jt=otmap.find(of.Rhead.obsTypeList[of.inC1])) != otmap.end() )
+ D.P1 = jt->second.data;
+
+ st.RawDataMap[sat] = D;
+ st.time = SolutionEpoch;
+ //nsvs++;
+
+ } // end loop over sats
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end FillRawData()
+
+//------------------------------------------------------------------------------------
+void GetEphemerisRange(ObsFile& obsfile, DayTime& timetag)
+{
+try {
+ CorrectedEphemerisRange CER; // temp
+ //PreciseRange CER;
+
+ Station& st=Stations[obsfile.label];
+
+ map<GSatID,DataStruct>::iterator it;
+ for(it=st.RawDataMap.begin(); it != st.RawDataMap.end(); it++) {
+
+ // ER cannot be used until the a priori positions are computed --
+ // because user may want the PRSolution as the a priori, we must wait.
+ // This will be updated in RecomputeFromEphemeris(), after Synchronization()
+ it->second.ER = 0.0;
+
+ // this will happen when user has chosen to use the PRSolution as the a priori
+ // and the st.pos has not yet been updated
+ if(st.pos.getCoordinateSystem() == Position::Unknown) {
+ it->second.elev = 90.0; // include it in the PRS
+ it->second.az = 0.0;
+ continue;
+ }
+
+ // TD why did PreciseRange not throw here?
+ // catch NoEphemerisFound and set elevation -90 --> edited out later
+ try {
+ //it->second.ER =
+ CER.ComputeAtReceiveTime(timetag, st.pos, it->first, *pEph);
+ it->second.elev = CER.elevation; // this will be compared to PRS elev Limit
+ it->second.az = CER.azimuth;
+ }
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ if(CI.Verbose)
+ oflog << "No ephemeris found for sat " << it->first << " at time "
+ << timetag.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ //it->second.ER = 0.0;
+ it->second.elev = -90.0; // do not include it in the PRS
+ it->second.az = 0.0;
+ }
+
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void EditRawData(ObsFile& obsfile)
+{
+try {
+ int i;
+
+ Station& st=Stations[obsfile.label];
+
+ vector<GSatID> BadSVs;
+ map<GSatID,DataStruct>::iterator it;
+ for(it=st.RawDataMap.begin(); it != st.RawDataMap.end(); it++) {
+ if(
+ // DON'T DO THIS - clock may get large and negative, leading to negative PR
+ // bad pseudorange
+ // (CI.Frequency != 2 && it->second.P1 < 1000.0) || // TD
+ // (CI.Frequency != 1 && it->second.P2 < 1000.0) ||
+ // below elevation cutoff (for PRS)
+ (it->second.elev < CI.PRSMinElevation)
+ )//end if
+ {
+ BadSVs.push_back(it->first);
+ }
+ }
+
+ // delete the bad satellites
+ for(i=0; i<BadSVs.size(); i++) {
+ st.RawDataMap.erase(BadSVs[i]);
+ }
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end EditRawData()
+
+//------------------------------------------------------------------------------------
+// add good raw data in RawDataMap to RawDataBuffers for the appropriate station
+// and satellite. Also buffer the clock solution and sigma.
+// NB these buffers must remain parallel.
+int BufferRawData(ObsFile& obsfile)
+{
+try {
+ int n;
+
+ Station& st=Stations[obsfile.label];
+
+ map<GSatID,DataStruct>::iterator it;
+ map<GSatID,RawData>::iterator jt;
+ // loop over satellites
+ for(n=0,it=st.RawDataMap.begin(); it != st.RawDataMap.end(); it++) {
+
+ // find iterator for this sat in Buffers map
+ jt = st.RawDataBuffers.find(it->first);
+ if(jt == st.RawDataBuffers.end()) {
+ RawData rd;
+ st.RawDataBuffers[it->first] = rd;
+ jt = st.RawDataBuffers.find(it->first);
+ }
+
+ // buffer the data -- keep parallel with count and clock
+ jt->second.count.push_back(Count);
+ jt->second.L1.push_back(it->second.L1);
+ jt->second.L2.push_back(it->second.L2);
+ jt->second.P1.push_back(it->second.P1);
+ jt->second.P2.push_back(it->second.P2);
+ jt->second.ER.push_back(it->second.ER);
+ jt->second.elev.push_back(it->second.elev);
+ jt->second.az.push_back(it->second.az);
+ n++;
+ }
+
+ // now buffer the clock solution and the timetag offset
+ // and buffer the (Station) count if there is some data
+ // NB these are NOT necessarily parallel to raw data buffers
+ if(st.PRS.isValid()) {
+ st.ClockBuffer.push_back(st.PRS.Solution(3));
+ st.ClkSigBuffer.push_back(st.PRS.Covariance(3,3));
+ st.RxTimeOffset.push_back(SolutionEpoch - obsfile.Robs.time);
+ }
+ else {
+ st.ClockBuffer.push_back(0.0);
+ st.ClkSigBuffer.push_back(0.0);
+ st.RxTimeOffset.push_back(0.0);
+ }
+ st.CountBuffer.push_back(Count);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/ReadObsFiles.cpp b/dev/apps/geomatics/relposition/ReadObsFiles.cpp
new file mode 100644
index 0000000..5a63a31
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ReadObsFiles.cpp
@@ -0,0 +1,229 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ReadObsFiles.cpp
+ * Open and read input RINEX observation files; part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+void ReadAllObsHeaders(void);
+int ReadNextObs(ObsFile& of);
+
+//------------------------------------------------------------------------------------
+void ReadAllObsHeaders(void)
+{
+try {
+ int i,j;
+ if(CI.Verbose) oflog << "BEGIN ReadAllObsHeaders()" << endl;
+
+ // open all obs files and read headers
+ for(i=0; i<ObsFileList.size(); i++) {
+ string filename;
+
+ // initialize -- this will mark unopened file
+ ObsFileList[i].ins.close(); // just in case
+ ObsFileList[i].ins.clear(); // just in case
+ ObsFileList[i].nread = -1;
+ ObsFileList[i].valid = false;
+
+ // filename
+ if(!CI.InputPath.empty()) filename = CI.InputPath + "/";
+ filename += ObsFileList[i].name;
+
+ // open
+ ObsFileList[i].ins.open(filename.c_str(),ios_base::in);
+ if(!ObsFileList[i].ins) {
+ oflog << "Warning: File " << filename
+ << " could not be opened. Ignore." << endl;
+ if(CI.Screen) cout << "Warning: File " << filename
+ << " could not be opened. Ignore." << endl;
+ continue;
+ }
+ ObsFileList[i].ins.exceptions(ios::failbit);
+
+ // read header
+ try {
+ ObsFileList[i].ins >> ObsFileList[i].Rhead;
+ }
+ catch(FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading header of input obs file "
+ << filename << " :\n" << e.getText(0) << endl;
+ ObsFileList[i].ins.close();
+ continue;
+ }
+ catch(Exception& e) {
+ cerr << "Caught a gpstk exception while reading header of input obs file "
+ << filename << " :\n" << e.getText(0) << endl;
+ ObsFileList[i].ins.close();
+ continue;
+ }
+
+ // check that file contains C1/P1,P2,L1,L2
+ ObsFileList[i].inP1 = -1;
+ ObsFileList[i].inP2 = -1;
+ ObsFileList[i].inL1 = -1;
+ ObsFileList[i].inL2 = -1;
+ ObsFileList[i].inC1 = -1;
+ ObsFileList[i].inD1 = -1;
+ ObsFileList[i].inD2 = -1;
+ ObsFileList[i].inS1 = -1;
+ ObsFileList[i].inS2 = -1;
+ for(j=0; j<ObsFileList[i].Rhead.obsTypeList.size(); j++) {
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("C1"))
+ ObsFileList[i].inC1 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("L1"))
+ ObsFileList[i].inL1 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("L2"))
+ ObsFileList[i].inL2 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("P1"))
+ ObsFileList[i].inP1 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("P2"))
+ ObsFileList[i].inP2 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("D1"))
+ ObsFileList[i].inD1 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("D2"))
+ ObsFileList[i].inD2 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("S1"))
+ ObsFileList[i].inS1 = j;
+ if(ObsFileList[i].Rhead.obsTypeList[j]==RinexObsHeader::convertObsType("S2"))
+ ObsFileList[i].inS2 = j;
+ }
+
+ ObsFileList[i].nread = 0;
+ ObsFileList[i].valid = true;
+ ObsFileList[i].getNext = true;
+
+ if(CI.Verbose) oflog << endl;
+ oflog << "Opened and read header of observation file: " << filename << endl;
+ if(CI.Screen)
+ cout << "Opened and read header of observation file: " << filename << endl;
+ if(CI.Verbose) ObsFileList[i].Rhead.dump(oflog);
+
+ // prepare for RAIM solution
+ Stations[ObsFileList[i].label].PRS.RMSLimit = CI.PRSrmsLimit;
+ Stations[ObsFileList[i].label].PRS.Algebraic = CI.PRSalgebra;
+ Stations[ObsFileList[i].label].PRS.MaxNIterations = CI.PRSnIter;
+ Stations[ObsFileList[i].label].PRS.Convergence = CI.PRSconverge;
+ Stations[ObsFileList[i].label].PRS.Solution.resize(4);
+ Stations[ObsFileList[i].label].PRSXstats.Reset();
+ Stations[ObsFileList[i].label].PRSYstats.Reset();
+ Stations[ObsFileList[i].label].PRSZstats.Reset();
+ if(CI.Debug) {
+ Stations[ObsFileList[i].label].PRS.Debug = true;
+ Stations[ObsFileList[i].label].PRS.pDebugStream = &oflog;
+ }
+
+ } // end loop over input observation files
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int ReadNextObs(ObsFile& of)
+{
+try {
+ // read the next observation epoch
+ // decimate to even multiples of DataInterval
+ while(1) {
+ try {
+ if(CI.Debug) oflog << "ReadNextObs for file " << of.name << endl;
+ if(!of.getNext) return 1;
+ of.ins >> of.Robs;
+ }
+ catch(FFStreamError& e) {
+ if(CI.Verbose)
+ oflog << "ReadNextObs caught an FFStreamError while reading obs in file "
+ << of.name << " :\n" << e << endl;
+ return -2;
+ }
+ catch(Exception& e) {
+ if(CI.Verbose)
+ oflog << "ReadNextObs caught an exception while reading obs in file "
+ << of.name << " :\n" << e << endl;
+ return -3;
+ }
+
+ if(!of.ins) {
+ if(CI.Verbose) oflog << "EOF found on file " << of.name << endl;
+ return -1; // EOF
+ }
+
+ //temp
+ if(CI.Debug) {
+ oflog << "ReadNextObs finds SVs:";
+ RinexObsData::RinexSatMap::const_iterator it;
+ for(it=of.Robs.obs.begin(); it != of.Robs.obs.end(); ++it)
+ oflog << " " << it->first;
+ oflog << endl;
+ }
+
+ // is the timetag an even multiple of DataInterval?
+ double sow = of.Robs.time.GPSsecond();
+ double frac = sow - CI.DataInterval*double(int(sow/CI.DataInterval + 0.5));
+ if(fabs(frac) < 0.5) break;
+ else if(CI.Debug) oflog << "skip epoch "
+ << of.Robs.time.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ }
+
+ of.nread++; // success
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/ReadRawData.cpp b/dev/apps/geomatics/relposition/ReadRawData.cpp
new file mode 100644
index 0000000..4cf8fe9
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ReadRawData.cpp
@@ -0,0 +1,367 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ReadRawData.cpp
+ * Read RINEX observation file data, all epochs and all files; part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD ReadRawData.cpp error msg for failure to open output RAW file
+// TD ReadRawData.cpp is LastEpoch ever used?
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+#include <fstream>
+
+// GPSTk
+
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// local data
+static DayTime EarliestTime;// earliest timetag among newly-input observation epochs
+static int ngood; // number of good data points, this epoch
+static double sow; // GPS seconds of week of current epoch
+ofstream ofprs; // output file for PRS solution - extern in ComputeRAIM..
+
+//------------------------------------------------------------------------------------
+// prototypes -- others
+int OutputClockData(void); // DataIO.cpp
+int ReadNextObs(ObsFile& of); // ReadObsFiles.cpp
+int ProcessRawData(ObsFile& obsfile, DayTime& timetag); // ProcessRawData.cpp
+// prototypes -- this module only
+int FindEarliestTime(void);
+void ComputeSolutionEpoch(void);
+
+//------------------------------------------------------------------------------------
+int ReadRawData(void)
+{
+try {
+ int iret,nfile,ntotal;
+
+ if(CI.Verbose) oflog << "BEGIN ReadRawData()" << endl;
+ if(CI.Screen) cout << "Reading raw data and computing PR solution ..." << endl;
+
+ if(!CI.OutputPRSFile.empty()) {
+ ofprs.open(CI.OutputPRSFile.c_str(),ios::out);
+ if(!ofprs) {
+ // TD error msg
+ CI.OutputPRSFile = string("");
+ }
+ else {
+ oflog << "Opened file " << CI.OutputPRSFile << " for PRS output." << endl;
+ ofprs << "# " << Title << endl;
+ ofprs << "PRS site ns week sec wk dX(m) dY(m)"
+ << " dZ(m) clk(m) rms(m) PRNs..."
+ //<< " (ret) Valid/NotValid"
+ << endl;
+ }
+ }
+
+ // loop over all epochs in all files
+ do {
+
+ // find earliest time among open, active files, and synchronize reading
+ iret = FindEarliestTime();
+ if(iret == 1) {
+ if(CI.Debug) oflog << "End of data reached in ReadRawData." << endl;
+ iret = 0;
+ break;
+ }
+ if(iret == 2) {
+ if(CI.Verbose) oflog << "After end time (quit) : "
+ << EarliestTime.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ iret = 0;
+ break;
+ }
+ if(iret == 3) {
+ if(CI.Debug) oflog << "Before begin time : "
+ << EarliestTime.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g") << endl;
+ iret = 0;
+ continue;
+ }
+
+ if(CI.Debug) oflog << "Found " << ngood << " stations with data at epoch "
+ << EarliestTime.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g") << endl;
+
+ // round receiver epoch to even multiple of data interval, else even second
+ ComputeSolutionEpoch();
+
+ // preprocess at this epoch
+ for(nfile=0; nfile<ObsFileList.size(); nfile++) {
+
+ // skip files that are 'dead' or out of synch
+ if(!ObsFileList[nfile].valid) continue;
+ if(fabs(ObsFileList[nfile].Robs.time - EarliestTime) >= 0.5) continue;
+
+ // process at the nominal receive time
+ iret = ProcessRawData(ObsFileList[nfile],ObsFileList[nfile].Robs.time);
+ if(iret) break;
+
+ } // end loop over observation files
+
+ } while(iret == 0); // end loop over all epochs
+
+ if(iret) return iret;
+
+ if(CI.Screen) cout << "Last epoch is "
+ << SolutionEpoch.printf("%Y/%02m/%02d %2H:%02M:%6.3f = %F/%10.3g") << endl;
+ if(CI.Verbose) oflog << "Last epoch is "
+ << SolutionEpoch.printf("%Y/%02m/%02d %2H:%02M:%6.3f = %F/%10.3g") << endl;
+
+ // was there any data?
+ for(ntotal=0,nfile=0; nfile<ObsFileList.size(); nfile++) {
+ //if(!ObsFileList[nfile].valid) continue;
+ if(ObsFileList[nfile].nread <= 0)
+ ObsFileList[nfile].valid = false;
+ else
+ ntotal += ObsFileList[nfile].nread;
+ }
+ if(CI.Verbose)
+ oflog << "Total: " << ObsFileList.size() << " files, "
+ << ntotal << " epochs were read." << endl;
+ if(CI.Screen)
+ cout << "Total: " << ObsFileList.size() << " files, "
+ << ntotal << " epochs were read." << endl;
+
+ if(ntotal == 0) {
+ oflog << "No data found. Abort." << endl;
+ if(CI.Screen)
+ cout << "No data found. Abort." << endl;
+ return -3;
+ }
+
+ // average PR solution
+ {
+ bool ok=true;
+ map<string,Station>::const_iterator it;
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ Position& pos=Stations[it->first].pos;
+
+ if(CI.Verbose)
+ oflog << "For station " << it->first << " read "
+ << it->second.PRSXstats.N() << " good data epochs." << endl;
+
+ if(it->second.PRSXstats.N() <= 0) {
+ oflog << "Warning - No good data found for station " << it->first << endl;
+ ok = false;
+ continue;
+ }
+
+ Position PRsol;
+ PRsol.setECEF(it->second.PRSXstats.Average(),
+ it->second.PRSYstats.Average(),
+ it->second.PRSZstats.Average());
+ if(CI.Verbose) {
+ oflog << "Average PR solution for site " << it->first
+ << fixed << setprecision(5)
+ << " " << setw(15) << it->second.PRSXstats.Average()
+ << " " << setw(15) << it->second.PRSYstats.Average()
+ << " " << setw(15) << it->second.PRSZstats.Average()
+ << endl;
+ oflog << "Std-dev PR solution for site " << it->first
+ << fixed << setprecision(5)
+ << " " << setw(15) << it->second.PRSXstats.StdDev()
+ << " " << setw(15) << it->second.PRSYstats.StdDev()
+ << " " << setw(15) << it->second.PRSZstats.StdDev()
+ << endl;
+ }
+ if(CI.Screen) {
+ cout << "Average PR solution for site " << it->first
+ << fixed << setprecision(5)
+ << " " << setw(15) << it->second.PRSXstats.Average()
+ << " " << setw(15) << it->second.PRSYstats.Average()
+ << " " << setw(15) << it->second.PRSZstats.Average()
+ << endl;
+ cout << "Std-dev PR solution for site " << it->first
+ << fixed << setprecision(5)
+ << " " << setw(15) << it->second.PRSXstats.StdDev()
+ << " " << setw(15) << it->second.PRSYstats.StdDev()
+ << " " << setw(15) << it->second.PRSZstats.StdDev()
+ << endl;
+ }
+
+ // use PR solution if apriori position not given
+ if(it->second.usePRS) {
+ pos = PRsol;
+ oflog << "Adopting average pseudorange solution for "
+ << it->first << " position"
+ //<< pos.printf(" : %.4x %.4y %.4z meters ECEF")
+ << endl;
+ if(CI.Screen)
+ cout << "Adopting average pseudorange solution for "
+ << it->first << " position"
+ //<< pos.printf(" : %.4x %.4y %.4z meters ECEF")
+ << endl;
+ }
+ //else if(pos.getRadius() < 1.) {
+ //}
+ else {
+ // sanity check...
+ // keep this low! large position errors have enduring effects in editing!
+ if(range(pos,PRsol) > 50.0) {
+ oflog << "Warning - Pseudorange solution is far from input "
+ << "position for station " << it->first << " : delta = "
+ << fixed << setprecision(3) << range(pos,PRsol)
+ << " meters. Abort." << endl;
+ cerr << "Warning - Pseudorange solution is far from input "
+ << "position for station " << it->first << " : delta = "
+ << fixed << setprecision(3) << range(pos,PRsol)
+ << " meters. Abort." << endl;
+ iret = -1;
+ OutputClockData(); // usually done in ClockModel() later...
+ }
+ }
+ }
+
+ if(!ok) {
+ oflog << "One or more stations have no data. Abort." << endl;
+ cerr << "One or more stations have no data. Abort." << endl;
+ iret = -3;
+ }
+ }
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end ReadRawData()
+
+//------------------------------------------------------------------------------------
+// read the data for the next (earliest in future) observation epoch
+int FindEarliestTime(void)
+{
+try {
+ int iret,nfile;
+
+ EarliestTime = DayTime(DayTime::END_OF_TIME);
+
+ // loop over all (open) obs files
+ for(nfile=0; nfile<ObsFileList.size(); nfile++) {
+
+ // is this a valid, active file?
+ if(!ObsFileList[nfile].valid) continue;
+
+ iret = ReadNextObs(ObsFileList[nfile]);
+ if(iret < 0) { // error or EOF -- set file 'dead'
+ ObsFileList[nfile].valid = false;
+ continue;
+ }
+ // success - file is active
+ else if(ObsFileList[nfile].Robs.time < EarliestTime)
+ EarliestTime = ObsFileList[nfile].Robs.time;
+
+ } // end loop over all obs files
+
+ // if no more data is available, EarliestTime will never get set
+ if(EarliestTime == DayTime(DayTime::END_OF_TIME)) return 1;
+
+ // if past end time, quit
+ if(EarliestTime > CI.EndTime) return 2;
+
+ // synchronize reading at EarliestTime
+ for(ngood=0,nfile=0; nfile<ObsFileList.size(); nfile++) {
+ if(!ObsFileList[nfile].valid) continue;
+ // if this data time == EarliestTime, process and set flag to read again
+ if(fabs(ObsFileList[nfile].Robs.time - EarliestTime) < 1.) {
+ ngood++;
+ ObsFileList[nfile].getNext = true;
+ }
+ else ObsFileList[nfile].getNext = false;
+ }
+
+ // apply time limits
+ if(EarliestTime < CI.BegTime) return 3;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void ComputeSolutionEpoch(void)
+{
+try {
+ double dt;
+
+ // round receiver epoch to even multiple of data interval, else even second
+ SolutionEpoch = EarliestTime;
+ sow = SolutionEpoch.GPSsecond();
+ sow = CI.DataInterval * double(int(sow/CI.DataInterval + 0.5));
+ SolutionEpoch += (sow - SolutionEpoch.GPSsecond());
+ if(CI.Debug) oflog << "Solution epoch is "
+ << SolutionEpoch.printf("%Y/%02m/%02d %2H:%02M:%6.3f = %F/%10.3g") << endl;
+
+ // save first and last epochs
+ if(fabs(FirstEpoch-DayTime::BEGINNING_OF_TIME) < 0.1) {
+ FirstEpoch = SolutionEpoch;
+ if(CI.Screen)
+ cout << "First epoch is "
+ << FirstEpoch.printf("%Y/%02m/%02d %2H:%02M:%6.3f = %F/%10.3g") << endl;
+ if(CI.Verbose)
+ oflog << "First epoch is "
+ << FirstEpoch.printf("%Y/%02m/%02d %2H:%02M:%6.3f = %F/%10.3g") << endl;
+
+ // compute rotation matrix that corrects for earth orientation
+ //PNS = ident<double>(3);
+ } // end if first epoch
+
+ LastEpoch = SolutionEpoch; // TD use LastEpoch?
+
+ // compute the current count
+ dt = SolutionEpoch-FirstEpoch;
+ Count = int(dt/CI.DataInterval + 0.5);
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/Synchronization.cpp b/dev/apps/geomatics/relposition/Synchronization.cpp
new file mode 100644
index 0000000..4619fe5
--- /dev/null
+++ b/dev/apps/geomatics/relposition/Synchronization.cpp
@@ -0,0 +1,409 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Synchronization.cpp
+ * Interpolate the phase data to correct for the clock offset, synchronizing the
+ * data at different stations; part of program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD Synchronization.cpp make number of phase points in fit an input parameter
+// TD Synchronization.cpp make MaxGap=10; an input parameter and
+// TD Synchronization.cpp use this in EditRawDataBuffers() to remove single points
+// TD Synchronization.cpp that have gaps larger than this on each side of them.
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+#include <deque>
+
+// GPSTk
+#include "geometry.hpp" // DEG_TO_RAD
+#include "PolyFit.hpp"
+#include "EphemerisRange.hpp"
+
+// DDBase
+#include "DDBase.hpp"
+#include "PhaseWindup.hpp"
+#include "index.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only -- called by Synchronization()
+void FitPhaseAndMoveData(GSatID& sat, string site, Station& st, RawData& rd);
+
+//------------------------------------------------------------------------------------
+int Synchronization(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN Synchronization()" << endl;
+
+ GSatID sat;
+ map<string,Station>::iterator it;
+ map<GSatID,RawData>::iterator jt;
+
+ // loop over stations
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ //string label = it->first;
+ Station& st=it->second;
+ // loop over satellites
+ for(jt=st.RawDataBuffers.begin(); jt != st.RawDataBuffers.end(); jt++) {
+ sat = jt->first;
+ RawData& rawdat=jt->second;
+
+ if(rawdat.count.size() == 0) continue;
+
+ // Loop over all points in the buffers, using a sliding window.
+ // For each window, fit a polynomial to the phase data.
+ // At each point, evaluate the polynomial at the true receive time.
+ FitPhaseAndMoveData(sat,it->first,st,rawdat);
+
+ } // loop over sats
+
+ } // loop over stations
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end Synchronization()
+
+//------------------------------------------------------------------------------------
+// Process using a sliding window:
+// loop over all points in the buffers of RawData, using a sliding window of fixed
+// length which is centered (as much as possible) about the buffer point of interest.
+// Process each buffer point using the data in the sliding window.
+void FitPhaseAndMoveData(GSatID& sat, string site, Station& statn, RawData& rawdat)
+{
+try {
+ const int N=11; // size of the window // best odd // TD make input
+ const int D=3; // degree of polynomial to be fit // TD make input
+ bool change; // mark a change in the deques --> fit a new polynomial
+ int nc; // index into the buffer at the current point
+ int nbeg; // index into the buffer at the start of the window
+ int nend; // index into the buffer at the end of the window
+ int nhalf=N/2; // half the window size
+ int len; // length of the buffers
+ int ngap; // number of counts between the end pt (nend) and the next
+ int nsize; // size of the sliding window (deques)
+ int i,j;
+ double x,x0,d10,d20,dx,dph1,dph2;
+ PolyFit<double> PF1,PF2;// fit polynomials to L1 and L2 phase
+ deque<int> dc; // the sliding window : time -- keep the deques
+ deque<double> d1,d2; // the sliding window : data -- parallel
+
+ // starting: nend is before the current point (0)
+ nbeg = 0;
+ nend = -1;
+ change = true;
+ len = int(rawdat.count.size()); // length of the buffers
+
+ // Loop over count (epochs). At each count, fill a 'sliding window' deque
+ // (one for each of count, L1 and L2) with up to N points, including
+ // containing the current count. The points run from index nbeg to nend.
+ for(nc=0; nc<len; nc++) {
+ // -------------------------------------------------------------
+ // the only way this could be true is if the current point is the
+ // first point past a big (>=MaxGap) gap
+//if(CI.Verbose && site=="Aref" && sat.id==29) oflog << "LOOP nc=" << nc << " nbeg=" << nbeg << " nend=" << nend << " ngap=" << (rawdat.count[nend+1]-rawdat.count[nend]) << " len=" << len << endl;
+ if(nc > nend) {
+ // clear window and start again
+ dc.clear();
+ d1.clear();
+ d2.clear();
+ nbeg = nend = nc;
+ ngap = rawdat.count[nend+1]-rawdat.count[nend];
+ if(ngap >= CI.MaxGap) continue; // skip this point if there's a gap
+ dc.push_back(rawdat.count[nend]); // time / DataInterval
+ d1.push_back(rawdat.L1[nend]); // cycles
+ d2.push_back(rawdat.L2[nend]); // cycles
+ change = true;
+//if(CI.Verbose && site=="Aref" && sat.id==29) oflog << "clear" << endl;
+ }
+
+ // -------------------------------------------------------------
+ // advance the end of the window (nend) when all these are true:
+ while( (nend < len-1) // point is not beyond the end of the buffer
+ && (nend-nbeg+1 < N) // & the window is not full
+ // & there is not a big gap
+ && ((ngap = rawdat.count[nend+1]-rawdat.count[nend]) < CI.MaxGap)
+ && (nc >= nbeg) // & the current point will stay in window
+ ) {
+ // expand the window one point into the future
+ nend++;
+ dc.push_back(rawdat.count[nend]); // keep the deques parallel
+ d1.push_back(rawdat.L1[nend]);
+ d2.push_back(rawdat.L2[nend]);
+ change = true;
+//if(CI.Verbose && site=="Aref" && sat.id==29) oflog << "advance" << endl;
+ };
+
+ // -------------------------------------------------------------
+ // is this an isolated point?
+ //if(ngap >= CI.MaxGap) {
+ // nc = nend+1;
+ // continue;
+ //}
+
+ // -------------------------------------------------------------
+ // Process the deques when a change has been made
+ if(change) {
+//if(CI.Verbose && site=="Aref" && sat.id==29) {
+//oflog << "buffer:";
+//for(i=nbeg; i<=nend; i++) oflog << " " << rawdat.count[i];
+//oflog << " end+1: " << rawdat.count[nend+1] << endl;
+//}
+ // size of the sliding window (deques)
+ nsize = dc.size();
+
+ // must not have isolated points
+ // EditRawBuffers should have removed these
+ if(nsize < 2) {
+ Exception e( (nsize == 0 ?
+ string("ERROR - empty window") : string("ERROR - isolated point"))
+ + string(" for station ") + site + string(" and satellite ")
+ + sat.toString()
+ + string(" at count ") + StringUtils::asString(rawdat.count[nc])
+ + string(" = time ")
+ + (FirstEpoch + rawdat.count[nc]*CI.DataInterval).printf(
+ "%Y/%m/%d %H:%02M:%6.3f = %F/%10.3g"));
+ GPSTK_THROW(e);
+ }
+
+ // fit a polynomial of degree D to the points in deques
+ PF1.Reset(D<nsize ? D : nsize);
+ PF2.Reset(D<nsize ? D : nsize);
+
+ // debias using the first point
+ x0 = double(dc[0]);
+ d10 = d1[0];
+ d20 = d2[0];
+
+ // use all the data in the sliding window
+ for(i=0; i<nsize; i++) {
+ // x is nominal receive time in units of count (DataInterval)
+ x = double(dc[i]);
+ // find the same count in the station buffers
+ j = index(statn.CountBuffer,dc[i]);
+ //if(j == -1) ?? TD
+ x -= statn.RxTimeOffset[j]/CI.DataInterval;
+ PF1.Add(d1[i]-d10,x-x0);
+ PF2.Add(d2[i]-d20,x-x0);
+ }
+
+ change = false;
+
+ //if(CI.Debug)
+ // for(i=0; i<nsize; i++) {
+ // x = double(dc[i]); // count
+ // j = index(statn.CountBuffer,dc[i]);
+ // x -= statn.RxTimeOffset[j]/CI.DataInterval;
+ // //PF1.Add(d1[i]-d10,x-x0);
+ // //PF2.Add(d2[i]-d20,x-x0);
+ // oflog << "FIT " << site << " " << sat
+ // << " " << nc << " " << rawdat.count[nc]
+ // << " " << (D<nsize?D:nsize) << " " << nsize
+ // << fixed << setprecision(6)
+ // << " " << nbeg+i << " " << dc[i] << " " << rawdat.count[nbeg+i]
+ // << " " << x-x0 << " " << d1[i]-d10
+ // << " " << PF1.Evaluate(x-x0)
+ // << " " << d1[i]-d10 - PF1.Evaluate(x-x0)
+ // << endl;
+ //}
+ }
+
+ // -------------------------------------------------------------
+ // Process each point in the window/buffer
+ // correct L1,L2,P1,P2 using the polynomials and dt=RxTTOffset+clk/c
+ // statn.ClockBuffer contains clock solution
+ // statn.RxTimeOffset contains SolutionEpoch - Rx timetag
+ //
+ // nominal time for point nc
+ x = double(rawdat.count[nc]);
+ // find the index of the same count in the station buffers
+ j = index(statn.CountBuffer,rawdat.count[nc]);
+ // time difference due to receiver clock, in units of count
+ dx = statn.RxTimeOffset[j]/CI.DataInterval
+ + (statn.ClockBuffer[j]/C_GPS_M)/CI.DataInterval;
+ // change in phase between nominal and true time
+ dph1 = PF1.Evaluate(x-x0) - PF1.Evaluate(x-dx-x0);
+ rawdat.L1[nc] += dph1;
+ rawdat.P1[nc] += dph1 * wl1;
+ dph2 = PF2.Evaluate(x-x0) - PF2.Evaluate(x-dx-x0);
+ rawdat.L2[nc] += dph2;
+ rawdat.P2[nc] += dph2 * wl2;
+
+ //if(CI.Debug) oflog << "FIT " << site << " " << sat
+ // << " " << nc << " " << rawdat.count[nc]
+ // << fixed << setprecision(6)
+ // << " " << x-x0 << " " << dx
+ // << " " << statn.RxTimeOffset[nc]
+ // << " " << statn.ClockBuffer[nc]/C_GPS_M
+ // << " " << dph1
+ // << " " << dph2 << " eval" << endl;
+
+ // -------------------------------------------------------------
+ // remove old point(s) from the deques
+ while( (nend < len-1) // a new end point would not go beyond buffer
+ && (ngap < CI.MaxGap) // & there would not be a big gap
+ && (nend-nbeg+1 > N-1) // & window is full
+ && (nc >= nbeg+nhalf) // & current point is at mid-window or later
+ ) {
+ dc.pop_front(); // keep the deques parallel
+ d1.pop_front();
+ d2.pop_front();
+ nbeg++;
+ change = true;
+ };
+
+ } // loop over counts
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int RecomputeFromEphemeris(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN RecomputeFromEphemeris()" << endl;
+
+ int nc;
+ double angle,pwu,shadow;
+ DayTime tt;
+ GSatID sat;
+ Position SV;
+ Position West,North,Rx2Tx;
+ CorrectedEphemerisRange CER; // TD PreciseRange?
+ map<string,Station>::iterator it;
+ map<GSatID,RawData>::iterator jt;
+
+ // loop over stations
+ for(it=Stations.begin(); it != Stations.end(); it++) {
+ //string label = it->first;
+ Station& statn=it->second;
+
+ //if(CI.Verbose) oflog << " Station " << it->first
+ // << " with " << statn.RawDataBuffers.size() << " raw buffers." << endl;
+
+ // compute W and N unit vectors at this station,
+ // rotated by antenna azimuth angle
+ angle = statn.ant_azimuth * DEG_TO_RAD;
+ if(fabs(angle) > 0.0001) { // also below..
+ Matrix<double> Rot;
+ Rot = SingleAxisRotation(angle,1) * UpEastNorth(statn.pos);
+ West = Position(-Rot(1,0),-Rot(1,1),-Rot(1,2));
+ North = Position(Rot(2,0),Rot(2,1),Rot(2,2));
+ }
+
+ // loop over satellites
+ for(jt=statn.RawDataBuffers.begin(); jt!=statn.RawDataBuffers.end(); jt++) {
+ sat = jt->first;
+ RawData& rawdat=jt->second;
+
+ //if(CI.Verbose) oflog << " Satellite " << sat
+ // << " with buffer size " << rawdat.count.size() << endl;
+
+ if(rawdat.count.size() == 0) continue;
+
+ // Loop over count (epochs). At each count, recompute the ephemeris
+ // range and correct the phase for phase windup.
+ for(nc=0; nc<rawdat.count.size(); nc++) {
+
+ // nominal time is now the actual receive time of the data
+ tt = FirstEpoch + rawdat.count[nc] * CI.DataInterval;
+
+ // try to get the ephemeris info
+ try {
+ // update ephemeris range and elevation
+ rawdat.ER[nc] =
+ CER.ComputeAtReceiveTime(tt, statn.pos, sat, *pEph);
+ rawdat.elev[nc] = CER.elevation;
+ rawdat.az[nc] = CER.azimuth;
+
+ // correct for phase windup
+ if(fabs(angle) > 0.0001) { // also above..
+ // get the receiver-to-transmitter unit vector
+ // and the satellite position
+ Rx2Tx = Position(CER.cosines);
+ SV = Position(CER.svPosVel.x[0],
+ CER.svPosVel.x[1],
+ CER.svPosVel.x[2]);
+
+ // compute phase windup
+ pwu = PhaseWindup(tt,SV,Rx2Tx,West,North,shadow);
+
+ // TD eclipse alert
+ //if(shadow > 0.0) { ... }
+
+ // correct the phase
+ rawdat.L1[nc] += pwu * wl1;
+ rawdat.L2[nc] += pwu * wl2;
+ }
+ }
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ // these should have been caught and removed before...
+ oflog << "Warning - No ephemeris found for sat " << sat
+ << " at time "
+ << tt.printf("%Y/%02m/%02d %2H:%02M:%6.3f=%F/%10.3g")
+ << " in RecomputeFromEphemeris()" << endl;
+ rawdat.ER[nc] = 0.0;
+ rawdat.elev[nc] = -90.0;
+ rawdat.az[nc] = 0.0;
+ }
+ } // end loop over counts
+ } // loop over sats
+
+ } // loop over stations
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/Timetable.cpp b/dev/apps/geomatics/relposition/Timetable.cpp
new file mode 100644
index 0000000..ec5ec86
--- /dev/null
+++ b/dev/apps/geomatics/relposition/Timetable.cpp
@@ -0,0 +1,845 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Timetable.cpp
+ * Compute reference satellites time table for program DDBase.
+ */
+
+//------------------------------------------------------------------------------------
+// TD Timetable.cpp handle week rollover in TimeTable() and ReadTimeTable()
+// TD Timetable.cpp check logic
+// TD Timetable.cpp check output messages
+// TD Timetable.cpp add several limits as input parameters
+// TD Timetable.cpp 4. edit TTab, removing segments that do not create gaps
+
+//------------------------------------------------------------------------------------
+// includes
+// system
+
+// GPSTk
+// Geomatics
+#include "DDid.hpp"
+#include "index.hpp"
+// DDBase
+#include "DDBase.hpp"
+
+//------------------------------------------------------------------------------------
+double RotatedAntennaElevation(double elevation, double azimuth); // ElevationMask.cpp
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+// Segment structure used in deducing time table
+// functions implemented in Timetable.cpp
+class TTSegment {
+public:
+ std::string site1,site2;
+ gpstk::GSatID sat;
+ int start,end; // starting and ending counts
+ int first,last; // counts to actually use in timetable
+ int length; // length (in data points)
+ double minelev; // minimum elevation in this segment
+ double maxelev; // maximum elevation in this segment
+
+ TTSegment(void) : start(-1),length(0),minelev(0.0),maxelev(0.0) {}
+
+ double metric(void) const
+ { return (double(length)/100.0 + 100.0*(minelev+maxelev)/90.0); }
+
+ //bool operator<(const TTSegment& right) const
+ //{ return (metric() < right.metric()); }
+
+ //bool operator>(const TTSegment& right) const
+ //{ return (metric() > right.metric()); }
+
+ void findElev(void);
+
+ friend ostream& operator<<(ostream& s, const TTSegment& t);
+
+ friend bool increasingMetricSort(const TTSegment& left, const TTSegment& right);
+ friend bool decreasingMetricSort(const TTSegment& left, const TTSegment& right);
+ friend bool startSort(const TTSegment& left, const TTSegment& right);
+};
+
+//------------------------------------------------------------------------------------
+// local data
+list<TTSegment> TimeTable; // satellite time table
+map<SDid,SDData> SDmap; // map of SD data - not full single differences
+
+//------------------------------------------------------------------------------------
+// prototypes -- this module only
+int ReadTimeTable(void);
+int ComputeBaselineTimeTable(const string& bl);
+int TTComputeSingleDifferences(const string& bl, const double ElevLimit);
+int TimeTableAlgorithm(list<TTSegment>& TTS, list<TTSegment>& TTab);
+bool startSort(const TTSegment& left, const TTSegment& right);
+bool increasingMetricSort(const TTSegment& left, const TTSegment& right);
+bool decreasingMetricSort(const TTSegment& left, const TTSegment& right);
+
+//------------------------------------------------------------------------------------
+// Find the entry in the timetable which applies to the baseline given in sdid and
+// the time tt. Set the satellite in sdid to the reference satellite, and set the
+// time tt to the time (in the future) when the reference will change again.
+// return 0 on success, 1 on failure.
+int QueryTimeTable(SDid& sdid, DayTime& tt)
+{
+try {
+ // loop over the timetable, looking for a match : baseline and time
+ list<TTSegment>::iterator ttit;
+ for(ttit=TimeTable.begin(); ttit != TimeTable.end(); ttit++) {
+ if(((ttit->site1 == sdid.site1 && ttit->site2 == sdid.site2) ||
+ (ttit->site1 == sdid.site2 && ttit->site2 == sdid.site1) ) &&
+ FirstEpoch+CI.DataInterval*ttit->first <= tt &&
+ FirstEpoch+CI.DataInterval*ttit->last >= tt)
+ { // success
+ sdid.sat = ttit->sat;
+ tt = FirstEpoch+CI.DataInterval*ttit->last;
+ return 0;
+ }
+ }
+
+ return 1; // failure
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Find the start and stop counts in the timetable which applies to the given baseline
+int QueryTimeTable(string baseline, int& beg, int& end)
+{
+try {
+ string site1=StringUtils::word(baseline,0,'-');
+ string site2=StringUtils::word(baseline,1,'-');
+ beg = end = -1;
+ // loop over the timetable, looking for a match in baseline
+ list<TTSegment>::iterator ttit;
+ for(ttit=TimeTable.begin(); ttit != TimeTable.end(); ttit++) {
+ if((ttit->site1 == site1 && ttit->site2 == site2) ||
+ (ttit->site1 == site2 && ttit->site2 == site1) )
+ { // success
+ if(beg == -1 || ttit->first < beg) beg = ttit->first;
+ if(end == -1 || ttit->last > end) end = ttit->last;
+ }
+ }
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int Timetable(void)
+{
+try {
+ if(CI.Verbose) oflog << "BEGIN Timetable()" << endl;
+
+ int ib,iret;
+ list<TTSegment>::iterator ttit;
+
+ if(CI.TimeTableFile.size() > 0) {
+ iret = ReadTimeTable();
+ }
+ else if(CI.RefSat.id != -1) { // user says use this sat only
+ // loop over baselines
+ for(ib=0; ib<Baselines.size(); ib++) {
+ TTSegment ts;
+ ts.site1 = StringUtils::word(Baselines[ib],0,'-');
+ ts.site2 = StringUtils::word(Baselines[ib],1,'-');
+ ts.sat = CI.RefSat;
+ ts.start = ts.first = 0;
+ ts.end = ts.last = maxCount;
+ ts.minelev = ts.maxelev = 0.0;
+ ts.length = ts.end - ts.start + 1;
+ TimeTable.push_back(ts);
+ iret = 0;
+ }
+ }
+ else {
+ // loop over baselines
+ for(ib=0; ib<Baselines.size(); ib++) {
+ iret = ComputeBaselineTimeTable(Baselines[ib]);
+ if(iret) break;
+ } // end loop over baselines
+ }
+
+ if(iret == 0) {
+ // write out timetable to log
+ // REF site site sat week use_first use_last data_start data_end
+ DayTime tt;
+ GSatID sat;
+ oflog << "Here is the time table (" << TimeTable.size() << ")" << endl;
+ if(CI.Screen)
+ cout << "Time table (" << TimeTable.size() << "):" << endl;
+ oflog << "# " << Title << endl;
+ oflog << "# REF site site sat week use_first use_last data_start data_end\n";
+ if(CI.Screen)
+ cout << "# REF site site sat week use_first use_last data_start data_end\n";
+ for(ttit=TimeTable.begin(); ttit != TimeTable.end(); ttit++) {
+ oflog << "REF " << ttit->site1 << " " << ttit->site2 << " " << ttit->sat;
+ if(CI.Screen)
+ cout << "REF " << ttit->site1 << " " << ttit->site2 << " " << ttit->sat;
+ tt = FirstEpoch + CI.DataInterval * ttit->first;
+ oflog << tt.printf(" %4F %10.3g"); // TD week rollover!
+ if(CI.Screen)
+ cout << tt.printf(" %4F %10.3g"); // TD week rollover!
+ tt = FirstEpoch + CI.DataInterval * ttit->last;
+ oflog << tt.printf(" %10.3g");
+ if(CI.Screen)
+ cout << tt.printf(" %10.3g");
+ tt = FirstEpoch + CI.DataInterval * ttit->start;
+ oflog << tt.printf(" %10.3g");
+ if(CI.Screen)
+ cout << tt.printf(" %10.3g");
+ tt = FirstEpoch + CI.DataInterval * ttit->end;
+ oflog << tt.printf(" %10.3g");
+ if(CI.Screen)
+ cout << tt.printf(" %10.3g");
+ // TD? ttit->minelev, ttit->maxelev, ttit->length, ttit->metric()
+ oflog << " " << fixed << setw(4) << setprecision(1) << ttit->minelev;
+ if(CI.Screen)
+ cout << " " << fixed << setw(4) << setprecision(1) << ttit->minelev;
+ oflog << " " << fixed << setw(4) << setprecision(1) << ttit->maxelev;
+ if(CI.Screen)
+ cout << " " << fixed << setw(4) << setprecision(1) << ttit->maxelev;
+ // write the number of counts for this ref
+ oflog << " " << setw(5) << ttit->length;
+ if(CI.Screen)
+ cout << " " << setw(5) << ttit->length;
+ oflog << endl;
+ if(CI.Screen)
+ cout << endl;
+
+ // for next time
+ sat = ttit->sat;
+ }
+ oflog << "End of time table." << endl;
+ if(CI.Screen)
+ cout << "End of time table." << endl;
+ }
+
+ return iret;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+} // end Timetable()
+
+//------------------------------------------------------------------------------------
+// Input the time table from a file
+int ReadTimeTable(void)
+{
+try {
+ int week;
+ double sow;
+ string line;
+ DayTime tt;
+
+ // open an input file for all timetables
+ if(CI.Debug) oflog << "Try to open time table file " << CI.TimeTableFile << endl;
+ ifstream ttifs(CI.TimeTableFile.c_str());
+ if(!ttifs) {
+ cerr << "Failed to open input time table file " << CI.TimeTableFile << endl;
+ return -3;
+ }
+
+ //REF site site sat week use_first use_last data_start data_end
+ do {
+ getline(ttifs,line);
+ StringUtils::stripTrailing(line,'\r');
+ if(ttifs.eof() || !ttifs.good()) break;
+
+ if(line.size() <= 0) continue; // skip blank lines
+ if(line[0] == '#') continue; // skip comments
+ if(StringUtils::numWords(line) < 9) continue; // TD msg? // skip bad lines
+ if(StringUtils::words(line,0,1) != string("REF")) continue; // only REF lines
+ TTSegment ts;
+ ts.site1 = StringUtils::words(line,1,1);
+ ts.site2 = StringUtils::words(line,2,1);
+ ts.sat.fromString(StringUtils::words(line,3,1));
+
+ week = StringUtils::asInt(StringUtils::words(line,4,1));
+ sow = StringUtils::asInt(StringUtils::words(line,5,1));
+ tt.setGPSfullweek(week,sow); // TD handle week rollover
+ ts.first = int(0.5+(tt-FirstEpoch)/CI.DataInterval);
+
+ sow = StringUtils::asInt(StringUtils::words(line,6,1));
+ tt.setGPSfullweek(week,sow);
+ ts.last = int(0.5+(tt-FirstEpoch)/CI.DataInterval);
+
+ sow = StringUtils::asInt(StringUtils::words(line,7,1));
+ tt.setGPSfullweek(week,sow);
+ ts.start = int(0.5+(tt-FirstEpoch)/CI.DataInterval);
+
+ sow = StringUtils::asInt(StringUtils::words(line,8,1));
+ tt.setGPSfullweek(week,sow);
+ ts.end = int(0.5+(tt-FirstEpoch)/CI.DataInterval);
+
+ //ts.minelev = ts.maxelev = 0.0;
+ ts.length = ts.end - ts.start + 1;
+ ts.findElev();
+ TimeTable.push_back(ts);
+
+ } while(1);
+ // close the output timetable file
+ ttifs.close();
+
+ oflog << "Read time table from file " << CI.TimeTableFile << endl;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int ComputeBaselineTimeTable(const string& bl)
+{
+try {
+ int i,j;
+ map<SDid,SDData>::const_iterator it;
+ list<TTSegment> SegList;
+
+ SDmap.clear();
+ i = TTComputeSingleDifferences(bl,40.0);
+ if(i) return i;
+
+ // now compute the timetable based on SDmap
+ for(it=SDmap.begin(); it != SDmap.end(); it++) {
+ TTSegment ts;
+ ts.site1 = it->first.site1;
+ ts.site2 = it->first.site2;
+ ts.sat = it->first.sat;
+ ts.start = it->second.count[0];
+ ts.minelev = ts.maxelev = 0.0;
+ for(i=0; i<it->second.count.size()-1; i++) {
+ j = it->second.count.at(i+1) - it->second.count.at(i);
+ if(j > 1) {
+ TTSegment tts;
+ tts = ts;
+ tts.end = it->second.count.at(i);
+ tts.length = tts.end - tts.start + 1;
+ tts.findElev();
+ SegList.push_back(tts);
+ ts.start = it->second.count.at(i+1);
+ }
+ }
+ ts.end = it->second.count[it->second.count.size()-1];
+ ts.length = ts.end - ts.start + 1;
+ ts.findElev();
+ SegList.push_back(ts);
+ }
+
+ if(SegList.size() == 0) return -2;
+
+ // figure out the time table from the list of segments
+ list<TTSegment> TTable;
+ i = TimeTableAlgorithm(SegList, TTable);
+ if(i) return i;
+
+ // add this timetable to the master timetable.
+ list<TTSegment>::iterator ttit;
+ for(ttit=TTable.begin(); ttit != TTable.end(); ttit++)
+ TimeTable.push_back(*ttit);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int TTComputeSingleDifferences(const string& bl, const double ElevLimit)
+{
+try {
+ int i,j,k;
+ double elevi,elevj;
+ GSatID sat;
+ map<GSatID,RawData>::const_iterator it,jt;
+ map<SDid,SDData>::const_iterator kt;
+ ofstream rawofs;
+ format f62(6,2),f133(13,3);
+
+ // loop over buffered raw data of sats common to both
+ string est=StringUtils::word(bl,0,'-');
+ string fix=StringUtils::word(bl,1,'-');
+
+ for(it=Stations[est].RawDataBuffers.begin();
+ it != Stations[est].RawDataBuffers.end(); it++) {
+
+ // consider each satellite
+ sat = it->first;
+ if(CI.Verbose) oflog << "Single difference " << est << " " << fix << " " << sat;
+
+ // is sat also found at fixed site?
+ jt = Stations[fix].RawDataBuffers.find(sat);
+ if(jt == Stations[fix].RawDataBuffers.end()) {
+ if(CI.Verbose) oflog << " not found on both sites" << endl;
+ continue;
+ }
+
+ if(CI.Verbose) oflog << " (raw buffers size: " << it->second.count.size()
+ << " " << jt->second.count.size() << ")";
+
+ // compute continuous segments of SD data
+ // sdd.count is the intersection of the two count vectors
+ SDid sdid(fix,est,sat);
+ SDData sdd;
+ sdd.elevmin = 100.0;
+ sdd.elevmax = -1.0;
+ i = j = 0;
+ do {
+ if(it->second.count[i] == jt->second.count[j]) {
+ elevi = RotatedAntennaElevation(it->second.elev[i],it->second.az[i]);
+ elevj = RotatedAntennaElevation(jt->second.elev[j],jt->second.az[j]);
+ if(elevi >= ElevLimit && elevj >= ElevLimit) {
+ sdd.count.push_back(it->second.count[i]);
+ if(elevi < sdd.elevmin) sdd.elevmin = elevi;
+ if(elevi > sdd.elevmax) sdd.elevmax = elevi;
+ }
+ i++;
+ j++;
+ }
+ else if(it->second.count[i] < jt->second.count[j]) {
+ i++;
+ }
+ else {
+ j++;
+ }
+ } while( i < it->second.count.size() &&
+ j < jt->second.count.size() );
+
+ // TD ?
+ if(sdd.count.size() < 10) {
+ if(CI.Verbose) oflog << " size is too small ("
+ << sdd.count.size() << ")" << endl;
+ continue;
+ }
+
+ // save it in the map
+ SDmap[sdid] = sdd;
+
+ if(CI.Verbose) oflog << endl;
+
+ } // end loop over raw buffered data common to both sites
+
+ // write out a summary of single differences
+ oflog << "Single differences summary :" << endl;
+ for(k=1,kt=SDmap.begin(); kt != SDmap.end(); kt++,k++) {
+ oflog << " " << setw(2) << k << " " << kt->first
+ << " " << setw(5) << kt->second.count.size()
+ << " " << setw(5) << kt->second.count.at(0)
+ << " - " << setw(5) << kt->second.count.at(kt->second.count.size()-1);
+ // elevation
+ oflog << " elev: "
+ << fixed << setw(4) << setprecision(1) << kt->second.elevmin
+ << " - " << setw(4) << setprecision(1) << kt->second.elevmax;
+ // gaps - (count : number of pts)
+ for(i=0; i<kt->second.count.size()-1; i++) {
+ j = kt->second.count.at(i+1) - kt->second.count.at(i);
+ if(j > 1)
+ oflog << " (" << kt->second.count.at(i)+1 << ":" << j-1 << ")";
+ }
+ oflog << endl;
+ }
+
+ if(SDmap.size() == 0) {
+ oflog << "Returning error code -1 from TTComputeSingleDifferences()" << endl;
+ return -1;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// preprocess the segment list - get first and last counts
+int TimeTableAlgorithm(list<TTSegment>& TTS, list<TTSegment>& TTab)
+{
+try {
+ bool keep;
+ int i,beg,end;
+ int begcount,endcount;
+ list<TTSegment>::iterator ttit,ttjt;
+ typedef pair<int,int> seg;
+ list<seg> Segs;
+ list<seg>::iterator lit,ljt;
+
+ // 0 sort list in order of decreasing metric()
+ // 0.5 delete very small segments
+ // 0.6 run through the list, finding the smallest begin, and largest end, counts;
+ // call these the begin and end counts.
+ // 1. run through the sorted list, starting at largest metric(), and pick out
+ // first segments which have the begin and/or end counts; add these to TTab
+ // and erase from TTS.
+ // 2. run through TTS again, starting at the largest metric(); if a segment
+ // includes some counts that have not been covered before, than add this
+ // to TTab and erase from TTS. Quit when either the entire range from
+ // begcount to endcount is covered, a given minimum metric() is reached,
+ // or when the end of TTS is reached.
+ // 3. if gaps remain in the coverage, these are real gaps in the data and
+ // the estimation will have to reset.
+ // 4. sort TTab in increasing order. Run through TTab looking for
+ // segments which can be removed without generating gaps; remove these.
+
+ // 0. sort in reverse order (largest metric() first)
+ // [ list has its own sort sort(TTS.rbegin(),TTS.rend()); ]
+ TTS.sort(decreasingMetricSort);
+
+ // 0.5 delete very small segments and output the sorted list
+ // 0.6 find begcount and endcount (after deletion)
+ begcount = endcount = -1;
+ oflog << "Here is the sorted list of segments:" << endl;
+ for(i=1,ttit=TTS.begin(); ttit != TTS.end(); i++) {
+ oflog << " " << setw(4) << i << *ttit;
+ if(ttit->length < 10) {
+ oflog << " -- delete this segment: too small";
+ ttit = TTS.erase(ttit); // ttit now points to next seg
+ }
+ else {
+ if(begcount < 0 || ttit->start < begcount)
+ begcount = ttit->start;
+ if(endcount < 0 || ttit->end > endcount)
+ endcount = ttit->end;
+ ttit++;
+ }
+ oflog << endl;
+ }
+ oflog << "End the sorted list; limits : " << begcount << " - " << endcount << endl;
+
+ for(ttit=TTS.begin(); ttit != TTS.end(); ttit++) {
+ if(ttit->length < 10) {
+ }
+ }
+
+ // 1.find the begin point
+ for(ttit=TTS.begin(); ttit != TTS.end(); ttit++) {
+ if(ttit->start == begcount) {
+ oflog << "Found the begin time: " << *ttit << endl;
+ TTab.push_back(*ttit);
+ beg = ttit->end;
+ TTS.erase(ttit);
+ break;
+ }
+ }
+
+ if(beg == endcount) {
+ // one segment covers it all - done!
+ oflog << "One segment covers it all!" << endl;
+ end = endcount;
+ }
+ else {
+ // find the end point
+ for(ttit=TTS.begin(); ttit != TTS.end(); ttit++) {
+ if(ttit->end == endcount) {
+ oflog << "Found the end time: " << *ttit << endl;
+ TTab.push_back(*ttit);
+ end = ttit->start;
+ TTS.erase(ttit);
+ break;
+ }
+ }
+
+ if(TTab.size() != 2) {
+ // error, we didn't find the beg and end -- throw?
+ return -2;
+ }
+ }
+
+ // start list of segs with the ones that contain endpoints
+ ttit = TTab.begin();
+ Segs.push_back(make_pair(ttit->start,ttit->end));
+ ttit++;
+ if(ttit != TTab.end())
+ Segs.push_back(make_pair(ttit->start,ttit->end));
+
+ if(beg >= end) { // two segments cover it all
+ if(Segs.size() > 1) { // TD unsure if the logic is wrong here...
+ ljt = lit = Segs.begin();
+ ljt++;
+ lit->second = ljt->second;
+ if(CI.Debug) oflog << "Two segments cover it all: erase seg ("
+ << ljt->first << "-" << ljt->second << ")" << endl;
+ Segs.erase(ljt);
+ }
+ }
+ else {
+ // 2.
+ // start with
+ // |======1st Seg======| gap |=====last Seg======|
+ //
+ // in general, new segs can be added, so Segs looks like this:
+ // |===1st Seg===| gap |===2nd Seg===| gap |===last Seg===|
+ //
+ // consider 8 cases of new segments from TTS:
+ // 1. |--------------| covers end of seg
+ // 2. |-------| lies entirely w/in gap
+ // 3. |--------| covers beg of seg
+ // 4. |--------------------| covers entire gap
+ // 5. |----------------------| covers entire seg
+ // 6. covers seg and gap |-------------------------------------|
+ // 7. |-------------------------------------| covers gap and seg
+ // 8. |-----| lies entirely w/in seg
+ //
+ // Here is the algorithm:
+ // for each new segment extending from b to e
+ // for each i in list of segments in list (extending bi to ei) {
+ // if(b > ei) skip to the next i
+ // if(e > ei) { // b <= ei and e > ei
+ // mod seg i so that ei -> e // case 1,4,7
+ // if(b < bi) mod seg i so that bi -> b // case 5,6
+ // while (e >= bj) where j > i,
+ // merge segments i and j and delete j // case 4,6,7
+ // keep this segment
+ // }
+ // else { // b <= ei and e <= ei
+ // if(e >= bi) {
+ // if(b < bi) {
+ // mod segment i so bi -> b // case 3
+ // keep this segment
+ // }
+ // //else { ignore this segment } // case 8
+ // }
+ // else {
+ // make a new segment (b,e),
+ // and insert it before segment i // case 2
+ // keep this segment
+ // }
+ // }
+ // } // end of loop over segments i
+ // if(keep) add this segment to the time table
+ //
+ // loop over all segments, in decreasing order of metric()
+ for(i=1,ttit=TTS.begin(); ttit != TTS.end(); i++,ttit++) { // i temp
+
+ if(CI.Debug) { // temp
+ oflog << "Here is the current time table (" << TTab.size() << ")"
+ << endl;
+ for(ttjt=TTab.begin(); ttjt != TTab.end(); ttjt++)
+ oflog << " " << *ttjt << endl;
+ }
+
+ if(CI.Debug) {
+ oflog << "and here is the seg list";
+ for(lit=Segs.begin(); lit != Segs.end(); lit++)
+ oflog << " (" << lit->first << "-" << lit->second << ")";
+ oflog << endl;
+ }
+
+ // done if one segment covers all
+ lit = Segs.begin();
+ if(Segs.size() == 1 && lit->first == begcount && lit->second == endcount)
+ break;
+
+ // keep this? you don't want metric to become very small -> failure
+ if(ttit->metric() <= 100.0) break; // TD input param
+
+ beg = ttit->start;
+ end = ttit->end;
+ if(CI.Debug) oflog << "consider new segment ("
+ << beg << "-" << end << ")" << endl;
+
+ // loop over the segs
+ keep = false;
+ lit = Segs.begin();
+ while(lit != Segs.end()) {
+ if(beg > lit->second) {
+ if(CI.Debug) oflog << " skip seg ("
+ << lit->first << "-" << lit->second << ")" << endl;
+ lit++;
+ continue;
+ }
+ if(end > lit->second) {
+ if(CI.Debug) oflog << " mod 1 seg ("
+ << lit->first << "-" << lit->second << ")";
+ lit->second = end;
+ if(beg < lit->first) lit->first=beg;
+ if(CI.Debug) oflog << " to ("
+ << lit->first << "-" << lit->second << ")" << endl;
+ ljt = lit;
+ while(++ljt != Segs.end() && end >= ljt->first) {
+ // merge i and j
+ if(CI.Debug) oflog << " merge segs ("
+ << lit->first << "-" << lit->second << ") and ("
+ << ljt->first << "-" << ljt->second << ")";
+ lit->second = ljt->second;
+ if(CI.Debug) oflog << " and erase seg ("
+ << ljt->first << "-" << ljt->second << ")" << endl;
+ Segs.erase(ljt);
+ ljt = lit;
+ }
+ keep = true;
+ }
+ else {
+ if(end >= lit->first) {
+ if(beg < lit->first) {
+ if(CI.Debug) oflog << " mod 2 seg ("
+ << lit->first << "-" << lit->second << ")";
+ lit->first = beg;
+ keep = true;
+ if(CI.Debug) oflog << " to ("
+ << lit->first << "-" << lit->second << ")" << endl;
+ }
+ //else { keep=false; ignore -- this seg has nothing new }
+ }
+ else {
+ seg newseg(beg,end);
+ if(CI.Debug) oflog << " add seg ("
+ << newseg.first << "-" << newseg.second << ")" << endl;
+ Segs.insert(lit,newseg);
+ keep = true;
+ }
+ }
+ break;
+ } // end while loop over segs
+
+ if(keep) {
+ TTab.push_back(*ttit);
+ TTab.sort(startSort); // temp
+ }
+
+ if(CI.Debug) if(i > 100) break; // temp
+
+ } // end for loop over segments TTS
+
+ } // end if(initial gap is non-zero)
+
+ // 3. are there gaps?
+ if(Segs.size() != 1) {
+ oflog << "There are real gaps in the data; segments with data:" << endl;
+ for(lit=Segs.begin(); lit != Segs.end(); lit++)
+ oflog << " (" << lit->first << "-" << lit->second << ")";
+ oflog << endl;
+ }
+ else oflog << "There are no gaps in the data" << endl;
+
+ // sort the timetable
+ TTab.sort(startSort);
+
+ // TD 4. edit TTab, removing segments that do not create gaps
+
+ // decide on actual transition times
+ for(ttit=TTab.begin(); ttit != TTab.end(); ttit++) {
+ if(CI.Verbose) oflog << " " << *ttit << endl;
+
+ // compute the count at which to switch
+ if(ttit == TTab.begin()) {
+ ttit->first = ttit->start; // first = start for first segment
+ ttjt = ttit; // initialize ttjt
+ }
+ else {
+ // switch at the mid-point of overlap
+ ttit->first = (ttjt->end + ttit->start)/2;
+ }
+ ttit->last = ttit->end; // change later, except for last segment
+ if(ttit != TTab.begin()) {
+ ttjt->last = ttit->first; // count at the switch point
+ ttjt++; // ttjt lags behind ttit by 1
+ }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void TTSegment::findElev(void)
+{
+ int i,k;
+ double elevi;
+ RawData& rd=Stations[site1].RawDataBuffers[sat];
+ minelev = 99.0;
+ maxelev = -1.0;
+ k = index(rd.count,start);
+ if(k == -1) return;
+ for(i=k; i<k+length; i++) {
+ elevi = RotatedAntennaElevation(rd.elev.at(i),rd.az.at(i));
+ if(elevi > maxelev) maxelev = elevi;
+ if(elevi < minelev) minelev = elevi;
+ }
+}
+
+//------------------------------------------------------------------------------------
+// friends of TTSegment, defined there
+bool startSort(const TTSegment& left, const TTSegment& right)
+{ return (left.start < right.start); }
+
+bool increasingMetricSort(const TTSegment& left, const TTSegment& right)
+{ return (left.metric() < right.metric()); }
+
+bool decreasingMetricSort(const TTSegment& left, const TTSegment& right)
+{ return (left.metric() > right.metric()); }
+
+//------------------------------------------------------------------------------------
+ostream& operator<<(ostream& os, const TTSegment& t)
+{
+try {
+ os << " " << t.site1
+ << " " << t.site2
+ << " " << t.sat
+ << " " << setw(5) << t.length
+ << " " << setw(5) << t.start
+ << " - " << setw(5) << t.end
+ //<< " (" << t.first << "-" << t.last << ")"
+ << " " << fixed << setw(4) << setprecision(1) << t.minelev
+ << " - " << fixed << setw(4) << setprecision(1) << t.maxelev
+ << " " << setw(7) << setprecision(2) << t.metric();
+ return os;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/constants.hpp b/dev/apps/geomatics/relposition/constants.hpp
new file mode 100644
index 0000000..99df8e3
--- /dev/null
+++ b/dev/apps/geomatics/relposition/constants.hpp
@@ -0,0 +1,88 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file constants.hpp
+ * Include file for miscellaneous constants for program DDBase.
+ */
+
+#ifndef DDBASE_CONSTANTS_INCLUDE
+#define DDBASE_CONSTANTS_INCLUDE
+
+//------------------------------------------------------------------------------------
+// GPSTk
+#include "icd_200_constants.hpp"
+
+//------------------------------------------------------------------------------------
+const double CFF=gpstk::C_GPS_M/gpstk::OSC_FREQ;
+const double F1=gpstk::L1_MULT; // 154.0;
+const double F2=gpstk::L2_MULT; // 120.0;
+const double f12=F1*F1;
+const double f22=F2*F2;
+/// wavelength L1
+const double wl1=CFF/F1;
+/// wavelength L2
+const double wl2=CFF/F2;
+/// Multiplier for wide lane range(m) : WLR = wl1r * P1 + wl2r * P2
+const double wl1r=F1/(F1+F2);
+const double wl2r=F2/(F1+F2);
+/// Multiplier for wide lane phase(m) : WLP = wl1p * L1 + wl2p * L2 (L1,L2 in meters)
+const double wl1p=F1/(F1-F2);
+const double wl2p=-F2/(F1-F2);
+/// Multiplier for iono-free range(m) : IFR = if1r * P1 + if2r * P2
+const double if1r=f12/(f12-f22);
+const double if2r=-f22/(f12-f22);
+/// Multiplier for iono-free phase(m) : IFP = if1p * L1 + if2p * L2 (L1,L2 in meters)
+const double if1p=f12/(f12-f22);
+const double if2p=-f22/(f12-f22);
+/// Multiplier for geometry-free range(m) : GFR = gf1p * P1 + ff2p * P2
+const double gf1r=-1;
+const double gf2r=1;
+/// Multiplier for geo-free phase(m) : GFP = gf1p * L1 + gf2p * L2 (L1,L2 in meters)
+const double gf1p=wl1;
+const double gf2p=-wl2;
+
+const double beta=f12/f22;
+const double alpha=f12/f22 - 1.0;
+/// Frequency at L1 (Hz)
+const double FL1=F1*10.23e6; // Hz
+/// Conversion factor: TEC Units per meter
+const double TECUperM=FL1*FL1*1.e-16/(alpha*40.28);
+
+#endif
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/ddmerge.cpp b/dev/apps/geomatics/relposition/ddmerge.cpp
new file mode 100644
index 0000000..dfceae2
--- /dev/null
+++ b/dev/apps/geomatics/relposition/ddmerge.cpp
@@ -0,0 +1,299 @@
+#pragma ident "$Id: $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ddmerge.cpp
+ * merge two DDBase output data files: DDR and RAW, and write a file just like the
+ * input DDR file but with Az and El appended to each line for each site/sat combo.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <time.h>
+#include <iostream>
+#include <fstream>
+#include <iomanip>
+#include <string>
+#include <vector>
+#include <map>
+
+// GPSTk
+#include "DayTime.hpp"
+#include "StringUtils.hpp"
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------------
+string Version("1.0 7/5/06");
+ifstream *filepointer;
+const unsigned BUFF_SIZE=1024;
+char buffer[BUFF_SIZE];
+
+//------------------------------------------------------------------------------------
+class Chunk {
+public:
+ //string id; // 'site sat'
+ string line; // current line
+ long filepos; // current filepos = start of next line
+ int fpindex; // index in filepointer array
+ bool status; // true if good
+ string Update(void) { // return current line after updating to next
+ string tmp;
+ if(!status) return tmp;
+ try {
+ filepointer[fpindex].getline(buffer,BUFF_SIZE);
+ }
+ catch(exception& e) {
+ cout << "std exception: " << e.what() << endl;
+ status = false;
+ }
+ if(filepointer[fpindex].bad()) {
+ cout << "Read error" << endl;
+ status = false;
+ }
+ if(filepointer[fpindex].eof()) {
+ cout << "Reached EOF" << endl;
+ status = false;
+ }
+ if(status) {
+ tmp = line;
+ line = string(buffer);
+ StringUtils::stripTrailing(line,'\r');
+ filepos = filepointer[fpindex].tellg();
+ }
+ //else filepointer[fpindex].close();
+
+ return tmp;
+ }
+ string find(int n) { // update until count in line matches n, return line
+ int count;
+ string tmp;
+ do {
+ //if(!status) break;
+ tmp = StringUtils::word(line,5); // TD will be 4 if MJD is output
+ count = StringUtils::asInt(tmp);
+ if(count >= n) break;
+ Update();
+ } while(1);
+ return line;
+ }
+};
+map<string,Chunk> Chunklist; // key is 'site sat'
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ int i,n;
+ string line,line2,id,rawfile,ddrfile,outfile,site1,site2,sat1,sat2;
+ ifstream instr;
+ ofstream outstr;
+ DayTime CurrEpoch;
+
+ clock_t totaltime = clock();
+ // print title and current time to screen
+ CurrEpoch.setLocalTime();
+ cout << "ddmerge version " << Version << " run " << CurrEpoch << endl;
+
+ if(argc < 4) {
+ cout << "Usage: ddmerge <RAWfile> <DDRfile> <output_file>" << endl;
+ cout << " where the two input file are output of DDBase" << endl;
+ cout << " ddmerge will take elevation and azimuth data from the RAW" << endl;
+ cout << " file and append it to the appropriate line in the DDR file" << endl;
+ cout << " and output to the output file" << endl;
+ return -1;
+ }
+ rawfile = string(argv[1]);
+ ddrfile = string(argv[2]);
+ outfile = string(argv[3]);
+
+ // this must be binary or you get the wrong answers.
+ instr.open(rawfile.c_str(),ios::in|ios::binary);
+ if(!instr) {
+ cout << "Failed to open input file " << rawfile << endl;
+ return -1;
+ }
+ cout << "Opened input file " << rawfile << endl;
+ instr.exceptions(fstream::failbit);
+
+ n = 0;
+ while(1) {
+ try {
+ //instr.read((char *)p2, 1); // get one char
+ instr.getline(buffer,BUFF_SIZE);
+ }
+ catch(exception& e) {}
+ if(instr.bad()) cout << "Read error" << endl;
+ if(instr.eof()) { cout << "Reached EOF" << endl; break; }
+
+ n++;
+ line = string(buffer);
+ StringUtils::stripTrailing(line,'\r');
+ if(StringUtils::word(line,0) == "RAW") {
+ id = StringUtils::word(line,1);
+ if(id != "site") {
+ id += " " + StringUtils::word(line,2);
+ if(Chunklist.find(id) == Chunklist.end()) {
+ Chunk newchunk;
+ newchunk.filepos = instr.tellg();
+ newchunk.line = line;
+ Chunklist[id] = newchunk;
+ }
+ }
+ }
+ }
+
+ instr.clear();
+ instr.close();
+
+ // you must use pointers to the streams because storing a stream inside an object
+ // that goes into an STL container leads to weird errors...try it.
+ filepointer = new ifstream[Chunklist.size()];
+ if(!filepointer) { cout << "failed to allocate filepointers" << endl; return -1; }
+
+ map<string,Chunk>::iterator it;
+ for(i=0,it=Chunklist.begin(); it != Chunklist.end(); i++,it++) {
+ filepointer[i].open(rawfile.c_str(), ios::in|ios::binary);
+ if(!filepointer[i]) {
+ cout << "Failed to open chunk " << i << endl;
+ break;
+ }
+ filepointer[i].exceptions(fstream::failbit);
+ it->second.fpindex = i;
+ filepointer[i].seekg(it->second.filepos);
+ }
+
+ outstr.open(outfile.c_str(), ios::out);
+ if(!outstr) {
+ cout << "Failed to open output file " << outfile << endl;
+ return -1;
+ }
+ cout << "Opened output file " << outfile << endl;
+ outstr.exceptions(fstream::failbit);
+
+ //for(it=Chunklist.begin(); it != Chunklist.end(); it++) {
+ // if(! it->second.status) continue;
+ // outstr << "Chunk " << it->first << endl;
+ // outstr << it->second.Update() << endl;
+ // outstr << it->second.Update() << endl;
+ // outstr << endl;
+ //}
+
+ instr.open(ddrfile.c_str());
+ if(!instr) {
+ cout << "Failed to open input file " << ddrfile << endl;
+ return -1;
+ }
+ cout << "Opened input file " << ddrfile << endl;
+ instr.exceptions(fstream::failbit);
+
+ n = 0;
+ while(1) {
+ try { instr.getline(buffer,BUFF_SIZE); }
+ catch(exception& e) {} //cout << "exception: " << e.what() << endl;
+ if(instr.bad()) { cout << "Read error" << endl; break; }
+ if(instr.eof()) { cout << "Reached EOF" << endl; break; }
+
+ n++;
+ line = string(buffer);
+ StringUtils::stripTrailing(line,'\r');
+ if(StringUtils::word(line,0) == "RES") {
+ site1 = StringUtils::word(line,1);
+ if(site1 != "site") {
+ site2 = StringUtils::word(line,2);
+ sat1 = StringUtils::word(line,3);
+ sat2 = StringUtils::word(line,4);
+ id = StringUtils::word(line,7); // TD different for MJD
+ n = StringUtils::asInt(id);
+ outstr << line; // endl below
+ // find the corresponding lines in the chunks
+ id = site1 + " " + sat1;
+ line2 = Chunklist[id].find(n);
+ if(Chunklist[id].status) outstr
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,11),5)
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,12),6);
+ id = site1 + " " + sat2;
+ line2 = Chunklist[id].find(n);
+ if(Chunklist[id].status) outstr
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,11),5)
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,12),6);
+ id = site2 + " " + sat1;
+ line2 = Chunklist[id].find(n);
+ if(Chunklist[id].status) outstr
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,11),5)
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,12),6);
+ id = site2 + " " + sat2;
+ line2 = Chunklist[id].find(n);
+ if(Chunklist[id].status) outstr
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,11),5)
+ << " " << StringUtils::rightJustify(StringUtils::word(line2,12),6);
+ }
+ else outstr
+ << line << " EL11 AZ11 EL12 AZ12 EL21 AZ21 EL22 AZ22";
+ }
+ else outstr << line << endl
+ << "# ddmerge (v." << Version << ") " << rawfile
+ << " " << ddrfile << " " << outfile << " Run " << CurrEpoch;
+ outstr << endl;
+ }
+
+ instr.close();
+ delete[] filepointer;
+
+ // compute run time
+ totaltime = clock()-totaltime;
+ cout << "ddmerge timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds." << endl;
+
+ return 0;
+}
+catch(Exception& e) {
+ cout << "GPSTk Exception : " << e;
+}
+catch (...) {
+ cout << "Unknown error in ddmerge. Abort." << endl;
+}
+
+ // close files
+ return -1;
+} // end main()
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/geomatics/relposition/doc/CodePlan.pdf b/dev/apps/geomatics/relposition/doc/CodePlan.pdf
new file mode 100644
index 0000000..1c6c694
Binary files /dev/null and b/dev/apps/geomatics/relposition/doc/CodePlan.pdf differ
diff --git a/dev/apps/geomatics/relposition/doc/DDBaseCmdLineRef.pdf b/dev/apps/geomatics/relposition/doc/DDBaseCmdLineRef.pdf
new file mode 100644
index 0000000..d93f61f
Binary files /dev/null and b/dev/apps/geomatics/relposition/doc/DDBaseCmdLineRef.pdf differ
diff --git a/dev/apps/geomatics/relposition/doc/DDBaseDoc.pdf b/dev/apps/geomatics/relposition/doc/DDBaseDoc.pdf
new file mode 100644
index 0000000..4a08674
Binary files /dev/null and b/dev/apps/geomatics/relposition/doc/DDBaseDoc.pdf differ
diff --git a/dev/apps/geomatics/relposition/doc/SimpleBasePlan.pdf b/dev/apps/geomatics/relposition/doc/SimpleBasePlan.pdf
new file mode 100644
index 0000000..59e6138
Binary files /dev/null and b/dev/apps/geomatics/relposition/doc/SimpleBasePlan.pdf differ
diff --git a/dev/apps/geomatics/robust/Jamfile b/dev/apps/geomatics/robust/Jamfile
new file mode 100644
index 0000000..8bc044b
--- /dev/null
+++ b/dev/apps/geomatics/robust/Jamfile
@@ -0,0 +1,15 @@
+#
+# $Id: Jamfile 71 2006-08-01 18:46:39Z ehagen $
+#
+
+SubDir TOP apps geomatics robust ;
+
+SEARCH_SOURCE += $(TOP)/src ;
+SEARCH_SOURCE += $(TOP)/apps/geomatics/lib ;
+
+# must have the prefix here ... why, and why not with others?
+LinkLibraries rstats qtest : $(LIBPREFIX)geomatic ;
+# gpstk must be last
+GPSLinkLibraries rstats : gpstk ;
+
+GPSMain rstats : rstats.cpp ;
diff --git a/dev/apps/geomatics/robust/Makefile.am b/dev/apps/geomatics/robust/Makefile.am
new file mode 100644
index 0000000..eba846d
--- /dev/null
+++ b/dev/apps/geomatics/robust/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../../src -I$(srcdir)/../lib
+LDADD = ../lib/libgeomatic.la ../../../src/libgpstk.la
+
+bin_PROGRAMS = rstats
+
+rstats_SOURCES = rstats.cpp
diff --git a/dev/apps/geomatics/robust/rstats.cpp b/dev/apps/geomatics/robust/rstats.cpp
new file mode 100644
index 0000000..2c20997
--- /dev/null
+++ b/dev/apps/geomatics/robust/rstats.cpp
@@ -0,0 +1,344 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file rstats.cpp
+ * Read the data in one column of a file, and output robust statistics,
+ * two-sample statistics, a stem-and-leaf plot, a quantile-quantile plot,
+ * and a robust polynomial fit.
+ */
+
+#include <iostream>
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+#include <string>
+#include <vector>
+
+#include "StringUtils.hpp"
+#include "Stats.hpp"
+#include "PolyFit.hpp"
+
+#include "RobustStats.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+int BadOption(string& arg) {
+ cout << "Error: " << arg << " requires argument. Abort.\n";
+ return -1;
+}
+//------------------------------------------------------------------------------------
+// TD add option to filter on data value (string)
+int main(int argc, char **argv)
+{
+ try {
+ bool help,nostats=false,qplot=false;
+ int i,j,col=1,plot=0,xcol=-1,fit=-1;
+ string filename;
+ ostream *pout;
+
+ help = (argc <= 1);
+ for(i=1; i<argc; i++) {
+ if(argv[i][0] == '-') { // && argv[i][1] == '-')
+ string arg(argv[i]);
+ if(arg == string("--help") || arg == string("-h"))
+ help = true;
+ else if(arg == string("--plot") || arg == string("-p"))
+ plot = 1;
+ else if(arg == string("--qplot") || arg == string("-q"))
+ qplot = true;
+ else if(arg == string("--nostats") || arg == string("-n"))
+ nostats = true;
+ else if(arg == string("--col") || arg == string("-c")) {
+ if(i==argc-1) return BadOption(arg);
+ col = atoi(argv[++i]);
+ }
+ else if(arg == string("--xcol") || arg == string("-x")) {
+ if(i==argc-1) return BadOption(arg);
+ xcol = atoi(argv[++i]);
+ }
+ else if(arg == string("--fit") || arg == string("-f")) {
+ if(i==argc-1) return BadOption(arg);
+ fit = atoi(argv[++i]);
+ }
+ else {
+ cout << "Ignore unknown option: " << arg << endl;
+ }
+ }
+ else {
+ filename = string(argv[i]);
+ }
+ }
+
+ if(help) {
+ cout << "Usage: rstats <file> --col <col> --plot "
+ << "--qplot --xcol <xcol> --fit <N> --nostats\n";
+ cout << " Compute standard and robust statistics on numbers "
+ << "in column <col> (default 1)\n"
+ << " of file <file> (or redirect stdin).\n";
+ cout << " If option '--plot' is present, also show a stem-and-leaf plot\n";
+ cout << " Use option --qplot to generate data for a quantile-quantile"
+ << " plot\n" << " (data written to file qplot.out)\n";
+ cout << " Use option --xcol to specify another column, "
+ << "and output 2-sample stats\n";
+ cout << " Use option --fit to specify degree of robust polynomial fit "
+ << "to data,\n"
+ << " using xcol as independent variable,"
+ << " output in rstats.out\n"
+ << " (--nostats to supress stats output to screen)\n";
+ return -1;
+ }
+
+ if(fit > -1 && xcol == -1) {
+ cout << "Error: --fit requires --xcol <xcol>\n";
+ return -1;
+ }
+
+ istream *pin; // do it this way for Windows...
+ if(!filename.empty()) {
+ pin = new ifstream(filename.c_str());
+ if(pin->fail()) {
+ cout << "Could not open file " << filename << " .. abort.\n";
+ return -2;
+ }
+ }
+ else pin = &cin;
+
+ // 1-line message to screen
+ cout << "rstats for ";
+ if(pin == &cin) cout << "data from stdin";
+ else cout << "file: " << filename;
+ cout << ", stats (col " << col << ")";
+ if(xcol > -1) {
+ cout << " and 2-sample stats (x-col " << xcol << ")";
+ if(fit > -1) {
+ cout << ", fit (" << fit << ")";
+ if(nostats) cout << " (but no stats)";
+ }
+ }
+ cout << endl;
+
+ const int BUFF_SIZE=1024;
+ char buffer[BUFF_SIZE];
+ int nd,nxd;
+ double d,xd;
+ string stuff;
+ vector<double> data,wts,xdata;
+ Stats<double> S;
+ TwoSampleStats<double> TSS;
+
+ nd = nxd = 0;
+ while(pin->getline(buffer,BUFF_SIZE)) {
+ //if(buffer[0] == '#') continue;
+ string line = buffer;
+ stripTrailing(line,'\r');
+ // remove leading whitespace
+ line = stripLeading(line,string(" "));
+ // skip comments
+ if(line[0] == '#') continue;
+ //check that column col is there...
+ if(numWords(line) < col) { nd++; continue; }
+ // pull it out
+ stuff = word(line,col-1);
+ // is it a number?
+ if(!(isDecimalString(stuff))) { nd++; continue; }
+ // convert it to double and save it
+ d = asDouble(stuff);
+ data.push_back(d);
+ S.Add(d);
+
+ // do the same for xcol
+ if(xcol > -1) {
+ if(numWords(line) < xcol)
+ { data.pop_back(); nxd++; continue; }
+ stuff = word(line,xcol-1);
+ if(!(isDecimalString(stuff)))
+ { data.pop_back(); nxd++; continue; }
+ xd = asDouble(stuff);
+ TSS.Add(xd, d);
+ xdata.push_back(xd);
+ }
+ }
+
+ if(pin != &cin) {
+ ((ifstream *)pin)->close();
+ delete pin;
+ }
+
+ // check that input was good
+ if(data.size() == 0) {
+ cout << "Abort: no data.";
+ if(nd > 0) cout << " [data(col) not found on " << nd << " lines]";
+ if(nxd > 0) cout << " [data(xcol) not found on " << nxd << " lines]";
+ cout << endl;
+ return -3;
+ }
+ if(nd > data.size()/2)
+ cout << "Warning: data(col) not found on " << nd << " lines" << endl;
+ if(nxd > xdata.size()/2)
+ cout << "Warning: data(xcol) not found on " << nxd << " lines" << endl;
+
+ //cout << "Collected " << data.size() << " data.\n" << fixed;
+ //for(i=0; i<data.size(); i++) {
+ // cout << " " << setprecision(3) << data[i];
+ // if(xcol > -1) cout << " : " << xdata[i] << " ";
+ // if(!((i+1)%(xcol > -1 ? 4 : 10))) cout << endl;
+ //}
+
+ // process fit
+ if(fit > -1) {
+ vector<double> savedata(data);
+ double *coef,eval,tt,t0;
+ wts.resize(data.size());
+
+ coef = new double[fit];
+ if(!coef) {
+ cout << "Abort: allocate coefficients failed.\n";
+ return -4;
+ }
+
+ int iret = Robust::RobustPolyFit(&data[0], &xdata[0], data.size(),
+ fit, &coef[0], &wts[0]);
+
+ cout << "RobustPolyFit returns " << iret << endl;
+ if(iret == 0) {
+ cout << " Coefficients:" << fixed << setprecision(3);
+ for(i=0; i<fit; i++) cout << " " << coef[i];
+ cout << endl;
+
+ // output to file rstats.out
+ pout = new ofstream("rstats.out");
+ if(pout->fail()) {
+ cout << "Unable to open file rstats.out - output to screen\n";
+ pout = &cout;
+ }
+ else {
+ cout << "Output polynomial fit to file rstats.out\n";
+ cout << " try `plot rstats.out -x 1 -y 2,data,points -y 3,fit,lines"
+ << " -y 4,residuals -y2 5,weights --y2range -0.1:1.1 "
+ << "-t \"Robust fit (degree " << fit
+ << "), output of rstats for file " << filename << "\"`" << endl;
+ }
+ t0 = xdata[0];
+ *pout << "#Xdata, Data, fit, resid, weight (" << data.size() << " pts):"
+ << fixed << setprecision(3) << endl;
+ for(i=0; i<data.size(); i++) {
+ eval = savedata[0] + coef[0];
+ tt = xdata[i]-t0;
+ for(j=1; j<fit; j++) { eval += coef[j]*tt; tt *= (xdata[i]-t0); }
+ *pout << fixed << setprecision(3)
+ << xdata[i] << " " << savedata[i]
+ << " " << eval << " " << data[i]
+ << scientific << " " << wts[i] << endl;
+ }
+ if(pout != &cout) ((ofstream *)pout)->close();
+ //QSort(&wts[0],wts.size());
+ //Robust::StemLeafPlot(cout, &wts[0], wts.size(), "weights");
+ }
+ cout << endl;
+ delete[] coef;
+ if(nostats) return 0;
+ }
+
+ double median,mad,mest,Q1,Q3;
+ QSort(&data[0],data.size());
+ Robust::Quartiles(&data[0],data.size(),Q1,Q3);
+ mad = Robust::MedianAbsoluteDeviation(&data[0],data.size(),median);
+ wts = data;
+ mest = Robust::MEstimate(&data[0], data.size(), median, mad, &wts[0]);
+ cout << "Conventional statistics:\n"
+ << fixed << setprecision(8) << S << endl;
+
+ if(xcol > -1)
+ cout << "Two-sample statistics:\n" << setprecision(8) << TSS << endl;
+
+ cout << "Robust statistics:\n";
+ cout << " Number = " << data.size() << endl;
+ cout << " Quartiles = " << setw(11) << setprecision(8) << Q1
+ << " " << setw(11) << setprecision(8) << Q3 << endl;
+ cout << " Median = " << setw(11) << setprecision(8) << median << endl;
+ cout << " MEstimate = " << setw(11) << setprecision(8) << mest << endl;
+ cout << " MAD = " << setw(11) << setprecision(8) << mad << endl;
+
+ if(plot) {
+ try {
+ Robust::StemLeafPlot(cout, &data[0], data.size(),
+ string("Robust stats for column ") + asString(col) +
+ (filename.empty() ? string(" of input")
+ : string(" of file ") + filename)
+ );
+ }
+ catch(Exception& e) {
+ if(e.getText(0) == string("Invalid input") ||
+ e.getText(0) == string("Array has zero range")) {
+ cout << "(No stem and leaf plot; data is trivial)\n";
+ return 0;
+ }
+ //if(e.getText(0) == string("Array is not sorted"))
+ GPSTK_RETHROW(e);
+ }
+ }
+
+ if(qplot) {
+ xdata.resize(data.size());
+ Robust::QuantilePlot(&data[0],data.size(),&xdata[0]);
+ // output to file rstats.out
+ pout = new ofstream("qplot.out");
+ if(pout->fail()) {
+ cout << "Unable to open file qplot.out - output to screen\n";
+ pout = &cout;
+ }
+ else cout << "Output q-q data to file qplot.out (plot column 2 vs 1)\n";
+
+ TSS.Reset(); // use TSS to get slope and intercept of q-q fit to line
+ for(i=0; i<data.size(); i++) TSS.Add(xdata[i],data[i]);
+ for(i=0; i<data.size(); i++)
+ *pout << xdata[i] << " " << data[i]
+ << " " << TSS.Intercept() + TSS.Slope()*xdata[i]
+ << endl;
+
+ if(pout != &cout) ((ofstream *)pout)->close();
+
+ cout << "Q-Q data fit to line yields y-intercept (mean) "
+ << setprecision(3) << TSS.Intercept()
+ << " and slope (std.dev.) " << TSS.Slope() << endl
+ << " try `plot qplot.out -x 1 -y 2,data -y 3,line,lines"
+ << " -xl quantile -yl data -t \"Quantile plot\"`"
+ << endl;
+ }
+
+ return 0;
+ }
+ catch(Exception& e) {
+ cout << "GPSTk Exception : " << e;
+ }
+ catch (...) {
+ cout << "Unknown error. Abort." << endl;
+ }
+ return -1;
+} // end main()
diff --git a/dev/apps/ionosphere/IonoBias.cpp b/dev/apps/ionosphere/IonoBias.cpp
new file mode 100644
index 0000000..c42b23a
--- /dev/null
+++ b/dev/apps/ionosphere/IonoBias.cpp
@@ -0,0 +1,1666 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file IonoBias.cpp
+ * Program IonoBias will estimate satellite and receiver biases and compute
+ * a simple ionospheric model using least squares and slant TEC values
+ * from multiple stations.
+ */
+
+//------------------------------------------------------------------------------------
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexSatID.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "CommandOptionParser.hpp"
+
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+
+#include "Vector.hpp"
+#include "Matrix.hpp"
+
+#include "Position.hpp"
+#include "WGS84Geoid.hpp"
+#include "icd_200_constants.hpp" // for TWO_PI
+#include "geometry.hpp" // for DEG_TO_RAD and RAD_TO_DEG
+
+#include "RinexUtilities.hpp"
+
+#include <iostream>
+#include <time.h>
+#include <string>
+#include <vector>
+#include <map>
+#include <utility> // for pair
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// TD. Robustness!
+// Check for duplicate file names or site names - this makes it singular
+// Check for unreasonable TEC values - this also can make it singular
+// What is the purpose of max and min longitude?
+// look at the german objections
+// I don't understand co-rotating longitude - perhaps I can see making the sun stand
+// still, but why rotate so middle of each pass is aligned?
+//------------------------------------------------------------------------------------
+// Max PRN
+const int MAXPRN=32;
+// data input from command line
+bool verbose,debug;
+ // log file
+string LogFile;
+ofstream oflog;
+string Title;
+ // output file
+string ATFileName,BiasFileName;
+ofstream fout;
+ios::pos_type current_header_pos;
+ // input path
+string InputPath;
+vector<string> Filenames;
+ // excluded satellites
+vector<RinexSatID> ExSV;
+ // ephemeris
+string NavDir;
+vector<string> NavFiles;
+EphemerisStore *pEph;
+ // obs types needed
+RinexObsHeader::RinexObsType ELot,LAot,LOot,SRot,SSot;
+ // geoid
+WGS84Geoid WGS84;
+ // Start and stop times
+DayTime BegTime,EndTime;
+
+ // processing
+int MinPoints;
+double MinTimeSpan; // TD not implemented
+double MinElevation;
+double MinLatitude,MaxLatitude;
+double MinLongitude,MaxLongitude;
+double FoundMinLat,FoundMinLon,FoundMaxLat,FoundMaxLon;
+string TimeSector;
+double TermOffset;
+double IonoHt;
+ //
+double sunrise,sunset; // times in hours of day
+double begintime,endtime; // "
+ // normalizations
+double MJDNorm,LonNorm;
+ // data that goes into output file headers
+long NgoodStations;
+vector<vector<bool> > EstimationFlag;
+vector<bool> BoolVec;
+ // data per station that goes into AT output file
+int nfile; // current file number (0..Filenames.size()-1)
+long NgoodPoints;
+double TotalSpan; // time in days covered by the file
+string StationName;
+Position StationPosition; // station position in geographic lat,lon,radius
+ // least squares
+bool ComputeSatBiases,DoEstimation,SkipPreproc;
+string Model("linear");
+int NIonoParam,NBiasParam,NTotalParam;
+Vector<double> Sol,InfData;
+Matrix<double> Cov;
+int ndata;
+double MaxLat,MinLat,MaxCRLon,MinCRLon,PM[10];
+vector<pair<string,int> > ComponentIDs;
+map<string,int> mapN;
+map<string,string> mapFilename;
+
+//------------------------------------------------------------------------------------
+// prototypes
+void ConfigureAndDefaults(void) throw(Exception);
+int GetCommandLine(int argc, char **argv) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+int Initialize(void) throw(Exception);
+int Process(void) throw(Exception);
+int ProcessHeader(RinexObsStream& ins, string& filename, RinexObsHeader& head)
+ throw(Exception);
+void TimeLimits(Position llr, int doy, string& sector, double& begin, double& end)
+ throw(Exception);
+void SolarPosition(int doy, double hod, double& lat, double& lon) throw(Exception);
+void Sunrise(double lat, double lon, double ht, int doy, double& rise, double& set)
+ throw(Exception);
+int ProcessObs(RinexObsStream& ins, string& filename, RinexObsHeader& head)
+ throw(Exception);
+void WriteATHeader(void) throw(Exception);
+void WriteStationHeader(int npts, string sta_name, Position llr) throw(Exception);
+void ParseLine(string& str, vector<string>& wds) throw(Exception);
+int ReadATandCompute(void) throw(Exception);
+double obliquity(double elevation) throw(Exception);
+//void PartialsMatrix(Matrix<double>& P,int index,double lat,double lon,double obq);
+
+//------------------------------------------------------------------------------------
+// utility routines
+//------------------------------------------------------------------------------------
+// find the index of first occurance of item t (of type T) in vector<T> v;
+// i.e. v[index]=t Return -1 if t is not found.
+template<class T> int index(const std::vector<T> v, const T& t)
+{
+ for(int i=v.size()-1; i>=0; i--) {
+ if(v[i] == t) return i;
+ }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ int iret;
+ clock_t totaltime=clock(); // timer
+ DayTime CurrEpoch;
+
+ BegTime = DayTime::BEGINNING_OF_TIME;
+ EndTime = DayTime::END_OF_TIME;
+
+ // Title description and run time
+ CurrEpoch.setLocalTime();
+ Title = "IonoBias, built on the GPSTK ToolKit, Ver 1.0 6/25/04, Run ";
+ Title += CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S\n");
+ cout << Title;
+
+ // set configuration and default values
+ ConfigureAndDefaults();
+
+ // define extended types
+ iret = RegisterARLUTExtendedTypes();
+ if(iret) goto quit;
+ iret = RegisterExtendedRinexObsType("SS","Slant TEC (Phase smoothed)","TECU",0x1E);
+ if(iret) goto quit;
+
+ // get command line arguments
+ iret = GetCommandLine(argc, argv);
+ if(iret) goto quit;
+
+ if(!SkipPreproc) {
+ // initialize
+ iret = Initialize();
+ if(iret) goto quit;
+
+ // process the data
+ iret = Process();
+ if(iret) goto quit;
+
+ // write the revised header
+ WriteATHeader();
+ fout.close();
+ }
+
+ if(DoEstimation) {
+ // read the AT file and compute biases and model
+ iret = ReadATandCompute();
+ }
+
+quit:
+ // compute run time
+ totaltime = clock()-totaltime;
+ cout << "IonoBias timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ oflog << "\nIonoBias timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ oflog.close();
+
+ return iret;
+}
+catch(gpstk::Exception& e) {
+ cerr << e;
+ return 1;
+}
+catch (...) {
+ cerr << "Unknown error. Abort." << endl;
+ return 1;
+}
+ return 0;
+} // end main()
+
+//------------------------------------------------------------------------------------
+// set defaults
+void ConfigureAndDefaults(void) throw(Exception)
+{
+try {
+ verbose = false;
+ debug = false;
+ LogFile = string("IonoBias.log");
+ BiasFileName = string(""); // no output
+
+ MinPoints = 0;
+ MinTimeSpan = 0.0; // minutes
+ MinElevation = 0.0;
+ MinLatitude = -90.0;
+ MaxLatitude = 90.0;
+ MinLongitude = 0.0;
+ MaxLongitude = 360.0;
+ TimeSector = string("night");
+ TermOffset = 0.0; // min
+ IonoHt = 350.0; // km
+
+ DoEstimation=true; // if false, quit after writing the AT file
+ SkipPreproc =false; // if true, assume AT file exists and don't generate it
+ ComputeSatBiases=true; // if true, compute Sat+Rx biases, else Rx biases only
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Define, parse and evaluate command line
+int GetCommandLine(int argc, char **argv) throw(Exception)
+{
+try {
+ bool help=false;
+ int i,j;
+ RinexSatID sat;
+ sat.setfill('0');
+
+ // required options
+
+ RequiredOption dashin(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"input"," --input <file> Input Rinex obs file name(s)");
+ //dashin.setMaxCount(1);
+
+ // optional options
+
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," -f<file> file containing more options");
+
+ CommandOption dashp(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"inputdir"," --inputdir <path> Path for input file(s)");
+ dashp.setMaxCount(1);
+
+ // ephemeris
+ CommandOption dashnd(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "navdir"," Ephemeris input:\n --navdir <dir> Path of navigation file(s)");
+ dashnd.setMaxCount(1);
+
+ CommandOption dashn(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"nav"," --nav <file> Navigation (Rinex Nav OR SP3) file(s)");
+
+ CommandOption dashat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"datafile",
+ " Output:\n --datafile <file> Data (AT) file name, for output and/or input");
+ dashat.setMaxCount(1);
+
+ CommandOption dashl(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"log"," --log <file> Output log file name");
+ dashl.setMaxCount(1);
+
+ CommandOption dashout(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"biasout"," --biasout <file> Output satellite+receiver biases file name");
+ dashout.setMaxCount(1);
+
+ // time
+ CommandOptionWithTimeArg dasheb(0,"BeginTime","%Y,%m,%d,%H,%M,%f",
+ " Time limits:\n --BeginTime <arg> Start time, arg is of the form "
+ "YYYY,MM,DD,HH,Min,Sec");
+ CommandOptionWithTimeArg dashgb(0,"BeginGPSTime","%F,%g",
+ " --BeginGPSTime <arg> Start time, arg is of the form GPSweek,GPSsow");
+
+ CommandOptionWithTimeArg dashee(0,"EndTime","%Y,%m,%d,%H,%M,%f",
+ " --EndTime <arg> End time, arg is of the form YYYY,MM,DD,HH,Min,Sec");
+ CommandOptionWithTimeArg dashge(0,"EndGPSTime","%F,%g",
+ " --EndGPSTime <arg> End time, arg is of the form GPSweek,GPSsow");
+
+ // allow ONLY one start time (use startmutex(true) if one is required)
+ CommandOptionMutex startmutex(false);
+ startmutex.addOption(&dasheb);
+ startmutex.addOption(&dashgb);
+ CommandOptionMutex stopmutex(false);
+ stopmutex.addOption(&dashee);
+ stopmutex.addOption(&dashge);
+
+ CommandOptionNoArg dashde(0, "NoEstimation"," Processing:\n"
+ " --NoEstimation Do NOT perform the estimation (default=false).");
+
+ CommandOptionNoArg dashwo(0, "NoPreprocess",
+ " --NoPreprocess Skip preprocessing; read (existing) AT file "
+ "(false).");
+
+ CommandOptionNoArg dashsb(0, "NoSatBiases",
+ " --NoSatBiases Compute Receiver biases ONLY (not Rx+Sat biases) "
+ "(false).");
+
+ CommandOption dashmod(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Model"," --Model <type> Ionospheric model: type is linear, "
+ "quadratic or cubic");
+
+ CommandOption dashMinPoints(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinPoints",
+ " --MinPoints <n> Minimum points per satellite required");
+ dashMinPoints.setMaxCount(1);
+
+ CommandOption dashMinTimeSpan(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinTimeSpan",
+ " --MinTimeSpan <n> Minimum timespan per satellite required (minutes)");
+ dashMinTimeSpan.setMaxCount(1);
+
+ CommandOption dashMinElevation(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinElevation", " --MinElevation <n> Minimum elevation angle (degrees)");
+ dashMinElevation.setMaxCount(1);
+
+ CommandOption dashMinLatitude(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinLatitude", " --MinLatitude <n> Minimum latitude (degrees)");
+ dashMinLatitude.setMaxCount(1);
+
+ CommandOption dashMaxLatitude(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MaxLatitude", " --MaxLatitude <n> Maximum latitude (degrees)");
+ dashMaxLatitude.setMaxCount(1);
+
+ CommandOption dashMinLongitude(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinLongitude", " --MinLongitude <n> Minimum longitude (degrees)");
+ dashMinLongitude.setMaxCount(1);
+
+ CommandOption dashMaxLongitude(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MaxLongitude", " --MaxLongitude <n> Maximum longitude (degrees)");
+ dashMaxLongitude.setMaxCount(1);
+
+ CommandOption dashTimeSector(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"TimeSector", " --TimeSector <n> Time sector (day | night | both)");
+ dashTimeSector.setMaxCount(1);
+
+ CommandOption dashTermOffset(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"TerminOffset", " --TerminOffset <n> Terminator offset (minutes)");
+ dashTermOffset.setMaxCount(1);
+
+ CommandOption dashIonoHt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"IonoHeight", " --IonoHeight <n> Ionosphere height (km)");
+ dashIonoHt.setMaxCount(1);
+
+ CommandOption dashXsat(CommandOption::hasArgument, CommandOption::stdType,
+ '0', "XSat", " Other options:\n --XSat <sat> Exclude this satellite "
+ "(<sat> may be <system> only)");
+
+ // ... other options
+ CommandOptionNoArg dashv('v', "verbose",
+ " Help:\n [-v|--verbose] print extended output info.");
+
+ CommandOptionNoArg dashd('d', "debug",
+ " [-d|--debug] print extended output info.");
+
+ CommandOptionNoArg dashh('h', "help",
+ " [-h|--help] print syntax and quit.");
+
+ // ... rest of the command line
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par(
+ " Prgm IonoBias will open and read several preprocessed Rinex obs files\n"
+ " (containing obs types EL,LA,LO,SR or SS) and use the data to estimate\n"
+ " satellite and receiver biases and to compute a simple ionospheric model\n"
+ " using least squares and the slant TEC values.\n"
+ " Input is on the command line, or of the same format in a file (-f<file>).\n");
+
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0) Args.push_back(string("-h"));
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ if(debug) {
+ cout << "List passed to parse\n";
+ for(i=0; i<argc; i++) cout << i << " " << CArgs[i] << endl;
+ }
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ if(dashh.getCount() > 0) { help = true; }
+
+ if(Par.hasErrors()) {
+ cerr << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cerr);
+ cerr << "...end of Errors\n\n";
+ help = true;
+ }
+
+ if(help) {
+ Par.displayUsage(cout,false);
+ cout << endl;
+ }
+
+ // get values found on command line
+ vector<string> values;
+
+ // f never appears because we intercept it above
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+
+ // open the log file first
+ if(dashl.getCount()) {
+ values = dashl.getValue();
+ if(help) cout << "Input name of output log file: " << values[0] << endl;
+ LogFile = values[0];
+ }
+ oflog.open(LogFile.c_str(),ios_base::out);
+ if(!oflog) {
+ cerr << "Failed to open log file " << LogFile << endl;
+ return -1;
+ }
+ oflog << Title;
+ cout << "IonoBias output directed to log file " << LogFile << endl;
+ if(help) {
+ Par.displayUsage(oflog,false);
+ oflog << endl;
+ if (Par.hasErrors()) {
+ oflog << "\nErrors found in command line input:\n";
+ Par.dumpErrors(oflog);
+ oflog << "...end of Errors\n\n";
+ return -1;
+ }
+ }
+
+ // input path; do path before input file names
+ if(dashp.getCount()) {
+ values = dashp.getValue();
+ if(help) cout << "Input path name: " << values[0] << endl;
+ InputPath = values[0];
+ }
+ else InputPath = string("");
+
+ // input file names
+ if(dashin.getCount()) {
+ values = dashin.getValue();
+ if(help) cout << "Input Rinex obs file names are:\n";
+ string::size_type pos;
+ string fname;
+ for(i=0; i<values.size(); i++) {
+ fname = values[i];
+ // expand filenames of the form @name or name@
+ // into the *contents* (one name per line) of file 'name'.
+ pos = fname.find('@');
+ if(pos == string::npos || (pos != 0 && pos != fname.length()-1)) {
+ // value is a Rinex file name
+ if(InputPath.size() > 0) { fname = InputPath + "/" + fname; }
+ Filenames.push_back(fname);
+ if(help) cout << " " << fname << endl;
+ }
+ else { // value is a file containing Rinex file names
+ fname.erase(pos,1);
+ if(InputPath.size() > 0) { fname = InputPath + "/" + fname; }
+ if(help) cout << " " << "(Open and read file names from: "
+ << fname << ")" << endl;
+ ifstream infile(fname.c_str());
+ if(!infile) {
+ oflog << "Error: could not open file " << fname << endl;
+ }
+ else {
+ while(infile >> fname) {
+ if(fname[0] == '#') { // skip to end of line
+ char c;
+ while(infile.get(c)) { if(c=='\n') break; }
+ }
+ else {
+ Filenames.push_back(fname);
+ if(debug) oflog << " " << fname << endl;
+ }
+ } // end loop over lines in the file
+ infile.close();
+ } // end opened file
+ } // end if value is a file containing file names
+ } // end loop over values on command line
+ } // end dashin
+
+ // ephemeris input
+ if(dashnd.getCount()) {
+ values = dashnd.getValue();
+ NavDir = values[0];
+ if(help) cout << "Input Nav Directory: " << NavDir << endl;
+ }
+ if(dashn.getCount()) {
+ values = dashn.getValue();
+ NavFiles = values;
+ if(help) {
+ cout << "Input Nav files :";
+ for(i=0; i<NavFiles.size(); i++) cout << " " << NavFiles[i];
+ cout << endl;
+ }
+ }
+
+ if(dashat.getCount()) {
+ values = dashat.getValue();
+ if(help) cout << "Input name of AT file: " << values[0] << endl;
+ ATFileName = values[0];
+ }
+ if(dashout.getCount()) {
+ values = dashout.getValue();
+ if(help) cout << "Output biases file name: " << values[0] << endl;
+ BiasFileName = values[0];
+ }
+
+ if(dasheb.getCount()) {
+ values = dasheb.getValue();
+ BegTime.setToString(values[0], "%Y,%m,%d,%H,%M,%S");
+ if(help) cout << "Input BeginTime " << BegTime << endl;
+ }
+ if(dashee.getCount()) {
+ values = dashee.getValue();
+ EndTime.setToString(values[0], "%Y,%m,%d,%H,%M,%S");
+ if(help) cout << "Input EndTime " << EndTime << endl;
+ }
+ if(dashgb.getCount()) {
+ values = dashgb.getValue();
+ BegTime.setToString(values[0], "%F,%g");
+ if(help) cout << "Input BeginGPSTime " << BegTime << endl;
+ }
+ if(dashge.getCount()) {
+ values = dashge.getValue();
+ EndTime.setToString(values[0], "%F,%g");
+ if(help) cout << "Input EndGPSTime " << EndTime << endl;
+ }
+
+ // processing
+ if(dashde.getCount()) {
+ DoEstimation = false;
+ if(help) cout << "Turn OFF estimation of biases and model" << endl;
+ }
+ if(dashwo.getCount()) {
+ SkipPreproc = true;
+ if(help) cout << "Read the existing AT file (skip preprocessing)" << endl;
+ }
+ if(dashsb.getCount()) {
+ ComputeSatBiases = false;
+ if(help) cout << "Compute Rx biases only, not Rx+Sat biases" << endl;
+ }
+ if(dashmod.getCount()) {
+ values = dashmod.getValue();
+ Model = values[0];
+ if(help) cout << "Model input is " << Model << endl;
+ if(Model != string("linear") &&
+ Model != string("quadratic") &&
+ Model != string("cubic")) {
+ cout << "Warning: --Model is invalid -- linear will be used\n";
+ }
+ }
+ if(dashMinPoints.getCount()) {
+ values = dashMinPoints.getValue();
+ MinPoints = asInt(values[0]);
+ if(help) cout << "Minimum points per satellite = " << MinPoints << endl;
+ }
+ if(dashMinTimeSpan.getCount()) {
+ values = dashMinTimeSpan.getValue();
+ MinTimeSpan = asDouble(values[0]);
+ if(help) cout << "Minimum time span = " << MinTimeSpan << " minutes" << endl;
+ }
+ if(dashMinElevation.getCount()) {
+ values = dashMinElevation.getValue();
+ MinElevation = asDouble(values[0]);
+ //if(MinElevation <= 0.0 || MinElevation >= 90.0) {
+ //}
+ if(help) cout << "Minimum elevation = " << MinElevation << "degrees " << endl;
+ }
+ if(dashMinLatitude.getCount()) {
+ values = dashMinLatitude.getValue();
+ MinLatitude = asDouble(values[0]);
+ //if(MinLatitude <= -90.0 || MinLatitude >= 90.0) {
+ //}
+ if(help) cout << "Minimum latitude = " << MinLatitude << " degrees" << endl;
+ }
+ if(dashMaxLatitude.getCount()) {
+ values = dashMaxLatitude.getValue();
+ MaxLatitude = asDouble(values[0]);
+ //if(MaxLatitude <= -90.0 || MaxLatitude >= 90.0) {
+ //}
+ if(help) cout << "Maximum latitude = " << MaxLatitude << " degrees" << endl;
+ }
+ if(dashMinLongitude.getCount()) {
+ values = dashMinLongitude.getValue();
+ MinLongitude = asDouble(values[0]);
+ while(MinLongitude < 0.0) MinLongitude+=360.0;
+ if(help) cout << "Minimum longitude = " << MinLongitude << " degrees" << endl;
+ }
+ if(dashMaxLongitude.getCount()) {
+ values = dashMaxLongitude.getValue();
+ MaxLongitude = asDouble(values[0]);
+ while(MaxLongitude < 0.0) MaxLongitude+=360.0;
+ if(help) cout << "Maximum longitude = " << MaxLongitude << " degrees" << endl;
+ }
+ if(dashTimeSector.getCount()) {
+ values = dashTimeSector.getValue();
+ TimeSector = lowerCase(values[0]);
+ if(help) cout << "Time sector = " << TimeSector << endl;
+ // TD check that it is valid
+ }
+ if(dashTermOffset.getCount()) {
+ values = dashTermOffset.getValue();
+ TermOffset = asDouble(values[0]);
+ if(help) cout << "Terminal offset = " << TermOffset << " minutes" << endl;
+ }
+ if(dashIonoHt.getCount()) {
+ values = dashIonoHt.getValue();
+ IonoHt = asDouble(values[0]);
+ if(help) cout << "Ionosphere height = " << IonoHt << " km" << endl;
+ }
+
+ if(dashXsat.getCount()) {
+ values = dashXsat.getValue();
+ for(i=0; i<values.size(); i++) {
+ sat.fromString(values[i]);
+ if(help) cout << "Input: exclude satellite " << sat << endl;
+ ExSV.push_back(sat);
+ }
+ }
+
+ if(dashh.getCount())
+ oflog << "Option h appears " << dashh.getCount() << " times\n";
+ if(dashv.getCount()) {
+ verbose = true;
+ if(help) cout << "Option v appears " << dashv.getCount() << " times\n";
+ }
+ if(dashd.getCount()) {
+ debug = true;
+ if(help) cout << "Option d appears " << dashd.getCount() << " times\n";
+ }
+
+ if(Rest.getCount() && help) {
+ cout << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) cout << values[i] << endl;
+ }
+ if(verbose && help) {
+ cout << "\nTokens on command line (" << Args.size() << ") are:" << endl;
+ for(j=0; j<Args.size(); j++) cout << Args[j] << endl;
+ cout << endl;
+ }
+ if(help) cout << "Configuration summarized in log file\n";
+
+ // print configuration
+ if(verbose || help || debug) {
+ oflog << "Input configuration for IonoBias:\n";
+ if(!InputPath.empty()) oflog << " Path for input files is "
+ << InputPath << endl;
+ oflog << " Input Rinex obs file names are:\n";
+ for(i=0; i<Filenames.size(); i++)
+ oflog << " " << Filenames[i] << endl;
+ if(!NavDir.empty()) oflog << " Path for input nav files is "
+ << NavDir << endl;
+ if(NavFiles.size() > 0) {
+ oflog << " Input Rinex nav file names are:\n";
+ for(i=0; i<NavFiles.size(); i++)
+ oflog << " " << NavFiles[i] << endl;
+ }
+ //oflog << " Input data interval is: " << fixed << setprecision(2)
+ //<< DataInterval << endl;
+ if(!ATFileName.empty()) oflog << " AT file name is "
+ << ATFileName << endl;
+ if(BegTime > DayTime::BEGINNING_OF_TIME) oflog << " Begin time is "
+ << BegTime.printf("%Y/%m/%d_%H:%M:%6.3f=%F/%10.3g") << endl;
+ if(EndTime < DayTime::END_OF_TIME) oflog << " End time is "
+ << EndTime.printf("%Y/%m/%d_%H:%M:%6.3f=%F/%10.3g") << endl;
+ oflog << " Processing:\n";
+ oflog << " Use a " << Model << " ionospheric model" << endl;
+ oflog << " Minimum points per satellite = " << MinPoints << endl;
+ oflog << " Minimum time span = " << MinTimeSpan << " minutes" << endl;
+ oflog << " Minimum elevation = " << MinElevation << " degrees" << endl;
+ oflog << " Minimum latitude = " << MinLatitude << " degrees" << endl;
+ oflog << " Maximum latitude = " << MaxLatitude << " degrees" << endl;
+ oflog << " Minimum longitude = " << MinLongitude << " degrees" << endl;
+ oflog << " Maximum longitude = " << MaxLongitude << " degrees" << endl;
+ oflog << " Time sector = " << TimeSector << endl;
+ oflog << " Terminal offset = " << TermOffset << " minutes" << endl;
+ oflog << " Ionosphere height = " << IonoHt << " km" << endl;
+ if(ExSV.size() > 0) {
+ oflog << " Exclude these satellites:";
+ for(i=0; i<ExSV.size(); i++) oflog << " " << ExSV[i];
+ oflog << endl;
+ }
+ oflog << " Compute " << (ComputeSatBiases ? "Sat+":"") << "Rx biases" << endl;
+ if(BiasFileName.length() > 0)
+ oflog << " Output biases to file " << BiasFileName << endl;
+ else
+ oflog << " Do not output biases to a file" << endl;
+ oflog << " Do" << (DoEstimation?"":" not do")
+ << " the estimation problem" << endl;
+ oflog << " " << (SkipPreproc?"Skip":"Do not skip") << " the preprocessing"
+ << endl;
+ if(help) oflog << " Help (-h) is set\n";
+ if(debug) oflog << " Debug (-d) is set\n";
+ oflog << "End of input configuration for IonoBias" << endl;
+ }
+
+ if(!DoEstimation && SkipPreproc) {
+ cout << "ERROR: Estimation is turned off and so is preprocessing!\n";
+ cout << "ERROR: Abort: nothing to do.\n";
+ return -1;
+ }
+
+ if(help) return 1;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Pull out --debug --verbose -f<f> and --file <f> and -l<f> --log <f> options.
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+ static bool found_log_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ if(debug) cout << "Found a file of options: " << filename << endl;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ bool again_log_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(again_log_file) {
+ word = "-l" + word;
+ again_log_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer.clear();
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word == "--log" || word == "-l")
+ again_log_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if(found_log_file || (arg[0]=='-' && arg[1]=='l')) {
+ LogFile = string(arg);
+ if(!found_log_file) LogFile.erase(0,2); else found_log_file = false;
+ }
+ else if(string(arg) == "--log")
+ found_log_file = true;
+ else if((arg[0]=='-' && arg[1]=='d') || string(arg)==string("--debug"))
+ debug = true;
+ else if((arg[0]=='-' && arg[1]=='v') || string(arg)==string("--verbose"))
+ verbose = true;
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+
+//------------------------------------------------------------------------------------
+int Initialize(void) throw(Exception)
+{
+try {
+ static SP3EphemerisStore SP3EphList;
+ static BCEphemerisStore BCEphList;
+
+ // open nav files and read EphemerisStore
+ if(!NavDir.empty())
+ for(int i=0; i<NavFiles.size(); i++)
+ NavFiles[i] = NavDir + "/" + NavFiles[i];
+ FillEphemerisStore(NavFiles, SP3EphList, BCEphList);
+ if(SP3EphList.size()) {
+ if(verbose) SP3EphList.dump(0,oflog);
+ }
+ else if(verbose) oflog << "SP3 Ephemeris list is empty\n";
+
+ if(BCEphList.size()) {
+ BCEphList.SearchNear();
+ if(verbose) BCEphList.dump(0,oflog);
+ }
+ else if(verbose) oflog << "BC Ephemeris list is empty\n";
+
+ if(SP3EphList.size()) pEph = &SP3EphList;
+ else if(BCEphList.size()) pEph = &BCEphList;
+ else {
+ cerr << "IonoBias abort -- no ephemeris\n";
+ oflog << "IonoBias abort -- no ephemeris\n";
+ return -1;
+ }
+
+ // create the obs types for later use
+ ELot = RinexObsHeader::convertObsType("EL");
+ LAot = RinexObsHeader::convertObsType("LA");
+ LOot = RinexObsHeader::convertObsType("LO");
+ SRot = RinexObsHeader::convertObsType("SR");
+ SSot = RinexObsHeader::convertObsType("SS");
+
+ // initialize AT header data
+ int i;
+ NgoodStations = 0;
+ for(i=0; i<=MAXPRN; i++) BoolVec.push_back(false);
+ for(i=0; i<Filenames.size(); i++) EstimationFlag.push_back(BoolVec);
+
+ // open output file and write zero-filled header
+ fout.open(ATFileName.c_str(),ios_base::out);
+ if(!fout) {
+ cerr << "IonoBias abort -- failed to open AT file " << ATFileName
+ << " for output." << endl;
+ oflog << "IonoBias abort -- failed to open AT file " << ATFileName
+ << " for output." << endl;
+ return -2;
+ }
+ WriteATHeader();
+
+ FoundMinLat = 90;
+ FoundMinLon = 360;
+ FoundMaxLat = -90;
+ FoundMaxLon = 0;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok,
+// -2 could not open a file,
+// -3 FFStream exception,
+// -4 gpstk exception,
+// -5 no sunrise
+int Process(void) throw(Exception)
+{
+try {
+ int i,iret;
+ string fname;
+ //RinexObsStream instream;
+ RinexObsHeader header;
+
+ // loop over input file names
+ if(verbose) oflog << "\nProcess " << Filenames.size() << " input files:\n";
+ for(ndata=0,nfile=0; nfile<Filenames.size(); nfile++) {
+ if(verbose) oflog << endl;
+ fname = Filenames[nfile];
+ //instream.clear();
+ //instream.open(fname.c_str(),ios_base::in);
+ RinexObsStream instream(fname.c_str(),ios_base::in);
+ if(!instream) {
+ oflog << " Rinex file " << fname << " could not be opened -- abort.\n";
+ return -2;
+ }
+ instream.exceptions(ios::failbit);
+ if(verbose) oflog << "Opened input file #" << nfile+1 << ": " << fname << endl;
+
+ iret = ProcessHeader(instream,fname,header);
+ if(iret != 0) return iret;
+
+ if(nfile==0) {
+ MJDNorm = header.firstObs.MJD();
+ LonNorm = StationPosition[1]; //.getLongitude();
+ }
+
+ iret = ProcessObs(instream,fname,header);
+ if(iret != 0) return iret;
+
+ instream.close();
+
+ } // end loop over file names
+
+ if(verbose) {
+ oflog << endl << "Processed " << Filenames.size()
+ << " files; " << NgoodStations << " of them had good data.\n";
+ oflog << "Total number of data points = " << ndata << endl;
+ oflog << "Found " << fixed << setprecision(2)
+ << FoundMinLat << " <= raw Lat <= " << FoundMaxLat << " and "
+ << FoundMinLon << " <= raw Lon <= " << FoundMaxLon << endl;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok, -3 FFStream exception, -4 gpstk exception, -5 no sunrise
+int ProcessHeader(RinexObsStream& ins, string& filename, RinexObsHeader& head)
+ throw(Exception)
+{
+try {
+ // input header
+ try {
+ ins >> head;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading header for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught an FFStreamError while reading header for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ return -3;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught a gpstk exception while reading header for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught a gpstk exception while reading header for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ return -4;
+ }
+
+ // convert to LLH
+ Position xyz;
+ xyz.setECEF(head.antennaPosition);
+ StationPosition = xyz;
+ StationPosition.transformTo(Position::Geocentric);
+
+ // compute begin and end times
+ TimeLimits(StationPosition, head.firstObs.DOY(), TimeSector, begintime, endtime);
+ if(begintime == -999 || endtime == -999) return -5;
+
+ // save station info
+ StationName = lowerCase(subString(head.markerName,0,4));
+ TotalSpan = head.lastObs.MJD()-head.firstObs.MJD();
+
+ // dump header information
+ if(verbose) {
+ int i;
+ oflog << "File name: " << filename << endl;
+ oflog << "Marker name: " << head.markerName << "\n";
+ oflog << "Position (XYZ,m) : " << fixed
+ << setprecision(3) << head.antennaPosition << "\n";
+ oflog << "Position (LLH ) : ("
+ << setprecision(8) << StationPosition[0] << ", "
+ << setprecision(8) << StationPosition[1] << ", "
+ << setprecision(4)
+ << StationPosition[2] - StationPosition.radiusEarth()
+ << ")\n";
+ oflog << "Observation types (" << head.obsTypeList.size() << ") :";
+ for(i=0; i<head.obsTypeList.size(); i++)
+ oflog << " " << RinexObsHeader::convertObsType(head.obsTypeList[i]);
+ oflog << endl;
+ oflog << "Time of first obs "
+ << head.firstObs.printf("%04Y/%02m/%02d %02H:%02M:%010.7f")
+ << " " << (head.firstSystem.system==RinexSatID::systemGlonass?"GLO":
+ (head.firstSystem.system==RinexSatID::systemGalileo?"GAL":"GPS"))
+ << endl;
+ oflog << "Time of last obs "
+ << head.lastObs.printf("%04Y/%02m/%02d %02H:%02M:%010.7f")
+ << " " << (head.lastSystem.system==RinexSatID::systemGlonass?"GLO":
+ (head.lastSystem.system==RinexSatID::systemGalileo?"GAL":"GPS"))
+ << endl;
+ oflog << "DOY = " << head.firstObs.DOY() << endl;
+ oflog << "Sunrise = " << setprecision(2) << sunrise;
+ oflog << " Sunset = " << setprecision(2) << sunset << endl;
+ oflog << "Begin time = " << setprecision(2) << begintime;
+ oflog << " End time = " << setprecision(2) << endtime << endl;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Given a position (LLH), day of year, and sector flag (TimeSector),
+// compute the begin and end times (hours of the day) of our data window,
+// which will = sunrise + TermOffset and sunset - TermOffset.
+void TimeLimits(Position llr, int doy, string& sector, double& begin, double& end)
+ throw(Exception)
+{
+try {
+ begin = 0;
+ end = 24.;
+
+ Sunrise(llr[0], llr[1], IonoHt*1000.0, doy, sunrise, sunset);
+ if(sector == string("both")) return;
+ if(sector == string("day")) {
+ begin = sunrise + TermOffset/60.0;
+ end = sunset - TermOffset/60.0;
+ }
+ if(sector == string("night")) {
+ begin = sunset + TermOffset/60.0;
+ end = sunrise - TermOffset/60.0;
+ }
+
+ while(begin < 0) begin += 24;
+ while(begin >= 24) begin -= 24;
+ while(end < 0) end += 24;
+ while(end >= 24) end -= 24;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Compute the position (latitude and longitude, in degrees) of the sun
+// given the day of year and the hour of the day.
+// Adapted from sunpos by D. Coco 12/15/94
+//#include "icd_200_constants.hpp // for TWO_PI
+//#include "geometry.hpp" // for DEG_TO_RAD and RAD_TO_DEG
+void SolarPosition(int doy, double hod, double& lat, double& lon) throw(Exception)
+{
+try {
+ lat = sin(23.5*DEG_TO_RAD)*sin(TWO_PI*double(doy-83)/365.25);
+ lat = lat / ::sqrt(1.0-lat*lat);
+ lat = RAD_TO_DEG*atan(lat);
+ lon = 180.0 - hod*15.0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Compute the time of day of sunrise and sunset (set to -999 if they do not exist),
+// given a geographic position and day of year.
+// Adapted from D. Coco 2/7/96 from equation in Supplement to the Astromonical Almanac
+void Sunrise(double lat, double lon, double ht, int doy, double& rise, double& set)
+ throw(Exception)
+{
+try {
+ const double DEG_TO_HRS=(24.0/360.0); // should this be sidereal day?
+ double sunlat,sunlon,hod;
+
+ // find the position of the sun
+ hod = 0;
+ SolarPosition(doy, hod, sunlat, sunlon);
+
+ double x = -1 * tan(sunlat*DEG_TO_RAD) * tan(lat*DEG_TO_RAD);
+ if(x <= -1.0 || x >= 1.0) {
+ rise = set = -999;
+ return;
+ }
+ x = acos(x) * RAD_TO_DEG;
+
+ rise = DEG_TO_HRS * (sunlon - lon - x);
+ set = DEG_TO_HRS * (sunlon - lon + x);
+
+ // adjust for height above sea level
+ double dht=0,radius=Position::radiusEarth(lat,WGS84.a(),WGS84.eccSquared());
+ dht = 24.0*acos(radius/(radius+ht))/TWO_PI;
+ rise -= dht;
+ set += dht;
+
+ while(rise < 0) rise += 24;
+ while(rise >= 24) rise -= 24;
+ while(set < 0) set += 24;
+ while(set >= 24) set -= 24;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok, -3 FFStream exception, -4 gpstk exception, -6 stream not good
+int ProcessObs(RinexObsStream& ins, string& filename, RinexObsHeader& head)
+ throw(Exception)
+{
+try {
+ int i,j,k,npts[MAXPRN+1];
+ double EL,LA,LO,SR,hours,cr,ob;
+ Position LLI;
+ DayTime begin[MAXPRN+1],end[MAXPRN+1];
+ RinexObsData robs;
+ RinexSatID sat;
+ //RinexObsData::RinexObsTypeMap otmap;
+ RinexObsData::RinexSatMap::const_iterator it;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+
+ if(!ins.good()) return -6;
+
+ // initialize for this station
+ fout.seekp(0,ios_base::end); // go to EOF
+ current_header_pos = fout.tellp(); // save for later
+ NgoodPoints = 0;
+ WriteStationHeader(NgoodPoints,StationName,StationPosition); // dummy
+
+ // loop over epochs
+ for(i=1; i<=MAXPRN; i++) npts[i]=0;
+ do {
+ try {
+ ins >> robs;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading obs for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught an FFStreamError while reading obs for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ return -3;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught a gpstk exception while reading obs for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught a gpstk exception while reading obs for file "
+ << filename << ":\n" << e.getText(0) << endl;
+ return -4;
+ }
+ if(ins.eof()) break;
+ if(!ins.good()) { return -6; }
+
+ //if(verbose) oflog << " Read file " << filename
+ // << " epoch " << robs.time.printf("%Y/%m/%d_%H:%M:%6.3f=%F/%10.3g") << endl;
+
+ hours = robs.time.secOfDay()/3600.0; // hours of the day
+ // compute co-rotating longitude CL = LO + cr
+ cr = (robs.time.MJD()-MJDNorm) * 360.0;
+ cr -= LonNorm + TotalSpan * 180.0;
+
+ // loop over sat=it->first, ObsTypeMap=it->second
+ for(it=robs.obs.begin(); it != robs.obs.end(); ++it) {
+ sat = it->first;
+ if(sat.system != SatID::systemGPS) continue; // ignore non-GPS satellites
+ if(sat.id <= 0 || sat.id > MAXPRN) continue; // just in case...
+ for(i=0,k=-1; i<ExSV.size(); i++) { // Is this satellite excluded ?
+ if( ExSV[i] == sat || // sat is excluded
+ (ExSV[i].id==-1 && ExSV[i].system==sat.system) ) {// system excluded
+ k=i;
+ break;
+ }
+ }
+ if(k != -1) continue;
+
+ // process this sat
+ if( (jt=it->second.find(ELot)) != it->second.end()) {
+ EL = jt->second.data;
+ if(EL < MinElevation) continue;
+ }
+ //else ...
+
+ if( (jt=it->second.find(LAot)) != it->second.end()) {
+ LA = jt->second.data;
+ if(LA < FoundMinLat) FoundMinLat = LA;
+ if(LA > FoundMaxLat) FoundMaxLat = LA;
+ if(LA < MinLatitude || LA > MaxLatitude) continue;
+ }
+
+ if( (jt=it->second.find(LOot)) != it->second.end()) {
+ LO = jt->second.data;
+ while(LO < 0.0) LO+=360.0;
+ if(LO < FoundMinLon) FoundMinLon = LO;
+ if(LO > FoundMaxLon) FoundMaxLon = LO;
+ if(LO < MinLongitude || LO > MaxLongitude) continue;
+ }
+
+ if( (jt=it->second.find(SRot)) != it->second.end()) {
+ SR = jt->second.data;
+ //if(jt->second.ssi == 1) continue; // reject if ssi==1 ?? TD
+ }
+ else if( (jt=it->second.find(SSot)) != it->second.end()) {
+ SR = jt->second.data;
+ }
+
+ LLI = Position(LA,LO,IonoHt*1000.0); // 3rd entry is actually not used.
+ TimeLimits(LLI, robs.time.DOY(), TimeSector, begintime, endtime);
+ if(endtime >= begintime) {
+ if(hours < begintime || hours > endtime) continue;
+ }
+ else {
+ if(hours < begintime && hours > endtime) continue;
+ }
+
+ // compute the obliquity
+ ob = obliquity(EL);
+
+ // write out
+ fout << setw(4) << robs.time.GPSfullweek();
+ fout << " " << setw(8) << setprecision(1) << robs.time.GPSsow();
+ fout << " " << setw(9) << setprecision(5) << LA; // latitude
+ fout << " " << setw(10) << setprecision(5) << LO+cr; // co-rotating longitude
+ fout << " " << setw(4) << setprecision(2) << ob; // 1/obliquity
+ fout << " " << setw(8) << setprecision(3) << SR; // slant TEC
+ fout << " " << setw(6) << setprecision(2) << 1; // sigma ?? TD
+ fout << " " << setw(2) << sat.id; // PRN
+ fout << " " << setw(3) << nfile+1; // file number
+ fout << endl;
+
+ EstimationFlag[nfile][sat.id] = true;
+ NgoodPoints++;
+ npts[sat.id]++; // Npts for this sat
+ if(npts[sat.id]==1) begin[sat.id] = robs.time;
+ end[sat.id] = robs.time;
+
+ } // end for loop over sats
+
+
+ } while(1);
+
+ // revised header
+ WriteStationHeader(NgoodPoints,StationName,StationPosition);
+
+ // revise estimation flags
+ if(verbose) oflog << "PRN Points Timespan Begin End (hrs)\n";
+ for(i=1; i<=MAXPRN; i++) {
+ if(npts[i] > 0) {
+ if(verbose) oflog << "G" << setfill('0') << setw(2) << i << setfill(' ')
+ << setw(6) << npts[i]
+ << setw(10) << setprecision(2) << (end[i]-begin[i])/3600.0
+ << setw(10) << setprecision(2) << begin[i].secOfDay()/3600.0
+ << setw(10) << setprecision(2) << end[i].secOfDay()/3600.0;
+ if((end[i]-begin[i] < MinTimeSpan*60.0 || npts[i] < MinPoints)){
+ if(verbose) {
+ oflog << " reject(";
+ if(end[i]-begin[i] < MinTimeSpan*60.0) oflog << " time ";
+ if(npts[i] < MinPoints) oflog << " pts ";
+ oflog << ")";
+ }
+ EstimationFlag[nfile][i] = false;
+ NgoodPoints -= npts[i];
+ }
+ if(verbose) oflog << endl;
+ }
+ }
+
+ if(NgoodPoints > 0) {
+ NgoodStations++;
+ ndata += NgoodPoints;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void WriteATHeader(void) throw(Exception)
+{
+try {
+ int i,j;
+ fout.seekp(0);
+ fout << setw(5) << Filenames.size() << " " << setw(5) << NgoodStations
+ << " Number (max, good) stations in this file \n";
+ for(i=0; i<Filenames.size(); i++) {
+ for(j=0; j<MAXPRN+1; j++) fout << (EstimationFlag[i][j] ? '1' : '0');
+ fout << "\n";
+ }
+ fout << fixed;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void WriteStationHeader(int npts, string sta_name, Position llr) throw(Exception)
+{
+try {
+ fout.seekp(current_header_pos);
+ fout << "Npt " << setw(5) << npts;
+ //fout << in_file_s;
+ //fout << sta_id;
+ fout << " Sta " << sta_name;
+ fout << " LLH " << setw(10) << setprecision(4) << llr[0]; //gllh.getLatitude();
+ fout << " " << setw(10) << setprecision(4) << llr[1]; //gllh.getLongitude();
+ fout << " " << setw(10) << setprecision(4)
+ << llr[2]-Position::radiusEarth(llr[0],WGS84.a(),WGS84.eccSquared());
+ //gllh.getAltitude();
+ fout << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void ParseLine(string& str, vector<string>& wds) throw(Exception)
+{
+try {
+ istringstream iss(str);
+ string wd;
+ wds.clear();
+ while(iss >> wd) {
+ wds.push_back(wd);
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int ReadATandCompute(void) throw(Exception)
+{
+try {
+ ifstream ifs;
+ ifs.open(ATFileName.c_str()); // output file is now the input
+ if(!ifs) {
+ cerr << "Failed to open AT file " << ATFileName << " for input" << endl;
+ return -1;
+ }
+ else if(verbose) oflog << "\nOpened AT file " << ATFileName << " for input\n";
+
+ // read the AT header
+ int i,j,k,ii,jj;
+ long N,n;
+ string line;
+
+ EstimationFlag.clear();
+ ifs >> N >> n;
+ getline(ifs,line); // read to eol
+ for(i=0; i<N; i++) {
+ getline(ifs,line);
+ for(j=0; j<line.size(); j++) BoolVec[j] = (line[j] == '1');
+ EstimationFlag.push_back(BoolVec);
+ }
+
+ //if(verbose) {
+ // oflog << "Read AT (" <<N<< "," <<n<< "," << EstimationFlag.size() << ")\n";
+ // for(i=0; i<EstimationFlag.size(); i++) {
+ // for(j=0; j<MAXPRN+1; j++) oflog << (EstimationFlag[i][j] ? '1' : '0');
+ // oflog << "\n";
+ // }
+ //}
+
+ if(N != EstimationFlag.size()) { //oops
+ }
+
+ // dimension and initialize the LS problem
+ if(Model == "cubic") {
+ oflog << "Model is cubic\n";
+ NIonoParam = 10;
+ }
+ else if(Model == "quadratic") {
+ oflog << "Model is quadratic\n";
+ NIonoParam = 6;
+ }
+ else { // linear and default
+ oflog << "Model is linear\n";
+ NIonoParam = 3;
+ }
+
+ for(NBiasParam=0,i=0; i<N; i++) {
+ if(!ComputeSatBiases) NBiasParam++;
+ else for(j=0; j<MAXPRN+1; j++) if(EstimationFlag[i][j]) NBiasParam++;
+ }
+ NTotalParam = NIonoParam + NBiasParam;
+
+ Sol.resize(NTotalParam,0.0);
+ Cov.resize(NTotalParam,NTotalParam,0.0);
+ InfData.resize(NTotalParam,0.0);
+
+ // Read the rest of the AT file
+ int wn,prn,nfile,in;
+ double sow,lat,lon,obq,sr,sig,d2=0;
+ string stationID;
+ vector<string> words;
+ pair<string,int> Comp;
+
+ // loop over stations
+ oflog << setw(2) << N << " Number of stations (N data and filename follow).\n";
+ for(ndata=0,i=0; i<N; i++) {
+ // read station header
+ getline(ifs,line);
+ ParseLine(line,words);
+ if(words[0] != string("Npt")) { //oops
+ }
+ n = asInt(words[1]);
+ stationID = words[3];
+
+ if(n > 0 && verbose) {
+ oflog << setw(3) << i+1 << " " << stationID << " " << setw(4) << n << " ";
+ for(j=0; j<=MAXPRN; j++) oflog << (EstimationFlag[i][j] ? '1' : '0');
+ oflog << " " << Filenames[i];
+ oflog << endl;
+ mapN[stationID] = n;
+ mapFilename[stationID] = Filenames[i];
+ }
+
+ // read data
+ for(j=0; j<n; j++) {
+ getline(ifs,line);
+ ParseLine(line,words);
+ wn = asInt(words[0]);
+ sow = asDouble(words[1]);
+ lat = asDouble(words[2]);
+ lon = asDouble(words[3]);
+ obq = asDouble(words[4]);
+ sr = asDouble(words[5]);
+ sig = asDouble(words[6]);
+ prn = asInt(words[7]);
+ nfile = asInt(words[8]);
+
+ // do not include rejected data
+ if(!(EstimationFlag[i][prn])) continue;
+
+ // if NOT computing satellite biases, lump all data together into "PRN 0"
+ if(!ComputeSatBiases) { prn = 0; }
+
+ // find min and max lat and lon
+ if(ndata == 0) {
+ MaxLat = MinLat = lat;
+ MaxCRLon = MinCRLon = lon;
+ }
+ else {
+ if(fabs(lat) > MaxLat) MaxLat=lat;
+ if(fabs(lat) < MinLat) MinLat=lat;
+ if(fabs(lon) > MaxCRLon) MaxCRLon=lon;
+ if(fabs(lon) < MinCRLon) MinCRLon=lon;
+ }
+ ndata++;
+
+ // add this data to the LS
+ //d2 += sr*sr;
+ // find the index in partials matrix for this station-satellite pair
+ Comp = make_pair(stationID,prn);
+ in = index(ComponentIDs,Comp);
+ if(in == -1) {
+ in = ComponentIDs.size();
+ ComponentIDs.push_back(Comp);
+ }
+
+ //PartialsMatrix(Par,in,lat,lon,obq);
+ // note that obq is 1/obliquity
+ // row of partials matrix has [in] = 1 and if nb=NBiasParam
+ PM[0] = obq; // [nb+0] (all models)
+ PM[1] = lat * obq; // [nb+1] (all models)
+ PM[2] = lon * obq; // [nnb2] (all models)
+ if(NIonoParam > 3) {
+ PM[3] = lat * lat * obq; // [nb+3] (quadratic and cubic)
+ PM[4] = lon * lon * obq; // [nb+4] (quadratic and cubic)
+ PM[5] = lat * lon * obq; // [nb+5] (quadratic and cubic)
+ }
+ if(NIonoParam > 6) {
+ PM[6] = lat * lat * lat * obq; // [nb+6] (cubic only)
+ PM[7] = lon * lon * lon * obq; // [nb+7] (cubic only)
+ PM[8] = lat * lat * lon * obq; // [nb+8] (cubic only)
+ PM[9] = lat * lon * lon * obq; // [nb+9] (cubic only)
+ }
+
+ //LS.Add(Par,Dat,Wgt); do the sequential LS by hand for efficiency
+ //
+ // Inf += transpose(partials) * partials (weight = 1)
+ // InfData += transpose(partials) * data
+ //
+ Cov(in,in) += 1.0;
+ InfData(in) += sr;
+ for(ii=0; ii<NIonoParam; ii++) {
+ k = NBiasParam + ii;
+ InfData(k) += sr * PM[ii];
+ Cov(k,in) += PM[ii];
+ Cov(in,k) += PM[ii];
+ for(jj=0; jj<NIonoParam; jj++) {
+ Cov(k,NBiasParam+jj) += PM[ii]*PM[jj];
+ }
+ }
+
+ } // end loop over points for this station
+
+ } // end loop over stations
+
+ ifs.close();
+
+ oflog << setw(9) << setprecision(2) << MinLat << " Minimum Latitude\n";
+ oflog << setw(9) << setprecision(2) << MaxLat << " Maximum Latitude\n";
+ oflog << setw(9) << setprecision(2) << MinCRLon << " Minimum Co-rot lon\n";
+ oflog << setw(9) << setprecision(2) << MaxCRLon << " Maximum Co-rot lon\n";
+ oflog << setw(5) << ndata << " data points used." << endl << endl;
+
+ // solve the LS problem
+ // Cov = inverse(information)
+ // X = Cov * InfData
+ try { Cov = inverse(Cov); }
+ catch(Exception& e) {
+ oflog << "Least squares failed because the problem is singular\n";
+ return -2;
+ }
+
+ // Invert Cov via SVD - also expensive - maybe make option, see SVs and conditionN
+ //SVD<double> svd;
+ //svd(Cov);
+ //oflog << "Singular Values range " << svd.S(0)
+ // << " to " << svd.S(NTotalParam-1) << endl;
+ //for(i=1; i<NIonoParam; i++) {
+ // if(svd.S(i) < 1.e-14 * svd.S(0)) {
+ // oflog << "Edit SingularValue(" << i << ") = " << svd.S(i) << endl;
+ // svd.S(i) = 0;
+ // }
+ //}
+ //Vector<double> T(NIonoParam);
+ //for(j=0; j<NIonoParam; j++) { // loop over columns
+ // T = 0.0;
+ // T(j) = 1.0;
+ // svd.backSub(T);
+ // for(i=0; i<NTotalParam; i++) Cov(i,j)=T(i);
+ //}
+
+ // compute solution
+ Sol = Cov * InfData;
+ //if(verbose) oflog << "Least squares solved successfully.\n";
+
+ // print solution and sigma - remember lat and lon may be scaled by 1/1000
+ bool biasout=false;
+ if(BiasFileName.length() > 0) {
+ fout.open(BiasFileName.c_str(),ios_base::out);
+ if(!fout)
+ cerr << "Failed to open output biases file " << BiasFileName << endl;
+ else {
+ biasout = true;
+ fout << Title;
+ }
+ }
+ oflog << setw(2) << NBiasParam << " Number of SPR biases\n";
+ if(biasout) fout << setw(2) << NBiasParam << " Number of SPR biases\n";
+ for(i=0; i<NBiasParam; i++) {
+ ostringstream oss;
+ oss << "BIAS " << setw(3) << i+1 // number
+ << " " << ComponentIDs[i].first // station id
+ << " G" << setw(2) << setfill('0') << ComponentIDs[i].second // sat G<prn>
+ << setfill(' ') << fixed
+ << " " << setw(4) << mapN[ComponentIDs[i].first]
+ << " " << setw(12) << setprecision(6) << Sol(i) // bias
+ << scientific
+ << " " << setw(10) << setprecision(3) << ::sqrt(Cov(i,i)) // sigma
+ << " " << mapFilename[ComponentIDs[i].first]
+ << endl;
+ oflog << oss.str();
+ if(biasout) fout << oss.str();
+ }
+ oflog << setw(2) << NTotalParam-NBiasParam << " Number of ion model parameters\n";
+ for(i=NBiasParam; i<NTotalParam; i++) {
+ ostringstream oss;
+ oss << setw(3) << i+1-NBiasParam << fixed // number
+ << " " << setw(12) << setprecision(6) << Sol(i) // solution
+ << scientific
+ << " " << setw(10) << setprecision(3) << ::sqrt(Cov(i,i)) // sigma
+ << endl;
+ oflog << oss.str();
+ if(biasout) fout << oss.str();
+ }
+
+ // compute standard error estimates
+ // TBD
+
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// elevation in degrees. Return the inverse of the obliquity factor.
+double obliquity(double elevation) throw(Exception)
+{
+try {
+ double ob;
+ //const double coef[4]={1.02056,0.466332,3.50523,-1.84119};
+ //double x2=(1-elevation/90.)*(1-elevation/90.);
+ //ob = coef[3];
+ //for(int i=2; i>=0; i--) ob = ob*x2 + coef[i];
+
+ ob = WGS84.a()*cos(elevation*DEG_TO_RAD)/(WGS84.a()+IonoHt*1000);
+ ob = ::sqrt(1.0-ob*ob);
+
+ return ob;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/ionosphere/Jamfile b/dev/apps/ionosphere/Jamfile
new file mode 100644
index 0000000..482d249
--- /dev/null
+++ b/dev/apps/ionosphere/Jamfile
@@ -0,0 +1,10 @@
+#
+# $Id$
+#
+
+SubDir TOP apps ionosphere ;
+
+GPSLinkLibraries IonoBias TECMaps : gpstk ;
+
+GPSMain IonoBias : IonoBias.cpp ;
+GPSMain TECMaps : TECMaps.cpp VTECMap.cpp ;
diff --git a/dev/apps/ionosphere/Makefile.am b/dev/apps/ionosphere/Makefile.am
new file mode 100644
index 0000000..8df2346
--- /dev/null
+++ b/dev/apps/ionosphere/Makefile.am
@@ -0,0 +1,8 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = IonoBias TECMaps
+
+IonoBias_SOURCES = IonoBias.cpp
+TECMaps_SOURCES = TECMaps.cpp VTECMap.cpp
diff --git a/dev/apps/ionosphere/README b/dev/apps/ionosphere/README
new file mode 100644
index 0000000..2552439
--- /dev/null
+++ b/dev/apps/ionosphere/README
@@ -0,0 +1,15 @@
+apps/ionosphere
+
+ Program IonoBias reads Rinex data files containing extended Rinex
+observation types EL, LA, LO and SR or SS (see preprocessing, below) from
+several sites and estimates biases in the ionospheric total electron content (TEC) measurements imposed by the hardware: either by satellite (the satellite + receiver combined bias) or by receiver alone (average over satellites to get the receiver bias). IonoBias does this by assuming a simple model of the ionosphere and simultaneously estimating biases and model parameters.
+
+ Program TECMaps reads Rinex data files containing extended Rinex observation
+types EL, AZ and SR or VR from several sites and at each epoch fits the ver-
+tical TEC data to a model of the ionosphere on a two-dimensional grid surface.
+Hardware TEC measurement biases are corrected, using input from the program
+IonoBias. The user can specify the type of grid, the type of TEC data and the
+model to be used. Output is in the form of files, one per epoch, which can be
+used to plot the 2D ionospheric TEC surface.
+
+ Run these programs at the command prompt with no options to see a summary of the input options.
diff --git a/dev/apps/ionosphere/TECMaps.cpp b/dev/apps/ionosphere/TECMaps.cpp
new file mode 100644
index 0000000..423b705
--- /dev/null
+++ b/dev/apps/ionosphere/TECMaps.cpp
@@ -0,0 +1,1479 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file TECMaps.cpp
+ * Program TECMaps reads a set of Rinex files containing observation types
+ * EL, AZ, and VR or SR and fits the ionospheric vertical TEC data to a model
+ * of the ionosphere. There are input options for the type of grid, the type of
+ * model, and the type of data (VTEC, MUF or F0F2) to be used. TD ...
+ */
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexSatID.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "CommandOptionParser.hpp"
+
+#include "BCEphemerisStore.hpp"
+#include "SP3EphemerisStore.hpp"
+#include "WGS84Geoid.hpp"
+#include "Position.hpp"
+
+#include "VTECMap.hpp"
+#include "RinexUtilities.hpp"
+
+#include <time.h>
+#include <iostream>
+#include <string>
+#include <vector>
+
+//------------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+// input data
+bool verbose,debug;
+ // log file
+string LogFile;
+ofstream oflog;
+string Title;
+ // input path
+string InputPath;
+string Title1,Title2,BaseName,BiasFile;
+double DecorrelError,ElevThresh,MinAcqTime;
+double BeginLat,DeltaLat,BeginLon,DeltaLon;
+int NumLat,NumLon;
+VTECMap::FitType typefit;
+VTECMap::GridType typegrid;
+bool doVTECmap,doMUFmap,doF0F2map;
+Station refSite;
+string KnownPos; // string holding position x,y,z or l,l,h
+bool KnownLLH; // if true, KnownPos is l,l,h
+bool GridOut; // if true, write grid to file 'basename.LL'
+bool GnuplotFormat; // if true, write grid in format for gnuplot
+ // excluded satellites
+vector<RinexSatID> ExSV;
+ // ephemeris
+string NavDir;
+vector<string> NavFiles;
+EphemerisStore *pEph; // is this used?
+ // obs types needed
+RinexObsHeader::RinexObsType ELot,AZot,VRot,SRot,TPot;
+RinexObsHeader::RinexObsType LAot,LOot; // TEMP
+ // geoid
+WGS84Geoid WGS84;
+ // Start and stop times
+DayTime BegTime,EndTime;
+ // processing
+double IonoHt;
+DayTime EarliestTime;
+VTECMap vtecmap;
+MUFMap mufmap;
+F0F2Map f0f2map;
+ // map of input sat+rx biases
+map<string,map<RinexSatID,double> > BiasMap;
+ // Data structures for all receivers
+vector<Station> Stations;
+RinexObsStream *instream; // array of streams, parallell to Stations
+
+//------------------------------------------------------------------------------------
+// prototypes
+void ConfigureAndDefaults(void);
+int GetCommandLine(int argc, char **argv) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+int Initialize(void) throw(Exception);
+int ProcessStations(void) throw(Exception);
+void ProcessObsAndComputeMap(void) throw(Exception);
+void OutputGridToFile(VTECMap& vmap, string filename) throw(Exception);
+void OutputMapToFile(VTECMap& vtmap, string filename, DayTime t, int n)
+ throw(Exception);
+void AddStation(string& filename) throw(Exception);
+int ProcessHeader(Station& S) throw(Exception);
+int ReadNextObs(Station& S) throw(Exception);
+int ProcessObs(Station& S, vector<ObsData>& obsvect) throw(Exception);
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ int iret;
+ clock_t totaltime=clock(); // timer
+ DayTime CurrEpoch;
+
+ BegTime = DayTime::BEGINNING_OF_TIME;
+ EndTime = DayTime::END_OF_TIME;
+
+ // Title description and run time
+ CurrEpoch.setLocalTime();
+ Title = "TECMaps, built on the GPSTK ToolKit, Ver 1.0 8/12/04, Run ";
+ Title += CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S\n");
+ cout << Title;
+
+ // define extended types
+ iret = RegisterARLUTExtendedTypes();
+ if(iret) goto quit;
+ iret = RegisterExtendedRinexObsType("TP","Acquisition time","seconds", 0);
+ if(iret) goto quit;
+
+ // set configuration and default values
+ ConfigureAndDefaults();
+
+ // get command line arguments
+ iret = GetCommandLine(argc, argv);
+ if(iret) goto quit;
+
+ // initialize
+ iret = Initialize();
+ if(iret) goto quit;
+
+ // make the grid
+ if(doVTECmap) {
+ vtecmap.MakeGrid(refSite);
+ if(GridOut) OutputGridToFile(vtecmap, BaseName+string(".LL"));
+ }
+ if(doMUFmap) {
+ mufmap.MakeGrid(refSite);
+ if(GridOut) OutputGridToFile(mufmap, BaseName+string(".MUF.LL"));
+ }
+ if(doF0F2map) {
+ f0f2map.MakeGrid(refSite);
+ if(GridOut) OutputGridToFile(f0f2map, BaseName+string(".F0F2.LL"));
+ }
+
+ // process the headers, filling the Stations array
+ iret = ProcessStations();
+ if(iret) goto quit;
+
+ // process the all the observation data
+ ProcessObsAndComputeMap();
+
+quit:
+ // compute run time
+ totaltime = clock()-totaltime;
+ cout << "TECMaps timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ oflog << "TECMaps timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ oflog.close();
+
+ return iret;
+}
+catch(gpstk::Exception& e) { cerr << e; }
+catch (...) { cerr << "Unknown error. Abort." << endl; }
+ return 1;
+} // end main()
+
+//------------------------------------------------------------------------------------
+// set defaults
+void ConfigureAndDefaults(void)
+{
+ Title1=string("TECMaps main title");
+ Title2=string("TECMaps sub title");
+ BaseName=string("tecmap_out");
+ DecorrelError = 3.0;
+ BiasFile = string("");
+ ElevThresh = 10.0;
+ MinAcqTime = 0.0;
+ BeginLat = 21.0;
+ DeltaLat = 0.25;
+ BeginLon = 230;
+ DeltaLon = 1.0;
+ NumLat = 40;
+ NumLon = 40;
+ typefit = VTECMap::Constant;
+ typegrid = VTECMap::UniformLatLon;
+ doVTECmap = true;
+ doMUFmap = false;
+ doF0F2map = false;
+ LogFile = string("vtm.log");
+ IonoHt = 350.0; // km
+ verbose = false;
+ debug = false;
+ KnownPos = string("");
+ GridOut = false;
+ GnuplotFormat = false;
+}
+
+//------------------------------------------------------------------------------------
+// Define, parse and evaluate command line
+int GetCommandLine(int argc, char **argv) throw(Exception)
+{
+try {
+ bool help=false;
+ int i,j;
+ RinexSatID sat;
+ sat.setfill('0');
+
+ // required options
+
+ RequiredOption dashin(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"input"," --input <file> Input Rinex obs file name(s)"
+ " \n(Reference site position also required)"
+ );
+ //dashin.setMaxCount(1);
+
+ // optional options
+
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," -f<file> file containing more options");
+
+ // reference position(s)
+ CommandOption dashllh(CommandOption::hasArgument, CommandOption::stdType,0,"RxLLH",
+ "Reference station position (one required):\n"
+ " --RxLLH <l,l,h> Reference site position in geodetic"
+ " lat, lon (E), ht (deg,deg,m)");
+ dashllh.setMaxCount(1);
+
+ CommandOption dashxyz(CommandOption::hasArgument, CommandOption::stdType,0,"RxXYZ",
+ " --RxXYZ <x,y,z> Reference site position in ECEF coordinates (m)");
+ dashxyz.setMaxCount(1);
+
+ // require one only
+ CommandOptionMutex refmutex(true);
+ refmutex.addOption(&dashllh);
+ refmutex.addOption(&dashxyz);
+
+ CommandOption dashp(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"inputdir"," --inputdir <path> Path for input file(s)");
+ dashp.setMaxCount(1);
+
+ // ephemeris
+ CommandOption dashnd(CommandOption::hasArgument, CommandOption::stdType, 0,
+ "navdir","Ephemeris input:\n --navdir <dir> Path of navigation file(s)");
+ dashnd.setMaxCount(1);
+
+ CommandOption dashn(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"nav"," --nav <file> Navigation (Rinex Nav OR SP3) file(s)");
+
+ CommandOption dashl(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"log","Output:\n --log <file> Output log file name");
+ dashl.setMaxCount(1);
+
+ // time
+ CommandOptionWithTimeArg dasheb(0,"BeginTime","%Y,%m,%d,%H,%M,%f",
+ "Time limits:\n --BeginTime <arg> Start time, arg is of the form "
+ "YYYY,MM,DD,HH,Min,Sec");
+ CommandOptionWithTimeArg dashgb(0,"BeginGPSTime","%F,%g",
+ " --BeginGPSTime <arg> Start time, arg is of the form GPSweek,GPSsow");
+
+ CommandOptionWithTimeArg dashee(0,"EndTime","%Y,%m,%d,%H,%M,%f",
+ " --EndTime <arg> End time, arg is of the form YYYY,MM,DD,HH,Min,Sec");
+ CommandOptionWithTimeArg dashge(0,"EndGPSTime","%F,%g",
+ " --EndGPSTime <arg> End time, arg is of the form GPSweek,GPSsow");
+
+ // allow ONLY one start time (use startmutex(true) if one is required)
+ CommandOptionMutex startmutex(false);
+ startmutex.addOption(&dasheb);
+ startmutex.addOption(&dashgb);
+ CommandOptionMutex stopmutex(false);
+ stopmutex.addOption(&dashee);
+ stopmutex.addOption(&dashge);
+
+ CommandOptionNoArg dashVmap(0, "MUFmap","Processing:\n"
+ " --noVTECmap Do NOT create the VTEC map.");
+
+ CommandOptionNoArg dashMUF(0, "MUFmap",
+ " --MUFmap Create MUF map as well as VTEC map.");
+
+ CommandOptionNoArg dashF0F2(0, "F0F2map",
+ " --F0F2map Create F0F2 map as well as VTEC map.");
+
+ CommandOption dashTitle1(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Title1"," --Title1 <title> Title information");
+ dashTitle1.setMaxCount(1);
+
+ CommandOption dashTitle2(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Title2", " --Title2 <title> Second title information");
+ dashTitle2.setMaxCount(1);
+
+ CommandOption dashBaseName(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BaseName", " --BaseName <name> Base name for output files (a)");
+ dashBaseName.setMaxCount(1);
+
+ CommandOption dashDecor(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"DecorrError",
+ " --DecorrError <de> Decorrelation error rate in TECU/1000km (3)");
+ dashDecor.setMaxCount(1);
+
+ CommandOption dashBiases(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Biases", " --Biases <file> "
+ "File containing estimated sat+rx biases (Prgm IonoBias)");
+ dashBiases.setMaxCount(1);
+
+ CommandOption dashElevThresh(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"ElevThresh", " --ElevThresh <ele> Minimum elevation (6 deg)");
+ dashElevThresh.setMaxCount(1);
+
+ CommandOption dashMinAcqTime(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinAcqTime", " --MinAcqTime <t> Minimum acquisition time (0 sec)");
+ dashMinAcqTime.setMaxCount(1);
+
+ CommandOptionNoArg dashFlatFit(
+ 0, "FlatFit", " --FlatFit Flat fit type (default)");
+
+ CommandOptionNoArg dashLinearFit(
+ 0, "LinearFit", " --LinearFit Linear fit type");
+
+ CommandOption dashIonoHt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"IonoHeight", " --IonoHeight <n> Ionosphere height (km)");
+ dashIonoHt.setMaxCount(1);
+
+ CommandOptionNoArg dashUniSpace(0, "UniformSpacing",
+ "Grid:\n --UniformSpacing Grid uniform in space (XYZ) (default)");
+
+ CommandOptionNoArg dashUniGrid(0, "UniformGrid",
+ " --UniformGrid Grid uniform in Lat and Lon");
+
+ CommandOptionNoArg dashOutGrid(
+ 0, "OutputGrid", " --OutputGrid Output the grid to file <basename.LL>");
+
+ CommandOptionNoArg dashGnuOut(
+ 0, "GnuplotOutput", " --GnuplotOutput Write the grid file for gnuplot"
+ " (default: for Matlab)");
+
+ CommandOption dashNumLat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"NumLat", " --NumLat <n> Number of latitude grid points (40)");
+ dashNumLat.setMaxCount(1);
+
+ CommandOption dashNumLon(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"NumLon", " --NumLon <n> Number of longitude grid points (40)");
+ dashNumLon.setMaxCount(1);
+
+ CommandOption dashBeginLat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BeginLat", " --BeginLat <lat> Beginning latitude (21 deg)");
+ dashBeginLat.setMaxCount(1);
+
+ CommandOption dashBeginLon(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BeginLon", " --BeginLon <lon> Beginning longitude (230 deg E)");
+ dashBeginLon.setMaxCount(1);
+
+ CommandOption dashDeltaLat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"DeltaLat", " --DeltaLat <del> Grid spacing in latitude (0.25 deg)");
+ dashDeltaLat.setMaxCount(1);
+
+ CommandOption dashDeltaLon(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"DeltaLon", " --DeltaLon <del> Grid spacing in longitude (1.0 deg)");
+ dashDeltaLon.setMaxCount(1);
+
+ CommandOption dashXsat(CommandOption::hasArgument, CommandOption::stdType,
+ '0', "XSat", "Other options:\n --XSat <sat> Exclude this satellite "
+ "(<sat> may be <system> only)");
+
+ // ... other options
+ CommandOptionNoArg dashv('v', "verbose",
+ "Help:\n [-v|--verbose] print extended output info.");
+
+ CommandOptionNoArg dashd('d', "debug",
+ " [-d|--debug] print extended output info.");
+
+ CommandOptionNoArg dashh('h', "help",
+ " [-h|--help] print syntax and summary of input, then quit.");
+
+ // ... rest of the command line
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par(
+ " Prgm TECMaps will open and read several preprocessed Rinex obs files\n"
+ " (containing obs types EL,AZ,VR|SR) and use the data to ...\n"
+ " Input is on the command line, or of the same format in a file (-f<file>).\n");
+
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0) Args.push_back(string("-h"));
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cerr << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cerr << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+
+ //if(debug) {
+ //cout << "List passed to parse\n";
+ //for(i=0; i<argc; i++) cout << i << " " << CArgs[i] << endl;
+ //}
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ // help first
+ if(dashh.getCount() > 0) {
+ help = true;
+ }
+
+ // get values found on command line
+ vector<string> values;
+
+ // log file next
+ if(dashl.getCount()) {
+ values = dashl.getValue();
+ if(help) cout << "Input name of output log file: " << values[0] << endl;
+ LogFile = values[0];
+ }
+ oflog.open(LogFile.c_str(),ios_base::out);
+ if(!oflog) {
+ cerr << "Failed to open log file " << LogFile << endl;
+ return -1;
+ }
+ cout << "TECMaps output directed to log file " << LogFile << endl;
+ oflog << Title;
+
+ // print syntax
+ if(help) {
+ Par.displayUsage(oflog,false); oflog << endl;
+ Par.displayUsage(cout,false); cout << endl;
+ }
+
+ // errors on command line
+ if(Par.hasErrors())
+ {
+ cerr << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cerr);
+ cerr << "...end of Errors\n\n";
+ oflog << "\nErrors found in command line input:\n";
+ Par.dumpErrors(oflog);
+ oflog << "...end of Errors\n\n";
+ help = true;
+ }
+
+ // f never appears because we intercept it above
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+
+ // input path; do path before input file names
+ if(dashp.getCount()) {
+ values = dashp.getValue();
+ if(help) cout << "Input path name: " << values[0] << endl;
+ InputPath = values[0];
+ }
+ else InputPath = string("");
+
+ // input file names -- create vector of Station here
+ if(dashin.getCount()) {
+ values = dashin.getValue();
+ if(help) cout << "Input Rinex obs file names are:\n";
+ string::size_type pos;
+ string fname;
+ for(i=0; i<values.size(); i++) {
+ fname = values[i];
+ // expand filenames of the form @name or name@
+ // into the *contents* (one name per line) of file 'name'.
+ pos = fname.find('@');
+ if(pos == string::npos || (pos != 0 && pos != fname.length()-1)) {
+ // value is a Rinex file name
+ if(InputPath.size() > 0) { fname = InputPath + "/" + fname; }
+ AddStation(fname);
+ if(help) cout << " " << fname << endl;
+ }
+ else { // value is a file containing Rinex file names
+ fname.erase(pos,1);
+ if(InputPath.size() > 0) { fname = InputPath + "/" + fname; }
+ if(help) cout << " " << "(Open and read file names from: "
+ << fname << ")" << endl;
+ ifstream infile(fname.c_str());
+ if(!infile) {
+ oflog << "Error: could not open file " << fname << endl;
+ }
+ else {
+ while(infile >> fname) {
+ if(fname[0] == '#') { // skip to end of line
+ char c;
+ while(infile.get(c)) { if(c=='\n') break; }
+ }
+ else {
+ AddStation(fname);
+ if(debug) oflog << " " << fname << endl;
+ }
+ } // end loop over lines in the file
+ infile.close();
+ } // end opened file
+ } // end if value is a file containing file names
+ } // end loop over values on command line
+ } // end dashin
+
+ // reference position
+ if(dashllh.getCount()) {
+ values = dashllh.getValue();
+ KnownPos = values[0];
+ KnownLLH = true;
+ if(help) cout << "Get reference position from explicit input (LLH):\n "
+ << KnownPos << endl;
+ }
+ if(dashxyz.getCount()) {
+ values = dashxyz.getValue();
+ KnownPos = values[0];
+ KnownLLH = false;
+ if(help) cout << "Get reference position from explicit input (XYZ):\n "
+ << KnownPos << endl;
+ }
+
+ if(KnownPos != string("")) {
+ ECEF e;
+ string::size_type pos;
+ values.clear();
+ while(KnownPos.size() > 0) {
+ pos = KnownPos.find(",");
+ if(pos==string::npos) pos=KnownPos.size();
+ if(pos==0) values.push_back(" ");
+ else values.push_back(KnownPos.substr(0,pos));
+ if(pos >= KnownPos.size()) break;
+ KnownPos.erase(0,pos+1);
+ };
+ refSite.filename = string("reference");
+ if(values.size() > 3) refSite.filename=values[3];
+ if(KnownLLH) {
+ refSite.llr.setGeodetic(asDouble(values[0]),
+ asDouble(values[1]),
+ asDouble(values[2])); //WGS84 is default
+ refSite.xyz = refSite.llr;
+ try {
+ refSite.llr.transformTo(Position::Geocentric);
+ refSite.xyz.transformTo(Position::Cartesian);
+ }
+ catch(Exception& e) {
+ cerr << "ERROR: Reference site input (geodetic LLH) is invalid\n";
+ oflog << "ERROR: Reference site input (geodetic LLH) is invalid\n";
+ return -2;
+ }
+ }
+ else {
+ refSite.xyz.setECEF(asDouble(values[0]),
+ asDouble(values[1]),
+ asDouble(values[2]));
+ refSite.llr = refSite.xyz;
+ refSite.llr.transformTo(Position::Geocentric);
+ }
+ }
+
+ // ephemeris input
+ if(dashnd.getCount()) {
+ values = dashnd.getValue();
+ NavDir = values[0];
+ if(help) cout << "Input Nav Directory: " << NavDir << endl;
+ }
+ if(dashn.getCount()) {
+ values = dashn.getValue();
+ NavFiles = values;
+ if(help) {
+ cout << "Input Nav files :";
+ for(i=0; i<NavFiles.size(); i++) cout << " " << NavFiles[i];
+ cout << endl;
+ }
+ }
+
+ if(dasheb.getCount()) {
+ values = dasheb.getValue();
+ BegTime.setToString(values[0], "%Y,%m,%d,%H,%M,%S");
+ if(help) cout << "Input BeginTime " << BegTime << endl;
+ }
+ if(dashee.getCount()) {
+ values = dashee.getValue();
+ EndTime.setToString(values[0], "%Y,%m,%d,%H,%M,%S");
+ if(help) cout << "Input EndTime " << EndTime << endl;
+ }
+ if(dashgb.getCount()) {
+ values = dashgb.getValue();
+ BegTime.setToString(values[0], "%F,%g");
+ if(help) cout << "Input BeginGPSTime " << BegTime << endl;
+ }
+ if(dashge.getCount()) {
+ values = dashge.getValue();
+ EndTime.setToString(values[0], "%F,%g");
+ if(help) cout << "Input EndGPSTime " << EndTime << endl;
+ }
+ // processing
+ if(dashVmap.getCount()) {
+ doVTECmap = false;
+ if(help) cout << "Do NOT create VTEC map" << endl;
+ }
+ if(dashMUF.getCount()) {
+ doMUFmap = true;
+ if(help) cout << "Create MUF map" << endl;
+ }
+ if(dashF0F2.getCount()) {
+ doF0F2map = true;
+ if(help) cout << "Create F0F2 map" << endl;
+ }
+ if(dashTitle1.getCount()) {
+ values = dashTitle1.getValue();
+ Title1 = values[0];
+ if(help) cout << "Primary Title is " << Title1 << endl;
+ }
+ if(dashTitle2.getCount()) {
+ values = dashTitle2.getValue();
+ Title2 = values[0];
+ if(help) cout << "Secondary Title is " << Title2 << endl;
+ }
+ if(dashBaseName.getCount()) {
+ values = dashBaseName.getValue();
+ BaseName = values[0];
+ if(help) cout << "Base name for output files is " << BaseName << endl;
+ }
+ if(dashDecor.getCount()) {
+ values = dashDecor.getValue();
+ DecorrelError = asDouble(values[0]);
+ if(help) cout << "Decorrelation error rate (TECU/1000km) is "
+ << DecorrelError << endl;
+ }
+ if(dashNumLat.getCount()) {
+ values = dashNumLat.getValue();
+ NumLat = asInt(values[0]);
+ if(help) cout << "Number of latitude grid points is " << NumLat << endl;
+ }
+ if(dashNumLon.getCount()) {
+ values = dashNumLon.getValue();
+ NumLon = asInt(values[0]);
+ if(help) cout << "Number of longitude grid points is " << NumLon << endl;
+ }
+ if(dashBiases.getCount()) {
+ values = dashBiases.getValue();
+ BiasFile = values[0];
+ if(help) cout << "Input sat+rx biases from file " << BiasFile << endl;
+ }
+ if(dashElevThresh.getCount()) {
+ values = dashElevThresh.getValue();
+ ElevThresh = asDouble(values[0]);
+ if(help) cout << "Minimum elevation (deg) is " << ElevThresh << endl;
+ }
+ if(dashMinAcqTime.getCount()) {
+ values = dashMinAcqTime.getValue();
+ MinAcqTime = asDouble(values[0]);
+ if(help) cout << "Minimum acquisition time (sec) is " << MinAcqTime << endl;
+ }
+ if(dashBeginLat.getCount()) {
+ values = dashBeginLat.getValue();
+ BeginLat = asDouble(values[0]);
+ if(help) cout << "Beginning latitude (deg) is " << BeginLat << endl;
+ }
+ if(dashBeginLon.getCount()) {
+ values = dashBeginLon.getValue();
+ BeginLon = asDouble(values[0]);
+ if(help) cout << "Beginning longitude (deg E) is " << BeginLon << endl;
+ }
+ if(dashDeltaLat.getCount()) {
+ values = dashDeltaLat.getValue();
+ DeltaLat = asDouble(values[0]);
+ if(help) cout << "Grid step in latitude (deg) is " << DeltaLat << endl;
+ }
+ if(dashDeltaLon.getCount()) {
+ values = dashDeltaLon.getValue();
+ DeltaLon = asDouble(values[0]);
+ if(help) cout << "Grid step in longitude (deg) is " << DeltaLon << endl;
+ }
+ if(dashUniSpace.getCount()) {
+ typegrid = VTECMap::UniformSpace;
+ if(help) cout << "Grid type is set to 'uniform spacing': " << typegrid << endl;
+ }
+ if(dashUniGrid.getCount()) {
+ typegrid = VTECMap::UniformLatLon;
+ if(help) cout << "Grid type is set to uniform: " << typegrid << endl;
+ }
+ if(dashOutGrid.getCount()) {
+ GridOut = true;
+ if(help) cout << "Output grid to file " << BaseName << ".LL" << endl;
+ }
+ if(dashGnuOut.getCount()) {
+ GnuplotFormat = true;
+ if(help) cout << "Output grid in gnuplot format" << endl;
+ }
+ if(dashFlatFit.getCount()) {
+ typefit = VTECMap::Constant;
+ if(help) cout << "Set fit type to FLAT" << endl;
+ }
+ if(dashLinearFit.getCount()) {
+ typefit = VTECMap::Linear;
+ if(help) cout << "Set fit type to LINEAR" << endl;
+ }
+ if(dashIonoHt.getCount()) {
+ values = dashIonoHt.getValue();
+ IonoHt = asDouble(values[0]);
+ if(help) cout << "Ionosphere height = " << IonoHt << " km" << endl;
+ }
+ if(dashXsat.getCount()) {
+ values = dashXsat.getValue();
+ for(i=0; i<values.size(); i++) {
+ sat.fromString(values[i]);
+ if(help) cout << "Input: exclude satellite " << sat << endl;
+ ExSV.push_back(sat);
+ }
+ }
+
+ if(dashh.getCount())
+ oflog << "Option h appears " << dashh.getCount() << " times\n";
+ if(dashv.getCount()) {
+ verbose = true;
+ if(help) cout << "Option v appears " << dashv.getCount() << " times\n";
+ }
+ if(dashd.getCount()) {
+ debug = true;
+ if(help) cout << "Option d appears " << dashd.getCount() << " times\n";
+ }
+
+ if(Rest.getCount() && help) {
+ cout << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) cout << values[i] << endl;
+ }
+ if(verbose && help) {
+ cout << "\nTokens on command line (" << Args.size() << ") are:" << endl;
+ for(j=0; j<Args.size(); j++) cout << Args[j] << endl;
+ cout << endl;
+ }
+ if(help) cout << "Configuration summarized in log file\n";
+
+ // print configuration
+ if(verbose || help || debug) {
+ oflog << "\nInput configuration for TECMaps:\n";
+ if(!InputPath.empty()) oflog << " Path for input files is "
+ << InputPath << endl;
+ oflog << " Input Rinex obs file names are:\n";
+ for(i=0; i<Stations.size(); i++)
+ oflog << " " << Stations[i].filename << endl;
+ if(!NavDir.empty()) oflog << " Path for input nav files is "
+ << NavDir << endl;
+ if(NavFiles.size() > 0) {
+ oflog << " Input Rinex nav file names are:\n";
+ for(i=0; i<NavFiles.size(); i++)
+ oflog << " " << NavFiles[i] << endl;
+ }
+ if(BegTime > DayTime::BEGINNING_OF_TIME) oflog << " Begin time is "
+ << BegTime.printf("%Y/%m/%d_%H:%M:%6.3f=%F/%10.3g") << endl;
+ if(EndTime < DayTime::END_OF_TIME) oflog << " End time is "
+ << EndTime.printf("%Y/%m/%d_%H:%M:%6.3f=%F/%10.3g") << endl;
+ oflog << " Processing:\n";
+ oflog << " Primary Title is " << Title1 << endl;
+ oflog << " Secondary Title is " << Title2 << endl;
+ oflog << " Reference " << refSite << endl;
+ oflog << " Do " << (doVTECmap ? "":"not ") << "create VTEC map\n";
+ oflog << " Do " << (doMUFmap ? "":"not ") << "create MUF map\n";
+ oflog << " Do " << (doF0F2map ? "":"not ") << "create F0F2 map\n";
+ oflog << " Grid type is "
+ << (typegrid == VTECMap::UniformLatLon ? "Uniform " : "Uniform Space ")
+ << typegrid << endl;
+ oflog << " Beginning latitude (deg) is " << BeginLat << endl;
+ oflog << " Beginning longitude (deg E) is " << BeginLon << endl;
+ oflog << " Number of latitude grid points is " << NumLat << endl;
+ oflog << " Number of latitude grid points is " << NumLat << endl;
+ oflog << " Grid step in latitude (deg) is " << DeltaLat << endl;
+ oflog << " Grid step in longitude (deg) is " << DeltaLon << endl;
+ oflog << " Minimum elevation (deg) is " << ElevThresh << endl;
+ oflog << " Minimum acquisition time (sec) is " << MinAcqTime << endl;
+ if(BiasFile.length() > 0)
+ oflog << " Receiver biases input from file " << BiasFile << endl;
+ else
+ oflog << " Do not input sat+rx biases" << endl;
+ oflog << " Decorrelation error rate (TECU/1000km) is " << DecorrelError
+ << endl;
+ oflog << " Ionosphere height = " << IonoHt << " km" << endl;
+ oflog << " Base name for output files is " << BaseName << endl;
+ cout << (GridOut ? "O":"Do NOT o") << "utput grid in file named " <<
+ BaseName << ".LL" << endl;
+ if(GridOut) cout << "Output grid in " << (GnuplotFormat ? "gnuplot" : "Matlab")
+ << " format" << endl;
+ if(ExSV.size() > 0) {
+ oflog << " Exclude these satellites:";
+ for(i=0; i<ExSV.size(); i++) oflog << " " << ExSV[i];
+ oflog << endl;
+ }
+ if(help) oflog << " Help (-h) is set\n";
+ if(debug) oflog << " Debug (-d) is set\n";
+ oflog << "End of input configuration for TECMaps" << endl << endl;
+ }
+
+ if(help) return 1;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Pull out --debug --verbose options.
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ if(debug) cout << "Found a file of options: " << filename << endl;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer.clear();
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if((arg[0]=='-' && arg[1]=='d') || string(arg)==string("--debug"))
+ debug = true;
+ else if((arg[0]=='-' && arg[1]=='v') || string(arg)==string("--verbose"))
+ verbose = true;
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int Initialize(void) throw(Exception)
+{
+try {
+ static SP3EphemerisStore SP3EphList;
+ static BCEphemerisStore BCEphList;
+
+ // open nav files and read EphemerisStore
+ if(!NavDir.empty())
+ for(int i=0; i<NavFiles.size(); i++)
+ NavFiles[i] = NavDir + "/" + NavFiles[i];
+ FillEphemerisStore(NavFiles, SP3EphList, BCEphList);
+ if(SP3EphList.size()) {
+ if(verbose) SP3EphList.dump(0,oflog);
+ }
+ else if(verbose) oflog << "SP3 Ephemeris list is empty\n";
+
+ if(BCEphList.size()) {
+ BCEphList.SearchNear();
+ if(verbose) BCEphList.dump(0,oflog);
+ }
+ else if(verbose) oflog << "BC Ephemeris list is empty\n";
+
+ if(SP3EphList.size()) pEph = &SP3EphList;
+ else if(BCEphList.size()) pEph = &BCEphList;
+ else {
+ cerr << "TECMaps abort -- no ephemeris\n";
+ oflog << "TECMaps abort -- no ephemeris\n";
+ return -1;
+ }
+
+ // read the sat+rx biases file and build the map
+ if(BiasFile.length() > 0) {
+ ifstream inf(BiasFile.c_str());
+ if(!inf) {
+ cerr << "Error: could not open biases file " << BiasFile << endl;
+ oflog << "Error: could not open biases file " << BiasFile << endl;
+ return -1;
+ }
+ else {
+ int nbiases,n=0;
+ double bias;
+ RinexSatID sat;
+ string line,station;
+ vector<string> words;
+ while(!inf.eof() && inf.good()) {
+ { // parse line into words
+ istringstream iss(line);
+ string wd;
+ words.clear();
+ while(iss >> wd) { words.push_back(wd); }
+ }
+ while(1) {
+ if(words.size() != 5) break;
+ if(debug) {
+ oflog << "Biases file:";
+ for(int i=0; i<words.size(); i++) oflog << " " << words[i];
+ oflog << endl;
+ }
+ if(words[0] == string("IonoBias,")) break;
+ if(words[1] == string("Number")) {
+ nbiases = asInt(words[0]);
+ break;
+ }
+ station = words[1];
+ sat.fromString(words[2]);
+ bias = asDouble(words[3]);
+ BiasMap[station][sat] = bias;
+ n++;
+ break;
+ }
+ getline(inf,line);
+ }
+ inf.close();
+ if(verbose) {
+ oflog << "Read sat+rx biases file " << BiasFile << ":" << endl;
+ oflog << " Expected " << nbiases << " biases, read " << n << "." << endl;
+ oflog << " Here is the biases map:" << endl;
+ map<string,map<RinexSatID,double> >::const_iterator it;
+ map<RinexSatID,double>::const_iterator jt;
+ for(it=BiasMap.begin(); it!=BiasMap.end(); it++) {
+ for(jt=it->second.begin(); jt!=it->second.end(); jt++) {
+ oflog << " " << it->first
+ << " " << jt->first
+ << " " << setw(12) << setprecision(6) << jt->second << endl;
+ }
+ }
+ }
+ }
+ }
+
+ // create the obs types for later use
+ ELot = RinexObsHeader::convertObsType("EL");
+ AZot = RinexObsHeader::convertObsType("AZ");
+ LAot = RinexObsHeader::convertObsType("LA"); // TEMP
+ LOot = RinexObsHeader::convertObsType("LO"); // TEMP
+ SRot = RinexObsHeader::convertObsType("SR");
+ VRot = RinexObsHeader::convertObsType("VR");
+ TPot = RinexObsHeader::convertObsType("TP");
+
+ // initialize the map(s)
+ // set parameters
+ vtecmap.Decorrelation = DecorrelError;
+ vtecmap.MinElevation = ElevThresh;
+ vtecmap.IonoHeight = IonoHt*1000;
+ vtecmap.gridtype = typegrid;
+ vtecmap.fittype = typefit;
+ vtecmap.BeginLat = BeginLat;
+ vtecmap.DeltaLat = DeltaLat;
+ vtecmap.NumLat = NumLat;
+ vtecmap.BeginLon = BeginLon;
+ vtecmap.DeltaLon = DeltaLon;
+ vtecmap.NumLon = NumLon;
+ if(doMUFmap) mufmap.CopyInputData(vtecmap);
+ if(doF0F2map) f0f2map.CopyInputData(vtecmap);
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok,
+// -1 could not allocate array of RinexObsStream
+// -2 could not open a file,
+// -3 FFStream exception,
+// -4 gpstk exception,
+int ProcessStations(void) throw(Exception)
+{
+try {
+ int iret,nfile;
+
+ if(verbose) oflog << "\nProcess " << Stations.size()
+ << " input files / Stations:\n";
+
+ // create vector of RinexObsStream for use by the files
+ instream = new RinexObsStream[Stations.size()];
+ if(!instream) {
+ oflog << " ERROR: Array of " << Stations.size()
+ << " RinexObsStream's could not be allocated\n";
+ return -1;
+ }
+
+ // loop over input file names
+ // open and read header, define entry in Stations array
+ for(nfile=0; nfile<Stations.size(); nfile++) {
+ instream[nfile].open(Stations[nfile].filename.c_str(),ios_base::in);
+ if(!instream[nfile]) {
+ oflog << " Rinex file " << Stations[nfile].filename
+ << " could not be opened -- abort.\n";
+ Stations[nfile].nfile = -1;
+ Stations[nfile].nread = -1;
+ Stations[nfile].getNext = false;
+ return -2;
+ }
+ oflog << "\nInput file #" << nfile+1 << ": "
+ << Stations[nfile].filename << endl;
+
+ instream[nfile].exceptions(ios::failbit);
+ Stations[nfile].nfile = nfile;
+ Stations[nfile].getNext = true;
+
+ iret = ProcessHeader(Stations[nfile]);
+ if(iret != 0) return iret;
+
+ } // end loop over file names -> stations
+ oflog << "\nEnd of loop over stations to read headers.\n\n";
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void ProcessObsAndComputeMap(void) throw(Exception)
+{
+try {
+ int iret,nfile,ngood,nepochs=0;
+ vector<ObsData> AllObs; // ObsData vector, passed into ProcessObs and Compute
+
+ // loop over all epochs in all files
+ do {
+ // read the data for the next (earliest in future) observation epoch
+ EarliestTime = DayTime(DayTime::END_OF_TIME);
+ for(nfile=0; nfile<Stations.size(); nfile++) {
+ iret = ReadNextObs(Stations[nfile]);
+ if(iret < 0) { // set file 'inactive'
+ Stations[nfile].nread = -1;
+ }
+ else { // iret is 0 or 1 - file is active
+ if(Stations[nfile].robs.time < EarliestTime)
+ EarliestTime = Stations[nfile].robs.time;
+ }
+ }
+
+ // if no more data available, EarliestTime will never get set
+ if(EarliestTime == DayTime(DayTime::END_OF_TIME)) break;
+
+ // time limits
+ if(EarliestTime < BegTime) {
+ oflog << "Before begin time : "
+ << EarliestTime.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g\n");
+ continue;
+ }
+ if(EarliestTime > EndTime) {
+ oflog << "After end time (quit) : "
+ << EarliestTime.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g\n");
+ break;
+ }
+
+ // process at EarliestTime
+ oflog << "Process at time = "
+ << EarliestTime.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g\n");
+ AllObs.clear();
+ for(ngood=0,nfile=0; nfile<Stations.size(); nfile++) {
+ // if this data time == EarliestTime, process and set flag to read again
+ if(ABS(Stations[nfile].robs.time - EarliestTime) < 1.) {
+ iret = ProcessObs(Stations[nfile],AllObs);
+ if(iret > 0) ngood += iret;
+ Stations[nfile].getNext = true;
+ }
+ else Stations[nfile].getNext = false;
+ }
+
+ // compute map(s) and output
+ nepochs++;
+ if(ngood > 0) {
+ oflog << ngood << " data at epoch "
+ << EarliestTime.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g")
+ << ", file #" << nepochs << "." << endl;
+ // compute the map(s)
+ if(doVTECmap) {
+ vtecmap.ComputeMap(EarliestTime,AllObs);
+ OutputMapToFile(vtecmap,BaseName,EarliestTime,nepochs);
+ }
+ if(doMUFmap) {
+ mufmap.ComputeMap(EarliestTime,AllObs);
+ OutputMapToFile(mufmap,BaseName+string(".MUF"),EarliestTime,nepochs);
+ }
+ if(doF0F2map) {
+ f0f2map.ComputeMap(EarliestTime,AllObs);
+ OutputMapToFile(f0f2map,BaseName+string(".F0F2"),EarliestTime,nepochs);
+ }
+ }
+ else oflog << "0 data at epoch "
+ << EarliestTime.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g")
+ << ", file #" << nepochs << "." << endl;
+
+ } while(1);
+
+ // finished...close all files
+ for(nfile=0; nfile<Stations.size(); nfile++) instream[nfile].close();
+
+ if(verbose)
+ oflog << endl << "Processed " << Stations.size() << " stations\n";
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// output the grid to a file
+void OutputGridToFile(VTECMap& vmap, string filename) throw(Exception)
+{
+try {
+ ofstream ofs(filename.c_str());
+ if(!ofs) {
+ cerr << "Failed to open grid output file " << filename << endl;
+ oflog << "Failed to open grid output file " << filename << endl;
+ }
+ else {
+ vmap.OutputGrid(ofs);
+ ofs.close();
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// output map
+void OutputMapToFile(VTECMap& vtmap, string filename, DayTime t, int n) throw(Exception)
+{
+try {
+ // make this a function, pass it the name MUF etc, map and time
+ ostringstream oss;
+ oss << filename << "." << setw(4) << setfill('0') << n;
+ string fn = oss.str();
+ ofstream ofs(fn.c_str());
+ if(!ofs) {
+ cerr << "Failed to open map output file " << fn << " at epoch "
+ << t.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g") << endl;
+ oflog << "Failed to open map output file " << fn << " at epoch "
+ << t.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g") << endl;
+ }
+ else {
+ oflog << "Output map at epoch "
+ << t.printf("%Y/%m/%d %H:%M:%6.3f=%F/%10.3g")
+ << " to file " << fn << endl;
+ vtmap.OutputMap(ofs,GnuplotFormat);
+ ofs.close();
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void AddStation(string& name) throw(Exception)
+{
+try {
+ Station s;
+ s.filename = name;
+ for(int i=1; i<33; i++) {
+ RinexSatID p(i,SatID::systemGPS);
+ s.InitTime[p] = DayTime::BEGINNING_OF_TIME;
+ }
+ Stations.push_back(s);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok,
+// -3 FFStream exception,
+// -4 gpstk exception,
+int ProcessHeader(Station& S) throw(Exception)
+{
+try {
+ // input header
+ try {
+ instream[S.nfile] >> S.header;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading header for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught an FFStreamError while reading header for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ return -3;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught a gpstk exception while reading header for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught a gpstk exception while reading header for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ return -4;
+ }
+ S.nread = 0;
+
+ // convert to geocentric LLH
+ S.xyz.setECEF(S.header.antennaPosition);
+ S.llr = S.xyz;
+ S.llr.transformTo(Position::Geocentric);
+
+ // save station info
+ //StationName = head.markerName;
+ //TotalSpan = head.lastObs.MJD()-head.firstObs.MJD();
+
+ // dump header information
+ if(verbose) {
+ int i;
+ oflog << "File name: " << S.filename << " ";
+ oflog << "Marker name: " << S.header.markerName << "\n";
+ oflog << "Antenna position: " << setprecision(3) << S.header.antennaPosition
+ << endl;
+ oflog << "ECEF Position: " << S.xyz << endl;
+ oflog << "Geocentric Position: " << S.llr << endl;
+ oflog << "Observation types (" << S.header.obsTypeList.size() << ") :";
+ for(i=0; i<S.header.obsTypeList.size(); i++)
+ oflog << " " << RinexObsHeader::convertObsType(S.header.obsTypeList[i]);
+ oflog << endl;
+ oflog << "Time of first obs "
+ << S.header.firstObs.printf("%04Y/%02m/%02d %02H:%02M:%010.7f")
+ << " " << (S.header.firstSystem.system==RinexSatID::systemGlonass?"GLO":
+ (S.header.firstSystem.system==RinexSatID::systemGalileo?"GAL":"GPS"))
+ << endl;
+ oflog << "Time of last obs "
+ << S.header.lastObs.printf("%04Y/%02m/%02d %02H:%02M:%010.7f")
+ << " " << (S.header.lastSystem.system==RinexSatID::systemGlonass?"GLO":
+ (S.header.lastSystem.system==RinexSatID::systemGalileo?"GAL":"GPS"))
+ << endl;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// return
+// 0 ok
+// 1 ok but no data read
+// -1 EOF or non-existant
+// -3 FFStream exception,
+// -4 gpstk exception,
+// -6 read error
+int ReadNextObs(Station& S) throw(Exception)
+{
+try {
+ if(S.nread == -1) return -1;
+ if(!S.getNext) return 1;
+
+ do {
+ try {
+ instream[S.nfile] >> S.robs;
+ }
+ catch(gpstk::FFStreamError& e) {
+ cerr << "Caught an FFStreamError while reading obs for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught an FFStreamError while reading obs for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ return -3;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught a gpstk exception while reading obs for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ oflog << "Caught a gpstk exception while reading obs for file "
+ << S.filename << ":\n" << e.getText(0) << endl;
+ return -4;
+ }
+ if(instream[S.nfile].eof()) {
+ oflog << "End of file: " << S.filename << endl;
+ return -1;
+ }
+ if(!instream[S.nfile].good()) {
+ oflog << "Read error on file: " << S.filename << endl;
+ return -6;
+ }
+
+ } while(S.robs.epochFlag != 0 && S.robs.epochFlag != 1);
+
+ S.nread++;
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// return 0 if data is good and was accepted
+int ProcessObs(Station& S, vector<ObsData>& obsvec) throw(Exception)
+{
+try {
+ int i,k,n;
+ double EL,AZ,LA,LO,SR,VR,TP,bias,obliq;
+ double la,lo; // TEMP
+ RinexSatID sat;
+ RinexObsData::RinexSatMap::const_iterator it;
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+ Position IPP;
+
+ //S.robs.dump(oflog);
+ // loop over sat=it->first, ObsTypeMap=it->second
+ for(n=0,it=S.robs.obs.begin(); it!=S.robs.obs.end(); ++it) {
+ ObsData od;
+ sat = it->first;
+ if(sat.system != SatID::systemGPS) continue; // ignore non-GPS satellites
+ k = -1;
+ for(i=0; i<ExSV.size(); i++) { // Is this satellite excluded ?
+ if(ExSV[i] == sat || // sat is excluded
+ (ExSV[i].id==-1 && ExSV[i].system==sat.system) ) {// system excluded
+ k=i;
+ break;
+ }
+ }
+ if(k != -1) continue;
+
+ // save first time
+ if(S.InitTime[sat] == DayTime::BEGINNING_OF_TIME) {
+ S.InitTime[sat] = S.robs.time;
+ }
+
+ // process this sat
+ if((jt=it->second.find(ELot)) != it->second.end())
+ EL = jt->second.data;
+ else continue;
+ if(EL < vtecmap.MinElevation) continue; // here or inside class?
+
+ if((jt=it->second.find(AZot)) != it->second.end())
+ AZ = jt->second.data;
+ else continue;
+
+ //TEMP
+ if((jt=it->second.find(LAot)) != it->second.end())
+ la = jt->second.data;
+ else lo = -999.0;
+
+ //TEMP
+ if((jt=it->second.find(LOot)) != it->second.end())
+ lo = jt->second.data;
+ else lo = -999.0;
+
+ if((jt=it->second.find(SRot)) != it->second.end())
+ SR = jt->second.data;
+ else SR = -1.0;
+
+ if((jt=it->second.find(VRot)) != it->second.end())
+ VR = jt->second.data;
+ else VR = -1.0;
+
+ if(SR == -1.0 && VR == -1.0) continue;
+
+ if((jt=it->second.find(TPot)) != it->second.end())
+ TP = jt->second.data;
+ else TP = -1.0;
+
+ // compute the pierce point
+ if(la == -999.0 || lo == -999.0) {
+ IPP = S.llr.getIonosphericPiercePoint(EL,AZ,IonoHt*1000);
+ LA = IPP.geocentricLatitude();
+ LO = IPP.longitude();
+ }
+ else { LA=la; LO=lo; }
+
+ od.elevation = EL;
+ od.azimuth = AZ;
+ od.latitude = LA;
+ od.longitude = LO;
+
+ if(TP != -1.0) od.AcqTime = TP;
+ else od.AcqTime = S.robs.time - S.InitTime[sat];
+
+ if(od.AcqTime < MinAcqTime) continue;
+
+ // get the bias
+ map<string,map<RinexSatID,double> >::const_iterator jt;
+ jt = BiasMap.find(S.header.markerName);
+ // skip sat+rx for which there are no biases
+ if(jt == BiasMap.end()) continue;
+ map<RinexSatID,double>::const_iterator kt;
+ kt = jt->second.find(sat);
+ if(kt == jt->second.end()) continue;
+ bias = kt->second;
+ if(debug) oflog << "Apply bias for station " << S.header.markerName
+ << " and sat " << sat << " = " << fixed << setw(12) << setprecision(6)
+ << bias << endl;
+
+ // compute the obliquity
+ obliq = WGS84.a()*cos(EL*DEG_TO_RAD)/(WGS84.a()+IonoHt*1000);
+ obliq = SQRT(1.0-obliq*obliq);
+
+ if(VR != -1.0) {
+ od.VTEC = VR - bias*obliq;
+ }
+ else {
+ od.VTEC = (SR - bias)*obliq;
+ }
+
+ // compute the error and save results
+ od.VTECerror = vtecmap.VTECError(od.AcqTime, EL, od.VTEC);
+ n++;
+ obsvec.push_back(od);
+
+ // write out
+ /* */
+ oflog << setw(4) << S.robs.time.GPSfullweek();
+ oflog << " " << setw(8) << setprecision(1) << S.robs.time.GPSsow();
+ oflog << " " << setw(2) << n;
+ oflog << " " << setw(9) << setprecision(5) << LA; // latitude
+ oflog << " " << setw(10) << setprecision(5)<< LO; // longitude
+ oflog << " " << setw(4) << setprecision(2) << obliq; // obliquity
+ oflog << " " << setw(8) << setprecision(3) << od.VTEC; // vertical TEC
+ oflog << " " << setw(8) << setprecision(3) << od.AcqTime; // acquisition time
+ oflog << " " << setw(2) << sat.id; // PRN
+ oflog << " " << setw(3) << S.nfile+1; // file number
+ oflog << endl;
+ /* */
+
+ } // end for loop over sats
+
+ if(n>0) return n;
+ else return -1;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/ionosphere/VTECMap.cpp b/dev/apps/ionosphere/VTECMap.cpp
new file mode 100644
index 0000000..92f3a19
--- /dev/null
+++ b/dev/apps/ionosphere/VTECMap.cpp
@@ -0,0 +1,479 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file VTECMap.cpp
+ * Program VTECMap will TD...
+ * a simple ionospheric model using least squares and slant TEC values
+ * from multiple stations.
+ */
+
+#include "Exception.hpp"
+#include "Position.hpp"
+#include "geometry.hpp" // for DEG_TO_RAD and RAD_TO_DEG
+#include "icd_200_constants.hpp" // for TWO_PI
+#include "MiscMath.hpp"
+
+#include "VTECMap.hpp"
+#include "RinexUtilities.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+//------------------------------------------------------------------------------------
+const double VTECMap::VTECErrorMultipath = 4.0;
+const double VTECMap::VTECErrorSat = 0.9;
+const double VTECMap::VTECErrorCFC[4] = {-0.000045, 0.0096, -0.6755, 15.84};
+const double VTECMap::ObliqCoef[4] = {-4.316e-06, 0.001043, -0.08771, 3.57};
+
+//------------------------------------------------------------------------------------
+void VTECMap::CopyInputData(VTECMap &right)
+{
+ Decorrelation = right.Decorrelation;
+ MinElevation = right.MinElevation;
+ IonoHeight = right.IonoHeight;
+ gridtype = right.gridtype;
+ fittype = right.fittype;
+ BeginLat = right.BeginLat;
+ DeltaLat = right.DeltaLat;
+ NumLat = right.NumLat;
+ BeginLon = right.BeginLon;
+ DeltaLon = right.DeltaLon;
+ NumLon = right.NumLon;
+ RefStation = right.RefStation;
+}
+
+//------------------------------------------------------------------------------------
+void VTECMap::SetDefaults()
+{
+ Decorrelation = 3.0; // TECU/1000km
+ MinElevation = 10.0;
+ gridtype = UniformLatLon;
+ fittype = Constant;
+ BeginLat = 21.0;
+ BeginLon = 230.0;
+ DeltaLat = 0.25;
+ DeltaLon = 1.0;
+ NumLat = NumLon = 40;
+ IonoHeight = 350. * 1000.0; // 350km in meters
+}
+
+//------------------------------------------------------------------------------------
+void VTECMap::reallyMakeGrid(Station& refS, int factor)
+ throw(Exception)
+{
+ RefStation = refS;
+
+ grid = new GridData[NumLat*NumLon];
+ if(!grid) throw Exception("VTECMap::reallyMakeGrid failed to allocate grid");
+
+try {
+ int i,j,ishift,jshift,k;
+
+ if(gridtype == UniformSpace) {
+ int ii;
+ Position ptx1,ptx2,pty1,pty2,pt3,DeltaX,DeltaY;
+
+ // azimuth = 0 : x1
+ ptx1 = refS.llr.getIonosphericPiercePoint(MinElevation, 0.0,IonoHeight);
+ ptx1.transformTo(Position::Cartesian);
+
+ // azimuth = 180 : x2
+ ptx2 = refS.llr.getIonosphericPiercePoint(MinElevation,180.0,IonoHeight);
+ ptx2.transformTo(Position::Cartesian);
+
+ // azimuth = 90 : y1
+ pty1 = refS.llr.getIonosphericPiercePoint(MinElevation, 90.0,IonoHeight);
+ pty1.transformTo(Position::Cartesian);
+
+ // azimuth = 270 : y2
+ pty2 = refS.llr.getIonosphericPiercePoint(MinElevation,270.0,IonoHeight);
+ pty2.transformTo(Position::Cartesian);
+
+ // find the center of the sheet
+ pt3 = (ptx1 + ptx2)*0.5;
+
+ // get orthogonal vectors in the plane, and compute step size info
+ DeltaX = (ptx1 - ptx2)*(1.0/double(NumLon-1));
+ DeltaY = (pty1 - pty2)*(1.0/double(NumLat-1));
+
+ // create the grid
+ for(i=0; i<NumLon; i++) { // i == x == lon
+ ishift = i - (NumLon/2);
+ for(j=0; j<NumLat; j++) { // j == y == lat
+ k = i * NumLat + j; // k is the index in grid array
+ jshift = j - (NumLat/2);
+ grid[k].XYZ = pt3 + (DeltaX*ishift + DeltaY*jshift)*factor;
+ grid[k].LLR = grid[k].XYZ;
+ grid[k].LLR.transformTo(Position::Geocentric);
+ } // end j loop over lon
+ } // end i loop over lat
+ }
+
+ if(gridtype == UniformLatLon) {
+ double LatCenter = BeginLat + NumLat * DeltaLat/2.0;
+ double LonCenter = BeginLon + NumLon * DeltaLon/2.0;
+ double rad;
+ {
+ // this is a trick to get the radius of the ionosphere
+ Position IPP = refS.llr.getIonosphericPiercePoint(90,0,IonoHeight);
+ rad = IPP.radius();
+ }
+ // create the grid
+ for(i=0; i<NumLon; i++) { // i == x == lon
+ ishift = i - (NumLon/2);
+ for(j=0; j<NumLat; j++) { // j == y == lat
+ jshift = j - (NumLat/2);
+ k = i * NumLat + j; // k is the index in grid array
+ grid[k].LLR.setGeocentric(
+ LatCenter + factor * jshift * DeltaLat, // lat (deg)
+ LonCenter + factor * ishift * DeltaLon, // lon (deg)
+ rad); // radius (m)
+ grid[k].XYZ = grid[k].LLR;
+ grid[k].XYZ.transformTo(Position::Cartesian);
+ } // end j loop over lon
+ } // end i loop over lat
+ }
+}
+catch(gpstk::Exception& e) {
+ cerr << "VTECMap:reallyMakeGrid caught an exception\n" << e;
+ GPSTK_RETHROW(e);
+}
+catch (...) {
+ cerr << "VTECMap:reallyMakeGrid caught an unknown exception\n";
+}
+}
+
+//------------------------------------------------------------------------------------
+void VTECMap::OutputGrid(ostream& os)
+{
+ int i,j,k;
+ os << fixed << setprecision(3);
+ for(j=0; j<NumLat; j++) {
+ for(i=0; i<NumLon; i++) {
+ k = i * NumLat + j;
+ os << grid[k].LLR.printf(" %.8a %.8l %.3r");
+ os << grid[k].XYZ.printf(" %.3x %.3y %.3z");
+ os << " " << i << " " << j << endl;
+ }
+ }
+}
+
+//------------------------------------------------------------------------------------
+void VTECMap::ComputeMap(DayTime& epoch, vector<ObsData>& data)
+{
+ int i,j,k,n;
+ // first compute the average value
+ n = 0;
+ ave = 0.0;
+ for(k=0; k<data.size(); k++) {
+ n++;
+ ave *= double(n-1)/double(n);
+ ave += data[k].VTEC/double(n);
+ }
+ // now compute the value at each grid point
+ for(i=0; i<NumLon; i++) {
+ for(j=0; j<NumLat; j++) {
+ k = i * NumLat + j;
+ ComputeGridValue(grid[k],data);
+ }
+ }
+}
+
+//------------------------------------------------------------------------------------
+// Compute the grid values. Called by ComputeMap.
+void VTECMap::ComputeGridValue(GridData& gridpt, vector<ObsData>& data)
+{
+ double gridLat = gridpt.LLR.getGeocentricLatitude() * DEG_TO_RAD;
+ double gridLon = gridpt.LLR.longitude();
+ if(gridLon > 180.0) gridLon -= 360.0;
+ gridLon *= DEG_TO_RAD;
+
+ double destLat, destLon,dLat,dLon;
+ double sg,cg,sd,dist,range,bear,d;
+ vector<double> vtec,xtmp,ytmp,sigma;
+
+ // loop over all data
+ for(int k=0; k<data.size(); k++) {
+ //if(data[k].elevation < MinElevation) continue; // here?
+ destLat = data[k].latitude * DEG_TO_RAD;
+ destLon = data[k].longitude * DEG_TO_RAD;
+ // compute distance in the plane from grid to dest(data)
+ dLon = destLon - gridLon;
+ sg = sin(gridLat);
+ cg = cos(gridLat);
+ sd = sin(destLat);
+ d = sg*sd + cg*cos(destLat)*cos(dLon);
+ dist = acos(d);
+ // TD what is range? where does the 1.852 come from?
+ // TD what are the units of range? assume km, then Decorrelation = TECU/1000km
+ // decor error = range * Decorrelation
+ range = 1.852 * 60 * dist * RAD_TO_DEG; // 1.852 * distance in min of arc
+ if(ABS(dist) < 0.01) dist = 0.01;
+ d = (sd - sg*cos(dist)) / sin(dist)*cg; // d = cos(bearing)
+ if(ABS(d) > 1) {
+ if(d > 0) d = 1.0;
+ else d = -1.0;
+ }
+ bear = acos(d);
+ if(dLon > 0) bear = TWO_PI - bear;
+
+ vtec.push_back(data[k].VTEC);
+ xtmp.push_back(range * d); // this is probably slow
+ ytmp.push_back(range * sin(bear));
+ // sigma = RSS(measurement error, term ~ range = decorrelation)
+ d = data[k].VTECerror * data[k].VTECerror
+ + range * range * (Decorrelation/1000) * (Decorrelation/1000);
+ sigma.push_back(SQRT(d));
+
+ } // end loop over all data
+
+ d = ChiSqPlane(vtec,xtmp,ytmp,sigma);
+ if(d < 0) {
+ //if(d < -0.5) output warning: negative TEC set to 0
+ d = 0.0;
+ }
+
+ gridpt.value = d;
+}
+
+//------------------------------------------------------------------------------------
+// Chi squared calculation ... TD
+// z is VTEC
+double VTECMap::ChiSqPlane(vector<double>& z, vector<double>& x, vector<double>& y,
+ vector<double>& sigma)
+{
+ int k;
+
+ double invSigma,XinvSigma,YinvSigma,ZinvSigma;
+ double s,sx,sy,sz,sxx,sxy,syy,sxz,syz;
+
+ invSigma = 1.0/(sigma[0]*sigma[0]);
+ s = invSigma;
+ ZinvSigma = (z[0]-ave) * invSigma;
+ sz = ZinvSigma;
+ if(fittype == Linear) {
+ XinvSigma = x[0] * invSigma;
+ sx = XinvSigma;
+ YinvSigma = y[0] * invSigma;
+ sy = YinvSigma;
+ sxx = x[0] * XinvSigma;
+ sxy = x[0] * YinvSigma;
+ syy = y[0] * YinvSigma;
+ sxz = x[0] * ZinvSigma;
+ syz = y[0] * ZinvSigma;
+ }
+
+ double invS2,XinvS2,YinvS2,ZinvS2;
+ for(k=1; k<z.size(); k++) {
+ // constant and linear
+ invS2 = 1.0 / (sigma[k]*sigma[k]);
+ s += invS2;
+ ZinvS2 = (z[k]-ave) * invS2;
+ sz += ZinvS2;
+ // linear only
+ if(fittype == Linear) {
+ XinvS2 = x[k] * invS2;
+ YinvS2 = y[k] * invS2;
+ sx += XinvS2;
+ sy += YinvS2;
+ sxx += x[k] * XinvS2;
+ sxy += x[k] * YinvS2;
+ syy += y[k] * YinvS2;
+ sxz += x[k] * ZinvS2;
+ syz += y[k] * ZinvS2;
+ }
+ }
+
+ double value;
+ if(fittype == Linear) {
+ double delta = sxy*(s*sxy-2*sx*sy) + sxx*sy*sy + syy*(sx*sx-s*sxx);
+ value = ( sxz*(sx*syy-sxy*sy) + syz*(sxx*sy-sx*sxy)
+ + sz*(sxy*sxy-sxx*syy) )/delta;
+ }
+ else
+ value = (sz/s);
+ return (ave + value);
+}
+
+//------------------------------------------------------------------------------------
+void VTECMap::OutputMap(ostream& os, bool format)
+{
+ int i,j,k;
+ os << fixed << setprecision(3);
+ for(j=0; j<NumLat; j++) {
+ for(i=0; i<NumLon; i++) {
+ k = i * NumLat + j;
+ if(format) os << grid[k].LLR[0] << " " << grid[k].LLR[1];
+ os << " " << grid[k].value;
+ if(format) os << endl;
+ }
+ os << endl;
+ }
+}
+
+//------------------------------------------------------------------------------------
+void MUFMap::ComputeMap(DayTime& epoch, vector<ObsData>& data)
+{
+ int i,k;
+ double lvect1,lvect2,tmp,cosin;;
+ GridData center,reflect;
+ Position MUFearth;
+
+ for(k=0; k<NumLat*NumLon; k++) {
+ // Comment in the original code is:
+ // "convert the lat/lon from the MUF grid
+ // to XYZ positions on the surface of Earth"
+ // then code uses grid[k].XYZ where MUFearth is here...
+ MUFearth = grid[k].LLR;
+ MUFearth[2] = MUFearth.radiusEarth();
+ MUFearth.transformTo(Position::Cartesian);
+
+ center.XYZ = (MUFearth + RefStation.xyz)*0.5;
+ center.LLR = center.XYZ;
+ center.LLR.transformTo(Position::Geocentric);
+
+ reflect = center;
+ reflect.LLR[2] = reflect.LLR.radiusEarth() + IonoHeight;
+
+ ComputeGridValue(reflect, data);
+
+ reflect.XYZ = reflect.LLR;
+ reflect.XYZ.transformTo(Position::Cartesian);
+
+ lvect1 = lvect2 = 0.0;
+ for(i=0; i<3; i++) {
+ tmp = MUFearth[i] - reflect.XYZ[i];
+ lvect1 += tmp*tmp;
+ tmp = reflect.XYZ[i] - center.XYZ[i];
+ lvect2 += tmp*tmp;
+ }
+ cosin = SQRT(lvect2/lvect1);
+ grid[k].value =
+ VTECtoF0F2(0,reflect.value,epoch,reflect.LLR.longitude()) / cosin;
+ }
+}
+
+//------------------------------------------------------------------------------------
+// First cut at foF2 assuming constant slab thickness of 280 km and
+// TEC = 1.24e10 (foF2)^2 tau / 10^16
+void F0F2Map::ComputeMap(DayTime& epoch, vector<ObsData>& data)
+{
+ int i,j,k;
+ for(i=0; i<NumLon; i++) {
+ for(j=0; j<NumLat; j++) {
+ k = i * NumLat + j;
+ ComputeGridValue(grid[k],data);
+ grid[k].value = VTECtoF0F2(1,grid[k].value,epoch,grid[k].LLR.longitude());
+ }
+ }
+}
+
+//------------------------------------------------------------------------------------
+double VTECMap::VTECtoF0F2(int method, double vtec, DayTime& epoch, double lon)
+{
+try {
+ double fof2,tau,dt;
+ static DayTime computeTime=DayTime::BEGINNING_OF_TIME;
+ const double con[4]={0.019600827088077529, -1.549245071973630372,
+ 29.890989537102175433, 237.467144625490760745};
+
+ if(method == 0) {
+ tau = 280;
+ }
+ else if(method == 1) {
+ if(epoch != computeTime) {
+ computeTime = epoch;
+ dt = epoch.hour()+epoch.minute()/60.;
+ dt += (lon - 262.2743352)/15;
+ if(dt > 24) dt -= 24;
+ if(dt < 0) dt += 24;
+ tau = con[0];
+ for(int i=1; i<4; i++) tau = tau * dt + con[i];
+ }
+ }
+ else {
+ throw Exception("VTECtoF0F2 finds unknown method");
+ }
+
+ fof2 = SQRT(806.4 * vtec / tau);
+
+ return fof2;
+}
+catch(Exception& e) {
+ GPSTK_RETHROW(e);
+}
+}
+
+//------------------------------------------------------------------------------------
+double VTECMap::VTECError(double t, double el, double vtec)
+{
+ double slant = VTECErrorMultipath * VTECErrorMultipath / (1+2*t/3);
+ slant += VTECErrorSat * VTECErrorSat;
+ //slant += BiasError * BiasError;
+ double q = Obliquity(el);
+ double delta = VTECErrorCFC[0];
+ for(int i=1; i<4; i++)
+ delta = delta * el + VTECErrorCFC[i];
+ delta *= 0.01;
+ double vert = slant/(q*q);
+ vert += delta * vtec * delta * vtec;
+ vert = SQRT(vert);
+ return vert;
+}
+
+//------------------------------------------------------------------------------------
+double VTECMap::Obliquity(double el)
+{
+ if(el > 85) return 1.0;
+ double obq = ObliqCoef[0];
+ for(int i=1; i<4; i++)
+ obq = obq * el + ObliqCoef[i];
+ return obq;
+}
+
+//------------------------------------------------------------------------------------
+void gpstk::PlaneCoefficients(double cof[3], double p1[3], double p2[3], double p3[3])
+ throw(Exception)
+{
+ double denom=(p2[0]-p3[0])*p1[1]+(p3[0]-p1[0])*p2[1]+(p1[0]-p2[0])*p3[1];
+ if(denom == 0) throw Exception("PlaneCoefficients finds singular problem");
+ denom = 1.0/denom;
+ cof[0] = ((p3[1]-p2[1])*p1[2]+(p1[1]-p3[1])*p2[2]+(p2[1]-p1[1])*p3[2])*denom;
+ cof[1] = ((p2[0]-p3[0])*p1[2]+(p3[0]-p1[0])*p2[2]+(p1[0]-p2[0])*p3[2])*denom;
+ cof[2] = ((p3[0]*p2[1]-p2[0]*p3[1])*p1[2]+(p1[0]*p3[1]-p3[0]*p1[1])*p2[2]+
+ (p2[0]*p1[1]-p1[0]*p2[1])*p3[2])*denom;
+}
+
+//------------------------------------------------------------------------------------
+ostream& gpstk::operator<<(ostream& os, const Station& s)
+{
+ os << "Station filename: " << s.filename << endl << fixed;
+ os << s.xyz.printf(" %.3x m %.3y m %.3z m (ECEF)\n"
+ " %.9a degN %.9l degE %.3r m (Geocentric)");
+ return os;
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/ionosphere/VTECMap.hpp b/dev/apps/ionosphere/VTECMap.hpp
new file mode 100644
index 0000000..ce9fbe8
--- /dev/null
+++ b/dev/apps/ionosphere/VTECMap.hpp
@@ -0,0 +1,249 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file VTECMap.hpp
+ * VTECMap implements a simple ionospheric model using least squares
+ * and slant TEC values from multiple stations.
+ */
+
+#ifndef GPSTK_VTECMAP_INCLUDE
+#define GPSTK_VTECMAP_INCLUDE
+
+//------------------------------------------------------------------------------------
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+
+#include "WGS84Geoid.hpp"
+#include "Position.hpp"
+#include "icd_200_constants.hpp" // for TWO_PI
+#include "geometry.hpp" // for DEG_TO_RAD and RAD_TO_DEG
+#include "MiscMath.hpp" // for RSS
+
+#include <iostream>
+#include <string>
+#include <vector>
+#include <map>
+
+//------------------------------------------------------------------------------------
+namespace gpstk
+{
+
+//------------------------------------------------------------------------------------
+/// class Station TD document
+class Station {
+public:
+ //string id; use header.markerName
+ int nfile; // this object is Stations[nfile]
+ std::string filename;
+ //RinexObsStream instream; // cannot make vector<Station> for lack of copy c'tor
+ RinexObsHeader header;
+ RinexObsData robs;
+ bool getNext; // if true, ready to read next epoch
+ int nread; // number of obs records read or (-1 = dead, 0=header read)
+ //int inC1,inL1,inL2,inP1,inP2,inD1,inD2,inS1,inS2; // indexes in header
+ Position xyz; // cartesian position (ECEF)
+ Position llr; // geocentric position in LLR
+ std::map<SatID,DayTime> InitTime; // time of start of this (cont) phase seg
+
+ friend std::ostream& operator<<(std::ostream& os, const Station& f);
+};
+
+/// Data collected from each station/satellite pair, used to construct the TEC map
+class ObsData {
+public:
+ double AcqTime; ///< acquisition time: time since start of continuous phase (s)
+ double VTEC; ///< vertical TEC (TECU?)
+ double VTECerror; ///< computed error in the VTEC
+ double elevation; ///< elevation angle (degrees)
+ double azimuth; ///< azimuth angle (degrees)
+ double latitude; ///< latitude of the ionospheric pierce point (degrees)
+ double longitude; ///< longitude of the ionospheric pierce point (degrees E)
+};
+
+/// Data defining the map at each grid point: grid location and TEC value
+class GridData {
+public:
+ Position XYZ; ///< ECEF position (x,y,z) in meters
+ Position LLR; ///< geocentric position (lat,lon,radius) in deg,degE,meters
+ double value; ///< computed map value at this grid point (TECU?)
+};
+
+//------------------------------------------------------------------------------------
+/// class VTECMap stores and computes a grid in latitude and longitude, then given
+/// VTEC data over a network of ground stations, computes the value of VTEC on
+/// the grid.
+class VTECMap {
+public:
+ /// Supported grid types
+ enum GridType
+ {
+ UniformLatLon=1, ///< Grid is uniform in (geocentric) latitude, longitude
+ UniformSpace ///< Grid is uniform in space (constant physical spacing)
+ };
+
+ /// Supported fit types
+ enum FitType
+ {
+ Constant, ///< Model ionospheric TEC as constant
+ Linear ///< Model ionospheric TEC as linear function of lat,lon
+ };
+
+ /// default constructor
+ VTECMap() { grid=NULL; SetDefaults(); }
+
+ /// destructor
+ virtual ~VTECMap() { if(grid) delete[] grid; }
+
+ /// copy input data
+ void CopyInputData(VTECMap &right);
+
+ /// default values of input data
+ void SetDefaults();
+
+ /// build the 2D grid itself
+ /// @param refStation Station object for the reference station
+ virtual void MakeGrid(Station& refStation) throw(Exception)
+ { reallyMakeGrid(refStation,1); }
+
+ /// write grid locations to a file
+ /// @param ostream on which to write
+ void OutputGrid(std::ostream& os);
+
+ /// populate the 2D grid
+ /// @param data vector of ObsData structures for all observed data
+ virtual void ComputeMap(DayTime& epoch, std::vector<ObsData>& data);
+
+ /// write the computed grid values to a file
+ /// @param ostream on which to write
+ /// @param bool gnuplotFormat if true, output for gnuplot,
+ /// otherwise (default) for Matlab (TD right?)
+ void OutputMap(std::ostream& os, bool gnuplotFormat=false);
+
+ // input data
+ double Decorrelation; ///< decorellation error rate in TECU/1000km
+ double MinElevation; ///< minimum elevation in degrees
+ double IonoHeight; ///< Height of the ionosphere in meters
+ GridType gridtype; ///< uniform in space or uniform in lat/lon
+ FitType fittype; ///< constant or linear
+ double BeginLat; ///< beginning latitude (deg)
+ double DeltaLat; ///< step in latitude (deg)
+ int NumLat; ///< number of latitude grids
+ double BeginLon; ///< beginning longitude (deg E)
+ double DeltaLon; ///< step in longitude (deg)
+ int NumLon; ///< number of longitude grids
+ Station RefStation; ///< reference station, input by MakeGrid()
+
+ // grid and map data
+ GridData *grid;
+ double ave;
+
+ // constants needed in computation
+ static const double VTECErrorMultipath; ///< TD doc
+ static const double VTECErrorSat; ///< TD doc
+ static const double VTECErrorCFC[4]; ///< TD doc
+ static const double ObliqCoef[4]; ///< Parameters used in obliquity calc.
+
+ // computation
+
+ /// Convert vertical TEC to foF2 using one of two methods.
+ /// @param method flag giving methods:
+ /// 0 Constant slab of thickness tau=280 km
+ /// 1 Cubic fit to tau from ARL data
+ /// @param vtec Vertical TEC
+ /// @param epoch TD doc
+ /// @param lon Longitude of TD doc
+ double VTECtoF0F2(int method, double vtec, DayTime& epoch, double lon);
+
+ /// Compute the error on the VTEC
+ /// @param t acquisition time in sec ?
+ /// @param el elevation in degrees
+ /// @param vtec vertical TEC (TECU)
+ /// @return error on the VTEC
+ double VTECError(double t, double el, double vtec);
+
+ /// Compute the obliquity at a given elevation
+ /// @param el elevation in degrees
+ /// @return obliquity factor
+ double Obliquity(double el);
+
+protected:
+ /// Allocate the grid array and fill it.
+ /// @param refStation reference station
+ /// @param factor : 1 for VTEC maps, 2 for MUF maps
+ void reallyMakeGrid(Station& refStation, int factor)
+ throw(Exception);
+
+ /// Compute one grid value, using all the data. Called by ComputeMap.
+ void ComputeGridValue(GridData& gridpt, std::vector<ObsData>& data);
+
+ /// Chi squared calculation ... TD
+ double ChiSqPlane(std::vector<double>& vtec, std::vector<double>& x,
+ std::vector<double>& y, std::vector<double>& sigma);
+
+}; // end class VTECMap
+
+/// class MUFMap is a VTECMap that computes MUF on the grid points.
+class MUFMap : public VTECMap {
+public:
+ /// build the 2D grid itself
+ /// @param refStation Station object for the reference station
+ void MakeGrid(Station& refStation) throw(Exception)
+ { reallyMakeGrid(refStation,2); }
+ /// populate the 2D grid
+ /// @param data vector of ObsData structures for all observed data
+ void ComputeMap(DayTime& epoch, std::vector<ObsData>& data);
+};
+
+/// class MUFMap is a VTECMap that computes F0F2 on the grid points.
+class F0F2Map : public VTECMap {
+public:
+ /// populate the 2D grid
+ /// @param data vector of ObsData structures for all observed data
+ void ComputeMap(DayTime& epoch, std::vector<ObsData>& data);
+};
+
+//------------------------------------------------------------------------------------
+// prototypes
+
+/// Compute the coefficients [a,b,c] in the equation z = a*x + b*y + c that describes
+/// a plane, given the cartesian coordinates [x,y,z] of three points p1,p2,p3 that
+/// define the plane.
+/// @param cof double[3] of coefficients (output)
+/// @param p1 double[3] of coordinates
+/// @param p2 double[3] of coordinates
+/// @param p3 double[3] of coordinates
+void PlaneCoefficients(double cof[3], double p1[3], double p2[3], double p3[3])
+ throw(Exception);
+
+//------------------------------------------------------------------------------------
+} // namespace gpstk
+
+//------------------------------------------------------------------------------------
+#endif // GPSTK_VTECMAP_INCLUDE
diff --git a/trunk/apps/ionosphere/example/README b/dev/apps/ionosphere/example/README
similarity index 100%
rename from trunk/apps/ionosphere/example/README
rename to dev/apps/ionosphere/example/README
diff --git a/trunk/apps/ionosphere/example/bias.inp b/dev/apps/ionosphere/example/bias.inp
similarity index 100%
rename from trunk/apps/ionosphere/example/bias.inp
rename to dev/apps/ionosphere/example/bias.inp
diff --git a/trunk/apps/ionosphere/example/getigs b/dev/apps/ionosphere/example/getigs
similarity index 100%
rename from trunk/apps/ionosphere/example/getigs
rename to dev/apps/ionosphere/example/getigs
diff --git a/trunk/apps/ionosphere/example/gobias b/dev/apps/ionosphere/example/gobias
similarity index 100%
rename from trunk/apps/ionosphere/example/gobias
rename to dev/apps/ionosphere/example/gobias
diff --git a/trunk/apps/ionosphere/example/gomaps b/dev/apps/ionosphere/example/gomaps
similarity index 100%
rename from trunk/apps/ionosphere/example/gomaps
rename to dev/apps/ionosphere/example/gomaps
diff --git a/trunk/apps/ionosphere/example/gopre b/dev/apps/ionosphere/example/gopre
similarity index 100%
rename from trunk/apps/ionosphere/example/gopre
rename to dev/apps/ionosphere/example/gopre
diff --git a/trunk/apps/ionosphere/example/list.files b/dev/apps/ionosphere/example/list.files
similarity index 100%
rename from trunk/apps/ionosphere/example/list.files
rename to dev/apps/ionosphere/example/list.files
diff --git a/trunk/apps/ionosphere/example/maps.inp b/dev/apps/ionosphere/example/maps.inp
similarity index 100%
rename from trunk/apps/ionosphere/example/maps.inp
rename to dev/apps/ionosphere/example/maps.inp
diff --git a/trunk/apps/ionosphere/example/plotall.pl b/dev/apps/ionosphere/example/plotall.pl
similarity index 100%
rename from trunk/apps/ionosphere/example/plotall.pl
rename to dev/apps/ionosphere/example/plotall.pl
diff --git a/trunk/apps/ionosphere/example/preprocess.pl b/dev/apps/ionosphere/example/preprocess.pl
similarity index 100%
rename from trunk/apps/ionosphere/example/preprocess.pl
rename to dev/apps/ionosphere/example/preprocess.pl
diff --git a/trunk/apps/ionosphere/example/see b/dev/apps/ionosphere/example/see
similarity index 100%
rename from trunk/apps/ionosphere/example/see
rename to dev/apps/ionosphere/example/see
diff --git a/trunk/apps/mergetools/Jamfile b/dev/apps/mergetools/Jamfile
similarity index 100%
rename from trunk/apps/mergetools/Jamfile
rename to dev/apps/mergetools/Jamfile
diff --git a/dev/apps/mergetools/Makefile.am b/dev/apps/mergetools/Makefile.am
new file mode 100644
index 0000000..946ba94
--- /dev/null
+++ b/dev/apps/mergetools/Makefile.am
@@ -0,0 +1,10 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = mergeRinNav mergeRinObs mergeRinMet mergeFIC
+
+mergeRinObs_SOURCES = mergeRinObs.cpp
+mergeRinNav_SOURCES = mergeRinNav.cpp
+mergeRinMet_SOURCES = mergeRinMet.cpp
+mergeFIC_SOURCES = mergeFIC.cpp
diff --git a/dev/apps/mergetools/MergeFrame.hpp b/dev/apps/mergetools/MergeFrame.hpp
new file mode 100644
index 0000000..e410f3a
--- /dev/null
+++ b/dev/apps/mergetools/MergeFrame.hpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+
+#ifndef MERGEFRAME_HPP
+#define MERGEFRAME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "BasicFramework.hpp"
+
+/// Base class for writing utilities that merge files
+
+class MergeFrame : public gpstk::BasicFramework
+{
+public:
+ /**
+ * arg0 is the name of the executable from argv[0].
+ * type is a string with the type of file (i.e. "RINEX Obs").
+ * message is an extra message that gets passed to the
+ * program description.
+ */
+ MergeFrame(char* arg0,
+ const std::string& type,
+ const std::string& message = std::string())
+ : gpstk::BasicFramework(arg0,
+ "Sorts and merges input " + type +
+ " files into a single file. " + message),
+ inputFileOption('i',
+ "input",
+ "An input " + type +
+ " file, can be repeated as many times as needed.",
+ true),
+ outputFileOption('o',
+ "output",
+ "Name for the merged output " + type + " file. Any "
+ "existing file with that name will be overwritten.",
+ true)
+ {
+ outputFileOption.setMaxCount(1);
+ }
+
+ virtual bool initialize(int argc, char* argv[]) throw()
+ {
+ return gpstk::BasicFramework::initialize(argc, argv);
+ }
+
+protected:
+ virtual void process() = 0;
+
+ gpstk::CommandOptionWithAnyArg inputFileOption;
+ gpstk::CommandOptionWithAnyArg outputFileOption;
+};
+
+
+#endif
diff --git a/dev/apps/mergetools/mergeFIC.cpp b/dev/apps/mergetools/mergeFIC.cpp
new file mode 100644
index 0000000..42e2010
--- /dev/null
+++ b/dev/apps/mergetools/mergeFIC.cpp
@@ -0,0 +1,110 @@
+#pragma ident "$Id$"
+
+
+// mergeFIC
+// Merge and sort FIC files
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICStream.hpp"
+#include "FICData.hpp"
+#include "FICFilterOperators.hpp"
+#include "FileFilterFrameWithHeader.hpp"
+
+#include "MergeFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MergeFIC : public MergeFrame
+{
+public:
+ MergeFIC(char* arg0) :
+ MergeFrame(arg0,
+ std::string("FIC"),
+ std::string("No filtering is performed on FIC merges. The resulting file may have some duplicate data."))
+ {}
+
+protected:
+ virtual void process();
+};
+
+void MergeFIC::process()
+{
+ std::vector<std::string> files = inputFileOption.getValue();
+
+ // FFF will sort and merge the FIC data using a simple time check
+ FileFilterFrameWithHeader<FICStream, FICData, FICHeader>
+ fff(files);
+
+ // arbitrarily take the first FIC header as the header for the merged
+ // file
+ std::string outputFile = outputFileOption.getValue().front();
+ fff.writeFile(outputFile, fff.frontHeader());
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ MergeFIC m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/mergetools/mergeRinMet.cpp b/dev/apps/mergetools/mergeRinMet.cpp
new file mode 100644
index 0000000..4d6cc45
--- /dev/null
+++ b/dev/apps/mergetools/mergeRinMet.cpp
@@ -0,0 +1,124 @@
+#pragma ident "$Id$"
+
+
+// mergeRinMet
+// Merge and sort rinex metrological files
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "RinexMetStream.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetFilterOperators.hpp"
+#include "FileFilterFrameWithHeader.hpp"
+
+#include "MergeFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MergeRinMet : public MergeFrame
+{
+public:
+ MergeRinMet(char* arg0)
+ : MergeFrame(arg0,
+ std::string("RINEX Met"),
+ std::string("The output will be sorted by time. This program assumes all the input files are from the same station."))
+ {}
+
+protected:
+ virtual void process();
+};
+
+void MergeRinMet::process()
+{
+ std::vector<std::string> files = inputFileOption.getValue();
+
+ // FFF will sort and merge the data using
+ // a simple time check
+ FileFilterFrameWithHeader<RinexMetStream, RinexMetData, RinexMetHeader>
+ fff(files);
+
+ // get the header data
+ RinexMetHeaderTouchHeaderMerge merged;
+ fff.touchHeader(merged);
+
+ // sort and filter the data
+ fff.sort(RinexMetDataOperatorLessThanFull(merged.obsSet));
+ fff.unique(RinexMetDataOperatorEqualsSimple());
+
+ // set the pgm/runby/date field
+ merged.theHeader.fileProgram = std::string("mergeRinMet");
+ merged.theHeader.fileAgency = std::string("gpstk");
+ merged.theHeader.date = DayTime().asString();
+
+ // write the header
+ std::string outputFile = outputFileOption.getValue().front();
+ fff.writeFile(outputFile, merged.theHeader);
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ MergeRinMet m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/mergetools/mergeRinNav.cpp b/dev/apps/mergetools/mergeRinNav.cpp
new file mode 100644
index 0000000..5c8f663
--- /dev/null
+++ b/dev/apps/mergetools/mergeRinNav.cpp
@@ -0,0 +1,127 @@
+#pragma ident "$Id$"
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "RinexNavStream.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavFilterOperators.hpp"
+#include "FileFilterFrameWithHeader.hpp"
+
+#include "MergeFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MergeRinNav : public MergeFrame
+{
+public:
+ MergeRinNav(char* arg0)
+ : MergeFrame(arg0,
+ std::string("RINEX Nav"),
+ std::string("Only unique nav subframes will be output and they will be sorted by time."))
+ {}
+
+protected:
+ virtual void process();
+};
+
+void MergeRinNav::process()
+{
+ std::vector<std::string> files = inputFileOption.getValue();
+
+ // FFF will sort and merge the obs data using
+ // a simple time check
+ FileFilterFrameWithHeader<RinexNavStream, RinexNavData, RinexNavHeader>
+ fff(files);
+
+ // get the header data
+ RinexNavHeaderTouchHeaderMerge merged;
+ fff.touchHeader(merged);
+
+ // sort and filter the data
+ fff.sort(RinexNavDataOperatorLessThanFull());
+ fff.unique(RinexNavDataOperatorEqualsFull());
+
+ // set the pgm/runby/date field
+ merged.theHeader.fileType = string("NAVIGATION");
+ merged.theHeader.fileProgram = std::string("mergeRinNav");
+ merged.theHeader.fileAgency = std::string("gpstk");
+ merged.theHeader.date = DayTime().asString();
+ merged.theHeader.version = 2.1;
+ merged.theHeader.valid |= gpstk::RinexNavHeader::versionValid;
+ merged.theHeader.valid |= gpstk::RinexNavHeader::runByValid;
+ merged.theHeader.valid |= gpstk::RinexNavHeader::commentValid;
+ merged.theHeader.valid |= gpstk::RinexNavHeader::endValid;
+
+ // write the header
+ std::string outputFile = outputFileOption.getValue().front();
+ fff.writeFile(outputFile, merged.theHeader);
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ MergeRinNav m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/mergetools/mergeRinObs.cpp b/dev/apps/mergetools/mergeRinObs.cpp
new file mode 100644
index 0000000..ef97980
--- /dev/null
+++ b/dev/apps/mergetools/mergeRinObs.cpp
@@ -0,0 +1,127 @@
+#pragma ident "$Id$"
+
+
+// mergeRinObs
+// Merge and sort rinex observation files
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "RinexObsStream.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsFilterOperators.hpp"
+#include "FileFilterFrameWithHeader.hpp"
+
+#include "MergeFrame.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MergeRinObs : public MergeFrame
+{
+public:
+ MergeRinObs(char* arg0)
+ : MergeFrame(arg0,
+ std::string("RINEX Obs"),
+ std::string("The output will be sorted by time. This program assumes all the input files are from the same station."))
+ {}
+
+protected:
+ virtual void process();
+};
+
+void MergeRinObs::process()
+{
+ std::vector<std::string> files = inputFileOption.getValue();
+
+ // FFF will sort and merge the obs data using
+ // a simple time check
+ FileFilterFrameWithHeader<RinexObsStream, RinexObsData, RinexObsHeader>
+ fff(files);
+
+ // get the header data
+ RinexObsHeaderTouchHeaderMerge merged;
+ fff.touchHeader(merged);
+
+ // sort and filter the data using the obs set from the merged header
+ fff.sort(RinexObsDataOperatorLessThanFull(merged.obsSet));
+ fff.unique(RinexObsDataOperatorEqualsSimple());
+
+ // set the time of first obs in the header
+ merged.theHeader.firstObs = fff.front().time;
+
+ // set the pgm/runby/date field
+ merged.theHeader.fileProgram = std::string("mergeRinObs");
+ merged.theHeader.fileAgency = std::string("gpstk");
+ merged.theHeader.date = DayTime().asString();
+
+ // write the file
+ std::string outputFile = outputFileOption.getValue().front();
+ fff.writeFile(outputFile, merged.theHeader);
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ MergeRinObs m(argv[0]);
+ if (!m.initialize(argc, argv))
+ return 0;
+ if (!m.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 1;
+}
diff --git a/dev/apps/multipath/Jamfile b/dev/apps/multipath/Jamfile
new file mode 100644
index 0000000..9fb10f6
--- /dev/null
+++ b/dev/apps/multipath/Jamfile
@@ -0,0 +1,6 @@
+SubDir TOP apps multipath ;
+
+GPSLinkLibraries mpsolve : gpstk ;
+BonkForte ; # bleah.
+
+GPSMain mpsolve : mpsolve.cpp ObsArray.cpp ;
diff --git a/dev/apps/multipath/Makefile.am b/dev/apps/multipath/Makefile.am
new file mode 100644
index 0000000..0a1879f
--- /dev/null
+++ b/dev/apps/multipath/Makefile.am
@@ -0,0 +1,7 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = mpsolve
+
+mpsolve_SOURCES = mpsolve.cpp ObsArray.cpp
diff --git a/dev/apps/multipath/ObsArray.cpp b/dev/apps/multipath/ObsArray.cpp
new file mode 100644
index 0000000..e3371c7
--- /dev/null
+++ b/dev/apps/multipath/ObsArray.cpp
@@ -0,0 +1,390 @@
+#pragma ident "$Id:$"
+
+/**
+ * @file ObsArray.cpp
+ * Provides ability to operate mathematically on large, logical groups of observations
+ * Class definitions.
+ */
+
+#include <vector>
+#include <set>
+
+#include "ValarrayUtils.hpp"
+#include "PRSolution.hpp"
+
+#include "RinexObsStream.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "FileUtils.hpp"
+#include "ObsArray.hpp"
+
+namespace gpstk
+{
+
+ ObsArray::ObsArray(void)
+ : numObsTypes(0)
+ {
+ }
+
+ ObsIndex ObsArray::add(RinexObsHeader::RinexObsType type)
+ {
+ isBasic[numObsTypes]=true;
+ basicTypeMap[numObsTypes]=type;
+ return numObsTypes++;
+ }
+
+ ObsIndex ObsArray::add(const std::string& expression)
+ {
+ isBasic[numObsTypes]=false;
+ expressionMap[numObsTypes] = Expression(expression);
+ expressionMap[numObsTypes].setGPSConstants();
+ return numObsTypes++;
+ }
+
+ void ObsArray::load(const std::string& obsfilename,
+ const std::string& navfilename)
+ {
+ std::vector<std::string> obsList(1), navList(1);
+ obsList[0]=obsfilename;
+ navList[0]=navfilename;
+ load(obsList, navList);
+ }
+
+ void ObsArray::load(const std::vector<std::string>& obsList,
+ const std::vector<std::string>& navList)
+ {
+ // First check for existance of input files
+ for (int i=0; i< obsList.size(); i++)
+ if (!FileUtils::fileAccessCheck(obsList[i]))
+ {
+ ObsArrayException oae("Cannot read obs file " + obsList[i]);
+ GPSTK_THROW(oae);
+ }
+
+ for (int i=0; i< navList.size(); i++)
+ {
+
+ if (!FileUtils::fileAccessCheck(navList[i]))
+ {
+ ObsArrayException oae("Cannot read nav file " + navList[i]);
+ GPSTK_THROW(oae);
+ }
+ else
+
+ // Load the ephemeris information from the named NAV file.
+ ephStore.loadFile(navList[i]);
+ }
+
+ for (int i=0; i< obsList.size(); i++)
+ {
+ loadObsFile(obsList[i]);
+ }
+
+ }
+
+
+ void ObsArray::loadObsFile(const std::string& obsfilename)
+ {
+ // Load the obs file header
+ RinexObsStream robs(obsfilename.c_str());
+ RinexObsStream robsAgain(obsfilename.c_str());
+ RinexObsHeader roh;
+
+ robs >> roh;
+
+ // Verify we have a suggested approximate location. If not, note that.
+ bool staticPositionDefined=false;
+ Triple antennaPos;
+
+ if ( (roh.valid & RinexObsHeader::antennaPositionValid) ==
+ RinexObsHeader::antennaPositionValid)
+ {
+ if ( ! ((antennaPos[0]==antennaPos[1]) &&
+ (antennaPos[0]==antennaPos[2]) &&
+ (antennaPos[0]==0)) )
+ {
+ antennaPos = roh.antennaPosition;
+ staticPositionDefined=true;
+ }
+ }
+
+ // Remember the data collection rate. If not available, note that.
+ bool intervalDefined=false;
+
+ if ( (roh.valid & RinexObsHeader::intervalValid) ==
+ RinexObsHeader::intervalValid)
+ {
+ interval = roh.interval;
+ intervalDefined=true;
+ intervalInferred=false;
+ }
+
+ RinexObsData rod;
+ RinexObsData::RinexSatMap::const_iterator it;
+
+ // Read through file the first time.
+ // In this pass, get the "size" of the data
+ // Calculate if needed an approximate user positoin,
+ // and data collection interval.
+
+ numSatEpochs = 0;
+
+ bool firstEpochCompleted = false;
+ DayTime lastEpochValue;
+ std::set<double> intervalDifferences;
+
+ while ( robs >> rod )
+ {
+ // Account for total amount of obs data in this file
+ numSatEpochs += rod.obs.size();
+
+ // Record the interval differences
+ if (!intervalDefined)
+ {
+ if (!firstEpochCompleted)
+ {
+ lastEpochValue = rod.time;
+ firstEpochCompleted = true;
+ }
+ else
+ {
+ intervalDifferences.insert(ceil(rod.time - lastEpochValue));
+ lastEpochValue = rod.time;
+ }
+ }
+
+
+ // If necessary, determine the initial user position
+ if (!staticPositionDefined)
+ {
+ PRSolution prEst;
+ ZeroTropModel nullTropModel;
+
+ std::vector<SatID> sats;
+ std::vector<double> ranges;
+ RinexObsData::RinexSatMap::const_iterator it;
+
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ RinexObsData::RinexObsTypeMap otmap;
+ RinexObsData::RinexObsTypeMap::const_iterator itPR;
+ otmap = it->second;
+ itPR = otmap.find(RinexObsHeader::P1);
+ if (itPR == otmap.end())
+ itPR = otmap.find(RinexObsHeader::C1);
+
+ if (itPR!=otmap.end())
+ {
+ sats.push_back(it->first);
+ ranges.push_back(itPR->second.data);
+ }
+ }
+
+ prEst.RMSLimit = 10000;
+ prEst.RAIMCompute(rod.time, sats, ranges, ephStore,
+ &nullTropModel);
+
+ if (prEst.isValid())
+ {
+ antennaPos[0] = prEst.Solution[0];
+ antennaPos[1] = prEst.Solution[1];
+ antennaPos[2] = prEst.Solution[2];
+ staticPositionDefined = true;
+ }
+ } // End first blush estimate of static or initial position
+
+ } // Finish first run through file
+
+ if (!intervalDefined)
+ {
+
+ using namespace ValarrayUtils;
+ //std::cout << "intervals were: " << intervalDifferences << std::endl;
+ std::set<double>::iterator itEpochDiff = intervalDifferences.begin();
+ interval = *itEpochDiff;
+ intervalDefined = true;
+ intervalInferred = true;
+ }
+
+ if (!intervalDefined)
+ {
+ ObsArrayException oae("Cannot determine data interval for " + obsfilename);
+ GPSTK_THROW(oae);
+ }
+
+ int i=0;
+
+ // Size the storage valarrays.
+ observation.resize(numSatEpochs*numObsTypes);
+ epoch.resize(numSatEpochs);
+ satellite.resize(numSatEpochs);
+ lli.resize(numSatEpochs);
+ azimuth.resize(numSatEpochs);
+ elevation.resize(numSatEpochs);
+ validAzEl.resize(numSatEpochs);
+ pass.resize(numSatEpochs);
+ pass = -1;
+
+ validAzEl = true;
+ size_t satEpochIdx=0;
+
+ std::map<SatID, DayTime> lastObsTime;
+ std::map<SatID, DayTime>::const_iterator it2;
+ std::map<SatID, long> currPass;
+
+ long highestPass = 0;
+ long thisPassNo;
+
+ // Second time through, fill in observations and pass numbers
+ // First step through each epoch of observation
+ while (robsAgain >> rod)
+ {
+ // Second step through the obs for each SV
+
+ for (it = rod.obs.begin(); it!=rod.obs.end(); it++)
+ {
+ it2 = lastObsTime.find((*it).first);
+
+ // Step through obs to see if loss of lock is true
+ bool thislli=false;
+ RinexObsData::RinexObsTypeMap::const_iterator i_rotm;
+ for (i_rotm = it->second.begin();
+ i_rotm!= it->second.end(); i_rotm++)
+ {
+ thislli = thislli || (i_rotm->second.lli > 0);
+ }
+ lli[satEpochIdx]=thislli;
+
+
+ if ( (it2==lastObsTime.end()) || (thislli) ||
+ ( (rod.time-lastObsTime[(*it).first]) > 1.1*interval) )
+ {
+ thisPassNo = highestPass;
+ lastObsTime[(*it).first]=rod.time;
+ currPass[(*it).first]=highestPass++;
+ }
+ else
+ {
+ thisPassNo = currPass[(*it).first];
+ lastObsTime[(*it).first]=rod.time;
+ }
+
+
+ pass[satEpochIdx]=thisPassNo;
+
+ for (int idx=0; idx<numObsTypes; idx++)
+ {
+ if (isBasic[idx])
+ {
+ observation[i] = rod.obs[it->first][basicTypeMap[idx]].data;
+ }
+ else
+ {
+ expressionMap[idx].setRinexObs(rod.obs[it->first]);
+ observation[i] = expressionMap[idx].evaluate();
+ }
+
+ satellite[satEpochIdx] = it->first;
+ i++;
+ } // end of walk through observations to record
+
+ // Get topocentric coords for given sat
+ try
+ {
+ Xvt svPos = ephStore.getPrnXvt(it->first.id, rod.time);
+ elevation[satEpochIdx]= antennaPos.elvAngle(svPos.x);
+ azimuth[satEpochIdx] = antennaPos.azAngle( svPos.x);
+ }
+ catch(EphemerisStore::NoEphemerisFound)
+ {
+ validAzEl[satEpochIdx]=false;
+ }
+ //std::cout << "i: (" << satEpochIdx << ")" << rod.time << std::endl;
+
+
+ epoch[satEpochIdx]=rod.time;
+
+ satEpochIdx++;
+ } // end of walk through prns at this epoch
+ } // end of walk through obs file
+
+
+
+ } // end of ObsArray::loadObsFile(...)
+
+ void ObsArray::edit(const std::valarray<bool> strikeList)
+ throw(ObsArrayException)
+ {
+ using namespace std;
+
+ if (epoch.size() != strikeList.size())
+ {
+ ObsArrayException e("Edit request has wrong size.");
+ GPSTK_THROW(e);
+ }
+
+ valarray<bool> keepList = !strikeList;
+
+ valarray<DayTime> newEpoch = epoch[keepList];
+ size_t newObsEpochCount = newEpoch.size();
+
+ epoch.resize(newObsEpochCount);
+ epoch = newEpoch;
+
+ valarray<SatID> newSatellite = satellite[keepList];
+ satellite.resize(newObsEpochCount);
+ satellite = newSatellite;
+
+ valarray<bool> newLLI = lli[keepList];
+ lli.resize(newObsEpochCount);
+ lli = newLLI;
+
+ valarray<double> newAz = azimuth[keepList];
+ azimuth.resize(newObsEpochCount);
+ azimuth = newAz;
+
+ valarray<double> newEl = elevation[keepList];
+ elevation.resize(newObsEpochCount);
+ elevation = newEl;
+
+ valarray<bool> newValidAzEl = validAzEl[keepList];
+ validAzEl.resize(newObsEpochCount);
+ validAzEl = newValidAzEl;
+
+ valarray<long> newPass = pass[keepList];
+ pass.resize(newObsEpochCount);
+ pass = newPass;
+
+ valarray<bool> keepObs;
+ keepObs.resize(numObsTypes*numSatEpochs);
+ for (size_t i=0; i<(numObsTypes*numSatEpochs); i+=numSatEpochs)
+ {
+ slice thisObsTypeSlice(i,i+numSatEpochs,1);
+ keepObs[thisObsTypeSlice]=keepList;
+ }
+ valarray<double> newObs =observation[keepObs];
+ observation.resize(newObs.size());
+ observation = newObs;
+
+ // Update public attributes
+ numSatEpochs = newObsEpochCount;
+
+ }
+
+ double ObsArray::getPassLength(long passNo)
+ {
+ // TODO: use find_first_of to smartly search over pass number.
+ // it doesn't seem to be working at least in gcc. :-(
+ // Again we must allocate space just to do a search!!
+
+ using namespace std;
+
+ valarray<bool> ptest = (pass==passNo);
+ valarray<DayTime> pepochs = epoch[ptest];
+ double length = pepochs[pepochs.size()-1] - pepochs[0];
+ return length;
+ }
+
+} // end namespace gpstk
+
+
diff --git a/dev/apps/multipath/ObsArray.hpp b/dev/apps/multipath/ObsArray.hpp
new file mode 100644
index 0000000..3433528
--- /dev/null
+++ b/dev/apps/multipath/ObsArray.hpp
@@ -0,0 +1,146 @@
+ #pragma ident "$Id:$"
+
+/**
+ * @file ObsArray.hpp
+ * Provides ability to operate mathematically on large, logical groups of observations
+ * Class declarations.
+ */
+
+#ifndef OBSARRAY_HPP
+#define OBSARRAY_HPP
+
+#include<map>
+#include<vector>
+#include<string>
+#include<valarray>
+
+#include "DayTime.hpp"
+#include "RinexEphemerisStore.hpp"
+#include "Exception.hpp"
+#include "Expression.hpp"
+#include "RinexObsHeader.hpp"
+#include "SatID.hpp"
+
+namespace gpstk
+{
+ typedef int ObsIndex;
+
+ /** @defgroup ObsGroup Storage and manipulation of general observations. */
+ //@{
+
+ /**
+ * This class provides the ability to quickly access and manipulate
+ * logical groups of observations. Observations can be any basic
+ * type, e.g., "P1", or a function of types, e.g., "P1-C1". The
+ * observations can be accessed by pass, by PRN, by time, or via
+ * as user-defined mask.
+ *
+ * Access to observations is provided via std::valarray .
+ * Therefore indexing
+ * can be performed by the user using standard mechanisms: operator[],
+ * slice_array, gslice_array, mask_array and indirect_array. Valarray
+ * which was designed "specifically for speed of the usual numeric
+ * operations." That quote is from p. 662 of Stroustrup's book
+ * "The C++ Programming Language," 3rd edition. That book explains
+ * valarray and how to use it. Such material explains how ObsArray
+ * works internally and how advanced use of ObsArray is accomplished.
+ */
+
+ class ObsArray
+ {
+ public:
+
+ NEW_EXCEPTION_CLASS(ObsArrayException, gpstk::Exception);
+
+ /**
+ * Constructor.
+ */
+ ObsArray(void);
+
+ /**
+ * This function notifies the object to track a particular RINEX
+ * data type. This function must be called before loading
+ * observations from file.
+ */
+ ObsIndex add(RinexObsHeader::RinexObsType type);
+
+ /**
+ * This function notifies the object to track functions of
+ * RINEX data types, e.g., "P1-C1". This function must be called
+ * before loading observations from a file.
+ */
+ ObsIndex add(const std::string& expression);
+
+ ObsIndex getNumObsTypes(void) const
+ { return numObsTypes; }
+
+ size_t getNumSatEpochs(void) const
+ { return numSatEpochs; }
+
+ /**
+ * This functions loads a RINEX obs and nav file. Both files
+ * should be from the same period.
+ */
+ void load(const std::string& obsfilename,
+ const std::string& navfilename);
+ void load(const char* obsfilename,
+ const char* navfilename)
+ {
+ load(std::string(obsfilename),std::string(navfilename));
+ }
+ void load(const std::vector<std::string>& obsList,
+ const std::vector<std::string>& navList);
+
+ /**
+ * This function removes observations which the input
+ * vallarray is "true".
+ */
+ void edit(const std::valarray<bool> strikeList)
+ throw(ObsArrayException);
+
+ double getPassLength(long passNo);
+
+ double& operator() (size_t r, size_t c)
+ { return observation[r*numObsTypes + c]; }
+
+ std::valarray<DayTime> epoch;
+ std::valarray<SatID> satellite;
+ std::valarray<double> observation;
+ std::valarray<bool> lli;
+ std::valarray<double> azimuth;
+ std::valarray<double> elevation;
+ std::valarray<long> pass;
+ std::valarray<bool> validAzEl;
+
+ /// The rate in second which observations were recorded
+ double interval;
+
+ /**
+ * This is true if the interval was not read from the header but
+ * instead calculated from the data.
+ */
+ bool intervalInferred;
+
+ private:
+
+ void loadObsFile(const std::string& obsfilename);
+
+ ObsIndex numObsTypes;
+ std::map<ObsIndex, RinexObsHeader::RinexObsType > basicTypeMap;
+ std::map<ObsIndex, bool> isBasic;
+ std::map<ObsIndex, Expression > expressionMap;
+
+ /**
+ * The number observation sets stored. Each set is derived
+ * from unique combination of satellite and nominal epoch.
+ */
+ size_t numSatEpochs;
+
+ RinexEphemerisStore ephStore;
+
+ }; // End class ObsArray
+
+ //@}
+} // End namespace gpstk
+
+#endif // OBSARRAY_HPP
diff --git a/dev/apps/multipath/SparseBinnedStats.hpp b/dev/apps/multipath/SparseBinnedStats.hpp
new file mode 100644
index 0000000..95fc85b
--- /dev/null
+++ b/dev/apps/multipath/SparseBinnedStats.hpp
@@ -0,0 +1,106 @@
+#pragma ident "$Id:$"
+
+/**
+ * @file SparseBinnedStats.hpp
+ * Generates statistics over a discrete set of conditions.
+ * Class declarations.
+ */
+
+#ifndef SPARSE_BINNED_STATS_HPP
+#define SPARSE_BINNED_STATS_HPP
+
+#include <map>
+
+#include "Stats.hpp"
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup math */
+ //@{
+
+ /**
+ * This class provides the ability to compute statistics for
+ * data sorted into one or more bins.
+ */
+
+ template <class T>
+ class SparseBinnedStats
+ {
+ public:
+
+ NEW_EXCEPTION_CLASS(SparseBinnedStatsException, gpstk::Exception);
+
+ struct binLimits
+ {
+ double lowerBound;
+ double upperBound;
+ bool within(double var)
+ {return ((var>=lowerBound)&&(var<upperBound)); }
+ };
+
+ /**
+ * Constructor.
+ * @param boundaryList defines the lower and upper bounds of each bin
+ */
+ SparseBinnedStats(void)
+ : rejectedCount(0), usedCount(0)
+ {}
+
+ size_t addBin( double lower, double upper)
+ {
+ binLimits newBin;
+ newBin.lowerBound = lower;
+ newBin.upperBound = upper;
+ size_t entryNo = bins.size();
+ bins.push_back(newBin);
+ stats.push_back(Stats<T>());
+ return entryNo;
+ }
+
+
+ void addData(const std::valarray<T>& statData,
+ const std::valarray<T> binData)
+ {
+ size_t s = statData.size();
+
+ if (s!=binData.size())
+ {
+ SparseBinnedStatsException e("Input arrays not the same length.");
+ GPSTK_THROW(e);
+ }
+
+ bool thisRejected;
+
+ for (size_t i=0; i<s; i++)
+ {
+ thisRejected=true;
+ for (size_t j=0; j<bins.size(); j++)
+ {
+ if ( bins[j].within(binData[i]) )
+ {
+ stats[j].Add(statData[i]);
+ thisRejected = false;
+ }
+
+ }
+ if (thisRejected)
+ rejectedCount++;
+ else
+ usedCount++;
+ }
+
+
+ };
+
+ int rejectedCount, usedCount;
+
+ std::vector<binLimits> bins;
+ std::vector< Stats< T > > stats;
+
+ }; // End class SparseBinnedStats
+
+ //@}
+} // End namespace gpstk
+
+#endif // SPARSE_BINNED_STATS_HPP
diff --git a/dev/apps/multipath/ValarrayUtils.cpp b/dev/apps/multipath/ValarrayUtils.cpp
new file mode 100644
index 0000000..00a8858
--- /dev/null
+++ b/dev/apps/multipath/ValarrayUtils.cpp
@@ -0,0 +1,15 @@
+#pragma ident "$Id:$"
+
+/**
+ * @file ValarryUtils.cpp
+ * Namespace of functions that work with valarrays.
+ */
+
+#include "ValarrayUtils.hpp"
+
+namespace gpstk::ValarrayUtils
+{
+
+} // end namespace gpstk::ValarrayUtils
+
+
diff --git a/dev/apps/multipath/ValarrayUtils.hpp b/dev/apps/multipath/ValarrayUtils.hpp
new file mode 100644
index 0000000..bf00fee
--- /dev/null
+++ b/dev/apps/multipath/ValarrayUtils.hpp
@@ -0,0 +1,117 @@
+#pragma ident "$Id:$"
+
+/**
+ * @file ValarrayUtils.cpp
+ * Namespace of functions that work with valarrays.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+/**
+ * @file ValarrayUtils.hpp
+ * ValarrayUtils namespace and GPSTK valarray utility functions
+ */
+
+#ifndef GPSTK_VALARRAYUTILS_HPP
+#define GPSTK_VALARRAYUTILS_HPP
+
+#include <iostream>
+
+#include <valarray>
+#include <set>
+#include <vector>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /**
+ * Provides basic operations available in matrix languages to
+ * the valarray template.
+ */
+ namespace ValarrayUtils
+ {
+ /** @defgroup valarrayutilsgroup Valarray Manipulation Tools */
+ //@{
+
+ /// This is thrown instread of a std::exception when a
+ /// gpstk::ValarrayUtils function fails.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(ValarrayException, Exception);
+ //@}
+
+ template<class T> std::ostream& operator<<(std::ostream& ostr,
+ const std::valarray<T>& x)
+ {
+ for (size_t i=0; i<x.size(); i++)
+ ostr << x[i] << " ";
+ return ostr;
+ // return copy(&x[0], &x[x.size()], std::ostream_iterator<T>(ostr));
+ }
+
+ template<class T> std::ostream& operator<<(std::ostream& ostr,
+ const std::set<T>& x)
+ {
+ using namespace std;
+ for (typename set<T>::const_iterator i = x.begin(); i!=x.end(); i++)
+ ostr << *i << " ";
+ return ostr;
+ // return copy(x.begin(), x.end(), std::ostream_iterator<T>(ostr));
+ }
+
+ template<class T> std::ostream& operator<<(std::ostream& ostr,
+ const std::vector<T>& x)
+ {
+ using namespace std;
+ for (typename vector<T>::const_iterator i = x.begin(); i!=x.end(); i++)
+ ostr << *i << " ";
+ return ostr;
+ // return copy(x.begin(), x.end(), std::ostream_iterator<T>(ostr));
+ }
+
+ template<class T> std::set<T> unique(const std::valarray<T> & rhs)
+ {
+ using namespace std;
+ int i;
+
+ valarray<T> newArray;
+
+ set<T> newSet;
+
+ for (i=0; i<rhs.size(); i++)
+ {
+ //cout << rhs[i] << endl;
+ newSet.insert(rhs[i]);
+ }
+
+ return newSet;
+ }
+
+ } // namespace ValarrayUtils
+
+} // namespace gpstk
+#endif // GPSTK_VALARRAYUTILS_HPP
+
+
+
diff --git a/dev/apps/multipath/mpsolve.cpp b/dev/apps/multipath/mpsolve.cpp
new file mode 100644
index 0000000..8fb7e50
--- /dev/null
+++ b/dev/apps/multipath/mpsolve.cpp
@@ -0,0 +1,343 @@
+#pragma ident "$Id: $"
+
+#include <iostream>
+
+#include "Exception.hpp"
+#include "DayTime.hpp"
+#include "CommandOptionParser.hpp"
+#include "StringUtils.hpp"
+#include "ValarrayUtils.hpp"
+#include "ObsArray.hpp"
+#include "SparseBinnedStats.hpp"
+
+
+void dumpRaw(std::ostream& ostr, const gpstk::ObsArray& oa, bool numeric);
+void writeStats(std::ostream& ostr,
+ const gpstk::SparseBinnedStats<double>& sbs,
+ bool numeric, bool elevation=true);
+
+using namespace std;
+using namespace gpstk;
+using namespace ValarrayUtils;
+
+
+int main(int argc, char *argv[])
+{
+
+ try {
+
+ // Default difference that isolates multipath
+ std::string mp_formula="P1-wl1*L1+2/(1-gamma)*(wl1*L1-wl2*L2)";
+ // Default minimum length for a pass for use solution
+ double minPassLength = 300;
+ double angInterval = 15;
+
+ CommandOptionNoArg helpOption('h',"help","Display argument list.",false);
+ CommandOptionNoArg verboseOption('v',"verbose",
+ "Verbose display of processing status.",false);
+ CommandOptionNoArg rawOption('r',"raw",
+ "Output raw combinations not statistics",false);
+
+ CommandOptionNoArg numericOption('n',"numeric",
+ "Format the output for numerical packages",false);
+ CommandOptionNoArg azimuthOption('a',"azimuth",
+ "Compute statistics binned by azimuth instead of elevation",false);
+ CommandOptionWithAnyArg obsFileOption('o',"obs","RINEX observation file",true);
+ CommandOptionWithAnyArg navFileOption('e',"nav",
+ "RINEX navigation (ephemeris) file",true);
+ CommandOptionWithAnyArg binOption('b',"bin",
+ "Defines a bin. Eliminates the default bins. Repeated use of this option defines additional bins. Value is min,max. Ex.: -b 10,90",false);
+
+ CommandOptionWithAnyArg mpOption('m',"multipath",
+ "Dual frequency multipath combination to use. Default is " +
+ mp_formula,false);
+ mpOption.setMaxCount(1);
+
+ CommandOptionWithNumberArg
+ lengthOption('l',"length",string("Minimum length in seconds for an ")+
+ string("overhead pass to be used. Default value is ") +
+ StringUtils::asString(minPassLength, 1) +
+ string(" seconds."), false);
+ lengthOption.setMaxCount(1);
+
+ CommandOptionWithNumberArg
+ angWidthOption('w',"width",string("Width of angular bins to use.")+
+ string("If used, defines regular, nonoverlapping bins of ") +
+ string("azimuth and/or elevation. Default value is ") +
+ StringUtils::asString(angInterval, 2) +
+ string(" degrees."), false);
+ angWidthOption.setMaxCount(1);
+
+ CommandOptionParser cop("GPSTk Multipath Environment Evaluator. Computes statistical model of a dual frequency multipath combination. The model is a function of azimuth and/or elevation. By default the model presented is second order statistics (std. deviation), sorted into bins of elevation.");
+
+ cop.parseOptions(argc, argv);
+
+ if (cop.hasErrors()) {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ return 1;
+ }
+
+ if(helpOption.getCount())
+ {
+ cop.displayUsage(cout);
+ return 0;
+ }
+
+ bool verbose=(verboseOption.getCount()>0);
+ bool numeric=(numericOption.getCount()>0);
+
+ DayTime now;
+
+ if (!numeric)
+ {
+ cout << "Multipath Environment Evaluation Tool, a GPSTk utility"
+ << endl << endl;
+ }
+
+ if ( (verbose) && (!numeric))
+ {
+ cout << "Loading obs file(s): " << obsFileOption.getValue() << endl;
+ cout << "Loading nav file(s): " << navFileOption.getValue() << endl;
+ }
+
+ ObsArray oa;
+
+ if (mpOption.getCount()>0)
+ mp_formula = mpOption.getValue()[0];
+
+ oa.add(mp_formula);
+ oa.load(obsFileOption.getValue(),navFileOption.getValue());
+ size_t originalLength = oa.getNumSatEpochs();
+
+ if ((!numeric)&& (verbose))
+ cout << "Editing points with loss of lock indication and pass with short lengths." << endl;
+
+ std::valarray<bool> removePts = oa.lli;
+ if (lengthOption.getCount()>0)
+ minPassLength = StringUtils::asDouble(lengthOption.getValue()[0]);
+
+ set<long> allpasses = unique(oa.pass);
+ for (set<long>::iterator i=allpasses.begin();
+ i!=allpasses.end(); i++)
+ {
+ if (oa.getPassLength(*i)<minPassLength)
+ {
+ removePts = removePts || (oa.pass==*i);
+ }
+ }
+
+ oa.edit(removePts);
+ allpasses = unique(oa.pass); // TODO: ObsArray should maintain its own pass list.
+
+ size_t editedLength = oa.getNumSatEpochs();
+ if (!numeric)
+ {
+ cout << "Edited " << (originalLength-editedLength) << " points (";
+ cout << setprecision(2)
+ << 100.*(originalLength-editedLength)/originalLength;
+ cout << "%)." << endl;
+ }
+
+ if (!numeric)
+ {
+ cout << "Removing mean of each pass." << endl;
+ }
+
+ for (set<long>::iterator iPass=allpasses.begin();
+ iPass!=allpasses.end() ; iPass++)
+ {
+ valarray<bool> passMask = (oa.pass==*iPass);
+ valarray<double> mpVals = oa.observation[passMask];
+ valarray<double> binVals(mpVals.size());
+ double mean = mpVals.sum() / mpVals.size();
+ mpVals -= mean;
+ oa.observation[passMask]=mpVals;
+ }
+
+ allpasses = unique(oa.pass);
+ if (!numeric)
+ {
+ if (verbose)
+ {
+ cout <<"Using this combination for multipath: " <<mp_formula<<endl;
+ cout << "Data collection interval is " << setprecision(3)
+ << oa.interval << " seconds";
+ if (oa.intervalInferred)
+ cout << ", inferred from data";
+ else
+ cout << ", read from file headers";
+ cout << "." <<endl;
+ }
+ cout << "Overhead passes used: ";
+ cout << allpasses.size() << endl;
+ }
+
+
+ if (rawOption.getCount()>0)
+ {
+ dumpRaw(cout, oa, numeric);
+ }
+ else
+ {
+ bool byAzimuth = (azimuthOption.getCount()>0);
+ if (angWidthOption.getCount()>0)
+ angInterval = StringUtils::asDouble(angWidthOption.getValue()[0]);
+ bool regularIntervals = (byAzimuth || (angWidthOption.getCount()>0));
+
+ SparseBinnedStats<double> sbs;
+ if (binOption.getCount()==0)
+ {
+ if (!byAzimuth)
+ {
+ if (!regularIntervals)
+ {
+ sbs.addBin(0,90);
+ sbs.addBin(10,30);
+ sbs.addBin(20,40);
+ sbs.addBin(40,90);
+ sbs.addBin(10,90);
+ }
+ else
+ {
+ for (double d=0; d<90; d+=angInterval)
+ sbs.addBin(d,d+angInterval);
+ }
+ }
+ else
+ {
+ for (double d=0; d<359; d+=angInterval)
+ sbs.addBin(d,d+angInterval);
+ }
+ }
+ else
+ {
+ for (int k=0; k<binOption.getValue().size(); k++)
+ {
+ string temp = binOption.getValue()[k];
+ string lowerWord = StringUtils::word(temp,0,',');
+ string upperWord = StringUtils::word(temp,1,',');
+ sbs.addBin(StringUtils::asDouble(lowerWord),
+ StringUtils::asDouble(upperWord));
+ }
+ }
+
+ for (set<long>::iterator iPass=allpasses.begin();
+ iPass!=allpasses.end() ; iPass++)
+ {
+ valarray<bool> passMask = (oa.pass==*iPass);
+ valarray<double> mpVals = oa.observation[passMask];
+ valarray<double> binVals(mpVals.size());
+ if (!byAzimuth)
+ binVals = oa.elevation[passMask];
+ else
+ binVals = oa.azimuth[passMask];
+
+ sbs.addData(mpVals, binVals);
+ }
+
+ writeStats(cout, sbs, numeric, !byAzimuth);
+ }
+
+
+ DayTime then;
+
+ if ( (verbose) && (!numeric))
+ cout << "Processing complete in " << then - now << " seconds." << endl;
+
+ }
+ catch (Exception& e)
+ {
+ cerr << e << endl;
+ }
+
+ return 0;
+}
+
+
+void dumpRaw(std::ostream& ostr, const ObsArray& oa, bool numeric)
+{
+
+ if (numeric)
+ {
+ ostr << "# GPS Week, Seconds of week, Sat. id, Sat. system, Pass, ";
+ ostr << "Multipath value, LLI indicator, Azimuth, Elevation " << endl;
+ }
+
+ for (size_t i=0; i<oa.observation.size(); i++)
+ {
+ if (!numeric)
+ {
+ ostr << oa.epoch[i] << " " << oa.satellite[i] << " ";
+ ostr << "Pass " << oa.pass[i] << " ";
+ ostr << setprecision(12) << oa.observation[i];
+ if (oa.validAzEl[i])
+ {
+ ostr << setprecision(5);
+ ostr << " Az " << oa.azimuth[i];
+ ostr << " El " << oa.elevation[i];
+ }
+ if (oa.lli[i])
+ ostr << " <- Loss of lock";
+
+ ostr << std::endl;
+ }
+ else
+ {
+ ostr << setprecision(4) << oa.epoch[i].GPSfullweek() << " ";
+ ostr << setprecision(6) << oa.epoch[i].GPSsow() << " ";
+ ostr << oa.satellite[i].id << " ";
+ ostr << (int) oa.satellite[i].system << " ";
+ ostr << oa.pass[i] << " ";
+ ostr << setprecision(12) << oa.observation[i] << " ";
+ ostr << (int) oa.lli[i];
+ if (oa.validAzEl[i])
+ {
+ ostr << setprecision(5);
+ ostr << " " << oa.azimuth[i];
+ ostr << " " << oa.elevation[i];
+ }
+
+ ostr << std::endl;
+ }
+ }
+}
+
+void writeStats(std::ostream& ostr, const SparseBinnedStats<double>& mstats,
+ bool numeric, bool elevation)
+{
+ std::string angDesc = "elevation";
+ if (!elevation) angDesc = "azimuth";
+
+ if(!numeric)
+ {
+ ostr << endl;
+
+ ostr << "Standard deviation of bins sorted by " << angDesc
+ << "." << endl << endl;
+
+ for (int i=0; i<mstats.stats.size(); i++)
+ {
+ ostr << "From " << setw(3) << mstats.bins[i].lowerBound;
+ ostr << " to " << setw(3) << mstats.bins[i].upperBound;
+ ostr << ": " << setprecision(3) << mstats.stats[i].StdDev() << endl;
+ }
+ ostr << endl;
+
+ ostr << "Total points used: " << mstats.usedCount << endl;
+ ostr << " rejected: " << mstats.rejectedCount << endl;
+ }
+ else
+ {
+ ostr << "# Bins of " << angDesc << " -- columns are min, max, standard deviation " << endl;
+ for (int i=0; i<mstats.stats.size(); i++)
+ {
+ ostr << setw(3) << mstats.bins[i].lowerBound << " ";
+ ostr << setw(3) << mstats.bins[i].upperBound << " ";
+ ostr << setprecision(3) << mstats.stats[i].StdDev() << endl;
+ }
+ }
+
+
+
+}
diff --git a/dev/apps/multipath/testObsArray.cpp b/dev/apps/multipath/testObsArray.cpp
new file mode 100644
index 0000000..ee59c62
--- /dev/null
+++ b/dev/apps/multipath/testObsArray.cpp
@@ -0,0 +1,80 @@
+#include <iostream>
+#include <set>
+
+#include "SatID.hpp"
+#include "DayTime.hpp"
+#include "ObsArray.hpp"
+#include "ValarrayUtils.hpp"
+
+
+using namespace std;
+using namespace gpstk;
+using namespace ValarrayUtils;
+
+int main(int argc, char* argv[])
+{
+ try {
+
+ ObsArray oa;
+
+ cout << oa.add(RinexObsHeader::C1) << endl;
+ cout << oa.add(RinexObsHeader::P2) << endl;
+ cout << oa.add("C1-P2") << endl;
+ cout << oa.add("P1-wl1*L1-1/(1-gamma)*(wl1*L1-wl2*L2)");
+
+ cout << "There are " << oa.getNumObsTypes() << " obs indices." << endl;
+
+ cout << "Reading input files." << endl;
+// oa.load("netrs027.06o.30s","netrs027.06n");
+ oa.load("arl_256.06o","arl_256.06n");
+ cout << "Done reading." << endl;
+
+ cout << "Values directly using operator(size_t, size_t): " << endl;
+ for (int j=0; j <oa.getNumObsTypes(); j++)
+ for (int i=0; i<12; i++)
+ {
+ cout << "(" << i << "," << j << ")";
+ cout << setprecision(12) << oa(i,j) << endl;
+ }
+
+ cout << "Getting values with a slice: " << endl;
+ slice myslice(0,20,1);
+ valarray <double> copyObs = oa.observation[myslice];
+ slice_array <double> obsSample = oa.observation[myslice];
+ cout << "There are " << copyObs.size() << " elements in this slice." << endl;
+ for (int i=0; i<20; i++)
+ cout << copyObs[i] << endl;
+
+ cout << "Operations on a slice: " << endl;
+ cout << "Mean value is: " << copyObs.sum() / copyObs.size() << endl;
+ //cout << "Mean value is: " << oa.observation[myslice].sum() / oa.observation[myslice].size() << endl;
+
+ SatID thisPrn(9,SatID::systemGPS);
+ valarray<bool> prnIdx = (oa.satellite==thisPrn);
+ valarray<double> prnObs = oa.observation[prnIdx];
+ valarray<DayTime> prnTime = oa.epoch[prnIdx];
+ cout << "Data for PRN 9:" << endl;
+ for (int i=0; i<12; i++)
+ {
+ cout << prnTime[i].GPSfullweek() << " ";
+ cout << prnTime[i].GPSsow() << " ";
+ cout << prnObs[i] << endl;
+ }
+
+ set<DayTime> allepochs = unique(oa.epoch);
+ cout << "Unique epochs:" << endl << allepochs << endl;
+
+ set<SatID> allprns = unique(oa.satellite);
+ cout << "Unique satellites: " << endl << allprns << endl;
+
+ set<long> allpasses = unique(oa.pass);
+ cout << "Unique passes: " << endl << allpasses << endl;
+
+ exit(0);
+ }
+ catch(Exception& ex)
+ {
+ cerr << "Exception caught" << endl;
+ cerr << ex << endl;
+ }
+}
diff --git a/dev/apps/multipath/testSparseBinnedStats.cpp b/dev/apps/multipath/testSparseBinnedStats.cpp
new file mode 100644
index 0000000..f48809a
--- /dev/null
+++ b/dev/apps/multipath/testSparseBinnedStats.cpp
@@ -0,0 +1,59 @@
+#include <iostream>
+#include <set>
+
+#include "ValarrayUtils.hpp"
+#include "SparseBinnedStats.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace ValarrayUtils;
+
+int main(void)
+{
+ try
+ {
+
+ double mpSrc[]= { 0.9, -1.6, 1.8, -.5,
+ 1.0, 1.1, -.5, -.3,
+ .3, -.25, 0.4, .05 };
+
+ valarray<double> mpVals(mpSrc,12);
+
+ double elSrc[]= { 5, 6, 7, 8,
+ 11, 30, 34, 42,
+ 50, 60, 70, 80 };
+
+ valarray<double> elVals(elSrc,12);
+
+ SparseBinnedStats<double> mstats;
+ mstats.addBin(0,10);
+ mstats.addBin(10,45);
+ mstats.addBin(45, 90);
+ mstats.addBin(10, 90);
+
+ cout << "# bins: " << mstats.bins.size() << endl;
+
+ mstats.addData(mpVals, elVals);
+
+ cout << "MP data: " << endl << mpVals << endl;
+ cout << "Elevation data: " << endl << elVals << endl;
+
+ for (int i=0; i<mstats.stats.size(); i++)
+ {
+ cout << "From " << mstats.bins[i].lowerBound;
+ cout << " to " << mstats.bins[i].upperBound;
+ cout << ": " << mstats.stats[i].StdDev() << endl;
+ }
+ cout << "Total points used: " << mstats.usedCount << endl;
+ cout << " rejected: " << mstats.rejectedCount << endl;
+
+ }
+ catch (Exception& e)
+ {
+ cerr << e << endl;
+ }
+
+ return 0;
+}
+
+
diff --git a/dev/apps/multipath/testValarrayUtils.cpp b/dev/apps/multipath/testValarrayUtils.cpp
new file mode 100644
index 0000000..b877ffc
--- /dev/null
+++ b/dev/apps/multipath/testValarrayUtils.cpp
@@ -0,0 +1,25 @@
+#include "ValarrayUtils.hpp"
+
+#include <iostream>
+#include <set>
+
+using namespace std;
+using namespace gpstk;
+using namespace ValarrayUtils;
+
+int main(void)
+{
+ int theSet[]= { 1, 2, 2, 2, 3, 4, 4, 5};
+ valarray<int> v1(theSet,8);
+
+ cout << "Original: " << endl << v1 << endl;
+
+ set<int> s1=unique(v1);
+
+ cout << "Unique:" << endl << s1 << endl;
+
+ cout << "End of test." << endl;
+ return 0;
+}
+
+
diff --git a/dev/apps/positioning/Jamfile b/dev/apps/positioning/Jamfile
new file mode 100644
index 0000000..6cf9a53
--- /dev/null
+++ b/dev/apps/positioning/Jamfile
@@ -0,0 +1,9 @@
+SubDir TOP apps positioning ;
+
+GPSLinkLibraries rinexpvt poscvt PRSolve posInterp : gpstk ;
+BonkForte ; # bleah.
+
+GPSMain rinexpvt : rinexpvt.cpp ;
+GPSMain poscvt : poscvt.cpp ;
+GPSMain PRSolve : PRSolve.cpp ;
+GPSMain posInterp : posInterp.cpp ;
diff --git a/dev/apps/positioning/Makefile.am b/dev/apps/positioning/Makefile.am
new file mode 100644
index 0000000..a0dad4d
--- /dev/null
+++ b/dev/apps/positioning/Makefile.am
@@ -0,0 +1,10 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = poscvt rinexpvt PRSolve posInterp
+
+poscvt_SOURCES = poscvt.cpp
+rinexpvt_SOURCES = rinexpvt.cpp
+PRSolve_SOURCES = PRSolve.cpp
+posInterp_SOURCES = posInterp.cpp
diff --git a/dev/apps/positioning/PRSolve.cpp b/dev/apps/positioning/PRSolve.cpp
new file mode 100644
index 0000000..34d52fe
--- /dev/null
+++ b/dev/apps/positioning/PRSolve.cpp
@@ -0,0 +1,2107 @@
+// $Id$
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file PRSolve.cpp Read a RINEX observation file and compute an autonomous GPS
+ * pseudorange position solution, using a RAIM-like algorithm to eliminate outliers.
+ */
+
+#define RANGECHECK 1 // make Matrix and Vector check limits
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexSatID.hpp"
+#include "CommandOptionParser.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexMetStream.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetData.hpp"
+#include "SP3Stream.hpp"
+#include "BCEphemerisStore.hpp"
+#include "SP3EphemerisStore.hpp"
+#include "TropModel.hpp"
+#include "Position.hpp"
+#include "geometry.hpp" // for DEG_TO_RAD
+
+#include "Matrix.hpp"
+#include "PRSolution.hpp"
+#include "Stats.hpp"
+#include "EphemerisRange.hpp"
+
+#include <time.h>
+#include <string>
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+ // prgm data
+string PrgmName("PRSolve");
+string PrgmVers("2.1 5/07");
+
+// data input from command line
+typedef struct Configuration {
+ // input files
+ string ObsDirectory,NavDirectory,MetDirectory;
+ vector<string> InputObsName;
+ vector<string> InputNavName;
+ vector<string> InputMetName;
+ // configuration
+ double rmsLimit;
+ double SlopeLimit;
+ bool algebra;
+ int nIter;
+ double convLimit;
+ int maxReject;
+ bool residCrit;
+ bool returnatonce;
+ double elevLimit;
+ // output
+ Position knownpos;
+ Matrix<double> Rot;
+ bool APSout;
+ string ordFile;
+ string OutRinexObs;
+ string HDPrgm; // header of output RINEX file
+ string HDRunby;
+ string HDObs;
+ string HDAgency;
+ string HDMarker;
+ string HDNumber;
+ int NrecOut;
+ DayTime FirstEpoch,LastEpoch;
+ string timeFormat;
+ bool Debug,Verbose;
+ // data flow
+ double ith;
+ DayTime Tbeg, Tend;
+ // output files
+ string LogFile;
+ ofstream oflog,oford;
+ // processing
+ double DataInt;
+ int Freq;
+ bool UseCA,ForceCA;
+ vector<SatID> ExSV;
+ string TropType;
+ double defaultT,defaultPr,defaultRH;
+ TropModel *pTropModel;
+ list<RinexMetData> MetStore;
+ // estimate DT from data
+ double estdt[9];
+ int ndt[9];
+} Config;
+
+Config C;
+
+// data used in program
+const double CMPS=299792458.0;
+const double CFF=CMPS/10.23e6;
+const double F1=154.0;
+const double F2=120.0;
+const double wl1=CFF/F1;
+const double wl2=CFF/F2;
+const double F1F2=(F1/F2)*(F1/F2);
+const double alpha=(F1F2 - 1.0);
+const double if1r=1.0/(1.0-(F2/F1)*(F2/F1));
+const double if2r=1.0/(1.0-(F1/F2)*(F1/F2));
+clock_t totaltime;
+string Title,filename;
+DayTime CurrEpoch, PrgmEpoch, PrevEpoch;
+
+// data
+int Nsvs;
+EphemerisStore *pEph;
+ZeroTropModel TMzero;
+SimpleTropModel TMsimple;
+SaasTropModel TMsaas;
+GGTropModel TMgg;
+GGHeightTropModel TMggh;
+NBTropModel TMnb;
+
+// Solution and covariance (prsol for RAIM, Solution and Covariance for AutonPRSol)
+PRSolution prsol; // this will always be the RAIM result
+Vector<double> Solution; // this will always be the AutonPRS result
+Matrix<double> Covariance; // this will always be the AutonPRS result
+
+// Solution and residual statistics:
+// total number of epochs
+long nS,nSS;
+// simple average (S : one file; SS : all files)...
+Stats<double> SA[3],SR[3],SSA[3],SSR[3]; // solution (XYZ) Auto and RAIM
+Stats<double> SAPR[3],SRPR[3],SSAPR[3],SSRPR[3]; // XYZ residuals
+Stats<double> SANE[3],SRNE[3],SSANE[3],SSRNE[3]; // NEU residuals
+// ... and weighted average solution, both Auto and RAIM...
+Matrix<double> PA,PR,PPA,PPR; // inverse covariance
+Vector<double> zA,zR,zzA,zzR; // 'state'=(inverse covariance * state)
+// ... and weighted average residuals APR,RPR.
+Matrix<double> PAPR,PRPR,PANE,PRNE,PPAPR,PPRPR,PPANE,PPRNE;
+Vector<double> zAPR,zRPR,zANE,zRNE,zzAPR,zzRPR,zzANE,zzRNE;
+
+//------------------------------------------------------------------------------------
+// prototypes
+int ReadFile(int nfile) throw(Exception);
+int SolutionAlgorithm(vector<SatID>& Sats,
+ vector<double>& PRanges,
+ double& RMSresid) throw(Exception);
+int AfterReadingFiles(void) throw(Exception);
+void PrintStats(Stats<double> S[3],
+ Matrix<double> &P,
+ Vector<double> &z,
+ long n,
+ string m,
+ char c0='X', char c1='Y', char c2='Z') throw(Exception);
+void setWeather(DayTime& time, TropModel *pTropModel);
+int GetCommandLine(int argc, char **argv) throw(Exception);
+void DumpConfiguration(ostream& os) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+int FillEphemerisStore(const vector<string>& files, SP3EphemerisStore& PE,
+ BCEphemerisStore& BCE) throw(Exception);
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ totaltime = clock();
+ int iret;
+
+ // initialization
+ CurrEpoch = PrevEpoch = DayTime::BEGINNING_OF_TIME;
+ SP3EphemerisStore SP3EphList;
+ BCEphemerisStore BCEphList;
+
+ // Title and description
+ Title = PrgmName + ", part of the GPS ToolKit, Ver " + PrgmVers + ", Run ";
+ time_t timer;
+ struct tm *tblock;
+ timer = time(NULL);
+ tblock = localtime(&timer);
+ PrgmEpoch.setYMDHMS(1900+tblock->tm_year,1+tblock->tm_mon,
+ tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
+ Title += PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S\n");
+ cout << Title;
+
+ // get command line
+ iret=GetCommandLine(argc, argv);
+ if(iret < 0) return iret;
+ // NB save iret until after DumpConfiguration()
+
+ // update configuration of PRSolution
+ if(C.Verbose) {
+ prsol.pDebugStream = &C.oflog;
+ prsol.Debug = true;
+ }
+ prsol.RMSLimit = C.rmsLimit;
+ prsol.SlopeLimit = C.SlopeLimit;
+ prsol.Algebraic = C.algebra;
+ prsol.ResidualCriterion = C.residCrit;
+ prsol.ReturnAtOnce = C.returnatonce;
+ prsol.NSatsReject = C.maxReject;
+ prsol.MaxNIterations = C.nIter;
+ prsol.ConvergenceLimit = C.convLimit;
+
+ // iret comes from GetCommandLine
+ if(iret == 0) DumpConfiguration(C.oflog);
+ else return iret;
+
+ // get nav files and build EphemerisStore
+ int nread = FillEphemerisStore(C.InputNavName, SP3EphList, BCEphList);
+ C.oflog << "Added " << nread << " ephemeris files to store.\n";
+ SP3EphList.dump(0,C.oflog);
+ BCEphList.dump(0,C.oflog);
+ if(SP3EphList.size() > 0) pEph=&SP3EphList;
+ else if(BCEphList.size() > 0) {
+ BCEphList.SearchNear();
+ //BCEphList.SearchPast();
+ pEph=&BCEphList;
+ }
+ else {
+ C.oflog << "Failed to read ephemeris data. Abort." << endl;
+ return -1;
+ }
+
+ // get met files and build MetStore
+ if(C.InputMetName.size() > 0) {
+ for(int i=0; i<C.InputMetName.size(); i++) {
+ RinexMetStream metstrm(C.InputMetName[i].c_str());
+ RinexMetHeader methead;
+ RinexMetData metdata;
+
+ metstrm >> methead;
+
+ while(metstrm >> metdata)
+ C.MetStore.push_back(metdata);
+
+ metstrm.close();
+ } // end loop over InputMetName
+
+ // sort the store on time
+ C.MetStore.sort();
+
+ // dump the met data
+ if(C.Debug) {
+ C.oflog << "Dump of meteorological data store ("
+ << C.MetStore.size() << "):\n";
+ list<RinexMetData>::const_iterator it = C.MetStore.begin();
+ for( ; it != C.MetStore.end(); it++) {
+ //it->dump(C.oflog);
+ C.oflog
+ << it->time.printf("%04Y/%02m/%02d//%02H:%02M:%.3f = %04F %10.3g")
+ << fixed << setprecision(1);
+ RinexMetData::RinexMetMap::const_iterator jt=it->data.begin();
+ for( ; jt != it->data.end(); jt++) {
+ C.oflog << " " << RinexMetHeader::convertObsType(jt->first)
+ << " = " << setw(6) << jt->second;
+ }
+ C.oflog << endl;
+ }
+ C.oflog << "End dump of meteorological data store." << endl;
+ }
+
+ } // end InputMetName processing
+
+ // assign trop model
+ if(C.TropType == string("ZR")) C.pTropModel = &TMzero;
+ if(C.TropType == string("BL")) C.pTropModel = &TMsimple;
+ if(C.TropType == string("SA") || C.TropType == string("NB")) {
+ if(C.TropType == string("SA")) C.pTropModel = &TMsaas;
+ if(C.TropType == string("NB")) C.pTropModel = &TMnb;
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ C.pTropModel->setReceiverLatitude(C.knownpos.getGeodeticLatitude());
+ C.pTropModel->setReceiverHeight(C.knownpos.getHeight());
+ }
+ else {
+ C.pTropModel->setReceiverLatitude(0.0);
+ C.pTropModel->setReceiverHeight(0.0);
+ C.oflog << "Warning - Saastamoinen and New B tropospheric models require "
+ << "latitude, height and day of year - guessing." << endl;
+ }
+ if(C.Tbeg > DayTime(DayTime::BEGINNING_OF_TIME))
+ C.pTropModel->setDayOfYear(C.Tbeg.DOY());
+ else if(C.Tend < DayTime(DayTime::END_OF_TIME))
+ C.pTropModel->setDayOfYear(C.Tend.DOY());
+ else
+ C.pTropModel->setDayOfYear(100);
+ }
+ if(C.TropType == string("GG")) C.pTropModel = &TMgg;
+ if(C.TropType == string("GGH")) C.pTropModel = &TMggh;
+ // set the default weather in the model
+ C.pTropModel->setWeather(C.defaultT,C.defaultPr,C.defaultRH);
+
+ // compute rotation XYZ->NEU at known position
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ double lat=C.knownpos.geodeticLatitude() * DEG_TO_RAD;
+ double lon=C.knownpos.longitude() * DEG_TO_RAD;
+ double ca = ::cos(lat);
+ double sa = ::sin(lat);
+ double co = ::cos(lon);
+ double so = ::sin(lon);
+ // Rotation matrix (R*XYZ=NEU) :
+ C.Rot = Matrix<double>(3,3);
+ // NEU
+ C.Rot(2,0) = ca*co; C.Rot(2,1) = ca*so; C.Rot(2,2) = sa;
+ C.Rot(1,0) = -so; C.Rot(1,1) = co; C.Rot(1,2) = 0.0;
+ C.Rot(0,0) = -sa*co; C.Rot(0,1) = -sa*so; C.Rot(0,2) = ca;
+ }
+
+ if(!C.ordFile.empty()) {
+ if(C.knownpos.getCoordinateSystem() == Position::Unknown) {
+ C.oflog << "Error - ORD output to file (" << C.ordFile << ") requires "
+ << " --PosXYZ input. Abort output of ORDs." << endl;
+ C.ordFile = string();
+ }
+ else {
+ C.oford.open(C.ordFile.c_str(),ios::out);
+ if(C.oford.fail()) {
+ C.oflog << "Failed to open ORD file " << C.ordFile << endl;
+ C.ordFile = string();
+ }
+ else C.oford
+ << "# sat week seconds_wk ok? elev ORD(C/A) ORD(P)" << endl;
+ }
+ }
+
+ // initialize global solution and residual statistics
+ // not necessary SSA[0].Reset(); SSA[1].Reset(); SSA[2].Reset();
+ // not necessary SSR[0].Reset(); SSR[1].Reset(); SSR[2].Reset();
+ nSS = 0;
+ PPA = Matrix<double>(3,3,0.0);
+ PPR = Matrix<double>(3,3,0.0);
+ zzA = Vector<double>(3,0.0);
+ zzR = Vector<double>(3,0.0);
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ if(C.APSout) {
+ // not necessary SSAPR[0].Reset(); SSAPR[1].Reset(); SSAPR[2].Reset();
+ // not necessary SSANE[0].Reset(); SSANE[1].Reset(); SSANE[2].Reset();
+ PPAPR = Matrix<double>(3,3,0.0);
+ PPANE = Matrix<double>(3,3,0.0);
+ zzAPR = Vector<double>(3,0.0);
+ zzANE = Vector<double>(3,0.0);
+ }
+ // not necessary SSRPR[0].Reset(); SSRPR[1].Reset(); SSRPR[2].Reset();
+ // not necessary SSRNE[0].Reset(); SSRNE[1].Reset(); SSRNE[2].Reset();
+ PPRPR = Matrix<double>(3,3,0.0);
+ PPRNE = Matrix<double>(3,3,0.0);
+ zzRPR = Vector<double>(3,0.0);
+ zzRNE = Vector<double>(3,0.0);
+ }
+
+ // loop over input files
+ nread = 0;
+ for(int nfile=0; nfile<C.InputObsName.size(); nfile++) {
+ iret = ReadFile(nfile);
+ if(iret < 0) break;
+ nread++;
+ } // end loop over input files
+
+ if(iret>=0 && nread>0) iret=AfterReadingFiles();
+
+ totaltime = clock()-totaltime;
+ C.oflog << "PRSolve timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ cout << "\nPRSolve timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+
+ C.oflog.close();
+ C.oford.close();
+
+ return iret;
+}
+catch(Exception& e) { cout << e; }
+catch (...) { cerr << C.oflog << "Unknown error. Abort." << endl; }
+ return 1;
+} // end main()
+
+//------------------------------------------------------------------------------------
+// open the file, read header and check for data; then loop over the epochs
+// Return 0 ok, <0 fatal error, >0 non-fatal error (ie skip this file)
+// 0 ok, 1 couldn't open file, 2 file doesn't have required data
+int ReadFile(int nfile) throw(Exception)
+{
+try {
+ bool writeout, first;
+ int i,j,iret;
+ int inC1,inP1,inP2,inL1,inL2,inD1,inD2,inS1,inS2; // indexes in rhead
+ double dt;
+ RinexObsStream ifstr, ofstr; // input and output RINEX files
+ RinexObsHeader rhead, rheadout;
+
+ // open input file
+ filename = C.InputObsName[nfile];
+ ifstr.open(filename.c_str(),ios::in);
+ if(ifstr.fail()) {
+ C.oflog << "Failed to open input file " << filename << ". Abort.\n";
+ return 1;
+ }
+ else C.oflog << "Opened input file " << filename << endl;
+ ifstr.exceptions(ios::failbit);
+
+ // open output file
+ if(!C.OutRinexObs.empty()) {
+ ofstr.open(C.OutRinexObs.c_str(), ios::out);
+ if(ofstr.fail()) {
+ C.oflog << "Failed to open output file " << C.OutRinexObs << " Abort.\n";
+ ifstr.close();
+ return 1;
+ }
+ else C.oflog << "Opened output file " << C.OutRinexObs << endl;
+ ofstr.exceptions(ios::failbit);
+ writeout = true;
+ }
+ else writeout = false;
+
+ // read the header
+ ifstr >> rhead;
+ C.oflog << "Here is the input header for file " << filename << endl;
+ rhead.dump(C.oflog);
+
+ // check that file contains C1/P1,P2,L1,L2,D1,D2,S1,S2
+ inC1 = inP1 = inP2 = inL1 = inL2 = inD1 = inD2 = inS1 = inS2 = -1;
+ for(j=0; j<rhead.obsTypeList.size(); j++) {
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("C1")) inC1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("L1")) inL1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("L2")) inL2=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("P1")) inP1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("P2")) inP2=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("D1")) inD1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("D2")) inD2=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("S1")) inS1=j;
+ if(rhead.obsTypeList[j] == RinexObsHeader::convertObsType("S2")) inS2=j;
+ }
+
+ if( (inP1==-1 && (!C.UseCA || inC1==-1))
+ || (inC1==-1 && C.ForceCA)
+ || inP2==-1 || inL1==-1 || inL2==-1
+ //|| inD1==-1 || inD2==-1 || inS1==-1 || inS2==-1 // why ?
+ ) {
+ C.oflog << "Warning: file " << filename << " does not contain";
+ if(inC1==-1) C.oflog << " C1" << " (forceCA is " << (C.ForceCA?"T":"F") << ")";
+ if(inP1==-1) C.oflog << " P1" << " (useCA is " << (C.UseCA?"T":"F") << ")";
+ if(inP2==-1) C.oflog << " P2";
+ if(inL1==-1) C.oflog << " L1";
+ if(inL2==-1) C.oflog << " L2";
+ //if(inD1==-1) C.oflog << " D1";
+ //if(inD2==-1) C.oflog << " D2";
+ //if(inS1==-1) C.oflog << " S1";
+ //if(inS2==-1) C.oflog << " S2";
+ C.oflog << endl;
+ //ifstr.clear();
+ //ifstr.close();
+ //return 2;
+ }
+ if(C.ForceCA) {
+ if(inC1 != -1) inP1 = inC1;
+ else {
+ C.oflog << "ERROR. Abort. --forceCA was found but C1 data is not found.\n";
+ cerr << "ERROR. Abort. --forceCA was found but C1 data is not found.\n";
+ return -1;
+ }
+ }
+ else if(inP1==-1) {
+ if(C.UseCA && inC1 != -1) inP1 = inC1;
+ else if(C.UseCA && inC1 == -1) {
+ C.oflog << "ERROR. Abort. Neither P1 nor C1 data found (--useCA is set).\n";
+ cerr << "ERROR. Abort. Neither P1 nor C1 data found (--useCA is set).\n";
+ return -1;
+ }
+ else if(!C.UseCA && inC1 != -1) {
+ C.oflog << "ERROR. Abort. P1 data not found (C1 data found: add --useCA)\n";
+ cerr << "ERROR. Abort. P1 data not found (C1 data found: add --useCA)\n";
+ return -1;
+ }
+ else {
+ C.oflog << "ERROR. Abort. Neither P1 nor C1 data found.\n";
+ cerr << "ERROR. Abort. Neither P1 nor C1 data found.\n";
+ return -1;
+ }
+ }
+ if(inP1 > -1) {
+ if(inP2 > -1) C.Freq = 3;
+ else C.Freq = 1;
+ // TD add 2 as an input option
+ }
+ C.oflog << "Process frequency " << C.Freq << endl;
+
+ // initialize file solution and residual statistics
+ nS = 0;
+ SA[0].Reset(); SA[1].Reset(); SA[2].Reset();
+ SR[0].Reset(); SR[1].Reset(); SR[2].Reset();
+ PA = Matrix<double>(3,3,0.0);
+ PR = Matrix<double>(3,3,0.0);
+ zA = Vector<double>(3,0.0);
+ zR = Vector<double>(3,0.0);
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ if(C.APSout) {
+ SAPR[0].Reset(); SAPR[1].Reset(); SAPR[2].Reset();
+ SANE[0].Reset(); SANE[1].Reset(); SANE[2].Reset();
+ PAPR = Matrix<double>(3,3,0.0);
+ PANE = Matrix<double>(3,3,0.0);
+ zAPR = Vector<double>(3,0.0);
+ zANE = Vector<double>(3,0.0);
+ }
+ SRPR[0].Reset(); SRPR[1].Reset(); SRPR[2].Reset();
+ SRNE[0].Reset(); SRNE[1].Reset(); SRNE[2].Reset();
+ PRPR = Matrix<double>(3,3,0.0);
+ PRNE = Matrix<double>(3,3,0.0);
+ zRPR = Vector<double>(3,0.0);
+ zRNE = Vector<double>(3,0.0);
+ }
+
+ // loop over epochs in the file
+ first = true;
+ while(1) {
+ // read next obs
+ double RMSrof;
+ vector<SatID> Satellites;
+ vector<double> Ranges,vC1,vP1,vP2;
+ Matrix<double> inform;
+ RinexObsData robsd,auxPosData;
+
+ try {
+ ifstr >> robsd;
+ }
+ catch(FFStreamError& e) {
+ C.oflog << "Reading obs caught FFStreamError exception : " << e << endl;
+ cerr << "Reading obs caught FFStreamError exception : " << e << endl;
+ return -2;
+ }
+ catch(Exception& e) {
+ C.oflog << "Reading obs caught GPSTk exception : " << e << endl;
+ cerr << "Reading obs caught GPSTk exception : " << e << endl;
+ return -2;
+ }
+ catch(exception& e) {
+ C.oflog << "Reading obs caught std exception : " << e.what() << endl;
+ cerr << "Reading obs caught std exception : " << e.what() << endl;
+ return -2;
+ }
+ catch(...) {
+ C.oflog << "Reading obs caught unknown exception : " << endl;
+ cerr << "Reading obs caught unknown exception : " << endl;
+ return -2;
+ }
+
+ // normal end-of-file
+ if(!ifstr.good() || ifstr.eof()) { iret=0; break; }
+
+ for(;;) {
+ iret = 0;
+
+ if(C.Debug) C.oflog << "process: " << robsd.time
+ << ", Flag " << robsd.epochFlag << ", clk " << robsd.clockOffset
+ << endl;
+
+ // stay within time limits
+ if(robsd.time < C.Tbeg) { iret = 1; break; }
+ if(robsd.time > C.Tend) { iret = -1; break; }
+
+ // ignore comment blocks ...
+ if(robsd.epochFlag != 0 && robsd.epochFlag != 1) { iret = 1; break; }
+
+ // decimate data
+ // if Tbeg is still undefined, set it to begin of week
+ if(C.ith > 0.0) {
+ if(fabs(C.Tbeg-DayTime(DayTime::BEGINNING_OF_TIME)) < 1.e-8)
+ C.Tbeg = C.Tbeg.setGPSfullweek(robsd.time.GPSfullweek(),0.0);
+ double dt=fabs(robsd.time - C.Tbeg);
+ dt -= C.ith*long(0.5+dt/C.ith);
+ if(fabs(dt) > 0.25) { iret = 1; break; }
+ }
+
+ // save current time
+ CurrEpoch = robsd.time;
+ if(fabs(C.FirstEpoch-DayTime(DayTime::BEGINNING_OF_TIME)) < 1.e-8)
+ C.FirstEpoch=CurrEpoch;
+
+ // loop over satellites
+ Nsvs = 0;
+ Satellites.clear();
+ Ranges.clear();
+ vC1.clear(); vP1.clear(); vP2.clear();
+ RinexObsData::RinexSatMap::const_iterator it;
+ for(it=robsd.obs.begin(); it != robsd.obs.end(); ++it) {
+ // loop over sat=it->first, ObsTypeMap=it->second
+ int in,n;
+ double C1=0,P1=0,P2=0,L1,L2,D1,D2,S1,S2;
+ SatID sat=it->first;
+ RinexObsData::RinexObsTypeMap otmap=it->second;
+
+ // pull out the data
+ RinexObsData::RinexObsTypeMap::const_iterator jt;
+ if(inC1>-1 && (jt=otmap.find(rhead.obsTypeList[inC1])) != otmap.end())
+ C1=jt->second.data;
+ if(inP1>-1 && (jt=otmap.find(rhead.obsTypeList[inP1])) != otmap.end())
+ P1=jt->second.data;
+ if(inP2>-1 && (jt=otmap.find(rhead.obsTypeList[inP2])) != otmap.end())
+ P2=jt->second.data;
+ if(inL1>-1 && (jt=otmap.find(rhead.obsTypeList[inL1])) != otmap.end())
+ L1=jt->second.data;
+ if(inL2>-1 && (jt=otmap.find(rhead.obsTypeList[inL2])) != otmap.end())
+ L2=jt->second.data;
+ if(inD1>-1 && (jt=otmap.find(rhead.obsTypeList[inD1])) != otmap.end())
+ D1=jt->second.data;
+ if(inD2>-1 && (jt=otmap.find(rhead.obsTypeList[inD2])) != otmap.end())
+ D2=jt->second.data;
+ if(inS1>-1 && (jt=otmap.find(rhead.obsTypeList[inS1])) != otmap.end())
+ S1=jt->second.data;
+ if(inS2>-1 && (jt=otmap.find(rhead.obsTypeList[inS2])) != otmap.end())
+ S2=jt->second.data;
+
+ // is the satellite excluded?
+ if(sat.system != SatID::systemGPS) continue; // GPS only
+ bool ok=true;
+ for(i=0; i<C.ExSV.size(); i++)
+ if(C.ExSV[i] == sat) { ok=false; break; }
+ if(!ok) continue;
+
+ // NB do not exclude negative P, as some clocks can go far
+ if(C.Freq != 2 && P1==0.0) continue;
+ if(C.Freq != 1 && P2==0.0) continue;
+
+ // if position known and elevation limit given, apply elevation mask
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown
+ && C.elevLimit > 0.0) {
+ bool ok=true;
+ CorrectedEphemerisRange CER;
+ try {
+ //double ER =
+ CER.ComputeAtReceiveTime(CurrEpoch, C.knownpos, sat, *pEph);
+ if(CER.elevation < C.elevLimit) ok=false;
+ if(C.Debug) C.oflog << "Ephemeris range is "
+ << setprecision(4) << CER.rawrange << endl;
+ }
+ catch(EphemerisStore::NoEphemerisFound& nef) {
+ // do not exclude the sat here; PRSolution will...
+ if(C.Debug)
+ C.oflog << "CER did not find ephemeris for " << sat << endl;
+ }
+
+ if(!ok) continue;
+ }
+
+ // keep this satellite
+ Satellites.push_back(sat);
+ Ranges.push_back(C.Freq == 3 ? if1r*P1+if2r*P2 :
+ (C.Freq == 2 ? P2 : P1));
+ if(!C.ordFile.empty()) {
+ vC1.push_back(C1);
+ vP1.push_back(P1);
+ vP2.push_back(P2);
+ }
+ Nsvs++;
+
+ } // end loop over sats
+
+ if(Nsvs <= 4) {
+ if(C.Debug) C.oflog << "Too few satellites" << endl;
+ iret = 1;
+ break;
+ }
+
+ nS++; nSS++;
+ iret = SolutionAlgorithm(Satellites, Ranges, RMSrof);
+ if(C.Debug) C.oflog << "SolutionAlgorithm returns " << iret << endl;
+ if(iret) break;
+
+ // update LastEpoch and estimate of DT
+ if(C.LastEpoch > DayTime(DayTime::BEGINNING_OF_TIME)) {
+ dt = CurrEpoch-C.LastEpoch;
+ for(i=0; i<9; i++) {
+ if(C.ndt[i]<=0) { C.estdt[i]=dt; C.ndt[i]=1; break; }
+ if(fabs(dt-C.estdt[i]) < 0.0001) { C.ndt[i]++; break; }
+ if(i == 8) {
+ int k=0,nl=C.ndt[k];
+ for(j=1; j<9; j++) if(C.ndt[j] <= nl) { k=j; nl=C.ndt[j]; }
+ C.ndt[k]=1; C.estdt[k]=dt;
+ }
+ }
+ }
+ C.LastEpoch = CurrEpoch;
+
+ break;
+ } // end for(;;)
+
+ if(C.Debug) C.oflog << "processing returned " << iret << endl;
+ if(iret == -1) { iret=0; break; } // end of file
+ if(iret == -4) continue; // ignore this epoch - no ephemeris
+ if(iret == 1) continue; // ignore this epoch - fatal error
+
+ // write out ORDs
+ if(!C.ordFile.empty()) {
+ for(i=0; i<Satellites.size(); i++) {
+ SatID sat=Satellites[i];
+ // don't allow bad sats b/c it can corrupt TropModel
+ if(sat.id < 0) continue;
+
+ CorrectedEphemerisRange CER;
+ try { CER.ComputeAtReceiveTime(CurrEpoch, C.knownpos, sat, *pEph); }
+ catch(EphemerisStore::NoEphemerisFound& nef) { continue; }
+
+ // compute ionosphere - note that P1-R-RI == P2-R-RI*(F1/F2)**2
+ double RI = (vP2[i]-vP1[i])/alpha;
+ double tc = C.pTropModel->correction(C.knownpos,CER.svPosVel.x,CurrEpoch);
+ double R = CER.rawrange + prsol.Solution(3)
+ - CER.svclkbias - CER.relativity + tc;
+ C.oford << "ORD"
+ << " G" << setw(2) << setfill('0') << abs(sat.id) << setfill(' ')
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << (sat.id < 0 ? "0" : "1")
+ << fixed << setprecision(3)
+ << " " << CER.elevation
+ << " " << setw(13) << vC1[i] - R - RI
+ << " " << setw(13) << vP1[i] - R - RI
+ << endl;
+ }
+ }
+
+ // accumulate simple statistics, Autonomous and RAIM
+ if(C.APSout) {
+ SA[0].Add(Solution(0)); SA[1].Add(Solution(1)); SA[2].Add(Solution(2));
+ SSA[0].Add(Solution(0)); SSA[1].Add(Solution(1)); SSA[2].Add(Solution(2));
+ }
+ SR[0].Add(prsol.Solution(0));
+ SR[1].Add(prsol.Solution(1));
+ SR[2].Add(prsol.Solution(2));
+ SSR[0].Add(prsol.Solution(0));
+ SSR[1].Add(prsol.Solution(1));
+ SSR[2].Add(prsol.Solution(2));
+
+ // accumulate weighted statistics, Auto and RAIM
+ if(C.APSout) {
+ inform = inverseSVD(Matrix<double>(Covariance,0,0,3,3));
+ PA += inform;
+ PPA += inform;
+ zA += inform * Vector<double>(Solution,0,3);
+ zzA += inform * Vector<double>(Solution,0,3);
+ }
+ inform = inverseSVD(Matrix<double>(prsol.Covariance,0,0,3,3));
+ PR += inform;
+ PPR += inform;
+ zR += inform * Vector<double>(prsol.Solution,0,3);
+ zzR += inform * Vector<double>(prsol.Solution,0,3);
+
+ if(!writeout) continue; // go to next epoch
+
+ // output to RINEX
+ if(first) { // edit the output RINEX header
+ rheadout = rhead;
+ rheadout.date = PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ rheadout.fileProgram = PrgmName;
+ if(!C.HDRunby.empty()) rheadout.fileAgency = C.HDRunby;
+ if(!C.HDObs.empty()) rheadout.observer = C.HDObs;
+ if(!C.HDAgency.empty()) rheadout.agency = C.HDAgency;
+ if(!C.HDMarker.empty()) rheadout.markerName = C.HDMarker;
+ if(!C.HDNumber.empty()) {
+ rheadout.markerNumber = C.HDNumber;
+ rheadout.valid |= RinexObsHeader::markerNumberValid;
+ }
+ rheadout.version = 2.1; rheadout.valid |= RinexObsHeader::versionValid;
+ rheadout.firstObs = C.FirstEpoch;
+ rheadout.valid |= RinexObsHeader::firstTimeValid;
+ //rheadout.interval = DT;
+ //rheadout.valid |= RinexObsHeader::intervalValid;
+ //rheadout.lastObs = C.LastEpoch;
+ //rheadout.valid |= RinexObsHeader::lastTimeValid;
+ // invalidate the table
+ if(rheadout.valid & RinexObsHeader::numSatsValid)
+ rheadout.valid ^= RinexObsHeader::numSatsValid;
+ if(rheadout.valid & RinexObsHeader::prnObsValid)
+ rheadout.valid ^= RinexObsHeader::prnObsValid;
+
+ ofstr << rheadout;
+ first=false;
+ }
+ if(iret > 2) { // output position first
+ auxPosData.time = robsd.time;
+ auxPosData.epochFlag = 4;
+ auxPosData.numSvs = 2; // must be sure only 2 lines are written
+ auxPosData.auxHeader.clear();
+ ostringstream stst1,stst2;
+ stst1 << "XYZT";
+ stst1 << fixed << " " << setw(13) << setprecision(3) << prsol.Solution(0);
+ stst1 << fixed << " " << setw(13) << setprecision(3) << prsol.Solution(1);
+ stst1 << fixed << " " << setw(13) << setprecision(3) << prsol.Solution(2);
+ stst1 << fixed << " " << setw(13) << setprecision(3) << prsol.Solution(3);
+ auxPosData.auxHeader.commentList.push_back(stst1.str());
+ double PDOP=RSS(prsol.Covariance(0,0),
+ prsol.Covariance(1,1),
+ prsol.Covariance(2,2));
+ stst2 << "DIAG";
+ stst2 << " " << setw(2) << Nsvs
+ << " " << fixed << setw(5) << setprecision(2) << PDOP
+ << " " << fixed << setw(5) << setprecision(2)
+ << RSS(PDOP,Covariance(3,3))
+ << " " << fixed << setw(9) << setprecision(3) << RMSrof;
+ stst2 << " (N,P-,G-DOP,RMS)";
+ auxPosData.auxHeader.commentList.push_back(stst2.str());
+ auxPosData.auxHeader.valid |= RinexObsHeader::commentValid;
+ ofstr << auxPosData;
+ }
+ ofstr << robsd; // output data to RINEX file
+
+ } // end while loop over epochs
+
+ // only print per file if there is more than one file
+ if(C.InputObsName.size() > 1) {
+ if(C.APSout) PrintStats(SA,PA,zA,nS,"Autonomous solution for file " + filename);
+ PrintStats(SR,PR,zR,nS,"RAIM solution for file " + filename);
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ if(C.APSout) {
+ PrintStats(SAPR,PAPR,zAPR,nS,
+ "Autonomous solution residuals for file " + filename);
+ PrintStats(SANE,PANE,zANE,nS,
+ "Autonomous solution residuals (NEU) for file "+ filename,'N','E','U');
+ }
+ PrintStats(SRPR,PRPR,zRPR,nS,"RAIM solution residuals for file " + filename);
+ PrintStats(SRNE,PRNE,zRNE,nS,
+ "RAIM solution residuals (NEU) for file " + filename,'N','E','U');
+ }
+ // print to screen
+ cout << "\nWeighted average RAIM solution for file: "
+ << filename << endl << fixed;
+ cout << " (" << nS << " total epochs, with "
+ << SR[0].N() << " good, " << nS-SR[0].N() << " rejected.)\n";
+ if(SR[0].N() > 0) {
+ Matrix<double> Cov=inverse(PR);
+ Vector<double> Sol = Cov * zR;
+ cout << setw(16) << setprecision(6) << Sol << endl;
+ cout << "Covariance of RAIM solution for file " << filename << endl;
+ cout << setw(16) << setprecision(6) << Cov << endl;
+ }
+ else cout << " No data!" << endl;
+ }
+
+ ifstr.clear();
+ ifstr.close();
+ ofstr.close();
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok,
+// <-1 fatal error: -4 no ephemeris
+// -1 end of file,
+// 1 skip this epoch,
+// 2 output to RINEX,
+// 3 output position also
+int SolutionAlgorithm(vector<SatID>& Sats,
+ vector<double>& PRanges,
+ double& RMSresid) throw(Exception)
+{
+try {
+ int iret,i;
+ Matrix<double> inform;
+
+ // fail if not enough data
+ if(Nsvs < 4) return 1;
+
+ // compute a position solution with this data
+ if(C.Debug) {
+ C.oflog << "Satellites and Ranges before Prepare:\n";
+ for(i=0; i<PRanges.size(); i++)
+ C.oflog << " " << setw(2) << Sats[i] << fixed
+ << " " << setw(13) << setprecision(3) << PRanges[i] << endl;
+ }
+
+ int niter=C.nIter;
+ double conv=C.convLimit;
+ vector<bool> UseSats(Sats.size(),true);
+ Vector<double> Residual,Slope;
+
+ // if met data available, update weather in trop model
+ if(C.InputMetName.size() > 0)
+ setWeather(CurrEpoch,C.pTropModel);
+ // compute using AutonomousSolution - no RAIM algorithm
+ if(C.APSout) {
+ iret = -4;
+ Matrix<double> SVP;
+ iret = PRSolution::PrepareAutonomousSolution(CurrEpoch,Sats,PRanges,*pEph,SVP);
+ if(iret == -4) {
+ C.oflog << "PrepareAutonomousSolution failed to find ANY ephemeris at epoch "
+ << CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%.3f") << endl;
+ return iret;
+ }
+
+ if(C.Debug) {
+ C.oflog << "Satellites after Prepare(" << iret << "):";
+ for(i=0; i<Sats.size(); i++)
+ C.oflog << " " << setw(2) << Sats[i].id; C.oflog << endl;
+ C.oflog << "Matrix SVP(" << SVP.rows() << "," << SVP.cols() << "):\n"
+ << fixed << setw(13) << setprecision(3) << SVP << endl;
+ }
+
+ for(i=0; i<Sats.size(); i++) UseSats[i] = (Sats[i].id > 0 ? true : false);
+
+ iret = PRSolution::AutonomousPRSolution(CurrEpoch, UseSats, SVP, C.pTropModel,
+ C.algebra, niter, conv, Solution, Covariance, Residual, Slope,
+ (C.Verbose ? &C.oflog : NULL));
+
+ C.oflog << "APS " << setw(2) << iret
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << setw(2) << Nsvs;
+ if(iret == 0) C.oflog << fixed
+ << " " << setw(16) << setprecision(6) << Solution(0)
+ << " " << setw(16) << setprecision(6) << Solution(1)
+ << " " << setw(16) << setprecision(6) << Solution(2)
+ << " " << setw(14) << setprecision(6) << Solution(3)
+ << " " << setw(12) << setprecision(6) << RMS(Residual)
+ << " " << fixed << setw(5) << setprecision(1) << max(Slope);
+ C.oflog << " " << niter
+ << " " << scientific << setw(8) << setprecision(2) << conv;
+ for(i=0; i<Sats.size(); i++) C.oflog << " " << setw(3) << Sats[i].id;
+ C.oflog << endl;
+
+ // compute residuals using known position, and output
+ if(iret==0 && C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ Matrix<double> Cov;
+ Vector<double> V(3);
+
+ // compute residuals
+ Position pos(Solution(0), Solution(1), Solution(2));
+ Position res=pos-C.knownpos;
+ Cov = Matrix<double>(Covariance,0,0,3,3);
+ V(0) = res.X(); V(1) = res.Y(); V(2) = res.Z();
+
+ C.oflog << "APR " << setw(2) << iret
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << setw(2) << Nsvs << fixed
+ << " " << setw(16) << setprecision(6) << V(0)
+ << " " << setw(16) << setprecision(6) << V(1)
+ << " " << setw(16) << setprecision(6) << V(2)
+ << " " << setw(14) << setprecision(6) << Solution(3)
+ << " " << setw(12) << setprecision(6) << RMS(Residual)
+ << " " << fixed << setw(5) << setprecision(1) << max(Slope)
+ << " " << niter
+ << " " << scientific << setw(8) << setprecision(2) << conv;
+ for(i=0; i<Sats.size(); i++) C.oflog << " " << setw(3) << Sats[i].id;
+ C.oflog << endl;
+
+ // accumulate statistics
+ SAPR[0].Add(V(0)); SAPR[1].Add(V(1)); SAPR[2].Add(V(2));
+ SSAPR[0].Add(V(0)); SSAPR[1].Add(V(1)); SSAPR[2].Add(V(2));
+ inform = inverseSVD(Cov);
+ PAPR += inform;
+ PPAPR += inform;
+ zAPR += inform * V;
+ zzAPR += inform * V;
+
+ // convert to NEU
+ V = C.Rot * V;
+ Cov = C.Rot * Cov * transpose(C.Rot);
+
+ C.oflog << "ANE " << setw(2) << iret
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << setw(2) << Nsvs << fixed
+ << " " << setw(16) << setprecision(6) << V(0)
+ << " " << setw(16) << setprecision(6) << V(1)
+ << " " << setw(16) << setprecision(6) << V(2)
+ << " " << setw(14) << setprecision(6) << Solution(3)
+ << " " << setw(12) << setprecision(6) << RMS(Residual)
+ << " " << fixed << setw(5) << setprecision(1) << max(Slope)
+ << " " << niter
+ << " " << scientific << setw(8) << setprecision(2) << conv;
+ for(i=0; i<Sats.size(); i++) C.oflog << " " << setw(3) << Sats[i].id;
+ C.oflog << endl;
+
+ // accumulate statistis
+ SANE[0].Add(V(0)); SANE[1].Add(V(1)); SANE[2].Add(V(2));
+ SSANE[0].Add(V(0)); SSANE[1].Add(V(1)); SSANE[2].Add(V(2));
+ inform = inverseSVD(Cov);
+ PANE += inform;
+ PPANE += inform;
+ zANE += inform * V;
+ zzANE += inform * V;
+
+ } // end output residuals
+
+ } // end output APS
+
+ // --------------------------------------------------------------
+ // now compute again, using RAIM
+
+ iret = -4;
+ iret = prsol.RAIMCompute(CurrEpoch, Sats, PRanges, *pEph, C.pTropModel);
+ if(iret == -4) {
+ C.oflog << "PRS Sol. failed to find ephemeris\n" << endl;
+ return iret;
+ }
+ for(Nsvs=0,i=0; i<Sats.size(); i++)
+ if(Sats[i].id > 0) Nsvs++;
+ RMSresid = prsol.RMSResidual;
+
+ C.oflog << "RPF " << setw(2) << Sats.size()-Nsvs
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << setw(2) << Nsvs << fixed
+ << " " << setw(16) << setprecision(6) << prsol.Solution(0)
+ << " " << setw(16) << setprecision(6) << prsol.Solution(1)
+ << " " << setw(16) << setprecision(6) << prsol.Solution(2)
+ << " " << setw(14) << setprecision(6) << prsol.Solution(3)
+ << " " << setw(12) << setprecision(6) << prsol.RMSResidual
+ << " " << setw(5) << setprecision(1) << prsol.MaxSlope
+ << " " << prsol.NIterations
+ << " " << scientific << setw(8) << setprecision(2) << prsol.Convergence;
+ for(i=0; i<Sats.size(); i++) C.oflog << " " << setw(3) << Sats[i].id;
+ C.oflog << " (" << iret << ")" << (prsol.isValid() ? " V" : " NV")
+ << endl;
+ //C.oflog << "prsol Sol. returned " << iret << " at " << CurrEpoch << endl;
+
+ // compute residuals using known position, and output
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown && iret >= 0) {
+ Matrix<double> Cov;
+ Vector<double> V(3);
+
+ // compute residuals
+ Position pos(prsol.Solution(0), prsol.Solution(1), prsol.Solution(2));
+ Position res=pos-C.knownpos;
+ Cov = Matrix<double>(prsol.Covariance,0,0,3,3);
+ V(0) = res.X(); V(1) = res.Y(); V(2) = res.Z();
+
+ C.oflog << "RPR " << setw(2) << Sats.size()-Nsvs
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << setw(2) << Nsvs << fixed
+ << " " << setw(16) << setprecision(6) << V(0)
+ << " " << setw(16) << setprecision(6) << V(1)
+ << " " << setw(16) << setprecision(6) << V(2)
+ << " " << setw(14) << setprecision(6) << prsol.Solution(3)
+ << " " << setw(12) << setprecision(6) << prsol.RMSResidual
+ << " " << fixed << setw(5) << setprecision(1) << prsol.MaxSlope
+ << " " << prsol.NIterations
+ << " " << scientific << setw(8) << setprecision(2) << prsol.Convergence;
+ for(i=0; i<Sats.size(); i++) C.oflog << " " << setw(3) << Sats[i].id;
+ C.oflog << " (" << iret << ")" << (prsol.isValid() ? " V" : " NV")
+ << endl;
+
+ // accumulate statistics
+ SRPR[0].Add(V(0)); SRPR[1].Add(V(1)); SRPR[2].Add(V(2));
+ SSRPR[0].Add(V(0)); SSRPR[1].Add(V(1)); SSRPR[2].Add(V(2));
+ inform = inverseSVD(Cov);
+ PRPR += inform;
+ PPRPR += inform;
+ zRPR += inform * V;
+ zzRPR += inform * V;
+
+ // convert to NEU
+ V = C.Rot * V;
+ Cov = C.Rot * Cov * transpose(C.Rot);
+
+ C.oflog << "RNE " << setw(2) << Sats.size()-Nsvs
+ << " " << CurrEpoch.printf(C.timeFormat)
+ << " " << setw(2) << Nsvs << fixed
+ << " " << setw(16) << setprecision(6) << V(0)
+ << " " << setw(16) << setprecision(6) << V(1)
+ << " " << setw(16) << setprecision(6) << V(2)
+ << " " << setw(14) << setprecision(6) << prsol.Solution(3)
+ << " " << setw(12) << setprecision(6) << prsol.RMSResidual
+ << " " << fixed << setw(5) << setprecision(1) << prsol.MaxSlope
+ << " " << prsol.NIterations
+ << " " << scientific << setw(8) << setprecision(2) << prsol.Convergence;
+ for(i=0; i<Sats.size(); i++) C.oflog << " " << setw(3) << Sats[i].id;
+ C.oflog << " (" << iret << ")" << (prsol.isValid() ? " V" : " NV")
+ << endl;
+
+ // accumulate statistics
+ if(iret == 0) {
+ SRNE[0].Add(V(0)); SRNE[1].Add(V(1)); SRNE[2].Add(V(2));
+ SSRNE[0].Add(V(0)); SSRNE[1].Add(V(1)); SSRNE[2].Add(V(2));
+ inform = inverseSVD(Cov);
+ PRNE += inform;
+ PPRNE += inform;
+ zRNE += inform * V;
+ zzRNE += inform * V;
+ }
+ }
+ //C.oflog << endl;
+
+ //
+ if(prsol.isValid() && !C.OutRinexObs.empty()) return 3;
+ if(!prsol.isValid()) return 1;
+
+ if(!C.OutRinexObs.empty()) return 2;
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+int AfterReadingFiles(void) throw(Exception)
+{
+try {
+ // only print stats on all files if there is more than one
+ if(C.APSout) {
+ PrintStats(SSA,PPA,zzA,nSS,"Autonomous solution for all files");
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ PrintStats(SSAPR,PPAPR,zzAPR,nSS,
+ "Autonomous position residuals for all files");
+ PrintStats(SSANE,PPANE,zzANE,nSS,
+ "Autonomous position residuals (NEU) for all files",'N','E','U');
+ }
+ }
+
+ PrintStats(SSR,PPR,zzR,nSS,"RAIM solution for all files");
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) {
+ PrintStats(SSRPR,PPRPR,zzRPR,nSS,"RAIM position residuals for all files");
+ PrintStats(SSRNE,PPRNE,zzRNE,nSS,"RAIM position residuals (NEU) for all files",
+ 'N','E','U');
+ }
+
+ // print to screen
+ cout << "\nWeighted average RAIM solution for file: "
+ << (C.InputObsName.size() > 1 ? "all files" : C.InputObsName[0])
+ << endl << fixed;
+ cout << " (" << nSS << " total epochs, with "
+ << SSR[0].N() << " good, " << nSS-SSR[0].N() << " rejected.)\n";
+ if(SSR[0].N() > 0) {
+ Matrix<double> Cov=inverse(PPR);
+ Vector<double> Sol = Cov * zzR;
+ cout << setw(16) << setprecision(6) << Sol << endl;
+ cout << "Covariance of RAIM solution for file: "
+ << (C.InputObsName.size() > 1 ? "all files" : C.InputObsName[0])
+ << endl;
+ cout << setw(16) << setprecision(6) << Cov << endl;
+ }
+ else cout << " No data!" << endl;
+
+ // compute data interval for this file
+ int i,j;
+ double dt;
+ for(j=0,i=1; i<9; i++) { if(C.ndt[i]>C.ndt[j]) j=i; }
+ C.oflog << endl;
+ C.oflog << "Estimated data interval is " << C.estdt[j] << " seconds.\n";
+ C.oflog << "First epoch is "
+ << C.FirstEpoch.printf("%04Y/%02m/%02d %02H:%02M:%.3f = %04F %10.3g") << endl;
+ C.oflog << "Last epoch is "
+ << C.LastEpoch.printf("%04Y/%02m/%02d %02H:%02M:%.3f = %04F %10.3g") << endl;
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+void PrintStats(Stats<double> S[3], Matrix<double> &P, Vector<double> &z, long ng,
+ string msg, char c0, char c1, char c2) throw(Exception)
+{
+try {
+ C.oflog << endl;
+ C.oflog << "Simple statistics on " << msg << endl << fixed;
+ C.oflog << c0 << " : " << setw(16) << setprecision(6) << S[0] << endl;
+ C.oflog << c1 << " : " << setw(16) << setprecision(6) << S[1] << endl;
+ C.oflog << c2 << " : " << setw(16) << setprecision(6) << S[2] << endl;
+
+ //C.oflog << endl;
+ C.oflog << "Weighted average " << msg << endl << fixed;
+ if(S[0].N() > 0) {
+ Matrix<double> Cov=inverse(P);
+ Vector<double> Sol=Cov * z;
+ C.oflog << setw(16) << setprecision(6) << Sol << " " << S[0].N() << endl;
+ C.oflog << "Covariance of " << msg << endl;
+ C.oflog << setw(16) << setprecision(6) << Cov << endl;
+ }
+ else C.oflog << " No data!" << endl;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void setWeather(DayTime& time, TropModel *pTropModel)
+{
+ static list<RinexMetData>::iterator it=C.MetStore.begin();
+ static list<RinexMetData>::iterator nextit;
+ static DayTime currentTime = DayTime::BEGINNING_OF_TIME;
+ double dt;
+
+ while(it != C.MetStore.end()) {
+ // point to the next epoch after the current epoch
+ (nextit = it)++; // same as nextit=it; nextit++;
+
+ // is the current epoch (it->time) the right one?
+ if( // time is before next but after current - just right
+ (nextit != C.MetStore.end() && time < nextit->time && time >= it->time)
+ // there is no next, but time is within 15 minutes of the current epoch
+ || (nextit == C.MetStore.end() && (dt=time-it->time) >= 0.0 && dt < 900.0)
+ )
+ {
+ // set the weather - replace default with current value, if it exists
+ // but skip if it has already been done
+ if(it->time == currentTime) break;
+ currentTime = it->time;
+
+ if(C.Debug) C.oflog << "Reset weather at " << time << " to " << it->time
+ << " " << it->data[RinexMetHeader::TD]
+ << " " << it->data[RinexMetHeader::PR]
+ << " " << it->data[RinexMetHeader::HR] << endl;
+
+ // [if 'it' is declared const_iterator, why does this discard qualifier??]
+ if(it->data.count(RinexMetHeader::TD) > 0)
+ C.defaultT = it->data[RinexMetHeader::TD];
+ if(it->data.count(RinexMetHeader::PR) > 0)
+ C.defaultPr = it->data[RinexMetHeader::PR];
+ if(it->data.count(RinexMetHeader::HR) > 0)
+ C.defaultRH = it->data[RinexMetHeader::HR];
+
+ pTropModel->setWeather(C.defaultT, C.defaultPr, C.defaultRH);
+
+ break;
+ }
+
+ // no, this is not the right epoch; but should we increment the iterator ?
+ else if(nextit != C.MetStore.end() && time >= nextit->time)
+ {
+ // yes, time is at or beyond the next epoch
+ it++;
+ }
+
+ // do nothing, because time is before the next epoch
+ else break;
+ }
+}
+
+//------------------------------------------------------------------------------------
+int GetCommandLine(int argc, char **argv) throw(Exception)
+{
+try {
+ bool ok,help=false;
+ int i,j;
+ // defaults
+ C.Debug = C.Verbose = false;
+ C.ith = 0.0;
+ C.Tbeg = C.FirstEpoch = DayTime(DayTime::BEGINNING_OF_TIME);
+ C.Tend = DayTime(DayTime::END_OF_TIME);
+
+ // configuration of PRSolution
+ C.rmsLimit = prsol.RMSLimit;
+ C.SlopeLimit = prsol.SlopeLimit;
+ C.algebra = prsol.Algebraic;
+ C.residCrit = prsol.ResidualCriterion;
+ C.returnatonce = prsol.ReturnAtOnce;
+ C.maxReject = prsol.NSatsReject;
+ C.nIter = prsol.MaxNIterations;
+ C.convLimit = prsol.ConvergenceLimit;
+
+ C.elevLimit = 0.0;
+
+ C.LogFile = string("prs.log");
+ C.ordFile = string();
+
+ C.APSout = false;
+ C.UseCA = false;
+ C.ForceCA = false;
+ C.DataInt = -1.0;
+ C.TropType = string("BL");
+ C.defaultT = 20.0;
+ C.defaultPr = 980.0;
+ C.defaultRH = 50.0;
+
+ C.HDPrgm = PrgmName + string(" v.") + PrgmVers.substr(0,4);
+ C.HDRunby = string("GPSTk");
+
+ C.timeFormat = string("%4F %10.3g");
+
+ for(i=0; i<9; i++) C.ndt[i]=-1;
+
+ C.ObsDirectory = string("");
+ C.NavDirectory = string("");
+ C.MetDirectory = string("");
+
+ // -------------------------------------------------
+ // -------------------------------------------------
+ // required options
+ RequiredOption dashi(CommandOption::hasArgument, CommandOption::stdType,
+ 'o',"obs"," [-o|--obs] <file> Input RINEX observation file(s)");
+
+ RequiredOption dashn(CommandOption::hasArgument, CommandOption::stdType,
+ 'n',"nav"," [-n|--nav] <file> Input navigation file(s) [RINEX or SP3]");
+
+ // optional options
+ // this only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',"","# Input:\n [-f|--file] <file> File containing more options ()");
+
+ CommandOption dashdo(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"obsdir",
+ " --obsdir <dir> Directory of input RINEX observation file(s) (.)");
+ dashdo.setMaxCount(1);
+
+ CommandOption dashdn(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"navdir"," --navdir <dir> Directory of input navigation file(s) (.)");
+ dashdn.setMaxCount(1);
+
+ CommandOption dashdm(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"metdir",
+ " --metdir <dir> Directory of input RINEX meteorological file(s) (.)");
+ dashdm.setMaxCount(1);
+
+ CommandOption dashm(CommandOption::hasArgument, CommandOption::stdType,
+ 'm',"met"," [-m|--met] <file> Input RINEX meteorological file(s) ()");
+
+ CommandOption dashith(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"decimate"," --decimate <dt> Decimate data to time interval dt ()");
+ dashith.setMaxCount(1);
+
+ // time
+ // times - don't use CommandOptionWithTimeArg
+ CommandOption dashbt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BeginTime", " --BeginTime <arg> Start time: arg is "
+ "'GPSweek,sow' OR 'YYYY,MM,DD,HH,Min,Sec' ()");
+ dashbt.setMaxCount(1);
+
+ CommandOption dashet(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"EndTime", " --EndTime <arg> End time: arg is 'GPSweek,sow' OR "
+ "'YYYY,MM,DD,HH,Min,Sec' ()");
+ dashet.setMaxCount(1);
+
+ CommandOptionNoArg dashCA(0,"useCA", string(" --useCA ")
+ + string("Use C/A code pseudorange if P1 is not available (")
+ + (C.UseCA ? "true" : "false") + ")");
+ dashCA.setMaxCount(1);
+
+ CommandOptionNoArg dashfCA(0,"forceCA", string(" --forceCA ")
+ + string("Use C/A code pseudorange regardless of P1 availability (")
+ + (C.ForceCA ? "true" : "false") + ")");
+ dashfCA.setMaxCount(1);
+
+ // --------------------------------------------------------------------------------
+
+ CommandOption dashElev(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"MinElev", "# Configuration:\n"
+ " --MinElev <el> Minimum elevation angle (deg) [only if --PosXYZ] ("
+ + asString(C.elevLimit,2) + ")");
+ dashElev.setMaxCount(1);
+
+ CommandOption dashXsat(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"exSat"," --exSat <sat> Exclude this satellite ()");
+
+ CommandOption dashTrop(CommandOption::hasArgument, CommandOption::stdType,0,"Trop",
+ " --Trop <model,T,P,H> Trop model [one of ZR,BL,SA,NB,GG,GGH "
+ "(cf. gpstk::TropModel)],\n with optional "
+ "weather [T(C),P(mb),RH(%)] ("
+ + C.TropType + "," + asString(C.defaultT,0)
+ + "," + asString(C.defaultPr,0) + "," + asString(C.defaultRH,0) + ")");
+ dashTrop.setMaxCount(1);
+
+ CommandOption dashrms(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RMSlimit", "# PRSolution configuration:\n --RMSlimit <rms> "
+ "Upper limit on RMS post-fit residuals (m) ("
+ + asString(prsol.RMSLimit,2) + ")");
+ dashrms.setMaxCount(1);
+
+ CommandOption dashslop(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"SlopeLimit",
+ " --SlopeLimit <s> Upper limit on RAIM 'slope' ("
+ + asString(int(prsol.SlopeLimit)) + ")");
+ dashslop.setMaxCount(1);
+
+ CommandOptionNoArg dashAlge(0,"Algebra",
+ string(" --Algebra ")
+ + string("Use algebraic algorithm, else linearized least squares ()"));
+ dashAlge.setMaxCount(1);
+
+ CommandOptionNoArg dashrcrt(0,"DistanceCriterion", string(" --DistanceCriterion ")
+ +string("Use distance from given position (--PosXYZ) as convergence\n")
+ +string(" criterion, else RMS residual-of-fit ()"));
+ dashrcrt.setMaxCount(1);
+
+ CommandOptionNoArg dashrone(0,"ReturnAtOnce",string(" --ReturnAtOnce ")
+ +string("Return as soon as a good solution is found (")
+ +(prsol.ReturnAtOnce ? string("true") : string("false")) + string(")") );
+ dashrone.setMaxCount(1);
+
+ CommandOption dashnrej(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"NReject", " --NReject <n> Maximum number of satellites to reject ("
+ + (prsol.NSatsReject == -1 ? "no limit" : asString(prsol.NSatsReject))
+ + ")");
+ dashnrej.setMaxCount(1);
+
+ CommandOption dashNit(CommandOption::hasArgument, CommandOption::stdType,0,"NIter",
+ " --NIter <n> Maximum iteration count in linearized LS ("
+ + asString(prsol.MaxNIterations) + ")");
+ dashNit.setMaxCount(1);
+
+ CommandOption dashConv(CommandOption::hasArgument, CommandOption::stdType,0,"Conv",
+ " --Conv <c> "
+ "Minimum convergence criterion in estimation ("
+ + doub2sci(prsol.ConvergenceLimit,8,2,false) + ")");
+ dashConv.setMaxCount(1);
+
+ // --------------------------------------------------------------------------------
+
+ CommandOption dashLog(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Log","# Output:\n --Log <file> Output log file name ("
+ + C.LogFile + ")");
+ dashLog.setMaxCount(1);
+
+ CommandOption dashXYZ(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"PosXYZ", " --PosXYZ <X,Y,Z> "
+ "Known position (ECEF,m), for computing residuals and ORDs ()");
+ dashXYZ.setMaxCount(1);
+
+ CommandOptionNoArg dashAPSout(0,"APSout", string(" --APSout ")
+ + string("Output autonomous pseudorange solution [tag APS, no RAIM] ()"));
+ dashAPSout.setMaxCount(1);
+
+ CommandOption dashORDs(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"ORDs", " --ORDs <file> "
+ "ORDs (Observed Range Deviations) output file [PosXYZ req'd] ("
+ + C.ordFile + ")");
+ dashORDs.setMaxCount(1);
+
+ CommandOption dashForm(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"TimeFormat", " --TimeFormat <fmt> "
+ "Format for time tags in output (cf gpstk::DayTime) (" + C.timeFormat + ")");
+ dashForm.setMaxCount(1);
+
+ CommandOption dashRfile(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"outRinex","# RINEX output:\n"
+ " --outRinex <file> Output RINEX observation file name ()");
+ dashRfile.setMaxCount(1);
+
+ CommandOption dashRrun(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RunBy"," --RunBy <string> Output RINEX header 'RUN BY' string ("
+ + C.HDRunby + ")");
+ dashRrun.setMaxCount(1);
+
+ CommandOption dashRobs(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Observer"," --Observer <string> Output RINEX header 'OBSERVER' string ()");
+ dashRobs.setMaxCount(1);
+
+ CommandOption dashRag(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Agency"," --Agency <string> Output RINEX header 'AGENCY' string ()");
+ dashRag.setMaxCount(1);
+
+ CommandOption dashRmark(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Marker"," --Marker <string> Output RINEX header 'MARKER' string ()");
+ dashRmark.setMaxCount(1);
+
+ CommandOption dashRnumb(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Number"," --Number <string> Output RINEX header 'NUMBER' string ()");
+ dashRnumb.setMaxCount(1);
+
+ CommandOptionNoArg dashVerb(0,"verbose",
+ "# Help:\n --verbose Print extended output (don't)");
+ dashVerb.setMaxCount(1);
+
+ CommandOptionNoArg dashDebug(0,"debug",
+ " --debug Print very extended output (don't)");
+ dashDebug.setMaxCount(1);
+
+ CommandOptionNoArg dashh('h', "help",
+ " [-h|--help] Print syntax and quit (don't)");
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par(
+ "Prgm PRSolve reads one or more RINEX observation files, plus one or more\n"
+ " navigation (ephemeris) files, and computes an autonomous GPS pseudorange\n"
+ " position solution, using a RAIM-like algorithm to eliminate outliers.\n"
+ " Output is to a log file, and also optionally to a RINEX obs file with\n"
+ " the position solutions in comments in auxiliary header blocks.\n"
+ " In the log file, results appear one epoch per line with the format:\n"
+ " TAG Nrej week sow Nsat X Y Z T RMS slope nit conv sat sat .. (code) [N]V\n"
+ " TAG denotes solution (X Y Z T) type:\n"
+ " RPF Final RAIM ECEF XYZ solution\n"
+ " RPR Final RAIM ECEF XYZ solution residuals [only if --PosXYZ given]\n"
+ " RNE Final RAIM North-East-Up solution residuals [only if --PosXYZ]\n"
+ " APS Autonomous ECEF XYZ solution [only if --APSout given]\n"
+ " APR Autonomous ECEF XYZ solution residuals [only if both --APS & --Pos]\n"
+ " ANE Autonomous North-East-Up solution residuals [only if --APS & --Pos]\n"
+ " and where Nrej = number of rejected sats, (week,sow) = GPS time tag,\n"
+ " Nsat = # sats used, XYZT = position+time solution(or residuals),\n"
+ " RMS = RMS residual of fit, slope = RAIM slope, nit = # of iterations,\n"
+ " conv = convergence factor, 'sat sat ...' lists all sat. PRNs (- : rejected),\n"
+ " code = return value from PRSolution::RAIMCompute(), and NV means NOT valid.\n"
+ " NB. Default values appear in () after optional arguments below.\n"
+ );
+
+ // -------------------------------------------------
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0)
+ Args.push_back(string("-h"));
+ //cout << "List after PreProcessArgs\n";
+ //for(i=0; i<Args.size(); i++) cout << i << " " << Args[i] << endl;
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cout << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cout << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+ //cout << "List passed to parser\n";
+ //for(i=0; i<argc; i++) cout << i << " " << CArgs[i] << endl;
+
+ Par.parseOptions(argc, CArgs);
+
+ // -------------------------------------------------
+ if(dashh.getCount() > 0) {
+ Par.displayUsage(cout,false);
+ help = true;
+ }
+
+ if(!help && Par.hasErrors())
+ {
+ cout << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cout);
+ cout << "...end of Errors\n\n";
+ help = true;
+ }
+
+ // -------------------------------------------------
+ // get values found on command line
+ string stemp;
+ vector<string> values,field;
+ // f never appears because we intercept it above
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+ // do help first
+ if(dashh.getCount()) help=true;
+ if(dashDebug.getCount()) C.Debug=C.Verbose=true;
+ if(dashVerb.getCount()) C.Verbose=true;
+
+ if(dashdo.getCount()) {
+ values = dashdo.getValue();
+ C.ObsDirectory = values[0];
+ if(help) cout << "Input obs directory is " << C.ObsDirectory << endl;
+ }
+ if(dashdn.getCount()) {
+ values = dashdn.getValue();
+ C.NavDirectory = values[0];
+ if(help) cout << "Input nav directory is " << C.NavDirectory << endl;
+ }
+ if(dashdm.getCount()) {
+ values = dashdm.getValue();
+ C.MetDirectory = values[0];
+ if(help) cout << "Input met directory is " << C.MetDirectory << endl;
+ }
+ if(dashi.getCount()) {
+ values = dashi.getValue();
+ if(help) cout << "Input RINEX obs files are:\n";
+ for(i=0; i<values.size(); i++) {
+ if(!C.ObsDirectory.empty())
+ C.InputObsName.push_back(C.ObsDirectory + string("/") + values[i]);
+ else
+ C.InputObsName.push_back(values[i]);
+ if(help) cout << " " << C.ObsDirectory + string("/") + values[i] << endl;
+ }
+ }
+ if(dashn.getCount()) {
+ values = dashn.getValue();
+ if(help) cout << "Input RINEX nav files are:\n";
+ for(i=0; i<values.size(); i++) {
+ if(!C.NavDirectory.empty())
+ C.InputNavName.push_back(C.NavDirectory + string("/") + values[i]);
+ else
+ C.InputNavName.push_back(values[i]);
+ if(help) cout << " " << C.NavDirectory + string("/") + values[i] << endl;
+ }
+ }
+ if(dashm.getCount()) {
+ values = dashm.getValue();
+ if(help) cout << "Input RINEX met files are:\n";
+ for(i=0; i<values.size(); i++) {
+ if(!C.MetDirectory.empty())
+ C.InputMetName.push_back(C.MetDirectory + string("/") + values[i]);
+ else
+ C.InputMetName.push_back(values[i]);
+ if(help) cout << " " << C.MetDirectory + string("/") + values[i] << endl;
+ }
+ }
+
+ if(dashith.getCount()) {
+ values = dashith.getValue();
+ C.ith = asDouble(values[0]);
+ if(help) cout << "Ithing values is " << C.ith << endl;
+ }
+ // times
+ // TD put try {} around setToString and catch invalid formats...
+ if(dashbt.getCount()) {
+ ok = true;
+ values = dashbt.getValue();
+ stemp = values[0];
+ field.clear();
+ while(stemp.size() > 0)
+ field.push_back(stripFirstWord(stemp,','));
+ if(field.size() == 2) {
+ try { C.Tbeg.setToString(field[0]+","+field[1], "%F,%g"); }
+ catch(Exception& e) { ok=false; }
+ }
+ else if(field.size() == 6) {
+ try {
+ C.Tbeg.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ }
+ catch(Exception& e) { ok=false; }
+ }
+ else { ok = false; }
+ if(!ok) {
+ cerr << "Error: invalid --BeginTime input: " << values[0] << endl;
+ }
+ else if(help) cout << " Input: begin time " << values[0] << " = "
+ << C.Tbeg.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ if(dashet.getCount()) {
+ ok = true;
+ values = dashet.getValue();
+ field.clear();
+ stemp = values[0];
+ while(stemp.size() > 0)
+ field.push_back(stripFirstWord(stemp,','));
+ if(field.size() == 2) {
+ try { C.Tend.setToString(field[0]+","+field[1], "%F,%g"); }
+ catch(Exception& e) { ok=false; }
+ }
+ else if(field.size() == 6) {
+ try {
+ C.Tend.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ }
+ catch(Exception& e) { ok=false; }
+ }
+ else { ok = false; }
+ if(!ok) {
+ cerr << "Error: invalid --EndTime input: " << values[0] << endl;
+ }
+ else if(help) cout << " Input: end time " << values[0] << " = "
+ << C.Tend.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ if(dashCA.getCount()) {
+ C.UseCA = true;
+ if(help) cout << "'Use C/A' flag is set\n";
+ }
+ if(dashfCA.getCount()) {
+ C.ForceCA = true;
+ if(help) cout << "'Force C/A' flag is set\n";
+ }
+
+ if(dashrms.getCount()) {
+ values = dashrms.getValue();
+ C.rmsLimit = asDouble(values[0]);
+ if(help) cout << "RMS limit is set to " << C.rmsLimit << endl;
+ }
+ if(dashslop.getCount()) {
+ values = dashslop.getValue();
+ C.SlopeLimit = asDouble(values[0]);
+ if(help) cout << "Slope limit is set to " << C.SlopeLimit << endl;
+ }
+ if(dashAlge.getCount()) {
+ C.algebra = true;
+ if(help) cout << "'Algebraic' option is on\n";
+ }
+ if(dashrcrt.getCount()) {
+ C.residCrit = false;
+ if(help) cout << "'ResidualCriterion' option is false\n";
+ }
+ if(dashrone.getCount()) {
+ C.returnatonce = true;
+ if(help) cout << "'Return at once' option is true\n";
+ }
+ if(dashnrej.getCount()) {
+ values = dashnrej.getValue();
+ C.maxReject = asInt(values[0]);
+ if(help) cout << "Max N rejected satellites is set to " << C.maxReject << endl;
+ }
+ if(dashNit.getCount()) {
+ values = dashNit.getValue();
+ C.nIter = asInt(values[0]);
+ if(help) cout << "Max N Iterations is set to " << C.nIter << endl;
+ }
+ if(dashElev.getCount()) {
+ values = dashElev.getValue();
+ C.elevLimit = asDouble(values[0]);
+ if(help) cout << "Elevation limit is set to " << C.convLimit << " deg" << endl;
+ }
+ if(dashConv.getCount()) {
+ values = dashConv.getValue();
+ C.convLimit = asDouble(values[0]);
+ if(help) cout << "Convergence limit is set to " << C.convLimit << endl;
+ }
+
+ if(dashXYZ.getCount()) {
+ values = dashXYZ.getValue();
+ for(i=0; i<values.size(); i++) {
+ field.clear();
+ while(values[i].size() > 0)
+ field.push_back(stripFirstWord(values[i],','));
+ if(field.size() < 3) {
+ cerr << "Error: less than four fields in --PosXYZ input: "
+ << values[i] << endl;
+ continue;
+ }
+ Position p(asDouble(field[0]), asDouble(field[1]), asDouble(field[2]));
+ C.knownpos = p;
+ if(help) cout << " Input: known XYZ position "
+ << field[0] << " " << field[1] << " " << field[2] << endl;
+ }
+ }
+ if(dashAPSout.getCount()) C.APSout=true;
+ if(dashForm.getCount()) {
+ values = dashForm.getValue();
+ C.timeFormat = values[0];
+ if(help) cout << " Input: time format " << C.timeFormat << endl;
+ }
+ if(dashORDs.getCount()) {
+ values = dashORDs.getValue();
+ C.ordFile = values[0];
+ if(help) cout << " Input: output ORDs to file " << C.ordFile << endl;
+ }
+ if(dashXsat.getCount()) {
+ values = dashXsat.getValue();
+ for(i=0; i<values.size(); i++) {
+ RinexSatID p(values[i]);
+ C.ExSV.push_back(SatID(p));
+ if(help) cout << "Exclude satellite " << p << endl;
+ }
+ }
+ if(dashTrop.getCount()) {
+ values = dashTrop.getValue();
+ field.clear();
+ while(values[0].size() > 0)
+ field.push_back(stripFirstWord(values[0],','));
+ if(field.size() != 1 && field.size() != 4) {
+ cerr << "Error: invalid fields after --Trop input: "
+ << values[0] << endl;
+ }
+ else {
+ field[0] = upperCase(field[0]);
+ C.TropType = field[0];
+ if(help) cout << " Input: trop model: " << C.TropType;
+ if(field.size() == 4) {
+ C.defaultT = asDouble(field[1]);
+ C.defaultPr = asDouble(field[2]);
+ C.defaultRH = asDouble(field[3]);
+ if(help) cout << " and weather (T,P,RH): "
+ << C.defaultT << "," << C.defaultPr << "," << C.defaultRH;
+ }
+ if(help) cout << endl;
+ }
+ }
+ if(dashLog.getCount()) {
+ values = dashLog.getValue();
+ C.LogFile = values[0];
+ if(help) cout << "Log file is " << C.LogFile << endl;
+ }
+ if(dashRfile.getCount()) {
+ values = dashRfile.getValue();
+ C.OutRinexObs = values[0];
+ if(help) cout << "Output RINEX file name is " << C.OutRinexObs << endl;
+ }
+ if(dashRrun.getCount()) {
+ values = dashRrun.getValue();
+ C.HDRunby = values[0];
+ if(help) cout << "Output RINEX 'RUN BY' is " << C.HDRunby << endl;
+ }
+ if(dashRobs.getCount()) {
+ values = dashRobs.getValue();
+ C.HDObs = values[0];
+ if(help) cout << "Output RINEX 'OBSERVER' is " << C.HDObs << endl;
+ }
+ if(dashRag.getCount()) {
+ values = dashRag.getValue();
+ C.HDAgency = values[0];
+ if(help) cout << "Output RINEX 'AGENCY' is " << C.HDAgency << endl;
+ }
+ if(dashRmark.getCount()) {
+ values = dashRmark.getValue();
+ C.HDMarker = values[0];
+ if(help) cout << "Output RINEX 'MARKER' is " << C.HDMarker << endl;
+ }
+ if(dashRnumb.getCount()) {
+ values = dashRnumb.getValue();
+ C.HDNumber = values[0];
+ if(help) cout << "Output RINEX 'NUMBER' is " << C.HDNumber << endl;
+ }
+
+ if(Rest.getCount()) {
+ if(help) cout << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) {
+ if(help) cout << values[i] << endl;
+ //C.InputObsName.push_back(values[i]);
+ }
+ }
+ //if(C.Verbose && help) {
+ // cout << "\nTokens on command line (" << Args.size() << ") are:" << endl;
+ // for(unsigned j=0; j<Args.size(); j++) cout << Args[j] << endl;
+ //}
+
+ if(help) return 1;
+
+ C.oflog.open(C.LogFile.c_str(),ios::out);
+ if(C.oflog.fail()) {
+ cout << "Failed to open log file " << C.LogFile << endl;
+ return -2;
+ }
+ else {
+ cout << "Opened log file " << C.LogFile << endl;
+ C.oflog << Title;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+ return -1;
+}
+
+//------------------------------------------------------------------------------------
+void DumpConfiguration(ostream& os) throw(Exception)
+{
+try {
+ int i;
+ // print config to log
+ os << "\nHere is the PRSolve configuration:\n";
+ os << " # Input:\n";
+ os << " Obs directory is '" << C.ObsDirectory << "'" << endl;
+ os << " RINEX observation files are:\n";
+ for(i=0; i<C.InputObsName.size(); i++) {
+ os << " " << C.InputObsName[i] << endl;
+ }
+ os << " Nav directory is '" << C.NavDirectory << "'" << endl;
+ os << " navigation files are:\n";
+ for(i=0; i<C.InputNavName.size(); i++) {
+ os << " " << C.InputNavName[i] << endl;
+ }
+ if(C.InputMetName.size() > 0) {
+ os << " Met directory is '" << C.MetDirectory << "'" << endl;
+ os << " RINEX meteorological files are:\n";
+ for(i=0; i<C.InputMetName.size(); i++) {
+ os << " " << C.InputMetName[i] << endl;
+ }
+ }
+ else os << " No input meteorological data\n";
+ os << " Ithing time interval is " << C.ith << endl;
+ if(C.Tbeg > DayTime(DayTime::BEGINNING_OF_TIME)) os << " Begin time is "
+ << C.Tbeg.printf("%04Y/%02m/%02d %02H:%02M:%.3f")
+ << " = " << C.Tbeg.printf("%04F/%10.3g") << endl;
+ if(C.Tend < DayTime(DayTime::END_OF_TIME)) os << " End time is "
+ << C.Tend.printf("%04Y/%02m/%02d %02H:%02M:%.3f")
+ << " = " << C.Tend.printf("%04F/%10.3g") << endl;
+ if(C.UseCA) os << " 'Use C/A' flag is set\n";
+ if(C.ForceCA) os << " 'Force C/A' flag is set\n";
+
+ os << " # Configuration:\n";
+ os << " Minimum elevation angle is " << C.elevLimit << " degrees." << endl;
+ if(C.ExSV.size()) {
+ RinexSatID p;
+ p.setfill('0');
+ os << " Exclude satellites";
+ for(i=0; i<C.ExSV.size(); i++) {
+ p = C.ExSV[i];
+ os << " " << p;
+ }
+ os << endl;
+ }
+ os << " Trop model: " << C.TropType << " and weather (T,P,RH): "
+ << C.defaultT << "," << C.defaultPr << "," << C.defaultRH << endl;
+ os << " ------ PRSolution configuration:" << endl;
+ os << " Limit on RMS solution residual (m) = " << prsol.RMSLimit << endl;
+ os << " Limit on RAIM 'slope' = " << prsol.SlopeLimit << endl;
+ os << " Use algebraic algorithm is "
+ << (prsol.Algebraic ? "true" : "false") << endl;
+ os << " Residual criterion is "
+ << (prsol.ResidualCriterion ? "RMS residuals":"distance from apriori") << endl;
+ os << " Return-at-once option is "
+ << (prsol.ReturnAtOnce ? "on" : "off") << endl;
+ os << " Maximum number of rejected satellites is "
+ << (prsol.NSatsReject == -1 ? "unlimited" : asString(prsol.NSatsReject))
+ << endl;
+ os << " Maximum iterations in linearized least squares (LLS) is "
+ << prsol.MaxNIterations << endl;
+ os << " RSS convergence criterion (meters) in LLS is "
+ << prsol.ConvergenceLimit << endl;
+ os << " ------ End of PRSolution configuration." << endl;
+
+ os << " # Output:\n";
+ os << " Log file is " << C.LogFile << endl;
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown)
+ os << " Output residuals: known position is\n " << C.knownpos.printf(
+ "ECEF(m) %.4x %.4y %.4z\n = %A deg N %L deg E %h m\n");
+ if(!C.ordFile.empty())
+ os << " Output ORDs to file " << C.ordFile << endl;
+ os << " Output tags RPF";
+ if(C.knownpos.getCoordinateSystem() != Position::Unknown) os << " RPR RNE";
+ if(C.APSout) os << " APS";
+ if(C.APSout && C.knownpos.getCoordinateSystem() != Position::Unknown)
+ os << " APR ANE";
+ os << endl;
+ os << " Output format for time tags (cf. class DayTime) is "
+ << C.timeFormat << endl;
+
+ os << " # RINEX output:\n";
+ if(!C.OutRinexObs.empty()) os << " Output RINEX file name is "
+ << C.OutRinexObs << endl;
+ if(!C.HDRunby.empty()) os << " Output RINEX 'RUN BY' is "
+ << C.HDRunby << endl;
+ if(!C.HDObs.empty()) os << " Output RINEX 'OBSERVER' is "
+ << C.HDObs << endl;
+ if(!C.HDAgency.empty()) os << " Output RINEX 'AGENCY' is "
+ << C.HDAgency << endl;
+ if(!C.HDMarker.empty()) os << " Output RINEX 'MARKER' is "
+ << C.HDMarker << endl;
+ if(!C.HDNumber.empty()) os << " Output RINEX 'NUMBER' is "
+ << C.HDNumber << endl;
+
+ os << "End of PRSolve configuration summary" << endl << endl;
+
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Pull out --verbose -f<f> and --file <f> options
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer = "";
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if((arg[0]=='-' && arg[1]=='v') || string(arg)==string("--verbose")) {
+ C.Verbose = true;
+ cout << "Found the verbose switch" << endl;
+ }
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ // deprecated args
+ else if(string(arg)==string("--EpochBeg")) { Args.push_back("--BeginTime"); }
+ else if(string(arg)==string("--GPSBeg")) { Args.push_back("--BeginTime"); }
+ else if(string(arg)==string("--EpochEnd")) { Args.push_back("--EndTime"); }
+ else if(string(arg)==string("--GPSEnd")) { Args.push_back("--EndTime"); }
+ else if(string(arg)==string("--RinexFile")) { Args.push_back("--outRinex"); }
+ else if(string(arg)==string("--XPRN")) { Args.push_back("--exSat"); }
+ // regular arg
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+bool isSP3File(const string& file)
+{
+ SP3Header header;
+ SP3Stream strm(file.c_str());
+ strm.exceptions(fstream::failbit);
+ try { strm >> header; } catch(gpstk::Exception& e) { return false; }
+ strm.close();
+ return true;
+}
+bool isRinexNavFile(const string& file)
+{
+ RinexNavHeader header;
+ RinexNavStream rnstream(file.c_str());
+ rnstream.exceptions(fstream::failbit);
+ try { rnstream >> header; } catch(gpstk::Exception& e) { return false; }
+ rnstream.close();
+ return true;
+}
+int FillEphemerisStore(const vector<string>& files, SP3EphemerisStore& PE,
+ BCEphemerisStore& BCE) throw(Exception)
+{
+try {
+ int nread=0;
+ RinexNavHeader rnh;
+ RinexNavData rne;
+ for(int i=0; i<files.size(); i++) {
+ if(files[i].empty()) throw Exception("File name is empty");
+ RinexNavStream strm(files[i].c_str());
+ if(!strm) throw Exception("Could not open file " + files[i]);
+ strm.close();
+ if(isRinexNavFile(files[i])) {
+ RinexNavStream RNFileIn(files[i].c_str());
+ RNFileIn.exceptions(fstream::failbit);
+ try {
+ RNFileIn >> rnh;
+ while (RNFileIn >> rne)
+ {
+ if(rne.health == 0)
+ BCE.addEphemeris(rne);
+ }
+ nread++;
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught Exception while reading RINEX Nav file " << files[i]
+ << " : " << e << endl;
+ continue;
+ }
+ }
+ else if(isSP3File(files[i])) {
+ try {
+ PE.loadFile(files[i]);
+ }
+ catch(gpstk::Exception& e) {
+ cerr << "Caught Exception while reading SP3 Nav file " << files[i]
+ << " : " << e << endl;
+ continue;
+ }
+ nread++;
+ }
+ else throw Exception("File " + files[i] + " is neither BCE nor PE file.");
+ }
+ return nread;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+return -1;
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/trunk/apps/positioning/doc/brdc0200.05n b/dev/apps/positioning/doc/brdc0200.05n
similarity index 100%
rename from trunk/apps/positioning/doc/brdc0200.05n
rename to dev/apps/positioning/doc/brdc0200.05n
diff --git a/trunk/apps/positioning/doc/nga13063.apc b/dev/apps/positioning/doc/nga13063.apc
similarity index 100%
rename from trunk/apps/positioning/doc/nga13063.apc
rename to dev/apps/positioning/doc/nga13063.apc
diff --git a/trunk/apps/positioning/doc/nga13064.apc b/dev/apps/positioning/doc/nga13064.apc
similarity index 100%
rename from trunk/apps/positioning/doc/nga13064.apc
rename to dev/apps/positioning/doc/nga13064.apc
diff --git a/trunk/apps/positioning/doc/nga13065.apc b/dev/apps/positioning/doc/nga13065.apc
similarity index 100%
rename from trunk/apps/positioning/doc/nga13065.apc
rename to dev/apps/positioning/doc/nga13065.apc
diff --git a/trunk/apps/positioning/doc/rinexpvt-manual.pdf b/dev/apps/positioning/doc/rinexpvt-manual.pdf
similarity index 100%
rename from trunk/apps/positioning/doc/rinexpvt-manual.pdf
rename to dev/apps/positioning/doc/rinexpvt-manual.pdf
diff --git a/trunk/apps/positioning/doc/rinexpvt-manual.tm b/dev/apps/positioning/doc/rinexpvt-manual.tm
similarity index 100%
rename from trunk/apps/positioning/doc/rinexpvt-manual.tm
rename to dev/apps/positioning/doc/rinexpvt-manual.tm
diff --git a/trunk/apps/positioning/doc/usno0200.05m b/dev/apps/positioning/doc/usno0200.05m
similarity index 100%
rename from trunk/apps/positioning/doc/usno0200.05m
rename to dev/apps/positioning/doc/usno0200.05m
diff --git a/trunk/apps/positioning/doc/usno0200.05o b/dev/apps/positioning/doc/usno0200.05o
similarity index 100%
rename from trunk/apps/positioning/doc/usno0200.05o
rename to dev/apps/positioning/doc/usno0200.05o
diff --git a/dev/apps/positioning/examples/brdc3040.03n b/dev/apps/positioning/examples/brdc3040.03n
new file mode 100644
index 0000000..7648f38
--- /dev/null
+++ b/dev/apps/positioning/examples/brdc3040.03n
@@ -0,0 +1,2992 @@
+ 2 NAVIGATION DATA RINEX VERSION / TYPE
+CCRINEXN V1.6.0 UX CDDIS 31-OCT-00 23:49 PGM / RUN BY / DATE
+IGS BROADCAST EPHEMERIS FILE COMMENT
+ 0.4005D-07 0.1490D-07 -0.1192D-06 0.5961D-07 ION ALPHA
+ 0.1516D+06 -0.4915D+05 -0.1311D+06 -0.1966D+06 ION BETA
+ 0.558793544769D-08 0.000000000000D+00 61440 1243 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 1 03 10 31 0 0 0.0 0.312711577863D-03 0.204636307899D-11 0.000000000000D+00
+ 0.650000000000D+02-0.953750000000D+02 0.409588489576D-08 0.926125877980D+00
+ -0.495649874210D-05 0.523868144955D-02 0.606477260590D-05 0.515364990425D+04
+ 0.432000000000D+06-0.102445483208D-06 0.490846461908D+00-0.111758708954D-07
+ 0.976506008789D+00 0.274156250000D+03-0.172970014313D+01-0.804676375144D-08
+ -0.717887045734D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.325962901115D-08 0.577000000000D+03
+ 0.424818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 0 0 0.0-0.212850049138D-03-0.670752342558D-11 0.000000000000D+00
+ 0.750000000000D+02 0.203125000000D+01 0.558701843603D-08-0.214426554767D+00
+ -0.167638063431D-07 0.230870664818D-01 0.783987343311D-05 0.515374679184D+04
+ 0.432000000000D+06-0.311061739922D-06 0.246731459344D+01 0.232830643654D-06
+ 0.932334707117D+00 0.222281250000D+03-0.174964226202D+01-0.879929509739D-08
+ 0.280725979078D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.186264514923D-08 0.331000000000D+03
+ 0.428808000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 0 0 0.0 0.573261640966D-04 0.329691829393D-11 0.000000000000D+00
+ 0.920000000000D+02 0.291875000000D+02 0.535415159333D-08 0.286447201308D+01
+ 0.157020986080D-05 0.498687615618D-02 0.831484794617D-05 0.515364925385D+04
+ 0.432000000000D+06-0.875443220139D-07-0.274398401882D+01-0.428408384323D-07
+ 0.929720769482D+00 0.203281250000D+03 0.501887204131D+00-0.821534220198D-08
+ -0.280368821344D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.348000000000D+03
+ 0.424800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 0 0 0.0-0.287126749754D-05-0.477484718431D-11 0.000000000000D+00
+ 0.111000000000D+03 0.975000000000D+02 0.440339770490D-08 0.150048581554D-01
+ 0.496208667755D-05 0.644999532960D-02 0.766851007938D-05 0.515372313690D+04
+ 0.432000000000D+06 0.633299350739D-07-0.160302678640D+01-0.372529029846D-07
+ 0.962589814770D+00 0.232500000000D+03-0.157877909917D+00-0.807569352791D-08
+ -0.204294223960D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.111000000000D+03
+ 0.430818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 0 0 0.0 0.299839302897D-05 0.147792889038D-11 0.000000000000D+00
+ 0.130000000000D+03-0.184375000000D+01 0.537986695020D-08-0.358755694243D+00
+ 0.186264514923D-07 0.494052295107D-02 0.764802098274D-05 0.515361676598D+04
+ 0.432000000000D+06 0.558793544769D-07 0.249151430719D+01 0.465661287308D-07
+ 0.935758387464D+00 0.222656250000D+03 0.781343274861D+00-0.833534720067D-08
+ 0.252867675811D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.419095158577D-08 0.898000000000D+03
+ 0.424818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 0 0 0.0 0.641074497253D-03 0.250111042988D-11 0.000000000000D+00
+ 0.238000000000D+03 0.347187500000D+02 0.508164024214D-08 0.297999625168D+01
+ 0.176765024662D-05 0.127047683345D-01 0.795722007752D-05 0.515367559242D+04
+ 0.432000000000D+06 0.171363353729D-06-0.272081319437D+01-0.191852450371D-06
+ 0.938906285810D+00 0.210750000000D+03-0.185903859281D+01-0.794997400547D-08
+ -0.363943731146D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.750000000000D+03
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 0 0 0.0 0.401330180466D-03 0.000000000000D+00 0.000000000000D+00
+ 0.760000000000D+02-0.692500000000D+02 0.433910931275D-08 0.100890615665D+01
+ -0.368058681488D-05 0.902142585255D-02 0.933371484280D-05 0.515369836044D+04
+ 0.432000000000D+06 0.139698386192D-06 0.154785445341D+01-0.987201929092D-07
+ 0.962769929244D+00 0.198781250000D+03 0.233417007125D+01-0.788782855972D-08
+ 0.385730352932D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.760000000000D+02
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 0 0 0.0-0.143209472299D-04-0.181898940355D-11 0.000000000000D+00
+ 0.670000000000D+02-0.596562500000D+02 0.473769734411D-08 0.643243847677D+00
+ -0.314041972160D-05 0.150460912846D-01 0.858493149281D-05 0.515361177445D+04
+ 0.432000000000D+06-0.195577740669D-06 0.148223440570D+01 0.108033418655D-06
+ 0.949491118391D+00 0.212375000000D+03 0.998321259699D+00-0.822105672573D-08
+ 0.190722230061D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.558793544769D-08 0.835000000000D+03
+ 0.427068000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 0 0 0.0 0.335699878633D-04 0.568434188608D-12 0.000000000000D+00
+ 0.138000000000D+03 0.379062500000D+02 0.413017203824D-08-0.217513336491D+01
+ 0.195391476154D-05 0.558676221408D-02 0.320188701153D-05 0.515359864426D+04
+ 0.432000000000D+06-0.204890966415D-07-0.569179905565D+00-0.856816768646D-07
+ 0.980979066607D+00 0.329687500000D+03 0.231814150984D+00-0.810533761985D-08
+ 0.592881838765D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.394000000000D+03
+ 0.425178000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 0 0 0.0 0.747693702579D-04 0.216004991671D-11 0.000000000000D+00
+ 0.420000000000D+02 0.895937500000D+02 0.570416617285D-08 0.171031347082D+01
+ 0.474601984024D-05 0.223754288163D-02 0.668317079544D-05 0.515370319176D+04
+ 0.432000000000D+06 0.104308128357D-06-0.171961918781D+01 0.186264514923D-07
+ 0.909847527693D+00 0.221218750000D+03-0.156736384699D+00-0.861500170654D-08
+ -0.236438420038D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.116415321827D-07 0.420000000000D+02
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 0 0 0.0-0.317534431815D-04-0.113686837722D-12 0.000000000000D+00
+ 0.178000000000D+03-0.101718750000D+03 0.390944855851D-08-0.197925615788D+01
+ -0.511854887009D-05 0.196465966292D-02 0.594928860664D-05 0.515378039169D+04
+ 0.432000000000D+06-0.242143869400D-07 0.472752080227D+00-0.130385160446D-07
+ 0.980731637421D+00 0.275781250000D+03 0.722505492374D+00-0.789140013706D-08
+ -0.442875590403D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.111758708954D-07 0.434000000000D+03
+ 0.425508000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 0 0 0.0-0.192890875042D-04 0.341060513165D-12 0.000000000000D+00
+ 0.221000000000D+03-0.817812500000D+02 0.394409285873D-08 0.237219510695D+01
+ -0.419095158577D-05 0.133894139435D-02 0.577606260777D-05 0.515375070000D+04
+ 0.432000000000D+06-0.372529029846D-08 0.464595454666D+00 0.111758708954D-07
+ 0.975230389575D+00 0.274343750000D+03-0.133579232829D+01-0.786961351528D-08
+ 0.292869342041D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.477000000000D+03
+ 0.424800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 0 0 0.0 0.179409515113D-03 0.511590769747D-11 0.000000000000D+00
+ 0.121000000000D+03 0.819375000000D+02 0.425696303388D-08 0.904539913147D+00
+ 0.403635203838D-05 0.847139139660D-02 0.702962279320D-05 0.515376340866D+04
+ 0.432000000000D+06 0.204890966415D-07-0.155201666601D+01-0.176951289177D-06
+ 0.969511706751D+00 0.247281250000D+03 0.215814516727D+01-0.801676250177D-08
+ -0.147863301957D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.232830643654D-08 0.889000000000D+03
+ 0.424800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 0 0 0.0 0.802893191576D-05 0.250111042988D-11 0.000000000000D+00
+ 0.930000000000D+02 0.246875000000D+01 0.476877006699D-08-0.223249198654D-01
+ -0.108033418655D-06 0.203714414965D-02 0.766292214394D-05 0.515369160080D+04
+ 0.432000000000D+06-0.372529029846D-07 0.255801510181D+01 0.000000000000D+00
+ 0.961151699003D+00 0.232875000000D+03-0.161454835615D+01-0.803997775449D-08
+ 0.177507393895D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.931322574615D-08 0.605000000000D+03
+ 0.425448000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 0 0 0.0 0.107204541564D-03-0.345607986674D-10 0.000000000000D+00
+ 0.233000000000D+03 0.990312500000D+02 0.420874673977D-08 0.126414788006D+01
+ 0.533461570740D-05 0.159157161834D-01 0.800937414169D-05 0.515306077576D+04
+ 0.432000000000D+06-0.447034835815D-07-0.151063963735D+01 0.216066837311D-06
+ 0.971568755361D+00 0.229968750000D+03-0.284520849506D+01-0.805140680198D-08
+ -0.371086885830D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.139698386192D-08 0.233000000000D+03
+ 0.424818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 0 0 0.0-0.205920077860D-03 0.147792889038D-11 0.000000000000D+00
+ 0.216000000000D+03 0.232812500000D+02 0.453018870054D-08-0.138055871139D+01
+ 0.114925205708D-05 0.199623510707D-02 0.274181365967D-05 0.515378721046D+04
+ 0.432000000000D+06 0.149011611939D-07-0.585611540408D+00 0.372529029846D-08
+ 0.964635911975D+00 0.327875000000D+03 0.173382896315D+01-0.830820321287D-08
+ -0.575023952056D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.472000000000D+03
+ 0.429048000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 0 0 0.0 0.609015114605D-04 0.306954461848D-11 0.000000000000D+00
+ 0.214000000000D+03 0.770937500000D+02 0.462090676503D-08 0.861714591197D+00
+ 0.399723649025D-05 0.803145556711D-02 0.708363950253D-05 0.515372436905D+04
+ 0.432000000000D+06 0.141561031342D-06-0.157704631513D+01 0.577419996262D-07
+ 0.956157207443D+00 0.235937500000D+03 0.292970136511D+01-0.813248160765D-08
+ -0.228580949886D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.121071934700D-07 0.214000000000D+03
+ 0.424800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 0 0 0.0 0.398322008550D-04 0.909494701773D-12 0.000000000000D+00
+ 0.233000000000D+03 0.128750000000D+02 0.386337521080D-08-0.264060238355D+01
+ 0.698491930962D-06 0.164771558484D-01 0.307895243168D-05 0.515386500931D+04
+ 0.432000000000D+06 0.197440385819D-06-0.518236643459D+00 0.763684511185D-07
+ 0.984647586776D+00 0.330937500000D+03-0.164489323869D+01-0.769746348739D-08
+ 0.189293599124D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.233000000000D+03
+ 0.424800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 0 0 0.0 0.713849440217D-04 0.284217094304D-11 0.000000000000D+00
+ 0.210000000000D+03 0.956250000000D+02 0.420981821297D-08 0.657709234310D+00
+ 0.492669641972D-05 0.971150386613D-02 0.814907252789D-05 0.515378886032D+04
+ 0.432000000000D+06-0.135973095894D-06-0.157845711675D+01-0.596046447754D-07
+ 0.972828191776D+00 0.231343750000D+03-0.145825281888D+01-0.807283626603D-08
+ -0.209651589973D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.210000000000D+03
+ 0.431748000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 0 0 0.0 0.544376671314D-04 0.682121026330D-12 0.000000000000D+00
+ 0.420000000000D+02-0.630312500000D+02 0.476841290925D-08 0.135489019131D+01
+ -0.336766242981D-05 0.106611008523D-01 0.884756445885D-05 0.515380008698D+04
+ 0.432000000000D+06-0.139698386192D-06 0.143393964706D+01-0.262632966042D-06
+ 0.942522710003D+00 0.198718750000D+03-0.166902063016D+01-0.818926968738D-08
+ 0.321799118511D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.745058059692D-08 0.298000000000D+03
+ 0.424818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 0 0 0.0 0.504672992975D-03-0.534328137292D-11 0.000000000000D+00
+ 0.150000000000D+02-0.986875000000D+02 0.390944855851D-08 0.240272914919D+01
+ -0.522844493389D-05 0.147283663973D-01 0.498443841934D-05 0.515361093903D+04
+ 0.432000000000D+06-0.160187482834D-06 0.475919268611D+00-0.126659870148D-06
+ 0.979137997371D+00 0.297250000000D+03 0.532756207800D+00-0.783246911092D-08
+ -0.375015620906D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.271000000000D+03
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 0 0 0.0 0.767324585468D-03 0.253521648119D-10 0.000000000000D+00
+ 0.193000000000D+03-0.613125000000D+02 0.478948521557D-08-0.152798495962D+00
+ -0.307522714138D-05 0.175210433081D-01 0.924430787563D-05 0.515361030197D+04
+ 0.432000000000D+06-0.204890966415D-07 0.146131024891D+01 0.292435288429D-06
+ 0.947045148620D+00 0.196312500000D+03-0.224804594661D+01-0.836856286995D-08
+ 0.388587614805D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.193000000000D+03
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 0 0 0.0 0.315252691507D-06 0.238742359215D-11 0.000000000000D+00
+ 0.990000000000D+02-0.140625000000D+01 0.473091134716D-08-0.159773532832D+01
+ -0.109896063805D-06 0.799751246814D-02 0.748038291931D-05 0.515368644333D+04
+ 0.432000000000D+06 0.147148966789D-06 0.256894635778D+01-0.726431608200D-07
+ 0.959082072224D+00 0.231125000000D+03-0.242950581069D+01-0.786568478020D-08
+ 0.247867467532D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.355000000000D+03
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 0 0 0.0 0.146614853293D-03 0.127329258248D-10 0.000000000000D+00
+ 0.430000000000D+02-0.869687500000D+02 0.410052794631D-08-0.147800358663D+01
+ -0.431202352047D-05 0.801343296189D-02 0.481680035591D-05 0.515368371963D+04
+ 0.432000000000D+06 0.372529029846D-08 0.443983935176D+00 0.251457095146D-06
+ 0.976118222854D+00 0.295500000000D+03-0.154555886431D+01-0.806890753096D-08
+ -0.275011455331D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.430000000000D+02
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 0 0 0.0 0.600159633905D-03 0.255795384874D-10 0.000000000000D+00
+ 0.201000000000D+03 0.625000000000D-01 0.518521598506D-08-0.137951864100D+01
+ 0.195577740669D-06 0.722007988952D-02 0.742822885513D-05 0.515373892212D+04
+ 0.432000000000D+06 0.651925802231D-07 0.253134941728D+01 0.126659870148D-06
+ 0.942742659736D+00 0.227468750000D+03 0.127896983542D+01-0.820712757409D-08
+ 0.226795161215D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.838190317154D-08 0.457000000000D+03
+ 0.424818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 0 0 0.0 0.429215375334D-03 0.420641299570D-11 0.000000000000D+00
+ 0.110000000000D+03 0.269062500000D+02 0.518700177373D-08 0.186183459206D+01
+ 0.133179128170D-05 0.118465248961D-01 0.853277742863D-05 0.515376661873D+04
+ 0.432000000000D+06-0.236555933952D-06-0.272176507566D+01-0.165775418282D-06
+ 0.938359967831D+00 0.205375000000D+03 0.944754792372D+00-0.817141180067D-08
+ -0.282154610015D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.366000000000D+03
+ 0.424818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 1 59 44.0 0.312718097121D-03 0.204636307899D-11 0.000000000000D+00
+ 0.900000000000D+02-0.881562500000D+02 0.407909848225D-08 0.197405385735D+01
+ -0.474415719509D-05 0.523818808142D-02 0.580400228500D-05 0.515364913177D+04
+ 0.439184000000D+06 0.484287738800D-07 0.490788884378D+00-0.104308128357D-06
+ 0.976506340872D+00 0.275000000000D+03-0.172976854479D+01-0.787675666996D-08
+ -0.432160858377D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.325962901115D-08 0.858000000000D+03
+ 0.438690000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 1 59 44.0 0.573545694351D-04 0.329691829393D-11 0.000000000000D+00
+ 0.113000000000D+03 0.188125000000D+02 0.537986695020D-08-0.237095803708D+01
+ 0.774860382080D-06 0.498818198685D-02 0.822171568871D-05 0.515364655876D+04
+ 0.439184000000D+06 0.149011611939D-07-0.274404380389D+01-0.117346644402D-06
+ 0.929718686287D+00 0.205656250000D+03 0.502000831904D+00-0.829713132311D-08
+ -0.208222959036D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.113000000000D+03
+ 0.438720000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 1 59 44.0 0.641092658043D-03 0.250111042988D-11 0.000000000000D+00
+ 0.250000000000D+02 0.363125000000D+02 0.509092634323D-08-0.225534887023D+01
+ 0.188313424587D-05 0.127049001167D-01 0.791437923908D-05 0.515367529297D+04
+ 0.439184000000D+06 0.191852450371D-06-0.272087132488D+01 0.614672899246D-07
+ 0.938904439607D+00 0.211906250000D+03-0.185902809637D+01-0.795425989828D-08
+ -0.179293182566D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.250000000000D+02
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 1 59 44.0 0.401343218982D-03 0.113686837722D-12 0.000000000000D+00
+ 0.980000000000D+02-0.586562500000D+02 0.425267714107D-08 0.205657568081D+01
+ -0.289082527161D-05 0.902120117098D-02 0.943988561630D-05 0.515370108414D+04
+ 0.439184000000D+06 0.167638063431D-07 0.154779937894D+01 0.111758708954D-06
+ 0.962772926763D+00 0.195781250000D+03 0.233432996674D+01-0.770103506474D-08
+ 0.256796410887D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.980000000000D+02
+ 0.432858000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 1 59 44.0 0.179431401193D-03 0.500222085975D-11 0.000000000000D+00
+ 0.146000000000D+03 0.849375000000D+02 0.424517682866D-08 0.195237537757D+01
+ 0.443682074547D-05 0.847072713077D-02 0.727921724320D-05 0.515376256180D+04
+ 0.439184000000D+06 0.102445483208D-06-0.155207302493D+01 0.111758708954D-07
+ 0.969511181564D+00 0.237906250000D+03 0.215810103103D+01-0.782711174491D-08
+ -0.212866009581D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.658000000000D+03
+ 0.434580000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 1 59 44.0 0.804848968983D-05 0.250111042988D-11 0.000000000000D+00
+ 0.120000000000D+03-0.284375000000D+01 0.465626538071D-08 0.102528866085D+01
+ -0.165775418282D-06 0.203796348069D-02 0.767409801483D-05 0.515369335747D+04
+ 0.439184000000D+06-0.745058059692D-07 0.255795724194D+01-0.335276126862D-07
+ 0.961153060980D+00 0.228968750000D+03-0.161432462477D+01-0.801461955536D-08
+ 0.197508227010D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.120000000000D+03
+ 0.432060000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 1 59 44.0 0.398475676775D-04 0.909494701773D-12 0.000000000000D+00
+ 0.180000000000D+02 0.289062500000D+02 0.402338187572D-08-0.159299977911D+01
+ 0.171363353729D-05 0.164783083601D-01 0.348873436451D-05 0.515386055183D+04
+ 0.439184000000D+06 0.126659870148D-06-0.518291728177D+00 0.415369868279D-06
+ 0.984646406201D+00 0.324343750000D+03-0.164476877216D+01-0.795211695188D-08
+ -0.832177520677D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.180000000000D+02
+ 0.435690000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 1 59 44.0 0.504637137055D-03-0.534328137292D-11 0.000000000000D+00
+ 0.360000000000D+02-0.108531250000D+03 0.401088135502D-08-0.283256954117D+01
+ -0.553764402866D-05 0.147298931843D-01 0.508688390255D-05 0.515360821343D+04
+ 0.439184000000D+06-0.558793544769D-07 0.475863107186D+00-0.163912773132D-06
+ 0.979137906670D+00 0.290625000000D+03 0.532751516222D+00-0.780461080765D-08
+ -0.192865176466D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.360000000000D+02
+ 0.435540000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 1 59 44.0 0.429245177656D-03 0.420641299570D-11 0.000000000000D+00
+ 0.131000000000D+03 0.263437500000D+02 0.509842665565D-08 0.290962841599D+01
+ 0.122748315334D-05 0.118465740234D-01 0.844895839691D-05 0.515376653671D+04
+ 0.439184000000D+06-0.298023223877D-07-0.272182297357D+01-0.176951289177D-06
+ 0.938358702406D+00 0.205406250000D+03 0.944755885172D+00-0.800319050787D-08
+ -0.279654505876D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.131000000000D+03
+ 0.436728000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 2 0 0.0 0.312726479024D-03 0.204636307899D-11 0.000000000000D+00
+ 0.660000000000D+02-0.881562500000D+02 0.407909848225D-08 0.197638801190D+01
+ -0.474415719509D-05 0.523819483351D-02 0.580400228500D-05 0.515364912033D+04
+ 0.439200000000D+06 0.484287738800D-07 0.490788825862D+00-0.104308128357D-06
+ 0.976506361352D+00 0.275000000000D+03-0.172976893246D+01-0.787675666996D-08
+ -0.432160858377D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.325962901115D-08 0.578000000000D+03
+ 0.437670000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 2 0 0.0-0.212898477912D-03-0.670752342558D-11 0.000000000000D+00
+ 0.760000000000D+02-0.553125000000D+01 0.545594154758D-08 0.835680016833D+00
+ -0.424683094025D-06 0.230886652134D-01 0.810995697975D-05 0.515375028801D+04
+ 0.439200000000D+06-0.387430191040D-06 0.246725218389D+01-0.726431608200D-07
+ 0.932335785288D+00 0.211937500000D+03-0.174960666191D+01-0.877250826732D-08
+ 0.903609067516D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.332000000000D+03
+ 0.436710000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 2 0 0.0 0.573499128223D-04 0.329691829393D-11 0.000000000000D+00
+ 0.870000000000D+02 0.188125000000D+02 0.537986695020D-08-0.236862187248D+01
+ 0.772997736931D-06 0.498821598012D-02 0.822357833386D-05 0.515364655495D+04
+ 0.439200000000D+06 0.149011611939D-07-0.274404390922D+01-0.117346644402D-06
+ 0.929718692138D+00 0.205656250000D+03 0.501998549752D+00-0.829713132311D-08
+ -0.208222959036D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.599000000000D+03
+ 0.432000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 2 0 0.0-0.290572643280D-05-0.477484718431D-11 0.000000000000D+00
+ 0.112000000000D+03 0.954375000000D+02 0.441768401427D-08 0.106516947103D+01
+ 0.505521893501D-05 0.645071279723D-02 0.710226595402D-05 0.515372420692D+04
+ 0.439200000000D+06 0.763684511185D-07-0.160308454972D+01 0.353902578354D-07
+ 0.962588518624D+00 0.240125000000D+03-0.157893640675D+00-0.801426239763D-08
+ -0.228938107620D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.112000000000D+03
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 2 0 0.0 0.300956889987D-05 0.147792889038D-11 0.000000000000D+00
+ 0.131000000000D+03-0.184375000000D+01 0.527450541861D-08 0.691425028285D+00
+ -0.245869159699D-06 0.494062760845D-02 0.767968595028D-05 0.515361702919D+04
+ 0.439200000000D+06-0.335276126862D-07 0.249145484982D+01 0.633299350739D-07
+ 0.935760159058D+00 0.219781250000D+03 0.781384031759D+00-0.828463080241D-08
+ 0.191436545529D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.899000000000D+03
+ 0.433458000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 2 0 0.0-0.966712832451D-06-0.227373675443D-12 0.000000000000D+00
+ 0.228000000000D+03 0.263125000000D+02 0.529593488266D-08 0.186302961912D+01
+ 0.131130218506D-05 0.648056645878D-02 0.807829201222D-05 0.515363594055D+04
+ 0.439200000000D+06-0.119209289551D-06-0.269253904896D+01-0.173225998879D-06
+ 0.937217518049D+00 0.214000000000D+03-0.204032828587D+01-0.825141513313D-08
+ -0.253939149013D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.484000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 2 0 0.0 0.401330646128D-03 0.000000000000D+00 0.000000000000D+00
+ 0.770000000000D+02-0.586562500000D+02 0.425267714107D-08 0.205891006212D+01
+ -0.289082527161D-05 0.902120315004D-02 0.943988561630D-05 0.515370106125D+04
+ 0.439200000000D+06 0.167638063431D-07 0.154779930579D+01 0.111758708954D-06
+ 0.962772909208D+00 0.195781250000D+03 0.233432936402D+01-0.770103506474D-08
+ 0.256796410887D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.770000000000D+02
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 2 0 0.0-0.143339857459D-04-0.181898940355D-11 0.000000000000D+00
+ 0.680000000000D+02-0.845937500000D+02 0.453697469749D-08 0.169322735714D+01
+ -0.445917248726D-05 0.150477737188D-01 0.918656587601D-05 0.515361918831D+04
+ 0.439200000000D+06-0.322237610817D-06 0.148217476253D+01-0.141561031342D-06
+ 0.949493207438D+00 0.200156250000D+03 0.998555367554D+00-0.805890711440D-08
+ 0.297155234851D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.558793544769D-08 0.836000000000D+03
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 2 0 0.0 0.335741788149D-04 0.568434188608D-12 0.000000000000D+00
+ 0.139000000000D+03 0.347812500000D+02 0.414481550535D-08-0.112493824288D+01
+ 0.181794166565D-05 0.558702310082D-02 0.306405127049D-05 0.515359830666D+04
+ 0.439200000000D+06 0.651925802231D-07-0.569238104835D+00-0.109896063805D-06
+ 0.980979385523D+00 0.332125000000D+03 0.231843359606D+00-0.813212444991D-08
+ 0.175007289756D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.395000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 2 0 0.0 0.747852027416D-04 0.216004991671D-11 0.000000000000D+00
+ 0.430000000000D+02 0.801562500000D+02 0.562523431359D-08 0.276003171081D+01
+ 0.424869358540D-05 0.223659758922D-02 0.692345201969D-05 0.515370578194D+04
+ 0.439200000000D+06-0.577419996262D-07-0.171968166611D+01 0.447034835815D-07
+ 0.909846518280D+00 0.217531250000D+03-0.156283662756D+00-0.853642700502D-08
+ -0.116076263614D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.116415321827D-07 0.430000000000D+02
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 2 0 0.0-0.317539088428D-04-0.113686837722D-12 0.000000000000D+00
+ 0.173000000000D+03-0.855312500000D+02 0.405802617594D-08-0.930288192980D+00
+ -0.453740358353D-05 0.196437072009D-02 0.603124499321D-05 0.515377611923D+04
+ 0.439200000000D+06 0.149011611939D-07 0.472695321932D+00 0.223517417908D-07
+ 0.980731058105D+00 0.273687500000D+03 0.723650513966D+00-0.792890169915D-08
+ -0.753602819154D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.111758708954D-07 0.685000000000D+03
+ 0.432000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 2 0 0.0-0.192867591977D-04 0.341060513165D-12 0.000000000000D+00
+ 0.222000000000D+03-0.820312500000D+02 0.409909931537D-08-0.286036678992D+01
+ -0.421889126301D-05 0.134161685128D-02 0.504031777382D-05 0.515374551201D+04
+ 0.439200000000D+06 0.335276126862D-07 0.464539269834D+00-0.100582838059D-06
+ 0.975230301799D+00 0.294093750000D+03-0.133628421109D+01-0.787997108957D-08
+ -0.657170230921D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.478000000000D+03
+ 0.432000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 2 0 0.0 0.179446302354D-03 0.511590769747D-11 0.000000000000D+00
+ 0.122000000000D+03 0.849375000000D+02 0.424517682866D-08 0.195470754548D+01
+ 0.443682074547D-05 0.847072014585D-02 0.727921724320D-05 0.515376256943D+04
+ 0.439200000000D+06 0.102445483208D-06-0.155207310393D+01 0.111758708954D-07
+ 0.969511202045D+00 0.237906250000D+03 0.215810241057D+01-0.782711174491D-08
+ -0.212866009581D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.378000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 2 0 0.0 0.106955412775D-03-0.345607986674D-10 0.000000000000D+00
+ 0.234000000000D+03 0.110031250000D+03 0.419517474587D-08 0.231476401674D+01
+ 0.559166073799D-05 0.159164628713D-01 0.822730362415D-05 0.515305867004D+04
+ 0.439200000000D+06-0.400468707085D-06-0.151069851541D+01 0.409781932831D-07
+ 0.971567467993D+00 0.227531250000D+03-0.284527032383D+01-0.783354058412D-08
+ -0.134291308058D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.234000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 2 0 0.0 0.587059184909D-05-0.136424205266D-11 0.000000000000D+00
+ 0.132000000000D+03 0.314375000000D+02 0.459662003910D-08 0.456986302788D+00
+ 0.155717134476D-05 0.442393729463D-02 0.282935798168D-05 0.515362148666D+04
+ 0.439200000000D+06 0.186264514923D-08-0.533451864846D+00 0.167638063431D-07
+ 0.964492159793D+00 0.325062500000D+03-0.298910136896D+01-0.838249202158D-08
+ -0.796461747257D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.132000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 2 0 0.0-0.205909833312D-03 0.147792889038D-11 0.000000000000D+00
+ 0.217000000000D+03 0.250625000000D+02 0.452697428094D-08-0.330434479442D+00
+ 0.127777457237D-05 0.199687317945D-02 0.307708978653D-05 0.515378803635D+04
+ 0.439200000000D+06 0.298023223877D-07-0.585671417645D+00 0.130385160446D-07
+ 0.964635500895D+00 0.320468750000D+03 0.173381672584D+01-0.831284626341D-08
+ -0.471448209139D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.473000000000D+03
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 2 0 0.0 0.609233975411D-04 0.306954461848D-11 0.000000000000D+00
+ 0.215000000000D+03 0.934687500000D+02 0.455411826873D-08 0.191144107327D+01
+ 0.501051545143D-05 0.803199433722D-02 0.817142426968D-05 0.515373085403D+04
+ 0.439200000000D+06 0.596046447754D-07-0.157710450270D+01 0.135973095894D-06
+ 0.956155463644D+00 0.217656250000D+03 0.293012329702D+01-0.809212278368D-08
+ -0.245367363393D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.121071934700D-07 0.215000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 2 0 0.0 0.398387201130D-04 0.909494701773D-12 0.000000000000D+00
+ 0.234000000000D+03 0.289062500000D+02 0.402338187572D-08-0.159066757901D+01
+ 0.171363353729D-05 0.164783147629D-01 0.348873436451D-05 0.515386058235D+04
+ 0.439200000000D+06 0.126659870148D-06-0.518291840821D+00 0.415369868279D-06
+ 0.984646438385D+00 0.324343750000D+03-0.164476765010D+01-0.795211695188D-08
+ -0.832177520677D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.234000000000D+03
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 2 0 0.0 0.714054331183D-04 0.284217094304D-11 0.000000000000D+00
+ 0.211000000000D+03 0.984687500000D+02 0.410409952365D-08 0.170771093370D+01
+ 0.489503145218D-05 0.971140828915D-02 0.738352537155D-05 0.515379060936D+04
+ 0.439200000000D+06 0.119209289551D-06-0.157851470014D+01-0.206753611565D-06
+ 0.972828166907D+00 0.240531250000D+03-0.145814625408D+01-0.778068123946D-08
+ -0.162149611325D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.211000000000D+03
+ 0.434838000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 2 0 0.0 0.544427894056D-04 0.682121026330D-12 0.000000000000D+00
+ 0.430000000000D+02-0.680625000000D+02 0.460947771754D-08 0.240495028162D+01
+ -0.349432229996D-05 0.106614341494D-01 0.839494168758D-05 0.515380073166D+04
+ 0.439200000000D+06 0.165775418282D-06 0.143388248792D+01-0.633299350739D-07
+ 0.942526374612D+00 0.203937500000D+03-0.166897700156D+01-0.784211236974D-08
+ 0.268225458381D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.299000000000D+03
+ 0.432000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 2 0 0.0 0.504634343088D-03-0.534328137292D-11 0.000000000000D+00
+ 0.100000000000D+02-0.108531250000D+03 0.401088135502D-08-0.283023604201D+01
+ -0.553764402866D-05 0.147298796801D-01 0.508688390255D-05 0.515360821152D+04
+ 0.439200000000D+06-0.558793544769D-07 0.475863042817D+00-0.163912773132D-06
+ 0.979137897892D+00 0.290625000000D+03 0.532751805880D+00-0.780461080765D-08
+ -0.192865176466D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.522000000000D+03
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 2 0 0.0 0.767507124692D-03 0.253521648119D-10 0.000000000000D+00
+ 0.188000000000D+03-0.571562500000D+02 0.475341228442D-08 0.897425966354D+00
+ -0.282563269138D-05 0.175214878982D-01 0.941380858421D-05 0.515361107254D+04
+ 0.439200000000D+06-0.290572643280D-06 0.146125190774D+01 0.596046447754D-07
+ 0.947047205483D+00 0.195968750000D+03-0.224805039095D+01-0.826391565383D-08
+ 0.105718689322D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.444000000000D+03
+ 0.432000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 2 0 0.0 0.332016497850D-06 0.238742359215D-11 0.000000000000D+00
+ 0.100000000000D+03-0.115625000000D+01 0.480520015587D-08-0.547546982524D+00
+ 0.745058059692D-07 0.799768196885D-02 0.756606459618D-05 0.515368677139D+04
+ 0.439200000000D+06 0.391155481339D-07 0.256888946051D+01 0.171363353729D-06
+ 0.959082493544D+00 0.233093750000D+03-0.242951958553D+01-0.811462372094D-08
+ 0.167149819604D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.356000000000D+03
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 2 0 0.0 0.146706122905D-03 0.127329258248D-10 0.000000000000D+00
+ 0.440000000000D+02-0.927500000000D+02 0.414588697855D-08-0.427944987044D+00
+ -0.470131635666D-05 0.801303831395D-02 0.515021383762D-05 0.515368187332D+04
+ 0.439200000000D+06-0.126659870148D-06 0.443925194626D+00 0.145286321640D-06
+ 0.976117782515D+00 0.290531250000D+03-0.154544455481D+01-0.815105380982D-08
+ -0.228580949886D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.440000000000D+02
+ 0.432018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 2 0 0.0 0.600343570113D-03 0.255795384874D-10 0.000000000000D+00
+ 0.202000000000D+03-0.218750000000D+01 0.517414409530D-08-0.329424932842D+00
+ -0.130385160446D-06 0.721978663933D-02 0.775232911110D-05 0.515373801613D+04
+ 0.439200000000D+06-0.279396772385D-07 0.253128982823D+01 0.838190317154D-07
+ 0.942744011472D+00 0.224937500000D+03 0.127902235418D+01-0.828463080241D-08
+ 0.235366946835D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.838190317154D-08 0.458000000000D+03
+ 0.438048000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 2 0 0.0 0.429245643318D-03 0.420641299570D-11 0.000000000000D+00
+ 0.105000000000D+03 0.263437500000D+02 0.509842665565D-08 0.291196291433D+01
+ 0.122748315334D-05 0.118465790292D-01 0.844895839691D-05 0.515376654053D+04
+ 0.439200000000D+06-0.298023223877D-07-0.272182306281D+01-0.176951289177D-06
+ 0.938358698018D+00 0.205406250000D+03 0.944754975237D+00-0.800319050787D-08
+ -0.279654505876D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.605359673500D-08 0.617000000000D+03
+ 0.432000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 3 59 44.0 0.312732998282D-03 0.204636307899D-11 0.000000000000D+00
+ 0.910000000000D+02-0.825312500000D+02 0.405981196461D-08 0.302409578552D+01
+ -0.436976552010D-05 0.523778016213D-02 0.547617673874D-05 0.515365062141D+04
+ 0.446384000000D+06 0.633299350739D-07 0.490732449388D+00-0.447034835815D-07
+ 0.976506077546D+00 0.280906250000D+03-0.172961881073D+01-0.784496963162D-08
+ -0.517878714584D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.347000000000D+03
+ 0.441258000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 3 59 44.0 0.573783181608D-04 0.329691829393D-11 0.000000000000D+00
+ 0.114000000000D+03 0.218437500000D+02 0.538879589355D-08-0.132108488577D+01
+ 0.103190541267D-05 0.498883519322D-02 0.738911330700D-05 0.515364321327D+04
+ 0.446384000000D+06 0.763684511185D-07-0.274410354947D+01-0.104308128357D-06
+ 0.929717207276D+00 0.218093750000D+03 0.502332620261D+00-0.831606068302D-08
+ -0.215723271454D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.114000000000D+03
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 3 59 44.0 0.401344150305D-03 0.113686837722D-12 0.000000000000D+00
+ 0.990000000000D+02-0.525000000000D+02 0.431660837549D-08 0.310677654773D+01
+ -0.264123082161D-05 0.902218359988D-02 0.929459929466D-05 0.515369920158D+04
+ 0.446384000000D+06 0.558793544769D-08 0.154774407625D+01 0.670552253723D-07
+ 0.962774625210D+00 0.201187500000D+03 0.233429178311D+01-0.769817780286D-08
+ 0.229295265354D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.990000000000D+02
+ 0.439200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 3 59 44.0-0.143512152135D-04-0.181898940355D-11 0.000000000000D+00
+ 0.920000000000D+02-0.843750000000D+02 0.449054419205D-08 0.274121624510D+01
+ -0.436417758465D-05 0.150487902574D-01 0.951252877712D-05 0.515361566925D+04
+ 0.446384000000D+06 0.372529029846D-07 0.148211829096D+01-0.141561031342D-06
+ 0.949496945193D+00 0.185875000000D+03 0.998447970348D+00-0.771532137410D-08
+ 0.296440919383D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.920000000000D+02
+ 0.439338000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 3 59 44.0 0.335825607181D-04 0.568434188608D-12 0.000000000000D+00
+ 0.160000000000D+03 0.281875000000D+02 0.418624580251D-08-0.769437212206D-01
+ 0.144727528095D-05 0.558722438291D-02 0.301562249661D-05 0.515359925270D+04
+ 0.446384000000D+06 0.987201929092D-07-0.569296606929D+00-0.130385160446D-07
+ 0.980979114883D+00 0.330875000000D+03 0.231738427419D+00-0.818569811004D-08
+ -0.182150444440D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.160000000000D+03
+ 0.444918000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 3 59 44.0-0.317539088428D-04-0.113686837722D-12 0.000000000000D+00
+ 0.199000000000D+03-0.761875000000D+02 0.403016787267D-08 0.117784856658D+00
+ -0.405311584473D-05 0.196608749684D-02 0.550411641598D-05 0.515377952194D+04
+ 0.446384000000D+06-0.558793544769D-08 0.472638196444D+00 0.111758708954D-07
+ 0.980730442217D+00 0.282812500000D+03 0.723357943516D+00-0.794961684774D-08
+ -0.725030200418D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.199000000000D+03
+ 0.441948000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 3 59 44.0 0.179467722774D-03 0.500222085975D-11 0.000000000000D+00
+ 0.147000000000D+03 0.953750000000D+02 0.425589156068D-08 0.300231708562D+01
+ 0.500306487083D-05 0.846969767008D-02 0.812113285065D-05 0.515376584244D+04
+ 0.446384000000D+06 0.689178705216D-07-0.155212993391D+01 0.149011611939D-06
+ 0.969509957101D+00 0.226562500000D+03 0.215828254991D+01-0.781996859022D-08
+ -0.105004373854D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.659000000000D+03
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 3 59 44.0 0.398545525968D-04 0.909494701773D-12 0.000000000000D+00
+ 0.190000000000D+02 0.349375000000D+02 0.423374778116D-08-0.542917177423D+00
+ 0.190176069737D-05 0.164788065013D-01 0.365823507309D-05 0.515386149979D+04
+ 0.446384000000D+06-0.225380063057D-06-0.518352079399D+00 0.260770320892D-07
+ 0.984644170862D+00 0.323562500000D+03-0.164478668998D+01-0.844213736319D-08
+ 0.475019786481D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.190000000000D+02
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 3 59 44.0 0.504598487169D-03-0.534328137292D-11 0.000000000000D+00
+ 0.370000000000D+02-0.102593750000D+03 0.396480800731D-08-0.178227309304D+01
+ -0.525638461113D-05 0.147287257714D-01 0.553205609322D-05 0.515361127663D+04
+ 0.446384000000D+06 0.856816768646D-07 0.475806236245D+00-0.134110450745D-06
+ 0.979138071979D+00 0.279812500000D+03 0.532671482900D+00-0.785139847083D-08
+ 0.607168148133D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.370000000000D+02
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 3 59 44.0 0.429275445640D-03 0.420641299570D-11 0.000000000000D+00
+ 0.132000000000D+03 0.189687500000D+02 0.512414201251D-08-0.232348718367D+01
+ 0.685453414917D-06 0.118484601844D-01 0.756606459618D-05 0.515376279259D+04
+ 0.446384000000D+06 0.143423676491D-06-0.272188165853D+01-0.949949026108D-07
+ 0.938357031754D+00 0.217968750000D+03 0.944816069622D+00-0.806855037322D-08
+ -0.141791620476D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.132000000000D+03
+ 0.444420000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 4 0 0.0-0.212946906686D-03-0.670752342558D-11 0.000000000000D+00
+ 0.770000000000D+02-0.124375000000D+02 0.512092759290D-08 0.188578595060D+01
+ -0.996515154839D-06 0.230891440297D-01 0.758096575737D-05 0.515375190735D+04
+ 0.446400000000D+06 0.169500708580D-06 0.246718992795D+01-0.594183802605D-06
+ 0.932340131617D+00 0.213437500000D+03-0.174957300163D+01-0.804569227824D-08
+ 0.259653672761D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.589000000000D+03
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 4 0 0.0-0.294065102935D-05-0.477484718431D-11 0.000000000000D+00
+ 0.113000000000D+03 0.884687500000D+02 0.447518640948D-08 0.211538727999D+01
+ 0.476837158203D-05 0.645029405132D-02 0.723823904991D-05 0.515372340584D+04
+ 0.446400000000D+06 0.223517417908D-07-0.160314258075D+01 0.154599547386D-06
+ 0.962587030836D+00 0.241500000000D+03-0.157960911500D+00-0.799997608826D-08
+ -0.151434879299D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.113000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 4 0 0.0 0.302074477077D-05 0.147792889038D-11 0.000000000000D+00
+ 0.132000000000D+03-0.281250000000D+01 0.520414534497D-08 0.174157502514D+01
+ -0.191852450371D-06 0.494089571293D-02 0.770762562752D-05 0.515361782455D+04
+ 0.446400000000D+06-0.745058059692D-07 0.249139512911D+01 0.186264514923D-07
+ 0.935761592718D+00 0.216375000000D+03 0.781454417136D+00-0.825891544555D-08
+ 0.206437170365D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.900000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 4 0 0.0-0.968575477600D-06-0.227373675443D-12 0.000000000000D+00
+ 0.229000000000D+03 0.317500000000D+02 0.515664336632D-08 0.291316929655D+01
+ 0.152550637722D-05 0.647987902630D-02 0.791810452938D-05 0.515363745117D+04
+ 0.446400000000D+06 0.707805156708D-07-0.269259737404D+01-0.838190317154D-07
+ 0.937216366732D+00 0.217031250000D+03-0.204025938828D+01-0.807283626603D-08
+ -0.276797244002D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.485000000000D+03
+ 0.442338000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 4 0 0.0 0.641110818833D-03 0.250111042988D-11 0.000000000000D+00
+ 0.260000000000D+02 0.300937500000D+02 0.515307178898D-08-0.120275202877D+01
+ 0.186450779438D-05 0.127046866110D-01 0.794790685177D-05 0.515367723084D+04
+ 0.446400000000D+06 0.130385160446D-07-0.272092883804D+01 0.361353158951D-06
+ 0.938901531326D+00 0.215968750000D+03-0.185910816334D+01-0.827105880851D-08
+ -0.272154193457D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.260000000000D+02
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 4 0 0.0-0.143474899232D-04-0.181898940355D-11 0.000000000000D+00
+ 0.630000000000D+02-0.843750000000D+02 0.449054419205D-08 0.274355024459D+01
+ -0.436417758465D-05 0.150487968931D-01 0.951252877712D-05 0.515361565781D+04
+ 0.446400000000D+06 0.372529029846D-07 0.148211821197D+01-0.141561031342D-06
+ 0.949496932027D+00 0.185875000000D+03 0.998447835760D+00-0.771532137410D-08
+ 0.296440919383D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.558793544769D-08 0.575000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 4 0 0.0 0.335783697665D-04 0.568434188608D-12 0.000000000000D+00
+ 0.134000000000D+03 0.281562500000D+02 0.418624580251D-08-0.746077745933D-01
+ 0.144727528095D-05 0.558721134439D-02 0.301562249661D-05 0.515359923744D+04
+ 0.446400000000D+06 0.987201929092D-07-0.569296715185D+00-0.130385160446D-07
+ 0.980979144142D+00 0.330875000000D+03 0.231736443702D+00-0.818569811004D-08
+ -0.182150444440D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.646000000000D+03
+ 0.443598000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 4 0 0.0 0.748005695641D-04 0.216004991671D-11 0.000000000000D+00
+ 0.440000000000D+02 0.757500000000D+02 0.562916304866D-08-0.247327611481D+01
+ 0.400468707085D-05 0.223887374159D-02 0.798143446446D-05 0.515370136261D+04
+ 0.446400000000D+06-0.372529029846D-07-0.171974303406D+01 0.931322574616D-08
+ 0.909845836560D+00 0.200656250000D+03-0.155990915294D+00-0.850928301722D-08
+ -0.107861635727D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.116415321827D-07 0.440000000000D+02
+ 0.439200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 4 0 0.0-0.317543745041D-04-0.113686837722D-12 0.000000000000D+00
+ 0.174000000000D+03-0.761875000000D+02 0.403016787267D-08 0.120120501924D+00
+ -0.405311584473D-05 0.196607748512D-02 0.550411641598D-05 0.515377951431D+04
+ 0.446400000000D+06-0.558793544769D-08 0.472638115983D+00 0.111758708954D-07
+ 0.980730434902D+00 0.282812500000D+03 0.723355892505D+00-0.794961684774D-08
+ -0.725030200418D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.111758708954D-07 0.686000000000D+03
+ 0.439200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 4 0 0.0-0.192844308913D-04 0.341060513165D-12 0.000000000000D+00
+ 0.223000000000D+03-0.900625000000D+02 0.420231790055D-08-0.180933472953D+01
+ -0.480003654957D-05 0.134071870707D-02 0.456720590591D-05 0.515374831581D+04
+ 0.446400000000D+06 0.447034835815D-07 0.464482545185D+00 0.106170773506D-06
+ 0.975228765735D+00 0.301781250000D+03-0.133718289044D+01-0.805854995667D-08
+ -0.153934983439D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.479000000000D+03
+ 0.439590000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 4 0 0.0 0.806618481875D-05 0.250111042988D-11 0.000000000000D+00
+ 0.121000000000D+03-0.390625000000D+01 0.457233331318D-08 0.207782304302D+01
+ -0.176951289177D-06 0.203803845216D-02 0.772811472416D-05 0.515369324303D+04
+ 0.446400000000D+06 0.596046447754D-07 0.255789984728D+01-0.596046447754D-07
+ 0.961155145638D+00 0.228343750000D+03-0.161435578931D+01-0.787747098543D-08
+ 0.205008539429D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.121000000000D+03
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 4 0 0.0 0.106706749648D-03-0.345607986674D-10 0.000000000000D+00
+ 0.229000000000D+03 0.110718750000D+03 0.402659629533D-08-0.291790459414D+01
+ 0.556372106075D-05 0.159144429490D-01 0.747852027416D-05 0.515306249809D+04
+ 0.446400000000D+06-0.227242708206D-06-0.151075431988D+01-0.175088644028D-06
+ 0.971567472382D+00 0.243343750000D+03-0.284523406687D+01-0.766781939546D-08
+ -0.842892252703D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.485000000000D+03
+ 0.440268000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 4 0 0.0 0.586081296206D-05-0.136424205266D-11 0.000000000000D+00
+ 0.133000000000D+03 0.409687500000D+02 0.461804950316D-08 0.150705743812D+01
+ 0.216811895371D-05 0.442485196982D-02 0.294297933579D-05 0.515362344360D+04
+ 0.446400000000D+06 0.409781932831D-07-0.533512514503D+00 0.484287738800D-07
+ 0.964491653623D+00 0.325093750000D+03-0.298896005400D+01-0.840034990829D-08
+ -0.371444043564D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.133000000000D+03
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 4 0 0.0-0.205899588764D-03 0.147792889038D-11 0.000000000000D+00
+ 0.218000000000D+03 0.314687500000D+02 0.449625871580D-08 0.719948650968D+00
+ 0.160560011864D-05 0.199690717273D-02 0.329129397869D-05 0.515378789711D+04
+ 0.446400000000D+06-0.782310962677D-07-0.585731615261D+00 0.447034835815D-07
+ 0.964635557949D+00 0.315500000000D+03 0.173354417104D+01-0.826748723117D-08
+ 0.367872466222D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.474000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 4 0 0.0 0.609452836216D-04 0.306954461848D-11 0.000000000000D+00
+ 0.216000000000D+03 0.104656250000D+03 0.454983237592D-08 0.296170737797D+01
+ 0.545755028725D-05 0.803320051637D-02 0.815279781818D-05 0.515372799683D+04
+ 0.446400000000D+06-0.158324837685D-06-0.157716323886D+01 0.409781932831D-07
+ 0.956154729259D+00 0.219812500000D+03 0.293000462949D+01-0.794961684774D-08
+ -0.939324840936D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.121071934700D-07 0.216000000000D+03
+ 0.439200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 4 0 0.0 0.714263878763D-04 0.284217094304D-11 0.000000000000D+00
+ 0.212000000000D+03 0.917500000000D+02 0.416553065393D-08 0.275786156547D+01
+ 0.481307506561D-05 0.971235334873D-02 0.701844692230D-05 0.515378890037D+04
+ 0.446400000000D+06 0.176951289177D-06-0.157857026908D+01-0.800937414169D-07
+ 0.972827085810D+00 0.247687500000D+03-0.145819044298D+01-0.772746473707D-08
+ -0.163578242262D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.212000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 4 0 0.0 0.544479116797D-04 0.682121026330D-12 0.000000000000D+00
+ 0.440000000000D+02-0.765312500000D+02 0.467948063344D-08-0.282807731913D+01
+ -0.377744436264D-05 0.106621907326D-01 0.848248600960D-05 0.515379914665D+04
+ 0.446400000000D+06 0.130385160446D-06 0.143382617874D+01-0.186264514923D-08
+ 0.942528270554D+00 0.205718750000D+03-0.166902960078D+01-0.782175437889D-08
+ 0.270368404786D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.300000000000D+03
+ 0.445128000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 4 0 0.0 0.767689198256D-03 0.253521648119D-10 0.000000000000D+00
+ 0.189000000000D+03-0.669687500000D+02 0.465305096111D-08 0.194756601683D+01
+ -0.369921326637D-05 0.175214122282D-01 0.919029116631D-05 0.515361368751D+04
+ 0.446400000000D+06-0.298023223877D-06 0.146119193249D+01-0.327825546265D-06
+ 0.947049173108D+00 0.199625000000D+03-0.224796961008D+01-0.800461913880D-08
+ 0.232152527228D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.445000000000D+03
+ 0.439200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 4 0 0.0 0.349245965481D-06 0.238742359215D-11 0.000000000000D+00
+ 0.101000000000D+03 0.309375000000D+01 0.475876965043D-08 0.502627051543D+00
+ 0.199303030968D-06 0.799830001779D-02 0.758469104767D-05 0.515368796158D+04
+ 0.446400000000D+06-0.745058059692D-07 0.256883109739D+01 0.150874257088D-06
+ 0.959083640472D+00 0.233656250000D+03-0.242951920078D+01-0.810855203945D-08
+ 0.129648257513D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.357000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 4 0 0.0 0.146797392517D-03 0.127329258248D-10 0.000000000000D+00
+ 0.450000000000D+02-0.912187500000D+02 0.415945897245D-08 0.622243408490D+00
+ -0.472553074360D-05 0.801411701832D-02 0.572763383389D-05 0.515368389511D+04
+ 0.446400000000D+06-0.126659870148D-06 0.443867194313D+00-0.372529029846D-07
+ 0.976117002780D+00 0.282343750000D+03-0.154546103166D+01-0.815248244076D-08
+ -0.161435295857D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.698491930962D-08 0.450000000000D+02
+ 0.440370000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 4 0 0.0 0.600527506322D-03 0.255795384874D-10 0.000000000000D+00
+ 0.203000000000D+03-0.181250000000D+01 0.509092634323D-08 0.720699925233D+00
+ -0.188127160072D-06 0.722038850654D-02 0.775605440140D-05 0.515373920059D+04
+ 0.446400000000D+06-0.689178705216D-07 0.253123064442D+01-0.745058059692D-08
+ 0.942745434891D+00 0.220562500000D+03 0.127904290525D+01-0.827177312398D-08
+ 0.157506560781D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.838190317154D-08 0.459000000000D+03
+ 0.439218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 5 59 44.0 0.335872173309D-04 0.568434188608D-12 0.000000000000D+00
+ 0.161000000000D+03 0.272187500000D+02 0.421446126351D-08 0.973236487823D+00
+ 0.160560011864D-05 0.558676326182D-02 0.329501926899D-05 0.515359867668D+04
+ 0.453584000000D+06 0.540167093277D-07-0.569355034414D+00 0.521540641785D-07
+ 0.980979066607D+00 0.324218750000D+03 0.231782914757D+00-0.812498129523D-08
+ -0.625026034843D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.161000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 5 59 44.0-0.317543745041D-04-0.113686837722D-12 0.000000000000D+00
+ 0.200000000000D+03-0.770937500000D+02 0.408552732147D-08 0.116856690289D+01
+ -0.410340726376D-05 0.196483987384D-02 0.482797622681D-05 0.515377614403D+04
+ 0.453584000000D+06-0.558793544769D-08 0.472580964163D+00 0.111758708954D-07
+ 0.980729918492D+00 0.296281250000D+03 0.722689430916D+00-0.794925969000D-08
+ -0.728601777760D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.200000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 5 59 44.0-0.192853622139D-04 0.341060513165D-12 0.000000000000D+00
+ 0.300000000000D+01-0.925625000000D+02 0.432089426830D-08-0.761829649057D+00
+ -0.475533306599D-05 0.134062150028D-02 0.453367829323D-05 0.515374758339D+04
+ 0.453584000000D+06 0.558793544769D-08 0.464423898262D+00 0.186264514923D-08
+ 0.975227397907D+00 0.299906250000D+03-0.133688778768D+01-0.815569686037D-08
+ -0.117862052285D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.102445483208D-07 0.300000000000D+01
+ 0.451248000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 5 59 44.0 0.600701197982D-03 0.254658516496D-10 0.000000000000D+00
+ 0.223000000000D+03-0.128125000000D+01 0.503199531709D-08 0.176852793609D+01
+ -0.162050127983D-06 0.722039584070D-02 0.777840614319D-05 0.515373900032D+04
+ 0.453584000000D+06-0.279396772385D-07 0.253117112560D+01-0.139698386192D-06
+ 0.942747117247D+00 0.219531250000D+03 0.127902623530D+01-0.816033991091D-08
+ 0.199651173416D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.223000000000D+03
+ 0.452808000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 6 0 0.0 0.312747433782D-03 0.204636307899D-11 0.000000000000D+00
+ 0.920000000000D+02-0.791250000000D+02 0.411874299075D-08-0.220666434486D+01
+ -0.416859984398D-05 0.523959519342D-02 0.476092100143D-05 0.515364710236D+04
+ 0.453600000000D+06 0.122934579849D-06 0.490675884197D+00-0.111758708954D-07
+ 0.976505705965D+00 0.294437500000D+03-0.172951699602D+01-0.786711341114D-08
+ -0.625026034843D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.920000000000D+02
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 6 0 0.0-0.212994869798D-03-0.670752342558D-11 0.000000000000D+00
+ 0.780000000000D+02-0.746875000000D+01 0.506806824824D-08 0.293591321079D+01
+ -0.283122062683D-06 0.230885471683D-01 0.753626227379D-05 0.515375300407D+04
+ 0.453600000000D+06 0.298023223877D-06 0.246713413518D+01-0.217929482460D-06
+ 0.932342514711D+00 0.211031250000D+03-0.174956374575D+01-0.779175312922D-08
+ 0.181078971237D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.590000000000D+03
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 6 0 0.0 0.574025325477D-04 0.329691829393D-11 0.000000000000D+00
+ 0.115000000000D+03 0.217500000000D+02 0.539486757503D-08-0.268513693656D+00
+ 0.114366412163D-05 0.498911552131D-02 0.737048685551D-05 0.515364379883D+04
+ 0.453600000000D+06 0.745058059692D-07-0.274416370466D+01 0.372529029846D-07
+ 0.929715086045D+00 0.220687500000D+03 0.502300842755D+00-0.840856453618D-08
+ -0.260367988229D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.115000000000D+03
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 6 0 0.0-0.297557562590D-05-0.477484718431D-11 0.000000000000D+00
+ 0.108000000000D+03 0.799375000000D+02 0.438982571100D-08-0.311777570943D+01
+ 0.428035855293D-05 0.644959823694D-02 0.745989382267D-05 0.515372527504D+04
+ 0.453600000000D+06-0.856816768646D-07-0.160320030018D+01 0.242143869400D-07
+ 0.962586736790D+00 0.237812500000D+03-0.157834053096D+00-0.788389982464D-08
+ -0.632169189527D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.364000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 6 0 0.0 0.303145498037D-05 0.147792889038D-11 0.000000000000D+00
+ 0.133000000000D+03-0.159375000000D+01 0.515200031578D-08 0.279181099624D+01
+ -0.109896063805D-06 0.494086032268D-02 0.771507620812D-05 0.515361775207D+04
+ 0.453600000000D+06 0.000000000000D+00 0.249133592043D+01-0.316649675369D-07
+ 0.935763516455D+00 0.216312500000D+03 0.781438387943D+00-0.817319758934D-08
+ 0.219294848796D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.389000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 6 0 0.0-0.970903784037D-06-0.227373675443D-12 0.000000000000D+00
+ 0.230000000000D+03 0.349687500000D+02 0.507342561426D-08-0.231981851574D+01
+ 0.157579779625D-05 0.647950416897D-02 0.769086182118D-05 0.515363808632D+04
+ 0.453600000000D+06 0.104308128357D-06-0.269265600341D+01 0.204890966415D-07
+ 0.937214612693D+00 0.215593750000D+03-0.204024966427D+01-0.808462247126D-08
+ -0.191079387795D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.230000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 6 0 0.0 0.641128513962D-03 0.250111042988D-11 0.000000000000D+00
+ 0.270000000000D+02 0.207812500000D+02 0.521736018114D-08-0.152617341353D+00
+ 0.104121863842D-05 0.127035728656D-01 0.813603401184D-05 0.515367480469D+04
+ 0.453600000000D+06-0.163912773132D-06-0.272098997778D+01 0.134110450745D-06
+ 0.938899022422D+00 0.215687500000D+03-0.185905838463D+01-0.848035324075D-08
+ -0.219652006531D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.270000000000D+02
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 6 0 0.0 0.401344615966D-03 0.113686837722D-12 0.000000000000D+00
+ 0.100000000000D+03-0.546250000000D+02 0.434982404477D-08-0.212384409781D+01
+ -0.277720391750D-05 0.902140745893D-02 0.899471342564D-05 0.515370100975D+04
+ 0.453600000000D+06-0.117346644402D-06 0.154768836101D+01 0.132247805595D-06
+ 0.962775679974D+00 0.208406250000D+03 0.233422435576D+01-0.781996859022D-08
+ 0.212151694113D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.612000000000D+03
+ 0.446400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 6 0 0.0-0.143647193909D-04-0.181898940355D-11 0.000000000000D+00
+ 0.930000000000D+02-0.725000000000D+02 0.447875798682D-08-0.248944349399D+01
+ -0.371597707272D-05 0.150475146947D-01 0.951811671257D-05 0.515361790466D+04
+ 0.453600000000D+06 0.931322574616D-07 0.148206231972D+01-0.109896063805D-06
+ 0.949499157125D+00 0.186125000000D+03 0.998471163452D+00-0.773496504949D-08
+ 0.338228374284D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.558793544769D-08 0.605000000000D+03
+ 0.446670000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 6 0 0.0 0.748164020479D-04 0.216004991671D-11 0.000000000000D+00
+ 0.450000000000D+02 0.734687500000D+02 0.556594612971D-08-0.142300276178D+01
+ 0.368244946003D-05 0.223922554869D-02 0.818260014057D-05 0.515370150185D+04
+ 0.453600000000D+06-0.800937414169D-07-0.171980412113D+01-0.335276126862D-07
+ 0.909845018788D+00 0.194906250000D+03-0.156092124355D+00-0.849892544293D-08
+ -0.141791620476D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.116415321827D-07 0.450000000000D+02
+ 0.446418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 6 0 0.0-0.192825682461D-04 0.341060513165D-12 0.000000000000D+00
+ 0.218000000000D+03-0.925625000000D+02 0.432089426830D-08-0.759492524781D+00
+ -0.475533306599D-05 0.134062592406D-02 0.453367829323D-05 0.515374757767D+04
+ 0.453600000000D+06 0.558793544769D-08 0.464423829505D+00 0.186264514923D-08
+ 0.975227392055D+00 0.299906250000D+03-0.133689119335D+01-0.815569686037D-08
+ -0.117862052285D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.730000000000D+03
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 6 0 0.0 0.179504510015D-03 0.500222085975D-11 0.000000000000D+00
+ 0.148000000000D+03 0.100906250000D+03 0.422124726046D-08-0.222836286222D+01
+ 0.541284680367D-05 0.847023911774D-02 0.793486833572D-05 0.515376519775D+04
+ 0.453600000000D+06-0.521540641785D-07-0.155218636451D+01 0.154599547386D-06
+ 0.969509351453D+00 0.233781250000D+03 0.215823439503D+01-0.782246869436D-08
+ -0.732173355102D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.660000000000D+03
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 6 0 0.0 0.808434560895D-05 0.250111042988D-11 0.000000000000D+00
+ 0.122000000000D+03-0.193750000000D+01 0.457197615544D-08 0.312792702964D+01
+ 0.931322574616D-08 0.203771376982D-02 0.786781311035D-05 0.515369389534D+04
+ 0.453600000000D+06 0.391155481339D-07 0.255784338742D+01-0.186264514923D-07
+ 0.961156608556D+00 0.226656250000D+03-0.161429067483D+01-0.785211278630D-08
+ 0.189293599124D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.122000000000D+03
+ 0.452388000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 6 0 0.0 0.106458086520D-03-0.345607986674D-10 0.000000000000D+00
+ 0.230000000000D+03 0.826875000000D+02 0.424731977506D-08-0.186753827412D+01
+ 0.413134694099D-05 0.159176577581D-01 0.665709376335D-05 0.515305437660D+04
+ 0.453600000000D+06 0.102445483208D-06-0.151081155070D+01-0.221654772759D-06
+ 0.971567143226D+00 0.259000000000D+03-0.284504529339D+01-0.783568353053D-08
+ 0.137148569931D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.486000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 6 0 0.0 0.585103407502D-05-0.136424205266D-11 0.000000000000D+00
+ 0.134000000000D+03 0.324375000000D+02 0.452375986133D-08 0.255708257785D+01
+ 0.173784792423D-05 0.442413974088D-02 0.292807817459D-05 0.515362542725D+04
+ 0.453600000000D+06-0.134110450745D-06-0.533573415783D+00-0.298023223877D-07
+ 0.964492196366D+00 0.326406250000D+03-0.298877294239D+01-0.828427364468D-08
+ 0.867893294097D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.134000000000D+03
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 6 0 0.0-0.205889344215D-03 0.147792889038D-11 0.000000000000D+00
+ 0.219000000000D+03 0.418437500000D+02 0.451161649837D-08 0.177077877746D+01
+ 0.211596488953D-05 0.199593545403D-02 0.376813113689D-05 0.515378474426D+04
+ 0.453600000000D+06-0.521540641785D-07-0.585791000958D+00-0.298023223877D-07
+ 0.964636160671D+00 0.306406250000D+03 0.173282664922D+01-0.821069915143D-08
+ 0.571452374714D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.698491930962D-08 0.475000000000D+03
+ 0.446400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 6 0 0.0 0.609667040408D-04 0.295585778076D-11 0.000000000000D+00
+ 0.211000000000D+03 0.102281250000D+03 0.445625704957D-08-0.227131532638D+01
+ 0.524893403053D-05 0.803182728123D-02 0.790320336819D-05 0.515373046112D+04
+ 0.453600000000D+06-0.169500708580D-06-0.157722066278D+01-0.745058059692D-07
+ 0.956153962691D+00 0.230781250000D+03 0.292998846571D+01-0.799068998717D-08
+ -0.660741808263D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.121071934700D-07 0.467000000000D+03
+ 0.448308000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 6 0 0.0 0.398610718548D-04 0.909494701773D-12 0.000000000000D+00
+ 0.200000000000D+02 0.364687500000D+02 0.427446376286D-08 0.509487679441D+00
+ 0.192038714886D-05 0.164786189562D-01 0.370666384697D-05 0.515386114693D+04
+ 0.453600000000D+06-0.191852450371D-06-0.518412859256D+00-0.596046447754D-07
+ 0.984644409318D+00 0.325250000000D+03-0.164479407918D+01-0.845285209522D-08
+ 0.178578867098D-11 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.200000000000D+02
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 6 0 0.0 0.714468769729D-04 0.284217094304D-11 0.000000000000D+00
+ 0.207000000000D+03 0.828125000000D+02 0.413838666613D-08-0.247515707051D+01
+ 0.440701842308D-05 0.971161993220D-02 0.717304646969D-05 0.515379039383D+04
+ 0.453600000000D+06 0.108033418655D-06-0.157862650950D+01 0.968575477600D-07
+ 0.972826562085D+00 0.245906250000D+03-0.145824869492D+01-0.770639243075D-08
+ -0.289297764699D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.463000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 6 0 0.0 0.544530339539D-04 0.682121026330D-12 0.000000000000D+00
+ 0.450000000000D+02-0.807812500000D+02 0.477448459073D-08-0.177794921045D+01
+ -0.406429171562D-05 0.106614357792D-01 0.884570181370D-05 0.515380043793D+04
+ 0.453600000000D+06 0.225380063057D-06 0.143377023383D+01 0.223517417908D-06
+ 0.942529397001D+00 0.199406250000D+03-0.166905342586D+01-0.798497546342D-08
+ 0.168578450541D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.301000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 6 0 0.0 0.504559837282D-03-0.534328137292D-11 0.000000000000D+00
+ 0.380000000000D+02-0.784687500000D+02 0.421338979031D-08-0.729942957648D+00
+ -0.406429171562D-05 0.147277934011D-01 0.557117164135D-05 0.515360482597D+04
+ 0.453600000000D+06 0.232830643654D-06 0.475749968027D+00 0.162050127983D-06
+ 0.979137049400D+00 0.279156250000D+03 0.532892477156D+00-0.810069456930D-08
+ -0.105004373854D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.380000000000D+02
+ 0.452268000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 6 0 0.0 0.767871271819D-03 0.252384779742D-10 0.000000000000D+00
+ 0.190000000000D+03-0.721562500000D+02 0.456376152756D-08 0.299776932535D+01
+ -0.384263694286D-05 0.175217037322D-01 0.872090458870D-05 0.515361354446D+04
+ 0.453600000000D+06 0.484287738800D-07 0.146113594807D+01-0.210478901863D-06
+ 0.947052131128D+00 0.201843750000D+03-0.224795539490D+01-0.769532054099D-08
+ 0.205722854897D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.419095158577D-08 0.446000000000D+03
+ 0.447480000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 6 0 0.0 0.366475433111D-06 0.238742359215D-11 0.000000000000D+00
+ 0.102000000000D+03 0.406250000000D+00 0.469626704694D-08 0.155267459147D+01
+ 0.614672899246D-07 0.799891818315D-02 0.795535743237D-05 0.515369020462D+04
+ 0.453600000000D+06-0.176951289177D-06 0.256877277231D+01 0.838190317154D-07
+ 0.959084450929D+00 0.225781250000D+03-0.242939373654D+01-0.807390773924D-08
+ 0.125719522437D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.358000000000D+03
+ 0.446400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 6 0 0.0 0.146888662130D-03 0.126192389871D-10 0.000000000000D+00
+ 0.460000000000D+02-0.871562500000D+02 0.417053086221D-08 0.167242282171D+01
+ -0.483915209770D-05 0.801378104370D-02 0.525265932083D-05 0.515368354988D+04
+ 0.453600000000D+06 0.465661287308D-07 0.443808700997D+00-0.186264514923D-06
+ 0.976116895987D+00 0.284281250000D+03-0.154546756944D+01-0.794497379719D-08
+ -0.116076263614D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.460000000000D+02
+ 0.453258000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 6 0 0.0 0.600711442530D-03 0.255795384874D-10 0.000000000000D+00
+ 0.198000000000D+03-0.128125000000D+01 0.503199531709D-08 0.177086211259D+01
+ -0.162050127983D-06 0.722040398978D-02 0.777840614319D-05 0.515373898697D+04
+ 0.453600000000D+06-0.279396772385D-07 0.253117102758D+01-0.139698386192D-06
+ 0.942747126025D+00 0.219531250000D+03 0.127902573205D+01-0.816033991091D-08
+ 0.199651173416D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.838190317154D-08 0.710000000000D+03
+ 0.446418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 6 0 0.0 0.429305713624D-03 0.420641299570D-11 0.000000000000D+00
+ 0.133000000000D+03 0.257500000000D+02 0.513985695282D-08-0.127110431446D+01
+ 0.148825347424D-05 0.118489381857D-01 0.727362930775D-05 0.515376078796D+04
+ 0.453600000000D+06 0.238418579102D-06-0.272193947890D+01 0.126659870148D-06
+ 0.938355194329D+00 0.222656250000D+03 0.944898031070D+00-0.823248577322D-08
+ -0.246081678861D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.133000000000D+03
+ 0.446400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 7 59 44.0-0.192830339074D-04 0.341060513165D-12 0.000000000000D+00
+ 0.400000000000D+01-0.892812500000D+02 0.426589197724D-08 0.288750567140D+00
+ -0.458396971226D-05 0.134219392203D-02 0.514276325703D-05 0.515375073052D+04
+ 0.460784000000D+06-0.260770320892D-07 0.464364825630D+00 0.856816768646D-07
+ 0.975226773241D+00 0.287906250000D+03-0.133733490372D+01-0.814676791701D-08
+ -0.467876631797D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.400000000000D+01
+ 0.457140000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 7 59 44.0 0.387895852327D-06 0.238742359215D-11 0.000000000000D+00
+ 0.122000000000D+03 0.181250000000D+01 0.458233372974D-08 0.260057726674D+01
+ 0.726431608200D-07 0.799936940894D-02 0.813603401184D-05 0.515368893433D+04
+ 0.460784000000D+06-0.260770320892D-07 0.256871507190D+01-0.169500708580D-06
+ 0.959086836948D+00 0.220781250000D+03-0.242945777285D+01-0.780103923031D-08
+ 0.207151485834D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.102445483208D-07 0.122000000000D+03
+ 0.457800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 7 59 44.0 0.600884668529D-03 0.254658516496D-10 0.000000000000D+00
+ 0.224000000000D+03 0.121875000000D+01 0.498306470750D-08 0.281864573851D+01
+ 0.100582838059D-06 0.722012342885D-02 0.765733420849D-05 0.515373960877D+04
+ 0.460784000000D+06 0.502914190292D-07 0.253111326280D+01-0.149011611939D-07
+ 0.942748970765D+00 0.220125000000D+03 0.127905259562D+01-0.802640576059D-08
+ 0.160720980388D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.224000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 8 0 0.0 0.312762334943D-03 0.204636307899D-11 0.000000000000D+00
+ 0.930000000000D+02-0.840625000000D+02 0.422803325741D-08-0.115629213367D+01
+ -0.439584255219D-05 0.523937854450D-02 0.450760126114D-05 0.515364889336D+04
+ 0.460800000000D+06-0.856816768646D-07 0.490618818689D+00 0.150874257088D-06
+ 0.976503960704D+00 0.299468750000D+03-0.172969550421D+01-0.811783814054D-08
+ -0.110004582132D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.930000000000D+02
+ 0.457140000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 8 0 0.0-0.213043298572D-03-0.670752342558D-11 0.000000000000D+00
+ 0.730000000000D+02-0.968750000000D+00 0.513949979508D-08-0.229715965118D+01
+ 0.447034835815D-07 0.230891458923D-01 0.750645995140D-05 0.515375165749D+04
+ 0.460800000000D+06 0.348314642906D-06 0.246707719695D+01 0.111758708954D-07
+ 0.932344543778D+00 0.215062500000D+03-0.174953907949D+01-0.780389649218D-08
+ 0.331085219600D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.329000000000D+03
+ 0.455448000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 8 0 0.0 0.574262812734D-04 0.329691829393D-11 0.000000000000D+00
+ 0.116000000000D+03 0.311875000000D+02 0.532022160859D-08 0.781608681847D+00
+ 0.163167715073D-05 0.499039329588D-02 0.739097595215D-05 0.515364635658D+04
+ 0.460800000000D+06-0.931322574616D-08-0.274422371063D+01 0.800937414169D-07
+ 0.929713241305D+00 0.220093750000D+03 0.502382812981D+00-0.834963351004D-08
+ -0.316441752498D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.116000000000D+03
+ 0.459348000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 8 0 0.0-0.301003456116D-05-0.477484718431D-11 0.000000000000D+00
+ 0.109000000000D+03 0.720000000000D+02 0.441304096373D-08-0.206776152988D+01
+ 0.364519655705D-05 0.645145715680D-02 0.828690826893D-05 0.515372144699D+04
+ 0.460800000000D+06-0.912696123123D-07-0.160325743738D+01-0.540167093277D-07
+ 0.962586115050D+00 0.225062500000D+03-0.157698130451D+00-0.794354516626D-08
+ -0.364300888880D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.605359673500D-08 0.365000000000D+03
+ 0.453600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 8 0 0.0 0.304263085127D-05 0.147792889038D-11 0.000000000000D+00
+ 0.134000000000D+03 0.162500000000D+01 0.516057210140D-08-0.244114135639D+01
+ 0.158324837685D-06 0.494039326441D-02 0.780448317528D-05 0.515361864090D+04
+ 0.460800000000D+06-0.111758708954D-07 0.249127716378D+01-0.260770320892D-07
+ 0.935765092018D+00 0.215406250000D+03 0.781424797434D+00-0.816534011919D-08
+ 0.210723063176D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.390000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 8 0 0.0-0.972766429186D-06-0.227373675443D-12 0.000000000000D+00
+ 0.231000000000D+03 0.301250000000D+02 0.503342394803D-08-0.126950214121D+01
+ 0.169500708580D-05 0.647942454089D-02 0.764057040215D-05 0.515363942719D+04
+ 0.460800000000D+06 0.132247805595D-06-0.269271404907D+01 0.173225998879D-06
+ 0.937212555831D+00 0.217687500000D+03-0.204036017749D+01-0.820855620503D-08
+ -0.259653672761D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.231000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 8 0 0.0 0.641146209091D-03 0.250111042988D-11 0.000000000000D+00
+ 0.280000000000D+02 0.196250000000D+02 0.517985861905D-08 0.897581443824D+00
+ 0.981613993645D-06 0.127027523704D-01 0.759959220886D-05 0.515367321396D+04
+ 0.460800000000D+06-0.204890966415D-06-0.272105044896D+01-0.335276126862D-07
+ 0.938896923134D+00 0.221718750000D+03-0.185907172351D+01-0.846785272006D-08
+ -0.332513850537D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.186264514923D-08 0.280000000000D+02
+ 0.453600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 8 0 0.0 0.401345547289D-03 0.113686837722D-12 0.000000000000D+00
+ 0.101000000000D+03-0.671562500000D+02 0.441161233279D-08-0.107386908789D+01
+ -0.362657010555D-05 0.902119535022D-02 0.892020761967D-05 0.515369780731D+04
+ 0.460800000000D+06-0.111758708954D-06 0.154763107899D+01-0.279396772385D-07
+ 0.962777034637D+00 0.210968750000D+03 0.233441348619D+01-0.793425906517D-08
+ 0.269296931584D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.613000000000D+03
+ 0.455928000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 8 0 0.0-0.143782235682D-04-0.181898940355D-11 0.000000000000D+00
+ 0.940000000000D+02-0.548437500000D+02 0.471376777592D-08-0.143940156728D+01
+ -0.283122062683D-05 0.150491833920D-01 0.878423452377D-05 0.515361214066D+04
+ 0.460800000000D+06 0.387430191040D-06 0.148200743396D+01 0.117346644402D-06
+ 0.949500325997D+00 0.201687500000D+03 0.998646263043D+00-0.796283168390D-08
+ 0.135362781260D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.558793544769D-08 0.606000000000D+03
+ 0.453600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 8 0 0.0 0.335914082825D-04 0.568434188608D-12 0.000000000000D+00
+ 0.162000000000D+03 0.298437500000D+02 0.419088885306D-08 0.202558730596D+01
+ 0.168196856976D-05 0.558722415008D-02 0.394694507122D-05 0.515360090637D+04
+ 0.460800000000D+06-0.100582838059D-06-0.569414272356D+00 0.165775418282D-06
+ 0.980979122198D+00 0.314312500000D+03 0.231989677747D+00-0.807426489697D-08
+ 0.757174396496D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.162000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 8 0 0.0 0.748322345316D-04 0.216004991671D-11 0.000000000000D+00
+ 0.400000000000D+02 0.769062500000D+02 0.558666127830D-08-0.372887535554D+00
+ 0.392086803913D-05 0.223888445180D-02 0.819191336632D-05 0.515370092583D+04
+ 0.460800000000D+06 0.298023223877D-07-0.171986501949D+01-0.540167093277D-07
+ 0.909843532464D+00 0.193718750000D+03-0.156036199923D+00-0.855071331439D-08
+ -0.222509268404D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.116415321827D-07 0.296000000000D+03
+ 0.457140000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 8 0 0.0-0.317548401654D-04-0.113686837722D-12 0.000000000000D+00
+ 0.201000000000D+03-0.816250000000D+02 0.407445543171D-08 0.222067060343D+01
+ -0.435672700405D-05 0.196438538842D-02 0.451132655144D-05 0.515377751350D+04
+ 0.460800000000D+06-0.111758708954D-07 0.472523611922D+00 0.242143869400D-07
+ 0.980729362583D+00 0.302375000000D+03 0.723034470385D+00-0.795711716016D-08
+ -0.750031241812D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.201000000000D+03
+ 0.459180000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 8 0 0.0 0.179540831596D-03 0.500222085975D-11 0.000000000000D+00
+ 0.149000000000D+03 0.884062500000D+02 0.425017703693D-08-0.117836516538D+01
+ 0.448152422905D-05 0.846961373463D-02 0.798329710960D-05 0.515376337242D+04
+ 0.460800000000D+06-0.135973095894D-06-0.155224386889D+01-0.391155481339D-07
+ 0.969508298152D+00 0.238375000000D+03 0.215835948331D+01-0.800104756146D-08
+ -0.114290474943D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.405000000000D+03
+ 0.455328000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 8 0 0.0 0.810250639916D-05 0.250111042988D-11 0.000000000000D+00
+ 0.123000000000D+03 0.125000000000D+01 0.463769317854D-08-0.210522644350D+01
+ 0.856816768646D-07 0.203802355100D-02 0.793673098087D-05 0.515369313049D+04
+ 0.460800000000D+06 0.100582838059D-06 0.255778700655D+01 0.186264514923D-07
+ 0.961157787668D+00 0.227281250000D+03-0.161415336095D+01-0.788961434839D-08
+ 0.153220667970D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.123000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 8 0 0.0 0.106208957732D-03-0.345607986674D-10 0.000000000000D+00
+ 0.231000000000D+03 0.698750000000D+02 0.420196074282D-08-0.816873809936D+00
+ 0.376813113689D-05 0.159182579955D-01 0.669993460178D-05 0.515305778313D+04
+ 0.460800000000D+06 0.353902578354D-06-0.151086737273D+01-0.521540641785D-07
+ 0.971567355349D+00 0.254812500000D+03-0.284515368830D+01-0.799676166865D-08
+ -0.964325882329D-11 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.487000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 8 0 0.0 0.584125518799D-05-0.136424205266D-11 0.000000000000D+00
+ 0.135000000000D+03 0.254062500000D+02 0.450054460861D-08-0.267594747913D+01
+ 0.138767063618D-05 0.442569539882D-02 0.347942113876D-05 0.515362254334D+04
+ 0.460800000000D+06-0.204890966415D-07-0.533632633244D+00-0.614672899246D-07
+ 0.964493316961D+00 0.316468750000D+03-0.298871743050D+01-0.818284084817D-08
+ 0.935753263594D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.135000000000D+03
+ 0.454158000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 8 0 0.0-0.205879099667D-03 0.147792889038D-11 0.000000000000D+00
+ 0.220000000000D+03 0.524062500000D+02 0.453054585828D-08 0.282027169443D+01
+ 0.273436307907D-05 0.199528527446D-02 0.370107591152D-05 0.515378729439D+04
+ 0.460800000000D+06 0.484287738800D-07-0.585850765550D+00-0.633299350739D-07
+ 0.964636592232D+00 0.309312500000D+03 0.173344575908D+01-0.827320175492D-08
+ 0.125719522437D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.698491930962D-08 0.476000000000D+03
+ 0.457140000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 8 0 0.0 0.609885901213D-04 0.295585778076D-11 0.000000000000D+00
+ 0.212000000000D+03 0.805937500000D+02 0.453197448921D-08-0.122159843374D+01
+ 0.395253300667D-05 0.803279608954D-02 0.693090260029D-05 0.515372371292D+04
+ 0.460800000000D+06-0.167638063431D-07-0.157727912245D+01-0.117346644402D-06
+ 0.956153715457D+00 0.245312500000D+03 0.293042047712D+01-0.806605026908D-08
+ 0.235724104569D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.121071934700D-07 0.468000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 8 0 0.0 0.398680567741D-04 0.909494701773D-12 0.000000000000D+00
+ 0.210000000000D+02 0.280312500000D+02 0.411874299075D-08 0.155947998544D+01
+ 0.117719173431D-05 0.164792593569D-01 0.336952507496D-05 0.515386370087D+04
+ 0.460800000000D+06-0.409781932831D-07-0.518473857089D+00-0.478699803352D-06
+ 0.984646344758D+00 0.329343750000D+03-0.164472232744D+01-0.808676541767D-08
+ 0.145006040084D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.210000000000D+02
+ 0.459708000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 8 0 0.0 0.714673660696D-04 0.284217094304D-11 0.000000000000D+00
+ 0.208000000000D+03 0.785000000000D+02 0.419231748399D-08-0.142513610595D+01
+ 0.435113906860D-05 0.971137313172D-02 0.790134072304D-05 0.515378911400D+04
+ 0.460800000000D+06-0.912696123123D-07-0.157868233738D+01 0.232830643654D-06
+ 0.972825305439D+00 0.237468750000D+03-0.145816315517D+01-0.791532970525D-08
+ -0.632169189527D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.464000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 8 0 0.0 0.544581562281D-04 0.682121026330D-12 0.000000000000D+00
+ 0.400000000000D+02-0.757187500000D+02 0.496127808572D-08-0.727894013605D+00
+ -0.389665365219D-05 0.106617329875D-01 0.929646193981D-05 0.515379961968D+04
+ 0.460800000000D+06-0.134110450745D-06 0.143371086569D+01 0.104308128357D-06
+ 0.942529070770D+00 0.193875000000D+03-0.166900154055D+01-0.836356266167D-08
+ 0.208580116771D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.552000000000D+03
+ 0.457140000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 8 0 0.0 0.504521187395D-03-0.534328137292D-11 0.000000000000D+00
+ 0.390000000000D+02-0.681250000000D+02 0.422231873367D-08 0.320294675319D+00
+ -0.347755849361D-05 0.147297721123D-01 0.504404306412D-05 0.515360865021D+04
+ 0.460800000000D+06 0.558793544769D-07 0.475691059242D+00 0.178813934326D-06
+ 0.979135833715D+00 0.289031250000D+03 0.532874806569D+00-0.820212736581D-08
+ -0.115719105880D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.390000000000D+02
+ 0.454818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 8 0 0.0 0.768053345382D-03 0.252384779742D-10 0.000000000000D+00
+ 0.191000000000D+03-0.798750000000D+02 0.460197740512D-08-0.223520471796D+01
+ -0.425055623055D-05 0.175227781292D-01 0.843778252602D-05 0.515361161232D+04
+ 0.460800000000D+06 0.180676579475D-06 0.146107973398D+01-0.117346644402D-06
+ 0.947053905648D+00 0.205812500000D+03-0.224794718647D+01-0.774032241550D-08
+ 0.318227541169D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.419095158577D-08 0.447000000000D+03
+ 0.453600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 8 0 0.0 0.383704900742D-06 0.238742359215D-11 0.000000000000D+00
+ 0.970000000000D+02 0.181250000000D+01 0.458233372974D-08 0.260291038994D+01
+ 0.726431608200D-07 0.799937127158D-02 0.813603401184D-05 0.515368894768D+04
+ 0.460800000000D+06-0.260770320892D-07 0.256871498705D+01-0.169500708580D-06
+ 0.959086855966D+00 0.220781250000D+03-0.242945729155D+01-0.780103923031D-08
+ 0.207151485834D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.609000000000D+03
+ 0.453618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 8 0 0.0 0.146979931742D-03 0.126192389871D-10 0.000000000000D+00
+ 0.410000000000D+02-0.758437500000D+02 0.421874715632D-08 0.272240233741D+01
+ -0.386312603951D-05 0.801291980315D-02 0.476650893688D-05 0.515368683433D+04
+ 0.460800000000D+06 0.158324837685D-06 0.443751576971D+00-0.139698386192D-06
+ 0.976116133806D+00 0.290531250000D+03-0.154527578235D+01-0.793390190743D-08
+ -0.885751180806D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.297000000000D+03
+ 0.453618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 8 0 0.0 0.429335515946D-03 0.420641299570D-11 0.000000000000D+00
+ 0.134000000000D+03 0.275000000000D+02 0.517735851491D-08-0.220945550332D+00
+ 0.155717134476D-05 0.118493210757D-01 0.738725066185D-05 0.515376173592D+04
+ 0.460800000000D+06 0.186264514923D-07-0.272199971602D+01 0.154599547386D-06
+ 0.938352531818D+00 0.225718750000D+03 0.944871372314D+00-0.843213694664D-08
+ -0.247867467532D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.134000000000D+03
+ 0.457140000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 9 59 44.0 0.312790740281D-03 0.216004991671D-11 0.000000000000D+00
+ 0.118000000000D+03-0.846250000000D+02 0.433125184260D-08-0.108473927289D+00
+ -0.428035855293D-05 0.523944536690D-02 0.470317900181D-05 0.515364877891D+04
+ 0.467984000000D+06-0.316649675369D-07 0.490559473954D+00 0.558793544769D-08
+ 0.976503031751D+00 0.296218750000D+03-0.172965266997D+01-0.823570019283D-08
+ -0.335728270144D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.374000000000D+03
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 9 59 44.0 0.303937122226D-05 0.147792889038D-11 0.000000000000D+00
+ 0.157000000000D+03-0.100000000000D+01 0.520914555325D-08-0.139316625350D+01
+ -0.651925802231D-07 0.494022131898D-02 0.798515975475D-05 0.515361954308D+04
+ 0.467984000000D+06 0.104308128357D-06 0.249121880798D+01-0.204890966415D-07
+ 0.935766217002D+00 0.213281250000D+03 0.781334759215D+00-0.822248535666D-08
+ 0.132505519387D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.669000000000D+03
+ 0.463410000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 9 59 44.0 0.179580412805D-03 0.511590769747D-11 0.000000000000D+00
+ 0.173000000000D+03 0.765937500000D+02 0.419624621907D-08-0.130728896263D+00
+ 0.381469726563D-05 0.846908672247D-02 0.721216201782D-05 0.515376107407D+04
+ 0.467984000000D+06-0.521540641785D-07-0.155230122259D+01-0.134110450745D-06
+ 0.969508100658D+00 0.245281250000D+03 0.215851494322D+01-0.802569144512D-08
+ -0.664313385605D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.685000000000D+03
+ 0.462678000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 9 59 44.0-0.205872580409D-03 0.136424205266D-11 0.000000000000D+00
+ 0.200000000000D+01 0.487812500000D+02 0.455590405741D-08-0.241494715864D+01
+ 0.255182385445D-05 0.199556455482D-02 0.355765223503D-05 0.515378692436D+04
+ 0.467984000000D+06 0.298023223877D-07-0.585910358981D+00-0.149011611939D-07
+ 0.964637673328D+00 0.314593750000D+03 0.173325834464D+01-0.826891586211D-08
+ 0.158220876249D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.200000000000D+01
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 9 59 44.0 0.544553622603D-04 0.682121026330D-12 0.000000000000D+00
+ 0.660000000000D+02-0.696250000000D+02 0.494556314541D-08 0.319924473659D+00
+ -0.364333391190D-05 0.106616849080D-01 0.911392271519D-05 0.515379972839D+04
+ 0.467984000000D+06-0.180676579475D-06 0.143365128981D+01-0.372529029846D-07
+ 0.942530375693D+00 0.197656250000D+03-0.166904759321D+01-0.834963351004D-08
+ 0.106790162525D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.660000000000D+02
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 9 59 44.0 0.405125319958D-06 0.238742359215D-11 0.000000000000D+00
+ 0.123000000000D+03-0.168750000000D+01 0.457626204825D-08-0.263242525080D+01
+ -0.102445483208D-06 0.799990154337D-02 0.823289155960D-05 0.515368793297D+04
+ 0.467984000000D+06 0.372529029846D-07 0.256865923670D+01-0.104308128357D-06
+ 0.959088435917D+00 0.219000000000D+03-0.242946824881D+01-0.776103756408D-08
+ 0.206437170365D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.102445483208D-07 0.123000000000D+03
+ 0.460800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 10 0 0.0 0.312776770443D-03 0.204636307899D-11 0.000000000000D+00
+ 0.940000000000D+02-0.846250000000D+02 0.433125184260D-08-0.106139540132D+00
+ -0.428035855293D-05 0.523944187444D-02 0.470317900181D-05 0.515364874840D+04
+ 0.468000000000D+06-0.316649675369D-07 0.490559308644D+00 0.558793544769D-08
+ 0.976503047843D+00 0.296218750000D+03-0.172965310446D+01-0.823570019283D-08
+ -0.335728270144D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.325962901115D-08 0.940000000000D+02
+ 0.460818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 10 0 0.0-0.213091727346D-03-0.670752342558D-11 0.000000000000D+00
+ 0.740000000000D+02 0.718750000000D+01 0.543094050619D-08-0.124705925163D+01
+ 0.815838575363D-06 0.230896145804D-01 0.804476439953D-05 0.515374981499D+04
+ 0.468000000000D+06 0.372529029846D-08 0.246702055276D+01 0.653788447380D-06
+ 0.932343448053D+00 0.213531250000D+03-0.174950093682D+01-0.847499587474D-08
+ 0.135005623526D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.330000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 10 0 0.0 0.574500299990D-04 0.329691829393D-11 0.000000000000D+00
+ 0.117000000000D+03 0.293437500000D+02 0.530093509094D-08 0.183165612961D+01
+ 0.150687992573D-05 0.499066675548D-02 0.771693885326D-05 0.515364792061D+04
+ 0.468000000000D+06-0.521540641785D-07-0.274428383510D+01 0.689178705216D-07
+ 0.929710957690D+00 0.214625000000D+03 0.502538150011D+00-0.833534720067D-08
+ -0.309655755548D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.117000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 10 0 0.0-0.304495915771D-05-0.477484718431D-11 0.000000000000D+00
+ 0.110000000000D+03 0.757500000000D+02 0.428339270621D-08-0.101743447458D+01
+ 0.372156500816D-05 0.645138276741D-02 0.826828181744D-05 0.515372359276D+04
+ 0.468000000000D+06-0.428408384323D-07-0.160331440633D+01-0.152736902237D-06
+ 0.962585742006D+00 0.217500000000D+03-0.157875633617D+00-0.795783147562D-08
+ -0.960754304988D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.366000000000D+03
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 10 0 0.0 0.305380672216D-05 0.147792889038D-11 0.000000000000D+00
+ 0.135000000000D+03-0.100000000000D+01 0.520914555325D-08-0.139083119487D+01
+ -0.651925802231D-07 0.494023540523D-02 0.798515975475D-05 0.515361954308D+04
+ 0.468000000000D+06 0.104308128357D-06 0.249121869973D+01-0.204890966415D-07
+ 0.935766214076D+00 0.213281250000D+03 0.781333406015D+00-0.822248535666D-08
+ 0.132505519387D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.391000000000D+03
+ 0.460800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 10 0 0.0-0.974629074335D-06-0.227373675443D-12 0.000000000000D+00
+ 0.226000000000D+03 0.249062500000D+02 0.511378443822D-08-0.219338662096D+00
+ 0.139139592648D-05 0.647881673649D-02 0.784359872341D-05 0.515363821220D+04
+ 0.468000000000D+06-0.558793544769D-07-0.269277409454D+01 0.113621354103D-06
+ 0.937210076184D+00 0.216343750000D+03-0.204031753343D+01-0.836641992354D-08
+ -0.246081678861D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.738000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 10 0 0.0 0.641163904220D-03 0.250111042988D-11 0.000000000000D+00
+ 0.290000000000D+02 0.230312500000D+02 0.503199531709D-08 0.194781033732D+01
+ 0.103004276753D-05 0.127026498085D-01 0.753812491894D-05 0.515367216682D+04
+ 0.468000000000D+06 0.298023223877D-07-0.272111113226D+01-0.337138772011D-06
+ 0.938896435982D+00 0.219437500000D+03-0.185911426663D+01-0.810069456930D-08
+ -0.231081054025D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.186264514923D-08 0.290000000000D+02
+ 0.465930000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 10 0 0.0 0.401346478611D-03 0.113686837722D-12 0.000000000000D+00
+ 0.102000000000D+03-0.778750000000D+02 0.439161149968D-08-0.236689670732D-01
+ -0.418722629547D-05 0.902264576871D-02 0.922381877899D-05 0.515370048332D+04
+ 0.468000000000D+06-0.186264514923D-08 0.154757445382D+01-0.132247805595D-06
+ 0.962778503406D+00 0.204843750000D+03 0.233437812893D+01-0.797318925819D-08
+ 0.152863510236D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.102000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 10 0 0.0-0.143917277455D-04-0.181898940355D-11 0.000000000000D+00
+ 0.950000000000D+02-0.573750000000D+02 0.486591697069D-08-0.389090329048D+00
+ -0.294670462608D-05 0.150498637231D-01 0.835768878460D-05 0.515361500740D+04
+ 0.468000000000D+06-0.335276126862D-07 0.148194846666D+01 0.193715095520D-06
+ 0.949499424839D+00 0.213093750000D+03 0.998554321567D+00-0.837177728956D-08
+ 0.123576576032D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.607000000000D+03
+ 0.466368000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 10 0 0.0 0.335960648954D-04 0.568434188608D-12 0.000000000000D+00
+ 0.163000000000D+03 0.420937500000D+02 0.417731685916D-08 0.307605419135D+01
+ 0.227615237236D-05 0.558893091511D-02 0.450387597084D-05 0.515359683418D+04
+ 0.468000000000D+06-0.122934579849D-06-0.569472253651D+00-0.298023223877D-07
+ 0.980980520748D+00 0.304250000000D+03 0.231747479956D+00-0.794283085079D-08
+ 0.145006040084D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.163000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 10 0 0.0 0.748480670154D-04 0.216004991671D-11 0.000000000000D+00
+ 0.410000000000D+02 0.791250000000D+02 0.550594363037D-08 0.677070663968D+00
+ 0.404380261898D-05 0.224095990416D-02 0.743381679058D-05 0.515370494461D+04
+ 0.468000000000D+06 0.521540641785D-07-0.171992650593D+01-0.186264514923D-07
+ 0.909841996400D+00 0.208906250000D+03-0.155823781292D+00-0.852892669260D-08
+ -0.230723896291D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.116415321827D-07 0.297000000000D+03
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 10 0 0.0-0.317557714880D-04-0.113686837722D-12 0.000000000000D+00
+ 0.202000000000D+03-0.864375000000D+02 0.417124517768D-08-0.301244010569D+01
+ -0.448152422905D-05 0.196484976914D-02 0.440701842308D-05 0.515377677536D+04
+ 0.468000000000D+06-0.372529029846D-07 0.472465838362D+00-0.633299350739D-07
+ 0.980728555052D+00 0.302312500000D+03 0.723074449010D+00-0.803962059675D-08
+ -0.450018745087D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.202000000000D+03
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 10 0 0.0-0.192811712623D-04 0.341060513165D-12 0.000000000000D+00
+ 0.500000000000D+01-0.772187500000D+02 0.425124851014D-08 0.134210930218D+01
+ -0.399164855480D-05 0.134087633342D-02 0.536441802979D-05 0.515374738312D+04
+ 0.468000000000D+06-0.353902578354D-07 0.464306044119D+00-0.689178705216D-07
+ 0.975227226746D+00 0.283312500000D+03-0.133822659910D+01-0.801461955536D-08
+ 0.192865176466D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.500000000000D+01
+ 0.465438000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 10 0 0.0 0.179577153176D-03 0.500222085975D-11 0.000000000000D+00
+ 0.150000000000D+03 0.765937500000D+02 0.419624621907D-08-0.128395043072D+00
+ 0.381469726563D-05 0.846908846870D-02 0.721216201782D-05 0.515376104355D+04
+ 0.468000000000D+06-0.521540641785D-07-0.155230132207D+01-0.134110450745D-06
+ 0.969508126991D+00 0.245281250000D+03 0.215851482619D+01-0.802569144512D-08
+ -0.664313385605D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.150000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 10 0 0.0 0.812020152807D-05 0.250111042988D-11 0.000000000000D+00
+ 0.124000000000D+03 0.228125000000D+01 0.469269546960D-08-0.105514558854D+01
+ 0.149011611939D-06 0.203808478545D-02 0.808015465736D-05 0.515369278145D+04
+ 0.468000000000D+06-0.149011611939D-07 0.255772980499D+01 0.689178705216D-07
+ 0.961158276283D+00 0.226125000000D+03-0.161406398543D+01-0.801319092442D-08
+ 0.140720147273D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.124000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 10 0 0.0 0.105960294604D-03-0.345607986674D-10 0.000000000000D+00
+ 0.232000000000D+03 0.662812500000D+02 0.430553648573D-08 0.233656798709D+00
+ 0.363215804100D-05 0.159160557669D-01 0.762939453125D-05 0.515305348015D+04
+ 0.468000000000D+06 0.232830643654D-06-0.151092539060D+01 0.188127160072D-06
+ 0.971566518560D+00 0.239218750000D+03-0.284512774930D+01-0.812176687562D-08
+ -0.664313385605D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.488000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 10 0 0.0 0.583194196224D-05-0.136424205266D-11 0.000000000000D+00
+ 0.130000000000D+03 0.262500000000D+02 0.445839999597D-08-0.162553681514D+01
+ 0.134296715260D-05 0.442556454800D-02 0.377744436264D-05 0.515362405395D+04
+ 0.468000000000D+06 0.484287738800D-07-0.533691961887D+00-0.298023223877D-07
+ 0.964494092308D+00 0.308375000000D+03-0.298891597774D+01-0.821069915143D-08
+ 0.149291932894D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.386000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 10 0 0.0-0.205868855119D-03 0.147792889038D-11 0.000000000000D+00
+ 0.221000000000D+03 0.487812500000D+02 0.455590405741D-08-0.241261651217D+01
+ 0.255182385445D-05 0.199556071311D-02 0.355765223503D-05 0.515378693581D+04
+ 0.468000000000D+06 0.298023223877D-07-0.585910462848D+00-0.149011611938D-07
+ 0.964637679180D+00 0.314593750000D+03 0.173326109785D+01-0.826891586211D-08
+ 0.158220876249D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.698491930962D-08 0.477000000000D+03
+ 0.460818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 10 0 0.0 0.610100105405D-04 0.295585778076D-11 0.000000000000D+00
+ 0.213000000000D+03 0.676250000000D+02 0.447125767440D-08-0.171291585725D+00
+ 0.353343784809D-05 0.803421752062D-02 0.702589750290D-05 0.515372732925D+04
+ 0.468000000000D+06 0.135973095894D-06-0.157733686383D+01-0.372529029846D-07
+ 0.956153163937D+00 0.241062500000D+03 0.293026221133D+01-0.817355474708D-08
+ -0.842892252703D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.121071934700D-07 0.469000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 10 0 0.0 0.398745760322D-04 0.909494701773D-12 0.000000000000D+00
+ 0.220000000000D+02 0.254687500000D+02 0.397730852801D-08 0.260956958133D+01
+ 0.122934579849D-05 0.164794927696D-01 0.334717333317D-05 0.515386274147D+04
+ 0.468000000000D+06 0.221654772759D-06-0.518529431884D+00-0.104308128357D-06
+ 0.984648623985D+00 0.326562500000D+03-0.164475090847D+01-0.769996359153D-08
+ 0.378587198248D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.534000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 10 0 0.0 0.714878551662D-04 0.284217094304D-11 0.000000000000D+00
+ 0.209000000000D+03 0.731875000000D+02 0.416017328792D-08-0.375126909107D+00
+ 0.368058681488D-05 0.971133867279D-02 0.833533704281D-05 0.515378762245D+04
+ 0.468000000000D+06-0.199303030968D-06-0.157873998221D+01 0.782310962677D-07
+ 0.972824685162D+00 0.228875000000D+03-0.145806304476D+01-0.799211861811D-08
+ -0.617882880159D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.139698386192D-08 0.465000000000D+03
+ 0.460800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 10 0 0.0 0.544632785022D-04 0.682121026330D-12 0.000000000000D+00
+ 0.410000000000D+02-0.696250000000D+02 0.494556314541D-08 0.322257703647D+00
+ -0.364333391190D-05 0.106616889825D-01 0.911392271519D-05 0.515379972458D+04
+ 0.468000000000D+06-0.180676579475D-06 0.143365117424D+01-0.372529029846D-07
+ 0.942530368379D+00 0.197656250000D+03-0.166904716896D+01-0.834963351004D-08
+ 0.106790162525D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.553000000000D+03
+ 0.460818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 10 0 0.0 0.504482537508D-03-0.534328137292D-11 0.000000000000D+00
+ 0.400000000000D+02-0.683750000000D+02 0.432053711057D-08 0.137060403955D+01
+ -0.341795384884D-05 0.147289527813D-01 0.474415719509D-05 0.515360571480D+04
+ 0.468000000000D+06-0.651925802231D-07 0.475632301137D+00 0.204890966415D-06
+ 0.979134834542D+00 0.300531250000D+03 0.532784800534D+00-0.816391148825D-08
+ -0.134648465792D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.400000000000D+02
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 10 0 0.0 0.768235418946D-03 0.252384779742D-10 0.000000000000D+00
+ 0.192000000000D+03-0.790312500000D+02 0.473519723997D-08-0.118499094372D+01
+ -0.403821468353D-05 0.175225499552D-01 0.860169529915D-05 0.515361147881D+04
+ 0.468000000000D+06 0.400468707085D-06 0.146102467560D+01 0.253319740295D-06
+ 0.947054631255D+00 0.202468750000D+03-0.224794230617D+01-0.803533470394D-08
+ 0.117862052285D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.448000000000D+03
+ 0.467940000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 10 0 0.0 0.147071201354D-03 0.126192389871D-10 0.000000000000D+00
+ 0.420000000000D+02-0.700312500000D+02 0.429053586090D-08-0.251065386046D+01
+ -0.353343784809D-05 0.801524950657D-02 0.399723649025D-05 0.515368244553D+04
+ 0.468000000000D+06 0.126659870148D-06 0.443693548863D+00 0.912696123123D-07
+ 0.976116274247D+00 0.306562500000D+03-0.154523214057D+01-0.792211570220D-08
+ 0.910752222200D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.298000000000D+03
+ 0.460818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 10 0 0.0 0.601068604738D-03 0.254658516496D-10 0.000000000000D+00
+ 0.225000000000D+03 0.234375000000D+01 0.499592238594D-08-0.241204833673D+01
+ 0.189989805222D-06 0.721952097956D-02 0.798515975475D-05 0.515374075508D+04
+ 0.468000000000D+06 0.596046447754D-07 0.253105535904D+01-0.186264514923D-07
+ 0.942750129396D+00 0.215937500000D+03 0.127903863499D+01-0.802890586473D-08
+ 0.157149403046D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.838190317154D-08 0.225000000000D+03
+ 0.460800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 10 0 0.0 0.429365318269D-03 0.409272615798D-11 0.000000000000D+00
+ 0.135000000000D+03 0.320000000000D+02 0.512949937852D-08 0.829153115658D+00
+ 0.180490314961D-05 0.118504340062D-01 0.785663723946D-05 0.515376400375D+04
+ 0.468000000000D+06-0.150874257088D-06-0.272205937528D+01 0.614672899246D-07
+ 0.938350365236D+00 0.218906250000D+03 0.944903180542D+00-0.836606276581D-08
+ -0.390730561211D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.135000000000D+03
+ 0.464448000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 11 59 44.0 0.312806107104D-03 0.216004991671D-11 0.000000000000D+00
+ 0.119000000000D+03-0.815000000000D+02 0.435018120251D-08 0.941752934213D+00
+ -0.420212745667D-05 0.523988658097D-02 0.512786209583D-05 0.515364940834D+04
+ 0.475184000000D+06-0.135973095894D-06 0.490499829321D+00 0.409781932831D-07
+ 0.976503116600D+00 0.291625000000D+03-0.172968500631D+01-0.819534136886D-08
+ 0.467876631797D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.119000000000D+03
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 11 59 44.0 0.305008143187D-05 0.147792889038D-11 0.000000000000D+00
+ 0.158000000000D+03-0.228125000000D+01 0.530843540336D-08-0.342984458657D+00
+ -0.152736902237D-06 0.493991083931D-02 0.800006091595D-05 0.515361889076D+04
+ 0.475184000000D+06 0.204890966415D-07 0.249115931257D+01 0.484287738800D-07
+ 0.935766660266D+00 0.210625000000D+03 0.781372310859D+00-0.832177520677D-08
+ 0.115004790411D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.670000000000D+03
+ 0.471498000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 11 59 44.0 0.179616734386D-03 0.511590769747D-11 0.000000000000D+00
+ 0.174000000000D+03 0.686562500000D+02 0.414838708269D-08 0.919412751723D+00
+ 0.348128378391D-05 0.846999231726D-02 0.738538801670D-05 0.515376255608D+04
+ 0.475184000000D+06 0.633299350739D-07-0.155235901517D+01-0.163912773132D-06
+ 0.969507603266D+00 0.240781250000D+03 0.215849720241D+01-0.800069040373D-08
+ -0.864321716755D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.430000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 11 59 44.0-0.205862335861D-03 0.136424205266D-11 0.000000000000D+00
+ 0.300000000000D+01 0.410625000000D+02 0.450125892407D-08-0.136484014817D+01
+ 0.223331153393D-05 0.199502287433D-02 0.377371907234D-05 0.515378722572D+04
+ 0.475184000000D+06 0.502914190292D-07-0.585969857322D+00 0.372529029846D-08
+ 0.964638865606D+00 0.313343750000D+03 0.173326232963D+01-0.825427239501D-08
+ 0.154292141173D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.300000000000D+01
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 11 59 44.0 0.398904085159D-04 0.909494701773D-12 0.000000000000D+00
+ 0.460000000000D+02 0.281875000000D+02 0.387944730884D-08-0.262589354833D+01
+ 0.141188502312D-05 0.164778976468D-01 0.371597707272D-05 0.515386562920D+04
+ 0.475184000000D+06 0.214204192162D-06-0.518585681084D+00 0.134110450745D-06
+ 0.984649459311D+00 0.315062500000D+03-0.164474580142D+01-0.769889211833D-08
+ 0.209651589973D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.460000000000D+02
+ 0.469818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 11 59 44.0 0.544604845345D-04 0.682121026330D-12 0.000000000000D+00
+ 0.670000000000D+02-0.722812500000D+02 0.490270421731D-08 0.136997718061D+01
+ -0.395625829697D-05 0.106615256518D-01 0.871531665325D-05 0.515380036545D+04
+ 0.475184000000D+06-0.141561031342D-06 0.143359094151D+01-0.255182385445D-06
+ 0.942531645506D+00 0.205000000000D+03-0.166899267526D+01-0.821819946385D-08
+ 0.153577825704D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.670000000000D+02
+ 0.474558000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 12 0 0.0-0.213140156120D-03-0.670752342558D-11 0.000000000000D+00
+ 0.750000000000D+02 0.231250000000D+01 0.552237288614D-08-0.196935215714D+00
+ 0.160187482834D-06 0.230890380917D-01 0.827759504318D-05 0.515374844551D+04
+ 0.475200000000D+06-0.307336449623D-06 0.246695707528D+01 0.264495611191D-06
+ 0.932343663102D+00 0.213406250000D+03-0.174948268692D+01-0.878786604990D-08
+ 0.200008331150D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.587000000000D+03
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 12 0 0.0 0.574737787247D-04 0.329691829393D-11 0.000000000000D+00
+ 0.118000000000D+03 0.266562500000D+02 0.525700468963D-08 0.288179074828D+01
+ 0.137276947498D-05 0.499047315680D-02 0.762753188610D-05 0.515364862251D+04
+ 0.475200000000D+06-0.521540641785D-07-0.274434374745D+01-0.353902578354D-07
+ 0.929709102710D+00 0.216125000000D+03 0.502605379874D+00-0.827605901679D-08
+ -0.277868717205D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.118000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 12 0 0.0-0.307988375425D-05-0.488853402203D-11 0.000000000000D+00
+ 0.111000000000D+03 0.791875000000D+02 0.428696428356D-08 0.326543635225D-01
+ 0.413320958614D-05 0.645121629350D-02 0.812113285065D-05 0.515372297478D+04
+ 0.475200000000D+06 0.670552253723D-07-0.160337161228D+01-0.614672899246D-07
+ 0.962584390269D+00 0.220656250000D+03-0.157815495980D+00-0.804926385558D-08
+ -0.173221501085D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.367000000000D+03
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 12 0 0.0-0.976491719484D-06-0.227373675443D-12 0.000000000000D+00
+ 0.227000000000D+03 0.203437500000D+02 0.517771567264D-08 0.830911693870D+00
+ 0.118464231491D-05 0.647755234968D-02 0.757910311222D-05 0.515363574600D+04
+ 0.475200000000D+06-0.108033418655D-06-0.269283355923D+01-0.428408384323D-07
+ 0.937207918380D+00 0.224312500000D+03-0.204036030476D+01-0.834749056363D-08
+ -0.378944355982D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.512227416039D-08 0.739000000000D+03
+ 0.468000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 12 0 0.0 0.641181599349D-03 0.250111042988D-11 0.000000000000D+00
+ 0.240000000000D+02 0.313750000000D+02 0.494342019901D-08 0.299794108071D+01
+ 0.166893005371D-05 0.127016954357D-01 0.736489892006D-05 0.515367434311D+04
+ 0.475200000000D+06 0.130385160446D-06-0.272116799004D+01-0.109896063805D-06
+ 0.938895208594D+00 0.221437500000D+03-0.185906087744D+01-0.791675833619D-08
+ -0.290369237901D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.186264514923D-08 0.280000000000D+03
+ 0.468000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 12 0 0.0 0.401346944273D-03 0.113686837722D-12 0.000000000000D+00
+ 0.103000000000D+03-0.825312500000D+02 0.443232748137D-08 0.102654520654D+01
+ -0.451505184174D-05 0.902271829546D-02 0.919401645660D-05 0.515370019531D+04
+ 0.475200000000D+06 0.102445483208D-06 0.154751713523D+01-0.109896063805D-06
+ 0.962779802478D+00 0.200125000000D+03 0.233432724571D+01-0.791782980939D-08
+ 0.143577409147D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.103000000000D+03
+ 0.469080000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 12 0 0.0-0.144052319229D-04-0.181898940355D-11 0.000000000000D+00
+ 0.960000000000D+02-0.687812500000D+02 0.492199073496D-08 0.661121203997D+00
+ -0.344775617123D-05 0.150483405450D-01 0.832229852676D-05 0.515361214447D+04
+ 0.475200000000D+06-0.145286321640D-06 0.148188876351D+01 0.126659870148D-06
+ 0.949500140206D+00 0.216062500000D+03 0.998563315587D+00-0.833320425426D-08
+ 0.357157734196D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.608000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 12 0 0.0 0.336002558470D-04 0.568434188608D-12 0.000000000000D+00
+ 0.164000000000D+03 0.532500000000D+02 0.410588531232D-08-0.215678711847D+01
+ 0.253506004810D-05 0.558750715572D-02 0.441260635853D-05 0.515359976959D+04
+ 0.475200000000D+06-0.279396772385D-07-0.569530230557D+00-0.126659870148D-06
+ 0.980981449701D+00 0.306906250000D+03 0.231627996121D+00-0.803533470394D-08
+ 0.220366321999D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.232830643654D-08 0.164000000000D+03
+ 0.471078000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 12 0 0.0 0.748638994992D-04 0.216004991671D-11 0.000000000000D+00
+ 0.420000000000D+02 0.735937500000D+02 0.552523014801D-08 0.172773895661D+01
+ 0.374577939510D-05 0.224074232392D-02 0.707246363163D-05 0.515370283508D+04
+ 0.475200000000D+06 0.447034835815D-07-0.171998781244D+01 0.111758708954D-07
+ 0.909840325747D+00 0.215531250000D+03-0.156322731446D+00-0.851749764511D-08
+ -0.232509684962D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.116415321827D-07 0.298000000000D+03
+ 0.471258000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 12 0 0.0-0.317562371492D-04-0.113686837722D-12 0.000000000000D+00
+ 0.203000000000D+03-0.848750000000D+02 0.420231790055D-08-0.196194871495D+01
+ -0.431016087532D-05 0.196405150928D-02 0.497139990330D-05 0.515377880669D+04
+ 0.475200000000D+06 0.447034835815D-07 0.472407254344D+00 0.391155481339D-07
+ 0.980728556515D+00 0.294468750000D+03 0.722698420547D+00-0.806855037322D-08
+ 0.625026034843D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.203000000000D+03
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 12 0 0.0-0.192788429558D-04 0.227373675443D-12 0.000000000000D+00
+ 0.600000000000D+01-0.687187500000D+02 0.420660379336D-08 0.239123550801D+01
+ -0.354833900929D-05 0.134050671477D-02 0.507757067680D-05 0.515375001335D+04
+ 0.475200000000D+06 0.186264514923D-07 0.464248427090D+00-0.633299350739D-07
+ 0.975227428628D+00 0.288781250000D+03-0.133721991105D+01-0.800247619240D-08
+ 0.278583032673D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.600000000000D+01
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 12 0 0.0 0.813836231828D-05 0.250111042988D-11 0.000000000000D+00
+ 0.119000000000D+03 0.356250000000D+01 0.467626621383D-08-0.493607577880D-02
+ 0.206753611565D-06 0.203834357671D-02 0.815466046333D-05 0.515369328499D+04
+ 0.475200000000D+06-0.596046447754D-07 0.255767226843D+01 0.335276126862D-07
+ 0.961159254975D+00 0.224531250000D+03-0.161410320627D+01-0.800283335013D-08
+ 0.110004582132D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.375000000000D+03
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 12 0 0.0 0.105711165816D-03-0.345607986674D-10 0.000000000000D+00
+ 0.233000000000D+03 0.809062500000D+02 0.405909764914D-08 0.128404255359D+01
+ 0.428222119808D-05 0.159180234186D-01 0.852905213833D-05 0.515305983543D+04
+ 0.475200000000D+06-0.152736902237D-06-0.151098146717D+01 0.208616256714D-06
+ 0.971565580829D+00 0.219375000000D+03-0.284495791329D+01-0.792247285994D-08
+ -0.338228374284D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.489000000000D+03
+ 0.468000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 12 0 0.0 0.582216307521D-05-0.136424205266D-11 0.000000000000D+00
+ 0.131000000000D+03 0.359375000000D+02 0.447554356721D-08-0.575504498335D+00
+ 0.193528831005D-05 0.442465918604D-02 0.390596687794D-05 0.515362194252D+04
+ 0.475200000000D+06 0.614672899246D-07-0.533751031593D+00 0.149011611939D-07
+ 0.964495109035D+00 0.304593750000D+03-0.298873744907D+01-0.823212861549D-08
+ 0.140362989539D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.387000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 12 0 0.0 0.610318966210D-04 0.295585778076D-11 0.000000000000D+00
+ 0.214000000000D+03 0.628437500000D+02 0.448161524869D-08 0.878951081143D+00
+ 0.334903597832D-05 0.803231366444D-02 0.766851007938D-05 0.515372343254D+04
+ 0.475200000000D+06 0.189989805222D-06-0.157739515087D+01 0.137835741043D-06
+ 0.956152944499D+00 0.227250000000D+03 0.293016839586D+01-0.805140680198D-08
+ -0.131076888450D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.121071934700D-07 0.470000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 12 0 0.0 0.398815609515D-04 0.909494701773D-12 0.000000000000D+00
+ 0.230000000000D+02 0.281875000000D+02 0.387944730884D-08-0.262355959566D+01
+ 0.141188502312D-05 0.164779021870D-01 0.371597707272D-05 0.515386565590D+04
+ 0.475200000000D+06 0.214204192162D-06-0.518585764470D+00 0.134110450745D-06
+ 0.984649409572D+00 0.315062500000D+03-0.164474634270D+01-0.769889211833D-08
+ 0.209651589973D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.279396772385D-08 0.535000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 12 0 0.0 0.715083442628D-04 0.284217094304D-11 0.000000000000D+00
+ 0.210000000000D+03 0.764375000000D+02 0.407874132452D-08 0.675015979434D+00
+ 0.392459332943D-05 0.971216475591D-02 0.845827162266D-05 0.515378909302D+04
+ 0.475200000000D+06-0.130385160446D-06-0.157879689703D+01-0.104308128357D-06
+ 0.972823522142D+00 0.220781250000D+03-0.145809906180D+01-0.801569102856D-08
+ -0.207865801302D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.466000000000D+03
+ 0.473820000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 12 0 0.0 0.504443887621D-03-0.534328137292D-11 0.000000000000D+00
+ 0.410000000000D+02-0.791562500000D+02 0.415624455284D-08 0.242072586646D+01
+ -0.414997339249D-05 0.147280867677D-01 0.437907874584D-05 0.515360878944D+04
+ 0.475200000000D+06-0.208616256714D-06 0.475573158285D+00-0.135973095894D-06
+ 0.979135644998D+00 0.307843750000D+03 0.532883706962D+00-0.787961393183D-08
+ 0.532165023952D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.410000000000D+02
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 12 0 0.0 0.768417492509D-03 0.252384779742D-10 0.000000000000D+00
+ 0.193000000000D+03-0.732500000000D+02 0.493556272886D-08-0.134781708919D+00
+ -0.376999378204D-05 0.175228894223D-01 0.887177884579D-05 0.515361171341D+04
+ 0.475200000000D+06-0.633299350739D-07 0.146096462135D+01 0.203028321266D-06
+ 0.947053649637D+00 0.201062500000D+03-0.224792959488D+01-0.847463871701D-08
+ 0.140720147273D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.449000000000D+03
+ 0.468000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 12 0 0.0 0.422354787588D-06 0.238742359215D-11 0.000000000000D+00
+ 0.124000000000D+03-0.843750000000D+00 0.464055044041D-08-0.157995315822D+01
+ -0.949949026108D-07 0.800005800556D-02 0.823289155960D-05 0.515368733787D+04
+ 0.475200000000D+06 0.173225998879D-06 0.256860350977D+01-0.124797224999D-06
+ 0.959089746692D+00 0.221156250000D+03-0.242943385999D+01-0.780675375406D-08
+ 0.140005831805D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.102445483208D-07 0.124000000000D+03
+ 0.468000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 12 0 0.0 0.147162470967D-03 0.126192389871D-10 0.000000000000D+00
+ 0.430000000000D+02-0.675625000000D+02 0.433375194674D-08-0.146050604042D+01
+ -0.322796404362D-05 0.801546382718D-02 0.425241887569D-05 0.515368190193D+04
+ 0.475200000000D+06-0.465661287308D-07 0.443636353155D+00 0.244006514549D-06
+ 0.976115965571D+00 0.306468750000D+03-0.154520584608D+01-0.811569519414D-08
+ 0.510735559900D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.299000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 12 0 0.0 0.601251609623D-03 0.254658516496D-10 0.000000000000D+00
+ 0.226000000000D+03 0.625000000000D+00 0.509306928964D-08-0.136187884210D+01
+ 0.353902578354D-07 0.721939885989D-02 0.797584652901D-05 0.515374116516D+04
+ 0.475200000000D+06 0.521540641785D-07 0.253099765131D+01 0.156462192535D-06
+ 0.942750479033D+00 0.215718750000D+03 0.127901227028D+01-0.817462622028D-08
+ 0.903609067516D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.226000000000D+03
+ 0.473928000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 12 0 0.0 0.429395120591D-03 0.409272615798D-11 0.000000000000D+00
+ 0.136000000000D+03 0.251250000000D+02 0.508592613495D-08 0.187920176302D+01
+ 0.113993883133D-05 0.118506557774D-01 0.792369246483D-05 0.515376586914D+04
+ 0.475200000000D+06-0.173225998879D-06-0.272211992546D+01-0.169500708580D-06
+ 0.938348268875D+00 0.218000000000D+03 0.944984391513D+00-0.821069915143D-08
+ -0.311084386485D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.136000000000D+03
+ 0.468018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 13 59 44.0-0.989530235529D-06-0.341060513165D-12 0.000000000000D+00
+ 0.120000000000D+02 0.238750000000D+02 0.524378985347D-08 0.187886129224D+01
+ 0.974163413048D-06 0.647741602734D-02 0.748597085476D-05 0.515363481903D+04
+ 0.482384000000D+06-0.931322574616D-07-0.269289373783D+01-0.145286321640D-06
+ 0.937205625988D+00 0.223937500000D+03-0.204043408850D+01-0.826462996930D-08
+ -0.341085636157D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.512227416039D-08 0.268000000000D+03
+ 0.477960000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 13 59 44.0 0.398973934352D-04 0.909494701773D-12 0.000000000000D+00
+ 0.470000000000D+02 0.436562500000D+02 0.393373528444D-08-0.157596408345D+01
+ 0.268779695034D-05 0.164789758856D-01 0.432506203651D-05 0.515386114121D+04
+ 0.482384000000D+06 0.119209289551D-06-0.518640958906D+00 0.411644577980D-06
+ 0.984650000591D+00 0.306812500000D+03-0.164461543055D+01-0.790068623815D-08
+ 0.139291516337D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.470000000000D+02
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 13 59 44.0 0.715372152627D-04 0.284217094304D-11 0.000000000000D+00
+ 0.232000000000D+03 0.810937500000D+02 0.393802117725D-08 0.172271279726D+01
+ 0.409409403801D-05 0.971190154087D-02 0.796467065811D-05 0.515379017830D+04
+ 0.482384000000D+06 0.145286321640D-06-0.157885399911D+01-0.210478901863D-06
+ 0.972823466551D+00 0.227812500000D+03-0.145802208159D+01-0.773032199894D-08
+ -0.173221501085D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.139698386192D-08 0.232000000000D+03
+ 0.481320000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 14 0 0.0 0.312821473926D-03 0.216004991671D-11 0.000000000000D+00
+ 0.120000000000D+03-0.749687500000D+02 0.423517641210D-08 0.199440586102D+01
+ -0.388920307159D-05 0.523950951174D-02 0.522285699844D-05 0.515364811707D+04
+ 0.482400000000D+06 0.540167093277D-07 0.490441160454D+00-0.128522515297D-06
+ 0.976504772623D+00 0.289625000000D+03-0.172980900179D+01-0.794675958586D-08
+ 0.989326923723D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.376000000000D+03
+ 0.480888000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 14 0 0.0-0.213188119233D-03-0.670752342558D-11 0.000000000000D+00
+ 0.760000000000D+02-0.656250000000D+01 0.546272754453D-08 0.853165438382D+00
+ -0.400468707085D-06 0.230906875804D-01 0.886432826519D-05 0.515375209999D+04
+ 0.482400000000D+06-0.404193997383D-06 0.246689471547D+01-0.633299350739D-07
+ 0.932344134161D+00 0.202875000000D+03-0.174944231477D+01-0.875107880327D-08
+ 0.139291516337D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.844000000000D+03
+ 0.475200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 14 0 0.0 0.574975274503D-04 0.329691829393D-11 0.000000000000D+00
+ 0.113000000000D+03 0.177500000000D+02 0.532343602819D-08-0.235129370439D+01
+ 0.942498445511D-06 0.499161588959D-02 0.751577317715D-05 0.515364630318D+04
+ 0.482400000000D+06 0.745058059692D-08-0.274440369783D+01-0.651925802231D-07
+ 0.929707083883D+00 0.218625000000D+03 0.502706894686D+00-0.831534636755D-08
+ -0.239652839646D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.369000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 14 0 0.0-0.311434268951D-05-0.488853402203D-11 0.000000000000D+00
+ 0.112000000000D+03 0.805312500000D+02 0.419803200774D-08 0.108276812975D+01
+ 0.427290797234D-05 0.645228335634D-02 0.765174627304D-05 0.515372491646D+04
+ 0.482400000000D+06 0.763684511185D-07-0.160342875825D+01 0.894069671631D-07
+ 0.962583492038D+00 0.229750000000D+03-0.157781794737D+00-0.792175854447D-08
+ -0.228580949886D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.368000000000D+03
+ 0.475200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 14 0 0.0 0.306079164147D-05 0.147792889038D-11 0.000000000000D+00
+ 0.159000000000D+03-0.253125000000D+01 0.531879297765D-08 0.709527393110D+00
+ -0.104308128357D-06 0.493998976890D-02 0.815838575363D-05 0.515361911201D+04
+ 0.482400000000D+06 0.167638063431D-07 0.249109927587D+01 0.558793544769D-07
+ 0.935767486815D+00 0.207687500000D+03 0.781414597969D+00-0.831998941810D-08
+ 0.114647632677D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.415000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 14 0 0.0-0.978354364634D-06-0.227373675443D-12 0.000000000000D+00
+ 0.228000000000D+03 0.238750000000D+02 0.524378985347D-08 0.188119449882D+01
+ 0.974163413048D-06 0.647742149886D-02 0.748597085476D-05 0.515363481331D+04
+ 0.482400000000D+06-0.931322574616D-07-0.269289375100D+01-0.145286321640D-06
+ 0.937205618673D+00 0.223937500000D+03-0.204043348431D+01-0.826462996930D-08
+ -0.341085636157D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.740000000000D+03
+ 0.475200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 14 0 0.0 0.641199294478D-03 0.238742359215D-11 0.000000000000D+00
+ 0.250000000000D+02 0.329062500000D+02 0.503806699857D-08-0.223507669653D+01
+ 0.172294676304D-05 0.127020342043D-01 0.750459730625D-05 0.515367363548D+04
+ 0.482400000000D+06 0.206753611565D-06-0.272122518575D+01-0.353902578354D-07
+ 0.938893321430D+00 0.224312500000D+03-0.185904429234D+01-0.793997358891D-08
+ -0.259653672761D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.281000000000D+03
+ 0.482340000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 14 0 0.0 0.401347875595D-03 0.113686837722D-12 0.000000000000D+00
+ 0.980000000000D+02-0.706250000000D+02 0.444161358246D-08 0.207652773146D+01
+ -0.351481139660D-05 0.902246776968D-02 0.930391252041D-05 0.515370326233D+04
+ 0.482400000000D+06 0.113621354103D-06 0.154746074559D+01 0.186264514923D-08
+ 0.962780933313D+00 0.196843750000D+03 0.233450806824D+01-0.784675542029D-08
+ 0.115004790411D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.354000000000D+03
+ 0.475200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 14 0 0.0-0.144187361002D-04-0.181898940355D-11 0.000000000000D+00
+ 0.910000000000D+02-0.955000000000D+02 0.471126767178D-08 0.171109212359D+01
+ -0.499375164509D-05 0.150499825832D-01 0.893324613571D-05 0.515361988068D+04
+ 0.482400000000D+06-0.372529029846D-06 0.148182806996D+01-0.160187482834D-06
+ 0.949501671882D+00 0.204968750000D+03 0.998811350422D+00-0.809819446516D-08
+ 0.222509268404D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.347000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 14 0 0.0 0.336049124599D-04 0.568434188608D-12 0.000000000000D+00
+ 0.165000000000D+03 0.518437500000D+02 0.404981154805D-08-0.110662720157D+01
+ 0.259093940258D-05 0.558769446798D-02 0.392273068428D-05 0.515359909248D+04
+ 0.482400000000D+06 0.782310962677D-07-0.569587926583D+00-0.139698386192D-06
+ 0.980982936025D+00 0.310281250000D+03 0.231691280495D+00-0.806855037322D-08
+ 0.176435920693D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.165000000000D+03
+ 0.477870000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 14 0 0.0 0.748792663217D-04 0.216004991671D-11 0.000000000000D+00
+ 0.430000000000D+02 0.646875000000D+02 0.546129891359D-08 0.277754940872D+01
+ 0.337697565556D-05 0.223984057084D-02 0.713579356670D-05 0.515370507622D+04
+ 0.482400000000D+06 0.130385160446D-07-0.172004921696D+01 0.260770320892D-07
+ 0.909838788220D+00 0.213812500000D+03-0.155963424137D+00-0.850535428215D-08
+ -0.209294432239D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.116415321827D-07 0.299000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 14 0 0.0-0.317567028105D-04-0.113686837722D-12 0.000000000000D+00
+ 0.204000000000D+03-0.716875000000D+02 0.422053294500D-08-0.912778507472D+00
+ -0.360049307346D-05 0.196369423065D-02 0.519864261150D-05 0.515377524757D+04
+ 0.482400000000D+06-0.558793544769D-08 0.472349085795D+00-0.558793544769D-08
+ 0.980729347954D+00 0.290968750000D+03 0.723643771376D+00-0.801997692137D-08
+ 0.102861427449D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.204000000000D+03
+ 0.475200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 14 0 0.0-0.192769803107D-04 0.227373675443D-12 0.000000000000D+00
+ 0.700000000000D+01-0.665937500000D+02 0.427053502778D-08-0.284156114332D+01
+ -0.343658030033D-05 0.134256691672D-02 0.431016087532D-05 0.515374608803D+04
+ 0.482400000000D+06 0.428408384323D-07 0.464190498460D+00 0.558793544769D-08
+ 0.975227852874D+00 0.303656250000D+03-0.133747512881D+01-0.800926218935D-08
+ 0.821462788651D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.700000000000D+01
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 14 0 0.0 0.179653055966D-03 0.511590769747D-11 0.000000000000D+00
+ 0.175000000000D+03 0.666562500000D+02 0.407516974718D-08 0.197198698524D+01
+ 0.356696546078D-05 0.846939871553D-02 0.777654349804D-05 0.515376058960D+04
+ 0.482400000000D+06 0.968575477600D-07-0.155241479624D+01 0.147148966789D-06
+ 0.969507740780D+00 0.230500000000D+03 0.215838091798D+01-0.771710716278D-08
+ -0.207508643568D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.431000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 14 0 0.0 0.815605744720D-05 0.250111042988D-11 0.000000000000D+00
+ 0.120000000000D+03-0.221875000000D+01 0.464733643736D-08 0.104498909252D+01
+ -0.147148966789D-06 0.203921471257D-02 0.836700201035D-05 0.515369518852D+04
+ 0.482400000000D+06-0.763684511185D-07 0.255761462214D+01-0.260770320892D-07
+ 0.961160036173D+00 0.220406250000D+03-0.161385896770D+01-0.798283251702D-08
+ 0.110718897601D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.931322574616D-08 0.376000000000D+03
+ 0.481410000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 14 0 0.0 0.105462037027D-03-0.345607986674D-10 0.000000000000D+00
+ 0.234000000000D+03 0.907187500000D+02 0.402445334892D-08 0.233463997371D+01
+ 0.463053584099D-05 0.159188224934D-01 0.875629484653D-05 0.515305819702D+04
+ 0.482400000000D+06-0.372529029846D-06-0.151103907543D+01 0.931322574615D-08
+ 0.971563983323D+00 0.214343750000D+03-0.284500221191D+01-0.776210903728D-08
+ -0.197508227010D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.139698386192D-08 0.490000000000D+03
+ 0.475218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 14 0 0.0 0.581238418818D-05-0.136424205266D-11 0.000000000000D+00
+ 0.132000000000D+03 0.441875000000D+02 0.447518640948D-08 0.474581193035D+00
+ 0.231899321079D-05 0.442468735855D-02 0.406615436077D-05 0.515362194252D+04
+ 0.482400000000D+06 0.167638063431D-07-0.533810449474D+00 0.465661287308D-07
+ 0.964495938510D+00 0.302875000000D+03-0.298861015472D+01-0.826677291570D-08
+ 0.133219834855D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.388000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 14 0 0.0-0.205852091312D-03 0.147792889038D-11 0.000000000000D+00
+ 0.400000000000D+01 0.377500000000D+02 0.440554065131D-08-0.312656793193D+00
+ 0.176765024662D-05 0.199524650816D-02 0.400841236115D-05 0.515378677368D+04
+ 0.482400000000D+06-0.130385160446D-07-0.586028981157D+00 0.353902578354D-07
+ 0.964639964258D+00 0.306187500000D+03 0.173352428267D+01-0.821141346690D-08
+ 0.110004582132D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.400000000000D+01
+ 0.476478000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 14 0 0.0 0.610533170402D-04 0.295585778076D-11 0.000000000000D+00
+ 0.215000000000D+03 0.738125000000D+02 0.434982404477D-08 0.192874377782D+01
+ 0.396929681301D-05 0.803252856713D-02 0.860355794430D-05 0.515372882462D+04
+ 0.482400000000D+06-0.670552253723D-07-0.157745158148D+01 0.102445483208D-06
+ 0.956151543024D+00 0.209687500000D+03 0.293052347680D+01-0.793961643118D-08
+ -0.309655755548D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.121071934700D-07 0.471000000000D+03
+ 0.475200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 14 0 0.0 0.715292990208D-04 0.284217094304D-11 0.000000000000D+00
+ 0.211000000000D+03 0.810937500000D+02 0.393802117725D-08 0.172504899112D+01
+ 0.409409403801D-05 0.971191201825D-02 0.796467065811D-05 0.515379019737D+04
+ 0.482400000000D+06 0.145286321640D-06-0.157885404885D+01-0.210478901863D-06
+ 0.972823435830D+00 0.227812500000D+03-0.145802483480D+01-0.773032199894D-08
+ -0.173221501085D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.139698386192D-08 0.467000000000D+03
+ 0.475200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 14 0 0.0 0.544656068087D-04 0.682121026330D-12 0.000000000000D+00
+ 0.680000000000D+02-0.767187500000D+02 0.482912972407D-08 0.242235670998D+01
+ -0.397302210331D-05 0.106617991114D-01 0.801868736744D-05 0.515380132103D+04
+ 0.482400000000D+06 0.126659870148D-06 0.143353311529D+01-0.111758708954D-06
+ 0.942533838420D+00 0.211468750000D+03-0.166893384255D+01-0.794068790438D-08
+ 0.116433421348D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.680000000000D+02
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 14 0 0.0 0.504405237734D-03-0.534328137292D-11 0.000000000000D+00
+ 0.360000000000D+02-0.870625000000D+02 0.419374611493D-08-0.281224716451D+01
+ -0.455789268017D-05 0.147290973691D-01 0.448338687420D-05 0.515360700607D+04
+ 0.482400000000D+06-0.931322574616D-07 0.475516410230D+00-0.221654772759D-06
+ 0.979136116058D+00 0.304875000000D+03 0.532889756129D+00-0.788247119371D-08
+ 0.885751180806D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.651925802231D-08 0.292000000000D+03
+ 0.475200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 14 0 0.0 0.768599100411D-03 0.252384779742D-10 0.000000000000D+00
+ 0.188000000000D+03-0.677812500000D+02 0.497735018376D-08 0.915448894727D+00
+ -0.336207449436D-05 0.175233497284D-01 0.914745032787D-05 0.515361241913D+04
+ 0.482400000000D+06-0.186264514923D-06 0.146090436668D+01 0.117346644402D-06
+ 0.947054344523D+00 0.201500000000D+03-0.224793927501D+01-0.842892252703D-08
+ 0.314298806093D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.700000000000D+03
+ 0.475200000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 14 0 0.0 0.439584255219D-06 0.238742359215D-11 0.000000000000D+00
+ 0.125000000000D+03-0.168750000000D+01 0.482377235805D-08-0.529741417445D+00
+ -0.162050127983D-06 0.800031889230D-02 0.802986323834D-05 0.515368807602D+04
+ 0.482400000000D+06 0.186264514923D-07 0.256854692410D+01 0.169500708580D-06
+ 0.959089026936D+00 0.224156250000D+03-0.242947207726D+01-0.812498129523D-08
+ 0.432160858377D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.125000000000D+03
+ 0.475440000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 14 0 0.0 0.147253274918D-03 0.126192389871D-10 0.000000000000D+00
+ 0.440000000000D+02-0.731562500000D+02 0.433089468486D-08-0.410426679096D+00
+ -0.389665365219D-05 0.801504147239D-02 0.455603003502D-05 0.515368025398D+04
+ 0.482400000000D+06-0.128522515297D-06 0.443576875295D+00 0.763684511185D-07
+ 0.976116034328D+00 0.303250000000D+03-0.154510971774D+01-0.824605776712D-08
+ 0.928610108910D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.698491930962D-08 0.300000000000D+03
+ 0.475200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 14 0 0.0 0.601435080171D-03 0.254658516496D-10 0.000000000000D+00
+ 0.227000000000D+03-0.250000000000D+01 0.520735976458D-08-0.311797268842D+00
+ -0.894069671631D-07 0.721900176723D-02 0.808946788311D-05 0.515374001312D+04
+ 0.482400000000D+06-0.391155481339D-07 0.253093784722D+01 0.298023223877D-07
+ 0.942750680916D+00 0.212843750000D+03 0.127907551369D+01-0.831927510263D-08
+ 0.131076888450D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.227000000000D+03
+ 0.480228000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 14 0 0.0 0.429424922913D-03 0.409272615798D-11 0.000000000000D+00
+ 0.131000000000D+03 0.246562500000D+02 0.505342478114D-08 0.292932360748D+01
+ 0.118091702461D-05 0.118506439030D-01 0.764615833759D-05 0.515376597977D+04
+ 0.482400000000D+06 0.186264514923D-08-0.272217825639D+01-0.149011611939D-06
+ 0.938346690386D+00 0.218750000000D+03 0.944990870777D+00-0.805819279893D-08
+ -0.316441752498D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.387000000000D+03
+ 0.475218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 15 59 28.0 0.401336699724D-03 0.000000000000D+00 0.000000000000D+00
+ 0.126000000000D+03-0.616875000000D+02 0.450804492102D-08 0.312209528373D+01
+ -0.308826565743D-05 0.902407499962D-02 0.899285078049D-05 0.515370009613D+04
+ 0.489568000000D+06-0.931322574616D-08 0.154740384539D+01 0.139698386192D-06
+ 0.962782418175D+00 0.206281250000D+03 0.233443677878D+01-0.780461080765D-08
+ 0.258939357292D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.126000000000D+03
+ 0.486420000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 15 59 44.0-0.991858541966D-06-0.341060513165D-12 0.000000000000D+00
+ 0.130000000000D+02 0.294062500000D+02 0.521093134192D-08 0.292899427390D+01
+ 0.139512121677D-05 0.647668726742D-02 0.708922743797D-05 0.515363645744D+04
+ 0.489584000000D+06 0.521540641785D-07-0.269295250033D+01-0.894069671631D-07
+ 0.937203630567D+00 0.227343750000D+03-0.204035779001D+01-0.814426781287D-08
+ -0.352514683652D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.269000000000D+03
+ 0.484818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 15 59 44.0 0.105222221464D-03-0.344471118297D-10 0.000000000000D+00
+ 0.140000000000D+02 0.944687500000D+02 0.385444626744D-08-0.290034722335D+01
+ 0.474229454994D-05 0.159169270191D-01 0.813603401184D-05 0.515306166077D+04
+ 0.489584000000D+06-0.201165676117D-06-0.151109432545D+01-0.167638063431D-06
+ 0.971563431802D+00 0.228562500000D+03-0.284498256492D+01-0.760674542291D-08
+ -0.156435087578D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.139698386192D-08 0.140000000000D+02
+ 0.487410000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 15 59 44.0 0.715581700206D-04 0.284217094304D-11 0.000000000000D+00
+ 0.233000000000D+03 0.764687500000D+02 0.395087885568D-08 0.277283579890D+01
+ 0.408664345741D-05 0.971276185010D-02 0.759959220886D-05 0.515378891754D+04
+ 0.489584000000D+06 0.113621354103D-06-0.157890863033D+01-0.372529029846D-07
+ 0.972822325475D+00 0.236343750000D+03-0.145804024372D+01-0.761746015493D-08
+ -0.233224000430D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.139698386192D-08 0.233000000000D+03
+ 0.482400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 15 59 44.0 0.768779311329D-03 0.252384779742D-10 0.000000000000D+00
+ 0.215000000000D+03-0.755625000000D+02 0.480305720947D-08 0.196327017909D+01
+ -0.403635203838D-05 0.175231599715D-01 0.889040529728D-05 0.515361452675D+04
+ 0.489584000000D+06-0.322237610817D-06 0.146084308504D+01-0.339001417160D-06
+ 0.947056563770D+00 0.206500000000D+03-0.224787237430D+01-0.806997900416D-08
+ 0.254296306748D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.215000000000D+03
+ 0.482430000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 16 0 0.0 0.312836375088D-03 0.216004991671D-11 0.000000000000D+00
+ 0.121000000000D+03-0.682187500000D+02 0.413874382386D-08 0.304445818908D+01
+ -0.374764204025D-05 0.523891032208D-02 0.497698783875D-05 0.515364982796D+04
+ 0.489600000000D+06 0.894069671631D-07 0.490384238312D+00-0.521540641785D-07
+ 0.976505542118D+00 0.293281250000D+03-0.172966808035D+01-0.791282960111D-08
+ 0.960754304988D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.121000000000D+03
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 16 0 0.0-0.213236548007D-03-0.670752342558D-11 0.000000000000D+00
+ 0.770000000000D+02-0.142187500000D+02 0.520128808310D-08 0.190327172179D+01
+ -0.119023025036D-05 0.230912107509D-01 0.811927020550D-05 0.515375366783D+04
+ 0.489600000000D+06 0.169500708580D-06 0.246683270969D+01-0.566244125366D-06
+ 0.932347947989D+00 0.203812500000D+03-0.174940989065D+01-0.801890544817D-08
+ 0.176078762959D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.845000000000D+03
+ 0.486108000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 16 0 0.0 0.575212761760D-04 0.329691829393D-11 0.000000000000D+00
+ 0.114000000000D+03 0.212812500000D+02 0.539415325956D-08-0.130138578390D+01
+ 0.109709799290D-05 0.499213242438D-02 0.699609518051D-05 0.515364334679D+04
+ 0.489600000000D+06 0.819563865662D-07-0.274446340537D+01-0.894069671631D-07
+ 0.929705212811D+00 0.229281250000D+03 0.503003565695D+00-0.834070456668D-08
+ -0.281797452281D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.419095158577D-08 0.370000000000D+03
+ 0.485520000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 16 0 0.0-0.314926728606D-05-0.488853402203D-11 0.000000000000D+00
+ 0.113000000000D+03 0.743437500000D+02 0.429017870316D-08 0.213307532886D+01
+ 0.400468707085D-05 0.645201280713D-02 0.765360891819D-05 0.515372301292D+04
+ 0.489600000000D+06-0.931322574616D-08-0.160348543023D+01 0.633299350739D-07
+ 0.962581635595D+00 0.235843750000D+03-0.157940557921D+00-0.789461455667D-08
+ -0.272154193457D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.369000000000D+03
+ 0.485958000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 16 0 0.0 0.307150185108D-05 0.147792889038D-11 0.000000000000D+00
+ 0.160000000000D+03-0.331250000000D+01 0.527771983822D-08 0.175967294855D+01
+ -0.206753611565D-06 0.494031340350D-02 0.839680433273D-05 0.515361996651D+04
+ 0.489600000000D+06-0.130385160446D-06 0.249103897000D+01 0.428408384323D-07
+ 0.935768837088D+00 0.203531250000D+03 0.781488808877D+00-0.824570060939D-08
+ 0.215008955986D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.416000000000D+03
+ 0.482730000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 16 0 0.0 0.641216989607D-03 0.238742359215D-11 0.000000000000D+00
+ 0.260000000000D+02 0.272500000000D+02 0.522807491316D-08-0.118481724999D+01
+ 0.152923166752D-05 0.127018403728D-01 0.738166272640D-05 0.515367545700D+04
+ 0.489600000000D+06 0.111758708954D-07-0.272128256286D+01 0.366941094399D-06
+ 0.938889234037D+00 0.228312500000D+03-0.185911977598D+01-0.836141971527D-08
+ -0.392873507616D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.282000000000D+03
+ 0.482400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 16 0 0.0 0.401348341256D-03 0.113686837722D-12 0.000000000000D+00
+ 0.990000000000D+02-0.616875000000D+02 0.450804492102D-08 0.312676325344D+01
+ -0.308826565743D-05 0.902406335808D-02 0.899285078049D-05 0.515370009422D+04
+ 0.489600000000D+06-0.931322574616D-08 0.154740359084D+01 0.139698386192D-06
+ 0.962782390380D+00 0.206281250000D+03 0.233443620970D+01-0.780461080765D-08
+ 0.258939357292D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.355000000000D+03
+ 0.482400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 16 0 0.0-0.144322402775D-04-0.181898940355D-11 0.000000000000D+00
+ 0.920000000000D+02-0.961250000000D+02 0.465483674978D-08 0.276142195697D+01
+ -0.499561429024D-05 0.150511311367D-01 0.939145684242D-05 0.515361607933D+04
+ 0.489600000000D+06-0.558793544769D-08 0.148177121511D+01-0.195577740669D-06
+ 0.949504821544D+00 0.189687500000D+03 0.998697767999D+00-0.776889503423D-08
+ 0.230723896291D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.558793544769D-08 0.348000000000D+03
+ 0.482400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 16 0 0.0 0.336091034114D-04 0.568434188608D-12 0.000000000000D+00
+ 0.160000000000D+03 0.434062500000D+02 0.399659504565D-08-0.562555872482D-01
+ 0.235065817833D-05 0.558838411234D-02 0.391900539398D-05 0.515360105705D+04
+ 0.489600000000D+06 0.128522515297D-06-0.569646092206D+00-0.223517417908D-07
+ 0.980983787444D+00 0.312843750000D+03 0.231541477683D+00-0.812640992616D-08
+ 0.133576992589D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.416000000000D+03
+ 0.482400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 16 0 0.0 0.748950988054D-04 0.216004991671D-11 0.000000000000D+00
+ 0.440000000000D+02 0.585000000000D+02 0.549594321381D-08-0.245578041334D+01
+ 0.309385359287D-05 0.224165339023D-02 0.793114304543D-05 0.515370149231D+04
+ 0.489600000000D+06 0.186264514923D-08-0.172011048251D+01 0.428408384323D-07
+ 0.909837237527D+00 0.200281250000D+03-0.155649726224D+00-0.851249743683D-08
+ -0.213223167315D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.116415321827D-07 0.300000000000D+03
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 16 0 0.0-0.317571684718D-04-0.113686837722D-12 0.000000000000D+00
+ 0.199000000000D+03-0.635625000000D+02 0.410517099685D-08 0.137471778274D+00
+ -0.336393713951D-05 0.196492695250D-02 0.512041151524D-05 0.515377759171D+04
+ 0.489600000000D+06 0.130385160446D-07 0.472291525821D+00 0.223517417908D-07
+ 0.980730196446D+00 0.295906250000D+03 0.723509308724D+00-0.798890419850D-08
+ 0.939324840936D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.455000000000D+03
+ 0.485688000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 16 0 0.0-0.192751176655D-04 0.227373675443D-12 0.000000000000D+00
+ 0.800000000000D+01-0.699687500000D+02 0.427874965567D-08-0.179082915522D+01
+ -0.356137752533D-05 0.134216947481D-02 0.402890145779D-05 0.515374769974D+04
+ 0.489600000000D+06 0.558793544769D-08 0.464132827304D+00 0.100582838059D-06
+ 0.975227975760D+00 0.310125000000D+03-0.133807255237D+01-0.809748014969D-08
+ 0.507163982558D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.800000000000D+01
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 16 0 0.0 0.179689377546D-03 0.511590769747D-11 0.000000000000D+00
+ 0.176000000000D+03 0.745000000000D+02 0.404266839337D-08 0.302191804324D+01
+ 0.396370887756D-05 0.846791919321D-02 0.871717929840D-05 0.515376461792D+04
+ 0.489600000000D+06 0.130385160446D-07-0.155246986048D+01 0.670552253723D-07
+ 0.969505923836D+00 0.215593750000D+03 0.215857232326D+01-0.769210612138D-08
+ -0.280368821344D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.232830643654D-08 0.176000000000D+03
+ 0.482400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 16 0 0.0 0.817421823740D-05 0.250111042988D-11 0.000000000000D+00
+ 0.121000000000D+03-0.381250000000D+01 0.467376610969D-08 0.209530643404D+01
+ -0.227242708206D-06 0.203933287412D-02 0.819750130177D-05 0.515369462013D+04
+ 0.489600000000D+06 0.149011611939D-07 0.255755745861D+01-0.651925802231D-07
+ 0.961161301598D+00 0.218062500000D+03-0.161400750509D+01-0.788890003292D-08
+ 0.120719314158D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-08 0.377000000000D+03
+ 0.484968000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 16 0 0.0 0.105212908238D-03-0.346744855051D-10 0.000000000000D+00
+ 0.229000000000D+03 0.944687500000D+02 0.385444626744D-08-0.289801340381D+01
+ 0.474229454994D-05 0.159169365652D-01 0.813603401184D-05 0.515306166077D+04
+ 0.489600000000D+06-0.201165676117D-06-0.151109438104D+01-0.167638063431D-06
+ 0.971563450820D+00 0.228562500000D+03-0.284498181591D+01-0.760674542291D-08
+ -0.156435087578D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.741000000000D+03
+ 0.484080000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 16 0 0.0 0.580260530114D-05-0.136424205266D-11 0.000000000000D+00
+ 0.133000000000D+03 0.550937500000D+02 0.439911181209D-08 0.152459655169D+01
+ 0.279769301415D-05 0.442573486362D-02 0.409595668316D-05 0.515362439918D+04
+ 0.489600000000D+06-0.409781932831D-07-0.533869630362D+00 0.260770320892D-07
+ 0.964496804558D+00 0.301281250000D+03-0.298841500583D+01-0.824284334751D-08
+ 0.892894335490D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.389000000000D+03
+ 0.482400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 16 0 0.0-0.205841846764D-03 0.147792889038D-11 0.000000000000D+00
+ 0.500000000000D+01 0.406875000000D+02 0.431267964042D-08 0.737642612953D+00
+ 0.208057463169D-05 0.199583661743D-02 0.414624810219D-05 0.515378771210D+04
+ 0.489600000000D+06-0.298023223877D-07-0.586088106454D+00 0.931322574616D-08
+ 0.964640739605D+00 0.298531250000D+03 0.173333456414D+01-0.820212736581D-08
+ 0.110004582132D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.500000000000D+01
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 16 0 0.0 0.610747374594D-04 0.295585778076D-11 0.000000000000D+00
+ 0.216000000000D+03 0.839375000000D+02 0.440125475850D-08 0.297897489934D+01
+ 0.429898500443D-05 0.803366908804D-02 0.867992639542D-05 0.515372639656D+04
+ 0.489600000000D+06-0.122934579849D-06-0.157750889861D+01 0.316649675369D-07
+ 0.956149623675D+00 0.208875000000D+03 0.293043922734D+01-0.788318550918D-08
+ -0.266082511976D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.121071934700D-07 0.472000000000D+03
+ 0.482400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 16 0 0.0 0.399043783546D-04 0.909494701773D-12 0.000000000000D+00
+ 0.480000000000D+02 0.475312500000D+02 0.404088260470D-08-0.523573789933D+00
+ 0.258162617683D-05 0.164792961441D-01 0.481307506561D-05 0.515386126137D+04
+ 0.489600000000D+06-0.221654772759D-06-0.518700523079D+00 0.122934579849D-06
+ 0.984649655342D+00 0.303500000000D+03-0.164460877573D+01-0.829641700764D-08
+ 0.229295265354D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.304000000000D+03
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 16 0 0.0 0.544707290828D-04 0.682121026330D-12 0.000000000000D+00
+ 0.690000000000D+02-0.846250000000D+02 0.488877506568D-08-0.281067243999D+01
+ -0.425428152084D-05 0.106623726897D-01 0.803545117378D-05 0.515380009460D+04
+ 0.489600000000D+06 0.197440385819D-06 0.143347525542D+01 0.502914190292D-07
+ 0.942534937072D+00 0.212187500000D+03-0.166898333746D+01-0.796211736843D-08
+ 0.237152735506D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.690000000000D+02
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 16 0 0.0 0.504366587847D-03-0.534328137292D-11 0.000000000000D+00
+ 0.370000000000D+02-0.839062500000D+02 0.409159900295D-08-0.176195588195D+01
+ -0.452622771263D-05 0.147282276303D-01 0.461377203465D-05 0.515360955238D+04
+ 0.489600000000D+06 0.931322574616D-07 0.475458673242D+00-0.150874257088D-06
+ 0.979137208858D+00 0.295031250000D+03 0.532817196855D+00-0.794354516626D-08
+ 0.212151694113D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.293000000000D+03
+ 0.486210000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 16 0 0.0 0.768780708313D-03 0.252384779742D-10 0.000000000000D+00
+ 0.189000000000D+03-0.755625000000D+02 0.480305720947D-08 0.196560456332D+01
+ -0.403635203838D-05 0.175231604371D-01 0.889040529728D-05 0.515361452293D+04
+ 0.489600000000D+06-0.322237610817D-06 0.146084301921D+01-0.339001417160D-06
+ 0.947056550604D+00 0.206500000000D+03-0.224787301213D+01-0.806997900416D-08
+ 0.254296306748D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.701000000000D+03
+ 0.482400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 16 0 0.0 0.456813722849D-06 0.238742359215D-11 0.000000000000D+00
+ 0.126000000000D+03 0.496875000000D+01 0.487341728311D-08 0.520429913149D+00
+ 0.339001417160D-06 0.800126942340D-02 0.797770917416D-05 0.515368989563D+04
+ 0.489600000000D+06-0.167638063431D-07 0.256848785732D+01 0.745058059692D-07
+ 0.959089205412D+00 0.224812500000D+03-0.242946926115D+01-0.819284126472D-08
+ 0.653598653579D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.126000000000D+03
+ 0.482400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 16 0 0.0 0.147344544530D-03 0.126192389871D-10 0.000000000000D+00
+ 0.450000000000D+02-0.742812500000D+02 0.427517807833D-08 0.639741422838D+00
+ -0.396929681301D-05 0.801621249411D-02 0.488571822643D-05 0.515368248749D+04
+ 0.489600000000D+06-0.128522515297D-06 0.443517929936D+00-0.465661287308D-07
+ 0.976116303505D+00 0.294968750000D+03-0.154510353983D+01-0.824677208259D-08
+ 0.500020827875D-11 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.301000000000D+03
+ 0.483030000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 16 0 0.0 0.601618085057D-03 0.254658516496D-10 0.000000000000D+00
+ 0.228000000000D+03-0.275000000000D+01 0.520128808310D-08 0.738321051453D+00
+ -0.102445483208D-06 0.721959117800D-02 0.837817788124D-05 0.515374118805D+04
+ 0.489600000000D+06-0.577419996262D-07 0.253087776225D+01 0.726431608200D-07
+ 0.942751719588D+00 0.208375000000D+03 0.127910232898D+01-0.831427489435D-08
+ 0.167864135072D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.228000000000D+03
+ 0.482418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 16 0 0.0 0.429454725236D-03 0.409272615798D-11 0.000000000000D+00
+ 0.132000000000D+03 0.180000000000D+02 0.514807158070D-08-0.230378882349D+01
+ 0.890344381332D-06 0.118523838464D-01 0.704266130924D-05 0.515376251984D+04
+ 0.489600000000D+06 0.149011611939D-06-0.272223718127D+01-0.707805156708D-07
+ 0.938344721298D+00 0.230531250000D+03 0.945048044542D+00-0.811248077453D-08
+ -0.197508227010D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.388000000000D+03
+ 0.482400000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 17 59 28.0 0.401336699724D-03 0.000000000000D+00 0.000000000000D+00
+ 0.127000000000D+03-0.626562500000D+02 0.444411368660D-08-0.211086175901D+01
+ -0.302121043205D-05 0.902345473878D-02 0.892765820026D-05 0.515370161629D+04
+ 0.496768000000D+06-0.121071934700D-06 0.154734756985D+01 0.124797224999D-06
+ 0.962784071272D+00 0.213062500000D+03 0.233437275709D+01-0.786247036059D-08
+ 0.268225458381D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.127000000000D+03
+ 0.495828000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 17 59 44.0 0.575361773372D-04 0.329691829393D-11 0.000000000000D+00
+ 0.139000000000D+03 0.225937500000D+02 0.552665877895D-08-0.253535295300D+00
+ 0.107847154141D-05 0.499210692942D-02 0.679679214954D-05 0.515364324379D+04
+ 0.496784000000D+06 0.353902578354D-07-0.274452356934D+01 0.689178705216D-07
+ 0.929702428878D+00 0.229531250000D+03 0.503025278325D+00-0.847499587474D-08
+ -0.330013746397D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.139000000000D+03
+ 0.495738000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 17 59 44.0-0.318326056004D-05-0.477484718431D-11 0.000000000000D+00
+ 0.135000000000D+03 0.656875000000D+02 0.429553606918D-08-0.310240958950D+01
+ 0.338815152645D-05 0.645115040243D-02 0.772625207901D-05 0.515372503853D+04
+ 0.496784000000D+06-0.353902578354D-07-0.160354221925D+01 0.540167093277D-07
+ 0.962579764522D+00 0.234531250000D+03-0.157826195763D+00-0.788711424425D-08
+ -0.261439461432D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.135000000000D+03
+ 0.491178000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 17 59 44.0 0.104974023998D-03-0.345607986674D-10 0.000000000000D+00
+ 0.150000000000D+02 0.687500000000D+02 0.408624163694D-08-0.184999233897D+01
+ 0.353157520294D-05 0.159199228510D-01 0.728666782379D-05 0.515305361557D+04
+ 0.496784000000D+06 0.298023223877D-07-0.151115052930D+01-0.227242708206D-06
+ 0.971562520404D+00 0.247562500000D+03-0.284478360952D+01-0.772746473707D-08
+ -0.750031241812D-11 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.139698386192D-08 0.150000000000D+02
+ 0.489600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 17 59 44.0 0.610956922174D-04 0.295585778076D-11 0.000000000000D+00
+ 0.237000000000D+03 0.849375000000D+02 0.436089593453D-08-0.225634797159D+01
+ 0.428222119808D-05 0.803217908833D-02 0.823661684990D-05 0.515372923660D+04
+ 0.496784000000D+06-0.163912773132D-06-0.157756594949D+01-0.763684511185D-07
+ 0.956147446853D+00 0.220437500000D+03 0.293038989921D+01-0.795711716016D-08
+ -0.238581366443D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.121071934700D-07 0.237000000000D+03
+ 0.491670000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 17 59 44.0 0.147434417158D-03 0.126192389871D-10 0.000000000000D+00
+ 0.690000000000D+02-0.729375000000D+02 0.416088760338D-08 0.168755762210D+01
+ -0.395067036152D-05 0.801611191127D-02 0.465661287308D-05 0.515368272972D+04
+ 0.496784000000D+06 0.763684511185D-07 0.443458942154D+00-0.221654772759D-06
+ 0.976117642075D+00 0.297156250000D+03-0.154507956992D+01-0.799783314185D-08
+ 0.592881838766D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.690000000000D+02
+ 0.493290000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 18 0 0.0 0.312851741910D-03 0.216004991671D-11 0.000000000000D+00
+ 0.122000000000D+03-0.612187500000D+02 0.412660046090D-08-0.218869156386D+01
+ -0.322423875332D-05 0.524089671671D-02 0.396370887756D-05 0.515364579010D+04
+ 0.496800000000D+06 0.141561031342D-06 0.490327232783D+00 0.558793544769D-08
+ 0.976506321854D+00 0.307062500000D+03-0.172950963608D+01-0.793354474970D-08
+ 0.102504269714D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.122000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 18 0 0.0-0.213284976780D-03-0.670752342558D-11 0.000000000000D+00
+ 0.780000000000D+02-0.984375000000D+01 0.524164690706D-08 0.295340448108D+01
+ -0.398606061935D-06 0.230906134239D-01 0.808946788311D-05 0.515375463677D+04
+ 0.496800000000D+06 0.366941094399D-06 0.246677623959D+01-0.284984707832D-06
+ 0.932349561587D+00 0.199937500000D+03-0.174940579302D+01-0.786747056887D-08
+ 0.167506977338D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.846000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 18 0 0.0 0.575450249016D-04 0.329691829393D-11 0.000000000000D+00
+ 0.115000000000D+03 0.225937500000D+02 0.552665877895D-08-0.251201183172D+00
+ 0.107847154141D-05 0.499213580042D-02 0.679679214954D-05 0.515364320183D+04
+ 0.496800000000D+06 0.353902578354D-07-0.274452368783D+01 0.689178705216D-07
+ 0.929702427415D+00 0.229531250000D+03 0.503025172995D+00-0.847499587474D-08
+ -0.330013746397D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.371000000000D+03
+ 0.492168000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 18 0 0.0-0.318419188261D-05-0.488853402203D-11 0.000000000000D+00
+ 0.108000000000D+03 0.656875000000D+02 0.429553606918D-08-0.310007449576D+01
+ 0.338815152645D-05 0.645116169471D-02 0.772625207901D-05 0.515372505188D+04
+ 0.496800000000D+06-0.353902578354D-07-0.160354227777D+01 0.540167093277D-07
+ 0.962579751356D+00 0.234531250000D+03-0.157827790344D+00-0.788711424425D-08
+ -0.261439461432D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.620000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 18 0 0.0 0.308221206069D-05 0.147792889038D-11 0.000000000000D+00
+ 0.161000000000D+03-0.718750000000D+00 0.524736143081D-08 0.280995279694D+01
+ -0.106170773506D-06 0.494036450982D-02 0.843778252602D-05 0.515361948013D+04
+ 0.496800000000D+06-0.670552253723D-07 0.249097985202D+01-0.521540641785D-07
+ 0.935770836897D+00 0.202000000000D+03 0.781428463506D+00-0.816534011919D-08
+ 0.238224208709D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.161000000000D+03
+ 0.494520000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 18 0 0.0-0.993721187115D-06-0.341060513165D-12 0.000000000000D+00
+ 0.140000000000D+02 0.322500000000D+02 0.521057418419D-08-0.230164795553D+01
+ 0.155903398991D-05 0.647623231635D-02 0.721774995327D-05 0.515363727570D+04
+ 0.496800000000D+06 0.931322574616D-07-0.269301191674D+01 0.409781932831D-07
+ 0.937201401080D+00 0.225031250000D+03-0.204035847904D+01-0.815891127998D-08
+ -0.243581574722D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.270000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 18 0 0.0 0.641234684736D-03 0.238742359215D-11 0.000000000000D+00
+ 0.270000000000D+02 0.209062500000D+02 0.537772400379D-08-0.134664562828D+00
+ 0.112317502499D-05 0.127010628348D-01 0.743195414543D-05 0.515367376900D+04
+ 0.496800000000D+06-0.115483999252D-06-0.272134470469D+01 0.819563865662D-07
+ 0.938885822512D+00 0.228281250000D+03-0.185908607620D+01-0.861285876014D-08
+ -0.305727020472D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.283000000000D+03
+ 0.489600000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 18 0 0.0-0.144457444549D-04-0.181898940355D-11 0.000000000000D+00
+ 0.930000000000D+02-0.837187500000D+02 0.461876381862D-08-0.247157362927D+01
+ -0.450573861599D-05 0.150498712901D-01 0.924989581108D-05 0.515361824989D+04
+ 0.496800000000D+06 0.169500708580D-06 0.148171424469D+01-0.121071934700D-06
+ 0.949506735041D+00 0.190281250000D+03 0.998724091747D+00-0.783782647693D-08
+ 0.366443835285D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.861000000000D+03
+ 0.492000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 18 0 0.0 0.336137600243D-04 0.568434188608D-12 0.000000000000D+00
+ 0.161000000000D+03 0.393437500000D+02 0.395195032888D-08 0.993970302876D+00
+ 0.220164656639D-05 0.558763567824D-02 0.421889126301D-05 0.515359977913D+04
+ 0.496800000000D+06-0.931322574616D-08-0.569703387393D+00 0.121071934700D-06
+ 0.980984908039D+00 0.307312500000D+03 0.231537368346D+00-0.798461830569D-08
+ 0.200008331150D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.417000000000D+03
+ 0.489600000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 18 0 0.0 0.749109312892D-04 0.216004991671D-11 0.000000000000D+00
+ 0.450000000000D+02 0.523437500000D+02 0.548451416632D-08-0.140572191030D+01
+ 0.281631946564D-05 0.224224361591D-02 0.816769897938D-05 0.515370064354D+04
+ 0.496800000000D+06-0.134110450745D-06-0.172017099758D+01-0.149011611939D-07
+ 0.909835563949D+00 0.195906250000D+03-0.155536815281D+00-0.845606651483D-08
+ -0.317513225700D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.116415321827D-07 0.301000000000D+03
+ 0.489600000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 18 0 0.0-0.317576341331D-04-0.113686837722D-12 0.000000000000D+00
+ 0.200000000000D+03-0.618750000000D+02 0.405445459859D-08 0.118815373018D+01
+ -0.342726707459D-05 0.196409656201D-02 0.424124300480D-05 0.515377505302D+04
+ 0.496800000000D+06 0.372529029846D-08 0.472234144322D+00-0.186264514923D-08
+ 0.980730809409D+00 0.306750000000D+03 0.722941810617D+00-0.798497546342D-08
+ 0.714315468392D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.456000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 18 0 0.0-0.192727893591D-04 0.227373675443D-12 0.000000000000D+00
+ 0.300000000000D+01-0.723750000000D+02 0.428767859902D-08-0.740854688052D+00
+ -0.378489494324D-05 0.134200148750D-02 0.406056642532D-05 0.515374723053D+04
+ 0.496800000000D+06-0.391155481339D-07 0.464074137956D+00 0.447034835815D-07
+ 0.975228184957D+00 0.310437500000D+03-0.133791291436D+01-0.815069665209D-08
+ 0.646455498895D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.259000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 18 0 0.0 0.179726164788D-03 0.511590769747D-11 0.000000000000D+00
+ 0.177000000000D+03 0.812187500000D+02 0.413481508879D-08-0.221111871244D+01
+ 0.418722629547D-05 0.846862071194D-02 0.850856304169D-05 0.515376359177D+04
+ 0.496800000000D+06-0.540167093277D-07-0.155252520120D+01 0.169500708580D-06
+ 0.969503457356D+00 0.220468750000D+03 0.215854677193D+01-0.778496713227D-08
+ -0.307155651409D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.232830643654D-08 0.177000000000D+03
+ 0.489600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 18 0 0.0 0.819191336632D-05 0.250111042988D-11 0.000000000000D+00
+ 0.122000000000D+03-0.275000000000D+01 0.474662628747D-08-0.313772467917D+01
+ 0.353902578354D-07 0.203900912311D-02 0.840239226818D-05 0.515369518089D+04
+ 0.496800000000D+06 0.139698386192D-06 0.255750002738D+01-0.186264514923D-07
+ 0.961162270049D+00 0.215375000000D+03-0.161399192209D+01-0.793747348477D-08
+ 0.210008747707D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-08 0.378000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 18 0 0.0 0.579282641411D-05-0.136424205266D-11 0.000000000000D+00
+ 0.134000000000D+03 0.499687500000D+02 0.432589447658D-08 0.257472471304D+01
+ 0.264681875706D-05 0.442521739751D-02 0.392831861973D-05 0.515362545013D+04
+ 0.496800000000D+06-0.894069671631D-07-0.533929127240D+00-0.391155481339D-07
+ 0.964497714493D+00 0.304281250000D+03-0.298833299757D+01-0.819212694926D-08
+ 0.128219626576D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.102445483208D-07 0.390000000000D+03
+ 0.489618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 18 0 0.0-0.205831602216D-03 0.147792889038D-11 0.000000000000D+00
+ 0.600000000000D+01 0.494375000000D+02 0.431553690229D-08 0.178860465077D+01
+ 0.257231295109D-05 0.199493893888D-02 0.479631125927D-05 0.515378414154D+04
+ 0.496800000000D+06 0.223517417908D-07-0.586147000610D+00-0.167638063431D-07
+ 0.964641842645D+00 0.287062500000D+03 0.173248381144D+01-0.814105339327D-08
+ 0.118219210019D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.600000000000D+01
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 18 0 0.0 0.610961578786D-04 0.295585778076D-11 0.000000000000D+00
+ 0.211000000000D+03 0.849375000000D+02 0.436089593453D-08-0.225401508247D+01
+ 0.428222119808D-05 0.803217559587D-02 0.823661684990D-05 0.515372923660D+04
+ 0.496800000000D+06-0.163912773132D-06-0.157756599922D+01-0.763684511185D-07
+ 0.956147464408D+00 0.220437500000D+03 0.293039058971D+01-0.795711716016D-08
+ -0.238581366443D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.121071934700D-07 0.723000000000D+03
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 18 0 0.0 0.399108976126D-04 0.909494701773D-12 0.000000000000D+00
+ 0.490000000000D+02 0.497812500000D+02 0.402588197986D-08 0.526498167562D+00
+ 0.260025262833D-05 0.164792987052D-01 0.475160777569D-05 0.515386127472D+04
+ 0.496800000000D+06-0.223517417908D-06-0.518759262165D+00-0.135973095894D-06
+ 0.984650676459D+00 0.303906250000D+03-0.164461879672D+01-0.829427406124D-08
+ 0.278583032673D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.305000000000D+03
+ 0.489600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 18 0 0.0 0.715786591172D-04 0.284217094304D-11 0.000000000000D+00
+ 0.234000000000D+03 0.699062500000D+02 0.403766818509D-08-0.245785685878D+01
+ 0.366382300854D-05 0.971284811385D-02 0.767968595028D-05 0.515378891182D+04
+ 0.496800000000D+06 0.169500708580D-06-0.157896358777D+01 0.279396772385D-07
+ 0.972820698710D+00 0.240375000000D+03-0.145809197250D+01-0.764246119633D-08
+ -0.233581158164D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.234000000000D+03
+ 0.491778000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 18 0 0.0 0.544758513570D-04 0.682121026330D-12 0.000000000000D+00
+ 0.700000000000D+02-0.910937500000D+02 0.487234580990D-08-0.176052623794D+01
+ -0.444427132607D-05 0.106614168035D-01 0.839307904244D-05 0.515380187607D+04
+ 0.496800000000D+06 0.163912773132D-06 0.143341805678D+01 0.214204192162D-06
+ 0.942536443878D+00 0.205250000000D+03-0.166902460930D+01-0.803854912355D-08
+ 0.220723479733D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.700000000000D+02
+ 0.489618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 18 0 0.0 0.504327472299D-03-0.534328137292D-11 0.000000000000D+00
+ 0.380000000000D+02-0.660312500000D+02 0.421196115937D-08-0.711900019482D+00
+ -0.327825546265D-05 0.147273883922D-01 0.480003654957D-05 0.515360471916D+04
+ 0.496800000000D+06 0.232830643654D-06 0.475401808154D+00 0.124797224999D-06
+ 0.979137368316D+00 0.292250000000D+03 0.532979583688D+00-0.817534053575D-08
+ 0.585738684082D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.294000000000D+03
+ 0.489600000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 18 0 0.0 0.768961384893D-03 0.252384779742D-10 0.000000000000D+00
+ 0.216000000000D+03-0.807500000000D+02 0.467090884782D-08 0.301580700140D+01
+ -0.425055623055D-05 0.175234540366D-01 0.855512917042D-05 0.515361437416D+04
+ 0.496800000000D+06 0.391155481339D-07 0.146078654911D+01-0.232830643654D-06
+ 0.947059698804D+00 0.209031250000D+03-0.224785747741D+01-0.775925177541D-08
+ 0.231438211759D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.216000000000D+03
+ 0.490728000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 18 0 0.0 0.474043190479D-06 0.238742359215D-11 0.000000000000D+00
+ 0.127000000000D+03 0.143750000000D+01 0.482555814672D-08 0.157046294532D+01
+ 0.134110450745D-06 0.800190295558D-02 0.851042568684D-05 0.515369234276D+04
+ 0.496800000000D+06-0.199303030968D-06 0.256842831801D+01 0.135973095894D-06
+ 0.959090116810D+00 0.216531250000D+03-0.242932919113D+01-0.812926718804D-08
+ 0.190365072327D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.127000000000D+03
+ 0.489600000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 18 0 0.0 0.147435348481D-03 0.126192389871D-10 0.000000000000D+00
+ 0.460000000000D+02-0.729375000000D+02 0.416088760338D-08 0.168989236767D+01
+ -0.395067036152D-05 0.801611354109D-02 0.465661287308D-05 0.515368274307D+04
+ 0.496800000000D+06 0.763684511185D-07 0.443458828046D+00-0.221654772759D-06
+ 0.976117612817D+00 0.297156250000D+03-0.154508067735D+01-0.799783314185D-08
+ 0.592881838766D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.698491930962D-08 0.302000000000D+03
+ 0.489600000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 18 0 0.0 0.601801089943D-03 0.254658516496D-10 0.000000000000D+00
+ 0.223000000000D+03-0.937500000000D-01 0.513914263735D-08 0.178853385577D+01
+ -0.894069671631D-07 0.721954624169D-02 0.846385955811D-05 0.515374027634D+04
+ 0.496800000000D+06-0.670552253723D-07 0.253081781625D+01-0.145286321640D-06
+ 0.942753985648D+00 0.205656250000D+03 0.127903444812D+01-0.812748139937D-08
+ 0.260367988229D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.838190317154D-08 0.479000000000D+03
+ 0.489600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 18 0 0.0 0.429484061897D-03 0.409272615798D-11 0.000000000000D+00
+ 0.133000000000D+03 0.258125000000D+02 0.525414742776D-08-0.125374933108D+01
+ 0.142306089401D-05 0.118528221501D-01 0.683218240738D-05 0.515376031303D+04
+ 0.496800000000D+06 0.229105353355D-06-0.272229518744D+01 0.169500708580D-06
+ 0.938342446461D+00 0.234500000000D+03 0.945140381005D+00-0.828748806429D-08
+ -0.301798285396D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.389000000000D+03
+ 0.496128000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 19 59 44.0-0.213336199522D-03-0.670752342558D-11 0.000000000000D+00
+ 0.102000000000D+03-0.334375000000D+01 0.524628995761D-08-0.228199883571D+01
+ -0.298023223877D-07 0.230907809455D-01 0.811368227005D-05 0.515375409698D+04
+ 0.503984000000D+06 0.329688191414D-06 0.246671808567D+01 0.106170773506D-06
+ 0.932352090973D+00 0.200281250000D+03-0.174938427203D+01-0.784889836669D-08
+ 0.459304846176D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.102000000000D+03
+ 0.501348000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 19 59 44.0 0.575599260628D-04 0.329691829393D-11 0.000000000000D+00
+ 0.140000000000D+03 0.296562500000D+02 0.556987486479D-08 0.796599169759D+00
+ 0.168941915035D-05 0.499304872938D-02 0.682845711708D-05 0.515364515686D+04
+ 0.503984000000D+06 0.353902578354D-07-0.274458476613D+01 0.428408384323D-07
+ 0.929700026766D+00 0.228281250000D+03 0.503097366539D+00-0.849463955012D-08
+ -0.320370487574D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.140000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 19 59 44.0-0.321818515658D-05-0.488853402203D-11 0.000000000000D+00
+ 0.136000000000D+03 0.541875000000D+02 0.441411243693D-08-0.205244552807D+01
+ 0.280328094959D-05 0.645319663454D-02 0.836327672005D-05 0.515372060585D+04
+ 0.503984000000D+06-0.651925802231D-07-0.160359952029D+01-0.335276126862D-07
+ 0.962577634514D+00 0.221843750000D+03-0.157640342262D+00-0.796783189218D-08
+ -0.232509684962D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.136000000000D+03
+ 0.496800000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 19 59 44.0 0.749235041440D-04 0.216004991671D-11 0.000000000000D+00
+ 0.650000000000D+02 0.548750000000D+02 0.558666127830D-08-0.357848323693D+00
+ 0.274740159512D-05 0.224197574426D-02 0.836513936520D-05 0.515370046234D+04
+ 0.503984000000D+06 0.409781932831D-07-0.172023134880D+01-0.465661287308D-07
+ 0.909832553263D+00 0.193000000000D+03-0.155573089798D+00-0.853964142463D-08
+ -0.446090010011D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.116415321827D-07 0.650000000000D+02
+ 0.503250000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 19 59 44.0 0.399155542254D-04 0.909494701773D-12 0.000000000000D+00
+ 0.720000000000D+02 0.437812500000D+02 0.393409244217D-08 0.157416790531D+01
+ 0.193342566490D-05 0.164797094185D-01 0.433437526226D-05 0.515386330223D+04
+ 0.503984000000D+06 0.372529029846D-08-0.518818988722D+00-0.456348061562D-06
+ 0.984652304687D+00 0.308375000000D+03-0.164455958658D+01-0.799997608826D-08
+ 0.113219001740D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.720000000000D+02
+ 0.503670000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 19 59 44.0 0.147525686771D-03 0.126192389871D-10 0.000000000000D+00
+ 0.700000000000D+02-0.587812500000D+02 0.408481300600D-08 0.273751591671D+01
+ -0.309199094772D-05 0.801494717598D-02 0.433810055256D-05 0.515368659973D+04
+ 0.503984000000D+06 0.130385160446D-06 0.443402120952D+00-0.838190317154D-07
+ 0.976118262352D+00 0.301843750000D+03-0.154486684847D+01-0.790532928870D-08
+ 0.303584074067D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.700000000000D+02
+ 0.503088000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 20 0 0.0 0.312867108733D-03 0.216004991671D-11 0.000000000000D+00
+ 0.123000000000D+03-0.632500000000D+02 0.417338812408D-08-0.113837277258D+01
+ -0.317953526974D-05 0.524085841607D-02 0.395812094212D-05 0.515364700317D+04
+ 0.504000000000D+06-0.409781932831D-07 0.490269693289D+00 0.165775418282D-06
+ 0.976505846405D+00 0.311406250000D+03-0.172963370616D+01-0.816534011919D-08
+ 0.560737642688D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.123000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 20 0 0.0-0.213333405554D-03-0.670752342558D-11 0.000000000000D+00
+ 0.730000000000D+02-0.334375000000D+01 0.524628995761D-08-0.227966523707D+01
+ -0.298023223877D-07 0.230907715159D-01 0.811368227005D-05 0.515375407410D+04
+ 0.504000000000D+06 0.329688191414D-06 0.246671804032D+01 0.106170773506D-06
+ 0.932352077806D+00 0.200281250000D+03-0.174938406868D+01-0.784889836669D-08
+ 0.459304846176D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.585000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 20 0 0.0 0.309292227030D-05 0.147792889038D-11 0.000000000000D+00
+ 0.162000000000D+03 0.137500000000D+01 0.529343477852D-08-0.242303394011D+01
+ 0.260770320892D-07 0.494014460128D-02 0.840798020363D-05 0.515361985207D+04
+ 0.504000000000D+06 0.614672899246D-07 0.249092026736D+01-0.670552253723D-07
+ 0.935772631898D+00 0.203468750000D+03 0.781449353976D+00-0.823462871963D-08
+ 0.326085011321D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.162000000000D+03
+ 0.496800000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 20 0 0.0-0.995583832264D-06-0.341060513165D-12 0.000000000000D+00
+ 0.150000000000D+02 0.281250000000D+02 0.521235997286D-08-0.125134945932D+01
+ 0.150874257088D-05 0.647612498142D-02 0.719539821148D-05 0.515363839912D+04
+ 0.504000000000D+06 0.856816768646D-07-0.269307054026D+01 0.169500708580D-06
+ 0.937199121854D+00 0.226156250000D+03-0.204044942573D+01-0.826070123422D-08
+ -0.291440711104D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.271000000000D+03
+ 0.503430000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 20 0 0.0 0.641251914203D-03 0.238742359215D-11 0.000000000000D+00
+ 0.280000000000D+02 0.205937500000D+02 0.538558147394D-08 0.915535635528D+00
+ 0.105984508991D-05 0.127004572423D-01 0.722147524357D-05 0.515367256927D+04
+ 0.504000000000D+06-0.208616256714D-06-0.272140670169D+01 0.316649675369D-07
+ 0.938883537434D+00 0.232750000000D+03-0.185909870119D+01-0.858214319500D-08
+ -0.303941231801D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.284000000000D+03
+ 0.496800000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 20 0 0.0 0.401336699724D-03 0.000000000000D+00 0.000000000000D+00
+ 0.128000000000D+03-0.755625000000D+02 0.443804200512D-08-0.105622690590D+01
+ -0.417418777943D-05 0.902322109323D-02 0.882521271706D-05 0.515369827270D+04
+ 0.504000000000D+06-0.109896063805D-06 0.154728973193D+01-0.335276126862D-07
+ 0.962785854570D+00 0.215968750000D+03 0.233456958102D+01-0.797497504686D-08
+ 0.326085011321D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.128000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 20 0 0.0-0.144592486322D-04-0.181898940355D-11 0.000000000000D+00
+ 0.940000000000D+02-0.627187500000D+02 0.477091301339D-08-0.142156030992D+01
+ -0.316277146339D-05 0.150517362636D-01 0.838562846184D-05 0.515361158562D+04
+ 0.504000000000D+06 0.376254320145D-06 0.148165839633D+01 0.113621354103D-06
+ 0.949508461284D+00 0.207250000000D+03 0.998928925148D+00-0.802390565645D-08
+ 0.223937899341D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.862000000000D+03
+ 0.496800000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 20 0 0.0 0.336179509759D-04 0.568434188608D-12 0.000000000000D+00
+ 0.162000000000D+03 0.403437500000D+02 0.396516516505D-08 0.204398549476D+01
+ 0.214762985706D-05 0.558797805570D-02 0.491179525852D-05 0.515360197639D+04
+ 0.504000000000D+06-0.726431608200D-07-0.569760796687D+00 0.726431608200D-07
+ 0.980984937297D+00 0.297937500000D+03 0.231743174588D+00-0.796461747257D-08
+ 0.964325882329D-11 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.418000000000D+03
+ 0.497508000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 20 0 0.0 0.749267637730D-04 0.216004991671D-11 0.000000000000D+00
+ 0.400000000000D+02 0.548750000000D+02 0.558666127830D-08-0.355512697445D+00
+ 0.274740159512D-05 0.224198331125D-02 0.836513936520D-05 0.515370046043D+04
+ 0.504000000000D+06 0.409781932831D-07-0.172023142195D+01-0.465661287308D-07
+ 0.909832519616D+00 0.193000000000D+03-0.155575057423D+00-0.853964142463D-08
+ -0.446090010011D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.116415321827D-07 0.552000000000D+03
+ 0.496800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 20 0 0.0-0.317585654557D-04-0.113686837722D-12 0.000000000000D+00
+ 0.201000000000D+03-0.612500000000D+02 0.402552482212D-08 0.223827654749D+01
+ -0.320561230183D-05 0.196368014440D-02 0.394880771637D-05 0.515377513313D+04
+ 0.504000000000D+06 0.242143869400D-07 0.472176699918D+00 0.391155481339D-07
+ 0.980731106381D+00 0.312937500000D+03 0.722934898329D+00-0.801961976364D-08
+ 0.478591363823D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.457000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 20 0 0.0-0.192709267139D-04 0.227373675443D-12 0.000000000000D+00
+ 0.400000000000D+01-0.718437500000D+02 0.417695970142D-08 0.309563441211D+00
+ -0.374019145966D-05 0.134347088169D-02 0.436417758465D-05 0.515375009155D+04
+ 0.504000000000D+06-0.558793544769D-07 0.464015570031D+00 0.167638063431D-07
+ 0.975228559464D+00 0.299468750000D+03-0.133819815266D+01-0.814641075928D-08
+ 0.442875590403D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.102445483208D-07 0.260000000000D+03
+ 0.496800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 20 0 0.0 0.179762486368D-03 0.511590769747D-11 0.000000000000D+00
+ 0.178000000000D+03 0.740000000000D+02 0.422303304913D-08-0.116102633407D+01
+ 0.373087823391D-05 0.846795004327D-02 0.824034214020D-05 0.515376324844D+04
+ 0.504000000000D+06-0.135973095894D-06-0.155258266170D+01-0.596046447754D-07
+ 0.969500651479D+00 0.228031250000D+03 0.215857744786D+01-0.799390440678D-08
+ -0.229295265354D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.232830643654D-08 0.178000000000D+03
+ 0.498300000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 20 0 0.0 0.821007415652D-05 0.250111042988D-11 0.000000000000D+00
+ 0.123000000000D+03-0.218750000000D+00 0.475091218028D-08-0.208767238915D+01
+ 0.109896063805D-06 0.203909794800D-02 0.853277742863D-05 0.515369480896D+04
+ 0.504000000000D+06 0.316649675369D-07 0.255744256103D+01 0.577419996262D-07
+ 0.961164307894D+00 0.214187500000D+03-0.161387459606D+01-0.789890044948D-08
+ 0.301083969927D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-08 0.379000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 20 0 0.0 0.104724895209D-03-0.345607986674D-10 0.000000000000D+00
+ 0.160000000000D+02 0.567500000000D+02 0.418017412103D-08-0.797020534053D+00
+ 0.294111669064D-05 0.159206386888D-01 0.730715692043D-05 0.515305627632D+04
+ 0.504000000000D+06 0.419095158577D-06-0.151120530827D+01-0.540167093277D-07
+ 0.971561020913D+00 0.247750000000D+03-0.284486489072D+01-0.796961768085D-08
+ -0.264653881039D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.160000000000D+02
+ 0.501360000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 20 0 0.0 0.578304752708D-05-0.136424205266D-11 0.000000000000D+00
+ 0.135000000000D+03 0.421562500000D+02 0.427624955153D-08-0.265833051930D+01
+ 0.224635004997D-05 0.442646432202D-02 0.441446900368D-05 0.515362313843D+04
+ 0.504000000000D+06 0.931322574616D-08-0.533987670296D+00-0.223517417908D-07
+ 0.964499086710D+00 0.297031250000D+03-0.298825411118D+01-0.809140846821D-08
+ 0.122862260564D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.391000000000D+03
+ 0.497880000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 20 0 0.0-0.205821357667D-03 0.147792889038D-11 0.000000000000D+00
+ 0.700000000000D+01 0.629375000000D+02 0.427767818247D-08 0.283797961557D+01
+ 0.339373946190D-05 0.199378689285D-02 0.492110848427D-05 0.515378764153D+04
+ 0.504000000000D+06-0.316649675369D-07-0.586205258396D+00-0.186264514923D-08
+ 0.964642677971D+00 0.285968750000D+03 0.173321921890D+01-0.810712340852D-08
+ 0.800033324599D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.700000000000D+01
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 20 0 0.0 0.611171126366D-04 0.295585778076D-11 0.000000000000D+00
+ 0.238000000000D+03 0.661250000000D+02 0.449875881993D-08-0.120428732912D+01
+ 0.332109630108D-05 0.803290237673D-02 0.741332769394D-05 0.515372272682D+04
+ 0.504000000000D+06-0.465661287308D-07-0.157762402441D+01-0.141561031342D-06
+ 0.956145896160D+00 0.236812500000D+03 0.293081165849D+01-0.801569102856D-08
+ -0.186079179516D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.121071934700D-07 0.238000000000D+03
+ 0.496800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 20 0 0.0 0.399178825319D-04 0.909494701773D-12 0.000000000000D+00
+ 0.500000000000D+02 0.437812500000D+02 0.393409244217D-08 0.157650173071D+01
+ 0.193342566490D-05 0.164797145408D-01 0.433437526226D-05 0.515386326981D+04
+ 0.504000000000D+06 0.372529029846D-08-0.518819056016D+00-0.456348061562D-06
+ 0.984652297372D+00 0.308375000000D+03-0.164455986599D+01-0.799997608826D-08
+ 0.113219001740D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.306000000000D+03
+ 0.496818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 20 0 0.0 0.715996138752D-04 0.284217094304D-11 0.000000000000D+00
+ 0.235000000000D+03 0.637812500000D+02 0.419017453759D-08-0.140779198327D+01
+ 0.340677797794D-05 0.971242331434D-02 0.805407762528D-05 0.515378847694D+04
+ 0.504000000000D+06-0.856816768646D-07-0.157901915233D+01 0.242143869400D-06
+ 0.972817426162D+00 0.234906250000D+03-0.145805017693D+01-0.794925969000D-08
+ -0.292512184307D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.235000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 20 0 0.0 0.544805079699D-04 0.682121026330D-12 0.000000000000D+00
+ 0.710000000000D+02-0.857500000000D+02 0.496234955892D-08-0.710471757932D+00
+ -0.441446900368D-05 0.106617427664D-01 0.908225774765D-05 0.515380109024D+04
+ 0.504000000000D+06-0.145286321640D-06 0.143335851748D+01 0.100582838059D-06
+ 0.942536715980D+00 0.199437500000D+03-0.166897248114D+01-0.836606276581D-08
+ 0.257867884090D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.745058059692D-08 0.710000000000D+02
+ 0.497130000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 20 0 0.0 0.504288822413D-03-0.534328137292D-11 0.000000000000D+00
+ 0.390000000000D+02-0.545312500000D+02 0.410302805045D-08 0.338327915801D+00
+ -0.280141830444D-05 0.147293516202D-01 0.458769500256D-05 0.515360848618D+04
+ 0.504000000000D+06 0.782310962677D-07 0.475342862795D+00 0.230967998505D-06
+ 0.979137599457D+00 0.300531250000D+03 0.532971274313D+00-0.818926968738D-08
+ 0.157149403046D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.295000000000D+03
+ 0.496800000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 20 0 0.0 0.769142527133D-03 0.252384779742D-10 0.000000000000D+00
+ 0.217000000000D+03-0.882500000000D+02 0.463697886307D-08-0.221717090986D+01
+ -0.480748713017D-05 0.175245967694D-01 0.794231891632D-05 0.515361227226D+04
+ 0.504000000000D+06 0.203028321266D-06 0.146072962550D+01-0.104308128357D-06
+ 0.947061758592D+00 0.213812500000D+03-0.224784522401D+01-0.781461122421D-08
+ 0.380730144653D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.217000000000D+03
+ 0.496818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 20 0 0.0 0.491272658110D-06 0.238742359215D-11 0.000000000000D+00
+ 0.122000000000D+03 0.103125000000D+01 0.466412285087D-08 0.262067202066D+01
+ 0.856816768646D-07 0.800232589245D-02 0.870227813721D-05 0.515369144630D+04
+ 0.504000000000D+06-0.353902578354D-07 0.256837023870D+01-0.180676579475D-06
+ 0.959093303046D+00 0.212000000000D+03-0.242936672229D+01-0.780461080765D-08
+ 0.292155026572D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.378000000000D+03
+ 0.500868000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 20 0 0.0 0.601984094828D-03 0.253521648119D-10 0.000000000000D+00
+ 0.224000000000D+03 0.328125000000D+01 0.508449750402D-08 0.283864486733D+01
+ 0.763684511185D-07 0.721918372437D-02 0.841356813908D-05 0.515374106407D+04
+ 0.504000000000D+06 0.353902578354D-07 0.253075979692D+01-0.968575477600D-07
+ 0.942756127360D+00 0.206312500000D+03 0.127906767830D+01-0.805426406386D-08
+ 0.255010622216D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.480000000000D+03
+ 0.501840000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 20 0 0.0 0.429513398558D-03 0.409272615798D-11 0.000000000000D+00
+ 0.134000000000D+03 0.264062500000D+02 0.541201114627D-08-0.203617224240D+00
+ 0.151619315147D-05 0.118528440362D-01 0.683218240738D-05 0.515376030731D+04
+ 0.504000000000D+06-0.204890966415D-07-0.272235612675D+01 0.122934579849D-06
+ 0.938339214875D+00 0.234375000000D+03 0.945142288650D+00-0.854392731744D-08
+ -0.282511767749D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.390000000000D+03
+ 0.498078000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 03 10 31 21 59 44.0-0.213384628296D-03-0.670752342558D-11 0.000000000000D+00
+ 0.103000000000D+03 0.540625000000D+01 0.545236997024D-08-0.123190158144D+01
+ 0.845640897751D-06 0.230912937550D-01 0.878795981407D-05 0.515375215149D+04
+ 0.511184000000D+06-0.391155481339D-07 0.246666111233D+01 0.635161995888D-06
+ 0.932352420129D+00 0.198625000000D+03-0.174934370678D+01-0.843677999718D-08
+ 0.307155651409D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.103000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 21 59 44.0-0.984873622656D-06-0.227373675443D-12 0.000000000000D+00
+ 0.380000000000D+02 0.251875000000D+02 0.534665128092D-08-0.203490902727D+00
+ 0.133179128170D-05 0.647580297664D-02 0.728294253349D-05 0.515363776779D+04
+ 0.511184000000D+06-0.856816768646D-07-0.269313134206D+01-0.931322574616D-08
+ 0.937196219424D+00 0.225906250000D+03-0.204043353259D+01-0.850285417801D-08
+ -0.233581158164D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.550000000000D+03
+ 0.508080000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 21 59 44.0 0.641273334622D-03 0.238742359215D-11 0.000000000000D+00
+ 0.500000000000D+02 0.227187500000D+02 0.523914680292D-08 0.196341603056D+01
+ 0.935047864914D-06 0.127003918169D-01 0.700913369656D-05 0.515367199326D+04
+ 0.511184000000D+06 0.260770320892D-07-0.272146801698D+01-0.320374965668D-06
+ 0.938883534508D+00 0.231562500000D+03-0.185912480988D+01-0.816784022333D-08
+ -0.182150444440D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.500000000000D+02
+ 0.509838000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 03 10 31 21 59 44.0 0.749388709664D-04 0.216004991671D-11 0.000000000000D+00
+ 0.660000000000D+02 0.588125000000D+02 0.564630661991D-08 0.692094025111D+00
+ 0.294484198093D-05 0.224355433602D-02 0.743381679058D-05 0.515370357132D+04
+ 0.511184000000D+06 0.372529029846D-08-0.172029298300D+01-0.298023223877D-07
+ 0.909829146127D+00 0.204593750000D+03-0.155343617931D+00-0.858000024859D-08
+ -0.450018745087D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.116415321827D-07 0.660000000000D+02
+ 0.509178000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 21 59 44.0 0.822683796287D-05 0.250111042988D-11 0.000000000000D+00
+ 0.145000000000D+03 0.193750000000D+01 0.474305471012D-08-0.103992845219D+01
+ 0.184401869774D-06 0.203923555091D-02 0.883080065250D-05 0.515369447517D+04
+ 0.511184000000D+06-0.502914190292D-07 0.255738547797D+01 0.521540641785D-07
+ 0.961166129227D+00 0.213062500000D+03-0.161378241320D+01-0.797783230874D-08
+ 0.302155443130D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.931322574616D-08 0.145000000000D+03
+ 0.506310000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 21 59 44.0 0.576954334974D-05-0.136424205266D-11 0.000000000000D+00
+ 0.154000000000D+03 0.376875000000D+02 0.428767859902D-08-0.161041682972D+01
+ 0.206194818020D-05 0.442684011068D-02 0.470690429211D-05 0.515362301064D+04
+ 0.511184000000D+06-0.428408384323D-07-0.534045481892D+00-0.633299350739D-07
+ 0.964499864982D+00 0.292781250000D+03-0.298829114788D+01-0.807105047736D-08
+ 0.707172313708D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.102445483208D-07 0.154000000000D+03
+ 0.504510000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 03 10 31 21 59 44.0 0.399225391448D-04 0.909494701773D-12 0.000000000000D+00
+ 0.730000000000D+02 0.399375000000D+02 0.381230165481D-08 0.262425518541D+01
+ 0.200793147087D-05 0.164800623898D-01 0.422820448875D-05 0.515386226082D+04
+ 0.511184000000D+06 0.210478901863D-06-0.518873867168D+00-0.465661287308D-07
+ 0.984654303033D+00 0.306781250000D+03-0.164458702360D+01-0.760853121158D-08
+ -0.128576784311D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.730000000000D+02
+ 0.504000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 1 03 10 31 22 0 0.0 0.312882475555D-03 0.216004991671D-11 0.000000000000D+00
+ 0.118000000000D+03-0.658125000000D+02 0.419374611493D-08-0.882413035816D-01
+ -0.328570604324D-05 0.524068030063D-02 0.412389636040D-05 0.515364637184D+04
+ 0.511200000000D+06-0.132247805595D-06 0.490210854724D+00 0.102445483208D-06
+ 0.976506190191D+00 0.308937500000D+03-0.172956997706D+01-0.817391190481D-08
+ 0.267868300647D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.630000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 03 10 31 22 0 0.0 0.575836747885D-04 0.329691829393D-11 0.000000000000D+00
+ 0.141000000000D+03 0.277812500000D+02 0.555880297503D-08 0.184899065116D+01
+ 0.151805579662D-05 0.499329715967D-02 0.725127756596D-05 0.515364663696D+04
+ 0.511200000000D+06-0.109896063805D-06-0.274464660075D+01 0.130385160446D-06
+ 0.929698237618D+00 0.223156250000D+03 0.503245466514D+00-0.844178020546D-08
+ -0.197151069276D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.141000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 03 10 31 22 0 0.0-0.325310975313D-05-0.488853402203D-11 0.000000000000D+00
+ 0.137000000000D+03 0.555937500000D+02 0.437196782429D-08-0.999821997136D+00
+ 0.285916030407D-05 0.645324296784D-02 0.859797000885D-05 0.515372229004D+04
+ 0.511200000000D+06-0.260770320892D-07-0.160365676427D+01-0.126659870148D-06
+ 0.962575830736D+00 0.215437500000D+03-0.157779540380D+00-0.797961809741D-08
+ -0.292869342041D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.137000000000D+03
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 03 10 31 22 0 0.0 0.310363247991D-05 0.147792889038D-11 0.000000000000D+00
+ 0.157000000000D+03-0.109375000000D+01 0.528379151970D-08-0.137276913929D+01
+ -0.558793544769D-08 0.494022795465D-02 0.837445259094D-05 0.515362020111D+04
+ 0.511200000000D+06 0.856816768646D-07 0.249086099578D+01-0.130385160446D-07
+ 0.935774998899D+00 0.204406250000D+03 0.781404007905D+00-0.825391523727D-08
+ 0.325370695853D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.925000000000D+03
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 22 0 0.0-0.997912138701D-06-0.341060513165D-12 0.000000000000D+00
+ 0.160000000000D+02 0.251875000000D+02 0.534665128092D-08-0.201159464813D+00
+ 0.133179128170D-05 0.647578819189D-02 0.728294253349D-05 0.515363775826D+04
+ 0.511200000000D+06-0.856816768646D-07-0.269313149274D+01-0.931322574616D-08
+ 0.937196207721D+00 0.225906250000D+03-0.204043111292D+01-0.850285417801D-08
+ -0.233581158164D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.160000000000D+02
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 22 0 0.0 0.641269143671D-03 0.238742359215D-11 0.000000000000D+00
+ 0.290000000000D+02 0.227187500000D+02 0.523914680292D-08 0.196574786931D+01
+ 0.935047864914D-06 0.127003911184D-01 0.700913369656D-05 0.515367196846D+04
+ 0.511200000000D+06 0.260770320892D-07-0.272146811938D+01-0.320374965668D-06
+ 0.938883550600D+00 0.231562500000D+03-0.185912277789D+01-0.816784022333D-08
+ -0.182150444440D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.285000000000D+03
+ 0.507768000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 03 10 31 22 0 0.0 0.401336234063D-03 0.000000000000D+00 0.000000000000D+00
+ 0.129000000000D+03-0.858750000000D+02 0.435053836024D-08-0.603809489375D-02
+ -0.459700822830D-05 0.902453518938D-02 0.876933336258D-05 0.515370064735D+04
+ 0.511200000000D+06 0.260770320892D-07 0.154723285074D+01-0.135973095894D-06
+ 0.962787689069D+00 0.211218750000D+03 0.233454521904D+01-0.802354849872D-08
+ 0.198936857947D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.129000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 03 10 31 22 0 0.0-0.144722871482D-04-0.181898940355D-11 0.000000000000D+00
+ 0.950000000000D+02-0.642500000000D+02 0.479055668877D-08-0.371234347423D+00
+ -0.327266752720D-05 0.150526555954D-01 0.820308923721D-05 0.515361506653D+04
+ 0.511200000000D+06 0.558793544769D-08 0.148159919058D+01 0.212341547012D-06
+ 0.949508451044D+00 0.220812500000D+03 0.998822383750D+00-0.837177728956D-08
+ 0.205722854897D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.863000000000D+03
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 03 10 31 22 0 0.0 0.336226075888D-04 0.568434188608D-12 0.000000000000D+00
+ 0.163000000000D+03 0.514687500000D+02 0.402373903345D-08 0.309443997900D+01
+ 0.263564288616D-05 0.558987096883D-02 0.547803938389D-05 0.515359767914D+04
+ 0.511200000000D+06-0.838190317154D-07-0.569818065541D+00-0.223517417908D-07
+ 0.980985386413D+00 0.285718750000D+03 0.231511166021D+00-0.790640076190D-08
+ 0.414302971668D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.419000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 03 10 31 22 0 0.0-0.317590311170D-04-0.113686837722D-12 0.000000000000D+00
+ 0.202000000000D+03-0.656875000000D+02 0.405766901820D-08-0.299489243843D+01
+ -0.332854688168D-05 0.196398724802D-02 0.384636223316D-05 0.515377473831D+04
+ 0.511200000000D+06-0.558793544769D-08 0.472118897099D+00 0.465661287308D-07
+ 0.980731394576D+00 0.314468750000D+03 0.723033744778D+00-0.802997733793D-08
+ 0.435732435719D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.458000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 03 10 31 22 0 0.0-0.192685984075D-04 0.227373675443D-12 0.000000000000D+00
+ 0.500000000000D+01-0.609687500000D+02 0.414552982081D-08 0.136066552710D+01
+ -0.307150185108D-05 0.134226959199D-02 0.475160777569D-05 0.515374674988D+04
+ 0.511200000000D+06-0.186264514923D-07 0.463956931886D+00-0.838190317154D-07
+ 0.975229390401D+00 0.292906250000D+03-0.133916739294D+01-0.805176395972D-08
+ 0.792890169915D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.261000000000D+03
+ 0.509760000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 03 10 31 22 0 0.0 0.179798807949D-03 0.511590769747D-11 0.000000000000D+00
+ 0.173000000000D+03 0.631250000000D+02 0.426589197724D-08-0.111067025656D+00
+ 0.317767262459D-05 0.846716051456D-02 0.770762562752D-05 0.515376043320D+04
+ 0.511200000000D+06-0.558793544769D-07-0.155264014999D+01-0.124797224999D-06
+ 0.969498961809D+00 0.237250000000D+03 0.215874395866D+01-0.801711965950D-08
+ -0.265011038774D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.941000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 22 0 0.0 0.822776928544D-05 0.250111042988D-11 0.000000000000D+00
+ 0.124000000000D+03 0.193750000000D+01 0.474305471012D-08-0.103759368760D+01
+ 0.184401869774D-06 0.203923508525D-02 0.883080065250D-05 0.515369445801D+04
+ 0.511200000000D+06-0.502914190292D-07 0.255738542530D+01 0.521540641785D-07
+ 0.961166117524D+00 0.213062500000D+03-0.161378334069D+01-0.797783230874D-08
+ 0.302155443130D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-08 0.380000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 03 10 31 22 0 0.0 0.104476232082D-03-0.345607986674D-10 0.000000000000D+00
+ 0.170000000000D+02 0.510000000000D+02 0.437911097898D-08 0.253528377160D+00
+ 0.271946191788D-05 0.159188389080D-01 0.775046646595D-05 0.515305284691D+04
+ 0.511200000000D+06 0.225380063057D-06-0.151126337441D+01 0.176951289177D-06
+ 0.971558086300D+00 0.235687500000D+03-0.284485656817D+01-0.815533970263D-08
+ -0.318584698903D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.170000000000D+02
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 22 0 0.0 0.577326864004D-05-0.136424205266D-11 0.000000000000D+00
+ 0.130000000000D+03 0.376875000000D+02 0.428767859902D-08-0.160808311258D+01
+ 0.206194818020D-05 0.442684779409D-02 0.470690429211D-05 0.515362300491D+04
+ 0.511200000000D+06-0.428408384323D-07-0.534045575519D+00-0.633299350739D-07
+ 0.964499881074D+00 0.292781250000D+03-0.298829102353D+01-0.807105047736D-08
+ 0.707172313708D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.642000000000D+03
+ 0.504000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 03 10 31 22 0 0.0-0.205811113119D-03 0.147792889038D-11 0.000000000000D+00
+ 0.200000000000D+01 0.610937500000D+02 0.436732477375D-08-0.239498982247D+01
+ 0.313110649586D-05 0.199397664983D-02 0.493787229061D-05 0.515378739739D+04
+ 0.511200000000D+06 0.614672899246D-07-0.586263321615D+00-0.316649675369D-07
+ 0.964642879854D+00 0.289406250000D+03 0.173311333289D+01-0.814748223248D-08
+ 0.500020827875D-11 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.698491930962D-08 0.258000000000D+03
+ 0.504000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 03 10 31 22 0 0.0 0.611385330558D-04 0.295585778076D-11 0.000000000000D+00
+ 0.239000000000D+03 0.513750000000D+02 0.452625996547D-08-0.153982793979D+00
+ 0.252015888691D-05 0.803456094582D-02 0.749155879021D-05 0.515372665978D+04
+ 0.511200000000D+06 0.143423676491D-06-0.157768132837D+01-0.428408384323D-07
+ 0.956143619860D+00 0.234781250000D+03 0.293065637120D+01-0.815283959849D-08
+ -0.322513433979D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.121071934700D-07 0.239000000000D+03
+ 0.508290000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 03 10 31 22 0 0.0 0.716205686331D-04 0.284217094304D-11 0.000000000000D+00
+ 0.236000000000D+03 0.549062500000D+02 0.426160608443D-08-0.357817306904D+00
+ 0.287778675556D-05 0.971205695532D-02 0.844150781632D-05 0.515378609276D+04
+ 0.511200000000D+06-0.160187482834D-06-0.157907720677D+01 0.670552253723D-07
+ 0.972815161565D+00 0.226906250000D+03-0.145791450591D+01-0.804319217410D-08
+ -0.273225666660D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.139698386192D-08 0.236000000000D+03
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 03 10 31 22 0 0.0 0.544856302440D-04 0.682121026330D-12 0.000000000000D+00
+ 0.660000000000D+02-0.786875000000D+02 0.486591697069D-08 0.339684086211D+00
+ -0.428222119808D-05 0.106617966667D-01 0.866875052452D-05 0.515380138969D+04
+ 0.511200000000D+06-0.201165676117D-06 0.143329894307D+01-0.651925802231D-07
+ 0.942538310561D+00 0.202750000000D+03-0.166902360427D+01-0.834820487910D-08
+ 0.133576992589D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.745058059692D-08 0.322000000000D+03
+ 0.504000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 03 10 31 22 0 0.0 0.504250172526D-03-0.545696821064D-11 0.000000000000D+00
+ 0.400000000000D+02-0.517187500000D+02 0.414374403214D-08 0.138861850348D+01
+ -0.266917049885D-05 0.147289390443D-01 0.430457293987D-05 0.515360642242D+04
+ 0.511200000000D+06-0.987201929092D-07 0.475284866871D+00 0.134110450745D-06
+ 0.979137197154D+00 0.309531250000D+03 0.532898296644D+00-0.812998150351D-08
+ -0.115719105880D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.296000000000D+03
+ 0.506088000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 03 10 31 22 0 0.0 0.769323669374D-03 0.251247911365D-10 0.000000000000D+00
+ 0.218000000000D+03-0.856250000000D+02 0.470162441296D-08-0.116697270400D+01
+ -0.421889126301D-05 0.175244297134D-01 0.806525349617D-05 0.515361160850D+04
+ 0.511200000000D+06 0.404193997383D-06 0.146067397025D+01 0.258907675743D-06
+ 0.947062984518D+00 0.210843750000D+03-0.224782491870D+01-0.809998025383D-08
+ 0.190722230061D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.218000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 03 10 31 22 0 0.0 0.508502125740D-06 0.238742359215D-11 0.000000000000D+00
+ 0.123000000000D+03-0.306250000000D+01 0.465126517244D-08-0.261232353778D+01
+ -0.264495611191D-06 0.800295383669D-02 0.882521271706D-05 0.515369026756D+04
+ 0.511200000000D+06 0.856816768646D-07 0.256831399828D+01-0.149011611939D-06
+ 0.959095466702D+00 0.209187500000D+03-0.242938481566D+01-0.780818238500D-08
+ 0.330728061866D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.379000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 03 10 31 22 0 0.0 0.147616490722D-03 0.126192389871D-10 0.000000000000D+00
+ 0.710000000000D+02-0.509375000000D+02 0.412981488051D-08-0.249322584820D+01
+ -0.264681875706D-05 0.801709236112D-02 0.353716313839D-05 0.515368251419D+04
+ 0.511200000000D+06 0.150874257088D-06 0.443344743842D+00 0.167638063431D-07
+ 0.976118802169D+00 0.315968750000D+03-0.154480547320D+01-0.791104381244D-08
+ 0.953611150304D-10 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.710000000000D+02
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 03 10 31 22 0 0.0 0.602167099714D-03 0.253521648119D-10 0.000000000000D+00
+ 0.225000000000D+03 0.381250000000D+01 0.509235497417D-08-0.239440108133D+01
+ 0.117346644402D-06 0.721916521434D-02 0.840611755848D-05 0.515374109077D+04
+ 0.511200000000D+06 0.838190317154D-07 0.253070130360D+01-0.186264514923D-08
+ 0.942758258831D+00 0.206375000000D+03 0.127907236695D+01-0.806890753096D-08
+ 0.335728270144D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.838190317154D-08 0.481000000000D+03
+ 0.504000000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 03 10 31 22 0 0.0 0.429543200880D-03 0.409272615798D-11 0.000000000000D+00
+ 0.135000000000D+03 0.301562500000D+02 0.540951104213D-08 0.846478488118D+00
+ 0.179745256901D-05 0.118539441610D-01 0.739283859730D-05 0.515376258850D+04
+ 0.511200000000D+06-0.949949026108D-07-0.272241735280D+01 0.122934579849D-06
+ 0.938337057070D+00 0.226875000000D+03 0.945180225042D+00-0.851785480284D-08
+ -0.313584490624D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.391000000000D+03
+ 0.504018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 03 10 31 23 59 44.0-0.986270606518D-06-0.227373675443D-12 0.000000000000D+00
+ 0.390000000000D+02 0.216250000000D+02 0.545022702383D-08 0.846789327489D+00
+ 0.119395554066D-05 0.647433870472D-02 0.694952905178D-05 0.515363483620D+04
+ 0.518384000000D+06-0.372529029846D-07-0.269319290604D+01 0.260770320892D-07
+ 0.937194708230D+00 0.236031250000D+03-0.204050345861D+01-0.851964059151D-08
+ -0.186793494985D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.551000000000D+03
+ 0.514740000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 03 10 31 23 59 44.0 0.641291029751D-03 0.238742359215D-11 0.000000000000D+00
+ 0.510000000000D+02 0.302187500000D+02 0.520700260685D-08 0.301355761857D+01
+ 0.154599547386D-05 0.126995168394D-01 0.683218240738D-05 0.515367393112D+04
+ 0.518384000000D+06 0.165775418282D-06-0.272152596463D+01-0.167638063431D-06
+ 0.938882513391D+00 0.232687500000D+03-0.185908012359D+01-0.806033574534D-08
+ -0.193222334200D-09 0.100000000000D+01 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.510000000000D+02
+ 0.511218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+16 03 10 31 23 59 44.0 0.824499875307D-05 0.250111042988D-11 0.000000000000D+00
+ 0.146000000000D+03 0.456250000000D+01 0.464305054455D-08 0.103458049329D-01
+ -0.372529029846D-08 0.203956977930D-02 0.872835516930D-05 0.515369523048D+04
+ 0.518384000000D+06-0.782310962677D-07 0.255732807599D+01 0.372529029846D-08
+ 0.961168282643D+00 0.212125000000D+03-0.161388750046D+01-0.797890378194D-08
+ 0.281797452281D-09 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-08 0.146000000000D+03
+ 0.518100000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 03 10 31 23 59 44.0 0.575976446271D-05-0.136424205266D-11 0.000000000000D+00
+ 0.155000000000D+03 0.426250000000D+02 0.440446917811D-08-0.560260675437D+00
+ 0.213459134102D-05 0.442627095617D-02 0.498443841934D-05 0.515362210083D+04
+ 0.518384000000D+06 0.109896063805D-06-0.534103246676D+00-0.372529029846D-08
+ 0.964499666025D+00 0.288218750000D+03-0.298823729786D+01-0.817105464294D-08
+ -0.371444043564D-10 0.000000000000D+00 0.124200000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.155000000000D+03
+ 0.515070000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
diff --git a/dev/apps/positioning/examples/grca304a.03o b/dev/apps/positioning/examples/grca304a.03o
new file mode 100644
index 0000000..9a049d7
--- /dev/null
+++ b/dev/apps/positioning/examples/grca304a.03o
@@ -0,0 +1,6522 @@
+ 2.10 Observation G (GPS) RINEX VERSION / TYPE
+gps1x2rnx engb 08/31/2006 11:51:40 PGM / RUN BY / DATE
+GRACE A MARKER NAME
+GRACE A NASA OBSERVER / AGENCY
+RECNUM RECTYPE RECVERS REC # / TYPE / VERS
+ANTNUM ANTTYPE ANT # / TYPE
+ 0.0000 0.0000 0.0000 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 9 L1 L2 C1 P1 P2 LA UN S1 S2# / TYPES OF OBSERV
+ 10.000 INTERVAL
+ 2003 10 31 0 0 0.0000000 GPS TIME OF FIRST OBS
+SNR is mapped to signal strength [0,1,2-9] COMMENT
+SNR: >500 >100 >50 >10 >5 >3 >1 >0 bad n/a COMMENT
+sig: 9 8 7 6 5 4 3 2 1 0 COMMENT
+Loss of Lock Indicator is set for all phase observations COMMENT
+in case a phase break/cycle slip is detected. COMMENT
+Loss of Lock Indicator is also set at acquisition of a PRN COMMENT
+Undetected cycle slips may remain in this file. COMMENT
+Edited by GPSTK Rinex Editor ver 3.0 9/8/2003 on 2006/08/31 COMMENT
+ END OF HEADER
+ 03 10 31 0 0 0.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 106092653.32048 82669652.07148 20188757.40549 20188757.99548 20188769.26348
+ 106092649.81449 710.00049 348.00048 349.00048
+ 109918330.54848 85650704.86748 20916759.83848 20916759.73148 20916772.11148
+ 109918330.04548 487.00048 183.00048 171.00048
+ 119914567.31947 93440002.85247 22818979.92748 22818979.74447 22818996.65947
+ 119914569.81348 298.00048 60.00047 84.00047
+ 125152173.02646 97521279.29146 23815661.73448 23815661.77646 23815685.33746
+ 125152170.52748 178.00048 24.00046 32.00046
+ 106139276.25748 82705987.16648 20197629.95749 20197630.21048 20197642.77848
+ 106139274.75549 680.00049 329.00048 334.00048
+ 117985921.06047 91937150.10847 22451968.79548 22451969.49847 22451982.92747
+ 117985918.55748 328.00048 80.00047 80.00047
+ 115743822.51947 90190062.55147 22025313.81948 22025314.02547 22025329.33347
+ 115743822.01148 278.00048 60.00047 70.00047
+ 111013100.92448 86503773.83948 21125086.88048 21125087.33948 21125099.19848
+ 111013099.42248 476.00048 169.00048 191.00048
+ 03 10 31 0 0 10.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 106065333.90848 82648364.63348 20183558.35349 20183558.96148 20183570.08148
+ 106065330.40349 711.00049 349.00048 350.00048
+ 109931040.01348 85660608.79748 20919178.02248 20919177.98948 20919190.14148
+ 109931039.50448 489.00048 183.00048 168.00048
+ 120198691.06347 93661398.55247 22873046.54048 22873046.30247 22873063.07447
+ 120198693.55748 293.00048 61.00047 79.00047
+ 125437420.98446 97743551.07146 23869942.02848 23869941.96346 23869965.06846
+ 125437418.48348 176.00048 22.00046 29.00046
+ 106326473.12048 82851855.25448 20233252.02549 20233252.23648 20233264.74848
+ 106326471.61749 667.00049 316.00048 327.00048
+ 117806784.45347 91797563.95947 22417879.63548 22417880.05847 22417893.40547
+ 117806781.94548 330.00048 83.00047 82.00047
+ 115973123.23747 90368738.89347 22068948.03248 22068948.12547 22068963.31347
+ 115973122.73748 274.00048 56.00047 68.00047
+ 110940067.99048 86446865.62348 21111188.76248 21111189.15448 21111200.92448
+ 110940066.48948 478.00048 171.00048 191.00048
+ 03 10 31 0 0 20.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 106042278.68648 82630399.89948 20179170.82949 20179171.46948 20179182.41548
+ 106042275.18049 713.00049 353.00048 351.00048
+ 109949768.22148 85675202.61348 20922741.60448 20922741.51648 20922753.67448
+ 109949767.71748 490.00048 184.00048 170.00048
+ 120485786.84047 93885110.04947 22927678.58448 22927678.35747 22927694.98447
+ 120485789.32648 290.00048 59.00047 76.00047
+ 125724167.33746 97966990.32846 23924507.76948 23924507.70846 23924530.40946
+ 125724164.81148 175.00048 21.00046 29.00046
+ 106517678.83248 83000847.08848 20269636.94849 20269637.17848 20269649.54148
+ 106517677.33049 655.00049 304.00048 312.00048
+ 117632080.04047 91661431.40747 22384633.80848 22384634.39447 22384647.43847
+ 117632077.53648 333.00048 85.00047 80.00047
+ 116206436.89747 90550542.14047 22113345.90448 22113346.17847 22113360.72947
+ 116206436.39848 268.00048 54.00047 67.00047
+ 110872801.59548 86394450.76648 21098388.01848 21098388.41548 21098400.06848
+ 110872800.09348 479.00048 171.00048 193.00048
+ 03 10 31 0 0 30.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 106023488.99248 82615758.90648 20175595.02749 20175595.68748 20175606.52448
+ 106023485.48749 715.00049 353.00048 351.00048
+ 109974505.92148 85694479.09648 20927448.71448 20927448.70248 20927460.74048
+ 109974505.41848 491.00048 185.00048 171.00048
+ 120775801.36047 94111095.83447 22982866.12348 22982865.71047 22982882.70747
+ 120775803.85948 284.00048 56.00047 73.00047
+ 126012376.83846 98191569.69446 23979351.74648 23979351.37646 23979374.54046
+ 126012374.33748 173.00048 21.00046 27.00046
+ 106712852.99148 83152931.16348 20306777.07549 20306777.37948 20306789.62748
+ 106712851.48749 644.00049 295.00048 303.00048
+ 117461860.00447 91528793.09747 22352241.55548 22352242.03947 22352254.95147
+ 117461857.50348 337.00048 87.00047 84.00047
+ 116443699.68347 90735422.56447 22158495.18348 22158495.22347 22158510.30747
+ 116443699.18748 263.00048 53.00047 65.00047
+ 110811327.57848 86346549.40148 21086689.52748 21086689.91448 21086701.51148
+ 110811326.07648 479.00048 168.00048 194.00048
+ 03 10 31 0 0 40.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 106008965.24848 82604441.97848 20172831.00949 20172831.64948 20172842.46748
+ 106008961.74149 719.00049 357.00048 353.00048
+ 110005242.20048 85718429.73648 20933297.41648 20933297.30548 20933309.26748
+ 110005241.69648 490.00048 183.00048 169.00048
+ 121068681.18147 94339314.24447 23038599.16548 23038598.93347 23038615.30147
+ 121068683.67248 281.00048 53.00047 70.00047
+ 126302014.80746 98417262.03946 24034467.74648 24034467.72446 24034490.81746
+ 126302012.30048 171.00048 22.00046 26.00046
+ 106911954.64748 83308075.57848 20344664.67049 20344664.90848 20344677.15748
+ 106911953.14449 636.00049 285.00048 296.00048
+ 117296175.57147 91399688.92847 22320712.33248 22320712.92647 22320725.72047
+ 117296173.06648 342.00048 88.00047 87.00047
+ 116684847.11947 90923329.90247 22204383.76948 22204384.01747 22204398.76747
+ 116684846.61348 258.00048 51.00047 63.00047
+ 110755669.80748 86303180.11548 21076097.92348 21076098.25948 21076109.77048
+ 110755668.30948 479.00048 170.00048 197.00048
+ 03 10 31 0 0 50.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 105998706.75048 82596448.56248 20170878.80749 20170879.34648 20170890.12748
+ 105998703.24349 720.00049 359.00048 359.00048
+ 110041963.98848 85747044.34448 20940285.11248 20940285.16448 20940297.06948
+ 110041963.48248 488.00048 184.00048 168.00048
+ 121364372.54547 94569723.39447 23094867.09348 23094866.82347 23094883.42247
+ 121364375.04348 276.00048 55.00047 68.00047
+ 126593046.23946 98644040.13146 24089848.85148 24089848.44846 24089871.87046
+ 126593043.75148 170.00048 21.00046 26.00046
+ 107114942.25848 83466247.95548 20383291.76449 20383292.07248 20383304.26248
+ 107114940.75549 628.00049 278.00048 286.00048
+ 117135077.02847 91274158.09947 22290055.98148 22290056.52147 22290069.10347
+ 117135074.52548 348.00048 92.00047 92.00047
+ 116929814.11646 91114213.44747 22250999.33648 22250999.50946 22251014.27947
+ 116929813.61148 252.00048 47.00046 62.00047
+ 110705850.53548 86264360.23948 21066617.29948 21066617.67448 21066629.13548
+ 110705849.03448 478.00048 171.00048 200.00048
+ 03 10 31 0 1 0.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 105992712.06648 82591777.53748 20169737.87149 20169738.52248 20169749.21648
+ 105992708.55749 721.00049 359.00048 359.00048
+ 110084656.25348 85780311.20248 20948409.13448 20948409.14148 20948420.96148
+ 110084655.74748 487.00048 180.00048 171.00048
+ 121662821.54847 94802281.25547 23151659.87148 23151659.64547 23151676.09747
+ 121662824.04748 272.00048 53.00047 66.00047
+ 126885436.06846 98871876.56846 24145488.75248 24145487.91546 24145511.84246
+ 126885433.57248 168.00048 20.00046 25.00046
+ 107321773.61948 83627415.39948 20422650.32849 20422650.61748 20422662.80748
+ 107321772.11649 623.00049 275.00048 277.00048
+ 116978613.56947 91152238.93747 22260281.78248 22260282.25547 22260294.75547
+ 116978611.06848 354.00048 94.00047 94.00047
+ 117178535.16546 91308022.13847 22298329.29748 22298329.45746 22298344.23147
+ 117178534.66148 245.00048 45.00046 61.00047
+ 110661890.21348 86230105.71148 21058251.76048 21058252.22748 21058263.48248
+ 110661888.71248 479.00048 172.00048 196.00048
+ 03 10 31 0 1 10.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 105990978.56148 82590426.85448 20169407.95349 20169408.57548 20169419.24048
+ 105990975.05549 721.00049 360.00048 361.00048
+ 110133302.30348 85818217.31048 20957666.07648 20957666.03848 20957677.88348
+ 110133301.79848 484.00048 179.00048 171.00048
+ 121963974.17446 95036945.73847 23208967.30648 23208966.90746 23208983.34647
+ 121963976.66748 268.00048 50.00046 64.00047
+ 127179149.54546 99100744.31346 24201380.35048 24201380.51846 24201403.15846
+ 127179147.05348 166.00048 20.00046 22.00046
+ 107532406.14748 83791544.72348 20462732.38649 20462732.63548 20462744.71248
+ 107532404.64249 619.00049 273.00048 271.00048
+ 116826833.37047 91033968.97747 22231398.73548 22231399.19647 22231411.68947
+ 116826830.86448 359.00048 97.00047 96.00047
+ 117430944.16446 91504704.44747 22346361.05048 22346361.51546 22346376.11347
+ 117430943.66148 240.00048 44.00046 59.00047
+ 110623807.46848 86200431.04548 21051004.65548 21051005.07548 21051016.34848
+ 110623805.96648 481.00048 171.00048 196.00048
+ 03 10 31 0 1 20.0000000 0 8G 4G 8G10G17G24G26G27G29
+ 105993502.90248 82592393.92148 20169888.30249 20169888.90048 20169899.58248
+ 105993499.39549 721.00049 360.00048 364.00048
+ 110187883.66848 85860748.27748 20968052.47748 20968052.57248 20968064.43248
+ 110187883.16348 483.00048 178.00048 171.00048
+ 122267776.17746 95273674.57247 23266778.99348 23266778.49746 23266794.90547
+ 122267778.66848 264.00048 50.00046 59.00047
+ 127474151.71246 99330616.06746 24257517.39648 24257517.91346 24257539.39446
+ 127474149.22248 163.00048 18.00046 22.00046
+ 107746796.63148 83958602.27448 20503529.49349 20503529.74448 20503541.87248
+ 107746795.12849 614.00049 267.00048 261.00048
+ 116679783.62047 90919385.01147 22203415.82048 22203416.38547 22203428.81747
+ 116679781.11648 365.00048 100.00047 97.00047
+ 117686974.57246 91704208.52747 22395082.31248 22395082.42446 22395097.13447
+ 117686974.07248 234.00048 40.00046 56.00047
+ 110591619.19848 86175349.42148 21044879.34648 21044879.73848 21044890.99248
+ 110591617.69948 483.00048 175.00048 196.00048
+ 03 10 31 0 1 30.0000000 0 9G 4G 7G 8G10G17G24G26G27G29
+ 106000280.79648 82597675.39548 20171178.07549 20171178.67348 20171189.34948
+ 106000277.28949 720.00049 358.00048 364.00048
+ 123539135.39056 96264328.83557 23508716.16848 23508715.84246 23508732.39147
+ 123539136.88358 219.00048 39.00046 53.00047
+ 110248379.46348 85907887.83048 20979564.51548 20979564.44748 20979576.30348
+ 110248378.95748 484.00048 178.00048 171.00048
+ 122574173.22546 95512425.42747 23325084.48548 23325083.91646 23325100.30347
+ 122574175.72748 261.00048 48.00046 57.00047
+ 127770407.73046 99561464.69746 24313893.38248 24313893.73746 24313915.94046
+ 127770405.26248 160.00048 18.00046 23.00046
+ 107964901.37848 84128553.99648 20545033.49349 20545033.73048 20545045.83348
+ 107964899.87449 607.00049 259.00048 258.00048
+ 116537510.29848 90808522.85948 22176341.94648 22176342.57048 22176355.00648
+ 116537507.79548 369.00048 102.00048 102.00048
+ 117946559.47546 91906482.23947 22444479.85348 22444480.07446 22444495.02247
+ 117946558.98448 229.00048 40.00046 56.00047
+ 110565340.27648 86154872.42548 21039878.58548 21039879.00448 21039890.18348
+ 110565338.77648 485.00048 174.00048 196.00048
+ 03 10 31 0 1 40.0000000 0 9G 4G 7G 8G10G17G24G26G27G29
+ 106011306.87048 82606267.09248 20173276.27349 20173276.87448 20173287.59248
+ 106011303.36349 720.00049 356.00048 365.00048
+ 123207546.01246 96005947.71047 23445616.66948 23445616.71546 23445632.86547
+ 123207547.51348 220.00048 36.00046 53.00047
+ 110314767.54848 85959618.72348 20992197.88648 20992197.82848 20992209.56248
+ 110314767.04148 483.00048 178.00048 168.00048
+ 122883110.90546 95753155.86747 23383873.52148 23383872.85746 23383889.68347
+ 122883113.39248 257.00048 45.00046 55.00047
+ 128067882.92646 99793263.15846 24370501.27148 24370501.16746 24370524.21246
+ 128067880.41348 156.00048 15.00046 23.00046
+ 108186676.24048 84301365.50448 20587235.89049 20587236.15448 20587248.24548
+ 108186674.73949 597.00049 253.00048 248.00048
+ 116400058.38948 90701417.57548 22150185.60748 22150186.20448 22150198.62248
+ 116400055.88148 372.00048 103.00048 104.00048
+ 118209631.46746 92111473.04447 22494541.04348 22494541.43646 22494556.16247
+ 118209630.96248 225.00048 36.00046 52.00047
+ 110544983.82948 86139010.28648 21036004.88848 21036005.23148 21036016.46748
+ 110544982.32848 486.00048 174.00048 199.00048
+ 03 10 31 0 1 50.0000000 0 9G 4G 7G 8G10G17G24G26G27G29
+ 106026574.89348 82618164.15848 20176181.81049 20176182.40348 20176193.13448
+ 106026571.38749 720.00049 358.00048 366.00048
+ 122877637.52046 95748876.28347 23382837.09148 23382837.00746 23382853.27447
+ 122877639.02048 222.00048 38.00046 53.00047
+ 110387023.62148 86015922.01948 21005947.80748 21005947.73948 21005959.71348
+ 110387023.11648 483.00048 175.00048 170.00048
+ 123194534.63346 95995823.39447 23443135.53348 23443135.24046 23443151.87347
+ 123194537.12248 253.00048 45.00046 54.00047
+ 128366542.38246 100025984.30146 24427334.41748 24427334.67546 24427356.93146
+ 128366539.89648 152.00048 16.00046 21.00046
+ 108412076.62448 84477002.04048 20630128.24749 20630128.55748 20630140.65648
+ 108412075.12049 586.00049 242.00048 242.00048
+ 116267471.57948 90598103.21848 22124955.26648 22124955.78048 22124968.12948
+ 116267469.07548 375.00048 108.00048 106.00048
+ 118476122.81446 92319128.19546 22545253.19948 22545252.88646 22545268.03346
+ 118476122.31148 220.00048 37.00046 50.00046
+ 110530561.08148 86127771.75448 21033260.28448 21033260.66148 21033271.96348
+ 110530559.57848 486.00048 175.00048 199.00048
+ 03 10 31 0 2 0.0000000 0 9G 4G 7G 8G10G17G24G26G27G29
+ 106046077.75248 82633361.04748 20179893.14449 20179893.75248 20179904.49448
+ 106046074.24649 720.00049 358.00048 365.00048
+ 122549457.98046 95493152.00947 23320386.64148 23320386.46646 23320402.90747
+ 122549459.48648 223.00048 38.00046 54.00047
+ 110465121.67148 86076777.44448 21020809.51848 21020809.46848 21020821.35348
+ 110465121.16448 482.00048 177.00048 166.00048
+ 123508389.81246 96240385.45647 23502860.68548 23502860.51946 23502876.78647
+ 123508392.30548 251.00048 43.00046 52.00047
+ 128666351.68846 100259601.25846 24484386.74048 24484386.31346 24484409.45946
+ 128666349.17648 150.00048 16.00046 18.00046
+ 108641057.50948 84655428.52548 20673702.05749 20673702.19348 20673714.47448
+ 108641056.00749 573.00049 232.00048 235.00048
+ 116139792.33648 90498612.86848 22100658.76848 22100659.25448 22100671.64348
+ 116139789.83448 377.00048 108.00048 107.00048
+ 118745965.48146 92529394.66746 22596602.78948 22596602.67146 22596617.96246
+ 118745964.98248 215.00048 35.00046 48.00046
+ 110522081.38648 86121164.12348 21031646.77148 21031647.11948 21031658.40848
+ 110522079.89148 484.00048 173.00048 201.00048
+ 03 10 31 0 2 10.0000000 0 9G 4G 7G 8G10G17G24G26G27G29
+ 106069807.39048 82651851.48548 20184408.88449 20184409.52248 20184420.33648
+ 106069803.88449 721.00049 357.00048 364.00048
+ 122223055.73346 95238812.56647 23258274.51748 23258274.20846 23258290.66447
+ 122223057.22648 226.00048 39.00046 55.00047
+ 110549033.90248 86142163.34648 21036777.59148 21036777.61348 21036789.61948
+ 110549033.39848 479.00048 177.00048 164.00048
+ 123824621.70646 96486799.41246 23563038.01348 23563037.60446 23563054.56746
+ 123824624.19548 249.00048 44.00046 49.00046
+ 128967275.91346 100494086.82046 24541651.58048 24541650.68246 24541674.44846
+ 128967273.40648 146.00048 14.00046 19.00046
+ 108873573.32248 84836609.44248 20717948.42249 20717948.66148 20717960.96948
+ 108873571.81849 560.00049 222.00048 229.00048
+ 116017061.92248 90402978.67948 22077303.95248 22077304.48548 22077316.87148
+ 116017059.41748 381.00048 110.00048 107.00048
+ 119019091.02246 92742219.11946 22648577.34948 22648577.24946 22648592.81446
+ 119019090.52948 211.00048 33.00046 47.00046
+ 110519552.24748 86119193.22048 21031165.52348 21031165.97148 21031177.28248
+ 110519550.74648 481.00048 174.00048 201.00048
+ 03 10 31 0 2 20.0000000 0 9G 4G 7G 8G10G17G24G26G27G29
+ 106097754.78948 82673628.44648 20189727.28549 20189727.88948 20189738.77448
+ 106097751.28349 722.00049 358.00048 362.00048
+ 121898479.12646 94985895.64547 23196509.48748 23196509.02946 23196525.64247
+ 121898480.62548 226.00048 39.00046 53.00047
+ 110638730.77648 86212056.70048 21053846.58248 21053846.68648 21053858.56548
+ 110638730.27048 475.00048 172.00048 165.00048
+ 124143175.56546 96735022.58546 23623657.12648 23623656.66846 23623673.71646
+ 124143178.06448 245.00048 42.00046 47.00046
+ 129269280.72046 100729414.24046 24599122.04248 24599120.79846 24599144.49946
+ 129269278.21648 142.00048 14.00046 19.00046
+ 109109578.23848 85020509.09148 20762858.90749 20762859.17948 20762871.46748
+ 109109576.73549 548.00049 215.00048 220.00048
+ 115899320.50848 90311231.96248 22054898.60948 22054899.16348 22054911.53948
+ 115899318.00348 384.00048 111.00048 109.00048
+ 119295430.77146 92957548.04546 22701163.63748 22701163.47746 22701179.51946
+ 119295430.28048 204.00048 32.00046 43.00046
+ 110522979.25948 86121863.41948 21031817.85148 21031818.26148 21031829.63148
+ 110522977.75648 480.00048 170.00048 199.00048
+ 03 10 31 0 2 30.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106129909.79048 82698684.01548 20195846.37049 20195846.98248 20195857.92748
+ 106129906.28249 722.00049 359.00048 361.00048
+ 121575776.73046 94734439.07147 23135101.38148 23135101.00546 23135117.66247
+ 121575778.23048 229.00048 41.00046 56.00047
+ 110734180.86148 86286433.02648 21072010.41948 21072010.35848 21072022.60048
+ 110734180.35648 472.00048 169.00048 159.00048
+ 124463996.61546 96985012.27646 23684707.93748 23684707.91546 23684724.33846
+ 124463999.12148 242.00048 42.00046 45.00046
+ 129572331.44646 100965556.46746 24656791.60348 24656791.89846 24656815.41346
+ 129572328.93448 139.00048 14.00046 19.00046
+ 109349026.01648 85207091.43148 20808424.57649 20808424.80348 20808437.23248
+ 109349024.51149 538.00049 203.00048 211.00048
+ 115786606.74748 90223402.83748 22033450.02048 22033450.64448 22033463.10648
+ 115786604.24248 388.00048 114.00048 111.00048
+ 119574915.73046 93175327.65846 22754348.18448 22754348.44546 22754364.32546
+ 119574915.23148 199.00048 29.00046 44.00046
+ 127173301.66156 99096158.70456 24200274.71948 24200274.73946 24200294.29246
+ 127173301.15458 166.00048 21.00046 29.00046
+ 110532366.22648 86129177.68748 21033604.28848 21033604.68648 21033616.13248
+ 110532364.72548 480.00048 170.00048 198.00048
+ 03 10 31 0 2 40.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106166261.82048 82727009.95848 20202764.13549 20202764.79548 20202775.76448
+ 106166258.31349 722.00049 359.00048 357.00048
+ 121254997.20246 94484480.76447 23074059.19448 23074058.83946 23074075.69547
+ 121254998.69148 231.00048 42.00046 56.00047
+ 110835351.28348 86365266.69848 21091262.92348 21091262.80448 21091275.09848
+ 110835350.77748 466.00048 164.00048 162.00048
+ 124787030.06346 97236725.78746 23746179.77848 23746179.32546 23746196.87946
+ 124787032.56048 239.00048 39.00046 46.00046
+ 129876393.80046 101202486.80346 24714653.76848 24714653.59046 24714677.61546
+ 129876391.28948 136.00048 14.00046 18.00046
+ 109591870.18048 85396320.25148 20854636.60249 20854636.80148 20854649.33748
+ 109591868.67649 528.00049 196.00048 203.00048
+ 115678958.13248 90139520.52048 22012965.35948 22012965.95948 22012978.49148
+ 115678955.63048 393.00048 115.00048 112.00048
+ 119857476.71746 93395504.08346 22808118.65448 22808118.39646 22808134.79846
+ 119857476.22548 193.00048 28.00046 41.00046
+ 126895128.60246 98879400.23246 24147340.23348 24147340.15346 24147360.14346
+ 126895128.08348 172.00048 22.00046 29.00046
+ 110547714.80448 86141137.31148 21036525.26548 21036525.66748 21036537.21448
+ 110547713.30048 481.00048 170.00048 198.00048
+ 03 10 31 0 2 50.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106206799.01448 82758597.02148 20210478.41049 20210479.05048 20210490.11448
+ 106206795.50749 720.00049 355.00048 354.00048
+ 120936189.22946 94236058.66447 23013392.46348 23013392.05846 23013408.74747
+ 120936190.71448 234.00048 41.00046 57.00047
+ 110942207.31648 86448530.65748 21111597.22748 21111597.21548 21111609.64048
+ 110942206.80848 463.00048 163.00048 160.00048
+ 125112221.13446 97490120.45346 23808062.33648 23808061.89946 23808079.23346
+ 125112223.62548 236.00048 38.00046 42.00046
+ 130181433.37646 101440178.44446 24772701.90348 24772702.08846 24772725.59146
+ 130181430.90648 132.00048 12.00046 18.00046
+ 109838063.88948 85588159.05248 20901486.02349 20901486.25948 20901498.90548
+ 109838062.38549 522.00049 190.00048 192.00048
+ 115576410.77948 90059613.14948 21993451.57548 21993452.08448 21993464.69248
+ 115576408.27248 397.00048 117.00048 113.00048
+ 120143044.38346 93618023.24546 22862461.15748 22862461.60846 22862477.52446
+ 120143043.88548 187.00048 27.00046 40.00046
+ 126619333.64146 98664494.75846 24094858.43648 24094858.40946 24094878.72646
+ 126619333.15348 176.00048 24.00046 30.00046
+ 110569024.89448 86157742.22248 21040580.69048 21040581.13648 21040592.70648
+ 110569023.39348 482.00048 172.00048 197.00048
+ 03 10 31 0 3 0.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106251508.81248 82793435.41448 20218986.74549 20218987.34348 20218998.52848
+ 106251505.30649 716.00049 352.00048 352.00048
+ 120619401.68146 93989210.86947 22953110.03448 22953109.73246 22953126.63147
+ 120619403.16848 237.00048 42.00046 55.00047
+ 111054712.58848 86536196.55448 21133006.78348 21133006.68848 21133019.20448
+ 111054712.08248 461.00048 160.00048 157.00048
+ 125439515.03446 97745153.57246 23870345.17448 23870344.52646 23870362.56946
+ 125439517.52448 233.00048 39.00046 41.00046
+ 130487415.76346 101678604.50246 24830929.76348 24830929.58446 24830954.64846
+ 130487413.28548 127.00048 11.00046 18.00046
+ 110087559.82848 85782570.95848 20948963.91049 20948964.11548 20948976.93948
+ 110087558.32549 516.00049 188.00048 186.00048
+ 115478999.34448 89983707.73648 21974915.16948 21974915.53848 21974928.31748
+ 115478996.84248 400.00048 122.00048 113.00048
+ 120431549.18846 93842830.96946 22917362.70648 22917362.90946 22917379.46446
+ 120431548.67948 182.00048 27.00046 39.00046
+ 126345964.39146 98451479.32146 24042838.20248 24042838.05346 24042858.08546
+ 126345963.90248 181.00048 25.00046 31.00046
+ 110596294.55548 86178990.89548 21045770.25148 21045770.73048 21045782.33548
+ 110596293.05548 484.00048 171.00048 195.00048
+ 03 10 31 0 3 10.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106300377.71748 82831514.61848 20228286.48349 20228287.13348 20228298.41148
+ 106300374.21249 713.00049 348.00048 349.00048
+ 120304683.52346 93743975.55247 22893221.24848 22893220.78946 22893238.10947
+ 120304685.02848 241.00048 44.00046 54.00047
+ 111172829.14448 86628234.81648 21155484.01248 21155483.98348 21155496.64148
+ 111172828.63848 459.00048 160.00048 158.00048
+ 125768856.92446 98001782.40446 23933017.72248 23933017.38646 23933035.39846
+ 125768859.42048 228.00048 36.00046 40.00046
+ 130794306.94446 101917738.45346 24889330.84548 24889330.67846 24889355.62246
+ 130794304.43448 125.00048 12.00046 15.00046
+ 110340310.60948 85979519.03848 20997061.19249 20997061.48348 20997074.38748
+ 110340309.10649 511.00049 185.00048 177.00048
+ 115386757.33248 89911830.38148 21957362.37848 21957362.96148 21957375.71848
+ 115386754.82648 404.00048 122.00048 115.00048
+ 120722921.40746 94069872.92346 22972810.05948 22972809.90146 22972827.47246
+ 120722920.91348 176.00048 23.00046 37.00046
+ 126075068.02446 98240390.67846 23991288.76048 23991289.05546 23991308.37746
+ 126075067.51048 186.00048 27.00046 33.00046
+ 110629519.82548 86204880.24448 21052093.15048 21052093.47748 21052105.36148
+ 110629518.32548 484.00048 172.00048 193.00048
+ 03 10 31 0 3 20.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106353391.19848 82872823.32048 20238375.06749 20238375.61348 20238387.08048
+ 106353387.69249 709.00049 345.00048 349.00048
+ 119992083.78946 93500390.88147 22833735.78448 22833735.85946 22833752.76647
+ 119992085.27848 246.00048 47.00046 56.00047
+ 111296517.40348 86724614.60548 21179021.69548 21179021.58348 21179034.32848
+ 111296516.89848 459.00048 159.00048 158.00048
+ 126100192.12046 98259964.31046 23996069.75348 23996069.27246 23996087.84946
+ 126100194.61048 225.00048 34.00046 39.00046
+ 131102072.68445 102157553.70646 24947898.25648 24947898.16045 24947923.79146
+ 131102070.19348 121.00048 10.00045 15.00046
+ 110596268.51948 86178966.12248 21045768.83949 21045769.14148 21045782.19748
+ 110596267.01449 506.00049 179.00048 169.00048
+ 115299716.64848 89844005.96248 21940799.50348 21940800.01248 21940813.01348
+ 115299714.14548 407.00048 123.00048 116.00048
+ 121017091.27446 94299094.71646 23028789.91448 23028790.18546 23028807.57146
+ 121017090.77948 170.00048 22.00046 33.00046
+ 125806691.49646 98031265.51146 23940218.95948 23940218.79246 23940239.02546
+ 125806690.99348 189.00048 28.00046 34.00046
+ 110668694.91548 86235405.76648 21059548.33048 21059548.75648 21059560.64148
+ 110668693.41248 482.00048 171.00048 190.00048
+ 03 10 31 0 3 30.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106410534.22148 82917349.80348 20249249.33749 20249249.98148 20249261.55648
+ 106410530.71349 705.00049 343.00048 347.00048
+ 119681651.46446 93258495.08847 22774662.86248 22774662.88646 22774679.74047
+ 119681652.96448 251.00048 49.00046 57.00047
+ 111425736.29848 86825303.92248 21203611.66948 21203611.71148 21203624.64048
+ 111425735.79248 457.00048 157.00048 157.00048
+ 126433465.87646 98519656.65846 24059490.75848 24059490.06346 24059508.87546
+ 126433468.37348 221.00048 35.00046 37.00046
+ 131410679.07945 102398023.80046 25006626.13048 25006625.51845 25006652.58646
+ 131410676.61248 119.00048 10.00045 15.00046
+ 110855385.51848 86380874.77748 21095077.79648 21095078.04548 21095091.29848
+ 110855384.01648 499.00048 175.00048 163.00048
+ 115217907.80848 89780258.24848 21925232.16948 21925232.71448 21925245.95648
+ 115217905.30148 409.00048 124.00048 116.00048
+ 121313988.90846 94530441.89546 23085288.92448 23085288.77246 23085306.76646
+ 121313988.40048 165.00048 20.00046 32.00046
+ 125540881.67546 97824140.30446 23889637.51048 23889637.82646 23889657.85346
+ 125540881.17648 193.00048 28.00046 34.00046
+ 110713812.12848 86270561.46248 21068134.21848 21068134.64148 21068146.82348
+ 110713810.62548 480.00048 170.00048 190.00048
+ 03 10 31 0 3 40.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106471790.40048 82965081.30548 20260906.53249 20260907.06648 20260918.80248
+ 106471786.89349 704.00049 340.00048 343.00048
+ 119373435.67047 93018326.40147 22716011.75048 22716011.39947 22716028.88247
+ 119373437.15948 260.00048 51.00047 57.00047
+ 111560443.05148 86930269.44248 21229246.19248 21229246.09748 21229259.30748
+ 111560442.54648 456.00048 156.00048 157.00048
+ 126768623.59146 98780816.84946 24123270.41448 24123269.92246 24123288.94446
+ 126768626.08148 217.00048 31.00046 36.00046
+ 131720091.99545 102639122.05946 25065507.31648 25065506.22145 25065534.11046
+ 131720089.51848 114.00048 8.00045 14.00046
+ 111117613.34048 86585207.38548 21144978.57148 21144978.93648 21144992.26048
+ 111117611.83548 491.00048 168.00048 155.00048
+ 115141359.77248 89720609.81448 21910666.00648 21910666.64548 21910679.84448
+ 115141357.26548 412.00048 127.00048 119.00048
+ 121613544.19946 94763859.84846 23142293.62948 23142293.94346 23142311.86446
+ 121613543.71848 160.00048 19.00046 35.00046
+ 125277685.07246 97619051.30146 23839553.46548 23839553.90746 23839574.16346
+ 125277684.56948 197.00048 29.00046 36.00046
+ 110764861.92548 86310339.90348 21077849.25548 21077849.63948 21077861.75048
+ 110764860.42248 476.00048 167.00048 190.00048
+ 03 10 31 0 3 50.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106537142.95748 83016004.75448 20273343.12949 20273343.71848 20273355.65148
+ 106537139.45249 701.00049 336.00048 342.00048
+ 119067485.56047 92779923.17647 22657791.84048 22657791.65047 22657809.33347
+ 119067487.06048 266.00048 54.00047 59.00047
+ 111700593.48248 87039476.74748 21255916.51548 21255916.47548 21255929.81948
+ 111700592.97348 452.00048 154.00048 152.00048
+ 127105610.64346 99043402.33746 24187398.33548 24187398.02346 24187417.16846
+ 127105613.14148 213.00048 33.00046 34.00046
+ 132030277.70445 102880822.22846 25124536.15448 25124536.92045 25124565.09646
+ 132030275.22548 111.00048 10.00045 14.00046
+ 111382903.61048 86791926.26448 21195462.30748 21195462.54548 21195476.16748
+ 111382902.10748 482.00048 164.00048 151.00048
+ 115070100.18348 89665082.21448 21897106.17548 21897106.77348 21897120.21348
+ 115070097.67548 414.00048 129.00048 120.00048
+ 121915687.31646 94999294.11446 23199790.97648 23199791.10146 23199809.67946
+ 121915686.81748 156.00048 17.00046 33.00046
+ 125017147.99246 97416034.62746 23789975.53448 23789975.54546 23789995.90046
+ 125017147.47748 200.00048 30.00046 37.00046
+ 110821832.99348 86354732.28348 21088690.97148 21088691.34048 21088703.64648
+ 110821831.49248 474.00048 164.00048 187.00048
+ 03 10 31 0 4 0.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106606573.99348 83070106.20548 20286555.95749 20286556.57648 20286568.54548
+ 106606570.48549 700.00049 335.00048 337.00048
+ 118763850.28847 92543323.67847 22600012.45348 22600012.27247 22600029.97547
+ 118763851.77648 274.00048 58.00047 61.00047
+ 111846142.13048 87152890.42448 21283614.20848 21283614.10948 21283627.68648
+ 111846141.62648 447.00048 151.00048 154.00048
+ 127444372.62046 99307370.70046 24251864.04148 24251863.54746 24251883.60946
+ 127444375.10648 208.00048 31.00046 33.00046
+ 132341202.38645 103123097.94746 25183705.11548 25183705.01545 25183734.54546
+ 132341199.91548 109.00048 7.00045 16.00046
+ 111651207.66948 87000993.49648 21246519.52948 21246519.79548 21246533.57848
+ 111651206.16748 470.00048 156.00048 144.00048
+ 115004155.14848 89613695.79348 21884557.84148 21884558.37748 21884571.96648
+ 115004152.64248 417.00048 132.00048 120.00048
+ 122220348.16646 95236690.14446 23257767.45648 23257767.78846 23257785.96646
+ 122220347.65848 151.00048 18.00046 29.00046
+ 124759316.26546 97215125.97546 23740912.31048 23740912.20346 23740933.04646
+ 124759315.75748 203.00048 30.00046 39.00046
+ 110884712.00348 86403728.21548 21100657.01448 21100657.35048 21100669.86248
+ 110884710.50048 471.00048 164.00048 188.00048
+ 03 10 31 0 4 10.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106680064.84648 83127371.11848 20300541.29349 20300541.89048 20300554.05948
+ 106680061.34049 699.00049 334.00048 333.00048
+ 118462578.99247 92308566.21747 22542682.78648 22542682.54247 22542700.33947
+ 118462580.49148 282.00048 63.00047 65.00047
+ 111997041.82048 87270473.67648 21312330.01748 21312330.08548 21312343.84248
+ 111997041.31148 443.00048 146.00048 150.00048
+ 127784855.15746 99572679.63146 24316657.44648 24316656.97246 24316677.21946
+ 127784857.65648 203.00048 27.00046 32.00046
+ 132652832.45945 103365922.93846 25243009.39948 25243008.64745 25243038.24446
+ 132652829.92548 106.00048 7.00045 14.00046
+ 111922476.73048 87212371.07148 21298141.00948 21298141.26048 21298155.34448
+ 111922475.22748 457.00048 146.00048 140.00048
+ 114943549.16648 89566469.63448 21873025.48848 21873026.08248 21873039.81348
+ 114943546.65948 420.00048 130.00048 120.00048
+ 122527456.75346 95475993.39846 23316210.08448 23316210.05846 23316229.91946
+ 122527456.27348 146.00048 16.00046 28.00046
+ 124504235.49346 97016360.81946 23692372.73448 23692372.94546 23692393.63546
+ 124504234.99148 206.00048 34.00046 38.00046
+ 110953483.71348 86457315.82248 21113744.34048 21113744.64848 21113757.39848
+ 110953482.21148 471.00048 162.00048 185.00048
+ 03 10 31 0 4 20.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106757596.13048 83187784.37348 20315295.60149 20315296.16148 20315308.52248
+ 106757592.62449 698.00049 332.00048 330.00048
+ 118163720.85847 92075689.10347 22485812.51048 22485812.37347 22485830.38047
+ 118163722.36248 291.00048 66.00047 67.00047
+ 112153244.13248 87392188.78648 21342055.07448 21342055.05548 21342069.17948
+ 112153243.62648 437.00048 145.00048 149.00048
+ 128127004.09746 99839286.89946 24381767.74648 24381767.69946 24381788.23446
+ 128127006.59848 199.00048 27.00046 28.00046
+ 132965134.32345 103609271.15246 25302441.25148 25302441.42845 25302471.55446
+ 132965131.80648 102.00048 7.00045 13.00046
+ 112196661.88748 87426020.89048 21350317.36048 21350317.74248 21350332.05048
+ 112196660.38748 442.00048 137.00048 136.00048
+ 114888305.20248 89523421.61948 21862513.48248 21862514.12148 21862527.94548
+ 114888302.69248 422.00048 133.00048 119.00048
+ 122836943.11646 95717149.28946 23375105.02848 23375104.78046 23375125.28446
+ 122836942.62548 142.00048 14.00046 28.00046
+ 124251951.14846 96819774.66646 23644365.36348 23644365.52346 23644386.71446
+ 124251950.64948 212.00048 33.00046 39.00046
+ 111028131.14248 86515481.86648 21127949.85148 21127950.28748 21127963.12248
+ 111028129.64348 470.00048 162.00048 185.00048
+ 03 10 31 0 4 30.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106839147.50448 83251330.12548 20330814.86249 20330815.52748 20330827.96048
+ 106839143.99749 696.00049 330.00048 322.00048
+ 117867325.06547 91844730.65547 22429410.85548 22429410.61047 22429428.76447
+ 117867326.56348 300.00048 70.00047 68.00047
+ 112314699.27748 87517996.94348 21372779.86748 21372779.76048 21372794.11648
+ 112314698.77048 433.00048 142.00048 146.00048
+ 128470765.23746 100107150.22046 24447185.28248 24447184.74146 24447206.93646
+ 128470767.72848 192.00048 26.00046 29.00046
+ 133278074.80044 103853116.68946 25361994.86347 25361993.93544 25362027.02946
+ 133278072.30547 98.00047 5.00044 13.00046
+ 112473714.08848 87641904.71248 21403039.49548 21403039.72648 21403054.23748
+ 112473712.58948 427.00048 129.00048 134.00048
+ 114838444.73948 89484568.50448 21853025.94848 21853026.47048 21853040.68248
+ 114838442.23148 424.00048 133.00048 122.00048
+ 123148737.26146 95960103.32446 23434439.36948 23434439.96246 23434460.24146
+ 123148736.77648 137.00048 14.00046 27.00046
+ 124002508.24546 96625402.55946 23596898.66748 23596898.80446 23596920.41946
+ 124002507.73748 215.00048 37.00046 39.00046
+ 111108635.46848 86578211.67648 21143269.96148 21143270.22948 21143283.51848
+ 111108633.96748 469.00048 159.00048 184.00048
+ 03 10 31 0 4 40.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 106924698.03548 83317992.07448 20347095.20549 20347095.80848 20347108.52248
+ 106924694.52849 693.00049 329.00048 318.00048
+ 117573440.71447 91615729.12547 22373486.97348 22373486.68347 22373505.06347
+ 117573442.20948 308.00048 73.00047 75.00047
+ 112481356.20648 87647858.38348 21404494.44948 21404494.45448 21404508.95648
+ 112481355.70148 431.00048 141.00048 144.00048
+ 128816084.51646 100376227.49746 24512899.50448 24512898.85146 24512921.01546
+ 128816087.01548 188.00048 24.00046 26.00046
+ 133591620.39645 104097433.44046 25421664.39047 25421663.69745 25421696.68146
+ 133591617.89647 95.00047 6.00045 11.00046
+ 112753584.13348 87859984.19248 21456297.79748 21456297.97348 21456312.81048
+ 112753582.63348 413.00048 119.00048 131.00048
+ 114793987.62848 89449925.76248 21844566.72248 21844567.23248 21844581.57148
+ 114793985.12548 425.00048 135.00048 119.00048
+ 123462769.31346 96204801.03346 23494199.37248 23494199.02446 23494221.20146
+ 123462768.79748 132.00048 13.00046 25.00046
+ 123755951.42946 96433279.32946 23549981.40748 23549981.30146 23550003.20546
+ 123755950.91448 219.00048 34.00046 40.00046
+ 111194976.05548 86645489.18448 21159700.63648 21159700.96148 21159714.44348
+ 111194974.55448 467.00048 159.00048 180.00048
+ 03 10 31 0 4 50.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 107014225.79348 83387753.12548 20364132.39949 20364133.01748 20364145.92748
+ 107014222.28649 688.00049 322.00048 313.00048
+ 117282116.89347 91388722.77647 22318050.44148 22318050.09747 22318068.70847
+ 117282118.39448 316.00048 77.00047 77.00047
+ 112653162.45548 87781732.22848 21437188.95348 21437188.88548 21437203.73748
+ 112653161.95048 429.00048 139.00048 144.00048
+ 129162908.16946 100646476.81246 24578899.85848 24578899.32046 24578922.57246
+ 129162910.66448 182.00048 24.00046 26.00046
+ 133905737.97144 104342195.48646 25481442.17447 25481444.41344 25481477.18146
+ 133905735.47747 91.00047 4.00044 11.00046
+ 113036222.74748 88080220.94148 21510082.92248 21510083.17048 21510098.30448
+ 113036221.24348 400.00048 113.00048 126.00048
+ 114754952.16348 89419507.63948 21837139.16948 21837139.73748 21837154.26148
+ 114754949.65648 427.00048 136.00048 120.00048
+ 123778969.48546 96451188.08246 23554372.64248 23554372.31946 23554394.03646
+ 123778968.95848 128.00048 12.00046 24.00046
+ 123512324.99746 96243439.51246 23503621.55348 23503621.81546 23503643.20546
+ 123512324.48648 225.00048 37.00046 39.00046
+ 111287130.51148 86717296.94448 21177237.77048 21177238.17148 21177251.65748
+ 111287129.01048 462.00048 155.00048 177.00048
+ 03 10 31 0 5 0.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 107107708.06348 83460595.55048 20381922.14749 20381922.76248 20381935.91148
+ 107107704.55549 684.00049 319.00048 306.00048
+ 116993402.57947 91163749.74647 22263110.76648 22263110.41947 22263129.07647
+ 116993404.07448 322.00048 79.00047 83.00047
+ 112830064.43348 87919576.69848 21470853.18948 21470853.17948 21470868.34548
+ 112830063.92848 428.00048 136.00048 141.00048
+ 129511182.51446 100917856.39446 24645176.65248 24645176.15846 24645199.70946
+ 129511185.02348 176.00048 22.00046 24.00046
+ 134220394.43344 104587377.13545 25541323.42647 25541322.58044 25541357.54645
+ 134220391.94747 89.00047 4.00044 10.00045
+ 113321580.60148 88302576.52848 21564385.64348 21564385.82448 21564401.24048
+ 113321579.09948 389.00048 105.00048 125.00048
+ 114721354.90548 89393327.02348 21830746.55248 21830747.00948 21830761.86748
+ 114721352.39848 429.00048 135.00048 119.00048
+ 124097268.17246 96699210.25046 23614944.85448 23614944.05346 23614967.15146
+ 124097267.68448 125.00048 11.00046 23.00046
+ 123271672.68546 96055917.14346 23457827.75348 23457827.76646 23457850.07046
+ 123271672.18648 228.00048 40.00046 41.00046
+ 111385074.63548 86793616.07948 21195876.60348 21195877.06148 21195890.87348
+ 111385073.13248 457.00048 154.00048 173.00048
+ 03 10 31 0 5 10.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 107205121.52548 83536501.16048 20400460.08249 20400460.66248 20400474.04048
+ 107205118.01849 678.00049 313.00048 303.00048
+ 116707346.76147 90940848.22147 22208676.68848 22208676.46847 22208695.40747
+ 116707348.26248 329.00048 83.00047 88.00047
+ 113012007.20648 88061348.96748 21505476.66748 21505476.72248 21505492.19648
+ 113012006.69948 429.00048 137.00048 140.00048
+ 129860854.03846 101190324.46846 24711719.37048 24711718.69346 24711743.38246
+ 129860856.51648 170.00048 21.00046 23.00046
+ 134535556.94044 104832952.69045 25601300.90947 25601300.22744 25601334.97345
+ 134535554.41447 86.00047 4.00044 10.00045
+ 113609608.16248 88527012.32648 21619196.41148 21619196.62848 21619212.19148
+ 113609606.65648 381.00048 102.00048 118.00048
+ 114693210.97048 89371395.67348 21825391.60448 21825392.23948 21825407.20248
+ 114693208.46448 430.00048 137.00048 119.00048
+ 124417595.80746 96948813.19846 23675903.12048 23675902.78146 23675926.76246
+ 124417595.28348 121.00048 11.00046 22.00046
+ 123034037.91846 95870746.02946 23412608.28548 23412608.21146 23412630.67146
+ 123034037.41648 233.00048 41.00046 42.00046
+ 111488782.49548 86874426.36748 21215612.29348 21215612.64848 21215626.79148
+ 111488780.99348 452.00048 150.00048 171.00048
+ 03 10 31 0 5 20.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 107306442.03048 83615451.13248 20419741.52649 20419742.10448 20419755.76748
+ 107306438.52449 672.00049 308.00048 296.00048
+ 116423998.26347 90720056.24647 22154758.03748 22154757.78947 22154776.77747
+ 116423999.76648 334.00048 85.00047 91.00047
+ 113198934.68648 88207005.31948 21541049.00348 21541048.98148 21541064.81248
+ 113198934.18348 426.00048 136.00048 138.00048
+ 130211869.26746 101463839.46746 24778517.76448 24778517.71146 24778542.94246
+ 130211871.77048 163.00048 19.00046 20.00046
+ 134851192.65844 105078896.64846 25661369.51947 25661368.82144 25661405.22246
+ 134851190.11247 82.00047 4.00044 11.00046
+ 113900255.83947 88753489.67848 21674505.84648 21674506.00547 21674522.00848
+ 113900254.33848 374.00048 97.00047 114.00048
+ 114670533.70248 89353723.97948 21821077.04748 21821077.71848 21821092.92748
+ 114670531.19748 429.00048 137.00048 119.00048
+ 124739882.85446 97199942.85046 23737235.07148 23737235.04846 23737258.99546
+ 124739882.34348 118.00048 11.00046 21.00046
+ 122799463.67246 95687959.60946 23367971.18048 23367971.35146 23367994.17846
+ 122799463.16648 237.00048 43.00046 42.00046
+ 111598226.51348 86959706.30348 21236439.71148 21236440.09048 21236454.38548
+ 111598225.00748 448.00048 144.00048 170.00048
+ 03 10 31 0 5 30.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 107411644.72248 83697426.07248 20439761.85449 20439762.42948 20439776.35448
+ 107411641.21649 667.00049 303.00048 294.00048
+ 116143405.85547 90501411.80447 22101363.84648 22101363.53047 22101383.04747
+ 116143407.35048 339.00048 89.00047 95.00047
+ 113390789.75048 88356501.17848 21577558.98448 21577558.91348 21577575.12848
+ 113390789.24248 424.00048 136.00048 136.00048
+ 130564175.09146 101738359.85446 24845562.02848 24845561.76546 24845588.08646
+ 130564177.57548 157.00048 17.00046 23.00046
+ 135167268.70745 105325183.53846 25721520.94847 25721522.46745 25721561.45046
+ 135167266.32047 80.00047 6.00045 11.00046
+ 114193474.10347 88981969.95148 21730304.47448 21730304.76547 21730321.14848
+ 114193472.59948 370.00048 95.00047 109.00048
+ 114653334.86048 89340321.07848 21817805.18848 21817805.76248 21817821.27148
+ 114653332.35348 430.00048 137.00048 121.00048
+ 125064060.09545 97452545.15746 23798926.40148 23798926.88245 23798950.77746
+ 125064059.59248 114.00048 10.00045 19.00046
+ 122567992.56346 95507591.12446 23323924.58648 23323924.83346 23323947.82446
+ 122567992.06948 242.00048 44.00046 44.00046
+ 111713377.34348 87049433.00748 21258353.07848 21258353.49448 21258368.13448
+ 111713375.84148 445.00048 144.00048 168.00048
+ 03 10 31 0 5 40.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 107520704.04548 83782406.06248 20460516.08949 20460516.70048 20460530.98348
+ 107520700.53849 663.00049 299.00048 288.00048
+ 115865618.23147 90284952.86647 22048503.45648 22048503.20047 22048522.78147
+ 115865619.73048 344.00048 91.00047 99.00047
+ 113587514.17048 88509791.17348 21614995.77748 21614995.71748 21615012.27748
+ 113587513.66348 419.00048 131.00048 133.00048
+ 130917718.37646 102013844.28946 24912841.99748 24912842.00046 24912868.88546
+ 130917720.87148 151.00048 16.00046 20.00046
+ 114489213.32547 89212414.45848 21786583.06748 21786583.22647 21786600.09748
+ 114489211.82548 367.00048 94.00047 106.00048
+ 114641624.61548 89331194.90548 21815577.78548 21815578.41148 21815594.29448
+ 114641622.11448 430.00048 137.00048 121.00048
+ 125390058.33645 97706566.20746 23860964.64248 23860964.14545 23860990.18646
+ 125390057.82948 110.00048 10.00045 19.00046
+ 122339666.64746 95329673.32746 23280476.83448 23280477.02446 23280500.67746
+ 122339666.15248 247.00048 46.00046 44.00046
+ 111834203.77748 87143582.14248 21281346.66848 21281346.98048 21281361.96248
+ 111834202.27548 443.00048 144.00048 164.00048
+ 03 10 31 0 5 50.0000000 0 10G 4G 7G 8G10G17G24G26G27G28G29
+ 107633593.76148 83870370.64348 20481999.41849 20482000.00548 20482014.64548
+ 107633590.25549 659.00049 296.00048 284.00048
+ 115590683.88147 90070717.20948 21996186.00648 21996185.79447 21996205.56848
+ 115590685.38148 347.00048 94.00047 103.00048
+ 113789048.65448 88666829.07248 21653347.91448 21653347.75548 21653364.96648
+ 113789048.14848 413.00048 128.00048 131.00048
+ 131272446.29146 102290251.50946 24980347.64648 24980346.73746 24980375.93546
+ 131272448.77548 144.00048 16.00046 20.00046
+ 135800884.60853 105819045.51055 25842052.96547 25842049.17043 25842091.84745
+ 135800904.17157 74.00047 3.00043 10.00045
+ 114787423.88847 89444784.51447 21843332.01248 21843332.12947 21843349.41347
+ 114787422.39048 363.00048 93.00047 99.00047
+ 114635411.46848 89326352.04748 21814396.60448 21814397.13948 21814413.40248
+ 114635408.96548 430.00048 138.00048 123.00048
+ 125717808.56045 97961952.13546 23923336.09148 23923334.76645 23923363.34146
+ 125717808.07848 107.00048 9.00045 20.00046
+ 122114527.60046 95154238.64346 23237635.40548 23237635.53746 23237659.94646
+ 122114527.10048 252.00048 49.00046 44.00046
+ 111960673.14648 87242128.24448 21305414.07848 21305414.42348 21305429.71848
+ 111960671.64248 441.00048 143.00048 163.00048
+ 03 10 31 0 6 0.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 107750287.00848 83961298.87648 20504206.52649 20504207.14648 20504222.10948
+ 107750283.50049 655.00049 291.00048 281.00048
+ 115318651.12147 89858742.48848 21944420.77348 21944420.50647 21944440.67448
+ 115318652.62248 352.00048 94.00047 106.00048
+ 113995332.94848 88827567.92548 21692604.17648 21692604.09448 21692621.79948
+ 113995332.44348 405.00048 122.00048 129.00048
+ 131628306.06946 102567540.40246 25048068.76248 25048068.97646 25048098.02746
+ 131628308.57848 138.00048 14.00046 20.00046
+ 115088056.23247 89679041.49547 21900541.94148 21900542.05047 21900559.93247
+ 115088054.72248 359.00048 90.00047 93.00047
+ 114634702.11448 89325797.70948 21814262.87848 21814263.27448 21814280.03448
+ 114634699.60948 430.00048 135.00048 124.00048
+ 126047242.19945 98218649.44646 23986028.67648 23986028.29645 23986056.14546
+ 126047241.70548 104.00048 9.00045 18.00046
+ 121892616.68146 94981319.29246 23195408.68348 23195408.67346 23195433.06546
+ 121892616.17648 256.00048 49.00046 45.00046
+ 112092751.09948 87345044.52948 21330548.87148 21330549.23648 21330564.92448
+ 112092749.59648 440.00048 141.00048 158.00048
+ 03 10 31 0 6 10.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 107870756.06848 84055169.15548 20527132.40249 20527132.96248 20527148.35848
+ 107870752.56149 652.00049 287.00048 274.00048
+ 115049568.22647 89649066.31948 21893216.87048 21893216.78047 21893237.04348
+ 115049569.72848 357.00048 98.00047 107.00048
+ 114206305.68848 88991959.86648 21732752.70148 21732752.64548 21732770.93348
+ 114206305.18348 398.00048 118.00048 124.00048
+ 131985245.38446 102845670.10546 25115995.98748 25115994.98746 25116025.23046
+ 131985247.86948 132.00048 11.00046 20.00046
+ 115391060.77647 89915146.72847 21958203.46048 21958203.74147 21958221.93047
+ 115391059.27348 354.00048 88.00047 89.00047
+ 114639501.72648 89329535.90648 21815177.42348 21815178.00348 21815195.19948
+ 114639499.22348 428.00048 137.00048 123.00048
+ 126378290.50745 98476604.48746 24049027.87048 24049028.05245 24049055.34546
+ 126378289.99648 102.00048 6.00045 17.00046
+ 121673974.41747 94810946.85146 23153803.78648 23153803.90647 23153828.75146
+ 121673973.92148 260.00048 51.00047 46.00046
+ 112230401.69648 87452302.97248 21356744.25148 21356744.64548 21356760.75748
+ 112230400.19448 437.00048 139.00048 155.00048
+ 03 10 31 0 6 20.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 107994972.76848 84151959.52648 20550771.40149 20550772.03848 20550787.85448
+ 107994969.26249 647.00049 284.00048 270.00048
+ 114783483.16348 89441726.08248 21842583.43148 21842583.16848 21842603.94048
+ 114783484.66448 364.00048 102.00048 110.00048
+ 114421904.63848 89159956.36348 21773781.84048 21773781.76448 21773800.77348
+ 114421904.13148 393.00048 115.00048 120.00048
+ 132343211.89246 103124599.85646 25184118.58948 25184117.58746 25184149.97146
+ 132343214.38348 126.00048 12.00046 17.00046
+ 115696388.05347 90153061.66947 22016307.11048 22016307.30247 22016326.20947
+ 115696386.55248 348.00048 82.00047 86.00047
+ 114649813.68048 89337569.23948 21817141.21848 21817141.70748 21817159.37248
+ 114649811.17648 428.00048 135.00048 122.00048
+ 126710885.20045 98735764.04346 24112322.62947 24112322.45045 24112352.71346
+ 126710884.72747 99.00047 7.00045 15.00046
+ 121458641.04247 94643152.70946 23112828.79848 23112828.74847 23112854.30446
+ 121458640.54148 264.00048 52.00047 46.00046
+ 112373587.41948 87563874.29348 21383993.04248 21383993.32048 21384009.95248
+ 112373585.91648 433.00048 136.00048 152.00048
+ 03 10 31 0 6 30.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108122908.22548 84251647.50048 20575118.21549 20575118.85548 20575135.17148
+ 108122904.71849 642.00049 279.00048 262.00048
+ 114520443.75048 89236759.03948 21792529.72848 21792529.51948 21792550.47248
+ 114520445.24948 371.00048 105.00048 116.00048
+ 114642066.89848 89331508.41348 21815679.54948 21815679.43248 21815699.19548
+ 114642066.39148 387.00048 112.00048 116.00048
+ 132702153.54445 103404288.98246 25252427.15248 25252426.13145 25252458.46546
+ 132702156.04348 121.00048 9.00045 15.00046
+ 116003988.52547 90392747.65047 22074843.57248 22074843.74547 22074863.25447
+ 116003987.02348 341.00048 83.00047 80.00047
+ 114665639.76048 89349899.07148 21820154.40948 21820155.04248 21820173.20748
+ 114665637.25248 427.00048 136.00048 122.00048
+ 127044958.36645 98996075.06246 24175899.35047 24175899.22645 24175930.73546
+ 127044957.88447 96.00047 7.00045 18.00046
+ 121246656.16647 94477967.76247 23072490.78048 23072490.75047 23072516.89747
+ 121246655.66648 266.00048 54.00047 51.00047
+ 112522269.23548 87679728.04548 21412287.83248 21412288.37348 21412305.39648
+ 112522267.73548 427.00048 132.00048 152.00048
+ 03 10 31 0 6 40.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108254532.94448 84354210.08048 20600167.21249 20600167.78648 20600184.62748
+ 108254529.43749 636.00049 273.00048 256.00048
+ 114260497.56648 89034202.27448 21743064.44348 21743064.27548 21743085.68448
+ 114260499.06448 378.00048 111.00048 115.00048
+ 114866728.56748 89506566.24348 21858433.66048 21858433.62848 21858453.99048
+ 114866728.06348 385.00048 110.00048 111.00048
+ 133062018.48645 103684697.04946 25320911.66548 25320910.72045 25320946.49146
+ 133062021.01448 116.00048 8.00045 17.00046
+ 116313812.56147 90634165.92047 22133803.57848 22133803.68147 22133823.97147
+ 116313811.06148 333.00048 77.00047 78.00047
+ 114686980.10448 89366525.52648 21824217.13148 21824217.70248 21824236.41848
+ 114686977.59748 427.00048 133.00048 123.00048
+ 127380441.98845 99257484.40646 24239744.65247 24239743.88645 24239777.71946
+ 127380441.51347 93.00047 6.00045 16.00046
+ 121038058.74047 94315422.36247 23032797.50548 23032797.38547 23032823.87747
+ 121038058.23648 270.00048 53.00047 53.00047
+ 112676406.64848 87799832.64048 21441621.17548 21441621.47148 21441639.21648
+ 112676405.14748 420.00048 124.00048 144.00048
+ 03 10 31 0 6 50.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108389817.01048 84459624.01348 20625912.58349 20625913.18048 20625930.58648
+ 108389813.50649 628.00049 268.00048 252.00048
+ 114003692.09548 88834092.83648 21694196.98948 21694196.69748 21694218.53948
+ 114003693.59548 385.00048 114.00048 120.00048
+ 115095825.04648 89685079.58148 21902031.81048 21902031.86248 21902053.08248
+ 115095824.54048 383.00048 107.00048 108.00048
+ 133422755.27045 103965783.83146 25389563.03848 25389561.79445 25389599.32646
+ 133422757.76648 111.00048 9.00045 16.00046
+ 116625810.69047 90877277.84947 22193177.49348 22193177.49047 22193198.67347
+ 116625809.18748 324.00048 74.00047 72.00047
+ 114713833.29648 89387447.54448 21829329.08648 21829329.57348 21829348.98348
+ 114713830.78948 427.00048 133.00048 120.00048
+ 127717268.59344 99519939.27946 24303845.71447 24303845.74244 24303878.19046
+ 127717268.04147 91.00047 5.00044 14.00046
+ 120832887.36347 94155546.64647 22993756.06248 22993755.97247 22993783.00547
+ 120832886.85848 273.00048 54.00047 53.00047
+ 112835957.65048 87924155.36648 21471984.68248 21471985.08648 21472003.52748
+ 112835956.14948 413.00048 124.00048 143.00048
+ 03 10 31 0 7 0.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108528729.87948 84567865.59348 20652348.53549 20652349.10148 20652366.99748
+ 108528726.37549 621.00049 261.00048 248.00048
+ 113750074.46648 88636467.47948 21645936.09648 21645936.05448 21645957.89748
+ 113750075.96048 393.00048 118.00048 123.00048
+ 115329291.07748 89866997.69448 21946461.65048 21946461.45248 21946483.67248
+ 115329290.57148 381.00048 108.00048 105.00048
+ 133784312.40645 104247509.21446 25458370.55548 25458368.42545 25458407.37146
+ 133784314.88648 105.00048 8.00045 15.00046
+ 116939933.74547 91122045.16947 22252956.00748 22252956.02847 22252977.98447
+ 116939932.24448 314.00048 67.00047 72.00047
+ 114746196.26348 89412662.81548 21835489.51048 21835490.05248 21835510.18948
+ 114746193.75848 425.00048 133.00048 120.00048
+ 128055370.38744 99783386.86246 24368190.70347 24368190.05344 24368225.21446
+ 128055369.94947 90.00047 5.00044 12.00046
+ 120631179.81847 93998370.07047 22955373.89248 22955373.92347 22955401.25747
+ 120631179.32048 275.00048 58.00047 55.00047
+ 113000878.91748 88052662.52648 21503370.50148 21503370.81048 21503389.95248
+ 113000877.41648 408.00048 122.00048 139.00048
+ 03 10 31 0 7 10.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108671240.43148 84678910.63348 20679468.93349 20679469.54748 20679487.95048
+ 108671236.92649 613.00049 254.00048 243.00048
+ 113499691.52548 88441362.74348 21598290.68948 21598290.54048 21598312.73448
+ 113499693.02448 402.00048 125.00048 127.00048
+ 115567060.85648 90052269.41847 21991710.33348 21991710.25348 21991733.09247
+ 115567060.35048 378.00048 106.00048 100.00047
+ 134146638.64544 104529833.11746 25527325.06148 25527322.97944 25527364.04746
+ 134146641.12548 101.00048 5.00044 15.00046
+ 117256132.79647 91368429.82947 22313129.84448 22313129.96847 22313153.01947
+ 117256131.29648 304.00048 64.00047 68.00047
+ 114784064.44348 89442167.91148 21842697.53048 21842698.10648 21842718.80348
+ 114784061.93848 423.00048 131.00048 120.00048
+ 128394680.86645 100047774.94546 24432766.99647 24432763.90645 24432805.93346
+ 128394680.38747 87.00047 6.00045 15.00046
+ 120432973.80947 93843922.30847 22917657.76348 22917657.58547 22917685.16947
+ 120432973.30948 278.00048 59.00047 58.00047
+ 113171125.85748 88185319.46948 21535769.59048 21535769.98548 21535789.84248
+ 113171124.35448 404.00048 116.00048 135.00048
+ 03 10 31 0 7 20.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108817316.87448 84792734.39748 20707267.89949 20707268.53348 20707287.44248
+ 108817313.36849 606.00049 247.00048 237.00048
+ 113252589.93248 88248815.04748 21551269.64148 21551269.31148 21551291.83648
+ 113252591.43048 409.00048 129.00048 131.00048
+ 115809067.65048 90240842.91548 22037764.99448 22037765.00948 22037788.75748
+ 115809067.14748 376.00048 104.00048 101.00048
+ 134509683.12344 104812715.81546 25596417.05447 25596414.53744 25596457.06846
+ 134509685.63947 97.00047 5.00044 12.00046
+ 117574359.10747 91616394.01647 22373689.53648 22373689.66847 22373713.68247
+ 117574357.60848 294.00048 60.00047 66.00047
+ 114827431.56948 89475958.09348 21850951.85548 21850952.33648 21850973.63848
+ 114827429.06248 422.00048 133.00048 120.00048
+ 128735133.18544 100313051.57746 24497560.86447 24497559.65744 24497604.42146
+ 128735132.69847 85.00047 4.00044 14.00046
+ 120238305.54647 93692231.42447 22880614.44948 22880614.48247 22880642.43747
+ 120238305.04248 283.00048 59.00047 57.00047
+ 113346652.59048 88322090.62848 21569173.36148 21569173.80648 21569194.41148
+ 113346651.08948 400.00048 116.00048 134.00048
+ 03 10 31 0 7 30.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 108966927.00248 84909311.80848 20735739.19049 20735739.81548 20735759.30048
+ 108966923.49649 599.00049 242.00048 233.00048
+ 113008815.82648 88058860.31748 21504881.58048 21504881.29348 21504903.99548
+ 113008817.32748 417.00048 133.00048 136.00048
+ 116055244.24948 90432665.86547 22084613.19348 22084613.09448 22084637.58647
+ 116055243.74348 371.00048 101.00048 97.00047
+ 134873395.50545 105096118.15046 25665636.21747 25665633.55445 25665678.50746
+ 134873398.01547 92.00047 6.00045 14.00046
+ 117894564.18747 91865900.17747 22434625.72948 22434626.02247 22434651.06747
+ 117894562.68748 286.00048 57.00047 63.00047
+ 114876289.59148 89514027.21048 21860250.71548 21860251.32848 21860273.02748
+ 114876287.08948 420.00048 129.00048 120.00048
+ 129076661.81644 100579165.77946 24562560.84347 24562559.76444 24562605.22746
+ 129076661.29247 83.00047 5.00044 12.00046
+ 120047211.24147 93543325.80147 22844251.20848 22844250.98347 22844279.65847
+ 120047210.73748 287.00048 61.00047 59.00047
+ 113527411.99148 88462939.47748 21603572.77748 21603573.20048 21603594.40848
+ 113527410.48848 397.00048 114.00048 129.00048
+ 03 10 31 0 7 40.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 109120038.03748 85028617.38348 20764876.55149 20764877.18248 20764897.03248
+ 109120034.53149 593.00049 239.00048 229.00048
+ 112768414.89848 87871534.09848 21459135.36448 21459135.10348 21459158.17748
+ 112768416.39348 425.00048 137.00048 143.00048
+ 116305522.16347 90627684.81147 22132241.72948 22132241.61347 22132266.65247
+ 116305521.65848 365.00048 98.00047 96.00047
+ 135237725.72244 105380001.00546 25734974.33347 25734971.42544 25735021.44846
+ 135237728.18147 87.00047 5.00044 11.00046
+ 118216699.51347 92116910.68847 22495929.13848 22495929.22547 22495955.48947
+ 118216698.00948 278.00048 54.00047 60.00047
+ 114930628.62148 89556367.50848 21870592.55248 21870593.06448 21870615.34048
+ 114930626.11648 418.00048 128.00048 118.00048
+ 129419201.51544 100846068.06246 24627752.64447 24627751.85944 24627796.91446
+ 129419200.99547 81.00047 4.00044 12.00046
+ 119859725.23747 93397231.81347 22808574.72648 22808574.57747 22808603.00747
+ 119859724.73248 291.00048 62.00047 58.00047
+ 113713355.36848 88607828.15948 21638958.38448 21638958.80248 21638980.42748
+ 113713353.86648 395.00048 113.00048 125.00048
+ 03 10 31 0 7 50.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 109276616.18948 85150624.57548 20794673.74949 20794674.34048 20794694.62948
+ 109276612.68449 586.00049 233.00048 227.00048
+ 112531432.57548 87686871.70748 21414039.73148 21414039.56448 21414062.78048
+ 112531434.07048 432.00048 143.00048 150.00048
+ 116559832.41747 90825845.84747 22180637.40348 22180637.21547 22180662.99547
+ 116559831.91248 358.00048 96.00047 93.00047
+ 135602623.94044 105664325.96045 25804420.89647 25804418.28444 25804471.44445
+ 135602626.42347 84.00047 4.00044 10.00045
+ 118540716.74747 92369388.00447 22557590.26648 22557590.40247 22557617.63647
+ 118540715.24548 272.00048 52.00047 59.00047
+ 114990436.83748 89602969.58948 21881975.00348 21881975.50248 21881998.05048
+ 114990434.33248 415.00048 129.00048 120.00048
+ 129762687.45544 101113706.28446 24693126.45347 24693122.06244 24693176.29646
+ 129762687.08247 79.00047 4.00044 11.00046
+ 119675882.95847 93253977.53047 22773591.09848 22773591.07247 22773619.62147
+ 119675882.45548 295.00048 64.00047 63.00047
+ 113904432.32848 88756717.24848 21675320.63348 21675321.03348 21675343.24548
+ 113904430.82848 393.00048 111.00048 122.00048
+ 03 10 31 0 8 0.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 109436627.31648 85275306.69348 20825124.24749 20825124.84048 20825145.64048
+ 109436623.81049 581.00049 227.00048 220.00048
+ 112297913.81148 87504908.10148 21369603.38848 21369603.16348 21369626.57848
+ 112297915.31048 439.00048 148.00048 156.00048
+ 116818105.26247 91027094.38547 22229787.34448 22229787.20647 22229813.77247
+ 116818104.75648 351.00048 91.00047 92.00047
+ 135968040.64043 105949054.23946 25873966.30347 25873963.96943 25874016.43846
+ 135968043.13747 79.00047 3.00043 12.00046
+ 118866567.18846 92623294.09847 22619600.05848 22619600.43046 22619628.05647
+ 118866565.68248 266.00048 48.00046 57.00047
+ 115055700.59948 89653822.59948 21894395.56348 21894396.21448 21894419.31948
+ 115055698.09448 414.00048 127.00048 120.00048
+ 130107055.15144 101382031.03046 24758668.18547 24758666.29644 24758722.62346
+ 130107054.71947 76.00047 5.00044 13.00046
+ 119495716.91547 93113587.65047 22739307.22648 22739307.10847 22739335.82047
+ 119495716.41448 300.00048 65.00047 64.00047
+ 114100591.04948 88909566.11248 21712649.94448 21712650.45948 21712673.03648
+ 114100589.54748 389.00048 109.00048 120.00048
+ 03 10 31 0 8 10.0000000 0 9G 4G 7G 8G10G24G26G27G28G29
+ 109600036.61448 85402636.30148 20856221.72849 20856222.32848 20856243.72448
+ 109600033.10949 573.00049 222.00048 217.00048
+ 112067903.46148 87325678.28648 21325834.64448 21325834.41348 21325857.99748
+ 112067904.95848 447.00048 154.00048 159.00048
+ 117080270.58947 91231375.58847 22279678.33648 22279678.15847 22279705.64447
+ 117080270.08448 342.00048 86.00047 89.00047
+ 136333926.39543 106234147.40545 25943602.21647 25943599.33643 25943656.72545
+ 136333928.98847 75.00047 3.00043 9.00045
+ 119194201.89246 92878590.56147 22681949.47048 22681949.40946 22681978.24047
+ 119194200.39848 262.00048 49.00046 57.00047
+ 115126404.74448 89708914.53148 21907851.90148 21907852.38648 21907875.92048
+ 115126402.23848 412.00048 124.00048 119.00048
+ 130452239.02143 101650992.09645 24824365.43947 24824361.49543 24824420.57645
+ 130452239.05247 74.00047 3.00043 9.00045
+ 119319259.42847 92976086.97447 22705729.28448 22705729.45447 22705758.45747
+ 119319258.92548 305.00048 68.00047 65.00047
+ 114301778.50548 89066333.15248 21750936.51848 21750936.88948 21750960.32448
+ 114301777.00448 384.00048 106.00048 116.00048
+ 03 10 31 0 8 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 109766809.65448 85532586.83248 20887959.55149 20887960.06048 20887981.98348
+ 109766806.14949 566.00049 216.00048 214.00048
+ 111841446.05248 87149217.04548 21282741.91248 21282741.65448 21282765.46848
+ 111841447.54748 455.00048 157.00048 167.00048
+ 117346257.77347 91438634.32447 22330297.05748 22330296.90747 22330325.26547
+ 117346257.27148 335.00048 83.00047 87.00047
+ 119468854.94857 93092744.03956 22734167.21848 22734167.31747 22734198.92346
+ 119468854.44058 270.00048 61.00047 46.00046
+ 119523572.05146 93135238.98647 22744629.27948 22744629.51346 22744658.97547
+ 119523570.54648 258.00048 45.00046 55.00047
+ 115202532.73548 89768232.44048 21922340.55548 21922341.04748 21922365.28448
+ 115202530.23448 410.00048 121.00048 117.00048
+ 119146543.55547 92841501.69047 22672863.76648 22672863.81347 22672893.05247
+ 119146543.04948 307.00048 70.00047 64.00047
+ 114507940.68848 89226976.14848 21790170.03048 21790170.34848 21790194.38348
+ 114507939.18748 378.00048 101.00048 115.00048
+ 03 10 31 0 8 30.0000000 0 9G 4G 7G 8G 9G24G26G27G28G29
+ 109936910.97348 85665130.45248 20920330.90449 20920331.47448 20920354.11548
+ 109936907.46749 560.00049 209.00048 208.00048
+ 111618585.55748 86975558.71948 21240333.54948 21240333.39948 21240357.35648
+ 111618587.05548 462.00048 162.00048 175.00048
+ 117615996.41647 91648815.78647 22381629.95348 22381629.84047 22381659.46547
+ 117615995.90948 328.00048 80.00047 82.00047
+ 119132535.52547 92830677.56546 22670167.23548 22670167.57147 22670198.79246
+ 119132535.02148 276.00048 64.00047 50.00046
+ 119854629.21946 93393201.44447 22807630.47948 22807630.63346 22807661.14447
+ 119854627.71448 255.00048 44.00046 55.00047
+ 115284066.55048 89831762.21448 21937858.26148 21937858.68848 21937883.59848
+ 115284064.04548 408.00048 123.00048 118.00048
+ 131145568.94353 102191641.94155 24956178.17747 24956172.14943 24956242.71645
+ 131145601.45557 69.00047 3.00043 9.00045
+ 118977600.87147 92709856.41647 22640716.28448 22640716.36147 22640746.04247
+ 118977600.35948 311.00048 72.00047 68.00047
+ 114719022.81947 89391452.41748 21830340.09148 21830340.36247 21830365.28848
+ 114719021.32148 371.00048 98.00047 111.00048
+ 03 10 31 0 8 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 110110303.97648 85800238.23348 20953329.19149 20953329.73748 20953353.33448
+ 110110300.47149 553.00049 206.00048 203.00048
+ 111399365.77148 86804737.55748 21198617.80148 21198617.62148 21198641.80848
+ 111399367.27048 469.00048 168.00048 179.00048
+ 117889415.00447 91861864.03347 22433663.68448 22433663.60947 22433694.22747
+ 117889414.49948 322.00048 76.00047 80.00047
+ 118799087.21647 92570848.70247 22606713.42148 22606713.82947 22606744.88747
+ 118799086.71148 284.00048 67.00047 51.00047
+ 120187325.34946 93652440.38747 22870943.99548 22870944.36146 22870975.82747
+ 120187323.85448 253.00048 45.00046 53.00047
+ 115370986.45648 89899488.41648 21954401.21248 21954401.71548 21954427.50448
+ 115370983.95348 406.00048 120.00048 117.00048
+ 118812463.06447 92581176.35347 22609292.49448 22609292.67047 22609322.71447
+ 118812462.55948 314.00048 72.00047 67.00047
+ 114934968.49947 89559717.76548 21871436.34348 21871436.52947 21871462.38848
+ 114934967.00148 364.00048 95.00047 108.00048
+ 03 10 31 0 8 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 110286952.60548 85937882.06848 20986947.62249 20986948.24448 20986972.82948
+ 110286949.09849 546.00049 201.00048 197.00048
+ 111183829.97248 86636787.48448 21157602.85548 21157602.62148 21157626.78548
+ 111183831.47048 476.00048 174.00048 186.00048
+ 118166441.81647 92077723.05247 22486384.79748 22486384.56847 22486416.84747
+ 118166441.31148 315.00048 75.00047 76.00047
+ 118468590.69347 92313320.56247 22543820.91648 22543821.20047 22543851.77847
+ 118468590.18748 289.00048 71.00047 56.00047
+ 120521612.32946 93912918.08847 22934560.92948 22934561.21346 22934594.19547
+ 120521610.82748 252.00048 44.00046 52.00047
+ 115463271.23348 89971394.48048 21971965.60548 21971966.08448 21971992.86848
+ 115463268.73148 404.00048 119.00048 114.00048
+ 118651161.08047 92455486.11947 22578598.07448 22578598.12147 22578628.53147
+ 118651160.57448 318.00048 75.00047 68.00047
+ 115155720.71347 89731727.73148 21913447.55448 21913447.73047 21913474.83348
+ 115155719.21448 358.00048 90.00047 107.00048
+ 03 10 31 0 9 0.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 110466819.42548 86078032.25048 21021179.53049 21021180.07048 21021206.09248
+ 110466815.91849 539.00049 196.00048 192.00048
+ 110972021.16548 86471742.27348 21117296.41248 21117296.26648 21117320.25248
+ 110972022.66348 485.00048 181.00048 187.00048
+ 118447004.52547 92296336.17047 22539779.39848 22539779.10247 22539813.30547
+ 118447004.02348 310.00048 71.00047 72.00047
+ 118141126.80247 92058156.41647 22481504.54648 22481504.89447 22481535.14447
+ 118141126.29948 296.00048 72.00047 57.00047
+ 120857442.25046 94174597.03146 22998472.31248 22998472.46846 22998507.31146
+ 120857440.74648 249.00048 42.00046 50.00046
+ 115560898.21248 90047462.68648 21990546.88748 21990547.31748 21990575.50248
+ 115560895.70948 402.00048 118.00048 114.00048
+ 118493725.03047 92332809.68147 22548638.21548 22548638.28347 22548668.36447
+ 118493724.52848 323.00048 77.00047 72.00047
+ 115381221.37947 89907436.97148 21956363.06448 21956363.42447 21956391.65948
+ 115381219.88048 352.00048 88.00047 102.00048
+ 03 10 31 0 9 10.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 110649872.41748 86220666.28248 21056016.87349 21056017.43348 21056044.58548
+ 110649868.91149 533.00049 191.00048 189.00048
+ 110763982.20748 86309635.75648 21077706.68748 21077706.52748 21077730.00148
+ 110763983.70548 494.00048 187.00048 193.00048
+ 118731029.04347 92517644.65947 22593834.51148 22593834.31847 22593870.58847
+ 118731028.53848 304.00048 67.00047 70.00047
+ 117816777.05147 91805420.35447 22419779.89848 22419780.23047 22419809.32947
+ 117816776.54548 302.00048 74.00047 60.00047
+ 121194767.06046 94437439.35146 23062669.24248 23062669.13246 23062706.08546
+ 121194765.55648 247.00048 42.00046 48.00046
+ 115663844.19748 90127675.58448 22010140.46248 22010140.95848 22010170.27148
+ 115663841.69248 398.00048 116.00048 113.00048
+ 118340183.21047 92213169.10147 22519418.38848 22519418.50247 22519447.94447
+ 118340182.69748 327.00048 78.00047 72.00047
+ 115611409.91847 90086797.43547 22000171.96748 22000172.27047 22000202.36547
+ 115611408.42248 347.00048 86.00047 100.00047
+ 03 10 31 0 9 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 110836080.34348 86365762.79948 21091451.54249 21091452.18248 21091479.50848
+ 110836076.83649 526.00049 188.00048 182.00048
+ 110559755.21548 86150501.14748 21038841.14149 21038840.93348 21038863.73748
+ 110559756.71349 503.00049 192.00048 197.00048
+ 119018447.27247 92741597.54947 22648535.48948 22648535.21347 22648573.81247
+ 119018446.77348 298.00048 64.00047 65.00047
+ 117495622.92047 91555176.42447 22358661.71548 22358662.16447 22358689.81947
+ 117495622.41548 308.00048 80.00047 64.00047
+ 121533539.37446 94701407.95446 23127142.91348 23127142.96946 23127182.22646
+ 121533537.87248 245.00048 42.00046 47.00046
+ 115772090.75448 90212022.42748 22030740.03248 22030740.68948 22030770.05348
+ 115772088.24848 395.00048 114.00048 112.00048
+ 118190564.50747 92096587.65147 22490943.40048 22490943.67847 22490972.00047
+ 118190564.00548 331.00048 79.00047 73.00047
+ 115846230.32947 90269767.42447 22044862.10148 22044862.34847 22044894.11847
+ 115846228.83148 343.00048 86.00047 94.00047
+ 03 10 31 0 9 30.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 111025404.80048 86513291.40648 21127476.51849 21127477.09648 21127503.71148
+ 111025401.29549 520.00049 182.00048 172.00048
+ 110359379.84348 85994368.76148 21000707.69149 21000707.55148 21000729.25648
+ 110359381.34249 514.00049 201.00048 200.00048
+ 119309199.84347 92968155.24747 22703865.97948 22703865.87647 22703905.14447
+ 119309199.34248 292.00048 63.00047 63.00047
+ 117177743.01347 91307484.97447 22298165.67748 22298166.10347 22298192.18247
+ 117177742.50748 315.00048 84.00047 65.00047
+ 121873716.68146 94966471.89146 23191883.55148 23191883.60646 23191925.04646
+ 121873715.18048 243.00048 41.00046 45.00046
+ 115885611.99048 90300483.73648 22052340.12948 22052340.60548 22052369.34648
+ 115885609.48248 393.00048 112.00048 111.00048
+ 118044894.15947 91983084.28147 22463218.87448 22463219.03147 22463245.81247
+ 118044893.65448 336.00048 82.00047 74.00047
+ 116085630.87947 90456311.17147 22090420.20948 22090420.54847 22090452.76847
+ 116085629.37348 341.00048 81.00047 92.00047
+ 03 10 31 0 9 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 111217803.76948 86663217.27748 21164085.42549 21164086.03548 21164111.52748
+ 111217800.26449 513.00049 179.00048 167.00048
+ 110162894.76048 85841267.86048 20963314.54049 20963314.34848 20963335.03448
+ 110162896.25649 524.00049 209.00048 204.00048
+ 119603212.10047 93197258.63047 22759812.49148 22759812.46947 22759851.00647
+ 119603211.59748 286.00048 62.00047 60.00047
+ 116863215.41347 91062405.72347 22238307.74548 22238308.15547 22238332.44947
+ 116863214.91148 323.00048 86.00047 68.00047
+ 122215256.01646 95232599.48346 23256881.52748 23256881.64346 23256924.76946
+ 122215254.50948 239.00048 39.00046 44.00046
+ 116004374.90748 90393031.65048 22074935.81648 22074936.38448 22074963.88048
+ 116004372.40248 390.00048 111.00048 111.00048
+ 117903195.60347 91872676.15847 22436249.64248 22436249.92247 22436275.26447
+ 117903195.10248 339.00048 85.00047 75.00047
+ 116329549.63647 90646380.27147 22136834.52648 22136834.74847 22136866.58347
+ 116329548.13648 338.00048 80.00047 88.00047
+ 03 10 31 0 9 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 111413235.99048 86815506.65448 21201271.46849 21201272.03348 21201296.36648
+ 111413232.48549 506.00049 173.00048 167.00048
+ 109970338.88748 85691228.43548 20926669.25549 20926669.11748 20926688.75748
+ 109970340.38649 535.00049 216.00048 209.00048
+ 119900404.65847 93428842.59747 22816362.26948 22816362.51047 22816399.56247
+ 119900404.15948 280.00048 59.00047 56.00047
+ 116552119.41547 90819999.93347 22179103.09948 22179103.40847 22179126.11647
+ 116552118.90948 331.00048 91.00047 73.00047
+ 122558111.43946 95499755.25146 23322127.96148 23322128.60446 23322172.30746
+ 122558109.94648 236.00048 40.00046 42.00046
+ 116128346.78748 90489639.39648 22098522.13648 22098522.79448 22098548.62848
+ 116128344.28248 388.00048 109.00048 109.00048
+ 117765492.20247 91765380.77647 22410041.04248 22410041.24047 22410065.13247
+ 117765491.70148 342.00048 86.00047 75.00047
+ 116577918.59147 90839918.86147 22184094.30148 22184094.87847 22184125.36247
+ 116577917.08748 336.00048 80.00047 86.00047
+ 03 10 31 0 10 0.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 111611663.08648 86970129.72348 21239027.44548 21239028.13948 21239051.21348
+ 111611659.57848 499.00048 166.00048 162.00048
+ 109781751.28248 85544280.93348 20890779.31049 20890779.11848 20890797.92248
+ 109781752.78149 544.00049 226.00048 214.00048
+ 120200700.54647 93662845.12547 22873502.36648 22873502.66147 22873538.22447
+ 120200700.04148 274.00048 56.00047 54.00047
+ 116244535.10647 90580329.95547 22120567.05248 22120567.39047 22120588.74647
+ 116244534.60048 339.00048 95.00047 76.00047
+ 122902236.06846 95767902.17446 23387614.45448 23387614.53646 23387659.41446
+ 122902234.56748 232.00048 37.00046 41.00046
+ 116257494.62148 90590280.50448 22123093.23648 22123093.84348 22123118.27448
+ 116257492.12148 385.00048 107.00048 110.00048
+ 117631806.19347 91661214.63547 22384597.85848 22384598.04047 22384620.70447
+ 117631805.68848 345.00048 88.00047 76.00047
+ 116830674.23647 91036877.30847 22232187.55948 22232187.91847 22232217.31747
+ 116830672.73848 332.00048 79.00047 83.00047
+ 03 10 31 0 10 10.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 111813045.38448 87127055.08348 21277346.15148 21277346.82948 21277368.92248
+ 111813041.87648 492.00048 160.00048 157.00048
+ 109597170.41348 85400455.38148 20855651.92449 20855651.73148 20855669.59648
+ 109597171.90849 552.00049 233.00048 222.00048
+ 120504025.58247 93899207.96947 22931219.00848 22931218.99847 22931253.65147
+ 120504025.07248 268.00048 53.00047 52.00047
+ 115940542.50147 90343458.10547 22062715.03148 22062715.30647 22062735.16347
+ 115940541.99448 346.00048 100.00047 80.00047
+ 123247582.89546 96037003.15946 23453332.08048 23453332.16946 23453377.01646
+ 123247581.39448 229.00048 36.00046 40.00046
+ 116391784.51248 90694928.12448 22148643.19048 22148643.78048 22148666.57548
+ 116391782.00648 383.00048 107.00048 107.00048
+ 117502162.32647 91560197.93047 22359924.08248 22359924.28847 22359945.79747
+ 117502161.82048 346.00048 89.00047 75.00047
+ 117087750.74847 91237203.34747 22281102.62948 22281102.86147 22281130.45447
+ 117087749.25048 327.00048 76.00047 79.00047
+ 03 10 31 0 10 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 112017343.82948 87286252.24948 21316220.15548 21316220.77048 21316242.13448
+ 112017340.32448 484.00048 159.00048 157.00048
+ 109416634.06048 85259781.21248 20821294.34649 20821294.19148 20821311.17048
+ 109416635.55749 560.00049 238.00048 228.00048
+ 120810305.51046 94137872.77846 22989498.16948 22989498.33146 22989531.68746
+ 120810305.00948 260.00048 50.00046 49.00046
+ 115640221.59948 90109446.73447 22005562.14048 22005562.51148 22005581.18147
+ 115640221.09248 354.00048 104.00048 84.00047
+ 123594105.61746 96307021.73546 23519272.44348 23519272.73746 23519317.25246
+ 123594104.12048 224.00048 36.00046 39.00046
+ 116531181.77548 90803555.09248 22175165.29248 22175165.88148 22175187.22648
+ 116531179.27048 380.00048 104.00048 108.00048
+ 117376583.84547 91462349.35847 22336023.68448 22336023.82147 22336044.06047
+ 117376583.33848 348.00048 88.00047 79.00047
+ 117349082.86747 91440845.74547 22330827.10948 22330827.65147 22330853.38547
+ 117349081.36448 321.00048 72.00047 79.00047
+ 03 10 31 0 10 30.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 112224520.46548 87447692.26648 21355641.70048 21355642.38248 21355662.81648
+ 112224516.96048 478.00048 151.00048 152.00048
+ 109240178.60148 85122286.49748 20787713.71649 20787713.53548 20787729.73848
+ 109240180.09749 566.00049 244.00048 236.00048
+ 121119467.36246 94378782.86146 23048326.17348 23048326.34046 23048358.18746
+ 121119466.86648 253.00048 46.00046 50.00046
+ 115343651.84148 89878357.63547 21949123.56548 21949123.99048 21949141.56947
+ 115343651.33848 360.00048 109.00048 86.00047
+ 123941758.52346 96577922.13546 23585427.25848 23585427.40946 23585471.53246
+ 123941757.02348 219.00048 34.00046 36.00046
+ 116675649.65548 90916132.27348 22202652.95648 22202653.54248 22202673.90548
+ 116675647.15148 377.00048 103.00048 106.00048
+ 117255090.90847 91367684.19747 22312900.91448 22312900.98147 22312920.15847
+ 117255090.40148 350.00048 89.00047 80.00047
+ 117614603.55047 91647751.41247 22381349.23548 22381349.66947 22381373.68347
+ 117614602.05048 316.00048 71.00047 76.00047
+ 03 10 31 0 10 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 112434535.43848 87611343.84348 21395603.62048 21395604.21048 21395623.84648
+ 112434531.93048 472.00048 150.00048 149.00048
+ 109067840.53948 84987999.67648 20754916.91049 20754916.68148 20754932.29848
+ 109067842.03649 573.00049 252.00048 246.00048
+ 121431438.09046 94621881.36446 23107688.78748 23107688.96746 23107719.68246
+ 121431437.58848 244.00048 43.00046 47.00046
+ 115050912.95748 89650253.03647 21893414.48748 21893414.87148 21893431.54247
+ 115050912.45448 366.00048 112.00048 94.00047
+ 124290495.73846 96849668.25046 23651787.49748 23651787.94146 23651831.17346
+ 124290494.23548 213.00048 32.00046 33.00046
+ 116825151.19448 91032630.90348 22231099.25248 22231099.73448 22231119.00848
+ 116825148.69048 374.00048 101.00048 104.00048
+ 117137702.17647 91276216.23947 22290559.53548 22290559.86447 22290578.27047
+ 117137701.67148 351.00048 91.00047 80.00047
+ 117884245.42447 91857867.15347 22432656.37648 22432656.89747 22432679.71147
+ 117884243.92748 309.00048 67.00047 75.00047
+ 03 10 31 0 10 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 112647348.28848 87777175.10348 21436098.20248 21436098.90948 21436117.68148
+ 112647344.78548 466.00048 147.00048 145.00048
+ 108899655.68948 84856948.85548 20722910.63149 20722910.43048 20722925.57348
+ 108899657.18749 582.00049 257.00048 253.00048
+ 121746143.67946 94867110.46846 23167572.52848 23167572.38446 23167602.35546
+ 121746143.18648 236.00048 41.00046 45.00046
+ 114762084.55848 89425195.17247 21838449.91548 21838450.14448 21838466.02947
+ 114762084.05248 373.00048 114.00048 99.00047
+ 124640271.36746 97122223.84746 23718345.21748 23718345.72846 23718388.45146
+ 124640269.85948 208.00048 29.00046 33.00046
+ 116979648.39247 91153021.59748 22260496.51848 22260497.20447 22260515.53848
+ 116979645.88648 369.00048 99.00047 103.00048
+ 117024437.52647 91187961.35847 22269003.57248 22269003.72047 22269021.10447
+ 117024437.02148 355.00048 90.00047 80.00047
+ 118157942.62547 92071141.98347 22484736.07648 22484736.18447 22484758.39547
+ 118157941.12548 302.00048 63.00047 73.00047
+ 03 10 31 0 11 0.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 112862919.52748 87945155.39748 21477118.04648 21477118.62048 21477136.80748
+ 112862916.02048 460.00048 141.00048 142.00048
+ 108735658.88648 84729161.14448 20691701.55949 20691701.37748 20691715.90148
+ 108735660.38349 591.00049 267.00048 263.00048
+ 122063511.39946 95114413.58546 23227962.76948 23227962.68646 23227991.86246
+ 122063510.89848 228.00048 36.00046 43.00046
+ 114477245.74548 89203245.78448 21784244.70648 21784244.93848 21784260.12848
+ 114477245.23748 380.00048 122.00048 101.00048
+ 124991040.49546 97395553.76546 23785091.75048 23785091.99446 23785134.20746
+ 124991038.98548 202.00048 28.00046 31.00046
+ 117139101.61447 91277273.49048 22290837.53948 22290838.13147 22290855.95548
+ 117139099.10648 366.00048 96.00047 101.00048
+ 116915315.63847 91102934.36947 22248236.05048 22248236.23047 22248252.96147
+ 116915315.13148 357.00048 95.00047 81.00047
+ 118435627.90347 92287523.43947 22537575.32748 22537575.48247 22537596.83547
+ 118435626.40048 296.00048 62.00047 72.00047
+ 03 10 31 0 11 10.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 113081208.72648 88115253.10848 21518655.41948 21518656.06948 21518673.58748
+ 113081205.21848 456.00048 139.00048 138.00048
+ 108575884.55848 84604663.55548 20661296.06349 20661295.86548 20661309.99348
+ 108575886.05649 603.00049 276.00048 272.00048
+ 122383467.29946 95363732.94946 23288845.90448 23288845.92646 23288874.34246
+ 122383466.79848 219.00048 36.00046 41.00046
+ 114196475.43248 88984466.54048 21730813.74148 21730814.05548 21730828.62248
+ 114196474.93048 387.00048 126.00048 105.00048
+ 125342758.22946 97669622.72546 23852019.13848 23852019.40146 23852060.83546
+ 125342756.73348 196.00048 26.00046 29.00046
+ 117303470.67847 91405355.67047 22322114.07348 22322114.87547 22322131.80147
+ 117303468.17248 362.00048 93.00047 97.00047
+ 116810351.93047 91021146.42347 22228260.68548 22228260.75647 22228276.98247
+ 116810351.42648 361.00048 96.00047 81.00047
+ 118717232.68447 92506957.62347 22591161.40748 22591161.77147 22591182.51747
+ 118717231.18548 290.00048 59.00047 69.00047
+ 03 10 31 0 11 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 113302175.63948 88287436.86248 21560702.66848 21560703.30548 21560720.42148
+ 113302172.13248 451.00048 136.00048 136.00048
+ 108420366.70148 84483482.90748 20631700.47149 20631700.28448 20631713.85348
+ 108420368.19849 615.00049 289.00048 279.00048
+ 122705938.31846 95615011.62946 23350208.25048 23350208.21346 23350235.94946
+ 122705937.81948 211.00048 34.00046 40.00046
+ 113919852.18548 88768918.85748 21678171.84848 21678172.18248 21678185.91548
+ 113919851.67948 394.00048 131.00048 111.00048
+ 125695380.06646 97944395.79746 23919118.77348 23919119.15046 23919159.53746
+ 125695378.55248 189.00048 23.00046 28.00046
+ 117472714.54647 91537236.63847 22354318.17248 22354318.79047 22354335.31847
+ 117472712.03748 359.00048 94.00047 96.00047
+ 116709565.04847 90942613.34447 22209079.94148 22209080.04447 22209095.88847
+ 116709564.54148 363.00048 99.00047 83.00047
+ 119002691.79447 92729395.24047 22645481.04548 22645481.60647 22645501.57047
+ 119002690.29448 285.00048 59.00047 68.00047
+ 03 10 31 0 11 30.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 113525780.47448 88461675.88948 21603252.19648 21603252.68248 21603269.53548
+ 113525776.96848 446.00048 135.00048 131.00048
+ 108269138.09348 84365644.92348 20602920.74049 20602920.55348 20602933.52048
+ 108269139.59049 629.00049 301.00048 285.00048
+ 123030851.42946 95868192.77346 23412035.54048 23412035.26546 23412062.74846
+ 123030850.92448 204.00048 29.00046 38.00046
+ 113647453.93148 88556663.55548 21626333.82148 21626334.20448 21626347.23748
+ 113647453.42448 401.00048 134.00048 116.00048
+ 126048862.15646 98219838.87146 23986382.29148 23986382.95146 23986422.46446
+ 126048860.63848 183.00048 22.00046 26.00046
+ 117646790.90947 91672884.02047 22387441.24748 22387441.86447 22387457.34147
+ 117646788.40048 356.00048 91.00047 93.00047
+ 116612971.92747 90867349.23947 22190696.46248 22190696.54347 22190711.58947
+ 116612971.42748 366.00048 99.00047 84.00047
+ 119291937.64547 92954784.10247 22700520.83948 22700521.19547 22700540.78147
+ 119291936.14448 281.00048 56.00047 67.00047
+ 03 10 31 0 11 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 113751984.45948 88637940.87848 21646295.76448 21646296.38048 21646312.55548
+ 113751980.95148 441.00048 131.00048 125.00048
+ 108122229.78648 84251173.48648 20574963.09149 20574962.92148 20574975.17448
+ 108122231.28449 641.00049 310.00048 291.00048
+ 123358134.93046 96123221.26846 23474313.59648 23474313.86946 23474340.63246
+ 123358134.44948 198.00048 30.00046 39.00046
+ 113379357.33148 88347760.05548 21575314.64148 21575314.80848 21575327.13948
+ 113379356.82448 408.00048 139.00048 120.00048
+ 126403161.95046 98495919.28046 24053801.16148 24053801.77046 24053840.62546
+ 126403160.45148 175.00048 23.00046 28.00046
+ 117825654.47447 91812262.11047 22421474.95048 22421475.48147 22421490.23647
+ 117825651.96948 353.00048 90.00047 90.00047
+ 116520585.50848 90795363.55547 22173113.11848 22173113.17848 22173127.41347
+ 116520585.00248 369.00048 101.00048 83.00047
+ 119584904.29247 93183074.20847 22756267.14348 22756267.87147 22756286.12647
+ 119584902.79148 276.00048 56.00047 66.00047
+ 03 10 31 0 11 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 113980746.36348 88816199.44448 21689825.79848 21689826.49948 21689842.00648
+ 113980742.85748 435.00048 127.00048 124.00048
+ 107979671.99848 84140091.82348 20547833.50449 20547833.31848 20547845.06048
+ 107979673.49449 650.00049 322.00048 295.00048
+ 123687716.20346 96380040.54246 23537028.81948 23537029.26146 23537054.90646
+ 123687715.69548 193.00048 27.00046 35.00046
+ 113115638.71648 88142267.63348 21525128.61748 21525128.88448 21525140.57548
+ 113115638.21048 415.00048 142.00048 127.00048
+ 126758236.72246 98772603.96546 24121367.37048 24121368.15846 24121406.41846
+ 126758235.20848 168.00048 21.00046 24.00046
+ 118009257.86647 91955333.10247 22456410.80348 22456411.44147 22456425.35747
+ 118009255.36148 349.00048 87.00047 90.00047
+ 116432417.04548 90726664.21947 22156332.66348 22156332.66848 22156346.08647
+ 116432416.54148 371.00048 101.00048 85.00047
+ 119881518.37247 93414206.54947 22812707.68748 22812708.16947 22812725.53247
+ 119881516.86748 272.00048 52.00047 63.00047
+ 03 10 31 0 12 0.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 114212025.22548 88996419.50948 21733834.65448 21733835.21948 21733850.17948
+ 114212021.71748 430.00048 124.00048 119.00048
+ 107841494.91548 84032423.63548 20521537.59349 20521537.34648 20521548.55548
+ 107841496.41249 659.00049 329.00048 301.00048
+ 124019522.14646 96638593.52046 23600167.30348 23600167.28546 23600192.58046
+ 124019521.66948 189.00048 25.00046 33.00046
+ 112856374.55348 87940246.02248 21475790.50048 21475790.70248 21475801.82048
+ 112856374.05148 421.00048 148.00048 131.00048
+ 127114042.95646 99049858.81246 24189072.66248 24189073.31646 24189110.70346
+ 127114041.45648 162.00048 18.00046 23.00046
+ 118197555.99947 92102062.70047 22492239.96448 22492240.50147 22492253.54647
+ 118197553.49448 347.00048 87.00047 87.00047
+ 116348479.44247 90661261.70447 22140357.29348 22140357.37247 22140369.75647
+ 116348478.93648 373.00048 100.00047 86.00047
+ 120181708.34046 93648124.42447 22869829.20648 22869829.55746 22869845.96847
+ 120181706.83748 268.00048 50.00046 62.00047
+ 03 10 31 0 12 10.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 114445780.18348 89178569.30548 21778314.37648 21778315.05548 21778329.07048
+ 114445776.67648 424.00048 120.00048 117.00048
+ 107707727.06848 83928190.87748 20496080.95949 20496080.71948 20496091.46848
+ 107707728.56549 664.00049 336.00048 308.00048
+ 124353480.59446 96898824.08846 23663715.19048 23663714.92646 23663739.67346
+ 124353480.10748 186.00048 27.00046 31.00046
+ 112601640.15148 87741753.71348 21427314.51448 21427314.79948 21427325.43648
+ 112601639.64348 426.00048 151.00048 136.00048
+ 127470538.44946 99327651.06446 24256908.76448 24256909.00646 24256946.25746
+ 127470536.93648 154.00048 18.00046 18.00046
+ 118390500.68647 92252413.19147 22528953.12148 22528953.70947 22528965.73247
+ 118390498.18248 343.00048 84.00047 86.00047
+ 116268783.84448 90599164.79247 22125188.90348 22125189.14748 22125200.66947
+ 116268783.33948 373.00048 102.00048 85.00047
+ 120485407.15046 93884777.14347 22927617.89448 22927618.31246 22927633.80447
+ 120485405.65048 264.00048 49.00046 60.00047
+ 03 10 31 0 12 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 114681969.75248 89362616.17148 21823257.49748 21823258.09448 21823271.60348
+ 114681966.25048 419.00048 117.00048 112.00048
+ 107578396.52148 83827415.40648 20471468.91449 20471468.83648 20471479.06648
+ 107578398.01949 669.00049 339.00048 311.00048
+ 124689518.80146 97160675.40246 23727658.49548 23727658.39346 23727682.37146
+ 124689518.28948 183.00048 25.00046 29.00046
+ 112351510.25048 87546848.89148 21379715.17148 21379715.49648 21379725.79448
+ 112351509.74748 431.00048 155.00048 139.00048
+ 127827680.70146 99605947.64446 24324867.86048 24324868.33346 24324903.09846
+ 127827679.20348 149.00048 15.00046 22.00046
+ 118588040.92547 92406343.70847 22566541.44848 22566541.95147 22566553.26047
+ 118588038.42448 339.00048 83.00047 84.00047
+ 116193338.32348 90540378.84447 22110830.07348 22110830.07248 22110841.08147
+ 116193337.81748 374.00048 102.00048 86.00047
+ 120792543.71646 94124108.93647 22986060.57848 22986060.85746 22986075.14847
+ 120792542.22348 258.00048 46.00046 59.00047
+ 03 10 31 0 12 30.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 114920552.16148 89548527.21448 21868656.10948 21868656.83448 21868669.58648
+ 114920548.65148 413.00048 114.00048 108.00048
+ 107453530.66648 83730118.66748 20447706.78349 20447706.55748 20447716.51948
+ 107453532.16249 674.00049 343.00048 319.00048
+ 125027564.35446 97424091.02746 23791983.76248 23791983.75046 23792006.50946
+ 125027563.86948 180.00048 24.00046 27.00046
+ 112106059.38148 87355589.76448 21333006.49648 21333006.77748 21333016.69648
+ 112106058.87748 437.00048 159.00048 141.00048
+ 128185427.15646 99884715.13346 24392941.68548 24392942.31246 24392976.84946
+ 128185425.66348 141.00048 15.00046 20.00046
+ 118790127.98347 92563816.90347 22604995.25748 22604995.89547 22605006.46847
+ 118790125.48148 336.00048 81.00047 84.00047
+ 116122152.45548 90484911.70047 22097282.00748 22097282.06648 22097292.35147
+ 116122151.94948 375.00048 102.00048 86.00047
+ 121103045.59846 94366062.42547 23045144.11548 23045144.35046 23045157.71647
+ 121103044.09848 253.00048 46.00046 58.00047
+ 03 10 31 0 12 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 115161486.48348 89736270.61648 21914502.66448 21914503.20748 21914515.44348
+ 115161482.97748 407.00048 110.00048 103.00048
+ 107333155.74848 83636321.07248 20424799.39649 20424799.19948 20424808.89748
+ 107333157.24549 680.00049 350.00048 328.00048
+ 125367545.25546 97689014.58646 23856677.22648 23856677.91046 23856698.88946
+ 125367544.75148 177.00048 23.00046 26.00046
+ 111865361.01848 87168033.55848 21287202.34448 21287202.75748 21287212.27248
+ 111865360.51548 443.00048 164.00048 148.00048
+ 128543735.91246 100163920.82546 24461122.18448 24461122.91246 24461157.08346
+ 128543734.41648 135.00048 14.00046 16.00046
+ 118996710.39347 92724792.34547 22644304.93748 22644305.45747 22644315.59247
+ 118996707.89448 332.00048 79.00047 80.00047
+ 116055234.12048 90432769.57547 22084546.40848 22084546.47548 22084556.26147
+ 116055233.61248 375.00048 102.00048 88.00047
+ 121416842.47446 94610583.13547 23104854.96248 23104855.29946 23104867.52047
+ 121416840.97448 247.00048 42.00046 53.00047
+ 03 10 31 0 12 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 115404731.34048 89925814.02047 21960789.01448 21960789.60948 21960801.43947
+ 115404727.83148 401.00048 109.00048 100.00047
+ 107217297.12348 83546042.40948 20402751.64049 20402751.48048 20402760.97948
+ 107217298.62049 687.00049 357.00048 339.00048
+ 125709389.59546 97955390.12446 23921725.94848 23921725.92046 23921746.92746
+ 125709389.10948 173.00048 22.00046 25.00046
+ 111629488.19148 86984237.33648 21242316.73948 21242316.98348 21242326.38348
+ 111629487.68748 449.00048 169.00048 153.00048
+ 128902565.24046 100443532.08346 24529402.58348 24529402.40946 24529435.89646
+ 128902563.72648 128.00048 11.00046 17.00046
+ 119207736.38047 92889229.71547 22684460.59248 22684461.37947 22684470.96547
+ 119207733.87648 329.00048 78.00047 79.00047
+ 115992589.81948 90383957.43047 22072624.31148 22072624.47748 22072633.82847
+ 115992589.31148 376.00048 102.00048 86.00047
+ 121733862.58446 94857614.78047 23165179.60748 23165180.23246 23165191.76947
+ 121733861.07748 240.00048 41.00046 52.00047
+ 03 10 31 0 13 0.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 115650245.65548 90117125.45347 22007507.69248 22007508.32548 22007519.66247
+ 115650242.14548 396.00048 103.00048 97.00047
+ 107105979.14348 83459301.70348 20381567.98849 20381567.88748 20381577.29348
+ 107105980.64149 696.00049 367.00048 349.00048
+ 126053025.81146 98223161.67846 23987115.26948 23987115.18046 23987135.75146
+ 126053025.31148 170.00048 21.00046 24.00046
+ 111398512.85448 86804257.19648 21198363.06948 21198363.26748 21198372.62448
+ 111398512.34748 455.00048 172.00048 158.00048
+ 129261873.66345 100723516.47446 24597773.51748 24597774.28445 24597804.66446
+ 129261872.17948 123.00048 10.00045 18.00046
+ 119423153.67147 93057088.46447 22725452.34048 22725452.95247 22725462.36247
+ 119423151.16348 325.00048 76.00047 78.00047
+ 115934225.29048 90338479.78747 22061516.95748 22061517.06948 22061526.15447
+ 115934224.78548 377.00048 104.00048 88.00047
+ 122054034.70846 95107101.92346 23226104.38648 23226104.55046 23226116.06546
+ 122054033.19848 233.00048 38.00046 50.00046
+ 03 10 31 0 13 10.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 115897988.74048 90310173.48047 22054650.47148 22054651.19648 22054662.15647
+ 115897985.23748 390.00048 102.00048 93.00047
+ 106999225.38048 83376117.38248 20361253.20749 20361252.98948 20361262.29348
+ 106999226.87649 706.00049 377.00048 359.00048
+ 126398382.51746 98492273.56546 24052832.35548 24052832.56546 24052852.16546
+ 126398382.02248 166.00048 20.00046 22.00046
+ 111172505.91048 86628148.32648 21155355.05648 21155355.27148 21155364.47948
+ 111172505.40448 461.00048 176.00048 164.00048
+ 129621620.25245 101003842.02446 24666228.78648 24666229.11545 24666259.74446
+ 129621618.74648 116.00048 10.00045 15.00046
+ 119642909.40447 93228327.83647 22767269.60648 22767270.26847 22767279.39347
+ 119642906.89548 321.00048 75.00047 75.00047
+ 115880144.88948 90296339.98747 22051225.28048 22051225.44248 22051234.30547
+ 115880144.38448 377.00048 104.00048 87.00047
+ 122377287.67046 95358989.23546 23287615.98048 23287616.41846 23287626.93546
+ 122377286.17148 225.00048 35.00046 47.00046
+ 03 10 31 0 13 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 116147919.26447 90504925.84447 22102209.68148 22102210.38247 22102221.09547
+ 116147915.75948 385.00048 99.00047 90.00047
+ 106897057.95948 83296506.65148 20341811.19049 20341811.03348 20341820.24048
+ 106897059.45749 715.00049 387.00048 368.00048
+ 126745389.06246 98762670.82946 24118863.64848 24118862.93546 24118882.71446
+ 126745388.55548 161.00048 20.00046 21.00046
+ 110951537.02148 86455964.80448 21113306.05148 21113306.37348 21113315.53248
+ 110951536.51448 467.00048 179.00048 169.00048
+ 129981764.49045 101284477.37446 24734758.91948 24734759.87445 24734790.31446
+ 129981763.00848 111.00048 7.00045 14.00046
+ 119866949.39647 93402905.71047 22809902.07248 22809902.76747 22809911.58547
+ 119866946.89148 318.00048 73.00047 73.00047
+ 115830352.44248 90257541.17547 22041749.62748 22041749.76348 22041758.67347
+ 115830351.93648 379.00048 104.00048 88.00047
+ 122703550.90046 95613222.18946 23349700.43248 23349700.81846 23349711.00646
+ 122703549.39648 218.00048 33.00046 47.00046
+ 03 10 31 0 13 30.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 116399995.17147 90701349.40147 22150177.64148 22150178.21947 22150188.72547
+ 116399991.66748 379.00048 95.00047 87.00047
+ 106799497.92648 83220485.73548 20323246.23249 20323246.06248 20323255.32848
+ 106799499.42549 722.00049 394.00048 378.00048
+ 127093974.71046 99034298.14846 24185195.44048 24185196.01846 24185214.11646
+ 127093974.19648 155.00048 18.00046 19.00046
+ 110735675.49448 86287760.72548 21072229.25748 21072229.39748 21072238.66948
+ 110735674.98848 471.00048 183.00048 176.00048
+ 130342265.67545 101565390.47646 24803357.92848 24803358.21245 24803387.88746
+ 130342264.22248 105.00048 7.00045 13.00046
+ 120095217.27147 93580777.59547 22853339.41548 22853339.94747 22853348.60947
+ 120095214.77148 314.00048 72.00047 71.00047
+ 115784849.78548 90222084.54647 22033090.79848 22033090.95048 22033099.78147
+ 115784849.28348 380.00048 105.00048 89.00047
+ 123032751.85246 95869743.78546 23412344.24348 23412345.00246 23412354.61646
+ 123032750.34348 211.00048 32.00046 46.00046
+ 03 10 31 0 13 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 116654175.25447 90899412.00247 22198546.36248 22198546.95547 22198557.40947
+ 116654171.74948 374.00048 93.00047 85.00047
+ 106706565.82948 83148070.80048 20305562.06149 20305561.87948 20305571.22248
+ 106706567.32649 728.00049 400.00048 384.00048
+ 127444068.58446 99307099.96946 24251814.97048 24251814.64246 24251832.75846
+ 127444068.06048 151.00048 17.00046 19.00046
+ 110524989.50648 86123589.26548 21032137.39848 21032137.61248 21032146.98048
+ 110524989.00148 477.00048 189.00048 184.00048
+ 130703083.65145 101846549.83246 24872017.08447 24872016.87745 24872046.78446
+ 130703082.12747 99.00047 6.00045 12.00046
+ 120327657.12347 93761900.00247 22897570.89648 22897571.44347 22897580.04947
+ 120327654.62048 311.00048 69.00047 70.00047
+ 115743638.66248 90189971.70347 22025248.87548 22025248.84348 22025257.81647
+ 115743638.15948 381.00048 106.00048 92.00047
+ 123364818.99046 96128498.38346 23475533.68948 23475534.17346 23475543.74746
+ 123364817.48248 204.00048 31.00046 45.00046
+ 03 10 31 0 13 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 116910418.33047 91099081.58647 22247308.00548 22247308.63947 22247319.09647
+ 116910414.81948 368.00048 89.00047 81.00047
+ 106618280.88448 83079276.83548 20288762.43249 20288762.24148 20288771.65348
+ 106618282.38349 731.00049 403.00048 388.00048
+ 127795600.57246 99581021.60246 24318709.00648 24318708.86846 24318726.75846
+ 127795600.04948 145.00048 14.00046 19.00046
+ 110319546.44048 85963503.09748 20993043.35548 20993043.65348 20993053.16148
+ 110319545.93748 482.00048 193.00048 188.00048
+ 131064178.23945 102127924.20546 24940729.80147 24940730.61345 24940759.11946
+ 131064176.76247 95.00047 7.00045 14.00046
+ 120564212.16247 93946228.77647 22942585.66848 22942586.32347 22942594.71947
+ 120564209.65948 308.00048 68.00047 68.00047
+ 115706719.36748 90161202.92847 22018223.77248 22018223.80148 22018232.73047
+ 115706718.86048 382.00048 106.00048 93.00047
+ 123699680.23446 96389429.65946 23539255.35548 23539255.59046 23539265.06946
+ 123699678.73948 198.00048 25.00046 42.00046
+ 03 10 31 0 14 0.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 117168683.04647 91300325.82947 22296455.00948 22296455.62847 22296466.34947
+ 117168679.54148 361.00048 87.00047 80.00047
+ 106534661.59048 83014118.40148 20272850.58449 20272850.41148 20272859.93848
+ 106534663.08849 733.00049 406.00048 391.00048
+ 128148500.80046 99856008.43346 24385864.25148 24385863.30146 24385882.06746
+ 128148500.29648 140.00048 14.00046 17.00046
+ 110119411.98948 85807553.27948 20954959.69548 20954960.00848 20954969.73848
+ 110119411.48548 490.00048 196.00048 194.00048
+ 131425509.97644 102409482.61146 25009488.21447 25009489.15244 25009516.36646
+ 131425508.52347 89.00047 5.00044 11.00046
+ 120804824.81147 94133718.95947 22988372.89348 22988373.52847 22988381.96847
+ 120804822.30748 305.00048 67.00047 65.00047
+ 115674091.27148 90135777.89247 22012015.15148 22012015.33548 22012024.52047
+ 115674090.76848 384.00048 105.00048 90.00047
+ 124037264.05846 96652481.93546 23603495.40848 23603496.16746 23603505.13346
+ 124037262.55848 192.00048 26.00046 43.00046
+ 03 10 31 0 14 10.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 117428929.54347 91503114.31247 22345978.95448 22345979.64747 22345990.59847
+ 117428926.03848 355.00048 83.00047 76.00047
+ 106455724.99948 82952608.77948 20257829.90949 20257829.70348 20257839.42348
+ 106455726.49749 736.00049 406.00048 394.00048
+ 128502701.54846 100132008.32846 24453266.67848 24453266.02146 24453285.28246
+ 128502701.04648 135.00048 12.00046 16.00046
+ 109924651.53648 85655791.07348 20917898.63148 20917898.93748 20917908.90248
+ 109924651.03048 499.00048 204.00048 200.00048
+ 131787039.81145 102691194.61946 25078284.43447 25078284.34645 25078313.51346
+ 131787038.29847 86.00047 6.00045 11.00046
+ 121049436.94447 94324325.32747 23034921.49648 23034922.03147 23034930.51147
+ 121049434.43948 302.00048 63.00047 64.00047
+ 115645752.12348 90113694.71047 22006622.95848 22006623.18648 22006632.26347
+ 115645751.61648 384.00048 108.00048 92.00047
+ 124377499.03546 96917599.82846 23668240.26948 23668240.75246 23668250.65846
+ 124377497.54148 187.00048 25.00046 39.00046
+ 03 10 31 0 14 20.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 117691114.76247 91707412.49147 22395872.68948 22395873.10947 22395884.68547
+ 117691111.26148 349.00048 83.00047 74.00047
+ 106381486.68648 82894759.93948 20243703.40949 20243703.21948 20243713.13748
+ 106381488.18349 739.00049 411.00048 399.00048
+ 128858131.70446 100408964.63546 24520904.51448 24520904.38146 24520924.35846
+ 128858131.18848 130.00048 12.00046 17.00046
+ 109735327.26948 85508264.29348 20881872.40349 20881872.77048 20881882.98548
+ 109735326.76349 506.00049 211.00048 204.00048
+ 132148728.99844 102973030.01745 25147112.08847 25147114.02544 25147137.30445
+ 132148727.46447 81.00047 5.00044 10.00045
+ 121297989.44347 94518001.77347 23082219.94148 23082220.61047 23082229.31347
+ 121297986.93648 300.00048 63.00047 60.00047
+ 115621698.86548 90094951.05647 22002046.45948 22002046.57648 22002056.02847
+ 115621698.35948 384.00048 107.00048 93.00047
+ 124720313.26346 97184727.18046 23733476.31548 23733476.49846 23733486.06946
+ 124720311.75648 182.00048 23.00046 39.00046
+ 03 10 31 0 14 30.0000000 0 7G 4G 7G 8G 9G26G28G29
+ 117955195.87147 91913186.15547 22446128.43648 22446128.99847 22446141.27747
+ 117955192.36548 342.00048 78.00047 72.00047
+ 106311962.43448 82840584.58148 20230473.85749 20230473.65248 20230483.70148
+ 106311963.93149 745.00049 418.00048 405.00048
+ 129214720.74445 100686821.40346 24588764.85048 24588764.67645 24588784.09546
+ 129214720.21648 126.00048 10.00045 14.00046
+ 109551501.53248 85365021.55948 20846893.09849 20846893.34048 20846904.09848
+ 109551501.02449 513.00049 218.00048 207.00048
+ 121550421.93447 94714700.75947 23130257.60048 23130258.12347 23130267.37847
+ 121550419.42348 296.00048 62.00047 58.00047
+ 115601928.87848 90079545.66747 21998284.53348 21998284.49848 21998294.22447
+ 115601928.37048 384.00048 106.00048 91.00047
+ 125065634.06946 97453806.92646 23799189.52748 23799190.05846 23799199.95446
+ 125065632.55348 179.00048 24.00046 37.00046
+ 03 10 31 0 14 40.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 118221135.43347 92120407.78847 22496738.13048 22496738.59147 22496751.97647
+ 118221131.92548 335.00048 75.00047 70.00047
+ 106247167.68648 82790095.59648 20218143.51549 20218143.35448 20218153.29148
+ 106247169.18349 751.00049 424.00048 413.00048
+ 129572401.19245 100965526.28046 24656834.47148 24656833.55845 24656855.98946
+ 129572400.69348 122.00048 10.00045 16.00046
+ 109373239.40548 85226115.63948 20812971.21949 20812971.47348 20812982.25048
+ 109373238.89849 519.00049 223.00048 212.00048
+ 132872668.75553 103537284.77755 25284830.68347 25284828.33543 25284862.62745
+ 132872681.39157 73.00047 2.00043 10.00045
+ 121806673.27347 94914374.21347 23179022.88848 23179023.40447 23179032.89547
+ 121806670.76248 292.00048 60.00047 56.00047
+ 115586437.77048 90067475.58247 21995335.94148 21995336.04548 21995345.38047
+ 115586437.26548 384.00048 105.00048 92.00047
+ 125413389.25446 97724782.49046 23865367.05648 23865367.45946 23865377.81246
+ 125413387.74748 175.00048 23.00046 38.00046
+ 03 10 31 0 14 50.0000000 0 8G 4G 7G 8G 9G24G26G28G29
+ 118488896.55947 92329050.74447 22547692.84148 22547693.34047 22547707.37947
+ 118488893.05348 329.00048 72.00047 66.00047
+ 106187115.03548 82743302.76048 20206714.82249 20206714.63248 20206724.19548
+ 106187116.53249 759.00049 432.00048 420.00048
+ 129931111.35846 101245034.20346 24725099.57448 24725098.76446 24725121.35446
+ 129931110.83748 116.00048 11.00046 16.00046
+ 109200601.00048 85091593.65748 20780118.13749 20780118.44548 20780128.86248
+ 109200600.49649 523.00049 225.00048 214.00048
+ 133234602.11744 103819305.14645 25353707.31647 25353707.32244 25353742.15345
+ 133234614.55747 71.00047 4.00044 7.00045
+ 122066685.01347 95116977.72947 23228503.68748 23228504.03947 23228514.76747
+ 122066682.50948 287.00048 59.00047 53.00047
+ 115575219.31748 90058736.04247 21993199.57148 21993199.68848 21993208.47847
+ 115575218.81448 383.00048 107.00048 90.00047
+ 125763508.33146 97997599.51546 23931994.64548 23931995.51546 23932005.95846
+ 125763506.82048 174.00048 21.00046 34.00046
+ 03 10 31 0 15 0.0000000 0 9G 4G 5G 7G 8G 9G24G26G28G29
+ 118758439.12947 92539084.08947 22598985.07948 22598985.79647 22598999.42247
+ 118758435.62148 323.00048 69.00047 64.00047
+ 128613331.02256 100218246.81956 24474302.96948 24474303.25446 24474319.46346
+ 128613329.53658 144.00048 18.00046 18.00046
+ 106131815.67248 82700214.63248 20196189.94049 20196189.78148 20196198.83648
+ 106131817.17049 764.00049 438.00048 430.00048
+ 130290788.69445 101525298.69546 24793546.77148 24793546.43445 24793570.11546
+ 130290788.17348 113.00048 9.00045 14.00046
+ 109033644.70048 84961501.18948 20748344.89449 20748345.22548 20748354.82848
+ 109033644.19349 527.00049 228.00048 222.00048
+ 133596544.30643 104101330.42845 25422586.16847 25422581.13243 25422616.02345
+ 133596556.00147 66.00047 2.00043 9.00045
+ 122330397.46247 95322465.57047 23278688.20748 23278688.69147 23278699.83447
+ 122330394.95248 284.00048 57.00047 54.00047
+ 115568265.57548 90053320.58247 21991873.96048 21991874.09248 21991882.34947
+ 115568265.06948 383.00048 105.00048 91.00047
+ 126115921.76846 98272204.77146 23999058.80648 23999059.31746 23999070.62346
+ 126115920.25248 171.00048 21.00046 32.00046
+ 03 10 31 0 15 10.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 119029724.38347 92750478.67747 22650606.32248 22650607.15847 22650619.86947
+ 119029720.88048 317.00048 67.00047 62.00047
+ 128487798.95546 100120429.68046 24450414.81348 24450415.38746 24450431.87646
+ 128487797.44548 145.00048 17.00046 20.00046
+ 106081278.39748 82660837.27148 20186571.29449 20186571.10448 20186579.59248
+ 106081279.89349 769.00049 444.00048 438.00048
+ 130651370.48145 101806272.91746 24862162.07448 24862162.78045 24862185.03246
+ 130651369.95448 108.00048 8.00045 12.00046
+ 108872425.86548 84835880.68448 20717662.54049 20717662.79448 20717671.31548
+ 108872425.35749 530.00049 233.00048 227.00048
+ 122597750.75947 95530792.05347 23329564.49048 23329565.23847 23329576.52347
+ 122597748.25448 278.00048 53.00047 52.00047
+ 115565565.44848 90051219.27747 21991358.11448 21991358.27748 21991365.80247
+ 115565564.94348 384.00048 107.00048 92.00047
+ 126470559.89546 98548544.84746 24066545.03548 24066545.48446 24066558.17846
+ 126470558.39548 169.00048 20.00046 34.00046
+ 03 10 31 0 15 20.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 119302707.14947 92963196.95247 22702549.93148 22702550.54447 22702562.63747
+ 119302703.64848 311.00048 63.00047 59.00047
+ 128364062.11746 100024016.33846 24426864.88348 24426864.94146 24426880.60546
+ 128364060.60148 146.00048 18.00046 21.00046
+ 106035509.74048 82625174.37448 20177861.01749 20177860.86648 20177869.05448
+ 106035511.23849 770.00049 445.00048 445.00048
+ 131012787.49745 102087901.57046 24930933.82548 24930933.60745 24930954.94246
+ 131012787.00948 104.00048 10.00045 12.00046
+ 108716992.19048 84714765.51648 20688082.91949 20688083.24748 20688091.24748
+ 108716991.68449 537.00049 238.00048 230.00048
+ 122868682.73047 95741908.78546 23381120.41548 23381120.98347 23381132.24246
+ 122868680.22148 274.00048 52.00047 50.00046
+ 115567106.98348 90052421.61647 21991650.72648 21991650.67548 21991657.87247
+ 115567106.48048 384.00048 105.00048 91.00047
+ 126827352.03146 98826564.84646 24134440.29448 24134440.32446 24134452.84646
+ 126827350.54148 166.00048 20.00046 31.00046
+ 03 10 31 0 15 30.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 119577343.83047 93177203.37747 22754808.54648 22754809.12847 22754820.25947
+ 119577340.32348 305.00048 62.00047 57.00047
+ 128242147.89046 99929024.76646 24403660.63448 24403660.43846 24403675.38346
+ 128242146.37248 148.00048 19.00046 18.00046
+ 105994519.00148 82593233.82548 20170060.50849 20170060.37148 20170068.51148
+ 105994520.49749 772.00049 446.00048 451.00048
+ 131374968.49945 102370126.26146 24999850.52047 24999850.77445 24999873.34946
+ 131374967.99547 100.00047 8.00045 13.00046
+ 108567398.94448 84598199.51548 20659616.22449 20659616.41448 20659624.42448
+ 108567398.43849 543.00049 243.00048 234.00048
+ 123143128.18647 95955763.73846 23433344.66348 23433345.26847 23433356.02546
+ 123143125.67648 268.00048 51.00047 48.00046
+ 115572880.93848 90056921.13047 21992749.12848 21992749.08348 21992756.24547
+ 115572880.43048 385.00048 106.00048 92.00047
+ 127186225.21746 99106206.94946 24202731.21748 24202731.83046 24202743.83646
+ 127186223.72048 164.00048 19.00046 30.00046
+ 03 10 31 0 15 40.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 119853594.54947 93392467.18447 22807374.72948 22807375.34947 22807385.74147
+ 119853591.05048 300.00048 60.00047 55.00047
+ 128122083.17846 99835472.46746 24380809.43648 24380809.27846 24380822.15446
+ 128122081.68148 149.00048 20.00046 20.00046
+ 105958314.13448 82565022.36848 20163170.89449 20163170.68948 20163178.85848
+ 105958315.62949 772.00049 445.00048 451.00048
+ 131737848.10845 102652896.11446 25068898.97047 25068898.07045 25068917.99846
+ 131737847.61547 96.00047 6.00045 12.00046
+ 108423702.14448 84486228.32048 20632271.37149 20632271.68748 20632279.52148
+ 108423701.63649 552.00049 251.00048 237.00048
+ 123421022.54146 96172305.87646 23486225.37848 23486225.88146 23486236.32746
+ 123421020.03548 263.00048 47.00046 45.00046
+ 115582876.77648 90064710.21247 21994651.16148 21994651.25548 21994658.47447
+ 115582876.27048 386.00048 108.00048 91.00047
+ 127547107.22046 99387414.20346 24271404.39648 24271404.50046 24271417.17846
+ 127547105.72848 162.00048 18.00046 32.00046
+ 03 10 31 0 15 50.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 120131416.77847 93608954.00947 22860240.96648 22860241.78247 22860251.37347
+ 120131413.26748 295.00048 59.00047 53.00047
+ 128003901.94246 99743386.03546 24358318.22548 24358318.79146 24358330.36546
+ 128003900.44948 150.00048 20.00046 20.00046
+ 105926901.46948 82540545.15248 20157193.12449 20157192.91348 20157200.99248
+ 105926902.96549 773.00049 448.00048 450.00048
+ 132101358.54345 102936156.90946 25138067.69347 25138069.41045 25138085.92346
+ 132101358.03247 92.00047 7.00045 12.00046
+ 108285951.91848 84378890.81748 20606058.03649 20606058.34348 20606066.18748
+ 108285951.41349 559.00049 257.00048 239.00048
+ 123702302.11446 96391485.44446 23539750.57548 23539750.86446 23539761.42646
+ 123702299.60148 258.00048 47.00046 44.00046
+ 115597082.51348 90075779.88247 21997354.31248 21997354.25348 21997361.34747
+ 115597082.01248 386.00048 107.00048 88.00047
+ 127909927.43346 99670131.48846 24340446.66548 24340446.67446 24340458.64046
+ 127909925.90148 160.00048 17.00046 27.00046
+ 03 10 31 0 16 0.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 120410772.15047 93826634.95346 22913399.46448 22913400.36047 22913409.64046
+ 120410768.63848 290.00048 57.00047 50.00046
+ 127887638.86146 99652793.28046 24336192.54748 24336192.65346 24336205.03046
+ 127887637.34748 152.00048 19.00046 19.00046
+ 105900285.24748 82519805.33248 20152128.13549 20152127.97148 20152135.99048
+ 105900286.74549 775.00049 448.00048 448.00048
+ 132465433.03044 103219855.47446 25207346.04947 25207347.24244 25207361.99346
+ 132465432.55447 89.00047 5.00044 12.00046
+ 108154194.38748 84276221.56248 20580986.21049 20580986.51848 20580994.56448
+ 108154193.88049 566.00049 264.00048 239.00048
+ 123986903.54946 96613253.42246 23593907.94348 23593908.48346 23593918.46446
+ 123986901.04848 253.00048 45.00046 43.00046
+ 115615483.86348 90090118.77847 22000855.81548 22000855.86048 22000862.80947
+ 115615483.35848 387.00048 108.00048 88.00047
+ 128274615.67946 99954304.37746 24409844.07448 24409844.18946 24409856.24846
+ 128274614.16448 157.00048 17.00046 26.00046
+ 03 10 31 0 16 10.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 120691619.32847 94045477.10746 22966842.73848 22966843.30147 22966852.41246
+ 120691615.82048 285.00048 54.00047 47.00046
+ 127773328.21846 99563721.44746 24314438.92048 24314438.83446 24314449.82446
+ 127773326.71148 154.00048 18.00046 20.00046
+ 105878469.31148 82502806.08148 20147976.58849 20147976.40048 20147984.40148
+ 105878470.80849 779.00049 452.00048 447.00048
+ 132830008.27944 103503942.69546 25276720.56047 25276721.41644 25276736.10346
+ 132830007.71247 86.00047 5.00044 11.00046
+ 108028482.67948 84178265.01048 20557063.66749 20557063.92448 20557071.79348
+ 108028482.17349 573.00049 267.00048 240.00048
+ 124274762.29446 96837559.32546 23648685.45948 23648686.06846 23648695.81046
+ 124274759.78548 249.00048 44.00046 41.00046
+ 115638066.14648 90107715.57547 22005152.91548 22005152.99348 22005159.88047
+ 115638065.63748 386.00048 107.00048 89.00047
+ 128641101.41346 100239877.63446 24479584.23648 24479584.24346 24479596.73646
+ 128641099.87948 155.00048 16.00046 26.00046
+ 03 10 31 0 16 20.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 120973922.98947 94265455.18946 23020562.51748 23020563.09947 23020572.19446
+ 120973919.48148 279.00048 52.00047 44.00046
+ 127661003.38446 99476196.86946 24293063.12948 24293062.68246 24293074.97746
+ 127661001.87148 157.00048 20.00046 19.00046
+ 105861455.68848 82489548.90948 20144738.82649 20144738.66848 20144746.60748
+ 105861457.18449 783.00049 459.00048 443.00048
+ 133195022.48145 103788371.60545 25346178.45547 25346177.77445 25346193.95545
+ 133195021.99347 84.00047 6.00045 9.00045
+ 107908860.75648 84085054.74148 20534299.17749 20534299.41748 20534306.91248
+ 107908860.25049 579.00049 273.00048 245.00048
+ 124565814.05846 97064353.22746 23704070.48948 23704070.87946 23704081.28546
+ 124565811.54748 243.00048 42.00046 40.00046
+ 115664812.93448 90128557.20547 22010242.57148 22010242.74548 22010249.72447
+ 115664812.43148 385.00048 105.00048 88.00047
+ 129009314.56446 100526796.73546 24549653.24548 24549653.27746 24549664.99646
+ 129009313.06348 151.00048 15.00046 23.00046
+ 03 10 31 0 16 30.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 121257641.24846 94486535.50546 23074551.36848 23074551.94946 23074560.91046
+ 121257637.73648 273.00048 48.00046 43.00046
+ 127550697.35246 99390245.43946 24272071.70948 24272072.00746 24272082.05046
+ 127550695.84148 159.00048 20.00046 19.00046
+ 105849245.16148 82480034.22448 20142415.30649 20142415.08148 20142422.99648
+ 105849246.65749 787.00049 462.00048 443.00048
+ 133560415.37944 104073096.46146 25415708.13647 25415707.23244 25415722.97446
+ 133560414.87947 80.00047 4.00044 11.00046
+ 107795367.68248 83996618.94048 20512701.87349 20512702.15348 20512709.62248
+ 107795367.17649 583.00049 277.00048 248.00048
+ 124859994.58146 97293585.31246 23760050.75848 23760051.40146 23760061.15546
+ 124859992.07648 239.00048 38.00046 39.00046
+ 115695707.87348 90152631.17247 22016121.71448 22016121.82648 22016128.77547
+ 115695707.36748 384.00048 106.00048 88.00047
+ 129379186.46246 100815008.55946 24620037.38348 24620037.95146 24620049.53346
+ 129379184.96948 148.00048 14.00046 23.00046
+ 03 10 31 0 16 40.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 121542733.96046 94708686.42646 23128802.12748 23128802.65046 23128811.21246
+ 121542730.45148 267.00048 46.00046 39.00046
+ 127442441.23346 99305890.83346 24251470.73048 24251470.92046 24251481.37946
+ 127442439.73548 161.00048 21.00046 21.00046
+ 105841838.04548 82474262.49548 20141005.70449 20141005.50348 20141013.40448
+ 105841839.54349 789.00049 465.00048 450.00048
+ 133926121.40543 104358064.86345 25485298.02547 25485299.11743 25485318.77545
+ 133926120.77947 79.00047 3.00043 9.00045
+ 107688047.39448 83912992.97248 20492279.28449 20492279.61048 20492286.95448
+ 107688046.88849 589.00049 284.00048 253.00048
+ 125157238.23246 97525204.20146 23816614.16348 23816614.84746 23816624.35246
+ 125157235.73948 234.00048 40.00046 41.00046
+ 115730733.22548 90179923.70247 22022786.85048 22022786.91948 22022793.79947
+ 115730732.71748 381.00048 105.00048 88.00047
+ 129750647.42146 101104458.69746 24690723.93548 24690724.79246 24690736.22146
+ 129750645.92448 144.00048 15.00046 23.00046
+ 03 10 31 0 16 50.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 121829162.02246 94931877.69346 23183307.24048 23183307.86946 23183316.40946
+ 121829158.51548 261.00048 45.00046 39.00046
+ 127336268.30646 99223159.57046 24231265.91348 24231265.73346 24231276.72746
+ 127336266.81948 163.00048 21.00046 22.00046
+ 105839232.96648 82472232.59248 20140509.99949 20140509.78048 20140517.72148
+ 105839234.46249 789.00049 465.00048 449.00048
+ 134292078.67544 104643228.91846 25554936.02447 25554937.86544 25554950.33546
+ 134292078.06747 75.00047 4.00044 11.00046
+ 107586939.91048 83834208.09448 20473039.06249 20473039.34948 20473046.68048
+ 107586939.40549 594.00049 289.00048 252.00048
+ 125457479.39846 97759158.65346 23873747.71248 23873748.26646 23873757.98346
+ 125457476.89948 229.00048 37.00046 37.00046
+ 115769869.83248 90210419.73647 22030234.27248 22030234.19748 22030241.36947
+ 115769869.32448 379.00048 103.00048 87.00047
+ 130123628.05046 101395092.90646 24761699.89748 24761700.39846 24761712.52946
+ 130123626.55848 139.00048 13.00046 20.00046
+ 03 10 31 0 17 0.0000000 0 8G 4G 5G 7G 8G 9G26G28G29
+ 122116886.71646 95156079.32246 23238058.96648 23238059.57346 23238067.88646
+ 122116883.21248 254.00048 43.00046 39.00046
+ 127232210.22446 99142076.14746 24211463.64048 24211463.78346 24211473.52746
+ 127232208.71648 165.00048 24.00046 23.00046
+ 105841427.48048 82473942.58548 20140927.53749 20140927.36648 20140935.26348
+ 105841428.97849 787.00049 461.00048 452.00048
+ 134658237.04953 104928537.18955 25624610.82347 25624610.58843 25624620.53045
+ 134658238.46957 73.00047 2.00043 9.00045
+ 107492082.44548 83760292.95248 20454988.50949 20454988.78448 20454996.14948
+ 107492081.93949 601.00049 293.00048 255.00048
+ 125760652.90546 97995398.03646 23931439.45348 23931439.96246 23931449.69346
+ 125760650.39648 224.00048 36.00046 38.00046
+ 115813097.86648 90244103.87847 22038460.29548 22038460.38648 22038467.39047
+ 115813097.36448 378.00048 103.00048 88.00047
+ 130498059.60146 101686857.57846 24832951.89548 24832951.74046 24832964.34546
+ 130498058.09948 136.00048 13.00046 21.00046
+ 03 10 31 0 17 10.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 122405868.87646 95381260.72346 23293050.05848 23293050.78746 23293058.87446
+ 122405865.36948 247.00048 39.00046 35.00046
+ 127130299.13446 99062666.08846 24192069.97348 24192070.08346 24192079.66146
+ 127130297.63248 166.00048 22.00046 22.00046
+ 105848417.84748 82479389.54148 20142257.80649 20142257.64848 20142265.56248
+ 105848419.34449 785.00049 458.00048 455.00048
+ 107403512.89048 83691278.04448 20438133.96149 20438134.31848 20438141.61348
+ 107403512.38349 607.00049 300.00048 259.00048
+ 128307512.37256 99979907.56956 24416107.64848 24416107.90046 24416114.68446
+ 128307510.86058 141.00048 15.00046 26.00046
+ 126066693.07346 98233871.24946 23989676.74548 23989677.23846 23989687.22346
+ 126066690.57548 220.00048 34.00046 36.00046
+ 115860396.47747 90280959.82147 22047461.02148 22047461.05847 22047468.09647
+ 115860395.96848 376.00048 100.00047 85.00047
+ 130873873.93146 101979699.88846 24904467.06948 24904467.34946 24904478.99446
+ 130873872.43548 132.00048 12.00046 21.00046
+ 03 10 31 0 17 20.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 122696069.22046 95607391.10446 23348273.07248 23348273.71146 23348282.14546
+ 122696065.72248 240.00048 38.00046 34.00046
+ 127030565.05146 98984952.14746 24173090.48548 24173090.33146 24173100.16146
+ 127030563.53348 167.00048 23.00046 22.00046
+ 105860199.41748 82488569.86148 20144499.90849 20144499.69948 20144507.66848
+ 105860200.91549 782.00049 456.00048 451.00048
+ 107321263.92048 83627188.20248 20422482.35449 20422482.65248 20422489.87548
+ 107321263.41449 611.00049 305.00048 257.00048
+ 128021454.21846 99757005.08346 24361672.81348 24361673.66346 24361680.42846
+ 128021452.71148 145.00048 16.00046 27.00046
+ 126375533.80046 98474526.67946 24048447.02248 24048447.59846 24048457.23846
+ 126375531.31148 215.00048 32.00046 32.00046
+ 115911743.89548 90320970.65947 22057232.30748 22057232.28648 22057239.28847
+ 115911743.38948 375.00048 101.00048 83.00047
+ 131251002.38145 102273566.11646 24976232.33348 24976232.56045 24976243.88146
+ 131251000.91048 128.00048 10.00045 19.00046
+ 03 10 31 0 17 30.0000000 0 9G 4G 5G 7G 8G 9G11G26G28G29
+ 122987447.72246 95834438.59946 23403721.08948 23403721.76646 23403729.73246
+ 122987444.21448 233.00048 36.00046 33.00046
+ 126933038.72746 98908958.28646 24154531.27248 24154531.18746 24154541.01646
+ 126933037.22848 168.00048 24.00046 26.00046
+ 105876766.58448 82501479.35748 20147652.51049 20147652.29448 20147660.28548
+ 105876768.08149 782.00049 454.00048 453.00048
+ 135757192.03953 105784899.05455 25833736.55447 25833734.71443 25833752.99045
+ 135757201.29957 68.00047 3.00043 8.00045
+ 107245367.22248 83568047.95348 20408039.69549 20408039.96948 20408047.21748
+ 107245366.71649 615.00049 309.00048 261.00048
+ 127736076.23046 99534632.62846 24307366.95548 24307367.41946 24307374.61346
+ 127736074.72748 148.00048 16.00046 28.00046
+ 126687108.62446 98717312.30246 24107737.57848 24107737.88746 24107747.38246
+ 126687106.11248 211.00048 31.00046 32.00046
+ 115967117.88447 90364119.32147 22067769.48048 22067769.60847 22067776.63147
+ 115967117.38248 375.00048 100.00047 84.00047
+ 131629377.19545 102568403.39946 25048235.01148 25048234.61345 25048247.10046
+ 131629375.69448 124.00048 10.00045 18.00046
+ 03 10 31 0 17 40.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 123279969.20046 96062377.47346 23459386.09648 23459386.71646 23459394.84346
+ 123279965.69448 227.00048 35.00046 32.00046
+ 126837751.63746 98834709.42146 24136398.03448 24136397.59846 24136406.93146
+ 126837750.14248 169.00048 23.00046 21.00046
+ 105898111.82948 82518111.95248 20151714.42649 20151714.20248 20151722.20348
+ 105898113.32749 782.00049 454.00048 450.00048
+ 107175853.25148 83513881.30448 20394811.55149 20394811.74348 20394819.07048
+ 107175852.74749 618.00049 311.00048 261.00048
+ 127451411.46946 99312815.90746 24253196.96348 24253197.55746 24253204.79946
+ 127451409.96848 151.00048 16.00046 27.00046
+ 127001351.75046 98962177.09946 24167536.10548 24167536.40346 24167545.81346
+ 127001349.25248 206.00048 30.00046 32.00046
+ 116026494.14448 90410386.52247 22079068.37548 22079068.41948 22079075.47247
+ 116026493.63948 375.00048 102.00048 83.00047
+ 132008930.80245 102864159.16146 25120461.69848 25120461.14645 25120474.95746
+ 132008929.29848 120.00048 10.00045 16.00046
+ 03 10 31 0 17 50.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 123573593.48146 96291175.48746 23515261.08448 23515261.28646 23515269.95046
+ 123573589.97448 219.00048 30.00046 28.00046
+ 126744733.29046 98762228.27746 24118696.66748 24118696.47346 24118705.94746
+ 126744731.76848 169.00048 24.00046 25.00046
+ 105924226.82848 82538461.13048 20156684.07049 20156683.88748 20156691.89648
+ 105924228.32449 784.00049 456.00048 444.00048
+ 107112749.55448 83464709.54548 20382803.27049 20382803.53748 20382810.77048
+ 107112749.04849 619.00049 312.00048 261.00048
+ 127167493.29246 99091580.86646 24199169.23748 24199169.78746 24199176.74846
+ 127167491.78148 155.00048 18.00046 30.00046
+ 127318197.83846 99209070.56046 24227829.74548 24227830.35746 24227839.59446
+ 127318195.32148 201.00048 30.00046 31.00046
+ 116089848.46548 90459753.59847 22091124.29048 22091124.33248 22091131.42747
+ 116089847.95748 375.00048 101.00048 82.00047
+ 132389596.60845 103160781.76946 25192900.26848 25192899.90245 25192911.79146
+ 132389595.11148 116.00048 7.00045 14.00046
+ 03 10 31 0 18 0.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 123868282.70046 96520803.19446 23571338.77848 23571339.06546 23571347.49346
+ 123868279.19648 212.00048 29.00046 27.00046
+ 126654012.27346 98691536.53246 24101432.88048 24101433.28246 24101442.11146
+ 126654010.76048 169.00048 24.00046 25.00046
+ 105955102.21748 82562519.64148 20162559.58249 20162559.44448 20162567.48148
+ 105955103.71349 785.00049 459.00048 443.00048
+ 107056081.81848 83420552.64448 20372019.94449 20372020.29248 20372027.54148
+ 107056081.31249 621.00049 313.00048 264.00048
+ 126884355.44846 98870953.92746 24145290.04148 24145290.44546 24145297.55446
+ 126884353.93348 158.00048 20.00046 28.00046
+ 127637579.38746 99457939.59046 24288605.63448 24288606.64246 24288615.79446
+ 127637576.87948 196.00048 27.00046 27.00046
+ 116157155.50348 90512200.86147 22103932.20148 22103932.38948 22103939.20747
+ 116157154.99648 374.00048 101.00048 81.00047
+ 132771307.24145 103458218.37446 25265537.08148 25265536.86445 25265550.40146
+ 132771305.73248 112.00048 8.00045 17.00046
+ 03 10 31 0 18 10.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 124163999.45646 96751231.73446 23627611.74648 23627612.38546 23627620.97846
+ 124163995.94748 206.00048 27.00046 27.00046
+ 126565619.71946 98622659.36346 24084612.39748 24084612.45546 24084621.96446
+ 126565618.21848 168.00048 24.00046 26.00046
+ 105990727.76048 82590279.64848 20169339.03649 20169338.87048 20169346.97948
+ 105990729.25749 785.00049 458.00048 433.00048
+ 107005873.07548 83381428.24548 20362466.06449 20362466.39148 20362473.83348
+ 107005872.57149 623.00049 316.00048 265.00048
+ 126602032.01446 98650961.81746 24091565.48148 24091566.24646 24091573.06146
+ 126602030.51548 162.00048 21.00046 31.00046
+ 127959430.15046 99708732.56446 24349851.66848 24349852.19646 24349861.75446
+ 127959427.64048 190.00048 26.00046 26.00046
+ 116228388.81647 90567707.68747 22117487.13348 22117487.33347 22117494.14947
+ 116228388.30848 374.00048 98.00047 79.00047
+ 133153996.05445 103756417.04046 25338360.63948 25338361.39945 25338372.94346
+ 133153994.56048 107.00048 8.00045 15.00046
+ 03 10 31 0 18 20.0000000 0 9G 4G 5G 7G 8G 9G11G26G28G29
+ 124460706.05546 96982431.71846 23684073.21648 23684073.59946 23684082.04346
+ 124460702.56448 199.00048 26.00046 26.00046
+ 126479581.50046 98555615.24346 24068240.89148 24068241.28346 24068250.29546
+ 126479579.99648 168.00048 22.00046 24.00046
+ 106031091.03548 82621731.09548 20177020.30449 20177020.06148 20177028.25248
+ 106031092.53349 784.00049 455.00048 429.00048
+ 137586998.19753 107210723.18555 26181940.67747 26181935.39343 26181953.76845
+ 137587026.78757 62.00047 2.00043 9.00045
+ 106962146.66648 83347355.40348 20354145.44549 20354145.78248 20354153.31448
+ 106962146.16049 625.00049 317.00048 268.00048
+ 126320556.19646 98431629.96946 24038002.49448 24038002.67646 24038009.93546
+ 126320554.68548 165.00048 22.00046 30.00046
+ 128283683.85346 99961397.90246 24411554.95648 24411555.73046 24411564.64946
+ 128283681.34348 184.00048 24.00046 27.00046
+ 116303519.93547 90626251.30147 22131784.30048 22131784.38947 22131791.25647
+ 116303519.43248 372.00048 97.00047 78.00047
+ 133537597.54345 104055326.95446 25411358.30848 25411357.13645 25411370.61246
+ 133537596.09648 104.00048 7.00045 14.00046
+ 03 10 31 0 18 30.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 124758364.60646 97214373.33346 23740715.73448 23740716.08546 23740725.10646
+ 124758361.10048 193.00048 26.00046 26.00046
+ 126395930.75646 98490432.23946 24052323.10548 24052322.98846 24052332.83646
+ 126395929.24448 169.00048 23.00046 25.00046
+ 106076179.99048 82656864.97048 20185600.67049 20185600.49948 20185608.81148
+ 106076181.48749 781.00049 451.00048 427.00048
+ 106924920.00448 83318346.73448 20347062.15949 20347062.43448 20347070.20348
+ 106924919.50149 627.00049 320.00048 269.00048
+ 126039962.36146 98212985.30746 23984607.10648 23984607.41646 23984614.40346
+ 126039960.85948 169.00048 19.00046 31.00046
+ 128610273.60146 100215883.22546 24473703.12948 24473704.21746 24473713.03346
+ 128610271.08448 179.00048 24.00046 25.00046
+ 116382520.93247 90687809.96447 22146818.15348 22146818.14147 22146825.17847
+ 116382520.42648 369.00048 98.00047 79.00047
+ 133922045.79045 104354896.38546 25484516.42847 25484516.66845 25484529.49346
+ 133922044.25447 100.00047 6.00045 15.00046
+ 03 10 31 0 18 40.0000000 0 9G 4G 5G 7G 8G 9G11G26G28G29
+ 125056936.88746 97447026.44846 23797532.60848 23797533.57846 23797541.74946
+ 125056933.36048 188.00048 24.00046 24.00046
+ 126314692.29246 98427128.05046 24036865.02148 24036864.94846 24036874.82046
+ 126314690.76748 169.00048 22.00046 25.00046
+ 106125979.33948 82695668.70548 20195077.92349 20195077.70948 20195086.20748
+ 106125980.83749 777.00049 446.00048 405.00048
+ 138316990.92553 107779529.76655 26320844.55147 26320848.31343 26320862.15845
+ 138316971.60957 60.00047 3.00043 10.00045
+ 106894211.03148 83294416.58648 20341219.20449 20341219.53948 20341227.49848
+ 106894210.52449 628.00049 321.00048 264.00048
+ 125760285.29046 97995055.13846 23931386.54948 23931386.96446 23931393.98146
+ 125760283.78548 173.00048 21.00046 33.00046
+ 128939132.83246 100472136.70646 24536283.27648 24536283.98746 24536293.45246
+ 128939130.33648 172.00048 20.00046 25.00046
+ 116465363.33447 90752361.74047 22162583.10848 22162583.19547 22162590.19147
+ 116465362.82848 367.00048 96.00047 76.00047
+ 134307275.23345 104655074.52046 25557823.68447 25557823.79045 25557836.51246
+ 134307273.77747 97.00047 6.00045 13.00046
+ 03 10 31 0 18 50.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 125356385.83746 97680362.15546 23854516.79648 23854517.21046 23854525.60646
+ 125356382.33448 183.00048 22.00046 22.00046
+ 126235895.82546 98365726.72546 24021871.77248 24021871.54646 24021882.45646
+ 126235894.32748 170.00048 22.00046 25.00046
+ 106180476.06848 82738133.18048 20205448.67449 20205448.52748 20205457.15648
+ 106180477.56549 774.00049 443.00048 422.00048
+ 106870035.66348 83275577.81748 20336619.45049 20336619.73448 20336627.93248
+ 106870035.15849 629.00049 320.00048 266.00048
+ 125481559.95246 97777866.96746 23878346.46548 23878346.85446 23878354.14046
+ 125481558.45348 178.00048 23.00046 34.00046
+ 129270194.93246 100730106.18846 24599283.09348 24599283.96446 24599293.32846
+ 129270192.40348 165.00048 19.00046 23.00046
+ 116552018.23747 90819884.54947 22179073.31348 22179073.36747 22179080.55847
+ 116552017.72448 364.00048 93.00047 77.00047
+ 134693220.75544 104955810.05146 25631267.77747 25631271.65544 25631281.29046
+ 134693219.27047 93.00047 4.00044 11.00046
+ 03 10 31 0 19 0.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 125656676.49546 97914354.03146 23911660.78648 23911661.20346 23911670.38246
+ 125656672.98248 178.00048 20.00046 22.00046
+ 126159569.49246 98306250.40346 24007348.24748 24007347.72646 24007358.58546
+ 126159567.98148 172.00048 24.00046 24.00046
+ 106239654.27348 82784246.11148 20216709.83349 20216709.71348 20216718.28748
+ 106239655.76949 771.00049 435.00048 402.00048
+ 106852408.83048 83261843.13548 20333264.77949 20333265.08548 20333273.19248
+ 106852408.32549 629.00049 319.00048 265.00048
+ 125203821.39046 97561448.24546 23825493.84448 23825494.14846 23825501.49646
+ 125203819.88548 182.00048 27.00046 35.00046
+ 129603395.03546 100989742.02146 24662689.21648 24662690.09346 24662699.97146
+ 129603392.53448 159.00048 17.00046 23.00046
+ 116642455.56547 90890355.25347 22196282.83848 22196283.00247 22196290.24347
+ 116642455.06148 361.00048 93.00047 77.00047
+ 135079818.57145 105257053.77646 25704836.28347 25704836.18245 25704850.62446
+ 135079817.00747 88.00047 7.00045 12.00046
+ 03 10 31 0 19 10.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 125957771.79346 98148973.01346 23968958.02848 23968958.50146 23968967.89446
+ 125957768.29348 172.00048 19.00046 22.00046
+ 126085741.58946 98248721.93146 23993299.44948 23993299.20146 23993310.60146
+ 126085740.07048 173.00048 23.00046 27.00046
+ 106303496.27748 82833993.54548 20228858.30549 20228858.07148 20228866.57748
+ 106303497.77349 769.00049 433.00048 404.00048
+ 106841337.59648 83253216.32248 20331157.88749 20331158.19248 20331166.31348
+ 106841337.09149 629.00049 317.00048 260.00048
+ 124927102.98246 97345824.23046 23772835.43548 23772835.81446 23772842.32646
+ 124927101.48048 188.00048 26.00046 36.00046
+ 129938665.59146 101250990.77546 24726490.14248 24726490.39546 24726500.48546
+ 129938663.07048 153.00048 17.00046 22.00046
+ 116736643.94247 90963749.36647 22214205.90448 22214206.00247 22214213.16247
+ 116736643.43848 359.00048 92.00047 73.00047
+ 135467005.16444 105558756.41645 25778516.03547 25778517.74244 25778530.26845
+ 135467003.62147 86.00047 5.00044 10.00045
+ 03 10 31 0 19 20.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 126259635.02246 98384190.31846 24026401.22848 24026401.73246 24026410.87046
+ 126259631.52148 167.00048 19.00046 22.00046
+ 126014438.87846 98193162.34246 23979730.34348 23979730.27446 23979740.98246
+ 126014437.36848 175.00048 24.00046 27.00046
+ 106371983.94948 82887361.39348 20241890.45749 20241890.25448 20241898.61948
+ 106371985.44649 769.00049 437.00048 411.00048
+ 106836832.49048 83249706.69648 20330299.89049 20330300.23848 20330308.09948
+ 106836831.98549 628.00049 319.00048 267.00048
+ 124651440.16346 97131022.68346 23720378.31048 23720378.53546 23720384.90746
+ 124651438.65948 193.00048 28.00046 38.00046
+ 130275941.38046 101513802.22946 24790672.01248 24790672.72546 24790683.24646
+ 130275938.87548 147.00048 15.00046 22.00046
+ 116834549.92047 91040040.15947 22232836.45948 22232836.49647 22232843.53147
+ 116834549.41748 357.00048 90.00047 73.00047
+ 135854715.46044 105860866.63745 25852296.04647 25852298.16444 25852310.61445
+ 135854713.89847 81.00047 4.00044 9.00045
+ 03 10 31 0 19 30.0000000 0 7G 4G 5G 7G 9G11G26G28
+ 126562232.31246 98619980.65346 24083983.53048 24083983.77946 24083993.38346
+ 126562228.80148 162.00048 18.00046 19.00046
+ 125945688.14546 98139592.82446 23966645.41348 23966645.29046 23966655.86746
+ 125945686.63848 177.00048 27.00046 23.00046
+ 106445096.08448 82944332.23848 20255802.94849 20255802.78048 20255811.05248
+ 106445097.58249 769.00049 436.00048 403.00048
+ 106838896.94348 83251315.53948 20330692.69149 20330692.99948 20330700.83748
+ 106838896.43749 627.00049 316.00048 266.00048
+ 124376867.90546 96917070.70346 23668128.52148 23668129.01446 23668134.90546
+ 124376866.39248 198.00048 28.00046 39.00046
+ 130615155.29346 101778123.48046 24855223.44448 24855224.00646 24855235.37946
+ 130615152.78748 140.00048 15.00046 20.00046
+ 116936140.84247 91119202.26247 22252168.33348 22252168.45847 22252175.35647
+ 116936140.33148 355.00048 90.00047 72.00047
+ 03 10 31 0 19 40.0000000 0 8G 4G 5G 7G 9G11G26G28G29
+ 126865526.81346 98856314.90146 24141697.66648 24141697.92846 24141708.02446
+ 126865523.30848 157.00048 17.00046 19.00046
+ 125879508.65146 98088025.14746 23954051.62348 23954050.79646 23954061.22346
+ 125879507.14848 180.00048 25.00046 25.00046
+ 106522813.41548 83004891.61648 20270591.74049 20270591.56848 20270599.69148
+ 106522814.91449 770.00049 437.00048 402.00048
+ 106847536.04748 83258047.49948 20332336.56249 20332336.86448 20332344.72748
+ 106847535.54149 626.00049 313.00048 247.00048
+ 124103422.03646 96703996.47546 23616093.33148 23616093.56946 23616099.89246
+ 124103420.52448 205.00048 30.00046 41.00046
+ 130956243.11646 102043905.43546 24920130.86448 24920131.66646 24920142.05946
+ 130956240.59848 136.00048 11.00046 20.00046
+ 117041383.16347 91201209.64547 22272195.04448 22272195.08547 22272202.00247
+ 117041382.66248 355.00048 88.00047 72.00047
+ 136631493.58554 106466168.23155 26000107.92947 26000108.75244 26000125.79945
+ 136631489.15957 74.00047 4.00044 10.00045
+ 03 10 31 0 19 50.0000000 0 7G 4G 5G 7G 9G11G26G28
+ 127169479.67446 99093161.17846 24199538.15948 24199538.67146 24199548.02746
+ 127169476.17548 153.00048 17.00046 17.00046
+ 125815928.45746 98038482.67646 23941952.36448 23941952.29346 23941961.46746
+ 125815926.94348 181.00048 27.00046 27.00046
+ 106605115.25948 83069023.81748 20286252.60049 20286252.45948 20286260.38548
+ 106605116.75649 769.00049 435.00048 394.00048
+ 106862753.74248 83269906.75648 20335231.40149 20335231.68948 20335239.13448
+ 106862753.23749 628.00049 316.00048 261.00048
+ 123831137.97946 96491827.49946 23564279.02048 23564279.49046 23564285.60846
+ 123831136.48048 212.00048 33.00046 41.00046
+ 131299137.54146 102311094.94646 24985382.00348 24985383.09746 24985393.90946
+ 131299135.02248 130.00048 11.00046 19.00046
+ 117150242.86447 91286035.92747 22292909.95648 22292910.09647 22292916.83247
+ 117150242.35948 354.00048 89.00047 71.00047
+ 03 10 31 0 20 0.0000000 0 7G 4G 5G 7G 9G11G26G28
+ 127474058.14746 99330495.19346 24257497.33248 24257497.61946 24257507.90246
+ 127474054.63248 147.00048 14.00046 17.00046
+ 125754974.40246 97990987.54746 23930351.90448 23930351.74346 23930361.13346
+ 125754972.89348 184.00048 27.00046 28.00046
+ 106691977.58648 83136709.34948 20302781.50649 20302781.31948 20302789.11748
+ 106691979.08349 765.00049 430.00048 384.00048
+ 106884544.78648 83286886.97148 20339377.92849 20339378.19648 20339385.68748
+ 106884544.28149 627.00049 317.00048 267.00048
+ 123560051.38546 96280591.44646 23512692.82448 23512692.93846 23512699.01246
+ 123560049.87348 219.00048 34.00046 40.00046
+ 131643775.99745 102579644.75046 25050964.32548 25050965.35545 25050976.53246
+ 131643773.47848 126.00048 9.00045 20.00046
+ 117262684.49947 91373653.26747 22314306.57548 22314306.72747 22314313.10247
+ 117262683.99848 353.00048 90.00047 68.00047
+ 03 10 31 0 20 10.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 127779226.87546 99568289.48046 24315568.66848 24315569.68146 24315578.23246
+ 127779223.39848 143.00048 14.00046 18.00046
+ 125696668.56346 97945555.74546 23919255.76248 23919255.55046 23919264.22746
+ 125696667.04848 186.00048 27.00046 26.00046
+ 106783376.60948 83207929.52048 20320174.04849 20320173.85548 20320181.58348
+ 106783378.10649 760.00049 423.00048 379.00048
+ 106912909.14348 83308989.49548 20344775.13749 20344775.43348 20344782.76148
+ 106912908.63849 627.00049 314.00048 266.00048
+ 123290198.29446 96070316.53546 23461341.19748 23461341.39446 23461347.87446
+ 123290196.77448 226.00048 37.00046 42.00046
+ 128164951.38256 99868819.02156 24388978.78348 24388979.32346 24388985.74046
+ 128164947.87158 128.00048 13.00046 19.00046
+ 131990091.17745 102849501.56346 25116865.26048 25116866.11145 25116876.25246
+ 131990088.67048 121.00048 9.00045 22.00046
+ 117378671.61547 91464032.90347 22336378.11848 22336378.14347 22336384.46247
+ 117378671.10648 352.00048 88.00047 69.00047
+ 03 10 31 0 20 20.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 128084950.61946 99806516.24746 24373745.72748 24373745.92946 24373754.79646
+ 128084947.10848 138.00048 12.00046 16.00046
+ 125641031.05646 97902201.25646 23908668.57048 23908668.83846 23908677.19446
+ 125641029.54048 187.00048 28.00046 28.00046
+ 106879288.48648 83282666.08048 20338425.46949 20338425.24248 20338433.04448
+ 106879289.98349 753.00049 417.00048 374.00048
+ 106947840.01448 83336208.20048 20351422.33149 20351422.62148 20351430.01848
+ 106947839.50949 623.00049 314.00048 268.00048
+ 123021614.73146 95861030.82746 23410231.44848 23410231.55246 23410237.82646
+ 123021613.22248 234.00048 42.00046 45.00046
+ 127756765.30046 99550752.17046 24311303.32248 24311303.28746 24311309.22446
+ 127756761.81948 135.00048 16.00046 17.00046
+ 132338016.25345 103120612.52446 25183073.00548 25183074.12745 25183084.02946
+ 132338013.75648 118.00048 9.00045 21.00046
+ 117498168.99047 91557148.00447 22359117.54848 22359117.55647 22359123.96947
+ 117498168.48648 349.00048 87.00047 68.00047
+ 03 10 31 0 20 30.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 128391194.29345 100045148.08446 24432021.67048 24432022.18845 24432032.00546
+ 128391190.77648 134.00048 9.00045 16.00046
+ 125588092.35246 97860951.51046 23898593.79348 23898593.96846 23898602.24046
+ 125588090.82448 189.00048 30.00046 29.00046
+ 106979687.65148 83360898.98748 20357530.90349 20357530.73448 20357538.44548
+ 106979689.14849 747.00049 411.00048 368.00048
+ 106989331.72148 83368539.54348 20359317.92349 20359318.12348 20359325.50248
+ 106989331.21549 620.00049 309.00048 263.00048
+ 122754337.03946 95652762.72346 23359370.03448 23359370.13646 23359376.32546
+ 122754335.53048 242.00048 44.00046 44.00046
+ 127350110.34046 99233878.35746 24233919.52048 24233919.57846 24233925.97046
+ 127350106.82448 142.00048 18.00046 19.00046
+ 132687485.01045 103392925.53946 25249575.14848 25249575.57845 25249585.29846
+ 132687482.54448 114.00048 8.00045 18.00046
+ 117621138.71447 91652968.55747 22382517.87448 22382517.91047 22382524.26347
+ 117621138.20748 347.00048 86.00047 63.00047
+ 03 10 31 0 20 40.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 128697923.20046 100284157.82546 24490389.78648 24490390.96846 24490399.40646
+ 128697919.71548 129.00048 12.00046 17.00046
+ 125537868.40146 97821815.72746 23889036.96248 23889036.95046 23889045.46346
+ 125537866.88848 190.00048 28.00046 25.00046
+ 107084548.43148 83442608.61348 20377485.31849 20377485.12148 20377492.94948
+ 107084549.92949 743.00049 405.00048 362.00048
+ 107037374.07248 83405975.26748 20368459.91249 20368460.16848 20368467.50248
+ 107037373.56749 619.00049 309.00048 265.00048
+ 122488401.37546 95445540.30946 23308763.86848 23308764.13346 23308769.96246
+ 122488399.86648 250.00048 46.00046 44.00046
+ 126945062.06646 98918256.70746 24156841.22248 24156841.32246 24156847.25246
+ 126945058.56048 150.00048 19.00046 22.00046
+ 133038433.86345 103666391.73446 25316358.18748 25316359.59945 25316369.45446
+ 133038431.35248 112.00048 8.00045 17.00046
+ 117747542.63847 91751464.62947 22406572.10648 22406572.29247 22406578.64947
+ 117747542.13248 344.00048 84.00047 64.00047
+ 03 10 31 0 20 50.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 129005103.98645 100523519.86246 24548844.35948 24548844.46245 24548853.52046
+ 129005100.48348 125.00048 9.00045 17.00046
+ 125490386.16446 97784817.33246 23880000.58948 23880000.42346 23880008.82746
+ 125490384.66848 190.00048 29.00046 27.00046
+ 107193843.21848 83527773.38748 20398283.42049 20398283.23048 20398290.99348
+ 107193844.71549 738.00049 402.00048 358.00048
+ 107091955.30148 83448506.21348 20378846.29549 20378846.58148 20378853.89148
+ 107091954.79449 616.00049 304.00048 262.00048
+ 122223844.31046 95239392.19146 23258420.16048 23258420.30946 23258426.49446
+ 122223842.80348 257.00048 49.00046 47.00046
+ 126541695.85746 98603945.71646 24080082.87548 24080083.48746 24080088.49846
+ 126541692.35048 157.00048 22.00046 22.00046
+ 133390799.09745 103940962.07746 25383411.38648 25383413.28345 25383422.00346
+ 133390796.60748 109.00048 8.00045 18.00046
+ 117877344.57547 91852609.02347 22431272.60348 22431272.77947 22431279.33647
+ 117877344.06748 341.00048 82.00047 62.00047
+ 03 10 31 0 21 0.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 129312701.27845 100763205.87046 24607378.36848 24607380.30245 24607387.88546
+ 129312697.76348 121.00048 8.00045 15.00046
+ 125445666.32146 97749971.96446 23871489.73048 23871489.82846 23871498.42346
+ 125445664.80048 191.00048 29.00046 28.00046
+ 107307543.96048 83616371.50848 20419919.85149 20419919.66848 20419927.42948
+ 107307545.45849 736.00049 399.00048 355.00048
+ 107153061.32348 83496121.45448 20390474.27249 20390474.54848 20390481.85548
+ 107153060.81749 614.00049 304.00048 262.00048
+ 121960702.22347 95034346.57046 23208345.79748 23208346.17547 23208352.15946
+ 121960700.71448 265.00048 51.00047 48.00046
+ 126140087.84046 98291004.67746 24003659.13048 24003659.73846 24003665.27946
+ 126140084.32448 163.00048 22.00046 23.00046
+ 133744515.86345 104216585.67946 25450721.24548 25450721.13545 25450732.22546
+ 133744513.34948 107.00048 9.00045 18.00046
+ 118010505.05647 91956370.66147 22456611.93048 22456612.10047 22456618.41747
+ 118010504.55048 337.00048 81.00047 62.00047
+ 03 10 31 0 21 10.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 129620681.46845 101003189.86146 24665985.68248 24665986.59645 24665994.69846
+ 129620677.99848 118.00048 9.00045 15.00046
+ 125403726.42046 97717291.74546 23863508.62848 23863508.54146 23863517.09446
+ 125403724.90348 191.00048 29.00046 28.00046
+ 107425621.23048 83708379.93348 20442389.12349 20442388.92448 20442396.63348
+ 107425622.72749 733.00049 393.00048 349.00048
+ 107220675.62948 83548807.91148 20403340.91249 20403341.18748 20403348.43548
+ 107220675.12549 613.00049 299.00048 255.00048
+ 121699012.29547 94830432.63846 23158547.63048 23158547.84447 23158553.62146
+ 121699010.78448 271.00048 53.00047 49.00046
+ 125740314.55446 97979493.29946 23927584.82348 23927585.08246 23927591.51446
+ 125740311.06348 170.00048 25.00046 22.00046
+ 134099519.41845 104493212.05846 25518276.23948 25518276.95845 25518287.58046
+ 134099516.92248 104.00048 7.00045 17.00046
+ 118146983.76847 92062717.71047 22482583.10048 22482583.04747 22482589.40947
+ 118146983.26048 334.00048 77.00047 60.00047
+ 03 10 31 0 21 20.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 129929012.58145 101243447.46946 24724659.13048 24724659.67045 24724668.78646
+ 129929009.09348 114.00048 8.00045 15.00046
+ 125364589.18946 97686795.53146 23856060.81348 23856060.86946 23856068.65046
+ 125364587.67348 191.00048 29.00046 29.00046
+ 107548045.65848 83803776.09948 20465685.29249 20465685.16648 20465692.73848
+ 107548047.15549 729.00049 389.00048 348.00048
+ 107294781.10248 83606552.92048 20417442.33049 20417442.65448 20417449.72748
+ 107294780.59549 612.00049 300.00048 255.00048
+ 121438810.68547 94627678.26346 23109032.77648 23109033.41247 23109039.14146
+ 121438809.18348 275.00048 55.00047 50.00046
+ 125342453.05846 97669471.54246 23851874.05548 23851874.46346 23851880.59546
+ 125342449.56548 177.00048 27.00046 26.00046
+ 134455745.23245 104770790.48346 25586064.19148 25586064.93945 25586074.06146
+ 134455742.70048 103.00048 6.00045 16.00046
+ 118286741.67547 92171620.21247 22509177.90448 22509178.04947 22509184.54747
+ 118286741.16948 330.00048 78.00047 58.00047
+ 03 10 31 0 21 30.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 130237662.00045 101483953.67846 24783393.27248 24783394.14745 24783402.04346
+ 130237658.47248 110.00048 8.00045 17.00046
+ 125328272.99346 97658496.95046 23849150.38948 23849150.43046 23849158.49246
+ 125328271.48548 191.00048 29.00046 28.00046
+ 107674784.22448 83902533.22548 20489803.00649 20489802.82248 20489810.49148
+ 107674785.72049 724.00049 384.00048 343.00048
+ 107375354.92248 83669337.50648 20432775.21749 20432775.45348 20432782.59748
+ 107375354.41649 611.00049 298.00048 254.00048
+ 121180135.24747 94426113.36047 23059808.29148 23059808.35947 23059814.35147
+ 121180133.74348 281.00048 58.00047 52.00047
+ 124946580.83046 97360999.85846 23776542.19048 23776542.16646 23776547.87446
+ 124946577.32448 183.00048 29.00046 25.00046
+ 134813132.44645 105049275.21046 25654071.59448 25654071.54045 25654082.14146
+ 134813129.93148 101.00048 8.00045 15.00046
+ 118429737.04747 92283045.02647 22536389.15348 22536389.26547 22536395.70147
+ 118429736.54148 327.00048 76.00047 57.00047
+ 03 10 31 0 21 40.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 130546594.61345 101724680.12046 24842180.87848 24842181.80645 24842190.72446
+ 130546591.13548 109.00048 7.00045 14.00046
+ 125294799.15246 97632413.74546 23842780.18648 23842780.00946 23842788.37946
+ 125294797.64648 190.00048 29.00046 28.00046
+ 107805807.45848 84004629.44748 20514735.72649 20514735.52848 20514743.18148
+ 107805808.95549 716.00049 373.00048 340.00048
+ 107462376.94148 83737147.24548 20449334.54249 20449334.83948 20449341.90348
+ 107462376.43449 607.00049 296.00048 255.00048
+ 120923022.25947 94225765.83447 23010881.14348 23010881.16547 23010887.08047
+ 120923020.75448 284.00048 60.00047 52.00047
+ 124552775.62246 97054138.81946 23701603.15448 23701603.50046 23701609.65546
+ 124552772.11048 188.00048 33.00046 28.00046
+ 135171614.11045 105328612.10746 25722287.44047 25722289.21445 25722298.29946
+ 135171611.58047 100.00047 7.00045 17.00046
+ 118575932.12847 92396964.33447 22564208.34748 22564208.49947 22564214.62647
+ 118575931.62148 324.00048 74.00047 59.00047
+ 03 10 31 0 21 50.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 130855779.44045 101965603.21546 24901016.90348 24901018.50245 24901025.18046
+ 130855775.89848 106.00048 8.00045 16.00046
+ 125264184.79246 97608558.48746 23836954.37148 23836954.55346 23836962.44246
+ 125264183.28848 191.00048 29.00046 30.00046
+ 107941082.13048 84110038.57948 20540477.42349 20540477.23448 20540484.79148
+ 107941083.62749 705.00049 366.00048 336.00048
+ 107555820.15648 83809960.02248 20467116.28649 20467116.64048 20467123.73148
+ 107555819.65349 603.00049 291.00048 251.00048
+ 120667508.71047 94026664.45647 22962258.43748 22962259.04847 22962264.47547
+ 120667507.20448 289.00048 61.00047 54.00047
+ 124161115.49146 96748949.21646 23627072.76948 23627072.96146 23627078.98646
+ 124161111.98648 195.00048 32.00046 29.00046
+ 135531127.67045 105608753.00346 25790700.58347 25790702.18645 25790709.82146
+ 135531125.19247 98.00047 6.00045 15.00046
+ 118725281.68647 92513341.00047 22592628.36948 22592628.55947 22592634.56647
+ 118725281.18148 322.00048 73.00047 57.00047
+ 03 10 31 0 22 0.0000000 0 8G 4G 5G 7G 9G11G14G26G28
+ 131165184.14745 102206698.19846 24959894.83348 24959896.00145 24959903.16946
+ 131165180.70348 104.00048 7.00045 14.00046
+ 125236449.33446 97586947.01746 23831675.98348 23831675.99646 23831683.62646
+ 125236447.83248 192.00048 27.00046 29.00046
+ 108080574.42948 84218734.08848 20567021.71749 20567021.52248 20567029.07248
+ 108080575.92649 695.00049 354.00048 328.00048
+ 107655659.08848 83887756.67848 20486114.99049 20486115.23048 20486122.35148
+ 107655658.58249 597.00049 284.00048 250.00048
+ 120413632.58447 93828839.18047 22913947.25348 22913947.46447 22913952.94947
+ 120413631.07948 292.00048 63.00047 56.00047
+ 123771679.10746 96445492.41346 23552965.38248 23552965.68046 23552971.24046
+ 123771675.59648 200.00048 34.00046 30.00046
+ 135891610.97044 105889649.52646 25859297.66347 25859300.85744 25859308.74546
+ 135891608.42747 97.00047 5.00044 14.00046
+ 118877744.12847 92632142.81647 22621641.02748 22621641.27947 22621646.92847
+ 118877743.62448 319.00048 74.00047 58.00047
+ 03 10 31 0 22 10.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 131474775.26945 102447937.88146 25018807.85048 25018808.00945 25018816.94646
+ 131474771.73548 101.00048 7.00045 12.00046
+ 125211609.58346 97567592.21946 23826948.70648 23826948.53646 23826956.38546
+ 125211608.06748 191.00048 30.00046 29.00046
+ 108224250.22548 84330689.35848 20594362.25949 20594362.09948 20594369.57048
+ 108224251.72249 685.00049 342.00048 319.00048
+ 107761864.70148 83970514.55548 20506324.99049 20506325.34448 20506332.36648
+ 107761864.19349 593.00049 281.00048 247.00048
+ 120161430.73347 93632318.49847 22865954.59348 22865954.70447 22865960.47747
+ 120161429.22148 297.00048 64.00047 57.00047
+ 123384545.19446 96143829.75446 23479296.14448 23479296.49146 23479302.19946
+ 123384541.69548 205.00048 38.00046 32.00046
+ 127345036.02456 99229928.78156 24232954.51948 24232954.63846 24232962.25046
+ 127345035.50658 176.00048 26.00046 24.00046
+ 136252999.90245 106171251.27946 25928068.06747 25928069.41645 25928078.42346
+ 136252997.37347 94.00047 6.00045 15.00046
+ 119033278.32347 92753338.37347 22651238.21948 22651238.34647 22651244.37047
+ 119033277.81748 317.00048 71.00047 56.00047
+ 03 10 31 0 22 20.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 131784521.29945 102689298.33246 25077750.63547 25077750.71845 25077760.18046
+ 131784517.75947 100.00047 6.00045 13.00046
+ 125189680.98046 97550505.47146 23822775.32548 23822775.21746 23822782.92146
+ 125189679.47848 192.00048 28.00046 30.00046
+ 108372075.38148 84445878.18848 20622492.17349 20622492.01348 20622499.39848
+ 108372076.87949 674.00049 332.00048 313.00048
+ 107874406.05748 84058209.55648 20527740.58749 20527740.89448 20527747.82948
+ 107874405.55249 590.00049 278.00048 244.00048
+ 119910940.06347 93437130.93247 22818287.86048 22818288.09347 22818293.75147
+ 119910938.55648 301.00048 67.00047 59.00047
+ 122999792.78646 95844022.75846 23406080.14548 23406080.18646 23406086.11246
+ 122999789.28248 209.00048 39.00046 34.00046
+ 127071124.99646 99016491.72446 24180830.96748 24180831.10146 24180838.53846
+ 127071124.48248 180.00048 27.00046 24.00046
+ 136615230.61445 106453507.64346 25996998.99147 25996999.63945 25997011.37646
+ 136615228.16147 92.00047 6.00045 12.00046
+ 119191841.22247 92876894.02247 22681411.53048 22681411.76947 22681417.66747
+ 119191840.71848 315.00048 69.00047 53.00047
+ 03 10 31 0 22 30.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 132094390.71844 102930754.95646 25136716.77447 25136717.94444 25136727.82146
+ 132094387.20647 96.00047 5.00044 14.00046
+ 125170679.48246 97535699.13846 23819159.69148 23819159.93346 23819166.97446
+ 125170677.97348 193.00048 30.00046 30.00046
+ 108524013.08448 84564271.34748 20651404.82049 20651404.65648 20651411.98748
+ 108524014.58049 665.00049 324.00048 308.00048
+ 107993249.62148 84150815.28048 20550355.52649 20550355.81048 20550362.68048
+ 107993249.11549 587.00049 275.00048 240.00048
+ 119662198.58147 93243306.38947 22770953.83848 22770954.01947 22770959.81947
+ 119662197.07148 304.00048 67.00047 60.00047
+ 122617501.30246 95546133.32946 23333332.48148 23333332.63546 23333338.15146
+ 122617497.79848 214.00048 41.00046 35.00046
+ 126799704.41246 98804995.22446 24129181.44448 24129181.14146 24129188.76946
+ 126799703.92448 183.00048 27.00046 26.00046
+ 136978245.91045 106736376.26546 26066079.35347 26066079.38845 26066089.67046
+ 136978243.44347 90.00047 6.00045 13.00046
+ 119353389.21047 93002775.53647 22712153.13348 22712153.18147 22712159.20347
+ 119353388.70048 311.00048 69.00047 52.00047
+ 03 10 31 0 22 40.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 132404351.60844 103172282.35246 25195700.92547 25195702.60544 25195710.94146
+ 132404348.02747 95.00047 5.00044 13.00046
+ 125154621.39546 97523186.41346 23816103.62148 23816103.59946 23816111.29446
+ 125154619.89948 195.00048 31.00046 30.00046
+ 108680027.32348 84685840.95848 20681093.29749 20681093.12248 20681100.46248
+ 108680028.82149 659.00049 315.00048 299.00048
+ 108118360.51748 84248304.60948 20574163.08649 20574163.34848 20574170.09948
+ 108118360.01149 586.00049 275.00048 238.00048
+ 119415243.68947 93050873.94847 22723959.96148 22723960.22947 22723965.77647
+ 119415242.17848 308.00048 69.00047 61.00047
+ 122237750.52046 95250223.66146 23261068.24448 23261068.50246 23261074.08146
+ 122237747.01148 218.00048 41.00046 35.00046
+ 126530820.19446 98595475.05146 24078014.46548 24078013.89546 24078021.67646
+ 126530819.69448 186.00048 28.00046 26.00046
+ 137341983.79145 107019808.71646 26135295.60647 26135294.74945 26135306.58846
+ 137341981.25247 88.00047 7.00045 12.00046
+ 119517879.00847 93130949.41647 22743454.61748 22743454.57447 22743460.71247
+ 119517878.50148 307.00048 68.00047 51.00047
+ 03 10 31 0 22 50.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 132714373.62044 103413857.81746 25254696.29947 25254697.07944 25254706.03246
+ 132714370.10747 93.00047 5.00044 11.00046
+ 125141521.48846 97512978.70146 23813610.77348 23813610.58046 23813618.94046
+ 125141519.98648 196.00048 30.00046 30.00046
+ 108840081.12048 84810558.27248 20711550.49549 20711550.30048 20711557.63648
+ 108840082.61749 654.00049 309.00048 295.00048
+ 108249701.25048 84350648.00848 20599156.40549 20599156.73148 20599163.45648
+ 108249700.74549 583.00049 268.00048 233.00048
+ 119170112.99847 92859862.89847 22677313.22648 22677313.53447 22677319.32447
+ 119170111.48848 314.00048 71.00047 60.00047
+ 121860620.42446 94956356.08446 23189302.64948 23189302.68646 23189308.76046
+ 121860616.90848 223.00048 46.00046 37.00046
+ 126264518.11246 98387967.02246 24027338.75248 24027338.64146 24027346.27246
+ 126264517.60748 188.00048 32.00046 29.00046
+ 137706380.97044 107303755.05146 26204638.23547 26204638.04144 26204647.80046
+ 137706378.55547 86.00047 4.00044 13.00046
+ 119685266.69847 93261381.46246 22775307.36448 22775307.39447 22775313.22646
+ 119685266.19348 302.00048 64.00047 50.00046
+ 03 10 31 0 23 0.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 133024425.67544 103655456.54746 25313697.34347 25313697.74044 25313708.23646
+ 133024422.18347 91.00047 4.00044 13.00046
+ 125131393.48046 97505086.51346 23811683.62848 23811683.42046 23811691.07246
+ 125131391.97048 197.00048 30.00046 31.00046
+ 109004136.67248 84938393.81848 20742769.20949 20742769.01648 20742776.30748
+ 109004138.16849 648.00049 305.00048 291.00048
+ 108387233.97548 84457816.48048 20625327.92649 20625328.22248 20625334.97848
+ 108387233.47049 579.00049 265.00048 228.00048
+ 118926844.36847 92670302.88347 22631020.76448 22631020.89947 22631026.62647
+ 118926842.85748 319.00048 74.00047 61.00047
+ 121486191.14546 94664593.08046 23118051.30948 23118051.47346 23118057.28946
+ 121486187.64348 228.00048 46.00046 39.00046
+ 126000843.51246 98182506.48546 23977162.87948 23977162.72746 23977170.25146
+ 126000843.00748 191.00048 30.00046 30.00046
+ 138071377.20543 107588168.14846 26274093.94747 26274095.30343 26274105.02346
+ 138071374.67047 83.00047 3.00043 13.00046
+ 119855507.62847 93394036.74246 22807702.93648 22807703.05247 22807708.89546
+ 119855507.12748 297.00048 63.00047 49.00046
+ 03 10 31 0 23 10.0000000 0 8G 4G 5G 7G 9G11G14G23G28
+ 133334477.61544 103897055.37846 25372697.89647 25372698.05544 25372709.97746
+ 133334474.07647 89.00047 5.00044 12.00046
+ 125124251.66246 97499521.47746 23810324.51648 23810324.90746 23810331.96946
+ 125124250.15948 198.00048 30.00046 31.00046
+ 109172155.41848 85069317.49048 20774742.07949 20774741.93848 20774749.25148
+ 109172156.91549 642.00049 299.00048 283.00048
+ 108530917.48348 84569777.66048 20652669.96849 20652670.25248 20652677.01748
+ 108530916.97849 573.00049 258.00048 225.00048
+ 118685475.28647 92482223.03347 22585089.82248 22585090.10547 22585095.78747
+ 118685473.77648 325.00048 77.00047 63.00047
+ 121114543.08346 94374997.23946 23047328.90248 23047329.24246 23047334.78046
+ 121114539.57548 234.00048 48.00046 40.00046
+ 125739841.20546 97979128.24046 23927495.68848 23927495.72446 23927503.25846
+ 125739840.71148 193.00048 32.00046 30.00046
+ 120028557.24547 93528880.59046 22840633.31048 22840633.41647 22840639.12246
+ 120028556.74048 292.00048 61.00047 47.00046
+ 03 10 31 0 23 20.0000000 0 8G 4G 5G 7G 9G11G14G23G28
+ 133644498.99244 104138630.58646 25431693.46647 25431695.07944 25431701.91246
+ 133644495.47747 86.00047 5.00044 11.00046
+ 125120108.69846 97496293.40046 23809536.20948 23809536.36246 23809543.61946
+ 125120107.20348 198.00048 32.00046 30.00046
+ 109344098.58048 85203299.22048 20807461.82849 20807461.59148 20807468.83548
+ 109344100.07849 633.00049 291.00048 279.00048
+ 108680709.54048 84686498.79448 20681174.39049 20681174.71548 20681181.47548
+ 108680709.03549 567.00049 255.00048 220.00048
+ 118446043.51647 92295652.79147 22539527.42148 22539527.64147 22539533.41047
+ 118446042.00748 330.00048 80.00047 65.00047
+ 120745756.69347 94087631.25946 22977151.13448 22977151.13947 22977157.05646
+ 120745753.18848 240.00048 51.00047 42.00046
+ 125481555.57646 97777866.62646 23878345.77048 23878345.47346 23878353.06046
+ 125481555.07248 196.00048 31.00046 31.00046
+ 120204370.74447 93665878.19446 22874089.46148 22874089.41647 22874095.33846
+ 120204370.23348 285.00048 56.00047 47.00046
+ 03 10 31 0 23 30.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 133954458.89344 104380157.72246 25490676.22647 25490676.94844 25490689.42546
+ 133954455.37847 85.00047 5.00044 11.00046
+ 125118976.56246 97495411.47446 23809320.50948 23809320.49746 23809328.03446
+ 125118975.06148 199.00048 32.00046 32.00046
+ 109519926.02148 85340307.48948 20840920.72549 20840920.51248 20840927.85048
+ 109519927.51949 623.00049 284.00048 272.00048
+ 108836565.82748 84807945.33048 20710832.81349 20710833.08448 20710839.82648
+ 108836565.32149 559.00049 248.00048 214.00048
+ 118208587.14947 92110622.03847 22494340.85748 22494341.07647 22494346.84447
+ 118208585.64248 338.00048 84.00047 65.00047
+ 120379912.80747 93802558.16146 22907533.22548 22907533.27147 22907539.34446
+ 120379909.30848 248.00048 55.00047 45.00046
+ 125226031.50746 97578756.89346 23829721.21548 23829721.05946 23829728.46546
+ 125226031.01148 199.00048 33.00046 31.00046
+ 139169278.65053 108443629.31855 26483032.13847 26483033.21643 26483041.86545
+ 139169273.14157 76.00047 3.00043 10.00045
+ 120382902.17647 93804993.45746 22908062.90248 22908062.77747 22908068.99846
+ 120382901.67248 279.00048 54.00047 45.00046
+ 03 10 31 0 23 40.0000000 0 8G 4G 5G 7G 9G11G14G23G28
+ 134264327.91143 104621614.93046 25549643.08347 25549643.32043 25549649.11046
+ 134264324.47947 82.00047 3.00043 11.00046
+ 125120865.61646 97496883.24346 23809680.19148 23809679.98646 23809687.72546
+ 125120864.11948 199.00048 31.00046 30.00046
+ 109699597.80048 85480311.37448 20875111.19449 20875110.99148 20875118.36448
+ 109699599.29749 611.00049 274.00048 266.00048
+ 108998440.18148 84934081.24848 20741636.37949 20741636.66248 20741643.46348
+ 108998439.67649 552.00049 241.00048 211.00048
+ 117973143.22947 91927159.29547 22449537.45348 22449537.61947 22449543.45047
+ 117973141.72248 344.00048 86.00047 65.00047
+ 120017092.21747 93519840.83646 22838490.84048 22838491.07047 22838496.56846
+ 120017088.71548 256.00048 57.00047 48.00046
+ 124973313.42446 97381833.75046 23781630.44748 23781630.38546 23781637.46346
+ 124973312.92248 203.00048 34.00046 32.00046
+ 120564106.66647 93946191.76846 22942545.00148 22942545.22147 22942551.01446
+ 120564106.15848 273.00048 54.00047 45.00046
+ 03 10 31 0 23 50.0000000 0 9G 4G 5G 7G 9G11G14G23G26G28
+ 134574076.53944 104862977.62746 25608586.05147 25608584.24744 25608597.16346
+ 134574073.02947 81.00047 4.00044 11.00046
+ 125125788.22646 97500719.08446 23810616.91748 23810616.99346 23810624.19646
+ 125125786.72348 199.00048 32.00046 32.00046
+ 109883073.25648 85623279.24748 20910025.40049 20910025.23148 20910032.58248
+ 109883074.75349 599.00049 261.00048 260.00048
+ 109166284.82448 85064869.29748 20773576.19349 20773576.43248 20773583.23548
+ 109166284.31849 547.00049 236.00048 208.00048
+ 117739749.58347 91745294.09647 22405124.13448 22405124.26147 22405129.86847
+ 117739748.07848 350.00048 90.00047 67.00047
+ 119657375.95547 93239542.46646 22770038.90448 22770039.30247 22770044.66646
+ 119657372.45048 265.00048 60.00047 48.00046
+ 124723444.75246 97187130.86146 23734081.79948 23734081.97246 23734089.43746
+ 124723444.24648 207.00048 34.00046 33.00046
+ 139903154.16453 109015481.87055 26622683.04547 26622685.14943 26622694.23645
+ 139903142.69957 73.00047 3.00043 10.00045
+ 120747938.08546 94089437.02546 22977527.06548 22977527.21446 22977533.15646
+ 120747937.57748 268.00048 49.00046 44.00046
+ 03 10 31 0 24 0.0000000 0 8G 4G 5G 7G 9G11G14G23G28
+ 134883675.11843 105104223.51046 25667500.92547 25667499.49243 25667505.53346
+ 134883671.77747 79.00047 2.00043 11.00046
+ 125133753.67646 97506925.90146 23812132.69148 23812132.65046 23812139.74046
+ 125133752.15748 199.00048 30.00046 30.00046
+ 110070310.93848 85769178.80648 20945655.52549 20945655.33848 20945662.63148
+ 110070312.43449 588.00049 251.00048 252.00048
+ 109340050.31148 85200270.95648 20806642.62649 20806643.01148 20806649.72248
+ 109340049.80549 542.00049 231.00048 203.00048
+ 117508444.34047 91565056.33547 22361107.95348 22361108.25347 22361113.88647
+ 117508442.83248 358.00048 93.00047 68.00047
+ 119300845.03947 92961726.18147 22702193.41248 22702193.54047 22702199.34447
+ 119300841.53648 273.00048 66.00047 52.00047
+ 124476469.20546 96994682.41346 23687084.08048 23687084.44346 23687090.88146
+ 124476468.71048 213.00048 38.00046 34.00046
+ 120934350.09946 94234693.02246 23013000.01448 23013000.04646 23013006.14146
+ 120934349.59648 263.00048 48.00046 41.00046
+ 03 10 31 0 24 10.0000000 0 9G 4G 5G 7G 9G11G14G20G23G28
+ 135193094.38043 105345328.32746 25726381.82947 25726383.19343 25726394.08346
+ 135193091.76647 77.00047 2.00043 11.00046
+ 125144771.47546 97515511.21546 23814229.26048 23814229.12446 23814236.53946
+ 125144769.97548 197.00048 32.00046 32.00046
+ 110261268.72748 85917977.13248 20981993.49649 20981993.33848 20982000.68648
+ 110261270.22449 577.00049 243.00048 246.00048
+ 109519685.68348 85340246.59848 20840826.10149 20840826.42548 20840833.15148
+ 109519685.17849 536.00049 228.00048 198.00048
+ 117279264.84747 91386474.94547 22317496.60748 22317496.85147 22317502.28047
+ 117279263.33548 364.00048 96.00047 70.00047
+ 118947580.54447 92686455.13747 22634969.24148 22634969.66947 22634975.39947
+ 118947577.04048 283.00048 70.00047 54.00047
+ 129491264.17256 100902315.54856 24641368.63548 24641368.34246 24641376.08646
+ 129491265.66558 135.00048 17.00046 19.00046
+ 124232429.72646 96804521.75546 23640644.98348 23640644.64746 23640652.19746
+ 124232429.21948 218.00048 39.00046 38.00046
+ 121123297.03146 94381924.47546 23048955.56148 23048955.67646 23048961.80146
+ 121123296.53348 259.00048 46.00046 41.00046
+ 03 10 31 0 24 20.0000000 0 10G 4G 5G 7G 9G11G14G20G23G26G28
+ 135502305.51343 105586271.68245 25785222.73847 25785217.76143 25785231.32145
+ 135502304.09647 74.00047 3.00043 10.00045
+ 125158850.07846 97526481.42446 23816908.47148 23816908.32946 23816915.84946
+ 125158848.56148 198.00048 32.00046 30.00046
+ 110455904.20348 86069641.21348 21019031.36849 21019031.22048 21019038.49748
+ 110455905.70049 567.00049 234.00048 237.00048
+ 109705138.25348 85484755.14448 20876116.54149 20876116.79348 20876123.56548
+ 109705137.74749 532.00049 221.00048 192.00048
+ 117052248.78947 91209579.28847 22274296.91648 22274297.18947 22274302.65947
+ 117052247.27348 370.00048 100.00047 73.00047
+ 118597663.66747 92413792.62947 22568382.46748 22568382.74547 22568388.39947
+ 118597660.16348 292.00048 75.00047 58.00047
+ 129330059.94546 100776702.12746 24610692.42548 24610691.89046 24610699.75146
+ 129330061.43048 135.00048 17.00046 20.00046
+ 123991368.97546 96616682.17946 23594772.71048 23594772.83746 23594780.14046
+ 123991368.48148 224.00048 42.00046 36.00046
+ 141005635.50053 109874524.26355 26832478.55547 26832480.42443 26832481.09945
+ 141005625.82557 67.00047 3.00043 9.00045
+ 121314731.41046 94531093.94146 23085384.32648 23085384.58546 23085390.40146
+ 121314730.90848 255.00048 46.00046 38.00046
+ 03 10 31 0 24 30.0000000 0 9G 4G 5G 7G 9G11G14G20G23G28
+ 135811281.55243 105827032.20746 25844018.52047 25844014.96843 25844029.27546
+ 135811280.01847 74.00047 3.00043 11.00046
+ 125175998.45346 97539844.09346 23820171.29548 23820171.42246 23820178.47046
+ 125175996.95148 197.00048 31.00046 31.00046
+ 110654174.20748 86224137.29148 21056760.92049 21056760.77848 21056767.99748
+ 110654175.70449 559.00049 227.00048 230.00048
+ 109896353.30548 85633753.70848 20912503.68549 20912503.97948 20912510.72448
+ 109896352.79849 527.00049 218.00048 184.00048
+ 116827433.91548 91034398.86447 22231516.01348 22231516.41548 22231521.84447
+ 116827432.40848 375.00048 102.00048 71.00047
+ 118251175.49147 92143801.83447 22502447.91548 22502448.16347 22502454.01447
+ 118251171.98548 301.00048 81.00047 61.00047
+ 129169854.18646 100651866.42646 24580206.08448 24580206.39446 24580212.51446
+ 129169855.67948 136.00048 17.00046 19.00046
+ 123753329.41446 96431196.78846 23549475.35348 23549475.36846 23549482.81146
+ 123753328.91148 231.00048 45.00046 37.00046
+ 121508607.58646 94682166.41646 23122277.70148 23122277.75946 23122283.65146
+ 121508607.08448 251.00048 44.00046 40.00046
+ 03 10 31 0 24 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125196222.57446 97555603.19146 23824019.90448 23824019.84946 23824026.91846
+ 125196221.06748 196.00048 30.00046 30.00046
+ 110856035.62148 86381431.88948 21095173.90849 21095173.73148 21095181.03748
+ 110856037.11749 551.00049 219.00048 221.00048
+ 110093275.63448 85787199.55648 20949976.86149 20949977.13748 20949983.92248
+ 110093275.12949 522.00049 212.00048 179.00048
+ 116604857.70448 90860962.79547 22189161.29548 22189161.43448 22189167.06547
+ 116604856.19648 381.00048 106.00048 76.00047
+ 117908197.08547 91876545.91847 22437181.38548 22437181.54947 22437187.37847
+ 117908193.58348 310.00048 85.00047 64.00047
+ 129010679.96346 100527834.39846 24549916.63548 24549917.06346 24549923.31346
+ 129010681.46248 136.00048 17.00046 19.00046
+ 123518352.91646 96248098.23346 23504760.66448 23504760.66746 23504768.06146
+ 123518352.40948 237.00048 48.00046 40.00046
+ 121704877.96046 94835104.43346 23159626.62648 23159626.77446 23159632.75946
+ 121704877.46048 248.00048 42.00046 37.00046
+ 03 10 31 0 24 50.0000000 0 9G 4G 5G 7G 9G11G14G20G23G28
+ 136428366.52953 106307842.92555 25961454.48247 25961454.96943 25961461.21945
+ 136428363.64057 71.00047 3.00043 10.00045
+ 125219529.48746 97573764.47346 23828455.03948 23828454.93746 23828462.33346
+ 125219527.97748 195.00048 31.00046 31.00046
+ 111061444.46348 86541490.67048 21134261.97849 21134261.75948 21134269.08848
+ 111061445.96049 544.00049 213.00048 213.00048
+ 110295847.95548 85945047.98048 20988525.19149 20988525.44748 20988532.28348
+ 110295847.45149 517.00049 209.00048 174.00048
+ 116384557.69348 90689300.32647 22147239.57548 22147240.02748 22147245.57247
+ 116384556.18548 386.00048 110.00048 79.00047
+ 117568809.58747 91612088.15847 22372598.10848 22372598.24747 22372604.22747
+ 117568806.08548 318.00048 88.00047 66.00047
+ 128852570.65146 100404632.27646 24519829.55348 24519829.66446 24519836.35446
+ 128852572.14448 138.00048 17.00046 20.00046
+ 123286480.69546 96067418.50546 23460637.03748 23460637.05246 23460644.22946
+ 123286480.19548 242.00048 49.00046 39.00046
+ 121903495.42846 94989871.27146 23197422.39048 23197422.27946 23197428.79546
+ 121903494.92848 245.00048 42.00046 35.00046
+ 03 10 31 0 25 0.0000000 0 9G 4G 5G 7G 9G11G14G20G23G28
+ 136736463.58543 106547919.69545 26020083.95647 26020084.96043 26020092.62045
+ 136736462.19347 69.00047 2.00043 8.00045
+ 125245923.85846 97594330.98346 23833478.06648 23833478.36646 23833485.60246
+ 125245922.33648 194.00048 31.00046 28.00046
+ 111270356.57448 86704279.24948 21174016.60349 21174016.47048 21174023.75448
+ 111270358.07349 536.00049 207.00048 208.00048
+ 110504011.91048 86107253.59948 21028137.54149 21028137.84448 21028144.64548
+ 110504011.40549 511.00049 204.00048 167.00048
+ 116166571.36448 90519440.66047 22105758.37248 22105758.66548 22105764.32747
+ 116166569.85648 391.00048 112.00048 80.00047
+ 117233093.77747 91350491.40747 22308713.48748 22308713.58947 22308719.49247
+ 117233090.27448 326.00048 93.00047 68.00047
+ 128695559.33146 100282285.87546 24489950.95848 24489950.91546 24489958.18146
+ 128695560.82148 140.00048 18.00046 21.00046
+ 123057754.28646 95889190.19946 23417111.90148 23417111.98446 23417119.18846
+ 123057753.78448 248.00048 48.00046 42.00046
+ 122104412.74746 95146430.12446 23235655.77948 23235655.89246 23235661.49246
+ 122104412.24148 242.00048 40.00046 34.00046
+ 03 10 31 0 25 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125275412.52946 97617308.92446 23839089.86748 23839089.88846 23839097.15146
+ 125275411.03348 193.00048 30.00046 30.00046
+ 111482727.51448 86869763.14048 21214429.45249 21214429.23948 21214436.62748
+ 111482729.01049 529.00049 204.00048 203.00048
+ 110717707.47948 86273769.59148 21068802.44549 21068802.76548 21068809.57248
+ 110717706.97349 505.00049 201.00048 160.00048
+ 115950936.76048 90351413.75747 22064724.40348 22064724.80648 22064730.38647
+ 115950935.25348 395.00048 113.00048 83.00047
+ 116901130.63547 91091818.85147 22245542.95948 22245543.24447 22245548.96147
+ 116901127.13248 332.00048 95.00047 71.00047
+ 128539678.52046 100160820.27846 24460287.84148 24460286.94046 24460294.88346
+ 128539680.02048 142.00048 18.00046 20.00046
+ 122832213.76247 95713444.31346 23374192.70148 23374192.72847 23374200.18546
+ 122832213.26048 253.00048 52.00047 42.00046
+ 122307582.94346 95304744.57546 23274317.52548 23274317.59846 23274323.55746
+ 122307582.43548 239.00048 41.00046 35.00046
+ 03 10 31 0 25 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125307999.72546 97642701.48746 23845291.13848 23845291.07346 23845298.40146
+ 125307998.21948 193.00048 31.00046 30.00046
+ 111698511.84248 87037906.74648 21255491.85949 21255491.59848 21255499.02348
+ 111698513.33949 522.00049 196.00048 195.00048
+ 110936873.39448 86444548.23748 21110508.34648 21110508.63248 21110515.48648
+ 110936872.88848 498.00048 195.00048 155.00048
+ 115737690.94348 90185248.38747 22024144.96348 22024145.18248 22024150.87147
+ 115737689.43648 400.00048 115.00048 86.00047
+ 116573000.58147 90836133.08847 22183101.90248 22183102.07747 22183107.96147
+ 116572997.07448 338.00048 100.00047 72.00047
+ 128384962.01546 100040262.13846 24430846.26348 24430846.08646 24430853.37746
+ 128384963.49048 143.00048 17.00046 21.00046
+ 122609899.11147 95540212.00146 23331887.93548 23331887.83247 23331895.31846
+ 122609898.61548 257.00048 54.00047 46.00046
+ 122512957.99346 95464776.90446 23313399.23248 23313399.09146 23313405.24546
+ 122512957.48748 235.00048 39.00046 33.00046
+ 03 10 31 0 25 30.0000000 0 9G 4G 5G 7G 9G11G14G20G23G28
+ 137658558.38253 107266447.39455 26195552.39147 26195552.82743 26195562.23245
+ 137658556.68457 67.00047 2.00043 9.00045
+ 125343689.35346 97670511.90046 23852082.16648 23852082.21546 23852089.95446
+ 125343687.85248 192.00048 30.00046 29.00046
+ 111917664.30948 87208674.88348 21297195.22749 21297195.06648 21297202.31248
+ 111917665.80749 513.00049 191.00048 194.00048
+ 111161446.85948 86619540.45548 21153243.29648 21153243.59448 21153250.46648
+ 111161446.35448 491.00048 188.00048 150.00048
+ 115526870.44448 90020972.68447 21984027.09848 21984027.41748 21984033.07547
+ 115526868.93648 404.00048 118.00048 88.00047
+ 116248784.00848 90583496.77047 22121405.69648 22121405.79648 22121411.56347
+ 116248780.50848 343.00048 103.00048 73.00047
+ 128231441.65146 99920635.75846 24401632.59348 24401632.36746 24401639.17746
+ 128231443.15248 147.00048 20.00046 21.00046
+ 122390849.80347 95369523.94046 23290204.38948 23290204.54347 23290211.70846
+ 122390849.30148 261.00048 56.00047 49.00046
+ 122720491.10646 95626491.02646 23352891.66048 23352891.89546 23352897.73946
+ 122720490.59848 233.00048 37.00046 34.00046
+ 03 10 31 0 25 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125382483.03746 97700740.74346 23859464.65848 23859464.07646 23859472.35446
+ 125382481.53148 192.00048 29.00046 28.00046
+ 112140139.15548 87382031.89048 21339530.79749 21339530.60848 21339537.99048
+ 112140140.65249 504.00049 185.00048 187.00048
+ 111391364.54048 86798697.07648 21196995.22048 21196995.49548 21197002.36748
+ 111391364.03448 483.00048 181.00048 144.00048
+ 115318512.49648 89858615.70747 21944377.94648 21944378.39148 21944384.22347
+ 115318510.98848 408.00048 121.00048 88.00047
+ 115928561.18248 90333972.47147 22060469.21848 22060469.41348 22060475.20147
+ 115928557.68248 347.00048 106.00048 78.00047
+ 128079151.75346 99801968.36946 24372652.70448 24372652.89046 24372659.56546
+ 128079153.27648 149.00048 20.00046 22.00046
+ 122175105.74047 95201411.70246 23249149.58448 23249149.57147 23249157.27146
+ 122175105.23948 266.00048 58.00047 49.00046
+ 122930133.88546 95789848.84046 23392785.58048 23392785.50946 23392791.52846
+ 122930133.37548 229.00048 37.00046 31.00046
+ 03 10 31 0 25 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125424383.95146 97733390.94346 23867437.82748 23867437.92246 23867445.17246
+ 125424382.44548 192.00048 30.00046 29.00046
+ 112365890.05148 87557941.54148 21382489.87448 21382489.66948 21382497.03248
+ 112365891.54948 495.00048 178.00048 181.00048
+ 111626561.42848 86981967.40548 21241751.64448 21241752.01648 21241758.84048
+ 111626560.92348 474.00048 175.00048 139.00048
+ 115112654.62648 89698206.93947 21905204.58548 21905204.85448 21905210.59247
+ 115112653.11548 413.00048 125.00048 91.00047
+ 115612411.84948 90087622.29347 22000307.97948 22000308.20248 22000314.04447
+ 115612408.34948 353.00048 108.00048 78.00047
+ 127928124.78846 99684284.88146 24343913.37648 24343913.27546 24343919.69146
+ 127928126.28048 152.00048 20.00046 22.00046
+ 121962704.98647 95035904.70546 23208731.05148 23208730.88047 23208738.46146
+ 121962704.48948 269.00048 60.00047 50.00046
+ 123141839.03746 95954813.71446 23433071.66248 23433072.02946 23433077.39346
+ 123141838.53648 225.00048 36.00046 32.00046
+ 03 10 31 0 26 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125469392.84646 97768462.77346 23876002.88348 23876002.65546 23876010.33946
+ 125469391.34048 192.00048 28.00046 28.00046
+ 112594870.87048 87736368.00348 21426063.60048 21426063.34648 21426070.83248
+ 112594872.36848 487.00048 169.00048 177.00048
+ 111866971.38448 87169299.83348 21287500.17948 21287500.44548 21287507.42348
+ 111866970.87948 465.00048 169.00048 133.00048
+ 114909333.36848 89539774.78247 21866513.89648 21866514.11348 21866519.81747
+ 114909331.86348 418.00048 128.00048 92.00047
+ 115300415.65548 89844508.32647 21940937.06048 21940937.37148 21940943.40747
+ 115300412.15448 361.00048 114.00048 81.00047
+ 127778394.41346 99567611.85046 24315420.44548 24315420.76446 24315427.66946
+ 127778395.89548 155.00048 20.00046 21.00046
+ 121753684.98847 94873031.86447 23168955.95448 23168955.89147 23168963.51347
+ 121753684.48148 274.00048 62.00047 54.00047
+ 123355559.11546 96121348.77546 23473741.38848 23473741.27946 23473747.36446
+ 123355558.60448 221.00048 35.00046 30.00046
+ 03 10 31 0 26 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125517511.04346 97805957.57546 23885159.28248 23885159.12646 23885167.08446
+ 125517509.53948 192.00048 30.00046 29.00046
+ 112827034.80248 87917274.73048 21470243.14948 21470242.88348 21470250.37648
+ 112827036.30048 477.00048 164.00048 168.00048
+ 112112527.18948 87360641.93748 21334227.93648 21334228.20548 21334235.07048
+ 112112526.68348 457.00048 162.00048 129.00048
+ 114708585.57248 89383348.00847 21828312.67948 21828313.13848 21828318.75647
+ 114708584.06648 423.00048 133.00048 92.00047
+ 114992651.93448 89604692.44347 21882371.67848 21882371.85748 21882377.68447
+ 114992648.42948 371.00048 120.00048 82.00047
+ 127629993.69146 99451974.97046 24287180.78448 24287181.20646 24287188.02746
+ 127629995.18648 157.00048 21.00046 21.00046
+ 121548083.62447 94712823.01347 23129831.24648 23129831.13647 23129839.02947
+ 121548083.11948 278.00048 63.00047 54.00047
+ 123571245.70246 96289416.03446 23514785.23848 23514785.43746 23514791.71946
+ 123571245.20248 216.00048 33.00046 29.00046
+ 03 10 31 0 26 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125568738.33346 97845875.07346 23894907.50648 23894907.39946 23894914.97646
+ 125568736.83348 192.00048 30.00046 28.00046
+ 113062335.31248 88100625.65548 21515019.37548 21515019.14848 21515026.73548
+ 113062336.81148 469.00048 159.00048 164.00048
+ 112363160.95348 87555940.92548 21381922.01748 21381922.26548 21381929.08848
+ 112363160.44948 450.00048 159.00048 125.00048
+ 114510447.68748 89228954.97247 21790608.22148 21790608.57748 21790614.20947
+ 114510446.17748 428.00048 134.00048 95.00047
+ 114689199.19248 89368235.69947 21824626.64448 21824626.70548 21824632.75347
+ 114689195.69248 384.00048 129.00048 86.00047
+ 127482955.95046 99337400.22846 24259200.38848 24259200.35046 24259207.36746
+ 127482957.45248 159.00048 23.00046 24.00046
+ 121345937.69747 94555306.78747 23091364.16248 23091364.02547 23091371.68947
+ 121345937.19348 283.00048 65.00047 57.00047
+ 123788851.23846 96458978.55046 23556194.52648 23556194.61546 23556201.00446
+ 123788850.73948 211.00048 32.00046 28.00046
+ 03 10 31 0 26 30.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125623073.30046 97888213.82346 23905247.26448 23905247.03846 23905254.80946
+ 125623071.79948 193.00048 30.00046 27.00046
+ 113300725.12848 88286383.87748 21560383.50648 21560383.27048 21560390.83548
+ 113300726.62548 461.00048 155.00048 157.00048
+ 112618803.30648 87755142.63448 21430569.19648 21430569.50348 21430576.40048
+ 112618802.80348 443.00048 152.00048 119.00048
+ 114314956.24248 89076624.28247 21753407.30648 21753407.53448 21753413.11847
+ 114314954.73648 435.00048 139.00048 93.00047
+ 114390136.08348 89135199.52147 21767716.82248 21767716.94948 21767722.93847
+ 114390132.58048 398.00048 137.00048 89.00047
+ 127337313.81246 99223912.74446 24231485.57948 24231485.60446 24231492.44346
+ 127337315.30848 162.00048 25.00046 22.00046
+ 121147282.72447 94400510.55847 23053561.53248 23053561.40747 23053568.97547
+ 121147282.22448 287.00048 68.00047 57.00047
+ 124008328.29746 96629999.56046 23597959.31048 23597959.63446 23597966.10546
+ 124008327.80448 205.00048 31.00046 27.00046
+ 03 10 31 0 26 40.0000000 0 9G 4G 5G 7G 9G11G14G20G23G28
+ 139793929.51653 108930347.78455 26601892.96947 26601900.29043 26601903.55545
+ 139793890.12957 62.00047 2.00043 8.00045
+ 125680515.01446 97932973.35746 23916178.25548 23916177.82746 23916185.72746
+ 125680513.50348 191.00048 30.00046 28.00046
+ 113542156.98448 88474512.59548 21606326.44948 21606326.27148 21606333.75548
+ 113542158.48148 454.00048 148.00048 152.00048
+ 112879384.40748 87958192.74948 21480156.21748 21480156.60048 21480163.46848
+ 112879383.89948 436.00048 148.00048 116.00048
+ 114122146.27948 88926382.65647 21716716.75248 21716717.13948 21716722.62447
+ 114122144.77248 440.00048 142.00048 97.00047
+ 114095540.29148 88905644.34647 21711657.08848 21711657.24448 21711663.10647
+ 114095536.78848 413.00048 148.00048 92.00047
+ 127193101.68846 99111540.00946 24204042.50648 24204042.31946 24204049.39946
+ 127193103.17248 165.00048 25.00046 22.00046
+ 120952154.81447 94248462.72347 23016429.91148 23016430.01747 23016437.86547
+ 120952154.30848 292.00048 71.00047 57.00047
+ 124229627.75446 96802440.06146 23640071.74548 23640072.35646 23640078.04146
+ 124229627.24248 200.00048 29.00046 27.00046
+ 03 10 31 0 26 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125741061.52646 97980152.31746 23927699.79448 23927699.75146 23927706.88946
+ 125741060.01648 191.00048 29.00046 27.00046
+ 113786582.64648 88664973.99348 21652839.19648 21652839.07748 21652846.71648
+ 113786584.14248 447.00048 145.00048 147.00048
+ 113144833.19348 88165035.85148 21530669.58748 21530669.80748 21530676.75048
+ 113144832.68748 429.00048 143.00048 111.00048
+ 113932054.88548 88778259.53047 21680543.59348 21680543.83448 21680549.56447
+ 113932053.37448 445.00048 145.00048 99.00047
+ 113805489.23748 88679630.53647 21656462.24448 21656462.27848 21656468.27947
+ 113805485.73248 426.00048 158.00048 97.00047
+ 127050351.64746 99000306.51246 24176878.10548 24176877.92946 24176884.37746
+ 127050353.14848 167.00048 25.00046 23.00046
+ 120760588.84747 94099190.47247 22979976.08248 22979976.25847 22979984.06247
+ 120760588.34548 297.00048 73.00047 62.00047
+ 124452702.86346 96976264.25246 23682522.18248 23682522.31846 23682528.90946
+ 124452702.35148 193.00048 27.00046 27.00046
+ 03 10 31 0 27 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125804709.42746 98029747.68946 23939811.86648 23939811.78146 23939819.39446
+ 125804707.92748 190.00048 28.00046 28.00046
+ 114033954.75348 88857731.32548 21699912.66348 21699912.48548 21699920.09848
+ 114033956.25248 442.00048 140.00048 145.00048
+ 113415077.99048 88375616.12948 21582095.43248 21582095.76848 21582102.82048
+ 113415077.48448 422.00048 138.00048 107.00048
+ 113744717.40048 88632282.22248 21644894.37248 21644894.79248 21644900.42248
+ 113744715.89148 450.00048 147.00048 101.00048
+ 113520059.71048 88457217.96647 21602146.71948 21602146.98448 21602152.80547
+ 113520056.20848 438.00048 168.00048 100.00047
+ 126909096.87346 98890238.06746 24149998.19448 24149998.39846 24150005.50746
+ 126909098.36748 168.00048 24.00046 25.00046
+ 120572619.23047 93952720.70247 22944206.81148 22944206.62747 22944214.46447
+ 120572618.73248 303.00048 74.00047 63.00047
+ 124677506.49846 97151435.68646 23725300.91448 23725301.45646 23725308.16446
+ 124677505.98448 188.00048 23.00046 27.00046
+ 03 10 31 0 27 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125871456.32246 98081758.29946 23952513.57948 23952513.23746 23952521.05046
+ 125871454.82248 189.00048 28.00046 28.00046
+ 114284225.32448 89052747.20748 21747537.69748 21747537.42248 21747545.24648
+ 114284226.82448 437.00048 139.00048 140.00048
+ 113690046.03748 88589876.83848 21634420.21648 21634420.49848 21634427.43248
+ 113690045.53548 415.00048 133.00048 107.00048
+ 113560170.11748 88488479.42148 21609776.02648 21609776.29648 21609781.94348
+ 113560168.61148 456.00048 150.00048 102.00048
+ 113239327.82848 88238465.91348 21548725.22148 21548725.39748 21548731.33748
+ 113239324.32648 448.00048 174.00048 103.00048
+ 126769370.04546 98781360.00946 24123408.85848 24123408.97846 24123415.73946
+ 126769371.54848 169.00048 26.00046 24.00046
+ 120388279.64147 93809079.70147 22909127.96948 22909127.98547 22909135.58447
+ 120388279.13548 308.00048 75.00047 64.00047
+ 124903990.88746 97327917.17346 23768399.56048 23768399.65646 23768405.88346
+ 124903990.39048 182.00048 23.00046 25.00046
+ 03 10 31 0 27 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 125941296.89246 98136179.46146 23965803.87048 23965803.47746 23965811.57446
+ 125941295.38148 188.00048 29.00046 29.00046
+ 114537346.42248 89249984.36148 21795705.11448 21795704.95748 21795712.59648
+ 114537347.91948 433.00048 133.00048 138.00048
+ 113969664.25348 88807761.15048 21687629.80848 21687630.15148 21687637.17048
+ 113969663.74748 408.00048 131.00048 105.00048
+ 113378447.47448 88346877.51048 21575195.22248 21575195.62848 21575201.11048
+ 113378445.96448 461.00048 155.00048 106.00048
+ 112963368.68448 88023432.71348 21496212.02348 21496212.19648 21496218.13148
+ 112963365.18048 456.00048 182.00048 111.00048
+ 126631205.54446 98673699.73046 24097116.71048 24097116.79046 24097123.63246
+ 126631207.02948 171.00048 27.00046 24.00046
+ 120207602.12847 93668292.06947 22874746.03648 22874746.12447 22874753.69047
+ 120207601.62748 315.00048 80.00047 67.00047
+ 125132107.77346 97505670.71046 23811808.62448 23811808.32046 23811815.31046
+ 125132107.24948 177.00048 24.00046 25.00046
+ 03 10 31 0 27 30.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126014226.15146 98193007.47646 23979681.80148 23979681.84546 23979689.56746
+ 126014224.65548 187.00048 28.00046 29.00046
+ 114793269.69548 89449405.02048 21844405.82148 21844405.53848 21844413.21348
+ 114793271.19148 428.00048 130.00048 134.00048
+ 114253858.49448 89029211.21148 21741710.22548 21741710.46448 21741717.49248
+ 114253857.99048 401.00048 126.00048 102.00048
+ 113199584.32248 88207503.66248 21541158.72248 21541158.97748 21541164.55448
+ 113199582.81648 464.00048 157.00048 111.00048
+ 112692257.88248 87812177.69848 21444621.18148 21444621.41248 21444627.23348
+ 112692254.37648 464.00048 189.00048 115.00048
+ 126494635.29546 98567281.66446 24071127.86848 24071127.98746 24071134.35646
+ 126494636.78948 171.00048 28.00046 26.00046
+ 120030618.98947 93530382.98547 22841067.42048 22841067.27247 22841075.06947
+ 120030618.48448 321.00048 85.00047 70.00047
+ 125361812.07546 97684662.50746 23855518.80448 23855518.87846 23855525.90846
+ 125361811.56348 171.00048 22.00046 27.00046
+ 03 10 31 0 27 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126090237.57946 98252236.87146 23994146.51248 23994146.47446 23994154.22946
+ 126090236.07448 185.00048 28.00046 29.00046
+ 115051946.62948 89650971.32248 21893630.47448 21893630.30348 21893637.91248
+ 115051948.12548 422.00048 127.00048 133.00048
+ 114542553.50148 89254168.11648 21796647.28048 21796647.33348 21796654.54048
+ 114542552.99448 395.00048 120.00048 102.00048
+ 113023615.81248 88070385.30948 21507673.02348 21507673.30948 21507678.94248
+ 113023614.30348 468.00048 159.00048 121.00048
+ 112426069.06848 87604758.08448 21393966.94448 21393967.15848 21393973.01348
+ 112426065.56448 472.00048 194.00048 127.00048
+ 126359692.22746 98462131.46746 24045448.90748 24045448.85246 24045455.48746
+ 126359693.72648 172.00048 27.00046 27.00046
+ 119857362.68447 93395378.31047 22808097.60648 22808097.63547 22808105.13447
+ 119857362.18448 327.00048 87.00047 71.00047
+ 125593051.34746 97864849.20346 23899522.07448 23899521.89046 23899528.63346
+ 125593050.82948 167.00048 19.00046 25.00046
+ 03 10 31 0 27 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126169325.08446 98313863.16946 24009196.68348 24009196.12046 24009204.16346
+ 126169323.56848 182.00048 26.00046 29.00046
+ 115313329.13548 89854646.02048 21943369.88548 21943369.71848 21943377.35948
+ 115313330.63248 417.00048 127.00048 133.00048
+ 114835674.80348 89482574.30748 21852426.40648 21852426.74048 21852433.74448
+ 114835674.30048 388.00048 115.00048 103.00048
+ 112850577.02548 87935550.07548 21474744.73048 21474745.03248 21474750.54748
+ 112850575.51448 471.00048 161.00048 122.00048
+ 112164875.15248 87401230.51248 21344263.32448 21344263.56148 21344269.14448
+ 112164871.64748 482.00048 202.00048 135.00048
+ 126226408.84746 98358274.33546 24020085.91548 24020085.70346 24020092.56846
+ 126226410.34548 174.00048 28.00046 27.00046
+ 119687863.60147 93263301.53747 22775842.69848 22775842.66647 22775850.18147
+ 119687863.09448 332.00048 89.00047 77.00047
+ 125825779.10446 98046195.04446 23943808.96948 23943808.42946 23943814.89246
+ 125825778.60448 162.00048 20.00046 26.00046
+ 03 10 31 0 28 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126251482.01446 98377881.45946 24024830.54448 24024830.30946 24024838.54346
+ 126251480.49348 180.00048 25.00046 28.00046
+ 115577368.10848 90060390.54848 21993614.90348 21993614.72548 21993622.42948
+ 115577369.60448 410.00048 122.00048 129.00048
+ 115133146.04348 89714370.02748 21909033.28048 21909033.55148 21909040.68448
+ 115133145.53748 380.00048 111.00048 103.00048
+ 112680501.37448 87803023.64348 21442380.35148 21442380.67648 21442386.10948
+ 112680499.86448 474.00048 164.00048 126.00048
+ 111908748.34748 87201651.18448 21295524.00148 21295524.24448 21295529.99748
+ 111908744.84148 493.00048 211.00048 144.00048
+ 126094817.98946 98255735.89246 23995045.21948 23995044.93146 23995051.77446
+ 126094819.48348 175.00048 28.00046 28.00046
+ 119522150.19447 93134174.12447 22744308.51748 22744308.53447 22744315.85047
+ 119522149.69448 336.00048 93.00047 76.00047
+ 126059950.35646 98228666.08746 23988370.10148 23988370.24946 23988376.91046
+ 126059949.83948 159.00048 18.00046 24.00046
+ 03 10 31 0 28 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126336700.26146 98444285.42646 24041046.79748 24041047.02446 24041054.62546
+ 126336698.76848 178.00048 24.00046 28.00046
+ 115844015.23048 90268167.42448 22044356.27348 22044356.02048 22044363.79448
+ 115844016.73048 402.00048 116.00048 124.00048
+ 115434890.68748 89949495.61147 21966453.48348 21966453.77848 21966460.72547
+ 115434890.18348 373.00048 107.00048 99.00047
+ 112513423.14848 87672832.92648 21410586.32648 21410586.64248 21410592.21348
+ 112513421.64048 478.00048 166.00048 128.00048
+ 111657760.72648 87006076.54148 21247762.59549 21247762.72648 21247768.47348
+ 111657757.22349 505.00049 222.00048 147.00048
+ 125964952.78246 98154542.25246 23970332.46348 23970332.32146 23970339.13646
+ 125964954.27048 175.00048 28.00046 26.00046
+ 119360252.71347 93008020.14847 22713500.67348 22713500.72147 22713508.08247
+ 119360252.21148 339.00048 94.00047 78.00047
+ 126295516.66146 98412224.08146 24033197.13248 24033196.36246 24033203.28546
+ 126295516.15848 155.00048 17.00046 23.00046
+ 03 10 31 0 28 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126424970.60346 98513067.55046 24057844.28148 24057843.97246 24057852.21146
+ 126424969.10848 175.00048 25.00046 27.00046
+ 116113222.56948 90477939.61448 22095584.55248 22095584.28148 22095591.90548
+ 116113224.06648 394.00048 110.00048 120.00048
+ 115740832.08248 90187891.45647 22024672.27348 22024672.51748 22024679.59247
+ 115740831.57748 367.00048 101.00048 96.00047
+ 112349375.70248 87545003.84048 21379369.05848 21379369.31748 21379374.79948
+ 112349374.19348 482.00048 166.00048 132.00048
+ 111411982.43348 86814561.06548 21200992.38649 21200992.64148 21200998.34748
+ 111411978.93149 518.00049 231.00048 153.00048
+ 125836845.74846 98054718.75246 23945954.45748 23945954.62346 23945961.32346
+ 125836847.22648 176.00048 27.00046 28.00046
+ 119202200.00947 92884862.37047 22683424.12248 22683424.00247 22683431.39847
+ 119202199.51048 342.00048 96.00047 81.00047
+ 126532432.02646 98596833.64546 24078280.45248 24078280.09946 24078287.06746
+ 126532431.50748 152.00048 15.00046 24.00046
+ 03 10 31 0 28 30.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126516284.57446 98584221.69346 24075220.16948 24075220.40146 24075227.85846
+ 126516283.04448 173.00048 24.00046 28.00046
+ 116384940.51248 90689668.04648 22147290.63348 22147290.43748 22147298.06548
+ 116384942.00848 385.00048 106.00048 119.00048
+ 116050892.85647 90429497.28647 22083674.91348 22083675.08947 22083682.11647
+ 116050892.35348 358.00048 99.00047 95.00047
+ 112188392.14348 87419562.09148 21348734.89648 21348735.15548 21348740.60948
+ 112188390.63248 485.00048 170.00048 134.00048
+ 111171483.08348 86627159.04048 21155226.84049 21155227.06248 21155232.80048
+ 111171479.58049 531.00049 246.00048 158.00048
+ 125710528.50246 97956289.66446 23921917.25048 23921917.29146 23921923.94046
+ 125710529.99148 177.00048 28.00046 26.00046
+ 119048019.23647 92764721.72247 22654084.16648 22654084.21947 22654091.56547
+ 119048018.73248 345.00048 97.00047 81.00047
+ 126770649.41946 98782458.17746 24123611.47348 24123611.38646 24123617.77546
+ 126770648.92148 150.00048 16.00046 23.00046
+ 03 10 31 0 28 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126610630.70646 98657738.31846 24093173.67048 24093173.50646 24093181.71546
+ 126610629.20648 171.00048 24.00046 27.00046
+ 116659120.37548 90903314.82848 22199465.22948 22199464.90548 22199472.65748
+ 116659121.87148 375.00048 101.00048 117.00048
+ 116364995.09147 90674252.31447 22143446.54748 22143446.90647 22143453.74747
+ 116364994.58848 352.00048 94.00047 93.00047
+ 112030505.59348 87296533.59748 21318690.10548 21318690.39148 21318695.85548
+ 112030504.08548 490.00048 174.00048 138.00048
+ 110936331.14248 86443923.84148 21110478.91849 21110479.07248 21110484.79948
+ 110936327.63749 542.00049 254.00048 161.00048
+ 125586033.60846 97859280.51446 23898226.80748 23898226.99446 23898233.28046
+ 125586035.11248 179.00048 28.00046 28.00046
+ 118897736.78247 92647618.63147 22625486.32048 22625486.30847 22625493.64947
+ 118897736.28148 347.00048 98.00047 85.00047
+ 127010121.24446 98969060.09046 24169180.78648 24169180.90046 24169187.79746
+ 127010120.74248 148.00048 15.00046 20.00046
+ 03 10 31 0 28 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126707998.77946 98733609.65546 24111701.91248 24111702.22646 24111710.21446
+ 126707997.26548 169.00048 23.00046 28.00046
+ 116935713.51847 91118842.09548 22252098.97748 22252098.71447 22252106.30348
+ 116935715.01348 367.00048 96.00047 111.00048
+ 116683060.44447 90922095.41847 22203972.37148 22203972.73547 22203979.70047
+ 116683059.93948 345.00048 93.00047 91.00047
+ 111875748.62848 87175943.75348 21289240.85148 21289241.14548 21289246.61648
+ 111875747.12148 495.00048 178.00048 143.00048
+ 110706593.72848 86264907.64748 21066761.37249 21066761.52748 21066767.29348
+ 110706590.22549 554.00049 265.00048 166.00048
+ 125463393.53446 97763716.77446 23874889.12548 23874888.96946 23874895.42246
+ 125463395.02748 181.00048 29.00046 25.00046
+ 118751378.60947 92533573.32247 22597635.37748 22597635.28847 22597642.67947
+ 118751378.11048 351.00048 100.00047 86.00047
+ 127250799.79146 99156601.70146 24214980.67048 24214980.35146 24214986.87746
+ 127250799.28148 146.00048 16.00046 21.00046
+ 03 10 31 0 29 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126808377.08246 98811826.54346 24130803.44348 24130803.34146 24130811.13446
+ 126808375.58448 167.00048 23.00046 27.00046
+ 117214671.08147 91336211.73148 22305182.79448 22305182.61047 22305190.23448
+ 117214672.57648 359.00048 92.00047 108.00048
+ 117005010.61847 91172965.70547 22265237.40548 22265237.74147 22265244.86947
+ 117005010.11248 340.00048 89.00047 88.00047
+ 111724153.30648 87057817.53748 21260393.19949 21260393.46848 21260398.87548
+ 111724151.79849 502.00049 184.00048 144.00048
+ 110482337.31448 86090162.32048 21024086.81249 21024087.02948 21024092.78548
+ 110482333.81049 563.00049 274.00048 172.00048
+ 125342639.78746 97669622.82546 23851910.71748 23851910.28246 23851917.17446
+ 125342641.28748 182.00048 29.00046 28.00046
+ 118608969.88948 92422605.47747 22570535.81548 22570535.78848 22570543.28447
+ 118608969.38548 355.00048 102.00048 91.00047
+ 127492639.98746 99345048.65646 24261001.08648 24261001.84746 24261007.05746
+ 127492639.48448 145.00048 15.00046 22.00046
+ 03 10 31 0 29 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 126911753.94946 98892380.11146 24150475.31648 24150474.73446 24150482.70346
+ 126911752.44448 166.00048 23.00046 27.00046
+ 117495944.35147 91555385.77148 22358707.30448 22358707.15847 22358714.67848
+ 117495945.84948 352.00048 88.00047 108.00048
+ 117330766.70647 91426801.64547 22327226.64048 22327226.91247 22327233.98647
+ 117330766.20648 334.00048 85.00047 85.00047
+ 111575751.35448 86942179.65248 21232153.28249 21232153.52848 21232158.99548
+ 111575749.84749 508.00049 188.00048 148.00048
+ 110263627.15348 85919738.85048 20982467.61349 20982467.86048 20982473.46648
+ 110263623.64949 573.00049 283.00048 175.00048
+ 125223804.09846 97577023.30846 23829297.04148 23829297.09146 23829303.56846
+ 125223805.59748 185.00048 30.00046 29.00046
+ 118470534.84848 92314734.00147 22544192.58648 22544192.55548 22544199.85547
+ 118470534.34548 360.00048 105.00048 91.00047
+ 127735595.39346 99534364.67146 24307234.09148 24307234.55946 24307239.49746
+ 127735594.88548 143.00048 14.00046 20.00046
+ 03 10 31 0 29 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127018115.49446 98975259.07246 24170715.29948 24170715.39146 24170723.04746
+ 127018113.97848 165.00048 24.00046 24.00046
+ 117779484.82947 91776326.53548 22412663.15548 22412663.00547 22412670.51948
+ 117779486.32548 345.00048 86.00047 103.00048
+ 117660249.64347 91683541.60147 22389925.23748 22389925.43547 22389932.51547
+ 117660249.13848 329.00048 83.00047 84.00047
+ 111430574.00448 86829054.38648 21204526.93649 21204527.31348 21204532.76348
+ 111430572.49649 516.00049 191.00048 152.00048
+ 110050526.59048 85753686.38148 20941916.03749 20941916.19948 20941921.92648
+ 110050523.08749 581.00049 292.00048 183.00048
+ 125106919.20546 97485944.30646 23807054.46948 23807054.91246 23807061.26646
+ 125106920.69948 187.00048 30.00046 29.00046
+ 118336096.87948 92209977.16947 22518609.86648 22518609.89148 22518617.24547
+ 118336096.37648 366.00048 109.00048 94.00047
+ 127979619.77646 99724513.63846 24353670.25748 24353669.99246 24353676.41046
+ 127979619.25648 142.00048 13.00046 19.00046
+ 03 10 31 0 29 30.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127127449.09746 99060454.15146 24191520.93648 24191520.81046 24191528.67146
+ 127127447.58048 163.00048 22.00046 25.00046
+ 118065243.64447 91998995.81848 22467041.11648 22467040.89147 22467048.52748
+ 118065245.14148 340.00048 83.00047 103.00048
+ 117993380.19147 91943123.85847 22453317.80348 22453318.25247 22453325.00647
+ 117993379.68848 324.00048 80.00047 80.00047
+ 111288652.48848 86718466.20748 21177520.18349 21177520.47748 21177525.91748
+ 111288650.98049 521.00049 197.00048 155.00048
+ 109843097.79548 85592053.19448 20902443.89149 20902444.11948 20902449.91848
+ 109843094.29149 589.00049 301.00048 189.00048
+ 124992014.52646 97396407.72146 23785189.24648 23785188.83446 23785196.15646
+ 124992016.01948 188.00048 31.00046 28.00046
+ 118205677.95348 92108351.88347 22493791.94048 22493792.06148 22493799.40247
+ 118205677.45248 371.00048 112.00048 93.00047
+ 128224666.89246 99915459.47646 24400301.38248 24400301.33146 24400307.85846
+ 128224666.41748 140.00048 14.00046 19.00046
+ 03 10 31 0 29 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127239739.96246 99147953.48546 24212889.05848 24212888.58446 24212896.62046
+ 127239738.45348 162.00048 23.00046 27.00046
+ 118353172.12647 92223355.68647 22521832.11448 22521831.90547 22521839.44647
+ 118353173.62248 336.00048 83.00047 98.00047
+ 118330078.74247 92205486.32847 22517389.55948 22517389.78347 22517396.81547
+ 118330078.24148 318.00048 78.00047 78.00047
+ 111150017.44348 86610439.01148 21151138.75549 21151139.11348 21151144.49348
+ 111150015.93549 527.00049 200.00048 158.00048
+ 109641401.91548 85434886.94448 20864062.92549 20864063.11348 20864069.10348
+ 109641398.41249 596.00049 308.00048 200.00048
+ 124879123.54546 97308440.80446 23763706.70548 23763706.94746 23763713.58746
+ 124879125.04548 191.00048 34.00046 31.00046
+ 118079299.17948 92009874.37347 22469743.32748 22469743.45748 22469750.82747
+ 118079298.67448 376.00048 112.00048 96.00047
+ 128470691.13346 100107166.58746 24447118.06848 24447118.42646 24447125.12346
+ 128470690.61548 138.00048 14.00046 20.00046
+ 03 10 31 0 29 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127354973.18246 99237745.43146 24234817.21148 24234816.95346 24234824.73446
+ 127354971.66148 162.00048 20.00046 24.00046
+ 118643221.67547 92449368.28147 22577026.70748 22577026.49647 22577034.07547
+ 118643223.17448 332.00048 78.00047 94.00047
+ 118670265.92647 92470567.25047 22582124.84248 22582125.28147 22582132.20847
+ 118670265.42248 312.00048 76.00047 73.00047
+ 111014698.39348 86504995.54148 21125388.40549 21125388.80548 21125394.19948
+ 111014696.88749 531.00049 206.00048 164.00048
+ 109445499.53148 85282235.21548 20826784.36349 20826784.56448 20826790.61948
+ 109445496.02749 607.00049 319.00048 205.00048
+ 124768276.13046 97222066.22246 23742613.16048 23742613.37746 23742619.60346
+ 124768277.63048 193.00048 33.00046 30.00046
+ 117956982.46648 91914562.38247 22446467.46948 22446467.42848 22446475.09647
+ 117956981.96548 378.00048 116.00048 99.00047
+ 128717646.98346 100299599.67946 24494111.85748 24494113.28846 24494117.75546
+ 128717646.47248 137.00048 13.00046 18.00046
+ 03 10 31 0 30 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127473133.53246 99329818.39746 24257302.80448 24257302.52346 24257310.16546
+ 127473132.03948 159.00048 20.00046 25.00046
+ 118935344.05347 92676996.05347 22632615.82648 22632615.67947 22632623.23147
+ 118935345.55148 329.00048 77.00047 92.00047
+ 119013861.93047 92738304.42347 22647509.12648 22647509.20047 22647516.44847
+ 119013861.42248 306.00048 72.00047 71.00047
+ 110882725.27748 86402159.30648 21100274.88049 21100275.10648 21100280.52748
+ 110882723.76749 534.00049 205.00048 166.00048
+ 109255451.28748 85134146.45548 20790618.80149 20790619.00148 20790624.88848
+ 109255447.78249 617.00049 329.00048 213.00048
+ 124659503.04546 97137307.89346 23721914.31748 23721914.42846 23721921.33346
+ 124659504.53548 195.00048 34.00046 30.00046
+ 117838746.06148 91822429.40647 22423968.39248 22423968.36648 22423976.23047
+ 117838745.55748 381.00048 118.00048 95.00047
+ 128965489.26346 100492723.52646 24541275.07648 24541274.76346 24541281.10846
+ 128965488.73648 135.00048 13.00046 18.00046
+ 03 10 31 0 30 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127594204.51646 99424159.28346 24280341.91448 24280340.92946 24280349.16646
+ 127594203.02248 158.00048 19.00046 27.00046
+ 119229491.01647 92906201.54247 22688589.95948 22688589.97247 22688597.44647
+ 119229492.51548 325.00048 76.00047 89.00047
+ 119360786.83247 93008635.53947 22713526.66848 22713526.76147 22713533.95847
+ 119360786.32548 301.00048 70.00047 68.00047
+ 110754127.38748 86301953.24848 21075803.44249 21075803.69048 21075809.07448
+ 110754125.87849 536.00049 208.00048 172.00048
+ 109071310.03648 84990659.83948 20755577.81049 20755578.05248 20755583.91748
+ 109071306.53449 628.00049 339.00048 223.00048
+ 124552834.91546 97054189.74946 23701616.35248 23701616.52646 23701622.74346
+ 124552836.42048 196.00048 35.00046 31.00046
+ 117724610.46348 91733492.31847 22402249.35948 22402249.27848 22402257.08347
+ 117724609.96148 382.00048 118.00048 96.00047
+ 129214172.48546 100686502.54346 24588598.33248 24588597.69546 24588604.11346
+ 129214171.96948 132.00048 13.00046 17.00046
+ 03 10 31 0 30 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127718168.86746 99520754.44346 24303931.63648 24303931.33946 24303938.98846
+ 127718167.35548 157.00048 19.00046 23.00046
+ 119525614.06947 93136946.79047 22744940.52148 22744940.12547 22744947.81947
+ 119525615.57148 321.00048 74.00047 87.00047
+ 119710960.66347 93281498.25447 22780162.60248 22780162.85647 22780169.75547
+ 119710960.15948 294.00048 68.00047 66.00047
+ 110628932.84948 86204399.05448 21051979.66249 21051979.95848 21051985.41348
+ 110628931.33949 538.00049 210.00048 174.00048
+ 108893131.84748 84851819.43248 20721671.88449 20721672.00848 20721677.99748
+ 108893128.34349 638.00049 350.00048 227.00048
+ 124448302.70146 96972736.18146 23681724.36648 23681724.18346 23681730.88346
+ 124448304.19848 198.00048 35.00046 31.00046
+ 117614593.15348 91647764.60347 22381313.67148 22381313.60448 22381321.32847
+ 117614592.65048 384.00048 118.00048 99.00047
+ 129463652.18546 100880902.26946 24636072.64548 24636073.16446 24636078.45046
+ 129463651.70048 130.00048 11.00046 19.00046
+ 03 10 31 0 30 30.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127845009.63646 99619591.00246 24328068.79848 24328068.56346 24328076.43246
+ 127845008.12648 155.00048 18.00046 24.00046
+ 119823665.22647 93369194.47547 22801657.63148 22801657.44847 22801664.88947
+ 119823666.72348 316.00048 72.00047 82.00047
+ 120064303.70647 93556830.55447 22847401.44748 22847401.73547 22847408.70747
+ 120064303.20048 289.00048 65.00047 64.00047
+ 110507169.94848 86109518.85248 21028808.96049 21028809.32748 21028814.74448
+ 110507168.43849 539.00049 212.00048 181.00048
+ 108720972.21848 84717669.39548 20688910.69949 20688910.85748 20688916.75348
+ 108720968.71449 644.00049 358.00048 233.00048
+ 124345935.52346 96892969.43346 23662244.66448 23662244.72246 23662251.17146
+ 124345937.02348 199.00048 36.00046 31.00046
+ 117508709.46848 91565257.47347 22361164.90248 22361164.83648 22361172.75847
+ 117508708.96848 386.00048 119.00048 100.00047
+ 129713883.58446 101075887.69646 24683690.35048 24683690.96046 24683695.89846
+ 129713883.08348 128.00048 12.00046 15.00046
+ 03 10 31 0 30 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 127974709.28746 99720655.61946 24352750.05848 24352749.94146 24352758.02746
+ 127974707.79048 153.00048 20.00046 24.00046
+ 120123596.27847 93602907.01747 22858732.53448 22858732.48747 22858739.80747
+ 120123597.77748 312.00048 72.00047 78.00047
+ 120420735.69647 93834569.72747 22915228.25548 22915228.63847 22915235.44047
+ 120420735.19148 283.00048 61.00047 61.00047
+ 110388866.37348 86017334.21948 21006296.49749 21006296.83248 21006302.37348
+ 110388864.86449 541.00049 212.00048 180.00048
+ 108554881.27348 84588247.80048 20657304.63849 20657304.87048 20657310.67548
+ 108554877.77149 648.00049 362.00048 238.00048
+ 124245763.98346 96814913.68146 23643182.61748 23643182.58046 23643189.65546
+ 124245765.47148 200.00048 38.00046 30.00046
+ 117406976.31448 91485984.62347 22341805.97048 22341805.90948 22341813.81647
+ 117406975.81448 388.00048 120.00048 100.00047
+ 129964822.13445 101271424.11146 24731442.25148 24731442.29345 24731448.79246
+ 129964821.64048 124.00048 10.00045 15.00046
+ 03 10 31 0 30 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128107247.79546 99823932.02946 24377971.54548 24377970.91646 24377979.85046
+ 128107246.27948 152.00048 16.00046 24.00046
+ 120425359.14847 93838046.79247 22916156.31448 22916156.07847 22916163.70847
+ 120425360.64048 306.00048 69.00047 74.00047
+ 120780176.88247 94114653.72247 22983627.65448 22983628.14247 22983634.93647
+ 120780176.37348 278.00048 60.00047 58.00047
+ 110274049.36348 85927866.47248 20984447.53649 20984447.89248 20984453.32948
+ 110274047.85549 545.00049 214.00048 186.00048
+ 108394910.30348 84463595.01948 20626863.27649 20626863.51848 20626869.41548
+ 108394906.80049 651.00049 364.00048 243.00048
+ 124147817.47246 96738591.74346 23624544.13448 23624544.13246 23624551.07146
+ 124147818.96748 202.00048 38.00046 32.00046
+ 117309409.75348 91409959.23248 22323239.25248 22323239.18348 22323247.09948
+ 117309409.24948 391.00048 123.00048 101.00048
+ 130216423.69646 101467477.08246 24779320.56648 24779320.24446 24779326.77346
+ 130216423.18148 122.00048 12.00046 16.00046
+ 03 10 31 0 31 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128242607.25746 99929407.02746 24403729.50348 24403729.17946 24403737.46946
+ 128242605.74548 150.00048 16.00046 22.00046
+ 120728906.79447 94074577.56147 22973919.31248 22973919.00247 22973926.75447
+ 120728908.29548 299.00048 64.00047 72.00047
+ 121142547.51047 94397020.42947 23052584.47948 23052584.68947 23052591.90047
+ 121142547.01048 274.00048 58.00047 54.00047
+ 110162744.58648 85841135.16248 20963267.15649 20963267.47148 20963272.98648
+ 110162743.07949 551.00049 218.00048 191.00048
+ 108241107.73148 84343748.70548 20597595.75049 20597595.93548 20597601.88648
+ 108241104.22749 653.00049 366.00048 252.00048
+ 124052125.57846 96664026.85746 23606334.32048 23606334.42246 23606340.94246
+ 124052127.07548 201.00048 38.00046 31.00046
+ 117216020.51948 91337188.03748 22305468.21548 22305468.16248 22305475.88448
+ 117216020.01548 395.00048 127.00048 103.00048
+ 130468645.13645 101664013.45746 24827316.37948 24827317.42045 24827322.91346
+ 130468644.64948 119.00048 10.00045 14.00046
+ 03 10 31 0 31 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128380766.41646 100037063.46546 24430020.30748 24430020.24246 24430028.46046
+ 128380764.91448 148.00048 17.00046 21.00046
+ 121034190.84547 94312461.22047 23032012.92248 23032012.60247 23032020.36447
+ 121034192.33548 292.00048 61.00047 69.00047
+ 121507767.02047 94681606.65347 23122083.75948 23122084.08247 23122091.03247
+ 121507766.51948 269.00048 55.00047 53.00047
+ 110054978.98848 85757161.79248 20942760.21749 20942760.50748 20942766.05048
+ 110054977.48149 556.00049 223.00048 194.00048
+ 108093519.86648 84228744.63648 20569511.03049 20569511.26848 20569517.26548
+ 108093516.36349 657.00049 370.00048 245.00048
+ 123958715.78946 96591239.61446 23588559.31148 23588559.23746 23588565.73346
+ 123958717.28148 202.00048 37.00046 32.00046
+ 117126822.62548 91267682.59748 22288494.87548 22288494.82548 22288502.83148
+ 117126822.12748 400.00048 129.00048 106.00048
+ 130721441.67545 101860997.67746 24875421.77048 24875422.17645 24875428.58646
+ 130721441.19448 114.00048 9.00045 16.00046
+ 03 10 31 0 31 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128521703.87546 100146884.24946 24456840.37548 24456839.89646 24456848.09746
+ 128521702.35748 145.00048 17.00046 21.00046
+ 121341163.79847 94551660.72947 23090428.09148 23090428.00547 23090435.61747
+ 121341165.29248 285.00048 59.00047 65.00047
+ 121875756.13347 94968350.81147 23192110.22048 23192110.39047 23192117.57047
+ 121875755.62648 265.00048 55.00047 51.00047
+ 109950777.54248 85675965.62348 20922931.55849 20922931.89348 20922937.52748
+ 109950776.03449 563.00049 228.00048 191.00048
+ 107952193.54448 84118620.12048 20542617.71049 20542617.90548 20542623.93648
+ 107952190.04149 662.00049 376.00048 264.00048
+ 123867616.79346 96520252.40346 23571224.20248 23571224.30446 23571231.57846
+ 123867618.29548 203.00048 37.00046 32.00046
+ 117041828.88448 91201453.35448 22272321.31348 22272321.29848 22272329.48148
+ 117041828.38248 404.00048 133.00048 106.00048
+ 130974770.30245 102058396.37746 24923629.25348 24923629.22145 24923636.17146
+ 130974769.77948 112.00048 8.00045 14.00046
+ 03 10 31 0 31 30.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128665400.01146 100258854.90746 24484185.05148 24484184.55546 24484192.98646
+ 128665398.53048 143.00048 16.00046 22.00046
+ 121649779.03347 94792140.10747 23149155.58348 23149155.35347 23149163.07147
+ 121649780.52848 277.00048 56.00047 62.00047
+ 122246436.82147 95257192.84346 23262648.42648 23262648.73647 23262655.89246
+ 122246436.31348 261.00048 53.00047 50.00046
+ 109850164.51548 85597565.31548 20903785.94849 20903786.23348 20903792.01948
+ 109850163.00749 570.00049 233.00048 189.00048
+ 107817170.66448 84013407.15048 20516923.90349 20516924.14348 20516930.31548
+ 107817167.16149 670.00049 383.00048 268.00048
+ 123778860.99946 96451092.52146 23554334.47548 23554334.01746 23554341.18246
+ 123778862.49948 204.00048 36.00046 31.00046
+ 116961050.54448 91138509.31448 22256949.62948 22256949.69048 22256957.65348
+ 116961050.04248 408.00048 135.00048 110.00048
+ 131228587.74945 102256176.01546 24971929.14448 24971927.97245 24971935.88346
+ 131228587.30748 108.00048 8.00045 15.00046
+ 03 10 31 0 31 40.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128811830.36646 100372954.84346 24512050.87848 24512050.46346 24512059.64746
+ 128811828.83648 140.00048 15.00046 20.00046
+ 121959988.77047 95033861.75747 23208186.67848 23208186.56447 23208194.19447
+ 121959990.26348 269.00048 52.00047 57.00047
+ 122619727.88246 95548068.54246 23333683.61648 23333684.10546 23333691.48046
+ 122619727.37948 257.00048 50.00046 47.00046
+ 109753166.50848 85521982.79648 20885327.56349 20885327.85248 20885333.58148
+ 109753165.00049 576.00049 238.00048 202.00048
+ 107688494.83448 83913140.84648 20492437.37349 20492437.54148 20492443.60848
+ 107688491.33149 677.00049 393.00048 274.00048
+ 123692471.96646 96383775.99446 23537895.55148 23537895.29646 23537902.87346
+ 123692473.45648 204.00048 37.00046 30.00046
+ 116884497.03848 91078857.62948 22242381.61848 22242381.70848 22242389.62448
+ 116884496.53548 411.00048 134.00048 110.00048
+ 131482849.90245 102454301.15546 25020314.58148 25020315.11745 25020320.69646
+ 131482849.36248 106.00048 6.00045 16.00046
+ 03 10 31 0 31 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 128960977.42946 100489173.19446 24540433.05748 24540432.41046 24540442.07646
+ 128960975.91648 139.00048 16.00046 20.00046
+ 122271746.25346 95276789.34547 23267512.55548 23267512.12846 23267519.90647
+ 122271747.74848 260.00048 48.00046 57.00047
+ 122995551.44846 95840917.89146 23405200.74048 23405201.20346 23405208.69846
+ 122995550.94848 252.00048 50.00046 44.00046
+ 109659804.72748 85449233.34848 20867561.43449 20867561.78048 20867567.38448
+ 109659803.21849 582.00049 243.00048 202.00048
+ 107566203.11348 83817848.84848 20469165.75349 20469165.99348 20469171.95648
+ 107566199.61049 684.00049 399.00048 284.00048
+ 123608480.06946 96318327.91746 23521912.34048 23521912.11146 23521918.68546
+ 123608481.58648 206.00048 37.00046 32.00046
+ 116812176.46548 91022504.25648 22228619.35348 22228619.34148 22228627.24448
+ 116812175.96348 413.00048 138.00048 113.00048
+ 131737517.29945 102652743.02746 25068776.41448 25068775.71345 25068783.12846
+ 131737516.84748 101.00048 7.00045 13.00046
+ 03 10 31 0 32 0.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 129112816.16946 100607489.13246 24569326.72748 24569326.45646 24569336.55746
+ 129112814.62748 137.00048 15.00046 21.00046
+ 122585004.88746 95520886.61447 23327123.81248 23327123.47246 23327131.55447
+ 122585006.38048 253.00048 43.00046 55.00047
+ 123373827.11246 96135677.48146 23477184.64948 23477185.06046 23477192.50546
+ 123373826.61348 248.00048 45.00046 44.00046
+ 109570103.07348 85379336.10048 20850491.71649 20850491.98048 20850497.60548
+ 109570101.56249 586.00049 246.00048 209.00048
+ 107450333.00948 83727560.38148 20447116.45949 20447116.66448 20447122.65148
+ 107450329.50649 686.00049 402.00048 282.00048
+ 123526910.55446 96254766.74146 23506390.46348 23506390.26246 23506397.13246
+ 123526912.04448 207.00048 38.00046 32.00046
+ 116744096.65048 90969455.37048 22215663.84448 22215663.90148 22215671.71548
+ 116744096.14948 414.00048 139.00048 113.00048
+ 131992547.12645 102851467.63546 25117306.98547 25117307.86145 25117312.70446
+ 131992546.60847 98.00047 7.00045 14.00046
+ 03 10 31 0 32 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 129267321.85546 100727882.94946 24598728.49348 24598727.22546 24598737.03346
+ 129267320.36348 134.00048 13.00046 19.00046
+ 122899719.06046 95766118.45446 23387011.83648 23387012.02546 23387019.68146
+ 122899720.55548 244.00048 44.00046 50.00046
+ 123754478.61246 96432289.16046 23549620.15348 23549620.41546 23549628.03446
+ 123754478.10648 243.00048 44.00046 42.00046
+ 109484083.80248 85312308.38448 20834122.49549 20834122.86048 20834128.41248
+ 109484082.29549 590.00049 248.00048 213.00048
+ 107340920.25448 83642303.42548 20426296.13449 20426296.31848 20426302.39148
+ 107340916.75249 687.00049 402.00048 283.00048
+ 123447792.13346 96193115.83546 23491335.08448 23491334.80446 23491341.78946
+ 123447793.62948 208.00048 38.00046 32.00046
+ 116680261.98048 90919713.19448 22203517.14248 22203517.13548 22203525.20248
+ 116680261.47948 415.00048 137.00048 113.00048
+ 132247896.41445 103050441.22246 25165898.16047 25165897.73545 25165906.06046
+ 132247895.91047 96.00047 6.00045 13.00046
+ 03 10 31 0 32 20.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 129424469.27346 100850334.25746 24628633.67148 24628633.24046 24628642.99846
+ 129424467.81248 132.00048 14.00046 20.00046
+ 123215841.70046 96012447.84146 23447168.15848 23447168.00746 23447175.52246
+ 123215843.19948 237.00048 41.00046 49.00046
+ 124137426.40846 96730690.41446 23622492.47848 23622492.94646 23622499.57646
+ 124137425.90048 238.00048 43.00046 38.00046
+ 109401767.83748 85248166.06648 20818458.35449 20818458.60248 20818464.18048
+ 109401766.32849 592.00049 252.00048 215.00048
+ 107237996.40448 83562101.58048 20406711.44549 20406711.67148 20406718.09048
+ 107237992.90149 686.00049 399.00048 285.00048
+ 123371150.42346 96133394.58046 23476750.92548 23476750.58246 23476758.08846
+ 123371151.91548 211.00048 38.00046 32.00046
+ 116620679.19648 90873283.53948 22192180.18448 22192180.11748 22192188.58348
+ 116620678.69448 416.00048 139.00048 112.00048
+ 132503524.12645 103249632.01946 25214542.02347 25214541.17645 25214550.27746
+ 132503523.57647 93.00047 7.00045 15.00046
+ 03 10 31 0 32 30.0000000 0 7G 5G 7G 9G11G14G23G28
+ 129584239.79546 100974831.44246 24659036.36148 24659036.81446 24659045.88346
+ 129584238.29748 129.00048 14.00046 20.00046
+ 123533325.97646 96259837.89246 23507583.59548 23507583.34346 23507591.13246
+ 123533327.47848 229.00048 38.00046 48.00046
+ 124522591.21146 97030818.96546 23695786.96248 23695786.98946 23695794.14746
+ 124522590.70348 233.00048 41.00046 41.00046
+ 109323176.51248 85186926.00648 20803502.87249 20803503.22848 20803508.76148
+ 109323175.00349 595.00049 254.00048 219.00048
+ 107141598.77248 83486986.92648 20388367.29749 20388367.58548 20388373.81948
+ 107141595.26849 686.00049 399.00048 285.00048
+ 116565357.11148 90830175.44248 22181652.57848 22181652.67848 22181661.10748
+ 116565356.60748 416.00048 137.00048 109.00048
+ 132759386.79245 103449005.25046 25263231.04047 25263231.11945 25263236.94446
+ 132759386.29447 91.00047 7.00045 11.00046
+ 03 10 31 0 32 40.0000000 0 6G 7G 9G14G20G23G28
+ 123852127.62246 96508254.94346 23568249.35048 23568249.22546 23568256.93246
+ 123852129.11148 222.00048 34.00046 44.00046
+ 124909894.51546 97332613.35946 23769488.46348 23769488.88546 23769496.58646
+ 124909894.01748 227.00048 39.00046 36.00046
+ 107051750.30648 83416974.08448 20371270.39849 20371270.67048 20371277.15648
+ 107051746.80349 687.00049 398.00048 282.00048
+ 123225417.33356 96019837.36656 23449017.45448 23449017.27146 23449025.21746
+ 123225417.82458 214.00048 38.00046 29.00046
+ 116514294.85948 90790385.96848 22171936.36648 22171936.30848 22171944.79648
+ 116514294.36148 418.00048 136.00048 103.00048
+ 133015444.71244 103648530.44546 25311957.60447 25311958.53844 25311965.88246
+ 133015444.15947 87.00047 4.00044 15.00046
+ 03 10 31 0 32 50.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 129911530.23346 101229860.88046 24721319.05548 24721319.00346 24721328.57446
+ 129911528.70248 126.00048 13.00046 20.00046
+ 124172198.81646 96757660.64946 23629157.22748 23629157.23746 23629165.22946
+ 124172200.31648 214.00048 32.00046 41.00046
+ 125299259.55546 97636014.19546 23843582.58648 23843582.49446 23843590.41946
+ 125299259.04748 222.00048 39.00046 36.00046
+ 109177224.22858 85073187.17658 20775734.73149 20775735.04448 20775741.24548
+ 109177222.71959 602.00049 260.00048 217.00048
+ 106968481.44148 83352088.53348 20355425.58849 20355425.76848 20355432.66048
+ 106968477.93749 690.00049 392.00048 244.00048
+ 123156361.61246 95966026.40346 23435877.53948 23435877.18446 23435885.08646
+ 123156362.11048 215.00048 41.00046 30.00046
+ 116467498.69948 90753921.88648 22163031.00648 22163030.95048 22163039.54948
+ 116467498.19648 419.00048 138.00048 107.00048
+ 133271656.52443 103848175.33146 25360713.90247 25360713.06043 25360720.93046
+ 133271656.02847 85.00047 3.00043 13.00046
+ 03 10 31 0 33 0.0000000 0 5G 7G 9G14G23G28
+ 124493494.81546 97008020.43246 23690298.30548 23690298.16346 23690306.01846
+ 124493496.30748 207.00048 31.00046 42.00046
+ 125690607.97846 97940959.95446 23918054.40648 23918054.51646 23918062.73646
+ 125690607.47848 216.00048 36.00046 34.00046
+ 106891817.08848 83292348.78948 20340837.38349 20340837.60248 20340843.80048
+ 106891813.58549 694.00049 397.00048 227.00048
+ 116424967.92448 90720781.51847 22154937.27548 22154937.28748 22154945.59047
+ 116424967.41748 422.00048 140.00048 94.00047
+ 133527981.92843 104047908.36146 25409491.46947 25409491.55843 25409499.83846
+ 133527981.48347 84.00047 3.00043 11.00046
+ 03 10 31 0 33 10.0000000 0 8G 5G 7G 9G11G14G20G23G28
+ 130248881.00456 101492674.26556 24785537.67748 24785538.13046 24785547.84846
+ 130248879.50858 123.00048 14.00046 17.00046
+ 124815972.05546 97259301.20646 23751663.90648 23751663.74346 23751671.74546
+ 124815973.54748 200.00048 30.00046 40.00046
+ 126083865.76746 98247394.43246 23992889.06548 23992889.38246 23992896.95846
+ 126083865.27348 210.00048 33.00046 31.00046
+ 109046439.81058 84971276.87858 20750847.32949 20750847.63948 20750853.85948
+ 109046438.30359 609.00049 255.00048 114.00048
+ 106821775.47358 83237770.23158 20327507.88449 20327508.09448 20327513.80848
+ 106821773.97159 700.00049 417.00048 296.00048
+ 123026041.62956 95864491.23756 23411077.80048 23411077.36346 23411087.96246
+ 123026044.12558 218.00048 39.00046 24.00046
+ 116386706.15348 90690969.47248 22147654.64948 22147654.57948 22147662.47248
+ 116386705.65148 423.00048 143.00048 116.00048
+ 133784383.08444 104247701.16245 25458283.15747 25458286.70544 25458290.51945
+ 133784382.57247 83.00047 5.00044 10.00045
+ 03 10 31 0 33 20.0000000 0 6G 5G 7G 9G14G20G28
+ 130421366.05746 101627081.52646 24818357.86148 24818357.25546 24818366.99746
+ 130421364.56848 122.00048 12.00046 17.00046
+ 125139584.36046 97511466.36446 23813245.50048 23813244.73646 23813253.23846
+ 125139585.85948 193.00048 27.00046 37.00046
+ 126478953.97246 98555254.93046 24068072.20248 24068072.38746 24068080.40146
+ 126478953.46148 205.00048 31.00046 29.00046
+ 106758383.28448 83188372.06248 20315446.01349 20315446.24448 20315452.32748
+ 106758381.78249 701.00049 410.00048 286.00048
+ 122964792.67556 95816766.07656 23399422.57448 23399422.14346 23399432.99746
+ 122964795.16658 218.00048 41.00046 25.00046
+ 134040818.70844 104447520.90346 25507081.93947 25507080.40244 25507088.97846
+ 134040818.13947 80.00047 4.00044 12.00046
+ 03 10 31 0 33 30.0000000 0 6G 5G 7G 9G20G23G28
+ 130596291.23756 101763382.59856 24851648.40848 24851647.91546 24851657.40246
+ 130596293.70958 121.00048 11.00046 17.00046
+ 125464288.21646 97764482.53346 23875034.54048 23875033.93846 23875042.43446
+ 125464289.69748 187.00048 25.00046 37.00046
+ 126875795.18146 98864480.62846 24143589.65948 24143589.39646 24143598.06046
+ 126875794.68048 199.00048 30.00046 29.00046
+ 122906209.40746 95771118.95346 23388272.83448 23388273.06346 23388281.43446
+ 122906211.91148 219.00048 41.00046 32.00046
+ 116322987.76158 90641327.70057 22135528.91848 22135528.72248 22135538.04747
+ 116322989.26958 425.00048 135.00048 72.00047
+ 134297058.78554 104647104.11355 25555881.97547 25555880.60344 25555891.66445
+ 134297065.25457 78.00047 4.00044 10.00045
+ 03 10 31 0 33 40.0000000 0 7G 5G 7G 9G11G14G20G23
+ 130773664.09856 101901601.73756 24885401.82048 24885400.88646 24885412.00846
+ 130773668.54158 120.00048 11.00046 15.00046
+ 125790035.38646 98018310.29946 23937022.88848 23937022.58846 23937031.24646
+ 125790036.87648 181.00048 23.00046 35.00046
+ 127274310.29346 99175008.20046 24219426.95548 24219427.33846 24219436.32046
+ 127274309.78648 191.00048 28.00046 27.00046
+ 108878935.90958 84840753.92658 20718972.50349 20718972.76448 20718978.78948
+ 108878934.40159 624.00049 259.00048 131.00048
+ 106651650.34658 83105214.42558 20295134.23549 20295134.44448 20295142.31648
+ 106651649.84559 697.00049 392.00048 203.00048
+ 122850299.58446 95727552.75946 23377633.03748 23377632.92946 23377642.52146
+ 122850302.07948 218.00048 38.00046 21.00046
+ 116297522.39758 90621492.53857 22130682.76848 22130682.78548 22130694.15147
+ 116297521.89358 427.00048 142.00048 93.00047
+ 03 10 31 0 33 50.0000000 0 6G 5G 7G 9G14G23G28
+ 130953428.80646 102041672.69346 24919614.04148 24919613.46946 24919626.91246
+ 130953433.28548 119.00048 11.00046 15.00046
+ 126116783.84746 98272917.95946 23999202.24648 23999201.61846 23999210.83946
+ 126116785.34548 176.00048 22.00046 33.00046
+ 127674434.61446 99486792.78946 24295568.71348 24295568.37046 24295578.24946
+ 127674434.10748 185.00048 26.00046 25.00046
+ 106608303.42048 83071436.10648 20286885.91549 20286886.16648 20286895.07048
+ 106608302.91849 696.00049 399.00048 292.00048
+ 116276301.94048 90604957.75147 22126644.55148 22126644.54448 22126656.02047
+ 116276301.43848 427.00048 142.00048 94.00047
+ 134809747.47153 105046599.65756 25653443.09547 25653442.11643 25653452.57546
+ 134809752.99757 78.00047 3.00043 13.00046
+ 03 10 31 0 34 0.0000000 0 5G 7G 9G11G14G23
+ 126444491.98346 98528274.24746 24061563.40848 24061563.45346 24061572.53146
+ 126444493.48848 171.00048 19.00046 33.00046
+ 128076080.98746 99799760.30546 24372002.41748 24372002.35046 24372012.78746
+ 128076080.49048 178.00048 24.00046 23.00046
+ 108786586.15058 84768799.44258 20701398.83949 20701399.20648 20701406.68648
+ 108786584.64059 631.00049 276.00048 150.00048
+ 106571670.96848 83042896.57348 20279912.87649 20279913.08148 20279921.72648
+ 106571670.46449 695.00049 397.00048 261.00048
+ 116259333.77148 90591738.56848 22123414.65948 22123414.74548 22123426.17748
+ 116259333.26748 428.00048 145.00048 103.00048
+ 03 10 31 0 34 10.0000000 0 8G 5G 7G 9G11G14G20G23G25
+ 131320103.87256 102327421.08656 24989386.86348 24989384.95746 24989401.47446
+ 131320113.38158 114.00048 11.00046 14.00046
+ 126773114.30146 98784342.78146 24124098.81248 24124098.70446 24124108.09246
+ 126773115.81248 167.00048 20.00046 31.00046
+ 128479186.16046 100113867.31846 24448711.39048 24448711.45346 24448721.89646
+ 128479185.66948 171.00048 22.00046 23.00046
+ 108746243.17458 84737362.07458 20693721.81749 20693722.09348 20693729.37048
+ 108746241.66659 633.00049 283.00048 213.00048
+ 106541750.02448 83019580.97748 20274219.97249 20274220.17748 20274228.73648
+ 106541749.52249 695.00049 397.00048 271.00048
+ 122698837.62756 95609524.43456 23348813.11948 23348812.58646 23348822.54246
+ 122698840.12958 218.00048 40.00046 29.00046
+ 116246609.32048 90581823.29748 22120993.58748 22120993.45848 22121004.63448
+ 116246608.81648 429.00048 142.00048 107.00048
+ 128064835.78856 99790822.20256 24369927.86748 24369927.99746 24369938.12846
+ 128064835.29258 134.00048 14.00046 21.00046
+ 03 10 31 0 34 20.0000000 0 9G 5G 7G 9G11G14G20G23G25G28
+ 131506927.26055 102472981.28356 25024935.87948 25024936.28945 25024948.71546
+ 131506924.70158 112.00048 9.00045 12.00046
+ 127102608.67646 99041091.38746 24186799.85948 24186800.05646 24186808.95646
+ 127102610.18548 163.00048 17.00046 31.00046
+ 128883666.87246 100429044.32846 24525683.47248 24525683.83546 24525695.00046
+ 128883666.36948 163.00048 19.00046 23.00046
+ 108709810.05248 84708974.84648 20686789.26849 20686789.53248 20686797.41848
+ 108709808.54349 633.00049 274.00048 175.00048
+ 106518554.79648 83001507.04448 20269806.12449 20269806.32348 20269815.04348
+ 106518554.29149 695.00049 398.00048 267.00048
+ 122653843.44046 95574458.56046 23340254.61548 23340254.00546 23340263.79646
+ 122653845.93748 218.00048 40.00046 23.00046
+ 116238127.69548 90575216.28848 22119377.83048 22119377.87848 22119388.65548
+ 116238127.19248 429.00048 144.00048 109.00048
+ 127669690.53746 99482918.42046 24294732.98848 24294734.38646 24294742.85746
+ 127669690.00448 138.00048 15.00046 24.00046
+ 135577766.29953 105645077.21856 25799597.00447 25799591.10443 25799606.89946
+ 135577796.72357 75.00047 3.00043 11.00046
+ 03 10 31 0 34 30.0000000 0 6G 7G 9G11G14G23G25
+ 127432927.49046 99298480.59946 24249658.91748 24249658.40646 24249668.72346
+ 127432928.98848 158.00048 19.00046 26.00046
+ 129289454.68546 100745240.84946 24602903.59748 24602903.92946 24602915.51846
+ 129289454.18848 156.00048 18.00046 22.00046
+ 108677299.18048 84683642.82548 20680603.53949 20680603.87048 20680611.48948
+ 108677297.67149 636.00049 288.00048 236.00048
+ 106502079.86358 82988667.45958 20266671.82749 20266672.02848 20266680.19748
+ 106502078.36059 699.00049 410.00048 322.00048
+ 116233875.79848 90571904.75948 22118567.59948 22118567.56648 22118577.88848
+ 116233875.29748 430.00048 146.00048 118.00048
+ 127276261.96146 99176352.17146 24219864.82448 24219865.22946 24219874.11046
+ 127276261.46048 140.00048 16.00046 20.00046
+ 03 10 31 0 34 40.0000000 0 8G 5G 9G11G14G20G23G25G28
+ 131887372.15855 102769441.46356 25097333.41248 25097332.49245 25097347.41946
+ 131887376.63658 106.00048 9.00045 13.00046
+ 129696477.06546 101062400.68546 24680357.70448 24680358.61546 24680369.17246
+ 129696476.55048 148.00048 16.00046 21.00046
+ 108648722.13348 84661374.77548 20675165.65249 20675166.02348 20675173.65448
+ 108648720.62449 638.00049 292.00048 252.00048
+ 106492344.48348 82981081.53748 20264819.20849 20264819.42848 20264827.59648
+ 106492342.98149 701.00049 418.00048 344.00048
+ 122572269.17856 95510900.56556 23324727.34948 23324727.30346 23324737.56746
+ 122572268.67558 219.00048 43.00046 34.00046
+ 116233843.22548 90571879.92848 22118560.92048 22118560.88348 22118570.96448
+ 116233842.72548 431.00048 148.00048 121.00048
+ 126884626.06446 98871182.20246 24145338.44348 24145338.74446 24145348.17546
+ 126884625.57048 143.00048 16.00046 23.00046
+ 136088722.58853 106043201.22955 25896820.52847 25896822.93543 25896832.92145
+ 136088710.24957 73.00047 3.00043 9.00045
+ 03 10 31 0 34 50.0000000 0 7G 7G 9G11G14G23G25G28
+ 128095781.15856 99814932.71856 24375816.28948 24375816.74046 24375826.19546
+ 128095778.65458 150.00048 17.00046 26.00046
+ 130104657.70846 101380462.71546 24758032.81148 24758032.15946 24758044.67446
+ 130104657.19148 141.00048 13.00046 19.00046
+ 108624087.47348 84642178.16048 20670478.43649 20670478.71048 20670486.59948
+ 108624085.96449 641.00049 290.00048 247.00048
+ 106489340.44848 82978740.77548 20264247.51549 20264247.73748 20264255.84248
+ 106489338.94649 701.00049 417.00048 345.00048
+ 116238021.15148 90575135.61748 22119355.73048 22119355.73748 22119365.88348
+ 116238020.65048 432.00048 149.00048 118.00048
+ 126494861.22846 98567470.46146 24071167.84448 24071169.01846 24071176.59646
+ 126494860.75048 147.00048 16.00046 25.00046
+ 136343720.79543 106241892.79745 25945348.90347 25945351.62743 25945378.88845
+ 136343708.10447 71.00047 3.00043 9.00045
+ 03 10 31 0 35 0.0000000 0 8G 5G 7G 9G11G14G23G25G31
+ 132276711.77545 103072821.65146 25171425.07648 25171424.54745 25171440.87146
+ 132276716.27348 101.00048 7.00045 16.00046
+ 128428328.22646 100074058.36046 24439099.44048 24439099.16746 24439109.41246
+ 128428325.71148 146.00048 15.00046 25.00046
+ 130513924.51546 101699370.95746 24835914.46948 24835914.22946 24835926.56946
+ 130513924.00748 134.00048 14.00046 16.00046
+ 108603406.53448 84626062.51248 20666543.50449 20666543.76548 20666551.73448
+ 108603405.02649 646.00049 298.00048 250.00048
+ 106493065.43948 82981643.32448 20264956.34349 20264956.53548 20264964.67848
+ 106493063.93649 700.00049 413.00048 345.00048
+ 116246399.05648 90581663.90548 22120950.10548 22120950.04648 22120960.13648
+ 116246398.55348 435.00048 151.00048 119.00048
+ 126107043.73846 98265275.80146 23997367.85348 23997369.57846 23997376.61946
+ 126107043.19848 150.00048 17.00046 25.00046
+ 128924456.29856 100460654.08756 24533508.07348 24533508.37746 24533517.94846
+ 128924454.78058 156.00048 20.00046 23.00046
+ 03 10 31 0 35 10.0000000 0 9G 7G 9G11G14G20G23G25G28G31
+ 128761536.16646 100333700.26946 24502507.42148 24502507.34946 24502517.87146
+ 128761533.65148 144.00048 14.00046 26.00046
+ 130924207.39346 102019071.65346 24913988.71948 24913988.55246 24914001.31246
+ 130924206.86748 128.00048 12.00046 15.00046
+ 108586689.31148 84613036.05548 20663362.31649 20663362.62048 20663370.64048
+ 108586687.80249 649.00049 299.00048 252.00048
+ 106503515.49448 82989786.36548 20266944.79649 20266945.02448 20266953.10948
+ 106503513.99349 698.00049 412.00048 350.00048
+ 122471125.82156 95432095.67256 23305480.40348 23305480.38246 23305492.46646
+ 122471125.31958 224.00048 45.00046 34.00046
+ 116258966.74648 90591457.89748 22123340.79048 22123340.81348 22123350.75948
+ 116258966.24548 435.00048 150.00048 119.00048
+ 125721251.66446 97964659.44146 23923953.36348 23923953.70546 23923962.09146
+ 125721251.14948 155.00048 19.00046 25.00046
+ 136852607.43953 106638501.83455 26042200.62447 26042185.35843 26042211.30745
+ 136852687.67757 70.00047 2.00043 10.00045
+ 128666747.77546 100259843.45346 24484467.01948 24484467.26446 24484477.17246
+ 128666746.26348 161.00048 21.00046 24.00046
+ 03 10 31 0 35 20.0000000 0 10G 5G 7G 9G11G14G20G23G25G28G31
+ 132674718.22855 103382957.27856 25247160.63847 25247159.54045 25247174.25246
+ 132674723.72757 95.00047 7.00045 16.00046
+ 129095359.71146 100593821.34746 24566032.83648 24566031.72446 24566043.04046
+ 129095357.21148 140.00048 13.00046 24.00046
+ 131335433.02245 102339506.88946 24992242.56648 24992242.12245 24992255.33146
+ 131335432.54148 121.00048 10.00045 16.00046
+ 108573944.80448 84603106.19948 20660936.42049 20660936.65648 20660944.49348
+ 108573943.29549 652.00049 299.00048 249.00048
+ 106520683.91948 83003164.76548 20270211.59049 20270211.83448 20270219.80648
+ 106520682.41649 696.00049 408.00048 353.00048
+ 122443146.63646 95410294.00846 23300155.90648 23300155.77646 23300167.66446
+ 122443146.12848 227.00048 44.00046 33.00046
+ 116275708.46348 90604503.98948 22126526.21048 22126526.22048 22126535.95948
+ 116275707.96148 436.00048 150.00048 116.00048
+ 125337563.29146 97665682.43346 23850939.36748 23850939.94146 23850948.24646
+ 125337562.80348 158.00048 21.00046 27.00046
+ 137106542.59653 106836371.96755 26090510.30947 26090507.66943 26090533.28945
+ 137106556.93357 69.00047 2.00043 9.00045
+ 128409691.42046 100059541.03746 24435549.79648 24435549.98846 24435558.35046
+ 128409689.90248 164.00048 23.00046 25.00046
+ 03 10 31 0 35 30.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 132876874.93845 103540482.57846 25285629.49147 25285629.74945 25285643.36446
+ 132876880.39347 93.00047 7.00045 17.00046
+ 129429758.05846 100854390.08646 24629667.74948 24629667.43946 24629678.45746
+ 129429755.56648 136.00048 13.00046 23.00046
+ 131747529.19245 102660619.63046 25070662.82848 25070664.50145 25070674.97146
+ 131747528.69048 116.00048 9.00045 16.00046
+ 108565176.80948 84596274.13648 20659267.82249 20659268.13148 20659275.85748
+ 108565175.30249 655.00049 306.00048 257.00048
+ 106544561.57248 83021771.39348 20274754.82849 20274755.02048 20274762.89348
+ 106544560.06849 695.00049 406.00048 352.00048
+ 122418068.45946 95390753.86346 23295382.94448 23295382.78046 23295394.32946
+ 122418067.96348 228.00048 46.00046 33.00046
+ 116296611.44148 90620792.98048 22130503.18648 22130503.26948 22130512.72748
+ 116296610.93848 435.00048 150.00048 117.00048
+ 124956057.54546 97368406.55646 23778340.33948 23778341.02546 23778348.44246
+ 124956057.05248 163.00048 23.00046 28.00046
+ 128153318.83446 99859771.75046 24386762.67748 24386763.23446 24386770.93946
+ 128153317.31748 168.00048 22.00046 27.00046
+ 03 10 31 0 35 40.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 133081094.90645 103699615.81846 25324490.32947 25324489.56145 25324503.49346
+ 133081100.38647 91.00047 7.00045 18.00046
+ 129764693.25946 101115378.45946 24693404.06048 24693404.31146 24693415.39146
+ 129764690.75348 132.00048 14.00046 23.00046
+ 132160427.40445 102982357.62346 25149235.18248 25149235.61245 25149247.65546
+ 132160426.89648 110.00048 9.00045 15.00046
+ 108560395.38248 84592549.34248 20658357.18749 20658357.50948 20658365.02648
+ 108560393.87649 657.00049 305.00048 259.00048
+ 106575136.30348 83045596.41148 20280572.60449 20280572.80948 20280580.55448
+ 106575134.80249 695.00049 407.00048 347.00048
+ 122395908.08846 95373488.06046 23291164.38148 23291164.39646 23291175.14246
+ 122395907.58448 230.00048 47.00046 33.00046
+ 116321660.94748 90640313.61348 22135268.92348 22135268.88848 22135277.93148
+ 116321660.44648 434.00048 149.00048 116.00048
+ 124576811.88246 97072891.62246 23706171.21348 23706171.69746 23706179.00146
+ 124576811.37148 169.00048 23.00046 31.00046
+ 127897660.00546 99660558.28046 24338111.31848 24338111.08746 24338119.27846
+ 127897658.50048 172.00048 26.00046 27.00046
+ 03 10 31 0 35 50.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 133287343.42445 103860329.01346 25363738.03847 25363739.19445 25363753.74446
+ 133287348.92347 90.00047 6.00045 17.00046
+ 130100121.62046 101376750.99846 24757234.04848 24757233.65346 24757245.34846
+ 130100119.13448 130.00048 12.00046 21.00046
+ 132574059.27745 103304668.46246 25227946.57748 25227945.79545 25227958.49446
+ 132574058.79948 105.00048 8.00045 13.00046
+ 108559603.94548 84591933.35048 20658206.08649 20658206.33348 20658213.68448
+ 108559602.43749 659.00049 307.00048 256.00048
+ 106612395.47848 83074630.50048 20287662.06349 20287662.27348 20287669.79348
+ 106612393.97649 697.00049 412.00048 345.00048
+ 122376682.46546 95358510.13646 23287503.60548 23287503.52346 23287514.04946
+ 122376681.95648 231.00048 48.00046 34.00046
+ 116350839.05648 90663051.05948 22140820.31648 22140820.31648 22140829.14348
+ 116350838.55648 434.00048 150.00048 118.00048
+ 124199904.07146 96779197.73546 23634447.58248 23634447.82446 23634455.66246
+ 124199903.56848 175.00048 25.00046 32.00046
+ 127642746.49746 99461925.23846 24289602.09648 24289602.23646 24289610.13146
+ 127642744.98648 176.00048 25.00046 27.00046
+ 03 10 31 0 36 0.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 133495587.00444 104022596.17346 25403365.75747 25403365.65544 25403380.31646
+ 133495592.52647 88.00047 5.00044 13.00046
+ 130436001.20845 101638474.28246 24821150.45248 24821150.10145 24821161.94946
+ 130435998.72848 126.00048 9.00045 21.00046
+ 132988353.59445 103627495.54446 25306784.05147 25306782.88345 25306798.24946
+ 132988353.04447 100.00047 6.00045 14.00046
+ 108562809.45748 84594432.63048 20658815.00449 20658815.26948 20658822.20048
+ 108562807.94949 659.00049 308.00048 259.00048
+ 106656321.81548 83108859.51848 20296020.46649 20296020.61748 20296028.00848
+ 106656320.31249 699.00049 411.00048 340.00048
+ 122360403.35546 95345827.10446 23284404.31848 23284404.13046 23284414.12046
+ 122360402.84748 233.00048 45.00046 33.00046
+ 116384128.39548 90688991.64348 22147154.41548 22147154.41748 22147162.95348
+ 116384127.89148 432.00048 147.00048 115.00048
+ 123825415.31646 96487389.15446 23563184.24348 23563184.27946 23563192.21146
+ 123825414.80948 183.00048 28.00046 34.00046
+ 127388610.37546 99263897.77046 24241241.25548 24241241.33546 24241249.33146
+ 127388608.87048 180.00048 27.00046 28.00046
+ 03 10 31 0 36 10.0000000 0 10G 5G 7G 9G11G14G20G23G25G28G31
+ 133705799.15944 104186400.19946 25443366.23447 25443366.11144 25443379.14346
+ 133705804.61547 87.00047 5.00044 17.00046
+ 130772295.55446 101900521.68746 24885145.37448 24885145.70746 24885156.36846
+ 130772293.02648 123.00048 11.00046 22.00046
+ 133403239.83445 103950783.53846 25385734.13347 25385733.67345 25385746.69046
+ 133403239.34147 95.00047 6.00045 12.00046
+ 108570012.45348 84600045.77748 20660185.28649 20660185.64848 20660192.50448
+ 108570010.94349 659.00049 310.00048 256.00048
+ 106706897.50248 83148269.82548 20305644.18349 20305644.39448 20305651.54548
+ 106706895.99949 699.00049 410.00048 339.00048
+ 122347085.74646 95335450.55246 23281869.39048 23281869.27746 23281878.85546
+ 122347085.24448 231.00048 47.00046 34.00046
+ 116421511.00248 90718121.48748 22154267.71048 22154267.59848 22154276.04848
+ 116421510.50048 430.00048 147.00048 114.00048
+ 123453423.40346 96197525.70946 23492396.12548 23492396.24946 23492403.68846
+ 123453422.90948 190.00048 31.00046 35.00046
+ 138368400.48053 107819625.74956 26330629.31847 26330631.26043 26330653.97646
+ 138368390.75857 62.00047 3.00043 11.00046
+ 127135283.31646 99066500.50046 24193034.38948 24193034.16346 24193042.31946
+ 127135281.81548 182.00048 28.00046 30.00046
+ 03 10 31 0 36 20.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 133917941.08044 104351708.85446 25483732.67847 25483733.25144 25483744.31346
+ 133917946.54047 87.00047 5.00044 15.00046
+ 131108962.72245 102162859.59346 24949211.14448 24949210.69845 24949222.62846
+ 131108960.18048 119.00048 9.00045 20.00046
+ 133818650.28845 104274479.72046 25464784.61547 25464784.97145 25464797.49746
+ 133818649.82447 90.00047 6.00045 11.00046
+ 108581218.58048 84608778.44148 20662317.27049 20662317.62448 20662324.34248
+ 108581217.07349 661.00049 311.00048 256.00048
+ 106764102.04548 83192845.42648 20316529.36149 20316529.57648 20316536.55948
+ 106764100.54149 697.00049 409.00048 332.00048
+ 122336747.21946 95327395.58746 23279901.49348 23279901.40146 23279910.69246
+ 122336746.71648 232.00048 46.00046 36.00046
+ 116462968.33448 90750426.42248 22162156.36248 22162156.36048 22162164.63148
+ 116462967.83348 430.00048 146.00048 117.00048
+ 123084008.98246 95909670.72846 23422098.82648 23422098.94146 23422106.00746
+ 123084008.47648 199.00048 33.00046 38.00046
+ 126882798.06946 98869759.24446 24144987.77648 24144987.26746 24144995.06446
+ 126882796.55948 185.00048 29.00046 30.00046
+ 03 10 31 0 36 30.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 134131975.12944 104518490.85346 25524459.97847 25524461.70744 25524471.94446
+ 134131980.49647 87.00047 5.00044 14.00046
+ 131445962.68845 102425456.69146 25013340.35348 25013339.36545 25013352.05946
+ 131445960.19248 117.00048 10.00045 19.00046
+ 134234518.27345 104598532.85346 25543921.31747 25543921.50845 25543931.08946
+ 134234517.79247 86.00047 6.00045 13.00046
+ 108596429.02748 84620630.88648 20665211.65349 20665211.95348 20665218.59248
+ 108596427.51849 662.00049 309.00048 256.00048
+ 106827912.78148 83242568.66048 20328671.73449 20328671.87848 20328678.73448
+ 106827911.27749 696.00049 408.00048 330.00048
+ 122329401.49846 95321672.71346 23278502.71548 23278502.59246 23278511.46346
+ 122329400.98748 230.00048 45.00046 34.00046
+ 116508480.44448 90785890.96448 22170816.58448 22170816.66148 22170824.88148
+ 116508479.94448 429.00048 146.00048 117.00048
+ 122717251.63946 95623886.12446 23352306.94248 23352306.86046 23352314.29946
+ 122717251.13648 209.00048 35.00046 39.00046
+ 126631186.49746 98673698.71746 24097107.30948 24097107.27146 24097114.89046
+ 126631184.99948 188.00048 30.00046 31.00046
+ 03 10 31 0 36 40.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 134347867.35644 104686720.56846 25565542.30547 25565542.45344 25565553.39946
+ 134347872.79847 87.00047 5.00044 16.00046
+ 131783257.19745 102688283.48346 25077525.59248 25077525.71045 25077537.60446
+ 131783254.69348 112.00048 9.00045 20.00046
+ 134650774.74744 104922888.31546 25623132.18347 25623132.23744 25623145.92046
+ 134650774.24347 81.00047 4.00044 11.00046
+ 108615646.77848 84635606.13648 20668868.35949 20668868.67548 20668875.23448
+ 108615645.27049 663.00049 311.00048 258.00048
+ 106898304.72448 83297420.01248 20342066.47549 20342066.65048 20342073.39648
+ 106898303.22249 690.00049 399.00048 325.00048
+ 122325061.58746 95318291.85246 23277676.02648 23277675.93446 23277684.64046
+ 122325061.08048 229.00048 46.00046 35.00046
+ 116558026.08148 90824498.39048 22180244.33848 22180244.58648 22180252.57848
+ 116558025.57748 428.00048 145.00048 116.00048
+ 122353231.13846 95340233.96246 23283035.85048 23283036.23846 23283043.32346
+ 122353230.64148 219.00048 38.00046 42.00046
+ 126380481.03846 98478344.15646 24049399.24248 24049399.07446 24049406.61846
+ 126380479.52748 192.00048 30.00046 33.00046
+ 03 10 31 0 36 50.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 134565581.97644 104856369.45746 25606971.09647 25606970.54444 25606982.90146
+ 134565587.51147 86.00047 5.00044 16.00046
+ 132120808.76345 102951311.57346 25141758.37648 25141756.57645 25141769.36946
+ 132120806.26948 109.00048 8.00045 17.00046
+ 108638872.46148 84653704.64748 20673287.66949 20673287.91148 20673294.36048
+ 108638870.95349 664.00049 312.00048 254.00048
+ 106975250.75748 83357378.33648 20356708.55249 20356708.70648 20356715.38548
+ 106975249.25449 689.00049 397.00048 323.00048
+ 122323741.23546 95317264.15246 23277423.90848 23277423.74046 23277432.63446
+ 122323740.73148 227.00048 47.00046 33.00046
+ 116611583.21748 90866231.50348 22190435.81648 22190435.89448 22190443.90248
+ 116611582.71348 427.00048 143.00048 114.00048
+ 121992028.03846 95058777.19646 23214301.06248 23214301.43046 23214308.14946
+ 121992027.53948 229.00048 42.00046 43.00046
+ 126130714.15946 98283720.84946 24001869.97448 24001870.26146 24001877.72846
+ 126130712.66448 194.00048 32.00046 33.00046
+ 03 10 31 0 37 0.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 134785084.58544 105027410.89246 25648740.36847 25648740.48444 25648752.06646
+ 134785090.00947 86.00047 4.00044 14.00046
+ 132458576.41245 103214507.81546 25206033.04548 25206032.13845 25206044.25946
+ 132458573.89648 107.00048 8.00045 18.00046
+ 108666105.00248 84674925.14348 20678469.53949 20678469.94248 20678476.18048
+ 108666103.49449 664.00049 312.00048 252.00048
+ 107058721.93748 83422421.23848 20372592.24549 20372592.39148 20372598.99848
+ 107058720.43349 686.00049 395.00048 319.00048
+ 122325451.62146 95318597.79646 23277748.85348 23277748.63146 23277757.32646
+ 122325451.11148 227.00048 45.00046 36.00046
+ 116669129.41148 90911072.99048 22201386.32848 22201386.34148 22201394.25848
+ 116669128.90948 425.00048 144.00048 116.00048
+ 121633722.40246 94779578.16546 23146117.49748 23146117.90746 23146124.74646
+ 121633721.89948 241.00048 47.00046 45.00046
+ 125881918.88346 98089854.61746 23954525.79848 23954525.70846 23954533.31146
+ 125881917.37348 196.00048 32.00046 34.00046
+ 03 10 31 0 37 10.0000000 0 9G 5G 7G 9G11G14G20G23G25G31
+ 135006339.96244 105199818.13646 25690843.80547 25690843.19944 25690854.61246
+ 135006345.47647 85.00047 5.00044 14.00046
+ 132796522.77745 103477843.78146 25270341.08348 25270341.40045 25270352.57046
+ 132796520.28448 104.00048 8.00045 17.00046
+ 135900904.22453 105896877.00755 25861082.70247 25861082.26243 25861098.96245
+ 135900905.86057 69.00047 3.00043 10.00045
+ 108697343.87348 84699267.36548 20684413.91349 20684414.25348 20684420.46148
+ 108697342.36749 665.00049 314.00048 252.00048
+ 107148686.55748 83492523.77848 20389711.72949 20389711.96848 20389718.42148
+ 107148685.05349 685.00049 392.00048 314.00048
+ 122330204.55146 95322302.11346 23278652.58348 23278652.46546 23278661.07546
+ 122330204.04048 226.00048 45.00046 35.00046
+ 116730640.63448 90959003.95848 22213091.41548 22213091.38948 22213099.33248
+ 116730640.13048 423.00048 141.00048 113.00048
+ 121278394.68846 94502699.55946 23078501.02948 23078501.27046 23078508.38446
+ 121278394.18548 251.00048 50.00046 49.00046
+ 125634127.92446 97896770.91846 23907372.41748 23907372.41746 23907380.01046
+ 125634126.41748 199.00048 32.00046 35.00046
+ 03 10 31 0 37 20.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 135229313.60344 105373563.40646 25733273.92447 25733273.87944 25733283.32646
+ 135229319.11547 84.00047 5.00044 14.00046
+ 133134606.39744 103741285.21846 25334676.50847 25334677.16944 25334687.82746
+ 133134603.90347 100.00047 5.00044 17.00046
+ 108732587.26748 84726729.88948 20691120.43649 20691120.75348 20691127.01448
+ 108732585.75949 664.00049 313.00048 250.00048
+ 107245111.59748 83567660.39748 20408060.62249 20408060.83848 20408067.29048
+ 107245110.09349 684.00049 391.00048 310.00048
+ 122338011.09846 95328385.81046 23280137.74548 23280137.58546 23280145.97346
+ 122338010.60248 227.00048 44.00046 36.00046
+ 116796092.65248 91010005.72648 22225546.28748 22225546.41648 22225554.23748
+ 116796092.15448 421.00048 140.00048 114.00048
+ 120926125.52447 94228204.27246 23011466.25048 23011466.55947 23011473.45046
+ 120926125.02648 262.00048 55.00047 49.00046
+ 125387374.51846 97704495.70746 23860416.84048 23860416.92946 23860424.08946
+ 125387373.01948 202.00048 33.00046 35.00046
+ 03 10 31 0 37 30.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 135453968.37544 105548619.60746 25776023.84347 25776024.28844 25776033.88246
+ 135453973.95147 82.00047 5.00044 13.00046
+ 133472793.41744 104004807.69446 25399031.17747 25399030.59944 25399043.36546
+ 133472790.87147 98.00047 5.00044 16.00046
+ 108771832.85148 84757311.07248 20698588.42849 20698588.74648 20698594.93848
+ 108771831.34449 663.00049 308.00048 248.00048
+ 107347961.37148 83647803.20848 20427632.18249 20427632.39348 20427638.79748
+ 107347959.86949 682.00049 389.00048 304.00048
+ 122348881.46246 95336856.73146 23282205.79448 23282205.87946 23282213.66046
+ 122348880.95248 228.00048 44.00046 34.00046
+ 116865459.88248 91064058.27448 22238746.45348 22238746.31748 22238754.22848
+ 116865459.37648 418.00048 138.00048 111.00048
+ 120576995.36147 93956154.95647 22945028.89348 22945029.13547 22945035.91847
+ 120576994.85448 271.00048 58.00047 51.00047
+ 125141692.03546 97513055.07246 23813664.86348 23813665.03146 23813672.18346
+ 125141690.52948 204.00048 34.00046 36.00046
+ 03 10 31 0 37 40.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 135680268.57744 105724957.57046 25819087.00747 25819086.53744 25819100.96946
+ 135680274.08147 81.00047 4.00044 12.00046
+ 133811044.48945 104268379.80146 25463398.25847 25463397.10745 25463410.00846
+ 133811041.99047 95.00047 7.00045 14.00046
+ 108815077.03248 84791008.05748 20706817.34149 20706817.67948 20706823.79548
+ 108815075.52549 662.00049 310.00048 245.00048
+ 107457198.70248 83732923.38748 20448419.28149 20448419.42748 20448425.83148
+ 107457197.19949 678.00049 385.00048 298.00048
+ 122362825.74946 95347723.02646 23284858.82748 23284858.97446 23284866.24246
+ 122362825.24548 229.00048 45.00046 35.00046
+ 116938715.97748 91121141.08548 22252686.49848 22252686.49048 22252694.12348
+ 116938715.47448 415.00048 137.00048 111.00048
+ 120231084.64347 93686614.29347 22879204.08848 22879204.35347 22879211.27947
+ 120231084.14948 280.00048 61.00047 54.00047
+ 124897113.56646 97322474.66846 23767123.01748 23767122.94446 23767130.56846
+ 124897112.06148 207.00048 36.00046 38.00046
+ 03 10 31 0 37 50.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 135908120.60154 105902486.61156 25862456.07147 25862455.61044 25862469.07246
+ 135908123.17457 81.00047 4.00044 12.00046
+ 134149324.74045 104531975.15446 25527771.47247 25527770.32345 25527781.56246
+ 134149322.21447 92.00047 6.00045 13.00046
+ 108862315.45948 84827817.43048 20715806.42049 20715806.69648 20715812.76248
+ 108862313.95149 662.00049 309.00048 242.00048
+ 107572783.99348 83822990.00848 20470414.28749 20470414.46448 20470420.79848
+ 107572782.49049 672.00049 377.00048 290.00048
+ 122379852.53346 95360991.16846 23288098.62648 23288098.52146 23288106.29646
+ 122379852.02748 231.00048 46.00046 36.00046
+ 117015833.67548 91181232.83748 22267361.45248 22267361.39048 22267369.33148
+ 117015833.17348 412.00048 134.00048 108.00048
+ 119888474.05247 93419645.15447 22814007.38048 22814007.65747 22814014.49347
+ 119888473.54148 289.00048 69.00047 56.00047
+ 124653672.71546 97132780.73946 23720797.36448 23720797.03146 23720804.34446
+ 124653671.20748 211.00048 36.00046 39.00046
+ 03 10 31 0 38 0.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 136137614.97454 106081301.33755 25906124.33647 25906126.80444 25906137.44645
+ 136137601.43057 79.00047 5.00044 9.00045
+ 134487595.42144 104795562.97346 25592141.87047 25592138.89744 25592151.91346
+ 134487592.97947 90.00047 5.00044 14.00046
+ 108913542.74948 84867734.86948 20725554.61449 20725554.84648 20725560.90448
+ 108913541.24149 662.00049 310.00048 238.00048
+ 107694675.66048 83917970.60948 20493609.45249 20493609.60748 20493615.90048
+ 107694674.15849 668.00049 371.00048 284.00048
+ 122399969.77846 95376667.16146 23291926.54648 23291926.52246 23291933.92646
+ 122399969.28048 234.00048 49.00046 35.00046
+ 117096785.07248 91244311.82148 22282765.94848 22282765.90348 22282773.73348
+ 117096784.56948 409.00048 132.00048 108.00048
+ 119549244.02747 93155310.26147 22749453.79948 22749454.25247 22749461.11147
+ 119549243.51948 296.00048 69.00047 59.00047
+ 124411403.08746 96943999.48446 23674695.01248 23674695.28846 23674701.92446
+ 124411401.59148 215.00048 37.00046 40.00046
+ 03 10 31 0 38 10.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 136368631.80344 106261314.86846 25950085.93647 25950085.54744 25950096.38146
+ 136368618.30947 79.00047 5.00044 13.00046
+ 134825820.32844 105059114.60646 25656503.45547 25656501.48544 25656516.15846
+ 134825817.82447 87.00047 5.00044 13.00046
+ 108968753.05448 84910755.91248 20736060.76349 20736061.02048 20736067.08548
+ 108968751.54749 662.00049 308.00048 237.00048
+ 107822830.51148 84017831.61448 20517996.43449 20517996.62248 20518002.92748
+ 107822829.00849 662.00049 365.00048 276.00048
+ 122423185.84646 95394757.84046 23296344.33648 23296344.21446 23296351.90446
+ 122423185.33648 235.00048 49.00046 36.00046
+ 117181541.55048 91310355.83048 22298894.53148 22298894.65748 22298902.37448
+ 117181541.04648 406.00048 130.00048 108.00048
+ 119213474.92047 92893672.19147 22685558.97748 22685559.41047 22685566.22147
+ 119213474.42248 303.00048 73.00047 63.00047
+ 124170338.51446 96756157.21846 23628821.49548 23628821.82646 23628828.61346
+ 124170336.99348 218.00048 40.00046 41.00046
+ 03 10 31 0 38 20.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 136601147.07244 106442497.98245 25994331.81747 25994331.80244 25994346.32745
+ 136601133.61047 77.00047 4.00044 9.00045
+ 135163963.74844 105322600.95346 25720850.79447 25720851.02844 25720864.13746
+ 135163960.18047 85.00047 4.00044 15.00046
+ 109027939.78348 84956875.51148 20747323.56849 20747323.83348 20747329.88348
+ 109027938.27549 661.00049 309.00048 233.00048
+ 107957203.32948 84122537.79748 20543566.59549 20543566.86748 20543573.14748
+ 107957201.82849 660.00049 362.00048 273.00048
+ 122449507.78346 95415268.77646 23301353.11348 23301352.69746 23301360.21346
+ 122449507.28348 237.00048 48.00046 35.00046
+ 117270073.69648 91379342.02348 22315741.63548 22315741.69548 22315749.41748
+ 117270073.19248 403.00048 129.00048 106.00048
+ 118881247.15447 92634793.57247 22622338.06048 22622338.43547 22622344.94347
+ 118881246.64948 310.00048 78.00047 67.00047
+ 123930512.75546 96569280.27346 23583184.00548 23583184.18746 23583191.37946
+ 123930511.24848 222.00048 41.00046 42.00046
+ 03 10 31 0 38 30.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 136835124.57543 106624821.23845 26038855.93647 26038855.08543 26038870.87345
+ 136835110.93347 76.00047 3.00043 10.00045
+ 135501989.95844 105585997.99546 25785174.64847 25785174.85044 25785186.22646
+ 135501986.39647 82.00047 4.00044 14.00046
+ 109091095.20848 85006087.62748 20759341.57349 20759341.92248 20759347.85148
+ 109091093.70049 659.00049 306.00048 232.00048
+ 108097747.20548 84232052.64948 20570311.15249 20570311.31648 20570317.55848
+ 108097745.70149 655.00049 355.00048 270.00048
+ 122478941.56746 95438204.44746 23306953.80748 23306953.73046 23306960.88846
+ 122478941.06648 238.00048 50.00046 36.00046
+ 117362351.02848 91451246.59248 22333301.31748 22333301.28648 22333309.09848
+ 117362350.52648 399.00048 127.00048 106.00048
+ 118552640.89047 92378736.88047 22559806.21048 22559806.50647 22559813.17947
+ 118552640.39248 316.00048 78.00047 70.00047
+ 123691959.64746 96383394.87946 23537788.82448 23537788.69246 23537795.87846
+ 123691958.14448 226.00048 42.00046 41.00046
+ 03 10 31 0 38 40.0000000 0 6G11G14G20G23G25G31
+ 109158211.20148 85058386.08148 20772113.11749 20772113.41148 20772119.35248
+ 109158209.69449 657.00049 303.00048 229.00048
+ 108244413.24248 84346338.05348 20598220.62749 20598220.84648 20598227.04848
+ 108244411.73949 652.00049 352.00048 261.00048
+ 122511493.26546 95463569.79646 23313147.90148 23313147.71746 23313155.10846
+ 122511492.76548 239.00048 49.00046 33.00046
+ 117458342.54148 91526045.42148 22351567.70548 22351567.67748 22351575.48348
+ 117458342.04248 397.00048 124.00048 106.00048
+ 118227736.08347 92125564.37147 22497978.78748 22497979.18747 22497985.82747
+ 118227735.58148 322.00048 84.00047 73.00047
+ 123454713.47746 96198527.81046 23492642.39448 23492642.60446 23492649.58746
+ 123454711.97348 230.00048 45.00046 43.00046
+ 03 10 31 0 38 50.0000000 0 8G 5G 7G11G14G20G23G25G31
+ 137307304.61853 106992738.12656 26128709.97647 26128711.36143 26128719.56446
+ 137307296.68557 75.00047 2.00043 11.00046
+ 136177570.08054 106112447.44156 25913729.91847 25913730.07944 25913743.44646
+ 136177569.62357 78.00047 4.00044 13.00046
+ 109229277.93948 85113762.95048 20785636.55849 20785636.76848 20785642.69648
+ 109229276.42949 655.00049 302.00048 226.00048
+ 108397150.78148 84465354.47448 20627285.47549 20627285.65148 20627291.87648
+ 108397149.27849 646.00049 345.00048 252.00048
+ 122547167.58846 95491368.36246 23319936.31748 23319936.12146 23319943.20546
+ 122547167.08648 237.00048 49.00046 32.00046
+ 117558016.25848 91603713.51448 22370534.77648 22370534.85948 22370542.53448
+ 117558015.75048 395.00048 122.00048 107.00048
+ 117906612.48547 91875338.20847 22436871.15648 22436871.51647 22436877.86347
+ 117906611.98848 331.00048 88.00047 76.00047
+ 123218808.56646 96014705.89446 23447751.01048 23447750.95346 23447758.12046
+ 123218807.07148 234.00048 47.00046 42.00046
+ 03 10 31 0 39 0.0000000 0 7G 7G11G14G20G23G25G31
+ 136515032.19944 106375405.69346 25977946.34747 25977944.23844 25977959.78246
+ 136515031.71647 75.00047 4.00044 12.00046
+ 109304285.40548 85172210.46048 20799909.90349 20799910.16748 20799916.04448
+ 109304283.90049 652.00049 300.00048 227.00048
+ 108555907.53248 84589061.15448 20657495.81449 20657495.93248 20657502.08148
+ 108555906.03049 640.00049 338.00048 245.00048
+ 122585968.47946 95521603.06046 23327319.71548 23327319.42046 23327326.63246
+ 122585967.97848 236.00048 49.00046 32.00046
+ 117661339.15348 91684224.94948 22390196.41448 22390196.42548 22390204.01448
+ 117661338.65148 394.00048 123.00048 106.00048
+ 117589349.98847 91628120.75147 22376497.96348 22376498.28347 22376504.97247
+ 117589349.48848 339.00048 91.00047 78.00047
+ 122984279.40246 95831956.04346 23403121.53248 23403121.45646 23403128.12946
+ 122984277.90548 239.00048 48.00046 45.00046
+ 03 10 31 0 39 10.0000000 0 6G11G14G20G23G25G31
+ 109383222.62148 85233720.04148 20814931.03449 20814931.39848 20814937.17148
+ 109383221.11449 651.00049 298.00048 221.00048
+ 108720629.52748 84717416.04448 20688841.22649 20688841.46348 20688847.61848
+ 108720628.02349 632.00049 329.00048 235.00048
+ 122627899.85246 95554277.06046 23335298.66148 23335298.86546 23335305.59946
+ 122627899.34448 235.00048 48.00046 33.00046
+ 117768278.10648 91767553.97748 22410546.23848 22410546.21248 22410553.80148
+ 117768277.60348 392.00048 121.00048 103.00048
+ 117276027.93247 91383973.89947 22316874.52348 22316874.94947 22316881.49147
+ 117276027.43148 348.00048 96.00047 82.00047
+ 122751160.53946 95650305.23646 23358760.12648 23358760.47646 23358767.01046
+ 122751159.03148 243.00048 48.00046 43.00046
+ 03 10 31 0 39 20.0000000 0 6G11G14G20G23G25G31
+ 109466078.11948 85298282.89048 20830697.83549 20830698.18348 20830703.96748
+ 109466076.61149 648.00049 295.00048 220.00048
+ 108891261.23248 84850375.90048 20721311.32649 20721311.55148 20721317.65348
+ 108891259.72849 623.00049 320.00048 228.00048
+ 122672964.58246 95589392.62546 23343874.03448 23343874.02846 23343880.56846
+ 122672964.07248 232.00048 47.00046 33.00046
+ 117878799.53648 91853674.64348 22431577.77648 22431577.74448 22431585.30848
+ 117878799.03648 388.00048 118.00048 104.00048
+ 116966724.98448 91142958.79147 22258016.02148 22258016.43148 22258022.77047
+ 116966724.48348 357.00048 102.00048 87.00047
+ 122519486.19046 95469780.00946 23314673.96148 23314674.17646 23314680.93746
+ 122519484.68848 247.00048 49.00046 49.00046
+ 03 10 31 0 39 30.0000000 0 7G 7G11G14G20G23G25G31
+ 137525757.36454 107162988.75555 26170277.87547 26170281.54944 26170296.51245
+ 137525738.31157 68.00047 4.00044 9.00045
+ 109552839.40248 85365889.24348 20847207.82149 20847208.11748 20847213.92948
+ 109552837.89549 644.00049 291.00048 216.00048
+ 109067745.72748 84987896.44748 20754895.10049 20754895.30548 20754901.40248
+ 109067744.22349 613.00049 312.00048 222.00048
+ 122721164.94446 95626951.57946 23353046.13048 23353045.97446 23353052.65446
+ 122721164.44648 230.00048 47.00046 36.00046
+ 117992868.88048 91942560.05348 22453284.16848 22453284.16948 22453291.87548
+ 117992868.37948 385.00048 118.00048 101.00048
+ 116661519.60048 90905136.42047 22199937.36748 22199937.85348 22199944.16447
+ 116661519.09848 365.00048 107.00048 87.00047
+ 122289290.62947 95290406.83547 23270869.12948 23270869.24847 23270876.05947
+ 122289289.12648 252.00048 52.00047 51.00047
+ 03 10 31 0 39 40.0000000 0 8G 5G11G14G15G20G23G25G31
+ 138510692.43754 107930512.23655 26357711.42547 26357708.42244 26357733.55645
+ 138510707.93257 67.00047 4.00044 8.00045
+ 109643493.18448 85436528.72048 20864458.55549 20864458.83348 20864464.58048
+ 109643491.67849 641.00049 290.00048 214.00048
+ 109250024.18648 85129931.75648 20789581.41049 20789581.58748 20789587.71248
+ 109250022.68249 605.00049 302.00048 212.00048
+ 128180142.02056 99880661.62656 24391870.57448 24391870.03346 24391877.77846
+ 128180144.52958 133.00048 12.00046 19.00046
+ 122772502.59546 95666955.24746 23362815.18848 23362815.19246 23362821.72246
+ 122772502.08848 228.00048 45.00046 32.00046
+ 118110450.74148 92034182.55948 22475659.12348 22475659.02548 22475666.55748
+ 118110450.23548 380.00048 115.00048 101.00048
+ 116360490.28748 90670568.06747 22142653.46748 22142653.81648 22142660.32447
+ 116360489.78348 373.00048 111.00048 93.00047
+ 122060608.97247 95112213.30646 23227352.50048 23227352.77047 23227359.49846
+ 122060607.46748 255.00048 53.00047 49.00046
+ 03 10 31 0 39 50.0000000 0 7G11G14G15G20G23G25G31
+ 109738025.21448 85510190.17748 20882447.36549 20882447.62048 20882453.31048
+ 109738023.70649 636.00049 283.00048 209.00048
+ 109438036.49548 85276434.98748 20825358.87249 20825359.05748 20825365.08848
+ 109438034.99249 597.00049 292.00048 206.00048
+ 127936775.24846 99691025.15446 24345559.23448 24345559.51646 24345567.51646
+ 127936777.74748 136.00048 15.00046 20.00046
+ 122826978.06646 95709403.94246 23373181.29748 23373181.22146 23373188.00346
+ 122826977.56448 227.00048 44.00046 33.00046
+ 118231508.87448 92128513.78947 22498695.52248 22498695.49048 22498703.00947
+ 118231508.37248 376.00048 111.00048 98.00047
+ 116063714.88448 90439314.41747 22086179.11548 22086179.49648 22086185.85247
+ 116063714.38148 381.00048 114.00048 94.00047
+ 121833476.02847 94935226.52846 23184130.61248 23184130.77647 23184137.54046
+ 121833474.52448 260.00048 54.00047 50.00046
+ 03 10 31 0 40 0.0000000 0 7G11G14G15G20G23G25G31
+ 109836420.83648 85586862.25748 20901171.26749 20901171.57548 20901177.16648
+ 109836419.32949 631.00049 280.00048 206.00048
+ 109631721.24148 85427358.29848 20862215.75749 20862215.92548 20862221.91748
+ 109631719.74049 589.00049 286.00048 197.00048
+ 127694679.66146 99502379.08246 24299490.41148 24299490.31946 24299497.99146
+ 127694682.17648 138.00048 15.00046 20.00046
+ 122884591.52246 95754297.77646 23384144.68948 23384144.44546 23384151.43046
+ 122884591.01048 226.00048 43.00046 34.00046
+ 118356006.73348 92225525.24247 22522386.57048 22522386.57848 22522394.02947
+ 118356006.23048 370.00048 109.00048 98.00047
+ 115771270.81348 90211435.83947 22030528.89448 22030529.27948 22030535.63147
+ 115771270.31348 388.00048 121.00048 99.00047
+ 121607926.40347 94759473.36347 23141210.07948 23141210.17647 23141217.26647
+ 121607924.89748 263.00048 57.00047 52.00047
+ 03 10 31 0 40 10.0000000 0 8G 5G11G14G15G20G23G25G31
+ 139246947.04653 108504227.35655 26497816.26147 26497813.09143 26497840.71345
+ 139246963.61057 61.00047 3.00043 8.00045
+ 109938664.38548 85666532.67248 20920627.45449 20920627.80748 20920633.40148
+ 109938662.87849 626.00049 275.00048 202.00048
+ 109831015.39148 85582652.52948 20900140.10449 20900140.27748 20900146.28048
+ 109831013.88849 581.00049 278.00048 193.00048
+ 127453882.23646 99314744.53046 24253668.20648 24253667.85346 24253676.72046
+ 127453884.74248 141.00048 16.00046 22.00046
+ 122945342.38746 95801636.32346 23395704.92648 23395704.92146 23395711.64046
+ 122945341.88548 226.00048 44.00046 32.00046
+ 118483907.28448 92325188.13947 22546725.12048 22546725.18048 22546732.49547
+ 118483906.78048 366.00048 106.00048 95.00047
+ 115483234.65048 89986991.85648 21975717.61648 21975717.92848 21975724.60948
+ 115483234.14748 396.00048 125.00048 103.00048
+ 121383995.29247 94584981.37047 23098597.58148 23098597.74747 23098604.34447
+ 121383993.78648 267.00048 58.00047 53.00047
+ 03 10 31 0 40 20.0000000 0 7G11G14G15G20G23G25G31
+ 110044739.43448 85749188.61448 20940812.86149 20940813.16248 20940818.70748
+ 110044737.92549 622.00049 270.00048 199.00048
+ 110035854.70148 85742267.62648 20939119.59549 20939119.88348 20939125.80748
+ 110035853.19849 572.00049 270.00048 186.00048
+ 127214409.74946 99128142.47846 24208098.10548 24208097.91246 24208106.31146
+ 127214412.25748 144.00048 16.00046 23.00046
+ 123009229.31946 95851418.46146 23407862.01848 23407861.92946 23407868.97346
+ 123009228.81148 227.00048 45.00046 31.00046
+ 118615172.52248 92427472.73447 22571704.10248 22571704.05848 22571711.49947
+ 118615172.02048 361.00048 102.00048 94.00047
+ 115199682.97548 89766042.27948 21921759.66048 21921759.98148 21921766.72048
+ 115199682.47448 403.00048 129.00048 108.00048
+ 121161717.26447 94411777.30847 23056299.72248 23056299.78847 23056306.84847
+ 121161715.76348 270.00048 59.00047 55.00047
+ 03 10 31 0 40 30.0000000 0 7G11G14G15G20G23G25G31
+ 110154628.92548 85834816.78948 20961724.08849 20961724.41748 20961729.97048
+ 110154627.41749 619.00049 267.00048 194.00048
+ 110246173.60348 85906152.45448 20979141.98549 20979142.26448 20979148.16748
+ 110246172.10049 564.00049 263.00048 179.00048
+ 126976288.76146 98942593.57546 24162785.18348 24162785.43046 24162793.67446
+ 126976291.25948 147.00048 16.00046 23.00046
+ 123076250.33246 95903642.69446 23420615.67448 23420615.63046 23420622.12946
+ 123076249.83948 229.00048 45.00046 31.00046
+ 118749764.05448 92532349.05347 22597316.20048 22597316.16348 22597323.60447
+ 118749763.55148 359.00048 102.00048 92.00047
+ 114920691.67148 89548646.34148 21868669.63848 21868669.94848 21868676.50348
+ 114920691.16848 412.00048 136.00048 113.00048
+ 120941127.99447 94239889.25547 23014323.28648 23014323.35947 23014330.63647
+ 120941126.48948 273.00048 61.00047 57.00047
+ 03 10 31 0 40 40.0000000 0 8G 5G11G14G15G20G23G25G31
+ 139992610.39053 109085398.44855 26639709.01647 26639708.02443 26639768.44345
+ 139992615.30857 57.00047 3.00043 10.00045
+ 110268314.98348 85923403.31148 20983357.84149 20983358.17648 20983363.69648
+ 110268313.47749 617.00049 266.00048 191.00048
+ 110461905.50048 86074255.19048 21020194.50749 21020194.62148 21020200.64148
+ 110461903.99949 555.00049 254.00048 175.00048
+ 126739545.77446 98758118.50246 24117734.80648 24117734.45546 24117742.74346
+ 126739548.27448 150.00048 17.00046 24.00046
+ 123146402.73646 95958306.83346 23433965.54348 23433965.13246 23433971.74446
+ 123146402.23748 231.00048 46.00046 31.00046
+ 118887643.50247 92639787.45347 22623553.85248 22623553.87047 22623561.43247
+ 118887642.99848 357.00048 100.00047 90.00047
+ 114646335.60648 89334862.33348 21816461.30548 21816461.67948 21816468.29748
+ 114646335.10348 419.00048 139.00048 118.00048
+ 120722262.59347 94069344.66547 22972674.59548 22972674.65347 22972681.85747
+ 120722261.08948 277.00048 62.00047 60.00047
+ 03 10 31 0 40 50.0000000 0 8G 3G11G14G15G20G23G25G31
+ 128973644.06156 100498972.04856 24542868.13348 24542868.53846 24542875.44646
+ 128973641.55358 152.00048 19.00046 25.00046
+ 110385779.02948 86014933.71848 21005710.50149 21005710.84648 21005716.40848
+ 110385777.52249 615.00049 267.00048 189.00048
+ 110682982.56348 86246523.00948 21062264.14649 21062264.25348 21062270.25748
+ 110682981.06249 547.00049 246.00048 166.00048
+ 126504207.25746 98574737.81346 24072951.13748 24072950.85346 24072958.98546
+ 126504209.74648 152.00048 17.00046 26.00046
+ 123219683.31146 96015408.46746 23447910.24648 23447910.32346 23447916.99746
+ 123219682.81048 233.00048 48.00046 30.00046
+ 119028771.26247 92749756.96047 22650409.74848 22650409.70247 22650417.18747
+ 119028770.75948 356.00048 100.00047 90.00047
+ 114376688.87748 89124747.90048 21765149.28148 21765149.66448 21765156.35548
+ 114376688.37448 426.00048 144.00048 125.00048
+ 120505155.63947 93900170.22047 22931360.75148 22931360.75147 22931368.01247
+ 120505154.13048 281.00048 62.00047 63.00047
+ 03 10 31 0 41 0.0000000 0 8G 3G11G14G15G20G23G25G31
+ 128626861.71546 100228752.16546 24476877.63548 24476877.98146 24476885.84546
+ 128626859.20548 158.00048 22.00046 28.00046
+ 110507001.76948 86109392.93148 21028778.55449 21028778.82048 21028784.42948
+ 110507000.26349 612.00049 263.00048 186.00048
+ 110909335.53048 86422901.81548 21105337.69949 21105337.92148 21105343.96348
+ 110909334.02749 539.00049 239.00048 160.00048
+ 126270299.57246 98392472.07646 24028440.15848 24028439.58546 24028447.82346
+ 126270302.06948 156.00048 19.00046 26.00046
+ 123296088.19246 96074944.67746 23462449.80348 23462449.82646 23462456.07846
+ 123296087.69548 235.00048 49.00046 31.00046
+ 119173107.54047 92862226.60947 22677876.21548 22677876.02747 22677883.58347
+ 119173107.03548 354.00048 98.00047 89.00047
+ 114111825.13648 88918360.44248 21714747.46348 21714747.89748 21714754.59448
+ 114111824.63548 432.00048 147.00048 130.00048
+ 120289842.37547 93732393.44147 22890388.06748 22890388.20447 22890395.45147
+ 120289840.85948 286.00048 67.00047 65.00047
+ 03 10 31 0 41 10.0000000 0 8G 3G11G14G15G20G23G25G31
+ 128280690.35146 99959008.47446 24411003.12848 24411003.56946 24411011.11746
+ 128280687.86748 164.00048 23.00046 30.00046
+ 110631963.17648 86206765.32748 21052557.95549 21052558.28148 21052563.84548
+ 110631961.66849 607.00049 259.00048 185.00048
+ 111140894.51748 86603337.28648 21149401.97949 21149402.22648 21149408.15048
+ 111140893.01449 528.00049 229.00048 153.00048
+ 126037849.38646 98211342.16046 23984206.19948 23984206.27846 23984214.83646
+ 126037851.89248 157.00048 20.00046 25.00046
+ 123375612.49846 96136911.59546 23477582.71548 23477582.67346 23477589.39846
+ 123375611.99448 233.00048 48.00046 32.00046
+ 119320611.88547 92977164.85947 22705945.42148 22705945.58947 22705952.90547
+ 119320611.38448 352.00048 98.00047 87.00047
+ 113851817.71348 88715757.35048 21665269.63048 21665269.94448 21665276.77648
+ 113851817.21148 435.00048 149.00048 134.00048
+ 120076358.44447 93566042.39347 22849763.48148 22849763.27447 22849770.74847
+ 120076356.94248 288.00048 67.00047 65.00047
+ 03 10 31 0 41 20.0000000 0 8G 3G11G14G15G20G23G25G31
+ 127935173.56646 99689774.79346 24345253.40848 24345253.80346 24345261.05946
+ 127935171.08148 169.00048 24.00046 30.00046
+ 110760642.66548 86307034.98248 21077044.90949 21077045.25448 21077050.87348
+ 110760641.15649 601.00049 253.00048 179.00048
+ 111377588.49548 86787774.10148 21194443.36349 21194443.57548 21194449.62648
+ 111377586.99349 519.00049 221.00048 147.00048
+ 125806882.89246 98031368.39846 23940254.68048 23940254.43446 23940262.77746
+ 125806885.39248 159.00048 19.00046 25.00046
+ 123458250.71446 96201304.87346 23493308.36248 23493308.15746 23493315.24146
+ 123458250.20748 233.00048 48.00046 29.00046
+ 119471243.77247 93094540.26647 22734609.89148 22734609.75147 22734617.33647
+ 119471243.26848 348.00048 96.00047 90.00047
+ 113596737.89648 88516993.84848 21616729.62948 21616729.92848 21616736.66548
+ 113596737.39448 438.00048 152.00048 138.00048
+ 119864738.40847 93401143.71947 22809493.58948 22809493.57547 22809500.82447
+ 119864736.90448 291.00048 69.00047 69.00047
+ 03 10 31 0 41 30.0000000 0 8G 3G11G14G15G20G23G25G31
+ 127590355.41746 99421085.49446 24279636.60248 24279636.64246 24279644.71046
+ 127590352.91648 176.00048 27.00046 32.00046
+ 110893018.92448 86410185.26348 21102235.32649 21102235.59448 21102241.27548
+ 110893017.41649 594.00049 249.00048 179.00048
+ 111619345.32948 86976156.00648 21240448.28049 21240448.36048 21240454.43848
+ 111619343.82649 509.00049 212.00048 141.00048
+ 125577426.37646 97852571.24846 23896590.47248 23896590.29146 23896598.57246
+ 125577428.85448 160.00048 20.00046 28.00046
+ 123543996.93246 96268120.01746 23509625.27948 23509625.15646 23509632.28646
+ 123543996.43348 230.00048 46.00046 31.00046
+ 119624961.68447 93214320.38747 22763861.43748 22763861.44547 22763868.94947
+ 119624961.18048 345.00048 95.00047 85.00047
+ 113346656.92648 88322125.50148 21569140.77448 21569141.25548 21569147.82148
+ 113346656.42448 444.00048 156.00048 143.00048
+ 119655017.29747 93237724.72047 22769584.82448 22769584.95447 22769592.02047
+ 119655015.78448 294.00048 70.00047 71.00047
+ 03 10 31 0 41 40.0000000 0 8G 3G11G14G15G20G23G25G31
+ 127246280.18846 99152975.12046 24214161.07248 24214161.69446 24214169.05446
+ 127246277.68748 183.00048 28.00046 32.00046
+ 111029069.77748 86516198.85948 21128125.02549 21128125.29148 21128130.97248
+ 111029068.26949 590.00049 245.00048 174.00048
+ 111866091.92648 87168426.01948 21287402.57049 21287402.77448 21287408.93648
+ 111866090.42549 503.00049 206.00048 136.00048
+ 125349506.04046 97674971.23046 23853218.45548 23853219.02246 23853226.41146
+ 125349508.54948 163.00048 21.00046 27.00046
+ 123632844.17646 96337351.50246 23526532.70948 23526532.44346 23526539.15346
+ 123632843.66648 229.00048 44.00046 30.00046
+ 119781723.98347 93336472.80947 22793692.35648 22793692.43647 22793699.89447
+ 119781723.48648 342.00048 92.00047 87.00047
+ 113101645.11848 88131207.20348 21522516.62248 21522517.06548 21522523.66348
+ 113101644.61348 453.00048 161.00048 147.00048
+ 119447230.37047 93075812.95247 22730044.18948 22730044.12047 22730051.49147
+ 119447228.85948 299.00048 71.00047 74.00047
+ 03 10 31 0 41 50.0000000 0 8G 3G11G14G15G20G23G25G31
+ 126902992.50046 98885478.39246 24148835.59348 24148835.41246 24148843.50646
+ 126902989.99848 190.00048 27.00046 35.00046
+ 111168772.56948 86625058.16948 21154709.54349 21154709.89348 21154715.47848
+ 111168771.06149 586.00049 241.00048 171.00048
+ 112117754.50248 87364526.69148 21335292.47248 21335292.67648 21335298.81248
+ 112117752.99848 495.00048 200.00048 130.00048
+ 125123147.92846 97498588.43846 23810143.75848 23810143.20846 23810151.86046
+ 125123150.39348 164.00048 21.00046 28.00046
+ 123724785.13646 96408993.75946 23544028.43448 23544028.36446 23544035.29546
+ 123724784.63148 226.00048 46.00046 31.00046
+ 119941488.35247 93460964.45447 22824094.47848 22824094.47447 22824102.08247
+ 119941487.85148 339.00048 91.00047 85.00047
+ 112861771.77648 87944293.00048 21476870.19048 21476870.54448 21476877.25748
+ 112861771.27548 462.00048 169.00048 147.00048
+ 119241412.42847 92915435.37647 22690878.32848 22690878.37547 22690885.53547
+ 119241410.92148 304.00048 75.00047 76.00047
+ 03 10 31 0 42 0.0000000 0 8G 3G11G14G15G20G23G25G31
+ 126560537.35546 98618630.40246 24083668.32348 24083668.47846 24083676.19146
+ 126560534.85248 196.00048 31.00046 37.00046
+ 111312103.84548 86736744.85648 21181984.54949 21181984.92648 21181990.53648
+ 111312102.33849 580.00049 235.00048 170.00048
+ 112374258.33448 87564399.79348 21384103.53348 21384103.74148 21384109.72848
+ 112374256.83048 486.00048 194.00048 126.00048
+ 124898378.02146 97323443.27446 23767371.27048 23767371.73246 23767379.22746
+ 124898380.53048 168.00048 20.00046 30.00046
+ 123819811.72646 96483040.49746 23562111.35548 23562111.31846 23562117.91746
+ 123819811.21848 222.00048 44.00046 30.00046
+ 120104212.43747 93587762.42347 22855059.81648 22855059.85947 22855067.35947
+ 120104211.93948 334.00048 87.00047 83.00047
+ 112627104.87848 87761435.72448 21432214.52048 21432214.93048 21432221.59848
+ 112627104.37748 472.00048 175.00048 153.00048
+ 119037598.66147 92756619.56247 22652093.77748 22652093.86547 22652101.02947
+ 119037597.15748 308.00048 76.00047 79.00047
+ 03 10 31 0 42 10.0000000 0 8G 3G11G14G15G20G23G25G31
+ 126218960.01046 98352466.43646 24018668.08548 24018668.65546 24018675.67846
+ 126218957.51648 203.00048 32.00046 37.00046
+ 111459039.59048 86851240.23748 21209945.56349 21209945.88548 21209951.45048
+ 111459038.08349 575.00049 231.00048 166.00048
+ 112635527.90548 87767986.46748 21433821.51348 21433821.62348 21433827.61348
+ 112635526.40348 477.00048 188.00048 123.00048
+ 124675222.50146 97149556.07946 23724906.15848 23724905.98846 23724914.05946
+ 124675225.01748 170.00048 21.00046 30.00046
+ 123917914.89646 96559484.56246 23580779.69548 23580779.72846 23580786.40046
+ 123917914.39648 218.00048 43.00046 29.00046
+ 120269853.23947 93716833.14847 22886580.20448 22886580.28847 22886587.88147
+ 120269852.73548 329.00048 86.00047 83.00047
+ 112397711.74448 87582687.90448 21388562.38248 21388562.80948 21388569.46048
+ 112397711.23948 481.00048 181.00048 156.00048
+ 118835823.93847 92599392.60347 22613697.18348 22613697.38047 22613704.34947
+ 118835822.43148 313.00048 79.00047 79.00047
+ 03 10 31 0 42 20.0000000 0 8G 3G11G14G15G20G23G25G31
+ 125878306.08346 98087021.98846 23953843.80448 23953843.72546 23953851.49346
+ 125878303.57348 210.00048 37.00046 40.00046
+ 111609555.29048 86968525.21548 21238587.67749 21238588.05048 21238593.73148
+ 111609553.78349 570.00049 226.00048 160.00048
+ 112901487.07248 87975227.37748 21484431.78348 21484431.98048 21484438.04648
+ 112901485.56848 468.00048 176.00048 118.00048
+ 124453707.04646 96976946.79446 23682753.22248 23682752.47546 23682760.69646
+ 124453709.54548 173.00048 22.00046 32.00046
+ 124019085.12546 96638318.49946 23600031.78948 23600031.46246 23600038.71346
+ 124019084.62848 216.00048 39.00046 30.00046
+ 120438367.56547 93848143.01847 22918647.51048 22918647.48647 22918655.20047
+ 120438367.06148 323.00048 82.00047 81.00047
+ 112173658.33848 87408100.94248 21345926.43648 21345926.79148 21345933.39448
+ 112173657.83648 490.00048 190.00048 162.00048
+ 118636123.22647 92443781.77147 22575695.44648 22575695.55647 22575702.56047
+ 118636121.71848 316.00048 82.00047 78.00047
+ 03 10 31 0 42 30.0000000 0 8G 3G11G14G15G20G23G25G31
+ 125538621.39346 97822332.78846 23889203.81048 23889204.12946 23889211.29946
+ 125538618.89148 216.00048 38.00046 41.00046
+ 111763625.67248 87088580.10148 21267906.32349 21267906.64148 21267912.23548
+ 111763624.16549 565.00049 222.00048 157.00048
+ 113172058.88948 88186062.57148 21535919.95148 21535920.00748 21535926.15548
+ 113172057.38648 458.00048 169.00048 114.00048
+ 124233857.49746 96805635.61046 23640916.78048 23640916.80046 23640924.83446
+ 124233859.99448 176.00048 22.00046 32.00046
+ 124123312.61446 96719534.87046 23619865.54648 23619865.11046 23619872.10446
+ 124123312.11148 212.00048 38.00046 29.00046
+ 120609711.84147 93981658.08147 22951253.17748 22951253.22147 22951260.85047
+ 120609711.33948 317.00048 78.00047 77.00047
+ 111955009.43548 87237725.26648 21304318.86648 21304319.18748 21304325.77948
+ 111955008.93448 496.00048 195.00048 165.00048
+ 118438531.34247 92289814.15947 22538094.96948 22538094.87347 22538101.98247
+ 118438529.83548 321.00048 84.00047 83.00047
+ 03 10 31 0 42 40.0000000 0 8G 3G11G14G15G20G23G25G31
+ 125199952.17646 97558434.82846 23824756.98948 23824757.60546 23824764.39646
+ 125199949.67248 222.00048 39.00046 43.00046
+ 111921224.75848 87211384.61548 21297896.35549 21297896.75248 21297902.31648
+ 111921223.25049 558.00049 218.00048 152.00048
+ 113447165.90148 88400431.69948 21588271.05348 21588271.17048 21588277.22448
+ 113447164.40148 448.00048 162.00048 111.00048
+ 124015699.60746 96635642.62846 23599402.89148 23599402.32946 23599410.27146
+ 124015702.11548 179.00048 24.00046 32.00046
+ 124230586.05346 96803124.64146 23640278.98748 23640278.75546 23640285.77346
+ 124230585.55648 210.00048 38.00046 26.00046
+ 120783842.10447 94117344.05147 22984389.04148 22984388.96347 22984396.72747
+ 120783841.60248 311.00048 77.00047 77.00047
+ 111741828.58748 87071610.38948 21263751.80249 21263752.17648 21263758.78248
+ 111741828.08549 503.00049 199.00048 173.00048
+ 118243083.11347 92137516.96047 22500902.26748 22500902.29647 22500909.34347
+ 118243081.60848 325.00048 85.00047 86.00047
+ 03 10 31 0 42 50.0000000 0 8G 3G11G14G15G20G23G25G31
+ 124862344.89946 97295364.33146 23760512.40348 23760512.70046 23760519.85146
+ 124862342.39148 227.00048 42.00046 42.00046
+ 112082326.07348 87336918.13348 21328552.92749 21328553.27348 21328558.80648
+ 112082324.56449 553.00049 213.00048 149.00048
+ 113726730.05948 88618273.93648 21641470.28348 21641470.46748 21641476.47748
+ 113726728.55748 438.00048 156.00048 106.00048
+ 123799258.83846 96466987.59546 23558215.40848 23558215.34246 23558222.98446
+ 123799261.32548 184.00048 25.00046 32.00046
+ 124340894.15646 96889079.10746 23661269.79348 23661269.82146 23661276.34046
+ 124340893.65348 208.00048 37.00046 27.00046
+ 120960714.13047 94255166.47947 23018046.70748 23018046.55447 23018054.24047
+ 120960713.63748 307.00048 73.00047 76.00047
+ 111534178.35448 86909805.12048 21224237.15049 21224237.56748 21224244.12948
+ 111534177.85549 508.00049 203.00048 177.00048
+ 118049813.22647 91986917.20747 22464124.10148 22464123.87947 22464131.14747
+ 118049811.71648 329.00048 87.00047 86.00047
+ 03 10 31 0 43 0.0000000 0 8G 3G11G14G15G20G23G25G31
+ 124525846.24746 97033157.65646 23696478.92648 23696478.99846 23696486.27046
+ 124525843.74948 233.00048 43.00046 46.00046
+ 112246902.90848 87465159.88348 21359870.83549 21359871.17548 21359876.64248
+ 112246901.40149 548.00049 210.00048 145.00048
+ 114010672.73748 88839528.01648 21695502.74348 21695502.88248 21695508.97548
+ 114010671.23448 428.00048 150.00048 104.00048
+ 123584560.60546 96299690.35346 23517359.49548 23517359.55946 23517367.14646
+ 123584563.10348 188.00048 26.00046 34.00046
+ 124454224.72746 96977388.75246 23682835.66948 23682835.86846 23682842.26046
+ 124454224.22448 207.00048 37.00046 27.00046
+ 121140283.45747 94395090.71947 23052217.33948 23052217.58047 23052225.27447
+ 121140282.96048 302.00048 72.00047 73.00047
+ 111332119.72048 86752356.93148 21185786.70449 21185787.03048 21185793.60448
+ 111332119.21849 513.00049 207.00048 182.00048
+ 117858756.16347 91838041.69347 22427766.95448 22427767.04847 22427774.09847
+ 117858754.65848 333.00048 90.00047 88.00047
+ 03 10 31 0 43 10.0000000 0 8G 3G11G14G15G20G23G25G31
+ 124190503.33046 96771851.51746 23632665.12848 23632665.68946 23632673.23446
+ 124190500.82848 237.00048 46.00046 45.00046
+ 112414927.41848 87596088.12848 21391844.84849 21391845.11648 21391850.67148
+ 112414925.91049 541.00049 202.00048 143.00048
+ 114298914.77948 89064132.25547 21750353.35948 21750353.45048 21750359.48647
+ 114298913.27848 419.00048 143.00048 98.00047
+ 123371630.39046 96133770.73446 23476840.11848 23476839.92846 23476847.98846
+ 123371632.88148 195.00048 28.00046 36.00046
+ 124570564.96146 97068043.59246 23704974.59748 23704974.47246 23704981.47846
+ 124570564.45648 206.00048 36.00046 26.00046
+ 121322505.26747 94537081.83047 23086893.06248 23086892.98547 23086900.51547
+ 121322504.76748 298.00048 70.00047 69.00047
+ 111135712.32148 86599312.26748 21148411.46349 21148411.85848 21148418.38448
+ 111135711.81949 519.00049 210.00048 189.00048
+ 117669946.39647 91690917.26847 22391837.60948 22391837.76847 22391844.63947
+ 117669944.89148 338.00048 93.00047 91.00047
+ 03 10 31 0 43 20.0000000 0 8G 3G11G14G15G20G23G25G31
+ 123856363.42446 96511482.75746 23569080.53848 23569081.07946 23569087.93146
+ 123856360.92048 242.00048 48.00046 45.00046
+ 112586371.43848 87729680.92348 21424469.44749 21424469.76748 21424475.25348
+ 112586369.93149 534.00049 198.00048 138.00048
+ 114591376.52548 89292024.56747 21806006.92348 21806007.08048 21806013.10547
+ 114591375.02448 411.00048 135.00048 95.00047
+ 123160493.45246 95969248.50446 23436662.15048 23436662.00946 23436669.87846
+ 123160495.94148 200.00048 29.00046 36.00046
+ 124689901.27846 97161033.01046 23727683.41248 23727683.28746 23727689.75346
+ 124689900.78148 206.00048 36.00046 27.00046
+ 121507334.46247 94681104.64747 23122064.87948 23122064.74747 23122072.41247
+ 121507333.96048 295.00048 67.00047 72.00047
+ 110945014.61748 86450716.69448 21112122.96649 21112123.29448 21112129.82448
+ 110945014.11549 524.00049 215.00048 196.00048
+ 117483418.32347 91545570.73547 22356342.39448 22356342.50247 22356349.49047
+ 117483416.81548 342.00048 94.00047 92.00047
+ 03 10 31 0 43 30.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 127754381.71756 99548900.66456 24310850.18648 24310850.63446 24310858.47046
+ 127754379.21058 157.00048 20.00046 26.00046
+ 123523474.17846 96252088.49646 23505733.71948 23505734.22346 23505741.29046
+ 123523471.67148 246.00048 49.00046 48.00046
+ 112761206.29448 87865915.90648 21457739.42549 21457739.71848 21457745.28048
+ 112761204.78749 527.00049 193.00048 136.00048
+ 114887977.95848 89523142.59547 21862448.29248 21862448.44248 21862454.44847
+ 114887976.45548 404.00048 133.00048 93.00047
+ 122951174.98546 95806143.29646 23396830.16648 23396830.41846 23396837.60746
+ 122951177.47948 206.00048 30.00046 39.00046
+ 124812219.74646 97256346.16546 23750959.67548 23750959.84546 23750966.15546
+ 124812219.24048 206.00048 36.00046 27.00046
+ 121694725.78847 94827123.90147 23157724.29748 23157724.03047 23157731.87147
+ 121694725.28948 291.00048 65.00047 67.00047
+ 110760083.44148 86306614.49748 21076931.63149 21076931.97748 21076938.55848
+ 110760082.93849 529.00049 220.00048 199.00048
+ 117299206.22647 91402028.86147 22321288.07948 22321288.30647 22321295.24647
+ 117299204.72248 347.00048 97.00047 94.00047
+ 03 10 31 0 43 40.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 127457445.89746 99317522.01046 24254345.25648 24254345.06646 24254353.05046
+ 127457443.39048 159.00048 20.00046 28.00046
+ 123191883.34346 95993705.95246 23442634.42448 23442634.34146 23442641.65646
+ 123191880.84048 249.00048 50.00046 50.00046
+ 112939402.93748 88004770.46848 21491649.06749 21491649.37048 21491654.81448
+ 112939401.42949 519.00049 188.00048 130.00048
+ 115188638.75648 89757423.76547 21919662.05448 21919662.31148 21919668.30447
+ 115188637.25548 397.00048 128.00048 89.00047
+ 122743699.70446 95644474.23946 23357349.02648 23357348.65746 23357356.60046
+ 122743702.21548 211.00048 32.00046 38.00046
+ 124937505.54646 97353971.50246 23774800.75048 23774801.01746 23774807.16146
+ 124937505.03648 206.00048 37.00046 25.00046
+ 121884633.82547 94975104.21347 23193862.53648 23193862.47447 23193869.88747
+ 121884633.31848 289.00048 67.00047 67.00047
+ 110580974.17448 86167048.86148 21042848.31849 21042848.69548 21042855.15048
+ 110580973.67549 535.00049 224.00048 208.00048
+ 117117344.34047 91260318.32947 22286680.84448 22286680.78147 22286687.98947
+ 117117342.83548 349.00048 98.00047 99.00047
+ 03 10 31 0 43 50.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 127162502.03246 99087695.46846 24198219.22848 24198220.10846 24198227.79846
+ 127162499.51148 161.00048 19.00046 29.00046
+ 122861639.16246 95736372.74047 23379790.78548 23379791.15746 23379798.38347
+ 122861636.65948 251.00048 49.00046 51.00047
+ 113120931.62048 88146221.41448 21526192.87149 21526193.17348 21526198.59648
+ 113120930.11149 513.00049 183.00048 129.00048
+ 115493278.19948 89994805.16047 21977633.15248 21977633.33948 21977639.14947
+ 115493276.69948 390.00048 124.00048 85.00047
+ 122538092.58246 95484260.82346 23318223.40648 23318223.08146 23318230.88446
+ 122538095.06948 216.00048 35.00046 38.00046
+ 125065743.42546 97453897.17346 23799203.87048 23799203.75146 23799210.12746
+ 125065742.91648 205.00048 37.00046 24.00046
+ 122077012.85547 95125009.96247 23230471.02548 23230471.06347 23230478.45547
+ 122077012.35148 286.00048 63.00047 66.00047
+ 110407740.67748 86032061.72048 21009883.01349 21009883.46748 21009889.91948
+ 110407740.17549 540.00049 229.00048 212.00048
+ 116937866.46348 91120465.40347 22252527.30148 22252527.46648 22252534.47947
+ 116937864.95848 354.00048 101.00048 100.00047
+ 03 10 31 0 44 0.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 126869615.37646 98859471.93046 24142484.94748 24142484.87546 24142493.13146
+ 126869612.87248 164.00048 20.00046 29.00046
+ 122532790.09147 95480126.62447 23317213.02748 23317213.39347 23317220.73147
+ 122532787.58848 255.00048 51.00047 51.00047
+ 113305762.23248 88290245.29448 21561364.86149 21561365.15548 21561370.62948
+ 113305760.72449 506.00049 178.00048 126.00048
+ 115801815.35448 90235223.72047 22036345.81848 22036345.96748 22036351.96547
+ 115801813.85548 384.00048 120.00048 84.00047
+ 122334378.28546 95325522.34546 23279457.88548 23279457.79746 23279465.39646
+ 122334380.79048 222.00048 38.00046 41.00046
+ 125196917.23746 97556110.51246 23824165.30348 23824164.95346 23824171.90546
+ 125196916.72948 205.00048 38.00046 25.00046
+ 122271817.07547 95276805.45347 23267541.02548 23267541.05047 23267548.42447
+ 122271816.57648 283.00048 62.00047 66.00047
+ 110240435.25148 85901693.84048 20978045.93249 20978046.27048 20978052.83148
+ 110240434.75149 546.00049 234.00048 220.00048
+ 116760806.49548 90982496.52748 22218834.04848 22218834.20648 22218841.18548
+ 116760804.99248 357.00048 103.00048 102.00048
+ 03 10 31 0 44 10.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 126578851.66246 98632902.79246 24087154.37148 24087154.63546 24087162.51846
+ 126578849.16448 166.00048 20.00046 29.00046
+ 122205384.85447 95225005.61647 23254910.02648 23254910.38347 23254917.51547
+ 122205382.36148 258.00048 52.00047 53.00047
+ 113493863.95748 88436818.05248 21597159.42248 21597159.73248 21597165.28648
+ 113493862.44848 500.00048 173.00048 126.00048
+ 116114168.95648 90478616.11047 22095784.68048 22095784.85748 22095790.81647
+ 116114167.45348 377.00048 114.00048 82.00047
+ 122132581.38646 95168277.88046 23241057.24648 23241056.93046 23241064.96646
+ 122132583.87548 227.00048 36.00046 41.00046
+ 125331010.51146 97660598.70646 23849682.36148 23849682.41646 23849688.76946
+ 125331010.00548 202.00048 36.00046 24.00046
+ 122469000.45647 95430454.81847 23305063.78748 23305063.86647 23305071.36347
+ 122468999.95748 278.00048 61.00047 64.00047
+ 110079108.54848 85775984.67748 20947346.51149 20947346.79548 20947353.36548
+ 110079108.04649 554.00049 238.00048 223.00048
+ 116586198.07748 90846437.92348 22185607.29648 22185607.40248 22185614.40648
+ 116586196.56848 360.00048 105.00048 106.00048
+ 03 10 31 0 44 20.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 126290276.06546 98408038.74846 24032240.45148 24032240.04546 24032248.46046
+ 126290273.56048 169.00048 22.00046 30.00046
+ 121879472.29347 94971047.72547 23192890.80648 23192891.06147 23192898.58947
+ 121879469.79048 261.00048 54.00047 54.00047
+ 113685205.62748 88585915.41448 21633570.61948 21633570.94148 21633576.44648
+ 113685204.11848 494.00048 171.00048 120.00048
+ 116430257.51048 90724918.84547 22155934.36448 22155934.60448 22155940.66447
+ 116430256.00848 369.00048 109.00048 80.00047
+ 121932726.29846 95012546.55046 23203026.22548 23203026.07446 23203033.84946
+ 121932728.80448 231.00048 40.00046 42.00046
+ 125468006.09146 97767348.41446 23875751.86748 23875751.82846 23875757.99546
+ 125468005.59048 201.00048 34.00046 24.00046
+ 122668516.82447 95585922.06047 23343030.66548 23343030.64347 23343038.23247
+ 122668516.32148 274.00048 59.00047 63.00047
+ 109923809.58148 85654972.44348 20917794.11949 20917794.47248 20917801.00848
+ 109923809.07949 560.00049 245.00048 228.00048
+ 116414074.73048 90712315.75048 22152853.37148 22152853.40148 22152860.63648
+ 116414073.22848 364.00048 107.00048 107.00048
+ 03 10 31 0 44 30.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 126003953.89946 98184930.67546 23977755.06648 23977755.25546 23977762.98246
+ 126003951.38148 173.00048 25.00046 32.00046
+ 121555101.25547 94718290.92947 23131165.30648 23131165.70647 23131173.03447
+ 121555098.75748 265.00048 55.00047 54.00047
+ 113879755.70848 88737512.81848 21670592.23248 21670592.62748 21670597.95548
+ 113879754.19948 488.00048 163.00048 119.00048
+ 116749999.40448 90974068.32547 22216779.25148 22216779.52848 22216785.39247
+ 116749997.90448 362.00048 107.00048 77.00047
+ 121734837.38946 94858347.36546 23165369.16048 23165368.77146 23165376.84446
+ 121734839.89448 235.00048 39.00046 43.00046
+ 125607886.31446 97876345.91446 23902370.19948 23902370.27046 23902376.43446
+ 125607885.80548 198.00048 34.00046 24.00046
+ 122870319.90347 95743171.13647 23381432.39648 23381432.39447 23381440.23247
+ 122870319.39548 270.00048 57.00047 62.00047
+ 109774585.61348 85538693.97448 20889397.76549 20889398.14448 20889404.69648
+ 109774585.11249 567.00049 251.00048 230.00048
+ 116244469.75148 90580155.95748 22120578.57948 22120578.70148 22120585.87748
+ 116244468.24448 367.00048 110.00048 109.00048
+ 03 10 31 0 44 40.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 125719950.67646 97963629.73046 23923710.74148 23923710.80446 23923718.47846
+ 125719948.17048 178.00048 24.00046 30.00046
+ 121232321.94047 94466774.73047 23069742.28148 23069742.45147 23069749.94347
+ 121232319.43048 269.00048 58.00047 56.00047
+ 114077482.08548 88891585.23448 21708218.44448 21708218.79448 21708224.22848
+ 114077480.57848 483.00048 162.00048 117.00048
+ 117073312.88947 91226000.84047 22278303.82848 22278304.08347 22278310.00947
+ 117073311.38648 353.00048 99.00047 77.00047
+ 121538938.57146 94705698.91146 23128090.90748 23128090.56846 23128098.59746
+ 121538941.08348 239.00048 42.00046 44.00046
+ 125750632.70546 97987576.73946 23929533.99048 23929534.09746 23929540.32546
+ 125750632.19748 193.00048 32.00046 25.00046
+ 123074363.26847 95902165.88447 23420260.72748 23420260.53447 23420268.19847
+ 123074362.76648 263.00048 55.00047 59.00047
+ 109631482.03748 85427184.63248 20862166.09049 20862166.50248 20862173.07848
+ 109631481.53549 575.00049 257.00048 236.00048
+ 116077416.06948 90449984.13748 22088789.54548 22088789.44848 22088796.70848
+ 116077414.56248 370.00048 109.00048 112.00048
+ 03 10 31 0 44 50.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 125438331.43546 97744186.36046 23870120.13448 23870120.20546 23870128.26346
+ 125438328.92248 183.00048 27.00046 32.00046
+ 120911183.24747 94216536.94547 23008631.61948 23008631.62547 23008639.09647
+ 120911180.74348 273.00048 60.00047 58.00047
+ 114278352.49648 89048107.56348 21746442.80948 21746443.18348 21746448.63948
+ 114278350.98648 477.00048 158.00048 113.00048
+ 117400116.13447 91480652.65347 22340492.61548 22340492.62147 22340498.79847
+ 117400114.63348 347.00048 97.00047 74.00047
+ 121345053.80646 94554619.87446 23091195.81048 23091195.62446 23091203.57146
+ 121345056.30948 243.00048 43.00046 45.00046
+ 125896226.47346 98101026.35146 23957239.76348 23957239.27146 23957246.86646
+ 125896225.98448 190.00048 32.00046 25.00046
+ 123280600.43447 96062870.08847 23459506.33848 23459506.21847 23459513.86547
+ 123280599.93348 258.00048 52.00047 59.00047
+ 109494542.76948 85320478.66848 20836107.50849 20836107.87848 20836114.40648
+ 109494542.26849 581.00049 263.00048 240.00048
+ 115912946.88548 90321826.32748 22057492.03548 22057492.00848 22057499.16748
+ 115912945.38248 374.00048 112.00048 115.00048
+ 03 10 31 0 45 0.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 125159161.48846 97526651.48346 23816995.67848 23816995.82146 23817003.69646
+ 125159158.97648 189.00048 29.00046 32.00046
+ 120591734.92947 93967616.32047 22947842.42948 22947842.74847 22947850.08047
+ 120591732.42748 278.00048 61.00047 57.00047
+ 114482334.03548 89207054.18248 21785259.27848 21785259.62548 21785265.21248
+ 114482332.52948 473.00048 155.00048 111.00048
+ 117730327.30347 91737959.99347 22403329.63848 22403329.78547 22403335.76247
+ 117730325.80148 338.00048 92.00047 70.00047
+ 121153206.81246 94405128.76746 23054688.51348 23054688.38046 23054696.35146
+ 121153209.30848 247.00048 45.00046 47.00046
+ 126044648.14146 98216679.50046 23985483.41048 23985482.82646 23985490.11846
+ 126044647.63648 185.00048 30.00046 23.00046
+ 123488984.77746 96225247.42447 23499160.61048 23499160.76946 23499168.31047
+ 123488984.28448 252.00048 49.00046 55.00047
+ 109363809.67248 85218608.70648 20811229.89249 20811230.21648 20811236.75948
+ 109363809.17049 587.00049 268.00048 247.00048
+ 115751094.63748 90195707.71648 22026692.50748 22026692.68048 22026699.78648
+ 115751093.13348 377.00048 114.00048 116.00048
+ 03 10 31 0 45 10.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 124882506.08546 97311075.95846 23764350.00948 23764350.20046 23764357.91146
+ 124882503.58848 194.00048 29.00046 34.00046
+ 120274026.98447 93720051.79047 22887384.49948 22887384.76647 22887392.01547
+ 120274024.48348 283.00048 63.00047 61.00047
+ 114689393.39348 89368399.11348 21824661.43848 21824661.72748 21824667.26448
+ 114689391.88648 468.00048 151.00048 111.00048
+ 118063864.45847 91997859.02247 22466799.67748 22466799.97647 22466806.01547
+ 118063862.95748 331.00048 87.00047 69.00047
+ 120963421.02046 94257243.80346 23018573.56248 23018573.25346 23018581.16846
+ 120963423.51448 250.00048 46.00046 48.00046
+ 126195877.65146 98334520.62546 24014261.43848 24014261.52046 24014268.63346
+ 126195877.14248 180.00048 28.00046 25.00046
+ 123699469.65846 96389261.54547 23539214.59948 23539214.72646 23539222.33347
+ 123699469.16048 246.00048 46.00046 54.00047
+ 109239322.66748 85121605.84548 20787540.73949 20787541.09848 20787547.64148
+ 109239322.16549 593.00049 275.00048 250.00048
+ 115591891.68248 90071653.50548 21996397.27048 21996397.30648 21996404.37348
+ 115591890.17948 381.00048 117.00048 119.00048
+ 03 10 31 0 45 20.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 124608430.59546 97097510.72346 23712195.19548 23712194.86546 23712203.23346
+ 124608428.10348 200.00048 29.00046 35.00046
+ 119958109.52047 93473882.41047 22827267.33648 22827267.66747 22827274.71547
+ 119958107.02048 289.00048 66.00047 62.00047
+ 114899496.85548 89532116.07348 21864642.81048 21864643.04048 21864648.63948
+ 114899495.34548 463.00048 147.00048 108.00048
+ 118400645.61447 92260285.83747 22530887.08248 22530887.22447 22530893.27347
+ 118400644.11148 325.00048 84.00047 67.00047
+ 120775719.67646 94110983.08646 22982854.90548 22982854.80546 22982862.80246
+ 120775722.17548 253.00048 48.00046 50.00046
+ 126349894.21446 98454533.46046 24043570.01948 24043570.01546 24043577.10546
+ 126349893.70548 175.00048 26.00046 23.00046
+ 123912008.29246 96554875.99947 23579659.37348 23579659.40446 23579667.12747
+ 123912007.79148 241.00048 44.00046 54.00047
+ 109121119.87848 85029499.77648 20765047.45549 20765047.84248 20765054.37948
+ 109121119.37549 598.00049 278.00048 254.00048
+ 115435370.06948 89949688.63548 21966612.11748 21966612.20648 21966619.22648
+ 115435368.56348 386.00048 119.00048 122.00048
+ 03 10 31 0 45 30.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 124337000.13646 96886006.59446 23660543.32148 23660544.04646 23660551.49446
+ 124336997.64348 205.00048 34.00046 33.00046
+ 119644032.89947 93229147.45047 22767500.59948 22767500.80247 22767508.01047
+ 119644030.39348 295.00048 69.00047 63.00047
+ 115112610.37348 89698178.52348 21905196.95848 21905197.29948 21905202.90348
+ 115112608.86548 459.00048 147.00048 105.00048
+ 118740588.84547 92525176.61147 22595576.22148 22595576.32047 22595582.33047
+ 118740587.34248 319.00048 84.00047 64.00047
+ 120590125.88746 93966364.61947 22947537.57048 22947537.46546 22947545.46247
+ 120590128.38448 256.00048 50.00046 53.00047
+ 126506676.61946 98576701.50246 24073404.44548 24073404.12246 24073411.47846
+ 126506676.11548 169.00048 24.00046 24.00046
+ 124126553.89746 96722054.32947 23620486.32748 23620486.09746 23620493.65747
+ 124126553.38948 234.00048 43.00046 53.00047
+ 109009237.44648 84942318.66448 20743756.96549 20743757.29948 20743763.77248
+ 109009236.94449 605.00049 285.00048 259.00048
+ 115281561.71848 89829837.99348 21937343.37048 21937343.31948 21937350.58448
+ 115281560.21248 390.00048 123.00048 125.00048
+ 03 10 31 0 45 40.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 124068279.69246 96676614.12946 23609407.72548 23609407.75346 23609415.30246
+ 124068277.17248 210.00048 32.00046 37.00046
+ 119331847.68447 92985886.33847 22708093.45548 22708093.66847 22708101.24147
+ 119331845.18048 300.00048 74.00047 66.00047
+ 115328699.66348 89866559.76747 21946317.42848 21946317.74248 21946323.27447
+ 115328698.15448 454.00048 140.00048 100.00047
+ 119083612.23447 92792467.50747 22660851.47748 22660851.56247 22660857.66147
+ 119083610.73548 313.00048 79.00047 63.00047
+ 120406662.56746 93823406.25247 22912625.51648 22912625.79946 22912633.10047
+ 120406665.05848 259.00048 49.00046 54.00047
+ 126666203.19546 98701007.86446 24103761.57248 24103761.17046 24103768.42046
+ 126666202.68648 166.00048 24.00046 25.00046
+ 124343059.65146 96890760.05347 23661685.99448 23661685.79846 23661693.35747
+ 124343059.15648 228.00048 41.00046 51.00047
+ 108903709.55048 84860089.14548 20723675.72249 20723676.05348 20723682.53148
+ 108903709.04949 611.00049 292.00048 264.00048
+ 115130498.18448 89712126.17948 21908596.88148 21908596.97748 21908604.03948
+ 115130496.67848 396.00048 125.00048 128.00048
+ 03 10 31 0 45 50.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 123802334.01746 96469383.86646 23558799.84448 23558800.10546 23558807.44746
+ 123802331.50648 214.00048 35.00046 36.00046
+ 119021604.55447 92744138.54547 22649056.07248 22649056.40247 22649063.78647
+ 119021602.05648 306.00048 73.00047 70.00047
+ 115547729.93148 90037232.69147 21987997.54248 21987997.83748 21988003.35747
+ 115547728.42648 448.00048 140.00048 97.00047
+ 119429634.12947 93062094.90447 22726697.24048 22726697.31947 22726703.50647
+ 119429632.62748 307.00048 74.00047 61.00047
+ 120225352.33846 93682125.64947 22878123.44748 22878123.19446 22878131.06347
+ 120225354.83848 264.00048 50.00046 55.00047
+ 126828451.70246 98827435.19446 24134636.60048 24134636.08446 24134643.44946
+ 126828451.19348 163.00048 23.00046 22.00046
+ 124561478.82346 97060956.73746 23703249.69948 23703249.57146 23703257.50646
+ 124561478.32048 223.00048 37.00046 49.00046
+ 108804568.29748 84782836.23648 20704809.72649 20704810.08748 20704816.57948
+ 108804567.79749 616.00049 296.00048 268.00048
+ 114982210.82648 89596577.62948 21880378.65948 21880378.83948 21880385.82948
+ 114982209.32248 402.00048 129.00048 130.00048
+ 03 10 31 0 46 0.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 123539227.79646 96264366.16046 23508732.21848 23508732.37446 23508739.93446
+ 123539225.29748 218.00048 36.00046 40.00046
+ 118713354.31047 92503943.65747 22590398.09148 22590398.33047 22590405.54447
+ 118713351.80848 311.00048 78.00047 73.00047
+ 115769666.06648 90210169.91247 22030230.55848 22030230.86948 22030236.46847
+ 115769664.55848 442.00048 134.00048 94.00047
+ 119778572.84847 93333995.16347 22793098.04148 22793098.34447 22793104.16947
+ 119778571.34548 301.00048 72.00047 59.00047
+ 120046217.77347 93542540.38147 22844035.16648 22844034.96147 22844042.77047
+ 120046220.27848 266.00048 51.00047 56.00047
+ 126993399.36946 98955965.78146 24166025.13148 24166024.62646 24166032.05146
+ 126993398.85848 160.00048 21.00046 22.00046
+ 124781764.56446 97232607.91046 23745168.55548 23745168.40646 23745176.43046
+ 124781764.04648 218.00048 37.00046 47.00046
+ 108711843.89448 84710583.47948 20687164.85749 20687165.16948 20687171.71648
+ 108711843.39249 621.00049 301.00048 270.00048
+ 114836730.62648 89483216.48748 21852694.79548 21852694.78648 21852701.86948
+ 114836729.12148 408.00048 133.00048 132.00048
+ 03 10 31 0 46 10.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 123279025.59246 96061611.32446 23459217.42148 23459217.07546 23459224.78146
+ 123279023.08048 221.00048 39.00046 39.00046
+ 118407147.91047 92265341.40347 22532128.74248 22532129.00047 22532136.28147
+ 118407145.41248 318.00048 80.00047 75.00047
+ 115994472.72648 90385343.93447 22073009.82048 22073010.15448 22073015.61147
+ 115994471.21648 435.00048 129.00048 91.00047
+ 120130346.86247 93608104.74647 22860038.62548 22860038.86347 22860044.60847
+ 120130345.35948 294.00048 68.00047 56.00047
+ 119869281.10647 93404667.77847 22810365.01848 22810364.86647 22810372.66847
+ 119869283.60348 270.00048 53.00047 60.00047
+ 127161022.93246 99086581.49346 24197922.69848 24197923.02646 24197930.12846
+ 127161022.40648 159.00048 23.00046 21.00046
+ 125003869.95846 97405677.03946 23787433.88448 23787433.85146 23787441.80646
+ 125003869.45448 214.00048 35.00046 47.00046
+ 108625564.41848 84643352.75548 20670746.35549 20670746.70748 20670753.23048
+ 108625563.91749 626.00049 305.00048 276.00048
+ 114694088.29748 89372066.69448 21825550.73548 21825550.89648 21825557.85748
+ 114694086.79048 413.00048 135.00048 135.00048
+ 03 10 31 0 46 20.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 123021791.67146 95861169.50046 23410267.03748 23410267.29546 23410274.93946
+ 123021789.16148 225.00048 38.00046 41.00046
+ 118103036.48047 92028371.60447 22474258.21948 22474258.42747 22474265.61647
+ 118103033.98148 324.00048 83.00047 78.00047
+ 116222114.25748 90562726.95547 22116328.58348 22116328.85048 22116334.40247
+ 116222112.75048 429.00048 126.00048 86.00047
+ 120484874.85647 93884360.30947 22927502.94048 22927503.02647 22927509.46447
+ 120484873.35848 287.00048 67.00047 57.00047
+ 119694564.34547 93268524.99047 22777117.43848 22777117.39347 22777125.07847
+ 119694566.84648 273.00048 54.00047 59.00047
+ 127331298.49746 99219263.72546 24230325.21748 24230325.31146 24230332.11946
+ 127331297.98848 157.00048 22.00046 22.00046
+ 125227748.30846 97580127.70746 23830036.66948 23830036.35946 23830044.21046
+ 125227747.80548 209.00048 34.00046 44.00046
+ 108545755.73148 84581164.21348 20655559.21349 20655559.54648 20655566.04748
+ 108545755.22749 631.00049 308.00048 278.00048
+ 114554314.08748 89263151.80548 21798952.54048 21798952.51348 21798959.61548
+ 114554312.58348 416.00048 140.00048 137.00048
+ 03 10 31 0 46 30.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 122767589.98746 95663090.46846 23361894.16548 23361894.05646 23361901.63946
+ 122767587.48048 229.00048 41.00046 42.00046
+ 117801071.19747 91793074.11647 22416796.05548 22416796.29547 22416803.48147
+ 117801068.69648 329.00048 87.00047 83.00047
+ 116452554.63648 90742290.89447 22160179.78248 22160180.14448 22160185.66347
+ 116452553.12748 423.00048 125.00048 85.00047
+ 120842075.74847 94162698.65947 22995476.05848 22995476.11147 22995482.10547
+ 120842074.24448 281.00048 63.00047 52.00047
+ 119522089.29647 93134129.00947 22744296.54048 22744296.32647 22744303.97247
+ 119522091.79348 277.00048 57.00047 63.00047
+ 127504201.89146 99353993.61446 24263227.71048 24263226.86346 24263234.76446
+ 127504201.37448 157.00048 23.00046 22.00046
+ 125453352.80246 97755923.42446 23872967.76048 23872967.68746 23872975.41446
+ 125453352.28648 205.00048 34.00046 44.00046
+ 108472441.68848 84524036.45048 20641607.91749 20641608.38048 20641614.82748
+ 108472441.18749 636.00049 315.00048 284.00048
+ 114417438.07048 89156495.25348 21772905.88248 21772905.87848 21772912.82848
+ 114417436.56348 420.00048 139.00048 138.00048
+ 03 10 31 0 46 40.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 122516484.24646 95467423.85546 23314110.14348 23314109.86546 23314117.60546
+ 122516481.73148 232.00048 41.00046 44.00046
+ 117501303.40847 91559488.96947 22359751.97248 22359752.28047 22359759.39947
+ 117501300.90948 336.00048 89.00047 89.00047
+ 116685757.65348 90924007.56347 22204556.98948 22204557.28548 22204562.77447
+ 116685756.14548 416.00048 119.00048 83.00047
+ 121201868.66947 94443056.79146 23063942.36048 23063942.56447 23063948.44546
+ 121201867.16648 274.00048 60.00047 49.00046
+ 119351877.45647 93001496.57947 22711906.13348 22711905.74147 22711913.58647
+ 119351879.95048 281.00048 55.00047 64.00047
+ 127679708.24046 99490751.82246 24296625.45648 24296624.97846 24296632.20646
+ 127679707.73048 156.00048 20.00046 19.00046
+ 125680636.75046 97933027.87746 23916218.20248 23916218.74346 23916225.76646
+ 125680636.25548 201.00048 31.00046 43.00046
+ 108405643.91848 84471986.30848 20628896.77149 20628897.12548 20628903.56248
+ 108405643.41749 642.00049 319.00048 290.00048
+ 114283489.88248 89052120.14248 21747416.25048 21747416.32848 21747423.22548
+ 114283488.37748 421.00048 144.00048 142.00048
+ 03 10 31 0 46 50.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 122268537.83846 95274219.05546 23266927.38948 23266927.21346 23266934.60146
+ 122268535.32648 235.00048 43.00046 45.00046
+ 117203784.48447 91327656.17947 22303135.88548 22303136.21647 22303143.41147
+ 117203781.98448 342.00048 93.00047 93.00047
+ 116921686.82248 91107848.53147 22249452.67248 22249453.07148 22249458.66347
+ 116921685.31548 409.00048 115.00048 81.00047
+ 121564172.94647 94725371.83946 23132886.52548 23132886.50947 23132892.74146
+ 121564171.44248 268.00048 57.00047 49.00046
+ 119183950.03547 92870644.21847 22679950.41348 22679950.39647 22679957.97147
+ 119183952.53148 287.00048 61.00047 66.00047
+ 127857792.23446 99629518.62246 24330513.59548 24330513.45646 24330519.89446
+ 127857791.73248 156.00048 21.00046 18.00046
+ 125909553.51446 98111404.64646 23959779.85448 23959779.43346 23959787.15846
+ 125909553.00648 197.00048 30.00046 43.00046
+ 108345381.96148 84425029.00848 20617429.23349 20617429.55748 20617436.06548
+ 108345381.46049 647.00049 323.00048 292.00048
+ 114152498.82248 88950049.29448 21722489.49748 21722489.48348 21722496.33048
+ 114152497.31548 422.00048 141.00048 144.00048
+ 03 10 31 0 47 0.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 122023813.85846 95083525.23246 23220357.63948 23220357.80146 23220365.18746
+ 122023811.35548 237.00048 44.00046 47.00046
+ 116908565.91247 91097615.85747 22246957.61748 22246957.95847 22246964.98247
+ 116908563.40848 347.00048 98.00047 97.00047
+ 117160305.31948 91293785.07647 22294860.21548 22294860.51748 22294866.02347
+ 117160303.81348 402.00048 111.00048 77.00047
+ 121928908.18447 95009581.17146 23202293.20748 23202293.47347 23202299.59446
+ 121928906.68348 262.00048 54.00047 46.00046
+ 119018328.06147 92741588.30047 22648433.54448 22648433.47947 22648440.94447
+ 119018330.56048 291.00048 62.00047 69.00047
+ 128038428.19146 99770273.97246 24364887.68948 24364887.50246 24364894.09046
+ 128038427.70048 155.00048 19.00046 20.00046
+ 126140056.39946 98291017.38446 24003642.98948 24003643.00846 24003650.55746
+ 126140055.90848 194.00048 29.00046 40.00046
+ 108291673.19548 84383178.09548 20607208.77749 20607209.09748 20607215.57148
+ 108291672.69249 652.00049 328.00048 297.00048
+ 114024493.80548 88850305.23548 21698130.77248 21698130.74748 21698137.77348
+ 114024492.30048 424.00048 145.00048 145.00048
+ 03 10 31 0 47 10.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 121782375.11646 94895391.31746 23174413.24948 23174413.54646 23174420.84646
+ 121782372.60848 241.00048 43.00046 49.00046
+ 116615699.25947 90869408.20248 22191226.92048 22191227.07347 22191234.18748
+ 116615696.75548 351.00048 97.00047 101.00048
+ 117401576.17748 91481788.40447 22340772.50548 22340772.88648 22340778.16247
+ 117401574.66548 397.00048 110.00048 76.00047
+ 122295994.32847 95295622.37946 23272147.34348 23272147.46547 23272153.52746
+ 122295992.82148 256.00048 53.00047 44.00046
+ 118855032.27347 92614344.97147 22617359.26748 22617359.07647 22617366.85447
+ 118855034.77348 297.00048 63.00047 69.00047
+ 128221589.98546 99912997.49746 24399741.81148 24399741.57146 24399747.88146
+ 128221589.46348 154.00048 21.00046 18.00046
+ 126372099.04246 98471829.94346 24047798.95348 24047799.37546 24047806.78846
+ 126372098.54048 189.00048 30.00046 39.00046
+ 108244532.79948 84346445.40048 20598238.11249 20598238.52848 20598244.90948
+ 108244532.29949 655.00049 333.00048 299.00048
+ 113899503.26348 88752910.10648 21674345.85248 21674345.82248 21674352.75948
+ 113899501.75548 424.00048 145.00048 147.00048
+ 03 10 31 0 47 20.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 121544283.93446 94709865.86146 23129105.93248 23129106.05646 23129113.55146
+ 121544281.41848 244.00048 45.00046 49.00046
+ 116325236.04547 90643073.33448 22135953.50848 22135953.70147 22135960.77348
+ 116325233.53848 355.00048 100.00047 106.00048
+ 117645462.08348 91671829.44647 22387182.43348 22387182.66648 22387188.25147
+ 117645460.57648 390.00048 103.00048 74.00047
+ 122665351.57047 95583433.30346 23342433.72848 23342433.76647 23342439.65846
+ 122665350.06748 252.00048 51.00047 42.00046
+ 118694083.16947 92488930.21547 22586731.51248 22586731.55847 22586739.00247
+ 118694085.67148 302.00048 66.00047 72.00047
+ 128407250.90846 100057668.45246 24435071.92348 24435071.80646 24435079.08246
+ 128407250.39348 153.00048 19.00046 17.00046
+ 126605634.92646 98653806.07146 24092239.41848 24092239.45546 24092247.08146
+ 126605634.41948 187.00048 27.00046 39.00046
+ 108203973.65848 84314840.94748 20590519.93649 20590520.36748 20590526.74648
+ 108203973.15649 657.00049 332.00048 298.00048
+ 113777555.39948 88657885.89548 21651139.77548 21651139.85248 21651146.69048
+ 113777553.89148 426.00048 146.00048 149.00048
+ 03 10 31 0 47 30.0000000 0 9G 1G 3G11G14G15G20G23G25G31
+ 121309602.25346 94526997.15646 23084447.44248 23084447.64046 23084455.02346
+ 121309599.74848 247.00048 47.00046 50.00046
+ 116037227.93148 90418651.52148 22081147.32848 22081147.50448 22081154.58248
+ 116037225.42748 358.00048 101.00048 110.00048
+ 117891925.56648 91863878.98547 22434082.83748 22434083.17448 22434088.58847
+ 117891924.06048 383.00048 102.00048 72.00047
+ 123036900.42546 95872951.96146 23413137.16748 23413137.19146 23413143.41846
+ 123036898.91848 246.00048 50.00046 43.00046
+ 118535500.88247 92365359.70547 22556554.22948 22556554.35747 22556561.45247
+ 118535503.38148 307.00048 69.00047 73.00047
+ 128595383.87746 100204265.68646 24470872.54048 24470872.22946 24470879.17146
+ 128595383.36748 152.00048 21.00046 19.00046
+ 126840617.75146 98836909.69346 24136954.93248 24136954.83946 24136962.46946
+ 126840617.24648 185.00048 27.00046 39.00046
+ 108170006.35448 84288372.98448 20584056.13349 20584056.44348 20584062.84948
+ 108170005.85249 658.00049 333.00048 303.00048
+ 113658677.91948 88565254.18148 21628518.10948 21628518.15248 21628524.97648
+ 113658676.41348 429.00048 147.00048 151.00048
+ 03 10 31 0 47 40.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 121078391.62346 94346833.14847 23040449.40848 23040449.34046 23040456.93247
+ 121078389.11748 252.00048 48.00046 54.00047
+ 125245063.22256 97593584.58956 23833343.35248 23833343.24846 23833350.34746
+ 125245063.72558 160.00048 23.00046 26.00046
+ 115751726.58148 90196183.01548 22026818.10948 22026818.38148 22026825.37848
+ 115751724.08048 360.00048 103.00048 114.00048
+ 118140928.92647 92057907.64647 22481466.55548 22481466.82147 22481472.24247
+ 118140927.42048 377.00048 98.00047 72.00047
+ 123410561.81646 96164116.75946 23484242.27848 23484242.79146 23484248.53346
+ 123410560.31148 241.00048 47.00046 40.00046
+ 118379305.39047 92243649.01847 22526831.26248 22526830.98547 22526838.41647
+ 118379307.88948 313.00048 71.00047 72.00047
+ 128785961.30646 100352767.67646 24507138.12048 24507137.92946 24507144.85446
+ 128785960.80248 150.00048 21.00046 17.00046
+ 127077001.38446 99021104.85946 24181937.50348 24181936.87946 24181944.76946
+ 127077000.88048 182.00048 25.00046 36.00046
+ 108142639.36848 84267048.11848 20578848.25249 20578848.68048 20578855.01248
+ 108142638.86749 660.00049 335.00048 302.00048
+ 113542897.99648 88475036.13548 21606485.85548 21606485.82848 21606492.78948
+ 113542896.49148 432.00048 149.00048 153.00048
+ 03 10 31 0 47 50.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 120850713.06746 94169421.36947 22997123.49148 22997123.33946 22997130.80847
+ 120850710.55448 257.00048 50.00046 53.00047
+ 124844348.86246 97281339.69846 23757089.69848 23757089.51246 23757097.13146
+ 124844349.35348 167.00048 25.00046 26.00046
+ 115468783.67948 89975708.08848 21972975.84748 21972976.15348 21972983.01448
+ 115468781.17648 360.00048 104.00048 118.00048
+ 118392434.33247 92253885.92947 22529326.44948 22529326.87847 22529332.03047
+ 118392432.82248 370.00048 95.00047 70.00047
+ 123786257.04946 96456866.36946 23555734.78548 23555735.00046 23555740.96246
+ 123786255.55348 236.00048 44.00046 38.00046
+ 118225516.39347 92123813.50047 22497566.07148 22497565.95647 22497573.41947
+ 118225518.89048 318.00048 73.00047 75.00047
+ 128978955.35046 100503152.80046 24543863.39448 24543863.85146 24543870.43846
+ 128978954.86248 148.00048 19.00046 17.00046
+ 127314739.72646 99206355.62646 24227177.21448 24227177.11046 24227184.82846
+ 127314739.21948 178.00048 24.00046 35.00046
+ 108121878.91548 84250871.19248 20574897.66249 20574898.04848 20574904.40548
+ 108121878.41449 660.00049 337.00048 301.00048
+ 113430242.50848 88387252.69648 21585048.18748 21585048.23148 21585055.01148
+ 113430241.00148 437.00048 154.00048 156.00048
+ 03 10 31 0 48 0.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 120626627.13447 93994809.02947 22954481.38548 22954481.46847 22954488.68547
+ 120626624.62548 261.00048 53.00047 57.00047
+ 124444566.30546 96969820.86446 23681013.76748 23681013.93246 23681021.76646
+ 124444566.79648 176.00048 26.00046 30.00046
+ 115188450.88048 89757267.00048 21919630.12148 21919630.22748 21919637.46048
+ 115188448.38048 362.00048 104.00048 120.00048
+ 118646403.77247 92451784.24847 22577655.18548 22577655.57447 22577660.78747
+ 118646402.26348 362.00048 89.00047 69.00047
+ 124163907.83746 96751139.76246 23627599.11948 23627599.57646 23627605.35446
+ 124163906.32448 231.00048 44.00046 37.00046
+ 118074153.26347 92005868.26347 22468762.51848 22468762.41847 22468769.91147
+ 118074155.76848 322.00048 77.00047 75.00047
+ 129174337.61846 100655398.82246 24581043.60448 24581043.64846 24581049.71746
+ 129174337.11148 145.00048 18.00046 17.00046
+ 127553786.85246 99392626.21346 24272666.23148 24272666.55646 24272673.80746
+ 127553786.35348 175.00048 24.00046 32.00046
+ 108107728.82848 84239845.18848 20572204.95849 20572205.37448 20572211.64648
+ 108107728.32549 662.00049 337.00048 303.00048
+ 113320737.88448 88301924.47148 21564210.11748 21564210.20648 21564216.94748
+ 113320736.37848 441.00048 156.00048 159.00048
+ 03 10 31 0 48 10.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 120406193.92247 93823042.95447 22912534.29048 22912534.27347 22912541.68147
+ 120406191.41448 268.00048 54.00047 59.00047
+ 124045780.02346 96659078.34446 23605127.15548 23605127.22746 23605134.79646
+ 124045780.50948 183.00048 28.00046 30.00046
+ 114910779.79848 89540899.96248 21866791.07148 21866791.36548 21866798.32248
+ 114910777.29548 364.00048 106.00048 124.00048
+ 118902799.02347 92651572.80247 22626445.46048 22626445.84047 22626451.09547
+ 118902797.51248 355.00048 86.00047 65.00047
+ 124543436.19746 97046876.20846 23699821.08948 23699821.34646 23699827.10246
+ 124543434.70448 227.00048 40.00046 36.00046
+ 117925234.97947 91889828.07447 22440424.28148 22440424.09947 22440431.61347
+ 117925237.47848 326.00048 76.00047 76.00047
+ 129372079.34646 100809483.40846 24618672.41648 24618672.43846 24618677.66346
+ 129372078.84248 141.00048 15.00046 16.00046
+ 127794097.04246 99579880.98446 24318395.69148 24318395.76846 24318403.12746
+ 127794096.54148 172.00048 22.00046 34.00046
+ 108100190.77248 84233971.41548 20570770.46649 20570770.90148 20570777.20148
+ 108100190.26949 664.00049 340.00048 304.00048
+ 113214410.01248 88219071.62648 21543976.53348 21543976.61448 21543983.35648
+ 113214408.50748 446.00048 159.00048 160.00048
+ 03 10 31 0 48 20.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 120189472.92747 93654169.50147 22871293.63148 22871293.48947 22871300.72147
+ 120189470.41748 276.00048 59.00047 62.00047
+ 123648054.84746 96349162.66646 23529442.58048 23529443.02346 23529450.02046
+ 123648055.34948 191.00048 33.00046 33.00046
+ 114635822.04648 89326647.20248 21814468.34348 21814468.60048 21814475.61948
+ 114635819.54748 368.00048 110.00048 125.00048
+ 119161581.76347 92853221.72747 22675690.14948 22675690.34147 22675695.75747
+ 119161580.25548 347.00048 84.00047 65.00047
+ 124924764.66046 97344015.31046 23772385.57748 23772385.76746 23772391.59146
+ 124924763.15748 223.00048 38.00046 35.00046
+ 117778780.29047 91775707.56047 22412554.97248 22412554.86747 22412562.24947
+ 117778782.78948 329.00048 79.00047 77.00047
+ 129572151.45346 100965383.86446 24656744.49248 24656743.92146 24656752.04046
+ 129572150.93748 138.00048 15.00046 16.00046
+ 128035624.70546 99768084.45546 24364356.94248 24364356.78846 24364364.11646
+ 128035624.22048 170.00048 22.00046 32.00046
+ 108099264.23348 84233249.46748 20570594.11649 20570594.57048 20570600.87248
+ 108099263.73249 666.00049 342.00048 306.00048
+ 113111284.31248 88138713.97148 21524352.40048 21524352.55248 21524359.15048
+ 113111282.80748 451.00048 165.00048 164.00048
+ 03 10 31 0 48 30.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 119976523.06847 93488234.59747 22830770.47548 22830770.63547 22830777.96147
+ 119976520.56148 282.00048 59.00047 63.00047
+ 123251456.19846 96040124.76746 23453972.40948 23453972.69646 23453979.75946
+ 123251456.69448 196.00048 33.00046 35.00046
+ 114363629.12348 89114548.84148 21762671.67148 21762672.02048 21762679.05148
+ 114363626.61948 376.00048 113.00048 128.00048
+ 119422713.57047 93056701.08347 22725381.98348 22725382.22147 22725387.43747
+ 119422712.06048 340.00048 79.00047 64.00047
+ 125307816.11646 97642497.01146 23845277.45448 23845277.73846 23845283.76346
+ 125307814.61848 218.00048 38.00046 34.00046
+ 117634807.66147 91663521.10947 22385157.83648 22385157.63647 22385165.18247
+ 117634810.15748 333.00048 82.00047 81.00047
+ 129774524.35746 101123077.13346 24695254.79648 24695254.36546 24695261.86346
+ 129774523.83748 133.00048 15.00046 17.00046
+ 128278324.44646 99957201.18346 24410541.02848 24410540.40246 24410548.67646
+ 128278323.93148 166.00048 22.00046 30.00046
+ 108104946.42348 84237677.16848 20571675.41249 20571675.80448 20571682.12048
+ 108104945.92249 667.00049 341.00048 310.00048
+ 113011385.77648 88060870.98148 21505342.32148 21505342.38548 21505349.05648
+ 113011384.27048 455.00048 165.00048 168.00048
+ 03 10 31 0 48 40.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 119767402.58447 93325283.59747 22790976.21648 22790976.18747 22790983.55647
+ 119767400.08348 286.00048 63.00047 65.00047
+ 122856049.91946 95732015.99746 23378728.94248 23378728.99846 23378736.49146
+ 122856050.41648 203.00048 35.00046 37.00046
+ 114094252.44448 88904644.95348 21711411.04248 21711411.17848 21711418.22448
+ 114094249.94248 385.00048 118.00048 130.00048
+ 119686155.71747 93261980.70447 22775513.25848 22775513.58447 22775518.93247
+ 119686154.21148 333.00048 79.00047 60.00047
+ 125692514.03746 97942261.66146 23918483.10948 23918483.28846 23918489.13146
+ 125692512.53748 214.00048 38.00046 33.00046
+ 117493335.18747 91553282.83047 22358236.48948 22358236.43647 22358243.79447
+ 117493337.68348 337.00048 81.00047 79.00047
+ 129979168.15246 101282539.94646 24734196.84448 24734197.58846 24734204.01146
+ 129979167.64248 129.00048 13.00046 17.00046
+ 128522150.87646 100147195.87946 24456939.80048 24456939.33346 24456946.79546
+ 128522150.38348 164.00048 21.00046 28.00046
+ 108117232.09048 84247250.43048 20574013.26149 20574013.66848 20574020.00248
+ 108117231.58849 667.00049 342.00048 310.00048
+ 112914738.76248 87985561.63248 21486950.99848 21486951.09148 21486957.74048
+ 112914737.26048 458.00048 169.00048 169.00048
+ 03 10 31 0 48 50.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 119562169.14747 93165361.46047 22751921.62448 22751921.55647 22751929.03947
+ 119562166.64148 291.00048 65.00047 66.00047
+ 122461902.39246 95424888.07746 23303725.37648 23303725.10446 23303732.59046
+ 122461902.88548 208.00048 38.00046 40.00046
+ 113827743.40048 88696975.57748 21660696.10148 21660696.20748 21660703.31348
+ 113827740.89848 395.00048 123.00048 135.00048
+ 119951869.53847 93469030.44747 22826076.81048 22826077.08747 22826082.72747
+ 119951868.02648 328.00048 73.00047 60.00047
+ 126078782.17846 98243249.86546 23991987.70748 23991987.77746 23991994.05246
+ 126078780.69048 210.00048 34.00046 32.00046
+ 117354380.61547 91445006.54647 22331794.31748 22331794.22647 22331801.69747
+ 117354383.11448 340.00048 84.00047 83.00047
+ 130186052.69746 101443748.76946 24773565.92448 24773565.31346 24773571.07346
+ 130186052.19348 124.00048 14.00046 15.00046
+ 128767058.98646 100338033.42446 24503544.54748 24503543.60246 24503551.41046
+ 128767058.50148 159.00048 20.00046 30.00046
+ 108136113.83048 84261963.48348 20577606.35549 20577606.81148 20577613.08948
+ 108136113.32949 666.00049 341.00048 310.00048
+ 112821367.33948 87912804.69048 21469182.98748 21469183.00348 21469189.80048
+ 112821365.83348 461.00048 170.00048 169.00048
+ 03 10 31 0 49 0.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 119360879.71647 93008512.57447 22713617.45048 22713617.50247 22713624.96747
+ 119360877.21048 295.00048 67.00047 67.00047
+ 122069080.39046 95118793.02246 23228973.66448 23228973.52646 23228981.26146
+ 122069080.87748 214.00048 42.00046 42.00046
+ 113564153.26248 88491580.67248 21610536.55048 21610536.80348 21610543.74748
+ 113564150.75848 407.00048 133.00048 140.00048
+ 120219816.13947 93677820.02347 22877065.38048 22877065.70247 22877070.98647
+ 120219814.63848 322.00048 72.00047 56.00047
+ 126466544.86946 98545402.62746 24065776.33748 24065776.63546 24065782.44546
+ 126466543.37648 205.00048 33.00046 29.00046
+ 117217961.37847 91338705.84147 22305834.70848 22305834.51447 22305841.92447
+ 117217963.87748 342.00048 86.00047 86.00047
+ 130395147.38846 101606679.76846 24813355.10848 24813355.08846 24813361.41646
+ 130395146.88048 120.00048 12.00046 13.00046
+ 129013003.97646 100529678.91346 24550345.82548 24550345.96446 24550353.61546
+ 129013003.47248 156.00048 17.00046 27.00046
+ 108161582.15848 84281808.93448 20582452.80849 20582453.16848 20582459.50948
+ 108161581.65749 664.00049 338.00048 311.00048
+ 112731294.85548 87842618.34948 21452042.71648 21452042.77548 21452049.57248
+ 112731293.34748 463.00048 171.00048 171.00048
+ 03 10 31 0 49 10.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 119163590.52647 92854780.76547 22676074.55148 22676074.69647 22676082.09847
+ 119163588.02148 298.00048 70.00047 70.00047
+ 121677651.15546 94813783.24346 23154487.14048 23154486.95746 23154494.68046
+ 121677651.65348 218.00048 42.00046 42.00046
+ 113303533.13348 88288500.05348 21560942.05548 21560942.41548 21560949.42848
+ 113303530.62948 419.00048 138.00048 145.00048
+ 120489956.62747 93888319.11047 22928471.52848 22928471.79447 22928477.14247
+ 120489955.11948 317.00048 70.00047 55.00047
+ 126855727.00046 98848661.43746 24139835.29648 24139835.56046 24139841.50246
+ 126855725.49148 200.00048 33.00046 28.00046
+ 117084094.55747 91234394.03947 22280360.57948 22280360.54747 22280367.78747
+ 117084097.05948 347.00048 87.00047 86.00047
+ 130606421.33046 101771308.84846 24853559.28548 24853560.09846 24853565.92946
+ 130606420.82048 115.00048 12.00046 17.00046
+ 129259941.02546 100722097.42646 24597336.44948 24597336.92546 24597343.68146
+ 129259940.51948 152.00048 18.00046 25.00046
+ 108193625.14748 84306777.49648 20588550.33649 20588550.76148 20588557.12248
+ 108193624.64649 663.00049 337.00048 310.00048
+ 112644544.17648 87775020.41848 21435534.67448 21435534.66148 21435541.44348
+ 112644542.67048 465.00048 171.00048 171.00048
+ 03 10 31 0 49 20.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 118970357.08347 92704209.26747 22639303.34548 22639303.45547 22639310.98247
+ 118970354.57948 301.00048 70.00047 72.00047
+ 121287682.45846 94509911.53246 23080278.61248 23080278.63446 23080286.05546
+ 121287682.94548 222.00048 43.00046 48.00046
+ 113045933.97948 88087773.44348 21511922.63848 21511922.90248 21511929.93948
+ 113045931.47848 431.00048 148.00048 151.00048
+ 120762251.99247 94100497.31947 22980287.53648 22980287.56147 22980293.10847
+ 120762250.48248 312.00048 66.00047 51.00047
+ 127246253.85746 99152968.09846 24214150.02048 24214150.09946 24214156.15046
+ 127246252.35748 195.00048 29.00046 28.00046
+ 116952796.94547 91132084.20647 22255375.59348 22255375.44547 22255382.82147
+ 116952799.44448 351.00048 90.00047 88.00047
+ 130819843.34045 101937611.76246 24894172.17448 24894170.69945 24894178.61046
+ 130819842.81248 111.00048 9.00045 15.00046
+ 129507825.71246 100915254.33646 24644507.02648 24644507.18046 24644513.81246
+ 129507825.20748 148.00048 17.00046 25.00046
+ 108232228.70248 84336858.18548 20595896.39049 20595896.77248 20595903.12948
+ 108232228.20149 663.00049 337.00048 309.00048
+ 112561137.63448 87710028.30948 21419662.89248 21419662.94048 21419669.60848
+ 112561136.12848 467.00048 173.00048 173.00048
+ 03 10 31 0 49 30.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 118781234.14047 92556840.74347 22603314.44748 22603314.56047 22603321.91847
+ 118781231.62848 303.00048 70.00047 72.00047
+ 120899242.36646 94207230.94646 23006360.93148 23006360.72046 23006368.27146
+ 120899242.86548 224.00048 43.00046 49.00046
+ 112791406.62548 87889440.43448 21463487.71448 21463487.99348 21463494.90648
+ 112791404.12048 440.00048 153.00048 157.00048
+ 121036663.12247 94314324.18447 23032506.17648 23032506.38647 23032511.91947
+ 121036661.61548 307.00048 65.00047 51.00047
+ 127638051.27846 99458264.80346 24288706.74548 24288706.67046 24288712.44446
+ 127638049.78248 191.00048 28.00046 27.00046
+ 116824085.05347 91031789.22647 22230882.46448 22230882.47147 22230889.70747
+ 116824087.54848 356.00048 93.00047 91.00047
+ 131035381.73245 102105563.82346 24935187.80148 24935186.07645 24935194.17146
+ 131035381.23048 106.00048 8.00045 15.00046
+ 129756613.79846 101109115.22146 24691849.78348 24691849.74946 24691857.90646
+ 129756613.30548 144.00048 16.00046 23.00046
+ 108277376.59048 84372038.34748 20604487.77449 20604488.14748 20604494.44348
+ 108277376.08949 663.00049 336.00048 307.00048
+ 112481097.01748 87647658.99548 21404431.65548 21404431.70348 21404438.35448
+ 112481095.50948 467.00048 176.00048 173.00048
+ 03 10 31 0 49 40.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 118596275.60647 92412717.22247 22568117.84348 22568118.13547 22568125.56147
+ 118596273.10248 305.00048 73.00047 75.00047
+ 120512399.51546 93905794.95746 22932747.12548 22932747.08046 22932754.72846
+ 120512400.00948 226.00048 44.00046 49.00046
+ 112540001.65448 87693540.45348 21415646.92848 21415647.22148 21415654.16048
+ 112539999.15148 448.00048 160.00048 168.00048
+ 121313150.80447 94529769.12546 23085120.09848 23085120.40047 23085125.56746
+ 121313149.29448 300.00048 62.00047 47.00046
+ 128031045.57546 99764494.12346 24363490.93248 24363491.29046 24363496.97346
+ 128031044.06748 186.00048 28.00046 25.00046
+ 116697974.86747 90933521.53947 22206884.61748 22206884.35047 22206891.70947
+ 116697977.36748 360.00048 96.00047 94.00047
+ 131253004.67445 102275140.18846 24976599.59948 24976600.69245 24976606.20546
+ 131253004.18348 102.00048 8.00045 14.00046
+ 130006261.30046 101303645.72346 24739356.46448 24739356.97546 24739363.33946
+ 130006260.75848 140.00048 14.00046 23.00046
+ 108329050.20548 84412303.48648 20614320.94049 20614321.32248 20614327.65748
+ 108329049.70449 664.00049 334.00048 305.00048
+ 112404443.52348 87587929.00148 21389844.95548 21389845.04248 21389851.70848
+ 112404442.01948 471.00048 177.00048 175.00048
+ 03 10 31 0 49 50.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 118415534.65847 92271880.12247 22533724.12848 22533724.50747 22533731.58647
+ 118415532.14648 310.00048 73.00047 75.00047
+ 120127222.90646 93605657.34047 22859450.35048 22859450.37346 22859457.97847
+ 120127223.39548 227.00048 45.00046 52.00047
+ 112291769.52048 87500112.82048 21368410.03148 21368410.19348 21368417.17848
+ 112291767.02148 457.00048 167.00048 175.00048
+ 121591675.77947 94746801.55246 23138121.87948 23138121.84647 23138127.38446
+ 121591674.27248 294.00048 59.00047 47.00046
+ 128425163.62246 100071599.10746 24438489.16548 24438489.06546 24438495.29746
+ 128425162.11948 180.00048 25.00046 25.00046
+ 116574482.07747 90837293.37547 22183384.63448 22183384.58647 22183391.76847
+ 116574484.57648 366.00048 95.00047 96.00047
+ 131472679.97145 102446315.77646 25018402.80847 25018402.39645 25018408.94046
+ 131472679.49947 99.00047 8.00045 14.00046
+ 130256724.20746 101498811.70046 24787017.76248 24787017.70246 24787025.31646
+ 130256723.73048 136.00048 13.00046 23.00046
+ 108387228.95248 84457637.55948 20625392.01249 20625392.41348 20625398.70448
+ 108387228.45149 662.00049 332.00048 305.00048
+ 112331197.75148 87530854.36448 21375906.76448 21375906.84348 21375913.52948
+ 112331196.24748 473.00048 179.00048 175.00048
+ 03 10 31 0 50 0.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 118239063.51847 92134370.13947 22500142.77248 22500143.07447 22500150.20547
+ 118239061.01048 316.00048 75.00047 77.00047
+ 119743781.97446 93306872.20647 22786484.06248 22786483.87446 22786491.64247
+ 119743782.47348 227.00048 44.00046 54.00047
+ 112046760.32548 87309196.55648 21321786.23448 21321786.50648 21321793.53448
+ 112046757.81948 463.00048 170.00048 181.00048
+ 121872198.83447 94965390.93746 23191503.53648 23191503.94747 23191508.95046
+ 121872197.33148 287.00048 57.00047 43.00046
+ 128820332.92246 100379523.25146 24513687.22948 24513687.56746 24513693.72246
+ 128820331.41748 175.00048 25.00046 23.00046
+ 116453622.01947 90743116.69247 22160385.81248 22160385.58847 22160393.07247
+ 116453624.52048 370.00048 97.00047 96.00047
+ 131694375.16045 102619065.25846 25060589.75347 25060588.34145 25060595.09446
+ 131694374.68047 95.00047 8.00045 15.00046
+ 130507959.17946 101694579.17346 24834826.00748 24834825.47246 24834833.73646
+ 130507958.66148 131.00048 12.00046 24.00046
+ 108451889.88148 84508022.68048 20637696.55149 20637696.98248 20637703.34448
+ 108451889.38049 660.00049 333.00048 303.00048
+ 112261379.77648 87476450.73448 21362620.84748 21362620.91348 21362627.71548
+ 112261378.26948 478.00048 180.00048 177.00048
+ 03 10 31 0 50 10.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 118066913.58147 92000227.32347 22467383.81648 22467383.89947 22467391.12447
+ 118066911.07348 322.00048 79.00047 78.00047
+ 119362146.59346 93009493.98647 22713861.07148 22713861.13346 22713868.70247
+ 119362147.08548 228.00048 45.00046 57.00047
+ 111805024.03048 87120830.60948 21275785.38848 21275785.67848 21275792.64148
+ 111805021.52748 472.00048 177.00048 190.00048
+ 122154680.65947 95185506.61146 23245258.00548 23245258.18747 23245263.60546
+ 122154679.14348 278.00048 55.00047 44.00046
+ 129216481.38546 100688210.36746 24589071.92748 24589072.21546 24589078.02946
+ 129216479.89448 169.00048 23.00046 21.00046
+ 116335409.71448 90651003.18547 22137890.70948 22137890.61448 22137897.86447
+ 116335412.21248 373.00048 101.00048 95.00047
+ 131918057.62645 102793363.27346 25103155.18347 25103154.12845 25103161.41546
+ 131918057.11347 93.00047 8.00045 15.00046
+ 130759922.74446 101890914.48046 24882773.28948 24882772.47846 24882780.95146
+ 130759922.28548 128.00048 11.00046 23.00046
+ 108523008.00148 84563439.38148 20651229.87049 20651230.26048 20651236.66848
+ 108523007.50149 657.00049 328.00048 303.00048
+ 112195009.02848 87424733.25248 21349990.97448 21349991.01148 21349997.63448
+ 112195007.52348 482.00048 183.00048 176.00048
+ 03 10 31 0 50 20.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 117899135.22647 91869490.92347 22435456.60048 22435456.80747 22435464.09347
+ 117899132.71748 328.00048 82.00047 81.00047
+ 118982386.87446 92713577.33347 22641595.29248 22641595.37146 22641602.76747
+ 118982387.37848 226.00048 43.00046 58.00047
+ 111566610.28648 86935053.65948 21230416.70548 21230417.04348 21230424.04448
+ 111566607.78548 481.00048 182.00048 198.00048
+ 122439081.84746 95407117.91846 23299377.78848 23299377.99046 23299383.35046
+ 122439080.33848 270.00048 49.00046 41.00046
+ 129613537.52846 100997604.75546 24664629.12048 24664629.10946 24664635.27446
+ 129613536.03448 163.00048 21.00046 21.00046
+ 116219859.76548 90560964.24647 22115902.29748 22115902.18348 22115909.54747
+ 116219862.26248 376.00048 101.00048 97.00047
+ 132143694.28944 102969184.04046 25146092.44947 25146091.32044 25146098.63046
+ 132143693.79547 90.00047 5.00044 14.00046
+ 131012571.95346 102087783.98346 24930850.81048 24930851.28546 24930858.23946
+ 131012571.48548 124.00048 13.00046 23.00046
+ 108600556.27448 84623866.58548 20665986.85549 20665987.24248 20665993.63248
+ 108600555.77349 652.00049 327.00048 300.00048
+ 112132104.31148 87375716.56848 21338020.62148 21338020.62648 21338027.37448
+ 112132102.80848 485.00048 188.00048 179.00048
+ 03 10 31 0 50 30.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 117735777.99247 91742199.55047 22404370.90048 22404370.99647 22404378.29547
+ 117735775.48248 333.00048 84.00047 82.00047
+ 118604573.53246 92419177.32447 22569699.88448 22569699.71046 22569707.18147
+ 118604574.03048 224.00048 43.00046 58.00047
+ 111331568.48148 86751904.18948 21185689.85248 21185689.98048 21185697.06548
+ 111331565.97948 491.00048 190.00048 204.00048
+ 122725363.08746 95630194.18746 23353855.28548 23353855.57746 23353860.98346
+ 122725361.58548 260.00048 47.00046 39.00046
+ 130011430.41946 101307651.16046 24740345.47448 24740345.83446 24740351.27946
+ 130011428.92448 159.00048 20.00046 21.00046
+ 116106986.35548 90473010.91447 22094423.24148 22094423.04648 22094430.38547
+ 116106988.85248 378.00048 104.00048 99.00047
+ 132371251.82545 103146501.66046 25189395.03247 25189393.83245 25189402.57946
+ 132371251.37947 90.00047 6.00045 16.00046
+ 131265863.91346 102285154.30446 24979050.82648 24979050.05946 24979057.61546
+ 131265863.43548 119.00048 11.00046 21.00046
+ 108684505.54948 84689281.58248 20681961.93549 20681962.24648 20681968.66448
+ 108684505.04949 649.00049 319.00048 299.00048
+ 112072683.90848 87329414.93348 21326713.27348 21326713.36948 21326720.05948
+ 112072682.40448 488.00048 190.00048 180.00048
+ 03 10 31 0 50 40.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 117576890.35247 91618390.98047 22374135.64348 22374135.68847 22374142.96747
+ 117576887.84448 338.00048 86.00047 82.00047
+ 118228777.47046 92126349.21147 22498188.38448 22498188.03546 22498195.78947
+ 118228777.95448 223.00048 44.00046 61.00047
+ 111099947.72948 86571420.47748 21141613.90449 21141614.06648 21141621.17248
+ 111099945.22749 502.00049 198.00048 208.00048
+ 123013484.97046 95854704.71246 23408683.15448 23408683.22746 23408688.76246
+ 123013483.45548 251.00048 45.00046 38.00046
+ 130410089.75046 101618294.77446 24816207.74748 24816209.01746 24816214.54746
+ 130410088.24148 152.00048 18.00046 20.00046
+ 115996803.37748 90387154.02147 22073456.08048 22073456.03648 22073463.15147
+ 115996805.88048 380.00048 105.00048 98.00047
+ 132600696.89544 103325289.99446 25233057.06447 25233057.49444 25233064.35646
+ 132600696.45347 89.00047 5.00044 15.00046
+ 131519756.12245 102482992.38146 25027364.83648 25027364.54545 25027372.17046
+ 131519755.59948 117.00048 10.00045 21.00046
+ 108774824.61748 84759660.05248 20699149.07549 20699149.42048 20699155.80048
+ 108774824.11649 645.00049 315.00048 296.00048
+ 112016765.35648 87285842.01448 21316072.41748 21316072.44548 21316079.08448
+ 112016763.85048 491.00048 192.00048 181.00048
+ 03 10 31 0 50 50.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 117422519.80547 91498102.21047 22344759.86948 22344759.96947 22344767.32147
+ 117422517.29448 342.00048 89.00047 85.00047
+ 117855069.95546 91835148.56147 22427074.07748 22427073.96846 22427081.91847
+ 117855070.46348 221.00048 41.00046 60.00047
+ 110871796.73148 86393640.47148 21098198.16349 21098198.39948 21098205.41248
+ 110871794.23249 514.00049 211.00048 212.00048
+ 123303408.14046 96080618.83846 23463853.62048 23463853.83546 23463859.28746
+ 123303406.63048 242.00048 41.00046 35.00046
+ 130809445.65546 101929481.19646 24892202.86248 24892203.03046 24892208.28546
+ 130809444.15748 146.00048 18.00046 17.00046
+ 115889324.23048 90303404.00648 22053003.67948 22053003.40048 22053010.70348
+ 115889326.72948 382.00048 105.00048 101.00048
+ 132831995.72245 103505522.73546 25277071.71847 25277072.32445 25277079.16946
+ 132831995.17347 89.00047 6.00045 14.00046
+ 131774206.17546 102681265.14646 25075785.06848 25075784.94446 25075791.93146
+ 131774205.68048 113.00048 11.00046 20.00046
+ 108871480.09148 84834975.97348 20717542.00749 20717542.35748 20717548.76948
+ 108871479.59249 642.00049 312.00048 292.00048
+ 111964365.53548 87245010.96248 21306101.04748 21306101.10948 21306107.72848
+ 111964364.02948 492.00048 194.00048 182.00048
+ 03 10 31 0 51 0.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 117272712.76647 91381369.41847 22316252.54548 22316252.74347 22316259.80947
+ 117272710.26048 345.00048 89.00047 84.00047
+ 117483522.71846 91545631.20847 22356371.08748 22356371.01046 22356378.59247
+ 117483523.21148 220.00048 43.00046 60.00047
+ 110647163.85348 86218601.84948 21055451.92449 21055452.17148 21055459.27548
+ 110647161.35049 527.00049 219.00048 220.00048
+ 123595093.22146 96307905.87046 23519359.61648 23519359.87246 23519365.54446
+ 123595091.71048 233.00048 36.00046 33.00046
+ 131209428.96346 102241156.49946 24968317.28848 24968317.14746 24968322.92346
+ 131209427.49048 140.00048 16.00046 17.00046
+ 115784561.97248 90221771.04948 22033067.94948 22033067.81048 22033075.08748
+ 115784564.47048 384.00048 106.00048 101.00048
+ 133065113.94944 103687173.44146 25321433.24947 25321434.29044 25321440.09846
+ 133065113.60247 88.00047 5.00044 15.00046
+ 132029172.17945 102879939.93046 25124303.34348 25124304.12345 25124311.25646
+ 132029171.67848 111.00048 9.00045 21.00046
+ 108974436.72848 84915201.89148 20737134.02049 20737134.39348 20737140.81648
+ 108974436.22749 639.00049 311.00048 287.00048
+ 111915500.77948 87206934.49948 21296802.42848 21296802.46648 21296809.10248
+ 111915499.27348 493.00048 194.00048 185.00048
+ 03 10 31 0 51 10.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 117127514.63347 91268227.98547 22288622.31848 22288622.33447 22288629.67147
+ 117127512.12548 345.00048 92.00047 87.00047
+ 117114207.65246 91257853.22847 22286092.89748 22286092.38546 22286100.27647
+ 117114208.14848 221.00048 41.00046 63.00047
+ 110426097.06648 86046342.00448 21013384.37949 21013384.58848 21013391.61848
+ 110426094.56349 541.00049 230.00048 224.00048
+ 123888500.85646 96536535.13146 23575193.14748 23575193.22646 23575198.89446
+ 123888499.33448 223.00048 32.00046 36.00046
+ 131609971.02846 102553267.17246 25044537.75948 25044537.50846 25044544.30246
+ 131609969.53748 135.00048 15.00046 16.00046
+ 115682529.19148 90142264.95548 22013651.82648 22013651.74548 22013658.97448
+ 115682531.69048 386.00048 108.00048 103.00048
+ 133300018.02644 103870215.40546 25366133.88247 25366133.42244 25366137.72846
+ 133300017.57247 88.00047 5.00044 12.00046
+ 132284612.34845 103078984.18546 25172911.78648 25172911.32845 25172919.58346
+ 132284611.83648 108.00048 8.00045 19.00046
+ 109083657.28848 85000308.78948 20757918.05349 20757918.44548 20757924.77248
+ 109083656.78749 635.00049 306.00048 285.00048
+ 111870186.75348 87171624.84048 21288179.46248 21288179.52748 21288186.25948
+ 111870185.24648 494.00048 195.00048 186.00048
+ 03 10 31 0 51 20.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116986969.69247 91158712.41547 22261877.53348 22261877.54247 22261884.95547
+ 116986967.18148 347.00048 91.00047 86.00047
+ 116747197.05746 90971870.93947 22216252.87948 22216252.78946 22216260.56047
+ 116747197.55748 224.00048 43.00046 63.00047
+ 110208643.99848 85876898.03748 20972004.46449 20972004.65948 20972011.69648
+ 110208641.49349 554.00049 242.00048 229.00048
+ 124183591.69746 96766475.97846 23631347.04048 23631347.55046 23631353.01446
+ 124183590.19048 214.00048 31.00046 33.00046
+ 132011003.20146 102865759.74446 25120852.04248 25120851.89546 25120856.70946
+ 132011001.71148 129.00048 13.00046 17.00046
+ 115583238.20248 90064895.31448 21994757.32548 21994757.20448 21994764.54948
+ 115583240.70048 389.00048 109.00048 105.00048
+ 133536673.22345 104054621.97646 25411167.68647 25411167.56345 25411172.84546
+ 133536672.71447 88.00047 6.00045 14.00046
+ 132540485.16245 103278365.59846 25221603.48748 25221603.12945 25221610.29546
+ 132540484.71648 105.00048 8.00045 19.00046
+ 109199102.56248 85090266.11048 20779886.58949 20779886.96548 20779893.34148
+ 109199102.06049 631.00049 300.00048 281.00048
+ 111828438.40148 87139093.63248 21280235.08648 21280235.00648 21280241.76648
+ 111828436.89648 495.00048 196.00048 187.00048
+ 03 10 31 0 51 30.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116851121.03247 91052856.29447 22236026.32848 22236026.49947 22236033.72847
+ 116851118.52248 347.00048 92.00047 88.00047
+ 116382563.50546 90687740.89647 22146865.43548 22146865.74646 22146873.26247
+ 116382564.00448 228.00048 44.00046 62.00047
+ 109994851.80748 85710306.70548 20931321.14049 20931321.34948 20931328.38148
+ 109994849.30349 567.00049 254.00048 235.00048
+ 124480326.53246 96997697.84046 23687813.95748 23687814.82446 23687819.50946
+ 124480325.03048 206.00048 30.00046 31.00046
+ 132412460.05746 103178583.23646 25197246.60848 25197246.75946 25197253.62846
+ 132412458.56048 125.00048 12.00046 16.00046
+ 115486700.82548 89989671.33948 21976386.88648 21976386.84148 21976394.13648
+ 115486703.32348 393.00048 113.00048 105.00048
+ 133775044.96645 104240366.09246 25456528.15347 25456530.12745 25456534.75846
+ 133775044.43847 88.00047 7.00045 12.00046
+ 132796749.66845 103478052.15846 25270368.71748 25270368.00445 25270376.27246
+ 132796749.20448 104.00048 10.00045 21.00046
+ 109320731.49248 85185041.86448 20803031.82649 20803032.18048 20803038.56348
+ 109320730.99249 624.00049 293.00048 279.00048
+ 111790270.08148 87109352.05448 21272971.88648 21272971.90348 21272978.67948
+ 111790268.57748 496.00048 196.00048 185.00048
+ 03 10 31 0 51 40.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116720010.62747 90950692.30847 22211076.79248 22211076.90547 22211084.16047
+ 116720008.11548 348.00048 92.00047 90.00047
+ 116020379.84346 90405519.84347 22077944.24548 22077944.22946 22077951.92547
+ 116020380.33948 236.00048 46.00046 66.00047
+ 109784767.20748 85546604.40648 20891343.36549 20891343.64748 20891350.63148
+ 109784764.70549 580.00049 266.00048 240.00048
+ 124778666.04646 97230170.06746 23744586.14848 23744586.69646 23744591.98346
+ 124778664.52948 198.00048 27.00046 31.00046
+ 132814272.73045 103491683.98546 25273708.92348 25273709.19045 25273714.12246
+ 132814271.21848 119.00048 10.00045 14.00046
+ 115392928.50248 89916601.96948 21958542.66648 21958542.59948 21958549.90548
+ 115392930.99948 396.00048 114.00048 111.00048
+ 134015098.36944 104427420.71846 25502209.14547 25502208.46244 25502215.84246
+ 134015097.89247 88.00047 5.00044 14.00046
+ 133053364.85345 103678011.94146 25319201.19748 25319200.61245 25319208.96246
+ 133053364.36748 101.00048 9.00045 18.00046
+ 109448501.15648 85284602.60648 20827345.54649 20827346.01148 20827352.40748
+ 109448500.65649 617.00049 287.00048 274.00048
+ 111755695.36048 87082410.68848 21266392.46548 21266392.55148 21266399.28048
+ 111755693.85648 498.00048 197.00048 186.00048
+ 03 10 31 0 51 50.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116593679.25947 90852252.26147 22187036.88148 22187036.74447 22187044.30747
+ 116593676.74848 348.00048 92.00047 92.00047
+ 115660719.13047 90125264.73947 22009503.28348 22009502.77047 22009510.93147
+ 115660719.63348 244.00048 52.00047 64.00047
+ 109578436.44348 85385827.17748 20852079.87849 20852080.19548 20852087.18948
+ 109578433.94049 592.00049 276.00048 249.00048
+ 125078570.97146 97463862.10046 23801656.13148 23801656.67046 23801662.20246
+ 125078569.45948 191.00048 24.00046 29.00046
+ 133216375.14645 103805010.46846 25350226.46248 25350226.89545 25350232.48946
+ 133216373.60448 114.00048 10.00045 15.00046
+ 115301932.17248 89845695.71548 21941226.73948 21941226.60348 21941233.97148
+ 115301934.67348 402.00048 116.00048 112.00048
+ 134256798.68045 104615758.43646 25548203.18447 25548202.86945 25548211.87846
+ 134256798.13347 86.00047 6.00045 12.00046
+ 133310290.13645 103878213.33546 25368092.36847 25368092.77945 25368099.27446
+ 133310289.60547 100.00047 9.00045 19.00046
+ 109582366.79648 85388913.46648 20852819.30749 20852819.71748 20852826.18048
+ 109582366.29649 608.00049 278.00048 269.00048
+ 111724727.19648 87058279.62348 21260499.50648 21260499.56448 21260506.24648
+ 111724725.68948 499.00048 198.00048 187.00048
+ 03 10 31 0 52 0.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116472166.48947 90757566.97447 22163913.73148 22163913.85147 22163921.07847
+ 116472163.98448 349.00048 94.00047 93.00047
+ 115303654.73947 89847032.73647 21941555.95848 21941555.96147 21941563.89947
+ 115303655.24048 254.00048 56.00047 67.00047
+ 109375905.33248 85228010.71548 20813539.55949 20813539.80948 20813546.81148
+ 109375902.83049 603.00049 286.00048 256.00048
+ 125380002.24046 97698743.48046 23859016.73048 23859016.72546 23859022.48346
+ 125380000.72548 183.00048 22.00046 29.00046
+ 133618703.26445 104118512.83046 25426787.04248 25426787.19645 25426792.34246
+ 133618701.71248 110.00048 10.00045 13.00046
+ 115213722.49948 89776960.87848 21924441.08048 21924440.90348 21924448.23848
+ 115213724.99548 406.00048 119.00048 115.00048
+ 134500110.43845 104805352.03446 25594503.51847 25594504.13045 25594512.00646
+ 134500109.96647 86.00047 6.00045 11.00046
+ 133567485.20545 104078625.01546 25417035.06647 25417034.24445 25417042.65046
+ 133567484.74147 99.00047 9.00045 18.00046
+ 109722281.89948 85497938.19548 20879444.37649 20879444.69548 20879451.18448
+ 109722281.39849 599.00049 274.00048 268.00048
+ 111697377.88448 87036968.45548 21255295.19649 21255295.13848 21255301.90448
+ 111697376.37949 502.00049 201.00048 185.00048
+ 03 10 31 0 52 10.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116355510.67047 90666666.32747 22141714.88748 22141715.03747 22141722.52847
+ 116355508.16648 351.00048 95.00047 94.00047
+ 114949260.18747 89570881.12347 21874117.11848 21874116.86947 21874124.68647
+ 114949260.68848 267.00048 61.00047 68.00047
+ 109177219.15648 85073190.30548 20775730.90549 20775731.09348 20775738.09548
+ 109177216.65449 613.00049 296.00048 263.00048
+ 125682920.61446 97934783.62846 23916660.34548 23916660.86946 23916666.44946
+ 125682919.12248 177.00048 22.00046 29.00046
+ 134021190.90445 104432139.54246 25503377.93648 25503378.05045 25503383.52346
+ 134021189.40948 105.00048 8.00045 13.00046
+ 115128309.59148 89710405.34248 21908187.48148 21908187.46548 21908194.74048
+ 115128312.09248 410.00048 122.00048 117.00048
+ 134744998.60944 104996173.77546 25641104.26647 25641104.32944 25641112.21146
+ 134744998.09647 85.00047 5.00044 11.00046
+ 133824910.24345 104279215.80946 25466021.86747 25466022.24145 25466028.08046
+ 133824909.77847 97.00047 7.00045 18.00046
+ 109868198.22948 85611639.20948 20907211.33949 20907211.67748 20907218.11248
+ 109868197.72749 594.00049 266.00048 261.00048
+ 111673658.84948 87018486.07348 21250781.52749 21250781.61648 21250788.30348
+ 111673657.34449 505.00049 203.00048 183.00048
+ 03 10 31 0 52 20.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116243748.80847 90579579.14047 22120447.25348 22120447.31447 22120454.71247
+ 116243746.30348 354.00048 95.00047 96.00047
+ 114597609.19847 89296867.33947 21807200.01648 21807200.13747 21807207.82047
+ 114597609.69148 278.00048 67.00047 72.00047
+ 108982422.58548 84921400.75348 20738662.31649 20738662.61248 20738669.59148
+ 108982420.08249 622.00049 304.00048 274.00048
+ 125987287.19146 98171952.17746 23974579.62748 23974579.92146 23974585.50746
+ 125987285.67148 172.00048 21.00046 30.00046
+ 134423772.75645 104745839.63746 25579986.29547 25579988.43045 25579991.90146
+ 134423771.26147 100.00047 7.00045 11.00046
+ 115045703.18848 89646036.67648 21892467.99848 21892467.87348 21892475.27248
+ 115045705.68848 414.00048 122.00048 120.00048
+ 134991427.47345 105188196.20046 25687998.52647 25687999.34945 25688002.93346
+ 134991427.06647 84.00047 7.00045 11.00046
+ 134082525.71045 104479954.97646 25515044.38847 25515045.08345 25515051.30746
+ 134082525.16447 95.00047 7.00045 18.00046
+ 110020065.81348 85729977.56648 20936110.75049 20936111.14548 20936117.60748
+ 110020065.31249 588.00049 261.00048 259.00048
+ 111653581.00748 87002840.98948 21246960.85649 21246960.90248 21246967.63448
+ 111653579.50349 507.00049 204.00048 183.00048
+ 03 10 31 0 52 30.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116136916.66147 90496333.29247 22100117.76048 22100117.88547 22100125.36247
+ 116136914.15248 357.00048 96.00047 97.00047
+ 114248775.64347 89025048.95647 21740819.40848 21740819.31247 21740826.91147
+ 114248776.14148 291.00048 73.00047 74.00047
+ 108791559.74148 84772676.44548 20702342.37249 20702342.60748 20702349.61648
+ 108791557.24049 631.00049 316.00048 284.00048
+ 126293063.02146 98410218.89746 24032766.79048 24032767.25946 24032772.97646
+ 126293061.51948 165.00048 18.00046 27.00046
+ 134826386.50345 105059564.56646 25656601.76347 25656602.47245 25656606.53746
+ 134826385.01047 96.00047 8.00045 12.00046
+ 114965912.66548 89583862.20848 21877284.38048 21877284.35948 21877291.74248
+ 114965915.16548 417.00048 124.00048 122.00048
+ 135239361.63945 105381391.53146 25735178.50047 25735181.35045 25735188.03446
+ 135239361.20847 82.00047 6.00045 11.00046
+ 134340291.96644 104680811.73646 25564095.72547 25564095.73044 25564104.11746
+ 134340291.46847 93.00047 5.00044 16.00046
+ 110177833.03648 85852913.05148 20966132.88849 20966133.30448 20966139.76948
+ 110177832.53749 582.00049 256.00048 252.00048
+ 111637154.49748 86990041.09748 21243835.07349 21243835.06548 21243841.86448
+ 111637152.99049 509.00049 206.00048 183.00048
+ 03 10 31 0 52 40.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 116035048.62147 90416955.57247 22080733.03248 22080733.17847 22080740.48647
+ 116035046.11248 361.00048 99.00047 99.00047
+ 113902833.58647 88755483.69647 21674988.66248 21674988.52647 21674996.45047
+ 113902834.08448 304.00048 80.00047 76.00047
+ 108604674.18048 84627051.31448 20666779.21649 20666779.45948 20666786.45648
+ 108604671.67849 642.00049 324.00048 294.00048
+ 126600209.20546 98649553.42046 24091214.91948 24091215.11446 24091220.78646
+ 126600207.69648 161.00048 18.00046 26.00046
+ 135228968.12244 105373264.50646 25733210.29147 25733209.50444 25733214.28346
+ 135228966.63447 93.00047 5.00044 11.00046
+ 114888946.82548 89523888.78348 21862638.38948 21862638.20048 21862645.68148
+ 114888949.32548 419.00048 128.00048 123.00048
+ 135488765.38144 105575731.78145 25782639.55647 25782639.70344 25782644.85245
+ 135488764.83647 81.00047 5.00044 9.00045
+ 134598170.12845 104881755.57046 25613168.08047 25613168.58645 25613176.44646
+ 134598169.63747 91.00047 7.00045 16.00046
+ 110341446.63148 85980404.14348 20997267.58849 20997267.97148 20997274.39648
+ 110341446.13049 578.00049 253.00048 247.00048
+ 111624388.66948 86980093.67648 21241405.81349 21241405.90248 21241412.53948
+ 111624387.16249 510.00049 204.00048 183.00048
+ 03 10 31 0 52 50.0000000 0 9G 1G 2G 3G11G14G15G23G25G31
+ 115938177.78147 90341471.76447 22062299.24848 22062299.20447 22062306.64347
+ 115938175.27248 362.00048 100.00047 100.00047
+ 113559857.16847 88488229.31047 21609722.58148 21609722.34747 21609730.19847
+ 113559857.66348 315.00048 85.00047 80.00047
+ 108421808.86148 84484558.83048 20631981.15649 20631981.39348 20631988.41148
+ 108421806.35749 654.00049 337.00048 308.00048
+ 126908687.30146 98889925.94846 24149916.32948 24149916.64446 24149922.26446
+ 126908685.79148 156.00048 18.00046 25.00046
+ 135631455.05444 105686890.58646 25809801.22247 25809801.76344 25809807.01846
+ 135631453.55547 88.00047 5.00044 12.00046
+ 114814814.05548 89466122.93548 21848531.36648 21848531.27648 21848538.78248
+ 114814816.55148 421.00048 128.00048 124.00048
+ 134856121.62744 105082756.56646 25662254.89047 25662256.66244 25662263.15446
+ 134856121.07247 88.00047 5.00044 15.00046
+ 110510851.72748 86112408.08848 21029504.31349 21029504.67948 21029511.14948
+ 110510851.22749 573.00049 245.00048 242.00048
+ 111615292.19048 86973005.48148 21239674.79549 21239674.83348 21239681.60248
+ 111615290.68249 511.00049 206.00048 184.00048
+ 03 10 31 0 53 0.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 115846335.84148 90269906.55948 22044822.29648 22044822.53448 22044829.74348
+ 115846333.33248 365.00048 102.00048 102.00048
+ 113219920.65047 88223343.67347 21545034.73348 21545034.66147 21545042.30547
+ 113219921.14948 326.00048 90.00047 86.00047
+ 108243006.05748 84345231.94048 20597956.09249 20597956.39148 20597963.35848
+ 108243003.55449 667.00049 348.00048 313.00048
+ 127218458.02846 99131305.62646 24208864.05148 24208863.89246 24208869.32746
+ 127218456.52448 151.00048 15.00046 26.00046
+ 136033748.73754 106000346.75355 25886362.32247 25886361.73644 25886367.43245
+ 136033751.24357 85.00047 4.00044 8.00045
+ 114743522.33248 89410570.88248 21834965.03648 21834964.99648 21834972.36248
+ 114743524.82948 422.00048 129.00048 125.00048
+ 135991754.47154 105967628.67156 25878370.55347 25878370.54844 25878377.43346
+ 135991754.91157 78.00047 5.00044 12.00046
+ 135114107.86445 105283784.67446 25711347.89747 25711347.09945 25711356.09846
+ 135114107.34547 86.00047 6.00045 14.00046
+ 110685991.93848 86248880.93948 21062832.40149 21062832.77348 21062839.21448
+ 110685991.43749 565.00049 239.00048 236.00048
+ 111609872.99848 86968782.68848 21238643.62349 21238643.61048 21238650.46848
+ 111609871.49349 511.00049 205.00048 185.00048
+ 03 10 31 0 53 10.0000000 0 9G 1G 2G 3G11G14G15G23G25G31
+ 115759553.15248 90202283.61548 22028308.17948 22028308.20248 22028315.64648
+ 115759550.64448 366.00048 102.00048 102.00048
+ 112883098.42747 87960884.76047 21480939.58248 21480939.55747 21480947.22047
+ 112883098.92348 336.00048 98.00047 92.00047
+ 108068307.43048 84209103.10148 20564712.12449 20564712.34548 20564719.36248
+ 108068304.92849 682.00049 366.00048 322.00048
+ 127529482.92546 99373662.59546 24268049.99248 24268049.98946 24268055.96046
+ 127529481.42848 147.00048 15.00046 24.00046
+ 136435860.79044 106313680.76345 25962881.97847 25962882.31944 25962888.06445
+ 136435863.31647 81.00047 5.00044 9.00045
+ 114675079.18648 89357238.48648 21821940.85748 21821940.72548 21821948.20148
+ 114675081.68548 423.00048 130.00048 125.00048
+ 135372090.97444 105484810.32646 25760440.82147 25760440.27844 25760451.15546
+ 135372090.45547 85.00047 4.00044 14.00046
+ 110866809.61348 86389777.78648 21097240.89749 21097241.29048 21097247.71748
+ 110866809.11349 556.00049 232.00048 232.00048
+ 111608138.33748 86967430.95348 21238313.52749 21238313.64348 21238320.31348
+ 111608136.83349 510.00049 205.00048 185.00048
+ 03 10 31 0 53 20.0000000 0 10G 1G 2G 3G11G14G15G20G23G25G31
+ 115677858.64447 90138625.48448 22012762.18348 22012762.26347 22012769.71448
+ 115677856.13548 366.00048 100.00047 102.00048
+ 112549464.92148 87700910.57148 21417451.26548 21417451.21648 21417459.00748
+ 112549465.41748 344.00048 102.00048 101.00048
+ 107897753.98648 84076204.27148 20532256.91349 20532257.15848 20532264.16348
+ 107897751.48349 698.00049 383.00048 332.00048
+ 127841723.54346 99616966.87046 24327467.31848 24327468.27246 24327473.42346
+ 127841722.04048 144.00048 14.00046 22.00046
+ 136837694.98443 106626798.29945 26039348.32547 26039347.91143 26039354.04445
+ 136837697.54247 78.00047 3.00043 10.00045
+ 114609491.75448 89306131.32148 21809460.12048 21809459.87448 21809467.46448
+ 114609494.25448 425.00048 130.00048 127.00048
+ 136500266.60954 106363872.35355 25975139.26347 25975137.16344 25975144.14645
+ 136500278.09657 73.00047 4.00044 9.00045
+ 135630033.09544 105685804.03146 25809525.61747 25809524.03144 25809536.26246
+ 135630032.59847 83.00047 5.00044 13.00046
+ 111053245.42548 86535052.38948 21132718.44749 21132718.78748 21132725.38948
+ 111053244.92449 547.00049 226.00048 227.00048
+ 111610094.70548 86968955.33148 21238685.86049 21238685.87048 21238692.70648
+ 111610093.19949 510.00049 207.00048 187.00048
+ 03 10 31 0 53 30.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115601279.81048 90078953.58748 21998189.86348 21998189.79048 21998197.36848
+ 115601277.29948 367.00048 103.00048 103.00048
+ 112219094.53248 87443479.07048 21354583.92648 21354583.83748 21354591.64348
+ 112219095.02648 353.00048 105.00048 106.00048
+ 107731385.94548 83946566.79148 20500598.16049 20500598.42248 20500605.43548
+ 107731383.44349 712.00049 399.00048 336.00048
+ 128155141.63246 99861188.66546 24387109.09948 24387109.12346 24387114.55246
+ 128155140.11348 141.00048 13.00046 21.00046
+ 114546766.66148 89257254.52148 21797523.88848 21797523.74548 21797531.28648
+ 114546769.16048 426.00048 130.00048 127.00048
+ 135887897.98544 105886737.19846 25858595.54847 25858595.74544 25858605.67646
+ 135887896.44447 84.00047 4.00044 11.00046
+ 111245238.89048 86684657.61248 21169253.66749 21169254.03548 21169260.51848
+ 111245238.38949 538.00049 217.00048 221.00048
+ 111615747.76248 86973360.23448 21239761.75249 21239761.68748 21239768.55748
+ 111615746.25649 510.00049 204.00048 188.00048
+ 03 10 31 0 53 40.0000000 0 9G 1G 2G 3G11G14G15G23G25G31
+ 115529842.65948 90023288.19548 21984595.68048 21984595.92948 21984603.35548
+ 115529840.15148 367.00048 103.00048 103.00048
+ 111892061.62448 87188648.21448 21292351.55848 21292351.62848 21292359.37248
+ 111892062.11748 361.00048 111.00048 116.00048
+ 107569242.79848 83820221.43648 20469743.38649 20469743.72248 20469750.69148
+ 107569240.29649 725.00049 412.00048 340.00048
+ 128469698.77646 100106298.03846 24446967.42848 24446967.59246 24446973.41246
+ 128469697.28148 137.00048 13.00046 23.00046
+ 137640280.88853 107252204.31155 26192076.70447 26192074.62843 26192083.71945
+ 137640291.29457 72.00047 3.00043 9.00045
+ 114486910.16448 89210612.99648 21786133.56448 21786133.44848 21786140.98248
+ 114486912.66348 428.00048 131.00048 126.00048
+ 136145646.46044 106087579.96446 25907643.70947 25907643.00944 25907651.50146
+ 136145644.90947 84.00047 5.00044 14.00046
+ 111442727.95348 86838545.09348 21206834.65749 21206835.04248 21206841.61148
+ 111442727.45349 531.00049 213.00048 218.00048
+ 111625102.55248 86980649.58448 21241541.94649 21241541.93548 21241548.77348
+ 111625101.04849 511.00049 203.00048 188.00048
+ 03 10 31 0 53 50.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115463571.76348 89971648.45248 21971984.92248 21971985.09748 21971992.44548
+ 115463569.25248 368.00048 101.00048 102.00048
+ 111568440.58848 86936475.97648 21230768.64348 21230768.64148 21230776.41548
+ 111568441.08348 370.00048 117.00048 122.00048
+ 107411363.39948 83697198.48648 20439699.97749 20439700.23548 20439707.30248
+ 107411360.89649 736.00049 421.00048 343.00048
+ 128785356.85346 100352265.28046 24507035.22648 24507036.13446 24507040.83646
+ 128785355.35348 134.00048 11.00046 23.00046
+ 114429927.97948 89166211.21148 21775290.38348 21775290.19448 21775297.84548
+ 114429930.47848 429.00048 132.00048 128.00048
+ 136403242.76944 106288304.17046 25956662.94447 25956664.33644 25956670.33046
+ 136403241.25947 84.00047 5.00044 13.00046
+ 111645649.39148 86996665.57748 21245449.40549 21245449.79548 21245456.39948
+ 111645648.89149 523.00049 203.00048 212.00048
+ 111638163.39748 86990826.78448 21244027.38749 21244027.47948 21244034.28548
+ 111638161.89149 511.00049 206.00048 191.00048
+ 03 10 31 0 54 0.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115402490.25548 89924052.41548 21960361.51048 21960361.69848 21960369.11648
+ 115402487.74948 370.00048 103.00048 103.00048
+ 111248305.73048 86687020.26048 21169848.99648 21169848.89648 21169856.64748
+ 111248306.22948 381.00048 123.00048 131.00048
+ 107257785.73748 83577527.54748 20410475.10749 20410475.38848 20410482.43348
+ 107257783.23449 743.00049 431.00048 347.00048
+ 129102077.78046 100599060.65946 24567305.37248 24567304.92846 24567311.46146
+ 129102076.27448 132.00048 11.00046 22.00046
+ 114375825.39748 89124053.26848 21764995.14548 21764994.94048 21765002.49248
+ 114375827.89348 432.00048 132.00048 127.00048
+ 136660650.58844 106488881.43746 26005646.26047 26005646.06144 26005651.67846
+ 136660649.10247 82.00047 4.00044 11.00046
+ 111853938.80848 87158968.92048 21285085.58349 21285086.00448 21285092.63348
+ 111853938.30849 515.00049 198.00048 208.00048
+ 111654933.78648 87003894.55448 21247218.77449 21247218.80448 21247225.64248
+ 111654932.28249 512.00049 207.00048 189.00048
+ 03 10 31 0 54 10.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115346619.63148 89880516.80148 21949729.69348 21949729.99448 21949737.37548
+ 115346617.11748 371.00048 104.00048 102.00048
+ 110931731.23648 86440338.84748 21109606.85948 21109606.82848 21109614.65748
+ 110931731.73248 394.00048 132.00048 137.00048
+ 107108546.98448 83461237.59448 20382075.94349 20382076.20848 20382083.24748
+ 107108544.48349 750.00049 436.00048 355.00048
+ 129419823.70745 100846654.73446 24627770.52348 24627770.67845 24627776.05446
+ 129419822.17748 128.00048 10.00045 20.00046
+ 114324607.25648 89084142.96548 21755248.64148 21755248.60548 21755256.04248
+ 114324609.75548 434.00048 134.00048 129.00048
+ 136917833.79844 106689283.69645 26054586.31247 26054586.53444 26054592.77545
+ 136917832.38547 82.00047 5.00044 10.00045
+ 112067530.56848 87325403.95948 21325730.80249 21325731.25148 21325737.86448
+ 112067530.06649 509.00049 194.00048 200.00048
+ 111675416.45548 87019855.01248 21251116.48749 21251116.54148 21251123.44048
+ 111675414.95049 513.00049 208.00048 188.00048
+ 03 10 31 0 54 20.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115295979.97448 89841057.30748 21940093.38648 21940093.57648 21940101.00248
+ 115295977.46648 374.00048 105.00048 105.00048
+ 110618791.21748 86196489.50148 21050056.41548 21050056.28248 21050064.11448
+ 110618791.71548 410.00048 143.00048 142.00048
+ 106963683.41948 83348356.88448 20354509.32749 20354509.60948 20354516.63048
+ 106963680.91649 757.00049 449.00048 363.00048
+ 129738556.76145 101095017.98446 24688423.55748 24688423.61645 24688430.68046
+ 129738555.24448 126.00048 10.00045 18.00046
+ 114276277.91948 89046483.68948 21746052.01548 21746051.73648 21746059.44748
+ 114276280.41948 437.00048 137.00048 130.00048
+ 137174757.00844 106889483.27146 26103477.66147 26103477.87144 26103486.05946
+ 137174755.48247 81.00047 4.00044 14.00046
+ 112286357.90748 87495918.68048 21367372.41649 21367372.78748 21367379.44248
+ 112286357.40749 502.00049 186.00048 194.00048
+ 111699613.43748 87038709.76648 21255721.07749 21255721.11748 21255727.98248
+ 111699611.93149 513.00049 205.00048 187.00048
+ 03 10 31 0 54 30.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115250589.74548 89805688.28448 21931455.89148 21931455.99548 21931463.62548
+ 115250587.23748 376.00048 106.00048 105.00048
+ 110309559.63048 85955529.85248 20991211.56048 20991211.44848 20991219.20348
+ 110309560.12648 428.00048 155.00048 146.00048
+ 106823230.63248 83238913.14448 20327782.05249 20327782.34448 20327789.36148
+ 106823228.12949 764.00049 457.00048 372.00048
+ 130058239.42945 101344121.19446 24749257.07848 24749257.35045 24749263.19546
+ 130058237.92948 123.00048 9.00045 19.00046
+ 114230841.35748 89011078.53648 21737405.70348 21737405.59748 21737413.11948
+ 114230843.85648 439.00048 140.00048 129.00048
+ 137431384.46845 107089452.48346 26152312.56147 26152310.56245 26152320.50946
+ 137431382.98547 78.00047 6.00045 14.00046
+ 112510352.89848 87670460.13848 21409997.25948 21409997.65348 21410004.42648
+ 112510352.39848 495.00048 183.00048 189.00048
+ 111727525.92548 87060459.73848 21261032.62049 21261032.64448 21261039.56248
+ 111727524.41949 513.00049 208.00048 182.00048
+ 03 10 31 0 54 40.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115210465.87548 89774422.92948 21923820.56748 21923820.65448 21923828.21248
+ 115210463.36748 377.00048 107.00048 107.00048
+ 110004110.20548 85717517.32848 20933086.51548 20933086.44548 20933094.17448
+ 110004110.69948 446.00048 170.00048 149.00048
+ 106687223.27548 83132933.37948 20301900.71449 20301900.98948 20301908.05548
+ 106687220.77349 773.00049 467.00048 383.00048
+ 130378834.24546 101593935.13446 24810264.80048 24810265.15346 24810270.35346
+ 130378832.72348 120.00048 11.00046 18.00046
+ 114188301.00448 88977930.17348 21729310.50948 21729310.43948 21729317.93948
+ 114188303.50048 440.00048 141.00048 132.00048
+ 137687681.42444 107289164.10046 26201084.75447 26201085.31144 26201091.65746
+ 137687679.96947 78.00047 5.00044 11.00046
+ 112739446.61748 87848974.65448 21453592.47848 21453592.89248 21453599.56348
+ 112739446.11448 488.00048 177.00048 181.00048
+ 111759154.41248 87085105.31048 21267051.39149 21267051.36348 21267058.22248
+ 111759152.91049 511.00049 205.00048 181.00048
+ 03 10 31 0 54 50.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115175623.74248 89747273.21348 21917190.36648 21917190.43248 21917197.95748
+ 115175621.23048 379.00048 107.00048 109.00048
+ 109702516.50348 85482509.27848 20875695.02448 20875694.96948 20875702.71048
+ 109702517.00148 466.00048 186.00048 156.00048
+ 106555695.06648 83030443.85848 20276871.77949 20276872.01748 20276879.05648
+ 106555692.56349 783.00049 482.00048 394.00048
+ 130700303.81945 101844430.67746 24871438.37548 24871439.06545 24871444.17046
+ 130700302.28848 117.00048 8.00045 18.00046
+ 114148659.85548 88947040.95348 21721767.08948 21721766.85348 21721774.60348
+ 114148662.35448 441.00048 140.00048 132.00048
+ 137943613.22344 107488591.99146 26249786.99747 26249787.61544 26249792.26146
+ 137943611.72747 77.00047 4.00044 11.00046
+ 112973569.25748 88031407.84548 21498144.59148 21498144.96448 21498151.61148
+ 112973568.75748 481.00048 170.00048 174.00048
+ 111794498.66948 87112646.26348 21273777.17049 21273777.23248 21273784.00248
+ 111794497.16249 509.00049 205.00048 180.00048
+ 03 10 31 0 55 0.0000000 0 7G 1G 2G 3G11G15G25G31
+ 115146077.10248 89724249.84048 21911567.84748 21911567.98848 21911575.33048
+ 115146074.59348 379.00048 109.00048 108.00048
+ 109404851.74648 85250562.74748 20819051.32848 20819051.27048 20819058.97048
+ 109404852.24248 482.00048 198.00048 163.00048
+ 106428678.93548 82931470.27448 20252701.36049 20252701.61848 20252708.68448
+ 106428676.43349 795.00049 492.00048 403.00048
+ 131022610.95545 102095578.90946 24932771.58748 24932771.55645 24932778.35146
+ 131022609.40948 115.00048 7.00045 16.00046
+ 114111920.43248 88918412.82948 21714775.86048 21714775.76248 21714783.30748
+ 114111922.93048 443.00048 140.00048 133.00048
+ 113212649.90648 88217704.40248 21543640.19148 21543640.50148 21543647.22448
+ 113212649.40748 473.00048 167.00048 169.00048
+ 111833557.57748 87143081.73148 21281209.89549 21281209.89148 21281216.77248
+ 111833556.07349 506.00049 201.00048 180.00048
+ 03 10 31 0 55 10.0000000 0 8G 1G 2G 3G11G15G23G25G31
+ 115121838.32948 89705362.52948 21906955.31048 21906955.50648 21906962.75648
+ 115121835.82248 379.00048 108.00048 109.00048
+ 109111188.86348 85021734.55648 20763169.17348 20763169.02248 20763176.71848
+ 109111189.35748 496.00048 209.00048 168.00048
+ 106306206.71849 82836037.40148 20229395.69749 20229395.93649 20229403.01448
+ 106306204.21649 805.00049 507.00049 414.00048
+ 131345718.57745 102347350.89046 24994257.02348 24994258.22145 24994263.74546
+ 131345717.06648 111.00048 8.00045 16.00046
+ 114078084.81148 88892047.43648 21708337.07048 21708337.02848 21708344.49448
+ 114078087.31248 444.00048 141.00048 134.00048
+ 138454199.18254 107886416.71256 26346956.51747 26346958.12344 26346965.00746
+ 138454190.75257 74.00047 5.00044 11.00046
+ 113456616.89348 88407808.49448 21590065.47048 21590065.91848 21590072.67848
+ 113456616.39048 464.00048 160.00048 163.00048
+ 111876329.53848 87176410.55148 21289349.08349 21289349.07248 21289356.03348
+ 111876328.03149 504.00049 199.00048 178.00048
+ 03 10 31 0 55 20.0000000 0 7G 1G 2G 3G11G15G25G31
+ 115102917.90848 89690619.37248 21903354.87348 21903355.05948 21903362.43948
+ 115102915.40248 377.00048 107.00048 109.00048
+ 108821600.48348 84796081.31648 20708062.21649 20708062.23848 20708069.86948
+ 108821600.97949 508.00049 221.00048 175.00048
+ 106188309.33249 82744169.34548 20206960.55549 20206960.79649 20206967.80948
+ 106188306.83149 814.00049 517.00049 421.00048
+ 131669589.91345 102599717.94546 25055887.78548 25055887.54645 25055894.91546
+ 131669588.42448 109.00048 9.00045 15.00046
+ 114047154.58448 88867946.02148 21702451.20648 21702451.09448 21702458.70148
+ 114047157.08548 444.00048 142.00048 133.00048
+ 113705397.50748 88601663.42848 21637406.95048 21637407.34048 21637414.16548
+ 113705397.00548 454.00048 153.00048 159.00048
+ 111922811.86848 87212630.54848 21298194.33249 21298194.38248 21298201.30448
+ 111922810.36249 502.00049 197.00048 178.00048
+ 03 10 31 0 55 30.0000000 0 9G 1G 2G 3G11G13G15G23G25G31
+ 115089325.15948 89680027.77748 21900768.17048 21900768.16448 21900775.58948
+ 115089322.65548 379.00048 108.00048 110.00048
+ 108536158.95048 84573659.42448 20653744.46249 20653744.38248 20653752.00048
+ 108536159.44549 518.00049 229.00048 185.00048
+ 106075016.83249 82655889.55348 20185401.60549 20185401.86349 20185408.91848
+ 106075014.33049 822.00049 525.00049 427.00048
+ 131994188.22345 102852651.45746 25117656.80748 25117657.65545 25117663.91046
+ 131994186.72048 107.00048 9.00045 15.00046
+ 124243067.68956 96812804.34456 23642668.73348 23642669.67646 23642675.65046
+ 124243062.18958 185.00048 23.00046 39.00046
+ 114019130.97348 88846109.58148 21697118.42048 21697118.27848 21697125.82448
+ 114019133.47348 445.00048 142.00048 136.00048
+ 138962953.36454 108282858.93756 26443772.35947 26443770.96244 26443780.11646
+ 138962960.95857 70.00047 4.00044 11.00046
+ 113958918.27448 88799211.97648 21685650.40248 21685650.74048 21685657.58948
+ 113958917.77648 444.00048 147.00048 157.00048
+ 111973001.51548 87251739.46548 21307744.97948 21307745.08048 21307752.00948
+ 111973000.01148 498.00048 196.00048 175.00048
+ 03 10 31 0 55 40.0000000 0 10G 1G 2G 3G11G13G15G16G23G25G31
+ 115081067.37848 89673593.35148 21899196.66748 21899196.74348 21899204.05548
+ 115081064.87348 377.00048 108.00048 112.00048
+ 108254936.08848 84354524.83248 20600229.45249 20600229.34448 20600237.03848
+ 108254936.58549 526.00049 236.00048 192.00048
+ 105966358.17949 82571220.57548 20164724.50949 20164724.76349 20164731.74748
+ 105966355.67849 827.00049 531.00049 430.00048
+ 132319476.80445 103106122.86646 25179557.80748 25179559.09945 25179563.12246
+ 132319475.32848 105.00048 8.00045 17.00046
+ 124025149.23146 96642997.98446 23601200.00248 23601201.17446 23601206.83246
+ 124025143.71848 191.00048 26.00046 42.00046
+ 113994014.54348 88826538.47848 21692338.69648 21692338.67148 21692346.15048
+ 113994017.03948 445.00048 142.00048 136.00048
+ 113191004.47158 88200808.34358 21539531.91648 21539532.12648 21539538.32848
+ 113191003.96758 449.00048 165.00048 117.00048
+ 139216561.78853 108480483.12455 26492030.81647 26492031.00843 26492041.99245
+ 139216561.14857 69.00047 3.00043 9.00045
+ 114217105.34248 89000396.71148 21734781.81148 21734782.20348 21734788.91048
+ 114217104.84548 435.00048 139.00048 153.00048
+ 112026894.59448 87293734.29748 21318000.40948 21318000.40548 21318007.28048
+ 112026893.08948 499.00048 194.00048 176.00048
+ 03 10 31 0 55 50.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115078150.15348 89671320.37348 21898641.41748 21898641.45448 21898648.85248
+ 115078147.64548 379.00048 110.00048 110.00048
+ 107978003.15848 84138733.01248 20547530.75349 20547530.73748 20547538.37648
+ 107978003.65349 535.00049 243.00048 205.00048
+ 105862361.23149 82490184.06948 20144934.50949 20144934.70949 20144941.70848
+ 105862358.73049 830.00049 536.00049 435.00048
+ 132645419.58445 103360104.04346 25241582.41548 25241581.97745 25241588.80046
+ 132645418.09448 102.00048 7.00045 16.00046
+ 123810705.22146 96475898.89846 23560392.50048 23560393.14546 23560399.47246
+ 123810699.72448 197.00048 25.00046 42.00046
+ 113971805.50648 88809232.88748 21688112.40048 21688112.29848 21688119.70948
+ 113971808.00348 447.00048 142.00048 135.00048
+ 112956070.22348 88017742.81548 21494825.38348 21494825.53248 21494831.67248
+ 112956069.72248 454.00048 167.00048 122.00048
+ 114479884.29348 89205159.83148 21784786.72648 21784787.08348 21784793.82548
+ 114479883.79248 426.00048 134.00048 149.00048
+ 112084485.86648 87338610.79348 21328959.51148 21328959.61348 21328966.23648
+ 112084484.36148 498.00048 195.00048 176.00048
+ 03 10 31 0 56 0.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115080577.78148 89673212.23948 21899103.05548 21899103.29748 21899110.53748
+ 115080575.27648 379.00048 107.00048 108.00048
+ 107705431.18348 83926339.34548 20495662.00649 20495661.89548 20495669.58048
+ 107705431.67949 545.00049 251.00048 216.00048
+ 105763052.89749 82412801.01648 20126036.66549 20126036.90849 20126043.86848
+ 105763050.39649 834.00049 539.00049 434.00048
+ 132971980.37545 103614566.79746 25303724.81947 25303724.98145 25303732.62246
+ 132971978.82047 100.00047 6.00045 12.00046
+ 123599789.35546 96311548.93946 23520256.57148 23520257.04346 23520263.28346
+ 123599783.84348 203.00048 28.00046 41.00046
+ 113952503.53148 88794192.51248 21684439.25648 21684439.19848 21684446.52548
+ 113952506.02948 447.00048 145.00048 134.00048
+ 112725451.83548 87838040.24948 21450940.09648 21450940.20548 21450946.32948
+ 112725451.33448 458.00048 169.00048 127.00048
+ 114747178.53748 89413441.16448 21835651.01848 21835651.40548 21835658.24448
+ 114747178.03248 420.00048 129.00048 144.00048
+ 112145769.99848 87386364.85148 21340621.46848 21340621.44148 21340628.07248
+ 112145768.49148 498.00048 194.00048 176.00048
+ 03 10 31 0 56 10.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115088352.58348 89679270.62248 21900582.59648 21900582.69048 21900589.99648
+ 115088350.07648 381.00048 109.00048 110.00048
+ 107437290.50948 83717398.61748 20444636.53449 20444636.39048 20444644.02848
+ 107437291.00349 556.00049 263.00048 232.00048
+ 105668459.03749 82339091.57648 20108036.01549 20108036.28049 20108043.20548
+ 105668456.53449 837.00049 545.00049 438.00048
+ 133299122.92545 103869482.94146 25365978.69547 25365980.14445 25365984.30246
+ 133299121.40347 98.00047 6.00045 14.00046
+ 123392454.75146 96149989.62446 23480802.10348 23480802.49046 23480808.65246
+ 123392449.24048 210.00048 28.00046 43.00046
+ 113936107.81848 88781416.69448 21681319.19848 21681319.14948 21681326.44148
+ 113936110.31748 449.00048 145.00048 136.00048
+ 112499201.58848 87661741.43248 21407886.04248 21407886.22148 21407892.18548
+ 112499201.09048 464.00048 175.00048 130.00048
+ 115018912.20648 89625181.74848 21887360.25848 21887360.63248 21887367.32048
+ 115018911.71048 413.00048 127.00048 139.00048
+ 112210740.54248 87436991.37248 21352984.77048 21352984.76548 21352991.45948
+ 112210739.03648 496.00048 194.00048 173.00048
+ 03 10 31 0 56 20.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115101475.68848 89689496.50548 21903079.74648 21903079.81148 21903087.01548
+ 115101473.17748 382.00048 108.00048 110.00048
+ 107173650.81848 83511965.06348 20394467.50849 20394467.48948 20394475.08148
+ 107173651.31349 570.00049 274.00048 242.00048
+ 105578604.38249 82269074.95248 20090937.22949 20090937.48049 20090944.45448
+ 105578601.87949 842.00049 552.00049 444.00048
+ 133626811.67944 104124824.78846 25428335.19447 25428337.23444 25428342.86346
+ 133626810.14147 95.00047 5.00044 12.00046
+ 123188753.40746 95991261.27846 23442038.98648 23442039.52946 23442045.56346
+ 123188747.89248 217.00048 31.00046 45.00046
+ 113922617.56048 88770904.98848 21678751.96048 21678751.80648 21678759.25948
+ 113922620.06148 449.00048 144.00048 134.00048
+ 112277370.78148 87488886.24548 21365672.91948 21365673.16448 21365679.31648
+ 112277370.28048 470.00048 180.00048 136.00048
+ 115295008.92448 89840322.17148 21939899.68048 21939899.97248 21939906.66948
+ 115295008.42248 409.00048 124.00048 137.00048
+ 112279390.56548 87490484.97348 21366048.33948 21366048.44048 21366055.10548
+ 112279389.05748 496.00048 194.00048 174.00048
+ 03 10 31 0 56 30.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115119946.17548 89703889.07048 21906594.54448 21906594.64748 21906601.94848
+ 115119943.66948 383.00048 110.00048 109.00048
+ 106914581.51048 83310092.83948 20345168.33549 20345168.24548 20345175.82948
+ 106914582.00749 585.00049 288.00048 255.00048
+ 105493512.74149 82202769.76348 20074744.85949 20074745.08849 20074752.07448
+ 105493510.23949 847.00049 559.00049 451.00048
+ 133955010.77644 104380564.27746 25490789.65647 25490790.02744 25490797.10146
+ 133955009.25047 93.00047 5.00044 14.00046
+ 122988737.17646 95835404.41746 23403977.12148 23403977.72646 23403984.06646
+ 122988731.66948 222.00048 33.00046 44.00046
+ 113912030.50948 88762655.33248 21676737.32948 21676737.26348 21676744.63848
+ 113912033.01048 450.00048 146.00048 135.00048
+ 112060010.07748 87319514.17248 21324310.75748 21324310.85848 21324317.06248
+ 112060009.57848 478.00048 184.00048 139.00048
+ 115575391.21348 90058802.01048 21993254.49848 21993254.81448 21993261.51848
+ 115575390.71348 405.00048 121.00048 131.00048
+ 112351712.17048 87546839.42948 21379810.76848 21379810.78948 21379817.38848
+ 112351710.66348 493.00048 190.00048 175.00048
+ 03 10 31 0 56 40.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115143762.03448 89722446.87548 21911126.66948 21911126.84448 21911133.79548
+ 115143759.52848 384.00048 108.00048 108.00048
+ 106660151.03148 83111835.23248 20296751.90149 20296751.85048 20296759.46948
+ 106660151.52749 602.00049 306.00048 263.00048
+ 105413206.65449 82140193.53948 20059463.17249 20059463.40549 20059470.38648
+ 105413204.15249 854.00049 567.00049 460.00048
+ 134283684.64744 104636673.88446 25553334.27247 25553334.01144 25553339.10346
+ 134283683.18447 90.00047 5.00044 12.00046
+ 122792457.22046 95682458.94746 23366626.47448 23366627.08946 23366633.44646
+ 122792451.71248 227.00048 33.00046 46.00046
+ 113904344.91948 88756666.56148 21675274.85948 21675274.81448 21675282.04748
+ 113904347.41848 451.00048 144.00048 133.00048
+ 111847169.37948 87153664.13448 21283808.58448 21283808.85148 21283814.99848
+ 111847168.87548 487.00048 192.00048 142.00048
+ 115859981.44148 90280560.86348 22047410.08448 22047410.47648 22047417.00448
+ 115859980.93848 400.00048 119.00048 127.00048
+ 112427697.30448 87606048.66948 21394270.16048 21394270.30248 21394276.87848
+ 112427695.80148 490.00048 189.00048 169.00048
+ 03 10 31 0 56 50.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115172919.16448 89745166.64048 21916675.07148 21916675.18448 21916682.43048
+ 115172916.65748 383.00048 110.00048 109.00048
+ 106410427.34948 82917245.25348 20249231.14249 20249231.09448 20249238.76048
+ 106410427.84449 619.00049 322.00048 274.00048
+ 105337707.55349 82081362.99548 20045096.23449 20045096.47649 20045103.44048
+ 105337705.05049 858.00049 570.00049 465.00048
+ 134612791.00654 104893110.21256 25615962.45047 25615962.45544 25615969.04546
+ 134612790.48057 88.00047 4.00044 11.00046
+ 122599963.65746 95532463.83646 23329996.16448 23329996.93546 23330003.27346
+ 122599958.15348 231.00048 35.00046 45.00046
+ 113899558.14148 88752936.54848 21674363.89148 21674363.73648 21674371.20148
+ 113899560.64248 450.00048 144.00048 134.00048
+ 111638897.70448 86991374.40848 21244175.93948 21244176.07748 21244182.29948
+ 111638897.20148 496.00048 198.00048 146.00048
+ 116148701.23548 90505537.50848 22102351.55148 22102351.88848 22102358.33848
+ 116148700.73648 394.00048 116.00048 121.00048
+ 112507336.50948 87668105.17248 21409425.02248 21409425.08648 21409431.74748
+ 112507335.00348 486.00048 185.00048 168.00048
+ 03 10 31 0 57 0.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115207412.03648 89772044.08048 21923238.96948 21923239.04948 21923246.32648
+ 115207409.52948 382.00048 108.00048 107.00048
+ 106165477.57348 82726375.18148 20202618.82749 20202618.73648 20202626.48148
+ 106165478.06949 633.00049 338.00048 282.00048
+ 105267035.78449 82026293.98848 20031647.90149 20031648.15349 20031655.18848
+ 105267033.28249 863.00049 578.00049 471.00048
+ 134942308.63744 105149876.98246 25678667.75847 25678666.58744 25678674.23246
+ 134942308.05247 86.00047 5.00044 12.00046
+ 122411306.12746 95385457.79846 23294096.19448 23294096.78446 23294103.14746
+ 122411300.61848 234.00048 35.00046 46.00046
+ 113897667.15448 88751462.94348 21674004.20448 21674004.11548 21674011.44148
+ 113897669.65348 450.00048 145.00048 132.00048
+ 111435242.89548 86832682.21248 21205421.86349 21205421.93848 21205428.15248
+ 111435242.39349 506.00049 207.00048 149.00048
+ 116441472.05548 90733670.72948 22158063.88448 22158064.14548 22158070.59548
+ 116441471.55248 387.00048 111.00048 116.00048
+ 112590619.83948 87733001.18148 21425273.36048 21425273.46648 21425280.14448
+ 112590618.33648 482.00048 182.00048 166.00048
+ 03 10 31 0 57 10.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115247233.44248 89803073.54248 21930816.77148 21930816.82548 21930824.10348
+ 115247230.93348 381.00048 107.00048 109.00048
+ 105925368.09748 82539276.76148 20156927.61749 20156927.50748 20156935.30248
+ 105925368.59249 647.00049 354.00048 292.00048
+ 105201210.45949 81975001.37348 20019121.89949 20019122.12349 20019129.19648
+ 105201207.95649 866.00049 580.00049 477.00048
+ 135272195.58744 105406931.61646 25741443.77947 25741440.00444 25741448.43346
+ 135272195.04047 83.00047 4.00044 11.00046
+ 122226533.33946 95241478.80646 23258935.15648 23258935.95846 23258941.83446
+ 122226527.84248 236.00048 35.00046 48.00046
+ 113898668.43748 88752242.96948 21674194.99948 21674194.76948 21674202.22848
+ 113898670.93848 450.00048 144.00048 134.00048
+ 111236251.95548 86677624.14348 21167555.21649 21167555.40148 21167561.67148
+ 111236251.45349 514.00049 212.00048 153.00048
+ 116738214.95848 90964899.07948 22214531.99448 22214532.48648 22214538.83948
+ 116738214.45548 379.00048 107.00048 113.00048
+ 112677536.79948 87800728.56048 21441813.21548 21441813.30948 21441819.95348
+ 112677535.29348 478.00048 176.00048 167.00048
+ 03 10 31 0 57 20.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115292374.44148 89838247.98348 21939407.18748 21939407.22348 21939414.62048
+ 115292371.93048 380.00048 107.00048 109.00048
+ 105690164.38648 82356000.97048 20112169.93049 20112169.89448 20112177.63848
+ 105690164.88149 657.00049 364.00048 299.00048
+ 105140249.59449 81927499.19648 20007521.58249 20007521.81449 20007528.91248
+ 105140247.09349 868.00049 583.00049 482.00048
+ 135602417.39444 105664247.21146 25804282.87747 25804283.71344 25804287.29446
+ 135602416.92647 81.00047 5.00044 11.00046
+ 122045693.48046 95100564.43846 23224522.55848 23224522.97346 23224529.34646
+ 122045687.96748 237.00048 37.00046 46.00046
+ 113902557.94448 88755273.42148 21674935.33148 21674935.16548 21674942.73648
+ 113902560.44448 449.00048 145.00048 134.00048
+ 111041971.19948 86526236.43248 21130584.91849 21130585.01148 21130591.37848
+ 111041970.70049 520.00049 220.00048 158.00048
+ 117038850.51847 91199160.57148 22271741.07248 22271741.35647 22271747.94348
+ 117038850.01448 371.00048 99.00047 109.00048
+ 112768075.67348 87871278.00448 21459042.43748 21459042.49848 21459049.24548
+ 112768074.16648 474.00048 175.00048 162.00048
+ 03 10 31 0 57 30.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115342825.23748 89877560.04348 21949007.75448 21949008.01048 21949015.40448
+ 115342822.73248 381.00048 107.00048 106.00048
+ 105459931.27848 82176598.43348 20068358.15849 20068358.08648 20068365.85648
+ 105459931.77349 665.00049 373.00048 308.00048
+ 105084170.30449 81883800.93348 19996850.13649 19996850.36049 19996857.51548
+ 105084167.80149 868.00049 583.00049 483.00048
+ 135932939.36044 105921794.79545 25867179.35747 25867178.50744 25867179.74045
+ 135932938.93447 80.00047 5.00044 10.00045
+ 121868833.68346 94962751.45046 23190867.33348 23190868.01646 23190874.62146
+ 121868828.18148 238.00048 37.00046 47.00046
+ 113909331.84348 88760551.57748 21676224.45448 21676224.33948 21676231.96648
+ 113909334.34348 448.00048 143.00048 132.00048
+ 110852445.75148 86378554.23848 21094519.44749 21094519.60948 21094525.92248
+ 110852445.25049 525.00049 222.00048 163.00048
+ 117343299.14347 91436393.15448 22329675.79248 22329676.13947 22329682.68348
+ 117343298.63848 362.00048 95.00047 104.00048
+ 112862224.78448 87944640.61948 21476958.67048 21476958.72548 21476965.52248
+ 112862223.27848 470.00048 173.00048 161.00048
+ 03 10 31 0 57 40.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115398574.12148 89921000.67748 21959616.48248 21959616.58848 21959624.05648
+ 115398571.61248 380.00048 107.00048 108.00048
+ 105234732.59548 82001118.91148 20025504.27549 20025504.21648 20025512.04148
+ 105234733.09249 672.00049 379.00048 318.00048
+ 105032988.18649 81843918.73548 19987110.50149 19987110.76649 19987117.91348
+ 105032985.68449 870.00049 583.00049 481.00048
+ 136263728.28443 106179551.26046 25930125.25147 25930124.99443 25930133.90446
+ 136263726.79947 78.00047 3.00043 11.00046
+ 121696000.55246 94828076.21546 23157978.31048 23157978.79746 23157985.30846
+ 121695995.04848 239.00048 37.00046 47.00046
+ 113918985.44648 88768073.85348 21678061.49048 21678061.35648 21678068.94048
+ 113918987.94648 447.00048 142.00048 135.00048
+ 110667719.44848 86234611.66748 21059367.15949 21059367.35648 21059373.69148
+ 110667718.94449 529.00049 225.00048 172.00048
+ 117651481.16047 91676534.78347 22388320.97948 22388321.39847 22388328.01047
+ 117651480.65748 354.00048 91.00047 100.00047
+ 112959971.95948 88020807.13348 21495559.38248 21495559.50148 21495566.33448
+ 112959970.45448 468.00048 170.00048 158.00048
+ 03 10 31 0 57 50.0000000 0 8G 1G 2G 3G13G15G16G25G31
+ 115459607.33148 89968559.06548 21971230.77548 21971230.79748 21971238.24948
+ 115459604.82248 381.00048 108.00048 106.00048
+ 105014630.87148 81829610.99348 19983620.35249 19983620.28448 19983628.16948
+ 105014631.36649 681.00049 386.00048 326.00048
+ 104986717.48249 81807863.62248 19978305.51049 19978305.74249 19978312.86248
+ 104986714.97949 872.00049 588.00049 480.00048
+ 121527239.35046 94696573.87446 23125864.19748 23125864.77446 23125871.06246
+ 121527233.83348 242.00048 40.00046 49.00046
+ 113931513.00548 88777835.53348 21680445.43248 21680445.43348 21680452.94248
+ 113931515.50748 445.00048 143.00048 134.00048
+ 110487835.09848 86094441.96948 21025136.36749 21025136.51348 21025142.82548
+ 110487834.59549 534.00049 229.00048 176.00048
+ 117963316.66647 91919523.25947 22447661.65648 22447661.89947 22447668.57047
+ 117963316.16648 347.00048 89.00047 96.00047
+ 113061303.67848 88099767.00148 21514842.16548 21514842.24848 21514849.00448
+ 113061302.17048 465.00048 169.00048 159.00048
+ 03 10 31 0 58 0.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115525909.35348 90020222.89148 21983847.64448 21983847.86148 21983855.24248
+ 115525906.84348 381.00048 108.00048 105.00048
+ 104799687.85448 81662122.79048 19942718.18249 19942718.10848 19942725.99048
+ 104799688.35049 691.00049 402.00048 337.00048
+ 104945371.21949 81775645.64048 19970437.68549 19970437.90449 19970445.07748
+ 104945368.71749 874.00049 588.00049 478.00048
+ 136925971.60854 106695601.31555 26056144.99547 26056146.08444 26056155.60845
+ 136925965.15957 74.00047 4.00044 9.00045
+ 121362594.52046 94568279.04246 23094533.40448 23094533.91646 23094540.46246
+ 121362589.02648 245.00048 41.00046 47.00046
+ 113946908.83948 88789832.20848 21683375.19848 21683375.11248 21683382.77848
+ 113946911.33748 444.00048 141.00048 133.00048
+ 110312834.50848 85958077.71048 20991834.99949 20991835.18848 20991841.58248
+ 110312834.00649 539.00049 232.00048 184.00048
+ 118278725.76447 92165296.52247 22507681.88248 22507682.32947 22507688.93647
+ 118278725.26048 341.00048 85.00047 95.00047
+ 113166205.36448 88181508.61748 21534804.26048 21534804.36048 21534811.18448
+ 113166203.85848 463.00048 167.00048 155.00048
+ 03 10 31 0 58 10.0000000 0 8G 1G 2G 3G13G15G16G25G31
+ 115597463.32848 90075978.89548 21997464.25348 21997464.31148 21997471.74348
+ 115597460.82248 381.00048 107.00048 104.00048
+ 104589964.40248 81498701.75248 19902809.26049 19902809.19548 19902817.10148
+ 104589964.89849 706.00049 421.00048 349.00048
+ 104908961.38349 81747274.12948 19963509.25149 19963509.51249 19963516.68648
+ 104908958.88249 877.00049 594.00049 477.00048
+ 121202109.85246 94443225.79246 23063994.48048 23063995.04146 23064001.45446
+ 121202104.33948 251.00048 41.00046 49.00046
+ 113965166.21748 88804058.33948 21686849.77448 21686849.55548 21686857.43748
+ 113965168.71548 442.00048 138.00048 132.00048
+ 110142758.48048 85825550.70948 20959470.80549 20959470.95048 20959477.34448
+ 110142757.97749 542.00049 236.00048 189.00048
+ 118597627.98547 92413791.75147 22568367.14048 22568367.45247 22568373.83847
+ 118597627.48648 335.00048 83.00047 93.00047
+ 113274661.81948 88266019.94448 21555443.02848 21555443.04848 21555450.00548
+ 113274660.31348 461.00048 166.00048 154.00048
+ 03 10 31 0 58 20.0000000 0 9G 1G 2G 3G11G13G15G16G25G31
+ 115674251.50348 90135813.46748 22012076.80248 22012076.96248 22012084.41048
+ 115674248.99748 381.00048 108.00048 105.00048
+ 104385520.28548 81339394.52848 19863904.98549 19863904.87948 19863912.78748
+ 104385520.78349 721.00049 437.00048 362.00048
+ 104877498.94249 81722757.72448 19957522.34249 19957522.57649 19957529.79448
+ 104877496.44149 879.00049 595.00049 476.00048
+ 137588851.17554 107212124.08455 26182289.92347 26182287.97044 26182295.87845
+ 137588861.69957 70.00047 4.00044 9.00045
+ 121045828.30346 94321447.74047 23034255.33248 23034255.95846 23034262.43347
+ 121045822.79148 256.00048 43.00046 52.00047
+ 113986279.37248 88820509.84448 21690867.68948 21690867.63748 21690875.42948
+ 113986281.87148 441.00048 139.00048 135.00048
+ 109977646.68948 85696891.97548 20928051.18749 20928051.32548 20928057.84148
+ 109977646.18649 547.00049 240.00048 197.00048
+ 118919942.67247 92664945.94547 22629701.55148 22629702.02747 22629708.49047
+ 118919942.17448 331.00048 80.00047 92.00047
+ 113386657.57848 88353288.88348 21576755.39748 21576755.40448 21576762.57348
+ 113386656.07148 459.00048 163.00048 153.00048
+ 03 10 31 0 58 30.0000000 0 10G 1G 2G 3G11G13G15G16G21G25G31
+ 115756254.57548 90199711.76148 22027681.69148 22027681.75648 22027689.32148
+ 115756252.06948 380.00048 107.00048 103.00048
+ 104186413.95948 81184246.62748 19826016.39349 19826016.28648 19826024.22548
+ 104186414.45549 737.00049 458.00048 374.00048
+ 104850993.58749 81702104.04148 19952478.68149 19952478.91549 19952486.17748
+ 104850991.08649 880.00049 599.00049 476.00048
+ 137920462.91853 107470542.73855 26245393.18947 26245391.60343 26245404.22445
+ 137920471.36757 68.00047 3.00043 9.00045
+ 120893791.63746 94202977.40347 23005323.73748 23005324.48146 23005331.15947
+ 120893786.13448 264.00048 46.00046 52.00047
+ 114010241.28748 88839181.24448 21695427.59648 21695427.53248 21695435.50048
+ 114010243.78648 440.00048 138.00048 135.00048
+ 109817537.71248 85572131.60648 20897583.59349 20897583.71148 20897590.17248
+ 109817537.20849 552.00049 245.00048 204.00048
+ 126140688.03356 98291473.80156 24003775.07148 24003774.94146 24003782.00846
+ 126140688.52858 141.00048 17.00046 22.00046
+ 119245589.39947 92918696.46547 22691670.17448 22691670.60047 22691677.34047
+ 119245588.90348 326.00048 78.00047 88.00047
+ 113502177.61148 88443304.28548 21598738.29048 21598738.39748 21598745.36148
+ 113502176.10648 456.00048 163.00048 151.00048
+ 03 10 31 0 58 40.0000000 0 10G 1G 2G 3G11G13G15G16G21G25G31
+ 115843450.96348 90267656.76448 22044274.71148 22044274.93748 22044282.43148
+ 115843448.45448 377.00048 106.00048 103.00048
+ 103992702.56848 81033302.46748 19789154.47249 19789154.43848 19789162.40748
+ 103992703.06449 751.00049 472.00048 385.00048
+ 104829453.47649 81685319.38448 19948379.80849 19948380.04349 19948387.39948
+ 104829450.97349 881.00049 596.00049 479.00048
+ 138252135.28643 107728989.64445 26308508.20447 26308504.32743 26308523.64945
+ 138252143.86947 66.00047 2.00043 9.00045
+ 120746040.76146 94087846.66747 22977208.10248 22977208.59346 22977215.14247
+ 120746035.25648 271.00048 49.00046 54.00047
+ 114037044.37548 88860066.57648 21700528.27048 21700528.17048 21700536.15048
+ 114037046.87048 438.00048 138.00048 135.00048
+ 109662468.76548 85451298.60548 20868075.00349 20868075.15048 20868081.64948
+ 109662468.26349 557.00049 250.00048 209.00048
+ 125910683.63846 98112249.55946 23960006.60048 23960006.78546 23960014.33246
+ 125910684.13148 143.00048 16.00046 21.00046
+ 119574487.69447 93174980.62047 22754257.75048 22754258.07447 22754264.89447
+ 119574487.19548 320.00048 76.00047 86.00047
+ 113621204.66848 88536052.44048 21621388.59048 21621388.60048 21621395.74848
+ 113621203.16148 453.00048 160.00048 152.00048
+ 03 10 31 0 58 50.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 115935817.96048 90339630.81647 22061851.78448 22061851.87148 22061859.58647
+ 115935815.45648 376.00048 104.00048 100.00047
+ 103804442.49148 80886606.10948 19753329.95649 19753329.87548 19753337.90048
+ 103804442.98649 760.00049 485.00048 396.00048
+ 104812885.68749 81672409.30448 19945227.14749 19945227.40949 19945234.74448
+ 104812883.18649 878.00049 593.00049 480.00048
+ 120602615.45046 93976086.52347 22949915.12548 22949915.63946 22949922.19247
+ 120602609.94348 277.00048 47.00046 53.00047
+ 114066680.66248 88883159.60448 21706167.99748 21706167.83448 21706175.88748
+ 114066683.16248 438.00048 134.00048 133.00048
+ 109512475.79348 85334420.96148 20839532.32649 20839532.45148 20839538.93848
+ 109512475.29149 562.00049 252.00048 215.00048
+ 125681711.25746 97933829.82246 23916434.25348 23916434.91746 23916440.50046
+ 125681711.75948 146.00048 17.00046 21.00046
+ 119906557.10947 93433735.78247 22817448.46648 22817449.22647 22817455.58247
+ 119906556.61148 314.00048 73.00047 85.00047
+ 113743721.12148 88631519.50648 21644702.85948 21644702.92148 21644710.17948
+ 113743719.61348 448.00048 155.00048 150.00048
+ 03 10 31 0 59 0.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116033331.70948 90415615.45947 22080408.07148 22080408.28448 22080415.83447
+ 116033329.20348 374.00048 104.00048 100.00047
+ 103621688.78648 80744200.55148 19718553.09849 19718553.03248 19718561.12648
+ 103621689.28049 766.00049 492.00048 405.00048
+ 104801295.96049 81663378.24048 19943021.79549 19943022.02449 19943029.38648
+ 104801293.45849 876.00049 591.00049 480.00048
+ 120463554.36947 93867727.08747 22923452.79548 22923453.34447 22923459.98947
+ 120463548.86248 281.00048 52.00047 53.00047
+ 114099142.01348 88908454.04548 21712345.29648 21712345.18948 21712353.20048
+ 114099144.51048 436.00048 135.00048 135.00048
+ 109367593.07648 85221525.21548 20811962.11149 20811962.22748 20811968.78348
+ 109367592.57549 567.00049 259.00048 221.00048
+ 125453796.09446 97756233.43146 23873063.64048 23873063.73646 23873071.26646
+ 125453796.58148 149.00048 17.00046 20.00046
+ 120241717.12847 93694899.19247 22881227.60848 22881227.88647 22881234.75947
+ 120241716.62448 308.00048 71.00047 83.00047
+ 113869709.49748 88729692.15848 21668677.80248 21668677.78848 21668685.01548
+ 113869707.98948 445.00048 154.00048 147.00048
+ 03 10 31 0 59 10.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116135966.23948 90495590.29147 22099938.87648 22099938.98048 22099946.70947
+ 116135963.72848 373.00048 101.00048 97.00047
+ 103444494.83648 80606127.30748 19684834.24749 19684834.10648 19684842.25648
+ 103444495.33249 771.00049 497.00048 410.00048
+ 104794688.79249 81658229.70848 19941764.56249 19941764.78749 19941772.18348
+ 104794686.29049 873.00049 587.00049 481.00048
+ 120328895.26947 93762797.82547 22897828.14248 22897828.79647 22897835.32147
+ 120328889.76948 284.00048 53.00047 55.00047
+ 114134419.50748 88935942.86548 21719058.55748 21719058.36548 21719066.41048
+ 114134422.00848 435.00048 134.00048 133.00048
+ 109227854.30848 85112637.76648 20785370.75149 20785370.93648 20785377.51748
+ 109227853.80749 572.00049 263.00048 224.00048
+ 125226966.18646 97579482.91346 23829899.53548 23829899.05846 23829906.03446
+ 125226966.67948 154.00048 20.00046 22.00046
+ 120579887.32847 93958408.21747 22945579.40648 22945579.61647 22945586.65047
+ 120579886.82648 302.00048 68.00047 80.00047
+ 113999150.70248 88830555.28948 21693309.71748 21693309.74648 21693317.04148
+ 113999149.19948 440.00048 149.00048 147.00048
+ 03 10 31 0 59 20.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116243694.75548 90579534.58847 22120438.90648 22120439.00548 22120446.87847
+ 116243692.24948 371.00048 101.00048 97.00047
+ 103272912.71849 80472426.88548 19652183.29149 19652183.20649 19652191.32948
+ 103272913.21349 776.00049 504.00049 414.00048
+ 104793067.44649 81656966.23348 19941456.07449 19941456.31449 19941463.75548
+ 104793064.94249 873.00049 584.00049 482.00048
+ 120198674.62747 93661327.02647 22873048.02448 22873048.40847 22873055.31347
+ 120198669.11848 287.00048 53.00047 56.00047
+ 114172504.07848 88965619.01248 21726305.87048 21726305.75048 21726313.77448
+ 114172506.58048 434.00048 131.00048 133.00048
+ 109093291.71648 85007783.78848 20759764.26849 20759764.49348 20759771.07748
+ 109093291.21449 578.00049 268.00048 227.00048
+ 125001248.29646 97403598.96246 23786946.42948 23786946.74546 23786953.64646
+ 125001248.78148 157.00048 21.00046 23.00046
+ 120920987.33947 94224200.23147 23010488.71048 23010489.15847 23010496.01747
+ 120920986.83848 295.00048 64.00047 77.00047
+ 114132025.72448 88934094.19448 21718595.00948 21718595.11748 21718602.41448
+ 114132024.21848 437.00048 147.00048 146.00048
+ 03 10 31 0 59 30.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116356488.39548 90667425.64947 22141902.88648 22141903.02748 22141910.84247
+ 116356485.88748 370.00048 101.00048 96.00047
+ 103106993.29949 80343138.97648 19620609.93849 19620609.83349 19620617.90448
+ 103106993.79449 784.00049 516.00049 420.00048
+ 104796433.74049 81659589.18448 19942096.77449 19942097.02049 19942104.47448
+ 104796431.23849 871.00049 583.00049 478.00048
+ 120072928.02547 93563342.48947 22849119.39848 22849120.13647 22849126.89847
+ 120072922.52048 287.00048 54.00047 56.00047
+ 114213386.04748 88997474.89048 21734085.64748 21734085.49048 21734093.61948
+ 114213388.54548 431.00048 133.00048 133.00048
+ 108963935.70048 84906986.81048 20735148.82449 20735148.98948 20735155.52448
+ 108963935.19949 583.00049 273.00048 231.00048
+ 124776669.29346 97228602.47446 23744210.45748 23744210.71746 23744217.88246
+ 124776669.78348 160.00048 21.00046 24.00046
+ 121264937.00347 94492212.77647 23075940.45348 23075940.48947 23075947.66947
+ 121264936.50148 289.00048 60.00047 75.00047
+ 114268314.64048 89040293.33748 21744530.01148 21744529.97948 21744537.42748
+ 114268313.13348 432.00048 144.00048 144.00048
+ 03 10 31 0 59 40.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116474317.36248 90759240.32647 22164325.14748 22164325.11548 22164332.97347
+ 116474314.85148 370.00048 101.00048 98.00047
+ 102946785.98349 80218302.10348 19590123.51049 19590123.41049 19590131.49348
+ 102946786.47949 796.00049 530.00049 423.00048
+ 104804788.46149 81666099.19548 19943686.71249 19943686.97649 19943694.43548
+ 104804785.95849 869.00049 582.00049 471.00048
+ 119951690.22847 93468871.48747 22826048.52548 22826049.28947 22826055.96747
+ 119951684.72548 286.00048 55.00047 56.00047
+ 114257055.71548 89031503.07848 21742395.73848 21742395.53148 21742403.70748
+ 114257058.21348 429.00048 130.00048 131.00048
+ 108839815.71648 84810269.76848 20711529.71449 20711529.85248 20711536.39648
+ 108839815.21449 590.00049 279.00048 236.00048
+ 124553255.48846 97054513.60846 23701696.37348 23701696.68746 23701704.04646
+ 124553255.99848 166.00048 21.00046 24.00046
+ 121611656.23847 94762383.42347 23141918.79748 23141919.38347 23141926.18747
+ 121611655.73248 281.00048 56.00047 70.00047
+ 114407996.57548 89149136.25448 21771110.64148 21771110.74648 21771118.02348
+ 114407995.06848 428.00048 142.00048 140.00048
+ 03 10 31 0 59 50.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116597150.30347 90854954.14347 22187699.62048 22187699.61147 22187707.49047
+ 116597147.79848 368.00048 100.00047 95.00047
+ 102792338.44249 80097953.30648 19560733.18349 19560733.08049 19560741.15348
+ 102792338.93849 810.00049 549.00049 429.00048
+ 104818131.01049 81676495.78848 19946225.85149 19946226.14149 19946233.64748
+ 104818128.50849 868.00049 577.00049 467.00048
+ 119834993.96947 93377939.23947 22803842.08548 22803842.71747 22803849.40547
+ 119834988.46848 286.00048 54.00047 54.00047
+ 114303502.55048 89067695.27048 21751234.42448 21751234.25848 21751242.43648
+ 114303505.04948 426.00048 129.00048 132.00048
+ 108720959.89848 84717654.66248 20688912.35249 20688912.46748 20688919.11148
+ 108720959.39649 596.00049 284.00048 242.00048
+ 124331035.10346 96881354.80546 23659409.28348 23659409.14646 23659416.53546
+ 124331035.58848 169.00048 23.00046 25.00046
+ 121961064.97747 95034649.78947 23208409.44548 23208409.80647 23208416.62147
+ 121961064.47748 274.00048 55.00047 68.00047
+ 114551050.72648 89260606.86548 21798333.07848 21798333.16248 21798340.51348
+ 114551049.22248 425.00048 138.00048 138.00048
+ 03 10 31 1 0 0.0000000 0 9G 1G 2G 3G13G15G16G21G25G31
+ 116724954.98947 90954542.17147 22212020.02248 22212020.22847 22212028.04347
+ 116724952.48148 366.00048 98.00047 94.00047
+ 102643696.87149 79982128.49948 19532447.78049 19532447.68349 19532455.80348
+ 102643697.36649 823.00049 568.00049 439.00048
+ 104836459.71249 81690777.73748 19949713.82249 19949714.10949 19949721.67548
+ 104836457.20949 866.00049 575.00049 462.00048
+ 119722871.41647 93290570.84147 22782505.96648 22782506.45347 22782513.39347
+ 119722865.90548 287.00048 54.00047 56.00047
+ 114352715.89348 89106043.20448 21760599.44748 21760599.36648 21760607.49348
+ 114352718.39248 423.00048 127.00048 132.00048
+ 108607394.99748 84629162.43548 20667301.67649 20667301.90448 20667308.54648
+ 108607394.49449 600.00049 288.00048 247.00048
+ 124110034.98546 96709146.88346 23617354.52648 23617354.58846 23617362.28746
+ 124110035.49248 174.00048 24.00046 27.00046
+ 122313083.55247 95308949.75747 23275396.44648 23275396.91347 23275403.88747
+ 122313083.05148 267.00048 51.00047 65.00047
+ 114697455.84048 89374688.76548 21826193.22148 21826193.16548 21826200.38948
+ 114697454.33648 422.00048 141.00048 135.00048
diff --git a/dev/apps/positioning/examples/positions.PRSolve.jpg b/dev/apps/positioning/examples/positions.PRSolve.jpg
new file mode 100644
index 0000000..614b76c
Binary files /dev/null and b/dev/apps/positioning/examples/positions.PRSolve.jpg differ
diff --git a/dev/apps/positioning/examples/positions.posInterp.jpg b/dev/apps/positioning/examples/positions.posInterp.jpg
new file mode 100644
index 0000000..106ce38
Binary files /dev/null and b/dev/apps/positioning/examples/positions.posInterp.jpg differ
diff --git a/dev/apps/positioning/examples/rd.pi.gp b/dev/apps/positioning/examples/rd.pi.gp
new file mode 100644
index 0000000..4b5ca7f
--- /dev/null
+++ b/dev/apps/positioning/examples/rd.pi.gp
@@ -0,0 +1,7 @@
+set title "GRACE satellite positions, interpolated to 1 sec (gpstk::posInterp)"
+set xlabel 'GPS seconds of week 1242'
+set ylabel 'ECEF position components (m)'
+unset mouse
+set term x11 enhanced font 'luxi sans,17'
+set key outside
+plot 'rd.pi.out' using 2:4 t '' with points, '' using 2:5 t '' with points, '' using 2:6 t '' with points
diff --git a/dev/apps/positioning/examples/rd.prs.gp b/dev/apps/positioning/examples/rd.prs.gp
new file mode 100644
index 0000000..63a793a
--- /dev/null
+++ b/dev/apps/positioning/examples/rd.prs.gp
@@ -0,0 +1,7 @@
+set title "GRACE satellite positions, interpolated to 1 sec (gpstk::posInterp)"
+set xlabel 'GPS seconds of week 1242'
+set ylabel 'ECEF position components (m)'
+unset mouse
+set term x11 enhanced font 'luxi sans,17'
+set key outside
+plot 'rd.prs.out' using 2:4 t '' with points, '' using 2:5 t '' with points, '' using 2:6 t '' with points
diff --git a/dev/apps/positioning/examples/testpi b/dev/apps/positioning/examples/testpi
new file mode 100755
index 0000000..b9977ee
--- /dev/null
+++ b/dev/apps/positioning/examples/testpi
@@ -0,0 +1,18 @@
+#!/bin/bash
+# $Id: $
+# compute positions with GPS data from the GRACE satellite
+../PRSolve --obs grca304a.03o --nav brdc3040.03n --outRinex grca304a.prs.03o
+#
+# dump the position data using RinexDump and plot it, results in positions.PRSolve.jpg
+#../../Rinextools/RinexDump grca304a.prs.03o pos | plot -g 920x480 -x 2 -y 4 -y 5 -y 6 -xl "GPS seconds of week 1242" -yl "ECEF position components (m)" --Title "GRACE satellite positions, 10sec interval (gpstk::PRSolve)"
+../../Rinextools/RinexDump grca304a.prs.03o pos > rd.prs.out
+gnuplot -persist -geometry 920x480 rd.prs.gp
+#
+# dump the interpolated data using RinexDump and plot it, results in positions.posInterp.jpg
+../posInterp --obs grca304a.prs.03o --mult 10 --outRinex grca304a.pi.03o
+#../../Rinextools/RinexDump grca304a.pi.03o pos | plot -g 920x480 -x 2 -y 4 -y 5 -y 6 -xl "GPS seconds of week 1242" -yl "ECEF position components (m)" --Title "GRACE satellite positions, interpolated to 1 sec (gpstk::posInterp)"
+../../Rinextools/RinexDump grca304a.pi.03o pos > rd.pi.out
+gnuplot -persist -geometry 920x480 rd.pi.gp
+#
+# clean up
+#rm *.log *.out grca304a.p*
diff --git a/dev/apps/positioning/posInterp.cpp b/dev/apps/positioning/posInterp.cpp
new file mode 100644
index 0000000..dea1f11
--- /dev/null
+++ b/dev/apps/positioning/posInterp.cpp
@@ -0,0 +1,1119 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file posInterp.cpp
+ * Read a RINEX observation file which has receiver position information in auxiliary
+ * header comments (e.g. the output of PRSolve), and interpolate these positions to
+ * a new (higher) rate, a multiple of the nominal data rate of the input file.
+ * Output the input data (unchanged) and the interpolated position information
+ * to an output RINEX observation file.
+ */
+
+#include "DayTime.hpp"
+#include "CommandOptionParser.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "MiscMath.hpp" // LagrangeIterpolation()
+#include "icd_200_constants.hpp"
+#include "StringUtils.hpp"
+
+#include <time.h>
+#include <string>
+#include <vector>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+
+using namespace std;
+using namespace gpstk;
+using namespace StringUtils;
+
+//------------------------------------------------------------------------------------
+string PrgmName("posInterp");
+string PrgmVers("2.1 8/31/06");
+
+//------------------------------------------------------------------------------------
+typedef struct posInterpConfiguration {
+ // input
+ string ObsDirectory;
+ vector<string> InputObsName;
+ // output
+ // header information for the output RINEX file
+ string HDPrgm;
+ string HDRunby;
+ string HDObs;
+ string HDAgency;
+ string HDMarker;
+ string HDNumber;
+ int NrecOut;
+ DayTime FirstEpoch,LastEpoch;
+ double DT;
+ bool Debug,Verbose,DumpMap;
+ // data flow
+ double ith;
+ DayTime Tbeg, Tend;
+ // output files
+ string LogFile,OutRinexObs;
+ ofstream oflog;
+ // processing
+ int irate; // number of points to interpolate between epochs + 1;
+ // output has irate times as many position epochs
+ double DataInt;
+ // estimate DT from the data on the first reading
+ double estdt[9];
+ int ndt[9];
+} PIConfig;
+
+//------------------------------------------------------------------------------------
+// data input from command line
+PIConfig PIC;
+// data used in program
+const double F1=L1_MULT;
+const double F2=L2_MULT;
+const double if1r=1.0/(1.0-(F2/F1)*(F2/F1));
+const double if2r=1.0/(1.0-(F1/F2)*(F1/F2));
+clock_t totaltime;
+string Title;
+RinexObsStream ofstr; // output Rinex files
+RinexObsHeader rhead, rheadout;
+int inC1,inP1,inP2,inL1,inL2,inD1,inD2,inS1,inS2; // indexes in rhead
+DayTime CurrEpoch,PrgmEpoch,PrevEpoch;
+
+// map of <epoch,position>
+typedef struct pos_info_struct {
+ double X,Y,Z,T;
+ double PDOP,GDOP,rms;
+ int N;
+} PosInfo;
+map<DayTime,PosInfo> TimePositionMap;
+DayTime LastInterpolated;
+int Ninterps;
+
+//------------------------------------------------------------------------------------
+// prototypes
+int ReadFile(int nfile, int reading) throw(Exception);
+int ProcessHeader(RinexObsStream& ifs, int nfile, int reading) throw(Exception);
+int ProcessOneEntireEpoch(RinexObsData& ro, int reading) throw(Exception);
+int InterpolateAndOutput(void) throw(Exception);
+int AfterReadingFiles(int reading) throw(Exception);
+
+int GetCommandLine(int argc, char **argv) throw(Exception);
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception);
+
+//------------------------------------------------------------------------------------
+int main(int argc, char **argv)
+{
+try {
+ totaltime = clock();
+ int iret,nfile,reading,nread;
+
+ // Title and description
+ Title = PrgmName + ", part of the GPS ToolKit, Ver " + PrgmVers + ", Run ";
+ PrgmEpoch.setLocalTime();
+ Title += PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ Title += "\n";
+ cout << Title;
+
+ // get command line
+ iret=GetCommandLine(argc, argv);
+ if(iret) return iret;
+
+ PrevEpoch = DayTime::BEGINNING_OF_TIME;
+
+ // loop over input files - reading them twice
+ Ninterps = 0;
+ for(reading=1; reading <= 2; reading++) {
+ nread = 0;
+ for(nfile=0; nfile<PIC.InputObsName.size(); nfile++) {
+ iret = ReadFile(nfile,reading);
+ if(iret < 0) break;
+ nread++;
+ }
+ // quit if error
+ if(iret < 0) break;
+
+ if(nread>0) {
+ iret = AfterReadingFiles(reading);
+ if(iret < 0) break;
+ }
+
+ CurrEpoch = DayTime::BEGINNING_OF_TIME;
+ }
+
+ PIC.oflog << PrgmName << " did " << Ninterps << " interpolations" << endl;
+ totaltime = clock()-totaltime;
+ PIC.oflog << PrgmName << " timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+ cout << PrgmName << " timing: " << fixed << setprecision(3)
+ << double(totaltime)/double(CLOCKS_PER_SEC) << " seconds.\n";
+
+ PIC.oflog.close();
+
+ return iret;
+}
+catch(FFStreamError& e) { cout << "FFStream exception:\n" << e << endl; }
+catch(Exception& e) { cout << "GPSTK exception:\n" << e << endl; }
+catch (...) { cout << "Unknown exception in main." << endl; }
+} // end main()
+
+//------------------------------------------------------------------------------------
+// open the file, read header and check for data; then loop over the epochs
+// Return 0 ok, <0 fatal error, >0 non-fatal error (ie skip this file)
+// 0 ok, 1 couldn't open file, 2 file doesn't have required data
+int ReadFile(int nfile, int reading) throw(Exception)
+{
+try {
+ int i,iret;
+ RinexObsData rodata;
+ RinexObsStream ifstr;
+
+ // open input file
+ ifstr.open(PIC.InputObsName[nfile].c_str(),ios::in);
+ if(ifstr.fail()) {
+ PIC.oflog << "(" << reading << ") Failed to open input file "
+ << PIC.InputObsName[nfile] << ". Abort.\n";
+ return 1;
+ }
+ else PIC.oflog << "(" << reading << ") Opened input file "
+ << PIC.InputObsName[nfile] << endl;
+ ifstr.exceptions(ios::failbit);
+
+ // read header and (on 2nd reading) output
+ iret = ProcessHeader(ifstr, nfile, reading);
+ if(iret) return iret;
+
+ // loop over epochs in the file
+ if(reading == 2)
+ LastInterpolated = DayTime::BEGINNING_OF_TIME;
+
+ while(1) {
+ try {
+ ifstr >> rodata;
+ }
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ catch(...) {
+ Exception e("Unknown exception in ReadFile() from operator>>");
+ GPSTK_THROW(e);
+ break;
+ }
+ if(ifstr.eof()) break;
+ if(ifstr.bad()) {
+ Exception e("Bad read in ReadFile() from operator>>");
+ GPSTK_THROW(e);
+ }
+ iret = ProcessOneEntireEpoch(rodata,reading);
+ if(iret < -1) break;
+ if(iret == -1) { iret=0; break; } // end of file
+ if(iret == 1) continue; // ignore this epoch
+ }
+
+ ifstr.clear();
+ ifstr.close();
+
+ PIC.oflog << endl << "Finished reading (" << reading
+ << ") file " << PIC.InputObsName[nfile] << endl;
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int ProcessHeader(RinexObsStream& ifs, int nfile, int reading) throw(Exception)
+{
+try {
+ // read the header
+ try {
+ ifs >> rhead;
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ catch(...) {
+ Exception e("Unknown exception");
+ GPSTK_THROW(e);
+ }
+
+ if(reading==1) { // dump the input header
+ if(PIC.Verbose) {
+ PIC.oflog << "Input header from file " << PIC.InputObsName[nfile]
+ << " follows:" << endl;
+ rhead.dump(PIC.oflog);
+ }
+ }
+
+ if(reading == 2) { // edit the output Rinex header
+ rheadout = rhead;
+ // the writer does this
+ // rheadout.date = PrgmEpoch.printf("%04Y/%02m/%02d %02H:%02M:%02S");
+ rheadout.fileProgram = PIC.HDPrgm;
+ if(!PIC.HDRunby.empty()) rheadout.fileAgency = PIC.HDRunby;
+ if(!PIC.HDObs.empty()) rheadout.observer = PIC.HDObs;
+ if(!PIC.HDAgency.empty()) rheadout.agency = PIC.HDAgency;
+ if(!PIC.HDMarker.empty()) rheadout.markerName = PIC.HDMarker;
+ if(!PIC.HDNumber.empty()) {
+ rheadout.markerNumber = PIC.HDNumber;
+ rheadout.valid |= RinexObsHeader::markerNumberValid;
+ }
+ rheadout.version = 2.1;
+ rheadout.valid |= RinexObsHeader::versionValid;
+ rheadout.firstObs = PIC.FirstEpoch;
+ rheadout.valid |= RinexObsHeader::firstTimeValid;
+ //rheadout.interval = PIC.DT;
+ //rheadout.valid |= RinexObsHeader::intervalValid;
+ //rheadout.lastObs = PIC.LastEpoch;
+ //rheadout.valid |= RinexObsHeader::lastTimeValid;
+ // invalidate the table
+ if(rheadout.valid & RinexObsHeader::numSatsValid)
+ rheadout.valid ^= RinexObsHeader::numSatsValid;
+ if(rheadout.valid & RinexObsHeader::prnObsValid)
+ rheadout.valid ^= RinexObsHeader::prnObsValid;
+
+ ofstr << rheadout;
+
+ // dump it
+ if(PIC.Verbose) {
+ PIC.oflog << "Output header: " << endl;
+ rheadout.dump(PIC.oflog);
+ PIC.oflog << endl;
+ }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Return 0 ok,
+// <-1 fatal error,
+// -1 end of file,
+// 1 skip this epoch,
+// 2 output to Rinex,
+// 3 output position also
+int ProcessOneEntireEpoch(RinexObsData& roe, int reading) throw(Exception)
+{
+try {
+ int i,j;
+ double dt;
+
+ // stay within time limits
+ if(roe.time < PIC.Tbeg) return 1;
+ if(roe.time > PIC.Tend) return -1;
+
+ // ignore comment blocks on second reading
+ //if(roe.epochFlag != 0 && roe.epochFlag != 1) return 1;
+
+ // decimate data and positions (aux header info)
+ if(PIC.ith > 0.0) {
+ // if Tbeg is still undefined, set it to begin of week
+ if(PIC.Tbeg == DayTime::BEGINNING_OF_TIME)
+ PIC.Tbeg = PIC.Tbeg.setGPSfullweek(roe.time.GPSfullweek(),0.0);
+
+ dt = fabs(roe.time - PIC.Tbeg);
+ dt -= PIC.ith*long(0.5+dt/PIC.ith);
+
+ if(fabs(dt) > 0.25) return 1; // TD set tolerance? clock bias?
+ }
+
+ // save current time
+ PrevEpoch = CurrEpoch;
+ CurrEpoch = roe.time;
+ if(PIC.FirstEpoch == DayTime::BEGINNING_OF_TIME) { // used in output header
+ PIC.FirstEpoch = CurrEpoch;
+ PIC.oflog << "First data epoch is "
+ << PIC.FirstEpoch.printf("%04Y/%02m/%02d %02H:%02M:%6.3f = %4F %.3g")
+ << endl;
+ }
+
+ if(reading == 1) { // read positions and add to map
+
+ // look for auxiliary header records only
+ if(roe.epochFlag != 4) return 0;
+
+ // pull the info out of the comments
+ PosInfo PI;
+ for(j=0,i=0; i<roe.auxHeader.commentList.size(); i++) {
+ string line = StringUtils::stripTrailing(roe.auxHeader.commentList[i],
+ string("COMMENT"),1);
+ string word = StringUtils::stripFirstWord(line);
+ if(word == "XYZT") {
+ PI.X = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ PI.Y = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ PI.Z = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ PI.T = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ j++;
+ }
+ else if(word == "DIAG") {
+ PI.N = StringUtils::asInt(StringUtils::stripFirstWord(line));
+ PI.PDOP = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ PI.GDOP = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ PI.rms = StringUtils::asDouble(StringUtils::stripFirstWord(line));
+ j++;
+ }
+ else { // ignore
+ }
+ }
+
+ // add to map<DayTime,PosInfo> TimePositionMap;
+ TimePositionMap[CurrEpoch] = PI;
+
+ // update LastEpoch and estimate of PIC.DT
+ if(PIC.LastEpoch > DayTime::BEGINNING_OF_TIME) {
+ double dt = CurrEpoch-PIC.LastEpoch;
+ for(i=0; i<9; i++) {
+ if(PIC.ndt[i]<=0) { PIC.estdt[i]=dt; PIC.ndt[i]=1; break; }
+ if(ABS(dt-PIC.estdt[i]) < 0.0001) { PIC.ndt[i]++; break; }
+ if(i == 8) {
+ int k=0,nl=PIC.ndt[k];
+ for(int j=1; j<9; j++) if(PIC.ndt[j] <= nl) { k=j; nl=PIC.ndt[j]; }
+ PIC.ndt[k]=1; PIC.estdt[k]=dt;
+ }
+ }
+ }
+ PIC.LastEpoch = CurrEpoch;
+ }
+
+ // reading 2 - interpolate and output positions, and output data
+ else {
+ if(roe.epochFlag == 4)
+ // do nothing - InterpolateAndOutput will write this position from the map
+ ;
+ else {
+ InterpolateAndOutput(); // interpolate
+ ofstr << roe; // output data
+ }
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void RinexPositionComments(RinexObsData& psdata, DayTime& tt, int N,
+ double& X, double& Y, double& Z, double& T,
+ double& PDOP, double& GDOP, double& RMS) throw(Exception)
+{
+try {
+ ostringstream stst1,stst2;
+
+ psdata.auxHeader.clear();
+ psdata.time = tt;
+ psdata.epochFlag = 4; // mark it as in-line header info
+ psdata.numSvs = 2; // number of comments
+ stst1 << "XYZT";
+ stst1 << fixed << " " << setw(13) << setprecision(3) << X;
+ stst1 << fixed << " " << setw(13) << setprecision(3) << Y;
+ stst1 << fixed << " " << setw(13) << setprecision(3) << Z;
+ stst1 << fixed << " " << setw(13) << setprecision(3) << T;
+ psdata.auxHeader.commentList.push_back(stst1.str());
+
+ stst2 << "DIAG";
+ stst2 << " " << setw(2) << N
+ << " " << fixed << setw(5) << setprecision(2) << PDOP
+ << " " << fixed << setw(5) << setprecision(2) << GDOP
+ << " " << fixed << setw(9) << setprecision(3) << RMS
+ << " (N,P-,G-Dop,RMS)";
+
+ if(PIC.Debug)
+ PIC.oflog << psdata.time.printf("%02M:%04.1f ") << stst1.str()
+ << " " << stst2.str() << endl;
+
+ psdata.auxHeader.commentList.push_back(stst2.str());
+ psdata.auxHeader.valid |= RinexObsHeader::commentValid;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int InterpolateAndOutput(void) throw(Exception)
+{ // interpolate positions and output to rinex
+try {
+ bool Lagrange;
+ int i,ipts;
+ double PDOP,GDOP,rms,err,dt,Dt,delt,xx,yy,zz,tt;
+ DayTime t0,ttag;
+ RinexObsData psdata;
+ vector<double> times,X,Y,Z,T;
+ map<DayTime,PosInfo>::iterator itb,ite,itB,itE,itr;
+
+ // if no previous epoch, nothing to do
+ if(PrevEpoch==DayTime::BEGINNING_OF_TIME)
+ return 0;
+
+ // find 4 positions on each side of CurrEpoch-1/2dt
+ ite = TimePositionMap.lower_bound(CurrEpoch);
+ if(ite == TimePositionMap.end())
+ return 0; // no position; get it next time
+ if(ite->first - LastInterpolated < 0)
+ return 0; // already done
+
+ itb = ite;
+ if(itb == TimePositionMap.begin()) {
+ //PIC.oflog << "Warning: cannot interpolate at " << CurrEpoch
+ //<< ": before beginning of data" << endl;
+ PIC.oflog << "Echo position at first epoch "
+ << CurrEpoch.printf("%04Y/%02m/%02d %02H:%02M:%6.3f = %4F %.3g")
+ << endl;
+
+ // create the aux header
+ // use data from the begin time
+ RinexPositionComments(psdata,CurrEpoch,
+ itb->second.N,
+ itb->second.X,
+ itb->second.Y,
+ itb->second.Z,
+ itb->second.T,
+ itb->second.PDOP,
+ itb->second.GDOP,
+ itb->second.rms);
+
+ // write it out
+ ofstr << psdata;
+
+ return 0;
+ }
+ itb--;
+
+ // itb and ite are now on either side of the times at which to interpolate
+ if(PIC.Debug) PIC.oflog << "Interpolate : "
+ << itb->first.printf("%02H:%02M:%04.1f") << " to "
+ << ite->first.printf("%02H:%02M:%04.1f")
+ << " : (" << (ite->first - itb->first) << " sec)" << endl;
+
+ // now expand them out, up to 3 more epochs, watching for gaps TD: 3*DT input
+ itB = itb;
+ itE = ite;
+ for(i=0; i<3; i++) {
+ if(itB == TimePositionMap.begin() || (i==0 && itE->first-itB->first > 3*PIC.DT))
+ break;
+
+ // increase the end time
+ ttag = itE->first;
+ itE++;
+ if(itE == TimePositionMap.end() || itE->first-ttag > 3*PIC.DT) { itE--; break; }
+
+ // decrease the begin time
+ ttag = itB->first;
+ itB--;
+ if(ttag-itB->first > 3*PIC.DT) { itE--; itB++; break; }
+
+ }
+
+ // fill the arrays for interpolation
+ t0 = itB->first;
+ ipts = 1;
+ itr = itB;
+ if(PIC.Debug) PIC.oflog << "Data for interpolation:\n";
+
+ while(1) {
+ if(PIC.Debug) PIC.oflog << " " << ipts
+ << " " << itr->first.printf("%02M:%04.1f")
+ << fixed << setprecision(3)
+ << " " << setw(6) << (itr->first-t0)
+ << " " << setw(13) << itr->second.X
+ << " " << setw(13) << itr->second.Y
+ << " " << setw(13) << itr->second.Z
+ << ((itr==itb || itr==ite) ? " *":"")
+ << endl;
+
+ times.push_back(itr->first - t0); // sec
+ X.push_back(itr->second.X); // m
+ Y.push_back(itr->second.Y);
+ Z.push_back(itr->second.Z);
+ T.push_back(itr->second.T);
+ if(itr == itE) break;
+ itr++;
+ ipts++;
+ }
+
+ // compute the time intervals involved
+ ttag = itb->first;
+ Dt = ite->first - ttag; // time interval over which interpolating
+ if(Dt > 3*PIC.DT) {
+ PIC.oflog << "Warning: cannot interpolate at " << CurrEpoch
+ << ": large gap = " << Dt << " seconds." << endl;
+ return 0;
+ }
+ dt = PIC.DT/double(PIC.irate);
+
+ // is there enough data to do Lagrange interpolation?
+ // fall back to linear interpolation if have to, but not over long periods
+ if(ipts < 2 || (ipts==2 && Dt>3*PIC.DT)) {
+ PIC.oflog << "Warning: cannot interpolate at " << CurrEpoch
+ << ": not enough data" << endl;
+ return 0; // not enough data
+ }
+ Lagrange = (ipts == 2 ? false : true);
+
+ // number of interpolations needed to cover Dt, plus 1 endpt
+ ipts = int(0.5+Dt/dt);
+ PIC.oflog << "Dt dt and ipts are " << Dt << " " << dt << " " << ipts
+ << CurrEpoch.printf(" at %04Y/%02m/%02d %02H:%02M:%6.3f = %4F %.3g") << endl;
+
+ // loop over the interpolation times you want
+ delt = itb->first - t0; // time since first data point
+ for(i=0; i<ipts; i++) {
+ ttag += dt; // itb->first was done last epoch
+ delt += dt;
+
+ // use 1. known position if i==ipts-1 (last epoch, ite)
+ // 2. Lagrange if you have more than 1 data on each side
+ // 3. linear interpolation
+ xx = (i==ipts-1 ?
+ ite->second.X :
+ (Lagrange ?
+ LagrangeInterpolation(times,X,delt,err) :
+ X[0]+(X[1]-X[0])*delt/Dt));
+ yy = (i==ipts-1 ?
+ ite->second.Y :
+ (Lagrange ?
+ LagrangeInterpolation(times,Y,delt,err) :
+ Y[0]+(Y[1]-Y[0])*delt/Dt));
+ zz = (i==ipts-1 ?
+ ite->second.Z :
+ (Lagrange ?
+ LagrangeInterpolation(times,Z,delt,err) :
+ Z[0]+(Z[1]-Z[0])*delt/Dt));
+ tt = (i==ipts-1 ?
+ ite->second.T :
+ (Lagrange ?
+ LagrangeInterpolation(times,T,delt,err) :
+ T[0]+(T[1]-T[0])*delt/Dt));
+
+ // create the aux header
+ // use N,DOPs,RMS of _end_ time for all interpolated times
+ RinexPositionComments(psdata,ttag,
+ ite->second.N,
+ xx,yy,zz,tt,
+ ite->second.PDOP,
+ ite->second.GDOP,
+ ite->second.rms);
+
+ // write it out
+ ofstr << psdata;
+
+ if(i != ipts-1) Ninterps++;
+ LastInterpolated = ttag;
+ }
+
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int AfterReadingFiles(int reading) throw(Exception)
+{
+try {
+ int i,j,iret=0;
+ double dt;
+
+ if(reading == 1) {
+
+ // compute data interval for this file
+ for(j=0,i=1; i<9; i++) { if(PIC.ndt[i]>PIC.ndt[j]) j=i; }
+ PIC.DT = PIC.estdt[j];
+ PIC.oflog << endl;
+ PIC.oflog << "Estimated data interval is " << PIC.DT << " seconds.\n";
+ PIC.oflog << "Interpolate to " << PIC.irate << " times the input data rate\n";
+ PIC.oflog << "Last data epoch is "
+ << PIC.LastEpoch.printf("%04Y/%02m/%02d %02H:%02M:%06.3f = %4F %.3g") << endl;
+
+ if(TimePositionMap.size() == 0) {
+ cout << "No position information was found in the input file! Abort.\n";
+ PIC.oflog << "No position information was found in the input file! Abort.\n";
+ return -1;
+ }
+ PIC.oflog << endl;
+
+ // dump the map of positions
+ if(PIC.DumpMap) {
+ PIC.oflog << "Here is all the Time/Position information:\n";
+ map<DayTime,PosInfo>::const_iterator itr;
+ itr = TimePositionMap.begin();
+ i = 0;
+ while(itr != TimePositionMap.end()) {
+ PIC.oflog << setw(4) << i << " "
+ << itr->first.printf("%04Y/%02m/%02d %02H:%02M:%6.3f %4F %10.3g")
+ << fixed << setprecision(3)
+ << " " << setw(2) << itr->second.N
+ << " " << setw(13) << itr->second.X
+ << " " << setw(13) << itr->second.Y
+ << " " << setw(13) << itr->second.Z
+ << " " << setw(13) << itr->second.T
+ << " " << setw(7) << itr->second.rms
+ << endl;
+ itr++;
+ i++;
+ }
+ PIC.oflog << "End of the Time/Position information.\n\n";
+ }
+
+ // open output file
+ if(!PIC.OutRinexObs.empty()) {
+ ofstr.open(PIC.OutRinexObs.c_str(), ios::out);
+ if(ofstr.fail()) {
+ PIC.oflog << "Failed to open output file " << PIC.OutRinexObs
+ << ". Abort.\n";
+ return 1;
+ }
+ else PIC.oflog << "Opened output file " << PIC.OutRinexObs << endl;
+ ofstr.exceptions(ios::failbit);
+ }
+ }
+ else if(reading==2) {
+ PIC.oflog << "Close the output file\n";
+ ofstr.close();
+ }
+
+ return iret;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int GetCommandLine(int argc, char **argv) throw(Exception)
+{
+try {
+ bool help=false;
+ int i,j;
+ // defaults
+ PIC.Debug = false;
+ PIC.DumpMap = false;
+ PIC.ith = 0.0;
+ PIC.Tbeg = PIC.FirstEpoch = DayTime::BEGINNING_OF_TIME;
+ PIC.Tend = DayTime::END_OF_TIME;
+ PIC.DT = 0;
+
+ PIC.LogFile = string("pi.log");
+
+ PIC.irate = 4;
+ PIC.DataInt = -1.0;
+
+ PIC.HDPrgm = PrgmName + string(" v.") + PrgmVers.substr(0,4);
+ PIC.HDRunby = string("ARL:UT/SGL/GPSTK");
+
+ for(i=0; i<9; i++) PIC.ndt[i]=-1;
+
+ PIC.ObsDirectory = string(".");
+
+ // -------------------------------------------------
+ // required options
+ RequiredOption dashi(CommandOption::hasArgument, CommandOption::stdType,
+ 'o',"obs"," [-o|--obs] <file> Input Rinex observation file(s)"
+ " (e.g. output of PRSolve)");
+
+ RequiredOption dashirate(CommandOption::hasArgument, CommandOption::stdType,
+ 'm',"mult", " [-m|--mult] <M> "
+ "Interpolation: output has M times as many epochs as input");
+
+ // optional options
+ // this is here only so it will show up in help page...
+ CommandOption dashf(CommandOption::hasArgument, CommandOption::stdType,
+ 'f',""," [-f|--file] <file> File containing more options");
+
+ CommandOption dashdo(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"obsdir"," --obsdir <dir> Directory of input observation file(s)");
+ dashdo.setMaxCount(1);
+
+ CommandOption dashith(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"decimate"," --decimate <dt> "
+ "Decimate data and positions to time interval dt");
+ dashith.setMaxCount(1);
+
+ // time
+ CommandOption dashbt(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"BeginTime", " --BeginTime <arg> "
+ "Start time: arg is 'GPSwk,sow' OR 'YYYY,MM,DD,HH,Min,Sec'");
+ dashbt.setMaxCount(1);
+
+ CommandOption dashet(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"EndTime", " --EndTime <arg> "
+ "End time: arg is 'GPSwk,sow' OR 'YYYY,MM,DD,HH,Min,Sec'");
+ dashet.setMaxCount(1);
+
+ //CommandOption dashDT(CommandOption::hasArgument, CommandOption::stdType,
+ //0,"DT"," --DT <dt> Time interval (sec) of data points");
+ //dashDT.setMaxCount(1);
+
+ CommandOption dashLog(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Log"," --Log <file> Output log file name (pi.log)");
+ dashLog.setMaxCount(1);
+
+ CommandOption dashRfile(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"outRinex"," --outRinex <file> Output Rinex obs file name");
+ dashRfile.setMaxCount(1);
+
+ CommandOption dashRrun(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"RunBy"," --RunBy <string> Output Rinex header 'RUN BY' string");
+ dashRrun.setMaxCount(1);
+
+ CommandOption dashRobs(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Observer"," --Observer <string> Output Rinex header 'OBSERVER' string");
+ dashRobs.setMaxCount(1);
+
+ CommandOption dashRag(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Agency"," --Agency <string> Output Rinex header 'AGENCY' string");
+ dashRag.setMaxCount(1);
+
+ CommandOption dashRmark(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Marker"," --Marker <string> Output Rinex header 'MARKER' string");
+ dashRmark.setMaxCount(1);
+
+ CommandOption dashRnumb(CommandOption::hasArgument, CommandOption::stdType,
+ 0,"Number"," --Number <string> Output Rinex header 'NUMBER' string");
+ dashRnumb.setMaxCount(1);
+
+ CommandOptionNoArg dashdmap(0,"dumpMap",
+ " --dumpMap Dump the Time/Position map to the log file.");
+
+ CommandOptionNoArg dashVerb(0,"verbose",
+ " --verbose Print extended output");
+ dashVerb.setMaxCount(1);
+
+ CommandOptionNoArg dashDebug('d',"debug",
+ " --debug Print even more extended output.");
+ dashDebug.setMaxCount(1);
+
+ CommandOptionNoArg dashh('h', "help",
+ " [-h|--help] Print syntax and quit.");
+
+ // ... other options
+ CommandOptionRest Rest("");
+
+ CommandOptionParser Par("Prgm " + PrgmName +
+ " reads a RINEX observation file which has position information\n"
+ " in auxiliary header comments (e.g. the output of PRSolve), and interpolates\n"
+ " these positions to produce positions at a new (higher) rate, which is a\n"
+ " multiple of the nominal data rate of the input file. It then outputs the\n"
+ " input data (unchanged) and the interpolated position information to an\n"
+ " output RINEX observation file.\n");
+
+ // -------------------------------------------------
+ // allow user to put all options in a file
+ // could also scan for debug here
+ vector<string> Args;
+ for(j=1; j<argc; j++) PreProcessArgs(argv[j],Args);
+
+ if(Args.size()==0)
+ Args.push_back(string("-h"));
+
+ // pass the rest
+ argc = Args.size()+1;
+ char **CArgs=new char*[argc];
+ if(!CArgs) { cout << "Failed to allocate CArgs\n"; return -1; }
+ CArgs[0] = argv[0];
+ for(j=1; j<argc; j++) {
+ CArgs[j] = new char[Args[j-1].size()+1];
+ if(!CArgs[j]) { cout << "Failed to allocate CArgs[j]\n"; return -1; }
+ strcpy(CArgs[j],Args[j-1].c_str());
+ }
+ Par.parseOptions(argc, CArgs);
+ delete[] CArgs;
+
+ // -------------------------------------------------
+ if(dashh.getCount() > 0) {
+ Par.displayUsage(cout,false);
+ help = true;
+ }
+
+ if (Par.hasErrors())
+ {
+ cout << "\nErrors found in command line input:\n";
+ Par.dumpErrors(cout);
+ cout << "...end of Errors\n\n";
+ help = true;
+ }
+
+ // -------------------------------------------------
+ // get values found on command line
+ vector<string> values,field;
+
+ // f never appears because we intercept it above
+ //if(dashf.getCount()) { cout << "Option f "; dashf.dumpValue(cout); }
+
+ // do help first
+ if(dashh.getCount()) help=true;
+ if(dashDebug.getCount()) {
+ PIC.Debug=true;
+ }
+ if(dashVerb.getCount()) {
+ PIC.Verbose=true;
+ }
+ if(dashdmap.getCount()) {
+ PIC.DumpMap=true;
+ }
+ if(dashdo.getCount()) {
+ values = dashdo.getValue();
+ PIC.ObsDirectory = values[0];
+ if(help) cout << "Input obs directory is " << PIC.ObsDirectory << endl;
+ }
+ if(dashi.getCount()) {
+ values = dashi.getValue();
+ if(help) cout << "Input Rinex obs files are:\n";
+ for(i=0; i<values.size(); i++) {
+ PIC.InputObsName.push_back(PIC.ObsDirectory + string("/") + values[i]);
+ if(help) cout << " " << PIC.ObsDirectory + string("/") + values[i] << endl;
+ }
+ }
+ if(dashirate.getCount()) {
+ values = dashirate.getValue();
+ PIC.irate = StringUtils::asInt(values[0]);
+ if(PIC.irate < 0) PIC.irate *= -1;
+ if(PIC.irate == 0) {
+ cout << "ERROR: Interpolation rate must be positive (-m<M>)\n";
+ help = true;
+ }
+ if(PIC.irate == 1) {
+ cout << "WARNING: Interpolation rate must > 1\n";
+ }
+ }
+ if(dashith.getCount()) {
+ values = dashith.getValue();
+ PIC.ith = StringUtils::asDouble(values[0]);
+ if(help) cout << "Ithing values is " << PIC.ith << endl;
+ }
+ if(dashbt.getCount()) {
+ values = dashbt.getValue();
+ field.clear();
+ while(values[0].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[0],','));
+ if(field.size() == 2)
+ PIC.Tbeg.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ PIC.Tbeg.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cout << "Error: invalid --BeginTime input: " << values[0] << endl;
+ }
+ if(help) cout << "Begin time is " << values[0] << " = "
+ << PIC.Tbeg.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ if(dashet.getCount()) {
+ values = dashet.getValue();
+ field.clear();
+ while(values[0].size() > 0)
+ field.push_back(StringUtils::stripFirstWord(values[0],','));
+ if(field.size() == 2)
+ PIC.Tend.setToString(field[0]+","+field[1], "%F,%g");
+ else if(field.size() == 6)
+ PIC.Tend.setToString(field[0]+","+field[1]+","+field[2]+","+field[3]+","
+ +field[4]+","+field[5], "%Y,%m,%d,%H,%M,%S");
+ else {
+ cout << "Error: invalid --EndTime input: " << values[0] << endl;
+ }
+ if(help) cout << "End time is " << values[0] << " = "
+ << PIC.Tend.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g") << endl;
+ }
+ //if(dashDT.getCount()) {
+ //values = dashDT.getValue();
+ //PIC.DT = StringUtils::asDouble(values[0]);
+ //if(help) cout << "DT is set to " << PIC.DT << endl;
+ //}
+ if(dashLog.getCount()) {
+ values = dashLog.getValue();
+ PIC.LogFile = values[0];
+ if(help) cout << "Log file is " << PIC.LogFile << endl;
+ }
+ if(dashRfile.getCount()) {
+ values = dashRfile.getValue();
+ PIC.OutRinexObs = values[0];
+ if(help) cout << "Output Rinex file name is " << PIC.OutRinexObs << endl;
+ }
+ if(dashRrun.getCount()) {
+ values = dashRrun.getValue();
+ PIC.HDRunby = values[0];
+ if(help) cout << "Output Rinex 'RUN BY' is " << PIC.HDRunby << endl;
+ }
+ if(dashRobs.getCount()) {
+ values = dashRobs.getValue();
+ PIC.HDObs = values[0];
+ if(help) cout << "Output Rinex 'OBSERVER' is " << PIC.HDObs << endl;
+ }
+ if(dashRag.getCount()) {
+ values = dashRag.getValue();
+ PIC.HDAgency = values[0];
+ if(help) cout << "Output Rinex 'AGENCY' is " << PIC.HDAgency << endl;
+ }
+ if(dashRmark.getCount()) {
+ values = dashRmark.getValue();
+ PIC.HDMarker = values[0];
+ if(help) cout << "Output Rinex 'MARKER' is " << PIC.HDMarker << endl;
+ }
+ if(dashRnumb.getCount()) {
+ values = dashRnumb.getValue();
+ PIC.HDNumber = values[0];
+ if(help) cout << "Output Rinex 'NUMBER' is " << PIC.HDNumber << endl;
+ }
+
+ if(Rest.getCount()) {
+ if(help) cout << "Remaining options:" << endl;
+ values = Rest.getValue();
+ for (i=0; i<values.size(); i++) {
+ if(help) cout << values[i] << endl;
+ }
+ }
+
+ PIC.oflog.open(PIC.LogFile.c_str(),ios::out);
+ if(PIC.oflog.fail()) {
+ cout << "Failed to open log file " << PIC.LogFile << endl;
+ }
+ else {
+ cout << "Opened log file " << PIC.LogFile << endl;
+ PIC.oflog << Title;
+ }
+
+ // print config to log
+ if(help || PIC.Verbose) {
+ PIC.oflog << "Input configuration:\n";
+ PIC.oflog << " Obs directory is " << PIC.ObsDirectory << endl;
+ PIC.oflog << " Input Rinex obs files are:\n";
+ for(i=0; i<PIC.InputObsName.size(); i++)
+ PIC.oflog << " " << PIC.InputObsName[i] << endl;
+ PIC.oflog << " Interpolate to " << PIC.irate << " times the input data rate"
+ << endl;
+ if(PIC.ith > 0) PIC.oflog << " Ithing time interval is " << PIC.ith << endl;
+ if(PIC.Tbeg > DayTime::BEGINNING_OF_TIME)
+ PIC.oflog << " Begin time is "
+ << PIC.Tbeg.printf("%04Y/%02m/%02d %02H:%02M:%.3f")
+ << " = " << PIC.Tbeg.printf("%04F/%10.3g") << endl;
+ if(PIC.Tend < DayTime::END_OF_TIME)
+ PIC.oflog << " End time is "
+ << PIC.Tend.printf("%04Y/%02m/%02d %02H:%02M:%.3f")
+ << " = " << PIC.Tend.printf("%04F/%10.3g") << endl;
+ //PIC.oflog << "DT is set to " << PIC.DT << endl;
+ PIC.oflog << " Log file is " << PIC.LogFile << endl;
+ if(!PIC.OutRinexObs.empty())
+ PIC.oflog << " Output Rinex file name is " << PIC.OutRinexObs << endl;
+ if(!PIC.HDRunby.empty())
+ PIC.oflog << " Output Rinex 'RUN BY' is " << PIC.HDRunby << endl;
+ if(!PIC.HDObs.empty())
+ PIC.oflog << " Output Rinex 'OBSERVER' is " << PIC.HDObs << endl;
+ if(!PIC.HDAgency.empty())
+ PIC.oflog << " Output Rinex 'AGENCY' is " << PIC.HDAgency << endl;
+ if(!PIC.HDMarker.empty())
+ PIC.oflog << " Output Rinex 'MARKER' is " << PIC.HDMarker << endl;
+ if(!PIC.HDNumber.empty())
+ PIC.oflog << " Output Rinex 'NUMBER' is " << PIC.HDNumber << endl;
+ if(PIC.Verbose) PIC.oflog << " 'Verbose' option is on\n";
+ if(PIC.Debug) PIC.oflog << " 'Debug' option is on\n";
+ PIC.oflog << "End of the input configuration.\n\n";
+ }
+
+ if(help) return 1;
+ if(PIC.Debug) PIC.Verbose=true;
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+// Pull out -f<f> and --file <f> and deprecated options
+void PreProcessArgs(const char *arg, vector<string>& Args) throw(Exception)
+{
+try {
+ static bool found_cfg_file=false;
+
+ if(found_cfg_file || (arg[0]=='-' && arg[1]=='f')) {
+ string filename(arg);
+ if(!found_cfg_file) filename.erase(0,2); else found_cfg_file = false;
+ ifstream infile(filename.c_str());
+ if(!infile) {
+ cout << "Error: could not open options file " << filename << endl;
+ return;
+ }
+
+ bool again_cfg_file=false;
+ char c;
+ string buffer,word;
+ while(1) {
+ getline(infile,buffer);
+ stripTrailing(buffer,'\r');
+
+ // process the buffer before checking eof or bad b/c there can be
+ // a line at EOF that has no CRLF...
+ while(!buffer.empty()) {
+ word = firstWord(buffer);
+ if(again_cfg_file) {
+ word = "-f" + word;
+ again_cfg_file = false;
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else if(word[0] == '#') { // skip to end of line
+ buffer = "";
+ }
+ else if(word == "--file" || word == "-f")
+ again_cfg_file = true;
+ else if(word[0] == '"') {
+ word = stripFirstWord(buffer,'"');
+ buffer = "dummy " + buffer; // to be stripped later
+ PreProcessArgs(word.c_str(),Args);
+ }
+ else
+ PreProcessArgs(word.c_str(),Args);
+
+ word = stripFirstWord(buffer); // now remove it from buffer
+ }
+ if(infile.eof() || !infile.good()) break;
+ }
+ }
+ else if(string(arg) == "--file" || string(arg) == "-f")
+ found_cfg_file = true;
+ // old versions of args -- deprecated
+ else if(string(arg)=="--input") { Args.push_back("--obs"); }
+ else if(string(arg)=="--EpochBeg") { Args.push_back("--BeginTime"); }
+ else if(string(arg)=="--GPSBeg") { Args.push_back("--BeginTime"); }
+ else if(string(arg)=="--EpochEnd") { Args.push_back("--EndTime"); }
+ else if(string(arg)=="--GPSEnd") { Args.push_back("--EndTime"); }
+ else if(string(arg)=="--output") { Args.push_back("--outRinex"); }
+ // regular arg
+ else Args.push_back(arg);
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/apps/positioning/poscvt.cpp b/dev/apps/positioning/poscvt.cpp
new file mode 100644
index 0000000..65494be
--- /dev/null
+++ b/dev/apps/positioning/poscvt.cpp
@@ -0,0 +1,216 @@
+#pragma ident "$Id$"
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "BasicFramework.hpp"
+#include "Position.hpp"
+#include "CommandOptionWithPositionArg.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class PosCvt : public BasicFramework
+{
+public:
+ PosCvt(char* arg0);
+ virtual bool initialize(int argc, char *argv[])
+ throw();
+
+protected:
+ virtual void process();
+
+private:
+ CommandOptionWithPositionArg ecefOption;
+ CommandOptionWithPositionArg geodeticOption;
+ CommandOptionWithPositionArg geocentricOption;
+ CommandOptionWithPositionArg sphericalOption;
+ CommandOptionNoArg listFormatsOption;
+ CommandOptionWithAnyArg outputFormatOption;
+ CommandOptionMutex mutexOption;
+
+ string stringToParse;
+ string posSpec;
+};
+
+PosCvt::PosCvt(char* arg0)
+ : BasicFramework(arg0, "Converts from a given input position "
+ "specification to other position formats. Include the "
+ "quotation marks."),
+ ecefOption('\0', "ecef", "%x %y %z", "ECEF \"X Y Z\" in meters"),
+ geodeticOption('\0', "geodetic", "%A %L %h",
+ "Geodetic \"lat lon alt\" in deg, deg, meters"),
+ geocentricOption('\0', "geocentric", "%a %l %r",
+ "Geocentric \"lat lon radius\" in deg, deg, meters"),
+ sphericalOption('\0', "spherical", "%t %p %r",
+ "Spherical \"theta, phi, radius\" in deg, deg, meters"),
+ listFormatsOption('l', "list-formats", "List the available format codes"
+ " for use by the input and output format options."),
+ outputFormatOption('F', "output-format", "Write the position with the"
+ " given format.")
+{
+ ecefOption.setMaxCount(1);
+ geodeticOption.setMaxCount(1);
+ geocentricOption.setMaxCount(1);
+ sphericalOption.setMaxCount(1);
+ listFormatsOption.setMaxCount(1);
+ outputFormatOption.setMaxCount(1);
+
+ mutexOption.addOption(&ecefOption);
+ mutexOption.addOption(&geodeticOption);
+ mutexOption.addOption(&geocentricOption);
+ mutexOption.addOption(&sphericalOption);
+}
+
+bool PosCvt::initialize(int argc, char *argv[])
+ throw()
+{
+ if(!BasicFramework::initialize(argc, argv))
+ return false;
+
+ if(listFormatsOption.getCount())
+ {
+ cout << " %X %Y %Z (cartesian or ECEF in kilometers)" << endl
+ << " %x %y %z (cartesian or ECEF in meters)" << endl
+ << " %a %l %r (geocentric lat,lon,radius, longitude E, "
+ "radius in meters)" << endl
+ << " %A %L %h (geodetic lat,lon,height, longitude E, "
+ "height in meters)" << endl
+ << " %a %w %R (geocentric lat,lon,radius, longitude W, "
+ "radius in kilometers)" << endl
+ << " %A %W %H (geodetic lat,lon,height, longitude W, "
+ "height in kilometers)" << endl
+ << " %t %p %r (spherical theta, phi, radius, "
+ "degrees and meters)" << endl
+ << " %T %P %R (spherical theta, phi, radius, "
+ "radians and kilometers)" << endl;
+
+ return false;
+ }
+
+ return true;
+}
+
+void PosCvt::process()
+{
+ try
+ {
+ Position pos;
+
+ CommandOptionWithPositionArg *whichOpt =
+ dynamic_cast<CommandOptionWithPositionArg *>(mutexOption.whichOne());
+
+ if (whichOpt != NULL)
+ {
+ pos = whichOpt->getPosition().front();
+ }
+
+ if (outputFormatOption.getCount())
+ {
+ cout << pos.printf(outputFormatOption.getValue()[0]) << endl;
+ }
+ else
+ {
+ using StringUtils::leftJustify;
+ string four(4, ' '); // four spaces!
+
+ Position foo = pos.asECEF();
+
+ cout << endl
+ << four << leftJustify("ECEF (x,y,z) in meters", 36)
+ << foo.printf("%.4x %.4y %.4z") << endl;
+
+ foo = pos.asGeodetic();
+
+ cout << four << leftJustify("Geodetic (llh) in deg, deg, m", 36)
+ << foo.printf("%.8A %.8L %.4h") << endl;
+
+ // no Position::asGeocentric() available
+ foo = pos.transformTo(Position::Geocentric);
+
+ cout << four << leftJustify("Geocentric (llr) in deg, deg, m", 36)
+ << pos.printf("%.8a %.8L %.4r") << endl;
+
+ foo = pos.transformTo(Position::Spherical);
+
+ cout << four << leftJustify("Spherical (tpr) in deg, deg, m", 36)
+ << pos.printf("%.8t %.8p %.4r") << endl
+
+ << endl << endl;
+ }
+
+ }
+ catch(GeometryException& ge)
+ {
+ cout << ge << endl;
+ }
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ PosCvt pc(argv[0]);
+
+ if (!pc.initialize(argc, argv))
+ return 0;
+
+ if(!pc.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "Caught an unknown exception." << endl;
+ }
+
+ return 1;
+}
diff --git a/dev/apps/positioning/rinexpvt.cpp b/dev/apps/positioning/rinexpvt.cpp
new file mode 100644
index 0000000..12d81e1
--- /dev/null
+++ b/dev/apps/positioning/rinexpvt.cpp
@@ -0,0 +1,563 @@
+#include "rinexpvt.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+double carrierPhaseSmooth(SatID sat, double range, double phase,
+ DayTime t, double maxAge=86400,
+ double datarate=30)
+{
+ static map<SatID,double> smoothedRange;
+ static map<SatID,DayTime> lastEpoch;
+ static map<SatID,double> lastPhase;
+ static map<SatID,DayTime> firstEpoch;
+
+ bool debug = true;
+ const double teps = .1; // fudge factor for missed epochs
+ const int k = 10;
+
+ // Should this smoother be (re)started?
+ bool initialize = false;
+
+ // Record why the smoother is restarted, if necessary
+ enum smootherState { NORMAL=0, NODATA, SKIPPEDEPOCH, AGE, SLIP};
+ smootherState thisState = NORMAL;
+
+ // Yes, if we are just beginning to see data for this PRN
+ map<SatID,double>::iterator i, j;
+ i = smoothedRange.find(sat);
+ j = lastPhase.find(sat);
+
+ initialize = ((i==smoothedRange.end())||(j==lastPhase.end()));
+ if (initialize) thisState = NODATA;
+
+ // Yes, if we skipped an epoch
+ if (!initialize)
+ {
+ if (initialize = ( fabs(t - lastEpoch[sat] - datarate) > teps ))
+ thisState = SKIPPEDEPOCH;
+ }
+
+ // Yes, if the filter is too old
+ if (!initialize)
+ {
+ if (initialize = ( fabs( t - firstEpoch[sat]) > maxAge))
+ thisState = AGE;
+ }
+
+ if (initialize)
+ {
+ smoothedRange[sat]=range;
+ firstEpoch[sat]=t;
+ }
+ else
+ smoothedRange[sat] =
+ (range + (k-1)*(smoothedRange[sat] + phase - lastPhase[sat]))/k;
+
+ if (fabs((smoothedRange[sat] - range)) > 20)
+ {
+ initialize = true;
+ smoothedRange[sat]=range;
+ firstEpoch[sat]=t;
+ thisState = SLIP;
+ }
+
+ lastPhase[sat] = phase;
+ lastEpoch[sat] = t;
+
+ if (debug)
+ {
+ static ofstream debugStream("smootherdebug.txt");
+ debugStream << t.printf("%F %g ");
+ //debugStream << t.printf("%Y %m %d %02H %02M %f ");
+ debugStream << sat.id << " ";
+ debugStream << setprecision(12) << smoothedRange[sat] << " ";
+ debugStream << range << " " << phase << " ";
+ debugStream << thisState << " ";
+// debugStream << lastPhase[sat];
+ debugStream << endl;
+ }
+
+ return smoothedRange[sat];
+
+}
+
+RINEXPVTSolution::RINEXPVTSolution(char *arg0)
+ : BasicFramework(arg0, "GPSTk PVT Generator\n\nThis application generates user positions based on RINEX observations.\n\nNOTE: Although the -n and -p arguments appear as optional below, one of the two must be used. An ephemeris source must be specified."),
+ obsOption('o', "obs-file", "RINEX Obs File.", true),
+ navOption('n', "nav-file", "RINEX Nav File. Required for single frequency ionosphere correction.", false),
+ peOption('p', "pe-file", "SP3 Precise Ephemeris File. Repeat this for each input file.", false),
+ metOption('m', "met-file", "RINEX Met File.", false),
+ spsOption('s', "single-frequency", "Use only C1 (SPS)"),
+ ppsOption('f', "dual-frequency", "Use only P1 and P2 (PPS)"),
+ timeFormatOption('t',"time-format","Alternate time format string."),
+ ionoOption('i',"no-ionosphere", "Do NOT correct for ionosphere delay."),
+ enuOption('e', "enu", "Use the following as origin to solve for East/North/Up coordinates, formatted as a string: \"X Y Z\" "),
+ elevationMaskOption('l',"elevation-mask","Elevation mask (degrees)."),
+ searchNearOption('x',"no-closest-ephemeris","Allow ephemeris use outside of fit interval."),
+ smootherOption('c',"no-carrier-smoothing","Do NOT use carrier phase smoothing."),
+ logfileOption('g',"logfile","Write logfile to this file." ),
+ rateOption('r',"rate","Observation interval (default=30s or Rinex Header specification",false),
+ hasBCEstore(false)
+ {
+ obsOption.setMaxCount(1);
+ navOption.setMaxCount(1);
+ metOption.setMaxCount(1);
+ spsOption.setMaxCount(1);
+ ppsOption.setMaxCount(1);
+ searchNearOption.setMaxCount(1);
+ elevationMaskOption.setMaxCount(1);
+ rateOption.setMaxCount(1);
+
+ enuOption.setMaxCount(1);
+ timeFormatOption.setMaxCount(1);
+ ionoOption.setMaxCount(1);
+ smootherOption.setMaxCount(1);
+ logfileOption.setMaxCount(1);
+
+ gotMet = false;
+ spsSolution = false;
+ ppsSolution = false;
+ aprioriPositionDefined = false;
+ transformENU = false;
+ removeIonosphere = true;
+ searchNear = false;
+ useSmoother = true;
+ logfileOn = false;
+
+ elevationMask = 0;
+
+ logFileName = obsFileName = metFileName = "";
+ }
+
+
+bool RINEXPVTSolution::initialize(int argc, char *argv[])
+ throw()
+ {
+ if(!BasicFramework::initialize(argc, argv))
+ return false;
+
+ obsFileName = obsOption.getValue().front();
+
+ if(metOption.getCount())
+ {
+ gotMet = true;
+ metFileName = metOption.getValue().front();
+ }
+
+ spsSolution = (spsOption.getCount()>0);
+ ppsSolution = (ppsOption.getCount()>0);
+
+ if (enuOption.getCount())
+ {
+ double x, y, z;
+ sscanf(enuOption.getValue().front().c_str(),"%lf %lf %lf",
+ &x, &y, &z);
+ enuOrigin=Triple(x,y,z);
+ double mag = enuOrigin.mag();
+ upVector = Triple( enuOrigin[0] / mag, enuOrigin[1]/mag, enuOrigin[2]/mag);
+ Triple poleVector(0,0,1.);
+ if (enuOrigin[2]<0) poleVector[2]=-1.;
+ eastVector = upVector.cross(poleVector);
+ northVector = upVector.cross(eastVector);
+
+ transformENU = true;
+
+ }
+
+ if (timeFormatOption.getCount()>0)
+ {
+ epochFormat = timeFormatOption.getValue().front();
+ }
+ else
+ epochFormat = string("%Y %m %d %02H %02M %02S");
+
+ if (elevationMaskOption.getCount()>0)
+ {
+ elevationMask =
+ StringUtils::asFloat(elevationMaskOption.getValue().front());
+ }
+
+ searchNear = (searchNearOption.getCount()>0);
+ removeIonosphere = (ionoOption.getCount()==0);
+ useSmoother = (smootherOption.getCount()==0);
+
+ if (logfileOption.getCount()>0)
+ {
+ logFileName = StringUtils::asString(logfileOption.getValue().front());
+ logStream.open( logFileName.c_str() );
+ if (logStream.is_open())
+ {
+ logfileOn = true;
+ logStream << "! rinexpvt log file" << endl;
+ DayTime nowTime;
+ logStream << "! Executed at: " << nowTime.printf(epochFormat) << endl;
+ logStream << "! Obs file name: " << obsFileName << endl;
+ logStream << "! Met file name: ";
+ if (gotMet) logStream << metFileName << endl;
+ else logStream << "none" << endl;
+ logStream << "! ENU Transform :";
+ if (!transformENU) logStream << " No " << endl;
+ else
+ {
+ logStream << "Yes. Reference Position (m) = ";
+ logStream.setf(ios_base::fixed, ios_base::floatfield);
+ logStream.width(12);
+ logStream.precision(3);
+ logStream << enuOrigin.theArray[0] << ", "
+ << enuOrigin.theArray[1] << ", "
+ << enuOrigin.theArray[2] << endl;
+ logStream.setf(ios_base::fmtflags(0), ios_base::floatfield); // reset to default
+ }
+ logStream << "! Search near? ";
+ if (searchNear) logStream << "yes" << endl;
+ else logStream << "no" << endl;
+ logStream << "! Remove iono? ";
+ if (removeIonosphere) logStream << "yes" << endl;
+ else logStream << "no" << endl;
+ logStream << "! Use smoother? ";
+ if (useSmoother) logStream << "yes" << endl;
+ else logStream << "no" << endl;
+
+ logStream << "! " << endl;
+ }
+ }
+
+ return true;
+ }
+
+
+void RINEXPVTSolution::process()
+{
+ IonoModel spsIonoCorr;
+
+ // Read nav file and store unique list of ephemeredes
+ if (navOption.getCount()>0)
+ {
+ RinexNavStream rnffs(navOption.getValue().front().c_str());
+ RinexNavData rne;
+ RinexNavHeader hdr;
+ rnffs >> hdr;
+ spsIonoCorr = IonoModel(hdr.ionAlpha, hdr.ionBeta);
+ while (rnffs >> rne) bcestore.addEphemeris(rne);
+ if (searchNear) bcestore.SearchNear();
+ virtualEphStore = &bcestore;
+ hasBCEstore = true;
+ if (logfileOn)
+ {
+ logStream << "! Rinex nav file : " << navOption.getValue().front() << endl;
+ }
+ }
+
+ //
+ if (peOption.getCount()>0)
+ {
+ for (int i=0; i<peOption.getCount(); i++)
+ {
+ sp3store.loadFile(peOption.getValue()[i].c_str());
+ if (logfileOn)
+ {
+ logStream << "! Precise ephemeris file : " << peOption.getValue()[i] << endl;
+ }
+ }
+ virtualEphStore = &sp3store;
+ }
+
+
+ // If provided, open and store met file into a linked list.
+ list<RinexMetData> rml;
+ if (metFileName != "")
+ {
+ RinexMetStream rms(metFileName.c_str());
+ RinexMetHeader rmh;
+ rms >> rmh;
+
+ RinexMetData rmd;
+ while (rms >> rmd) rml.push_back(rmd);
+ }
+
+ // Open and read the observation file one epoch at a time.
+ // For each epoch, compute and print a position solution
+ RinexObsStream roffs(obsFileName.c_str());
+ roffs.exceptions(ios::failbit);
+
+ RinexObsHeader roh;
+ RinexObsData rod;
+
+ roffs >> roh;
+
+ if ((!aprioriPositionDefined) && (roh.valid & RinexObsHeader::antennaPositionValid) )
+ {
+ aprioriPosition = roh.antennaPosition;
+ aprioriPositionDefined = true;
+ }
+
+ double obsInterval = 30.0;
+ bool intervalDefined = false;
+ if (roh.valid & RinexObsHeader::intervalValid)
+ {
+ obsInterval = roh.interval;
+ intervalDefined = true;
+ }
+
+ if (rateOption.getCount()>0)
+ {
+ obsInterval =
+ StringUtils::asFloat(rateOption.getValue().front());
+ if (logfileOn)
+ {
+ logStream << "! Observation Interval set to " << obsInterval << "s" << endl;
+ }
+ }
+
+ // Determine if we can have access to dual frequency measurements.
+ bool p1Found(false), p2Found(false), caFound(false);
+ std::vector<RinexObsHeader::RinexObsType>::iterator i;
+ for (i = roh.obsTypeList.begin(); i != roh.obsTypeList.end(); i++)
+ {
+ if ((*i)== RinexObsHeader::P1) p1Found = true;
+ if ((*i)== RinexObsHeader::P2) p2Found = true;
+ if ((*i)== RinexObsHeader::C1) caFound = true;
+ }
+
+ if ( !p1Found || !p2Found )
+ spsSolution = true;
+
+ if ((spsOption) && !caFound)
+ {
+ // Should probably use a throw here
+ cerr << "RINEX header claims CA observations cannot be found." << endl;
+ exit(-1);
+ }
+
+ // Tweaking the PRSolution object
+ prSolver.RMSLimit = 400;
+ //prSolver.Debug = true;
+
+ // Engage default weather model. Start weather data list at the beginning.
+ ggTropModel.setWeather(20., 1000., 50.);
+ list<RinexMetData>::iterator mi=rml.begin();
+
+ while (roffs >> rod)
+ {
+ double T, P, H;
+
+ // Find a weather point.
+ while ( (gotMet) &&
+ (!rml.empty()) &&
+ (mi != rml.end()) &&
+ ((*mi).time < rod.time) )
+ {
+ ggTropModel.setWeather((*mi).data[RinexMetHeader::TD],
+ (*mi).data[RinexMetHeader::PR],
+ (*mi).data[RinexMetHeader::HR]);
+ mi++;
+ }
+
+
+ // Apply editing criteria
+ if (rod.epochFlag == 0 || rod.epochFlag == 1) // Begin usable data
+ {
+ vector<SatID> satVec;
+ vector<double> rangeVec;
+ Xvt svpos;
+ double ionocorr;
+
+ try
+ {
+ RinexObsData::RinexSatMap::const_iterator it;
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ RinexObsData::RinexObsTypeMap otmap = (*it).second;
+
+ svpos = virtualEphStore->getSatXvt((*it).first,rod.time);
+ double elevation = aprioriPosition.elvAngle(svpos.x);
+ double azimuth = aprioriPosition.azAngle(svpos.x);
+
+ bool healthy=true;
+ if (hasBCEstore)
+ {
+ if (bcestore.getSatHealth((*it).first,rod.time)!=0)
+ healthy=false;
+ }
+
+ // Editing criteria
+ if ( (elevation >= elevationMask) &&
+ (healthy) )
+ {
+
+ if ((spsSolution) && (!ppsSolution))
+ {
+ RinexObsData::RinexObsTypeMap::const_iterator itCA =
+ otmap.find(RinexObsHeader::C1);
+ RinexObsData::RinexObsTypeMap::const_iterator itL1 =
+ otmap.find(RinexObsHeader::L1);
+
+ ionocorr = 0;
+
+ if ((aprioriPositionDefined) && (removeIonosphere))
+ ionocorr = spsIonoCorr.getCorrection(rod.time,
+ aprioriPosition,
+ elevation, azimuth);
+ satVec.push_back((*it).first);
+ double range = (*itCA).second.data-ionocorr;
+
+ if ((useSmoother) && (itL1 != otmap.end()))
+ {
+ double phase = ((*itL1).second.data)*C_GPS_M / L1_FREQ
+ + ionocorr;
+ range = carrierPhaseSmooth( (*it).first, range, phase,
+ rod.time, 300.0, obsInterval);
+ }
+
+ rangeVec.push_back(range);
+ }
+ else
+ {
+ ionocorr = 0;
+
+ RinexObsData::RinexObsTypeMap::const_iterator itP1, itP2, itL1, itL2;
+ itP1 = otmap.find(RinexObsHeader::P1);
+ itP2 = otmap.find(RinexObsHeader::P2);
+ itL1 = otmap.find(RinexObsHeader::L1);
+ itL2 = otmap.find(RinexObsHeader::L2);
+
+ if ((removeIonosphere) &&
+ (itP1!=otmap.end()) && (itP2!=otmap.end()))
+ ionocorr = 1./(1.-gamma)*((*itP1).second.data-(*itP2).second.data);
+
+ if (fabs(ionocorr) < maxIonoDelay)
+ {
+ satVec.push_back((*it).first);
+ double range = (*itP1).second.data-ionocorr;
+
+ if ( (useSmoother) && (itL1!=otmap.end()) && (itL2!=otmap.end()) )
+ {
+ double ionocorrPhase = -1./(1.-gamma)*((*itL1).second.data*C_GPS_M / L1_FREQ-(*itL2).second.data*C_GPS_M / L2_FREQ);
+ double phase = (*itL1).second.data * C_GPS_M / L1_FREQ - ionocorrPhase;
+ range = carrierPhaseSmooth( (*it).first, range, phase,
+ rod.time, 86400.0, obsInterval);
+ }
+ rangeVec.push_back(range);
+ }
+
+ }
+ } // If above elevation mask
+
+ }
+
+ // Log file output
+ // epoch time #Obs : <list of PRN IDs> : #GoodSVs [V}NV]
+ if (logfileOn)
+ {
+ logStream << rod.time.printf(epochFormat) << " ";
+ logStream << rod.obs.size() << " ! ";
+ RinexObsData::RinexSatMap::const_iterator it;
+ vector<SatID>::const_iterator itSol;
+ itSol = satVec.begin();
+ SatID solID = (SatID) (*itSol);
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ const SatID& satID = (SatID) (*it).first;
+ // cerr << "satID, solID : " << satID << ", " << solID << endl;
+ if (satID.id==solID.id)
+ {
+ logStream << satID.id << " ";
+ itSol++;
+ solID = (SatID) (*itSol);
+ // cerr << "incrementing itSol." << endl;
+ }
+ else
+ {
+ logStream << "(" << satID.id << ") ";
+ }
+ }
+ logStream << "! ";
+ if (prSolver.isValid())
+ logStream << prSolver.Nsvs << " " << "V" << endl;
+ else
+ logStream << "0 NV" << endl;
+ }
+
+ prSolver.RAIMCompute(rod.time,satVec,rangeVec, *virtualEphStore, \
+ &ggTropModel);
+ }
+ catch (Exception e) {
+ cerr << e << endl;
+ }
+ catch (...) {
+ cerr << "Unknown exception occured." << endl;
+ }
+
+ if (prSolver.isValid())
+ {
+ // Output epoch tag
+ cout << rod.time.printf(epochFormat) << " ";
+
+ if (!transformENU)
+ {
+ cout << setprecision(12) << prSolver.Solution[0] << " " ;
+ cout << prSolver.Solution[1] << " " ;
+ cout << prSolver.Solution[2] << " " ;
+ cout << prSolver.Solution[3];
+ cout << endl ;
+ }
+ else
+ {
+ Triple x(prSolver.Solution[0] - enuOrigin[0],
+ prSolver.Solution[1] - enuOrigin[1],
+ prSolver.Solution[2] - enuOrigin[2]);
+
+ cout << setprecision(12) << x.dot(eastVector) << " " ;
+ cout << x.dot(northVector) << " " ;
+ cout << x.dot(upVector) << " ";
+ cout << prSolver.Solution[3];
+
+ cout << endl;
+ }
+
+ if (!aprioriPositionDefined)
+ aprioriPosition = Triple(prSolver.Solution[0],
+ prSolver.Solution[1],
+ prSolver.Solution[2]);
+ }
+
+ } // End usable data
+
+ } // End loop through each epoch
+}
+
+const double RINEXPVTSolution::gamma = (L1_FREQ / L2_FREQ)*(L1_FREQ / L2_FREQ);
+const double RINEXPVTSolution::maxIonoDelay = 1000;
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ RINEXPVTSolution rinexpvt(argv[0]);
+
+ if(!rinexpvt.initialize(argc, argv))
+ return 0;
+
+ if(!rinexpvt.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& exc)
+ {
+ cout << exc << endl;
+ }
+ catch(...)
+ {
+ cout << "Caught an unknown exception." << endl;
+ }
+ return 1;
+}
+
+
+
+
+
+
diff --git a/dev/apps/positioning/rinexpvt.hpp b/dev/apps/positioning/rinexpvt.hpp
new file mode 100644
index 0000000..20c21da
--- /dev/null
+++ b/dev/apps/positioning/rinexpvt.hpp
@@ -0,0 +1,118 @@
+#ifndef RINEXPVT_HPP
+#define RINEXPVT_HPP
+
+#include <string>
+#include <cstring>
+#include <vector>
+
+#include "icd_200_constants.hpp"
+#include "RinexSatID.hpp"
+
+#include "RinexObsBase.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+
+#include "RinexNavBase.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "BCEphemerisStore.hpp"
+
+#include "RinexMetBase.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetStream.hpp"
+#include "TropModel.hpp"
+
+#include "SP3EphemerisStore.hpp"
+
+#include "PRSolution.hpp"
+
+#include "IonoModel.hpp"
+
+#include "BasicFramework.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class RINEXPVTSolution : public BasicFramework
+{
+public:
+
+ // Linear relation between iono delay on L1 and L2.
+ static const double gamma;
+
+ // Maximum sane value of the ionosphere delay
+ static const double maxIonoDelay;
+
+
+ RINEXPVTSolution(char *arg0);
+
+ virtual bool initialize(int argc, char *argv[]) throw();
+
+
+protected:
+ virtual void process();
+
+
+ EphemerisStore *virtualEphStore;
+ BCEphemerisStore bcestore;
+ SP3EphemerisStore sp3store;
+ PRSolution prSolver;
+ GGTropModel ggTropModel;
+
+ bool gotMet;
+ bool spsSolution;
+ bool ppsSolution;
+ bool transformENU;
+ bool removeIonosphere;
+ bool hasBCEstore;
+
+ double elevationMask;
+
+ Geodetic aprioriPosition, enuOrigin;
+ Triple eastVector, upVector, northVector;
+
+ bool aprioriPositionDefined;
+
+ string obsFileName;
+ string metFileName;
+ string logFileName;
+
+ string epochFormat;
+
+ bool searchNear;
+ bool useSmoother;
+ bool logfileOn;
+
+ CommandOptionWithAnyArg obsOption;
+ CommandOptionWithAnyArg navOption;
+ CommandOptionWithAnyArg peOption;
+ CommandOptionWithAnyArg metOption;
+ CommandOptionWithAnyArg timeFormatOption;
+ CommandOptionWithAnyArg enuOption;
+ CommandOptionWithAnyArg elevationMaskOption;
+ CommandOptionWithAnyArg logfileOption;
+ CommandOptionWithAnyArg rateOption;
+
+ CommandOptionNoArg spsOption;
+ CommandOptionNoArg ppsOption;
+ CommandOptionNoArg ionoOption;
+ CommandOptionNoArg searchNearOption;
+ CommandOptionNoArg smootherOption;
+
+ ofstream logStream;
+};
+
+#endif
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/apps/qa/Expression.cpp b/dev/apps/qa/Expression.cpp
new file mode 100644
index 0000000..d177622
--- /dev/null
+++ b/dev/apps/qa/Expression.cpp
@@ -0,0 +1,459 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file Expression.cpp
+ * Provides ability to resolve mathematical functions at runtime.
+ * Class definitions.
+ */
+
+#include <sstream>
+#include <map>
+#include <list>
+#include <vector>
+#include <string>
+#include <ctype.h>
+#include <math.h>
+
+#include "StringUtils.hpp"
+#include "Expression.hpp"
+
+namespace gpstk
+{
+
+ double Expression::BinOpNode::getValue()
+ throw (gpstk::Expression::ExpressionException)
+ {
+
+ // To get the value, compute the value of the left and
+ // right operands, and combine them with the operator.
+ double leftVal = left->getValue();
+ double rightVal = right->getValue();
+
+ if (op=="+") return leftVal + rightVal;
+ if (op=="-") return leftVal - rightVal;
+ if (op=="*") return leftVal * rightVal;
+ if (op=="//") return leftVal / rightVal;
+
+ }
+
+ double Expression::FuncOpNode::getValue()
+ throw (gpstk::Expression::ExpressionException)
+ {
+ // To get the value, compute the value of the right first
+ double rightVal = right->getValue();
+
+ if (op=="cos") return cos(rightVal);
+ if (op=="sin") return sin(rightVal);
+ if (op=="tan") return tan(rightVal);
+ if (op=="acos") return acos(rightVal);
+ if (op=="asin") return asin(rightVal);
+ if (op=="atan") return atan(rightVal);
+ if (op=="exp") return exp(rightVal);
+ if (op=="abs") return fabs(rightVal);
+ if (op=="sqrt") return sqrt(rightVal);
+ if (op=="log") return log(rightVal);
+ if (op=="log10") return log10(rightVal);
+// else THROW exception
+ }
+
+ std::ostream& Expression::FuncOpNode::print(std::ostream& ostr) {
+ ostr << op;
+ right->print(ostr);
+
+ return ostr;
+ }
+
+ std::ostream& Expression::BinOpNode::print(std::ostream& ostr) {
+ ostr << "(";
+ left->print(ostr);
+ ostr << op;
+ right->print(ostr);
+ ostr << ")";
+
+ return ostr;
+ }
+
+ void Expression::VarNode::setValue(double newValue)
+ {
+ value=newValue;
+ hasValue=true;
+ };
+
+ double Expression::VarNode::getValue(void)
+ throw (gpstk::Expression::ExpressionException)
+ {
+ if (!hasValue)
+ {
+ Expression::ExpressionException
+ ee("Variable " + name + " undefined.");
+ GPSTK_THROW(ee);
+ }
+
+ return value;
+ }
+
+ Expression::Token::Token(std::string iValue, int iPriority,
+ bool isOp=false)
+ :
+ value(iValue), priority(iPriority), used(false), resolved(false),
+ expNode(0), isOperator(isOp)
+ {
+ }
+
+ void Expression::Token::print(std::ostream& ostr)
+ {
+ ostr <<" Value '" << value;
+ ostr << "', operation priority " << priority << ", ";
+
+ if (isOperator) ostr << "operator";
+ else ostr << "not operator";
+
+ ostr << ", ";
+
+ if (used) ostr << "used,";
+ else ostr << "not used,";
+
+ if (resolved) ostr << "resolved";
+ else ostr << "not resolved ";
+
+ return;
+ }
+
+
+ Expression::Expression(const std::string& istr)
+ : root(0)
+ {
+ operatorMap["+"]=1;
+ operatorMap["-"]=1;
+ operatorMap["*"]=2;
+ operatorMap["/"]=2;
+ operatorMap["^"]=3;
+ operatorMap["cos"]=4;
+ operatorMap["sin"]=4;
+ operatorMap["tan"]=4;
+ operatorMap["acos"]=4;
+ operatorMap["asin"]=4;
+ operatorMap["atan"]=4;
+ operatorMap["exp"]=4;
+ operatorMap["abs"]=4;
+ operatorMap["sqrt"]=4;
+ operatorMap["log"]=4;
+ operatorMap["log10"]=4;
+
+ argumentPatternMap["+"]="RL";
+ argumentPatternMap["-"]="RL";
+ argumentPatternMap["*"]="RL";
+ argumentPatternMap["/"]="RL";
+ argumentPatternMap["^"]="RL";
+ argumentPatternMap["cos"]="R";
+ argumentPatternMap["sin"]="R";
+ argumentPatternMap["tan"]="R";
+ argumentPatternMap["acos"]="R";
+ argumentPatternMap["asin"]="R";
+ argumentPatternMap["atan"]="R";
+ argumentPatternMap["exp"]="R";
+ argumentPatternMap["abs"]="R";
+ argumentPatternMap["sqrt"]="R";
+ argumentPatternMap["log"]="R";
+ argumentPatternMap["log10"]="R";
+
+ tokenize(istr);
+ buildExpressionTree();
+ }
+
+ Expression::~Expression(void)
+ {
+ std::list<ExpNode *>::iterator i;
+ for (i=eList.begin(); i!=eList.end(); i++)
+ delete (*i);
+ }
+
+ void Expression::tokenize(const std::string& istr)
+ {
+ using namespace std;
+
+ // Remove spaces and parenthesis from the input string
+ // Must store informatin from parenthesis in another list
+ stringstream ss(istr);
+ string str;
+ char tempc;
+ vector<int> baseOrder;
+ int currentOrder = 0;
+
+ while (ss >> skipws >> tempc)
+ {
+ bool strip=false;
+
+ if (tempc == '(')
+ {
+ currentOrder+=10;
+ strip=true;
+ }
+
+ if (tempc == ')')
+ {
+ currentOrder-=10;
+ strip=true;
+ }
+
+ if (!strip)
+ {
+ baseOrder.push_back(currentOrder);
+ str.append(&tempc,1);
+ }
+ }
+
+ map<string, int>::iterator it;
+ list<int> breaks;
+ breaks.push_back(0);
+
+ // Break the expression into candidates for tokens. First known
+ // operators and functions
+ // are found and marked with as a "break" in the the string.
+ // Note the location and compute the order of operation of each.
+ // key is location in string. value is ord. of op.
+ map<int,int> breakPriority;
+
+ // Note when the breaks are due to an operator or to an operand.
+ // Each break can become a token but not all othem do.
+ // Key is location in the string, value is boolean, true for operators and functions.
+ map<int, bool> breakType;
+
+ for (it=operatorMap.begin(); it!=operatorMap.end(); it++)
+ {
+ int position = 0;
+ while ((position=str.find(it->first,position+1))!=string::npos)
+ {
+ // Account for scientific notation
+ bool sciNotation=false;
+ if ((it->first=="+") || (it->first=="-"))
+ {
+ sciNotation =
+ ( ( (str.substr(position-1,1)=="E") ||
+ (str.substr(position-1,1)=="e") ) &&
+ (isdigit(str.substr(position-2,1).c_str()[0])) &&
+ (isdigit(str.substr(position+1,1).c_str()[0])) );
+ }
+
+ if (!sciNotation)
+ {
+ breaks.push_back(position);
+ breakPriority[position] = it->second + baseOrder[position];
+ breakType[position] = true;
+
+ int operandPos = position+(it->first.size());
+ breaks.push_back(operandPos);
+ breakPriority[operandPos] = baseOrder[operandPos];
+ breakType[operandPos] = false;
+ }
+ }
+
+ }
+ breaks.push_back(str.size());
+
+ // Sort the breaks into a list
+ // Please note that sorting a linked list is expensive compared to
+ // sorting a vector or map, as the search cost is high (lists are not sorted).
+ // This should be revisited IF large expressions are handled by the GPSTk.
+ breaks.sort();
+
+ list<string> tokens;
+ list<int>::iterator ls = breaks.begin(), rs = ls; // used to identify token string
+
+ for (rs++ ;rs!=breaks.end(); rs++, ls++)
+ {
+ if (*rs!=*ls) // If not two operators in a row
+ {
+ string thisToken = str.substr(*ls,(*rs)-(*ls));
+ int thisOop = breakPriority[*ls];
+ bool isOp = breakType[*ls];
+
+ // Create the token
+ Token tok(thisToken,thisOop, isOp);
+
+ if ( tok.getOperator() )
+ tok.setArgumentPattern( argumentPatternMap[thisToken] );
+
+ // Create an expression node, save it, and link it to the token
+ ExpNode *expNode;
+
+
+ if (!isOp)
+ {
+ char testChar = thisToken.c_str()[0];
+ if (isalpha(testChar))
+ expNode = new VarNode(thisToken);
+ else
+ expNode = new ConstNode(StringUtils::asDouble(thisToken));
+ eList.push_back(expNode);
+ tok.setNode(expNode);
+ tok.setResolved(true);
+ }
+
+ // Now that the token has the best possible state, save it
+ tList.push_back(tok);
+ }
+ }
+ } // end tokenize function
+
+
+ int Expression::countResolvedTokens(void)
+ {
+ using namespace std;
+
+ list<Token>::iterator itt;
+
+ // How many have already been processed? Are we done yet?
+ int totalResolved=0;
+ for (itt = tList.begin(); itt!=tList.end(); itt++)
+ {
+ if (itt->getResolved()) totalResolved++;
+ }
+ return totalResolved;
+ }
+
+
+ void Expression::buildExpressionTree(void)
+ {
+ using namespace std;
+
+ list<Token>::iterator itt, targetToken;
+
+ if ((tList.size()==1)&&(tList.begin()->getResolved()))
+ {
+ root = tList.begin()->getNode();
+ return;
+ }
+
+ int totalResolved = countResolvedTokens();
+
+ while (totalResolved<tList.size())
+ {
+
+ //
+ // Step through tokens to find the value for the highest priority
+ // that doesn not yet have an expression node ExpNode assigned to it.
+ // A subtle but important sideeffect of this traversal is taht
+ // operators with the same priority get evaluated from right to
+ // left.
+ itt=tList.begin();
+ int highestP = -1;
+
+ for (itt = tList.begin(); itt !=tList.end(); itt++)
+ {
+ if ( itt->getOperator() && !itt->getResolved() )
+ {
+ if (itt->getPriority()>highestP)
+ {
+ targetToken = itt;
+ highestP=itt->getPriority();
+ }
+ }
+ }
+
+ if ( targetToken->getOperator() )
+ {
+ // Find the arg(s) for this operator.
+ list<Token>::iterator leftArg=targetToken, rightArg=leftArg;
+
+ stringstream argstr(targetToken->getArgumentPattern());
+ char thisArg;
+ bool searching;
+
+ while (argstr >> thisArg)
+ {
+ switch (thisArg) {
+ case 'R':
+ searching = true;
+
+ while (searching)
+ {
+ if (rightArg==tList.end())// TODO throw exception
+ cout << "Mistake, no right arg for " << targetToken->getValue() << endl;
+ else
+ rightArg++;
+
+ searching = (rightArg->getUsed());
+ }
+
+ break;
+
+ case 'L':
+
+ // Resolve left arg
+ searching=true;
+
+ while (searching)
+ {
+ if (leftArg == tList.begin()) // TODO throw
+ cout << "Mistake - no right argument for operator?!" << endl;
+ else
+ leftArg--;
+
+ searching = (leftArg->getUsed());
+ }
+
+ break;
+ } // end of argumentPattern cases
+ } // done processing argument list
+
+
+ if (targetToken->getArgumentPattern()=="RL")
+ {
+ ExpNode *opNode =
+ new BinOpNode(targetToken->getValue(),leftArg->getNode(), rightArg->getNode());
+ targetToken->setNode(opNode);
+ eList.push_back(opNode);
+
+ targetToken->setResolved(true);
+ root = targetToken->getNode();
+
+ leftArg->setUsed();
+ rightArg->setUsed();
+ }
+
+ if (targetToken->getArgumentPattern()=="R")
+ {
+ ExpNode *opNode =
+ new FuncOpNode(targetToken->getValue(),rightArg->getNode());
+ targetToken->setNode(opNode);
+
+ eList.push_back(opNode);
+
+ targetToken->setResolved(true);
+ root = targetToken->getNode();
+
+ rightArg->setUsed();
+ }
+
+ } // If this is an operator
+
+ // Are we done yet?
+ totalResolved = countResolvedTokens();
+ }
+
+ } // end buildExpressionTree
+
+
+ void Expression::set(const std::string name, double value)
+ {
+ using namespace std;
+
+ std::list<ExpNode *>::iterator i;
+ int t;
+
+ for (t=0, i=eList.begin(); i!=eList.end(); t++, i++)
+ {
+ VarNode *vnode = dynamic_cast<VarNode *> (*i);
+ if (vnode!=0)
+ {
+ if (vnode->name == name)
+ vnode->setValue(value);
+ }
+ }
+ }
+
+
+} // end namespace gpstk
+
diff --git a/dev/apps/qa/Expression.hpp b/dev/apps/qa/Expression.hpp
new file mode 100644
index 0000000..2c9171c
--- /dev/null
+++ b/dev/apps/qa/Expression.hpp
@@ -0,0 +1,245 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file Expression.hpp
+ * Provides ability to resolve mathematical functions at runtime.
+ * Class declarations.
+ */
+
+#ifndef EXPRESSION__HPP
+#define EXPRESSION__HPP
+
+#include <iostream>
+#include <string>
+#include <list>
+#include <map>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup math */
+ //@{
+
+ /**
+ * This class provides the ability to resolve general mathematical
+ * expressions at run time. The goal is to allow the end user the
+ * ability to specify arbitrary observation transformations.
+ *
+ * The expression is input as a string in the constructor of the class.
+ * The expression is first broken up into tokens. Those tokens are
+ * prioritized according to operator precedence and the number of
+ * parentheses surrounding them. This list of prioritized combinations
+ * is then converted into a 'classic" binary expression tree. All this
+ * happens during construction, hidden to the user.
+ *
+ * The design of the expression node classes is based on
+ * material by David Eck and Scotty Orr found at
+ *
+ * http://math.hws.edu/orr/s04/cpsc225/btrees/index.html
+ *
+ * After the expression is instantiated, it can be evaluated. If the
+ * expression contains variables, those must be set using the set
+ * operation for the expression to successfully evaluate.
+ *
+ */
+
+ class Expression
+ {
+ public:
+
+ NEW_EXCEPTION_CLASS(ExpressionException, gpstk::Exception);
+
+ // Represents a node of any type in an expression tree.
+ class ExpNode {
+ public:
+
+ virtual ~ExpNode() {}
+
+ // Compute and return the numerical value of this node
+ virtual double getValue()
+ throw (gpstk::Expression::ExpressionException) =0;
+
+
+ // Write out this node to a stream
+ virtual std::ostream& print(std::ostream& ostr) =0;
+
+ }; // end class ExpNode
+
+
+ // Represents a node that holds a number.
+ class ConstNode : public ExpNode {
+ public:
+ // Constructor. Create a node to hold val.
+ ConstNode( double theNum ): number(theNum) {}
+
+ double getValue() throw (gpstk::Expression::ExpressionException)
+ { return number; }
+
+ std::ostream& print(std::ostream& ostr) {
+ ostr << number;
+ return ostr;
+ }
+
+ double number; // The number in the node.
+ }; // end class ConstNode
+
+ // Represents a node that holds a variable
+ class VarNode : public ExpNode {
+ public:
+ // Constructor.
+
+ VarNode(std::string theName ): name(theName), hasValue(false)
+ {}
+
+ double getValue() throw (gpstk::Expression::ExpressionException);
+
+ std::ostream& print(std::ostream& ostr) {
+ ostr << name;
+ return ostr;
+ }
+
+ std::string name; // The name of the varaible
+ bool hasValue;
+
+ void setValue(double newValue);
+
+ private:
+ double value;
+
+
+ }; // end class VarNode
+
+ // Represents a node that holds an operator.
+ class BinOpNode : public ExpNode {
+ public:
+
+ // Constructor. Create a node to hold the given data.
+ BinOpNode( const std::string& theOp, ExpNode *theLeft, ExpNode *theRight ):
+ op(theOp), left(theLeft), right(theRight){}
+
+ double getValue()
+ throw (gpstk::Expression::ExpressionException);
+
+ std::ostream& print(std::ostream& ostr);
+
+ std::string op; // The operator.
+ ExpNode *left; // The left operand.
+ ExpNode *right; // The right operand.
+
+ }; // end class BinOpNode
+
+ // Represents a node that holds a function of a signle variable
+ class FuncOpNode : public ExpNode {
+ public:
+
+ // Constructor. Create a node to hold the given data.
+ FuncOpNode( const std::string& theOp, ExpNode *theRight ):
+ op(theOp), right(theRight){}
+
+ double getValue()
+ throw (gpstk::Expression::ExpressionException);
+
+ std::ostream& print(std::ostream& ostr);
+
+ std::string op; // The operator.
+ ExpNode *right; // The right operand.
+
+ }; // end class FuncOpNode
+
+ // This class is used internally, during construction of an Expression,
+ // to generate ExpNodes.
+ class Token
+ {
+ public:
+
+ Token(std::string value, int relPriority,
+ bool isOperator);
+
+ std::string getValue(void) {return value;}
+
+ int getPriority(void) {return priority;}
+
+ void setUsed(void) {used=true;}
+ bool getUsed(void) {return used;}
+
+ ExpNode * getNode(void) {return expNode;}
+ void setNode(ExpNode *newNode) {expNode = newNode; }
+
+ void setResolved(bool value) {resolved=value;}
+ bool getResolved(void) {return resolved;}
+
+ bool getOperator(void) {return isOperator;}
+ void setOperator(bool value) {isOperator = value;}
+
+ std::string getArgumentPattern(void) {return argumentPattern;}
+ void setArgumentPattern(std::string value) {argumentPattern = value;}
+
+ void print(std::ostream& ostr);
+
+ private:
+ std::string value;
+ bool isOperator;
+ bool resolved;
+
+ int priority;
+ ExpNode *expNode;
+ bool used; // has the node of this token been used (linked to?)
+
+ std::string argumentPattern;
+ };
+
+ /**
+ * Constructor.
+ * @param str Expression to be evaluated.
+ */
+ Expression(const std::string& str);
+
+ /// Destructor
+ ~Expression(void);
+
+ /**
+ * Sets a variable in the expression to the input value.
+ * All instances of the variable are set to this value.
+ * This is required before an expression can be evaluated, if
+ * the expression contains variables.
+ * @param name Name of the variable to set
+ * @param name Value to set the variable to.
+ */
+ void set(const std::string name, double value);
+ void set(const char* name, double value)
+ { set (std::string(name),value); }
+
+ /**
+ * Returns the numerical value of the expression. Note that
+ * if the expression contains variables, those variables must
+ * be set.
+ */
+ double evaluate(void) throw (gpstk::Expression::ExpressionException)
+ { return root->getValue(); }
+
+ /**
+ * Writes the expression out to a stream.
+ */
+ void print(std::ostream& ostr) {root->print(ostr);}
+
+ private:
+
+ void tokenize(const std::string& str);
+ void buildExpressionTree(void);
+
+ int countResolvedTokens(void);
+
+ std::map<std::string,int> operatorMap;
+ std::map<std::string,std::string> argumentPatternMap;
+
+ std::list<Token> tList;
+ std::list<ExpNode *> eList;
+ ExpNode *root;
+ }; // End class expression
+
+
+} // End namespace gpstk
+
+#endif // EXPRESSION_HPP
diff --git a/dev/apps/qa/Jamfile b/dev/apps/qa/Jamfile
new file mode 100644
index 0000000..4bbf767
--- /dev/null
+++ b/dev/apps/qa/Jamfile
@@ -0,0 +1,8 @@
+SubDir TOP apps qa ;
+
+GPSLinkLibraries obsrip testexpr : gpstk ;
+BonkForte ; # bleah.
+
+GPSMain obsrip : obsrip.cpp LinearCombination.cpp ;
+GPSMain testexpr : testExpression.cpp Expression.cpp ;
+
diff --git a/dev/apps/qa/LinearCombination.cpp b/dev/apps/qa/LinearCombination.cpp
new file mode 100644
index 0000000..83cf90b
--- /dev/null
+++ b/dev/apps/qa/LinearCombination.cpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file LinearCombination.cpp
+ * Interprets an expression of linear combinations of RINEX observables.
+ * Class definitions.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iomanip>
+#include <fstream>
+#include <string>
+#include <map>
+
+#include "LinearCombination.hpp"
+
+namespace gpstk
+{
+
+ LinearCombination::LinearCombination(const std::string& expr)
+ {
+ }
+
+ LinearCombination::~LinearCombination(void)
+ {
+ }
+
+ EpochCombination LinearCombination::evaluate(const RinexObsData& rod)
+ {
+ EpochCombination result;
+
+ RinexObsData::RinexSatMap::const_iterator it;
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ RinexObsData::RinexObsTypeMap otmap = it->second;
+ RinexObsData::RinexObsTypeMap::const_iterator
+ itObs;
+
+ std::map<RinexObsHeader::RinexObsType, double>::iterator itCoeff;
+ double sum=0;
+
+ for (itCoeff=coeffList.begin(); itCoeff!=coeffList.end(); itCoeff++)
+ {
+ bool valid= ((itObs=otmap.find(itCoeff->first))!=otmap.end());
+ sum += itObs->second.data * itCoeff->second;
+ }
+
+ result[it->first] = sum;
+
+ }
+
+
+ return (result);
+ }
+
+
+} // namespace gpstk
+
diff --git a/dev/apps/qa/LinearCombination.hpp b/dev/apps/qa/LinearCombination.hpp
new file mode 100644
index 0000000..d0e2f49
--- /dev/null
+++ b/dev/apps/qa/LinearCombination.hpp
@@ -0,0 +1,100 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file LinearCombination.hpp
+ * Interprets an expression of linear combinations of RINEX observables.
+ * Class declarations.
+ */
+
+#ifndef GPSTK_LINEAR_COMBINATION_HPP
+#define GPSTK_LINEAR_COMBINATION_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <ostream>
+#include <fstream>
+#include <string>
+#include <map>
+
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "Exception.hpp"
+#include "DayTime.hpp"
+
+namespace gpstk
+{
+ /** @defgroup MeasurementQuality */
+ //@{
+
+ typedef std::map<SatID,double> EpochCombination;
+
+ class LinearCombination
+ {
+ public:
+
+ /// Constructor
+ LinearCombination(const std::string& expression );
+
+ /// Destructor
+ virtual ~LinearCombination(void);
+
+ /**
+ * Applies the linear combination to an epoch's worth of observations.
+ */
+ EpochCombination evaluate(const RinexObsData& rod);
+
+ void addCoefficient(RinexObsHeader::RinexObsType index,
+ double coefficient)
+ {
+ coeffList[index]=coefficient;
+ };
+
+ protected:
+
+ private:
+
+ std::map<RinexObsHeader::RinexObsType, double> coeffList;
+
+ }; // end class LinearCombination
+
+ //@}
+
+} // end namespace gpstk
+
+#endif // GPSTK_LINEAR_COMBINATION_HPP
diff --git a/dev/apps/qa/Makefile.am b/dev/apps/qa/Makefile.am
new file mode 100644
index 0000000..38341eb
--- /dev/null
+++ b/dev/apps/qa/Makefile.am
@@ -0,0 +1,8 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = obsrip testexpr
+
+obsrip_SOURCES = obsrip.cpp LinearCombination.cpp
+testexpr_SOURCES = testExpression.cpp Expression.cpp
diff --git a/dev/apps/qa/obsrip.cpp b/dev/apps/qa/obsrip.cpp
new file mode 100644
index 0000000..b63d8ec
--- /dev/null
+++ b/dev/apps/qa/obsrip.cpp
@@ -0,0 +1,45 @@
+#include <iostream>
+#include "LinearCombination.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ if (argc !=2)
+ {
+ cerr << "Usage: " << endl;
+ cerr << " " << argv[0] << " <RINEX obs filename> " << endl;
+ exit(-1);
+ }
+
+ RinexObsStream ros(argv[1]);
+ RinexObsData rod;
+
+ while (ros >> rod)
+ {
+
+ LinearCombination lc1("P1-P2");
+
+ lc1.addCoefficient(RinexObsHeader::P1, 1);
+ lc1.addCoefficient(RinexObsHeader::P2, -1);
+
+ EpochCombination c=lc1.evaluate(rod);
+
+ RinexObsData::RinexSatMap::const_iterator it;
+
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ RinexObsData::RinexObsTypeMap otmap;
+
+ cout << rod.time.printf("%F %g ");
+ cout << it->first << " ";
+ cout << setprecision(5) << c[it->first];
+ cout << endl;
+ }
+
+ } // Loop through observations
+
+
+ exit(0);
+}
diff --git a/dev/apps/receiver/AshtechMessage.cpp b/dev/apps/receiver/AshtechMessage.cpp
new file mode 100644
index 0000000..8b32bcf
--- /dev/null
+++ b/dev/apps/receiver/AshtechMessage.cpp
@@ -0,0 +1,434 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file AshtechMessage.cpp
+ * Containers for Ashtech data, conversions to RINEX - definitions.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <string>
+#include <iostream>
+#include <iomanip>
+#include <string.h>
+
+#include "BinUtils.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "EngEphemeris.hpp"
+#include "RinexObsHeader.hpp"
+#include "icd_200_constants.hpp"
+#include "AshtechMessage.hpp"
+
+static bool debug=false;
+
+namespace gpstk
+{
+
+ static const double CFF=C_GPS_M/OSC_FREQ;
+ static const double wl1=CFF/L1_MULT;
+ static const double wl2=CFF/L2_MULT;
+
+ AshtechMessage::AshtechMessage(const std::string& ibuff, ObsSource src,
+ ObsFormat fmt)
+ : msgSource(src), msgFormat(fmt), buffer(ibuff)
+ {
+ using namespace std;
+
+ // Determine the type of observation
+ string label=buffer.substr(0,3);
+ if (label=="MCA") msgType = MCA;
+ if (label=="MCL") msgType = MCL;
+ if (label=="MP1") msgType = MP1;
+ if (label=="MP2") msgType = MP2;
+ if (label=="MPC") msgType = MPC;
+ if (label=="PBN") msgType = PBEN;
+ if (label=="SNV") msgType = SNAV;
+ if (label=="EPB") msgType = EPB;
+ if (label=="SAL") msgType = SALM;
+ if (label=="ALB") msgType = ALB;
+ if (label=="ION") msgType = ION;
+ }
+
+ bool AshtechMessage::isObs(void) const
+ {
+ return ( (msgType==MCA) || (msgType==MCL) || (msgType==MP1) ||
+ (msgType==MP2) || (msgType==MPC) );
+ }
+
+ int AshtechMessage::getSequence(void) const
+ {
+ int result=-1;
+
+ if ((msgType == MPC) && (msgFormat == ASCII))
+ {
+ result=
+ StringUtils::asInt(StringUtils::word(buffer,1,','));
+ }
+
+ return result;
+ }
+
+ int AshtechMessage::getPRN(void) const
+ {
+ int result=-1;
+
+ if ((msgType == MPC) && (msgFormat == ASCII))
+ {
+ result=
+ StringUtils::asInt(StringUtils::word(buffer,3,','));
+ }
+
+ if (msgType==EPB)
+ {
+ result=StringUtils::asInt(buffer.substr(4,5));
+ }
+
+ return result;
+ }
+
+ int AshtechMessage::getTracker(void) const
+ {
+ int result=-1;
+
+ if ((msgType == MPC) && (msgFormat == ASCII))
+ {
+ result=
+ StringUtils::asInt(StringUtils::word(buffer,6,','));
+ }
+
+ return result;
+ }
+
+ DayTime AshtechMessage::getEpoch(const DayTime& prevTime) const
+ {
+ short oldweek = prevTime.GPSfullweek();
+ short newweek = oldweek;
+
+ double oldsow = prevTime.GPSsecond();
+ double newsow;
+
+ DayTime thisTime(prevTime);
+
+ if ((msgType == PBEN)&&(msgFormat == ASCII))
+ {
+ newsow =
+ StringUtils::asDouble(StringUtils::word(buffer,1,','));
+
+ // A test for week rollover
+ if ((newsow+6*DayTime::SEC_DAY)<oldsow)
+ newweek++;
+
+ thisTime = DayTime(newweek, newsow);
+ }
+
+ if ((msgType == MPC)&&(msgFormat == ASCII))
+ {
+ int seqDiff = getSequence() - calculateSequenceNumber(prevTime);
+ // Nominally seqDiff should be small. Check if there is a rollover
+ // between the two inputs sequences numbers.
+ while (seqDiff > (1800*50/2))
+ seqDiff -= 1800*50;
+
+ thisTime.addMilliSeconds(50 * seqDiff);
+ }
+
+ return thisTime;
+ }
+
+ float AshtechMessage::engSNR(short value, float equivalentNoiseBW)
+ {
+ const int n = 20000; // number of samples in 1 ms
+ const float m = 4.14; // magnitude of the carrier estimate;
+
+ const float d = gpstk::PI/(n*n*m*m*4.0);
+ float snr;
+
+ if (value)
+ {
+ snr = exp(((float)value)/25.0);
+ snr = snr*snr*equivalentNoiseBW*d;
+ snr = 10 * log10(snr);
+ }
+ else
+ snr = 0;
+
+ return snr;
+ }
+
+
+ RinexObsData
+ AshtechMessage::convertToRinexObsData(
+ const std::list<AshtechMessage> obsMsgs,
+ const DayTime& recentEpoch)
+ throw(gpstk::Exception)
+ {
+ RinexObsData rod;
+ // TODO: Should check to make sure this is really a PBEN
+ DayTime epoch;
+ std::list<AshtechMessage>::const_iterator first = obsMsgs.begin();
+ epoch = (*first).getEpoch(recentEpoch);
+
+ rod.time = epoch;
+ rod.numSvs = 0;
+ rod.epochFlag = 0;
+
+ std::list<AshtechMessage>::const_iterator i;
+ for (i=obsMsgs.begin(); i!=obsMsgs.end(); i++)
+ {
+ if ((i->msgType == MPC)&&(i->msgFormat == ASCII))
+ {
+
+ int prn = StringUtils::asInt( StringUtils::word(i->buffer,3,','));
+ double C1 = StringUtils::asDouble( StringUtils::word(i->buffer,13,',')) * C_GPS_M / 1000.0;
+ double P1 = StringUtils::asDouble( StringUtils::word(i->buffer,23,',')) * C_GPS_M / 1000.0;
+ double P2 = StringUtils::asDouble( StringUtils::word(i->buffer,33,',')) * C_GPS_M / 1000.0;
+ double L1 = StringUtils::asDouble( StringUtils::word(i->buffer,22,','));
+ double L2 = StringUtils::asDouble( StringUtils::word(i->buffer,32,','));
+ double D1 = StringUtils::asDouble( StringUtils::word(i->buffer,24,','));
+ double D2 = StringUtils::asDouble( StringUtils::word(i->buffer,34,','));
+ int snrL1 = StringUtils::asInt( StringUtils::word(i->buffer,20,','));
+ int snrL2 = StringUtils::asInt( StringUtils::word(i->buffer,30,','));
+
+ int warning = StringUtils::asInt( StringUtils::word(i->buffer,27,','));
+
+ double S1 = engSNR(snrL1, 9.21e6);
+ double S2 = engSNR(snrL2, 9.21e6);
+
+ // Debug check
+ // std::cout << prn << " " << D1 << " " << D2 << " " << L1 << " " << L2 << std::endl;
+ // exit(0);
+
+ SatID thisSat(prn, SatID::systemGPS);
+ RinexObsData::RinexObsTypeMap datamap;
+
+ datamap[RinexObsHeader::C1].data = C1;
+ datamap[RinexObsHeader::P1].data = P1;
+ datamap[RinexObsHeader::P2].data = P2;
+ datamap[RinexObsHeader::L1].data = L1;
+ datamap[RinexObsHeader::L2].data = L2;
+ datamap[RinexObsHeader::D1].data = -D1; // Note sign convention for Doppler is opposite that of RINEX.
+ datamap[RinexObsHeader::D2].data = -D2;
+ datamap[RinexObsHeader::S1].data = S1;
+ datamap[RinexObsHeader::S2].data = S2;
+
+ datamap[RinexObsHeader::L1].lli = 0;
+ datamap[RinexObsHeader::L2].lli = 0;
+ if (warning & 128)
+ {
+ datamap[RinexObsHeader::L1].lli = 1;
+ datamap[RinexObsHeader::L2].lli = 1;
+ }
+
+ datamap[RinexObsHeader::L1].ssi = mapSNRtoSSI(snrL1);
+ datamap[RinexObsHeader::L2].ssi = mapSNRtoSSI(snrL2);
+
+ rod.obs[thisSat]=datamap;
+ rod.numSvs++;
+ }
+
+ }
+
+ return rod;
+ }
+
+ int AshtechMessage::calculateSequenceNumber(const DayTime& t)
+ {
+ // TODO: Throw if not a MBEN
+ double secondsOfHour = t.minute()*60+t.second();
+ double secondsOfSequence = secondsOfHour;
+ while (secondsOfSequence >= 1800.)
+ secondsOfSequence -= 1800.;
+ double milliSecondsOfSequence = secondsOfSequence*1000.;
+ // There is sequence tick every 50 milliseconds
+ return (int)(milliSecondsOfSequence / 50.);
+ }
+
+ short AshtechMessage::mapSNRtoSSI(float snr)
+ {
+ if (snr>34) return 9;
+ if (snr>29) return 8;
+ if (snr>20) return 5;
+ if (snr>10) return 1;
+ return 0;
+ }
+
+ RinexNavData AshtechMessage::convertToRinexNavData(const AshtechMessage& msg, const DayTime& epoch)
+ {
+ // TODO: throw if not an EPB type
+ using namespace BinUtils;
+
+ int offset=5;
+ const char *dptr = msg.buffer.data();
+
+ EngEphemeris eph;
+ short PRN = StringUtils::asInt(msg.buffer.substr(4,2));
+
+ long subframe[30];
+
+ //using namespace std;
+
+ for (int i=0;i<30;i++)
+ {
+ subframe[i]=*((long *)(dptr+7+i*4));
+#if BYTE_ORDER == LITTLE_ENDIAN
+ BinUtils::twiddle(subframe[i]);
+#endif
+ // cout << "Word " << dec << i << ": 0x" << hex << subframe[i] << endl << flush << dec;
+ }
+
+// TODO: throw an exception if these calls fail
+ eph.addSubframe(subframe, epoch.GPSfullweek(), PRN, 0);
+ // cout << "sf1" << endl << flush;
+
+ eph.addSubframe(subframe+10, epoch.GPSfullweek(), PRN, 0);
+ // cout << "sf2" << endl << flush;
+
+ eph.addSubframe(subframe+20, epoch.GPSfullweek(), PRN, 0);
+ // cout << "sf3" << endl << flush;
+
+ // eph.dump(std::cout);
+
+ // exit(0);
+
+ return eph;
+ //return RinexNavData();
+ }
+
+ void AshtechMessage::updateNavHeader(const AshtechMessage& ionMsg, RinexNavHeader& hdr)
+ {
+ // TODO: the ION message interpreter is broken. Make it work. Then have the main programm
+ // regularly request an ION msg.
+
+
+ // TODO: Throw if not an ION type... hmm, need an ASSERT macro for types
+ using namespace BinUtils;
+ using namespace std;
+
+ // Offset between location in the buffer and the location defined in the
+ // Ashtech document ZFamily.pdf -- ZFamily GPS Receivers, Technical Ref. Manual, dated 2002
+ int offset=5;
+ const char *dptr = ionMsg.buffer.data();
+
+ // Alpha parameters of Klobuchar model-------------------------------------------------
+ float alpha0, alpha1, alpha2, alpha3;
+
+ memmove(&alpha0, dptr+offset+0, 4);
+ memmove(&alpha1, dptr+offset+4, 4);
+ memmove(&alpha2, dptr+offset+8, 4);
+ memmove(&alpha3, dptr+offset+12, 4);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+ twiddle(alpha0);
+ twiddle(alpha1);
+ twiddle(alpha2);
+ twiddle(alpha3);
+#endif
+
+ hdr.ionAlpha[0] = alpha0;
+ hdr.ionAlpha[1] = alpha1;
+ hdr.ionAlpha[2] = alpha2;
+ hdr.ionAlpha[3] = alpha3;
+
+ hdr.valid |= RinexNavHeader::ionAlphaValid;
+
+ // Beta parameters of Klobuchar model-------------------------------------------------
+ float beta0, beta1, beta2, beta3;
+
+ memmove(&beta0, dptr+offset+16, 4);
+ memmove(&beta1, dptr+offset+20, 4);
+ memmove(&beta2, dptr+offset+24, 4);
+ memmove(&beta3, dptr+offset+28, 4);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+ twiddle(beta0);
+ twiddle(beta1);
+ twiddle(beta2);
+ twiddle(beta3);
+#endif
+
+ hdr.ionBeta[0] = beta0;
+ hdr.ionBeta[1] = beta1;
+ hdr.ionBeta[2] = beta2;
+ hdr.ionBeta[3] = beta3;
+
+ hdr.valid |= RinexNavHeader::ionBetaValid;
+
+ // Ref time parameters of Klobuchar model-------------------------------------------------
+
+ double A0, A1;
+ long UTCseconds;
+ short UTCweek;
+
+ memmove(&A1, dptr+offset+32, 8);
+ memmove(&A0, dptr+offset+40, 8);
+ memmove(&UTCseconds, dptr+offset+48, 4);
+ memmove(&UTCweek, dptr+offset+52, 2);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+ twiddle(A1);
+ twiddle(A0);
+ twiddle(UTCseconds);
+ twiddle(UTCweek);
+#endif
+
+ hdr.A0 = A0;
+ hdr.A1 = A1;
+ hdr.UTCRefWeek = UTCweek;
+ hdr.UTCRefTime = UTCseconds;
+
+ hdr.valid |= RinexNavHeader::deltaUTCValid;
+
+ // Leap seconds --------------------------------------------------------------------------
+
+ short leapSeconds;
+
+ memmove(&leapSeconds, dptr+52, 2);
+
+#if BYTE_ORDER == LITTLE_ENDIAN
+ twiddle(leapSeconds);
+#endif
+
+ hdr.leapSeconds = leapSeconds;
+
+ hdr.valid |= RinexNavHeader::leapSecondsValid;
+
+ return;
+ }
+
+} // End namespace
diff --git a/dev/apps/receiver/AshtechMessage.hpp b/dev/apps/receiver/AshtechMessage.hpp
new file mode 100644
index 0000000..6a4761e
--- /dev/null
+++ b/dev/apps/receiver/AshtechMessage.hpp
@@ -0,0 +1,193 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file AshtechMessage.hpp
+ * Containers for Ashtech data, conversions to RINEX - declarations.
+ */
+
+#ifndef GPSTK_ASHTECH_MESSAGE_HPP
+#define GPSTK_ASHTECH_MESSAGE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <list>
+#include <ostream>
+#include "Exception.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexObsData.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup AshtechReceiver */
+ //@{
+
+ /// Read Ashtech binary and ASCII messages and parse into Rinex.
+ /// Ref. Ashtech XII GPS Receiver Operating Manual
+
+ class AshtechMessage
+ {
+ public:
+
+ /// Types of observations are categorized here
+ enum ObsType
+ {
+ UnknownType=0, ///< Unknown observation type
+ MCA, ///< CA only observation (not implemented)
+ MCL, ///< C/A and L2 codeless observations
+ MP1, ///< P code L1 only (not implemented)
+ MP2, ///< P code L2 only (not implemented)
+ MPC, ///< P code on L1 and L2
+ PBEN, ///< Navigation solution
+ SNAV, ///< Ephemeris data
+ EPB, ///< Ephemeris data
+ SALM, ///< Almanac data
+ ALB, ///< Almanac data
+ ION ///< Ionosphere model and UTC offset data
+ };
+
+ /// The source of a message affects its format
+ enum ObsSource
+ {
+ UnknownSource=0, ///< Unknown source of observations
+ DATAFILE, ///< This data comes from a B- or E- file.
+ STREAM ///< This data comes from the serial port.
+ };
+
+ /// Some messages can be formatted in ASCII or in binary.
+ enum ObsFormat
+ {
+ UnknownFormat=0, ///< Unknown format of observations
+ BINARY, ///< This data is packed, and little endian
+ ASCII ///< This data is comma separated
+ };
+
+ /// Default constructor
+ AshtechMessage(void) : msgType(UnknownType),
+ msgSource(UnknownSource),
+ msgFormat(UnknownFormat)
+ {}
+
+ /// Created from a input stream of characters.
+ AshtechMessage(const std::string& ibuff, ObsSource src,
+ ObsFormat fmt);
+
+ /// Destructor
+ virtual ~AshtechMessage(void) {}
+
+ /// Access the type of this message
+ ObsType getType(void) const {return msgType;}
+
+ /// Access the epoch associated with the message
+ DayTime getEpoch(const DayTime& priorEpoch) const;
+
+ /// Access the sequence number (if applicable)
+ int getSequence(void) const;
+
+ /// Access the PRN number (if applicable)
+ int getPRN(void) const;
+
+ /// Access the tracker number (if applicable)
+ int getTracker(void) const;
+
+ /// True if this record is an ephemeris record
+ bool isAlm(void) const;
+
+ /// True if this record is an ephemeris record
+ bool isEph(void) const;
+
+ /// True if this record is observation data
+ bool isObs(void) const;
+
+ /// True if this record is has ionosphere and time offset data
+ bool isIon(void) const
+ { return (msgType==ION); }
+
+ int getSize(void) const
+ { return buffer.size();}
+
+ /// Dump the contents of the record to the ostream \c str.
+// virtual void dump(std::ostream& str) const;
+
+ /**
+ * Convert a list of AshtechMessages into a gpstk::RinexObsData. One record must
+ * be a PBEN record.
+ * @throw if the record is invalid or not an observation (isObs()==false)
+ */
+ static RinexObsData
+ convertToRinexObsData(
+ const std::list<AshtechMessage> obsMsgs,
+ const DayTime& recentEpoch)
+ throw(gpstk::Exception);
+
+ static int calculateSequenceNumber(const DayTime& t);
+
+ static RinexNavData convertToRinexNavData(const AshtechMessage& msg, const DayTime& epoch=DayTime());
+
+ static void updateNavHeader(const AshtechMessage& ionMsg, RinexNavHeader& hdr);
+ /**
+ * Maps SNR to SSI.
+ * The RINEX 2.1 standard allows us to choose whatever mapping is
+ * appropriate, so long as "9" is "strongest" and "5" is usable.
+ */
+ static short mapSNRtoSSI(float snrL1);
+
+ protected:
+
+ private:
+
+ /// private data members
+ std::string buffer;
+
+ ObsSource msgSource; ///< Does this come from a data file or was it streamed off of a serial port?
+ ObsFormat msgFormat; ///< Is this an ASCII or a binary message?
+ /// public data members
+ ObsType msgType; ///< What kind of observations are in this message?
+
+ /// Epoch time - may need to be set by the user
+ DayTime time;
+
+ static float engSNR(short cnt, float nominalbw);
+
+ }; // end class AshtechData
+
+ //@}
+
+} // end namespace gpstk
+
+#endif // GPSTK_ASHTECH_MESSAGE_HPP
diff --git a/dev/apps/receiver/Jamfile b/dev/apps/receiver/Jamfile
new file mode 100644
index 0000000..58ec545
--- /dev/null
+++ b/dev/apps/receiver/Jamfile
@@ -0,0 +1,13 @@
+# $Id$
+
+SubDir TOP apps receiver ;
+
+GPSLinkLibraries rtAshtech rfw ash2mdp : gpstk rxio ;
+
+BonkForte ; # bleah.
+
+GPSMain rtAshtech : AshtechMessage.cpp rtAshtech.cpp ScreenControl.cpp ;
+
+GPSMain rfw : rfw.cpp ;
+
+GPSMain ash2mdp : ash2mdp.cpp ;
diff --git a/dev/apps/receiver/Makefile.am b/dev/apps/receiver/Makefile.am
new file mode 100644
index 0000000..e955312
--- /dev/null
+++ b/dev/apps/receiver/Makefile.am
@@ -0,0 +1,9 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src -I$(srcdir)/../../lib/rxio
+LDADD = ../../src/libgpstk.la ../../lib/rxio/librxio.la
+
+bin_PROGRAMS = rfw rtAshtech ash2mdp
+
+rfw_SOURCES = rfw.cpp
+rtAshtech_SOURCES = AshtechMessage.cpp rtAshtech.cpp ScreenControl.cpp
+ash2mdp_SOURCES = ash2mdp.cpp
diff --git a/dev/apps/receiver/ScreenControl.cpp b/dev/apps/receiver/ScreenControl.cpp
new file mode 100644
index 0000000..a70eed4
--- /dev/null
+++ b/dev/apps/receiver/ScreenControl.cpp
@@ -0,0 +1,19 @@
+#include "ScreenControl.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+
+ void clearScreen(void)
+ {
+ cout << "[H[J";
+ }
+
+ void printTitle(void)
+ {
+ cout << "GPSTk Real-Time Data Collection for the Ashtech Z-XII ver. 1.0" << endl;
+ }
+
+} // namespace gpstk
diff --git a/dev/apps/receiver/ScreenControl.hpp b/dev/apps/receiver/ScreenControl.hpp
new file mode 100644
index 0000000..ac1a846
--- /dev/null
+++ b/dev/apps/receiver/ScreenControl.hpp
@@ -0,0 +1,20 @@
+#pragma ident "$Id$"
+
+
+#ifndef GPSTK_SCREEN_CONTROL_HPP
+#define GPSTK_SCREEN_CONTROL_HPP
+
+/**
+ * @file ScreenControl.hpp
+ * Clearing, updating and printing to a display.
+ */
+
+#include "DayTime.hpp"
+
+namespace gpstk
+{
+ void clearScreen(void);
+ void printTitle(void);
+} // end namespace gpstk
+
+#endif //GPSTK_SCREEN_CONTROL_HPP
diff --git a/dev/apps/receiver/TODO.txt b/dev/apps/receiver/TODO.txt
new file mode 100644
index 0000000..8524c47
--- /dev/null
+++ b/dev/apps/receiver/TODO.txt
@@ -0,0 +1,23 @@
+Lots of changes should be made to this code. Here are the big ones:
+
+2. Add CRC checking.
+
+3. Port this to Windows. This should only require adding a new serial port class
+ and finding a terminal call to clear the screen. But of course
+ there could be compiler issues.
+
+4. Add code to understand binary MPC and PBENs.
+
+5. Consider adding code to configure the receiver.
+
+6. Consider adding a config file.
+
+8. Add text output for nav files. One row per ephemeris, one column per element. For lack of any
+ better idea, use the column definitions from the Strang and Borre GPS book.
+
+Done:
+1. The Rolling* classes are clearly copy and paste... but not entirely.
+ Collapse these into one flexible template.
+
+7. It *should* be easy to accommodate reprocessing the raw file, pretending it's a serial port.
+
diff --git a/dev/apps/receiver/ash2mdp.cpp b/dev/apps/receiver/ash2mdp.cpp
new file mode 100644
index 0000000..fab1fea
--- /dev/null
+++ b/dev/apps/receiver/ash2mdp.cpp
@@ -0,0 +1,273 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <string>
+#include <sstream>
+
+#include <list>
+#include <map>
+
+#include "DayTime.hpp"
+#include "GPSWeekSecond.hpp"
+#include "TimeConstants.hpp"
+#include "Exception.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+#include "DeviceStream.hpp"
+
+#include "StringUtils.hpp"
+#include "LoopedFramework.hpp"
+
+#include "MDPStream.hpp"
+#include "MDPNavSubframe.hpp"
+#include "MDPObsEpoch.hpp"
+
+#include "AshtechStream.hpp"
+#include "AshtechMBEN.hpp"
+#include "AshtechPBEN.hpp"
+#include "AshtechALB.hpp"
+#include "AshtechEPB.hpp"
+
+#include "ObsUtils.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+template<class IType, class OType>
+class DeviceFramework : public LoopedFramework
+{
+public:
+ DeviceFramework(const string& applName, const string& applDesc)
+ throw()
+ : LoopedFramework(applName, applDesc),
+ inputOption('i', "input", "Where to take the input from. Can be a "
+ "regular file, a serial device (ser:/dev/ttyS0), a tcp "
+ "port (tcp:hostname:port), or standard input. The default "
+ " is stdin."),
+ outputOption('o', "output", "Where to send the output. Same options "
+ "as input. The default is stdout.")
+ {
+ inputOption.setMaxCount(1);
+ outputOption.setMaxCount(1);
+ }
+
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ if (!LoopedFramework::initialize(argc,argv))
+ return false;
+
+ string ifn;
+ if (inputOption.getCount())
+ ifn = inputOption.getValue()[0];
+ input.open(ifn, ios::in);
+
+ string ofn;
+ if (outputOption.getCount())
+ ofn = outputOption.getValue()[0];
+ output.open(ofn, ios::out);
+
+ if (input && output)
+ {
+ if (debugLevel)
+ cout << "Sending output to " << output.getTarget() << endl
+ << "Reading input from " << input.getTarget() << endl;
+ return true;
+ }
+ else
+ return false;
+ }
+
+protected:
+ DeviceStream<IType> input;
+ DeviceStream<OType> output;
+
+private:
+ CommandOptionWithAnyArg inputOption, outputOption;
+};
+
+typedef DeviceFramework<AshtechStream, MDPStream> AshDevFrame;
+
+class Ashtech2MDP : public DeviceFramework<AshtechStream, MDPStream>
+{
+public:
+ Ashtech2MDP(const string& applName)
+ throw()
+ : DeviceFramework<AshtechStream,MDPStream>(applName, "Converts Ashtech Z(Y)-12 data to MDP.")
+ {}
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ CommandOptionWithNumberArg weekOption(
+ 'w', "week",
+ "The full GPS week in which this data starts");
+
+ if (!DeviceFramework<AshtechStream, MDPStream>::initialize(argc,argv))
+ return false;
+
+ DayTime now;
+ time.week = now.GPSfullweek();
+ time.sow = now.GPSsecond();
+
+ if (weekOption.getCount())
+ {
+ time.week = StringUtils::asInt(weekOption.getValue()[0]);
+ time.sow = HALFWEEK;
+ }
+
+
+ AshtechData::debugLevel = debugLevel;
+ if (debugLevel>3)
+ AshtechData::hexDump = true;
+
+ if (debugLevel>3)
+ MDPHeader::hexDump = true;
+
+ if (debugLevel)
+ cout << "Initial time: " << time.printf("%F %.1g") << endl;
+
+ return true;
+ }
+
+protected:
+ virtual void spinUp()
+ {}
+
+ virtual void process()
+ {
+ bool firstPBEN = false;
+
+ AshtechData hdr;
+ AshtechPBEN pben;
+ AshtechMBEN mben;
+ AshtechEPB epb;
+ AshtechALB alb;
+ unsigned short fc=0;
+ vector<MDPObsEpoch> hint(33);
+ short svCount = 0;
+
+ // allow for file stream exceptions to be thrown
+ input.exceptions(std::fstream::failbit);
+
+ while (input >> hdr)
+ {
+ if (pben.checkId(hdr.id) && (input >> pben) && pben)
+ {
+ if (debugLevel>1)
+ pben.dump(cout);
+
+ double dt = pben.sow - time.sow;
+ time.sow = pben.sow;
+ svCount = 0;
+
+ if (std::abs(dt) > HALFWEEK && !firstPBEN)
+ time.week++;
+
+ firstPBEN = true;
+
+ MDPPVTSolution pvt = makeMDPPVTSolution(pben, time.week);
+ pvt.freshnessCount = fc++;
+ output << pvt << flush;
+ if (debugLevel>1)
+ pvt.dump(cout);
+ }
+ else if (mben.checkId(hdr.id) && (input >> mben) && mben)
+ {
+ if (debugLevel>1)
+ mben.dump(cout);
+ if (svCount==0)
+ svCount = mben.left+1;
+
+ if (firstPBEN == true)
+ {
+ hint[mben.svprn].time = DayTime(time.week, time.sow);
+ hint[mben.svprn].numSVs = svCount;
+ MDPObsEpoch moe = makeMDPObsEpoch(mben, hint[mben.svprn]);
+ moe.freshnessCount = fc++;
+ hint[mben.svprn] = moe;
+ output << moe << flush;
+ if (debugLevel>1)
+ moe.dump(cout);
+ }
+ }
+ else if (epb.checkId(hdr.id) && (input >> epb))
+ {
+ if (debugLevel>1)
+ epb.dump(cout);
+ MDPNavSubframe sf[3];
+
+ }
+ else if (alb.checkId(hdr.id) && (input >> alb))
+ {
+ if (debugLevel>1)
+ alb.dump(cout);
+ MDPNavSubframe sf;
+ }
+ }
+
+ timeToDie = true;
+ }
+
+ virtual void shutDown()
+ {}
+
+ GPSWeekSecond time;
+};
+
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ Ashtech2MDP crap(argv[0]);
+
+ if (!crap.initialize(argc, argv))
+ exit(0);
+
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
+
+
+
diff --git a/dev/apps/receiver/getUnixSerialInfo.cpp b/dev/apps/receiver/getUnixSerialInfo.cpp
new file mode 100644
index 0000000..e1f5b38
--- /dev/null
+++ b/dev/apps/receiver/getUnixSerialInfo.cpp
@@ -0,0 +1,24 @@
+#include <iostream>
+#include <iomanip>
+
+#include <fcntl.h> /* File control definitions */
+#include <termios.h>
+#include <unistd.h>
+
+using namespace std;
+
+int main(void)
+{
+ struct termios options;
+
+ int fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY);
+ tcgetattr(fd, &options);
+
+ cout << "c_iflag " << hex << options.c_iflag << endl;
+ cout << "c_oflag " << hex << options.c_oflag << endl;
+ cout << "c_cflag " << hex << options.c_cflag << endl;
+ cout << "c_cc[VMIN] " << options.c_cc[VMIN] << endl;
+ cout << "c_cc[VTIME] " << options.c_cc[VTIME] << endl;
+
+ return 0;
+}
diff --git a/dev/apps/receiver/rfw.cpp b/dev/apps/receiver/rfw.cpp
new file mode 100644
index 0000000..d47d162
--- /dev/null
+++ b/dev/apps/receiver/rfw.cpp
@@ -0,0 +1,156 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file reads a stream and writes it to file(s) with names derived from
+ system time.
+ */
+
+#include <fstream>
+
+#include <unistd.h>
+#include <fcntl.h> /* File control definitions */
+#include <errno.h> /* Error number definitions */
+#include <termios.h> /* POSIX terminal control definitions */
+
+#include <StringUtils.hpp>
+#include <LoopedFramework.hpp>
+#include <CommandOption.hpp>
+#include <TimeNamedFileStream.hpp>
+
+#include "DeviceStream.hpp"
+
+using namespace std;
+using namespace gpstk;
+class RollingFileWriter : public gpstk::BasicFramework
+{
+public:
+ RollingFileWriter(const std::string& applName) throw()
+ : BasicFramework(applName,
+ "Reads data from a stream and writes the data out to a TimeNamedFileStream."),
+ output("tmp%03j_%04Y.raw", std::ios::app|std::ios::out)
+ {}
+
+
+ bool initialize(int argc, char *argv[]) throw()
+ {
+ CommandOptionWithAnyArg inputOpt(
+ 'i', "input",
+ "Where to get the data from. Can be a regular file, a serial "
+ "device (ser:/dev/ttyS0), a tcp port (tcp:hostname:port), or "
+ "standard input. The default is just to take standard input.");
+
+ CommandOptionWithAnyArg outputSpecOpt(
+ 'o', "output",
+ "The file spec for writing the files.");
+
+ outputSpecOpt.setMaxCount(1);
+ inputOpt.setMaxCount(1);
+
+ if (!BasicFramework::initialize(argc,argv)) return false;
+
+ if (debugLevel)
+ cout << "debugLevel: " << debugLevel << endl
+ << "verboseLevel: " << verboseLevel << endl;
+
+ string fn;
+ if (inputOpt.getCount())
+ fn = inputOpt.getValue()[0];
+ input.open(fn, ios::in);
+
+ if (debugLevel)
+ cout << "Taking input from " << input.getTarget() << endl;
+
+
+ if (outputSpecOpt.getCount())
+ {
+ string spec = outputSpecOpt.getValue()[0];
+ output.setFilespec(spec);
+ }
+
+ output.debugLevel = debugLevel;
+
+ if (debugLevel)
+ cout << "Using " << output.getFilespec()
+ << " for output files" << endl;
+
+ return true;
+ }
+
+protected:
+ virtual void spinUp()
+ {}
+
+ virtual void process()
+ {
+ const size_t max_len=512;
+ char data[max_len];
+ while (input)
+ {
+ input.read(data, max_len);
+ output.updateFileName();
+ output.write(data, input.gcount());
+ output.flush();
+ }
+ }
+
+ virtual void shutDown()
+ {}
+
+private:
+ DeviceStream<std::ifstream> input;
+
+ TimeNamedFileStream<ofstream> output;
+};
+
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ RollingFileWriter crap(argv[0]);
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cout << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cout << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/receiver/rinex.nav.template b/dev/apps/receiver/rinex.nav.template
new file mode 100644
index 0000000..0a0edb5
--- /dev/null
+++ b/dev/apps/receiver/rinex.nav.template
@@ -0,0 +1,3 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+rtAshtech/GPSTk Dataflow Processing 03/09/2006 00:00:27 PGM / RUN BY / DATE
+ END OF HEADER
diff --git a/dev/apps/receiver/rinex.obs.template b/dev/apps/receiver/rinex.obs.template
new file mode 100644
index 0000000..615d929
--- /dev/null
+++ b/dev/apps/receiver/rinex.obs.template
@@ -0,0 +1,14 @@
+ 2.10 Observation GPS RINEX VERSION / TYPE
+rtAshtech/GPSTk UT Aerospace Dept. 03/31/2004 23:59:49 PGM / RUN BY / DATE
+Here is a comment. COMMENT
+UTWRW MARKER NAME
+1 MARKER NUMBER
+Nobody UT Aerospace Dept. OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+1 AshTech Geodetic 3 ANT # / TYPE
+ -740289.835 -5457071.7414 3207245.6211 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 0 WAVELENGTH FACT L1/2
+ 9 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ 2004 4 1 0 0 0.0000000 TIME OF FIRST OBS
+ END OF HEADER
diff --git a/dev/apps/receiver/rtAshtech.cpp b/dev/apps/receiver/rtAshtech.cpp
new file mode 100644
index 0000000..e6c675c
--- /dev/null
+++ b/dev/apps/receiver/rtAshtech.cpp
@@ -0,0 +1,502 @@
+#include <fstream>
+#include <string>
+#include <sstream>
+
+#include <list>
+#include <map>
+
+#include "DayTime.hpp"
+#include "Exception.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+#include "TimeNamedFileStream.hpp"
+#include "AshtechMessage.hpp"
+#include "ScreenControl.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "DeviceStream.hpp"
+#include <unistd.h>
+
+using namespace std;
+using namespace gpstk;
+
+bool saveLogMessages=true;
+list<string> logList;
+
+
+TimeNamedFileStream<ofstream> logFile;
+TimeNamedFileStream<ofstream> matlabObs;
+
+void log(const string& message)
+{
+ DayTime currentEpoch;
+ string entry = currentEpoch.printf(" %02m/%02d/%04Y %02H:%02M:%04.1f - ") +
+ message;
+ logList.push_back(entry);
+ if (saveLogMessages)
+ {
+ logFile.updateFileName();
+ logFile << entry << endl;
+ }
+}
+
+void matlabify(const RinexObsData& rod)
+{
+ RinexObsData::RinexSatMap::const_iterator i_sat;
+ RinexObsData::RinexObsTypeMap::const_iterator i_obs;
+
+ for (i_sat=rod.obs.begin(); i_sat!=rod.obs.end(); i_sat++)
+ {
+ if (matlabObs.updateFileName(rod.time))
+ log("Opened output file: " + matlabObs.getCurrentFilename());
+
+ short PRNID = i_sat->first.id;
+
+ i_obs = i_sat->second.find(RinexObsHeader::C1);
+ double C1 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::P1);
+ double P1 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::P2);
+ double P2 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::L1);
+ double L1 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::L2);
+ double L2 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::D1);
+ double D1 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::D2);
+ double D2 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::S1);
+ double S1 = i_obs->second.data;
+
+ i_obs = i_sat->second.find(RinexObsHeader::S2);
+ double S2 = i_obs->second.data;
+
+ using gpstk::StringUtils::asString;
+ matlabObs << rod.time.printf("%F %9.2g ") << " "
+ << asString(PRNID) << " "
+ << asString(C1,3) << " "
+ << asString(P1,3) << " "
+ << asString(P2,3) << " "
+ << asString(L1,3) << " "
+ << asString(L2,3) << " "
+ << asString(D1,3) << " "
+ << asString(D2,3) << " "
+ << asString(S1,1) << " "
+ << asString(S2,1)
+ << endl;
+ }
+
+ return;
+}
+
+void printLog(const int num2show=10)
+{
+ list<string>::iterator i = logList.end();
+ for (int k=0; k<num2show; k++)
+ if (i!=logList.begin()) i--;
+
+ cout << "Log Messages" << endl;
+ cout << "-----------------------------------------------------------------------------" << endl;
+
+ int lines2go=num2show;
+ for (;i!=logList.end();i++,lines2go--)
+ cout << (*i) << endl;
+ while ((lines2go--)>0) cout << endl;
+ cout << "-----------------------------------------------------------------------------" << endl;
+
+}
+
+RinexObsHeader defineObsHeader(void)
+{
+ using namespace std;
+ string hdrTemplateFile("rinex.obs.template");
+
+ RinexObsHeader hdr;
+
+ gpstk::RinexObsStream instrm(hdrTemplateFile.c_str(), ios::in);
+ if (instrm >> hdr)
+ log("Read obs header template: "+hdrTemplateFile);
+ else
+ log("Could not use obs header template from "+hdrTemplateFile);
+
+ return hdr;
+}
+
+RinexNavHeader defineNavHeader(void)
+{
+ using namespace std;
+ string hdrTemplateFile("rinex.nav.template");
+
+ RinexNavHeader hdr;
+
+ gpstk::RinexNavStream instrm(hdrTemplateFile.c_str(), ios::in);
+ if (instrm >> hdr)
+ log("Read nav header template: "+hdrTemplateFile);
+ else
+ log("Could not use nav header template from "+hdrTemplateFile);
+
+ return hdr;
+}
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+
+ logFile.open("ash%03j%02y.log");
+
+ // Define default variables here *********************************************
+ // TO DO: Read default variables from an initialization (say, .INI) file
+
+ bool verbose=false;
+ bool saveRawMessages=false;
+ bool saveMatlabObs=false;
+
+ bool queryRx=false;
+
+ saveLogMessages=true;
+
+ string rawMessageFileSpec("ash%03j%02y.raw");
+ string rinexObsFileSpec("site%03j.%02yo");
+ string rinexNavFileSpec("site%03j.%02yn");
+ string matlabObsFileSpec("obs%03j%02y.txt");
+ string defaultPort("/dev/ttyS0");
+
+ DayTime currentEpoch;
+ bool gotGPSEpoch = false;
+
+ // Process user options********************************************************
+
+ CommandOptionNoArg helpOption('h', "help", "Print help usage");
+ CommandOptionNoArg verboseOption('v', "verbose", "Increased diagnostic messages");
+ CommandOptionNoArg rawOption('r', "raw", "Record raw observations");
+ CommandOptionNoArg logOption('l', "log", "Record log entries");
+ CommandOptionNoArg matlabOption('t', "text", "Record observations as simple text files");
+ CommandOptionWithAnyArg rinexObsFileSpecOption('o',"rinex-obs","Naming convention for RINEX obs files");
+ CommandOptionWithAnyArg rinexNavFileSpecOption('n',"rinex-nav","Naming convention for RINEX nav message files");
+ CommandOptionWithAnyArg textObsFileSpecOption('T',"text-obs","Naming convention for obs in simple text files");
+ CommandOptionWithAnyArg inputOption('i', "input", "Where to read the ashtech data from. Can be a file, a serial device (ser:/dev/ttyS0), a tcp port (tcp:hostname:port), or standard input (the default).");
+
+ // TO DO. Limit the number of times the options can be called as appropriate.
+
+ CommandOptionParser cop("Records observations from an Ashtech Z-XII receiver.");
+ cop.parseOptions(argc, argv);
+
+ if (helpOption.getCount() || cop.hasErrors())
+ {
+ if (cop.hasErrors())
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ saveRawMessages=(rawOption.getCount()>0);
+ saveLogMessages=(logOption.getCount()>0);
+ verbose=(verboseOption.getCount()>0);
+
+ if(rinexObsFileSpecOption.getCount()>0)
+ rinexObsFileSpec = rinexObsFileSpecOption.getValue()[0];
+
+ if(rinexNavFileSpecOption.getCount()>0)
+ rinexNavFileSpec = rinexNavFileSpecOption.getValue()[0];
+
+ saveMatlabObs=(matlabOption.getCount()>0) ||
+ (textObsFileSpecOption.getCount()>0) ;
+
+ if(textObsFileSpecOption.getCount()>0)
+ matlabObsFileSpec = textObsFileSpecOption.getValue()[0];
+
+ TimeNamedFileStream<ofstream> rawFile(rawMessageFileSpec, ios::out|ios::app);
+ matlabObs.open(matlabObsFileSpec.c_str(), ios::out|ios::app);
+
+ TimeNamedFileStream<RinexObsStream> obsFile(rinexObsFileSpec, ios::out|ios::app);
+ TimeNamedFileStream<RinexNavStream> navFile(rinexNavFileSpec, ios::out|ios::app);
+
+ RinexNavHeader rinexNavHeader=defineNavHeader();
+ RinexObsHeader rinexObsHeader=defineObsHeader();
+
+ // Acquire the port *****************************************************
+ string fn="/dev/ttyS0";
+ if (inputOption.getCount())
+ fn = inputOption.getValue()[0];
+ DeviceStream<std::ifstream> input(fn);
+ DeviceStream<std::ofstream> rxOut(fn);
+
+ log("Reading data from " + input.getTarget());
+
+ // Setup the receiver ***************************************************
+ if (queryRx)
+ {
+ log("Requesting iono, trop info");
+ rxOut.write("$PASHQ,ION\r\n",12);
+ }
+
+
+ // Define loop variables *********************************************
+ ssize_t readSize=-333;
+ const size_t buffSize=1400;
+ char buff[buffSize];
+ const size_t buff2size=400;
+ char buff2[buff2size];
+ string msgBuffer;
+ DayTime pollEphTime;
+ bool firstPollDone=false;
+
+ bool readStream=true;
+ ssize_t count=0;
+ int mnum = 0;
+ short currentDoy = currentEpoch.DOY(), lastDoy = -1;
+
+ // Queues
+ list<AshtechMessage> obsQ, emptyObsQ; // Observations
+ AshtechMessage ionMessage; // last ION message (iono constants + UTC info)
+ bool gotION=false; // Have we received an ION message?
+
+ // Storage to remember which PRN is on which tracker
+ map<int,int> trackerMap, lastTrackerMap, emptyTrackerMap;
+
+ bool gotObsData = false;
+ int currentSequence = -1;
+ long totalCharsRead=0;
+ long totalMsgLengthsProcessed=0;
+
+ log("Collection program started");
+
+ // Infinite loop, polling the port **********************************
+ while (readStream)
+ {
+ input.read(buff, buffSize-1);
+ readSize = input.gcount();
+ totalCharsRead += readSize;
+
+ msgBuffer.append(buff,readSize);
+
+ // Output to the user *****************************************
+ clearScreen();
+ printTitle();
+ cout << endl;
+
+ // Display channel numbers ************************************
+ cout << "Channel ";
+ for (int kk=1; kk<=12; kk++)
+ cout << setw(3) << kk << " ";
+ cout << endl << "PRN ";
+ for (int kk=1; kk<=12; kk++)
+ if (lastTrackerMap[kk])
+ cout << setw(3) << lastTrackerMap[kk] << " ";
+ else
+ cout << " -- ";
+ cout << endl << endl;
+
+ // Display comm status *****************************************
+ if (verbose)
+ {
+ cout << "Number characters just read on serial port: ";
+ cout << readSize;
+ cout << endl;
+
+ cout << "Total number of characters ever read: ";
+ cout << totalCharsRead;
+ cout << endl;
+
+ cout << "Total length of msgs processed: ";
+ cout << totalMsgLengthsProcessed;
+ cout << endl;
+ }
+
+ cout << "Number of unprocessed characters in buffer: ";
+ cout << msgBuffer.size() << endl;
+
+ cout << "Today's message count: ";
+ cout << mnum << endl;
+
+ cout << "Number of unproceseed obs: ";
+ cout << obsQ.size() << endl;
+
+ cout << endl;
+
+ if (verbose)
+ printLog(15);
+ else printLog(10);
+
+ int actualReadCount;
+ size_t loc;
+
+ /* Remove whole messages from the buffer ***************************/
+ while ((loc=msgBuffer.find("$PASHR,",0))!=string::npos)
+ {
+ string temp=msgBuffer.substr(0,loc);
+ totalMsgLengthsProcessed += temp.size();
+
+ AshtechMessage msg(temp,
+ AshtechMessage::STREAM,
+ AshtechMessage::ASCII);
+ msgBuffer.erase(0,loc+7);
+ mnum++;
+
+ // Classify
+ AshtechMessage::ObsType thisType = msg.getType();
+
+ // Possibly write out old data
+ if (msg.isObs())
+ {
+ trackerMap[msg.getTracker()]=msg.getPRN();
+
+ int thisSequence = msg.getSequence();
+
+ // Trigger dumping the data to files
+ if ((thisSequence !=currentSequence) && gotObsData)
+ {
+ // First write out the RINEX obs data
+ RinexObsData rod;
+ rod =
+ AshtechMessage::convertToRinexObsData(obsQ,currentEpoch);
+
+ if (rod.obs.empty())
+ log("Empty obs");
+
+ if (obsFile.updateFileName(rod.time))
+ {
+ log("Opened output file: " +
+ obsFile.getCurrentFilename());
+ obsFile << rinexObsHeader;
+ }
+
+ obsFile << rod;
+
+
+ // Second write obs to the MATLAB/Octave matrix format
+ if (saveMatlabObs)
+ matlabify(rod);
+
+ // Last, delete these observations
+ // TODO Find cleaner way to empty these data structures
+ // delete() is likely the answer but it's tricky.
+ obsQ = emptyObsQ;
+ lastTrackerMap = trackerMap;
+ trackerMap = emptyTrackerMap;
+ }
+
+ }
+
+
+ // Stuff away data for later
+ switch (thisType)
+ {
+ case AshtechMessage::PBEN :
+ break;
+
+ case AshtechMessage::MPC :
+ case AshtechMessage::MCA :
+ case AshtechMessage::MCL :
+ case AshtechMessage::MP1 :
+ case AshtechMessage::MP2 :
+ obsQ.push_back(msg);
+ currentSequence = msg.getSequence();
+ gotObsData = true;
+ break;
+
+ case AshtechMessage::SNAV :
+ case AshtechMessage::EPB :
+ log("Got ephemeris for PRN " +
+ StringUtils::asString(msg.getPRN()));
+ break;
+
+ case AshtechMessage::SALM :
+ case AshtechMessage::ALB :
+ break;
+
+ case AshtechMessage::ION :
+ ionMessage = msg;
+ gotION=true;
+ log("Got iono, UTC info from RX");
+ //AshtechMessage::updateNavHeader(msg,rinexNavHeader);
+ //log("Length:"+StringUtils::asString(temp.size()));
+ //navFiles.setRinexNavHeader(rinexNavHeader);
+ break;
+
+ } // End of case
+
+ if (thisType==AshtechMessage::PBEN)
+ {
+ currentEpoch = msg.getEpoch(currentEpoch);
+ gotGPSEpoch= true;
+ }
+
+ if ((!firstPollDone)||(currentEpoch>pollEphTime))
+ {
+ if (queryRx)
+ {
+ log("Requesting ephemeris from all PRNs in track.");
+ rxOut.write("$PASHQ,EPB\r\n",12);
+ firstPollDone=true;
+ pollEphTime = currentEpoch+30*60; // Wait 30 minutes
+ }
+ }
+
+
+ // Trigger the writing of nav data
+ if ((thisType==AshtechMessage::EPB)&&(gotION))
+ {
+ try{
+ RinexNavData rnd = AshtechMessage::convertToRinexNavData(msg, currentEpoch);
+ log("Converted a nav message");
+ if (navFile.updateFileName(currentEpoch))
+ {
+ log("Opened output file: " + navFile.getCurrentFilename());
+ navFile << rinexNavHeader;
+ }
+ navFile << rnd;
+
+ log("Wrote nav message");
+ }
+ catch(...)
+ {
+ log("Error converting nav message.");
+ }
+ }
+
+ if (saveRawMessages)
+ {
+ if (rawFile.updateFileName())
+ {
+ log("Opened output file: " + rawFile.getCurrentFilename());
+ }
+ rawFile << temp;
+ }
+
+ } // Remove each whole message from the buffer
+
+ // Has the day of year rolled over?
+ currentDoy = currentEpoch.DOY();
+
+ if (lastDoy!=currentDoy)
+ {
+ mnum=0;
+ }
+
+ lastDoy = currentDoy;
+
+ usleep(1*1024);
+ }
+
+ }
+ catch(const gpstk::Exception& x)
+ {
+ cerr << "Caught exception! " << endl;
+ cerr << x << endl;
+ }
+
+ exit(0);
+
+}
diff --git a/dev/apps/reszilla/CycleSlipList.cpp b/dev/apps/reszilla/CycleSlipList.cpp
new file mode 100644
index 0000000..6be7aa6
--- /dev/null
+++ b/dev/apps/reszilla/CycleSlipList.cpp
@@ -0,0 +1,87 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "CycleSlipList.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+// ---------------------------------------------------------------------
+// ---------------------------------------------------------------------
+void dump(std::ostream& s, const CycleSlipList& csl)
+{
+ s << "# Total Cycle slips: " << csl.size() << endl;
+
+ CycleSlipList::const_iterator i;
+ long l1=0, l2=0;
+
+ for (i=csl.begin(); i!=csl.end(); i++)
+ if (i->oid.band == ObsID::cbL1)
+ l1++;
+ else if (i->oid.band == ObsID::cbL2)
+ l2++;
+
+ s << "# Cycle slips on L1: " << l1 << endl;
+ s << "# Cycle slips on L2: " << l2 << endl;
+
+ if (csl.size() == 0)
+ return;
+
+ s << endl
+ << "# time prn obs type cyles elev pre post gap mstr " << endl;
+
+ s.setf(ios::fixed, ios::floatfield);
+
+ for (i=csl.begin(); i!=csl.end(); i++)
+ {
+ const CycleSlipRecord& cs=*i;
+ string time=cs.t.printf("%4Y %3j %02H:%02M:%04.1f");
+
+ s << ">c " << left << setw(20) << time
+ << " " << right << setw(2) << cs.prn.id
+ << " " << cs.oid
+ << " " << setprecision(3) << setw(14) << cs.cycles
+ << " " << std::setprecision(2) << setw(5) << cs.elevation
+ << " " << setw(5) << cs.preCount
+ << " " << setw(5) << cs.postCount
+ << " " << setw(5) << setprecision(1) << cs.preGap
+ << " " << setw(2) << cs.masterPrn.id
+ << endl;
+ }
+ s << endl;
+}
diff --git a/dev/apps/reszilla/CycleSlipList.hpp b/dev/apps/reszilla/CycleSlipList.hpp
new file mode 100644
index 0000000..f0475c6
--- /dev/null
+++ b/dev/apps/reszilla/CycleSlipList.hpp
@@ -0,0 +1,64 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef CYCLESLIPLIST_HPP
+#define CYCLESLIPLIST_HPP
+
+#include <DayTime.hpp>
+#include <ObsID.hpp>
+#include <SatID.hpp>
+
+struct CycleSlipRecord
+{
+ gpstk::DayTime t;
+ double cycles;
+ gpstk::SatID prn, masterPrn;
+ gpstk::ObsID oid;
+ double elevation;
+ long preCount; // for How many epochs had the bias been stable
+ double preGap; // time between the end of the previous arc and this point
+ long postCount; // how long the arc after the slip is
+
+ bool operator<(const CycleSlipRecord& right)
+ { return t < right.t; }
+};
+
+typedef std::list<CycleSlipRecord> CycleSlipList;
+
+void dump(std::ostream& s, const CycleSlipList& sl);
+
+#endif
diff --git a/dev/apps/reszilla/DDEpoch.cpp b/dev/apps/reszilla/DDEpoch.cpp
new file mode 100644
index 0000000..1fa9226
--- /dev/null
+++ b/dev/apps/reszilla/DDEpoch.cpp
@@ -0,0 +1,830 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <limits>
+#include <set>
+
+#include <StringUtils.hpp>
+#include <Stats.hpp>
+
+#include "DDEpoch.hpp"
+#include "ObsID.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+unsigned DDEpoch::debugLevel;
+unsigned DDEpochMap::debugLevel;
+bool DDEpochMap::useMasterSV;
+
+// ---------------------------------------------------------------------------
+// Computes a single difference between two sets of obs
+// ---------------------------------------------------------------------------
+OIDM DDEpoch::singleDifference(
+ const SvObsEpoch& rx1obs,
+ const SvObsEpoch& rx2obs,
+ double rangeRate)
+{
+ OIDM diff;
+
+ // clock offset correction
+ double coc = clockOffset * rangeRate;
+ SvObsEpoch::const_iterator roti1, roti2;
+ for (roti1 = rx1obs.begin(); roti1 != rx1obs.end(); roti1++)
+ {
+ const ObsID& oid = roti1->first;
+
+ // only compute double differences for range, phase, and doppler
+ if (!(oid.type == ObsID::otRange
+ || oid.type == ObsID::otPhase
+ || oid.type == ObsID::otDoppler))
+ continue;
+
+ // Make sure we have an obs from the other receiver
+ roti2 = rx2obs.find(oid);
+ if (roti2 == rx2obs.end())
+ continue;
+
+ // Compute the first difference
+ diff[oid] = roti1->second - roti2->second;
+
+ // Need to convert the phase/doppler observables to meters
+ if (oid.type == ObsID::otPhase || oid.type == ObsID::otDoppler)
+ {
+ if (oid.band == ObsID::cbL1)
+ diff[oid] *= C_GPS_M/L1_FREQ;
+ else
+ diff[oid] *= C_GPS_M/L2_FREQ;
+ }
+ // Then pull off the clock correction
+ diff[oid] -= coc;
+ }
+
+ return diff;
+} // end of DDEpoch::singleDifference()
+
+// ---------------------------------------------------------------------------
+// Sets the valid flag true if successfull
+// also sets the masterPrn to the one actually used
+// ---------------------------------------------------------------------------
+void DDEpoch::doubleDifference(
+ const ObsEpoch& rx1,
+ const ObsEpoch& rx2)
+{
+ valid = false;
+
+ if (DDEpochMap::useMasterSV)
+ ddSvOIDM.clear();
+ else
+ ddPrOIDM.clear();
+
+ if (DDEpochMap::useMasterSV && (masterPrn.id < 0))
+ {
+ if (debugLevel>1)
+ cout << "# " << rx1.time
+ << " No master SV selected. Skipping epoch." << endl;
+ return;
+ }
+
+ double c1 = rx1.rxClock;
+ double c2 = rx2.rxClock;
+ clockOffset = c1 - c2;
+ double eps = 10*std::numeric_limits<double>().epsilon();
+ if (std::abs(clockOffset) > 2.1e-3 ||
+ std::abs(c1) < eps || std::abs(c2) < eps)
+ {
+ if (debugLevel)
+ cout << "# " << rx1.time
+ << " Insane clock offset (" << 1e3*clockOffset
+ << " ms). Skipping epoch." << endl;
+ return;
+ }
+
+ if (DDEpochMap::useMasterSV)
+ {
+ ObsEpoch::const_iterator oi1, oi2;
+ oi1 = rx1.find(masterPrn);
+ oi2 = rx2.find(masterPrn);
+
+ if (oi1 == rx1.end() || oi2 == rx2.end())
+ return;
+
+ const SvObsEpoch& rx1obs = oi1->second;
+ const SvObsEpoch& rx2obs = oi2->second;
+
+ OIDM masterDiff = singleDifference(rx1obs, rx2obs, rangeRate[masterPrn]);
+ if (masterDiff.size() == 0)
+ {
+ if (debugLevel)
+ cout << "# No masterDiff" << endl;
+ return;
+ }
+
+ // Now walk through all prns in track
+ for (oi1=rx1.begin(); oi1!=rx1.end(); oi1++)
+ {
+ SatID prn = oi1->first;
+ oi2 = rx2.find(prn);
+ if (oi2 == rx2.end())
+ continue;
+
+ if (prn == masterPrn)
+ continue;
+
+ OIDM otherDiff = singleDifference( oi1->second, oi2->second,
+ rangeRate[prn]);
+
+ // Now compute the double differences
+ // Note that for the master this will be a single diff
+ OIDM::const_iterator i_masterDiff, i_otherDiff;
+ for (i_masterDiff = masterDiff.begin();
+ i_masterDiff != masterDiff.end(); i_masterDiff++)
+ {
+ ObsID oid1 = i_masterDiff->first;
+ i_otherDiff = otherDiff.find(oid1);
+ ObsID oid2 = i_otherDiff->first;
+
+ // make sure that both obs data came from same tracking code
+ if (oid1.code != oid2.code)
+ {
+ if (debugLevel)
+ cout << "# DDEpoch::doubleDifferece(): oid1.code "
+ << "!= oid2.code\n";
+ continue;
+ }
+
+ ddSvOIDM[prn][oid1] = i_masterDiff->second - otherDiff[oid1];
+ }
+ }
+ valid = true;
+ }
+ else
+ {
+ for (ObsEpoch::const_iterator oi0 = rx1.begin(); oi0 != rx1.end(); oi0++)
+ {
+ const SatID sv1 = oi0->first;
+ ObsEpoch::const_iterator oi2 = rx2.find(sv1);
+ if (oi2 == rx2.end())
+ continue;
+
+ const SvObsEpoch& rx1obs = oi0->second;
+ const SvObsEpoch& rx2obs = oi2->second;
+
+ OIDM d1 = singleDifference(rx1obs, rx2obs, rangeRate[sv1]);
+ if (d1.size() == 0)
+ {
+ if (debugLevel)
+ cout << "# DDEpoch::doubleDifferece(): empty d1" << endl;
+ continue;
+ }
+
+ // Now walk through all other SVs in track
+ for (ObsEpoch::const_iterator oi1=oi0; oi1!=rx1.end(); oi1++)
+ {
+ SatID sv2 = oi1->first;
+
+ if (sv1 == sv2)
+ continue;
+
+ oi2 = rx2.find(sv2);
+ if (oi2 == rx2.end())
+ continue;
+
+ OIDM d2 = singleDifference( oi1->second, oi2->second,
+ rangeRate[sv2]);
+
+ // Now compute the double differences
+ SatIdPair pr(sv1, sv2);
+ OIDM::const_iterator i;
+ for (i = d1.begin(); i != d1.end(); i++)
+ ddPrOIDM[pr][i->first] = i->second - d2[i->first];
+ }
+ }
+ valid = true;
+ }
+} // end of DDEpoch::doubleDifference()
+
+// ---------------------------------------------------------------------------
+// Criteria for the masterPrn:
+// it has an elevation > the min,
+// it it on the way up (i.e. doppler>0),
+// t4 is a record for it on the other receiver
+// ---------------------------------------------------------------------------
+void DDEpoch::selectMasterPrn(
+ const ObsEpoch& rx1,
+ const ObsEpoch& rx2)
+{
+ const double minElevation = 15.0;
+
+ // If there is already one selected, try to keep using that one...
+ if (masterPrn.id >0)
+ {
+ ObsEpoch::const_iterator i = rx1.find(masterPrn);
+ ObsEpoch::const_iterator j = rx2.find(masterPrn);
+ if (i != rx1.end() && j != rx2.end() &&
+ elevation[masterPrn] > minElevation)
+ return;
+ }
+
+ SatID prn;
+ ObsEpoch::const_iterator i;
+ for (i=rx1.begin(); i != rx1.end(); i++)
+ {
+ prn = i->first;
+ ObsEpoch::const_iterator j = rx2.find(prn);
+ SvObsEpoch obs = i->second;
+ if (j != rx2.end() && rangeRate[prn] >= 0 &&
+ elevation[i->first] > minElevation)
+ {
+ masterPrn = prn;
+ break;
+ }
+ }
+} // end of DDEpoch::selectMasterPrn()
+
+
+//----------------------------------------------------------------------------
+// compute the double difference of all common epochs
+//----------------------------------------------------------------------------
+void DDEpochMap::compute(
+ const ObsEpochMap& rx1,
+ const ObsEpochMap& rx2,
+ SvElevationMap& pem)
+{
+ DDEpoch prev;
+
+ DDEpochMap& ddem=*this;
+ DDEpoch::debugLevel = debugLevel;
+
+ if (debugLevel)
+ cout << "# DDEpochMap::compute(" << rx1.size()
+ << ", " << rx2.size() << " epochs)" << endl;
+
+ // We use the data from rx1 walk us through the data
+ // loop over all epochs for this station
+ ObsEpochMap::const_iterator ei1;
+ for (ei1=rx1.begin(); ei1!=rx1.end(); ei1++)
+ {
+ // first make sure we have data from the other receiver for this epoch...
+ DayTime t = ei1->first;
+ ObsEpochMap::const_iterator ei2 = rx2.find(t);
+ if (ei2 == rx2.end())
+ {
+ if (debugLevel>1)
+ cout << "# Epoch with no match" << endl;
+ continue;
+ }
+ const ObsEpoch& e1 = ei1->second;
+ const ObsEpoch& e2 = ei2->second;
+
+ DDEpoch curr;
+
+ // We need to have a range rate but it doesn't really matter where from.
+ // So here we find a doppler for each of the SVs
+ // Also we fill in the elevation while we are walking through
+ // the SVs.
+ for (ObsEpoch::const_iterator i=e1.begin(); i != e1.end(); i++)
+ {
+ const SatID& prn = i->first;
+ const SvObsEpoch& obs = i->second;
+ for(SvObsEpoch::const_iterator j=obs.begin(); j != obs.end(); j++)
+ if (j->first.type == ObsID::otDoppler &&
+ j->first.band == ObsID::cbL1)
+ {
+ curr.rangeRate[prn] = j->second * C_GPS_M/L1_FREQ;
+ break;
+ }
+ curr.elevation[prn] = pem[t][prn];
+ }
+
+ if (useMasterSV)
+ {
+ // Try to keep using the previous master PRN
+ if (prev.valid)
+ curr.masterPrn = prev.masterPrn;
+
+ curr.selectMasterPrn(e1, e2);
+ }
+
+ curr.doubleDifference(e1, e2);
+
+ if (curr.valid)
+ {
+ ddem[t] = curr;
+ prev = curr;
+ }
+ else if (debugLevel)
+ cout << "# Invalid DDEpoch" << endl;
+ } // end of looping over all epochs in the first set.
+
+ if (useMasterSV)
+ {
+ // Here we need to remove the double differences for the master PRN
+ for (DDEpochMap::iterator i = ddem.begin(); i != ddem.end(); i++)
+ {
+ DDEpoch& dde = i->second;
+ SvOIDM::iterator j = dde.ddSvOIDM.find(dde.masterPrn);
+ if (j != dde.ddSvOIDM.end())
+ dde.ddSvOIDM.erase(j);
+ }
+ }
+} // end of DDEpochMap::compute()
+
+// ---------------------------------------------------------------------------
+// ---------------------------------------------------------------------------
+void DDEpochMap::dump(std::ostream& s) const
+{
+ const DDEpochMap& ddem=*this;
+
+ s.setf(ios::fixed, ios::floatfield);
+ s << "# time obs type SV1 SV2 EL1 EL2"
+ << " ddr(m) h1h2"
+ << endl;
+
+ DDEpochMap::const_iterator ei;
+ for (ei = ddem.begin(); ei != ddem.end(); ei++)
+ {
+ const DayTime& t = ei->first;
+ const DDEpoch& dde = ei->second;
+
+ string time=t.printf("%4Y %3j %02H:%02M:%04.1f");
+
+ if (useMasterSV)
+ {
+ const SatID& masterPrn = dde.masterPrn;
+
+ SvOIDM::const_iterator pi;
+ for (pi = dde.ddSvOIDM.begin(); pi != dde.ddSvOIDM.end(); pi++)
+ {
+ const SatID& prn = pi->first;
+ const OIDM& ddr = pi->second;
+ for (OIDM::const_iterator ti = ddr.begin(); ti != ddr.end(); ti++)
+ {
+ string rot = StringUtils::asString(ti->first);
+ double dd = ti->second;
+
+ // don't output single differnce b/w master and itself.
+ // this is excluded from the stats computation as well
+ if (masterPrn.id != prn.id)
+ {
+ s << left << setw(20) << time << right
+ << setfill(' ') << setprecision(2)
+ << " " << left << setw(14) << rot << right
+ << " " << setw(3) << masterPrn.id
+ << " " << setw(3) << prn.id
+ << " " << setw(5) << dde.elevation[masterPrn] << " "
+ << " " << setw(5) << dde.elevation[prn]
+ << " " << setprecision(6) << setw(14) << dd
+ << hex
+ << " " << setw(2) << dde.health[masterPrn]
+ << dde.health[prn]
+ << dec
+ << endl;
+ }
+
+ if (debugLevel && (dde.health[masterPrn] || dde.health[prn]))
+ cout << "# Unhealthy SV. Master/SV2: " << hex << setw(2)
+ << dde.health[masterPrn] << dde.health[prn] << dec
+ << endl;
+ }
+ }
+ }
+ else
+ {
+ PrOIDM::const_iterator pi;
+ for (pi = dde.ddPrOIDM.begin(); pi != dde.ddPrOIDM.end(); pi++)
+ {
+ const SatIdPair& pr = pi->first;
+ const SatID& sv1 = pr.first;
+ const SatID& sv2 = pr.second;
+ const OIDM& ddr = pi->second;
+ for (OIDM::const_iterator ti = ddr.begin(); ti != ddr.end(); ti++)
+ {
+ string rot = StringUtils::asString(ti->first);
+ double dd = ti->second;
+
+ s << left << setw(20) << time << right
+ << setfill(' ') << setprecision(2)
+ << " " << left << setw(14) << rot << right
+ << " " << setw(3) << sv1.id
+ << " " << setw(3) << sv2.id
+ << " " << setw(5) << dde.elevation[sv1] << " "
+ << " " << setw(5) << dde.elevation[sv2]
+ << " " << setprecision(6) << setw(14) << dd
+ << hex
+ << " " << setw(2) << dde.health[sv1] << dde.health[sv2]
+ << dec
+ << endl;
+ }
+ }
+ }
+ }
+} // end of DDEpochMap::dump()
+
+
+//----------------------------------------------------------------------------
+// Returns a string containing a statistical summary of the double difference
+// residuals for the specified obs type within the given elevation range.
+//----------------------------------------------------------------------------
+string DDEpochMap::computeStats(
+ const gpstk::ObsID oid,
+ const ElevationRange& er) const
+{
+ ostringstream oss;
+ float minElevation = er.first;
+ float maxElevation = er.second;
+ double strip=1000;
+ int zeroCount=0;
+
+ gpstk::Stats<double> good, bad;
+ for (const_iterator ei = begin(); ei != end(); ei++)
+ {
+ const gpstk::DayTime& t = ei->first;
+ SvOIDM::const_iterator pi;
+ const DDEpoch& dde = ei->second;
+ for (pi = dde.ddSvOIDM.begin(); pi != dde.ddSvOIDM.end(); pi++)
+ {
+ const gpstk::SatID& prn = pi->first;
+ const OIDM& ddr = pi->second;
+
+ if (prn == dde.masterPrn)
+ continue;
+
+ if (dde.elevation[prn]<minElevation ||
+ dde.elevation[prn]>maxElevation)
+ continue;
+
+ OIDM::const_iterator ddi = ddr.find(oid);
+ if (ddi == ddr.end())
+ zeroCount++;
+ else
+ {
+ double dd = ddi->second;
+ if (std::abs(dd) < strip)
+ good.Add(dd);
+ else
+ bad.Add(dd);
+ }
+ }
+ }
+
+ char b1[200];
+ char zero = good.Average() < good.StdDev()/sqrt((float)good.N())?'0':' ';
+ double maxDD = std::max(std::abs(good.Minimum()), std::abs(good.Maximum()));
+ sprintf(b1, "%2d-%2d %8.5f %8.3f %7d %6d %6d %6.2f",
+ (int)minElevation, (int)maxElevation,
+ good.StdDev()/sqrt((float)2), good.Average(),
+ good.N(), bad.N(), zeroCount, maxDD);
+
+ oss << setw(14) << left << asString(oid) << right << b1 << endl;
+ return oss.str();
+} // end of DDEpochMap::computeStats()
+
+
+//----------------------------------------------------------------------------
+// Returns a string containing a statistical summary of the double difference
+// residuals for the specified obs type within the given elevation range.
+//----------------------------------------------------------------------------
+string DDEpochMap::computeStatsForAllCombos(
+ const ObsID oid,
+ const ElevationRange& er) const
+{
+ float minElevation = er.first;
+ float maxElevation = er.second;
+ double strip=1000;
+ int zeroCount=0;
+
+ gpstk::Stats<double> good, bad;
+ for (const_iterator ei = begin(); ei != end(); ei++)
+ {
+ const gpstk::DayTime& t = ei->first;
+ PrOIDM::const_iterator pi;
+ SvDoubleMap& elevation = ei->second.elevation;
+ for (pi = ei->second.ddPrOIDM.begin();
+ pi != ei->second.ddPrOIDM.end(); pi++)
+ {
+ const SatIdPair& pr = pi->first;
+ const gpstk::SatID& sv1 = pr.first;
+ const gpstk::SatID& sv2 = pr.second;
+ const OIDM& ddr = pi->second;
+
+ if (elevation[sv1]<minElevation || elevation[sv1]>maxElevation ||
+ elevation[sv2]<minElevation || elevation[sv2]>maxElevation)
+ continue;
+
+ OIDM::const_iterator ddi = ddr.find(oid);
+ if (ddi == ddr.end())
+ zeroCount++;
+ else
+ {
+ double dd = ddi->second;
+ if (std::abs(dd) < strip)
+ good.Add(dd);
+ else
+ bad.Add(dd);
+ }
+ }
+ }
+
+ ostringstream oss;
+ if (good.N() > 0 || bad.N() >0)
+ {
+ char b1[200];
+ char zero = good.Average() < good.StdDev()/sqrt((float)good.N())?'0':' ';
+ double maxDD = std::max(std::abs(good.Minimum()),
+ std::abs(good.Maximum()));
+ sprintf(b1, "%2d-%2d %8.5f %8.3f %7d %6d %6d %6.2f",
+ (int)minElevation, (int)maxElevation,
+ good.StdDev()/sqrt((float)2), good.Average(),
+ good.N(), bad.N(), zeroCount, maxDD);
+ oss << setw(14) << left << asString(oid) << right << b1 << endl;
+ }
+
+ return oss.str();
+} // end of DDEpochMap::computeStatsForAllCombos()
+
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+void DDEpochMap::outputStats(ostream& s, const ElevationRangeList elr) const
+{
+ // First figure out what obs types we have to work with
+ if (debugLevel)
+ cout << "# Computing obsSet" << endl;
+
+ set<ObsID> obsSet;
+ for (const_iterator ei = begin(); ei != end(); ei++)
+ {
+ const DDEpoch& dde = ei->second;
+ for (SvOIDM::const_iterator pi = dde.ddSvOIDM.begin();
+ pi != dde.ddSvOIDM.end(); pi++)
+ {
+ const OIDM& ddr = pi->second;
+ for (OIDM::const_iterator ti = ddr.begin(); ti != ddr.end(); ti++)
+ obsSet.insert(ti->first);
+ }
+ }
+
+ s << endl
+ << "ObsID elev stddev mean # obs # bad "
+ << "# unk max good slips"
+ << endl
+ << "------------- ----- -------- -------- ------- ------ "
+ << "------ -------- -----"
+ << endl;
+
+ // For convience, group these into L1
+ for (ElevationRangeList::const_iterator i = elr.begin();
+ i != elr.end(); i++)
+ {
+ for (set<ObsID>::const_iterator j = obsSet.begin();
+ j != obsSet.end(); j++)
+ if (j->band == ObsID::cbL1)
+ s << computeStats(*j, *i);
+ s << endl;
+ }
+ s << "------------------------------------"
+ << "------------------------------------"
+ << endl << endl;
+
+ // and L2
+ for (ElevationRangeList::const_iterator i = elr.begin();
+ i != elr.end(); i++)
+ {
+ for (set<ObsID>::const_iterator j = obsSet.begin();
+ j != obsSet.end(); j++)
+ if (j->band == ObsID::cbL2)
+ s << computeStats(*j, *i);
+ s << endl;
+ }
+ s << "------------------------------------"
+ << "------------------------------------"
+ << endl << endl;
+
+} // end of DDEpochMap::outputStats()
+
+
+//----------------------------------------------------------------------------
+//----------------------------------------------------------------------------
+void DDEpochMap::outputStatsForAllCombos(ostream& s,
+ const ElevationRangeList elr) const
+{
+ // First figure out what obs types we have to work with
+ if (debugLevel)
+ cout << "# Computing obsSet" << endl;
+
+ set<ObsID> obsSet;
+ for (const_iterator ei = begin(); ei != end(); ei++)
+ {
+ const DDEpoch& dde = ei->second;
+ for (PrOIDM::const_iterator pi = dde.ddPrOIDM.begin();
+ pi != dde.ddPrOIDM.end(); pi++)
+ {
+ const OIDM& ddr = pi->second;
+ for (OIDM::const_iterator ti = ddr.begin(); ti != ddr.end(); ti++)
+ obsSet.insert(ti->first);
+ }
+ }
+
+ s << endl
+ << "ObsID elev stddev mean # obs # bad "
+ << "# unk max good slips" << endl
+ << "------------- ----- -------- -------- ------- ------ "
+ << "------ -------- -----"
+ << endl;
+
+ // For convience, group these into L1
+ for (ElevationRangeList::const_iterator i = elr.begin();
+ i != elr.end(); i++)
+ {
+ for (set<ObsID>::const_iterator j = obsSet.begin();
+ j != obsSet.end(); j++)
+ if (j->band == ObsID::cbL1)
+ s << computeStatsForAllCombos(*j, *i);
+ s << endl;
+ }
+
+ s << "------------------------------------"
+ << "------------------------------------"
+ << endl;
+
+ // and L2
+ for (ElevationRangeList::const_iterator i = elr.begin();
+ i != elr.end(); i++)
+ {
+ for (set<ObsID>::const_iterator j = obsSet.begin();
+ j != obsSet.end(); j++)
+ if (j->band == ObsID::cbL2)
+ s << computeStatsForAllCombos(*j, *i);
+ s << endl;
+ }
+
+ s << "------------------------------------"
+ << "------------------------------------"
+ << endl << endl;
+
+} // end of DDEpochMap::outputStatsForAllCombos()
+
+
+void DDEpochMap::outputAverages(ostream& s) const
+{
+ if (debugLevel)
+ cout << "# Computing averages\n";
+
+ s << "# window end time obs type # points mean ddr(m)\n";
+
+ // only going to compute averages for range, phase, and doppler
+ gpstk::Stats<double> l1CArange,l1Prange,l1Phase,l1Doppler;
+ gpstk::Stats<double> l2Prange,l2Phase,l2Doppler;
+
+ gpstk::DayTime windowTempDT;
+
+ const_iterator ei = begin();
+ const gpstk::DayTime& dataStartDT = ei->first;
+ gpstk::DayTime windowEndDT = dataStartDT + windowLength;
+
+ for (const_iterator ei = begin(); ei != end(); ei++)
+ {
+ const gpstk::DayTime& t = ei->first;
+ const DDEpoch& dde = ei->second;
+
+ // the time for this DDEpoch
+ windowTempDT = t;
+
+ if (windowTempDT < windowEndDT)
+ {
+ // record data for this epoch
+ SvOIDM::const_iterator pi;
+ for (pi = dde.ddSvOIDM.begin(); pi != dde.ddSvOIDM.end(); pi++)
+ {
+ const OIDM& ddr = pi->second;
+ for (OIDM::const_iterator ti = ddr.begin(); ti != ddr.end(); ti++)
+ {
+ gpstk::ObsID obsID = ti->first;
+ double dd = ti->second;
+
+ if ((obsID.band == ObsID::cbL1) &&
+ (obsID.type == ObsID::otRange) &&
+ (obsID.code == ObsID::tcCA))
+ l1CArange.Add(dd);
+ else if ((obsID.band == ObsID::cbL1) &&
+ (obsID.type == ObsID::otRange))
+ l1Prange.Add(dd);
+ else if ((obsID.band == ObsID::cbL1) &&
+ (obsID.type == ObsID::otPhase))
+ l1Phase.Add(dd);
+ else if ((obsID.band == ObsID::cbL1) &&
+ (obsID.type == ObsID::otDoppler))
+ l1Doppler.Add(dd);
+ else if ((obsID.band == ObsID::cbL2) &&
+ (obsID.type == ObsID::otRange))
+ l2Prange.Add(dd);
+ else if ((obsID.band == ObsID::cbL2) &&
+ (obsID.type == ObsID::otPhase))
+ l2Phase.Add(dd);
+ else if ((obsID.band == ObsID::cbL2) &&
+ (obsID.type == ObsID::otDoppler))
+ l2Doppler.Add(dd);
+ }
+ }
+ }
+ else
+ {
+ // reset window end time
+ windowEndDT = windowTempDT + windowLength;
+
+ // compute and output stats for previous window
+ string time = windowTempDT.printf("%4Y %3j %02H:%02M:%04.1f");
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L1 C/A range" << setw(6) << l1CArange.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l1CArange.Average() << endl;
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L1 P/Y range" << setw(6) << l1Prange.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l1Prange.Average() << endl;
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L1 P/Y phase" << setw(6) << l1Phase.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l1Phase.Average() << endl;
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L1 P/Y doppl" << setw(6) << l1Doppler.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l1Doppler.Average() << endl;
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L2 P/Y range" << setw(6) << l2Prange.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l2Prange.Average() << endl;
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L2 P/Y phase" << setw(6) << l2Phase.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l2Phase.Average() << endl;
+
+ s << ">a " << left << setw(20) << time
+ << setfill(' ') << setprecision(2) << " " << setw(16)
+ << "L2 P/Y doppl" << setw(6) << l2Doppler.N()
+ << " " << right << setprecision(6) << setw(14)
+ << l2Doppler.Average() << endl;
+
+
+ // reset objects to clear them and start recording data
+ // for this new window
+ l1CArange.Reset();
+ l1Prange.Reset();
+ l1Phase.Reset();
+ l1Doppler.Reset();
+ l2Prange.Reset();
+ l2Phase.Reset();
+ l2Doppler.Reset();
+ }
+
+ }
+} // end of DDEpochMap::outputAverages()
+
diff --git a/dev/apps/reszilla/DDEpoch.hpp b/dev/apps/reszilla/DDEpoch.hpp
new file mode 100644
index 0000000..80e0239
--- /dev/null
+++ b/dev/apps/reszilla/DDEpoch.hpp
@@ -0,0 +1,126 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef DDEPOCH_HPP
+#define DDEPOCH_HPP
+
+#include <DayTime.hpp>
+#include <stl_helpers.hpp>
+#include <icd_200_constants.hpp>
+
+#include "ElevationRange.hpp"
+#include "SvElevationMap.hpp"
+
+typedef std::map<gpstk::ObsID, double> OIDM;
+typedef std::map<gpstk::SatID, OIDM > SvOIDM;
+typedef std::map<gpstk::SatID, short > SvShortMap;
+typedef std::map<gpstk::SatID, double > SvDoubleMap;
+typedef std::pair<gpstk::SatID, gpstk::SatID > SatIdPair;
+typedef std::map<SatIdPair, OIDM > PrOIDM;
+
+struct DDEpoch
+{
+ DDEpoch() : valid(false){};
+
+ SvOIDM ddSvOIDM;
+ PrOIDM ddPrOIDM;
+
+ mutable SvShortMap health;
+ mutable SvDoubleMap rangeRate;
+ mutable SvDoubleMap elevation;
+
+ double clockOffset;
+ gpstk::SatID masterPrn;
+ bool valid;
+ static unsigned debugLevel;
+
+ // Computes a single difference between two sets of obs
+ OIDM singleDifference(
+ const gpstk::SvObsEpoch& rx1obs,
+ const gpstk::SvObsEpoch& rx2obs,
+ double rangeRate);
+
+ // Sets the valid flag true if successfull
+ // also sets the masterPrn to the one actually used
+ void doubleDifference(
+ const gpstk::ObsEpoch& rx1,
+ const gpstk::ObsEpoch& rx2);
+
+ // Criteria for the masterPrn:
+ // it has an elevation > the min,
+ // it it on the way up (i.e. doppler>0),
+ // there is a record for it on the other receiver
+ void selectMasterPrn(
+ const gpstk::ObsEpoch& rx1,
+ const gpstk::ObsEpoch& rx2);
+
+};
+
+
+struct DDEpochMap : public std::map<gpstk::DayTime, DDEpoch>
+{
+
+ // compute the double difference of all common epochs
+ void compute(
+ const gpstk::ObsEpochMap& rx1,
+ const gpstk::ObsEpochMap& rx2,
+ SvElevationMap& pem);
+
+ // Returns a string containing a statistical summary of the double difference
+ // residuals for the specified obs type within the given elevation range.
+ std::string computeStats(
+ const gpstk::ObsID oid,
+ const ElevationRange& er) const;
+ std::string computeStatsForAllCombos(
+ const gpstk::ObsID oid,
+ const ElevationRange& er) const;
+
+ void outputStats(std::ostream& s, const ElevationRangeList elr) const;
+ void outputStatsForAllCombos(std::ostream& s, const ElevationRangeList elr) const;
+
+ void outputAverages(std::ostream& s) const;
+ void dump(std::ostream& s) const;
+
+ static unsigned debugLevel;
+ static bool useMasterSV;
+ unsigned long windowLength; // seconds
+ //unsigned long minimumSNR; // dB
+};
+
+
+#endif
diff --git a/dev/apps/reszilla/ElevationRange.hpp b/dev/apps/reszilla/ElevationRange.hpp
new file mode 100644
index 0000000..36ed71a
--- /dev/null
+++ b/dev/apps/reszilla/ElevationRange.hpp
@@ -0,0 +1,72 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ELEVATIONRANGE_HPP
+#define ELEVATIONRANGE_HPP
+
+#include <iostream>
+#include <list>
+
+typedef std::pair<float, float> ElevationRange;
+typedef std::list< ElevationRange > ElevationRangeList;
+
+inline void dump(std::ostream& s, const ElevationRange& er)
+{
+ s << er.first << "-" << er.second;
+};
+
+inline std::ostream& operator<<(std::ostream& s, const ElevationRange& er)
+{
+ dump(s, er);
+ return s;
+};
+
+inline void dump(std::ostream& s, const ElevationRangeList& erl)
+{
+ for (ElevationRangeList::const_iterator i=erl.begin(); i != erl.end(); i++)
+ s << *i << " ";
+ s << std::endl;
+};
+
+inline std::ostream& operator<<(std::ostream& s, const ElevationRangeList& erl)
+{
+ dump(s, erl);
+ return s;
+};
+
+#endif
diff --git a/dev/apps/reszilla/Jamfile b/dev/apps/reszilla/Jamfile
new file mode 100644
index 0000000..369830e
--- /dev/null
+++ b/dev/apps/reszilla/Jamfile
@@ -0,0 +1,36 @@
+# $Id$
+
+SubDir TOP apps reszilla ;
+
+
+# Note that the local library needs to be declaired and built prior to anything
+# else is done.
+GPSLinkLibraries rlib : rxio gpstk ;
+Library rlib : DDEpoch.cpp PhaseCleaner.cpp PhaseResidual.cpp
+ RobustLinearEstimator.cpp SvElevationMap.cpp CycleSlipList.cpp
+ OrdApp.cpp OrdEngine.cpp ;
+
+
+# Now we can set up the things that depend upon the local library. Note that
+# the LinkLibraries rule for mdplib must preceede the GPSLinkLibraries rule
+# for things to build properly
+LinkLibraries ordGen ordClock ordEdit ordStats ordLinEst ddGen : rlib ;
+GPSLinkLibraries ordGen ordClock ordEdit ordStats ordLinEst ddGen : rxio gpstk ;
+
+
+GPSMain ordGen : ordGen.cpp ;
+
+GPSMain ordClock : ordClock.cpp ;
+
+GPSMain ordLinEst : ordLinEst.cpp ;
+
+GPSMain ordEdit : ordEdit.cpp ;
+
+GPSMain ordStats : ordStats.cpp ;
+
+GPSMain ddGen : ddGen.cpp ;
+
+InstallBin $(BINDIR) : ordPlot ;
+
+InstallBin $(BINDIR) : ddPlot ;
+
diff --git a/dev/apps/reszilla/Makefile.am b/dev/apps/reszilla/Makefile.am
new file mode 100644
index 0000000..fce44c3
--- /dev/null
+++ b/dev/apps/reszilla/Makefile.am
@@ -0,0 +1,7 @@
+INCLUDES = -I$(srcdir)/../../src -I$(srcdir)/../MDPtools
+LDADD = ./librlib.la ./libdatalib.la ../../src/libgpstk.la ../MDPtools/libmdplib.la
+
+lib_LTLIBRARIES = librlib.la libdatalib.la
+libdatalib_la_SOURCES = OrdApp.cpp OrdEngine.cpp
+librlib_la_SOURCES = DDEpoch.cpp PhaseCleaner.cpp PhaseResidual.cpp \
+ RobustLinearEstimator.cpp SvElevationMap.cpp CycleSlipList.cpp
diff --git a/dev/apps/reszilla/OrdApp.cpp b/dev/apps/reszilla/OrdApp.cpp
new file mode 100644
index 0000000..0ccb6c6
--- /dev/null
+++ b/dev/apps/reszilla/OrdApp.cpp
@@ -0,0 +1,267 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iostream>
+
+#include "OrdApp.hpp"
+#include "CommandOption.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//-----------------------------------------------------------------------------
+OrdApp::OrdApp(
+ const string& applName,
+ const string& appDesc)
+ throw()
+ : BasicFramework(applName, appDesc),
+ timeFormat("%4Y %3j %02H:%02M:%04.1f"),
+ headerWritten(false)
+{}
+
+
+//-----------------------------------------------------------------------------
+// Here the command line options parsed and used to configure the program
+//-----------------------------------------------------------------------------
+bool OrdApp::initialize(int argc, char *argv[]) throw()
+{
+ CommandOptionWithAnyArg
+ inputOpt('i', "input",
+ "Where to read the ord data. The default is stdin."),
+ outputOpt('r', "output",
+ "Where to write the output. The default is stdout."),
+ timeFormatOpt('t', "time-format", "Daytime format specifier used for "
+ "times in the output. "
+ "The default is \""+timeFormat + "\".");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ if (debugLevel)
+ cout << "# program:" << argv0 << endl
+ << "# debugLevel: " << debugLevel << endl
+ << "# verboseLevel: " << verboseLevel << endl;
+
+ if (outputOpt.getCount())
+ {
+ const string fn=outputOpt.getValue()[0];
+ output.open(fn.c_str(), ios::out);
+ if (debugLevel)
+ cout << "# Sending output to" << fn << endl;
+ }
+ else
+ {
+ if (debugLevel)
+ cout << "# Sending output to stdout" << endl;
+ output.copyfmt(cout);
+ output.clear(cout.rdstate());
+ output.basic_ios<char>::rdbuf(cout.rdbuf());
+ }
+
+ if (inputOpt.getCount())
+ {
+ const string fn = inputOpt.getValue()[0];
+ input.open(fn.c_str(), ios::in);
+ if (debugLevel)
+ cout << "# Reading ords from" << fn << endl;
+ }
+ else
+ {
+ if (debugLevel)
+ cout << "# Reading ords from stdin" << endl;
+ input.copyfmt(cin);
+ input.clear(cin.rdstate());
+ input.basic_ios<char>::rdbuf(cin.rdbuf());
+ }
+
+ if (timeFormatOpt.getCount())
+ timeFormat = timeFormatOpt.getValue()[0];
+
+ return true;
+}
+
+
+void OrdApp::write(ofstream& s, const ORDEpoch& ordEpoch) throw()
+{
+ if (!headerWritten)
+ {
+ s << "# Time Type PRN Elev ORD(m) wonky" << endl;
+ headerWritten=true;
+ }
+
+ s.setf(ios::fixed, ios::floatfield);
+ s << setfill(' ') << right;
+
+ string time = ordEpoch.time.printf(timeFormat);
+ ORDEpoch::ORDMap::const_iterator pi;
+ for (pi = ordEpoch.ords.begin(); pi != ordEpoch.ords.end(); pi++)
+ {
+ const SatID& svid = pi->first;
+ const ObsRngDev& ord = pi->second;
+
+ int type = 0;
+ s << time << " " << setw(4) << type
+ << " " << setw(3) << svid.id
+ << " " << setprecision(1) << setw(5) << ord.getElevation()
+ << " " << setprecision(5) << setw(14) << ord.getORD()
+ << " " << hex << setw(5) << ord.wonky << dec
+ << endl;
+ }
+
+ if (ordEpoch.clockResidual.is_valid())
+ {
+ int type = 1;
+ int wart = 0;
+ if (ordEpoch.wonky)
+ wart = 1;
+ s << time << " " << setw(4) << type
+ << " " << setprecision(5) << setw(24) << ordEpoch.clockResidual
+ << setw(6) << wart << endl;
+ }
+
+ if (ordEpoch.clockOffset.is_valid())
+ {
+ int type = 50;
+ int wart = 0;
+ if (ordEpoch.wonky)
+ wart = 1;
+ s << time << " " << setw(4) << type
+ << " " << setprecision(5) << setw(24) << ordEpoch.clockOffset
+ << setw(6) << wart << endl;
+ }
+}
+
+ORDEpoch OrdApp::read(std::ifstream& s) throw()
+{
+ ORDEpoch ordEpoch;
+ ordEpoch.time = DayTime(DayTime::BEGINNING_OF_TIME);
+ using namespace StringUtils;
+ while (s)
+ {
+ try
+ {
+ if (readBuffer.size() == 0)
+ {
+ getline(s, readBuffer);
+ strip(readBuffer);
+ }
+
+ if ((readBuffer.size() < 24) ||
+ (readBuffer=="# Time Type PRN Elev ORD(m) wonky"))
+ {
+ readBuffer.erase(0, string::npos);
+ continue;
+ }
+ else if ((readBuffer[0] == '#') ||(readBuffer[0] == '>'))
+ {
+ output << readBuffer << endl;
+ readBuffer.erase(0, string::npos);
+ continue;
+ }
+
+ DayTime time;
+ time.setToString(readBuffer.substr(0,19), timeFormat);
+
+ // This means that we have a complete epoch. Note that the most
+ // recently read line is left in readBuffer
+ if (ordEpoch.time != time && ordEpoch.ords.size() > 0)
+ break;
+
+ ordEpoch.time = time;
+
+ istringstream iss(readBuffer.substr(20, string::npos));
+ int type;
+ iss >> type;
+
+ if (type == 0)
+ {
+ if (readBuffer.size() < 46)
+ {
+ cout << "# Line too short" << endl;
+ continue;
+ }
+
+ ObsRngDev ord;
+ ord.obstime = time;
+
+ int prn;
+ double elev, res;
+ unsigned wonky;
+
+ iss >> prn >> elev >> res >> hex >> wonky >> dec;
+
+ SatID svid(prn, SatID::systemGPS);
+ ord.svid = svid;
+ ord.elevation = elev;
+ ord.ord = res;
+ ord.wonky = wonky;
+
+ ordEpoch.ords[svid] = ord;
+ }
+ else if (type == 1)
+ {
+ double c;
+ unsigned wonky;
+ iss >> c >> wonky;
+ ordEpoch.clockResidual = c;
+ if (wonky == 1)
+ ordEpoch.wonky = true;
+ }
+ else if (type == 50)
+ {
+ double c;
+ unsigned wonky;
+ iss >> c >> wonky;
+ ordEpoch.clockOffset = c;
+ if (wonky == 1)
+ ordEpoch.wonky = true;
+ }
+
+ readBuffer.erase(0, string::npos);
+ }
+ catch (Exception& e)
+ {
+ cout << "# Error reading ord file " << e << endl;
+ }
+ }
+
+ return ordEpoch;
+}
diff --git a/dev/apps/reszilla/OrdApp.hpp b/dev/apps/reszilla/OrdApp.hpp
new file mode 100644
index 0000000..0d351aa
--- /dev/null
+++ b/dev/apps/reszilla/OrdApp.hpp
@@ -0,0 +1,69 @@
+#pragma ident "$Id: DataAvailabilityAnalyzer.hpp 192 2006-10-06 15:18:53Z ocibu $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ORDAPP_HPP
+#define ORDAPP_HPP
+
+#include <fstream>
+#include <string>
+
+#include "BasicFramework.hpp"
+#include "Exception.hpp"
+#include "ORDEpoch.hpp"
+
+class OrdApp : public gpstk::BasicFramework
+{
+public:
+ OrdApp(
+ const std::string& applName,
+ const std::string& appDesc) throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+ void write(std::ofstream& ofs, const gpstk::ORDEpoch& ordEpoch) throw();
+ gpstk::ORDEpoch read(std::ifstream& ifs) throw();
+
+ std::ifstream input;
+ std::ofstream output;
+ std::string timeFormat;
+
+private:
+ bool headerWritten;
+ std::string readBuffer;
+};
+#endif
diff --git a/dev/apps/reszilla/OrdEngine.cpp b/dev/apps/reszilla/OrdEngine.cpp
new file mode 100644
index 0000000..0b1ab9a
--- /dev/null
+++ b/dev/apps/reszilla/OrdEngine.cpp
@@ -0,0 +1,268 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "OrdEngine.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+// ---------------------------------------------------------------------
+OrdEngine::OrdEngine(
+ const EphemerisStore& e,
+ const WxObsData& w,
+ const Triple& p,
+ const string& mode,
+ TropModel& t)
+ : eph(e), wod(w), antennaPos(p), tm(t), mode(mode),
+ oidSet(false),
+ svTime(false), keepWarts(false), keepUnhealthy(false),
+ wartCount(0), verboseLevel(0), debugLevel(0), dualFreq(false)
+{
+ if (RSS(antennaPos[0], antennaPos[1], antennaPos[2]) < 1)
+ {
+ cerr << "Warning! The antenna antennaPospears to be within one meter of the" << endl
+ << "center of the geoid. This program is not cantennaPosable of" << endl
+ << "accurately estimating the propigation of GNSS signals" << endl
+ << "through solids such as a planetary crust or magma. Also," << endl
+ << "if this location is correct, your antenna is probably" << endl
+ << "no longer in the best of operating condition." << endl;
+ exit(-1);
+ }
+
+ ECEF ecef(antennaPos);
+ Geodetic geo(ecef, &gm);
+ tm.setReceiverHeight(geo.getAltitude());
+ tm.setReceiverLatitude(geo.getLatitude());
+}
+
+void OrdEngine::setMode(const ObsEpoch& obs)
+{
+ if (mode=="p1p2")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL1, ObsID::tcP);
+ oid2 = ObsID(ObsID::otRange, ObsID::cbL2, ObsID::tcP);
+ dualFreq = true;
+ }
+ else if (mode=="c1p2")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL1, ObsID::tcCA);
+ oid2 = ObsID(ObsID::otRange, ObsID::cbL2, ObsID::tcP);
+ dualFreq = true;
+ }
+ else if (mode=="y1y2")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL1, ObsID::tcY);
+ oid2 = ObsID(ObsID::otRange, ObsID::cbL2, ObsID::tcY);
+ dualFreq = true;
+ }
+ else if (mode=="c1")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL1, ObsID::tcCA);
+ }
+ else if (mode=="p1")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL1, ObsID::tcP);
+ }
+ else if (mode=="c2")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL2, ObsID::tcC2LM);
+ }
+ else if (mode=="p2")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL2, ObsID::tcP);
+ }
+ else if (mode=="smo")
+ {
+ oid1 = ObsID(ObsID::otRange, ObsID::cbL1L2, ObsID::tcP);
+ svTime = true;
+ }
+ else if (mode=="smart")
+ {
+ const SvObsEpoch& soe = obs.begin()->second;
+ SvObsEpoch::const_iterator itr;
+ for (itr = soe.begin(); itr != soe.end(); itr++)
+ {
+ const ObsID& oid = itr->first;
+ if (oid.type != ObsID::otRange)
+ continue;
+ if (oid.band == ObsID::cbL1)
+ oid1 = oid;
+ if (oid.band == ObsID::cbL2)
+ {
+ oid2 = oid;
+ dualFreq = true;
+ }
+ if (oid.band == ObsID::cbL1L2)
+ {
+ oid1 = oid;
+ dualFreq = false;
+ svTime = true;
+ }
+ }
+ }
+ else
+ {
+ cerr << "Unknown ORD computation requested, mode=" << mode << endl;
+ exit(-1);
+ }
+
+ oidSet = true;
+
+ if (verboseLevel)
+ {
+ cout << "# OrdEngine using " << mode << " mode" << endl;
+ cout << "# OrdEngine using " << oid1;
+ if (dualFreq)
+ cout << " and " << oid2;
+ cout << endl;
+ if (svTime)
+ cout << "# OrdEngine using SV time" << endl;
+ }
+}
+
+// ---------------------------------------------------------------------
+gpstk::ORDEpoch OrdEngine::operator()(const gpstk::ObsEpoch& obs)
+{
+ if (!oidSet)
+ setMode(obs);
+
+ const DayTime& t = obs.time;
+ const ObsEpoch& obsEpoch = obs;
+
+ ORDEpoch ordEpoch;
+ ordEpoch.time = t;
+
+ if (debugLevel>2)
+ cout << " obs: " << obsEpoch.time << endl << obsEpoch;
+
+ try
+ {
+ // Now set up our trop model for this epoch
+ const WxObservation wx = wod.getMostRecent(t);
+ tm.setDayOfYear(t.DOYday());
+ if (wx.isAllValid())
+ {
+ if (debugLevel > 2)
+ cout << " wx: " << wx << endl;
+ tm.setWeather(wx.temperature, wx.pressure, wx.humidity);
+ }
+
+ // Walk over all prns in this epoch
+ ObsEpoch::const_iterator j;
+ for (j=obsEpoch.begin(); j != obsEpoch.end(); j++)
+ {
+ const SatID svid = j->first;
+ const SvObsEpoch& svObsEpoch = j->second;
+
+ SvObsEpoch::const_iterator k;
+ double obs1, obs2;
+
+ // first we need to make sure the observation has the data we require.
+ k = svObsEpoch.find(oid1);
+ if (k == svObsEpoch.end())
+ continue;
+ else
+ obs1 = k->second;
+
+ if (dualFreq)
+ {
+ k = svObsEpoch.find(oid2);
+ if (k == svObsEpoch.end())
+ continue;
+ else
+ obs2 = k->second;
+ }
+
+ try
+ {
+ if (dualFreq)
+ ordEpoch.ords[svid] = ObsRngDev(
+ obs1, obs2, svid, t, antennaPos, eph, gm, tm, svTime);
+ else
+ ordEpoch.ords[svid] = ObsRngDev(
+ obs1, svid, t, antennaPos, eph, gm, tm, svTime);
+
+ ObsRngDev& ord = ordEpoch.ords[svid];
+
+ // A gross check on the pseudorange
+ const double rhoMin = 1e6; // Minimum reasonable pseudorange
+ if (obs1 < rhoMin || (dualFreq && obs2 < rhoMin))
+ ord.wonky |= 0x0001;
+
+ // Any LLI indicator makes the data suspect
+ for (k=svObsEpoch.begin(); k != svObsEpoch.end(); k++)
+ if (k->first.type == ObsID::otLLI && k->second == 1)
+ ord.wonky |= 0x0002;
+
+ // Make sure we have a valid C/A pseudorange unless we are a mixed
+ // frequency
+ if (oid1.band != ObsID::cbL1L2)
+ {
+ const ObsID C1(ObsID::otRange, ObsID::cbL1, ObsID::tcCA);
+ k = svObsEpoch.find(C1);
+ if (k == svObsEpoch.end() || k->second < rhoMin)
+ ord.wonky |= 0x0004;
+ }
+
+ if (!keepUnhealthy && ord.getHealth().is_valid() && ord.getHealth())
+ ord.wonky |= 0x0008;
+
+ if (std::abs(ord.getTrop()) > 100)
+ ord.wonky |= 0x0010;
+
+ if (ord.getElevation() <= 0.05)
+ ord.wonky |= 0x0020;
+ }
+ catch (gpstk::Exception& e)
+ {
+ ordEpoch.ords.erase(svid);
+ if (verboseLevel>2)
+ cout << "#" << e << endl;
+ }
+ } // end looping over each SV in this epoch
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ if (verboseLevel)
+ cout << "#" << e;
+ }
+
+ return ordEpoch;
+}
diff --git a/dev/apps/reszilla/OrdEngine.hpp b/dev/apps/reszilla/OrdEngine.hpp
new file mode 100644
index 0000000..bb259d7
--- /dev/null
+++ b/dev/apps/reszilla/OrdEngine.hpp
@@ -0,0 +1,83 @@
+#pragma ident "$Id: ordUtils.hpp 203 2006-10-10 16:12:03Z ocibu $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ORDENGINE_HPP
+#define ORDENGINE_HPP
+
+#include "ObsEpochMap.hpp"
+#include "WxObsMap.hpp"
+#include "ORDEpoch.hpp"
+#include "EphemerisStore.hpp"
+#include "TropModel.hpp"
+
+class OrdEngine
+{
+public:
+ OrdEngine(
+ const gpstk::EphemerisStore& e,
+ const gpstk::WxObsData& w,
+ const gpstk::Triple& p,
+ const std::string& mode,
+ gpstk::TropModel& t);
+
+ void setMode(const gpstk::ObsEpoch& obs);
+
+ // The crank for this engine. Input an ObsEpoch, get back an ORDEpoch.
+ gpstk::ORDEpoch operator()(const gpstk::ObsEpoch& obs);
+
+ const gpstk::Triple& antennaPos;
+ const gpstk::EphemerisStore& eph;
+ const gpstk::WxObsData& wod;
+ gpstk::TropModel& tm;
+
+ bool svTime;
+ bool keepWarts;
+ bool keepUnhealthy;
+ unsigned long wartCount;
+ std::string mode;
+ int verboseLevel;
+ int debugLevel;
+
+private:
+ bool dualFreq;
+ bool oidSet;
+ gpstk::ObsID oid1, oid2;
+ gpstk::GPSGeoid gm;
+};
+
+#endif
diff --git a/dev/apps/reszilla/PhaseCleaner.cpp b/dev/apps/reszilla/PhaseCleaner.cpp
new file mode 100644
index 0000000..97e1891
--- /dev/null
+++ b/dev/apps/reszilla/PhaseCleaner.cpp
@@ -0,0 +1,806 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <algorithm>
+
+#include "ObsID.hpp"
+
+#include "PhaseCleaner.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+unsigned PhaseCleaner::debugLevel;
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+PhaseCleaner::PhaseCleaner(long al, double at, double gt)
+ : minArcLen(al), minArcTime(at), maxGapTime(gt)
+{
+ lamda[ObsID::cbL1] = gpstk::C_GPS_M/gpstk::L1_FREQ;
+ lamda[ObsID::cbL2] = gpstk::C_GPS_M/gpstk::L2_FREQ;
+}
+
+
+//-----------------------------------------------------------------------------
+// Pulls the phase data data into arcs. Only data that exists on both receivers
+// is included
+//-----------------------------------------------------------------------------
+void PhaseCleaner::addData(const gpstk::ObsEpochMap& rx1,
+ const gpstk::ObsEpochMap& rx2,
+ const unsigned long minimumSNR)
+{
+ if (debugLevel)
+ cout << "PhaseCleaner::addData(), "
+ << rx1.size() << ", " << rx2.size() << " epochs" << endl;
+
+ // Now loop over all the epochs, pulling the data into the arcs
+ for (gpstk::ObsEpochMap::const_iterator ei1=rx1.begin(); ei1!=rx1.end(); ei1++)
+ {
+ gpstk::DayTime t = ei1->first;
+ const gpstk::ObsEpoch& rod1 = ei1->second;
+ gpstk::ObsEpochMap::const_iterator ei2 = rx2.find(t);
+
+ // Gotta have data from the other receiver
+ if (ei2 == rx2.end())
+ continue;
+ const gpstk::ObsEpoch& rod2 = ei2->second;
+
+ clockOffset[t] = rod1.rxClock - rod2.rxClock;
+
+ for (gpstk::ObsEpoch::const_iterator pi1=rod1.begin(); pi1 != rod1.end(); pi1++)
+ {
+ const gpstk::SatID& prn = pi1->first;
+ const gpstk::SvObsEpoch& rotm1 = pi1->second;
+
+ // Make sure the other receiver saw this SV
+ const gpstk::ObsEpoch::const_iterator pi2 = rod2.find(prn);
+ if (pi2 == rod2.end())
+ continue;
+ const gpstk::SvObsEpoch& rotm2 = pi2->second;
+
+ // We need a doppler, and any one will do
+ gpstk::SvObsEpoch::const_iterator d;
+ for (d = rotm1.begin(); d != rotm1.end(); d++)
+ if (d->first.type == ObsID::otDoppler)
+ break;
+
+ // No doppler, no phase double difference. sorry
+ if (d == rotm1.end())
+ continue;
+
+ double freq = d->first.band == ObsID::cbL2 ? gpstk::L2_FREQ : gpstk::L1_FREQ;
+ rangeRate[prn][t] = d->second * gpstk::C_GPS_M/freq;
+
+ gpstk::SvObsEpoch::const_iterator phase1;
+ for (phase1 = rotm1.begin(); phase1 != rotm1.end(); phase1++)
+ {
+ const gpstk::ObsID& rot = phase1->first;
+ if (rot.type != ObsID::otPhase)
+ continue;
+
+ gpstk::SvObsEpoch::const_iterator phase2 = rotm2.find(rot);
+ if (phase2 == rotm2.end())
+ continue;
+
+ // Don't use the data if we have an SN in the data and it looks
+ // bogus.
+ double snr=-1;
+ gpstk::ObsID srot = rot;
+ srot.type = ObsID::otSNR;
+ gpstk::SvObsEpoch::const_iterator snr1_itr = rotm1.find(srot);
+ gpstk::SvObsEpoch::const_iterator snr2_itr = rotm2.find(srot);
+
+ if (snr1_itr != rotm1.end() && snr2_itr != rotm2.end() )
+ {
+ snr = snr1_itr->second;
+ if (std::abs(snr) < minimumSNR ||
+ std::abs(snr2_itr->second) < minimumSNR )
+ continue;
+ }
+
+ // Note that we need the phase in cycles to make the PhaseResidual
+ // class work right.
+ PhaseResidual::Arc& arc = pot[rot][prn].front();
+ arc[t].phase11 = phase1->second;
+ arc[t].phase12 = phase2->second;
+ arc[t].snr1 = snr;
+ }
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// This is intended to be a predicated for the for_each generic algorithm
+// find the SV above indicated elevation with the lowest elevation, that is
+// rising, and not equal to prn (the 'current' SV)
+//-----------------------------------------------------------------------------
+bool PhaseCleaner::goodMaster::operator()(const SvDoubleMap::value_type& pdm)
+{
+ bool good = (pdm.second > minVal)
+ && (pdm.first != prn)
+ && (rangeRate[pdm.first][time] >0);
+
+ if (!good)
+ return false;
+
+ if (bestPrn.id < 1 || pdm.second < bestElev)
+ {
+ bestPrn = pdm.first;
+ bestElev = pdm.second;
+ }
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+// This function can't be moved to PhaseResidual since it needs access to all
+// the other PRN's data. Not that this should guarantee that the data exists
+// from both the SVs.
+//-----------------------------------------------------------------------------
+void PhaseCleaner::selectMasters(
+ const gpstk::ObsID& rot,
+ const gpstk::SatID& prn,
+ SvElevationMap& pem)
+{
+ PhaseResidual::ArcList& pral = pot[rot][prn];
+
+ for (PhaseResidual::ArcList::iterator arc = pral.begin(); arc != pral.end(); arc++)
+ {
+ for (PhaseResidual::Arc::iterator i = arc->begin(); i != arc->end(); i++)
+ {
+ const gpstk::DayTime& t = i->first;
+ PhaseResidual::Obs& obs = i->second;
+
+ SvElevationMap::iterator j = pem.find(t);
+ if (j == pem.end())
+ {
+ cout << "No elevation available. Returning." << t << endl;
+ return;
+ }
+ SvDoubleMap& pdm = j->second;
+
+ bool haveMasterObs = false;
+
+ if (arc->master.id > 0)
+ {
+ PhaseResidual::Arc::const_iterator k;
+ if (pot[rot][arc->master].findObs(t, k))
+ haveMasterObs = true;
+ }
+
+ // See if we need a new master...
+ if (!haveMasterObs || pdm[arc->master] < 10)
+ {
+ gpstk::SatID newMaster;
+ goodMaster gm = for_each(pdm.begin(), pdm.end(),
+ goodMaster(15, prn, t, rangeRate));
+ if (gm.bestPrn.id > 0)
+ newMaster = gm.bestPrn;
+ else
+ {
+ if (debugLevel)
+ {
+ cout << "Could not find a suitable master for prn " << prn.id
+ << " " << rot.type
+ << " at " << t
+ << endl;
+ SvDoubleMap::const_iterator e;
+ for (e = pdm.begin(); e != pdm.end(); e++)
+ cout << " prn: " << e->first.id
+ << ", elev:" << e->second
+ << ", rate:" << rangeRate[e->first][t]
+ << endl;
+ }
+ return;
+ }
+
+ PhaseResidual::Arc::const_iterator k;
+ if (!pot[rot][newMaster].findObs(t, k))
+ {
+ if (debugLevel)
+ cout << t << " rot:" << rot << " newMaster:" << newMaster
+ << " Selected an invalid master." << endl;
+ return;
+ }
+
+ if (debugLevel)
+ cout << t << " prn " << newMaster.id << " as master. (" << rot
+ << ")" << endl;
+
+ if (arc->master.id < 1)
+ {
+ arc->master = newMaster;
+ }
+ else
+ {
+ PhaseResidual::ArcList::iterator nextArc = arc; nextArc++;
+ nextArc = pral.insert(nextArc, PhaseResidual::Arc());
+ nextArc->master = newMaster;
+ nextArc->insert(i, arc->end());
+ arc->erase(i, arc->end());
+ break;
+ }
+ }
+ }
+ }
+} // PhaseCleaner::splitMaster()
+
+
+//-----------------------------------------------------------------------------
+// This function can't be moved to PhaseResidual since it needs access to all
+// the other PRN's data. Note that this function assumes that there is data
+// for the master SV.
+//-----------------------------------------------------------------------------
+void PhaseCleaner::doubleDifference(
+ const gpstk::ObsID& rot,
+ const gpstk::SatID& prn,
+ SvElevationMap& pem)
+{
+ PhaseResidual::ArcList& pral = pot[rot][prn];
+
+ for (PhaseResidual::ArcList::iterator arc = pral.begin(); arc != pral.end(); arc++)
+ {
+ if (arc->master.id <1)
+ continue;
+
+ for (PhaseResidual::Arc::iterator i = arc->begin(); i != arc->end(); i++)
+ {
+ const gpstk::DayTime& t = i->first;
+ PhaseResidual::Obs& obs = i->second;
+
+ PhaseResidual::Arc::const_iterator k;
+ if (!pot[rot][arc->master].findObs(t, k))
+ continue;
+
+ const PhaseResidual::Obs& masterObs = k->second;
+
+ // Now compute the dd for this epoch
+ double masterDiff = masterObs.phase11 - masterObs.phase12;
+ double coc = (clockOffset[t]) * (rangeRate[arc->master][t]) / lamda[rot.band];
+ masterDiff -= coc;
+
+ double myDiff = obs.phase11 - obs.phase12;
+ coc = clockOffset[t] * rangeRate[prn][t] / lamda[rot.band];
+ myDiff -= coc;
+
+ obs.dd = masterDiff - myDiff;
+ }
+ }
+} // PhaseCleaner::doubleDifference()
+
+
+//-----------------------------------------------------------------------------
+// This is one call to do all the work. All the other functions should be
+// call by this one.
+//-----------------------------------------------------------------------------
+void PhaseCleaner::debias(SvElevationMap& pem)
+{
+ if (debugLevel)
+ cout << "PhaseCleaner::debias()" << endl;
+
+ // At this point, the pot has only phase1 & phase2 set.
+ // Also only one arc exists for each prn; and that arc doesn't even
+ // have the master prn set.
+ for (PraPrnOt::iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const gpstk::ObsID& rot = i->first;
+ PraPrn& praPrn = i->second;
+ for (PraPrn::iterator j = praPrn.begin(); j != praPrn.end(); j++)
+ {
+ const gpstk::SatID& prn = j->first;
+ PhaseResidual::ArcList& pral = j->second;
+
+ pral.splitOnGaps(maxGapTime);
+ selectMasters(rot, prn, pem);
+ doubleDifference(rot, prn, pem);
+
+ pral.computeTD();
+ pral.splitOnTD();
+ pral.debiasDD();
+ pral.computeTD();
+ pral.splitOnTD();
+ pral.debiasDD();
+ pral.mergeArcs(minArcLen, minArcTime, maxGapTime);
+
+ if (debugLevel>1)
+ cout << "Done cleaning " << prn.id << " on " << rot.type << endl
+ << pral;
+ }
+ }
+} // end of debias()
+
+
+//-----------------------------------------------------------------------------
+// Gets the double differences and puts them back into the DDEpochMap
+//-----------------------------------------------------------------------------
+void PhaseCleaner::getPhaseDD(DDEpochMap& ddem) const
+{
+ if (debugLevel)
+ cout << "putting phases back into ddem" << endl;
+
+ // Really should use pot to walk through the data...
+ for (PraPrnOt::const_iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const gpstk::ObsID& rot = i->first;
+ const PraPrn& pp = i->second;
+
+ for (PraPrn::const_iterator j = pp.begin(); j != pp.end(); j++)
+ {
+ const gpstk::SatID& prn = j->first;
+ const PhaseResidual::ArcList& al = j->second;
+
+ for (PhaseResidual::ArcList::const_iterator k = al.begin(); k != al.end(); k++)
+ {
+ const PhaseResidual::Arc& arc = *k;
+
+ for (PhaseResidual::Arc::const_iterator l = arc.begin(); l != arc.end(); l++)
+ {
+ const gpstk::DayTime& t = l->first;
+ const PhaseResidual::Obs& obs = l->second;
+
+ // Whew! thats deep. Now to stuff the dd back in to the ddem
+ // remember that ddem has it's values in meters
+ if (arc.garbage)
+ ddem[t].ddSvOIDM[prn][rot] = 0;
+ else
+ ddem[t].ddSvOIDM[prn][rot] = obs.dd * lamda[rot.band];
+ }
+ }
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Make a list of "real" cycle slips
+//-----------------------------------------------------------------------------
+void PhaseCleaner::getSlips(
+ CycleSlipList& csl,
+ SvElevationMap& pem) const
+{
+ for (PraPrnOt::const_iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const gpstk::ObsID& rot = i->first;
+ const PraPrn& praPrn = i->second;
+
+ for (PraPrn::const_iterator j = praPrn.begin(); j != praPrn.end(); j++)
+ {
+ const gpstk::SatID& prn = j->first;
+ const PhaseResidual::ArcList& al = j->second;
+
+ PhaseResidual::ArcList::const_iterator k = al.begin();
+ while (k != al.end())
+ {
+ const PhaseResidual::Arc& arc0 = *k;
+ k++;
+ if (k == al.end())
+ break;
+
+ const PhaseResidual::Arc& arc1 = *k;
+
+ if (arc0.garbage || arc1.garbage ||
+ arc0.master != arc1.master)
+ continue;
+
+ const gpstk::DayTime& t1Begin = arc1.begin()->first;
+ PhaseResidual::Arc::const_iterator l = arc0.end(); l--;
+ const gpstk::DayTime& t0End = l->first;
+
+ if (std::abs(t1Begin-t0End) > maxGapTime)
+ continue;
+
+ l = arc1.end(); l--;
+ const gpstk::DayTime& t1End = l->first;
+ const gpstk::DayTime& t0Begin = arc0.begin()->first;
+
+ double t0Len = t0End - t0Begin;
+ double t1Len = t1End - t1Begin;
+ if (t0Len < minArcTime || t1Len < minArcTime)
+ continue;
+
+ CycleSlipRecord cs;
+ cs.t = t1Begin;
+ cs.cycles = (arc1.ddBias - arc0.ddBias);
+ cs.oid = rot;
+ cs.prn = prn;
+ cs.elevation = pem[t1Begin][prn];
+ cs.masterPrn = arc1.master;
+ cs.postCount = arc1.size();
+ cs.preCount = arc0.size();
+ cs.preGap = t1Begin - t0End;
+ csl.push_back(cs);
+ }
+ }
+ }
+
+ // Now to sort these on time.
+ csl.sort();
+}
+
+
+//-----------------------------------------------------------------------------
+// Dump the maps to the standard table format...
+//-----------------------------------------------------------------------------
+void PhaseCleaner::dump(std::ostream& s) const
+{
+ s << "# time PRN type elev clk(m)"
+ << " 2nd diff(m)"
+ << endl;
+
+ for (PraPrnOt::const_iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const gpstk::ObsID& rot = i->first;
+ const PraPrn& pp = i->second;
+
+ for (PraPrn::const_iterator j = pp.begin(); j != pp.end(); j++)
+ {
+ const gpstk::SatID& prn = j->first;
+ const PhaseResidual::ArcList& al = j->second;
+
+ for (PhaseResidual::ArcList::const_iterator k = al.begin(); k != al.end(); k++)
+ {
+ const PhaseResidual::Arc& arc = *k;
+
+ for (PhaseResidual::Arc::const_iterator l = arc.begin(); l != arc.end(); l++)
+ {
+ const gpstk::DayTime& t = l->first;
+ const PhaseResidual::Obs& obs = l->second;
+
+ s.setf(ios::fixed, ios::floatfield);
+ s << left << setw(20) << t << right
+ << setfill(' ')
+ << " " << setw(2) << prn.id
+ << " " << ObsID::cbStrings[rot.band]
+ << " " << setprecision(1) << setw(5) << 0 // elevation
+ << " " << setprecision(3) << setw(12) << 0 // clock
+ << " " << setprecision(6) << setw(14) << obs.dd * lamda[rot.band]
+ << endl;
+ }
+ }
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+
+unsigned PhaseCleanerA::debugLevel;
+
+//-----------------------------------------------------------------------------
+// Pulls the phase data data into arcs. Only data that exists on both receivers
+// is included
+//-----------------------------------------------------------------------------
+void PhaseCleanerA::addData(const ObsEpochMap& rx1,
+ const ObsEpochMap& rx2,
+ const unsigned long minimumSNR)
+{
+ if (debugLevel)
+ cout << "PhaseCleanerA::addData(), "
+ << rx1.size() << ", " << rx2.size() << " epochs" << endl;
+
+
+ // Now loop over all the epochs, pulling the data into the arcs
+ for (ObsEpochMap::const_iterator ei1=rx1.begin(); ei1!=rx1.end(); ei1++)
+ {
+ DayTime t = ei1->first;
+ const ObsEpoch& oe1 = ei1->second;
+ ObsEpochMap::const_iterator ei2 = rx2.find(t);
+
+ // Gotta have data from the other receiver
+ if (ei2 == rx2.end())
+ continue;
+ const ObsEpoch& oe2 = ei2->second;
+
+ double clockOffset = oe1.rxClock - oe2.rxClock;
+
+ // SV line-of-sight motion, in meters/second
+ map<gpstk::SatID, double> rangeRate;
+
+ // First we need to get a range rates for all SVs
+ for (ObsEpoch::const_iterator i=oe1.begin(); i != oe1.end(); i++)
+ {
+ const SatID& sv = i->first;
+ const SvObsEpoch& soe = i->second;
+
+ // We need a doppler, and any one will do
+ SvObsEpoch::const_iterator d;
+ for (d = soe.begin(); d != soe.end(); d++)
+ if (d->first.type == ObsID::otDoppler)
+ break;
+
+ if (d == soe.end())
+ continue;
+
+ double freq = d->first.band == ObsID::cbL2 ? L2_FREQ : L1_FREQ;
+ rangeRate[sv] = d->second * C_GPS_M/freq;
+ }
+
+ // Loop over all SVs in track on reciever #1
+ for (ObsEpoch::const_iterator pi11=oe1.begin(); pi11 != oe1.end(); pi11++)
+ {
+ const SatID& sv1 = pi11->first;
+ const SvObsEpoch& soe11 = pi11->second; // SV #1, Rx #1
+
+ // Make sure receiver #2 saw SV #1
+ const ObsEpoch::const_iterator pi12 = oe2.find(sv1);
+ if (pi12 == oe2.end())
+ continue;
+ const SvObsEpoch& soe12 = pi12->second; // SV #1, Rx #2
+
+ // Here we loop over all the 'other' SVs in track on receiver #1
+ for (ObsEpoch::const_iterator pi21=pi11; pi21 != oe1.end(); pi21++)
+ {
+ if (pi21 == pi11)
+ continue;
+
+ const SatID& sv2 = pi21->first;
+ const SvObsEpoch& soe21 = pi21->second; // SV #2, Rx #1
+
+ // Make sure receiver #2 saw SV #2
+ ObsEpoch::const_iterator pi22 = oe2.find(sv2);
+ if (pi22 == oe2.end())
+ continue;
+ const SvObsEpoch& soe22 = pi22->second; // SV #2, Rx #2
+
+ SatIdPair svPair(sv1, sv2);
+
+ if (debugLevel>2)
+ cout << t << " " << sv1 << "-" << sv2 << endl;
+
+ // Now go throgh all phase observations from SV #1, Rx #1
+ SvObsEpoch::const_iterator phase11;
+ for (phase11 = soe11.begin(); phase11 != soe11.end(); phase11++)
+ {
+ const ObsID& rot = phase11->first;
+ if (rot.type != ObsID::otPhase)
+ continue;
+
+ // Make sure that we have phase data from SV #1, Rx #2
+ SvObsEpoch::const_iterator phase12 = soe12.find(rot);
+ if (phase12 == soe12.end())
+ continue;
+
+ // Make sure that we have phase data from SV #2, Rx #1
+ SvObsEpoch::const_iterator phase21 = soe21.find(rot);
+ if (phase21 == soe21.end())
+ continue;
+
+ // Make sure that we have phase data from SV #2, Rx #2
+ SvObsEpoch::const_iterator phase22 = soe22.find(rot);
+ if (phase22 == soe22.end())
+ continue;
+
+ // Don't use the data if we have an SNR in the data and it looks
+ // bogus.
+ double snr=-1;
+ ObsID srot = rot;
+ srot.type = ObsID::otSNR;
+ SvObsEpoch::const_iterator snr_itr = soe11.find(srot);
+
+ if (snr_itr != soe11.end())
+ {
+ snr = snr_itr->second;
+ if (std::abs(snr) < minimumSNR )
+ continue;
+ }
+
+ // And we can't compute our clock correction without the
+ // doppler
+ if (rangeRate[sv1] == 0 || rangeRate[sv2] ==0)
+ continue;
+
+ // Note that we need the phase in cycles to make the PhaseResidual
+ // class work right.
+ PhaseResidual::Arc& arc = pot[rot][svPair].front();
+ PhaseResidual::Obs& obs = arc[t];
+ obs.phase11 = phase11->second;
+ obs.phase12 = phase12->second;
+ obs.phase21 = phase21->second;
+ obs.phase22 = phase22->second;
+ obs.snr1 = snr;
+
+ double lamdaInv;
+ if (rot.band == ObsID::cbL1)
+ lamdaInv = L1_FREQ/C_GPS_M;
+ else if (rot.band == ObsID::cbL2)
+ lamdaInv = L2_FREQ/C_GPS_M;
+ else
+ continue;
+
+ // Now compute the dd for this epoch
+ double sd1 = obs.phase11 - obs.phase12;
+ double coc = clockOffset * rangeRate[sv1] * lamdaInv;
+ sd1 -= coc;
+
+ double sd2 = obs.phase21 - obs.phase22;
+ coc = clockOffset * rangeRate[sv2] * lamdaInv;
+ sd2 -= coc;
+
+ obs.dd = sd1 - sd2;
+ }
+ }
+ }
+ }
+}
+
+
+
+//-----------------------------------------------------------------------------
+// This is one call to do all the work. All the other functions should be
+// call by this one.
+//-----------------------------------------------------------------------------
+void PhaseCleanerA::debias(SvElevationMap& pem)
+{
+ if (debugLevel)
+ cout << "PhaseCleanerA::debias()" << endl;
+
+ // At this point, the pot has all phases set and the double difference
+ // computed. Only one arc exists for each prn pair.
+ for (PraSvPrOt::iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const ObsID& rot = i->first;
+ PraSvPair& praSv = i->second;
+ for (PraSvPair::iterator j = praSv.begin(); j != praSv.end(); j++)
+ {
+ const SatIdPair& svPair = j->first;
+ PhaseResidual::ArcList& pral = j->second;
+
+ pral.splitOnGaps(maxGapTime);
+
+ pral.computeTD();
+ pral.splitOnTD();
+ pral.debiasDD();
+
+ pral.mergeArcs(minArcLen, minArcTime, maxGapTime);
+
+ if (debugLevel>1)
+ cout << "Done cleaning " << svPair.first
+ << ":" << svPair.second
+ << " on " << rot.type << endl
+ << pral;
+ }
+ }
+} // end of debias()
+
+
+//-----------------------------------------------------------------------------
+// Gets the double differences and puts them back into the DDEpochMap
+//-----------------------------------------------------------------------------
+void PhaseCleanerA::getPhaseDD(DDEpochMap& ddem) const
+{
+ if (debugLevel)
+ cout << "putting phases back into ddem" << endl;
+
+ // Really should use pot to walk through the data...
+ for (PraSvPrOt::const_iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const ObsID& rot = i->first;
+ const PraSvPair& pp = i->second;
+
+ double lamda;
+ if (rot.band == ObsID::cbL1)
+ lamda = C_GPS_M/L1_FREQ;
+ else if (rot.band == ObsID::cbL2)
+ lamda = C_GPS_M/L2_FREQ;
+ else
+ continue;
+
+ for (PraSvPair::const_iterator j = pp.begin(); j != pp.end(); j++)
+ {
+ const SatIdPair& svPair = j->first;
+ const PhaseResidual::ArcList& al = j->second;
+
+ for (PhaseResidual::ArcList::const_iterator k = al.begin(); k != al.end(); k++)
+ {
+ const PhaseResidual::Arc& arc = *k;
+
+ for (PhaseResidual::Arc::const_iterator l = arc.begin(); l != arc.end(); l++)
+ {
+ const DayTime& t = l->first;
+ const PhaseResidual::Obs& obs = l->second;
+
+ // Whew! thats deep. Now to stuff the dd back in to the ddem
+ // remember that ddem has it's values in meters
+ if (arc.garbage)
+ ddem[t].ddPrOIDM[svPair][rot] = 0;
+ else
+ ddem[t].ddPrOIDM[svPair][rot] = obs.dd * lamda;
+ }
+ }
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+// Dump the maps to the standard table format...
+//-----------------------------------------------------------------------------
+void PhaseCleanerA::dump(std::ostream& s) const
+{
+ s << "# time PRN type elev clk(m)"
+ << " 2nd diff(m)"
+ << endl;
+
+ for (PraSvPrOt::const_iterator i = pot.begin(); i != pot.end(); i++)
+ {
+ const ObsID& rot = i->first;
+ const PraSvPair& pp = i->second;
+
+ double lamda;
+ if (rot.band == ObsID::cbL1)
+ lamda = C_GPS_M/L1_FREQ;
+ else if (rot.band == ObsID::cbL2)
+ lamda = C_GPS_M/L2_FREQ;
+ else
+ continue;
+
+ for (PraSvPair::const_iterator j = pp.begin(); j != pp.end(); j++)
+ {
+ const SatIdPair& svPair = j->first;
+ const PhaseResidual::ArcList& al = j->second;
+
+ for (PhaseResidual::ArcList::const_iterator k = al.begin(); k != al.end(); k++)
+ {
+ const PhaseResidual::Arc& arc = *k;
+
+ for (PhaseResidual::Arc::const_iterator l = arc.begin(); l != arc.end(); l++)
+ {
+ const DayTime& t = l->first;
+ const PhaseResidual::Obs& obs = l->second;
+
+ s.setf(ios::fixed, ios::floatfield);
+ s << left << setw(20) << t << right
+ << setfill(' ')
+ << " " << setw(2) << svPair.first.id
+ << " " << setw(2) << svPair.second.id
+ << " " << ObsID::cbStrings[rot.band]
+ << " " << setprecision(1) << setw(5) << 0 // elevation
+ << " " << setprecision(3) << setw(12) << 0 // clock
+ << " " << setprecision(6) << setw(14) << obs.dd * lamda
+ << endl;
+ }
+ }
+ }
+ }
+}
diff --git a/dev/apps/reszilla/PhaseCleaner.hpp b/dev/apps/reszilla/PhaseCleaner.hpp
new file mode 100644
index 0000000..b540e62
--- /dev/null
+++ b/dev/apps/reszilla/PhaseCleaner.hpp
@@ -0,0 +1,159 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef PHASECLEANER_HPP
+#define PHASECLEANER_HPP
+
+#include <set>
+
+#include "DDEpoch.hpp"
+#include "PhaseResidual.hpp"
+
+typedef std::map<gpstk::DayTime, double> TimeDoubleMap;
+
+class PhaseCleaner
+{
+public:
+ PhaseCleaner(long al, double at, double gt);
+
+ void addData(
+ const gpstk::ObsEpochMap& rx1,
+ const gpstk::ObsEpochMap& rx2,
+ const unsigned long minimumSNR);
+
+ void debias(SvElevationMap& pem);
+
+ void selectMasters(
+ const gpstk::ObsID& oid,
+ const gpstk::SatID& prn,
+ SvElevationMap& pem);
+
+ void doubleDifference(
+ const gpstk::ObsID& oid,
+ const gpstk::SatID& prn,
+ SvElevationMap& pem);
+
+ void getSlips(
+ CycleSlipList& csl,
+ SvElevationMap& pem) const;
+
+ void getPhaseDD(DDEpochMap& ddem) const;
+
+ void dump(std::ostream& s) const;
+
+ mutable std::map<gpstk::ObsID::CarrierBand, double> lamda;
+
+ // And an set of arcs for each PRN
+ typedef std::map<gpstk::SatID, PhaseResidual::ArcList> PraPrn;
+
+ // And a set of those for each obs type
+ typedef std::map<gpstk::ObsID, PraPrn> PraPrnOt;
+ PraPrnOt pot;
+
+ // Rx1 - Rx2 clock, in meters.
+ TimeDoubleMap clockOffset;
+
+ // SV line-of-sight motion, in meters/second
+ typedef std::map<gpstk::SatID, TimeDoubleMap> PrnTimeDoubleMap;
+ PrnTimeDoubleMap rangeRate;
+
+ long minArcLen;
+ double minArcTime, maxGapTime;
+
+ static unsigned debugLevel;
+
+ typedef std::map<gpstk::DayTime, gpstk::SatID> TimePrnMap;
+
+ class goodMaster
+ {
+ public:
+ goodMaster(double v,
+ const gpstk::SatID& p,
+ const gpstk::DayTime& t,
+ PrnTimeDoubleMap& rr)
+ : minVal(v), prn(p), time(t), rangeRate(rr){};
+
+ const double minVal; // Above this elevation
+ const gpstk::SatID& prn; // Not this prn
+ const gpstk::DayTime& time; // time to evaluate range rate
+ PrnTimeDoubleMap& rangeRate;
+
+ double bestElev;
+ gpstk::SatID bestPrn;
+ bool operator()(const SvDoubleMap::value_type& pdm);
+ };
+};
+
+
+class PhaseCleanerA
+{
+public:
+ PhaseCleanerA(long al, double at, double gt)
+ : minArcLen(al), minArcTime(at), maxGapTime(gt)
+ {}
+
+ void addData(
+ const gpstk::ObsEpochMap& rx1,
+ const gpstk::ObsEpochMap& rx2,
+ const unsigned long minimumSNR);
+
+ void debias(SvElevationMap& pem);
+
+ void getSlips(
+ CycleSlipList& csl,
+ SvElevationMap& pem) const;
+
+ void getPhaseDD(DDEpochMap& ddem) const;
+
+ void dump(std::ostream& s) const;
+
+ // And an set of arcs for each pair of SVs
+ typedef std::map<SatIdPair, PhaseResidual::ArcList> PraSvPair;
+
+ // And a set of those for each obs type
+ typedef std::map<gpstk::ObsID, PraSvPair> PraSvPrOt;
+ PraSvPrOt pot;
+
+ long minArcLen;
+ double minArcTime, maxGapTime;
+
+ static unsigned debugLevel;
+};
+
+#endif
+
diff --git a/dev/apps/reszilla/PhaseResidual.cpp b/dev/apps/reszilla/PhaseResidual.cpp
new file mode 100644
index 0000000..11721a2
--- /dev/null
+++ b/dev/apps/reszilla/PhaseResidual.cpp
@@ -0,0 +1,341 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <algorithm>
+
+#include "Stats.hpp"
+
+#include "PhaseResidual.hpp"
+
+namespace PhaseResidual
+{
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ void Obs::dump(std::ostream& s) const
+ {
+ s << "phase:" << phase11
+ << " dd:" << dd
+ << " td:" << td;
+ }
+
+ std::ostream& operator << (std::ostream& s, const Obs& pr)
+ { pr.dump(s); return s; }
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ void Arc::computeTD(void)
+ {
+ iterator i = begin();
+ while (i != end())
+ {
+ Obs& prev = i->second;
+ i++;
+ if (i == end())
+ break;
+ Obs& curr = i->second;
+ curr.td = curr.dd - prev.dd;
+ }
+ }
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ void Arc::debiasDD(double bias)
+ {
+ ddBias += bias;
+ for (iterator i = begin(); i != end(); i++)
+ i->second.dd -= bias;
+ }
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ gpstk::Stats<double> Arc::statsDD(void) const
+ {
+ gpstk::Stats<double> stats;
+
+ for (const_iterator i = begin(); i != end(); i++)
+ stats.Add(i->second.dd);
+
+ return stats;
+ }
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ void Arc::dump(std::ostream& s) const
+ {
+ gpstk::Stats<double> stats = statsDD();
+ const_iterator i=begin();
+ const gpstk::DayTime& t0=i->first;
+ i = end();
+
+ if (i != begin())
+ {
+ i--;
+ const gpstk::DayTime& t1=i->first;
+ s << std::left
+ << "Arc: " << t0.printf("%02H:%02M:%04.1f")
+ << " - " << t1.printf("%02H:%02M:%04.1f")
+ << " N:" << std::setw(5) << stats.N();
+ }
+
+
+ if (!garbage)
+ {
+ s << " master:" << std::setw(2) << master.id
+ << " sdev:" << std::setprecision(3) << std::setw(8) << stats.StdDev()
+ << " ddBias:" << std::setprecision(12) << ddBias;
+ if (stats.Average() > stats.StdDev()/sqrt((float)stats.N()))
+ s << " avg:" << std::setprecision(4) << stats.Average();
+ if (stats.StdDev() == 0)
+ s << " Suspect!";
+ }
+ else
+ s << " Garbage.";
+ s << std::endl;
+ }
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ std::ostream& operator <<(std::ostream& s, const Arc& arc)
+ { arc.dump(s); return s; }
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ class timeGap
+ {
+ public:
+ timeGap(double len):minGap(len){};
+ double minGap;
+ bool operator()(Arc::value_type& obs0, Arc::value_type& obs1)
+ {
+ return std::abs(obs0.first - obs1.first) > minGap;
+ }
+ };
+
+
+//------------------------------------------------------------------------------
+// Break the arc up in sections that are separated by the indicated number
+// of seconds.
+//------------------------------------------------------------------------------
+ void ArcList::splitOnGaps(double gapSize)
+ {
+ for (iterator arc = begin(); arc != end(); arc++)
+ {
+ Arc::iterator i = adjacent_find(arc->begin(), arc->end(), timeGap(gapSize));
+ if (i == arc->end())
+ continue;
+
+ // Make a new empty arc immedietly after the current arc and
+ // move all the data from here to the end of the current arc into
+ // the new arc.
+ iterator nextArc = arc;
+ nextArc++;
+ nextArc = insert(nextArc, Arc());
+ nextArc->master = arc->master;
+ nextArc->ddBias = arc->ddBias;
+ nextArc->insert(++i, arc->end());
+ arc->erase(i, arc->end());
+ arc = nextArc;
+ }
+ }
+
+
+//------------------------------------------------------------------------------
+// Just compute the triple difference for all arcs
+//------------------------------------------------------------------------------
+ void ArcList::computeTD(void)
+ {
+ for (iterator i=begin(); i!=end(); i++)
+ i->computeTD();
+ }
+
+
+//------------------------------------------------------------------------------
+// Break the arc on big triple differences
+//------------------------------------------------------------------------------
+ void ArcList::splitOnTD(void)
+ {
+ for (iterator arc = begin(); arc != end(); arc++)
+ {
+ for (Arc::iterator i = arc->begin(); i != arc->end(); i++)
+ {
+ Obs& pr = i->second;
+ bool jump = std::abs(pr.td) > 0.45;
+
+ // If this followed by a equal and oppisite jump, it is an outlier,
+ // not a real jump.
+ if (jump)
+ {
+ Arc::iterator j = i; j++;
+ if (j != arc->end() && std::abs(pr.td + j->second.td) < 0.45)
+ jump = false;
+ }
+
+ if (jump)
+ {
+ // Make a new empty arc immedietly after the current arc and
+ // move all the data from here to the end of the current arc into
+ // the new arc.
+ pr.td = 0;
+ iterator nextArc = arc;
+ nextArc++;
+ nextArc = insert(nextArc, Arc());
+
+ nextArc->master = arc->master;
+ nextArc->ddBias = arc->ddBias;
+ nextArc->insert(i, arc->end());
+ arc->erase(i, arc->end());
+ arc = nextArc;
+ i = arc->begin();
+ }
+ }
+ }
+ }
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ void ArcList::debiasDD(void)
+ {
+ for (iterator i = begin(); i != end(); i++)
+ i->debiasDD(i->statsDD().Average());
+ }
+
+
+//------------------------------------------------------------------------------
+// Find the specified obs
+//------------------------------------------------------------------------------
+ bool ArcList::findObs(const gpstk::DayTime& t, Arc::const_iterator& obs)
+ {
+ for (iterator i = begin(); i != end(); i++)
+ {
+ obs = i->find(t);
+ if (obs != i->end())
+ return true;
+ }
+ return false;
+ }
+
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+ void ArcList::mergeArcs(long arcLen, double arcTime, double gapTime)
+ {
+ // First mark arcs as garbage as appropriate
+ for (iterator i = begin(); i != end(); i++)
+ {
+ Arc::iterator end_of_prev=i->end();
+ if (end_of_prev == i->begin())
+ i->garbage = true;
+ else
+ end_of_prev--;
+ Arc::iterator beg_of_curr=i->begin();
+
+ double dt = end_of_prev->first - beg_of_curr->first;
+
+ if (i->size() < arcLen || dt < arcTime)
+ i->garbage = true;
+ }
+
+ iterator i = begin();
+ while (i != end() )
+ {
+ Arc& prev = *i;
+ i++;
+ if (i == end())
+ break;
+ Arc& curr = *i;
+ bool merge=false;
+
+ if (std::abs(curr.ddBias - prev.ddBias) < 0.45 &&
+ curr.master == prev.master && !prev.garbage && !curr.garbage)
+ merge = true;
+ else if (prev.garbage && curr.garbage &&
+ (curr.begin()->first - prev.rbegin()->first) < gapTime)
+ merge = true;
+
+ if (merge)
+ {
+ // First make the biases exactly the same
+ curr.debiasDD(prev.ddBias - curr.ddBias);
+ // Then put the data from the current arc into the previous
+ prev.insert(curr.begin(), curr.end());
+ // and kill the current arc
+ i = erase(i);
+ i--;
+ }
+ }
+ }
+
+
+//------------------------------------------------------------------------------
+ void ArcList::dump(std::ostream& s) const
+ {
+ for (const_iterator i = begin(); i != end(); i++)
+ {
+ i->dump(s);
+ const_iterator j = i;
+ if (++j != end())
+ {
+ // Yes, this is the dark side of the STL
+ double gap = j->begin()->first - i->rbegin()->first;
+ if (gap > 3)
+ s << "Gap: " << gap << " seconds" << std::endl;
+ }
+ }
+
+ gpstk::Stats<double> stats;
+ for (const_iterator i = begin(); i != end(); i++)
+ if (!i->garbage)
+ for (Arc::const_iterator j = (i->begin())++; j != i->end(); j++)
+ stats.Add(j->second.dd);
+
+ s << "ArcList N:" << stats.N()
+ << " sdev:" << std::setprecision(4) << stats.StdDev();
+
+ if (stats.Average() > stats.StdDev()/sqrt((float)stats.N()))
+ s << " avg:" << std::setprecision(4) << stats.Average();
+
+ s << std::endl;
+ }
+
+ std::ostream& operator <<(std::ostream& s, const ArcList& al)
+ { al.dump(s); return s; }
+
+} // end of PhaseResidual namespace
diff --git a/dev/apps/reszilla/PhaseResidual.hpp b/dev/apps/reszilla/PhaseResidual.hpp
new file mode 100644
index 0000000..2df6d58
--- /dev/null
+++ b/dev/apps/reszilla/PhaseResidual.hpp
@@ -0,0 +1,134 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef PHASERESIDUAL_HPP
+#define PHASERESIDUAL_HPP
+
+#include <map>
+#include <iostream>
+
+#include "DayTime.hpp"
+#include "Stats.hpp"
+#include "CycleSlipList.hpp"
+
+
+// This namespace is just to keep the identifiers meaninfull and short...
+namespace PhaseResidual
+{
+ // The value of phase, double difference, triple difference for a single
+ // sv observable at a point in time.
+ class Obs
+ {
+ public:
+ double phase11; // original phase in cycles Sv1, Rx1
+ double phase12; // ditto for Sv1, Rx2
+ double phase21; // ditto for Sv2, Rx1
+ double phase22; // ditto for Sv2, Rx2
+ double dd; // the double difference in cycles
+ double td; // the triple difference in cycles
+ double snr1;
+
+ Obs() : phase11(0), phase12(0), phase21(0), phase22(0),
+ dd(0), td(0), snr1(0)
+ {};
+
+ void dump(std::ostream& s) const;
+ };
+
+ std::ostream& operator << (std::ostream& s, const Obs& pr);
+
+
+ // This is a set of observations over time plus a bias that has been
+ // removed from the double difference
+ class Arc : public std::map<gpstk::DayTime, Obs>
+ {
+ public:
+ Arc():ddBias(0), garbage(false){};
+ void dump(std::ostream& s) const;
+
+ double ddBias;
+ gpstk::SatID master;
+
+ bool garbage;
+
+ void computeTD();
+ void debiasDD(double bias);
+
+ gpstk::Stats<double> statsDD(void) const;
+
+ bool operator<(const Arc& right) const
+ { return (--end())->first < right.begin()->first;}
+ };
+
+ std::ostream& operator << (std::ostream& s, const Arc& arc);
+
+
+ // This is a set of arcs. While this class doesn't enforce it, the will
+ // be all from the same SV/observation type
+ class ArcList : public std::list<Arc>
+ {
+ public:
+ ArcList() {push_back(Arc());};
+
+ // Split the arcs on data gaps
+ void splitOnGaps(double gap);
+
+ // Compute triple differences in the arcs,
+ void computeTD();
+
+ // Split arcs based upon jumps in the triple differences.
+ void splitOnTD();
+
+ // Search all arcs and find the first obs that matches the specified time.
+ bool findObs(const gpstk::DayTime& t, Arc::const_iterator& obs);
+
+ // Recombine adjcent arcs (that are seperated by less than maxGapTime
+ // seconds) that have the same bias and master or are both shorter
+ // than the specified arcLen/arcTime. The later will get marked
+ // as garbage in the process.
+ void mergeArcs(long arcLen, double arcTime, double maxGapTime);
+
+ // make each arc have a zero mean
+ void debiasDD();
+
+ void dump(std::ostream& s) const;
+ };
+
+ std::ostream& operator << (std::ostream& s, const ArcList& pral);
+}
+#endif
diff --git a/dev/apps/reszilla/RobustLinearEstimator.cpp b/dev/apps/reszilla/RobustLinearEstimator.cpp
new file mode 100644
index 0000000..7b075c9
--- /dev/null
+++ b/dev/apps/reszilla/RobustLinearEstimator.cpp
@@ -0,0 +1,218 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <math.h>
+#include <algorithm>
+#include <limits>
+
+#include "RobustLinearEstimator.hpp"
+
+// A little bit of syntatical sugar...
+typedef DoubleDoubleVec::const_iterator DDVci;
+#define SIGN(a,b) ((b) >= 0.0 ? std::abs(a) : -std::abs(a))
+
+using namespace std;
+
+
+double median(vector<double>& vec)
+{
+ size_t N=vec.size();
+ double m=vec[N/2];
+ if (! (N & 1))
+ m = 0.5 * (m + vec[N/2-1]);
+ return m;
+}
+
+double medTail(vector<double>& vec, double f)
+{
+ size_t N=vec.size();
+ size_t M=std::max(static_cast<int>(N*(1-f)), 0);
+ double med = median(vec);
+ double ml = std::abs(vec[M]-med);
+ double mh = std::abs(vec[N-M]-med);
+ return std::max(ml, mh);
+}
+
+
+void RobustLinearEstimator::process(
+ DoubleDoubleVec::const_iterator b,
+ DoubleDoubleVec::const_iterator e)
+{
+ // Yea, we could probably find a more efficient way to do this but...
+ process(DoubleDoubleVec(b,e));
+}
+
+
+void RobustLinearEstimator::process(const DoubleDoubleVec& d)
+{
+ std::vector<double> y(d.size());
+ size_t j=0;
+ for (DDVci i=d.begin(); i!=d.end(); i++,j++)
+ y[j] = i->second;
+
+ sort(y.begin(), y.end());
+ stripY=medTail(y, stripPercent);
+ medianY=median(y);
+
+ // As a first guess for a and b, find the least-squares fit
+ for (DDVci i=d.begin(); i!=d.end(); i++)
+ {
+ if (std::abs(i->second - medianY) > stripY)
+ continue;
+ data.push_back(*i);
+ double x = i->first;
+ double y = i->second;
+ sumX += x;
+ sumY += y;
+ sumXY += x*y;
+ sumXX += x*x;
+ }
+
+ if (data.size()<3)
+ return;
+ double n = static_cast<double>(data.size());
+ double del = n*sumXX - sumX*sumX;
+ a = (sumXX*sumY - sumX*sumXY) / del;
+ b = (n*sumXY - sumX*sumY) / del;
+
+ // Now compute the chi^2 for the LR computed a, b
+ double chisq=0;
+ for (DDVci i=data.begin(); i!=data.end(); i++)
+ {
+ double x = i->first;
+ double y = i->second;
+ double tmp = y - (a + b*x);
+ chisq += tmp*tmp;
+ }
+
+ // The standard deviation will give some idea of how big an iteration
+ // step to take.
+ double sig_b = std::sqrt(chisq/del);
+ double b1 = b;
+
+ if (debugLevel)
+ cout << setprecision(3) << fixed
+ << "n=" << (int)n << " sig_b=" << sig_b << " chisq=" << chisq << endl
+ << "a="<< a << " b=" << b << endl;
+
+ double f1 = rofunc(b1);
+
+ valid = true;
+ // If the sigma on b is already zero, then the current values of a & b are
+ // perfect. This should never happen with N>3, I think.
+ if (sig_b == 0.0)
+ return;
+
+ double b2 = b + SIGN(1*sig_b, f1);
+ double f2 = rofunc(b2);
+
+ if (b2 == b1)
+ return;
+
+ while (f1*f2 > 0)
+ {
+ b = b2 + 1.6*(b2-b1);
+ b1 = b2;
+ f1 = f2;
+ b2 = b;
+ f2 = rofunc(b2);
+ }
+ sig_b *= 0.01;
+
+ // Refine until the error is a negligible number of standard deviations
+ while (std::abs(b2-b1) > sig_b)
+ {
+ b = b1 + 0.5 * (b2-b1);
+ if (b == b1 || b == b2)
+ break;
+ double f = rofunc(b);
+ if (f*f1 >= 0)
+ {
+ f1=f;
+ b1=b;
+ }
+ else
+ {
+ f2=f;
+ b2=b;
+ }
+ }
+}
+
+// Evaluates the right-hand side of equation (15.7.16) of Numerical Recipes
+// for a given value of b.
+// Note that this function updates a, and abdev
+double RobustLinearEstimator::rofunc(const double b_est)
+{
+ vector<double> abxVec(data.size());
+
+ size_t j=0;
+ for (DDVci i=data.begin(); i!=data.end(); i++)
+ {
+ double x = i->first;
+ double y = i->second;
+ abxVec[j++] = y - b_est * x;
+ }
+
+ sort(abxVec.begin(), abxVec.end());
+ a = median(abxVec);
+
+ std::numeric_limits<double> dl;
+ const double eps=dl.epsilon();
+ abdev=0;
+ double sum=0;
+ for (DDVci i=data.begin(); i != data.end(); i++)
+ {
+ double x=i->first;
+ double y=i->second;
+ double d = y - (b_est * x + a);
+ abdev += std::abs(d);
+ if (y != 0)
+ d /= std::abs(y);
+ if (std::abs(d) > eps)
+ sum += (d >= 0 ? x : -x);
+ }
+
+ abdev /= data.size();
+
+ if (debugLevel)
+ cout <<"a="<< a << " b=" << b << " b_est=" << b_est
+ << " f=" << sum << " abdev=" << abdev << endl;
+
+ return sum;
+}
diff --git a/dev/apps/reszilla/RobustLinearEstimator.hpp b/dev/apps/reszilla/RobustLinearEstimator.hpp
new file mode 100644
index 0000000..c3b05f6
--- /dev/null
+++ b/dev/apps/reszilla/RobustLinearEstimator.hpp
@@ -0,0 +1,85 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ROBUSTLINEARESTIMATOR_HPP
+#define ROBUSTLINEARESTIMATOR_HPP
+
+#include <map>
+#include <vector>
+#include <iostream>
+
+#include <DayTime.hpp>
+
+typedef std::pair<double, double> DoubleDouble;
+typedef std::vector< DoubleDouble > DoubleDoubleVec;
+
+// An object to compute a robust estimate of a linear fit to the
+// series data given. It fits y = a + bx by the criterion of least absolute
+// deviations. The fitted parameters a and b are output, along with abdev, which
+// is the mean absolute deviation (in y) of the experimental points from the
+// fitted line.
+class RobustLinearEstimator
+{
+public:
+
+ RobustLinearEstimator()
+ :a(0), b(0), abdev(0), stripPercent(0.995),
+ sumX(0), sumY(0), sumXX(0), sumXY(0),
+ medianY(0), stripY(0), debugLevel(0),
+ valid(false)
+ {};
+
+ void process(const DoubleDoubleVec& d);
+ void process(DoubleDoubleVec::const_iterator b,
+ DoubleDoubleVec::const_iterator e);
+
+ double a, b, abdev;
+ double medianY, stripY;
+ int debugLevel;
+ double stripPercent;
+ bool valid;
+ double eval(const double x) const {return a+b*x;};
+
+private:
+ DoubleDoubleVec data;
+ double sumX, sumY, sumXX, sumXY;
+
+ double rofunc(const double b_est);
+};
+
+#endif
diff --git a/dev/apps/reszilla/SvElevationMap.cpp b/dev/apps/reszilla/SvElevationMap.cpp
new file mode 100644
index 0000000..0ef49c0
--- /dev/null
+++ b/dev/apps/reszilla/SvElevationMap.cpp
@@ -0,0 +1,72 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "SvElevationMap.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+// ---------------------------------------------------------------------
+// ---------------------------------------------------------------------
+SvElevationMap elevation_map(const ObsEpochMap& oem,
+ const Triple& ap,
+ const EphemerisStore& eph)
+{
+ SvElevationMap pem;
+
+ ECEF rxpos(ap);
+
+ ObsEpochMap::const_iterator oem_itr;
+ for (oem_itr=oem.begin(); oem_itr!=oem.end(); oem_itr++)
+ {
+ const DayTime& t = oem_itr->first;
+ const ObsEpoch& oe = oem_itr->second;
+ ObsEpoch::const_iterator oe_itr;
+ for (oe_itr=oe.begin(); oe_itr!=oe.end(); oe_itr++)
+ try
+ {
+ SatID prn = oe_itr->first;
+ Xvt svpos = eph.getPrnXvt(prn.id, t);
+ pem[t][prn] = rxpos.elvAngle(svpos.x);
+ }
+ catch (EphemerisStore::NoEphemerisFound& e)
+ {
+ }
+ }
+ return pem;
+}
diff --git a/dev/apps/reszilla/SvElevationMap.hpp b/dev/apps/reszilla/SvElevationMap.hpp
new file mode 100644
index 0000000..79c504c
--- /dev/null
+++ b/dev/apps/reszilla/SvElevationMap.hpp
@@ -0,0 +1,57 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef SVELEVATIONMAP_HPP
+#define SVELEVATIONMAP_HPP
+
+// gpstk crud
+#include "DayTime.hpp"
+#include "EphemerisStore.hpp"
+#include "ObsEpochMap.hpp"
+
+// The key for this map is the prn of the SV
+// PrnElevationMap pem;
+// pem[time][prn] = elevation;
+
+typedef std::map<gpstk::SatID, double> SvDoubleMap;
+typedef std::map<gpstk::DayTime, SvDoubleMap > SvElevationMap;
+
+SvElevationMap elevation_map(const gpstk::ObsEpochMap& obs,
+ const gpstk::Triple& ap,
+ const gpstk::EphemerisStore& bce);
+#endif
diff --git a/dev/apps/reszilla/ddGen.cpp b/dev/apps/reszilla/ddGen.cpp
new file mode 100644
index 0000000..4be0eee
--- /dev/null
+++ b/dev/apps/reszilla/ddGen.cpp
@@ -0,0 +1,510 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <fstream>
+#include <string>
+
+#include <BasicFramework.hpp>
+#include <MSCData.hpp>
+#include <MSCStream.hpp>
+#include <EpochClockModel.hpp>
+
+#include "OrdEngine.hpp"
+#include "ObsReader.hpp"
+#include "EphReader.hpp"
+
+#include "DDEpoch.hpp"
+#include "PhaseCleaner.hpp"
+#include "CycleSlipList.hpp"
+#include "SvElevationMap.hpp"
+#include "ElevationRange.hpp"
+#include "BCEphemerisStore.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+
+class DDGen : public gpstk::BasicFramework
+{
+public:
+ DDGen() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void spinUp();
+ virtual void process();
+
+private:
+
+ string ddMode;
+ double minArcGap; // seconds
+ double minArcTime; // seconds
+ unsigned long minArcLen; // epochs
+ unsigned long msid;
+ unsigned long window; // seconds
+ unsigned long minSNR; // dB
+ Triple antennaPos;
+
+ ObsEpochMap obs1, obs2;
+ CommandOptionWithAnyArg obs1FileOption, obs2FileOption, ephFileOption;
+ ElevationRangeList elr;
+ bool computeStats, computeAll, removeUnhealthy;
+ EphReader healthSrcER;
+
+ void readObsFile(const CommandOptionWithAnyArg& obsFileOption,
+ const EphemerisStore& eph,
+ ObsEpochMap &oem);
+
+ void filterUnhealthyObs(const EphemerisStore& eph,
+ ObsEpochMap &oem);
+
+};
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//-----------------------------------------------------------------------------
+DDGen::DDGen() throw()
+ : BasicFramework("ddGen", "Computes double-difference residuals from raw observations."),
+ ddMode("all"), minArcGap(60), minArcTime(60), minArcLen(5), msid(0), window(0), minSNR(20),
+ computeStats(false), computeAll(false), removeUnhealthy(false),
+
+ obs1FileOption('1', "obs1",
+ "Where to get the first receiver's obs data.", true),
+ obs2FileOption('2', "obs2",
+ "Where to get the second receiver's obs data.", true),
+ ephFileOption('e', "eph", "Where to get the ephemeris data. Can be "
+ "RINEX, FIC, or SP3.", true)
+{}
+
+//-----------------------------------------------------------------------------
+// Here the command line options parsed and used to configure the program
+//-----------------------------------------------------------------------------
+bool DDGen::initialize(int argc, char *argv[]) throw()
+{
+ CommandOptionWithAnyArg
+ ddModeOption('\0', "ddmode", "Specifies what observations are used to "
+ "compute the double difference residuals. Valid values are:"
+ " all. The default is " + ddMode),
+ minArcTimeOption('\0', "min-arc-time", "The minimum length of time "
+ "(in seconds) that a sequence of observations must "
+ "span to be considered as an arc. The default "
+ "value is " + asString(minArcTime, 1) + " seconds."),
+ minArcGapOption('\0', "min-arc-gap", "The minimum length of time "
+ "(in seconds) between two arcs for them to be "
+ "considered separate arcs. The default value "
+ "is " + asString(minArcGap, 1) + " seconds."),
+ minArcLenOption('\0', "min-arc-length", "The minimum number of "
+ "epochs that can be considered an arc. The "
+ "default value is " + asString(minArcLen) +
+ " epochs."),
+ elevBinsOption('b', "elev-bin",
+ "A range of elevations, used in computing"
+ " the statistical summaries. Repeat to specify multiple "
+ "bins. The default is \"-b 0-10 -b 10-20 -b 20-60 -b "
+ "10-90\"."),
+ mscFileOption('c', "msc", "Station coordinate file."),
+ antennaPosOption('p', "pos", "Location of the antenna in meters ECEF."),
+ ephHealthSource('E',"health-src","Do not use data from unhealthy SVs "
+ "as determined using this ephemeris source. Can be "
+ "RINEX navigation or FIC file(s). ");
+
+ CommandOptionWithNumberArg
+ msidOption('m', "msid", "Station to process data for. Used to "
+ "select a station position from the msc file or data "
+ "from a SMODF file."),
+
+ timeSpanOption('w',"window","Compute mean values of the double "
+ "differences over this time span (seconds). (15 min = 900)"),
+ SNRoption('S',"SNR","Only included observables with a raw signal strength, "
+ "or SNR, of at least this value, in dB. The default is 20 dB.");
+
+ CommandOptionNoArg
+ statsOption('s', "stats", "Compute stats on the double differences."),
+ allComboOption('a', "all-combos", "Compute all combinations, don't just "
+ "use one master SV."),
+ cycleSlipOption('\0', "cycle-slips", "Output a list of cycle slips");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ if (timeSpanOption.getCount() && allComboOption.getCount())
+ {
+ cerr << "\n\n You cannot set up the tool to compute averages while computing all\n "
+ << "SV combos. It doesn't make sense to do so because the arcs are so\n "
+ << "small. Sorry. Exiting....\n\n";
+ return false;
+ }
+
+ if (mscFileOption.getCount() && !msidOption.getCount())
+ {
+ cerr << "\n\n You gave a station coordinate file but didn't specify\n "
+ << "the station ID. Exiting....\n\n";
+ return false;
+ }
+
+ if (timeSpanOption.getCount() && (asDouble(timeSpanOption.getValue()[0])<= 0 ))
+ {
+ cerr << "\n\n Please enter a positive value for the time span window.\n "
+ << "Exiting....\n\n";
+ return false;
+ }
+
+ if ((SNRoption.getCount() && asDouble(SNRoption.getValue()[0])<= 0 ))
+ {
+ cerr << "\n\n Please enter a SNR value >= 0 dB.\n "
+ << "Exiting....\n\n";
+ return false;
+ }
+
+ if (msidOption.getCount())
+ msid = asUnsigned(msidOption.getValue().front());
+
+ // Get the station position
+ if (antennaPosOption.getCount())
+ {
+ string aps = antennaPosOption.getValue()[0];
+ if (numWords(aps) != 3)
+ {
+ cerr << "Please specify three coordinates in the antenna postion.\n"
+ << "Exiting....\n\n";
+ return false;
+ }
+ else
+ for (int i=0; i<3; i++)
+ antennaPos[i] = asDouble(word(aps, i));
+ }
+ else if (msid && mscFileOption.getCount())
+ {
+ string mscfn = (mscFileOption.getValue())[0];
+ MSCStream msc(mscfn.c_str(), ios::in);
+ MSCData mscd;
+ while (msc >> mscd && mscd.station != msid)
+ ;
+ if (mscd.station == msid)
+ antennaPos = mscd.coordinates;
+ }
+ else
+ {
+ string fn = (obs1FileOption.getValue())[0];
+ ObsReader obsReader(fn, verboseLevel);
+ if (obsReader.inputType == FFIdentifier::tRinexObs)
+ antennaPos = obsReader.roh.antennaPosition;
+ }
+
+ if (RSS(antennaPos[0], antennaPos[1], antennaPos[2]) < 1)
+ {
+ cerr << "Warning! The antenna appears to be within one meter of the" << endl
+ << "center of the geoid. This program is not capable of" << endl
+ << "accurately estimating the propigation of GNSS signals" << endl
+ << "through solids such as a planetary crust or magma. Also," << endl
+ << "if this location is correct, your antenna is probably" << endl
+ << "no longer in the best of operating condition." << endl;
+ return false;
+ }
+
+ // get elevation ranges, if specified
+ if (elevBinsOption.getCount())
+ {
+ for (int i=0; i<elevBinsOption.getCount(); i++)
+ {
+ string pr = elevBinsOption.getValue()[i];
+ float minElev = asFloat(pr);
+ stripFirstWord(pr, '-');
+ float maxElev = asFloat(pr);
+ elr.push_back( ElevationRange(minElev, maxElev) );
+ }
+ }
+ else
+ {
+ elr.push_back( ElevationRange( 0, 10) );
+ elr.push_back( ElevationRange(10, 20) );
+ elr.push_back( ElevationRange(20, 60) );
+ elr.push_back( ElevationRange(60, 90) );
+ elr.push_back( ElevationRange(10, 90) );
+ }
+
+ if (ephHealthSource.getCount())
+ {
+ healthSrcER.verboseLevel = verboseLevel;
+ for (int i=0; i<ephHealthSource.getCount(); i++)
+ healthSrcER.read(ephHealthSource.getValue()[i]);
+ gpstk::EphemerisStore& ephStoreTemp = *healthSrcER.eph;
+ if (typeid(ephStoreTemp)!=typeid(BCEphemerisStore))
+ {
+ cerr << "You provided an eph source that was not broadcast ephemeris.\n"
+ "(Precise ephemeris does not contain health info and can't be \n"
+ " used with the \"-E\" option.) Exiting... \n";
+ return false;
+ }
+ removeUnhealthy = true;
+ }
+
+ if (ddModeOption.getCount())
+ ddMode = lowerCase(ddModeOption.getValue()[0]);
+
+ if (minArcTimeOption.getCount())
+ minArcTime = asDouble(minArcTimeOption.getValue().front());
+
+ if (minArcLenOption.getCount())
+ minArcLen = asUnsigned(minArcLenOption.getValue().front());
+
+ if (minArcGapOption.getCount())
+ minArcGap = asDouble(minArcGapOption.getValue().front());
+
+ if (statsOption.getCount())
+ computeStats = true;
+
+ if (allComboOption.getCount())
+ computeAll = true;
+
+ if (timeSpanOption.getCount())
+ window = asUnsigned(timeSpanOption.getValue().front());
+
+ if (SNRoption.getCount())
+ minSNR = asUnsigned(SNRoption.getValue().front());
+
+ return true;
+}
+
+//-----------------------------------------------------------------------------
+// General program setup
+//-----------------------------------------------------------------------------
+void DDGen::spinUp()
+{
+ if (verboseLevel)
+ {
+ cout << "# Double difference mode: " << ddMode << endl
+ << "# Minimum arc time: " << minArcTime << " seconds" << endl
+ << "# Minimum arc length: " << minArcLen << " epochs" << endl
+ << "# Minimum gap length: " << minArcGap << " seconds" << endl
+ << "# Antenna Position: " << setprecision(8) << antennaPos << endl;
+ if (msid)
+ cout << "# msid: " << msid << endl;
+
+ if (computeAll)
+ cout << "# Using all SV combinations." << endl;
+ else
+ cout << "# Using one master SV combinations." << endl;
+
+ if (window)
+ cout << "# Computing mean values for " << window << " second windows" << endl;
+ }
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+void DDGen::process()
+{
+ EphReader ephReader;
+ ephReader.verboseLevel = verboseLevel;
+ for (int i=0; i<ephFileOption.getCount(); i++)
+ ephReader.read(ephFileOption.getValue()[i]);
+
+ ObsEpochMap oem1, oem2;
+
+ if (debugLevel)
+ cout << "# Reading obs from Rx1" << endl;
+ readObsFile(obs1FileOption, *ephReader.eph, oem1);
+
+ if (removeUnhealthy)
+ filterUnhealthyObs(*healthSrcER.eph, oem1);
+
+ if (verboseLevel)
+ cout << "# Reading obs from Rx2" << endl;
+ readObsFile(obs2FileOption, *ephReader.eph, oem2);
+
+ if (removeUnhealthy)
+ filterUnhealthyObs(*healthSrcER.eph, oem2);
+
+ SvElevationMap pem = elevation_map(oem1, antennaPos, *ephReader.eph);
+ DDEpochMap ddem;
+ ddem.debugLevel = debugLevel;
+ ddem.windowLength = window;
+
+ if (computeAll)
+ ddem.useMasterSV = false;
+ else
+ ddem.useMasterSV = true;
+
+ ddem.compute(oem1, oem2, pem);
+
+ // Here we compute a phase double difference that is Better(TM)
+ if (computeAll)
+ {
+ PhaseCleanerA pc(minArcLen, minArcTime, minArcGap);
+ pc.debugLevel = debugLevel;
+ pc.addData(oem1, oem2, minSNR);
+ pc.debias(pem);
+ pc.getPhaseDD(ddem);
+ }
+ else
+ {
+ PhaseCleaner pc(minArcLen, minArcTime, minArcGap);
+ pc.debugLevel = debugLevel;
+ pc.addData(oem1, oem2, minSNR);
+ pc.debias(pem);
+ pc.getPhaseDD(ddem);
+ CycleSlipList sl;
+ pc.getSlips(sl, pem);
+ dump(cout, sl);
+ }
+
+ if (window)
+ {
+ // this option was only allowed for the master SV method, i.e. !computeAll
+ if (verboseLevel)
+ cout << "# Computing averages for windows of " << window << " seconds.\n";
+ ddem.outputAverages(cout);
+ }
+
+ if (computeAll && computeStats)
+ ddem.outputStatsForAllCombos(cout, elr);
+ else if (computeStats)
+ ddem.outputStats(cout, elr);
+ else
+ ddem.dump(cout);
+}
+
+//-----------------------------------------------------------------------------
+// Read a single file of observation data, computing receiver clock offsets along
+// the way.
+//-----------------------------------------------------------------------------
+void DDGen::readObsFile(
+ const CommandOptionWithAnyArg& obsFileOption,
+ const EphemerisStore& eph,
+ ObsEpochMap &oem)
+{
+ // Just a placeholder
+ gpstk::WxObsData wod;
+
+ // Use a New Brunswick trop model.
+ NBTropModel tm;
+
+ // Now set up the function object that is used to compute the ords.
+ OrdEngine ordEngine(eph, wod, antennaPos, "smart", tm);
+ ordEngine.verboseLevel = verboseLevel;
+ ordEngine.debugLevel = debugLevel;
+
+ // Set up a simple epoch clock model.
+ EpochClockModel cm(1.5, 10, ObsClockModel::HEALTHY);
+ const GPSGeoid gm;
+
+ // Walk through each obs file, reading and computing ords along the way.
+ for (int i=0; i<obsFileOption.getCount(); i++)
+ {
+ string fn = (obsFileOption.getValue())[i];
+ ObsReader obsReader(fn, verboseLevel);
+ obsReader.msid = msid;
+
+ while (obsReader())
+ {
+ ObsEpoch obs(obsReader.getObsEpoch());
+ if (!obsReader())
+ break;
+
+ ORDEpoch oe = ordEngine(obs);
+
+ cm.addEpoch(oe);
+
+ if (cm.isOffsetValid())
+ {
+ // Need to keep clock offset in seconds
+ obs.rxClock = cm.getOffset() / gm.c();
+ oem[obs.time] = obs;
+ }
+ else
+ {
+ if (verboseLevel>2)
+ cout << "# Could not estimate clock for epoch at " << obs.time << endl;
+ }
+ }
+ }
+}
+
+void DDGen::filterUnhealthyObs( const EphemerisStore& eph, ObsEpochMap &oem)
+{
+ ObsEpochMap::iterator oemIter;
+ for (oemIter=oem.begin(); oemIter!=oem.end(); oemIter++)
+ {
+ const BCEphemerisStore& bce = dynamic_cast<const BCEphemerisStore&>(eph);
+ const DayTime& t = oemIter->first;
+ ObsEpoch& obsEpoch = oemIter->second;
+
+ ObsEpoch::iterator oeIter;
+ for(oeIter=obsEpoch.begin(); oeIter!=obsEpoch.end();)
+ {
+ const SatID& svid = oeIter ->first;
+
+ try
+ {
+ EngEphemeris ephTemp = bce.findEphemeris(svid, t);
+ short health = ephTemp.getHealth();
+ if (health != 0)
+ obsEpoch.erase(oeIter++);
+ else
+ oeIter++;
+ }
+ catch (gpstk::Exception &exc)
+ {
+ if (verboseLevel || debugLevel)
+ cout << "# DDGen::filterUnhealthyObs - probably missing eph data\n";
+ }
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ DDGen crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/reszilla/ddPlot b/dev/apps/reszilla/ddPlot
new file mode 100755
index 0000000..f162824
--- /dev/null
+++ b/dev/apps/reszilla/ddPlot
@@ -0,0 +1,400 @@
+#!/usr/bin/env python
+# $Id$
+# A routine to plot the output of ddGen.
+
+
+import sys, string, time, datetime, numpy, matplotlib, pylab
+
+def main():
+
+ from optparse import OptionParser
+
+ parser = OptionParser()
+
+ usageString = "ddPlot [option]\n\n A routine to plot the output of ddGen.\n\n All double differences will be plotted by default, or\n you may specify plotting criteria using the command\n line options."
+
+ parser =OptionParser(usage=usageString)
+
+ parser.add_option("-d", "--debug", default=0, dest="debugLevel", action="count",
+ help="Increase the debugLevel.")
+
+ parser.add_option("-l", "--legend", dest="legend", action="count",
+ help="Include a legend.")
+
+ parser.add_option("-a","--averages", action="count", dest="plotAverages",
+ help="Plot the averages using the same plotting criteria. Use twice and only averages will be plotted.")
+
+ parser.add_option("-u","--no-unhlthy", dest="noUnhealthy",action="count",
+ help="Do not plot data from unhealthy SVs.")
+
+ parser.add_option("-r", "--range", dest="range", action="count",
+ help="Plot range double difference values.")
+
+ parser.add_option("-D", "--doppler", dest="doppler", action="count",
+ help="Plot Doppler double difference values.")
+
+ parser.add_option("-p", "--phase", dest="phase", action="count",
+ help="Plot phase double difference values.")
+
+ parser.add_option("-1", "--L1", dest="L1", action="count",
+ help="Plot data from L1 freq band.")
+
+ parser.add_option("-2", "--L2", dest="L2", action="count",
+ help="Plot data from L2 freq band.")
+
+ parser.add_option("-i", help="Input data file, defaults to stdin.", \
+ dest="inputFile", type="string", action="store")
+
+ parser.add_option("-t", help="Specify a title for the plot. "+\
+ "Defaults to the name of the input stream.", \
+ dest="title", type="string", action="store")
+
+ parser.add_option("-f", dest="saveFig", action="store", type="string",\
+ help="Save the figure to the indicated file")
+
+ parser.add_option("-y", dest="yRange", action="store", type="float",\
+ help="Fix the y range on the ords to be +- this value.")
+
+ parser.add_option("-s", dest="tStart", action="store",\
+ help="Start time. Format as \"YYYY DOY HH:MM:SS.S\" (Note\
+ the trailing decimal place).")
+
+ parser.add_option("-e", dest="tEnd", action="store",\
+ help="End time. Format as \"YYYY DOY HH:MM:SS.S\" (Note\
+ the trailing decimal place).")
+
+ (options, args) = parser.parse_args()
+
+ if (len(args) and options.inputFile == None):
+ options.inputFile = args[0]
+
+ inputFile = sys.stdin
+ if (options.inputFile):
+ inputFile = open(options.inputFile)
+
+ if (options.title == None):
+ options.title = inputFile.name
+
+ plotAvg = False
+ if (options.plotAverages):
+ plotAvg = True
+
+ plotUnhealthy = True
+ if (options.noUnhealthy):
+ plotUnhealthy = False
+
+ plotRange = True
+ plotPhase = True
+ plotDoppl = True
+ plotL1 = True
+ plotL2 = True
+
+ if (options.range or options.doppler or options.phase):
+ if (not options.range):
+ plotRange = False
+ if (not options.phase):
+ plotPhase = False
+ if (not options.doppler):
+ plotDoppl = False
+ if (options.L1 or options.L2):
+ if (not options.L1):
+ plotL1 = False
+ if (not options.L2):
+ plotL2 = False
+
+ if (options.debugLevel):
+ print "Processing: %s" % inputFile.name
+ print "Debug level: %d" % options.debugLevel
+ print "Title: %s" % options.title
+ if options.yRange:
+ print "Fixing y axis to +/- %4.4f meters" % options.yRange
+ if plotRange:
+ print "Plotting range double differences"
+ else:
+ print "Excluding range double differences from plot"
+ if plotPhase:
+ print "Plotting phase double differences"
+ else:
+ print "Excluding phase double differences from plot"
+ if plotDoppl:
+ print "Plotting doppler double differences"
+ else:
+ print "Excluding doppler double differences from plot"
+ if plotL1:
+ print "Plotting double differences from data collected on L1"
+ else:
+ print "Excluding double differences from data collected on L1"
+ if plotL2:
+ print "Plotting double differences from data collected on L2"
+ else:
+ print "Excluding double differences from data collected on L2"
+ if plotAvg:
+ print "Plotting double differnce averages"
+ else:
+ print "Not plotting averages"
+
+ # read in data.
+ # Not using SV or elevation data yet, but we may want to do
+ # something cool with it later
+
+ dataListL1 = ([],[],[],[],[],[],[],[],[]) # time, C/A range dd, P/Y range, phase dd, doppler dd, PRN1, el1, PRN2, el2
+ dataListL2 = ([],[],[],[],[],[],[],[]) # time, range dd, phase dd, doppler dd, PRN1, el1, PRN2, el2
+ avergsList = ([],[],[],[],[],[],[],[]) # time, C/A rng avg, L1 P/Y rng avg, L1 phs dd avg, L1 dopp dd avg...
+ # ...L2 rng dd avg, L2 phs dd avg, L2 dopp dd avg
+ #cycleSlips = # not quite sure how to work these in yet
+
+ for line in inputFile:
+ line = line.strip()
+ if options.debugLevel>1:
+ print line
+ if len(line)==0: continue
+
+ if line[0] == "#": continue
+ if line[0] == '>':
+ if line[1] == "c":
+ continue # we'll do something nifty with these later
+ if (line[1]=="a" and plotAvg):
+ words=line.split()
+ t = parse_time(words[1:4])
+ ordType = "%s %s %s"%(words[4], words[5], words[6])
+ mean = float(words[8])
+ if ordType[0:2] == "L1":
+ if ordType[3:6] == "C/A":
+ avergsList[0].append(t) # time
+ avergsList[1].append(mean) # C/A range dd mean
+ elif ordType[7:14] == "range":
+ avergsList[2].append(mean) # L1 P/Y/W range dd mean
+ elif ordType[7:14] == "phase":
+ avergsList[3].append(mean) # L1 P/Y/W phase dd mean
+ elif ordType[7:14] == "doppl":
+ avergsList[4].append(mean) # L1 P/Y/W Doppler dd mean
+ else:
+ if (options.debugLevel):
+ print "Didn't understand this line:"
+ print line
+
+ elif ordType[0:2] == "L2":
+ if ordType[7:14] == "range":
+ avergsList[5].append(mean) # L1 P/Y/W range dd mean
+ elif ordType[7:14] == "phase":
+ avergsList[6].append(mean) # L1 P/Y/W phase dd mean
+ elif ordType[7:14] == "doppl":
+ avergsList[7].append(mean) # L1 P/Y/W Doppler dd mean
+ else:
+ if (options.debugLevel):
+ print "Didn't understand this line:"
+ print line
+ else:
+ words=line.split()
+ t = parse_time(words[0:3])
+ ordType = "%s %s %s"%(words[3], words[4], words[5])
+ if (words[11] != "00" and (not plotUnhealthy)):
+ if options.debugLevel:
+ print "Not plotting data from unhealthy SV(s):"
+ print line
+ continue
+
+ # parse the line
+ sv1 = int(words[6])
+ sv2 = int(words[7])
+ elev1 = float(words[8])
+ elev2 = float(words[9])
+ ddr = float(words[10])
+ h = int(words[11],16)
+ # not adding health to the dataLists, this can be changed though
+
+ if ordType[0:2] == "L1":
+ # get all of this general epoch info from the C/A line only
+ if ordType[3:6] == "C/A":
+ dataListL1[0].append(t)
+ dataListL1[1].append(ddr)
+ dataListL1[5].append(sv1)
+ dataListL1[6].append(elev1)
+ dataListL1[7].append(sv2)
+ dataListL1[8].append(elev2)
+ elif ordType[5:12] == "range": #this will be the L1 P/Y/W range
+ dataListL1[2].append(ddr)
+ elif ordType[5:12] == "phase":
+ dataListL1[3].append(ddr)
+ elif ordType[5:12] == "doppler":
+ dataListL1[4].append(ddr)
+ else:
+ if (options.debugLevel):
+ print "Didn't understand this line:"
+ print line
+ elif ordType[0:2] == "L2":
+ # get all of the general epoch info from the range line only
+ if ordType[5:12] == "range":
+ dataListL2[0].append(t)
+ dataListL2[1].append(ddr)
+ dataListL2[4].append(sv1)
+ dataListL2[5].append(elev1)
+ dataListL2[6].append(sv2)
+ dataListL2[7].append(elev2)
+ elif ordType[5:12] == "phase":
+ dataListL2[2].append(ddr)
+ elif ordType[5:12] == "doppler":
+ dataListL2[3].append(ddr)
+ else:
+ if (options.debugLevel):
+ print "Didn't understand this line:"
+ print line
+
+ dataL1 = numpy.array(dataListL1)
+ dataL2 = numpy.array(dataListL2)
+ avergs = numpy.array(avergsList)
+
+ del dataListL1, dataListL2, avergsList
+
+ # make sure that there is some data to plot
+ if (plotL1 and dataL1.shape[1] < 1):
+ print "\n No L1 data to plot. Exiting...\n"
+ exit;
+ if (plotL2 and dataL2.shape[1] < 1):
+ print "\n No L2 data to plot. Exiting...\n"
+ exit;
+ if (plotAvg and avergs.shape[1] < 1):
+ print "\n No averages to plot. Exiting...\n"
+ exit;
+
+ # done reading in the ord file
+
+ # A key handler for matplotlib
+ def press(event):
+ if event.key=='q' or event.key==' ':
+ pylab.close()
+
+ # Here we start generating the plots
+ fig = pylab.figure()
+ pylab.connect('key_press_event', press)
+ yprops = dict(rotation=90, horizontalalignment='right', verticalalignment='center', family='monospace', x=-0.01)
+ scale_props = dict(horizontalalignment="right", verticalalignment="bottom", size=8, family="sans-serif")
+
+ xMajorFmt=pylab.DateFormatter("%02H:%02M\n%03j")
+ xMinorFmt=pylab.NullFormatter()
+ xMajorLoc=matplotlib.dates.DayLocator()
+ xMinorLoc=matplotlib.dates.HourLocator()
+
+ rExtent=0.89
+ if options.legend:
+ rExtent=0.80
+
+ ax1 = fig.add_axes([0.08, 0.10, rExtent, 0.85])
+ # experimented with alpha blending on the plot, but couldn't find anything that really helped
+
+ # i know this looks rediculous, just trying to control the plotting order
+ if plotL1:
+ if plotRange:
+ if (options.plotAverages < 2):
+ ax1.plot_date(dataL1[0], dataL1[1], ',', color="r", label="C/A range")
+ ax2=fig.add_axes(ax1.get_position())
+ ax2.plot_date(dataL1[0], dataL1[2], ',', color="purple", label="L1 P/Y range")
+
+ if plotPhase:
+ if (options.plotAverages < 2):
+ ax3=fig.add_axes(ax1.get_position())
+ ax3.plot_date(dataL1[0], dataL1[3], ',', color="#FF6600", label="L1 P/Y phase")
+
+ if plotDoppl:
+ if (options.plotAverages < 2):
+ ax4=fig.add_axes(ax1.get_position())
+ ax4.plot_date(dataL1[0], dataL1[4], ',', color="navy", label="L1 P/Y doppler")
+
+ if plotL2:
+ if plotRange:
+ if (options.plotAverages < 2):
+ ax4=fig.add_axes(ax1.get_position())
+ ax4.plot_date(dataL2[0], dataL2[1], ',', color="forestgreen", label="L2 P/Y range")
+ if plotPhase:
+ if (options.plotAverages < 2):
+ ax5=fig.add_axes(ax1.get_position())
+ ax5.plot_date(dataL2[0], dataL2[2], ',', color="darkslategray", label="L2 P/Y phase")
+ if plotDoppl:
+ if (options.plotAverages < 2):
+ ax6=fig.add_axes(ax1.get_position())
+ ax6.plot_date(dataL2[0], dataL2[3], ',', color="teal", label="L2 P/Y doppler")
+
+
+ if plotL1 and plotAvg:
+ if plotRange:
+ ax7=fig.add_axes(ax1.get_position())
+ ax7.plot_date(avergs[0], avergs[1], 'o', color="r", label="C/A rng avg")
+ ax8=fig.add_axes(ax1.get_position())
+ ax8.plot_date(avergs[0], avergs[2], 'o', color="purple", label="L1 P/Y rng avg")
+ if plotPhase:
+ ax9=fig.add_axes(ax1.get_position())
+ ax9.plot_date(avergs[0], avergs[3], 'o', color="#FF6600", label="L1 P/Y ph avg")
+ if plotDoppl:
+ ax10=fig.add_axes(ax1.get_position())
+ ax10.plot_date(avergs[0], avergs[4], 'o', color="navy", label="L1 P/Y dop avg")
+
+ if plotL2 and plotAvg:
+ if plotRange:
+ ax11=fig.add_axes(ax1.get_position())
+ ax11.plot_date(avergs[0], avergs[5], 'o', color="forestgreen", label="L2 P/Y rng avg")
+ if plotPhase:
+ ax12=fig.add_axes(ax1.get_position())
+ ax12.plot_date(avergs[0], avergs[6], 'o', color="darkslategray", label="L2 P/Y ph avg")
+ if plotDoppl:
+ ax13=fig.add_axes(ax1.get_position())
+ ax13.plot_date(dataL2[0], dataL2[7], 'o', color="teal", label="L2 P/Y dop avg")
+
+
+ if options.legend:
+ ax1.legend(numpoints=2, pad=0.1, labelsep = 0, handlelen=0.005, handletextsep=0.01, axespad=0.0, loc=(1,0))
+ leg = pylab.gca().get_legend()
+ ltext = leg.get_texts()
+ llines = leg.get_lines()
+ lframe = leg.get_frame()
+ lframe.set_facecolor('0.4')
+ pylab.setp(ltext, size=8, family="sans-serif")
+ pylab.setp(llines, linewidth=2)
+ leg.draw_frame(False)
+
+ ax1.set_ylabel('Double Difference (meters)', **yprops)
+ ax1.grid(True)
+ if options.yRange:
+ ax1.set_ylim(ymin=-options.yRange, ymax=options.yRange)
+ else:
+ pylab.figtext(rExtent+.08, 0.95, "y range autoscaled", **scale_props)
+ ax1.xaxis.set_major_formatter(xMajorFmt)
+ xlabels=ax1.get_xticklabels()
+ ylabels=ax1.get_yticklabels()
+ pylab.setp(xlabels, fontsize=10, family='sans-serif')
+ pylab.setp(ylabels, fontsize=10, family='sans-serif')
+ ax1.xaxis.set_minor_formatter(xMinorFmt)
+
+ # set x axis range
+ if options.tStart:
+ tMin = parse_time(options.tStart.split()[0:3])
+ else:
+ tMin = min(dataL1[0])
+
+ if options.tEnd:
+ tMax = parse_time(options.tEnd.split()[0:3])
+ else:
+ tMax = max(dataL1[0])
+
+ ax1.set_xlim(xmin=tMin, xmax=tMax)
+ ax1.set_title(options.title)
+
+ if (options.saveFig == None):
+ pylab.show()
+ else:
+ pylab.savefig(options.saveFig)
+# end of main
+
+
+def parse_time(words):
+ fsec = float(words[2][8:10])
+ ydhms = words[0]+" "+words[1]+" "+words[2][0:8]
+ utime = time.strptime(ydhms, "%Y %j %H:%M:%S")
+ dtime = datetime.datetime(utime[0], utime[1], utime[2],
+ utime[3], utime[4], utime[5], int(fsec*1e6))
+ t0 = matplotlib.dates.date2num(dtime)
+ return t0
+# end of parse_time()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/dev/apps/reszilla/ordClock.cpp b/dev/apps/reszilla/ordClock.cpp
new file mode 100644
index 0000000..a2d7b11
--- /dev/null
+++ b/dev/apps/reszilla/ordClock.cpp
@@ -0,0 +1,176 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <EpochClockModel.hpp>
+
+#include "OrdApp.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class OrdClock : public OrdApp
+{
+public:
+ OrdClock() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void process();
+
+private:
+ CommandOptionNoArg useWartsOption, estimateOnlyOption;
+ CommandOptionWithAnyArg clockSource;
+};
+
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//-----------------------------------------------------------------------------
+OrdClock::OrdClock() throw()
+ : OrdApp("ordClock", "Generates clock estimates for each epoch of ords."),
+ useWartsOption('w', "use-warts",
+ "Use warts in the clock solution. The default is "
+ "to not use warts."),
+ estimateOnlyOption('e', "estimate-only",
+ "Only compute the receiver clock bias. Don't remove"
+ " this bias from the ords. The default is to both estimate"
+ " the bias and remove the it from the ords."),
+ clockSource('c', "clock-source",
+ "An ord file to read the receiver clock offsets from.")
+{}
+
+
+//-----------------------------------------------------------------------------
+bool OrdClock::initialize(int argc, char *argv[]) throw()
+{
+ return OrdApp::initialize(argc,argv);
+}
+
+
+//-----------------------------------------------------------------------------
+void OrdClock::process()
+{
+ // Set up our clock model
+ gpstk::EpochClockModel cm;
+ cm.setSigmaMultiplier(1.5);
+ cm.setElevationMask(15);
+ cm.setSvMode(ObsClockModel::ALWAYS);
+
+ if (useWartsOption.getCount())
+ cm.setUseWonkyData(true);
+
+ bool estimate=true;
+ bool debias=true;
+ if (estimateOnlyOption.getCount())
+ debias = false;
+
+ map<DayTime, double> clocks;
+ if (clockSource.getCount())
+ {
+ string fn = clockSource.getValue()[0];
+ if (debugLevel)
+ cout << "# Reading clocks from " << fn << endl;
+ std::ifstream clkStream(fn.c_str(), ios::in);
+ ORDEpoch epoch;
+ while (clkStream)
+ {
+ epoch = read(clkStream);
+ clocks[epoch.time] = epoch.clockOffset;
+ }
+ estimate = false;
+ }
+
+ while (input)
+ {
+ ORDEpoch ordEpoch = read(input);
+
+ if (estimate)
+ {
+ cm.addEpoch(ordEpoch);
+ if (cm.isOffsetValid())
+ ordEpoch.clockOffset = cm.getOffset();
+ }
+ else
+ {
+ map<DayTime, double>::const_iterator o=clocks.find(ordEpoch.time);
+ if (o != clocks.end())
+ ordEpoch.clockOffset = o->second;
+ }
+
+ if (debias && ordEpoch.clockOffset.is_valid())
+ ordEpoch.removeOffset(ordEpoch.clockOffset);
+
+ if (ordEpoch.clockOffset.is_valid())
+ {
+ double clk_mag = std::abs(ordEpoch.clockOffset);
+ if (clk_mag > 1e6 || clk_mag < 1e-5)
+ ordEpoch.wonky = true;
+ }
+ else
+ ordEpoch.wonky = true;
+
+ if (ordEpoch.wonky)
+ {
+ ORDEpoch::ORDMap::iterator i;
+ for (i = ordEpoch.ords.begin(); i != ordEpoch.ords.end(); i++)
+ i->second.wonky |= 0x0040;
+ }
+
+ write(output, ordEpoch);
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ OrdClock crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/reszilla/ordEdit.cpp b/dev/apps/reszilla/ordEdit.cpp
new file mode 100644
index 0000000..f7a9b5d
--- /dev/null
+++ b/dev/apps/reszilla/ordEdit.cpp
@@ -0,0 +1,379 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <EpochClockModel.hpp>
+#include <vector>
+#include <set>
+#include "gps_constants.hpp"
+#include "OrdApp.hpp"
+#include "OrdApp.cpp"
+#include "EphReader.hpp"
+#include "BCEphemerisStore.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+class OrdEdit : public OrdApp
+{
+public:
+ OrdEdit() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void process();
+
+private:
+ CommandOptionNoArg clkOpt, noClockOpt;
+ CommandOptionWithNumberArg elvOpt, prnOpt, wartsOpt;
+ CommandOptionWithAnyArg ephSourceOpt, startOpt, endOpt, clkResOpt, ordLimitOpt;
+
+ double elMask, clkResidLimit, ordLimit;
+ set<int> prnSet, wartSet; // prns to exclude from analysis
+ vector<string> ephFilesVector;
+ DayTime tStart, tEnd;
+};
+
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//-----------------------------------------------------------------------------
+OrdEdit::OrdEdit() throw()
+ : OrdApp("ordEdit", "Edits an ord file based on various criteria."),
+ elMask(0),clkResidLimit(0),
+ ephSourceOpt('e',"be-file","Remove data for unhealthy SVs by "
+ "providing broadcast ephemeris source: RINEX nav or "
+ "FIC file." ),
+ elvOpt('m',"elev","Remove data for SVs below a given elevation mask."),
+ clkOpt('k',"clock-est", "Remove ords that do not have corresponding "
+ "clock estimates."),
+ clkResOpt('s',"size","Remove clock residuals with absolute values "
+ "greater than this size (meters)."),
+ ordLimitOpt('l',"ord-limit","Remove ords with absolute valies "
+ "greater than this size (meters)."),
+ prnOpt('p',"PRN","Add/Remove data from given PRN. Repeat option for multiple"
+ " PRNs. Negative numbers remove, Postive numbers all, Zero removes all."),
+ noClockOpt('c',"no-clock", "Remove all clock offset estimate warts. Give"
+ " this option twice to remove all clock data. "),
+ wartsOpt('w', "warts", "Include/Exclude warts from the indicated PRN. "
+ "Repeat option for multiple PRNs. Negative numbers exclude, "
+ "positive numbers include, zero excludes warts from all PRNs. "
+ "The default is to include all warts."),
+ startOpt('\0',"start","Throw out data before this time. Format as "
+ "string: \"MO/DD/YYYY HH:MM:SS\" "),
+ endOpt('\0',"end","Throw out data after this time. Format as string:"
+ " \"MO/DD/YYYY HH:MM:SS\" ")
+
+{}
+
+//-----------------------------------------------------------------------------
+bool OrdEdit::initialize(int argc, char *argv[]) throw()
+{
+ return OrdApp::initialize(argc,argv);
+}
+
+//-----------------------------------------------------------------------------
+void OrdEdit::process()
+{
+ //-- Get ephemeris data
+ EphReader ephReader;
+ ephReader.verboseLevel = verboseLevel;
+ for (int i=0; i<ephSourceOpt.getCount(); i++)
+ ephReader.read(ephSourceOpt.getValue()[i]);
+ gpstk::EphemerisStore& eph = *ephReader.eph;
+
+ //-- Make sure that the eph data provided is broadcast eph
+ if (ephSourceOpt.getCount()&&(typeid(eph)!=typeid(BCEphemerisStore)))
+ {
+ cout << "You provided an eph source that was not broadcast ephemeris.\n"
+ "(Precise ephemeris does not contain health info and can't be \n"
+ " used with this program.) Exiting... \n";
+ exit(0);
+ }
+
+ //-- get which PRNs to be excluded
+ for (int index = 0; index < prnOpt.getCount(); index++)
+ {
+ int prn = asInt(prnOpt.getValue()[index]);
+ if (prn < 0)
+ prnSet.insert(-prn);
+ else if (prn > 0)
+ prnSet.erase(prn);
+ else
+ {
+ prnSet.clear();
+ for (int i=1; i<=gpstk::MAX_PRN; i++)
+ prnSet.insert(i);
+ }
+ }
+
+ //-- get which PRNs from which to ignore warts
+ for (int i=0; i < wartsOpt.getCount(); i++)
+ {
+ int prn = asInt(wartsOpt.getValue()[i]);
+ if (prn < 0)
+ wartSet.insert(-prn);
+ else if (prn > 0)
+ wartSet.erase(prn);
+ else
+ {
+ wartSet.clear();
+ for (int i=1; i<=gpstk::MAX_PRN; i++)
+ wartSet.insert(i);
+ }
+ }
+
+ //-- get ephemeris sources, if given
+ int numBEFiles = ephSourceOpt.getCount();
+ for (int index = 0; index < numBEFiles; index++)
+ ephFilesVector.push_back(asString(ephSourceOpt.getValue()[index]));
+
+ //-- remove data below a given elevation mask?
+ if (elvOpt.getCount())
+ elMask = asDouble(elvOpt.getValue().front());
+
+ //-- discard clock residuals that are too large?
+ if (clkResOpt.getCount())
+ clkResidLimit = asDouble(clkResOpt.getValue().front());
+
+ //-- discard ords that are too large?
+ if (ordLimitOpt.getCount())
+ ordLimit = asDouble(ordLimitOpt.getValue().front());
+
+ //-- if a time span was specified, get it
+ double ss;
+ int mm,dd,yy,hh,minu;
+ if (startOpt.getCount())
+ {
+ sscanf(startOpt.getValue().front().c_str(),"%i/%i/%i %i:%i:%lf",
+ &mm,&dd,&yy,&hh,&minu,&ss);
+ tStart.setYMDHMS((short)yy,(short)mm,(short)dd,(short)hh,
+ (short)minu,(double)ss);
+ }
+ if (endOpt.getCount())
+ {
+ sscanf(endOpt.getValue().front().c_str(), "%i/%i/%i %i:%i:%lf",
+ &mm,&dd,&yy,&hh,&minu,&ss);
+ tEnd.setYMDHMS((short)yy,(short)mm,(short)dd,(short)hh,
+ (short)minu, (double)ss);
+ }
+
+ //-- too lazy?
+ if (verboseLevel || debugLevel)
+ {
+ cout << "# So, according to you, ordEdit should be... \n";
+ if (clkOpt.getCount())
+ cout << "# Removing ords that do not have corresponding "
+ << "clock estimates.\n";
+ else
+ cout << "# Leaving in ords without corresponding clock "
+ << "estimates.\n";
+ if (elMask)
+ cout << "# Elevation mask set to " << elMask << " deg.\n";
+ else
+ cout << "# Keeping data for all SVs above the horizon. \n";
+ if (startOpt.getCount())
+ cout << "# Tossing data before " << tStart << endl;
+ else
+ cout << "# Start time is beginning of file. \n";
+ if (endOpt.getCount())
+ cout << "# Tossing data after " << tEnd << endl;
+ else
+ cout << "# End time is end of file. \n";
+ if (prnSet.size())
+ {
+ cout << "# Ignoring ords from PRNs: ";
+ set<int>::const_iterator i;
+ if (prnSet.size() == gpstk::MAX_PRN)
+ cout << "all";
+ else
+ for (i = prnSet.begin(); i != prnSet.end(); i++)
+ cout << *i << " ";
+ cout << endl;
+ }
+ if (wartSet.size())
+ {
+ cout << "# Ignoring warts from PRNs: ";
+ set<int>::const_iterator i;
+ if (wartSet.size() == gpstk::MAX_PRN)
+ cout << "all";
+ else
+ for (i = wartSet.begin(); i != wartSet.end(); i++)
+ cout << *i << " ";
+ cout << endl;
+ }
+
+ if (clkResidLimit)
+ cout << "# Tossing clk resids > " << clkResidLimit << " m.\n";
+ else
+ cout << "# Keeping all clock residuals.\n";
+
+ if (ordLimit)
+ cout << "# Tossing ords > " << ordLimit << " m.\n";
+ else
+ cout << "# No ORD limit given.\n";
+
+ if (numBEFiles)
+ {
+ for (int index = 0; index < numBEFiles; index++)
+ cout << "# Eph source: " << ephSourceOpt.getValue()[index]
+ << endl;
+ }
+ if (noClockOpt.getCount() == 1)
+ cout << "# Removing clock offset warts from ord file.\n";
+ else if (noClockOpt.getCount() > 1)
+ cout << "# Removing all clock data from ord file.\n";
+ }
+
+ while (input)
+ {
+ ORDEpoch ordEpoch = read(input);
+ if (clkOpt.getCount() && !(ordEpoch.clockOffset.is_valid()))
+ continue;
+ else if (startOpt.getCount() && (ordEpoch.time < tStart))
+ continue;
+ else if (endOpt.getCount() && (ordEpoch.time > tEnd))
+ continue;
+
+ if (numBEFiles)
+ {
+ const BCEphemerisStore& bce = dynamic_cast<const BCEphemerisStore&>(eph);
+ ORDEpoch::ORDMap::iterator iter = ordEpoch.ords.begin();
+ while (iter!= ordEpoch.ords.end())
+ {
+ const SatID& satId = iter->first;
+ ObsRngDev& ord = iter->second;
+ iter++;
+ try
+ {
+ const EngEphemeris& eph = bce.findEphemeris(satId, ordEpoch.time);
+ ord.health = eph.getHealth();
+ if (ord.health.is_valid() && ord.health != 0)
+ ordEpoch.removeORD(satId);
+ }
+ catch (gpstk::Exception &exc)
+ { cout << " # Error caught in ordEdit - probably missing eph data\n"; }
+ // I would include the exception catch below, but the exc spans
+ // multiple lines...
+ //catch (gpstk::Exception &exc)
+ //{ cerr << "# Error in ordEdit: " << exc << endl; }
+ }
+ }
+
+ if (elMask)
+ {
+ ORDEpoch::ORDMap::const_iterator iter = ordEpoch.ords.begin();
+ while (iter!= ordEpoch.ords.end())
+ {
+ const SatID& satId = iter->first;
+ const ObsRngDev& ord = iter->second;
+ iter++;
+ if ((ord.getElevation()< elMask))
+ ordEpoch.removeORD(satId);
+ }
+ }
+
+ if (noClockOpt.getCount() == 1)
+ {
+ // removing receiver clock offset estimate warts (type 70 lines)
+ if (ordEpoch.clockOffset.is_valid() && ordEpoch.wonky)
+ ordEpoch.clockOffset.set_valid(false);
+ }
+ else if (noClockOpt.getCount() > 1)
+ {
+ // removing all clock data (line types 50, 51, and 70)
+ ordEpoch.clockOffset.set_valid(false);
+ ordEpoch.clockResidual.set_valid(false);
+ }
+ if (prnSet.size() || wartSet.size())
+ {
+ // removing good obs (the type 0 lines)
+ ORDEpoch::ORDMap::const_iterator iter = ordEpoch.ords.begin();
+ while (iter!= ordEpoch.ords.end())
+ {
+ const SatID& satId = iter->first;
+ const ObsRngDev& ord = iter->second;
+ iter++;
+ if ((!ord.wonky && prnSet.count(satId.id)) ||
+ (ord.wonky && wartSet.count(satId.id)))
+ ordEpoch.removeORD(satId);
+ }
+ }
+
+ if (clkResOpt.getCount() &&
+ (std::abs(ordEpoch.clockResidual)>clkResidLimit))
+ ordEpoch.clockResidual.set_valid(false);
+
+ if (ordLimitOpt.getCount())
+ {
+ ORDEpoch::ORDMap::const_iterator iter = ordEpoch.ords.begin();
+ while (iter!= ordEpoch.ords.end())
+ {
+ const SatID& satId = iter->first;
+ const ObsRngDev& ord = iter->second;
+ iter++;
+ if (ord.getORD() < ordLimit)
+ ordEpoch.removeORD(satId);
+ }
+ }
+
+ write(output, ordEpoch);
+ }
+ if (verboseLevel || debugLevel)
+ cout << "# Doneskies.\n";
+}
+
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ OrdEdit crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
+
diff --git a/dev/apps/reszilla/ordGen.cpp b/dev/apps/reszilla/ordGen.cpp
new file mode 100644
index 0000000..3a958cf
--- /dev/null
+++ b/dev/apps/reszilla/ordGen.cpp
@@ -0,0 +1,263 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+#include <MSCData.hpp>
+#include <MSCStream.hpp>
+#include <BCEphemerisStore.hpp>
+
+
+#include "OrdApp.hpp"
+#include "OrdEngine.hpp"
+#include "ObsReader.hpp"
+#include "EphReader.hpp"
+#include "MetReader.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+class OrdGen : public OrdApp
+{
+public:
+ OrdGen() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void spinUp();
+ virtual void process();
+
+private:
+ string ordMode;
+ Triple antennaPos;
+ unsigned msid;
+
+ bool useNear;
+
+ CommandOptionWithAnyArg obsFileOption, ephFileOption, metFileOption;
+};
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the defaults
+//-----------------------------------------------------------------------------
+OrdGen::OrdGen() throw()
+ : OrdApp("ordGen", "Generates observed range deviations."),
+ ordMode("smart"), useNear(false),
+ msid(0),
+ obsFileOption('o', "obs", "Where to get the obs data.", true),
+
+ ephFileOption('e', "eph", "Where to get the ephemeris data. Can be "
+ " rinex, fic, or sp3", true),
+
+ metFileOption('w', "weather", "Weather data file name (RINEX met "
+ "format only).")
+{}
+
+
+//-----------------------------------------------------------------------------
+// Here the command line options are set up, parsed, and used to configure
+// the program.
+//-----------------------------------------------------------------------------
+bool OrdGen::initialize(int argc, char *argv[]) throw()
+{
+ CommandOptionWithAnyArg
+ mscFileOption('c', "msc", "Station coordinate file."),
+
+ ordModeOption('\0', "omode", "Specifies what observations are used to "
+ "compute the ORDs. Valid values are:"
+ "p1p2, c1p2, y1y2, c1, p1, c2, p2, smo, and smart. "
+ "The default is " + ordMode),
+
+ antennaPosOption('p', "pos", "Location of the antenna in meters ECEF.");
+
+ CommandOptionWithNumberArg
+ msidOption('m', "msid", "Station to process data for. Used to "
+ "select a station position from the msc file or data "
+ "from a SMODF file.");
+
+ CommandOptionNoArg
+ useNearOption('n', "near", "Allows the program to select an ephemeris that "
+ "is not strictly in the future. Only affects the selection of which broadcast "
+ "ephemeris to use. Use a close ephemeris");
+
+ if (!OrdApp::initialize(argc,argv)) return false;
+
+ if (ordModeOption.getCount())
+ ordMode = lowerCase(ordModeOption.getValue()[0]);
+
+ if (msidOption.getCount())
+ msid = asUnsigned(msidOption.getValue().front());
+
+ // Get the station position
+ if (antennaPosOption.getCount())
+ {
+ string aps = antennaPosOption.getValue()[0];
+ if (numWords(aps) != 3)
+ {
+ cerr << "Please specify three coordinates in the antenna postion." << endl;
+ return false;
+ }
+ else
+ for (int i=0; i<3; i++)
+ antennaPos[i] = asDouble(word(aps, i));
+ }
+ else if (msid && mscFileOption.getCount() > 0)
+ {
+ string mscfn = (mscFileOption.getValue())[0];
+ MSCStream msc(mscfn.c_str(), ios::in);
+ MSCData mscd;
+ while (msc >> mscd && mscd.station != msid)
+ ;
+ if (mscd.station == msid)
+ antennaPos = mscd.coordinates;
+ }
+ else
+ {
+ string fn = (obsFileOption.getValue())[0];
+ ObsReader obsReader(fn, verboseLevel);
+ if (obsReader.inputType == FFIdentifier::tRinexObs)
+ antennaPos = obsReader.roh.antennaPosition;
+ }
+
+ useNear = useNearOption.getCount();
+
+ if (RSS(antennaPos[0], antennaPos[1], antennaPos[2]) < 1)
+ {
+ cerr << "Warning! The antenna appears to be within one meter of the" << endl
+ << "center of the geoid. This program is not capable of" << endl
+ << "accurately estimating the propigation of GNSS signals" << endl
+ << "through solids such as a planetary crust or magma. Also," << endl
+ << "if this location is correct, your antenna is probably" << endl
+ << "no longer in the best of operating condition." << endl;
+ return false;
+ }
+
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+// General program setup
+//-----------------------------------------------------------------------------
+void OrdGen::spinUp()
+{
+ if (verboseLevel)
+ {
+ if (msid)
+ cout << "# msid: " << msid << endl;
+ cout << "# Antenna Position: " << setprecision(8) << antennaPos << endl;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+void OrdGen::process()
+{
+ // This is only needed to help debug the FFIdentifer class
+ FFIdentifier::debugLevel = debugLevel;
+
+ // Get the ephemeris data
+ EphReader ephReader;
+ ephReader.verboseLevel = verboseLevel;
+ for (int i=0; i<ephFileOption.getCount(); i++)
+ ephReader.read(ephFileOption.getValue()[i]);
+ gpstk::EphemerisStore& eph = *ephReader.eph;
+
+ if (useNear && typeid(eph) == typeid(BCEphemerisStore))
+ {
+ BCEphemerisStore& bce = dynamic_cast<BCEphemerisStore&>(eph);
+ bce.SearchNear();
+ }
+
+
+ // Get the weather data...
+ MetReader metReader;
+ metReader.verboseLevel = verboseLevel;
+ for (int i=0; i<metFileOption.getCount(); i++)
+ metReader.read(metFileOption.getValue()[i]);
+ WxObsData& wod = metReader.wx;
+
+ // Use a New Brunswick trop model.
+ NBTropModel tm;
+
+ // Now set up the function object that is used to compute the ords.
+ OrdEngine ordEngine(eph, wod, antennaPos, ordMode, tm);
+ ordEngine.verboseLevel = verboseLevel;
+ ordEngine.debugLevel = debugLevel;
+ ORDEpochMap ordEpochMap;
+
+ // Walk through each obs file, reading and computing ords along the way.
+ for (int i=0; i<obsFileOption.getCount(); i++)
+ {
+ string fn = (obsFileOption.getValue())[i];
+ ObsReader obsReader(fn, verboseLevel);
+ obsReader.msid = msid;
+
+ while (obsReader())
+ {
+ ObsEpoch obs(obsReader.getObsEpoch());
+
+ if (!obsReader())
+ break;
+
+ ORDEpoch oe = ordEngine(obs);
+
+ write(output, oe);
+ }
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ OrdGen crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/reszilla/ordLinEst.cpp b/dev/apps/reszilla/ordLinEst.cpp
new file mode 100644
index 0000000..a47390a
--- /dev/null
+++ b/dev/apps/reszilla/ordLinEst.cpp
@@ -0,0 +1,228 @@
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <algorithm>
+
+#include "OrdApp.hpp"
+#include "RobustLinearEstimator.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+// This is a function object that is intended to look for discontinuities
+// in a series of pairs.
+struct BigRateOperator :
+ public std::binary_function<DoubleDouble, DoubleDouble, bool>
+{
+ BigRateOperator(double r)
+ : maxRate(std::abs(r))
+ {}
+
+ bool operator() (const DoubleDouble& l, const DoubleDouble& r) const
+ {
+ double dt = l.first - r.first;
+ double dy = l.second - r.second;
+ double rate = 0;
+ if (dt != 0.0)
+ rate = dy/dt;
+ return abs(rate) > maxRate;
+ }
+
+ const double maxRate;
+};
+
+
+struct ClockSegment: public RobustLinearEstimator
+{
+ DayTime startTime, endTime;
+};
+
+
+struct ClockSegmentList : public list<ClockSegment>
+{
+ vdouble eval(const DayTime& t)
+ {
+ vdouble offset;
+ for (const_iterator k=begin(); k != end(); k++)
+ {
+ const ClockSegment& cs = *k;
+ if ((t - cs.startTime) > -0.01 && (cs.endTime - t) > -0.01)
+ {
+ double mjd = t.MJDdate();
+ if (cs.valid)
+ offset = cs.eval(mjd);
+ break;
+ }
+ }
+ return offset;
+ }
+
+ void dump(ostream& output, string timeFormat) const
+ {
+ output << "# t0 t1 t0 offset(m)"
+ << " t1 offset(m) slope(m/d) abdev(m)" << endl;
+ output << "# ------------------- ------------------- "
+ << "------------ ------------ ---------- --------" << endl;
+ for (const_iterator k=begin(); k != end(); k++)
+ {
+ const ClockSegment& cs = *k;
+ double t0 = cs.startTime.MJDdate();
+ double tf = cs.endTime.MJDdate();
+ output << ">c " << cs.startTime.printf(timeFormat)
+ << " " << cs.endTime.printf(timeFormat)
+ << fixed
+ << " " << setprecision(3) << setw(12) << cs.eval(t0)
+ << " " << setprecision(3) << setw(12) << cs.eval(tf)
+ << " " << setprecision(3) << setw(12) << cs.b
+ << " " << setprecision(3) << setw(10) << cs.abdev
+ << endl;
+ }
+ output << "#" << endl;
+ }
+};
+
+
+class OrdLinEst : public OrdApp
+{
+public:
+ OrdLinEst() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void process();
+ CommandOptionWithAnyArg maxRateOption;
+
+};
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//-----------------------------------------------------------------------------
+OrdLinEst::OrdLinEst() throw()
+ : OrdApp("ordLinEst", "Computes a linear clock estimate. "),
+ maxRateOption('m', "max-rate",
+ "Rate used to detect a clock jump. default is 10,000 m/day")
+
+{}
+
+//-----------------------------------------------------------------------------
+bool OrdLinEst::initialize(int argc, char *argv[]) throw()
+{
+ return OrdApp::initialize(argc,argv);
+}
+
+
+//-----------------------------------------------------------------------------
+void OrdLinEst::process()
+{
+ gpstk::ORDEpochMap oem;
+ // read in data from the ord file to map of ORDEpochs
+ while (input)
+ {
+ ORDEpoch ordEpoch = read(input);
+ oem[ordEpoch.time] = ordEpoch;
+ }
+
+ DoubleDoubleVec clocks;
+ ORDEpochMap::const_iterator ei;
+ for (ei = oem.begin(); ei != oem.end(); ei++)
+ {
+ double mjd = ei->first.MJDdate();
+ vdouble clk = ei->second.clockOffset;
+ if (!clk.is_valid() || std::abs(clk) < 1e-6)
+ continue;
+ clocks.push_back(DoubleDouble(mjd, clk));
+ }
+
+ // An emperically determied maximum clock drift rate, in meters per day
+ double maxRate=10000;
+ if (maxRateOption.getCount())
+ maxRate = StringUtils::asDouble(maxRateOption.getValue().front());
+ BigRateOperator bro(maxRate);
+
+ DoubleDoubleVec::iterator i,j;
+ ClockSegmentList csl;
+ for (i=clocks.begin(); i != clocks.end(); i++)
+ {
+ j = adjacent_find( i, clocks.end(), bro);
+ ClockSegment seg;
+ seg.startTime = DayTime(i->first+1e-9);
+ if (j != clocks.end())
+ seg.endTime = DayTime(j->first+1e-9);
+ else
+ seg.endTime = DayTime(clocks.rbegin()->first+1e-9);
+ seg.process(i, j);
+ csl.push_back(seg);
+ if (j == clocks.end())
+ break;
+ i = j;
+ }
+
+ csl.dump(output, timeFormat);
+
+ ORDEpochMap::iterator l;
+ for (l=oem.begin(); l != oem.end(); l++)
+ {
+ const DayTime& t = l->first;
+ ORDEpoch& ord = l->second;
+ vdouble offset = csl.eval(t);
+ if (offset.is_valid() && ord.clockOffset.is_valid())
+ ord.clockResidual = ord.clockOffset - offset;
+
+ write(output, l->second);
+ }
+}
+
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ OrdLinEst crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
+
diff --git a/dev/apps/reszilla/ordPlot b/dev/apps/reszilla/ordPlot
new file mode 100755
index 0000000..f7688dd
--- /dev/null
+++ b/dev/apps/reszilla/ordPlot
@@ -0,0 +1,329 @@
+#!/usr/bin/env python
+# $Id$
+# A routine to plot the output of the ord apps.
+#
+
+import sys, string, time, datetime, numpy, matplotlib, pylab
+
+def main():
+ from optparse import OptionParser
+ parser = OptionParser()
+ parser.add_option("-d", "--debug", help="Increase the debugLevel", \
+ default=0, dest="debugLevel", action="count")
+
+ parser.add_option("-i", help="Input data file, defaults to stdin.", \
+ dest="inputFile", type="string", action="store")
+
+ parser.add_option("-t", help="Specify a title for the plot. "+\
+ "Defaults to the name of the input stream.", \
+ dest="title", type="string", action="store")
+
+ parser.add_option("-l", "--legend", dest="legend", action="count",
+ help="Include a legend.")
+
+ parser.add_option("-o", "--ords-only", help="Only plot the ords (types 0 & 1).", \
+ dest="ordsOnly", default=0, action="count")
+
+ parser.add_option("-c", "--clocks-only", help="Only plot the clocks.",\
+ dest="clocksOnly", default=0, action="count")
+
+ parser.add_option("-s", dest="saveFig", action="store", type="string",\
+ help="Save the figure to the indicated file")
+
+ parser.add_option("-y", dest="yRange", action="store", type="float",\
+ help="Fix the y range on the ords to be +- this value.")
+
+ parser.add_option("--start-time",\
+ dest="tStart", action="store",\
+ help="Start time. Format as \"YYYY DOY HH:MM:SS.S\" (Note\
+ the trailing decimal place).")
+ parser.add_option("--end-time",\
+ dest="tEnd", action="store",\
+ help="End time. Format as \"YYYY DOY HH:MM:SS.S\" (Note\
+ the trailing decimal place).")
+
+ parser.add_option("-w", "--warts",\
+ dest="wartiness", action="count",\
+ help="Increase the importants of warts on the plot.\
+ Zero (the default) means don't even plot them. One\
+ means plot them but don't autoscale to show them all\
+ (just show all the ords). Two means autoscale to show\
+ all the warts. Three means only show the warts and\
+ don't show any ords. Only zero and 2 have been\
+ implimented.")
+
+ (options, args) = parser.parse_args()
+
+ if (len(args) and options.inputFile == None):
+ options.inputFile = args[0]
+
+ inputFile = sys.stdin
+ if (options.inputFile):
+ inputFile = open(options.inputFile)
+
+ if (options.title == None):
+ options.title = inputFile.name
+
+ if (options.debugLevel):
+ print "Processing: %s" % inputFile.name
+ print "Debug level: %d" % options.debugLevel
+ print "Title: %s" % options.title
+ if options.yRange:
+ print "Fixing y axis to +/- %.f meters" % options.yRange
+
+ # ------------------------------------------------------------------
+ # Here we start reading in the ord file
+ ordList=([],[],[],[]) # time, prn, ord, elevation
+ wartList=([],[],[],[]) # time, prn, ord, elevation
+ clockList=([],[]) # time, offset
+ ocdList=([],[])
+
+ rleClockList=[]
+
+ for line in inputFile:
+ line = line.strip()
+ if options.debugLevel>1:
+ print line
+ if len(line)==0: continue
+
+ if line[0] == "#": continue
+ if line[0] == '>':
+ if line[1] == "c":
+ words=line.split()
+ if len(words) < 9:
+ print "bad rle line"
+ else:
+ t0 = parse_time(words[1:4])
+ t1 = parse_time(words[4:7])
+ offset = float(words[7])
+ slope = float(words[9])
+ abdev = float(words[10])
+ rleClockList.append( (t0, t1, offset, slope, abdev) )
+ continue
+
+ words=line.split()
+ t = parse_time(words[0:3])
+
+ ordType = int(words[3])
+ if ordType == 0:
+ if len(words) < 7:
+ print "bad ord line"
+ continue
+
+ prn = int(words[4])
+ ord = float(words[6])
+ elev = float(words[5])
+ wart = int(words[7],16)
+ if wart==0:
+ ordList[0].append(t)
+ ordList[1].append(prn)
+ ordList[2].append(ord)
+ ordList[3].append(elev)
+ else:
+ wartList[0].append(t)
+ wartList[1].append(prn)
+ wartList[2].append(ord)
+ wartList[3].append(elev)
+ elif ordType == 1:
+ if len(words) < 2: print "bad clock residual line"
+ ocdList[0].append(t)
+ ocdList[1].append(float(words[4]))
+ elif ordType == 50:
+ if len(words) < 5: print "bad clk line"
+ clockList[0].append(t)
+ clockList[1].append(float(words[4])) #offset
+
+ if options.debugLevel>2 and len(clockList[0]) >= 200: break
+
+ ords = numpy.array(ordList)
+ warts = numpy.array(wartList)
+ clocks = numpy.array(clockList)
+ ocds = numpy.array(ocdList)
+
+ # Since these are now in numpy arrays, delete the source to save some memory
+ del ordList, clockList, wartList, ocdList
+ # done reading in the ord file
+ # ------------------------------------------------------------------
+
+
+ # Now figure out how many axes we need to use
+ plotOrds = True
+ plotClocks = True
+
+ if len(clocks[0]) == 0 or options.ordsOnly: plotClocks = False
+ if (len(ords[0]) == 0 and len(warts[0]) == 0) or options.clocksOnly: plotOrds = False
+ axesCount=0;
+ if plotOrds: axesCount+=1
+ if plotClocks: axesCount+=1
+
+ if options.debugLevel:
+ print "Read %d ords, %d clocks, %d ocds %d warts %d rle" %\
+ (len(ords[0]), len(clocks[0]), len(ocds[0]), len(warts[0]),
+ len(rleClockList))
+
+ if axesCount == 0:
+ print "No data to plot. Exiting"
+ sys.exit()
+
+ # A key handler for matplotlib
+ def press(event):
+ if event.key=='q' or event.key==' ':
+ pylab.close()
+
+ # Here we start generating the plots
+ fig = pylab.figure()
+ pylab.connect('key_press_event', press)
+ yprops = dict(rotation=90,
+ horizontalalignment='right',
+ verticalalignment='center',
+ family='monospace',
+ x=-0.01)
+
+ scale_props = dict(horizontalalignment="right",
+ verticalalignment="bottom",
+ size=8, family="sans-serif")
+
+ xMajorFmt=pylab.DateFormatter("%02H:%02M\n%03j\n%4Y")
+ xMinorFmt=pylab.NullFormatter()
+ xMajorLoc=matplotlib.dates.DayLocator()
+ xMinorLoc=matplotlib.dates.HourLocator()
+
+ rExtent=0.89
+ if options.legend:
+ rExtent=0.82
+
+ if axesCount == 2:
+ ax1 = fig.add_axes([0.08, 0.52, rExtent, 0.42])
+ elif axesCount == 1:
+ ax1 = fig.add_axes([0.08, 0.10, rExtent, 0.85])
+
+ if plotOrds:
+ if True:
+ if len(ords[0]):
+ ax1.plot_date(ords[0], ords[2], 'g,', label="ords")
+ if len(warts[0]) and options.wartiness:
+ ax1.plot_date(warts[0], warts[2], 'r,', label="warts")
+ else:
+ for prn in pylab.arange(1,33):
+ onePrn = pylab.compress(pylab.equal(ords[1], prn), ords)
+ if len(onePrn[0]):
+ ax1.plot_date(onePrn[0], onePrn[2], '.', label="prn %2d"%prn)
+ for prn in pylab.arange(1,33):
+ onePrn = pylab.compress(pylab.equal(warts[1], prn), warts)
+ if len(onePrn[0]):
+ ax1.plot_date(onePrn[0], onePrn[2], '.', label="prn %2dW"%prn)
+
+ if len(ocds[0]):
+ ax3=fig.add_axes(ax1.get_position())
+ ax3.set_alpha(0.25) #This doesn't seem to affect the plot
+ ax3.plot_date(ocds[0], ocds[1], 'b-,', label="clk res")
+
+ # If there are rle clocks, draw a vertical line where each new model
+ # starts
+ for t0, t1, y0, m, d in rleClockList:
+ ax1.axvline(t0, label='_nolegend_')
+
+ if options.legend:
+ ax1.legend(numpoints=2, pad=0.1, labelsep = 0, handlelen=0.005,
+ handletextsep=0.01, axespad=0.0, loc=(1,0))
+ leg = pylab.gca().get_legend()
+ ltext = leg.get_texts()
+ llines = leg.get_lines()
+ lframe = leg.get_frame()
+ lframe.set_facecolor('0.4')
+ pylab.setp(ltext, size=8, family="sans-serif")
+ pylab.setp(llines, linewidth=2)
+ leg.draw_frame(False)
+ ax1.set_ylabel('ord (meters)', **yprops)
+ ax1.grid(True)
+ if options.yRange:
+ ax1.set_ylim(ymin=-options.yRange, ymax=options.yRange)
+ pylab.figtext(rExtent+.08, 0.95, "y range +/- %.f m" % options.yRange,
+ **scale_props)
+ else:
+ if (options.wartiness<2):
+ ax1.set_ylim(ymin=min(ords[2]), ymax=max(ords[2]))
+ pylab.figtext(rExtent+.08, 0.95, "y range autoscaled",
+ **scale_props)
+
+ # This allows the creation of futher axes that will share the x axis
+ # with the first plot.
+ axprops = dict()
+ axprops['sharex'] = ax1
+
+ if axesCount == 2:
+ ax2 = fig.add_axes([0.08, 0.10, rExtent, 0.38], **axprops)
+ elif axesCount == 1:
+ ax2 = ax1
+
+ if plotClocks:
+ ax2.plot_date(clocks[0], clocks[1], 'g.', label="offset")
+ ax2.grid(True)
+ ax2.set_ylabel('clock (meters)', **yprops)
+
+ # Only plot the linear clock estimate if there is data for it...
+ for t0, t1, y0, m, d in rleClockList:
+ y1 = y0 + m * (t1 - t0)
+ t = numpy.array([t0, t1])
+ y = numpy.array([y0, y1])
+ ax2.plot_date(t, y, 'b-', linewidth=1, label='_nolegend_')
+ yu = y + d
+ yl = y - d
+ yy = pylab.concatenate( (yu, yl[::-1]) )
+ tt = pylab.concatenate( (t, t[::-1]) )
+ ax2.fill(tt, yy, facecolor='b', alpha=0.4, label='_nolegend_')
+
+ if options.legend:
+ ax2.legend(numpoints=2, pad=0.1, labelsep = 0, handlelen=0.005,
+ handletextsep=0.01, axespad=0.0, loc=(1,0))
+ leg = pylab.gca().get_legend()
+ leg.draw_frame(False)
+
+
+ ax2.xaxis.set_major_formatter(xMajorFmt)
+ xlabels=ax2.get_xticklabels()
+ ylabels=ax2.get_yticklabels()
+ pylab.setp(xlabels, fontsize=10, family='sans-serif')
+ pylab.setp(ylabels, fontsize=10, family='sans-serif')
+
+ ax2.xaxis.set_minor_formatter(xMinorFmt)
+
+ # set x axis range
+ if options.tStart:
+ tMin = parse_time(options.tStart.split()[0:3])
+ else:
+ tMin = min(ords[0])
+
+ if options.tEnd:
+ tMax = parse_time(options.tEnd.split()[0:3])
+ else:
+ tMax = max(ords[0])
+
+ ax2.set_xlim(xmin=tMin, xmax=tMax)
+
+ # Axis labels on the upper plot would be bad since they would be
+ # drawn over the upper part of the lower plot
+ if axesCount > 1:
+ pylab.setp(ax1.get_xticklabels(), visible=False)
+ ax1.set_title(options.title)
+
+ if (options.saveFig == None):
+ pylab.show()
+ else:
+ pylab.savefig(options.saveFig)
+# end of main
+
+
+def parse_time(words):
+ fsec = float(words[2][8:10])
+ ydhms = words[0]+" "+words[1]+" "+words[2][0:8]
+ utime = time.strptime(ydhms, "%Y %j %H:%M:%S")
+ dtime = datetime.datetime(utime[0], utime[1], utime[2],
+ utime[3], utime[4], utime[5], int(fsec*1e6))
+ t0 = matplotlib.dates.date2num(dtime)
+ return t0
+# end of parse_time()
+
+
+if __name__ == "__main__":
+ main()
diff --git a/dev/apps/reszilla/ordStats.cpp b/dev/apps/reszilla/ordStats.cpp
new file mode 100644
index 0000000..48cac98
--- /dev/null
+++ b/dev/apps/reszilla/ordStats.cpp
@@ -0,0 +1,329 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "OrdApp.hpp"
+#include "OrdApp.cpp"
+#include "icd_200_constants.hpp"
+//#include "util.hpp"
+#include <iostream>
+#include <list>
+
+#include "OrdApp.hpp"
+#include "ElevationRange.hpp"
+#include "Stats.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+class OrdStats : public OrdApp
+{
+public:
+ OrdStats() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void process();
+
+private:
+ CommandOptionWithAnyArg elevBinsOption, statsFileOption;
+ CommandOptionWithNumberArg sigmaOption;
+ CommandOptionNoArg wonkyOption;
+ ElevationRangeList elr;
+ double sigmaMult;
+ bool useWonky;
+
+};
+
+
+//-----------------------------------------------------------------------------
+// The constructor basically just sets up all the command line options
+//-----------------------------------------------------------------------------
+OrdStats::OrdStats() throw()
+ : OrdApp("ordStats", "Computes ords statistics. "),
+ elevBinsOption('b', "elev-bin", "A range of elevations, used in "
+ " computing the statistical summaries. Repeat to specify"
+ " multiple bins. The default is \"-b 0-10 -b 10-20 -b"
+ " 20-60 -b 10-90\"."),
+ sigmaOption('s',"sigma","Multiplier for sigma stripping used in "
+ "statistical computations. The default value is 6."),
+ statsFileOption('o',"statsFile","Filename for output of stats only. Stats"
+ " will still be included at the end of the ord file."),
+ wonkyOption('w',"wonky","Use wonky data in stats computation. The"
+ " default is to not use such data.")
+{}
+
+//-----------------------------------------------------------------------------
+bool OrdStats::initialize(int argc, char *argv[]) throw()
+{
+ return OrdApp::initialize(argc,argv);
+}
+
+//-----------------------------------------------------------------------------
+void OrdStats::process()
+{
+ // get elevation ranges, if specified
+ if (elevBinsOption.getCount())
+ {
+ for (int i=0; i<elevBinsOption.getCount(); i++)
+ {
+ string pr = elevBinsOption.getValue()[i];
+ float minElev = asFloat(pr);
+ stripFirstWord(pr, '-');
+ float maxElev = asFloat(pr);
+ elr.push_back( ElevationRange(minElev, maxElev) );
+ }
+ }
+ else
+ {
+ elr.push_back( ElevationRange( 0, 10) );
+ elr.push_back( ElevationRange(10, 20) );
+ elr.push_back( ElevationRange(20, 60) );
+ elr.push_back( ElevationRange(60, 90) );
+ elr.push_back( ElevationRange(10, 90) );
+ }
+ if (sigmaOption.getCount())
+ sigmaMult = asDouble(sigmaOption.getValue().front());
+ else
+ sigmaMult = 6;
+ std::ofstream extraOutput;
+ if (statsFileOption.getCount())
+ {
+ const string fn = statsFileOption.getValue()[0];
+ extraOutput.open(fn.c_str(), ios::out);
+ }
+
+ if (wonkyOption.getCount())
+ useWonky = true;
+ else
+ useWonky = false;
+
+ // initialize some counters
+ float totalEpochCount = 0; // cnt of total # of epochs from input
+ float totalORDCount = 0; // cnt of total # ord ORDs
+ float wonkyEpochCount = 0; // cnt of entire epochs that are wonky
+ float wonkyORDCount = 0; // cnt of individual ords that are wonky
+
+ // read in data from the ord file to map of ORDEpochs
+ ORDEpochMap oem;
+ while (input)
+ {
+ ORDEpoch ordEpoch = read(input);
+
+ // increment wonky counters accordingly
+ if (ordEpoch.wonky)
+ wonkyEpochCount++;
+ totalEpochCount++;
+ oem[ordEpoch.time] = ordEpoch;
+ write(output, ordEpoch);
+ }
+
+ // output clock offsets greater than 1ms
+ output << "# Time \t\t\tOffsets > 1ms\n"
+ << "# ------\t\t\t-------------\n";
+ if (statsFileOption.getCount())
+ extraOutput << "Time \t\t\tOffsets > 1ms\n"
+ << "------\t\t\t-------------\n";
+ bool foundBigOffset = false;
+ // find offsets > 1ms and get one more wonky count
+ ORDEpochMap::iterator iter;
+ for (iter = oem.begin(); iter != oem.end(); iter++)
+ {
+ try
+ {
+ const double offset = iter->second.clockOffset;
+ if (abs(offset) > (C_GPS_M/1000))
+ {
+ foundBigOffset = true;
+ output << ">b " << iter->second.time << "\t\t"
+ << setprecision(5) << setw(12)
+ << iter->second.clockOffset << endl;
+ if (statsFileOption.getCount())
+ extraOutput << iter->second.time << "\t"
+ << setprecision(5) << setw(12)
+ << iter->second.clockOffset << endl;
+ }
+
+ ORDEpoch::ORDMap::const_iterator pi;
+ for (pi = iter->second.ords.begin();
+ pi != iter->second.ords.end(); pi++)
+ {
+ totalORDCount++;
+ const unsigned wonk = pi->second.wonky;
+ if (wonk)
+ wonkyORDCount++;
+ }
+ }
+ catch (gpstk::Exception &exc)
+ { cout << "# Error caught in ordStats - probably missing clock offset data\n"; }
+ }
+
+
+ if (!foundBigOffset)
+ output << "# No offsets greater than 1 millisecond found.\n";
+ if ((!foundBigOffset) && statsFileOption.getCount())
+ extraOutput << " No offsets greater than 1 millisecond found.\n";
+
+ // output wonky stats
+ output << "# wonky epochs total % wonky epochs # wonky ords total "
+ << "ords % wonky ords\n"
+ << "# ------------ ----- -------------- ------------"
+ << " ---------- ------------\n";
+ char b1[200];
+ // the high # after % symbol is just kinda lazy formatting...
+ sprintf(b1, ">w %8.0f %9.0f %12.2f %12.0f %12.0f %12.2f",
+ wonkyEpochCount, totalEpochCount,
+ (100*(wonkyEpochCount/totalEpochCount)),
+ wonkyORDCount,totalORDCount,
+ (100*(wonkyORDCount/totalORDCount)));
+ output << b1 << endl;
+
+ if (statsFileOption.getCount())
+ {
+ extraOutput << "wonky epochs total % wonky epochs # wonky ords"
+ << " total ords % wonky ords\n"
+ << "------------ ----- -------------- ------------ "
+ << " ---------- ------------\n";
+ sprintf(b1, "%8.0f %9.0f %12.2f %12.0f %12.0f %12.2f",
+ wonkyEpochCount,
+ totalEpochCount, (100*(wonkyEpochCount/totalEpochCount)),
+ wonkyORDCount,totalORDCount,
+ (100*(wonkyORDCount/totalORDCount)));
+ extraOutput << b1 << endl;
+ }
+
+ // print some header info
+ output << "# elev\t stddev mean # obs # bad"
+ << " max strip\n"
+ << "# ----\t ------ ---- ----- -----"
+ << " ----- -----\n";
+ if (statsFileOption.getCount())
+ {
+ extraOutput << "elev\t stddev mean # obs # bad"
+ << " max strip\n"
+ << "----\t ------ ---- ----- -----"
+ << " ----- -----\n";
+ }
+
+ // compute stats for each elevation range
+ for (ElevationRangeList::const_iterator i = elr.begin();
+ i != elr.end(); i++)
+ {
+ ElevationRange er = *i;
+ float minElevation = er.first;
+ float maxElevation = er.second;
+
+ Stats<double> fp;
+ ORDEpochMap::iterator iter;
+ for (iter = oem.begin(); iter != oem.end(); iter++)
+ {
+ const DayTime& t = iter->first;
+ ORDEpoch::ORDMap::const_iterator pi;
+ for (pi = iter->second.ords.begin();
+ pi != iter->second.ords.end(); pi++)
+ {
+ const float el = pi->second.getElevation();
+ const double ord = pi->second.getORD();
+ if (el>minElevation && el<maxElevation)
+ fp.Add(ord);
+ }
+ }
+ double strip = sigmaMult * fp.StdDev();
+ Stats<double> good, bad;
+ for (iter = oem.begin(); iter != oem.end(); iter++)
+ {
+ const DayTime& t = iter->first;
+ ORDEpoch::ORDMap::const_iterator pi;
+ for (pi = iter->second.ords.begin();
+ pi != iter->second.ords.end(); pi++)
+ {
+ const float el = pi->second.getElevation();
+ const double ord = pi->second.getORD();
+ const unsigned wonk = pi->second.wonky;
+ if (el>minElevation && el<maxElevation)
+ {
+ double mag=std::abs(ord);
+ if (wonk && !useWonky)
+ bad.Add(ord);
+ else if (mag < strip)
+ good.Add(ord);
+ else
+ bad.Add(ord);
+ }
+ }
+ }
+
+ char b1[200];
+ char zero = good.Average() < good.StdDev()/sqrt((float)good.N())?'0':' ';
+ double max = std::max(std::abs(good.Maximum()),
+ std::abs(good.Minimum()));
+ sprintf(b1, ">r %2d-%2d %8.5f %8.3f %7d %6d %6.2f %6.2f",
+ (int)minElevation, (int)maxElevation,
+ good.StdDev()/sqrt((float)2), good.Average(),
+ good.N(), bad.N(), max, strip);
+ output << b1 << endl;
+
+ if (statsFileOption.getCount())
+ {
+ sprintf(b1, "%2d-%2d %8.5f %8.3f %7d %6d %6.2f %6.2f",
+ (int)minElevation, (int)maxElevation,
+ good.StdDev()/sqrt((float)2), good.Average(),
+ good.N(), bad.N(), max, strip);
+ extraOutput << b1 << endl;
+ }
+ }
+}
+
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ OrdStats crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cout << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
+
diff --git a/dev/apps/swrx/CACodeGenerator.hpp b/dev/apps/swrx/CACodeGenerator.hpp
new file mode 100644
index 0000000..a3210bc
--- /dev/null
+++ b/dev/apps/swrx/CACodeGenerator.hpp
@@ -0,0 +1,74 @@
+#pragma ident "$Id$"
+
+#ifndef CACODEGENERATOR_HPP
+#define CACODEGENERATOR_HPP
+
+#include <iostream>
+
+#include "CodeGenerator.hpp"
+#include "ConstLinearRecurrentSequence.hpp"
+
+namespace gpstk
+{
+ class CACodeGenerator : public CodeGenerator
+ {
+ public:
+ CACodeGenerator(int prn)
+ : CodeGenerator(ObsID::tcCA, SatID(prn, SatID::systemGPS)),
+ g2Offset(getG2Delay(prn))
+ {setIndex(0);}
+
+ bool operator*() const { return (*G1)^(*G2); }
+
+ CodeIndex operator++() { ++G1; ++G2; ++chipCount; return getIndex(); }
+
+ CodeIndex setIndex(CodeIndex new_index)
+ {
+ G1.setIndex(new_index);
+ G2.setIndex(new_index + codeLen - g2Offset);
+ chipCount = 0;
+ return getIndex();
+ }
+
+ CodeIndex getIndex() const
+ { return G1.getIndex(); }
+
+ bool isLastInSequence() const
+ { return G1.isLastInSequence(); }
+
+ CodeIndex getSyncIndex() const {return codeLen;}
+
+ CodeIndex getChipCount() const {return chipCount;}
+
+ void reset() {setIndex(0);}
+
+ private:
+ const static int G1_InitialVector=0x3FF;
+ const static int G2_InitialVector=0x3FF;
+
+ const static int G1_Polynomial=(1<<10)|(1<<3);
+ const static int G2_Polynomial=(1<<10)|(1<<9)|(1<<8)|(1<<6)|(1<<3)|(1<<2);
+
+ const static int codeLen = 1023;
+
+ CodeIndex chipCount;
+
+ ConstLinearRecurrentSequence<codeLen, G1_InitialVector, G1_Polynomial> G1;
+
+ ConstLinearRecurrentSequence<codeLen, G2_InitialVector, G2_Polynomial> G2;
+
+ const CodeIndex g2Offset;
+
+ static CodeIndex getG2Delay(int prn)
+ {
+ const CodeIndex G2DelayTable[]={
+ 0,5,6,7,8,17,18,139,140,141,251,252,254,255,256,
+ 257,258,469,470,471,472,473,474,509,512,513,514,
+ 515,516,859,860,861,862,863,950,947,948,950
+ };
+ return G2DelayTable[prn];
+ }
+ };
+}
+
+#endif
diff --git a/dev/apps/swrx/CCReplica.cpp b/dev/apps/swrx/CCReplica.cpp
new file mode 100644
index 0000000..ab554b7
--- /dev/null
+++ b/dev/apps/swrx/CCReplica.cpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "CCReplica.hpp"
+
+#include "complex_math.h"
+
+using namespace gpstk;
+using namespace std;
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+void CCReplica::dump(std::ostream& s) const
+{
+ s << "# " << codeGenPtr->sv << " " << ObsID::tcStrings[codeGenPtr->code]
+ << ":" << endl
+ << setprecision(4)
+ << "# -- tickSize: " << tickSize * 1e6 << " us"
+ << ", codeChipLen: " << codeChipLen * 1e6 << " us"
+ << ", chipsPerTick:" << chipsPerTick
+ << endl << setprecision(7)
+ << "# -- LO carrierFreq: " << carrierFreq * 1e-3 << " kHz"
+ << ", cyclesPerTick: " << cyclesPerTick
+ << endl
+ << "# -- localTime: " << localTime * 1e6 << " us"
+ << ", codePhase: " << codePhase << " chips"
+ << endl
+ << "# -- codePhaseOffset: " << codePhaseOffset << " chips"
+ << ", codeFreqOffset: " << codeFreqOffset << " chips/tick"
+ << endl
+ << "# -- carrierPhase: " << carrierPhase
+ << ", carrierFreqOffset: " << carrierFreqOffset << " cycles/tick"
+ << endl;
+}
+
+
+void CCReplica::reset()
+{
+ codePhase = 0;
+ codePhaseOffset = 0;
+ codeFreqOffset = 0;
+ carrierPhase = 0;
+ carrierPhaseOffset = 0;
+ carrierFreqOffset = 0;
+ carrierAccum = 0;
+ localTime = 0;
+ codeGenPtr->reset();
+}
+
+complex<double> CCReplica::getCarrier()
+{
+ return sincos(2*gpstk::PI*carrierPhase);
+}
+
+
+void CCReplica::moveCodePhase(double chips) throw()
+{
+ codePhase += chips;
+ codePhaseOffset += chips;
+ wrapCode();
+}
+
+
+void CCReplica::moveCarrierPhase(double cycles) throw()
+{
+ carrierPhase += cycles;
+ carrierPhaseOffset += cycles;
+ wrapCarrier();
+}
+
+
+void CCReplica::setCodeFreqOffsetHz(double freq)
+{
+ // Yea, my code offset calculation is fscked
+ codeFreqOffset = 0 * (freq * codeChipLen) * tickSize / codeChipLen;
+}
+
+
+double CCReplica::getCodeFreqOffsetHz() const
+{
+ return codeFreqOffset / tickSize;
+}
+
+
+double CCReplica::getCodePhaseOffsetSec() const
+{
+ return codePhaseOffset * codeChipLen;
+}
+
+
+void CCReplica::setCarrierFreqOffsetHz(double freq)
+{
+ carrierFreqOffset = freq * tickSize;
+}
+
+
+double CCReplica::getCarrierFreqOffsetHz() const
+{
+ return carrierFreqOffset / tickSize;
+}
+
+
+void CCReplica::tick() throw()
+{
+ localTime += tickSize;
+
+ double codePhaseDelta = chipsPerTick + codeFreqOffset;
+ codePhase += codePhaseDelta;
+ codePhaseOffset += codeFreqOffset;
+ wrapCode();
+
+ double carrierUpdate = cyclesPerTick + carrierFreqOffset;
+ carrierPhase += carrierUpdate;
+ carrierPhaseOffset += carrierFreqOffset;
+ wrapCarrier();
+}
+
+
+void CCReplica::wrapCode()
+{
+ if (codePhase<1)
+ return;
+ if (codePhase<2)
+ {
+ codePhase -= 1;
+ ++(*codeGenPtr);
+ }
+ else
+ {
+ long dc = static_cast<long>(codePhase);
+ codeGenPtr->setIndex(codeGenPtr->getIndex() + dc);
+ codePhase -= static_cast<CodeIndex>(codePhase);
+ }
+}
+
+
+void CCReplica::wrapCarrier()
+{
+ if (codePhase<1)
+ return;
+ else if (codePhase<2)
+ {
+ carrierPhase--;
+ carrierAccum++;
+ }
+ else
+ {
+ long dc = static_cast<long>(carrierPhase);
+ carrierPhase -= dc;
+ carrierAccum += dc;
+ }
+}
diff --git a/dev/apps/swrx/CCReplica.hpp b/dev/apps/swrx/CCReplica.hpp
new file mode 100644
index 0000000..9fc560d
--- /dev/null
+++ b/dev/apps/swrx/CCReplica.hpp
@@ -0,0 +1,121 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef CCREPLICA_HPP
+#define CCREPLICA_HPP
+
+#include <complex>
+#include <iostream>
+
+#include "icd_200_constants.hpp"
+
+#include "CodeGenerator.hpp"
+
+//-----------------------------------------------------------------------------
+// This is a intended to generate a local replica of a single code/carrier
+//-----------------------------------------------------------------------------
+class CCReplica
+{
+public:
+
+ // Note that this object is responsible for destroying the codeGenPtr
+ // object
+ CCReplica(double tickSize, double codeFreq, double carrierFreq, gpstk::CodeGenerator* code)
+ : tickSize(tickSize),
+ codeChipLen(1/codeFreq),
+ carrierFreq(carrierFreq),
+ localTime(0),
+ codePhase(0), codePhaseOffset(0), codeFreqOffset(0),
+ chipsPerTick(tickSize * codeFreq),
+ carrierPhase(0), carrierFreqOffset(0), carrierPhaseOffset(0),
+ carrierAccum(0),
+ cyclesPerTick(tickSize * carrierFreq),
+ codeGenPtr(code)
+ {};
+
+ ~CCReplica()
+ { if (codeGenPtr) delete codeGenPtr;}
+
+ // This is used to move the local time forward by the specified
+ // tick size
+ virtual void tick() throw();
+
+ // get the current code & carrier state
+ virtual int getCode() {return **codeGenPtr;}; // zero or one
+ virtual std::complex<double> getCarrier(); //value between -1 and 1
+
+ // These are used to change the code/carrier by the specified ammount
+ virtual void moveCodePhase(double chips) throw();
+ virtual void moveCarrierPhase(double cycles) throw();
+ virtual void wrapCode();
+ virtual void wrapCarrier();
+
+ // Get and set routines that work in engineering units
+ virtual void setCodeFreqOffsetHz(double freq);
+ virtual double getCodeFreqOffsetHz() const;
+
+ virtual void setCarrierFreqOffsetHz(double freq);
+ virtual double getCarrierFreqOffsetHz() const;
+
+ virtual double getCodePhaseOffsetSec() const;
+
+ virtual void reset();
+
+ // These are defining parameters for any code since they are const
+ // there is no reason to wrapper them in a call or make them
+ // private.
+ const double tickSize; // units: sec
+ const double codeChipLen; // units: sec
+ const double carrierFreq; // units Hz
+ const double chipsPerTick; // units: chips
+ const double cyclesPerTick; // units: cycles
+
+ virtual void dump(std::ostream& s) const;
+
+ // fractional phase of the local code, units are chips
+ double codePhase;
+
+ // code time relative to localTime, units of chips
+ double codePhaseOffset;
+
+ // The code rate relative to the localTime, units of chips / tick
+ double codeFreqOffset;
+
+ // The fractional phase of the local carrier, units are cycles of the IF
+ double carrierPhase;
+
+ double carrierPhaseOffset;
+
+ // The carrier frequency offset
+ double carrierFreqOffset;
+
+ unsigned long carrierAccum;
+
+ // The local clock, units are in sec
+ double localTime;
+
+ gpstk::CodeGenerator* codeGenPtr;
+};
+
+#endif
diff --git a/dev/apps/swrx/CodeGenerator.hpp b/dev/apps/swrx/CodeGenerator.hpp
new file mode 100644
index 0000000..8908643
--- /dev/null
+++ b/dev/apps/swrx/CodeGenerator.hpp
@@ -0,0 +1,64 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef CODEGENERATOR_HPP
+#define CODEGENERATOR_HPP
+
+#include "ObsID.hpp"
+#include "SatID.hpp"
+
+namespace gpstk
+{
+ typedef unsigned long CodeIndex;
+
+ class CodeGenerator
+ {
+ public:
+
+ CodeGenerator(const ObsID::TrackingCode code, const SatID& sv)
+ : code(code), sv(sv)
+ {}
+
+ // Returns the current chip
+ virtual bool operator*() const = 0;
+ virtual CodeIndex operator++() = 0;
+
+ virtual CodeIndex setIndex(CodeIndex new_index) = 0;
+ virtual CodeIndex getIndex() const = 0;
+
+ // This returns the total chips generated since the last set/reset;
+ virtual CodeIndex getChipCount() const = 0;
+
+ // This is used to get a clue as to where in the code the integrate
+ // and dump interval should be alligned
+ virtual CodeIndex getSyncIndex() const = 0;
+
+ virtual void reset() {setIndex(0);}
+
+ const ObsID::TrackingCode code;
+ const SatID sv;
+ };
+
+}
+#endif
diff --git a/dev/apps/swrx/ConstLinearRecurrentSequence.cpp b/dev/apps/swrx/ConstLinearRecurrentSequence.cpp
new file mode 100644
index 0000000..6593973
--- /dev/null
+++ b/dev/apps/swrx/ConstLinearRecurrentSequence.cpp
@@ -0,0 +1,50 @@
+#include "ConstLinearRecurrentSequence.hpp"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifdef SIMPLE_DEMO
+
+#include <stdio.h>
+#include <bitset>
+
+typedef ConstLinearRecurrentSequence<1023,0x3FF,(1<<10)|(1<<3),std::bitset<1023> > CA_G1_Sequence;
+
+typedef ConstLinearRecurrentSequence<1023,0x3FF,(1<<10)|(1<<9)|(1<<8)|(1<<6)|(1<<3)|(1<<2),std::bitset<1023> > CA_G2_Sequence;
+
+
+template <> CA_G1_Sequence::StoreType CA_G1_Sequence::store(0);
+template <> CA_G2_Sequence::StoreType CA_G2_Sequence::store(0);
+
+
+
+int
+main(int argc, char *argv[])
+{
+
+ printf("C/A G2 sequence is:\n");
+ for(CA_G2_Sequence::iterator i;!i.isLastInSequence();++i) {
+ printf("%u",*i);
+ }
+ printf("\n");
+}
+#endif
diff --git a/dev/apps/swrx/ConstLinearRecurrentSequence.hpp b/dev/apps/swrx/ConstLinearRecurrentSequence.hpp
new file mode 100644
index 0000000..9bb6bc6
--- /dev/null
+++ b/dev/apps/swrx/ConstLinearRecurrentSequence.hpp
@@ -0,0 +1,71 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef CONSTLINEARRECURRENTSEQUENCE_HPP
+#define CONSTLINEARRECURRENTSEQUENCE_HPP
+
+#include <bitset>
+
+template < int Length, int Initial, int Polynomial >
+class ConstLinearRecurrentSequence : public std::bitset<Length>
+{
+public:
+ ConstLinearRecurrentSequence(int start_index=0)
+ : index(start_index % Length)
+ {
+ int reg=Initial;
+ int outputmask=1;
+
+ /* First compute outputmask by finding highest value bit in Polynomial */
+ for(int temp=(Polynomial>>1); temp; temp>>=1)
+ outputmask<<=1;
+
+ /* Now compute the sequence */
+ for(int i=0; i<Length; i++)
+ {
+ int accum=0;
+ (*this)[i]=reg&1;
+ for(int j=0;j<31;j++)
+ if(Polynomial&(1<<j)) /* WARNING: Assumes int is 32 bits */
+ accum^=(reg<<j);
+
+ reg=(reg|(accum&outputmask))>>1;
+ }
+ }
+
+ bool operator*() const {return (*this)[index];}
+
+ int operator++() { if((++index)==Length) index=0; }
+
+ int setIndex(int new_index) { index=new_index%Length; return getIndex();}
+ int getIndex() const { return index; }
+
+ bool isLastInSequence() const { return index==(Length-1); }
+
+private:
+ int index;
+ std::bitset<Length> store;
+};
+
+#endif
diff --git a/dev/apps/swrx/EMLTracker.cpp b/dev/apps/swrx/EMLTracker.cpp
new file mode 100644
index 0000000..75a8265
--- /dev/null
+++ b/dev/apps/swrx/EMLTracker.cpp
@@ -0,0 +1,247 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "EMLTracker.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+/// param localReplica the code/carrier that this object is to track
+/// param codeSpacing the correlator spacing (in sec) that will be used for
+/// the code. This class will quantize this value to the closest number
+/// of ticks.
+EMLTracker::EMLTracker(CCReplica& localReplica, double codeSpacing) :
+ GenericTracker(localReplica),
+ ticksPerChip(static_cast<unsigned>(1.0/localReplica.chipsPerTick)),
+ eplSpacing(static_cast<unsigned>((codeSpacing / localReplica.tickSize))),
+ pllError(0), pllAlpha(0.2), pllBeta(0.05),
+ dllError(0), dllAlpha(6), dllBeta(0.01),
+ iadCount(0), nav(false), baseGain(1.0/(0.1767*1.404)),
+ inSumSq(0), lrSumSq(0),iadThreshold(0.02),
+ dllMode(dmFar), pllMode(pmUnlocked)
+{
+ early.setDelay(2*eplSpacing);
+ prompt.setDelay(eplSpacing);
+ late.setDelay(0);
+
+ // Since our 'prompt' code is really a late code we should really advance
+ // our local replica by this amount but not have it count as part of our
+ // code phase offset.
+ correlatorBias = eplSpacing * localReplica.chipsPerTick;
+ localReplica.moveCodePhase(correlatorBias);
+ localReplica.codePhaseOffset -= correlatorBias;
+
+ // Walk the code by the correlator spacing
+ searchSize = eplSpacing * localReplica.tickSize/localReplica.codeChipLen;
+
+ iadCountMax = static_cast<unsigned long>(
+ localReplica.codeGenPtr->getSyncIndex() / localReplica.chipsPerTick);
+ iadCountDefault = iadCountMax;
+};
+
+
+bool EMLTracker::process(complex<double> in)
+{
+ integrate(in);
+
+ if (++iadCount == iadCountMax)
+ {
+ updateLoop();
+ // and dump our accumulators
+ early.dump();
+ prompt.dump();
+ late.dump();
+ inSumSq = 0;
+ lrSumSq = 0;
+ iadCount=0;
+ return true;
+ }
+
+ return false;
+}
+
+
+void EMLTracker::integrate(complex<double> in)
+{
+ localReplica.tick();
+
+ // First bring the signal level of the input to the same as the
+ // local replicas
+ in *= baseGain;
+
+ complex<double> carrier = localReplica.getCarrier();
+ complex<double> code = localReplica.getCode() ? plusOne : minusOne;
+
+ // mix in the carrier local replica
+ complex<double> m0 = in * conj(carrier);
+
+ // and sum them up.. (yea, the conj of the codes should be a NoOp)
+ code = conj(code);
+ early.process(m0, code);
+ prompt.process(m0, code);
+ late.process(m0, code);
+
+ // Update our sums for normailzing things...
+ complex<double> lr = conj(carrier) * code;
+ inSumSq += in.real()*in.real() + in.imag()*in.imag();
+ lrSumSq += lr.real()*lr.real() + lr.imag()*lr.imag();
+}
+
+
+void EMLTracker::updateLoop()
+{
+ sqrtSumSq = sqrt(inSumSq*lrSumSq);
+
+ emag = abs(early()) / sqrtSumSq;
+ pmag = abs(prompt()) / sqrtSumSq;
+ lmag = abs(late()) / sqrtSumSq;
+
+ pI = prompt().real();
+ pQ = prompt().imag();
+
+ snr= 10*log10(pmag*pmag/localReplica.tickSize);
+
+ dllError = lmag - emag;
+ pllError = atan(prompt().imag() / prompt().real()) / PI;
+
+ promptPhase =atan2(prompt().imag(), prompt().real()) / PI;
+
+ DllMode oldDllMode=dllMode;
+ // Do we have any idea where the peak may lie?
+ if (//min(emag,lmag) > iadThreshold/2 &&
+ pmag > iadThreshold &&
+ pmag > max(emag,lmag))
+ dllMode = dmOnTop;
+ else if (emag > iadThreshold || pmag > iadThreshold || lmag > iadThreshold)
+ dllMode = dmClose;
+ else
+ dllMode = dmFar;
+
+ if (dllMode != oldDllMode && debugLevel)
+ cout << "# t:"
+ << fixed << setprecision(1) << localReplica.localTime * 1e3
+ << " ms, dll:" << asString(dllMode) << endl;
+
+ // At this point all that is left on the inphase is the nav data
+ nav = prompt().real() > 0;
+
+ // Close the loop on the dll
+ if (dllMode == dmOnTop || dllMode == dmClose)
+ {
+ localReplica.moveCodePhase(dllAlpha * dllError);
+ localReplica.codeFreqOffset += dllBeta * dllError/iadCount;
+ }
+ else
+ {
+ localReplica.moveCodePhase(searchSize);
+ }
+
+ // Close up the pll
+ if (dllMode == dmOnTop)
+ {
+ localReplica.moveCarrierPhase(pllAlpha * pllError);
+ localReplica.carrierFreqOffset += pllBeta * pllError/iadCount;
+ }
+
+ if (dllMode == dmOnTop && pllError < 0.3)
+ pllMode = pmLocked;
+ else
+ pllMode = pmUnlocked;
+
+ // Determine how many ticks until we hit the sync index again
+ iadCountPrev = iadCountMax;
+ CodeIndex sync = localReplica.codeGenPtr->getSyncIndex();
+ CodeIndex indx = localReplica.codeGenPtr->getIndex() % sync;
+ unsigned chips =sync - indx;
+ iadCountMax = static_cast<unsigned long>(chips / localReplica.chipsPerTick);
+ if (iadCountMax < 10000)
+ iadCountMax += 20000;
+}
+
+
+void EMLTracker::dump(std::ostream& s, int detail) const
+{
+ if (detail>0)
+ {
+ localReplica.dump(s);
+ s << "# Tracker:" << endl
+ << "# -- bias: " << correlatorBias * localReplica.codeChipLen * 1e6 << " us" << endl
+ << "# -- spacing: " << eplSpacing << " tick(s)" << endl
+ << "# -- iadThreshold: " << iadThreshold << endl
+ << "# -- ticksPerChip: " << ticksPerChip << endl
+ << "# -- iadCountMax: " << iadCountMax << endl
+ << "# -- searchSize: " << searchSize << " chips" << endl
+ << "# -- dll: alpha=" << dllAlpha << " beta=" << dllBeta << endl
+ << "# -- pll: alpha=" << pllAlpha << " beta=" << pllBeta << endl
+ << "#" << endl
+ << "#h time dllErr codePO codeFO pllErr carrPO carrFO nav cp iad ely pmt lat pmtI pmtQ" << endl
+ << "#u ms % us Hz cyc cyc Hz - -- cnt % % % cnt cnt";
+ }
+
+ if (detail==0)
+ {
+ s << left << fixed
+ << setprecision(1) << setw(8) << localReplica.localTime * 1e3
+ << setprecision(2) << right
+ << " " << setw(6) << getDllError() * 100
+ << setprecision(3)
+ << " " << setw(11) << localReplica.getCodePhaseOffsetSec() * 1e6
+ << setprecision(2)
+ << " " << setw(6) << localReplica.getCodeFreqOffsetHz()
+ << " "
+ << setprecision(3)
+ << " " << setw(6) << getPromptPhase()
+ << setprecision(1)
+ << " " << setw(8) << localReplica.carrierPhaseOffset
+ << setprecision(2)
+ << " " << setw(8) << localReplica.getCarrierFreqOffsetHz()
+ << setprecision(0)
+ << " " << getNav()
+ << " " << dllMode << pllMode
+ << " " << iadCountPrev;
+ if (true)
+ s << setprecision(2)
+ << " " << setw(5) << emag * 100
+ << " " << setw(5) << pmag * 100
+ << " " << setw(5) << lmag * 100;
+ if (true)
+ s << setprecision(0)
+ << " " << setw(6) << pI
+ << " " << setw(6) << pQ;
+ }
+
+ s << endl;
+};
+
+
+string EMLTracker::asString(DllMode mode) const
+{
+ switch (mode)
+ {
+ case dmFar: return "f";
+ case dmClose: return "n";
+ case dmOnTop: return "o";
+ }
+ return "?";
+};
diff --git a/dev/apps/swrx/EMLTracker.hpp b/dev/apps/swrx/EMLTracker.hpp
new file mode 100644
index 0000000..426b530
--- /dev/null
+++ b/dev/apps/swrx/EMLTracker.hpp
@@ -0,0 +1,139 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef EMLTRACKER_HPP
+#define EMLTRACKER_HPP
+
+#include <math.h>
+#include <complex>
+#include <iostream>
+#include <list>
+
+#include "icd_200_constants.hpp"
+
+#include "CCReplica.hpp"
+#include "SimpleCorrelator.hpp"
+#include "complex_math.h"
+
+
+//-----------------------------------------------------------------------------
+// Defines the interface to a tracker. A tracker tracks a single code+carrier
+// combination as specified with the CCReplica object. Most of the observables
+// will be in the CCReplica object, not the tracker.
+//-----------------------------------------------------------------------------
+class GenericTracker
+{
+public:
+ GenericTracker(CCReplica& localReplica) :
+ localReplica(localReplica)
+ {};
+
+ // This needs to be called to process every sample
+ // It returns true when a dump was performed
+ virtual bool process(std::complex<double> s) = 0;
+
+ CCReplica& localReplica;
+};
+
+
+//-----------------------------------------------------------------------------
+// This is a textbook early minus late code tracker and a Costas carrier tracker.
+// The code localReplica is used as the early version of the code. This class
+// generates a prompt and late from this.
+//-----------------------------------------------------------------------------
+class EMLTracker : public GenericTracker
+{
+public:
+
+ /// param localReplica the code/carrier that this object is to track
+ /// param codeSpacing the correlator spacing (in sec) that will be used for
+ /// the code. This class will quantize this value to the closest number
+ /// of ticks.
+ EMLTracker(CCReplica& localReplica, double codeSpacing);
+
+ virtual bool process(std::complex<double> in);
+
+ void dump(std::ostream& s, int detail=0) const;
+
+ double pllAlpha, pllBeta, dllAlpha, dllBeta;
+
+ enum DllMode {dmFar, dmClose, dmOnTop};
+ enum PllMode {pmUnlocked, pmLocked};
+
+ int debugLevel;
+
+ std::string asString(DllMode mode) const;
+
+ // Accessors to get the current state of this tracker
+ DllMode getDllMode() const {return dllMode;}
+ PllMode getPllMode() const {return pllMode;}
+ bool getNav() const {return nav;}
+ double getPllError() const {return pllError;}
+ double getDllError() const {return dllError;}
+ double getPmag() const {return pmag;}
+ double getPromptPhase() const {return promptPhase;}
+ double getSNR() const {return snr;}
+ double getSqrtSumSq() const {return sqrtSumSq;}
+ unsigned getIntegrateCount() const {return iadCount;}
+
+private:
+ void integrate(std::complex<double> in);
+ void updateLoop();
+
+ double pllError, dllError, promptPhase;
+
+ DllMode dllMode;
+ PllMode pllMode;
+
+ bool nav;
+
+ SimpleCorrelator<double> early, prompt, late;
+ double emag, pmag, lmag, pI, pQ;
+
+ // These are used to normalize the correlator counts
+ double inSumSq, lrSumSq, sqrtSumSq, snr;
+
+ // Integrate and dump count and limit. When the count equals the max
+ // its time to close the loop and then dump the sums.
+ unsigned iadCount, iadCountMax, iadCountDefault, iadCountPrev;
+
+ // Used to detect whether the peak is close.
+ double iadThreshold;
+
+ const unsigned ticksPerChip;
+
+ // correlator spacing, in units of ticks
+ unsigned eplSpacing;
+
+ // How much to walk the code when we aren't on a peak
+ double searchSize;
+
+ // A constant bias in the code offset due to the way we generate our
+ // early, prompt, and late replicas
+ double correlatorBias;
+
+ const double baseGain;
+};
+
+#endif
diff --git a/dev/apps/swrx/IQStream.cpp b/dev/apps/swrx/IQStream.cpp
new file mode 100644
index 0000000..2d9f2a6
--- /dev/null
+++ b/dev/apps/swrx/IQStream.cpp
@@ -0,0 +1,324 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "IQStream.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ void IQStream::init(void)
+ {
+ frameBuffer = new char[frameLength];
+ readPtr = frameLength;
+ writePtr = 0;
+ sampleCounter = 0;
+ metaPtr = frameLength - 4;
+ }
+
+ void IQStream::readBuffer(void)
+ {
+ if (sampleCounter & 0x1)
+ cerr << "Uh, we have a problem " << sampleCounter << endl;
+ read(frameBuffer, frameLength);
+ if (gcount() != frameLength)
+ return;
+ if (debugLevel>1)
+ cout << "Filled frame buffer" << endl;
+ readPtr = 0;
+
+ unsigned char sum=0;
+ for (int i=0; i<frameLength-1; i++)
+ sum+=static_cast<unsigned char>(frameBuffer[i]);
+ if (sum != 0x5a)
+ cerr << "IQStream::readComplex() checksum error "
+ << hex << sum << dec << endl;
+
+ uint16_t fc = frameBuffer[frameLength-3] & 0x00ff |
+ frameBuffer[frameLength-4]<<8 & 0xff00;
+ int16_t deltaFc = fc - frameCounter;
+
+ if (sampleCounter && deltaFc != 1)
+ cerr << "IQStream::readComplex() frame count error, delta:"
+ << deltaFc << endl;
+ frameCounter = fc;
+
+ if (debugLevel>1)
+ gpstk::StringUtils::hexDumpData(
+ cout, string(frameBuffer, frameLength));
+ }
+
+
+ void IQStream::writeBuffer(void)
+ {
+ frameBuffer[frameLength-3] = frameCounter & 0xff;
+ frameBuffer[frameLength-4] = frameCounter>>8 & 0xff;
+
+ unsigned char sum=0;
+ for (int i=0; i<frameLength-2; i++)
+ sum+=static_cast<unsigned char>(frameBuffer[i]);
+ frameBuffer[frameLength-2] = 0x5a-sum;
+ frameBuffer[frameLength-1] = 0;
+
+ if (debugLevel>1)
+ cout << "Writing frameBuffer" << endl;
+ if (debugLevel>1)
+ gpstk::StringUtils::hexDumpData(
+ cout, string(frameBuffer, frameLength));
+
+ write(frameBuffer, frameLength);
+ writePtr = 0;
+ frameCounter++;
+ }
+
+
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ void IQ1Stream::readComplex(complex<short>& v)
+ {
+ if (readPtr == frameLength)
+ readBuffer();
+
+ uint8_t byte;
+ if (readPtr < metaPtr)
+ byte = frameBuffer[readPtr];
+ else
+ byte = 0;
+
+ if (sampleCounter & 0x1)
+ {
+ byte = byte >> 4;
+ readPtr++;
+ }
+ sampleCounter++;
+
+ int i,q;
+ q = (byte & 1) ? +1 : -1;
+ i = (byte & 4) ? +1 : -1;
+
+ v = complex<short>(i, q);
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ1Stream::readComplex(complex<float>& v)
+ {
+ complex<short> s;
+ readComplex(s);
+ v = complex<float>(static_cast<float>(s.real()),
+ static_cast<float>(s.imag()));
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ1Stream::writeComplex(const complex<short>& v)
+ {
+ uint8_t i = v.real()>0 ? 1 : 0;
+ uint8_t q = v.imag()>0 ? 1 : 0;
+ uint8_t nibble = (q & 0x3) | ((i<<2) & 0xc);
+
+ if (sampleCounter & 0x1)
+ frameBuffer[writePtr] = frameBuffer[writePtr] | nibble << 4;
+ else
+ frameBuffer[writePtr] = nibble;
+
+ if (sampleCounter & 0x1)
+ writePtr++;
+
+ sampleCounter++;
+
+ if (writePtr == frameLength)
+ writeBuffer();
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ1Stream::writeComplex(const complex<float>& v)
+ {
+ complex<short> s(static_cast<short>(v.real()),
+ static_cast<short>(v.imag()));
+ writeComplex(s);
+ }
+
+
+
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ void IQ2Stream::init(void)
+ {
+ sample2Level.resize(4);
+ sample2Level[0] = -1;
+ sample2Level[1] = -3;
+ sample2Level[2] = 1;
+ sample2Level[3] = 3;
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ2Stream::readComplex(complex<short>& v)
+ {
+ if (readPtr == frameLength)
+ readBuffer();
+
+ uint8_t byte;
+ if (readPtr < metaPtr)
+ byte = frameBuffer[readPtr];
+ else
+ byte = 0;
+
+ if (sampleCounter & 0x1)
+ {
+ byte = byte >> 4;
+ readPtr++;
+ }
+ sampleCounter++;
+
+ int i,q;
+ q = (byte & 0x3);
+ i = ((byte >> 2) & 0x3);
+
+ v = complex<short>(sample2Level[i], sample2Level[q]);
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ2Stream::readComplex(complex<float>& v)
+ {
+ complex<short> s;
+ readComplex(s);
+ v = complex<float>(static_cast<float>(s.real()),
+ static_cast<float>(s.imag()));
+ }
+
+
+ //-----------------------------------------------------------------------------
+ template<class T>
+ uint8_t IQ2Stream::l2s(T v)
+ {
+ uint8_t s=0;
+ if (v>0)
+ s |= 2;
+ else
+ v *= -1;
+
+ if (v>1)
+ s |=1;
+
+ return s;
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ2Stream::writeNibble(uint8_t i, uint8_t q)
+ {
+ uint8_t nibble = (q & 0x3) | ((i<<2) & 0xc);
+ if (sampleCounter & 0x1)
+ frameBuffer[writePtr] = frameBuffer[writePtr] | nibble << 4;
+ else
+ frameBuffer[writePtr] = nibble;
+
+ if (sampleCounter & 0x1)
+ writePtr++;
+
+ sampleCounter++;
+
+ if (writePtr == frameLength)
+ writeBuffer();
+
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ2Stream::writeComplex(const complex<short>& v)
+ {
+ uint8_t i = l2s(v.real());
+ uint8_t q = l2s(v.imag());
+ writeNibble(i, q);
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQ2Stream::writeComplex(const complex<float>& v)
+ {
+ uint8_t i = l2s(v.real());
+ uint8_t q = l2s(v.imag());
+ writeNibble(i, q);
+ }
+
+
+
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ void IQFloatStream::readComplex(complex<float>& v)
+ {
+ const size_t size = 2*sizeof(float);
+
+ if (readPtr + size >metaPtr)
+ readBuffer();
+
+ float i = *(reinterpret_cast<float*>(&frameBuffer[readPtr]));
+ readPtr += sizeof(float);
+
+ float q = *(reinterpret_cast<float*>(&frameBuffer[readPtr]));
+ readPtr += sizeof(float);
+ sampleCounter++;
+
+ v = complex<float>(i, q);
+ }
+
+ //-----------------------------------------------------------------------------
+ void IQFloatStream::readComplex(complex<short>& v)
+ {
+ complex<float> s;
+ readComplex(s);
+ v = complex<short>(static_cast<short>(s.real()),
+ static_cast<short>(s.imag()));
+ }
+
+
+ //-----------------------------------------------------------------------------
+ void IQFloatStream::writeComplex(const complex<float>& v)
+ {
+ const size_t size = 2*sizeof(float);
+
+ if (writePtr + size > metaPtr)
+ writeBuffer();
+
+ *(reinterpret_cast<float*>(&frameBuffer[writePtr])) = v.real();
+ writePtr += sizeof(float);
+
+ *(reinterpret_cast<float*>(&frameBuffer[writePtr])) = v.imag();
+ writePtr += sizeof(float);
+
+ sampleCounter++;
+ }
+
+ //-----------------------------------------------------------------------------
+ void IQFloatStream::writeComplex(const complex<short>& v)
+ {
+ complex<float> s(static_cast<float>(v.real()),
+ static_cast<float>(v.imag()));
+ writeComplex(s);
+ }
+} // namespace gpstk
diff --git a/dev/apps/swrx/IQStream.hpp b/dev/apps/swrx/IQStream.hpp
new file mode 100644
index 0000000..edd6382
--- /dev/null
+++ b/dev/apps/swrx/IQStream.hpp
@@ -0,0 +1,219 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef IQSTREAM_HPP
+#define IQSTREAM_HPP
+
+#include <vector>
+#include <map>
+#include <complex>
+
+#include <gpstkplatform.h>
+#include <FFBinaryStream.hpp>
+
+namespace gpstk
+{
+ /**
+ * This is a stream used to parse an IQ data file
+ */
+ class IQStream : public FFBinaryStream
+ {
+ public:
+ IQStream()
+ : debugLevel(0),
+ frameCounter(0),
+ sampleCounter(0),
+ frameLength(500),
+ bands(1),
+ frameBuffer(NULL)
+ { init(); }
+
+
+ IQStream(const char* fn, std::ios::openmode mode = std::ios::in)
+ : FFBinaryStream(fn, mode),
+ debugLevel(0),
+ frameCounter(0),
+ sampleCounter(0),
+ frameLength(500),
+ bands(1),
+ frameBuffer(NULL)
+ { init(); }
+
+
+ /// destructor per the coding standards
+ virtual ~IQStream()
+ { delete frameBuffer; }
+
+ /// Just a common place to set up a default object
+ virtual void init(void);
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode = std::ios::in)
+ {
+ FFBinaryStream::open(fn, mode);
+ readPtr = frameLength;
+ writePtr = 0;
+ frameCounter = 0;
+ sampleCounter = 0;
+ }
+
+ unsigned frameLength;
+
+ /// The frame count that is at the end of each block
+ unsigned frameCounter;
+
+ /// The current frame of data
+ char* frameBuffer;
+
+ /// Used to keep track of where we are in the frame
+ unsigned readPtr;
+ unsigned writePtr;
+
+ /// used to figure out which nibble of readPtr we are in...
+ unsigned long sampleCounter;
+
+ /// This is where the meta data of the frame starts
+ unsigned metaPtr;
+
+ int debugLevel;
+
+ std::string desc;
+
+ /// The number of bands of data in this file.
+ /// This can't be determined from the input stream at the moment
+ int bands;
+
+ /// These are used to read and write the buffer
+ void readBuffer(void);
+ void writeBuffer(void);
+
+ /// Returns single complex sample
+ virtual void readComplex(std::complex<short>& v) = 0;
+ virtual void readComplex(std::complex<float>& v) = 0;
+
+ /// Writes a single complex sample,
+ virtual void writeComplex(const std::complex<short>& v) = 0;
+ virtual void writeComplex(const std::complex<float>& v) = 0;
+ }; // class IQStream
+
+
+ inline IQStream& operator>>(IQStream& s, std::complex<short>& v)
+ { s.readComplex(v); return s; };
+
+ inline IQStream& operator>>(IQStream& s, std::complex<float>& v)
+ { s.readComplex(v); return s; };
+
+ inline IQStream& operator<<(IQStream& s, const std::complex<short>& v)
+ { s.writeComplex(v); return s; };
+
+ inline IQStream& operator<<(IQStream& s, const std::complex<float>& v)
+ { s.writeComplex(v); return s; };
+
+
+ class IQ1Stream : public IQStream
+ {
+ public:
+ IQ1Stream() : IQStream() {init();}
+
+ IQ1Stream(const char* fn, std::ios::openmode mode = std::ios::in)
+ : IQStream(fn, mode)
+ {init(); desc="1 bit";}
+
+ /// destructor per the coding standards
+ virtual ~IQ1Stream() {};
+
+ /// Just a common place to set up a default object
+ virtual void init(void) {};
+
+ /// Returns single complex sample
+ virtual void readComplex(std::complex<short>& v);
+ virtual void readComplex(std::complex<float>& v);
+
+ /// Writes a single complex sample,
+ virtual void writeComplex(const std::complex<short>& v);
+ virtual void writeComplex(const std::complex<float>& v);
+ }; // class IQ1Stream
+
+
+ class IQ2Stream : public IQStream
+ {
+ public:
+ IQ2Stream() : IQStream() {init();desc="2 bit";}
+
+ IQ2Stream(const char* fn, std::ios::openmode mode = std::ios::in)
+ : IQStream(fn, mode)
+ {init();desc="2 bit";}
+
+ /// destructor per the coding standards
+ virtual ~IQ2Stream() {};
+
+ /// Just a common place to set up a default object
+ virtual void init(void);
+
+ /// Maps the bits of each sample to the actual levels
+ std::vector<short> sample2Level;
+
+ /// Encodes levels into the appropriate bits
+ template<class T>
+ uint8_t l2s(T v);
+
+ /// Returns single complex sample
+ virtual void readComplex(std::complex<short>& v);
+ virtual void readComplex(std::complex<float>& v);
+
+ /// Writes a single complex sample,
+ virtual void writeComplex(const std::complex<short>& v);
+ virtual void writeComplex(const std::complex<float>& v);
+ private:
+ void writeNibble(uint8_t i, uint8_t q);
+ }; // class IQ2Stream
+
+
+ class IQFloatStream : public IQStream
+ {
+ public:
+ IQFloatStream() : IQStream() {init();desc="float";}
+
+ IQFloatStream(const char* fn, std::ios::openmode mode = std::ios::in)
+ : IQStream(fn, mode)
+ {init();desc="float";}
+
+ /// destructor per the coding standards
+ virtual ~IQFloatStream() {};
+
+ /// Just a common place to set up a default object
+ virtual void init(void) {};
+
+ /// Returns single complex sample
+ virtual void readComplex(std::complex<short>& v);
+ virtual void readComplex(std::complex<float>& v);
+
+ /// Writes a single complex sample,
+ virtual void writeComplex(const std::complex<short>& v);
+ virtual void writeComplex(const std::complex<float>& v);
+ }; // class IQ2Stream
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/apps/swrx/Jamfile b/dev/apps/swrx/Jamfile
new file mode 100644
index 0000000..407fdd7
--- /dev/null
+++ b/dev/apps/swrx/Jamfile
@@ -0,0 +1,23 @@
+# $Id$
+
+SubDir TOP apps swrx ;
+
+GPSLinkLibraries simlib : gpstk ;
+
+Library simlib : normal.cpp CCReplica.cpp IQStream.cpp EMLTracker.cpp
+ NavFramer.cpp ;
+
+LinkLibraries gpsSim tracker corltr iqdump codeDump : simlib ;
+GPSLinkLibraries gpsSim tracker corltr iqdump codeDump simpleNav : gpstk ;
+
+Main gpsSim : gpsSim.cpp ;
+
+Main tracker : tracker.cpp ;
+
+Main corltr : corltr.cpp ;
+
+Main simpleNav : simpleNav.cpp ;
+
+Main iqdump : iqdump.cpp ;
+
+Main codeDump : codeDump.cpp ;
diff --git a/dev/apps/swrx/NAVCodeGenerator.hpp b/dev/apps/swrx/NAVCodeGenerator.hpp
new file mode 100644
index 0000000..8d12c22
--- /dev/null
+++ b/dev/apps/swrx/NAVCodeGenerator.hpp
@@ -0,0 +1,42 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef NAVCODEGENERATOR_HPP
+#define NAVCODEGENERATOR_HPP
+
+class NAVCodeGenerator
+{
+public:
+
+ NAVCodeGenerator() : bit(0) { }
+
+ int operator*() const { return bit; }
+ void operator++() { bit^=1; }
+
+ void setIndex(int new_index) { bit=new_index&1; }
+
+private:
+ int bit;
+};
+#endif
diff --git a/dev/apps/swrx/NavFramer.cpp b/dev/apps/swrx/NavFramer.cpp
new file mode 100644
index 0000000..567cb68
--- /dev/null
+++ b/dev/apps/swrx/NavFramer.cpp
@@ -0,0 +1,190 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "EngNav.hpp"
+#include "NavFramer.hpp"
+
+
+using namespace gpstk;
+using namespace std;
+
+
+void NavFramer::Subframe::dump(std::ostream& s, int detail) const
+{
+ if (detail==0)
+ {
+ s << "t:" << fixed << setprecision(1) << t * 1e3
+ << ", ni:" << ni
+ << ", ci:" << ci
+ << ", inv:" << inverted
+ << ", prevD30:" << prevD30;
+
+ if (!complete)
+ return;
+ if (checkParity())
+ s << ", SFID:" << EngNav::getSFID(words[1])
+ << ", Z:" << EngNav::getHOWTime(words[1]);
+ else
+ s << ", Parity:" << checkWords();
+ }
+ else
+ {
+ for (int w=0; w<10; w++)
+ s << "# w[" << w << "]:" << bitset<30>(words[w]) << endl;
+ }
+}
+
+std::ostream& operator<<(std::ostream& s, const NavFramer::Subframe& sf)
+{
+ sf.dump(s,0);
+}
+
+
+
+bool NavFramer::Subframe::checkParity(bool knownUpright) const
+{
+ return EngNav::checkParity(words, false);
+}
+
+
+void NavFramer::Subframe::load(const std::bitset<5 * 300> bs)
+{
+ bitset<30> word;
+ for (int w=0; w<10; w++)
+ {
+ for(int b=0; b<30; b++)
+ word[29-b] = bs[(ni + w*30 + b)%1500];
+
+ if (inverted)
+ word = ~word;
+
+ words[w] = word.to_ulong();
+ }
+ complete = true;
+}
+
+
+const char* NavFramer::Subframe::checkWords() const
+{
+ if (!complete)
+ return string("??????????").c_str();
+
+ string good;
+ for (int w=0; w<10; w++)
+ {
+ uint32_t prev=0;
+ if (w)
+ prev = words[w-1];
+ uint32_t par = EngNav::computeParity(words[w], prev, false);
+ if (par == (words[w] & 0x3f))
+ good.append("1");
+ else
+ good.append("0");
+ }
+ return good.c_str();
+}
+
+
+NavFramer::NavFramer()
+ : prevNavCount(0), navIndex(0), howCurrent(false),inSync(false),
+ codeIndex(5*300), eightBaker(0x8b), bitLength(20e-3)
+{}
+
+
+bool NavFramer::process(const EMLTracker& tr)
+{
+ // number of code chips that go into each bit
+ const unsigned long chipsPerBit =
+ static_cast<unsigned long>(bitLength / tr.localReplica.codeChipLen);
+ const CodeIndex now = tr.localReplica.codeGenPtr->getChipCount();
+ const unsigned navCount = now/chipsPerBit;
+
+ if (navCount == prevNavCount)
+ return howCurrent;
+
+ prevNavCount = navCount;
+ navBuffer[navIndex] = tr.getNav();
+ codeIndex[navIndex] = now;
+ navIndex++;
+ navIndex %= navBuffer.size();
+ lastEight <<= 1;
+ lastEight[0] = tr.getNav();
+
+ if (debugLevel>2)
+ cout << "# t:" << fixed << setprecision(2)
+ << tr.localReplica.localTime *1e3
+ << " ms, n:" << tr.getNav() << endl;
+
+ if (lastEight == eightBaker || ~lastEight == eightBaker)
+ {
+ Subframe sf;
+ sf.ni = (navIndex-8) % 1500;
+ sf.ci = codeIndex[sf.ni];
+ sf.prevD30 = navBuffer[(navIndex-9)%1500];
+ sf.t = tr.localReplica.localTime;
+ sf.inverted = lastEight != eightBaker;
+ if (debugLevel>1)
+ cout << "# " << sf << endl;
+ candidates.push_back(sf);
+ }
+
+ list<Subframe>::iterator sf;
+ for (sf = candidates.begin(); sf != candidates.end(); )
+ {
+ if (navIndex - sf->ni >= 300)
+ {
+ sf->load(navBuffer);
+ if (sf->checkParity())
+ {
+ subframes.push_back(*sf);
+ howCurrent = true;
+ how = sf->words[1];
+ if (debugLevel)
+ cout << "# " << *sf << endl;
+ if (debugLevel>1)
+ sf->dump(cout,1);
+ }
+ else
+ {
+ howCurrent = false;
+ if (debugLevel>1)
+ {
+ cout << "# " << *sf << endl;
+ sf->dump(cout, 1);
+ }
+ }
+ candidates.erase(sf++);
+ }
+ else
+ sf++;
+ }
+ return howCurrent;
+}
+
+
+void NavFramer::dump(std::ostream& s, int detail) const
+{
+ if (detail>1)
+ s << "# NavDump lastEight:" << lastEight << endl;
+};
diff --git a/dev/apps/swrx/NavFramer.hpp b/dev/apps/swrx/NavFramer.hpp
new file mode 100644
index 0000000..209a874
--- /dev/null
+++ b/dev/apps/swrx/NavFramer.hpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef NAVFRAMER_HPP
+#define NAVFRAMER_HPP
+
+#include <iostream>
+#include <bitset>
+
+#include "EMLTracker.hpp"
+
+//-----------------------------------------------------------------------------
+// This is intended to use a generic tracker and frame up the nav data.
+//-----------------------------------------------------------------------------
+class NavFramer
+{
+
+public:
+ NavFramer();
+
+ // This takes a tracker, just after it has been dumped and
+ // accumulates the nav bit from it. It returns true when there is a
+ // current HOW
+ virtual bool process(const EMLTracker& tr);
+
+ void dump(std::ostream& s, int detail=0) const;
+
+ int debugLevel;
+
+ // A subclass to help keep track of the subframes found
+ struct Subframe
+ {
+ Subframe() : words(10), complete(false) {}
+ double t;
+ size_t ni;
+ gpstk::CodeIndex ci;
+ bool inverted;
+ bool prevD30;
+ bool complete;
+ std::vector<uint32_t> words;
+ void dump(std::ostream& s, int detail=0) const;
+ bool checkParity(bool knownUpright=false) const;
+ void load(const std::bitset<5 * 300> bs);
+ const char* checkWords() const;
+ };
+
+private:
+ // This buffer holds 5 300 bit subframes of nav data
+ std::bitset<5 * 300> navBuffer;
+ std::vector<gpstk::CodeIndex> codeIndex;
+ std::bitset<8> eightBaker, lastEight;
+ size_t navIndex;
+ gpstk::CodeIndex prevNavCount;
+
+ // length of each bit
+ double bitLength;
+
+ std::list<Subframe> candidates;
+ std::list<Subframe> subframes;
+
+ // This is used to indicate that we have found a TLM and HOW
+ // that have passed parity
+ bool inSync;
+
+ // Most recent how
+ bool howCurrent;
+ gpstk::CodeIndex tlmIndex;
+ uint32_t how;
+};
+
+std::ostream& operator<<(std::ostream& s, const NavFramer::Subframe& sf);
+
+#endif
diff --git a/dev/apps/swrx/P0CodeGenerator.hpp b/dev/apps/swrx/P0CodeGenerator.hpp
new file mode 100644
index 0000000..daabc28
--- /dev/null
+++ b/dev/apps/swrx/P0CodeGenerator.hpp
@@ -0,0 +1,70 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef P0CODEGENERATOR_H
+#define P0CODEGENERATOR_H
+
+#include "SVPCodeGen.hpp"
+#include "CodeBuffer.hpp"
+#include "DayTime.hpp"
+
+#include "CodeGenerator.hpp"
+
+namespace gpstk
+{
+ class P0CodeGenerator : public CodeGenerator
+ {
+ public:
+ P0CodeGenerator(const int prn)
+ : CodeGenerator(ObsID::tcP, SatID(prn, SatID::systemGPS))
+ {setIndex(0);}
+
+ bool operator*() const { return false; }
+
+ CodeIndex operator++() { return getIndex(); }
+
+ CodeIndex setIndex(CodeIndex new_index)
+ {
+ return getIndex();
+ }
+
+ CodeIndex getIndex() const
+ {
+ return 0;
+ }
+
+ CodeIndex getSyncIndex() const
+ {
+ return 0;
+ }
+
+ CodeIndex getChipCount() const {return getIndex();}
+
+ void reset() { setIndex(0);}
+
+ private:
+
+ };
+}
+#endif
diff --git a/dev/apps/swrx/PCodeGenerator.hpp b/dev/apps/swrx/PCodeGenerator.hpp
new file mode 100644
index 0000000..a50bb60
--- /dev/null
+++ b/dev/apps/swrx/PCodeGenerator.hpp
@@ -0,0 +1,108 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef PCODEGENERATOR_HPP
+#define PCODEGENERATOR_HPP
+
+#include "SVPCodeGen.hpp"
+#include "CodeBuffer.hpp"
+#include "DayTime.hpp"
+
+#include "CodeGenerator.hpp"
+
+namespace gpstk
+{
+ class PCodeGenerator : public CodeGenerator
+ {
+ public:
+ PCodeGenerator(const int prn)
+ : CodeGenerator(ObsID::tcP, SatID(prn, SatID::systemGPS)),
+ cb(prn), svp(prn, gpstk::GPSZcount(0)), index(0)
+ {
+ svp.getCurrentSixSeconds(cb);
+ }
+
+ bool operator*() const { return cb.getBit(index) & 0x1; }
+
+ CodeIndex operator++() { index++; handleWrap(); return getIndex(); }
+
+ CodeIndex setIndex(CodeIndex new_index)
+ {
+ unsigned long z = new_index / (15345000*4);
+ z *= 4;
+ if (svp.getCurrentZCount().fullZcountFloor() != z)
+ {
+ std::cerr << "Regen cb" << std::endl;
+ svp.setCurrentZCount(z);
+ svp.getCurrentSixSeconds(cb);
+ }
+ index = new_index % (15345000*4);
+ return getIndex();
+ }
+
+ CodeIndex getIndex() const
+ {
+ unsigned long z = svp.getCurrentZCount().fullZcountFloor();
+ return index + z * 15345000;
+ }
+
+ bool isLastChipofX1Sequence() const
+ { return (index%15345000)==15344999; }
+
+
+ CodeIndex getSyncIndex() const {return 10230;}
+
+ CodeIndex getChipCount() const {return getIndex();}
+
+ void reset() { setIndex(0);}
+
+ private:
+
+ inline int handleWrap()
+ {
+ while(index>=15345000*4)
+ {
+ index-=15345000*4;
+ svp.increment4ZCounts();
+ svp.getCurrentSixSeconds(cb);
+ }
+ }
+
+ inline static void initXSeq() __attribute__ ((constructor))
+ {
+ try
+ {
+ gpstk::X1Sequence::allocateMemory();
+ gpstk::X2Sequence::allocateMemory();
+ }
+ catch (...)
+ {}
+ }
+
+ CodeBuffer cb;
+ SVPCodeGen svp;
+ CodeIndex index;
+ };
+}
+#endif
diff --git a/dev/apps/swrx/SVSource.hpp b/dev/apps/swrx/SVSource.hpp
new file mode 100644
index 0000000..43b6b78
--- /dev/null
+++ b/dev/apps/swrx/SVSource.hpp
@@ -0,0 +1,183 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef SVSOURCE_HPP
+#define SVSOURCE_HPP
+
+#include "PCodeGenerator.hpp"
+#include "CACodeGenerator.hpp"
+#include "NAVCodeGenerator.hpp"
+
+#include <math.h>
+#include <complex>
+#include <iostream>
+
+#include "complex_math.h"
+
+/*
+ * I normally don't like to put all these meaty functions in an include file,
+ * but I really want the compiler to be able to inline getSample(), handleWrap(), and incrementState()
+ * since they all fall in our inner-most loop.
+ * How long will it take until compilers can do cross-module optimization?
+ */
+
+// A class to generate samples from a single SV
+class SVSource
+{
+public:
+
+ SVSource (int SVPRNID, int band) :
+ zchips_per_sample(1),
+ doppler(0),
+ zchip_fraction_accum(0),
+ p_codegen(SVPRNID),
+ ca_codegen(SVPRNID),
+ ca_amplitude(1),
+ p_amplitude(1),
+ carrier_amplitude(1),
+ code_only(false),
+ zchip_counter(0),
+ prn(SVPRNID),
+ band(band),
+ p_modulation(true),
+ ca_modulation(true),
+ p_nav(true),
+ ca_nav(true),
+ carrier_multiplier(0)
+ {
+ switch(band)
+ {
+ case 1: carrier_multiplier = gpstk::L1_MULT; break;
+ case 2: carrier_multiplier = gpstk::L2_MULT; break;
+ }
+ }
+
+
+ std::complex<double> getSample() const
+ {
+ double phase = zchip_fraction_accum*carrier_multiplier*2*gpstk::PI;
+ std::complex<double> carrier = sincos(phase);
+
+ int nav_bit=(*nav_codegen);
+ int p_bit=p_modulation?((*p_codegen)^(p_nav?nav_bit:0)):0;
+ int ca_bit=ca_modulation?((*ca_codegen)^(ca_nav?nav_bit:0)):0;
+
+ // Must follow guidelines in Table 3-IV of IS-GPS-200D
+ std::complex<double> sample(
+ ca_bit?(ca_amplitude):(-ca_amplitude),
+ p_bit ?(p_amplitude):(-p_amplitude));
+
+ if (!code_only)
+ sample *= carrier_amplitude * carrier;
+
+ return sample;
+ }
+
+ void incrementState()
+ {
+ /* Increment internal state to prepare for the next call */
+ zchip_fraction_accum += zchips_per_sample + doppler;
+ handleWrap();
+ }
+
+ void setZChipsPerSample(double val)
+ { zchips_per_sample=val; }
+
+ void slewZChipFraction(double val)
+ {
+ zchip_fraction_accum+=val;
+ handleWrap();
+ }
+
+ void dump(std::ostream& s) const
+ {
+ s << "# " << std::setprecision(3)
+ << "prn:" << prn << " L" << band
+ << " Z:" << zchip_fraction_accum+p_codegen.getIndex() << " chips";
+ if (ca_modulation)
+ s << " (C/A nav:" << ca_nav << " amp:" << ca_amplitude << ")";
+ if (p_modulation)
+ s << " (P nav:" << p_nav << " amp:" << p_amplitude << ")";
+ s << std::endl;
+ s << "# doppler = " << doppler << " chips/sample" << std::endl
+ << "# zchips_per_sample: " << zchips_per_sample << " chips/sample" << std::endl;
+ }
+
+private:
+
+ void handleWrap()
+ {
+ while (zchip_fraction_accum>1.0)
+ {
+ if(zchip_counter==9)
+ {
+ if(ca_codegen.isLastInSequence())
+ {
+ if(ca_epoch_counter==19)
+ {
+ ++nav_codegen;
+ ca_epoch_counter=0;
+ } else ++ca_epoch_counter;
+ }
+ ++ca_codegen;
+ zchip_counter=0;
+ }
+ else
+ ++zchip_counter;
+
+ ++p_codegen;
+ zchip_fraction_accum-=1.0;
+ }
+ }
+
+public:
+ // yea, this is klunky to expose all these but we aren't checking
+ // for an invariants so...
+ bool p_modulation;
+ bool ca_modulation;
+ bool p_nav;
+ bool ca_nav;
+
+ double ca_amplitude;
+ double p_amplitude;
+ double carrier_amplitude;
+
+ double doppler;
+ double zchips_per_sample;
+ double zchip_fraction_accum;
+
+ double carrier_multiplier;
+ bool code_only;
+
+ gpstk::PCodeGenerator p_codegen;
+ gpstk::CACodeGenerator ca_codegen;
+ NAVCodeGenerator nav_codegen;
+
+ int band;
+ int prn;
+ int zchip_counter; // Counts 0-9 to tell us when to move to the next C/A chip
+ int ca_epoch_counter; // Counts 0-19 to tell us when to move to the next NAV data bit
+};
+
+#endif
diff --git a/dev/apps/swrx/SimpleCorrelator.hpp b/dev/apps/swrx/SimpleCorrelator.hpp
new file mode 100644
index 0000000..5ae87f6
--- /dev/null
+++ b/dev/apps/swrx/SimpleCorrelator.hpp
@@ -0,0 +1,67 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef SIMPLECORRELATOR_HPP
+#define SIMPLECORRELATOR_HPP
+
+#include <complex>
+#include <queue>
+#include <iostream>
+
+//-----------------------------------------------------------------------------
+// A correlator with a built in delay line to offset the incomming code.
+//-----------------------------------------------------------------------------
+template <class C>
+class SimpleCorrelator
+{
+public:
+
+ typedef std::complex<C> Ctype;
+
+ /// param d this is the number of samples to delay the code by
+ SimpleCorrelator(unsigned d=0) : delay(d+1), sum(0)
+ {}
+
+ inline void process(std::complex<C> in, Ctype code) throw()
+ {
+ shiftReg.push(code);
+ sum += in * shiftReg.front();
+ while (shiftReg.size() > delay)
+ shiftReg.pop();
+ }
+
+ inline void dump() throw() {sum=Ctype(0,0);}
+
+ inline Ctype operator()() const throw() {return sum;}
+
+ void setDelay(unsigned d) throw() {delay=d+1;}
+ unsigned getDelay() const throw() {return delay-1;}
+
+private:
+ unsigned delay;
+ std::queue< Ctype > shiftReg;
+ Ctype sum;
+};
+
+#endif
diff --git a/dev/apps/swrx/codeDump.cpp b/dev/apps/swrx/codeDump.cpp
new file mode 100644
index 0000000..ff520dc
--- /dev/null
+++ b/dev/apps/swrx/codeDump.cpp
@@ -0,0 +1,163 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <iostream>
+#include <list>
+
+#include "BasicFramework.hpp"
+#include "CommandOption.hpp"
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "CACodeGenerator.hpp"
+#include "PCodeGenerator.hpp"
+#include "P0CodeGenerator.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+class CodeDump : public BasicFramework
+{
+public:
+ CodeDump() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+private:
+ virtual void process();
+
+ long long chips;
+ int truncate;
+
+ CodeGenerator *codeGen;
+};
+
+
+//-----------------------------------------------------------------------------
+CodeDump::CodeDump() throw() :
+ BasicFramework("codeDump", "A program to output the chips from a the code generators."),
+ chips(1023), truncate(0)
+{}
+
+
+bool CodeDump::initialize(int argc, char *argv[]) throw()
+{
+ using namespace gpstk::StringUtils;
+
+ CommandOptionWithAnyArg
+ lengthOpt('l', "length",
+ "Specifies how many chips to output. The default "
+ "is 1023 chips."),
+
+ truncateOpt('t', "truncate",
+ "Just output this many chips from the beginning and the end of the sequence. The default is to output all chips."),
+
+ codeOpt('c', "code",
+ "The code to generate. ARG takes the form of "
+ "code:prn:offset. Code is either c or p. "
+ "Prn is an integer between 1 and 32. "
+ "Offset is a number in chips. For example, to generate P code "
+ "for PRN 3, with no initial time offset, "
+ "specify -c p:3:0");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ if (!codeOpt.getCount())
+ {
+ cout << "Must specify a code to generate. Bye." << endl;
+ return false;
+ }
+
+ string val=codeOpt.getValue()[0];
+ const char delim(':');
+ if (numWords(val, delim) != 3)
+ {
+ cout << "Error in code parameter:" << val << endl;
+ return false;
+ }
+
+ string code = lowerCase(word(val, 0, delim));
+ int prn = asInt(word(val, 1, delim));
+ long offset = asInt(word(val, 2, delim));
+
+ switch (code[0])
+ {
+ case 'c': codeGen = new CACodeGenerator(prn); break;
+ case 'p': codeGen = new PCodeGenerator(prn); break;
+ case 'q': codeGen = new P0CodeGenerator(prn); break;
+ default:
+ cout << "Unsupported code: " << code << endl;
+ return false;
+ }
+
+ if (offset != 0)
+ codeGen->setIndex(offset);
+
+ if (lengthOpt.getCount())
+ chips = asInt(lengthOpt.getValue()[0]);
+
+ if (truncateOpt.getCount())
+ truncate = asInt(truncateOpt.getValue()[0]);
+
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+void CodeDump::process()
+{
+ for (long long i = 0; i<chips; i++)
+ {
+ bool bit = **codeGen;
+ ++(*codeGen);
+ if (!truncate || i<truncate || i>chips-1-truncate)
+ cout << bit << flush;
+ if (truncate>0 && i==truncate)
+ cout << " ... ";
+ }
+ cout << endl;
+}
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ CodeDump crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/swrx/complex_math.h b/dev/apps/swrx/complex_math.h
new file mode 100644
index 0000000..4a884da
--- /dev/null
+++ b/dev/apps/swrx/complex_math.h
@@ -0,0 +1,73 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef COMPLEXMATH_H
+#define COMPLEXMATH_H
+
+#include <complex>
+
+static inline std::complex<double> sincos(double radians)
+{
+ std::complex<double> ret;
+ sincos(radians,&(ret.imag()),&(ret.real()));
+ return ret;
+}
+
+static inline std::complex<int> quantize(const std::complex<double> x)
+{
+ return std::complex<int>(
+ static_cast<int>(::round(x.real())),
+ static_cast<int>(::round(x.imag()))
+ );
+}
+
+const std::complex<double> zero(0,0);
+const std::complex<double> plusOne(1,0);
+const std::complex<double> minusOne(-1,0);
+
+
+//-----------------------------------------------------------------------------
+// An function object that implements a second order filter for the PLL
+// Specifically the filter in figure 8.2 of Tsui's book
+//-----------------------------------------------------------------------------
+template <class C>
+class LoopFilter
+{
+public:
+ LoopFilter() : c1(1), c2(1), z1(0) {};
+
+ std::complex<C> operator()(std::complex<C> in) throw()
+ {
+ std::complex <C> out,z;
+ z = in*c2+z1;
+ out = in * c1 + z;
+ z1 = z;
+ return out;
+ };
+
+ C c1, c2;
+ std::complex<C> z1;
+};
+
+#endif
diff --git a/dev/apps/swrx/corltr.cpp b/dev/apps/swrx/corltr.cpp
new file mode 100644
index 0000000..698977b
--- /dev/null
+++ b/dev/apps/swrx/corltr.cpp
@@ -0,0 +1,338 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <math.h>
+#include <complex>
+#include <iostream>
+#include <list>
+
+#include "BasicFramework.hpp"
+#include "CommandOption.hpp"
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "complex_math.h"
+#include "SimpleCorrelator.hpp"
+#include "CCReplica.hpp"
+#include "CACodeGenerator.hpp"
+#include "PCodeGenerator.hpp"
+
+#include "IQStream.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+class Corltr : public BasicFramework
+{
+public:
+ Corltr() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+private:
+ virtual void process();
+
+ double window; // data window length, in ms
+
+ // number of seconds between samples
+ double timeStep;
+
+ CCReplica* cc;
+
+ IQStream *input;
+
+ unsigned steps;
+
+ double offset; // Time to offset the local code by
+ double doppler;
+
+ double freqErr; // A receiver frequency error
+
+ int bands;
+
+ bool peakOnly;
+};
+
+
+//-----------------------------------------------------------------------------
+Corltr::Corltr() throw() :
+ BasicFramework("corltr", "A program to test out local replica generation and correlation."),
+ timeStep(50e-9), bands(2), steps(4092), peakOnly(false)
+{}
+
+
+bool Corltr::initialize(int argc, char *argv[]) throw()
+{
+ using namespace gpstk::StringUtils;
+
+ CommandOptionWithAnyArg
+ windowOpt('w', "window",
+ "Specifies how wide a window to use, in us. The default "
+ "is 1023 us."),
+
+ timeStepOpt('t', "time-step",
+ "Specifies the nominal interval between samples, in us. "
+ "The default is 0.05 us."),
+
+ quantizationOpt('q', "quantization",
+ "They quantization applied to the data. 1, 2 or f. "
+ "The default is f."),
+
+ codeOpt('c', "code",
+ "The code/carrier to track. ARG takes the form of "
+ "code:carrier:prn:offset:doppler. Code is either c or p. "
+ "Carrier is either 1 or 2. Prn is an integer between 1 and 32. "
+ "Offset is a number in us, Doppler is a number in Hz. Currently, "
+ "only one signal can be specified. For example, to track P code "
+ "on L2 for PRN 3, with no initial time or doppler offset, "
+ "specify -c p:2:3:0:0"),
+
+ freqErrOpt('f', "freq-err",
+ "Specify the frequency error on the local receiver's "
+ "oscilator, in ppm. The default is 0 ppm"),
+
+ inputOpt('i', "input",
+ "Where to get the IQ samples from. The default is to use "
+ "standard input.");
+
+ CommandOptionWithNumberArg
+ stepsOpt('s', "steps",
+ "The number of 1/4 chip steps to take. Defaults to 4092."),
+
+ bandsOpt('b', "bands",
+ "The number of complex samples per epoch. The default is 2.");
+
+ CommandOptionNoArg
+ peakOnlyOpt('p', "peak",
+ "Only output the peak correlation/snr values.");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ peakOnly = peakOnlyOpt.getCount()>0;
+
+ if (timeStepOpt.getCount())
+ timeStep = asDouble(timeStepOpt.getValue().front()) * 1e-6;
+ else
+
+ if (windowOpt.getCount())
+ window = asDouble(windowOpt.getValue().front()) * 1e-6;
+ else
+ window = 1.023e-3;
+
+ if (freqErrOpt.getCount())
+ freqErr = StringUtils::asDouble(freqErrOpt.getValue()[0]) * 1e-6;
+ else
+ freqErr = 0;
+
+ char quantization='f';
+ if (quantizationOpt.getCount())
+ quantization = quantizationOpt.getValue()[0][0];
+
+ switch (quantization)
+ {
+ case '1': input = new IQ1Stream(); break;
+ case '2': input = new IQ2Stream(); break;
+ case 'f':
+ default: input = new IQFloatStream(); break;
+ }
+
+ if (inputOpt.getCount())
+ {
+ input->open(inputOpt.getValue()[0].c_str());
+ }
+ else
+ {
+ input->copyfmt(std::cin);
+ input->clear(std::cin.rdstate());
+ input->std::basic_ios<char>::rdbuf(std::cin.rdbuf());
+ input->filename = "<stdin>";
+ }
+ if (verboseLevel)
+ cout << "# IQStream type: " << input->desc << endl;
+
+ if (bandsOpt.getCount())
+ bands = asInt(bandsOpt.getValue()[0]);
+
+ if (stepsOpt.getCount())
+ steps = asInt(stepsOpt.getValue()[0]);
+
+ if (!codeOpt.getCount())
+ {
+ cout << "Must specify a code/carrier to track. Bye." << endl;
+ return false;
+ }
+
+ string val=codeOpt.getValue()[0];
+ const char delim(':');
+ if (numWords(val, delim) != 5)
+ {
+ cout << "Error in code parameter:" << val << endl;
+ return false;
+ }
+
+ string code = lowerCase(word(val, 0, delim));
+ int band = asInt(word(val, 1, delim));
+ int prn = asInt(word(val, 2, delim));
+ offset = asDouble(word(val, 3, delim)) * 1e-6;
+ doppler = asDouble(word(val, 4, delim));
+
+ double interFreq;
+ switch (band)
+ {
+ case 1: interFreq = gpstk::L1_FREQ - 1575e6; break;
+ case 2: interFreq = gpstk::L2_FREQ - 1228e6; break;
+ default:
+ cout << "Unsupported band: " << band << endl;
+ return false;
+ }
+
+ CodeGenerator* codeGenPtr;
+ double chipFreq;
+ switch (code[0])
+ {
+ case 'c':
+ codeGenPtr = new CACodeGenerator(prn);
+ chipFreq = CA_CHIP_FREQ;
+ break;
+ case 'p':
+ codeGenPtr = new PCodeGenerator(prn);
+ chipFreq = PY_CHIP_FREQ;
+ break;
+ default:
+ cout << "Unsupported code: " << code << endl;
+ return false;
+ }
+ cc = new CCReplica(timeStep, chipFreq, interFreq, codeGenPtr);
+
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+void Corltr::process()
+{
+ const unsigned windowTicks = static_cast<unsigned>(window / timeStep);
+ const unsigned maxSamp=windowTicks+1;
+ const double stepSize = cc->codeChipLen/4;
+ vector< complex<double> > in(maxSamp);
+ unsigned numSamp = 0;
+ complex<float> s;
+ double sumSq;
+ while (*input >> s && numSamp < maxSamp)
+ {
+ in[numSamp] = s;
+ sumSq += s.real()*s.real() + s.imag()*s.imag();
+ for (int i=1; i<bands; i++)
+ *input >> s;
+ numSamp++;
+ }
+
+ if (numSamp != maxSamp)
+ {
+ cout << "Insufficient samples for specified window size. Exiting." << endl;
+ exit(-1);
+ }
+
+ if (verboseLevel)
+ cout << "# numSamp:" << numSamp << endl
+ << "# timeStep:" << timeStep * 1e9 << " nsec" << endl
+ << "# window:" << windowTicks << " samples" << endl
+ << "# doppler:" << doppler << " Hz" << endl
+ << "# freqErr:" << freqErr * 1e6 << " ppm" << endl
+ << "# offset:" << offset*1e6 << " usec" << endl
+ << "# Input sumSq: " << sumSq << endl;
+
+ cc->setCodeFreqOffsetHz(doppler);
+ cc->setCarrierFreqOffsetHz(doppler);
+
+ if (verboseLevel)
+ cc->dump(cout);
+
+ if (verboseLevel)
+ cout << "#h delay sum r snr " << endl
+ << "#u us cnt cnt dBc-Hz" << endl;
+
+ double maxSnr=0, maxR=0, maxDelay=0;
+
+ for (int i=0; i<steps; i++)
+ {
+ double delay = i * stepSize + offset;
+ cc->reset();
+ cc->moveCodePhase(delay / cc->codeChipLen);
+ cc->setCodeFreqOffsetHz(doppler);
+ cc->setCarrierFreqOffsetHz(doppler);
+
+ SimpleCorrelator<double> sum;
+ double mySumSq=0;
+ for (int j=0; j<windowTicks; j++)
+ {
+ cc->tick();
+ complex<double> carrier = cc->getCarrier();
+ complex<double> m0 = in[j] * conj(carrier);
+ complex<double> code = cc->getCode() ? plusOne : minusOne;
+ complex<double> cc = conj(carrier) * conj(code);
+ mySumSq += cc.real()*cc.real() + cc.imag()*cc.imag();
+ sum.process(m0, conj(code));
+ }
+ double r = abs(sum()) / sqrt(sumSq)/sqrt(mySumSq);
+ double snr= 10*log10(r*r/timeStep);
+ if (snr>maxSnr)
+ {
+ maxSnr = snr;
+ maxR=r;
+ maxDelay=delay;
+ }
+ if (!peakOnly)
+ cout << setprecision(9) << delay*1e6
+ << " " << setprecision(4) << abs(sum())
+ << " " << r << " " << snr << endl;
+ }
+ if (peakOnly)
+ cout << setprecision(9) << maxDelay*1e6
+ << setprecision(4) << " " << maxR << " " << maxSnr << endl;
+}
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ Corltr crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/swrx/gpsSim.cpp b/dev/apps/swrx/gpsSim.cpp
new file mode 100644
index 0000000..14d1313
--- /dev/null
+++ b/dev/apps/swrx/gpsSim.cpp
@@ -0,0 +1,387 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ A simple GPS signal simulator. Based upon code from Johnathan York.
+
+ See http://sglwiki/cgi-bin/twiki/view/SGL/SwRxSignalPathDesign for the
+ derivation of the several of the values below.
+
+ Needs to support the following modes to support receiver development:
+ carrier w/o noise
+ carrier w noise
+ C/A w/o noise
+ C/A w noise
+ C/A + nav + noise
+ P + nav + noise
+ P + C/A + nav + noise
+ L1 + L2 P, C/A + nav + noise
+*/
+
+#include <math.h>
+#include <complex>
+#include <iostream>
+#include <list>
+
+#include "BasicFramework.hpp"
+#include "CommandOption.hpp"
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "SVSource.hpp"
+#include "normal.hpp"
+#include "IQStream.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+class GpsSim : public BasicFramework
+{
+public:
+ GpsSim() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+ // Base frequency of receiver (in Hz)
+ const double RX_BASE_FREQ;
+
+ // How many samples are taken in one base period
+ const int RX_SAMPLE_RATE_MULTIPLIER;
+
+ // The multipliers applied to the base frequency to get the local
+ // oscilator for the mixers.
+ const int RX_L1_LO_MULTIPLIER;
+ const int RX_L2_LO_MULTIPLIER;
+
+ // Number of local oscilators
+ const int LO_COUNT;
+
+ // The units of these are counts of the ADC
+ double noise_amplitude, p_amplitude, ca_amplitude;
+
+ // A gain to apply to the 'final' signal
+ double gain;
+
+ // number of seconds between samples
+ double time_step;
+
+ // One period is a tick of the RX_BASE_FREQ clock
+ unsigned long periods_to_generate;
+
+ bool codeOnly;
+
+ list<SVSource*> sv_sources;
+
+ vector<double> omega_lo;
+
+ double freqErr;
+
+ IQStream *output;
+
+protected:
+ virtual void process();
+};
+
+
+GpsSim::GpsSim() throw() :
+ BasicFramework("gpsSim", "A simple simulation of a the GPS signal."),
+ periods_to_generate(4096),
+ LO_COUNT(2),
+ RX_BASE_FREQ(1.0e6),
+ RX_SAMPLE_RATE_MULTIPLIER(20),
+ RX_L1_LO_MULTIPLIER(1575),
+ RX_L2_LO_MULTIPLIER(1228),
+ time_step(1.0/(RX_BASE_FREQ*RX_SAMPLE_RATE_MULTIPLIER)),
+ p_amplitude(0.1250*M_SQRT2),
+ ca_amplitude(0.1767*M_SQRT2),
+ noise_amplitude(2.805),
+ codeOnly(false),
+ gain(1)
+{}
+
+
+bool GpsSim::initialize(int argc, char *argv[]) throw()
+{
+ CommandOptionWithAnyArg
+ codeOpt('c', "code",
+ "Generate the signal defined by the argument. ARG takes "
+ "the form of code:carrier:prn:offset:doppler:nav. Code is either "
+ "c, p, or cp. Carrier is either 1 or 2. Prn is an integer between 1 "
+ "and 32. Offset is a number in microseconds. Doppler is a number "
+ "in Hz. Nav is 0, c, p, or cp. For example, to generate C/A on L1 for "
+ "PRN 15 with zero time-offset, zero doppler, a dummy nav signal "
+ "on both C/A and P, then specify -c c:1:15:0:p. This option "
+ "may be repeated to simulate multiple signals.");
+
+ CommandOptionNoArg
+ codeOnlyOpt('\0', "code-only",
+ "Only generate the codes. No carrier, no hetrodyning.");
+
+ CommandOptionWithAnyArg
+ quantizationOpt('q', "quantization",
+ "What type of IQ stream; 1, 2 or f. The default is f.");
+
+ CommandOptionWithAnyArg
+ gainOpt('g', "gain",
+ "Gain to apply to the if prior to digitization, in dB. Default is 0.");
+
+ CommandOptionWithAnyArg
+ noiseGainOpt('n', "noise",
+ "Specify the gain (in dB) for the receiver's noise. The "
+ "default is 0 dB");
+
+ CommandOptionWithAnyArg
+ freqErrOpt('f', "freq-err",
+ "Specify the frequency error on the local receiver's "
+ "oscilator, in ppm. The default is 0 ppm");
+
+ CommandOptionWithAnyArg
+ runTimeOpt('t', "run-time",
+ "How long (in ms) to run the simulation for. The default is 20 ms");
+
+ CommandOptionWithAnyArg
+ outputOpt('o', "output",
+ "Where to write the output. The default is stdout");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ using namespace gpstk::StringUtils;
+
+ char quantization='f';
+ if (quantizationOpt.getCount())
+ quantization = quantizationOpt.getValue()[0][0];
+
+ switch (quantization)
+ {
+ case '1': output = new IQ1Stream(); break;
+ case '2': output = new IQ2Stream(); break;
+ case 'f':
+ default: output = new IQFloatStream(); break;
+ }
+
+ if (outputOpt.getCount())
+ {
+ output->open(outputOpt.getValue()[0].c_str(), ios::out);
+ }
+ else
+ {
+ output->copyfmt(std::cout);
+ output->clear(std::cout.rdstate());
+ output->std::basic_ios<char>::rdbuf(std::cout.rdbuf());
+ output->filename = "<stdout>";
+ }
+ if (debugLevel)
+ cout << "Writing data to " << output->filename << endl;
+
+ if (gainOpt.getCount())
+ {
+ double gainDb = StringUtils::asDouble(gainOpt.getValue()[0]);
+ gain = exp10(gainDb/10);
+ if (debugLevel)
+ cout << "# Rx gain level: " << gainDb << " db ("
+ << gain << ")" << endl;
+ }
+
+ if (noiseGainOpt.getCount())
+ {
+ double gain = StringUtils::asDouble(noiseGainOpt.getValue()[0]);
+ noise_amplitude *= exp10(gain/10);
+ if (debugLevel)
+ cout << "# Noise level: " << gain << " db" << endl;
+ }
+
+ if (codeOnlyOpt.getCount())
+ codeOnly = true;
+
+ if (freqErrOpt.getCount())
+ freqErr = StringUtils::asDouble(freqErrOpt.getValue()[0]) * 1e-6;
+ else
+ freqErr = 0;
+
+ if (debugLevel)
+ cout << "# Receiver frequency error: " << freqErr * 1e6 << " ppm" << endl;
+
+ if (runTimeOpt.getCount())
+ {
+ double rt = asDouble(runTimeOpt.getValue()[0]);
+ periods_to_generate = static_cast<long unsigned>(rt*RX_BASE_FREQ);
+ }
+
+ if (debugLevel)
+ cout << "# Running for : " << periods_to_generate
+ << " periods (" << 1e3 * periods_to_generate/RX_BASE_FREQ
+ << " msec)" << endl;
+
+ // Compute the local oscilator frequencies, units seem to be radians/sample
+ omega_lo.resize(LO_COUNT);
+ omega_lo[0] = 2.0*PI*RX_L1_LO_MULTIPLIER/RX_SAMPLE_RATE_MULTIPLIER;
+ omega_lo[1] = 2.0*PI*RX_L2_LO_MULTIPLIER/RX_SAMPLE_RATE_MULTIPLIER;
+
+ vector<double> lo(LO_COUNT);
+ lo[0] = omega_lo[0]/time_step / 2 /PI;
+ lo[1] = omega_lo[1]/time_step / 2 /PI;
+
+ if (debugLevel)
+ cout << "# LO 1: " << setw(7) << lo[0] * 1e-6<< " MHz"
+ << " 2: " << setw(7) << lo[1] * 1e-6<< " MHz"
+ << endl
+ << "# IF 1: " << setw(7) << (L1_FREQ - lo[0]) * 1e-3<< " kHz"
+ << " 2: " << setw(7) << (L2_FREQ - lo[1]) * 1e-3<< " kHz"
+ << endl;
+
+ for (int i=0; i < codeOpt.getCount(); i++)
+ {
+ string val=codeOpt.getValue()[i];
+ const char delim(':');
+ if (numWords(val, delim) != 6)
+ {
+ cout << "Error in code parameter:" << val << endl;
+ exit(-1);
+ }
+
+ string code = lowerCase(word(val, 0, delim));
+ int band = asInt(word(val, 1, delim));
+ int prn = asInt(word(val, 2, delim));
+ double offset = asDouble(word(val, 3, delim));
+ double doppler = asDouble(word(val, 4, delim));
+ string nav = lowerCase(word(val, 5, delim));
+
+ if (code.size() > 2 || nav.size() > 2 || band <1 || band > LO_COUNT ||
+ prn < 1 || prn >32)
+ {
+ cout << "code:" << code << " band:" << band << " prn:" << prn
+ << " offset:" << offset << " nav:" << nav << endl
+ << "Error in specifying code. Ignoring this code." << endl;
+ exit(-1);
+ }
+
+ // This is the number of P code chips in one sample. If this
+ // is not around or less than 1/2, we have a problem
+ double sampleRate = 1/(RX_SAMPLE_RATE_MULTIPLIER*RX_BASE_FREQ); //sec
+ double chips_per_sample_base = gpstk::PY_CHIP_FREQ * sampleRate;
+
+ switch(band)
+ {
+ case 1: doppler *= sampleRate / L1_MULT; break;
+ case 2: doppler *= sampleRate / L2_MULT; break;
+ }
+
+ doppler *= 1-freqErr;
+ chips_per_sample_base *= 1-freqErr;
+
+ // Create and configure the SV source
+ SVSource* src = new SVSource(prn, band);
+ src->zchips_per_sample = chips_per_sample_base;
+ src->doppler = doppler;
+ src->ca_modulation = isLike(code, "c");
+ src->p_modulation = isLike(code, "p");
+ src->ca_nav = isLike(nav, "c") && src->ca_modulation;
+ src->p_nav = isLike(nav, "p") && src->p_modulation;
+ src->p_amplitude = p_amplitude;
+ src->ca_amplitude = ca_amplitude;
+ // offset needs to be provided to the SVSource in units of P chips
+ src->slewZChipFraction(offset * gpstk::PY_CHIP_FREQ * 1e-6);
+
+ if (codeOnlyOpt.getCount())
+ src->code_only = true;
+
+ if (debugLevel)
+ src->dump(cout);
+
+ sv_sources.push_back(src);
+ }
+
+ return true;
+}
+
+void GpsSim::process()
+{
+ // Used to accumulate up the samples
+ complex<float> accum[LO_COUNT];
+
+ // simulation time, in seconds
+ double rx_time = 0;
+
+ for(int period=0; period<periods_to_generate; ++period)
+ {
+ for(int sample=0; sample<RX_SAMPLE_RATE_MULTIPLIER; ++sample)
+ {
+ rx_time += time_step;
+
+ // Clear out our accumulators
+ for (int i=0; i < LO_COUNT; i++)
+ accum[i] = (0,0);
+
+ // Sum the signals from each SV
+ list<SVSource*>::iterator i;
+ for(i = sv_sources.begin(); i != sv_sources.end(); i++)
+ {
+ SVSource* src = *i;
+ int band=src->band-1;
+ accum[band] += src->getSample();
+ src->incrementState();
+ }
+
+ // For each local oscilator frequency...
+ for (int i=0; i<LO_COUNT; i++)
+ {
+ // Compute the local oscilator and the sample noise
+ complex<double> lo = sincos(omega_lo[i] * sample);
+ complex<double> noise(generate_normal_rv()*noise_amplitude,
+ generate_normal_rv()*noise_amplitude);
+
+ // Heterodyne the signals
+ if (!codeOnly)
+ accum[i] *= conj(lo);
+
+ // and add the noise
+ accum[i] += noise;
+
+ // Apply receiver gain
+ accum[i] *= gain;
+
+ // And output the samples
+ *output << accum[i];
+ }
+ }
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ GpsSim crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/swrx/iqdump.cpp b/dev/apps/swrx/iqdump.cpp
new file mode 100644
index 0000000..1b25d85
--- /dev/null
+++ b/dev/apps/swrx/iqdump.cpp
@@ -0,0 +1,192 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <math.h>
+#include <complex>
+#include <map>
+
+#include "BasicFramework.hpp"
+#include "CommandOption.hpp"
+
+#include <IQStream.hpp>
+
+using namespace gpstk;
+using namespace std;
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+class IQDump : public BasicFramework
+{
+public:
+ IQDump() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void process();
+
+private:
+ IQStream *input;
+ int bands;
+ bool stats;
+};
+
+
+//-----------------------------------------------------------------------------
+IQDump::IQDump() throw() :
+ BasicFramework("rxSim", "A simulation of a gps receiver."),
+ bands(2), stats(false)
+{}
+
+
+bool IQDump::initialize(int argc, char *argv[]) throw()
+{
+ using namespace gpstk::StringUtils;
+
+ CommandOptionWithAnyArg
+ inputOpt('i', "input",
+ "Where to get the IQ input from. The default is stdin."),
+
+ quantizationOpt('q', "quantization",
+ "What type of IQ stream; 1, 2 or f. The default is f."),
+
+ bandsOpt('b', "bands",
+ "The number of complex samples per epoch. The default is 2.");
+
+ CommandOptionNoArg
+ statsOpt('s', "stats", "Compute stats on values.");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ stats = statsOpt.getCount()>0;
+
+ char quantization='f';
+ if (quantizationOpt.getCount())
+ quantization = quantizationOpt.getValue()[0][0];
+
+ switch (quantization)
+ {
+ case '1': input = new IQ1Stream(); break;
+ case '2': input = new IQ2Stream(); break;
+ case 'f':
+ default: input = new IQFloatStream(); break;
+ }
+
+ if (inputOpt.getCount())
+ {
+ input->open(inputOpt.getValue()[0].c_str());
+ }
+ else
+ {
+ input->copyfmt(std::cin);
+ input->clear(std::cin.rdstate());
+ input->std::basic_ios<char>::rdbuf(std::cin.rdbuf());
+ input->filename = "<stdin>";
+ }
+ if (debugLevel)
+ cout << "Taking input from: " << input->filename << endl
+ << "IQStream type: " << input->desc << endl;
+
+ input->debugLevel = debugLevel;
+
+ if (bandsOpt.getCount())
+ bands = asInt(bandsOpt.getValue()[0]);
+
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+void IQDump::process()
+{
+ complex<float> s;
+ int band=1;
+ unsigned long N=0;
+ typedef map<float, unsigned long> HistMap;
+ HistMap hist;
+ while (*input >> s)
+ {
+ if (!stats)
+ cout << s.real() << " " << s.imag() << " ";
+ else
+ {
+ if (band==1)
+ {
+ N++;
+ ++hist[s.real()];
+ ++hist[s.imag()];
+ }
+ }
+ if (band == bands)
+ {
+ band=1;
+ if (!stats)
+ cout << endl;
+ }
+ else
+ band++;
+ }
+
+ if (stats)
+ {
+ N*=2; // I & Q each count as a separate sample
+ cout << "# " << N << " samples" << endl
+ << "# value frac" << endl;
+ for (HistMap::const_iterator i = hist.begin(); i != hist.end(); i++)
+ cout << "# " << setw(4) << i->first << " : " << (float)i->second/N << endl;
+
+ unsigned long pos(0),neg(0);
+ for (HistMap::const_iterator i = hist.begin(); i != hist.end(); i++)
+ if (i->first > 0)
+ pos += i->second;
+ else
+ neg += i->second;
+
+ cout << endl
+ << "# >0 : " << (float)pos/N << endl
+ << "# <=0 : " << (float)neg/N << endl;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ IQDump crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/swrx/normal.cpp b/dev/apps/swrx/normal.cpp
new file mode 100644
index 0000000..db155a5
--- /dev/null
+++ b/dev/apps/swrx/normal.cpp
@@ -0,0 +1,67 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <stdlib.h>
+#include <math.h>
+
+#include "normal.hpp"
+
+const int log_two_of_sum_count=4; // Higher number means better approximation
+const double scaling_factor=sqrt(1<<log_two_of_sum_count)/((double)RAND_MAX*sqrt(1.0/12.0));
+
+double
+generate_normal_rv(void) {
+ /* Generate a (mean=0, var=1) Gaussian RV approximation using central limit theorem */
+ int i;
+ int accum=0;
+
+ for(i=0;i<(1<<log_two_of_sum_count);i++)
+ accum+=rand()>>log_two_of_sum_count;
+
+ return ((double)accum - (double)(RAND_MAX>>1))*scaling_factor;
+}
+
+
+#ifdef UNIT_TEST
+#include <stdlib.h>
+#include <stdio.h>
+
+int
+main(int argc, char *argv[]) {
+ int i;
+ double moment_1=0.0;
+ double moment_2=0.0;
+
+ for(i=0;i<100000;i++) {
+ double x=generate_normal_rv();
+ moment_1+=x;
+ moment_2+=x*x;
+ }
+
+ printf("1st moment: %lf (should be near 0.0)\n",moment_1/100000.0);
+ printf("2nd moment: %lf (should be near 1.0)\n",moment_2/100000.0);
+
+ return 0;
+}
+#endif
diff --git a/dev/apps/swrx/normal.hpp b/dev/apps/swrx/normal.hpp
new file mode 100644
index 0000000..96ba321
--- /dev/null
+++ b/dev/apps/swrx/normal.hpp
@@ -0,0 +1,28 @@
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#ifndef NORMAL_HPP
+#define NORMAL_HPP
+
+extern double generate_normal_rv();
+
+#endif
diff --git a/dev/apps/swrx/plot b/dev/apps/swrx/plot
new file mode 100755
index 0000000..801fd51
--- /dev/null
+++ b/dev/apps/swrx/plot
@@ -0,0 +1,161 @@
+#!/usr/bin/env python
+# $Id$
+
+##============================================================================
+##
+## This file is part of GPSTk, the GPS Toolkit.
+##
+## The GPSTk is free software; you can redistribute it and/or modify
+## it under the terms of the GNU Lesser General Public License as published
+## by the Free Software Foundation; either version 2.1 of the License, or
+## any later version.
+##
+## The GPSTk is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+## GNU Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public
+## License along with GPSTk; if not, write to the Free Software Foundation,
+## Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##
+## Copyright 2004, The University of Texas at Austin
+##
+##============================================================================
+
+import sys, string, time, datetime, numpy, matplotlib, pylab
+
+from optparse import OptionParser
+parser = OptionParser(usage="usage: %prog [options]\nA program to plot the output of the receiver simulator")
+parser.set_description
+parser.add_option("-d", "--debug", default=0, dest="debugLevel", action="count",
+ help="Increase the debugLevel")
+
+parser.add_option("-i", "--input", dest="inputFile", type="string", action="store",
+ help="Input data file, defaults to stdin.")
+
+parser.add_option("-t", "--title", dest="title", type="string", action="store",
+ help="Specify a title for the plot. Defaults ot the stream name.")
+
+parser.add_option("-s", "--save-figure", dest="saveFig", action="store", type="string",
+ help="Save the figure to the indicated file")
+
+parser.add_option("-l", "--line-style", dest="lineStyle", action="store", type="string",
+ help="Line style to use in the plots. See matplotlib docs.")
+
+parser.add_option("", "--height", dest="height", action="store", type="string",
+ help="Height of plot, in inches.")
+
+parser.add_option("-c", "--columns", dest="cols", action="append", type="string",
+ help="Specify what columns to plot.")
+
+parser.add_option("-x", "--x-col", dest="xcol", action="store", type="string",
+ help="Specify what column to use as the x axis. The default is 0 (time)")
+
+(options, args) = parser.parse_args()
+
+if len(args) and options.inputFile == None:
+ options.inputFile = args[0]
+
+inputFile = sys.stdin
+if (options.inputFile):
+ inputFile = open(options.inputFile)
+
+if (not options.lineStyle):
+ options.lineStyle = "-";
+
+if options.title == None:
+ options.title = inputFile.name
+
+cols = 0;
+data=[]
+labels=[]
+units=[]
+
+for line in inputFile:
+ line = line.strip()
+
+ if len(line)==0: continue
+
+ words=line.split()
+
+ if line[0] == "#":
+ if len(line) < 2:
+ continue
+ if line[1] == "h":
+ labels = [w for w in words[1:]]
+ if line[1] == "u":
+ units = [w for w in words[1:]]
+ continue
+
+ if cols == 0:
+ cols = len(words)
+ elif cols != len(words):
+ print "change in cols"
+ continue
+
+ row = [float(w) for w in words]
+ data.append(row)
+
+# A key handler for matplotlib
+def press(event):
+ if event.key=='q' or event.key==' ':
+ pylab.close()
+
+d2 = numpy.array(data)
+del data
+
+(rows,cols) = d2.shape
+if len(labels)<cols:
+ labels = ['time']
+ labels += ['%d'%c for c in xrange(1,cols)]
+
+if len(units)<cols:
+ units = ['' for c in xrange(0,cols)]
+else:
+ units = [' (%s)'%c for c in units]
+
+if not options.cols:
+ options.cols = labels;
+
+xcol=0
+if options.xcol:
+ if options.xcol in labels:
+ xcol = labels.index(options.xcol)
+ else:
+ xcol=int(options.xcol)
+
+if xcol < 0 or xcol > cols:
+ print "xcol out of range"
+
+time = d2[:,xcol]
+
+
+# Here we start generating the plots
+if options.height:
+ pylab.figure(figsize=(5.5,int(options.height)))
+pylab.connect('key_press_event', press)
+
+for c in xrange(1,cols):
+ if len(options.cols)==0 or labels[c] in options.cols:
+ pylab.plot(time, d2[:,c], options.lineStyle, label="%s%s"%(labels[c],units[c]))
+
+pylab.xlabel("%s%s"%(labels[xcol],units[xcol]))
+pylab.grid()
+
+pylab.legend(numpoints=2, pad=.1, labelsep=0.001,
+ handlelen=0.01, axespad=0.0, loc='upper left')
+leg = pylab.gca().get_legend()
+ltext = leg.get_texts()
+llines = leg.get_lines()
+lframe = leg.get_frame()
+lframe.set_facecolor('0.90')
+pylab.setp(ltext, size=8, family="sans-serif")
+pylab.setp(llines, linewidth=2)
+
+pylab.title(options.title, fontsize='small')
+
+if (options.saveFig == None):
+ pylab.show()
+else:
+ pylab.savefig(options.saveFig)
diff --git a/dev/apps/swrx/simpleNav.cpp b/dev/apps/swrx/simpleNav.cpp
new file mode 100644
index 0000000..38f0ff2
--- /dev/null
+++ b/dev/apps/swrx/simpleNav.cpp
@@ -0,0 +1,179 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/*
+The start of a program that takes correlation delays, a rough estimate of
+time, a rough estimate of receiver position, and an SV ephemeris. It then
+tries to estimate the pseudoranges from the correlation delays.
+*/
+
+#include <iostream>
+
+#include <DayTime.hpp>
+#include <CommandOption.hpp>
+#include <CommandOptionWithTimeArg.hpp>
+#include <CommandOptionParser.hpp>
+
+#include <BCEphemerisStore.hpp>
+#include <RinexNavStream.hpp>
+#include <RinexNavData.hpp>
+#include <TropModel.hpp>
+#include <IonoModel.hpp>
+#include <GPSGeoid.hpp>
+#include <PRSolution.hpp>
+
+using namespace gpstk;
+using namespace std;
+using namespace gpstk::StringUtils;
+
+int main(int argc, char *argv[])
+{
+ int verbosity = 1;
+ Triple antennaPos;
+
+ CommandOptionWithAnyArg
+ ephFileOption('e', "ephemeris", "Rinex Ephemeris data file name.", true);
+
+ CommandOptionNoArg
+ helpOption('h', "help", "Print usage. Repeat for more info. "),
+
+ verbosityOption('v', "verbosity", "Increase the verbosity level. The default is 0.");
+
+ CommandOptionWithAnyArg
+ antennaPosOption('p', "position", "Initial estimate of the antenna position in ECEF. Only needs to be good to the km level.");
+
+ CommandOptionWithTimeArg
+ timeOption('t', "time", "%m/%d/%Y %H:%M:%S",
+ "Time estimate for start of data (MM/DD/YYYY HH:MM:SS).");
+
+ string appDesc("Performs a simple nav solution from correlation delays.");
+ CommandOptionParser cop(appDesc);
+ cop.parseOptions(argc, argv);
+
+ if (helpOption.getCount() || cop.hasErrors())
+ {
+ if (cop.hasErrors() && helpOption.getCount()==0)
+ {
+ cop.dumpErrors(cout);
+ cout << "Use -h for help." << endl;
+ }
+ else
+ {
+ cop.displayUsage(cout);
+ }
+ exit(0);
+ }
+
+ if (verbosityOption.getCount())
+ verbosity = asInt(verbosityOption.getValue()[0]);
+
+
+ if (antennaPosOption.getCount())
+ {
+ string aps = antennaPosOption.getValue()[0];
+ if (numWords(aps) != 3)
+ {
+ cout << "Please specify three coordinates in the antenna postion." << endl;
+ exit(-1);
+ }
+ else
+ for (int i=0; i<3; i++)
+ antennaPos[i] = asDouble(word(aps, i));
+ }
+
+ BCEphemerisStore bce;
+ IonoModel iono;
+ for (int i=0; i < ephFileOption.getCount(); i++)
+ {
+ string fn = ephFileOption.getValue()[i];
+ RinexNavStream rns(fn.c_str(), ios::in);
+ rns.exceptions(ifstream::failbit);
+
+ RinexNavHeader hdr;
+ rns >> hdr;
+ iono = IonoModel(hdr.ionAlpha, hdr.ionBeta);
+
+ RinexNavData rnd;
+ while (rns >> rnd)
+ bce.addEphemeris(rnd);
+
+ if (verbosity)
+ cout << "Read " << fn << " as RINEX nav. " << endl;
+ }
+
+ if (verbosity>1)
+ cout << "Have ephemeris data from " << bce.getInitialTime()
+ << " through " << bce.getFinalTime() << endl;
+
+ DayTime time = timeOption.getTime()[0];
+ if (verbosity)
+ cout << "Initial time estimate: " << time << endl;
+
+ if (time < bce.getInitialTime() || time > bce.getFinalTime())
+ cout << "Warning: Initial time does not appear to be within the provided ephemeris data." << endl;
+
+
+ GPSGeoid gm;
+ ECEF ecef(antennaPos);
+ map<SatID, double> range;
+ vector<SatID> svVec;
+ vector<double> expVec, ionoVec;
+ for (int i=1; i<=32; i++)
+ {
+ SatID sv(i, SatID::systemGPS);
+ try
+ {
+ Xvt svpos = bce.getSatXvt(sv, time);
+ double el = antennaPos.elvAngle(svpos.x);
+ double az = antennaPos.azAngle(svpos.x);
+
+ double pr = svpos.preciseRho(ecef, gm, 0);
+ double ic = iono.getCorrection(time, ecef, el, az);
+
+ expVec.push_back(pr);
+ svVec.push_back(sv);
+ ionoVec.push_back(ic);
+ }
+ catch (Exception& e)
+ {}
+ }
+
+ // Replace this with the observed delays...
+ vector<double> obsVec(expVec);
+
+ try
+ {
+ GGTropModel gg;
+ gg.setWeather(20., 1000., 50.);
+ PRSolution prSolver;
+ prSolver.RMSLimit = 400;
+ prSolver.RAIMCompute(time, svVec, obsVec, bce, &gg);
+ Vector<double> sol = prSolver.Solution;
+ cout << "solution:" << fixed << sol << endl;
+ }
+ catch (Exception& e)
+ {
+ cout << "Caught exception:" << e << endl;
+ }
+}
diff --git a/dev/apps/swrx/tracker.cpp b/dev/apps/swrx/tracker.cpp
new file mode 100644
index 0000000..c570386
--- /dev/null
+++ b/dev/apps/swrx/tracker.cpp
@@ -0,0 +1,309 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/*
+ The first cut at an object-oriented receiver simulator. This is intended
+ to accept the output from gpsSim and produce neat stuff.
+*/
+
+#include <math.h>
+#include <complex>
+#include <iostream>
+#include <list>
+
+#include "BasicFramework.hpp"
+#include "CommandOption.hpp"
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "EMLTracker.hpp"
+#include "CCReplica.hpp"
+#include "CACodeGenerator.hpp"
+#include "PCodeGenerator.hpp"
+#include "complex_math.h"
+#include "IQStream.hpp"
+#include "NavFramer.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+class RxSim : public BasicFramework
+{
+public:
+ RxSim() throw();
+
+ bool initialize(int argc, char *argv[]) throw();
+
+protected:
+ virtual void process();
+
+private:
+ CCReplica* cc;
+ EMLTracker* tr;
+ int band;
+ double gain;
+ bool fakeL2;
+
+ double timeLimit;
+ IQStream *input;
+ unsigned iadMax;
+};
+
+
+//-----------------------------------------------------------------------------
+RxSim::RxSim() throw() :
+ BasicFramework("rxSim", "A simulation of a gps receiver."),
+ cc(NULL), tr(NULL), band(1), fakeL2(false), gain(1), timeLimit(9e99),
+ iadMax(20460)
+{}
+
+
+bool RxSim::initialize(int argc, char *argv[]) throw()
+{
+ using namespace gpstk::StringUtils;
+
+ CommandOptionWithAnyArg
+ codeOpt('c', "code",
+ "The code/carrier to track. ARG takes the form of "
+ "code:carrier:prn:offset:doppler. Code is either c or p. "
+ "Carrier is either 1 or 2. Prn is an integer between 1 and 32. "
+ "Offset is a number in us, Doppler is a number in Hz. Currently, "
+ "only one signal can be specified. For example, to track P code "
+ "on L2 for PRN 3, with no initial time or doppler offset, "
+ "specify -c p:2:3:0:0"),
+
+ dllAlphaOpt('\0', "dllAlpha",
+ "The gain on the phase update for the code tracker. The "
+ "default is 1e-5 chips/tick"),
+
+ dllBetaOpt('\0', "dllBeta",
+ "The gain on the frequency update for the code tracker. The "
+ "default is 1e-12 chips/tick"),
+
+ pllAlphaOpt('\0', "pllAlpha",
+ "The gain on the phase update for the carrier tracker. The "
+ "default is 0.4 cycles/tick"),
+
+ pllBetaOpt('\0', "pllBeta",
+ "The gain on the frequency update for the carrier tracker. "
+ "The default is 0.1 cycles / iad_period"),
+
+ quantizationOpt('q', "quantization",
+ "They quantization applied to the data. 1, 2 or f. "
+ "The default is f."),
+
+ gainOpt('g', "gain",
+ "Gain to apply to the if prior to digitization, in dB. Default is 0."),
+
+ timeLimitOpt('t', "time-limit",
+ "Limit the amount of data to process. Specify time in ms. Defaults to all data."),
+
+ inputOpt('i', "input",
+ "Where to get the IQ samples from. The default is to use stdin.");
+
+ CommandOptionWithNumberArg
+ bandsOpt('b', "bands",
+ "The number of complex samples per epoch. The default is 2.");
+
+ if (!BasicFramework::initialize(argc,argv))
+ return false;
+
+ // Basic tick of the reciever, assumed to also be the sample rate
+ const double timeStep = 1/20e6;
+
+ if (timeLimitOpt.getCount())
+ timeLimit = asDouble(timeLimitOpt.getValue()[0]) * 1e-3;
+
+ if (!codeOpt.getCount())
+ {
+ cout << "Must specify a code/carrier to track. Bye." << endl;
+ return false;
+ }
+
+ string val=codeOpt.getValue()[0];
+ const char delim(':');
+ if (numWords(val, delim) != 5)
+ {
+ cout << "Error in code parameter:" << val << endl;
+ return false;
+ }
+
+ string code = lowerCase(word(val, 0, delim));
+ band = asInt(word(val, 1, delim));
+ int prn = asInt(word(val, 2, delim));
+ double offset = asDouble(word(val, 3, delim)) * 1e-6;
+ double doppler = asDouble(word(val, 4, delim));
+
+ double interFreq;
+ switch (band)
+ {
+ case 1: interFreq = gpstk::L1_FREQ - 1575e6; break;
+ case 2: interFreq = gpstk::L2_FREQ - 1228e6; break;
+ default:
+ cout << "Unsupported band: " << band << endl;
+ return false;
+ }
+
+ CodeGenerator* codeGenPtr;
+ double chipFreq;
+ switch (code[0])
+ {
+ case 'c':
+ codeGenPtr = new CACodeGenerator(prn);
+ chipFreq = CA_CHIP_FREQ;
+ break;
+ case 'p':
+ codeGenPtr = new PCodeGenerator(prn);
+ chipFreq = PY_CHIP_FREQ;
+ break;
+ default:
+ cout << "Unsupported code: " << code << endl;
+ return false;
+ }
+
+ // Note that this object is responsible for destroying
+ // the codeGenPtr object
+ cc = new CCReplica(timeStep, chipFreq, interFreq, codeGenPtr);
+
+ double chips = offset / cc->codeChipLen;
+ cc->moveCodePhase(chips);
+
+ cc->setCodeFreqOffsetHz(doppler);
+ cc->setCarrierFreqOffsetHz(doppler);
+
+ double spacing = 0.5 * cc->codeChipLen;
+ if (spacing < timeStep)
+ spacing = timeStep;
+
+ tr = new EMLTracker(*cc, spacing);
+
+ if (dllAlphaOpt.getCount())
+ tr->dllAlpha = asDouble(dllAlphaOpt.getValue()[0]);
+
+ if (dllBetaOpt.getCount())
+ tr->dllBeta = asDouble(dllBetaOpt.getValue()[0]);
+
+ if (pllAlphaOpt.getCount())
+ tr->pllAlpha = asDouble(pllAlphaOpt.getValue()[0]);
+
+ if (pllBetaOpt.getCount())
+ tr->pllBeta = asDouble(pllBetaOpt.getValue()[0]);
+
+ tr->debugLevel = debugLevel;
+
+ char quantization='f';
+ if (quantizationOpt.getCount())
+ quantization = quantizationOpt.getValue()[0][0];
+
+ switch (quantization)
+ {
+ case '1': input = new IQ1Stream(); break;
+ case '2': input = new IQ2Stream(); break;
+ case 'f':
+ default: input = new IQFloatStream(); break;
+ }
+
+ if (inputOpt.getCount())
+ {
+ input->open(inputOpt.getValue()[0].c_str());
+ }
+ else
+ {
+ input->copyfmt(std::cin);
+ input->clear(std::cin.rdstate());
+ input->std::basic_ios<char>::rdbuf(std::cin.rdbuf());
+ input->filename = "<stdin>";
+ }
+
+ if (bandsOpt.getCount())
+ input->bands = asInt(bandsOpt.getValue()[0]);
+
+ if (gainOpt.getCount())
+ {
+ double gainDb = StringUtils::asDouble(gainOpt.getValue()[0]);
+ gain = exp10(gainDb/10);
+ }
+
+ if (verboseLevel)
+ {
+ cout << "# Taking input from " << input->filename
+ << " (" << input->bands << " samples/epoch)" << endl
+ << "# Rx gain level: " << gain << endl;
+ tr->dump(cout, 1);
+ }
+
+ return true;
+}
+
+
+//-----------------------------------------------------------------------------
+void RxSim::process()
+{
+ NavFramer nf;
+ nf.debugLevel = debugLevel;
+ nf.dump(cout);
+
+ complex<float> s;
+ int b=0;
+ while (*input >> s)
+ {
+ if (b == band-1 || input->bands==1)
+ {
+ s *= gain;
+ if (tr->process(s))
+ {
+ if (verboseLevel)
+ tr->dump(cout);
+ nf.process(*tr);
+ }
+ }
+ b++;
+ b %= input->bands;
+
+ if (cc->localTime > timeLimit)
+ break;
+ }
+}
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+int main(int argc, char *argv[])
+{
+ try
+ {
+ RxSim crap;
+ if (!crap.initialize(argc, argv))
+ exit(0);
+ crap.run();
+ }
+ catch (gpstk::Exception &exc)
+ { cerr << exc << endl; }
+ catch (std::exception &exc)
+ { cerr << "Caught std::exception " << exc.what() << endl; }
+ catch (...)
+ { cerr << "Caught unknown exception" << endl; }
+}
diff --git a/dev/apps/time/Jamfile b/dev/apps/time/Jamfile
new file mode 100644
index 0000000..b386655
--- /dev/null
+++ b/dev/apps/time/Jamfile
@@ -0,0 +1,7 @@
+SubDir TOP apps time ;
+
+GPSLinkLibraries timeconvert calgps : gpstk ;
+BonkForte ; # bleah.
+
+GPSMain timeconvert : timeconvert.cpp ;
+GPSMain calgps : calgps.cpp ;
diff --git a/dev/apps/time/Makefile.am b/dev/apps/time/Makefile.am
new file mode 100644
index 0000000..4bc0e14
--- /dev/null
+++ b/dev/apps/time/Makefile.am
@@ -0,0 +1,8 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+LDADD = ../../src/libgpstk.la
+
+bin_PROGRAMS = timeconvert calgps
+
+timeconvert_SOURCES = timeconvert.cpp
+calgps_SOURCES = calgps.cpp
diff --git a/dev/apps/time/README.txt b/dev/apps/time/README.txt
new file mode 100644
index 0000000..688a0c7
--- /dev/null
+++ b/dev/apps/time/README.txt
@@ -0,0 +1,94 @@
+Application: timcvt.exe
+Purpose: To convert time between different time specifications
+Usage: timcvt {option} "{time specification}"
+Help: timcvt -h
+Notes: 1) timcvt must be invoked from the command line.
+ 2) All years are 4 digits.
+ 3) Time specifications should be enclosed in quotes.
+
+Optional arguments:
+ -d, --debug Increase debug level
+ -v, --verbose Increase verbosity
+ -h, --help Print help usage
+ -c, --calendar=TIME "Month(numeric) DayOfMonth Year"
+ -r, --rinex=TIME "Month(numeric) DayOfMonth Year Hour:Minute:Second"
+ -R, --rinex-file=TIME "Year(2-digit) Month(numeric) DayOfMonth Hour Minute Second"
+ -y, --doy=TIME "Year DayOfYear SecondsOfDay"
+ -m, --mjd=TIME "ModifiedJulianDate"
+ -o, --shortweekandsow=TIME "10bitGPSweek SecondsOfWeek Year"
+ -z, --shortweekandzcounts=TIME "10bitGPSweek ZCounts Year"
+ -f, --fullweekandsow=TIME "FullGPSweek SecondsOfWeek"
+ -w, --fullweekandzcounts=TIME "FullGPSweek ZCounts"
+ -u, --unixtime=TIME "UnixSeconds UnixMicroseconds"
+ -Z, --fullZcounts=TIME "fullZcounts"
+ -F, --format=ARG Time format to use on output
+ -a, --add-offset=NUM add NUM seconds to specified time
+ -s, --sub-offset=NUM subtract NUM seconds from specified time
+
+Examples:
+c:\time> timcvt -y "2004 9 9"
+
+ Month/Day/Year 1/9/2004
+ Hour:Min:Sec 00:00:09
+ Modified Julian Date 53013.0001041666
+ GPSweek DayOfWeek SecOfWeek 228 5 432009.000000
+ FullGPSweek Zcount 1252 288006
+ Year DayOfYear SecondOfDay 2004 9 9.000000
+ Unix_sec Unix_usec 1073606409 0
+ FullZcount 119825670
+
+c:\time>timcvt -m "54327.65"
+
+ Month/Day/Year 8/15/2007
+ Hour:Min:Sec 15:36:00
+ Modified Julian Date 54327.6499999999
+ GPSweek DayOfWeek SecOfWeek 416 3 315360.000000
+ FullGPSweek Zcount 1440 210240
+ Year DayOfYear SecondOfDay 2007 227 56160.000000
+ Unix_sec Unix_usec 1187192160 0
+ FullZcount 218314048
+
+
+c:\time>timcvt -c "9 9 2004" -a 86510
+
+ Month/Day/Year 9/10/2004
+ Hour:Min:Sec 00:01:50
+ Modified Julian Date 53258.0012731482
+ GPSweek DayOfWeek SecOfWeek 263 5 432110.000000
+ FullGPSweek Zcount 1287 288074
+ Year DayOfYear SecondOfDay 2004 254 110.000000
+ Unix_sec Unix_usec 1094774510 0
+ FullZcount 138175818
+
+
+
+---------------------------------------------------------------
+
+Application: calgps (UNIX), calgps.exe (Windows)
+Purpose: To print a simple GPS calendar to the command line
+Usage: calgps (options)
+Help: calgps -h
+Notes: Calgps uses the system's current time to determine
+ which months to print.
+
+The program calgps behave much like the UNIX utility cal. It prints
+one month of Julian days and GPS week numbers. The user can also
+print a full year, either the current year or a given year.
+
+The arguments are:
+ -h, --help Display argument list.
+ -3, --three-months Display last, this and next months.
+ -y, --year Display all months for the current year
+ -Y, --specific-year=NUM Display all months for a given year
+
+Examples:
+
+c:\gpstk\apps\time\> calgps -3
+
+user at server:/home/user/gpstk/apps/time% ./calgps -Y 2004
+
+
+timcvt and calgps are provided as part of the GPSTk open source project (www.gpstk.org).
+GPSTk has been developed by Applied Research Laboratories, The University of
+Texas at Austin, and is released under the LGPL.
+
diff --git a/dev/apps/time/calgps.cpp b/dev/apps/time/calgps.cpp
new file mode 100644
index 0000000..f6683d3
--- /dev/null
+++ b/dev/apps/time/calgps.cpp
@@ -0,0 +1,150 @@
+#pragma ident "$Id$"
+
+#include <iostream>
+#include <iomanip>
+#include "CommonTime.hpp"
+#include "CivilTime.hpp"
+#include "GPSWeekSecond.hpp"
+#include "TimeConstants.hpp"
+#include "TimeString.hpp"
+#include "SystemTime.hpp"
+#include "CommandOptionParser.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+void printMonth(short month, short year)
+{
+ CivilTime ct(year, month, 1, 0, 0, 0.0);
+ CommonTime thisDay(ct);
+ GPSWeekSecond gws(thisDay);
+ int gpsweek = gws.week;
+ short dow = static_cast<long>(gws.sow) / SEC_PER_DAY;
+
+ cout << endl << ct.printf("%26b %4Y") << endl;
+
+ bool done = false;
+ do
+ {
+ cout << setw(4) << gpsweek << " ";
+ short thisDow=0;
+
+ while (thisDow < 7)
+ {
+ thisDay = GPSWeekSecond(gpsweek, thisDow*SEC_PER_DAY ).convertToCommonTime();
+ CivilTime ct(thisDay);
+ int thisMonth = ct.month;
+ if (thisMonth==month)
+ cout << printTime(thisDay, "%2d-%03j ");
+ else
+ cout << " ";
+
+ // Iterate
+ thisDow++;
+ }
+ cout << endl;
+
+ gpsweek++;
+ thisDay = GPSWeekSecond(gpsweek, 0.0).convertToCommonTime();
+ CivilTime ct(thisDay);
+
+ done = ( (ct.month > month) ||
+ (ct.year > year) );
+ } while (!done);
+
+ return;
+}
+
+int main(int argc, char* argv[])
+{
+
+ try {
+
+ CommandOptionNoArg helpOption('h',"help","Display argument list.",false);
+ CommandOptionNoArg threeOption('3',"three-months","Display last, this and next months.",false);
+ CommandOptionNoArg thisYearOption('y',"year","Display all months for the current year");
+ CommandOptionWithNumberArg givenYearOption('Y',"specific-year","Display all months for a given year");
+ CommandOptionParser cop("GPSTk GPS Calendar Generator");
+ cop.parseOptions(argc, argv);
+
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ return 1;
+ }
+
+ if(helpOption.getCount())
+ {
+ cop.displayUsage(cout);
+ return 0;
+ }
+
+ // Default condition is to just print this month
+ SystemTime st;
+ CivilTime now(st);
+ int firstMonth = now.month;
+ int lastMonth = now.month;
+ int firstYear = now.year;
+ int lastYear = now.year;
+
+ if (thisYearOption.getCount())
+ {
+ firstMonth =1;
+ lastMonth =12;
+ }
+
+ if (givenYearOption.getCount())
+ {
+ firstMonth =1;
+ lastMonth =12;
+
+ firstYear = gpstk::StringUtils::asInt((givenYearOption.getValue())[0]);
+ lastYear = firstYear;
+
+ }
+
+ if (threeOption.getCount())
+ {
+ firstMonth--;
+ if (firstMonth==0)
+ {
+ firstMonth = 12;
+ firstYear--;
+ }
+
+ lastMonth++;
+ if (lastMonth==13)
+ {
+ lastMonth = 1;
+ lastYear++;
+ }
+ }
+
+ //cout << "first month " << firstMonth << " " << firstYear << endl;
+ //cout << "last month " << lastMonth << " " << lastYear << endl;
+
+ for (short m=firstMonth, y=firstYear;
+ (y<lastYear) || ((m<=lastMonth) && (y==lastYear));
+ m++)
+ {
+ if (m==13)
+ {
+ m=1;
+ y++;
+ }
+
+ printMonth(m, y);
+ }
+
+ cout << endl;
+
+ }
+ catch( Exception error)
+ {
+ cout << error << endl;
+ exit(-1);
+ }
+
+ exit(0);
+}
diff --git a/dev/apps/time/timeconvert.cpp b/dev/apps/time/timeconvert.cpp
new file mode 100644
index 0000000..18c1a3f
--- /dev/null
+++ b/dev/apps/time/timeconvert.cpp
@@ -0,0 +1,229 @@
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+#include "BasicFramework.hpp"
+
+#include "TimeString.hpp"
+#include "TimeConstants.hpp"
+
+#include "ANSITime.hpp"
+#include "CivilTime.hpp"
+#include "GPSEpochWeekSecond.hpp"
+#include "GPSWeekSecond.hpp"
+#include "GPSWeekZcount.hpp"
+#include "GPSZcount29.hpp"
+#include "GPSZcount32.hpp"
+#include "JulianDate.hpp"
+#include "MJD.hpp"
+#include "UnixTime.hpp"
+#include "YDSTime.hpp"
+#include "SystemTime.hpp"
+
+#include "CommandOptionWithCommonTimeArg.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class TimCvt : public BasicFramework
+{
+public:
+ TimCvt(char* arg0);
+
+protected:
+ virtual void process();
+
+private:
+ CommandOptionWithCommonTimeArg ANSITimeOption;
+ CommandOptionWithCommonTimeArg CivilTimeOption;
+ CommandOptionWithCommonTimeArg RinexFileTimeOption;
+ CommandOptionWithCommonTimeArg GPSEWSOption;
+ CommandOptionWithCommonTimeArg GPSWSOption;
+ CommandOptionWithCommonTimeArg GPSWZOption;
+ CommandOptionWithCommonTimeArg GPSZ29Option;
+ CommandOptionWithCommonTimeArg GPSZ32Option;
+ CommandOptionWithCommonTimeArg JDOption;
+ CommandOptionWithCommonTimeArg MJDOption;
+ CommandOptionWithCommonTimeArg UnixTimeOption;
+ CommandOptionWithCommonTimeArg YDSTimeOption;
+
+ CommandOptionWithAnyArg inputFormatOption;
+ CommandOptionWithAnyArg inputTimeOption;
+ CommandOptionAllOf inputFormatAndTimeOption;
+
+ CommandOptionWithAnyArg formatOption;
+ CommandOptionWithNumberArg addOption;
+ CommandOptionWithNumberArg subOption;
+ CommandOptionMutex mutexOption;
+
+ string stringToParse;
+ string timeSpec;
+};
+
+TimCvt::TimCvt(char* arg0)
+ : BasicFramework(arg0, "Converts from a given input time specification"
+ " to other time formats. Include the quotation marks."
+ " All year values are four digit years."),
+ ANSITimeOption('A', "ansi", "%K", "\"ANSI-Second\""),
+ CivilTimeOption('c', "civil", "%m %d %Y %H:%M:%f",
+ "\"Month(numeric) DayOfMonth Year Hour:Minute:Second\""),
+ RinexFileTimeOption('R', "rinex-file", "%y %m %d %H %M %S",
+ "\"Year(2-digit) Month(numeric) DayOfMonth Hour Minute Second\""),
+ GPSEWSOption('o', "ews", "%E %G %g",
+ "\"GPSEpoch 10bitGPSweek SecondOfWeek\""),
+ GPSWSOption('f', "ws", "%F %g", "\"FullGPSWeek SecondOfWeek\""),
+ GPSWZOption('w', "wz", "%F %Z", "\"FullGPSWeek Zcount\""),
+ GPSZ29Option(0, "z29", "%E %c", "\"29bitZcount\""),
+ GPSZ32Option('Z', "z32", "%C", "\"32bitZcount\""),
+ JDOption('j', "julian", "%J", "\"JulianDate\""),
+ MJDOption('m', "mjd", "%Q", "\"ModifiedJulianDate\""),
+ UnixTimeOption('u',"unixtime", "%U %u",
+ "\"UnixSeconds UnixMicroseconds\""),
+ YDSTimeOption('y', "doy", "%Y %j %s",
+ "\"Year DayOfYear SecondsOfDay\""),
+ inputFormatOption(0, "input-format", "Time format to use on input"),
+ inputTimeOption(0, "input-time",
+ "Time to be parsed by \"input-format\" option"),
+ formatOption('F', "format", "Time format to use on output"),
+ addOption('a', "add-offset", "add NUM seconds to specified time"),
+ subOption('s', "sub-offset",
+ "subtract NUM seconds from specified time")
+{
+ ANSITimeOption.setMaxCount(1);
+ CivilTimeOption.setMaxCount(1);
+ RinexFileTimeOption.setMaxCount(1);
+ GPSEWSOption.setMaxCount(1);
+ GPSWSOption.setMaxCount(1);
+ GPSWZOption.setMaxCount(1);
+ GPSZ29Option.setMaxCount(1);
+ GPSZ32Option.setMaxCount(1);
+ JDOption.setMaxCount(1);
+ MJDOption.setMaxCount(1);
+ UnixTimeOption.setMaxCount(1);
+ YDSTimeOption.setMaxCount(1);
+ formatOption.setMaxCount(1);
+
+ inputFormatOption.setMaxCount(1);
+ inputTimeOption.setMaxCount(1);
+ inputFormatAndTimeOption.addOption(&inputFormatOption);
+ inputFormatAndTimeOption.addOption(&inputTimeOption);
+
+ mutexOption.addOption(&ANSITimeOption);
+ mutexOption.addOption(&CivilTimeOption);
+ mutexOption.addOption(&RinexFileTimeOption);
+ mutexOption.addOption(&GPSEWSOption);
+ mutexOption.addOption(&GPSWSOption);
+ mutexOption.addOption(&GPSWZOption);
+ mutexOption.addOption(&GPSZ29Option);
+ mutexOption.addOption(&GPSZ32Option);
+ mutexOption.addOption(&JDOption);
+ mutexOption.addOption(&MJDOption);
+ mutexOption.addOption(&UnixTimeOption);
+ mutexOption.addOption(&YDSTimeOption);
+ mutexOption.addOption(&inputFormatAndTimeOption);
+}
+
+void TimCvt::process()
+{
+ CommonTime ct;
+ CommandOption *whichOpt = mutexOption.whichOne();
+
+ if (whichOpt)
+ {
+ CommandOptionWithCommonTimeArg *cta =
+ dynamic_cast<CommandOptionWithCommonTimeArg *>(whichOpt);
+ if (cta)
+ {
+ ct = cta->getTime().front();
+ }
+ else // whichOpt == &inputFormatAndTimeOption
+ {
+ mixedScanTime( ct,
+ inputTimeOption.getValue().front(),
+ inputFormatOption.getValue().front() );
+ }
+ }
+ else
+ {
+ ct = SystemTime();
+ }
+
+ int i;
+ int addOptions = addOption.getCount();
+ int subOptions = subOption.getCount();
+ for (i = 0; i < addOptions; i++)
+ ct += StringUtils::asDouble(addOption.getValue()[i]);
+ for (i = 0; i < subOptions; i++)
+ ct -= StringUtils::asDouble(subOption.getValue()[i]);
+
+ if (formatOption.getCount())
+ {
+ cout << printTime(ct, formatOption.getValue()[0]) << endl;
+ }
+ else
+ {
+ using StringUtils::leftJustify;
+ string eight(8, ' '); // eight spaces
+
+ CivilTime civ(ct);
+
+ cout << endl
+ << eight << leftJustify("Month/Day/Year", 32)
+ << civ.printf("%m/%d/%Y") << endl
+
+ << eight << leftJustify("Hour:Min:Sec", 32)
+ << civ.printf("%02H:%02M:%02S") << endl
+
+ << eight << leftJustify("Modified Julian Date", 32)
+ << setprecision(15) << MJD(ct) << endl
+
+ << eight << leftJustify("GPSweek DayOfWeek SecOfWeek", 32)
+ << GPSEpochWeekSecond(ct).printf("%G %w %g") << endl
+
+ << eight << leftJustify("FullGPSweek Zcount", 32)
+ << GPSWeekZcount(ct).printf("%F %z") << endl
+
+ << eight << leftJustify("Year DayOfYear SecondOfDay", 32)
+ << YDSTime(ct).printf("%Y %j %s") << endl
+
+ << eight << leftJustify("Unix_sec Unix_usec", 32)
+ << UnixTime(ct).printf("%U %u") << endl
+
+ << eight << leftJustify("Zcount: 29-bit (32-bit)", 32)
+ << GPSZcount29(ct).printf("%c")
+ << GPSZcount32(ct).printf(" (%C)") << endl
+
+ << endl << endl;
+ }
+
+ return;
+}
+
+int main(int argc, char* argv[])
+{
+ try
+ {
+ TimCvt tc(argv[0]);
+ if (!tc.initialize(argc, argv))
+ return 0;
+ if (!tc.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(exception& e)
+ {
+ cout << e.what() << endl;
+ }
+ catch(...)
+ {
+ cout << "unknown error" << endl;
+ }
+ return 0;
+}
diff --git a/dev/apps/visibility/Jamfile b/dev/apps/visibility/Jamfile
new file mode 100644
index 0000000..f158f5c
--- /dev/null
+++ b/dev/apps/visibility/Jamfile
@@ -0,0 +1,13 @@
+SubDir TOP apps visibility ;
+
+GPSLinkLibraries wheresat : rxio gpstk ;
+BonkForte ;
+
+GPSMain wheresat : WhereSat.cpp ;
+
+GPSLinkLibraries findMoreThan12 : rxio gpstk ;
+BonkForte ;
+
+GPSMain findMoreThan12 : findMoreThan12.cpp ;
+
+
diff --git a/dev/apps/visibility/Makefile.am b/dev/apps/visibility/Makefile.am
new file mode 100644
index 0000000..f7342c0
--- /dev/null
+++ b/dev/apps/visibility/Makefile.am
@@ -0,0 +1,8 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src -I$(srcdir)/../../lib/rxio
+LDADD = ../../src/libgpstk.la ../../lib/rxio/librxio.la
+
+bin_PROGRAMS = wheresat findMoreThan12
+
+wheresat_SOURCES = WhereSat.cpp
+findMoreThan12_SOURCES = findMoreThan12.cpp
diff --git a/trunk/apps/visibility/UsingWhereSat.doc b/dev/apps/visibility/UsingWhereSat.doc
similarity index 100%
rename from trunk/apps/visibility/UsingWhereSat.doc
rename to dev/apps/visibility/UsingWhereSat.doc
diff --git a/dev/apps/visibility/WhereSat.cpp b/dev/apps/visibility/WhereSat.cpp
new file mode 100644
index 0000000..903c74c
--- /dev/null
+++ b/dev/apps/visibility/WhereSat.cpp
@@ -0,0 +1,286 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+//
+// Computes SV position (Earth-fixed) and SV clock
+// correction. If given a user position, computes
+// azimuth, elevation and range to SV.
+//
+
+#include <iostream>
+#include <iomanip>
+#include <fstream>
+
+#include "DayTime.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+#include "WGS84Geoid.hpp"
+#include "EphReader.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+int main(int argc, char *argv[])
+{
+ CommandOptionNoArg
+ helpOption('h',"help", "Print help usage.");
+
+ CommandOptionWithAnyArg
+ ephFiles('e',"eph-files","Ephemeris source file(s). Can be RINEX nav, SP3, or FIC.",true),
+ PositionOption('u',"position","Antenna position in ECEF (x,y,z) coordinates. Format as a string: "
+ "\"X Y Z\". Used to give user-centered data (SV range, azimuth & elevation)."),
+ StartTimeOption('s',"start","Starting time for analysis. Format as string: \"MO/DD/YYYY HH:MM:SS\"."
+ " If no start time is specified, the default is end of file."),
+ EndTimeOption('f',"end", "End time for analysis. Format as string: \"MO/DD/YYYY HH:MM:SS\". If no"
+ " end time is specified, the default is beginning of file."),
+ MatlabOption('o',"output-filename", "Filename for results to be output in MATLAB suitable file.");
+
+ CommandOptionWithNumberArg
+ MyPrnOption('p',"prn","Which SV to analyze.",true),
+ TimeIncrementOption('t',"time","Time increment for ephemeris calculation. Enter increment in "
+ "seconds. Default is 900 (15 min).");
+
+ CommandOptionParser cop("Computes the ephemeris data for a single prn.");
+ cop.parseOptions(argc, argv);
+
+ if (helpOption.getCount())
+ {
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ short myprn = StringUtils::asInt((MyPrnOption.getValue())[0]);
+ if ((myprn > gpstk::MAX_PRN) || (myprn < 1))
+ {
+ cerr << "Enter a valid PRN number.\n\n";
+ exit(0);
+ }
+
+ std::ofstream ofs;
+ if (MatlabOption.getCount())
+ {
+ const string fn=MatlabOption.getValue()[0];
+ ofs.open(fn.c_str(), ios::out);
+ if (PositionOption.getCount())
+ ofs << "#10-bit GPS week, GPS seconds of week,X,Y,Z(m),Clock Corr.(sec), azimuth (deg), "
+ << "elevation (deg), range (m)" << endl;
+ }
+ else
+ ofs << "#10-bit GPS week, GPS seconds of week,X,Y,Z(m),Clock Corr.(sec)" << endl;
+
+ int incr=900;
+ if (TimeIncrementOption.getCount())
+ incr = gpstk::StringUtils::asInt((TimeIncrementOption.getValue())[0]);
+
+ Xvt ANTPVT;
+ if (PositionOption.getCount())
+ {
+ double x, y, z;
+ sscanf(PositionOption.getValue().front().c_str(),"%lf %lf %lf", &x, &y, &z);
+ ANTPVT.x[0] = x; ANTPVT.x[1] = y; ANTPVT.x[2] = z;
+ cout << endl << endl << setw(20) << left << " Antenna Position: " << ANTPVT.x[0]
+ << " " << ANTPVT.x[1] << " " << ANTPVT.x[2] << endl;
+ }
+
+ // get the ephemeris source(s)
+ EphReader ephReader;
+ for (int i=0; i<ephFiles.getCount(); i++)
+ ephReader.read(ephFiles.getValue()[i]);
+
+ gpstk::EphemerisStore& ephStore = *ephReader.eph;
+
+ DayTime tStart,tEnd;
+ if (StartTimeOption.getCount())
+ {
+ double ss;
+ int mm,dd,yy,hh,minu;
+ sscanf(StartTimeOption.getValue().front().c_str(), "%i/%i/%i %i:%i:%lf",&mm,&dd,&yy,&hh,&minu,&ss);
+ tStart.setYMDHMS((short)yy, (short)mm, (short)dd, (short)hh, (short)minu, (double)ss);
+ }
+ else
+ {
+ DayTime tFile(ephStore.getInitialTime()); //extra code b/c sscanf reads in int's but setYMDHMS needs shorts
+ short year = tFile.year();
+ short month = tFile.month();
+ short day = tFile.day();
+ short hour = tFile.hour();
+ short minute = tFile.minute();
+ double ss = tFile.second();
+ tStart.setYMDHMS(year,month,day,hour,minute,ss);
+ }
+
+ if (EndTimeOption.getCount())
+ {
+ double ss;
+ int mm,dd,yy,hh,minu;
+ sscanf(EndTimeOption.getValue().front().c_str(), "%i/%i/%i %i:%i:%lf",&mm,&dd,&yy,&hh,&minu,&ss);
+ tEnd.setYMDHMS((short)yy, (short)mm, (short)dd, (short)hh, (short)minu, (double)ss);
+ }
+ else
+ {
+ DayTime tFile(ephStore.getFinalTime()); //extra code b/c sscanf reads in int's but setYMDHMS needs shorts
+ short year = tFile.year();
+ short month = tFile.month();
+ short day = tFile.day();
+ short hour = tFile.hour();
+ short minute = tFile.minute();
+ double ss = tFile.second();
+ tEnd.setYMDHMS(year,month,day,hour,minute,ss);
+ }
+
+ cout << setw(20) << left << " Start Time: "
+ << tStart << endl;
+ cout << setw(20) << left << " End Time: "
+ << tEnd << endl;
+ cout << setw(20) << left << " PRN: "
+ << myprn << endl << endl;
+ cout << " Prn " << myprn
+ << " Earth-fixed position and clock information:"
+ << endl << endl;
+ cout << setw(20) << left << " Date Time(UTC) "
+ << setw(20) << " X (meters)"
+ << setw(20) << " Y (meters)"
+ << setw(20) << " Z (meters)"
+ << setw(20) << " Clock Correc (s)"
+ << endl;
+ cout << setw(98) << setfill('=') << " =" << endl;
+ cout.width(0);
+ cout.fill(' ');
+
+ DayTime t = tStart;
+
+ SatID sat(myprn,SatID::systemGPS);
+
+ int count = 0;
+ while (t < tEnd)
+ {
+ try
+ {
+ Xvt BCPVT = ephStore.getSatXvt(sat, t);
+ cout << " " << left << setw(20) << t
+ << fixed
+ << " " << left << setw(20) << BCPVT.x[0]
+ << " " << left << setw(20) << BCPVT.x[1]
+ << " " << left << setw(20) << BCPVT.x[2]
+ << " " << left << setw(20) << BCPVT.dtime << endl;
+ count++;
+ }
+ catch (gpstk::EphemerisStore::NoEphemerisFound& e) { ; }
+ t += incr;
+ }
+ if (PositionOption.getCount())
+ {
+ ECEF rxPos = Triple(ANTPVT.x);
+ cout << endl << endl;
+ cout << " Data for user reference frame:" << endl << endl;;
+ cout << setw(20) << left << " Date Time(UTC) "
+ << setw(15) << " Azimuth"
+ << setw(15) << " Elevation"
+ << setw(15) << " Range to SV (m)"
+ << endl;
+ cout << setw(70) << setfill('=') << " =" << endl;
+ cout.width(0);
+ cout.fill(' ');
+ t = tStart;
+
+ while (t < tEnd)
+ {
+ try
+ {
+ Xvt BCPVT = ephStore.getSatXvt(sat, t);
+ WGS84Geoid geoid;
+ double correction = (BCPVT.dtime) * (geoid.c());
+ cout << fixed
+ << " " << left << setw(20) <<t
+ << " " << left << setw(15) << ANTPVT.x.azAngle(BCPVT.x)
+ << " " << left << setw(15) << ANTPVT.x.elvAngle(BCPVT.x)
+ << " " << left << setw(15) << BCPVT.preciseRho(rxPos, geoid, correction)
+ << endl;
+ }
+ catch (gpstk::Exception& e) {;}
+ t += incr;
+ }
+ }
+
+ if (MatlabOption.getCount())
+ {
+ t = tStart;
+ while (t < tEnd)
+ {
+ try
+ {
+ Xvt BCPVT = ephStore.getSatXvt(sat, t);
+ WGS84Geoid geoid;
+ double correction = (BCPVT.dtime) * (geoid.c());
+
+ ofs << fixed
+ << left << setw(6) <<t.GPSfullweek()
+ << " " << left << setw(8) << t.GPSsecond()
+ << " " << left << setw(20) << BCPVT.x[0]
+ << " " << left << setw(20) << BCPVT.x[1]
+ << " " << left << setw(20) << BCPVT.x[2]
+ << " " << left << setw(10) << BCPVT.dtime;
+ if (PositionOption.getCount())
+ {
+ ofs << fixed
+ << " " << left << setw(15) << ANTPVT.x.azAngle(BCPVT.x)
+ << " " << left << setw(15) << ANTPVT.x.elvAngle(BCPVT.x)
+ << " " << left << setw(15) << BCPVT.preciseRho(Triple(ANTPVT.x), geoid, correction);
+ }
+ ofs << endl;
+ }
+ catch (gpstk::Exception& e) { ; }
+ t += incr;
+ }
+ }
+
+ if (count==0) { cout << endl << endl << " No epochs for prn " << myprn << "!" << endl << endl; }
+ else { cout << endl << " Calculated " << count << " increments for prn " << myprn << " ." << endl<< endl << endl; }
+
+ ofs.close();
+ exit(0);
+
+}
+
diff --git a/dev/apps/visibility/findMoreThan12.cpp b/dev/apps/visibility/findMoreThan12.cpp
new file mode 100644
index 0000000..637c866
--- /dev/null
+++ b/dev/apps/visibility/findMoreThan12.cpp
@@ -0,0 +1,189 @@
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iostream>
+#include <iomanip>
+
+#include "DayTime.hpp"
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+#include "EphReader.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char *argv[])
+{
+ CommandOptionNoArg
+ helpOption('h',"help", "Print help usage."),
+ verboseOption('v',"verbose","Increase verbosity.");
+
+ CommandOptionWithAnyArg
+ ephFiles('e',"eph-files","Ephemeris source file(s). Can be RINEX nav, SP3, or FIC.",true),
+ antennaPosition('p',"position","Antenna position in ECEF (x,y,z) coordinates. Format as a string: \"X Y Z\".",true);
+
+ CommandOptionWithNumberArg
+ minElev('m',"min-elev","Give an integer for the elevation (degrees) above which you want to find more than 12 SVs at a given time.", true);
+
+ CommandOptionParser cop("Find when there are simultaneously more than 12 SVs above a given elevation.");
+ cop.parseOptions(argc, argv);
+
+ // verify that the correct input was given
+ if (helpOption.getCount())
+ {
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ // output intermediate info?
+ bool verbose = false;
+ if (verboseOption.getCount()) { verbose = true; }
+
+ // get the minimum elevation
+ int minEl = gpstk::StringUtils::asInt((minElev.getValue())[0]);
+ if (minEl < 0 )
+ {
+ cout << "Please enter a positive elevation. " << endl;
+ exit(0);
+ }
+
+ // get the ephemeris source(s)
+ EphReader ephReader;
+ ephReader.verboseLevel = verbose;
+ for (int i=0; i<ephFiles.getCount(); i++)
+ ephReader.read(ephFiles.getValue()[i]);
+
+ gpstk::EphemerisStore& ephStore = *ephReader.eph;
+
+ // get the antenna position
+ Xvt antPVT;
+ double x,y,z;
+ sscanf(antennaPosition.getValue().front().c_str(),"%lf %lf %lf", &x, &y, &z);
+ antPVT.x[0] = x; antPVT.x[1] = y; antPVT.x[2] = z;
+ ECEF antPos = Triple(antPVT.x);
+
+ // get initial and final times for analysis. extra code b/c sscanf reads in int's but setYMDHMS needs shorts
+ short year, month, day, hour, minute;
+ double seconds;
+
+ DayTime tStartDT = ephStore.getInitialTime();
+ year = tStartDT.year();
+ month = tStartDT.month();
+ day = tStartDT.day();
+ hour = tStartDT.hour();
+ minute = tStartDT.minute();
+ seconds = tStartDT.second();
+ DayTime tstart;
+ tstart.setYMDHMS(year,month,day,hour,minute,seconds);
+
+ DayTime tEndDT = ephStore.getFinalTime();
+ year = tEndDT.year();
+ month = tEndDT.month();
+ day = tEndDT.day();
+ hour = tEndDT.hour();
+ minute = tEndDT.minute();
+ seconds = tEndDT.second();
+ DayTime tend;
+ tend.setYMDHMS(year,month,day,hour,minute,seconds);
+
+ DayTime t = tstart;
+
+ cout << "Start Time: " << tstart << " End Time: " << tend << endl;
+
+ while (t < tend)
+ {
+ short numSVsAboveElv = 0;
+ short prn = 1;
+ while (prn <= gpstk::MAX_PRN)
+ {
+ Xvt peXVT;
+ bool NoEph = false;
+ try
+ {
+ peXVT = ephStore.getPrnXvt(prn,t);
+ }
+ catch(gpstk::Exception& e)
+ {
+ if (verbose) {cout << e << endl;}
+ NoEph = true;
+ }
+ double elvAngle = 0;
+ if (!NoEph)
+ {
+ try {elvAngle = antPVT.x.elvAngle(peXVT.x);}
+ catch(gpstk::Exception& e) {if (verbose) {cout << e << endl;}}
+ if ( elvAngle > minEl ) { numSVsAboveElv++; }
+ }
+ prn++;
+ }
+ if (numSVsAboveElv > 12)
+ {
+ cout << "Found " << numSVsAboveElv << " SVs above " << minEl << " degrees at " << t << endl;
+ prn = 1;
+ while (prn < gpstk::MAX_PRN)
+ {
+ bool NoEph = false;
+ Xvt peXVT;
+ try
+ {
+ peXVT = ephStore.getPrnXvt(prn,t);
+ }
+ catch(gpstk::Exception& e) {NoEph = true;}
+ double elvAngle = 0;
+ if (!NoEph)
+ {
+ try {elvAngle = antPVT.x.elvAngle(peXVT.x);}
+ catch(gpstk::Exception& e) {if (verbose) {cout << e << endl;}}
+ if ( elvAngle > 0 ) { cout << t << " - PRN " << prn << " at " << elvAngle << " degrees elevation. " << endl; }
+ }
+ prn++;
+ }
+ }
+ t += 10;
+ }
+ exit(0);
+}
+
+
+
+
diff --git a/dev/autogen.sh b/dev/autogen.sh
new file mode 100755
index 0000000..5b41a09
--- /dev/null
+++ b/dev/autogen.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+export AUTOCONF_VERSION=2.60
+export AUTOMAKE_VERSION=1.9
+
+autoreconf
+
diff --git a/dev/config.guess b/dev/config.guess
new file mode 100755
index 0000000..892833f
--- /dev/null
+++ b/dev/config.guess
@@ -0,0 +1,1459 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-02-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Per Bothner <per at bothner.com>.
+# Please send patches to <config-patches at gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi at noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amd64:OpenBSD:*:*)
+ echo x86_64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ cats:OpenBSD:*:*)
+ echo arm-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ luna88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mips64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit 0 ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && exit 0
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+ exit 0 ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ amd64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit 0 ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit 0 ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit 0 ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel at ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes at openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf at swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green at stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ *86) UNAME_PROCESSOR=i686 ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit 0 ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms && exit 0 ;;
+ I*) echo ia64-dec-vms && exit 0 ;;
+ V*) echo vax-dec-vms && exit 0 ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ ftp://ftp.gnu.org/pub/gnu/config/
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches at gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/dev/config.sub b/dev/config.sub
new file mode 100755
index 0000000..d8fd2f8
--- /dev/null
+++ b/dev/config.sub
@@ -0,0 +1,1566 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-02-10'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Please send patches to <config-patches at gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches at gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit 0;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | msp430 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv8 | sparcv9 | sparcv9b \
+ | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* \
+ | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | msp430-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ or32 | or32-*)
+ basic_machine=or32-unknown
+ os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/dev/configure.ac b/dev/configure.ac
new file mode 100644
index 0000000..b1ba048
--- /dev/null
+++ b/dev/configure.ac
@@ -0,0 +1,69 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT([GPSTK], [1.2], [http://www.gpstk.org/], [gpstk])
+AM_INIT_AUTOMAKE([1.7.6 foreign])
+AC_CONFIG_SRCDIR([src/DayTime.hpp])
+
+# Checks for programs.
+AC_LANG([C++])
+AC_PROG_CXX
+AC_PROG_CC
+
+# Checks for libraries.
+AC_PROG_LIBTOOL
+
+# Checks for header files.
+AC_FUNC_ALLOCA
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_CHECK_HEADERS([libintl.h stddef.h stdlib.h string.h strings.h sys/param.h sys/time.h sys/timeb.h unistd.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_HEADER_STDBOOL
+AC_C_CONST
+AC_C_INLINE
+AC_TYPE_SIZE_T
+AC_HEADER_TIME
+AC_STRUCT_TM
+
+# Checks for library functions.
+AC_FUNC_CLOSEDIR_VOID
+AC_FUNC_ERROR_AT_LINE
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_FUNC_STAT
+AC_FUNC_STRTOD
+AC_CHECK_FUNCS([bzero floor ftime getcwd gettimeofday memset mkdir modf pow re_comp regcomp sqrt strstr strtol strtoul])
+
+AC_CONFIG_FILES([Makefile
+ lib/Makefile
+ lib/rxio/Makefile
+ src/Makefile
+ apps/Makefile
+ apps/DataAvailability/Makefile
+ apps/MDPtools/Makefile
+ apps/Rinextools/Makefile
+ apps/checktools/Makefile
+ apps/converters/Makefile
+ apps/differential/Makefile
+ apps/difftools/Makefile
+ apps/filetools/Makefile
+ apps/geomatics/Makefile
+ apps/geomatics/cycleslips/Makefile
+ apps/geomatics/kalman/Makefile
+ apps/geomatics/lib/Makefile
+ apps/geomatics/relposition/Makefile
+ apps/geomatics/robust/Makefile
+ apps/ionosphere/Makefile
+ apps/mergetools/Makefile
+ apps/multipath/Makefile
+ apps/positioning/Makefile
+ apps/receiver/Makefile
+ apps/reszilla/Makefile
+ apps/time/Makefile
+ apps/visibility/Makefile
+ tests/Makefile
+ examples/Makefile])
+AC_OUTPUT
diff --git a/dev/depcomp b/dev/depcomp
new file mode 100755
index 0000000..ffcd540
--- /dev/null
+++ b/dev/depcomp
@@ -0,0 +1,529 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2005-02-09.22
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva at dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by `PROGRAMS ARGS'.
+ object Object file output by `PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputing dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake at gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'. On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like `#:fec' to the end of the
+ # dependency line.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> $depfile
+ echo >> $depfile
+
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> $depfile
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts `$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+ tmpdepfile="$stripped.u"
+ if test "$libtool" = yes; then
+ "$@" -Wc,-M
+ else
+ "$@" -M
+ fi
+ stat=$?
+
+ if test -f "$tmpdepfile"; then :
+ else
+ stripped=`echo "$stripped" | sed 's,^.*/,,'`
+ tmpdepfile="$stripped.u"
+ fi
+
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+
+ if test -f "$tmpdepfile"; then
+ outname="$stripped.o"
+ # Each line is of the form `foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands `-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in `foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mecanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for `:'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+ "$@" $dashmflag |
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no
+ for arg in "$@"; do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix="`echo $object | sed 's/^.*\././'`"
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test $1 != '--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove `-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E |
+ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o,
+ # because we must use -o when running libtool.
+ "$@" || exit $?
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$depfile"
+ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/dev/examples/Jamfile b/dev/examples/Jamfile
new file mode 100644
index 0000000..3012f08
--- /dev/null
+++ b/dev/examples/Jamfile
@@ -0,0 +1,21 @@
+#
+# $Id: //depot/sgl/gpstk/dev/examples/Jamfile#1 $
+#
+
+SubDir TOP examples ;
+
+GPSLinkLibraries RungeKuttaTest example1 example2 example3 example4 example5 example6 example7 : gpstk ;
+
+# Note that we use the Main rule here as opposed to the GPSMain rule. That is
+# to prevent these binaries from getting installed as part of the Jam install
+# commnad
+Main example1 : example1.cpp ;
+Main example2 : example2.cpp ;
+Main example3 : example3.cpp ;
+Main example4 : example4.cpp ;
+Main example5 : example5.cpp ;
+Main example6 : example6.cpp ;
+Main example7 : example7.cpp ;
+
+# SubInclude TOP examples foo ;
+
diff --git a/dev/examples/Makefile.am b/dev/examples/Makefile.am
new file mode 100644
index 0000000..adbe5fa
--- /dev/null
+++ b/dev/examples/Makefile.am
@@ -0,0 +1,14 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../src
+LDADD = ../src/libgpstk.la
+
+bin_PROGRAMS = example1 example2 example3 example4 example5 example6 example7
+example1_SOURCES = example1.cpp
+example2_SOURCES = example2.cpp
+example3_SOURCES = example3.cpp
+example4_SOURCES = example4.cpp
+example5_SOURCES = example5.cpp
+example6_SOURCES = example6.cpp
+example7_SOURCES = example7.cpp
+
+EXTRA_DIST = bahr1620.04m bahr1620.04o bahr1620.04n ebre030a.02o bell030a.02o brdc0300.02n
diff --git a/trunk/examples/bahr1620.04m b/dev/examples/bahr1620.04m
similarity index 100%
rename from trunk/examples/bahr1620.04m
rename to dev/examples/bahr1620.04m
diff --git a/trunk/examples/bahr1620.04n b/dev/examples/bahr1620.04n
similarity index 100%
rename from trunk/examples/bahr1620.04n
rename to dev/examples/bahr1620.04n
diff --git a/trunk/examples/bahr1620.04o b/dev/examples/bahr1620.04o
similarity index 100%
rename from trunk/examples/bahr1620.04o
rename to dev/examples/bahr1620.04o
diff --git a/dev/examples/bell030a.02o b/dev/examples/bell030a.02o
new file mode 100644
index 0000000..2f24289
--- /dev/null
+++ b/dev/examples/bell030a.02o
@@ -0,0 +1,3185 @@
+ 2.00 Observation G (GPS) RINEX VERSION / TYPE
+TRRINEXO V2.9.7 LHm ICC 07/12/2007 18:08:36 PGM / RUN BY / DATE
+BELL MARKER NAME
+ICC ICC OBSERVER / AGENCY
+18091 TRIMBLE 4000SSI 7.29 / 3.07 REC # / TYPE / VERS
+0220080346 TRM29659.00 ANT # / TYPE
+ 4775849.6200 116814.1000 4213018.7100 APPROX POSITION XYZ
+ 0.0540 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 5 C1 L1 L2 P2 P1 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2002 1 30 11 0 29.9950000 GPS TIME OF FIRST OBS
+13431M001 MARKER NUMBER
+Edited by GPSTK Rinex Editor ver 3.0 9/8/2003 on 2007/07/12 COMMENT
+ END OF HEADER
+ 02 1 30 11 0 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20397114.891 -19655975.257 7 -15095425.36346 20397126.8904 0.000
+ 19338500.858 -25472810.456 8 -19203792.46747 19338510.5254 0.000
+ 22749194.566 -8827185.247 5 -6674064.60845 22749212.3644 0.000
+ 21164050.992 1981515.126 6 1575399.48346 21164062.8364 0.000
+ 22162836.803 -10299397.421 5 155786.74945 22162853.6704 0.000
+ 21899740.240 -12273004.299 6 -9368157.96346 21899753.1654 0.000
+ 21021187.498 2688633.192 6 2106892.52246 21021199.5004 0.000
+ 18858085.545 -25226872.976 6 -19452479.91847 18858094.4974 0.000
+ 02 1 30 11 0 59.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20407961.882 -19598974.384 7 -15051009.19646 20407974.1814 0.000
+ 19330416.234 -25515295.392 6 -19236897.58247 19330425.5734 0.000
+ 22768021.754 -8728249.660 4 -6596972.42345 22768040.8954 0.000
+ 21173375.034 2030513.115 6 1613579.63146 21173386.6644 0.000
+ 22165724.131 -10284224.786 5 167609.55146 22165739.9394 0.000
+ 21881495.679 -12368879.693 6 -9442865.95846 21881507.8004 0.000
+ 21031322.649 2741892.920 6 2148393.47146 21031334.4334 0.000
+ 18859520.788 -25219330.834 6 -19446602.95247 18859529.5094 0.000
+ 02 1 30 11 1 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20418844.857 -19541784.580 7 -15006445.83646 20418856.4014 0.000
+ 19322419.212 -25557320.044 6 -19269644.04947 19322428.3834 0.000
+ 22786874.774 -8629178.252 3 -6519774.39745 22786891.1694 0.000
+ 21182786.090 2079967.907 7 1652115.71546 21182797.8544 0.000
+ 22168715.927 -10268503.361 6 179859.98345 22168731.9464 0.000
+ 21863287.563 -12464563.608 6 -9517424.74546 21863299.2334 0.000
+ 21041539.004 2795579.005 7 2190226.65446 21041551.4514 0.000
+ 18861014.687 -25211480.438 6 -19440485.78247 18861023.8394 0.000
+ 02 1 30 11 1 59.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20429763.182 -19484408.887 7 -14961737.61446 20429774.7744 0.000
+ 19314509.338 -25598886.677 8 -19302033.59947 19314518.7614 0.000
+ 22805752.902 -8529975.046 4 -6442473.70845 22805767.0394 0.000
+ 21192283.171 2129874.270 6 1691003.68946 21192293.5524 0.000
+ 22171811.501 -10252236.376 6 192535.54845 22171825.7904 0.000
+ 21845115.840 -12560056.112 6 -9591834.38946 21845127.9524 0.000
+ 21051835.426 2849686.276 6 2232388.03846 21051846.9694 0.000
+ 18862566.733 -25203324.454 6 -19434130.50247 18862575.5944 0.000
+ 02 1 30 11 2 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20440715.890 -19426852.482 7 -14916888.59246 20440728.0074 0.000
+ 19306685.784 -25639999.534 7 -19334069.56847 19306695.0214 0.000
+ 22824654.863 -8430646.474 3 -6365075.25244 22824682.4274 0.000
+ 21201864.760 2180225.378 6 1730238.18046 21201874.8364 0.000
+ 22175009.838 -10235428.869 6 205632.28345 22175026.5454 0.000
+ 21826979.906 -12655360.400 6 -9666097.35846 21826992.7604 0.000
+ 21062210.578 2904207.686 6 2274872.10046 21062222.5794 0.000
+ 18864176.073 -25194867.470 6 -19427540.68147 18864184.8084 0.000
+ 02 1 30 11 2 59.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20451704.457 -19369107.437 7 -14871892.55146 20451716.4994 0.000
+ 19298950.200 -25680650.180 7 -19365745.38047 19298959.6334 0.000
+ 22843581.854 -8331185.788 2 -6287574.05144 22843603.9274 0.000
+ 21211531.874 2231026.914 6 1769823.67146 21211542.2884 0.000
+ 22178312.476 -10218073.251 6 219156.10045 22178329.1964 0.000
+ 21808881.943 -12750465.317 6 -9740204.97646 21808895.5904 0.000
+ 21072665.634 2959148.994 6 2317683.39746 21072677.2274 0.000
+ 18865844.209 -25186101.497 6 -19420710.07347 18865853.0644 0.000
+ 02 1 30 11 3 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20462728.853 -19311174.187 7 -14826749.88646 20462740.3234 0.000
+ 19291302.567 -25720838.503 7 -19397060.93947 19291312.0764 0.000
+ 22862533.760 -8231594.778 2 -6209971.20944 22862554.9234 0.000
+ 21221284.318 2282276.238 6 1809758.08946 21221295.6604 0.000
+ 22181719.352 -10200170.035 5 233106.62545 22181735.2574 0.000
+ 21790822.279 -12845369.003 6 -9814155.76946 21790834.2074 0.000
+ 21083200.051 3014507.304 6 2360819.59546 21083211.9494 0.000
+ 18867571.073 -25177026.838 6 -19413638.95547 18867579.8094 0.000
+ 02 1 30 11 3 59.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20473787.647 -19253060.372 7 -14781466.48946 20473799.6404 0.000
+ 19283741.595 -25760571.479 7 -19428021.67447 19283751.3264 0.000
+ 22881508.895 -8131881.895 2 -6132273.33445 22881526.2804 0.000
+ 21231120.341 2333964.042 6 1850034.17846 21231131.3774 0.000
+ 22185228.995 -10181726.860 5 247477.90145 22185244.1454 0.000
+ 21772800.019 -12940076.219 6 -9887953.48946 21772812.4784 0.000
+ 21093811.844 3070273.069 6 2404273.30446 21093824.7674 0.000
+ 18869355.331 -25167650.668 6 -19406332.89547 18869364.8604 0.000
+ 02 1 30 11 4 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20484881.615 -19194761.660 7 -14736039.04746 20484893.5374 0.000
+ 19276268.275 -25799843.992 6 -19458623.62047 19276278.0144 0.000
+ 22900507.882 -8032043.752 3 -6054477.97443 22900523.4564 0.000
+ 21241040.214 2386092.673 6 1890653.76246 21241052.3544 0.000
+ 22188842.219 -10162739.453 5 262273.22245 22188858.0694 0.000
+ 21754816.528 -13034579.744 6 -9961592.46446 21754828.1894 0.000
+ 21104501.745 3126448.525 6 2448046.24046 21104513.7504 0.000
+ 18871197.872 -25157968.218 6 -19398788.16347 18871206.2654 0.000
+ 02 1 30 11 4 59.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20496010.526 -19136279.196 7 -14690468.40246 20496022.4984 0.000
+ 19268882.479 -25838656.656 7 -19488867.23547 19268892.2404 0.000
+ 22919530.229 -7932082.927 2 0.000 0.000 0.000
+ 21251043.299 2438658.754 6 1931614.22946 21251055.0504 0.000
+ 22192558.760 -10143209.060 5 277491.67645 22192574.7014 0.000
+ 21736872.053 -13128878.285 6 -10035071.76446 21736883.8424 0.000
+ 21115269.012 3183030.316 6 2492135.80246 21115281.6194 0.000
+ 18873098.523 -25147980.386 6 -19391005.47847 18873107.7614 0.000
+ 02 1 30 11 5 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20507173.921 -19077615.545 7 -14644756.58946 20507185.6654 0.000
+ 19261583.789 -25877011.560 7 -19518754.15747 19261593.8494 0.000
+ 21261128.624 2491657.562 6 1972911.90346 21261139.8154 0.000
+ 22196378.030 -10123138.834 5 293130.76145 22196394.8654 0.000
+ 21718966.539 -13222971.652 6 -10108391.14846 21718979.3234 0.000
+ 21126112.646 3240013.507 6 2536538.15346 21126126.0454 0.000
+ 18875056.869 -25137689.433 6 -19382986.58047 18875066.0144 0.000
+ 02 1 30 11 5 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20518370.689 -19018776.460 7 -14598908.06946 20518382.6714 0.000
+ 19254371.193 -25914913.946 7 -19548288.47747 19254380.6874 0.000
+ 21271294.954 2545081.262 7 2014540.62546 21271305.9924 0.000
+ 22200298.949 -10102534.753 5 309185.82545 22200315.9184 0.000
+ 21701099.530 -13316862.663 6 -10181552.85346 21701112.9974 0.000
+ 21137031.262 3297390.254 6 2581247.14246 21137043.8794 0.000
+ 18877071.800 -25127101.014 6 -19374735.92047 18877080.7144 0.000
+ 02 1 30 11 6 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20529601.561 -18959758.344 7 -14552920.04046 20529614.2514 0.000
+ 19247245.505 -25952359.712 6 -19577466.98747 19247255.0144 0.000
+ 21281542.520 2598931.373 6 2056501.61446 21281554.2254 0.000
+ 22204322.177 -10081393.092 6 325659.79445 22204338.1404 0.000
+ 21683272.217 -13410545.536 6 -10254552.41346 21683284.2524 0.000
+ 21148024.928 3355161.860 6 2626263.82046 21148037.9984 0.000
+ 18879144.091 -25116211.202 6 -19366250.38747 18879153.5234 0.000
+ 02 1 30 11 6 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20540867.569 -18900555.608 7 -14506788.17846 20540879.9254 0.000
+ 19240207.923 -25989342.585 6 -19606284.79747 19240217.4484 0.000
+ 21291871.718 2653211.413 6 2098797.66646 21291883.4084 0.000
+ 22208448.581 -10059708.850 6 342556.53245 22208465.0714 0.000
+ 21665486.163 -13504011.738 6 -10327383.12446 21665498.2814 0.000
+ 21159094.356 3413331.721 6 2671590.88346 21159107.0354 0.000
+ 18881274.889 -25105014.003 6 -19357525.33747 18881283.1684 0.000
+ 02 1 30 11 7 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20552167.222 -18841175.965 7 -14460518.43546 20552179.5984 0.000
+ 19233257.047 -26025869.675 6 -19634747.44147 19233266.3864 0.000
+ 21302280.827 2707911.469 6 2141420.97646 21302292.0634 0.000
+ 22212676.741 -10037489.729 5 359870.06345 22212694.6644 0.000
+ 21647740.376 -13597266.053 6 -10400048.68546 21647753.1664 0.000
+ 21170237.812 3471890.049 6 2717220.59046 21170249.6264 0.000
+ 18883462.749 -25093516.912 6 -19348566.59947 18883471.6864 0.000
+ 02 1 30 11 7 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20563501.300 -18781615.384 7 -14414107.71946 20563513.9204 0.000
+ 19226393.768 -26061936.453 6 -19662851.39847 19226402.9024 0.000
+ 21312770.266 2763033.380 6 2184372.98946 21312781.7614 0.000
+ 22217007.456 -10014731.934 6 377603.32945 22217024.0434 0.000
+ 21630036.161 -13690301.901 6 -10472544.00046 21630049.4264 0.000
+ 21181455.452 3530838.586 6 2763154.34446 21181467.7774 0.000
+ 18885708.514 -25081715.426 6 -19339370.67547 18885717.1154 0.000
+ 02 1 30 11 8 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20574870.459 -18721870.447 7 -14367553.34346 20574882.8754 0.000
+ 19219618.792 -26097539.183 6 -19690593.77047 19219627.4154 0.000
+ 23053299.603 16796.93412 0.000 0.000 0.000
+ 21323340.373 2818578.701 6 2227654.91246 21323350.9924 0.000
+ 22221441.237 -9991432.476 5 395758.68145 22221458.0324 0.000
+ 21612374.764 -13783112.970 6 -10544864.18946 21612387.1084 0.000
+ 21192747.389 3590178.115 6 2809392.81146 21192759.5974 0.000
+ 18888012.886 -25069605.989 6 -19329934.78447 18888021.7324 0.000
+ 02 1 30 11 8 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20586272.796 -18661951.294 7 -14320863.22446 20586285.4934 0.000
+ 19212930.269 -26132687.456 7 -19717982.01247 19212939.3654 0.000
+ 21333988.690 2874535.005 6 2271257.08846 21333999.9194 0.000
+ 22225976.025 -9967602.308 5 414327.54945 22225992.4494 0.000
+ 21594754.534 -13875707.261 6 -10617015.42246 21594766.6364 0.000
+ 21204111.615 3649896.748 6 2855926.64046 21204124.4984 0.000
+ 18890374.017 -25057198.354 6 -19320266.52247 18890382.7754 0.000
+ 02 1 30 11 9 29.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 20597709.604 -18601850.985 7 -14274031.94846 20597722.1354 0.000
+ 19206329.616 -26167373.826 7 -19745010.32347 19206339.0834 0.000
+ 23091712.582 77421.30512 0.000 0.000 0.000
+ 21344715.887 2930906.756 6 2315183.01846 21344728.2024 0.000
+ 22230613.229 -9943234.109 5 433315.65745 22230629.4634 0.000
+ 21577177.492 -13968074.591 6 -10688989.84946 21577189.8814 0.000
+ 21215548.801 3709998.706 6 2902759.16746 21215562.6274 0.000
+ 18892793.229 -25044485.438 6 -19310360.39647 18892802.5054 0.000
+ 02 1 30 11 9 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20609179.959 -18541574.315 7 -14227063.24646 20609192.4744 0.000
+ 19199816.054 -26201602.664 7 -19771682.11347 19199825.6474 0.000
+ 21355520.832 2987687.086 6 2359427.29646 21355532.3894 0.000
+ 22235351.728 -9918333.319 5 452718.76145 22235369.2364 0.000
+ 21559643.262 -14060217.013 6 -10760789.01946 21559655.7824 0.000
+ 21227057.643 3770477.172 6 2949885.05346 21227070.0744 0.000
+ 18895269.726 -25031471.634 6 -19300219.79247 18895278.8064 0.000
+ 02 1 30 11 10 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20620683.768 -18481122.104 7 -14179957.75546 20620696.9254 0.000
+ 19193389.543 -26235374.161 7 -19797997.54347 19193399.2504 0.000
+ 21366403.032 3044873.323 6 2403987.85846 21366415.7814 0.000
+ 22240191.334 -9892901.143 5 472535.98345 22240207.3744 0.000
+ 21542152.096 -14152133.072 6 -10832411.79046 21542164.2634 0.000
+ 21238637.417 3831328.938 6 2997301.86446 21238651.3014 0.000
+ 18897803.350 -25018157.500 6 -19289845.17747 18897811.6994 0.000
+ 02 1 30 11 10 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20632220.780 -18420495.404 7 -14132716.28946 20632233.2484 0.000
+ 19187049.916 -26268689.079 6 -19823957.19047 19187059.4984 0.000
+ 21377361.913 3102461.862 6 2448861.89746 21377374.9854 0.000
+ 22245131.689 -9866939.456 5 492765.77845 22245150.4324 0.000
+ 21524704.437 -14243820.930 6 -10903856.77646 21524716.0244 0.000
+ 21250287.595 3892550.560 6 3045006.82646 21250301.6684 0.000
+ 18900393.976 -25004543.804 6 -19279237.12547 18900403.2344 0.000
+ 02 1 30 11 11 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20643792.249 -18359687.437 7 -14085333.61546 20643805.4124 0.000
+ 19180798.533 -26301540.373 6 -19849555.58647 19180807.7834 0.000
+ 21388398.190 3160457.156 6 2494052.89246 21388410.3424 0.000
+ 22250174.029 -9840441.863 5 513413.16745 22250191.5864 0.000
+ 21507302.031 -14335270.980 6 -10975116.46146 21507312.2894 0.000
+ 21262008.882 3954146.322 6 3093003.36246 21262022.1694 0.000
+ 18903042.889 -24990623.620 6 -19268390.25047 18903051.5264 0.000
+ 02 1 30 11 11 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20655397.695 -18298701.027 7 -14037811.85646 20655410.6654 0.000
+ 19174634.888 -26333930.573 6 -19874794.67747 19174644.6254 0.000
+ 21399510.853 3218854.083 6 2539556.87246 21399522.2474 0.000
+ 22255317.762 -9813411.760 5 534475.57745 22255334.5154 0.000
+ 21489944.943 -14426483.057 6 -11046190.69746 21489954.9854 0.000
+ 21273800.578 4016111.047 6 3141287.40246 21273812.5674 0.000
+ 18905749.690 -24976399.461 6 -19257306.54847 18905758.8064 0.000
+ 02 1 30 11 12 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20667037.345 -18237534.612 7 -13990149.84146 20667049.5574 0.000
+ 19168559.291 -26365857.836 7 -19899673.03747 19168568.9464 0.000
+ 21410699.866 3277652.022 6 2585373.31346 21410711.6164 0.000
+ 22260563.106 -9785847.739 5 555953.94645 22260577.5404 0.000
+ 21472633.778 -14517453.380 6 -11117076.53346 21472644.2674 0.000
+ 21285662.270 4078443.908 6 3189858.33846 21285673.8074 0.000
+ 18908514.620 -24961869.606 6 -19245984.57247 18908523.7804 0.000
+ 02 1 30 11 12 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20678710.713 -18176190.950 7 -13942349.74846 20678723.6344 0.000
+ 19162571.372 -26397324.419 6 -19924192.42647 19162580.6424 0.000
+ 21421964.219 3336845.767 6 2631498.17546 21421975.9114 0.000
+ 22265909.472 -9757753.239 5 577845.69645 22265924.8904 0.000
+ 21455368.532 -14608182.047 6 -11187774.06046 21455379.5214 0.000
+ 21297593.157 4141139.901 6 3238712.13546 21297605.5694 0.000
+ 18911337.293 -24947036.470 6 -19234426.35847 18911346.4974 0.000
+ 02 1 30 11 13 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20690416.740 -18114675.763 7 -13894415.95746 20690429.4214 0.000
+ 19156670.118 -26428335.635 6 -19948356.99647 19156678.9904 0.000
+ 21433302.381 3396427.449 6 2677925.32146 21433313.6054 0.000
+ 22271355.535 -9729134.452 5 600145.99845 22271371.8144 0.000
+ 21438148.777 -14698671.683 6 -11258285.36546 21438160.7174 0.000
+ 21309591.476 4204190.881 6 3287842.58446 21309605.4044 0.000
+ 18914216.670 -24931905.423 6 -19222635.93347 18914226.2474 0.000
+ 02 1 30 11 13 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20702155.350 -18052989.658 7 -13846349.00846 20702168.5064 0.000
+ 19150855.452 -26458891.800 6 -19972166.97847 19150864.3144 0.000
+ 21444713.720 3456394.296 6 2724652.59546 21444726.5714 0.000
+ 22276901.026 -9699993.115 6 622853.51045 22276916.0474 0.000
+ 21420974.937 -14788920.129 6 -11328608.75046 21420986.7074 0.000
+ 21321656.802 4267593.916 6 3337247.38846 21321670.6754 0.000
+ 18917152.703 -24916476.684 6 -19210613.60047 18917161.3694 0.000
+ 02 1 30 11 14 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20713927.691 -17991126.322 7 -13798143.92846 20713940.5614 0.000
+ 19145128.622 -26488986.348 7 -19995617.25447 19145137.1044 0.000
+ 21456199.189 3516750.035 6 2771682.86546 21456211.4814 0.000
+ 22282547.072 -9670322.880 5 645973.11245 22282564.7534 0.000
+ 21403848.632 -14878918.814 6 -11398737.49546 21403861.3954 0.000
+ 21333789.888 4331352.832 6 3386929.46146 21333803.5454 0.000
+ 18920146.600 -24900743.937 6 -19198354.33947 18920155.9794 0.000
+ 02 1 30 11 14 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20725731.768 -17929096.111 7 -13749808.84346 20725745.2044 0.000
+ 19139487.709 -26518629.487 7 -20018715.78547 19139496.7154 0.000
+ 21467756.133 3577482.067 6 2819006.38946 21467768.6004 0.000
+ 22288291.675 -9640134.769 5 669496.27845 22288307.4564 0.000
+ 21386768.455 -14968675.232 6 -11468677.47446 21386780.1174 0.000
+ 21345988.239 4395454.870 6 3436878.87346 21346000.9364 0.000
+ 18923196.427 -24884717.180 6 -19185865.99247 18923205.0134 0.000
+ 02 1 30 11 15 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20737568.773 -17866892.916 7 -13701338.98546 20737582.0564 0.000
+ 19133933.922 -26547814.783 6 -20041457.56147 19133943.4104 0.000
+ 21479385.443 3638594.266 6 2866626.13746 21479395.5034 0.000
+ 22294135.934 -9609423.252 6 693427.24445 22294153.2984 0.000
+ 21369736.174 -15058180.174 6 -11538421.49146 21369747.5984 0.000
+ 21358252.554 4459903.524 6 3487098.41046 21358265.7264 0.000
+ 18926303.390 -24868390.092 6 -19173143.62447 18926312.9304 0.000
+ 02 1 30 11 15 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20749438.548 -17804517.539 7 -13652734.92046 20749451.1474 0.000
+ 19128467.141 -26576542.833 6 -20063843.03447 19128476.5704 0.000
+ 21491086.558 3700083.108 6 2914539.35746 21491098.1174 0.000
+ 22300079.448 -9578190.548 6 717764.36445 22300097.2804 0.000
+ 21352752.034 -15147432.049 6 -11607968.29946 21352763.9744 0.000
+ 21370582.190 4524695.588 6 3537585.52146 21370594.6714 0.000
+ 18929467.405 -24851763.146 6 -19160187.60047 18929476.4374 0.000
+ 02 1 30 11 16 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20761341.383 -17741968.410 6 -13603995.49246 20761353.6814 0.000
+ 19123087.742 -26604811.786 6 -20085870.77447 19123096.8884 0.000
+ 21502859.348 3761948.022 6 2962745.65346 21502871.6134 0.000
+ 22306122.462 -9546435.390 6 742508.57745 22306138.1974 0.000
+ 21335816.824 -15236426.757 6 -11677314.69646 21335828.0564 0.000
+ 21382977.063 4589830.137 6 3588339.50346 21382990.5454 0.000
+ 18932688.865 -24834834.509 6 -19146996.51047 18932698.3184 0.000
+ 02 1 30 11 16 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20773276.510 -17679249.341 6 -13555123.62146 20773289.5464 0.000
+ 19117794.994 -26632625.330 6 -20107543.65447 19117804.0144 0.000
+ 21514702.332 3824182.739 6 3011240.10146 21514714.4864 0.000
+ 22312263.908 -9514161.998 6 767656.59845 22312280.9494 0.000
+ 21318930.491 -15325164.772 6 -11746461.10746 21318940.7234 0.000
+ 21395435.930 4655301.163 6 3639355.68746 21395448.5614 0.000
+ 18935967.016 -24817607.845 6 -19133573.14047 18935976.0004 0.000
+ 02 1 30 11 17 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20785243.919 -17616360.476 6 -13506119.45346 20785257.0084 0.000
+ 19112588.941 -26659983.183 6 -20128861.44147 19112598.3394 0.000
+ 21526615.140 3886784.928 6 3060020.88746 21526628.5964 0.000
+ 22318503.690 -9481371.227 5 793207.78845 22318521.2344 0.000
+ 21302093.428 -15413643.817 6 -11815405.70946 21302104.1394 0.000
+ 21407958.292 4721105.849 6 3690631.86546 21407972.7304 0.000
+ 18939301.937 -24800082.819 6 -19119917.32847 18939310.7594 0.000
+ 02 1 30 11 17 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20797244.660 -17553296.464 6 -13456978.82346 20797257.5714 0.000
+ 19107470.618 -26686880.012 6 -20149819.99647 19107480.1034 0.000
+ 21538598.496 3949757.409 6 3109090.17946 21538610.2444 0.000
+ 22324842.882 -9448058.803 5 819165.43445 22324857.8224 0.000
+ 21285307.112 -15501855.863 6 -11884142.23646 21285317.4884 0.000
+ 21420544.678 4787247.168 6 3742170.31245 21420557.7544 0.000
+ 18942694.686 -24782253.875 6 -19106024.66647 18942704.2534 0.000
+ 02 1 30 11 18 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20809278.674 -17490057.892 7 -13407702.16346 20809292.0044 0.000
+ 19102439.978 -26713316.034 7 -20170419.48247 19102449.5134 0.000
+ 21550651.728 4013097.401 6 3158445.83246 21550663.5284 0.000
+ 22331281.227 -9414225.549 6 845528.92745 22331297.7084 0.000
+ 21268572.136 -15589798.299 6 -11952668.72446 21268582.9454 0.000
+ 21433194.583 4853722.159 6 3793968.80446 21433209.0344 0.000
+ 18946145.289 -24764121.129 6 -19091895.30547 18946153.9254 0.000
+ 02 1 30 11 18 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20821344.790 -17426650.696 6 -13358294.11946 20821357.9454 0.000
+ 19097495.885 -26739297.272 7 -20190664.59147 19097505.0294 0.000
+ 21562773.346 4076796.302 6 3208081.19246 21562784.9084 0.000
+ 22337817.246 -9379878.816 5 872292.55345 22337834.3454 0.000
+ 21251887.754 -15677474.819 6 -12020987.99346 21251899.3924 0.000
+ 21445906.356 4920522.108 5 3846020.54646 21445920.1334 0.000
+ 18949652.530 -24745690.756 7 -19077534.00047 18949662.3094 0.000
+ 02 1 30 11 19 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20833445.013 -17363064.382 7 -13308746.47746 20833458.2004 0.000
+ 19092640.422 -26764812.896 7 -20210546.89147 19092649.7004 0.000
+ 21574964.850 4140862.264 6 3258002.57946 21574977.7204 0.000
+ 24061886.814 -17776.32612 0.000 0.000 0.000
+ 22344452.813 -9345008.854 5 899463.88645 22344468.4424 0.000
+ 21235256.486 -15764872.140 6 -12089089.68646 21235267.6884 0.000
+ 21458681.386 4987655.102 6 3898331.75846 21458694.4724 0.000
+ 18953218.491 -24726951.643 6 -19062932.11547 18953227.3654 0.000
+ 02 1 30 11 19 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20845576.277 -17299314.806 6 -13259071.63946 20845589.0954 0.000
+ 19087870.554 -26789878.715 7 -20230078.69247 19087879.7114 0.000
+ 21587222.635 4205276.988 6 3308195.73946 21587236.1624 0.000
+ 24041568.995 -124533.075 1 0.000 0.000 0.000
+ 22351184.838 -9309631.989 5 927030.17645 22351202.5854 0.000
+ 21218675.954 -15852003.203 6 -12156983.91746 21218686.7544 0.000
+ 21471516.567 5055102.900 6 3950888.20746 21471530.2264 0.000
+ 18956840.231 -24707919.404 6 -19048101.84147 18956849.7304 0.000
+ 02 1 30 11 20 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20857739.879 -17235395.162 6 -13209264.27946 20857752.7084 0.000
+ 19083187.548 -26814487.957 7 -20249254.71947 19083196.9424 0.000
+ 21599547.678 4270044.589 6 3358663.79446 21599560.1914 0.000
+ 24021231.468 -231402.831 1 0.000 0.000 0.000
+ 22358014.343 -9273742.722 5 954995.78945 22358030.3294 0.000
+ 21202147.768 -15938858.780 6 -12224663.46646 21202158.9244 0.000
+ 21484412.281 5122869.547 6 4003693.17746 21484426.1114 0.000
+ 18960519.026 -24688587.139 6 -19033037.74047 18960528.5754 0.000
+ 02 1 30 11 20 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20869935.842 -17171305.357 6 -13159324.32146 20869948.6844 0.000
+ 19078591.487 -26838640.361 8 -20268074.76347 19078601.1254 0.000
+ 21611939.372 4335162.747 6 3409405.04746 21611952.0534 0.000
+ 24000873.166 -338382.883 2 0.000 0.000 0.000
+ 22364941.236 -9237341.932 6 983359.98545 22364956.7604 0.000
+ 21185672.583 -16025435.751 6 -12292125.91446 21185684.0914 0.000
+ 21497368.162 5190952.501 6 4056744.63545 21497380.8634 0.000
+ 18964254.965 -24668954.748 6 -19017739.81847 18964264.0174 0.000
+ 02 1 30 11 21 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20882163.871 -17107047.229 6 -13109253.19246 20882177.8264 0.000
+ 19074082.057 -26862337.618 8 -20286540.15947 19074091.1434 0.000
+ 21624397.039 4400627.278 6 3460416.21746 21624410.1474 0.000
+ 23980494.146 -445471.934 2 0.000 0.000 0.000
+ 22371965.011 -9200431.883 5 1012120.95345 22371980.7234 0.000
+ 21169250.543 -16111733.575 6 -12359370.86446 21169262.4444 0.000
+ 21510383.449 5259347.435 6 4110039.15645 21510397.4284 0.000
+ 18968047.777 -24649023.486 6 -19002208.97247 18968057.2874 0.000
+ 02 1 30 11 21 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20894423.298 -17042624.290 7 -13059053.65146 20894436.9704 0.000
+ 19069658.548 -26885583.284 8 -20304653.65247 19069667.7464 0.000
+ 21636919.407 4466432.043 6 3511692.50846 21636932.3644 0.000
+ 23960094.531 -552670.833 2 0.000 0.000 0.000
+ 22379084.954 -9163017.222 5 1041275.15045 22379103.0034 0.000
+ 21152881.479 -16197752.971 6 -12426398.85746 21152893.4924 0.000
+ 21523457.079 5328048.394 6 4163572.12446 21523471.1744 0.000
+ 18971896.813 -24628796.735 6 -18986447.89947 18971905.5504 0.000
+ 02 1 30 11 22 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 20906712.981 -16978042.412 6 -13008730.26146 20906726.6654 0.000
+ 19065319.858 -26908383.133 8 -20322419.75947 19065328.8684 0.000
+ 21649505.027 4532568.659 6 3563227.36446 21649516.5394 0.000
+ 23939672.509 -659982.612 1 0.000 0.000 0.000
+ 22386299.497 -9125104.893 5 1070817.15345 22386315.3894 0.000
+ 21136564.900 -16283496.826 6 -12493212.15746 21136577.0004 0.000
+ 21536587.125 5397047.054 5 4217337.09945 21536603.8224 0.000
+ 18975800.984 -24608280.147 6 -18970460.96347 18975810.5094 0.000
+ 02 1 30 11 22 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20919034.642 -16913292.485 6 -12958275.91146 20919048.4414 0.000
+ 19061067.755 -26930727.939 7 -20339831.29247 19061076.8074 0.000
+ 21662154.953 4599043.974 6 3615026.12746 21662168.0724 0.000
+ 22393610.261 -9086686.231 5 1100753.68245 22393626.8194 0.000
+ 21120303.031 -16368953.317 7 -12559801.53246 21120314.6484 0.000
+ 21549775.059 5466349.708 5 4271338.94045 21549789.7624 0.000
+ 18979762.106 -24587464.268 6 -18954240.82447 18979771.0874 0.000
+ 02 1 30 11 23 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20931387.683 -16848377.436 6 -12907692.90046 20931400.8834 0.000
+ 19056901.685 -26952620.638 7 -20356890.53147 19056910.6774 0.000
+ 21674868.242 4665852.413 6 3667084.49546 21674880.5804 0.000
+ 22401016.619 -9047765.531 5 1131081.42245 22401032.1954 0.000
+ 21104095.752 -16454122.867 7 -12626167.30946 21104106.8434 0.000
+ 21563019.979 5535951.005 6 4325573.48245 21563034.2294 0.000
+ 18983779.692 -24566351.849 6 -18937789.62347 18983788.9094 0.000
+ 02 1 30 11 23 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20943772.107 -16783297.044 6 -12856981.02746 20943785.6154 0.000
+ 19052821.676 -26974061.121 7 -20373597.39047 19052831.0714 0.000
+ 21687644.484 4732991.557 6 3719400.55946 21687657.4514 0.000
+ 22408518.459 -9008343.641 5 1161799.62745 22408535.4644 0.000
+ 21087943.575 -16539002.598 7 -12692307.24546 21087954.5854 0.000
+ 21576321.275 5605848.328 6 4380038.66245 21576334.3754 0.000
+ 18987853.809 -24544942.472 6 -18921107.01047 18987862.8064 0.000
+ 02 1 30 11 24 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20956188.161 -16718050.506 6 -12806139.73346 20956202.0264 0.000
+ 19048827.869 -26995048.729 6 -20389951.35447 19048837.2134 0.000
+ 21700483.417 4800459.782 6 3771973.00646 21700496.5544 0.000
+ 22416115.717 -8968420.626 5 1192908.34245 22416131.2334 0.000
+ 21071847.318 -16623588.706 7 -12758218.36246 21071858.8844 0.000
+ 21589678.411 5676040.005 5 4434733.21845 21589694.6734 0.000
+ 18991984.640 -24523235.140 6 -18904192.24047 18991993.7054 0.000
+ 02 1 30 11 24 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20968636.725 -16652633.284 6 -12755165.40346 20968650.0254 0.000
+ 19044921.156 -27015578.704 7 -20405948.72447 19044930.4494 0.000
+ 21713385.391 4868258.912 6 3824803.29146 21713398.9794 0.000
+ 22423808.911 -8927993.001 5 1224410.28345 22423826.7224 0.000
+ 21055808.306 -16707873.882 6 -12823894.99546 21055819.6324 0.000
+ 21603092.033 5746528.329 5 4489658.94746 21603108.4794 0.000
+ 18996173.098 -24501224.820 6 -18887041.37247 18996182.0184 0.000
+ 02 1 30 11 25 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 20981116.663 -16587051.317 6 -12704062.70146 20981130.7234 0.000
+ 19041100.399 -27035656.923 7 -20421594.08747 19041109.9894 0.000
+ 21726348.591 4936380.658 6 3877885.04845 21726360.5774 0.000
+ 22431596.736 -8887067.825 5 1256299.88745 22431614.5674 0.000
+ 21039825.928 -16791861.346 6 -12889339.67146 21039837.0274 0.000
+ 21616560.524 5817304.493 6 4544808.99346 21616575.2414 0.000
+ 19000418.115 -24478917.248 6 -18869658.88447 19000426.7864 0.000
+ 02 1 30 11 25 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 20993627.751 -16521305.554 6 -12652832.36046 20993640.6704 0.000
+ 19037365.320 -27055284.832 7 -20436888.54447 19037375.0904 0.000
+ 21739372.555 5004821.447 6 3931215.32445 21739384.7154 0.000
+ 22439478.872 -8845647.233 5 1288575.56445 22439495.2024 0.000
+ 21023900.493 -16875549.483 6 -12954551.13546 21023910.8244 0.000
+ 21630083.098 5888364.699 6 4600180.31145 21630096.7634 0.000
+ 19004719.480 -24456313.528 6 -18852045.62647 19004728.7904 0.000
+ 02 1 30 11 26 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21006169.828 -16455397.078 6 -12601475.23746 21006183.9184 0.000
+ 19033715.730 -27074463.484 6 -20451832.93847 19033725.2944 0.000
+ 21752456.634 5073577.435 6 3984791.19746 21752469.3144 0.000
+ 22447454.985 -8803733.273 6 1321235.62845 22447473.7964 0.000
+ 21008032.368 -16958936.566 7 -13019527.99946 21008043.2894 0.000
+ 21643658.959 5959705.335 6 4655770.14445 21643671.7074 0.000
+ 19009077.088 -24433414.215 6 -18834202.05247 19009085.8934 0.000
+ 02 1 30 11 26 59.9950000 0 8G 5G 6G 9G14G24G25G29G30
+ 21018742.265 -16389329.112 6 -12549993.84646 21018756.6154 0.000
+ 19030151.035 -27093196.112 6 -20466429.77947 19030160.1594 0.000
+ 23774561.110 3451.76611 0.000 0.000 0.000
+ 21765599.603 5142643.212 6 4038608.54346 21765612.1474 0.000
+ 22455524.040 -8761330.494 5 1354276.69145 22455541.7714 0.000
+ 20992221.495 -17042023.138 7 -13084270.69346 20992232.3424 0.000
+ 21657287.171 6031320.792 6 4711574.18145 21657302.7084 0.000
+ 19013490.325 -24410222.438 6 -18816130.55047 19013499.9414 0.000
+ 02 1 30 11 27 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21031344.835 -16323102.752 6 -12498389.02646 21031358.4274 0.000
+ 19026671.023 -27111483.734 6 -20480679.85847 19026680.3464 0.000
+ 21778800.769 5212015.136 6 4092664.38146 21778813.7724 0.000
+ 22463685.810 -8718440.785 5 1387697.10445 22463702.8634 0.000
+ 20976468.104 -17124807.483 7 -13148777.84946 20976479.5424 0.000
+ 21670967.016 6103207.308 6 4767589.38545 21670980.8784 0.000
+ 19017959.088 -24386738.842 6 -18797831.70147 19017968.3494 0.000
+ 02 1 30 11 27 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21043977.390 -16256718.805 6 -12446661.41846 21043991.4704 0.000
+ 19023275.495 -27129327.412 6 -20494584.00947 19023285.0794 0.000
+ 21792059.593 5281689.605 6 4146955.94946 21792072.6534 0.000
+ 22471939.874 -8675066.021 5 1421495.52045 22471956.4394 0.000
+ 20960772.633 -17207287.628 7 -13213047.98046 20960784.1174 0.000
+ 21684697.690 6175361.505 5 4823813.14845 21684711.0974 0.000
+ 19022483.302 -24362964.054 6 -18779305.92047 19022492.9374 0.000
+ 02 1 30 11 28 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21056641.415 -16190169.310 6 -12394804.81046 21056654.7814 0.000
+ 19019965.959 -27146719.129 7 -20508135.98147 19019975.4624 0.000
+ 21805376.964 5351672.068 6 4201487.52446 21805390.2874 0.000
+ 22480287.606 -8631199.112 5 1455677.43745 22480304.5304 0.000
+ 20945137.019 -17289453.165 7 -13277072.96146 20945147.4004 0.000
+ 21698480.078 6247788.379 5 4880249.44145 21698496.1564 0.000
+ 19027064.501 -24338889.830 6 -18760546.81347 19027074.1664 0.000
+ 02 1 30 11 28 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21069335.905 -16123459.675 6 -12342823.41746 21069350.1254 0.000
+ 19016741.400 -27163664.317 6 -20521340.01247 19016750.5984 0.000
+ 21818751.323 5421954.413 6 4256252.77646 21818764.8314 0.000
+ 22488727.622 -8586846.948 5 1490237.49545 22488743.8604 0.000
+ 20929560.751 -17371306.406 7 -13340854.59746 20929571.0364 0.000
+ 21712313.091 6320480.275 5 4936892.14445 21712328.0284 0.000
+ 19031701.668 -24314521.387 6 -18741558.43647 19031711.2654 0.000
+ 02 1 30 11 29 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21082060.150 -16056593.754 6 -12290720.25646 21082073.9864 0.000
+ 19013601.016 -27180167.184 7 -20534199.37547 19013610.1384 0.000
+ 21832181.618 5492530.390 6 4311246.83045 21832194.5304 0.000
+ 22497258.890 -8542014.955 5 1525171.40545 22497274.7704 0.000
+ 20914043.686 -17452848.598 7 -13404393.84946 20914055.0304 0.000
+ 21726195.269 6393430.494 5 4993736.16045 21726211.6014 0.000
+ 19036394.103 -24289862.503 6 -18722343.75047 19036403.3704 0.000
+ 02 1 30 11 29 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21094815.031 -15989566.973 6 -12238491.73446 21094828.5164 0.000
+ 19010545.629 -27196223.293 6 -20546710.61647 19010554.5854 0.000
+ 21845668.095 5563401.854 5 4366471.12745 21845681.5544 0.000
+ 22505882.165 -8496699.631 5 1560482.00045 22505899.6134 0.000
+ 20898587.253 -17534072.318 7 -13467684.96446 20898598.2424 0.000
+ 21740126.874 6466641.051 5 5050783.06745 21740143.9034 0.000
+ 19041142.818 -24264908.089 6 -18702898.78947 19041151.8164 0.000
+ 02 1 30 11 30 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21107601.368 -15922375.135 6 -12186134.61546 21107615.7604 0.000
+ 19007576.049 -27211828.549 6 -20558870.53747 19007585.3014 0.000
+ 21859211.051 5634570.422 6 4421926.94245 21859224.5424 0.000
+ 22514598.033 -8450897.666 5 1596171.78945 22514614.2974 0.000
+ 20883192.666 -17614971.025 7 -13530722.80546 20883204.2874 0.000
+ 21754108.511 6540113.414 6 5108033.95745 21754124.0514 0.000
+ 19045948.580 -24239653.827 6 -18683220.17147 19045958.1214 0.000
+ 02 1 30 11 30 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21120418.395 -15855022.380 6 -12133652.09246 21120432.4004 0.000
+ 19004691.402 -27226987.460 7 -20570682.66247 19004700.5444 0.000
+ 21872809.487 5706029.184 6 4477608.87346 21872822.3114 0.000
+ 22523405.411 -8404614.798 5 1632236.28845 22523421.3534 0.000
+ 20867859.729 -17695545.906 7 -13593508.32546 20867870.6184 0.000
+ 21768138.632 6613840.583 5 5165483.34745 21768152.8844 0.000
+ 19050810.606 -24214103.879 6 -18663311.15247 19050820.2544 0.000
+ 02 1 30 11 31 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21133266.943 -15787503.881 6 -12081040.42246 21133281.4464 0.000
+ 19001892.554 -27241695.449 7 -20582143.41747 19001901.9194 0.000
+ 21886463.523 5777780.335 6 4533518.64245 21886476.7734 0.000
+ 22532305.019 -8357847.599 5 1668678.12045 22532323.7774 0.000
+ 20852589.829 -17775789.407 7 -13656035.63046 20852600.4394 0.000
+ 21782217.497 6687824.684 5 5223132.99145 21782233.1554 0.000
+ 19055729.882 -24188253.108 6 -18643167.73547 19055739.0004 0.000
+ 02 1 30 11 31 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21146145.229 -15719828.864 6 -12028306.77846 21146158.8744 0.000
+ 18999177.717 -27255961.835 8 -20593260.06047 18999186.9634 0.000
+ 21900170.711 5849811.884 5 4589646.91745 21900184.2304 0.000
+ 22541294.926 -8310606.634 6 1705489.18945 22541311.4924 0.000
+ 20837381.714 -17855708.095 7 -13718309.83746 20837392.9594 0.000
+ 21796343.157 6762054.014 6 5280973.69945 21796359.7264 0.000
+ 19060704.701 -24162110.530 6 -18622796.92947 19060713.8984 0.000
+ 02 1 30 11 32 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21159053.017 -15651998.354 6 -11975451.98946 21159066.9504 0.000
+ 18996546.619 -27269788.066 8 -20604033.71847 18996555.9054 0.000
+ 21913930.655 5922120.289 6 4645990.88045 21913944.6634 0.000
+ 22550374.399 -8262894.178 5 1742667.62045 22550391.0644 0.000
+ 20822235.706 -17935300.428 7 -13780329.74246 20822246.4784 0.000
+ 21810514.769 6836524.630 5 5339002.41745 21810530.7794 0.000
+ 19065734.920 -24135676.813 6 -18602199.26247 19065744.0444 0.000
+ 02 1 30 11 32 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21171990.666 -15584010.602 6 -11922474.66746 21172004.8694 0.000
+ 18993999.606 -27283172.555 7 -20614463.16647 18994008.8334 0.000
+ 21927743.270 5994704.715 6 4702549.91645 21927758.3094 0.000
+ 22559543.769 -8214709.503 5 1780214.02945 22559560.0574 0.000
+ 20807152.625 -18014561.984 7 -13842091.92546 20807162.8094 0.000
+ 21824732.071 6911235.786 5 5397218.57945 21824747.1474 0.000
+ 19070820.865 -24108950.241 6 -18581373.39847 19070829.9584 0.000
+ 02 1 30 11 33 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21184958.774 -15515862.872 6 -11869372.73146 21184973.8934 0.000
+ 18991537.137 -27296112.933 6 -20624546.55547 18991546.0124 0.000
+ 21941608.376 6067564.910 6 4759323.86245 21941622.3604 0.000
+ 22568803.157 -8166051.308 5 1818129.30945 22568821.2674 0.000
+ 20792133.469 -18093487.569 7 -13903592.28046 20792144.7154 0.000
+ 21838995.162 6986187.388 5 5455622.09745 21839010.5714 0.000
+ 19075963.090 -24081927.807 6 -18560316.97647 19075972.2544 0.000
+ 02 1 30 11 33 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21197957.134 -15447556.846 6 -11816147.39046 21197972.7864 0.000
+ 18989158.836 -27308611.020 6 -20634285.30347 18989167.6504 0.000
+ 21955524.987 6140696.812 5 4816309.54445 21955538.1744 0.000
+ 22578152.155 -8116922.591 5 1856411.38845 22578168.3494 0.000
+ 20777178.647 -18172075.552 7 -13964829.59246 20777189.1364 0.000
+ 21853303.198 7061375.080 6 5514209.58645 21853318.7834 0.000
+ 19081161.360 -24054610.777 6 -18539031.01147 19081171.0834 0.000
+ 02 1 30 11 34 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21210985.783 -15379091.650 6 -11762798.03446 21211000.5104 0.000
+ 18986864.789 -27320666.225 7 -20643678.93347 18986873.5964 0.000
+ 21969493.071 6214098.768 6 4873505.61945 21969505.7294 0.000
+ 22587590.526 -8067323.730 5 1895059.74345 22587608.3274 0.000
+ 20762288.710 -18250322.897 7 -14025801.48746 20762299.6944 0.000
+ 21867655.779 7136797.307 5 5572979.79245 21867671.4614 0.000
+ 19086415.848 -24026998.259 6 -18517514.79347 19086425.8194 0.000
+ 02 1 30 11 34 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21224043.629 -15310473.002 6 -11709329.11746 21224057.8144 0.000
+ 18984653.853 -27332284.622 6 -20652732.21547 18984662.6224 0.000
+ 21983511.025 6287762.346 6 4930905.52645 21983524.9254 0.000
+ 22597116.926 -8017262.046 5 1934068.74745 22597132.4794 0.000
+ 20747463.015 -18328232.268 7 -14086509.99946 20747473.2894 0.000
+ 21882051.353 7212445.380 5 5631925.98045 21882067.0314 0.000
+ 19091725.564 -23999095.656 6 -18495772.54247 19091735.2964 0.000
+ 02 1 30 11 35 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21237130.905 -15241699.626 6 -11655739.64246 21237144.7504 0.000
+ 18982526.236 -27343465.267 6 -20661444.39847 18982535.4684 0.000
+ 21997578.415 6361686.017 5 4988508.16345 21997592.8434 0.000
+ 22606731.362 -7966737.691 4 1973438.14945 22606749.7904 0.000
+ 20732702.402 -18405799.642 7 -14146952.04046 20732713.2014 0.000
+ 21896489.729 7288318.015 5 5691047.10045 21896503.4694 0.000
+ 19097090.761 -23970901.445 6 -18473803.05747 19097099.7074 0.000
+ 02 1 30 11 35 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21250247.830 -15172770.437 6 -11602028.72746 21250261.1374 0.000
+ 18980482.084 -27354207.389 6 -20669814.85847 18980491.4324 0.000
+ 22011695.061 6435868.393 5 5046312.37845 22011708.7424 0.000
+ 22616434.052 -7915750.473 5 2013168.34145 22616451.4314 0.000
+ 20718007.485 -18483021.556 7 -14207124.86846 20718018.9914 0.000
+ 21910970.410 7364413.510 5 5750341.93345 21910985.8864 0.000
+ 19102511.683 -23942414.356 6 -18451605.35947 19102520.7374 0.000
+ 02 1 30 11 36 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21263395.123 -15103681.661 6 -11548193.47846 21263409.1694 0.000
+ 18978522.035 -27364507.495 6 -20677840.89647 18978531.6054 0.000
+ 22025861.191 6510310.545 5 5104319.00945 22025874.3184 0.000
+ 22626225.117 -7864298.535 5 2053260.68045 22626242.8334 0.000
+ 20703379.495 -18559891.490 7 -14267023.43046 20703389.8684 0.000
+ 21925493.851 7440733.159 5 5809811.43345 21925512.6884 0.000
+ 19107989.168 -23913630.067 6 -18429176.07947 19107998.1984 0.000
+ 02 1 30 11 36 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21276571.890 -15034438.097 6 -11494237.64946 21276586.4394 0.000
+ 18976645.113 -27374370.735 6 -20685526.51847 18976654.6094 0.000
+ 22040075.215 6585004.907 5 5162522.10145 22040090.4654 0.000
+ 22636103.372 -7812388.222 5 2093710.16445 22636120.6734 0.000
+ 20688818.084 -18636411.681 7 -14326649.45646 20688828.8094 0.000
+ 21940058.443 7517269.187 5 5869449.46945 21940076.6694 0.000
+ 19113522.256 -23884553.696 6 -18406519.20047 19113531.4254 0.000
+ 02 1 30 11 37 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21289777.764 -14965041.417 6 -11440162.46346 21289792.8934 0.000
+ 18974850.916 -27383799.185 6 -20692873.36747 18974860.0464 0.000
+ 22054336.297 6659947.154 5 5220918.39045 22054351.4044 0.000
+ 22646068.522 -7760022.111 5 2134514.74445 22646087.4114 0.000
+ 20674323.552 -18712580.382 7 -14386001.60446 20674333.8764 0.000
+ 21954663.372 7594017.368 5 5929252.83945 21954682.5774 0.000
+ 19119110.668 -23855186.486 6 -18383635.70247 19119120.6644 0.000
+ 02 1 30 11 37 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21303013.875 -14895485.705 6 -11385963.38446 21303029.1544 0.000
+ 18973140.534 -27392787.098 8 -20699876.93047 18973150.0274 0.000
+ 22068645.219 6735140.543 5 5279510.33145 22068662.6934 0.000
+ 22656121.199 -7707195.984 5 2175677.92845 22656137.0614 0.000
+ 20659897.517 -18788389.307 7 -14445073.43546 20659906.9704 0.000
+ 21969309.225 7670980.937 5 5989224.09645 21969325.1674 0.000
+ 19124755.582 -23825522.291 6 -18360520.78547 19124765.0614 0.000
+ 02 1 30 11 38 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21316279.097 -14825776.980 6 -11331645.06746 21316294.2644 0.000
+ 18971512.764 -27401340.937 7 -20706542.24947 18971521.9234 0.000
+ 22083000.438 6810576.305 5 5338291.15645 22083015.0034 0.000
+ 22666259.805 -7653917.526 5 2217193.49745 22666277.6784 0.000
+ 20645539.258 -18863842.073 7 -14503867.73546 20645549.3364 0.000
+ 21983994.540 7748151.109 5 6049356.28445 21984010.8974 0.000
+ 19130455.892 -23795566.936 6 -18337178.99047 19130465.3914 0.000
+ 02 1 30 11 38 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21329572.396 -14755920.771 6 -11277211.81646 21329587.7544 0.000
+ 18969966.525 -27409466.567 6 -20712873.90247 18969975.4944 0.000
+ 22097400.158 6886246.234 6 5397254.49645 22097416.1114 0.000
+ 22676483.118 -7600193.792 5 2259056.07545 22676499.2694 0.000
+ 20631248.291 -18938941.365 7 -14562386.61946 20631258.8874 0.000
+ 21998717.643 7825519.557 5 6109642.94645 21998733.4044 0.000
+ 19136210.616 -23765325.800 6 -18313614.51947 19136219.9794 0.000
+ 02 1 30 11 39 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21342894.836 -14685911.304 6 -11222659.16546 21342910.0584 0.000
+ 18968502.812 -27417158.696 6 -20718867.77547 18968511.3004 0.000
+ 22111845.064 6962153.572 6 5456402.76645 22111859.2684 0.000
+ 22686791.989 -7546020.473 5 2301268.89445 22686810.0364 0.000
+ 20617026.163 -19013678.929 7 -14620623.62046 20617036.4204 0.000
+ 22013478.918 7903089.306 5 6170086.52045 22013495.7864 0.000
+ 19142020.919 -23734792.826 6 -18289822.64047 19142030.4974 0.000
+ 02 1 30 11 39 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21356247.322 -14615744.270 6 -11167983.72046 21356263.3684 0.000
+ 18967122.279 -27424413.498 6 -20724520.86547 18967131.2324 0.000
+ 22126335.369 7038299.487 5 5515736.91945 22126350.7354 0.000
+ 22697186.967 -7491394.808 5 2343834.31345 22697204.7994 0.000
+ 20602874.163 -19088047.784 7 -14678573.28646 20602885.0234 0.000
+ 22028278.759 7980862.046 5 6230688.23645 22028296.5194 0.000
+ 19147887.610 -23703963.634 6 -18265799.95347 19147897.1624 0.000
+ 02 1 30 11 40 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21369629.009 -14545423.793 6 -11113188.73746 21369643.9294 0.000
+ 18965824.068 -27431235.501 8 -20729836.69947 18965833.4814 0.000
+ 22140869.776 7114677.404 5 5575251.87445 22140884.2134 0.000
+ 22707666.971 -7436322.189 5 2386747.92245 22707685.6894 0.000
+ 20588792.096 -19162049.170 7 -14736236.61346 20588802.2844 0.000
+ 22043115.995 8058830.929 5 6291442.71145 22043132.9454 0.000
+ 19153809.914 -23672841.952 6 -18241549.33047 19153819.1764 0.000
+ 02 1 30 11 40 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21383039.331 -14474952.839 6 -11058276.47846 21383055.7804 0.000
+ 18964607.574 -27437628.147 6 -20734817.97247 18964616.6814 0.000
+ 22155447.342 7191281.537 5 5634943.08345 22155460.9874 0.000
+ 22718231.108 -7380807.357 5 2430006.12045 22718249.0644 0.000
+ 20574779.901 -19235683.727 7 -14793614.12646 20574790.5454 0.000
+ 22057989.458 8136990.140 5 6352345.53745 22058008.4904 0.000
+ 19159787.273 -23641430.806 6 -18217073.15547 19159796.4484 0.000
+ 02 1 30 11 41 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21396479.136 -14404326.885 6 -11003243.43146 21396495.0944 0.000
+ 18963473.585 -27443587.307 6 -20739461.46647 18963482.7114 0.000
+ 22170068.327 7268113.879 5 5694812.12245 22170083.3044 0.000
+ 22728880.049 -7324847.425 5 2473611.17645 22728897.4454 0.000
+ 20560838.890 -19308944.151 8 -14850700.08646 20560849.5534 0.000
+ 22072899.662 8215341.519 5 6413398.12245 22072918.0354 0.000
+ 19165820.654 -23609725.317 6 -18192367.62847 19165830.2694 0.000
+ 02 1 30 11 41 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21409948.721 -14333544.793 6 -10948088.72746 21409964.4534 0.000
+ 18962422.239 -27449112.143 8 -20743766.51847 18962431.6724 0.000
+ 22184732.474 7345172.868 5 5754857.74445 22184749.7784 0.000
+ 22739613.658 -7268442.592 5 2517562.89745 22739630.9324 0.000
+ 20546969.837 -19381826.507 8 -14907491.46646 20546979.2484 0.000
+ 22087846.158 8293883.600 5 6474599.25545 22087863.1654 0.000
+ 19171910.359 -23577724.019 6 -18167431.60047 19171919.5874 0.000
+ 02 1 30 11 42 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21423447.539 -14262608.881 6 -10892814.16646 21423462.4224 0.000
+ 18961452.948 -27454205.604 8 -20747735.42747 18961462.4794 0.000
+ 22199438.786 7422453.513 5 5815076.10545 22199454.2224 0.000
+ 22750431.240 -7211596.649 5 2561858.31845 22750449.8464 0.000
+ 20533172.771 -19454330.367 7 -14963987.91146 20533182.9004 0.000
+ 22102827.942 8372611.414 5 6535945.15445 22102845.9224 0.000
+ 19178055.934 -23545429.090 6 -18142266.76047 19178065.5974 0.000
+ 02 1 30 11 42 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21436975.571 -14191519.178 6 -10837419.74746 21436990.0884 0.000
+ 18960565.671 -27458868.091 7 -20751368.51347 18960574.9334 0.000
+ 22214186.729 7499953.151 5 5875465.08445 22214201.6614 0.000
+ 22761332.371 -7154311.472 5 2606496.00745 22761349.7074 0.000
+ 20519448.176 -19526453.329 8 -15020187.52546 20519458.8884 0.000
+ 22117844.594 8451522.161 5 6597433.54945 22117862.1504 0.000
+ 19184257.409 -23512840.193 7 -18116872.86647 19184266.9094 0.000
+ 02 1 30 11 43 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21450532.304 -14120278.401 6 -10781907.65246 21450546.6054 0.000
+ 18959759.800 -27463102.894 7 -20754668.34447 18959769.0354 0.000
+ 22228975.148 7577666.240 5 5936020.41345 22228992.1374 0.000
+ 22772316.184 -7096591.529 5 2651472.48745 22772333.7544 0.000
+ 20505795.954 -19598195.925 7 -15076090.77146 20505806.1944 0.000
+ 22132895.051 8530610.397 5 6659060.24645 22132913.7424 0.000
+ 19190514.310 -23479959.999 6 -18091251.96247 19190523.8274 0.000
+ 02 1 30 11 43 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21464117.427 -14048888.526 5 -10726279.36846 21464133.2354 0.000
+ 18959034.912 -27466912.343 6 -20757636.72447 18959043.9214 0.000
+ 22243803.477 7655588.266 5 5996738.49845 22243818.0064 0.000
+ 22783382.081 -7038440.341 5 2696784.91245 22783399.2274 0.000
+ 20492216.313 -19669556.931 7 -15131696.67146 20492226.3664 0.000
+ 22147978.279 8609871.411 5 6720821.55745 22147994.1254 0.000
+ 19196826.362 -23446790.188 6 -18065405.39247 19196835.5414 0.000
+ 02 1 30 11 44 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21477730.861 -13977349.976 6 -10670535.23846 21477747.4254 0.000
+ 18958390.783 -27470297.362 6 -20760274.37947 18958399.8034 0.000
+ 22258670.948 7733715.864 5 6057616.76845 22258687.0124 0.000
+ 22794529.670 -6979859.839 5 2742431.96145 22794545.9624 0.000
+ 20478709.800 -19740533.848 7 -15187003.28146 20478720.3574 0.000
+ 22163093.819 8689302.077 5 6782715.10445 22163111.4524 0.000
+ 19203193.458 -23413331.153 6 -18039333.45547 19203203.2174 0.000
+ 02 1 30 11 44 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21491372.180 -13905665.114 6 -10614677.08046 21491386.7744 0.000
+ 18957826.797 -27473260.974 7 -20762583.66147 18957835.7574 0.000
+ 22273576.479 7812043.865 5 6118651.22745 22273592.6584 0.000
+ 22805758.125 -6920854.217 5 2788410.18945 22805775.9564 0.000
+ 20465276.320 -19811126.926 7 -15242010.80946 20465286.1584 0.000
+ 22178240.601 8768897.153 5 6844736.72545 22178259.7784 0.000
+ 19209615.135 -23379585.105 6 -18013037.85647 19209624.8524 0.000
+ 02 1 30 11 45 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21505042.501 -13833827.832 6 -10558700.15146 21505058.1294 0.000
+ 18957344.041 -27475797.730 6 -20764560.34547 18957352.9134 0.000
+ 22288520.917 7890575.733 5 6179844.46945 22288534.5924 0.000
+ 22817068.327 -6861418.889 5 2834723.23345 22817087.8434 0.000
+ 20451917.498 -19881327.452 7 -15296712.46246 20451928.2374 0.000
+ 22193419.365 8848659.918 5 6906889.03545 22193438.0314 0.000
+ 19216092.627 -23345545.673 8 -17986513.66347 19216102.9784 0.000
+ 02 1 30 11 45 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21518740.778 -13761844.094 6 -10502609.10746 21518756.5944 0.000
+ 18956941.321 -27477914.054 6 -20766209.42447 18956950.0134 0.000
+ 22303502.364 7969302.526 5 6241189.65745 22303519.4944 0.000
+ 22828458.886 -6801561.954 5 2881364.88345 22828477.0734 0.000
+ 20438632.720 -19951139.001 7 -15351111.00346 20438643.2234 0.000
+ 22208628.422 8928581.891 5 6969165.32645 22208647.9244 0.000
+ 19222624.828 -23311218.673 6 -17959765.37147 19222634.6374 0.000
+ 02 1 30 11 46 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21532468.233 -13689707.089 6 -10446398.62346 21532482.9264 0.000
+ 18956619.813 -27479603.641 8 -20767525.97547 18956629.0234 0.000
+ 22318521.840 8048228.786 5 6302690.26145 22318538.6914 0.000
+ 22839930.723 -6741277.898 5 2928339.32445 22839947.6914 0.000
+ 20425423.919 -20020551.703 7 -15405198.78246 20425434.3784 0.000
+ 22223868.537 9008667.182 5 7031568.95145 22223888.5034 0.000
+ 19229213.103 -23276597.056 6 -17932787.49747 19229223.1204 0.000
+ 02 1 30 11 46 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21546223.900 -13617421.258 6 -10390072.15946 21546238.2834 0.000
+ 18956378.567 -27480871.273 6 -20768513.72447 18956387.6784 0.000
+ 22333577.844 8127347.196 5 6364340.52745 22333594.7604 0.000
+ 22851482.640 -6680572.699 5 2975641.93945 22851501.1834 0.000
+ 20412290.576 -20089567.686 7 -15458977.39546 20412300.0494 0.000
+ 22239138.223 9088908.564 5 7094094.26445 22239156.2644 0.000
+ 19235856.621 -23241685.022 7 -17905583.33347 19235866.8094 0.000
+ 02 1 30 11 47 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21560008.563 -13544982.726 6 -10333626.74146 21560023.4004 0.000
+ 18956218.261 -27481713.627 6 -20769170.09847 18956227.7864 0.000
+ 22348670.630 8206659.236 5 6426141.67245 22348686.9314 0.000
+ 22863115.203 -6619443.946 5 3023274.55845 22863132.6634 0.000
+ 20399234.024 -20158180.050 7 -15512441.49746 20399244.4054 0.000
+ 22254437.997 9169307.311 5 7156742.06045 22254457.0724 0.000
+ 19242556.209 -23206478.400 8 -17878149.61847 19242566.4844 0.000
+ 02 1 30 11 47 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21573821.657 -13472394.983 6 -10277065.04746 21573837.1844 0.000
+ 18956138.115 -27482134.987 6 -20769498.43547 18956147.2844 0.000
+ 22363799.044 8286158.423 5 6488088.72545 22363817.0014 0.000
+ 22874827.175 -6557897.299 5 3071232.80945 22874844.0034 0.000
+ 20386254.091 -20226389.884 7 -15565591.96146 20386263.9234 0.000
+ 22269766.568 9249857.227 5 7219507.69845 22269784.5484 0.000
+ 19249311.226 -23170980.576 6 -17850488.97247 19249320.7924 0.000
+ 02 1 30 11 48 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21587661.875 -13399665.025 6 -10220392.52746 21587677.9454 0.000
+ 18956136.648 -27482142.924 6 -20769504.62847 18956145.2284 0.000
+ 22378961.336 8365834.870 5 6550173.82445 22378976.6354 0.000
+ 22886617.050 -6495941.552 5 3119509.82545 22886637.5654 0.000
+ 20373349.813 -20294202.012 7 -15618432.51246 20373360.7824 0.000
+ 22285121.945 9330548.377 4 7282383.36145 22285139.7724 0.000
+ 19256120.342 -23135198.565 6 -17822606.91747 19256130.3934 0.000
+ 02 1 30 11 48 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21601529.543 -13326790.592 6 -10163607.42946 21601545.8354 0.000
+ 18956214.125 -27481735.744 7 -20769187.34247 18956222.7174 0.000
+ 22394157.423 8445688.411 6 6612396.94645 22394175.0984 0.000
+ 22898485.014 -6433575.950 5 3168106.22145 22898504.3514 0.000
+ 20360522.230 -20361611.144 7 -15670959.04246 20360532.8964 0.000
+ 22300504.153 9411380.534 5 7345368.93245 22300523.1344 0.000
+ 19262984.085 -23099129.600 6 -17794501.23447 19262993.9964 0.000
+ 02 1 30 11 49 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21615425.409 -13253767.950 6 -10106706.83646 21615440.6164 0.000
+ 18956371.174 -27480910.230 7 -20768544.08447 18956379.9164 0.000
+ 22409387.304 8525719.913 5 6674758.69345 22409404.6814 0.000
+ 22910431.392 -6370798.145 5 3217023.82545 22910450.5694 0.000
+ 20347772.498 -20428611.149 7 -15723166.75746 20347783.5244 0.000
+ 22315913.431 9492354.741 5 7408465.13145 22315933.4634 0.000
+ 19269903.172 -23062769.834 6 -17766168.98047 19269912.9694 0.000
+ 02 1 30 11 49 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21629348.988 -13180599.593 6 -10049692.68946 21629364.7604 0.000
+ 18956607.292 -27479669.307 6 -20767577.13947 18956616.2794 0.000
+ 22424649.955 8605924.367 5 6737255.28145 22424667.8394 0.000
+ 22922455.275 -6307613.014 5 3266258.84645 22922472.1724 0.000
+ 20335100.685 -20495201.921 8 -15775055.59546 20335110.3094 0.000
+ 22331348.831 9573465.752 5 7471667.89245 22331368.0874 0.000
+ 19276877.154 -23026121.454 6 -17737611.80747 19276886.9084 0.000
+ 02 1 30 11 50 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21643300.278 -13107285.831 6 -9992565.25245 21643315.9104 0.000
+ 18956922.243 -27478014.149 6 -20766287.40547 18956931.3794 0.000
+ 22439945.162 8686298.745 5 6799884.18245 22439962.2124 0.000
+ 22934556.270 -6244022.295 4 3315809.83245 22934574.2724 0.000
+ 20322507.158 -20561381.213 8 -15826623.79846 20322516.7664 0.000
+ 22346809.506 9654710.447 5 7534974.90045 22346832.1614 0.000
+ 19283906.018 -22989184.715 6 -17708829.94647 19283915.5044 0.000
+ 02 1 30 11 50 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21657277.846 -13033834.062 6 -9935330.28245 21657293.4764 0.000
+ 18957314.480 -27475952.982 6 -20764681.30847 18957323.2484 0.000
+ 22455270.560 8766832.530 5 6862637.31145 22455287.1634 0.000
+ 22946732.721 -6180035.515 4 3365669.48945 22946750.5664 0.000
+ 20309990.892 -20627154.515 8 -15877875.64346 20310001.2424 0.000
+ 22362293.914 9736078.730 5 7598378.15645 22362312.1894 0.000
+ 19290988.317 -22951967.129 6 -17679829.25647 19290997.9714 0.000
+ 02 1 30 11 51 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21671282.130 -12960241.960 6 -9877985.96646 21671297.5664 0.000
+ 18957784.305 -27473484.071 6 -20762757.48247 18957793.3614 0.000
+ 22470626.208 8847525.503 5 6925514.55645 22470644.9604 0.000
+ 22958984.691 -6115651.937 4 3415838.32245 22959002.9604 0.000
+ 20297552.939 -20692516.092 7 -15928806.68846 20297563.7484 0.000
+ 22377801.752 9817570.249 4 7661877.42945 22377821.0154 0.000
+ 19298124.588 -22914465.919 6 -17650607.56447 19298134.0804 0.000
+ 02 1 30 11 51 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21685312.498 -12886512.862 6 -9820534.90546 21685327.8144 0.000
+ 18958331.025 -27470611.018 6 -20760518.74947 18958339.8344 0.000
+ 22486011.257 8928372.008 5 6988511.31745 22486027.6784 0.000
+ 22971310.979 -6050876.819 5 3466312.19045 22971330.1554 0.000
+ 20285193.131 -20757466.925 7 -15979417.68446 20285204.0154 0.000
+ 22393331.779 9899179.103 4 7725468.14245 22393352.0924 0.000
+ 19305314.288 -22876683.934 7 -17621167.09547 19305323.8614 0.000
+ 02 1 30 11 52 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21699369.641 -12812642.825 5 -9762974.02646 21699386.4244 0.000
+ 18958955.228 -27467330.672 7 -20757962.64347 18958964.4634 0.000
+ 22501425.476 9009372.993 5 7051628.54945 22501443.1044 0.000
+ 22983712.377 -5985707.834 5 3517093.01945 22983730.0294 0.000
+ 20272912.662 -20822000.830 7 -16029703.79546 20272923.1724 0.000
+ 22408884.398 9980906.163 5 7789151.02545 22408903.2674 0.000
+ 19312558.104 -22838617.493 7 -17591504.96647 19312567.8004 0.000
+ 02 1 30 11 52 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21713454.435 -12738627.217 5 -9705299.74145 21713471.9434 0.000
+ 18959657.707 -27463639.063 7 -20755086.07247 18959667.2994 0.000
+ 22516869.510 9090530.150 5 7114867.37645 22516884.3044 0.000
+ 22996189.215 -5920142.354 5 3568182.80045 22996208.5294 0.000
+ 20260713.008 -20886110.353 8 -16079659.22246 20260722.6624 0.000
+ 22424459.897 10062753.601 5 7852927.68145 22424479.3394 0.000
+ 19319857.015 -22800261.625 6 -17561617.31647 19319866.7514 0.000
+ 02 1 30 11 53 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21727566.683 -12664466.899 5 -9647512.67245 21727583.5704 0.000
+ 18960438.173 -27459537.698 7 -20751890.20847 18960447.9164 0.000
+ 22532342.666 9171840.007 5 7178225.20445 22532361.7314 0.000
+ 23008740.995 -5854183.041 4 3619579.49145 23008760.8674 0.000
+ 20248594.396 -20949793.928 8 -16129282.72146 20248603.4634 0.000
+ 22440057.621 10144717.851 4 7916795.19445 22440078.9594 0.000
+ 19327210.834 -22761617.121 7 -17531504.75347 19327220.6804 0.000
+ 02 1 30 11 53 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21741706.257 -12590163.429 5 -9589614.06345 21741723.0424 0.000
+ 18961296.164 -27455028.957 6 -20748376.89147 18961305.6534 0.000
+ 22547844.092 9253298.598 5 7241698.89345 22547862.3614 0.000
+ 23021367.209 -5787833.050 5 3671280.57745 23021384.9464 0.000
+ 20236556.960 -21013050.942 8 -16178573.83846 20236566.1064 0.000
+ 22455676.590 10226794.450 4 7980750.44645 22455696.8224 0.000
+ 19334619.318 -22722685.298 8 -17501168.31447 19334629.0884 0.000
+ 02 1 30 11 54 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21755872.373 -12515720.970 6 -9531607.11345 21755889.3864 0.000
+ 18962230.767 -27450117.649 7 -20744549.89947 18962239.8384 0.000
+ 22563372.416 9334898.732 5 7305282.97945 22563390.6334 0.000
+ 23034066.489 -5721098.664 4 3723281.20345 23034082.7204 0.000
+ 20224600.344 -21075883.094 8 -16227533.87646 20224609.6974 0.000
+ 22471315.891 10308976.692 5 8044787.88645 22471336.9814 0.000
+ 19342081.695 -22683470.247 6 -17470611.18147 19342091.5604 0.000
+ 02 1 30 11 54 59.9950000 0 8G 5G 6G14G15G24G25G29G30
+ 21770064.315 -12441143.053 6 -9473494.63845 21770079.6824 0.000
+ 18963241.122 -27444808.147 8 -20740412.62947 18963250.1264 0.000
+ 22578926.576 9416633.866 5 7368972.12245 22578944.0494 0.000
+ 23557498.493 -44439.43711 0.000 0.000 0.000
+ 23046837.939 -5653984.995 3 3775577.41145 23046856.2184 0.000
+ 20212724.413 -21138291.264 8 -16276163.53446 20212734.3234 0.000
+ 22486973.983 10391258.311 4 8108902.83845 22486995.0524 0.000
+ 19349597.340 -22643975.329 7 -17439835.96147 19349607.2044 0.000
+ 02 1 30 11 55 29.9950000 0 8G 5G 6G14G15G24G25G29G30
+ 21784284.168 -12366418.333 6 -9415267.73445 21784299.1144 0.000
+ 18964329.338 -27439089.398 7 -20735956.46147 18964338.2724 0.000
+ 22594508.024 9498513.436 5 7432773.90745 22594525.7234 0.000
+ 23534426.327 -165686.881 1 0.000 0.000 0.000
+ 23059683.414 -5586482.423 4 3828176.62545 23059703.0154 0.000
+ 20200931.879 -21200261.253 8 -16324451.77446 20200941.4824 0.000
+ 22502652.697 10473648.003 5 8173101.99245 22502672.2464 0.000
+ 19357168.525 -22604188.683 8 -17408833.43547 19357178.3064 0.000
+ 02 1 30 11 55 59.9950000 0 7G 5G 6G14G24G25G29G30
+ 21798529.595 -12291558.641 6 -9356935.64945 21798544.9464 0.000
+ 18965493.054 -27432973.944 8 -20731191.17247 18965502.2104 0.000
+ 22610114.220 9580522.765 5 7496676.77145 22610132.4784 0.000
+ 23072600.213 -5518604.943 4 3881067.99445 23072618.8654 0.000
+ 20189220.898 -21261802.605 8 -16372406.00146 20189230.5994 0.000
+ 22518349.399 10556131.427 5 8237374.08145 22518371.2784 0.000
+ 19364792.990 -22564122.199 6 -17377612.83347 19364802.7054 0.000
+ 02 1 30 11 56 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21812801.561 -12216559.302 5 -9298494.80945 21812817.8944 0.000
+ 18966733.002 -27426458.024 7 -20726113.82247 18966741.8804 0.000
+ 22625745.522 9662663.618 5 7560682.11145 22625764.3574 0.000
+ 22530313.155 -83177.27014 0.000 0.000 0.000
+ 23085588.929 -5450349.657 4 3934253.76945 23085608.8584 0.000
+ 20177592.859 -21322908.098 8 -16420020.59946 20177602.1684 0.000
+ 22534064.256 10638710.623 5 8301720.87545 22534085.4334 0.000
+ 19372471.619 -22523770.913 7 -17346170.32247 19372481.6794 0.000
+ 02 1 30 11 56 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21827099.928 -12141421.441 6 -9239946.03345 21827115.0814 0.000
+ 18968048.834 -27419543.369 7 -20720725.76347 18968058.0674 0.000
+ 22641401.110 9744932.235 5 7624786.96345 22641418.9974 0.000
+ 22509679.309 -191608.056 3 0.000 0.000 0.000
+ 23098649.081 -5381719.398 5 3987731.69645 23098664.0874 0.000
+ 20166047.956 -21383576.763 8 -16467294.81347 20166057.8654 0.000
+ 22549796.568 10721381.734 5 8366139.21245 22549819.5864 0.000
+ 19380204.308 -22483135.611 7 -17314506.50747 19380213.7354 0.000
+ 02 1 30 11 57 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21841425.382 -12066141.470 6 -9181286.53945 21841441.0504 0.000
+ 18969441.036 -27412227.289 7 -20715024.90047 18969450.4294 0.000
+ 22657081.038 9827329.370 5 7688992.01145 22657100.2094 0.000
+ 22489060.211 -299959.585 3 -36577.23555 22489082.6584 0.000
+ 23111780.817 -5312712.761 3 4041502.99345 23111800.2414 0.000
+ 20154587.388 -21443802.227 8 -16514223.67547 20154597.0324 0.000
+ 22565546.346 10804145.509 3 8430629.78845 22565569.5674 0.000
+ 19387991.678 -22442212.922 7 -17282618.74547 19388001.9544 0.000
+ 02 1 30 11 57 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21855775.561 -11990731.838 6 -9122525.94545 21855793.0064 0.000
+ 18970907.157 -27404522.669 7 -20709021.27647 18970916.6274 0.000
+ 22672782.710 9909840.310 5 7753285.69945 22672801.2254 0.000
+ 22468454.822 -408241.183 5 -120952.10845 22468471.1374 0.000
+ 23124981.412 -5243343.576 2 4095556.70745 23125001.6574 0.000
+ 20143209.280 -21503594.262 8 -16560814.79947 20143218.8994 0.000
+ 22581311.061 10886987.086 5 8495180.96445 22581335.0604 0.000
+ 19395831.510 -22401014.687 6 -17250516.27647 19395841.0164 0.000
+ 02 1 30 11 58 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21870151.265 -11915187.968 6 -9063660.78845 21870167.1254 0.000
+ 18972447.953 -27396425.708 6 -20702711.93447 18972457.1654 0.000
+ 22688506.563 9992466.917 5 7817669.42645 22688524.6404 0.000
+ 22447863.970 -516445.054 3 -205266.38345 22447886.7834 0.000
+ 23138251.665 -5173609.865 3 0.000 0.000 0.000
+ 20131914.942 -21562946.203 8 -16607062.99547 20131924.0634 0.000
+ 22597091.016 10969908.462 3 8559794.25045 22597113.5894 0.000
+ 19403724.670 -22359536.214 6 -17218195.42847 19403734.2634 0.000
+ 02 1 30 11 58 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21884553.964 -11839502.088 6 -9004684.93245 21884569.1984 0.000
+ 18974064.750 -27387929.389 7 -20696091.40447 18974073.8314 0.000
+ 22704253.119 10075214.010 4 7882147.12345 22704273.3504 0.000
+ 22427290.053 -624560.238 2 -289511.45344 22427313.6804 0.000
+ 23151592.063 -5103505.603 2 0.000 0.000 0.000
+ 20120706.257 -21621847.929 8 -16652960.38547 20120715.7094 0.000
+ 22612886.849 11052914.530 3 8624473.61045 22612909.6944 0.000
+ 19411672.627 -22317769.606 7 -17185650.07547 19411682.6984 0.000
+ 02 1 30 11 59 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21898983.232 -11763676.268 5 -8945600.06945 21898999.8744 0.000
+ 18975756.971 -27379036.546 8 -20689161.87047 18975765.9734 0.000
+ 22720021.733 10158077.001 5 7946715.12045 22720040.4654 0.000
+ 22406730.510 -7195.97111 -373686.87345 22406749.8254 0.000
+ 23165002.547 -5033034.477 4 0.000 0.000 0.000
+ 20109583.276 -21680299.200 8 -16698506.77747 20109592.8674 0.000
+ 22628697.924 11136000.580 2 8689215.26145 22628725.4754 0.000
+ 19419675.028 -22275716.883 6 -17152881.76247 19419684.6994 0.000
+ 02 1 30 11 59 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21913437.850 -11687717.355 5 -8886411.52945 21913455.6244 0.000
+ 18977523.208 -27369754.819 6 -20681929.31547 18977532.0224 0.000
+ 22735810.781 10241046.321 5 8011365.94145 22735827.9714 0.000
+ 22386192.998 -21576.69213 0.000 0.000 0.000
+ 23178480.878 -4962205.461 3 40498.70154 23178498.3804 0.000
+ 20098545.238 -21738304.078 7 -16743705.33146 20098554.9504 0.000
+ 22644522.524 11219157.102 3 8754011.83245 22644550.6104 0.000
+ 19427730.611 -22233384.654 8 -17119895.66047 19427740.8194 0.000
+ 02 1 30 12 0 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21927917.883 -11611624.982 5 -8827118.95945 21927935.6634 0.000
+ 18979363.395 -27360084.645 6 -20674394.08447 18979372.0724 0.000
+ 22751619.501 10324119.743 4 8076097.87245 22751641.0164 0.000
+ 22365670.140 -129427.146 5 0.000 0.000 0.000
+ 23192026.851 -4891020.115 2 95967.72744 23192046.4394 0.000
+ 20087592.670 -21795859.957 7 -16788554.02646 20087602.1304 0.000
+ 22660360.156 11302381.920 3 8818861.58845 22660384.7294 0.000
+ 19435839.486 -22190772.268 6 -17086691.25347 19435848.9174 0.000
+ 02 1 30 12 0 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21942422.799 -11535401.517 5 -8767724.23845 21942439.8364 0.000
+ 18981276.920 -27350028.997 6 -20666558.47747 18981285.6404 0.000
+ 22767447.195 10407292.337 5 8140907.17745 22767469.7904 0.000
+ 22345163.360 -237187.262 3 -5593.51455 22345178.1464 0.000
+ 23205640.331 -4819482.736 5 151710.94943 23205653.4714 0.000
+ 20076725.521 -21852966.925 8 -16833052.90146 20076735.2494 0.000
+ 22676210.038 11385670.097 4 8883760.71545 22676232.9584 0.000
+ 19444001.231 -22147882.087 8 -17053270.37047 19444011.1714 0.000
+ 02 1 30 12 1 29.9950000 0 7G 5G 6G14G24G25G29G30
+ 21956953.985 -11459040.104 5 -8708222.05445 21956970.7034 0.000
+ 18983264.927 -27339581.870 6 -20658417.82747 18983273.8454 0.000
+ 22783294.799 10490568.396 5 8205796.97845 22783313.6044 0.000
+ 23219321.414 -4747588.121 2 207732.59245 23219339.9484 0.000
+ 20065945.631 -21909615.397 8 -16877194.50246 20065954.9544 0.000
+ 22692072.689 11469025.809 4 8948712.47445 22692096.4254 0.000
+ 19452217.211 -22104706.799 8 -17019627.34147 19452227.2534 0.000
+ 02 1 30 12 1 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21971511.573 -11382540.372 6 -8648612.05545 21971528.7954 0.000
+ 18985327.361 -27328743.612 7 -20649972.40647 18985336.2714 0.000
+ 22799161.419 10573945.384 4 8270765.40445 22799180.2964 0.000
+ 22304207.093 -103965.850 4 0.000 0.000 0.000
+ 23233070.490 -4675337.661 4 264031.43745 23233091.6054 0.000
+ 20055253.479 -21965802.818 8 -16920976.86147 20055263.3954 0.000
+ 22707947.644 11552447.005 3 9013715.25145 22707977.7254 0.000
+ 19460487.551 -22061245.915 8 -16985761.75947 19460497.7874 0.000
+ 02 1 30 12 2 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 21986094.467 -11305908.085 5 -8588898.84145 21986110.7384 0.000
+ 18987462.966 -27317520.814 6 -20641227.34347 18987472.1004 0.000
+ 22815045.454 10657414.630 4 8335805.73845 22815067.3714 0.000
+ 22283759.153 -211420.489 4 0.000 0.000 0.000
+ 23246885.735 -4602739.340 3 320601.30744 23246898.6614 0.000
+ 20044648.348 -22021532.886 8 -16964402.83747 20044658.2654 0.000
+ 22723833.771 11635924.935 5 9078762.21745 22723857.3094 0.000
+ 19468811.177 -22017505.154 7 -16951678.08847 19468820.6364 0.000
+ 02 1 30 12 2 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 22000702.755 -11229142.403 6 -8529081.61545 22000719.6884 0.000
+ 18989671.752 -27305913.491 6 -20632182.66547 18989680.7514 0.000
+ 22830946.825 10740974.734 5 8400916.96245 22830966.6854 0.000
+ 22263331.081 -318770.100 4 -50177.22355 22263347.1344 0.000
+ 23260767.143 -4529794.734 4 0.000 0.000 0.000
+ 20034130.869 -22076802.361 8 -17007469.91647 20034140.7714 0.000
+ 22739730.215 11719457.903 4 9143851.97845 22739760.2094 0.000
+ 19477188.253 -21973483.636 8 -16917375.67047 19477198.7294 0.000
+ 02 1 30 12 3 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 22015336.225 -11152243.706 5 -8469160.75645 22015352.0944 0.000
+ 18991953.501 -27293922.806 7 -20622839.26747 18991962.3774 0.000
+ 22846864.996 10824622.723 5 8466096.50245 22846884.8004 0.000
+ 22242923.204 -426011.737 3 -133741.73345 22242939.8954 0.000
+ 23274713.799 -4456505.948 3 0.000 0.000 0.000
+ 20023701.426 -22131609.386 8 -17050176.62747 20023711.0554 0.000
+ 22755636.478 11803042.939 3 9208982.32545 22755661.2514 0.000
+ 19485618.718 -21929181.589 6 -16882854.62547 19485628.5664 0.000
+ 02 1 30 12 3 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 22029995.473 -11075209.097 5 -8409133.99345 22030012.7244 0.000
+ 18994308.588 -27281546.743 7 -20613195.56947 18994317.8324 0.000
+ 22862799.855 10908358.714 5 8531344.70145 22862822.5884 0.000
+ 22222537.065 -533139.466 2 -217217.51645 22222554.7924 0.000
+ 23288725.614 -4382871.878 2 0.000 0.000 0.000
+ 20013361.090 -22185948.185 8 -17092518.50147 20013370.0174 0.000
+ 22771552.873 11886680.335 5 9274153.50245 22771580.5434 0.000
+ 19494103.193 -21884595.789 8 -16848112.50847 19494113.1014 0.000
+ 02 1 30 12 4 29.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 22044679.089 -10998046.539 5 -8349007.50945 22044695.6364 0.000
+ 18996735.307 -27268794.114 7 -20603258.45347 18996743.9304 0.000
+ 22878749.380 10992171.715 5 8596652.85745 22878774.3574 0.000
+ 22202171.853 -640158.079 4 -300608.11845 22202188.9194 0.000
+ 23302801.787 -4308902.932 5 40371.78954 23302825.4404 0.000
+ 20003108.620 -22239825.014 8 -17134500.37447 20003117.9984 0.000
+ 22787477.244 11970359.450 5 9339357.12045 22787504.5534 0.000
+ 19502640.108 -21839734.316 6 -16813155.56947 19502649.7134 0.000
+ 02 1 30 12 4 59.9950000 0 8G 5G 6G14G17G24G25G29G30
+ 22059388.213 -10920750.459 5 -8288777.02645 22059405.9674 0.000
+ 18999234.687 -27255659.686 7 -20593023.84147 18999243.0484 0.000
+ 22894714.250 11076065.316 5 8662023.81045 22894734.9524 0.000
+ 22181829.009 -747058.505 3 -383906.73545 22181847.2354 0.000
+ 23316942.167 -4234594.610 2 0.000 0.000 0.000
+ 19992945.612 -22293231.574 8 -17176115.82447 19992955.0904 0.000
+ 22803410.027 12054083.432 4 9404595.68845 22803432.0224 0.000
+ 19511230.648 -21794590.903 8 -16777978.93847 19511240.0024 0.000
+ 02 1 30 12 5 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22074121.751 -10843326.519 6 -8228446.86145 22074139.0354 0.000
+ 19001805.472 -27242149.995 7 -20582496.81747 19001814.4804 0.000
+ 22910692.929 11160031.205 4 8727451.07145 22910711.0024 0.000
+ 22161508.374 -853843.226 5 -467115.21145 22161527.2874 0.000
+ 22639370.968 -98920.207 3 0.000 0.000 0.000
+ 19982871.395 -22346171.495 8 -17217367.66147 19982881.6134 0.000
+ 22819349.798 12137844.296 4 9469863.01845 22819380.3494 0.000
+ 19519873.762 -21749171.078 8 -16742586.91547 19519883.5824 0.000
+ 02 1 30 12 5 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22088880.909 -10765767.808 6 -8168011.71345 22088898.1284 0.000
+ 19004448.778 -27228259.113 8 -20571672.75847 19004457.9664 0.000
+ 22926686.277 11244073.481 5 8792937.88445 22926705.3834 0.000
+ 22141211.598 -960502.464 5 -550225.88945 22141229.4414 0.000
+ 22619905.493 -201209.220 3 0.000 0.000 0.000
+ 19972887.822 -22398635.308 8 -17258248.50147 19972897.6114 0.000
+ 22835297.382 12221645.929 4 9535162.08845 22835325.9944 0.000
+ 19528570.776 -21703468.016 7 -16706974.17947 19528580.4224 0.000
+ 02 1 30 12 6 29.9950000 0 9G 5G 6G14G17G22G24G25G29G30
+ 22103663.952 -10688083.276 5 -8107478.56045 22103682.2164 0.000
+ 19007162.805 -27213996.827 6 -20560559.30447 19007171.6384 0.000
+ 22942691.941 11328180.584 5 8858475.12345 22942711.6194 0.000
+ 22120937.462 -1067041.897 4 -633243.22545 22120954.8804 0.000
+ 22600447.611 -303460.426 3 -42486.61255 22600467.1184 0.000
+ 23359742.420 72793.549 1 0.000 0.000 0.000
+ 19962993.514 -22450630.130 8 -17298763.88847 19963003.0114 0.000
+ 22851250.564 12305477.000 4 9600484.04245 22851276.7924 0.000
+ 19537320.044 -21657490.487 8 -16671147.58347 19537330.3644 0.000
+ 02 1 30 12 6 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22118471.132 -10610271.436 5 -8046846.17345 22118488.9884 0.000
+ 19009947.717 -27199362.172 6 -20549155.69347 19009956.2804 0.000
+ 22958709.629 11412351.582 5 8924062.22445 22958729.8064 0.000
+ 22100687.005 -1173456.537 3 -716163.36645 22100703.0014 0.000
+ 22580997.637 -405670.832 3 -122130.69145 22581009.9344 0.000
+ 19953189.332 -22502151.449 8 -17338910.32047 19953198.6074 0.000
+ 22867209.053 12389336.666 3 9665828.24645 22867240.6854 0.000
+ 19546121.910 -21611236.581 6 -16635105.62147 19546131.5884 0.000
+ 02 1 30 12 7 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22133303.887 -10532324.348 5 -7986108.39645 22133320.7894 0.000
+ 19012804.716 -27184348.560 7 -20537456.79147 19012813.8364 0.000
+ 22974740.341 11496591.557 4 8989702.99845 22974763.1514 0.000
+ 22080462.445 -1279735.654 4 -798977.89745 22080479.5574 0.000
+ 22561556.852 -507831.458 3 -201736.19945 22561570.0924 0.000
+ 19943477.044 -22553189.750 8 -17378680.36847 19943485.8954 0.000
+ 22883174.120 12473229.858 4 9731198.68145 22883199.4704 0.000
+ 19554977.827 -21564698.582 8 -16598842.28447 19554988.0424 0.000
+ 02 1 30 12 7 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22148160.941 -10454249.874 4 -7925271.39945 22148178.2314 0.000
+ 19015732.256 -27168964.266 7 -20525469.04347 19015741.5684 0.000
+ 22990782.412 11580890.244 5 9055389.61045 22990803.9744 0.000
+ 22060262.905 -1385883.868 5 -881690.39645 22060281.2654 0.000
+ 22542124.204 -609948.683 3 -281307.74945 22542141.2854 0.000
+ 19933855.598 -22603750.597 7 -17418078.38047 19933865.0284 0.000
+ 22899143.526 12557146.313 3 9796587.19445 22899173.8774 0.000
+ 19563886.400 -21517883.829 8 -16562363.30747 19563896.3404 0.000
+ 02 1 30 12 8 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22163042.557 -10376047.673 5 -7864334.83345 22163060.7824 0.000
+ 19018730.189 -27153210.017 7 -20513193.02047 19018739.5544 0.000
+ 23006835.203 11665245.254 5 9121119.92345 23006852.8894 0.000
+ 22040088.913 -1491897.696 5 -964298.18045 22040104.2264 0.000
+ 22522700.295 -712020.946 4 -360844.38245 22522712.1304 0.000
+ 19924325.478 -22653831.411 8 -17457102.35047 19924334.2384 0.000
+ 22915116.820 12641083.868 3 9861992.06545 22915149.4884 0.000
+ 19572847.683 -21470792.308 8 -16525668.65347 19572857.9584 0.000
+ 02 1 30 12 8 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22177949.002 -10297715.425 5 -7803296.89045 22177967.9004 0.000
+ 19021798.831 -27137084.242 7 -20500627.49347 19021808.2604 0.000
+ 23022898.681 11749656.334 5 9186894.05845 23022920.7254 0.000
+ 22019941.509 -1597771.382 5 -1046796.79645 22019958.5924 0.000
+ 22503285.860 -814044.381 4 -440342.97445 22503300.4494 0.000
+ 19914887.602 -22703427.425 8 -17495748.55147 19914896.6124 0.000
+ 22931094.237 12725042.186 3 9927413.15345 22931119.5904 0.000
+ 19581862.203 -21423421.056 7 -16488756.03947 19581872.1264 0.000
+ 02 1 30 12 9 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22192881.320 -10219247.285 5 -7742153.09245 22192898.9914 0.000
+ 19024939.108 -27120582.007 8 -20487768.61747 19024947.9584 0.000
+ 23038973.407 11834126.840 5 9252714.53945 23038993.2174 0.000
+ 21999822.563 -1703496.100 5 -1129179.36345 21999839.0384 0.000
+ 22483881.984 -916011.943 4 -519797.96245 22483898.5514 0.000
+ 19905543.439 -22752530.870 7 -17534010.92646 19905552.5674 0.000
+ 22947076.330 12809024.731 2 9992852.95445 22947110.0534 0.000
+ 19590931.018 -21375764.416 7 -16451621.00247 19590941.3934 0.000
+ 02 1 30 12 9 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22207837.983 -10140650.507 5 -7680909.04845 22207856.1514 0.000
+ 19028149.512 -27103711.212 8 -20474622.56447 19028158.3244 0.000
+ 23055057.720 11918647.042 5 9318573.60245 23055077.9594 0.000
+ 21979731.076 -1809075.835 5 -1211448.88645 21979747.6014 0.000
+ 22464487.529 -1017929.236 3 -599213.95045 22464503.3114 0.000
+ 19896292.130 -22801146.570 8 -17571893.25947 19896301.3034 0.000
+ 22963061.287 12893021.852 3 10058304.26145 22963090.6594 0.000
+ 19600052.830 -21327829.256 7 -16414268.98547 19600062.3554 0.000
+ 02 1 30 12 10 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22222818.998 -10061925.518 5 -7619565.14245 22222836.9274 0.000
+ 19031429.824 -27086473.226 6 -20461190.38647 19031438.3024 0.000
+ 23071150.812 12003213.585 5 9384468.82745 23071173.3184 0.000
+ 21959667.713 -1914507.942 5 -1293603.39645 21959684.1484 0.000
+ 22445102.857 -1119795.446 4 -678590.01045 22445117.6874 0.000
+ 19887133.997 -22849272.756 8 -17609394.13347 19887142.8964 0.000
+ 22979048.275 12977030.267 2 10123764.28745 22979082.3264 0.000
+ 19609227.548 -21279615.874 8 -16376700.13147 19609237.6634 0.000
+ 02 1 30 12 10 59.9950000 0 9G 5G 6G14G17G22G24G25G29G30
+ 22237824.296 -9983072.713 5 -7558121.65345 22237841.8104 0.000
+ 19034779.762 -27068869.286 7 -20447473.02947 19034789.0544 0.000
+ 23087252.199 12087823.817 5 9450398.11845 23087277.2084 0.000
+ 21939632.966 -2019789.460 5 -1375640.60245 21939650.9984 0.000
+ 22425728.256 -1221609.472 5 -757925.48045 22425746.5414 0.000
+ 23491456.989 10437.43512 0.000 0.000 0.000
+ 19878069.327 -22896907.775 8 -17646512.28547 19878078.5884 0.000
+ 22995036.966 13061047.290 2 10189230.97445 22995068.5454 0.000
+ 19618455.182 -21231124.532 7 -16338914.71447 19618464.6844 0.000
+ 02 1 30 12 11 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22252853.947 -9904091.865 5 -7496578.41545 22252871.0704 0.000
+ 19038199.162 -27050900.159 7 -20433471.11147 19038208.5844 0.000
+ 23103361.511 12172475.452 5 9516359.61345 23103385.6264 0.000
+ 21919627.542 -2124916.986 5 -1457557.77745 21919643.7334 0.000
+ 22406363.832 -1323369.912 5 -837219.24945 22406380.6914 0.000
+ 19869098.585 -22944049.254 8 -17683245.87647 19869108.0434 0.000
+ 23011026.997 13145070.529 4 10254702.51845 23011049.3484 0.000
+ 19627735.787 -21182354.942 8 -16300912.47147 19627745.4294 0.000
+ 02 1 30 12 11 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22267907.560 -9824985.729 5 -7434937.45445 22267925.1894 0.000
+ 19041687.419 -27032569.292 6 -20419187.32347 19041696.2184 0.000
+ 23119477.574 12257163.133 5 9582349.16045 23119500.8204 0.000
+ 21899651.590 -2229889.996 5 -1539354.53445 21899668.3014 0.000
+ 22387009.393 -1425077.819 5 -916471.97445 22387024.3744 0.000
+ 19860221.630 -22990697.919 8 -17719595.44547 19860231.4454 0.000
+ 23027017.183 13229094.804 4 10320174.82045 23027047.8114 0.000
+ 19637068.836 -21133309.515 6 -16262695.29147 19637078.0794 0.000
+ 02 1 30 12 12 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22282985.435 -9745752.379 5 -7373197.40045 22283000.9374 0.000
+ 19045244.741 -27013875.543 7 -20404620.77147 19045253.6294 0.000
+ 23135600.346 12341886.249 3 9648366.31845 23135621.6784 0.000
+ 21879705.974 -2334703.458 5 -1621026.99445 21879723.4774 0.000
+ 22367665.502 -1526729.840 5 -995681.18545 22367680.3144 0.000
+ 19851439.210 -23036849.766 8 -17755557.87947 19851448.4644 0.000
+ 23043007.591 13313119.447 4 10385647.33945 23043037.6994 0.000
+ 19646454.790 -21083986.271 8 -16224261.63747 19646465.1084 0.000
+ 02 1 30 12 12 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22298087.602 -9666390.904 5 -7311357.48645 22298103.9824 0.000
+ 19048871.120 -26994818.841 7 -20389771.37847 19048879.9134 0.000
+ 23151729.569 12426643.370 3 9714409.97645 23151757.1264 0.000
+ 21859791.504 -2439353.054 5 -1702571.75645 21859809.1424 0.000
+ 22348332.726 -1628323.656 5 -1074845.01945 22348349.4434 0.000
+ 19842751.940 -23082501.591 8 -17791130.69147 19842760.9944 0.000
+ 23058997.658 13397143.208 4 10451119.35645 23059030.1994 0.000
+ 19655893.804 -21034383.957 8 -16185610.53247 19655903.4834 0.000
+ 02 1 30 12 13 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22313212.785 -9586908.478 5 -7249423.38045 22313229.3814 0.000
+ 19052565.049 -26975407.223 7 -20374645.44447 19052573.6844 0.000
+ 23167863.445 12511424.538 4 9780472.36845 23167884.7844 0.000
+ 21839907.469 -2543843.037 5 -1783992.13845 21839924.5804 0.000
+ 22329009.914 -1729865.137 5 -1153968.02345 22329025.7144 0.000
+ 19834158.797 -23127658.643 8 -17826317.94347 19834168.1904 0.000
+ 23074985.541 13481156.053 4 10516582.69645 23075013.7254 0.000
+ 19665384.512 -20984509.828 8 -16146747.60347 19665394.5434 0.000
+ 02 1 30 12 13 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22328361.249 -9507303.568 4 -7187393.86045 22328379.6474 0.000
+ 19056326.595 -26955640.150 7 -20359242.51247 19056335.8034 0.000
+ 23184001.879 12596228.859 3 9846552.73445 23184023.6044 0.000
+ 21820054.685 -2648168.590 5 -1865284.41645 21820071.5704 0.000
+ 22309697.561 -1831351.174 5 -1233047.79645 22309713.7564 0.000
+ 19825660.477 -23172317.387 8 -17861116.92547 19825669.9884 0.000
+ 23090971.465 13565157.196 4 10582036.84045 23091003.0504 0.000
+ 19674927.285 -20934362.123 8 -16107671.53347 19674937.2484 0.000
+ 02 1 30 12 14 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22343533.767 -9427572.991 5 -7125266.39445 22343552.2544 0.000
+ 19060156.254 -26935515.092 7 -20343560.64347 19060165.3794 0.000
+ 23200144.641 12681056.999 3 9912651.76344 23200168.4844 0.000
+ 21800234.379 -2752323.108 5 -1946443.37545 21800251.0554 0.000
+ 22290396.650 -1932777.097 5 -1312080.79545 22290412.3984 0.000
+ 19817258.106 -23216472.089 8 -17895523.15447 19817267.1084 0.000
+ 23106955.259 13649147.575 3 10647482.64045 23106987.7184 0.000
+ 19684522.822 -20883937.371 7 -16068379.57547 19684532.5514 0.000
+ 02 1 30 12 14 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22358730.186 -9347716.741 5 -7063040.94545 22358747.5914 0.000
+ 19064053.846 -26915032.924 7 -20327600.50247 19064062.8874 0.000
+ 23216291.678 12765906.645 5 9978767.43045 23216317.8554 0.000
+ 21780447.232 -2856303.552 5 -2027466.73445 21780463.3534 0.000
+ 22271107.402 -2034141.392 4 -1391065.74345 22271124.0484 0.000
+ 19808952.033 -23260120.785 8 -17929535.08647 19808961.8654 0.000
+ 23122936.450 13733124.670 2 10712918.12544 23122968.9204 0.000
+ 19694171.138 -20833235.531 8 -16028871.69047 19694181.1624 0.000
+ 02 1 30 12 15 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22373948.685 -9267744.413 5 -7000725.08245 22373965.1404 0.000
+ 19068017.403 -26894204.273 7 -20311370.37847 19068026.1654 0.000
+ 23232440.703 12850765.439 5 10044890.19645 23232464.2744 0.000
+ 21760692.139 -2960116.112 6 -2108359.25845 21760706.9524 0.000
+ 22251828.236 -2135452.321 3 -1470009.14545 22251844.3394 0.000
+ 19800740.860 -23303270.682 8 -17963158.33047 19800749.8964 0.000
+ 23138912.898 13817076.367 3 10778333.60145 23138943.3324 0.000
+ 19703870.350 -20782266.068 8 -15989155.30547 19703879.9404 0.000
+ 02 1 30 12 15 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22389191.742 -9187642.539 5 -6938308.30445 22389208.9634 0.000
+ 19072049.269 -26873016.593 7 -20294860.48847 19072058.5294 0.000
+ 23248593.377 12935644.594 4 10111028.85045 23248619.1754 0.000
+ 21740972.127 -3063744.248 6 -2189108.09546 21740987.0474 0.000
+ 22232562.205 -2236694.861 3 -1548899.21445 22232579.3234 0.000
+ 19792627.419 -23345906.820 8 -17996381.25747 19792636.4884 0.000
+ 23154886.511 13901013.558 2 10843737.84845 23154920.7424 0.000
+ 19713623.072 -20731015.288 8 -15949219.69247 19713633.2234 0.000
+ 02 1 30 12 16 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22404458.072 -9107418.477 5 -6875796.28745 22404475.3884 0.000
+ 19076147.965 -26851477.838 7 -20278077.05347 19076157.2314 0.000
+ 23264748.059 13020534.490 4 10177175.87045 23264776.6194 0.000
+ 21721286.344 -3167192.076 5 -2269716.42845 21721301.3764 0.000
+ 22213307.859 -2337874.934 2 -1627740.63845 22213325.4484 0.000
+ 19784610.741 -23388034.389 8 -18029207.90247 19784619.7504 0.000
+ 23170855.483 13984926.717 2 10909123.28643 23170885.7714 0.000
+ 19723428.042 -20679490.164 8 -15909070.34047 19723437.9004 0.000
+ 02 1 30 12 16 59.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22419747.293 -9027074.007 5 -6813190.49045 22419763.2624 0.000
+ 19080312.960 -26829590.742 8 -20261022.17847 19080322.4924 0.000
+ 23280904.016 13105430.664 4 10243327.63545 23280929.9844 0.000
+ 21701635.178 -3270458.112 5 -2350183.12646 21701651.2354 0.000
+ 22194065.600 -2438992.685 4 -1706533.47145 22194081.4754 0.000
+ 19776690.833 -23429653.443 8 -18061638.29347 19776700.3654 0.000
+ 23186819.304 14068811.406 3 10974486.43844 23186846.3144 0.000
+ 19733284.850 -20627692.644 8 -15868708.70147 19733294.8914 0.000
+ 02 1 30 12 17 29.9950000 0 8G 5G 6G14G17G22G25G29G30
+ 22435060.827 -8946601.696 5 -6750485.02345 22435075.9204 0.000
+ 19084545.487 -26807348.678 6 -20243690.70247 19084554.5084 0.000
+ 23297062.142 13190337.952 4 10309488.18345 23297090.4834 0.000
+ 21682020.729 -3373531.711 6 -2430499.89846 21682036.5374 0.000
+ 22174836.912 -2540039.312 3 -1785270.88945 22174854.4394 0.000
+ 19768869.646 -23470754.003 8 -18093664.67447 19768878.8784 0.000
+ 23202778.795 14152672.968 2 11039831.64945 23202819.5394 0.000
+ 19743194.949 -20575615.013 8 -15828128.80347 19743205.1874 0.000
+ 02 1 30 12 17 59.9950000 0 7G 5G 6G14G17G22G25G30
+ 22450397.345 -8866008.775 5 -6687685.62645 22450415.1624 0.000
+ 19088844.034 -26784759.830 7 -20226089.00747 19088852.8954 0.000
+ 23313220.434 13275246.796 4 10375649.94645 23313249.5684 0.000
+ 21662442.010 -3476416.912 6 -2510669.87046 21662458.5374 0.000
+ 22155620.867 -2641020.379 4 -1863957.18145 22155636.8984 0.000
+ 19761146.064 -23511341.730 8 -18125291.44047 19761155.7264 0.000
+ 19753157.012 -20523264.403 8 -15787336.19947 19753167.4524 0.000
+ 02 1 30 12 18 29.9950000 0 7G 5G 6G14G17G22G25G30
+ 22465756.326 -8785297.925 5 -6624794.29945 22465775.3964 0.000
+ 19093207.881 -26761827.671 7 -20208219.79947 19093216.8594 0.000
+ 23329378.071 13360152.235 2 10441808.86645 23329408.5194 0.000
+ 21642899.305 -3579113.060 6 -2590692.52346 21642914.7004 0.000
+ 22136417.083 -2741937.052 5 -1942593.40945 22136429.8984 0.000
+ 19753519.981 -23551417.076 8 -18156518.96247 19753528.9614 0.000
+ 19763170.543 -20470643.167 8 -15746332.69547 19763180.7854 0.000
+ 02 1 30 12 18 59.9950000 0 7G 5G 6G14G17G22G25G30
+ 22481137.590 -8704469.912 5 -6561811.70245 22481155.1654 0.000
+ 19097636.747 -26738553.801 6 -20190084.32247 19097645.7894 0.000
+ 23345534.405 13445050.676 4 10507962.58445 23345563.0804 0.000
+ 21623393.110 -3681617.767 6 -2670565.99846 21623407.8454 0.000
+ 22117225.496 -2842788.566 2 -2021178.70945 22117242.8964 0.000
+ 19745991.600 -23590978.839 7 -18187346.27747 19746001.3794 0.000
+ 19773235.449 -20417751.926 8 -15705118.82247 19773246.1784 0.000
+ 02 1 30 12 19 29.9950000 0 7G 5G 6G14G17G22G25G30
+ 22496541.661 -8623521.627 5 -6498735.39845 22496560.4304 0.000
+ 19102131.059 -26714936.015 7 -20171680.86947 19102140.4094 0.000
+ 23361689.659 13529943.182 3 10574111.48045 23361718.3744 0.000
+ 21603924.515 -3783924.743 6 -2750285.41846 21603938.7614 0.000
+ 22098047.115 -2943570.465 2 -2099709.96144 22098063.3244 0.000
+ 19738561.844 -23630022.249 7 -18217769.68847 19738571.3624 0.000
+ 19783352.297 -20364587.655 8 -15663692.18047 19783362.8854 0.000
+ 02 1 30 12 19 59.9950000 0 7G 5G 6G14G17G22G25G30
+ 22511969.196 -8542449.972 5 -6435562.94545 22511986.3494 0.000
+ 19106691.182 -26690972.253 7 -20153007.82447 19106700.4244 0.000
+ 23377844.001 13614830.320 3 10640256.12745 23377877.8964 0.000
+ 21584494.746 -3886027.601 6 -2829845.80946 21584510.4234 0.000
+ 22078883.141 -3044277.924 4 0.000 0.000 0.000
+ 19731231.641 -23668542.525 8 -18247785.44347 19731240.8204 0.000
+ 19793521.786 -20311146.913 8 -15622050.12047 19793532.7134 0.000
+ 02 1 30 12 20 29.9950000 0 7G 5G 6G14G17G22G25G30
+ 22527418.718 -8461262.883 5 -6372300.55845 22527436.7114 0.000
+ 19111315.559 -26666671.206 7 -20134071.97347 19111324.3334 0.000
+ 23393995.250 13699701.555 4 10706388.44045 23394023.3524 0.000
+ 21565102.929 -3987931.120 6 -2909250.90946 21565118.1774 0.000
+ 22059732.062 -3144917.441 3 0.000 0.000 0.000
+ 19723999.979 -23706545.175 8 -18277397.87047 19724009.2214 0.000
+ 19803742.381 -20257437.627 8 -15580198.79747 19803752.9964 0.000
+ 02 1 30 12 20 59.9950000 0 5G 5G 6G17G25G30
+ 22542889.371 -8379964.427 5 -6308951.41245 22542908.8834 0.000
+ 19116003.193 -26642037.693 8 -20114877.01847 19116012.6664 0.000
+ 21545748.856 -4089636.108 6 -2988501.27646 21545765.5404 0.000
+ 19716866.399 -23744032.444 8 -18306608.69847 19716875.6124 0.000
+ 19814013.365 -20203463.614 8 -15538141.17047 19814024.3164 0.000
+ 02 1 30 12 21 29.9950000 0 6G 5G 6G14G17G25G30
+ 22558383.048 -8298545.429 5 -6245508.32345 22558398.0314 0.000
+ 19120755.615 -26617063.670 6 -20095416.75247 19120764.1644 0.000
+ 23426288.634 82002.494 3 10838605.54045 23426315.5864 0.000
+ 21526434.977 -4191130.102 6 -3067587.27746 21526451.4994 0.000
+ 19709832.933 -23780993.481 8 -18335409.47847 19709842.5984 0.000
+ 19824336.483 -20149215.589 8 -15495870.05647 19824346.4364 0.000
+ 02 1 30 12 21 59.9950000 0 6G 5G 6G14G17G25G30
+ 22573898.648 -8217011.580 4 -6181975.69545 22573917.5144 0.000
+ 19125571.564 -26591755.658 8 -20075696.24347 19125580.7904 0.000
+ 23442427.935 166812.708 3 10904690.18445 23442459.0594 0.000
+ 21507160.750 -4292415.733 6 -3146510.86746 21507177.3114 0.000
+ 19702898.850 -23817432.150 8 -18363803.22847 19702908.2224 0.000
+ 19834710.676 -20094699.000 8 -15453389.65046 19834721.0694 0.000
+ 02 1 30 12 22 29.9950000 0 6G 5G 6G14G17G25G30
+ 22589437.730 -8135354.585 5 -6118347.14145 22589458.4514 0.000
+ 19130452.519 -26566106.052 7 -20055709.54547 19130462.2344 0.000
+ 23458563.826 251605.461 4 10970761.35545 23458595.0234 0.000
+ 21487928.413 -4393481.355 6 -3225263.08246 21487944.2644 0.000
+ 19696066.192 -23853337.916 8 -18391781.73347 19696076.0974 0.000
+ 19845137.542 -20039905.550 8 -15410693.51446 19845147.9684 0.000
+ 02 1 30 12 22 59.9940000 0 6G 5G 6G14G17G25G30
+ 22604998.255 -8053584.635 5 -6054630.58245 22605017.5884 0.000
+ 19135396.749 -26540124.124 7 -20035463.90547 19135405.8644 0.000
+ 23474694.421 336368.107 4 11036808.90645 23474726.9474 0.000
+ 21468737.890 -4494327.612 6 -3303844.33346 21468752.1114 0.000
+ 19689334.086 -23888715.194 8 -18419348.42447 19689343.3804 0.000
+ 19855615.382 -19984844.290 8 -15367788.70246 19855625.5574 0.000
+ 02 1 30 12 23 29.9940000 0 6G 5G 6G14G17G25G30
+ 22620579.793 -7971704.115 5 -5990827.84545 22620599.0344 0.000
+ 19140402.845 -26513816.840 7 -20014964.73947 19140411.6894 0.000
+ 23490818.267 421095.937 3 11102829.35645 23490851.6404 0.000
+ 21449586.851 -4594966.064 6 -3382263.66146 21449601.8284 0.000
+ 19682700.908 -23923572.743 8 -18446510.12547 19682709.9314 0.000
+ 19866143.397 -19929519.275 8 -15324678.36546 19866153.5544 0.000
+ 02 1 30 12 23 59.9940000 0 6G 5G 6G14G17G25G30
+ 22636184.806 -7889700.202 4 -5926929.01645 22636203.5294 0.000
+ 19145473.518 -26487170.367 8 -19994201.27147 19145482.6314 0.000
+ 23506937.283 505799.193 3 11168830.57044 23506969.5364 0.000
+ 21430479.525 -4695374.678 6 -3460503.87846 21430493.9294 0.000
+ 19676170.176 -23957892.012 8 -18473252.38547 19676179.1034 0.000
+ 19876724.266 -19873916.646 8 -15281351.70246 19876735.0454 0.000
+ 02 1 30 12 24 29.9940000 0 6G 5G 6G14G17G25G30
+ 22651811.257 -7807583.828 4 -5862942.49545 22651831.0814 0.000
+ 19150606.433 -26460196.606 8 -19973182.76347 19150615.2574 0.000
+ 23523049.419 590464.985 3 11234802.60145 23523079.7184 0.000
+ 21411414.465 -4795561.045 6 -3538570.94146 21411429.4024 0.000
+ 19669740.174 -23991681.826 8 -18499582.07947 19669749.2614 0.000
+ 19887355.908 -19818047.236 8 -15237817.15846 19887366.3824 0.000
+ 02 1 30 12 24 59.9940000 0 6G 5G 6G14G17G25G30
+ 22667460.181 -7725350.010 5 -5798864.53745 22667480.3504 0.000
+ 19155802.459 -26432891.372 8 -19951905.99647 19155811.5094 0.000
+ 23539154.832 675095.795 3 11300747.38844 23539192.7484 0.000
+ 21392393.279 -4895516.910 6 -3616458.37146 21392409.2074 0.000
+ 19663412.181 -24024935.600 7 -18525494.09047 19663421.6994 0.000
+ 19898039.280 -19761905.955 8 -15194070.77846 19898049.8114 0.000
+ 02 1 30 12 25 29.9940000 0 6G 5G 6G14G17G25G30
+ 22683130.401 -7643004.419 5 -5734699.42945 22683147.6194 0.000
+ 19161060.294 -26405261.156 8 -19930375.95947 19161070.3054 0.000
+ 23555252.340 759683.605 3 11366658.56645 23555282.1844 0.000
+ 21373415.535 -4995244.590 6 -3694167.99046 21373430.3114 0.000
+ 19657185.499 -24057656.998 8 -18550991.26247 19657195.0704 0.000
+ 19908773.401 -19705498.106 8 -15150116.67247 19908784.7564 0.000
+ 02 1 30 12 25 59.9940000 0 6G 5G 6G14G17G25G30
+ 22698821.349 -7560549.109 5 -5670448.83545 22698840.0114 0.000
+ 19166379.427 -26377308.904 7 -19908595.00747 19166388.2604 0.000
+ 23571340.761 844224.064 2 11432532.82543 23571374.0914 0.000
+ 21354481.484 -5094743.154 6 -3771699.11446 21354496.6304 0.000
+ 19651059.942 -24089846.954 8 -18576074.32147 19651069.3634 0.000
+ 19919557.853 -19648825.764 8 -15105956.47746 19919569.1814 0.000
+ 02 1 30 12 26 29.9940000 0 6G 5G 6G14G17G25G30
+ 22714533.603 -7477981.357 5 -5606110.56945 22714552.4054 0.000
+ 19171760.202 -26349032.782 8 -19886561.69547 19171769.2944 0.000
+ 23587420.177 928717.453 2 0.000 0.000 0.000
+ 21335592.142 -5194006.647 6 -3849047.03046 21335606.7444 0.000
+ 19645036.387 -24121500.759 8 -18600739.59347 19645045.7064 0.000
+ 19930393.177 -19591886.138 8 -15061588.03246 19930404.3324 0.000
+ 02 1 30 12 26 59.9940000 0 6G 5G 6G14G17G25G30
+ 22730268.478 -7395294.881 3 -5541679.84245 22730288.5174 0.000
+ 19177203.664 -26320427.232 8 -19864271.65447 19177213.4934 0.000
+ 23603491.668 1013168.052 2 0.000 0.000 0.000
+ 21316749.235 -5293025.462 6 -3926204.25546 21316764.5454 0.000
+ 19639116.423 -24152610.182 8 -18624980.67247 19639125.4444 0.000
+ 19941280.625 -19534672.797 8 -15017006.29046 19941291.4194 0.000
+ 02 1 30 12 27 29.9940000 0 5G 5G 6G17G25G30
+ 22746025.333 -7312493.699 5 -5477159.70945 22746044.3444 0.000
+ 19182708.879 -26291497.240 8 -19841728.84047 19182717.7924 0.000
+ 21297952.768 -5391800.272 6 -4003171.38046 21297967.5514 0.000
+ 19633299.593 -24183177.615 8 -18648799.41647 19633308.5564 0.000
+ 19952219.395 -19477189.529 8 -14972214.21246 19952230.0744 0.000
+ 02 1 30 12 27 59.9940000 0 5G 5G 6G17G25G30
+ 22761803.641 -7229579.596 5 -5412551.60745 22761821.0014 0.000
+ 19188275.282 -26262245.572 8 -19818935.35147 19188284.4244 0.000
+ 21279203.009 -5490329.856 6 -4079947.41346 21279216.9444 0.000
+ 19627585.803 -24213203.582 8 -18672196.24447 19627594.7314 0.000
+ 19963209.206 -19419438.019 8 -14927213.10346 19963219.5514 0.000
+ 02 1 30 12 28 29.9940000 0 5G 5G 6G17G25G30
+ 22777602.682 -7146555.836 4 -5347858.03145 22777625.3354 0.000
+ 19193902.153 -26232676.308 8 -19795894.38647 19193911.6134 0.000
+ 21260499.917 -5588614.160 6 -4156532.30746 21260513.7254 0.000
+ 19621974.827 -24242689.409 8 -18695172.19447 19621983.7804 0.000
+ 19974249.530 -19361421.232 8 -14882005.29246 19974259.5234 0.000
+ 02 1 30 12 28 59.9940000 0 5G 5G 6G17G25G30
+ 22793424.347 -7063413.900 5 -5283072.38745 22793445.5744 0.000
+ 19199590.899 -26202781.779 8 -19772599.96447 19199599.9244 0.000
+ 21241845.762 -5686641.356 6 -4232916.85746 21241860.5054 0.000
+ 19616468.519 -24271625.194 8 -18717719.52847 19616477.4174 0.000
+ 19985341.930 -19303130.678 8 -14836584.16146 19985352.5964 0.000
+ 02 1 30 12 29 29.9940000 0 7G 5G 6G15G17G22G25G30
+ 22809265.980 -6980166.701 5 -5218204.74145 22809286.7824 0.000
+ 19205338.973 -26172575.711 8 -19749062.80547 19205348.6554 0.000
+ 21961999.026 -91694.05115 0.000 0.000 0.000
+ 21223238.749 -5784421.178 6 -4309108.63746 21223252.9584 0.000
+ 21717583.468 -16515.27415 0.000 0.000 0.000
+ 19611064.830 -24300021.745 8 -18739846.69347 19611073.5154 0.000
+ 19996483.947 -19244579.125 7 -14790959.66646 19996494.2614 0.000
+ 02 1 30 12 29 59.9940000 0 7G 5G 6G15G17G22G25G30
+ 22825128.461 -6896810.162 5 -5153251.91545 22825148.7734 0.000
+ 19211146.965 -26142054.697 8 -19725280.20247 19211156.7044 0.000
+ 21939260.214 -211191.992 4 0.000 0.000 0.000
+ 21204680.179 -5881946.377 6 -4385102.02346 21204693.8354 0.000
+ 21698722.882 -115577.454 5 0.000 0.000 0.000
+ 19605764.842 -24327873.270 8 -18761549.14247 19605774.1144 0.000
+ 20007676.464 -19185762.117 7 -14745128.31846 20007686.7484 0.000
+ 02 1 30 12 30 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22841011.743 -6813343.953 5 -5088213.53745 22841031.5104 0.000
+ 19217014.748 -26111219.469 8 -19701252.77647 19217023.2564 0.000
+ 23589004.602 -40427.29413 0.000 0.000 0.000
+ 21916544.824 -330563.420 5 -30992.94555 21916568.1044 0.000
+ 21186170.690 -5979213.294 6 -4460894.16146 21186185.0614 0.000
+ 21679888.916 -214544.145 5 -25696.08054 21679892.8644 0.000
+ 19600568.854 -24355178.213 8 -18782825.69347 19600578.8634 0.000
+ 20018919.549 -19126679.423 8 -14699089.94046 20018929.9984 0.000
+ 02 1 30 12 30 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22856915.948 -6729767.500 5 -5023089.31445 22856936.2634 0.000
+ 19222942.232 -26080070.446 8 -19676980.81447 19222951.4744 0.000
+ 23579036.678 -92808.728 4 0.000 0.000 0.000
+ 21893853.970 -449804.504 3 -123907.49145 21893871.4884 0.000
+ 21167711.043 -6076218.352 6 -4536482.24846 21167724.8364 0.000
+ 21661074.108 -313413.318 4 -102736.74145 21661091.9394 0.000
+ 19595477.274 -24381934.490 8 -18803674.71347 19595486.9974 0.000
+ 20030213.346 -19067330.488 7 -14652844.10146 20030224.6534 0.000
+ 02 1 30 12 31 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22872841.003 -6646081.515 5 -4957879.71345 22872859.9814 0.000
+ 19228929.157 -26048608.884 8 -19652465.31447 19228938.3454 0.000
+ 23569144.295 -144791.335 2 -13467.92455 23569168.8554 0.000
+ 21871188.315 -568912.419 3 -216718.38945 21871207.5054 0.000
+ 21149301.721 -6172958.817 6 -4611864.13746 21149315.4984 0.000
+ 21642278.396 -412183.651 5 -179700.35845 21642289.6404 0.000
+ 19590490.274 -24408141.233 8 -18824095.53947 19590500.0184 0.000
+ 20041557.764 -19007715.553 8 -14606390.99546 20041568.7524 0.000
+ 02 1 30 12 31 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22888786.996 -6562285.606 5 -4892584.55545 22888807.5284 0.000
+ 19234975.434 -26016835.522 8 -19627706.87747 19234984.2924 0.000
+ 23559329.015 -196371.877 4 -53660.37745 23559352.9544 0.000
+ 21848548.560 -687883.203 4 -309422.39845 21848569.0824 0.000
+ 21130943.381 -6269431.255 6 -4687037.21746 21130956.9534 0.000
+ 21623501.997 -510852.963 5 -256585.34545 21623514.7344 0.000
+ 19585608.248 -24433796.364 8 -18844086.53347 19585617.6744 0.000
+ 20052952.868 -18947834.333 7 -14559730.38946 20052963.4764 0.000
+ 02 1 30 12 32 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22904752.169 -6478388.548 4 -4827210.47045 22904775.4844 0.000
+ 19241079.266 -25984759.872 8 -19602712.88647 19241088.9044 0.000
+ 23549588.761 -247556.241 4 -93544.00445 23549614.3034 0.000
+ 21825933.978 -806722.314 4 -402023.77845 21825952.5914 0.000
+ 21112635.041 -6365641.178 6 -4762005.74246 21112648.9884 0.000
+ 21604743.447 -609428.383 3 -333397.16445 21604757.8954 0.000
+ 19580829.811 -24458907.299 8 -18863653.48247 19580838.5824 0.000
+ 20064397.051 -18887695.262 8 -14512868.85646 20064407.3264 0.000
+ 02 1 30 12 32 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22920737.741 -6394384.938 5 -4761753.38145 22920757.8444 0.000
+ 19247241.457 -25952377.356 8 -19577479.75747 19247250.8654 0.000
+ 23539925.585 -298335.778 3 -133112.22845 23539953.4914 0.000
+ 21803346.237 -925420.560 5 -494515.44545 21803367.4774 0.000
+ 21094378.333 -6461579.803 6 -4836762.86546 21094391.9164 0.000
+ 21586004.138 -707902.629 4 -410130.16845 21586019.3034 0.000
+ 19576156.257 -24483467.016 8 -18882790.90147 19576164.9014 0.000
+ 20075891.311 -18827293.005 8 -14465802.23146 20075902.0234 0.000
+ 02 1 30 12 33 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22936744.009 -6310272.308 5 -4696211.37945 22936764.6144 0.000
+ 19253462.392 -25919686.212 8 -19552006.16347 19253471.6254 0.000
+ 23530340.591 -348705.018 4 -172360.76745 23530359.5064 0.000
+ 21780786.404 -1043972.038 5 -586892.73045 21780802.4684 0.000
+ 21076174.382 -6557241.540 6 -4911304.24146 21076188.4334 0.000
+ 21567284.887 -806271.509 5 -486780.98345 21567295.5574 0.000
+ 19571588.298 -24507471.661 8 -18901495.80047 19571597.6794 0.000
+ 20087436.176 -18766624.759 7 -14418528.34646 20087447.2374 0.000
+ 02 1 30 12 33 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22952770.139 -6226055.722 5 -4630588.36345 22952790.2004 0.000
+ 19259740.920 -25886692.361 8 -19526296.67047 19259750.4704 0.000
+ 23520833.198 -398666.058 3 -211291.37645 23520857.7014 0.000
+ 21758253.875 -1162378.394 3 -679156.94945 21758271.3834 0.000
+ 21058022.704 -6652628.202 7 -4985631.25046 21058035.6734 0.000
+ 21548585.116 -904538.097 5 -563352.11545 21548597.4974 0.000
+ 19567125.262 -24530924.860 8 -18919771.01347 19567134.7214 0.000
+ 20099030.659 -18705695.453 7 -14371051.04446 20099041.3584 0.000
+ 02 1 30 12 34 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22968816.574 -6141732.704 4 -4564882.40245 22968836.7664 0.000
+ 19266077.357 -25853394.226 8 -19500350.10447 19266086.8094 0.000
+ 23511404.570 -448213.522 4 -249899.52445 23511429.0404 0.000
+ 21735750.285 -1280633.546 4 -771303.32045 21735767.5104 0.000
+ 21039924.451 -6747734.232 6 -5059739.60946 21039937.6284 0.000
+ 21529905.677 -1002698.245 5 -639840.24345 21529917.8414 0.000
+ 19562768.036 -24553822.298 8 -18937613.17047 19562776.9504 0.000
+ 20110675.270 -18644502.660 7 -14323368.42946 20110686.1904 0.000
+ 02 1 30 12 34 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 22984882.351 -6057308.004 4 -4499097.21145 22984903.8624 0.000
+ 19272470.553 -25819797.635 8 -19474170.94747 19272480.5514 0.000
+ 23502054.217 -497349.360 3 -288187.14445 23502072.5624 0.000
+ 21713275.339 -1398738.889 5 -863332.98845 21713291.8374 0.000
+ 21021879.285 -6842561.264 6 -5133630.56046 21021892.7834 0.000
+ 21511245.880 -1100755.009 5 -716247.93345 21511258.8874 0.000
+ 19558515.873 -24576167.676 8 -18955025.14447 19558524.6404 0.000
+ 20122369.147 -18583050.919 7 -14275484.04846 20122379.9934 0.000
+ 02 1 30 12 35 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23000967.881 -5972778.696 3 -4433230.54245 23000991.2634 0.000
+ 19278920.948 -25785900.570 8 -19447757.67647 19278930.3214 0.000
+ 23492783.161 -546068.145 4 -326149.64145 23492806.6414 0.000
+ 21690829.852 -1516688.283 4 -955241.20045 21690846.3074 0.000
+ 21003888.345 -6937103.288 6 -5207299.42646 21003901.1644 0.000
+ 21492606.611 -1198703.781 5 -792571.43545 21492620.0874 0.000
+ 19554369.546 -24597956.780 8 -18972003.66647 19554378.1044 0.000
+ 20134112.877 -18521337.559 8 -14227395.77646 20134123.7984 0.000
+ 02 1 30 12 35 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23017072.549 -5888149.112 4 -4367285.70445 23017095.3594 0.000
+ 19285427.589 -25751707.854 8 -19421114.00847 19285437.1134 0.000
+ 23483591.208 -594371.015 3 -363788.07645 23483613.8154 0.000
+ 21668414.110 -1634482.475 5 -1047028.44245 21668429.4654 0.000
+ 20985951.461 -7031361.110 6 -5280746.84546 20985964.8864 0.000
+ 21473987.559 -1296546.821 5 -868812.55745 21474002.1864 0.000
+ 19550328.489 -24619192.290 8 -18988550.80647 19550337.3714 0.000
+ 20145905.743 -18459366.375 7 -14179106.64246 20145916.6284 0.000
+ 02 1 30 12 36 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23033197.034 -5803415.770 3 -4301259.98145 23033220.3834 0.000
+ 19291991.013 -25717216.979 8 -19394238.04447 19292000.3044 0.000
+ 23474479.950 -642251.122 3 -401097.20345 23474506.3324 0.000
+ 21646029.225 -1752114.274 5 -1138689.18545 21646046.6194 0.000
+ 20968069.912 -7125328.204 6 -5353967.74746 20968084.1314 0.000
+ 21455389.635 -1394278.733 5 -944967.03445 21455402.4974 0.000
+ 19546393.662 -24639869.497 8 -19004662.91547 19546402.8884 0.000
+ 20157748.300 -18397133.931 8 -14130613.87246 20157759.1764 0.000
+ 02 1 30 12 36 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23049340.949 -5718580.160 3 -4235154.59645 23049362.8054 0.000
+ 19298610.709 -25682430.256 8 -19367131.51947 19298620.3584 0.000
+ 23465449.153 -689707.631 4 -438076.11745 23465471.8944 0.000
+ 21623675.585 -1869581.685 5 -1230221.82945 21623692.5424 0.000
+ 20950244.051 -7219002.847 6 -5426960.74246 20950256.8634 0.000
+ 21436812.924 -1491899.206 5 -1021034.69545 21436821.7614 0.000
+ 19542565.180 -24659988.351 8 -19020339.93147 19542574.9724 0.000
+ 20169640.316 -18334641.464 7 -14081918.55346 20169651.5554 0.000
+ 02 1 30 12 37 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23065504.474 -5633642.007 5 -4168969.29345 23065525.8194 0.000
+ 19305286.640 -25647348.254 8 -19339794.94547 19305295.6464 0.000
+ 23456499.598 -736737.248 4 -474722.37745 23456518.6744 0.000
+ 21601353.905 -1986880.940 5 -1321623.41545 21601370.5684 0.000
+ 20932474.486 -7312381.540 6 -5499723.14446 20932487.7214 0.000
+ 21418257.714 -1589406.128 5 -1097013.94345 21418271.8144 0.000
+ 19538843.339 -24679547.153 8 -19035580.55747 19538852.4824 0.000
+ 20181581.829 -18271888.635 7 -14033020.30446 20181592.8094 0.000
+ 02 1 30 12 37 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23081686.631 -5548605.009 4 -4102707.01045 23081707.5654 0.000
+ 19312017.902 -25611975.323 8 -19312231.63647 19312026.8904 0.000
+ 23447631.261 -783340.516 4 -511036.48345 23447654.2264 0.000
+ 21579064.324 -2104011.905 5 -1412893.95145 21579082.2254 0.000
+ 20914761.222 -7405464.675 6 -5572255.24346 20914774.2654 0.000
+ 21399723.834 -1686801.215 5 -1172905.98645 21399737.4904 0.000
+ 19535227.606 -24698548.205 8 -19050386.55947 19535236.4934 0.000
+ 20193572.238 -18208878.845 7 -13983921.84846 20193583.0924 0.000
+ 02 1 30 12 38 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23097886.740 -5463473.763 4 -4036371.27945 23097906.6824 0.000
+ 19318803.510 -25576316.894 8 -19284445.89847 19318812.3144 0.000
+ 23438843.675 -829519.445 4 -547019.90745 23438866.1924 0.000
+ 21556806.543 -2220976.007 5 -1504034.41845 21556824.0074 0.000
+ 20897103.903 -7498253.821 6 -5644558.25046 20897116.3164 0.000
+ 21381210.795 -1784087.131 5 -1248712.99045 21381224.2754 0.000
+ 19531717.270 -24716994.947 8 -19064760.63747 19531726.1214 0.000
+ 20205610.612 -18145616.785 7 -13934626.80246 20205621.4274 0.000
+ 02 1 30 12 38 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23114106.236 -5378239.651 2 -3969955.38845 23114124.4684 0.000
+ 19325644.934 -25540364.999 8 -19256431.45947 19325654.3624 0.000
+ 23430138.900 -875262.427 4 -582663.66045 23430167.1044 0.000
+ 21534582.902 -2337760.722 6 -1595035.08645 21534599.1824 0.000
+ 20879504.710 -7590737.074 6 -5716622.89746 20879517.1564 0.000
+ 21362720.533 -1881253.353 5 -1324426.75445 21362734.0484 0.000
+ 19528314.258 -24734877.419 8 -19078695.02847 19528323.6184 0.000
+ 20217698.668 -18082093.587 7 -13885128.28546 20217709.9444 0.000
+ 02 1 30 12 39 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23130346.433 -5292898.254 3 -3903455.96145 23130365.7654 0.000
+ 19332542.924 -25504116.058 8 -19228185.58447 19332551.9714 0.000
+ 23421518.385 -920562.199 4 -617961.95345 23421538.6744 0.000
+ 21512394.850 -2454358.215 6 -1685889.86945 21512412.0124 0.000
+ 20861965.256 -7682906.645 6 -5788443.15146 20861978.6814 0.000
+ 21344254.009 -1978293.578 4 -1400042.30345 21344269.2964 0.000
+ 19525019.738 -24752189.989 8 -19092185.34047 19525029.3994 0.000
+ 20229837.360 -18018304.658 7 -13835422.72746 20229848.5014 0.000
+ 02 1 30 12 39 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23146605.411 -5207457.637 3 -3836879.12345 23146626.9344 0.000
+ 19339495.687 -25467579.115 7 -19199715.25447 19339504.9044 0.000
+ 23412981.183 -965424.111 4 -652919.14045 23413004.1134 0.000
+ 21490241.634 -2570773.023 6 -1776602.32045 21490257.1604 0.000
+ 20844484.511 -7774767.796 6 -5860023.04146 20844496.7484 0.000
+ 21325810.425 -2075214.041 5 -1475564.54745 21325823.7724 0.000
+ 19521832.363 -24768939.767 8 -19105237.11247 19521841.6894 0.000
+ 20242025.153 -17954258.094 7 -13785516.37546 20242036.4964 0.000
+ 02 1 30 12 40 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23162883.300 -5121917.908 3 -3770225.10645 23162906.6744 0.000
+ 19346503.117 -25430755.120 8 -19171021.29347 19346512.2664 0.000
+ 23404528.117 -1009845.770 5 -687533.13744 23404547.2134 0.000
+ 21468123.777 -2687001.834 6 -1867169.85546 21468138.9244 0.000
+ 20827063.004 -7866317.506 6 -5931360.26846 20827076.0944 0.000
+ 21307389.984 -2172013.048 5 -1550992.17345 21307404.6004 0.000
+ 19518752.323 -24785125.580 8 -19117849.42847 19518761.2674 0.000
+ 20254261.932 -17889954.068 7 -13735409.43446 20254272.6864 0.000
+ 02 1 30 12 40 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23179180.166 -5036279.684 5 -3703494.30745 23179201.1824 0.000
+ 19353564.901 -25393645.275 8 -19142104.55347 19353574.1444 0.000
+ 23396159.077 -1053824.425 3 -721802.18045 23396178.2914 0.000
+ 21446041.814 -2803041.735 6 -1957590.18945 21446059.2224 0.000
+ 20809701.352 -7957552.895 6 -6002452.59146 20809713.0754 0.000
+ 21288992.994 -2268689.035 5 -1626323.91945 21289007.8214 0.000
+ 19515779.736 -24800746.787 8 -19130021.80047 19515789.0374 0.000
+ 20266547.592 -17825392.858 7 -13685102.07946 20266558.6704 0.000
+ 02 1 30 12 41 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23195494.108 -4950551.526 5 -3636693.43245 23195516.3064 0.000
+ 19360679.319 -25356258.994 8 -19112972.45447 19360688.8004 0.000
+ 23387873.217 -1097366.271 4 -755730.76445 23387897.2774 0.000
+ 21423994.803 -2918897.618 5 -2047867.09545 21424012.0284 0.000
+ 20792398.422 -8048479.547 6 -6073304.31646 20792410.5074 0.000
+ 21270618.191 -2365248.698 5 -1701565.05745 21270633.4324 0.000
+ 19512913.223 -24815810.543 8 -19141759.78547 19512922.4934 0.000
+ 20278880.558 -17760582.865 7 -13634600.89046 20278891.9534 0.000
+ 02 1 30 12 41 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23211825.357 -4864731.418 3 -3569820.87845 23211846.9654 0.000
+ 19367846.486 -25318595.250 8 -19083624.09347 19367855.7004 0.000
+ 23379671.295 -1140466.588 4 -789315.16945 23379697.4344 0.000
+ 21401983.934 -3034563.909 6 -2137996.25345 21402000.6254 0.000
+ 20775155.272 -8139092.208 6 -6143911.39846 20775167.9094 0.000
+ 21252266.342 -2461688.042 6 -1776712.39445 21252278.7604 0.000
+ 19510153.376 -24830313.732 8 -19153060.97747 19510162.6414 0.000
+ 20291261.268 -17695521.932 7 -13583904.13346 20291272.5354 0.000
+ 02 1 30 12 42 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23228174.908 -4778815.091 3 -3502873.40245 23228197.9294 0.000
+ 19375067.239 -25280650.169 8 -19054056.56447 19375076.9454 0.000
+ 23371554.782 -1183117.890 3 -822549.71645 23371573.2624 0.000
+ 21380010.617 -3150032.574 6 -2227971.38246 21380026.3504 0.000
+ 20757973.252 -8229383.418 6 -6214267.98446 20757985.8214 0.000
+ 21233938.605 -2558000.718 6 -1851761.06245 21233951.0994 0.000
+ 19507501.264 -24844250.795 8 -19163921.03647 19507510.4314 0.000
+ 20303690.582 -17630205.646 7 -13533008.43846 20303702.3374 0.000
+ 02 1 30 12 42 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23244542.555 -4692803.082 3 -3435851.38245 23244566.4224 0.000
+ 19382341.257 -25242425.059 8 -19024270.78147 19382350.6044 0.000
+ 23363524.396 -1225318.399 4 -855433.15145 23363549.5334 0.000
+ 21358075.499 -3265300.507 6 -2317790.09546 21358091.5654 0.000
+ 20740852.915 -8319350.468 7 -6284371.98746 20740866.5674 0.000
+ 21215635.192 -2654185.267 6 -1926709.91546 21215648.1914 0.000
+ 19504956.943 -24857621.330 8 -19174339.62447 19504966.4124 0.000
+ 20316168.414 -17564634.541 7 -13481914.17646 20316180.1894 0.000
+ 02 1 30 12 43 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23260929.330 -4606690.581 2 -3368751.05845 23260955.9244 0.000
+ 19389669.319 -25203916.048 8 -18994263.81147 19389679.3694 0.000
+ 23355581.024 -1267060.600 4 -887959.33645 23355604.5944 0.000
+ 21336180.210 -3380359.463 6 -2407445.95346 21336195.5554 0.000
+ 20723795.815 -8408985.528 7 -6354217.31446 20723808.5524 0.000
+ 21197357.450 -2750235.033 6 -2001553.68646 21197369.6224 0.000
+ 19502521.508 -24870419.673 8 -19184312.35647 19502530.7754 0.000
+ 20328695.695 -17498803.639 7 -13430617.48146 20328707.5494 0.000
+ 02 1 30 12 43 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23277333.583 -4520487.267 4 -3301579.91745 23277355.0564 0.000
+ 19397049.352 -25165133.818 8 -18964043.90947 19397058.6844 0.000
+ 23347723.440 -1308351.431 3 -920133.90145 23347744.3464 0.000
+ 21314323.433 -3495215.764 6 -2496943.92646 21314339.1024 0.000
+ 20706800.614 -8498295.271 7 -6423809.15146 20706812.7114 0.000
+ 21179103.840 -2846157.655 6 -2076298.47846 21179118.1814 0.000
+ 19500193.402 -24882653.996 8 -19193845.59747 19500202.4914 0.000
+ 20341270.588 -17432722.566 7 -13379125.85446 20341282.4694 0.000
+ 02 1 30 12 44 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23293755.136 -4434193.034 5 -3234338.05545 23293776.1494 0.000
+ 19404481.294 -25126078.846 8 -18933611.50147 19404490.8514 0.000
+ 23339952.272 -1349188.169 3 -951954.57045 23339970.3834 0.000
+ 21292505.918 -3609865.866 6 -2586281.18746 21292521.2924 0.000
+ 20689867.967 -8587276.277 7 -6493144.83946 20689879.6844 0.000
+ 21160874.843 -2941951.120 6 -2150942.60946 21160888.8134 0.000
+ 19497972.826 -24894323.108 8 -19202938.40347 19497981.8374 0.000
+ 20353893.109 -17366391.149 7 -13327439.13746 20353904.3724 0.000
+ 02 1 30 12 44 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23310194.395 -4347806.130 5 -3167023.85945 23310215.4434 0.000
+ 19411965.346 -25086749.859 8 -18902965.55347 19411974.8424 0.000
+ 23332268.493 -1389566.021 3 -983417.64245 23332291.9794 0.000
+ 21270728.657 -3724304.099 6 -2675453.35346 21270744.6124 0.000
+ 20672998.813 -8675923.588 6 -6562220.49746 20673010.6924 0.000
+ 21142671.180 -3037611.411 6 -2225482.91146 21142683.5954 0.000
+ 19495860.316 -24905424.244 8 -19211588.63247 19495869.5104 0.000
+ 20366563.719 -17299807.232 7 -13275555.70446 20366574.9944 0.000
+ 02 1 30 12 45 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23326651.332 -4261325.921 5 -3099636.93245 23326670.5294 0.000
+ 19419501.519 -25047147.050 8 -18872106.26647 19419510.6914 0.000
+ 23324672.673 -1429481.688 3 -1014520.66445 23324697.5954 0.000
+ 21248992.634 -3838526.091 6 -2764457.05046 21249010.0694 0.000
+ 20656193.856 -8764233.313 6 -6631033.09746 20656206.4874 0.000
+ 21124493.365 -3133135.833 6 -2299917.37546 21124507.0534 0.000
+ 19493856.265 -24915955.643 8 -19219794.91847 19493865.2454 0.000
+ 20379282.511 -17232970.150 7 -13223474.93246 20379294.4414 0.000
+ 02 1 30 12 45 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23343125.867 -4174753.048 5 -3032177.81945 23343146.3244 0.000
+ 19427089.533 -25007271.860 8 -18841034.72447 19427099.0814 0.000
+ 23317165.128 -1468933.485 3 -1045262.23245 23317185.9954 0.000
+ 21227298.302 -3952529.289 6 -2853290.23846 21227312.5144 0.000
+ 20639453.590 -8852203.191 6 -6699580.89846 20639466.0894 0.000
+ 21106341.559 -3228523.250 6 -2374245.10346 21106355.5844 0.000
+ 19491960.700 -24925917.016 8 -19227557.03047 19491969.8384 0.000
+ 20392049.310 -17165880.606 7 -13171197.50746 20392060.6264 0.000
+ 02 1 30 12 46 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23359617.049 -4088092.430 4 -2964650.26445 23359641.1584 0.000
+ 19434728.267 -24967130.188 8 -18809755.53247 19434737.4234 0.000
+ 23309745.414 -1507923.909 4 -1075644.13445 23309768.9734 0.000
+ 21205645.363 -4066314.874 6 -2941953.87146 21205659.3504 0.000
+ 20622777.690 -8939835.128 7 -6767865.38446 20622789.8724 0.000
+ 21088215.333 -3323776.520 6 -2448468.28546 21088228.0434 0.000
+ 19490172.841 -24935312.346 8 -19234878.08447 19490182.7064 0.000
+ 20404863.303 -17098543.353 7 -13118727.03146 20404875.5454 0.000
+ 02 1 30 12 46 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23376125.348 -4001341.917 3 -2897052.69845 23376149.0944 0.000
+ 19442417.999 -24926720.681 8 -18778267.65147 19442427.7294 0.000
+ 23302414.413 -1546447.944 4 -1105662.75745 23302437.3284 0.000
+ 21184034.760 -4179877.389 6 -3030443.68646 21184049.3274 0.000
+ 20606167.055 -9027123.883 7 -6835882.44946 20606179.2914 0.000
+ 21070115.352 -3418891.552 6 -2522583.75846 21070130.7234 0.000
+ 19488493.252 -24944138.623 8 -19241755.70147 19488502.7204 0.000
+ 20417724.793 -17030956.338 7 -13066061.92646 20417736.7284 0.000
+ 02 1 30 12 47 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23392649.474 -3914507.318 2 -2829389.64045 23392674.5794 0.000
+ 19450157.439 -24886049.907 8 -18746576.16147 19450166.6694 0.000
+ 23295171.358 -1584509.064 2 -1135320.60645 23295192.2314 0.000
+ 21162466.158 -4293218.980 6 -3118761.38046 21162481.4634 0.000
+ 20589621.193 -9114072.184 6 -6903634.23046 20589633.6194 0.000
+ 21052041.108 -3513872.106 6 -2596594.43446 21052054.4974 0.000
+ 19486920.994 -24952400.925 8 -19248193.87247 19486930.2924 0.000
+ 20430632.660 -16963125.304 7 -13013206.69346 20430644.8584 0.000
+ 02 1 30 12 47 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23409190.215 -3827585.605 2 -2761658.86345 23409212.0864 0.000
+ 19457947.108 -24845115.153 8 -18714678.99247 19457955.9544 0.000
+ 23288017.557 -1622101.270 2 -1164612.91145 23288043.5214 0.000
+ 21140940.938 -4406332.856 6 -3206901.63946 21140956.0784 0.000
+ 20573141.410 -9200673.747 7 -6971115.85946 20573153.9764 0.000
+ 21033993.442 -3608712.731 6 -2670496.05746 21034007.1664 0.000
+ 19485456.880 -24960094.812 8 -19254189.10147 19485465.8494 0.000
+ 20443587.639 -16895046.718 7 -12960158.55346 20443599.6144 0.000
+ 02 1 30 12 48 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23425748.404 -3740572.930 3 -2693857.14745 23425773.9024 0.000
+ 19465787.651 -24803912.980 8 -18682573.43947 19465796.9234 0.000
+ 23280954.433 -1659217.623 2 -1193534.65345 23280978.6094 0.000
+ 21119460.534 -4519211.473 6 -3294858.64146 21119475.4374 0.000
+ 20556729.019 -9286921.242 7 -7038321.58546 20556740.8534 0.000
+ 21015973.571 -3703407.292 6 -2744283.90646 21015986.3914 0.000
+ 19484101.917 -24967215.081 8 -19259737.35947 19484110.7624 0.000
+ 20456590.519 -16826716.628 7 -12906914.43846 20456601.9454 0.000
+ 02 1 30 12 48 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23442323.254 -3653472.839 4 -2625987.25245 23442344.5544 0.000
+ 19473678.203 -24762447.940 8 -18650263.06647 19473687.3674 0.000
+ 23273981.590 -1695859.846 4 -1222086.89745 23273999.2154 0.000
+ 21098024.932 -4631854.723 6 -3382632.22146 21098038.9824 0.000
+ 20540383.825 -9372815.385 7 -7105251.97246 20540395.8214 0.000
+ 20997981.071 -3797957.592 6 -2817959.30046 20997994.0944 0.000
+ 19482855.488 -24973764.995 8 -19264841.18947 19482864.7764 0.000
+ 20469640.608 -16758138.554 7 -12853477.10246 20469652.1264 0.000
+ 02 1 30 12 49 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23458914.647 -3566285.824 4 -2558049.60745 23458937.9794 0.000
+ 19481618.513 -24720721.399 8 -18617748.92147 19481628.9494 0.000
+ 23267099.271 -1732025.807 4 -1250267.94545 23267120.3914 0.000
+ 21076634.716 -4744259.659 6 -3470220.13146 21076648.8584 0.000
+ 20524106.367 -9458353.456 7 -7171904.89146 20524118.3254 0.000
+ 20980016.357 -3892361.858 6 -2891520.93946 20980029.2234 0.000
+ 19481717.745 -24979743.928 8 -19269500.11247 19481727.2744 0.000
+ 20482737.791 -16689312.855 7 -12799846.79646 20482748.9544 0.000
+ 02 1 30 12 49 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23475522.492 -3479012.692 5 -2490044.83645 23475546.3754 0.000
+ 19489608.277 -24678734.908 8 -18585032.21147 19489617.6004 0.000
+ 23260308.021 -1767714.103 4 -1278076.89745 23260332.2864 0.000
+ 21055290.336 -4856423.542 6 -3557620.19746 21055304.6564 0.000
+ 20507896.999 -9543533.602 7 -7238278.91646 20507909.5274 0.000
+ 20962079.740 -3986619.055 6 -2964967.92546 20962093.0734 0.000
+ 19480688.639 -24985152.173 8 -19273714.34847 19480698.3914 0.000
+ 20495881.907 -16620240.494 7 -12746024.32146 20495893.5614 0.000
+ 02 1 30 12 50 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23492145.851 -3391657.712 4 -2421976.37945 23492168.5224 0.000
+ 19497646.588 -24636493.431 8 -18552116.83847 19497656.0244 0.000
+ 23253607.313 -1802926.314 5 -1305514.77245 23253631.1134 0.000
+ 21033991.711 -4968347.125 6 -3644833.05846 21034006.1994 0.000
+ 20491755.570 -9628356.792 7 -7304374.77946 20491767.9894 0.000
+ 20944170.674 -4080731.300 6 -3038301.95946 20944185.2154 0.000
+ 19479767.521 -24989993.067 8 -19277486.48547 19479776.7274 0.000
+ 20509072.173 -16550925.551 7 -12692012.76146 20509084.3414 0.000
+ 02 1 30 12 50 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23508785.405 -3304217.736 2 -2353841.53145 23508809.6384 0.000
+ 19505733.886 -24593994.553 8 -18519000.85547 19505744.2004 0.000
+ 23246998.231 -1837656.797 5 -1332577.35045 23247019.4304 0.000
+ 21012740.142 -5080023.554 6 -3731853.34046 21012753.7874 0.000
+ 20475683.286 -9712816.740 7 -7370187.59946 20475695.1604 0.000
+ 20926290.256 -4174693.166 6 -3111518.81946 20926304.1154 0.000
+ 19478955.067 -24994262.745 8 -19280813.49947 19478964.1834 0.000
+ 20522309.175 -16481364.764 7 -12637809.67446 20522320.9574 0.000
+ 02 1 30 12 51 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23525441.064 -3216693.278 2 -2285640.97543 23525459.8674 0.000
+ 19513869.944 -24551239.449 8 -18485685.24447 19513879.7574 0.000
+ 23240481.257 -1871903.540 5 -1359262.96045 23240502.4174 0.000
+ 20991536.247 -5191449.658 6 -3818678.60646 20991549.7994 0.000
+ 20459680.553 -9796910.895 6 -7435715.37646 20459692.8474 0.000
+ 20908438.747 -4268503.105 7 -3184617.24846 20908451.6124 0.000
+ 19478251.370 -24997960.616 8 -19283694.95447 19478260.7524 0.000
+ 20535592.901 -16411558.616 6 -12583415.38146 20535605.1544 0.000
+ 02 1 30 12 51 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23542111.930 -3129088.190 2 -2217377.73444 23542123.3564 0.000
+ 19522053.939 -24508232.487 8 -18452173.36747 19522064.2454 0.000
+ 23234055.894 -1905668.318 4 -1385573.00045 23234078.8314 0.000
+ 20970379.827 -5302625.871 6 -3905309.12846 20970393.2064 0.000
+ 20443747.287 -9880639.991 7 -7500958.69746 20443759.7124 0.000
+ 20890615.755 -4362162.703 6 -3257598.57846 20890629.8754 0.000
+ 19477655.784 -25001090.131 8 -19286133.54047 19477664.9804 0.000
+ 20548922.661 -16341510.571 7 -12528832.60146 20548934.4874 0.000
+ 02 1 30 12 52 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23558797.305 -3041405.487 1 0.000 0.000 0.000
+ 19530285.100 -24464977.652 8 -18418468.34947 19530295.1544 0.000
+ 23227722.004 -1938951.146 3 -1411507.36845 23227746.1414 0.000
+ 20949271.074 -5413551.729 6 -3991744.61146 20949286.5644 0.000
+ 20427883.468 -9964004.349 7 -7565917.81446 20427895.2204 0.000
+ 20872821.209 -4455673.016 6 -3330463.57546 20872835.2374 0.000
+ 19477168.041 -25003653.056 8 -19288130.62047 19477177.4654 0.000
+ 20562297.856 -16271223.898 7 -12474063.90146 20562309.2874 0.000
+ 02 1 30 12 52 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23575497.836 73138.90712 0.000 0.000 0.000
+ 19538563.886 -24421472.508 8 -18384568.28647 19538574.8214 0.000
+ 23221481.035 -1971746.623 3 -1437062.19445 23221500.6284 0.000
+ 20928211.295 -5524220.389 6 -4077979.65846 20928225.9574 0.000
+ 20412090.316 -10046997.679 7 -7630587.82446 20412102.1194 0.000
+ 20855055.991 -4549028.898 6 -3403208.22146 20855070.0324 0.000
+ 19476788.863 -25005645.865 8 -19289683.48447 19476798.0924 0.000
+ 20575719.089 -16200695.479 7 -12419106.80146 20575730.1584 0.000
+ 02 1 30 12 53 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23592214.620 160983.566 4 0.000 0.000 0.000
+ 19546890.291 -24377717.088 7 -18350473.19147 19546900.9114 0.000
+ 23215333.441 -2004052.032 3 -1462235.09845 23215358.1304 0.000
+ 20907201.214 -5634627.758 6 -4164011.10546 20907216.2934 0.000
+ 20396368.471 -10129616.246 7 -7694965.80346 20396380.1414 0.000
+ 20837320.747 -4642227.475 6 -3475830.27446 20837334.0054 0.000
+ 19476518.442 -25007067.229 8 -19290791.06547 19476527.5874 0.000
+ 20589186.448 -16129924.562 7 -12363960.77446 20589197.4554 0.000
+ 02 1 30 12 53 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23608946.377 248907.072 4 0.000 0.000 0.000
+ 19555263.726 -24333714.433 8 -18316185.44547 19555273.9944 0.000
+ 23209279.000 -2035867.105 3 -1487025.84045 23209301.4214 0.000
+ 20886241.216 -5744772.520 6 -4249837.95646 20886254.9224 0.000
+ 20380718.045 -10211859.555 7 -7759051.37646 20380729.6564 0.000
+ 20819615.466 -4735269.014 6 -3548329.95546 20819627.5424 0.000
+ 19476356.427 -25007918.823 8 -19291454.66747 19476365.7304 0.000
+ 20602699.510 -16058913.394 7 -12308627.49646 20602710.5014 0.000
+ 02 1 30 12 54 29.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23625693.047 336909.294 4 0.000 0.000 0.000
+ 19563684.093 -24289465.269 8 -18281705.61747 19563694.3624 0.000
+ 23203318.613 -2067189.851 5 -1511432.99345 23203336.8894 0.000
+ 20865331.833 -5854651.257 7 -4335457.50546 20865345.5374 0.000
+ 20365139.530 -10293724.701 7 -7822842.26346 20365151.1194 0.000
+ 20801940.371 -4828151.341 6 -3620705.58046 20801953.3144 0.000
+ 19476302.823 -25008200.547 8 -19291674.18947 19476311.5494 0.000
+ 20616258.235 -15987662.135 7 -12253107.17446 20616269.8024 0.000
+ 02 1 30 12 54 59.9940000 0 8G 5G 6G10G15G17G22G25G30
+ 23642454.786 424991.533 3 52622.60755 23642478.8804 0.000
+ 19572151.493 -24244969.007 8 -18247033.25747 19572161.0034 0.000
+ 23197452.319 -2098016.859 3 -1535453.87045 23197472.8244 0.000
+ 20844473.991 -5964258.960 6 -4420865.85346 20844486.9794 0.000
+ 20349633.786 -10375207.253 7 -7886335.02946 20349645.4414 0.000
+ 20784296.236 -4920870.985 6 -3692954.49146 20784309.1804 0.000
+ 19476358.088 -25007910.068 8 -19291447.84647 19476366.4204 0.000
+ 20629862.933 -15916169.295 6 -12197398.59046 20629875.2024 0.000
+ 02 1 30 12 55 29.9940000 0 7G 6G10G15G17G22G25G30
+ 19580665.592 -24200227.388 8 -18212169.68547 19580675.5064 0.000
+ 23191680.772 -2128346.582 4 -1559087.24645 23191699.7804 0.000
+ 20823668.089 -6073593.362 6 -4506061.22946 20823682.2414 0.000
+ 20334201.215 -10456305.480 7 -7949528.30246 20334212.8114 0.000
+ 20766683.303 -5013426.931 6 -3765075.80946 20766695.9174 0.000
+ 19476522.188 -25007047.892 8 -19290776.03547 19476530.8414 0.000
+ 20643513.398 -15844435.938 7 -12141502.56246 20643525.4494 0.000
+ 02 1 30 12 55 59.9940000 0 7G 6G10G15G17G22G25G30
+ 19589226.335 -24155240.645 8 -18177115.12147 19589235.7084 0.000
+ 23186004.144 -2158176.687 4 -1582331.28845 23186022.0464 0.000
+ 20802914.987 -6182650.482 6 -4591040.56746 20802929.6044 0.000
+ 20318842.425 -10537015.920 7 -8012419.41246 20318854.3814 0.000
+ 20749101.891 -5105816.668 6 -3837067.64346 20749114.1024 0.000
+ 19476795.276 -25005613.048 8 -19289658.00347 19476804.6144 0.000
+ 20657209.806 -15772461.527 7 -12085418.76446 20657221.6144 0.000
+ 02 1 30 12 56 29.9940000 0 7G 6G10G15G17G22G25G30
+ 19597832.344 -24110015.964 8 -18141875.15347 19597841.9634 0.000
+ 23180421.803 -2187510.889 3 -1605189.05445 23180438.4804 0.000
+ 20782214.163 -6291433.107 6 -4675806.01146 20782227.7334 0.000
+ 20303556.771 -10617342.069 7 -8075011.05646 20303568.7874 0.000
+ 20731551.430 -5198044.325 6 -3908933.19046 20731564.0664 0.000
+ 19477176.179 -25003611.559 8 -19288098.42847 19477185.2044 0.000
+ 20670950.798 -15700252.800 7 -12029152.31246 20670963.2234 0.000
+ 02 1 30 12 56 59.9940000 0 7G 6G10G15G17G22G25G30
+ 19606484.674 -24064547.814 8 -18106445.48447 19606494.8614 0.000
+ 23174935.488 -2216341.082 3 -1627654.03545 23174957.5434 0.000
+ 20761567.438 -6399931.607 7 -4760350.08446 20761581.4914 0.000
+ 20288345.998 -10697274.791 7 -8137296.14546 20288357.9044 0.000
+ 20714033.388 -5290101.579 6 -3980665.95146 20714045.8454 0.000
+ 19477666.178 -25001036.527 8 -19286091.92447 19477675.4764 0.000
+ 20684737.583 -15627803.252 6 -11972698.26646 20684749.5414 0.000
+ 02 1 30 12 57 29.9940000 0 6G 6G15G17G22G25G30
+ 19615182.791 -24018839.063 8 -18070828.31647 19615192.6654 0.000
+ 20740975.073 -6508144.436 7 -4844671.50746 20740988.6754 0.000
+ 20273210.249 -10776813.316 7 -8199274.08046 20273222.1604 0.000
+ 20696547.730 -5381988.349 6 -4052265.85646 20696559.2674 0.000
+ 19478264.999 -24997889.529 8 -19283639.72347 19478274.3444 0.000
+ 20698569.788 -15555115.130 7 -11916058.28646 20698582.1314 0.000
+ 02 1 30 12 57 59.9940000 0 6G 6G15G17G22G25G30
+ 19623925.561 -23972895.645 7 -18035028.29747 19623935.9464 0.000
+ 20720436.752 -6616073.031 7 -4928771.46346 20720450.4064 0.000
+ 20258149.021 -10855960.011 7 -8260946.67046 20258160.6954 0.000
+ 20679094.017 -5473707.738 6 -4123735.32446 20679106.1504 0.000
+ 19478971.757 -24994175.506 8 -19280745.69947 19478981.2564 0.000
+ 20712446.448 -15482193.487 6 -11859236.37846 20712458.9934 0.000
+ 02 1 30 12 58 29.9940000 0 6G 6G15G17G22G25G30
+ 19632713.426 -23926715.334 8 -17999043.69847 19632722.7514 0.000
+ 20699953.679 -6723711.328 7 -5012645.21846 20699966.7824 0.000
+ 20243163.441 -10934709.135 7 -8322309.47946 20243175.3414 0.000
+ 20661673.141 -5565254.639 6 -4195070.42146 20661685.8624 0.000
+ 19479787.084 -24989891.126 8 -19277407.24547 19479796.0414 0.000
+ 20726368.031 -15409035.561 7 -11802230.31046 20726379.9804 0.000
+ 02 1 30 12 58 59.9940000 0 6G 6G15G17G22G25G30
+ 19641546.238 -23880298.849 8 -17962875.04947 19641555.9774 0.000
+ 20679526.473 -6831055.958 7 -5096290.14646 20679539.8674 0.000
+ 20228254.031 -11013057.886 7 -8383360.30446 20228265.5684 0.000
+ 20644285.475 -5656626.872 6 -4266269.43146 20644298.1604 0.000
+ 19480711.035 -24985035.835 8 -19273623.92047 19480719.8674 0.000
+ 20740334.566 -15335641.524 6 -11745040.28646 20740345.9694 0.000
+ 02 1 30 12 59 29.9940000 0 6G 6G15G17G22G25G30
+ 19650423.490 -23833648.936 8 -17926524.51747 19650433.2504 0.000
+ 20659155.441 -6938105.349 7 -5179705.02746 20659168.7494 0.000
+ 20213420.944 -11091005.523 7 -8444098.57046 20213432.6564 0.000
+ 20626931.012 -5747824.450 6 -4337332.33346 20626943.4664 0.000
+ 19481743.196 -24979611.710 8 -19269397.35747 19481752.5254 0.000
+ 20754345.636 -15262013.424 7 -11687667.85546 20754357.0674 0.000
+ 02 1 30 12 59 59.9940000 0 7G 6G10G15G17G22G25G30
+ 19659346.349 -23786759.292 8 -17889987.20147 19659356.1004 0.000
+ 23144037.164 -9394.23614 0.000 0.000 0.000
+ 20638842.604 -7044849.096 7 -5262881.75146 20638856.9794 0.000
+ 20198666.094 -11168542.152 7 -8504516.57946 20198677.7394 0.000
+ 20609611.530 -5838838.058 6 -4408251.91546 20609624.5554 0.000
+ 19482885.025 -24973611.432 8 -19264721.84347 19482894.8254 0.000
+ 20768402.556 -15188144.231 7 -11630107.57346 20768414.1834 0.000
+ 02 1 30 13 0 29.9940000 0 8G 1G 6G10G15G17G22G25G30
+ 23706610.876 -9374.064 2 0.000 0.000 0.000
+ 19668313.075 -23739639.126 8 -17853270.22547 19668322.8074 0.000
+ 23139227.467 -34668.804 4 0.000 0.000 0.000
+ 20618587.028 -7151292.160 7 -5345824.17846 20618600.4974 0.000
+ 20183988.411 -11245673.446 7 -8564618.74346 20184000.1524 0.000
+ 20592325.828 -5929674.140 6 -4479033.13546 20592338.6454 0.000
+ 19484134.957 -24967043.099 8 -19259603.67947 19484144.8804 0.000
+ 20782503.735 -15114042.636 6 -11572366.20946 20782516.3824 0.000
+ 02 1 30 13 0 59.9940000 0 8G 1G 6G10G15G17G22G25G30
+ 23703538.725 -25515.583 2 0.000 0.000 0.000
+ 19677324.380 -23692284.770 8 -17816370.81347 19677333.4794 0.000
+ 23134515.970 -59426.445 3 0.000 0.000 0.000
+ 20598390.085 -7257426.949 7 -5428526.38646 20598403.0844 0.000
+ 20169389.202 -11322392.380 7 -8624399.60846 20169400.3164 0.000
+ 20575075.194 -6020326.202 6 -4549671.00346 20575088.0234 0.000
+ 19485493.844 -24959902.154 8 -19254039.32547 19485503.6654 0.000
+ 20796649.947 -15039704.372 7 -11514440.40246 20796661.1374 0.000
+ 02 1 30 13 1 29.9940000 0 8G 1G 6G10G15G17G22G25G30
+ 23700562.119 -41159.230 4 -2005.32955 23700579.3024 0.000
+ 19686378.003 -23644707.881 8 -17779297.94847 19686387.9464 0.000
+ 23129901.173 -83675.907 2 -18258.92955 23129921.5814 0.000
+ 20578250.378 -7363260.879 7 -5510994.17846 20578263.4354 0.000
+ 20154866.893 -11398707.163 7 -8683865.55446 20154878.0384 0.000
+ 20557857.909 -6110802.993 6 -4620172.28946 20557871.4404 0.000
+ 19486959.693 -24952199.171 8 -19248037.03347 19486968.5554 0.000
+ 20810839.116 -14965140.365 7 -11456338.74646 20810851.0094 0.000
+ 02 1 30 13 1 59.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23697681.062 -56300.045 4 -13803.25645 23697702.9014 0.000
+ 19695474.711 -23596904.574 7 -17742048.69547 19695484.1614 0.000
+ 23125384.359 -107411.128 3 -36753.64945 23125406.0444 0.000
+ 20558169.450 -7468785.893 7 -5593221.24146 20558181.2964 0.000
+ 20140422.898 -11474610.401 7 -8743010.82546 20140434.5484 0.000
+ 20540675.335 -6201097.762 6 -4690531.75146 20540687.7714 0.000
+ 23620225.493 -44289.72013 0.000 0.000 0.000
+ 19488533.427 -24943929.335 8 -19241593.03647 19488542.1674 0.000
+ 20825072.101 -14890346.148 7 -11398057.63946 20825084.3124 0.000
+ 02 1 30 13 2 29.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23694895.363 -70938.182 3 -25209.56445 23694917.2084 0.000
+ 19704614.194 -23548876.384 8 -17704624.19247 19704623.7774 0.000
+ 23120965.847 -130630.707 5 -54846.62445 23120985.5284 0.000
+ 20538147.815 -7573999.282 7 -5675205.48546 20538160.0054 0.000
+ 20126057.566 -11550100.060 7 -8801833.81046 20126068.8964 0.000
+ 20523527.676 -6291209.043 6 -4760748.22646 20523540.5004 0.000
+ 23605362.813 -122388.047 2 0.000 0.000 0.000
+ 19490214.885 -24935093.385 8 -19234707.91347 19490223.9894 0.000
+ 20839348.691 -14815322.593 6 -11339597.88446 20839360.5394 0.000
+ 02 1 30 13 2 59.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23692204.888 -85074.967 3 -36225.34845 23692224.5934 0.000
+ 19713795.935 -23500626.147 8 -17667026.65147 19713805.8994 0.000
+ 23116645.448 -153334.590 5 -72537.83345 23116665.7974 0.000
+ 20518185.821 -7678899.508 7 -5756945.72546 20518199.4104 0.000
+ 20111771.113 -11625175.377 7 -8860333.94046 20111783.3354 0.000
+ 20506414.922 -6381136.654 6 -4830821.57646 20506426.4094 0.000
+ 23590516.530 -200404.636 2 -50654.97255 23590536.3494 0.000
+ 19492003.737 -24925692.901 8 -19227382.88647 19492013.2514 0.000
+ 20853668.486 -14740071.774 6 -11280961.02046 20853681.3404 0.000
+ 02 1 30 13 3 29.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23689610.492 -98709.407 5 -46849.61345 23689630.1404 0.000
+ 19723020.022 -23452153.256 8 -17629255.64547 19723030.5704 0.000
+ 23112423.589 -175519.875 5 -89824.90945 23112442.5504 0.000
+ 20498284.249 -7783482.250 7 -5838438.56146 20498297.0214 0.000
+ 20097564.229 -11699832.649 7 -8918508.31846 20097575.4924 0.000
+ 20489337.702 -6470877.355 6 -4900749.29746 20489351.1064 0.000
+ 23575686.700 -278334.869 3 -111379.51945 23575706.5854 0.000
+ 19493900.218 -24915726.826 8 -19219617.14747 19493910.1774 0.000
+ 20868031.712 -14664592.626 6 -11222146.26346 20868045.0104 0.000
+ 02 1 30 13 3 59.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23687114.214 -111828.458 4 -57072.19645 23687135.2394 0.000
+ 19732288.735 -23403446.095 8 -17591302.06947 19732298.1574 0.000
+ 23108303.097 -197172.119 5 -106696.59945 23108321.9244 0.000
+ 20478446.064 -7887731.813 7 -5919671.77946 20478458.9484 0.000
+ 20083439.806 -11774056.703 7 -8976345.13646 20083450.7604 0.000
+ 20472298.888 -6560416.434 6 -4970519.88946 20472312.5884 0.000
+ 23560876.215 -356162.872 3 0.000 0.000 0.000
+ 19495906.795 -24905182.438 8 -19211400.77747 19495916.2884 0.000
+ 20882440.832 -14588872.928 6 -11163144.04146 20882452.9814 0.000
+ 02 1 30 13 4 29.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23684711.926 -124452.925 4 -66909.31645 23684730.7524 0.000
+ 19741597.870 -23354526.629 7 -17553183.07547 19741608.7914 0.000
+ 23104280.372 -218310.951 4 -123168.20645 23104299.7914 0.000
+ 20458667.888 -7991666.056 7 -6000659.27246 20458681.1444 0.000
+ 20069394.297 -11847866.094 7 -9033858.84346 20069404.8624 0.000
+ 20455294.788 -6649773.027 6 -5040148.30246 20455307.7174 0.000
+ 23546081.700 -433906.626 4 0.000 0.000 0.000
+ 19498019.358 -24894081.197 8 -19202750.49147 19498028.7374 0.000
+ 20896891.664 -14512934.122 6 -11103971.07946 20896903.5414 0.000
+ 02 1 30 13 4 59.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23682403.787 -136580.795 2 -76359.67944 23682423.5434 0.000
+ 19750947.611 -23305393.788 8 -17514897.80347 19750957.1514 0.000
+ 23100355.907 -238932.925 2 -139237.15845 23100379.6864 0.000
+ 20438950.701 -8095279.850 7 -6081397.08946 20438963.1564 0.000
+ 20055428.409 -11921256.808 7 -9091046.32446 20055439.4434 0.000
+ 20438326.174 -6738943.247 6 -5109631.45846 20438336.7554 0.000
+ 23531304.356 -511560.940 4 -38313.01855 23531329.6334 0.000
+ 19500238.190 -24882421.250 8 -19193664.85347 19500247.4714 0.000
+ 20911384.449 -14436774.831 6 -11044626.28946 20911397.2054 0.000
+ 02 1 30 13 5 29.9940000 0 8G 6G10G15G17G22G23G25G30
+ 19760338.634 -23256044.014 8 -17476443.48047 19760348.7814 0.000
+ 23096530.921 -259032.248 2 -154898.76645 23096552.6314 0.000
+ 20419295.920 -8198565.565 7 -6161879.23146 20419308.0334 0.000
+ 20041543.565 -11994221.759 7 -9147902.04246 20041554.9824 0.000
+ 20421394.150 -6827920.847 6 -5178964.52646 20421405.1954 0.000
+ 23516545.544 -589118.130 4 -98746.88545 23516567.0884 0.000
+ 19502564.065 -24870198.492 8 -19184140.64747 19502573.2464 0.000
+ 20925920.024 -14360390.454 6 -10985106.14346 20925931.5254 0.000
+ 02 1 30 13 5 59.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23678074.853 -10742.575 3 0.000 0.000 0.000
+ 19769771.752 -23206472.980 8 -17437816.76747 19769781.2784 0.000
+ 23092806.814 -278602.025 4 -170147.95945 23092825.6754 0.000
+ 20399705.186 -8301514.650 7 -6242099.08946 20399718.1924 0.000
+ 20027741.246 -12066753.166 7 -9204419.92246 20027751.3714 0.000
+ 20404500.312 -6916698.338 6 -5248141.68546 20404512.6624 0.000
+ 23501806.758 -666569.561 5 -159098.32045 23501829.8174 0.000
+ 19504998.073 -24857407.745 8 -19174173.86947 19505007.3124 0.000
+ 20940499.312 -14283776.510 6 -10925407.11446 20940511.5054 0.000
+ 02 1 30 13 6 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23676054.215 -21362.672 2 0.000 0.000 0.000
+ 23517504.460 -16649.86113 0.000 0.000 0.000
+ 19779245.671 -23156687.456 8 -17399022.91247 19779255.4144 0.000
+ 23089182.604 -297646.490 3 -184987.62645 23089204.5474 0.000
+ 20380178.027 -8404129.558 7 -6322058.55846 20380191.2564 0.000
+ 20014020.738 -12138854.461 7 -9260602.64646 20014031.2804 0.000
+ 20387643.860 -7005279.530 6 -5317165.85146 20387654.9694 0.000
+ 23487087.657 -743917.860 4 -219369.35145 23487109.9814 0.000
+ 19507539.135 -24844054.766 8 -19163768.98947 19507548.5764 0.000
+ 20955121.133 -14206939.035 6 -10865533.88646 20955133.3924 0.000
+ 02 1 30 13 6 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23498500.183 -116511.468 2 0.000 0.000 0.000
+ 19788760.441 -23106687.248 7 -17360061.76047 19788771.3304 0.000
+ 23085658.925 -316163.017 4 -199415.92045 23085678.0254 0.000
+ 20360715.213 -8506406.172 7 -6401754.40646 20360728.2564 0.000
+ 20000382.715 -12210522.123 7 -9316447.49346 20000393.9334 0.000
+ 20370825.234 -7093661.450 6 -5386034.74146 20370837.1164 0.000
+ 23472388.874 -821158.736 3 -279556.63945 23472411.0494 0.000
+ 19510187.251 -24830138.890 8 -19152925.48447 19510196.6154 0.000
+ 20969785.596 -14129877.302 6 -10805485.94046 20969798.1524 0.000
+ 02 1 30 13 7 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23479512.867 -216289.588 2 0.000 0.000 0.000
+ 19798315.202 -23056476.791 8 -17320936.79547 19798324.4174 0.000
+ 23082235.304 -334153.736 5 -213434.59145 23082252.2764 0.000
+ 20341316.790 -8608344.943 7 -6481187.01146 20341329.4024 0.000
+ 19986826.969 -12281757.494 7 -9371955.48146 19986838.5774 0.000
+ 20354044.298 -7181845.586 7 -5454749.53846 20354056.6824 0.000
+ 23457710.480 -898292.618 3 -339660.56945 23457734.5744 0.000
+ 19512941.720 -24815664.009 8 -19141646.39147 19512951.2674 0.000
+ 20984491.962 -14052595.269 6 -10745266.33346 20984506.2244 0.000
+ 02 1 30 13 7 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23460541.164 -315984.427 2 0.000 0.000 0.000
+ 19807909.646 -23006057.866 8 -17281649.37047 19807919.6814 0.000
+ 23078911.909 -351617.926 5 -227042.86945 23078932.1334 0.000
+ 20321983.093 -8709943.611 7 -6560354.58046 20321995.2794 0.000
+ 19973353.852 -12352558.930 7 -9427125.34946 19973364.8144 0.000
+ 20337301.232 -7269830.736 7 -5523309.28946 20337313.4294 0.000
+ 23443053.003 -975317.031 3 -399679.21445 23443073.6304 0.000
+ 19515802.386 -24800631.347 8 -19129932.65847 19515811.7464 0.000
+ 20999240.069 -13975093.984 6 -10684875.86946 20999252.8454 0.000
+ 02 1 30 13 8 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23441585.750 -415594.920 3 1.67955 23441604.9454 0.000
+ 19817543.625 -22955431.216 8 -17242200.09647 19817553.2494 0.000
+ 23075688.961 -368554.342 3 -240239.96945 23075709.2614 0.000
+ 20302714.685 -8811199.085 7 -6639254.72946 20302726.9164 0.000
+ 19959963.740 -12422924.159 7 -9481955.30046 19959974.4924 0.000
+ 20320596.327 -7357615.080 6 -5591712.56346 20320608.3474 0.000
+ 23428416.849 -1052228.985 3 -459610.13145 23428441.7004 0.000
+ 19518769.193 -24785040.964 8 -19117784.34847 19518778.7204 0.000
+ 21014029.838 -13897373.873 6 -10624314.91146 21014041.6494 0.000
+ 02 1 30 13 8 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23667374.226 -4543.02414 0.000 0.000 0.000
+ 23422646.723 -515117.704 2 0.000 0.000 0.000
+ 19827217.411 -22904595.339 8 -17202587.78647 19827227.1434 0.000
+ 23072567.281 -384959.080 3 -253022.77845 23072588.4184 0.000
+ 20283512.601 -8912105.821 7 -6717883.13646 20283524.9604 0.000
+ 19946657.576 -12492848.174 7 -9536441.46646 19946668.4444 0.000
+ 20303930.515 -7445193.995 6 -5659955.75146 20303942.0294 0.000
+ 23413803.192 -1129022.629 4 -519448.90945 23413822.5724 0.000
+ 19521842.476 -24768890.895 8 -19105199.92147 19521852.1044 0.000
+ 21028861.564 -13819432.991 6 -10563581.89546 21028874.0664 0.000
+ 02 1 30 13 9 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23665923.058 -12167.259 3 0.000 0.000 0.000
+ 23403725.129 -614549.456 3 0.000 0.000 0.000
+ 19836931.312 -22853548.694 7 -17162811.23046 19836941.2064 0.000
+ 23069547.515 -400828.171 3 -265388.23145 23069566.5324 0.000
+ 20264377.927 -9012658.284 7 -6796235.48946 20264390.6044 0.000
+ 19933436.245 -12562326.528 8 -9590580.36047 19933446.9264 0.000
+ 20287304.636 -7532562.986 6 -5728035.36346 20287317.2284 0.000
+ 23399213.223 -1205692.186 4 -579191.10645 23399236.8574 0.000
+ 19525022.721 -24752178.938 7 -19092177.64647 19525032.0544 0.000
+ 21043735.739 -13741269.145 6 -10502675.16246 21043748.5274 0.000
+ 02 1 30 13 9 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23664565.411 -19301.801 4 -1264.57755 23664585.2424 0.000
+ 23384818.798 -713901.196 3 0.000 0.000 0.000
+ 19846682.843 -22802304.375 7 -17122880.67747 19846694.0594 0.000
+ 23066627.335 -416172.692 3 -277344.94845 23066650.1704 0.000
+ 20245308.920 -9112865.394 7 -6874318.71946 20245321.7964 0.000
+ 19920297.876 -12631368.822 7 -9644379.46947 19920308.8974 0.000
+ 20270716.738 -7619732.253 6 -5795959.34046 20270728.3734 0.000
+ 23384645.121 -1282246.703 5 -638843.68345 23384664.6734 0.000
+ 19528307.493 -24734917.620 8 -19078727.29947 19528317.1584 0.000
+ 21058649.954 -13662894.932 6 -10441604.50046 21058663.3144 0.000
+ 02 1 30 13 10 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23663302.057 -25941.178 4 -6438.15245 23663320.5044 0.000
+ 23365928.976 -813166.408 4 -46399.51855 23365950.2594 0.000
+ 19856472.859 -22750857.815 8 -17082792.48847 19856483.0164 0.000
+ 23063808.410 -430985.806 4 -288887.54945 23063828.4624 0.000
+ 20226307.327 -9212718.518 7 -6952126.15746 20226321.1794 0.000
+ 19907243.929 -12699967.391 7 -9697832.81447 19907255.1634 0.000
+ 20254168.357 -7706694.150 6 -5863721.73346 20254179.3314 0.000
+ 23370100.470 -1358677.475 4 -698399.81945 23370119.8064 0.000
+ 19531697.616 -24717102.215 8 -19064845.21947 19531707.4744 0.000
+ 21073605.167 -13584305.303 6 -10380366.01946 21073618.7044 0.000
+ 02 1 30 13 10 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23662133.160 -32082.890 3 -11223.84445 23662157.1684 0.000
+ 23347056.370 -912341.178 3 -123678.11445 23347079.8744 0.000
+ 19866301.764 -22699206.908 7 -17042545.10747 19866312.7574 0.000
+ 23061091.320 -445263.512 4 -300012.91945 23061109.0194 0.000
+ 20207374.284 -9312211.742 7 -7029653.13646 20207387.1754 0.000
+ 19894275.371 -12768117.182 7 -9750936.46546 19894286.1624 0.000
+ 20237660.392 -7793443.879 6 -5931318.81246 20237671.9634 0.000
+ 23355580.648 -1434978.554 5 -757854.83245 23355599.0744 0.000
+ 19535193.709 -24698730.063 8 -19050529.28547 19535203.5464 0.000
+ 21088601.827 -13505497.963 6 -10318957.85446 21088615.6774 0.000
+ 02 1 30 13 11 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23661057.961 -37733.617 4 -15627.04345 23661077.7804 0.000
+ 23328199.638 -16506.30013 0.000 0.000 0.000
+ 19876168.089 -22647359.263 8 -17002144.41247 19876178.0984 0.000
+ 23058475.208 -459011.025 4 -310725.17745 23058494.1014 0.000
+ 20188509.005 -9411348.723 7 -7106902.53546 20188521.8234 0.000
+ 19881391.386 -12835822.501 7 -9803693.77346 19881402.3284 0.000
+ 20221191.870 -7879986.120 6 -5998754.19946 20221204.2614 0.000
+ 23341084.921 -1511153.147 5 -817211.26845 23341102.8374 0.000
+ 19538794.456 -24679808.369 8 -19035785.14847 19538803.9894 0.000
+ 21103638.610 -13426479.816 6 -10257385.44246 21103651.5814 0.000
+ 02 1 30 13 11 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23660076.722 -42890.707 4 -19645.54845 23660098.1404 0.000
+ 23309359.633 -115507.769 4 0.000 0.000 0.000
+ 19886072.289 -22595312.590 7 -16961588.62846 19886082.9174 0.000
+ 23055960.954 -472224.191 5 -321021.09445 23055979.7054 0.000
+ 20169712.725 -9510123.307 7 -7183869.56346 20169725.1814 0.000
+ 19868593.063 -12903077.852 7 -9856100.46146 19868603.8364 0.000
+ 20204763.807 -7966315.692 6 -6066023.88346 20204776.3824 0.000
+ 23326614.405 -1587194.964 3 -876464.27645 23326634.6104 0.000
+ 19542500.243 -24660334.614 8 -19020610.81947 19542509.7534 0.000
+ 21118716.002 -13347248.125 6 -10195646.63246 21118728.8164 0.000
+ 02 1 30 13 12 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23659189.651 -47552.682 3 -23278.12045 23659205.7544 0.000
+ 23290537.187 -214418.172 2 0.000 0.000 0.000
+ 19896014.441 -22543066.351 7 -16920877.35746 19896023.6274 0.000
+ 23053548.819 -484900.148 4 -330898.38645 23053568.6614 0.000
+ 20150986.251 -9608530.947 7 -7260550.67146 20150998.7094 0.000
+ 19855881.042 -12969879.766 7 -9908153.81846 19855891.5104 0.000
+ 20188376.926 -8052429.086 7 -6133125.11146 20188388.0674 0.000
+ 23312169.902 -1663099.516 2 -935610.21045 23312191.2104 0.000
+ 19546311.203 -24640307.881 8 -19005005.59847 19546320.6754 0.000
+ 21133834.193 -13267801.937 6 -10133740.67546 21133846.9814 0.000
+ 02 1 30 13 12 59.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23658396.385 -51720.485 3 -26525.71444 23658417.5184 0.000
+ 19905994.309 -22490622.023 7 -16880011.70746 19906004.5434 0.000
+ 23051238.982 -497038.278 3 -340356.48745 23051258.7094 0.000
+ 20132330.056 -9706569.289 7 -7336944.01646 20132341.9374 0.000
+ 19843255.604 -13036226.780 8 -9959852.70947 19843265.8794 0.000
+ 20172031.417 -8138324.829 6 -6200056.75146 20172042.8264 0.000
+ 23297751.836 -1738864.198 1 -994647.14545 23297772.6604 0.000
+ 19550227.295 -24619729.018 8 -18988970.16247 19550236.6884 0.000
+ 21148993.037 -13188142.339 6 -10071668.40346 21149006.3474 0.000
+ 02 1 30 13 13 29.9940000 0 9G 1G 6G10G15G17G22G23G25G30
+ 23657697.256 -55394.733 3 -29388.87145 23657716.0624 0.000
+ 19916011.642 -22437980.791 7 -16838992.62846 19916021.4674 0.000
+ 23049031.614 -508637.819 3 -349395.13045 23049055.1214 0.000
+ 20113744.591 -9804235.592 7 -7413047.43846 20113756.5494 0.000
+ 19830717.107 -13102116.826 7 -10011195.53347 19830728.1274 0.000
+ 20155727.650 -8224001.307 7 -6266817.56546 20155739.1204 0.000
+ 23283361.106 -1814486.265 1 -1053573.03645 23283386.2494 0.000
+ 19554248.194 -24598599.365 8 -18972505.55447 19554257.8264 0.000
+ 21164192.421 -13108270.111 6 -10009430.48946 21164205.8534 0.000
+ 02 1 30 13 13 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23657090.850 -58581.567 3 -31872.17445 23657111.5754 0.000
+ 23234176.057 -95348.151 2 0.000 0.000 0.000
+ 19926065.199 -22385149.146 7 -16797825.19446 19926075.1244 0.000
+ 23046926.075 -519703.321 4 -358017.52645 23046941.0564 0.000
+ 20095229.376 -9901532.733 7 -7488863.25646 20095242.1384 0.000
+ 19818264.819 -13167553.648 7 -10062185.18247 19818275.8174 0.000
+ 20139464.913 -8309462.235 6 -6333410.38546 20139476.0994 0.000
+ 23268997.170 -1889968.029 3 -1112389.60145 23269022.6524 0.000
+ 19558372.684 -24576924.903 8 -18955616.39047 19558382.5814 0.000
+ 21179431.052 -13028191.544 6 -9947031.73946 21179443.3484 0.000
+ 02 1 30 13 14 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23656578.749 -61273.929 4 -33970.07345 23656598.4204 0.000
+ 23215421.806 -193892.981 3 -7673.30355 23215441.5104 0.000
+ 19936156.225 -22332120.622 7 -16756504.33546 19936166.6814 0.000
+ 23044923.261 -530226.286 2 -366217.22245 23044942.4174 0.000
+ 20076786.395 -9998450.309 7 -7564383.27246 20076798.5274 0.000
+ 19805900.598 -13232527.685 7 -10112814.22747 19805911.3864 0.000
+ 20123244.891 -8394698.183 6 -6399827.89046 20123256.5264 0.000
+ 23254662.026 -1965299.111 5 -1171088.72545 23254684.2074 0.000
+ 19562602.124 -24554699.046 8 -18938297.59647 19562611.7774 0.000
+ 21194710.261 -12947899.558 6 -9884466.73746 21194722.7484 0.000
+ 02 1 30 13 14 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23656159.511 -63476.890 3 -35686.74745 23656184.5004 0.000
+ 23196686.481 -292346.380 5 -84389.66145 23196705.9034 0.000
+ 19946283.617 -22278901.125 7 -16715034.70546 19946293.8674 0.000
+ 23043023.284 -540210.673 4 -373997.29845 23043042.7044 0.000
+ 20058415.340 -10094990.147 7 -7639608.98646 20058428.1734 0.000
+ 19793623.920 -13297041.727 7 -10163084.82547 19793635.2594 0.000
+ 20107067.209 -8479712.066 6 -6466072.36046 20107078.9814 0.000
+ 23240355.134 -2040481.176 5 -1229671.79145 23240376.9784 0.000
+ 19566935.491 -24531927.370 8 -18920553.48347 19566944.9114 0.000
+ 21210029.019 -12867399.678 6 -9821739.71946 21210042.5334 0.000
+ 02 1 30 13 15 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23655833.336 -65190.537 2 -37022.08945 23655861.3654 0.000
+ 23177968.582 -390707.238 4 -161033.96945 23177988.2514 0.000
+ 19956447.258 -22225491.059 8 -16673416.53046 19956456.5254 0.000
+ 23041225.865 -549655.082 4 -381356.53445 23041244.8394 0.000
+ 20040116.827 -10191149.068 7 -7714537.87846 20040129.4304 0.000
+ 19781435.242 -13361093.218 7 -10212995.00147 19781446.2044 0.000
+ 20090932.291 -8564501.414 7 -6532141.86846 20090944.1804 0.000
+ 23226077.267 -2115510.768 5 -1288136.05745 23226097.2584 0.000
+ 19571372.603 -24508610.348 8 -18902384.41047 19571381.9564 0.000
+ 21225387.295 -12786692.039 6 -9758850.80146 21225400.4474 0.000
+ 02 1 30 13 15 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23655600.866 -66411.584 2 -37973.45243 23655616.8854 0.000
+ 23159269.202 -488971.082 5 -237602.55645 23159287.5774 0.000
+ 19966647.751 -22171887.575 7 -16631647.67546 19966659.1254 0.000
+ 23039532.287 -558554.781 3 -388291.31345 23039554.8284 0.000
+ 20021892.073 -10286920.207 7 -7789164.59846 20021903.5554 0.000
+ 19769335.690 -13424676.433 7 -10262540.28347 19769346.3074 0.000
+ 20074841.177 -8649060.406 6 -6598031.88246 20074852.8174 0.000
+ 23211829.485 -2190381.146 3 -1346476.24445 23211844.8404 0.000
+ 19575914.086 -24484744.717 8 -18883787.86547 19575923.4334 0.000
+ 21240785.686 -12705773.234 6 -9695797.36446 21240798.4574 0.000
+ 02 1 30 13 16 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23655461.997 -67141.602 2 0.000 0.000 0.000
+ 23140588.074 -587137.932 4 -314095.71545 23140606.4774 0.000
+ 19976884.614 -22118092.686 7 -16589729.66946 19976894.3934 0.000
+ 23037942.408 -566910.188 5 -394802.02045 23037958.4874 0.000
+ 20003741.483 -10382301.632 7 -7863487.63446 20003752.2714 0.000
+ 19757325.459 -13487790.413 8 -10311719.93547 19757335.4884 0.000
+ 20058794.042 -8733388.229 7 -6663741.75346 20058805.2214 0.000
+ 23197612.325 -2265090.056 3 -1404690.64245 23197627.5544 0.000
+ 19580559.662 -24460332.339 8 -18864765.27347 19580569.2034 0.000
+ 21256223.939 -12624645.006 6 -9632580.74846 21256238.2274 0.000
+ 02 1 30 13 16 59.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23655415.224 -67386.595 1 0.000 0.000 0.000
+ 23121924.721 -685212.244 5 -390516.74545 23121942.9384 0.000
+ 19987156.711 -22064112.680 7 -16547667.39946 19987166.8104 0.000
+ 23036455.105 -574725.539 4 -400891.89245 23036471.9854 0.000
+ 19985664.547 -10477295.918 7 -7937509.02946 19985677.0054 0.000
+ 19745403.858 -13550438.581 8 -10360536.61746 19745414.2194 0.000
+ 20042790.274 -8817488.239 7 -6729274.10346 20042801.6564 0.000
+ 23183425.538 -2339639.695 3 -1462780.83445 23183445.0914 0.000
+ 19585308.120 -24435379.328 8 -18845321.41147 19585317.2094 0.000
+ 21271700.993 -12543313.243 6 -9569205.52146 21271714.7694 0.000
+ 02 1 30 13 17 29.9940000 0 10G 1G 3G 6G10G15G17G22G23G25G30
+ 23655461.434 -67143.243 2 0.000 0.000 0.000
+ 23103279.962 -783189.686 5 -466862.26145 23103297.9154 0.000
+ 19997464.628 -22009944.595 7 -16505458.61646 19997476.5744 0.000
+ 23035071.511 -581996.095 4 -406557.27445 23035093.7394 0.000
+ 19967662.596 -10571896.414 7 -8011223.58446 19967674.3464 0.000
+ 19733571.982 -13612615.208 7 -10408985.88547 19733582.6224 0.000
+ 20026830.904 -8901354.763 7 -6794624.52746 20026842.6154 0.000
+ 23169270.440 -2414023.246 4 -1520741.71245 23169291.9134 0.000
+ 19590159.924 -24409882.920 8 -18825454.12247 19590169.5764 0.000
+ 21287217.399 -12461774.832 6 -9505669.29346 21287231.3124 0.000
+ 02 1 30 13 17 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23084654.595 -881064.678 5 -543127.96145 23084672.0814 0.000
+ 20007809.083 -21955584.363 7 -16463100.09546 20007819.0944 0.000
+ 23033792.773 -588716.268 5 -411793.73745 23033815.1184 0.000
+ 19949737.063 -10666095.380 7 -8084625.23746 19949748.7264 0.000
+ 19721831.175 -13674313.371 7 -10457062.30547 19721842.2874 0.000
+ 20010917.297 -8984980.809 7 -6859787.55846 20010928.4834 0.000
+ 23155148.547 -2488232.641 4 -1578566.92045 23155170.1834 0.000
+ 19595115.879 -24383839.329 8 -18805160.48547 19595125.4414 0.000
+ 21302773.981 -12380025.294 6 -9441968.51846 21302787.4324 0.000
+ 02 1 30 13 18 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23066047.163 -978844.742 4 -619319.69245 23066066.6004 0.000
+ 20018188.348 -21901041.387 7 -16420599.15946 20018199.0464 0.000
+ 23032617.093 -594893.333 4 -416607.02045 23032635.8544 0.000
+ 19931886.902 -10759898.259 7 -8157718.28846 19931898.9814 0.000
+ 19710180.193 -13735539.398 8 -10504770.81747 19710190.3124 0.000
+ 19995048.337 -9068372.677 7 -6924768.12646 19995059.7054 0.000
+ 23141058.860 -2562273.258 5 -1636260.50945 23141078.9914 0.000
+ 19600174.263 -24357257.400 7 -18784447.34647 19600183.9914 0.000
+ 21318369.005 -12298073.754 6 -9378110.37146 21318382.8634 0.000
+ 02 1 30 13 18 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23047457.054 -1076533.281 4 -695440.19545 23047475.3014 0.000
+ 20028601.393 -21846320.927 7 -16377959.94946 20028611.6754 0.000
+ 23031544.479 -600530.702 5 -420999.86145 23031561.2554 0.000
+ 19914111.805 -10853306.622 7 -8230503.89746 19914122.7754 0.000
+ 19698618.526 -13796295.923 7 -10552113.49447 19698628.8524 0.000
+ 19979223.406 -9151532.716 7 -6989568.03646 19979234.4264 0.000
+ 23127001.037 -2636146.361 4 -1693823.59945 23127019.9844 0.000
+ 19605334.040 -24330142.623 8 -18763318.97447 19605343.6474 0.000
+ 21334001.492 -12215924.983 6 -9314098.51346 21334014.3954 0.000
+ 02 1 30 13 19 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23028884.967 -1174128.254 5 -771487.76845 23028901.2474 0.000
+ 20039048.234 -21791422.644 7 -16335182.16046 20039058.5504 0.000
+ 23030574.920 -605626.650 5 -424970.57345 23030595.2834 0.000
+ 19896412.486 -10946316.418 7 -8302978.94446 19896423.4724 0.000
+ 19687146.850 -13856579.683 7 -10599087.79147 19687157.4694 0.000
+ 19963443.142 -9234457.807 7 -7054184.87646 19963454.5304 0.000
+ 23112975.916 -2709847.642 4 -1751252.85945 23112996.0514 0.000
+ 19610595.301 -24302494.704 8 -18741775.20347 19610604.8974 0.000
+ 21349671.696 -12133578.397 6 -9249932.56146 21349685.0064 0.000
+ 02 1 30 13 19 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 23010332.253 -1271621.253 5 -847455.89145 23010347.6414 0.000
+ 20049530.232 -21736339.666 7 -16292260.43646 20049540.8384 0.000
+ 23029709.739 -610172.458 3 -428512.66045 23029727.8634 0.000
+ 19878791.034 -11038917.012 7 -8375135.11646 19878802.3924 0.000
+ 19675767.008 -13916380.986 8 -10645686.14247 19675777.4844 0.000
+ 19947709.502 -9317138.230 7 -7118611.07646 19947720.2914 0.000
+ 23098985.588 -2783366.232 4 -1808539.84545 23099006.3854 0.000
+ 19615959.388 -24274306.562 8 -18719810.47747 19615968.3894 0.000
+ 21365380.843 -12051026.908 6 -9185606.92846 21365393.9704 0.000
+ 02 1 30 13 20 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22991799.062 -1369011.431 4 -923343.96545 22991813.3994 0.000
+ 20060047.193 -21681072.956 7 -16249195.57046 20060057.8054 0.000
+ 23028949.664 -614167.532 5 -431625.71945 23028969.2884 0.000
+ 19861247.984 -11131105.686 7 -8446970.32146 19861260.3964 0.000
+ 19664479.299 -13975698.223 8 -10691907.30047 19664489.8734 0.000
+ 19932022.855 -9399571.855 7 -7182844.94746 19932032.5544 0.000
+ 23085030.653 -2856699.089 4 -1865682.03745 23085052.7014 0.000
+ 19621426.095 -24245579.236 8 -18697425.57847 19621435.4064 0.000
+ 21381128.888 -11968271.115 6 -9121122.11546 21381142.9764 0.000
+ 02 1 30 13 20 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22973285.124 -1466300.934 4 -999153.45645 22973301.7284 0.000
+ 20070598.422 -21625626.384 7 -16205990.55446 20070608.6264 0.000
+ 23028293.827 -617614.227 5 -434311.33145 23028313.6354 0.000
+ 19843783.358 -11222882.724 8 -8518484.78447 19843795.0964 0.000
+ 19653283.504 -14034532.380 8 -10737752.04047 19653293.7914 0.000
+ 19916382.966 -9481759.679 7 -7246887.32246 19916393.0754 0.000
+ 23071111.106 -2929846.161 5 -1922679.42245 23071130.7294 0.000
+ 19626994.569 -24216316.877 8 -18674623.78147 19627004.0644 0.000
+ 21396915.184 -11885314.671 6 -9056480.89946 21396928.7124 0.000
+ 02 1 30 13 21 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22954791.955 -1563481.547 5 -1074878.29045 22954807.7504 0.000
+ 20081185.129 -21569993.482 7 -16162640.31246 20081196.4474 0.000
+ 23027743.601 -620504.873 3 -436563.83745 23027765.9914 0.000
+ 19826398.961 -11314238.119 8 -8589670.67447 19826410.5304 0.000
+ 19642181.338 -14092874.467 8 -10783213.34147 19642191.3834 0.000
+ 19900791.564 -9563692.661 7 -7310731.11446 19900802.6634 0.000
+ 23057228.679 -3002797.147 4 -1979523.99445 23057244.7444 0.000
+ 19632665.983 -24186513.526 8 -18651400.43947 19632675.5194 0.000
+ 21412740.954 -11802151.016 6 -8991678.23646 21412754.3274 0.000
+ 02 1 30 13 21 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22936318.144 -1660559.631 3 -1150523.13845 22936337.3094 0.000
+ 20091805.817 -21514181.884 7 -16119150.84146 20091816.1294 0.000
+ 23027298.481 -622845.218 5 -438387.39045 23027316.5194 0.000
+ 19809094.050 -11405175.725 8 -8660531.01847 19809105.3734 0.000
+ 19631171.876 -14150729.371 8 -10828295.02647 19631181.5324 0.000
+ 19885247.794 -9645375.335 7 -7374379.85646 19885259.7544 0.000
+ 23043382.794 -3075555.745 3 -2036218.84745 23043402.3084 0.000
+ 19638438.966 -24156176.477 8 -18627761.22047 19638448.7834 0.000
+ 21428604.770 -11718787.364 6 -8926719.76146 21428617.7384 0.000
+ 02 1 30 13 22 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22917864.365 -1757532.614 3 -1226086.18345 22917884.0964 0.000
+ 20102460.678 -21458190.660 7 -16075521.39346 20102471.3414 0.000
+ 23026958.042 -624632.998 4 -439780.44045 23026973.8174 0.000
+ 19791869.480 -11495690.850 7 -8731062.16346 19791881.1054 0.000
+ 19620255.802 -14208093.492 8 -10872994.28447 19620265.5254 0.000
+ 19869752.315 -9726803.977 7 -7437830.64346 19869764.9164 0.000
+ 23029574.585 -3148117.007 4 -2092759.70045 23029595.4874 0.000
+ 19644313.657 -24125305.182 8 -18603705.72447 19644323.2644 0.000
+ 21444506.820 -11635222.464 6 -8861604.45646 21444520.5404 0.000
+ 02 1 30 13 22 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22899431.276 -1854397.485 4 -1301564.89745 22899450.2564 0.000
+ 20113149.929 -21402018.746 7 -16031751.14046 20113160.1364 0.000
+ 23026723.233 -625865.548 4 -440740.87445 23026742.1054 0.000
+ 19774726.263 -11585778.648 8 -8801260.34446 19774737.7854 0.000
+ 19609433.848 -14264963.009 7 -10917308.12647 19609444.2954 0.000
+ 19854305.959 -9807974.438 7 -7501080.26846 19854318.0134 0.000
+ 23015804.909 -3220475.854 3 -2149142.91445 23015824.1494 0.000
+ 19650290.124 -24093898.853 8 -18579233.31647 19650299.4064 0.000
+ 21460447.366 -11551455.011 6 -8796331.32846 21460460.7844 0.000
+ 02 1 30 13 23 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22881017.444 -1951161.548 5 -1376965.07545 22881035.8774 0.000
+ 20123871.879 -21345674.808 7 -15987846.86046 20123881.5564 0.000
+ 23026593.098 -626550.130 5 -441274.24745 23026609.7684 0.000
+ 19757663.301 -11675444.473 7 -8871129.68646 19757674.2274 0.000
+ 19598704.848 -14321344.026 8 -10961241.32447 19598715.8474 0.000
+ 19838907.699 -9888892.615 7 -7564133.29646 19838919.3394 0.000
+ 23002072.920 -3292637.107 3 -2205372.15745 23002090.0314 0.000
+ 19656366.756 -24061966.048 8 -18554350.64346 19656375.5014 0.000
+ 21476424.743 -11467493.458 6 -8730906.96846 21476439.1624 0.000
+ 02 1 30 13 23 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22862623.689 -2047820.543 5 -1452283.44145 22862639.8314 0.000
+ 20134627.039 -21289156.365 7 -15943806.56846 20134637.5824 0.000
+ 23026567.855 -626682.790 5 -441377.59745 23026587.6104 0.000
+ 19740681.812 -11764682.235 8 -8940665.50147 19740693.3574 0.000
+ 19588069.760 -14377231.522 8 -11004789.96447 19588080.2794 0.000
+ 19823558.502 -9969553.107 7 -7626985.54846 19823569.5174 0.000
+ 22988379.739 -3364594.479 4 -2261442.54545 22988399.5744 0.000
+ 19662543.949 -24029504.963 8 -18529056.34946 19662552.5434 0.000
+ 21492439.483 -11383335.191 6 -8665329.29045 21492454.4704 0.000
+ 02 1 30 13 24 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22844248.982 -2144378.654 3 -1527523.17545 22844266.3984 0.000
+ 20145414.285 -21232469.161 7 -15899634.81546 20145425.3764 0.000
+ 23026646.872 -626268.131 4 -441054.54845 23026667.3274 0.000
+ 19723781.401 -11853494.045 8 -9009869.38647 19723792.8134 0.000
+ 19577527.974 -14432628.726 8 -11047956.55847 19577538.7484 0.000
+ 19808257.673 -10049958.918 7 -7689639.35246 19808268.4884 0.000
+ 22974725.024 -3436349.890 5 -2317355.64045 22974742.3804 0.000
+ 19668820.527 -23996521.453 8 -18503354.94446 19668829.9654 0.000
+ 21508490.744 -11298985.787 6 -8599602.73246 21508505.6734 0.000
+ 02 1 30 13 24 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22825895.340 -2240825.882 4 -1602676.58145 22825914.9644 0.000
+ 20156235.214 -21175605.049 7 -15855325.18346 20156245.6224 0.000
+ 23026831.806 -625296.604 5 -440297.48145 23026854.0174 0.000
+ 19706964.274 -11941868.229 7 -9078732.28347 19706976.0644 0.000
+ 19567081.537 -14487524.812 8 -11090732.66747 19567091.6854 0.000
+ 19793007.457 -10130098.957 7 -7752086.05646 19793018.3024 0.000
+ 22961111.040 -3507891.162 4 -2373101.83445 22961130.3854 0.000
+ 19675197.973 -23963008.046 8 -18477240.62647 19675208.0314 0.000
+ 21524579.995 -11214436.992 6 -8533720.72345 21524594.4344 0.000
+ 02 1 30 13 25 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22807561.081 -2337172.679 5 -1677751.62645 22807578.4144 0.000
+ 20167087.574 -21118575.745 7 -15810886.85146 20167098.6444 0.000
+ 23027120.376 -623778.553 4 -439114.56945 23027141.3904 0.000
+ 19690228.877 -12029813.126 8 -9147260.66047 19690239.3914 0.000
+ 19556728.654 -14541929.198 8 -11133125.62847 19556738.8784 0.000
+ 19777806.187 -10209982.038 7 -7814332.52546 19777816.1464 0.000
+ 22947536.237 -3579226.303 5 -2428687.46645 22947553.2454 0.000
+ 19681673.936 -23928976.627 8 -18450722.68546 19681683.7294 0.000
+ 21540705.036 -11129700.293 6 -8467692.39446 21540719.0764 0.000
+ 02 1 30 13 25 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22789247.887 -2433407.995 5 -1752739.82245 22789264.1414 0.000
+ 20177973.171 -21061371.859 7 -15766312.47646 20177984.1654 0.000
+ 23027515.293 -621703.611 4 -437497.74445 23027532.4914 0.000
+ 19673577.566 -12117315.977 8 -9215444.57747 19673588.6644 0.000
+ 19546471.587 -14595830.063 8 -11175126.22747 19546482.1314 0.000
+ 19762656.063 -10289596.130 7 -7876369.38146 19762666.4974 0.000
+ 22934003.173 -3650342.091 5 -2484102.11245 22934021.8404 0.000
+ 19688250.188 -23894418.153 8 -18423794.07846 19688260.3984 0.000
+ 21556867.729 -11044766.151 6 -8401510.16146 21556881.4914 0.000
+ 02 1 30 13 26 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22770953.673 -2529542.529 5 -1827649.53345 22770970.1884 0.000
+ 20188889.655 -21004005.602 7 -15721611.58746 20188900.9614 0.000
+ 23028014.251 -619082.353 5 -435455.14745 23028031.4874 0.000
+ 19657008.725 -12204385.346 8 -9283290.71547 19657019.6624 0.000
+ 19536308.530 -14649236.975 8 -11216741.94547 19536319.3854 0.000
+ 19747555.398 -10368950.391 7 -7938203.81546 19747566.5094 0.000
+ 22920510.236 -3721246.780 4 -2539352.25445 22920528.7964 0.000
+ 19694924.365 -23859345.377 7 -18396464.68547 19694934.5934 0.000
+ 21573065.685 -10959646.703 6 -8335183.53546 21573079.1784 0.000
+ 02 1 30 13 26 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22752681.762 -2625560.881 5 -1902468.73845 22752698.0214 0.000
+ 20199839.595 -20946463.517 7 -15676773.67546 20199850.1054 0.000
+ 23028619.861 -615900.167 4 -432975.55245 23028639.8274 0.000
+ 19640525.624 -12291004.225 8 -9350785.83747 19640536.3844 0.000
+ 19526242.522 -14702134.007 8 -11257960.34447 19526252.6804 0.000
+ 19732507.322 -10448028.528 7 -7999823.04846 19732519.0004 0.000
+ 22907060.809 -3791922.853 4 -2594424.36745 22907078.9144 0.000
+ 19701698.898 -23823745.151 8 -18368724.27547 19701708.3044 0.000
+ 21589301.479 -10874328.171 6 -8268701.78846 21589315.0354 0.000
+ 02 1 30 13 27 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22734430.668 -2721470.872 5 -1977203.52245 22734445.7054 0.000
+ 20210821.270 -20888754.767 7 -15631805.92146 20210831.6214 0.000
+ 23029330.563 -612165.021 3 -430065.05545 23029349.4314 0.000
+ 19624127.150 -12377178.417 8 -9417934.44747 19624137.9734 0.000
+ 19516272.282 -14754527.793 8 -11298786.63247 19516282.1964 0.000
+ 19717510.578 -10526836.751 7 -8061231.95546 19717521.7804 0.000
+ 22893654.053 -3862375.671 5 -2649322.45145 22893672.1794 0.000
+ 19708572.033 -23787627.198 8 -18340580.50546 19708580.9904 0.000
+ 21605573.462 -10788819.491 6 -8202071.88245 21605587.3824 0.000
+ 02 1 30 13 27 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22716199.858 -2817273.734 5 -2051854.80145 22716215.3334 0.000
+ 20221834.112 -20830882.216 7 -15586710.48146 20221844.8234 0.000
+ 23030146.133 -607878.340 3 -426724.64045 23030170.0434 0.000
+ 19607813.397 -12462907.272 8 -9484736.04747 19607824.3144 0.000
+ 19506397.757 -14806418.665 8 -11339221.01247 19506407.5054 0.000
+ 19702565.152 -10605374.945 7 -8122430.46546 19702575.8544 0.000
+ 22880289.897 -3932604.269 5 -2704045.83145 22880308.2674 0.000
+ 19715543.000 -23750994.641 8 -18312035.70547 19715552.9774 0.000
+ 21621881.065 -10703123.311 6 -8135295.83446 21621896.1954 0.000
+ 02 1 30 13 28 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22697990.314 -2912964.207 5 -2126418.49345 22698008.2664 0.000
+ 20232878.841 -20772842.156 7 -15541484.55946 20232889.7724 0.000
+ 23031067.580 -603035.631 3 -422951.08045 23031085.2824 0.000
+ 19591585.769 -12548183.598 8 -9551185.02847 19591596.4974 0.000
+ 19496620.058 -14857800.694 8 -11379258.89247 19496629.7254 0.000
+ 19687672.423 -10683636.510 7 -8183413.42746 19687683.6444 0.000
+ 22866969.783 -4002601.054 5 -2758588.59345 22866988.7834 0.000
+ 19722612.529 -23713844.386 8 -18283087.47947 19722622.8534 0.000
+ 21638225.040 -10617235.888 6 -8068370.78745 21638239.9594 0.000
+ 02 1 30 13 28 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22679802.143 -3008542.135 5 -2200894.48845 22679817.1914 0.000
+ 20243955.198 -20714635.886 7 -15496129.10746 20243966.2164 0.000
+ 23032094.793 -597636.926 4 -418744.41645 23032116.5674 0.000
+ 19575444.658 -12633005.271 8 -9617279.74347 19575455.7044 0.000
+ 19486939.384 -14908672.856 8 -11418899.48347 19486949.0334 0.000
+ 19672832.597 -10761620.216 7 -8244179.86546 19672843.5444 0.000
+ 22853694.227 -4072363.732 5 -2812948.89745 22853714.4124 0.000
+ 19729780.251 -23676178.225 8 -18253737.30146 19729789.6994 0.000
+ 21654605.186 -10531158.475 6 -8001297.71446 21654620.8814 0.000
+ 02 1 30 13 29 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22661635.501 -3104005.950 4 -2275281.70845 22661654.9474 0.000
+ 20255063.124 -20656263.687 7 -15450644.37346 20255074.3714 0.000
+ 23033228.247 -591681.535 5 -414103.75745 23033251.7574 0.000
+ 19559390.679 -12717369.103 8 -9683017.70747 19559401.9594 0.000
+ 19477356.135 -14959032.988 8 -11458141.09147 19477365.5754 0.000
+ 19658046.121 -10839323.312 7 -8304727.63646 19658057.5174 0.000
+ 22840463.906 -4141888.648 5 -2867123.90645 22840485.1084 0.000
+ 19737045.914 -23637997.002 8 -18223985.77046 19737055.4684 0.000
+ 21671021.447 -10444891.275 6 -7934076.77445 21671035.7594 0.000
+ 02 1 30 13 29 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22643490.276 -3199358.325 5 -2349582.10145 22643508.8234 0.000
+ 20266201.923 -20597729.386 7 -15405033.32646 20266212.7254 0.000
+ 23034466.829 -585172.180 2 -409031.57645 23034485.1434 0.000
+ 19543423.680 -12801275.735 8 -9748399.38347 19543434.7444 0.000
+ 19467870.006 -15008882.722 8 -11496984.98447 19467880.1994 0.000
+ 19643312.847 -10916746.670 7 -8365057.45946 19643323.4684 0.000
+ 22827278.656 -4211175.848 5 -2921113.65145 22827295.7094 0.000
+ 19744408.837 -23599304.911 8 -18193836.14847 19744418.2244 0.000
+ 21687473.156 -10358437.930 6 -7866710.77645 21687488.9184 0.000
+ 02 1 30 13 30 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22625366.014 -3294601.267 5 -2423797.13145 22625383.2884 0.000
+ 20277370.870 -20539036.455 7 -15359298.65646 20277381.6704 0.000
+ 23035810.483 -578111.428 2 -403529.76445 23035826.2104 0.000
+ 19527543.652 -12884725.279 8 -9813424.90247 19527555.2774 0.000
+ 19458480.750 -15058223.325 8 -11535432.16447 19458491.1774 0.000
+ 19628632.711 -10993891.064 8 -8425169.89846 19628643.0534 0.000
+ 22814138.608 -4280225.023 4 -2974917.91745 22814158.1474 0.000
+ 19751868.130 -23560106.321 8 -18163291.86346 19751877.4444 0.000
+ 21703959.604 -10271801.906 6 -7799202.38645 21703973.6754 0.000
+ 02 1 30 13 30 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22607262.842 -3389733.639 5 -2497925.97045 22607279.5064 0.000
+ 20288569.940 -20480185.206 7 -15313440.64346 20288581.0094 0.000
+ 23037259.249 -570498.701 4 -397597.78745 23037276.5114 0.000
+ 19511751.159 -12967714.990 8 -9878092.10047 19511762.6604 0.000
+ 19449188.731 -15107052.872 8 -11573481.10547 19449198.4844 0.000
+ 19614006.157 -11070754.156 8 -8485063.13546 19614016.4724 0.000
+ 22801044.604 -4349032.863 4 -3028534.18445 22801062.4714 0.000
+ 19759423.543 -23520402.540 8 -18132353.93246 19759432.8924 0.000
+ 21720480.712 -10184983.493 6 -7731551.93946 21720494.3994 0.000
+ 02 1 30 13 31 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22589181.812 -3484748.320 4 -2571963.16245 22589200.5524 0.000
+ 20299800.177 -20421170.342 7 -15267455.13446 20299811.0244 0.000
+ 23038814.064 -562327.554 3 -391230.59145 23038837.0624 0.000
+ 19496047.858 -13050236.018 8 -9942394.11147 19496059.5604 0.000
+ 19439995.405 -15155363.720 8 -11611125.87447 19440004.8674 0.000
+ 19599434.681 -11147327.647 8 -8544730.71846 19599444.5854 0.000
+ 22787998.550 -4417590.284 5 -3081955.30545 22788017.3584 0.000
+ 19767076.037 -23480188.675 7 -18101018.51246 19767085.8154 0.000
+ 21737037.535 -10097977.358 6 -7663755.20345 21737051.8334 0.000
+ 02 1 30 13 31 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22571122.975 -3579646.618 5 -2645909.65245 22571143.1394 0.000
+ 20311061.027 -20361994.585 7 -15221344.24346 20311071.8584 0.000
+ 23040475.000 -553599.640 4 -384429.72345 23040493.7454 0.000
+ 19480433.871 -13132287.734 8 -10006330.41347 19480444.4974 0.000
+ 19430900.715 -15203156.334 8 -11648366.83347 19430910.4674 0.000
+ 19584918.288 -11223611.349 7 -8604172.48246 19584928.7594 0.000
+ 22775000.382 -4485896.068 5 -3135180.39645 22775018.4284 0.000
+ 19774825.018 -23439467.725 8 -18069287.96846 19774834.3044 0.000
+ 21753629.666 -10010786.022 6 -7595814.14446 21753644.5044 0.000
+ 02 1 30 13 32 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22553085.672 -3674431.969 4 -2719768.09145 22553104.1274 0.000
+ 20322351.599 -20302662.671 7 -15175111.68146 20322362.3954 0.000
+ 23042241.032 -544319.328 3 -377198.34145 23042255.2444 0.000
+ 19464908.838 -13213871.811 8 -10069902.32647 19464919.5374 0.000
+ 19421904.148 -15250433.511 8 -11685206.14147 19421914.0664 0.000
+ 19570456.657 -11299607.337 8 -8663390.06046 19570466.9054 0.000
+ 22762049.720 -4553951.478 5 -3188210.30245 22762065.1264 0.000
+ 19782669.444 -23398245.488 8 -18037166.80546 19782679.1344 0.000
+ 21770256.062 -9923414.387 5 -7527732.60246 21770271.9764 0.000
+ 02 1 30 13 32 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22535070.039 -3769104.020 5 -2793538.25945 22535087.5254 0.000
+ 20333671.621 -20243176.001 7 -15128758.52546 20333682.8184 0.000
+ 23044112.011 -534487.143 2 -369536.97345 23044134.4034 0.000
+ 19449473.165 -13294986.499 8 -10133108.49747 19449484.3554 0.000
+ 19413005.828 -15297194.363 8 -11721643.11847 19413016.0864 0.000
+ 19556050.094 -11375314.224 8 -8722382.36547 19556060.5394 0.000
+ 22749147.117 -4621754.317 5 -3241043.46745 22749163.0594 0.000
+ 19790608.802 -23356524.298 8 -18004656.85047 19790619.0144 0.000
+ 21786916.567 -9835863.924 5 -7459511.72845 21786932.9164 0.000
+ 02 1 30 13 33 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22517077.336 -3863656.597 6 -2867215.30445 22517095.1314 0.000
+ 20345022.018 -20183529.885 7 -15082281.12546 20345032.7764 0.000
+ 23046089.246 -524097.080 3 -361440.85845 23046112.1124 0.000
+ 19434128.420 -13375623.504 8 -10195942.43247 19434139.0424 0.000
+ 19404207.078 -15343431.984 8 -11757672.39347 19404217.0924 0.000
+ 19541700.019 -11450724.251 8 -8781143.35547 19541710.6644 0.000
+ 22736294.196 -4689295.885 4 -3293672.99145 22736311.0944 0.000
+ 19798643.810 -23314300.088 7 -17971754.93946 19798653.6924 0.000
+ 21803612.077 -9748129.688 6 -7391147.67145 21803628.5174 0.000
+ 02 1 30 13 33 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22499105.273 -3958100.127 5 -2940807.44845 22499119.1494 0.000
+ 20356400.505 -20123735.947 7 -15035688.54546 20356411.6844 0.000
+ 23048170.410 -513160.311 3 -352918.72845 23048195.8784 0.000
+ 19418872.912 -13455791.306 8 -10258410.75247 19418883.3544 0.000
+ 19395506.106 -15389155.854 8 -11793301.35047 19395516.0654 0.000
+ 19527404.733 -11525846.267 8 -8839679.92647 19527415.5044 0.000
+ 22723489.543 -4756584.175 5 -3346105.18145 22723510.5184 0.000
+ 19806772.321 -23271584.786 8 -17938470.38646 19806781.7794 0.000
+ 21820340.373 -9660223.238 6 -7322649.41445 21820354.9094 0.000
+ 02 1 30 13 34 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22481155.138 -4052427.218 5 -3014308.80845 22481170.9024 0.000
+ 20367808.255 -20063788.317 7 -14988976.19646 20367820.1404 0.000
+ 23050357.072 -501669.990 4 -343965.25645 23050378.7514 0.000
+ 19403708.439 -13535480.896 8 -10320506.45447 19403718.7994 0.000
+ 19386904.366 -15434358.061 8 -11828523.81947 19386914.6554 0.000
+ 19513165.862 -11600671.607 8 -8897985.32047 19513176.0004 0.000
+ 22710734.765 -4823609.822 5 -3398332.67045 22710753.8094 0.000
+ 19814995.171 -23228373.778 7 -17904799.54946 19815004.7284 0.000
+ 21837102.481 -9572138.780 5 -7254012.40545 21837117.3924 0.000
+ 02 1 30 13 34 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22463227.839 -4146633.784 3 -3087716.30045 22463245.2374 0.000
+ 20379245.723 -20003684.470 7 -14942142.14846 20379256.8344 0.000
+ 23052649.790 -489622.698 4 -334577.78445 23052671.1154 0.000
+ 19388636.051 -13614686.516 8 -10382225.01547 19388646.8174 0.000
+ 19378402.773 -15479033.997 8 -11863336.19147 19378413.2384 0.000
+ 19498984.459 -11675194.948 8 -8956055.37747 19498995.3294 0.000
+ 22698030.940 -4890366.428 4 -3450350.50545 22698046.4004 0.000
+ 19823312.651 -23184665.396 7 -17870741.12846 19823322.6014 0.000
+ 21853898.935 -9483873.787 6 -7185234.73545 21853914.5154 0.000
+ 02 1 30 13 35 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22445322.546 -4240725.364 4 -3161034.18145 22445340.3924 0.000
+ 20390711.614 -19943431.170 7 -14895191.59946 20390722.3274 0.000
+ 23055047.184 -477024.668 4 -324761.17045 23055064.2434 0.000
+ 19373655.006 -13693411.893 8 -10443569.36847 19373665.7214 0.000
+ 19370000.427 -15523188.495 8 -11897742.25747 19370010.4294 0.000
+ 19484859.749 -11749420.417 7 -9013893.34447 19484870.4324 0.000
+ 22685377.899 -4956857.112 4 -3502161.19145 22685397.4554 0.000
+ 19831723.302 -23140467.269 7 -17836301.09646 19831733.9344 0.000
+ 21870728.438 -9395435.070 6 -7116321.73845 21870744.2674 0.000
+ 02 1 30 13 35 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22427438.484 -4334706.004 5 -3234265.67245 22427455.1874 0.000
+ 20402204.878 -19883033.922 7 -14848128.93146 20402215.8654 0.000
+ 23057548.342 -463880.784 3 -314519.25345 23057566.6994 0.000
+ 19358764.860 -13771659.601 8 -10504541.52047 19358775.4154 0.000
+ 19361696.657 -15566825.082 8 -11931744.75247 19361706.5604 0.000
+ 19470791.268 -11823350.503 8 -9071501.11747 19470802.2564 0.000
+ 22672775.269 -5023083.744 5 -3553766.08745 22672793.7654 0.000
+ 19840225.924 -23095785.778 7 -17801484.41946 19840236.4014 0.000
+ 21887589.995 -9306828.267 6 -7047277.73545 21887605.8974 0.000
+ 02 1 30 13 36 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22409576.514 -4428570.568 5 -3307406.61545 22409592.5564 0.000
+ 20413726.229 -19822489.211 7 -14800951.33546 20413737.1674 0.000
+ 23060153.969 -450186.814 2 -303848.56745 23060174.8254 0.000
+ 19343966.937 -13849422.929 8 -10565136.24047 19343977.6564 0.000
+ 19353492.523 -15609938.033 8 -11965339.21847 19353502.5064 0.000
+ 19456780.205 -11896978.937 8 -9128873.85847 19456790.2664 0.000
+ 22660224.217 -5089039.087 5 -3605159.60445 22660242.7064 0.000
+ 19848821.130 -23050618.174 8 -17766288.97246 19848831.4244 0.000
+ 21904484.268 -9218049.714 6 -6978099.89745 21904499.6504 0.000
+ 02 1 30 13 36 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22391735.770 -4522323.348 5 -3380460.47745 22391752.2614 0.000
+ 20425274.565 -19761802.837 7 -14753663.34446 20425286.3424 0.000
+ 19329260.747 -13926704.345 8 -10625355.45047 19329271.4874 0.000
+ 19345387.304 -15652531.128 8 -11998528.59747 19345397.8174 0.000
+ 19442825.962 -11970308.682 8 -9186013.85447 19442836.0474 0.000
+ 22647724.362 -5154725.235 5 -3656343.40045 22647742.1104 0.000
+ 19857507.536 -23004971.105 7 -17730719.87846 19857517.7194 0.000
+ 21921410.103 -9129105.236 6 -6908792.79645 21921424.4454 0.000
+ 02 1 30 13 37 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22373916.980 -4615960.855 5 -3453424.48545 22373934.9844 0.000
+ 20436850.242 -19700972.699 6 -14706263.35546 20436861.5634 0.000
+ 19314647.164 -14003499.007 8 -10685195.35947 19314657.7974 0.000
+ 19337381.696 -15694600.692 8 -12031310.03747 19337391.6154 0.000
+ 19428929.500 -12043334.981 8 -9242917.41447 19428939.7434 0.000
+ 22635276.834 -5220136.789 5 -3707313.29745 22635295.7654 0.000
+ 19866285.499 -22958843.241 8 -17694776.16346 19866294.8174 0.000
+ 21938367.910 -9039992.921 6 -6839354.92345 21938382.7044 0.000
+ 02 1 30 13 37 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22356121.464 -4709476.480 5 -3526293.53945 22356138.9534 0.000
+ 20448454.302 -19639993.536 7 -14658747.22046 20448465.1324 0.000
+ 19300127.781 -14079798.580 8 -10744649.48947 19300138.0204 0.000
+ 19329477.117 -15736139.451 8 -12063677.86647 19329486.8194 0.000
+ 19415092.345 -12116049.769 8 -9299578.23347 19415103.3594 0.000
+ 22622883.304 -5285264.865 5 -3758062.21845 22622899.5404 0.000
+ 19875155.626 -22912230.814 7 -17658454.87546 19875164.8534 0.000
+ 21955358.500 -8950707.669 5 -6769782.26245 21955372.5534 0.000
+ 02 1 30 13 38 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22338349.397 -4802868.885 5 -3599066.56145 22338366.7894 0.000
+ 20460086.660 -19578865.508 7 -14611115.07146 20460097.8824 0.000
+ 23071621.872 2685.33514 0.000 0.000 0.000
+ 19285703.203 -14155599.935 8 -10803715.38247 19285713.9134 0.000
+ 19321673.902 -15777145.509 8 -12095630.58847 19321683.7274 0.000
+ 19401314.947 -12188450.221 8 -9355994.09247 19401325.5874 0.000
+ 22610544.447 -5350105.860 5 -3808587.40845 22610562.5614 0.000
+ 19884117.681 -22865135.032 8 -17621756.90646 19884127.7704 0.000
+ 21972382.066 -8861249.524 5 -6700074.91545 21972398.7144 0.000
+ 02 1 30 13 38 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22320598.883 -4896147.470 5 -3671750.93945 22320614.6984 0.000
+ 20471745.298 -19517599.223 7 -14563375.24646 20471756.5964 0.000
+ 23074748.714 19122.696 2 0.000 0.000 0.000
+ 19271371.964 -14230910.886 7 -10862399.16547 19271382.6534 0.000
+ 19313970.363 -15817627.679 8 -12127175.09647 19313980.2734 0.000
+ 19387595.781 -12260544.347 8 -9412171.27047 19387606.0574 0.000
+ 22598258.685 -5414666.890 5 -3858894.53445 22598275.7834 0.000
+ 19893169.593 -22817567.390 7 -17584691.32246 19893179.3314 0.000
+ 21989436.434 -8771629.220 5 -6630241.16545 21989451.5634 0.000
+ 02 1 30 13 39 29.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22302871.462 -4989303.987 5 -3744340.12445 22302888.3274 0.000
+ 20483431.483 -19456188.051 7 -14515522.47146 20483442.8764 0.000
+ 23077981.658 36110.959 4 4902.40755 23078002.6574 0.000
+ 19257135.852 -14305721.831 8 -10920693.33047 19257146.3104 0.000
+ 19306368.140 -15857577.409 8 -12158304.70147 19306377.8174 0.000
+ 19373936.774 -12332322.615 8 -9468102.33947 19373946.4454 0.000
+ 22586028.079 -5478937.538 4 -3908975.28745 22586046.4224 0.000
+ 19902312.245 -22769522.180 7 -17547253.56246 19902323.6534 0.000
+ 22006522.855 -8681840.083 5 -6560275.89445 22006536.8524 0.000
+ 02 1 30 13 39 59.9940000 0 9G 3G 6G10G15G17G22G23G25G30
+ 22285166.968 -5082339.985 4 -3816835.47345 22285183.6144 0.000
+ 20495144.801 -19394634.455 6 -14467558.77046 20495156.9344 0.000
+ 23081318.981 53648.188 3 18567.77244 23081337.1254 0.000
+ 19242994.898 -14380032.467 8 -10978597.64047 19243005.6104 0.000
+ 19298867.096 -15896995.486 8 -12189020.05247 19298876.6384 0.000
+ 19360337.919 -12403784.966 8 -9523787.21347 19360348.1264 0.000
+ 22573852.955 -5542917.073 5 -3958829.33745 22573872.2344 0.000
+ 19911545.264 -22721002.754 8 -17509446.30246 19911556.1264 0.000
+ 22023640.929 -8591884.976 5 -6490181.31245 22023658.3944 0.000
+ 02 1 30 13 40 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22267486.407 -5175250.370 4 -3889232.95745 22267502.7744 0.000
+ 20506885.873 -19332934.993 7 -14419481.37146 20506897.6174 0.000
+ 19228950.409 -14453836.219 8 -11036106.97747 19228961.2564 0.000
+ 19291468.179 -15935876.851 8 -12219317.18547 19291478.1424 0.000
+ 19346800.327 -12474925.263 8 -9579221.13947 19346810.4794 0.000
+ 22561734.592 -5606598.534 5 -4008450.96545 22561752.4394 0.000
+ 19920868.985 -22672006.913 8 -17471267.80846 19920878.3424 0.000
+ 22040791.273 -8501760.667 5 -6419954.82745 22040808.2124 0.000
+ 02 1 30 13 40 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22249828.611 -5268041.939 5 -3961537.79145 22249844.6104 0.000
+ 20518653.159 -19271097.889 6 -14371296.72046 20518665.5884 0.000
+ 19215001.429 -14527138.316 8 -11093225.41147 19215012.5274 0.000
+ 19284170.210 -15974227.754 8 -12249200.96847 19284180.2094 0.000
+ 19333322.985 -12545748.737 8 -9634408.18747 19333333.0984 0.000
+ 22549672.185 -5669986.440 5 -4057843.89345 22549691.9664 0.000
+ 19930281.482 -22622544.230 7 -17432725.53346 19930291.8104 0.000
+ 22057972.259 -8411475.270 5 -6349602.84145 22057989.3294 0.000
+ 02 1 30 13 41 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22232193.870 -5360712.925 5 -4033748.72645 22232208.7174 0.000
+ 20530446.750 -19209122.635 6 -14323004.45046 20530458.7794 0.000
+ 19201148.577 -14599935.336 8 -11149950.28347 19201159.5464 0.000
+ 19276973.593 -16012046.072 8 -12278669.74947 19276983.1124 0.000
+ 19319906.570 -12616252.153 8 -9689345.84247 19319916.7764 0.000
+ 22537666.403 -5733076.843 5 -4107005.03745 22537686.7544 0.000
+ 19939782.705 -22572615.256 8 -17393819.90946 19939793.0634 0.000
+ 22075183.890 -8321028.446 5 -6279125.09645 22075199.6644 0.000
+ 02 1 30 13 41 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22214581.953 -5453263.819 5 -4105866.04745 22214597.6844 0.000
+ 20542266.284 -19147010.967 7 -14274605.85046 20542277.4234 0.000
+ 19187392.036 -14672226.415 7 -11206280.92247 19187402.6004 0.000
+ 19269878.296 -16049331.835 8 -12307723.55147 19269888.4774 0.000
+ 19306551.277 -12686434.420 8 -9744033.26947 19306561.5484 0.000
+ 22525717.578 -5795867.942 5 -4155932.89045 22525734.7464 0.000
+ 19949372.223 -22522222.453 7 -17354552.89546 19949381.7414 0.000
+ 22092425.820 -8230422.259 5 -6208523.15645 22092440.8254 0.000
+ 02 1 30 13 42 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22196992.100 -5545697.465 5 -4177892.01045 22197008.5324 0.000
+ 20554110.941 -19084767.195 6 -14226104.31746 20554123.1484 0.000
+ 19173731.489 -14744012.911 6 -11262218.36647 19173741.9524 0.000
+ 19262883.864 -16086087.716 8 -12336364.46047 19262894.0204 0.000
+ 19293256.732 -12756297.403 8 -9798471.88547 19293267.8274 0.000
+ 22513825.486 -5858360.692 5 -4204628.32245 22513843.4654 0.000
+ 19959048.865 -22471371.520 7 -17314928.88246 19959058.9634 0.000
+ 22109697.119 -8139660.954 4 -6137800.41745 22109717.7184 0.000
+ 02 1 30 13 42 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22179427.560 -5637998.697 5 -4249814.82145 22179442.9374 0.000
+ 20565983.415 -19022377.307 7 -14177488.96946 20565995.3274 0.000
+ 19160170.154 -14815277.862 8 -11317749.41947 19160179.9064 0.000
+ 19255993.274 -16122297.897 8 -12364580.16347 19256003.4424 0.000
+ 19280026.140 -12825824.285 8 -9852648.60447 19280037.4244 0.000
+ 22501993.331 -5920537.555 5 -4253077.52445 22502011.6174 0.000
+ 19968815.082 -22420049.932 7 -17274938.11646 19968825.5294 0.000
+ 22127000.578 -8048730.679 4 -6066945.93945 22127016.5584 0.000
+ 02 1 30 13 43 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22161886.232 -5730178.262 5 -4321642.82345 22161901.7614 0.000
+ 20577881.384 -18959853.661 6 -14128769.33346 20577893.3584 0.000
+ 19146706.230 -14886030.909 8 -11372881.59447 19146716.0224 0.000
+ 19249204.466 -16157973.116 8 -12392379.00247 19249214.8254 0.000
+ 19266857.731 -12895024.442 8 -9906570.74547 19266868.5534 0.000
+ 22490219.614 -5982407.325 4 -4301287.53545 22490236.0324 0.000
+ 19978668.338 -22368271.115 7 -17234591.08946 19978678.5154 0.000
+ 22144333.929 -7957644.238 4 -5995969.85845 22144351.0514 0.000
+ 02 1 30 13 43 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22144367.484 -5822239.392 5 -4393378.54145 22144381.6554 0.000
+ 20589803.914 -18897200.881 6 -14079949.10146 20589815.8624 0.000
+ 19133339.316 -14956274.057 8 -11427616.43847 19133349.7084 0.000
+ 19242516.900 -16193116.347 8 -12419763.31347 19242526.9834 0.000
+ 19253751.137 -12963899.822 8 -9960239.82447 19253761.4234 0.000
+ 22478504.134 -6043971.193 4 -4349259.19645 22478522.0434 0.000
+ 19988607.499 -22316041.022 7 -17193892.41446 19988618.5274 0.000
+ 22161696.228 -7866406.055 3 -5924875.39445 22161716.2334 0.000
+ 02 1 30 13 44 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22126872.989 -5914172.924 5 -4465014.88245 22126886.9104 0.000
+ 20601752.548 -18834410.870 6 -14031021.94446 20601764.5074 0.000
+ 19120071.527 -15025996.446 7 -11481945.51647 19120081.9634 0.000
+ 19235932.415 -16227718.086 8 -12446725.68347 19235941.8344 0.000
+ 19240708.375 -13032439.712 8 -10013647.47047 19240718.6994 0.000
+ 22466849.054 -6105217.858 5 -4396983.66345 22466867.2984 0.000
+ 19998633.814 -22263352.562 7 -17152836.54746 19998644.9614 0.000
+ 22179089.003 -7775008.516 5 -5853656.78045 22179109.1374 0.000
+ 02 1 30 13 44 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22109402.257 -6005981.336 5 -4536553.73745 22109416.1304 0.000
+ 20613726.620 -18771487.264 7 -13981990.65346 20613738.7644 0.000
+ 19106902.729 -15095198.953 6 -11535869.47047 19106912.3944 0.000
+ 19229450.557 -16261780.431 8 -12473267.74547 19229459.9864 0.000
+ 19227729.252 -13100645.181 8 -10066794.52647 19227739.6884 0.000
+ 22455254.369 -6166147.552 5 -4444461.11545 22455271.4974 0.000
+ 20008746.409 -22210210.795 7 -17111427.48746 20008755.5124 0.000
+ 22196511.158 -7683455.318 5 -5782317.01745 22196529.7564 0.000
+ 02 1 30 13 45 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22091955.539 -6097663.910 5 -4607994.50245 22091969.6584 0.000
+ 20625725.980 -18708430.737 6 -13932855.83346 20625737.9074 0.000
+ 19093833.196 -15163879.698 6 -11589386.86847 19093842.6134 0.000
+ 19223071.462 -16295302.542 8 -12499388.84047 19223081.3094 0.000
+ 19214814.117 -13168514.166 8 -10119679.37347 19214824.5934 0.000
+ 22443720.682 -6226757.558 5 -4491689.52645 22443739.7954 0.000
+ 20018944.909 -22156617.710 7 -17069666.75246 20018954.9304 0.000
+ 22213962.911 -7591747.581 5 -5710856.72945 22213979.6584 0.000
+ 02 1 30 13 45 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22074531.678 -6189226.810 6 -4679342.02745 22074544.1834 0.000
+ 20637749.216 -18645248.912 7 -13883623.36246 20637761.3424 0.000
+ 19080862.034 -15232043.286 8 -11642501.27747 19080871.6934 0.000
+ 19216794.034 -16328290.535 8 -12525093.76247 19216804.2094 0.000
+ 19201962.091 -13236051.518 8 -10172305.81647 19201971.8244 0.000
+ 22432246.924 -6287051.972 5 -4538672.04445 22432266.7394 0.000
+ 20029227.580 -22102582.393 7 -17027561.40646 20029238.3114 0.000
+ 22231442.600 -7499893.029 5 -5639282.09945 22231460.0754 0.000
+ 02 1 30 13 46 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22057131.589 -6280663.800 5 -4750591.44345 22057144.8304 0.000
+ 20649797.229 -18581936.937 6 -13834289.44046 20649808.8914 0.000
+ 19067990.657 -15299682.456 8 -11695207.06047 19068000.9004 0.000
+ 19210619.474 -16360737.994 8 -12550377.46847 19210629.4904 0.000
+ 19189174.680 -13303249.662 8 -10224667.95947 19189184.5374 0.000
+ 22420834.799 -6347022.594 5 -4585402.21845 22420852.1084 0.000
+ 20039595.095 -22048101.255 7 -16985108.68146 20039606.2014 0.000
+ 22248951.123 -7407886.967 4 -5567589.37645 22248969.8194 0.000
+ 02 1 30 13 46 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22039755.201 -6371976.049 5 -4821743.66145 22039769.9214 0.000
+ 20661869.600 -18518496.959 6 -13784855.82146 20661880.8984 0.000
+ 19055219.219 -15366796.536 8 -11747503.67747 19055229.1994 0.000
+ 19204547.648 -16392645.584 8 -12575240.50547 19204557.5884 0.000
+ 19176451.956 -13370107.910 8 -10276765.24647 19176461.3774 0.000
+ 22409484.532 -6406668.078 5 -4631879.03645 22409504.3804 0.000
+ 20050046.735 -21993177.567 7 -16942311.11046 20050057.1414 0.000
+ 22266487.993 -7315731.719 5 -5495780.44345 22266506.9124 0.000
+ 02 1 30 13 47 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22022402.145 -6463165.750 5 -4892800.37045 22022415.5964 0.000
+ 20673965.615 -18454932.629 7 -13735325.25846 20673976.6104 0.000
+ 19042547.503 -15433386.748 7 -11799392.08747 19042557.7094 0.000
+ 19198578.129 -16424015.580 8 -12599684.63447 19198587.9114 0.000
+ 19163793.697 -13436627.360 8 -10328598.53247 19163803.2164 0.000
+ 22398196.059 -6465988.851 5 -4678102.87945 22398213.5454 0.000
+ 20060581.754 -21937816.308 7 -16899172.58546 20060591.4794 0.000
+ 22284052.477 -7223431.269 5 -5423858.28245 22284072.5144 0.000
+ 02 1 30 13 47 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 22005074.269 -6554222.974 5 -4963753.93145 22005088.8304 0.000
+ 20686086.932 -18391234.959 6 -13685690.82846 20686098.2834 0.000
+ 19029977.646 -15499441.546 7 -11850863.29447 19029987.7984 0.000
+ 19192712.881 -16454837.558 8 -12623701.74047 19192722.8074 0.000
+ 19151202.097 -13502796.441 8 -10380158.77447 19151211.8854 0.000
+ 22386971.673 -6524972.762 5 -4724064.21145 22386989.4144 0.000
+ 20071201.367 -21882010.353 7 -16855687.52746 20071211.6204 0.000
+ 22301646.207 -7130976.952 4 -5351816.27145 22301664.3814 0.000
+ 02 1 30 13 48 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21987770.608 -6645152.895 4 -5034608.22145 21987784.7924 0.000
+ 20698232.250 -18327410.890 6 -13635957.91846 20698243.3974 0.000
+ 19017508.777 -15564965.346 8 -11901920.74347 19017519.2704 0.000
+ 19186950.821 -16485117.284 8 -12647296.31847 19186960.4924 0.000
+ 19138676.358 -13568619.461 8 -10431449.38447 19138686.3984 0.000
+ 22375810.702 -6583623.386 5 -4769765.84445 22375826.4934 0.000
+ 20081903.975 -21825768.054 7 -16811862.45046 20081914.4904 0.000
+ 22319267.800 -7038375.976 4 -5279659.97245 22319285.1884 0.000
+ 02 1 30 13 48 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21970490.948 -6735956.495 4 -5105364.06445 21970506.0204 0.000
+ 20710401.286 -18263462.485 6 -13586128.05946 20710413.6804 0.000
+ 19005141.072 -15629957.667 7 -11952564.05847 19005151.4464 0.000
+ 19181291.825 -16514855.466 8 -12670468.89947 19181300.9564 0.000
+ 19126216.588 -13634095.701 8 -10482469.76547 19126227.0224 0.000
+ 22364713.388 -6641939.538 5 -4815206.85245 22364731.5104 0.000
+ 20092688.943 -21769092.889 7 -16767700.08846 20092699.9684 0.000
+ 22336916.875 -6945630.638 4 -5207391.22645 22336932.8634 0.000
+ 02 1 30 13 49 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21953236.279 -6826630.207 5 -5176018.76645 21953251.4914 0.000
+ 20722594.442 -18199387.428 6 -13536199.59846 20722606.6754 0.000
+ 18992875.503 -15694413.633 6 -12002789.43547 18992885.5994 0.000
+ 19175736.612 -16544048.299 8 -12693216.54647 19175746.0134 0.000
+ 19113823.776 -13699220.192 8 -10533216.05247 19113834.2554 0.000
+ 22353680.751 -6699915.624 5 -4860382.89345 22353699.9964 0.000
+ 20103556.497 -21711983.709 7 -16723199.55546 20103568.1154 0.000
+ 22354593.840 -6852738.911 3 -5135008.34945 22354611.9864 0.000
+ 02 1 30 13 49 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21936006.371 -6917173.902 5 -5246572.07845 21936021.5734 0.000
+ 20734811.532 -18135186.630 7 -13486173.09246 20734824.0574 0.000
+ 18980712.258 -15758331.799 7 -12052595.74447 18980722.2354 0.000
+ 19170285.216 -16572695.552 8 -12715539.06347 19170295.2104 0.000
+ 19101498.240 -13763991.265 8 -10583686.95747 19101508.5514 0.000
+ 22342713.312 -6757549.263 5 -4905292.08145 22342729.9584 0.000
+ 20114506.168 -21654443.271 7 -16678362.96946 20114517.5444 0.000
+ 22372298.303 -6759702.178 3 -5062512.52845 22372314.7274 0.000
+ 02 1 30 13 50 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21918800.469 -7007590.528 5 -5317026.42745 21918817.1784 0.000
+ 20747051.754 -18070864.338 6 -13436051.94446 20747064.5204 0.000
+ 18968650.931 -15821714.324 7 -12101984.67547 18968660.9814 0.000
+ 19164937.012 -16600800.420 8 -12737438.93547 19164946.9174 0.000
+ 19089239.550 -13828410.830 8 -10633883.97047 19089249.6554 0.000
+ 22331810.820 -6814841.770 5 -4949935.45545 22331828.0614 0.000
+ 20125536.917 -21596477.147 7 -16633194.68746 20125546.9554 0.000
+ 22390029.548 -6666525.059 4 -4989907.32445 22390047.3304 0.000
+ 02 1 30 13 50 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21901619.214 -7097877.829 5 -5387379.96545 21901634.5094 0.000
+ 20759315.303 -18006419.434 6 -13385835.24646 20759327.8764 0.000
+ 18956692.302 -15884557.081 8 -12150953.01247 18956702.2354 0.000
+ 19159692.531 -16628360.239 8 -12758914.10347 19159702.4824 0.000
+ 19077048.502 -13892474.852 8 -10683803.93147 19077058.0294 0.000
+ 22320974.145 -6871788.292 5 -4994309.29245 22320990.9204 0.000
+ 20136648.531 -21538085.672 7 -16587694.93546 20136659.9104 0.000
+ 22407787.760 -6573206.573 4 -4917191.90945 22407806.3764 0.000
+ 02 1 30 13 51 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21884463.115 -7188033.534 6 -5457630.88445 21884480.0034 0.000
+ 20771602.282 -17941851.127 6 -13335522.39246 20771615.1584 0.000
+ 18944836.997 -15946856.826 8 -12199498.22347 18944846.8674 0.000
+ 19154552.162 -16655373.085 8 -12779963.05247 19154562.0184 0.000
+ 19064925.807 -13956179.929 8 -10733444.19147 19064935.1184 0.000
+ 22310204.099 -6928385.089 6 -5038410.53645 22310218.8964 0.000
+ 20147840.977 -21479269.622 7 -16541864.36546 20147851.9814 0.000
+ 22425572.880 -6479746.410 3 -4844366.22245 22425590.8034 0.000
+ 02 1 30 13 51 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21867332.106 -7278057.086 5 -5527778.91245 21867346.7334 0.000
+ 20783912.648 -17877159.924 6 -13285113.77546 20783926.3624 0.000
+ 18933085.391 -16008611.796 8 -12247618.93047 18933094.9434 0.000
+ 19149516.025 -16681838.281 8 -12800585.26547 19149525.4464 0.000
+ 19052871.794 -14019523.850 8 -10782803.02647 19052881.0114 0.000
+ 22299500.923 -6984629.403 5 -5082237.09745 22299516.7204 0.000
+ 20159113.783 -21420031.185 7 -16495704.66946 20159124.4054 0.000
+ 22443384.905 -6386145.185 3 -4771430.40545 22443401.1314 0.000
+ 02 1 30 13 52 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21850226.295 -7367948.347 6 -5597823.82245 21850239.5674 0.000
+ 20796246.198 -17812346.991 6 -13234610.30346 20796258.7544 0.000
+ 18921437.613 -16069821.210 8 -12295314.53147 18921447.6534 0.000
+ 19144584.024 -16707756.018 8 -12820780.87747 19144593.6964 0.000
+ 19040886.704 -14082505.473 8 -10831879.55247 19040896.6074 0.000
+ 22288865.253 -7040519.404 5 -5125787.56045 22288882.8824 0.000
+ 20170466.396 -21360373.059 7 -16449217.94246 20170476.9134 0.000
+ 22461223.349 -6292404.578 3 -4698386.29745 22461245.7354 0.000
+ 02 1 30 13 52 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21833144.425 -7457713.732 5 -5667770.63045 21833158.6834 0.000
+ 20808601.507 -17747419.698 6 -13184017.73246 20808614.6014 0.000
+ 18909892.663 -16130490.210 7 -12342589.04047 18909903.1614 0.000
+ 19139755.007 -16733132.540 8 -12840554.77247 19139764.1654 0.000
+ 19028969.694 -14145129.489 8 -10880677.42847 19028979.3474 0.000
+ 22278296.236 -7096059.493 5 -5169065.37545 22278311.5834 0.000
+ 20181897.103 -21300304.598 7 -16402411.48146 20181908.4454 0.000
+ 22479086.915 -6198532.513 3 -4625239.54945 22479106.3784 0.000
+ 02 1 30 13 53 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21816088.122 -7547343.771 5 -5737611.99445 21816102.0854 0.000
+ 20820980.164 -17682369.793 6 -13133329.60446 20820993.1824 0.000
+ 18898452.612 -16190607.923 7 -12389433.96447 18898462.9314 0.000
+ 19135030.782 -16757958.429 8 -12859899.60447 19135040.7844 0.000
+ 19017122.805 -14207385.085 8 -10929188.23247 19017132.4584 0.000
+ 22267795.919 -7151238.071 5 -5212061.47745 22267812.2104 0.000
+ 20193407.195 -21239818.907 7 -16355279.89446 20193418.2424 0.000
+ 22496976.993 -6104520.996 3 -4551984.08845 22496990.8704 0.000
+ 02 1 30 13 53 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21799057.719 -7636837.861 5 -5807347.43045 21799073.9014 0.000
+ 20833382.030 -17617198.113 6 -13082546.60246 20833394.1504 0.000
+ 18887117.738 -16250172.741 8 -12435848.05047 18887127.3964 0.000
+ 19130411.392 -16782233.412 8 -12878815.16547 19130421.5024 0.000
+ 19005346.381 -14269270.367 8 -10977410.48547 19005355.9904 0.000
+ 22257364.787 -7206052.929 5 -5254774.17245 22257383.7374 0.000
+ 20204996.285 -21178918.333 7 -16307825.03346 20205006.9674 0.000
+ 22514893.278 -6010371.118 2 -4478621.10143 22514912.0004 0.000
+ 02 1 30 13 54 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21782050.806 -7726209.689 5 -5876987.61745 21782064.5674 0.000
+ 20845804.275 -17551919.333 6 -13031680.13746 20845817.1554 0.000
+ 18875885.673 -16309197.311 7 -12481841.17847 18875895.0414 0.000
+ 19125894.236 -16805971.188 8 -12897312.12047 19125903.9744 0.000
+ 18993638.142 -14330797.667 7 -11025353.79347 18993647.8694 0.000
+ 22247000.878 -7260515.484 5 -5297212.31845 22247019.0834 0.000
+ 20216661.221 -21117619.246 7 -16260059.63246 20216671.5764 0.000
+ 22532833.072 -5916098.036 3 -4405161.95045 22532849.8004 0.000
+ 02 1 30 13 54 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21765070.214 -7815442.990 5 -5946519.82645 21765082.3444 0.000
+ 20858249.738 -17486518.515 6 -12980718.60046 20858262.8984 0.000
+ 18864759.668 -16367664.487 7 -12527399.97247 18864769.5084 0.000
+ 19121482.307 -16829155.890 8 -12915378.10947 19121491.7654 0.000
+ 18982001.390 -14391949.291 8 -11073004.37147 18982011.2034 0.000
+ 22236707.432 -7314607.766 5 -5339361.95445 22236724.0834 0.000
+ 20228404.441 -21055908.381 7 -16211973.35746 20228414.6684 0.000
+ 22550798.945 -5821687.306 2 -4331595.43545 22550821.3704 0.000
+ 02 1 30 13 55 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21748115.068 -7904542.036 5 -6015947.41745 21748130.8914 0.000
+ 20870717.387 -17421000.900 6 -12929666.05246 20870730.3744 0.000
+ 18853739.198 -16425577.004 8 -12572526.56547 18853749.7084 0.000
+ 19117174.896 -16851791.534 8 -12933016.27047 19117184.3224 0.000
+ 18970435.555 -14452727.981 7 -11120364.32447 18970445.2244 0.000
+ 22226483.977 -7368331.925 5 -5381224.74645 22226500.6164 0.000
+ 20240224.756 -20993792.793 7 -16163571.72746 20240235.2134 0.000
+ 22568790.297 -5727144.376 4 -4257926.02645 22568807.5264 0.000
+ 02 1 30 13 55 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21731184.830 -7993510.154 6 -6085272.93245 21731198.3174 0.000
+ 20883206.416 -17355370.891 6 -12878525.89846 20883219.1964 0.000
+ 18842823.867 -16482937.268 6 -12617222.83547 18842834.5694 0.000
+ 19112971.293 -16873881.638 8 -12950229.33447 19112981.1434 0.000
+ 18958940.360 -14513135.564 8 -11167435.10747 18958950.1574 0.000
+ 22216330.241 -7421689.402 5 -5422801.83745 22216346.0974 0.000
+ 20252120.884 -20931278.681 7 -16114859.56446 20252131.9424 0.000
+ 22586805.859 -5632473.984 3 -4184157.09544 22586824.8634 0.000
+ 02 1 30 13 56 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21714279.517 -8082346.793 5 -6154496.06245 21714293.5594 0.000
+ 20895716.715 -17289629.264 6 -12827298.80446 20895730.0074 0.000
+ 18832013.893 -16539744.122 6 -12661487.87747 18832024.1114 0.000
+ 19108871.500 -16895426.052 8 -12967017.17847 19108881.6134 0.000
+ 18947516.141 -14573170.261 8 -11214215.34647 18947525.1384 0.000
+ 22206246.744 -7474677.886 5 -5464091.43045 22206261.7014 0.000
+ 20264092.445 -20868368.317 7 -16065838.64746 20264103.1044 0.000
+ 22604845.370 -5537677.555 4 -4110290.18745 22604865.1414 0.000
+ 02 1 30 13 56 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21697401.139 -8171041.786 5 -6223608.81545 21697416.6514 0.000
+ 20908249.991 -17223767.030 6 -12775977.71046 20908261.8594 0.000
+ 18821311.379 -16595986.311 6 -12705312.92647 18821321.4264 0.000
+ 19104877.454 -16916414.719 8 -12983371.98147 19104887.0894 0.000
+ 18936165.046 -14632820.424 8 -11260695.94047 18936174.5694 0.000
+ 22196235.596 -7527285.336 5 -5505084.05545 22196251.9254 0.000
+ 20276140.822 -20805054.470 7 -16016503.30246 20276152.4384 0.000
+ 22622910.506 -5442746.456 5 -4036318.22845 22622930.3434 0.000
+ 02 1 30 13 57 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21680549.455 -8259596.829 5 -6292612.49445 21680563.6474 0.000
+ 20920805.716 -17157786.960 6 -12724564.79846 20920818.2174 0.000
+ 18810716.151 -16651664.554 7 -12748698.53247 18810726.4664 0.000
+ 19100988.810 -16936849.679 8 -12999295.32547 19100998.4094 0.000
+ 18924887.025 -14692086.459 8 -11306877.21147 18924897.1644 0.000
+ 22186297.124 -7579511.513 5 -5545779.61945 22186315.2564 0.000
+ 20288265.174 -20741341.659 7 -15966857.07446 20288276.5624 0.000
+ 22641000.545 -5347683.888 3 -3962243.87245 22641021.8094 0.000
+ 02 1 30 13 57 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21663723.592 -8348015.952 5 -6361510.31445 21663737.3474 0.000
+ 20933382.793 -17091694.455 6 -12673064.26746 20933395.7554 0.000
+ 18800227.602 -16706782.114 7 -12791647.24247 18800237.9244 0.000
+ 19097204.698 -16956735.454 8 -13014790.73947 19097214.3314 0.000
+ 18913681.532 -14750971.119 8 -11352761.30247 18913691.1554 0.000
+ 22176430.879 -7631358.844 6 -5586179.98345 22176446.3654 0.000
+ 20300463.964 -20677236.985 7 -15916905.49946 20300474.2644 0.000
+ 22659114.517 -5252495.655 3 -3888071.53245 22659139.3964 0.000
+ 02 1 30 13 58 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21646923.057 -8436302.593 6 -6430304.92245 21646935.8064 0.000
+ 20945980.429 -17025493.950 6 -12621479.60346 20945993.1434 0.000
+ 18789845.262 -16761341.549 6 -12834161.05247 18789855.2974 0.000
+ 19093524.386 -16976075.749 8 -13029861.10347 19093534.0904 0.000
+ 18902548.190 -14809476.615 8 -11398349.94847 18902557.6674 0.000
+ 22166636.338 -7682828.970 5 -5626286.37245 22166651.5454 0.000
+ 20312736.108 -20612746.944 7 -15866653.65846 20312745.6834 0.000
+ 22677251.503 -5157186.778 4 -3813805.32145 22677272.7984 0.000
+ 02 1 30 13 58 59.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21630148.054 -8524455.631 6 -6498995.45046 21630160.7234 0.000
+ 20958598.712 -16959185.142 6 -12569810.52646 20958612.0374 0.000
+ 18779569.614 -16815340.417 6 -12876238.05947 18779579.5244 0.000
+ 19089948.060 -16994869.530 8 -13044505.61347 19089958.1374 0.000
+ 18891487.629 -14867600.116 7 -11443640.94447 18891497.5634 0.000
+ 22156914.162 -7733918.581 5 -5666096.32345 22156930.4164 0.000
+ 20325081.251 -20547873.033 6 -15816102.72146 20325092.7784 0.000
+ 22695411.301 -5061757.490 3 -3739445.25445 22695433.6784 0.000
+ 02 1 30 13 59 29.9940000 0 8G 3G 6G15G17G22G23G25G30
+ 21613399.426 -8612469.876 6 -6567577.77445 21613412.1294 0.000
+ 20971238.378 -16892764.074 6 -12518054.00446 20971252.5614 0.000
+ 18769401.757 -16868772.807 6 -12917873.65047 18769411.9744 0.000
+ 19086476.658 -17013111.883 8 -13058720.42447 19086486.1534 0.000
+ 18880501.060 -14925335.110 6 -11488629.21447 18880510.8424 0.000
+ 22147265.681 -7784621.009 5 -5705604.55345 22147282.3534 0.000
+ 20337499.859 -20482613.210 7 -15765251.04046 20337511.2724 0.000
+ 22713594.799 -4966204.328 3 -3664988.52745 22713608.6264 0.000
diff --git a/dev/examples/brdc0300.02n b/dev/examples/brdc0300.02n
new file mode 100644
index 0000000..1ea5eea
--- /dev/null
+++ b/dev/examples/brdc0300.02n
@@ -0,0 +1,2960 @@
+ 2 NAVIGATION DATA RINEX VERSION / TYPE
+CCRINEXN V1.6.0 UX CDDIS 30-JAN-00 20:26 PGM / RUN BY / DATE
+IGS BROADCAST EPHEMERIS FILE COMMENT
+ 0.3073D-07 0.2980D-07 -0.1192D-06 0.0000D+00 ION ALPHA
+ 0.1495D+06 -0.1311D+06 0.0000D+00 -0.1311D+06 ION BETA
+ 0.186264514923D-08-0.355271367880D-14 503808 1151 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 1 02 1 30 0 0 0.0 0.213539693505D-03 0.159161572810D-11 0.000000000000D+00
+ 0.101000000000D+03-0.142406250000D+03 0.437161066656D-08-0.313042791004D+01
+ -0.744871795178D-05 0.531352218241D-02 0.339187681675D-05 0.515369856644D+04
+ 0.259200000000D+06-0.186264514923D-08-0.673800683646D+00 0.484287738800D-07
+ 0.967630470173D+00 0.317500000000D+03-0.171545830500D+01-0.822212819893D-08
+ -0.432518016112D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.325962901115D-08 0.357000000000D+03
+ 0.253038000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 0 0 0.0-0.144470948726D-03-0.591171556152D-11 0.000000000000D+00
+ 0.227000000000D+03 0.351875000000D+02 0.566309303341D-08 0.132852524616D+01
+ 0.176019966602D-05 0.221486826195D-01 0.749714672566D-05 0.515197815514D+04
+ 0.259200000000D+06-0.499188899994D-06 0.131723448538D+01-0.670552253723D-07
+ 0.932245774864D+00 0.221937500000D+03-0.197825072647D+01-0.882965350480D-08
+ 0.697886212619D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.483000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 0 0 0.0 0.104876235127D-03 0.318323145621D-11 0.000000000000D+00
+ 0.175000000000D+03-0.394375000000D+02 0.562666294453D-08-0.114835631804D+01
+ -0.207312405109D-05 0.303482240997D-02 0.679865479469D-05 0.515368180656D+04
+ 0.259200000000D+06 0.447034835815D-07 0.239559142998D+01 0.223517417908D-07
+ 0.934158551956D+00 0.233343750000D+03 0.551226979285D+00-0.849713965426D-08
+ -0.528593446610D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.431000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 0 0 0.0 0.249060336500D-03-0.320596882375D-10 0.000000000000D+00
+ 0.180000000000D+03 0.942187500000D+02 0.394802159380D-08 0.246603950380D+01
+ 0.515021383762D-05 0.589598121587D-02 0.140424817801D-04 0.515362096596D+04
+ 0.259200000000D+06-0.447034835815D-07-0.276463110038D+01 0.132247805595D-06
+ 0.971751606955D+00 0.115968750000D+03-0.364666057371D+00-0.762246036321D-08
+ -0.283583240952D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.436000000000D+03
+ 0.252018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 0 0 0.0 0.335430726409D-03 0.193267624127D-11 0.000000000000D+00
+ 0.360000000000D+02 0.399687500000D+02 0.541522556588D-08 0.216669894583D+01
+ 0.213645398617D-05 0.357501499821D-02 0.672042369843D-05 0.515378586197D+04
+ 0.259200000000D+06-0.150874257088D-06 0.133880709670D+01-0.204890966415D-07
+ 0.935331892716D+00 0.233531250000D+03 0.553228649131D+00-0.846820987779D-08
+ 0.718601361203D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.570000000000D+01 0.000000000000D+00-0.465661287308D-08 0.548000000000D+03
+ 0.252018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 0 0 0.0 0.696307513863D-03 0.829913915368D-11 0.000000000000D+00
+ 0.226000000000D+03-0.354687500000D+02 0.551451541599D-08-0.979193743327D+00
+ -0.164285302162D-05 0.118380507920D-01 0.688992440701D-05 0.515359362793D+04
+ 0.259200000000D+06-0.372529029846D-07 0.241266836237D+01 0.271946191788D-06
+ 0.943471532336D+00 0.239187500000D+03-0.196728816552D+01-0.853606984729D-08
+ -0.584310053145D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.482000000000D+03
+ 0.252018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 0 0 0.0 0.710368622094D-03 0.238742359215D-11 0.000000000000D+00
+ 0.970000000000D+02-0.883437500000D+02 0.401088135502D-08-0.277114375859D+01
+ -0.440329313278D-05 0.827786803711D-02 0.135023146868D-04 0.515370977783D+04
+ 0.259200000000D+06 0.409781932831D-07 0.382986179014D+00 0.102445483208D-06
+ 0.959941198661D+00 0.115062500000D+03 0.210381021737D+01-0.759210195581D-08
+ 0.414302971668D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.372529029846D-08 0.970000000000D+02
+ 0.252018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 0 0 0.0-0.282465480268D-04-0.170530256582D-11 0.000000000000D+00
+ 0.173000000000D+03-0.815937500000D+02 0.427339228966D-08 0.298625528963D+01
+ -0.418350100517D-05 0.127147349995D-01 0.128056854010D-04 0.515370626450D+04
+ 0.259200000000D+06 0.372529029846D-07 0.327291756901D+00-0.128522515297D-06
+ 0.946201476450D+00 0.125156250000D+03 0.798467282499D+00-0.765496171703D-08
+ 0.381801617856D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.429000000000D+03
+ 0.252018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 0 0 0.0 0.180522911251D-04 0.795807864051D-12 0.000000000000D+00
+ 0.205000000000D+03 0.104593750000D+03 0.435196699118D-08 0.241276436783D+00
+ 0.536255538464D-05 0.480499060359D-02 0.271759927273D-05 0.515372759056D+04
+ 0.259200000000D+06 0.931322574616D-08-0.173916839909D+01 0.204890966415D-07
+ 0.979456588744D+00 0.332062500000D+03 0.601274179197D-01-0.835034782550D-08
+ 0.184293390845D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.461000000000D+03
+ 0.255318000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 0 0 0.0 0.776536762714D-05 0.454747350887D-12 0.000000000000D+00
+ 0.250000000000D+02 0.961562500000D+02 0.513449958680D-08-0.104048328435D+01
+ 0.489689409733D-05 0.666428008117D-03 0.133272260428D-04 0.515369824219D+04
+ 0.259200000000D+06-0.428408384323D-07-0.284864516466D+01-0.409781932831D-07
+ 0.919422692251D+00 0.100187500000D+03-0.147127025748D+01-0.823498587736D-08
+ -0.354300472323D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.793000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 0 0 0.0-0.190781429410D-05-0.454747350887D-12 0.000000000000D+00
+ 0.260000000000D+02-0.135531250000D+03 0.439482591928D-08 0.874845489329D+00
+ -0.705197453499D-05 0.187428435311D-02 0.301375985146D-05 0.515361415863D+04
+ 0.259200000000D+06 0.298023223877D-07-0.694421077197D+00 0.143423676491D-06
+ 0.971823421603D+00 0.327281250000D+03 0.626170162958D-01-0.835034782550D-08
+ -0.415017287136D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.260000000000D+02
+ 0.253818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 0 0 0.0-0.105966813862D-03 0.306954461848D-11 0.000000000000D+00
+ 0.170000000000D+02-0.128843750000D+03 0.449840166220D-08-0.235262920084D+01
+ -0.673346221447D-05 0.220865639858D-02 0.352226197720D-05 0.515371066666D+04
+ 0.259200000000D+06-0.298023223877D-07-0.699267462931D+00 0.223517417908D-07
+ 0.966456105370D+00 0.315031250000D+03-0.648736097114D+00-0.833784730481D-08
+ -0.418231706744D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.273000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 0 0 0.0 0.134245026857D-03 0.443378667114D-11 0.000000000000D+00
+ 0.151000000000D+03 0.103906250000D+03 0.383587406527D-08-0.232819434934D+01
+ 0.543519854546D-05 0.811383721884D-02 0.121034681797D-04 0.515363688850D+04
+ 0.259200000000D+06 0.782310962677D-07-0.271811687689D+01 0.100582838059D-06
+ 0.978285930976D+00 0.157250000000D+03 0.179618245963D+01-0.748638326648D-08
+ -0.119647840956D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.151000000000D+03
+ 0.254508000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 0 0 0.0-0.141942873597D-04 0.111867848318D-09 0.000000000000D+00
+ 0.215000000000D+03 0.108750000000D+03 0.374087010797D-08 0.279416523958D+01
+ 0.556744635105D-05 0.136037833290D-01 0.123158097267D-04 0.515367852783D+04
+ 0.259200000000D+06-0.257045030594D-06-0.267777282639D+01 0.111758708954D-07
+ 0.980172137087D+00 0.154312500000D+03-0.307773094124D+01-0.744495296932D-08
+ -0.114290474943D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.215000000000D+03
+ 0.257958000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 0 0 0.0-0.133926048875D-03-0.295585778076D-11 0.000000000000D+00
+ 0.250000000000D+02 0.123718750000D+03 0.469376694281D-08 0.518410989647D+00
+ 0.630691647530D-05 0.184920383617D-02 0.197440385819D-05 0.515367318726D+04
+ 0.259200000000D+06-0.186264514923D-08-0.174554372586D+01-0.577419996262D-07
+ 0.962988356079D+00 0.342062500000D+03 0.202167439362D+01-0.855821362681D-08
+ 0.263225250103D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.281000000000D+03
+ 0.252018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 0 0 0.0-0.903382897377D-07 0.000000000000D+00 0.000000000000D+00
+ 0.163000000000D+03 0.103625000000D+03 0.438232539859D-08 0.499311690039D+00
+ 0.565871596336D-05 0.180463400902D-01 0.233203172684D-05 0.515362785912D+04
+ 0.259200000000D+06-0.139698386192D-06-0.173326148114D+01 0.284984707832D-06
+ 0.979130317051D+00 0.343750000000D+03-0.235820649263D+01-0.853892710916D-08
+ 0.671456540289D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.186264514923D-08 0.163000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 0 0 0.0 0.591337215155D-03 0.145519152284D-10 0.000000000000D+00
+ 0.173000000000D+03 0.418750000000D+02 0.567809365825D-08-0.133961203519D+00
+ 0.240467488766D-05 0.150251332671D-01 0.664591789246D-05 0.515366163445D+04
+ 0.259200000000D+06 0.633299350739D-07 0.133078996184D+01 0.219792127609D-06
+ 0.931729995300D+00 0.238218750000D+03 0.759636227224D+00-0.882143887691D-08
+ 0.703600736366D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.173000000000D+03
+ 0.252030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 0 0 0.0 0.555440783501D-05 0.795807864051D-12 0.000000000000D+00
+ 0.154000000000D+03 0.937812500000D+02 0.428482133715D-08 0.112436094615D+01
+ 0.464916229248D-05 0.160068414407D-01 0.281631946564D-05 0.515342827415D+04
+ 0.259200000000D+06-0.307336449623D-06-0.169048511867D+01-0.875443220139D-07
+ 0.982443105282D+00 0.341906250000D+03-0.177211049666D+01-0.846285251178D-08
+ 0.119290683222D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.154000000000D+03
+ 0.257928000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 0 0 0.0 0.568013638258D-05 0.261479726760D-11 0.000000000000D+00
+ 0.550000000000D+02 0.101625000000D+03 0.370301138815D-08 0.309109821621D+01
+ 0.552646815777D-05 0.934003363363D-02 0.133644789457D-04 0.515366050148D+04
+ 0.259200000000D+06 0.149011611939D-06-0.274659020445D+01-0.931322574616D-08
+ 0.981840892129D+00 0.128093750000D+03-0.157376731153D+01-0.741209445777D-08
+ -0.235366946835D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-09 0.550000000000D+02
+ 0.252018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 0 0 0.0 0.223224051297D-04 0.454747350887D-12 0.000000000000D+00
+ 0.168000000000D+03-0.855000000000D+02 0.448018661776D-08-0.242443389712D+01
+ -0.447593629360D-05 0.946553936228D-02 0.127758830786D-04 0.515360603523D+04
+ 0.259200000000D+06 0.745058059692D-07 0.283601870848D+00-0.106170773506D-06
+ 0.939052675633D+00 0.118718750000D+03-0.189961334549D+01-0.775853745994D-08
+ 0.346443002170D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.424000000000D+03
+ 0.256728000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 0 0 0.0-0.478327274323D-04-0.110276232590D-10 0.000000000000D+00
+ 0.138000000000D+03-0.126562500000D+03 0.425374861428D-08-0.146993670963D+01
+ -0.661984086037D-05 0.133292363025D-01 0.304169952869D-05 0.515358124352D+04
+ 0.259200000000D+06 0.596046447754D-07-0.689838664789D+00-0.292435288429D-06
+ 0.970442694651D+00 0.324250000000D+03 0.312677538835D+00-0.816462580372D-08
+ -0.245010205659D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.394000000000D+03
+ 0.252018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 0 0 0.0 0.945385545492D-05 0.113686837722D-11 0.000000000000D+00
+ 0.220000000000D+03-0.105562500000D+03 0.436232456547D-08 0.235566025007D+01
+ -0.537373125553D-05 0.157655358780D-01 0.139065086842D-04 0.515365678597D+04
+ 0.259200000000D+06-0.271946191788D-06 0.307814159844D+00-0.221654772759D-06
+ 0.943565744261D+00 0.102281250000D+03-0.249350979914D+01-0.780711091179D-08
+ 0.366443835285D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.220000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 0 0 0.0-0.596609897912D-04-0.295585778076D-11 0.000000000000D+00
+ 0.130000000000D+02 0.330000000000D+02 0.503985278724D-08 0.764774522169D+00
+ 0.168196856976D-05 0.584004237317D-02 0.674650073052D-05 0.515366440010D+04
+ 0.259200000000D+06 0.167638063431D-07 0.140057216363D+01 0.372529029846D-07
+ 0.958882176171D+00 0.248531250000D+03-0.249601943364D+01-0.831534636755D-08
+ 0.602167939855D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.781000000000D+03
+ 0.252018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 0 0 0.0 0.544720795006D-03-0.131876731757D-10 0.000000000000D+00
+ 0.800000000000D+01-0.121406250000D+03 0.457626204825D-08-0.100086452084D+01
+ -0.621005892754D-05 0.831733294763D-02 0.339746475220D-05 0.515180742264D+04
+ 0.259200000000D+06-0.335276126862D-07-0.719671044708D+00 0.154599547386D-06
+ 0.967330166739D+00 0.318031250000D+03-0.190657281838D+01-0.848749639544D-08
+ -0.401445293236D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.698491930962D-08 0.264000000000D+03
+ 0.252030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 0 0 0.0 0.405775848776D-03 0.454747350887D-10 0.000000000000D+00
+ 0.310000000000D+02 0.393125000000D+02 0.538058126566D-08 0.852960280214D+00
+ 0.193715095520D-05 0.621591845993D-02 0.658072531223D-05 0.515358907890D+04
+ 0.259200000000D+06-0.104308128357D-06 0.137420902372D+01 0.614672899246D-07
+ 0.942408257144D+00 0.240406250000D+03 0.134063792112D+01-0.858142887953D-08
+ 0.633240662730D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.838190317154D-08 0.287000000000D+03
+ 0.252018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 0 0 0.0 0.901785679162D-04 0.250111042988D-11 0.000000000000D+00
+ 0.234000000000D+03-0.387500000000D+02 0.538593863168D-08-0.205107610655D+01
+ -0.219233334065D-05 0.108631382464D-01 0.671111047268D-05 0.515372248650D+04
+ 0.259200000000D+06 0.173225998879D-06 0.241246373963D+01 0.558793544769D-08
+ 0.942920376487D+00 0.235218750000D+03 0.881218276473D+00-0.828355932921D-08
+ -0.443947063606D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.234000000000D+03
+ 0.252000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 1 59 44.0 0.104897655547D-03 0.318323145621D-11 0.000000000000D+00
+ 0.197000000000D+03-0.412812500000D+02 0.560630495368D-08-0.100187328770D+00
+ -0.214017927647D-05 0.303617783357D-02 0.628642737865D-05 0.515368493652D+04
+ 0.266384000000D+06-0.409781932831D-07 0.239553010445D+01 0.204890966415D-07
+ 0.934154400195D+00 0.244968750000D+03 0.550907352165D+00-0.858250035273D-08
+ -0.528593446610D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.419095158577D-08 0.197000000000D+03
+ 0.259200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 1 59 44.0 0.335449818522D-03 0.193267624127D-11 0.000000000000D+00
+ 0.630000000000D+02 0.375937500000D+02 0.531986445085D-08-0.306858336716D+01
+ 0.200048089027D-05 0.357602082659D-02 0.730343163014D-05 0.515378381538D+04
+ 0.266384000000D+06-0.130385160446D-07 0.133874680399D+01-0.540167093277D-07
+ 0.935337647836D+00 0.226156250000D+03 0.553111048072D+00-0.833999025121D-08
+ 0.725030200418D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.465661287308D-08 0.630000000000D+02
+ 0.265908000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 1 59 44.0 0.696377828717D-03 0.829913915368D-11 0.000000000000D+00
+ 0.800000000000D+01-0.347812500000D+02 0.549915763342D-08 0.687170014018D-01
+ -0.192783772945D-05 0.118381327484D-01 0.691786408424D-05 0.515359382057D+04
+ 0.266384000000D+06-0.106170773506D-06 0.241260604353D+01 0.102445483208D-06
+ 0.943467093843D+00 0.239968750000D+03-0.196729553862D+01-0.865500337277D-08
+ -0.547522806523D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.800000000000D+01
+ 0.263838000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 1 59 44.0 0.406099483371D-03 0.453610482509D-10 0.000000000000D+00
+ 0.510000000000D+02 0.389687500000D+02 0.519378777068D-08 0.190092339156D+01
+ 0.206567347050D-05 0.621607201174D-02 0.688247382641D-05 0.515358846283D+04
+ 0.266384000000D+06 0.111758708954D-07 0.137414754313D+01-0.193715095520D-06
+ 0.942414243405D+00 0.236500000000D+03 0.134057946730D+01-0.832034657583D-08
+ 0.720744307608D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.510000000000D+02
+ 0.261948000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 2 0 0.0 0.213550869376D-03 0.159161572810D-11 0.000000000000D+00
+ 0.102000000000D+03-0.132000000000D+03 0.437946813671D-08-0.208043802664D+01
+ -0.687874853611D-05 0.531393673737D-02 0.337325036526D-05 0.515369700432D+04
+ 0.266400000000D+06 0.447034835815D-07-0.673859719705D+00 0.242143869400D-07
+ 0.967627149349D+00 0.315500000000D+03-0.171528397345D+01-0.824141471658D-08
+ -0.472876840076D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.325962901115D-08 0.870000000000D+03
+ 0.259218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 2 0 0.0-0.144513323903D-03-0.591171556152D-11 0.000000000000D+00
+ 0.228000000000D+03 0.407500000000D+02 0.528986320118D-08 0.237974794672D+01
+ 0.195577740669D-05 0.221483031055D-01 0.708922743797D-05 0.515197844696D+04
+ 0.266400000000D+06 0.186264514923D-06 0.131717313499D+01-0.301748514175D-06
+ 0.932254420710D+00 0.224312500000D+03-0.197824786500D+01-0.809640867649D-08
+ 0.771460705864D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.484000000000D+03
+ 0.259200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 2 0 0.0 0.248829834163D-03-0.320596882375D-10 0.000000000000D+00
+ 0.175000000000D+03 0.104875000000D+03 0.401552440557D-08-0.276685043927D+01
+ 0.541098415852D-05 0.589721766300D-02 0.140219926834D-04 0.515361856270D+04
+ 0.266400000000D+06-0.875443220139D-07-0.276468597737D+01 0.335276126862D-07
+ 0.971749996282D+00 0.115000000000D+03-0.364750812993D+00-0.755602902465D-08
+ -0.241438628317D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.687000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 2 0 0.0 0.335444230586D-03 0.193267624127D-11 0.000000000000D+00
+ 0.370000000000D+02 0.375937500000D+02 0.531986445085D-08-0.306624890247D+01
+ 0.200048089027D-05 0.357601640280D-02 0.730343163014D-05 0.515378381538D+04
+ 0.266400000000D+06-0.130385160446D-07 0.133874667818D+01-0.540167093277D-07
+ 0.935337669780D+00 0.226156250000D+03 0.553110122045D+00-0.833999025121D-08
+ 0.725030200418D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.570000000000D+01 0.000000000000D+00-0.465661287308D-08 0.549000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 2 0 0.0-0.245356932282D-05-0.113686837722D-12 0.000000000000D+00
+ 0.193000000000D+03-0.408437500000D+02 0.537843831926D-08-0.189575650388D+01
+ -0.223144888878D-05 0.653735944070D-02 0.632368028164D-05 0.515356429481D+04
+ 0.266400000000D+06 0.111758708954D-06 0.244230864213D+01 0.558793544769D-08
+ 0.941756796316D+00 0.242500000000D+03-0.222642541741D+01-0.837606318237D-08
+ -0.413945813933D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.193000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 2 0 0.0 0.696367118508D-03 0.818545231596D-11 0.000000000000D+00
+ 0.221000000000D+03-0.347812500000D+02 0.549915763342D-08 0.710505634726D-01
+ -0.192783772945D-05 0.118381286738D-01 0.691786408424D-05 0.515359383583D+04
+ 0.266400000000D+06-0.106170773506D-06 0.241260591040D+01 0.102445483208D-06
+ 0.943467099695D+00 0.239968750000D+03-0.196729531187D+01-0.865500337277D-08
+ -0.547522806523D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.733000000000D+03
+ 0.259218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 2 0 0.0 0.710385851562D-03 0.238742359215D-11 0.000000000000D+00
+ 0.980000000000D+02-0.790000000000D+02 0.410517099685D-08-0.172114768558D+01
+ -0.394321978092D-05 0.827939540613D-02 0.144075602293D-04 0.515370606041D+04
+ 0.266400000000D+06-0.132247805595D-06 0.382931076742D+00 0.154599547386D-06
+ 0.959943328670D+00 0.102687500000D+03 0.210397122467D+01-0.776603777236D-08
+ 0.399302346831D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.372529029846D-08 0.980000000000D+02
+ 0.259218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 2 0 0.0-0.282586552203D-04-0.170530256582D-11 0.000000000000D+00
+ 0.174000000000D+03-0.892812500000D+02 0.425410577201D-08-0.224676357163D+01
+ -0.468082726002D-05 0.127155589871D-01 0.127144157887D-04 0.515370488930D+04
+ 0.266400000000D+06 0.428408384323D-07 0.327236724849D+00-0.128522515297D-06
+ 0.946204225273D+00 0.124718750000D+03 0.798460858825D+00-0.765139013968D-08
+ 0.373586989969D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.430000000000D+03
+ 0.259218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 2 0 0.0 0.180578790605D-04 0.795807864051D-12 0.000000000000D+00
+ 0.200000000000D+03 0.123906250000D+03 0.438196824085D-08 0.129102257609D+01
+ 0.672042369843D-05 0.480692693964D-02 0.286102294922D-05 0.515373275566D+04
+ 0.266400000000D+06 0.484287738800D-07-0.173922884979D+01-0.745058059692D-08
+ 0.979457903907D+00 0.329875000000D+03 0.605267272611D-01-0.838427781025D-08
+ 0.215366113720D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.712000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 2 0 0.0 0.776816159487D-05 0.454747350887D-12 0.000000000000D+00
+ 0.260000000000D+02 0.783750000000D+02 0.528807741251D-08 0.717442675224D-02
+ 0.402331352234D-05 0.663115526550D-03 0.123903155327D-04 0.515369124603D+04
+ 0.266400000000D+06 0.502914190292D-07-0.284870505214D+01-0.931322574616D-08
+ 0.919420287214D+00 0.120062500000D+03-0.146875493954D+01-0.827605901679D-08
+ -0.280368821344D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.282000000000D+03
+ 0.259200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 2 0 0.0-0.191107392311D-05-0.454747350887D-12 0.000000000000D+00
+ 0.270000000000D+02-0.133687500000D+03 0.433875215501D-08 0.192456797618D+01
+ -0.697374343872D-05 0.187446922064D-02 0.330060720444D-05 0.515361592674D+04
+ 0.266400000000D+06-0.596046447754D-07-0.694480593093D+00 0.540167093277D-07
+ 0.971820084687D+00 0.320656250000D+03 0.631098733967D-01-0.832248952224D-08
+ -0.505378193888D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.283000000000D+03
+ 0.259218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 2 0 0.0-0.105944462121D-03 0.306954461848D-11 0.000000000000D+00
+ 0.180000000000D+02-0.114812500000D+03 0.448518682603D-08-0.130156627580D+01
+ -0.593997538090D-05 0.220795394853D-02 0.318326056004D-05 0.515371465302D+04
+ 0.266400000000D+06-0.111758708954D-07-0.699327920946D+00-0.409781932831D-07
+ 0.966453011299D+00 0.321156250000D+03-0.649642203703D+00-0.838999233400D-08
+ -0.387158983869D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.274000000000D+03
+ 0.259200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 2 0 0.0 0.134276691824D-03 0.443378667114D-11 0.000000000000D+00
+ 0.146000000000D+03 0.952812500000D+02 0.394802159380D-08-0.127816820020D+01
+ 0.501982867718D-05 0.811356003396D-02 0.128038227558D-04 0.515363444328D+04
+ 0.266400000000D+06-0.152736902237D-06-0.271817155638D+01 0.122934579849D-06
+ 0.978283992609D+00 0.147656250000D+03 0.179635514101D+01-0.771246411223D-08
+ -0.123933733766D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.402000000000D+03
+ 0.262818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 2 0 0.0-0.133891589940D-04 0.111754161480D-09 0.000000000000D+00
+ 0.210000000000D+03 0.101156250000D+03 0.382980238379D-08-0.243887624425D+01
+ 0.511854887009D-05 0.136058432981D-01 0.130254775286D-04 0.515367464638D+04
+ 0.266400000000D+06-0.206753611565D-06-0.267782681684D+01-0.193715095520D-06
+ 0.980171167172D+00 0.141031250000D+03-0.307770086218D+01-0.751852746256D-08
+ -0.553594488004D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.466000000000D+03
+ 0.260118000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 2 0 0.0-0.751628540456D-04 0.341060513165D-12 0.000000000000D+00
+ 0.200000000000D+01 0.107125000000D+03 0.470983904084D-08 0.302147332639D+01
+ 0.552460551262D-05 0.240445660893D-02 0.229477882385D-05 0.515367220688D+04
+ 0.266400000000D+06-0.726431608200D-07-0.169347131775D+01 0.242143869400D-07
+ 0.962330021000D+00 0.337062500000D+03 0.298925795386D+01-0.842499379195D-08
+ 0.218580533328D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.200000000000D+01
+ 0.265908000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 2 0 0.0-0.133947469294D-03-0.295585778076D-11 0.000000000000D+00
+ 0.240000000000D+02 0.119656250000D+03 0.469948146655D-08 0.156898853748D+01
+ 0.610016286373D-05 0.184915051796D-02 0.211782753468D-05 0.515367193413D+04
+ 0.266400000000D+06 0.819563865662D-07-0.174560509967D+01-0.428408384323D-07
+ 0.962990601658D+00 0.336781250000D+03 0.202127932235D+01-0.847928176755D-08
+ 0.260367988229D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.536000000000D+03
+ 0.259200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 2 0 0.0-0.903382897377D-07 0.000000000000D+00 0.000000000000D+00
+ 0.164000000000D+03 0.105968750000D+03 0.440911222865D-08 0.154946488630D+01
+ 0.544451177120D-05 0.180475662928D-01 0.339746475220D-05 0.515363064766D+04
+ 0.266400000000D+06-0.402331352234D-06-0.173332325432D+01 0.162050127983D-06
+ 0.979130934402D+00 0.330562500000D+03-0.235815293520D+01-0.843677999718D-08
+ 0.140720147273D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.164000000000D+03
+ 0.261378000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 2 0 0.0 0.591441988945D-03 0.145519152284D-10 0.000000000000D+00
+ 0.174000000000D+03 0.485312500000D+02 0.554094508832D-08 0.916180625869D+00
+ 0.263750553131D-05 0.150266090641D-01 0.711902976036D-05 0.515366488266D+04
+ 0.266400000000D+06-0.186264514923D-06 0.133072795752D+01 0.132247805595D-06
+ 0.931734641528D+00 0.228531250000D+03 0.759689037103D+00-0.871393439892D-08
+ 0.508592613495D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.174000000000D+03
+ 0.263988000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 2 0 0.0 0.555953010917D-05 0.795807864051D-12 0.000000000000D+00
+ 0.155000000000D+03 0.103687500000D+03 0.422767609968D-08 0.217471591538D+01
+ 0.499002635479D-05 0.160062442301D-01 0.218488276005D-05 0.515342762947D+04
+ 0.266400000000D+06 0.875443220139D-07-0.169054478963D+01-0.223517417908D-06
+ 0.982446114504D+00 0.341218750000D+03-0.177213522875D+01-0.803890628129D-08
+ 0.161792453591D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.155000000000D+03
+ 0.260898000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 2 0 0.0 0.569922849536D-05 0.261479726760D-11 0.000000000000D+00
+ 0.560000000000D+02 0.107500000000D+03 0.378122893193D-08-0.214196152191D+01
+ 0.562332570553D-05 0.933997973334D-02 0.138450413942D-04 0.515366016579D+04
+ 0.266400000000D+06 0.108033418655D-06-0.274664372970D+01 0.102445483208D-06
+ 0.981839516985D+00 0.123125000000D+03-0.157370990516D+01-0.741209445777D-08
+ -0.182864759908D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-09 0.568000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 2 0 0.0 0.223251990974D-04 0.454747350887D-12 0.000000000000D+00
+ 0.169000000000D+03-0.760625000000D+02 0.463555023213D-08-0.137426725371D+01
+ -0.383704900742D-05 0.946673331782D-02 0.122897326946D-04 0.515360432625D+04
+ 0.266400000000D+06 0.178813934326D-06 0.283546331163D+00 0.229105353355D-06
+ 0.939053481701D+00 0.131187500000D+03-0.189955643213D+01-0.805033532878D-08
+ 0.177507393896D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.425000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 2 0 0.0-0.479123555124D-04-0.110276232590D-10 0.000000000000D+00
+ 0.139000000000D+03-0.119906250000D+03 0.452768859640D-08-0.419764270147D+00
+ -0.633113086224D-05 0.133291317616D-01 0.275671482086D-05 0.515357975769D+04
+ 0.266400000000D+06 0.257045030594D-06-0.689897089349D+00 0.180676579475D-06
+ 0.970438380505D+00 0.329031250000D+03 0.312741497613D+00-0.858500045687D-08
+ -0.505735351622D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.395000000000D+03
+ 0.264318000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 2 0 0.0 0.946270301938D-05 0.113686837722D-11 0.000000000000D+00
+ 0.221000000000D+03-0.935000000000D+02 0.423660504303D-08-0.287726849838D+01
+ -0.496022403240D-05 0.157652115449D-01 0.143945217133D-04 0.515365684700D+04
+ 0.266400000000D+06-0.167638063431D-07 0.307759056109D+00-0.167638063431D-06
+ 0.943569098732D+00 0.911250000000D+02-0.249357545929D+01-0.763424656844D-08
+ 0.362872257943D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.221000000000D+03
+ 0.259200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 2 0 0.0-0.596824102104D-04-0.295585778076D-11 0.000000000000D+00
+ 0.140000000000D+02 0.370312500000D+02 0.496949271360D-08 0.181501894015D+01
+ 0.199489295483D-05 0.584022223484D-02 0.667013227940D-05 0.515366391373D+04
+ 0.266400000000D+06-0.124797224999D-06 0.140051187532D+01 0.577419996262D-07
+ 0.958886996487D+00 0.247250000000D+03-0.249607360257D+01-0.825462955274D-08
+ 0.703957894101D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.782000000000D+03
+ 0.259218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 2 0 0.0 0.544625334442D-03-0.131876731757D-10 0.000000000000D+00
+ 0.900000000000D+01-0.107250000000D+03 0.451697386438D-08 0.506050705557D-01
+ -0.555068254471D-05 0.831900071353D-02 0.315532088280D-05 0.515181132889D+04
+ 0.266400000000D+06-0.109896063805D-06-0.719732434602D+00 0.726431608200D-07
+ 0.967327188237D+00 0.323781250000D+03-0.190672118606D+01-0.852142638018D-08
+ -0.410731394326D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.265000000000D+03
+ 0.265998000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 2 0 0.0 0.406102743000D-03 0.453610482509D-10 0.000000000000D+00
+ 0.260000000000D+02 0.389687500000D+02 0.519378777068D-08 0.190325761926D+01
+ 0.206567347050D-05 0.621606898494D-02 0.688247382641D-05 0.515358845138D+04
+ 0.266400000000D+06 0.111758708954D-07 0.137414744218D+01-0.193715095520D-06
+ 0.942414231701D+00 0.236500000000D+03 0.134057906939D+01-0.832034657583D-08
+ 0.720744307608D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.838190317154D-08 0.538000000000D+03
+ 0.259218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 2 0 0.0 0.901962630451D-04 0.250111042988D-11 0.000000000000D+00
+ 0.235000000000D+03-0.392500000000D+02 0.537379526871D-08-0.100090053057D+01
+ -0.182166695595D-05 0.108633987838D-01 0.662356615067D-05 0.515372287941D+04
+ 0.266400000000D+06 0.126659870148D-06 0.241240425300D+01 0.217929482460D-06
+ 0.942916397350D+00 0.239250000000D+03 0.881199766170D+00-0.844749472921D-08
+ -0.507878298027D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.605359673500D-08 0.235000000000D+03
+ 0.262050000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 3 59 44.0 0.248603988439D-03-0.319460013998D-10 0.000000000000D+00
+ 0.201000000000D+03 0.994375000000D+02 0.404909723258D-08-0.171905481742D+01
+ 0.490248203278D-05 0.589656131342D-02 0.136233866215D-04 0.515361856651D+04
+ 0.273584000000D+06-0.651925802231D-07-0.276474149072D+01-0.171363353729D-06
+ 0.971747842867D+00 0.125593750000D+03-0.364669777571D+00-0.773103631441D-08
+ -0.151077721565D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.605359673500D-08 0.201000000000D+03
+ 0.266760000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 3 59 44.0 0.335464254022D-03 0.193267624127D-11 0.000000000000D+00
+ 0.640000000000D+02 0.380625000000D+02 0.529772067133D-08-0.201839357893D+01
+ 0.196136534214D-05 0.357584864833D-02 0.738166272640D-05 0.515378434372D+04
+ 0.273584000000D+06 0.130385160446D-07 0.133868662979D+01-0.633299350739D-07
+ 0.935342902638D+00 0.223500000000D+03 0.553040571994D+00-0.835177645644D-08
+ 0.736102090178D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.465661287308D-08 0.640000000000D+02
+ 0.266418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 3 59 44.0-0.245310366154D-05-0.113686837722D-12 0.000000000000D+00
+ 0.217000000000D+03-0.357812500000D+02 0.537736684606D-08-0.847946390359D+00
+ -0.166706740856D-05 0.653732533101D-02 0.664591789246D-05 0.515356293869D+04
+ 0.273584000000D+06 0.577419996262D-07 0.244224841233D+01 0.134110450745D-06
+ 0.941753210704D+00 0.240875000000D+03-0.222631525529D+01-0.849963975840D-08
+ -0.455733268834D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.217000000000D+03
+ 0.270978000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 3 59 44.0 0.696437433362D-03 0.829913915368D-11 0.000000000000D+00
+ 0.900000000000D+01-0.375625000000D+02 0.539915346784D-08 0.111892470307D+01
+ -0.198930501938D-05 0.118384248344D-01 0.679492950440D-05 0.515359465981D+04
+ 0.273584000000D+06-0.238418579102D-06 0.241254356230D+01 0.670552253723D-07
+ 0.943463227350D+00 0.238000000000D+03-0.196726673230D+01-0.860678707866D-08
+ -0.506092509356D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.900000000000D+01
+ 0.266400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 3 59 44.0 0.180662609637D-04 0.795807864051D-12 0.000000000000D+00
+ 0.225000000000D+03 0.129375000000D+03 0.450161608181D-08 0.233906071173D+01
+ 0.673905014992D-05 0.480725627858D-02 0.291503965855D-05 0.515373057938D+04
+ 0.273584000000D+06-0.875443220139D-07-0.173928956089D+01 0.521540641785D-07
+ 0.979459925660D+00 0.336406250000D+03 0.603003216704D-01-0.833141846559D-08
+ 0.328227957726D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.225000000000D+03
+ 0.268068000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 3 59 44.0 0.776862725616D-05 0.341060513165D-12 0.000000000000D+00
+ 0.100000000000D+01 0.613125000000D+02 0.521343144606D-08 0.105278476206D+01
+ 0.314973294735D-05 0.664778519422D-03 0.123307108879D-04 0.515369539452D+04
+ 0.273584000000D+06 0.372529029846D-08-0.284876457242D+01-0.186264514923D-08
+ 0.919418439548D+00 0.121812500000D+03-0.146652416794D+01-0.825534386821D-08
+ -0.249296098469D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.111758708954D-07 0.257000000000D+03
+ 0.272130000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 3 59 44.0-0.191060826182D-05-0.454747350887D-12 0.000000000000D+00
+ 0.100000000000D+01-0.119750000000D+03 0.439911181209D-08 0.297314541071D+01
+ -0.637210905552D-05 0.187601533253D-02 0.344403088093D-05 0.515361211395D+04
+ 0.273584000000D+06-0.763684511185D-07-0.694540463015D+00-0.149011611939D-07
+ 0.971816769715D+00 0.316531250000D+03 0.624151716367D-01-0.826820154664D-08
+ -0.474305471012D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.257000000000D+03
+ 0.270510000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 3 59 44.0 0.134302303195D-03 0.443378667114D-11 0.000000000000D+00
+ 0.174000000000D+03 0.919687500000D+02 0.391873465960D-08-0.230341345042D+00
+ 0.469200313091D-05 0.811435899232D-02 0.132434070110D-04 0.515363518906D+04
+ 0.273584000000D+06-0.128522515297D-06-0.271822751007D+01-0.149011611939D-07
+ 0.978283091452D+00 0.136281250000D+03 0.179639586865D+01-0.776960934970D-08
+ -0.107861635727D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.174000000000D+03
+ 0.268818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 3 59 44.0 0.406426377595D-03 0.453610482509D-10 0.000000000000D+00
+ 0.520000000000D+02 0.370000000000D+02 0.512378485478D-08 0.295123047949D+01
+ 0.193156301975D-05 0.621626537759D-02 0.709667801857D-05 0.515358765984D+04
+ 0.273584000000D+06 0.614672899246D-07 0.137408862556D+01-0.428408384323D-07
+ 0.942419711792D+00 0.232718750000D+03 0.134051016888D+01-0.819641284207D-08
+ 0.675385275365D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.520000000000D+02
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 4 0 0.0 0.213562510908D-03 0.159161572810D-11 0.000000000000D+00
+ 0.103000000000D+03-0.121437500000D+03 0.452125975719D-08-0.103038745555D+01
+ -0.636652112007D-05 0.531457713805D-02 0.337883830071D-05 0.515369585037D+04
+ 0.273600000000D+06-0.132247805595D-06-0.673919542814D+00 0.465661287308D-07
+ 0.967622870314D+00 0.313937500000D+03-0.171516729256D+01-0.842427947648D-08
+ -0.481091467962D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.871000000000D+03
+ 0.266400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 4 0 0.0-0.144555699080D-03-0.591171556152D-11 0.000000000000D+00
+ 0.229000000000D+03 0.501875000000D+02 0.523557522558D-08-0.285224057257D+01
+ 0.246427953243D-05 0.221472610720D-01 0.702030956745D-05 0.515198053551D+04
+ 0.273600000000D+06 0.216066837311D-06 0.131711527219D+01-0.145286321640D-06
+ 0.932260007594D+00 0.226312500000D+03-0.197822260626D+01-0.804676375144D-08
+ 0.777175229611D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.485000000000D+03
+ 0.271157000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 4 0 0.0 0.104920938611D-03 0.318323145621D-11 0.000000000000D+00
+ 0.198000000000D+03-0.402187500000D+02 0.560737642688D-08 0.952378706556D+00
+ -0.219605863094D-05 0.303626246750D-02 0.610202550888D-05 0.515368496323D+04
+ 0.273600000000D+06 0.484287738800D-07 0.239546754422D+01-0.372529029846D-08
+ 0.934150646347D+00 0.247375000000D+03 0.550856954637D+00-0.863857411700D-08
+ -0.463590738987D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.198000000000D+03
+ 0.270408000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 4 0 0.0 0.248598866165D-03-0.320596882375D-10 0.000000000000D+00
+ 0.176000000000D+03 0.994375000000D+02 0.404909723258D-08-0.171672193268D+01
+ 0.490248203278D-05 0.589658482932D-02 0.136233866215D-04 0.515361856651D+04
+ 0.273600000000D+06-0.651925802231D-07-0.276474165018D+01-0.171363353729D-06
+ 0.971747841404D+00 0.125593750000D+03-0.364668882265D+00-0.773103631441D-08
+ -0.151077721565D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.688000000000D+03
+ 0.266400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 4 0 0.0-0.245496630669D-05-0.113686837722D-12 0.000000000000D+00
+ 0.194000000000D+03-0.357812500000D+02 0.537736684606D-08-0.845614035196D+00
+ -0.166706740856D-05 0.653733371291D-02 0.664591789246D-05 0.515356291771D+04
+ 0.273600000000D+06 0.577419996262D-07 0.244224828505D+01 0.134110450745D-06
+ 0.941753165354D+00 0.240875000000D+03-0.222631356708D+01-0.849963975840D-08
+ -0.455733268834D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.194000000000D+03
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 4 0 0.0 0.710403546691D-03 0.238742359215D-11 0.000000000000D+00
+ 0.990000000000D+02-0.708437500000D+02 0.399480925698D-08-0.670868833431D+00
+ -0.390596687794D-05 0.827907887287D-02 0.140052288771D-04 0.515370761108D+04
+ 0.273600000000D+06-0.255182385445D-06 0.382875197660D+00 0.167638063431D-07
+ 0.959946131621D+00 0.110968750000D+03 0.210384868334D+01-0.777282376931D-08
+ 0.338942689752D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.372529029846D-08 0.990000000000D+02
+ 0.267618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 4 0 0.0-0.282712280750D-04-0.170530256582D-11 0.000000000000D+00
+ 0.175000000000D+03-0.928750000000D+02 0.436661045828D-08-0.119655060493D+01
+ -0.481493771076D-05 0.127151095076D-01 0.130031257868D-04 0.515370628166D+04
+ 0.273600000000D+06 0.365078449249D-06 0.327182459366D+00 0.100582838059D-06
+ 0.946205392681D+00 0.118500000000D+03 0.798406343183D+00-0.790390065776D-08
+ 0.143220251413D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.431000000000D+03
+ 0.270210000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 4 0 0.0 0.180630013347D-04 0.795807864051D-12 0.000000000000D+00
+ 0.201000000000D+03 0.129375000000D+03 0.450161608181D-08 0.234139875325D+01
+ 0.673905014992D-05 0.480725057423D-02 0.291503965855D-05 0.515373059463D+04
+ 0.273600000000D+06-0.875443220139D-07-0.173928969402D+01 0.521540641785D-07
+ 0.979459966622D+00 0.336406250000D+03 0.602957997907D-01-0.833141846559D-08
+ 0.328227957726D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.713000000000D+03
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 4 0 0.0 0.777142122388D-05 0.454747350887D-12 0.000000000000D+00
+ 0.270000000000D+02 0.613125000000D+02 0.521343144606D-08 0.105508824507D+01
+ 0.314973294735D-05 0.664783059619D-03 0.123307108879D-04 0.515369539070D+04
+ 0.273600000000D+06 0.372529029846D-08-0.284876473042D+01-0.186264514923D-08
+ 0.919418471733D+00 0.121812500000D+03-0.146649387823D+01-0.825534386821D-08
+ -0.249296098469D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.111758708954D-07 0.283000000000D+03
+ 0.269250000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 4 0 0.0-0.191433355212D-05-0.454747350887D-12 0.000000000000D+00
+ 0.280000000000D+02-0.119750000000D+03 0.439911181209D-08 0.297548213122D+01
+ -0.637210905552D-05 0.187601021025D-02 0.344403088093D-05 0.515361212540D+04
+ 0.273600000000D+06-0.763684511185D-07-0.694540555179D+00-0.149011611939D-07
+ 0.971816768252D+00 0.316531250000D+03 0.624121668030D-01-0.826820154664D-08
+ -0.474305471012D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.111758708954D-07 0.280000000000D+02
+ 0.266400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 4 0 0.0-0.105922110379D-03 0.306954461848D-11 0.000000000000D+00
+ 0.200000000000D+02-0.110906250000D+03 0.457554773279D-08-0.251929685654D+00
+ -0.578723847866D-05 0.220673647709D-02 0.271014869213D-05 0.515371149254D+04
+ 0.273600000000D+06 0.558793544769D-07-0.699388128803D+00-0.745058059692D-07
+ 0.966450075222D+00 0.332500000000D+03-0.649122093901D+00-0.841142179805D-08
+ -0.433946647048D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.200000000000D+02
+ 0.269688000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 4 0 0.0 0.134308822453D-03 0.443378667114D-11 0.000000000000D+00
+ 0.147000000000D+03 0.919687500000D+02 0.391873465960D-08-0.228006491214D+00
+ 0.469200313091D-05 0.811435247306D-02 0.132434070110D-04 0.515363512230D+04
+ 0.273600000000D+06-0.128522515297D-06-0.271822763149D+01-0.149011611939D-07
+ 0.978283120710D+00 0.136281250000D+03 0.179639514305D+01-0.776960934970D-08
+ -0.107861635727D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.403000000000D+03
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 4 0 0.0-0.125849619508D-04 0.111640474643D-09 0.000000000000D+00
+ 0.211000000000D+03 0.100750000000D+03 0.383944564261D-08-0.138867133969D+01
+ 0.502355396748D-05 0.136058640201D-01 0.131167471409D-04 0.515367533112D+04
+ 0.273600000000D+06 0.204890966415D-07-0.267788225412D+01-0.158324837685D-06
+ 0.980171228615D+00 0.137375000000D+03-0.307772983089D+01-0.760710258064D-08
+ 0.978612191697D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.467000000000D+03
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 4 0 0.0-0.751605257392D-04 0.341060513165D-12 0.000000000000D+00
+ 0.300000000000D+01 0.112531250000D+03 0.481484341470D-08-0.221138381075D+01
+ 0.585988163948D-05 0.240483775269D-02 0.241026282311D-05 0.515367180252D+04
+ 0.273600000000D+06-0.108033418655D-06-0.169353257306D+01-0.113621354103D-06
+ 0.962331232296D+00 0.332343750000D+03 0.298911419144D+01-0.853678416276D-08
+ 0.260725145963D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.300000000000D+01
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 4 0 0.0-0.133969355375D-03-0.295585778076D-11 0.000000000000D+00
+ 0.270000000000D+02 0.114156250000D+03 0.478019911448D-08 0.261950785240D+01
+ 0.611506402493D-05 0.184902129695D-02 0.250525772572D-05 0.515367104721D+04
+ 0.273600000000D+06 0.745058059692D-07-0.174566590147D+01 0.223517417908D-07
+ 0.962992474193D+00 0.332218750000D+03 0.202094428339D+01-0.845249493749D-08
+ 0.253939149013D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.283000000000D+03
+ 0.266400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 4 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.165000000000D+03 0.116281250000D+03 0.431625121776D-08 0.259975523552D+01
+ 0.566430389881D-05 0.180480122799D-01 0.334158539772D-05 0.515362780380D+04
+ 0.273600000000D+06-0.119209289551D-06-0.173338315203D+01-0.266358256340D-06
+ 0.979134575605D+00 0.323812500000D+03-0.235823535893D+01-0.797533220460D-08
+ 0.272868508926D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.165000000000D+03
+ 0.270078000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 4 0 0.0 0.591546297073D-03 0.145519152284D-10 0.000000000000D+00
+ 0.175000000000D+03 0.401562500000D+02 0.542129724736D-08 0.196628474854D+01
+ 0.200234353542D-05 0.150269890437D-01 0.744871795178D-05 0.515366746521D+04
+ 0.273600000000D+06-0.363215804100D-06 0.133066461171D+01-0.165775418282D-06
+ 0.931739404789D+00 0.222843750000D+03 0.759777871341D+00-0.849392523465D-08
+ 0.663956227871D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.175000000000D+03
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 4 0 0.0 0.556511804462D-05 0.795807864051D-12 0.000000000000D+00
+ 0.156000000000D+03 0.121843750000D+03 0.435268130665D-08-0.305823204556D+01
+ 0.644847750664D-05 0.160043840297D-01 0.222586095333D-05 0.515343190193D+04
+ 0.273600000000D+06 0.311061739922D-06-0.169060376279D+01-0.162050127983D-06
+ 0.982447368225D+00 0.344031250000D+03-0.177204443859D+01-0.812962434577D-08
+ 0.312155859687D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.156000000000D+03
+ 0.266418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 4 0 0.0 0.571785494685D-05 0.261479726760D-11 0.000000000000D+00
+ 0.510000000000D+02 0.109875000000D+03 0.382337354457D-08-0.109159910496D+01
+ 0.572949647903D-05 0.934014539234D-02 0.134855508804D-04 0.515366328621D+04
+ 0.273600000000D+06-0.186264514923D-06-0.274669798201D+01 0.875443220139D-07
+ 0.981836896899D+00 0.135562500000D+03-0.157388895902D+01-0.769424906779D-08
+ -0.179293182566D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-09 0.307000000000D+03
+ 0.266418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 4 0 0.0 0.223284587264D-04 0.454747350887D-12 0.000000000000D+00
+ 0.170000000000D+03-0.836875000000D+02 0.465233664564D-08-0.323994288348D+00
+ -0.433996319771D-05 0.946619827300D-02 0.121649354696D-04 0.515360432625D+04
+ 0.273600000000D+06-0.558793544769D-07 0.283487501375D+00 0.189989805222D-06
+ 0.939054195605D+00 0.138531250000D+03-0.189960596068D+01-0.819034116059D-08
+ 0.173221501085D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.426000000000D+03
+ 0.272388000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 4 0 0.0-0.479919835925D-04-0.110276232590D-10 0.000000000000D+00
+ 0.134000000000D+03-0.121906250000D+03 0.458197657200D-08 0.630490100066D+00
+ -0.618398189545D-05 0.133291847305D-01 0.249408185482D-05 0.515357981491D+04
+ 0.273600000000D+06 0.894069671631D-07-0.689958761586D+00 0.288709998131D-06
+ 0.970434660305D+00 0.331593750000D+03 0.312725332368D+00-0.856249951962D-08
+ -0.563594904561D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.646000000000D+03
+ 0.266748000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 4 0 0.0 0.947108492255D-05 0.113686837722D-11 0.000000000000D+00
+ 0.222000000000D+03-0.839375000000D+02 0.430482217027D-08-0.182729134236D+01
+ -0.465288758278D-05 0.157669211039D-01 0.127200037241D-04 0.515365019226D+04
+ 0.273600000000D+06 0.484287738800D-07 0.307704259586D+00-0.273808836937D-06
+ 0.943571639820D+00 0.121218750000D+03-0.249336292801D+01-0.765389024382D-08
+ 0.308941440080D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.419095158577D-08 0.222000000000D+03
+ 0.266988000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 4 0 0.0-0.597038306296D-04-0.295585778076D-11 0.000000000000D+00
+ 0.150000000000D+02 0.413125000000D+02 0.482091509618D-08 0.286528914060D+01
+ 0.224262475967D-05 0.584035180509D-02 0.699423253536D-05 0.515366310310D+04
+ 0.273600000000D+06 0.223517417908D-07 0.140045290509D+01-0.484287738800D-07
+ 0.958893004691D+00 0.245468750000D+03-0.249615352617D+01-0.807497921244D-08
+ 0.734316301507D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.527000000000D+03
+ 0.266400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 4 0 0.0 0.544530339539D-03-0.131876731757D-10 0.000000000000D+00
+ 0.100000000000D+02-0.105187500000D+03 0.462697844651D-08 0.110200002387D+01
+ -0.558607280254D-05 0.831767788623D-02 0.282935798168D-05 0.515180858803D+04
+ 0.273600000000D+06-0.800937414169D-07-0.719793439749D+00-0.428408384323D-07
+ 0.967323832303D+00 0.334343750000D+03-0.190679467137D+01-0.852928385034D-08
+ -0.491806199988D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.266000000000D+03
+ 0.273288000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 4 0 0.0 0.902139581740D-04 0.250111042988D-11 0.000000000000D+00
+ 0.236000000000D+03-0.356875000000D+02 0.537308095325D-08 0.493153883096D-01
+ -0.181607902050D-05 0.108642671257D-01 0.650249421597D-05 0.515372492790D+04
+ 0.273600000000D+06-0.484287738800D-07 0.241234228817D+01 0.100582838059D-06
+ 0.942912113926D+00 0.246375000000D+03 0.881140240033D+00-0.862964517365D-08
+ -0.475734101949D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.236000000000D+03
+ 0.271667000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 5 59 44.0-0.245450064540D-05-0.113686837722D-12 0.000000000000D+00
+ 0.218000000000D+03-0.366250000000D+02 0.532557897460D-08 0.202301939465D+00
+ -0.188499689102D-05 0.653720460832D-02 0.678934156895D-05 0.515356269646D+04
+ 0.280784000000D+06-0.521540641785D-07 0.244218727406D+01 0.143423676491D-06
+ 0.941749876714D+00 0.240531250000D+03-0.222630895889D+01-0.849249660372D-08
+ -0.489663253583D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.218000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 5 59 44.0 0.180718488991D-04 0.795807864051D-12 0.000000000000D+00
+ 0.226000000000D+03 0.124937500000D+03 0.445125684129D-08-0.289404786300D+01
+ 0.644475221634D-05 0.480698631145D-02 0.284425914288D-05 0.515373121643D+04
+ 0.280784000000D+06-0.335276126862D-07-0.173934934743D+01-0.447034835815D-07
+ 0.979462826627D+00 0.337375000000D+03 0.603690290810D-01-0.823712882376D-08
+ 0.356086260994D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.226000000000D+03
+ 0.273618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 5 59 44.0 0.777142122388D-05 0.341060513165D-12 0.000000000000D+00
+ 0.200000000000D+01 0.531875000000D+02 0.525093300815D-08 0.210412848691D+01
+ 0.275298953056D-05 0.665256520733D-03 0.124908983707D-04 0.515369392586D+04
+ 0.280784000000D+06 0.000000000000D+00-0.284882403565D+01-0.745058059692D-08
+ 0.919416624067D+00 0.117812500000D+03-0.146769527775D+01-0.826105839196D-08
+ -0.247510309798D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.258000000000D+03
+ 0.279287000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 5 59 44.0-0.191340222955D-05-0.454747350887D-12 0.000000000000D+00
+ 0.200000000000D+01-0.108937500000D+03 0.445697136503D-08-0.225942587077D+01
+ -0.562332570553D-05 0.187439110596D-02 0.293739140034D-05 0.515361546707D+04
+ 0.280784000000D+06-0.409781932831D-07-0.694600569930D+00-0.137835741043D-06
+ 0.971813137289D+00 0.323625000000D+03 0.620183097573D-01-0.835749098019D-08
+ -0.422874757288D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.200000000000D+01
+ 0.273600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 5 59 44.0 0.134333968163D-03 0.443378667114D-11 0.000000000000D+00
+ 0.175000000000D+03 0.906875000000D+02 0.385123184784D-08 0.819894188638D+00
+ 0.469945371151D-05 0.811543792952D-02 0.136923044920D-04 0.515363699913D+04
+ 0.280784000000D+06-0.115483999252D-06-0.271828347546D+01-0.856816768646D-07
+ 0.978282280995D+00 0.125187500000D+03 0.179635888462D+01-0.775175146299D-08
+ -0.114290474943D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.175000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 5 59 44.0-0.133990310133D-03-0.295585778076D-11 0.000000000000D+00
+ 0.300000000000D+01 0.110281250000D+03 0.477377027527D-08-0.261600339118D+01
+ 0.577047467232D-05 0.184782221913D-02 0.315904617310D-05 0.515367333603D+04
+ 0.280784000000D+06-0.391155481339D-07-0.174572695928D+01 0.521540641785D-07
+ 0.962994765123D+00 0.323093750000D+03 0.202112006909D+01-0.840285001243D-08
+ 0.340014162955D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.651925802231D-08 0.300000000000D+01
+ 0.276660000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 5 59 44.0 0.558188185096D-05 0.795807864051D-12 0.000000000000D+00
+ 0.177000000000D+03 0.118968750000D+03 0.437446792843D-08-0.201022745317D+01
+ 0.639259815216D-05 0.160049224505D-01 0.203587114811D-05 0.515343126106D+04
+ 0.280784000000D+06 0.255182385445D-06-0.169066266572D+01 0.819563865662D-07
+ 0.982450311616D+00 0.350750000000D+03-0.177205445519D+01-0.812998150351D-08
+ 0.431089385175D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.177000000000D+03
+ 0.279678000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 5 59 44.0-0.480678863823D-04-0.110276232590D-10 0.000000000000D+00
+ 0.158000000000D+03-0.123437500000D+03 0.465519390751D-08 0.167834598829D+01
+ -0.615231692791D-05 0.133293030085D-01 0.324845314026D-05 0.515358102035D+04
+ 0.280784000000D+06-0.130385160446D-06-0.690019787214D+00 0.279396772385D-06
+ 0.970430262773D+00 0.326750000000D+03 0.312774285996D+00-0.849821112746D-08
+ -0.599310677981D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.158000000000D+03
+ 0.274578000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 6 0 0.0 0.213573686779D-03 0.159161572810D-11 0.000000000000D+00
+ 0.104000000000D+03-0.112093750000D+03 0.461340645261D-08 0.199635901465D-01
+ -0.561401247978D-05 0.531523826066D-02 0.324845314026D-05 0.515369784737D+04
+ 0.280800000000D+06-0.260770320892D-07-0.673981062908D+00-0.279396772385D-07
+ 0.967619438308D+00 0.319656250000D+03-0.171535167876D+01-0.850821154402D-08
+ -0.401088135502D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.872000000000D+03
+ 0.273600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 6 0 0.0-0.144598074257D-03-0.591171556152D-11 0.000000000000D+00
+ 0.230000000000D+03 0.475625000000D+02 0.526200489791D-08-0.180100971185D+01
+ 0.255741178989D-05 0.221473659622D-01 0.685453414917D-05 0.515198066711D+04
+ 0.280800000000D+06 0.476837158203D-06 0.131705788191D+01-0.167638063431D-07
+ 0.932265136585D+00 0.228250000000D+03-0.197823187823D+01-0.817712632442D-08
+ 0.660384650529D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.486000000000D+03
+ 0.275400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 6 0 0.0 0.104943756014D-03 0.318323145621D-11 0.000000000000D+00
+ 0.199000000000D+03-0.356875000000D+02 0.556451749878D-08 0.200284824422D+01
+ -0.181980431080D-05 0.303613615688D-02 0.578723847866D-05 0.515368329430D+04
+ 0.280800000000D+06-0.465661287308D-07 0.239540506738D+01 0.149011611939D-07
+ 0.934147702956D+00 0.251687500000D+03 0.550569962295D+00-0.859357224249D-08
+ -0.391087718945D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.199000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 6 0 0.0 0.248373020440D-03-0.319460013998D-10 0.000000000000D+00
+ 0.202000000000D+03 0.874687500000D+02 0.407266964304D-08-0.667032791587D+00
+ 0.436790287495D-05 0.589622906409D-02 0.121928751469D-04 0.515361287308D+04
+ 0.280800000000D+06 0.372529029846D-07-0.276479783062D+01-0.819563865662D-07
+ 0.971747150906D+00 0.147093750000D+03-0.364143580568D+00-0.775960893314D-08
+ -0.692886004340D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.202000000000D+03
+ 0.273600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 6 0 0.0 0.335478223860D-03 0.193267624127D-11 0.000000000000D+00
+ 0.650000000000D+02 0.436875000000D+02 0.537915263473D-08-0.966149575756D+00
+ 0.226870179176D-05 0.357568927575D-02 0.734440982342D-05 0.515378291511D+04
+ 0.280800000000D+06 0.160187482834D-06 0.133862673060D+01 0.298023223877D-07
+ 0.935347525459D+00 0.223750000000D+03 0.553249172409D+00-0.846249535404D-08
+ 0.631454874059D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.465661287308D-08 0.650000000000D+02
+ 0.278190000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 6 0 0.0 0.696497038007D-03 0.829913915368D-11 0.000000000000D+00
+ 0.100000000000D+02-0.423437500000D+02 0.512878506306D-08 0.217139036612D+01
+ -0.219792127609D-05 0.118383268127D-01 0.642798841000D-05 0.515359695053D+04
+ 0.280800000000D+06 0.186264514923D-07 0.241248206268D+01-0.244006514549D-06
+ 0.943461653251D+00 0.245156250000D+03-0.196716423441D+01-0.821677083292D-08
+ -0.406802659249D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.100000000000D+02
+ 0.273600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 6 0 0.0 0.710420776159D-03 0.238742359215D-11 0.000000000000D+00
+ 0.100000000000D+03-0.651875000000D+02 0.414160108574D-08 0.379164029041D+00
+ -0.363215804100D-05 0.827659456991D-02 0.129956752062D-04 0.515370261764D+04
+ 0.280800000000D+06 0.242143869400D-07 0.382820229976D+00-0.169500708580D-06
+ 0.959947253679D+00 0.131093750000D+03 0.210397434508D+01-0.788247119371D-08
+ 0.814319633967D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.372529029846D-08 0.100000000000D+03
+ 0.273618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 6 0 0.0-0.282833352685D-04-0.170530256582D-11 0.000000000000D+00
+ 0.176000000000D+03-0.871875000000D+02 0.453340312015D-08-0.146419485565D+00
+ -0.448711216450D-05 0.127152713249D-01 0.131465494633D-04 0.515370606041D+04
+ 0.280800000000D+06 0.428408384323D-07 0.327124263021D+00 0.208616256714D-06
+ 0.946205021100D+00 0.116468750000D+03 0.798436382743D+00-0.820141305035D-08
+ 0.122505102829D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.558793544769D-08 0.432000000000D+03
+ 0.278448000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 6 0 0.0-0.105899292976D-03 0.306954461848D-11 0.000000000000D+00
+ 0.150000000000D+02-0.115125000000D+03 0.464555064869D-08 0.798094737244D+00
+ -0.610761344433D-05 0.220763462130D-02 0.229291617870D-05 0.515371327019D+04
+ 0.280800000000D+06 0.353902578354D-07-0.699448791627D+00 0.335276126862D-07
+ 0.966446388668D+00 0.337937500000D+03-0.648988700642D+00-0.850785438629D-08
+ -0.472519682341D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.783000000000D+03
+ 0.277278000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 6 0 0.0-0.117812305689D-04 0.111640474643D-09 0.000000000000D+00
+ 0.212000000000D+03 0.101750000000D+03 0.386301805307D-08-0.338504428571D+00
+ 0.535324215889D-05 0.136057785712D-01 0.130943953991D-04 0.515367506218D+04
+ 0.280800000000D+06 0.217929482460D-06-0.267793667321D+01-0.931322574616D-08
+ 0.980170849719D+00 0.137531250000D+03-0.307772206864D+01-0.776925219197D-08
+ -0.471448209139D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.468000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 6 0 0.0-0.751586630940D-04 0.341060513165D-12 0.000000000000D+00
+ 0.130000000000D+02 0.118593750000D+03 0.486627412842D-08-0.116103742445D+01
+ 0.623241066933D-05 0.240443716757D-02 0.252015888691D-05 0.515367262840D+04
+ 0.280800000000D+06 0.409781932831D-07-0.169359498992D+01-0.353902578354D-07
+ 0.962333477875D+00 0.332437500000D+03 0.298895190262D+01-0.859250076929D-08
+ 0.387158983869D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.781000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 6 0 0.0-0.133990775794D-03-0.295585778076D-11 0.000000000000D+00
+ 0.280000000000D+02 0.110281250000D+03 0.477377027527D-08-0.261366554861D+01
+ 0.577047467232D-05 0.184780976269D-02 0.315904617310D-05 0.515367332649D+04
+ 0.280800000000D+06-0.391155481339D-07-0.174572708655D+01 0.521540641785D-07
+ 0.962994768049D+00 0.323093750000D+03 0.202111598755D+01-0.840285001243D-08
+ 0.340014162955D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.540000000000D+03
+ 0.273600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 6 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.160000000000D+03 0.128468750000D+03 0.441661254107D-08-0.263323881905D+01
+ 0.649690628052D-05 0.180463047000D-01 0.311993062496D-05 0.515363096619D+04
+ 0.280800000000D+06 0.208616256714D-06-0.173344219102D+01-0.372529029846D-06
+ 0.979136459844D+00 0.328031250000D+03-0.235821947310D+01-0.814533928608D-08
+ 0.463233581252D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.416000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 6 0 0.0 0.591650605202D-03 0.144382283907D-10 0.000000000000D+00
+ 0.170000000000D+03 0.385625000000D+02 0.526807657939D-08 0.301651169343D+01
+ 0.192038714886D-05 0.150277286302D-01 0.767596065998D-05 0.515366575241D+04
+ 0.280800000000D+06 0.558793544769D-08 0.133060495098D+01-0.195577740669D-06
+ 0.931745727521D+00 0.216625000000D+03 0.759741930369D+00-0.816069706865D-08
+ 0.670385067086D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.426000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 6 0 0.0 0.557070598006D-05 0.795807864051D-12 0.000000000000D+00
+ 0.157000000000D+03 0.118968750000D+03 0.437446792843D-08-0.200789335421D+01
+ 0.639259815216D-05 0.160049367696D-01 0.203587114811D-05 0.515343124580D+04
+ 0.280800000000D+06 0.255182385445D-06-0.169066272570D+01 0.819563865662D-07
+ 0.982450318931D+00 0.350750000000D+03-0.177205437327D+01-0.812998150351D-08
+ 0.431089385175D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.157000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 6 0 0.0 0.573694705963D-05 0.261479726760D-11 0.000000000000D+00
+ 0.520000000000D+02 0.869375000000D+02 0.391302013585D-08-0.416081038874D-01
+ 0.430084764957D-05 0.933673721738D-02 0.125784426928D-04 0.515365594864D+04
+ 0.280800000000D+06-0.894069671631D-07-0.274675423268D+01-0.931322574616D-08
+ 0.981835679751D+00 0.151031250000D+03-0.157369523941D+01-0.777532387345D-08
+ -0.109647424398D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.931322574616D-09 0.308000000000D+03
+ 0.273630000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 6 0 0.0 0.223312526941D-04 0.454747350887D-12 0.000000000000D+00
+ 0.171000000000D+03-0.957812500000D+02 0.460483466699D-08 0.726101612727D+00
+ -0.491924583912D-05 0.946721620858D-02 0.128149986267D-04 0.515360672188D+04
+ 0.280800000000D+06-0.165775418282D-06 0.283429751221D+00-0.465661287308D-07
+ 0.939054770532D+00 0.126625000000D+03-0.189947783832D+01-0.815355391396D-08
+ -0.310727228751D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.427000000000D+03
+ 0.277127000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 6 0 0.0-0.480720773339D-04-0.111413100967D-10 0.000000000000D+00
+ 0.135000000000D+03-0.123437500000D+03 0.465519390751D-08 0.168068038130D+01
+ -0.615231692791D-05 0.133292825194D-01 0.324845314026D-05 0.515358101463D+04
+ 0.280800000000D+06-0.130385160446D-06-0.690019953986D+00 0.279396772385D-06
+ 0.970430274476D+00 0.326750000000D+03 0.312773810547D+00-0.849821112746D-08
+ -0.599310677981D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.647000000000D+03
+ 0.273618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 6 0 0.0 0.947946682572D-05 0.113686837722D-11 0.000000000000D+00
+ 0.223000000000D+03-0.745000000000D+02 0.456947605131D-08-0.777166618875D+00
+ -0.398606061935D-05 0.157678537071D-01 0.119972974062D-04 0.515364854622D+04
+ 0.280800000000D+06 0.284984707832D-06 0.307649695668D+00 0.257045030594D-06
+ 0.943570947860D+00 0.137593750000D+03-0.249329225298D+01-0.814498212834D-08
+ 0.500020827875D-11 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.223000000000D+03
+ 0.274890000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 6 0 0.0-0.597252510488D-04-0.295585778076D-11 0.000000000000D+00
+ 0.190000000000D+02 0.446875000000D+02 0.471341061819D-08-0.236770144246D+01
+ 0.218674540520D-05 0.583990360610D-02 0.697001814842D-05 0.515366393280D+04
+ 0.280800000000D+06-0.782310962677D-07 0.140039547385D+01-0.111758708954D-07
+ 0.958898278511D+00 0.245937500000D+03-0.249615973772D+01-0.800747640068D-08
+ 0.661098965997D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.190000000000D+02
+ 0.279978000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 6 0 0.0 0.544434878975D-03-0.131876731757D-10 0.000000000000D+00
+ 0.110000000000D+02-0.114750000000D+03 0.459447709270D-08 0.215307997727D+01
+ -0.622496008873D-05 0.831772375386D-02 0.192224979401D-05 0.515181235313D+04
+ 0.280800000000D+06 0.353902578354D-07-0.719854640927D+00-0.949949026108D-07
+ 0.967320868431D+00 0.345343750000D+03-0.190655338644D+01-0.841285042899D-08
+ -0.476091259683D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.698491930962D-08 0.267000000000D+03
+ 0.276438000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 6 0 0.0 0.406753271818D-03 0.453610482509D-10 0.000000000000D+00
+ 0.530000000000D+02 0.396250000000D+02 0.511914180423D-08-0.227940604310D+01
+ 0.207312405109D-05 0.621608854272D-02 0.712089240551D-05 0.515358788109D+04
+ 0.280800000000D+06 0.126659870148D-06 0.137402958951D+01-0.558793544769D-07
+ 0.942424532107D+00 0.231250000000D+03 0.134053266417D+01-0.821641367518D-08
+ 0.648241287566D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.838190317154D-08 0.530000000000D+02
+ 0.280680000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 6 0 0.0 0.902321189642D-04 0.250111042988D-11 0.000000000000D+00
+ 0.231000000000D+03-0.366875000000D+02 0.538843873582D-08 0.109951003050D+01
+ -0.190734863281D-05 0.108636439545D-01 0.625662505627D-05 0.515372349167D+04
+ 0.280800000000D+06-0.102445483208D-06 0.241228046233D+01 0.502914190292D-07
+ 0.942908501981D+00 0.251562500000D+03 0.881101643866D+00-0.861321591787D-08
+ -0.521807449661D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.487000000000D+03
+ 0.275508000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 7 59 44.0-0.134011730552D-03-0.295585778076D-11 0.000000000000D+00
+ 0.400000000000D+01 0.115000000000D+03 0.485698802733D-08-0.156652259742D+01
+ 0.599026679993D-05 0.184880557936D-02 0.371970236301D-05 0.515367029572D+04
+ 0.287984000000D+06-0.108033418655D-06-0.174578764258D+01-0.745058059692D-08
+ 0.962996993147D+00 0.312000000000D+03 0.202182372537D+01-0.846106672311D-08
+ 0.353943314588D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.400000000000D+01
+ 0.285947000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 7 59 44.0 0.558746978641D-05 0.795807864051D-12 0.000000000000D+00
+ 0.178000000000D+03 0.111468750000D+03 0.451983112625D-08-0.959972050141D+00
+ 0.615417957306D-05 0.160041422350D-01 0.297278165817D-05 0.515342892075D+04
+ 0.287984000000D+06-0.108033418655D-06-0.169072217284D+01 0.271946191788D-06
+ 0.982451533153D+00 0.339687500000D+03-0.177198168233D+01-0.850499712441D-08
+ 0.384658879729D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.178000000000D+03
+ 0.280818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 7 59 44.0-0.481475144625D-04-0.110276232590D-10 0.000000000000D+00
+ 0.159000000000D+03-0.120156250000D+03 0.456590447396D-08 0.272861359499D+01
+ -0.630132853985D-05 0.133297982393D-01 0.332482159138D-05 0.515357988548D+04
+ 0.287984000000D+06-0.242143869400D-06-0.690081197589D+00-0.132247805595D-06
+ 0.970428014268D+00 0.323062500000D+03 0.312745842480D+00-0.816426864599D-08
+ -0.402516766439D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.159000000000D+03
+ 0.280818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 7 59 44.0 0.544338021427D-03-0.131876731757D-10 0.000000000000D+00
+ 0.300000000000D+02-0.123093750000D+03 0.475591238856D-08-0.308103490954D+01
+ -0.617280602455D-05 0.831861991901D-02 0.202469527721D-05 0.515181026650D+04
+ 0.287984000000D+06 0.139698386192D-06-0.719915303751D+00-0.707805156708D-07
+ 0.967317465684D+00 0.341937500000D+03-0.190663807476D+01-0.843285126210D-08
+ -0.430375069706D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.300000000000D+02
+ 0.282588000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 8 0 0.0 0.213585328311D-03 0.159161572810D-11 0.000000000000D+00
+ 0.105000000000D+03-0.108593750000D+03 0.476769859378D-08 0.107021310640D+01
+ -0.572204589844D-05 0.531376129948D-02 0.301375985146D-05 0.515369502449D+04
+ 0.288000000000D+06-0.260770320892D-07-0.674042344546D+00-0.353902578354D-07
+ 0.967616568063D+00 0.331281250000D+03-0.171543236308D+01-0.850499712441D-08
+ -0.398588031363D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.325962901115D-08 0.873000000000D+03
+ 0.284838000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 8 0 0.0-0.144639983773D-03-0.591171556152D-11 0.000000000000D+00
+ 0.231000000000D+03 0.440312500000D+02 0.554737392753D-08-0.749813915822D+00
+ 0.261329114437D-05 0.221468039090D-01 0.770390033722D-05 0.515197924233D+04
+ 0.288000000000D+06-0.912696123123D-07 0.131699724688D+01 0.387430191040D-06
+ 0.932266491247D+00 0.222062500000D+03-0.197820532335D+01-0.886608359368D-08
+ 0.558594696283D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.487000000000D+03
+ 0.280800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 8 0 0.0 0.104967039079D-03 0.318323145621D-11 0.000000000000D+00
+ 0.200000000000D+03-0.356875000000D+02 0.546487049093D-08 0.305312464891D+01
+ -0.177510082722D-05 0.303659634665D-02 0.621378421783D-05 0.515368227005D+04
+ 0.288000000000D+06 0.428408384323D-07 0.239534350047D+01-0.745058059692D-08
+ 0.934145350583D+00 0.247875000000D+03 0.550476047343D+00-0.849678249653D-08
+ -0.385016037463D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.200000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 8 0 0.0 0.248142983764D-03-0.319460013998D-10 0.000000000000D+00
+ 0.203000000000D+03 0.705937500000D+02 0.393409244217D-08 0.383309824770D+00
+ 0.380724668503D-05 0.589833722916D-02 0.121779739857D-04 0.515361705208D+04
+ 0.288000000000D+06 0.502914190292D-07-0.276485370385D+01-0.614672899246D-07
+ 0.971746609627D+00 0.149500000000D+03-0.364273752481D+00-0.776675208783D-08
+ -0.753602819154D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.605359673500D-08 0.203000000000D+03
+ 0.287220000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 8 0 0.0 0.335492193699D-03 0.193267624127D-11 0.000000000000D+00
+ 0.660000000000D+02 0.466875000000D+02 0.539558189050D-08 0.840020610345D-01
+ 0.241771340370D-05 0.357626320329D-02 0.716000795364D-05 0.515378398895D+04
+ 0.288000000000D+06 0.782310962677D-07 0.133856556600D+01 0.113621354103D-06
+ 0.935351760607D+00 0.227250000000D+03 0.553217816223D+00-0.851678332964D-08
+ 0.611454040944D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.465661287308D-08 0.660000000000D+02
+ 0.283098000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 8 0 0.0-0.245543196797D-05-0.113686837722D-12 0.000000000000D+00
+ 0.219000000000D+03-0.377187500000D+02 0.530772108789D-08 0.125486026668D+01
+ -0.195950269699D-05 0.653733860236D-02 0.685080885887D-05 0.515356313896D+04
+ 0.288000000000D+06-0.100582838059D-06 0.244212644592D+01 0.316649675369D-07
+ 0.941745964871D+00 0.239062500000D+03-0.222627919728D+01-0.847856745208D-08
+ -0.569309428309D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.219000000000D+03
+ 0.280848000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 8 0 0.0 0.696556176990D-03 0.818545231596D-11 0.000000000000D+00
+ 0.110000000000D+02-0.421875000000D+02 0.509806949792D-08-0.306157798790D+01
+ -0.219419598579D-05 0.118383539375D-01 0.629574060440D-05 0.515359704018D+04
+ 0.288000000000D+06 0.106170773506D-06 0.241242330165D+01-0.143423676491D-06
+ 0.943458842985D+00 0.247750000000D+03-0.196714946479D+01-0.816926885427D-08
+ -0.401088135502D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.110000000000D+02
+ 0.286967000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 8 0 0.0 0.710438005626D-03 0.238742359215D-11 0.000000000000D+00
+ 0.950000000000D+02-0.741875000000D+02 0.412052877942D-08 0.142916212965D+01
+ -0.409781932831D-05 0.827811157797D-02 0.119712203741D-04 0.515370638466D+04
+ 0.288000000000D+06 0.156462192535D-06 0.382763764264D+00-0.113621354103D-06
+ 0.959948258704D+00 0.143375000000D+03 0.210413501152D+01-0.777925260853D-08
+ 0.689314426998D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.372529029846D-08 0.351000000000D+03
+ 0.280800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 8 0 0.0-0.282954424620D-04-0.170530256582D-11 0.000000000000D+00
+ 0.177000000000D+03-0.825000000000D+02 0.455018953366D-08 0.903773262150D+00
+ -0.407919287682D-05 0.127154409420D-01 0.131223350763D-04 0.515370607376D+04
+ 0.288000000000D+06-0.167638063431D-06 0.327066508479D+00 0.102445483208D-06
+ 0.946205512640D+00 0.121000000000D+03 0.798403753818D+00-0.811533803640D-08
+ -0.539308178636D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.558793544769D-08 0.433000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 8 0 0.0 0.180769711733D-04 0.795807864051D-12 0.000000000000D+00
+ 0.227000000000D+03 0.112500000000D+03 0.448554398377D-08-0.184175489011D+01
+ 0.565685331821D-05 0.480843149126D-02 0.301003456116D-05 0.515372809792D+04
+ 0.288000000000D+06 0.447034835815D-07-0.173940922028D+01-0.651925802231D-07
+ 0.979465394048D+00 0.333062500000D+03 0.605566966009D-01-0.828070206734D-08
+ 0.406088343781D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.227000000000D+03
+ 0.280818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 8 0 0.0 0.777421519160D-05 0.341060513165D-12 0.000000000000D+00
+ 0.300000000000D+01 0.569687500000D+02 0.514914305391D-08-0.312715637464D+01
+ 0.283308327198D-05 0.663450919092D-03 0.130571424961D-04 0.515369726563D+04
+ 0.288000000000D+06 0.186264514923D-08-0.284888366127D+01-0.931322574616D-08
+ 0.919414840770D+00 0.103343750000D+03-0.146708885725D+01-0.826248702289D-08
+ -0.246795994330D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.300000000000D+01
+ 0.283188000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 8 0 0.0-0.191666185856D-05-0.454747350887D-12 0.000000000000D+00
+ 0.160000000000D+02-0.107062500000D+03 0.463483591666D-08-0.120780743624D+01
+ -0.544078648090D-05 0.187437399291D-02 0.270642340183D-05 0.515361222267D+04
+ 0.288000000000D+06 0.596046447754D-07-0.694661554596D+00-0.372529029846D-07
+ 0.971810477704D+00 0.336625000000D+03 0.629513047802D-01-0.838820654533D-08
+ -0.321441960777D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.528000000000D+03
+ 0.280800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 8 0 0.0-0.105876941234D-03 0.306954461848D-11 0.000000000000D+00
+ 0.160000000000D+02-0.122125000000D+03 0.475912680816D-08 0.184869161462D+01
+ -0.614114105701D-05 0.220733601600D-02 0.234134495258D-05 0.515371137237D+04
+ 0.288000000000D+06 0.316649675369D-07-0.699510077654D+00 0.335276126862D-07
+ 0.966442974218D+00 0.335562500000D+03-0.649426879716D+00-0.851142596363D-08
+ -0.471091051405D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.784000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 8 0 0.0 0.134366098791D-03 0.443378667114D-11 0.000000000000D+00
+ 0.176000000000D+03 0.982500000000D+02 0.372229790579D-08 0.187237072995D+01
+ 0.503845512867D-05 0.811502838042D-02 0.134333968163D-04 0.515363766480D+04
+ 0.288000000000D+06 0.143423676491D-06-0.271833838902D+01-0.875443220139D-07
+ 0.978282752055D+00 0.127500000000D+03 0.179641463789D+01-0.747674000766D-08
+ -0.113576159474D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.176000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 8 0 0.0-0.109779648483D-04 0.111526787805D-09 0.000000000000D+00
+ 0.213000000000D+03 0.102031250000D+03 0.379587239904D-08 0.711671741356D+00
+ 0.539049506187D-05 0.136063504033D-01 0.128801912069D-04 0.515367613411D+04
+ 0.288000000000D+06 0.178813934326D-06-0.267799211781D+01 0.191852450371D-06
+ 0.980170713667D+00 0.141906250000D+03-0.307772373344D+01-0.767567686561D-08
+ -0.109290266664D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.469000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 8 0 0.0-0.751563347876D-04 0.341060513165D-12 0.000000000000D+00
+ 0.140000000000D+02 0.116343750000D+03 0.486984570576D-08-0.110860997051D+00
+ 0.604055821896D-05 0.240483053494D-02 0.235252082348D-05 0.515367320252D+04
+ 0.288000000000D+06 0.242143869400D-07-0.169365688599D+01-0.391155481339D-07
+ 0.962336365675D+00 0.336125000000D+03 0.298895974971D+01-0.858071456406D-08
+ 0.400016662300D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.526000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 8 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.161000000000D+03 0.126781250000D+03 0.439554023475D-08-0.158305546034D+01
+ 0.663660466671D-05 0.180469042389D-01 0.263378024101D-05 0.515362971878D+04
+ 0.288000000000D+06 0.318512320519D-06-0.173350142311D+01-0.117346644402D-06
+ 0.979140498961D+00 0.334312500000D+03-0.235819550319D+01-0.818176937496D-08
+ 0.579309844866D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.417000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 8 0 0.0 0.591754913330D-03 0.144382283907D-10 0.000000000000D+00
+ 0.171000000000D+03 0.390000000000D+02 0.527343394541D-08-0.221648243574D+01
+ 0.187940895557D-05 0.150276868371D-01 0.759214162827D-05 0.515366581726D+04
+ 0.288000000000D+06 0.141561031342D-06 0.133054542338D+01-0.150874257088D-06
+ 0.931750751182D+00 0.216531250000D+03 0.759742253674D+00-0.821391357104D-08
+ 0.767531970787D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.427000000000D+03
+ 0.285618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 8 0 0.0 0.575603917241D-05 0.261479726760D-11 0.000000000000D+00
+ 0.530000000000D+02 0.722500000000D+02 0.373086969141D-08 0.100844266470D+01
+ 0.381655991077D-05 0.933817354962D-02 0.124275684357D-04 0.515365949821D+04
+ 0.288000000000D+06-0.178813934326D-06-0.274681044823D+01-0.111758708954D-06
+ 0.981835151638D+00 0.149093750000D+03-0.157355956985D+01-0.770746390395D-08
+ -0.585738684082D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-09 0.309000000000D+03
+ 0.280800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 8 0 0.0 0.223345123231D-04 0.454747350887D-12 0.000000000000D+00
+ 0.172000000000D+03-0.115968750000D+03 0.454376069444D-08 0.177612762874D+01
+ -0.619143247604D-05 0.946893461514D-02 0.131409615278D-04 0.515361104584D+04
+ 0.288000000000D+06-0.100582838059D-06 0.283370968247D+00-0.204890966415D-06
+ 0.939055049949D+00 0.116062500000D+03-0.189928413041D+01-0.803997775449D-08
+ 0.500020827875D-11 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.428000000000D+03
+ 0.286188000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 8 0 0.0 0.948784872890D-05 0.113686837722D-11 0.000000000000D+00
+ 0.218000000000D+03-0.822187500000D+02 0.467340895196D-08 0.273081498826D+00
+ -0.415742397308D-05 0.157677915413D-01 0.115353614092D-04 0.515364881897D+04
+ 0.288000000000D+06 0.111758708954D-07 0.307590274861D+00 0.258907675743D-06
+ 0.943570432913D+00 0.146781250000D+03-0.249334442356D+01-0.826963017758D-08
+ -0.178578867098D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.474000000000D+03
+ 0.280830000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 8 0 0.0-0.597471371293D-04-0.295585778076D-11 0.000000000000D+00
+ 0.000000000000D+00 0.374062500000D+02 0.471769651100D-08-0.131730220825D+01
+ 0.185891985893D-05 0.583967473358D-02 0.720098614693D-05 0.515366629219D+04
+ 0.288000000000D+06 0.154599547386D-06 0.140033858828D+01-0.894069671631D-07
+ 0.958902146466D+00 0.240500000000D+03-0.249637189742D+01-0.810605193531D-08
+ 0.476448417418D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.768000000000D+03
+ 0.280818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 8 0 0.0 0.544339418411D-03-0.131876731757D-10 0.000000000000D+00
+ 0.600000000000D+01-0.123093750000D+03 0.475662670402D-08-0.307870005717D+01
+ -0.617280602455D-05 0.831863319036D-02 0.202469527721D-05 0.515181027985D+04
+ 0.288000000000D+06 0.139698386192D-06-0.719915422247D+00-0.707805156708D-07
+ 0.967317468610D+00 0.341937500000D+03-0.190663691028D+01-0.843285126210D-08
+ -0.430375069706D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.698491930962D-08 0.518000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 8 0 0.0 0.407079700381D-03 0.452473614132D-10 0.000000000000D+00
+ 0.540000000000D+02 0.435625000000D+02 0.526486215978D-08-0.122922121855D+01
+ 0.230967998505D-05 0.621634384152D-02 0.713393092156D-05 0.515358717346D+04
+ 0.288000000000D+06 0.298023223877D-07 0.137397026086D+01 0.191852450371D-06
+ 0.942427851469D+00 0.231593750000D+03 0.134058608262D+01-0.846463830045D-08
+ 0.563594904561D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.540000000000D+02
+ 0.285498000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 8 0 0.0 0.902498140931D-04 0.250111042988D-11 0.000000000000D+00
+ 0.232000000000D+03-0.371875000000D+02 0.527164815673D-08 0.214965908817D+01
+ -0.198557972908D-05 0.108636290534D-01 0.622496008873D-05 0.515372363663D+04
+ 0.288000000000D+06-0.931322574616D-07 0.241221830148D+01-0.210478901863D-06
+ 0.942905937486D+00 0.252031250000D+03 0.881109409035D+00-0.839570685775D-08
+ -0.417874549009D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.488000000000D+03
+ 0.280818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 9 59 44.0 0.213610939682D-03 0.170530256582D-11 0.000000000000D+00
+ 0.127000000000D+03-0.115156250000D+03 0.475126933801D-08 0.211784304693D+01
+ -0.609643757343D-05 0.531406153459D-02 0.247173011303D-05 0.515369704437D+04
+ 0.295184000000D+06 0.521540641785D-07-0.674103269233D+00-0.316649675369D-07
+ 0.967614016733D+00 0.337656250000D+03-0.171522741411D+01-0.843499420851D-08
+ -0.398945189097D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.127000000000D+03
+ 0.292818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 9 59 44.0-0.282996334136D-04-0.170530256582D-11 0.000000000000D+00
+ 0.199000000000D+03-0.847500000000D+02 0.452304554586D-08 0.195158734749D+01
+ -0.452809035778D-05 0.127150934422D-01 0.128969550133D-04 0.515370636558D+04
+ 0.295184000000D+06-0.268220901489D-06 0.327007738671D+00-0.156462192535D-06
+ 0.946206005644D+00 0.126312500000D+03 0.798418125525D+00-0.793354474970D-08
+ 0.617882880159D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.199000000000D+03
+ 0.291630000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 9 59 44.0 0.948831439018D-05 0.113686837722D-11 0.000000000000D+00
+ 0.400000000000D+01-0.959375000000D+02 0.469019536546D-08 0.132077401568D+01
+ -0.465288758278D-05 0.157686860766D-01 0.131335109472D-04 0.515365377235D+04
+ 0.295184000000D+06-0.197440385819D-06 0.307531585514D+00 0.186264514923D-06
+ 0.943569827265D+00 0.125562500000D+03-0.249317358692D+01-0.820498462769D-08
+ -0.101075638778D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.400000000000D+01
+ 0.294078000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 9 59 44.0 0.544242560863D-03-0.133013600134D-10 0.000000000000D+00
+ 0.310000000000D+02-0.118031250000D+03 0.473662587091D-08-0.202974015002D+01
+ -0.592507421970D-05 0.831811840180D-02 0.232271850109D-05 0.515181079865D+04
+ 0.295184000000D+06 0.484287738800D-07-0.719976657072D+00 0.856816768646D-07
+ 0.967315018222D+00 0.336593750000D+03-0.190661067431D+01-0.839999275056D-08
+ -0.289654922433D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.310000000000D+02
+ 0.288018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 10 0 0.0 0.213596504182D-03 0.159161572810D-11 0.000000000000D+00
+ 0.100000000000D+03-0.115156250000D+03 0.475126933801D-08 0.212017922616D+01
+ -0.609643757343D-05 0.531406269874D-02 0.247173011303D-05 0.515369703484D+04
+ 0.295200000000D+06 0.521540641785D-07-0.674103380414D+00-0.316649675369D-07
+ 0.967614016733D+00 0.337656250000D+03-0.171522990399D+01-0.843499420851D-08
+ -0.398945189097D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.570000000000D+01 0.000000000000D+00-0.325962901115D-08 0.612000000000D+03
+ 0.292758000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 10 0 0.0-0.144682358950D-03-0.591171556152D-11 0.000000000000D+00
+ 0.232000000000D+03 0.405937500000D+02 0.552165857067D-08 0.301386279205D+00
+ 0.229291617870D-05 0.221467628144D-01 0.807642936707D-05 0.515197892761D+04
+ 0.295200000000D+06-0.305473804474D-06 0.131693351778D+01 0.173225998879D-06
+ 0.932270350425D+00 0.214906250000D+03-0.197818011288D+01-0.887144095970D-08
+ 0.453233164695D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.488000000000D+03
+ 0.292818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 10 0 0.0 0.104989856482D-03 0.318323145621D-11 0.000000000000D+00
+ 0.201000000000D+03-0.386562500000D+02 0.540879672667D-08-0.217991939796D+01
+ -0.205636024475D-05 0.303699600045D-02 0.613369047642D-05 0.515368148231D+04
+ 0.295200000000D+06-0.577419996262D-07 0.239528296638D+01 0.000000000000D+00
+ 0.934142513985D+00 0.248281250000D+03 0.550517112916D+00-0.844178020546D-08
+ -0.456447584303D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.201000000000D+03
+ 0.288468000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 10 0 0.0 0.247912481427D-03-0.319460013998D-10 0.000000000000D+00
+ 0.204000000000D+03 0.626250000000D+02 0.388123309751D-08 0.143370281086D+01
+ 0.339001417160D-05 0.589702511206D-02 0.127293169498D-04 0.515361394501D+04
+ 0.295200000000D+06 0.167638063431D-07-0.276490834676D+01 0.128522515297D-06
+ 0.971746457483D+00 0.138937500000D+03-0.364454529657D+00-0.759388774448D-08
+ -0.167149819604D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.204000000000D+03
+ 0.293807000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 10 0 0.0 0.335506163538D-03 0.193267624127D-11 0.000000000000D+00
+ 0.670000000000D+02 0.516562500000D+02 0.531486424257D-08 0.113393408749D+01
+ 0.266358256340D-05 0.357712490950D-02 0.745616853237D-05 0.515378606796D+04
+ 0.295200000000D+06-0.100582838059D-06 0.133850536253D+01 0.558793544769D-07
+ 0.935355865555D+00 0.221437500000D+03 0.553404230022D+00-0.843892294359D-08
+ 0.471448209139D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.465661287308D-08 0.670000000000D+02
+ 0.288018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 10 0 0.0-0.245682895184D-05-0.113686837722D-12 0.000000000000D+00
+ 0.220000000000D+03-0.430937500000D+02 0.522664628223D-08 0.230494833382D+01
+ -0.234134495258D-05 0.653703056742D-02 0.644475221634D-05 0.515356525803D+04
+ 0.295200000000D+06-0.335276126862D-07 0.244206548759D+01-0.108033418655D-06
+ 0.941742630881D+00 0.245000000000D+03-0.222611370028D+01-0.833534720067D-08
+ -0.522521765129D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.512227416039D-08 0.220000000000D+03
+ 0.294390000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 10 0 0.0 0.696615315974D-03 0.818545231596D-11 0.000000000000D+00
+ 0.120000000000D+02-0.370312500000D+02 0.517307262210D-08-0.201142900924D+01
+ -0.190734863281D-05 0.118397718761D-01 0.570714473724D-05 0.515359381294D+04
+ 0.295200000000D+06 0.244006514549D-06 0.241236458012D+01-0.102445483208D-06
+ 0.943455947870D+00 0.259125000000D+03-0.196706542600D+01-0.821641367518D-08
+ -0.430017911972D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.232830643654D-08 0.120000000000D+02
+ 0.291150000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 10 0 0.0 0.710455235094D-03 0.238742359215D-11 0.000000000000D+00
+ 0.960000000000D+02-0.841562500000D+02 0.426803492364D-08 0.247947173088D+01
+ -0.402890145779D-05 0.827823090367D-02 0.122394412756D-04 0.515370416260D+04
+ 0.295200000000D+06 0.149011611939D-06 0.382708287485D+00 0.204890966415D-07
+ 0.959948769262D+00 0.140718750000D+03 0.210398498927D+01-0.772139305559D-08
+ 0.535736601294D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.372529029846D-08 0.352000000000D+03
+ 0.288000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 10 0 0.0-0.283075496554D-04-0.170530256582D-11 0.000000000000D+00
+ 0.172000000000D+03-0.847500000000D+02 0.452304554586D-08 0.195391939398D+01
+ -0.452809035778D-05 0.127150847111D-01 0.128969550133D-04 0.515370635033D+04
+ 0.295200000000D+06-0.268220901489D-06 0.327007612860D+00-0.156462192535D-06
+ 0.946206007107D+00 0.126312500000D+03 0.798419898582D+00-0.793354474970D-08
+ 0.617882880159D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.558793544769D-08 0.684000000000D+03
+ 0.288018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 10 0 0.0 0.180825591087D-04 0.795807864051D-12 0.000000000000D+00
+ 0.228000000000D+03 0.104531250000D+03 0.430696511667D-08-0.791107174869D+00
+ 0.548362731934D-05 0.480886863079D-02 0.349618494511D-05 0.515373272514D+04
+ 0.295200000000D+06 0.111758708954D-07-0.173946906679D+01-0.745058059692D-08
+ 0.979468584672D+00 0.317218750000D+03 0.600542720158D-01-0.826748723117D-08
+ 0.458947688442D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.228000000000D+03
+ 0.288000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 10 0 0.0 0.777700915933D-05 0.341060513165D-12 0.000000000000D+00
+ 0.160000000000D+02 0.600312500000D+02 0.508449750402D-08-0.207770602713D+01
+ 0.324100255966D-05 0.663344166242D-03 0.133216381073D-04 0.515369698143D+04
+ 0.295200000000D+06 0.000000000000D+00-0.284894317278D+01-0.204890966415D-07
+ 0.919413095509D+00 0.969687500000D+02-0.146636887334D+01-0.825534386821D-08
+ -0.242510101519D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.528000000000D+03
+ 0.288018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 10 0 0.0-0.191945582628D-05-0.454747350887D-12 0.000000000000D+00
+ 0.170000000000D+02-0.107125000000D+03 0.471376777592D-08-0.157642551268D+00
+ -0.560097396374D-05 0.187473499682D-02 0.245869159699D-05 0.515361261940D+04
+ 0.295200000000D+06 0.614672899246D-07-0.694721891190D+00 0.689178705216D-07
+ 0.971807690845D+00 0.341531250000D+03 0.630061364128D-01-0.847356724380D-08
+ -0.363229415677D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.111758708954D-07 0.529000000000D+03
+ 0.288180000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 10 0 0.0-0.105854589492D-03 0.306954461848D-11 0.000000000000D+00
+ 0.220000000000D+02-0.120656250000D+03 0.476448417418D-08 0.289858254331D+01
+ -0.610761344433D-05 0.220701843500D-02 0.278465449810D-05 0.515371256447D+04
+ 0.295200000000D+06-0.707805156708D-07-0.699571853759D+00 0.132247805595D-06
+ 0.966439984013D+00 0.330156250000D+03-0.649158454730D+00-0.847713882114D-08
+ -0.363229415677D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.220000000000D+02
+ 0.288018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 10 0 0.0 0.134397763759D-03 0.443378667114D-11 0.000000000000D+00
+ 0.177000000000D+03 0.902500000000D+02 0.375229915546D-08 0.292268356422D+01
+ 0.457838177681D-05 0.811678636819D-02 0.127293169498D-04 0.515363406563D+04
+ 0.295200000000D+06 0.143423676491D-06-0.271839204447D+01 0.204890966415D-07
+ 0.978281935747D+00 0.141062500000D+03 0.179629951648D+01-0.745173896627D-08
+ -0.992898501065D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.177000000000D+03
+ 0.288018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 10 0 0.0-0.101751647890D-04 0.111413100967D-09 0.000000000000D+00
+ 0.214000000000D+03 0.959687500000D+02 0.374765610492D-08 0.176189105274D+01
+ 0.505521893501D-05 0.136058690259D-01 0.126156955957D-04 0.515367475510D+04
+ 0.295200000000D+06-0.186264514923D-08-0.267804649886D+01 0.193715095520D-06
+ 0.980169565277D+00 0.144562500000D+03-0.307776857335D+01-0.760674542291D-08
+ -0.202508435289D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.232830643654D-08 0.470000000000D+03
+ 0.288000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 10 0 0.0-0.751540064812D-04 0.341060513165D-12 0.000000000000D+00
+ 0.150000000000D+02 0.109625000000D+03 0.484770192624D-08 0.939585945846D+00
+ 0.567547976971D-05 0.240396766458D-02 0.260584056377D-05 0.515367123032D+04
+ 0.295200000000D+06 0.745058059692D-07-0.169371821005D+01 0.372529029846D-07
+ 0.962339543133D+00 0.331375000000D+03 0.298869669071D+01-0.849606818106D-08
+ 0.377158567311D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.527000000000D+03
+ 0.288018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 10 0 0.0-0.134033150971D-03-0.295585778076D-11 0.000000000000D+00
+ 0.500000000000D+01 0.130562500000D+03 0.477448459073D-08-0.512915782190D+00
+ 0.652112066746D-05 0.184991816059D-02 0.383332371712D-05 0.515367463684D+04
+ 0.295200000000D+06 0.745058059692D-07-0.174584991462D+01-0.577419996262D-07
+ 0.962999668825D+00 0.306562500000D+03 0.202073488422D+01-0.856964267430D-08
+ 0.482162941165D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.500000000000D+01
+ 0.289158000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 10 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.162000000000D+03 0.120875000000D+03 0.450090176634D-08-0.532842419026D+00
+ 0.666081905365D-05 0.180463616271D-01 0.323355197907D-05 0.515362937927D+04
+ 0.295200000000D+06 0.119209289551D-06-0.173356093608D+01 0.270083546639D-06
+ 0.979142536805D+00 0.329250000000D+03-0.235820235842D+01-0.857214277844D-08
+ 0.462519265784D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.418000000000D+03
+ 0.288018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 10 0 0.0 0.591858755797D-03 0.144382283907D-10 0.000000000000D+00
+ 0.172000000000D+03 0.470937500000D+02 0.539629620597D-08-0.116637041916D+01
+ 0.254437327385D-05 0.150278718211D-01 0.735186040402D-05 0.515366351891D+04
+ 0.295200000000D+06 0.441446900368D-06 0.133048708660D+01 0.113621354103D-06
+ 0.931754904406D+00 0.219812500000D+03 0.759821546760D+00-0.846642408912D-08
+ 0.556094592143D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.428000000000D+03
+ 0.292788000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 10 0 0.0 0.559305772185D-05 0.795807864051D-12 0.000000000000D+00
+ 0.179000000000D+03 0.102718750000D+03 0.444482800207D-08 0.926265672969D-01
+ 0.523962080479D-05 0.160037644673D-01 0.329874455929D-05 0.515342739296D+04
+ 0.295200000000D+06-0.208616256714D-06-0.169078389335D+01 0.104308128357D-06
+ 0.982454213219D+00 0.329781250000D+03-0.177191427838D+01-0.854821321025D-08
+ 0.355371945525D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.179000000000D+03
+ 0.288030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 10 0 0.0 0.577466562390D-05 0.261479726760D-11 0.000000000000D+00
+ 0.540000000000D+02 0.665000000000D+02 0.360407869577D-08 0.205879502263D+01
+ 0.354088842869D-05 0.933856400661D-02 0.130012631416D-04 0.515365656090D+04
+ 0.295200000000D+06 0.158324837685D-06-0.274686484684D+01-0.894069671631D-07
+ 0.981836193236D+00 0.137562500000D+03-0.157372812873D+01-0.739066499372D-08
+ -0.610739725475D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.931322574616D-09 0.310000000000D+03
+ 0.288000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 10 0 0.0 0.223373062909D-04 0.454747350887D-12 0.000000000000D+00
+ 0.173000000000D+03-0.108437500000D+03 0.460233456285D-08 0.282643264372D+01
+ -0.546872615814D-05 0.946845998988D-02 0.132452696562D-04 0.515361053848D+04
+ 0.295200000000D+06 0.819563865662D-07 0.283314051956D+00-0.119209289551D-06
+ 0.939055640968D+00 0.104906250000D+03-0.189936842228D+01-0.789032866386D-08
+ -0.100004165575D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.429000000000D+03
+ 0.288018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 10 0 0.0-0.482271425426D-04-0.110276232590D-10 0.000000000000D+00
+ 0.160000000000D+03-0.111812500000D+03 0.463019286612D-08-0.250197223017D+01
+ -0.587105751038D-05 0.133287261706D-01 0.307708978653D-05 0.515358194351D+04
+ 0.295200000000D+06-0.113621354103D-06-0.690140982662D+00-0.359490513802D-06
+ 0.970424836810D+00 0.325562500000D+03 0.312719014025D+00-0.829713132311D-08
+ -0.304655547269D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.160000000000D+03
+ 0.288000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 10 0 0.0 0.949669629335D-05 0.113686837722D-11 0.000000000000D+00
+ 0.219000000000D+03-0.959375000000D+02 0.469019536546D-08 0.132310728809D+01
+ -0.465288758278D-05 0.157686895691D-01 0.131335109472D-04 0.515365376472D+04
+ 0.295200000000D+06-0.197440385819D-06 0.307531426055D+00 0.186264514923D-06
+ 0.943569855060D+00 0.125562500000D+03-0.249317305880D+01-0.820498462769D-08
+ -0.101075638778D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.475000000000D+03
+ 0.288030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 10 0 0.0-0.597685575485D-04-0.295585778076D-11 0.000000000000D+00
+ 0.210000000000D+02 0.344062500000D+02 0.485020203038D-08-0.267105060078D+00
+ 0.172853469849D-05 0.583939917851D-02 0.718608498573D-05 0.515366600418D+04
+ 0.295200000000D+06 0.204890966415D-07 0.140027977166D+01 0.447034835815D-07
+ 0.958904640741D+00 0.238406250000D+03-0.249638208079D+01-0.828391648694D-08
+ 0.440375486264D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.277000000000D+03
+ 0.288030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 10 0 0.0 0.407405663282D-03 0.452473614132D-10 0.000000000000D+00
+ 0.550000000000D+02 0.479375000000D+02 0.525914763604D-08-0.178906419576D+00
+ 0.253133475781D-05 0.621683930513D-02 0.704266130924D-05 0.515358848000D+04
+ 0.295200000000D+06-0.875443220139D-07 0.137390910211D+01 0.145286321640D-06
+ 0.942431785255D+00 0.233562500000D+03 0.134051004306D+01-0.849249660372D-08
+ 0.543236913712D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.550000000000D+02
+ 0.292008000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 10 0 0.0 0.902675092220D-04 0.250111042988D-11 0.000000000000D+00
+ 0.233000000000D+03-0.398750000000D+02 0.519378777068D-08-0.308334881145D+01
+ -0.210478901863D-05 0.108640922699D-01 0.631995499134D-05 0.515372266388D+04
+ 0.295200000000D+06 0.540167093277D-07 0.241215897576D+01-0.745058059692D-07
+ 0.942903516356D+00 0.249500000000D+03 0.881087531095D+00-0.822427114533D-08
+ -0.453947480163D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.489000000000D+03
+ 0.288018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 11 59 44.0 0.213623046875D-03 0.170530256582D-11 0.000000000000D+00
+ 0.128000000000D+03-0.120750000000D+03 0.477448459073D-08-0.311506101916D+01
+ -0.637955963612D-05 0.531438633334D-02 0.257045030594D-05 0.515369598198D+04
+ 0.302384000000D+06 0.139698386192D-06-0.674164318267D+00 0.558793544769D-08
+ 0.967611188913D+00 0.333562500000D+03-0.171533925566D+01-0.846070956537D-08
+ -0.346443002170D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.325962901115D-08 0.128000000000D+03
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 11 59 44.0-0.283117406070D-04-0.170530256582D-11 0.000000000000D+00
+ 0.200000000000D+03-0.897500000000D+02 0.451054502516D-08 0.300172697226D+01
+ -0.474229454994D-05 0.127153164940D-01 0.124815851450D-04 0.515370634079D+04
+ 0.302384000000D+06-0.577419996262D-07 0.326951378289D+00-0.204890966415D-06
+ 0.946207238884D+00 0.127750000000D+03 0.798438934072D+00-0.776925219197D-08
+ 0.735744932444D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.200000000000D+03
+ 0.295200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 11 59 44.0 0.949669629335D-05 0.113686837722D-11 0.000000000000D+00
+ 0.500000000000D+01-0.117093750000D+03 0.455018953366D-08 0.237081058079D+01
+ -0.612251460552D-05 0.157694244990D-01 0.136476010084D-04 0.515365777588D+04
+ 0.302384000000D+06-0.260770320892D-06 0.307472274426D+00-0.230967998505D-06
+ 0.943570953712D+00 0.110500000000D+03-0.249301863610D+01-0.788175687824D-08
+ 0.739316509786D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.500000000000D+01
+ 0.300498000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 12 0 0.0-0.144724734128D-03-0.591171556152D-11 0.000000000000D+00
+ 0.227000000000D+03 0.380937500000D+02 0.550380068396D-08 0.135258174169D+01
+ 0.178255140781D-05 0.221479071770D-01 0.874511897564D-05 0.515198130417D+04
+ 0.302400000000D+06-0.458210706711D-06 0.131686935859D+01-0.119209289551D-06
+ 0.932273750247D+00 0.204406250000D+03-0.197815177762D+01-0.874214985992D-08
+ 0.497877881469D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.739000000000D+03
+ 0.300858000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 12 0 0.0 0.105013139546D-03 0.318323145621D-11 0.000000000000D+00
+ 0.196000000000D+03-0.387812500000D+02 0.544665544649D-08-0.112975222498D+01
+ -0.205636024475D-05 0.303704792168D-02 0.603310763836D-05 0.515368138885D+04
+ 0.302400000000D+06 0.102445483208D-06 0.239522265174D+01-0.167638063431D-07
+ 0.934138586050D+00 0.249093750000D+03 0.550532240952D+00-0.851999774925D-08
+ -0.575023952056D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.419095158577D-08 0.452000000000D+03
+ 0.300300000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 12 0 0.0 0.247682444751D-03-0.319460013998D-10 0.000000000000D+00
+ 0.205000000000D+03 0.653125000000D+02 0.378444335154D-08 0.248336545558D+01
+ 0.348128378391D-05 0.589599087834D-02 0.140219926834D-04 0.515362029648D+04
+ 0.302400000000D+06-0.353902578354D-07-0.276496249814D+01 0.186264514923D-07
+ 0.971744862903D+00 0.114437500000D+03-0.363907287114D+00-0.757924427738D-08
+ -0.255724937684D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.205000000000D+03
+ 0.297588000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 12 0 0.0 0.335520599037D-03 0.193267624127D-11 0.000000000000D+00
+ 0.680000000000D+02 0.438437500000D+02 0.527486257634D-08 0.218370494426D+01
+ 0.215508043766D-05 0.357716681901D-02 0.770017504692D-05 0.515378838921D+04
+ 0.302400000000D+06-0.124797224999D-06 0.133844448027D+01-0.372529029846D-07
+ 0.935359439464D+00 0.216812500000D+03 0.553750429585D+00-0.838784938760D-08
+ 0.496092092798D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.465661287308D-08 0.680000000000D+02
+ 0.295218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 12 0 0.0-0.245776027441D-05-0.113686837722D-12 0.000000000000D+00
+ 0.221000000000D+03-0.394687500000D+02 0.520557397591D-08-0.292803744209D+01
+ -0.215135514736D-05 0.653645023704D-02 0.621564686298D-05 0.515356648827D+04
+ 0.302400000000D+06 0.279396772385D-07 0.244200554745D+01-0.931322574616D-07
+ 0.941738925309D+00 0.248718750000D+03-0.222606157505D+01-0.832534678411D-08
+ -0.510378402166D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.221000000000D+03
+ 0.296508000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 12 0 0.0 0.696674454957D-03 0.818545231596D-11 0.000000000000D+00
+ 0.130000000000D+02-0.329062500000D+02 0.539165315542D-08-0.961244199314D+00
+ -0.158324837685D-05 0.118398476625D-01 0.597536563873D-05 0.515359267807D+04
+ 0.302400000000D+06 0.130385160446D-07 0.241230486088D+01 0.275671482086D-06
+ 0.943450584812D+00 0.257093750000D+03-0.196701507382D+01-0.864214569434D-08
+ -0.547879964257D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.232830643654D-08 0.130000000000D+02
+ 0.295200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 12 0 0.0 0.710472464562D-03 0.238742359215D-11 0.000000000000D+00
+ 0.970000000000D+02-0.988437500000D+02 0.420410368922D-08-0.275364735052D+01
+ -0.493600964546D-05 0.827486277558D-02 0.134930014610D-04 0.515371057129D+04
+ 0.302400000000D+06 0.260770320892D-07 0.382652244556D+00 0.111758708954D-06
+ 0.959949752343D+00 0.120093750000D+03 0.210407704924D+01-0.767567686561D-08
+ 0.166792661870D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.372529029846D-08 0.353000000000D+03
+ 0.299058000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 12 0 0.0 0.180881470442D-04 0.795807864051D-12 0.000000000000D+00
+ 0.229000000000D+03 0.110187500000D+03 0.431339395589D-08 0.258929495578D+00
+ 0.588037073612D-05 0.480698724277D-02 0.429712235928D-05 0.515372902679D+04
+ 0.302400000000D+06 0.204890966415D-07-0.173952856660D+01-0.167638063431D-07
+ 0.979471955236D+00 0.304437500000D+03 0.601620349502D-01-0.825498671047D-08
+ 0.461447792581D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.186264514923D-08 0.229000000000D+03
+ 0.296880000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 12 0 0.0 0.777980312705D-05 0.341060513165D-12 0.000000000000D+00
+ 0.170000000000D+02 0.650625000000D+02 0.495556356197D-08-0.102718669758D+01
+ 0.341422855854D-05 0.663668848574D-03 0.136159360409D-04 0.515369741631D+04
+ 0.302400000000D+06 0.484287738800D-07-0.284900232587D+01 0.260770320892D-07
+ 0.919411594555D+00 0.976250000000D+02-0.146671767104D+01-0.819105547605D-08
+ -0.254653464482D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.273000000000D+03
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 12 0 0.0-0.192271545529D-05-0.454747350887D-12 0.000000000000D+00
+ 0.180000000000D+02-0.112062500000D+03 0.475126933801D-08 0.892776912176D+00
+ -0.588782131672D-05 0.187424244359D-02 0.248849391937D-05 0.515361150169D+04
+ 0.302400000000D+06 0.204890966415D-07-0.694783188920D+00 0.372529029846D-07
+ 0.971804923004D+00 0.340687500000D+03 0.628066748473D-01-0.851749764511D-08
+ -0.354300472323D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.274000000000D+03
+ 0.298068000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 12 0 0.0-0.105832237750D-03 0.306954461848D-11 0.000000000000D+00
+ 0.230000000000D+02-0.110781250000D+03 0.478734226916D-08-0.233450053128D+01
+ -0.570900738239D-05 0.220844638534D-02 0.297278165817D-05 0.515370992279D+04
+ 0.302400000000D+06-0.949949026108D-07-0.699632801852D+00 0.111758708954D-07
+ 0.966437893503D+00 0.325375000000D+03-0.649100387122D+00-0.839642117322D-08
+ -0.318941856637D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.230000000000D+02
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 12 0 0.0 0.134429428726D-03 0.443378667114D-11 0.000000000000D+00
+ 0.178000000000D+03 0.819375000000D+02 0.369515391799D-08-0.231021352960D+01
+ 0.432506203651D-05 0.811631861143D-02 0.124424695969D-04 0.515363529015D+04
+ 0.302400000000D+06 0.106170773506D-06-0.271844572917D+01 0.949949026108D-07
+ 0.978281350579D+00 0.145812500000D+03 0.179621107284D+01-0.745959643642D-08
+ -0.764317551180D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.178000000000D+03
+ 0.295218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 12 0 0.0-0.937283039093D-05 0.111413100967D-09 0.000000000000D+00
+ 0.215000000000D+03 0.856562500000D+02 0.360515016898D-08 0.281198024926D+01
+ 0.451877713203D-05 0.136050420115D-01 0.127032399178D-04 0.515367736244D+04
+ 0.302400000000D+06-0.236555933952D-06-0.267810165672D+01 0.111758708954D-07
+ 0.980169445317D+00 0.142718750000D+03-0.307768397572D+01-0.742102340113D-08
+ -0.332156692802D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.471000000000D+03
+ 0.295200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 12 0 0.0-0.751516781747D-04 0.341060513165D-12 0.000000000000D+00
+ 0.160000000000D+02 0.110500000000D+03 0.473412576677D-08 0.198908079825D+01
+ 0.564754009247D-05 0.240377150476D-02 0.303983688355D-05 0.515367430115D+04
+ 0.302400000000D+06 0.353902578354D-07-0.169377940245D+01 0.111758708954D-06
+ 0.962342267087D+00 0.318531250000D+03 0.298938582168D+01-0.848071039849D-08
+ 0.403588239642D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.272000000000D+03
+ 0.295200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 12 0 0.0-0.134054571390D-03-0.295585778076D-11 0.000000000000D+00
+ 0.160000000000D+02 0.135968750000D+03 0.470591030577D-08 0.537245673707D+00
+ 0.704266130924D-05 0.184891023673D-02 0.338256359100D-05 0.515367274284D+04
+ 0.302400000000D+06-0.372529029846D-08-0.174591186773D+01-0.242143869400D-07
+ 0.963003514836D+00 0.311562500000D+03 0.202075620772D+01-0.853499837408D-08
+ 0.548951437459D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.528000000000D+03
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 12 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.163000000000D+03 0.113031250000D+03 0.440089760076D-08 0.517329578659D+00
+ 0.594742596149D-05 0.180452492787D-01 0.372156500816D-05 0.515362723350D+04
+ 0.302400000000D+06-0.167638063431D-06-0.173362168375D+01 0.296160578728D-06
+ 0.979145810816D+00 0.319375000000D+03-0.235816565381D+01-0.846785272006D-08
+ 0.313227332890D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.419000000000D+03
+ 0.295218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 12 0 0.0 0.591962598264D-03 0.144382283907D-10 0.000000000000D+00
+ 0.173000000000D+03 0.481250000000D+02 0.559844748352D-08-0.116173287084D+00
+ 0.268779695034D-05 0.150280006928D-01 0.731833279133D-05 0.515366374397D+04
+ 0.302400000000D+06 0.651925802231D-07 0.133042464194D+01 0.238418579102D-06
+ 0.931757286037D+00 0.220812500000D+03 0.759818626776D+00-0.881572435316D-08
+ 0.531450708484D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.429000000000D+03
+ 0.296538000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 12 0 0.0 0.559911131859D-05 0.795807864051D-12 0.000000000000D+00
+ 0.180000000000D+03 0.101000000000D+03 0.430946522081D-08 0.114293372398D+01
+ 0.518187880516D-05 0.160052749561D-01 0.377371907234D-05 0.515343015862D+04
+ 0.302400000000D+06-0.372529029846D-06-0.169084574260D+01-0.689178705216D-07
+ 0.982457033725D+00 0.316562500000D+03-0.177189233900D+01-0.844713757147D-08
+ 0.421446126351D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.180000000000D+03
+ 0.295200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 12 0 0.0 0.579375773668D-05 0.261479726760D-11 0.000000000000D+00
+ 0.550000000000D+02 0.725000000000D+02 0.350157442606D-08 0.310894529306D+01
+ 0.381283462048D-05 0.933700450696D-02 0.136140733957D-04 0.515365933609D+04
+ 0.302400000000D+06 0.223517417908D-07-0.274691706424D+01-0.223517417908D-07
+ 0.981835643178D+00 0.125281250000D+03-0.157369450064D+01-0.730280419111D-08
+ -0.154649298907D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.931322574616D-09 0.311000000000D+03
+ 0.301620000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 12 0 0.0 0.223405659199D-04 0.454747350887D-12 0.000000000000D+00
+ 0.168000000000D+03-0.970000000000D+02 0.472912555849D-08-0.240667789570D+01
+ -0.488013029099D-05 0.947010423988D-02 0.126324594021D-04 0.515360701561D+04
+ 0.302400000000D+06 0.130385160446D-06 0.283256503685D+00 0.223517417908D-07
+ 0.939055951107D+00 0.121906250000D+03-0.189922247719D+01-0.790711507737D-08
+ 0.111076055335D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.680000000000D+03
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 12 0 0.0-0.483067706227D-04-0.110276232590D-10 0.000000000000D+00
+ 0.161000000000D+03-0.106937500000D+03 0.463233581252D-08-0.145181453690D+01
+ -0.569410622120D-05 0.133287250064D-01 0.238977372646D-05 0.515358010292D+04
+ 0.302400000000D+06 0.135973095894D-06-0.690202135564D+00-0.182539224625D-06
+ 0.970423442649D+00 0.333812500000D+03 0.312799774418D+00-0.837106297409D-08
+ -0.106433004790D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.161000000000D+03
+ 0.295200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 12 0 0.0-0.597899779677D-04-0.295585778076D-11 0.000000000000D+00
+ 0.220000000000D+02 0.384687500000D+02 0.490520432145D-08 0.783006014383D+00
+ 0.221095979214D-05 0.584003410768D-02 0.751204788685D-05 0.515366739273D+04
+ 0.302400000000D+06 0.316649675369D-07 0.140021999683D+01 0.353902578354D-07
+ 0.958907809422D+00 0.233281250000D+03-0.249630498501D+01-0.829605984991D-08
+ 0.452518849226D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.278000000000D+03
+ 0.295230000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 12 0 0.0 0.544147100300D-03-0.133013600134D-10 0.000000000000D+00
+ 0.320000000000D+02-0.103468750000D+03 0.486198823561D-08-0.976342852462D+00
+ -0.519491732121D-05 0.831848860253D-02 0.290572643280D-05 0.515180671692D+04
+ 0.302400000000D+06-0.100582838059D-06-0.720037518853D+00 0.139698386192D-06
+ 0.967312213808D+00 0.327531250000D+03-0.190634737246D+01-0.854785605252D-08
+ -0.305727020472D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.320000000000D+02
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 12 0 0.0 0.407731626183D-03 0.452473614132D-10 0.000000000000D+00
+ 0.560000000000D+02 0.443437500000D+02 0.523450375238D-08 0.871240057503D+00
+ 0.229291617870D-05 0.621814222541D-02 0.761635601521D-05 0.515359118652D+04
+ 0.302400000000D+06-0.130385160446D-06 0.137384845099D+01 0.558793544769D-08
+ 0.942435245057D+00 0.224187500000D+03 0.134060080396D+01-0.848035324075D-08
+ 0.450375902821D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.560000000000D+02
+ 0.295218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 12 0 0.0 0.902856700122D-04 0.250111042988D-11 0.000000000000D+00
+ 0.234000000000D+03-0.393437500000D+02 0.516271504780D-08-0.203321518465D+01
+ -0.210292637348D-05 0.108643326676D-01 0.600144267082D-05 0.515372203255D+04
+ 0.302400000000D+06 0.949949026108D-07 0.241209977585D+01-0.987201929092D-07
+ 0.942900254049D+00 0.252000000000D+03 0.881109708933D+00-0.823570019283D-08
+ -0.466090843126D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.490000000000D+03
+ 0.295218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 13 59 44.0-0.144768040627D-03-0.591171556152D-11 0.000000000000D+00
+ 0.140000000000D+02 0.449062500000D+02 0.532450750140D-08 0.240147473497D+01
+ 0.197999179363D-05 0.221475017024D-01 0.787526369095D-05 0.515198129654D+04
+ 0.309584000000D+06 0.154599547386D-06 0.131680860067D+01-0.266358256340D-06
+ 0.932280456263D+00 0.205312500000D+03-0.197815748154D+01-0.810283751571D-08
+ 0.545737017852D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.140000000000D+02
+ 0.308388000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 13 59 44.0 0.335544347763D-03 0.204636307899D-11 0.000000000000D+00
+ 0.880000000000D+02 0.409062500000D+02 0.534486549224D-08-0.305155815915D+01
+ 0.205449759960D-05 0.357835798059D-02 0.797770917416D-05 0.515378593636D+04
+ 0.309584000000D+06-0.726431608200D-07 0.133838429875D+01-0.113621354103D-06
+ 0.935363136258D+00 0.207968750000D+03 0.553611979018D+00-0.836677708128D-08
+ 0.515021452711D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.465661287308D-08 0.880000000000D+02
+ 0.308940000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 13 59 44.0-0.244658440352D-05-0.113686837722D-12 0.000000000000D+00
+ 0.500000000000D+01-0.371250000000D+02 0.523200364824D-08-0.188025154864D+01
+ -0.202469527721D-05 0.653730321210D-02 0.569596886635D-05 0.515356418610D+04
+ 0.309584000000D+06 0.102445483208D-06 0.244194572873D+01-0.856816768646D-07
+ 0.941735256311D+00 0.257125000000D+03-0.222592919267D+01-0.834713340590D-08
+ -0.517878714584D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.500000000000D+01
+ 0.306888000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 13 59 44.0 0.134454574436D-03 0.443378667114D-11 0.000000000000D+00
+ 0.201000000000D+03 0.729687500000D+02 0.371301180470D-08-0.126243034108D+01
+ 0.388175249100D-05 0.811585260090D-02 0.130776315928D-04 0.515363422394D+04
+ 0.309584000000D+06-0.100582838059D-06-0.271850001075D+01 0.156462192535D-06
+ 0.978279851088D+00 0.142031250000D+03 0.179629246521D+01-0.766031908304D-08
+ -0.896465912832D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.201000000000D+03
+ 0.302718000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 13 59 44.0 0.223452225328D-04 0.454747350887D-12 0.000000000000D+00
+ 0.196000000000D+03-0.853125000000D+02 0.488306054193D-08-0.135887299602D+01
+ -0.434741377831D-05 0.947135267779D-02 0.121444463730D-04 0.515360481834D+04
+ 0.309584000000D+06 0.949949026108D-07 0.283199853645D+00 0.245869159699D-06
+ 0.939055804815D+00 0.133531250000D+03-0.189913602458D+01-0.809105131048D-08
+ 0.335728270144D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.196000000000D+03
+ 0.303018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 14 0 0.0 0.213635154069D-03 0.170530256582D-11 0.000000000000D+00
+ 0.129000000000D+03-0.112750000000D+03 0.466805158594D-08-0.206269374466D+01
+ -0.574067234993D-05 0.531456631143D-02 0.246427953243D-05 0.515369497490D+04
+ 0.309600000000D+06-0.130385160446D-07-0.674225907118D+00 0.931322574616D-07
+ 0.967609401227D+00 0.330437500000D+03-0.171520402936D+01-0.839892127736D-08
+ -0.211437378644D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.129000000000D+03
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 14 0 0.0-0.144767109305D-03-0.591171556152D-11 0.000000000000D+00
+ 0.228000000000D+03 0.449062500000D+02 0.532450750140D-08 0.240381077815D+01
+ 0.197999179363D-05 0.221474954160D-01 0.787526369095D-05 0.515198130798D+04
+ 0.309600000000D+06 0.154599547386D-06 0.131680845877D+01-0.266358256340D-06
+ 0.932280437245D+00 0.205312500000D+03-0.197815749470D+01-0.810283751571D-08
+ 0.545737017852D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.740000000000D+03
+ 0.303738000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 14 0 0.0 0.105035956949D-03 0.318323145621D-11 0.000000000000D+00
+ 0.197000000000D+03-0.386562500000D+02 0.554451666566D-08-0.793439031178D-01
+ -0.204518437386D-05 0.303817517124D-02 0.531971454620D-05 0.515368388939D+04
+ 0.309600000000D+06-0.204890966415D-07 0.239516087563D+01 0.335276126862D-07
+ 0.934133792068D+00 0.258468750000D+03 0.550306435158D+00-0.865500337277D-08
+ -0.587524472753D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.453000000000D+03
+ 0.307428000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 14 0 0.0 0.247451942414D-03-0.319460013998D-10 0.000000000000D+00
+ 0.200000000000D+03 0.755937500000D+02 0.382694512191D-08-0.274954955314D+01
+ 0.398792326450D-05 0.589739240240D-02 0.142622739077D-04 0.515361762810D+04
+ 0.309600000000D+06-0.242143869400D-07-0.276501706791D+01 0.242143869400D-07
+ 0.971742928925D+00 0.110812500000D+03-0.363968115247D+00-0.758995900940D-08
+ -0.264653881039D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.456000000000D+03
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 14 0 0.0 0.335534568876D-03 0.193267624127D-11 0.000000000000D+00
+ 0.630000000000D+02 0.409062500000D+02 0.534486549224D-08-0.304922438496D+01
+ 0.205449759960D-05 0.357836065814D-02 0.797770917416D-05 0.515378596497D+04
+ 0.309600000000D+06-0.726431608200D-07 0.133838418171D+01-0.113621354103D-06
+ 0.935363169905D+00 0.207968750000D+03 0.553611608900D+00-0.836641992354D-08
+ 0.515021452711D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.465661287308D-08 0.319000000000D+03
+ 0.302400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 14 0 0.0-0.245869159699D-05-0.113686837722D-12 0.000000000000D+00
+ 0.222000000000D+03-0.371250000000D+02 0.523200364824D-08-0.187791753014D+01
+ -0.202469527721D-05 0.653730565682D-02 0.569596886635D-05 0.515356420708D+04
+ 0.309600000000D+06 0.102445483208D-06 0.244194559268D+01-0.856816768646D-07
+ 0.941735291421D+00 0.257125000000D+03-0.222592943844D+01-0.834713340590D-08
+ -0.517878714584D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.512227416039D-08 0.222000000000D+03
+ 0.302418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 14 0 0.0 0.696733593941D-03 0.818545231596D-11 0.000000000000D+00
+ 0.800000000000D+01-0.327187500000D+02 0.539058168222D-08 0.889922867260D-01
+ -0.164844095707D-05 0.118398733903D-01 0.602938234806D-05 0.515359272194D+04
+ 0.309600000000D+06-0.152736902237D-06 0.241224237818D+01 0.173225998879D-06
+ 0.943446494493D+00 0.256906250000D+03-0.196701479002D+01-0.867571852136D-08
+ -0.585024368613D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.264000000000D+03
+ 0.309558000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 14 0 0.0 0.710489694029D-03 0.238742359215D-11 0.000000000000D+00
+ 0.980000000000D+02-0.905312500000D+02 0.435732435719D-08-0.170367304135D+01
+ -0.458583235741D-05 0.827641109936D-02 0.143107026815D-04 0.515370656586D+04
+ 0.309600000000D+06-0.176951289177D-06 0.382596470804D+00 0.126659870148D-06
+ 0.959950052241D+00 0.106031250000D+03 0.210426094243D+01-0.786711341114D-08
+ 0.161435295857D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.372529029846D-08 0.354000000000D+03
+ 0.307458000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 14 0 0.0-0.283238478005D-04-0.170530256582D-11 0.000000000000D+00
+ 0.201000000000D+03-0.982812500000D+02 0.460126308965D-08-0.222897476575D+01
+ -0.514835119247D-05 0.127164251171D-01 0.123661011457D-04 0.515370433426D+04
+ 0.309600000000D+06 0.160187482834D-06 0.326894046529D+00-0.119209289551D-06
+ 0.946208125412D+00 0.130500000000D+03 0.798451794585D+00-0.785318425950D-08
+ 0.237152735506D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.201000000000D+03
+ 0.302400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 14 0 0.0 0.180937349796D-04 0.795807864051D-12 0.000000000000D+00
+ 0.230000000000D+03 0.130562500000D+03 0.419374611493D-08 0.130861590101D+01
+ 0.679492950440D-05 0.480892858468D-02 0.456161797047D-05 0.515373457718D+04
+ 0.309600000000D+06 0.242143869400D-07-0.173958796692D+01-0.745058059692D-08
+ 0.979475280448D+00 0.299187500000D+03 0.606193094947D-01-0.825105797540D-08
+ 0.460733477113D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.230000000000D+03
+ 0.309438000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 14 0 0.0 0.778259709477D-05 0.341060513165D-12 0.000000000000D+00
+ 0.180000000000D+02 0.518437500000D+02 0.499377943953D-08 0.210561251636D-01
+ 0.264495611191D-05 0.660804682411D-03 0.126287341118D-04 0.515369151688D+04
+ 0.309600000000D+06-0.651925802231D-07-0.284906054269D+01-0.316649675369D-07
+ 0.919409562562D+00 0.116062500000D+03-0.146478971910D+01-0.814212486647D-08
+ -0.353586156854D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.274000000000D+03
+ 0.302418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 14 0 0.0-0.192550942302D-05-0.454747350887D-12 0.000000000000D+00
+ 0.190000000000D+02-0.111843750000D+03 0.464340770228D-08 0.194258324178D+01
+ -0.591389834881D-05 0.187430973165D-02 0.245124101639D-05 0.515361295509D+04
+ 0.309600000000D+06-0.558793544769D-08-0.694844909434D+00 0.141561031342D-06
+ 0.971802588187D+00 0.334937500000D+03 0.632204275789D-01-0.851106880589D-08
+ -0.273939982128D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.190000000000D+02
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 14 0 0.0-0.105809886009D-03 0.306954461848D-11 0.000000000000D+00
+ 0.260000000000D+02-0.962187500000D+02 0.475269796895D-08-0.128341821820D+01
+ -0.513717532158D-05 0.220785557758D-02 0.274926424027D-05 0.515371392059D+04
+ 0.309600000000D+06 0.204890966415D-07-0.699694291224D+00-0.121071934700D-06
+ 0.966435443115D+00 0.329843750000D+03-0.650023106609D+00-0.851964059151D-08
+ -0.223937899341D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.794000000000D+03
+ 0.302418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 14 0 0.0 0.134461093694D-03 0.443378667114D-11 0.000000000000D+00
+ 0.179000000000D+03 0.729687500000D+02 0.371301180470D-08-0.126009548579D+01
+ 0.388175249100D-05 0.811585132033D-02 0.130776315928D-04 0.515363428116D+04
+ 0.309600000000D+06-0.100582838059D-06-0.271850015411D+01 0.156462192535D-06
+ 0.978279814515D+00 0.142031250000D+03 0.179629106959D+01-0.766031908304D-08
+ -0.896465912832D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.179000000000D+03
+ 0.302418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 14 0 0.0-0.857142731547D-05 0.111299414130D-09 0.000000000000D+00
+ 0.210000000000D+03 0.776250000000D+02 0.356979155329D-08-0.242106751196D+01
+ 0.390969216824D-05 0.136066952255D-01 0.134911388159D-04 0.515367417526D+04
+ 0.309600000000D+06-0.165775418282D-06-0.267815511321D+01-0.987201929092D-07
+ 0.980169290248D+00 0.133156250000D+03-0.307764875597D+01-0.742566645167D-08
+ -0.250010413937D-11 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.722000000000D+03
+ 0.302400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 14 0 0.0-0.751498155296D-04 0.341060513165D-12 0.000000000000D+00
+ 0.170000000000D+02 0.114781250000D+03 0.460126308965D-08 0.303923299241D+01
+ 0.619515776634D-05 0.240459281486D-02 0.344961881638D-05 0.515367312241D+04
+ 0.309600000000D+06-0.100582838059D-06-0.169384071042D+01-0.558793544769D-08
+ 0.962346007768D+00 0.310437500000D+03 0.298941529070D+01-0.835820529566D-08
+ 0.508235455761D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.273000000000D+03
+ 0.302400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 14 0 0.0-0.134075991809D-03-0.295585778076D-11 0.000000000000D+00
+ 0.170000000000D+02 0.131375000000D+03 0.455018953366D-08 0.158755861038D+01
+ 0.688247382641D-05 0.184913608246D-02 0.372901558876D-05 0.515367253685D+04
+ 0.309600000000D+06 0.149011611939D-06-0.174597283338D+01-0.558793544769D-08
+ 0.963008153749D+00 0.310500000000D+03 0.202062520194D+01-0.838392065252D-08
+ 0.546094175586D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.651925802231D-08 0.529000000000D+03
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 14 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.164000000000D+03 0.110937500000D+03 0.428446417942D-08 0.156744738254D+01
+ 0.574998557568D-05 0.180466688471D-01 0.448524951935D-05 0.515363124275D+04
+ 0.309600000000D+06-0.413507223129D-06-0.173368287908D+01 0.149011611939D-06
+ 0.979148135393D+00 0.303343750000D+03-0.235807699512D+01-0.836892002768D-08
+ 0.371086885830D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.420000000000D+03
+ 0.302418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 14 0 0.0 0.592065975070D-03 0.143245415529D-10 0.000000000000D+00
+ 0.174000000000D+03 0.525000000000D+02 0.558058959681D-08 0.933968687133D+00
+ 0.314041972160D-05 0.150291906903D-01 0.805780291557D-05 0.515366646385D+04
+ 0.309600000000D+06-0.175088644028D-06 0.133036260836D+01 0.162050127983D-06
+ 0.931760690247D+00 0.211500000000D+03 0.759870171231D+00-0.871250576798D-08
+ 0.348585948575D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.430000000000D+03
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 14 0 0.0 0.560469925404D-05 0.795807864051D-12 0.000000000000D+00
+ 0.181000000000D+03 0.110343750000D+03 0.408445584827D-08 0.219333077698D+01
+ 0.559166073799D-05 0.160048720427D-01 0.394694507122D-05 0.515342819405D+04
+ 0.309600000000D+06 0.122934579849D-06-0.169090493520D+01-0.245869159699D-06
+ 0.982462730328D+00 0.310406250000D+03-0.177196048172D+01-0.792283001767D-08
+ 0.474662628747D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.181000000000D+03
+ 0.302400000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 14 0 0.0 0.581284984946D-05 0.261479726760D-11 0.000000000000D+00
+ 0.560000000000D+02 0.769687500000D+02 0.358229207399D-08-0.212410385647D+01
+ 0.400282442570D-05 0.933689321391D-02 0.139512121677D-04 0.515365916252D+04
+ 0.309600000000D+06 0.208616256714D-06-0.274696916460D+01 0.409781932831D-07
+ 0.981833896454D+00 0.120531250000D+03-0.157364893220D+01-0.740387982989D-08
+ -0.272511351192D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.931322574616D-09 0.824000000000D+03
+ 0.302808000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 14 0 0.0 0.223433598876D-04 0.454747350887D-12 0.000000000000D+00
+ 0.169000000000D+03-0.853125000000D+02 0.488306054193D-08-0.135653804125D+01
+ -0.434741377831D-05 0.947136967443D-02 0.121444463730D-04 0.515360482216D+04
+ 0.309600000000D+06 0.949949026108D-07 0.283199742463D+00 0.245869159699D-06
+ 0.939055823833D+00 0.133531250000D+03-0.189913711738D+01-0.809105131048D-08
+ 0.335728270144D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.745058059692D-08 0.681000000000D+03
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 14 0 0.0-0.483868643642D-04-0.111413100967D-10 0.000000000000D+00
+ 0.162000000000D+03-0.981562500000D+02 0.476591280511D-08-0.401655876637D+00
+ -0.501982867718D-05 0.133284556214D-01 0.227428972721D-05 0.515357810783D+04
+ 0.309600000000D+06 0.210478901863D-06-0.690262202980D+00 0.152736902237D-06
+ 0.970421003964D+00 0.337781250000D+03 0.312880998555D+00-0.865928926558D-08
+ -0.266796827445D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.605359673500D-08 0.162000000000D+03
+ 0.304770000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 14 0 0.0 0.950507819653D-05 0.113686837722D-11 0.000000000000D+00
+ 0.600000000000D+01-0.106593750000D+03 0.456090426568D-08-0.285977772255D+01
+ -0.562705099583D-05 0.157693329966D-01 0.140368938446D-04 0.515365744019D+04
+ 0.309600000000D+06-0.372529029846D-08 0.307415779455D+00-0.299885869026D-06
+ 0.943571856332D+00 0.974062500000D+02-0.249308937989D+01-0.782389732530D-08
+ 0.120362156424D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.600000000000D+01
+ 0.302418000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 14 0 0.0-0.598113983870D-04-0.295585778076D-11 0.000000000000D+00
+ 0.230000000000D+02 0.429687500000D+02 0.494270588354D-08 0.183323438562D+01
+ 0.223517417908D-05 0.584033073392D-02 0.785663723946D-05 0.515366710091D+04
+ 0.309600000000D+06-0.113621354103D-06 0.140015982993D+01 0.540167093277D-07
+ 0.958911588139D+00 0.230406250000D+03-0.249634565706D+01-0.823105714228D-08
+ 0.558951854017D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.279000000000D+03
+ 0.303288000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 14 0 0.0 0.544051639736D-03-0.133013600134D-10 0.000000000000D+00
+ 0.330000000000D+02-0.885937500000D+02 0.478055627222D-08 0.751177010223D-01
+ -0.475719571114D-05 0.832027744036D-02 0.273995101452D-05 0.515181073570D+04
+ 0.309600000000D+06-0.577419996262D-07-0.720100049823D+00 0.372529029846D-08
+ 0.967309899471D+00 0.331250000000D+03-0.190648394464D+01-0.865786063465D-08
+ -0.237152735506D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.330000000000D+02
+ 0.302418000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 14 0 0.0 0.408057123423D-03 0.452473614132D-10 0.000000000000D+00
+ 0.510000000000D+02 0.435000000000D+02 0.519914513669D-08 0.192155154881D+01
+ 0.206567347050D-05 0.621835561469D-02 0.768154859543D-05 0.515359038734D+04
+ 0.309600000000D+06-0.167638063431D-07 0.137378757165D+01-0.175088644028D-06
+ 0.942439524092D+00 0.219000000000D+03 0.134052585721D+01-0.828391648694D-08
+ 0.508592613495D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.838190317154D-08 0.307000000000D+03
+ 0.302550000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 14 0 0.0 0.903033651412D-04 0.250111042988D-11 0.000000000000D+00
+ 0.235000000000D+03-0.373750000000D+02 0.531307845390D-08-0.983074920582D+00
+ -0.189058482647D-05 0.108645022847D-01 0.588037073612D-05 0.515372171402D+04
+ 0.309600000000D+06 0.143423676491D-06 0.241204073102D+01 0.242143869400D-06
+ 0.942895265498D+00 0.254343750000D+03 0.881125506986D+00-0.852856953487D-08
+ -0.618954353362D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.491000000000D+03
+ 0.307458000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 15 59 44.0-0.144810415804D-03-0.591171556152D-11 0.000000000000D+00
+ 0.150000000000D+02 0.544687500000D+02 0.541486840815D-08-0.283051683597D+01
+ 0.283494591713D-05 0.221464638598D-01 0.783987343311D-05 0.515198340988D+04
+ 0.316784000000D+06 0.324100255966D-06 0.131674959387D+01-0.150874257088D-06
+ 0.932284464659D+00 0.208062500000D+03-0.197812974900D+01-0.814962517889D-08
+ 0.658956019592D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.150000000000D+02
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 15 59 44.0 0.335558783263D-03 0.204636307899D-11 0.000000000000D+00
+ 0.890000000000D+02 0.414062500000D+02 0.546915638375D-08-0.200137020688D+01
+ 0.230036675930D-05 0.357817334589D-02 0.834651291370D-05 0.515378648758D+04
+ 0.316784000000D+06 0.134110450745D-06 0.133832276695D+01-0.372529029846D-07
+ 0.935367185615D+00 0.205437500000D+03 0.553543235035D+00-0.845392356842D-08
+ 0.679671168175D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.465661287308D-08 0.890000000000D+02
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 15 59 44.0-0.244751572609D-05-0.113686837722D-12 0.000000000000D+00
+ 0.600000000000D+01-0.320000000000D+02 0.539272462863D-08-0.830115104255D+00
+ -0.174343585968D-05 0.653723638970D-02 0.580400228500D-05 0.515356273079D+04
+ 0.316784000000D+06 0.260770320892D-07 0.244188550624D+01 0.160187482834D-06
+ 0.941730220947D+00 0.254937500000D+03-0.222581195734D+01-0.858678624554D-08
+ -0.605382359462D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.512227416039D-08 0.600000000000D+01
+ 0.316080000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 15 59 44.0-0.776257365942D-05 0.111299414130D-09 0.000000000000D+00
+ 0.237000000000D+03 0.737812500000D+02 0.356121976767D-08-0.137323302037D+01
+ 0.360794365406D-05 0.136070091976D-01 0.134799629450D-04 0.515367381859D+04
+ 0.316784000000D+06-0.122934579849D-06-0.267820823469D+01-0.281259417534D-06
+ 0.980169181992D+00 0.132125000000D+03-0.307764307692D+01-0.744852454666D-08
+ -0.782175437889D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.237000000000D+03
+ 0.311148000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 15 59 44.0 0.592177733779D-03 0.144382283907D-10 0.000000000000D+00
+ 0.197000000000D+03 0.406875000000D+02 0.550844373451D-08 0.198170673877D+01
+ 0.194832682610D-05 0.150296128122D-01 0.850483775139D-05 0.515366995239D+04
+ 0.316784000000D+06-0.402331352234D-06 0.133029924353D+01-0.188127160072D-06
+ 0.931764692791D+00 0.204875000000D+03 0.759990727384D+00-0.843499420851D-08
+ 0.552523014801D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.197000000000D+03
+ 0.313998000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 15 59 44.0 0.583520159125D-05 0.261479726760D-11 0.000000000000D+00
+ 0.760000000000D+02 0.807812500000D+02 0.363622289185D-08-0.107610911684D+01
+ 0.422261655331D-05 0.933715829160D-02 0.137425959110D-04 0.515366168213D+04
+ 0.316784000000D+06-0.875443220139D-07-0.274702331451D+01 0.968575477600D-07
+ 0.981830506873D+00 0.130468750000D+03-0.157379484950D+01-0.770282085341D-08
+ -0.285369029623D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.931322574616D-09 0.760000000000D+02
+ 0.316020000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 15 59 44.0 0.223480165005D-04 0.454747350887D-12 0.000000000000D+00
+ 0.197000000000D+03-0.905625000000D+02 0.493199115151D-08-0.308568756396D+00
+ -0.480376183987D-05 0.947108934633D-02 0.119060277939D-04 0.515360553932D+04
+ 0.316784000000D+06-0.113621354103D-06 0.283140135866D+00 0.707805156708D-07
+ 0.939055270850D+00 0.142906250000D+03-0.189921523721D+01-0.832356099544D-08
+ 0.807176479283D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.197000000000D+03
+ 0.309618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 15 59 44.0-0.598216429353D-04-0.295585778076D-11 0.000000000000D+00
+ 0.100000000000D+01 0.477500000000D+02 0.492877673191D-08 0.288117507189D+01
+ 0.239908695221D-05 0.584043934941D-02 0.779144465923D-05 0.515366629791D+04
+ 0.316784000000D+06-0.223517417908D-07 0.140010100892D+01-0.447034835815D-07
+ 0.958916270940D+00 0.228531250000D+03-0.249643145428D+01-0.810926635492D-08
+ 0.585381526347D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.257000000000D+03
+ 0.316278000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 16 0 0.0 0.213647261262D-03 0.170530256582D-11 0.000000000000D+00
+ 0.130000000000D+03-0.103281250000D+03 0.465840832712D-08-0.101270351455D+01
+ -0.520050525665D-05 0.531508494169D-02 0.300817191601D-05 0.515369319725D+04
+ 0.316800000000D+06-0.949949026108D-07-0.674286577257D+00 0.521540641785D-07
+ 0.967607581357D+00 0.325875000000D+03-0.171502409629D+01-0.847035282419D-08
+ -0.202508435289D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.130000000000D+03
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 16 0 0.0 0.105059240013D-03 0.318323145621D-11 0.000000000000D+00
+ 0.198000000000D+03-0.349687500000D+02 0.562559147132D-08 0.970839663323D+00
+ -0.159069895744D-05 0.303860765416D-02 0.537000596523D-05 0.515368462563D+04
+ 0.316800000000D+06 0.353902578354D-07 0.239509817496D+01 0.223517417908D-07
+ 0.934129602270D+00 0.259968750000D+03 0.550304902019D+00-0.868821904205D-08
+ -0.547165648788D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.454000000000D+03
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 16 0 0.0 0.247221440077D-03-0.320596882375D-10 0.000000000000D+00
+ 0.201000000000D+03 0.730937500000D+02 0.379194366396D-08-0.169937249375D+01
+ 0.366568565369D-05 0.589672452770D-02 0.139307230711D-04 0.515361808014D+04
+ 0.316800000000D+06-0.521540641785D-07-0.276507213068D+01-0.372529029846D-07
+ 0.971740870599D+00 0.120375000000D+03-0.363935985177D+00-0.764638993140D-08
+ -0.245010205659D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.457000000000D+03
+ 0.312948000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 16 0 0.0 0.696792267263D-03 0.818545231596D-11 0.000000000000D+00
+ 0.900000000000D+01-0.354687500000D+02 0.540522514932D-08 0.113919718251D+01
+ -0.191107392311D-05 0.118402476655D-01 0.632181763649D-05 0.515359372520D+04
+ 0.316800000000D+06-0.225380063057D-06 0.241218023342D+01 0.745058059692D-08
+ 0.943441865821D+00 0.254218750000D+03-0.196698330070D+01-0.864607442942D-08
+ -0.651812864908D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.265000000000D+03
+ 0.316548000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 16 0 0.0 0.710506457835D-03 0.238742359215D-11 0.000000000000D+00
+ 0.990000000000D+02-0.823437500000D+02 0.430696511667D-08-0.653395881795D+00
+ -0.454485416412D-05 0.827613740694D-02 0.138804316521D-04 0.515370806885D+04
+ 0.316800000000D+06-0.875443220139D-07 0.382538684077D+00-0.353902578354D-07
+ 0.959951219650D+00 0.113500000000D+03 0.210414237146D+01-0.798283251702D-08
+ 0.241795786051D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.372529029846D-08 0.355000000000D+03
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 16 0 0.0-0.283354893327D-04-0.170530256582D-11 0.000000000000D+00
+ 0.202000000000D+03-0.102468750000D+03 0.464983654150D-08-0.117875799399D+01
+ -0.524334609509D-05 0.127161000855D-01 0.126287341118D-04 0.515370570373D+04
+ 0.316800000000D+06 0.312924385071D-06 0.326837959713D+00 0.987201929092D-07
+ 0.946209023644D+00 0.125937500000D+03 0.798396698164D+00-0.801819113270D-08
+ 0.119647840956D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.558793544769D-08 0.202000000000D+03
+ 0.311970000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 16 0 0.0 0.180988572538D-04 0.795807864051D-12 0.000000000000D+00
+ 0.225000000000D+03 0.139937500000D+03 0.425624871842D-08 0.235905069438D+01
+ 0.721029937267D-05 0.480954139493D-02 0.430457293987D-05 0.515373173332D+04
+ 0.316800000000D+06-0.130385160446D-07-0.173964749745D+01 0.931322574616D-08
+ 0.979478735861D+00 0.305906250000D+03 0.603267785439D-01-0.823677166603D-08
+ 0.490734726785D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.481000000000D+03
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 16 0 0.0 0.778539106250D-05 0.341060513165D-12 0.000000000000D+00
+ 0.190000000000D+02 0.382187500000D+02 0.501235164171D-08 0.106927547539D+01
+ 0.186823308468D-05 0.661999685690D-03 0.124163925648D-04 0.515369470787D+04
+ 0.316800000000D+06 0.651925802231D-07-0.284911887948D+01 0.931322574616D-08
+ 0.919406404121D+00 0.119875000000D+03-0.146283631092D+01-0.822534261854D-08
+ -0.445018536808D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.190000000000D+02
+ 0.316698000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 16 0 0.0-0.192830339074D-05-0.454747350887D-12 0.000000000000D+00
+ 0.200000000000D+02-0.101156250000D+03 0.453804617070D-08 0.299332501680D+01
+ -0.511482357979D-05 0.187559379265D-02 0.276230275631D-05 0.515360991478D+04
+ 0.316800000000D+06-0.745058059692D-07-0.694906289088D+00-0.391155481339D-07
+ 0.971801583162D+00 0.330500000000D+03 0.626984525565D-01-0.835749098019D-08
+ -0.178936024832D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.200000000000D+02
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 16 0 0.0-0.105787534267D-03 0.306954461848D-11 0.000000000000D+00
+ 0.280000000000D+02-0.905000000000D+02 0.472305387701D-08-0.233706833433D+00
+ -0.473856925964D-05 0.220659782644D-02 0.194087624550D-05 0.515371090889D+04
+ 0.316800000000D+06 0.298023223877D-07-0.699756058552D+00-0.745058059692D-08
+ 0.966434228893D+00 0.339906250000D+03-0.649575626301D+00-0.852071206472D-08
+ -0.140720147273D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.280000000000D+02
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 16 0 0.0 0.134486705065D-03 0.443378667114D-11 0.000000000000D+00
+ 0.202000000000D+03 0.655625000000D+02 0.364943772802D-08-0.209988156404D+00
+ 0.333227217197D-05 0.811609940138D-02 0.133998692036D-04 0.515363362694D+04
+ 0.316800000000D+06-0.303611159325D-06-0.271855446641D+01-0.391155481339D-07
+ 0.978278987967D+00 0.134062500000D+03 0.179638379373D+01-0.761245994666D-08
+ -0.253224833545D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.202000000000D+03
+ 0.311028000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 16 0 0.0-0.777002424002D-05 0.111185727292D-09 0.000000000000D+00
+ 0.211000000000D+03 0.737812500000D+02 0.356121976767D-08-0.137089976844D+01
+ 0.360794365406D-05 0.136069948785D-01 0.134799629450D-04 0.515367383003D+04
+ 0.316800000000D+06-0.122934579849D-06-0.267820840732D+01-0.281259417534D-06
+ 0.980169193696D+00 0.132125000000D+03-0.307764250638D+01-0.744852454666D-08
+ -0.782175437889D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.232830643654D-08 0.723000000000D+03
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 16 0 0.0-0.751474872232D-04 0.341060513165D-12 0.000000000000D+00
+ 0.180000000000D+02 0.118468750000D+03 0.453197448921D-08-0.219370882720D+01
+ 0.619888305664D-05 0.240548339207D-02 0.418536365032D-05 0.515367169952D+04
+ 0.316800000000D+06-0.633299350739D-07-0.169390085830D+01-0.428408384323D-07
+ 0.962349727969D+00 0.302062500000D+03 0.298935446988D+01-0.835249077191D-08
+ 0.519307345521D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.180000000000D+02
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 16 0 0.0-0.134097877890D-03-0.295585778076D-11 0.000000000000D+00
+ 0.180000000000D+02 0.122187500000D+03 0.449304429619D-08 0.263831975297D+01
+ 0.636465847492D-05 0.184924481437D-02 0.388920307159D-05 0.515367070770D+04
+ 0.316800000000D+06-0.614672899246D-07-0.174603175972D+01 0.558793544769D-07
+ 0.963011935393D+00 0.307031250000D+03 0.202004627990D+01-0.825712965688D-08
+ 0.398230873629D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.530000000000D+03
+ 0.309618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 16 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.165000000000D+03 0.120625000000D+03 0.408338437506D-08 0.261775095069D+01
+ 0.612623989582D-05 0.180474641966D-01 0.494532287121D-05 0.515362764359D+04
+ 0.316800000000D+06-0.670552253723D-07-0.173374214189D+01-0.286847352982D-06
+ 0.979153654983D+00 0.292875000000D+03-0.235817423382D+01-0.786211320286D-08
+ 0.503592405217D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.421000000000D+03
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 16 0 0.0 0.592169351876D-03 0.143245415529D-10 0.000000000000D+00
+ 0.175000000000D+03 0.406875000000D+02 0.550844373451D-08 0.198403998046D+01
+ 0.194832682610D-05 0.150296184002D-01 0.850483775139D-05 0.515366995621D+04
+ 0.316800000000D+06-0.402331352234D-06 0.133029912503D+01-0.188127160072D-06
+ 0.931764681088D+00 0.204875000000D+03 0.759991221851D+00-0.843499420851D-08
+ 0.552523014801D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.419095158577D-08 0.431000000000D+03
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 16 0 0.0 0.561028718948D-05 0.795807864051D-12 0.000000000000D+00
+ 0.182000000000D+03 0.130062500000D+03 0.404016828923D-08-0.303961783496D+01
+ 0.666826963425D-05 0.160027142847D-01 0.404752790928D-05 0.515343290329D+04
+ 0.316800000000D+06 0.217929482460D-06-0.169096216016D+01-0.143423676491D-06
+ 0.982466201832D+00 0.310312500000D+03-0.177187142512D+01-0.793068748782D-08
+ 0.531807866218D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.279396772385D-08 0.182000000000D+03
+ 0.316680000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 16 0 0.0 0.583147630096D-05 0.261479726760D-11 0.000000000000D+00
+ 0.510000000000D+02 0.807812500000D+02 0.363658004959D-08-0.107377851864D+01
+ 0.422261655331D-05 0.933715282008D-02 0.137425959110D-04 0.515366164589D+04
+ 0.316800000000D+06-0.875443220139D-07-0.274702344764D+01 0.968575477600D-07
+ 0.981830489318D+00 0.130468750000D+03-0.157379144675D+01-0.770282085341D-08
+ -0.285369029623D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-09 0.563000000000D+03
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 16 0 0.0-0.484664924443D-04-0.111413100967D-10 0.000000000000D+00
+ 0.163000000000D+03-0.975000000000D+02 0.468626663039D-08 0.648595352691D+00
+ -0.508688390255D-05 0.133289801888D-01 0.219419598579D-05 0.515357908630D+04
+ 0.316800000000D+06 0.726431608200D-07-0.690324309704D+00 0.258907675743D-06
+ 0.970419067061D+00 0.342343750000D+03 0.312869927191D+00-0.862214486123D-08
+ -0.322513433979D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.163000000000D+03
+ 0.314417000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 16 0 0.0 0.951346009970D-05 0.113686837722D-11 0.000000000000D+00
+ 0.700000000000D+01-0.949062500000D+02 0.462662128878D-08-0.180980494358D+01
+ -0.519491732121D-05 0.157709452324D-01 0.122599303722D-04 0.515365073395D+04
+ 0.316800000000D+06 0.156462192535D-06 0.307358144872D+00-0.111758708954D-06
+ 0.943573386545D+00 0.127531250000D+03-0.249286976224D+01-0.787354225035D-08
+ 0.311798701953D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.419095158577D-08 0.700000000000D+01
+ 0.309618000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 16 0 0.0-0.598328188062D-04-0.295585778076D-11 0.000000000000D+00
+ 0.150000000000D+02 0.477812500000D+02 0.492877673191D-08 0.288350845402D+01
+ 0.239908695221D-05 0.584044365678D-02 0.779144465923D-05 0.515366628647D+04
+ 0.316800000000D+06-0.223517417908D-07 0.140010089335D+01-0.447034835815D-07
+ 0.958916273866D+00 0.228531250000D+03-0.249643109001D+01-0.810926635492D-08
+ 0.585381526347D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.783000000000D+03
+ 0.312318000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 16 0 0.0 0.543956179172D-03-0.133013600134D-10 0.000000000000D+00
+ 0.340000000000D+02-0.838750000000D+02 0.476662712058D-08 0.112653729426D+01
+ -0.443309545517D-05 0.831901165657D-02 0.209175050259D-05 0.515180788994D+04
+ 0.316800000000D+06-0.122934579849D-06-0.720162607126D+00 0.186264514923D-07
+ 0.967308397055D+00 0.340875000000D+03-0.190658002471D+01-0.863178812005D-08
+ -0.187864968187D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.340000000000D+02
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 16 0 0.0 0.408382620663D-03 0.451336745755D-10 0.000000000000D+00
+ 0.520000000000D+02 0.414375000000D+02 0.528164857329D-08 0.297186635656D+01
+ 0.220537185669D-05 0.621852697805D-02 0.785104930401D-05 0.515358956718D+04
+ 0.316800000000D+06 0.128522515297D-06 0.137372781730D+01-0.167638063431D-06
+ 0.942443244293D+00 0.214406250000D+03 0.134044870437D+01-0.829605984991D-08
+ 0.556451749878D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.838190317154D-08 0.308000000000D+03
+ 0.309600000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 16 0 0.0 0.903210602701D-04 0.250111042988D-11 0.000000000000D+00
+ 0.236000000000D+03-0.321562500000D+02 0.542701177111D-08 0.671346550793D-01
+ -0.147707760334D-05 0.108654779615D-01 0.549666583538D-05 0.515372386742D+04
+ 0.316800000000D+06-0.391155481339D-07 0.241197811081D+01 0.109896063805D-06
+ 0.942890171617D+00 0.260531250000D+03 0.881073125741D+00-0.871857744946D-08
+ -0.583952895411D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.570000000000D+01 0.000000000000D+00-0.605359673500D-08 0.492000000000D+03
+ 0.309678000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 17 59 44.0 0.105076003820D-03 0.318323145621D-11 0.000000000000D+00
+ 0.221000000000D+03-0.290000000000D+02 0.570309469964D-08 0.201903301457D+01
+ -0.153668224812D-05 0.303850846831D-02 0.533275306225D-05 0.515368266296D+04
+ 0.323984000000D+06-0.689178705216D-07 0.239503548014D+01 0.260770320892D-07
+ 0.934126062009D+00 0.264375000000D+03 0.549961087013D+00-0.863643117060D-08
+ -0.472162524607D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.221000000000D+03
+ 0.322980000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 17 59 44.0-0.696117058396D-05 0.111185727292D-09 0.000000000000D+00
+ 0.238000000000D+03 0.711562500000D+02 0.370122559947D-08-0.323034309801D+00
+ 0.354647636414D-05 0.136071792804D-01 0.135097652674D-04 0.515367450523D+04
+ 0.323984000000D+06 0.271946191788D-06-0.267826120988D+01-0.260770320892D-07
+ 0.980166441947D+00 0.130843750000D+03-0.307766868969D+01-0.775818030221D-08
+ -0.365729519817D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.232830643654D-08 0.238000000000D+03
+ 0.318450000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 17 59 44.0 0.592281576246D-03 0.144382283907D-10 0.000000000000D+00
+ 0.198000000000D+03 0.391250000000D+02 0.546237038680D-08 0.303193616769D+01
+ 0.185333192349D-05 0.150303870905D-01 0.854581594467D-05 0.515366815567D+04
+ 0.323984000000D+06-0.856816768646D-07 0.133023962376D+01-0.284984707832D-06
+ 0.931769846651D+00 0.198031250000D+03 0.759951958592D+00-0.819319842246D-08
+ 0.576809740727D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.198000000000D+03
+ 0.321858000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 17 59 44.0 0.585429370403D-05 0.261479726760D-11 0.000000000000D+00
+ 0.770000000000D+02 0.630312500000D+02 0.371122601603D-08-0.260688651643D-01
+ 0.325590372086D-05 0.933422474191D-02 0.129658728838D-04 0.515365557480D+04
+ 0.323984000000D+06-0.162050127983D-06-0.274707851626D+01 0.111758708954D-07
+ 0.981828388568D+00 0.145843750000D+03-0.157365174393D+01-0.768889170177D-08
+ -0.345371528968D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-09 0.770000000000D+02
+ 0.319878000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 17 59 44.0-0.598430633545D-04-0.295585778076D-11 0.000000000000D+00
+ 0.600000000000D+01 0.498125000000D+02 0.494520598768D-08-0.235183037442D+01
+ 0.252202153206D-05 0.584017287474D-02 0.771693885326D-05 0.515366676140D+04
+ 0.323984000000D+06 0.540167093277D-07 0.140004222888D+01-0.465661287308D-07
+ 0.958920513403D+00 0.229781250000D+03-0.249642300446D+01-0.814498212834D-08
+ 0.633954978198D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.774000000000D+03
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 17 59 44.0 0.903476029635D-04 0.250111042988D-11 0.000000000000D+00
+ 0.170000000000D+02-0.316562500000D+02 0.553915929965D-08 0.111498695038D+01
+ -0.141561031342D-05 0.108651504852D-01 0.578910112381D-05 0.515372305870D+04
+ 0.323984000000D+06-0.108033418655D-06 0.241191559447D+01 0.108033418655D-06
+ 0.942885889656D+00 0.263625000000D+03 0.881044394030D+00-0.869821945861D-08
+ -0.590381734626D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.170000000000D+02
+ 0.322398000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 18 0 0.0 0.213659368455D-03 0.170530256582D-11 0.000000000000D+00
+ 0.131000000000D+03-0.925000000000D+02 0.458983404215D-08 0.376441064510D-01
+ -0.483542680740D-05 0.531611929182D-02 0.289082527161D-05 0.515369578362D+04
+ 0.324000000000D+06-0.800937414169D-07-0.674347851581D+00 0.186264514923D-08
+ 0.967606124290D+00 0.328062500000D+03-0.171520315454D+01-0.849963975840D-08
+ -0.185722021782D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.387000000000D+03
+ 0.316818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 18 0 0.0-0.144852790982D-03-0.591171556152D-11 0.000000000000D+00
+ 0.160000000000D+02 0.509375000000D+02 0.542558314017D-08-0.177694662002D+01
+ 0.281631946564D-05 0.221465860959D-01 0.774674117565D-05 0.515198364258D+04
+ 0.324000000000D+06 0.400468707085D-06 0.131669074360D+01 0.819563865662D-07
+ 0.932289467838D+00 0.210562500000D+03-0.197814228621D+01-0.821141346690D-08
+ 0.685028534188D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.160000000000D+02
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 18 0 0.0 0.105082057416D-03 0.318323145621D-11 0.000000000000D+00
+ 0.199000000000D+03-0.290000000000D+02 0.570345185738D-08 0.202136457536D+01
+ -0.153668224812D-05 0.303852045909D-02 0.533275306225D-05 0.515368265343D+04
+ 0.324000000000D+06-0.689178705216D-07 0.239503532946D+01 0.260770320892D-07
+ 0.934126076638D+00 0.264375000000D+03 0.549963375016D+00-0.863643117060D-08
+ -0.472162524607D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.419095158577D-08 0.455000000000D+03
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 18 0 0.0 0.246990937740D-03-0.320596882375D-10 0.000000000000D+00
+ 0.202000000000D+03 0.643750000000D+02 0.389051919860D-08-0.649722772453D+00
+ 0.324659049511D-05 0.589607493021D-02 0.126399099827D-04 0.515361179924D+04
+ 0.324000000000D+06 0.391155481339D-07-0.276512674142D+01-0.160187482834D-06
+ 0.971738816662D+00 0.144406250000D+03-0.363373194741D+00-0.767353391920D-08
+ -0.346800159904D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.458000000000D+03
+ 0.319908000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 18 0 0.0 0.335573218763D-03 0.204636307899D-11 0.000000000000D+00
+ 0.900000000000D+02 0.487500000000D+02 0.554773108527D-08-0.949195578217D+00
+ 0.256299972534D-05 0.357798615005D-02 0.840984284878D-05 0.515378458214D+04
+ 0.324000000000D+06 0.117346644402D-06 0.133826179106D+01 0.465661287308D-07
+ 0.935372108334D+00 0.206125000000D+03 0.553821724898D+00-0.847963892528D-08
+ 0.684671376454D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.465661287308D-08 0.900000000000D+02
+ 0.318270000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 18 0 0.0-0.244844704866D-05-0.113686837722D-12 0.000000000000D+00
+ 0.700000000000D+01-0.335937500000D+02 0.550308636849D-08 0.222468077934D+00
+ -0.159442424774D-05 0.653700693511D-02 0.579655170441D-05 0.515356228065D+04
+ 0.324000000000D+06-0.353902578354D-07 0.244182289920D+01 0.633299350739D-07
+ 0.941725646402D+00 0.254812500000D+03-0.222580556000D+01-0.867000399761D-08
+ -0.582524264474D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.512227416039D-08 0.700000000000D+01
+ 0.316800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 18 0 0.0 0.696850940585D-03 0.818545231596D-11 0.000000000000D+00
+ 0.100000000000D+02-0.401875000000D+02 0.529700635586D-08 0.218932406527D+01
+ -0.237859785557D-05 0.118401031941D-01 0.549294054508D-05 0.515359616280D+04
+ 0.324000000000D+06 0.130385160446D-07 0.241211852315D+01-0.221654772759D-06
+ 0.943438855135D+00 0.262000000000D+03-0.196687480485D+01-0.832356099544D-08
+ -0.580381318069D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.266000000000D+03
+ 0.319728000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 18 0 0.0 0.710523687303D-03 0.238742359215D-11 0.000000000000D+00
+ 0.100000000000D+03-0.726250000000D+02 0.436553898508D-08 0.396641258249D+00
+ -0.390224158764D-05 0.827308592852D-02 0.126268714666D-04 0.515370203400D+04
+ 0.324000000000D+06-0.298023223877D-07 0.382481378650D+00-0.782310962677D-07
+ 0.959952708901D+00 0.135593750000D+03 0.210426633036D+01-0.800247619240D-08
+ 0.192865176466D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.372529029846D-08 0.356000000000D+03
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 18 0 0.0-0.283475965262D-04-0.170530256582D-11 0.000000000000D+00
+ 0.203000000000D+03-0.971250000000D+02 0.471591072233D-08-0.128615662821D+00
+ -0.502727925777D-05 0.127163580619D-01 0.130087137222D-04 0.515370579147D+04
+ 0.324000000000D+06 0.372529029846D-07 0.326779084575D+00 0.169500708580D-06
+ 0.946208695950D+00 0.124781250000D+03 0.798417436491D+00-0.827534470132D-08
+ 0.107861635727D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.558793544769D-08 0.203000000000D+03
+ 0.322217000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 18 0 0.0 0.181044451892D-04 0.795807864051D-12 0.000000000000D+00
+ 0.226000000000D+03 0.136593750000D+03 0.413374361559D-08-0.287404662319D+01
+ 0.712461769581D-05 0.480898725800D-02 0.436417758465D-05 0.515373283577D+04
+ 0.324000000000D+06 0.577419996262D-07-0.173970663591D+01-0.167638063431D-07
+ 0.979482640389D+00 0.309562500000D+03 0.603814682734D-01-0.816284001505D-08
+ 0.498235039204D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.482000000000D+03
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 18 0 0.0 0.778771936894D-05 0.341060513165D-12 0.000000000000D+00
+ 0.200000000000D+01 0.301562500000D+02 0.514235705696D-08 0.212003529257D+01
+ 0.157020986080D-05 0.662514939904D-03 0.121351331472D-04 0.515369395638D+04
+ 0.324000000000D+06 0.372529029846D-08-0.284917834710D+01 0.223517417908D-07
+ 0.919402948709D+00 0.118968750000D+03-0.146342445519D+01-0.827998775187D-08
+ -0.447875798682D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.514000000000D+03
+ 0.321258000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 18 0 0.0-0.193156301975D-05-0.454747350887D-12 0.000000000000D+00
+ 0.210000000000D+02-0.912187500000D+02 0.444839957941D-08-0.223925803532D+01
+ -0.471435487270D-05 0.187429902144D-02 0.265054404736D-05 0.515361267662D+04
+ 0.324000000000D+06-0.242143869400D-07-0.694966381374D+00-0.484287738800D-07
+ 0.971800368940D+00 0.335031250000D+03 0.623152733498D-01-0.834534761723D-08
+ -0.170364239212D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.210000000000D+02
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 18 0 0.0-0.105765182525D-03 0.306954461848D-11 0.000000000000D+00
+ 0.290000000000D+02-0.898437500000D+02 0.464055044041D-08 0.816351284856D+00
+ -0.449270009995D-05 0.220677733887D-02 0.203773379326D-05 0.515371134758D+04
+ 0.324000000000D+06 0.372529029846D-07-0.699817417725D+00 0.111758708954D-07
+ 0.966433156574D+00 0.342875000000D+03-0.649474349945D+00-0.852892669260D-08
+ -0.147148986489D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.290000000000D+02
+ 0.316800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 18 0 0.0 0.134518370032D-03 0.443378667114D-11 0.000000000000D+00
+ 0.203000000000D+03 0.587187500000D+02 0.367193866527D-08 0.840207266988D+00
+ 0.287406146526D-05 0.811785634141D-02 0.140145421028D-04 0.515363682365D+04
+ 0.324000000000D+06-0.484287738800D-07-0.271860872311D+01-0.152736902237D-06
+ 0.978276073834D+00 0.121531250000D+03 0.179638537660D+01-0.770496379981D-08
+ -0.437875382124D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.203000000000D+03
+ 0.316818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 18 0 0.0-0.751451589167D-04 0.341060513165D-12 0.000000000000D+00
+ 0.200000000000D+02 0.125718750000D+03 0.450125892407D-08-0.114327673731D+01
+ 0.648200511932D-05 0.240503763780D-02 0.423192977905D-05 0.515367291451D+04
+ 0.324000000000D+06-0.540167093277D-07-0.169396071066D+01-0.154599547386D-06
+ 0.962353354543D+00 0.300812500000D+03 0.298910340242D+01-0.835641950699D-08
+ 0.453233164695D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.788000000000D+03
+ 0.321618000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 18 0 0.0-0.134119298309D-03-0.295585778076D-11 0.000000000000D+00
+ 0.190000000000D+02 0.112875000000D+03 0.444625663301D-08-0.259482422583D+01
+ 0.588037073612D-05 0.184717506636D-02 0.449456274509D-05 0.515367459106D+04
+ 0.324000000000D+06 0.931322574616D-08-0.174609098303D+01 0.111758708954D-07
+ 0.963014448686D+00 0.294656250000D+03 0.202018554678D+01-0.828534511788D-08
+ 0.336085427879D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.190000000000D+02
+ 0.316818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 18 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.160000000000D+03 0.133562500000D+03 0.403302513454D-08-0.261523609211D+01
+ 0.669620931149D-05 0.180457143579D-01 0.490993261337D-05 0.515363084793D+04
+ 0.324000000000D+06 0.104308128357D-06-0.173379913718D+01-0.266358256340D-06
+ 0.979157322518D+00 0.294687500000D+03-0.235816778967D+01-0.789997192268D-08
+ 0.578238371664D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.672000000000D+03
+ 0.322908000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 18 0 0.0 0.561587512493D-05 0.795807864051D-12 0.000000000000D+00
+ 0.177000000000D+03 0.132125000000D+03 0.409731352670D-08-0.198931247620D+01
+ 0.695511698723D-05 0.160038596951D-01 0.358745455742D-05 0.515343084145D+04
+ 0.324000000000D+06 0.368803739548D-06-0.169101899892D+01 0.149011611939D-07
+ 0.982469857665D+00 0.320375000000D+03-0.177185096621D+01-0.801783397497D-08
+ 0.481448625696D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.279396772385D-08 0.433000000000D+03
+ 0.317868000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 18 0 0.0 0.223512761295D-04 0.454747350887D-12 0.000000000000D+00
+ 0.198000000000D+03-0.103062500000D+03 0.484663045304D-08 0.743871931720D+00
+ -0.543333590031D-05 0.947176548652D-02 0.121407210827D-04 0.515360729408D+04
+ 0.324000000000D+06-0.130385160446D-06 0.283080292276D+00 0.558793544769D-08
+ 0.939055711188D+00 0.133906250000D+03-0.189909623321D+01-0.831856078716D-08
+ 0.378587198248D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.745058059692D-08 0.198000000000D+03
+ 0.316818000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 18 0 0.0-0.485465861857D-04-0.111413100967D-10 0.000000000000D+00
+ 0.158000000000D+03-0.995937500000D+02 0.465912264259D-08 0.169880300023D+01
+ -0.517070293427D-05 0.133289763471D-01 0.241957604885D-05 0.515357983780D+04
+ 0.324000000000D+06-0.124797224999D-06-0.690385932202D+00 0.234693288803D-06
+ 0.970416416253D+00 0.339281250000D+03 0.312901982652D+00-0.856392815055D-08
+ -0.363943731146D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.414000000000D+03
+ 0.318108000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 18 0 0.0 0.952184200287D-05 0.113686837722D-11 0.000000000000D+00
+ 0.800000000000D+01-0.800937500000D+02 0.475769817723D-08-0.759720969679D+00
+ -0.402703881264D-05 0.157717523398D-01 0.116825103760D-04 0.515364783287D+04
+ 0.324000000000D+06 0.242143869400D-06 0.307301774250D+00 0.262632966042D-06
+ 0.943573747885D+00 0.143250000000D+03-0.249275584334D+01-0.820748473183D-08
+ 0.128219626576D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.419095158577D-08 0.800000000000D+01
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 18 0 0.0 0.543860252947D-03-0.133013600134D-10 0.000000000000D+00
+ 0.350000000000D+02-0.885000000000D+02 0.457376194412D-08 0.217769549623D+01
+ -0.458955764771D-05 0.831889733672D-02 0.175833702087D-05 0.515181046677D+04
+ 0.324000000000D+06 0.465661287308D-07-0.720224343732D+00-0.109896063805D-06
+ 0.967308135192D+00 0.349625000000D+03-0.190641546545D+01-0.842320800328D-08
+ -0.147863301957D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.350000000000D+02
+ 0.316800000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 18 0 0.0 0.408707652241D-03 0.451336745755D-10 0.000000000000D+00
+ 0.530000000000D+02 0.449375000000D+02 0.533557939116D-08-0.226111679634D+01
+ 0.236369669437D-05 0.621842301916D-02 0.813044607639D-05 0.515358960724D+04
+ 0.324000000000D+06 0.128522515297D-06 0.137366724371D+01 0.428408384323D-07
+ 0.942447957815D+00 0.213406250000D+03 0.134048477554D+01-0.829320258803D-08
+ 0.716101257063D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.838190317154D-08 0.309000000000D+03
+ 0.322020000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 18 0 0.0 0.903387553990D-04 0.250111042988D-11 0.000000000000D+00
+ 0.231000000000D+03-0.316562500000D+02 0.553915929965D-08 0.111731893689D+01
+ -0.141374766827D-05 0.108651645714D-01 0.578910112381D-05 0.515372305298D+04
+ 0.324000000000D+06-0.108033418655D-06 0.241191544525D+01 0.108033418655D-06
+ 0.942885877953D+00 0.263625000000D+03 0.881046139291D+00-0.869821945861D-08
+ -0.590381734626D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.570000000000D+01 0.000000000000D+00-0.605359673500D-08 0.743000000000D+03
+ 0.316818000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 19 59 44.0 0.105098821223D-03 0.318323145621D-11 0.000000000000D+00
+ 0.222000000000D+03-0.285625000000D+02 0.574202489267D-08 0.306933295468D+01
+ -0.155903398991D-05 0.303901953157D-02 0.544078648090D-05 0.515368149185D+04
+ 0.331184000000D+06-0.596046447754D-07 0.239497335001D+01-0.335276126862D-07
+ 0.934122783609D+00 0.260000000000D+03 0.549845632055D+00-0.862071623029D-08
+ -0.458233372974D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.222000000000D+03
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 19 59 44.0-0.105740968138D-03 0.318323145621D-11 0.000000000000D+00
+ 0.100000000000D+01-0.966875000000D+02 0.458126225653D-08 0.186460036450D+01
+ -0.496953725815D-05 0.220665149391D-02 0.211596488953D-05 0.515370955658D+04
+ 0.331184000000D+06-0.558793544769D-07-0.699877878666D+00 0.104308128357D-06
+ 0.966432224696D+00 0.342937500000D+03-0.649898237773D+00-0.843677999718D-08
+ -0.220723479733D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.513000000000D+03
+ 0.330287000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 19 59 44.0-0.616023316979D-05 0.111185727292D-09 0.000000000000D+00
+ 0.240000000000D+02 0.746250000000D+02 0.374372736984D-08 0.727124616710D+00
+ 0.396184623241D-05 0.136079766089D-01 0.129379332066D-04 0.515367608070D+04
+ 0.331184000000D+06 0.176951289177D-06-0.267831673055D+01 0.171363353729D-06
+ 0.980163886229D+00 0.135625000000D+03-0.307765349290D+01-0.769746348739D-08
+ -0.429660754238D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.232830643654D-08 0.240000000000D+02
+ 0.326130000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 19 59 44.0 0.954046845436D-05 0.125055521494D-11 0.000000000000D+00
+ 0.290000000000D+02-0.880625000000D+02 0.473162566263D-08 0.288195894436D+00
+ -0.452063977718D-05 0.157716498943D-01 0.114906579256D-04 0.515364802361D+04
+ 0.331184000000D+06-0.745058059692D-08 0.307242344665D+00 0.298023223877D-06
+ 0.943574297943D+00 0.152687500000D+03-0.249280923693D+01-0.828213069827D-08
+ 0.910752222200D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.290000000000D+02
+ 0.325428000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 19 59 44.0 0.903652980924D-04 0.250111042988D-11 0.000000000000D+00
+ 0.180000000000D+02-0.312500000000D+02 0.551308678505D-08 0.216514860231D+01
+ -0.186450779438D-05 0.108651224291D-01 0.561401247978D-05 0.515372298813D+04
+ 0.331184000000D+06-0.124797224999D-06 0.241185282358D+01-0.191852450371D-06
+ 0.942883089631D+00 0.264000000000D+03 0.881041430158D+00-0.844320883640D-08
+ -0.461804950316D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.605359673500D-08 0.180000000000D+02
+ 0.324030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 20 0 0.0 0.213671475649D-03 0.170530256582D-11 0.000000000000D+00
+ 0.132000000000D+03-0.865625000000D+02 0.465840832712D-08 0.108793097100D+01
+ -0.457465648651D-05 0.531480228528D-02 0.246427953243D-05 0.515369303513D+04
+ 0.331200000000D+06-0.130385160446D-07-0.674408836247D+00-0.428408384323D-07
+ 0.967604477045D+00 0.336875000000D+03-0.171532096772D+01-0.852392648432D-08
+ -0.243938732456D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.325962901115D-08 0.132000000000D+03
+ 0.324018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 20 0 0.0-0.144895166159D-03-0.591171556152D-11 0.000000000000D+00
+ 0.170000000000D+02 0.461875000000D+02 0.566523597982D-08-0.725747944966D+00
+ 0.275298953056D-05 0.221459765453D-01 0.864081084728D-05 0.515198232460D+04
+ 0.331200000000D+06-0.169500708580D-06 0.131662989791D+01 0.370666384697D-06
+ 0.932291363780D+00 0.204750000000D+03-0.197811938276D+01-0.884465412963D-08
+ 0.615739933754D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.186264514923D-08 0.170000000000D+02
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 20 0 0.0 0.246760435402D-03-0.320596882375D-10 0.000000000000D+00
+ 0.203000000000D+03 0.475625000000D+02 0.392123476374D-08 0.400592291305D+00
+ 0.230222940445D-05 0.589842628688D-02 0.121854245663D-04 0.515361637497D+04
+ 0.331200000000D+06 0.726431608200D-07-0.276518202216D+01-0.149011611939D-07
+ 0.971735627501D+00 0.150250000000D+03-0.363475993994D+00-0.778532429001D-08
+ -0.408231290186D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.459000000000D+03
+ 0.328788000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 20 0 0.0 0.335587654263D-03 0.204636307899D-11 0.000000000000D+00
+ 0.910000000000D+02 0.518750000000D+02 0.554058793058D-08 0.100961390910D+00
+ 0.268034636974D-05 0.357861001976D-02 0.830180943012D-05 0.515378575897D+04
+ 0.331200000000D+06 0.447034835815D-07 0.133820047724D+01 0.782310962677D-07
+ 0.935376751636D+00 0.209937500000D+03 0.553785125613D+00-0.853821279369D-08
+ 0.677171064036D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.465661287308D-08 0.910000000000D+02
+ 0.330498000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 20 0 0.0-0.244937837124D-05-0.113686837722D-12 0.000000000000D+00
+ 0.800000000000D+01-0.345312500000D+02 0.560809074235D-08 0.127273687983D+01
+ -0.171177089214D-05 0.653679715470D-02 0.616349279881D-05 0.515356188583D+04
+ 0.331200000000D+06-0.115483999252D-06 0.244176031117D+01 0.838190317154D-07
+ 0.941721542917D+00 0.256500000000D+03-0.222581747839D+01-0.864464579848D-08
+ -0.543236913712D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.512227416039D-08 0.800000000000D+01
+ 0.328470000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 20 0 0.0 0.696909613907D-03 0.807176547824D-11 0.000000000000D+00
+ 0.110000000000D+02-0.355937500000D+02 0.542522598244D-08-0.304365862974D+01
+ -0.171735882759D-05 0.118395246100D-01 0.531785190105D-05 0.515359744453D+04
+ 0.331200000000D+06 0.217929482460D-06 0.241205792323D+01-0.219792127609D-06
+ 0.943434674115D+00 0.263843750000D+03-0.196684327457D+01-0.839320675361D-08
+ -0.478234206089D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.267000000000D+03
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 20 0 0.0 0.710540451109D-03 0.238742359215D-11 0.000000000000D+00
+ 0.950000000000D+02-0.805312500000D+02 0.419517474587D-08 0.144663432935D+01
+ -0.423379242420D-05 0.827454833780D-02 0.119563192129D-04 0.515370580673D+04
+ 0.331200000000D+06 0.171363353729D-06 0.382424336549D+00-0.949949026108D-07
+ 0.959955023237D+00 0.148375000000D+03 0.210443354921D+01-0.780461080765D-08
+ 0.200008331150D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.372529029846D-08 0.607000000000D+03
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 20 0 0.0-0.283597037196D-04-0.170530256582D-11 0.000000000000D+00
+ 0.204000000000D+03-0.908125000000D+02 0.463376444346D-08 0.921569738119D+00
+ -0.482238829136D-05 0.127168109175D-01 0.127349048853D-04 0.515370637703D+04
+ 0.331200000000D+06-0.987201929092D-07 0.326720304526D+00 0.109896063805D-06
+ 0.946209213823D+00 0.127781250000D+03 0.798393314435D+00-0.822105672573D-08
+ 0.714315468392D-12 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.204000000000D+03
+ 0.325968000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 20 0 0.0 0.181100331247D-04 0.795807864051D-12 0.000000000000D+00
+ 0.227000000000D+03 0.118250000000D+03 0.413624371973D-08-0.182423525675D+01
+ 0.610761344433D-05 0.481093360577D-02 0.442937016487D-05 0.515372813606D+04
+ 0.331200000000D+06-0.782310962677D-07-0.173976450603D+01 0.447034835815D-07
+ 0.979486234779D+00 0.308062500000D+03 0.607135389740D-01-0.807247910830D-08
+ 0.403588239642D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.483000000000D+03
+ 0.330077000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 20 0 0.0 0.779051333666D-05 0.341060513165D-12 0.000000000000D+00
+ 0.200000000000D+02 0.282500000000D+02 0.517164399116D-08-0.311280828624D+01
+ 0.166706740856D-05 0.661643454805D-03 0.127516686916D-04 0.515369530296D+04
+ 0.331200000000D+06-0.428408384323D-07-0.284923764648D+01-0.149011611939D-07
+ 0.919399635199D+00 0.109968750000D+03-0.146359294971D+01-0.826177270742D-08
+ -0.493234830925D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.200000000000D+02
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 20 0 0.0-0.193435698748D-05-0.454747350887D-12 0.000000000000D+00
+ 0.160000000000D+02-0.871875000000D+02 0.446375736198D-08-0.118943421214D+01
+ -0.453554093838D-05 0.187407399062D-02 0.230781733990D-05 0.515361135864D+04
+ 0.331200000000D+06 0.242143869400D-07-0.695026400514D+00-0.875443220139D-07
+ 0.971799116682D+00 0.340781250000D+03 0.627091040630D-01-0.835927676886D-08
+ -0.194650965137D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.111758708954D-07 0.784000000000D+03
+ 0.324018000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 20 0 0.0-0.105742365122D-03 0.306954461848D-11 0.000000000000D+00
+ 0.300000000000D+02-0.966875000000D+02 0.458126225653D-08 0.186693269918D+01
+ -0.496953725815D-05 0.220665300731D-02 0.211596488953D-05 0.515370958328D+04
+ 0.331200000000D+06-0.558793544769D-07-0.699878039587D+00 0.104308128357D-06
+ 0.966432204215D+00 0.342937500000D+03-0.649897090845D+00-0.843677999718D-08
+ -0.220723479733D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.300000000000D+02
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 20 0 0.0 0.134550035000D-03 0.443378667114D-11 0.000000000000D+00
+ 0.204000000000D+03 0.669062500000D+02 0.369586823346D-08 0.189037419713D+01
+ 0.329688191414D-05 0.811734644231D-02 0.134333968163D-04 0.515363710785D+04
+ 0.331200000000D+06 0.130385160446D-06-0.271866344064D+01-0.104308128357D-06
+ 0.978273803385D+00 0.121906250000D+03 0.179641650458D+01-0.750781273054D-08
+ -0.450375902821D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.232830643654D-08 0.204000000000D+03
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 20 0 0.0-0.615883618593D-05 0.111185727292D-09 0.000000000000D+00
+ 0.239000000000D+03 0.746250000000D+02 0.374372736984D-08 0.729458728838D+00
+ 0.396184623241D-05 0.136079756776D-01 0.129379332066D-04 0.515367607498D+04
+ 0.331200000000D+06 0.176951289177D-06-0.267831686660D+01 0.171363353729D-06
+ 0.980163858433D+00 0.135625000000D+03-0.307765384838D+01-0.769746348739D-08
+ -0.429660754238D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.232830643654D-08 0.239000000000D+03
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 20 0 0.0-0.751428306103D-04 0.341060513165D-12 0.000000000000D+00
+ 0.140000000000D+02 0.125125000000D+03 0.459876298551D-08-0.931925571355D-01
+ 0.636838376522D-05 0.240532774478D-02 0.396557152271D-05 0.515367310142D+04
+ 0.331200000000D+06 0.121071934700D-06-0.169402059960D+01-0.335276126862D-07
+ 0.962355622066D+00 0.306187500000D+03 0.298920079619D+01-0.849642533879D-08
+ 0.326085011321D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.782000000000D+03
+ 0.324030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 20 0 0.0-0.134140718728D-03-0.295585778076D-11 0.000000000000D+00
+ 0.200000000000D+02 0.115875000000D+03 0.456161858115D-08-0.154548667076D+01
+ 0.601820647717D-05 0.184815272223D-02 0.506080687046D-05 0.515367113686D+04
+ 0.331200000000D+06-0.540167093277D-07-0.174615084418D+01 0.931322574616D-08
+ 0.963016575769D+00 0.281656250000D+03 0.202102942815D+01-0.834891919457D-08
+ 0.336799743347D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.651925802231D-08 0.788000000000D+03
+ 0.324390000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 20 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.161000000000D+03 0.133687500000D+03 0.407874132452D-08-0.156506436360D+01
+ 0.686384737492D-05 0.180462901481D-01 0.448711216450D-05 0.515362937546D+04
+ 0.331200000000D+06 0.394880771637D-06-0.173385548878D+01-0.242143869400D-06
+ 0.979161121717D+00 0.301343750000D+03-0.235813548112D+01-0.800604776974D-08
+ 0.452876006961D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.186264514923D-08 0.673000000000D+03
+ 0.328410000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 20 0 0.0 0.592385418713D-03 0.143245415529D-10 0.000000000000D+00
+ 0.199000000000D+03 0.420625000000D+02 0.548308553538D-08-0.219871296817D+01
+ 0.187382102013D-05 0.150299180532D-01 0.848248600960D-05 0.515366907501D+04
+ 0.331200000000D+06 0.281259417534D-06 0.133017824850D+01-0.128522515297D-06
+ 0.931774595283D+00 0.195781250000D+03 0.759941447526D+00-0.833927593574D-08
+ 0.865750347691D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.199000000000D+03
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 20 0 0.0 0.562192872167D-05 0.795807864051D-12 0.000000000000D+00
+ 0.178000000000D+03 0.123000000000D+03 0.423053336155D-08-0.939007250564D+00
+ 0.669620931149D-05 0.160031423438D-01 0.427477061749D-05 0.515343004990D+04
+ 0.331200000000D+06-0.223517417908D-07-0.169107790624D+01 0.288709998131D-06
+ 0.982471099682D+00 0.315437500000D+03-0.177183030103D+01-0.844856620241D-08
+ 0.414660129402D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.279396772385D-08 0.434000000000D+03
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 20 0 0.0 0.587338581681D-05 0.261479726760D-11 0.000000000000D+00
+ 0.780000000000D+02 0.500000000000D+02 0.368265339730D-08 0.102632512075D+01
+ 0.247173011303D-05 0.933523511048D-02 0.128876417875D-04 0.515365833473D+04
+ 0.331200000000D+06-0.117346644402D-06-0.274713389649D+01-0.135973095894D-06
+ 0.981825598783D+00 0.147062500000D+03-0.157352615534D+01-0.767389107694D-08
+ -0.393944980818D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-09 0.780000000000D+02
+ 0.329268000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 20 0 0.0 0.223540700972D-04 0.454747350887D-12 0.000000000000D+00
+ 0.199000000000D+03-0.123468750000D+03 0.462054960730D-08 0.179389300307D+01
+ -0.628456473351D-05 0.947341811843D-02 0.125542283058D-04 0.515361164475D+04
+ 0.331200000000D+06-0.121071934700D-06 0.283020274599D+00-0.247731804848D-06
+ 0.939057064387D+00 0.124812500000D+03-0.189889652002D+01-0.811640950961D-08
+ 0.132505519387D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.199000000000D+03
+ 0.324000000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 20 0 0.0-0.486266799271D-04-0.111413100967D-10 0.000000000000D+00
+ 0.159000000000D+03-0.986875000000D+02 0.445482841863D-08 0.274905106234D+01
+ -0.499933958054D-05 0.133293125546D-01 0.263564288616D-05 0.515357925224D+04
+ 0.331200000000D+06-0.197440385819D-06-0.690447758046D+00-0.152736902237D-06
+ 0.970415722830D+00 0.336093750000D+03 0.312893142238D+00-0.824927218673D-08
+ -0.187864968187D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.605359673500D-08 0.415000000000D+03
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 20 0 0.0 0.953022390604D-05 0.113686837722D-11 0.000000000000D+00
+ 0.900000000000D+01-0.880625000000D+02 0.473162566263D-08 0.290529238532D+00
+ -0.452063977718D-05 0.157716559479D-01 0.114906579256D-04 0.515364803505D+04
+ 0.331200000000D+06-0.745058059692D-08 0.307242202762D+00 0.298023223877D-06
+ 0.943574280388D+00 0.152687500000D+03-0.249280884779D+01-0.828213069827D-08
+ 0.910752222200D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.419095158577D-08 0.900000000000D+01
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 20 0 0.0-0.598640181124D-04-0.295585778076D-11 0.000000000000D+00
+ 0.700000000000D+01 0.424375000000D+02 0.488841790794D-08-0.129910739871D+01
+ 0.223889946938D-05 0.584000768140D-02 0.788271427155D-05 0.515366898918D+04
+ 0.331200000000D+06 0.689178705216D-07 0.139998342396D+01 0.745058059692D-08
+ 0.958925169871D+00 0.225187500000D+03-0.249662470722D+01-0.815676833357D-08
+ 0.644312552490D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.519000000000D+03
+ 0.324018000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 20 0 0.0 0.543764792383D-03-0.133013600134D-10 0.000000000000D+00
+ 0.300000000000D+02-0.969687500000D+02 0.457590489052D-08-0.305410550476D+01
+ -0.498816370964D-05 0.831993424799D-02 0.178068876267D-05 0.515180831146D+04
+ 0.331200000000D+06 0.279396772385D-07-0.720284348243D+00-0.167638063431D-07
+ 0.967307146260D+00 0.349406250000D+03-0.190647817196D+01-0.835391940285D-08
+ -0.187864968187D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.698491930962D-08 0.286000000000D+03
+ 0.329567000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 20 0 0.0 0.409032218158D-03 0.451336745755D-10 0.000000000000D+00
+ 0.540000000000D+02 0.491875000000D+02 0.540058209878D-08-0.121091932486D+01
+ 0.267289578915D-05 0.621872651391D-02 0.821240246296D-05 0.515358903313D+04
+ 0.331200000000D+06 0.745058059692D-08 0.137360740013D+01 0.180676579475D-06
+ 0.942452280737D+00 0.214687500000D+03 0.134052599180D+01-0.845892377670D-08
+ 0.676099590833D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.838190317154D-08 0.310000000000D+03
+ 0.324030000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 21 59 44.0 0.710556283593D-03 0.227373675443D-11 0.000000000000D+00
+ 0.119000000000D+03-0.913437500000D+02 0.419624621907D-08 0.249462524491D+01
+ -0.466406345367D-05 0.827473879326D-02 0.120494514704D-04 0.515370335960D+04
+ 0.338384000000D+06 0.633299350739D-07 0.382369382031D+00 0.428408384323D-07
+ 0.959956456897D+00 0.146093750000D+03 0.210426876173D+01-0.769389191005D-08
+ 0.115361948145D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.372529029846D-08 0.119000000000D+03
+ 0.333467000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+14 02 1 30 21 59 44.0-0.105718150735D-03 0.318323145621D-11 0.000000000000D+00
+ 0.200000000000D+01-0.968437500000D+02 0.459483425043D-08 0.291467545264D+01
+ -0.499747693539D-05 0.220649898984D-02 0.225752592087D-05 0.515370999527D+04
+ 0.338384000000D+06-0.186264514923D-07-0.699938104077D+00-0.242143869400D-07
+ 0.966430160518D+00 0.341062500000D+03-0.649814343810D+00-0.845070914881D-08
+ -0.327870799992D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.102445483208D-07 0.200000000000D+01
+ 0.333750000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+17 02 1 30 21 59 44.0-0.535976141691D-05 0.111072040454D-09 0.000000000000D+00
+ 0.250000000000D+02 0.713750000000D+02 0.383337396113D-08 0.177735055950D+01
+ 0.398978590965D-05 0.136076881317D-01 0.130515545607D-04 0.515367465782D+04
+ 0.338384000000D+06 0.298023223877D-07-0.267837166605D+01 0.223517417908D-06
+ 0.980160575645D+00 0.140062500000D+03-0.307770486765D+01-0.764531845820D-08
+ -0.463590738987D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.232830643654D-08 0.250000000000D+02
+ 0.337638000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 21 59 44.0-0.751363113523D-04 0.341060513165D-12 0.000000000000D+00
+ 0.100000000000D+01 0.118312500000D+03 0.462197823823D-08 0.954898556615D+00
+ 0.615604221821D-05 0.240489270072D-02 0.386126339436D-05 0.515367188454D+04
+ 0.338384000000D+06 0.121071934700D-06-0.169408117173D+01 0.949949026108D-07
+ 0.962358190950D+00 0.305000000000D+03 0.298895766067D+01-0.841249327126D-08
+ 0.285726187357D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.102445483208D-07 0.257000000000D+03
+ 0.337080000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 21 59 44.0 0.562705099583D-05 0.795807864051D-12 0.000000000000D+00
+ 0.203000000000D+03 0.109031250000D+03 0.418338854064D-08 0.108903969613D+00
+ 0.576861202717D-05 0.160020437324D-01 0.456906855106D-05 0.515342707634D+04
+ 0.338384000000D+06-0.309199094772D-06-0.169113771179D+01 0.143423676491D-06
+ 0.982473896781D+00 0.307843750000D+03-0.177174627102D+01-0.838034907518D-08
+ 0.242510101519D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.279396772385D-08 0.203000000000D+03
+ 0.335058000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+27 02 1 30 21 59 44.0 0.954931601882D-05 0.125055521494D-11 0.000000000000D+00
+ 0.300000000000D+02-0.102781250000D+03 0.462912139292D-08 0.133823128922D+01
+ -0.518001616001D-05 0.157723674784D-01 0.125002115965D-04 0.515365258026D+04
+ 0.338384000000D+06-0.216066837311D-06 0.307183826479D+00 0.128522515297D-06
+ 0.943574258444D+00 0.133437500000D+03-0.249264714560D+01-0.821534220198D-08
+ -0.703600736366D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.419095158577D-08 0.300000000000D+02
+ 0.331230000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 21 59 44.0-0.598849728704D-04-0.295585778076D-11 0.000000000000D+00
+ 0.160000000000D+02 0.391562500000D+02 0.490984737199D-08-0.251264732333D+00
+ 0.212714076042D-05 0.583955761977D-02 0.820867717266D-05 0.515366828346D+04
+ 0.338384000000D+06-0.558793544769D-08 0.139992459271D+01 0.484287738800D-07
+ 0.958929377223D+00 0.221593750000D+03-0.249661471256D+01-0.824141471658D-08
+ 0.633240662730D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.272000000000D+03
+ 0.331248000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 1 02 1 30 22 0 0.0 0.213683582842D-03 0.170530256582D-11 0.000000000000D+00
+ 0.127000000000D+03-0.897187500000D+02 0.458661962255D-08 0.213792132692D+01
+ -0.474229454994D-05 0.531488540582D-02 0.210665166378D-05 0.515369481087D+04
+ 0.338400000000D+06 0.931322574616D-07-0.674469932094D+00-0.745058059692D-08
+ 0.967603122383D+00 0.343250000000D+03-0.171514216694D+01-0.843142263117D-08
+ -0.251081887140D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.325962901115D-08 0.383000000000D+03
+ 0.331200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 2 02 1 30 22 0 0.0-0.144937541336D-03-0.591171556152D-11 0.000000000000D+00
+ 0.180000000000D+02 0.422187500000D+02 0.562130557851D-08 0.325447461930D+00
+ 0.218860805035D-05 0.221459952882D-01 0.895932316780D-05 0.515198212242D+04
+ 0.338400000000D+06-0.238418579102D-06 0.131656551050D+01 0.139698386192D-06
+ 0.932295717425D+00 0.196281250000D+03-0.197809004833D+01-0.892537177756D-08
+ 0.606810990399D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.186264514923D-08 0.530000000000D+03
+ 0.331200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 3 02 1 30 22 0 0.0 0.105121638626D-03 0.318323145621D-11 0.000000000000D+00
+ 0.223000000000D+03-0.324687500000D+02 0.579774149921D-08-0.216141483160D+01
+ -0.176765024662D-05 0.303956109565D-02 0.535137951374D-05 0.515368037033D+04
+ 0.338400000000D+06 0.689178705216D-07 0.239491034067D+01-0.409781932831D-07
+ 0.934119575430D+00 0.261593750000D+03 0.549927697370D+00-0.868857619979D-08
+ -0.368586781690D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.223000000000D+03
+ 0.331200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 4 02 1 30 22 0 0.0 0.246529933065D-03-0.320596882375D-10 0.000000000000D+00
+ 0.204000000000D+03 0.363750000000D+02 0.405266880992D-08 0.145104443780D+01
+ 0.220723450184D-05 0.589710636996D-02 0.124033540487D-04 0.515361274910D+04
+ 0.338400000000D+06 0.316649675369D-07-0.276523733802D+01 0.949949026108D-07
+ 0.971732887455D+00 0.141531250000D+03-0.363714841703D+00-0.768710591310D-08
+ -0.467162316329D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.605359673500D-08 0.460000000000D+03
+ 0.331218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 5 02 1 30 22 0 0.0 0.335602089763D-03 0.204636307899D-11 0.000000000000D+00
+ 0.920000000000D+02 0.547812500000D+02 0.542308303603D-08 0.115095671929D+01
+ 0.262446701527D-05 0.357914739288D-02 0.825151801109D-05 0.515378709030D+04
+ 0.338400000000D+06-0.186264514923D-07 0.133813936530D+01 0.763684511185D-07
+ 0.935381525138D+00 0.206031250000D+03 0.553908650027D+00-0.851035449042D-08
+ 0.637169397806D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.465661287308D-08 0.920000000000D+02
+ 0.331218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 6 02 1 30 22 0 0.0-0.244984403253D-05-0.113686837722D-12 0.000000000000D+00
+ 0.900000000000D+01-0.392187500000D+02 0.552737309442D-08 0.232284661134D+01
+ -0.215694308281D-05 0.653651554603D-02 0.572577118874D-05 0.515356377029D+04
+ 0.338400000000D+06-0.558793544769D-07 0.244169821469D+01-0.122934579849D-06
+ 0.941718732651D+00 0.261812500000D+03-0.222567056631D+01-0.844856620241D-08
+ -0.469662420468D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.512227416039D-08 0.900000000000D+01
+ 0.338117000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 7 02 1 30 22 0 0.0 0.696967821568D-03 0.807176547824D-11 0.000000000000D+00
+ 0.120000000000D+02-0.303750000000D+02 0.547201364562D-08-0.199349027911D+01
+ -0.144727528095D-05 0.118404319510D-01 0.504590570927D-05 0.515359521866D+04
+ 0.338400000000D+06 0.186264514923D-06 0.241199657137D+01 0.484287738800D-07
+ 0.943432159359D+00 0.270937500000D+03-0.196677628170D+01-0.837963475971D-08
+ -0.289654922433D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.232830643654D-08 0.268000000000D+03
+ 0.331218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+ 8 02 1 30 22 0 0.0 0.710557214916D-03 0.227373675443D-11 0.000000000000D+00
+ 0.960000000000D+02-0.913437500000D+02 0.419624621907D-08 0.249695699297D+01
+ -0.466406345367D-05 0.827472913079D-02 0.120494514704D-04 0.515370336723D+04
+ 0.338400000000D+06 0.633299350739D-07 0.382369276701D+00 0.428408384323D-07
+ 0.959956426176D+00 0.146093750000D+03 0.210427068108D+01-0.769389191005D-08
+ 0.115361948145D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.372529029846D-08 0.608000000000D+03
+ 0.331218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+ 9 02 1 30 22 0 0.0-0.283718109131D-04-0.170530256582D-11 0.000000000000D+00
+ 0.199000000000D+03-0.919375000000D+02 0.447161483214D-08 0.197172746065D+01
+ -0.473856925964D-05 0.127164231380D-01 0.123772770166D-04 0.515370638275D+04
+ 0.338400000000D+06-0.258907675743D-06 0.326660558952D+00-0.152736902237D-06
+ 0.946210403176D+00 0.133718750000D+03 0.798398006013D+00-0.800711924294D-08
+ 0.157506560781D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.558793544769D-08 0.455000000000D+03
+ 0.331218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+10 02 1 30 22 0 0.0 0.181151553989D-04 0.795807864051D-12 0.000000000000D+00
+ 0.228000000000D+03 0.106937500000D+03 0.406088343781D-08-0.773558379709D+00
+ 0.557303428650D-05 0.481161742937D-02 0.509619712830D-05 0.515373315811D+04
+ 0.338400000000D+06 0.707805156708D-07-0.173982200748D+01-0.707805156708D-07
+ 0.979488421841D+00 0.292781250000D+03 0.601792169231D-01-0.813033866124D-08
+ 0.254296306748D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.186264514923D-08 0.484000000000D+03
+ 0.338028000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+11 02 1 30 22 0 0.0 0.779330730438D-05 0.341060513165D-12 0.000000000000D+00
+ 0.160000000000D+02 0.289687500000D+02 0.523200364824D-08-0.206310778120D+01
+ 0.150129199028D-05 0.661289435811D-03 0.131633132696D-04 0.515369556427D+04
+ 0.338400000000D+06-0.186264514923D-08-0.284929705412D+01-0.167638063431D-07
+ 0.919395906221D+00 0.103187500000D+03-0.146312157849D+01-0.828105922507D-08
+ -0.520021660990D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.111758708954D-07 0.784000000000D+03
+ 0.331218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+13 02 1 30 22 0 0.0-0.193761661649D-05-0.454747350887D-12 0.000000000000D+00
+ 0.170000000000D+02-0.829375000000D+02 0.456197573889D-08-0.139472323136D+00
+ -0.434927642345D-05 0.187391717918D-02 0.215135514736D-05 0.515361055565D+04
+ 0.338400000000D+06 0.726431608200D-07-0.695086508892D+00 0.726431608200D-07
+ 0.971796875492D+00 0.343687500000D+03 0.629664767036D-01-0.849606818106D-08
+ -0.275011455331D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.111758708954D-07 0.785000000000D+03
+ 0.338160000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+15 02 1 30 22 0 0.0 0.134581699967D-03 0.443378667114D-11 0.000000000000D+00
+ 0.205000000000D+03 0.637187500000D+02 0.385730352932D-08 0.294062787099D+01
+ 0.347383320332D-05 0.811883748975D-02 0.130049884319D-04 0.515363446808D+04
+ 0.338400000000D+06 0.219792127609D-06-0.271871793434D+01 0.242143869400D-07
+ 0.978270666888D+00 0.135750000000D+03 0.179636091661D+01-0.752817072139D-08
+ -0.361086469272D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.232830643654D-08 0.205000000000D+03
+ 0.331200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+18 02 1 30 22 0 0.0-0.751405023038D-04 0.341060513165D-12 0.000000000000D+00
+ 0.230000000000D+02 0.118312500000D+03 0.462197823823D-08 0.957231119513D+00
+ 0.615604221821D-05 0.240488653071D-02 0.386126339436D-05 0.515367188644D+04
+ 0.338400000000D+06 0.121071934700D-06-0.169408131217D+01 0.949949026108D-07
+ 0.962358205579D+00 0.305000000000D+03 0.298895886757D+01-0.841249327126D-08
+ 0.285726187357D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.102445483208D-07 0.279000000000D+03
+ 0.331230000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+20 02 1 30 22 0 0.0-0.134162139148D-03-0.295585778076D-11 0.000000000000D+00
+ 0.210000000000D+02 0.131531250000D+03 0.450054460861D-08-0.494186438472D+00
+ 0.680424273014D-05 0.184949778486D-02 0.546313822269D-05 0.515367579460D+04
+ 0.338400000000D+06-0.186264514923D-07-0.174621126416D+01-0.279396772385D-07
+ 0.963019026157D+00 0.273468750000D+03 0.201991054013D+01-0.837820612877D-08
+ 0.360729311538D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.651925802231D-08 0.533000000000D+03
+ 0.331218000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 22 0 0.0-0.884756445885D-07 0.000000000000D+00 0.000000000000D+00
+ 0.185000000000D+03 0.125812500000D+03 0.429160733410D-08-0.514815763137D+00
+ 0.668689608574D-05 0.180462264689D-01 0.455975532532D-05 0.515363061333D+04
+ 0.338400000000D+06 0.132247805595D-06-0.173391394260D+01 0.262632966042D-06
+ 0.979161551815D+00 0.302250000000D+03-0.235818047756D+01-0.852785521940D-08
+ 0.299655338991D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.186264514923D-08 0.185000000000D+03
+ 0.333210000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+22 02 1 30 22 0 0.0 0.592488795519D-03 0.143245415529D-10 0.000000000000D+00
+ 0.200000000000D+03 0.509062500000D+02 0.546594196414D-08-0.114860756398D+01
+ 0.288337469101D-05 0.150300791720D-01 0.823102891445D-05 0.515366662216D+04
+ 0.338400000000D+06 0.378116965294D-06 0.133011854827D+01 0.117346644402D-06
+ 0.931780328459D+00 0.198562500000D+03 0.760026963865D+00-0.847999608302D-08
+ 0.792175854447D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.419095158577D-08 0.200000000000D+03
+ 0.331200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+23 02 1 30 22 0 0.0 0.562751665711D-05 0.795807864051D-12 0.000000000000D+00
+ 0.179000000000D+03 0.109031250000D+03 0.418338854064D-08 0.111237890099D+00
+ 0.576861202717D-05 0.160020563053D-01 0.456906855106D-05 0.515342708969D+04
+ 0.338400000000D+06-0.309199094772D-06-0.169113786101D+01 0.143423676491D-06
+ 0.982473889467D+00 0.307843750000D+03-0.177174622859D+01-0.838034907518D-08
+ 0.242510101519D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.279396772385D-08 0.435000000000D+03
+ 0.331230000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+24 02 1 30 22 0 0.0 0.589247792959D-05 0.261479726760D-11 0.000000000000D+00
+ 0.790000000000D+02 0.425625000000D+02 0.373122684915D-08 0.207660773845D+01
+ 0.212155282497D-05 0.933572917711D-02 0.126585364342D-04 0.515365662956D+04
+ 0.338400000000D+06 0.117346644402D-06-0.274718837849D+01-0.819563865662D-07
+ 0.981823717470D+00 0.140343750000D+03-0.157362446928D+01-0.745852496322D-08
+ -0.405374028313D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.200000000000D+01 0.000000000000D+00-0.931322574616D-09 0.790000000000D+02
+ 0.332298000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+25 02 1 30 22 0 0.0 0.223573297262D-04 0.454747350887D-12 0.000000000000D+00
+ 0.200000000000D+03-0.116312500000D+03 0.449447292712D-08 0.284419395113D+01
+ -0.595301389694D-05 0.947295979131D-02 0.130180269480D-04 0.515361117744D+04
+ 0.338400000000D+06 0.931322574616D-07 0.282963410973D+00-0.726431608200D-07
+ 0.939058833055D+00 0.113875000000D+03-0.189897746474D+01-0.787818530090D-08
+ 0.864321716755D-10 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.745058059692D-08 0.200000000000D+03
+ 0.331200000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+26 02 1 30 22 0 0.0-0.487067736685D-04-0.111413100967D-10 0.000000000000D+00
+ 0.160000000000D+03-0.925000000000D+02 0.441696969880D-08-0.248387089670D+01
+ -0.475347042084D-05 0.133286855416D-01 0.265799462795D-05 0.515358048439D+04
+ 0.338400000000D+06-0.726431608200D-07-0.690507137891D+00-0.210478901863D-06
+ 0.970414474961D+00 0.336187500000D+03 0.312867797182D+00-0.824748639806D-08
+ -0.153934983439D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.605359673500D-08 0.416000000000D+03
+ 0.331218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+28 02 1 30 22 0 0.0-0.598849728704D-04-0.295585778076D-11 0.000000000000D+00
+ 0.800000000000D+01 0.391562500000D+02 0.490984737199D-08-0.248930829402D+00
+ 0.212714076042D-05 0.583955564071D-02 0.820867717266D-05 0.515366829872D+04
+ 0.338400000000D+06-0.558793544769D-08 0.139992446982D+01 0.484287738800D-07
+ 0.958929387464D+00 0.221593750000D+03-0.249661495687D+01-0.824141471658D-08
+ 0.633240662730D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.400000000000D+01 0.000000000000D+00-0.102445483208D-07 0.264000000000D+03
+ 0.331218000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+29 02 1 30 22 0 0.0 0.543668866157D-03-0.133013600134D-10 0.000000000000D+00
+ 0.310000000000D+02-0.941562500000D+02 0.457304762865D-08-0.200280276064D+01
+ -0.479072332382D-05 0.831973168533D-02 0.183098018169D-05 0.515180843353D+04
+ 0.338400000000D+06 0.128522515297D-06-0.720344181592D+00-0.447034835815D-07
+ 0.967305506328D+00 0.346875000000D+03-0.190645907942D+01-0.839213528041D-08
+ -0.258939357292D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.000000000000D+00 0.000000000000D+00-0.698491930962D-08 0.287000000000D+03
+ 0.332910000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+30 02 1 30 22 0 0.0 0.409357249737D-03 0.451336745755D-10 0.000000000000D+00
+ 0.550000000000D+02 0.527812500000D+02 0.534986570052D-08-0.160604894547D+00
+ 0.257417559624D-05 0.621911906637D-02 0.812485814095D-05 0.515359018707D+04
+ 0.338400000000D+06-0.614672899246D-07 0.137354596927D+01 0.894069671631D-07
+ 0.942456985482D+00 0.217500000000D+03 0.134045007952D+01-0.852535511526D-08
+ 0.688242953796D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.280000000000D+01 0.000000000000D+00-0.838190317154D-08 0.311000000000D+03
+ 0.335568000000D+06 0.400000000000D+01 0.000000000000D+00 0.000000000000D+00
+31 02 1 30 22 0 0.0 0.903834588826D-04 0.250111042988D-11 0.000000000000D+00
+ 0.190000000000D+02-0.335000000000D+02 0.555415992448D-08-0.306553178441D+01
+ -0.189058482647D-05 0.108654602664D-01 0.553019344807D-05 0.515372231102D+04
+ 0.338400000000D+06 0.223517417908D-07 0.241179203641D+01-0.223517417908D-06
+ 0.942879916562D+00 0.262500000000D+03 0.881028474555D+00-0.842285084555D-08
+ -0.431446542909D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.100000000000D+01 0.000000000000D+00-0.605359673500D-08 0.190000000000D+02
+ 0.337427000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
+21 02 1 30 23 0 0.0-0.898726284504D-07 0.000000000000D+00 0.000000000000D+00
+ 0.162000000000D+03 0.119781250000D+03 0.430875090534D-08 0.102582405083D-01
+ 0.646151602268D-05 0.180452100467D-01 0.491924583912D-05 0.515362853432D+04
+ 0.342000000000D+06 0.130385160446D-06-0.173394435813D+01 0.447034835815D-06
+ 0.979162719223D+00 0.293656250000D+03-0.235815075545D+01-0.846535261592D-08
+ 0.268225458381D-09 0.100000000000D+01 0.115100000000D+04 0.000000000000D+00
+ 0.300000000000D+01 0.000000000000D+00-0.186264514923D-08 0.674000000000D+03
+ 0.331230000000D+06 0.000000000000D+00 0.000000000000D+00 0.000000000000D+00
diff --git a/dev/examples/ebre030a.02o b/dev/examples/ebre030a.02o
new file mode 100644
index 0000000..e8ae5b6
--- /dev/null
+++ b/dev/examples/ebre030a.02o
@@ -0,0 +1,3071 @@
+ 2.00 Observation G (GPS) RINEX VERSION / TYPE
+TRRINEXO V2.9.7 LHm ICC 07/12/2007 18:07:54 PGM / RUN BY / DATE
+EBRE MARKER NAME
+ICC ICC OBSERVER / AGENCY
+17999 TRIMBLE 4000SSI 7.29 / 3.07 REC # / TYPE / VERS
+0220071796 TRM29659.00 ANT # / TYPE
+ 4833520.3800 41536.8300 4147461.2800 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 5 C1 L1 L2 P2 P1 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2002 1 30 11 0 0.0090000 GPS TIME OF FIRST OBS
+13410M001 MARKER NUMBER
+Edited by GPSTK Rinex Editor ver 3.0 9/8/2003 on 2007/07/12 COMMENT
+ END OF HEADER
+ 02 1 30 11 0 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24583730.905 -8655288.540 7 -6586952.15846 24583741.9474 0.000
+ 23437293.698 -18532034.601 6 -14288536.34247 23437301.9154 0.000
+ 26844378.574 4713364.150 5 3852409.79445 26844396.3794 0.000
+ 25199100.311 -8760337.776 7 2587647.08446 25199110.6504 0.000
+ 26387427.458 -3855205.194 6 489644.22545 26387442.6504 0.000
+ 26044284.559 -7854059.733 6 -5944691.53046 26044295.9184 0.000
+ 25049524.081 -9354745.880 6 2771669.80346 25049535.2174 0.000
+ 23020165.498 -18806233.014 6 -14459854.66147 23020173.1414 0.000
+ 02 1 30 11 0 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24597653.972 -8582122.003 7 -6529939.38746 24597664.9094 0.000
+ 23432646.020 -18556458.287 6 -14307567.75447 23432654.2254 0.000
+ 26866061.379 4827304.283 5 3941193.77345 26866079.5134 0.000
+ 25211095.503 -8697304.047 7 2636764.14346 25211105.1034 0.000
+ 26393445.919 -3823578.123 6 514288.65345 26393460.8884 0.000
+ 26029059.049 -7934069.426 6 -6007036.60246 26029070.0454 0.000
+ 25062361.860 -9287284.429 6 2824237.01946 25062373.1954 0.000
+ 23024893.700 -18781385.794 6 -14440493.21747 23024901.6004 0.000
+ 02 1 30 11 1 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24611610.566 -8508779.593 7 -6472789.56546 24611621.0344 0.000
+ 23428086.219 -18580419.268 6 -14326238.62547 23428094.4954 0.000
+ 26887770.013 4941383.307 5 4030085.97345 26887787.6784 0.000
+ 25223178.438 -8633806.786 6 2686242.40146 25223188.2024 0.000
+ 26399567.442 -3791409.282 6 539355.23045 26399583.3494 0.000
+ 26013867.496 -8013901.423 6 -6069243.23346 26013878.5734 0.000
+ 25075282.362 -9219388.480 6 2877142.80146 25075293.5334 0.000
+ 23029678.166 -18756243.251 6 -14420901.65747 23029686.1024 0.000
+ 02 1 30 11 1 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24625600.721 -8435262.872 7 -6415503.92446 24625611.4474 0.000
+ 23423614.436 -18603918.520 6 -14344549.70547 23423622.7004 0.000
+ 26909505.350 5055598.523 5 4119084.25545 26909523.5904 0.000
+ 25235349.387 -8569849.245 6 2736079.30246 25235359.1644 0.000
+ 26405792.090 -3758700.117 5 564842.81845 26405807.5984 0.000
+ 25998709.845 -8093554.707 6 -6131310.59946 25998721.1454 0.000
+ 25088284.566 -9151061.813 6 2930384.22546 25088295.1984 0.000
+ 23034518.525 -18730806.914 6 -14401081.15547 23034526.2974 0.000
+ 02 1 30 11 2 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24639623.493 -8361573.620 7 -6358083.85146 24639634.5124 0.000
+ 23419230.374 -18626957.104 6 -14362501.81747 23419238.7554 0.000
+ 26931265.206 5169947.079 5 4208186.45245 26931282.9424 0.000
+ 25247606.891 -8505435.358 6 2786271.84146 25247616.9724 0.000
+ 26412118.817 -3725452.613 6 590749.92145 26412134.7244 0.000
+ 25983586.735 -8173028.141 6 -6193237.81446 25983598.0124 0.000
+ 25101368.125 -9082308.271 6 2983958.27946 25101379.0274 0.000
+ 23039414.591 -18705078.212 6 -14381032.84347 23039422.5154 0.000
+ 02 1 30 11 2 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24653679.113 -8287711.242 7 -6300528.86746 24653689.7334 0.000
+ 23414934.123 -18649533.613 6 -14380093.86547 23414942.5864 0.000
+ 26953050.785 5284428.408 5 4297392.09745 26953068.8614 0.000
+ 25259951.208 -8440566.179 6 2836819.11646 25259960.9264 0.000
+ 26418548.364 -3691666.129 5 617076.98945 26418563.7904 0.000
+ 25968497.744 -8252319.210 6 -6255022.93946 25968509.7944 0.000
+ 25114532.193 -9013129.136 6 3037863.96846 25114543.4824 0.000
+ 23044366.437 -18679056.043 6 -14360755.84947 23044374.0214 0.000
+ 02 1 30 11 3 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24667767.322 -8213677.083 7 -6242840.01946 24667777.9544 0.000
+ 23410725.636 -18671648.927 6 -14397326.54847 23410734.0174 0.000
+ 26974860.843 5399040.030 5 4386699.27945 26974878.1574 0.000
+ 25272381.599 -8375245.188 7 2887718.48346 25272391.2824 0.000
+ 26425079.784 -3657342.359 6 643822.72245 26425094.7304 0.000
+ 25953444.087 -8331426.071 6 -6316664.52646 25953455.2354 0.000
+ 25127776.895 -8943527.896 6 3092098.55746 25127788.2424 0.000
+ 23049373.917 -18652741.728 6 -14340251.21447 23049381.8414 0.000
+ 02 1 30 11 3 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24681888.554 -8139469.557 7 -6185016.09946 24681899.2804 0.000
+ 23406605.391 -18693300.992 6 -14414198.24647 23406613.7494 0.000
+ 26996696.354 5513782.201 5 4476108.15945 26996715.6254 0.000
+ 25284897.561 -8309473.033 6 2938969.38046 25284907.7244 0.000
+ 26431714.199 -3622479.783 6 670988.30245 26431729.8484 0.000
+ 25938426.400 -8410344.862 6 -6378159.55846 25938437.4084 0.000
+ 25141102.034 -8873505.405 6 3146661.38846 25141113.5684 0.000
+ 23054437.327 -18626133.616 6 -14319517.64247 23054445.0994 0.000
+ 02 1 30 11 4 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24696042.232 -8065091.538 7 -6127059.31646 24696052.8884 0.000
+ 23402572.829 -18714492.147 6 -14430710.79547 23402581.2454 0.000
+ 27018555.780 5628651.262 5 4565615.93245 27018573.5864 0.000
+ 25297498.905 -8243254.284 6 2990568.28746 25297508.5524 0.000
+ 26438450.351 -3587081.292 6 698571.46245 26438466.1184 0.000
+ 25923444.065 -8489075.643 6 -6439508.08846 25923455.3184 0.000
+ 25154506.177 -8803066.406 6 3201548.78546 25154517.5594 0.000
+ 23059556.220 -18599234.205 6 -14298557.07847 23059563.9214 0.000
+ 02 1 30 11 4 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24710228.235 -7990544.145 7 -6068970.56946 24710239.0784 0.000
+ 23398627.918 -18735222.786 6 -14446864.50347 23398636.3114 0.000
+ 27040438.365 5743645.077 5 4655220.89145 27040456.7694 0.000
+ 25310184.684 -8176591.974 7 3042512.84546 25310194.4014 0.000
+ 26445287.887 -3551148.094 6 726571.26445 26445301.8244 0.000
+ 25908498.603 -8567616.654 6 -6500708.75846 25908509.8324 0.000
+ 25167988.957 -8732214.136 6 3256758.18946 25167999.8594 0.000
+ 23064730.418 -18572044.187 6 -14277370.07647 23064738.0844 0.000
+ 02 1 30 11 5 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24724446.549 -7915826.155 7 -6010748.88146 24724457.8264 0.000
+ 23394770.977 -18755491.291 6 -14462658.10047 23394779.2884 0.000
+ 27062345.755 5858763.550 5 4744922.99645 27062365.3434 0.000
+ 25322954.090 -8109487.110 6 3094802.23546 25322963.3984 0.000
+ 26452227.866 -3514679.117 6 754988.57845 26452241.8274 0.000
+ 25893589.275 -8645964.361 6 -6561758.79346 25893600.1764 0.000
+ 25181550.482 -8660949.569 6 3312288.89846 25181561.1144 0.000
+ 23069960.084 -18544562.218 6 -14255955.57347 23069967.6804 0.000
+ 02 1 30 11 5 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24738697.994 -7840935.164 7 -5952392.38646 24738708.8494 0.000
+ 23391002.460 -18775294.831 6 -14478089.39347 23391010.8064 0.000
+ 27084276.325 5974007.604 5 4834722.92845 27084295.9474 0.000
+ 25335808.387 -8041939.380 6 3147436.71546 25335818.6324 0.000
+ 26459270.411 -3477672.629 6 783824.71745 26459285.7444 0.000
+ 25878717.988 -8724113.605 6 -6622654.18946 25878728.6554 0.000
+ 25195190.498 -8589272.612 6 3368140.91646 25195200.9664 0.000
+ 23075245.898 -18516785.624 7 -14234311.49847 23075253.3774 0.000
+ 02 1 30 11 6 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24752981.584 -7765875.015 7 -5893904.08946 24752992.5674 0.000
+ 23387321.758 -18794636.848 6 -14493161.05847 23387329.9754 0.000
+ 27106230.219 6089372.427 5 4924616.98545 27106248.7984 0.000
+ 25348744.911 -7973954.745 6 3200411.65246 25348755.2384 0.000
+ 26466413.994 -3440132.615 6 813076.62545 26466430.0884 0.000
+ 25863883.938 -8802065.285 6 -6683395.66146 25863894.4304 0.000
+ 25208907.352 -8517189.242 6 3424309.64146 25208918.4884 0.000
+ 23080587.044 -18488718.190 7 -14212440.79947 23080594.7804 0.000
+ 02 1 30 11 6 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24767297.206 -7690646.511 7 -5835284.59246 24767308.4134 0.000
+ 23383728.737 -18813517.739 6 -14507873.40547 23383736.7904 0.000
+ 27128206.581 6204856.098 5 5014603.65345 27128224.0004 0.000
+ 25361764.852 -7905536.139 6 3253724.71346 25361775.0044 0.000
+ 26473659.008 -3402059.835 6 842743.64945 26473674.5284 0.000
+ 25849088.136 -8879818.167 6 -6743982.19246 25849098.9204 0.000
+ 25222700.831 -8444702.541 6 3480792.62946 25222712.4014 0.000
+ 23085983.179 -18460360.485 7 -14190343.91047 23085990.6704 0.000
+ 02 1 30 11 7 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24781645.241 -7615248.647 7 -5776533.14046 24781656.3544 0.000
+ 23380224.000 -18831935.892 6 -14522225.17947 23380232.1714 0.000
+ 27150204.457 6320458.419 5 5104682.74845 27150222.8264 0.000
+ 25374867.378 -7836684.414 6 3307375.28546 25374877.7284 0.000
+ 26481005.087 -3363453.898 6 872826.16545 26481020.6434 0.000
+ 25834330.617 -8957368.229 6 -6804410.68946 25834341.3074 0.000
+ 25236571.177 -8371813.588 6 3537589.07246 25236582.9224 0.000
+ 23091434.984 -18431711.103 6 -14168019.74647 23091442.7914 0.000
+ 02 1 30 11 7 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24796025.334 -7539681.241 7 -5717649.56546 24796036.4824 0.000
+ 23376807.264 -18849890.637 6 -14536215.85847 23376815.5524 0.000
+ 27172226.198 6436178.407 5 5194853.55345 27172244.5794 0.000
+ 25388051.355 -7767401.680 6 3361361.69746 25388061.4484 0.000
+ 26488453.044 -3324314.671 5 903324.21345 26488468.1894 0.000
+ 25819612.194 -9034712.414 6 -6864678.76446 25819622.3924 0.000
+ 25250518.203 -8298524.424 6 3594697.34946 25250530.1014 0.000
+ 23096942.488 -18402769.735 7 -14145468.06347 23096950.1424 0.000
+ 02 1 30 11 8 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24810437.131 -7463946.406 7 -5658635.53346 24810448.6074 0.000
+ 23373478.383 -18867383.668 6 -14549846.76747 23373486.7644 0.000
+ 27194269.108 6552012.832 5 5285113.46845 27194288.3214 0.000
+ 25401316.494 -7697692.225 6 3415680.63346 25401327.2554 0.000
+ 26496002.315 -3284644.456 5 934236.03745 26496018.4804 0.000
+ 25804933.915 -9111850.365 6 -6924786.12746 25804943.7624 0.000
+ 25264540.042 -8224839.374 6 3652114.11246 25264551.3074 0.000
+ 23102505.001 -18373538.092 6 -14122690.19147 23102512.5974 0.000
+ 02 1 30 11 8 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24824881.153 -7388044.228 7 -5599491.10546 24824892.5244 0.000
+ 23370237.443 -18884414.835 6 -14563117.78447 23370245.6604 0.000
+ 27216334.143 6667960.407 5 5375461.55945 27216354.3054 0.000
+ 25414662.786 -7627557.955 6 3470330.58446 25414673.5824 0.000
+ 26503652.366 -3244443.898 6 965561.08945 26503667.7574 0.000
+ 25790294.248 -9188779.317 6 -6984730.62246 25790305.0204 0.000
+ 25278636.873 -8150761.062 6 3709837.31946 25278648.6314 0.000
+ 23108122.769 -18344016.132 7 -14099686.10347 23108130.5644 0.000
+ 02 1 30 11 9 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24839356.602 -7311974.694 7 -5540216.26746 24839367.9724 0.000
+ 23367084.330 -18900983.697 6 -14576028.56447 23367092.5944 0.000
+ 27238419.927 6784019.952 5 5465896.92645 27238440.9444 0.000
+ 25428089.586 -7557001.181 6 3525309.75046 25428100.4644 0.000
+ 26511403.392 -3203713.799 6 997298.77645 26511419.1464 0.000
+ 25775695.098 -9265497.154 6 -7044510.63646 25775705.6604 0.000
+ 25292807.605 -8076291.396 6 3767865.47946 25292820.0544 0.000
+ 23113795.925 -18314203.577 7 -14076455.58347 23113803.6154 0.000
+ 02 1 30 11 9 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24853863.579 -7235739.767 7 -5480812.54746 24853875.1254 0.000
+ 23364019.171 -18917091.798 6 -14588580.31747 23364027.3414 0.000
+ 27260526.015 6900188.150 5 5556416.92645 27260544.5364 0.000
+ 25441595.227 -7486026.268 6 3580614.75146 25441605.4844 0.000
+ 26519254.136 -3162455.804 6 1029447.81845 26519269.2224 0.000
+ 25761136.768 -9342002.661 6 -7104125.18646 25761146.5444 0.000
+ 25307053.358 -8001434.896 6 3826195.03146 25307065.2914 0.000
+ 23119524.196 -18284102.256 7 -14053000.05147 23119531.6754 0.000
+ 02 1 30 11 10 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24868402.574 -7159337.939 7 -5421278.78846 24868413.8984 0.000
+ 23361041.933 -18932737.303 6 -14600771.61347 23361050.0454 0.000
+ 27282654.090 7016465.515 5 5647022.01445 27282673.1154 0.000
+ 25455181.337 -7414633.786 6 3636245.12146 25455192.1094 0.000
+ 26527205.926 -3120669.056 6 1062008.87045 26527220.7904 0.000
+ 25746619.114 -9418291.612 6 -7163571.00346 25746629.5354 0.000
+ 25321371.191 -7926192.158 6 3884825.57946 25321382.8434 0.000
+ 23125307.584 -18253710.317 6 -14029318.06847 23125315.2624 0.000
+ 02 1 30 11 10 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24882973.021 -7082771.726 7 -5361616.93146 24882984.1224 0.000
+ 23358152.319 -18947922.171 6 -14612603.96847 23358160.5134 0.000
+ 27304801.019 7132848.396 5 5737709.24845 27304822.8814 0.000
+ 25468845.748 -7342828.122 6 3692197.45146 25468855.8414 0.000
+ 26535257.665 -3078356.499 6 1094979.60445 26535273.0454 0.000
+ 25732143.021 -9494364.297 6 -7222848.29046 25732153.0914 0.000
+ 25335762.153 -7850567.972 6 3943753.34046 25335774.6144 0.000
+ 23131145.832 -18223030.083 6 -14005411.43447 23131153.5574 0.000
+ 02 1 30 11 11 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24897574.368 -7006040.688 7 -5301826.64346 24897585.8214 0.000
+ 23355350.496 -18962645.758 6 -14624076.88247 23355358.6194 0.000
+ 27326968.692 7249336.078 5 5828478.19845 27326990.0144 0.000
+ 25482588.029 -7270611.399 6 3748470.08746 25482598.3684 0.000
+ 26543409.370 -3035518.586 5 1128359.73945 26543426.0394 0.000
+ 25717708.876 -9570217.407 6 -7281954.49746 25717719.3794 0.000
+ 25350225.188 -7774564.463 6 4002976.69246 25350236.8644 0.000
+ 23137039.031 -18192060.857 6 -13981279.61947 23137046.8614 0.000
+ 02 1 30 11 11 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24912207.522 -6929143.482 7 -5241906.87546 24912219.3614 0.000
+ 23352636.962 -18976906.568 6 -14635189.20147 23352645.0274 0.000
+ 27349155.287 7365928.502 5 5919328.76245 27349176.0944 0.000
+ 25496408.311 -7197984.502 6 3805062.32346 25496419.3064 0.000
+ 26551661.322 -2992154.356 6 1162149.97945 26551677.3694 0.000
+ 25703316.454 -9645846.860 6 -7340886.44146 25703326.5814 0.000
+ 25364760.257 -7698182.611 6 4062494.85046 25364771.5114 0.000
+ 23142987.454 -18160801.212 6 -13956921.50047 23142995.2964 0.000
+ 02 1 30 11 12 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24926872.232 -6852080.434 7 -5181857.87346 24926883.8254 0.000
+ 23350011.134 -18990704.719 6 -14645941.00247 23350019.1524 0.000
+ 27371362.690 7482623.889 5 6010259.49845 27371383.3794 0.000
+ 25510306.451 -7124950.069 6 3861972.13446 25510316.8254 0.000
+ 26560013.471 -2948264.697 6 1196349.61945 26560028.2064 0.000
+ 25688967.955 -9721249.973 6 -7399642.00646 25688978.4704 0.000
+ 25379366.510 -7621425.185 6 4122305.65646 25379377.4244 0.000
+ 23148991.412 -18129251.234 6 -13932337.14647 23148999.1494 0.000
+ 02 1 30 11 12 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24941567.827 -6774853.948 7 -5121681.54046 24941579.3734 0.000
+ 23347473.202 -19004042.498 6 -14656334.07647 23347481.0794 0.000
+ 27393588.785 7599418.571 5 6101267.67445 27393608.9944 0.000
+ 25524281.688 -7051512.744 6 3919195.87846 25524292.1444 0.000
+ 26568465.025 -2903852.313 5 1230956.58645 26568480.7564 0.000
+ 25674662.040 -9796427.031 6 -7458221.41646 25674672.4494 0.000
+ 25394044.489 -7544296.963 6 4182405.44446 25394056.7744 0.000
+ 23155050.054 -18097413.206 6 -13907528.33547 23155057.9544 0.000
+ 02 1 30 11 13 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24956295.190 -6697463.864 7 -5061377.69846 24956306.6074 0.000
+ 23345022.552 -19016919.227 6 -14666367.89347 23345030.7344 0.000
+ 27415833.277 7716311.861 5 6192352.64045 27415855.6314 0.000
+ 25538332.216 -6977674.730 6 3976731.84646 25538342.8134 0.000
+ 26577015.548 -2858917.600 5 1265970.56945 26577031.6194 0.000
+ 25660399.997 -9871375.141 6 -7516622.45146 25660410.0904 0.000
+ 25408791.488 -7466800.019 6 4242792.41946 25408803.4684 0.000
+ 23161163.442 -18065286.661 6 -13882494.70047 23161171.3554 0.000
+ 02 1 30 11 13 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24971053.004 -6619911.724 7 -5000947.58146 24971064.7504 0.000
+ 23342659.882 -19029336.234 6 -14676043.48247 23342667.9584 0.000
+ 27438095.906 7833300.995 5 6283512.25245 27438117.7214 0.000
+ 25552458.707 -6903439.775 6 4034577.11346 25552469.0934 0.000
+ 26585665.299 -2813462.746 5 1301389.84545 26585681.1594 0.000
+ 25646181.309 -9946092.941 6 -7574844.00546 25646191.7884 0.000
+ 25423608.483 -7388938.346 6 4303463.64446 25423621.1664 0.000
+ 23167331.431 -18032872.878 6 -13857237.24347 23167339.4844 0.000
+ 02 1 30 11 14 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 24985841.263 -6542196.759 7 -4940390.60846 24985852.7634 0.000
+ 23340384.535 -19041292.503 6 -14685360.04247 23340392.7764 0.000
+ 27460376.685 7950385.583 5 6374746.26845 27460399.2384 0.000
+ 25566660.533 -6828809.240 6 4092730.63346 25566672.0684 0.000
+ 26594414.282 -2767487.999 5 1337214.25045 26594429.7434 0.000
+ 25632007.484 -10020576.856 6 -7632883.31646 25632017.8594 0.000
+ 25438494.036 -7310713.445 6 4364417.91846 25438506.5204 0.000
+ 23173554.659 -18000170.740 6 -13831755.09647 23173562.5254 0.000
+ 02 1 30 11 14 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25000660.569 -6464322.202 6 -4879709.26046 25000671.5294 0.000
+ 23338196.301 -19052791.132 6 -14694320.00147 23338204.6944 0.000
+ 27482675.351 8067560.957 5 6466051.03345 27482700.4014 0.000
+ 25580936.577 -6753788.950 6 4151187.84046 25580947.4314 0.000
+ 26603261.537 -2720996.722 5 1373441.15745 26603277.5154 0.000
+ 25617877.706 -10094827.939 6 -7690741.20046 25617888.3624 0.000
+ 25453448.635 -7232131.101 6 4425650.70646 25453461.3304 0.000
+ 23179831.896 -17967183.530 6 -13806050.81247 23179839.9494 0.000
+ 02 1 30 11 15 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25015510.505 -6386285.640 6 -4818901.67746 25015521.9224 0.000
+ 23336095.776 -19063829.653 6 -14702921.43347 23336104.2514 0.000
+ 27504991.246 8184828.295 5 6557427.47145 27505014.3624 0.000
+ 25595286.737 -6678378.641 6 4209948.95746 25595297.1704 0.000
+ 26612207.258 -2673987.045 6 1410072.01145 26612223.4114 0.000
+ 25603793.756 -10168840.896 6 -7748413.53746 25603804.3064 0.000
+ 25468469.776 -7153191.308 6 4487162.03346 25468481.5224 0.000
+ 23186164.157 -17933908.501 6 -13780122.24947 23186172.2574 0.000
+ 02 1 30 11 15 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25030391.523 -6308086.779 7 -4757967.64546 25030403.1404 0.000
+ 23334082.924 -19074407.563 6 -14711163.94547 23334091.0244 0.000
+ 27527324.013 8302186.695 5 6648874.84145 27527345.9924 0.000
+ 25609711.159 -6602580.363 6 4269012.38346 25609721.6274 0.000
+ 26621251.426 -2626459.410 5 1447106.46345 26621267.8604 0.000
+ 25589755.308 -10242612.444 6 -7805897.74346 25589765.6474 0.000
+ 25483559.430 -7073896.331 6 4548950.12646 25483571.1644 0.000
+ 23192550.821 -17900345.237 6 -13753969.08147 23192558.9214 0.000
+ 02 1 30 11 16 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25045302.605 -6229727.443 6 -4696908.56746 25045314.3044 0.000
+ 23332157.188 -19084526.598 6 -14719048.88547 23332165.2884 0.000
+ 27549674.616 8419633.002 5 6740390.72545 27549697.8504 0.000
+ 25624207.986 -6526398.657 6 4328374.60146 25624219.1694 0.000
+ 26630393.192 -2578417.072 5 1484541.99245 26630409.3684 0.000
+ 25575763.073 -10316142.055 6 -7863193.45546 25575773.7164 0.000
+ 25498716.026 -6994250.449 6 4611011.65746 25498727.7834 0.000
+ 23198992.561 -17866495.292 6 -13727592.52647 23199000.5084 0.000
+ 02 1 30 11 16 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25060245.514 -6151204.890 6 -4635722.30646 25060257.1314 0.000
+ 23330319.640 -19094183.802 6 -14726573.95847 23330327.6584 0.000
+ 27572041.264 8537168.640 5 6831976.19645 27572062.6804 0.000
+ 25638777.803 -6449832.873 6 4388036.10046 25638788.8344 0.000
+ 26639634.334 -2529857.565 5 1522380.49945 26639649.8904 0.000
+ 25561817.875 -10389424.421 6 -7920296.49846 25561828.5304 0.000
+ 25513939.145 -6914253.400 6 4673346.81546 25513950.3984 0.000
+ 23205488.953 -17832355.709 6 -13700990.27347 23205496.6304 0.000
+ 02 1 30 11 17 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25075218.196 -6072522.740 6 -4574411.68746 25075229.9884 0.000
+ 23328569.073 -19103382.820 6 -14733742.00147 23328577.1274 0.000
+ 27594424.067 8654788.738 5 6923627.48845 27594444.1594 0.000
+ 25653420.073 -6372889.127 6 4447992.09246 25653430.8934 0.000
+ 26648972.572 -2480785.114 5 1560618.73845 26648987.7644 0.000
+ 25547919.481 -10462459.944 6 -7977207.19346 25547930.4294 0.000
+ 25529227.433 -6833911.056 6 4735951.04346 25529239.2264 0.000
+ 23212039.944 -17797930.013 6 -13674165.07947 23212047.9044 0.000
+ 02 1 30 11 17 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25090221.366 -5993681.316 6 -4512976.95146 25090233.1944 0.000
+ 23326905.770 -19112123.656 6 -14740553.01847 23326913.9284 0.000
+ 27616822.579 8772491.488 5 7015343.14045 27616845.5074 0.000
+ 25668133.869 -6295569.915 6 4508240.68046 25668144.5364 0.000
+ 26658407.751 -2431200.701 5 1599255.85445 26658423.6354 0.000
+ 25534068.456 -10535246.555 6 -8033923.93846 25534079.4864 0.000
+ 25544581.155 -6753226.397 6 4798821.99646 25544593.5344 0.000
+ 23218645.405 -17763218.138 6 -13647116.88747 23218653.1894 0.000
+ 02 1 30 11 18 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25105254.481 -5914680.918 6 -4451418.34346 25105266.1334 0.000
+ 23325329.520 -19120406.632 6 -14747007.26347 23325337.6084 0.000
+ 27639236.850 8890275.774 5 7107122.38045 27639259.0404 0.000
+ 25682918.449 -6217878.016 6 4568779.65446 25682929.2924 0.000
+ 26667941.089 -2381105.651 5 1638290.86245 26667956.1524 0.000
+ 25520265.635 -10607781.826 6 -8090444.83146 25520276.0214 0.000
+ 25559999.995 -6672202.035 6 4861957.64046 25560013.1004 0.000
+ 23225305.499 -17728220.119 7 -13619845.72747 23225313.1544 0.000
+ 02 1 30 11 18 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25120318.407 -5835521.235 6 -4389735.62546 25120330.9854 0.000
+ 23323840.560 -19128231.273 6 -14753104.35947 23323848.6604 0.000
+ 27661665.835 9008140.902 5 7198964.58545 27661687.6734 0.000
+ 25697773.187 -6139815.371 6 4629607.53546 25697783.9954 0.000
+ 26677571.020 -2330500.036 5 1677723.71345 26677587.0094 0.000
+ 25506510.933 -10680062.412 6 -8146767.26646 25506521.6354 0.000
+ 25575482.696 -6590840.132 6 4925356.31646 25575495.4494 0.000
+ 23232020.082 -17692935.337 7 -13592351.11947 23232028.0184 0.000
+ 02 1 30 11 19 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25135412.280 -5756202.476 6 -4327928.95246 25135423.9914 0.000
+ 23322438.482 -19135597.935 6 -14758844.58647 23322446.5704 0.000
+ 27684110.911 9126085.058 4 7290868.35145 27684135.4454 0.000
+ 25712698.137 -6061384.848 6 4690722.07646 25712709.5904 0.000
+ 26687297.502 -2279385.529 5 1717553.09645 26687312.9994 0.000
+ 25492805.084 -10752086.256 6 -8202889.64146 25492815.6224 0.000
+ 25591029.545 -6509143.625 6 4989015.71246 25591041.7364 0.000
+ 23238788.882 -17657364.240 6 -13564633.40347 23238796.7484 0.000
+ 02 1 30 11 19 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25150536.333 -5676725.529 6 -4265999.01246 25150548.6764 0.000
+ 23321123.850 -19142507.350 6 -14764228.51947 23321131.9974 0.000
+ 27706569.925 9244105.959 3 7382831.90045 27706595.8074 0.000
+ 25727692.248 -5982589.723 6 4752120.70546 25727703.1964 0.000
+ 26697120.942 -2227763.806 5 1757777.70945 26697136.8614 0.000
+ 25479148.588 -10823851.543 6 -8258810.54746 25479158.4694 0.000
+ 25606639.130 -6427115.917 6 5052933.17246 25606651.0164 0.000
+ 23245612.388 -17621507.216 6 -13536692.90247 23245620.5234 0.000
+ 02 1 30 11 20 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25165690.500 -5597091.798 6 -4203946.89346 25165701.7654 0.000
+ 23319895.748 -19148960.936 6 -14769257.26647 23319903.8834 0.000
+ 27729043.031 9362201.130 3 7474853.35945 27729068.0114 0.000
+ 25742755.001 -5903433.808 6 4813800.49146 25742765.7274 0.000
+ 26707040.752 -2175636.736 5 1798396.09045 26707057.0114 0.000
+ 25465541.586 -10895356.783 6 -8314528.81846 25465551.9954 0.000
+ 25622310.863 -6344760.802 6 5117105.79046 25622322.6794 0.000
+ 23252489.815 -17585365.421 6 -13508530.49447 23252497.9624 0.000
+ 02 1 30 11 20 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25180875.033 -5517297.655 6 -4141769.79346 25180886.8614 0.000
+ 23318755.052 -19154955.201 6 -14773928.10547 23318763.2114 0.000
+ 27751531.080 9480372.595 4 7566934.22345 27751553.7034 0.000
+ 25757886.985 -5823916.161 6 4875762.10646 25757898.7894 0.000
+ 26717057.088 -2123001.950 5 1839410.08945 26717072.9604 0.000
+ 25451985.195 -10966595.928 6 -8370039.75646 25451994.9364 0.000
+ 25638045.149 -6262077.314 6 5181534.25946 25638057.5284 0.000
+ 23259422.277 -17548935.175 6 -13480143.32347 23259430.1544 0.000
+ 02 1 30 11 21 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25196089.234 -5437346.707 6 -4079470.54646 25196101.4374 0.000
+ 23317701.041 -19160493.692 6 -14778243.79747 23317709.0714 0.000
+ 27774031.792 9598615.401 4 7659070.68345 27774056.7834 0.000
+ 25773086.620 -5744042.794 6 4938001.00246 25773097.8034 0.000
+ 26727169.119 -2069864.143 5 1880816.06245 26727185.1904 0.000
+ 25438479.248 -11037569.610 6 -8425343.81646 25438489.3764 0.000
+ 25653840.564 -6179071.748 6 5246213.71746 25653852.1334 0.000
+ 23266408.942 -17512220.145 6 -13451534.24947 23266416.9724 0.000
+ 02 1 30 11 21 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25211333.273 -5357239.219 6 -4017049.23846 25211345.4064 0.000
+ 23316733.807 -19165576.635 6 -14782204.52247 23316741.7904 0.000
+ 27796547.476 9716928.188 4 7751261.67245 27796572.9954 0.000
+ 25788353.350 -5663816.340 6 5000514.87146 25788364.3924 0.000
+ 26737375.644 -2016224.019 5 1922613.41645 26737390.9764 0.000
+ 25425024.431 -11108275.770 7 -8480439.43246 25425034.2074 0.000
+ 25669696.685 -6095746.941 6 5311141.90146 25669709.4514 0.000
+ 23273449.902 -17475220.063 6 -13422703.05647 23273457.8974 0.000
+ 02 1 30 11 22 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25226606.816 -5276976.441 6 -3954506.95246 25226618.2454 0.000
+ 23315853.055 -19170205.472 6 -14785811.39547 23315860.9334 0.000
+ 27819075.486 9835308.372 4 7843505.14345 27819101.4744 0.000
+ 25803686.515 -5583240.767 6 5063300.86746 25803698.1914 0.000
+ 26747678.703 -1962084.084 5 1964800.26645 26747694.4104 0.000
+ 25411620.346 -11178712.903 6 -8535325.41846 25411630.4974 0.000
+ 25685612.978 -6012106.637 6 5376315.93146 25685626.0724 0.000
+ 23280544.904 -17437936.115 6 -13393650.67647 23280552.7814 0.000
+ 02 1 30 11 22 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25241910.733 -5196555.273 6 -3891841.25746 25241922.8424 0.000
+ 23315059.271 -19174377.060 6 -14789061.97347 23315067.1834 0.000
+ 27841616.507 9953757.918 5 7935802.69245 27841643.4574 0.000
+ 25819086.343 -5502315.403 6 5126359.43346 25819098.2184 0.000
+ 26758077.093 -1907442.108 5 2007378.30045 26758095.2044 0.000
+ 25398268.660 -11248874.965 6 -8589997.05546 25398278.8344 0.000
+ 25701589.811 -5928150.053 6 5441736.38746 25701603.1164 0.000
+ 23287694.438 -17400365.007 6 -13364374.53047 23287702.2104 0.000
+ 02 1 30 11 23 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25257244.367 -5115976.319 6 -3829052.62346 25257256.5464 0.000
+ 23314352.227 -19178092.038 6 -14791956.75647 23314360.3394 0.000
+ 27864169.634 10072274.969 5 8028152.84345 27864193.3594 0.000
+ 25834551.950 -5421043.182 6 5189688.26746 25834563.3324 0.000
+ 26768570.581 -1852299.340 5 2050346.59345 26768586.2424 0.000
+ 25384970.084 -11318759.860 6 -8644452.72246 25384980.4004 0.000
+ 25717625.885 -5843880.728 6 5507400.57246 25717639.0964 0.000
+ 23294898.509 -17362507.046 6 -13334874.86947 23294906.2344 0.000
+ 02 1 30 11 23 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25272607.551 -5035241.845 6 -3766142.77946 25272619.6484 0.000
+ 23313731.884 -19181352.755 6 -14794497.56747 23313740.1254 0.000
+ 27886735.624 10190855.756 4 8120552.60645 27886760.2534 0.000
+ 25850082.286 -5339428.927 6 5253283.63546 25850093.6574 0.000
+ 26779158.743 -1796659.404 5 2093702.27245 26779175.0024 0.000
+ 25371724.413 -11388367.358 6 -8698692.22346 25371734.3184 0.000
+ 25733720.978 -5759303.335 6 5573304.79046 25733734.0834 0.000
+ 23302156.823 -17324364.359 6 -13305153.34047 23302164.7944 0.000
+ 02 1 30 11 24 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25288000.084 -4954353.560 6 -3703113.10046 25288012.5444 0.000
+ 23313197.134 -19184161.210 6 -14796685.97347 23313205.2574 0.000
+ 27909313.397 10309497.215 4 8212999.67245 27909339.2804 0.000
+ 25865678.101 -5257477.126 6 5317141.98146 25865689.8704 0.000
+ 26789840.766 -1740525.240 5 2137443.09045 26789856.4854 0.000
+ 25358531.219 -11457696.646 6 -8752714.94646 25358540.9494 0.000
+ 25749873.402 -5674422.492 6 5639445.43746 25749885.6404 0.000
+ 23309468.903 -17285938.544 6 -13275211.19847 23309477.1554 0.000
+ 02 1 30 11 24 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25303421.474 -4873313.196 6 -3639964.91646 25303434.3574 0.000
+ 23312748.430 -19186519.282 6 -14798523.43147 23312756.4724 0.000
+ 27931901.732 10428196.579 4 8305491.79945 27931927.5684 0.000
+ 25881336.248 -5175191.905 6 5381260.13246 25881347.7714 0.000
+ 26800616.271 -1683899.331 5 2181567.07445 26800631.5344 0.000
+ 25345391.667 -11526746.399 6 -8806519.85246 25345401.7724 0.000
+ 25766083.061 -5589242.340 6 5705819.34446 25766096.5424 0.000
+ 23316834.722 -17247231.112 6 -13245049.60747 23316842.8104 0.000
+ 02 1 30 11 25 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25318873.077 -4792116.103 6 -3576694.60946 25318885.8544 0.000
+ 23312386.415 -19188422.336 6 -14800006.32947 23312394.4684 0.000
+ 27954501.693 10546956.916 3 8398031.51245 27954528.6424 0.000
+ 25897059.078 -5092571.360 6 5445639.57646 25897070.4614 0.000
+ 26811485.804 -1626778.213 5 2226076.91445 26811502.2034 0.000
+ 25332306.061 -11595509.311 7 -8860101.25946 25332315.9074 0.000
+ 25782349.647 -5503760.574 6 5772428.23146 25782363.2454 0.000
+ 23324255.389 -17208237.061 6 -13214664.68047 23324263.6424 0.000
+ 02 1 30 11 25 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25334353.612 -4710766.344 6 -3513305.33746 25334366.1084 0.000
+ 23312110.177 -19189874.417 6 -14801137.82047 23312118.3004 0.000
+ 27977111.531 10665773.133 2 8490614.73145 27977139.8044 0.000
+ 25912843.391 -5009621.795 6 5510275.40546 25912854.5274 0.000
+ 26822448.989 -1569167.112 5 2270968.56945 26822465.9044 0.000
+ 25319275.266 -11663986.765 7 -8913460.23046 25319284.5864 0.000
+ 25798672.228 -5417984.096 6 5839266.77746 25798685.0404 0.000
+ 23331729.415 -17168960.258 6 -13184059.42947 23331737.7034 0.000
+ 02 1 30 11 26 0.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25349863.489 -4629261.587 6 -3449795.29746 25349876.1964 0.000
+ 23311919.810 -19190873.787 6 -14801916.55047 23311927.9814 0.000
+ 27999733.362 10784645.989 2 8583242.05045 27999767.1924 0.000
+ 25928691.412 -4926343.676 6 5575167.24246 25928703.1694 0.000
+ 26833505.734 -1511064.901 5 2316242.91745 26833521.8174 0.000
+ 25306299.685 -11732173.892 7 -8966592.96146 25306309.4264 0.000
+ 25815051.186 -5331913.469 6 5906334.52946 25815065.0894 0.000
+ 23339257.768 -17129398.554 6 -13153232.17347 23339265.8564 0.000
+ 02 1 30 11 26 30.0090000 0 8G 5G 6G 9G14G24G25G29G30
+ 25365402.598 -4547603.216 6 -3386165.53546 25365414.8954 0.000
+ 23311815.595 -19191421.946 6 -14802343.68747 23311823.7894 0.000
+ 28022365.580 10903572.767 2 8675911.30645 28022393.7254 0.000
+ 25944600.158 -4842741.155 6 5640311.87846 25944611.0714 0.000
+ 26844655.148 -1452473.986 5 2361898.04345 26844671.0904 0.000
+ 25293379.222 -11800069.286 6 -9019498.37846 25293389.2914 0.000
+ 25831485.250 -5245552.617 6 5973628.39946 25831499.1414 0.000
+ 23346840.311 -17089552.866 6 -13122183.63247 23346848.3174 0.000
+ 02 1 30 11 27 0.0090000 0 7G 5G 6G14G24G25G29G30
+ 25380970.794 -4465792.159 6 -3322416.82546 25380983.6074 0.000
+ 23311796.965 -19191519.926 6 -14802420.03647 23311805.1004 0.000
+ 25960570.542 -4758817.212 6 5705706.92446 25960581.4094 0.000
+ 26855897.902 -1393396.620 5 2407932.20945 26855914.1964 0.000
+ 25280515.447 -11867671.200 7 -9072175.11246 25280525.4354 0.000
+ 25847974.294 -5158904.881 6 6041145.85946 25847989.1234 0.000
+ 23354476.570 -17049424.062 6 -13090914.47347 23354484.5644 0.000
+ 02 1 30 11 27 30.0090000 0 7G 5G 6G14G24G25G29G30
+ 25396567.976 -4383830.209 6 -3258550.52146 25396580.9294 0.000
+ 23311863.537 -19191169.597 6 -14802147.05547 23311871.7774 0.000
+ 25976601.444 -4674576.359 6 5771348.94146 25976613.5884 0.000
+ 26867231.842 -1333835.506 5 2454343.35345 26867247.9014 0.000
+ 25267707.089 -11934978.692 7 -9124622.41546 25267716.9834 0.000
+ 25864516.628 -5071974.885 6 6108883.23246 25864530.8474 0.000
+ 23362166.475 -17009013.610 6 -13059425.85047 23362174.5404 0.000
+ 02 1 30 11 28 0.0090000 0 7G 5G 6G14G24G25G29G30
+ 25412194.076 -4301716.137 6 -3194565.68746 25412207.2754 0.000
+ 23312015.729 -19190370.065 6 -14801524.04747 23312023.8884 0.000
+ 25992691.245 -4590020.123 6 5837236.68746 25992703.7534 0.000
+ 26878657.613 -1273790.404 5 2501131.61445 26878673.0394 0.000
+ 25254955.657 -12001987.791 7 -9176837.21046 25254965.1404 0.000
+ 25881112.194 -4984763.769 5 6176839.63546 25881126.5074 0.000
+ 23369910.128 -16968320.062 6 -13027716.63547 23369918.2524 0.000
+ 02 1 30 11 28 30.0090000 0 7G 5G 6G14G24G25G29G30
+ 25427848.888 -4219449.968 6 -3130462.35346 25427861.6774 0.000
+ 23312253.383 -19189121.433 6 -14800551.08847 23312261.4834 0.000
+ 26008842.337 -4505151.061 6 5903368.19846 26008854.3754 0.000
+ 26890176.009 -1213262.326 5 2548296.22145 26890191.4594 0.000
+ 25242261.665 -12068696.113 7 -9228817.63846 25242271.4764 0.000
+ 25897761.172 -4897274.659 6 6245012.64546 25897776.2354 0.000
+ 23377707.812 -16927343.250 6 -12995786.69147 23377716.2644 0.000
+ 02 1 30 11 29 0.0090000 0 7G 5G 6G14G24G25G29G30
+ 25443532.801 -4137031.832 6 -3066240.57446 25443545.4264 0.000
+ 23312576.377 -19187423.940 6 -14799228.36647 23312584.3364 0.000
+ 26025051.656 -4419972.020 6 5969741.23946 26025063.0384 0.000
+ 26901786.154 -1152252.880 5 2595835.93745 26901802.5064 0.000
+ 25229625.037 -12135100.694 7 -9280561.38646 25229634.1334 0.000
+ 25914462.802 -4809509.990 6 6313400.40346 25914477.3964 0.000
+ 23385559.546 -16886083.108 6 -12963635.97347 23385567.7404 0.000
+ 02 1 30 11 29 30.0090000 0 7G 5G 6G14G24G25G29G30
+ 25459244.798 -4054463.743 6 -3001901.97046 25459257.0944 0.000
+ 23312984.331 -19185280.113 6 -14797557.84547 23312992.2444 0.000
+ 26041318.995 -4334487.471 6 6036352.35046 26041331.0104 0.000
+ 26913486.239 -1090765.753 5 2643747.90545 26913503.5524 0.000
+ 25217046.415 -12201201.033 7 -9332068.04946 25217055.7114 0.000
+ 25931215.672 -4721474.591 6 6381999.08546 25931231.2394 0.000
+ 23393464.451 -16844541.696 6 -12931266.07347 23393472.6574 0.000
+ 02 1 30 11 30 0.0090000 0 7G 5G 6G14G24G25G29G30
+ 25474986.827 -3971740.895 6 -2937442.76446 25474999.5694 0.000
+ 23313478.120 -19182685.361 6 -14795535.95947 23313486.1854 0.000
+ 26057644.731 -4248695.328 6 6103203.16846 26057656.7814 0.000
+ 26925278.599 -1028797.171 5 2692035.02645 26925296.1944 0.000
+ 25204527.241 -12266989.465 7 -9383331.67046 25204536.4784 0.000
+ 25948019.999 -4633166.208 6 6450810.49646 25948034.7574 0.000
+ 23401423.928 -16802713.693 6 -12898672.85347 23401432.4274 0.000
+ 02 1 30 11 30 30.0090000 0 7G 5G 6G14G24G25G29G30
+ 25490756.880 -3888867.448 6 -2872866.21246 25490770.0674 0.000
+ 23314056.842 -19179644.096 6 -14793166.13747 23314064.9184 0.000
+ 26074027.756 -4162602.282 6 6170288.40846 26074040.1814 0.000
+ 26937161.769 -966352.208 5 2740693.37445 26937178.7784 0.000
+ 25192067.037 -12332467.826 7 -9434353.68146 25192075.7344 0.000
+ 25964875.611 -4544591.893 6 6519829.08945 25964890.2054 0.000
+ 23409437.512 -16760603.169 6 -12865859.48947 23409445.6234 0.000
+ 02 1 30 11 31 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25506556.649 -3805841.129 6 -2808170.55746 25506569.5794 0.000
+ 23314721.030 -19176154.515 6 -14790446.98247 23314729.0254 0.000
+ 26090468.273 -4076209.003 6 6237607.61546 26090480.8504 0.000
+ 27840540.645 -33637.68714 0.000 0.000 0.000
+ 26949135.129 -903430.262 5 2789723.38145 26949153.2634 0.000
+ 25179666.778 -12397630.957 7 -9485130.04546 25179676.3664 0.000
+ 25981781.616 -4455752.215 6 6589054.50146 25981795.1204 0.000
+ 23417504.979 -16718207.964 6 -12832824.29147 23417513.3024 0.000
+ 02 1 30 11 31 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25522384.099 -3722665.941 6 -2743358.86846 25522396.8064 0.000
+ 23315469.420 -19172220.963 6 -14787381.87747 23315477.4034 0.000
+ 26106963.904 -3989522.053 6 6305155.64646 26106975.7084 0.000
+ 27823073.920 -125422.796 4 0.000 0.000 0.000
+ 26961198.894 -840036.836 5 2839120.80445 26961215.2584 0.000
+ 25167326.568 -12462480.102 7 -9535661.74646 25167335.8994 0.000
+ 25998736.774 -4366653.770 6 6658481.53945 25998751.1214 0.000
+ 23425626.059 -16675531.771 6 -12799570.15947 23425634.4524 0.000
+ 02 1 30 11 32 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25538240.143 -3639342.664 6 -2678431.79646 25538252.8734 0.000
+ 23316302.331 -19167844.507 6 -14783971.64447 23316310.3144 0.000
+ 26123515.253 -3902545.027 6 6372929.71746 26123526.6934 0.000
+ 27805596.061 -217265.058 4 0.000 0.000 0.000
+ 26973351.621 -776174.038 5 2888883.97045 26973368.0324 0.000
+ 25155045.964 -12527013.546 7 -9585947.43846 25155055.4944 0.000
+ 26015739.828 -4277300.067 6 6728107.44145 26015752.8284 0.000
+ 23433800.573 -16632575.280 6 -12766097.60047 23433808.5454 0.000
+ 02 1 30 11 32 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25554125.430 -3555866.687 6 -2613385.74846 25554137.9144 0.000
+ 23317220.132 -19163021.021 6 -14780213.07747 23317227.7754 0.000
+ 26140122.599 -3815275.833 6 6440931.42246 26140135.4584 0.000
+ 27788107.935 -309157.087 4 -57283.39455 27788137.1354 0.000
+ 26985594.160 -711838.531 5 2939015.44445 26985611.4514 0.000
+ 25142827.077 -12591224.058 7 -9635981.49046 25142836.7134 0.000
+ 26032792.500 -4187689.316 5 6797933.66845 26032805.6994 0.000
+ 23442029.161 -16589333.493 6 -12732402.73747 23442037.3674 0.000
+ 02 1 30 11 33 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25570039.204 -3472240.195 6 -2548222.37946 25570052.2514 0.000
+ 23318222.538 -19157752.949 6 -14776108.07147 23318230.3924 0.000
+ 26156784.514 -3727719.330 6 6509157.03946 26156796.9044 0.000
+ 27770610.876 -401098.082 3 -128924.33945 27770642.1744 0.000
+ 26997926.789 -647033.581 5 2989512.76445 26997943.7744 0.000
+ 25130669.816 -12655111.185 7 -9685763.58546 25130679.0424 0.000
+ 26049893.913 -4097826.171 5 6867956.51145 26049908.4494 0.000
+ 23450311.811 -16545808.686 6 -12698487.33747 23450319.7824 0.000
+ 02 1 30 11 33 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25585980.904 -3388464.951 6 -2482943.11746 25585993.2834 0.000
+ 23319309.273 -19152042.548 6 -14771658.39847 23319317.1154 0.000
+ 26173499.752 -3639880.182 6 6577602.84146 26173513.1504 0.000
+ 27753105.300 -493087.021 4 -200602.68445 27753134.7224 0.000
+ 27010346.907 -581762.456 5 3040373.26545 27010362.9784 0.000
+ 25118573.978 -12718674.265 7 -9735293.15246 25118583.8484 0.000
+ 26067040.799 -4007715.364 5 6938172.38745 26067056.0964 0.000
+ 23458647.692 -16502002.368 6 -12664352.57247 23458655.7684 0.000
+ 02 1 30 11 34 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25601950.763 -3304542.921 6 -2417549.49446 25601964.4664 0.000
+ 23320479.719 -19145892.097 6 -14766865.82547 23320487.5264 0.000
+ 26190268.142 -3551762.830 6 6646265.48746 26190280.4734 0.000
+ 27735590.401 -585122.914 4 -272317.62945 27735622.7434 0.000
+ 27022856.104 -516028.437 5 3091594.51245 27022872.1284 0.000
+ 25106540.034 -12781912.070 7 -9784569.26246 25106549.7524 0.000
+ 26084235.551 -3917361.573 5 7008577.52945 26084250.8484 0.000
+ 23467037.191 -16457916.213 6 -12629999.75947 23467045.4084 0.000
+ 02 1 30 11 34 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25617949.072 -3220473.781 6 -2352041.23046 25617961.7084 0.000
+ 23321733.788 -19139301.654 6 -14761730.39547 23321741.8294 0.000
+ 26207088.896 -3463369.596 6 6715143.06546 26207101.8724 0.000
+ 27718067.721 -677202.404 4 -344066.60745 27718098.2694 0.000
+ 27035453.036 -449832.553 5 3143175.60745 27035469.5994 0.000
+ 25094568.744 -12844822.145 7 -9833590.00246 25094577.7584 0.000
+ 26101475.551 -3826767.016 5 7079170.32345 26101491.2004 0.000
+ 23475479.682 -16413549.892 6 -12595428.62547 23475487.8874 0.000
+ 02 1 30 11 35 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25633975.386 -3136256.424 6 -2286417.46446 25633988.7144 0.000
+ 23323071.702 -19132270.545 6 -14756251.58947 23323079.8734 0.000
+ 26223962.183 -3374702.018 6 6784234.39046 26223975.3354 0.000
+ 27700536.504 -769321.543 4 -415846.47445 27700565.5744 0.000
+ 27048137.085 -383175.276 5 3195116.25745 27048154.3054 0.000
+ 25082660.482 -12907400.251 7 -9882352.06446 25082669.6604 0.000
+ 26118760.710 -3735933.413 6 7149949.36145 26118776.6644 0.000
+ 23483976.028 -16368901.985 6 -12560638.08147 23483984.2694 0.000
+ 02 1 30 11 35 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25650029.628 -3051891.339 6 -2220678.60546 25650042.6274 0.000
+ 23324493.298 -19124799.731 6 -14750430.15047 23324501.2344 0.000
+ 26240886.900 -3285763.453 6 6853536.91646 26240900.2994 0.000
+ 27682999.262 -861477.959 4 -487655.46645 27683027.0674 0.000
+ 27060908.676 -316058.717 5 3247414.72945 27060926.7644 0.000
+ 25070815.632 -12969644.212 7 -9930853.76046 25070824.5644 0.000
+ 26136091.601 -3644863.943 6 7220912.20445 26136106.4304 0.000
+ 23492525.749 -16323972.764 6 -12525628.33147 23492534.1064 0.000
+ 02 1 30 11 36 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25666111.476 -2967381.454 6 -2154826.88546 25666124.3704 0.000
+ 23325998.023 -19116892.546 6 -14744268.68047 23326005.7954 0.000
+ 26257861.620 -3196559.229 6 6923046.42146 26257874.8194 0.000
+ 27665453.665 -953671.434 4 -559493.37245 27665482.2674 0.000
+ 27073767.327 -248486.547 5 3300068.26145 27073785.4974 0.000
+ 25059034.253 -13031554.601 7 -9979095.52046 25059043.3614 0.000
+ 26153465.368 -3553564.347 5 7292054.35945 26153479.2944 0.000
+ 23501128.485 -16278765.060 6 -12490401.58047 23501136.6794 0.000
+ 02 1 30 11 36 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25682221.282 -2882724.846 6 -2088860.85946 25682234.5284 0.000
+ 23327585.885 -19108547.516 6 -14737766.03247 23327593.7274 0.000
+ 26274887.597 -3107090.267 6 6992762.19346 26274900.9254 0.000
+ 27647903.066 -1045897.198 5 -631356.47645 27647933.4264 0.000
+ 27086713.070 -180458.819 5 3353076.74545 27086730.7474 0.000
+ 25047317.485 -13093126.775 7 -10027073.74946 25047326.7334 0.000
+ 26170882.452 -3462035.223 6 7363375.35645 26170895.8274 0.000
+ 23509784.819 -16233276.443 6 -12454955.93547 23509793.0594 0.000
+ 02 1 30 11 37 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25698358.561 -2797922.516 6 -2022781.26446 25698371.9954 0.000
+ 23329257.063 -19099766.064 6 -14730923.31047 23329264.8354 0.000
+ 26291962.288 -3017360.371 6 7062681.28546 26291976.1094 0.000
+ 27630346.810 -1138153.387 5 -703243.28245 27630373.7714 0.000
+ 27099744.461 -111978.181 5 3406438.16645 27099762.0444 0.000
+ 25035664.951 -13154359.197 7 -10074787.22746 25035673.8254 0.000
+ 26188343.322 -3370280.529 5 7434872.09645 26188358.5964 0.000
+ 23518494.203 -16187508.230 6 -12419292.41747 23518502.3854 0.000
+ 02 1 30 11 37 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25714523.737 -2712974.355 6 -1956588.05246 25714537.6744 0.000
+ 23331010.899 -19090548.691 6 -14723740.91747 23331018.7884 0.000
+ 26309087.144 -2927372.084 6 7132801.71746 26309101.3274 0.000
+ 27612785.238 -1230437.021 5 -775151.51045 27612811.3554 0.000
+ 27112862.335 -43045.567 5 3460151.75245 27112880.9504 0.000
+ 25024078.205 -13215248.433 7 -10122233.30646 25024087.6424 0.000
+ 26205846.253 -3278302.825 5 7506542.65245 26205860.3784 0.000
+ 23527256.967 -16141459.987 6 -12383410.69947 23527265.3374 0.000
+ 02 1 30 11 38 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25730716.292 -2627882.202 6 -1890282.64346 25730729.1984 0.000
+ 23332847.556 -19080897.446 6 -14716220.44347 23332855.5514 0.000
+ 26326259.423 -2837129.949 6 7203119.94945 26326272.8104 0.000
+ 27595218.465 -1322746.734 5 -847080.09645 27595245.2264 0.000
+ 27126064.576 26335.666 5 3514214.90145 27126081.3384 0.000
+ 25012556.949 -13275793.948 7 -10169411.55046 25012566.0454 0.000
+ 26223390.651 -3186106.620 5 7578383.43345 26223406.9214 0.000
+ 23536072.637 -16095133.325 6 -12347312.02347 23536080.7254 0.000
+ 02 1 30 11 38 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25746937.059 -2542642.484 6 -1823862.25346 25746950.5754 0.000
+ 23334767.235 -19070809.369 6 -14708359.57647 23334775.2884 0.000
+ 26343480.987 -2746633.154 6 7273636.65145 26343494.1274 0.000
+ 27577647.836 -1415076.348 5 -919024.22745 27577674.0594 0.000
+ 27139354.056 96167.161 5 3568628.93045 27139371.3694 0.000
+ 25001101.924 -13335989.813 7 -10216317.33846 25001111.3144 0.000
+ 26240977.294 -3093691.202 5 7650395.02345 26240993.5174 0.000
+ 23544941.894 -16048524.522 6 -12310993.50347 23544950.2644 0.000
+ 02 1 30 11 39 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25763185.292 -2457258.952 6 -1757329.81546 25763197.9054 0.000
+ 23336769.248 -19060288.651 6 -14700161.59547 23336777.2084 0.000
+ 26360749.480 -2655888.158 6 7344346.70345 26360762.8674 0.000
+ 27560073.313 -1507426.412 5 -990984.31645 27560098.0124 0.000
+ 27152726.968 166443.810 5 3623389.83445 27152745.1024 0.000
+ 24989713.415 -13395836.971 7 -10262951.41146 24989722.8514 0.000
+ 26258604.570 -3001063.161 5 7722572.25345 26258621.2274 0.000
+ 23553864.250 -16001637.219 6 -12274457.97347 23553872.7954 0.000
+ 02 1 30 11 39 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25779460.865 -2371731.251 6 -1690684.99846 25779474.1464 0.000
+ 23338853.591 -19049335.532 6 -14691626.67947 23338861.4334 0.000
+ 26378064.261 -2564897.209 6 7415248.42445 26378078.0234 0.000
+ 27542495.602 -1599793.655 5 -1062957.81445 27542520.5354 0.000
+ 27166185.053 237164.319 5 3678496.58345 27166203.3634 0.000
+ 24978391.493 -13455332.540 7 -10309311.51746 24978401.0584 0.000
+ 26276271.393 -2908224.870 5 7794913.34945 26276287.8394 0.000
+ 23562839.802 -15954470.760 6 -12237704.92347 23562848.1954 0.000
+ 02 1 30 11 40 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25795763.853 -2286058.063 6 -1623926.85246 25795777.7204 0.000
+ 23341020.185 -19037949.378 6 -14682754.32947 23341027.9804 0.000
+ 26395426.003 -2473662.204 5 7486340.29345 26395440.9724 0.000
+ 27524915.806 -1692173.931 5 -1134941.45545 27524942.3804 0.000
+ 27179726.838 308328.469 5 3733949.03745 27179743.6244 0.000
+ 24967137.503 -13514472.609 7 -10355394.61646 24967146.7754 0.000
+ 26293977.486 -2815177.756 5 7867417.14545 26293992.8664 0.000
+ 23571868.488 -15907023.921 6 -12200733.37747 23571876.9284 0.000
+ 02 1 30 11 40 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25812094.093 -2200243.736 6 -1557058.72246 25812107.2814 0.000
+ 23343268.434 -19026134.959 6 -14673548.27747 23343276.2534 0.000
+ 26412833.232 -2382189.858 6 7557617.08745 26412848.0374 0.000
+ 27507333.262 -1784568.471 5 -1206936.27045 27507357.2114 0.000
+ 27193351.969 379930.576 5 3789742.81645 27193370.7364 0.000
+ 24955950.859 -13573258.664 7 -10401201.85946 24955960.3654 0.000
+ 26311723.122 -2721928.868 5 7940078.18245 26311738.1274 0.000
+ 23580950.221 -15859300.588 6 -12163546.39447 23580958.6724 0.000
+ 02 1 30 11 41 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25828450.693 -2114286.603 6 -1490079.29046 25828463.8924 0.000
+ 23345598.261 -19013891.245 6 -14664007.70947 23345606.0914 0.000
+ 26430285.202 -2290481.484 6 7629077.82545 26430299.5034 0.000
+ 27489748.204 -1876972.732 5 -1278938.68245 27489771.2734 0.000
+ 27207061.410 451970.529 5 3845877.70845 27207078.7944 0.000
+ 24944832.297 -13631686.753 7 -10446730.16746 24944841.4294 0.000
+ 26329506.496 -2628479.467 5 8012895.44345 26329521.9454 0.000
+ 23590084.345 -15811299.253 6 -12126142.78347 23590092.7384 0.000
+ 02 1 30 11 41 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25844835.762 -2028185.643 6 -1422987.82046 25844849.5594 0.000
+ 23348010.040 -19001217.737 6 -14654132.24147 23348017.9064 0.000
+ 26447781.636 -2198538.555 6 7700721.27246 26447795.2934 0.000
+ 27472162.792 -1969382.604 5 -1350945.46345 27472187.9124 0.000
+ 27220852.793 524447.697 5 3902353.27745 27220870.2714 0.000
+ 24933782.614 -13689753.075 7 -10491976.57946 24933792.1084 0.000
+ 26347327.116 -2534831.210 5 8085867.66545 26347343.3984 0.000
+ 23599272.098 -15763018.541 6 -12088521.48147 23599280.3974 0.000
+ 02 1 30 11 42 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25861247.176 -1941942.289 6 -1355785.37746 25861261.2664 0.000
+ 23350503.257 -18988116.317 6 -14643923.34047 23350511.0764 0.000
+ 26465321.762 -2106365.302 6 7772544.23746 26465336.4384 0.000
+ 27454576.037 -2061796.595 5 -1422955.41345 27454598.4034 0.000
+ 27234728.139 597359.246 5 3959167.35645 27234743.7994 0.000
+ 24922801.860 -13747456.330 7 -10536940.09546 24922811.0734 0.000
+ 26365184.823 -2440988.232 5 8158991.58045 26365201.6094 0.000
+ 23608512.462 -15714459.641 6 -12050683.41547 23608520.9964 0.000
+ 02 1 30 11 42 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25877686.104 -1855556.370 6 -1288471.86146 25877700.0064 0.000
+ 23353077.528 -18974587.516 6 -14633381.41347 23353085.3124 0.000
+ 26482905.387 -2013964.142 6 7844544.77545 26482919.1724 0.000
+ 27436989.129 -2154211.399 5 -1494966.06745 27437011.0494 0.000
+ 27248685.487 670703.810 5 4016318.84945 27248701.8274 0.000
+ 24911891.011 -13804793.588 7 -10581618.40846 24911900.0374 0.000
+ 26383079.755 -2346953.022 5 8232265.29845 26383096.3424 0.000
+ 23617806.064 -15665622.179 6 -12012628.28047 23617814.4334 0.000
+ 02 1 30 11 43 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25894151.707 -1769030.236 6 -1221049.06446 25894165.2234 0.000
+ 23355733.018 -18960634.230 6 -14622508.72047 23355740.9774 0.000
+ 26500531.068 -1921340.250 5 7916718.85345 26500544.7604 0.000
+ 27419402.861 -2246626.483 5 -1566976.92545 27419427.3604 0.000
+ 27262723.859 744477.139 5 4073804.44445 27262740.8804 0.000
+ 24901049.786 -13861764.855 7 -10626011.53246 24901059.0344 0.000
+ 26401010.500 -2252730.829 5 8305684.72845 26401026.9584 0.000
+ 23627152.112 -15616508.315 6 -11974357.76347 23627160.5874 0.000
+ 02 1 30 11 43 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25910643.774 -1682363.415 6 -1153516.67246 25910657.9694 0.000
+ 23358468.840 -18946256.634 6 -14611305.39547 23358476.8114 0.000
+ 26518199.269 -1828495.874 5 7989064.74245 26518214.4604 0.000
+ 27401816.964 -2339038.373 5 -1638985.31645 27401841.0534 0.000
+ 27276844.358 818677.978 5 4131623.18545 27276862.4454 0.000
+ 24890278.768 -13918367.417 7 -10670117.36446 24890288.0164 0.000
+ 26418975.467 -2158323.841 5 8379248.14745 26418992.9564 0.000
+ 23636550.861 -15567117.458 6 -11935871.41847 23636559.1134 0.000
+ 02 1 30 11 44 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25927163.436 -1595555.120 6 -1085873.99946 25927177.0574 0.000
+ 23361285.546 -18931454.461 6 -14599771.23547 23361293.2124 0.000
+ 26535909.262 -1735432.988 5 8061580.89845 26535923.4574 0.000
+ 27384232.242 -2431443.289 5 -1710988.30445 27384253.7174 0.000
+ 27291044.722 893305.400 5 4189774.25145 27291061.8244 0.000
+ 24879578.211 -13974597.387 7 -10713932.85646 24879586.9674 0.000
+ 26436975.506 -2063734.105 5 8452953.95345 26436993.4644 0.000
+ 23646002.472 -15517448.617 6 -11897168.46547 23646010.8534 0.000
+ 02 1 30 11 44 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25943709.264 -1508605.807 6 -1018121.49546 25943722.6044 0.000
+ 23364182.926 -18916228.778 6 -14587907.06247 23364190.7224 0.000
+ 26553659.264 -1642154.919 5 8134264.75145 26553673.1314 0.000
+ 27366648.878 -2523838.705 5 -1782983.93745 27366671.0794 0.000
+ 27305326.628 968357.515 5 4248256.29445 27305344.8564 0.000
+ 24868949.524 -14030452.333 7 -10757456.11846 24868958.0344 0.000
+ 26455010.381 -1968964.872 5 8526799.59345 26455028.0944 0.000
+ 23655507.158 -15467502.274 6 -11858249.27147 23655515.5624 0.000
+ 02 1 30 11 45 0.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25960282.449 -1421514.954 6 -950258.66346 25960296.5154 0.000
+ 23367160.849 -18900579.836 6 -14575713.08247 23367168.7154 0.000
+ 26571450.393 -1548663.971 5 8207114.43245 26571465.4794 0.000
+ 27349068.766 -2616221.165 5 -1854969.41045 27349092.4444 0.000
+ 27319689.005 1043832.913 5 4307068.16545 27319705.9904 0.000
+ 24858392.549 -14085929.586 7 -10800685.07646 24858401.4934 0.000
+ 26473078.207 -1874018.549 5 8600783.27345 26473095.7434 0.000
+ 23665064.587 -15417277.769 6 -11819113.33847 23665073.1794 0.000
+ 02 1 30 11 45 30.0090000 0 8G 5G 6G14G17G24G25G29G30
+ 25976882.065 -1334283.297 6 -882286.12046 25976894.6664 0.000
+ 23370218.919 -18884509.110 6 -14563190.44247 23370226.6324 0.000
+ 26589281.222 -1454963.628 5 8280127.30445 26589295.1604 0.000
+ 27331490.613 -2708588.509 5 -1926943.13345 27331513.6244 0.000
+ 27334131.981 1119729.261 5 4366207.99645 27334148.6154 0.000
+ 24847907.551 -14141027.292 7 -10843618.28746 24847916.3434 0.000
+ 26491179.151 -1778898.667 5 8674902.14345 26491196.9924 0.000
+ 23674674.824 -15366775.579 6 -11779761.02147 23674683.3114 0.000
+ 02 1 30 11 46 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 25993508.962 -1246909.336 6 -814202.69145 25993522.2904 0.000
+ 23373357.057 -18868018.109 6 -14550340.30547 23373364.7934 0.000
+ 26607151.816 -1361055.148 5 8353302.31445 26607165.9764 0.000
+ 27313916.455 -2800942.062 5 -1998906.25445 27313936.2304 0.000
+ 27348654.481 1196045.632 5 4425675.12445 27348671.5484 0.000
+ 24837495.101 -14195746.347 7 -10886256.44046 24837504.1864 0.000
+ 26509313.427 -1683606.085 5 8749155.58145 26509331.3854 0.000
+ 23684337.996 -15315995.333 6 -11740192.03847 23684346.4944 0.000
+ 02 1 30 11 46 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26010161.849 -1159399.850 6 -746013.62746 26010175.6704 0.000
+ 23376574.591 -18851109.483 6 -14537164.75347 23376582.4334 0.000
+ 26625060.213 -1266948.109 6 8426632.05745 26625075.8984 0.000
+ 27296345.568 -2893273.712 5 -2070852.22645 27296369.1764 0.000
+ 27363255.676 1272774.497 5 4485463.70045 27363273.4474 0.000
+ 24827155.299 -14250081.049 7 -10928595.09346 24827164.2554 0.000
+ 26527478.036 -1588150.835 5 8823535.80845 26527496.2754 0.000
+ 23694053.190 -15264941.165 6 -11700409.59947 23694061.6774 0.000
+ 02 1 30 11 47 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26026840.400 -1071751.423 6 -677716.33546 26026854.7364 0.000
+ 23379871.845 -18833782.667 6 -14523663.33247 23379879.7694 0.000
+ 26643006.165 -1172641.807 5 8500117.07545 26643022.1424 0.000
+ 27278779.932 -2985582.898 5 -2142780.72645 27278800.6574 0.000
+ 27377936.356 1349917.366 5 4545574.84245 27377954.1034 0.000
+ 24816889.041 -14304030.414 7 -10970633.48246 24816898.1144 0.000
+ 26545674.230 -1492532.095 5 8898043.39345 26545690.4654 0.000
+ 23703821.353 -15213610.705 6 -11660411.88547 23703829.7934 0.000
+ 02 1 30 11 47 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26043546.669 -983961.653 6 -609308.91746 26043559.8454 0.000
+ 23383249.007 -18816035.895 6 -14509834.67547 23383256.8614 0.000
+ 26660990.007 -1078136.218 5 8573757.36145 26661005.3524 0.000
+ 27261217.721 -3077864.058 5 -2214687.41545 27261239.1494 0.000
+ 27392695.164 1427475.204 5 4606009.40245 27392712.2664 0.000
+ 24806697.143 -14357588.971 7 -11012367.35046 24806706.4624 0.000
+ 26563901.740 -1396750.172 5 8972678.17145 26563919.0424 0.000
+ 23713642.143 -15162001.218 6 -11620196.73247 23713650.5364 0.000
+ 02 1 30 11 48 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26060279.090 -896032.685 6 -540793.00546 26060293.9424 0.000
+ 23386705.304 -18797872.296 6 -14495681.22047 23386713.0404 0.000
+ 26679011.406 -983436.540 5 8647548.89045 26679027.0554 0.000
+ 27243662.118 -3170116.342 5 -2286571.56145 27243683.5584 0.000
+ 27407532.413 1505443.621 5 4666763.83845 27407549.3634 0.000
+ 24796579.690 -14410756.607 7 -11053796.59646 24796588.6464 0.000
+ 26582157.701 -1300809.927 5 9047436.33545 26582176.3984 0.000
+ 23723515.854 -15110114.803 6 -11579765.78847 23723523.9774 0.000
+ 02 1 30 11 48 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26077036.642 -807970.814 6 -472173.55845 26077051.0014 0.000
+ 23390239.842 -18779298.835 6 -14481208.38547 23390247.7314 0.000
+ 26697067.554 -888552.082 5 8721484.41745 26697081.8084 0.000
+ 27226111.893 -3262343.207 5 -2358436.01945 27226130.5784 0.000
+ 27422445.815 1583814.406 5 4727831.83545 27422462.7064 0.000
+ 24786535.764 -14463537.423 7 -11094924.42946 24786544.8604 0.000
+ 26600442.885 -1204720.604 5 9122310.58345 26600461.9214 0.000
+ 23733441.041 -15057957.862 6 -11539124.04647 23733449.3634 0.000
+ 02 1 30 11 49 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26093820.605 -719771.434 6 -403446.93846 26093835.6564 0.000
+ 23393852.906 -18760311.577 6 -14466413.11347 23393860.6774 0.000
+ 26715159.555 -793480.647 5 8795565.62345 26715174.9464 0.000
+ 27208567.521 -3354536.960 5 -2430274.59745 27208588.9024 0.000
+ 27437436.510 1662590.726 5 4789215.81545 27437452.8044 0.000
+ 24776566.858 -14515923.776 7 -11135744.88846 24776575.8144 0.000
+ 26618757.915 -1108480.112 5 9197302.60745 26618777.7144 0.000
+ 23743418.613 -15005525.255 6 -11498267.50547 23743427.1944 0.000
+ 02 1 30 11 49 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26110630.943 -631434.082 6 -334612.81646 26110644.8454 0.000
+ 23397544.721 -18740910.655 6 -14451295.50647 23397552.5404 0.000
+ 26733286.533 -698224.616 5 8869790.67645 26733301.5494 0.000
+ 27191029.838 -3446693.869 5 -2502084.53145 27191050.1534 0.000
+ 27452503.962 1741771.671 5 4850915.07645 27452520.6314 0.000
+ 24766673.515 -14567912.751 7 -11176255.70446 24766682.2604 0.000
+ 26637100.355 -1012090.826 5 9272410.59445 26637117.8444 0.000
+ 23753448.801 -14952816.382 6 -11457195.69047 23753457.1944 0.000
+ 02 1 30 11 50 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26127467.044 -542960.167 6 -265672.28146 26127482.1064 0.000
+ 23401314.939 -18721098.158 6 -14435857.19247 23401322.9104 0.000
+ 26751448.335 -602788.061 5 8944156.36145 26751463.5854 0.000
+ 27173500.088 -3538812.349 5 -2573864.53945 27173519.2424 0.000
+ 27467647.667 1821353.194 5 4912926.53345 27467664.6064 0.000
+ 24756856.353 -14619503.342 7 -11216456.08546 24756865.0284 0.000
+ 26655470.718 -915556.991 5 9347631.20445 26655491.2674 0.000
+ 23763531.437 -14899832.519 6 -11415909.60947 23763539.7714 0.000
+ 02 1 30 11 50 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26144329.120 -454348.795 5 -196624.67846 26144344.4534 0.000
+ 23405163.493 -18700874.108 6 -14420098.18847 23405171.4524 0.000
+ 26769643.399 -507172.940 5 9018661.21945 26769657.8644 0.000
+ 27155978.642 -3630888.660 5 -2645611.66545 27155999.3324 0.000
+ 27482868.126 1901334.847 5 4975249.69545 27482884.9484 0.000
+ 24747115.333 -14670692.020 7 -11256343.29046 24747123.7494 0.000
+ 26673869.019 -818880.445 5 9422963.03845 26673888.1614 0.000
+ 23773666.389 -14846572.654 6 -11374408.44947 23773674.7704 0.000
+ 02 1 30 11 51 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26161217.611 -365600.707 6 -127470.52146 26161232.6744 0.000
+ 23409089.982 -18680240.233 6 -14404019.84047 23409097.7304 0.000
+ 26787870.931 -411382.990 5 9093302.30245 26787887.5424 0.000
+ 27138464.723 -3722920.617 5 -2717324.24445 27138485.0964 0.000
+ 27498163.402 1981713.661 5 5037882.34645 27498178.8404 0.000
+ 24737451.091 -14721477.689 7 -11295916.46346 24737459.4494 0.000
+ 26692292.271 -722064.816 5 9498403.21245 26692310.8504 0.000
+ 23783853.968 -14793037.715 6 -11332692.94847 23783862.7954 0.000
+ 02 1 30 11 51 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26178131.031 -276718.128 6 -58211.55246 26178146.4574 0.000
+ 23413094.007 -18659199.439 6 -14387624.42147 23413101.5214 0.000
+ 26806132.901 -315423.075 5 9168075.79645 26806149.2534 0.000
+ 27120959.522 -3814906.993 5 -2789001.31045 27120980.0944 0.000
+ 27513534.266 2062485.825 5 5100821.49045 27513552.7984 0.000
+ 24727863.650 -14771859.168 7 -11335174.68146 24727872.2544 0.000
+ 26710740.921 -625114.950 5 9573948.04845 26710758.1644 0.000
+ 23794092.940 -14739229.457 6 -11290764.46347 23794101.3804 0.000
+ 02 1 30 11 52 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26195071.722 -187698.209 6 11154.38946 26195087.4534 0.000
+ 23417175.822 -18637749.307 6 -14370910.03347 23417183.5584 0.000
+ 26824425.660 -219292.814 5 9242982.02545 26824441.1334 0.000
+ 27103464.278 -3906842.068 5 -2860638.44645 27103484.4514 0.000
+ 27528980.126 2143652.145 5 5164067.78345 27528999.4914 0.000
+ 24718354.238 -14821831.287 7 -11374113.92746 24718363.0534 0.000
+ 26729216.600 -528030.685 5 9649597.47945 26729234.1014 0.000
+ 23804385.210 -14685144.598 6 -11248620.45647 23804393.7674 0.000
+ 02 1 30 11 52 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26212037.321 -98542.795 6 80625.95646 26212052.6544 0.000
+ 23421335.101 -18615892.541 6 -14353878.79447 23421342.9904 0.000
+ 26842750.681 -122996.979 5 9318017.28645 26842767.4434 0.000
+ 27085979.248 -3998724.646 5 -2932234.66545 27086000.5704 0.000
+ 27544499.331 2225209.237 5 5227618.56445 27544516.7034 0.000
+ 24708922.697 -14871393.609 7 -11412733.84946 24708931.4424 0.000
+ 26747716.583 -430816.931 5 9725347.89845 26747735.4794 0.000
+ 23814729.370 -14630785.279 6 -11206262.58047 23814737.8334 0.000
+ 02 1 30 11 53 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26229029.219 -9251.156 5 150203.65645 26229045.2434 0.000
+ 23425571.545 -18593629.285 6 -14336530.80447 23425579.2004 0.000
+ 26861106.517 -26537.967 5 9393179.65045 26861122.2604 0.000
+ 27068505.177 -4090550.947 5 -3003787.02245 27068524.2494 0.000
+ 27560093.625 2307155.579 5 5291472.65445 27560110.8094 0.000
+ 24699569.986 -14920542.696 7 -11451031.77146 24699578.7894 0.000
+ 26766240.641 -333475.589 5 9801197.72445 26766260.5694 0.000
+ 23825126.165 -14576150.497 6 -11163690.06547 23825134.5944 0.000
+ 02 1 30 11 53 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26246046.337 80173.547 6 219885.02945 26246060.9084 0.000
+ 23429884.648 -18570963.420 6 -14318869.09947 23429892.4084 0.000
+ 26879492.255 70078.486 5 9468464.71045 26879509.6744 0.000
+ 27051041.166 -4182321.053 5 -3075295.58845 27051061.5514 0.000
+ 27575761.768 2389486.313 5 5355626.27345 27575777.6754 0.000
+ 24690295.500 -14969279.234 7 -11489008.23646 24690304.2454 0.000
+ 26784787.098 -236012.613 5 9877142.33245 26784806.0064 0.000
+ 23835574.726 -14521243.339 6 -11120905.30447 23835583.2944 0.000
+ 02 1 30 11 54 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26263089.134 169732.911 6 289671.35245 26263103.7984 0.000
+ 23434274.576 -18547894.260 6 -14300893.13847 23434282.6054 0.000
+ 26897907.554 166851.507 5 9543871.72845 26897925.1024 0.000
+ 27033589.379 -4274030.276 5 -3146756.77245 27033608.3684 0.000
+ 27591501.756 2472201.400 5 5420079.37245 27591518.6594 0.000
+ 24681100.496 -15017599.457 7 -11526660.29646 24681109.0654 0.000
+ 26803357.132 -138429.131 5 9953180.77545 26803376.2514 0.000
+ 23846075.339 -14466061.979 7 -11077906.88347 23846084.1774 0.000
+ 02 1 30 11 54 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26280157.884 259427.770 6 359563.24145 26280173.1704 0.000
+ 23438741.335 -18524421.820 6 -14282602.93647 23438749.2124 0.000
+ 26916353.861 263778.927 5 9619399.09745 26916370.4954 0.000
+ 27016148.742 -4365674.912 5 -3218167.55445 27016169.4914 0.000
+ 27607314.492 2555299.465 5 5484830.93945 27607332.7784 0.000
+ 24671985.240 -15065500.144 7 -11563985.44346 24671993.5634 0.000
+ 26821949.802 -40727.180 5 10029311.53545 26821968.7454 0.000
+ 23856628.147 -14410605.593 7 -11034694.15847 23856637.1384 0.000
+ 02 1 30 11 55 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26297251.958 349257.163 6 429559.98045 26297267.5024 0.000
+ 23443284.344 -18500547.984 7 -14263999.95647 23443292.2334 0.000
+ 26934826.844 360856.562 5 9695043.50845 26934842.2124 0.000
+ 26998722.180 -4457252.779 5 -3289526.32945 26998742.5774 0.000
+ 27623200.022 2638777.904 5 5549878.87945 27623218.3214 0.000
+ 24662950.124 -15112979.569 7 -11600982.33146 24662958.7984 0.000
+ 26840563.848 57089.648 5 10105531.84445 26840584.7374 0.000
+ 23867233.754 -14354874.967 6 -10991267.74747 23867242.5934 0.000
+ 02 1 30 11 55 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26314371.493 439220.600 6 499661.16145 26314385.8414 0.000
+ 23447903.546 -18476273.717 6 -14245084.95247 23447911.5874 0.000
+ 26953329.070 458082.003 5 9770803.11545 26953345.4694 0.000
+ 26981307.722 -4548761.076 5 -3360830.92545 26981327.3104 0.000
+ 27639158.359 2722634.480 5 5615221.48445 27639176.3294 0.000
+ 24653995.821 -15160035.457 8 -11637649.19746 24654004.1564 0.000
+ 26859199.559 155018.064 5 10181839.06345 26859219.8384 0.000
+ 23877891.025 -14298870.166 6 -10947627.68847 23877899.5594 0.000
+ 02 1 30 11 56 0.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26331515.986 529314.509 6 569864.01545 26331531.0494 0.000
+ 23452598.213 -18451603.352 6 -14225861.30147 23452606.2664 0.000
+ 26971856.987 555448.813 5 9846672.82545 26971873.6094 0.000
+ 26963907.472 -4640200.301 5 -3432081.71345 26963926.1224 0.000
+ 27655186.690 2806863.508 5 5680854.30445 27655204.0624 0.000
+ 24645121.531 -15206669.036 7 -11673986.98846 24645130.1584 0.000
+ 26877855.184 253051.934 5 10258228.43145 26877873.0964 0.000
+ 23888600.041 -14242594.748 6 -10903776.76447 23888608.5514 0.000
+ 02 1 30 11 56 30.0100000 0 8G 5G 6G14G17G24G25G29G30
+ 26348686.338 619543.265 6 640171.94045 26348701.6004 0.000
+ 23457368.876 -18426533.535 6 -14206326.38847 23457376.9524 0.000
+ 26990412.932 652958.448 5 9922653.82045 26990429.8594 0.000
+ 26946521.112 -4731562.978 5 -3503272.84345 26946540.5594 0.000
+ 27671285.752 2891467.441 5 5746779.28845 27671301.9874 0.000
+ 24636329.046 -15252873.386 7 -11709990.31946 24636337.9194 0.000
+ 26896531.303 351193.060 5 10334701.35645 26896549.0154 0.000
+ 23899361.267 -14186044.104 6 -10859711.37447 23899369.5194 0.000
+ 02 1 30 11 57 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26365881.925 709905.532 5 710583.90945 26365897.9964 0.000
+ 23462214.986 -18401066.413 6 -14186481.88247 23462222.9574 0.000
+ 27008995.241 750606.764 5 9998742.88945 27009014.0904 0.000
+ 27858894.401 -55865.25315 0.000 0.000 0.000
+ 26929149.681 -4822847.415 5 -3574403.02145 26929168.4954 0.000
+ 27687456.302 2976443.186 5 5812993.98245 27687474.3664 0.000
+ 24627618.536 -15298647.848 7 -11745658.67047 24627627.4564 0.000
+ 26915227.511 449437.139 5 10411254.52745 26915247.8604 0.000
+ 23910174.586 -14129219.318 6 -10815432.37347 23910183.1204 0.000
+ 02 1 30 11 57 30.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26383101.772 800398.794 5 781097.93145 26383117.2104 0.000
+ 23467136.335 -18375205.476 6 -14166330.50447 23467144.0834 0.000
+ 27027602.745 848388.431 5 10074935.84745 27027621.5014 0.000
+ 27838951.140 -160660.803 5 0.000 0.000 0.000
+ 26911793.782 -4914053.068 5 -3645471.82245 26911812.2214 0.000
+ 27703696.919 3061786.104 5 5879494.86345 27703713.9054 0.000
+ 24618989.791 -15343992.091 8 -11780991.79147 24618998.6414 0.000
+ 26933941.949 547778.870 5 10487883.77745 26933961.5844 0.000
+ 23921039.661 -14072123.103 6 -10770941.87347 23921048.0084 0.000
+ 02 1 30 11 58 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26400346.893 891022.653 5 851713.72545 26400362.5304 0.000
+ 23472132.157 -18348951.741 6 -14145873.04447 23472139.8704 0.000
+ 27046235.546 946300.681 5 10151230.53245 27046254.0674 0.000
+ 27818996.851 -265510.690 5 -49022.36355 27819029.6144 0.000
+ 26894453.254 -5005177.100 5 -3716477.02645 26894472.0794 0.000
+ 27720006.676 3147494.097 5 5946280.14645 27720025.3964 0.000
+ 24610443.133 -15388903.914 7 -11815987.95647 24610451.9834 0.000
+ 26952674.387 646215.302 5 10564586.82645 26952694.5494 0.000
+ 23931956.389 -14014755.346 6 -10726239.78947 23931964.9704 0.000
+ 02 1 30 11 58 30.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26417617.893 981779.079 5 922432.83145 26417633.7534 0.000
+ 23477203.118 -18322304.044 6 -14125108.60347 23477210.7024 0.000
+ 27064892.674 1044342.713 5 10227626.36545 27064909.3664 0.000
+ 27799034.264 -370409.962 5 -130760.37445 27799066.7464 0.000
+ 26877128.977 -5096214.375 5 -3787414.64245 26877147.4864 0.000
+ 27736385.693 3233566.839 5 6013349.67445 27736404.4484 0.000
+ 24601979.800 -15433379.184 7 -11850643.94746 24601988.4164 0.000
+ 26971423.943 744745.772 5 10641363.14045 26971444.2344 0.000
+ 23942925.330 -13957113.865 6 -10681324.40547 23942933.7234 0.000
+ 02 1 30 11 59 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26434912.846 1072665.245 6 993253.05645 26434928.0144 0.000
+ 23482348.225 -18295266.179 6 -14104040.12847 23482355.9034 0.000
+ 27083573.448 1142508.744 5 10304118.84445 27083590.3754 0.000
+ 27779061.722 -475358.777 4 -212536.96745 27779094.8724 0.000
+ 26859820.958 -5187164.650 5 -3858284.47745 26859839.2214 0.000
+ 27752833.975 3319999.424 5 6080699.59045 27752852.4024 0.000
+ 24593598.999 -15477418.453 7 -11884960.19347 24593607.7444 0.000
+ 26990191.477 843364.597 5 10718208.25145 26990211.3344 0.000
+ 23953945.765 -13899201.492 6 -10636197.94247 23953954.4044 0.000
+ 02 1 30 11 59 30.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26452232.401 1163678.573 6 1064172.31345 26452247.6404 0.000
+ 23487566.989 -18267841.532 6 -14082670.25947 23487574.7724 0.000
+ 27102276.742 1240793.633 5 10380703.92045 27102292.9304 0.000
+ 27759080.107 -580356.268 4 -294351.55945 27759115.3094 0.000
+ 26842529.373 -5278027.625 5 -3929086.29445 26842548.9604 0.000
+ 27769348.882 3406787.776 5 6148326.74345 27769369.7474 0.000
+ 24585302.013 -15521021.967 7 -11918936.89447 24585310.5464 0.000
+ 27008974.627 942066.473 5 10795118.10845 27008996.2194 0.000
+ 23965017.123 -13841020.713 7 -10590862.33247 23965025.8564 0.000
+ 02 1 30 12 0 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26469577.185 1254822.415 5 1135193.29145 26469592.7644 0.000
+ 23492859.494 -18240027.681 6 -14060997.11147 23492867.3604 0.000
+ 27121003.361 1339197.930 5 10457382.01745 27121020.6984 0.000
+ 27739090.762 -685396.031 4 -376199.23745 27739122.3764 0.000
+ 26825257.540 -5368796.562 5 -3999814.85645 26825276.2254 0.000
+ 27785931.707 3493933.146 5 6216232.10545 27785949.9704 0.000
+ 24577088.395 -15564183.571 8 -11952569.25547 24577096.6134 0.000
+ 27027773.615 1040851.983 5 10872093.13445 27027796.1914 0.000
+ 23976140.467 -13782567.943 7 -10545314.77647 23976149.0954 0.000
+ 02 1 30 12 0 30.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26486945.706 1346095.246 5 1206314.76645 26486960.2074 0.000
+ 23498226.072 -18211827.100 6 -14039022.61047 23498234.0084 0.000
+ 27139751.489 1437717.425 5 10534149.85345 27139768.0994 0.000
+ 27719093.712 -790476.812 4 -458078.91945 27719127.4364 0.000
+ 26808002.404 -5459470.128 5 -4070469.12245 26808020.4564 0.000
+ 27802582.815 3581431.777 5 6284412.71845 27802600.2584 0.000
+ 24568959.342 -15606902.628 8 -11985856.76847 24568967.9694 0.000
+ 27046586.856 1139716.975 5 10949130.02445 27046608.0144 0.000
+ 23987315.130 -13723844.500 8 -10499556.31747 23987324.0154 0.000
+ 02 1 30 12 1 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26504338.666 1437496.515 5 1277536.34645 26504353.6944 0.000
+ 23503665.885 -18183241.091 6 -14016747.77647 23503673.7394 0.000
+ 27158520.720 1536348.926 5 10611004.99645 27158538.8194 0.000
+ 27699088.436 -895596.001 4 -539988.46645 27699121.7264 0.000
+ 26790765.218 -5550045.561 5 -4141046.94845 26790783.0244 0.000
+ 27819300.175 3669281.345 5 6352866.74945 27819317.1724 0.000
+ 24560914.715 -15649177.423 7 -12018798.10447 24560923.2374 0.000
+ 27065415.723 1238658.250 5 11026226.31145 27065436.7414 0.000
+ 23998541.356 -13664850.968 7 -10453587.38747 23998549.9014 0.000
+ 02 1 30 12 2 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26539197.258 1620680.481 5 1420276.67545 26539212.4854 0.000
+ 23514763.878 -18124920.416 6 -13971303.04647 23514771.6734 0.000
+ 27196120.209 1733933.160 5 10764965.55645 27196139.3284 0.000
+ 27659058.867 -1105940.921 4 -703890.78845 27659090.5404 0.000
+ 26756350.785 -5730893.257 5 -4281966.37745 26756369.4474 0.000
+ 27852933.494 3846022.197 5 6490586.53945 27852952.6014 0.000
+ 24545080.090 -15732387.775 7 -12083637.23047 24545088.8004 0.000
+ 27103113.241 1436755.141 5 11180586.06945 27103133.1684 0.000
+ 24021147.221 -13546056.126 7 -10361020.09347 24021156.2824 0.000
+ 02 1 30 12 2 30.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26556663.111 1712461.812 5 1491794.37445 26556678.9244 0.000
+ 23520421.373 -18095188.832 6 -13948135.55147 23520429.1574 0.000
+ 27214949.268 1832878.762 5 10842065.39645 27214968.0944 0.000
+ 27639035.267 -1211161.893 4 -785879.79145 27639066.4484 0.000
+ 26739173.207 -5821160.656 5 -4352304.18545 26739191.1664 0.000
+ 27869847.587 3934908.087 5 6559848.05345 27869867.1984 0.000
+ 24537290.964 -15773320.404 7 -12115532.72347 24537299.8614 0.000
+ 27121981.353 1535903.847 5 11257843.98745 27122004.1064 0.000
+ 24032527.334 -13486255.962 7 -10314422.61347 24032536.2904 0.000
+ 02 1 30 12 3 0.0100000 0 9G 5G 6G14G15G17G24G25G29G30
+ 26574153.328 1804371.401 5 1563412.04045 26574167.1604 0.000
+ 23526151.940 -18065075.788 6 -13924670.81647 23526159.5484 0.000
+ 27233797.966 1931925.240 5 10919243.84945 27233817.0264 0.000
+ 27619006.936 -1316409.281 5 -867889.40745 27619035.2454 0.000
+ 26722016.550 -5911317.800 5 -4422556.08545 26722033.6524 0.000
+ 27886827.529 4024136.335 5 6629376.31545 27886844.8554 0.000
+ 24529587.781 -15813799.643 7 -12147074.93747 24529596.1624 0.000
+ 27140862.351 1635117.792 5 11335152.78145 27140882.5134 0.000
+ 24043957.975 -13426185.384 8 -10267614.41247 24043966.8724 0.000
+ 02 1 30 12 3 30.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26591667.007 1896406.569 5 1635127.50845 26591682.7034 0.000
+ 23531953.975 -18034584.803 6 -13900911.58347 23531961.5944 0.000
+ 27252664.240 2031067.395 5 10996496.84845 27252684.3204 0.000
+ 27598973.400 -1421682.479 5 -949919.20545 27599001.4514 0.000
+ 26704881.096 -6001364.104 6 -4492721.59445 26704898.2924 0.000
+ 27192700.841 -31190.46614 0.000 0.000 0.000
+ 27903871.849 4113702.643 5 6699168.04345 27903889.9364 0.000
+ 24521971.175 -15853825.870 8 -12178264.16047 24521979.5334 0.000
+ 27159753.467 1734391.647 5 11412508.16045 27159778.6104 0.000
+ 24055440.226 -13365846.809 7 -10220597.40147 24055449.1354 0.000
+ 02 1 30 12 4 0.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26609204.843 1988569.487 5 1706942.54945 26609219.0154 0.000
+ 23537828.462 -18003714.685 6 -13876856.92547 23537836.3624 0.000
+ 27271549.290 2130304.590 5 11073823.88845 27271565.9004 0.000
+ 27578935.558 -1526976.345 4 -1031965.04645 27578967.8534 0.000
+ 26687767.443 -6091294.307 6 -4562796.67445 26687785.2134 0.000
+ 27176517.074 -116235.541 4 0.000 0.000 0.000
+ 27920979.823 4203607.262 5 6769223.34345 27920997.0664 0.000
+ 24514441.406 -15893394.074 8 -12209096.46447 24514449.7054 0.000
+ 27178656.033 1833724.896 4 11489909.84045 27178679.7124 0.000
+ 24066973.654 -13305237.808 7 -10173369.64947 24066982.3164 0.000
+ 02 1 30 12 4 30.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26626768.554 2080861.525 5 1778858.21545 26626783.4654 0.000
+ 23543774.933 -17972465.059 6 -13852506.55447 23543782.9864 0.000
+ 27290451.550 2229635.032 5 11151223.50545 27290469.7544 0.000
+ 27558894.229 -1632286.530 4 -1114023.58945 27558924.7654 0.000
+ 26670677.068 -6181103.846 6 -4632777.73745 26670694.1474 0.000
+ 27160341.422 -201239.011 4 -26488.87955 27160358.2794 0.000
+ 27938153.069 4293849.183 5 6839541.50845 27938169.4224 0.000
+ 24506999.514 -15932501.110 8 -12239569.42647 24507008.0134 0.000
+ 27197570.593 1933116.222 4 11567356.74845 27197593.7914 0.000
+ 24078558.877 -13244357.129 7 -10125930.21347 24078567.7624 0.000
+ 02 1 30 12 5 0.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26644354.897 2173278.188 5 1850870.98245 26644370.1124 0.000
+ 23549792.876 -17940840.926 6 -13827864.36347 23549800.8594 0.000
+ 27309371.299 2329052.219 5 11228690.77745 27309388.5544 0.000
+ 27538850.271 -1737613.881 4 -1196095.55145 27538879.2014 0.000
+ 26653608.811 -6270793.910 6 -4702665.66945 26653625.9954 0.000
+ 27144173.773 -286203.994 5 -92695.14145 27144190.7244 0.000
+ 27955387.537 4384422.686 4 6910118.00945 27955405.8234 0.000
+ 24499644.939 -15971148.859 8 -12269684.50547 24499653.6724 0.000
+ 27216495.131 2032558.606 5 11644843.43645 27216522.2214 0.000
+ 24090195.374 -13183208.621 8 -10078282.08147 24090204.3534 0.000
+ 02 1 30 12 5 30.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26661963.431 2265814.375 5 1922976.87345 26661979.5954 0.000
+ 23555880.868 -17908848.370 6 -13802935.08947 23555888.7454 0.000
+ 27328305.282 2428548.243 5 11306219.56345 27328324.2954 0.000
+ 27518802.241 -1842960.581 5 -1278182.51645 27518829.7644 0.000
+ 26636563.917 -6360366.413 6 -4772461.97845 26636581.7234 0.000
+ 27128011.625 -371134.407 5 -158874.44445 27128027.5204 0.000
+ 27972686.219 4475320.548 4 6980947.31845 27972704.0604 0.000
+ 24492377.491 -16009340.375 8 -12299444.08047 24492385.6734 0.000
+ 27235427.002 2132044.518 5 11722364.06845 27235451.7944 0.000
+ 24101881.464 -13121797.323 7 -10030429.17347 24101890.3144 0.000
+ 02 1 30 12 6 0.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26679596.131 2358469.063 5 1995175.08945 26679612.3544 0.000
+ 23562038.488 -17876489.533 6 -13777720.41147 23562046.2014 0.000
+ 27347253.512 2528119.236 5 11383806.66345 27347272.2684 0.000
+ 27498751.037 -1948324.623 5 -1360283.02045 27498778.6784 0.000
+ 26619541.554 -6449819.483 6 -4842165.25545 26619559.3134 0.000
+ 27111855.691 -456030.313 5 -225026.91445 27111870.8364 0.000
+ 27990044.388 4566539.590 5 7052026.79845 27990062.8974 0.000
+ 24485197.105 -16047074.131 8 -12328846.95947 24485205.2404 0.000
+ 27254366.639 2231569.838 5 11799915.30245 27254391.9824 0.000
+ 24113617.539 -13060124.313 7 -9982372.33047 24113626.3314 0.000
+ 02 1 30 12 6 30.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26697250.868 2451242.961 5 2067466.18845 26697266.1304 0.000
+ 23568265.952 -17843764.558 6 -13752220.43147 23568273.8764 0.000
+ 27366214.964 2627763.353 5 11461450.73545 27366233.9424 0.000
+ 27478697.411 -2053702.009 5 -1442393.96945 27478724.5834 0.000
+ 26602542.037 -6539149.135 5 -4911772.36245 26602558.6014 0.000
+ 27095707.464 -540889.629 4 -291150.80745 27095724.6724 0.000
+ 28007464.173 4658078.316 5 7123355.42245 28007482.8004 0.000
+ 24478104.072 -16084347.483 8 -12357891.08247 24478112.1254 0.000
+ 27273313.103 2331132.994 4 11877496.08645 27273337.9894 0.000
+ 24125403.380 -12998188.650 7 -9934110.82647 24125412.3604 0.000
+ 02 1 30 12 7 0.0100000 0 10G 5G 6G14G15G17G22G24G25G29G30
+ 26714929.005 2544142.959 5 2139855.57945 26714945.4404 0.000
+ 23574564.081 -17810667.351 6 -13726430.40847 23574572.0054 0.000
+ 27385191.837 2727484.912 5 11539155.15945 27385211.9644 0.000
+ 27458643.589 -2159082.725 5 -1524507.50745 27458671.9224 0.000
+ 26585568.198 -6628345.120 5 -4981275.32045 26585585.4884 0.000
+ 27079567.009 -625704.087 4 -357239.84745 27079581.4974 0.000
+ 28024945.116 4749941.381 5 7194936.79245 28024963.1444 0.000
+ 24471100.689 -16121150.695 8 -12386568.86247 24471108.7894 0.000
+ 27292268.072 2430738.199 4 11955109.55045 27292290.2034 0.000
+ 24137240.706 -12935983.187 7 -9885639.08347 24137249.5334 0.000
+ 02 1 30 12 7 30.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26732630.352 2637166.170 5 2212340.97245 26732646.8924 0.000
+ 23580932.263 -17777202.177 6 -13700353.65247 23580940.0354 0.000
+ 27404182.711 2827278.131 5 11616915.39245 27404203.6944 0.000
+ 27438588.027 -2264466.812 5 -1606623.63345 27438614.0504 0.000
+ 26568619.759 -6717407.548 5 -5050674.16145 26568637.5064 0.000
+ 27063435.866 -710475.627 4 -423295.34645 27063449.6864 0.000
+ 24464186.426 -16157484.937 8 -12414881.20847 24464194.8194 0.000
+ 27311229.230 2530379.638 4 12032751.25545 27311255.3004 0.000
+ 24149128.861 -12873510.942 8 -9836959.45847 24149137.6414 0.000
+ 02 1 30 12 8 0.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26750355.143 2730310.174 5 2284920.45745 26750372.2814 0.000
+ 23587370.023 -17743372.035 6 -13673992.51247 23587377.9014 0.000
+ 27423185.454 2927138.096 5 11694727.63245 27423205.0184 0.000
+ 27418532.705 -2369853.392 4 -1688741.71345 27418558.5414 0.000
+ 26551697.253 -6806335.644 6 -5119968.37046 26551714.1574 0.000
+ 27047312.498 -795205.359 4 -489318.34045 27047328.2294 0.000
+ 24457361.324 -16193350.422 8 -12442828.29447 24457370.0104 0.000
+ 27330197.688 2630052.428 4 12110417.36945 27330225.5044 0.000
+ 24161067.216 -12810773.934 8 -9788073.52947 24161076.2424 0.000
+ 02 1 30 12 8 30.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26768103.489 2823576.910 5 2357595.60245 26768120.1934 0.000
+ 23593877.162 -17709176.210 6 -13647346.43147 23593885.0394 0.000
+ 27442202.206 3027063.860 5 11772591.12245 27442221.4074 0.000
+ 27398478.009 -2475237.557 5 -1770857.96145 27398505.4384 0.000
+ 26534801.022 -6895124.274 6 -5189153.90245 26534818.3594 0.000
+ 27031197.776 -879890.168 5 -555306.32245 27031212.6164 0.000
+ 24450626.324 -16228742.975 8 -12470406.86047 24450634.6354 0.000
+ 27349171.780 2729755.852 4 12188107.33045 27349195.8804 0.000
+ 24173056.363 -12747770.512 8 -9738980.00947 24173065.1904 0.000
+ 02 1 30 12 9 0.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26785875.207 2916965.007 5 2430365.31345 26785891.4194 0.000
+ 23600453.533 -17674616.889 6 -13620417.10347 23600461.4224 0.000
+ 27461229.856 3127051.516 5 11850502.89445 27461249.9724 0.000
+ 27378424.088 -2580617.341 5 -1852970.77745 27378451.9754 0.000
+ 26517931.663 -6983771.543 5 -5258229.29945 26517948.3094 0.000
+ 27015090.494 -964529.983 4 -621259.22645 27015106.1194 0.000
+ 24443981.627 -16263661.482 8 -12497616.05547 24443990.0554 0.000
+ 27368150.423 2829485.955 5 12265818.06745 27368178.1584 0.000
+ 24185096.258 -12684501.457 8 -9689679.50047 24185105.3784 0.000
+ 02 1 30 12 9 30.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26803668.891 3010472.426 5 2503228.05745 26803685.6774 0.000
+ 23607098.681 -17639697.092 6 -13593206.88647 23607106.7344 0.000
+ 27480268.091 3227096.535 5 11928459.29345 27480290.3164 0.000
+ 27358371.205 -2685991.532 5 -1935079.32345 27358398.4004 0.000
+ 26501089.418 -7072276.496 5 -5327193.79145 26501106.9314 0.000
+ 26998992.464 -1049125.655 4 -687177.71245 26999007.7034 0.000
+ 24437426.946 -16298105.996 8 -12524455.90347 24437435.3634 0.000
+ 27387133.354 2929238.108 4 12343545.95745 27387161.5224 0.000
+ 24197186.027 -12620968.875 8 -9640173.65047 24197195.2524 0.000
+ 02 1 30 12 10 0.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26821484.864 3104094.825 5 2576180.28445 26821503.1854 0.000
+ 23613811.170 -17604422.073 6 -13565719.87047 23613818.9424 0.000
+ 27499316.091 3327191.794 5 12006454.88145 27499336.5584 0.000
+ 27338318.810 -2791361.280 5 -2017184.38045 27338345.1034 0.000
+ 26484274.013 -7160640.247 5 -5396048.28646 26484291.1744 0.000
+ 26982902.540 -1133680.204 5 -753064.04945 26982917.5564 0.000
+ 24430962.144 -16332078.633 8 -12550928.04647 24430970.5494 0.000
+ 27406119.825 3029005.489 5 12421285.68645 27406145.5444 0.000
+ 24209325.344 -12557176.977 8 -9590465.72447 24209334.5704 0.000
+ 02 1 30 12 10 30.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26839323.036 3197835.694 5 2649224.93345 26839340.3374 0.000
+ 23620592.135 -17568789.244 6 -13537954.03747 23620599.8484 0.000
+ 27518374.781 3427338.044 5 12084490.20045 27518394.2874 0.000
+ 27318268.657 -2896720.137 5 -2099280.98945 27318294.0124 0.000
+ 26467487.159 -7248856.173 5 -5464787.56646 26467504.0624 0.000
+ 26966820.641 -1218188.794 5 -818914.76045 26966836.7704 0.000
+ 24424588.315 -16365573.470 8 -12577027.88747 24424596.9084 0.000
+ 27425108.748 3128788.899 4 12499037.90745 27425134.9944 0.000
+ 24221514.600 -12493121.918 8 -9540552.74147 24221523.7674 0.000
+ 02 1 30 12 11 0.0100000 0 9G 5G 6G14G15G17G22G25G29G30
+ 26857184.929 3291698.259 5 2722364.31445 26857203.6964 0.000
+ 23627441.236 -17532796.470 6 -13509907.73347 23627449.0434 0.000
+ 27537441.474 3527536.079 5 12162565.75845 27537462.5514 0.000
+ 27298222.088 -3002061.598 5 -2181364.06545 27298246.1774 0.000
+ 26450729.427 -7336917.874 6 -5533406.70646 26450745.8844 0.000
+ 26950747.913 -1302646.973 5 -884726.13245 26950763.0464 0.000
+ 24418306.179 -16398585.414 8 -12602751.45347 24418314.4194 0.000
+ 27444101.260 3228588.897 5 12576803.00945 27444128.0924 0.000
+ 24233754.594 -12428800.528 8 -9490432.24147 24233764.1594 0.000
+ 02 1 30 12 11 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26875069.534 3385680.330 5 2795596.84545 26875084.7144 0.000
+ 23634358.193 -17496446.959 6 -13481583.44647 23634365.9534 0.000
+ 27556518.042 3627781.114 5 12240678.00245 27556539.6224 0.000
+ 27278179.011 -3107384.557 5 -2263432.75745 27278202.6194 0.000
+ 26434000.890 -7424824.328 6 -5601904.86846 26434017.2544 0.000
+ 26934685.573 -1387055.757 5 -950498.91845 26934703.4724 0.000
+ 24412116.186 -16431114.407 8 -12628098.68447 24412124.2164 0.000
+ 24246044.971 -12364214.828 8 -9440105.76847 24246053.7864 0.000
+ 02 1 30 12 12 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26892975.708 3479779.829 5 2868920.88945 26892994.9674 0.000
+ 23641342.914 -17459743.664 6 -13452983.48147 23641350.7674 0.000
+ 27575601.507 3728068.429 4 12318823.16345 27575625.1154 0.000
+ 27258139.919 -3212687.799 5 -2345486.08745 27258161.6634 0.000
+ 26417302.237 -7512574.371 6 -5670281.18146 26417317.6524 0.000
+ 26918632.071 -1471415.807 5 -1016233.77245 26918647.2864 0.000
+ 24406017.873 -16463160.510 8 -12653069.64147 24406026.1374 0.000
+ 24258385.254 -12299366.654 8 -9389574.78747 24258394.4794 0.000
+ 02 1 30 12 12 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26910905.187 3573999.133 5 2942338.27745 26910923.0984 0.000
+ 23648394.660 -17422685.170 6 -13424106.74447 23648402.4324 0.000
+ 27594694.496 3828397.736 4 12397001.00845 27594718.1984 0.000
+ 27238104.967 -3317965.789 5 -2427519.82845 27238128.0244 0.000
+ 26400634.241 -7600162.629 6 -5738531.40446 26400650.0074 0.000
+ 26902588.400 -1555723.382 5 -1081927.80145 26902604.1544 0.000
+ 24400012.718 -16494719.333 8 -12677660.89347 24400020.8414 0.000
+ 24270775.896 -12234253.601 8 -9338837.40047 24270784.8044 0.000
+ 02 1 30 12 13 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26928856.943 3668335.387 5 3015846.76545 26928873.0254 0.000
+ 23655513.572 -17385275.239 6 -13394956.16047 23655521.3214 0.000
+ 27613794.674 3928763.809 5 12475207.49945 27613813.4294 0.000
+ 27218075.983 -3423218.208 5 -2509533.63645 27218098.1614 0.000
+ 26383997.819 -7687588.565 6 -5806655.17446 26384013.5394 0.000
+ 26886554.672 -1639980.070 5 -1147582.11245 26886570.1334 0.000
+ 24394099.792 -16525791.404 8 -12701872.86347 24394108.1854 0.000
+ 24283216.499 -12168878.201 8 -9287895.57647 24283225.3144 0.000
+ 02 1 30 12 13 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26946831.718 3762790.457 5 3089447.85245 26946850.2864 0.000
+ 23662699.510 -17347512.886 6 -13365530.96547 23662707.5284 0.000
+ 27632901.444 4029165.653 5 12553441.84345 27632925.0884 0.000
+ 27198051.980 -3528439.900 5 -2591523.52045 27198074.0294 0.000
+ 26367392.740 -7774847.267 6 -5874648.63546 26367408.3424 0.000
+ 26870532.130 -1724182.665 4 -1213194.33345 26870546.7954 0.000
+ 24388280.425 -16556372.824 8 -12725702.50547 24388288.8064 0.000
+ 24295707.264 -12103238.545 8 -9236747.84747 24295716.2784 0.000
+ 02 1 30 12 14 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26964829.694 3857365.595 5 3163142.47145 26964846.4104 0.000
+ 23669952.396 -17309398.068 6 -13335831.11947 23669960.2974 0.000
+ 27652015.229 4129602.009 5 12631703.07645 27652039.9984 0.000
+ 27178034.200 -3633626.467 5 -2673486.03845 27178057.7034 0.000
+ 26350819.946 -7861934.406 6 -5942508.39746 26350835.7944 0.000
+ 26854518.586 -1808328.475 5 -1278762.31145 26854533.0054 0.000
+ 24382554.725 -16586460.467 8 -12749147.37947 24382563.0244 0.000
+ 24308248.718 -12037333.336 8 -9185393.20147 24308257.6384 0.000
+ 02 1 30 12 14 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 26982849.451 3952058.006 5 3236928.52245 26982865.5224 0.000
+ 23677272.109 -17270934.367 6 -13305859.41947 23677280.0444 0.000
+ 27671132.822 4230067.573 5 12709987.05345 27671155.7164 0.000
+ 27158024.191 -3738777.464 5 -2755420.84945 27158048.0814 0.000
+ 26334281.088 -7948849.345 6 -6010233.98546 26334296.8084 0.000
+ 26838517.182 -1892419.049 5 -1344287.22245 26838534.2264 0.000
+ 24376923.037 -16616054.571 8 -12772207.68847 24376930.9964 0.000
+ 24320840.156 -11971165.017 8 -9133833.51947 24320849.0534 0.000
+ 02 1 30 12 15 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27000890.299 4046867.460 5 3310805.77945 27000907.1324 0.000
+ 23684657.499 -17232123.020 6 -13275616.82447 23684665.2714 0.000
+ 27690257.233 4330559.609 4 12788291.65945 27690282.1544 0.000
+ 27138021.503 -3843890.043 5 -2837325.80945 27138043.6584 0.000
+ 26317774.259 -8035589.367 6 -6077823.29046 26317789.7674 0.000
+ 26822525.601 -1976453.188 5 -1409768.19145 26822542.7974 0.000
+ 24371385.966 -16645153.404 8 -12794882.06047 24371394.2424 0.000
+ 24333481.598 -11904733.822 8 -9082069.01647 24333490.8354 0.000
+ 02 1 30 12 15 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27018955.032 4141797.644 5 3384777.07345 27018972.3814 0.000
+ 23692109.799 -17192961.455 6 -13245101.32947 23692117.7934 0.000
+ 27709384.656 4431079.082 3 12866617.56545 27709406.7294 0.000
+ 27118026.940 -3948957.029 5 -2919195.28745 27118048.4144 0.000
+ 26301302.635 -8122147.325 6 -6145270.73046 26301317.2874 0.000
+ 26806545.949 -2060425.893 5 -1475201.28945 26806561.9154 0.000
+ 24365943.801 -16673750.842 8 -12817165.74247 24365951.8544 0.000
+ 24346173.838 -11838035.969 8 -9030096.71847 24346182.8054 0.000
+ 02 1 30 12 16 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27037041.636 4236842.596 5 3458837.81345 27037059.4304 0.000
+ 23699627.184 -17153456.623 6 -13214318.35547 23699635.0964 0.000
+ 27728517.768 4531617.694 4 12944958.37645 27728541.9984 0.000
+ 27098040.370 -4053980.933 5 -3001031.20445 27098063.0174 0.000
+ 26284864.883 -8208526.142 6 -6212578.58846 26284880.2984 0.000
+ 26790577.340 -2144341.638 5 -1540589.96545 26790595.0284 0.000
+ 24360596.501 -16701851.309 8 -12839062.17547 24360604.7774 0.000
+ 24358915.540 -11771077.070 8 -8977921.01247 24358924.7534 0.000
+ 02 1 30 12 16 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27055150.488 4332003.062 5 3532988.55845 27055167.1344 0.000
+ 23707210.002 -17113608.589 6 -13183267.95347 23707217.8564 0.000
+ 27747653.825 4632173.704 5 13023312.75545 27747676.6954 0.000
+ 27078063.651 -4158957.858 5 -3082830.54045 27078085.1614 0.000
+ 26268462.494 -8294721.927 6 -6279743.80246 26268477.2054 0.000
+ 26774619.535 -2228198.436 5 -1605932.76645 26774635.1024 0.000
+ 24355344.066 -16729452.012 8 -12860569.18147 24355352.5534 0.000
+ 24371707.521 -11703856.225 8 -8925541.21047 24371716.8174 0.000
+ 02 1 30 12 17 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27073281.377 4427280.922 5 3607230.80545 27073296.8154 0.000
+ 23714858.276 -17073416.438 6 -13151949.40847 23714866.0724 0.000
+ 27766793.356 4732746.396 5 13101680.08445 27766818.6064 0.000
+ 27058096.317 -4263882.757 5 -3164589.36245 27058118.3314 0.000
+ 26252095.464 -8380729.484 6 -6346762.37146 26252110.5624 0.000
+ 26758674.330 -2311992.784 5 -1671226.86345 26758690.1904 0.000
+ 24350187.649 -16756549.192 8 -12881683.83247 24350196.1354 0.000
+ 24384549.512 -11636371.527 8 -8872955.78847 24384558.7604 0.000
+ 02 1 30 12 17 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27091434.892 4522676.418 5 3681564.71645 27091453.1084 0.000
+ 23722571.946 -17032880.953 7 -13120363.32747 23722580.0114 0.000
+ 27785935.510 4833333.289 5 13180058.43245 27785959.4474 0.000
+ 27038139.971 -4368752.051 5 -3246304.84845 27038161.6684 0.000
+ 26235764.670 -8466545.483 6 -6413631.65046 26235780.0024 0.000
+ 26742740.515 -2395723.241 5 -1736471.22145 26742754.6994 0.000
+ 24345127.469 -16783140.182 8 -12902404.04747 24345135.5344 0.000
+ 24397441.641 -11568622.613 8 -8820164.47947 24397451.0074 0.000
+ 02 1 30 12 18 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27109610.124 4618187.352 5 3755988.51945 27109629.1144 0.000
+ 23730350.217 -16992005.364 6 -13088512.23147 23730358.2354 0.000
+ 27805078.936 4933929.774 5 13258444.28645 27805104.3494 0.000
+ 27018194.073 -4473564.447 5 -3327976.06445 27018215.3964 0.000
+ 26219470.654 -8552168.943 6 -6480350.91546 26219485.2014 0.000
+ 26726818.948 -2479390.478 5 -1801666.27045 26726832.8744 0.000
+ 24340163.499 -16809225.541 8 -12922730.26247 24340171.4824 0.000
+ 24410383.782 -11500611.551 8 -8767168.90347 24410393.0194 0.000
+ 02 1 30 12 18 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27127807.313 4713813.745 5 3830502.34445 27127825.0484 0.000
+ 23738193.179 -16950790.617 6 -13056396.85747 23738201.2444 0.000
+ 27824224.360 5034533.390 5 13336835.67345 27824250.2084 0.000
+ 26998259.873 -4578316.901 5 -3409600.55845 26998280.1524 0.000
+ 26203214.015 -8637596.625 6 -6546917.62746 26203229.3014 0.000
+ 26710910.564 -2562993.071 5 -1866810.99945 26710924.1974 0.000
+ 24335296.333 -16834803.089 8 -12942660.78647 24335304.3164 0.000
+ 24423375.891 -11432338.062 8 -8713968.83547 24423385.3634 0.000
+ 02 1 30 12 19 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27146027.211 4809555.223 5 3905105.78945 27146045.7314 0.000
+ 23746100.427 -16909238.006 8 -13024018.21347 23746108.6914 0.000
+ 27843370.381 5135141.100 5 13415230.21045 27843394.4934 0.000
+ 26978337.703 -4683006.289 5 -3491175.91745 26978359.1554 0.000
+ 26186995.365 -8722825.705 6 -6613329.57546 26187010.4524 0.000
+ 26695013.506 -2646529.959 5 -1931904.50745 26695029.2954 0.000
+ 24330526.115 -16859871.168 8 -12962194.31947 24330534.2274 0.000
+ 24436417.800 -11363802.378 8 -8660564.47047 24436426.9324 0.000
+ 02 1 30 12 19 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27164267.328 4905410.223 5 3979797.76545 27164284.9474 0.000
+ 23754071.541 -16867350.045 6 -12991378.25747 23754079.5244 0.000
+ 27862515.040 5235749.175 5 13493625.01545 27862538.8004 0.000
+ 26958427.513 -4787630.732 5 -3572700.68445 26958447.1944 0.000
+ 26170814.843 -8807854.513 6 -6679585.49246 26170830.0704 0.000
+ 26679129.750 -2730001.398 5 -1996946.95245 26679144.4854 0.000
+ 24325852.805 -16884429.624 8 -12981330.74747 24325861.1984 0.000
+ 24449509.322 -11295006.056 8 -8606957.00547 24449518.6064 0.000
+ 02 1 30 12 20 0.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27182530.893 5001384.083 5 4054582.29945 27182548.7924 0.000
+ 23762107.188 -16825122.628 6 -12958473.78947 23762115.0654 0.000
+ 27881662.453 5336360.276 4 13572022.13845 27881686.5074 0.000
+ 26938531.606 -4892181.938 5 -3654168.41845 26938550.6074 0.000
+ 26154673.706 -8892674.621 6 -6745678.77146 26154688.5114 0.000
+ 26663259.080 -2813400.506 5 -2061933.12945 26663272.1394 0.000
+ 24321277.773 -16908471.489 8 -13000064.64247 24321285.9784 0.000
+ 24462651.656 -11225943.518 8 -8553142.10347 24462660.9054 0.000
+ 02 1 30 12 20 30.0100000 0 8G 5G 6G14G15G17G22G25G30
+ 27200816.356 5097471.730 5 4129455.51145 27200834.0094 0.000
+ 23770206.181 -16782561.646 6 -12925309.40047 23770214.3394 0.000
+ 27900807.511 5436966.718 4 13650415.64845 27900834.1444 0.000
+ 26918648.744 -4996661.306 5 -3735580.14045 26918669.1874 0.000
+ 26138572.403 -8977287.918 6 -6811610.89846 26138586.8094 0.000
+ 26647401.865 -2896730.915 5 -2126865.67345 26647416.9044 0.000
+ 24316800.645 -16931999.358 8 -13018398.02347 24316808.7914 0.000
+ 24475843.486 -11156619.783 8 -8499123.66947 24475852.6414 0.000
+ 02 1 30 12 21 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27219123.007 5193673.677 4 4204417.80545 27219141.8444 0.000
+ 23778368.845 -16739667.511 6 -12891885.41147 23778376.8634 0.000
+ 26898780.966 -5101065.144 5 -3816933.03245 26898802.6644 0.000
+ 26122510.701 -9061690.693 6 -6877378.99946 26122525.8224 0.000
+ 26631557.827 -2979990.552 5 -2191743.15645 26631571.9884 0.000
+ 24312421.705 -16955010.982 8 -13036329.12847 24312429.8644 0.000
+ 24489085.290 -11087034.150 8 -8444901.15947 24489094.7504 0.000
+ 02 1 30 12 21 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27237451.377 5289989.199 5 4279468.58045 27237468.4924 0.000
+ 23786594.423 -16696442.151 6 -12858203.32547 23786602.4524 0.000
+ 26878928.125 -5205390.918 5 -3898225.11945 26878949.2134 0.000
+ 26106489.712 -9145880.413 6 -6942981.08246 26106504.3064 0.000
+ 26615727.295 -3063178.823 5 -2256564.95045 26615743.8114 0.000
+ 24308141.062 -16977505.292 8 -13053857.13547 24308148.9514 0.000
+ 24502376.760 -11017187.211 8 -8390475.04447 24502386.1494 0.000
+ 02 1 30 12 22 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27255801.513 5386417.491 5 4354607.19245 27255818.8154 0.000
+ 23794882.430 -16652887.356 7 -12824264.53747 23794890.2264 0.000
+ 26859090.491 -5309636.100 5 -3979454.38045 26859110.7124 0.000
+ 26090509.840 -9229854.903 6 -7008415.45446 26090524.3404 0.000
+ 26599910.672 -3146295.006 5 -2321330.61645 26599924.8674 0.000
+ 24303958.967 -16999481.322 8 -13070981.28647 24303967.0794 0.000
+ 24515717.703 -10947079.578 8 -8335845.79746 24515727.1274 0.000
+ 02 1 30 12 22 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27274172.788 5482958.216 5 4429833.47745 27274190.9334 0.000
+ 23803233.139 -16609004.252 6 -12790069.92147 23803240.9344 0.000
+ 26839268.753 -5413797.209 5 -4060618.18545 26839288.9744 0.000
+ 26074571.147 -9313611.171 6 -7073679.79446 26074585.2954 0.000
+ 26584107.579 -3229337.951 5 -2386039.19245 26584122.7714 0.000
+ 24299876.206 -17020937.134 8 -13087700.07347 24299884.2124 0.000
+ 24529108.502 -10876711.568 8 -8281013.63646 24529117.8324 0.000
+ 02 1 30 12 23 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27292565.484 5579612.578 5 4505148.26945 27292584.3104 0.000
+ 23811646.426 -16564792.621 6 -12755619.31047 23811654.3504 0.000
+ 26819463.330 -5517870.118 5 -4141713.24245 26819481.8284 0.000
+ 26058675.034 -9397144.522 6 -7138770.44746 26058689.1594 0.000
+ 26568319.458 -3312304.786 5 -2450688.45445 26568334.0874 0.000
+ 24295892.713 -17041869.575 8 -13104011.04147 24295900.7664 0.000
+ 24542548.918 -10806081.671 8 -8225977.42546 24542558.1324 0.000
+ 02 1 30 12 23 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27310979.230 5676377.953 5 4580549.59445 27310998.1974 0.000
+ 23820121.279 -16520256.093 7 -12720915.53747 23820129.2154 0.000
+ 26799675.538 -5621854.138 5 -4222739.07345 26799694.4934 0.000
+ 26042821.534 -9480454.712 6 -7203687.19146 26042835.8244 0.000
+ 26552544.817 -3395196.841 5 -2515279.39245 26552560.1854 0.000
+ 24292009.109 -17062279.876 8 -13119915.14647 24292017.4084 0.000
+ 24556038.629 -10735192.461 8 -8170739.14846 24556048.0894 0.000
+ 02 1 30 12 24 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27329414.544 5773256.306 5 4656038.92045 27329432.4204 0.000
+ 23828658.531 -16475393.723 6 -12685957.85947 23828666.5964 0.000
+ 26779905.644 -5725744.085 5 -4303691.59045 26779925.6074 0.000
+ 26027011.308 -9563536.656 6 -7268426.08946 26027025.9614 0.000
+ 26536786.696 -3478010.699 5 -2579809.46545 26536801.9234 0.000
+ 24288224.995 -17082164.249 8 -13135409.44047 24288233.1424 0.000
+ 24569578.405 -10664041.843 8 -8115297.18646 24569588.0524 0.000
+ 02 1 30 12 24 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27347871.890 5870247.134 5 4731615.89945 27347890.8914 0.000
+ 23837257.025 -16430207.032 6 -12650747.46347 23837264.9264 0.000
+ 26760154.169 -5829536.985 5 -4384568.49245 26760173.1474 0.000
+ 26011245.138 -9646387.562 6 -7332984.97146 26011259.1694 0.000
+ 26521041.860 -3560745.183 5 -2644277.76645 26521057.9664 0.000
+ 24284541.480 -17101521.062 8 -13150492.65247 24284549.4864 0.000
+ 24583167.587 -10592630.225 8 -8059651.84046 24583177.0704 0.000
+ 02 1 30 12 25 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27366349.696 5967350.482 5 4807280.51445 27366367.8184 0.000
+ 23845917.353 -16384696.960 7 -12615285.08447 23845925.2424 0.000
+ 26740421.593 -5933229.075 5 -4465366.88245 26740440.8174 0.000
+ 25995523.608 -9729004.188 6 -7397361.28746 25995537.8164 0.000
+ 26505313.859 -3643398.703 5 -2708682.79045 26505328.4184 0.000
+ 24280958.787 -17120348.701 8 -13165163.51947 24280966.8294 0.000
+ 24596806.748 -10520957.471 8 -8003803.01647 24596816.3024 0.000
+ 02 1 30 12 25 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27384849.751 6064565.167 5 4883031.98945 27384866.1384 0.000
+ 23854638.783 -16338865.525 7 -12579572.29147 23854646.8364 0.000
+ 26720708.840 -6036818.328 6 -4546085.17045 26720728.6624 0.000
+ 25979846.786 -9811384.360 6 -7461553.38146 25979860.3954 0.000
+ 26489600.627 -3725970.859 5 -2773024.49645 26489613.8144 0.000
+ 24277476.614 -17138646.259 8 -13179421.32947 24277484.3624 0.000
+ 24610494.962 -10449024.331 7 -7947751.29246 24610504.7384 0.000
+ 02 1 30 12 26 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27403370.731 6161891.396 5 4958870.36245 27403388.5604 0.000
+ 23863421.142 -16292713.645 8 -12543609.80147 23863429.5354 0.000
+ 26701015.649 -6140301.295 6 -4626720.63645 26701034.4284 0.000
+ 25964215.888 -9893525.013 6 -7525558.83046 25964229.3914 0.000
+ 26473903.163 -3808460.119 5 -2837301.62045 26473918.0854 0.000
+ 24274095.681 -17156412.453 8 -13193265.09547 24274103.5004 0.000
+ 24624233.101 -10376830.740 8 -7891496.62046 24624242.5254 0.000
+ 02 1 30 12 26 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27421911.780 6259326.311 5 5034793.34945 27421929.5634 0.000
+ 23872263.850 -16246245.059 8 -12507400.52847 23872272.0094 0.000
+ 26681344.211 -6243677.616 6 -4707272.99346 26681363.6584 0.000
+ 25948630.224 -9975425.691 6 -7589377.28946 25948644.4314 0.000
+ 26458221.324 -3890867.812 5 -2901515.24145 26458235.5084 0.000
+ 24270815.913 -17173648.070 8 -13206695.43547 24270824.0844 0.000
+ 24638019.876 -10304379.420 8 -7835041.11246 24638028.8794 0.000
+ 02 1 30 12 27 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27440474.884 6356871.920 5 5110802.66545 27440493.4284 0.000
+ 23881167.075 -16199458.647 8 -12470943.59947 23881175.3164 0.000
+ 26661692.890 -6346941.576 6 -4787737.81545 26661711.3644 0.000
+ 25933091.734 -10057081.148 6 -7653004.66246 25933105.4374 0.000
+ 26442555.868 -3973190.152 5 -2965662.28445 26442570.6614 0.000
+ 24267637.824 -17190349.174 8 -13219709.26047 24267645.9714 0.000
+ 24651856.703 -10231668.196 8 -7778383.09646 24651866.1284 0.000
+ 02 1 30 12 27 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27459057.768 6454525.812 5 5186896.32845 27459075.7154 0.000
+ 23890130.074 -16152357.970 7 -12434241.78747 23890138.4324 0.000
+ 26642063.351 -6450092.232 6 -4868114.36645 26642081.0524 0.000
+ 25917600.088 -10138490.598 6 -7716440.34746 25917613.9554 0.000
+ 26426905.950 -4055428.013 5 -3029743.52545 26426919.5834 0.000
+ 24264561.514 -17206516.599 8 -13232307.24247 24264569.8254 0.000
+ 24665742.207 -10158699.383 8 -7721524.34946 24665751.9244 0.000
+ 02 1 30 12 28 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27477661.298 6552287.165 5 5263073.70845 27477679.6084 0.000
+ 23899152.614 -16104944.855 7 -12397296.51847 23899160.7024 0.000
+ 26622456.063 -6553127.104 6 -4948400.70145 26622473.7404 0.000
+ 25902155.192 -10219651.798 6 -7779682.58746 25902168.8494 0.000
+ 26411273.032 -4137580.741 5 -3093758.44245 26411285.8444 0.000
+ 24261586.424 -17222149.841 8 -13244488.96747 24261594.3374 0.000
+ 24679676.548 -10085473.615 8 -7664465.37846 24679686.1374 0.000
+ 02 1 30 12 28 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27496285.451 6650157.868 5 5339336.33545 27496304.5464 0.000
+ 23908234.448 -16057218.352 7 -12360107.04547 23908242.6074 0.000
+ 26602871.604 -6656040.649 6 -5028592.56545 26602890.1134 0.000
+ 25886758.738 -10300559.584 6 -7842727.37046 25886772.3604 0.000
+ 26395656.412 -4219644.743 5 -3157704.20245 26395671.2524 0.000
+ 24258713.878 -17237245.017 8 -13256251.42747 24258721.8024 0.000
+ 24693660.313 -10011988.681 8 -7607204.46046 24693669.6564 0.000
+ 02 1 30 12 29 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27514931.183 6748136.935 5 5415683.31645 27514949.7864 0.000
+ 23917375.975 -16009180.413 7 -12322674.89947 23917384.3684 0.000
+ 26583311.651 -6758830.464 6 -5108687.98045 26583329.1174 0.000
+ 25871411.041 -10381211.741 6 -7905572.96446 25871424.5804 0.000
+ 26380057.249 -4301619.302 5 -3221580.29345 26380070.1314 0.000
+ 24255943.949 -17251801.767 8 -13267594.33947 24255952.2134 0.000
+ 24707693.168 -9938245.687 8 -7549742.45446 24707702.3704 0.000
+ 02 1 30 12 29 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27533596.466 6846225.119 5 5492115.40945 27533615.1514 0.000
+ 23926576.554 -15960831.242 7 -12285000.23747 23926584.7014 0.000
+ 26563775.259 -6861492.339 6 -5188683.71546 26563792.4554 0.000
+ 25856112.444 -10461604.307 6 -7968216.28646 25856125.3154 0.000
+ 26364474.967 -4383502.247 5 -3285384.96545 26364488.7524 0.000
+ 24253276.646 -17265817.193 8 -13278515.44147 24253284.8514 0.000
+ 24721775.447 -9864243.686 8 -7492078.62946 24721784.5434 0.000
+ 02 1 30 12 30 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27552283.077 6944420.810 5 5568631.20645 27552303.5084 0.000
+ 23935835.917 -15912173.187 7 -12247084.89247 23935843.9474 0.000
+ 26544263.379 -6964024.531 6 -5268578.41345 26544280.8574 0.000
+ 25840864.059 -10541735.790 6 -8030656.17946 25840877.1994 0.000
+ 26348910.827 -4465293.355 5 -3349118.06245 26348925.7614 0.000
+ 24250712.618 -17279291.177 8 -13289014.64047 24250720.8824 0.000
+ 24735906.438 -9789983.925 7 -7434213.95746 24735916.1204 0.000
+ 02 1 30 12 30 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27570988.934 7042722.740 4 5645229.88345 27571006.2014 0.000
+ 23945153.493 -15863208.767 7 -12208930.81747 23945161.5234 0.000
+ 26524776.512 -7066424.957 6 -5348370.42645 26524794.6464 0.000
+ 25825665.495 -10621604.229 6 -8092891.09146 25825678.5304 0.000
+ 26333363.828 -4546992.352 5 -3412779.41345 26333377.6834 0.000
+ 24248252.026 -17292223.781 8 -13299091.98747 24248260.1844 0.000
+ 24750086.401 -9715467.838 7 -7376149.55446 24750096.0484 0.000
+ 02 1 30 12 31 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27589715.710 7141130.976 4 5721911.28145 27589731.9454 0.000
+ 23954529.436 -15813938.916 7 -12170538.75247 23954537.5954 0.000
+ 26505315.982 -7168690.002 6 -5428056.96146 26505334.0694 0.000
+ 25810517.351 -10701206.470 6 -8154918.58246 25810530.5624 0.000
+ 26317834.913 -4628597.688 5 -3476367.75745 26317848.0774 0.000
+ 24245894.114 -17304613.335 8 -13308746.17247 24245902.1914 0.000
+ 24764315.204 -9640695.268 7 -7317885.30046 24764325.2624 0.000
+ 02 1 30 12 31 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27608462.757 7239644.218 4 5798674.52745 27608482.7204 0.000
+ 23963962.798 -15764365.581 7 -12131910.20647 23963970.9924 0.000
+ 26485881.351 -7270817.590 6 -5507636.38746 26485899.4034 0.000
+ 25795420.812 -10780540.440 6 -8216737.03446 25795433.9414 0.000
+ 26302323.850 -4710108.701 5 -3539882.63145 26302336.0174 0.000
+ 24243639.845 -17316459.551 8 -13317976.98047 24243647.7924 0.000
+ 24778592.934 -9565667.095 7 -7259421.85746 24778602.5464 0.000
+ 02 1 30 12 32 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27627229.248 7338263.020 3 5875520.08145 27627246.3504 0.000
+ 23973454.095 -15714489.471 7 -12093045.73147 23973462.1484 0.000
+ 26466473.722 -7372803.624 6 -5587105.53846 26466491.9734 0.000
+ 25780375.162 -10859602.610 6 -8278343.70246 25780388.2324 0.000
+ 26286830.753 -4791523.353 5 -3603322.43545 26286843.5894 0.000
+ 24241489.458 -17327760.134 8 -13326782.62947 24241497.3244 0.000
+ 24792919.061 -9490382.813 7 -7200758.86646 24792929.0484 0.000
+ 02 1 30 12 32 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27646015.682 7436986.094 3 5952446.88945 27646030.7094 0.000
+ 23983002.217 -15664312.797 7 -12053947.05047 23983010.3634 0.000
+ 26447093.331 -7474646.176 6 -5666462.87546 26447110.1994 0.000
+ 25765382.005 -10938391.118 6 -8339737.11746 25765394.9704 0.000
+ 26271355.863 -4872841.324 5 -3666686.86745 26271368.5474 0.000
+ 24239442.990 -17338515.141 8 -13335163.14747 24239450.7624 0.000
+ 24807293.838 -9414843.536 7 -7141897.16346 24807303.6034 0.000
+ 02 1 30 12 33 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27664822.784 7535815.693 3 6029456.61445 27664839.2774 0.000
+ 23992607.883 -15613834.221 7 -12014613.12247 23992616.0884 0.000
+ 26427741.262 -7576339.267 6 -5745703.76146 26427758.3644 0.000
+ 25750442.094 -11016900.385 6 -8400912.92846 25750455.2114 0.000
+ 26255900.830 -4954058.695 5 -3729972.94745 26255914.7564 0.000
+ 24237500.999 -17348720.624 8 -13343115.46547 24237508.6534 0.000
+ 24821717.428 -9339047.067 7 -7082835.05946 24821727.2274 0.000
+ 02 1 30 12 33 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27683648.787 7634747.816 3 6106546.28844 27683673.4514 0.000
+ 24002270.305 -15563058.435 7 -11975047.60847 24002278.6404 0.000
+ 26408417.740 -7677883.312 6 -5824828.50046 26408436.0384 0.000
+ 25735555.331 -11095131.171 6 -8461871.75446 25735568.2494 0.000
+ 26240464.610 -5035177.567 6 -3793182.28146 26240476.8254 0.000
+ 24235663.155 -17358379.051 8 -13350641.50247 24235670.9154 0.000
+ 24836189.210 -9262996.876 7 -7023575.24746 24836199.2794 0.000
+ 02 1 30 12 34 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27702496.238 7733783.824 2 6183716.96844 27702506.3894 0.000
+ 24011989.321 -15511985.178 8 -11935250.29647 24011997.4794 0.000
+ 26389123.735 -7779273.660 6 -5903833.47746 26389141.1424 0.000
+ 25720721.879 -11173079.049 6 -8522610.12246 25720735.0554 0.000
+ 26225046.818 -5116194.989 5 -3856312.53045 26225059.8304 0.000
+ 24233929.686 -17367487.785 8 -13357739.20347 24233937.4934 0.000
+ 24850709.816 -9186691.687 7 -6964116.75246 24850719.7454 0.000
+ 02 1 30 12 34 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27721360.910 7832919.852 3 0.000 0.000 0.000
+ 24021763.865 -15460619.264 8 -11895224.94347 24021772.0944 0.000
+ 26369858.175 -7880510.623 6 -5982718.93146 26369876.0984 0.000
+ 25705942.247 -11250744.793 6 -8583128.64346 25705955.1184 0.000
+ 26209648.497 -5197113.144 5 -3919365.48745 26209662.5174 0.000
+ 24232300.535 -17376048.702 8 -13364410.04147 24232308.3894 0.000
+ 24865278.095 -9110135.297 7 -6904462.50346 24865288.1764 0.000
+ 02 1 30 12 35 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27740245.155 7932158.669 2 0.000 0.000 0.000
+ 24031594.567 -15408959.103 8 -11854970.30447 24031602.6204 0.000
+ 26350623.561 -7981588.076 6 -6061480.08246 26350641.0154 0.000
+ 25691217.207 -11328122.589 6 -8643422.79046 25691230.2894 0.000
+ 26194270.099 -5277927.712 5 -3982337.72245 26194282.7944 0.000
+ 24230776.557 -17384058.035 8 -13370651.07147 24230784.4234 0.000
+ 24879894.644 -9033324.810 7 -6844610.26746 24879904.2684 0.000
+ 02 1 30 12 35 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27759149.024 8031497.179 2 0.000 0.000 0.000
+ 24041480.364 -15357008.749 8 -11814489.54447 24041488.5694 0.000
+ 26331419.527 -8082505.854 6 -6140116.85046 26331436.3134 0.000
+ 25676548.265 -11405212.402 6 -8703492.51946 25676560.8784 0.000
+ 26178910.719 -5358640.035 5 -4045230.26945 26178923.8254 0.000
+ 24229357.002 -17391517.455 7 -13376463.60247 24229364.5634 0.000
+ 24894559.127 -8956263.420 7 -6784562.52046 24894569.1964 0.000
+ 02 1 30 12 36 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27778073.367 8130938.958 2 0.000 0.000 0.000
+ 24051421.993 -15304765.319 8 -11773780.41047 24051430.0474 0.000
+ 26312246.625 -8183256.971 6 -6218623.73946 26312263.3884 0.000
+ 25661933.875 -11482007.326 6 -8763332.45846 25661946.0894 0.000
+ 26163572.275 -5439244.775 5 -4108038.99645 26163585.3104 0.000
+ 24228043.149 -17398421.867 8 -13381843.64747 24228050.8514 0.000
+ 24909271.893 -8878947.227 7 -6724316.23446 24909282.0564 0.000
+ 02 1 30 12 36 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27797015.627 8230480.659 2 0.000 0.000 0.000
+ 24061418.632 -15252233.194 7 -11732846.31647 24061426.7674 0.000
+ 26293105.790 -8283841.030 6 -6297000.49846 26293121.8374 0.000
+ 25647376.179 -11558507.634 6 -8822942.84346 25647388.4414 0.000
+ 26148253.776 -5519743.378 5 -4170765.00545 26148267.5384 0.000
+ 24226834.201 -17404773.298 8 -13386792.79647 24226842.2074 0.000
+ 24924032.655 -8801379.441 7 -6663873.90046 24924043.0414 0.000
+ 02 1 30 12 37 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27815977.112 8330122.685 1 0.000 0.000 0.000
+ 24071470.283 -15199412.847 8 -11691687.62647 24071478.3954 0.000
+ 26273997.544 -8384254.125 6 -6375244.01146 26274014.3654 0.000
+ 25632875.492 -11634709.762 6 -8882320.84946 25632888.0474 0.000
+ 26132955.535 -5600133.795 5 -4233406.70645 26132969.2494 0.000
+ 24225731.315 -17410569.735 8 -13391309.49147 24225739.4154 0.000
+ 24938841.555 -8723559.520 7 -6603235.09646 24938851.6244 0.000
+ 02 1 30 12 37 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27834958.145 8429867.456 1 0.000 0.000 0.000
+ 24081576.563 -15146302.923 6 -11650303.29547 24081584.5344 0.000
+ 26254923.009 -8484490.445 6 -6453349.80746 26254940.1354 0.000
+ 25618431.978 -11710608.151 6 -8941462.18546 25618444.3334 0.000
+ 26117679.211 -5680411.861 5 -4295960.87846 26117691.3314 0.000
+ 24224734.529 -17415807.413 8 -13395390.78447 24224742.6764 0.000
+ 24953698.538 -8645484.961 7 -6542397.86246 24953708.6314 0.000
+ 02 1 30 12 38 0.0100000 0 7G 5G 6G15G17G22G25G30
+ 27853956.114 8529708.760 1 0.000 0.000 0.000
+ 24091736.827 -15092910.244 7 -11608698.63147 24091744.9274 0.000
+ 26235881.396 -8584552.420 6 -6531319.74846 26235898.0184 0.000
+ 25604046.077 -11786205.678 6 -9000369.08146 25604058.6904 0.000
+ 26102423.226 -5760581.902 5 -4358430.83045 26102435.6874 0.000
+ 24223843.279 -17420491.023 8 -13399040.33747 24223851.3444 0.000
+ 24968602.964 -8567161.622 7 -6481366.79546 24968613.3624 0.000
+ 02 1 30 12 38 30.0100000 0 7G 5G 6G15G17G22G25G30
+ 27872975.084 8629648.823 1 0.000 0.000 0.000
+ 24101951.240 -15039233.740 7 -11566872.80347 24101959.4694 0.000
+ 26216874.053 -8684434.661 6 -6609149.63646 26216890.0544 0.000
+ 25589718.654 -11861497.320 6 -9059037.61046 25589731.1384 0.000
+ 26087188.420 -5840639.966 6 -4420813.56845 26087202.3224 0.000
+ 24223058.167 -17424617.337 8 -13402255.63147 24223065.9624 0.000
+ 24983555.578 -8488587.523 7 -6420140.30846 24983565.7414 0.000
+ 02 1 30 12 39 0.0100000 0 6G 6G15G17G22G25G30
+ 24112218.517 -14985277.420 7 -11524828.93247 24112226.6884 0.000
+ 26197900.686 -8784136.729 6 -6686839.13346 26197917.0154 0.000
+ 25575448.716 -11936483.113 6 -9117467.82946 25575460.7204 0.000
+ 26071975.048 -5920587.570 6 -4483110.21545 26071987.2044 0.000
+ 24222378.642 -17428188.281 8 -13405038.16947 24222386.6714 0.000
+ 24998554.395 -8409765.721 7 -6358720.81346 24998564.5234 0.000
+ 02 1 30 12 39 30.0100000 0 6G 6G15G17G22G25G30
+ 24122540.161 -14931037.370 7 -11482563.97747 24122548.1914 0.000
+ 26178963.960 -8883650.266 6 -6764381.72446 26178980.2774 0.000
+ 25561239.181 -12011154.915 6 -9175653.38846 25561251.5134 0.000
+ 26056783.644 -6000418.044 5 -4545315.58946 26056796.4444 0.000
+ 24221805.787 -17431197.717 8 -13407383.16847 24221813.9104 0.000
+ 25013602.133 -8330691.159 7 -6297104.38146 25013612.6834 0.000
+ 02 1 30 12 40 0.0100000 0 6G 6G15G17G22G25G30
+ 24132914.254 -14876520.532 8 -11440083.34147 24132922.3904 0.000
+ 26160062.051 -8982977.732 6 -6841779.35046 26160078.1114 0.000
+ 25547088.486 -12085515.803 6 -9233596.65846 25547101.2164 0.000
+ 26041613.514 -6080135.647 5 -4607433.00345 26041626.4204 0.000
+ 24221339.003 -17433650.545 8 -13409294.44747 24221347.1034 0.000
+ 25028696.550 -8251369.714 7 -6235295.56446 25028707.1714 0.000
+ 02 1 30 12 40 30.0100000 0 6G 6G15G17G22G25G30
+ 24143342.234 -14821722.312 8 -11397383.45947 24143350.5104 0.000
+ 26141197.452 -9082110.158 6 -6919025.01146 26141213.0784 0.000
+ 25532998.792 -12159557.125 6 -9291290.95146 25533010.5964 0.000
+ 26026466.495 -6159732.982 5 -4669456.71046 26026479.8814 0.000
+ 24220979.552 -17435539.899 8 -13410766.66247 24220987.6524 0.000
+ 25043839.142 -8171795.919 7 -6173290.10946 25043849.4344 0.000
+ 02 1 30 12 41 0.0100000 0 6G 6G15G17G22G25G30
+ 24153822.542 -14766647.658 8 -11354468.16247 24153830.7714 0.000
+ 26122370.107 -9181048.386 6 -6996119.34446 26122386.0494 0.000
+ 25518969.659 -12233279.800 7 -9348736.93446 25518982.0614 0.000
+ 26011342.061 -6239212.356 6 -4731388.48946 26011354.0534 0.000
+ 24220726.675 -17436868.821 8 -13411802.16747 24220734.6704 0.000
+ 25059028.780 -8091973.717 7 -6111091.10946 25059038.8024 0.000
+ 02 1 30 12 41 30.0100000 0 6G 6G15G17G22G25G30
+ 24164354.277 -14711303.012 8 -11311342.49247 24164362.2834 0.000
+ 26103578.984 -9279794.148 6 -7073063.72346 26103594.6454 0.000
+ 25505000.790 -12306686.265 7 -9405936.54746 25505012.7824 0.000
+ 25996238.801 -6318577.404 6 -4793231.20146 25996252.0824 0.000
+ 24220579.494 -17437641.284 8 -13412404.07147 24220587.5474 0.000
+ 25074264.987 -8011908.384 7 -6048702.64546 25074274.7634 0.000
+ 02 1 30 12 42 0.0100000 0 6G 6G15G17G22G25G30
+ 24174937.833 -14655685.403 8 -11268004.12047 24174945.8274 0.000
+ 26084825.655 -9378339.960 6 -7149852.28846 26084841.6204 0.000
+ 25491093.473 -12379769.412 7 -9462884.22346 25491105.3594 0.000
+ 25981159.272 -6397822.314 6 -4854980.26846 25981172.5534 0.000
+ 24220539.314 -17437852.206 8 -13412568.41447 24220547.3904 0.000
+ 25089547.819 -7931595.795 7 -5986121.50046 25089557.9934 0.000
+ 02 1 30 12 42 30.0100000 0 6G 6G15G17G22G25G30
+ 24185573.517 -14599794.747 8 -11224452.98647 24185581.7704 0.000
+ 26066112.170 -9476681.375 6 -7226481.59446 26066127.2924 0.000
+ 25477248.040 -12452525.375 7 -9519576.96946 25477259.8094 0.000
+ 25966102.897 -6476944.425 6 -4916633.65446 25966115.2644 0.000
+ 24220606.439 -17437499.580 8 -13412293.63347 24220614.4574 0.000
+ 25104877.896 -7851035.129 7 -5923347.07546 25104888.2824 0.000
+ 02 1 30 12 43 0.0100000 0 6G 6G15G17G22G25G30
+ 24196261.451 -14543629.809 8 -11180688.13647 24196269.6794 0.000
+ 26047437.734 -9574812.856 6 -7302947.30346 26047453.3834 0.000
+ 25463466.296 -12524948.983 7 -9576010.74246 25463477.5614 0.000
+ 25951070.348 -6555939.846 6 -4978188.34346 25951083.3944 0.000
+ 24220781.264 -17436580.411 8 -13411577.38947 24220789.2234 0.000
+ 25120255.876 -7770224.338 7 -5860377.73046 25120266.5664 0.000
+ 02 1 30 12 43 30.0100000 0 6G 6G15G17G22G25G30
+ 24207000.230 -14487196.868 8 -11136714.44247 24207008.2724 0.000
+ 26028803.344 -9672736.057 6 -7379250.72046 26028818.9814 0.000
+ 25449747.349 -12597042.431 7 -9632187.26546 25449758.6614 0.000
+ 25936061.260 -6634812.010 5 -5039646.98846 25936074.2364 0.000
+ 24221063.443 -17435098.988 8 -13410423.01947 24221071.3914 0.000
+ 25135680.164 -7689168.444 7 -5797217.41046 25135690.7964 0.000
+ 02 1 30 12 44 0.0100000 0 6G 6G15G17G22G25G30
+ 24217790.546 -14430494.660 8 -11092530.94047 24217798.8214 0.000
+ 26010210.072 -9770445.435 6 -7455387.54746 26010225.6394 0.000
+ 25436092.001 -12668800.434 7 -9688102.41146 25436103.5834 0.000
+ 25921076.257 -6713556.681 6 -5101006.26846 25921089.5614 0.000
+ 24221453.053 -17433051.492 8 -13408827.55947 24221460.6964 0.000
+ 25151152.245 -7607865.080 7 -5733864.25246 25151162.3854 0.000
+ 02 1 30 12 44 30.0100000 0 6G 6G15G17G22G25G30
+ 24228631.341 -14373526.133 8 -11048139.92147 24228639.7114 0.000
+ 25991656.843 -9867939.738 6 -7531356.77146 25991672.1874 0.000
+ 25422500.652 -12740221.976 7 -9743755.37946 25422511.8944 0.000
+ 25906115.540 -6792174.295 6 -5162266.53146 25906127.5554 0.000
+ 24221950.043 -17430439.028 8 -13406791.86547 24221957.6504 0.000
+ 25166670.543 -7526316.424 7 -5670319.93846 25166680.7534 0.000
+ 02 1 30 12 45 0.0100000 0 6G 6G15G17G22G25G30
+ 24239522.651 -14316291.614 8 -11003541.63647 24239530.8914 0.000
+ 25973145.784 -9965214.854 6 -7607155.19546 25973161.4104 0.000
+ 25408974.378 -12811303.670 7 -9799143.54546 25408986.0304 0.000
+ 25891179.917 -6870662.434 6 -5223425.94746 25891192.8814 0.000
+ 24222555.073 -17427260.342 8 -13404314.96347 24222562.6684 0.000
+ 25182235.391 -7444521.866 7 -5606584.03646 25182245.5184 0.000
+ 02 1 30 12 45 30.0100000 0 6G 6G15G17G22G25G30
+ 24250464.857 -14258790.429 8 -10958735.55947 24250473.2034 0.000
+ 25954677.280 -10062265.477 6 -7682778.69346 25954692.4604 0.000
+ 25395513.302 -12882040.676 7 -9854263.12746 25395524.6374 0.000
+ 25876269.329 -6949017.551 6 -5284481.72846 25876280.6414 0.000
+ 24223268.361 -17423512.643 8 -13401394.67347 24223276.3204 0.000
+ 25197847.515 -7362479.666 7 -5542655.16546 25197857.8074 0.000
+ 02 1 30 12 46 0.0100000 0 6G 6G15G17G22G25G30
+ 24261457.093 -14201025.447 8 -10913723.92247 24261465.4864 0.000
+ 25936252.100 -10159090.374 6 -7758226.31246 25936266.3084 0.000
+ 25382118.273 -12952432.149 7 -9909113.46746 25382129.3974 0.000
+ 25861383.966 -7027239.950 6 -5345434.04446 25861395.7124 0.000
+ 24224089.441 -17419196.971 8 -13398031.81047 24224097.4474 0.000
+ 25213506.453 -7280191.970 7 -5478534.99846 25213516.8864 0.000
+ 02 1 30 12 46 30.0100000 0 6G 6G15G17G22G25G30
+ 24272499.559 -14142996.404 8 -10868506.52747 24272507.9994 0.000
+ 25917870.599 -10255684.553 6 -7833494.12646 25917885.3454 0.000
+ 25368789.280 -13022473.810 7 -9963691.23346 25368800.7674 0.000
+ 25846524.700 -7105326.406 6 -5406280.47346 25846537.3014 0.000
+ 24225019.245 -17414311.051 8 -13394224.59647 24225027.0524 0.000
+ 25229212.312 -7197657.215 7 -5414222.30946 25229222.8744 0.000
+ 02 1 30 12 47 0.0100000 0 6G 6G15G17G22G25G30
+ 24283591.764 -14084707.134 8 -10823086.36047 24283600.4974 0.000
+ 25899532.936 -10352047.632 6 -7908581.87546 25899547.4714 0.000
+ 25355527.320 -13092165.478 7 -10017996.28646 25355538.4564 0.000
+ 25831689.959 -7183277.962 6 -5467021.74346 25831702.8764 0.000
+ 24226057.082 -17408856.853 8 -13389974.56847 24226064.9004 0.000
+ 25244964.747 -7114878.420 7 -5349719.46346 25244974.9814 0.000
+ 02 1 30 12 47 30.0100000 0 6G 6G15G17G22G25G30
+ 24294732.881 -14026159.970 8 -10777465.24347 24294741.4504 0.000
+ 25881240.086 -10448177.480 6 -7983487.89546 25881254.5984 0.000
+ 25342332.216 -13161505.692 7 -10072027.48046 25342343.5864 0.000
+ 25816882.236 -7261094.188 6 -5527657.60546 25816894.8614 0.000
+ 24227202.872 -17402835.193 8 -13385282.36547 24227210.7384 0.000
+ 25260763.334 -7031857.049 7 -5285027.59546 25260773.6844 0.000
+ 02 1 30 12 48 0.0100000 0 6G 6G15G17G22G25G30
+ 24305923.176 -13967354.898 8 -10731643.15147 24305931.5924 0.000
+ 25862991.827 -10544069.955 6 -8058208.93346 25863006.1874 0.000
+ 25329204.654 -13230490.816 7 -10125781.97546 25329215.9904 0.000
+ 25802100.600 -7338772.364 6 -5588185.88146 25802112.6504 0.000
+ 24228457.422 -17396244.158 8 -13380146.49247 24228465.2764 0.000
+ 25276608.210 -6948592.148 7 -5220145.97446 25276618.7604 0.000
+ 02 1 30 12 48 30.0100000 0 6G 6G15G17G22G25G30
+ 24317162.477 -13908293.101 8 -10685621.00947 24317170.8704 0.000
+ 25844789.555 -10639722.020 6 -8132742.66246 25844803.5274 0.000
+ 25316145.407 -13299118.060 7 -10179257.61346 25316156.2034 0.000
+ 25787345.563 -7416310.961 6 -5648605.40546 25787357.8834 0.000
+ 24229819.954 -17389083.043 8 -13374566.40547 24229827.8794 0.000
+ 25292499.477 -6865084.268 7 -5155074.99646 25292510.0974 0.000
+ 02 1 30 12 49 0.0100000 0 6G 6G15G17G22G25G30
+ 24328449.796 -13848977.082 8 -10639400.78547 24328458.1894 0.000
+ 25826633.680 -10735131.477 6 -8207087.33246 25826647.6064 0.000
+ 25303154.141 -13367386.082 7 -10232453.34346 25303165.2774 0.000
+ 25772616.603 -7493709.784 6 -5708916.04246 25772628.0204 0.000
+ 24231290.941 -17381352.955 8 -13368542.96547 24231298.9594 0.000
+ 25308436.419 -6781334.812 7 -5089815.80246 25308447.1444 0.000
+ 02 1 30 12 49 30.0100000 0 6G 6G15G17G22G25G30
+ 24339785.280 -13789409.149 8 -10592984.25947 24339793.7904 0.000
+ 25808523.772 -10830296.289 6 -8281241.36946 25808538.2494 0.000
+ 25290231.934 -13435293.070 7 -10285367.73346 25290243.1174 0.000
+ 25757914.632 -7570968.047 6 -5769117.13846 25757926.2834 0.000
+ 24232870.155 -17373054.092 8 -13362076.32847 24232878.2444 0.000
+ 25324419.172 -6697344.945 7 -5024369.28446 25324430.0274 0.000
+ 02 1 30 12 50 0.0100000 0 6G 6G15G17G22G25G30
+ 24351168.630 -13729589.963 8 -10546371.95347 24351177.1754 0.000
+ 25790462.070 -10925212.756 6 -8355201.89646 25790475.9614 0.000
+ 25277378.880 -13502836.246 7 -10337998.65046 25277389.7704 0.000
+ 25743240.092 -7648083.758 6 -5829207.14046 25743252.7524 0.000
+ 24234557.577 -17364185.744 8 -13355165.93747 24234565.8764 0.000
+ 25340447.641 -6613114.710 7 -4958735.45446 25340458.0504 0.000
+ 02 1 30 12 50 30.0100000 0 6G 6G15G17G22G25G30
+ 24362599.475 -13669520.479 8 -10499564.60947 24362607.9504 0.000
+ 25772447.191 -11019877.526 6 -8428966.30646 25772460.8824 0.000
+ 25264595.408 -13570012.499 7 -10390343.64046 25264606.3454 0.000
+ 25728592.914 -7725055.022 6 -5889184.62146 25728604.9764 0.000
+ 24236353.760 -17354747.070 8 -13347811.14447 24236361.8954 0.000
+ 25356522.302 -6528643.964 7 -4892914.21046 25356532.4654 0.000
+ 02 1 30 12 51 0.0100000 0 6G 6G15G17G22G25G30
+ 24374077.544 -13609202.996 8 -10452564.01647 24374086.1254 0.000
+ 25754481.342 -11114288.446 6 -8502532.90846 25754495.4674 0.000
+ 25251882.195 -13636820.267 7 -10442401.49546 25251893.3434 0.000
+ 25713973.355 -7801881.249 6 -5949049.08846 25713985.4884 0.000
+ 24238258.294 -17344738.837 8 -13340012.53147 24238266.3124 0.000
+ 25372641.942 -6443934.190 7 -4826906.71046 25372652.3754 0.000
+ 02 1 30 12 51 30.0100000 0 6G 6G15G17G22G25G30
+ 24385602.235 -13548639.875 8 -10405372.02147 24385610.6634 0.000
+ 25736563.630 -11208443.466 6 -8575900.11146 25736577.1574 0.000
+ 25239239.557 -13703258.107 7 -10494171.11146 25239249.8724 0.000
+ 25699381.338 -7878562.011 6 -6008800.19046 25699393.9394 0.000
+ 24240271.139 -17334161.495 8 -13331770.45547 24240278.9224 0.000
+ 25388807.047 -6358986.865 7 -4760714.11546 25388817.4794 0.000
+ 02 1 30 12 52 0.0100000 0 6G 6G15G17G22G25G30
+ 24397173.951 -13487831.456 8 -10357988.88247 24397182.4494 0.000
+ 25718695.897 -11302338.922 6 -8649065.06146 25718709.3774 0.000
+ 25226667.748 -13769322.726 7 -10545649.89646 25226678.2984 0.000
+ 25684817.790 -7955094.925 6 -6068436.10046 25684829.3374 0.000
+ 24242392.461 -17323014.321 8 -13323084.36047 24242400.3864 0.000
+ 25405017.438 -6273801.335 7 -4694335.89146 25405028.3164 0.000
+ 02 1 30 12 52 30.0100000 0 6G 6G15G17G22G25G30
+ 24408791.949 -13426777.964 8 -10310414.77747 24408800.7764 0.000
+ 25700878.345 -11395970.580 7 -8722024.45846 25700891.5914 0.000
+ 25214167.603 -13835010.669 7 -10596835.16146 25214177.9664 0.000
+ 25670282.581 -8031477.245 6 -6127954.64546 25670294.4204 0.000
+ 24244622.560 -17311295.257 8 -13313952.63647 24244630.1794 0.000
+ 25421273.098 -6188377.085 7 -4627771.67946 25421283.8954 0.000
+ 02 1 30 12 53 0.0100000 0 6G 6G15G17G22G25G30
+ 24420456.007 -13365482.137 8 -10262651.83847 24420464.8464 0.000
+ 25683111.079 -11489336.628 6 -8794776.89046 25683124.9354 0.000
+ 25201739.331 -13900320.749 7 -10647725.99246 25201750.0104 0.000
+ 25655775.741 -8107709.044 6 -6187355.91546 25655788.0724 0.000
+ 24246961.030 -17299005.799 8 -13304376.44647 24246968.8604 0.000
+ 25437573.900 -6102715.951 7 -4561022.86546 25437584.0754 0.000
+ 02 1 30 12 53 30.0100000 0 6G 6G15G17G22G25G30
+ 24432166.426 -13303944.750 8 -10214700.67647 24432174.9714 0.000
+ 25665394.761 -11582433.754 6 -8867319.77646 25665408.3474 0.000
+ 25189383.638 -13965249.980 7 -10698320.07046 25189394.2814 0.000
+ 25641298.271 -8183788.188 6 -6246638.24146 25641310.1694 0.000
+ 24249408.427 -17286145.281 8 -13294355.27547 24249416.3744 0.000
+ 25453920.002 -6016817.973 7 -4494089.50546 25453930.7864 0.000
+ 02 1 30 12 54 0.0100000 0 6G 6G15G17G22G25G30
+ 24443922.284 -13242167.418 8 -10166562.53847 24443930.8654 0.000
+ 25647730.504 -11675259.115 7 -8939650.89946 25647743.9964 0.000
+ 25177100.717 -14029796.369 7 -10748615.81646 25177111.2784 0.000
+ 25626850.184 -8259713.490 6 -6305800.67646 25626861.8474 0.000
+ 24251964.056 -17272713.745 8 -13283889.15847 24251971.9924 0.000
+ 25470310.862 -5930683.732 7 -4426972.02546 25470321.7174 0.000
+ 02 1 30 12 54 30.0100000 0 6G 6G15G17G22G25G30
+ 24455723.444 -13180151.799 8 -10118238.72047 24455732.0954 0.000
+ 25630118.432 -11767810.223 7 -9011768.32546 25630131.1864 0.000
+ 25164891.219 -14093957.964 7 -10798611.72546 25164901.7344 0.000
+ 25612431.117 -8335483.797 6 -6364842.33846 25612442.7104 0.000
+ 24254628.815 -17258711.953 8 -13272978.68847 24254636.8334 0.000
+ 25486746.381 -5844314.362 7 -4359671.35446 25486757.5534 0.000
+ 02 1 30 12 55 0.0100000 0 6G 6G15G17G22G25G30
+ 24467569.606 -13117899.643 8 -10069730.58847 24467578.2454 0.000
+ 25612559.218 -11860084.322 7 -9083669.90446 25612572.5704 0.000
+ 25152755.230 -14157732.609 7 -10848306.12346 25152765.8974 0.000
+ 25598042.339 -8411097.994 6 -6423762.35446 25598053.2294 0.000
+ 24257401.605 -17244139.807 8 -13261623.78347 24257409.7524 0.000
+ 25503226.686 -5757710.533 7 -4292187.97846 25503237.9744 0.000
+ 02 1 30 12 55 30.0100000 0 6G 6G15G17G22G25G30
+ 24479460.742 -13055411.171 8 -10021038.30847 24479469.1944 0.000
+ 25595053.152 -11952077.580 7 -9155352.64846 25595066.3514 0.000
+ 25140693.425 -14221117.041 7 -10897696.46146 25140704.0924 0.000
+ 25583683.723 -8486553.497 6 -6482558.69846 25583695.5624 0.000
+ 24260283.479 -17228996.180 8 -13249823.56447 24260291.4974 0.000
+ 25519751.953 -5670871.683 7 -4224521.47946 25519762.7964 0.000
+ 02 1 30 12 56 0.0100000 0 6G 6G15G17G22G25G30
+ 24491396.412 -12992689.070 8 -9972163.98447 24491405.0634 0.000
+ 25577600.512 -12043788.471 7 -9226815.37946 25577613.4894 0.000
+ 25128706.005 -14284110.208 7 -10946781.91746 25128716.3444 0.000
+ 25569355.414 -8561850.315 6 -6541231.40346 25569366.7144 0.000
+ 24263273.775 -17213282.419 8 -13237579.08247 24263281.7934 0.000
+ 25536321.152 -5583799.721 7 -4156673.31246 25536332.0304 0.000
+ 02 1 30 12 56 30.0100000 0 6G 6G15G17G22G25G30
+ 24503376.386 -12929734.492 8 -9923108.51947 24503385.1784 0.000
+ 25560203.166 -12135213.641 7 -9298055.47846 25560216.3304 0.000
+ 25116793.680 -14346709.556 7 -10995560.49846 25116804.1834 0.000
+ 25555057.069 -8636986.583 6 -6599778.98246 25555069.0604 0.000
+ 24266372.425 -17196998.373 8 -13224890.22847 24266380.4194 0.000
+ 25552934.852 -5496495.160 7 -4088643.92546 25552945.6604 0.000
+ 02 1 30 12 57 0.0100000 0 6G 6G15G17G22G25G30
+ 24515400.270 -12866548.739 8 -9873872.90947 24515409.0974 0.000
+ 25542859.789 -12226350.254 6 -9369070.72746 25542872.7654 0.000
+ 25104956.571 -14408912.751 7 -11044030.39246 25104966.8994 0.000
+ 25540789.531 -8711960.703 6 -6658200.21546 25540801.2064 0.000
+ 24269579.728 -17180143.867 8 -13211756.85147 24269587.8164 0.000
+ 25569592.450 -5408958.282 7 -4020433.48446 25569603.6804 0.000
+ 02 1 30 12 57 30.0100000 0 6G 6G15G17G22G25G30
+ 24527468.219 -12803131.202 8 -9824456.69447 24527476.7884 0.000
+ 25525573.343 -12317193.207 7 -9439857.15346 25525586.4724 0.000
+ 25093196.040 -14470715.511 7 -11092188.27546 25093206.2624 0.000
+ 25526554.196 -8786769.238 6 -6716492.42946 25526565.3684 0.000
+ 24272896.028 -17162716.890 8 -13198177.40847 24272904.0224 0.000
+ 25586294.463 -5321187.740 7 -3952040.99946 25586305.9044 0.000
+ 02 1 30 12 58 0.0100000 0 6G 6G15G17G22G25G30
+ 24539579.846 -12739484.256 8 -9774861.71547 24539588.3684 0.000
+ 25508342.038 -12407740.390 7 -9510413.13246 25508355.0504 0.000
+ 25081511.719 -14532116.617 7 -11140033.16646 25081521.9064 0.000
+ 25512350.144 -8861411.764 6 -6774655.26446 25512361.3034 0.000
+ 24276321.177 -17144718.731 8 -13184152.88747 24276329.1954 0.000
+ 25603041.203 -5233184.984 7 -3883467.56946 25603052.3744 0.000
+ 02 1 30 12 58 30.0100000 0 6G 6G15G17G22G25G30
+ 24551734.818 -12675609.630 8 -9725089.33147 24551743.2814 0.000
+ 25491168.087 -12497989.615 7 -9580736.94746 25491180.7354 0.000
+ 25069903.896 -14593114.299 7 -11187563.70946 25069914.3994 0.000
+ 25498177.507 -8935887.135 6 -6832687.84746 25498188.9714 0.000
+ 24279854.729 -17126149.904 7 -13169683.68247 24279862.6414 0.000
+ 25619831.549 -5144951.061 7 -3814714.00846 25619842.4514 0.000
+ 02 1 30 12 59 0.0100000 0 6G 6G15G17G22G25G30
+ 24563933.280 -12611506.746 8 -9675139.08047 24563941.7904 0.000
+ 25474051.960 -12587936.167 7 -9650824.91546 25474064.1744 0.000
+ 25058374.216 -14653704.396 7 -11234776.65346 25058384.2974 0.000
+ 25484037.667 -9010191.890 6 -6890587.50746 25484048.5804 0.000
+ 24283497.190 -17107008.414 8 -13154768.25047 24283505.1854 0.000
+ 25636666.356 -5056484.782 6 -3745779.37646 25636677.6214 0.000
+ 02 1 30 12 59 30.0100000 0 6G 6G15G17G22G25G30
+ 24576174.481 -12547178.109 8 -9625012.91347 24576183.1204 0.000
+ 25456992.990 -12677578.218 7 -9720675.61946 25457005.3224 0.000
+ 25046921.913 -14713885.903 7 -11281671.21846 25046932.2164 0.000
+ 25469930.366 -9084325.835 6 -6948354.05346 25469941.6314 0.000
+ 24287248.265 -17087295.998 8 -13139407.94447 24287256.3534 0.000
+ 25653544.764 -4967787.827 6 -3676665.00646 25653556.2874 0.000
+ 02 1 30 13 0 0.0100000 0 6G 6G15G17G22G25G30
+ 24588458.133 -12482627.864 8 -9574714.07747 24588466.7024 0.000
+ 25439992.571 -12766915.705 7 -9790289.00546 25440004.6454 0.000
+ 25035547.110 -14773659.331 7 -11328247.79346 25035557.6364 0.000
+ 25455855.214 -9158290.101 6 -7005988.41146 25455866.6674 0.000
+ 24291107.483 -17067015.651 8 -13123605.09447 24291115.6534 0.000
+ 25670466.880 -4878863.558 6 -3607373.50846 25670478.5324 0.000
+ 02 1 30 13 0 30.0100000 0 6G 6G15G17G22G25G30
+ 24600783.654 -12417857.568 8 -9524243.76347 24600792.4454 0.000
+ 25423050.433 -12855945.922 7 -9859662.96046 25423062.4724 0.000
+ 25024250.801 -14833022.745 7 -11374504.87746 25024261.1054 0.000
+ 25441812.962 -9232083.520 6 -7063489.63246 25441823.8644 0.000
+ 24295074.790 -17046167.737 8 -13107359.98247 24295082.6674 0.000
+ 25687431.738 -4789712.915 6 -3537905.63746 25687443.2254 0.000
+ 02 1 30 13 1 0.0100000 0 6G 6G15G17G22G25G30
+ 24613151.091 -12352865.943 8 -9473600.99547 24613159.7774 0.000
+ 25406167.833 -12944663.559 7 -9928793.36646 25406179.8954 0.000
+ 25013033.181 -14891971.414 7 -11420438.78946 25013043.2854 0.000
+ 25427803.416 -9305702.036 6 -7120854.54946 25427814.3764 0.000
+ 24299150.419 -17024749.916 8 -13090670.78747 24299158.1324 0.000
+ 25704440.195 -4700333.855 6 -3468259.74946 25704451.7894 0.000
+ 02 1 30 13 1 30.0100000 0 6G 6G15G17G22G25G30
+ 24625560.795 -12287653.341 8 -9422786.03547 24625569.5634 0.000
+ 25389345.499 -13033064.787 7 -9997677.20946 25389358.1014 0.000
+ 25001894.914 -14950502.299 7 -11466047.15146 25001905.2064 0.000
+ 25413827.946 -9379143.125 6 -7178081.23546 25413838.7304 0.000
+ 24303334.656 -17002761.414 8 -13073536.91147 24303342.5344 0.000
+ 25721491.946 -4610726.083 6 -3398435.65546 25721503.4224 0.000
+ 02 1 30 13 2 0.0100000 0 6G 6G15G17G22G25G30
+ 24638012.131 -12222221.090 8 -9371799.91847 24638020.8414 0.000
+ 25372583.877 -13121146.607 7 -10066312.17246 25372595.8214 0.000
+ 24990836.604 -15008613.105 7 -11511328.17446 24990847.0494 0.000
+ 25399886.705 -9452405.187 6 -7235168.43446 25399897.7944 0.000
+ 24307627.494 -16980202.447 8 -13055958.51847 24307635.8994 0.000
+ 25738587.403 -4520890.013 6 -3328433.68346 25738598.3874 0.000
+ 02 1 30 13 2 30.0100000 0 6G 6G15G17G22G25G30
+ 24650504.462 -12156573.180 8 -9320645.76247 24650513.3014 0.000
+ 25355883.465 -13208908.809 7 -10134698.09846 25355895.3044 0.000
+ 24979858.377 -15066304.323 7 -11556282.25446 24979868.4934 0.000
+ 25385979.552 -9525489.328 6 -7292116.98546 25385990.5134 0.000
+ 24312028.177 -16957076.154 8 -13037938.06447 24312036.5934 0.000
+ 25755725.653 -4430829.110 6 -3258256.48946 25755736.7894 0.000
+ 02 1 30 13 3 0.0100000 0 6G 6G15G17G22G25G30
+ 24663038.468 -12090707.127 8 -9269321.61647 24663047.1784 0.000
+ 25339244.664 -13296344.508 7 -10202829.60246 25339257.0314 0.000
+ 24968960.922 -15123569.833 7 -11600904.60646 24968970.9334 0.000
+ 25372106.571 -9598390.036 6 -7348922.60046 25372116.8754 0.000
+ 24316537.889 -16933378.669 8 -13019472.52447 24316546.3414 0.000
+ 25772906.948 -4340539.883 6 -3187901.41746 25772918.5184 0.000
+ 02 1 30 13 3 30.0100000 0 6G 6G15G17G22G25G30
+ 24675612.476 -12024630.132 8 -9217833.10847 24675621.4914 0.000
+ 25322667.370 -13383457.081 7 -10270709.31946 25322679.3504 0.000
+ 24958143.794 -15180413.656 7 -11645198.37446 24958153.6404 0.000
+ 25358267.893 -9671111.838 6 -7405588.83846 25358278.2674 0.000
+ 24321154.714 -16909116.605 8 -13000567.05347 24321162.8254 0.000
+ 25790130.470 -4250029.051 6 -3117373.63646 25790141.7594 0.000
+ 02 1 30 13 4 0.0100000 0 6G 6G15G17G22G25G30
+ 24688226.991 -11958340.498 8 -9166178.90847 24688236.2054 0.000
+ 25306153.150 -13470240.725 7 -10338332.73646 25306165.0844 0.000
+ 24947407.969 -15236830.621 7 -11689159.52446 24947417.8864 0.000
+ 25344464.501 -9743650.044 6 -7462111.99446 25344475.0514 0.000
+ 24325879.725 -16884287.068 8 -12981219.40147 24325887.6264 0.000
+ 25807396.835 -4159294.217 6 -3046671.32346 25807409.1664 0.000
+ 02 1 30 13 4 30.0100000 0 6G 6G15G17G22G25G30
+ 24700881.325 -11891841.161 7 -9114361.30247 24700890.1994 0.000
+ 25289701.059 -13556694.260 7 -10405698.91946 25289713.0624 0.000
+ 24936753.303 -15292820.194 7 -11732787.64546 24936763.6184 0.000
+ 25330695.794 -9816004.747 6 -7518492.16846 25330706.4734 0.000
+ 24330712.156 -16858892.372 8 -12961431.36147 24330719.9994 0.000
+ 25824705.667 -4068337.665 6 -2975796.25146 25824718.1744 0.000
+ 02 1 30 13 5 0.0100000 0 6G 6G15G17G22G25G30
+ 24713576.279 -11825128.016 7 -9062377.10047 24713585.4934 0.000
+ 25273314.103 -13642809.482 7 -10472801.49446 25273325.3104 0.000
+ 24926181.466 -15348375.322 7 -11776077.23846 24926191.6994 0.000
+ 25316963.092 -9888169.027 6 -7574723.95846 25316972.8454 0.000
+ 24335653.002 -16832927.512 8 -12941199.04147 24335661.0784 0.000
+ 25842057.267 -3977154.882 6 -2904744.86846 25842069.0364 0.000
+ 02 1 30 13 5 30.0100000 0 6G 6G15G17G22G25G30
+ 24726311.524 -11758205.904 7 -9010230.06747 24726320.6324 0.000
+ 25256990.384 -13728587.121 7 -10539641.00146 25257002.0004 0.000
+ 24915692.002 -15403497.328 7 -11819029.33146 24915702.4004 0.000
+ 25303266.936 -9960145.104 6 -7630809.09246 25303277.2984 0.000
+ 24340701.795 -16806396.694 8 -12920525.71847 24340709.9544 0.000
+ 25859451.290 -3885749.698 6 -2833520.21246 25859463.6334 0.000
+ 02 1 30 13 6 0.0100000 0 6G 6G15G17G22G25G30
+ 24739085.861 -11691075.733 7 -8957920.90847 24739094.9344 0.000
+ 25240732.450 -13814023.805 7 -10606214.83346 25240744.3484 0.000
+ 24905285.670 -15458183.584 7 -11861641.88846 24905295.7984 0.000
+ 25289606.052 -10031930.680 6 -7686745.77346 25289616.0634 0.000
+ 24345858.183 -16779299.830 8 -12899411.32147 24345866.5174 0.000
+ 25876887.196 -3794122.641 6 -2762122.65746 25876899.3054 0.000
+ 02 1 30 13 6 30.0100000 0 6G 6G15G17G22G25G30
+ 24751899.758 -11623739.334 7 -8905451.05347 24751908.7614 0.000
+ 25224539.589 -13899117.012 7 -10672521.03146 25224551.4174 0.000
+ 24894962.085 -15512432.640 7 -11903913.76146 24894972.3534 0.000
+ 25275982.143 -10103524.698 6 -7742533.18346 25275992.9504 0.000
+ 24351122.316 -16751637.658 8 -12877856.43747 24351130.6864 0.000
+ 25894365.440 -3702274.748 6 -2690553.03646 25894377.8774 0.000
+ 02 1 30 13 7 0.0110000 0 6G 6G15G17G22G25G30
+ 24764752.816 -11556197.137 7 -8852820.84447 24764761.9594 0.000
+ 25208411.930 -13983868.310 7 -10738560.80646 25208423.4884 0.000
+ 24884721.807 -15566245.647 7 -11945845.86546 24884731.7944 0.000
+ 25262394.277 -10174929.458 6 -7798173.13946 25262404.5224 0.000
+ 24356493.512 -16723411.346 8 -12855861.95347 24356501.5884 0.000
+ 25911886.087 -3610205.076 6 -2618810.58046 25911898.1614 0.000
+ 02 1 30 13 7 30.0110000 0 6G 6G15G17G22G25G30
+ 24777644.329 -11488451.076 7 -8800031.77547 24777653.3904 0.000
+ 25192351.569 -14068265.448 7 -10804324.61246 25192363.4564 0.000
+ 24874566.106 -15619613.327 7 -11987430.96146 24874576.3514 0.000
+ 25248844.318 -10246134.716 6 -7853657.62046 25248855.0564 0.000
+ 24361972.487 -16694619.525 8 -12833426.81947 24361980.3654 0.000
+ 25929447.840 -3517916.568 6 -2546897.60946 25929460.1714 0.000
+ 02 1 30 13 8 0.0110000 0 6G 6G15G17G22G25G30
+ 24790574.665 -11420503.250 7 -8747085.49147 24790583.9144 0.000
+ 25176357.905 -14152311.508 7 -10869814.85346 25176369.1704 0.000
+ 24864494.821 -15672538.356 7 -12028671.13747 24864504.7264 0.000
+ 25235331.626 -10317144.226 6 -7908989.57246 25235342.1294 0.000
+ 24367558.650 -16665264.948 8 -12810553.17047 24367566.4924 0.000
+ 25947051.622 -3425409.698 6 -2474814.49446 25947063.9424 0.000
+ 02 1 30 13 8 30.0110000 0 6G 6G15G17G22G25G30
+ 24803542.997 -11352354.692 7 -8693982.79846 24803552.0124 0.000
+ 25160431.590 -14236003.671 7 -10935029.33746 25160443.0664 0.000
+ 24854508.021 -15725018.786 7 -12069564.87347 24854517.6094 0.000
+ 25221856.249 -10387956.481 6 -7964167.81046 25221866.2014 0.000
+ 24373251.577 -16635347.885 8 -12787241.21747 24373259.6894 0.000
+ 25964696.388 -3332685.156 6 -2402561.74646 25964708.3104 0.000
+ 02 1 30 13 9 0.0110000 0 6G 6G15G17G22G25G30
+ 24816549.551 -11284004.011 7 -8640722.59846 24816558.3784 0.000
+ 25144574.048 -14319336.469 7 -10999963.79646 25144585.3844 0.000
+ 24844606.741 -15777049.717 7 -12110108.35347 24844616.9284 0.000
+ 25208419.221 -10458566.991 6 -8019188.85446 25208429.2324 0.000
+ 24379052.083 -16604866.320 8 -12763489.39447 24379060.2654 0.000
+ 25982383.485 -3239740.884 6 -2330137.79846 25982395.1614 0.000
+ 02 1 30 13 9 30.0110000 0 6G 6G15G17G22G25G30
+ 24829594.186 -11215454.428 7 -8587307.40746 24829602.9074 0.000
+ 25128784.446 -14402309.155 7 -11064617.63646 25128796.0394 0.000
+ 24834791.182 -15828631.481 7 -12150301.83847 24834800.8884 0.000
+ 25195020.817 -10528976.099 6 -8074052.96046 25195030.6294 0.000
+ 24384959.533 -16573822.813 8 -12739299.69947 24384967.8444 0.000
+ 26000111.653 -3146579.542 6 -2257544.69946 26000123.8914 0.000
+ 02 1 30 13 10 0.0110000 0 6G 6G15G17G22G25G30
+ 24842676.150 -11146708.319 7 -8533739.08246 24842685.1764 0.000
+ 25113064.324 -14484919.785 7 -11128989.37346 25113075.4724 0.000
+ 24825061.006 -15879762.898 7 -12190144.41147 24825070.9694 0.000
+ 25181660.612 -10599183.215 6 -8128759.66046 25181670.8224 0.000
+ 24390973.343 -16542218.964 8 -12714673.37347 24390981.6774 0.000
+ 26017881.043 -3053202.800 6 -2184783.73546 26017893.4454 0.000
+ 02 1 30 13 10 30.0110000 0 6G 6G15G17G22G25G30
+ 24855795.313 -11077766.800 7 -8480018.49446 24855803.9754 0.000
+ 25097413.484 -14567165.478 7 -11193076.74546 25097424.1744 0.000
+ 24815417.165 -15930442.035 7 -12229634.54947 24815426.8244 0.000
+ 25168339.190 -10669186.530 6 -8183307.57046 25168349.4824 0.000
+ 24397094.042 -16510055.728 8 -12689611.15947 24397102.2484 0.000
+ 26035690.792 -2959611.286 6 -2111855.45046 26035702.9124 0.000
+ 02 1 30 13 11 0.0110000 0 6G 6G15G17G22G25G30
+ 24868951.662 -11008630.967 7 -8426146.48646 24868960.3134 0.000
+ 25081832.323 -14649043.434 7 -11256877.55446 25081843.0614 0.000
+ 24805859.579 -15980666.989 8 -12268770.79347 24805868.8634 0.000
+ 25155057.056 -10738984.401 6 -8237695.39946 25155066.8444 0.000
+ 24403321.053 -16477333.436 8 -12664113.32047 24403329.2244 0.000
+ 26053541.478 -2865805.725 6 -2038760.36446 26053554.0204 0.000
+ 02 1 30 13 11 30.0110000 0 6G 6G15G17G22G25G30
+ 24882144.588 -10939301.322 7 -8372123.45746 24882153.0864 0.000
+ 25066321.854 -14730550.180 7 -11320389.12946 25066332.7084 0.000
+ 24796389.069 -16030434.982 8 -12307550.96147 24796398.2834 0.000
+ 25141814.156 -10808574.432 6 -8291921.26746 25141824.3664 0.000
+ 24409654.395 -16444052.151 8 -12638179.89547 24409662.4364 0.000
+ 26071432.880 -2771785.864 6 -1965498.29646 26071445.2824 0.000
+ 02 1 30 13 12 0.0110000 0 6G 6G15G17G22G25G30
+ 24895374.321 -10869779.512 7 -8317950.68946 24895383.0894 0.000
+ 25050882.429 -14811683.544 7 -11383609.74846 25050893.3894 0.000
+ 24787005.732 -16079744.498 8 -12345973.87547 24787015.1804 0.000
+ 25128611.845 -10877955.442 6 -8345984.26946 25128622.1254 0.000
+ 24416093.730 -16410213.192 8 -12611811.91847 24416101.7834 0.000
+ 26089365.093 -2677552.913 6 -1892070.18746 26089377.2374 0.000
+ 02 1 30 13 12 30.0110000 0 6G 6G15G17G22G25G30
+ 24908640.294 -10800066.494 7 -8263628.92046 24908649.1564 0.000
+ 25035514.742 -14892440.348 7 -11446536.94846 25035525.6324 0.000
+ 24777709.922 -16128593.475 7 -12384037.92947 24777719.2064 0.000
+ 25115448.661 -10947125.411 6 -8399882.83446 25115458.7194 0.000
+ 24422638.917 -16375816.954 8 -12585009.69947 24422647.0994 0.000
+ 26107337.469 -2583107.206 6 -1818476.30746 26107349.9764 0.000
+ 02 1 30 13 13 0.0110000 0 6G 6G15G17G22G25G30
+ 24921942.443 -10730164.404 8 -8209159.83846 24921951.0824 0.000
+ 25020219.197 -14972818.920 7 -11509169.43646 25020229.8994 0.000
+ 24768501.943 -16176981.177 8 -12421742.53947 24768511.2624 0.000
+ 25102326.432 -11016083.545 6 -8453616.34746 25102336.4314 0.000
+ 24429290.325 -16340864.926 8 -12557774.39947 24429298.4954 0.000
+ 26125350.140 -2488450.496 6 -1744717.98246 26125362.1674 0.000
+ 02 1 30 13 13 30.0110000 0 6G 6G15G17G22G25G30
+ 24935278.929 -10660079.657 7 -8154548.41746 24935287.6854 0.000
+ 25004994.848 -15052821.702 7 -11571509.08346 25005006.0784 0.000
+ 24759381.282 -16224910.763 8 -12459090.18447 24759390.6714 0.000
+ 25089243.772 -11084833.564 6 -8507187.67346 25089254.0884 0.000
+ 24436045.808 -16305363.569 8 -12530111.05847 24436054.1194 0.000
+ 26143402.082 -2393588.664 6 -1670799.85546 26143414.1914 0.000
+ 02 1 30 13 14 0.0110000 0 6G 6G15G17G22G25G30
+ 24948651.892 -10589805.076 7 -8099789.07346 24948661.1414 0.000
+ 24989844.543 -15132437.908 7 -11633547.51146 24989855.2574 0.000
+ 24750349.312 -16272372.283 7 -12496073.09947 24750358.8894 0.000
+ 25076202.548 -11153365.433 6 -8560589.03346 25076212.5824 0.000
+ 24442907.760 -16269305.048 8 -12502013.55747 24442915.6614 0.000
+ 26161494.531 -2298514.238 6 -1596716.06246 26161506.6294 0.000
+ 02 1 30 13 14 30.0110000 0 6G 6G15G17G22G25G30
+ 24962060.074 -10519344.098 7 -8044884.48546 24962069.2174 0.000
+ 24974767.660 -15211666.993 7 -11695284.28446 24974778.5614 0.000
+ 24741406.734 -16319366.115 7 -12532691.59047 24741416.1474 0.000
+ 25063202.853 -11221679.716 7 -8613820.84346 25063212.3484 0.000
+ 24449874.632 -16232692.632 8 -12473484.44447 24449882.8614 0.000
+ 26179626.035 -2203230.023 6 -1522468.80946 26179638.5194 0.000
+ 02 1 30 13 15 0.0110000 0 6G 6G15G17G22G25G30
+ 24975503.411 -10448699.228 7 -7989836.60446 24975512.8594 0.000
+ 24959764.520 -15290507.367 7 -11756718.15846 24959775.8324 0.000
+ 24732553.284 -16365891.614 8 -12568945.14047 24732562.8034 0.000
+ 25050244.476 -11289775.915 7 -8666882.71046 25050254.1934 0.000
+ 24456946.997 -16195528.371 8 -12444525.32747 24456955.1904 0.000
+ 26197798.155 -2107737.987 6 -1448059.60946 26197810.3464 0.000
+ 02 1 30 13 15 30.0110000 0 6G 6G15G17G22G25G30
+ 24988981.777 -10377871.114 7 -7934645.94246 24988991.3314 0.000
+ 24944836.253 -15368956.105 7 -11817846.87046 24944847.0844 0.000
+ 24723789.031 -16411946.510 7 -12604831.99747 24723798.2454 0.000
+ 25037328.024 -11357651.874 7 -8719772.97146 25037337.8014 0.000
+ 24464123.772 -16157812.902 8 -12415136.69847 24464132.2704 0.000
+ 26216008.952 -2012038.473 6 -1373488.71146 26216021.9754 0.000
+ 02 1 30 13 16 0.0110000 0 6G 6G15G17G22G25G30
+ 25002494.336 -10306861.049 7 -7879313.50246 25002503.6904 0.000
+ 24929982.855 -15447010.396 7 -11878668.21546 24929993.5224 0.000
+ 24715114.973 -16457529.180 7 -12640350.86847 24715124.5274 0.000
+ 25024453.561 -11425305.918 7 -8772490.31046 25024463.5484 0.000
+ 24471405.523 -16119546.957 8 -12385319.12547 24471413.9284 0.000
+ 26234259.626 -1916132.097 6 -1298756.63546 26234272.1344 0.000
+ 02 1 30 13 16 30.0110000 0 6G 6G15G17G22G25G30
+ 25016041.868 -10235670.329 7 -7823840.28946 25016051.2694 0.000
+ 24915205.159 -15524667.636 8 -11939180.18746 24915215.7564 0.000
+ 24706530.838 -16502637.980 8 -12675500.51047 24706540.0874 0.000
+ 25011621.829 -11492736.516 7 -8825033.54346 25011632.1094 0.000
+ 24478792.040 -16080731.628 8 -12355073.46747 24478800.1284 0.000
+ 26252549.049 -1820019.838 6 -1223864.13746 26252561.3454 0.000
+ 02 1 30 13 17 0.0110000 0 6G 6G15G17G22G25G30
+ 25029623.044 -10164299.058 7 -7768226.38646 25029632.5284 0.000
+ 24900503.532 -15601924.199 8 -11999379.92947 24900514.0354 0.000
+ 24698037.740 -16547270.188 8 -12710278.76647 24698047.1884 0.000
+ 24998833.443 -11559940.908 7 -8877400.51246 24998843.4884 0.000
+ 24486283.205 -16041366.805 8 -12324399.62047 24486291.5624 0.000
+ 26270877.918 -1723701.332 6 -1148810.94146 26270891.1054 0.000
+ 02 1 30 13 17 30.0110000 0 6G 6G15G17G22G25G30
+ 25043238.858 -10092748.902 7 -7712473.08846 25043248.2124 0.000
+ 24885878.567 -15678778.007 8 -12059265.85047 24885889.1874 0.000
+ 24689635.362 -16591424.650 8 -12744684.76847 24689644.5294 0.000
+ 24986087.832 -11626918.028 7 -8929590.38946 24986097.9484 0.000
+ 24493878.103 -16001454.159 8 -12293298.90947 24493886.3674 0.000
+ 26289246.102 -1627177.961 6 -1073598.10446 26289259.6884 0.000
+ 02 1 30 13 18 0.0110000 0 6G 6G15G17G22G25G30
+ 25056888.062 -10021022.122 7 -7656582.17346 25056897.4404 0.000
+ 24871330.567 -15755227.615 7 -12118836.80647 24871341.2464 0.000
+ 24681323.887 -16635100.811 8 -12778718.06447 24681333.3004 0.000
+ 24973386.041 -11693667.247 7 -8981602.67746 24973396.2154 0.000
+ 24501577.165 -15960996.169 8 -12261773.24347 24501585.2654 0.000
+ 26307652.525 -1530451.466 6 -998227.00546 26307666.4044 0.000
+ 02 1 30 13 18 30.0110000 0 6G 6G15G17G22G25G30
+ 25070570.410 -9949120.572 7 -7600555.06846 25070579.9404 0.000
+ 24856859.808 -15831270.978 8 -12178091.20747 24856870.5104 0.000
+ 24673103.908 -16678297.465 8 -12812377.72047 24673113.1564 0.000
+ 24960727.484 -11760187.392 7 -9033436.46946 24960737.7994 0.000
+ 24509379.782 -15919994.061 8 -12229823.59647 24509388.0114 0.000
+ 26326097.518 -1433523.450 6 -922698.88446 26326110.4014 0.000
+ 02 1 30 13 19 0.0110000 0 7G 3G 6G15G17G22G25G30
+ 27931419.995 -29490.978 5 0.000 0.000 0.000
+ 25084286.267 -9877043.803 7 -7544391.43346 25084295.9964 0.000
+ 24842467.312 -15906903.851 8 -12237025.75847 24842477.9794 0.000
+ 24664975.597 -16721011.523 7 -12845661.32847 24664984.8464 0.000
+ 24948113.220 -11826475.038 7 -9085089.08146 24948123.3944 0.000
+ 24517285.748 -15878447.469 8 -12197449.66747 24517293.7904 0.000
+ 26344581.007 -1336392.824 6 -847012.83946 26344594.0074 0.000
+ 02 1 30 13 19 30.0110000 0 7G 3G 6G15G17G22G25G30
+ 27916127.551 -109851.427 5 0.000 0.000 0.000
+ 25098035.657 -9804790.939 7 -7488090.59246 25098045.1174 0.000
+ 24828153.563 -15982121.680 8 -12295636.89047 24828164.3364 0.000
+ 24656940.167 -16763239.201 8 -12878565.93747 24656949.2164 0.000
+ 24935543.882 -11892526.607 7 -9136557.74146 24935553.8934 0.000
+ 24525295.664 -15836355.492 8 -12164650.77047 24525304.0924 0.000
+ 26363103.403 -1239058.380 6 -771168.02946 26363117.1644 0.000
+ 02 1 30 13 20 0.0110000 0 7G 3G 6G15G17G22G25G30
+ 27900855.560 -190103.526 5 0.000 0.000 0.000
+ 25111817.974 -9732365.263 7 -7431655.07946 25111827.4454 0.000
+ 24813919.199 -16056924.000 8 -12353924.25947 24813929.4684 0.000
+ 24648996.763 -16804981.022 8 -12911091.96347 24649005.6254 0.000
+ 24923019.517 -11958342.576 7 -9187842.81046 24923029.9154 0.000
+ 24533408.665 -15793721.197 8 -12131429.27847 24533417.1644 0.000
+ 26381663.679 -1141523.153 6 -695166.73446 26381676.8664 0.000
+ 02 1 30 13 20 30.0110000 0 7G 3G 6G15G17G22G25G30
+ 27885604.475 -270247.032 5 -49950.65355 27885622.6444 0.000
+ 25125632.560 -9659768.466 7 -7375086.22846 25125641.6684 0.000
+ 24799764.231 -16131308.758 8 -12411886.27347 24799774.3124 0.000
+ 24641145.966 -16846236.036 8 -12943238.66147 24641154.9454 0.000
+ 24910540.126 -12023921.523 7 -9238943.19046 24910550.6414 0.000
+ 24541624.639 -15750546.110 8 -12097786.40147 24541633.2204 0.000
+ 26400262.636 -1043788.364 6 -619009.95246 26400275.9294 0.000
+ 02 1 30 13 21 0.0110000 0 7G 3G 6G15G17G22G25G30
+ 27870373.547 -350282.594 4 -112315.48345 27870389.5834 0.000
+ 25139479.531 -9587002.785 7 -7318385.78646 25139489.2374 0.000
+ 24785688.634 -16205274.646 8 -12469521.88447 24785698.8214 0.000
+ 24633388.275 -16887003.687 8 -12975005.60047 24633397.3834 0.000
+ 24898106.032 -12089262.912 7 -9289858.46046 24898116.3714 0.000
+ 24549943.010 -15706832.759 8 -12063724.09347 24549951.4034 0.000
+ 26418898.250 -945855.926 6 -542699.15746 26418911.6954 0.000
+ 02 1 30 13 21 30.0110000 0 7G 3G 6G15G17G22G25G30
+ 27855163.703 -430206.231 4 -174593.17245 27855181.1224 0.000
+ 25153359.121 -9514066.032 7 -7261552.04446 25153368.2884 0.000
+ 24771694.041 -16278815.885 8 -12526826.61247 24771704.5094 0.000
+ 24625723.995 -16927279.249 8 -13006389.08647 24625733.0804 0.000
+ 24885718.071 -12154361.982 7 -9340584.90346 24885728.3514 0.000
+ 24558364.120 -15662579.366 8 -12029240.97247 24558372.5724 0.000
+ 26437572.280 -847723.517 6 -466232.55946 26437586.0424 0.000
+ 02 1 30 13 22 0.0110000 0 7G 3G 6G15G17G22G25G30
+ 27839975.759 -510019.240 4 -236784.63545 27839992.8854 0.000
+ 25167270.365 -9440960.830 7 -7204587.03346 25167279.8014 0.000
+ 24757780.747 -16351931.289 8 -12583799.51547 24757791.3444 0.000
+ 24618153.491 -16967062.570 8 -13037389.01547 24618162.5644 0.000
+ 24873376.371 -12219218.209 7 -9391122.12946 24873386.4754 0.000
+ 24566887.568 -15617788.075 8 -11994338.71747 24566896.1014 0.000
+ 26456284.257 -749393.251 6 -389611.74546 26456298.0194 0.000
+ 02 1 30 13 22 30.0110000 0 7G 3G 6G15G17G22G25G30
+ 27824807.854 -589725.684 5 -298893.04145 27824825.7424 0.000
+ 25181213.131 -9367692.772 7 -7147495.12746 25181222.7554 0.000
+ 24743947.621 -16424622.742 7 -12640442.07947 24743958.1364 0.000
+ 24610676.015 -17006356.672 8 -13068007.73147 24610684.9824 0.000
+ 24861080.388 -12283834.513 7 -9441472.40746 24861090.0124 0.000
+ 24575512.361 -15572464.829 8 -11959021.94647 24575520.8604 0.000
+ 26475032.766 -650870.365 6 -312840.88146 26475045.9184 0.000
+ 02 1 30 13 23 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27809660.799 -669323.276 5 -360916.65945 27809678.3944 0.000
+ 25195186.741 -9294261.523 7 -7090276.06246 25195196.1304 0.000
+ 24730196.492 -16496886.101 8 -12696751.05947 24730206.6674 0.000
+ 24603292.325 -17045158.427 8 -13098242.81047 24603301.1054 0.000
+ 24848830.325 -12348207.503 7 -9491633.08046 24848840.2654 0.000
+ 28069519.654 -52887.228 2 0.000 0.000 0.000
+ 24584238.480 -15526609.467 8 -11923290.54147 24584247.0964 0.000
+ 26493817.922 -552154.203 6 -235919.40046 26493832.0234 0.000
+ 02 1 30 13 23 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27794534.131 -748812.465 5 -422855.94145 27794550.7064 0.000
+ 25209190.896 -9220668.953 7 -7032931.29646 25209200.6614 0.000
+ 24716526.793 -16568719.822 8 -12752725.26647 24716537.0504 0.000
+ 24596002.160 -17083467.152 8 -13128093.70547 24596011.1984 0.000
+ 24836627.020 -12412336.234 7 -9541603.42146 24836636.4334 0.000
+ 28059145.113 -107407.490 3 0.000 0.000 0.000
+ 24593065.370 -15480223.610 8 -11887145.77147 24593073.6224 0.000
+ 26512639.783 -453246.302 6 -158848.52246 26512653.3924 0.000
+ 02 1 30 13 24 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27779428.789 -828191.526 5 -484709.35145 27779445.3874 0.000
+ 25223225.895 -9146914.949 7 -6975460.72046 25223234.8284 0.000
+ 24702939.681 -16640120.350 8 -12808361.91947 24702949.9854 0.000
+ 24588806.477 -17121280.285 8 -13157558.42347 24588815.7614 0.000
+ 24824470.569 -12476217.809 7 -9591381.17046 24824479.9124 0.000
+ 28048807.209 -161728.335 3 0.000 0.000 0.000
+ 24601993.368 -15433307.852 8 -11850588.08447 24602001.4454 0.000
+ 26531498.221 -354146.389 6 -81628.01246 26531511.5264 0.000
+ 02 1 30 13 24 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27764344.188 -907459.815 4 -546476.47745 27764361.5374 0.000
+ 25237291.473 -9073000.454 7 -6917865.09546 25237300.9334 0.000
+ 24689435.359 -16711084.849 8 -12863658.80547 24689445.4874 0.000
+ 24581705.485 -17158596.206 8 -13186635.70447 24581714.6864 0.000
+ 24812361.946 -12539850.394 7 -9640964.91046 24812371.3244 0.000
+ 28038508.773 -215846.707 3 0.000 0.000 0.000
+ 24611022.034 -15385863.065 8 -11813618.16447 24611029.9474 0.000
+ 26550392.346 -254855.189 6 -4258.44446 26550405.7564 0.000
+ 02 1 30 13 25 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27749280.350 -986617.207 3 -608157.16545 27749295.4714 0.000
+ 25251387.468 -8998927.150 7 -6860145.72646 25251396.9864 0.000
+ 24676014.634 -16781611.541 8 -12918614.56147 24676024.4464 0.000
+ 24574699.308 -17195413.980 8 -13215324.82247 24574708.4984 0.000
+ 24800300.202 -12603232.790 7 -9690353.69846 24800309.4974 0.000
+ 28028249.527 -269760.342 3 -32192.02155 28028265.5394 0.000
+ 24620150.497 -15337891.593 8 -11776237.84347 24620158.6324 0.000
+ 26569323.401 -155374.078 6 73259.05645 26569336.0964 0.000
+ 02 1 30 13 25 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27734238.018 -1065662.577 4 -669750.61345 27734255.0504 0.000
+ 25265513.104 -8924695.349 7 -6802302.84846 25265522.6344 0.000
+ 24662677.765 -16851697.329 8 -12973226.74147 24662687.6114 0.000
+ 24567788.373 -17231731.587 8 -13243624.19647 24567797.2244 0.000
+ 24788287.248 -12666362.384 7 -9739545.49746 24788296.5794 0.000
+ 28018029.206 -323465.787 3 -74040.21945 28018048.7004 0.000
+ 24629379.329 -15289393.771 8 -11738447.38147 24629387.6514 0.000
+ 26588290.677 -55703.211 6 150924.43445 26588303.7244 0.000
+ 02 1 30 13 26 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27719216.608 -1144597.713 5 -731258.16545 27719235.0244 0.000
+ 25279668.592 -8850308.461 7 -6744339.12946 25279678.4864 0.000
+ 24649424.561 -16921342.251 8 -13027495.40047 24649434.6194 0.000
+ 24560972.161 -17267550.075 8 -13271534.65447 24560981.0234 0.000
+ 24776321.986 -12729240.035 7 -9788540.97946 24776331.5164 0.000
+ 28007849.549 -376962.694 3 -115725.89645 28007867.6244 0.000
+ 24638707.439 -15240373.319 8 -11700249.67647 24638715.7734 0.000
+ 26607292.599 44154.262 6 228735.25846 26607305.9854 0.000
+ 02 1 30 13 26 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27704217.321 -1223420.045 5 -792677.80245 27704234.5174 0.000
+ 25293853.548 -8775765.304 7 -6686253.64046 25293862.6804 0.000
+ 24636256.342 -16990541.460 8 -13081416.74347 24636266.4354 0.000
+ 24554251.824 -17302865.633 8 -13299053.21847 24554260.6624 0.000
+ 24764405.371 -12791861.521 7 -9837336.86346 24764414.8434 0.000
+ 27997708.917 -430245.905 3 -157245.03145 27997724.0624 0.000
+ 24648135.503 -15190829.462 8 -11661644.13147 24648144.0954 0.000
+ 26626330.470 144199.761 6 306692.54745 26626343.5284 0.000
+ 02 1 30 13 27 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27689239.686 -1302128.917 5 -854009.08645 27689259.4964 0.000
+ 25308068.366 -8701067.232 7 -6628047.42746 25308078.3304 0.000
+ 24623173.280 -17059292.837 8 -13134989.12947 24623183.4674 0.000
+ 24547627.392 -17337677.188 8 -13326179.04947 24547636.3954 0.000
+ 24752537.691 -12854225.398 7 -9885932.00346 24752546.8464 0.000
+ 27987610.967 -483312.840 4 -198595.50845 27987628.5974 0.000
+ 24657662.818 -15140763.851 8 -11622632.01847 24657671.3994 0.000
+ 26645404.324 244432.208 6 384795.52145 26645418.6724 0.000
+ 02 1 30 13 27 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27674283.176 -1380724.065 5 -915251.70445 27674300.1854 0.000
+ 25322312.213 -8626215.350 7 -6569721.38046 25322322.3654 0.000
+ 24610176.079 -17127594.002 8 -13188210.70647 24610185.8434 0.000
+ 24541098.918 -17371983.300 8 -13352911.02347 24541107.6394 0.000
+ 24740719.839 -12916329.785 7 -9934324.95346 24740729.1704 0.000
+ 27977553.299 -536160.611 4 -239775.35645 27977571.9964 0.000
+ 24667289.027 -15090178.013 8 -11583214.53147 24667297.8534 0.000
+ 26664513.763 344850.867 6 463043.57746 26664527.4434 0.000
+ 02 1 30 13 28 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27659347.629 -1459206.491 4 -976406.50145 27659365.2954 0.000
+ 25336585.095 -8551212.193 7 -6511277.45846 25336594.7544 0.000
+ 24597264.403 -17195444.088 8 -13241080.78847 24597274.4144 0.000
+ 24534667.031 -17405784.038 8 -13379249.20447 24534675.9754 0.000
+ 24728951.002 -12978174.337 7 -9982515.43746 24728960.1574 0.000
+ 27967539.657 -588788.016 5 -280783.46745 27967556.0104 0.000
+ 24677013.553 -15039074.697 8 -11543393.82447 24677022.2744 0.000
+ 26683658.555 445453.465 6 541434.98546 26683671.6484 0.000
+ 02 1 30 13 28 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27644434.173 -1537578.293 3 -1037475.04645 27644451.7454 0.000
+ 25350885.839 -8476061.499 7 -6452718.56046 25350895.5804 0.000
+ 24584438.834 -17262843.286 8 -13293599.53847 24584448.7754 0.000
+ 24528330.706 -17439080.912 8 -13405194.77147 24528339.5794 0.000
+ 24717231.782 -13039759.891 7 -10030504.10346 24717240.7614 0.000
+ 27957565.968 -641194.888 5 -321619.70445 27957581.9924 0.000
+ 24686835.796 -14987458.142 8 -11503173.19447 24686844.6114 0.000
+ 26702836.729 546236.368 6 619966.86446 26702850.4214 0.000
+ 02 1 30 13 29 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27629542.177 -1615833.091 3 -1098452.41345 27629562.4564 0.000
+ 25365215.512 -8400758.246 7 -6394040.79646 25365225.5114 0.000
+ 24571700.598 -17329783.178 8 -13345760.38247 24571710.6094 0.000
+ 24522091.855 -17471866.630 8 -13430742.02647 24522100.5534 0.000
+ 24705562.974 -13101078.916 7 -10078285.07946 24705572.4464 0.000
+ 27947637.220 -693372.642 5 -362277.46845 27947655.6124 0.000
+ 24696756.733 -14935323.777 8 -11462549.07147 24696765.4554 0.000
+ 26722050.633 647204.730 6 698643.26346 26722064.2664 0.000
+ 02 1 30 13 29 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27614672.336 -1693971.827 5 -1159339.43445 27614688.9114 0.000
+ 25379573.695 -8325305.178 7 -6335246.28746 25379583.6584 0.000
+ 24559050.013 -17396263.016 8 -13397562.74847 24559059.7784 0.000
+ 24515950.036 -17504141.484 8 -13455891.20547 24515958.7694 0.000
+ 24693944.964 -13162131.151 7 -10125858.18046 24693954.4944 0.000
+ 27937751.881 -745320.102 5 -402755.75245 27937769.8754 0.000
+ 24706775.720 -14882674.766 8 -11421523.93247 24706784.6874 0.000
+ 26741298.932 748355.927 6 777462.12846 26741313.3854 0.000
+ 02 1 30 13 30 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27599825.177 -1771997.430 5 -1220138.24445 27599836.8884 0.000
+ 25393959.930 -8249706.426 7 -6276338.25946 25393969.9414 0.000
+ 24546486.293 -17462283.798 8 -13449007.40047 24546496.3744 0.000
+ 24509905.091 -17535907.469 8 -13480643.86847 24509913.5664 0.000
+ 24682377.765 -13222917.884 7 -10173224.38946 24682387.2844 0.000
+ 27927909.922 -797037.635 4 -443054.90345 27927925.8764 0.000
+ 24716891.548 -14829515.633 8 -11380101.30947 24716900.2934 0.000
+ 26760581.746 849686.097 5 856420.46145 26760596.8794 0.000
+ 02 1 30 13 30 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27584999.301 -1849906.382 5 -1280846.18845 27585018.1854 0.000
+ 25408374.112 -8173959.884 7 -6217315.07646 25408383.9354 0.000
+ 24534011.233 -17527840.051 8 -13500090.09647 24534021.0214 0.000
+ 24503957.886 -17567160.301 8 -13504996.67047 24503966.4544 0.000
+ 24670861.774 -13283434.258 7 -10220379.93746 24670871.1164 0.000
+ 27918112.966 -848519.330 5 -483170.22945 27918129.7404 0.000
+ 24727104.896 -14775845.065 8 -11338280.14747 24727113.4184 0.000
+ 26779898.556 951197.461 5 935519.96945 26779913.2324 0.000
+ 02 1 30 13 31 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27570195.018 -1927701.326 5 -1341465.31945 27570210.0694 0.000
+ 25422815.366 -8098069.686 7 -6158179.95446 25422825.4364 0.000
+ 24521624.415 -17592932.819 8 -13550811.62347 24521634.0744 0.000
+ 24498107.847 -17597901.867 8 -13528951.08347 24498116.3814 0.000
+ 24659396.973 -13343681.763 7 -10267325.97646 24659406.3854 0.000
+ 27908360.844 -899765.678 5 -523102.24045 27908378.8964 0.000
+ 24737414.518 -14721668.043 8 -11296064.35647 24737422.8994 0.000
+ 26799249.696 1052885.939 6 1014757.47545 26799263.6694 0.000
+ 02 1 30 13 31 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27555413.864 -2005378.492 5 -1401992.67545 27555428.1304 0.000
+ 25437284.861 -8022033.715 7 -6098931.23246 25437294.7544 0.000
+ 24509326.891 -17657556.480 8 -13601167.61647 24509336.5384 0.000
+ 24492355.978 -17628127.780 8 -13552503.68447 24492365.0514 0.000
+ 24647984.276 -13403655.351 7 -10314058.57646 24647993.4784 0.000
+ 27898654.312 -950770.782 5 -562846.24345 27898671.7194 0.000
+ 24747820.883 -14666982.845 8 -11253452.57047 24747829.2884 0.000
+ 26818634.828 1154753.742 5 1094134.71445 26818649.0364 0.000
+ 02 1 30 13 32 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27540653.642 -2082939.097 5 -1462429.19345 27540670.2764 0.000
+ 25451781.124 -7945854.638 7 -6039571.00446 25451790.9824 0.000
+ 24497118.802 -17721710.309 8 -13651157.51547 24497128.5554 0.000
+ 24486702.250 -17657838.453 8 -13575654.80047 24486711.4054 0.000
+ 24636623.652 -13463354.795 7 -10360577.54946 24636632.9124 0.000
+ 27888994.801 -1001533.430 5 -602401.25345 27889011.1304 0.000
+ 24758323.233 -14611792.326 8 -11210447.03547 24758332.0014 0.000
+ 26838052.881 1256798.466 5 1173649.85145 26838067.3004 0.000
+ 02 1 30 13 32 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27525916.324 -2160384.641 5 -1522776.04845 27525933.3094 0.000
+ 25466304.212 -7869535.240 7 -5980101.44746 25466313.9294 0.000
+ 24484999.925 -17785394.110 8 -13700781.15047 24485009.6314 0.000
+ 24481146.350 -17687034.787 8 -13598405.13047 24481155.4114 0.000
+ 24625315.467 -13522780.254 7 -10406883.02046 24625324.6464 0.000
+ 27879381.241 -1052052.966 4 -641766.85145 27879399.2584 0.000
+ 24768921.043 -14556100.278 8 -11167050.70347 24768929.9874 0.000
+ 26857504.826 1359017.303 5 1253300.62145 26857519.4084 0.000
+ 02 1 30 13 33 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27511200.905 -2237710.864 4 -1583029.98145 27511218.2894 0.000
+ 25480854.657 -7793072.879 7 -5920520.48046 25480864.4334 0.000
+ 24472971.837 -17848602.062 8 -13750034.00747 24472981.6834 0.000
+ 24475689.294 -17715711.874 8 -13620750.85647 24475697.9344 0.000
+ 24614060.321 -13581926.333 7 -10452970.79746 24614069.3244 0.000
+ 27869814.822 -1102323.053 4 -680938.10745 27869832.4874 0.000
+ 24779614.861 -14499904.884 8 -11123262.16447 24779623.7814 0.000
+ 26876990.368 1461412.801 5 1333089.07745 26877005.5714 0.000
+ 02 1 30 13 33 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27496508.250 -2314918.616 5 -1643191.51745 27496523.2194 0.000
+ 25495431.747 -7716469.998 7 -5860830.00946 25495441.6174 0.000
+ 24461034.389 -17911333.031 8 -13798915.17647 24461044.1074 0.000
+ 24470330.902 -17743869.996 8 -13642692.19347 24470339.5534 0.000
+ 24602858.549 -13640792.436 7 -10498840.41346 24602867.4464 0.000
+ 27860296.922 -1152342.231 5 -719913.86945 27860315.4204 0.000
+ 24790403.707 -14443209.165 8 -11079083.75647 24790412.6164 0.000
+ 26896509.548 1563982.855 6 1413013.54645 26896525.1394 0.000
+ 02 1 30 13 34 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27481839.655 -2392005.984 5 -1703259.28445 27481854.9294 0.000
+ 25510035.874 -7639725.873 7 -5801029.48146 25510046.0844 0.000
+ 24449188.527 -17973583.127 8 -13847421.63947 24449197.9754 0.000
+ 24465071.787 -17771506.292 8 -13664226.91947 24465080.3914 0.000
+ 24591710.303 -13699375.103 7 -10544489.16246 24591719.4354 0.000
+ 27850826.761 -1202106.132 5 -758690.70645 27850843.9114 0.000
+ 24801287.926 -14386012.632 8 -11034515.10547 24801296.6714 0.000
+ 26916061.395 1666728.318 6 1493074.66845 26916075.3564 0.000
+ 02 1 30 13 34 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27467192.635 -2468973.274 5 -1763233.56345 27467207.0884 0.000
+ 25524666.073 -7562842.236 6 -5741120.25146 25524676.5874 0.000
+ 24437434.299 -18035351.032 8 -13895552.37447 24437443.7124 0.000
+ 24459912.069 -17798620.546 8 -13685354.85547 24459920.5564 0.000
+ 24580616.537 -13757673.316 7 -10589916.26046 24580625.8564 0.000
+ 27841405.460 -1251612.856 5 -797267.06245 27841422.1764 0.000
+ 24812266.942 -14328318.261 8 -10989558.52347 24812275.4884 0.000
+ 26935645.981 1769647.449 5 1573271.10245 26935659.6264 0.000
+ 02 1 30 13 35 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27452569.728 -2545822.426 5 -1823115.79745 27452582.1774 0.000
+ 25539322.691 -7485822.681 7 -5681105.11146 25539332.7254 0.000
+ 24425772.021 -18096636.993 8 -13943307.56547 24425781.6924 0.000
+ 24454851.360 -17825214.207 8 -13706077.13847 24454859.9414 0.000
+ 24569576.638 -13815687.808 7 -10635122.28146 24569585.6294 0.000
+ 27832033.087 -1300862.188 5 -835642.90145 27832049.5574 0.000
+ 24823339.848 -14270130.288 8 -10944217.31747 24823348.3354 0.000
+ 26955263.579 1872736.785 5 1653600.21545 26955280.0134 0.000
+ 02 1 30 13 35 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27437967.846 -2622551.070 5 -1882904.19345 27437979.1234 0.000
+ 25554005.264 -7408665.833 7 -5620982.97446 25554015.0294 0.000
+ 24414202.151 -18157436.730 8 -13990683.89047 24414211.3884 0.000
+ 24449890.418 -17851284.118 8 -13726391.29547 24449899.4674 0.000
+ 24558591.614 -13873414.711 7 -10680104.20946 24558601.0274 0.000
+ 27822711.204 -1349849.208 5 -873814.33445 27822729.2444 0.000
+ 24834506.767 -14211448.260 8 -10898491.13747 24834515.8634 0.000
+ 26974914.028 1975997.622 6 1734062.90245 26974929.9114 0.000
+ 02 1 30 13 36 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27423390.256 -2699158.093 5 -1942597.75345 27423404.6514 0.000
+ 25568713.860 -7331372.149 7 -5560754.21046 25568724.0114 0.000
+ 24402725.431 -18217747.730 8 -14037679.38147 24402734.6684 0.000
+ 24445029.544 -17876828.706 8 -13746296.11547 24445038.4884 0.000
+ 24547661.470 -13930851.418 7 -10724860.00446 24547670.8364 0.000
+ 27813439.975 -1398570.686 5 -911778.90545 27813456.7724 0.000
+ 24845767.187 -14152273.391 8 -10852380.93147 24845776.2374 0.000
+ 26994596.554 2079429.510 6 1814658.90545 26994610.9134 0.000
+ 02 1 30 13 36 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27408834.539 -2775643.111 5 -2002196.26745 27408850.3054 0.000
+ 25583448.335 -7253942.875 7 -5500419.80646 25583458.8154 0.000
+ 24391341.810 -18277568.073 8 -14084292.54247 24391351.3514 0.000
+ 24440268.612 -17901847.092 8 -13765790.91247 24440277.2634 0.000
+ 24536787.285 -13987996.491 7 -10769388.56646 24536796.0894 0.000
+ 27804218.864 -1447024.200 5 -949534.65145 27804235.8844 0.000
+ 24857121.099 -14092607.646 8 -10805888.21947 24857130.3364 0.000
+ 27014311.024 2183031.380 5 1895387.37045 27014328.5724 0.000
+ 02 1 30 13 37 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27394303.357 -2852005.468 5 -2061699.14045 27394320.7064 0.000
+ 25598208.106 -7176378.782 7 -5439980.34546 25598218.0124 0.000
+ 24380052.055 -18336895.240 8 -14130521.40647 24380061.5034 0.000
+ 24435608.226 -17926338.065 8 -13784874.74847 24435616.7714 0.000
+ 24525968.904 -14044847.866 8 -10813688.27446 24525977.6144 0.000
+ 27795049.930 -1495206.907 5 -987079.37045 27795067.7484 0.000
+ 24868568.512 -14032452.562 8 -10759014.21246 24868577.3394 0.000
+ 27034058.555 2286802.490 5 1976247.65145 27034074.5324 0.000
+ 02 1 30 13 37 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27379794.797 -2928246.681 5 -2121107.64045 27379810.2824 0.000
+ 25612993.504 -7098682.822 6 -5379438.12546 25613003.7964 0.000
+ 24368856.227 -18395729.410 8 -14176366.12247 24368865.5464 0.000
+ 24431047.761 -17950303.030 8 -13803548.70647 24431056.3894 0.000
+ 24515206.174 -14101405.892 7 -10857759.38746 24515214.8374 0.000
+ 27785932.594 -1543118.305 5 -1024412.72945 27785948.6774 0.000
+ 24880107.880 -13971811.817 8 -10711761.76546 24880116.6834 0.000
+ 27053837.399 2390739.748 5 2057237.45945 27053852.8844 0.000
+ 02 1 30 13 38 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27365309.849 -3004365.750 5 -2180420.95545 27365324.0674 0.000
+ 25627803.449 -7020855.232 6 -5318793.35646 25627814.1524 0.000
+ 24357754.804 -18454067.810 8 -14221824.51747 24357764.1704 0.000
+ 24426587.778 -17973740.265 8 -13821811.44747 24426596.4294 0.000
+ 24504499.747 -14157668.028 7 -10901599.95046 24504508.8434 0.000
+ 27776867.832 -1590755.097 5 -1061532.06345 27776884.9584 0.000
+ 24891739.942 -13910687.071 7 -10664132.17546 24891748.9804 0.000
+ 27073647.822 2494842.873 5 2138356.50045 27073662.8964 0.000
+ 02 1 30 13 38 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27350848.202 -3080361.588 5 -2239638.24645 27350863.0544 0.000
+ 25642638.560 -6942896.482 7 -5258046.37146 25642649.0984 0.000
+ 24346748.387 -18511907.626 8 -14266894.41647 24346757.2964 0.000
+ 24422228.324 -17996648.229 8 -13839661.76147 24422237.3504 0.000
+ 24493849.982 -14213631.783 7 -10945208.00347 24493859.0554 0.000
+ 27767855.108 -1638114.070 5 -1098434.95145 27767872.9254 0.000
+ 24903463.355 -13849079.776 8 -10616126.56146 24903471.9474 0.000
+ 27093490.010 2599111.531 5 2219604.47945 27093505.3894 0.000
+ 02 1 30 13 39 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27336410.850 -3156232.609 5 -2298758.28745 27336426.4524 0.000
+ 25657499.007 -6864806.169 6 -5197196.87346 25657509.1704 0.000
+ 24335837.011 -18569245.636 8 -14311573.29347 24335846.1784 0.000
+ 24417970.379 -18019024.693 8 -13857097.93247 24417978.8904 0.000
+ 24483257.695 -14269294.112 7 -10988581.18247 24483266.9564 0.000
+ 27758896.663 -1685191.210 5 -1135118.28645 27758913.9884 0.000
+ 24915278.470 -13786990.357 7 -10567745.27946 24915287.5314 0.000
+ 27113363.170 2703546.094 6 2300981.79045 27113377.6824 0.000
+ 02 1 30 13 39 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27321996.016 -3231977.542 5 -2357780.08945 27322009.9534 0.000
+ 25672384.019 -6786584.543 6 -5136245.06746 25672394.8864 0.000
+ 24325021.871 -18626079.210 8 -14355859.10947 24325031.0734 0.000
+ 24413813.529 -18040868.110 8 -13874118.73747 24413822.1224 0.000
+ 24472723.155 -14324652.517 7 -11031717.53846 24472732.2754 0.000
+ 27749991.565 -1731983.092 5 -1171579.29545 27750008.5974 0.000
+ 24927185.512 -13724419.894 7 -10518989.16446 24927195.0074 0.000
+ 27133268.032 2808146.357 5 2382488.18445 27133284.2324 0.000
+ 02 1 30 13 40 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27307605.431 -3307600.745 5 -2416706.99645 27307621.9594 0.000
+ 25687293.174 -6708236.845 6 -5075195.01846 25687303.4554 0.000
+ 24314302.304 -18682410.804 7 -14399753.76747 24314311.0844 0.000
+ 24409757.766 -18062182.062 8 -13890726.97747 24409766.2414 0.000
+ 24462246.154 -14379709.654 7 -11074619.13947 24462255.4034 0.000
+ 27741141.691 -1778491.776 5 -1207819.63145 27741159.3334 0.000
+ 24939182.494 -13661374.516 7 -10469862.98146 24939192.0244 0.000
+ 27153203.827 2912906.783 5 2464119.37945 27153218.9134 0.000
+ 02 1 30 13 40 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27293238.711 -3383096.609 5 -2475534.69445 27293253.7864 0.000
+ 25702226.973 -6629759.109 6 -5014043.63146 25702237.4294 0.000
+ 24303679.542 -18738233.338 7 -14443251.76247 24303688.4514 0.000
+ 24405803.392 -18082960.995 8 -13906918.31847 24405811.8904 0.000
+ 24451827.751 -14434458.869 7 -11117280.80747 24451836.6954 0.000
+ 27732346.365 -1824709.681 5 -1243833.39745 27732363.1514 0.000
+ 24951270.943 -13597851.359 7 -10420364.50546 24951280.0744 0.000
+ 27173170.766 3017831.249 5 2545878.38245 27173186.1694 0.000
+ 02 1 30 13 41 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27278895.676 -3458465.959 5 -2534263.76245 27278912.2164 0.000
+ 25717185.265 -6551153.512 6 -4952792.63446 25717195.5334 0.000
+ 24293154.042 -18793546.076 6 -14486352.51647 24293162.9864 0.000
+ 24401951.215 -18103205.206 8 -13922692.99347 24401959.7024 0.000
+ 24441468.044 -14488899.463 7 -11159701.98347 24441477.2344 0.000
+ 27723607.276 -1870635.406 5 -1279619.53545 27723624.1564 0.000
+ 24963449.185 -13533853.983 8 -10370496.51146 24963458.2344 0.000
+ 27193167.615 3122917.660 5 2627763.59945 27193183.0654 0.000
+ 02 1 30 13 41 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27264577.209 -3533711.224 5 -2592896.17445 27264593.1984 0.000
+ 25732167.299 -6472423.811 6 -4891444.92246 25732177.5564 0.000
+ 24282725.057 -18848349.836 7 -14529056.65847 24282733.8604 0.000
+ 24398200.226 -18122916.798 8 -13938052.64347 24398208.7364 0.000
+ 24431167.048 -14543032.409 7 -11201883.43647 24431176.2734 0.000
+ 27714922.783 -1916269.158 5 -1315178.11745 27714939.9334 0.000
+ 24975717.043 -13469387.094 8 -10320262.66446 24975725.8934 0.000
+ 27213195.506 3228162.097 5 2709771.97745 27213211.9404 0.000
+ 02 1 30 13 42 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27250282.977 -3608828.566 5 -2651428.98745 27250298.0994 0.000
+ 25747173.354 -6393567.309 6 -4829998.41346 25747183.7754 0.000
+ 24272394.164 -18902639.374 6 -14571360.12047 24272403.0964 0.000
+ 24394551.180 -18142091.472 8 -13952993.91647 24394559.8664 0.000
+ 24420925.271 -14596852.270 7 -11243820.92747 24420934.4614 0.000
+ 27706295.853 -1961604.828 5 -1350504.42545 27706313.6354 0.000
+ 24988074.283 -13404448.669 7 -10269661.38746 24988083.3914 0.000
+ 27233253.467 3333567.146 5 2791905.45645 27233268.9284 0.000
+ 02 1 30 13 42 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27236011.565 -3683818.323 5 -2709862.23945 27236026.3004 0.000
+ 25762202.831 -6314585.779 6 -4768454.48646 25762212.9014 0.000
+ 24262161.033 -18956413.545 7 -14613261.99447 24262170.0014 0.000
+ 24391004.689 -18160729.425 8 -13967516.96147 24391013.4934 0.000
+ 24410743.348 -14650358.403 8 -11285513.95547 24410752.2804 0.000
+ 27697725.292 -2006640.786 5 -1385597.19345 27697741.1874 0.000
+ 25000520.799 -13339041.831 7 -10218695.10746 25000529.8254 0.000
+ 27253341.815 3439131.017 5 2874162.71045 27253357.6754 0.000
+ 02 1 30 13 43 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27221766.988 -3758681.270 5 -2768196.75045 27221782.5554 0.000
+ 25777256.158 -6235481.165 6 -4706814.64946 25777266.6374 0.000
+ 24252026.441 -19009671.318 7 -14654761.50847 24252036.1364 0.000
+ 24387560.019 -18178830.777 8 -13981621.88147 24387568.7174 0.000
+ 24400621.258 -14703549.907 8 -11326961.77147 24400628.9724 0.000
+ 27689213.179 -2051375.388 5 -1420455.11545 27689230.0474 0.000
+ 25013055.991 -13273169.891 7 -10167366.42346 25013065.0994 0.000
+ 27273460.387 3544851.697 5 2956542.15345 27273478.3344 0.000
+ 02 1 30 13 43 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27207544.910 -3833415.519 5 -2826430.94245 27207559.7504 0.000
+ 25792332.800 -6156253.067 6 -4645078.58446 25792343.5374 0.000
+ 24241990.541 -19062409.691 7 -14695856.23847 24241999.5674 0.000
+ 24384217.880 -18196393.636 8 -13995307.18847 24384226.4614 0.000
+ 24390559.645 -14756423.516 7 -11368161.95347 24390568.6944 0.000
+ 27680758.400 -2095804.758 5 -1455075.11645 27680775.3854 0.000
+ 25025679.264 -13206833.537 7 -10115675.85646 25025688.6534 0.000
+ 27293608.767 3650729.273 5 3039043.80945 27293626.2454 0.000
+ 02 1 30 13 44 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27193347.626 -3908020.282 5 -2884564.29745 27193364.0024 0.000
+ 25807432.831 -6076902.067 6 -4583246.76846 25807443.4754 0.000
+ 24232053.822 -19114626.594 7 -14736544.66347 24232063.0244 0.000
+ 24380978.373 -18213416.946 8 -14008572.08347 24380986.8244 0.000
+ 24380559.001 -14808977.120 8 -11409112.74647 24380567.8634 0.000
+ 27672362.294 -2139926.072 5 -1489455.11445 27672378.3064 0.000
+ 25038390.942 -13140034.617 7 -10063624.85746 25038400.0744 0.000
+ 27313786.374 3756763.333 5 3121667.43345 27313802.1294 0.000
+ 02 1 30 13 44 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27179175.158 -3982496.063 5 -2942597.10145 27179189.9754 0.000
+ 25822556.147 -5997429.765 6 -4521320.42846 25822566.4984 0.000
+ 24222216.780 -19166320.881 7 -14776825.85247 24222226.1234 0.000
+ 24377841.534 -18229900.903 8 -14021416.70047 24377849.6344 0.000
+ 24370619.530 -14861209.687 8 -11449813.37847 24370628.6034 0.000
+ 27664024.591 -2183737.610 5 -1523593.72245 27664042.4914 0.000
+ 25051189.901 -13072775.652 7 -10011215.37246 25051199.1034 0.000
+ 27333993.753 3862951.987 5 3204411.54745 27334010.2224 0.000
+ 02 1 30 13 45 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27165027.605 -4056840.084 5 -3000527.24245 27165041.0624 0.000
+ 25837702.488 -5917834.423 6 -4459298.19846 25837713.2024 0.000
+ 24212479.994 -19217488.143 7 -14816696.37547 24212489.1024 0.000
+ 24374808.084 -18245842.372 8 -14033838.59547 24374816.7004 0.000
+ 24360741.839 -14913117.053 8 -11490260.61147 24360751.0174 0.000
+ 27655747.598 -2227234.504 5 -1557487.15445 27655764.7124 0.000
+ 25064076.730 -13005056.326 7 -9958447.16946 25064085.8504 0.000
+ 27354230.229 3969296.753 5 3287277.25345 27354246.9214 0.000
+ 02 1 30 13 45 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27150905.194 -4131055.436 5 -3058357.18045 27150919.9404 0.000
+ 25852871.732 -5838120.554 6 -4397183.62246 25852882.3524 0.000
+ 24202842.948 -19268130.342 7 -14856157.75347 24202852.0324 0.000
+ 24371876.925 -18261244.339 8 -14045840.09147 24371885.7754 0.000
+ 24350925.756 -14964700.901 8 -11530455.75447 24350934.8174 0.000
+ 27647529.652 -2270417.755 5 -1591136.22645 27647546.9074 0.000
+ 25077049.447 -12936882.369 7 -9905324.70646 25077058.5784 0.000
+ 27374496.174 4075792.827 5 3370260.88945 27374513.8634 0.000
+ 02 1 30 13 46 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27136807.151 -4205141.012 5 -3116085.99645 27136820.7724 0.000
+ 25868063.412 -5758288.401 6 -4334976.86146 25868073.8804 0.000
+ 24193306.551 -19318244.728 6 -14895207.85147 24193315.4714 0.000
+ 24369048.958 -18276105.614 8 -14057420.27147 24369057.6564 0.000
+ 24341171.646 -15015958.757 8 -11570396.88447 24341180.6964 0.000
+ 27639372.303 -2313284.023 5 -1624538.26045 27639389.7454 0.000
+ 25090108.664 -12868255.434 7 -9851849.27846 25090118.3474 0.000
+ 27394790.771 4182439.961 5 3453362.21845 27394806.6664 0.000
+ 02 1 30 13 46 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27122733.409 -4279095.051 5 -3173712.28145 27122747.0184 0.000
+ 25883277.777 -5678337.558 6 -4272677.62446 25883288.1044 0.000
+ 24183870.937 -19367828.599 7 -14933844.56847 24183880.2794 0.000
+ 24366324.328 -18290424.293 8 -14068577.65747 24366333.0374 0.000
+ 24331480.247 -15066887.621 8 -11610081.65947 24331489.2264 0.000
+ 27631276.227 -2355829.704 5 -1657690.49245 27631291.4314 0.000
+ 25103254.293 -12799176.409 7 -9798021.57246 25103263.7654 0.000
+ 27415114.139 4289238.395 5 3536581.43445 27415130.9604 0.000
+ 02 1 30 13 47 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27108685.150 -4352921.281 5 -3231239.00445 27108698.4424 0.000
+ 25898513.457 -5598272.732 6 -4210289.56446 25898524.2304 0.000
+ 24174535.954 -19416883.786 6 -14972069.31847 24174544.8044 0.000
+ 24363702.275 -18304203.625 8 -14079314.77247 24363711.0434 0.000
+ 24321850.745 -15117489.278 8 -11649511.45747 24321859.5364 0.000
+ 27623239.968 -2398056.025 5 -1690593.90445 27623258.8054 0.000
+ 25116484.823 -12729650.978 7 -9743846.01146 25116494.3304 0.000
+ 27435465.239 4396183.334 5 3619914.80245 27435481.0754 0.000
+ 02 1 30 13 47 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27094662.008 -4426610.692 5 -3288659.12845 27094674.6094 0.000
+ 25913772.563 -5518086.320 6 -4147806.77946 25913783.3714 0.000
+ 24165303.380 -19465400.342 7 -15009874.36047 24165312.4534 0.000
+ 24361184.266 -18317434.724 8 -14089624.69647 24361192.7064 0.000
+ 24312285.922 -15167753.645 8 -11688678.44247 24312294.6194 0.000
+ 27615267.436 -2439952.200 5 -1723240.11645 27615283.7414 0.000
+ 25129801.004 -12659672.906 7 -9689317.74946 25129810.8274 0.000
+ 27455845.426 4503282.092 5 3703368.02345 27455863.2434 0.000
+ 02 1 30 13 48 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27080663.650 -4500171.682 5 -3345979.18645 27080675.9814 0.000
+ 25929052.839 -5437787.603 6 -4085236.47146 25929063.3304 0.000
+ 24156172.385 -19513384.998 7 -15047264.92847 24156181.4814 0.000
+ 24358769.172 -18330125.470 8 -14099513.55947 24358777.7884 0.000
+ 24302783.890 -15217687.438 8 -11727587.83547 24302792.3184 0.000
+ 27607356.610 -2481524.232 5 -1755633.67645 27607372.2004 0.000
+ 25143201.516 -12589253.215 7 -9634445.37546 25143211.2924 0.000
+ 27476253.709 4610525.136 5 3786933.67345 27476270.1674 0.000
+ 02 1 30 13 48 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27066690.145 -4573600.696 5 -3403196.42145 27066704.4344 0.000
+ 25944355.392 -5357374.784 6 -4022577.26046 25944366.5634 0.000
+ 24147143.153 -19560833.456 7 -15084237.68147 24147152.1674 0.000
+ 24356457.771 -18342272.903 8 -14108979.06747 24356466.3514 0.000
+ 24293345.360 -15267286.196 8 -11766236.16647 24293353.8354 0.000
+ 27599508.312 -2522767.019 5 -1787770.74945 27599524.6064 0.000
+ 25156686.270 -12518391.469 7 -9579228.53846 25156695.5894 0.000
+ 27496689.224 4717914.017 5 3870613.00245 27496705.6594 0.000
+ 02 1 30 13 49 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27052742.761 -4646894.813 5 -3460308.52245 27052757.6014 0.000
+ 25959679.296 -5276845.857 6 -3959827.57946 25959689.8464 0.000
+ 24138216.613 -19607741.287 7 -15120789.17247 24138225.8624 0.000
+ 24354250.136 -18353873.793 8 -14118018.69547 24354258.6224 0.000
+ 24283971.705 -15316545.274 8 -11804619.81147 24283980.1214 0.000
+ 27591723.511 -2563675.466 5 -1819647.27545 27591740.3794 0.000
+ 25170255.153 -12447087.115 7 -9523666.81446 25170264.6954 0.000
+ 27517153.231 4825450.481 5 3954407.29445 27517168.3414 0.000
+ 02 1 30 13 49 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27038819.877 -4720056.927 5 -3517317.78545 27038833.7444 0.000
+ 25975024.827 -5196205.087 6 -3896990.75146 25975036.2444 0.000
+ 24129393.017 -19654110.170 6 -15156920.70947 24129402.1604 0.000
+ 24352146.038 -18364930.939 8 -14126634.62847 24352154.6074 0.000
+ 24274662.308 -15365466.211 8 -11842739.97847 24274670.9124 0.000
+ 27584001.850 -2604250.516 5 -1851264.05645 27584019.8324 0.000
+ 25183907.300 -12375345.496 7 -9467764.37546 25183916.4904 0.000
+ 27537644.269 4933130.196 5 4038313.17445 27537660.8204 0.000
+ 02 1 30 13 50 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27024924.231 -4793081.258 5 -3574219.66045 27024937.9694 0.000
+ 25990392.711 -5115447.622 6 -3834062.99646 25990403.6714 0.000
+ 24120673.136 -19699932.985 6 -15192626.74047 24120681.9274 0.000
+ 24350146.605 -18375438.430 8 -14134822.26247 24350154.9514 0.000
+ 24265418.560 -15414041.676 8 -11880590.93847 24265427.2584 0.000
+ 27576345.806 -2644484.004 5 -1882614.70745 27576361.6544 0.000
+ 25197643.399 -12303163.586 7 -9411518.84546 25197652.9994 0.000
+ 27558163.326 5040957.518 5 4122334.10445 27558179.6904 0.000
+ 02 1 30 13 50 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 27011053.448 -4865973.181 6 -3631018.36145 27011067.3274 0.000
+ 26005781.310 -5034580.087 6 -3771049.47146 26005792.6104 0.000
+ 24112056.452 -19745214.273 6 -15227910.79947 24112065.3614 0.000
+ 24348250.635 -18385401.857 8 -14142585.94547 24348258.8644 0.000
+ 24256239.675 -15462275.915 8 -11918176.00547 24256248.6424 0.000
+ 27568753.881 -2684379.637 5 -1913702.07645 27568770.3854 0.000
+ 25211461.249 -12230549.255 7 -9354936.36646 25211471.1894 0.000
+ 27578709.148 5148925.489 5 4206464.64445 27578725.2544 0.000
+ 02 1 30 13 51 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26997207.674 -4938733.314 6 -3687714.41545 26997220.6274 0.000
+ 26021191.113 -4953604.191 6 -3707951.48446 26021201.9684 0.000
+ 24103542.900 -19789952.811 7 -15262771.93247 24103551.7854 0.000
+ 24346457.910 -18394821.480 8 -14149925.89047 24346466.1744 0.000
+ 24247126.250 -15510167.775 8 -11955494.30047 24247135.1004 0.000
+ 27561226.904 -2723935.543 5 -1944524.72945 27561243.6544 0.000
+ 25225360.764 -12157505.633 7 -9298019.37446 25225370.8924 0.000
+ 27599281.378 5257032.309 5 4290703.35345 27599298.2584 0.000
+ 02 1 30 13 51 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26983387.220 -5011359.168 6 -3744305.78945 26983399.7754 0.000
+ 26036620.751 -4872518.875 6 -3644768.26546 26036631.6994 0.000
+ 24095133.275 -19834145.106 6 -15297207.42347 24095141.8674 0.000
+ 24344769.450 -18403695.118 8 -14156840.40047 24344777.6444 0.000
+ 24238078.730 -15557713.586 8 -11992542.93547 24238087.6514 0.000
+ 27553764.631 -2763147.506 5 -1975079.36445 27553782.2964 0.000
+ 25239342.404 -12084033.207 7 -9240768.25846 25239352.2634 0.000
+ 27619880.394 5365278.704 5 4375050.86145 27619896.3714 0.000
+ 02 1 30 13 52 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26969592.737 -5083847.799 5 -3800790.26345 26969605.1394 0.000
+ 26052072.051 -4791322.172 6 -3581498.23046 26052082.8004 0.000
+ 24086828.487 -19877787.025 6 -15331214.05047 24086837.1624 0.000
+ 24343185.134 -18412019.743 8 -14163327.10147 24343193.5274 0.000
+ 24229097.576 -15604908.733 8 -12029318.33047 24229106.2044 0.000
+ 27546368.430 -2802010.516 5 -2005362.09645 27546386.3064 0.000
+ 25253405.628 -12010131.682 7 -9183182.78446 25253415.0414 0.000
+ 27640506.508 5473666.355 5 4459508.41245 27640524.1744 0.000
+ 02 1 30 13 52 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26955824.132 -5156201.784 5 -3857169.81845 26955836.5694 0.000
+ 26067544.008 -4710017.918 6 -3518144.38646 26067554.7454 0.000
+ 24078628.049 -19920880.431 6 -15364793.26747 24078636.7704 0.000
+ 24341705.007 -18419798.204 8 -14169388.21547 24341713.5994 0.000
+ 24220183.123 -15651754.716 8 -12065821.63947 24220191.7154 0.000
+ 27539039.998 -2840525.298 5 -2035373.44445 27539056.1044 0.000
+ 25267549.406 -11935806.311 7 -9125267.03146 25267559.0414 0.000
+ 27661157.780 5582191.045 5 4544072.77245 27661175.4564 0.000
+ 02 1 30 13 53 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26942081.073 -5228421.520 5 -3913444.73745 26942095.2924 0.000
+ 26083035.775 -4628607.513 6 -3454707.83246 26083046.4664 0.000
+ 24070532.142 -19963424.602 6 -15397944.51147 24070540.9814 0.000
+ 24340328.655 -18427030.900 8 -14175024.06447 24340337.6104 0.000
+ 24211335.276 -15698250.335 8 -12102051.93447 24211343.6584 0.000
+ 27531776.943 -2878690.349 5 -2065112.30445 27531793.8474 0.000
+ 25281773.030 -11861060.526 7 -9067023.68846 25281782.7014 0.000
+ 27681835.858 5690851.033 5 4628742.49945 27681854.8954 0.000
+ 02 1 30 13 53 30.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26928362.638 -5300510.826 5 -3969618.01745 26928375.4854 0.000
+ 26098546.865 -4547095.886 6 -3391192.40746 26098558.4234 0.000
+ 24062540.187 -20005421.876 7 -15430669.60547 24062549.0844 0.000
+ 24339055.313 -18433721.641 8 -14180237.60847 24339064.1864 0.000
+ 24202553.653 -15744397.955 8 -12138011.06647 24202562.1404 0.000
+ 27524581.116 -2916507.277 5 -2094579.83545 27524596.5664 0.000
+ 25296075.544 -11785900.526 7 -9008457.58046 25296085.6254 0.000
+ 27702537.941 5799640.989 5 4713513.53545 27702556.7434 0.000
+ 02 1 30 13 54 0.0110000 0 8G 3G 6G15G17G22G23G25G30
+ 26914670.354 -5372463.206 5 -4025684.61145 26914683.3784 0.000
+ 26114078.260 -4465477.955 6 -3327594.14846 26114089.7594 0.000
+ 24054653.789 -20046864.743 7 -15462962.69247 24054662.5924 0.000
+ 24337886.585 -18439864.252 8 -14185024.03847 24337895.4474 0.000
+ 24193839.579 -15790189.785 8 -12173692.95747 24193848.1134 0.000
+ 27517451.707 -2953967.880 5 -2123769.76745 27517467.5674 0.000
+ 25310457.820 -11710322.717 7 -8949565.91546 25310467.2684 0.000
+ 27723265.617 5908565.856 5 4798389.70845 27723283.6344 0.000
+ 02 1 30 13 54 30.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26901004.283 -5444277.053 5 -4081643.24445 26901017.6234 0.000
+ 26129630.599 -4383753.041 6 -3263912.52246 26129642.5214 0.000
+ 24046873.394 -20087750.621 6 -15494821.76547 24046882.0214 0.000
+ 24336822.226 -18445457.199 8 -14189382.15547 24336830.9004 0.000
+ 28248788.583 -13361.79714 0.000 0.000 0.000
+ 24185193.962 -15835622.855 8 -12209095.29747 24185202.4254 0.000
+ 27510392.057 -2991068.436 5 -2152679.06645 27510407.9414 0.000
+ 25324919.022 -11634328.086 7 -8890349.45546 25324929.0334 0.000
+ 27744019.627 6017625.804 5 4883371.07945 27744038.8284 0.000
+ 02 1 30 13 55 0.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26887364.598 -5515953.489 5 -4137494.80545 26887377.3404 0.000
+ 26145202.103 -4301923.486 6 -3200149.35346 26145213.5444 0.000
+ 24039199.378 -20128079.621 6 -15526246.91747 24039208.0754 0.000
+ 24335862.241 -18450501.907 8 -14193313.08047 24335870.7864 0.000
+ 28233530.033 -93541.795 5 0.000 0.000 0.000
+ 24176616.564 -15880696.739 8 -12244217.74747 24176625.2264 0.000
+ 27503400.215 -3027808.134 5 -2181307.24345 27503414.8804 0.000
+ 25339459.328 -11557920.562 7 -8830811.26646 25339469.3984 0.000
+ 27764798.767 6126818.191 5 4968455.66245 27764816.7844 0.000
+ 02 1 30 13 55 30.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26873751.560 -5587491.677 6 -4193238.65345 26873764.5834 0.000
+ 26160793.794 -4219989.513 6 -3136304.84746 26160804.7424 0.000
+ 24031631.282 -20167849.566 6 -15557236.43647 24031639.9324 0.000
+ 24335006.650 -18454997.467 8 -14196816.09447 24335015.0554 0.000
+ 28218272.795 -173716.885 4 -12493.49355 28218291.8554 0.000
+ 24168108.284 -15925409.154 8 -12279058.53447 24168116.9944 0.000
+ 27496478.343 -3064184.180 5 -2209652.02645 27496493.2414 0.000
+ 25354077.409 -11481102.228 7 -8770952.97046 25354087.7714 0.000
+ 27785602.434 6236142.558 5 5053643.14945 27785619.9824 0.000
+ 02 1 30 13 56 0.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26860163.894 -5658893.086 6 -4248875.92845 26860175.5574 0.000
+ 26176404.789 -4137953.565 6 -3072380.83946 26176415.6674 0.000
+ 24024169.541 -20207060.944 6 -15587790.72147 24024178.1924 0.000
+ 24334255.472 -18458945.516 8 -14199892.47847 24334263.7714 0.000
+ 28203016.523 -253886.040 4 -74962.28145 28203035.3964 0.000
+ 24159668.353 -15969760.074 8 -12313617.63347 24159676.7704 0.000
+ 27489625.177 -3100196.089 5 -2237713.04545 27489641.3304 0.000
+ 25368772.758 -11403877.245 7 -8710777.80146 25368782.3234 0.000
+ 27806431.466 6345596.010 5 5138931.19245 27806450.1984 0.000
+ 02 1 30 13 56 30.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26846602.575 -5730156.929 6 -4304405.99445 26846615.0594 0.000
+ 26192035.365 -4055816.089 6 -3008377.74546 26192047.3804 0.000
+ 24016814.395 -20245712.326 6 -15617908.64047 24016822.9644 0.000
+ 24333608.488 -18462345.627 8 -14202541.89647 24333616.8694 0.000
+ 28187762.145 -334045.761 4 -137423.78545 28187779.0834 0.000
+ 24151297.801 -16013747.385 8 -12347893.40347 24151306.2294 0.000
+ 27482842.504 -3135841.194 5 -2265488.27745 27482858.0014 0.000
+ 25383545.570 -11326247.546 7 -8650287.25746 25383555.3354 0.000
+ 27827283.699 6455177.687 5 5224319.14045 27827301.5754 0.000
+ 02 1 30 13 57 0.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26833067.802 -5801282.436 5 -4359828.27345 26833080.6614 0.000
+ 26207684.508 -3973577.422 6 -2944295.79746 26207695.8664 0.000
+ 24009566.329 -20283801.792 6 -15647588.70647 24009574.8514 0.000
+ 24333065.905 -18465197.112 8 -14204763.81847 24333074.1104 0.000
+ 28172510.860 -414192.844 4 -199875.42945 28172531.5264 0.000
+ 24142997.013 -16057368.756 8 -12381884.02447 24143005.5824 0.000
+ 27476129.457 -3171116.772 5 -2292975.54545 27476144.9184 0.000
+ 25398394.763 -11248215.148 7 -8589482.93746 25398404.6334 0.000
+ 27848161.761 6564886.984 5 5309806.51245 27848181.0794 0.000
+ 02 1 30 13 57 30.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26819559.864 -5872270.368 6 -4415143.36645 26819571.5284 0.000
+ 26223353.075 -3891239.477 6 -2880136.49346 26223364.0464 0.000
+ 24002424.826 -20321329.295 6 -15676830.88147 24002433.4194 0.000
+ 24332627.303 -18467501.241 8 -14206559.23447 24332635.7434 0.000
+ 28157261.063 -494325.532 4 -262315.90945 28157282.7604 0.000
+ 24134765.916 -16100623.754 8 -12415589.16547 24134774.3214 0.000
+ 27469486.413 -3206021.889 5 -2320174.11845 27469500.4324 0.000
+ 25413319.795 -11169783.712 7 -8528367.68046 25413329.2434 0.000
+ 27869062.671 6674721.406 5 5395391.39945 27869081.2514 0.000
+ 02 1 30 13 58 0.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26806077.093 -5943118.312 5 -4470349.34345 26806089.8584 0.000
+ 26239040.824 -3808801.081 6 -2815898.88946 26239052.7344 0.000
+ 23995391.011 -20358291.579 6 -15705632.62047 23995399.8374 0.000
+ 24332293.389 -18469256.031 8 -14207926.59347 24332301.7354 0.000
+ 28142015.598 -574438.853 5 -324741.26145 28142035.6674 0.000
+ 24126604.882 -16143508.600 8 -12449005.87047 24126613.3454 0.000
+ 27462915.680 -3240552.311 5 -2347080.75945 27462930.3684 0.000
+ 25428320.801 -11090953.742 7 -8466941.87546 25428330.6474 0.000
+ 27889987.125 6784681.925 5 5481074.57245 27890005.2364 0.000
+ 02 1 30 13 58 30.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26792621.151 -6013827.101 5 -4525446.92745 26792634.3974 0.000
+ 26254747.208 -3726264.049 6 -2751584.46046 26254758.9654 0.000
+ 23988464.926 -20394688.606 6 -15733993.89847 23988473.6834 0.000
+ 24332063.654 -18470462.608 8 -14208866.77147 24332071.9184 0.000
+ 28126773.973 -654531.137 5 -387150.24945 28126795.3074 0.000
+ 24118514.623 -16186022.896 8 -12482133.83547 24118523.4384 0.000
+ 27456416.015 -3274707.104 5 -2373694.70145 27456430.8914 0.000
+ 25443396.788 -11011729.063 7 -8405208.50646 25443406.7294 0.000
+ 27910936.641 6894766.218 5 5566854.16645 27910954.6464 0.000
+ 02 1 30 13 59 0.0110000 0 9G 3G 6G15G17G18G22G23G25G30
+ 26779192.656 -6084397.214 6 -4580436.45746 26779205.8904 0.000
+ 26270471.824 -3643629.572 6 -2687194.08646 26270483.7224 0.000
+ 23981646.450 -20430519.552 6 -15761914.07847 23981654.9714 0.000
+ 24331938.208 -18471121.562 8 -14209380.23847 24331946.7654 0.000
+ 28111536.630 -734600.220 4 -449541.15345 28111555.7374 0.000
+ 24110495.114 -16228165.371 8 -12514972.08047 24110503.7534 0.000
+ 27449988.753 -3308484.555 5 -2400014.61545 27450003.5234 0.000
+ 25458547.356 -10932112.722 7 -8343169.94546 25458557.2504 0.000
+ 27931908.065 7004972.443 5 5652728.79845 27931925.9294 0.000
diff --git a/trunk/examples/example1.cpp b/dev/examples/example1.cpp
similarity index 100%
rename from trunk/examples/example1.cpp
rename to dev/examples/example1.cpp
diff --git a/trunk/examples/example2.cpp b/dev/examples/example2.cpp
similarity index 100%
rename from trunk/examples/example2.cpp
rename to dev/examples/example2.cpp
diff --git a/dev/examples/example3.cpp b/dev/examples/example3.cpp
new file mode 100644
index 0000000..1a33bc5
--- /dev/null
+++ b/dev/examples/example3.cpp
@@ -0,0 +1,122 @@
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "icd_200_constants.hpp"
+#include <iostream>
+
+using namespace std;
+using namespace gpstk;
+
+// ISO C++ forbids declaration of `main' with no type
+int main(int argc, char *argv[])
+{
+ int myprn;
+
+ if (argc<2)
+ {
+ cout << "Required argument is a RINEX obs file." << endl;
+ exit(-1);
+ }
+
+ cout << "Name your PRN of interest (by number: 1 through 32): ";
+ cin >> myprn;
+
+ double gamma = (L1_FREQ / L2_FREQ)*(L1_FREQ / L2_FREQ);
+
+ try
+ {
+ cout << "Reading " << argv[1] << "." << endl;
+
+//Declare RINEX observation file streams and data objects
+//-------------------------------------------------------
+ RinexObsStream roffs(argv[1]);
+ // It is necessary to set the failbit in order to throw exceptions
+ roffs.exceptions(ios::failbit);
+ RinexObsHeader roh;
+ RinexObsData roe;
+ RinexObsData::RinexDatum dataobj;
+
+//Read the RINEX header (this could be skipped).
+//--------------------------------------------
+ roffs >> roh;
+
+//Print RINEX header to terminal screen
+//-------------------------------
+ roh.dump(cout);
+
+//Loop through epochs and process data for each.
+//----------------------------------------------
+ while (roffs >> roe)
+ {
+
+ cout << roe.time << " ";
+
+//Make a GPSTK SatID object for your PRN so you can search for it.
+//-----------------------------------------------------------------
+ SatID prn(myprn, SatID::systemGPS);
+
+//Check to see if your PRN is in view at this epoch (ie. search for the PRN).
+//-------------------------------------------------------------------------
+ RinexObsData::RinexSatMap::iterator pointer = roe.obs.find(prn);
+ if( pointer == roe.obs.end() ) cout << "PRN " << myprn << " not in view " << endl;
+ else
+ {
+
+//Get P1 pseudorange code.
+//Here are two equivalent ways to get the RinexDatum from the RinexObsData object
+//-------------------------------------------------------------------------------
+ dataobj = roe.obs[prn][RinexObsHeader::P1]; //The intuitive way
+
+ RinexObsData::RinexDatum dataobj2 = (*pointer).second[RinexObsHeader::P1]; //The more efficient STL way
+
+ // Another way to do the same that above
+ //RinexObsData::RinexDatum dataobj2 = pointer->second[RinexObsHeader::P1];
+
+ if( dataobj.data != dataobj2.data) cout << "STL has a bug! (Type crtl-C now or else orcs will crawl from you ears!)" << endl;
+
+ double P1 = dataobj.data;
+
+//Get P2 pseudorange and L1 phase measurement.
+//We will stick with the intuitive way.
+//-------------------------------------
+ dataobj = roe.obs[prn][RinexObsHeader::P2];
+ double P2 = dataobj.data;
+
+ dataobj = roe.obs[prn][RinexObsHeader::L1];
+ double L1 = dataobj.data;
+
+//Compute multipath
+//-----------------
+ double mu = P1 -L1*(C_GPS_M/L1_FREQ) -2*(P1 -P2)/(1-gamma);
+
+ // The following line makes sure that you get a proper output format
+ // The line above with "roh.dump" sets this, but just in case...
+ cout << fixed << setw(7) << setprecision(3);
+
+ cout << " PRN " << myprn << " biased multipath " << mu << endl;
+ }
+
+ }
+
+ cout << "Read " << roffs.recordNumber << " epochs. Cheers." << endl;
+ exit(0);
+ }
+ catch(FFStreamError& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch(Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. I don't feel so well..." << endl;
+ exit(1);
+ }
+
+ exit(0);
+ }
diff --git a/dev/examples/example4.cpp b/dev/examples/example4.cpp
new file mode 100644
index 0000000..313f64d
--- /dev/null
+++ b/dev/examples/example4.cpp
@@ -0,0 +1,276 @@
+// GPSTk example program #4
+
+// First, let's include Standard Template Library classes
+#include <string>
+#include <vector>
+
+// Classes for handling observations RINEX files (data)
+#include "RinexObsBase.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+
+// Classes for handling satellite navigation parameters RINEX files (ephemerides)
+#include "RinexNavBase.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+
+// Classes for handling RINEX files with meteorological parameters
+#include "RinexMetBase.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetStream.hpp"
+
+// Class for handling tropospheric models
+#include "TropModel.hpp"
+
+// Class for storing "broadcast-type" ephemerides
+#include "BCEphemerisStore.hpp"
+
+// Class for handling RAIM
+#include "PRSolution.hpp"
+
+// File defining GPS system constants
+#include "icd_200_constants.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char *argv[])
+{
+ // Declaration of objects for storing ephemerides and handling RAIM
+ BCEphemerisStore bcestore;
+ PRSolution raimSolver;
+
+ // Object for void-type tropospheric model (in case no meteorological RINEX
+ // is available)
+ ZeroTropModel noTropModel;
+
+ // Object for GG-type tropospheric model (Goad and Goodman, 1974)
+ GGTropModel ggTropModel; // Default constructor => default values for model
+ // Pointer to one of the two available tropospheric models. It points to
+ // the void model by default
+ TropModel *tropModelPtr=&noTropModel;
+
+
+ // This verifies the ammount of command-line parameters given and prints a help
+ // message, if necessary
+ if ((argc < 3) || (argc>4))
+ {
+ cerr << "Usage:" << endl;
+ cerr << " " << argv[0] << " <RINEX Obs file> <RINEX Nav file> [<RINEX Met file>]" << endl;
+ exit (-1);
+ }
+
+ // Let's compute an useful constant (also found in "icd_200_constants.hpp")
+ const double gamma = (L1_FREQ / L2_FREQ)*(L1_FREQ / L2_FREQ);
+
+ try
+ {
+ // Read nav file and store unique list of ephemeredes
+ RinexNavStream rnffs(argv[2]); // Open ephemerides data file
+ RinexNavData rne;
+ RinexNavHeader hdr;
+
+ // Let's read the header (may be skipped)
+ rnffs >> hdr;
+
+ // Storing the ephemeris in "bcstore"
+ while (rnffs >> rne) bcestore.addEphemeris(rne);
+ // Setting the criteria for looking up ephemeris
+ bcestore.SearchNear();
+
+ // If provided, open and store met file into a linked list.
+ list<RinexMetData> rml;
+ if (argc==4)
+ {
+ RinexMetStream rms(argv[3]); // Open meteorological data file
+ RinexMetHeader rmh;
+ // Let's read the header (may be skipped)
+ rms >> rmh;
+
+ RinexMetData rmd;
+ // If meteorological data is provided, let's change pointer to
+ // a GG-model object
+ tropModelPtr=&ggTropModel;
+ // All data is read into "rml", a meteorological data linked list
+ while (rms >> rmd) rml.push_back(rmd);
+ }
+
+ // Open and read the observation file one epoch at a time.
+ // For each epoch, compute and print a position solution
+ RinexObsStream roffs(argv[1]); // Open observations data file
+ // In order to throw exceptions, it is necessary to set the failbit
+ roffs.exceptions(ios::failbit);
+
+ RinexObsHeader roh;
+ RinexObsData rod;
+
+ // Let's read the header (may be skipped)
+ roffs >> roh;
+
+ // Defining iterator "mi" for meteorological data linked list "rml", and
+ // set it to the beginning
+ list<RinexMetData>::iterator mi=rml.begin();
+
+
+ // Let's process all lines of observation data, one by one
+ while (roffs >> rod)
+ {
+
+ // Find a weather point. Only if a meteorological RINEX file was
+ // provided, the meteorological data linked list "rml" is neither empty
+ // or at its end, and the time of meteorological records are below
+ // observation data epoch.
+ while ( (argc==4) &&
+ (!rml.empty()) &&
+ (mi!=rml.end()) &&
+ ((*mi).time < rod.time) )
+ {
+ mi++; // Read next item in list
+
+ // Feed GG tropospheric model object with meteorological parameters
+ // Take into account, however, that setWeather is not accumulative,
+ // i.e., only the last fed set of data will be used for computation
+ ggTropModel.setWeather((*mi).data[RinexMetHeader::TD],
+ (*mi).data[RinexMetHeader::PR],
+ (*mi).data[RinexMetHeader::HR]);
+ }
+
+
+ // Apply editing criteria
+ if (rod.epochFlag == 0 || rod.epochFlag == 1) // Begin usable data
+ {
+ vector<SatID> prnVec;
+ vector<double> rangeVec;
+
+ // Let's define the "it" iterator to visit the observations PRN map
+ // RinexSatMap is a map from SatID to RinexObsTypeMap:
+ // std::map<SatID, RinexObsTypeMap>
+ RinexObsData::RinexSatMap::const_iterator it;
+
+ // This part gets the PRN numbers and ionosphere-corrected
+ // pseudoranges for the current epoch. They are correspondly fed
+ // into "prnVec" and "rangeVec"
+ // "obs" is a public attribute of RinexObsData to get the map
+ // of observations
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ // RinexObsTypeMap is a map from RinexObsType to RinexDatum:
+ // std::map<RinexObsHeader::RinexObsType, RinexDatum>
+ RinexObsData::RinexObsTypeMap otmap;
+
+ // Let's define two iterators to visit the observations type map
+ RinexObsData::RinexObsTypeMap::const_iterator itP1, itP2;
+
+ /////////////////////////////////////////////////
+ //
+ // What did we do in the former code lines?:
+ //
+ // For each observation data epoch (rod), if valid
+ // (rod.epochFlag = 0 or 1):
+ // - use "it" iterator to visit the RinexObsTypeMap of each
+ // satellite,
+ // - and then use "itP1" and "itP2" iterators to visit the
+ // observation data (RinexDatum) according to their type
+ // (RinexObsType)
+ //
+ /////////////////////////////////////////////////
+
+
+ // The "second" field of a RinexPrnMap (it) is a
+ // RinexObsTypeMap (otmap)
+ otmap = (*it).second;
+
+ // Let's find a P1 observation inside the RinexObsTypeMap that
+ // is "otmap"
+ itP1 = otmap.find(RinexObsHeader::P1);
+
+ // If "itP1" is not the last type of observation, there may be
+ // a P2 observation and the double-frequency ionospheric
+ // corrections may be applied
+ if (itP1!=otmap.end())
+ {
+ double ionocorr = 0;
+
+ // Now, let's find a P2 observation inside the
+ // RinexObsTypeMap that is "otmap"
+ itP2 = otmap.find(RinexObsHeader::P2);
+ // If we indeed found a P2 observation, let's apply the
+ // ionospheric corrections
+ if (itP2!=otmap.end())
+ // The "second" part of a RinexObsTypeMap is a RinexDatum,
+ // whose public attribute "data" indeed holds the actual
+ // data point
+ ionocorr = 1./(1.-gamma)*((*itP1).second.data-(*itP2).second.data);
+ // Now, we include the current PRN number in the first part
+ // of "it" (a RinexPrnMap) into the vector holding PRN numbers.
+ // All satellites in view at this epoch that also have P1 and
+ // P2 observations will be included
+ prnVec.push_back((*it).first);
+ // The same is done for the vector of doubles holding the
+ // corrected ranges
+ rangeVec.push_back((*itP1).second.data-ionocorr);
+
+ // WARNING: Please note that so far no further correction is
+ // done on data: Relativistic effects, tropospheric correction,
+ // instrumental delays, etc.
+ }
+
+ }
+
+ // The default constructor for PRSolution objects (like "raimSolver")
+ // is to set a RMSLimit of 6.5. We change that here. With this value
+ // of 3e6 the solution will have a lot more dispersion
+ raimSolver.RMSLimit = 3e6;
+
+ // In order to compute positions we need the current time, the
+ // vector of visible satellites, the vector of corresponding ranges,
+ // the object containing satellite ephemerides and a pointer to the
+ // tropospheric model to be applied
+ raimSolver.RAIMCompute(rod.time,prnVec,rangeVec, bcestore, tropModelPtr);
+
+ // Note: Given that the default constructor sets public attribute
+ // "Algebraic" to FALSE, a linearized least squares algorithm will
+ // be used to get the solutions.
+ // Also, the default constructor sets ResidualCriterion to true, so
+ // the rejection criterion is based on RMS residual of fit, instead
+ // of RMS distance from an a priori position.
+
+ // If we got a valid solution, let's print it
+
+ if (raimSolver.isValid())
+ {
+ // Vector "Solution" holds the coordinates, expressed in meters
+ // in an Earth Centered, Earth Fixed (ECEF) reference frame. The
+ // order is x, y, z (as all ECEF objects)
+ cout << setprecision(12) << raimSolver.Solution[0] << " " ;
+ cout << raimSolver.Solution[1] << " " ;
+ cout << raimSolver.Solution[2];
+ cout << endl ;
+ }
+
+
+ } // End usable data
+
+ } // End loop through each epoch
+ }
+ catch(Exception& e)
+ {
+ cerr << e << endl;
+ }
+ catch (...)
+ {
+ cerr << "Caught an unexpected exception." << endl;
+ }
+
+
+ exit(0);
+
+}
+
+
+
+
+
diff --git a/dev/examples/example5.cpp b/dev/examples/example5.cpp
new file mode 100644
index 0000000..c7d289c
--- /dev/null
+++ b/dev/examples/example5.cpp
@@ -0,0 +1,295 @@
+// Example program Nro 5 for GPSTk
+// This program shows how to use some high-level GPSTk classes
+// Dagoberto Salazar - gAGE. 2006
+
+// Basic input/output C++ class
+#include <iostream>
+
+// Classes for handling observations RINEX files (data)
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+
+// Class to extract C1 data from RinexObsData objects
+#include "ExtractC1.hpp"
+
+// Classes for handling satellite navigation parameters RINEX files (Broadcast ephemerides)
+#include "RinexNavBase.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+
+// Class to store satellite broadcast navigation data
+#include "BCEphemerisStore.hpp"
+
+// Class to model GPS data for a mobile receiver
+#include "ModeledPR.hpp"
+
+// Class to model the tropospheric delays
+#include "TropModel.hpp"
+
+// Classes to model ans store ionospheric delays
+#include "IonoModel.hpp"
+#include "IonoModelStore.hpp"
+
+// Class to solve the equations system using a Weighted Least Mean Square method
+#include "SolverWMS.hpp"
+
+// Class to compute the weights to be used for each satellite
+#include "MOPSWeight.hpp"
+
+// Basic framework for programs in the GPSTk. process() method MUST be implemented
+#include "BasicFramework.hpp"
+
+#include "geometry.hpp" // DEG_TO_RAD
+
+
+
+using namespace std;
+using namespace gpstk;
+
+
+// A new class is declared that will handle program behaviour
+// This class inherits from BasicFramework
+class example5 : public BasicFramework
+{
+public:
+ // Constructor declaration
+ example5(char* arg0);
+
+protected:
+ // Method that will take care of processing
+ virtual void process();
+
+ // Method that hold code to be run BEFORE processing
+ virtual void spinUp();
+
+private:
+ // These field represent options at command line interface (CLI)
+ CommandOptionWithArg dataFile;
+ CommandOptionWithArg navFile;
+
+ // If you want to share objects and variables among methods, you'd better declare them here
+ RinexObsStream rObsFile; // Object to read Rinex observation data files
+ RinexObsData rData; // Object to store Rinex observation data
+ RinexNavStream rNavFile; // Object to read Rinex navigation data files
+ RinexNavData rNavData; // Object to store Rinex navigation data
+ RinexNavHeader rNavHeader; // Object to read the header of Rinex navigation data files
+ IonoModelStore ionoStore; // Object to store ionospheric models
+ BCEphemerisStore bceStore; // Object to store ephemeris
+ ModeledPR modelPR; // Declare a ModeledReferencePR object
+ MOPSTropModel mopsTM; // Declare a MOPSTropModel object
+ ExtractC1 obsC1; // Declare an ExtractData object
+ bool useFormerPos; // Flag indicating if we have an a priori position
+ Position formerPosition; // Object to store the former position
+ IonoModel ioModel; // Declare a Ionospheric Model object
+ SolverWMS solver; // Declare an object to apply WMS method
+ MOPSWeight mopsWeights; // Object to compute satellites' weights
+
+};
+
+
+// Let's implement constructor details
+example5::example5(char* arg0)
+ : BasicFramework(arg0, "\nProgram to print the position solution in ECEF and longitude,"
+ " latitude, height, based in C1 and given a RINEX observations file"
+ " and a RINEX broadcast navigation file.\n\n"
+ "The output is: \n"
+ " Time(sec) X(m) Y(m) Z(m) Lon(deg) "
+ " Lat(deg) Height(m)\n"),
+ // Option initialization. "true" means a mandatory option
+ dataFile(CommandOption::stdType, 'i', "datainput",
+ " [-i|--datainput] Name of RINEX observations file.", true),
+ navFile(CommandOption::stdType, 'n', "navinput",
+ " [-n|--navinput] Name of RINEX broadcast navigation file.", true)
+{
+ // These options may appear just once at CLI
+ dataFile.setMaxCount(1);
+ navFile.setMaxCount(1);
+} // End of constructor details
+
+
+// Method that will be executed AFTER initialization but BEFORE processing
+void example5::spinUp()
+{
+
+ // From now on, some parts may look similar to example3.cpp and example4.cpp
+ // Activate failbit to enable exceptions
+ rObsFile.exceptions(ios::failbit);
+ // First, data RINEX reading object
+ try
+ {
+ rObsFile.open(dataFile.getValue()[0].c_str(), std::ios::in);
+ }
+ catch(...)
+ {
+ cerr << "Problem opening file " << dataFile.getValue()[0].c_str() << endl;
+ cerr << "Maybe it doesn't exist or you don't have proper read permissions." << endl;
+ exit (-1);
+ }
+
+
+ // Activate failbit to enable exceptions
+ rNavFile.exceptions(ios::failbit);
+ // Read nav file and store unique list of ephemerides
+ try
+ {
+ rNavFile.open(navFile.getValue()[0].c_str(), std::ios::in);
+ }
+ catch(...)
+ {
+ cerr << "Problem opening file " << navFile.getValue()[0].c_str() << endl;
+ cerr << "Maybe it doesn't exist or you don't have proper read permissions." << endl;
+ exit (-1);
+ }
+
+
+ // We will need to read ionospheric parameters (Klobuchar model) from header
+ rNavFile >> rNavHeader;
+
+ // Let's feed the ionospheric model (Klobuchar type) from data in the Navigation file header
+ ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
+ // WARNING-WARNING-WARNING: In this case, the same model will be used for the full data span
+ ionoStore.addIonoModel(DayTime::BEGINNING_OF_TIME, ioModel);
+
+ // Storing the ephemeris in "bceStore"
+ while (rNavFile >> rNavData) bceStore.addEphemeris(rNavData);
+ // Setting the criteria for looking up ephemeris
+ bceStore.SearchPast(); // This is the default
+
+ // This is set to true if the former computed positon will be used as a priori position
+ useFormerPos = false; // At first, we don't have an a priori position
+
+ // Prepare for printing later on
+ cout << fixed << setprecision(8);
+
+}// End of example5::spinUp()
+
+
+// Method that will really process information
+void example5::process()
+{
+
+ // Let's read the observations RINEX, epoch by epoch
+ while (rObsFile >> rData)
+ {
+ if ( (rData.epochFlag == 0 || rData.epochFlag == 1) && (rData.numSvs > 3) ) // Begin usable data with enough number of satellites
+ {
+ int validSats = 0; // Number of satellites with valid data in this epoch
+ int prepareResult;
+ double rxAltitude; // Receiver altitude for tropospheric model
+ double rxLatitude; // Receiver latitude for tropospheric model
+
+ // We need extract C1 data from this epoch. Skip epoch if not enough data (4 SV at least)
+ if ( obsC1.getData(rData) < 4) {
+ useFormerPos = false; // The former position will not be valid next time
+ continue;
+ }
+
+
+ if (useFormerPos) { // If possible, use former position as a priori
+ prepareResult = modelPR.Prepare(formerPosition);
+ // We need to seed this kind of tropospheric model with receiver altitude
+ rxAltitude = formerPosition.getAltitude();
+ rxLatitude = formerPosition.getGeodeticLatitude();
+ }
+ else { // Use Bancroft method is no a priori position is available
+ cerr << "Bancroft method was used at epoch " << rData.time.DOYsecond() << endl;
+ prepareResult = modelPR.Prepare(rData.time, obsC1.availableSV, obsC1.obsData, bceStore);
+ // We need to seed this kind of tropospheric model with receiver altitude
+ rxAltitude = modelPR.rxPos.getAltitude();
+ rxLatitude = modelPR.rxPos.getGeodeticLatitude();
+ }
+
+ if (prepareResult) { // If there were problems with Prepare(), skip this epoch
+ useFormerPos = false; // The former position will not be valid next time
+ continue;
+ }
+ // If there were no problems, let's feed the tropospheric model
+ mopsTM.setReceiverHeight(rxAltitude);
+ mopsTM.setReceiverLatitude(rxLatitude);
+ mopsTM.setDayOfYear(rData.time.DOY());
+
+
+ // Now, let's compute the GPS model for our observable (C1)
+ validSats = modelPR.Compute(rData.time, obsC1.availableSV, obsC1.obsData, bceStore, &mopsTM, &ionoStore);
+
+
+ // Only get into further computations if there are enough satellites
+ if (validSats >= 4) {
+
+ // Now, let's solve the navigation equations using the WMS method
+ try {
+ // First, compute the satellites' weights
+ int goodSv = mopsWeights.getWeights(rData.time, modelPR.availableSV, bceStore, modelPR.ionoCorrections, modelPR.elevationSV, modelPR.azimuthSV, modelPR.rxPos);
+
+ // Some minimum checking is in order
+ if ( goodSv != (int)modelPR.prefitResiduals.size() ) continue;
+
+ // Then, solve the system
+ solver.Compute(modelPR.prefitResiduals, modelPR.geoMatrix, mopsWeights.weightsVector);
+ }
+ catch(InvalidSolver& e) {
+ cerr << "Couldn't solve equations system at epoch " << rData.time.DOYsecond() << endl;
+ cerr << e << endl;
+ useFormerPos = false; // The former position will not be valid next time
+ continue;
+ }
+
+ // With "solver", we got the difference vector between a priori position and
+ // real position. Then, let's convert the solution to a Position object
+ Position solPos( (modelPR.rxPos.X() + solver.solution[0]), (modelPR.rxPos.Y() + solver.solution[1]), (modelPR.rxPos.Z() + solver.solution[2]) );
+
+ // Print results
+ cout << rData.time.DOYsecond() << " "; // Output field #1
+ cout << solPos.X() << " "; // Output field #2
+ cout << solPos.Y() << " "; // Output field #3
+ cout << solPos.Z() << " "; // Output field #4
+ cout << solPos.longitude() << " "; // Output field #5
+ cout << solPos.geodeticLatitude() << " "; // Output field #6
+ cout << solPos.height() << " "; // Output field #7
+ cout << endl;
+
+ formerPosition = solPos;
+ useFormerPos = true; // Next time, former position will be used as a priori
+
+ } // End of if (validSats...
+ else {
+ useFormerPos = false; // The former position will not be valid next time
+ }
+ } // End of "if" for usable data
+ else {
+ useFormerPos = false; // The former position will not be valid next time
+ }
+ } // End of while
+
+ return;
+
+}// End of example5::process()
+
+
+// Main function
+int main(int argc, char* argv[])
+{
+ try
+ {
+ example5 program(argv[0]);
+ if (!program.initialize(argc, argv))
+ return 0;
+ if (!program.run())
+ return 1;
+
+ return 0;
+ }
+ catch(Exception& e)
+ {
+ cout << "Problem: " << e << endl;
+ return 1;
+ }
+ catch(...)
+ {
+ cout << "Unknown error." << endl;
+ return 1;
+ }
+ return 0;
+}
diff --git a/dev/examples/example6.cpp b/dev/examples/example6.cpp
new file mode 100644
index 0000000..8a4035a
--- /dev/null
+++ b/dev/examples/example6.cpp
@@ -0,0 +1,124 @@
+// Example program Nro 6 for GPSTk
+// This program shows a minimalist way to process GPS data
+// using GNSS Data Structures (DataStructures.hpp).
+// Dagoberto Salazar - gAGE. 2007
+
+#include <iostream>
+#include <iomanip>
+
+// Class for handling satellite observation parameters RINEX files
+#include "RinexObsStream.hpp"
+
+// Classes for handling satellite navigation parameters RINEX files (Broadcast ephemerides)
+#include "RinexNavStream.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+
+// Class in charge of the GPS signal modelling
+#include "ModeledPR.hpp"
+
+// Class to store satellite broadcast navigation data
+#include "BCEphemerisStore.hpp"
+
+// Class to model the tropospheric delays
+#include "TropModel.hpp"
+
+// Classes to model ans store ionospheric delays
+#include "IonoModel.hpp"
+#include "IonoModelStore.hpp"
+
+// Class to solve the equation system using Least Mean Squares
+#include "SolverLMS.hpp"
+
+// Class defining the GNSS data structures
+#include "DataStructures.hpp"
+
+// Class to filter out observables grossly out of limits
+#include "SimpleFilter.hpp"
+
+
+using namespace std;
+using namespace gpstk;
+
+int main(void)
+{
+
+ cout << fixed << setprecision(8); // Set a proper output format
+
+ RinexNavData rNavData; // Object to store Rinex navigation data
+ BCEphemerisStore bceStore; // Object to store satellites ephemeris
+ RinexNavHeader rNavHeader; // Object to read the header of Rinex navigation data files
+ IonoModelStore ionoStore; // Object to store ionospheric models
+ IonoModel ioModel; // Declare a Ionospheric Model object
+
+ // Create the input observation file stream
+ RinexObsStream rin("bahr1620.04o");
+
+ // Create the input navigation file stream
+ RinexNavStream rnavin("bahr1620.04n");
+
+ // We will need to read ionospheric parameters (Klobuchar model) from header
+ rnavin >> rNavHeader;
+
+ // Let's feed the ionospheric model (Klobuchar type) from data in the Navigation file header
+ ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
+ // Beware: In this case, the same model will be used for the full data span
+ ionoStore.addIonoModel(DayTime::BEGINNING_OF_TIME, ioModel);
+
+ // Storing the ephemeris in "bceStore"
+ while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
+ bceStore.SearchPast(); // This is the default
+
+ Position nominalPos(3633909.1016, 4425275.5033, 2799861.2736); // BAHR station nominal position
+
+ // Declare a MOPSTropModel object, setting the defaults
+ MOPSTropModel mopsTM(nominalPos.getAltitude(), nominalPos.getGeodeticLatitude(), 162);
+
+ // Declare the modeler object, setting all the parameters in one pass
+ ModeledPR modelRef(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1);
+
+ // Declare SolverLMS object
+ SolverLMS solver;
+
+ // Declare a simple filter object. By default, it filters C1
+ SimpleFilter myFilter;
+
+ // This is the GNSS data structure that will hold all the GNSS-related information
+ gnssRinex gRin;
+
+
+ // Loop over all data epochs
+ while(rin >> gRin) {
+ try
+ {
+
+ // This is the line that will process all the GPS data
+ gRin.keepOnlyTypeID(TypeID::C1) >> myFilter >> modelRef >> solver;
+ // First: Wipe off all the data that we will not use (may be skipped)
+ // Second: Filter out observables way out of bounds (may be skipped)
+ // Third: The resulting data structure will feed the modeler object
+ // Fourth: The resulting structure from third step will feed the solver object
+
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin.header.epoch << endl;
+ }
+
+ // Fifth: Get your results out of the solver object and print them. That is all
+ Position solPos( (modelRef.rxPos.X() + solver.solution[0]), (modelRef.rxPos.Y() + solver.solution[1]), (modelRef.rxPos.Z() + solver.solution[2]) );
+
+ cout << gRin.header.epoch.DOYsecond() << " "; // Output field #1
+ cout << solPos.X() << " "; // Output field #2
+ cout << solPos.Y() << " "; // Output field #3
+ cout << solPos.Z() << " "; // Output field #4
+ cout << solPos.longitude() << " "; // Output field #5
+ cout << solPos.geodeticLatitude() << " "; // Output field #6
+ cout << solPos.height() << " "; // Output field #7
+
+ cout << endl;
+
+ }
+
+ exit(0);
+}
diff --git a/dev/examples/example7.cpp b/dev/examples/example7.cpp
new file mode 100644
index 0000000..141c21e
--- /dev/null
+++ b/dev/examples/example7.cpp
@@ -0,0 +1,741 @@
+// Example program Nro 7 for GPSTk
+// This program shows several different ways to process GPS data
+// using GNSS Data Structures (DataStructures.hpp).
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+
+#include <iostream>
+#include <iomanip>
+
+// Class for handling satellite observation parameters RINEX files
+#include "RinexObsStream.hpp"
+
+// Classes for handling satellite navigation parameters RINEX files (Broadcast ephemerides)
+#include "RinexNavStream.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+
+// Class in charge of the GPS signal modelling
+#include "ModeledPR.hpp"
+
+// Class to store satellite broadcast navigation data
+#include "BCEphemerisStore.hpp"
+
+// Class to model the tropospheric delays
+#include "TropModel.hpp"
+
+// Classes to model ans store ionospheric delays
+#include "IonoModel.hpp"
+#include "IonoModelStore.hpp"
+
+// Class to solve the equation system using Least Mean Squares
+#include "SolverLMS.hpp"
+
+// Class to solve the equation system using Weighted-Least Mean Squares
+#include "SolverWMS.hpp"
+
+// Class defining the GNSS data structures
+#include "DataStructures.hpp"
+
+// Class to filter out observables grossly out of limits
+#include "SimpleFilter.hpp"
+
+// Class for easily changing reference base from ECEF to NEU
+#include "XYZ2NEU.hpp"
+
+// Class to detect cycle slips using just one frequency
+#include "OneFreqCSDetector.hpp"
+
+// Class to detect cycle slips using LI combination
+#include "LICSDetector.hpp"
+
+// Class to detect cycle slips using the Melbourne-Wubbena combination
+#include "MWCSDetector.hpp"
+
+// Class to compute weights according to Appendix J of MOPS C (RTCA/DO-229C)
+#include "ComputeMOPSWeights.hpp"
+
+// Class to smooth code observables (by default, C1)
+#include "CodeSmoother.hpp"
+
+// Class to smooth the PC combination
+#include "PCSmoother.hpp"
+
+// Classes to compute several combinations
+#include "ComputePC.hpp"
+#include "ComputeLC.hpp"
+#include "ComputeLI.hpp"
+#include "ComputeMelbourneWubbena.hpp"
+
+// Classes to compute single differences between receiver stations
+#include "DeltaOp.hpp"
+
+#include "geometry.hpp" // DEG_TO_RAD
+
+
+using namespace std;
+using namespace gpstk;
+
+int main(void)
+{
+
+ //////////// COMMON OBJECTS ////////////
+
+ cout << fixed << setprecision(3); // Set a proper output format
+
+ RinexNavData rNavData; // Object to store Rinex navigation data
+ BCEphemerisStore bceStore; // Object to store satellites ephemeris
+ RinexNavHeader rNavHeader; // Object to read the header of Rinex navigation data files
+ IonoModelStore ionoStore; // Object to store ionospheric models
+ IonoModel ioModel; // Declare a Ionospheric Model object
+
+ // Create the input observation file stream
+ // This is a fixed station, but here it will play as "rover"
+ RinexObsStream rin("ebre030a.02o");
+ // Please note that data was collected in year 2002, when the Sun was very active
+
+ // Create the input navigation file stream
+ RinexNavStream rnavin("brdc0300.02n");
+
+ // We will need to read ionospheric parameters (Klobuchar model) from header
+ rnavin >> rNavHeader;
+
+ // Let's feed the ionospheric model (Klobuchar type) from data in the Navigation file header
+ ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
+ // Beware: In this case, the same model will be used for the full data span
+ ionoStore.addIonoModel(DayTime::BEGINNING_OF_TIME, ioModel);
+
+ // Storing the ephemeris in "bceStore"
+ while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
+ bceStore.SearchPast(); // This is the default
+
+ // EBRE station nominal position
+ Position nominalPos(4833520.3800, 41536.8300, 4147461.2800);
+
+ // Declare a MOPSTropModel object, setting the defaults
+ MOPSTropModel mopsTM(nominalPos.getAltitude(), nominalPos.getGeodeticLatitude(), 30);
+
+ // Declare the modeler object, setting all the parameters in one pass
+ // Given that in this example we are using a fixed GPS station with known
+ // coordinates, you could have used the "ModeledReferencePR" class, which is
+ // a little bit simpler.
+ // However, for a rover is more appropriate to use a "ModeledPR" object because
+ // it allows to update the apriori position more easily (and it may automatically
+ // compute one, if needed, using Bancroft's method)
+ ModeledPR model(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1);
+
+ // On the other hand, the usual way to use "ModeledPR" is setting just the models
+ // in the constructor, and calling method "Prepare()" later, like in the following
+ // lines:
+ // ModeledPR model(ionoStore, mopsTM, bceStore, TypeID::C1);
+ // model.Prepare(nominalPos); // Set the reference position
+
+ // Declare a simple filter object. By default, it filters C1 with default limits
+ SimpleFilter myFilter;
+
+ // This is the GNSS data structure that will hold all the GNSS-related information
+ gnssRinex gOriginal;
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #1 OBJECTS ////////////
+
+ // Declare SolverLMS object
+ SolverLMS solver;
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #2 OBJECTS ////////////
+
+ // Declare a base-changing object: From ECEF to North-East-Up (NEU)
+ XYZ2NEU baseChange(nominalPos);
+
+ // For some examples we need to reconfigure the solver to use a NEU system
+ TypeIDSet typeSet;
+ typeSet.insert(TypeID::dLat);
+ typeSet.insert(TypeID::dLon);
+ typeSet.insert(TypeID::dH);
+ typeSet.insert(TypeID::cdt);
+
+ // This is the proper equation structure to use with a NEU system
+ gnssEquationDefinition newEq(TypeID::prefitC, typeSet);
+
+ // Declare another SolverLMS object, but configure it to use a
+ // topocentric reference system (North-East-Up: NEU)
+ SolverLMS solverNEU;
+ solverNEU.setDefaultEqDefinition(newEq); // NEU reconfiguration
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #3 OBJECTS ////////////
+
+ // This object will compute the appropriate MOPS weights
+ ComputeMOPSWeights mopsW(nominalPos, bceStore);
+
+ // Declare a solver object using Weighted-Least-Mean-Squares and
+ // a topocentric reference system (NEU)
+ SolverWMS solverWMS;
+ solverWMS.setDefaultEqDefinition(newEq); // NEU reconfiguration
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #4 OBJECTS ////////////
+
+ // Let's declare a cycle slip detector using just one frequency
+ OneFreqCSDetector markCSC1;
+
+ // Declare an object to smooth code (C1 by default)
+ CodeSmoother smoothC1;
+ smoothC1.setMaxWindowSize(8); // Configure smoother for 30 s sampling data
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #5 OBJECTS ////////////
+
+ // Let's declare a cycle slip detector using just one frequency
+ OneFreqCSDetector markCSC1case5;
+
+ // Declare an object to smooth code (C1 by default)
+ CodeSmoother smoothC1case5;
+ smoothC1case5.setMaxWindowSize(8); // Configure for 30 s sampling data
+
+ // The core of this case is to add a new equation to the equation system
+ // Such equation states that there are NO changes in height for the rover.
+ // dH = 0
+
+ // Add a "fake" satellite to identify the new equation: Sat #1 of system "mixed"
+ SatID satEq(1,SatID::systemMixed);
+
+ // Declare and fill a "typeValueMap" object that will hold the equation data
+ typeValueMap equTVMap;
+ equTVMap[TypeID::prefitC] = 0.0; // Code prefit residual is zero
+ equTVMap[TypeID::dLat] = 0.0; // Geometry matrix dLat coefficient is zero
+ equTVMap[TypeID::dLon] = 0.0; // Geometry matrix dLon coefficient is zero
+ equTVMap[TypeID::dH] = 1.0; // Geometry matrix dH coefficient is 1.0 !!!
+ equTVMap[TypeID::cdt] = 0.0; // Geometry matrix cdt coefficient is zero
+
+ // Assign a relatively high weight to this information (typical MOPS weights
+ // range from 0.01 to 0.04)
+ // This means that this equation is very important for us, but it is
+ // NOT ABSOLUTELY TRUE. Some variation is allowed
+ equTVMap[TypeID::weight] = 0.2; // About 10 times bigger than typical MOPS weights
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #6 OBJECTS ////////////
+
+ // Object to compute the PC (ionosphere-free) combination.
+ ComputePC getPC;
+ // Use C1 instead of P1. P1 observables are declared in available RINEX files, but
+ // often they are indeed missing (like in this case). When that happens, this step
+ // is mandatory
+ getPC.useC1();
+
+ // Declare a simple filter object to screen PC
+ SimpleFilter pcFilter;
+ pcFilter.setFilteredType(TypeID::PC);
+
+ // Declare the modeler object for PC, setting all the parameters in one pass
+ ModeledPR modelPC(nominalPos, mopsTM, bceStore, TypeID::PC, false);
+ // Take notice that PC combination doesn't use ionosphere modelling, nor
+ // TGD computation
+ // WARNING: When using C1 instead of P1 to compute PC combination, be aware
+ // that instrumental errors will NOT cancel, introducing a bias that must be
+ // taken into account by other means. This will not work out in this example.
+
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #7 OBJECTS ////////////
+
+ // Objects to compute several common combinations.
+ ComputeLC getLC;
+ ComputeLI getLI;
+ ComputeMelbourneWubbena getMW;
+ getMW.useC1(); // Use C1 instead of P1
+
+ // Objects to mark cycle slips
+ LICSDetector markCSLI; // Checks LI cycle slips
+ MWCSDetector markCSMW; // Checks Merbourne-Wubbena cycle slips
+
+ // Object to smooth the PC combination. Defaults are usually fine
+ PCSmoother smoothPC;
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #8 OBJECTS ////////////
+
+ // Objects to mark cycle slips
+ LICSDetector markCSLIcase8; // Checks LI cycle slips
+ MWCSDetector markCSMWcase8; // Checks Merbourne-Wubbena cycle slips
+
+ // Object to smooth the PC combination. Defaults are usually fine
+ PCSmoother smoothPCcase8;
+
+ ////////////////////////////////////////
+
+
+
+ //////////// CASE #9 OBJECTS ////////////
+
+ // This is the GNSS data structure that will hold the reference station data
+ gnssRinex gRef;
+
+ // Create the input observation file stream for REFERENCE STATION
+ RinexObsStream rinRef("bell030a.02o");
+
+ // BELL reference station nominal position
+ Position nominalPosRef(4775849.6200, 116814.1000, 4213018.7100);
+
+ // Declare a MOPSTropModel object for the reference station, setting the defaults
+ MOPSTropModel mopsTMRef(nominalPosRef.getAltitude(), nominalPosRef.getGeodeticLatitude(), 30);
+
+ // Declare the appropriate modeler object for a reference station
+ ModeledReferencePR modelRef(nominalPosRef, ionoStore, mopsTMRef, bceStore, TypeID::C1);
+
+ // Create an object to compute the single differences of prefit residuals
+ DeltaOp delta; // By default, it will work on code prefit residuals
+
+ // Flag for synchronization issues
+ bool firstTime(true);
+
+ // Allowed desynchronization between rover and reference data streams, in seconds
+ double timeTolerance(15.0);
+
+ ////////////////////////////////////////
+
+
+
+
+ // Loop over all data epochs
+ while(rin >> gOriginal) {
+
+
+
+ // Let's output the time stamp (in seconds of day)
+ cout << gOriginal.header.epoch.DOYsecond() << " "; // Output field #1
+
+
+
+//////////////////////////// CASE #1 ////////////////////////////
+
+ // This case is a common C1 + Least Mean Squares solver (LMS) processing
+
+ // Let's make a working copy
+ gnssRinex gRin1(gOriginal);
+
+ try
+ {
+
+ // This is the line that will process all the GPS data
+ gRin1 >> myFilter >> model >> solver;
+ // First, a basic filter to screen out very bad observables
+ // Second, apply a model to the observables (ionosphere, troposphere, relativity, etc.)
+ // Third, solve the equations using a simple Least-Mean-Squares solver
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin1.header.epoch << endl;
+ }
+
+
+ // Get your results out of the solver object. In ECEF system by default
+ Position solPos( (model.rxPos.X() + solver.solution[0]), (model.rxPos.Y() + solver.solution[1]), (model.rxPos.Z() + solver.solution[2]) );
+
+ // Let's change results to a North-East-Up (NEU) reference frame
+ // Compute the difference regarding the nominal position
+ Position diffPos;
+ diffPos = solPos - nominalPos;
+ double azimuth = nominalPos.azimuthGeodetic(solPos);
+ double elev = nominalPos.elevationGeodetic(solPos);
+ double magnitude = RSS(diffPos.X(), diffPos.Y(), diffPos.Z());
+
+ // Print results of case #1 in a topocentrical, North-East-Up reference frame
+ // Latitude change, output field #2
+ cout << magnitude*cos(azimuth*DEG_TO_RAD)*cos(elev*DEG_TO_RAD) << " ";
+ // Longitude change, output field #3
+ cout << magnitude*sin(azimuth*DEG_TO_RAD)*cos(elev*DEG_TO_RAD) << " ";
+ // Altitude change, output field #4
+ cout << magnitude*sin(elev*DEG_TO_RAD) << " ";
+
+////////////////////////// END OF CASE #1 //////////////////////////
+
+
+
+//////////////////////////// CASE #2 ////////////////////////////
+
+ // This is exactly the same as CASE #1, but using a nice class
+ // to change reference frame: ECEF -> NEU
+
+ // Let's make a working copy
+ gnssRinex gRin2(gOriginal);
+
+ try
+ {
+
+ gRin2 >> myFilter >> model >> baseChange >> solverNEU;
+
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin2.header.epoch << endl;
+ }
+
+ cout << solverNEU.solution[0] << " "; // dLat - Output field #5
+ cout << solverNEU.solution[1] << " "; // dLon - Output field #6
+ cout << solverNEU.solution[2] << " "; // dH - Output field #7
+
+
+ // Quite easier with respect to CASE #1, isn't it? ;-)
+
+ // - "baseChange" object changes reference frame from ECEF to NEU
+ // - "solverNEU" is a simple Least-Mean-Squares solver, but reconfigured
+ // to solve the dLat, dLon, dH, cdt (NEU) system instead of the
+ // dx, dy, dz, cdt (ECEF) system
+ // - The other steps are exactly the same as case #1, and results MUST match
+
+ // By the way, if you want to inspect what is inside the body of a
+ // given GNSS data structure, you may write something like:
+ //
+ // gRin2.body.dump(cout, 1);
+
+////////////////////////// END OF CASE #2 //////////////////////////
+
+
+
+//////////////////////////// CASE #3 ////////////////////////////
+
+ // In this case we process data using C1 + Weighted Least Mean Squares
+ // solver (WMS)
+
+ // Let's make a working copy
+ gnssRinex gRin3(gOriginal);
+
+ try
+ {
+
+ gRin3 >> myFilter >> model >> mopsW >> baseChange >> solverWMS;
+ // The "mopsW" object computes weights based on MOPS algorithm
+ // The "solverWMS" object solves the system using Weighted Least
+ // Mean Squares. It is already configured to work with NEU system.
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin3.header.epoch << endl;
+ }
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #8
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #9
+ cout << solverWMS.solution[2] << " "; // dH - Output field #10
+
+////////////////////////// END OF CASE #3 //////////////////////////
+
+
+
+//////////////////////////// CASE #4 ////////////////////////////
+
+ // This case does about the same as a modern GPS aircraft receiver,
+ // except for SBAS corrections and RAIM: C1smoothed + MOPS weights + WMS
+
+ // Let's make a working copy
+ gnssRinex gRin4(gOriginal);
+
+ try
+ {
+
+ gRin4 >> myFilter >> markCSC1 >> smoothC1 >> model >> mopsW >> baseChange >> solverWMS;
+ // The "markCSC1" object will try to detect cycle slips using just
+ // one frequency data (C1 and L1 observables), marking the CS flags
+ // Then, "smoothC1" will use the former information to smooth C1
+ // observations using phase data (L1)
+
+ // BEWARE: Both cycle slip detectors and "smoothers" are objects
+ // that store their internal state, so you MUST NOT use the SAME object
+ // to process OTHER data streams
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin4.header.epoch << endl;
+ }
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #11
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #12
+ cout << solverWMS.solution[2] << " "; // dH - Output field #13
+
+////////////////////////// END OF CASE #4 //////////////////////////
+
+
+
+//////////////////////////// CASE #5 ////////////////////////////
+
+ // This case is like the former, but now let's suppose that one of
+ // the unknowns is indeed known: In this case dH is constant an equal
+ // to zero (i.e.: the "rover" doesn't change altitude), and we assign
+ // a high "weight" to this information.
+
+ // Let's make a working copy
+ gnssRinex gRin5(gOriginal);
+
+ try
+ {
+ // First, the typical processing up to the change of reference frame
+ // Please note that all changes are stored in gRin5 GNSS data structure
+ gRin5 >> myFilter >> markCSC1case5 >> smoothC1case5 >> model >> mopsW >> baseChange;
+ // Remember that both cycle slip detectors and "smoothers" are objects
+ // that store their internal state, so you MUST NOT use the SAME object
+ // to process OTHER data streams (please compare with case #4)
+
+ // Now, let's insert the new equation data, including its corresponding weight
+ gRin5.body[satEq] = equTVMap;
+
+ // Let's continue processing data as usual
+ gRin5 >> solverWMS;
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin5.header.epoch << endl;
+ }
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #14
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #15
+ cout << solverWMS.solution[2] << " "; // dH - Output field #16
+
+////////////////////////// END OF CASE #5 //////////////////////////
+
+
+
+//////////////////////////// CASE #6 ////////////////////////////
+
+ // This case uses de PC combination plus a WMS solver
+
+ // Let's make a working copy
+ gnssRinex gRin6(gOriginal);
+
+ try
+ {
+
+ gRin6 >> getPC >> pcFilter >> modelPC >> mopsW >> baseChange >> solverWMS;
+ // First, we need to compute the PC combination with "getPC" and insert
+ // it into the "gRin6" data structure.
+ // Then, use "pcFilter" to take out grossly out of range results in PC.
+ // After that, use an specific model ("modelPC") for this combination. It
+ // doesn't use ionospheric model nor TGD.
+ // The remaining steps are similar to the other cases.
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin6.header.epoch << endl;
+ }
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #17
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #18
+ cout << solverWMS.solution[2] << " "; // dH - Output field #19
+
+////////////////////////// END OF CASE #6 //////////////////////////
+
+
+
+//////////////////////////// CASE #7 ////////////////////////////
+
+ // This case uses the smoothed-PC combination plus WMS
+
+ // Let's make a working copy
+ gnssRinex gRin7(gOriginal);
+
+ try
+ {
+
+ gRin7 >> getPC >> getLC >> getLI >> getMW >> markCSLI >> markCSMW >> smoothPC >> pcFilter >> modelPC >> mopsW >> baseChange >> solverWMS;
+ // In addition to PC, we will also neet LC ("getLC"), LI ("getLI")
+ // and MW ("getMW") combinations:
+ //
+ // - LC (as well as PC) is needed by "smoothPC" in order to smooth
+ // PC data. Also, the smoother works better with cycle slip
+ // information, and therefore:
+ //
+ // - LI feeds "markCSLI": The LI-based cycle slip detector
+ // - MW feeds "markCSMW": The MW-based cycle slip detector
+ //
+ // - The remaining steps are essentially the same
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin7.header.epoch << endl;
+ }
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #20
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #21
+ cout << solverWMS.solution[2] << " "; // dH - Output field #22
+
+////////////////////////// END OF CASE #7 //////////////////////////
+
+
+
+//////////////////////////// CASE #8 ////////////////////////////
+
+ // This case uses the smoothed-PC combination + WMS + information
+ // about dH (constant and equal to zero with a high confidence).
+ // It is a mix of the former case (#7) and case #5.
+
+ // Let's make a working copy
+ gnssRinex gRin8(gOriginal);
+
+ try
+ {
+ // First, let's process data up to the change of reference frame
+ gRin8 >> getPC >> getLC >> getLI >> getMW >> markCSLIcase8 >> markCSMWcase8 >> smoothPCcase8 >> pcFilter >> modelPC >> mopsW >> baseChange;
+ // Remember that both cycle slip detectors and "smoothers" are objects
+ // that store their internal state, so you MUST NOT use the SAME object
+ // to process OTHER data streams (compare with case #7).
+
+ // Now, let's insert the new equation data, including its weight.
+ // It is the same equation as case #5.
+ gRin8.body[satEq] = equTVMap;
+
+ // Let's continue processing data as usual
+ gRin8 >> solverWMS;
+ }
+ catch(...)
+ {
+ cerr << "Exception at epoch: " << gRin7.header.epoch << endl;
+ }
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #23
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #24
+ cout << solverWMS.solution[2] << " "; // dH - Output field #25
+
+////////////////////////// END OF CASE #7 //////////////////////////
+
+
+
+//////////////////////////// CASE #9 ////////////////////////////
+
+
+ // This is like cases #1 and #2, but using DGPS techniques instead.
+
+ // Let's make a working copy of rover data
+ gnssRinex gRin9(gOriginal);
+
+
+ //// The following code makes sure the data streams are synchronized
+ if (firstTime)
+ {
+ rinRef >> gRef; // Get data out of reference station RINEX file
+ firstTime = false; // Mark that the first data batch was read
+ }
+
+ // Check that the reference data time stamp is not less than rover data's,
+ // and that tolerance is within limits. If not, keep reeding.
+ // Note that if reference data time stamp is bigger, it will not enter
+ // here, "waiting" for rover data to catch up.
+ while ( (gRef.header.epoch < gRin9.header.epoch) && ( std::abs(gRef.header.epoch - gRin9.header.epoch) > timeTolerance ) )
+ {
+ rinRef >> gRef;
+ }
+ //// End of synchronization code
+
+
+ // If we couldn't synchronize data streams (i.e.: "timeTolerance" is
+ // not met), skip this epoch (no DGPS data processing will be carried out).
+ if (std::abs(gRef.header.epoch - gRin9.header.epoch) > timeTolerance )
+ {
+ cout << endl;
+ continue;
+ }
+
+
+ // If everything is OK, let's process reference station data
+ try
+ {
+ gRef >> myFilter >> modelRef;
+ // Remember that in simple DGPS, the differences are computed on code
+ // prefit residuals, so "modelRef" object is mandatory.
+
+ // The "delta" object will take care of proper differencing. We must
+ // tell it which GNSS data structure will be used as reference
+ delta.setRefData(gRef.body);
+
+ }
+ catch(...)
+ {
+ cerr << "Case 9. Exception when processing reference station data at epoch: " << gRef.header.epoch << endl;
+ }
+
+
+ // The rover data processing is done here:
+ try
+ {
+
+ gRin9 >> myFilter >> model >> delta >> baseChange >> solverNEU;
+ // This is very similar to cases #1 and #2, but we insert a "delta"
+ // object that will adjust code prefit residuals BEFORE solving the
+ // system of equations.
+ }
+ catch(...)
+ {
+ cerr << "Case 9. Exception at epoch: " << gRin9.header.epoch << endl;
+ }
+
+
+ cout << solverNEU.solution[0] << " "; // dLat - Output field #26
+ cout << solverNEU.solution[1] << " "; // dLon - Output field #27
+ cout << solverNEU.solution[2] << " "; // dH - Output field #28
+
+////////////////////////// END OF CASE #9 //////////////////////////
+
+
+
+//////////////////////////// CASE #10 ////////////////////////////
+
+
+ // This is like case #9 (DGPS), but now let's apply a WMS solver on data
+
+ // Let's make a working copy
+ gnssRinex gRin10(gOriginal);
+
+
+ // Please note that data streams are already synchronized, and "delta" object
+ // may be reused with the same reference data obtained from Case #9.
+
+ try
+ {
+
+ gRin10 >> myFilter >> model >> delta >> mopsW >> baseChange >> solverWMS;
+ // Like case #9, but now with "mopsW" and "solverWMS"
+ }
+ catch(...)
+ {
+ cerr << "Case 10. Exception at epoch: " << gRin10.header.epoch << endl;
+ }
+
+
+ cout << solverWMS.solution[0] << " "; // dLat - Output field #29
+ cout << solverWMS.solution[1] << " "; // dLon - Output field #30
+ cout << solverWMS.solution[2] << " "; // dH - Output field #31
+
+////////////////////////// END OF CASE #10 //////////////////////////
+
+
+ // End of data processing for this epoch
+ cout << endl;
+
+ }
+
+
+ exit(0);
+}
diff --git a/dev/install-sh b/dev/install-sh
new file mode 100755
index 0000000..1a83534
--- /dev/null
+++ b/dev/install-sh
@@ -0,0 +1,323 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2005-02-02.21
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch. It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+chmodcmd="$chmodprog 0755"
+chowncmd=
+chgrpcmd=
+stripcmd=
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=
+dst=
+dir_arg=
+dstarg=
+no_target_directory=
+
+usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+-c (ignored)
+-d create directories instead of installing files.
+-g GROUP $chgrpprog installed files to GROUP.
+-m MODE $chmodprog installed files to MODE.
+-o USER $chownprog installed files to USER.
+-s $stripprog installed files.
+-t DIRECTORY install into DIRECTORY.
+-T report an error if DSTFILE is a directory.
+--help display this help and exit.
+--version display version info and exit.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+"
+
+while test -n "$1"; do
+ case $1 in
+ -c) shift
+ continue;;
+
+ -d) dir_arg=true
+ shift
+ continue;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift
+ shift
+ continue;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) chmodcmd="$chmodprog $2"
+ shift
+ shift
+ continue;;
+
+ -o) chowncmd="$chownprog $2"
+ shift
+ shift
+ continue;;
+
+ -s) stripcmd=$stripprog
+ shift
+ continue;;
+
+ -t) dstarg=$2
+ shift
+ shift
+ continue;;
+
+ -T) no_target_directory=true
+ shift
+ continue;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ *) # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ test -n "$dir_arg$dstarg" && break
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dstarg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dstarg"
+ shift # fnord
+ fi
+ shift # arg
+ dstarg=$arg
+ done
+ break;;
+ esac
+done
+
+if test -z "$1"; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src ;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ src=
+
+ if test -d "$dst"; then
+ mkdircmd=:
+ chmodcmd=
+ else
+ mkdircmd=$mkdirprog
+ fi
+ else
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dstarg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dstarg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst ;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dstarg: Is a directory" >&2
+ exit 1
+ fi
+ dst=$dst/`basename "$src"`
+ fi
+ fi
+
+ # This sed command emulates the dirname command.
+ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+
+ # Make sure that the destination directory exists.
+
+ # Skip lots of stat calls in the usual case.
+ if test ! -d "$dstdir"; then
+ defaultIFS='
+ '
+ IFS="${IFS-$defaultIFS}"
+
+ oIFS=$IFS
+ # Some sh's can't handle IFS=/ for some reason.
+ IFS='%'
+ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+ shift
+ IFS=$oIFS
+
+ pathcomp=
+
+ while test $# -ne 0 ; do
+ pathcomp=$pathcomp$1
+ shift
+ if test ! -d "$pathcomp"; then
+ $mkdirprog "$pathcomp"
+ # mkdir can fail with a `File exist' error in case several
+ # install-sh are creating the directory concurrently. This
+ # is OK.
+ test -d "$pathcomp" || exit
+ fi
+ pathcomp=$pathcomp/
+ done
+ fi
+
+ if test -n "$dir_arg"; then
+ $doit $mkdircmd "$dst" \
+ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
+
+ else
+ dstfile=`basename "$dst"`
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Copy the file name to the temp name.
+ $doit $cpprog "$src" "$dsttmp" &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
+ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
+ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
+ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
+
+ # Now rename the file to the real destination.
+ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
+ || {
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ if test -f "$dstdir/$dstfile"; then
+ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
+ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
+ || {
+ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+ (exit 1); exit 1
+ }
+ else
+ :
+ fi
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+ }
+ }
+ fi || { (exit 1); exit 1; }
+done
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+{
+ (exit 0); exit 0
+}
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/dev/lib/Jamfile b/dev/lib/Jamfile
new file mode 100644
index 0000000..32733de
--- /dev/null
+++ b/dev/lib/Jamfile
@@ -0,0 +1,5 @@
+# $Id$
+
+SubDir TOP lib ;
+
+SubInclude TOP lib rxio ;
diff --git a/dev/lib/Makefile.am b/dev/lib/Makefile.am
new file mode 100644
index 0000000..2737aa9
--- /dev/null
+++ b/dev/lib/Makefile.am
@@ -0,0 +1,3 @@
+# $Id$
+EXTRA_DIST = README
+SUBDIRS = rxio
diff --git a/dev/lib/rxio/AshtechALB.cpp b/dev/lib/rxio/AshtechALB.cpp
new file mode 100644
index 0000000..5b800cd
--- /dev/null
+++ b/dev/lib/rxio/AshtechALB.cpp
@@ -0,0 +1,115 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "AshtechALB.hpp"
+#include "AshtechStream.hpp"
+
+using namespace std;
+
+namespace gpstk
+ {
+ const char* AshtechALB::myId = "ALB";
+
+ //---------------------------------------------------------------------------
+ void AshtechALB::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile)
+ {
+ AshtechStream& stream=dynamic_cast<AshtechStream&>(ffs);
+
+ // make sure the object is reset before starting the search
+ clear(fmtbit | lenbit | crcbit);
+ string& rawData = stream.rawData;
+
+ // If this object doesn't have an id set yet, assume that the streams
+ // most recent read id is what we need to be
+ if (id == "" && rawData.size()>=11 &&
+ rawData.substr(0,7) == preamble &&
+ rawData[10]==',')
+ id = rawData.substr(7,3);
+
+ // If that didn't work, or this is object is not of the right type,
+ // then give up.
+ if (id == "" || !checkId(id))
+ return;
+
+ readBody(stream);
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechALB::decode(const std::string& data)
+ throw(std::exception, FFStreamError)
+ {
+ using BinUtils::decodeVar;
+
+ string str(data);
+ if (debugLevel>1)
+ cout << "ALB " << str.length() << " " << endl;
+ if (str.length() == 138)
+ {
+ ascii=false;
+ header = str.substr(0,11); str.erase(0,11);
+ svid = decodeVar<uint16_t>(str);
+ str.erase(0,1);
+
+ for (int w=0; w<10; w++)
+ word[w] = decodeVar<uint32_t>(str);
+
+ unsigned cksum = decodeVar<uint16_t>(str);
+ clear(ios_base::goodbit);
+ }
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechALB::dump(ostream& out) const throw()
+ {
+ ostringstream oss;
+ using gpstk::StringUtils::asString;
+ using gpstk::StringUtils::leftJustify;
+
+ AshtechData::dump(out);
+ oss << getName() << "1:"
+ << " svid:" << svid
+ << " S0W0: ..."
+ << endl;
+ out << oss.str() << flush;
+ }
+
+} // namespace gpstk
diff --git a/dev/lib/rxio/AshtechALB.hpp b/dev/lib/rxio/AshtechALB.hpp
new file mode 100644
index 0000000..94d2614
--- /dev/null
+++ b/dev/lib/rxio/AshtechALB.hpp
@@ -0,0 +1,79 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ASHTECHALB_HPP
+#define ASHTECHALB_HPP
+
+/**
+ * @file AshtechALB.hpp
+ * gpstk::AshtechALB - class to hold an Ashtech ALB message
+ */
+
+#include <AshtechData.hpp>
+
+namespace gpstk
+{
+ class AshtechALB : public AshtechData
+ {
+ public:
+
+ AshtechALB() {};
+
+ std::string header; // 11 characters exactly
+
+ unsigned svid;
+ long word[10];
+
+ static const char* myId;
+
+ virtual std::string getName() const {return "epb";}
+
+ bool checkId(std::string hdrId) const {return hdrId==myId;}
+
+ void dump(std::ostream& out) const throw();
+
+ virtual void decode(const std::string& data)
+ throw(std::exception, FFStreamError);
+
+ protected:
+ virtual void reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile);
+ };
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/AshtechData.cpp b/dev/lib/rxio/AshtechData.cpp
new file mode 100644
index 0000000..b66b01f
--- /dev/null
+++ b/dev/lib/rxio/AshtechData.cpp
@@ -0,0 +1,169 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "AshtechData.hpp"
+#include "AshtechStream.hpp"
+
+using namespace std;
+
+namespace gpstk
+ {
+ //---------------------------------------------------------------------------
+ //---------------------------------------------------------------------------
+ // This is the string that preceeds every message from the receiver.
+ const char* AshtechData::preamble = "$PASHR,";
+
+ // Set to zero for no debugging output
+ // set to 1 to output text messages about decode/format/range errors
+ // set to 2 to add a hex dump of those messages
+ // set to 3+ to add the tossed bytes whether or not they are bad
+ int AshtechData::debugLevel = 0;
+
+ // set true to print a hex dump of every message to cout
+ bool AshtechData::hexDump = false;
+
+
+ //---------------------------------------------------------------------------
+ // Compute the CRC of the string and set the crcbit appropriately.
+ void AshtechData::checkCRC(string str)
+ throw()
+ {
+ // Nope, we don't do this. for now
+ if (false)
+ {
+ clearstate(crcbit);
+ return;
+ }
+ } // AshtechData::checkCRC()
+
+
+ //---------------------------------------------------------------------------
+ void AshtechData::reallyGetRecord(FFStream& ffs)
+ throw(exception, FFStreamError, EndOfFile)
+ {
+ // Note that this will generate a bad_cast exception if it doesn't work.
+ AshtechStream& stream=dynamic_cast<AshtechStream&>(ffs);
+
+ // make sure the object is reset before starting the search
+ clear(fmtbit | lenbit | crcbit);
+ id.clear();
+ stream.rawData.erase();
+
+ readHeader(stream);
+ } // AshtechData::reallyGetRecord()
+
+
+ //---------------------------------------------------------------------------
+ void AshtechData::readHeader(AshtechStream& stream)
+ throw(FFStreamError, EndOfFile)
+ {
+ char buff[12];
+ string& rawData = stream.rawData;
+
+ while (stream.read(buff, sizeof(buff)) && id == "")
+ {
+ rawData.append(buff, stream.gcount());
+ if (rawData.size()>=11 &&
+ rawData.substr(0,7) == preamble &&
+ (rawData[10]==',' ||
+ rawData.substr(7,3)=="EPB"))
+ {
+ id = rawData.substr(7,3);
+ break;
+ }
+
+ if (rawData.find(preamble[0]))
+ rawData.erase(0, rawData.find(preamble[0]));
+ else
+ {
+ if (debugLevel>1)
+ cout << "Couldn't find preamble. rawData: " << rawData << endl;
+ break;
+ }
+ }
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechData::readBody(AshtechStream& stream)
+ throw(FFStreamError, EndOfFile)
+ {
+ string& rawData = stream.rawData;
+ const string term("\015\012");
+
+ while (rawData.substr(rawData.length()-2,2) != term)
+ {
+ string buff;
+ getline(stream, buff, term[1]);
+ rawData.append(buff);
+ rawData.append(term.substr(1,1));
+ }
+ if (debugLevel>2)
+ StringUtils::hexDumpData(cout, rawData);
+
+ decode(rawData);
+ if (!good() && debugLevel>1)
+ cout << "bad decode" << endl;
+
+ if (hexDump || (debugLevel>1 && rdstate()))
+ {
+ cout << "Record Number:" << stream.recordNumber << endl;
+ StringUtils::hexDumpData(cout, rawData);
+ }
+ }
+
+
+ //---------------------------------------------------------------------------
+ void AshtechData::dump(ostream& out) const throw()
+ {
+ ostringstream oss;
+ oss << getName() << " : id:" << id << " rdstate:" << rdstate();
+ if (crcerr())
+ oss << "-crc";
+ if (fmterr())
+ oss << "-fmt";
+ if (lenerr())
+ oss << "-len";
+ if (parerr())
+ oss << "-par";
+
+ out << oss.str() << endl;
+ } // AshtechData::dump()
+} // namespace gpstk
diff --git a/dev/lib/rxio/AshtechData.hpp b/dev/lib/rxio/AshtechData.hpp
new file mode 100644
index 0000000..b8d62f9
--- /dev/null
+++ b/dev/lib/rxio/AshtechData.hpp
@@ -0,0 +1,134 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ASHTECHDATA_HPP
+#define ASHTECHDATA_HPP
+
+/**
+ * @file AshtechData.hpp
+ * gpstk::AshtechData - base cass for Ashtech formatted data.
+ */
+
+#include <map>
+#include <iostream>
+
+#include <Exception.hpp>
+#include <DayTime.hpp>
+#include <StringUtils.hpp>
+#include <BinUtils.hpp>
+
+#include <FFData.hpp>
+#include <FFStream.hpp>
+#include <DataStatus.hpp>
+
+namespace gpstk
+{
+
+ class AshtechStream;
+
+ class AshtechData : public FFData, public CRCDataStatus
+ {
+ public:
+ AshtechData() throw() {}
+
+ // Returns whether or not this AshtechData is valid.
+ bool isValid() const {return good();}
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /** Encode this object to a string.
+ * @return this object as a string.
+ */
+ virtual std::string encode() const throw() { return std::string(); }
+
+ /** Decode this object from a string.
+ * @param str the string to read from.
+ */
+ virtual void decode(const std::string& str)
+ throw(std::exception, FFStreamError)
+ {std::cout<<"AshtechData::decode()"<<std::endl;}
+
+ /// Simple accessors for various static thangs.
+ virtual std::string getName() const {return "hdr";}
+
+ /// Returns true when the provided id is valid for this message
+ virtual bool checkId(std::string hdrId) const {return false;}
+
+ /** Dump some debugging information to the given ostream.
+ * @param out the ostream to write to
+ */
+ void dump(std::ostream& out) const throw();
+
+ /// Compute the CRC over the string and set the CRC in that
+ /// string and in the header.
+ void setCRC(std::string& str) const throw() {}
+
+ /// Checks the crc of the message and set crc_err if it fails.
+ void checkCRC(std::string str) throw();
+
+ static int debugLevel;
+ static bool hexDump;
+
+ std::string id;
+ bool ascii;
+
+ static const char* preamble;
+
+ protected:
+ virtual void reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, StringUtils::StringException,
+ FFStreamError)
+ {
+ gpstk::FFStreamError e("Writing of AshtecData is not supported.");
+ GPSTK_THROW(e);
+ }
+
+ virtual void reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile);
+
+ virtual void readHeader(AshtechStream& stream)
+ throw(FFStreamError, EndOfFile);
+
+ virtual void readBody(AshtechStream& stream)
+ throw(FFStreamError, EndOfFile);
+
+ }; // class AshtechData
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/AshtechEPB.cpp b/dev/lib/rxio/AshtechEPB.cpp
new file mode 100644
index 0000000..e06a48d
--- /dev/null
+++ b/dev/lib/rxio/AshtechEPB.cpp
@@ -0,0 +1,115 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "AshtechEPB.hpp"
+#include "AshtechStream.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ const char* AshtechEPB::myId = "EPB";
+
+ //---------------------------------------------------------------------------
+ void AshtechEPB::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile)
+ {
+ AshtechStream& stream=dynamic_cast<AshtechStream&>(ffs);
+
+ // make sure the object is reset before starting the search
+ clear(fmtbit | lenbit | crcbit);
+ string& rawData = stream.rawData;
+
+ // If this object doesn't have an id set yet, assume that the streams
+ // most recent read id is what we need to be
+ if (id == "" && rawData.size()>=11 &&
+ rawData.substr(0,7) == preamble &&
+ rawData[10]==',')
+ id = rawData.substr(7,3);
+
+ // If that didn't work, or this is object is not of the right type,
+ // then give up.
+ if (id == "" || !checkId(id))
+ return;
+
+ readBody(stream);
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechEPB::decode(const std::string& data)
+ throw(std::exception, FFStreamError)
+ {
+ using BinUtils::decodeVar;
+
+ string str(data);
+ if (debugLevel>1)
+ cout << "EPB " << str.length() << " " << endl;
+ if (str.length() == 138)
+ {
+ ascii=false;
+ header = str.substr(0,11); str.erase(0,11);
+ prn = decodeVar<uint16_t>(str);
+ str.erase(0,1);
+
+ for (int s=0; s<3; s++)
+ for (int w=0; w<10; w++)
+ word[s][w] = decodeVar<uint32_t>(str);
+
+ unsigned cksum = decodeVar<uint16_t>(str);
+ clear(ios_base::goodbit);
+ }
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechEPB::dump(ostream& out) const throw()
+ {
+ ostringstream oss;
+ using gpstk::StringUtils::asString;
+ using gpstk::StringUtils::leftJustify;
+
+ AshtechData::dump(out);
+ oss << getName() << "1:"
+ << " prn:" << prn
+ << " S0W0: ..."
+ << endl;
+ out << oss.str() << flush;
+ }
+} // namespace gpstk
diff --git a/dev/lib/rxio/AshtechEPB.hpp b/dev/lib/rxio/AshtechEPB.hpp
new file mode 100644
index 0000000..02e09fb
--- /dev/null
+++ b/dev/lib/rxio/AshtechEPB.hpp
@@ -0,0 +1,80 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ASHTECHEPB_HPP
+#define ASHTECHEPB_HPP
+
+/**
+ * @file AshtechEPB.hpp
+ * gpstk::AshtechEPB - Class to hold an Ashtech EPB message
+ */
+
+#include "AshtechData.hpp"
+
+namespace gpstk
+{
+ class AshtechEPB : public AshtechData
+ {
+ public:
+
+ AshtechEPB() {};
+
+ std::string header; // 11 characters exactly
+
+ unsigned prn;
+ long word[3][10];
+
+ static const char* myId;
+
+ virtual std::string getName() const {return "epb";}
+
+ bool checkId(std::string hdrId) const {return hdrId==myId;}
+
+ void dump(std::ostream& out) const throw();
+
+ virtual void decode(const std::string& data)
+ throw(std::exception, FFStreamError);
+
+ protected:
+ virtual void reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile);
+ };
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/AshtechMBEN.cpp b/dev/lib/rxio/AshtechMBEN.cpp
new file mode 100644
index 0000000..b25b1f8
--- /dev/null
+++ b/dev/lib/rxio/AshtechMBEN.cpp
@@ -0,0 +1,252 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "AshtechMBEN.hpp"
+#include "AshtechStream.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace std;
+
+namespace gpstk
+ {
+ const char* AshtechMBEN::mpcId = "MPC";
+ const char* AshtechMBEN::mcaId = "MCA";
+
+
+ //---------------------------------------------------------------------------
+ void AshtechMBEN::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile)
+ {
+ AshtechStream& stream=dynamic_cast<AshtechStream&>(ffs);
+
+ // make sure the object is reset before starting the search
+ clear(fmtbit | lenbit | crcbit);
+ string& rawData = stream.rawData;
+
+ // If this object doesn't have an id set yet, assume that the streams
+ // most recent read id is what we need to be
+ if (id == "" && rawData.size()>=11 &&
+ rawData.substr(0,7) == preamble &&
+ rawData[10]==',')
+ id = rawData.substr(7,3);
+
+ // If that didn't work, or this is object is not of the right type,
+ // then give up.
+ if (id == "" || !checkId(id))
+ return;
+
+ readBody(stream);
+ }
+
+
+ //---------------------------------------------------------------------------
+ void AshtechMBEN::decode(const std::string& data)
+ throw(std::exception, FFStreamError)
+ {
+ using gpstk::BinUtils::decodeVar;
+
+ string str(data);
+ if (debugLevel>2)
+ cout << "MBEN " << str.length() << " " << endl;
+
+ if (str.length() == 108 || str.length()==52)
+ {
+ ascii=false;
+ header = str.substr(0,11); str.erase(0,11);
+
+ seq = decodeVar<uint16_t>(str);
+ left = decodeVar<uint8_t>(str);
+ svprn = decodeVar<uint8_t>(str);
+ el = decodeVar<uint8_t>(str);
+ az = decodeVar<uint8_t>(str);
+ chid = decodeVar<uint8_t>(str);
+
+ ca.decodeBIN(str);
+
+ if (id == mpcId)
+ {
+ p1.decodeBIN(str);
+ p2.decodeBIN(str);
+ }
+
+ clear();
+ }
+ else
+ {
+ ascii=true;
+ header = str.substr(0,11); str.erase(0,11);
+ stringstream iss(str);
+ char c;
+ iss >> seq >> c
+ >> left >> c
+ >> svprn >> c
+ >> el >> c
+ >> az >> c
+ >> chid >> c;
+
+ ca.decodeASCII(iss);
+
+ if (id == mpcId)
+ {
+ p1.decodeASCII(iss);
+ p2.decodeASCII(iss);
+ }
+
+ clear();
+ }
+
+ if (seq>36000)
+ setstate(fmtbit);
+ }
+
+
+ //---------------------------------------------------------------------------
+ void AshtechMBEN::code_block::decodeASCII(stringstream& str)
+ throw(std::exception, FFStreamError)
+ {
+ char c;
+ str >> warning >> c
+ >> goodbad >> c
+ >> polarity_known>> c
+ >> ireg >> c
+ >> qa_phase >> c
+ >> full_phase >> c
+ >> raw_range >> c
+ >> doppler >> c
+ >> smoothing >> c
+ >> smooth_cnt >> c;
+
+ // The ashtech docs say this field should be in 1e-4 Hz
+ // The data sure doesn't look like it, however
+ //doppler *= 1e-4;
+ raw_range *= 1e-3; //convert ms to sec
+ }
+
+
+ //---------------------------------------------------------------------------
+ void AshtechMBEN::code_block::decodeBIN(string& str)
+ throw(std::exception, FFStreamError)
+ {
+ using gpstk::BinUtils::decodeVar;
+ uint32_t smo;
+ warning = decodeVar<uint8_t>(str);
+ goodbad = decodeVar<uint8_t>(str);
+ polarity_known = decodeVar<uint8_t>(str);
+ ireg = decodeVar<uint8_t>(str);
+ qa_phase = decodeVar<uint8_t>(str);
+ full_phase = decodeVar<double>(str);
+ raw_range = decodeVar<double>(str);
+ doppler = decodeVar<int32_t>(str);
+ smo = decodeVar<uint32_t>(str);
+
+ doppler *= 1e-4;
+ smoothing = (smo & 0x800000 ? -1e-3 : 1e-3) * (smo & 0x7fffff);
+ smooth_cnt = (smo >> 24) & 0xff;
+ }
+
+
+ //---------------------------------------------------------------------------
+ void AshtechMBEN::code_block::dump(ostream& out) const
+ {
+ using gpstk::StringUtils::asString;
+ out << hex
+ << "warn:" << (int)warning
+ << " gb:" << (int)goodbad
+ << " pol:" << (int)polarity_known
+ << " qa:" << (int)qa_phase
+ << dec
+ << " phase:" << asString(full_phase, 1)
+ << " range:" << asString(raw_range*1e3, 3)
+ << " doppler:" << doppler
+ << " smo:" << smoothing;
+ }
+
+
+ //---------------------------------------------------------------------------
+ float AshtechMBEN::code_block::snr(float chipRate) const throw()
+ {
+ const int n = 20000; // number of samples in 1 ms
+ const float m = 4.14; // magnitude of the carrier estimate;
+ float bw = 0.9 * chipRate; // equivalent noise bandwidth (Hz)
+
+ const float d = PI/(n*n*m*m*4.0);
+ float snr=0;
+
+ if (ireg)
+ {
+ snr = exp(((float)ireg)/25.0);
+ snr = snr*snr*bw*d;
+ snr = 10 * log10(snr);
+ }
+
+ return snr;
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechMBEN::dump(ostream& out) const throw()
+ {
+ ostringstream oss;
+ using gpstk::StringUtils::asString;
+
+ AshtechData::dump(oss);
+ oss << getName() << "1:"
+ << " seq:" << 0.05 * seq
+ << " left:" << (int)left
+ << " prn:" << (int)svprn
+ << " el:" << (int)el
+ << " az:" << (int)az
+ << " chid:" << (int)chid
+ << " " << (ascii?"ascii":"bin")
+ << endl;
+
+ oss << getName() << "2: ca";
+ ca.dump(oss);
+ oss << endl;
+
+ if (id == mpcId)
+ {
+ oss << getName() << "3: p1";
+ p1.dump(oss);
+ oss << endl;
+ oss << getName() << "4: p2";
+ p2.dump(oss);
+ oss << endl;
+ }
+ out << oss.str() << flush;
+ }
+} // namespace gpstk
diff --git a/dev/lib/rxio/AshtechMBEN.hpp b/dev/lib/rxio/AshtechMBEN.hpp
new file mode 100644
index 0000000..b95f788
--- /dev/null
+++ b/dev/lib/rxio/AshtechMBEN.hpp
@@ -0,0 +1,113 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ASHTECHMBEN_HPP
+#define ASHTECHMBEN_HPP
+
+/**
+ * @file AshtechMBEN.hpp
+ * gpstk::AshtechMBEN - class for Ashtech raw measurement data
+ */
+
+#include <map>
+#include <iostream>
+
+#include "AshtechData.hpp"
+
+namespace gpstk
+{
+ class AshtechMBEN : public AshtechData
+ {
+ public:
+
+ AshtechMBEN() {};
+
+ std::string header; // 11 characters exactly
+ unsigned seq; // sow in units of 50 ms, modulo 36,000
+ // (36,000 * 50 ms = 30 minutes)
+ unsigned left;
+ unsigned svprn; // the PRN of the tracked satellite
+ unsigned el; // degrees
+ unsigned az; // degrees
+ unsigned chid; // 1..12
+
+ struct code_block
+ {
+ unsigned warning; // field is bit packed, see code
+ unsigned goodbad; // 'position' quality
+ unsigned polarity_known; // 'spare' in the ashtech docs
+ unsigned ireg; // SNR in custom units
+ unsigned qa_phase; // phase quality 0..5 and 95..100 are good
+ double full_phase; // cycles
+ double raw_range; // seconds
+ double doppler; // Hz
+ double smoothing; // meters
+ unsigned smooth_cnt; //
+
+ virtual void decodeASCII(std::stringstream& str)
+ throw(std::exception, FFStreamError);
+ virtual void decodeBIN(std::string& str)
+ throw(std::exception, FFStreamError);
+ float snr(float chipRate) const throw();
+ void dump(std::ostream& out) const;
+ };
+
+ // The remaining block is repeated repeated three times for an MPC but
+ // only appears once for an MCA
+ code_block ca;
+ code_block p1;
+ code_block p2;
+
+ static const char *mpcId, *mcaId;
+
+ virtual std::string getName() const {return "mben";}
+
+ virtual bool checkId(std::string hdrId) const
+ {return hdrId==mpcId || hdrId==mcaId;}
+
+ void dump(std::ostream& out) const throw();
+ virtual void decode(const std::string& data)
+ throw(std::exception, FFStreamError);
+
+ protected:
+ virtual void reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile);
+ };
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/AshtechPBEN.cpp b/dev/lib/rxio/AshtechPBEN.cpp
new file mode 100644
index 0000000..f9ef748
--- /dev/null
+++ b/dev/lib/rxio/AshtechPBEN.cpp
@@ -0,0 +1,157 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "AshtechPBEN.hpp"
+#include "AshtechStream.hpp"
+#include "TimeConstants.hpp"
+
+using namespace std;
+
+namespace gpstk
+ {
+ const char* AshtechPBEN::myId = "PBN";
+
+ //---------------------------------------------------------------------------
+ void AshtechPBEN::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile)
+ {
+ AshtechStream& stream=dynamic_cast<AshtechStream&>(ffs);
+
+ // make sure the object is reset before starting the search
+ clear(fmtbit | lenbit | crcbit);
+ string& rawData = stream.rawData;
+
+ // If this object doesn't have an id set yet, assume that the streams
+ // most recent read id is what we need to be
+ if (id == "" && rawData.size()>=11 &&
+ rawData.substr(0,7) == preamble &&
+ rawData[10]==',')
+ id = rawData.substr(7,3);
+
+ // If that didn't work, or this is object is not of the right type,
+ // then give up.
+ if (id == "" || !checkId(id))
+ return;
+
+ readBody(stream);
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechPBEN::decode(const std::string& data)
+ throw(std::exception, FFStreamError)
+ {
+ using gpstk::BinUtils::decodeVar;
+
+ string str(data);
+ if (debugLevel>2)
+ cout << "PBEN " << str.length() << " " << endl;
+ if (str.length() == 69)
+ {
+ ascii=false;
+ header = str.substr(0,11); str.erase(0,11);
+ sow = 1e-3 * decodeVar<int32_t>(str);
+ sitename = str.substr(0,4); str.erase(0,4);
+ navx = decodeVar<double>(str);
+ navy = decodeVar<double>(str);
+ navz = decodeVar<double>(str);
+ navt = decodeVar<float>(str);
+ navxdot = decodeVar<float>(str);
+ navydot = decodeVar<float>(str);
+ navzdot = decodeVar<float>(str);
+ navtdot = decodeVar<float>(str);
+ pdop = decodeVar<uint16_t>(str);
+ lat = lon = alt = numSV = hdop = vdop = tdop = 0;
+ clear();
+ }
+ else
+ {
+ ascii=true;
+ header = str.substr(0,11); str.erase(0,11);
+ stringstream iss(str);
+ double latMin,lonMin;
+ char c;
+ iss >> sow >> c
+ >> navx>> c >> navy >> c >> navz >> c
+ >> lat >> c >> latMin >> c >> lon >> c >> lonMin >> c >> alt >> c
+ >> navxdot>> c >> navydot>> c >> navzdot >> c
+ >> numSV >> c;
+ getline(iss, sitename, ',');
+ iss >> pdop>> c >> hdop>> c >> vdop>> c >> tdop;
+
+ lat += latMin / 60;
+ lon += lonMin / 60;
+ navt = navtdot = 0;
+ if (iss)
+ clear();
+ }
+
+ if (sow>FULLWEEK)
+ setstate(fmtbit);
+ }
+
+ //---------------------------------------------------------------------------
+ void AshtechPBEN::dump(ostream& out) const throw()
+ {
+ ostringstream oss;
+ using gpstk::StringUtils::asString;
+ using gpstk::StringUtils::leftJustify;
+
+ AshtechData::dump(out);
+ oss << getName() << "1:"
+ << " SOW:" << asString(sow, 1)
+ << " #SV:" << (int)numSV
+ << " PDOP:" << (int)pdop
+ << " ClkOff:" << asString(navt, 3)
+ << " ClkDft:" << asString(navtdot, 3)
+ << " sitename:" << sitename
+ << " " << (ascii?"ascii":"bin")
+ << endl
+ << getName() << "2:"
+ << " X:" << asString(navx, 1)
+ << " Y:" << asString(navy, 1)
+ << " Z:" << asString(navz, 1)
+ << " Vx:" << asString(navxdot, 3)
+ << " Vy:" << asString(navydot, 3)
+ << " Vz:" << asString(navzdot, 3)
+ << endl;
+ out << oss.str() << flush;
+ }
+} // namespace gpstk
diff --git a/dev/lib/rxio/AshtechPBEN.hpp b/dev/lib/rxio/AshtechPBEN.hpp
new file mode 100644
index 0000000..c61c279
--- /dev/null
+++ b/dev/lib/rxio/AshtechPBEN.hpp
@@ -0,0 +1,92 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ASHTECHPBEN_HPP
+#define ASHTECHPBEN_HPP
+
+/**
+ * @file AshtechPBEN.hpp
+ * gpstk::AshtechPBEN - class for storing ashtech nav solution record
+ */
+
+#include "AshtechData.hpp"
+
+namespace gpstk
+{
+ class AshtechPBEN : public AshtechData
+ {
+ public:
+
+ AshtechPBEN() {};
+
+ std::string header; // 11 characters exactly
+
+ double sow;
+ std::string sitename; // 4 characters exactly
+ double navx; // meters
+ double navy; // meters
+ double navz; // meters
+ float navt; // meters
+ float navxdot; // meters/sec
+ float navydot; // meters/sec
+ float navzdot; // meters/sec
+ float navtdot; // meters/sec
+ unsigned pdop;
+
+ // These items are not part of the binary output and only exist in the
+ // ascii output
+ float lat, lon, alt, numSV, hdop, vdop, tdop;
+
+ static const char* myId;
+
+ virtual std::string getName() const {return "pben";}
+
+ bool checkId(std::string hdrId) const {return hdrId==myId;}
+
+ void dump(std::ostream& out) const throw();
+
+ virtual void decode(const std::string& data)
+ throw(std::exception, FFStreamError);
+
+ protected:
+ virtual void reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, EndOfFile);
+ };
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/AshtechStream.hpp b/dev/lib/rxio/AshtechStream.hpp
new file mode 100644
index 0000000..bdb461a
--- /dev/null
+++ b/dev/lib/rxio/AshtechStream.hpp
@@ -0,0 +1,82 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef ASHTECHSTREAM_HPP
+#define ASHTECHSTREAM_HPP
+
+/**
+ * @file AshtechStream.hpp
+ * gpstk::AshtechStream - Decode data from Ashtech Z(Y)-12 recerivers.
+ */
+
+#include "FFBinaryStream.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is a stream used to decode data in the Ashtech format.
+ */
+ class AshtechStream : public FFBinaryStream
+ {
+ public:
+ AshtechStream() {}
+
+ /**
+ * @param fn the name of the Ashtech file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ AshtechStream(const char* fn, std::ios::openmode mode = std::ios::in)
+ : FFBinaryStream(fn, mode)
+ {}
+
+ /// destructor per the coding standards
+ virtual ~AshtechStream()
+ {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode = std::ios::in)
+ {
+ FFBinaryStream::open(fn, mode);
+ }
+
+ /// The raw bytes of the most recent message above message
+ std::string rawData;
+ }; // class AshtechStream
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/DataStatus.hpp b/dev/lib/rxio/DataStatus.hpp
new file mode 100644
index 0000000..2255a3d
--- /dev/null
+++ b/dev/lib/rxio/DataStatus.hpp
@@ -0,0 +1,69 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file DataStatus.hpp
+ * gpstk::DataStatus - This class is intended to provide an interface
+ similiar to the iostream status bits (good, eof, bad, & fail) for
+ the data. This is to support 'soft' errors such as a format or crc error.
+ */
+
+//lgpl-license START
+//lgpl-license END
+
+#ifndef DATASTATUS_HPP
+#define DATASTATUS_HPP
+
+#include <iostream>
+
+namespace gpstk
+{
+ class DataStatus
+ {
+ std::ios_base::iostate state;
+
+ public:
+
+ DataStatus() : state(std::ios_base::goodbit) {};
+
+ /// Note that the goodbit isn't really a bit, it is just the lack
+ /// of any bits being set.
+ bool good() const
+ {return rdstate() == std::ios_base::goodbit;}
+
+ std::ios_base::iostate rdstate() const
+ {return state;}
+
+ void clear(std::ios_base::iostate s = std::ios_base::goodbit)
+ {state=s;}
+
+ void setstate(std::ios_base::iostate s)
+ {clear(rdstate() | s);}
+
+ void clearstate(std::ios_base::iostate s)
+ {state &= ~s;}
+
+ bool operator()() const
+ {return good();}
+
+ operator void*() const
+ {return good() ? const_cast<DataStatus*>(this) : 0;}
+ };
+
+ /// Define additional/other bits are the data requires
+ static const std::ios_base::iostate crcbit = std::ios_base::iostate(0x01);
+ static const std::ios_base::iostate fmtbit = std::ios_base::iostate(0x02);
+ static const std::ios_base::iostate lenbit = std::ios_base::iostate(0x04);
+ static const std::ios_base::iostate parbit = std::ios_base::iostate(0x08);
+
+ class CRCDataStatus : public DataStatus
+ {
+ public:
+ bool crcerr() const {return (rdstate() & crcbit) != 0;}
+ bool fmterr() const {return (rdstate() & fmtbit) != 0;}
+ bool lenerr() const {return (rdstate() & lenbit) != 0;}
+ bool parerr() const {return (rdstate() & parbit) != 0;}
+ };
+} // namespace gpstk
+
+#endif // DATASTATUS_HPP
diff --git a/dev/lib/rxio/DeviceStream.hpp b/dev/lib/rxio/DeviceStream.hpp
new file mode 100644
index 0000000..a7a52a7
--- /dev/null
+++ b/dev/lib/rxio/DeviceStream.hpp
@@ -0,0 +1,230 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef DEVICESTREAM_HPP
+#define DEVICESTREAM_HPP
+
+#include <string>
+#include <termios.h> // POSIX terminal control definitions
+
+#include "FDStreamBuff.hpp"
+#include "TCPStreamBuff.hpp"
+
+namespace gpstk
+{
+ // A class to hid the details of setting up an iostream to take data from
+ // write data to one of several sources:
+ // standard input/output
+ // a file
+ // a tcp socket
+ // a serial port
+ // See the open() function for how to specify these targets
+ // Note that the base type needs to be a decendant of an fstream for this class to work.
+ template<class T>
+ class DeviceStream : public T
+ {
+ public:
+ DeviceStream(void);
+
+ DeviceStream(const std::string& target,
+ std::ios::openmode mode = std::ios::in);
+
+ void open(const std::string& target,
+ std::ios::openmode mode = std::ios::in);
+
+ void open(const char* p,
+ std::ios::openmode mode = std::ios::in);
+
+ virtual ~DeviceStream();
+
+ bool is_open() const;
+
+ enum DeviceType {dtStdio, dtFile, dtTCP, dtSerial};
+
+ DeviceType getDeviceType() {return deviceType;}
+
+ std::string getTarget() const {return target;}
+
+ private:
+ mutable FDStreamBuff *fdbuff; // mutable so rdbuf() can be const
+ std::string target;
+ DeviceType deviceType;
+ };
+
+
+ template<class T>
+ DeviceStream<T>::DeviceStream(void)
+ : fdbuff(NULL)
+ {
+ open("");
+ }
+
+
+ template<class T>
+ DeviceStream<T>::DeviceStream(const std::string& target, std::ios::openmode mode)
+ : fdbuff(NULL),
+ target(target)
+ {
+ open(target, mode);
+ };
+
+
+ template<class T>
+ DeviceStream<T>::~DeviceStream()
+ {
+ if (fdbuff)
+ delete fdbuff;
+ }
+
+
+ template<class T>
+ void DeviceStream<T>::open(const char* p, std::ios::openmode mode)
+ {
+ open(std::string(p), mode);
+ }
+
+ template<class T>
+ bool DeviceStream<T>::is_open() const
+ {
+ if (deviceType == dtStdio)
+ return true;
+ if (fdbuff != NULL)
+ return fdbuff->is_open();
+ }
+
+ template<class T>
+ void DeviceStream<T>::open(const std::string& target, std::ios::openmode mode)
+ {
+ using namespace std;
+ this->target = target;
+ if (target != "")
+ {
+ if (target.substr(0, 4) == "tcp:")
+ {
+ string ifn=target;
+ int port = 25;
+ ifn.erase(0,4);
+ string::size_type i = ifn.find(":");
+ if (i<ifn.size())
+ {
+ port = StringUtils::asInt(ifn.substr(i+1));
+ ifn.erase(i);
+ }
+
+ TCPStreamBuff *tcpbuff = new TCPStreamBuff();
+
+ SocketAddr client(ifn, port);
+ if (tcpbuff->connect(client))
+ {
+ cerr << "Could not connect to " << ifn << endl;
+ exit(-1);
+ }
+
+ deviceType = dtTCP;
+ fdbuff = tcpbuff;
+ basic_ios<char>::rdbuf(fdbuff);
+ }
+ else if (target.substr(0, 4) == "ser:") // A serial port
+ {
+ string ifn=target;
+ ifn.erase(0,4);
+ int fd = ::open(ifn.c_str(), O_RDWR | O_NOCTTY | O_NDELAY);
+
+ if (fd<0)
+ return;
+
+ int rtn = fcntl(fd, F_SETFL, 0);
+
+ struct termios options;
+
+ options.c_iflag = 0x00 | IGNBRK;// | IGNPAR; // 0x1;
+ options.c_lflag = 0x00;
+ options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);
+ options.c_oflag = 0x00;
+ options.c_cflag = 0x00 | CS8 | CSIZE | CREAD | HUPCL | CLOCAL; // 0x1cb2;
+ cfsetispeed(&options, B115200);
+
+ // Final step... apply them
+ tcsetattr(fd, TCSANOW, &options);
+
+ deviceType = dtSerial;
+ fdbuff = new FDStreamBuff(fd);
+ basic_ios<char>::rdbuf(fdbuff);
+ }
+ else // a regular file
+ {
+ int flags=O_RDONLY;
+ if (mode & ios::out)
+ flags=O_WRONLY|O_CREAT;
+ if (mode & ios::app) flags |= O_APPEND;
+ if (mode & ios::trunc) flags |= O_TRUNC;
+
+ int fd = ::open(target.c_str(), flags, 0666);
+ if (fd<0)
+ {
+ cerr << "Could not open: " << target.c_str() << endl;
+ return;
+ }
+ fdbuff = new FDStreamBuff(fd);
+ basic_ios<char>::rdbuf(fdbuff);
+
+ deviceType = dtFile;
+ }
+ }
+ else // Use standard input/output
+ {
+ if (mode && ios::out)
+ {
+ T::copyfmt(cout);
+ T::clear(cin.rdstate());
+ basic_ios<char>::rdbuf(cout.rdbuf());
+ this->target = "<stdout>";
+ }
+ else
+ {
+ T::copyfmt(cin);
+ T::clear(cin.rdstate());
+ basic_ios<char>::rdbuf(cin.rdbuf());
+ this->target = "<stdin>";
+ }
+ deviceType = dtStdio;
+ }
+ }
+
+} // end of namespace
+#endif
diff --git a/dev/lib/rxio/EphReader.cpp b/dev/lib/rxio/EphReader.cpp
new file mode 100644
index 0000000..19b3e76
--- /dev/null
+++ b/dev/lib/rxio/EphReader.cpp
@@ -0,0 +1,170 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "SP3EphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+
+#include "FICStream.hpp"
+#include "FICData.hpp"
+
+#include "EphReader.hpp"
+#include "FFIdentifier.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+// ---------------------------------------------------------------------
+// ---------------------------------------------------------------------
+void EphReader::read(const std::string& fn)
+{
+ FFIdentifier ffid(fn);
+
+ switch (ffid)
+ {
+ case FFIdentifier::tRinexNav: read_rinex_nav_data(fn); break;
+ case FFIdentifier::tFIC: read_fic_data(fn); break;
+ case FFIdentifier::tSP3: read_sp3_data(fn); break;
+ default:
+ if (verboseLevel)
+ cout << "# Could not determine the format of " << fn << endl;
+ }
+
+ filesRead.push_back(fn);
+ if (verboseLevel>1)
+ cout << "# Ephemeris initial time: " << eph->getInitialTime()
+ << ", final time: " << eph->getFinalTime() << endl;
+} // end of read()
+
+
+// ---------------------------------------------------------------------
+// Read in ephemeris data in rinex format
+// ---------------------------------------------------------------------
+void EphReader::read_rinex_nav_data(const string& fn)
+{
+ BCEphemerisStore* bce;
+ if (eph == NULL)
+ {
+ bce = new(BCEphemerisStore);
+ eph = dynamic_cast<EphemerisStore*>(bce);
+ }
+ else
+ {
+ if (typeid(*eph) != typeid(BCEphemerisStore))
+ throw(FFStreamError("Don't mix nav data types..."));
+ bce = dynamic_cast<BCEphemerisStore*>(eph);
+ }
+ if (verboseLevel>2)
+ cout << "# Reading " << fn << " as RINEX nav."<< endl;
+
+ RinexNavStream rns(fn.c_str(), ios::in);
+ rns.exceptions(ifstream::failbit);
+ RinexNavData rnd;
+ while (rns >> rnd)
+ bce->addEphemeris(rnd);
+
+ if (verboseLevel>1)
+ cout << "# Read " << fn << " as RINEX nav. " << endl;
+} // end of read_rinex_nav_data()
+
+
+void EphReader::read_fic_data(const string& fn)
+{
+ BCEphemerisStore* bce;
+
+ if (eph == NULL)
+ {
+ bce = new(BCEphemerisStore);
+ eph = dynamic_cast<EphemerisStore*>(bce);
+ }
+ else
+ {
+ if (typeid(*eph) != typeid(BCEphemerisStore))
+ throw(FFStreamError("Don't mix nav data types..."));
+ bce = dynamic_cast<BCEphemerisStore*>(eph);
+ }
+ if (verboseLevel>2)
+ cout << "# Reading " << fn << " as FIC nav."<< endl;
+
+ FICStream fs(fn.c_str(), ios::in);
+ FICHeader header;
+ fs >> header;
+
+ FICData data;
+ while(fs >> data)
+ if (data.blockNum==9) // Only look at the eng ephemeris
+ bce->addEphemeris(data);
+
+ if (verboseLevel>1)
+ cout << "# Read " << fn << " as FIC nav."<< endl;
+} // end of read_fic_data()
+
+
+void EphReader::read_sp3_data(const string& fn)
+{
+ SP3EphemerisStore* pe;
+
+ if (eph == NULL)
+ {
+ pe = new(SP3EphemerisStore);
+ eph = dynamic_cast<EphemerisStore*>(pe);
+ }
+ else
+ {
+ if (typeid(*eph) != typeid(SP3EphemerisStore))
+ throw(FFStreamError("Don't mix nav data types..."));
+ pe = dynamic_cast<SP3EphemerisStore*>(eph);
+ }
+ if (verboseLevel>2)
+ cout << "# Reading " << fn << " as SP3 ephemeris."<< endl;
+
+ SP3Stream pefile(fn.c_str(),ios::in);
+ pefile.exceptions(ifstream::failbit);
+
+ SP3Header header;
+ pefile >> header;
+
+ SP3Data data;
+ while(pefile >> data)
+ pe->addEphemeris(data);
+
+ if (verboseLevel>1)
+ cout << "# Read " << fn << " as SP3 ephemeris."<< endl;
+} // end of read_sp3_data()
diff --git a/dev/lib/rxio/EphReader.hpp b/dev/lib/rxio/EphReader.hpp
new file mode 100644
index 0000000..a2122f2
--- /dev/null
+++ b/dev/lib/rxio/EphReader.hpp
@@ -0,0 +1,75 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef EPHREADER_HPP
+#define EPHREADER_HPP
+
+/** @file This is a class that reads in ephemeris data without the
+ caller needing to know the format the data is suppllied in. The
+ navigation data formats that are (to be) supported: rinex nav, fic,
+ sp3, mdp. Unlike the ObsReader, this reads in the entire file at once.
+**/
+
+#include <string>
+#include <vector>
+
+#include "EphemerisStore.hpp"
+
+class EphReader
+{
+public:
+ EphReader()
+ : verboseLevel(0), eph(NULL) {};
+
+ EphReader(const std::string& fn)
+ : verboseLevel(0), eph(NULL) { read(fn); };
+
+ int verboseLevel;
+
+ void read(const std::string& fn);
+
+ std::vector<std::string> filesRead;
+
+ gpstk::EphemerisStore* eph;
+
+private:
+ void read_rinex_nav_data(const std::string& fn);
+ void read_fic_data(const std::string& fn);
+ void read_sp3_data(const std::string& fn);
+};
+#endif
diff --git a/dev/lib/rxio/FDStreamBuff.cpp b/dev/lib/rxio/FDStreamBuff.cpp
new file mode 100644
index 0000000..f35ac6f
--- /dev/null
+++ b/dev/lib/rxio/FDStreamBuff.cpp
@@ -0,0 +1,181 @@
+#pragma ident "$Id$"
+
+#include <sstream>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <unistd.h>
+#include <netdb.h>
+#include <fcntl.h>
+#include <sys/file.h>
+
+#include "FDStreamBuff.hpp"
+
+#define BSIZE 4096
+
+using namespace std;
+
+namespace gpstk
+{
+ // Close the file descriptor
+ void FDStreamBuff::close(void)
+ {
+ if (is_open())
+ {
+ ::close(handle);
+ handle = -1;
+ }
+ }
+
+ // Write characters to the stream, giving time. Return the number of
+ // characters actually written (which is always n, or EOF in case of error).
+ int FDStreamBuff::write(const char * buffer, const int n)
+ {
+ if( !is_open() )
+ return EOF;
+ if( n == 0 )
+ return 0;
+
+ const char * const buffer_end = buffer + n;
+ while( buffer < buffer_end )
+ {
+ const int char_written = ::write(handle, buffer, buffer_end-buffer);
+ if( char_written > 0 )
+ buffer += char_written;
+ else
+ if (char_written < 0 && !(errno == EAGAIN || errno == EINTR ))
+ return EOF;
+ else
+ cout << "to be implimented" << endl;
+ }
+ return n;
+ }
+
+ // Read characters from the stream into a given buffer (of given size n)
+ // If there is nothing to read, yield and keep trying. Return the number
+ // of characters actually read, or 0 (in the case of EOF) or EOF on error.
+ int FDStreamBuff::read(char * buffer, const int n)
+ {
+ if( !is_open() )
+ return EOF;
+ if( n == 0 )
+ return 0;
+
+ for(;;)
+ {
+ const int char_read = ::read(handle, buffer, n);
+ if( char_read >= 0 )
+ return char_read;
+ if( errno == EAGAIN || errno == EINTR )
+ cout << "to be implimented" << endl;
+ else
+ return EOF;
+ }
+ }
+
+
+ // See libg++-2.7.2/libio/iostream.info-1 for some nice words on how this
+ // stuff should work.
+ // Flush (write out) the put area, resetting pptr if the write was successful
+ // Return 0, or EOF on error
+ int FDStreamBuff::sync(void)
+ {
+ const int n = pptr() - pbase();
+ if( n == 0 )
+ return 0;
+ return write(pbase(), n) == n ? (pbump(-n), 0) : EOF;
+ }
+
+
+ // Write out the buffer into the communication channel After that, put a
+ // character c (unless it's EOF) Return 0, or EOF on error. This method
+ // allocates a buffer if there wasn't any, and switches it to the "put mode"
+ // (discarding all data that may have been in the buffer)
+ int FDStreamBuff::overflow(int ch)
+ {
+ if (sync() == EOF)
+ return EOF;
+
+ if (base() == 0) // If there wasn't any buffer,
+ doallocate(); // ... make one
+
+ setg(base(),base(),base()); // Make the get area completely empty
+ setp(base(),ebuf()); // Give all the buffer to the put area
+
+ if (pptr() == 0)
+ cout << "Throw an exception here or something bad." << endl;
+
+ if (ch != EOF)
+ *pptr() = ch, pbump(1);
+
+ return 0;
+ }
+
+
+ // Fill in the get area, and return its first character. Actually read into
+ // the main buffer from the beginning (syncing pending output if was any)
+ // and set the get area to that part of the buffer. Also set pptr() = eptr()
+ // so that the first write would call overflow() (which would discard the
+ // read data)
+ int FDStreamBuff::underflow(void)
+ {
+ if( gptr() < egptr() )
+ return *(unsigned char*)gptr();
+
+ if( sync() == EOF ) // commit all pending output first
+ return EOF; // libg++ uses switch_to_get_mode() in here
+
+ if( base() == 0 ) // If there wasn't any buffer, make one first
+ doallocate();
+
+ //assert( base() );
+ base();
+ const int count = read(base(),ebuf() - base());
+ setg(base(),base(),base() + (count <= 0 ? 0 : count));
+ setp(base(),base()); // no put area - do overflow on the first put
+ return count <= 0 ? EOF : *(unsigned char*)gptr();
+ }
+
+
+ // Allocate a new buffer
+ int FDStreamBuff::doallocate(void)
+ {
+ const int size = BSIZE;
+ // have to do malloc() as ~streambuf() does free() on the buffer
+ char *p = (char *)malloc(size);
+
+ if (p == NULL)
+ cout << "throw an exception here?" << endl;
+
+ setb(p, p+size, true);
+ return 1;
+ }
+
+
+ // Associate a user buffer with the FDStreamBuff
+ FDStreamBuff* FDStreamBuff::setbuf(char* p, const int len)
+ {
+ if( streambuf::setbuf(p,len) == 0 )
+ return 0;
+
+ setp(base(),base());
+ setg(base(),base(),base());
+ return this;
+ }
+
+
+ void FDStreamBuff::dump(std::ostream& out) const
+ {
+ std::ostringstream ost;
+ ost << "FDStreamBuff: "
+ << " H:" << handle << std::endl
+ << " put: " << std::hex << pbase() << " - " << epptr()
+ << " curr:" << pptr() - pbase() << std::endl
+ << " get:" << eback() << " - " << egptr()
+ << " curr:" << gptr() - eback() << std::endl
+ << " buff:" << base() << " - " << ebuf()
+ << std::endl;
+ out << ost.str();
+ }
+
+} // end of namespace
diff --git a/dev/lib/rxio/FDStreamBuff.hpp b/dev/lib/rxio/FDStreamBuff.hpp
new file mode 100644
index 0000000..bab721e
--- /dev/null
+++ b/dev/lib/rxio/FDStreamBuff.hpp
@@ -0,0 +1,78 @@
+#pragma ident "$Id$"
+
+#ifndef FDSTREAMBUFF_HPP
+#define FDSTREAMBUFF_HPP
+
+#include <iostream>
+
+namespace gpstk
+{
+
+ // This is just a stream buffer that attaches to a file descriptor.
+ // All buffering is done by streambuf. This class only does the filling and
+ // flushing.
+ class FDStreamBuff : public std::streambuf
+ {
+ public:
+
+ FDStreamBuff() : handle(-1), bufferSize(4096)
+ {}
+
+ FDStreamBuff(int fd) : handle(fd), bufferSize(4096)
+ {}
+
+ ~FDStreamBuff()
+ {close();}
+
+ // These are the functions that actually read/write from the socket to/from
+ // a given buffer. They return the number of bytes transmitted (or
+ // EOF on error)
+ int write(const char * buffer, const int n);
+ int read(char * buffer, const int n);
+
+ bool is_open() const { return handle >= 0; }
+ void close();
+ virtual FDStreamBuff* setbuf(char* p, const int len);
+
+ // We limit this stream to be sequential
+ std::streampos seekoff(std::streamoff, std::ios::seekdir, int)
+ { return EOF; }
+
+ void dump(std::ostream& out) const;
+
+ struct Buffer
+ {
+ char * start;
+ char * end;
+ bool do_dispose;
+ void dispose()
+ {
+ if (!do_dispose) return;
+ free(start); start = end = 0; do_dispose = false;
+ }
+ Buffer(void) : start(0), end(0), do_dispose(false) {}
+ ~Buffer(void) { dispose(); }
+ };
+
+ Buffer buffer;
+ int handle;
+ unsigned bufferSize;
+
+ protected:
+ // Standard streambuf functions we have to
+ // provide an implementation for
+ virtual int overflow(int c = EOF); // Write out a "put area"
+ virtual int underflow(void); // Fill in a "get area"
+ virtual int sync(void); // Commit all uncommitted writes
+ virtual int doallocate(void); // Allocate a new buffer
+
+ // we use the same buffer for get and put areas
+ char * base(void) const { return buffer.start; }
+ char * ebuf(void) const { return buffer.end; }
+ void setb(char * buffer_beg, char * buffer_end, bool do_dispose)
+ { buffer.start = buffer_beg; buffer.end = buffer_end;
+ buffer.do_dispose = do_dispose;}
+ };
+
+} // end of namespace
+#endif
diff --git a/dev/lib/rxio/FFIdentifier.cpp b/dev/lib/rxio/FFIdentifier.cpp
new file mode 100644
index 0000000..87b01c4
--- /dev/null
+++ b/dev/lib/rxio/FFIdentifier.cpp
@@ -0,0 +1,223 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <string>
+#include <iostream>
+#include <iomanip>
+
+#include "FFIdentifier.hpp"
+
+#include "SP3EphemerisStore.hpp"
+#include "RinexEphemerisStore.hpp"
+#include "GPSGeoid.hpp"
+
+#include "RinexObsStream.hpp"
+#include "RinexObsData.hpp"
+
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexMetStream.hpp"
+#include "RinexMetData.hpp"
+
+#include "FICStream.hpp"
+#include "FICData.hpp"
+
+#include "SMODFStream.hpp"
+#include "SMODFData.hpp"
+
+#include "MSCData.hpp"
+#include "MSCStream.hpp"
+
+#include "MDPObsEpoch.hpp"
+#include "MDPPVTSolution.hpp"
+#include "MDPNavSubframe.hpp"
+#include "MDPSelftestStatus.hpp"
+#include "MDPStream.hpp"
+
+namespace gpstk
+{
+
+ int FFIdentifier::debugLevel = 0;
+
+ FFIdentifier::FFIdentifier(const std::string& fn)
+ {
+ const int recCount = 2;
+ fileType=tUnknown;
+
+ while (true)
+ {
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as RINEX obs."<< std::endl;
+ RinexObsStream ros(fn.c_str(), std::ios::in);
+ ros.exceptions(std::fstream::failbit);
+
+ RinexObsHeader temp_roh;
+ ros >> temp_roh;
+ RinexObsData rod;
+ ros >> rod;
+ fileType = tRinexObs;
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e << std::endl;
+ }
+
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as SMODF."<< std::endl;
+ SMODFStream smo(fn.c_str(), std::ios::in);
+ smo.exceptions(std::fstream::failbit);
+
+ SMODFData smodata;
+ smo >> smodata;
+ smo >> smodata;
+ fileType = tSMODF;
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e << std::endl;
+ }
+
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as MDP."<< std::endl;
+ MDPStream mdps(fn.c_str(), std::ios::in);
+ mdps.exceptions(std::fstream::failbit);
+
+ MDPHeader header;
+ mdps >> header;
+ mdps >> header;
+ fileType = tMDP;
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e << std::endl;
+ }
+
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as RINEX nav."<< std::endl;
+ RinexNavStream rns(fn.c_str(), std::ios::in);
+ rns.exceptions(std::ifstream::failbit);
+
+ RinexNavData rnd;
+ RinexNavHeader rnh;
+ rns >> rnh;
+ rns >> rnd;
+ fileType = tRinexNav;
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e << std::endl;
+ }
+
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as FIC nav."<< std::endl;
+ FICStream fs(fn.c_str(), std::ios::in);
+ fs.exceptions(std::ifstream::failbit);
+
+ FICData data;
+ fs >> data;
+ fileType = tFIC;
+
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e <<std:: endl;
+ }
+
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as SP3 ephemeris."<<std:: endl;
+ SP3Stream pefile(fn.c_str(), std::ios::in);
+ pefile.exceptions(std::ifstream::failbit);
+
+ SP3Header header;
+ pefile >> header;
+ SP3Data data;
+ pefile >> data;
+ fileType = tSP3;
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e << std::endl;
+ }
+
+ try
+ {
+ if (debugLevel>2)
+ std::cout << "Trying " << fn << " as MSC."<<std:: endl;
+ MSCStream msc(fn.c_str(), std::ios::in);
+ msc.exceptions(std::ifstream::failbit);
+
+ MSCData mscd;
+ msc >> mscd;
+ fileType = tMSC;
+ break;
+ }
+ catch (FFStreamError& e)
+ {
+ if (debugLevel > 3)
+ std::cout << e << std::endl;
+ }
+
+ break;
+ } // end of while (true)
+ }
+
+}
diff --git a/dev/lib/rxio/FFIdentifier.hpp b/dev/lib/rxio/FFIdentifier.hpp
new file mode 100644
index 0000000..3bdc0f3
--- /dev/null
+++ b/dev/lib/rxio/FFIdentifier.hpp
@@ -0,0 +1,79 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef FFIDENTIFIER_HPP
+#define FFIDENTIFIER_HPP
+
+/** @file This is a class that iteratively tries each of the FormattedFile
+ classes to see what format a file is in.
+*/
+
+#include <string>
+
+namespace gpstk
+{
+ // A function object to figure out what format a file is
+ class FFIdentifier
+ {
+ public:
+ enum FFType
+ {
+ tUnknown,
+ tRinexObs,
+ tRinexNav,
+ tRinexMet,
+ tSMODF,
+ tFIC,
+ tMDP,
+ tSP3,
+ tMSC
+ };
+
+ FFIdentifier()
+ : fileType(tUnknown) {};
+ FFIdentifier(const std::string& fn);
+ FFIdentifier(const FFIdentifier& right)
+ : fileType(right.fileType) {};
+
+ FFType fileType;
+ operator FFType() {return fileType;}
+
+ static int debugLevel;
+ };
+}
+#endif
diff --git a/dev/lib/rxio/Jamfile b/dev/lib/rxio/Jamfile
new file mode 100644
index 0000000..95aff3b
--- /dev/null
+++ b/dev/lib/rxio/Jamfile
@@ -0,0 +1,27 @@
+# $Id$
+
+SubDir TOP lib rxio ;
+
+if $(PREPROCESSING)
+{
+ GPSSetupLibrary rxio : gpstk ;
+}
+else
+{
+ GPSBuildLibrary rxio : AshtechData.cpp AshtechMBEN.cpp AshtechPBEN.cpp
+ AshtechEPB.cpp AshtechALB.cpp
+ EphReader.cpp FDStreamBuff.cpp FFIdentifier.cpp MDPHeader.cpp
+ MDPNavSubframe.cpp MDPObsEpoch.cpp MDPPVTSolution.cpp
+ MDPSelftestStatus.cpp MetReader.cpp ObsReader.cpp ObsUtils.cpp
+ RinexConverters.cpp TCPStreamBuff.cpp
+ ;
+
+ InstallFile $(INCDIR) : AshtechData.hpp AshtechMBEN.hpp AshtechPBEN.hpp
+ AshtechEPB.hpp AshtechALB.hpp
+ AshtechStream.hpp DataStatus.hpp DeviceStream.hpp EphReader.hpp
+ FDStreamBuff.hpp FFIdentifier.hpp MDPHeader.hpp MDPNavSubframe.hpp
+ MDPObsEpoch.hpp MDPPVTSolution.hpp MDPSelftestStatus.hpp MetReader.hpp
+ ObsReader.hpp ObsUtils.hpp RinexConverters.hpp TCPStream.hpp
+ TCPStreamBuff.hpp miscenum.hpp
+ ;
+}
diff --git a/dev/lib/rxio/MDPHeader.cpp b/dev/lib/rxio/MDPHeader.cpp
new file mode 100644
index 0000000..afe014a
--- /dev/null
+++ b/dev/lib/rxio/MDPHeader.cpp
@@ -0,0 +1,405 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "MDPHeader.hpp"
+#include "MDPStream.hpp"
+
+using namespace std;
+
+using gpstk::BinUtils::computeCRC;
+using gpstk::StringUtils::asString;
+using gpstk::StringUtils::d2x;
+using gpstk::StringUtils::int2x;
+using gpstk::BinUtils::netToHost;
+using gpstk::BinUtils::hostToNet;
+using gpstk::BinUtils::encodeVar;
+using gpstk::BinUtils::decodeVar;
+
+
+namespace gpstk
+{
+ const unsigned MDPHeader::myLength = 16;
+ const unsigned MDPHeader::frameWord = 0x9c9c;
+
+ // Set to zero for no debugging output
+ // set to 1 to output text messages about decode/format/range errors
+ // set to 2 to add a hex dump of those messages
+ // set to 3+ to add the tossed bytes whether or not they are bad
+ int MDPHeader::debugLevel = 0;
+
+ // set true to print a hex dump of every message to cout
+ bool MDPHeader::hexDump = false;
+
+ //---------------------------------------------------------------------------
+ string MDPHeader::encode() const
+ throw()
+ {
+ short week=time.GPSfullweek();
+ unsigned long sow100=static_cast<unsigned long>(
+ 0.5 + time.GPSsecond() * 100);
+ if (sow100==60480000)
+ {
+ sow100=0;
+ week++;
+ }
+
+ string str;
+ str += encodeVar<uint16_t>(frameWord);
+ str += encodeVar<uint16_t>(id);
+ str += encodeVar<uint16_t>(length);
+ str += encodeVar<uint16_t>(week);
+ str += encodeVar<uint32_t>(sow100);
+ str += encodeVar<uint16_t>(freshnessCount);
+ str += encodeVar<uint16_t>(0); // placeholder for the CRC
+
+ // No, the CRC is not computed here. That needs to be done after
+ // the body of the message has been encoded.
+ return str;
+ }
+
+
+ //---------------------------------------------------------------------------
+ void MDPHeader::decode(string str)
+ throw()
+ {
+ if (str.length() != myLength)
+ return;
+
+ clearstate(lenbit);
+
+ unsigned short fw = decodeVar<uint16_t>(str);
+ id = decodeVar<uint16_t>(str);
+ length = decodeVar<uint16_t>(str);
+ unsigned short week = decodeVar<uint16_t>(str);
+ unsigned long sow100 = decodeVar<uint32_t>(str);
+ freshnessCount = decodeVar<uint16_t>(str);
+ crc = decodeVar<uint16_t>(str);
+
+ if (fw != frameWord)
+ return;
+
+ const unsigned long MaxSOW=604800;
+ if (sow100 == MaxSOW*100)
+ {
+ week += 1;
+ sow100 = 0;
+ }
+ if (sow100 > MaxSOW*100 || week>5000)
+ return;
+
+ time.setGPSfullweek(week, double(sow100)/100);
+
+ // only clear the these bits if this object isn't a leaf data member
+ if (id==0)
+ clearstate(fmtbit & crcbit);
+ }
+
+
+ //---------------------------------------------------------------------------
+ // Compute and set the CRC in an encoded representation of this
+ // object
+ void MDPHeader::setCRC(string& str) const
+ throw()
+ {
+ // Here we make sure that the length of the string matches
+ // the length in the header.
+ if(str.length() != length)
+ {
+ FFStreamError e("Message Length should be >= " +
+ asString(length) + ". Was: " +
+ asString(str.length()));
+ GPSTK_THROW(e);
+ }
+
+ // clear out the spot for the crc
+ str.replace(14, 2, 2, (char)0);
+
+ // calculate the crc on the string
+ crc = computeCRC((const unsigned char*)str.c_str(),
+ length, gpstk::BinUtils::CRCCCITT);
+
+ // and place that value in the string
+ unsigned short tmp = hostToNet(crc);
+ str.replace(14, 2, (char*)&tmp, 2);
+ } // MDPHeader::encode()
+
+
+ //---------------------------------------------------------------------------
+ // Compute the CRC of the string and set the crcbit appropriately.
+ void MDPHeader::checkCRC(string str)
+ throw()
+ {
+ // zero the CRC in the incoming string
+ str.replace(14, 2, 2, (char)0);
+
+ unsigned short ccrc1 = computeCRC((const unsigned char*)str.c_str(),
+ length, gpstk::BinUtils::CRCCCITT);
+ if (ccrc1 == crc)
+ {
+ clearstate(crcbit);
+ return;
+ }
+
+ // This crc will also be accepted until such time as it is no longer needed
+ uint16_t ccrc2 = computeCRC((const unsigned char*)str.c_str(),
+ length, gpstk::BinUtils::CRC16);
+ if (ccrc2 == crc)
+ {
+ clearstate(crcbit);
+ return;
+ }
+
+ if (debugLevel)
+ cout << "Bad CRC. Received " << hex << crc
+ << " computed " << ccrc1
+ << " and " << ccrc2
+ << ". Message ID=" << dec << id << endl;
+ } // MDPHeader::checkCRC()
+
+
+ //---------------------------------------------------------------------------
+ void MDPHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError)
+ {
+ if (typeid(*this) == typeid(MDPHeader))
+ {
+ gpstk::FFStreamError e("Directly writing an MDPHeader object to an"
+ " FFStream is not supported.");
+ GPSTK_THROW(e);
+ }
+
+ MDPStream& stream = dynamic_cast<MDPStream&>(ffs);
+
+ string body = encode();
+ length = body.length() + MDPHeader::myLength;
+
+ string str = MDPHeader::encode() + body;
+ setCRC(str);
+
+ stream << str;
+
+ if (hexDump)
+ {
+ cout << endl;
+ StringUtils::hexDumpData(cout, str);
+ }
+ } // MDPHeader::reallyPutRecord()
+
+
+ //---------------------------------------------------------------------------
+ void MDPHeader::readHeader(MDPStream& ffs)
+ throw(FFStreamError, EndOfFile)
+ {
+ // first reset the data status
+ setstate(fmtbit | lenbit);
+
+ // If a header has been read in but the corresponding body hasn't been
+ // read, read and toss the body
+ if (ffs.streamState == MDPStream::gotHeader)
+ {
+ unsigned bodyLen = length-myLength;
+ char *trash = new char[bodyLen];
+ if (debugLevel>2)
+ cout << "Reading to toss " << bodyLen << endl;
+ ffs.getData(trash, bodyLen);
+ string body(trash, ffs.gcount());
+ delete trash;
+
+ if (ffs.fail())
+ return;
+
+ ffs.streamState = MDPStream::gotBody;
+ if (hexDump || debugLevel>3)
+ {
+ cout << "Tossing Record Number:" << ffs.recordNumber << endl;
+ StringUtils::hexDumpData(cout, ffs.rawHeader+body);
+ }
+ }
+
+ char buff[myLength];
+ if (ffs.streamState == MDPStream::outOfSync ||
+ ffs.streamState == MDPStream::gotBody)
+ {
+ ffs.streamState = MDPStream::outOfSync;
+
+ if (debugLevel>2)
+ cout << "Reading frame word" << endl;;
+ uint16_t fw=0;
+ for (int i=0; i<128; i++)
+ {
+ fw = ffs.getData<uint16_t>();
+ fw = netToHost(fw);
+ memcpy(buff, &fw, sizeof(fw));
+ if (fw==frameWord)
+ break;
+ }
+
+ if (fw!=frameWord)
+ {
+ FFStreamError err("Failed to find frame word.");
+ GPSTK_THROW(err);
+ }
+ else
+ {
+ if (debugLevel>2)
+ cout << "Reading header" << endl;
+ // then read in the rest of a header
+ ffs.getData(buff+2, myLength-2);
+ if (ffs.fail())
+ return;
+
+ ffs.rawHeader = string(buff, myLength);
+ MDPHeader::decode(ffs.rawHeader);
+ ffs.streamState = MDPStream::gotHeader;
+ ffs.header = *this;
+ if (debugLevel>2)
+ cout << "Got header for id " << id << " body, length=" << length << endl;
+ }
+ }
+ }
+
+
+ //---------------------------------------------------------------------------
+ string MDPHeader::readBody(MDPStream& ffs)
+ throw(FFStreamError, EndOfFile)
+ {
+ // Note that this will generate a bad_cast exception if it doesn't work.
+ const unsigned myLen = length - MDPHeader::myLength;
+
+ // Read in the body of the message
+ char *buff = new char[myLen];
+ if (debugLevel>2)
+ cout << "Reading " << myLen
+ << " bytes for message id " << id
+ << " body." << endl;
+ ffs.getData(buff, myLen);
+ if (ffs.gcount() == myLen)
+ ffs.streamState = MDPStream::gotBody;
+
+ string str(buff, ffs.gcount());
+ delete buff;
+ return str;
+ }
+
+
+ //---------------------------------------------------------------------------
+ void MDPHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError, gpstk::EndOfFile)
+ {
+ // Note that this will generate a bad_cast exception if it doesn't work.
+ MDPStream& stream=dynamic_cast<MDPStream&>(ffs);
+
+ // first, make sure the data is flagged bad.
+ clear(fmtbit | lenbit | crcbit);
+
+ // If this object is a header, just read in a new header
+ if (typeid(*this) == typeid(MDPHeader))
+ {
+ readHeader(stream);
+ return;
+ }
+
+ unsigned reqId = id;
+
+ // Get a new header if the last read was a body
+ if (stream.streamState == MDPStream::gotBody)
+ readHeader(stream);
+ if (!stream)
+ return;
+
+ // Make sure that we have a header for this correct message.
+ while (stream.header.id != reqId) // && stream) // && stream is invalid C++
+ readHeader(stream);
+
+ // Now get the header values from the most recently read header
+ MDPHeader& myHeader = dynamic_cast<MDPHeader&>(*this);
+ myHeader = stream.header;
+
+ // read in the message body
+ string body = readBody(stream);
+
+ if (stream.fail())
+ return;
+
+ setstate(crcbit);
+ checkCRC(stream.rawHeader+body);
+
+ decode(body);
+
+ if (debugLevel && (rdstate() || stream.rdstate()))
+ MDPHeader::dump(cout);
+
+ if (hexDump || (debugLevel>1 && rdstate()))
+ {
+ cout << "Record Number:" << stream.recordNumber << endl;
+ StringUtils::hexDumpData(cout, stream.rawHeader+body);
+ }
+ } // MDPHeader::reallyGetRecord()
+
+
+ //---------------------------------------------------------------------------
+ void MDPHeader::dump(ostream& out) const
+ throw()
+ {
+ ostringstream oss;
+ oss << getName() << " :"
+ << " ID:" << id
+ << " Len:" << length
+ << " Time:" << time.printf("%4Y/%03j/%02H:%02M:%05.2f")
+ << " FC:" << hex << setfill('0') << setw(4) << freshnessCount
+ << " crc:" << setw(4) << crc
+ << " rdstate:" << rdstate();
+
+ if (crcerr())
+ oss << "-crc";
+ if (fmterr())
+ oss << "-fmt";
+ if (lenerr())
+ oss << "-len";
+ if (parerr())
+ oss << "-par";
+
+ out << oss.str() << endl;
+ } // MDPHeader::dump()
+
+} // namespace gpstk
diff --git a/dev/lib/rxio/MDPHeader.hpp b/dev/lib/rxio/MDPHeader.hpp
new file mode 100644
index 0000000..c6db232
--- /dev/null
+++ b/dev/lib/rxio/MDPHeader.hpp
@@ -0,0 +1,142 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef MDPHEADER_HPP
+#define MDPHEADER_HPP
+
+/**
+ * @file MDPHeader.hpp
+ * gpstk::MDPHeader - base cass for MDP formatted data. Includes the MDP header.
+ */
+
+#include <map>
+#include <iostream>
+
+#include <Exception.hpp>
+#include <DayTime.hpp>
+#include <StringUtils.hpp>
+#include <BinUtils.hpp>
+
+#include <FFData.hpp>
+#include <FFStream.hpp>
+#include <DataStatus.hpp>
+
+#include <RinexObsData.hpp>
+
+#if !defined( __SUNPRO_CC ) && !defined( _MSC_VER )
+#include <stdint.h>
+#endif
+
+
+namespace gpstk
+{
+
+ class MDPStream;
+
+ /// This class contains header information for all data types
+ /// transmitted by receiver meeting the MDP specification.
+ class MDPHeader : public FFData, public CRCDataStatus
+ {
+ public:
+ MDPHeader() throw() : id(0) {}
+
+ // Returns whether or not this MDPData is valid.
+ bool isValid() const {return good();}
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /** Encode this object to a string.
+ * @return this object as a string.
+ */
+ virtual std::string encode() const throw();
+
+ /** Decode this object from a string.
+ * @param str the string to read from.
+ * @note Decoded data is *NOT* removed from the string.
+ */
+ virtual void decode(std::string str) throw();
+
+ /// Simple accessors for various static thangs.
+ virtual std::string getName() const {return "hdr";}
+
+ /** Dump some debugging information to the given ostream.
+ * @param out the ostream to write to
+ */
+ void dump(std::ostream& out) const throw();
+
+ /// Compute the CRC over the string and set the CRC in that
+ /// string and in the header.
+ void setCRC(std::string& str) const throw();
+
+ /// Checks the crc of the message and set crc_err if it fails.
+ void checkCRC(std::string str) throw();
+
+ unsigned short id; ///< Identifies this data's type.
+ gpstk::DayTime time; ///< The time associated with this message
+ unsigned short freshnessCount; ///< A message counter
+
+ // These items need to be mutable so they can be set when an object
+ // is sent to a stream.
+ mutable unsigned short length; ///< number of bytes in this message (includes the length of the header)
+ mutable unsigned short crc; ///< the 16 bit CCITT crc covering the header and body of the message
+
+ static const unsigned myLength; ///< = 16
+ static const unsigned frameWord; ///< = 0x9c9c
+ static int debugLevel;
+ static bool hexDump;
+
+ void readHeader(MDPStream& s)
+ throw(FFStreamError, EndOfFile);
+
+ std::string readBody(MDPStream& s)
+ throw(FFStreamError, EndOfFile);
+
+ protected:
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, StringUtils::StringException,
+ FFStreamError);
+
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, StringUtils::StringException,
+ FFStreamError, EndOfFile);
+ }; // class MDPHeader
+
+} // namespace gpstk
+
+#endif // MDPHEADER_HPP
diff --git a/dev/lib/rxio/MDPNavSubframe.cpp b/dev/lib/rxio/MDPNavSubframe.cpp
new file mode 100644
index 0000000..513f084
--- /dev/null
+++ b/dev/lib/rxio/MDPNavSubframe.cpp
@@ -0,0 +1,312 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <sstream>
+#include <BinUtils.hpp>
+#include <StringUtils.hpp>
+#include <gps_constants.hpp>
+#include <EngNav.hpp>
+
+#include "miscenum.hpp"
+#include "MDPNavSubframe.hpp"
+#include "MDPStream.hpp"
+
+using gpstk::StringUtils::asString;
+using gpstk::BinUtils::netToHost;
+using gpstk::BinUtils::hostToNet;
+using gpstk::BinUtils::encodeVar;
+using gpstk::BinUtils::decodeVar;
+using namespace std;
+
+namespace gpstk
+{
+ //--------------------------------------------------------------------------
+ MDPNavSubframe::MDPNavSubframe()
+ throw()
+ : subframe(11), cooked(false), inverted(false)
+ {
+ id = myId;
+ }
+
+
+ //--------------------------------------------------------------------------
+ string MDPNavSubframe::encode() const
+ throw()
+ {
+ string str;
+ str += encodeVar<int8_t>(prn);
+ str += encodeVar<int8_t>(carrier);
+ str += encodeVar<int8_t>(range);
+ str += encodeVar<int8_t>(nav);
+
+ for(int i=1; i<11; i++)
+ str += encodeVar<uint32_t>(subframe[i]);
+
+ return str;
+ } // MDPNavSubframe::encode()
+
+
+ //--------------------------------------------------------------------------
+ void MDPNavSubframe::decode(string str)
+ throw()
+ {
+ if (str.length() != myLength)
+ return;
+
+ clearstate(lenbit);
+
+ prn = static_cast<int> (decodeVar<int8_t>(str));
+ carrier = static_cast<CarrierCode>(decodeVar<int8_t>(str));
+ range = static_cast<RangeCode> (decodeVar<int8_t>(str));
+ nav = static_cast<NavCode> (decodeVar<int8_t>(str));
+
+ for (int i=1; i<11; i++)
+ subframe[i] = decodeVar<uint32_t>(str);
+
+ if (prn > gpstk::MAX_PRN ||
+ carrier >= ccMax ||
+ range >= rcMax ||
+ nav >= ncMax)
+ return;
+
+ clearstate(fmtbit);
+ } // MDPNavSubframe::decode()
+
+
+ //---------------------------------------------------------------------------
+ // This cracks the sow from the handover word
+ unsigned long MDPNavSubframe::getHOWTime() const throw()
+ {
+ uint32_t itemp,iret;
+ itemp = subframe[2];
+ itemp >>= 13;
+ itemp &= 0x0001FFFFL;
+ iret = itemp;
+ iret = iret * 6;
+
+ return iret;
+ }
+
+ //---------------------------------------------------------------------------
+ // This cracks the subframe ID from the handover word
+ unsigned int MDPNavSubframe::getSFID() const throw()
+ {
+ uint32_t itemp;
+ short iret;
+ itemp = subframe[2];
+ itemp >>= 8;
+ itemp &= 0x00000007L;
+ iret = ( short) itemp;
+ return iret;
+ }
+
+ //---------------------------------------------------------------------------
+ // This cracks the SV (page) ID from an almanac subframe
+ unsigned int MDPNavSubframe::getSVID() const throw()
+ {
+ if (getSFID() <4)
+ return 0;
+ else
+ return (subframe[3] >> 22) & 0x3F;
+ }
+
+ /// Get bit 30 from the given subframe word
+ inline uint32_t getd30(uint32_t sfword)
+ {
+ return (sfword & 0x01);
+ }
+
+ /// Get bit 29 from the given subframe word
+ inline uint32_t getd29(uint32_t sfword)
+ {
+ return ((sfword & 0x02) >> 1);
+ }
+
+
+ //--------------------------------------------------------------------------
+ void MDPNavSubframe::cookSubframe() throw()
+ {
+ if (cooked)
+ return;
+
+ uint32_t preamble = subframe[1] >> 22;
+ if (preamble == 0x74)
+ {
+ for (int i = 1; i<=10; i++)
+ subframe[i] = ~subframe[i] & 0x3fffffff;
+ inverted = true;
+ }
+
+ preamble = subframe[1] >> 22;
+ if (preamble != 0x8b)
+ return;
+
+ // note that this routine assumes that D30 from the previous subframe
+ // is zero. That is why we start with the second word in the array
+ for (int i=2; i<=10; i++)
+ if (getd30(subframe[i-1]))
+ subframe[i] = (~subframe[i] & 0x3fffffc0) | (subframe[i] & 0x3f);
+
+ cooked = true;
+ }
+
+ // Print as a string of 1/0
+ string asBin(unsigned v, const unsigned n)
+ {
+ char *s = new char[n+1];
+ for (int i=0; i<n; i++,v=v>>1)
+ if (v&1)
+ s[i] = '1';
+ else
+ s[i] = '0';
+ s[n] = 0;
+ string ns(s);
+ delete[] s;
+ return ns;
+ }
+
+ //--------------------------------------------------------------------------
+ bool MDPNavSubframe::checkParity() const throw()
+ {
+ uint32_t preamble = subframe[1] >> 22;
+ bool needsInversion = (preamble == 0x74);
+ if (debugLevel>1)
+ cout << "preamble:" << hex << preamble << dec
+ << " cooked:" << cooked
+ << " inverted:" << inverted
+ << " needsInversion:" << needsInversion
+ << " parities:"
+ << endl;
+
+ bool goodParity = true;
+ for (int i=1; i<=10; i++)
+ {
+ uint32_t prev = i==1 ? 0 : subframe[i-1];
+ uint32_t curr = subframe[i];
+ if (needsInversion)
+ {
+ if (i>1)
+ prev = ~prev & 0x3fffffff;
+ curr = ~curr & 0x3fffffff;
+ }
+ bool D30 = getd30(prev);
+ unsigned receivedParity = curr & 0x3f;
+ unsigned computedParity = EngNav::computeParity(curr, prev, cooked);
+ if (debugLevel>1)
+ cout << i << ":" << asBin(receivedParity,6)
+ << "-" << asBin(computedParity,6) << " ";
+ if (i==5 && debugLevel>1)
+ cout << endl;
+ if (receivedParity != computedParity)
+ goodParity = false;
+
+ // This seems to be required for pre-cooked bits but I don't understand
+ // why...
+ if (i == 1 && receivedParity == (~computedParity & 0x3f))
+ goodParity = true;
+ }
+ if (debugLevel>1)
+ cout << endl;
+ return goodParity;
+ }
+
+
+ //--------------------------------------------------------------------------
+ void MDPNavSubframe::dump(ostream& out) const
+ throw()
+ {
+ ostringstream oss;
+ MDPHeader::dump(oss);
+
+ short page = getSFID() > 3 ? ((getHOWTime()-6) / 30) % 25 + 1 : 0;
+
+ oss << getName() << 0 <<":"
+ << " PRN:" << prn
+ << " CC:" << static_cast<int>(carrier)
+ << " RC:" << static_cast<int>(range)
+ << " NC:" << static_cast<int>(nav)
+ << " SF:" << getSFID()
+ << " PG:" << page
+ << " I:" << inverted
+ << " C:" << cooked
+ << endl;
+
+ oss << setfill('0') << hex;
+ for(int i = 1; i < subframe.size(); i++)
+ {
+ if ((i % 5) == 1)
+ oss << getName() << i << ": ";
+ oss << setw(8) << uppercase << subframe[i] << " ";
+ if ((i % 5) == 0)
+ oss << endl;
+ }
+ out << oss.str() << flush;
+ }
+
+
+ //--------------------------------------------------------------------------
+ void dump(std::ostream& out, const EphemerisPages& pages) throw()
+ {
+ for (int sf=1; sf<=3; sf++)
+ {
+ EphemerisPages::const_iterator i = pages.find(sf);
+ if (i == pages.end())
+ out << "Missing subframe " << sf << endl;
+ else
+ i->second.dump(out);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ void dump(std::ostream& out, const AlmanacPages& pages) throw()
+ {
+ for (int p=1; p<=25; p++)
+ {
+ for (int sf=4; sf<=5; sf++)
+ {
+ AlmanacPages::const_iterator i = pages.find(SubframePage(sf, p));
+ if (i == pages.end())
+ out << "Missing subframe " << sf << " page " << p << endl;
+ else
+ i->second.dump(out);
+
+ }
+ }
+ }
+} // namespace gpstk
diff --git a/dev/lib/rxio/MDPNavSubframe.hpp b/dev/lib/rxio/MDPNavSubframe.hpp
new file mode 100644
index 0000000..e219aaf
--- /dev/null
+++ b/dev/lib/rxio/MDPNavSubframe.hpp
@@ -0,0 +1,135 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef MDPNAVSUBFRAME_HPP
+#define MDPNAVSUBFRAME_HPP
+
+#include <vector>
+
+#include "miscenum.hpp"
+#include "MDPHeader.hpp"
+
+namespace gpstk
+{
+ /// This class represents a Navigation Subframe Message.
+ class MDPNavSubframe : public MDPHeader
+ {
+ public:
+ MDPNavSubframe() throw();
+
+ /** Encode this object to a string.
+ * @return this object as a string.
+ */
+ virtual std::string encode() const throw();
+
+ /** Decode this object from a string.
+ * @param str the string to read from.
+ * @note This is a non-destructive decode.
+ */
+ virtual void decode(std::string str)
+ throw();
+
+ // Return the seconds of week computed from the HOW
+ unsigned long getHOWTime() const throw();
+
+ // extract the SFID from the HOW
+ unsigned int getSFID() const throw();
+
+ // extract the SVID from word 3 of an almanac page
+ unsigned int getSVID() const throw();
+
+ void fillArray(long out[10]) const
+ { for(int i=1; i<=10; i++) out[i-1]=subframe[i];};
+
+ void fillArray(uint32_t out[10]) const
+ { for(int i=1; i<=10; i++) out[i-1]=subframe[i];};
+
+ // This is an experiment. It inverts words based upon the D30
+ // of the previous word. Don't do this unless there is some reason
+ // to believe that the D30 bits are accurate. Like the subframe
+ // has passed its parity check.
+ void cookSubframe() throw();
+
+ /** Check the parity of the subframe.
+ * @return true if the parity check passes
+ **/
+ bool checkParity() const throw();
+
+ virtual std::string getName() const {return "nav";}
+
+ /** Dump some debugging information to the given ostream.
+ * @param out the ostream to write to (default: cout)
+ * @param level the level of debugging to provide (default: 0)
+ */
+ void dump(std::ostream& out) const throw();
+
+ int prn; ///< The SV's PRN.
+ CarrierCode carrier; ///< This NavSubframe's carrier frequency code.
+ RangeCode range; ///< This NavSubframe's range code.
+ NavCode nav; ///< This NavSubframe's nav code.
+
+ /** The Navigation Subframe. 10 4-byte words. There are 11
+ * elements to facilitate access to elements 1-10. */
+ std::vector<uint32_t> subframe;
+
+
+ // These are not actually encoded in the message but are used
+ // in the parity checking
+ bool cooked; ///< true if the bits have been set upright
+ bool inverted; ///< true when entire subframe has been inverted
+
+ static const unsigned myLength = 44;
+ static const unsigned myId = 310;
+
+ }; // class MDPNavSubframe
+
+ // These used to group together a set of nav subframes, indexed by the
+ // subframe number. It is used in building up a complete a complete
+ // ephemeris from an SV.
+ typedef std::map<short, MDPNavSubframe> EphemerisPages;
+ void dump(std::ostream& out, const EphemerisPages& pages) throw();
+
+ // First element is the page number, as determined from the HOW TOW
+ // i.e. page = tow % 750
+ typedef std::pair<short, short> SubframePage;
+ typedef std::map<SubframePage, MDPNavSubframe> AlmanacPages;
+ void dump(std::ostream& out, const AlmanacPages& pages) throw();
+
+} // namespace gpstk
+
+#endif // MDPNAVSUBFRAME_HPP
diff --git a/dev/lib/rxio/MDPObsEpoch.cpp b/dev/lib/rxio/MDPObsEpoch.cpp
new file mode 100644
index 0000000..eda05e9
--- /dev/null
+++ b/dev/lib/rxio/MDPObsEpoch.cpp
@@ -0,0 +1,320 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <sstream>
+#include <StringUtils.hpp>
+#include <StringUtils.hpp>
+#include <BinUtils.hpp>
+#include <gps_constants.hpp>
+
+#include "MDPObsEpoch.hpp"
+#include "MDPStream.hpp"
+
+using gpstk::StringUtils::asString;
+using gpstk::BinUtils::hostToNet;
+using gpstk::BinUtils::netToHost;
+using gpstk::BinUtils::encodeVar;
+using gpstk::BinUtils::decodeVar;
+using namespace std;
+
+namespace gpstk
+{
+ //---------------------------------------------------------------------------
+ MDPObsEpoch::MDPObsEpoch()
+ throw()
+ {
+ id = myId;
+ } // MDPObsEpoch::MDPObsEpoch()
+
+
+ //---------------------------------------------------------------------------
+ string MDPObsEpoch::encode() const
+ throw()
+ {
+ string str;
+ unsigned short ustemp;
+ unsigned char svsobs = (numSVs & 0x0f);
+ svsobs <<= 4;
+ svsobs |= ((unsigned char)obs.size() & 0x0f);
+
+ str += encodeVar( static_cast<uint8_t>(svsobs));
+ str += encodeVar( static_cast<uint8_t>(channel));
+ str += encodeVar( static_cast<uint8_t>(prn));
+ str += encodeVar( static_cast<uint8_t>(status & 0x3f));
+ str += encodeVar( static_cast<uint16_t>(elevation * 100));
+ str += encodeVar( static_cast<uint16_t>(azimuth * 100));
+
+ for(ObsMap::const_iterator oli = obs.begin();
+ oli != obs.end(); oli++)
+ {
+ MDPObsEpoch::Observation mdpobs(oli->second);
+ str += mdpobs.encode();
+ }
+ return str;
+ } // MDPObsEpoch::encode()
+
+
+ //---------------------------------------------------------------------------
+ void MDPObsEpoch::decode(string str)
+ throw()
+ {
+ if (str.length() < myLength)
+ return;
+
+ clearstate(lenbit);
+
+ unsigned obsSVs;
+ obsSVs = decodeVar<uint8_t>(str);
+ channel = decodeVar<uint8_t>(str);
+ prn = decodeVar<uint8_t>(str);
+ status = decodeVar<uint8_t>(str);
+ elevation = decodeVar<uint16_t>(str) * 0.01 ;
+ azimuth = decodeVar<uint16_t>(str) * 0.01;
+
+ numSVs = obsSVs >> 4;
+ numSVs &= 0x0f;
+ obsSVs &= 0x0f;
+
+ bool obsError=false;
+
+ obs.erase(obs.begin(), obs.end());
+ for(int j=0; j<obsSVs; j++)
+ {
+ if (str.length() < myObsLength)
+ {
+ clear(lenbit);
+ if (debugLevel)
+ cout << "MDP Obs block decode requires at least " << myObsLength
+ << " bytes. Received " << str.length() << " bytes" << endl;
+ return;
+ }
+ MDPObsEpoch::Observation o;
+ o.decode(str);
+
+ if (o.carrier >= ccMax || o.range >= rcMax || o.snr > 65 || o.bw > 100)
+ obsError=true;
+
+ if (obsError && debugLevel)
+ {
+ if (o.carrier >= ccMax)
+ cout << "Carrier code out of range: " << o.carrier << endl;
+ if (o.range >= rcMax)
+ cout << "Range code out of range: " << o.range << endl;
+ if (o.snr > 65)
+ cout << "SNR out of range: " << o.snr << endl;
+ if (o.bw > 100)
+ cout << "BW out of range: " << o.snr << endl;
+ }
+
+ if (o.carrier < ccMax && o.range < rcMax)
+ {
+ ObsKey key(o.carrier, o.range);
+ obs[key] = o;
+ }
+ }
+
+ if (prn > gpstk::MAX_PRN || elevation>90 || azimuth > 360 || obsError)
+ {
+ if (debugLevel)
+ {
+ if (prn > gpstk::MAX_PRN)
+ cout << "PRN out of range: " << prn << endl;
+ if (elevation > 90)
+ cout << "Elevation out of range: " << elevation << endl;
+ if (azimuth > 360)
+ cout << "Azimuth out of range: " << azimuth << endl;
+ }
+ return;
+ }
+
+ clearstate(fmtbit);
+ } // MDPObsEpoch::decode()
+
+
+ //---------------------------------------------------------------------------
+ std::string MDPObsEpoch::Observation::encode() const
+ throw()
+ {
+ string str;
+
+ uint8_t ccrc = carrier & 0x0f;
+ ccrc <<= 4;
+ ccrc |= range & 0x0f;
+
+ str += encodeVar( (uint8_t) ccrc);
+ str += encodeVar( (uint8_t) bw);
+ str += encodeVar( (uint16_t) std::max(static_cast<int>(snr*100),0));
+ str += encodeVar( (uint32_t) lockCount);
+ str += encodeVar( (double) pseudorange);
+ str += encodeVar( (double) phase);
+ str += encodeVar( (double) doppler);
+ return str;
+ } // MDPObservation::encode()
+
+
+ //---------------------------------------------------------------------------
+ void MDPObsEpoch::Observation::decode(std::string& str)
+ throw()
+ {
+ unsigned char ccrc;
+
+ ccrc = decodeVar<uint8_t>(str);
+ bw = decodeVar<uint8_t>(str);
+ snr = decodeVar<uint16_t>(str) * 0.01;
+ lockCount = decodeVar<uint32_t>(str);
+ pseudorange = decodeVar<double>(str);
+ phase = decodeVar<double>(str);
+ doppler = decodeVar<double>(str);
+
+ range = RangeCode(ccrc & 0x0f);
+ ccrc >>= 4;
+ carrier = CarrierCode(ccrc & 0x0f);
+ } // MDPObservation::decode()
+
+
+ //---------------------------------------------------------------------------
+ bool MDPObsEpoch::haveObservation(
+ const CarrierCode cc,
+ const RangeCode rc) const
+ {
+ return (obs.find(ObsKey(cc,rc)) != obs.end());
+ }
+
+
+ //---------------------------------------------------------------------------
+ MDPObsEpoch::Observation MDPObsEpoch::getObservation(
+ const CarrierCode cc,
+ const RangeCode rc) const
+ {
+ if (haveObservation(cc, rc))
+ return obs.find(ObsKey(cc,rc))->second;
+ else
+ return Observation();
+ }
+
+
+ //---------------------------------------------------------------------------
+ FFStream& operator>>(FFStream& s, MDPEpoch& oe)
+ {
+ MDPStream& mdps = dynamic_cast<MDPStream&>(s);
+ MDPObsEpoch me;
+ DayTime t;
+ int i=0;
+ for (int i=0; i<10000 && mdps >> me; i++)
+ {
+ i++;
+ if (me.time != t)
+ {
+ if (oe.size() > 0 && MDPHeader::debugLevel>2)
+ cout << "Tossing partial epoch at " << me.time
+ << ". Expected " << me.numSVs
+ << " SVs but received only " << oe.size()
+ << endl;
+ oe.clear();
+ }
+ oe[me.prn] = me;
+ t = me.time;
+
+ if (me.numSVs == oe.size())
+ break;
+ }
+ if (i>1000)
+ cout << "didn't find an obs epoch after 10000 reads." << endl;
+ return s;
+ }
+
+
+ //---------------------------------------------------------------------------
+ FFStream& operator<<(FFStream& s, const MDPEpoch& oe)
+ {
+ MDPStream& mdps = dynamic_cast<MDPStream&>(s);
+ MDPEpoch::const_iterator i;
+ for (i=oe.begin(); i != oe.end(); i++)
+ mdps << i->second;
+ return s;
+ }
+
+
+ //---------------------------------------------------------------------------
+ void MDPObsEpoch::dump(ostream& out) const
+ throw()
+ {
+ ostringstream oss;
+
+ MDPHeader::dump(oss);
+
+ oss << getName() << "0:"
+ << " #SV:" << (int)numSVs
+ << " Ch:" << (int)channel
+ << " PRN:" << (int)prn
+ << " El:" << fixed << setprecision(2) <<elevation
+ << " Az:" << azimuth
+ << " H:0x" << hex << (int)status
+ << dec << endl;
+
+ int j=1;
+ for (ObsMap::const_iterator i = obs.begin(); i != obs.end(); i++)
+ {
+ oss << getName() << j++ << ":";
+ i->second.dump(oss);
+ oss << endl;
+ }
+
+ out << oss.str();
+ } // MDPObsEpoch::dump()
+
+
+ //---------------------------------------------------------------------------
+ void MDPObsEpoch::Observation::dump(std::ostream& out) const
+ throw()
+ {
+ using gpstk::StringUtils::asString;
+
+ ostringstream oss;
+ oss << " " << asString(carrier)
+ << " " << asString(range)
+ << " BW:" << bw
+ << " SNR:" << snr
+ << " LC:" << lockCount
+ << " PR:" << asString(pseudorange, 3)
+ << " PH:" << asString(phase, 3)
+ << " Dop:" << asString(doppler, 3);
+ out << oss.str();
+ } // MDPObsEpoch::Observation::dump()
+
+}
diff --git a/dev/lib/rxio/MDPObsEpoch.hpp b/dev/lib/rxio/MDPObsEpoch.hpp
new file mode 100644
index 0000000..51827bd
--- /dev/null
+++ b/dev/lib/rxio/MDPObsEpoch.hpp
@@ -0,0 +1,125 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef MDPOBSEPOCH_HPP
+#define MDPOBSEPOCH_HPP
+
+#include <map>
+
+#include "MDPHeader.hpp"
+#include "miscenum.hpp"
+
+namespace gpstk
+{
+ /// This class represents a set of observations from a single SV at a
+ /// single point in time
+ class MDPObsEpoch : public MDPHeader
+ {
+ public:
+ // A helper class to hold a single code/carrier block of observations
+ class Observation
+ {
+ public:
+ void dump(std::ostream& out) const throw();
+ std::string encode() const throw();
+
+ // Note that this is a destructive decode, unlike the others in this set
+ // of classes.
+ void decode(std::string& str) throw();
+
+ CarrierCode carrier; ///< This observation's carrier frequency code.
+ RangeCode range; ///< This observation's range code.
+ unsigned bw; ///< The Effective Tracking Loop Bandwidth. (Hz)
+ double snr; ///< The Signal-to-Noise Ratio. (dB-Hz)
+ unsigned long lockCount; ///< The number of consecutive observations (0 implies a cycle slip or beginning of track).
+ double pseudorange; ///< Pseudorange Measurement (meters)
+ double phase; ///< Phase Measurement (cycles)
+ double doppler; ///< Doppler Measurement (Hz, positive for approaching satellites)
+ };
+
+ MDPObsEpoch() throw();
+
+ /** Encode this object to a string.
+ * @return this object as a string.
+ */
+ virtual std::string encode() const
+ throw();
+
+ /** Decode this object from a string.
+ * @param str the string to read from.
+ * @note This is a non-destructive decode.
+ */
+ virtual void decode(std::string str)
+ throw();
+
+ virtual std::string getName() const {return "obs";};
+
+ /** Dump some debugging information to the given ostream.
+ * @param out the ostream to write to
+ */
+ void dump(std::ostream& out) const throw();
+
+ typedef std::pair<CarrierCode, RangeCode> ObsKey;
+ typedef std::map<ObsKey, Observation> ObsMap;
+
+ unsigned numSVs; ///< The number of SVs in track for this epoch.
+ unsigned channel; ///< The channel this SV is tracked on.
+ unsigned prn; ///< The SV's PRN.
+ unsigned status; ///< SV Health status.
+ double elevation; ///< The SV's elevation in degrees.
+ double azimuth; ///< The SV's azimuth in degrees.
+
+ ObsMap obs; ///< The list of Observations made at this Epoch.
+ bool haveObservation(const CarrierCode cc, const RangeCode rc) const;
+ Observation getObservation(const CarrierCode cc, const RangeCode rc) const;
+
+ static const unsigned myId = 300;
+ static const unsigned myLength = 8; // This is just the pre obs_block stuff
+ static const unsigned myObsLength=32; // This is the size of a single obs_block
+
+ }; // class MDPObsEpoch
+
+ // The key is intended to the PRN of the MDPObsEpoch
+ typedef std::map<int, gpstk::MDPObsEpoch> MDPEpoch;
+
+ FFStream& operator>>(FFStream& s, MDPEpoch& oe);
+ FFStream& operator<<(FFStream& s, const MDPEpoch& oe);
+
+} // namespace gpstk
+
+#endif //MDPOBSEPOCH_HPP
diff --git a/dev/lib/rxio/MDPPVTSolution.cpp b/dev/lib/rxio/MDPPVTSolution.cpp
new file mode 100644
index 0000000..420317e
--- /dev/null
+++ b/dev/lib/rxio/MDPPVTSolution.cpp
@@ -0,0 +1,152 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <sstream>
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "MDPPVTSolution.hpp"
+#include "MDPStream.hpp"
+
+using gpstk::StringUtils::asString;
+using gpstk::BinUtils::hostToNet;
+using gpstk::BinUtils::netToHost;
+using gpstk::BinUtils::encodeVar;
+using gpstk::BinUtils::decodeVar;
+using namespace std;
+
+namespace gpstk
+{
+ //---------------------------------------------------------------------------
+ MDPPVTSolution::MDPPVTSolution()
+ throw()
+ {
+ id = myId;
+ timep = gpstk::DayTime::BEGINNING_OF_TIME;
+ x[0] = x[1] = x[2] = 0;
+ v[0] = v[1] = v[2] = 0;
+ dtime = ddtime = 0;
+ numSVs = fom = pvtMode = corrections = 0;
+ } // MDPPVTSolution::MDPPVTSolution()
+
+
+ //---------------------------------------------------------------------------
+ string MDPPVTSolution::encode() const
+ throw()
+ {
+ string str;
+ str += encodeVar<double>(x[0]);
+ str += encodeVar<double>(x[1]);
+ str += encodeVar<double>(x[2]);
+ str += encodeVar<float>(v[0]);
+ str += encodeVar<float>(v[1]);
+ str += encodeVar<float>(v[2]);
+ str += encodeVar<uint8_t>(numSVs);
+ str += encodeVar<int8_t>(fom);
+ str += encodeVar<uint16_t>(time.GPSfullweek());
+ str += encodeVar<double>(time.GPSsecond());
+ str += encodeVar<double>(dtime);
+ str += encodeVar<double>(ddtime);
+ str += encodeVar<uint8_t>(pvtMode);
+ str += encodeVar<uint8_t>(corrections);
+ return str;
+ } // MDPPVTSolution::encode()
+
+
+ //---------------------------------------------------------------------------
+ void MDPPVTSolution::decode(string str)
+ throw()
+ {
+ if (str.length() != myLength)
+ return;
+
+ clearstate(lenbit);
+
+ x[0] = decodeVar<double>(str);
+ x[1] = decodeVar<double>(str);
+ x[2] = decodeVar<double>(str);
+ v[0] = decodeVar<float>(str);
+ v[1] = decodeVar<float>(str);
+ v[2] = decodeVar<float>(str);
+ numSVs = decodeVar<uint8_t>(str);
+ fom = decodeVar<int8_t>(str);
+ int week = decodeVar<uint16_t>(str);
+ double sow = decodeVar<double>(str);
+ dtime = decodeVar<double>(str);
+ ddtime = decodeVar<double>(str);
+ pvtMode = decodeVar<uint8_t>(str);
+ corrections = decodeVar<uint8_t>(str);
+
+ if (week < 0 || week > 5000 || sow < 0 || sow > 604800)
+ return;
+
+ timep.setGPS(week, sow);
+
+ clearstate(fmtbit);
+ } // MDPPVTSolution::decode()
+
+
+ //---------------------------------------------------------------------------
+ void MDPPVTSolution::dump(ostream& out) const
+ throw()
+ {
+ ostringstream oss;
+ using gpstk::StringUtils::asString;
+ using gpstk::StringUtils::leftJustify;
+
+ MDPHeader::dump(oss);
+ oss << getName() << "1:"
+ << " #SV:" << (int)numSVs
+ << " FoM:" << (int)fom
+ << " ClkOff:" << asString(dtime*1e9, 3)
+ << " ClkDft:" << asString(ddtime*86400*1e6, 3)
+ << " PVTMode:" << (int)pvtMode
+ << " Corr:" << hex << (int)corrections << dec
+ << endl
+ << getName() << "2:"
+ << " X:" << asString(x[0], 3)
+ << " Y:" << asString(x[1], 3)
+ << " Z:" << asString(x[2], 3)
+ << " Vx:" << asString(v[0], 3)
+ << " Vy:" << asString(v[1], 3)
+ << " Vz:" << asString(v[2], 3)
+ << endl;
+ out << oss.str() << flush;
+ } // MDPPVTSolution::dump()
+}
diff --git a/dev/lib/rxio/MDPPVTSolution.hpp b/dev/lib/rxio/MDPPVTSolution.hpp
new file mode 100644
index 0000000..11bf69d
--- /dev/null
+++ b/dev/lib/rxio/MDPPVTSolution.hpp
@@ -0,0 +1,91 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef MDPPVTSOLUTION_HPP
+#define MDPPVTSOLUTION_HPP
+
+#include "Xvt.hpp"
+
+#include "MDPHeader.hpp"
+
+namespace gpstk
+{
+ /// This class represents a Position-Velocity-Time Solution.
+ class MDPPVTSolution : public MDPHeader
+ {
+ public:
+ MDPPVTSolution() throw();
+
+ /** Encode this object to a string.
+ * @return this object as a string.
+ */
+ virtual std::string encode() const
+ throw();
+
+ /** Decode this object from a string.
+ * @param str the string to read from.
+ * @note This is a non-destructive decode.
+ */
+ virtual void decode(std::string str)
+ throw();
+
+ virtual std::string getName() const {return "pvt";};
+
+ /** Dump some debugging information to the given ostream.
+ * @param out the ostream to write to
+ */
+ void dump(std::ostream& out) const throw();
+
+ gpstk::ECEF x; ///< receiver position (x,y,z), earth fixed, in meters
+ gpstk::Triple v; ///< receiver velocity, Earth-fixed, including rotation, in meters/sec
+ double dtime; ///< receiver clock offset from GPS in sec
+ double ddtime; ///< receiver clock drift rate in sec/sec
+ gpstk::DayTime timep; ///< PVT time: dtime = timep - time.
+ unsigned char numSVs; ///< Number of SVs in track.
+ unsigned char fom; ///< Figure of Merit (receiver dependent).
+ unsigned char pvtMode; ///< Type of PVT solution (receiver dependent).
+ unsigned char corrections; ///< Corrections (also receiver dependent).
+
+ static const unsigned myLength = 66;
+ static const unsigned myId = 301;
+
+ }; // class MDPPVTSolution
+
+} // namespace gpstk
+
+#endif //MDPPVTSOLUTION_HPP
diff --git a/dev/lib/rxio/MDPSelftestStatus.cpp b/dev/lib/rxio/MDPSelftestStatus.cpp
new file mode 100644
index 0000000..03eaac5
--- /dev/null
+++ b/dev/lib/rxio/MDPSelftestStatus.cpp
@@ -0,0 +1,136 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <sstream>
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+
+#include "MDPSelftestStatus.hpp"
+#include "MDPStream.hpp"
+
+using gpstk::StringUtils::asString;
+using gpstk::BinUtils::encodeVar;
+using gpstk::BinUtils::decodeVar;
+using namespace std;
+
+namespace gpstk
+{
+ //---------------------------------------------------------------------------
+ MDPSelftestStatus::MDPSelftestStatus()
+ throw() :
+ selfTestTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ firstPVTTime(gpstk::DayTime::BEGINNING_OF_TIME),
+ antennaTemp(0), receiverTemp(0), status(0xffffffff),
+ cpuLoad(0), extFreqStatus(0)
+ {
+ id = myId;
+ } // MDPSelftestStatus::MDPSelftestStatus()
+
+
+ //---------------------------------------------------------------------------
+ string MDPSelftestStatus::encode() const
+ throw()
+ {
+ string str;
+ str += encodeVar( (float) antennaTemp);
+ str += encodeVar( (float) receiverTemp);
+ str += encodeVar( (uint32_t) status);
+ str += encodeVar( (float) cpuLoad);
+ str += encodeVar( (uint32_t) 100*selfTestTime.GPSsecond());
+ str += encodeVar( (uint16_t) selfTestTime.GPSfullweek());
+ str += encodeVar( (uint16_t) firstPVTTime.GPSfullweek());
+ str += encodeVar( (uint32_t) 100*firstPVTTime.GPSsecond());
+ str += encodeVar( (uint16_t) extFreqStatus);
+ return str;
+ } // MDPSelftestStatus::encode()
+
+
+ //---------------------------------------------------------------------------
+ void MDPSelftestStatus::decode(string str)
+ throw()
+ {
+ if (str.length() != myLength)
+ return;
+
+ clearstate(lenbit);
+
+
+ long sow100;
+ int week;
+
+ antennaTemp = decodeVar<float>(str);
+ receiverTemp = decodeVar<float>(str);
+ status = decodeVar<uint32_t>(str);
+ cpuLoad = decodeVar<float>(str);
+ sow100 = decodeVar<uint32_t>(str);
+ week = decodeVar<uint16_t>(str);
+ selfTestTime.setGPSfullweek(week, double(sow100)*0.01);
+ week = decodeVar<uint16_t>(str);
+ sow100 = decodeVar<uint32_t>(str);
+ firstPVTTime.setGPSfullweek(week, double(sow100)*0.01);
+ extFreqStatus = decodeVar<uint16_t>(str);
+ saasmStatusWord = decodeVar<uint16_t>(str);
+
+ clearstate(fmtbit);
+ } // MDPSelftestStatus::decode()
+
+
+ //---------------------------------------------------------------------------
+ void MDPSelftestStatus::dump(ostream& out) const
+ throw()
+ {
+ ostringstream oss;
+ using gpstk::StringUtils::asString;
+ using gpstk::StringUtils::leftJustify;
+
+ MDPHeader::dump(oss);
+ oss << getName() << "1:"
+ << " Tst:" << selfTestTime.printf("%4F/%9.2g")
+ << " Tpvt:" << firstPVTTime.printf("%4F/%9.2g")
+ << " Ant. Temp:" << antennaTemp
+ << " Rx. Temp:" << receiverTemp
+ << " status:" << hex << status << dec
+ << " cpuLoad:" << cpuLoad
+ << " extFreq:" << hex << extFreqStatus << dec
+ << " ssw:" << hex << saasmStatusWord << dec
+ << endl;
+ out << oss.str() << flush;
+ } // MDPSelftestStatus::dump()
+
+}
diff --git a/dev/lib/rxio/MDPSelftestStatus.hpp b/dev/lib/rxio/MDPSelftestStatus.hpp
new file mode 100644
index 0000000..fc5db06
--- /dev/null
+++ b/dev/lib/rxio/MDPSelftestStatus.hpp
@@ -0,0 +1,90 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef MDPSELFTESTSTATUS_HPP
+#define MDPSELFTESTSTATUS_HPP
+
+#include "Xvt.hpp"
+
+#include "MDPHeader.hpp"
+
+namespace gpstk
+{
+ /// This class represents a runtime selftest status message
+ class MDPSelftestStatus : public MDPHeader
+ {
+ public:
+ MDPSelftestStatus() throw();
+
+ /** Encode this object to a string.
+ * @return this object as a string.
+ */
+ virtual std::string encode() const
+ throw();
+
+ /** Decode this object from a string.
+ * @param str the string to read from.
+ * @note This is a non-destructive decode.
+ */
+ virtual void decode(std::string str)
+ throw();
+
+ virtual std::string getName() const {return "sts";};
+
+ /** Dump some debugging information to the given ostream.
+ * @param out the ostream to write to
+ */
+ void dump(std::ostream& out) const throw();
+
+ float antennaTemp;
+ float receiverTemp;
+ long status;
+ float cpuLoad;
+ gpstk::DayTime selfTestTime; ///< SelfTest SOW & week
+ gpstk::DayTime firstPVTTime; ///< First PVT SOW & week
+ short extFreqStatus;
+ short saasmStatusWord;
+
+ static const unsigned myLength = 32;
+ static const unsigned myId = 400;
+
+ }; // class MDPSelftestStatus
+
+} // namespace gpstk
+
+#endif //MDPSELFTESTSTATUS_HPP
diff --git a/dev/lib/rxio/MDPStream.hpp b/dev/lib/rxio/MDPStream.hpp
new file mode 100644
index 0000000..f662769
--- /dev/null
+++ b/dev/lib/rxio/MDPStream.hpp
@@ -0,0 +1,93 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef MDPSTREAM_HPP
+#define MDPSTREAM_HPP
+
+/**
+ * @file MDPStream.hpp
+ * gpstk::MDPStream - binary MDP file stream container.
+ */
+
+#include "FFBinaryStream.hpp"
+#include "MDPHeader.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is a stream used to decode data in the MDP format.
+ */
+ class MDPStream : public FFBinaryStream
+ {
+ public:
+ MDPStream() : streamState(outOfSync)
+ {}
+
+ /**
+ * @param fn the name of the MDP file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ MDPStream(const char* fn,
+ std::ios::openmode mode = std::ios::in)
+ : FFBinaryStream(fn, mode),
+ streamState(outOfSync)
+ {}
+
+ /// destructor per the coding standards
+ virtual ~MDPStream()
+ {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode = std::ios::in)
+ {
+ FFBinaryStream::open(fn, mode);
+ streamState = outOfSync;
+ }
+
+ /// Used to track what has been retrieved from the stream
+ enum {outOfSync, gotHeader, gotBody} streamState;
+
+ /// A copy of the most recent header read
+ MDPHeader header;
+
+ /// The raw bytes of the above header
+ std::string rawHeader;
+ }; // class MDPStream
+} // namespace gpstk
+
+#endif
diff --git a/dev/lib/rxio/Makefile.am b/dev/lib/rxio/Makefile.am
new file mode 100644
index 0000000..cfc2028
--- /dev/null
+++ b/dev/lib/rxio/Makefile.am
@@ -0,0 +1,17 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../../src
+lib_LTLIBRARIES = librxio.la
+librxio_la_SOURCES = AshtechData.cpp AshtechMBEN.cpp AshtechPBEN.cpp \
+AshtechEPB.cpp AshtechALB.cpp EphReader.cpp FDStreamBuff.cpp FFIdentifier.cpp \
+MDPHeader.cpp MDPNavSubframe.cpp MDPObsEpoch.cpp MDPPVTSolution.cpp \
+MDPSelftestStatus.cpp MetReader.cpp ObsReader.cpp ObsUtils.cpp \
+RinexConverters.cpp TCPStreamBuff.cpp
+
+incldir = $(includedir)/gpstk
+incl_HEADERS = AshtechData.hpp AshtechMBEN.hpp AshtechPBEN.hpp \
+AshtechStream.hpp DataStatus.hpp DeviceStream.hpp EphReader.hpp \
+FDStreamBuff.hpp FFIdentifier.hpp MDPHeader.hpp MDPNavSubframe.hpp \
+MDPObsEpoch.hpp MDPPVTSolution.hpp MDPSelftestStatus.hpp MetReader.hpp \
+ObsReader.hpp ObsUtils.hpp RinexConverters.hpp TCPStream.hpp \
+TCPStreamBuff.hpp miscenum.hpp
+
diff --git a/dev/lib/rxio/MetReader.cpp b/dev/lib/rxio/MetReader.cpp
new file mode 100644
index 0000000..27bc1b3
--- /dev/null
+++ b/dev/lib/rxio/MetReader.cpp
@@ -0,0 +1,73 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <map>
+
+#include "MetReader.hpp"
+#include "RinexMetStream.hpp"
+#include "RinexMetData.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+
+// ---------------------------------------------------------------------
+// ---------------------------------------------------------------------
+void MetReader::read(const std::string& fn)
+{
+ RinexMetStream rms;
+ try { rms.open(fn.c_str(), ios::in); }
+ catch (...) {
+ cerr << "Error reading weather data from file " << fn << endl;
+ exit(-1);
+ }
+
+ RinexMetData rmd;
+ while (rms >> rmd)
+ {
+ WxObservation wob(
+ rmd.time,
+ rmd.data[RinexMetHeader::TD],
+ rmd.data[RinexMetHeader::PR],
+ rmd.data[RinexMetHeader::HR]);
+ wx.insertObservation(wob);
+ }
+} // end of read()
diff --git a/dev/lib/rxio/MetReader.hpp b/dev/lib/rxio/MetReader.hpp
new file mode 100644
index 0000000..e7e2f5d
--- /dev/null
+++ b/dev/lib/rxio/MetReader.hpp
@@ -0,0 +1,68 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef METREADER_HPP
+#define METREADER_HPP
+
+#include <string>
+
+#include "CommandOption.hpp"
+#include "WxObsMap.hpp"
+
+class MetReader
+{
+public:
+ MetReader()
+ : verboseLevel(0)
+ {};
+
+ MetReader(const std::string& fn)
+ : verboseLevel(0)
+ { read(fn); };
+
+ int verboseLevel;
+
+ void read(const std::string& fn);
+
+ std::vector<std::string> filesRead;
+
+ gpstk::WxObsData wx;
+
+};
+
+#endif
diff --git a/dev/lib/rxio/ObsReader.cpp b/dev/lib/rxio/ObsReader.cpp
new file mode 100644
index 0000000..b24e484
--- /dev/null
+++ b/dev/lib/rxio/ObsReader.cpp
@@ -0,0 +1,169 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+/** @file Read various file formats and output a stream of ObsEpoch objects.
+*/
+
+#include "ObsUtils.hpp"
+
+#include "RinexObsData.hpp"
+#include "SMODFData.hpp"
+#include "MDPObsEpoch.hpp"
+#include "ObsReader.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ //----------------------------------------------------------------------
+ ObsReader::ObsReader(const string& str, int verbose)
+ : fn(str), inputType(str), verboseLevel(verbose), epochCount(0), msid(0),
+ usePrevSMOD(false)
+ {
+ if (inputType == FFIdentifier::tRinexObs)
+ {
+ if (verboseLevel)
+ cout << "# Reading " << fn << " as RINEX obs data." << endl;
+ ros.open(fn.c_str(), ios::in);
+ ros.exceptions(fstream::failbit);
+ ros >> roh;
+ }
+ else if (inputType == FFIdentifier::tMDP)
+ {
+ if (verboseLevel)
+ cout << "# Reading " << fn << " as MDP data." << endl;
+ mdps.open(fn.c_str(), ios::in);
+ mdps.exceptions(fstream::failbit);
+ }
+ else if (inputType == FFIdentifier::tSMODF)
+ {
+ if (verboseLevel)
+ cout << "# Reading " << fn << " as SMODF data." << endl;
+ smos.open(fn.c_str(), ios::in);
+ smos.exceptions(fstream::failbit);
+ }
+ };
+
+
+ //----------------------------------------------------------------------
+ ObsEpoch ObsReader::getObsEpoch()
+ {
+ ObsEpoch oe;
+ if (inputType == FFIdentifier::tRinexObs)
+ {
+ RinexObsData rod;
+ ros >> rod;
+ oe = makeObsEpoch(rod);
+ epochCount++;
+ }
+ else if (inputType == FFIdentifier::tMDP)
+ {
+ MDPEpoch moe;
+ mdps >> moe;
+ oe = makeObsEpoch(moe);
+ epochCount++;
+ }
+ else if (inputType == FFIdentifier::tSMODF)
+ {
+ if (msid==0)
+ {
+ cerr << "SMODF data requires an msid to be specified. Exiting." << endl;
+ exit(-1);
+ }
+
+ SMODFData smod;
+ while (smos)
+ {
+ if (usePrevSMOD)
+ {
+ smod = prevSMOD;
+ usePrevSMOD = false;
+ }
+ else
+ {
+ while (smos >> smod)
+ if (smod.station == msid) break;
+ }
+
+ if (smod.station != msid)
+ break;
+
+ if (smod.time != oe.time && oe.size())
+ {
+ usePrevSMOD = true;
+ prevSMOD = smod;
+ epochCount++;
+ break;
+ }
+
+ oe.time = smod.time;
+
+ SatID svid(smod.PRNID, SatID::systemGPS);
+ SvObsEpoch& soe = oe[svid];
+ soe.svid=svid;
+
+ if (smod.type==0)
+ {
+ ObsID oid(ObsID::otRange, ObsID::cbL1L2, ObsID::tcP);
+ soe[oid] = smod.obs * 1000;
+ }
+ else if (smod.type==9)
+ {
+ ObsID oid(ObsID::otPhase, ObsID::cbL1L2, ObsID::tcP);
+ soe[oid] = smod.obs;
+ }
+ }
+ }
+
+ return oe;
+ }
+
+
+ //----------------------------------------------------------------------
+ bool ObsReader::operator()()
+ {
+ if (inputType == FFIdentifier::tRinexObs)
+ return ros;
+ else if (inputType == FFIdentifier::tMDP)
+ return mdps;
+ else if (inputType == FFIdentifier::tSMODF)
+ return smos;
+ return false;
+ }
+} // end of namespace gpstk
diff --git a/dev/lib/rxio/ObsReader.hpp b/dev/lib/rxio/ObsReader.hpp
new file mode 100644
index 0000000..f89405f
--- /dev/null
+++ b/dev/lib/rxio/ObsReader.hpp
@@ -0,0 +1,81 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Read various file formats and output a stream of ObsEpoch objects.
+*/
+
+#ifndef OBSREADER_HPP
+#define OBSREADER_HPP
+
+#include "ObsEpochMap.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+#include "MDPStream.hpp"
+#include "SMODFStream.hpp"
+#include "SMODFData.hpp"
+#include "FFIdentifier.hpp"
+
+namespace gpstk
+{
+ class ObsReader
+ {
+ public:
+ const std::string fn;
+ gpstk::FFIdentifier inputType;
+
+ gpstk::RinexObsStream ros;
+ gpstk::MDPStream mdps;
+ gpstk::SMODFStream smos;
+
+ unsigned msid;
+ gpstk::RinexObsHeader roh;
+ int verboseLevel;
+ unsigned long epochCount;
+
+ ObsReader(const std::string& str, int verbose=0);
+
+ ObsEpoch getObsEpoch();
+
+ bool operator()();
+
+ private:
+ gpstk::SMODFData prevSMOD;
+ bool usePrevSMOD;
+ };
+} // end of namespace gpstk
+#endif
diff --git a/dev/lib/rxio/ObsUtils.cpp b/dev/lib/rxio/ObsUtils.cpp
new file mode 100644
index 0000000..8376115
--- /dev/null
+++ b/dev/lib/rxio/ObsUtils.cpp
@@ -0,0 +1,301 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Translates between various similiar objects */
+
+#include "StringUtils.hpp"
+#include "RinexObsID.hpp"
+#include "icd_200_constants.hpp"
+
+#include "ObsUtils.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ //---------------------------------------------------------------------------
+ SvObsEpoch makeSvObsEpoch(const MDPObsEpoch& mdp) throw()
+ {
+ SvObsEpoch obs;
+ MDPObsEpoch::ObsMap::const_iterator i;
+ for (i=mdp.obs.begin(); i!=mdp.obs.end(); i++)
+ {
+ CarrierCode cc = i->first.first;
+ RangeCode rc = i->first.second;
+ const MDPObsEpoch::Observation& mdp_obs = i->second;
+
+ ObsID::CarrierBand cb;
+ ObsID::TrackingCode tc;
+
+ switch(cc)
+ {
+ case ccL1: cb = ObsID::cbL1; break;
+ case ccL2: cb = ObsID::cbL2; break;
+ case ccL5: cb = ObsID::cbL5; break;
+ default: cb = ObsID::cbUnknown;
+ }
+
+ switch (rc)
+ {
+ case rcCA: tc = ObsID::tcCA; break;
+ case rcPcode: tc = ObsID::tcP; break;
+ case rcYcode: tc = ObsID::tcY; break;
+ case rcCodeless: tc = ObsID::tcW; break;
+ case rcCM: tc = ObsID::tcC2M; break;
+ case rcCL: tc = ObsID::tcC2L; break;
+ case rcMcode1: tc = ObsID::tcM; break;
+ case rcMcode2: tc = ObsID::tcM; break;
+ case rcCMCL: tc = ObsID::tcC2LM; break;
+ default: tc = ObsID::tcUnknown;
+ }
+
+ obs[ObsID(ObsID::otRange, cb, tc)] = mdp_obs.pseudorange;
+ obs[ObsID(ObsID::otPhase, cb, tc)] = mdp_obs.phase;
+ obs[ObsID(ObsID::otDoppler, cb, tc)] = mdp_obs.doppler;
+ obs[ObsID(ObsID::otSNR, cb, tc)] = mdp_obs.snr;
+ obs[ObsID(ObsID::otLLI, cb, tc)] = mdp_obs.lockCount;
+ }
+ return obs;
+ }
+
+
+ //---------------------------------------------------------------------------
+ SvObsEpoch makeSvObsEpoch(const RinexObsData::RinexObsTypeMap& rotm) throw()
+ {
+ SvObsEpoch soe;
+
+ RinexObsData::RinexObsTypeMap::const_iterator rotm_itr;
+ for (rotm_itr = rotm.begin(); rotm_itr != rotm.end(); rotm_itr++)
+ {
+ const RinexObsHeader::RinexObsType& rot = rotm_itr->first;
+ const RinexObsData::RinexDatum& rd = rotm_itr->second;
+ RinexObsID oid(rot);
+ soe[oid] = rd.data;
+ if (rd.ssi>0)
+ {
+ oid.type = ObsID::otSSI;
+ soe[oid] = rd.ssi;
+ }
+ if (rd.lli>0)
+ {
+ oid.type = ObsID::otLLI;
+ soe[oid] = -1;
+ }
+ }
+
+ return soe;
+ }
+
+
+ //---------------------------------------------------------------------------
+ ObsEpoch makeObsEpoch(const RinexObsData& rod) throw()
+ {
+ ObsEpoch oe;
+ oe.time = rod.time;
+
+ RinexObsData::RinexSatMap::const_iterator rsm_itr;
+ for (rsm_itr = rod.obs.begin(); rsm_itr != rod.obs.end(); rsm_itr++)
+ {
+ const SatID svid(rsm_itr->first);
+ const RinexObsData::RinexObsTypeMap& rotm = rsm_itr->second;
+ oe[svid] = makeSvObsEpoch(rotm);
+ }
+
+ return oe;
+ }
+
+
+ //---------------------------------------------------------------------------
+ ObsEpoch makeObsEpoch(const MDPEpoch& mdp) throw()
+ {
+ ObsEpoch oe;
+ oe.time = mdp.begin()->second.time;
+
+ for (MDPEpoch::const_iterator i=mdp.begin(); i!=mdp.end(); i++)
+ {
+ const MDPObsEpoch& moe = i->second;
+ SatID svid(moe.prn, SatID::systemGPS);
+ oe[svid] = makeSvObsEpoch(moe);
+ }
+ return oe;
+ }
+
+
+ //---------------------------------------------------------------------------
+ WxObservation makeWxObs(const SMODFData& smod) throw()
+ {
+ WxObservation wx;
+
+ wx.t = smod.time;
+
+ if (smod.tempSource)
+ {
+ wx.temperature = smod.temp;
+ wx.temperatureSource = WxObservation::obsWx;
+ }
+ else
+ wx.temperatureSource = WxObservation::noWx;;
+
+ if (smod.pressSource)
+ {
+ wx.pressure = smod.pressure;
+ wx.pressureSource = WxObservation::obsWx;
+ }
+ else
+ wx.pressureSource = WxObservation::noWx;;
+
+ if (smod.humidSource)
+ {
+ wx.humidity = smod.humidity;
+ wx.humiditySource = WxObservation::obsWx;
+ }
+ else
+ wx.humiditySource = WxObservation::noWx;
+
+ return wx;
+ }
+
+
+ //---------------------------------------------------------------------------
+ void addMDPObservation(MDPObsEpoch& moe,
+ const AshtechMBEN::code_block& cb,
+ CarrierCode cc,
+ RangeCode rc,
+ const MDPObsEpoch& moe_hint) throw()
+ {
+ // fixup the range code to match what is indicated by the goodbad flag
+ if (rc != rcCA)
+ switch (cb.goodbad)
+ {
+ case 22: rc = rcPcode; break;
+ case 24: rc = rcYcode; break;
+ case 25: rc = rcCodeless; break;
+ }
+
+ float chipRate=PY_CHIP_FREQ;
+ if (rc == rcCA)
+ chipRate = CA_CHIP_FREQ;
+
+ MDPObsEpoch::Observation obs;
+ obs.carrier = cc;
+ obs.range = rc;
+ obs.snr = cb.snr(chipRate);
+ obs.pseudorange = cb.raw_range * C_GPS_M;
+ obs.phase = cb.full_phase;
+ obs.doppler = -cb.doppler; // yea, the Ashtech sign is backwards
+
+ if (moe_hint.haveObservation(cc, rc))
+ {
+ MDPObsEpoch::Observation obs_hint = moe_hint.getObservation(cc, rc);
+ obs.bw = obs_hint.bw;
+ obs.lockCount = obs_hint.lockCount++;
+ }
+ else
+ {
+ obs.bw=1;
+ obs.lockCount = 0;
+ }
+
+ moe.obs[MDPObsEpoch::ObsKey(cc, rc)] = obs;
+ }
+
+
+ //---------------------------------------------------------------------------
+ MDPObsEpoch makeMDPObsEpoch(
+ const AshtechMBEN& mben,
+ const MDPObsEpoch& hint) throw()
+ {
+ MDPObsEpoch moe;
+
+ // Get the full time from the hint and make the sow match the MBEN
+ moe.time = hint.time;
+ double sow1 = moe.time.GPSsecond();
+ int sow2 = static_cast<int>(sow1/1800);
+ double sow3 = static_cast<double>(sow2 * 1800);
+ double sow_mben = 0.05 * mben.seq;
+ double sow4 = sow3 + sow_mben;
+ if (sow4 < sow1) // Assume that time only moves forward
+ sow4 += 1800;
+ moe.time.setGPS(moe.time.GPSfullweek(), sow4);
+
+ moe.numSVs = hint.numSVs;
+ moe.channel = mben.chid;
+ moe.prn = mben.svprn;
+ moe.status = hint.status;
+ moe.elevation = mben.el;
+ moe.azimuth = mben.az;
+
+ addMDPObservation(moe, mben.ca, ccL1, rcCA, hint);
+
+ if (mben.id == AshtechMBEN::mpcId)
+ {
+ addMDPObservation(moe, mben.p1, ccL1, rcPcode, hint);
+ addMDPObservation(moe, mben.p2, ccL2, rcPcode, hint);
+ }
+ return moe;
+ }
+
+
+ //---------------------------------------------------------------------------
+ MDPPVTSolution makeMDPPVTSolution(
+ const AshtechPBEN& pben,
+ const unsigned week) throw()
+ {
+ MDPPVTSolution pvt;
+
+ pvt.x[0] = pben.navx;
+ pvt.x[1] = pben.navy;
+ pvt.x[2] = pben.navz;
+ pvt.dtime = pben.navt / C_GPS_M;
+ pvt.v[0] = pben.navxdot;
+ pvt.v[1] = pben.navydot;
+ pvt.v[2] = pben.navzdot;
+ pvt.ddtime = pben.navtdot / C_GPS_M;
+
+ pvt.time.setGPS(week, pben.sow);
+ pvt.timep = pvt.time + pvt.dtime;
+
+ pvt.fom = pben.pdop;
+ pvt.numSVs = (int)pben.numSV;
+ pvt.pvtMode = 0;
+ pvt.corrections = 0;
+
+ return pvt;
+ }
+
+}
diff --git a/dev/lib/rxio/ObsUtils.hpp b/dev/lib/rxio/ObsUtils.hpp
new file mode 100644
index 0000000..87610f4
--- /dev/null
+++ b/dev/lib/rxio/ObsUtils.hpp
@@ -0,0 +1,96 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef OBSUTILS_HPP
+#define OBSUTILS_HPP
+
+#include "RinexObsData.hpp"
+#include "RinexNavData.hpp"
+#include "RinexMetData.hpp"
+
+#include "EngAlmanac.hpp"
+#include "ObsEpochMap.hpp"
+#include "WxObsMap.hpp"
+#include "SMODFData.hpp"
+
+#include "MDPNavSubframe.hpp"
+#include "MDPObsEpoch.hpp"
+#include "MDPPVTSolution.hpp"
+
+#include "AshtechMBEN.hpp"
+#include "AshtechPBEN.hpp"
+
+namespace gpstk
+{
+ /// Conversion Function from MDP data
+ SvObsEpoch makeSvObsEpoch(const MDPObsEpoch& mdp) throw();
+
+ ObsEpoch makeObsEpoch(const MDPEpoch& mdp) throw();
+
+ MDPObsEpoch makeMDPObsEpoch(const SvObsEpoch& soe) throw();
+
+ /// Conversion functions from Rinex data
+ SvObsEpoch makeSvObsEpoch(const RinexObsData::RinexObsTypeMap& rotm) throw();
+
+ ObsEpoch makeObsEpoch(const RinexObsData& rod) throw();
+
+ WxObservation makeWxObs(const RinexMetData& rmd) throw();
+
+ /// Conversion functions from SMODFData objects
+ /// Note that there is no makeObsEpoch since each SMODFData object just
+ /// has a single observation to a single sv.
+ WxObservation makeWxObs(const SMODFData& smod) throw();
+
+ /// Conversion functions from AshtechData
+ /// hint is used to provide the data that is not natively in the MBEN data
+ MDPObsEpoch makeMDPObsEpoch(
+ const AshtechMBEN& mben,
+ const MDPObsEpoch& hint) throw();
+
+ void addMDPObservation(
+ MDPObsEpoch& moe,
+ const AshtechMBEN::code_block& cb,
+ CarrierCode cc,
+ RangeCode rc,
+ const MDPObsEpoch& moe_hint) throw();
+
+ MDPPVTSolution makeMDPPVTSolution(
+ const AshtechPBEN& pben,
+ const unsigned week) throw();
+}
+#endif
diff --git a/dev/lib/rxio/RinexConverters.cpp b/dev/lib/rxio/RinexConverters.cpp
new file mode 100644
index 0000000..dabc26b
--- /dev/null
+++ b/dev/lib/rxio/RinexConverters.cpp
@@ -0,0 +1,283 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/** @file Translates between various similiar objects */
+
+#include "StringUtils.hpp"
+#include "RinexObsID.hpp"
+
+#include "RinexConverters.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ short snr2ssi(float x)
+ {
+ // These values were obtained from the comments in a RINEX obs file that was
+ // generated from a TurboBinary file recorded on an AOA Benchmark receiver
+ if (x>316) return 9;
+ if (x>100) return 8;
+ if (x>31.6) return 7;
+ if (x>10) return 6;
+ if (x>3.2) return 5;
+ if (x>0) return 4;
+ return 0;
+ }
+
+ RinexObsData::RinexObsTypeMap makeRinexObsTypeMap(const MDPObsEpoch& moe) throw()
+ {
+ gpstk::RinexObsData::RinexObsTypeMap rotm;
+ MDPObsEpoch::ObsMap ol=moe.obs;
+ MDPObsEpoch::ObsMap::const_iterator j;
+
+ // The C1 Rinex obs is easy
+ j = ol.find(MDPObsEpoch::ObsKey(ccL1,rcCA));
+ if (j!=ol.end())
+ {
+ rotm[gpstk::RinexObsHeader::C1].data = j->second.pseudorange;
+ rotm[gpstk::RinexObsHeader::C1].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::C1].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::L1].data = j->second.phase;
+ rotm[gpstk::RinexObsHeader::L1].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::L1].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::D1].data = j->second.doppler;
+ rotm[gpstk::RinexObsHeader::D1].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::D1].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::S1].data = j->second.snr;
+ }
+
+ // Now get the P1, L1, D1, S1 obs
+ j = ol.find(MDPObsEpoch::ObsKey(ccL1, rcYcode));
+ if (j == ol.end())
+ j = ol.find(MDPObsEpoch::ObsKey(ccL1, rcPcode));
+ if (j == ol.end())
+ j = ol.find(MDPObsEpoch::ObsKey(ccL1, rcCodeless));
+ if (j != ol.end())
+ {
+ rotm[gpstk::RinexObsHeader::P1].data = j->second.pseudorange;
+ rotm[gpstk::RinexObsHeader::P1].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::P1].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::L1].data = j->second.phase;
+ rotm[gpstk::RinexObsHeader::L1].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::L1].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::D1].data = j->second.doppler;
+ rotm[gpstk::RinexObsHeader::D1].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::D1].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::S1].data = j->second.snr;
+ }
+
+ // Now get the P2, L2, D2, S2 obs
+ j = ol.find(MDPObsEpoch::ObsKey(ccL2, rcYcode));
+ if (j == ol.end())
+ j = ol.find(MDPObsEpoch::ObsKey(ccL2, rcPcode));
+ if (j == ol.end())
+ j = ol.find(MDPObsEpoch::ObsKey(ccL2, rcCodeless));
+ if (j != ol.end())
+ {
+ rotm[gpstk::RinexObsHeader::P2].data = j->second.pseudorange;
+ rotm[gpstk::RinexObsHeader::P2].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::P2].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::L2].data = j->second.phase;
+ rotm[gpstk::RinexObsHeader::L2].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::L2].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::D2].data = j->second.doppler;
+ rotm[gpstk::RinexObsHeader::D2].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::D2].ssi = snr2ssi(j->second.snr);
+
+ rotm[gpstk::RinexObsHeader::S2].data = j->second.snr;
+ }
+
+ // Now get the C2
+ j = ol.find(MDPObsEpoch::ObsKey(ccL2, rcCM));
+ if (j == ol.end())
+ j = ol.find(MDPObsEpoch::ObsKey(ccL2, rcCL));
+ if (j == ol.end())
+ j = ol.find(MDPObsEpoch::ObsKey(ccL2, rcCMCL));
+ if (j != ol.end())
+ {
+ rotm[gpstk::RinexObsHeader::C2].data = j->second.pseudorange;
+ rotm[gpstk::RinexObsHeader::C2].lli = j->second.lockCount ? 1 : 0;
+ rotm[gpstk::RinexObsHeader::C2].ssi = snr2ssi(j->second.snr);
+ }
+ return rotm;
+ }
+
+ RinexObsData makeRinexObsData(const gpstk::MDPEpoch& mdp)
+ {
+ RinexObsData rod;
+
+ rod.clockOffset=0;
+ rod.numSvs = mdp.size();
+ rod.epochFlag = 0;
+ rod.time = mdp.begin()->second.time;
+
+ for (MDPEpoch::const_iterator i=mdp.begin(); i!=mdp.end(); i++)
+ {
+ const MDPObsEpoch& moe = i->second;
+ gpstk::SatID svid(moe.prn, gpstk::SatID::systemGPS);
+ rod.obs[svid] = makeRinexObsTypeMap(moe);
+ }
+ return rod;
+ }
+
+ // Try to convert the given pages into an EngAlmanc object. Returns true
+ // upon success. This routine is tuned for two different types of nav data.
+ //
+ // The first is for a receiver that outputs all 4/5 subframes from a given
+ // code/carrier. Basically it looks for a 12.5 minute cycle that starts
+ // with page 1 from subframe 4. It makes sure that there hasn't been a
+ // cutover during it by checking that all sv pages (i.e. svid 1-32) have
+ // the same toa as the last page 25 (svid 51). This mode is the default and
+ // is set with the requireFull parameter.
+ //
+ // The second is for a receiver that only puts out a set of 4/5 subframes
+ // that "should" be a complete almanac. Note that it doesn't output pages
+ // for SVs that are set to the default data.
+ //
+ // The only receiver that this has been tested on is the Ashtech Z(Y)12.
+ //
+ // In the IS-GPS-200D, see pages 72-79, 82, 105
+ bool makeEngAlmanac(EngAlmanac& alm,
+ const AlmanacPages& pages,
+ bool requireFull) throw()
+ {
+ AlmanacPages::const_iterator sf4p1 = pages.find(SubframePage(4, 1));
+ AlmanacPages::const_iterator sf4p18 = pages.find(SubframePage(4, 18));
+ AlmanacPages::const_iterator sf4p25 = pages.find(SubframePage(4, 25));
+ AlmanacPages::const_iterator sf5p25 = pages.find(SubframePage(5, 25));
+
+ // These pages are required for a reasonable alm
+ if (sf4p18==pages.end() || sf4p25==pages.end() || sf5p25==pages.end())
+ return false;
+
+ long sf4p1sow=0;
+ if (requireFull)
+ {
+ if (sf4p1==pages.end())
+ return false;
+ else
+ sf4p1sow = sf4p1->second.getHOWTime();
+ }
+
+ int week=sf4p18->second.time.GPSfullweek();
+
+ for (int p=1; p<=25; p++)
+ {
+ for (int sf=4; sf<=5; sf++)
+ {
+ AlmanacPages::const_iterator i = pages.find(SubframePage(sf, p));
+ if (i == pages.end())
+ {
+ if (requireFull)
+ return false;
+ else
+ continue;
+ }
+
+ // All pages have to be contingious for the full alm mode.
+ if (requireFull)
+ {
+ long sow = i->second.getHOWTime();
+ if (sow != sf4p1sow + (sf-4)*6 + (p-1)*30)
+ return false;
+ }
+
+ long sfa[10];
+ long long_sfa[10];
+ i->second.fillArray(sfa);
+ copy( &sfa[0], &sfa[10], long_sfa);
+ if (!alm.addSubframe(long_sfa, week))
+ return false;
+ }
+ }
+ return true;
+ }
+
+ // Try to convert the given pages into an EngEphemeris object. Returns true
+ // upon success.
+ bool makeEngEphemeris(EngEphemeris& eph, const EphemerisPages& pages)
+ {
+ EphemerisPages::const_iterator sf[4];
+
+ sf[1] = pages.find(1);
+ if (sf[1] == pages.end())
+ return false;
+
+ sf[2] = pages.find(2);
+ if (sf[2] == pages.end())
+ return false;
+
+ sf[3] = pages.find(3);
+ if (sf[3] == pages.end())
+ return false;
+
+ long t1 = sf[1]->second.getHOWTime();
+ long t2 = sf[2]->second.getHOWTime();
+ long t3 = sf[3]->second.getHOWTime();
+ if (t2 != t1+6 || t3 != t1+12)
+ return false;
+
+ int prn = sf[1]->second.prn;
+ int week = sf[1]->second.time.GPSfullweek();
+ long sfa[10];
+ long long_sfa[10];
+
+ for (int i=1; i<=3; i++)
+ {
+ sf[i]->second.fillArray(sfa);
+ for( int j = 0; j < 10; j++ )
+ long_sfa[j] = static_cast<long>( sfa[j] );
+ if (!eph.addSubframe(long_sfa, week, prn, 0))
+ return false;
+ }
+
+ if (eph.isData(1) && eph.isData(2) && eph.isData(3))
+ return true;
+
+ return false;
+ }
+} // end of namespace gpstk
diff --git a/dev/lib/rxio/RinexConverters.hpp b/dev/lib/rxio/RinexConverters.hpp
new file mode 100644
index 0000000..888c6a0
--- /dev/null
+++ b/dev/lib/rxio/RinexConverters.hpp
@@ -0,0 +1,70 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef RINEXCONVERTERS_HPP
+#define RINEXCONVERTERS_HPP
+
+/** @file Translates between various similiar objects */
+
+#include "RinexObsData.hpp"
+#include "RinexNavData.hpp"
+
+#include "EngAlmanac.hpp"
+
+#include "MDPNavSubframe.hpp"
+#include "MDPObsEpoch.hpp"
+
+namespace gpstk
+{
+ /// A translation from SNR in dB-Hz to the rinex signal strength indicator
+ /// values were taken from a header written by teqc
+ short snr2ssi(float x);
+
+ /// Convert the given pages to an EngAlmanac. Returns true upon success.
+ bool makeEngAlmanac(EngAlmanac& alm,
+ const AlmanacPages& pages,
+ bool requireFull=true) throw();
+
+ /// Convert the given pages to an EngEphemeris. Returns true upon success.
+ bool makeEngEphemeris(EngEphemeris& eph, const EphemerisPages& pages);
+
+ /// Conversion Function from MDP data
+ RinexObsData::RinexObsTypeMap makeRinexObsTypeMap(const MDPObsEpoch& moe) throw();
+ RinexObsData makeRinexObsData(const MDPEpoch& me);
+}
+#endif
diff --git a/dev/lib/rxio/TCPStream.hpp b/dev/lib/rxio/TCPStream.hpp
new file mode 100644
index 0000000..1a39cf4
--- /dev/null
+++ b/dev/lib/rxio/TCPStream.hpp
@@ -0,0 +1,81 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef TCPSTREAM_HPP
+#define TCPSTREAM_HPP
+
+#include <fstream>
+
+#include "TCPStreamBuff.hpp"
+
+namespace gpstk
+{
+ class TCPStream : public std::fstream
+ {
+ mutable TCPStreamBuff tcp_buffer; // mutable so rdbuf() can be const
+
+ public:
+ TCPStream(void)
+ {
+ init(&tcp_buffer);
+ }
+
+ void connect(const SocketAddr target_address)
+ {
+ clear();
+ if (!rdbuf()->connect(target_address))
+ setstate(std::ios::badbit);
+ }
+
+ TCPStreamBuff* rdbuf(void) const
+ {
+ return &tcp_buffer;
+ }
+
+ bool is_open() const
+ {
+ return rdbuf()->is_open();
+ }
+
+ void close(void)
+ {
+ rdbuf()->close();
+ }
+ };
+} // end of namespace
+#endif
diff --git a/dev/lib/rxio/TCPStreamBuff.cpp b/dev/lib/rxio/TCPStreamBuff.cpp
new file mode 100644
index 0000000..37892ac
--- /dev/null
+++ b/dev/lib/rxio/TCPStreamBuff.cpp
@@ -0,0 +1,145 @@
+#pragma ident "$Id$"
+
+#include <sstream>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <unistd.h>
+#include <netdb.h>
+#include <fcntl.h>
+#include <sys/file.h>
+
+#include <stdio.h>
+#if !defined(unix) && !defined(__unix__)
+#include <winsock.h>
+#else
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#endif
+
+#include <arpa/inet.h>
+
+#include "TCPStreamBuff.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+//------------------------------------------------------------------------
+ IPaddress::IPaddress(const string& host_name)
+ {
+ // If the address is in dotted quad notation, this will work.
+ address = inet_addr(host_name.c_str());
+ if ( address != (uint32_t)(-1) )
+ return;
+
+ struct hostent *host_ptr = ::gethostbyname(host_name.c_str());
+ if( host_ptr == 0 )
+ {
+ cout << "Host name '" << host_name << "' cannot be resolved";
+ return;
+ }
+ if( host_ptr->h_addrtype != AF_INET )
+ {
+ cout << "Host name '" << host_name
+ << "' isn't an AF_INET address" << endl;
+ return;
+ }
+
+ memcpy(&address, host_ptr->h_addr, sizeof(address));
+ }
+
+
+//------------------------------------------------------------------------
+ ostream& operator<<(ostream& os, const IPaddress addr)
+ {
+ struct hostent * const host_ptr =
+ ::gethostbyaddr((char *)&addr.address,
+ sizeof(addr.address), AF_INET);
+ if( host_ptr != 0 )
+ return os << host_ptr->h_name;
+
+ // Reverse DNS failed, print in the dot notation
+ char buffer[80];
+ const unsigned int native_addr = ntohl(addr.address);
+ sprintf(buffer,"%0d.%0d.%0d.%0d", (native_addr >> 24) & 0xff,
+ (native_addr >> 16) & 0xff, (native_addr >> 8) & 0xff,
+ native_addr & 0xff);
+ return os << buffer;
+ }
+
+//------------------------------------------------------------------------
+ SocketAddr::SocketAddr(const IPaddress host, const short port_no)
+ {
+ sin_family = AF_INET;
+ sin_port = htons((short)port_no);
+ sin_addr.s_addr = host.net_addr();
+ }
+
+ ostream& operator<<(ostream& os, const SocketAddr& addr)
+ {
+ return os << IPaddress(addr.sin_addr.s_addr) << ':'
+ << (unsigned short)ntohs((short)addr.sin_port);
+ }
+
+
+//------------------------------------------------------------------------
+ int TCPStreamBuff::connect(const SocketAddr target_address)
+ {
+ if (is_open())
+ return 0;
+
+ handle = socket(AF_INET,SOCK_STREAM,0);
+ if (!handle)
+ return -1;
+
+ // set_blocking_io(false);
+
+ int connect_status = -1;
+ for (int i=0; i<5 && connect_status != 0; i++)
+ {
+ connect_status = ::connect(handle, (sockaddr *)target_address,
+ sizeof(target_address));
+ }
+ if (connect_status !=0)
+ return connect_status;
+
+ // We do our own buffering...
+ char off=0;
+ ::setsockopt(handle, IPPROTO_TCP, TCP_NODELAY, &off, sizeof(off));
+ return 0;
+ }
+
+
+//------------------------------------------------------------------------
+// Take a file handle (which is supposed to be a listening socket), accept
+// a connection if any, and return a TCPStreamBuff for that connection. On exit,
+// peeraddr would be an addr of the connected peer.
+ int TCPStreamBuff::accept(int listening_socket, SocketAddr& peeraddr)
+ {
+ // do nothing if we are already connected
+ if (is_open())
+ return 0;
+
+ for(;;)
+ {
+ socklen_t target_addr_size = sizeof(peeraddr);
+ handle = ::accept(listening_socket,(sockaddr *)peeraddr,
+ &target_addr_size);
+ if (handle >= 0)
+ break; // Successfully accepted the connection
+ if (errno == EAGAIN || errno == EINTR)
+ cout << "to be implimented" << endl;
+ else
+ return 0;
+ }
+
+ // We do our own buffering...
+ char off=0;
+ ::setsockopt(handle, IPPROTO_TCP, TCP_NODELAY, &off, sizeof(off));
+ return 0;
+ }
+
+} // end of namespace
diff --git a/dev/lib/rxio/TCPStreamBuff.hpp b/dev/lib/rxio/TCPStreamBuff.hpp
new file mode 100644
index 0000000..5adef82
--- /dev/null
+++ b/dev/lib/rxio/TCPStreamBuff.hpp
@@ -0,0 +1,71 @@
+#pragma ident "$Id$"
+
+#ifndef TCPSTREAMBUFF_HPP
+#define TCPSTREAMBUFF_HPP
+
+#include <sstream>
+#include <errno.h>
+#include <stdlib.h>
+
+#include <unistd.h>
+#include <netdb.h>
+#include <fcntl.h>
+#include <sys/file.h>
+#include <netinet/in.h>
+#include <netinet/tcp.h>
+#include <arpa/inet.h>
+
+#include "FDStreamBuff.hpp"
+
+namespace gpstk
+{
+ class SocketAddr;
+
+ class IPaddress
+ {
+ friend class SocketAddr;
+
+ unsigned long address; // Address: 4 bytes in the network byte order
+ IPaddress(const unsigned int netaddr) : address(netaddr) {}
+
+ public:
+ IPaddress() : address(INADDR_ANY) {} // Wildcard address
+ IPaddress(const std::string& name); // Involves the name resolution
+ unsigned long net_addr() const { return address; }
+
+ friend std::ostream& operator <<(std::ostream& os, const IPaddress addr);
+ friend std::ostream& operator <<(std::ostream& os, const SocketAddr& addr);
+ };
+
+ class SocketAddr : sockaddr_in
+ {
+ friend class StreamSocket;
+ friend class UDPsocketIn;
+ SocketAddr() {}
+
+ public:
+ SocketAddr(const IPaddress host, const short port_no);
+ operator sockaddr * () const { return (sockaddr *)this; }
+ friend std::ostream& operator <<(std::ostream& os, const SocketAddr& addr);
+ };
+
+
+ class TCPStreamBuff : public FDStreamBuff
+ {
+ public:
+ TCPStreamBuff() : FDStreamBuff(-1) {}
+
+ ~TCPStreamBuff() {close();}
+
+ int connect(const SocketAddr target_address);
+
+ // Take a file handle (which is supposed to be a listening socket),
+ // accept a connection if any, and return the corresponding TCPbuf
+ // for that connection. On exit, peeraddr would be an addr of the
+ // connected peer
+ int accept(int listening_socket, SocketAddr& peeraddr);
+
+ };
+
+} // end of namespace
+#endif
diff --git a/dev/lib/rxio/miscdefs.hpp b/dev/lib/rxio/miscdefs.hpp
new file mode 100644
index 0000000..defc6e3
--- /dev/null
+++ b/dev/lib/rxio/miscdefs.hpp
@@ -0,0 +1,22 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file miscdefs.hpp
+ * This file contains miscellaneous definitions that potentially have
+ * global significance (as opposed to being relevant only to one class).
+ */
+
+#ifndef MISCDEFS_HPP
+#define MISCDEFS_HPP
+
+#include <map>
+#include "miscenum.hpp"
+
+namespace gpstk
+{
+ typedef std::pair<gpstk::RangeCode, gpstk::CarrierCode> RangeCarrierPair;
+ typedef std::pair<RangeCarrierPair, short> NavIndex;
+} // namespace gpstk
+
+#endif // MISCDEFS_HPP
diff --git a/dev/lib/rxio/miscenum.hpp b/dev/lib/rxio/miscenum.hpp
new file mode 100644
index 0000000..7ab5112
--- /dev/null
+++ b/dev/lib/rxio/miscenum.hpp
@@ -0,0 +1,134 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file miscenum.hpp
+ * This file contains miscellaneous enumerations that potentially have
+ * global significance (as opposed to being relevant only to one class).
+ */
+
+#ifndef MISCENUM_HPP
+#define MISCENUM_HPP
+
+#include <string>
+
+namespace gpstk
+{
+ /// An enumeration of the various Carrier Codes.
+ enum CarrierCode
+ {
+ ccUnknown = 0,
+ ccL1 = 1,
+ ccL2 = 2,
+ ccL5 = 5,
+ ccMax
+ };
+
+ /// An enumeration of the various Range Codes.
+ enum RangeCode
+ {
+ rcUnknown = 0,
+ rcCA = 1,
+ rcPcode = 2,
+ rcYcode = 3,
+ rcCodeless = 4,
+ rcCM = 5,
+ rcCL = 6,
+ rcMcode1 = 7,
+ rcMcode2 = 8,
+ rcCMCL = 9,
+ rcMax
+ };
+
+ /// An enumeration of the various Navigation Message Codes.
+ enum NavCode
+ {
+ ncUnknown = 0, ///< Unknown or uninitialized navigation message code.
+ ncICD_200_2 = 1, ///< ICD-GPS-200 Data ID No 2.
+ ncICD_700_M = 2, ///< ICD-GPS-700 M-code.
+ ncICD_705_L5 = 3, ///< ICD-GPS-705 L5 nav.
+ ncICD_200_4 = 4, ///< ICD-GPS-200 Data ID No 4.
+ ncMax
+ };
+
+ /** An enumeration of the External Frequency Status. Relevant
+ * to receivers using external timing sources. */
+ enum ExternalFrequencyStatus
+ {
+ efsUnknown = -1,
+ efsNotLocked = 0,
+ efsLocked = 1
+ };
+
+ namespace StringUtils
+ {
+ /** Decode Carrier Code to a string.
+ * @param cc the Carrier Code to convert.
+ * @return the Carrier Code as a string.
+ */
+ inline std::string asString(const CarrierCode& cc) throw()
+ {
+ switch(cc)
+ {
+ case ccL1: return "L1";
+ case ccL2: return "L2";
+ case ccL5: return "L5";
+ }
+ return "BadCarrierCode";
+ }
+
+ /** Decode Range Code to a string.
+ * @param rc the Range Code to convert.
+ * @return the Range Code as a string.
+ */
+ inline std::string asString(const RangeCode& rc) throw()
+ {
+ switch(rc)
+ {
+ case rcCA: return "CA";
+ case rcPcode: return "P";
+ case rcYcode: return "Y";
+ case rcCodeless: return "Z";
+ case rcCM: return "CM";
+ case rcCL: return "CL";
+ case rcMcode1: return "M1";
+ case rcMcode2: return "M2";
+ case rcCMCL: return "CMCL";
+ }
+ return "BadRangeCode";
+ }
+
+ /** Decode Navigation Message Code to a string.
+ * @param nc the Navigation Code to convert.
+ * @return the Navigation Code as a string.
+ */
+ inline std::string asString(const NavCode& nc) throw()
+ {
+ switch(nc)
+ {
+ case ncICD_200_2: return "ICD-GPS-200 Data ID No. 2";
+ case ncICD_700_M: return "ICD-GPS-700 M-code";
+ case ncICD_705_L5: return "ICD-GPS-705 L5 nav";
+ case ncICD_200_4: return "ICD-GPS-200 Data ID No. 4";
+ }
+ return "BadNavCode";
+ }
+
+ /** Decode external frequency status to a string.
+ * @param e the external frequency status to convert.
+ * @return the Carrier Code as a string.
+ */
+ inline std::string asString(const ExternalFrequencyStatus& e)
+ throw()
+ {
+ switch(e)
+ {
+ case efsNotLocked: return "NotLocked";
+ case efsLocked: return "Locked";
+ }
+ return "BadEFS";
+ }
+ } // namespace StringUtils
+
+}
+#endif // MISCENUM_HPP
diff --git a/dev/ltmain.sh b/dev/ltmain.sh
new file mode 100644
index 0000000..9be0eb1
--- /dev/null
+++ b/dev/ltmain.sh
@@ -0,0 +1,6496 @@
+# ltmain.sh - Provide generalized library-building support services.
+# NOTE: Changing this file will not affect anything until you rerun configure.
+#
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.16
+TIMESTAMP=" (1.1220.2.235 2005/04/25 18:13:26)"
+
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+# Check that we have a working $echo.
+if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+elif test "X$1" = X--fallback-echo; then
+ # Avoid inline document here, it may be left over
+ :
+elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
+ # Yippee, $echo works!
+ :
+else
+ # Restart under the correct shell, and then maybe $echo will work.
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
+fi
+
+if test "X$1" = X--fallback-echo; then
+ # used as fallback echo
+ shift
+ cat <<EOF
+$*
+EOF
+ exit $EXIT_SUCCESS
+fi
+
+default_mode=
+help="Try \`$progname --help' for more information."
+magic="%%%MAGIC variable%%%"
+mkdir="mkdir"
+mv="mv -f"
+rm="rm -f"
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed="${SED}"' -e 1s/^X//'
+sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
+# test EBCDIC or ASCII
+case `echo A|tr A '\301'` in
+ A) # EBCDIC based system
+ SP2NL="tr '\100' '\n'"
+ NL2SP="tr '\r\n' '\100\100'"
+ ;;
+ *) # Assume ASCII based system
+ SP2NL="tr '\040' '\012'"
+ NL2SP="tr '\015\012' '\040\040'"
+ ;;
+esac
+
+# NLS nuisances.
+# Only set LANG and LC_ALL to C if already set.
+# These must not be set unconditionally because not all systems understand
+# e.g. LANG=C (notably SCO).
+# We save the old values to restore during execute mode.
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
+
+if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
+ $echo "$modename: not configured to build any kind of library" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# Global variables.
+mode=$default_mode
+nonopt=
+prev=
+prevopt=
+run=
+show="$echo"
+show_help=
+execute_dlfiles=
+lo2o="s/\\.lo\$/.${objext}/"
+o2lo="s/\\.${objext}\$/.lo/"
+quote_scanset='[[~#^*{};<>?'"'"' ]'
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+func_win32_libid ()
+{
+ win32_libid_type="unknown"
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
+ $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
+ win32_nmres=`eval $NM -f posix -A $1 | \
+ sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
+ if test "X$win32_nmres" = "Ximport" ; then
+ win32_libid_type="x86 archive import"
+ else
+ win32_libid_type="x86 archive static"
+ fi
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $echo $win32_libid_type
+}
+
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ CC_quoted="$CC_quoted $arg"
+ done
+ case "$@ " in
+ " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ $echo "$modename: unable to infer tagged configuration"
+ $echo "$modename: specify a tag with \`--tag'" 1>&2
+ exit $EXIT_FAILURE
+# else
+# $echo "$modename: using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+
+ $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)"
+ $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $?
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2
+ exit $EXIT_FAILURE
+ fi
+}
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+ my_status=""
+
+ $show "${rm}r $my_gentop"
+ $run ${rm}r "$my_gentop"
+ $show "$mkdir $my_gentop"
+ $run $mkdir "$my_gentop"
+ my_status=$?
+ if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then
+ exit $my_status
+ fi
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
+ my_xdir="$my_gentop/$my_xlib"
+
+ $show "${rm}r $my_xdir"
+ $run ${rm}r "$my_xdir"
+ $show "$mkdir $my_xdir"
+ $run $mkdir "$my_xdir"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$my_xdir"; then
+ exit $status
+ fi
+ case $host in
+ *-darwin*)
+ $show "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ if test -z "$run"; then
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'`
+ darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ $show "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
+ cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
+ func_extract_an_archive "`pwd`" "${darwin_base_archive}"
+ cd "$darwin_curdir"
+ $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
+ done # $darwin_arches
+ ## Okay now we have a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP`
+ lipo -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ ${rm}r unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd "$darwin_orig_dir"
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ fi # $run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
+ done
+ func_extract_archives_result="$my_oldobjs"
+}
+# End of Shell function definitions
+#####################################
+
+# Darwin sucks
+eval std_shrext=\"$shrext_cmds\"
+
+# Parse our command line options once, thoroughly.
+while test "$#" -gt 0
+do
+ arg="$1"
+ shift
+
+ case $arg in
+ -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ execute_dlfiles)
+ execute_dlfiles="$execute_dlfiles $arg"
+ ;;
+ tag)
+ tagname="$arg"
+ preserve_args="${preserve_args}=$arg"
+
+ # Check whether tagname contains only valid characters
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ $echo "$progname: invalid tag name: $tagname" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $tagname in
+ CC)
+ # Don't test for the "default" C tag, as we know, it's there, but
+ # not specially marked.
+ ;;
+ *)
+ if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then
+ taglist="$taglist $tagname"
+ # Evaluate the configuration.
+ eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`"
+ else
+ $echo "$progname: ignoring unknown tag $tagname" 1>&2
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ eval "$prev=\$arg"
+ ;;
+ esac
+
+ prev=
+ prevopt=
+ continue
+ fi
+
+ # Have we seen a non-optional argument yet?
+ case $arg in
+ --help)
+ show_help=yes
+ ;;
+
+ --version)
+ $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
+ $echo
+ $echo "Copyright (C) 2005 Free Software Foundation, Inc."
+ $echo "This is free software; see the source for copying conditions. There is NO"
+ $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+ exit $?
+ ;;
+
+ --config)
+ ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath"
+ done
+ exit $?
+ ;;
+
+ --debug)
+ $echo "$progname: enabling shell trace mode"
+ set -x
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --dry-run | -n)
+ run=:
+ ;;
+
+ --features)
+ $echo "host: $host"
+ if test "$build_libtool_libs" = yes; then
+ $echo "enable shared libraries"
+ else
+ $echo "disable shared libraries"
+ fi
+ if test "$build_old_libs" = yes; then
+ $echo "enable static libraries"
+ else
+ $echo "disable static libraries"
+ fi
+ exit $?
+ ;;
+
+ --finish) mode="finish" ;;
+
+ --mode) prevopt="--mode" prev=mode ;;
+ --mode=*) mode="$optarg" ;;
+
+ --preserve-dup-deps) duplicate_deps="yes" ;;
+
+ --quiet | --silent)
+ show=:
+ preserve_args="$preserve_args $arg"
+ ;;
+
+ --tag) prevopt="--tag" prev=tag ;;
+ --tag=*)
+ set tag "$optarg" ${1+"$@"}
+ shift
+ prev=tag
+ preserve_args="$preserve_args --tag"
+ ;;
+
+ -dlopen)
+ prevopt="-dlopen"
+ prev=execute_dlfiles
+ ;;
+
+ -*)
+ $echo "$modename: unrecognized option \`$arg'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+
+ *)
+ nonopt="$arg"
+ break
+ ;;
+ esac
+done
+
+if test -n "$prevopt"; then
+ $echo "$modename: option \`$prevopt' requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+fi
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+if test -z "$show_help"; then
+
+ # Infer the operation mode.
+ if test -z "$mode"; then
+ $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
+ $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2
+ case $nonopt in
+ *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
+ mode=link
+ for arg
+ do
+ case $arg in
+ -c)
+ mode=compile
+ break
+ ;;
+ esac
+ done
+ ;;
+ *db | *dbx | *strace | *truss)
+ mode=execute
+ ;;
+ *install*|cp|mv)
+ mode=install
+ ;;
+ *rm)
+ mode=uninstall
+ ;;
+ *)
+ # If we have no mode, but dlfiles were specified, then do execute mode.
+ test -n "$execute_dlfiles" && mode=execute
+
+ # Just use the default operation mode.
+ if test -z "$mode"; then
+ if test -n "$nonopt"; then
+ $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
+ else
+ $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
+ fi
+ fi
+ ;;
+ esac
+ fi
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$execute_dlfiles" && test "$mode" != execute; then
+ $echo "$modename: unrecognized option \`-dlopen'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help="$help"
+ help="Try \`$modename --help --mode=$mode' for more information."
+
+ # These modes are in order of execution frequency so that they run quickly.
+ case $mode in
+ # libtool compile mode
+ compile)
+ modename="$modename: compile"
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile="$nonopt" # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+
+ for arg
+ do
+ case "$arg_mode" in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg="$arg"
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj="$arg"
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ if test -n "$libobj" ; then
+ $echo "$modename: you cannot specify \`-o' more than once" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ arg_mode=target
+ continue
+ ;;
+
+ -static | -prefer-pic | -prefer-non-pic)
+ later="$later $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
+ lastarg=
+ save_ifs="$IFS"; IFS=','
+ for arg in $args; do
+ IFS="$save_ifs"
+
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ lastarg="$lastarg $arg"
+ done
+ IFS="$save_ifs"
+ lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
+
+ # Add the arguments to base_compile.
+ base_compile="$base_compile $lastarg"
+ continue
+ ;;
+
+ * )
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg="$srcfile"
+ srcfile="$arg"
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
+
+ case $lastarg in
+ # Double-quote args containing other shell metacharacters.
+ # Many Bourne shells cannot handle close brackets correctly
+ # in scan sets, and some SunOS ksh mistreat backslash-escaping
+ # in scan sets (worked around with variable expansion),
+ # and furthermore cannot handle '|' '&' '(' ')' in scan sets
+ # at all, so we specify them separately.
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ lastarg="\"$lastarg\""
+ ;;
+ esac
+
+ base_compile="$base_compile $lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ $echo "$modename: you must specify an argument for -Xcompile"
+ exit $EXIT_FAILURE
+ ;;
+ target)
+ $echo "$modename: you must specify a target with \`-o'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *)
+ # Get the name of the library object.
+ [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ xform='[cCFSifmso]'
+ case $libobj in
+ *.ada) xform=ada ;;
+ *.adb) xform=adb ;;
+ *.ads) xform=ads ;;
+ *.asm) xform=asm ;;
+ *.c++) xform=c++ ;;
+ *.cc) xform=cc ;;
+ *.ii) xform=ii ;;
+ *.class) xform=class ;;
+ *.cpp) xform=cpp ;;
+ *.cxx) xform=cxx ;;
+ *.f90) xform=f90 ;;
+ *.for) xform=for ;;
+ *.java) xform=java ;;
+ esac
+
+ libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
+
+ case $libobj in
+ *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
+ *)
+ $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -static)
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"`
+ case $qlibobj in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qlibobj="\"$qlibobj\"" ;;
+ esac
+ if test "X$libobj" != "X$qlibobj"; then
+ $echo "$modename: libobj name \`$libobj' may not contain shell special characters."
+ exit $EXIT_FAILURE
+ fi
+ objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$obj"; then
+ xdir=
+ else
+ xdir=$xdir/
+ fi
+ lobj=${xdir}$objdir/$objname
+
+ if test -z "$base_compile"; then
+ $echo "$modename: you must specify a compilation command" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Delete any leftover library objects.
+ if test "$build_old_libs" = yes; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ $run $rm $removelist
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2*)
+ pic_mode=default
+ ;;
+ esac
+ if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test "$compiler_c_o" = no; then
+ output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
+ lockfile="$output_obj.lock"
+ removelist="$removelist $output_obj $lockfile"
+ trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test "$need_locks" = yes; then
+ until $run ln "$progpath" "$lockfile" 2>/dev/null; do
+ $show "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test "$need_locks" = warn; then
+ if test -f "$lockfile"; then
+ $echo "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+ $echo "$srcfile" > "$lockfile"
+ fi
+
+ if test -n "$fix_srcfile_path"; then
+ eval srcfile=\"$fix_srcfile_path\"
+ fi
+ qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"`
+ case $qsrcfile in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qsrcfile="\"$qsrcfile\"" ;;
+ esac
+
+ $run $rm "$libobj" "${libobj}T"
+
+ # Create a libtool object file (analogous to a ".la" file),
+ # but don't create it if we're doing a dry run.
+ test -z "$run" && cat > ${libobj}T <<EOF
+# $libobj - a libtool object file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+EOF
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test "$build_libtool_libs" = yes; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test "$pic_mode" != no; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ if test ! -d "${xdir}$objdir"; then
+ $show "$mkdir ${xdir}$objdir"
+ $run $mkdir ${xdir}$objdir
+ status=$?
+ if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
+ exit $status
+ fi
+ fi
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ command="$command -o $lobj"
+ fi
+
+ $run $rm "$lobj" "$output_obj"
+
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ test -n "$output_obj" && $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ $show "$mv $output_obj $lobj"
+ if $run $mv $output_obj $lobj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the PIC object to the libtool object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object='$objdir/$objname'
+
+EOF
+
+ # Allow error messages only from the first compilation.
+ if test "$suppress_opt" = yes; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ else
+ # No PIC object so indicate it doesn't exist in the libtool
+ # object file.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+pic_object=none
+
+EOF
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test "$build_old_libs" = yes; then
+ if test "$pic_mode" != yes; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test "$compiler_c_o" = yes; then
+ command="$command -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ command="$command$suppress_output"
+ $run $rm "$obj" "$output_obj"
+ $show "$command"
+ if $run eval "$command"; then :
+ else
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$need_locks" = warn &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $echo "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support \`-c' and \`-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $run $rm $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ $show "$mv $output_obj $obj"
+ if $run $mv $output_obj $obj; then :
+ else
+ error=$?
+ $run $rm $removelist
+ exit $error
+ fi
+ fi
+
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object='$objname'
+
+EOF
+ else
+ # Append the name of the non-PIC object the libtool object file.
+ # Only append if the libtool object file exists.
+ test -z "$run" && cat >> ${libobj}T <<EOF
+# Name of the non-PIC object.
+non_pic_object=none
+
+EOF
+ fi
+
+ $run $mv "${libobj}T" "${libobj}"
+
+ # Unlock the critical section if it was locked
+ if test "$need_locks" != no; then
+ $run $rm "$lockfile"
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool link mode
+ link | relink)
+ modename="$modename: link"
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # which system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll which has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args="$nonopt"
+ base_compile="$nonopt $@"
+ compile_command="$nonopt"
+ finalize_command="$nonopt"
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+
+ avoid_version=no
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=no
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
+ if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
+ $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ else
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ fi
+ build_libtool_libs=no
+ build_old_libs=yes
+ prefer_static_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg="$1"
+ shift
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
+ ;;
+ *) qarg=$arg ;;
+ esac
+ libtool_args="$libtool_args $qarg"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ compile_command="$compile_command @OUTPUT@"
+ finalize_command="$finalize_command @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ dlfiles|dlprefiles)
+ if test "$preload" = no; then
+ # Add the symbol object into the linking commands.
+ compile_command="$compile_command @SYMFILE@"
+ finalize_command="$finalize_command @SYMFILE@"
+ preload=yes
+ fi
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test "$dlself" = no; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test "$prev" = dlprefiles; then
+ dlself=yes
+ elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test "$prev" = dlfiles; then
+ dlfiles="$dlfiles $arg"
+ else
+ dlprefiles="$dlprefiles $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols="$arg"
+ if test ! -f "$arg"; then
+ $echo "$modename: symbol file \`$arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex="$arg"
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir="$arg"
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex="$arg"
+ prev=
+ continue
+ ;;
+ release)
+ release="-$arg"
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat $save_arg`
+ do
+# moreargs="$moreargs $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ done
+ else
+ $echo "$modename: link input file \`$save_arg' does not exist"
+ exit $EXIT_FAILURE
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ if test "$prev" = rpath; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) rpath="$rpath $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) xrpath="$xrpath $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ xcompiler)
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ xlinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $wl$qarg"
+ prev=
+ compile_command="$compile_command $wl$qarg"
+ finalize_command="$finalize_command $wl$qarg"
+ continue
+ ;;
+ xcclinker)
+ linker_flags="$linker_flags $qarg"
+ compiler_flags="$compiler_flags $qarg"
+ prev=
+ compile_command="$compile_command $qarg"
+ finalize_command="$finalize_command $qarg"
+ continue
+ ;;
+ shrext)
+ shrext_cmds="$arg"
+ prev=
+ continue
+ ;;
+ darwin_framework)
+ compiler_flags="$compiler_flags $arg"
+ prev=
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg="$arg"
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ compile_command="$compile_command $link_static_flag"
+ finalize_command="$finalize_command $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ $echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
+ continue
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: more than one -exported-symbols argument is not allowed"
+ exit $EXIT_FAILURE
+ fi
+ if test "X$arg" = "X-export-symbols"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=darwin_framework
+ compiler_flags="$compiler_flags $arg"
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ dir="$absdir"
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "*) ;;
+ *)
+ deplibs="$deplibs -L$dir"
+ lib_search_path="$lib_search_path $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$dir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
+ case $host in
+ *-*-cygwin* | *-*-pw32* | *-*-beos*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-mingw* | *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ deplibs="$deplibs -framework System"
+ continue
+ esac
+ elif test "X$arg" = "X-lc_r"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ deplibs="$deplibs $arg"
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ -model)
+ compile_command="$compile_command $arg"
+ compiler_flags="$compiler_flags $arg"
+ finalize_command="$finalize_command $arg"
+ prev=xcompiler
+ continue
+ ;;
+
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+ compiler_flags="$compiler_flags $arg"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # -64, -mips[0-9] enable 64-bit mode on the SGI compiler
+ # -r[0-9][0-9]* specifies the processor on the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler
+ # +DA*, +DD* enable 64-bit mode on the HP compiler
+ # -q* pass through compiler args for the IBM compiler
+ # -m* pass through architecture-specific compiler args for GCC
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*)
+
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ if test "$with_gcc" = "yes" ; then
+ compiler_flags="$compiler_flags $arg"
+ fi
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # in order for the loader to find any dlls it needs.
+ $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
+ $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ $echo "$modename: only absolute run-paths are allowed" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ continue
+ ;;
+
+ -static)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -Wc,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Wl,*)
+ args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
+ arg=
+ save_ifs="$IFS"; IFS=','
+ for flag in $args; do
+ IFS="$save_ifs"
+ case $flag in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ flag="\"$flag\""
+ ;;
+ esac
+ arg="$arg $wl$flag"
+ compiler_flags="$compiler_flags $wl$flag"
+ linker_flags="$linker_flags $flag"
+ done
+ IFS="$save_ifs"
+ arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+
+ *.$objext)
+ # A standard object.
+ objs="$objs $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ # If there is no directory component, then add one.
+ case $arg in
+ */* | *\\*) . $arg ;;
+ *) . ./$arg ;;
+ esac
+
+ if test -z "$pic_object" || \
+ test -z "$non_pic_object" ||
+ test "$pic_object" = none && \
+ test "$non_pic_object" = none; then
+ $echo "$modename: cannot find name of object for \`$arg'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ if test "$pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ pic_object="$xdir$pic_object"
+
+ if test "$prev" = dlfiles; then
+ if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
+ dlfiles="$dlfiles $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test "$prev" = dlprefiles; then
+ # Preload the old-style object.
+ dlprefiles="$dlprefiles $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ libobjs="$libobjs $pic_object"
+ arg="$pic_object"
+ fi
+
+ # Non-PIC object.
+ if test "$non_pic_object" != none; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object="$xdir$non_pic_object"
+
+ # A standard non-PIC object
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ if test -z "$pic_object" || test "$pic_object" = none ; then
+ arg="$non_pic_object"
+ fi
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if test -z "$run"; then
+ $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
+ exit $EXIT_FAILURE
+ else
+ # Dry-run case.
+
+ # Extract subdirectory from the argument.
+ xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$xdir" = "X$arg"; then
+ xdir=
+ else
+ xdir="$xdir/"
+ fi
+
+ pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
+ non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
+ libobjs="$libobjs $pic_object"
+ non_pic_objects="$non_pic_objects $non_pic_object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ deplibs="$deplibs $arg"
+ old_deplibs="$old_deplibs $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ if test "$prev" = dlfiles; then
+ # This library was specified with -dlopen.
+ dlfiles="$dlfiles $arg"
+ prev=
+ elif test "$prev" = dlprefiles; then
+ # The library was specified with -dlpreopen.
+ dlprefiles="$dlprefiles $arg"
+ prev=
+ else
+ deplibs="$deplibs $arg"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+ done # argument parsing loop
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ compile_command="$compile_command $arg"
+ finalize_command="$finalize_command $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
+ libobjs_save="$libobjs"
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$output_objdir" = "X$output"; then
+ output_objdir="$objdir"
+ else
+ output_objdir="$output_objdir/$objdir"
+ fi
+ # Create the object directory.
+ if test ! -d "$output_objdir"; then
+ $show "$mkdir $output_objdir"
+ $run $mkdir $output_objdir
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$output_objdir"; then
+ exit $status
+ fi
+ fi
+
+ # Determine the type of output
+ case $output in
+ "")
+ $echo "$modename: you must specify an output file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ case $host in
+ *cygwin* | *mingw* | *pw32*)
+ # don't eliminate duplications in $postdeps and $predeps
+ duplicate_compiler_generated_deps=yes
+ ;;
+ *)
+ duplicate_compiler_generated_deps=$duplicate_deps
+ ;;
+ esac
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ libs="$libs $deplib"
+ done
+
+ if test "$linkmode" = lib; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
+ esac
+ pre_post_deps="$pre_post_deps $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+ case $linkmode in
+ lib)
+ passes="conv link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=no
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+ for pass in $passes; do
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan"; then
+ libs="$deplibs"
+ deplibs=
+ fi
+ if test "$linkmode" = prog; then
+ case $pass in
+ dlopen) libs="$dlfiles" ;;
+ dlpreopen) libs="$dlprefiles" ;;
+ link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+ esac
+ fi
+ if test "$pass" = dlopen; then
+ # Collect dlpreopened libraries
+ save_deplibs="$deplibs"
+ deplibs=
+ fi
+ for deplib in $libs; do
+ lib=
+ found=no
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags $deplib"
+ fi
+ continue
+ ;;
+ -l*)
+ if test "$linkmode" != lib && test "$linkmode" != prog; then
+ $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
+ continue
+ fi
+ name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
+ for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib="$searchdir/lib${name}${search_ext}"
+ if test -f "$lib"; then
+ if test "$search_ext" = ".la"; then
+ found=yes
+ else
+ found=no
+ fi
+ break 2
+ fi
+ done
+ done
+ if test "$found" != yes; then
+ # deplib doesn't seem to be a libtool library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ else # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if (${SED} -e '2q' $lib |
+ grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ library_names=
+ old_library=
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ for l in $old_library $library_names; do
+ ll="$l"
+ done
+ if test "X$ll" = "X$old_library" ; then # only static version available
+ found=no
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+ lib=$ladir/$old_library
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ fi
+ ;; # -l
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test "$pass" = conv && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ prog)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test "$pass" = scan; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
+ ;;
+ *)
+ $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test "$pass" = link; then
+ dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) xrpath="$xrpath $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la) lib="$deplib" ;;
+ *.$libext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ valid_a_lib=no
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ if eval $echo \"$deplib\" 2>/dev/null \
+ | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=yes
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=yes
+ ;;
+ esac
+ if test "$valid_a_lib" != yes; then
+ $echo
+ $echo "*** Warning: Trying to link with static lib archive $deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because the file extensions .$libext of this argument makes me believe"
+ $echo "*** that it is just a static archive that I should not used here."
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the"
+ $echo "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ fi
+ continue
+ ;;
+ prog)
+ if test "$pass" != link; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test "$pass" = conv; then
+ deplibs="$deplib $deplibs"
+ elif test "$linkmode" = prog; then
+ if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ newdlprefiles="$newdlprefiles $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ newdlfiles="$newdlfiles $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=yes
+ continue
+ ;;
+ esac # case $deplib
+ if test "$found" = yes || test -f "$lib"; then :
+ else
+ $echo "$modename: cannot find the library \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$ladir" = "X$lib" && ladir="."
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+
+ if test "$linkmode,$pass" = "lib,link" ||
+ test "$linkmode,$pass" = "prog,scan" ||
+ { test "$linkmode" != prog && test "$linkmode" != lib; }; then
+ test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
+ test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
+ fi
+
+ if test "$pass" = conv; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ convenience="$convenience $ladir/$objdir/$old_library"
+ old_convenience="$old_convenience $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+ elif test "$linkmode" != prog && test "$linkmode" != lib; then
+ $echo "$modename: \`$lib' is not a convenience library" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ for l in $old_library $library_names; do
+ linklib="$l"
+ done
+ if test -z "$linklib"; then
+ $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # This library was specified with -dlopen.
+ if test "$pass" = dlopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test -z "$dlname" ||
+ test "$dlopen_support" != yes ||
+ test "$build_libtool_libs" = no; then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ dlprefiles="$dlprefiles $lib $dependency_libs"
+ else
+ newdlfiles="$newdlfiles $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
+ $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
+ abs_ladir="$ladir"
+ fi
+ ;;
+ esac
+ laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+
+ # Find the relevant object directory and library name.
+ if test "X$installed" = Xyes; then
+ if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ $echo "$modename: warning: library \`$lib' was moved." 1>&2
+ dir="$ladir"
+ absdir="$abs_ladir"
+ libdir="$abs_ladir"
+ else
+ dir="$libdir"
+ absdir="$libdir"
+ fi
+ test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir="$ladir"
+ absdir="$abs_ladir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ else
+ dir="$ladir/$objdir"
+ absdir="$abs_ladir/$objdir"
+ # Remove this search path later
+ notinst_path="$notinst_path $abs_ladir"
+ fi
+ fi # $installed = yes
+ name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+
+ # This library was specified with -dlpreopen.
+ if test "$pass" = dlpreopen; then
+ if test -z "$libdir"; then
+ $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ newdlprefiles="$newdlprefiles $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ newdlprefiles="$newdlprefiles $dir/$dlname"
+ else
+ newdlprefiles="$newdlprefiles $dir/$linklib"
+ fi
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test "$linkmode" = lib; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test "$linkmode" = prog && test "$pass" != link; then
+ newlib_search_path="$newlib_search_path $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=no
+ if test "$link_all_deplibs" != no || test -z "$library_names" ||
+ test "$build_libtool_libs" = no; then
+ linkalldeplibs=yes
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
+ esac
+ # Need to link against all dependency_libs?
+ if test "$linkalldeplibs" = yes; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test "$linkmode,$pass" = "prog,link"; then
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
+ # Make sure the rpath contains only unique directories.
+ case "$temp_rpath " in
+ *" $dir "*) ;;
+ *" $absdir "*) ;;
+ *) temp_rpath="$temp_rpath $dir" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if test "$alldeplibs" = yes &&
+ { test "$deplibs_check_method" = pass_all ||
+ { test "$build_libtool_libs" = yes &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ if test -n "$library_names" &&
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
+ if test "$installed" = no; then
+ notinst_deplibs="$notinst_deplibs $lib"
+ need_relink=yes
+ fi
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on
+ # some systems (darwin)
+ if test "$shouldnotlink" = yes && test "$pass" = link ; then
+ $echo
+ if test "$linkmode" = prog; then
+ $echo "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $echo "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $echo "*** $linklib is not portable!"
+ fi
+ if test "$linkmode" = lib &&
+ test "$hardcode_into_libs" = yes; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) compile_rpath="$compile_rpath $absdir"
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir"
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+ libname=`eval \\$echo \"$libname_spec\"`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname="$dlname"
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw*)
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot="$soname"
+ soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
+ newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ $show "extracting exported symbol list from \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$extract_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ $show "generating import library for \`$soname'"
+ save_ifs="$IFS"; IFS='~'
+ cmds=$old_archive_from_expsyms_cmds
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test "$linkmode" = prog || test "$mode" != relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test "$hardcode_direct" = no; then
+ add="$dir/$linklib"
+ case $host in
+ *-*-sco3.2v5* ) add_dir="-L$dir" ;;
+ *-*-darwin* )
+ # if the lib is a module then we can not link against
+ # it, someone is ignoring the new warnings I added
+ if /usr/bin/file -L $add 2> /dev/null | $EGREP "bundle" >/dev/null ; then
+ $echo "** Warning, lib $linklib is a module, not a shared library"
+ if test -z "$old_library" ; then
+ $echo
+ $echo "** And there doesn't seem to be a static archive available"
+ $echo "** The link will probably fail, sorry"
+ else
+ add="$dir/$old_library"
+ fi
+ fi
+ esac
+ elif test "$hardcode_minus_L" = no; then
+ case $host in
+ *-*-sunos*) add_shlibpath="$dir" ;;
+ esac
+ add_dir="-L$dir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = no; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test "$hardcode_direct" = yes; then
+ add="$dir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$dir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case "$libdir" in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ add_shlibpath="$dir"
+ add="-l$name"
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test "$lib_linked" != yes; then
+ $echo "$modename: configuration error: unsupported hardcode properties"
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
+ esac
+ fi
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test "$hardcode_direct" != yes && \
+ test "$hardcode_minus_L" != yes && \
+ test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test "$linkmode" = prog || test "$mode" = relink; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test "$hardcode_direct" = yes; then
+ add="$libdir/$linklib"
+ elif test "$hardcode_minus_L" = yes; then
+ add_dir="-L$libdir"
+ add="-l$name"
+ elif test "$hardcode_shlibpath_var" = yes; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
+ esac
+ add="-l$name"
+ elif test "$hardcode_automatic" = yes; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib" ; then
+ add="$inst_prefix_dir$libdir/$linklib"
+ else
+ add="$libdir/$linklib"
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir="-L$libdir"
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case "$libdir" in
+ [\\/]*)
+ add_dir="$add_dir -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add="-l$name"
+ fi
+
+ if test "$linkmode" = prog; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test "$linkmode" = prog; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test "$hardcode_direct" != unsupported; then
+ test -n "$old_library" && linklib="$old_library"
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test "$build_libtool_libs" = yes; then
+ # Not a shared library
+ if test "$deplibs_check_method" != pass_all; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ $echo
+ $echo "*** Warning: This system can not link to static lib archive $lib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have."
+ if test "$module" = yes; then
+ $echo "*** But as you try to build a module library, libtool will still create "
+ $echo "*** a static module, that should work as long as the dlopening application"
+ $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ convenience="$convenience $dir/$old_library"
+ old_convenience="$old_convenience $dir/$old_library"
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test "$linkmode" = lib; then
+ if test -n "$dependency_libs" &&
+ { test "$hardcode_into_libs" != yes ||
+ test "$build_old_libs" = yes ||
+ test "$link_static" = yes; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) xrpath="$xrpath $temp_xrpath";;
+ esac;;
+ *) temp_deplibs="$temp_deplibs $libdir";;
+ esac
+ done
+ dependency_libs="$temp_deplibs"
+ fi
+
+ newlib_search_path="$newlib_search_path $absdir"
+ # Link against this library
+ test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ if test "X$duplicate_deps" = "Xyes" ; then
+ case "$tmp_libs " in
+ *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+ esac
+ fi
+ tmp_libs="$tmp_libs $deplib"
+ done
+
+ if test "$link_all_deplibs" != no; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) path="$deplib" ;;
+ *.la)
+ dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$deplib" && dir="."
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
+ absdir="$dir"
+ fi
+ ;;
+ esac
+ if grep "^installed=no" $deplib > /dev/null; then
+ path="$absdir/$objdir"
+ else
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$absdir" != "$libdir"; then
+ $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
+ fi
+ path="$absdir"
+ fi
+ depdepl=
+ case $host in
+ *-*-darwin*)
+ # we do not want to link against static libs,
+ # but need to link against shared
+ eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names" ; then
+ for tmp in $deplibrary_names ; do
+ depdepl=$tmp
+ done
+ if test -f "$path/$depdepl" ; then
+ depdepl="$path/$depdepl"
+ fi
+ # do not add paths which are already there
+ case " $newlib_search_path " in
+ *" $path "*) ;;
+ *) newlib_search_path="$newlib_search_path $path";;
+ esac
+ fi
+ path=""
+ ;;
+ *)
+ path="-L$path"
+ ;;
+ esac
+ ;;
+ -l*)
+ case $host in
+ *-*-darwin*)
+ # Again, we only want to link against shared libraries
+ eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
+ for tmp in $newlib_search_path ; do
+ if test -f "$tmp/lib$tmp_libs.dylib" ; then
+ eval depdepl="$tmp/lib$tmp_libs.dylib"
+ break
+ fi
+ done
+ path=""
+ ;;
+ *) continue ;;
+ esac
+ ;;
+ *) continue ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ case " $deplibs " in
+ *" $depdepl "*) ;;
+ *) deplibs="$depdepl $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ dependency_libs="$newdependency_libs"
+ if test "$pass" = dlpreopen; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test "$pass" != dlopen; then
+ if test "$pass" != conv; then
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) lib_search_path="$lib_search_path $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ fi
+
+ if test "$linkmode,$pass" != "prog,link"; then
+ vars="deplibs"
+ else
+ vars="compile_deplibs finalize_deplibs"
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ ;;
+ *) tmp_libs="$tmp_libs $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs ; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=""
+ ;;
+ esac
+ if test -n "$i" ; then
+ tmp_libs="$tmp_libs $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test "$linkmode" = prog; then
+ dlfiles="$newdlfiles"
+ dlprefiles="$newdlprefiles"
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for archives" 1>&2
+ fi
+
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ $echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
+ fi
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs="$output"
+ objs="$objs$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form `libNAME.la'.
+ case $outputname in
+ lib*)
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ if test "$module" = no; then
+ $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ if test "$need_lib_prefix" != no; then
+ # Add the "lib" prefix for modules if required
+ name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test "$deplibs_check_method" != pass_all; then
+ $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
+ exit $EXIT_FAILURE
+ else
+ $echo
+ $echo "*** Warning: Linking the shared library $output against the non-libtool"
+ $echo "*** objects $objs is not portable!"
+ libobjs="$libobjs $objs"
+ fi
+ fi
+
+ if test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
+ fi
+
+ set dummy $rpath
+ if test "$#" -gt 2; then
+ $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
+ fi
+ install_libdir="$2"
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test "$build_libtool_libs" = yes; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a `.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
+ fi
+ else
+
+ # Parse the version information argument.
+ save_ifs="$IFS"; IFS=':'
+ set dummy $vinfo 0 0 0
+ IFS="$save_ifs"
+
+ if test -n "$8"; then
+ $echo "$modename: too many parameters to \`-version-info'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major="$2"
+ number_minor="$3"
+ number_revision="$4"
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # which has an extra 1 added just for fun
+ #
+ case $version_type in
+ darwin|linux|osf|windows)
+ current=`expr $number_major + $number_minor`
+ age="$number_minor"
+ revision="$number_revision"
+ ;;
+ freebsd-aout|freebsd-elf|sunos)
+ current="$number_major"
+ revision="$number_minor"
+ age="0"
+ ;;
+ irix|nonstopux)
+ current=`expr $number_major + $number_minor - 1`
+ age="$number_minor"
+ revision="$number_minor"
+ ;;
+ esac
+ ;;
+ no)
+ current="$2"
+ revision="$3"
+ age="$4"
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
+ $echo "$modename: \`$vinfo' is not valid version information" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ # Darwin ld doesn't like 0 for these options...
+ minor_current=`expr $current + 1`
+ verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
+ ;;
+
+ freebsd-aout)
+ major=".$current"
+ versuffix=".$current.$revision";
+ ;;
+
+ freebsd-elf)
+ major=".$current"
+ versuffix=".$current";
+ ;;
+
+ irix | nonstopux)
+ major=`expr $current - $age + 1`
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring="$verstring_prefix$major.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test "$loop" -ne 0; do
+ iface=`expr $revision - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring_prefix$major.$iface:$verstring"
+ done
+
+ # Before this point, $major must not contain `.'.
+ major=.$major
+ versuffix="$major.$revision"
+ ;;
+
+ linux)
+ major=.`expr $current - $age`
+ versuffix="$major.$age.$revision"
+ ;;
+
+ osf)
+ major=.`expr $current - $age`
+ versuffix=".$current.$age.$revision"
+ verstring="$current.$age.$revision"
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test "$loop" -ne 0; do
+ iface=`expr $current - $loop`
+ loop=`expr $loop - 1`
+ verstring="$verstring:${iface}.0"
+ done
+
+ # Make executables depend on our current version.
+ verstring="$verstring:${current}.0"
+ ;;
+
+ sunos)
+ major=".$current"
+ versuffix=".$current.$revision"
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 filesystems.
+ major=`expr $current - $age`
+ versuffix="-$major"
+ ;;
+
+ *)
+ $echo "$modename: unknown library version type \`$version_type'" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring="0.0"
+ ;;
+ esac
+ if test "$need_version" = no; then
+ versuffix=
+ else
+ versuffix=".0.0"
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test "$avoid_version" = yes && test "$need_version" = no; then
+ major=
+ versuffix=
+ verstring=""
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test "$allow_undefined" = yes; then
+ if test "$allow_undefined_flag" = unsupported; then
+ $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
+ build_libtool_libs=no
+ build_old_libs=yes
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag="$no_undefined_flag"
+ fi
+ fi
+
+ if test "$mode" != relink; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$echo "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
+ if test "X$precious_files_regex" != "X"; then
+ if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ removelist="$removelist $p"
+ ;;
+ *) ;;
+ esac
+ done
+ if test -n "$removelist"; then
+ $show "${rm}r $removelist"
+ $run ${rm}r $removelist
+ fi
+ fi
+
+ # Now set the variables for building old libraries.
+ if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
+ oldlibs="$oldlibs $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ for path in $notinst_path; do
+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
+ deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
+ done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ temp_xrpath="$temp_xrpath -R$libdir"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles="$dlfiles"
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) dlfiles="$dlfiles $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles="$dlprefiles"
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) dlprefiles="$dlprefiles $lib" ;;
+ esac
+ done
+
+ if test "$build_libtool_libs" = yes; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ deplibs="$deplibs -framework System"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
+ # Do not include libc due to us having libc/libc_r.
+ test "X$arg" = "X-lc" && continue
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test "$build_libtool_need_lc" = "yes"; then
+ deplibs="$deplibs -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=""
+ versuffix=""
+ major=""
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $rm conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $rm conftest
+ $LTCC -o conftest conftest.c $deplibs
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" -ne "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which I believe you do not have"
+ $echo "*** because a test_compile did reveal that the linker did not use it for"
+ $echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ name="`expr $i : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ $rm conftest
+ $LTCC -o conftest conftest.c $i
+ # Did it work?
+ if test "$?" -eq 0 ; then
+ ldd_output=`ldd conftest`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ newdeplibs="$newdeplibs $i"
+ i=""
+ ;;
+ esac
+ fi
+ if test -n "$i" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ deplib_matches=`eval \\$echo \"$library_names_spec\"`
+ set dummy $deplib_matches
+ deplib_match=$2
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
+ newdeplibs="$newdeplibs $i"
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: dynamic linker does not accept needed library $i."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because a test_compile did reveal that the linker did not use this one"
+ $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning! Library $i is needed by this library but I was not able to"
+ $echo "*** make it link in! You will probably need to install it or some"
+ $echo "*** library that it depends on before this library will be fully"
+ $echo "*** functional. Installing it before continuing would be even better."
+ fi
+ else
+ newdeplibs="$newdeplibs $i"
+ fi
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method
+ file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test "$name" != "" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null \
+ | grep " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib="$potent_lib"
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
+ *) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$file_magic_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method
+ match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
+ for a_deplib in $deplibs; do
+ name="`expr $a_deplib : '-l\(.*\)'`"
+ # If $name is empty we are operating on a -L argument.
+ if test -n "$name" && test "$name" != "0"; then
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib" ; then
+ libname=`eval \\$echo \"$libname_spec\"`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib="$potent_lib" # see symlink-check above in file_magic test
+ if eval $echo \"$potent_lib\" 2>/dev/null \
+ | ${SED} 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ newdeplibs="$newdeplibs $a_deplib"
+ a_deplib=""
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib" ; then
+ droppeddeps=yes
+ $echo
+ $echo "*** Warning: linker path does not have real file for library $a_deplib."
+ $echo "*** I have the capability to make that library automatically link in when"
+ $echo "*** you link to this library. But I can only do this if you have a"
+ $echo "*** shared version of the library, which you do not appear to have"
+ $echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib" ; then
+ $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $echo "*** with $libname and none of the candidates passed a file format test"
+ $echo "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ else
+ # Add a -L argument.
+ newdeplibs="$newdeplibs $a_deplib"
+ fi
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=""
+ tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
+ -e 's/ -[LR][^ ]*//g'`
+ if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
+ for i in $predeps $postdeps ; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
+ done
+ fi
+ if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \
+ | grep . >/dev/null; then
+ $echo
+ if test "X$deplibs_check_method" = "Xnone"; then
+ $echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ $echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ $echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ fi
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ if test "$droppeddeps" = yes; then
+ if test "$module" = yes; then
+ $echo
+ $echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $echo "*** dependencies of module $libname. Therefore, libtool will create"
+ $echo "*** a static module, that should work as long as the dlopening"
+ $echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ $echo
+ $echo "*** However, this would only work if libtool was able to extract symbol"
+ $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
+ $echo "*** not find such a program. So, this module is probably useless."
+ $echo "*** \`nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ $echo "*** The inter-library dependencies that have been dropped here will be"
+ $echo "*** automatically added whenever a program is linked with this library"
+ $echo "*** or is declared to -dlopen it."
+
+ if test "$allow_undefined" = no; then
+ $echo
+ $echo "*** Since this library must not contain undefined symbols,"
+ $echo "*** because either the platform does not support them or"
+ $echo "*** it was explicitly requested with -no-undefined,"
+ $echo "*** libtool will only create a static version of it."
+ if test "$build_old_libs" = no; then
+ oldlibs="$output_objdir/$libname.$libext"
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test "$build_libtool_libs" = yes; then
+ if test "$hardcode_into_libs" = yes; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath="$finalize_rpath"
+ test "$mode" != relink && rpath="$compile_rpath$rpath"
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ dep_rpath="$dep_rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ if test -n "$hardcode_libdir_flag_spec_ld"; then
+ eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
+ else
+ eval dep_rpath=\"$hardcode_libdir_flag_spec\"
+ fi
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath="$finalize_shlibpath"
+ test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ realname="$2"
+ shift; shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname="$realname"
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib="$output_objdir/$realname"
+ for link
+ do
+ linknames="$linknames $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ if len=`expr "X$cmd" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ $show "using reloadable object file for export list..."
+ skipped_export=:
+ fi
+ done
+ IFS="$save_ifs"
+ if test -n "$export_symbols_regex"; then
+ $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
+ $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ $show "$mv \"${export_symbols}T\" \"$export_symbols\""
+ $run eval '$mv "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ tmp_deplibs="$tmp_deplibs $test_deplib"
+ ;;
+ esac
+ done
+ deplibs="$tmp_deplibs"
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ libobjs="$libobjs $func_extract_archives_result"
+ fi
+ fi
+
+ if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ linker_flags="$linker_flags $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test "X$skipped_export" != "X:" && len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise.
+ $echo "creating reloadable object files..."
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ output_la=`$echo "X$output" | $Xsed -e "$basename"`
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ delfiles=
+ last_robj=
+ k=1
+ output=$output_objdir/$output_la-${k}.$objext
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+ if test "X$objlist" = X ||
+ { len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len"; }; then
+ objlist="$objlist $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test "$k" -eq 1 ; then
+ # The first file doesn't have a previous command to add.
+ eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-${k}.$objext
+ k=`expr $k + 1`
+ output=$output_objdir/$output_la-${k}.$objext
+ objlist=$obj
+ len=1
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
+
+ if ${skipped_export-false}; then
+ $show "generating symbol list for \`$libname.la'"
+ export_symbols="$output_objdir/$libname.exp"
+ $run $rm $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
+ fi
+
+ # Set up a command to remove the reloadable object files
+ # after they are used.
+ i=0
+ while test "$i" -lt "$k"
+ do
+ i=`expr $i + 1`
+ delfiles="$delfiles $output_objdir/$output_la-${i}.$objext"
+ done
+
+ $echo "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test "$module" = yes && test -n "$module_cmds" ; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+
+ # Append the command to remove the reloadable object files
+ # to the just-reset $cmds.
+ eval cmds=\"\$cmds~\$rm $delfiles\"
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Restore the uninstalled library and exit
+ if test "$mode" = relink; then
+ $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test "$module" = yes || test "$export_dynamic" = yes; then
+ # On all known operating systems, these are identical.
+ dlname="$soname"
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$deplibs"; then
+ $echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
+ fi
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ $echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$rpath"; then
+ $echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$xrpath"; then
+ $echo "$modename: warning: \`-R' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for objects" 1>&2
+ fi
+
+ case $output in
+ *.lo)
+ if test -n "$objs$old_deplibs"; then
+ $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ libobj="$output"
+ obj=`$echo "X$output" | $Xsed -e "$lo2o"`
+ ;;
+ *)
+ libobj=
+ obj="$output"
+ ;;
+ esac
+
+ # Delete the old objects.
+ $run $rm $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # reload_cmds runs $LD directly, so let us get rid of
+ # -Wl from whole_archive_flag_spec
+ wl=
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
+ else
+ gentop="$output_objdir/${obj}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # Create the old-style object.
+ reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
+
+ output="$obj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$build_libtool_libs" != yes; then
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $run eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test -n "$pic_flag" || test "$pic_mode" != default; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output="$libobj"
+ cmds=$reload_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$gentop"; then
+ $show "${rm}r $gentop"
+ $run ${rm}r $gentop
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
+ esac
+ if test -n "$vinfo"; then
+ $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
+ fi
+
+ if test -n "$release"; then
+ $echo "$modename: warning: \`-release' is ignored for programs" 1>&2
+ fi
+
+ if test "$preload" = yes; then
+ if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
+ test "$dlopen_self_static" = unknown; then
+ $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
+ fi
+ fi
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
+ ;;
+ esac
+
+ case $host in
+ *darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ if test "$tagname" = CXX ; then
+ compile_command="$compile_command ${wl}-bind_at_load"
+ finalize_command="$finalize_command ${wl}-bind_at_load"
+ fi
+ ;;
+ esac
+
+ compile_command="$compile_command $compile_deplibs"
+ finalize_command="$finalize_command $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_rpath="$finalize_rpath $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) perm_rpath="$perm_rpath $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ *) dllsearchpath="$dllsearchpath:$libdir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath="$rpath"
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs="$libdir"
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ rpath="$rpath $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir="$hardcode_libdirs"
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath="$rpath"
+
+ if test -n "$libobjs" && test "$build_old_libs" = yes; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ fi
+
+ dlsyms=
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ dlsyms="${outputname}S.c"
+ else
+ $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
+ fi
+ fi
+
+ if test -n "$dlsyms"; then
+ case $dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${outputname}.nm"
+
+ $show "$rm $nlist ${nlist}S ${nlist}T"
+ $run $rm "$nlist" "${nlist}S" "${nlist}T"
+
+ # Parse the name list into a source file.
+ $show "creating $output_objdir/$dlsyms"
+
+ test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
+/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
+/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* Prevent the only kind of declaration conflicts we can make. */
+#define lt_preloaded_symbols some_other_symbol
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ $show "generating symbol list for \`$output'"
+
+ test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
+ for arg in $progfiles; do
+ $show "extracting global C symbols from \`$arg'"
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ $run eval '$mv "$nlist"T "$nlist"'
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $run $rm $export_symbols
+ $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ else
+ $run eval "${SED} -e 's/\([ ][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ $run eval 'mv "$nlist"T "$nlist"'
+ fi
+ fi
+
+ for arg in $dlprefiles; do
+ $show "extracting global C symbols from \`$arg'"
+ name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
+ $run eval '$echo ": $name " >> "$nlist"'
+ $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -z "$run"; then
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $mv "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if grep -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ grep -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
+ else
+ $echo '/* NONE */' >> "$output_objdir/$dlsyms"
+ fi
+
+ $echo >> "$output_objdir/$dlsyms" "\
+
+#undef lt_preloaded_symbols
+
+#if defined (__STDC__) && __STDC__
+# define lt_ptr void *
+#else
+# define lt_ptr char *
+# define const
+#endif
+
+/* The mapping between symbol names and symbols. */
+"
+
+ case $host in
+ *cygwin* | *mingw* )
+ $echo >> "$output_objdir/$dlsyms" "\
+/* DATA imports from DLLs on WIN32 can't be const, because
+ runtime relocations are performed -- see ld's documentation
+ on pseudo-relocs */
+struct {
+"
+ ;;
+ * )
+ $echo >> "$output_objdir/$dlsyms" "\
+const struct {
+"
+ ;;
+ esac
+
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ const char *name;
+ lt_ptr address;
+}
+lt_preloaded_symbols[] =
+{\
+"
+
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
+
+ $echo >> "$output_objdir/$dlsyms" "\
+ {0, (lt_ptr) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ fi
+
+ pic_flag_for_symtable=
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
+ esac;;
+ *-*-hpux*)
+ case "$compile_command " in
+ *" -static "*) ;;
+ *) pic_flag_for_symtable=" $pic_flag";;
+ esac
+ esac
+
+ # Now compile the dynamic symbol file.
+ $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
+ $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
+
+ # Clean up the generated files.
+ $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
+ $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
+
+ # Transform the symbol file into the correct name.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ ;;
+ *)
+ $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
+ fi
+
+ if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
+ # Replace the output file specification.
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ link_command="$compile_command$compile_rpath"
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ $show "$link_command"
+ $run eval "$link_command"
+ status=$?
+
+ # Delete the generated files.
+ if test -n "$dlsyms"; then
+ $show "$rm $output_objdir/${outputname}S.${objext}"
+ $run $rm "$output_objdir/${outputname}S.${objext}"
+ fi
+
+ exit $status
+ fi
+
+ if test -n "$shlibpath_var"; then
+ # We should set the shlibpath_var
+ rpath=
+ for dir in $temp_rpath; do
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*)
+ # Absolute path.
+ rpath="$rpath$dir:"
+ ;;
+ *)
+ # Relative path: add a thisdir entry.
+ rpath="$rpath\$thisdir/$dir:"
+ ;;
+ esac
+ done
+ temp_rpath="$rpath"
+ fi
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ rpath="$rpath$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test "$no_install" = yes; then
+ # We don't need to create a wrapper script.
+ link_command="$compile_var$compile_command$compile_rpath"
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $run $rm $output
+ # Link the executable and exit
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+ exit $EXIT_SUCCESS
+ fi
+
+ if test "$hardcode_action" = relink; then
+ # Fast installation is not supported
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+
+ $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
+ $echo "$modename: \`$output' will be relinked during installation" 1>&2
+ else
+ if test "$fast_install" != no; then
+ link_command="$finalize_var$compile_command$finalize_rpath"
+ if test "$fast_install" = yes; then
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
+ else
+ # fast_install is set to needless
+ relink_command=
+ fi
+ else
+ link_command="$compile_var$compile_command$compile_rpath"
+ relink_command="$finalize_var$finalize_command$finalize_rpath"
+ fi
+ fi
+
+ # Replace the output file specification.
+ link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ $show "$link_command"
+ $run eval "$link_command" || exit $?
+
+ # Now create the wrapper script.
+ $show "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ relink_command="(cd `pwd`; $relink_command)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Quote $echo for shipping.
+ if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then
+ case $progpath in
+ [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";;
+ *) qecho="$SHELL `pwd`/$progpath --fallback-echo";;
+ esac
+ qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
+ else
+ qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
+ fi
+
+ # Only actually do things if our run command is non-null.
+ if test -z "$run"; then
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ cwrappersource=`$echo ${objdir}/lt-${outputname}.c`
+ cwrapper=`$echo ${output}.exe`
+ $rm $cwrappersource $cwrapper
+ trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ cat > $cwrappersource <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+
+ Currently, it simply execs the wrapper *script* "/bin/sh $output",
+ but could eventually absorb all of the scripts functionality and
+ exec $objdir/$outputname directly.
+*/
+EOF
+ cat >> $cwrappersource<<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef DIR_SEPARATOR
+#define DIR_SEPARATOR '/'
+#endif
+
+#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
+ defined (__OS2__)
+#define HAVE_DOS_BASED_FILE_SYSTEM
+#ifndef DIR_SEPARATOR_2
+#define DIR_SEPARATOR_2 '\\'
+#endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+const char *program_name = NULL;
+
+void * xmalloc (size_t num);
+char * xstrdup (const char *string);
+char * basename (const char *name);
+char * fnqualify(const char *path);
+char * strendzap(char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int i;
+
+ program_name = (char *) xstrdup ((char *) basename (argv[0]));
+ newargz = XMALLOC(char *, argc+2);
+EOF
+
+ cat >> $cwrappersource <<EOF
+ newargz[0] = "$SHELL";
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+ newargz[1] = fnqualify(argv[0]);
+ /* we know the script has the same name, without the .exe */
+ /* so make sure newargz[1] doesn't end in .exe */
+ strendzap(newargz[1],".exe");
+ for (i = 1; i < argc; i++)
+ newargz[i+1] = xstrdup(argv[i]);
+ newargz[argc+1] = NULL;
+EOF
+
+ cat >> $cwrappersource <<EOF
+ execv("$SHELL",newargz);
+EOF
+
+ cat >> $cwrappersource <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void * p = (void *) malloc (num);
+ if (!p)
+ lt_fatal ("Memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
+;
+}
+
+char *
+basename (const char *name)
+{
+ const char *base;
+
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha (name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return (char *) base;
+}
+
+char *
+fnqualify(const char *path)
+{
+ size_t size;
+ char *p;
+ char tmp[LT_PATHMAX + 1];
+
+ assert(path != NULL);
+
+ /* Is it qualified already? */
+#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
+ if (isalpha (path[0]) && path[1] == ':')
+ return xstrdup (path);
+#endif
+ if (IS_DIR_SEPARATOR (path[0]))
+ return xstrdup (path);
+
+ /* prepend the current directory */
+ /* doesn't handle '~' */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal ("getcwd failed");
+ size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
+ p = XMALLOC(char, size);
+ sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
+ return p;
+}
+
+char *
+strendzap(char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert(str != NULL);
+ assert(pat != NULL);
+
+ len = strlen(str);
+ patlen = strlen(pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (strcmp(str, pat) == 0)
+ *str = '\0';
+ }
+ return str;
+}
+
+static void
+lt_error_core (int exit_status, const char * mode,
+ const char * message, va_list ap)
+{
+ fprintf (stderr, "%s: %s: ", program_name, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
+ va_end (ap);
+}
+EOF
+ # we should really use a build-platform specific compiler
+ # here, but OTOH, the wrappers (shell script and this C one)
+ # are only useful if you want to execute the "real" binary.
+ # Since the "real" binary is built for $host, then this
+ # wrapper might as well be built for $host, too.
+ $run $LTCC -s -o $cwrapper $cwrappersource
+ ;;
+ esac
+ $rm $output
+ trap "$rm $output; exit $EXIT_FAILURE" 1 2 15
+
+ $echo > $output "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='${SED} -e 1s/^X//'
+sed_quote_subst='$sed_quote_subst'
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variable:
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$echo are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ echo=\"$qecho\"
+ file=\"\$0\"
+ # Make sure echo works.
+ if test \"X\$1\" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
+ # Yippee, \$echo works!
+ :
+ else
+ # Restart under the correct shell, and then maybe \$echo will work.
+ exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
+ fi
+ fi\
+"
+ $echo >> $output "\
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
+ done
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $echo >> $output "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" || \\
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $mkdir \"\$progdir\"
+ else
+ $rm \"\$progdir/\$file\"
+ fi"
+
+ $echo >> $output "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ $echo \"\$relink_command_output\" >&2
+ $rm \"\$progdir/\$file\"
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $rm \"\$progdir/\$program\";
+ $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $rm \"\$progdir/\$file\"
+ fi"
+ else
+ $echo >> $output "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $echo >> $output "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # Export our shlibpath_var if we have one.
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $echo >> $output "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ # fixup the dll searchpath if we need to.
+ if test -n "$dllsearchpath"; then
+ $echo >> $output "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $echo >> $output "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2*)
+ $echo >> $output "\
+ exec \$progdir\\\\\$program \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $echo >> $output "\
+ exec \$progdir/\$program \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $echo >> $output "\
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
+ exit $EXIT_FAILURE
+ fi
+ else
+ # The program doesn't exist.
+ \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
+ \$echo \"This script is just a wrapper for \$program.\" 1>&2
+ $echo \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi\
+"
+ chmod +x $output
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ if test "$build_libtool_libs" = convenience; then
+ oldobjs="$libobjs_save"
+ addlibs="$convenience"
+ build_libtool_libs=no
+ else
+ if test "$build_libtool_libs" = module; then
+ oldobjs="$libobjs_save"
+ build_libtool_libs=no
+ else
+ oldobjs="$old_deplibs $non_pic_objects"
+ fi
+ addlibs="$old_convenience"
+ fi
+
+ if test -n "$addlibs"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ func_extract_archives $gentop $addlibs
+ oldobjs="$oldobjs $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
+ cmds=$old_archive_from_new_cmds
+ else
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ $echo "X$obj" | $Xsed -e 's%^.*/%%'
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ $echo "copying selected object files to avoid basename conflicts..."
+
+ if test -z "$gentop"; then
+ gentop="$output_objdir/${outputname}x"
+ generated="$generated $gentop"
+
+ $show "${rm}r $gentop"
+ $run ${rm}r "$gentop"
+ $show "$mkdir $gentop"
+ $run $mkdir "$gentop"
+ status=$?
+ if test "$status" -ne 0 && test ! -d "$gentop"; then
+ exit $status
+ fi
+ fi
+
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ counter=`expr $counter + 1`
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ $run ln "$obj" "$gentop/$newobj" ||
+ $run cp "$obj" "$gentop/$newobj"
+ oldobjs="$oldobjs $gentop/$newobj"
+ ;;
+ *) oldobjs="$oldobjs $obj" ;;
+ esac
+ done
+ fi
+
+ eval cmds=\"$old_archive_cmds\"
+
+ if len=`expr "X$cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ $echo "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ for obj in $save_oldobjs
+ do
+ oldobjs="$objlist $obj"
+ objlist="$objlist $obj"
+ eval test_cmds=\"$old_archive_cmds\"
+ if len=`expr "X$test_cmds" : ".*"` &&
+ test "$len" -le "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj" ; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
+ objlist=
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test "X$oldobjs" = "X" ; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ eval cmd=\"$cmd\"
+ IFS="$save_ifs"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$generated"; then
+ $show "${rm}r$generated"
+ $run ${rm}r$generated
+ fi
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test "$build_old_libs" = yes && old_library="$libname.$libext"
+ $show "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
+ relink_command="$var=\"$var_value\"; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
+ if test "$hardcode_automatic" = yes ; then
+ relink_command=
+ fi
+
+
+ # Only create the output if not a dry run.
+ if test -z "$run"; then
+ for installed in no yes; do
+ if test "$installed" = yes; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output="$output_objdir/$outputname"i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdependency_libs="$newdependency_libs $libdir/$name"
+ ;;
+ *) newdependency_libs="$newdependency_libs $deplib" ;;
+ esac
+ done
+ dependency_libs="$newdependency_libs"
+ newdlfiles=
+ for lib in $dlfiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlfiles="$newdlfiles $libdir/$name"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
+ eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ if test -z "$libdir"; then
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ newdlprefiles="$newdlprefiles $libdir/$name"
+ done
+ dlprefiles="$newdlprefiles"
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlfiles="$newdlfiles $abs"
+ done
+ dlfiles="$newdlfiles"
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ newdlprefiles="$newdlprefiles $abs"
+ done
+ dlprefiles="$newdlprefiles"
+ fi
+ $rm $output
+ # place dlname in correct position for cygwin
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
+ esac
+ $echo > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test "$installed" = no && test "$need_relink" = yes; then
+ $echo >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ fi
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
+ $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool install mode
+ install)
+ modename="$modename: install"
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
+ # Allow the use of GNU shtool's install command.
+ $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
+ # Aesthetically quote it.
+ arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$arg "
+ arg="$1"
+ shift
+ else
+ install_prog=
+ arg="$nonopt"
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog$arg"
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=no
+ stripme=
+ for arg
+ do
+ if test -n "$dest"; then
+ files="$files $dest"
+ dest="$arg"
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=yes ;;
+ -f) prev="-f" ;;
+ -g) prev="-g" ;;
+ -m) prev="-m" ;;
+ -o) prev="-o" ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*) ;;
+
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ prev=
+ else
+ dest="$arg"
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
+ case $arg in
+ *$quote_scanset* | *]* | *\|* | *\&* | *\(* | *\)* | "")
+ arg="\"$arg\""
+ ;;
+ esac
+ install_prog="$install_prog $arg"
+ done
+
+ if test -z "$install_prog"; then
+ $echo "$modename: you must specify an install program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$prev"; then
+ $echo "$modename: the \`$prev' option requires an argument" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ $echo "$modename: no file or destination specified" 1>&2
+ else
+ $echo "$modename: you must specify a destination" 1>&2
+ fi
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Strip any trailing slash from the destination.
+ dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=yes
+ if test "$isdir" = yes; then
+ destdir="$dest"
+ destname=
+ else
+ destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$destdir" = "X$dest" && destdir=.
+ destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files
+ if test "$#" -gt 2; then
+ $echo "$modename: \`$dest' is not a directory" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ staticlibs="$staticlibs $file"
+ ;;
+
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ library_names=
+ old_library=
+ relink_command=
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) current_libdirs="$current_libdirs $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) future_libdirs="$future_libdirs $libdir" ;;
+ esac
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
+ test "X$dir" = "X$file/" && dir=
+ dir="$dir$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ if test "$inst_prefix_dir" = "$destdir"; then
+ $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ $echo "$modename: warning: relinking \`$file'" 1>&2
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names
+ if test -n "$2"; then
+ realname="$2"
+ shift
+ shift
+
+ srcname="$realname"
+ test -n "$relink_command" && srcname="$realname"T
+
+ # Install the shared library and build the symlinks.
+ $show "$install_prog $dir/$srcname $destdir/$realname"
+ $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
+ if test -n "$stripme" && test -n "$striplib"; then
+ $show "$striplib $destdir/$realname"
+ $run eval "$striplib $destdir/$realname" || exit $?
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ for linkname
+ do
+ if test "$linkname" != "$realname"; then
+ $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
+ fi
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib="$destdir/$realname"
+ cmds=$postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ fi
+
+ # Install the pseudo-library for information purposes.
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ instname="$dir/$name"i
+ $show "$install_prog $instname $destdir/$name"
+ $run eval "$install_prog $instname $destdir/$name" || exit $?
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
+ ;;
+ *.$objext)
+ staticdest="$destfile"
+ destfile=
+ ;;
+ *)
+ $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ if test -n "$destfile"; then
+ $show "$install_prog $file $destfile"
+ $run eval "$install_prog $file $destfile" || exit $?
+ fi
+
+ # Install the old object if enabled.
+ if test "$build_old_libs" = yes; then
+ # Deduce the name of the old-style object file.
+ staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
+
+ $show "$install_prog $staticobj $staticdest"
+ $run eval "$install_prog \$staticobj \$staticdest" || exit $?
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile="$destdir/$destname"
+ else
+ destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ destfile="$destdir/$destfile"
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=""
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ stripped_ext=".exe"
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin*|*mingw*)
+ wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
+ notinst_deplibs=
+ relink_command=
+
+ # To insure that "foo" is sourced, and not "foo.exe",
+ # finese the cygwin/MSYS system by explicitly sourcing "foo."
+ # which disallows the automatic-append-.exe behavior.
+ case $build in
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+ *) wrapperdot=${wrapper} ;;
+ esac
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . ${wrapperdot} ;;
+ *) . ./${wrapperdot} ;;
+ esac
+
+ # Check the variables that should have been set.
+ if test -z "$notinst_deplibs"; then
+ $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ finalize=yes
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ # If there is no directory component, then add one.
+ case $lib in
+ */* | *\\*) . $lib ;;
+ *) . ./$lib ;;
+ esac
+ fi
+ libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
+ finalize=no
+ fi
+ done
+
+ relink_command=
+ # To insure that "foo" is sourced, and not "foo.exe",
+ # finese the cygwin/MSYS system by explicitly sourcing "foo."
+ # which disallows the automatic-append-.exe behavior.
+ case $build in
+ *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
+ *) wrapperdot=${wrapper} ;;
+ esac
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . ${wrapperdot} ;;
+ *) . ./${wrapperdot} ;;
+ esac
+
+ outputname=
+ if test "$fast_install" = no && test -n "$relink_command"; then
+ if test "$finalize" = yes && test -z "$run"; then
+ tmpdir="/tmp"
+ test -n "$TMPDIR" && tmpdir="$TMPDIR"
+ tmpdir="$tmpdir/libtool-$$"
+ save_umask=`umask`
+ umask 0077
+ if $mkdir "$tmpdir"; then
+ umask $save_umask
+ else
+ umask $save_umask
+ $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
+ continue
+ fi
+ file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
+ outputname="$tmpdir/$file"
+ # Replace the output file specification.
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $show "$relink_command"
+ if $run eval "$relink_command"; then :
+ else
+ $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
+ ${rm}r "$tmpdir"
+ continue
+ fi
+ file="$outputname"
+ else
+ $echo "$modename: warning: cannot relink \`$file'" 1>&2
+ fi
+ else
+ # Install the binary that we compiled earlier.
+ file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyways
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
+ ;;
+ esac
+ ;;
+ esac
+ $show "$install_prog$stripme $file $destfile"
+ $run eval "$install_prog\$stripme \$file \$destfile" || exit $?
+ test -n "$outputname" && ${rm}r "$tmpdir"
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+
+ # Set up the ranlib parameters.
+ oldlib="$destdir/$name"
+
+ $show "$install_prog $file $oldlib"
+ $run eval "$install_prog \$file \$oldlib" || exit $?
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ $show "$old_striplib $oldlib"
+ $run eval "$old_striplib $oldlib" || exit $?
+ fi
+
+ # Do each command in the postinstall commands.
+ cmds=$old_postinstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || exit $?
+ done
+ IFS="$save_ifs"
+ done
+
+ if test -n "$future_libdirs"; then
+ $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
+ fi
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ test -n "$run" && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool finish mode
+ finish)
+ modename="$modename: finish"
+ libdirs="$nonopt"
+ admincmds=
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for dir
+ do
+ libdirs="$libdirs $dir"
+ done
+
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ cmds=$finish_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd" || admincmds="$admincmds
+ $cmd"
+ done
+ IFS="$save_ifs"
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $run eval "$cmds" || admincmds="$admincmds
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ test "$show" = : && exit $EXIT_SUCCESS
+
+ $echo "----------------------------------------------------------------------"
+ $echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $echo " $libdir"
+ done
+ $echo
+ $echo "If you ever happen to want to link against installed libraries"
+ $echo "in a given directory, LIBDIR, you must either use libtool, and"
+ $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
+ $echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ $echo " - add LIBDIR to the \`$shlibpath_var' environment variable"
+ $echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ $echo " - add LIBDIR to the \`$runpath_var' environment variable"
+ $echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $echo " - use the \`$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $echo " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
+ fi
+ $echo
+ $echo "See any operating system documentation about shared libraries for"
+ $echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ $echo "----------------------------------------------------------------------"
+ exit $EXIT_SUCCESS
+ ;;
+
+ # libtool execute mode
+ execute)
+ modename="$modename: execute"
+
+ # The first argument is the command name.
+ cmd="$nonopt"
+ if test -z "$cmd"; then
+ $echo "$modename: you must specify a COMMAND" 1>&2
+ $echo "$help"
+ exit $EXIT_FAILURE
+ fi
+
+ # Handle -dlopen flags immediately.
+ for file in $execute_dlfiles; do
+ if test ! -f "$file"; then
+ $echo "$modename: \`$file' is not a file" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ dir=
+ case $file in
+ *.la)
+ # Check to see that this really is a libtool archive.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
+ else
+ $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
+ continue
+ fi
+
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+
+ if test -f "$dir/$objdir/$dlname"; then
+ dir="$dir/$objdir"
+ else
+ $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
+ exit $EXIT_FAILURE
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "X$dir" = "X$file" && dir=.
+ ;;
+
+ *)
+ $echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir="$absdir"
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic="$magic"
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -*) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ # If there is no directory component, then add one.
+ case $file in
+ */* | *\\*) . $file ;;
+ *) . ./$file ;;
+ esac
+
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
+ args="$args \"$file\""
+ done
+
+ if test -z "$run"; then
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
+
+ # Now prepare to actually exec the command.
+ exec_cmd="\$cmd$args"
+ else
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
+ $echo "export $shlibpath_var"
+ fi
+ $echo "$cmd$args"
+ exit $EXIT_SUCCESS
+ fi
+ ;;
+
+ # libtool clean and uninstall mode
+ clean | uninstall)
+ modename="$modename: $mode"
+ rm="$nonopt"
+ files=
+ rmforce=
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic="$magic"
+
+ for arg
+ do
+ case $arg in
+ -f) rm="$rm $arg"; rmforce=yes ;;
+ -*) rm="$rm $arg" ;;
+ *) files="$files $arg" ;;
+ esac
+ done
+
+ if test -z "$rm"; then
+ $echo "$modename: you must specify an RM program" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ rmdirs=
+
+ origobjdir="$objdir"
+ for file in $files; do
+ dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ if test "X$dir" = "X$file"; then
+ dir=.
+ objdir="$origobjdir"
+ else
+ objdir="$dir/$origobjdir"
+ fi
+ name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
+ test "$mode" = uninstall && objdir="$dir"
+
+ # Remember objdir for removal later, being careful to avoid duplicates
+ if test "$mode" = clean; then
+ case " $rmdirs " in
+ *" $objdir "*) ;;
+ *) rmdirs="$rmdirs $objdir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if (test -L "$file") >/dev/null 2>&1 \
+ || (test -h "$file") >/dev/null 2>&1 \
+ || test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif test "$rmforce" = yes; then
+ continue
+ fi
+
+ rmfiles="$file"
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ . $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ rmfiles="$rmfiles $objdir/$n"
+ done
+ test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
+ test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
+
+ if test "$mode" = uninstall; then
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ cmds=$postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ cmds=$old_postuninstall_cmds
+ save_ifs="$IFS"; IFS='~'
+ for cmd in $cmds; do
+ IFS="$save_ifs"
+ eval cmd=\"$cmd\"
+ $show "$cmd"
+ $run eval "$cmd"
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
+ exit_status=1
+ fi
+ done
+ IFS="$save_ifs"
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+
+ # Read the .lo file
+ . $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" \
+ && test "$pic_object" != none; then
+ rmfiles="$rmfiles $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" \
+ && test "$non_pic_object" != none; then
+ rmfiles="$rmfiles $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles="$rmfiles $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
+ relink_command=
+ . $dir/$noexename
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n "$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ $show "$rm $rmfiles"
+ $run $rm $rmfiles || exit_status=1
+ done
+ objdir="$origobjdir"
+
+ # Try to remove the ${objdir}s in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ $show "rmdir $dir"
+ $run rmdir $dir >/dev/null 2>&1
+ fi
+ done
+
+ exit $exit_status
+ ;;
+
+ "")
+ $echo "$modename: you must specify a MODE" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+ esac
+
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+fi # test -z "$show_help"
+
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit $EXIT_FAILURE
+fi
+
+# We need to display help for each of the modes.
+case $mode in
+"") $echo \
+"Usage: $modename [OPTION]... [MODE-ARG]...
+
+Provide generalized library-building support services.
+
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+-n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --finish same as \`--mode=finish'
+ --help display this help message and exit
+ --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
+ --quiet same as \`--silent'
+ --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ --version print version information
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool at gnu.org>."
+ exit $EXIT_SUCCESS
+ ;;
+
+clean)
+ $echo \
+"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+compile)
+ $echo \
+"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -prefer-pic try to building PIC objects only
+ -prefer-non-pic try to building non-PIC objects only
+ -static always build a \`.o' file suitable for static linking
+
+COMPILE-COMMAND is a command to be used in creating a \`standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix \`.c' with the
+library object suffix, \`.lo'."
+ ;;
+
+execute)
+ $echo \
+"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to \`-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+finish)
+ $echo \
+"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the \`--dry-run' option if you just want to see what would be executed."
+ ;;
+
+install)
+ $echo \
+"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the \`install' or \`cp' program.
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+link)
+ $echo \
+"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -static do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+
+All other options (arguments beginning with \`-') are ignored.
+
+Every other argument is treated as a filename. Files ending in \`.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
+only library objects (\`.lo' files) may be specified, and \`-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
+using \`ar' and \`ranlib', or on Windows using \`lib'.
+
+If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+uninstall)
+ $echo \
+"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+*)
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$help" 1>&2
+ exit $EXIT_FAILURE
+ ;;
+esac
+
+$echo
+$echo "Try \`$modename --help' for more information about other modes."
+
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/dev/missing b/dev/missing
new file mode 100755
index 0000000..09edd88
--- /dev/null
+++ b/dev/missing
@@ -0,0 +1,357 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2005-02-08.22
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case "$1" in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Send bug reports to <bug-automake at gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program).
+case "$1" in
+ lex|yacc)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case "$1" in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case "$f" in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
+ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison|yacc)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f y.tab.h ]; then
+ echo >y.tab.h
+ fi
+ if [ ! -f y.tab.c ]; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex|flex)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if [ $# -ne 1 ]; then
+ eval LASTARG="\${$#}"
+ case "$LASTARG" in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if [ -f "$SRCFILE" ]; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if [ ! -f lex.yy.c ]; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ \`Help2man' package in order for those modifications to take
+ effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
+ fi
+ if [ -f "$file" ]; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit 1
+ fi
+ ;;
+
+ makeinfo)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ touch $file
+ ;;
+
+ tar)
+ shift
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar "$@" && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar "$@" && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+ case "$firstarg" in
+ *o*)
+ firstarg=`echo "$firstarg" | sed s/o//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ case "$firstarg" in
+ *h*)
+ firstarg=`echo "$firstarg" | sed s/h//`
+ tar "$firstarg" "$@" && exit 0
+ ;;
+ esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
diff --git a/dev/oldtests/AnotherFileFilterTest.cpp b/dev/oldtests/AnotherFileFilterTest.cpp
new file mode 100755
index 0000000..aa53b8c
--- /dev/null
+++ b/dev/oldtests/AnotherFileFilterTest.cpp
@@ -0,0 +1,151 @@
+#pragma ident "$Id$"
+
+
+
+#include "FileFilter.hpp"
+#include "FFData.hpp"
+#include "FFStream.hpp"
+
+/**
+ * @file AnotherFileFilterTest.cpp
+ * Here's another test of the FileFilter class
+ */
+
+using namespace gpstk;
+using namespace std;
+
+// an FFData with just an int
+class TestFFData : public FFData
+{
+public:
+ TestFFData(int i = 0) : val(i) {}
+
+ virtual ~TestFFData() {}
+
+ void reallyPutRecord(FFStream& s) const
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {}
+
+
+ void reallyGetRecord(FFStream& s)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {}
+
+
+ virtual void dump(std::ostream& s) const {s << val;}
+
+ int val;
+};
+
+
+// an operator < for TestFFData
+struct TestOperatorLessThan :
+ public binary_function<TestFFData, TestFFData, bool>
+{
+public:
+ bool operator() (TestFFData l, TestFFData r) const
+ {
+ return (l.val < r.val);
+ }
+};
+
+// an operator == for TestFFData
+struct TestOperatorEquals :
+ binary_function<TestFFData, TestFFData, bool>
+{
+public:
+ bool operator() (TestFFData l, TestFFData r) const
+ {
+ return (l.val == r.val);
+ }
+};
+
+// a filter for a range of values for TestFFData
+struct TestRangeFilter :
+ public unary_function<TestFFData, bool>
+{
+public:
+ TestRangeFilter(const int b, const int e)
+ : begin(b), end(e)
+ {}
+
+ bool operator() (TestFFData l) const
+ {
+ if ( (l.val < begin) ||
+ (l.val > end) )
+ return true;
+ return false;
+ }
+
+private:
+ int begin, end;
+
+};
+
+
+// a removing filter for a single value
+struct TestValueFilter :
+ public unary_function<TestFFData, bool>
+{
+public:
+ TestValueFilter(const int val)
+ : value(val)
+ {}
+
+ bool operator() (TestFFData l) const
+ {
+ if (value == l.val)
+ return true;
+ return false;
+ }
+
+private:
+ int value;
+};
+
+
+
+main (int argc, char *argv[])
+{
+ FileFilter<TestFFData> ff;
+
+ // add data to the filter
+ ff.addData(TestFFData(1));
+ ff.addData(TestFFData(2));
+ ff.addData(TestFFData(2));
+ ff.addData(TestFFData(2));
+ ff.addData(TestFFData(4));
+ ff.addData(TestFFData(4));
+ ff.addData(TestFFData(5));
+ ff.addData(TestFFData(3));
+ ff.addData(TestFFData(3));
+ ff.addData(TestFFData(1));
+
+ // do various operations on the data
+
+ list<TestFFData>::iterator itr;
+
+ cout << "unsorted" << endl;
+ for(itr = ff.begin(); itr != ff.end(); itr++)
+ (*itr).dump(cout << ' '); cout << endl;
+
+ cout << "sorted" << endl;
+ ff.sort(TestOperatorLessThan());
+ for(itr = ff.begin(); itr != ff.end(); itr++)
+ (*itr).dump(cout << ' '); cout << endl;
+
+ cout << "filter out values > 3" << endl;
+ ff.filter(TestRangeFilter(1,3));
+ for(itr = ff.begin(); itr != ff.end(); itr++)
+ (*itr).dump(cout << ' '); cout << endl;
+
+ cout << "filter out 2" << endl;
+ ff.filter(TestValueFilter(2));
+ for(itr = ff.begin(); itr != ff.end(); itr++)
+ (*itr).dump(cout << ' '); cout << endl;
+
+ cout << "unique only" << endl;
+ ff.unique(TestOperatorEquals());
+ for(itr = ff.begin(); itr != ff.end(); itr++)
+ (*itr).dump(cout << ' '); cout << endl;
+}
diff --git a/dev/oldtests/DayTimeConversionTest.cpp b/dev/oldtests/DayTimeConversionTest.cpp
new file mode 100644
index 0000000..4ae5920
--- /dev/null
+++ b/dev/oldtests/DayTimeConversionTest.cpp
@@ -0,0 +1,260 @@
+#pragma ident "$Id$"
+
+
+
+/* \example DayTimeToleranceTest.cpp
+ * This test evaluates user defined comparison tolerance feature of DayTime.
+ */
+
+#include <iostream>
+#include <stdlib.h>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+bool testConstructors(short year, short month, short dom,
+ short hour, short minute, double seconds,
+ short week, double sow, long zcount,
+ short hintYear,
+ double MJD)
+{
+ bool cumulativeResult = true;
+
+ gpstk::DayTime case1(year,month,dom,
+ hour, minute, seconds); // Calendar constructor
+ gpstk::DayTime case2(week%1024, sow, hintYear); // 10 bit GPS+SOW wk w/hint
+ gpstk::DayTime case3(week%1024,zcount, hintYear); // 10 bit GPS+Z count w/hint
+ gpstk::DayTime case4(MJD); // JD converted to MJD inline
+
+ cout << case1.printf(" %-9B %02d, %Y %02H:%02M:%018.15f ");
+
+ cumulativeResult = cumulativeResult &&
+ (case1==case2) && (case1==case3) && (case1==case4);
+
+ if (cumulativeResult)
+ cout << "PASS" << endl;
+ else
+ {
+ cout << " FAIL" << endl << " Conversion results were: " << endl;
+ cout << case1.printf(" %-10B %02d, %Y %02H:%02M:%02S ") << endl;
+ cout << case2.printf(" %-10B %02d, %Y %02H:%02M:%02S ") << endl;
+ cout << case3.printf(" %-10B %02d, %Y %02H:%02M:%02S ") << endl;
+ cout << case4.printf(" %-10B %02d, %Y %02H:%02M:%02S ") << endl;
+ }
+
+ return (cumulativeResult);
+}
+
+
+bool testMutators(short year, short month, short dom,
+ short hour, short minute, double seconds,
+ short doy, double sod,
+ short week, double sow, long zcount,
+ short hintYear,
+ double MJD)
+{
+ bool cumulativeResult = true;
+
+ gpstk::DayTime case1, case2, case3, case4, case5, case6;
+
+ case1.setYMD(year, month, dom);
+ case1.setHMS(hour, minute, seconds);
+
+ case2.setYMDHMS(year, month, dom, hour, minute, seconds);
+
+ case3.setYDoy(year, doy);
+ case3.setSecOfDay(sod);
+
+ case4.setGPS(week%1024, sow, hintYear);
+
+ case5.setGPS(week%1024, zcount, hintYear);
+
+ case6.setMJD(MJD);
+
+ cout << case1.printf(" %-9B %02d, %Y %02H:%02M:%018.15f ");
+
+ cumulativeResult = cumulativeResult &&
+ (case1==case2) && (case1==case3) && (case1==case4) &&
+ (case1.GPSzcount()==case5.GPSzcount()) &&
+ (fabs(case1.MJD()-case6.MJD())<.001/DayTime::SEC_DAY);
+
+ if (cumulativeResult)
+ cout << "PASS" << endl;
+ else
+ {
+ cout << "FAIL" << endl << " Conversion results were: " << endl;
+ cout << case1.printf(" %-10B %02d, %Y %02H:%02M:%018.15f using setYMD, setHMS ") << endl;
+ cout << case2.printf(" %-10B %02d, %Y %02H:%02M:%018.15f using setYMDHMS ") << endl;
+ cout << case3.printf(" %-10B %02d, %Y %02H:%02M:%018.15f using setYDoy, setSecOfDay ") << endl;
+ cout << case4.printf(" %-10B %02d, %Y %02H:%02M:%018.15f using setGPS(wk, sow, hintYr) ") << endl;
+ cout << case5.printf(" %-10B %02d, %Y %02H:%02M:%018.15f using setGPS(wk, zcount, hintYr) ") << endl;
+ cout << case6.printf(" %-10B %02d, %Y %02H:%02M:%018.15f using setMJD ") << endl;
+ }
+
+ return (cumulativeResult);
+}
+
+bool testRandomAccessors(DayTime &dtb, DayTime &dte, long ndates)
+{
+ bool cumulativeResult=true;
+
+ // Seed the random number generator
+ gpstk::DayTime dt;
+ unsigned int seed= (unsigned int) dt.GPSsow();
+ srand(seed);
+
+ unsigned long dayDiff = (unsigned long)
+ ceil(dte.MJD() - dtb.MJD());
+
+ for (int j=0;j<ndates;++j) // Loop through set of random days
+ {
+ double dayDelta = floor( rand()*1./ RAND_MAX * dayDiff);
+ double sodDelta = rand()*1./RAND_MAX;
+ gpstk::DayTime testDate;
+
+ testDate.setMJD(dtb.MJD()+dayDelta+sodDelta);
+
+ short year = testDate.year();
+ short month = testDate.month();
+ short dom = testDate.day();
+ short hour = testDate.hour();
+ short minute = testDate.minute();
+ double seconds = testDate.second();
+ short doy = testDate.DOY();
+ double sod = testDate.DOYsecond();
+ short week = testDate.GPSfullweek()%1024;
+ double sow = testDate.GPSsow();
+ long zcount = testDate.GPSzcount();
+ short hintYear = testDate.year();
+ double MJD = testDate.MJD();
+ cumulativeResult = cumulativeResult &&
+ testMutators( year, month, dom, hour, minute, seconds,
+ doy, sod,
+ week, sow, zcount, hintYear,
+ MJD );
+ } // End loop over random dates
+
+ return cumulativeResult;
+}
+
+/// returns 0 if all tests pass
+int main()
+{
+ using gpstk::DayTime;
+
+ try
+ {
+ DayTime::setDayTimeTolerance(DayTime::DAYTIME_TOLERANCE); // microsecond tolerance
+
+ cout << endl;
+ cout << "DayTime conversion tests." << endl << endl;
+
+ cout << "All comparisons accurate to " << DayTime::DAYTIME_TOLERANCE;
+ cout << " seconds." << endl << endl;
+
+
+ bool cumulativeResult = true;
+
+
+ cout << "Testing constructors using documented dates." << endl;
+ cout << endl;
+
+
+ // Directly from ICD-GPS-200
+ // Beginning of GPS Time, as defined by ICD-GPS-200
+ cumulativeResult = cumulativeResult &&
+ testConstructors(1980,1,6,0,0,0,
+ 0, 0., 0,
+ 1981,
+ 44244.);
+
+ // From GPS Signals and Performan, Misra and Enge, p. 91
+ // GPS 10 bit week rollover epoch
+ cumulativeResult = cumulativeResult &&
+ testConstructors(1999,8,22,0,0,0,
+ 0, 0., 0,
+ 2000,
+ 51412.);
+
+ // From Hoffman-Wellenhof, et al.
+ // The J2000 standard epoch
+ cumulativeResult = cumulativeResult &&
+ testConstructors(2000,1,1,12,0,0,
+ 1042, 561600., 374400,
+ 2000,
+ 2451545 - 2400000.5);
+
+
+ cout << endl << "Testing mutators using documented dates." << endl << endl;
+
+ // Directly from ICD-GPS-200
+ // Beginning of GPS Time, as defined by ICD-GPS-200
+ cumulativeResult = cumulativeResult &&
+ testMutators(1980,1,6,0,0,0,
+ 6, 0.,
+ 0, 0., 0,
+ 1981,
+ 44244.);
+
+ // From GPS Signals and Performan, Misra and Enge, p. 91
+ // GPS 10 bit week rollover epoch
+ cumulativeResult = cumulativeResult &&
+ testMutators(1999,8,22,0,0,0,
+ 234, 0.,
+ 0, 0., 0,
+ 2000,
+ 51412.);
+
+ // From Hoffman-Wellenhof, et al.
+ // The J2000 standard epoch
+ cumulativeResult = cumulativeResult &&
+ testMutators(2000,1,1,12,0,0,
+ 1, 43200.,
+ 1042, 561600., 374400,
+ 2000,
+ 2451545 - 2400000.5);
+
+ // Random accessor/mutator tests
+ cout << endl;
+ cout << "Testing accessors and mutators using randomly generated dates.";
+ cout << endl << endl;
+
+ gpstk::DayTime dtBegin(1995,1,1,0,0,0), dtEnd(2015,1,1,0,0,0);
+ cumulativeResult = cumulativeResult &&
+ testRandomAccessors( dtBegin, dtEnd, 20);
+
+
+ // Wrap it up, folks
+ cout << endl;
+ cout << setw(34);
+ cout << DayTime().printf("Completed on %B %d, %Y %H:%02M:%02S");
+ cout << endl << endl;
+
+ int ret = 0;
+ if (cumulativeResult)
+ cout << "All comparison tests PASSED." << endl;
+ else
+ {
+ cout << "One ore more comparison tests FAILED." << endl;
+ ret = 1;
+ }
+
+ return ret;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(...)
+ {
+ cout << "Some other exception thrown..." << endl;
+ }
+
+ cout << "Exiting with exceptions." << endl;
+ return -1;
+}
+
+
diff --git a/dev/oldtests/DayTimeIncrementTest.cpp b/dev/oldtests/DayTimeIncrementTest.cpp
new file mode 100644
index 0000000..05225b0
--- /dev/null
+++ b/dev/oldtests/DayTimeIncrementTest.cpp
@@ -0,0 +1,131 @@
+#pragma ident "$Id$"
+
+
+
+/* \example DayTimeToleranceTest.cpp
+ * This test evaluates user defined comparison tolerance feature of DayTime.
+ * It merely increments then decrements DayTime in different ways, then
+ * reports to the user the estimate of machine error.
+ */
+
+#include <iostream>
+#include <iomanip>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+#define TEST_METHOD(method, incCount, incValue, diffTolerance) \
+ dtcopy = dtorig; \
+ totalIncrements=0; \
+ incCountUse = incCount/2; \
+ for (long j=0; j<incCountUse; ++j) \
+ { \
+ dtcopy.method(incValue); \
+ totalIncrements++; \
+ } \
+ for (long j=0; j<incCountUse; ++j) \
+ { \
+ dtcopy.method(-incValue); \
+ totalIncrements++; \
+ } \
+ tdiff = dtcopy-dtorig; \
+ cout << setw(18) << #method; \
+ cout << setw(18) << totalIncrements; \
+ cout << setw(22) << setprecision(10) << tdiff; \
+ cout << setw(21) << setprecision(8) << tdiff * C_GPS_M; \
+ cout << setw(23) << setprecision(5) << diffTolerance; \
+ cout << endl; \
+ cumulativeResult = cumulativeResult && \
+ ( fabs(tdiff)<diffTolerance );
+
+
+/// returns 0 if all tests pass
+int main()
+{
+ try
+ {
+ cout << endl << "Testing DayTime increment safety." << endl << endl;
+
+ // Set the DayTimes using Year, Month, Day, Hour, Minute, Second.
+ gpstk::DayTime dtorig(2000,12,1,0,0,0.0), dtcopy;
+
+ // Used to time the test.
+ DayTime startTime;
+ bool cumulativeResult = true;
+ double tdiff;
+ long totalIncrements=0;
+ long incCountUse;
+
+ cout << setw(18) << "Increment operator";
+ cout << setw(18) << "# of increments";
+ cout << setw(22) << "Difference (seconds)";
+ cout << setw(21) << "Difference (meters)";
+ cout << setw(23) << "Acceptable Diff (sec)";
+
+
+ cout << endl;
+
+ cout << setw(18) << "------------------";
+ cout << setw(18) << "---------------";
+ cout << setw(22) << "--------------------";
+ cout << setw(21) << "-------------------";
+ cout << setw(23) << "--------------------";
+ cout << endl;
+
+ TEST_METHOD(operator+=, 60, 1, 1e-15)
+ TEST_METHOD(operator+=, 3600, 1, 1e-15)
+ TEST_METHOD(operator+=, 86400, 1, 1e-15)
+ TEST_METHOD(operator+=, 7*86400, 1, 1e-15)
+ cout << endl;
+
+
+ TEST_METHOD(addMilliSeconds, 1000, 1, 1e-15)
+ TEST_METHOD(addMilliSeconds, 60*1000, 1, 1e-15)
+ TEST_METHOD(addMilliSeconds, 3600*1000, 1, 1e-15)
+ TEST_METHOD(addMilliSeconds, 86400*1000, 1, 1e-15)
+ TEST_METHOD(addMilliSeconds, 86400*2*1000, 1, 1e-15)
+ TEST_METHOD(addMilliSeconds, 86400*7*1000, 1, 1e-15)
+ cout << endl;
+
+ TEST_METHOD(addMicroSeconds, 1000*1000, 1, 1e-3)
+ TEST_METHOD(addMicroSeconds, 60*1000*1000, 1, 1e-3)
+ TEST_METHOD(addMicroSeconds, 5*60*1000*1000, 1, 1e-3)
+ cout << endl;
+
+ DayTime endTime;
+
+
+ cout << endl << setprecision(4);
+ cout << endTime.printf("Completed on %B %d, %Y %H:%02M:%02S") << endl;
+ cout << "Processing time " << endTime-startTime << " seconds." << endl;
+ cout << endl;
+
+ int ret = 0;
+ if (cumulativeResult)
+ cout << "All comparison tests PASSED." << endl;
+ else
+ {
+ cout << "One ore more comparison tests FAILED." << endl;
+ ret = 1;
+ }
+
+ cout << endl;
+
+ return ret;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(...)
+ {
+ cout << "Some other exception thrown..." << endl;
+ }
+
+ cout << "Exiting with exceptions." << endl;
+ return -1;
+}
diff --git a/dev/oldtests/DayTimeIncrementTest2.cpp b/dev/oldtests/DayTimeIncrementTest2.cpp
new file mode 100644
index 0000000..e9eaed4
--- /dev/null
+++ b/dev/oldtests/DayTimeIncrementTest2.cpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+
+#include <iostream>
+#include <iomanip>
+#include <limits>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+template<class T>
+void testmeth(unsigned long incCount, T incValue)
+{
+ gpstk::DayTime dtorig(2000,12,1,0,0,0.0), dtcopy;
+ double tdiff;
+ long totalIncrements=0;
+ long incCountUse;
+
+ dtcopy = dtorig;
+ incCountUse = incCount/2;
+ for (long j=0; j<incCountUse; ++j)
+ {
+ dtcopy.addSeconds(incValue);
+ totalIncrements++;
+ }
+
+ for (long j=0; j<incCountUse; ++j)
+ {
+ dtcopy.addSeconds(-incValue);
+ totalIncrements++;
+ }
+
+ tdiff = dtcopy-dtorig;
+ cout << setw(8) << std::numeric_limits<T>::digits10
+ << setw(10) << incValue
+ << setw(15) << totalIncrements
+ << setw(20) << setprecision(10) << tdiff
+ << endl;
+}
+
+/// returns 0 if all tests pass
+int main()
+{
+ try
+ {
+ cout << "Testing DayTime addSeconds accuracy & speed." << endl;
+
+
+ cout << setw(8) << "digits"
+ << setw(10) << "incr"
+ << setw(15) << "count"
+ << setw(20) << "dt (sec)"
+ << endl;
+
+ DayTime startTime;
+ testmeth(60, (long)1);
+ testmeth(3600, (long)1);
+ testmeth(86400, (long)1);
+ testmeth(7*86400, (long)1);
+ cout << endl;
+
+ testmeth(1000, 1e-3);
+ testmeth(60*1000, 1e-3);
+ testmeth(3600*1000, 1e-3);
+ testmeth(86400*1000, 1e-3);
+ testmeth(86400*2*1000, 1e-3);
+ testmeth(86400*7*1000, 1e-3);
+ cout << endl;
+
+ testmeth(1000*1000, 1e-6);
+ testmeth(60*1000*1000, 1e-6);
+ testmeth(5*60*1000*1000, 1e-6);
+ cout << endl;
+
+ testmeth(1000*1000, 1e-9);
+ testmeth(100*1000*1000, 1e-9);
+ cout << endl;
+
+ testmeth(1000*1000, 1e-11);
+ testmeth(100*1000*1000, 1e-11);
+ cout << endl;
+
+ DayTime endTime;
+
+ cout << endl
+ << "Processing time "
+ << setprecision(4) << endTime-startTime
+ << " seconds."
+ << endl;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(...)
+ {
+ cout << "Some other exception thrown..." << endl;
+ }
+}
diff --git a/dev/oldtests/DayTimeToleranceTest.cpp b/dev/oldtests/DayTimeToleranceTest.cpp
new file mode 100644
index 0000000..d01f659
--- /dev/null
+++ b/dev/oldtests/DayTimeToleranceTest.cpp
@@ -0,0 +1,103 @@
+#pragma ident "$Id$"
+
+
+
+/* \example DayTimeToleranceTest.cpp
+ * This test evaluates user defined comparison tolerance feature of DayTime.
+ */
+
+#include <iostream>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+
+using namespace std;
+
+/// returns 0 if all tests pass
+int main()
+{
+ using gpstk::DayTime;
+
+ try
+ {
+ cout << "Testing DayTime tolerances." << endl;
+
+ // Set the DayTimes using Year, Month, Day, Hour, Minute, Second.
+ gpstk::DayTime dt1(2000,12,1,0,0,0.0),
+ dt2(2000,12,1,0,0,0.0);
+
+ int nCases = 11;
+ double secDiff[]=
+ { 1.01, 1.0, .99, .5, .25, .0, -.25, -.5, -.99, -1.0, - 1.01 };
+
+ bool oneSecTolPass[]=
+ { false, true, true, true, true, true, true, true, true, true, false};
+
+ bool halfSecTolPass[]=
+ { false, false, false, true, true, true, true, true, false, false, false};
+ // column widths: 24 24 5 7 7 7 7
+ cout << " Time 1 Time 2 "
+ " diff 1 sec 0.5 sec" << endl;
+
+ string equal( " Equal");
+ string inequal(" Inequal");
+
+ bool cumulativeResult = true;
+
+ for (int i=0; i<nCases; i++)
+ {
+ dt2 = dt1 + secDiff[i];
+ string fmt("%m/%d/%Y %02H:%02M:%07.4f");
+ cout << setw(24) << dt1.printf(fmt) << " "
+ << setw(24) << dt2.printf(fmt) << " "
+ << setw(5) << dt2 - dt1 << " ";
+
+ // Set dt1 and dt2 to one second tolerance.
+ dt1.setTolerance(gpstk::DayTime::ONE_SEC_TOLERANCE);
+ dt2.setTolerance(gpstk::DayTime::ONE_SEC_TOLERANCE);
+
+ cout << (oneSecTolPass[i] ? equal : inequal)
+ << ((dt1 == dt2) ? equal : inequal) ;
+
+ cumulativeResult = cumulativeResult && (oneSecTolPass[i]==(dt1==dt2));
+
+ // Set dt1 and dt2 to half second tolerance.
+ dt1.setTolerance(gpstk::DayTime::ONE_SEC_TOLERANCE * 0.5);
+ dt2.setTolerance(gpstk::DayTime::ONE_SEC_TOLERANCE * 0.5);
+
+ cout << (halfSecTolPass[i] ? equal : inequal)
+ << ((dt1 == dt2) ? equal : inequal)
+ << endl ;
+
+ cumulativeResult = cumulativeResult &&
+ (halfSecTolPass[i]==(dt1==dt2));
+
+ }
+
+ cout << endl;
+ cout << DayTime().printf("Completed on %B %d, %Y %H:%02M:%02S");
+ cout << endl << endl;
+
+ int ret = 0;
+ if (cumulativeResult)
+ cout << "All comparison tests PASSED." << endl;
+ else
+ {
+ cout << "One ore more comparison tests FAILED." << endl;
+ ret = 1;
+ }
+
+ return ret;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(...)
+ {
+ cout << "Some other exception thrown..." << endl;
+ }
+
+ cout << "Exiting with exceptions." << endl;
+ return -1;
+}
diff --git a/dev/oldtests/EphComp.cpp b/dev/oldtests/EphComp.cpp
new file mode 100755
index 0000000..a67b309
--- /dev/null
+++ b/dev/oldtests/EphComp.cpp
@@ -0,0 +1,107 @@
+// EphComp.cpp compare BC and SP3 ephemerides
+//
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <map>
+
+#include "DayTime.hpp"
+
+#include "RinexEphemerisStore.hpp"
+#include "SP3EphemerisStore.hpp"
+
+#include "CommandOption.hpp"
+#include "CommandOptionParser.hpp"
+
+/**
+ * @file Ephcomp.cpp
+ *
+ */
+using namespace std;
+
+int main(int argc, char *argv[])
+{
+ try
+ {
+ gpstk::CommandOptionNoArg
+ helpOption('h', "help", "Print help usage");
+ gpstk::CommandOptionWithNumberArg
+ prnOption('s', "prn", "Which SV to compare");
+ gpstk::CommandOptionWithAnyArg
+ sp3Files('p', "precise", "SP3 file",true),
+ bceFiles('b', "broadcast", "RINEX nav file",true);
+
+ string appDesc("Computes diferences between broadcast and precise ephemerides.");
+ gpstk::CommandOptionParser cop(appDesc);
+ cop.parseOptions(argc, argv);
+
+ if (helpOption.getCount() || cop.hasErrors())
+ {
+ if (cop.hasErrors())
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ exit(0);
+ }
+
+ // load all the SP3 ephemerides files
+ gpstk::SP3EphemerisStore SP3EphList;
+ SP3EphList.loadFiles(sp3Files.getValue());
+
+ // load the BC ephemerides
+ gpstk::RinexEphemerisStore BCEphList;
+ BCEphList.loadFiles(bceFiles.getValue());
+
+ int prn=13;
+ if (prnOption.getCount())
+ prn = gpstk::StringUtils::asInt((prnOption.getValue())[0]);
+
+ // choose a time range within the data....
+ gpstk::DayTime te(BCEphList.getFinalTime());
+ gpstk::DayTime t(BCEphList.getInitialTime());
+ //BCEphList.SearchNear();
+ gpstk::Xvt SP3PVT,BCPVT;
+ while (t < te)
+ {
+ t += 15.0;
+ try
+ {
+ // get the SP3 & BCE PVT
+ SP3PVT = SP3EphList.getPrnXvt(prn,t);
+ BCPVT = BCEphList.getPrnXvt(prn,t);
+ cout << fixed << t
+ << " " << setw(2) << prn
+ << setprecision(6)
+ << " " << setw(13) << BCPVT.x[0]-SP3PVT.x[0]
+ << " " << setw(13) << BCPVT.x[1]-SP3PVT.x[1]
+ << " " << setw(13) << BCPVT.x[2]-SP3PVT.x[2]
+ << scientific
+ << " " << setw(13) << BCPVT.dtime-SP3PVT.dtime
+ << fixed
+ << " " << setw(13) << BCPVT.v[0]-SP3PVT.v[0]
+ << " " << setw(13) << BCPVT.v[1]-SP3PVT.v[1]
+ << " " << setw(13) << BCPVT.v[2]-SP3PVT.v[2]
+ << scientific
+ << " " << setw(13) << BCPVT.ddtime-SP3PVT.ddtime
+ << endl;
+ }
+ catch (gpstk::EphemerisStore::NoEphemerisFound& e)
+ {
+ cerr << t << " " << e << endl;
+ continue;
+ }
+
+ }
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ exit(-1);
+ }
+ catch (...)
+ {
+ cout << "Caught an unknown exception" << endl;
+ exit(-1);
+ }
+
+ return 0;
+}
diff --git a/trunk/tests/EphComp.gp b/dev/oldtests/EphComp.gp
similarity index 100%
rename from trunk/tests/EphComp.gp
rename to dev/oldtests/EphComp.gp
diff --git a/trunk/tests/EphCompWin.gp b/dev/oldtests/EphCompWin.gp
similarity index 100%
rename from trunk/tests/EphCompWin.gp
rename to dev/oldtests/EphCompWin.gp
diff --git a/dev/oldtests/FileSpecTest.cpp b/dev/oldtests/FileSpecTest.cpp
new file mode 100755
index 0000000..6221826
--- /dev/null
+++ b/dev/oldtests/FileSpecTest.cpp
@@ -0,0 +1,116 @@
+#pragma ident "$Id$"
+
+
+
+#include <iostream>
+#include <cstdio>
+
+#include "FileSpec.hpp"
+#include "FileHunter.hpp"
+#include "DayTime.hpp"
+
+/**
+ * @file FileSpecTest.cpp
+ *
+ */
+
+using namespace std;
+
+main()
+{
+ try
+ {
+ cout << "Please make sure you've run genFileSpecTestDirs.pl before beginning." << endl;
+ cout << "push enter to continue" << endl;
+ getchar();
+
+ int i;
+#ifndef _WIN32
+ gpstk::FileHunter moo("fstest/ADMS%3n/RINEXOBS/S%2n%t%03jA.%02yO");
+#else
+ gpstk::FileHunter moo("fstest\\ADMS%3n\\RINEXOBS\\S%2n%t%03jA.%02yO");
+#endif
+ moo.dump(cout);
+
+ gpstk::DayTime start = gpstk::DayTime(2001, 51, (double)0);
+ gpstk::DayTime end = gpstk::DayTime(2001, 53, (double)0);
+ cout << "All files should be between " << start << " and " << end << " ascending. " << endl;
+ vector<string> vs = moo.find(start,
+ end,
+ gpstk::FileSpec::ascending);
+ for(i = 0; i < vs.size(); i++)
+ {
+ cout << "search1 " << vs[i] << endl;
+ }
+
+ cout << endl;
+ cout << "All files should be between " << start << " and " << end << " descending. " << endl;
+ vs = moo.find(start,
+ end,
+ gpstk::FileSpec::descending);
+ for(i = 0; i < vs.size(); i++)
+ {
+ cout << "2 " << vs[i] << endl;
+ }
+
+ cout << endl;
+ cout << "All files ascending order" << endl;
+ vs = moo.find(gpstk::DayTime::BEGINNING_OF_TIME,
+ gpstk::DayTime::END_OF_TIME,
+ gpstk::FileSpec::ascending);
+ for(i = 0; i < vs.size(); i++)
+ {
+ cout << "search3 " << vs[i] << endl;
+ }
+
+ cout << endl;
+ vector<string> stationFilter;
+ stationFilter.push_back("85402");
+ moo.setFilter(gpstk::FileSpec::station, stationFilter);
+ cout << "All files from 85402 descending order" << endl;
+ vs = moo.find(gpstk::DayTime::BEGINNING_OF_TIME,
+ gpstk::DayTime::END_OF_TIME,
+ gpstk::FileSpec::descending);
+ for(i = 0; i < vs.size(); i++)
+ {
+ cout << "search4 " << vs[i] << endl;
+ }
+
+ // this tests the version filtering of file hunter
+ cout << " version search shoudl return the highest number " << endl;
+ moo.newHunt("%1v");
+ moo.dump(cout);
+ vs = moo.find();
+ for(i = 0; i < vs.size(); i++)
+ {
+ cout << "version search " << vs[i] << endl;
+ }
+ cout << endl;
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e << endl;
+ return -1;
+ }
+
+ // this tests the FileSpec finctions for extracting and setting
+ // file information
+
+ cout << "testing FileSpec extraction functions" << endl;
+ gpstk::FileSpec boo("ADMS%3n/RINEXOBS/S%2n%t%03jA.%02yO");
+ boo.dump(cout);
+ gpstk::DayTime now;
+ gpstk::FileSpec::FSTStringMap fstsMap;
+ fstsMap[gpstk::FileSpec::station] = string("85408");
+ fstsMap[gpstk::FileSpec::selected] = string("1");
+ string filename = boo.toString(now, fstsMap);
+ cout << filename << endl;
+ cout << "station " << boo.extractField(filename, gpstk::FileSpec::station) << endl;
+ cout << "daytime " << boo.extractDayTime(filename) << endl;
+
+ boo.newSpec("ADMS402/RINEXOBS/S%2n%t%03jA.%02yO");
+ boo.dump(cout);
+
+ return 0;
+
+}
diff --git a/dev/oldtests/FileSpecTest.pl b/dev/oldtests/FileSpecTest.pl
new file mode 100755
index 0000000..e437310
--- /dev/null
+++ b/dev/oldtests/FileSpecTest.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+# $Id$
+#
+#
+#
+#
+#
+#
+#
+#
+
+$exedir=$ARGV[0];
+system "$exedir/genFileSpecTestDirs";
+system "$exedir/FileSpecTest";
+system "$exedir/delFileSpecTestDirs";
diff --git a/dev/oldtests/Jamfile b/dev/oldtests/Jamfile
new file mode 100644
index 0000000..c035694
--- /dev/null
+++ b/dev/oldtests/Jamfile
@@ -0,0 +1,64 @@
+#
+# $Id$
+#
+
+SubDir TOP tests ;
+
+GPSLinkLibraries rinex_obs_test rinex_met_test rinex_met_read_write
+ rinex_nav_read_write rinex_obs_read_write rinex_nav_test
+ EphComp AnotherFileFilterTest FileSpecTest MatrixTest
+ exceptiontest petest stringutiltest daytimetest rktest gpszcounttest
+ positiontest DayTimeToleranceTest DayTimeIncrementTest
+ DayTimeConversionTest DayTimeIncrementTest2 MinSfTest TimeTest
+ Xbegweek Xendweek
+ testExpression
+
+ : gpstk ;
+
+Main rinex_obs_test : rinex_obs_test.cpp ;
+Main rinex_nav_test : rinex_nav_test.cpp ;
+Main rinex_met_test : rinex_met_test.cpp ;
+
+Main rinex_met_read_write : rinex_met_read_write.cpp ;
+Main rinex_nav_read_write : rinex_nav_read_write.cpp ;
+Main rinex_obs_read_write : rinex_obs_read_write.cpp ;
+
+Main AnotherFileFilterTest : AnotherFileFilterTest.cpp ;
+
+Main EphComp : EphComp.cpp ;
+
+Main FileSpecTest : FileSpecTest.cpp ;
+
+Main MatrixTest : MatrixTest.cpp ;
+
+Main exceptiontest : exceptiontest.cpp ;
+
+Main petest : petest.cpp ;
+
+Main stringutiltest : stringutiltest.cpp ;
+
+Main daytimetest : daytimetest.cpp ;
+
+Main rktest : RungeKuttaTest.cpp ;
+
+Main gpszcounttest : gpszcounttest.cpp ;
+
+Main positiontest : positiontest.cpp ;
+
+Main DayTimeToleranceTest : DayTimeToleranceTest.cpp ;
+
+Main DayTimeIncrementTest : DayTimeIncrementTest.cpp ;
+
+Main DayTimeIncrementTest2 : DayTimeIncrementTest2.cpp ;
+
+Main DayTimeConversionTest : DayTimeConversionTest.cpp ;
+
+Main TimeTest : TimeTest.cpp ;
+
+Main MinSfTest : MinSfTest.cpp ;
+
+Main Xbegweek : Xbegweek.cpp ;
+
+Main Xendweek : Xendweek.cpp ;
+
+Main testExpression : testExpression.cpp ;
diff --git a/dev/oldtests/Makefile.am b/dev/oldtests/Makefile.am
new file mode 100644
index 0000000..34037e5
--- /dev/null
+++ b/dev/oldtests/Makefile.am
@@ -0,0 +1,37 @@
+# $Id$
+INCLUDES = -I$(srcdir)/../src
+LDADD = ../src/libgpstk.la
+
+bin_PROGRAMS = rinex_obs_test rinex_nav_test rinex_met_test rinex_met_read_write rinex_nav_read_write rinex_obs_read_write EphComp AnotherFileFilterTest FileSpecTest MatrixTest exceptiontest petest stringutiltest daytimetest rktest gpszcounttest positiontest testExpression
+
+rinex_obs_test_SOURCES = rinex_obs_test.cpp
+rinex_nav_test_SOURCES = rinex_nav_test.cpp
+rinex_met_test_SOURCES = rinex_met_test.cpp
+
+rinex_met_read_write_SOURCES = rinex_met_read_write.cpp
+rinex_nav_read_write_SOURCES = rinex_nav_read_write.cpp
+rinex_obs_read_write_SOURCES = rinex_obs_read_write.cpp
+
+AnotherFileFilterTest_SOURCES = AnotherFileFilterTest.cpp
+
+EphComp_SOURCES = EphComp.cpp
+
+FileSpecTest_SOURCES = FileSpecTest.cpp
+
+MatrixTest_SOURCES = MatrixTest.cpp
+
+exceptiontest_SOURCES = exceptiontest.cpp
+
+petest_SOURCES = petest.cpp
+
+stringutiltest_SOURCES = stringutiltest.cpp
+
+daytimetest_SOURCES = daytimetest.cpp
+
+rktest_SOURCES = RungeKuttaTest.cpp
+
+gpszcounttest_SOURCES = gpszcounttest.cpp
+
+positiontest_SOURCES = positiontest.cpp
+
+testExpression_SOURCES = testExpression.cpp
diff --git a/trunk/tests/MatrixTest.cpp b/dev/oldtests/MatrixTest.cpp
similarity index 100%
rename from trunk/tests/MatrixTest.cpp
rename to dev/oldtests/MatrixTest.cpp
diff --git a/dev/oldtests/MinSfTest.cpp b/dev/oldtests/MinSfTest.cpp
new file mode 100644
index 0000000..ad26f40
--- /dev/null
+++ b/dev/oldtests/MinSfTest.cpp
@@ -0,0 +1,309 @@
+#pragma ident "$Id$"
+
+
+
+// gpstk
+#include "FileFilterFrame.hpp"
+#include "BasicFramework.hpp"
+#include "StringUtils.hpp"
+#include "FICStream.hpp"
+#include "FICHeader.hpp"
+#include "FICData.hpp"
+#include "FICFilterOperators.hpp"
+#include "BCEphemerisStore.hpp"
+#include "EngEphemeris.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+class MinSfTest : public gpstk::BasicFramework
+{
+public:
+ MinSfTest(const std::string& applName,
+ const std::string& applDesc) throw();
+ ~MinSfTest() {}
+ virtual bool initialize(int argc, char *argv[]) throw();
+protected:
+ virtual void process();
+ gpstk::CommandOptionWithAnyArg inputOption;
+ gpstk::CommandOptionWithAnyArg outputOption;
+ std::list<long> blocklist;
+
+ BCEphemerisStore bc109;
+ BCEphemerisStore minRaw;
+ std::ofstream fp;
+
+ void testXvt( short PRN, gpstk::DayTime dt );
+};
+
+int main( int argc, char*argv[] )
+{
+ try
+ {
+ MinSfTest fc("MinSfTest", "Process one (or more) FIC files.");
+ if (!fc.initialize(argc, argv)) return(false);
+ fc.run();
+ }
+ catch(gpstk::Exception& exc)
+ {
+ cout << exc << endl;
+ return 1;
+ }
+ catch(...)
+ {
+ cout << "Caught an unnamed exception. Exiting.";
+ return 1;
+ }
+ return 0;
+}
+
+MinSfTest::MinSfTest(const std::string& applName,
+ const std::string& applDesc) throw()
+ :BasicFramework(applName, applDesc),
+ inputOption('i', "input-file", "The name of the FIC file to raead.", true),
+ outputOption('o', "output-file", "The name of the output file to write.", true)
+{
+ inputOption.setMaxCount(1);
+ outputOption.setMaxCount(1);
+}
+
+bool MinSfTest::initialize(int argc, char *argv[])
+ throw()
+{
+ if (!BasicFramework::initialize(argc, argv)) return false;
+ if (debugLevel)
+ {
+ cout << "Input File: " << inputOption.getValue().front() << endl;
+ cout << "Output File: " << outputOption.getValue().front() << endl;
+ }
+ return true;
+}
+
+void MinSfTest::process()
+{
+ if (debugLevel)
+ cout << "Setting up input file: "
+ << inputOption.getValue().front() << endl;
+ FileFilterFrame<FICStream, FICData>
+ input(inputOption.getValue().front());
+
+ printf(" input.getDataCount() after init: %d\n", input.getDataCount());
+ if(debugLevel)
+ cout << "Setting up output file: "
+ << outputOption.getValue().front() << endl;
+
+ fp.open( outputOption.getValue().front().c_str() );
+ if ( !fp.is_open() )
+ {
+ printf(" Failed to open output file.\n");
+ exit(1);
+ }
+
+ // filter the FIC data for the requested vlock(s)
+ std::list<long> blockList;
+ blockList.push_back(109);
+ input.filter(FICDataFilterBlock(blockList));
+ input.sort(FICDataOperatorLessThanBlock109());
+ input.unique(FICDataUniqueBlock109());
+
+ //some hand waving for the data conversion
+ if(debugLevel)
+ cout << "Reading the input data." << endl;
+ list<FICData>& ficList = input.getData();
+ list<FICData>::iterator itr = ficList.begin();
+
+ DayTime earliest( DayTime::END_OF_TIME );
+ DayTime latest( DayTime::BEGINNING_OF_TIME );
+ int count = 0;
+ int numMismatches = 0;
+ int numMismatchEph = 0;
+ while (itr != ficList.end())
+ {
+ EngEphemeris ee(*itr);
+
+ bc109.addEphemeris( ee );
+
+ DayTime ct = ee.getEpochTime();
+ if (ct>latest) latest = ct;
+ if (ct<earliest) earliest = ct;
+
+ // Following code simulates a situation where only words 3-10
+ // and the estimated time of receipt are available.
+ DayTime timeOfReceipt = ee.getTransmitTime();
+ FICData& fic = *itr;
+ long sf1min[8];
+ long sf2min[8];
+ long sf3min[8];
+ int wrdCnt = 8;
+ int i;
+ for (i=0; i<wrdCnt; ++i) sf1min[i] = fic.i[4+i];
+ for (i=0; i<wrdCnt; ++i) sf2min[i] = fic.i[14+i];
+ for (i=0; i<wrdCnt; ++i) sf3min[i] = fic.i[24+i];
+
+ EngEphemeris eeMin;
+ short PRNID = (short) fic.i[1];
+ eeMin.addIncompleteSF1Thru3( sf1min, sf2min, sf3min,
+ (long) timeOfReceipt.GPSsecond(), timeOfReceipt.GPSfullweek(),
+ PRNID, 0 );
+ minRaw.addEphemeris( eeMin );
+
+ // Compare non-orbit portions of the two objects
+ bool mismatch = false;
+ for (int i=1; i<=3; ++i)
+ {
+ if (!ee.isData(i) || !eeMin.isData(i))
+ {
+ mismatch = true;
+ fp << "ERROR: not all subframes are claimed available.";
+ }
+ }
+
+ if (ee.getIODC()!=eeMin.getIODC())
+ {
+ mismatch = true;
+ fp << "ERROR: IODCs do not match.";
+ }
+ if (ee.getIODE()!=eeMin.getIODE())
+ {
+ mismatch = true;
+ fp << "ERROR: IODCs do not match.";
+ }
+ if (ee.getFitInterval() != eeMin.getFitInterval() )
+ {
+ mismatch = true;
+ fp << "ERROR: fit intervals do not match.";
+ }
+ if (ee.getCodeFlags()!=eeMin.getCodeFlags() )
+ {
+ mismatch = true;
+ fp << "ERROR: code flags do not match.";
+ }
+ if (ee.getL2Pdata()!=eeMin.getL2Pdata() )
+ {
+ mismatch = true;
+ fp << "ERROR: L2P data flags do not match.";
+ }
+ if (ee.getAccuracy()!=eeMin.getAccuracy() )
+ {
+ mismatch = true;
+ fp << "ERROR: accuracy values do not match.";
+ }
+ if (ee.getAccFlag()!=eeMin.getAccFlag() )
+ {
+ mismatch = true;
+ fp << "ERROR: accuracy flags do not match.";
+ }
+ if (ee.getHealth()!=eeMin.getHealth() )
+ {
+ mismatch = true;
+ fp << "ERROR: health values do not match.";
+ }
+ if (ee.getFitInt()!=eeMin.getFitInt() )
+ {
+ mismatch = true;
+ fp << "ERROR: Fit interval values do not match.";
+ }
+
+ if (mismatch)
+ {
+ fp << " PRNID: " << PRNID << ", IODC: 0x " << hex << ee.getIODC() << dec << endl;
+ numMismatches++;
+ }
+
+ itr++;
+ count++;
+ }
+ cout << "Number of Block 109 records read: " << count << endl;
+ if (numMismatches!=0)
+ {
+ printf("Errors detected. Some ephemerides did not match in both forms.\n");
+ printf("Number of mismatches: %d\n",numMismatches);
+ }
+ fp << "Number of mismatches detected: " << numMismatches << endl;
+ if (debugLevel) cout << "done." << endl;
+
+
+ // Generate test positions for PRN 1 and PRN 31 at
+ // earliest epoch, latest epoch, and middle of the time span.
+ try
+ {
+ double timeDuration = latest - earliest;
+ DayTime middle( earliest );
+ middle += (timeDuration/2);
+
+ short IODC109 = -1;
+ short IODCMin = -1;
+ short PRNID = 1;
+ printf("--- PRN 1 Examples ---\n");
+ printf("\nEarliest time\n");
+ fp << "--- PRN 1 Examples ---" << endl;
+ fp << endl << "Earliest time" << endl;
+ testXvt( PRNID, earliest );
+ printf("\nMiddle time\n");
+ fp << endl << "Middle time" << endl;
+ testXvt( PRNID, middle );
+ printf("\nLatest time\n");
+ fp << endl << "Latest time" << endl;
+ testXvt( PRNID, latest );
+
+ PRNID = 31;
+ printf("\n--- PRN 31 Examples ---\n");
+ printf("\nEarliest time\n");
+ fp << endl << "--- PRN 31 Examples ---" << endl;
+ fp << endl << "Earliest time" << endl;
+ testXvt( PRNID, earliest );
+ printf("\nMiddle time\n");
+ fp << endl << "Middle time" << endl;
+ testXvt( PRNID, middle );
+ printf("\nLatest time\n");
+ fp << endl << "Latest time" << endl;
+ testXvt( PRNID, latest );
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+
+ printf("\nBCEphemerisStore directly from existing FIC handlers.\n");
+ fp << endl << "BCEphemerisStore directly from existing FIC handlers." << endl;
+ bc109.dump(1, fp);
+ printf("BCEphemerisStore from new method.\n");
+ fp << endl << "BCEphemerisStore from new method." << endl;
+ minRaw.dump(1, fp);
+
+ // write the file data
+ if (debugLevel) cout << "Conversion complete." << endl;
+}
+
+void MinSfTest::testXvt( short PRN, gpstk::DayTime dt )
+{
+ short IODC109;
+ short IODCMin;
+ Xvt xvt109 = bc109.getPrnXvt( PRN, dt, IODC109 );
+ Xvt xvtMin = minRaw.getPrnXvt( PRN, dt, IODCMin );
+ printf(" X(m) Y(m) Z(m) IODC\n");
+ printf(" 109 %15.3lf %15.3lf %15.3lf 0x%03X\n",
+ xvt109.x[0],xvt109.x[1],xvt109.x[2],IODC109);
+ printf(" Min %15.3lf %15.3lf %15.3lf 0x%03X\n",
+ xvtMin.x[0],xvtMin.x[1],xvtMin.x[2],IODCMin);
+
+
+ fp << " X(m) Y(m) Z(m) IODC" << endl;
+ fp << " 109 ";
+ fp << setprecision(3) << fixed;
+ fp << setw(15) << xvt109.x[0];
+ fp << setw(15) << xvt109.x[1];
+ fp << setw(15) << xvt109.x[2];
+ fp << " 0x" << setw(3) << setfill('0') << uppercase << hex << IODC109;
+ fp << setfill(' ') << endl;
+ fp << " Min ";
+ fp << setprecision(3) << fixed;
+ fp << setw(15) << xvtMin.x[0];
+ fp << setw(15) << xvtMin.x[1];
+ fp << setw(15) << xvtMin.x[2];
+ fp << " 0x" << setw(3) << setfill('0') << uppercase << hex << IODCMin << dec;
+ fp << setfill(' ') << endl;
+}
+
+
+
diff --git a/dev/oldtests/Rinex_dl.pl b/dev/oldtests/Rinex_dl.pl
new file mode 100755
index 0000000..ae88d84
--- /dev/null
+++ b/dev/oldtests/Rinex_dl.pl
@@ -0,0 +1,111 @@
+#!/usr/bin/perl
+# $Id$
+
+# Ryan Mire ARL SGL
+# July 2005
+# last saved: July 27 10:00am
+#
+# The purpose of this script is to have as close to a live test as possible of the rinex_met read and write functions
+# the live quality of this test will be created through the downloading of all the IGS gathered and posted data from
+# "yesterday"
+#
+# >>Rinex_dl.pl <first letter of met obs or nav> [<download directory>]
+#
+#
+
+use Net::FTP;
+#use strict;
+#use warnings;
+
+$filetype=$ARGV[0];
+$filetype =~ s/^-//;
+chomp($filetype);
+#print "!".$filetype."!\n";
+#chomp($filetype);
+die "\nThe Given File Type is invalid, obs, met and nav are the three filetypes accepted. Try using lowercase 'o','m' or 'n' respectively. \n >>Rinex.dl <firstletter of filetype> [<download directory>]\n"
+ if(($filetype ne 'n') && ($filetype ne 'o') && ($filetype ne 'm'));
+
+
+$filedir="05".$filetype;
+
+if($ARGV[1])
+{
+$downdir=$ARGV[1];
+die "\nThe given download directory does not exist or is invalid, try again\n"
+ if((-e $downdir)==0);
+}
+
+$date = `date`;
+chomp($day = `date +"%j"`);
+$day-=1;
+print "HELLO \t $day\n";
+ at date=split /\s/, $date;
+
+chomp($year=@date[5]);
+
+
+my $host="cddis.gsfc.nasa.gov";
+my $directory="/gps/data/daily/$year/$day/$filedir";
+
+$ftp=Net::FTP->new($host,Timeout=>240) or $newerr=1;
+ push @ERRORS, "Can't ftp to $host: $!\n" if $newerr;
+ myerr() if $newerr;
+print "Connected\n";
+
+$ftp->login("Anonymous","GPSTK at arlut.utexas.edu") or $newerr=1;
+print "Getting file list\n";
+ push @ERRORS, "Can't login to $host: $!\n" if $newerr;
+ $ftp->quit if $newerr;
+ myerr() if $newerr;
+print "Logged in\n";
+
+$ftp->cwd($directory) or $newerr=1;
+ push @ERRORS, "Can't cd $!\n" if $newerr;
+ myerr() if $newerr;
+ $ftp->quit if $newerr;
+
+ at files=$ftp->dir or $newerr=1;
+ push @ERRORS, "Can't get file list $!\n" if $newerr;
+ myerr() if $newerr;
+print "Got file list\n";
+
+$n=0;
+
+if($ARGV[1])
+{
+ $newdir=$downdir."/NewRinexData-".$filetype;
+}
+else
+{
+ $newdir="/NewRinexData-".$filetype;
+}
+die "Oops!!, $newdir already exist \t Try Again "
+ if((-e $newdir)!=0);
+
+mkdir "$newdir";
+chdir "$newdir";
+
+
+foreach(@files)
+{
+ @line=split/\s/, @files[$n];
+ $file=pop(@line);
+ $n+=1;
+ $ftp->get("/gps/data/daily/$year/$day/$filedir/$file") or $newerr=1;
+ if($newerr!=1)
+ {
+ print "Downloaded $file\n";
+ }
+ push @ERRORS, "Can't get $_ $!\n" if $newerr;
+}
+print " $directory\n ";
+$ftp->quit;
+
+print "Youre now in the new subdirectory $newdir,\n filled with your data \n";
+
+sub myerr
+{
+ print "Error: \n";
+ print @ERRORS;
+ exit 0;
+}
diff --git a/trunk/tests/RungeKuttaTest.cpp b/dev/oldtests/RungeKuttaTest.cpp
similarity index 100%
rename from trunk/tests/RungeKuttaTest.cpp
rename to dev/oldtests/RungeKuttaTest.cpp
diff --git a/dev/oldtests/TimeTest.cpp b/dev/oldtests/TimeTest.cpp
new file mode 100644
index 0000000..d669e9c
--- /dev/null
+++ b/dev/oldtests/TimeTest.cpp
@@ -0,0 +1,446 @@
+#pragma ident "$Id$"
+
+
+
+#include <iostream>
+
+#include <BasicFramework.hpp>
+
+#include <TimeString.hpp>
+#include <TimeConstants.hpp>
+
+#include <ANSITime.hpp>
+#include <CivilTime.hpp>
+#include <GPSEpochWeekSecond.hpp>
+#include <GPSWeekSecond.hpp>
+#include <GPSWeekZcount.hpp>
+#include <GPSZcount29.hpp>
+#include <GPSZcount32.hpp>
+#include <JulianDate.hpp>
+#include <MJD.hpp>
+#include <UnixTime.hpp>
+#include <YDSTime.hpp>
+#include <SystemTime.hpp>
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+
+ // The following constants are as captured from the timcvt program output.
+ //
+ // Month/Day/Year 7/26/2005
+ // Hour:Min:Sec 17:59:42
+ // Modified Julian Date 53577.7497975392
+ // GPSweek DayOfWeek SecOfWeek 309 2 237582.507390
+ // FullGPSweek Zcount 1333 158388
+ // Year DayOfYear SecondOfDay 2005 207 64782.507390
+ // Unix_sec Unix_usec 1122400782 507390
+ // FullZcount 162163380
+
+const int defaultMonth = 7;
+const int defaultDay = 26;
+const int defaultYear = 2005;
+const int defaultHour = 17;
+const int defaultMinute = 59;
+const int defaultSecond = 42;
+const double defaultSecondD = 42.507390;
+
+const long double defaultMJD = 53577.7497975392;
+const long double defaultJD = (defaultMJD + MJD_TO_JD);
+
+const int defaultWeek = 309;
+const int defaultDow = 2;
+const double defaultSow = 237582.507390;
+
+const int defaultFullWeek = 1333;
+const int defaultZcount = 158388;
+
+const int defaultDoy = 207;
+const double defaultSod = 64782.507390;
+
+const int defaultUnixSec = 1122400782;
+const int defaultUnixUsec = 507390;
+const int defaultFullZcount = 162163380;
+
+const int defaultEpoch = 1;
+const int defaultFullZcount32 = ( defaultEpoch << 29 ) | defaultFullZcount;
+
+class Test : public BasicFramework
+{
+public:
+ Test( const string& progName )
+ : BasicFramework( progName, "Test the New Time Classes!" ),
+ ansi( defaultUnixSec ),
+ civil( defaultYear, defaultMonth, defaultDay, defaultHour,
+ defaultMinute, defaultSecondD ),
+ gews( defaultEpoch, defaultWeek, defaultSow ),
+ gws( defaultFullWeek, defaultSow ),
+ gwz( defaultFullWeek, defaultZcount ),
+ gz29( defaultEpoch, defaultFullZcount ),
+ gz32( defaultFullZcount32 ),
+ jd( defaultJD ),
+ mjd( defaultMJD ),
+ ut( defaultUnixSec, defaultUnixUsec ),
+ yds( defaultYear, defaultDoy, defaultSod )
+ {}
+
+ ANSITime ansi;
+ CivilTime civil;
+ GPSEpochWeekSecond gews;
+ GPSWeekSecond gws;
+ GPSWeekZcount gwz;
+ GPSZcount29 gz29;
+ GPSZcount32 gz32;
+ JulianDate jd;
+ MJD mjd;
+ UnixTime ut;
+ YDSTime yds;
+ SystemTime st;
+
+protected:
+ virtual void process();
+
+ void dumpCommonTime( const TimeTag& t );
+
+ bool simpleCopyTest();
+ template<class T>
+ bool isCopySuccess( T& t );
+
+ bool conversionTest();
+ template<class T>
+ bool toCommonAndBack( T& t );
+
+ bool simpleEqualityTest();
+ template<class T>
+ bool isEqual( T& t );
+
+ bool systemTimeTest();
+
+ bool simpleLessThanTest();
+
+ bool otherTest();
+
+};
+
+void Test::process()
+{
+ simpleCopyTest();
+ simpleEqualityTest();
+ conversionTest();
+ systemTimeTest();
+ simpleLessThanTest();
+// otherTest();
+
+ cout << "Test Processing Complete." << endl;
+}
+
+void Test::dumpCommonTime( const TimeTag& t )
+{
+ long day, sod;
+ double fsod;
+
+ CommonTime( t.convertToCommonTime() ).get( day, sod, fsod );
+
+ cout << t << " -> " << day << "d " << sod << "s "
+ << setprecision(15) << fsod << "f" << endl;
+}
+
+bool Test::simpleCopyTest()
+{
+ cout << "Simple Copy Test:" << endl;
+ cout << "ANSI: " << ( isCopySuccess( ansi ) ? "PASS" : "FAIL" ) << endl;
+ cout << "Civil: " << ( isCopySuccess( civil ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GPSEWS: " << ( isCopySuccess( gews ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GPSWS: " << ( isCopySuccess( gws ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GPSWZ: " << ( isCopySuccess( gwz ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GZ29: " << ( isCopySuccess( gz29 ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GZ32: " << ( isCopySuccess( gz32 ) ? "PASS" : "FAIL" ) << endl;
+ cout << "JD: " << ( isCopySuccess( jd ) ? "PASS" : "FAIL" ) << endl;
+ cout << "MJD: " << ( isCopySuccess( mjd ) ? "PASS" : "FAIL" ) << endl;
+ cout << "Unix: " << ( isCopySuccess( ut ) ? "PASS" : "FAIL" ) << endl;
+ cout << "YDS: " << ( isCopySuccess( yds ) ? "PASS" : "FAIL" ) << endl;
+ cout << endl;
+
+ return true;
+}
+
+template<class T>
+bool Test::isCopySuccess( T& t )
+{
+ T t1( t );
+ if( t == t1 )
+ {
+ return true;
+ }
+ return false;
+}
+
+bool Test::conversionTest()
+{
+ cout << "Conversion Test:" << endl;
+ cout << "ANSI: " << ( toCommonAndBack( ansi ) ? "PASS" : "FAIL" ) << endl;
+ cout << "Civil: " << ( toCommonAndBack( civil ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GPSEWS: " << ( toCommonAndBack( gews ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GPSWS: " << ( toCommonAndBack( gws ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GPSWZ: " << ( toCommonAndBack( gwz ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GZ29: " << ( toCommonAndBack( gz29 ) ? "PASS" : "FAIL" ) << endl;
+ cout << "GZ32: " << ( toCommonAndBack( gz32 ) ? "PASS" : "FAIL" ) << endl;
+ cout << "JD: " << ( toCommonAndBack( jd ) ? "PASS" : "FAIL" ) << endl;
+ cout << "MJD: " << ( toCommonAndBack( mjd ) ? "PASS" : "FAIL" ) << endl;
+ cout << "Unix: " << ( toCommonAndBack( ut ) ? "PASS" : "FAIL" ) << endl;
+ cout << "YDS: " << ( toCommonAndBack( yds ) ? "PASS" : "FAIL" ) << endl;
+ cout << endl;
+
+ if( verboseLevel )
+ {
+ dumpCommonTime( ansi );
+ dumpCommonTime( civil );
+ dumpCommonTime( gews );
+ dumpCommonTime( gws );
+ dumpCommonTime( gwz );
+ dumpCommonTime( gz29 );
+ dumpCommonTime( gz32 );
+ dumpCommonTime( jd );
+ dumpCommonTime( mjd );
+ dumpCommonTime( ut );
+ dumpCommonTime( yds );
+ cout << endl;
+ }
+
+ return true;
+}
+
+template<class T>
+bool Test::toCommonAndBack( T& t )
+{
+ if( verboseLevel )
+ {
+ cout << "myval: " << t << endl;
+ }
+
+ T t1;
+ t1.convertFromCommonTime( t.convertToCommonTime() );
+ if( t != t1 )
+ {
+ cout << t << " != " << t1 << endl;
+ return false;
+ }
+ return true;
+}
+
+bool Test::simpleEqualityTest()
+{
+ cout << "Simple Equality Test" << endl;
+ cout << "ANSI: " << endl; isEqual( ansi );
+ cout << "Civil: " << endl; isEqual( civil );
+ cout << "GPSEWS: " << endl; isEqual( gews );
+ cout << "GPSWS: " << endl; isEqual( gws );
+ cout << "GPSWZ: " << endl; isEqual( gwz );
+ cout << "GZ29: " << endl; isEqual( gz29 );
+ cout << "GZ32: " << endl; isEqual( gz32 );
+ cout << "JD: " << endl; isEqual( jd );
+ cout << "MJD: " << endl; isEqual( mjd );
+ cout << "Unix: " << endl; isEqual( ut );
+ cout << "YDS: " << endl; isEqual( yds );
+ cout << endl;
+
+}
+
+template<class T>
+bool Test::isEqual( T& t )
+{
+ cout << " to ANSI: " << ( t == ANSITime( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to Civil: " << ( t == CivilTime( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to GPSEWS: " << ( t == GPSEpochWeekSecond( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to GPSWS: " << ( t == GPSWeekSecond( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to GPSWZ: " << ( t == GPSWeekZcount( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to GZ29: " << ( t == GPSZcount29( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to GZ32: " << ( t == GPSZcount32( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to JD: " << ( t == JulianDate( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to MJD: " << ( t == MJD( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to Unix: " << ( t == UnixTime( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << " to YDS: " << ( t == YDSTime( t ) ? "PASS" : "FAIL" )
+ << endl;
+ cout << endl;
+
+ return true;
+}
+
+bool Test::systemTimeTest()
+{
+ cout << "SystemTime: " << st << endl
+ << " to ANSI: " << ANSITime( st ) << endl
+ << " to Civil: " << CivilTime( st ) << endl
+ << " to GPSEWS: " << GPSEpochWeekSecond( st ) << endl
+ << " to GPSWS: " << GPSWeekSecond( st ) << endl
+ << " to GPSWZ: " << GPSWeekZcount( st ) << endl
+ << " to GZ29: " << GPSZcount29( st ) << endl
+ << " to GZ32: " << GPSZcount32( st ) << endl
+ << " to JD: " << JulianDate( st ) << endl
+ << " to MJD: " << MJD( st ) << endl
+ << " to Unix: " << UnixTime( st ) << endl
+ << " to YDS: " << YDSTime( st ) << endl;
+
+}
+
+bool Test::simpleLessThanTest()
+{
+ ansi = ANSITime( st );
+ civil = CivilTime( st );
+ gews = GPSEpochWeekSecond( st );
+ gws = GPSWeekSecond( st );
+ gwz = GPSWeekZcount( st );
+ gz29 = GPSZcount29( st );
+ gz32 = GPSZcount32( st );
+ jd = JulianDate( st );
+ mjd = MJD( st );
+ ut = UnixTime( st );
+ yds = YDSTime( st );
+
+ CommonTime ct( st );
+ ct += 5.0; // add five seconds
+
+ cout << "SimpleLessThanTest: " << endl
+ << " ANSI: " << ( ansi < ct ? "PASS" : "FAIL" ) << endl
+ << " Civil: " << ( civil < ct ? "PASS" : "FAIL" ) << endl
+ << " GPSEWS: " << ( gews < ct ? "PASS" : "FAIL" ) << endl
+ << " GPSWS: " << ( gws < ct ? "PASS" : "FAIL" ) << endl
+ << " GPSWZ: " << ( gwz < ct ? "PASS" : "FAIL" ) << endl
+ << " GZ29: " << ( gz29 < ct ? "PASS" : "FAIL" ) << endl
+ << " GZ32: " << ( gz32 < ct ? "PASS" : "FAIL" ) << endl
+ << " JD: " << ( jd < ct ? "PASS" : "FAIL" ) << endl
+ << " MJD: " << ( mjd < ct ? "PASS" : "FAIL" ) << endl
+ << " Unix: " << ( ut < ct ? "PASS" : "FAIL" ) << endl
+ << " YDS: " << ( yds < ct ? "PASS" : "FAIL" ) << endl;
+}
+
+bool Test::otherTest()
+{
+ try
+ {
+ YDSTime one( 2005, 1, 0 ), two( 2005, 234, 5648.09 );
+
+ cout << "one: " << one << endl
+ << "two: " << two << endl;
+
+ YDSTime tre( one );
+
+ cout << "tre: " << tre << endl;
+
+ if( one == tre )
+ {
+ cout << " one == tre " << endl;
+ }
+ else
+ {
+ cout << " one != tre " << endl;
+ }
+
+ cout << endl
+ << "--- scanf test ---" << endl;
+
+ string str( "2005 234 5648.09" );
+ string fmt( "%Y %j %s" );
+
+ cout << "str: " << str << endl
+ << "fmt: " << fmt << endl;
+
+ TimeTag::IdToValue info;
+ TimeTag::getInfo( str, fmt, info );
+ cout << "parsed info:" << endl;
+
+ for( TimeTag::IdToValue::iterator i = info.begin();
+ i != info.end(); i++ )
+ {
+ cout << "info[" << i->first << "] = <" << i->second << ">" << endl
+ << " asInt() -> " << asInt( i->second ) << endl;
+ }
+
+ if( tre.setFromInfo( info ) )
+ {
+ cout << "setFromInfo() ok" << endl;
+ }
+ else
+ {
+ cout << "setFromInfo() failed" << endl;
+ }
+ cout << "tre: " << tre << endl;
+
+ cout << "Altogether in one scanf() call: " << endl;
+ two = one;
+ cout << "two = one -> two: " << two << endl;
+ two.scanf( str, fmt );
+ cout << "two.scanf( str, fmt ) -> two: " << two << endl;
+
+ cout << "two " << ( (two == tre) ? "==" : "!=" ) << " tre" << endl;
+
+ cout << endl
+ << "--- scanTime test ---" << endl;
+
+ string str2( "1337 92048.09" );
+ string fmt2( "%F %g" );
+
+ cout << "two: " << two << endl
+ << "tre: " << tre << endl
+ << "str: " << str2 << endl
+ << "fmt: " << fmt2 << endl;
+
+ scanTime( tre, str, fmt );
+
+ cout << "scanTime( tre, str, fmt);" << endl
+ << "tre: " << tre << endl;
+
+ return true;
+ }
+ catch( gpstk::Exception& exc )
+ {
+ cout << exc << endl;
+ }
+
+ return false;
+}
+
+int main (int argc, char *argv[])
+{
+ try
+ {
+ Test t( argv[0] );
+
+ if( !t.initialize( argc, argv ) )
+ {
+ return 0;
+ }
+
+ if( !t.run() )
+ {
+ return 1;
+ }
+
+ return 0;
+ }
+ catch( Exception& exc )
+ {
+ cout << exc << endl;
+ }
+ catch( exception& e )
+ {
+ cout << e.what() << endl;
+ }
+ catch( ... )
+ {
+ cout << "Caught an unknown exception." << endl;
+ }
+ return 1;
+}
+
diff --git a/dev/oldtests/Xbegweek.cpp b/dev/oldtests/Xbegweek.cpp
new file mode 100755
index 0000000..38ad0b6
--- /dev/null
+++ b/dev/oldtests/Xbegweek.cpp
@@ -0,0 +1,135 @@
+/* $Id$
+* Xbegweek.cpp - Test scaffold for demonstrating correctness of the
+* SVPCodeGen class.
+*
+* February 2004
+* Applied Reserach Laboratories, The University of Texas at Austin
+*/
+ // Language headers
+#include <stdlib.h>
+#include <stdio.h>
+#include <map>
+
+ // Project headers
+#include "PCodeConst.hpp"
+#include "SVPCodeGen.hpp"
+#include "CodeBuffer.hpp"
+#include "X1Sequence.hpp"
+#include "X2Sequence.hpp"
+
+/**
+ * @file Xbegweek.cpp
+ *
+ */
+using namespace std; // for map and pair access
+using namespace gpstk;
+
+ // Convenience structure for grouping all the data objects associated
+ // with a single SV. These structs are commonly placed in maps for
+ // processing.
+struct SVData
+{
+ SVPCodeGen * PCodeGen;
+ CodeBuffer * PCodeBuf;
+ codeType cType;
+ SVData( SVPCodeGen * a1,
+ CodeBuffer * a2,
+ codeType c )
+ {
+ PCodeGen = a1;
+ PCodeBuf = a2;
+ cType = c;
+ };
+};
+
+const int NUM_SATS = 38;
+
+int main(int argc, char* argv[])
+{
+ printf("Ryan's Xbegweek\n");
+
+ if (argc < 2)
+ {
+ printf("Usage: >Xbegweek <outputfile>\n");
+ exit(1);
+ }
+ // Open an output file.
+ printf(" Opening output file.\n");
+ FILE *outFile = fopen( argv[1], "wt" );
+ if (outFile==NULL)
+ {
+ printf(" Cannot open xbegweek.out for output.\n");
+ exit(-1);
+ }
+ fprintf(outFile," Xbegweek.out - Demonstrating P-Code Beginnging of Week Generation..\n");
+ fprintf(outFile," Reproducing ICD-GPS-200, Table 3-I\n");
+
+ // Set time to beginning of week
+ printf(" Setting time to beginning of week.\n");
+ //DayTime dt( 1233, 0.0, 2003 ); // Beginning of week 1233
+ DayTime dt( 1233, 0.0 ); // Beginning of week 1233
+
+ // NOTE: The P-code generator works in 6-second "chunks". This implies
+ // that there are 6 seconds of X1 bitstream and 6 seconds of X2 bitstreams
+ // held in memory. To mimimize the memory footprint, these bitstreams
+ // are shared between all coders and are located in dynamically allocated
+ // buffers referenced through static pointers. THEREFORE, before any
+ // SVPCodeGen objects are instantiated, these buffers must be allocated
+ // and initialized via the following two calls. Failure to do so will
+ // resort in abnormal program termination (unless the exceptions are
+ // trapped).
+ try
+ {
+ X1Sequence::allocateMemory();
+ X2Sequence::allocateMemory();
+ }
+ catch (gpstk::Exception e)
+ {
+ printf(" Memory allocation failure.\n");
+ printf(" Xbegweek will terminate.\n");
+ return(1);
+ }
+
+ // Instantiate a map to hold SVPCodeGen and CodeBuffer objects
+ printf(" Instantiating the PRN arrays.\n");
+ map<int, SVData>svdMap;
+ typedef map<int, SVData>::iterator SVDataI;
+
+ SVPCodeGen * svp[NUM_SATS];
+ CodeBuffer * pcb[NUM_SATS];
+ for (int n=0;n<NUM_SATS;++n)
+ {
+ svp[n] = 0;
+ pcb[n] = 0;
+ }
+
+ for (int PRNndx=0;PRNndx<NUM_SATS;PRNndx++)
+ {
+ svp[PRNndx] = new SVPCodeGen( PRNndx, dt );
+ pcb[PRNndx] = new CodeBuffer( PRNndx );
+ SVData svd ( svp[PRNndx], pcb[PRNndx], P_CODE );
+ pair<int,SVData> ps( PRNndx, svd );
+ svdMap.insert( ps );
+ }
+
+ fprintf(outFile," PRN 12-bits of code (octal)\n");
+
+ int PRNID;
+ unsigned long temp;
+ for ( SVDataI p=svdMap.begin(); p!=svdMap.end(); ++p)
+ {
+ PRNID = p->first;
+ SVData& rsvd = p->second;
+ SVPCodeGen& rsvp = *(rsvd.PCodeGen);
+ CodeBuffer& rcb = *(rsvd.PCodeBuf);
+ rsvp.getCurrentSixSeconds( rcb );
+ temp = rcb[0] >> 20;
+ fprintf( outFile," %02d %04o\n",PRNID,temp);
+ }
+
+ // Close the output files and exit gracefully.
+ printf(" Closing files.\n");
+ fflush( outFile );
+ fclose( outFile );
+ return(0);
+}
diff --git a/dev/oldtests/Xendweek.cpp b/dev/oldtests/Xendweek.cpp
new file mode 100755
index 0000000..e841b46
--- /dev/null
+++ b/dev/oldtests/Xendweek.cpp
@@ -0,0 +1,158 @@
+/* $Id$
+* Xendweek.c - Test scaffold for demonstrating correctness of the
+* SVPCodeGen class. In this case, the test is to correctly generate
+* the P-code for the last 6 seconds of the week for each possible
+* GPS PRN.
+*
+* August 2003
+* Applied Reserach Laboratories, The University of Texas at Austin
+*/
+ // Language headers
+#include <stdlib.h>
+#include <stdio.h>
+#include <map>
+
+ // Project headers
+#include "PCodeConst.hpp"
+#include "SVPCodeGen.hpp"
+#include "CodeBuffer.hpp"
+#include "X1Sequence.hpp"
+#include "X2Sequence.hpp"
+
+/**
+ * @file Xendweek.cpp
+ *
+ */
+
+using namespace std; // for map and pair access
+using namespace gpstk;
+
+ // Convenience structure for grouping all the data objects associated
+ // with a single SV. These structs are commonly placed in maps for
+ // processing.
+struct SVData
+{
+ SVPCodeGen * PCodeGen;
+ CodeBuffer * PCodeBuf;
+ codeType cType;
+ SVData( SVPCodeGen * a1,
+ CodeBuffer * a2,
+ codeType c )
+ {
+ PCodeGen = a1;
+ PCodeBuf = a2;
+ cType = c;
+ };
+};
+
+const int NUM_SATS = 38;
+
+int main(int argc, char* argv[] )
+{
+ printf("Ryan's Xendweek\n");
+
+ if (argc < 2)
+ {
+ printf("Usage: >>Xendweek <outputfile>\n");
+ exit(1);
+ }
+ // Open an output file.
+ printf(" Opening output file.\n");
+ FILE *outFile = fopen( argv[1], "wt" );
+ if (outFile==NULL)
+ {
+ printf(" Cannot open Xendweek.out for output.\n");
+ exit(-1);
+ }
+ fprintf(outFile," XENDWEEK.OUT - Demonstrating P-Code End of Week Generation..\n");
+ fprintf(outFile," Reproducing ICD-GPS-200, Table 3-IV\n");
+
+ // Set time to end of week minus six seconds
+ printf(" Setting time to end of week.\n");
+ //DayTime dt( 1233, 604794.0, 2003 );
+ DayTime dt( 1233, 604794.0 );
+
+ // NOTE: The P-code generator works in 6-second "chunks". This implies
+ // that there are 6 seconds of X1 bitstream and 6 seconds of X2 bitstreams
+ // held in memory. To mimimize the memory footprint, these bitstreams
+ // are shared between all coders and are located in dynamically allocated
+ // buffers referenced through static pointers. THEREFORE, before any
+ // SVPCodeGen objects are instantiated, these buffers must be allocated
+ // and initialized via the following two calls. Failure to do so will
+ // resort in abnormal program termination (unless the exceptions are
+ // trapped).
+ try
+ {
+ X1Sequence::allocateMemory();
+ X2Sequence::allocateMemory();
+ }
+ catch (gpstk::Exception e)
+ {
+ printf(" Memory allocation failure.\n");
+ printf(" Xbegweek will terminate.\n");
+ return(1);
+ }
+
+ // Instantiate a map to hold SVPCodeGen and CodeBuffer objects
+ printf(" Instantiating the PRN map.\n");
+ map<int, SVData>svdMap;
+ typedef map<int, SVData>::iterator SVDataI;
+
+ // Instantiate and initialize the P-coder objects
+ SVPCodeGen * svp[NUM_SATS];
+ CodeBuffer * pcb[NUM_SATS];
+ for (int n=0;n<NUM_SATS;++n) { svp[n]=0; pcb[n]=0; };
+
+ for (int PRNndx=0; PRNndx<NUM_SATS; ++PRNndx)
+ {
+ svp[PRNndx] = new SVPCodeGen( PRNndx, dt );
+ pcb[PRNndx] = new CodeBuffer( PRNndx );
+
+ SVData svd( svp[PRNndx], pcb[PRNndx], P_CODE );
+ pair<int,SVData> ps( PRNndx, svd );
+ svdMap.insert( ps );
+ }
+
+ fprintf(outFile," PRN Last word ");
+
+ // Calculate X1count where X2 starts to transition to end of week "hold"
+ long EndOfWeekTestCount =
+ 3 * (XA_COUNT * XA_MAX_EPOCH) + (XA_COUNT * (XA_MAX_EPOCH-1)) + 3023;
+ long EndOfWeekTestWord = (EndOfWeekTestCount / MAX_BIT);
+ long EndOfWeekTestEnd = EndOfWeekTestWord+(XA_EPOCH_DELAY+104)/MAX_BIT+3;
+
+ long chip = EndOfWeekTestWord * MAX_BIT -
+ 3 * (XA_COUNT * XA_MAX_EPOCH) - (XA_COUNT * (XA_MAX_EPOCH-1));
+ for (long j=EndOfWeekTestWord;j<EndOfWeekTestEnd;j++)
+ {
+ fprintf(outFile,"%4d ",chip);
+ chip+=32;
+ }
+ fprintf(outFile,"\n");
+
+ int PRNID;
+ unsigned long temp;
+ for ( SVDataI p=svdMap.begin(); p!=svdMap.end(); ++p )
+ {
+ PRNID = p->first;
+ SVData& rsvd = p->second;
+ SVPCodeGen& rsvp = *(rsvd.PCodeGen);
+ CodeBuffer& rcb = *(rsvd.PCodeBuf);
+ rsvp.getCurrentSixSeconds( rcb );
+ temp = rcb[NUM_6SEC_WORDS-1];
+ fprintf( outFile," %02d x%08X",PRNID,temp);
+ for (long n=EndOfWeekTestWord;n<EndOfWeekTestEnd;n++)
+ {
+ fprintf(outFile," x%08X",rcb[n]);
+ }
+ fprintf(outFile,"\n");
+ }
+
+ /*
+ Close the output files and exit gracefully.
+ */
+ printf(" Closing files.\n");
+ fflush( outFile );
+ fclose( outFile );
+ return(0);
+}
diff --git a/dev/oldtests/configfile.txt b/dev/oldtests/configfile.txt
new file mode 100755
index 0000000..cdd2143
--- /dev/null
+++ b/dev/oldtests/configfile.txt
@@ -0,0 +1,52 @@
+# $Id$
+# Configuration file for GPSTk regression test script
+#
+AnotherFileFilterTest;
+#
+DayTimeConversionTest;
+#
+DayTimeIncrementTest;
+#
+DayTimeIncrementTest2;
+#
+daytimetest;
+#
+DayTimeToleranceTest;
+#
+EphComp -p $datdir/nga12600.apc -p $datdir/nga12601.apc -b $datdir/merge.n
+#
+exceptiontest;
+#
+FileSpecTest.pl $exedir
+#
+gpszcounttest;
+#
+MatrixTest $datdir/anotsym.dat $datdir/cov.dat $datdir/dia.dat $datdir/lt.dat\
+ $datdir/partials.dat $datdir/squ.dat $datdir/sym.dat $datdir/tmatrix.dat\
+ $datdir/ut.dat, MatrixTest.scr:MatrixTest.ref;
+#
+petest $datdir/nga12600.apc;
+#
+positiontest, positiontest.scr:positiontest.ref;
+#
+rinex_met_read_write $datdir/405_077A.02M $outdir/rinex_met.out;
+#
+rinex_met_test $datdir/405_077A.02M;
+#
+rinex_nav_read_write $datdir/suwn0770.02n.Z $outdir/rinex_nav.out;
+#
+rinex_nav_test $datdir/suwn0770.02n.Z;
+#
+rinex_obs_read_write $datdir/s1110770.02o.Z $outdir/rinex_obs.out;
+#
+rinex_obs_test $datdir/s1110770.02o.Z
+#
+RungeKuttaTest, RungeKuttaTest.scr:rktest.ref;
+#
+stringutiltest, stringutiltest.scr:stringutiltest.ref;
+#
+Xbegweek $outdir/Xbegweek.out, Xbegweek.out:Xbegweek.can;
+#
+Xendweek $outdir/Xendweek.out, Xendweek.out:Xendweek.can;
+#
+# End of File
diff --git a/trunk/tests/configfile_readme.txt b/dev/oldtests/configfile_readme.txt
similarity index 100%
rename from trunk/tests/configfile_readme.txt
rename to dev/oldtests/configfile_readme.txt
diff --git a/dev/oldtests/data/405_077A.02M b/dev/oldtests/data/405_077A.02M
new file mode 100644
index 0000000..fd0e286
--- /dev/null
+++ b/dev/oldtests/data/405_077A.02M
@@ -0,0 +1,108 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+RinexMetWriter NIMA 3-19-02 0:04:03 PGM / RUN BY / DATE
+NOTE: 0 records omitted due to a missing datum COMMENT
+NOTE: Some of the weather values may be corrected. COMMENT
+85405 MARKER NAME
+85405 MARKER NUMBER
+ 3 PR TD HR # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+ 3633910.8759 4425277.6639 2799862.7878 -13.8530 PR SENSOR POS XYZ/H
+ END OF HEADER
+ 02 3 18 0 0 0 1005.2 22.0 79.2
+ 02 3 18 0 15 0 1005.3 21.9 81.5
+ 02 3 18 0 30 0 1005.3 21.9 83.1
+ 02 3 18 0 45 0 1005.2 21.6 83.9
+ 02 3 18 1 0 0 1004.4 21.5 83.7
+ 02 3 18 1 15 0 1004.1 21.5 84.1
+ 02 3 18 1 30 0 1004.1 21.8 81.5
+ 02 3 18 1 45 0 1004.1 21.8 81.1
+ 02 3 18 2 0 0 1004.1 21.9 79.2
+ 02 3 18 2 15 0 1004.3 22.1 77.5
+ 02 3 18 2 30 0 1004.5 22.1 78.5
+ 02 3 18 2 45 0 1004.7 22.1 78.8
+ 02 3 18 3 0 0 1005.4 22.2 83.7
+ 02 3 18 3 15 0 1005.3 22.1 83.8
+ 02 3 18 3 30 0 1005.6 22.1 83.9
+ 02 3 18 3 45 0 1005.3 22.2 83.6
+ 02 3 18 4 0 0 1005.4 22.5 82.0
+ 02 3 18 4 15 0 1005.6 22.7 83.3
+ 02 3 18 4 30 0 1005.7 23.0 83.8
+ 02 3 18 4 45 0 1005.7 22.9 83.6
+ 02 3 18 5 0 0 1006.0 23.1 83.9
+ 02 3 18 5 15 0 1006.0 23.5 84.2
+ 02 3 18 5 30 0 1006.1 23.4 83.6
+ 02 3 18 5 45 0 1006.2 23.4 83.6
+ 02 3 18 6 0 0 1006.2 23.8 79.1
+ 02 3 18 6 15 0 1006.1 25.6 74.7
+ 02 3 18 6 30 0 1006.2 26.8 61.6
+ 02 3 18 6 45 0 1006.3 27.7 62.0
+ 02 3 18 7 0 0 1006.4 28.6 58.9
+ 02 3 18 7 15 0 1006.3 28.2 58.5
+ 02 3 18 7 30 0 1006.4 28.6 58.0
+ 02 3 18 7 45 0 1006.2 29.2 53.2
+ 02 3 18 8 0 0 1006.0 30.1 45.2
+ 02 3 18 8 15 0 1005.8 30.6 46.4
+ 02 3 18 8 30 0 1005.7 30.6 44.1
+ 02 3 18 8 45 0 1005.6 30.9 39.1
+ 02 3 18 9 0 0 1005.6 30.1 38.8
+ 02 3 18 9 15 0 1005.5 30.5 42.9
+ 02 3 18 9 30 0 1005.4 30.8 41.2
+ 02 3 18 9 45 0 1005.2 31.5 39.0
+ 02 3 18 10 0 0 1005.0 30.3 40.6
+ 02 3 18 10 15 0 1004.8 32.0 35.9
+ 02 3 18 10 30 0 1004.6 32.7 32.6
+ 02 3 18 10 45 0 1004.6 31.8 40.6
+ 02 3 18 11 0 0 1004.5 32.0 40.2
+ 02 3 18 11 15 0 1004.4 33.2 35.1
+ 02 3 18 11 30 0 1004.3 31.5 43.7
+ 02 3 18 11 45 0 1004.3 31.9 41.7
+ 02 3 18 12 0 0 1004.2 30.1 48.7
+ 02 3 18 12 15 0 1004.0 29.3 48.4
+ 02 3 18 12 30 0 1004.0 28.6 55.2
+ 02 3 18 12 45 0 1003.9 28.4 52.8
+ 02 3 18 13 0 0 1004.0 27.8 58.4
+ 02 3 18 13 15 0 1003.9 26.9 63.6
+ 02 3 18 13 30 0 1003.9 26.5 66.2
+ 02 3 18 13 45 0 1003.9 26.9 66.2
+ 02 3 18 14 0 0 1003.9 26.3 68.6
+ 02 3 18 14 15 0 1003.9 25.9 68.1
+ 02 3 18 14 30 0 1004.0 25.3 76.8
+ 02 3 18 14 45 0 1004.2 25.0 80.0
+ 02 3 18 15 0 0 1004.3 24.8 83.4
+ 02 3 18 15 15 0 1004.4 24.6 83.3
+ 02 3 18 15 30 0 1004.4 24.8 81.6
+ 02 3 18 15 45 0 1004.6 24.4 83.1
+ 02 3 18 16 0 0 1004.7 24.1 83.2
+ 02 3 18 16 15 0 1005.1 23.9 83.3
+ 02 3 18 16 30 0 1005.2 23.7 83.2
+ 02 3 18 16 45 0 1005.5 23.8 83.1
+ 02 3 18 17 0 0 1005.8 23.6 83.1
+ 02 3 18 17 15 0 1006.0 23.5 82.9
+ 02 3 18 17 30 0 1006.1 23.4 82.8
+ 02 3 18 17 45 0 1006.2 23.2 83.0
+ 02 3 18 18 0 0 1006.3 23.0 83.0
+ 02 3 18 18 15 0 1006.4 23.0 82.8
+ 02 3 18 18 30 0 1006.5 23.1 83.0
+ 02 3 18 18 45 0 1006.6 23.1 83.0
+ 02 3 18 19 0 0 1006.7 22.7 83.1
+ 02 3 18 19 15 0 1006.9 22.6 83.0
+ 02 3 18 19 30 0 1006.9 22.7 82.7
+ 02 3 18 19 45 0 1006.9 22.7 83.1
+ 02 3 18 20 0 0 1007.0 22.9 83.1
+ 02 3 18 20 15 0 1006.9 23.0 83.3
+ 02 3 18 20 30 0 1006.9 23.0 83.8
+ 02 3 18 20 45 0 1006.9 22.7 83.7
+ 02 3 18 21 0 0 1007.2 22.7 83.6
+ 02 3 18 21 15 0 1007.2 22.5 83.4
+ 02 3 18 21 30 0 1007.5 22.4 83.5
+ 02 3 18 21 45 0 1007.1 22.2 83.3
+ 02 3 18 22 0 0 1007.2 22.1 83.4
+ 02 3 18 22 15 0 1007.1 22.1 83.6
+ 02 3 18 22 30 0 1007.3 22.0 83.5
+ 02 3 18 22 45 0 1007.4 22.0 83.5
+ 02 3 18 23 0 0 1007.7 21.9 83.4
+ 02 3 18 23 15 0 1007.8 21.9 83.5
+ 02 3 18 23 30 0 1008.0 21.7 83.5
+ 02 3 18 23 45 0 1008.0 21.6 83.5
diff --git a/trunk/tests/data/MatrixTest.ref b/dev/oldtests/data/MatrixTest.ref
similarity index 100%
rename from trunk/tests/data/MatrixTest.ref
rename to dev/oldtests/data/MatrixTest.ref
diff --git a/trunk/tests/data/MatrixTest.ref.Win32 b/dev/oldtests/data/MatrixTest.ref.Win32
similarity index 100%
rename from trunk/tests/data/MatrixTest.ref.Win32
rename to dev/oldtests/data/MatrixTest.ref.Win32
diff --git a/trunk/tests/data/Xbegweek.can b/dev/oldtests/data/Xbegweek.can
similarity index 100%
rename from trunk/tests/data/Xbegweek.can
rename to dev/oldtests/data/Xbegweek.can
diff --git a/trunk/tests/data/Xendweek.can b/dev/oldtests/data/Xendweek.can
similarity index 100%
rename from trunk/tests/data/Xendweek.can
rename to dev/oldtests/data/Xendweek.can
diff --git a/trunk/tests/data/anotsym.dat b/dev/oldtests/data/anotsym.dat
similarity index 100%
rename from trunk/tests/data/anotsym.dat
rename to dev/oldtests/data/anotsym.dat
diff --git a/trunk/tests/data/cov.dat b/dev/oldtests/data/cov.dat
similarity index 100%
rename from trunk/tests/data/cov.dat
rename to dev/oldtests/data/cov.dat
diff --git a/trunk/tests/data/dia.dat b/dev/oldtests/data/dia.dat
similarity index 100%
rename from trunk/tests/data/dia.dat
rename to dev/oldtests/data/dia.dat
diff --git a/trunk/tests/data/lt.dat b/dev/oldtests/data/lt.dat
similarity index 100%
rename from trunk/tests/data/lt.dat
rename to dev/oldtests/data/lt.dat
diff --git a/dev/oldtests/data/nga12600.apc b/dev/oldtests/data/nga12600.apc
new file mode 100644
index 0000000..28d79cc
--- /dev/null
+++ b/dev/oldtests/data/nga12600.apc
@@ -0,0 +1,5303 @@
+#aV2004 2 29 0 0 .00000000 96 DD+AD WGS84 FIT NGA
+## 1260 .00000000 900.00000000 53064 .0000000000000
++ 27 1 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 20
++ 21 22 24 25 26 27 28 29 30 31 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
+%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
+%f 0.0000000 0.000000000 0.00000000000 0.000000000000000
+%f 0.0000000 0.000000000 0.00000000000 0.000000000000000
+%i 0 0 0 0 0 0 0 0 0
+%i 0 0 0 0 0 0 0 0 0
+/* NGA, ST. LOUIS,MO.
+/* EPHEMERIS COMPUTED FROM 3 DAYS OF DATA
+/* CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+/* CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+* 2004 2 29 0 0 .00000000
+P 1 -1359.527672 24899.269007 -8928.580812 332.443681
+V 1 -4283.749401 -10959.690376 -29371.730803 .016296
+P 3 -14150.070603 7634.352370 21025.344117 89.639171
+V 3 -8229.785704 -25798.671077 4035.714697 .027923
+P 4 19097.186291 616.349954 -18562.657950 -75.962018
+V 4 -16906.313891 16367.668285 -16517.316635 -.090923
+P 5 6763.859374 -14499.897073 -21306.513386 19.641420
+V 5 26012.695297 6813.299653 3809.917304 .017872
+P 6 -5750.083973 -25843.326763 -551.770578 -1.271606
+V 6 3840.209996 33.075861 -31270.142856 -.011564
+P 7 15766.882137 14104.814492 -15760.894779 612.423383
+V 7 3068.226351 20658.038253 20860.157600 -.077420
+P 8 13639.126332 7780.365254 21267.455295 356.168408
+V 8 -20630.244247 18048.137434 6261.181984 -.088688
+P 9 13779.049511 -21205.104534 -7870.428987 -32.208326
+V 9 9039.505389 -4388.666580 29613.509465 -.016539
+P 10 22215.716897 -2802.152367 14452.871940 40.122929
+V 10 16881.017711 7180.596825 -24202.231158 .006648
+P 11 -11494.846605 22385.357572 -8290.017723 99.666050
+V 11 -10262.637458 5086.683665 28117.353706 .025486
+P 13 7294.455778 25418.102920 2875.161605 -30.924791
+V 13 -1263.090904 4029.218411 -31890.647169 .002454
+P 14 -15034.053163 -12873.512567 -17654.374434 -18.149217
+V 14 -3437.225330 -22263.956675 19118.601390 -.001208
+P 15 -18558.984544 -1913.810462 18768.167414 232.516547
+V 15 18330.553844 -15861.399997 16076.614363 .054026
+P 16 -24423.018054 -46.042355 10521.485432 15.316804
+V 16 -11896.399336 -6324.617997 -27820.437282 -.004104
+P 17 19891.766753 -16740.829749 3002.510164 205.470605
+V 17 4813.850740 401.383598 -32146.890892 .195159
+P 18 -14124.169477 -16600.796809 15351.931707 -15.196168
+V 18 18761.101880 5060.304132 22567.520761 -.026458
+P 20 -2056.451793 15174.951911 -21769.123354 -184.359107
+V 20 -26291.765435 -7955.802233 -3068.876073 .027617
+P 21 -5084.330137 -15162.317596 21095.298204 73.044893
+V 21 21384.612337 -16497.161728 -7074.369543 .005319
+P 22 -22963.023541 -12434.334151 4883.386157 -40.931985
+V 22 6585.063377 -414.436209 30994.738514 .089458
+P 24 22559.639492 -10734.624604 -8825.090147 7.902198
+V 24 -7501.339016 9125.758502 -29218.826266 .030103
+P 25 -19928.892641 3490.901136 -16828.141458 61.648540
+V 25 13512.897368 -17666.429107 -19274.844374 .008571
+P 26 9572.575702 -15644.962801 18714.551537 411.165332
+V 26 6456.756659 23653.632546 16849.545582 -.124025
+P 27 3683.586328 17056.934051 20363.845550 919.527404
+V 27 -18491.573029 16858.524894 -11544.414517 .044414
+P 28 22912.896143 12265.329013 6398.431997 21.712377
+V 28 -8197.952256 -108.896820 30140.666522 .017137
+P 29 12279.176489 -10496.535376 21337.937647 229.661588
+V 29 6783.912403 25562.924965 8834.347279 .033779
+P 30 -8900.821947 -16765.712224 -18848.700320 803.916363
+V 30 23001.437674 4962.221424 -15364.964726 .143231
+P 31 -6528.612646 20009.861922 15668.912132 37.136711
+V 31 -8010.977492 -19282.302317 21176.874377 .309338
+* 2004 2 29 0 15 .00000000
+P 1 -1805.861633 23780.269535 -11486.858257 332.443672
+V 1 -5687.155944 -13850.481036 -27395.870766 .016255
+P 3 -14948.644527 5318.726154 21204.834061 89.640371
+V 3 -9492.882390 -25575.525042 -51.631329 .027550
+P 4 17557.626664 2182.985957 -19886.563747 -75.970292
+V 4 -17226.176512 18416.237563 -12859.421676 -.090939
+P 5 9094.393621 -13948.655282 -20782.937736 19.642959
+V 5 25691.148905 5431.243112 7809.613147 .018259
+P 6 -5361.079473 -25695.845036 -3353.128791 -1.273700
+V 6 4865.035767 3220.028540 -30891.785946 -.011530
+P 7 16054.909494 15847.900028 -13750.768852 612.416484
+V 7 3270.097471 18032.151888 23741.858371 -.077433
+P 8 11806.111367 9470.663284 21643.580840 356.160540
+V 8 -20028.928544 19458.764468 2082.971127 -.088714
+P 9 14478.660255 -21508.735280 -5144.508462 -32.211059
+V 9 6533.586693 -2292.375156 30875.708573 -.016558
+P 10 23629.341504 -2234.494903 12157.830711 40.123514
+V 10 14463.447764 5473.399973 -26725.467760 .006919
+P 11 -12315.421283 22752.205910 -5694.892886 99.668079
+V 11 -7997.863933 3006.725033 29468.693857 .025491
+P 13 7151.197401 25625.548958 -11.426511 -30.924761
+V 13 -1992.138306 592.146965 -32164.002635 .002453
+P 14 -15371.788251 -14767.793164 -15786.118234 -18.149052
+V 14 -4005.480473 -19773.246383 22338.160937 -.001217
+P 15 -16888.850744 -3434.791408 20047.448320 232.520660
+V 15 18699.765585 -17908.980868 12308.624316 .054005
+P 16 -25368.829186 -548.955031 7934.578801 15.316546
+V 16 -9067.298779 -4901.152645 -29584.289629 -.004111
+P 17 20194.033124 -16612.702050 90.951322 205.487751
+V 17 1939.871316 2506.983897 -32457.251922 .195149
+P 18 -12319.970692 -16156.537399 17246.580337 -15.198392
+V 18 21283.181836 4746.955013 19475.420403 -.026468
+P 20 -4448.812893 14519.701784 -21858.422438 -184.356354
+V 20 -26784.876011 -6578.957708 1087.280778 .027613
+P 21 -3228.935325 -16667.726582 20276.959021 73.045148
+V 21 19793.215612 -16883.425865 -11086.492306 .005303
+P 22 -22224.503918 -12436.655742 7622.950892 -40.923791
+V 22 9822.815450 291.215205 29797.560267 .089451
+P 24 21797.628280 -9796.887641 -11370.583680 7.905728
+V 24 -9359.213527 11731.938935 -27264.555223 .030260
+P 25 -18690.529598 1800.306086 -18408.777737 61.648517
+V 25 13928.693910 -19869.591630 -15797.144281 .008559
+P 26 10229.544478 -13455.962677 20058.983737 411.154632
+V 26 8154.241790 24896.932387 12984.143795 -.124009
+P 27 2099.261051 18570.510747 19157.202087 919.531382
+V 27 -16683.070276 16698.517902 -15236.132651 .044392
+P 28 22031.597541 12233.471291 9049.703083 21.714198
+V 28 -11374.343777 -528.317231 28694.096838 .017115
+P 29 12963.327207 -8178.257450 21951.433602 229.664796
+V 29 8410.611106 25864.631143 4780.534088 .033773
+P 30 -6751.415557 -16354.169021 -20068.952131 803.929781
+V 30 24694.958599 4136.289392 -11713.920489 .143214
+P 31 -7321.138371 18193.187772 17429.320998 37.164846
+V 31 -9618.485587 -21007.577018 17884.860304 .309310
+* 2004 2 29 0 30 .00000000
+P 1 -2391.633431 22417.499460 -13845.431315 332.445216
+V 1 -7370.690789 -16364.500062 -24940.097543 .016324
+P 3 -15853.371408 3045.487760 21016.302627 89.640857
+V 3 -10575.599256 -24861.942864 -4130.598385 .027341
+P 4 16010.502782 3924.496269 -20870.477584 -75.978188
+V 4 -17079.000951 20239.123330 -8972.462204 -.090957
+P 5 11372.874680 -13521.942922 -19904.584212 19.645862
+V 5 24857.139631 4060.161410 11682.659341 .018616
+P 6 -4864.020289 -25269.419286 -6096.115843 -1.275258
+V 6 6234.556989 6217.310251 -29974.552120 -.011359
+P 7 16343.810700 17343.841202 -11500.183014 612.409933
+V 7 3082.908474 15181.103992 26196.426163 -.077448
+P 8 10046.523918 11271.864689 21640.950965 356.152924
+V 8 -19007.970559 20500.529557 -2143.151459 -.088741
+P 9 14961.032542 -21606.593895 -2328.810403 -32.212261
+V 9 4225.277191 174.632406 31604.586440 -.016327
+P 10 24807.637065 -1808.749921 9656.046308 40.124602
+V 10 11662.982280 4038.783727 -28790.340621 .007205
+P 11 -12940.156118 22916.769339 -3000.984850 99.670302
+V 11 -5922.560312 600.605379 30309.267492 .025492
+P 13 6923.319289 25528.237309 -2897.824373 -30.924861
+V 13 -3138.953871 -2726.838615 -31886.515892 .002452
+P 14 -15743.067074 -16423.550329 -13645.119210 -18.149148
+V 14 -4175.206984 -16977.969717 25170.819427 -.001226
+P 15 -15207.786378 -5130.776828 20976.938277 232.527968
+V 15 18577.602713 -19735.088500 8314.741688 .054031
+P 16 -26046.534032 -938.089311 5211.516493 15.316436
+V 16 -5951.970553 -3805.165875 -30841.660452 -.004119
+P 17 20248.857370 -16279.562206 -2822.227310 205.505102
+V 17 -670.727050 4945.723309 -32182.412408 .195142
+P 18 -10303.231652 -15757.361419 18847.441083 -15.200951
+V 18 23471.105902 4066.891722 16047.965678 -.026470
+P 20 -6861.755783 13994.164716 -21573.964379 -184.353884
+V 20 -26746.128951 -5088.063737 5225.061969 .027607
+P 21 -1529.933302 -18187.556502 19105.195948 73.045677
+V 21 17922.719429 -16810.998158 -14916.489095 .005289
+P 22 -21197.035347 -12394.818760 10231.681832 -40.915677
+V 22 12990.000087 567.378029 28091.818932 .089447
+P 24 20888.661459 -8620.864153 -13718.249539 7.909524
+V 24 -10761.682393 14404.971627 -24828.565246 .030320
+P 25 -17435.353427 -78.368826 -19662.999042 61.648955
+V 25 13890.908935 -21831.097967 -12032.037797 .008614
+P 26 11041.008165 -11180.696114 21045.153439 411.143325
+V 26 9873.954637 25568.241942 8900.718846 -.123997
+P 27 685.263598 20048.271188 17628.352408 919.534767
+V 27 -14720.394196 16059.207497 -18694.228090 .044372
+P 28 20869.085873 12182.808087 11548.950591 21.715451
+V 28 -14431.789105 -529.121004 26767.151346 .017096
+P 29 13790.131716 -5856.897756 22196.136958 229.667942
+V 29 9938.906256 25633.731154 650.193331 .033761
+P 30 -4468.800544 -16028.595017 -20951.319222 803.941904
+V 30 25953.248147 3063.519921 -7866.752985 .143204
+P 31 -8261.847421 16243.533980 18878.605900 37.192947
+V 31 -11289.416352 -22232.286284 14273.685769 .309283
+* 2004 2 29 0 45 .00000000
+P 1 -3138.713068 20847.972463 -15962.923168 332.448099
+V 1 -9258.101295 -18435.303479 -22046.175116 .016361
+P 3 -16844.581391 857.119019 20463.711787 89.642222
+V 3 -11402.940051 -23697.444095 -8130.120079 .027463
+P 4 14496.354463 5816.724073 -21496.687233 -75.986486
+V 4 -16500.750124 21752.183262 -4921.623724 -.090973
+P 5 13553.763249 -13214.974077 -18685.848535 19.647884
+V 5 23526.519350 2783.999977 15362.817520 .018907
+P 6 -4229.971991 -24584.914496 -8732.796966 -1.273847
+V 6 7899.835003 8942.106568 -28532.602927 -.011238
+P 7 16597.548209 18576.541242 -9049.414162 612.402345
+V 7 2486.820344 12198.208042 28184.566497 -.077463
+P 8 8395.360538 13147.698827 21258.634982 356.144697
+V 8 -17631.312178 21107.476913 -6341.884187 -.088765
+P 9 15247.392131 -21468.097024 527.734389 -32.214372
+V 9 2189.289650 2947.969955 31781.045134 -.016162
+P 10 25719.440629 -1497.403024 6990.322028 40.124636
+V 10 8554.953873 2940.687416 -30363.723953 .007498
+P 11 -13389.166151 22852.358326 -255.007449 99.672467
+V 11 -4102.974991 -2070.344814 30624.060955 .025494
+P 13 6574.725355 25141.111646 -5734.621733 -30.924655
+V 13 -4667.208425 -5832.997601 -31063.411910 .002456
+P 14 -16110.271804 -17817.429173 -11268.450020 -18.149307
+V 14 -3910.418968 -13969.611175 27567.753859 -.001234
+P 15 -13558.622092 -6977.812055 21539.414708 232.531652
+V 15 17998.013081 -21251.675940 4164.737701 .053704
+P 16 -26434.164154 -1245.105619 2398.955159 15.316072
+V 16 -2636.245077 -3082.637623 -31570.163158 -.004128
+P 17 20083.563677 -15714.755958 -5684.411201 205.522733
+V 17 -2939.800396 7641.220580 -31325.579086 .195142
+P 18 -8107.395675 -15433.779298 20126.862423 -15.203468
+V 18 25251.994596 3077.841258 12342.280626 -.026476
+P 20 -9246.877719 13604.575203 -20920.572923 -184.351294
+V 20 -26166.714324 -3573.010432 9274.169080 .027605
+P 21 -8.672209 -19678.998130 17599.527458 73.046449
+V 21 15858.196562 -16248.918261 -18495.402167 .005279
+P 22 -19891.286920 -12347.065108 12665.146988 -40.907814
+V 22 15991.253441 426.226696 25908.621646 .089439
+P 24 19874.888918 -7204.935412 -15826.463793 7.911631
+V 24 -11686.008059 17046.515375 -21950.802489 .030150
+P 25 -16202.737278 -2119.477878 -20567.955992 61.650225
+V 25 13434.638011 -23465.831034 -8047.472185 .008686
+P 26 12004.633599 -8870.971865 21656.871675 411.131962
+V 26 11519.646250 25663.833113 4675.962873 -.123982
+P 27 -548.337260 21446.420197 15801.074039 919.538730
+V 27 -12688.681620 14928.899679 -21857.995242 .044353
+P 28 19440.144569 12150.130349 13854.341714 21.717068
+V 28 -17280.479594 -133.786675 24392.153785 .017075
+P 29 14746.718445 -3579.496603 22068.204023 229.671270
+V 29 11280.340087 24893.034338 -3488.957526 .033747
+P 30 -2094.189114 -15807.907956 -21480.982825 803.954988
+V 30 26733.455940 1818.560441 -3886.829364 .143197
+P 31 -9352.475004 14207.044620 19991.013451 37.221027
+V 31 -12935.043033 -22935.372048 10410.303127 .309249
+* 2004 2 29 1 0 .00000000
+P 1 -4061.616329 19113.960706 -17802.088700 332.449861
+V 1 -11262.755819 -20012.858108 -18764.025468 .016290
+P 3 -17896.264122 -1208.152429 19557.341338 89.646004
+V 3 -11909.477497 -22136.713060 -11981.074112 .027774
+P 4 13051.760076 7828.342070 -21753.510324 -75.995001
+V 4 -15543.211449 22880.749164 -775.542502 -.090991
+P 5 15593.723128 -13015.581397 -17146.972110 19.650663
+V 5 21732.267507 1682.296065 18786.606157 .019081
+P 6 -3435.058708 -23670.194724 -11216.947766 -1.276037
+V 6 9797.754205 11322.200416 -26589.746358 -.011190
+P 7 16779.081764 19538.433763 -6441.869896 612.395766
+V 7 1479.437851 9179.094496 29676.058967 -.077480
+P 8 6881.267419 15056.630311 20502.500212 356.136589
+V 8 -15975.653937 21229.002845 -10437.712146 -.088790
+P 9 15365.170337 -21069.118103 3374.922476 -32.214919
+V 9 488.321710 5948.958382 31396.020224 -.015819
+P 10 26340.879965 -1267.845161 4206.077645 40.126099
+V 10 5225.555103 2228.050835 -31420.663210 .007783
+P 11 -13688.002887 22538.336248 2495.393331 99.674857
+V 11 -2593.281268 -4933.365894 30407.408143 .025497
+P 13 6073.355941 24487.275734 -8473.293544 -30.924602
+V 13 -6523.818569 -8640.289534 -29709.104415 .002458
+P 14 -16433.350777 -18934.618789 -8697.238108 -18.149418
+V 14 -3193.210601 -10845.945516 29487.810777 -.001243
+P 15 -11980.349047 -8944.431820 21724.106541 232.536161
+V 15 17012.087391 -22380.474742 -68.014096 .053562
+P 16 -26517.849063 -1505.068309 -454.835210 15.315759
+V 16 786.305220 -2762.977614 -31756.393426 -.004140
+P 17 19731.841560 -14899.106811 -8443.818498 205.540443
+V 17 -4804.541514 10504.259954 -29902.030156 .195141
+P 18 -5771.887548 -15210.519223 21062.561945 -15.205997
+V 18 26566.228206 1850.149989 8420.403806 -.026478
+P 20 -11555.820421 13349.040849 -19909.342491 -184.349201
+V 20 -25056.436967 -2123.906975 13165.742030 .027602
+P 21 1321.448792 -21097.278333 15785.513109 73.047151
+V 21 13690.627062 -15184.702270 -21758.173949 .005261
+P 22 -18326.298468 -12329.739685 14882.070435 -40.899928
+V 22 18736.494166 -102.428481 23286.877437 .089432
+P 24 18799.654665 -5556.438954 -17657.589392 7.915463
+V 24 -12128.489761 19556.540798 -18679.809861 .030002
+P 25 -15028.141069 -4290.165842 -21107.135401 61.651285
+V 25 12611.432380 -24699.267605 -3916.059189 .008663
+P 26 13109.501769 -6577.970599 21884.933342 411.121087
+V 26 12997.449599 25201.277128 388.087034 -.123974
+P 27 -1599.232976 22720.911692 13704.473072 919.543032
+V 27 -10674.705114 13313.821869 -24669.913553 .044330
+P 28 17767.371817 12169.461130 15927.266272 21.718987
+V 28 -19837.073834 618.864776 21608.305135 .017050
+P 29 15812.512029 -1390.265150 21569.892567 229.674575
+V 29 12352.717404 23682.395835 -7569.204126 .033723
+P 30 328.049561 -15703.982918 -21648.928755 803.967280
+V 30 27008.491012 482.762922 160.379141 .143192
+P 31 -10586.709620 12130.878358 20747.043534 37.248497
+V 31 -14465.921174 -23115.396990 6366.459430 .309208
+* 2004 2 29 1 15 .00000000
+P 1 -5166.723461 17261.425909 -19330.511010 332.453542
+V 1 -13291.103711 -21065.469703 -15150.861058 .016190
+P 3 -18977.051988 -3117.619743 18313.559150 89.649934
+V 3 -12041.988488 -20247.329268 -15617.485417 .027876
+P 4 11707.997565 9921.844055 -21635.556180 -76.003275
+V 4 -14272.003672 23562.652389 3394.793225 -.091002
+P 5 17453.118937 -12904.758500 -15313.744389 19.653569
+V 5 19523.412771 826.975014 21894.398174 .019108
+P 6 -2461.633597 -22559.040026 -13504.908775 -1.277777
+V 6 11853.459554 13298.767868 -24179.098868 -.010966
+P 7 16851.940640 20230.524739 -3723.259924 612.388685
+V 7 75.742716 6218.024585 30649.986561 -.077496
+P 8 5525.528745 16953.348603 19385.162912 356.128882
+V 8 -14127.334985 20832.144252 -14356.430256 -.088814
+P 9 15346.797155 -20393.150656 6162.209583 -32.216633
+V 9 -829.650621 9087.467556 30451.083409 -.015718
+P 10 26656.212971 -1083.807997 1350.598076 40.126489
+V 10 1768.713545 1932.996172 -31944.705300 .007992
+P 11 -13866.470394 21961.028367 5202.487227 99.677433
+V 11 -1433.507912 -7906.996746 29663.106126 .025499
+P 13 5392.609203 23597.066433 -11067.016026 -30.924112
+V 13 -8640.969728 -11074.506856 -27846.929357 .002462
+P 14 -16671.486990 -19769.251664 -5975.942601 -18.149460
+V 14 -2024.550921 -7707.306646 30898.211004 -.001251
+P 15 -10506.663176 -10992.692942 21526.956685 232.539374
+V 15 15686.007857 -23056.316707 -4307.928492 .053586
+P 16 -26292.359929 -1754.895865 -3300.793944 15.315675
+V 16 4217.809146 -2857.837355 -31396.220823 -.004149
+P 17 19232.241506 -13821.907155 -11050.575766 205.557858
+V 17 -6220.108439 13436.524609 -27938.816163 .195142
+P 18 -3340.813576 -15105.512052 21638.026577 -15.208281
+V 18 27369.729141 464.027730 4348.338853 -.026476
+P 20 -13741.936837 13217.683733 -18557.457812 -184.346617
+V 20 -23443.410881 -827.511525 16833.486261 .027603
+P 21 2455.347972 -22397.365077 13694.340813 73.047430
+V 21 11513.236738 -13625.150823 -24645.009757 .005248
+P 22 -16528.854967 -12375.759082 16845.000984 -40.891726
+V 22 21144.211391 -972.490664 20272.536943 .089423
+P 24 17705.768882 -3691.641479 -19178.717403 7.918368
+V 24 -12104.657444 21837.319937 -15071.969637 .029804
+P 25 -13941.725752 -6551.468510 -21270.711812 61.653329
+V 25 11487.067994 -25470.663048 286.463025 .008617
+P 26 14336.502290 -4350.372128 21727.175690 411.109660
+V 26 14219.835177 24218.318081 -3884.903032 -.123975
+P 27 -2472.874531 23829.081384 11372.646145 919.546638
+V 27 -8763.566528 11238.452693 -27076.799569 .044305
+P 28 15880.464432 12270.649725 17732.930609 21.720292
+V 28 -22027.630161 1675.205565 18461.116246 .017027
+P 29 16959.939537 670.884613 20709.519509 229.677327
+V 29 13083.227933 22057.198073 -11523.767633 .033689
+P 30 2751.856874 -15721.188213 -21452.095286 803.980265
+V 30 26768.019739 -858.943368 4208.223025 .143189
+P 31 -11950.302047 10061.441742 21133.808591 37.274983
+V 31 -15795.734817 -22790.419835 2217.077107 .309176
+* 2004 2 29 1 30 .00000000
+P 1 -6451.824520 15338.309175 -20521.212143 332.454529
+V 1 -15246.449733 -21580.981706 -11270.149419 .015946
+P 3 -20051.418480 -4845.137365 16754.487241 89.653072
+V 3 -11761.584990 -18107.030315 -18977.635229 .027893
+P 4 10489.910588 12054.790363 -21143.884703 -76.011616
+V 4 -12764.024287 23750.819804 7517.229690 -.091011
+P 5 19097.388741 -12857.479893 -13217.107512 19.655802
+V 5 16963.338225 279.406895 24631.491511 .019022
+P 6 -1299.206070 -21289.834568 -15556.400134 -1.277913
+V 6 13983.306681 14828.647996 -21342.538106 -.010749
+P 7 16781.758629 20662.108931 -940.756210 612.381784
+V 7 -1692.659703 3404.365509 31094.759793 -.077511
+P 8 4341.356408 18790.432467 17925.801143 356.120413
+V 8 -12178.779829 19903.159387 -18026.680899 -.088830
+P 9 15228.275243 -19432.188569 8839.685951 -32.216554
+V 9 -1733.513326 12265.344232 28958.800400 -.015615
+P 10 26658.372081 -906.935465 -1527.739968 40.128203
+V 10 -1717.312022 2069.659974 -31928.041366 .008086
+P 11 -13957.280395 21114.368490 7819.309598 99.679552
+V 11 -648.042579 -10904.156203 28404.344315 .025498
+P 13 4512.554436 22506.864462 -13471.452406 -30.924113
+V 13 -10938.701904 -13075.951862 -25508.738614 .002463
+P 14 -16784.804685 -20324.462384 -3151.574710 -18.149895
+V 14 -424.333145 -4652.772354 31775.098846 -.001258
+P 15 -9164.723970 -13079.484859 20950.754757 232.545675
+V 15 14098.347458 -23229.962146 -8478.695620 .053854
+P 16 -25761.334146 -2031.734948 -6089.911630 15.315523
+V 16 7559.723093 -3360.612141 -30494.923788 -.004158
+P 17 18626.470552 -12481.552217 -13457.750394 205.575110
+V 17 -7161.422431 16334.766551 -25474.099019 .195145
+P 18 -861.480712 -15129.142868 21842.823589 -15.210473
+V 18 27635.686237 -993.603993 195.022409 -.026486
+P 20 -15761.899519 13193.098491 -16887.913501 -184.344061
+V 20 -21373.070749 236.214460 20214.766459 .027600
+P 21 3396.292854 -23535.709930 11362.294445 73.047625
+V 21 9417.703982 -11596.368035 -27102.667309 .005237
+P 22 -14532.579976 -12513.229447 18520.908418 -40.883377
+V 22 23144.402359 -2123.529767 16917.746151 .089417
+P 24 16633.798262 -1635.352290 -20362.330544 7.920590
+V 24 -11648.669502 23797.395896 -11190.535925 .029613
+P 25 -12967.197484 -8859.675060 -21055.755748 61.654295
+V 25 10138.686305 -25735.661803 4482.866930 .008482
+P 26 15659.068744 -2232.621638 21188.386096 411.098847
+V 26 15109.203054 22770.928683 -8066.823536 -.123966
+P 27 -3182.170648 24731.278810 8844.236266 919.550374
+V 27 -7035.332696 8745.169728 -29031.009331 .044286
+P 28 13815.251875 12478.128018 19240.897621 21.721730
+V 28 -23790.211268 2968.859916 15001.778624 .017008
+P 29 18155.403688 2569.648678 19501.335159 229.680393
+V 29 13411.241066 20086.296829 -15287.726455 .033662
+P 30 5131.016026 -15856.209651 -20893.436749 803.993686
+V 30 26018.879348 -2121.314774 8189.820975 .143185
+P 31 -13421.514766 8042.672005 21145.244227 37.301350
+V 31 -16844.985876 -21997.026115 -1961.421235 .309167
+* 2004 2 29 1 45 .00000000
+P 1 -7906.012756 13392.748012 -21353.163872 332.455252
+V 1 -17032.886657 -21567.187628 -7190.431327 .015721
+P 3 -21081.042746 -6371.898429 14907.572888 89.654456
+V 3 -11045.265961 -15800.623078 -22005.059740 .028021
+P 4 9415.026411 14181.263345 -20286.055144 -76.019698
+V 4 -11104.424180 23415.327928 11519.705257 -.091020
+P 5 20498.238270 -12843.769636 -10892.666596 19.657543
+V 5 14127.522382 87.841539 26949.131802 .018860
+P 6 54.915159 -19904.078074 -17335.277871 -1.281255
+V 6 16098.204790 15885.983679 -18129.954097 -.010574
+P 7 16537.712480 20850.181330 1857.840695 612.374886
+V 7 -3778.920723 819.358125 31007.959702 -.077527
+P 8 3333.513429 20520.121579 16149.830277 356.111455
+V 8 -10224.662531 18448.317197 -21381.460935 -.088840
+P 9 15047.591566 -18187.276424 11359.071388 -32.216758
+V 9 -2210.462948 15380.290512 26942.805294 -.015791
+P 10 26349.196220 -698.428578 -4380.246325 40.128499
+V 10 -5133.449774 2633.723621 -31371.552923 .008092
+P 11 -13994.600818 20000.257067 10300.496602 99.681832
+V 11 -244.768908 -13835.452622 26653.448906 .025498
+P 13 3420.890974 21257.688494 -15645.496083 -30.923442
+V 13 -13327.959884 -14601.559855 -22734.361623 .002468
+P 14 -16736.046738 -20612.104811 -272.876038 -18.149658
+V 14 1569.320992 -1776.414961 32103.926826 -.001260
+P 15 -7974.181676 -15158.067360 20005.133040 232.550506
+V 15 12336.826154 -22870.300051 -12504.826353 .053978
+P 16 -24937.170473 -2371.321704 -8774.076862 15.314865
+V 16 10716.501562 -4246.658016 -29067.161036 -.004165
+P 17 17957.567037 -10885.787020 -15622.308213 205.592401
+V 17 -7624.044100 19095.199245 -22556.157452 .195151
+P 18 1617.211627 -15283.799836 21672.815364 -15.212722
+V 18 27355.649678 -2432.547166 -3968.780160 -.026480
+P 20 -17577.190474 13251.110024 -14929.137284 -184.341327
+V 20 -18906.534451 997.298332 23251.651394 .027596
+P 21 4155.590810 -24471.955934 8830.110248 73.048379
+V 21 7490.398403 -9142.973312 -29085.631403 .005224
+P 22 -12376.784301 -12764.264293 19881.700386 -40.875546
+V 22 24681.058611 -3483.257053 13279.932280 .089408
+P 24 15620.446254 579.813104 -21186.870718 7.923233
+V 24 -10811.921669 25355.358139 -7104.472060 .029439
+P 25 -12120.932602 -11167.894696 -20466.292172 61.654358
+V 25 8651.437901 -25468.208061 8596.118224 .008395
+P 26 17044.215381 -263.403176 20280.070933 411.087703
+V 26 15600.966543 20930.671252 -12084.776949 -.123969
+P 27 -3746.885433 25392.435582 6161.879367 919.554129
+V 27 -5561.743292 5893.180414 -30491.657529 .044270
+P 28 11612.513841 12809.873173 20425.567442 21.722923
+V 28 -25077.076222 4423.218276 11286.475091 .016989
+P 29 19360.489367 4278.433321 17965.315034 229.683230
+V 29 13290.680822 17849.498189 -18798.925839 .033632
+P 30 7420.693463 -16098.170482 -19981.901133 804.006661
+V 30 24784.889664 -3222.082672 12039.023708 .143181
+P 31 -14971.889912 6114.443059 20782.168719 37.329059
+V 31 -17544.356212 -20788.572794 -6092.785473 .309179
+* 2004 2 29 2 0 .00000000
+P 1 -9509.932851 11471.292604 -21811.686504 332.456368
+V 1 -18559.220575 -21051.434371 -2984.019265 .015577
+P 3 -22026.285810 -7686.923043 12805.075302 89.656881
+V 3 -9886.840510 -13416.669073 -24649.426145 .028214
+P 4 8492.963334 16253.479689 -19076.059242 -76.027532
+V 4 -9383.218531 22544.819786 15331.558185 -.091031
+P 5 21634.609198 -12829.979737 -8380.110985 19.659105
+V 5 11100.791718 285.329332 28805.464340 .018764
+P 6 1595.292364 -18444.780876 -18810.214250 -1.281444
+V 6 18107.212457 16463.157309 -14598.313966 -.010277
+P 7 16093.810846 20818.575064 4624.914062 612.367941
+V 7 -6122.875253 -1466.713047 30396.027052 -.077541
+P 8 2498.289052 22096.121637 14088.445997 356.102963
+V 8 -8357.956557 16493.847870 -24359.551513 -.088846
+P 9 14843.033534 -16668.696737 13674.703181 -32.218810
+V 9 -2266.666981 18330.023810 24437.564052 -.016236
+P 10 25739.344076 -420.702082 -7158.702956 40.128874
+V 10 -8383.362084 3602.626303 -30284.793874 .008152
+P 11 -14012.556573 18628.616179 12603.089295 99.683956
+V 11 -214.871148 -16612.586682 24441.449345 .025500
+P 13 2113.615923 19893.626081 -17551.959732 -30.923031
+V 13 -15713.993213 -15626.391100 -19570.944021 .002470
+P 14 -16492.156933 -20652.140303 2610.530110 -18.149973
+V 14 3901.471694 836.235549 31879.670700 -.001265
+P 15 -6946.515899 -17179.773881 18706.422316 232.556294
+V 15 10494.659354 -21965.811523 -16313.213313 .053942
+P 16 -23840.597187 -2806.394789 -11306.912924 15.314543
+V 16 13599.169331 -5474.220930 -27136.775806 -.004168
+P 17 17268.039577 -9051.556422 -17505.968287 205.610369
+V 17 -7624.091181 21617.888194 -19242.105684 .195160
+P 18 4046.448005 -15563.740331 21130.272010 -15.215156
+V 18 26539.946270 -3762.920527 -8071.638472 -.026489
+P 20 -19155.416529 13361.802528 -12714.521972 -184.339090
+V 20 -16118.374255 1398.573860 25891.894239 .027591
+P 21 4751.948850 -25170.538834 6142.234204 73.048913
+V 21 5808.818220 -6326.526257 -30557.133616 .005208
+P 22 -10105.114383 -13144.044827 20904.654592 -40.867593
+V 22 25714.118479 -4970.422489 9420.838335 .089402
+P 24 14697.092446 2914.493946 -21637.194003 7.927176
+V 24 -9660.912340 26443.251831 -2887.117082 .029265
+P 25 -11411.421216 -13427.760231 -19513.207561 61.655511
+V 25 7114.786426 -24661.666793 12551.048036 .008328
+P 26 18453.824194 1525.623545 19020.100668 411.076326
+V 26 15646.016964 18781.511592 -15870.433648 -.123974
+P 27 -4192.748253 25783.504763 3371.541983 919.558170
+V 27 -4403.132633 2756.729145 -31425.810007 .044254
+P 28 9316.621910 13276.614107 21266.593403 21.724767
+V 28 -25856.386853 5954.325952 7375.630723 .016968
+P 29 20533.361920 5777.212180 16126.870448 229.686401
+V 29 12691.900245 15434.646586 -21998.872884 .033600
+P 30 9578.936247 -16429.044405 -18732.320326 804.019471
+V 30 23106.063604 -4085.157904 15691.390919 .143178
+P 31 -16567.299390 4311.161339 20052.194202 37.356679
+V 31 -17837.593225 -19232.744076 -10102.552778 .309193
+* 2004 2 29 2 15 .00000000
+P 1 -11236.375850 9617.193839 -21888.726318 332.457012
+V 1 -19742.722156 -20079.429733 1274.392817 .015485
+P 3 -22847.720566 -8787.242987 10483.479304 89.660211
+V 3 -8297.198223 -11044.074585 -26867.277921 .028366
+P 4 7725.154768 18223.498726 -17534.135363 -76.035339
+V 4 -7691.662408 21147.211173 18884.858804 -.091046
+P 5 22493.381756 -12780.230302 -5722.553899 19.659685
+V 5 7974.182315 888.219518 30166.391284 .018691
+P 6 3308.358397 -16954.808275 -19955.286356 -1.280891
+V 6 19921.233045 16570.976845 -10810.562066 -.010045
+P 7 15429.988744 20596.866036 7313.809563 612.360589
+V 7 -8653.419769 -3396.861207 29273.826111 -.077557
+P 8 1823.827878 23475.366855 11778.043819 356.094852
+V 8 -6666.047254 14085.047462 -26906.825005 -.088850
+P 9 14651.483521 -14895.777341 15744.488197 -32.220338
+V 9 -1927.078009 21016.524034 21487.814412 -.016700
+P 10 24847.892235 -38.993873 -9816.134176 40.130401
+V 10 -11376.880502 4936.384427 -28685.800782 .008170
+P 11 -14043.743106 17017.139283 14687.291119 99.686036
+V 11 -533.311800 -19151.709124 21807.478270 .025498
+P 13 595.374881 18460.160818 -19158.199733 -30.922753
+V 13 -17999.978952 -16144.437507 -16072.173579 .002470
+P 14 -16025.705220 -20471.722377 5448.999075 -18.150409
+V 14 6502.427929 3111.378831 31106.873172 -.001262
+P 15 -6084.715323 -19095.810375 17077.368226 232.561694
+V 15 8666.656686 -20525.220767 -19834.661625 .053884
+P 16 -22499.928448 -3365.222986 -13644.589295 15.314011
+V 16 16128.654907 -6986.046903 -24736.432700 -.004171
+P 17 16598.056013 -7004.468398 -19075.931728 205.628149
+V 17 -7197.217940 23810.919431 -15596.386516 .195169
+P 18 6379.179111 -15955.282530 20223.877133 -15.217477
+V 18 25217.388646 -4898.776223 -12042.664775 -.026485
+P 20 -20471.400390 13490.781121 -10281.872706 -184.336765
+V 20 -13093.876426 1398.016038 28089.832509 .027587
+P 21 5210.527810 -25602.113214 3345.995990 73.049443
+V 21 4438.387921 -3223.223593 -31489.980773 .005196
+P 22 -7764.051378 -13660.155963 21572.762356 -40.859668
+V 22 26220.824135 -6498.024379 5405.521124 .089395
+P 24 13888.554561 5323.929519 -21704.899137 7.929813
+V 24 -8274.446987 27009.461953 1385.286002 .028966
+P 25 -10839.052233 -15591.195048 -18214.009023 61.657614
+V 25 5618.647239 -23329.106397 16275.959659 .008192
+P 26 19846.123071 3110.781008 17432.248576 411.065765
+V 26 15212.495716 16416.247343 -19361.112785 -.123984
+P 27 -4550.301746 25882.707189 521.754720 919.562207
+V 27 -3605.713050 -577.392743 -31809.597651 .044236
+P 28 6974.051765 13881.311359 21749.227878 21.726474
+V 28 -26113.368918 7474.053579 3333.103731 .016944
+P 29 21630.309022 7054.107181 14016.479344 229.689028
+V 29 11602.987693 12934.416481 -24833.612879 .033568
+P 30 11568.071958 -16824.348978 -17165.212038 804.032284
+V 30 21037.235348 -4643.638960 19085.175468 .143173
+P 31 -18169.228621 2660.607882 18969.496984 37.385146
+V 31 -17683.798769 -17408.547167 -13919.555487 .309203
+* 2004 2 29 2 30 .00000000
+P 1 -13051.197817 7868.832759 -21583.005156 332.457890
+V 1 -20512.543758 -18713.303073 5509.174276 .015410
+P 3 -23507.656699 -9677.780123 7982.847980 89.662465
+V 3 -6303.927889 -8768.715702 -28622.644730 .028480
+P 4 7104.904747 20044.960477 -15686.462754 -76.043797
+V 4 -6118.534386 19249.639923 22115.736235 -.091063
+P 5 23069.781608 -12657.956092 -2965.800111 19.661998
+V 5 4841.527239 1895.307468 31006.309677 .018651
+P 6 5172.747373 -15475.242416 -20750.459306 -1.282227
+V 6 21456.650591 16238.101848 -6834.383361 -.009902
+P 7 14532.971630 20219.091238 9879.569993 612.353942
+V 7 -11291.236305 -4929.187926 27664.110708 -.077572
+P 8 1290.799413 24619.664943 9259.528108 356.086708
+V 8 -5227.083267 11284.571185 -28977.386905 -.088853
+P 9 14506.768858 -12896.320380 17530.790120 -32.222939
+V 9 -1234.388457 23350.159770 18147.686574 -.017091
+P 10 23701.633298 477.130407 -12307.560185 40.130573
+V 10 -14033.216397 6579.111588 -26600.832970 .008176
+P 11 -14117.812464 15190.745882 16517.164454 99.688352
+V 11 -1159.959446 -21376.598064 18798.020466 .025495
+P 13 -1120.518377 17002.458938 -20436.666284 -30.922395
+V 13 -20090.732412 -16168.715010 -12297.404700 .002473
+P 14 -15316.100484 -20104.014882 8193.721470 -18.150437
+V 14 9290.386715 4989.659792 29799.518388 -.001257
+P 15 -5383.313338 -20859.074661 15146.712969 232.565286
+V 15 6945.244084 -18577.296112 -23005.342802 .053793
+P 16 -20950.036415 -4070.306292 -15746.593063 15.313515
+V 16 18238.752779 -8711.614505 -21907.090487 -.004171
+P 17 15983.763892 -4777.899768 -20305.467364 205.645549
+V 17 -6396.729271 25594.145608 -11689.109183 .195174
+P 18 8571.745832 -16437.318359 18968.623618 -15.219862
+V 18 23434.277910 -5761.600677 -15812.747189 -.026490
+P 20 -21508.005719 13600.618379 -7672.777413 -184.333955
+V 20 -9925.888796 970.501501 29807.191890 .027585
+P 21 5561.730130 -25744.742040 490.718122 73.049769
+V 21 3429.763202 79.036144 -31867.162160 .005180
+P 22 -5401.316479 -14312.220833 21874.980825 -40.851089
+V 22 26196.442943 -7976.712859 1301.325557 .089392
+P 24 13212.127530 7759.535104 -21388.518796 7.932201
+V 24 -6740.298802 27020.934466 5635.160106 .028663
+P 25 -10396.246543 -17612.167405 -16592.443691 61.656201
+V 25 4249.541797 -21502.737711 19704.118756 .008019
+P 26 21177.290716 4476.999166 15545.641463 411.053750
+V 26 14286.836177 13932.716324 -22500.656356 -.123996
+P 27 -4853.527072 25676.524587 -2337.248828 919.565749
+V 27 -3199.365259 -4012.969417 -31629.193711 .044219
+P 28 4631.817183 14618.931165 21864.592590 21.727810
+V 28 -25850.883342 8893.446910 -774.684151 .016925
+P 29 22607.372537 8105.671213 11669.239338 229.691713
+V 29 10030.452854 10442.911086 -27254.580530 .033534
+P 30 13355.960263 -17254.096850 -15306.493133 804.045223
+V 30 18646.143951 -4842.515865 22162.306617 .143169
+P 31 -19736.236085 1183.070384 17554.458536 37.413274
+V 31 -17059.035508 -15402.899171 -17477.281466 .309208
+* 2004 2 29 2 45 .00000000
+P 1 -14914.525469 6258.355190 -20900.038876 332.458906
+V 1 -20812.656797 -17029.001575 9645.221119 .015375
+P 3 -23971.602813 -10370.927354 5346.126617 89.664957
+V 3 -3950.309984 -6670.223131 -29887.515516 .028605
+P 4 6617.776364 21674.784368 -13564.737863 -76.052723
+V 4 -4746.480884 16897.642614 24965.666423 -.091078
+P 5 23367.471937 -12427.499085 -157.553511 19.664686
+V 5 1795.898489 3287.674018 31308.709617 .018443
+P 6 7159.944000 -14043.829220 -21181.953220 -1.281931
+V 6 22638.749159 15509.734146 -2740.862656 -.009728
+P 7 13396.882832 19722.332232 12279.618503 612.346863
+V 7 -13951.752950 -6038.084509 25596.917909 -.077585
+P 8 873.378972 25497.154652 6577.527140 356.078757
+V 8 -4106.732521 8169.990444 -30534.516478 -.088852
+P 9 14438.143440 -10705.673246 19001.223937 -32.225138
+V 9 -247.161271 25253.484849 14479.526843 -.017227
+P 10 22334.099469 1152.435543 -14590.720923 40.131937
+V 10 -16283.834892 8461.095976 -24063.999305 .008207
+P 11 -14260.188358 13180.763149 18061.253488 99.690697
+V 11 -2041.316978 -23221.529324 15466.029801 .025493
+P 13 -3012.394972 15563.679942 -21365.370602 -30.922055
+V 13 -21896.367985 -15730.638521 -8310.693664 .002479
+P 14 -14350.543905 -19586.790931 10797.561096 -18.150335
+V 14 12174.539238 6428.309988 27980.742710 -.001253
+P 15 -4828.778410 -22425.919587 12948.651313 232.570197
+V 15 5416.587998 -16169.804673 -25768.126773 .053916
+P 16 -19231.077976 -4937.302860 -17576.445752 15.313002
+V 16 19878.595522 -10569.905409 -18697.317995 -.004167
+P 17 15455.815309 -2411.790235 -21174.343592 205.663324
+V 17 -5290.948121 26902.341473 -7594.305789 .195177
+P 18 10585.382683 -16982.131078 17385.598055 -15.222039
+V 18 21252.726336 -6283.560980 -19315.787375 -.026491
+P 20 -22256.664252 13652.430707 -4931.909830 -184.331287
+V 20 -6711.372414 108.923272 31013.778498 .027581
+P 21 5839.772663 -25584.798292 -2373.218731 73.050242
+V 21 2816.767180 3484.092057 -31682.213670 .005172
+P 22 -3064.240700 -15091.845745 21806.392243 -40.843062
+V 22 25654.334735 -9318.264836 -2823.153680 .089385
+P 24 12676.942182 10170.643842 -20693.566871 7.932687
+V 24 -5151.471713 26464.626766 9785.216427 .028374
+P 25 -10067.928947 -19448.357552 -14677.990936 61.657743
+V 25 3086.944669 -19232.547064 22775.082731 .008012
+P 26 22403.122242 5618.095635 13394.140913 411.042760
+V 26 12874.071751 11429.945664 -25240.100649 -.124004
+P 27 -5138.298212 25160.386995 -5154.472714 919.569385
+V 27 -3196.069345 -7448.010578 -30881.594257 .044209
+P 28 2335.880275 15476.524978 21609.867927 21.729208
+V 28 -25089.379494 10126.145546 -4879.677487 .016907
+P 29 23422.012831 8936.860203 9124.345604 229.694808
+V 29 7999.257676 8052.180366 -29219.416924 .033505
+P 30 14917.049565 -17683.972809 -13187.104898 804.057971
+V 30 16011.028967 -4640.968034 24869.361425 .143162
+P 31 -21225.524737 -109.205280 15833.191862 37.440709
+V 31 -15957.201626 -13306.968773 -20715.056456 .309212
+* 2004 2 29 3 0 .00000000
+P 1 -16782.199830 4810.566500 -19852.024634 332.462727
+V 1 -20604.185294 -15113.134127 13609.401510 .015350
+P 3 -24209.611415 -10885.851768 2618.410175 89.668156
+V 3 -1293.730236 -4819.042288 -30642.175956 .028809
+P 4 6242.300638 23074.759612 -11205.637812 -76.060291
+V 4 -3648.576552 14153.576608 27382.686093 -.091096
+P 5 23398.325212 -12055.681503 2653.422123 19.666322
+V 5 -1073.934767 5029.268599 31066.593338 .018265
+P 6 9235.225331 -12693.574183 -21242.486168 -1.282446
+V 6 23404.768679 14445.631500 1396.924468 -.009675
+P 7 12023.578020 19145.217715 14474.384840 612.339428
+V 7 -16548.231189 -6714.827508 23108.911326 -.077600
+P 8 540.496766 26083.514375 3779.533659 356.070526
+V 8 -3355.488471 4830.725246 -31551.378027 -.088848
+P 9 14468.971698 -8365.480048 20129.332593 -32.227021
+V 9 962.780094 26664.510603 10552.463515 -.017169
+P 10 20784.346405 2004.885751 -16626.761971 40.133560
+V 10 -18074.892638 10501.396808 -21116.784525 .008187
+P 11 -14490.961090 11023.867317 19293.122466 99.693037
+V 11 -3112.776137 -24633.727355 11869.935580 .025496
+P 13 -5050.866090 14183.375012 -21928.261769 -30.922441
+V 13 -23335.773806 -14878.702383 -4179.757570 .002480
+P 14 -13124.686315 -18960.867993 13215.859769 -18.150720
+V 14 15058.520969 7402.635828 25682.390314 -.001242
+P 15 -4400.242095 -23757.785571 10522.173755 232.575279
+V 15 4156.996527 -13367.665865 -28073.751174 .054056
+P 16 -17387.024897 -5974.225568 -19102.351917 15.312621
+V 16 21014.535454 -12472.606202 -15162.463889 -.004161
+P 17 15038.156634 48.816042 -21669.102350 205.680836
+V 17 -3959.989637 27687.641340 -3388.177930 .195183
+P 18 12387.541587 -17556.488587 15501.654457 -15.224627
+V 18 18748.354168 -6410.364125 -22489.918796 -.026485
+P 20 -22717.584040 13607.524087 -2106.275782 -184.328982
+V 20 -3547.786055 -1175.387883 31688.045123 .027576
+P 21 6081.105788 -25117.540032 -5195.331782 73.050443
+V 21 2615.051560 6891.310749 -30939.326785 .005165
+P 22 -798.157996 -15982.876502 21368.269553 -40.834810
+V 22 24625.368229 -10439.007597 -6899.113503 .089378
+P 24 12283.671927 12506.341634 -19632.439203 7.936140
+V 24 -3602.233520 25348.116343 13760.080202 .028231
+P 25 -9832.313984 -21062.668298 -12505.243537 61.658653
+V 25 2199.985861 -16584.200411 25435.833982 .007906
+P 26 23480.690325 6536.712298 11015.672781 411.031933
+V 26 10997.436071 9004.391032 -27538.157448 -.124013
+P 27 -5440.728143 24339.013203 -7879.158453 919.573088
+V 27 -3589.087470 -10778.785186 -29575.143744 .044195
+P 28 129.594178 16433.615432 20988.395936 21.730730
+V 28 -23866.220577 11091.754564 -8913.175397 .016892
+P 29 24034.745729 9560.692594 6424.497227 229.697884
+V 29 5552.176813 5848.777049 -30692.740098 .033477
+P 30 16233.198038 -18076.695875 -10842.551941 804.071055
+V 30 13217.813083 -4014.164210 27158.510305 .143156
+P 31 -22594.558630 -1212.229501 13836.970255 37.468544
+V 31 -14390.161621 -11212.439117 -23579.028557 .309218
+* 2004 2 29 3 15 .00000000
+P 1 -18607.399000 3542.130246 -18457.600215 332.462314
+V 1 -19867.038913 -13059.398799 17331.948069 .015028
+P 3 -24197.457498 -11247.549491 -153.813627 89.670422
+V 3 1596.419012 -3273.871133 -30875.413481 .028856
+P 4 5950.979555 24212.961464 -8650.179288 -76.068464
+V 4 -2885.251264 11094.339778 29322.496592 -.091108
+P 5 23181.879436 -11513.299108 5418.170799 19.667440
+V 5 -3686.945665 7068.108480 30282.730313 .018006
+P 6 11358.856246 -11451.544176 -20931.388641 -1.283869
+V 6 23706.467584 13117.533277 5505.351479 -.009675
+P 7 10422.700119 18526.399705 16427.870915 612.332646
+V 7 -18994.873746 -6967.571620 20242.691944 -.077612
+P 8 257.300148 26362.871787 914.992456 356.061874
+V 8 -3006.644267 1364.493781 -32011.484337 -.088838
+P 9 14615.676187 -5922.168576 20895.124966 -32.227801
+V 9 2313.575407 27539.286748 6440.768988 -.017113
+P 10 19095.540593 3044.767276 -18380.873308 40.134822
+V 10 -19369.152864 12610.867617 -17807.475523 .008071
+P 11 -14824.005581 8760.826954 20191.800393 99.695650
+V 11 -4301.303644 -25575.302992 8072.561439 .025494
+P 13 -7199.757592 12896.033719 -22115.506959 -30.922095
+V 13 -24339.770308 -13676.514412 25.129247 .002484
+P 14 -11642.964590 -18268.440536 15407.195577 -18.150739
+V 14 17844.070950 7906.800683 22944.424844 -.001231
+P 15 -4070.532366 -24822.633941 7910.313102 232.580985
+V 15 3229.758645 -10250.388305 -29881.793389 .054123
+P 16 -15464.054179 -7180.941532 -20297.766963 15.311944
+V 16 21631.358639 -14327.616286 -11363.694621 -.004156
+P 17 14747.128723 2555.412699 -21783.177315 205.698418
+V 17 -2492.117770 27921.176766 852.601757 .195191
+P 18 13952.983140 -18122.972045 13348.980178 -15.227169
+V 18 16007.441182 -6103.608196 -25278.679573 -.026482
+P 20 -22899.629885 13429.045638 755.585302 -184.326716
+V 20 -529.440500 -2852.957389 31817.517741 .027576
+P 21 6322.746972 -24347.334986 -7925.990386 73.050611
+V 21 2821.540798 10199.555765 -29653.200720 .005165
+P 22 1355.120635 -16961.956018 20568.048467 -40.827183
+V 22 23156.710688 -11263.071428 -10858.578371 .089363
+P 24 12024.600069 14717.317663 -18224.169717 7.938926
+V 24 -2184.099429 23699.337792 17487.869881 .028077
+P 25 -9661.967237 -22424.518195 -10113.196653 61.660420
+V 25 1644.648393 -13636.328963 27641.692159 .007767
+P 26 24369.940349 7243.922543 8451.521277 411.020712
+V 26 8697.305998 6746.398778 -29361.523160 -.124026
+P 27 -5795.478370 23226.377452 -10461.818746 919.576732
+V 27 -4352.976454 -13904.060743 -27729.755185 .044187
+P 28 -1947.765555 17462.879183 20009.691883 21.732110
+V 28 -22234.390678 11719.050101 -12806.874052 .016882
+P 29 24410.691881 9997.605164 3615.236847 229.700862
+V 29 2748.493468 3910.472868 -31646.854031 .033444
+P 30 17294.225920 -18393.517980 -8312.357776 804.084254
+V 30 10356.964114 -2954.486109 28988.419635 .143145
+P 31 -23802.658547 -2130.149550 11601.576743 37.496690
+V 31 -12387.155330 -9207.852165 -26022.945431 .309223
+* 2004 2 29 3 30 .00000000
+P 1 -20342.373803 2461.101379 -16741.481695 332.464126
+V 1 -18600.780536 -10964.747184 20747.763856 .014910
+P 3 -23917.608256 -11485.690243 -2923.433881 89.673810
+V 3 4641.266703 -2079.562423 -30584.594622 .028836
+P 4 5711.543925 25064.933740 -5942.984374 -76.076837
+V 4 -2501.721784 7808.473895 30749.422763 -.091115
+P 5 22744.499081 -10776.470098 8088.430300 19.668765
+V 5 -5972.945253 9338.282298 28969.740686 .017842
+P 6 13487.489291 -10337.923170 -20254.588460 -1.283756
+V 6 23512.086089 11606.112957 9511.673896 -.009621
+P 7 8611.457378 17903.056760 18108.153400 612.325813
+V 7 -21209.852469 -6820.760611 17046.089927 -.077624
+P 8 -13.235154 26328.378287 -1965.642255 356.053660
+V 8 -3075.018245 -2126.557259 -31908.904361 -.088821
+P 9 14886.996937 -3425.241054 21285.459657 -32.229260
+V 9 3717.002656 27853.663159 2222.083064 -.017227
+P 10 17313.400600 4274.098521 -19822.871987 40.136170
+V 10 -20147.307201 14695.504097 -14190.489100 .007922
+P 11 -15266.356468 6435.097707 20742.125405 99.697882
+V 11 -5528.448057 -26024.606390 4139.980658 .025485
+P 13 -9417.310148 11729.834149 -21923.670073 -30.921929
+V 13 -24853.833548 -12200.255338 4232.286711 .002488
+P 14 -9918.604578 -17551.375100 17334.082209 -18.150690
+V 14 20434.758869 7953.875836 19814.210474 -.001227
+P 15 -3807.466390 -25596.121699 5159.313452 232.584991
+V 15 2682.560174 -6908.909136 -31161.419054 .053948
+P 16 -13508.861204 -8548.995932 -21141.873092 15.311392
+V 16 21732.780546 -16042.723284 -7366.917994 -.004153
+P 17 14590.906892 5057.783319 -21516.863779 205.715635
+V 17 -979.869542 27593.878911 5052.478968 .195202
+P 18 15264.590842 -18641.489279 10964.559342 -15.229969
+V 18 13123.638190 -5342.522102 -27632.112431 -.026474
+P 20 -22819.879569 13083.576610 3604.430558 -184.324065
+V 20 2256.037195 -4877.170985 31399.071331 .027575
+P 21 6600.600410 -23287.526479 -10517.345720 73.051030
+V 21 3414.678623 13311.158369 -27848.646592 .005166
+P 22 3358.697490 -17999.362700 19419.206839 -40.819066
+V 22 21310.034895 -11725.357921 -14635.422935 .089351
+P 24 11884.043959 16757.652363 -16494.048355 7.940371
+V 24 -981.948730 21565.461479 20901.681501 .027947
+P 25 -9525.092282 -23510.867614 -7544.465198 61.659714
+V 25 1461.571675 -10477.332320 29356.991637 .007465
+P 26 25035.163417 7758.534454 5745.602161 411.009664
+V 26 6029.557393 4737.004335 -30685.037671 -.124037
+P 27 -6234.108460 21845.292923 -12855.275789 919.580755
+V 27 -5444.466135 -16729.344463 -25376.787130 .044182
+P 28 -3862.326441 18531.106310 18689.359813 21.733870
+V 28 -20260.613807 11948.900180 -16493.956018 .016867
+P 29 24520.979836 10274.525112 744.229927 229.703983
+V 29 -337.940616 2303.257304 -32062.378166 .033417
+P 30 18098.174954 -18595.804477 -5639.441843 804.096836
+V 30 7520.144249 -1472.114634 30325.091394 .143136
+P 31 -24812.513822 -2874.810418 9166.592945 37.523634
+V 31 -9993.537625 -7375.181134 -28008.724415 .309222
+* 2004 2 29 3 45 .00000000
+P 1 -21940.225796 1566.810411 -14733.988576 332.464066
+V 1 -16824.697813 -8925.448617 23797.612467 .014800
+P 3 -23359.949524 -11633.296654 -5643.487498 89.676271
+V 3 7755.324450 -1265.559007 -29775.620390 .028781
+P 4 5488.415178 25614.587179 -3131.467795 -76.084773
+V 4 -2526.046085 4392.768291 31637.195077 -.091121
+P 5 22118.274922 -9827.780860 10617.508278 19.669286
+V 5 -7875.288050 11762.414239 27149.867469 .017765
+P 6 15575.711213 -9365.358545 -19224.468386 -1.282820
+V 6 22807.632221 9997.591996 13345.419433 -.009663
+P 7 6614.136049 17309.475134 19487.822085 612.319009
+V 7 -23118.163550 -6313.991803 13571.446408 -.077636
+P 8 -308.614748 25982.427385 -4811.856720 356.044904
+V 8 -3556.476149 -5539.865751 -31248.217925 -.088796
+P 9 15283.594927 -925.446388 21294.265305 -32.229982
+V 9 5082.417510 27604.152504 -2024.431311 -.017392
+P 10 15484.548091 5686.351819 -20927.719943 40.136674
+V 10 -20408.652192 16660.002071 -10325.603044 .007693
+P 11 -15817.863710 4091.323467 20934.984143 99.700070
+V 11 -6713.545304 -25976.947998 140.331765 .025480
+P 13 -11657.600914 10705.644112 -21355.785166 -30.921797
+V 13 -24840.279151 -10535.656821 8369.812930 .002495
+P 14 -7973.290899 -16849.533663 18963.598252 -18.151118
+V 14 22739.637504 7575.163373 16345.677339 -.001221
+P 15 -3575.345717 -26062.470338 2317.742543 232.589216
+V 15 2545.585374 -3441.982284 -31891.890237 .054061
+P 16 -11566.961530 -10061.768707 -21619.953973 15.311203
+V 16 21341.201572 -17529.299686 -3241.612565 -.004148
+P 17 14569.293264 7505.788350 -20877.152000 205.733319
+V 17 483.870235 26716.453507 9138.456565 .195215
+P 18 16313.874208 -19070.914112 8389.541612 -15.231981
+V 18 10194.364197 -4125.012452 -29507.763821 -.026467
+P 20 -22502.871980 12542.604200 6391.161527 -184.321453
+V 20 4730.992097 -7185.955667 30439.045453 .027576
+P 21 6947.834372 -21959.948555 -12924.214352 73.051473
+V 21 4355.457159 16135.713951 -25559.962113 .005168
+P 22 5181.793198 -19060.099243 17941.052888 -40.811399
+V 22 19159.205984 -11774.120068 -18166.373620 .089338
+P 24 11839.116038 18586.467763 -14473.111351 7.944435
+V 24 -70.449687 19010.969410 23940.934333 .027833
+P 25 -9386.985063 -24306.941070 -4844.450957 61.659439
+V 25 1674.537626 -7201.851733 30555.521263 .007299
+P 26 25446.298051 8106.124535 2943.727528 410.998435
+V 26 3063.417666 3045.159213 -31491.716221 -.124047
+P 27 -6783.543294 20226.621550 -15015.672225 919.584939
+V 27 -6804.190529 -19170.909428 -22558.556978 .044180
+P 28 -5586.750659 19600.405464 17048.908365 21.735219
+V 28 -18022.936717 11736.786191 -19910.215120 .016853
+P 29 24343.947781 10423.689193 -2139.508315 229.706957
+V 29 -3621.228495 1078.736932 -31928.777313 .033393
+P 30 18651.261161 -18646.637131 -2869.424632 804.109744
+V 30 4796.767307 405.061491 31142.617323 .143125
+P 31 -25591.553450 -3465.022283 6574.645646 37.551427
+V 31 -7268.926137 -5786.758274 -29506.823811 .309243
+* 2004 2 29 4 0 .00000000
+P 1 -23356.655945 850.100104 -12470.467995 332.463747
+V 1 -14577.083282 -7033.219188 26429.167134 .014822
+P 3 -22522.243601 -11725.308658 -8267.920936 89.677479
+V 3 10849.576298 -844.911381 -28462.765977 .028692
+P 4 5244.310708 25854.774900 -264.962769 -76.092858
+V 4 -2967.891488 948.506076 31969.528232 -.091123
+P 5 21339.702422 -8657.186228 12961.138251 19.672246
+V 5 -9353.041319 14254.679188 24854.684159 .017705
+P 6 17577.672886 -8538.621890 -17859.601796 -1.284173
+V 6 21597.444116 8380.162287 16939.702143 -.009834
+P 7 4461.367027 16775.754944 20544.353340 612.312451
+V 7 -24654.226332 -5500.382233 9874.890065 -.077648
+P 8 -665.128521 25336.512138 -7574.012507 356.037363
+V 8 -4428.256245 -8776.432580 -30044.230151 -.088763
+P 9 15798.014578 1527.083522 20922.594588 -32.231697
+V 9 6320.758967 26807.865855 -6219.927511 -.017628
+P 10 13654.828264 7266.500282 -21675.968337 40.137740
+V 10 -20171.088808 18411.401865 -6277.093179 .007526
+P 11 -16471.140830 1773.801980 20767.443628 99.702256
+V 11 -7776.994990 -25444.666085 -3857.382351 .025476
+P 13 -13872.134214 9836.311878 -20421.322468 -30.921389
+V 13 -24279.821540 -8774.609603 12366.784041 .002502
+P 14 -5836.516579 -16199.189683 20267.936781 -18.151044
+V 14 24676.682487 6818.821645 12598.387439 -.001210
+P 15 -3336.588554 -26214.995468 -564.430528 232.594424
+V 15 2830.377993 47.718981 -32062.826649 .054270
+P 16 -9681.047799 -11694.959327 -21723.660656 15.311052
+V 16 20496.730668 -18705.872739 940.414603 -.004146
+P 17 14673.858175 9851.114133 -19877.438929 205.750249
+V 17 1809.673487 25318.574338 13041.354959 .195229
+P 18 17101.138836 -19370.786674 5668.526613 -15.235063
+V 18 7317.033943 -2467.966489 -30871.554353 -.026466
+P 20 -21979.575341 11783.813775 9067.674942 -184.319416
+V 20 6830.652425 -9704.077613 28953.193436 .027578
+P 21 7393.384376 -20394.113470 -15104.896176 73.052096
+V 21 5589.171829 18593.540448 -22830.103571 .005175
+P 22 6800.723070 -20105.192674 16158.424533 -40.803439
+V 22 16787.527532 -11373.062429 -21391.981000 .089325
+P 24 11860.786779 20169.371948 -12197.518066 7.948446
+V 24 489.049635 16115.022559 26552.540407 .027637
+P 25 -9211.592103 -24806.623303 -2060.480598 61.659740
+V 25 2289.681204 -3907.073601 31220.733322 .007477
+P 26 25580.019470 8317.843895 92.872576 410.988028
+V 26 -121.091552 1725.457828 -31772.677390 -.124055
+P 27 -7464.732264 18408.139272 -16903.421852 919.588553
+V 27 -8359.207094 -21159.390566 -19327.490792 .044176
+P 28 -7101.127646 20629.613943 15115.464337 21.736802
+V 28 -15607.848943 11054.818655 -22995.201047 .016839
+P 29 23866.094714 10481.250971 -4986.428364 229.710196
+V 29 -7006.458059 272.044747 -31244.770347 .033373
+P 30 18967.518469 -18512.377725 -49.869683 804.122793
+V 30 2270.594042 2632.230596 31423.823528 .143114
+P 31 -26113.127387 -3925.571475 3870.628374 37.579142
+V 31 -4284.853220 -4502.662016 -30496.430087 .309263
+* 2004 2 29 4 15 .00000000
+P 1 -24551.614215 293.901634 -9990.631613 332.466364
+V 1 -11913.761770 -5371.574698 28597.898914 .015047
+P 3 -21410.302859 -11797.086823 -10752.332546 89.679520
+V 3 13834.686050 -813.906321 -26668.411164 .028710
+P 4 4941.925625 25787.519929 2606.195285 -76.100832
+V 4 -3818.075444 -2422.485862 31740.476111 -.091127
+P 5 20448.194608 -7262.619895 15078.293322 19.673583
+V 5 -10382.501542 16724.178529 22124.501906 .017589
+P 6 19448.736642 -7854.594687 -16184.374628 -1.285621
+V 6 19904.014790 6840.369785 20232.431501 -.009866
+P 7 2189.172965 16326.683646 21260.418294 612.304582
+V 7 -25764.151681 -4444.495245 6015.609587 -.077656
+P 8 -1116.217919 24410.732545 -10204.245627 356.029490
+V 8 -5650.065616 -11744.594794 -28321.466962 -.088733
+P 9 16415.002333 3884.650672 20178.515492 -32.233535
+V 9 7348.424792 25501.545448 -10287.641336 -.017756
+P 10 11867.661231 8991.391671 -22054.120158 40.138485
+V 10 -19470.435458 19862.689522 -2112.780402 .007369
+P 11 -17211.806394 -475.026275 20242.775141 99.704707
+V 11 -8643.478881 -24456.545169 -7784.489787 .025470
+P 13 -16011.541977 9126.274123 -19136.046360 -30.921345
+V 13 -23172.445168 -7011.528091 16154.452465 .002509
+P 14 -3544.637554 -15631.597181 21224.867019 -18.150813
+V 14 26175.890777 5747.849782 8636.517766 -.001202
+P 15 -3053.428874 -26056.279342 -3436.770082 232.599886
+V 15 3529.497768 3457.610480 -31674.223217 .054296
+P 16 -7889.466134 -13417.381759 -21451.163367 15.310968
+V 16 19255.515075 -19501.424136 5106.317541 -.004143
+P 17 14888.412825 12048.916958 -18537.135136 205.767879
+V 17 2915.102390 23447.371969 16696.879231 .195247
+P 18 17635.314973 -19503.006493 2848.776761 -15.237248
+V 18 4585.266011 -406.785953 -31698.495847 -.026446
+P 20 -21286.114845 10792.149625 11587.701336 -184.316946
+V 20 8505.546818 -12345.971761 26966.462143 .027579
+P 21 7960.643719 -18626.108607 -17021.909921 73.052775
+V 21 7047.812546 20618.655551 -19709.688138 .005183
+P 22 8199.609256 -21093.158873 14101.302855 -40.795114
+V 22 14284.641107 -10502.884506 -24257.553959 .089317
+P 24 11915.201406 21479.639339 -9707.831619 7.950085
+V 24 651.032446 12968.246495 28691.868844 .027482
+P 25 -8963.106774 -25012.521007 759.065290 61.660242
+V 25 3295.432265 -689.022064 31345.737107 .007657
+P 26 25420.583929 8429.044329 -2759.547291 410.976662
+V 26 -3436.023088 816.415100 -31526.988594 -.124064
+P 27 -8291.566536 16433.104517 -18484.068207 919.592627
+V 27 -10026.189279 -22642.753076 -15744.931844 .044173
+P 28 -8393.590137 21575.862872 12921.383084 21.738018
+V 28 -13107.034559 9893.153978 -25693.363222 .016822
+P 29 23082.739776 10485.726507 -7747.292386 229.712430
+V 29 -10393.138872 -99.644975 -30018.595795 .033359
+P 30 19068.142683 -18164.130108 2770.526505 804.135590
+V 30 16.500141 5149.125436 31160.780919 .143103
+P 31 -26357.458288 -4286.019992 1100.913703 37.606771
+V 31 -1122.031116 -3568.642205 -30965.480150 .309289
+* 2004 2 29 4 30 .00000000
+P 1 -25490.785285 -125.876646 -7337.820379 332.468043
+V 1 -8905.935195 -4012.553776 30267.789724 .015149
+P 3 -20037.873644 -11882.910156 -13054.685962 89.681729
+V 3 16624.209105 -1152.314896 -24422.667680 .028836
+P 4 4545.620077 25423.884820 5431.606428 -76.108447
+V 4 -5048.901823 -5621.811188 30954.550917 -.091136
+P 5 19484.488874 -5650.290325 16931.940446 19.675145
+V 5 -10958.017665 19078.538022 19007.621292 .017490
+P 6 21147.075221 -7302.575537 -14228.504140 -1.287264
+V 6 17767.097864 5459.609827 23167.392269 -.009992
+P 7 -162.171471 15980.813394 21624.125275 612.297573
+V 7 -26407.616065 -3219.895136 2055.120006 -.077658
+P 8 -1690.974245 23232.978463 -12657.311430 356.021067
+V 8 -7165.881630 -14363.438787 -26113.479747 -.088700
+P 9 17112.161267 6103.682714 19076.849229 -32.234947
+V 9 8090.834722 23739.766863 -14154.523466 -.017889
+P 10 10162.485702 10830.439506 -22054.903210 40.138554
+V 10 -18359.068358 20936.223112 2097.006351 .007125
+P 11 -18019.007855 -2616.008670 19370.371546 99.707159
+V 11 -9244.997350 -23056.614594 -11573.818983 .025461
+P 13 -18027.330082 8571.496935 -17521.766275 -30.921282
+V 13 -21537.549291 -5339.608120 19667.425026 .002515
+P 14 -1139.668028 -15171.767169 21818.101404 -18.150855
+V 14 27181.923046 4437.511067 4527.777697 -.001197
+P 15 -2689.610600 -25597.984206 -6249.299680 232.604616
+V 15 4616.970166 6689.142166 -30736.236556 .054238
+P 16 -6224.871697 -15192.039194 -20807.186060 15.310752
+V 16 17687.442547 -19858.286519 9183.522872 -.004141
+P 17 15189.782962 14059.303057 -16881.184540 205.785749
+V 17 3727.846778 21165.317252 20046.489940 .195266
+P 18 17933.449829 -19433.449259 -20.626665 -15.239480
+V 18 2085.230131 2005.836702 -31973.231555 -.026433
+P 20 -20462.308723 9560.601087 13907.616203 -184.314652
+V 20 9723.329692 -15018.995657 24512.602880 .027584
+P 21 8666.393583 -16697.251563 -18642.632623 73.053238
+V 21 8652.975076 22161.156400 -16255.863508 .005187
+P 22 9370.802229 -21981.578637 11804.343589 -40.787464
+V 22 11743.186107 -9162.208103 -26714.045455 .089306
+P 24 11965.191817 22499.081122 -7048.222732 7.951681
+V 24 387.626056 9669.086962 30323.485389 .027333
+P 25 -8607.538728 -24935.696078 3565.613686 61.662083
+V 25 4663.163577 2361.009437 30933.098889 .007775
+P 26 24960.404648 8477.775428 -5566.382447 410.965472
+V 26 -6788.583853 339.326867 -30761.447779 -.124073
+P 27 -9270.108134 14348.594069 -19729.022127 919.596873
+V 27 -11715.133773 -23588.469258 -11879.651459 .044173
+P 28 -9460.625487 22396.240025 10503.756935 21.739847
+V 28 -10613.869450 8260.736857 -27955.168816 .016807
+P 29 21998.358428 10476.336595 -10374.036868 229.714830
+V 29 -13678.924672 -37.919611 -28268.113323 .033351
+P 30 18980.557479 -17579.040771 5542.783657 804.148952
+V 30 -1902.449364 7882.133646 30355.157658 .143092
+P 31 -26312.334019 -4579.344602 -1687.429834 37.634812
+V 31 2132.653868 -3014.636494 -30910.540532 .309317
+* 2004 2 29 4 45 .00000000
+P 1 -26146.853132 -439.187023 -4558.213326 332.471655
+V 1 -5637.442063 -3013.938339 31411.861766 .015135
+P 3 -18426.235116 -12014.523712 -15135.985544 89.685284
+V 3 19137.696916 -1824.247799 -21762.909353 .029167
+P 4 4023.040910 24783.489020 8161.743830 -76.116461
+V 4 -6615.278083 -8558.329159 29626.603087 -.091148
+P 5 18489.012983 -3834.648174 18489.719006 19.676698
+V 5 -11092.072850 21227.582524 15559.405820 .017325
+P 6 22635.159592 -6864.892426 -12026.467037 -1.288835
+V 6 15242.142898 4310.875838 25695.176498 -.009988
+P 7 -2549.428229 15749.772415 21629.195801 612.290440
+V 7 -26559.287980 -1906.405096 -1943.481368 -.077663
+P 8 -2412.827353 21837.826585 -14891.359542 356.011987
+V 8 -8906.363713 -16565.721659 -23461.991820 -.088663
+P 9 17860.906318 8146.229634 17638.769128 -32.236568
+V 9 8485.524345 21592.423398 -17752.689454 -.018041
+P 10 8573.353964 12746.609775 -21677.446298 40.138580
+V 10 -16903.927238 21566.854436 6280.542749 .006918
+P 11 -18866.206123 -4614.576865 18165.561248 99.709892
+V 11 -9523.608606 -21302.379536 -15160.823442 .025451
+P 13 -19873.604505 8159.753079 -15605.983191 -30.920866
+V 13 -19413.354484 -3847.120421 22844.801441 .002518
+P 14 1332.137740 -14837.497531 22037.562893 -18.150862
+V 14 27656.192971 2972.295018 342.277708 -.001194
+P 15 -2212.006916 -24860.319677 -8953.399074 232.609557
+V 15 6049.491017 9651.514702 -29268.760650 .054399
+P 16 -4713.115931 -16977.436866 -19802.922922 15.310150
+V 16 15873.308096 -19734.520015 13101.037094 -.004140
+P 17 15548.843340 15848.595138 -14939.514389 205.803268
+V 17 4188.367908 18547.614204 23038.084296 .195281
+P 18 18019.883273 -19133.440918 -2889.667451 -15.241851
+V 18 -107.712243 4701.856362 -31690.382846 -.026426
+P 20 -19550.069584 8090.681377 15987.208691 -184.312450
+V 20 10469.939224 -17626.982006 21633.617729 .027586
+P 21 9520.013534 -14652.561268 -19939.832830 73.053533
+V 21 10319.157154 23188.916880 -12531.083573 .005195
+P 22 10314.995183 -22728.727893 9306.331490 -40.778872
+V 22 9255.335684 -7367.847566 -28718.878526 .089296
+P 24 11971.917691 23218.574561 -4265.617541 7.955228
+V 24 -310.347724 6319.902660 31421.657473 .027213
+P 25 -8114.195132 -24595.089072 6311.234878 61.663465
+V 25 6348.491815 5159.752898 29994.474488 .007701
+P 26 24200.344816 8503.205979 -8281.433098 410.953862
+V 26 -10084.325690 297.727969 -29490.316524 -.124077
+P 27 -10398.168741 12203.683262 -20616.154163 919.601111
+V 27 -13333.390629 -23984.786029 -7806.124208 .044175
+P 28 -10307.065138 23049.487067 7903.825231 21.740975
+V 28 -8219.794402 6185.315911 -29738.165755 .016789
+P 29 20626.575913 10491.309502 -12820.636293 229.717515
+V 29 -16763.482423 436.803859 -26020.722513 .033349
+P 30 18737.235567 -16741.383082 8218.510769 804.161516
+V 30 -3437.492258 10746.982834 29018.392002 .143082
+P 31 -25973.521877 -4840.470150 -4447.404379 37.662516
+V 31 5389.300625 -2853.906114 -30336.566175 .309346
+* 2004 2 29 5 0 .00000000
+P 1 -26500.497030 -680.456443 -1699.997116 332.472247
+V 1 -2201.550864 -2417.074564 32012.520583 .014862
+P 3 -16603.527571 -12219.789402 -16960.905362 89.687490
+V 3 21303.586494 -2779.586277 -18733.210443 .029397
+P 4 3346.609440 23893.694975 10748.870007 -76.125036
+V 4 -8456.561940 -11151.664297 27781.467514 -.091158
+P 5 17500.277228 -1838.025442 19724.529073 19.679338
+V 5 -10814.623255 23086.930516 11841.205726 .017109
+P 6 23881.078526 -6517.791382 -9616.850871 -1.289544
+V 6 12398.135713 3455.888216 27773.954671 -.009864
+P 7 -4927.791094 15637.833486 21275.072917 612.283440
+V 7 -26209.764243 -587.150151 -5916.275182 -.077663
+P 8 -3298.474535 20265.200649 -16868.626166 356.004272
+V 8 -10791.758259 -18300.196660 -20415.921581 -.088622
+P 9 18627.672059 9981.207016 15891.278612 -32.238355
+V 9 8484.645258 19141.636116 -21020.652044 -.018197
+P 10 7127.732662 14697.670251 -20927.352291 40.139783
+V 10 -15183.948552 21704.622937 10365.885781 .006758
+P 11 -19722.189410 -6441.861158 16649.323564 99.711899
+V 11 -9433.768558 -19262.557258 -18484.645099 .025437
+P 13 -21508.711315 7871.225884 -13421.436211 -30.920476
+V 13 -16855.586956 -2613.882862 25631.252967 .002520
+P 14 3821.863863 -14638.692788 21879.548900 -18.150798
+V 14 27578.327305 1442.534261 -3848.633683 -.001187
+P 15 -1592.099729 -23871.191556 -11502.654446 232.614151
+V 15 7768.315557 12265.019575 -27300.818018 .054367
+P 16 -3372.408675 -18729.081684 -18455.838401 15.309936
+V 16 13901.559079 -19105.673018 16790.723602 -.004138
+P 17 15931.765194 17390.346767 -12746.431956 205.820378
+V 17 4251.979151 15679.224572 25626.501831 .195298
+P 18 17925.139754 -18581.027974 -5708.300362 -15.244040
+V 18 -1931.931353 7600.448836 -30854.688990 -.026412
+P 20 -18591.733524 6392.578422 17790.393353 -184.309854
+V 20 10750.038760 -20073.951152 18379.049416 .027598
+P 21 10523.000515 -12539.109093 -20892.090835 73.053836
+V 21 11957.292441 23688.551242 -8601.828241 .005203
+P 22 11041.025726 -23295.201942 6649.563546 -40.770971
+V 22 6909.333083 -5154.407088 -30236.699157 .089294
+P 24 11896.566687 23638.235338 -1408.810520 7.957344
+V 24 -1433.111081 3022.968666 31970.624879 .026962
+P 25 -7457.018202 -24016.662851 8949.438669 61.663514
+V 25 8293.155506 7634.871805 28550.102796 .007570
+P 26 23149.722078 8544.023517 -10860.107570 410.942311
+V 26 -13230.350340 677.447513 -27735.015820 -.124079
+P 27 -11665.257853 10047.555559 -21130.223952 919.605066
+V 27 -14789.805036 -23841.020855 -3602.643177 .044179
+P 28 -10945.747380 23497.664434 5166.292372 21.743019
+V 28 -6010.706514 3712.707515 -31007.958396 .016770
+P 29 18989.811575 10566.211720 -15043.950723 229.720859
+V 29 -19552.355697 1285.970470 -23313.084228 .033347
+P 30 18374.319384 -15643.377537 10750.785811 804.173586
+V 30 -4556.114043 13651.903826 27171.667937 .143074
+P 31 -25344.895881 -5104.753250 -7132.823084 37.690340
+V 31 8558.191124 -3082.796268 -29256.560919 .309377
+* 2004 2 29 5 15 .00000000
+P 1 -26541.083008 -887.034374 1187.486981 332.473166
+V 1 1302.577664 -2245.370060 32061.714219 .014684
+P 3 -14603.834187 -12521.489663 -18498.363677 89.689942
+V 3 23061.774758 -3955.938467 -15383.697029 .029589
+P 4 2494.813271 22788.498259 13147.911181 -76.133224
+V 4 -10499.052471 -13335.250798 25453.390103 -.091169
+P 5 16553.358554 310.039562 20615.017097 19.681720
+V 5 -10171.723738 24581.356723 7919.159938 .016856
+P 6 24859.640610 -6232.562317 -7041.643568 -1.289497
+V 6 9314.941267 2942.710476 29370.078673 -.009860
+P 7 -7252.341909 15641.754967 20566.960151 612.276058
+V 7 -25365.984976 654.527564 -9799.302625 -.077664
+P 8 -4357.088118 18558.852046 -18556.034236 355.997207
+V 8 -12735.164474 -19533.269157 -17030.317332 -.088578
+P 9 19375.315347 11585.341428 13866.588897 -32.240214
+V 9 8056.784415 16478.252619 -23904.314903 -.018278
+P 10 5845.557244 16637.658748 -19816.662946 40.139722
+V 10 -13287.011709 21316.909935 14282.099471 .006588
+P 11 -20552.276407 -8075.582160 14847.911720 99.714086
+V 11 -8944.185762 -17014.408675 -21489.101587 .025428
+P 13 -22896.727316 7679.417350 -11005.555521 -30.919910
+V 13 -13935.484650 -1708.049731 27978.020611 .002522
+P 14 6279.612267 -14576.999098 21346.789755 -18.150758
+V 14 26946.943869 -59.195795 -7973.548095 -.001175
+P 15 -807.261874 -22665.071733 -13853.646677 232.621760
+V 15 9701.734788 14463.877927 -24869.796553 .054422
+P 16 -2212.787361 -20401.109867 -16789.354611 15.309663
+V 16 11864.749534 -17965.856542 20188.524000 -.004131
+P 17 16301.423949 18666.077053 -10339.982914 205.837842
+V 17 3890.320904 12651.648100 27773.873726 .195313
+P 18 17684.581488 -17761.991413 -8427.360068 -15.246243
+V 18 -3341.892609 10611.116793 -29480.934274 -.026402
+P 20 -17628.382635 4484.969849 19285.851368 -184.307371
+V 20 10586.720971 -22267.837054 14805.126464 .027609
+P 21 11668.810936 -10404.317043 -21484.102530 73.054535
+V 21 13478.371615 23665.626545 -4537.303143 .005211
+P 22 11565.370536 -23645.473225 3879.168246 -40.762702
+V 22 4786.152573 -2573.207122 -31240.042105 .089289
+P 24 11702.042935 23767.232603 1472.436697 7.959458
+V 24 -2952.447258 -123.439199 31964.644939 .026754
+P 25 -6615.731217 -23232.305726 11435.919812 61.664915
+V 25 10427.376560 9727.386105 26628.188947 .007532
+P 26 21826.027446 8636.865240 -13260.051813 410.931056
+V 26 -16138.435314 1447.247070 -25523.791672 -.124078
+P 27 -13052.900637 7927.629560 -21263.135877 919.608902
+V 27 -15998.755504 -23186.883256 650.641363 .044183
+P 28 -11396.861750 23707.716240 2338.563247 21.743950
+V 28 -4063.518246 905.313894 -31739.061897 .016751
+P 29 17118.581705 10732.374988 -17004.539036 229.724241
+V 29 -21960.662978 2454.331403 -20190.635168 .033344
+P 30 17930.095041 -14285.710217 13095.023897 804.186591
+V 30 -5243.351691 16501.151005 24845.681181 .143075
+P 31 -24438.278639 -5406.472014 -9699.016235 37.717734
+V 31 11552.918159 -3681.105904 -27691.159915 .309411
+* 2004 2 29 5 30 .00000000
+P 1 -26267.027391 -1097.537702 4054.602415 332.473153
+V 1 4773.615024 -2503.513456 31560.915643 .014530
+P 3 -12466.048664 -12936.328386 -19722.035320 89.692587
+V 3 24365.787610 -5281.053818 -11769.816034 .029804
+P 4 1453.249094 21507.169473 15317.270952 -76.142270
+V 4 -12659.011853 -15058.785557 22685.256219 -.091174
+P 5 15678.538245 2573.764117 21145.949460 19.683737
+V 5 -9223.502092 25647.782227 3862.907312 .016397
+P 6 25553.218979 -5976.854272 -4345.476359 -1.289870
+V 6 6080.263534 2803.936343 30458.514510 -.009890
+P 7 -9479.519921 15750.901757 19515.788818 612.269373
+V 7 -24051.108076 1738.189159 -13529.376082 -.077665
+P 8 -5589.827987 16764.723212 -19925.695001 355.988677
+V 8 -14646.020993 -20249.940958 -13365.236936 -.088537
+P 9 20064.649125 12943.788619 11601.418309 -32.243101
+V 9 7188.054415 13698.106014 -26357.720687 -.018272
+P 10 4738.579197 18518.517318 -18363.711909 40.141061
+V 10 -11306.505509 20389.957568 17960.510749 .006425
+P 11 -21319.662018 -9500.687938 12792.390899 99.716401
+V 11 -8039.125052 -14640.768957 -24123.584606 .025419
+P 13 -24008.743279 7552.326118 -8399.829904 -30.919636
+V 13 -10737.196144 -1183.346042 29843.812390 .002517
+P 14 8656.220313 -14645.768009 20448.401059 -18.150594
+V 14 25779.719506 -1441.759008 -11962.174151 -.001168
+P 15 158.205647 -21281.638930 -15966.665179 232.626321
+V 15 11768.021966 16198.480623 -22020.564000 .054149
+P 16 -1235.913072 -21947.978679 -14832.432243 15.309202
+V 16 9855.846254 -16328.089563 23235.599523 -.004127
+P 17 16618.911636 19665.709106 -7761.284498 205.855257
+V 17 3092.211406 9559.579317 29449.837768 .195330
+P 18 17336.877990 -16670.561833 -10999.453954 -15.248912
+V 18 -4309.859641 13637.199177 -27593.663293 -.026391
+P 20 -16698.227089 2394.507587 20447.588875 -184.305053
+V 20 10020.483928 -24124.078705 10973.778832 .027621
+P 21 12943.027027 -8294.270191 -21706.866539 73.055232
+V 21 14797.003286 23144.138483 -408.151035 .005219
+P 22 11911.349801 -23749.323206 1042.369400 -40.754713
+V 22 2956.410439 309.431244 -31709.894453 .089280
+P 24 11354.575498 23623.261274 4328.291019 7.960747
+V 24 -4822.951840 -3028.720108 31407.828673 .026536
+P 25 -5576.754136 -22278.540663 13729.244003 61.666036
+V 25 12672.600372 11393.547556 24264.204307 .007451
+P 26 20254.369778 8814.831637 -15441.747588 410.920375
+V 26 -18727.992286 2560.015187 -22891.353522 -.124079
+P 27 -14535.306826 5887.789054 -21014.017940 919.612357
+V 27 -16883.884656 -22070.877112 4873.675568 .044186
+P 28 -11686.996918 23652.869604 -530.091479 21.745372
+V 28 -2443.033464 -2160.064976 -31915.601374 .016736
+P 29 15050.482950 11015.485764 -18667.419045 229.727280
+V 29 -23916.471611 3872.100004 -16706.892864 .033338
+P 30 17443.380449 -12677.723607 15209.814729 804.200150
+V 30 -5502.387652 19198.738031 22080.189700 .143076
+P 31 -23273.008649 -5777.375300 -12103.496954 37.746181
+V 31 14293.342972 -4613.033896 -25668.151511 .309450
+* 2004 2 29 5 45 .00000000
+P 1 -25685.822273 -1350.158608 6852.267533 332.473084
+V 1 8111.828955 -3177.432646 30520.939356 .014557
+P 3 -10232.568862 -13474.166708 -20610.794727 89.694451
+V 3 25184.466302 -6675.613045 -7951.526333 .029965
+P 4 215.374677 20092.705738 17219.566612 -76.149975
+V 4 -14846.081764 -16289.993245 19527.648631 -.091175
+P 5 14900.147979 4912.330648 21308.467179 19.684618
+V 5 -8041.571655 26237.769101 -255.759881 .015866
+P 6 25952.309880 -5716.125835 -1574.835345 -1.290955
+V 6 2786.348089 3055.505919 31023.107417 -.009957
+P 7 -11568.555220 15947.645119 18138.110933 612.262037
+V 7 -22303.836885 2589.359144 -17044.921979 -.077659
+P 8 -6989.672535 14929.258604 -20955.307416 355.980341
+V 8 -16433.671984 -20454.031236 -9484.602197 -.088496
+P 9 20656.041007 14050.410619 9136.235173 -32.244531
+V 9 5882.443882 10898.203656 -28343.558698 -.018251
+P 10 3810.034743 20291.831679 -16592.864163 40.141379
+V 10 -9337.640837 18929.677813 21335.972776 .006221
+P 11 -21986.853842 -10709.714602 10518.099854 99.718763
+V 11 -6719.114711 -12226.890551 -26343.858450 .025411
+P 13 -24823.889265 7453.850029 -5649.098790 -30.919612
+V 13 -7354.668323 -1076.859198 31195.579824 .002511
+P 14 10904.952406 -14830.350081 19199.730793 -18.151005
+V 14 24112.745756 -2619.084144 -15746.496805 -.001164
+P 15 1312.317911 -19764.247442 -17806.337721 232.631072
+V 15 13878.718754 17436.961612 -18804.491936 .053868
+P 16 -435.200187 -23326.155844 -12619.053194 15.308820
+V 16 7964.534655 -14223.902520 25879.370267 -.004123
+P 17 16845.097833 20387.706363 -5053.844501 205.873119
+V 17 1863.876490 6497.554889 30631.641752 .195349
+P 18 16922.354856 -15309.806127 -13379.820024 -15.251452
+V 18 -4826.865223 16579.635241 -25226.691618 -.026379
+P 20 -15835.110788 154.990710 21255.401557 -184.302315
+V 20 9107.517937 -25568.933493 6951.542352 .027633
+P 21 14323.835758 -6252.107906 -21557.756930 73.055546
+V 21 15834.776937 22165.294058 3714.798079 .005224
+P 22 12108.069418 -23583.092853 -1812.295564 -40.746740
+V 22 1477.645006 3414.492529 -31636.141206 .089274
+P 24 10825.183845 23231.699678 7109.720251 7.962127
+V 24 -6983.944519 -5613.243330 30313.790074 .026456
+P 25 -4333.859745 -21195.092210 15791.468058 61.666390
+V 25 14944.502934 12606.120698 21500.127799 .007165
+P 26 18466.664666 9106.131283 -17369.076858 410.909436
+V 26 -20928.775104 3954.480312 -19878.484558 -.124082
+P 27 -16080.354745 3966.794393 -20389.128142 919.615972
+V 27 -17381.343974 -20557.890645 8988.368979 .044196
+P 28 -11847.927042 23313.807906 -3389.424832 21.746734
+V 28 -1199.282479 -5395.052049 -31531.824139 .016723
+P 29 12828.892397 11434.398100 -20002.755779 229.729882
+V 29 -25363.695975 5457.745223 -12922.555932 .033336
+P 30 16951.893494 -10837.267314 17057.709935 804.212603
+V 30 -5354.395754 21652.232917 18923.350345 .143075
+P 31 -21875.252478 -6245.341321 -14306.581685 37.774110
+V 31 16708.293183 -5828.653762 -23221.952747 .309468
+* 2004 2 29 6 0 .00000000
+P 1 -24813.725870 -1681.001560 9532.782320 332.473485
+V 1 11222.742805 -4234.978806 28961.606097 .014952
+P 3 -7947.862778 -14137.523248 -21149.082857 89.697490
+V 3 25503.108634 -8056.297866 -3992.416673 .030235
+P 4 -1217.058760 18590.156765 18822.274201 -76.158490
+V 4 -16966.943838 -17015.640413 16037.766836 -.091181
+P 5 14235.669842 7281.294663 21100.218085 19.684751
+V 5 -6705.995729 26319.419763 -4364.266710 .015438
+P 6 26055.787814 -5415.172528 1222.743500 -1.291707
+V 6 -473.441366 3696.182492 31056.685986 -.010111
+P 7 -13482.817284 16208.031517 16455.914754 612.255319
+V 7 -20177.208705 3142.427115 -20286.857346 -.077649
+P 8 -8541.568988 13097.727833 -21628.454277 355.971954
+V 8 -18010.876057 -20167.690461 -5455.053568 -.088452
+P 9 21111.010841 14907.712685 6514.465284 -32.245607
+V 9 4161.450939 8173.004687 -29833.447547 -.018090
+P 10 3054.651567 21910.609562 -14534.142420 40.142383
+V 10 -7473.650590 16961.702515 24348.109422 .005944
+P 11 -22517.144513 -11702.858769 8064.045503 99.721017
+V 11 -5001.034414 -9857.217416 -28112.749521 .025403
+P 13 -25330.061171 7345.358833 -2800.780554 -30.919550
+V 13 -3888.140564 -1407.479818 32009.155241 .002508
+P 14 12983.102344 -15108.707162 17622.103480 -18.151408
+V 14 21999.195761 -3513.598026 -19261.903019 -.001156
+P 15 2654.956221 -18158.285811 -19342.169477 232.636405
+V 15 15942.124002 18166.066647 -15278.419274 .053637
+P 16 203.727034 -24495.740429 -10187.615005 15.308057
+V 16 6273.671839 -11702.216429 28074.432319 -.004117
+P 17 16942.184075 20838.910727 -2262.875160 205.890337
+V 17 228.579255 3556.696478 31304.157308 .195371
+P 18 16481.289678 -13691.669843 -15527.132044 -15.253756
+V 18 -4902.911885 19340.825303 -22422.425705 -.026367
+P 20 -15067.199801 -2193.742373 21695.236403 -184.299682
+V 20 7917.370234 -26542.379556 2808.372888 .027645
+P 21 15782.796824 -4316.553356 -21040.486027 73.055883
+V 21 16523.304626 20785.669341 7761.716453 .005231
+P 22 12189.139161 -23130.701791 -4635.791498 -40.738885
+V 22 392.075892 6653.084771 -31017.876936 .089270
+P 24 10090.945131 22624.492259 9769.326449 7.965577
+V 24 -9361.943909 -7811.145306 28705.134535 .026469
+P 25 -2888.551402 -20023.365778 17588.689966 61.665895
+V 25 17156.151504 13355.047411 18383.649323 .006931
+P 26 16500.593782 9532.901330 -19009.849694 410.898094
+V 26 -22683.260509 5557.393607 -16531.619329 -.124086
+P 27 -17650.839973 2196.941889 -19401.599349 919.620127
+V 27 -17442.409725 -18726.122249 12920.306628 .044209
+P 28 -11915.183763 22679.565588 -6189.139624 21.748064
+V 28 -365.442781 -8703.040195 -30592.397671 .016712
+P 29 10501.433378 12000.222726 -20986.460036 229.732791
+V 29 -26264.384607 7121.315836 -8904.412601 .033333
+P 30 16490.668041 -8790.210677 18605.941402 804.225566
+V 30 -4837.634182 23776.449345 15430.851235 .143080
+P 31 -20277.088780 -6833.190533 -16271.961797 37.803244
+V 31 18737.923039 -7265.856816 -20393.048982 .309484
+* 2004 2 29 6 15 .00000000
+P 1 -23675.133370 -2122.513111 12050.618699 332.472731
+V 1 14020.554788 -5627.296220 26911.271422 .015580
+P 3 -5656.958119 -14921.359260 -21327.191618 89.701247
+V 3 25324.019617 -9339.034116 41.244205 .030478
+P 4 -2833.908714 17044.894647 20098.271336 -76.165953
+V 4 -18929.066929 -17241.770749 12278.242061 -.091188
+P 5 13695.124840 9634.134010 20525.365783 19.685872
+V 5 -5301.934909 25878.608475 -8390.617874 .015105
+P 6 25870.851822 -5039.671244 3999.481797 -1.293464
+V 6 -3608.041242 4707.695349 30561.015010 -.010203
+P 7 -15191.031045 16502.701761 14496.359975 612.247918
+V 7 -17736.867040 3343.291819 -23199.498066 -.077636
+P 8 -10222.892139 11312.622883 -21934.796083 355.963951
+V 8 -19297.130844 -19430.248713 -1344.825952 -.088408
+P 9 21393.764876 15526.454617 3781.683224 -32.247545
+V 9 2063.051408 5610.928208 -30808.015810 -.018089
+P 10 2458.996989 23331.028541 -12222.743446 40.141823
+V 10 -5802.027738 14530.654626 26942.511630 .005712
+P 11 -22876.064009 -12487.761108 5472.240652 99.723826
+V 11 -2917.583922 -7612.210523 -29400.719346 .025404
+P 13 -25524.319076 7187.375394 95.949664 -30.919415
+V 13 -440.380669 -2175.058643 32269.733617 .002506
+P 14 14853.446424 -15452.320100 15742.465153 -18.151567
+V 14 19507.350930 -4059.336842 -22448.257770 -.001147
+P 15 4177.736200 -16509.489464 -20548.987095 232.640595
+V 15 17866.847696 18391.308280 -11503.582240 .053427
+P 16 702.270585 -25421.951911 -7580.248921 15.307368
+V 16 4856.027479 -8827.544361 29783.335829 -.004109
+P 17 16875.199216 21034.095434 565.390937 205.908530
+V 17 -1774.314516 821.643512 31459.824101 .195392
+P 18 16052.224845 -11836.673784 -17404.235614 -15.256367
+V 18 -4566.398010 21828.426604 -19231.011546 -.026355
+P 20 -14415.905585 -4607.159986 21759.443540 -184.297085
+V 20 6530.080262 -27000.490344 -1383.606700 .027653
+P 21 17285.865911 -2520.633689 -20164.963500 73.056319
+V 21 16806.836385 19074.830525 11664.891397 .005237
+P 22 12191.214332 -22384.394407 -7379.422914 -40.730933
+V 22 -275.064236 9929.673136 -29863.569180 .089266
+P 24 9136.017655 21838.806478 12262.127025 7.966065
+V 24 -11873.590563 -9572.537850 26612.814354 .026485
+P 25 -1250.153602 -18804.894980 19091.526186 61.668035
+V 25 19221.207293 13647.493890 14967.351892 .006846
+P 26 14398.367349 10110.243446 -20336.292407 410.887073
+V 26 -23948.631307 7286.122908 -12902.380959 -.124090
+P 27 -19205.927230 603.023230 -18071.039108 919.624146
+V 27 -17035.369976 -16663.518613 16600.252805 .044223
+P 28 -11926.471416 21748.103013 -8879.830925 21.749847
+V 28 43.550815 -11982.930185 -29112.472481 .016702
+P 29 8118.267220 12715.734234 -21600.680840 229.736343
+V 29 -26600.284925 8768.160478 -4724.078809 .033327
+P 30 16090.584455 -6569.633916 19827.052963 804.238285
+V 30 -4005.815825 25496.872331 11664.857491 .143083
+P 31 -18515.397600 -7557.691915 -17967.223413 37.830290
+V 31 20335.670203 -8852.693849 -17227.404444 .309501
+* 2004 2 29 6 30 .00000000
+P 1 -22301.655498 -2702.063529 14363.162915 332.475290
+V 1 16431.194912 -7290.813807 24406.235012 .016603
+P 3 -3403.909966 -15813.159199 -21141.460002 89.702819
+V 3 24666.445113 -10442.293909 4081.518625 .030573
+P 4 -4616.878846 15500.897370 21026.270008 -76.175000
+V 4 -20644.385026 -16993.168526 8315.882751 -.091198
+P 5 13280.772123 11923.877202 19594.477539 19.686668
+V 5 -3916.119662 24919.502243 -12264.720781 .014787
+P 6 25412.669133 -4557.682512 6708.155625 -1.295366
+V 6 -6531.974619 6055.529039 29546.609002 -.010224
+P 7 -16668.315615 16798.032848 12291.429984 612.240848
+V 7 -15058.856888 3151.649976 -25731.492229 -.077620
+P 8 -12004.189678 9612.186676 -21870.165283 355.955920
+V 8 -20221.699281 -18296.460783 2777.338610 -.088363
+P 9 21472.609830 15924.962781 984.804481 -32.248895
+V 9 -359.924072 3291.212238 -31256.808507 -.018004
+P 10 2002.157199 24514.083570 -9698.450047 40.143858
+V 10 -4400.956259 11698.652907 29071.854277 .005561
+P 11 -23032.757032 -13079.010914 2786.995620 99.725949
+V 11 -516.155001 -5565.341715 -30186.315207 .025400
+P 13 -25412.940684 6941.298985 2991.017983 -30.919081
+V 13 2887.190004 -3360.318262 31972.185517 .002506
+P 14 16485.492760 -15827.357505 13592.934311 -18.151475
+V 14 16718.059421 -4204.617622 -25250.914439 -.001138
+P 15 5864.193670 -14862.270960 -21407.285835 232.644250
+V 15 19565.297485 18136.424663 -7544.533815 .053167
+P 16 1087.819341 -26076.429546 -4842.074684 15.306940
+V 16 3771.440553 -5677.589251 30977.210447 -.004102
+P 17 16613.387036 20995.253589 3384.377424 205.926115
+V 17 -4090.787530 -1632.240837 31098.541277 .195409
+P 18 15670.365858 -9773.277830 -18978.800796 -15.258806
+V 18 -3862.799305 23958.927248 -15709.336100 -.026341
+P 20 -13895.085630 -7037.569543 21446.913178 -184.294406
+V 20 5032.900045 -26917.185748 -5551.402119 .027664
+P 21 18794.630925 -890.634646 -18947.059203 73.057002
+V 21 16644.364912 17112.521551 15359.750091 .005245
+P 22 12152.415926 -21345.180457 -9995.678905 -40.723264
+V 22 -516.549939 13145.613549 -28191.060901 .089267
+P 24 7952.385774 20915.519922 14546.272934 7.968490
+V 24 -14428.892350 -10865.064728 24075.379336 .026553
+P 25 564.383561 -17579.811934 20275.514841 61.668121
+V 25 21057.063538 13507.297618 11307.884711 .006405
+P 26 12205.328397 10845.509163 -21325.491840 410.875950
+V 26 -24698.299091 9051.588950 -9047.067731 -.124091
+P 27 -20702.737065 -798.379720 -16423.004932 919.628607
+V 27 -16146.628122 -14463.915998 19965.409843 .044238
+P 28 -11919.991074 20526.533190 -11413.923094 21.751417
+V 28 31.632736 -15133.101259 -27117.497220 .016694
+P 29 5730.279818 13575.125031 -21834.177729 229.739794
+V 29 -26373.605085 10302.885931 -456.595019 .033321
+P 30 15777.077007 -4214.728701 20699.429718 804.251454
+V 30 -2925.820781 26752.665926 7692.795436 .143083
+P 31 -16630.593772 -8428.795028 -19364.313005 37.856986
+V 31 21469.755709 -10510.037681 -13775.846924 .309517
+* 2004 2 29 6 45 .00000000
+P 1 -20730.942274 -3440.732534 16431.400030 332.478281
+V 1 18394.914337 -9149.773727 21490.047680 .017382
+P 3 -1230.302473 -16793.306687 -20594.376769 89.706177
+V 3 23565.882338 -11290.337832 8059.863932 .030707
+P 4 -6540.078728 13999.113987 21591.134616 -76.183030
+V 4 -22032.758018 -16312.089920 4220.384201 -.091204
+P 5 12987.128023 14104.746082 18324.295920 19.686377
+V 5 -2633.294925 23464.359213 -15919.641547 .014499
+P 6 24703.733399 -3941.054140 9302.869829 -1.295636
+V 6 -9168.388918 7690.316839 28032.419641 -.010194
+P 7 -17897.005200 17057.466292 9877.499396 612.234673
+V 7 -12226.999851 2542.836575 -27836.766887 -.077605
+P 8 -13850.182705 8029.123783 -21436.564759 355.947864
+V 8 -20726.239475 -16834.227607 6843.230218 -.088315
+P 9 21321.197663 16128.178922 -1828.707309 -32.249887
+V 9 -3041.913458 1281.219549 -31178.049541 -.017999
+P 10 1656.723320 25427.067026 -7004.947359 40.143245
+V 10 -3336.086682 8543.095839 30696.901372 .005376
+P 11 -22961.233583 -13497.391862 54.174985 99.728155
+V 11 2142.849652 -3780.366107 -30456.493972 .025397
+P 13 -25011.126802 6571.102135 5834.329994 -30.918613
+V 13 5998.328511 -4925.527998 31121.191317 .002504
+P 14 17856.479711 -16196.061248 11210.265491 -18.151504
+V 14 13721.719666 -3914.167391 -27621.643826 -.001130
+P 15 7690.276614 -13258.128811 -21903.479693 232.649040
+V 15 20956.974435 17442.183255 -3468.071270 .053024
+P 16 1392.476705 -26438.291978 -2020.406309 15.306459
+V 16 3064.502108 -2340.335822 31636.228191 -.004089
+P 17 16131.442115 20750.650279 6147.829113 205.943073
+V 17 -6654.081675 -3741.318324 30227.519381 .195429
+P 18 15366.129610 -7536.938594 -20223.879264 -15.261042
+V 18 -2852.667466 25660.853015 -11919.908991 -.026333
+P 20 -13510.553061 -9435.776707 20763.095015 -184.292057
+V 20 3516.731261 -26285.289288 -9622.460087 .027673
+P 21 20267.712224 554.676445 -17408.278012 73.057932
+V 21 16011.157120 14985.531814 18785.789578 .005250
+P 22 12110.690195 -20022.949130 -12439.070658 -40.715477
+V 22 -343.483048 16202.852373 -26027.401706 .089271
+P 24 6540.303132 19897.598060 16583.695694 7.969887
+V 24 -16934.661383 -11674.771826 21138.149072 .026654
+P 25 2530.955695 -16385.393126 21121.444405 61.668327
+V 25 22587.819577 12973.848235 7465.135196 .006067
+P 26 9968.442777 11737.861956 -21959.790728 410.864534
+V 26 -24922.912136 10761.464929 -5026.077092 -.124090
+P 27 -22097.996073 -1999.246702 -14488.378110 919.632797
+V 27 -14781.012682 -12223.076427 22960.412618 .044250
+P 28 -11932.744140 19030.987158 -13746.578880 21.752495
+V 28 -378.568851 -18055.440425 -24642.783013 .016685
+P 29 3387.237580 14564.119825 -21682.561715 229.742814
+V 29 -25606.928857 11633.380976 3821.082224 .033316
+P 30 15569.073230 -1769.451955 21207.711833 804.264365
+V 30 -1674.847719 27499.128476 3586.006902 .143086
+P 31 -14665.247456 -9449.113038 -20439.946463 37.885393
+V 31 22124.186345 -12154.482883 -10093.426644 .309563
+* 2004 2 29 7 0 .00000000
+P 1 -19005.298060 -4352.343034 18220.532054 332.478949
+V 1 19868.321671 -11119.196009 18212.732473 .017913
+P 3 826.159821 -17835.745065 -19694.585385 89.708174
+V 3 22072.782554 -11816.276990 11908.238802 .030881
+P 4 -8570.880218 12575.974432 21784.083424 -76.191529
+V 4 -23025.081874 -15256.330826 63.033480 -.091206
+P 5 12801.300903 16133.748411 16737.401330 19.688563
+V 5 -1532.781289 21552.622965 -19292.769678 .014404
+P 6 23772.964696 -3166.674520 11739.799029 -1.296836
+V 6 -11451.740193 9549.776272 26045.410912 -.010201
+P 7 -18867.217602 17242.978659 7294.816424 612.227444
+V 7 -9329.923971 1509.131394 -29475.470766 -.077594
+P 8 -15720.982015 6589.536348 -20642.075212 355.939626
+V 8 -20766.957524 -15121.886626 10786.155371 -.088268
+P 9 20919.560465 16166.489383 -4611.606389 -32.252209
+V 9 -5907.146397 -365.738174 -30578.290240 -.018011
+P 10 1390.046638 26044.819725 -4189.054901 40.142736
+V 10 -2657.797663 5153.803538 31787.368157 .005250
+P 11 -22641.445650 -13768.898593 -2679.568994 99.730597
+V 11 4988.187003 -2308.972491 -30206.816187 .025394
+P 13 -24342.369646 6044.933135 8576.652778 -30.918711
+V 13 8805.605972 -6815.918931 29731.190951 .002494
+P 14 18952.085583 -16518.295979 8635.233470 -18.152180
+V 14 10614.900403 -3170.626956 -29519.466347 -.001121
+P 15 9625.120969 -11734.191220 -22030.055921 232.653192
+V 15 21971.467203 16364.590555 657.814015 .052862
+P 16 1651.606781 -26494.916677 836.076255 15.306462
+V 16 2762.852118 1089.246130 31749.897727 -.004073
+P 17 15410.555449 20333.672179 8810.462181 205.960889
+V 17 -9387.003755 -5455.717762 28861.101958 .195442
+P 18 15163.900232 -5168.899832 -21118.356525 -15.263367
+V 18 -1609.036175 26877.480011 -7929.653922 -.026325
+P 20 -13259.914307 -11752.806764 19719.899732 -184.289426
+V 20 2072.422160 -25116.848946 -13525.971634 .027675
+P 21 21662.273322 1804.535821 -15575.355355 73.058433
+V 21 14899.672462 12784.362991 21887.408760 .005247
+P 22 12102.171974 -18436.247996 -14666.945802 -40.707396
+V 22 215.112790 19007.649327 -23408.501344 .089275
+P 24 4908.422841 18828.424972 18340.677301 7.973705
+V 24 -19298.012129 -12006.282771 17852.330863 .026871
+P 25 4619.032259 -15254.729714 21615.607990 61.668847
+V 25 23747.000338 12100.450343 3501.404133 .005863
+P 26 7734.723338 12778.135844 -22227.127930 410.853523
+V 26 -24630.804010 12323.550341 -903.254372 -.124090
+P 27 -23349.680251 -3000.116222 -12302.660076 919.636761
+V 27 -12961.323214 -10034.799842 25538.055671 .044257
+P 28 -11998.887987 17286.120847 -15836.558252 21.753531
+V 28 -1146.709782 -20659.250456 -21732.824198 .016673
+P 29 1135.989451 15660.448492 -21148.397301 229.745853
+V 29 -24342.279224 12674.726824 8031.652518 .033305
+P 30 15478.210354 719.012238 21343.082729 804.277381
+V 30 -337.128047 27709.486026 -581.689603 .143088
+P 31 -12662.637951 -10613.674083 -21175.959218 37.913945
+V 31 22299.231306 -13701.394387 -6238.746660 .309593
+* 2004 2 29 7 15 .00000000
+P 1 -17170.140706 -5442.777095 19700.522695 332.482378
+V 1 20825.802310 -13108.165845 14629.935159 .018447
+P 3 2732.917894 -18908.901000 -18456.787967 89.711474
+V 3 20250.683278 -11964.837490 15560.238754 .031131
+P 4 -10671.033618 11262.099694 21602.774314 -76.199586
+V 4 -23565.934112 -13896.724037 -4084.562763 -.091206
+P 5 12703.625096 17972.158913 14861.774610 19.689365
+V 5 -685.288953 19239.359527 -22326.871278 .014203
+P 6 22654.587256 -2217.530251 13977.885866 -1.297446
+V 6 -13330.035092 11561.107836 23620.035478 -.010344
+P 7 -19577.143283 17316.642870 4586.901418 612.220192
+V 7 -6457.841128 60.458756 -30614.889806 -.077581
+P 8 -17573.474258 5312.119475 -19500.676585 355.931509
+V 8 -20316.221054 -13245.173085 14541.862559 -.088217
+P 9 20254.904249 16074.383688 -7317.595226 -32.252672
+V 9 -8872.461049 -1612.010271 -29471.972286 -.017988
+P 10 1165.713863 26350.699874 -1299.888102 40.143797
+V 10 -2399.067342 1629.626898 32322.610980 .005230
+P 11 -22060.149501 -13923.562117 -5367.574522 99.732577
+V 11 7940.353086 -1188.897324 -29441.508841 .025390
+P 13 -23437.508304 5336.559793 11170.484035 -30.918495
+V 13 11233.700377 -8961.785358 27826.147942 .002494
+P 14 19766.822444 -16753.203490 5911.947478 -18.151950
+V 14 7496.723076 -1975.368906 -30911.372590 -.001112
+P 15 11632.078655 -10321.944819 -21785.636423 232.658116
+V 15 22551.048716 14972.585429 4764.954376 .052775
+P 16 1902.257339 -26242.410096 3678.174256 15.306109
+V 16 2876.153041 4512.755483 31317.187809 -.004055
+P 17 14439.237399 19781.513601 11328.597162 205.978435
+V 17 -12204.555834 -6740.919952 27020.561761 .195453
+P 18 15081.040881 -2714.764938 -21647.292430 -15.265634
+V 18 -214.347919 27568.949467 -3808.640039 -.026316
+P 20 -13132.740791 -13941.621156 18335.484564 -184.286845
+V 20 787.073079 -23442.709169 -17194.140479 .027680
+P 21 22935.585887 2856.363933 -13479.782297 73.058776
+V 21 13319.849875 10599.815641 24614.642063 .005250
+P 22 12159.617109 -16611.731415 -16640.263484 -40.699209
+V 22 1113.419382 21474.175227 -20378.603261 .089278
+P 24 3073.614807 17750.148993 19788.339093 7.976931
+V 24 -21429.795303 -11882.296236 14274.103747 .026957
+P 25 6792.614949 -14215.566285 21749.983588 61.669860
+V 25 24479.940654 10952.228229 -519.415057 .005748
+P 26 5549.640170 13949.001801 -22121.316187 410.842276
+V 26 -23847.850271 13649.220243 3254.846090 -.124088
+P 27 -24418.585385 -3809.742352 -9905.215002 919.640620
+V 27 -10727.175650 -7987.273360 27659.763872 .044259
+P 28 -12148.214373 15324.282320 -17647.005743 21.754753
+V 28 -2216.470717 -22864.860289 -18440.392777 .016667
+P 29 -981.209695 16834.659161 -20241.161797 229.749044
+V 29 -22639.367342 13352.818326 12099.062593 .033291
+P 30 15508.361765 3201.919279 21103.425106 804.290234
+V 30 999.652231 27375.945419 -4735.490687 .143084
+P 31 -10665.288889 -11909.950285 -21559.594634 37.942011
+V 31 22011.357828 -15068.013330 -2273.260138 .309614
+* 2004 2 29 7 30 .00000000
+P 1 -15272.362352 -6709.597746 20846.563001 332.483237
+V 1 21260.279449 -15023.322196 10802.017877 .018714
+P 3 4463.632506 -19976.839326 -16901.546311 89.714792
+V 3 18173.829242 -11694.716968 18952.244753 .031439
+P 4 -12797.997492 10081.258789 21051.277954 -76.208291
+V 4 -23615.663198 -12314.177328 -8151.704174 -.091212
+P 5 12668.565563 19586.832696 12730.270479 19.690429
+V 5 -150.106793 16593.109253 -24971.014950 .014090
+P 6 21386.828058 -1083.530436 15979.488138 -1.299294
+V 6 -14766.559049 13643.764871 20797.625008 -.010391
+P 7 -20033.037102 17242.223014 1799.865295 612.213165
+V 7 -3699.181795 -1775.575454 -31230.306975 -.077567
+P 8 -19362.827352 4207.640866 -18031.988877 355.923553
+V 8 -19363.589931 -11293.960242 18049.408066 -.088170
+P 9 19322.140013 15888.994735 -9902.012618 -32.253923
+V 9 -11850.308051 -2436.625557 -27880.930081 -.018106
+P 10 945.183077 26337.227743 1612.032624 40.144414
+V 10 -2574.053817 -1925.337596 32292.119703 .005125
+P 11 -21211.520940 -13994.128974 -7963.948131 99.734988
+V 11 10914.476081 -442.570964 -28173.396557 .025387
+P 13 -22333.508334 4426.596155 13570.891723 -30.918282
+V 13 13222.213443 -11281.190194 25439.131143 .002489
+P 14 20304.098739 -16860.898419 3087.106122 -18.152052
+V 14 4465.142559 -348.594703 -31772.918341 -.001113
+P 15 13669.958393 -9046.190899 -21174.949258 232.662390
+V 15 22652.796007 13345.306408 8785.984864 .052705
+P 16 2181.522282 -25685.751651 6457.020745 15.305814
+V 16 3395.775224 7832.030248 30346.481643 -.004037
+P 17 13213.892120 19133.742028 13660.772478 205.995676
+V 17 -15016.814839 -7578.845025 24733.872345 .195460
+P 18 15127.198821 -222.908985 -21802.145935 -15.267524
+V 18 1242.967307 27713.708165 371.217050 -.026310
+P 20 -13111.067159 -15958.762353 16633.927243 -184.284490
+V 20 -259.501362 -21311.351939 -20563.391534 .027679
+P 21 24046.592170 3715.639749 -11157.268962 73.059355
+V 21 11298.766135 8519.614080 26923.796387 .005255
+P 22 12310.967682 -14583.296315 -18324.314035 -40.691139
+V 22 2290.639235 23527.837226 -16989.580907 .089280
+P 24 1060.481323 16702.102793 20903.047282 7.978525
+V 24 -23247.850787 -11342.442708 10463.685212 .027004
+P 25 9011.392933 -13289.346201 21522.340586 61.669289
+V 25 24745.764575 9603.642696 -4532.654426 .005432
+P 26 3455.571129 15225.443973 -21642.249035 410.830739
+V 26 -22616.714716 14656.841927 7379.798005 -.124084
+P 27 -25269.765248 -4444.438811 -7338.480791 919.644651
+V 27 -8133.236079 -6159.792625 29295.828514 .044263
+P 28 -12404.816110 13184.373654 -19146.147092 21.756030
+V 28 -3517.984067 -24606.775134 -14825.433252 .016662
+P 29 -2928.184125 18051.237994 -18977.062348 229.751998
+V 29 -20573.103091 13607.532857 15950.069634 .033279
+P 30 15655.492744 5630.690401 20493.341866 804.303327
+V 30 2248.064712 26509.963610 -8801.111117 .143079
+P 31 -8713.533709 -13318.165358 -21583.727465 37.970015
+V 31 21292.623532 -16176.526224 1739.471344 .309635
+* 2004 2 29 7 45 .00000000
+P 1 -13358.652152 -8141.989128 21639.453323 332.485394
+V 1 21183.298247 -16772.422369 6793.108072 .019175
+P 3 5999.024288 -21000.607856 -15054.979663 89.718533
+V 3 15924.362423 -10980.434182 22024.565758 .031662
+P 4 -14906.428910 9049.608331 20139.943458 -76.217033
+V 4 -23151.855428 -10596.377067 -12069.757225 -.091214
+P 5 12665.854677 20951.302440 10380.013808 19.691546
+V 5 27.229434 13693.247010 -27181.358925 .013941
+P 6 20010.485070 237.931209 17710.967650 -1.299857
+V 6 -15741.038048 15712.492672 17625.705972 -.010332
+P 7 -20248.905362 16986.741286 -1018.345696 612.206060
+V 7 -1137.211485 -3954.343581 -31305.773316 -.077554
+P 8 -21044.061414 3278.719650 -16260.937705 355.915402
+V 8 -17916.239129 -9358.889471 21251.962448 -.088120
+P 9 18124.139939 15648.574239 -12322.475094 -32.255762
+V 9 -14751.837750 -2835.713303 -25833.853375 -.018313
+P 10 689.512012 26006.377937 4495.708062 40.143390
+V 10 -3177.453378 -5405.771635 31695.793999 .004912
+P 11 -20097.500032 -14014.644454 -10424.330475 99.737007
+V 11 13823.416801 -76.345795 -26423.702232 .025387
+P 13 -21072.013613 3303.462529 15736.308146 -30.917932
+V 13 14727.897683 -13683.166555 22611.722219 .002485
+P 14 20575.947876 -16804.139844 209.204874 -18.152367
+V 14 1613.267357 1671.297253 -32088.681521 -.001109
+P 15 15694.433442 -7924.263028 -20208.713921 232.668537
+V 15 22250.171189 11569.032870 12655.279827 .052593
+P 16 2524.908173 -24838.607487 9124.919652 15.305446
+V 16 4295.200545 10952.791619 28855.367333 -.004019
+P 17 11739.124563 18430.789346 15768.336212 206.013635
+V 17 -17731.981865 -7968.411928 22035.451688 .195467
+P 18 15303.928774 2257.206634 -21580.882644 -15.269839
+V 18 2672.119139 27309.227267 4537.456353 -.026309
+P 20 -13170.195528 -17765.863205 14644.794745 -184.282404
+V 20 -998.012112 -18787.054290 -23575.496065 .027680
+P 21 24957.409179 4395.477288 -8647.154890 73.059833
+V 21 8879.688003 6625.182873 28777.994043 .005248
+P 22 12578.109266 -12390.936249 -19689.367621 -40.683185
+V 22 3673.434919 25108.191852 -13300.064834 .089282
+P 24 -1099.407970 15719.353123 21666.734202 7.980875
+V 24 -24679.974134 -10441.556902 6484.393114 .027098
+P 25 11232.055759 -12490.494961 20936.272650 61.671235
+V 25 24518.901226 8135.698794 -8473.690061 .005314
+P 26 1490.347815 16575.537618 -20796.027671 410.819769
+V 26 -20995.483360 15275.043216 11402.245725 -.124080
+P 27 -25873.787265 -4927.148782 -4647.168285 919.648560
+V 27 -5246.949421 -4619.960765 30425.438362 .044266
+P 28 -12785.999002 10910.455366 -20307.878694 21.757710
+V 28 -4970.836460 -25836.226341 -10953.792326 .016656
+P 29 -4676.069123 19269.988413 -17378.715223 229.755130
+V 29 -18230.479106 13395.305419 19515.731374 .033268
+P 30 15907.850215 7958.627595 19524.042818 804.316309
+V 30 3324.621564 25141.726602 -12706.256845 .143074
+P 31 -6844.159888 -14811.873218 -21247.018561 37.998375
+V 31 20189.536788 -16957.002508 5734.564619 .309653
+* 2004 2 29 8 0 .00000000
+P 1 -11473.841807 -9721.016160 22065.898080 332.487917
+V 1 20624.437064 -18267.857055 2670.113225 .019542
+P 3 7327.445198 -21939.722652 -12948.360750 89.722701
+V 3 13589.180715 -9813.588633 24722.553131 .031817
+P 4 -16949.776093 8175.238888 18885.163104 -76.225078
+V 4 -22170.138638 -8834.289380 -15773.235736 -.091211
+P 5 12661.814136 22046.619963 7851.731599 19.692069
+V 5 -183.292555 10626.960787 -28921.792138 .013829
+P 6 18567.417717 1741.695851 19143.214496 -1.302036
+V 6 -16250.200817 17680.528599 14157.250937 -.010427
+P 7 -20245.892570 16521.953803 -3818.769250 612.199107
+V 7 1153.235939 -6415.560320 -30834.754142 -.077545
+P 8 -22573.630090 2519.909252 -14217.349920 355.907141
+V 8 -15998.766890 -7528.001581 24097.558868 -.088069
+P 9 16671.715708 15390.956822 -14539.468771 -32.259259
+V 9 -17489.972093 -2822.337736 -23365.726230 -.018554
+P 10 361.108165 25369.505144 7300.601096 40.143720
+V 10 -4184.670719 -8709.225604 30543.990667 .004860
+P 11 -18727.851691 -14018.993684 -12706.638376 99.739587
+V 11 16580.962910 -80.335003 -24221.719454 .025385
+P 13 -19697.727750 1964.039779 17629.263316 -30.917575
+V 13 15726.204162 -16071.287011 19393.261281 .002480
+P 14 20602.432719 -16549.913828 -2672.290939 -18.152415
+V 14 -974.139639 4029.052934 -31852.570297 -.001103
+P 15 17659.565668 -6965.530677 -18903.444308 232.673293
+V 15 21334.019453 9733.906437 16309.845537 .052370
+P 16 2964.768715 -23722.822749 11636.158916 15.304970
+V 16 5531.122830 13788.121420 26870.272551 -.004001
+P 17 10027.768532 17712.417267 17616.013285 206.031422
+V 17 -20259.517815 -7925.550139 18965.870747 .195475
+P 18 15604.646461 4676.751048 -20987.966151 -15.271997
+V 18 3983.642752 26371.982518 8618.348757 -.026307
+P 20 -13279.773024 -19330.962420 12402.615346 -184.279984
+V 20 -1372.509056 -15947.437343 -26178.591980 .027685
+P 21 25634.721714 4915.922854 -5991.774631 73.059858
+V 21 6120.558447 4988.680448 30147.624798 .005245
+P 22 12975.872463 -10079.356601 -20711.237196 -40.674819
+V 22 5178.900484 26171.320465 -9374.414046 .089286
+P 24 -3368.531696 14831.429701 22067.135250 7.983501
+V 24 -25666.504515 -9247.437323 2401.711509 .027115
+P 25 13409.720051 -11825.965569 20001.156793 61.671783
+V 25 23790.090726 6632.930498 -12278.764833 .004972
+P 26 -314.048540 17961.509975 -19594.998123 410.808086
+V 26 -19055.703764 15445.711088 15252.954897 -.124077
+P 27 -26207.765367 -5286.287055 -1877.465649 919.652576
+V 27 -2145.879255 -3421.440224 31036.539542 .044260
+P 28 -13301.484818 8550.152619 -21112.236798 21.759044
+V 28 -6487.508840 -26523.011276 -6895.823871 .016647
+P 29 -6204.239435 20447.611031 -15474.695901 229.757062
+V 29 -15706.969849 12690.997697 22732.780511 .033257
+P 30 16246.476616 10142.547067 18213.101637 804.329323
+V 30 4153.269369 23318.868103 -16382.029011 .143067
+P 31 -5089.178785 -16358.791510 -20553.996528 38.026035
+V 31 18761.410508 -17350.105807 9646.652308 .309675
+* 2004 2 29 8 15 .00000000
+P 1 -9659.333497 -11420.193726 22118.710650 332.489195
+V 1 19630.071319 -19429.993740 -1498.289575 .019791
+P 3 8445.156663 -22753.737682 -10617.613695 89.725762
+V 3 11256.581428 -8203.467433 26997.662327 .031809
+P 4 -18881.912882 7458.040319 17309.043816 -76.233565
+V 4 -20684.307728 -7118.592998 -19200.790767 -.091214
+P 5 12620.808663 22861.913211 5189.033972 19.694064
+V 5 -795.010904 7485.970394 -30164.425869 .013734
+P 6 17099.014327 3414.850104 20252.101392 -1.303334
+V 6 -16307.727924 19462.851817 10449.873860 -.010338
+P 7 -20051.384711 15825.672695 -6552.297437 612.192330
+V 7 3108.767382 -9085.328162 -29820.613251 -.077536
+P 8 -23910.957283 1918.079306 -11935.484433 355.899294
+V 8 -13652.398895 -5883.478638 26539.784337 -.088013
+P 9 14983.324513 15152.064479 -16516.890098 -32.260614
+V 9 -19982.369381 -2425.771390 -20517.253486 -.018588
+P 10 -74.573017 24446.905316 9977.571207 40.143532
+V 10 -5552.797960 -11740.099427 28857.337755 .004835
+P 11 -17119.938965 -14039.456035 -14771.771761 99.742248
+V 11 19104.999565 -428.869002 -21604.360224 .025386
+P 13 -18256.689185 413.991198 19217.043738 -30.917572
+V 13 16212.089670 -18347.456820 15839.946933 .002473
+P 14 20410.748379 -16070.864997 -5507.793843 -18.152548
+V 14 -3223.844245 6654.566146 -31067.973822 -.001097
+P 15 19519.392138 -6171.203685 -17281.173337 232.677844
+V 15 19912.957839 7930.542648 19690.168534 .052107
+P 16 3528.867903 -22367.613362 13947.784132 15.304959
+V 16 7045.196887 16261.641175 24425.954398 -.003981
+P 17 8100.631878 17016.206729 19172.444457 206.048928
+V 17 -22513.278556 -7482.654487 15571.516472 .195479
+P 18 16014.911048 6989.206085 -20034.236371 -15.274075
+V 18 5092.997954 24936.708427 12544.127388 -.026308
+P 20 -13405.099112 -20629.575698 9946.264288 -184.277484
+V 20 -1342.656978 -12880.505315 -28328.080390 .027691
+P 21 26051.015745 5303.000482 -3235.786649 73.060116
+V 21 3091.973319 3670.385238 31010.709845 .005244
+P 22 13511.321504 -7696.404213 -21371.742558 -40.666674
+V 22 6717.947801 26691.562226 -5281.550480 .089286
+P 24 -5704.645280 14061.275726 22097.942143 7.985567
+V 24 -26162.456548 -7838.176726 -1717.634246 .027094
+P 25 15499.422462 -11295.061895 18732.038055 61.672145
+V 25 22566.846285 5180.254385 -15885.818832 .004680
+P 26 -1932.589363 19341.054248 -18057.689113 410.795666
+V 26 -16879.869424 15126.597267 18863.967296 -.124070
+P 27 -26256.140413 -5554.406563 923.738265 919.657361
+V 27 1085.222005 -2602.303751 31125.559488 .044253
+P 28 -13952.937716 6152.930694 -21545.737174 21.760589
+V 28 -7977.096927 -26656.549247 -2724.913045 .016641
+P 29 -7500.897889 21539.416984 -13298.972091 229.759584
+V 29 -13102.608974 11488.983723 25544.846192 .033248
+P 30 16646.024075 12144.265462 16584.090901 804.341966
+V 30 4668.545393 21104.492249 -19764.223828 .143059
+P 31 -3474.764989 -17921.865459 -19515.061599 38.054027
+V 31 17078.249535 -17309.486225 13410.774368 .309695
+* 2004 2 29 8 30 .00000000
+P 1 -7951.666540 -13206.344687 21796.926493 332.492182
+V 1 18261.535905 -20190.233012 -5642.681190 .020071
+P 3 9356.300737 -23403.838162 -8102.719740 89.728580
+V 3 9012.818518 -6176.960725 28808.435445 .031764
+P 4 -20658.754249 6889.886268 15438.993911 -76.241694
+V 4 -18725.781459 -5536.175236 -22296.102748 -.091208
+P 5 12506.774041 23394.641035 2437.657654 19.693097
+V 5 -1804.091765 4363.114341 -30889.935993 .013741
+P 6 15644.691592 5237.027131 21018.863331 -1.303833
+V 6 -15943.593656 20979.371214 6564.976457 -.010201
+P 7 -19697.858560 14882.875417 -9170.582063 612.185743
+V 7 4680.042411 -11878.808102 -28276.899446 -.077527
+P 8 -25019.876050 1453.081844 -9453.503398 355.891653
+V 8 -10933.616041 -4498.601374 28538.414090 -.087956
+P 9 13084.516250 14964.500339 -18222.534663 -32.262403
+V 9 -22154.197983 -1690.244669 -17334.281028 -.018572
+P 10 -647.453108 23267.030015 12479.781878 40.143969
+V 10 -7222.361827 -14413.341897 26666.319418 .004860
+P 11 -15298.216421 -14105.327913 -16584.274442 99.744135
+V 11 21320.539610 -1081.554296 -18615.582825 .025388
+P 13 -16794.508227 -1332.261390 20472.264374 -30.917576
+V 13 16200.052737 -20415.778600 12013.810319 .002476
+P 14 20034.057493 -15346.520664 -8248.448186 -18.152170
+V 14 -5076.883219 9465.470783 -29747.749746 -.001091
+P 15 21229.518908 -5534.442440 -15369.103205 232.682017
+V 15 18013.146383 6246.644128 22741.019715 .051846
+P 16 4239.127159 -20808.489625 16020.320243 15.304450
+V 16 8766.363811 18310.274395 21564.857442 -.003962
+P 17 5985.962908 16376.121370 20410.692445 206.065834
+V 17 -24414.559792 -6687.485770 11904.196072 .195486
+P 18 16513.022364 9151.950074 -18736.680011 -15.276525
+V 18 5923.943050 23054.966782 16248.151141 -.026307
+P 20 -13508.610165 -21645.481846 7318.274934 -184.274655
+V 20 -885.386265 -9681.294627 -29987.382280 .027698
+P 21 26185.609374 5587.541187 -425.473344 73.060826
+V 21 -125.280921 2716.517854 31353.179740 .005241
+P 22 14183.361198 -5291.373020 -21659.064223 -40.658615
+V 22 8198.970435 26662.525755 -1093.680448 .089284
+P 24 -8062.178429 13424.454481 21758.873450 7.987466
+V 24 -26139.133782 -6299.156818 -5806.590525 .027132
+P 25 17457.628931 -10889.547475 17149.439019 61.670953
+V 25 20873.351945 3859.789239 -19235.329709 .004346
+P 26 -3348.051965 20668.855854 -16208.641710 410.784688
+V 26 -14558.413220 14293.409898 22169.848021 -.124061
+P 27 -26011.189176 -5766.744300 3709.600862 919.661155
+V 27 4357.495811 -2184.004612 30697.029027 .044243
+P 28 -14733.831855 3768.312178 -21601.580004 21.762097
+V 28 -9349.144231 -26246.118241 1484.035407 .016637
+P 29 -8563.303058 22501.102109 -10890.234861 229.762854
+V 29 -10517.920981 9803.413231 27903.492145 .033247
+P 30 17075.832508 13931.880251 14666.105964 804.354906
+V 30 4818.266346 18574.594898 -22794.498535 .143050
+P 31 -2020.404761 -19460.529355 -18146.406789 38.082611
+V 31 15218.227182 -16803.765141 16963.324560 .309710
+* 2004 2 29 8 45 .00000000
+P 1 -6381.274145 -15040.716028 21105.823305 332.492975
+V 1 16592.750973 -20493.671960 -9693.937766 .020104
+P 3 10072.562655 -23854.394646 -5447.039118 89.732023
+V 3 6938.710514 -3777.774293 30121.377360 .031640
+P 4 -22239.793967 6455.126477 13307.234129 -76.249784
+V 4 -16342.422777 -4166.815689 -25008.671682 -.091205
+P 5 12284.760159 23650.539742 -355.314724 19.695119
+V 5 -3189.692098 1348.934313 -31087.758822 .013804
+P 6 14240.479732 7180.987776 21430.398435 -1.305599
+V 6 -15202.825373 22157.942891 2566.851561 -.010070
+P 7 -19221.518749 13686.548817 -11626.955723 612.178336
+V 7 5833.857152 -14703.425656 -26227.403843 -.077517
+P 8 -25869.919651 1098.677905 -6812.888890 355.884724
+V 8 -7912.249648 -3435.021001 30059.987926 -.087899
+P 9 11007.142528 14856.276790 -19628.533643 -32.265014
+V 9 -23940.643369 -673.219044 -13867.211651 -.018561
+P 10 -1381.444751 21865.386514 14763.560753 40.144659
+V 10 -9119.762719 -16657.709389 24010.643557 .004903
+P 11 -13293.461372 -14241.666645 -18112.938254 99.746229
+V 11 23162.500846 -1984.897762 -15305.705963 .025389
+P 13 -15354.635626 -3251.906753 21373.343415 -30.917061
+V 13 15723.399795 -22186.333548 7981.585300 .002472
+P 14 19510.102687 -14364.258720 -10846.975513 -18.152070
+V 14 -6490.756925 12370.224781 -27914.045597 -.001087
+P 15 22748.666703 -5040.768672 -13199.185282 232.686188
+V 15 15677.450728 4763.725418 25412.213791 .051681
+P 16 5110.604241 -19085.953813 17818.430068 15.304193
+V 16 10613.659441 19886.491181 18336.354359 -.003944
+P 17 3718.650284 15821.194354 21308.709233 206.083517
+V 17 -25894.959450 -5601.532826 8020.667342 .195497
+P 18 17070.906854 11127.684328 -17118.099971 -15.278851
+V 18 6411.557372 20793.094984 19667.984744 -.026312
+P 20 -13551.482056 -22371.194771 4564.088617 -184.272109
+V 20 4.143553 -6448.267018 -31128.542540 .027696
+P 21 26025.445485 5803.838506 2391.980106 73.061101
+V 21 -3443.045713 2157.569183 31169.067181 .005238
+P 22 14982.680465 -2913.253042 -21567.978190 -40.650458
+V 22 9531.633265 26097.330967 3115.068783 .089281
+P 24 -10393.752701 12928.637783 21055.663528 7.989836
+V 24 -25585.177481 -4719.807603 -9798.675910 .027243
+P 25 19243.709045 -10594.038325 15279.093236 61.670700
+V 25 18749.789725 2747.741890 -22271.163038 .004326
+P 26 -4551.583339 21898.279523 -14078.123324 410.773552
+V 26 -12186.299531 12941.278900 25109.004254 -.124052
+P 27 -25473.253188 -5959.702415 6434.035348 919.665176
+V 27 7581.102831 -2170.963510 29763.133596 .044233
+P 28 -15629.662684 1444.109709 -21279.718759 21.763338
+V 28 -10517.418545 -25320.276531 5656.100885 .016633
+P 29 -9397.630952 23290.507703 -8291.145462 229.765850
+V 29 -8049.886221 7667.653215 29769.049120 .033248
+P 30 17501.224599 15480.795352 12493.190831 804.368684
+V 30 4565.643983 15815.002334 -25421.379788 .143040
+P 31 -738.287477 -20932.125211 -16469.851503 38.110789
+V 31 13264.822147 -15818.030740 20243.048573 .309718
+* 2004 2 29 9 0 .00000000
+P 1 -4971.474973 -16880.313476 20056.847641 332.495435
+V 1 14707.392878 -20301.281231 -13584.270511 .020366
+P 3 10612.535610 -24074.415173 -2696.559885 89.734425
+V 3 5106.438467 -1064.957265 30911.698530 .031526
+P 4 -23589.509364 6131.364799 10950.242197 -76.258044
+V 4 -13596.775332 -3080.171802 -27294.503460 -.091205
+P 5 11922.430216 23643.266862 -3142.246668 19.696461
+V 5 -4914.766666 -1471.616857 -30756.145831 .013848
+P 6 12917.743990 9213.461714 21479.486365 -1.309050
+V 6 -14143.722985 22937.114131 -1478.251370 -.009860
+P 7 -18660.775392 12238.225029 -13877.346745 612.171085
+V 7 6554.586535 -17462.489971 -23705.963410 -.077507
+P 8 -26437.419359 823.692083 -4057.810437 355.878217
+V 8 -4669.103238 -2740.435914 31078.325439 -.087868
+P 9 8788.354607 14849.718374 -20711.737408 -32.266117
+V 9 -25289.081334 556.760153 -10170.414310 -.018536
+P 10 -2293.312421 20283.169714 16789.193812 40.145691
+V 10 -11160.297890 -18418.445979 20938.411770 .004927
+P 11 -11141.770484 -14468.203913 -19331.340603 99.748646
+V 11 24578.126240 -3074.438569 -11730.616656 .025396
+P 13 -13976.730725 -5314.444238 21904.871601 -30.916905
+V 13 14832.774231 -23578.728563 3813.498693 .002468
+P 14 18879.649821 -13119.980161 -13258.496392 -18.152543
+V 14 -7440.984283 15271.568542 -25597.954424 -.001085
+P 15 24040.114764 -4668.761956 -10807.633714 232.690980
+V 15 12964.022521 3554.056233 27659.322633 .051571
+P 16 6150.742597 -17244.022145 19311.499777 15.303863
+V 16 12499.396062 20959.955050 14795.884624 -.003928
+P 17 1339.177000 15374.385764 21849.757166 206.101450
+V 17 -26898.964100 -4297.866197 3982.078885 .195505
+P 18 17655.255567 12885.650258 -15206.691804 -15.280984
+V 18 6504.802895 18229.621204 22746.381904 -.026314
+P 20 -13495.287091 -22808.104587 1731.257336 -184.269690
+V 20 1312.303345 -3279.587626 -31732.672685 .027703
+P 21 25565.618164 5988.178443 5169.220401 73.061858
+V 21 -6768.872223 2007.189300 30460.614095 .005236
+P 22 15892.036634 -608.992946 -21099.965353 -40.642377
+V 22 10630.628496 25028.065847 7270.065641 .089276
+P 24 -12651.766860 12573.392746 19999.970952 7.991776
+V 24 -24507.020458 -3190.236635 -13628.869556 .027315
+P 25 20821.324451 -10386.669227 13151.601753 61.671122
+V 25 16251.105278 1911.461494 -24941.429807 .004416
+P 26 -5542.943418 22983.156387 -11701.720895 410.762477
+V 26 -9859.330170 11085.497909 27625.045087 -.124045
+P 27 -24650.688203 -6169.319142 9052.377694 919.669396
+V 27 10668.289923 -2550.751024 28343.220166 .044217
+P 28 -16618.489462 -775.253977 -20586.795636 21.764895
+V 28 -11403.470223 -23925.510652 9717.802219 .016628
+P 29 -10018.481586 23869.295338 -5547.517030 229.768823
+V 29 -5788.112132 5132.946266 31111.228054 .033244
+P 30 17884.962381 16774.454598 10103.681030 804.381037
+V 30 3890.750209 12917.963965 -27601.097664 .143024
+P 31 367.033189 -22293.431280 -14512.583272 38.138820
+V 31 11303.702653 -14354.772535 23192.085585 .309717
+* 2004 2 29 9 15 .00000000
+P 1 -3737.736212 -18679.407161 18667.448139 332.495664
+V 1 12695.707081 -19591.517301 -17248.260150 .020546
+P 3 11000.811003 -24038.835787 100.913159 89.737358
+V 3 3576.669395 1889.207025 31163.899277 .031513
+P 4 -24678.583679 5890.491074 8408.140333 -76.266684
+V 4 -10563.786705 -2333.167150 -29116.691935 -.091205
+P 5 11391.459861 23393.758576 -5875.738551 19.698654
+V 5 -6927.479802 -4022.225111 -29902.084372 .013810
+P 6 11702.088505 11296.219650 21164.921117 -1.306321
+V 6 -12835.598050 23268.498868 -5503.093693 -.009537
+P 7 -18054.624206 10548.178627 -15881.164430 612.164182
+V 7 6844.896743 -20059.075604 -20755.995873 -.077499
+P 8 -26706.369641 593.354923 -1234.449111 355.870669
+V 8 -1293.174485 -2446.753380 31574.974982 -.087869
+P 9 6469.422986 14960.574511 -21454.045466 -32.267819
+V 9 -26160.858812 1922.567896 -6301.621164 -.018567
+P 10 -3391.826630 18565.683133 18521.636899 40.146371
+V 10 -13251.635169 -19659.274853 17505.117475 .004862
+P 11 -8883.358128 -14798.471070 -20218.306295 99.750870
+V 11 25528.954936 -4277.310890 -7950.880839 .025402
+P 13 -12695.192923 -7482.687165 22057.869985 -30.916575
+V 13 13594.010783 -24525.269099 -417.994397 .002469
+P 14 18184.822473 -11618.458464 -15441.313921 -18.152871
+V 14 -7921.956314 18070.224797 -22839.008471 -.001079
+P 15 25072.992290 -4391.017677 -8234.377009 232.695898
+V 15 9944.340685 2677.924401 29444.339352 .051402
+P 16 7358.919306 -15328.627661 20474.142858 15.303723
+V 16 14332.595039 21518.515187 11004.007129 -.003919
+P 17 -1107.642477 15051.654384 22022.775017 206.119071
+V 17 -27386.166267 -2858.529694 -146.695625 .195511
+P 18 18228.868500 14402.593722 -13035.536460 -15.283479
+V 18 6168.535181 15452.250868 25432.161107 -.026324
+P 20 -13303.639784 -22966.284134 -1131.385924 -184.267494
+V 20 3007.480443 -269.436671 -31790.226615 .027706
+P 21 24809.613652 6177.296176 7859.466492 73.062416
+V 21 -10009.265623 2261.675848 29238.290979 .005225
+P 22 16886.870266 1578.153764 -20263.192282 -40.634336
+V 22 11419.238714 23504.477535 11297.610119 .089271
+P 24 -14789.995715 12350.273719 18609.207522 7.994549
+V 24 -22928.732051 -1797.836270 -17234.488079 .027434
+P 25 22159.681801 -10240.013709 10802.012391 61.672053
+V 25 13445.237594 1406.764183 -27199.344452 .004489
+P 26 -6330.408120 23879.602409 -9119.811322 410.751727
+V 26 -7670.302996 8761.468778 29668.142441 -.124042
+P 27 -23559.543690 -6429.781641 11522.008057 919.673146
+V 27 13536.308456 -3294.829587 26463.281189 .044191
+P 28 -17671.782638 -2850.272197 -19535.949549 21.766340
+V 28 -11939.825849 -22124.184806 13598.468945 .016624
+P 29 -10448.056236 24204.468319 -2707.451178 229.771222
+V 29 -3811.368741 2266.358806 31909.509200 .033240
+P 30 18188.804541 17804.758455 7539.479662 804.393980
+V 30 2791.285108 9978.545972 -29298.235318 .143008
+P 31 1298.690021 -23502.247196 -12306.804298 38.166978
+V 31 9419.459518 -12434.196873 25757.039313 .309718
+* 2004 2 29 9 30 .00000000
+P 1 -2687.235535 -20391.154608 16960.816205 332.500277
+V 1 10651.072275 -18361.308815 -20623.877260 .020935
+P 3 11266.829201 -23729.595362 2896.614149 89.740644
+V 3 2396.130271 5001.869722 30872.173555 .031390
+P 4 -25484.903570 5699.926689 5724.035017 -76.274312
+V 4 -7328.103800 -1967.867638 -30445.897390 -.091209
+P 5 10668.784031 22929.327744 -8509.405396 19.700217
+V 5 -9163.162338 -6237.916314 -28541.092726 .013738
+P 6 10612.482515 13387.339517 20491.555450 -1.306591
+V 6 -11356.107545 23118.700283 -9440.442708 -.009445
+P 7 -17440.997557 8635.268965 -17602.130176 612.157673
+V 7 6725.672486 -22399.995065 -17429.762795 -.077496
+P 8 -26669.028518 370.786340 1609.715534 355.862348
+V 8 2121.435845 -2568.803717 31539.588931 -.087877
+P 9 4094.416283 15197.371041 -21842.681287 -32.269434
+V 9 -26532.632335 3341.290344 -2321.304212 -.018533
+P 10 -4677.245391 16760.614693 19931.130485 40.145337
+V 10 -15297.585112 -20363.623767 13772.502872 .004789
+P 11 -6561.200511 -15239.171056 -20758.285308 99.753349
+V 11 25992.267351 -5515.143921 -4030.767164 .025401
+P 13 -11537.913355 -9714.030203 21829.932373 -30.916381
+V 13 12085.404433 -24973.633752 -4639.504827 .002466
+P 14 17467.392636 -9873.350457 -17357.644628 -18.152944
+V 14 -7947.051922 20668.696285 -19684.518093 -.001077
+P 15 25823.371496 -4175.333406 -5522.452256 232.700383
+V 15 6700.772808 2181.311898 30736.287903 .051177
+P 16 8726.308402 -13385.964555 21286.615542 15.303684
+V 16 16022.540340 21568.511977 7025.382723 -.003913
+P 17 -3574.104624 14861.282694 21822.678833 206.136800
+V 17 -27333.022248 -1371.533810 -4297.843230 .195513
+P 18 18752.152532 15663.443246 -10642.019338 -15.285782
+V 18 5384.896235 12554.542061 27680.966364 -.026336
+P 20 -12943.766947 -22863.970433 -3974.574078 -184.265379
+V 20 5041.269316 2495.503629 -31301.107708 .027706
+P 21 23769.255986 6406.814558 10417.247616 73.062801
+V 21 -13072.985238 2900.083189 27520.724974 .005220
+P 22 17936.226240 3610.132182 -19072.363239 -40.626218
+V 22 11832.555160 21591.951091 15126.353714 .089262
+P 24 -16765.147653 12243.216475 16906.288862 7.995539
+V 24 -20891.256869 -623.977831 -20556.050941 .027577
+P 25 23234.603800 -10122.228918 8269.322152 61.672053
+V 25 10410.855712 1275.627288 -29004.072612 .004466
+P 26 -6930.325915 24547.794174 -6376.911136 410.740840
+V 26 -5705.181771 6023.805321 31196.344655 -.124041
+P 27 -22222.989367 -6772.029068 13802.925334 919.678210
+V 27 16110.105040 -4359.807785 24155.431265 .044163
+P 28 -18755.537481 -4747.668260 -18146.505618 21.767508
+V 28 -12072.692391 -19991.894640 17231.499141 .016616
+P 29 -10715.044492 24269.680262 179.550451 229.773846
+V 29 -2184.624586 -851.878519 32153.310782 .033240
+P 30 18375.100783 18572.152859 4845.283437 804.406409
+V 30 1282.632484 7090.976068 -30486.191003 .142992
+P 31 2067.256467 -24518.978061 -9889.281007 38.194992
+V 31 7692.302967 -10093.883201 27890.058353 .309714
+* 2004 2 29 9 45 .00000000
+P 1 -1818.739054 -21969.282689 14965.535884 332.502146
+V 1 8666.434830 -16626.375355 -23653.478231 .020812
+P 3 11443.536355 -23136.448883 5641.699381 89.742196
+V 3 1595.740721 8182.740598 30040.614731 .031176
+P 4 -25994.297561 5524.036714 2943.318341 -76.282797
+V 4 -3981.037816 -2009.913425 -31260.722441 -.091217
+P 5 9737.645975 22282.538014 -10998.631101 19.701045
+V 5 -11546.736661 -8067.316533 -26696.898275 .013605
+P 6 9660.641485 15442.622600 19470.254735 -1.307521
+V 6 -9788.271219 22470.709124 -13224.088280 -.009455
+P 7 -16855.158181 6526.427804 -19009.030378 612.150739
+V 7 6235.142307 -24399.677782 -13787.370791 -.077497
+P 8 -26326.229322 118.567873 4426.648626 355.855690
+V 8 5478.829342 -3103.659679 30970.215673 -.087886
+P 9 1708.781137 15561.023003 -21870.409740 -32.269150
+V 9 -26397.223103 4727.225808 1707.978450 -.018566
+P 10 -6141.142516 14916.238371 20993.706465 40.145373
+V 10 -17202.008810 -20535.043132 9807.308585 .004996
+P 11 -4219.575668 -15789.822503 -20941.639264 99.755233
+V 11 25961.946039 -6707.192010 -37.196203 .025406
+P 13 -10525.294598 -11961.931096 21225.250879 -30.916202
+V 13 10394.505556 -24888.947512 -8778.008163 .002460
+P 14 16767.094586 -7906.866562 -18974.283303 -18.152806
+V 14 -7548.008629 22975.012803 -16188.766454 -.001075
+P 15 26275.122344 -3986.082674 -2717.347212 232.704105
+V 15 3323.731381 2094.067149 31511.770671 .051051
+P 16 10236.064453 -11460.836257 21735.138100 15.303499
+V 16 17482.319875 21134.388999 2927.702493 -.003909
+P 17 -6011.193601 14803.487348 21250.586232 206.154291
+V 17 -26734.066004 72.466251 -8401.528091 .195511
+P 18 19184.715171 16661.679726 -8067.186251 -15.287994
+V 18 4154.045584 9632.395937 29455.907586 -.026343
+P 20 -12387.940760 -22526.742990 -6749.454955 -184.262659
+V 20 7350.313441 4939.249711 -30274.609246 .027712
+P 21 22464.357236 6709.720557 12799.130575 73.063433
+V 21 -15874.290645 3884.955341 25334.531845 .005212
+P 22 19003.943756 5455.378550 -17548.446421 -40.618254
+V 22 11820.214289 19368.861031 18688.668458 .089251
+P 24 -18538.327034 12229.221965 14919.307692 7.998427
+V 24 -18451.066655 259.099565 -23538.132876 .027903
+P 25 24029.376597 -9998.387835 5595.904356 61.672595
+V 25 7234.663615 1544.346415 -30321.553252 .004496
+P 26 -7366.336605 24953.625819 -3520.912130 410.729631
+V 26 -4039.449095 2944.590837 32176.788035 -.124041
+P 27 -20670.512401 -7222.489516 15858.274689 919.681585
+V 27 18324.716903 -5689.151359 21457.386596 .044128
+P 28 -19831.605243 -6441.449037 -16443.557437 21.769026
+V 28 -11764.073182 -17614.349882 20555.481135 .016609
+P 29 -10853.271243 24046.281570 3063.480281 229.776773
+V 29 -956.691857 -4131.513451 31841.948178 .033242
+P 30 18408.359570 19085.392394 2067.775488 804.419569
+V 30 -602.782264 4345.085722 -31147.455222 .142971
+P 31 2690.206594 -25308.157163 -7300.796924 38.222822
+V 31 6194.848345 -7387.762854 29549.899374 .309707
+* 2004 2 29 10 0 .00000000
+P 1 -1122.801308 -23369.767378 12715.145631 332.504459
+V 1 6830.739337 -14420.858329 -26284.764824 .020571
+P 3 11565.901611 -22257.483733 8288.139684 89.744180
+V 3 1189.389849 11337.540926 28683.211727 .031266
+P 4 -26200.990436 5325.656232 112.940085 -76.290826
+V 4 -617.305140 -2467.555704 -31547.986408 -.091213
+P 5 8588.410419 21489.897210 -13301.288721 19.701782
+V 5 -13995.518174 -9474.395822 -24401.007913 .013533
+P 6 8850.687157 17417.109746 18117.758637 -1.307992
+V 6 -8217.273421 21324.721743 -16789.873185 -.009423
+P 7 -16328.206925 4255.809048 -20076.368470 612.144050
+V 7 5427.226956 -25983.769317 -9895.534280 -.077500
+P 8 -25687.389330 -199.652449 7168.525249 355.847761
+V 8 8684.721263 -4030.596691 29873.496855 -.087909
+P 9 -642.131878 16044.723870 -21535.693918 -32.272209
+V 9 -25763.957127 5995.012992 5722.277506 -.018763
+P 10 -7766.587524 13079.614869 21691.578913 40.146229
+V 10 -18872.696211 -20196.811911 5679.951168 .005175
+P 11 -1902.553758 -16442.691546 -20764.830488 99.757536
+V 11 25448.714832 -7773.577606 3961.370967 .025410
+P 13 -9669.575337 -14177.548875 20254.525311 -30.916152
+V 13 8614.570798 -24255.175438 -12762.123712 .002453
+P 14 16120.028170 -5749.111633 -20263.189353 -18.152918
+V 14 -6773.570700 24906.280220 -12412.073698 -.001074
+P 15 26420.496399 -3785.728221 133.703742 232.708587
+V 15 -91.486092 2428.644010 31755.444109 .050941
+P 16 11863.819374 -9595.069059 21812.117830 15.303085
+V 16 18632.223189 20257.629662 -1219.422735 -.003908
+P 17 -8370.239927 14870.339068 20313.952144 206.172141
+V 17 -25602.504789 1383.705833 -12386.943673 .195511
+P 18 19486.993511 17399.386826 -5355.047314 -15.290143
+V 18 2494.210376 6780.492149 30728.077176 -.026354
+P 20 -11614.719567 -21986.432692 -9408.427621 -184.260189
+V 20 9858.723268 6999.285542 -28729.193333 .027708
+P 21 20922.082162 7114.935208 14964.427353 73.063775
+V 21 -18336.023182 5163.666722 22714.046068 .005196
+P 22 20050.066525 7089.850352 -15718.280553 -40.610106
+V 22 11348.537196 16923.408482 21921.931578 .089241
+P 24 -20076.350141 12279.307381 12681.131102 8.001465
+V 24 -15678.261541 791.101103 -26130.199662 .028125
+P 25 24535.338091 -9831.953361 2826.863671 61.673368
+V 25 4008.352821 2222.239054 -31125.275255 .004607
+P 26 -7668.276733 25070.172306 -602.214698 410.718317
+V 26 -2734.818879 -389.172955 32586.748422 -.124037
+P 27 -18936.914477 -7801.989215 17654.828544 919.686067
+V 27 20127.314873 -7215.289269 18411.951904 .044088
+P 28 -20859.185579 -7913.661945 -14457.455124 21.770311
+V 28 -10993.226142 -15083.924540 23515.163333 .016603
+P 29 -10900.162198 23524.066551 5894.706419 229.779493
+V 29 -158.558840 -7475.757660 30984.400640 .033246
+P 30 18256.728158 19360.992865 -745.198747 804.431890
+V 30 -2816.789475 1822.986341 -31273.710930 .142951
+P 31 3191.094658 -25839.846477 -4585.511823 38.251661
+V 31 4989.122124 -4384.427998 30702.940890 .309692
+* 2004 2 29 10 15 .00000000
+P 1 -582.281846 -24552.449345 10247.615883 332.506029
+V 1 5225.484121 -11796.266603 -28471.693305 .020340
+P 3 11669.355491 -21099.315775 10789.602803 89.747840
+V 3 1173.414894 14371.641385 26823.630499 .031515
+P 4 -26107.758425 5067.674969 -2719.340342 -76.299337
+V 4 2668.343650 -3331.327954 -31302.898823 -.091214
+P 5 7219.111465 20590.419219 -15378.417547 19.704452
+V 5 -16422.290492 -10439.638917 -21692.179605 .013568
+P 6 8179.101025 19266.643582 16456.449786 -1.309021
+V 6 -6727.159881 19698.339385 -20076.727331 -.009488
+P 7 -15885.771736 1863.633808 -20784.896207 612.137623
+V 7 4369.178102 -27092.274466 -5826.135933 -.077512
+P 8 -24770.210970 -617.581198 9788.508725 355.840018
+V 8 11649.841680 -5311.710364 28264.756957 -.087943
+P 9 -2914.548936 16634.118747 -20842.787180 -32.274974
+V 9 -24658.469262 7062.797806 9656.998919 -.018833
+P 10 -9528.667237 11294.863284 22013.413882 40.146359
+V 10 -20225.055176 -19390.761941 1463.163426 .005297
+P 11 347.505547 -17183.015955 -20230.508893 99.759708
+V 11 24479.741513 -8638.523620 7896.088932 .025415
+P 13 -8974.484651 -16311.474917 18934.759198 -30.916193
+V 13 6840.811408 -23075.786037 -16523.350868 .002446
+P 14 15557.214466 -3437.120585 -21201.983679 -18.153100
+V 14 -5687.466073 26391.891215 -8419.747109 -.001073
+P 15 26260.415838 -3536.421101 2982.462773 232.712638
+V 15 -3448.071185 3179.462480 31460.410233 .050950
+P 16 13578.473824 -7826.050338 21516.270912 15.302333
+V 16 19402.870033 18995.060693 -5345.596539 -.003906
+P 17 -10604.602647 15046.005846 19026.603781 206.190078
+V 17 -23970.137160 2476.938652 -16183.498510 .195502
+P 18 19621.857137 17886.982967 -2551.839971 -15.292624
+V 18 441.059384 4088.799212 31476.941369 -.026364
+P 20 -10609.948625 -21279.804814 -11905.951846 -184.258293
+V 20 12480.973932 8628.797272 -26692.116678 .027712
+P 21 19176.047031 7646.030322 16875.873619 73.064367
+V 21 -20392.414497 6670.335184 19700.942712 .005188
+P 22 21032.415216 8497.753617 -13614.070817 -40.601658
+V 22 10401.983454 14350.079061 24769.695109 .089228
+P 24 -21352.867404 12359.693130 10228.923584 8.004603
+V 24 -12654.173882 926.090653 -28287.420825 .028208
+P 25 24752.179721 -9586.341782 9.324177 61.673762
+V 25 825.300107 3300.964658 -31396.984463 .004496
+P 26 -7870.811727 24878.889669 2327.224109 410.707598
+V 26 -1836.478898 -3878.841923 32414.475745 -.124043
+P 27 -17061.142668 -8524.866584 19163.421748 919.689133
+V 27 21478.846853 -8862.048670 15066.514536 .044044
+P 28 -21796.419011 -9154.831942 -12223.213288 21.771791
+V 28 -9757.424825 -12496.020604 26062.263110 .016599
+P 29 -10895.092094 22701.696939 8624.825404 229.783033
+V 29 197.544522 -10784.967329 29598.907068 .033247
+P 30 17893.328852 19422.399798 -3545.457196 804.444848
+V 30 -5297.361171 -403.899030 -30865.768842 .142939
+P 31 3598.480119 -26090.856086 -1790.233236 38.279707
+V 31 4123.920475 -1164.807395 31324.110634 .309667
+* 2004 2 29 10 30 .00000000
+P 1 -173.161374 -25482.524719 7604.747665 332.508784
+V 1 3921.529822 -8819.763390 -30175.317215 .020198
+P 3 11788.214064 -19676.955440 13102.306500 89.750116
+V 3 1526.808278 17193.731122 24494.783081 .031625
+P 4 -25725.780264 4714.622509 -5505.713054 -76.307418
+V 4 5784.491724 -4574.361297 -30529.132114 -.091219
+P 5 5635.715508 19624.107768 -17194.848502 19.704546
+V 5 -18738.544178 -10960.606158 -18615.803533 .013414
+P 6 7634.975454 20949.420029 14514.029678 -1.309263
+V 6 -5397.546731 17626.129940 -23027.693426 -.009517
+P 7 -15546.937232 -605.220953 -21122.008004 612.130123
+V 7 3138.614068 -27682.089040 -1654.631945 -.077530
+P 8 -23600.081879 -1164.785684 12241.531596 355.832983
+V 8 14293.205833 -6893.186487 26167.971517 -.087982
+P 9 -5067.711488 17307.760805 -19801.755340 -32.276812
+V 9 -23121.961630 7855.344524 13447.711074 -.018753
+P 10 -11395.325298 9601.571506 21954.476409 40.146867
+V 10 -21185.464123 -18175.383710 -2769.369274 .005475
+P 11 2491.391512 -17989.515012 -19347.493464 99.762074
+V 11 23097.613100 -9233.450100 11698.911093 .025421
+P 13 -8435.237532 -18315.489921 17288.947267 -30.915826
+V 13 5166.587129 -21373.662694 -19997.241508 .002443
+P 14 15103.360870 -1013.625129 -21774.346633 -18.152939
+V 14 -4365.790620 27376.270258 -4280.936275 -.001075
+P 15 25804.453353 -3201.627887 5780.462680 232.715413
+V 15 -6651.180087 4322.928153 30628.509901 .051041
+P 16 15343.253705 -6185.445616 20852.641694 15.302141
+V 16 19737.954588 17416.586996 -9380.779886 -.003904
+P 17 -12671.312078 15307.321715 17408.663271 206.208089
+V 17 -21886.554471 3275.019887 -19722.124254 .195482
+P 18 19556.125277 18142.647311 294.737567 -15.295145
+V 18 -1953.570118 1639.283953 31690.606168 -.026369
+P 20 -9367.482771 -20447.068123 -14199.317382 -184.255772
+V 20 15125.167109 9798.291749 -24198.913637 .027716
+P 21 17265.181836 8320.141128 18500.268099 73.065019
+V 21 -21991.519122 8328.252275 16343.744859 .005184
+P 22 21908.257610 9671.939962 -11272.785715 -40.593522
+V 22 8983.861838 11745.872255 27182.713771 .089211
+P 24 -22349.250135 12433.185773 7603.598300 8.007019
+V 24 -9468.544682 634.417223 -29971.449651 .028212
+P 25 24687.943777 -9226.517678 -2808.342039 61.672535
+V 25 -2222.875867 4754.512880 -31127.293721 .004416
+P 26 -8011.849569 24370.492483 5214.905900 410.695956
+V 26 -1371.016354 -7418.001566 31659.759859 -.124052
+P 27 -15084.991819 -9398.317647 20359.341364 919.693486
+V 27 22355.243902 -10547.349278 11472.541112 .044005
+P 28 -22602.016039 -10164.068367 -9779.853575 21.773009
+V 28 -8072.012555 -9945.391591 28156.111757 .016597
+P 29 -10877.682427 21586.790975 11207.471792 229.786012
+V 29 118.333942 -13960.370193 27712.415141 .033248
+P 30 17297.402245 19298.909706 -6285.293964 804.457345
+V 30 -7970.998998 -2277.345631 -29933.352948 .142926
+P 31 3944.635566 -26045.728349 1036.390127 38.306976
+V 31 3632.647061 2180.723340 31397.686551 .309641
+* 2004 2 29 10 45 .00000000
+P 1 134.370896 -26131.853844 4831.498995 332.510350
+V 1 2976.283929 -5571.845269 -31364.546109 .019895
+P 3 11954.154398 -18013.348079 15185.823652 89.753932
+V 3 2212.146603 19719.361530 21738.193649 .031798
+P 4 -25074.189594 4234.196474 -8199.078813 -76.314793
+V 4 8646.306176 -6153.333518 -29238.792786 -.091228
+P 5 3852.089594 18630.417840 -18719.770066 19.703780
+V 5 -20857.764615 -11051.868436 -15223.200694 .013334
+P 6 7200.555895 22427.471709 12323.103175 -1.310726
+V 6 -4300.462507 15158.554756 -25590.929021 -.009563
+P 7 -15323.463040 -3102.829352 -21081.986834 612.123305
+V 7 1820.092848 -27728.796424 2541.642546 -.077551
+P 8 -22209.191087 -1865.342808 14485.067782 355.824809
+V 8 16545.132032 -8707.195926 23615.600288 -.088025
+P 9 -7065.223567 18037.841522 -18428.423228 -32.277848
+V 9 -21209.920154 8306.992425 17031.018849 -.018758
+P 10 -13328.483375 8033.406109 21516.655766 40.147645
+V 10 -21694.159551 -16623.304696 -6944.346393 .005660
+P 11 4494.361503 -18835.167379 -18130.646765 99.764371
+V 11 21358.716989 -9499.813169 15303.780190 .025431
+P 13 -8038.869809 -20144.279254 15345.661019 -30.915570
+V 13 3679.694283 -19190.270996 -23124.489056 .002437
+P 14 14775.884498 1474.401408 -21970.309456 -18.153130
+V 14 -2893.902329 27821.043483 -67.414307 -.001078
+P 15 25070.499199 -2747.725777 8479.802392 232.719303
+V 15 -9611.389602 5818.126914 29270.502418 .051273
+P 16 17116.992467 -4698.141969 19832.519251 15.301796
+V 16 19596.503922 15602.442347 -13256.428345 -.003903
+P 17 -14532.607857 15624.670409 15486.347842 206.225029
+V 17 -19417.613083 3712.294605 -22936.684102 .195454
+P 18 19261.942039 18191.462970 3136.311140 -15.297472
+V 18 -4623.542947 -497.062980 31365.957603 -.026374
+P 20 -7889.603835 -19530.268238 -16249.360757 -184.252963
+V 20 17696.530643 10496.542938 -21292.749130 .027719
+P 21 15232.394080 9147.118204 19809.062248 73.065349
+V 21 -23097.176684 10052.756339 12697.211140 .005178
+P 22 22636.008249 10613.959963 -8735.468633 -40.586008
+V 22 7116.273787 9206.461421 29119.809317 .089193
+P 24 -23055.207099 12460.709396 4849.200102 8.009267
+V 24 -6216.358852 -95.925224 -31151.157500 .028317
+P 25 24358.709208 -8720.558639 -5577.335744 61.673203
+V 25 -5049.771596 6539.889015 -30316.166356 .004671
+P 26 -8130.803265 23545.462236 8008.843488 410.685190
+V 26 -1345.150068 -10896.765480 30334.186003 -.124059
+P 27 -13051.719200 -10421.992892 21222.670969 919.697617
+V 27 22748.159773 -12186.084624 7685.068364 .043961
+P 28 -23236.859899 -10948.844403 -7169.696471 21.774456
+V 28 -5969.767805 -7522.566752 29764.137704 .016593
+P 29 -10886.115460 20195.680354 13599.072517 229.789191
+V 29 -371.073014 -16907.696026 25359.909256 .033242
+P 30 16455.216618 19024.389335 -8918.266789 804.470287
+V 30 -10755.522847 -3754.297611 -28494.753115 .142910
+P 31 4264.085943 -25697.440138 3844.739823 38.334939
+V 31 3531.743741 5555.698118 30917.930714 .309618
+* 2004 2 29 11 0 .00000000
+P 1 374.597713 -26480.036515 1975.247482 332.512052
+V 1 2431.374355 -2143.488177 -32016.801384 .019641
+P 3 12194.804767 -16138.606712 17003.821733 89.757166
+V 3 3177.202244 21874.213568 18603.177979 .031824
+P 4 -24179.344342 3598.677833 -10753.802948 -76.322747
+V 4 11178.559069 -8010.021489 -27452.289661 -.091241
+P 5 1889.675982 17646.751023 -19927.227634 19.704365
+V 5 -22698.653863 -10744.320582 -11570.846198 .013346
+P 6 6852.056833 23668.027055 9920.674580 -1.310517
+V 6 -3497.443519 12360.285864 -27720.666893 -.009516
+P 7 -15219.325251 -5579.948777 -20666.095346 612.116469
+V 7 501.387744 -27227.644351 6685.207755 -.077571
+P 8 -20635.389422 -2736.684751 16479.883158 355.817161
+V 8 18349.888558 -10674.363023 20648.272652 -.088081
+P 9 -8876.259861 18791.176245 -16744.239477 -32.280233
+V 9 -18990.308116 8364.355823 20345.506873 -.018722
+P 10 -15285.397269 6616.973231 20708.372530 40.148912
+V 10 -21707.552951 -14818.253907 -10990.136756 .005820
+P 11 6327.289756 -19688.228550 -16600.642766 99.766459
+V 11 19331.084832 -9391.572010 18647.804954 .025443
+P 13 -7764.897501 -21757.041151 13138.540692 -30.915493
+V 13 2458.891380 -16584.118476 -25851.917044 .002431
+P 14 14584.232648 3977.365319 -21786.433538 -18.153164
+V 14 -1362.947952 27706.546647 4147.692173 -.001080
+P 15 24084.122797 -2145.504937 11033.952898 232.723494
+V 15 -12248.007751 7608.188586 27406.115442 .051552
+P 16 18855.591604 -3381.456911 18473.252410 15.301663
+V 16 18954.566549 13640.057535 -16906.608946 -.003904
+P 17 -16157.307240 15963.159341 13291.639934 206.242369
+V 17 -16643.195965 3737.634836 -25765.448364 .195433
+P 18 18717.958972 18064.310704 5924.622538 -15.300430
+V 18 -7490.823481 -2262.781451 30508.678911 -.026381
+P 20 -6187.117405 -18571.627290 -18021.118499 -184.250049
+V 20 20101.021901 10730.835918 -18023.655413 .027729
+P 21 13123.080265 10128.954489 20778.889258 73.065552
+V 21 -23690.421641 11754.455779 8821.599531 .005175
+P 22 23176.888706 11333.773803 -6046.479607 -40.577873
+V 22 4839.299215 6822.444247 30548.555210 .089175
+P 24 -23469.104642 12402.931395 2012.225120 8.011317
+V 24 -2994.440661 -1258.568566 -31803.306097 .028497
+P 25 23787.970781 -8041.126720 -8249.288085 61.673936
+V 25 -7577.532375 8598.498929 -28973.242928 .004929
+P 26 -8266.778828 22414.157136 10658.621363 410.673653
+V 26 -1745.353145 -14206.298470 28461.052384 -.124064
+P 27 -11004.614401 -11587.859046 21738.588460 919.701611
+V 27 22665.223106 -13693.114933 3762.176835 .043921
+P 28 -23665.522746 -11524.464191 -4437.616674 21.776092
+V 28 -3499.624037 -5310.506095 30862.194465 .016590
+P 29 -10955.528557 18552.849786 15759.536262 229.791564
+V 29 -1228.388990 -19540.578455 22583.642413 .033236
+P 30 15360.712525 18635.844039 -11399.947990 804.483027
+V 30 -13563.148444 -4808.241211 -26576.362234 .142895
+P 31 4592.036810 -25047.786706 6585.147190 38.362366
+V 31 3819.807235 8861.255291 29889.517488 .309598
+* 2004 2 29 11 15 .00000000
+P 1 584.770643 -26515.209938 -915.000730 332.513925
+V 1 2310.910591 1367.142211 -32118.549731 .019349
+P 3 12532.508084 -14088.968423 18524.720890 89.759630
+V 3 4357.167192 23596.950278 15145.858770 .031811
+P 4 -23073.838474 2786.181111 -13126.452713 -76.331134
+V 4 13318.314330 -10073.407502 -25198.097074 -.091262
+P 5 -223.116057 16707.039779 -20796.549842 19.705156
+V 5 -24188.173837 -10083.897867 -7719.524027 .013358
+P 6 6560.723358 24644.692272 7347.559888 -1.311382
+V 6 -3036.998301 9307.962343 -29378.113290 -.009583
+P 7 -15230.599735 -7987.801430 -19882.511428 612.109679
+V 7 -730.354330 -26193.661629 10700.152159 -.077591
+P 8 -18920.832571 -3788.689886 18190.750761 355.809604
+V 8 19667.858713 -12706.732095 17314.314672 -.088135
+P 9 -10476.588936 19530.417340 -14776.053397 -32.281919
+V 9 -16541.272658 7988.664370 23332.748821 -.018670
+P 10 -17220.192781 5370.970934 19544.373285 40.148106
+V 10 -21199.897906 -12851.642927 -14837.987914 .005842
+P 11 7967.600801 -20513.449728 -14783.630229 99.768649
+V 11 17091.778146 -8877.182270 21672.400293 .025454
+P 13 -7586.273151 -23118.926715 10705.703344 -30.914861
+V 13 1570.794871 -13628.570145 -28133.352284 .002432
+P 14 14529.527269 6444.777308 -21225.873964 -18.153345
+V 14 133.840299 27032.610558 8291.200455 -.001085
+P 15 22877.647680 -1371.519082 13398.561249 232.728093
+V 15 -14492.112228 9622.288736 25063.949498 .051752
+P 16 20513.604982 -2244.642074 16797.965707 15.301345
+V 16 17806.267071 11620.661364 -20269.082055 -.003911
+P 17 -17521.941864 16284.045264 10861.823119 206.260085
+V 17 -13654.317982 3316.969826 -28152.592705 .195415
+P 18 17910.281382 17796.555020 8612.317441 -15.302666
+V 18 -10468.312632 -3615.987074 29133.145876 -.026381
+P 20 -4279.125724 -17611.893470 -19484.406990 -184.247710
+V 20 22248.898700 10526.504763 -14447.667566 .027735
+P 21 10983.537914 11259.514120 21392.021181 73.065465
+V 21 -23770.274243 13342.693147 4781.806132 .005169
+P 22 23496.481947 11849.134319 -3252.683950 -40.570051
+V 22 2209.466917 4675.836740 31445.771477 .089154
+P 24 -23597.973882 12221.923722 -859.116651 8.013834
+V 24 102.075872 -2828.717725 -31913.138454 .028656
+P 25 23005.729081 -7166.784694 -10777.139393 61.674013
+V 25 -9739.921246 10858.205846 -27117.982510 .005094
+P 26 -8456.770911 20996.513001 13116.433091 410.662037
+V 26 -2538.402092 -17243.342466 26074.939683 -.124071
+P 27 -8985.568952 -12880.332312 21897.615219 919.705069
+V 27 22129.790069 -14986.293445 -235.565993 .043882
+P 28 -23857.639929 -11913.243657 -1630.275584 21.777732
+V 28 -724.808708 -3381.601771 31434.742869 .016586
+P 29 -11116.547975 16690.085134 17652.870260 229.794432
+V 29 -2396.011298 -21783.610955 19432.295570 .033235
+P 30 14015.861809 18171.890825 -13688.629181 804.496012
+V 30 -16303.736504 -5429.945687 -24212.115207 .142881
+P 31 4962.756519 -24107.423435 9208.840864 38.389391
+V 31 4477.456787 12000.018091 28327.722375 .309584
+* 2004 2 29 11 30 .00000000
+P 1 803.479925 -26234.535366 -3789.443814 332.514084
+V 1 2620.411686 4858.298069 -31665.695089 .018998
+P 3 12983.309456 -11905.517224 19722.257011 89.762374
+V 3 5677.391492 24841.535718 11428.044243 .031782
+P 4 -21795.290617 1781.692605 -15276.508494 -76.339197
+V 4 15017.184689 -12262.271753 -22512.410545 -.091289
+P 5 -2451.780234 15840.472498 -21312.695978 19.706157
+V 5 -25264.303807 -9129.739815 -3733.419796 .013491
+P 6 6294.100315 25338.408755 4647.721846 -1.312177
+V 6 -2952.547431 6087.457818 -30532.261448 -.009691
+P 7 -15345.689584 -10279.827708 -18746.112757 612.103122
+V 7 -1792.388383 -24660.920651 14513.765671 -.077613
+P 8 -17110.454724 -5023.059474 19587.116013 355.801921
+V 8 20477.125935 -14711.133391 13669.110429 -.088197
+P 9 -11849.370118 20215.457977 -12555.798370 -32.284384
+V 9 -13948.419089 7157.642711 25938.373085 -.018577
+P 10 -19085.520362 4305.661272 18045.420548 40.148813
+V 10 -20164.256292 -10818.904094 -18423.142446 .005994
+P 11 9399.950608 -21273.451547 -12710.796009 99.770890
+V 11 14723.914236 -7941.031403 24324.367603 .025462
+P 13 -7470.600425 -24202.257536 8089.078018 -30.914450
+V 13 1067.262075 -10409.107251 -29930.370248 .002419
+P 14 14604.547593 8827.014147 -20298.325976 -18.153697
+V 14 1504.930879 25818.592063 12291.172074 -.001090
+P 15 21488.969868 -409.229183 15532.238884 232.732554
+V 15 -16289.193768 11778.232374 22281.222886 .052059
+P 16 22045.887911 -1288.700142 14835.180126 15.300857
+V 16 16164.185194 9635.739899 -23286.333401 -.003916
+P 17 -18611.607766 16546.359341 8238.884159 206.278324
+V 17 -10549.667148 2435.164723 -30049.664600 .195393
+P 18 16833.143301 17426.571880 11153.718554 -15.305537
+V 18 -13463.022569 -4531.835733 27262.202782 -.026384
+P 20 -2192.485692 -16688.763196 -20614.320545 -184.245330
+V 20 24058.124437 9925.786750 -10625.873124 .027740
+P 21 8859.336100 12524.579273 21636.742979 73.065694
+V 21 -23353.865913 14729.126545 646.381043 .005167
+P 22 23566.119437 12184.670769 -402.605070 -40.561664
+V 22 -702.418512 2836.950335 31797.825590 .089137
+P 24 -23457.199280 11882.797452 -3715.687481 8.016335
+V 24 2983.276209 -4763.798522 -31474.866699 .028847
+P 25 22047.321438 -6083.099071 -13116.021394 61.673273
+V 25 -11484.984235 13235.999425 -24779.593313 .005316
+P 26 -8733.949148 19321.345229 15338.064560 410.650957
+V 26 -3672.836123 -19914.517932 23220.941223 -.124077
+P 27 -7033.690843 -14276.682442 21695.813243 919.709108
+V 27 21180.194284 -15989.444984 -4245.707744 .043843
+P 28 -23789.093659 -12143.440818 1204.656482 21.779505
+V 28 2279.516291 -1795.123735 31474.899169 .016579
+P 29 -11394.014463 14645.365871 19247.718984 229.797213
+V 29 -3803.414233 -23574.957806 15960.085501 .033234
+P 30 12430.730908 17671.193688 -15745.971673 804.508405
+V 30 -18888.094875 -5627.560277 -21442.845953 .142868
+P 31 5407.981583 -22895.556367 11668.899506 38.416994
+V 31 5467.983553 14879.989467 26258.345931 .309576
+* 2004 2 29 11 45 .00000000
+P 1 1068.960039 -25644.350730 -6598.345331 332.516245
+V 1 3346.456739 8228.440674 -30663.811298 .018806
+P 3 13556.208936 -9632.725849 20575.938876 89.764748
+V 3 7056.516486 25578.926675 7516.001022 .031823
+P 4 -20384.952073 577.856489 -17167.039105 -76.347446
+V 4 16243.075241 -14488.186344 -19438.692262 -.091321
+P 5 -4756.814838 15070.406398 -21466.519202 19.706668
+V 5 -25878.413902 -7951.863822 320.841888 .013675
+P 6 6017.461947 25738.146026 1867.536493 -1.313547
+V 6 -3260.930811 2790.753147 -31160.596546 -.009821
+P 7 -15545.882739 -12413.336505 -17278.119953 612.095634
+V 7 -2609.905013 -22680.995846 18058.040989 -.077635
+P 8 -15250.328738 -6433.010849 20643.696865 355.794193
+V 8 20774.398763 -16592.828649 9774.294699 -.088262
+P 9 -12985.688347 20804.980775 -10120.077425 -32.287015
+V 9 -11301.727999 5866.834904 28113.167608 -.018448
+P 10 -20834.264231 3422.677422 16237.886939 40.150017
+V 10 -18612.741039 -8815.730706 -21685.847629 .006164
+P 11 10616.628126 -21930.199408 -10417.834691 99.773247
+V 11 12313.447148 -6584.252594 26556.891565 .025472
+P 13 -7381.558606 -24987.475510 5333.679948 -30.914069
+V 13 983.358490 -7020.137016 -31212.902762 .002409
+P 14 14794.051594 11077.048984 -19019.855203 -18.153980
+V 14 2664.211273 24102.648746 16078.191345 -.001096
+P 15 19960.160435 750.108567 17397.319363 232.737313
+V 15 -17601.290443 13985.537740 19103.345386 .052370
+P 16 23409.249171 -506.521926 12618.343744 15.300328
+V 16 14059.041508 7773.485258 -25906.541203 -.003926
+P 17 -19420.483475 16708.667255 5468.786829 206.295794
+V 17 -7431.711796 1097.124438 -31416.956097 .195374
+P 18 15489.285739 16994.172738 13505.573303 -15.307784
+V 18 -16379.476238 -5003.355717 24926.821593 -.026385
+P 20 39.027375 -15835.435489 -21391.640667 -184.242769
+V 20 25457.481514 8986.040076 -6623.391356 .027743
+P 21 6793.705619 13902.219619 21507.632695 73.066714
+V 21 -22475.874999 15831.294145 -3513.572160 .005169
+P 22 23364.047276 12370.713363 2454.441125 -40.553832
+V 22 -3813.995852 1361.772218 31600.741368 .089116
+P 24 -23069.894542 11355.247419 -6508.246425 8.019527
+V 24 5567.861653 -7004.805805 -30492.033663 .029209
+P 25 20952.036069 -4783.478661 -15224.122933 61.674003
+V 25 -12777.182606 15641.185588 -21996.733290 .005618
+P 26 -9126.114391 17425.281971 17283.793642 410.640493
+V 26 -5081.257853 -22140.183563 19953.581386 -.124089
+P 27 -5184.008948 -15747.699591 21134.925497 919.713240
+V 27 19868.500919 -16635.212483 -8204.573035 .043798
+P 28 -23442.965446 -12247.979187 4019.276837 21.780726
+V 28 5429.017094 -595.188110 30984.361671 .016572
+P 29 -11805.944701 12461.545639 20517.820900 229.800050
+V 29 -5369.980442 -24868.440508 12225.839033 .033229
+P 30 10623.248965 17170.918911 -17537.595861 804.521015
+V 30 -21231.217705 -5426.077247 -18315.576883 .142856
+P 31 5955.415504 -21439.288305 13921.185174 38.444964
+V 31 6738.773638 17418.281013 23717.357857 .309569
+* 2004 2 29 12 0 .00000000
+P 1 1417.397506 -24759.979240 -9292.908495 332.517361
+V 1 4457.086277 11380.069040 -29128.200098 .018624
+P 3 14252.708990 -7316.876057 21071.391338 89.767188
+V 3 8409.867089 25798.072660 3479.154351 .031920
+P 4 -18886.183647 -824.522911 -18765.331123 -76.356022
+V 4 16981.345171 -16658.811082 -16027.104091 -.091351
+P 5 -7095.017362 14413.508950 -21254.940897 19.707015
+V 5 -25997.167886 -6628.427922 4375.208339 .013972
+P 6 5695.347536 25841.299653 -944.997948 -1.313898
+V 6 -3961.555337 -487.471923 -31249.668042 -.009984
+P 7 -15806.210751 -14350.983819 -15505.612184 612.088457
+V 7 -3119.164416 -20320.707849 21270.999982 -.077658
+P 8 -13385.975010 -8003.306163 21341.003783 355.786355
+V 8 20575.218332 -18259.298494 5696.779499 -.088332
+P 9 -13884.799009 21258.097485 -7509.648517 -32.288811
+V 9 -8692.210944 4130.290540 29814.198623 -.018233
+P 10 -22421.240870 2715.168207 14153.263654 40.150088
+V 10 -16576.040633 -6934.362712 -24572.248975 .006228
+P 11 11617.660794 -22446.522538 -7944.333157 99.775240
+V 11 9945.830225 -4824.878329 28330.430348 .025476
+P 13 -7280.480846 -25463.789927 2486.836561 -30.913892
+V 13 1335.983553 -3561.477163 -31959.700672 .002397
+P 14 15075.423469 13152.083303 -17412.614715 -18.154003
+V 14 3534.490588 21940.285733 19586.597781 -.001103
+P 15 18335.902697 2106.850938 18960.569732 232.741529
+V 15 -18408.513427 16148.914067 15583.313092 .052692
+P 16 24564.043743 116.661471 10185.278839 15.300383
+V 16 11538.697429 6115.366705 -28084.463173 -.003936
+P 17 -19951.984249 16730.890242 2600.628857 206.313773
+V 17 -4402.537728 -671.968333 -32224.717244 .195355
+P 18 13890.023359 16538.983374 15627.765703 -15.309970
+V 18 -19123.211125 -5041.617071 22165.647273 -.026395
+P 20 2375.818736 -15079.352849 -21803.150859 -184.239887
+V 20 26389.278822 7777.394999 -2508.297694 .027741
+P 21 4826.011038 15363.476562 21005.737755 73.067186
+V 21 -21187.274565 16576.021295 -7625.601763 .005161
+P 22 22876.327384 12441.908367 5269.213216 -40.546103
+V 22 -7034.495047 289.944847 30860.122731 .089099
+P 24 -22465.983913 10614.944941 -9188.299841 8.021228
+V 24 7786.277730 -9478.324394 -28977.724841 .029352
+P 25 19761.562556 -3269.707085 -17063.517942 61.675767
+V 25 -13598.880518 17978.975367 -18816.969318 .005914
+P 26 -9654.395651 15351.377125 18919.180090 410.629847
+V 26 -6683.358319 -23857.662330 16335.466797 -.124108
+P 27 -3466.311259 -17258.608157 20222.453499 919.717322
+V 27 18258.783254 -16867.684526 -12047.998714 .043757
+P 28 -22810.225678 -12263.014110 6766.215380 21.782354
+V 28 8633.248136 190.693942 29973.228597 .016567
+P 29 -12362.763280 10184.870915 21442.380951 229.803174
+V 29 -7008.162562 -25635.040744 8292.048091 .033225
+P 30 8618.691386 16705.266152 -19033.604111 804.533432
+V 30 -23255.351506 -4866.191161 -14882.753226 .142844
+P 31 6627.388816 -19772.643519 15925.231923 38.472589
+V 31 8223.455868 19544.496931 20750.258941 .309561
+* 2004 2 29 12 15 .00000000
+P 1 1881.308638 -23605.197451 -11826.147333 332.520194
+V 1 5902.952912 14223.433263 -27083.762595 .018590
+P 3 15066.673496 -5004.421424 21200.579523 89.770997
+V 3 9652.958258 25506.191092 -611.250689 .032030
+P 4 -17342.856080 -2416.284855 -20043.462070 -76.364319
+V 4 17235.337007 -18681.378598 -12333.826678 -.091381
+P 5 -9420.926408 13879.160657 -20681.032164 19.708712
+V 5 -25603.882790 -5242.676846 8361.249849 .014276
+P 6 5293.142996 25653.774583 -3741.096861 -1.315628
+V 6 -5036.232409 -3653.398197 -30795.506397 -.010123
+P 7 -16096.566590 -16062.020657 -13460.932539 612.081546
+V 7 -3270.099175 -17659.275463 24097.812895 -.077683
+P 8 -11560.685200 -9710.622764 21665.764944 355.778142
+V 8 19913.418352 -19624.020684 1507.623466 -.088406
+P 9 -14554.064273 21536.019172 -4768.809731 -32.289360
+V 9 -6208.420376 1980.546925 31005.909995 -.018028
+P 10 -23804.823502 2168.269708 11827.593977 40.150920
+V 10 -14102.256918 -5260.054737 -27035.161635 .006236
+P 11 12410.619334 -22787.616605 -5333.080646 99.778025
+V 11 7702.693527 -2697.321396 29613.477534 .025483
+P 13 -7128.024587 -25629.498555 -402.621447 -30.913968
+V 13 2123.203289 -134.650152 -32158.646715 .002387
+P 14 15419.621390 15015.017374 -15504.454124 -18.153996
+V 14 4050.647063 19402.232080 22755.648838 -.001110
+P 15 16661.822533 3652.701849 20193.839246 232.745969
+V 15 -18709.884736 18172.005448 11780.921753 .052966
+P 16 25475.645806 602.528258 7577.553334 15.299878
+V 16 8666.501963 4732.953634 -29782.228203 -.003945
+P 17 -20218.536590 16576.106577 -314.300732 206.330994
+V 17 -1559.606473 -2827.329896 -32454.145562 .195336
+P 18 12054.995803 16098.837690 17483.982310 -15.312125
+V 18 -21604.262721 -4675.230051 19024.432492 -.026400
+P 20 4773.794829 -14441.175729 -21841.852730 -184.237200
+V 20 26811.554532 6379.928136 1649.491418 .027736
+P 21 2990.365392 16873.341718 20138.638702 73.067016
+V 21 -19553.421662 16902.528769 -11617.200765 .005153
+P 22 22097.440996 12435.681013 7993.396493 -40.538058
+V 22 -10268.181920 -356.586301 29590.903967 .089080
+P 24 -21681.018927 9644.720386 -11708.963398 8.024788
+V 24 9583.442444 -12099.166771 -26954.608584 .029608
+P 25 18518.340810 -1552.139794 -18600.933769 61.677875
+V 25 -13951.101737 20154.325209 -15295.993174 .006053
+P 26 -10332.246113 13147.467448 20215.724162 410.618336
+V 26 -8389.509201 -25023.680079 12435.728332 -.124133
+P 27 -1904.158609 -18770.203919 18971.665003 919.721838
+V 27 16424.953059 -16644.715063 -15712.153402 .043710
+P 28 -21890.138534 -12226.396072 9399.378728 21.784058
+V 28 11798.899617 552.449787 28459.719229 .016558
+P 29 -13066.829781 7863.392185 22006.357548 229.806127
+V 29 -8626.860294 -25863.781720 4223.916587 .033218
+P 30 6448.899116 16304.127621 -20209.032634 804.545957
+V 30 -24892.786596 -4002.602580 -11201.432334 .142835
+P 31 7439.741836 -17935.309740 17645.064661 38.500584
+V 31 9844.685500 21203.606469 17411.172202 .309554
+* 2004 2 29 12 30 .00000000
+P 1 2488.053521 -22211.380040 -14153.737590 332.524141
+V 1 7619.188150 16679.980103 -24564.676902 .018219
+P 3 15984.501970 -2740.358104 20961.912018 89.774420
+V 3 10704.968674 24728.316658 -4683.494162 .032000
+P 4 -15797.732518 -4180.033600 -20978.807193 -76.371907
+V 4 17026.243046 -20466.246303 -8420.264650 -.091407
+P 5 -11688.359419 13469.142963 -19753.999271 19.711139
+V 5 -24699.289875 -3879.678116 12211.241330 .014502
+P 6 4778.645031 25189.746619 -6472.054740 -1.317507
+V 6 -6449.727426 -6617.636287 -29803.863595 -.010287
+P 7 -16383.028878 -17523.263417 -11181.002787 612.074627
+V 7 -3028.286314 -14785.020906 26491.690029 -.077711
+P 8 -9813.928254 -11524.257302 21611.243187 355.770087
+V 8 18839.838599 -20610.080907 -2719.239963 -.088477
+P 9 -15008.573772 21603.691385 -1944.687898 -32.290885
+V 9 -3932.947186 -532.134537 31661.162594 -.017952
+P 10 -24948.433025 1759.881632 9300.842965 40.151480
+V 10 -11255.110684 -3867.856835 -29034.718164 .006326
+P 11 13010.129297 -22922.469804 -2629.316752 99.780371
+V 11 5658.670534 -251.199033 30383.176381 .025486
+P 13 -6885.869231 -25491.971938 -3285.190366 -30.913948
+V 13 3324.311323 3160.871977 -31806.916326 .002382
+P 14 15792.387748 16635.702528 -13328.428010 -18.154319
+V 14 4162.295477 16571.731039 25530.590856 -.001117
+P 15 14982.776400 5370.790113 21074.629235 232.752101
+V 15 -18523.432811 19961.255072 7761.802172 .053313
+P 16 26115.745604 978.645644 4839.785847 15.299511
+V 16 5519.042512 3685.112255 -30970.017880 -.003955
+P 17 -20240.975250 16212.250746 -3223.541026 206.348192
+V 17 1008.357704 -5306.166697 -32098.093310 .195317
+P 18 10011.611053 15708.246401 19042.322453 -15.315035
+V 18 -23740.502956 -3949.187444 15555.365504 -.026410
+P 20 7185.856392 -13934.028833 -21507.080539 -184.234318
+V 20 26699.693877 4880.466402 5779.358170 .027729
+P 21 1314.444374 18391.996550 18920.393481 73.067511
+V 21 -17651.546369 16765.105804 -15417.163970 .005149
+P 22 21030.573966 12390.608450 10580.425446 -40.529836
+V 22 -13417.960198 -574.216780 27816.941574 .089062
+P 24 -20754.772338 8435.483605 -14025.819248 8.027217
+V 24 10920.951347 -14773.542547 -24454.785214 .029816
+P 25 17263.876978 350.449692 -19808.438293 61.678586
+V 25 -13853.501248 22075.861596 -11496.603454 .006052
+P 26 -11164.781116 10864.349770 21151.378091 410.607323
+V 26 -10104.736332 -25615.910602 8328.320872 -.124158
+P 27 -514.111996 -20240.182761 17401.523854 919.725874
+V 27 14448.191084 -15939.846246 -19134.448185 .043659
+P 28 -20690.370381 -12176.087538 11874.665302 21.785326
+V 28 14833.119450 497.644840 26469.809144 .016551
+P 29 -13912.275117 5545.324481 22200.663728 229.809360
+V 29 -10134.895447 -25561.970005 88.406961 .033205
+P 30 4151.262423 15991.922591 -21044.228679 804.558904
+V 30 -26088.283259 -2901.830423 -7332.435896 .142829
+P 31 8400.982065 -15971.150120 19049.924906 38.528492
+V 31 11517.438964 22358.161705 13761.688187 .309541
+* 2004 2 29 12 45 .00000000
+P 1 3258.547791 -20616.352044 -16234.829802 332.524670
+V 1 9527.920888 18685.385248 -21613.879937 .017639
+P 3 16985.609556 -566.667892 20360.223901 89.776534
+V 3 11492.039690 23506.154550 -8666.701643 .031896
+P 4 -14290.893247 -6090.577576 -21554.469647 -76.380376
+V 4 16392.300659 -21930.386395 -4352.140085 -.091437
+P 5 -13851.990421 13177.625077 -18489.070801 19.711395
+V 5 -23301.660706 -2622.964214 15859.263025 .014686
+P 6 4123.544130 24471.107682 -9090.123762 -1.317655
+V 6 -8151.013548 -9298.658876 -28290.260692 -.010391
+P 7 -16629.332800 -18719.753473 -8706.568494 612.067805
+V 7 -2376.224689 -11791.787457 28414.537359 -.077744
+P 8 -8179.904714 -13407.141255 21177.432986 355.761913
+V 8 17420.325875 -21153.457971 -6908.392211 -.088543
+P 9 -15270.454835 21431.326580 913.561900 -32.293503
+V 9 -1939.052586 -3341.289616 31762.167436 -.017947
+P 10 -25821.841743 1461.716137 6616.214338 40.153083
+V 10 -8111.588387 -2819.786269 -30538.887529 .006268
+P 11 13437.108477 -22825.155161 120.068596 99.782515
+V 11 3878.503686 2450.456187 30625.770222 .025486
+P 13 -6518.375832 -25067.302784 -6111.531344 -30.913616
+V 13 4900.612229 6231.330611 -30910.986511 .002378
+P 14 16155.673920 17991.927048 -10922.212861 -18.154372
+V 14 3835.869175 13541.351838 27863.617891 -.001124
+P 15 13341.165205 7236.094393 21586.568521 232.756748
+V 15 -17885.521245 21429.732070 3596.288157 .053545
+P 16 26463.420008 1277.218048 2018.894887 15.299293
+V 16 2183.380146 3015.685188 -31626.623648 -.003967
+P 17 -20047.583698 15613.630204 -6074.527784 206.365214
+V 17 3225.141024 -8030.127017 -31161.445933 .195302
+P 18 7794.199519 15396.998069 20275.843335 -15.317642
+V 18 -25460.712570 -2923.087873 11816.295692 -.026415
+P 20 9563.508455 -13563.047324 -20804.512612 -184.231364
+V 20 26047.402807 3369.139588 9811.132623 .027722
+P 21 -181.449541 19876.268254 17371.357769 73.068078
+V 21 -15567.727207 16135.223768 -18956.980223 .005146
+P 22 19687.576183 12344.766984 12986.263046 -40.522301
+V 22 -16388.989441 -377.607938 25570.465258 .089045
+P 24 -19729.661170 6986.839433 -16097.750429 8.031035
+V 24 11778.651800 -17402.647297 -21519.430277 .029979
+P 25 16037.098015 2411.373791 -20664.025622 61.678523
+V 25 -13343.534711 23659.711991 -7487.473900 .005989
+P 26 -12148.483314 8553.861619 21710.900787 410.596272
+V 26 -11732.873457 -25633.573833 4090.251497 -.124185
+P 27 694.792998 -21624.621317 15536.533717 919.729664
+V 27 12414.040244 -14743.747905 -22254.539573 .043615
+P 28 -19226.800121 -12148.590184 14150.644065 21.787006
+V 28 17646.798059 51.051152 24036.788605 .016545
+P 29 -14885.150604 3277.415012 22022.282680 229.812423
+V 29 -11444.468363 -24754.799355 -4046.708437 .033189
+P 30 1767.505845 15786.648003 -21525.149989 804.571519
+V 30 -26801.054665 -1639.610535 -3339.471042 .142821
+P 31 9511.755317 -13926.549362 20114.882920 38.556342
+V 31 13152.665908 22989.750438 9869.501776 .309526
+* 2004 2 29 13 0 .00000000
+P 1 4206.227096 -18862.991778 -18032.807049 332.526397
+V 1 11541.353075 20192.040957 -18282.357369 .017217
+P 3 18043.191102 1479.106354 19406.643092 89.780100
+V 3 11950.267981 21896.295862 -12492.112181 .031850
+P 4 -12858.262524 -8115.675034 -21759.624244 -76.388556
+V 4 15387.332504 -23000.682210 -198.479262 -.091466
+P 5 -15868.909994 12991.452596 -16907.285382 19.711965
+V 5 -21446.283199 -1551.203752 19242.306506 .014891
+P 6 3304.764217 23526.613856 -11549.387502 -1.320215
+V 6 -10075.190811 -11625.950440 -26279.830696 -.010518
+P 7 -16798.423415 -19645.087632 -6081.395705 612.060621
+V 7 -1313.889376 -8775.232725 29837.378596 -.077776
+P 8 -6686.310514 -15317.131842 20371.128173 355.753687
+V 8 15733.090709 -21205.832615 -10984.406643 -.088613
+P 9 -15367.891540 20995.766152 3755.634188 -32.294912
+V 9 -287.588404 -6366.506958 31301.263153 -.017817
+P 10 -26402.243625 1240.576663 3819.427449 40.154181
+V 10 -4759.130234 -2162.582775 -31523.860514 .006180
+P 11 13717.761035 -22475.936675 2867.367841 99.784588
+V 11 2414.547762 5333.529028 30336.876726 .025489
+P 13 -5994.144757 -24379.635035 -8833.302305 -30.913208
+V 13 6796.894431 8992.114427 -29486.495163 .002375
+P 14 16469.222814 19070.098363 -8327.443446 -18.154497
+V 14 3056.034796 10409.449584 29714.700527 -.001133
+P 15 11775.342887 9216.204859 21719.780049 232.761051
+V 15 -16849.419394 22500.757227 -641.865043 .053706
+P 16 26505.934753 1533.651903 -836.695995 15.298756
+V 16 -1246.129734 2751.746600 -31739.866597 -.003977
+P 17 -19672.817954 14762.186449 -8815.680060 206.383297
+V 17 5030.274101 -10908.506687 -29661.141436 .195286
+P 18 5442.907782 15188.945807 21163.031029 -15.319775
+V 18 -26707.273885 -1668.799579 7869.862289 -.026424
+P 20 11858.527617 -13325.239793 -19746.079463 -184.229003
+V 20 24867.001222 1935.809983 13676.236617 .027712
+P 21 -1485.031899 21281.246670 15517.879689 73.068631
+V 21 -13393.466501 15002.984686 -22172.225422 .005132
+P 22 18088.599775 12334.118057 15170.124986 -40.514236
+V 22 -19092.181400 201.090482 22891.407094 .089024
+P 24 -18649.059832 5307.366250 -17887.733556 8.033642
+V 24 12155.501222 -19886.533683 -18198.223230 .029960
+P 25 14872.816383 4596.868801 -21152.082453 61.679018
+V 25 -12474.849397 24833.062591 -3341.739605 .006066
+P 26 -13271.282214 6266.950750 21886.052474 410.584866
+V 26 -13180.692845 -25097.087566 -200.194579 -.124213
+P 27 1721.298075 -22879.562366 13406.487579 919.732368
+V 27 10409.242289 -13065.092763 -25015.418560 .043569
+P 28 -17523.039562 -12177.438729 16189.190340 21.788307
+V 28 20157.708160 -746.393006 21200.751239 .016534
+P 29 -15963.883031 1103.374412 21474.298241 229.815741
+V 29 -12474.481801 -23484.336614 -8113.788077 .033171
+P 30 -657.683021 15699.178537 -21643.583926 804.584318
+V 30 -27006.242621 -297.969938 711.775248 .142814
+P 31 10764.655247 -11848.666247 20821.319523 38.584389
+V 31 14661.124389 23099.614508 5806.888056 .309508
+* 2004 2 29 13 15 .00000000
+P 1 5336.308940 -16997.638616 -19515.970520 332.528924
+V 1 13565.271737 21170.888430 -14628.251901 .016697
+P 3 19125.236399 3365.098948 18118.345874 89.782343
+V 3 12028.277064 19967.877786 -16094.269721 .031767
+P 4 -11530.294851 -10217.062736 -21589.765513 -76.396643
+V 4 14078.672167 -23616.901540 3969.498824 -.091497
+P 5 -17700.108984 12890.729751 -15035.180242 19.712848
+V 5 -19184.295500 -735.026461 22301.369691 .015129
+P 6 2305.602214 22390.767841 -13806.611062 -1.321031
+V 6 -12146.000941 -13542.737143 -23806.951315 -.010477
+P 7 -16854.026507 -20301.415320 -3351.439724 612.053017
+V 7 141.430593 -5829.155915 30740.555628 -.077799
+P 8 -5353.364040 -17208.529139 19205.854146 355.745156
+V 8 13865.520221 -20736.785658 -14873.376183 -.088671
+P 9 -15333.885271 20281.608650 6531.012057 -32.296014
+V 9 975.641042 -9516.355898 30281.488391 -.017757
+P 10 -26675.055005 1059.815017 957.962158 40.153416
+V 10 -1292.460010 -1925.968721 -31974.363250 .005977
+P 11 13882.368680 -21862.144509 5564.904948 99.787037
+V 11 1304.773950 8315.604375 29521.578345 .025493
+P 13 -5287.411919 -23460.199006 -11403.970640 -30.912957
+V 13 8943.534504 11370.836677 -27557.955292 .002378
+P 14 16692.246609 19865.595983 -5588.981026 -18.154659
+V 14 1826.385294 7276.413557 31052.269577 -.001140
+P 15 10318.186277 11272.395981 21471.126384 232.767218
+V 15 -15483.158052 23111.166480 -4876.886360 .053869
+P 16 26239.246280 1784.992016 -3677.884227 15.298063
+V 16 -4671.312950 2902.504614 -31306.868635 -.003986
+P 17 -19155.770213 13648.439321 -11397.471932 206.400520
+V 17 6381.553282 -13842.054724 -27625.820033 .195272
+P 18 3002.371007 15101.026483 21688.188955 -15.322105
+V 18 -27438.381836 -267.644342 3782.533158 -.026429
+P 20 14024.624511 -13209.673148 -18349.769764 -184.226656
+V 20 23189.023785 666.511414 17308.807400 .027707
+P 21 -2592.359841 22561.998514 13391.870556 73.069066
+V 21 -11222.001854 13377.824771 -25003.917797 .005117
+P 22 16261.433005 12390.994208 17095.138794 -40.505861
+V 22 -21447.446335 1113.677131 19826.628269 .089006
+P 24 -17555.570447 3414.539320 -19363.570350 8.037728
+V 24 12069.652018 -22128.108328 -14548.560333 .029915
+P 25 13800.372342 6867.234260 -21263.720523 61.679670
+V 25 -11314.960577 25537.273026 864.557672 .006110
+P 26 -14512.997128 4051.816915 21675.631959 410.573493
+V 26 -14361.820958 -24046.822915 -4465.166967 -.124237
+P 27 2571.881430 -23962.650921 11046.115891 919.736414
+V 27 8518.416714 -10930.797541 -27364.570843 .043534
+P 28 -15609.681621 -12291.814339 17956.072662 21.789764
+V 28 22293.397861 -1839.193474 18008.018081 .016529
+P 29 -17120.018823 -937.574251 20565.841143 229.818377
+V 29 -13153.624487 -21807.926922 -12046.252285 .033152
+P 30 -3078.132808 15732.840943 -21397.284021 804.597156
+V 30 -26695.837694 1037.925174 4754.564998 .142808
+P 31 12144.379373 -9783.669208 21157.265521 38.612157
+V 31 15957.216256 22708.408354 1649.071975 .309490
+* 2004 2 29 13 30 .00000000
+P 1 6645.384969 -15068.368605 -20658.137248 332.529166
+V 1 15502.854766 21612.511029 -10715.806288 .016125
+P 3 20195.754267 5066.127838 16518.209397 89.784221
+V 3 11689.272881 17799.791342 -19412.117958 .031682
+P 4 -10330.873226 -12351.733078 -21046.851753 -76.404871
+V 4 12544.540982 -23734.224270 8079.579597 -.091528
+P 5 -19311.829477 12849.675837 -12904.382408 19.713501
+V 5 -16580.909201 -234.125412 24982.522049 .015450
+P 6 1116.618041 21102.479260 -15822.048714 -1.323148
+V 6 -14278.839604 -15008.175124 -20914.668997 -.010439
+P 7 -16762.173834 -20699.112296 -564.005133 612.046479
+V 7 1955.974379 -3042.005356 31113.726746 -.077818
+P 8 -4193.139733 -19033.759306 17701.661880 355.736981
+V 8 11910.577007 -19735.275072 -18504.449440 -.088715
+P 9 -15204.803150 19282.047914 9189.946679 -32.298636
+V 9 1821.932600 -12691.884193 28716.903665 -.017751
+P 10 -26634.417078 880.916685 -1919.716276 40.154625
+V 10 2189.843946 -2121.578356 -31883.762857 .005946
+P 11 13963.927928 -20978.783648 8165.884317 99.789107
+V 11 571.356543 11309.087446 28194.326215 .025498
+P 13 -4379.230153 -22346.089944 -13779.593871 -30.913005
+V 13 11259.151984 13309.942398 -25158.330436 .002378
+P 14 16785.133315 20382.782805 -2754.127015 -18.154852
+V 14 169.385747 4240.852096 31853.742771 -.001146
+P 15 8995.887317 13360.971046 20844.324309 232.769961
+V 15 -13866.748284 23214.061491 -9032.486069 .054068
+P 16 25668.182326 2068.290179 -6455.731615 15.297764
+V 16 -7993.816918 3458.898590 -30334.165988 -.003994
+P 17 -18538.442815 12272.068863 -13773.456379 206.418353
+V 17 7256.715701 -16727.187134 -25095.114596 .195261
+P 18 520.211354 15142.551330 21841.736112 -15.324171
+V 18 -27629.686088 1192.799984 -376.437794 -.026437
+P 20 16019.039567 -13197.972582 -16639.336665 -184.224636
+V 20 21061.140972 -359.969474 20646.785741 .027696
+P 21 -3507.817561 23675.309450 11030.256877 73.069554
+V 21 -9144.507606 11288.424183 -27399.794416 .005100
+P 22 14240.557624 12542.741633 18728.929459 -40.497832
+V 22 -23386.574047 2297.929461 16429.062438 .088978
+P 24 -16489.321376 1334.295060 -20498.538866 8.040855
+V 24 11557.739175 -24037.084847 -10634.559032 .029776
+P 25 12842.513812 9178.226960 -20996.964596 61.680151
+V 25 -9942.315750 25730.397747 5054.116134 .006225
+P 26 -15846.116380 1952.202619 21085.364553 410.562178
+V 26 -15200.268821 -22541.056924 -8628.848100 -.124262
+P 27 3260.415273 -24834.761395 8494.627980 919.740568
+V 27 6820.698431 -8385.576026 -29255.183502 .043504
+P 28 -13523.302773 -12515.326608 19421.485015 21.791545
+V 28 23993.743714 -3159.425263 14510.500156 .016524
+P 29 -18319.231111 -2811.978740 19311.951960 229.821387
+V 29 -13423.113862 -19796.071675 -15779.503361 .033128
+P 30 -5447.724207 15883.278288 -20790.021996 804.610286
+V 30 -25879.011508 2283.042495 8722.058324 .142803
+P 31 13628.223488 -7775.031709 21117.591817 38.640094
+V 31 16962.641608 21855.118507 -2527.449926 .309474
+* 2004 2 29 13 45 .00000000
+P 1 8121.363122 -13123.207048 -21439.136092 332.528396
+V 1 17258.612506 21527.435918 -6614.163305 .015724
+P 3 21216.155663 6564.433777 14634.370592 89.787347
+V 3 10912.512101 15477.554132 -22389.982829 .031706
+P 4 -9276.464891 -14473.414443 -20139.338123 -76.412875
+V 4 10870.965833 -23325.214008 12059.818631 -.091559
+P 5 -20676.730372 12837.725549 -10551.106152 19.716602
+V 5 -13713.077482 -94.753287 27237.918859 .015927
+P 6 -263.764345 19703.556229 -17560.190626 -1.321532
+V 6 -16384.143120 -15998.897472 -17653.923072 -.010293
+P 7 -16492.624262 -20856.153064 2233.085846 612.039986
+V 7 4080.968715 -493.694687 30955.687267 -.077839
+P 8 -3209.238732 -20745.155203 15884.785000 355.728458
+V 8 9962.937555 -18210.312939 -21811.329928 -.088755
+P 9 -15018.772632 17999.375903 11684.453073 -32.301297
+V 9 2241.031148 -15790.545300 26632.625194 -.017586
+P 10 -26283.384542 665.150795 -4764.936164 40.155847
+V 10 5588.874534 -2742.574310 -31254.141170 .005790
+P 11 13996.688632 -19828.851268 10625.222703 99.791582
+V 11 219.899581 14224.534215 26378.659938 .025500
+P 13 -3258.390603 -21078.836731 -15919.556149 -30.913308
+V 13 13653.713953 14768.750077 -22328.479171 .002379
+P 14 16711.114890 20634.675836 128.203362 -18.154865
+V 14 -1874.423367 1395.864012 32105.886048 -.001153
+P 15 7827.020210 15434.826114 19849.921995 232.774330
+V 15 -12088.873983 22780.915761 -13033.405822 .054549
+P 16 24806.292688 2418.969696 -9122.310590 15.297199
+V 16 -11118.776118 4393.912620 -28837.658468 -.004003
+P 17 -17863.912900 10642.107634 -15901.210223 206.436124
+V 17 7654.184023 -19460.392683 -22118.613001 .195250
+P 18 -1954.583136 15314.797261 21620.408215 -15.326803
+V 18 -27275.295585 2622.163967 -4536.123849 -.026453
+P 20 17804.012398 -13265.117973 -14643.908370 -184.222174
+V 20 18546.437525 -1075.241387 23632.953084 .027688
+P 21 -4243.761089 24581.381690 8474.322570 73.070128
+V 21 -7246.350713 8781.810116 -29315.467314 .005085
+P 22 12065.967135 12810.569082 20044.124888 -40.489900
+V 22 -24855.651013 3680.142746 12756.793597 .088952
+P 24 -15486.365412 -899.751927 -21271.946305 8.044373
+V 24 10673.383039 -25533.718453 -6525.870147 .029561
+P 25 12014.563048 11482.650535 -20356.790140 61.679870
+V 25 -8442.881880 25388.993012 9150.058478 .006391
+P 26 -17236.871511 5.899595 20127.652968 410.550881
+V 26 -15633.436725 -20653.249356 -12618.894251 -.124285
+P 27 3807.523784 -25461.552298 5795.144029 919.744367
+V 27 5386.466058 -5490.772702 -30647.363265 .043472
+P 28 -11305.254189 -12865.007392 20560.518999 21.793073
+V 28 25213.080519 -4629.302715 10765.001099 .016518
+P 29 -19522.554877 -4493.228723 17733.361783 229.825075
+V 29 -13239.007360 -17529.847551 -19251.833239 .033106
+P 30 -7721.928624 16138.610155 -19831.553577 804.622925
+V 30 -24581.846258 3355.768105 12548.279364 .142801
+P 31 15186.890438 -5861.960376 20704.048504 38.668144
+V 31 17609.704200 20595.208029 -6646.577485 .309460
+* 2004 2 29 14 0 .00000000
+P 1 9743.764413 -11208.350353 -21845.190283 332.528498
+V 1 18742.299046 20945.626312 -2396.050031 .015434
+P 3 22146.740670 7850.127689 12499.702174 89.790749
+V 3 9694.136856 13089.974971 -24978.431050 .031688
+P 4 -8375.571016 -16534.200432 -18882.093515 -76.421747
+V 4 9148.349844 -22381.140966 15839.854246 -.091593
+P 5 -21774.820984 12820.832913 -8015.562315 19.718560
+V 5 -10666.687009 -347.718211 29026.741477 .016213
+P 6 -1828.972288 18237.089363 -18990.431337 -1.323656
+V 6 -18371.007468 -16509.847974 -14082.585999 -.010229
+P 7 -16020.128827 -20797.214704 4992.301880 612.032923
+V 7 6454.621716 1747.165562 30274.040154 -.077861
+P 8 -2396.812452 -22296.760210 13787.165332 355.720421
+V 8 8115.040108 -16190.800212 -24733.691739 -.088776
+P 9 -14813.990255 16445.119126 13969.294939 -32.302385
+V 9 2241.677993 -18710.382177 24064.545134 -.017333
+P 10 -25633.795320 375.223959 -7529.604331 40.156124
+V 10 8808.937865 -3763.956674 -30096.219956 .005583
+P 11 14014.652933 -18423.349990 12900.347912 99.793667
+V 11 239.333458 16974.056302 24106.750638 .025503
+P 13 -1922.048768 -19702.815183 -17787.249215 -30.912903
+V 13 16031.972825 15724.853391 -19116.477968 .002382
+P 14 16437.831414 20642.290728 3008.332293 -18.155109
+V 14 -4247.931226 -1174.457867 31805.004710 -.001159
+P 15 6821.924809 17445.170485 18505.135894 232.780650
+V 15 -10243.196910 21802.931732 -16806.978247 .054954
+P 16 23675.374315 2869.250224 -11631.538379 15.296590
+V 16 -13958.360112 5663.598649 -26842.391415 -.004009
+P 17 -17174.473184 8776.736299 -17743.172698 206.453413
+V 17 7592.852213 -21942.605536 -18754.541444 .195237
+P 18 -4373.339530 15610.917287 21027.355936 -15.329757
+V 18 -26388.098367 3930.891183 -8625.096199 -.026461
+P 20 19348.069505 -13380.506932 -12397.508240 -184.219519
+V 20 15721.109094 -1424.066551 26215.902013 .027677
+P 21 -4819.834819 25245.415384 5768.954060 73.070612
+V 21 -5603.567781 5921.678653 -30715.419487 .005072
+P 22 9781.791456 13208.644431 21018.776035 -40.481713
+V 22 -25816.934075 5178.077257 8872.084770 .088929
+P 24 -14577.246290 -3247.411693 -21669.567197 8.047800
+V 24 9484.957809 -26552.151752 -2296.323248 .029275
+P 25 11323.905976 13732.072194 -19355.009785 61.681487
+V 25 -6906.416024 24509.125030 13077.598359 .006618
+P 26 -18646.554168 -1756.474781 18821.206725 410.539438
+V 26 -15614.487702 -18468.793900 -16367.690490 -.124306
+P 27 4239.656031 -25814.883358 2994.018546 919.748215
+V 27 4274.303754 -2322.474149 -31509.321687 .043440
+P 28 -9000.282961 -13350.552939 21353.570538 21.795155
+V 28 25921.836622 -6164.112097 6832.460069 .016508
+P 29 -20687.807676 -5962.376936 15856.191856 229.828499
+V 29 -12574.003095 -15097.948553 -22405.316066 .033080
+P 30 -9859.295418 16479.884748 -18537.496784 804.635689
+V 30 -22846.464456 4181.090769 16169.094630 .142796
+P 31 16785.575129 -4078.021312 19925.156373 38.696015
+V 31 17844.122164 18998.087990 -10634.209958 .309444
+* 2004 2 29 14 15 .00000000
+P 1 11484.364115 -9366.469464 -21869.177522 332.529871
+V 1 19872.626856 19915.182546 1863.622053 .015243
+P 3 22948.231242 8921.333398 10151.217253 89.793210
+V 3 8047.355358 10725.741220 -27134.997018 .031558
+P 4 -7628.495795 -18486.266237 -17296.198164 -76.429999
+V 4 7467.826710 -20912.586246 19352.240653 -.091626
+P 5 -22594.124181 12762.929687 -5341.287235 19.719364
+V 5 -7533.374089 -1006.968319 30316.039440 .016460
+P 6 -3564.330171 16745.794473 -20087.644401 -1.323423
+V 6 -20150.885018 -16554.361658 -10264.342528 -.010302
+P 7 -15325.495896 -20552.553454 7667.175723 612.026138
+V 7 9004.553957 3625.537941 29084.745016 -.077883
+P 8 -1742.939284 -23646.079051 11445.856518 355.712555
+V 8 6453.219447 -13724.517827 -27218.466364 -.088789
+P 9 -14627.019099 14639.794309 16002.929758 -32.302398
+V 9 1851.308429 -21354.270644 21058.727740 -.017085
+P 10 -24705.826649 -23.121370 -10166.974141 40.157240
+V 10 11760.963135 -5143.470158 -28429.177047 .005388
+P 11 14050.095228 -16780.996532 14951.948838 99.795974
+V 11 602.483118 19474.662058 21418.779337 .025504
+P 13 -376.030939 -18263.565963 -19350.687327 -30.912650
+V 13 18297.109006 16174.832257 -15576.832825 .002384
+P 14 15938.730170 20433.687206 5836.680107 -18.155542
+V 14 -6879.607938 -3398.155734 30956.963415 -.001166
+P 15 5982.434032 19343.332809 16833.548565 232.785826
+V 15 -8424.434789 20291.578079 -20284.650035 .055157
+P 16 22304.687621 3446.695414 -13939.984017 15.295777
+V 16 -16435.064507 7208.774268 -24382.170492 -.004017
+P 17 -16509.834344 6702.695422 -19267.355286 206.470892
+V 17 7110.939970 -24083.326651 -15068.231557 .195228
+P 18 -6689.377994 16016.176581 20072.135784 -15.331929
+V 18 -24999.373666 5033.847373 -12572.636307 -.026469
+P 20 20627.081536 -13509.244484 -9938.491160 -184.216757
+V 20 12671.659679 -1366.622579 28350.924172 .027664
+P 21 -5261.986974 25639.006077 2961.804289 73.071003
+V 21 -4279.723335 2785.999492 -31573.805155 .005058
+P 22 7434.779679 13743.470703 21636.687960 -40.473650
+V 22 -26250.121873 6704.201809 4840.372031 .088902
+P 24 -13785.795915 -5663.299444 -21683.953393 8.049644
+V 24 8072.713397 -27043.214866 1977.561001 .028903
+P 25 10769.824863 15878.592481 -18010.012681 61.682250
+V 25 -5422.595323 23106.536390 16765.634072 .006771
+P 26 -20033.015478 -3312.391125 17190.567643 410.528344
+V 26 -15114.021040 -16081.406500 -19813.403302 -.124325
+P 27 4587.901493 -25874.031221 140.060598 919.752056
+V 27 3528.344432 1031.070247 -31818.474335 .043413
+P 28 -6655.030622 -13973.842770 21786.675765 21.796491
+V 28 26107.617031 -7675.412598 2777.134556 .016500
+P 29 -21771.146940 -7208.680642 13711.573726 229.831509
+V 29 -11418.664464 -12593.445232 -25186.681332 .033054
+P 30 -11822.834549 16881.808927 -16929.121825 804.649004
+V 30 -20729.580370 4693.575059 19523.197619 .142790
+P 31 18385.275762 -2450.019380 18795.958909 38.723917
+V 31 17627.228257 17144.048358 -14419.736076 .309417
+* 2004 2 29 14 30 .00000000
+P 1 13308.152416 -7635.163905 -21510.761584 332.530697
+V 1 20580.626219 18500.305697 6089.206655 .015075
+P 3 23583.290845 9784.024622 7629.414617 89.796117
+V 3 6001.973024 8470.058527 -28824.773972 .031489
+P 4 -7027.448002 -20283.605366 -15408.621471 -76.438110
+V 4 5917.543617 -18949.285131 22533.771311 -.091653
+P 5 -23131.040452 12627.482010 -2574.401210 19.720374
+V 5 -4407.083672 -2068.833586 31081.449942 .016807
+P 6 -5447.435375 15270.382247 -20832.649978 -1.323539
+V 6 -21641.199618 -16163.486621 -6267.436348 -.010461
+P 7 -14396.421815 -20156.701721 10213.032391 612.018829
+V 7 11650.560900 5101.670738 27411.572953 -.077910
+P 8 -1227.338637 -24755.701224 8902.319188 355.704825
+V 8 5054.104002 -10876.314381 -29220.959138 -.088799
+P 9 -14491.152184 12612.287295 17748.385143 -32.305152
+V 9 1114.891786 -23634.013227 17670.488177 -.016986
+P 10 -23527.253982 -559.621257 -12632.395613 40.157447
+V 10 14365.673813 -6823.207758 -26280.367716 .005125
+P 11 14132.162597 -14927.637604 16744.662744 99.798474
+V 11 1267.281218 21651.399324 18362.166713 .025504
+P 13 1365.191358 -16806.080656 -20583.046644 -30.912792
+V 13 20354.442962 16134.247652 -11769.591065 .002385
+P 14 15194.245200 20042.753970 8564.620167 -18.155618
+V 14 -9686.214897 -5218.048738 29577.037566 -.001172
+P 15 5301.957957 21082.577298 14864.672810 232.791552
+V 15 -6724.386792 18278.275081 -23403.421976 .055328
+P 16 20729.893139 4172.941484 -16007.633286 15.295154
+V 16 -18484.613870 8957.332932 -21499.013192 -.004027
+P 17 -15905.469589 4454.345122 -20447.906501 206.488586
+V 17 6263.995748 -25804.297385 -11130.442497 .195222
+P 18 -8859.623051 16508.508352 18770.590691 -15.334344
+V 18 -23157.699415 5853.794709 -16309.971143 -.026476
+P 20 21625.049604 -13613.610575 -7308.904292 -184.214287
+V 20 9491.701876 -880.179025 30000.799904 .027648
+P 21 -5601.224960 25741.297972 102.394639 73.071511
+V 21 -3323.293723 -535.996017 -31875.025262 .005042
+P 22 5072.696991 14413.562905 21887.659259 -40.465852
+V 22 -26152.986742 8169.114469 729.236411 .088871
+P 24 -13128.215285 -8098.438369 -21314.605702 8.051648
+V 24 6525.372125 -26976.545879 6218.150597 .028577
+P 25 10343.678816 17876.591991 -16346.365604 61.683795
+V 25 -4077.187442 21215.971520 20148.219156 .006834
+P 26 -21352.283185 -4647.986500 15265.549909 410.517919
+V 26 -14121.013182 -13589.316165 -22900.826351 -.124351
+P 27 4886.589096 -25626.644397 -2716.338812 919.755749
+V 27 3176.138765 4472.648272 -31562.395478 .043387
+P 28 -4316.460683 -14728.754870 21851.770622 21.798146
+V 28 25775.691845 -9074.402057 -1334.277315 .016491
+P 29 -22728.709626 -8229.842597 11335.191910 229.835066
+V 29 -9782.018713 -10110.365787 -27548.160794 .033023
+P 30 -13581.244289 17313.732258 -15033.052407 804.661143
+V 30 -18300.513501 4840.015870 22553.091180 .142785
+P 31 19944.272447 -997.172342 17337.646769 38.752159
+V 31 16937.478661 15120.801763 -17937.371823 .309385
+* 2004 2 29 14 45 .00000000
+P 1 15174.575997 -6045.629154 -20776.392571 332.533035
+V 1 20812.506394 16778.610540 10205.785837 .015047
+P 3 24017.973660 10451.566563 4977.576966 89.799243
+V 3 3603.302613 6401.466781 -30020.868352 .031446
+P 4 -6556.974546 -21883.717477 -13251.782415 -76.446304
+V 4 4579.026211 -16539.198282 25326.758852 -.091677
+P 5 -23390.395448 12379.084429 237.191442 19.722399
+V 5 -1380.503874 -3511.966027 31307.776537 .017179
+P 6 -7448.850041 13848.022126 -21212.564869 -1.324472
+V 6 -22768.723967 -15384.576571 -2163.317402 -.010769
+P 7 -13228.062138 -19647.037443 12587.664984 612.011402
+V 7 14307.596875 6152.217857 25285.492216 -.077945
+P 8 -823.391238 -25594.728022 6201.624670 355.696246
+V 8 3981.438769 -7725.570741 -30705.760124 -.088816
+P 9 -14434.917464 10398.878057 19174.038857 -32.306931
+V 9 92.955875 -25474.075872 13963.178599 -.016878
+P 10 -22132.439616 -1258.174481 -14884.034583 40.158587
+V 10 16556.407550 -8731.762865 -23684.937545 .004822
+P 11 14285.611539 -12895.396618 18247.687238 99.801047
+V 11 2178.572977 23440.174912 14990.673590 .025501
+P 13 3278.858957 -15373.120607 -21463.120657 -30.912340
+V 13 22115.078748 15636.920608 -7759.365584 .002385
+P 14 14192.711774 19507.781558 11145.313026 -18.156181
+V 14 -12575.965956 -6593.788375 27689.602033 -.001180
+P 15 4765.921275 22619.853482 12633.391632 232.797147
+V 15 -5228.085257 15813.237327 -26107.161378 .055447
+P 16 18991.748820 5062.658074 -17798.597233 15.295005
+V 16 -20058.359887 10827.079138 -18242.444648 -.004030
+P 17 -15391.172760 2072.420514 -21265.521926 206.506369
+V 17 5122.172496 -27042.562317 -7015.611822 .195209
+P 18 -10846.085839 17059.371131 17144.619190 -15.337065
+V 18 -20927.185548 6324.592962 -19771.509752 -.026490
+P 20 22334.590127 -13654.649483 -4553.781764 -184.211775
+V 20 6278.478034 39.879667 31136.474261 .027635
+P 21 -5872.163547 25539.843202 -2758.824033 73.071737
+V 21 -2765.696914 -3947.311477 -31614.057615 .005025
+P 22 2742.694164 15209.436092 21767.628387 -40.457826
+V 22 -25541.351703 9485.017763 -3392.635430 .088841
+P 24 -12612.479826 -10502.018727 -20568.000920 8.053847
+V 24 4936.349858 -26341.928539 10348.327787 .028314
+P 25 10029.420491 19684.381017 -14394.288902 61.682375
+V 25 -2948.436964 18889.704498 23165.866759 .006863
+P 26 -22560.230417 -5758.297182 13080.613166 410.506610
+V 26 -12643.026695 -11091.417877 -25582.024845 -.124379
+P 27 5171.723112 -25069.386262 -5524.156538 919.759975
+V 27 3227.181215 7899.795401 -30739.567973 .043364
+P 28 -2030.270010 -15601.287062 21546.868766 21.799511
+V 28 24948.864312 -10275.336100 -5433.574579 .016478
+P 29 -23518.276292 -9031.940510 8766.751888 229.837298
+V 29 -7691.497232 -7740.212321 -29448.299681 .032987
+P 30 -15109.938071 17740.851835 -12880.879145 804.674119
+V 30 -15638.723208 4581.673768 25206.056330 .142776
+P 31 21419.708706 269.392683 15577.069849 38.780949
+V 31 15771.226333 13019.804731 -21127.316864 .309356
+* 2004 2 29 15 0 .00000000
+P 1 17039.010075 -4621.590875 -19679.176238 332.533573
+V 1 20531.897877 14837.903503 14140.610409 .014932
+P 3 24223.049558 10943.983200 2241.034359 89.800475
+V 3 910.503526 4588.946190 -30704.718860 .031333
+P 4 -6194.711667 -23249.178587 -10862.998059 -76.454814
+V 4 3523.780755 -13746.833423 27680.236031 -.091703
+P 5 -23385.167720 11985.024730 3044.646421 19.724512
+V 5 1458.469168 -5298.011706 30989.369748 .017443
+P 6 -9533.080605 12510.963442 -21221.027709 -1.327323
+V 6 -23472.574240 -14279.216939 1974.773914 -.011068
+P 7 -11823.328441 -19062.279928 14751.952927 612.004879
+V 7 16888.871255 6770.752166 22744.006166 -.077977
+P 8 -499.420781 -26139.943083 3391.587014 355.688016
+V 8 3283.476311 -4363.057718 -31647.422530 -.088823
+P 9 -14480.794132 8041.952761 20254.277891 -32.307654
+V 9 -1141.114522 -26814.775772 10006.722929 -.016688
+P 10 -20561.087011 -2135.743814 -16883.552648 40.159504
+V 10 18281.487262 -10786.889403 -20685.334963 .004439
+P 11 14529.730954 -10721.585382 19435.306297 99.803161
+V 11 3270.435566 24790.140697 11363.393902 .025498
+P 13 5334.602371 -14003.631979 -21975.684328 -30.911967
+V 13 23499.343327 14733.521776 -3614.284585 .002386
+P 14 12930.980689 18869.879553 13534.505562 -18.156700
+V 14 -15452.014606 -7503.251814 25327.666145 -.001185
+P 15 4352.534860 23917.405632 10179.287345 232.801682
+V 15 -4010.247138 12963.524459 -28347.746702 .055532
+P 16 17134.617938 6122.783858 -19281.750691 15.295028
+V 16 -21125.077317 12728.979032 -14668.649011 -.004032
+P 17 -14989.888545 -397.456306 -21707.696293 206.523937
+V 17 3766.933370 -27752.800033 -2800.106099 .195197
+P 18 -12617.159087 17634.876906 15221.834146 -15.339336
+V 18 -18385.090848 6393.996148 -22896.056973 -.026498
+P 20 22757.098868 -13593.820123 -1720.384172 -184.209616
+V 20 3129.232488 1379.729098 31737.605083 .027622
+P 21 -6111.428266 25031.130408 -5571.428572 73.071761
+V 21 -2620.057345 -7347.010087 -30796.530941 .005009
+P 22 489.708422 16113.904058 21278.726297 -40.449602
+V 22 -24448.418652 10569.125806 -7456.492375 .088810
+P 24 -12238.095398 -12823.239484 -19457.472337 8.056370
+V 24 3399.771594 -25149.781610 14293.111145 .028129
+P 25 9804.422235 21265.683740 -12189.023836 61.682766
+V 25 -2103.827804 16195.351247 25766.653811 .006974
+P 26 -23614.231329 -6647.149071 10674.186195 410.495067
+V 26 -10705.717000 -8683.534869 -27816.791825 -.124400
+P 27 5479.320104 -24208.226591 -8232.743174 919.763626
+V 27 3672.200380 11208.867008 -29359.871012 .043348
+P 28 160.659668 -16569.984147 20876.152435 21.800612
+V 28 23666.711170 -11198.884148 -9452.049265 .016467
+P 29 -24100.899623 -9629.044514 6049.377133 229.840456
+V 29 -5192.204953 -5568.531597 -30852.719631 .032954
+P 30 -16391.830750 18125.595976 -10508.686919 804.686673
+V 30 -12830.941897 3896.000858 27435.093114 .142764
+P 31 22769.209068 1346.807890 13546.154158 38.808965
+V 31 14142.751492 10932.522478 -23936.711205 .309312
+* 2004 2 29 15 15 .00000000
+P 1 18854.400808 -3378.548091 -18238.616034 332.536334
+V 1 19721.383172 12772.564408 17824.482363 .014890
+P 3 24175.156454 11286.980989 -533.595082 89.804327
+V 3 -2005.580609 3089.413944 -30866.283688 .031519
+P 4 -5912.425626 -24349.028530 -8283.828873 -76.462133
+V 4 2810.282742 -10650.874591 29551.041693 -.091724
+P 5 -23135.901695 11416.762517 5799.050919 19.727776
+V 5 4030.135122 -7372.921358 30130.397492 .017483
+P 6 -11659.804776 11285.369801 -20858.295297 -1.329132
+V 6 -23706.695231 -12920.577488 6073.247993 -.011179
+P 7 -10192.905410 -18440.966643 16670.419138 611.998099
+V 7 19308.951110 6967.678076 19830.460846 -.078007
+P 8 -220.180443 -26376.678161 521.845098 355.680034
+V 8 2991.049183 -887.332080 -32030.891599 -.088821
+P 9 -14644.199908 5588.459859 20970.016425 -32.308217
+V 9 -2504.372769 -27614.757958 5875.956095 -.016559
+P 10 -18856.805139 -3201.516059 -18596.738742 40.158861
+V 10 19506.058858 -12898.575631 -17330.724023 .004018
+P 11 14877.493447 -8447.424051 20287.321675 99.805199
+V 11 4468.914840 25665.555344 7543.663397 .025501
+P 13 7495.414598 -12731.316929 -22111.760879 -30.911557
+V 13 24439.892944 13489.522964 595.119316 .002387
+P 14 11414.709129 18171.300117 15691.281776 -18.156310
+V 14 -18216.131146 -7943.224024 22532.266457 -.001189
+P 15 4033.867191 24944.174335 7545.876506 232.805998
+V 15 -3132.183822 9810.389492 -30086.010888 .055656
+P 16 15204.845343 7352.068688 -20431.288483 15.294749
+V 16 -21672.083882 14570.699168 -10839.491093 -.004037
+P 17 -14716.858200 -2906.438101 -21768.820524 206.541158
+V 17 2287.365211 -27908.846525 1439.465365 .195188
+P 18 -14148.672943 18197.148230 13035.114256 -15.341735
+V 18 -15618.907534 6025.925833 -25627.978058 -.026506
+P 20 22902.586916 -13394.643422 1142.604975 -184.207516
+V 20 137.572546 3107.496067 31792.969640 .027616
+P 21 -6355.982857 24220.760760 -8285.975813 73.072009
+V 21 -2880.758725 -10634.194879 -29438.542663 .004995
+P 22 -1645.046951 17102.677116 20429.235596 -40.441832
+V 22 -22923.474691 11346.884395 -11394.553503 .088783
+P 24 -11996.215372 -15013.154766 -18002.946299 8.059802
+V 24 2006.462697 -23430.775912 17981.224269 .027874
+P 25 9640.571467 22590.897508 -9770.110475 61.683258
+V 25 -1597.357869 13213.080528 27907.101670 .007234
+P 26 -24474.742696 -7326.721576 8087.957299 410.483892
+V 26 -8351.690493 -6454.920588 -29572.935213 -.124418
+P 27 5843.719287 -23058.357031 -10792.859163 919.767806
+V 27 4483.286656 14299.290149 -27444.756585 .043332
+P 28 2217.714013 -17606.659774 19849.971232 21.802030
+V 28 21984.207561 -11775.303132 -13321.535693 .016466
+P 29 -24442.437255 -10042.533043 3228.940234 229.843441
+V 29 -2345.527783 -3671.662729 -31734.817842 .032924
+P 30 -17417.852277 18429.137413 -7956.499453 804.699964
+V 30 -9968.001366 2777.780923 29199.815985 .142755
+P 31 23952.466864 2240.300766 11281.241927 38.835855
+V 31 12083.575801 8946.796072 -26320.384047 .309257
+* 2004 2 29 15 30 .00000000
+P 1 20573.011059 -2323.354048 -16480.234571 332.537042
+V 1 18383.255756 10679.687093 21193.046648 .014734
+P 3 23857.738595 11510.768080 -3299.175575 89.807509
+V 3 -5065.001188 1945.695745 -30504.100837 .031500
+P 4 -5677.301866 -25159.917146 -5559.332803 -76.470599
+V 4 2481.487738 -7341.209296 30904.757192 -.091742
+P 5 -22669.830853 10651.251259 8452.309813 19.730256
+V 5 6266.026854 -9669.036312 28744.821640 .017265
+P 6 -13785.295321 10190.413204 -20131.209485 -1.330273
+V 6 -23441.733526 -11390.309385 10059.595230 -.011267
+P 7 -8354.992164 -17819.964104 18311.724022 611.990770
+V 7 21486.770869 6769.566146 16593.335022 -.078037
+P 8 51.520867 -26299.339938 -2357.082354 355.671463
+V 8 3116.402164 2599.163261 -31851.677521 -.088813
+P 9 -14932.795453 3088.180027 21309.057957 -32.308916
+V 9 -3908.032645 -27852.638947 1648.833813 -.016592
+P 10 -17065.534058 -4456.353493 -19994.083426 40.159236
+V 10 20213.327537 -14972.427535 -13676.298931 .003662
+P 11 15334.967539 -6116.619763 20789.383211 99.807147
+V 11 5695.066700 26047.053290 3597.908046 .025501
+P 13 9718.884061 -11583.415139 -21868.786425 -30.911114
+V 13 24884.369212 11982.585491 4797.065913 .002383
+P 14 9658.317336 17453.733052 17578.753038 -18.156155
+V 14 -20772.427956 -7929.347508 19351.730906 -.001196
+P 15 3777.168101 25676.932327 4779.769978 232.812095
+V 15 -2639.304311 6446.047906 -31292.458283 .055790
+P 16 13249.065196 8740.941973 -21227.188382 15.294414
+V 16 -21705.637163 16260.293456 -6821.426115 -.004045
+P 17 -14579.107762 -5404.213838 -21450.131870 206.558858
+V 17 776.285329 -27504.381917 5627.821132 .195181
+P 18 -15424.668423 18705.852527 10622.053976 -15.343717
+V 18 -12723.021764 5202.120350 -27918.286558 -.026508
+P 20 22789.193910 -13024.282482 3985.912638 -184.205043
+V 20 -2610.041608 5174.356998 31300.719248 .027611
+P 21 -6641.452589 23123.265457 -10854.927270 73.072350
+V 21 -3523.798806 -13711.966038 -27566.230609 .004981
+P 22 -3625.450274 18145.237028 19233.457189 -40.433991
+V 22 -21030.023264 11754.891831 -15141.028371 .088754
+P 24 -11870.112743 -17026.447146 -16230.541779 8.062267
+V 24 840.098065 -21234.598282 21346.563345 .027581
+P 25 9505.584193 23638.079182 -7180.596889 61.682512
+V 25 -1467.432132 10032.362546 29552.820936 .007413
+P 26 -25106.756192 -7816.811690 5366.145659 410.473527
+V 26 -5638.786234 -4485.110826 -30826.417730 -.124434
+P 27 6295.943353 -21643.723511 -13157.711365 919.771287
+V 27 5614.886880 17077.788659 -25027.078896 .043319
+P 28 4107.848046 -18677.391300 18484.744358 21.803576
+V 28 19969.769719 -11947.310575 -16975.505364 .016463
+P 29 -24514.930601 -10300.128549 353.334635 229.846408
+V 29 772.890048 -2113.783727 -32076.384197 .032898
+P 30 -18187.165993 18612.980460 -5267.646110 804.712861
+V 30 -7141.462120 1239.625343 30467.283277 .142745
+P 31 24932.740062 2962.713188 8822.373644 38.862553
+V 31 9641.116426 7143.456265 -28241.396202 .309221
+* 2004 2 29 15 45 .00000000
+P 1 22148.198642 -1454.149148 -14435.084020 332.538258
+V 1 16539.481502 8655.142653 24187.963255 .014563
+P 3 23261.737573 11648.714885 -6008.824008 89.810507
+V 3 -8181.603445 1185.038280 -29625.227348 .031393
+P 4 -5453.430302 -25666.960238 -2737.242979 -76.479885
+V 4 2562.979141 -3915.474093 31716.462072 -.091768
+P 5 -22019.743554 9672.053869 10958.019110 19.731327
+V 5 8111.569523 -12107.612873 26856.235115 .016935
+P 6 -15863.982003 9237.662850 -19053.037325 -1.331480
+V 6 -22666.225046 -9775.123473 13863.767491 -.011307
+P 7 -6334.780358 -17233.063308 19649.095099 611.983879
+V 7 23348.457441 6217.947082 13085.521101 -.078065
+P 8 353.122997 -25911.579148 -5194.745915 355.663545
+V 8 3652.824395 5994.118157 -31115.776496 -.088803
+P 9 -15346.135977 591.888593 21266.293180 -32.309811
+V 9 -5261.428611 -27527.744324 -2595.415340 -.016685
+P 10 -15233.888211 -5892.559436 -21051.287134 40.158609
+V 10 20405.143255 -16913.245918 -9782.502258 .003376
+P 11 15901.012710 -3773.859479 20933.213668 99.809273
+V 11 6868.179915 25932.277263 -405.544044 .025500
+P 13 11958.642449 -10579.742213 -21250.668996 -30.910676
+V 13 24797.503074 10299.481195 8919.714530 .002378
+P 14 7684.613191 16756.638176 19164.676880 -18.156269
+V 14 -23030.990741 -7495.346590 15840.829466 -.001206
+P 15 3546.386488 26101.108997 1929.779277 232.816956
+V 15 -2559.316171 2970.017126 -31947.739707 .055843
+P 16 11312.506310 10271.714066 -21655.571678 15.294119
+V 16 -21250.590685 17709.891433 -2684.318140 -.004055
+P 17 -14575.289089 -7840.794559 -20759.529426 206.576657
+V 17 -673.676811 -26552.794083 9692.423023 .195173
+P 18 -16437.855986 19119.853726 8024.320040 -15.346598
+V 18 -9795.078645 3923.082315 -29725.627504 -.026528
+P 20 22442.396305 -12454.993350 6760.525351 -184.202726
+V 20 -5037.541469 7516.306596 30268.472606 .027607
+P 21 -7000.514813 21761.574682 -13233.524918 73.073312
+V 21 -4507.921163 -16491.180707 -25215.118419 .004967
+P 22 -5421.647431 19205.957468 17711.486011 -40.426213
+V 22 -18843.405110 11743.418096 -18633.115150 .088726
+P 24 -11835.985148 -18823.053438 -14172.044073 8.065398
+V 24 -26.317583 -18627.923585 24329.520437 .027302
+P 25 9364.477464 24393.623800 -4466.201023 61.684641
+V 25 -1735.446267 6748.409375 30678.918934 .007675
+P 26 -25481.073253 -8143.833947 2554.765824 410.461903
+V 26 -2637.866779 -2841.215441 -31561.373084 -.124450
+P 27 6862.187278 -19996.187739 -15283.957914 919.774912
+V 27 7005.646152 19462.364006 -22150.558860 .043308
+P 28 5804.687730 -19743.755397 16802.762674 21.804992
+V 28 17702.770151 -11672.543292 -20350.195518 .016455
+P 29 -24297.775273 -10434.685277 -2528.304717 229.849564
+V 29 4075.742886 -944.374071 -31868.115964 .032877
+P 30 -18707.079244 18640.562344 -2488.057845 804.726042
+V 30 -4440.167904 -688.212283 31212.738015 .142735
+P 31 25678.199209 3533.731620 6212.530252 38.890120
+V 31 6876.760259 5593.308253 -29671.385356 .309196
+* 2004 2 29 16 0 .00000000
+P 1 23536.155433 -760.645487 -12139.157338 332.538672
+V 1 14230.871982 6789.729930 26757.935145 .014411
+P 3 22386.012011 11735.906926 -8616.669593 89.813194
+V 3 -11266.138778 818.209056 -28245.063767 .031284
+P 4 -5203.425270 -25864.268341 132.913455 -76.487586
+V 4 3061.839848 -475.263877 31971.282993 -.091795
+P 5 -21222.635030 8470.204364 13272.317980 19.731632
+V 5 9528.144820 -14601.914765 24497.470532 .016640
+P 6 -17850.087860 8430.790705 -17643.190270 -1.332557
+V 6 -21387.055012 -8163.198186 17419.479202 -.011281
+P 7 -4163.689449 -16709.706210 20660.691687 611.977011
+V 7 24829.888322 5367.614815 9363.601204 -.078094
+P 8 720.622102 -25226.099319 -7941.696653 355.655726
+V 8 4575.082290 9199.315629 -29839.353934 -.088782
+P 9 -15875.682524 -1850.506662 20843.731662 -32.311525
+V 9 -6476.015255 -26659.919518 -6778.123453 -.016889
+P 10 -13407.477481 -7493.969821 -21749.693827 40.158125
+V 10 20101.906627 -18628.672509 -5714.149624 .003188
+P 11 16567.267867 -1463.275310 20716.725880 99.812061
+V 11 7909.052106 25335.856416 -4397.664100 .025502
+P 13 14165.973895 -9732.022006 -20267.739986 -30.910152
+V 13 24162.584086 8532.659896 12892.364811 .002371
+P 14 5524.099376 16115.678979 20421.994852 -18.156294
+V 14 -24911.278704 -6691.560558 12059.827531 -.001215
+P 15 3303.815824 26211.272354 -954.008714 232.821032
+V 15 -2901.193092 -514.806373 -32042.880380 .055890
+P 16 9437.361429 11919.104096 -21708.954149 15.293720
+V 16 -20349.321443 18839.240122 1499.810042 -.004065
+P 17 -14695.868325 -10168.251701 -19711.270277 206.594017
+V 17 -1973.855071 -25086.269745 13564.710232 .195170
+P 18 -17189.739085 19398.915694 5286.925248 -15.348773
+V 18 -6932.197897 2208.277040 -31017.128288 -.026531
+P 20 21893.940443 -11665.388727 9418.539234 -184.200674
+V 20 -7082.100706 10056.533329 28713.242173 .027602
+P 21 -7461.424154 20166.163179 -15380.598899 73.073862
+V 21 -5776.462413 -18893.853957 -22429.262393 .004955
+P 22 -7010.993748 20245.429702 15888.898254 -40.418503
+V 22 -16447.990586 11278.432530 -21811.968361 .088700
+P 24 -11864.055878 -20369.575935 -11864.267276 8.067857
+V 24 -533.483616 -15691.693895 26878.126169 .026953
+P 25 9181.136737 24852.615017 -1674.446294 61.686150
+V 25 -2405.097668 3458.467645 31270.178084 .007884
+P 26 -25575.362541 -8339.599057 -299.104534 410.450877
+V 26 569.787597 -1575.718065 -31770.021353 -.124463
+P 27 7562.508525 -18154.349490 -17132.648486 919.778592
+V 27 8581.025212 21385.818114 -18868.886732 .043301
+P 28 7289.386960 -20764.262320 14831.888280 21.806372
+V 28 15270.601688 -10925.496817 -23385.754946 .016450
+P 29 -23778.634857 -10482.771480 -5366.421629 229.852061
+V 29 7467.155010 -196.201099 -31110.008405 .032863
+P 30 -18992.645399 18478.806660 334.498611 804.739638
+V 30 -1946.856429 -2958.715195 31420.235791 .142727
+P 31 26163.079582 3978.866489 3496.852572 38.917502
+V 31 3863.456625 4354.588032 -30590.729599 .309181
+* 2004 2 29 16 15 .00000000
+P 1 24697.538108 -224.747956 -9632.714210 332.540586
+V 1 11515.512914 5165.571003 28859.572901 .014356
+P 3 21237.471699 11807.644158 -11078.592793 89.815987
+V 3 -14229.479269 839.209643 -26387.070215 .031223
+P 4 -4890.112289 -25755.125253 3000.735874 -76.496163
+V 4 3966.301943 2877.831909 31664.716804 -.091821
+P 5 -20318.201784 7044.775931 15354.694867 19.733248
+V 5 10494.523477 -17060.620596 21710.009077 .016530
+P 6 -19699.273666 7765.602294 -15926.830986 -1.334151
+V 6 -19629.181082 -6640.569813 20665.399653 -.011371
+P 7 -1878.386526 -16273.884805 21329.904247 611.969339
+V 7 25878.910046 4284.498686 5487.119013 -.078119
+P 8 1186.951961 -24264.118097 -10550.378922 355.647045
+V 8 5840.616576 12124.364796 -28048.212157 -.088758
+P 9 -16505.167617 -4191.769955 20050.371720 -32.312334
+V 9 -7469.210769 -25288.444805 -10822.934702 -.017110
+P 10 -11629.267618 -9236.371163 -22076.641807 40.157613
+V 10 19341.788887 -20032.775011 -1539.465070 .003106
+P 11 17318.432213 773.058943 20144.031977 99.814402
+V 11 8743.190571 24288.737905 -8309.915717 .025501
+P 13 16291.525479 -9043.539038 -18936.597567 -30.909799
+V 13 22982.234938 6776.591265 16646.653490 .002362
+P 14 3213.989739 15561.317233 21329.281429 -18.156305
+V 14 -26345.166645 -5582.845524 8073.458831 -.001223
+P 15 3011.796789 26011.252678 -3821.166561 232.827800
+V 15 -3654.939812 -3906.157109 -31579.265344 .056037
+P 16 7661.284352 13651.074602 -21386.382338 15.293302
+V 16 -19059.970811 19578.957045 5658.071051 -.004076
+P 17 -14923.642118 -12342.341781 -18325.563270 206.611324
+V 17 -3043.032291 -23154.193432 17181.139105 .195166
+P 18 -17690.396097 19505.388959 2457.432554 -15.351205
+V 18 -4227.191511 95.561306 -31769.092853 -.026537
+P 20 21180.541153 -10641.463811 11913.995769 -184.198222
+V 20 -8696.477428 12708.313222 26661.191038 .027606
+P 21 -8046.732748 18373.911236 -17259.290745 73.074350
+V 21 -7259.821363 -20856.061041 -19260.233485 .004943
+P 22 -8378.727458 21221.945786 13796.353185 -40.410587
+V 22 -13934.039443 10343.065408 -24623.627053 .088671
+P 24 -11919.921154 -21640.422380 -9348.323127 8.069761
+V 24 -638.223555 -12517.835589 28948.983997 .026581
+P 25 8919.912280 25018.841203 1146.209135 61.685914
+V 25 -3462.426197 258.121513 31321.021515 .007996
+P 26 -25374.968739 -8439.919256 -3148.045530 410.439389
+V 26 3895.382311 -724.832021 -31452.504637 -.124472
+P 27 8409.783329 -16162.079834 -18670.068382 919.782520
+V 27 10256.572231 22798.624411 -15244.488031 .043299
+P 28 8551.203595 -21695.937883 12605.150971 21.807919
+V 28 12765.387606 -9698.854437 -26027.385926 .016441
+P 29 -22954.057984 -10483.097554 -8111.887660 229.855333
+V 29 10846.163527 116.076512 -29811.599384 .032845
+P 30 -19065.968454 18099.566920 3151.236983 804.752286
+V 30 265.038809 -5509.661367 31083.135130 .142709
+P 31 26368.599132 4328.226783 721.853467 38.945046
+V 31 682.938697 3470.965587 -30988.548902 .309175
+* 2004 2 29 16 30 .00000000
+P 1 25598.926601 178.516733 -6959.537045 332.540689
+V 1 8466.521922 3852.895662 30458.082627 .014243
+P 3 19830.922063 11897.942368 -13352.934052 89.817825
+V 3 -16985.821322 1225.607811 -24082.380245 .031134
+P 4 -4478.210539 -25351.808508 5815.889159 -76.504809
+V 4 5246.192125 6046.193417 30802.716748 -.091834
+P 5 -19347.238682 5403.131710 17168.732157 19.735885
+V 5 11007.585262 -19391.442985 18543.201469 .016372
+P 6 -21370.225060 7230.387522 -13934.378631 -1.334358
+V 6 -17434.642502 -5287.654829 23546.213149 -.011378
+P 7 480.375869 -15943.248544 21645.587923 611.962735
+V 7 26457.154496 3043.173472 1517.845045 -.078142
+P 8 1780.504891 -23054.508632 -12975.966615 355.638807
+V 8 7391.433195 14690.054375 -25777.071445 -.088725
+P 9 -17211.292979 -6389.006763 18901.918609 -32.312778
+V 9 -8167.905238 -23470.132780 -14657.415769 -.017491
+P 10 -9938.041191 -11088.233483 -22025.723920 40.157272
+V 10 18179.283006 -21049.439385 2670.966672 .003129
+P 11 18132.826156 2896.543127 19225.346396 99.816821
+V 11 9303.814738 22836.904440 -12075.419231 .025499
+P 13 18287.054772 -8509.125144 -17279.843282 -30.909575
+V 13 21278.456263 5124.018947 20117.728438 .002354
+P 14 796.972260 15117.621829 21871.097501 -18.156240
+V 14 -27279.516429 -4245.927789 3949.834963 -.001230
+P 15 2634.405307 25513.907893 -6621.849362 232.834618
+V 15 -4792.147168 -7106.324125 -30568.396067 .056067
+P 16 6016.073741 15429.940972 -20693.452344 15.293080
+V 16 -17454.068844 19873.363293 9718.025488 -.004087
+P 17 -15234.549848 -14323.959601 -16628.078041 206.628786
+V 17 -3810.514707 -20820.956349 20484.027005 .195169
+P 18 -17957.927833 19405.811817 -414.895399 -15.353673
+V 18 -1764.942075 -2360.141576 -31967.516180 -.026542
+P 20 20342.396084 -9377.342431 14203.688079 -184.195845
+V 20 -9850.752908 15378.311855 24147.221295 .027608
+P 21 -8772.256301 16426.731235 -18837.678967 73.075134
+V 21 -8878.430895 -22330.228652 -15765.971855 .004933
+P 22 -9518.349591 22093.085638 11469.113607 -40.402799
+V 22 -11394.336391 8938.446712 -27019.893059 .088642
+P 24 -11966.083883 -22618.630924 -6668.815864 8.072733
+V 24 -315.195850 -9205.568677 30507.977780 .026267
+P 25 8547.180081 24904.484872 3947.231246 61.686216
+V 25 -4876.555363 -2762.245914 30835.288478 .008172
+P 26 -24873.450414 -8483.091891 -5944.998283 410.428034
+V 26 7245.709101 -307.442043 -30616.661252 -.124482
+P 27 9408.980891 -14066.831405 -19868.458061 919.786339
+V 27 11941.685261 23670.988528 -11346.999043 .043298
+P 28 9587.767759 -22495.994769 10160.243035 21.809478
+V 28 10280.454107 -8004.133315 -28226.456563 .016430
+P 29 -21829.768900 -10474.849092 -10716.865787 229.857613
+V 29 14110.469008 -3.385523 -27992.047245 .032830
+P 30 -18955.233496 17480.900783 5913.204878 804.765264
+V 30 2134.262514 -8265.816954 30204.426714 .142685
+P 31 26283.613982 4615.141491 -2065.363659 38.972490
+V 31 -2577.310048 2970.144506 -30862.566593 .309172
+* 2004 2 29 16 45 .00000000
+P 1 26214.054272 479.803878 -4166.133322 332.542098
+V 1 5169.236272 2907.338985 31527.769518 .014194
+P 3 18188.624992 12038.091830 -15401.163388 89.821815
+V 3 -19455.766956 1939.473766 -21369.318257 .031153
+P 4 -3935.940030 -24675.059569 8529.039676 -76.513271
+V 4 6854.153117 8939.961765 29401.539605 -.091846
+P 5 -18350.004534 3560.846274 18682.772923 19.736945
+V 5 11082.296892 -21504.801428 15053.318892 .016074
+P 6 -22826.120232 6806.573244 -11700.925381 -1.334740
+V 6 -14860.907862 -4176.044214 26013.529113 -.011459
+P 7 2869.065300 -15728.449323 21602.229499 611.955803
+V 7 26541.401209 1724.083417 -2480.969209 -.078168
+P 8 2523.850460 -21632.661122 -15177.127532 355.631336
+V 8 9156.589697 16831.198396 -23068.697521 -.088688
+P 9 -17964.722067 -8405.129346 17420.365939 -32.315250
+V 9 -8511.480678 -21276.725900 -18214.478182 -.017971
+P 10 -8367.017574 -13011.735001 -21596.950050 40.156599
+V 10 16683.127260 -21615.440279 6845.322168 .003168
+P 11 18983.209208 4873.325017 17976.786072 99.819375
+V 11 9534.546584 21039.533056 -15630.069044 .025495
+P 13 20107.148159 -8115.481851 -15325.714715 -30.910134
+V 13 19091.933661 3662.269851 23245.380363 .002346
+P 14 -1680.234620 14801.336710 22038.243509 -18.156329
+V 14 -27678.183512 -2766.311034 -240.691408 -.001236
+P 15 2139.056566 24740.545893 -9307.686391 232.839985
+V 15 -6267.294266 -10025.824828 -29031.439492 .055763
+P 16 4526.595016 17213.712605 -19642.210631 15.292673
+V 16 -15613.637197 19682.782405 13608.986804 -.004099
+P 17 -15598.740437 -16080.372014 -14649.386652 206.646299
+V 17 -4218.701534 -18163.291200 23422.208139 .195169
+P 18 -18017.592152 19072.359993 -3279.984339 -15.356469
+V 18 380.905192 -5088.872217 -31608.403260 -.026554
+P 20 19421.573498 -7875.712363 16247.922755 -184.193240
+V 20 -10533.394698 17970.166933 21214.398760 .027615
+P 21 -9646.325132 14370.018617 -20089.297261 73.075620
+V 21 -10546.095143 -23286.734821 -12009.552687 .004922
+P 22 -10431.695351 22817.350056 8946.489942 -40.394531
+V 22 -8920.719381 7083.883850 -28959.147757 .088611
+P 24 -11963.607104 -23296.350845 -3872.983954 8.073857
+V 24 442.163631 -5857.477015 31530.744379 .025964
+P 25 8032.806548 24529.505802 6680.841268 61.686605
+V 25 -6601.077332 -5520.700468 29825.846148 .008427
+P 26 -24072.833690 -8508.314654 -8643.945615 410.416967
+V 26 10526.344389 -324.644455 -29277.753107 -.124492
+P 27 10556.791042 -11917.804019 -20706.584751 919.790213
+V 27 13543.670070 23993.987960 -7251.516050 .043297
+P 28 10405.026893 -23123.529328 7538.916381 21.811236
+V 28 7906.697343 -5871.598745 -29941.553891 .016422
+P 29 -20420.613661 -10495.989467 -13135.672873 229.860607
+V 29 17160.312720 -531.651379 -25680.023763 .032816
+P 30 -18693.497720 16608.120998 8572.158812 804.778043
+V 30 3614.161671 -11141.692820 28796.880296 .142661
+P 31 25904.993859 4874.682873 -4817.868442 39.000077
+V 31 -5827.226925 2863.082963 -30218.853520 .309175
+* 2004 2 29 17 0 .00000000
+P 1 26524.763809 714.038316 -1300.901003 332.542978
+V 1 1717.952357 2367.851568 32052.355070 .014086
+P 3 16339.591886 12255.326204 -17188.502419 89.824958
+V 3 -21569.175988 2928.886198 -18292.825741 .031077
+P 4 -3236.485923 -23753.226794 11092.766957 -76.521742
+V 4 8727.584809 11480.493245 27487.360532 -.091849
+P 5 -17364.623121 1541.299964 19870.495481 19.739483
+V 5 10750.949131 -23317.393483 11302.457925 .015851
+P 6 -24035.922018 6469.647372 -9265.578256 -1.336827
+V 6 -11978.640191 -3365.694108 28026.630020 -.011645
+P 7 5242.775591 -15632.746101 21200.046507 611.948525
+V 7 26124.444660 410.562786 -6445.354128 -.078192
+P 8 3432.700360 -20039.114979 -17116.703623 355.623405
+V 8 11055.157515 18498.874086 -19972.910510 -.088655
+P 9 -18731.317818 -10210.061989 15633.458843 -32.317513
+V 9 -8454.223288 -18791.740861 -21433.579311 -.018343
+P 10 -6942.685694 -14964.044086 -20796.805718 40.157463
+V 10 14933.666622 -21683.067685 10911.723556 .003285
+P 11 19837.822168 6675.386494 16420.072819 99.821590
+V 11 9391.688969 18966.670493 -18913.587470 .025488
+P 13 21710.844243 -7841.827072 -13107.618987 -30.909809
+V 13 16480.626810 2469.761355 25975.111840 .002341
+P 14 -4168.478008 14621.242862 21827.908821 -18.156268
+V 14 -27523.385466 -1234.855351 -4426.692795 -.001241
+P 15 1497.960911 23720.032982 -11832.623815 232.844646
+V 15 -8019.723328 -12586.683952 -26998.596440 .055411
+P 16 3209.982138 18957.613355 -18250.938717 15.291957
+V 16 -13627.887070 18985.212411 17263.292443 -.004107
+P 17 -15981.845135 -17586.195095 -12424.354118 206.663667
+V 17 -4225.084044 -15267.255851 25951.516317 .195172
+P 18 -17900.660273 18484.084769 -6087.855845 -15.358959
+V 18 2150.796188 -8008.288463 -30697.879812 -.026553
+P 20 18460.336607 -6147.930812 18011.222843 -184.190610
+V 20 -10751.598662 20388.211272 17913.222589 .027624
+P 21 -10669.346483 12250.991849 -20993.539088 73.076135
+V 21 -12173.544080 -23714.770775 -8057.901214 .004916
+P 22 -11128.692860 23355.779414 6271.214081 -40.386433
+V 22 -6600.625667 4816.365840 -30407.093720 .088581
+P 24 -11873.816752 -23674.965354 -1009.809845 8.076006
+V 24 1621.488739 -2575.512947 32002.912564 .025851
+P 25 7351.462476 23920.749214 9300.805545 61.688681
+V 25 -8576.003014 -7946.602102 28314.066342 .008764
+P 26 -22983.577302 -8554.086332 -11200.566522 410.405516
+V 26 13644.848760 -759.883320 -27458.157016 -.124500
+P 27 11841.622447 -9764.051446 -21170.149163 919.794187
+V 27 14971.880651 23779.736242 -3036.695427 .043296
+P 28 11016.864440 -23541.176827 4786.288762 21.812813
+V 28 5728.988823 -3349.425574 -31139.445095 .016418
+P 29 -18750.157417 -10581.599677 -15325.623643 229.863594
+V 29 19902.326854 -1427.799862 -22913.408107 .032803
+P 30 -18317.287776 15474.576554 11081.443465 804.790892
+V 30 4674.548256 -14044.764131 26882.992336 .142639
+P 31 25237.710228 5142.147751 -7489.639673 39.028056
+V 31 -8977.364521 3143.838409 -29071.476824 .309178
+* 2004 2 29 17 15 .00000000
+P 1 26521.654612 918.844246 1586.726317 332.543991
+V 1 -1787.646438 2255.294111 32025.111174 .014145
+P 3 14318.634055 12571.650696 -18684.490825 89.827674
+V 3 -23267.690138 4129.955494 -14903.801190 .030956
+P 4 -2359.258983 -22621.118289 13462.430803 -76.529893
+V 4 10791.215765 13603.329323 25095.670738 -.091852
+P 5 -16425.585057 -625.037915 20711.383874 19.740426
+V 5 10061.687550 -24755.513685 7357.327856 .015487
+P 6 -24975.446317 6190.314008 -6670.741208 -1.338980
+V 6 -8868.979615 -2902.616776 29553.050555 -.011703
+P 7 7556.687606 -15651.883549 20445.016687 611.942005
+V 7 25215.436944 -814.259044 -10311.407994 -.078214
+P 8 4515.156296 -18318.019646 -18762.298026 355.615033
+V 8 12999.526360 19661.982622 -16545.510236 -.088621
+P 9 -19473.566930 -11781.643467 13574.059780 -32.318458
+V 9 -7967.046067 -16106.924682 -24261.683022 -.018601
+P 10 -5683.896307 -16898.813438 -19638.201872 40.157541
+V 10 13019.740557 -21222.199846 14799.469538 .003450
+P 11 20661.612620 8281.402164 14582.144267 99.823892
+V 11 8846.008799 16696.517328 -21870.500612 .025480
+P 13 23063.099648 -7660.842066 -10663.573628 -30.909823
+V 13 13517.688429 1612.843643 28259.123050 .002337
+P 14 -6617.859083 14577.838142 21243.715437 -18.156418
+V 14 -26816.383034 255.842560 -8536.845919 -.001249
+P 15 689.375394 22487.629626 -14153.703577 232.851357
+V 15 -9976.187011 -14725.196337 -24508.319949 .055065
+P 16 2075.149880 20615.721650 -16543.825938 15.291512
+V 16 -11589.645013 17777.304011 20617.515950 -.004116
+P 17 -16346.402990 -18824.088682 -9991.492560 206.681555
+V 17 -3803.634975 -12224.989631 28035.114310 .195174
+P 18 -17643.041342 17627.888241 -8789.535205 -15.361633
+V 18 3501.546326 -11026.834686 -29252.090027 -.026554
+P 20 17499.470301 -4213.794006 19462.958571 -184.187937
+V 20 -10530.893275 22541.189200 14300.752045 .027634
+P 21 -11833.690855 10116.988647 -21535.945640 73.076326
+V 21 -13672.054869 -23622.451766 -3980.492203 .004906
+P 22 -11626.816531 23673.497558 3488.750391 -40.378518
+V 22 -4513.779646 2189.398681 -31337.407272 .088551
+P 24 -11659.983077 -23764.858245 1870.881618 8.077554
+V 24 3192.104595 542.894423 31920.118297 .025794
+P 25 6483.739606 23110.819431 11763.173308 61.689620
+V 25 -10730.181954 -9982.958170 26329.195678 .009011
+P 26 -21624.253137 -8656.646062 -13572.861503 410.394568
+V 26 16513.874961 -1579.666573 -25187.026480 -.124510
+P 27 13243.969114 -7652.617315 -21252.017633 919.797797
+V 27 16141.727830 23060.576777 1217.211571 .043298
+P 28 11444.402364 -23716.657618 1950.068900 21.814462
+V 28 3822.768880 -502.117273 -31795.912783 .016411
+P 29 -16849.942367 -10762.323636 -17247.837804 229.867306
+V 29 22253.197972 -2634.468113 -19738.773239 .032786
+P 30 -17865.058291 14082.127789 13396.856829 804.803403
+V 30 5302.909810 -16879.028800 24494.722786 .142619
+P 31 24294.639943 5451.552279 -10036.266258 39.055721
+V 31 -11942.000886 3790.018112 -27442.073242 .309184
+* 2004 2 29 17 30 .00000000
+P 1 26204.400075 1132.881052 4447.138366 332.545198
+V 1 -5246.228350 2571.758441 31448.818800 .014302
+P 3 12165.204086 13002.873046 -19863.489689 89.829992
+V 3 -24506.840487 5469.294640 -11258.358185 .030869
+P 4 -1290.900547 -21318.613956 15596.975222 -76.538222
+V 4 12960.187816 15260.560019 22270.480507 -.091856
+P 5 -15562.411311 -2901.608002 21191.085092 19.740256
+V 5 9076.402709 -25757.981662 3287.951819 .015142
+P 6 -25628.168559 5935.830765 -3961.352748 -1.339941
+V 6 -5620.459937 -2817.152156 30568.986636 -.011656
+P 7 9767.536570 -15774.250968 19348.835443 611.934526
+V 7 23839.688349 -1870.575351 -14016.111750 -.078239
+P 8 5771.265416 -16515.486949 -20086.762853 355.606855
+V 8 14898.910066 20308.094836 -12847.150659 -.088581
+P 9 -20152.126384 -13106.199544 11279.438944 -32.320213
+V 9 -7038.478745 -13318.494280 -26653.974693 -.018829
+P 10 -4601.251640 -18767.832364 -18140.312495 40.159087
+V 10 11035.207151 -20221.729361 18440.293710 .003621
+P 11 21417.596179 9677.339841 12494.680960 99.826164
+V 11 7883.961414 14312.426151 -24451.023737 .025473
+P 13 24136.040067 -7539.882714 -8035.563248 -30.909596
+V 13 10288.787654 1143.103329 30057.193781 .002334
+P 14 -8979.450959 14663.346744 20295.655637 -18.157004
+V 14 -25577.449257 1615.131908 -12501.107132 -.001256
+P 15 -301.395264 21083.604401 -16231.766375 232.856002
+V 15 -12053.848787 -16394.079962 -21606.415607 .054598
+P 16 1122.634660 22142.665848 -14550.536678 15.291244
+V 16 -9591.650177 16074.606204 23613.596077 -.004124
+P 17 -16653.383278 -19785.153285 -7392.291771 206.698803
+V 17 -2945.573087 -9131.362333 29643.692025 .195178
+P 18 -17283.731547 16499.194956 -11337.940540 -15.364024
+V 18 4407.946890 -14047.295172 -27296.883108 -.026552
+P 20 16576.676318 -2100.978168 20577.893620 -184.185237
+V 20 -9914.019372 24345.818579 10439.606038 .027641
+P 21 -13123.901768 8013.785426 -21708.377264 73.076750
+V 21 -14956.993622 -23036.195576 151.934852 .004898
+P 22 -11950.253412 23741.121866 646.552567 -40.370633
+V 22 -2729.147792 -728.795434 -31732.286554 .088524
+P 24 -11288.912995 -23584.840890 4719.316707 8.080291
+V 24 5106.374849 3408.470489 31287.813673 .025831
+P 25 5417.032201 22136.766426 14026.953978 61.690132
+V 25 -12984.085798 -11588.219551 23907.646100 .009272
+P 26 -20020.954491 -8848.502132 -15721.746229 410.383846
+V 26 19054.096733 -2734.833902 -22499.926415 -.124523
+P 27 14737.124098 -5626.785112 -20952.277626 919.801654
+V 27 16978.354749 21887.368932 5430.305372 .043300
+P 28 11715.011137 -23624.149139 -920.286621 21.816007
+V 28 2250.977040 2591.773148 -31896.430596 .016404
+P 29 -14758.430390 -11062.984530 -18867.991520 229.869728
+V 29 24142.984963 -4080.099066 -16210.662958 .032767
+P 30 -17375.573305 12441.291317 15477.481992 804.816368
+V 30 5504.903148 -19548.760776 21673.016131 .142599
+P 31 23096.096514 5834.193273 -12415.607032 39.083141
+V 31 -14642.066791 4763.800391 -25359.363992 .309194
+* 2004 2 29 17 45 .00000000
+P 1 25581.726431 1394.151267 7231.395951 332.547668
+V 1 -8558.571195 3300.627111 30335.562703 .014508
+P 3 9922.069177 13557.873921 -20705.114554 89.832396
+V 3 -25257.662741 6866.853292 -7417.006143 .030813
+P 4 -25.991924 -19889.095701 17459.652928 -76.545968
+V 4 15143.515269 16422.488588 19063.355889 -.091860
+P 5 -14798.532023 -5247.001142 21301.646749 19.742652
+V 5 7868.073209 -26278.559438 -833.685106 .015035
+P 6 -25985.740911 5671.473385 -1184.094304 -1.340785
+V 6 -2325.685908 -3122.874426 31059.537541 -.011586
+P 7 11835.036810 -15981.319249 17928.798523 611.928021
+V 7 22037.921325 -2684.946453 -17498.176342 -.078261
+P 8 7192.895032 -14677.899918 -21068.584518 355.598750
+V 8 16662.912872 20443.574115 -8942.192828 -.088537
+P 9 -20727.425737 -14178.773635 8790.511158 -32.323259
+V 9 -5674.919019 -10523.328141 -28574.337384 -.019152
+P 10 -3696.819474 -20522.775516 -16328.298588 40.160130
+V 10 9075.231890 -18690.271089 21769.627000 .003652
+P 11 22068.301115 10856.782275 10193.558245 99.828890
+V 11 6508.314079 11899.728148 -26611.845448 .025467
+P 13 24909.947257 -7442.408530 -5268.822236 -30.909244
+V 13 6888.936999 1095.238205 31337.442045 .002329
+P 14 -11206.981691 14862.057731 18999.924596 -18.156893
+V 14 -23845.128042 2757.914888 -16251.868006 -.001261
+P 15 -1481.283230 19551.684119 -18032.069553 232.860252
+V 15 -14163.604651 -17563.955359 -18345.055579 .054139
+P 16 344.768840 23495.308305 -12305.680556 15.290865
+V 16 -7722.871362 13911.070642 26199.860863 -.004132
+P 17 -16863.748759 -20469.024838 -4670.537016 206.715949
+V 17 -1659.508542 -6080.628813 30755.556245 .195186
+P 18 -16863.151562 15102.292075 -13688.734484 -15.365952
+V 18 4863.631983 -16970.580887 -24867.296729 -.026551
+P 20 15725.100330 155.827777 21336.636330 -184.182651
+V 20 -8959.128147 25730.056023 6396.854120 .027649
+P 21 -14517.215529 5984.003974 -21509.070958 73.076993
+V 21 -15951.141492 -21999.415798 4268.618542 .004887
+P 22 -12128.811964 23535.984630 -2206.723539 -40.362853
+V 22 -1302.278455 -3857.660234 -31582.879345 .088496
+P 24 -10732.391327 -23161.269408 7486.640693 8.082528
+V 24 7301.697309 5943.328120 30120.892344 .025845
+P 25 4146.155947 21038.637425 16054.727960 61.691967
+V 25 -15252.843255 -12737.478051 21092.229756 .009559
+P 26 -18206.451875 -9157.098280 -17611.611076 410.372323
+V 26 21196.876397 -4162.337006 -19438.439356 -.124534
+P 27 16288.202350 -3724.519194 -20278.121835 919.805492
+V 27 17419.804840 20326.979480 9524.888202 .043300
+P 28 11861.063940 -23245.424199 -3774.468902 21.817148
+V 28 1061.459663 5842.542242 -31436.647896 .016393
+P 29 -12519.668268 -11501.432279 -20156.994576 229.873222
+V 29 25517.941844 -5681.813664 -12390.665497 .032743
+P 30 -16886.276928 10571.044281 17286.466177 804.828969
+V 30 5304.097247 -21962.300659 18467.109407 .142584
+P 31 21669.109491 6317.325315 -14588.404814 39.110705
+V 31 -17007.802004 6013.476884 -22858.624935 .309210
+* 2004 2 29 18 0 .00000000
+P 1 24671.057911 1738.346618 9892.053387 332.547645
+V 1 -11631.196429 4407.354818 28706.376339 .014474
+P 3 7633.863562 14238.145106 -21194.591438 89.835503
+V 3 -25507.760054 8239.017676 -3443.758516 .030741
+P 4 1432.558737 -18377.761586 19018.656866 -76.554918
+V 4 17247.766743 17078.539222 15532.321423 -.091863
+P 5 -14150.424783 -7616.389516 21041.631972 19.744489
+V 5 6517.677860 -26287.761670 -4935.007375 .014800
+P 6 -26048.204613 5362.069047 1613.415943 -1.342587
+V 6 922.097224 -3816.161506 31018.788219 -.011497
+P 7 13723.215077 -16248.344827 16207.606928 611.920719
+V 7 19864.987520 -3193.172216 -20698.923717 -.078279
+P 8 8763.925913 -12850.242409 -21692.165799 355.590680
+V 8 18205.020510 20092.996560 -4897.561306 -.088491
+P 9 -21161.259693 -15003.018516 6151.040071 -32.323883
+V 9 -3900.172298 -7815.267134 -29995.605738 -.019133
+P 10 -2964.186522 -22116.981220 -14232.919343 40.160476
+V 10 7232.483771 -16656.106533 24727.837465 .003559
+P 11 22577.241235 11820.960000 7718.232490 99.831016
+V 11 4738.148886 9542.507308 -28316.801709 .025456
+P 13 25373.942553 -7329.573822 -2411.055433 -30.908853
+V 13 3418.943278 1485.591759 32076.941149 .002322
+P 14 -13258.419498 15150.979710 17378.650502 -18.157238
+V 14 -21674.809208 3608.042900 -19725.074997 -.001270
+P 15 -2849.050369 17937.402500 -19524.813495 232.864504
+V 15 -16213.588702 -18224.117504 -14781.736005 .053756
+P 16 -273.819917 24634.352163 -9848.195907 15.290302
+V 16 -6064.990723 11337.836159 28331.927146 -.004141
+P 17 -16940.004985 -20883.672544 -1871.622798 206.733760
+V 17 29.007660 -3163.192721 31356.633715 .195195
+P 18 -16421.440617 13450.324167 -15801.120774 -15.368103
+V 18 4881.172532 -19699.590834 -22006.852156 -.026553
+P 20 14972.049345 2516.065033 21725.986989 -184.179778
+V 20 -7737.368133 26635.934235 2242.820176 .027651
+P 21 -15984.366050 4065.663973 -20942.588712 73.077335
+V 21 -16587.684119 -20570.601141 8299.955410 .004874
+P 22 -12196.612839 23043.116812 -5022.039601 -40.354754
+V 22 -273.134886 -7107.187066 -30889.574848 .088469
+P 24 -9968.416950 -22526.893144 10125.744730 8.085348
+V 24 9703.047689 8083.688445 28443.157838 .025902
+P 25 2673.686647 19857.948488 17813.186834 61.692646
+V 25 -17449.413142 -13423.045996 17931.358493 .009744
+P 26 -16219.123386 -9603.661442 -19210.843758 410.360733
+V 26 22886.595132 -5787.482297 -16049.738099 -.124550
+P 27 17859.420533 -1977.161722 -19243.572654 919.809465
+V 27 17419.544884 18459.132138 13427.151326 .043300
+P 28 11918.483757 -22570.704458 -6562.246281 21.818776
+V 28 284.978864 9152.744748 -30422.656971 .016390
+P 29 -10181.726194 -12087.673565 -21091.575523 229.875568
+V 29 26342.712915 -7348.797165 -8346.297792 .032718
+P 30 -16431.721060 8498.291890 18791.728287 804.841711
+V 30 4740.965247 -24035.720256 14933.637919 .142563
+P 31 20046.479893 6922.997842 -16518.851151 39.139287
+V 31 -18981.064242 7475.454255 -19981.121979 .309226
+* 2004 2 29 18 15 .00000000
+P 1 23497.845479 2197.295345 12383.942819 332.549127
+V 1 -14379.745426 5840.928176 26590.752990 .014583
+P 3 5345.571823 15037.614644 -21323.029533 89.837280
+V 3 -25261.770501 9501.868630 594.826004 .030664
+P 4 3073.465039 -16829.893344 20247.648227 -76.562416
+V 4 19180.812045 17237.384819 11740.663352 -.091866
+P 5 -13627.045260 -9963.090685 20416.111185 19.745778
+V 5 5110.810032 -25773.990272 -8944.207564 .014404
+P 6 -25823.893631 4973.538417 4383.429818 -1.343437
+V 6 4032.410989 -4876.429270 30449.741869 -.011355
+P 7 15401.605105 -16545.320714 14213.091086 611.913104
+V 7 17388.072896 -3342.893616 -23563.198893 -.078295
+P 8 10460.751625 -11074.510963 -21948.005918 355.582613
+V 8 19445.890563 19297.912850 -781.624148 -.088442
+P 9 -21418.309207 -15590.765311 3406.828636 -32.324857
+V 9 -1754.335008 -5281.663587 -30899.621425 -.019356
+P 10 -2388.852649 -23507.189743 -11890.033853 40.162373
+V 10 5593.390515 -14166.349159 27261.417810 .003433
+P 11 22910.361122 12578.496017 5111.071867 99.833069
+V 11 2608.248185 7320.442148 -29537.432465 .025451
+P 13 25526.339152 -7161.918585 488.389769 -30.908322
+V 13 -18.380277 2311.410744 32262.179321 .002316
+P 14 -15097.400829 15500.786831 15459.526122 -18.157352
+V 14 -19136.671912 4101.373861 -22861.297183 -.001277
+P 15 -4395.199689 16286.411512 -20685.572643 232.868526
+V 15 -18112.725500 -18382.594822 -10978.204250 .053300
+P 16 -755.405598 25525.808148 -7220.658551 15.289698
+V 16 -4689.193388 8421.344062 29973.458977 -.004148
+P 17 -16847.683581 -21044.913885 958.130498 206.750802
+V 17 2078.492591 -462.572273 31440.407105 .195214
+P 18 -15996.777003 11564.943182 -17638.569653 -15.370003
+V 18 4491.397895 -22142.986552 -18766.681189 -.026560
+P 20 14337.950263 4934.679510 21739.174404 -184.176881
+V 20 -6329.957072 27021.857253 -1950.177847 .027657
+P 21 -17490.639651 2290.932673 -20019.663093 73.077794
+V 21 -16812.762086 -18820.871320 12178.601280 .004861
+P 22 -12190.610326 22255.953670 -7750.814085 -40.347298
+V 22 335.487558 -10381.197133 -29662.145295 .088443
+P 24 -8982.189671 -21719.484708 12592.038870 8.086802
+V 24 12225.954750 9782.002396 26286.662795 .025835
+P 25 1010.011293 18636.131740 19273.600536 61.693900
+V 25 -19487.784468 -13654.419568 14478.223979 .009917
+P 26 -14101.693151 -10202.269929 -20492.311696 410.349695
+V 26 24082.576665 -7526.575898 -12386.116701 -.124566
+P 27 19409.571189 -408.435368 -17869.064126 919.813357
+V 27 16948.249102 16372.794432 17068.648058 .043301
+P 28 11925.142187 -21599.189328 -9234.407376 21.820154
+V 28 -66.077239 12420.972939 -28871.022896 .016387
+P 29 -7794.971098 -12823.324675 -21654.758686 229.878424
+V 29 26601.792731 -8986.061098 -4149.722781 .032699
+P 30 -16042.116432 6257.016885 19966.577534 804.854474
+V 30 3871.160651 -25696.199976 11135.557328 .142544
+P 31 18265.645904 7667.090417 -18175.098929 39.167413
+V 31 -20517.226663 9076.644284 -16773.518011 .309244
+* 2004 2 29 18 30 .00000000
+P 1 22094.607862 2797.568983 14664.909164 332.549044
+V 1 -16731.977890 7535.936660 24026.039966 .014738
+P 3 3100.997886 15942.768024 -21087.604844 89.840211
+V 3 -24541.215417 10574.482633 4630.662441 .030644
+P 4 4877.345240 -15289.147176 21126.173602 -76.571053
+V 4 20855.478713 16926.306508 7755.668114 -.091866
+P 5 -13229.570589 -12240.201796 19436.533365 19.745680
+V 5 3734.137537 -24743.954956 -12791.561640 .013998
+P 6 -25329.037453 4474.387488 7078.863556 -1.344043
+V 6 6920.802397 -6267.007634 29364.114978 -.011156
+P 7 16846.259102 -16838.145815 11977.851802 611.906227
+V 7 14684.432563 -3095.826123 -26040.305870 -.078305
+P 8 12253.060727 -9388.265336 -21832.781455 355.574272
+V 8 20316.330147 18115.016836 3336.888429 -.088392
+P 9 -21467.535358 -15961.297551 604.912474 -32.326849
+V 9 707.901764 -3000.295592 -31277.118393 -.019628
+P 10 -1948.953673 -24655.171872 -9339.999484 40.160419
+V 10 4234.607656 -11285.347385 29324.089032 .003175
+P 11 23037.399159 13144.873654 2416.642542 99.834874
+V 11 167.887988 5305.831338 -30253.415162 .025449
+P 13 25374.648276 -6901.092258 3379.385097 -30.908267
+V 13 -3322.092079 3550.860494 31889.348946 .002306
+P 14 -16694.447663 15877.020297 13275.347198 -18.157439
+V 14 -16313.071593 4188.374534 -25606.726173 -.001285
+P 15 -6102.203630 14642.818788 -21495.629474 232.873139
+V 15 -19774.197647 -18065.516291 -6999.378399 .052979
+P 16 -1128.090397 26142.264438 -4468.529161 15.289423
+V 16 -3653.388922 5240.861582 31096.771816 -.004154
+P 17 -16556.711422 -20975.668760 3772.151798 206.768269
+V 17 4433.049534 1947.350167 31007.800261 .195232
+P 18 -15623.793225 9475.628513 -19169.458057 -15.372275
+V 18 3741.979511 -24218.723975 -15204.509548 -.026569
+P 20 13835.590815 7363.675026 21375.977085 -184.174353
+V 20 -4824.855818 26864.261155 -6109.127360 .027659
+P 21 -18997.136506 685.114199 -18756.947674 73.078464
+V 21 -16587.500900 -16831.114480 15840.483415 .004851
+P 22 -12149.000408 21176.731274 -10345.767048 -40.339291
+V 22 518.887580 -13580.906291 -27919.725061 .088424
+P 24 -7766.814665 -20780.308346 14844.160856 8.089836
+V 24 14779.779924 11008.414154 23690.947082 .025793
+P 25 -826.906076 17413.012952 20412.210320 61.694297
+V 25 -21286.097783 -13457.645820 10789.970106 .010039
+P 26 -11899.817285 -10959.175172 -21433.799912 410.338630
+V 26 24760.542582 -9289.900730 -8504.469316 -.124584
+P 27 20895.622243 966.215144 -16180.902301 919.817713
+V 27 15994.795761 14162.293595 20387.518194 .043299
+P 28 11919.176469 -20339.234010 -11743.695675 21.821373
+V 28 1.786439 15545.845671 -26808.564643 .016381
+P 29 -5410.244645 -13701.413870 -21836.219320 229.881417
+V 29 26300.175055 -10498.420822 123.670133 .032681
+P 30 -15742.068522 3887.143673 20790.227742 804.867516
+V 30 2763.147060 -26884.968723 7140.908183 .142527
+P 31 16367.398303 8558.577678 -19529.720452 39.195064
+V 31 -21586.612258 10737.163760 -13287.254105 .309248
+* 2004 2 29 18 45 .00000000
+P 1 20499.723657 3559.299831 16696.485892 332.551338
+V 1 -18630.289725 9415.167654 21056.732811 .014870
+P 3 941.275735 16933.063915 -20491.649732 89.844194
+V 3 -23383.725383 11382.156402 8595.210054 .030707
+P 4 6817.324632 -13795.935227 21639.966926 -76.579916
+V 4 22192.972030 16189.828863 3647.329470 -.091864
+P 5 -12951.462812 -14402.239103 18120.481902 19.746378
+V 5 2471.854891 -23222.372038 -16410.673528 .013766
+P 6 -24587.081646 3837.093293 9654.068063 -1.345407
+V 6 9511.838400 -7936.613327 27782.008180 -.011067
+P 7 18040.536358 -17089.975197 9538.816349 611.898821
+V 7 11838.714548 -2429.532514 -28084.954901 -.078309
+P 8 14104.869224 -7823.367563 -21349.332101 355.566084
+V 8 20759.865109 16613.802403 7389.916157 -.088338
+P 9 -21283.397880 -16140.367518 -2207.229902 -32.327940
+V 9 3419.436021 -1036.739334 -31127.468194 -.020000
+P 10 -1616.286641 -25529.181218 -6626.975934 40.160952
+V 10 3219.852298 -8092.375562 30877.788020 .003080
+P 11 22933.116985 13541.649127 -319.038444 99.837115
+V 11 -2520.914028 3560.912146 -30452.870970 .025453
+P 13 24935.238026 -6511.541732 6211.901079 -30.908100
+V 13 -6396.936379 5163.802106 30964.456101 .002298
+P 14 -18027.928109 16241.499776 10863.464500 -18.157276
+V 14 -13295.466387 3836.167860 -27914.092465 -.001292
+P 15 -7945.036005 13047.611569 -21942.211566 232.877567
+V 15 -21118.706739 -17315.830622 -2912.277063 .052744
+P 16 -1424.504759 26463.910709 -1639.353551 15.288650
+V 16 -2999.972084 1885.514179 31683.273106 -.004159
+P 17 -16042.622399 -20704.981537 6524.282418 206.786251
+V 17 7024.337169 4004.724088 30067.025415 .195255
+P 18 -15332.149461 7218.705532 -20367.612859 -15.374583
+V 18 2695.342526 -25857.199600 -11383.524482 -.026571
+P 20 13469.672808 9753.784805 20642.726695 -184.171642
+V 20 -3313.177759 26158.573340 -10161.633955 .027659
+P 21 -20462.189067 -734.088949 -17176.680611 73.079409
+V 21 -15889.461128 -14688.820649 19225.717230 .004845
+P 22 -12109.576961 19816.554536 -12761.755353 -40.331257
+V 22 290.678701 -16608.636557 -25690.617419 .088407
+P 24 -6323.702960 -19752.487481 16844.612787 8.091368
+V 24 17271.170381 11751.535478 20702.201068 .025744
+P 25 -2812.032193 16225.371624 21210.547183 61.695799
+V 25 -22769.589518 -12874.129372 6926.865141 .010282
+P 26 -9660.561970 -11872.403364 -22018.399226 410.327379
+V 26 24913.546130 -10984.945338 -4465.704740 -.124599
+P 27 22274.370432 2139.926944 -14210.627290 919.821717
+V 27 14566.471778 11923.352529 23329.446812 .043296
+P 28 11937.295884 -18808.165636 -14045.713121 21.822773
+V 28 463.457314 18430.031884 -24271.885752 .016380
+P 29 -3077.020919 -14706.544949 -21632.506217 229.884009
+V 29 25463.151890 -11794.514605 4396.784625 .032665
+P 30 -15549.552223 1433.162557 21248.194564 804.880237
+V 30 1495.282168 -27559.674842 3021.455320 .142507
+P 31 14394.489144 9599.048061 -20560.108656 39.223102
+V 31 -22175.426058 12373.259765 -9577.904654 .309255
+* 2004 2 29 19 0 .00000000
+P 1 18756.021626 4495.251749 18444.503417 332.551640
+V 1 -20033.667756 11392.622525 17733.685758 .015090
+P 3 -1096.522826 17981.632176 -19544.644186 89.847249
+V 3 -21841.662175 11859.435026 12420.583547 .030633
+P 4 8859.930109 -12385.959878 21781.134833 -76.588381
+V 4 23125.927502 15087.703108 -512.945011 -.091860
+P 5 -12778.846537 -16406.718625 16491.322539 19.748696
+V 5 1402.271718 -21250.964017 -19739.625292 .013635
+P 6 -23627.754724 3039.332587 12065.564486 -1.348504
+V 6 11741.733675 -9821.354673 25731.466735 -.010903
+P 7 18975.635329 -17262.705988 6936.709447 611.891697
+V 7 8939.949830 -1338.651259 -29658.202951 -.078310
+P 8 15975.762865 -6404.951428 -20506.555990 355.557799
+V 8 20734.822578 14873.802706 11311.045130 -.088283
+P 9 -20846.859028 -16158.999364 -4982.438783 -32.332257
+V 9 6303.324131 557.732443 -30458.315342 -.020306
+P 10 -1357.598163 -26105.169697 -3798.146817 40.161097
+V 10 2597.240959 -4678.696132 31893.507912 .003084
+P 11 22578.349139 13795.439659 -3049.272019 99.839227
+V 11 -5385.629970 2135.569474 -30132.540956 .025459
+P 13 24232.657588 -5962.096035 8936.888279 -30.908070
+V 13 -9156.940770 7093.304272 29503.245241 .002287
+P 14 -19084.723867 16553.891024 8265.157740 -18.157038
+V 14 -10180.996664 3029.945174 -29743.482929 -.001305
+P 15 -9891.983999 11537.222756 -22018.633346 232.882835
+V 15 -22077.418814 -16191.441120 1215.026906 .052533
+P 16 -1680.333421 26479.277407 1218.069092 15.288434
+V 16 -2754.207663 -1549.053815 31723.733717 -.004161
+P 17 -15287.574103 -20266.845702 9169.424019 206.803042
+V 17 9773.924392 5661.712669 28633.400977 .195266
+P 18 -15145.321809 4836.103071 -21212.748112 -15.376821
+V 18 1425.999054 -27003.886844 -7371.156257 -.026578
+P 20 13236.695038 12056.196186 19552.193707 -184.169023
+V 20 -1885.478048 24919.431957 -14037.221598 .027661
+P 21 -21842.883422 -1957.020198 -15306.270146 73.079745
+V 21 -14713.471612 -12484.730735 22279.424842 .004829
+P 22 -12108.100723 18195.129980 -14956.582503 -40.323070
+V 22 -317.716712 -19371.530522 -23011.923064 .088384
+P 24 -4662.658220 -18679.333846 18560.320010 8.093736
+V 24 19607.555582 12018.526315 17372.377605 .025792
+P 25 -4914.026007 15105.631873 21655.675936 61.696945
+V 25 -23873.270059 -11958.928567 2951.477356 .010466
+P 26 -7430.822622 -12931.655678 -22234.838381 410.316136
+V 26 24552.341570 -12519.794066 -334.083932 -.124614
+P 27 23504.078679 3114.369318 -11994.301081 919.825764
+V 27 12688.420058 9749.224689 25848.356360 .043291
+P 28 12013.149988 -17031.742485 -16099.770484 21.824079
+V 28 1276.299760 20984.128423 -21306.663141 .016375
+P 29 -841.620554 -15815.417685 -21047.124600 229.886833
+V 29 24135.263791 -12790.685099 8592.394955 .032651
+P 30 -15475.168814 -1057.429729 21332.566002 804.893691
+V 30 152.483226 -27696.082605 -1148.760556 .142483
+P 31 12390.180178 10782.492628 -21248.819021 39.251069
+V 31 -22286.158759 13900.371542 -5704.503452 .309263
+* 2004 2 29 19 15 .00000000
+P 1 16909.222778 5610.177082 19879.623213 332.551880
+V 1 -20919.020430 13376.839086 14113.253528 .015354
+P 3 -2980.630620 19056.231151 -18262.105752 89.849812
+V 3 -19980.177055 11952.826937 16040.691401 .030526
+P 4 10966.238655 -11088.955360 21548.226586 -76.596474
+V 4 23600.984630 13692.334042 -4653.601084 -.091852
+P 5 -12691.182420 -18215.617115 14577.752795 19.749973
+V 5 594.671848 -18886.810471 -22722.013340 .013421
+P 6 -22485.918312 2065.009133 14272.735772 -1.348127
+V 6 13560.525073 -11847.187505 23247.944081 -.010580
+P 7 19650.843313 -17318.546622 4215.440792 611.884718
+V 7 6078.303884 164.490457 -30728.363439 -.078314
+P 8 17822.302667 -5150.655370 -19319.219791 355.549520
+V 8 20215.867164 12981.514780 15036.425262 -.088227
+P 9 -20146.142831 -16052.128516 -7674.598246 -32.331380
+V 9 9275.629358 1747.681326 -29285.130641 -.020362
+P 10 -1136.085324 -26367.714487 -902.872828 40.161664
+V 10 2397.252347 -1144.106134 32351.962455 .003140
+P 11 21960.833342 13936.726175 -5727.455876 99.841667
+V 11 -8345.849748 1065.518877 -29297.830824 .025459
+P 13 23298.652893 -5227.383947 11507.143396 -30.907420
+V 13 -11528.651924 9267.831986 27530.938397 .002278
+P 14 -19860.578979 16773.369785 5524.940924 -18.156932
+V 14 -7068.845218 1773.686276 -31063.044677 -.001313
+P 15 -11905.707476 10142.288186 -21724.345117 232.886945
+V 15 -22594.500561 -14762.835740 5314.419231 .052245
+P 16 -1932.726496 26185.662709 4054.534725 15.288296
+V 16 -2923.298413 -4964.257064 31218.388517 -.004162
+P 17 -14281.137866 -19698.870659 11664.169014 206.821185
+V 17 12595.959621 6886.011231 26729.144284 .195279
+P 18 -15079.652266 2373.900424 -21690.789875 -15.379149
+V 18 17.419317 -27621.362433 -3237.803688 -.026586
+P 20 13125.169991 14224.261373 18123.357590 -184.166753
+V 20 -628.071669 23180.157099 -17668.594485 .027657
+P 21 -23096.627240 -2982.207844 -13177.810844 73.080128
+V 21 -13071.830520 -10309.421572 24952.455463 .004817
+P 22 -12176.746329 16340.169647 -16891.766946 -40.315274
+V 22 -1258.292362 -21785.120042 -19928.988823 .088364
+P 24 -2801.651588 -17602.699926 19963.108540 8.095445
+V 24 21700.562937 11834.501062 13758.272667 .025773
+P 25 -7096.226167 14080.727356 21740.365257 61.699383
+V 25 -24544.256375 -10778.602608 -1072.145264 .010703
+P 26 -5255.736420 -14118.517140 -22077.752631 410.305007
+V 26 23705.158218 -13806.578424 3823.531665 -.124623
+P 27 24546.032071 3899.356637 -9571.744632 919.829142
+V 27 10402.396849 7727.085832 27906.844588 .043284
+P 28 12175.828915 -15043.277382 -17869.663491 21.825569
+V 28 2381.994516 23130.217133 -17966.712704 .016374
+P 29 1254.443897 -16997.684794 -20090.476143 229.889777
+V 29 22378.443562 -13414.548538 12634.736082 .032637
+P 30 -15521.716420 -3535.808931 21042.140122 804.906306
+V 30 -1177.378851 -27289.020366 -5294.918620 .142461
+P 31 10396.779289 12095.372164 -21583.849340 39.278869
+V 31 -21937.448187 15236.236885 -1728.835904 .309265
+* 2004 2 29 19 30 .00000000
+P 1 15006.292287 6900.481822 20977.792130 332.553609
+V 1 -21281.846259 15274.398246 10256.378030 .015770
+P 3 -4685.629687 20120.431095 -16665.376405 89.851894
+V 3 -17874.767605 11623.096611 19392.384825 .030446
+P 4 13093.232547 -9927.681785 20946.192029 -76.605091
+V 4 23580.793945 12085.764423 -8704.155729 -.091852
+P 5 -12662.206588 -19796.658148 12413.263835 19.750321
+V 5 106.563157 -16200.125631 -25307.855474 .013188
+P 6 -21200.244672 905.043129 16238.466054 -1.348871
+V 6 14933.723855 -13932.728579 20373.681052 -.010312
+P 7 20073.487171 -17221.611482 1421.413163 611.877949
+V 7 3341.701623 2049.932394 -31271.856074 -.078317
+P 8 19599.542497 -4070.142260 -17807.688924 355.541714
+V 8 19194.949821 11027.118095 18505.627939 -.088170
+P 9 -19177.229411 -15857.129908 -10239.318183 -32.334006
+V 9 12248.443224 2514.440696 -27630.706987 -.020615
+P 10 -913.048379 -26310.615987 2008.204973 40.161797
+V 10 2631.410543 2406.890076 32244.049917 .003163
+P 11 21075.790008 13998.516347 -8307.861367 99.843877
+V 11 -11316.208806 371.029786 -27962.724147 .025461
+P 13 22170.912319 -4289.027303 13878.143684 -30.907504
+V 13 -13453.878745 11604.026033 25081.792925 .002268
+P 14 -20360.116243 16860.318076 2689.809974 -18.157294
+V 14 -4056.515066 90.155845 -31849.561621 -.001318
+P 15 -13944.505182 8886.636518 -21064.892671 232.890513
+V 15 -22629.169257 -13110.304200 9318.717530 .052011
+P 16 -2218.658685 25589.232017 6821.284393 15.288089
+V 16 -3496.167410 -8262.244559 30176.868380 -.004159
+P 17 -13020.837245 -19040.834229 13967.411218 206.838571
+V 17 15400.078596 7661.863309 24383.139492 .195291
+P 18 -15143.696173 -119.277746 -21794.084936 -15.381177
+V 18 -1441.426374 -27690.650213 944.466689 -.026592
+P 20 13116.165071 16215.127619 16381.066076 -184.164528
+V 20 380.472113 20991.495724 -20992.835758 .027654
+P 21 -24182.707485 -3816.198205 -10827.539370 73.080826
+V 21 -10993.879749 -8249.944994 27202.009414 .004812
+P 22 -12342.690627 14286.485896 -18533.252773 -40.307294
+V 22 -2468.363814 -23776.602549 -16494.679961 .088345
+P 24 -766.297111 -16561.413749 21030.098947 8.097794
+V 24 23469.237199 11241.301021 9920.590668 .025918
+P 25 -9317.830302 13171.177525 21463.184054 61.699750
+V 25 -24743.690935 -9408.681142 -5079.292984 .010781
+P 26 -3177.142630 -15406.974814 -21547.880256 410.292872
+V 26 22416.862757 -14764.880466 7938.531234 -.124629
+P 27 25365.954323 4512.153118 -6985.746156 919.833461
+V 27 7764.930947 5934.813842 29476.391448 .043279
+P 28 12448.560244 -12882.461449 -19324.355843 21.826967
+V 28 3709.051071 24804.941115 -14312.859511 .016374
+P 29 3175.922142 -18217.109997 -18779.657043 229.893184
+V 29 20269.434643 -13608.090995 16451.059918 .032624
+P 30 -15684.091256 -5953.552261 20382.427591 804.919236
+V 30 -2407.197322 -26352.541857 -9342.919230 .142442
+P 31 8454.213867 13516.962336 -21558.854041 39.306820
+V 31 -21163.398186 16303.948950 2285.308597 .309266
+* 2004 2 29 19 45 .00000000
+P 1 13093.761711 8354.209958 21720.612483 332.556027
+V 1 -21136.224592 16993.489263 6227.631854 .016167
+P 3 -6193.256465 21134.981242 -14781.306253 89.854451
+V 3 -15608.416174 10847.037957 22416.597766 .030448
+P 4 15195.307227 -8917.205789 19986.232845 -76.613392
+V 4 23045.394397 10356.342735 -12596.347441 -.091848
+P 5 -12661.096111 -21124.375931 10035.526957 19.751616
+V 5 -18.580658 -13271.558689 -27454.357886 .012993
+P 6 -19811.770969 -442.104825 17929.720803 -1.350333
+V 6 15843.395761 -15992.323501 17157.012065 -.010100
+P 7 20258.579281 -16939.479196 -1397.242020 611.870743
+V 7 812.451790 4270.836318 -31273.963251 -.078314
+P 8 21262.604719 -3164.919634 -15997.583256 355.533663
+V 8 17681.646841 9101.098225 21662.444483 -.088108
+P 9 -17944.073497 -15612.288754 -12634.569137 -32.336876
+V 9 15132.976397 2856.456256 -25524.617874 -.020791
+P 10 -649.626236 -25937.140606 4884.094661 40.163118
+V 10 3291.752748 5869.124183 31571.098718 .003226
+P 11 19926.228763 14014.918879 -10746.396714 99.846120
+V 11 -14209.508091 56.235752 -26149.565316 .025466
+P 13 20891.591917 -3136.561627 16008.833703 -30.907287
+V 13 -14891.832125 14009.962370 22198.486412 .002259
+P 14 -20596.520205 16777.987314 -191.555328 -18.156958
+V 14 -1236.166276 -1979.828111 -32088.891363 -.001324
+P 15 -15963.741255 7786.544394 -20051.791221 232.894726
+V 15 -22157.196856 -11320.843107 13162.601879 .051864
+P 16 -2573.301257 24704.787655 9470.840669 15.287821
+V 16 -4443.957372 -11349.529369 28617.969182 -.004159
+P 17 -11512.417068 -18333.167416 16040.934371 206.856168
+V 17 18094.470575 7990.545502 21630.676746 .195307
+P 18 -15337.890337 -2593.954993 -21521.492328 -15.383280
+V 18 -2859.711493 -27211.839269 5103.219863 -.026608
+P 20 13184.146103 17991.223599 14355.590279 -184.162284
+V 20 1072.519023 18419.691564 -23952.519836 .027650
+P 21 -25063.782505 -4473.092968 -8295.238323 73.080666
+V 21 -8524.977598 -6386.633339 28992.168614 .004798
+P 22 -12626.900714 12074.809732 -19852.047305 -40.299345
+V 22 -3873.087307 -25287.686906 -12768.484845 .088330
+P 24 1410.949800 -15589.850529 21744.015894 8.101577
+V 24 24842.959927 10295.691512 5923.006431 .026040
+P 25 -11535.226204 12390.405635 20828.524197 61.701210
+V 25 -24448.190064 -7930.836151 -9005.413167 .010781
+P 26 -1232.145908 -16764.235781 -20652.177734 410.281602
+V 26 20747.510481 -15324.971473 11941.511940 -.124627
+P 27 25935.235670 4976.509160 -4281.260069 919.837121
+V 27 4844.992995 4438.258088 30537.365261 .043277
+P 28 12847.658078 -10593.937872 -20438.553048 21.828649
+V 28 5175.878322 25961.963874 -10411.648063 .016375
+P 29 4895.019581 -19432.978175 -17138.119272 229.895936
+V 29 17896.600495 -13330.153730 19973.112414 .032611
+P 30 -15949.522388 -8264.346289 19365.520398 804.932437
+V 30 -3454.296063 -24919.299093 -13220.849749 .142420
+P 31 6598.689450 15019.968159 -21173.289208 39.334770
+V 31 -20012.368102 17034.868462 6272.930186 .309266
+* 2004 2 29 20 0 .00000000
+P 1 11216.082369 9951.346631 22095.624496 332.556039
+V 1 -20514.135676 18447.408352 2094.228883 .016480
+P 3 -7492.934363 22059.310015 -12641.835875 89.858033
+V 3 -13268.411989 9618.647887 25059.455550 .030496
+P 4 17225.873312 -8064.490376 18685.553882 -76.621607
+V 4 21992.923996 8595.207000 -16265.204811 -.091847
+P 5 -12653.812525 -22180.918820 7485.717604 19.750588
+V 5 246.992681 -10189.128851 -29126.535421 .012939
+P 6 -18362.383297 -1970.193261 19318.061630 -1.351539
+V 6 16288.638479 -17939.260324 13651.608119 -.009806
+P 7 20228.164737 -16444.651258 -4191.491647 611.863450
+V 7 -1435.992982 6764.944094 -30729.456664 -.078311
+P 8 22768.258663 -2428.463872 -13919.363556 355.525829
+V 8 15702.884588 7290.886825 24455.626603 -.088048
+P 9 -16458.545316 -15355.267090 -14821.267325 -32.338933
+V 9 17842.621330 2789.042685 -23002.654027 -.020871
+P 10 -308.543851 -25259.896303 7674.394729 40.163274
+V 10 4351.110805 9140.849920 30344.882955 .003182
+P 11 18522.969799 14019.683173 -13001.344909 99.848233
+V 11 -16939.911845 109.057595 -23888.714687 .025468
+P 13 19505.678532 -1768.046683 17862.349405 -30.907148
+V 13 -15820.575384 16388.760520 18931.341677 .002248
+P 14 -20590.898436 16494.063626 -3069.622036 -18.157087
+V 14 1308.847508 -4378.830279 -31776.251958 -.001328
+P 15 -17917.380911 6850.280188 -18702.317552 232.898495
+V 15 -21171.826551 -9484.856086 16783.501319 .051755
+P 16 -3028.470391 23555.219198 11957.816281 15.287747
+V 16 -5721.221797 -14140.433414 26569.266331 -.004162
+P 17 -9769.832521 -17615.420190 17849.975609 206.874262
+V 17 20589.019056 7890.302620 18513.155054 .195319
+P 18 -15654.551946 -5001.519058 -20878.358954 -15.385519
+V 18 -4148.435802 -26203.963429 9166.924458 -.026624
+P 20 13298.088827 19521.544540 12082.084377 -184.160121
+V 20 1394.116383 15543.958641 -26496.717095 .027648
+P 21 -25707.256104 -4973.810462 -5623.596423 73.080650
+V 21 -5724.912256 -4790.175641 30294.336588 .004794
+P 22 -13043.172762 9750.377043 -20824.771058 -40.291035
+V 22 -5388.495823 -26276.885887 -8815.466203 .088314
+P 24 3691.839731 -14716.689764 22093.413419 8.102609
+V 24 25763.978800 9067.057027 1831.232027 .025900
+P 25 -13703.430463 11744.321438 19846.549365 61.702044
+V 25 -23650.776983 -6429.843106 -12786.933790 .010742
+P 26 548.163210 -18151.824627 -19403.843890 410.270279
+V 26 18770.305938 -15430.764152 15763.344254 -.124626
+P 27 26231.933313 5321.476727 -1504.613130 919.840961
+V 27 1721.291892 3289.069563 31078.862396 .043271
+P 28 13381.768394 -8225.686166 -21193.154507 21.830370
+V 28 6694.272463 26573.706222 -6333.933591 .016375
+P 29 6392.281539 -20601.697548 -15195.204037 229.898249
+V 29 15356.269981 -12558.199800 23138.489598 .032600
+P 30 -16298.128168 -10425.604103 18009.831698 804.945553
+V 30 -4243.885855 -23039.161818 -16860.376290 .142395
+P 31 4861.480162 16571.390515 -20432.483909 39.362523
+V 31 -18545.260283 17371.296825 10168.663190 .309269
+* 2004 2 29 20 15 .00000000
+P 1 9414.069091 11664.428582 22096.498574 332.558296
+V 1 -19464.138435 19557.869247 -2074.989078 .016863
+P 3 -8582.010464 22853.101549 -10283.481222 89.860750
+V 3 -10942.975078 7949.640348 27273.327272 .030406
+P 4 19138.992040 -7368.304456 17067.022368 -76.628913
+V 4 20439.652136 6892.718626 -19650.023300 -.091845
+P 5 -12604.569371 -22956.565124 4807.790286 19.751579
+V 5 914.252609 -7044.918000 -30297.682214 .013277
+P 6 -16893.285326 -3665.250973 20380.090420 -1.353648
+V 6 16285.445713 -19689.017246 9915.664860 -.009449
+P 7 20010.388348 -15715.848686 -6912.277030 611.856569
+V 7 -3341.999480 9456.711477 -29643.057067 -.078308
+P 8 24076.447115 -1846.641963 -11607.853881 355.518246
+V 8 13302.063007 5677.626735 26839.569849 -.087988
+P 9 -14740.100553 -15121.617532 -16763.808373 -32.340588
+V 9 20295.895880 2343.583536 -20106.248669 -.020846
+P 10 144.202276 -24300.345080 10330.226106 40.163069
+V 10 5764.198210 12127.695508 28587.404767 .003132
+P 11 16884.378318 14044.759900 -15034.064965 99.850070
+V 11 -19426.105764 501.743387 -21218.079646 .025473
+P 13 18059.255674 -190.341966 19406.665891 -30.907149
+V 13 -16237.728137 18642.395676 15337.408607 .002237
+P 14 -20371.345134 15982.074020 -5894.853476 -18.157327
+V 14 3507.108446 -7034.887620 -30916.350341 -.001333
+P 15 -19759.581226 6077.949838 -17039.224383 232.902229
+V 15 -19684.077996 -7692.759250 20122.436093 .051774
+P 16 -3611.212004 22170.657020 14239.681504 15.287639
+V 16 -7267.756331 -16560.217030 24066.586126 -.004162
+P 17 -7814.955475 -16924.758158 19363.760175 206.891913
+V 17 22798.429789 7395.725620 15077.737960 .195323
+P 18 -16078.205186 -7295.894262 -19876.382808 -15.388007
+V 18 -5224.001567 -24704.158680 13066.175024 -.026636
+P 20 13422.813543 20782.686866 9599.960442 -184.157664
+V 20 1307.188794 12453.459605 -28581.872459 .027646
+P 21 -26086.485810 -5345.099540 -2857.533068 73.081620
+V 21 -2665.814527 -3519.058386 31087.590772 .004801
+P 22 -13597.462940 7361.337333 -21434.107141 -40.282880
+V 22 -6924.932203 -26721.153678 -4705.078509 .088297
+P 24 6033.583826 -13963.899202 22072.816654 8.106157
+V 24 26189.471323 7634.679656 -2287.906604 .026106
+P 25 -15777.586638 11231.183405 18533.069449 61.703721
+V 25 -22361.267423 -4990.424178 -16362.094980 .010721
+P 26 2139.779208 -19526.929112 -17822.243453 410.259535
+V 26 16569.015882 -15042.354978 19336.340348 -.124627
+P 27 26241.516251 5580.056387 1297.268809 919.845567
+V 27 -1520.682504 2523.134393 31098.415659 .043263
+P 28 14051.441158 -5827.285366 -21575.575123 21.831554
+V 28 8173.162851 26632.292077 -2153.398601 .016376
+P 29 7657.133839 -21678.525649 -12985.560039 229.900909
+V 29 12748.784298 -11289.289637 25891.836076 .032593
+P 30 -16703.768724 -12399.926769 16339.715051 804.958188
+V 30 -4712.164176 -20777.152239 -20198.026975 .142370
+P 31 3267.894345 18133.619014 -19347.633074 39.390236
+V 31 -16833.347842 17268.817890 13907.675217 .309271
+* 2004 2 29 20 30 .00000000
+P 1 7723.490132 13459.439772 21723.135577 332.560708
+V 1 -18049.454624 20258.011415 -6210.581748 .017186
+P 3 -9465.684326 23477.887369 -7746.727322 89.863697
+V 3 -8717.812317 5869.265730 29017.795359 .030364
+P 4 20890.983488 -6819.450663 15158.743615 -76.637411
+V 4 18419.346325 5334.977058 -22695.243518 -.091843
+P 5 -12477.365880 -23449.935166 2047.717887 19.752121
+V 5 1976.979692 -3931.649550 -30949.693203 .013712
+P 6 -15443.506534 -5505.917795 21097.818194 -1.352937
+V 6 15865.966386 -21162.433205 6011.042630 -.009017
+P 7 19638.312625 -14739.088375 -9511.422551 611.849392
+V 7 -4858.301689 12260.056978 -28029.691831 -.078303
+P 8 25151.707914 -1398.414836 -9101.705002 355.511652
+V 8 10537.607803 4333.166596 28774.940119 -.087931
+P 9 -12815.193886 -14943.392671 -18430.549057 -32.343255
+V 9 22419.185083 1566.213214 -16881.897102 -.020813
+P 10 737.791103 -23087.972216 12805.134300 40.162768
+V 10 7469.456891 14746.311881 26330.448615 .003165
+P 11 15035.820913 14118.937314 -16809.645556 99.852159
+V 11 -21594.299012 1192.007049 -18182.526595 .025480
+P 13 16597.740733 1580.964328 20615.156831 -30.906882
+V 13 -16160.397286 20675.561262 11479.422779 .002224
+P 14 -19971.742798 15222.577881 -8618.562895 -18.157393
+V 14 5301.806983 -9864.175683 -29523.346939 -.001338
+P 15 -21446.281579 5461.648270 -15090.380915 232.907714
+V 15 -17722.435161 -6031.603225 23124.815654 .051910
+P 16 -4342.577472 20587.362794 16277.478026 15.287131
+V 16 -9010.995004 -18547.777039 21153.347142 -.004165
+P 17 -5677.003236 -16294.540180 20556.002511 206.909901
+V 17 24645.255893 6556.576710 11376.948515 .195313
+P 18 -16586.219766 -9435.107134 -18533.369169 -15.390541
+V 18 -6011.546469 -22766.142478 16734.845040 -.026647
+P 20 13520.489294 21759.593140 6952.190457 -184.154815
+V 20 791.098721 9243.912051 -30172.542038 .027642
+P 21 -26181.783418 -5618.342646 -43.495048 73.082106
+V 21 570.357865 -2617.452599 31358.948956 .004802
+P 22 -14287.539999 4957.047465 -21669.139089 -40.274902
+V 22 -8390.739566 -26616.793517 -509.876008 .088282
+P 24 8390.270805 -13345.978985 21682.780970 8.107248
+V 24 26093.082851 6084.695235 -6367.380955 .026147
+P 25 -17714.472742 10841.746721 16909.339656 61.703250
+V 25 -20606.089213 -3694.070954 -19671.790619 .010699
+P 26 3526.597453 -20843.951675 -15932.721276 410.247967
+V 26 14234.901998 -14138.036615 22595.512575 -.124626
+P 27 25957.336905 5787.731222 4077.603190 919.849098
+V 27 -4791.754270 2159.627531 30601.605171 .043253
+P 28 14849.044864 -3448.128947 -21579.931709 21.833072
+V 28 9522.447346 26149.673323 2054.960349 .016377
+P 29 8688.060801 -22619.346098 -10548.462089 229.903700
+V 29 10174.422464 -9540.232003 28185.856616 .032588
+P 30 -17135.156548 -14156.351693 14384.974158 804.971340
+V 30 -4808.931591 -18210.793210 -23176.337653 .142344
+P 31 1836.454268 19665.717391 -17935.706986 39.418714
+V 31 -14955.700358 16698.220614 17426.620930 .309276
+* 2004 2 29 20 45 .00000000
+P 1 6173.853760 15296.960186 20981.674006 332.559994
+V 1 -16345.526633 20495.001648 -10243.548524 .017523
+P 3 -10156.628905 23898.590174 -5075.339480 89.866147
+V 3 -6672.743211 3423.428143 30260.515009 .030249
+P 4 22441.949077 -6401.298557 12993.562261 -76.646098
+V 4 15982.008520 4000.538564 -25351.227181 -.091850
+P 5 -12237.527422 -23667.895198 -747.291395 19.753048
+V 5 3412.019402 -939.282658 -31073.239844 .014202
+P 6 -14048.503382 -7464.063197 21458.954630 -1.353556
+V 6 15077.186211 -22288.693366 2002.364260 -.008704
+P 7 19148.530049 -13508.487795 -11942.557210 611.842281
+V 7 -5954.004098 15081.631394 -25914.519549 -.078299
+P 8 25964.441214 -1056.797160 -6442.804065 355.505328
+V 8 7480.997234 3317.382738 30229.241823 -.087896
+P 9 -10716.457668 -14847.894609 -19794.236607 -32.346713
+V 9 24149.206626 516.029702 -13380.571857 -.020705
+P 10 1495.221555 -21659.146789 15055.941607 40.162191
+V 10 9391.582930 16927.560050 23614.920599 .003290
+P 11 13008.863003 14266.605571 -18297.500616 99.854695
+V 11 -23380.958560 2124.725646 -14833.180167 .025488
+P 13 15164.163104 3521.970420 21467.055442 -30.906827
+V 13 -15624.340717 22399.427233 7424.663303 .002213
+P 14 -19430.347979 14204.096211 -11193.756444 -18.157758
+V 14 6652.851287 -12774.151562 -27620.654015 -.001337
+P 15 -22936.738589 4985.909964 -12888.343563 232.913027
+V 15 -15331.928277 -4581.821518 25741.191967 .052029
+P 16 -5236.636916 18846.400338 18036.468231 15.286230
+V 16 -10868.875697 -20057.815058 17879.786257 -.004166
+P 17 -3391.703127 -15753.026003 21405.367591 206.927640
+V 17 26062.727662 5436.079187 7468.188129 .195302
+P 18 -17149.733728 -11382.687142 -16872.886765 -15.393197
+V 18 -6447.909133 -20458.083577 20111.154438 -.026655
+P 20 13552.247658 22445.979868 4184.548906 -184.151902
+V 20 -156.486721 6013.957273 -31241.975693 .027640
+P 21 -25981.172955 -5828.191405 2771.266882 73.082228
+V 21 3894.680149 -2113.615206 31103.550574 .004803
+P 22 -15102.975862 2586.318337 -21525.568561 -40.267055
+V 22 -9696.055775 -25979.591420 3695.859947 .088267
+P 24 10714.397051 -12869.490464 20929.869665 8.108816
+V 24 25465.894797 4506.828420 -10340.858731 .026271
+P 25 -19473.966815 10559.694386 15001.783431 61.703789
+V 25 -18427.531641 -2615.947347 -22660.419740 .010766
+P 26 4700.935781 -22056.214003 -13766.300039 410.237443
+V 26 11863.266503 -12715.669646 25479.899892 -.124626
+P 27 25380.822137 5980.943372 6790.454874 919.853227
+V 27 -8002.184797 2200.681353 29601.602205 .043243
+P 28 15759.023938 -1135.665254 -21207.093519 21.834707
+V 28 10656.748508 25156.942998 6216.332200 .016380
+P 29 9492.417786 -23382.421925 -7927.047915 229.906420
+V 29 7729.384180 -7346.916147 29982.119603 .032583
+P 30 -17557.176876 -15671.340414 12180.276544 804.983943
+V 30 -4499.622723 -15426.991544 -25744.837394 .142323
+P 31 578.322925 21124.860028 -16219.272591 39.447435
+V 31 -12996.280910 15646.922017 20664.646625 .309276
+* 2004 2 29 21 0 .00000000
+P 1 4787.435233 17133.526988 19884.403638 332.562045
+V 1 -14437.132969 20232.137542 -14106.368009 .018058
+P 3 -10674.316172 24084.957292 -2315.603088 89.868554
+V 3 -4878.534594 673.122620 30977.936736 .030236
+P 4 23757.154000 -6090.599679 10608.498351 -76.654155
+V 4 13192.036358 2957.451646 -27574.929027 -.091856
+P 5 -11853.194102 -23625.160171 -3529.586687 19.754941
+V 5 5180.175959 1848.253087 -30667.805596 .014687
+P 6 -12738.903514 -9505.661387 21457.114672 -1.353943
+V 6 13979.076674 -23008.027380 -2043.924305 -.008401
+P 7 18579.623791 -12026.756627 -14162.026995 611.834918
+V 7 -6615.929862 17824.481686 -23332.698252 -.078294
+P 8 26491.977746 -790.040052 -3675.635848 355.497914
+V 8 4214.324725 2675.917568 31177.324382 -.087879
+P 9 -8481.673645 -14856.604348 -20832.385096 -32.348237
+V 9 25435.134037 -737.104915 -9657.130679 -.020553
+P 10 2432.210815 -20055.721232 17043.530952 40.163201
+V 10 11444.619548 18619.103050 20489.993317 .003402
+P 11 10840.236118 14506.696743 -19471.897069 99.857493
+V 11 -24735.173108 3234.134870 -11226.617345 .025502
+P 13 13797.550824 5601.203977 21947.809043 -30.906568
+V 13 -14682.400623 23735.144491 3243.734028 .002204
+P 14 -18788.215802 12923.740983 -13575.950560 -18.157786
+V 14 7538.328667 -15667.053814 -25240.568605 -.001335
+P 15 -24194.952169 4628.442487 -10469.860965 232.917786
+V 15 -12572.638448 -3414.211392 27927.966426 .051931
+P 16 -6299.767343 16992.138136 19486.710212 15.285864
+V 16 -12753.062994 -21062.398970 14302.084825 -.004163
+P 17 -1000.214680 -15322.260738 21895.884924 206.945226
+V 17 26997.293502 4108.704302 3413.163122 .195290
+P 18 -17734.822552 -13108.851583 -14923.832209 -15.395680
+V 18 -6484.120231 -17859.952054 23138.638608 -.026663
+P 20 13479.842001 22844.433117 1344.810188 -184.149326
+V 20 -1519.454416 2861.434152 -31772.537276 .027640
+P 21 -25480.879274 -6011.083522 5539.433893 73.082485
+V 21 7214.370432 -2018.857407 30324.752081 .004809
+P 22 -16025.476419 295.684875 -21005.807065 -40.258808
+V 22 -10756.552177 -24844.165472 7837.542192 .088251
+P 24 12958.457062 -12532.884857 19826.551322 8.111924
+V 24 24316.794996 2991.012458 -14143.590604 .026496
+P 25 -21020.419627 10362.339622 12841.638414 61.704540
+V 25 -15882.435878 -1821.974945 -25276.744401 .010895
+P 26 5663.732125 -23117.752610 -11359.256665 410.225375
+V 26 9549.729222 -10793.319235 27933.930411 -.124623
+P 27 24521.385662 6195.567592 9391.397190 919.856933
+V 27 -11064.724969 2631.645758 28118.671873 .043232
+P 28 16758.484592 1066.265338 -20464.599943 21.836276
+V 28 11498.930612 23702.883152 10257.537362 .016385
+P 29 10085.891250 -23930.053443 -5167.492528 229.909345
+V 29 5502.001403 -4762.868689 31251.640004 .032582
+P 30 -17932.361647 -16929.470119 9764.486387 804.996600
+V 30 -3766.678576 -12518.594867 -27860.857837 .142304
+P 31 -502.996382 22467.871374 -14226.222429 39.473565
+V 31 -11040.803400 14119.820359 23564.436670 .309275
+* 2004 2 29 21 15 .00000000
+P 1 3578.579645 18923.159661 18449.585832 332.565337
+V 1 -12415.160069 19450.376661 -17734.031008 .018504
+P 3 -11044.072331 24012.824723 484.494492 89.870868
+V 3 -3394.078663 -2307.755651 31155.867191 .030275
+P 4 24808.220933 -5858.551416 8044.127641 -76.662122
+V 4 10125.882035 2260.707879 -29330.464513 -.091865
+P 5 -11296.701773 -23343.613284 -6251.864003 19.756280
+V 5 7227.703789 4356.065234 -29741.588479 .014922
+P 6 -11539.438258 -11591.892777 21091.939113 -1.354005
+V 6 12642.273183 -23274.026774 -6060.525626 -.008192
+P 7 17970.539850 -10305.346578 -16129.774305 611.828098
+V 7 -6849.229649 20391.955441 -20328.883794 -.078292
+P 8 26719.409604 -562.995612 -846.601410 355.490678
+V 8 827.472737 2438.412927 31601.821587 -.087863
+P 9 -6152.571185 -14984.325300 -21527.598003 -32.349390
+V 9 26240.320184 -2115.111733 -5769.711386 -.020336
+P 10 3556.391452 -18323.428485 18733.544981 40.163637
+V 10 13535.480803 19787.296627 17012.082859 .003476
+P 11 8570.612537 14851.841938 -20312.405639 99.859932
+V 11 -25620.556407 4446.443455 -7423.965636 .025515
+P 13 12531.488709 7780.663873 22049.321412 -30.906338
+V 13 -13402.272705 24616.957124 -990.706759 .002195
+P 14 -18087.524468 11387.518453 -15723.949008 -18.158268
+V 14 7955.258900 -18443.624517 -22423.744293 -.001331
+P 15 -25190.932651 4361.117496 -7875.317567 232.922282
+V 15 -9517.670229 -2587.247558 29648.046995 .051924
+P 16 -7530.242327 15070.640726 20603.550250 15.284955
+V 16 -14572.404799 -21551.864011 10481.410944 -.004158
+P 17 1452.160362 -15017.179396 22017.306192 206.962959
+V 17 27410.779124 2657.503782 -722.796766 .195276
+P 18 -18303.867762 -14591.432524 -12719.912038 -15.398012
+V 18 -6087.332344 -15060.456064 25767.008868 -.026671
+P 20 13267.286728 22966.170067 -1518.084291 -184.146868
+V 20 -3263.828789 -120.293560 -31755.957389 .027639
+P 21 -24685.529290 -6203.693774 8214.359611 73.082632
+V 21 10436.047896 -2327.116462 29034.134167 .004810
+P 22 -17029.540314 -1872.230889 -20118.938842 -40.250794
+V 22 -11496.957837 -23262.554814 11841.713457 .088235
+P 24 15076.539850 -12326.637258 18391.017860 8.114442
+V 24 22672.238594 1624.001973 -17713.285567 .026635
+P 25 -22323.885363 10221.578559 10464.525150 61.704895
+V 25 -13040.354337 -1366.202548 -27474.746915 .011030
+P 26 6424.400237 -23985.135889 -8752.576000 410.213951
+V 26 7386.377965 -8409.086419 29908.778855 -.124622
+P 27 23396.072338 6465.433471 11838.127164 919.861072
+V 27 -13897.507397 3421.902092 26179.655243 .043224
+P 28 17818.080967 3118.930997 -19366.451805 21.837632
+V 28 11983.233662 21851.826570 14108.385313 .016389
+P 29 10491.634047 -24230.074138 -2318.140202 229.912140
+V 29 3569.334138 -1857.112678 31975.238237 .032581
+P 30 -18222.455630 -17923.806109 7179.932794 805.008616
+V 30 -2610.217847 -9580.769828 -29490.157389 .142286
+P 31 -1411.670680 23652.814364 -11989.408035 39.502102
+V 31 -9173.453740 12139.522710 26073.287031 .309271
+* 2004 2 29 21 30 .00000000
+P 1 2553.306646 20618.994662 16701.181485 332.565917
+V 1 -10373.141262 18149.232837 -21065.058046 .018819
+P 3 -11295.899178 23665.158692 3276.124411 89.875491
+V 3 -2264.037460 -5435.148916 30789.846787 .030403
+P 4 25574.093675 -5672.068415 5343.915469 -76.670710
+V 4 6869.296124 1950.191095 -30589.573991 -.091876
+P 5 -10545.803960 -22851.370612 -8867.941368 19.758236
+V 5 9488.334448 6520.943566 -28311.279182 .015236
+P 6 -10468.102444 -13680.433732 20369.126475 -1.353983
+V 6 11145.359425 -23055.498724 -9980.289292 -.008215
+P 7 17358.939693 -8364.245447 -17810.159978 611.821399
+V 7 -6677.200726 22691.671766 -16956.456905 -.078290
+P 8 26640.152473 -338.615659 1996.699499 355.482760
+V 8 -2585.013560 2617.304051 31493.516116 -.087853
+P 9 -3773.490230 -15238.569059 -21867.835416 -32.352732
+V 9 26543.572335 -3534.518991 -1779.105093 -.020135
+P 10 4866.839353 -16510.143399 20096.986689 40.163309
+V 10 15567.751975 20418.306199 13243.689153 .003481
+P 11 6243.232209 15307.779044 -20804.266577 99.862105
+V 11 -26016.615594 5682.770984 -3489.916032 .025530
+P 13 11392.903757 10017.119770 21770.079440 -30.905598
+V 13 -11863.703766 24994.801018 -5205.242783 .002186
+P 14 -17369.865155 9610.292883 -17600.565407 -18.158587
+V 14 7919.607030 -21006.908846 -19218.509498 -.001325
+P 15 -25901.763749 4151.185032 -5148.120511 232.927232
+V 15 -6250.653548 -2144.820847 30871.450011 .051939
+P 16 -8918.138422 13128.009886 21368.025911 15.284801
+V 16 -16236.491965 -21535.024734 6482.893783 -.004156
+P 17 3917.441808 -14844.969526 21765.396172 206.980736
+V 17 27282.075183 1171.054478 -4871.541608 .195257
+P 18 -18817.071475 -15816.513878 -10299.052485 -15.400503
+V 18 -5242.124304 -12153.684354 27952.897015 -.026674
+P 20 12882.412265 22830.477767 -4354.874164 -184.144579
+V 20 -5339.054639 -2845.815746 -31193.417574 .027638
+P 21 -23608.057314 -6441.374393 10750.807196 73.083362
+V 21 13469.032046 -3015.149721 27251.417088 .004811
+P 22 -18083.419588 -3880.197584 -18880.555227 -40.243130
+V 22 -11854.219094 -21302.106245 15637.461267 .088223
+P 24 17025.876508 -12233.681720 16646.924326 8.114721
+V 24 20575.404360 486.087634 -20990.974698 .026675
+P 25 -23361.164375 10105.063160 7909.939091 61.705659
+V 25 -9981.224358 -1288.558430 -29214.475013 .011191
+P 26 7000.339215 -24619.228165 -5991.284374 410.202797
+V 26 5457.953024 -5620.095560 31363.669491 -.124619
+P 27 22028.952301 6820.944037 14091.033798 919.865270
+V 27 -16426.701244 4526.182360 23817.445829 .043213
+P 28 18903.161452 4989.989579 -17932.785547 21.838778
+V 28 12057.902788 19680.938644 17702.915258 .016395
+P 29 10739.116709 -24257.126353 571.385899 229.914936
+V 29 1994.283155 1288.565438 32143.679622 .032586
+P 30 -18390.010889 -18655.945903 4471.630344 805.020925
+V 30 -1047.996049 -6707.351681 -30607.357849 .142276
+P 31 -2159.251050 24640.569669 -9546.176260 39.530076
+V 31 -7473.591335 9745.909465 28144.184848 .309267
+* 2004 2 29 21 45 .00000000
+P 1 1709.232664 22174.970721 14668.488502 332.567714
+V 1 -8403.683108 16347.000804 -24042.490931 .019207
+P 3 -11463.108490 23032.830156 6010.501919 89.877941
+V 3 -1517.059195 -8618.013810 29885.327384 .030247
+P 4 26041.737727 -5495.213635 2553.513478 -76.678624
+V 4 3514.255178 2049.190195 -31331.984434 -.091883
+P 5 -9584.690231 -22181.627360 -11333.508891 19.760078
+V 5 11885.759734 8293.552798 -26401.723529 .015436
+P 6 -9535.573001 -15726.889635 19300.374042 -1.354094
+V 6 9571.848649 -22337.786833 -13737.230952 -.008244
+P 7 16779.605302 -6231.417754 -19172.703945 611.814541
+V 7 -6140.304970 24639.373334 -13276.490684 -.078287
+P 8 26256.216672 -79.531830 4806.215108 355.475557
+V 8 -5927.252758 3207.224656 30851.619328 -.087847
+P 9 -1389.951200 -15619.204899 -21846.623471 -32.355098
+V 9 26339.939020 -4909.485219 2251.902346 -.019800
+P 10 6353.950012 -14664.079937 21110.710808 40.164080
+V 10 17445.603070 20518.413654 9252.133760 .003675
+P 11 3902.432762 15873.035388 -20938.663178 99.864278
+V 11 -25919.528932 6862.300311 508.336802 .025546
+P 13 10401.124279 12263.618628 21115.162882 -30.905516
+V 13 -10155.232153 24836.288954 -9326.997369 .002175
+P 14 -16674.564311 7615.410395 -19173.277897 -18.158856
+V 14 7465.552469 -23265.983519 -15680.043272 -.001318
+P 15 -26312.422331 3962.669113 -2334.035132 232.929357
+V 15 -2862.851684 -2114.483472 31575.838797 .051892
+P 16 -10445.561577 11208.737974 21767.174373 15.284399
+V 16 -17659.187842 -21038.694436 2374.545768 -.004154
+P 17 6346.562291 -14804.723144 21142.145487 206.998305
+V 17 26608.270105 -259.899419 -8963.036232 .195239
+P 18 -19234.058574 -16778.757809 -7702.747653 -15.402713
+V 18 -3951.139697 -9235.581429 29660.478949 -.026674
+P 20 12298.275129 22463.852649 -7116.828237 -184.141953
+V 20 -7679.922097 -5240.824558 -30095.468373 .027640
+P 21 -22269.315734 -6756.641002 13105.674483 73.083876
+V 21 16228.572870 -4043.351407 25004.279167 .004814
+P 22 -19150.343156 -5697.633685 -17312.463897 -40.235169
+V 22 -11780.160097 -19042.747623 19157.777207 .088209
+P 24 18768.285390 -12230.133400 14623.051527 8.116951
+V 24 18084.768101 -351.979844 -23921.861597 .027056
+P 25 -24116.617037 9977.555732 5220.667657 61.708702
+V 25 -6792.619875 -1613.077551 -30462.858963 .011328
+P 26 7416.107636 -24986.824483 -3123.670415 410.192084
+V 26 3838.238826 -2500.638058 32267.069175 -.124614
+P 27 20450.289375 7287.833736 16113.719348 919.868927
+V 27 -18588.863379 5886.337183 21070.469765 .043203
+P 28 19975.125276 6654.503746 -16189.441861 21.840274
+V 28 11687.218208 17277.046234 20980.498106 .016402
+P 29 10862.746190 -23993.669063 3451.077197 229.917785
+V 29 823.324441 4582.813571 31757.606324 .032598
+P 30 -18399.946109 -19135.739006 1686.468679 805.033833
+V 30 885.328827 -3987.310603 -31196.196963 .142278
+P 31 -2764.093319 25396.345279 -6937.809168 39.558634
+V 31 -6012.557130 6995.020868 29736.866792 .309261
+* 2004 2 29 22 0 .00000000
+P 1 1035.815095 23547.503414 12385.691641 332.571437
+V 1 -6594.905495 14080.291947 -26614.846071 .019486
+P 3 -11580.824789 22115.088392 8639.778516 89.881840
+V 3 -1164.648284 -11761.808256 28457.639236 .030044
+P 4 26206.554117 -5290.736059 -279.971656 -76.686601
+V 4 155.680456 2563.522074 -31545.669717 -.091889
+P 5 -8404.764074 -21371.329909 -13606.843523 19.761652
+V 5 14336.477499 9640.099708 -24045.478459 .015606
+P 6 -8744.909070 -17686.320759 17903.226566 -1.354464
+V 6 8006.964224 -21123.505192 -17267.563814 -.008458
+P 7 16262.967650 -3941.911011 -20192.722156 611.807515
+V 7 -5294.416572 26162.474054 -9356.483695 -.078285
+P 8 25578.173911 250.339593 7534.209226 355.468685
+V 8 -9105.444113 4185.056288 29683.954642 -.087849
+P 9 952.822773 -16118.387201 -21463.202689 -32.355405
+V 9 25640.978492 -6154.937984 6259.231474 -.019504
+P 10 7999.665927 -12831.997344 21757.798297 40.163633
+V 10 19077.650589 20113.514131 5108.230360 .003989
+P 11 1592.137467 16538.899357 -20712.897165 99.866816
+V 11 -25342.298510 7905.526247 4502.212889 .025564
+P 13 9567.248070 14471.139367 20096.138173 -30.905434
+V 13 -8370.602568 24128.007533 -13284.908069 .002166
+P 14 -16037.104317 5433.995989 -20414.803732 -18.158878
+V 14 6644.040880 -25139.467335 -11869.422662 -.001308
+P 15 -26416.323544 3757.895827 519.524791 232.933938
+V 15 550.033821 -2506.269369 31746.988783 .052254
+P 16 -12087.184930 9354.134968 21794.241989 15.284011
+V 16 -18761.996808 -20106.533540 -1773.851931 -.004149
+P 17 8691.032755 -14887.400632 20155.893115 207.015821
+V 17 25405.155485 -1546.001902 -12926.431138 .195226
+P 18 -19515.505715 -17481.411254 -4975.357126 -15.405385
+V 18 -2235.043626 -6400.385583 30861.974163 -.026682
+P 20 11494.368747 21898.876012 -9756.577960 -184.139427
+V 20 -10209.055716 -7244.816241 -28481.786883 .027639
+P 21 -20697.402237 -7177.759458 15238.698209 73.084055
+V 21 18638.901478 -5357.173497 22328.072564 .004812
+P 22 -20189.952976 -7301.597991 -15442.279557 -40.227078
+V 22 -11243.532327 -16573.764332 22340.827386 .088198
+P 24 20271.464052 -12286.274209 12352.892866 8.119899
+V 24 15272.131765 -831.752627 -26456.155463 .027417
+P 25 -24582.714258 9802.418489 2442.135768 61.710555
+V 25 -3566.663077 -2346.685756 -31194.480172 .011098
+P 26 7702.288878 -25062.081845 -200.405610 410.180619
+V 26 2586.839061 860.483774 32597.712491 -.124603
+P 27 18695.513664 7886.103397 17873.474161 919.873149
+V 27 -20332.930161 7433.490134 17982.173669 .043188
+P 28 20992.932254 8095.655521 -14167.441966 21.841669
+V 28 10852.860240 14733.153664 23886.784907 .016407
+P 29 10900.311557 -23430.682208 6271.418361 229.920414
+V 29 84.939110 7928.234895 30827.279513 .032619
+P 30 -18221.010229 -19380.699030 -1127.612709 805.046894
+V 30 3139.578141 -1501.469458 -31249.605461 .142283
+P 31 -3250.501200 25891.055669 -4208.870848 39.586508
+V 31 -4850.720037 3957.276975 30818.823235 .309252
+* 2004 2 29 22 15 .00000000
+P 1 514.911426 24697.087075 9891.328814 332.574212
+V 1 -5027.024546 11402.887041 -28737.015263 .019687
+P 3 -11684.417947 20919.712232 11117.921459 89.884016
+V 3 -1200.742746 -14772.142816 26531.743138 .029686
+P 4 26072.492732 -5021.658812 -3108.728370 -76.695296
+V 4 -3111.939464 3481.291525 -31227.010050 -.091899
+P 5 -7005.152185 -20459.723583 -15649.479381 19.762974
+V 5 16752.896268 10543.420881 -21282.270374 .015764
+P 6 -8091.546751 -19514.806383 16200.831927 -1.356065
+V 6 6534.331078 -19432.649882 -20510.732428 -.008649
+P 7 15833.824971 -1536.663009 -20851.840325 611.800337
+V 7 -4208.372245 27203.128161 -5268.896464 -.078283
+P 8 24624.816809 684.226881 10134.040524 355.461624
+V 8 -12031.258070 5510.635591 28007.031434 -.087860
+P 9 3211.383675 -16720.767241 -20722.610895 -32.358196
+V 9 24474.489127 -7189.738722 10178.263312 -.019272
+P 10 9778.043254 -11057.486864 22027.809455 40.163573
+V 10 20380.609113 19247.838011 884.922664 .004274
+P 11 -645.641894 17289.684099 -20130.461388 99.869236
+V 11 -24314.266326 8737.476592 8422.907711 .025574
+P 13 8893.842580 16590.331411 18730.839417 -30.905118
+V 13 -6604.998170 22876.079125 -17010.955596 .002156
+P 14 -15487.704787 3103.949661 -21303.582977 -18.158564
+V 14 5520.674130 -26558.674988 -7852.558547 -.001296
+P 15 -26215.568581 3499.099670 3364.244893 232.940173
+V 15 3891.257796 -3312.142382 31379.166680 .052685
+P 16 -13811.077828 7600.887738 21448.792450 15.283390
+V 16 -19477.147485 -18797.272278 -5891.885535 -.004147
+P 17 10904.622991 -15076.118969 18821.346472 207.032654
+V 17 23707.047195 -2602.915225 -16691.266056 .195215
+P 18 -19624.735964 -17935.995060 -2163.364276 -15.407306
+V 18 -131.805896 -3737.159340 31538.019918 -.026695
+P 20 10457.588477 21172.870234 -12228.922179 -184.136887
+V 20 -12839.868591 -8813.246342 -26380.782530 .027641
+P 21 -18926.724610 -7727.486405 17113.127803 73.083991
+V 21 20635.993391 -6889.112571 19265.429992 .004814
+P 22 -21159.893906 -8677.472711 -13302.905414 -40.218858
+V 22 -10231.368695 -13990.216478 25131.103936 .088180
+P 24 21510.081334 -12367.769348 9874.167217 8.121492
+V 24 12220.163776 -909.437946 -28549.879930 .027774
+P 25 -24760.298432 9543.184869 -378.314701 61.710361
+V 25 -396.695813 -3478.608687 -31392.266674 .010853
+P 26 7894.089854 -24827.678594 2726.417708 410.169319
+V 26 1746.504091 4363.322772 32345.402381 -.124592
+P 27 16804.032810 8629.163999 19341.705739 919.877548
+V 27 -21621.804033 9090.511815 14600.519307 .043172
+P 28 21914.704023 9305.138681 -11902.385761 21.842854
+V 28 9554.574034 12144.792221 26374.493545 .016415
+P 29 10891.321356 -22568.045172 8984.235032 229.923436
+V 29 -211.219769 11225.083534 29372.153762 .032643
+P 30 -17827.095175 -19415.136182 -3922.449213 805.059650
+V 30 5651.012353 680.407772 -30769.621081 .142281
+P 31 -3647.619300 26102.512189 -1406.467681 39.614452
+V 31 -4034.893663 715.071859 31366.210735 .309237
+* 2004 2 29 22 30 .00000000
+P 1 121.634676 25589.763755 7227.679274 332.576594
+V 1 -3769.205925 8383.935843 -30371.097779 .019721
+P 3 -11807.930545 19462.831062 13401.561397 89.884512
+V 3 -1602.021055 -17558.441781 24141.770994 .029422
+P 4 25651.861678 -4652.859888 -5885.000181 -76.703862
+V 4 -6197.907091 4773.294996 -30380.850539 -.091904
+P 5 -5392.926830 -19486.829930 -17426.825242 19.764501
+V 5 19046.587667 11003.457183 -18158.364250 .015918
+P 6 -7563.591212 -21170.990259 14221.604139 -1.356141
+V 6 5232.695995 -17302.071994 -23410.435983 -.008751
+P 7 15510.308846 938.939790 -21138.368891 611.793595
+V 7 -2960.935594 27720.669183 -1089.539797 -.078281
+P 8 23422.518978 1251.025104 12560.943026 355.454372
+V 8 -14625.079387 7128.111685 25845.995651 -.087874
+P 9 5345.487612 -17403.987443 -19635.695559 -32.358375
+V 9 22883.693926 -7939.778795 13944.655128 -.018998
+P 10 11656.132137 -9379.405940 21916.914223 40.164064
+V 10 21282.587745 17981.965263 -3344.077382 .004622
+P 11 -2772.230331 18103.275182 -19201.006809 99.871751
+V 11 -22880.006174 9290.780618 12202.577382 .025586
+P 13 8374.986847 18573.269974 17043.041637 -30.904670
+V 13 -4951.238541 21105.971192 -20441.326002 .002147
+P 14 -15050.120567 668.679503 -21824.162130 -18.158738
+V 14 4173.020369 -27470.288868 -3699.039228 -.001287
+P 15 -25720.882192 3150.049940 6151.687788 232.945170
+V 15 7066.511556 -4506.106681 30475.409365 .052845
+P 16 -15579.795192 5979.804979 20736.712283 15.283204
+V 16 -19750.277067 -17182.375038 -9909.651643 -.004142
+P 17 12944.993843 -15346.764856 17159.487653 207.049647
+V 17 21565.886528 -3354.885240 -20188.793444 .195211
+P 18 -19529.219741 -18161.689676 685.393483 -15.409766
+V 18 2304.657260 -1326.535381 31677.919928 -.026703
+P 20 9182.914209 20326.388662 -14491.589968 -184.134570
+V 20 -15479.864024 -9919.059676 -23829.061756 .027642
+P 21 -16996.833634 -8422.012014 18696.358642 73.084219
+V 21 22169.942461 -8561.204856 15865.756207 .004814
+P 22 -22017.492017 -9819.313608 -10931.917374 -40.211198
+V 22 -8749.589200 -11389.149187 27480.431471 .088160
+P 24 22466.628735 -12437.073684 7228.260479 8.123576
+V 24 9019.522888 -557.750728 -30165.647601 .028280
+P 25 -24658.538281 9165.154026 -3192.203744 61.710795
+V 25 2626.173448 -4980.454263 -31048.087723 .010778
+P 26 8029.729766 -24275.643811 5604.308389 410.157816
+V 26 1341.160259 7900.728078 31511.535696 -.124579
+P 27 14817.920102 9523.214869 20494.322450 919.881997
+V 27 -22433.498255 10774.743685 10977.479893 .043150
+P 28 22699.353261 10283.220610 -9433.786565 21.843752
+V 28 7810.128244 9606.349144 28404.031459 .016422
+P 29 10875.299636 -21414.580346 11543.496611 229.926796
+V 29 -74.413655 14374.986825 27420.308212 .032663
+P 30 -17198.349491 -19269.048214 -6650.461165 805.072126
+V 30 8344.779724 2502.056810 -29767.155010 .142288
+P 31 -3988.115036 26016.371357 1420.567884 39.642372
+V 31 -3596.248641 -2640.186001 31364.632628 .309233
+* 2004 2 29 22 45 .00000000
+P 1 -174.524742 26198.402688 4440.080678 332.578645
+V 1 -2876.810372 5105.557765 -31487.145873 .019746
+P 3 -11982.565384 17768.421750 15450.789494 89.887104
+V 3 -2328.927478 -20037.457840 21330.365238 .029453
+P 4 24964.839533 -4152.587988 -8561.846349 -76.711539
+V 4 -9018.541024 6394.054964 -29020.458079 -.091905
+P 5 -3583.033127 -18491.909487 -18908.721542 19.765676
+V 5 21131.571969 11037.101649 -14725.851280 .016042
+P 6 -7142.398150 -22617.550042 11998.795294 -1.356986
+V 6 4172.797687 -14784.317885 -25915.625578 -.008955
+P 7 15303.144551 3436.690406 -21047.528343 611.786355
+V 7 -1637.319819 27693.299793 3104.128892 -.078280
+P 8 22004.314447 1973.968707 14772.796082 355.446480
+V 8 -16818.981366 8967.922851 23234.443577 -.087896
+P 9 7319.426019 -18139.447466 -18219.049701 -32.360947
+V 9 20925.884809 -8340.907344 17495.223720 -.018800
+P 10 13595.132938 -7830.519503 21427.901076 40.163404
+V 10 21725.905610 16390.226606 -7505.621303 .004921
+P 11 -4753.588408 18951.942977 -17940.202462 99.873793
+V 11 -21097.627834 9508.463705 15775.528395 .025597
+P 13 7996.651576 20375.160641 15062.033140 -30.904425
+V 13 -3496.091731 18861.564806 -23517.487050 .002140
+P 14 -14740.704057 -1824.379900 -21967.470307 -18.158929
+V 14 2687.449818 -27838.442331 519.096892 -.001279
+P 15 -24951.237692 2677.636786 8834.090659 232.949816
+V 15 9987.366638 -6044.992941 29047.686912 .052992
+P 16 -17351.686734 4514.794285 19670.113720 15.282945
+V 16 -19542.617490 -15343.233301 -13758.892456 -.004142
+P 17 14775.215686 -15668.920162 15197.355996 207.067644
+V 17 19049.612659 -3738.090714 -23353.398499 .195210
+P 18 -19201.926541 -18184.442050 3522.511139 -15.413068
+V 18 5006.430496 762.206272 31279.767537 -.026702
+P 20 7673.784927 19401.598014 -16505.949410 -184.132150
+V 20 -18034.157076 -10553.542581 -20870.764442 .027645
+P 21 -14951.063375 -9270.147335 19960.514146 73.084164
+V 21 23206.852501 -10287.952580 12184.599014 .004819
+P 22 -22721.452883 -10729.855747 -8370.864990 -40.203089
+V 22 -6822.838642 -8865.755664 29348.807439 .088144
+P 24 23131.997441 -12454.979453 4459.599440 8.127393
+V 24 5765.653987 232.810185 -31273.386758 .028770
+P 25 -24294.572128 8636.946520 -5950.739900 61.710396
+V 25 5416.518059 -6806.994351 -30163.217658 .010807
+P 26 8148.687688 -23407.812537 8381.431874 410.146709
+V 26 1374.759848 11362.686789 30109.313736 -.124564
+P 27 12780.520525 10566.875551 21312.071664 919.885343
+V 27 -22761.811743 12400.898767 7168.529245 .043130
+P 28 23308.178147 11038.478099 -6804.357100 21.845948
+V 28 5654.589398 7207.515719 29943.957223 .016432
+P 29 10890.107136 -19987.765848 13906.062364 229.929980
+V 29 467.821815 17284.552355 25007.760015 .032677
+P 30 -16322.053302 -18976.816027 -9265.436946 805.084526
+V 30 11137.751028 3922.605370 -28261.627753 .142295
+P 31 -4306.699217 25626.795602 4222.556349 39.670059
+V 31 -3548.831902 -6011.484145 30809.747131 .309227
+* 2004 2 29 23 0 .00000000
+P 1 -408.351119 26503.739712 1576.183654 332.581069
+V 1 -2389.142816 1659.921676 -32063.804714 .019780
+P 3 -12235.296093 15867.501509 17229.886680 89.890790
+V 3 -3327.372142 -22136.490464 18147.834367 .029492
+P 4 24038.707521 -3493.858049 -11093.894045 -76.720077
+V 4 -11500.156905 8283.451995 -27167.375085 -.091909
+P 5 -1597.923471 -17511.966226 -20069.929868 19.765642
+V 5 22927.521773 10677.428051 -11041.862213 .016196
+P 6 -6803.425686 -23822.534854 9569.979596 -1.357735
+V 6 3414.506663 -11945.865220 -27981.457152 -.009141
+P 7 15215.238002 5907.304747 -20581.519336 611.779642
+V 7 -325.436743 27118.953698 7234.740718 -.078278
+P 8 20408.725894 2869.507966 16730.870997 355.438536
+V 8 -18559.313466 10949.337881 20214.086156 -.087924
+P 9 9103.211266 -18893.322403 -16494.865191 -32.361868
+V 9 18670.547764 -8341.588594 20768.897802 -.018521
+P 10 15551.780291 -6436.398469 20570.068392 40.163515
+V 10 21669.324326 14557.607787 -11528.399699 .005334
+P 11 -6561.434107 19803.389961 -16369.488932 99.876427
+V 11 -19036.553563 9346.355406 19079.390512 .025604
+P 13 7737.400639 21955.928191 12822.095527 -30.904270
+V 13 -2316.842600 16203.522679 -26187.161882 .002130
+P 14 -14567.769012 -4325.406857 -21730.982635 -18.159293
+V 14 1155.621210 -27646.131041 4728.636657 -.001271
+P 15 -23933.178393 2053.356370 11365.171684 232.953587
+V 15 12574.555921 -7869.910755 27116.933730 .053258
+P 16 -19082.377377 3222.109247 18267.136290 15.282913
+V 16 -18832.601880 -13367.990893 -17374.108692 -.004140
+P 17 16365.108367 -16007.073208 12967.699763 207.085618
+V 17 16239.829734 -3703.619603 -26124.080840 .195199
+P 18 -18622.477563 -18035.828259 6299.808089 -15.415949
+V 18 7894.062482 2473.627844 30350.446041 -.026695
+P 20 5942.151466 18440.615662 -18237.651413 -184.129635
+V 20 -20409.081414 -10726.470741 -17556.786189 .027643
+P 21 -12835.025989 -10272.790929 20882.965704 73.085057
+V 21 23730.166459 -11979.586551 8282.896221 .004834
+P 22 -23233.511112 -11420.177772 -5664.504850 -40.195367
+V 22 -4493.570593 -6509.652365 30705.061052 .088128
+P 24 23505.756046 -12382.250500 1614.963024 8.131089
+V 24 2555.359178 1453.323927 -31851.003509 .029091
+P 25 -23692.846173 7931.958162 -8605.681665 61.713297
+V 25 7897.899069 -8897.644004 -28748.638975 .011238
+P 26 8289.886652 -22235.879843 11007.669360 410.136665
+V 26 1831.029395 14640.860847 28163.612462 -.124549
+P 27 10735.017989 11751.083856 21780.831158 919.889449
+V 27 -22616.514412 13884.063574 3232.112152 .043103
+P 28 23706.362360 11587.223720 -4059.260928 21.847487
+V 28 3138.958353 5029.982918 30971.287966 .016439
+P 29 10970.351187 -18313.133744 16032.361376 229.932884
+V 29 1370.997782 19868.729459 22177.685007 .032688
+P 30 -15193.225041 -18575.755717 -11723.278193 805.097515
+V 30 13941.627480 4917.861865 -26280.491914 .142299
+P 31 -4638.544125 24936.791641 6949.895701 39.697919
+V 31 -3888.782512 -9299.935596 29707.664809 .309215
+* 2004 2 29 23 15 .00000000
+P 1 -617.379314 26495.134114 -1314.845737 332.584288
+V 1 -2327.801191 -1854.094787 -32088.827299 .019513
+P 3 -12587.658413 13797.049606 18707.969467 89.893156
+V 3 -4531.031512 -23796.171948 14651.147814 .029392
+P 4 22906.828322 -2655.674872 -13438.072620 -76.728284
+V 4 -13581.700380 10368.902398 -24851.167883 -.091914
+P 5 533.088487 -16580.348352 -20890.548558 19.766458
+V 5 24362.771754 9972.327578 -7167.713126 .016548
+P 6 -6517.327203 -24760.518768 6976.454413 -1.358488
+V 6 3004.349558 -8864.806786 -29570.179235 -.009277
+P 7 15241.605837 8302.203882 -19749.437531 611.772633
+V 7 887.946639 26015.295540 11226.720972 -.078276
+P 8 18678.381598 3946.436634 18400.540264 355.431132
+V 8 -19808.792719 12983.483390 16834.253782 -.087957
+P 9 10673.571540 -19627.804088 -14490.697344 -32.364211
+V 9 16197.007262 -7905.185580 23707.735557 -.018248
+P 10 17479.898918 -5214.614297 19359.004387 40.163495
+V 10 21089.621986 12576.289023 -15344.140023 .005816
+P 11 -8174.143815 20621.993564 -14515.727872 99.878621
+V 11 -16774.848709 8775.011366 22056.250090 .025609
+P 13 7569.384919 23281.629438 10361.901236 -30.903911
+V 13 -1478.248214 13207.023532 -28405.185462 .002119
+P 14 -14531.281117 -6783.926510 -21118.767594 -18.158968
+V 14 -329.241885 -26895.895592 8856.491564 -.001264
+P 15 -22699.855809 1254.636518 13700.932758 232.959167
+V 15 14760.965579 -9908.333083 24712.932259 .053474
+P 16 -20726.363803 2109.894465 16551.649800 15.282369
+V 16 -17616.830177 -11348.118476 -20693.635530 -.004140
+P 17 17692.341543 -16322.075298 10508.493384 207.103202
+V 17 13228.828054 -3219.917668 -28445.951888 .195186
+P 18 -17778.056753 -17751.714894 8970.114674 -15.417381
+V 18 10879.455368 3768.103369 28905.507431 -.026679
+P 20 4008.205936 17483.865428 -19657.198946 -184.126868
+V 20 -22515.745371 -10465.552461 -13943.901392 .027641
+P 21 -10695.014679 -11422.700141 21446.779202 73.085992
+V 21 23741.369299 -13545.553572 4226.097673 .004837
+P 22 -23519.965148 -11909.041737 -2859.983200 -40.188073
+V 22 -1820.424191 -4401.417854 31527.321443 .088108
+P 24 23596.113873 -12181.283545 -1257.262436 8.134162
+V 24 -516.739414 3076.490572 -31884.959637 .029272
+P 25 -22884.166954 7029.650398 -11110.217872 61.714300
+V 25 10005.887093 -11178.606312 -26825.156180 .011212
+P 26 8489.896803 -20781.046134 13435.649616 410.124521
+V 26 2674.145393 17633.095660 25710.504711 -.124537
+P 27 8723.008347 13059.265722 21891.851516 919.893504
+V 27 -22023.031978 15142.722690 -770.917682 .043071
+P 28 23864.326126 11952.650236 -1245.342803 21.848914
+V 28 328.236185 3144.497851 31471.662515 .016447
+P 29 11145.942610 -16423.381144 17886.999078 229.935932
+V 29 2575.605071 22053.810318 18979.568868 .032699
+P 30 -13814.940579 -18104.583077 -13982.697556 805.110037
+V 30 16666.204054 5480.968922 -23858.659099 .142305
+P 31 -5017.664766 23958.204608 9554.010991 39.725673
+V 31 -4594.304807 -12408.671445 28075.102732 .309198
+* 2004 2 29 23 30 .00000000
+P 1 -840.251938 26171.010341 -4183.163552 332.586261
+V 1 -2695.701226 -5334.546243 -31559.445334 .019181
+P 3 -13054.771854 11598.702206 19859.539115 89.896216
+V 3 -5864.148249 -24972.705482 10902.798150 .029263
+P 4 21607.407141 -1624.038780 -15554.320405 -76.735613
+V 4 -15216.937872 12568.011299 -22109.067217 -.091920
+P 5 2774.731991 -15725.496739 -21356.348627 19.768719
+V 5 25377.028542 8982.600454 -3167.990102 .016894
+P 6 -6251.245713 -25413.523711 4262.565198 -1.359113
+V 6 2973.522562 -5628.057232 -30651.932729 -.009507
+P 7 15369.648676 10575.257794 -18567.038428 611.766141
+V 7 1920.960991 24418.870778 15007.907563 -.078276
+P 8 16858.470112 5205.310245 19751.934810 355.423200
+V 8 -20548.003159 14976.755443 13151.234615 -.087995
+P 9 12014.714172 -20302.527350 -12239.135376 -32.367002
+V 9 13591.647435 -7011.769983 26257.996699 -.017926
+P 10 19332.069578 -4174.256122 17816.263405 40.164822
+V 10 19982.461437 10541.961167 -18888.709218 .006348
+P 11 -9577.396731 21370.196959 -12410.752191 99.881102
+V 11 -14396.207414 7781.067293 24653.720379 .025615
+P 13 7459.588401 24325.636955 7723.839747 -30.904093
+V 13 -1029.994848 9958.953232 -30134.231723 .002109
+P 14 -14622.887609 -9150.572256 -20141.417247 -18.159189
+V 14 -1676.136865 -25609.747573 12830.996643 -.001257
+P 15 -21289.816206 265.948470 15800.444580 232.964959
+V 15 16494.215851 -12076.752968 21874.035314 .053554
+P 16 -22238.667528 1178.045436 14552.862709 15.282040
+V 16 -15910.355352 -9374.863742 -23660.666705 -.004138
+P 17 18743.241367 -16572.788466 7862.321279 207.120908
+V 17 10116.056899 -2274.567000 -30271.692255 .195172
+P 18 -16664.046439 -17370.769240 11488.042437 -15.419988
+V 18 13869.077080 4623.199250 26968.932098 -.026669
+P 20 1899.798367 16568.514302 -20740.433471 -184.124341
+V 20 -24273.404622 -9815.193300 -10093.802552 .027638
+P 21 -8576.373308 -12704.581706 21641.076986 73.086177
+V 21 23260.020682 -14898.103510 83.165005 .004844
+P 22 -23553.036902 -12221.938504 -5.985166 -40.179889
+V 22 1124.030563 -2609.532627 31803.291735 .088092
+P 24 23419.565797 -11817.734064 -4107.875307 8.137185
+V 24 -3361.718510 5057.376222 -31370.744196 .029250
+P 25 -21904.499835 5916.619986 -13419.848854 61.715352
+V 25 11690.662017 -13565.618940 -24423.295906 .011190
+P 26 8781.240406 -19073.266485 15621.722485 410.113832
+V 26 3850.313829 20247.673614 22796.445766 -.124530
+P 27 6783.123417 14467.775240 21641.945922 919.896839
+V 27 -21021.628385 16101.724367 -4777.906783 .043039
+P 28 23758.880609 12163.729999 1589.649608 21.850598
+V 28 -2700.996149 1608.376395 31439.372108 .016453
+P 29 11440.850926 -14357.231119 19439.285028 229.938589
+V 29 4009.572302 23779.973996 15468.309376 .032711
+P 30 -12198.356123 -17601.848261 -16005.861168 805.122073
+V 30 19222.669772 5622.413038 -21037.846918 .142315
+P 31 -5475.332898 22711.360957 11988.305890 39.754174
+V 31 -5626.424451 -15246.723638 25939.271036 .309176
+* 2004 2 29 23 45 .00000000
+P 1 -1115.021239 25538.963547 -6979.111733 332.587458
+V 1 -3476.829283 -8680.224696 -30482.578598 .018851
+P 3 -13644.631284 9317.273936 20664.923593 89.898584
+V 3 -7244.708100 -25639.465389 6969.561983 .029099
+P 4 20182.078624 -392.694300 -17406.254191 -76.743978
+V 4 -16376.123586 14791.614320 -18985.498265 -.091929
+P 5 5086.910061 -14969.887291 -21459.024808 19.769547
+V 5 25923.683829 7779.567418 890.420529 .017227
+P 6 -5970.261589 -25771.673071 1474.963295 -1.359946
+V 6 3336.483636 -2328.179644 -31205.438785 -.009779
+P 7 15579.751482 12684.416307 -17056.362419 611.759457
+V 7 2700.122993 22383.461431 18511.031215 -.078279
+P 8 14995.089628 6638.184197 20760.534084 355.415409
+V 8 -20776.225759 16834.492954 9227.444239 -.088029
+P 9 13118.822668 -20876.134286 -9777.374575 -32.369680
+V 9 10944.787833 -5659.364714 28371.250796 -.017531
+P 10 21061.340608 -3315.784053 15968.947771 40.164871
+V 10 18362.534143 8550.063655 -22103.108200 .006876
+P 11 -10764.536779 22009.993812 -10090.823624 99.883489
+V 11 -11986.710000 6367.964747 26825.925190 .025618
+P 13 7371.276925 25069.549629 4953.284536 -30.903710
+V 13 -1004.750847 6554.662925 -31345.401864 .002098
+P 14 -14826.284774 -11378.806447 -18815.861536 -18.159328
+V 14 -2799.979427 -23828.341453 16583.184131 -.001248
+P 15 -19745.577641 -920.343117 17626.599049 232.970225
+V 15 17738.718279 -14283.827334 18646.715948 .053612
+P 16 -23576.482533 418.388583 12304.841222 15.281857
+V 16 -13746.275972 -7535.709025 -26224.211691 -.004140
+P 17 19513.259977 -16717.858546 5075.634658 207.139064
+V 17 7004.183954 -875.275005 -31562.906451 .195148
+P 18 -15284.363590 -16932.873627 13810.727487 -15.422446
+V 18 16767.382254 5034.416977 24572.772185 -.026664
+P 20 -348.437207 15727.049086 -21468.931723 -184.121539
+V 20 -25612.526908 -8834.632450 -6072.071332 .027634
+P 21 -6521.894094 -14095.504629 21461.304560 73.086633
+V 21 22323.096735 -15955.840698 -4074.543767 .004850
+P 22 -23312.003729 -12389.880258 2848.132042 -40.171599
+V 22 4256.078461 -1187.836883 31530.331778 .088076
+P 24 23000.226175 -11262.043551 -6887.687567 8.139418
+V 24 -5899.721023 7334.856200 -30313.215599 .029279
+P 25 -20793.557357 4587.397892 -15493.248294 61.716508
+V 25 12919.063213 -15967.206449 -21582.974924 .011173
+P 26 9190.877036 -17150.136770 17526.845006 410.102896
+V 26 5290.177861 22407.097863 19477.152296 -.124528
+P 27 4949.750910 15946.595781 21033.622470 919.901018
+V 27 -19666.094225 16695.102533 -8725.072728 .043007
+P 28 23374.146217 12253.913910 4397.841290 21.851976
+V 28 -5863.387176 463.547643 30877.271380 .016459
+P 29 11872.100706 -12158.088185 20663.678367 229.941627
+V 29 5591.148792 25003.296688 11703.287179 .032722
+P 30 -10362.436754 -17104.398160 -17758.969281 805.135276
+V 30 21526.829599 5369.403283 -17865.860296 .142327
+P 31 -6038.593967 21224.369124 14209.091442 39.782475
+V 31 -6930.513879 -17732.717204 23337.478564 .309148
+EOF
diff --git a/dev/oldtests/data/nga12601.apc b/dev/oldtests/data/nga12601.apc
new file mode 100644
index 0000000..53d65c6
--- /dev/null
+++ b/dev/oldtests/data/nga12601.apc
@@ -0,0 +1,5303 @@
+#aV2004 3 1 0 0 .00000000 96 DD+AD WGS84 FIT NGA
+## 1260 86400.00000000 900.00000000 53065 .0000000000000
++ 27 1 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 20
++ 21 22 24 25 26 27 28 29 30 31 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+++ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
+%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc
+%f 0.0000000 0.000000000 0.00000000000 0.000000000000000
+%f 0.0000000 0.000000000 0.00000000000 0.000000000000000
+%i 0 0 0 0 0 0 0 0 0
+%i 0 0 0 0 0 0 0 0 0
+/* NGA, ST. LOUIS,MO.
+/* EPHEMERIS COMPUTED FROM 3 DAYS OF DATA
+/* CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+/* CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
+* 2004 3 1 0 0 .00000000
+P 1 -1477.462541 24615.520801 -9654.092934 332.587619
+V 1 -4636.747702 -11794.481268 -28874.867777 .018615
+P 3 -14357.696288 6999.166490 21110.604716 89.900549
+V 3 -8587.856412 -25787.899206 2921.192797 .029019
+P 4 18674.369840 1036.408642 -18961.791358 -76.752293
+V 4 -17047.076638 16947.106246 -15531.497948 -.091901
+P 5 7426.017421 -14329.206909 -21196.357120 19.770918
+V 5 25971.645784 6442.282618 4939.349133 .017613
+P 6 -5638.938257 -25833.546882 -1338.192207 -1.361167
+V 6 4090.193441 940.051750 -31218.550801 -.010038
+P 7 15846.180089 14593.159724 -15245.234414 611.752095
+V 7 3163.404529 19977.742299 21675.015668 -.078231
+P 8 13133.554904 8228.689043 21407.673929 355.407372
+V 8 -20511.545066 18464.772993 5130.430024 -.088093
+P 9 13986.260585 -21307.921758 -7146.688062 -32.370830
+V 9 8347.312320 -3864.538178 30005.495469 -.017013
+P 10 22622.920026 -2631.219159 13849.205334 40.167157
+V 10 16262.988489 6692.087152 -24934.349173 .007386
+P 11 -11736.637178 22504.448659 -7596.006549 99.885710
+V 11 -9631.479772 4556.013333 28534.372982 .025693
+P 13 7265.592622 25503.796626 2097.813563 -30.903721
+V 13 -1416.886052 3094.419740 -32018.666854 .002150
+P 14 -15117.908665 -13426.533734 -17165.069979 -18.159062
+V 14 -3625.065277 -21609.424744 20048.007690 -.001204
+P 15 -18112.049133 -2303.430975 19146.813134 232.973584
+V 15 18477.112348 -16433.898596 15084.937811 .053621
+P 16 -24700.755328 -184.825246 9845.945846 15.281225
+V 16 -11174.645922 -5910.968901 -28339.970793 -.004087
+P 17 20007.077933 -16717.538341 2197.893491 207.156163
+V 17 3994.909671 950.011924 -32291.309095 .195124
+P 18 -13651.483309 -16477.502743 15898.536669 -15.424435
+V 18 19480.320470 5015.270762 21756.681594 -.026637
+P 20 -2696.214405 14986.046344 -21830.307417 -184.119114
+V 20 -26477.436488 -7595.523655 -1947.096833 .027705
+P 21 -4570.305533 -15565.625800 20909.392159 73.087161
+V 21 20983.646265 -16647.098668 -8174.492453 .004880
+P 22 -22784.060250 -12447.991049 5653.205039 -40.164056
+V 22 7484.055879 -173.598597 30715.357085 .088098
+P 24 22368.871584 -10490.806567 -9548.377790 8.141876
+V 24 -8063.036922 9833.725008 -28726.790946 .029282
+P 25 -19593.231983 3044.937319 -17293.084305 61.717970
+V 25 13675.981602 -18288.312851 -18352.925840 .011148
+P 26 9738.938237 -15055.467569 19117.354515 410.091394
+V 26 6911.930555 24051.218949 15816.221276 -.124540
+P 27 3251.893927 17460.285396 20075.152792 919.904996
+V 27 -18021.961108 16868.667896 -12548.249902 .043027
+P 28 22702.204479 12259.680477 7131.992536 21.853693
+V 28 -9067.907267 -264.814933 29796.582351 .016544
+P 29 12449.042380 -9872.539083 21540.148739 229.944616
+V 29 7232.102461 25697.172087 7747.419066 .032703
+P 30 -8333.402666 -16645.921978 -19212.769704 805.148254
+V 30 23502.138826 4764.651826 -14395.819216 .142357
+P 31 -6728.954081 19532.103170 16176.466645 39.810241
+V 31 -8438.532661 -19798.193901 20316.457078 .309226
+* 2004 3 1 0 15 .00000000
+P 1 -1959.466899 23425.563364 -12161.439706 332.588996
+V 1 -6123.846511 -14588.911471 -26762.519776 .018512
+P 3 -15186.793359 4690.728683 21189.425775 89.902542
+V 3 -9809.408559 -25427.703043 -1170.920568 .028874
+P 4 17128.094819 2652.961739 -20193.714453 -76.760586
+V 4 -17235.620335 18941.942537 -11804.018241 -.091911
+P 5 9746.399081 -13811.794455 -20572.279171 19.773014
+V 5 25506.618697 5054.443748 8910.398888 .017998
+P 6 -5222.905061 -25606.220657 -4128.075445 -1.363704
+V 6 5214.051040 4083.221037 -30688.647766 -.010281
+P 7 16138.230151 16271.711673 -13166.655873 611.746464
+V 7 3262.755162 17282.363470 24446.067105 -.078239
+P 8 11316.728181 9952.447163 21680.957790 355.399633
+V 8 -19790.206618 19782.175425 931.720112 -.088132
+P 9 14625.465468 -21559.510682 -4391.798682 -32.372941
+V 9 5887.169090 -1662.287581 31126.250204 -.016505
+P 10 23975.785296 -2104.658317 11493.653594 40.167857
+V 10 13734.177527 5052.076088 -27336.210165 .007712
+P 11 -12502.264628 22819.192558 -4969.468865 99.888026
+V 11 -7411.373094 2381.780737 29748.700015 .025691
+P 13 7103.231888 25627.913156 -793.603190 -30.903952
+V 13 -2261.902434 -320.313789 -32143.159692 .002136
+P 14 -15467.921565 -15257.544619 -15217.646286 -18.159197
+V 14 -4088.158385 -19025.627931 23165.493655 -.001201
+P 15 -16434.851378 -3873.845402 20333.667833 232.977091
+V 15 18711.005267 -18430.763654 11249.344084 .053721
+P 16 -25577.637422 -654.132069 7218.193343 15.280916
+V 16 -8260.737135 -4570.656820 -29971.112760 -.004092
+P 17 20238.326163 -16535.479936 -719.388329 207.173534
+V 17 1184.730567 3153.912431 -32439.678565 .195104
+P 18 -11786.147429 -16042.124168 17715.726344 -15.426910
+V 18 21918.807169 4596.694345 18567.335688 -.026636
+P 20 -5098.941415 14365.181867 -21818.413695 -184.116424
+V 20 -26828.441766 -6179.052638 2211.043659 .027704
+P 21 -2754.911023 -17079.206125 19993.802666 73.087272
+V 21 19308.794604 -16912.997265 -12144.269748 .004880
+P 22 -21964.878861 -12433.953635 8361.113180 -40.155891
+V 22 10711.825684 413.742463 29374.565937 .088083
+P 24 21561.724213 -9487.920011 -12043.353503 8.145760
+V 24 -9798.766179 12467.412985 -26635.460574 .029350
+P 25 -18345.936216 1300.763257 -18786.777934 61.718934
+V 25 13965.011500 -20434.163833 -14789.880229 .011076
+P 26 10437.768266 -12837.611871 20365.608025 410.080492
+V 26 8624.970562 25139.556454 11883.548383 -.124542
+P 27 1712.211354 18969.141558 18780.569920 919.908589
+V 27 -16164.275208 16582.279373 -16183.720678 .042993
+P 28 21743.463133 12218.989350 9746.239509 21.855367
+V 28 -12221.112867 -569.040941 28216.602974 .016550
+P 29 13172.920821 -7548.753535 22054.451724 229.947534
+V 29 8841.117012 25853.106406 3666.204262 .032706
+P 30 -6143.914458 -16255.631420 -20342.999859 805.161347
+V 30 25082.450052 3864.606435 -10685.342446 .142366
+P 31 -7561.297361 17674.910166 17855.125869 39.838459
+V 31 -10071.888743 -21390.403301 16931.417347 .309192
+* 2004 3 1 0 30 .00000000
+P 1 -2587.578749 22001.429052 -14457.261457 332.590412
+V 1 -7871.304667 -16986.752307 -24180.958167 .018398
+P 3 -16117.332741 2436.633399 20900.678239 89.906343
+V 3 -10829.308055 -24586.273170 -5235.097419 .028818
+P 4 15585.739214 4438.463716 -21080.167896 -76.768714
+V 4 -16965.356084 20687.190475 -7865.115788 -.091924
+P 5 12001.896803 -13418.369883 -19596.849856 19.775846
+V 5 24531.777439 3701.108095 12736.030582 .018225
+P 6 -4690.414144 -25104.982378 -6846.062002 -1.365482
+V 6 6670.541998 7012.829626 -29622.848809 -.010213
+P 7 16421.574917 17697.969010 -10858.108784 611.739191
+V 7 2965.983200 14386.607087 26778.534336 -.078253
+P 8 9583.441658 11777.820923 21574.557863 355.391735
+V 8 -18665.230317 20711.358774 -3294.466016 -.088169
+P 9 15052.526619 -21596.471434 -1560.155164 -32.373303
+V 9 3645.877880 894.827300 31707.584178 -.015908
+P 10 25084.151634 -1713.089763 8942.741446 40.169430
+V 10 10841.783578 3703.460529 -29269.866294 .007934
+P 11 -13076.952079 22923.834312 -2256.722622 99.890647
+V 11 -5399.836569 -103.169632 30447.263325 .025690
+P 13 6846.141685 25450.478972 -3671.435906 -30.903774
+V 13 -3516.594164 -3590.630551 -31717.315580 .002124
+P 14 -15841.454928 -16842.733643 -13007.323512 -18.159154
+V 14 -4141.083634 -16161.681644 25881.797730 -.001192
+P 15 -14758.604309 -5613.578782 21165.466243 232.981912
+V 15 18460.964294 -20181.542329 7206.269638 .054028
+P 16 -26179.754487 -1017.801006 4466.553851 15.280719
+V 16 -5082.716169 -3571.740495 -31088.940685 -.004100
+P 17 20228.932032 -16140.413281 -3623.670905 207.190517
+V 17 -1339.139296 5671.324581 -32002.521156 .195084
+P 18 -9716.766890 -15660.681876 19231.044341 -15.429398
+V 18 24002.032447 3825.796664 15057.745253 -.026626
+P 20 -7509.233433 13876.516019 -21433.443917 -184.113806
+V 20 -26643.368872 -4672.700035 6331.726416 .027697
+P 21 -1102.434177 -18595.882305 18729.459418 73.087661
+V 21 17377.157479 -16710.046609 -15912.952797 .004888
+P 22 -20858.850357 -12386.374849 10925.595898 -40.147915
+V 22 13842.389603 573.120164 27533.010824 .088069
+P 24 20619.018812 -8245.463833 -14328.606202 8.147248
+V 24 -11070.942842 15141.220775 -24072.609498 .029234
+P 25 -17092.919688 -625.229562 -19947.177481 61.719719
+V 25 13808.312272 -22314.189185 -10957.519750 .010954
+P 26 11291.310957 -10547.624153 21250.472594 410.069207
+V 26 10333.912875 25652.716689 7753.613731 -.124547
+P 27 346.276608 20430.552887 17169.586970 919.912022
+V 27 -14174.978487 15811.706685 -19569.138272 .042963
+P 28 20506.723735 12169.696304 12196.804866 21.856587
+V 28 -15230.469876 -459.076488 26164.331757 .016557
+P 29 14036.754040 -5234.842529 22198.318231 229.950290
+V 29 10327.271716 25480.873040 -473.228680 .032712
+P 30 -3832.027688 -15957.122618 -21130.753373 805.173178
+V 30 26214.383029 2737.202011 -6795.695551 .142379
+P 31 -8543.084096 15697.095566 19215.070441 39.866623
+V 31 -11744.791417 -22474.422087 13244.863563 .309154
+* 2004 3 1 0 45 .00000000
+P 1 -3381.739491 20381.727382 -16501.250722 332.592823
+V 1 -9799.691226 -18925.846893 -21174.278450 .018240
+P 3 -17127.828810 278.335318 20250.068484 89.909734
+V 3 -11574.890782 -23307.468102 -9200.679908 .028592
+P 4 14086.895678 6366.702645 -21605.076766 -76.776981
+V 4 -16276.767102 22100.999993 -3781.030317 -.091936
+P 5 14147.428106 -13142.062808 -18286.126710 19.777650
+V 5 23067.803858 2465.331221 16350.665186 .018401
+P 6 -4013.806979 -24352.735110 -9444.608005 -1.364309
+V 6 8406.587587 9648.697996 -28038.032797 -.010139
+P 7 16659.750985 18858.117709 -8360.793075 611.731921
+V 7 2257.935991 11384.778551 28635.532439 -.078268
+P 8 7967.076832 13666.968235 21089.394946 355.383319
+V 8 -17204.318835 21190.288785 -7472.621014 -.088205
+P 9 15290.454746 -21389.837019 1298.879591 -32.374693
+V 9 1695.191703 3738.306756 31733.031454 -.015556
+P 10 25918.746503 -1427.476144 6240.059773 40.171010
+V 10 7664.394981 2706.293095 -30704.388546 .008059
+P 11 -13482.401084 22793.230297 495.181382 99.893159
+V 11 -3660.060145 -2834.146513 30617.568067 .025686
+P 13 6459.169025 24988.723245 -6486.432643 -30.903592
+V 13 -5139.926749 -6623.818419 -30748.860362 .002114
+P 14 -16200.059413 -18161.045367 -10572.369087 -18.159428
+V 14 -3752.720918 -13111.171982 28150.146695 -.001187
+P 15 -13125.249793 -7496.557320 21626.695040 232.987827
+V 15 17765.741642 -21600.486514 3026.587612 .054309
+P 16 -26487.243094 -1308.554807 1638.193428 15.280169
+V 16 -1728.817400 -2955.894156 -31673.431421 -.004106
+P 17 20008.113469 -15507.631775 -6462.461382 207.208353
+V 17 -3502.478697 8421.988944 -30986.401144 .195067
+P 18 -7478.538342 -15362.219649 20418.265346 -15.431802
+V 18 25660.488027 2764.004256 11286.468391 -.026621
+P 20 -9878.533922 13524.082288 -20681.929041 -184.111125
+V 20 -25918.444581 -3166.769583 10344.930585 .027693
+P 21 367.879760 -20072.148038 17137.549554 73.088815
+V 21 15275.755079 -16012.176347 -19412.501749 .004899
+P 22 -19478.998429 -12343.134549 13303.024980 -40.140397
+V 22 16781.497458 321.668002 25224.031172 .088055
+P 24 19583.406930 -6764.271589 -16363.541120 8.149573
+V 24 -11862.014942 17755.955595 -21080.631111 .029254
+P 25 -15872.634487 -2705.327803 -20753.128873 61.719827
+V 25 13245.669101 -23845.826963 -6925.217451 .010878
+P 26 12294.866262 -8237.334288 21757.658263 410.057446
+V 26 11942.751130 25592.860329 3503.705587 -.124548
+P 27 -837.912528 21800.496591 15267.428892 919.916105
+V 27 -12139.962448 14549.998482 -22644.541462 .042932
+P 28 19008.951873 12147.986249 14442.670969 21.858211
+V 28 -18007.624940 38.032092 23674.016016 .016563
+P 29 15025.524587 -2977.231115 21969.558502 229.953167
+V 29 11603.486163 24608.030757 -4603.069726 .032729
+P 30 -1439.953834 -15767.458718 -21562.768908 805.185705
+V 30 26859.242244 1459.209393 -2790.908067 .142395
+P 31 -9673.866894 13645.252277 20232.203845 39.895033
+V 31 -13367.938684 -23034.496536 9325.205352 .309112
+* 2004 3 1 1 0 .00000000
+P 1 -4354.290422 18609.912202 -18257.431969 332.595414
+V 1 -11820.108816 -20361.048009 -17794.512261 .018114
+P 3 -18190.700626 -1747.331141 19249.568588 89.911741
+V 3 -11983.826418 -21649.742655 -12999.291853 .028292
+P 4 12666.809366 8404.542142 -21758.477812 -76.785790
+V 4 -15225.671055 23111.863012 378.842671 -.091943
+P 5 16140.539088 -12968.742708 -16661.939688 19.779040
+V 5 21152.272679 1424.851908 19691.789387 .018485
+P 6 -3170.829581 -23379.106025 -11878.121674 -1.365082
+V 6 10355.551327 11922.065149 -25960.652092 -.009981
+P 7 16815.717797 19746.918108 -5718.818318 611.725215
+V 7 1140.956275 8372.495283 29989.333973 -.078285
+P 8 6494.361245 15577.167426 20233.187943 355.375495
+V 8 -15487.133439 21172.971472 -11527.435839 -.088242
+P 9 15368.163720 -20917.437142 4134.915625 -32.376024
+V 9 94.068101 6786.062211 31196.343747 -.015155
+P 10 26457.844978 -1214.060711 3431.613659 40.171391
+V 10 4290.640654 2105.081255 -31617.118413 .008039
+P 11 -13745.445664 22408.561639 3238.489527 99.895592
+V 11 -2242.542995 -5735.730736 30256.517320 .025685
+P 13 5911.600159 24267.812004 -9190.449391 -30.903718
+V 13 -7074.599386 -9336.752826 -29254.650014 .002104
+P 14 -16503.304443 -19200.112340 -7954.910940 -18.159814
+V 14 -2910.322972 -9972.962535 29931.647921 -.001185
+P 15 -11572.478292 -9489.446529 21708.375452 232.992487
+V 15 16680.744966 -22612.566099 -1215.590443 .054319
+P 16 -26488.514197 -1562.114004 -1218.325676 15.279770
+V 16 1705.883252 -2747.836993 -31713.636197 -.004107
+P 17 19611.063145 -14620.212964 -9184.400494 207.226191
+V 17 -5247.204443 11313.787176 -29409.909056 .195054
+P 18 -5112.305160 -15169.696965 21256.651107 -15.434191
+V 18 26838.599858 1484.654383 7316.726695 -.026617
+P 20 -12158.784869 13303.793839 -19576.631887 -184.109094
+V 20 -24668.495933 -1750.811241 14182.380176 .027687
+P 21 1644.866596 -21462.987990 15245.201826 73.089700
+V 21 13096.543285 -14812.087248 -22579.150057 .004893
+P 22 -17846.574695 -12339.781748 15453.120343 -40.132489
+V 22 19441.116296 -306.152213 22488.567186 .088042
+P 24 18498.260008 -5054.160829 -18111.762536 8.153917
+V 24 -12173.598757 20211.829204 -17710.325854 .029391
+P 25 -14719.220300 -4904.880959 -21189.924453 61.721660
+V 25 12332.781320 -24958.030377 -2766.602016 .010868
+P 26 13435.220470 -5957.422118 21879.890851 410.046429
+V 26 13358.970033 24983.227547 -787.849054 -.124551
+P 27 -1840.147278 23035.133901 13104.568852 919.919983
+V 27 -10145.877626 12808.276192 -25353.453980 .042903
+P 28 17274.759264 12186.880258 16446.209364 21.860038
+V 28 -20471.517453 879.258862 20786.631549 .016570
+P 29 16116.675055 -819.102582 21372.081082 229.956224
+V 29 12589.817803 23278.828019 -8655.766915 .032735
+P 30 987.328495 -15696.506030 -21631.638173 805.198716
+V 30 26994.419595 113.272870 1263.135322 .142412
+P 31 -10945.147240 11566.506362 20888.794802 39.923450
+V 31 -14852.363279 -23074.544269 5245.215830 .309067
+* 2004 3 1 1 15 .00000000
+P 1 -5509.278397 16732.667394 -19694.835945 332.597341
+V 1 -13837.754949 -21265.953147 -14100.711814 .017957
+P 3 -19273.318381 -3609.360817 17917.157243 89.914775
+V 3 -12006.624401 -19683.739854 -16566.017975 .028148
+P 4 11355.090449 10512.986515 -21536.753567 -76.794061
+V 4 -13881.065795 23661.532292 4543.075923 -.091952
+P 5 17942.873081 -12877.640660 -14751.565940 19.779453
+V 5 18838.398116 648.948326 22701.047702 .018572
+P 6 -2145.740177 -22219.295198 -14103.808662 -1.367340
+V 6 12439.829278 13778.250275 -23426.335901 -.010019
+P 7 16853.425891 20367.657478 -2978.370244 611.718069
+V 7 -365.374897 5443.030173 30821.540780 -.078303
+P 8 5184.435054 17462.360769 19020.367298 355.367509
+V 8 -13602.042150 20631.558795 -15385.330969 -.088277
+P 9 15319.199450 -20164.990287 6897.481631 -32.377146
+V 9 -1113.897916 9945.427945 30102.031708 -.014899
+P 10 26688.031195 -1035.845120 565.063679 40.171417
+V 10 815.976750 1927.127167 -31993.964113 .008046
+P 11 -13896.819515 21758.174973 5925.595527 99.897891
+V 11 -1183.172564 -8724.611061 29370.477360 .025685
+P 13 5178.530638 23319.846139 -11737.259131 -30.903354
+V 13 -9249.228987 -11658.916499 -27260.365818 .002102
+P 14 -16710.463915 -19956.561336 -5200.197285 -18.160089
+V 14 -1620.106119 -6847.424952 31195.951888 -.001179
+P 15 -10132.325453 -11552.763419 21408.291603 232.998006
+V 15 15275.801565 -23156.671471 -5444.334512 .054480
+P 16 -26180.712732 -1815.620566 -4053.874151 15.279745
+V 16 5122.973879 -2954.326811 -31207.931274 -.004107
+P 17 19077.381485 -13469.915138 -11740.329627 207.243572
+V 17 -6533.782926 14246.616039 -27303.260392 .195034
+P 18 -2663.203095 -15099.043230 21731.327007 -15.436619
+V 18 27496.866160 70.120655 3215.432488 -.026615
+P 20 -14304.083811 13203.671784 -18136.339486 -184.106394
+V 20 -22926.457684 -510.071810 17778.663735 .027687
+P 21 2725.721606 -22723.599982 13085.040898 73.089951
+V 21 10932.700974 -13121.849218 -25354.751642 .004891
+P 22 -15990.352591 -12408.038937 17339.599413 -40.124459
+V 22 21742.632757 -1260.073347 19374.373956 .088024
+P 24 17405.939374 -3133.806788 -19541.795256 8.157045
+V 24 -12026.454429 22412.458831 -14020.084573 .029325
+P 25 -13661.175872 -7183.478675 -21249.616154 61.723621
+V 25 11138.848113 -25594.309648 1442.012582 .010801
+P 26 14691.137126 -3755.575207 21616.928194 410.035016
+V 26 14497.417906 23866.777253 -5043.384825 -.124565
+P 27 -2667.926829 24092.448481 10716.362465 919.923640
+V 27 -8276.800005 10615.885510 -27644.052399 .042875
+P 28 15335.616752 12314.869151 18173.760518 21.861689
+V 28 -22551.231630 2007.282249 17549.298165 .016572
+P 29 17280.889721 1201.032583 20415.827676 229.958981
+V 29 13216.504845 21552.532949 -12564.956047 .032734
+P 30 3403.563646 -15746.547079 -21335.931122 805.211336
+V 30 26614.236148 -1215.264616 5299.626513 .142429
+P 31 -12340.578452 9506.756320 21173.796688 39.951296
+V 31 -16113.253796 -22617.796419 1080.391246 .309016
+* 2004 3 1 1 30 .00000000
+P 1 -6842.095450 14798.169609 -20788.084151 332.599076
+V 1 -15755.756159 -21633.891268 -10157.871762 .017804
+P 3 -20339.252269 -5283.549557 16276.458854 89.916228
+V 3 -11608.612810 -17489.445705 -19840.484138 .028008
+P 4 10174.645326 12648.488701 -20942.761441 -76.802687
+V 4 -12322.437271 23707.478632 8639.418007 -.091962
+P 5 19521.498949 -12842.241685 -12587.307602 19.781401
+V 5 16193.176073 195.588120 25325.301940 .018906
+P 6 -930.161203 -20912.709106 -16082.472295 -1.368912
+V 6 14573.922098 15178.757498 -20479.285700 -.009966
+P 7 16739.331335 20731.781421 -186.870941 611.711170
+V 7 -2225.167996 2683.853855 31123.056634 -.078322
+P 8 4048.229099 19274.855177 17471.850174 355.359052
+V 8 -11642.473624 19557.720553 -18975.990078 -.088307
+P 9 15180.263851 -19126.898896 9537.008155 -32.377877
+V 9 -1902.438516 13116.725926 28465.650070 -.014760
+P 10 26604.658622 -854.187319 -2311.050684 40.172722
+V 10 -2660.764373 2181.556288 -31829.469563 .007971
+P 11 -13969.776476 20838.152618 8509.888049 99.900083
+V 11 -501.895587 -11712.740892 27975.156368 .025681
+P 13 4242.013908 22182.608625 -14083.327199 -30.903037
+V 13 -11581.072114 -13534.935127 -24800.071773 .002098
+P 14 -16782.221452 -20435.977290 -2355.803832 -18.160014
+V 14 92.907339 -3832.626821 31921.756312 -.001174
+P 15 -8829.998726 -13642.254019 20731.086886 233.002280
+V 15 13632.298906 -23188.284033 -9583.402739 .054539
+P 16 -25569.854095 -2106.002199 -6819.600239 15.279271
+V 16 8424.358562 -3563.852943 -30164.109880 -.004107
+P 17 18449.330615 -12057.706607 -14084.305554 207.261026
+V 17 -7342.780681 17116.640854 -24707.538248 .195012
+P 18 -179.139016 -15158.488022 21833.567417 -15.439180
+V 18 27613.416073 -1391.427987 -947.864002 -.026612
+P 20 -16272.265890 13204.386675 -16385.556240 -184.103861
+V 20 -20742.203629 477.894480 21072.316483 .027685
+P 21 3615.938605 -23811.135280 10694.623891 73.090235
+V 21 8874.829141 -10972.701623 -27688.043648 .004886
+P 22 -13945.649368 -12574.470311 18930.752005 -40.116241
+V 22 23619.675545 -2476.128873 15935.154777 .088007
+P 24 16346.104329 -1030.257747 -20627.723192 8.159057
+V 24 -11459.663756 24268.800232 -10074.865123 .029262
+P 25 -12720.275470 -9496.375301 -20931.183128 61.723797
+V 25 9743.558732 -25715.162043 5623.282190 .010749
+P 26 16034.179334 -1674.805368 20975.428472 410.024112
+V 26 15283.772796 22304.039012 -9187.476879 -.124577
+P 27 -3336.075211 24933.867555 8142.574766 919.927255
+V 27 -6610.873106 8019.854302 -29470.376480 .042849
+P 28 13228.825809 12554.721890 19596.158173 21.863321
+V 28 -24188.496576 3352.675084 14014.634046 .016571
+P 29 18483.134820 3050.593618 19116.624830 229.961434
+V 29 13426.655385 19501.244486 -16266.379215 .032739
+P 30 5762.758340 -15912.184991 -20680.236369 805.224549
+V 30 25730.193013 -2441.642633 9251.785570 .142449
+P 31 -13836.504620 7508.982403 21083.017081 39.979345
+V 31 -17073.571025 -21705.606961 -3092.729305 .308965
+* 2004 3 1 1 45 .00000000
+P 1 -8339.469802 12854.297785 -21517.869811 332.600223
+V 1 -17479.115407 -21478.113407 -6035.711432 .017647
+P 3 -21349.673093 -6753.194655 14356.290466 89.919368
+V 3 -10771.322147 -15153.025933 -22767.823376 .028098
+P 4 9140.870921 14764.454459 -19985.851001 -76.810900
+V 4 -10636.622604 23224.778188 12596.066736 -.091971
+P 5 20850.047104 -12831.415996 -10205.976512 19.783625
+V 5 13294.980799 108.988005 27517.636559 .019184
+P 6 476.362212 -19501.433466 -17779.250392 -1.371993
+V 6 16667.862834 16102.727555 -17171.472524 -.009759
+P 7 16443.798590 20858.227816 2607.850473 611.704221
+V 7 -4387.761904 173.501431 30893.885917 -.078343
+P 8 3088.183079 20967.110437 15614.679192 355.350673
+V 8 -9703.032967 17963.208171 -22233.850480 -.088330
+P 9 14989.593654 -17806.704137 12005.823546 -32.377653
+V 9 -2263.856514 16197.238606 26313.790554 -.014647
+P 10 26211.995278 -630.455594 -5148.090645 40.173579
+V 10 -6040.907010 2859.016763 -31126.916000 .007863
+P 11 -13998.620132 19652.588994 10946.579127 99.902392
+V 11 -202.034798 -14610.687106 26095.299650 .025680
+P 13 3091.944516 20898.108890 -16188.540917 -30.902816
+V 13 -13979.181774 -14926.536170 -21915.642273 .002093
+P 14 -16682.328012 -20652.527841 529.196930 -18.160076
+V 14 2185.786297 -1020.626589 32097.143981 -.001159
+P 15 -7682.985210 -15710.482397 19688.222297 233.006853
+V 15 11839.816143 -22681.486391 -13557.795345 .054705
+P 16 -24670.630603 -2468.341260 -9467.775227 15.278837
+V 16 11515.915346 -4547.046152 -28599.309280 -.004102
+P 17 17769.990580 -10393.903237 -16174.532180 207.278663
+V 17 -7675.477280 19820.710035 -21673.613605 .194989
+P 18 2290.842014 -15348.195208 21560.983090 -15.441687
+V 18 27184.923005 -2809.518651 -5102.096523 -.026594
+P 20 -18026.351731 13280.093043 -14354.101952 -184.101152
+V 20 -18180.742230 1146.328056 24006.849410 .027680
+P 21 4328.909164 -24686.384603 8115.768639 73.090600
+V 21 7007.227083 -8414.048095 -29535.783299 .004884
+P 22 -11753.114829 -12859.362536 20199.934231 -40.108535
+V 22 25020.461892 -3879.254393 12229.631380 .087994
+P 24 15354.129604 1221.893990 -21349.727158 8.162079
+V 24 -10529.027925 25702.838409 -5944.979810 .029185
+P 25 -11910.777921 -11796.101123 -20240.548637 61.726026
+V 25 8233.626389 -25299.773646 9700.517864 .010715
+P 26 17429.820503 248.010864 19968.683455 410.013128
+V 26 15657.466295 20370.308520 -13148.358032 -.124590
+P 27 -3866.059838 25525.801889 5426.797668 919.931093
+V 27 -5217.059312 5083.628963 -30793.545763 .042823
+P 28 10996.283977 12922.511226 20689.192905 21.864831
+V 28 -25339.752654 4836.529193 10240.050266 .016569
+P 29 19683.921546 4703.968640 17495.953499 229.964630
+V 29 13178.493557 17207.254991 -19698.790556 .032746
+P 30 8020.716543 -16180.543853 -19675.115213 805.237350
+V 30 24370.618772 -3484.960764 13053.828663 .142469
+P 31 -15402.809525 5611.698118 20619.136473 40.006914
+V 31 -17667.293892 -20395.498804 -7198.226129 .308912
+* 2004 3 1 2 0 .00000000
+P 1 -9979.811009 10946.861961 -21871.323991 332.601624
+V 1 -18918.606144 -20831.174213 -1807.345456 .017515
+P 3 -22264.848932 -8009.501048 12190.127304 89.920639
+V 3 -9493.231282 -12763.472395 -25299.516684 .028162
+P 4 8261.147097 16812.887329 -18681.764512 -76.818751
+V 4 -8914.343040 22207.340037 16342.986097 -.091975
+P 5 21909.607665 -12810.747514 -7648.291738 19.784859
+V 5 10230.697991 417.686413 29238.286666 .019418
+P 6 2066.122917 -18028.607461 -19164.271531 -1.374073
+V 6 18630.856161 16547.668676 -13561.653166 -.009469
+P 7 15942.340860 20772.497348 5358.362247 611.697040
+V 7 -6789.782779 -2021.132747 30142.786146 -.078360
+P 8 2298.317619 22493.540286 13481.530735 355.341260
+V 8 -7875.550955 15879.573698 -25099.503752 -.088347
+P 9 14785.263152 -16217.171298 14259.135170 -32.378382
+V 9 -2209.460819 19085.412810 23683.758776 -.014833
+P 10 25523.049996 -327.678421 -7898.102044 40.174918
+V 10 -9229.464769 3932.087526 -29898.189545 .007765
+P 11 -14017.202075 18213.562108 13193.497167 99.904701
+V 11 -270.277552 -17331.034521 23764.209446 .025679
+P 13 1726.642042 19510.979601 -18016.882224 -30.902421
+V 13 -16347.880624 -15813.859504 -18656.069477 .002092
+P 14 -16379.146796 -20628.264704 3405.089215 -18.160573
+V 14 4599.289385 1505.979981 31719.750090 -.001150
+P 15 -6700.480335 -17708.567001 18297.794420 233.010645
+V 15 9992.388732 -21630.211875 -17295.312044 .054861
+P 16 -23505.893819 -2934.312525 -11952.624849 15.278271
+V 16 14311.017709 -5857.795094 -26539.770342 -.004096
+P 17 17081.403585 -8497.909888 -17974.182471 207.296306
+V 17 -7553.519767 22260.705614 -18260.794586 .194969
+P 18 4698.241079 -15660.217781 20917.604984 -15.443865
+V 18 26226.828624 -4094.987887 -9175.860241 -.026580
+P 20 -19535.806628 13399.525724 -12076.620222 -184.098886
+V 20 -15319.840377 1441.960821 26531.709600 .027671
+P 21 4885.196399 -25315.338402 5393.786780 73.090978
+V 21 5404.412014 -5511.676537 -30863.719486 .004887
+P 22 -9457.333253 -13275.858172 21125.976500 -40.100602
+V 22 25909.591285 -5386.282490 8320.567114 .087983
+P 24 14459.700177 3581.655975 -21694.505991 8.165442
+V 24 -9304.740915 26650.866861 -1704.720265 .029115
+P 25 -11238.962075 -14034.190860 -19190.445999 61.726744
+V 25 6699.028913 -24346.913849 13599.345552 .010447
+P 26 18838.789916 1983.315486 18616.232562 410.001785
+V 26 15573.964484 18152.339217 -16859.146825 -.124604
+P 27 -4285.027955 25841.039513 2615.759326 919.934596
+V 27 -4152.144431 1885.090733 -31582.936515 .042803
+P 28 8683.086512 13426.891994 21434.009492 21.866592
+V 28 -25977.714677 6373.430261 6286.985581 .016574
+P 29 20840.748317 6143.299350 15580.637776 229.967738
+V 29 12447.085335 14760.048024 -22804.846403 .032757
+P 30 10136.515579 -16531.759689 -18336.967961 805.250142
+V 30 22579.718916 -4271.340709 16641.947757 .142487
+P 31 -17004.035585 3847.608045 19791.580230 40.034869
+V 31 -17842.153062 -18758.553344 -11162.389273 .308859
+* 2004 3 1 2 15 .00000000
+P 1 -11733.896920 9117.923426 -21842.258246 332.602598
+V 1 -19994.447242 -19743.527586 2452.125201 .017414
+P 3 -23045.679509 -9051.682044 9815.498578 89.923264
+V 3 -7789.858474 -10409.190139 -27394.101430 .028263
+P 4 7534.651027 18746.111786 -17052.417988 -76.827361
+V 4 -7246.539764 20668.407631 19813.239807 -.091981
+P 5 22689.353541 -12744.009426 -4958.197980 19.786708
+V 5 7092.497718 1133.215696 30455.464402 .019735
+P 6 3823.343635 -16536.766081 -20213.215482 -1.373972
+V 6 20374.973329 16529.431395 -9714.228919 -.009039
+P 7 15216.655323 20505.502903 8018.397630 611.690140
+V 7 -9357.626235 -3846.992479 28886.802711 -.078375
+P 8 1664.658241 23812.250183 11110.102924 355.333198
+V 8 -6245.244430 13357.048194 -27520.961616 -.088358
+P 9 14603.486039 -14379.993848 16255.966955 -32.379910
+V 9 -1769.147360 21685.095407 20622.926909 -.015148
+P 10 24559.086768 87.869317 -10514.581069 40.175020
+V 10 -12138.523826 5356.271075 -28163.603912 .007582
+P 11 -14057.449392 16540.801319 15211.829298 99.906982
+V 11 -677.334083 -19791.707859 21023.101953 .025677
+P 13 153.113014 18066.786534 -19537.032944 -30.902120
+V 13 -18590.421073 -16196.072460 -15076.660890 .002091
+P 14 -15847.025093 -20392.130583 6222.374757 -18.160705
+V 14 7260.099118 3677.128347 30796.758554 -.001134
+P 15 -5883.163175 -19587.992615 16584.214818 233.015362
+V 15 8184.569071 -20048.667550 -20728.066674 .055173
+P 16 -22105.831318 -3530.751905 -14231.131526 15.277863
+V 16 16733.780725 -7435.030632 -24020.430239 -.004085
+P 17 16422.791363 -6397.581345 -19452.088998 207.313584
+V 17 -7017.653781 24347.613798 -14535.268988 .194953
+P 18 6996.778065 -16078.778300 19913.860202 -15.446388
+V 18 24772.857974 -5163.580712 -13098.628496 -.026568
+P 20 -20777.563258 13527.316701 -9592.004091 -184.096456
+V 20 -12247.160667 1327.203529 28603.155908 .027662
+P 21 5311.512484 -25670.554543 2576.638173 73.091456
+V 21 4128.040600 -2345.273538 -31647.364267 .004892
+P 22 -7105.290948 -13829.372127 21693.502023 -40.092911
+V 22 26269.230561 -6909.217890 4273.757299 .087971
+P 24 13685.644741 6003.050271 -21655.567872 8.169735
+V 24 -7868.431148 27066.201195 2569.145390 .028969
+P 25 -10703.007187 -16162.954792 -17800.138366 61.728815
+V 25 5229.133500 -22874.985649 17249.285764 .010255
+P 26 20218.592133 3509.737959 16943.375494 409.990856
+V 26 15006.342297 15744.693680 -20258.871911 -.124615
+P 27 -4624.590447 25859.929725 -241.468639 919.938229
+V 27 -3458.143363 -1486.111563 -31817.265205 .042792
+P 28 6336.012120 14068.659365 21817.432724 21.868395
+V 28 -26092.376190 7874.687484 2220.081063 .016578
+P 29 21909.672508 7358.982662 13402.454374 229.970606
+V 29 11225.480494 12253.026998 -25531.975166 .032770
+P 30 12073.870624 -16939.746683 -16687.811798 805.263058
+V 30 20416.051330 -4736.862322 19955.295574 .142508
+P 31 -18600.721477 2242.525132 18616.252455 40.063352
+V 31 -17561.740935 -16876.279320 -14915.189927 .308799
+* 2004 3 1 2 30 .00000000
+P 1 -13565.875596 7404.274564 -21431.278169 332.604503
+V 1 -20639.601933 -18281.394872 6667.066994 .017353
+P 3 -23655.209480 -9886.755069 7273.325615 89.924910
+V 3 -5693.205477 -8174.654224 -29017.743723 .028417
+P 4 6952.504761 20518.507309 -15125.562614 -76.835513
+V 4 -5720.659050 18640.295876 22944.310618 -.091987
+P 5 23186.861299 -12594.729785 -2182.115083 19.789224
+V 5 3974.364817 2249.434451 31146.058102 .020043
+P 6 5724.597934 -15066.218906 -20907.764941 -1.375083
+V 6 21818.743444 16081.426627 -5697.976206 -.008680
+P 7 14255.419898 20092.246229 10543.576342 611.682714
+V 7 -12010.256132 -5266.493690 27150.713028 -.078389
+P 8 1165.993326 24886.637879 8542.397285 355.325129
+V 8 -4887.162209 10462.625358 -29454.746273 -.088363
+P 9 14476.993599 -12325.122704 17960.024362 -32.380979
+V 9 -990.125261 23909.590981 17187.771219 -.015393
+P 10 23348.844959 645.200668 -12953.220757 40.176637
+V 10 -14690.372381 7071.680080 -25951.602958 .007535
+P 11 -14147.980502 14661.064884 16966.799147 99.909024
+V 11 -1379.235028 -21919.077638 17920.318153 .025673
+P 13 -1613.019887 16610.315319 -20722.903337 -30.901714
+V 13 -20612.696149 -16091.267185 -11238.138689 .002094
+P 14 -15067.439758 -19978.711720 8932.625715 -18.160991
+V 14 10083.601332 5437.851594 29344.730341 -.001125
+P 15 -5223.328942 -21302.422042 14577.756777 233.019910
+V 15 6507.458689 -17970.904117 -23793.912632 .055542
+P 16 -20506.868590 -4278.413416 -16263.792582 15.277650
+V 16 18721.902547 -9205.112237 -21084.352659 -.004076
+P 17 15828.925206 -4128.236852 -20583.287688 207.331230
+V 17 -6125.617983 26005.123004 -10568.412026 .194938
+P 18 9143.988918 -16580.867352 18566.437369 -15.448781
+V 18 22873.832465 -5939.395689 -16801.989716 -.026555
+P 20 -21736.768717 13625.482557 -6942.747290 -184.093657
+V 20 -9057.016581 781.737286 30185.034271 .027650
+P 21 5639.442570 -25732.274343 -285.974031 73.091756
+V 21 3224.374022 994.661739 -31872.536243 .004888
+P 22 -4744.765885 -14517.311003 21893.153452 -40.084512
+V 22 26099.656089 -8358.673042 156.999031 .087959
+P 24 13047.059245 8436.741873 -21233.382188 8.171409
+V 24 -6309.697128 26921.196905 6798.961317 .028675
+P 25 -10293.220494 -18137.216511 -16095.001817 61.729335
+V 25 3908.886484 -20921.238417 20585.203779 .010040
+P 26 21525.135118 4814.626675 14980.601990 409.978959
+V 26 13946.123441 13245.919866 -23293.289722 -.124627
+P 27 -4919.395610 25571.298960 -3094.355028 919.941702
+V 27 -3160.250117 -4931.837022 -31485.519510 .042782
+P 28 4001.945041 14840.605332 21832.216198 21.869929
+V 28 -25691.414571 9251.713208 -1893.705751 .016577
+P 29 22846.956843 8349.869743 10997.664988 229.973420
+V 29 9525.223107 9780.080708 -27833.219845 .032772
+P 30 13802.337692 -17373.213430 -14754.970090 805.275851
+V 30 17950.470690 -4830.166885 22936.966951 .142529
+P 31 -20150.898603 814.587440 17115.144234 40.091780
+V 31 -16806.922025 -14837.116511 -18391.594981 .308736
+* 2004 3 1 2 45 .00000000
+P 1 -15434.541865 5836.139984 -20645.765448 332.606396
+V 1 -20802.560390 -16523.996679 10762.776075 .017207
+P 3 -24060.063692 -10529.044304 4607.214656 89.929452
+V 3 -3250.586327 -6137.259014 -30144.674100 .028591
+P 4 6498.253641 22088.184011 -12934.329335 -76.844872
+V 4 -4417.040847 16173.357214 25679.371433 -.091993
+P 5 23408.114206 -12327.785449 631.869204 19.792101
+V 5 968.543030 3742.594007 31296.195069 .020167
+P 6 7739.543898 -13653.532163 -21235.938484 -1.375385
+V 6 22890.486061 15253.121231 -1584.682752 -.008277
+P 7 13054.827995 19570.374189 12892.072888 611.675508
+V 7 -14662.210021 -6258.562563 24966.404637 -.078402
+P 8 774.932974 25686.788810 5823.911501 355.317205
+V 8 -3863.077615 7277.435893 -30866.771026 -.088365
+P 9 14433.564379 -10089.746115 19340.459494 -32.382173
+V 9 65.163212 25685.335209 13442.621439 -.015729
+P 10 21927.493652 1367.327738 -15172.625290 40.177115
+V 10 -16820.264666 9005.262812 -23298.359780 .007345
+P 11 -14312.864490 12607.252365 18428.267728 99.911335
+V 11 -2319.211490 -23650.726736 14510.408158 .025669
+P 13 -3547.919725 15183.899667 -21554.075609 -30.901650
+V 13 -22326.863258 -15535.644229 -7205.653139 .002095
+P 14 -14029.872086 -19426.785754 11489.314792 -18.160560
+V 14 12977.099073 6750.248367 27389.270229 -.001112
+P 15 -4705.373139 -22809.431084 12313.979445 233.025218
+V 15 5044.890629 -15449.547602 -26437.734967 .056027
+P 16 -18750.337775 -5190.964720 -18015.320162 15.276954
+V 16 20228.986796 -11084.725825 -17782.003631 -.004067
+P 17 15328.718436 -1731.378126 -21349.405979 207.348759
+V 17 -4949.331209 27172.591768 -6435.032995 .194924
+P 18 11102.685665 -17137.139971 16898.040594 -15.451024
+V 18 20595.814886 -6358.038390 -20220.882532 -.026553
+P 20 -22407.226770 13655.025827 -4174.230790 -184.090854
+V 20 -5846.865562 -196.556045 31249.437379 .027643
+P 21 5903.969508 -25489.238830 -3143.546210 73.092296
+V 21 2722.402995 4410.368375 -31535.656496 .004894
+P 22 -2422.698029 -15329.104263 21721.726264 -40.076598
+V 22 25419.140653 -9647.341232 -3960.948918 .087944
+P 24 12550.759349 10831.813604 -20435.386283 8.173838
+V 24 -4722.289938 26208.473097 10907.811863 .028453
+P 25 -9992.598211 -19915.943821 -14105.985360 61.730426
+V 25 2815.242109 -18540.192087 23548.588381 .009739
+P 26 22714.400980 5894.234366 12762.957079 409.967821
+V 26 12403.390803 10754.710489 -25915.502094 -.124643
+P 27 -5205.547832 24973.048676 -5891.867609 919.945342
+V 27 -3265.460824 -8349.220927 -30587.676641 .042773
+P 28 1726.288570 15727.681928 21477.208684 21.871462
+V 28 -24799.973666 10419.440363 -5986.046622 .016574
+P 29 23610.732125 9123.152874 8406.474419 229.976533
+V 29 7376.200910 7432.099982 -29668.043275 .032770
+P 30 15298.309970 -17796.894767 -12570.673954 805.288506
+V 30 15263.603452 -4514.628205 25534.964861 .142549
+P 31 -21611.681409 -426.200189 15315.831714 40.119524
+V 31 -15576.504801 -12732.739668 -21532.697055 .308667
+* 2004 3 1 3 0 .00000000
+P 1 -17294.836586 4436.151060 -19499.729296 332.607312
+V 1 -20449.488852 -14560.267531 14666.912813 .017019
+P 3 -24231.751246 -10999.412682 1862.716514 89.930701
+V 3 -522.893710 -4364.472157 -30757.488309 .028609
+P 4 6148.659272 23418.531418 -10516.662564 -76.852672
+V 4 -3405.565556 13334.204036 27968.472501 -.091997
+P 5 23367.185659 -11910.958326 3434.847374 19.794591
+V 5 -1838.019961 5572.045722 30901.580265 .020077
+P 6 9831.940669 -12330.176289 -21192.297904 -1.374887
+V 6 23531.242200 14107.878324 2552.274153 -.007946
+P 7 11618.847575 18978.668889 15025.226719 611.667548
+V 7 -17226.702197 -6819.066861 22372.208191 -.078409
+P 8 459.222141 26190.607674 3002.763331 355.308865
+V 8 -3218.966383 3893.533192 -31732.985529 -.088364
+P 9 14494.773911 -7716.963395 20372.512258 -32.383643
+V 9 1321.833153 26954.995363 9458.165570 -.016104
+P 10 20335.357282 2270.196021 -17134.983828 40.177562
+V 10 -18478.723776 11073.525280 -20247.275616 .007133
+P 11 -14570.572947 10417.287425 19571.247062 99.913707
+V 11 -3430.077488 -24937.769902 10853.111139 .025662
+P 13 -5620.254329 13825.854173 -22016.155273 -30.901974
+V 13 -23654.745783 -14582.012223 -3047.723290 .002097
+P 14 -12732.378594 -18777.722201 13848.608433 -18.160706
+V 14 15843.334270 7594.780326 24964.541301 -.001109
+P 15 -4306.606045 -24072.093621 9833.043186 233.031675
+V 15 3869.934125 -12553.748999 -28612.569762 .056391
+P 16 -16880.964376 -6274.262343 -19455.269456 15.276461
+V 16 21226.251347 -12984.180838 -14170.384705 -.004057
+P 17 14944.097914 746.826878 -21738.893082 207.366602
+V 17 -3571.533192 27807.271459 -2211.631041 .194909
+P 18 12842.221621 -17713.077819 14937.033260 -15.453464
+V 18 18017.647845 -6369.353197 -23294.804586 -.026543
+P 20 -22791.517586 13577.588696 -1333.955725 -184.088836
+V 20 -2713.671428 -1591.365378 31777.234529 .027628
+P 21 6141.862815 -24939.170426 -5945.732180 73.092525
+V 21 2632.717224 7800.679909 -30643.787741 .004890
+P 22 -183.599063 -16246.545072 21182.208458 -40.068658
+V 22 24263.194024 -10693.384995 -8011.406909 .087928
+P 24 12195.085945 13137.613001 -19275.845790 8.175969
+V 24 -3200.114748 24941.282099 14821.139030 .028193
+P 25 -9777.691193 -21463.705460 -11868.964828 61.730593
+V 25 2013.987531 -15801.359619 26088.626576 .009425
+P 26 23744.094971 6753.562617 10329.359238 409.956874
+V 26 10406.200658 8366.190742 -28086.388053 -.124663
+P 27 -5518.936621 24072.397550 -8583.484602 919.949256
+V 27 -3761.973037 -11634.782113 -29135.152436 .042770
+P 28 -448.573595 16707.469341 20757.432757 21.873124
+V 28 -23459.819223 11299.660649 -9988.245934 .016572
+P 29 24162.616211 9693.941078 5672.418384 229.979179
+V 29 4825.823751 5293.565411 -31003.083154 .032765
+P 30 16545.768700 -18172.956161 -10171.578128 805.301535
+V 30 12442.933265 -3770.002954 27703.136257 .142568
+P 31 -22940.884712 -1478.089084 13250.881441 40.147789
+V 31 -13887.172378 -10654.328219 -24286.643101 .308591
+* 2004 3 1 3 15 .00000000
+P 1 -19099.507388 3218.634179 -18013.531344 332.607960
+V 1 -19565.656970 -12485.194850 18310.873633 .016889
+P 3 -24147.790847 -11324.255190 -913.434889 89.933592
+V 3 2417.625639 -2911.391650 -30847.316900 .028725
+P 4 5874.777073 24479.575994 -7914.652149 -76.861123
+V 4 -2742.706901 10203.249157 29769.608765 -.091996
+P 5 23085.609845 -11316.396805 6177.967918 19.796264
+V 5 -4367.003375 7681.725590 29967.770711 .019872
+P 6 11960.905987 -11121.393819 -20778.026396 -1.374379
+V 6 23697.180055 12720.239088 6639.369561 -.007737
+P 7 9959.200506 18355.526040 16908.090984 611.660976
+V 7 -19618.719377 -6960.648642 19412.202043 -.078411
+P 8 183.250204 26384.639714 128.767687 355.300248
+V 8 -2983.178826 410.238915 -32039.770015 -.088358
+P 9 14675.022534 -5254.211455 21038.008054 -32.385701
+V 9 2695.920405 27679.840465 5309.767482 -.016555
+P 10 18616.457930 3361.882481 -18806.694754 40.177482
+V 10 -19633.300886 13185.653614 -16848.379208 .006949
+P 11 -14933.165157 8132.815378 20376.318156 99.916246
+V 11 -4637.015197 -25746.638135 7012.254221 .025657
+P 13 -7792.206648 12569.070961 -22101.024409 -30.901545
+V 13 -24530.885073 -13297.658295 1164.881060 .002101
+P 14 -11181.836120 -18073.798134 15970.109902 -18.160859
+V 14 18584.180028 7970.853809 22112.639027 -.001107
+P 15 -3998.361347 -25060.350367 7178.933207 233.038493
+V 15 3041.877441 -9366.446288 -30280.518284 .056696
+P 16 -14945.230528 -7525.936802 -20558.583041 15.275576
+V 16 21703.553139 -14810.977307 -10312.038627 -.004047
+P 17 14689.195781 3257.223967 -21747.096037 207.384411
+V 17 -2082.058492 27885.714897 2025.277924 .194894
+P 18 14339.510959 -18270.373821 12716.975193 -15.456123
+V 18 15227.973361 -5939.616770 -25968.968474 -.026537
+P 20 -22900.789381 13357.095036 1529.265017 -184.086533
+V 20 249.725474 -3368.438624 31758.458346 .027615
+P 21 6390.001331 -24088.900312 -8643.293102 73.092757
+V 21 2947.167056 11065.012069 -29214.417919 .004893
+P 22 1931.941478 -17244.427823 20283.726841 -40.061296
+V 22 22683.186917 -11423.621547 -11926.807669 .087906
+P 24 11970.071875 15305.593205 -17775.571725 8.177846
+V 24 -1833.233232 23153.006922 18468.299814 .028115
+P 25 -9619.733457 -22751.895591 -9424.010091 61.731998
+V 25 1557.096524 -12786.385994 28163.052446 .009221
+P 26 24575.212493 7405.882902 7721.887329 409.945818
+V 26 7999.357182 6168.462082 -29774.869203 -.124678
+P 27 -5893.549196 22885.745622 -11120.232631 919.953243
+V 27 -4619.428994 -14688.683456 -27150.933530 .042767
+P 28 -2484.712254 17750.936420 19684.070711 21.874658
+V 28 -21727.882194 11824.164211 -13832.296614 .016566
+P 29 24469.229229 10084.536460 2841.686209 229.982216
+V 29 1937.543122 3439.328710 -31812.840977 .032767
+P 30 17536.757796 -18462.520365 -7598.194624 805.314461
+V 30 9579.593623 -2593.486145 29402.059770 .142589
+P 31 -24098.602472 -2347.378341 10957.181499 40.175797
+V 31 -11772.702978 -8688.959012 -26609.354837 .308508
+* 2004 3 1 3 30 .00000000
+P 1 -20800.863184 2189.239544 -16213.491113 332.610134
+V 1 -18156.087697 -10395.939011 21631.067936 .016925
+P 3 -23792.617044 -11534.293597 -3674.093534 89.935571
+V 3 5489.999722 -1818.787884 -30413.868685 .028706
+P 4 5643.275724 25249.090045 -5173.775980 -76.869091
+V 4 -2469.124162 6871.659090 31049.633159 -.091992
+P 5 22591.467516 -10521.910884 8813.319882 19.798688
+V 5 -6551.721000 10002.267885 28510.083514 .019589
+P 6 14082.362788 -10045.332588 -20000.877463 -1.375884
+V 6 23361.376671 11172.767042 10604.355640 -.007629
+P 7 8095.067353 17737.474445 18509.917881 611.654061
+V 7 -21758.010501 -6711.983259 16135.500670 -.078416
+P 8 -90.309091 26264.549553 -2747.510250 355.292435
+V 8 -3165.379569 -3069.783612 -31784.073494 -.088351
+P 9 14980.885411 -2751.515391 21325.698139 -32.387525
+V 9 4098.147590 27841.265570 1075.664539 -.016940
+P 10 16816.926278 4642.088738 -20158.931441 40.177234
+V 10 -20269.725201 15246.930856 -13157.628164 .006836
+P 11 -15405.737832 5797.766741 20829.947147 99.918579
+V 11 -5860.648519 -26060.262817 3054.594382 .025649
+P 13 -10020.739662 11439.833471 -21806.992221 -30.901317
+V 13 -24905.127341 -11761.667094 5360.301286 .002104
+P 14 -9393.852260 -17356.494481 17817.540238 -18.161123
+V 14 21104.361318 7896.668389 18882.838755 -.001104
+P 15 -3747.349768 -25752.104933 4398.611075 233.043972
+V 15 2603.820140 -5981.066082 -31413.432077 .056569
+P 16 -12989.678538 -8935.305651 -21306.040672 15.275322
+V 16 21669.685878 -16473.501645 -6273.945743 -.004036
+P 17 14569.886077 5749.441817 -21376.190349 207.401651
+V 17 -573.929268 27404.347779 6200.712340 .194879
+P 18 15579.760779 -18768.486225 10276.059220 -15.459087
+V 18 12321.844698 -5053.095205 -28195.377084 -.026527
+P 20 -22754.228987 12961.316605 4366.143183 -184.083785
+V 20 2958.090394 -5476.774799 31192.538112 .027606
+P 21 6683.701543 -22954.137682 -11189.016791 73.093340
+V 21 3639.326001 14107.303446 -27274.999819 .004898
+P 22 3888.600269 -18291.459025 19041.400977 -40.053549
+V 22 20744.407613 -11776.394201 -15641.714151 .087888
+P 24 11857.961552 17291.070141 -15961.501920 8.181967
+V 24 -704.048534 20895.811676 21784.016149 .028032
+P 25 -9485.981127 -23759.679800 -6814.586482 61.730914
+V 25 1480.713540 -9585.745218 29738.759375 .008954
+P 26 25173.469740 7871.962206 4985.050320 409.934330
+V 26 5242.621598 4239.509737 -30958.031136 -.124699
+P 27 -6359.844010 21438.155874 -13455.720979 919.956691
+V 27 -5790.026176 -17418.936955 -24669.359004 .042765
+P 28 -4349.930241 18823.470391 18274.353378 21.876737
+V 28 -19674.226009 11937.562890 -17451.980258 .016562
+P 29 24503.547120 10323.434132 -37.614807 229.985115
+V 29 -1211.252109 1931.709238 -32080.286319 .032767
+P 30 18271.560759 -18627.260125 -4894.249428 805.326669
+V 30 6764.979504 -1000.116047 30599.864524 .142612
+P 31 -25048.686599 -3047.892722 8475.217092 40.203568
+V 31 -9282.539924 -6916.263895 -28465.043624 .308417
+* 2004 3 1 3 45 .00000000
+P 1 -22352.551267 1344.922875 -14131.381911 332.612158
+V 1 -16245.408854 -8387.898826 24570.071618 .016849
+P 3 -23158.235363 -11663.219233 -6372.470776 89.939084
+V 3 8607.465604 -1111.694125 -29465.353968 .028752
+P 4 5417.944771 25713.404565 -2342.068496 -76.877249
+V 4 -2607.905035 3437.844361 31784.985239 -.091986
+P 5 21918.218614 -9512.056285 11294.804847 19.799100
+V 5 -8339.702718 12453.626398 26553.437006 .019203
+P 6 16150.615364 -9112.477485 -18874.997712 -1.375113
+V 6 22514.906202 9552.593578 14377.633903 -.007492
+P 7 6052.531288 17157.786569 19804.579562 611.647589
+V 7 -23571.880264 -6116.503839 12595.534784 -.078424
+P 8 -398.798264 25835.241016 -5575.703008 355.284399
+V 8 -3756.289609 -6444.550745 -30973.301465 -.088348
+P 9 15410.812478 -259.642621 21231.435056 -32.389671
+V 9 5437.901514 27441.404020 -3164.882696 -.017219
+P 10 14983.338304 6101.950648 -21168.140801 40.178704
+V 10 -20392.397946 17162.330881 -9236.114329 .006856
+P 11 -15986.159821 3456.842856 20924.695535 99.920544
+V 11 -7020.280781 -25878.619374 -951.372922 .025637
+P 13 -12259.069389 10456.892723 -21138.839626 -30.901238
+V 13 -24744.646034 -10061.786880 9466.779959 .002107
+P 14 -7392.344997 -16664.838642 19359.346341 -18.161366
+V 14 23315.062323 7408.343132 15330.731928 -.001098
+P 15 -3517.198092 -26134.003467 1541.115461 233.048850
+V 15 2580.974619 -2497.817430 -31993.354849 .056462
+P 16 -11059.220988 -10483.619426 -21684.605602 15.275154
+V 16 21151.936833 -17884.703848 -2126.331996 -.004026
+P 17 14583.674364 8173.675402 -20634.977972 207.419074
+V 17 860.552863 26379.221972 10242.616472 .194864
+P 18 16556.884760 -19166.301316 7656.455620 -15.461382
+V 18 9397.061908 -3712.891233 -29933.790299 -.026513
+P 20 -22378.230792 12363.301724 7127.765289 -184.081649
+V 20 5336.992687 -7850.479324 30088.370752 .027602
+P 21 7055.122586 -21558.893003 -13538.585375 73.094112
+V 21 4665.723985 16839.735751 -24862.267660 .004903
+P 22 5657.466281 -19351.408653 17476.106498 -40.045817
+V 22 18523.618606 -11704.028909 -19093.814170 .087879
+P 24 11834.059246 19054.822483 -13866.158401 8.183581
+V 24 116.156074 18238.511607 24709.675151 .027897
+P 25 -9341.201797 -24474.629731 -4086.711806 61.732417
+V 25 1803.835510 -6295.150893 30792.175525 .008883
+P 26 25510.550959 8179.030010 2165.051662 409.923384
+V 26 2208.442992 2644.560426 -31621.124299 -.124721
+P 27 -6943.262448 19762.468016 -15547.139776 919.960381
+V 27 -7210.468466 -19745.335409 -21735.536215 .042768
+P 28 -6018.833163 19886.142159 16551.348391 21.877846
+V 28 -17379.495509 11599.684215 -20783.998994 .016553
+P 29 24246.039852 10444.079408 -2916.244855 229.988041
+V 29 -4531.904703 818.021818 -31797.355882 .032773
+P 30 18758.569093 -18630.996697 -2105.969456 805.339743
+V 30 4087.301516 977.505566 31272.956980 .142638
+P 31 -25760.070831 -3600.176270 5848.308689 40.231796
+V 31 -6479.794291 -5405.473383 -29826.529982 .308323
+* 2004 3 1 4 0 .00000000
+P 1 -23711.285530 674.277499 -11803.829386 332.613407
+V 1 -13876.920559 -6550.886553 27077.633480 .016722
+P 3 -22244.603582 -11746.235308 -8962.892726 89.939897
+V 3 11680.602279 -798.589101 -28018.293889 .028719
+P 4 5161.327872 25867.890855 530.767117 -76.885218
+V 4 -3163.541886 3.635079 31962.210009 -.091986
+P 5 21103.329155 -8278.956813 13578.983572 19.801626
+V 5 -9694.674275 14948.217891 24131.915526 .018932
+P 6 18119.990724 -8325.400960 -17420.629720 -1.376270
+V 6 21167.197296 7947.814265 17893.542795 -.007427
+P 7 3863.782475 16645.226082 20770.924023 611.640900
+V 7 -24997.705240 -5230.642381 8849.326855 -.078436
+P 8 -777.889587 25110.617437 -8306.567947 355.275711
+V 8 -4728.226315 -9616.697650 -29624.968351 -.088337
+P 9 15955.188407 2171.756319 20758.182105 -32.390023
+V 9 6627.222847 26502.814051 -7333.416824 -.017408
+P 10 13161.038096 7724.174624 -21816.466103 40.180430
+V 10 -20024.204612 18840.163860 -5149.176095 .006780
+P 11 -16665.100761 1153.982013 20659.322567 99.923211
+V 11 -8037.167959 -25218.616095 -4936.615402 .025628
+P 13 -14458.291431 9630.841727 -20107.756104 -30.901135
+V 13 -24035.319986 -8290.958634 13413.862203 .002110
+P 14 -5208.807909 -16033.856919 20569.226928 -18.161219
+V 14 25137.284500 6558.358512 11517.267323 -.001092
+P 15 -3270.106595 -26201.868675 -1343.365770 233.052872
+V 15 2979.740681 980.253344 -32012.717244 .056361
+P 16 -9195.523557 -12144.632161 -21687.660512 15.275081
+V 16 20194.919046 -18965.608712 2058.588446 -.004020
+P 17 14719.932845 10482.412360 -19538.568203 207.436269
+V 17 2133.550472 24845.005835 14083.068055 .194853
+P 18 17273.580057 -19423.838652 4903.575495 -15.463853
+V 18 6550.378463 -1941.037630 -31152.555771 -.026500
+P 20 -21805.295390 11542.609540 9766.441636 -184.079616
+V 20 7325.593811 -10411.215542 28464.224302 .027605
+P 21 7531.814565 -19934.582397 -15651.372463 73.094766
+V 21 5967.785121 19186.074785 -22021.359372 .004906
+P 22 7216.947553 -20384.460569 15614.150259 -40.037952
+V 22 16106.196987 -11174.788020 -22224.883418 .087863
+P 24 11867.867191 20564.468569 -11526.995836 8.185595
+V 24 570.173398 15263.766608 27194.444417 .027879
+P 25 -9149.249796 -24893.027802 -1288.089900 61.733045
+V 25 2527.723370 -3011.840976 31309.411987 .008933
+P 26 25565.133511 8359.530267 -690.941830 409.912624
+V 26 -1020.694064 1433.955863 -31757.467099 -.124750
+P 27 -7662.951196 17898.078740 -17356.189280 919.964223
+V 27 -8804.679438 -21602.898667 -18404.396786 .042769
+P 28 -7473.650117 20897.163840 14543.645780 21.879232
+V 28 -14931.926765 10787.432876 -23769.122024 .016542
+P 29 23685.547043 10483.425933 -5744.656428 229.991127
+V 29 -7927.639766 128.641946 -30965.325544 .032775
+P 30 19013.842596 -18441.242281 718.690755 805.353171
+V 30 1628.211648 3290.183207 31406.635365 .142654
+P 31 -26207.893025 -4030.440973 3121.829611 40.259529
+V 31 -3438.780477 -4212.943647 -30675.383887 .308224
+* 2004 3 1 4 15 .00000000
+P 1 -24838.457141 158.199849 -9271.626826 332.615488
+V 1 -11110.926252 -4965.568731 29111.516118 .016578
+P 3 -21059.726304 -11818.553260 -11401.535589 89.943629
+V 3 14620.550321 -871.194941 -26097.222220 .028883
+P 4 4836.413192 25717.089932 3394.283261 -76.893701
+V 4 -4121.690632 -3329.693207 31578.248866 -.091982
+P 5 20186.748234 -6822.829659 15625.874524 19.803620
+V 5 -10597.894470 17394.367693 21288.153959 .018651
+P 6 19946.478943 -7678.838856 -15663.703896 -1.377013
+V 6 19345.654923 6443.888631 21091.532861 -.007281
+P 7 1566.111219 16222.973189 21393.065597 611.632789
+V 7 -25985.101244 -4121.648805 4956.762264 -.078442
+P 8 -1259.981671 24112.997468 -10892.873382 355.267691
+V 8 -6036.399877 -12497.168104 -27766.138017 -.088313
+P 9 16596.744881 4495.938370 19915.862032 -32.392219
+V 9 7584.614368 25067.277547 -11354.019316 -.017740
+P 10 11392.508450 9483.499478 -22092.085874 40.181135
+V 10 -19205.642204 20195.642708 -965.422099 .006604
+P 11 -17426.351122 -1069.135264 20038.779825 99.925711
+V 11 -8837.699512 -24113.339412 -8832.754263 .025618
+P 13 -16569.100344 8963.812614 -18731.168586 -30.901206
+V 13 -22782.410565 -6543.637767 17133.590542 .002112
+P 14 -2881.289099 -15493.195691 21426.568555 -18.161024
+V 14 26504.830099 5413.377171 7507.714171 -.001085
+P 15 -2968.553887 -25960.774615 -4204.430053 233.058017
+V 15 3787.578740 4351.271154 -31474.290384 .056398
+P 16 -7435.523951 -13885.475106 -21315.128237 15.274901
+V 16 18858.724728 -19648.519835 6207.911265 -.004016
+P 17 14960.459527 12632.037200 -18107.958630 207.453758
+V 17 3165.125797 22853.295386 17659.290737 .194843
+P 18 17741.062719 -19503.930111 2065.266397 -15.465724
+V 18 3873.731395 222.178848 -31829.279709 -.026492
+P 20 -21072.700050 10486.300175 12236.539002 -184.077272
+V 20 8878.912899 -13071.160807 26347.471747 .027611
+P 21 8135.469429 -18118.853623 -17491.153844 73.095269
+V 21 7474.372593 21084.495646 -18804.778911 .004907
+P 22 8553.405483 -21348.713386 13486.860594 -40.029843
+V 22 13582.956484 -10174.248932 -24981.707554 .087847
+P 24 11924.462268 21795.565242 -8985.658953 8.187331
+V 24 617.199506 12064.732713 29196.175810 .027890
+P 25 -8874.661543 -25019.837821 1532.759550 61.734970
+V 25 3636.041139 169.106165 31286.200933 .008890
+P 26 25323.660680 8449.706982 -3535.518782 409.901015
+V 26 -4355.205770 641.587575 -31368.272001 -.124775
+P 27 -8530.758499 15889.440901 -18849.908979 919.967984
+V 27 -10487.150406 -22944.644528 -14739.420805 .042769
+P 28 -8704.769204 21813.486454 12284.940509 21.880750
+V 28 -12424.017747 9496.030748 -26353.325103 .016531
+P 29 22819.852220 10480.347343 -8473.846091 229.994129
+V 29 -11297.091324 -124.300705 -29595.033619 .032781
+P 30 19060.376442 -18030.622544 3530.871317 805.365975
+V 30 -540.339629 5873.794291 30995.542774 .142663
+P 31 -26374.378786 -4369.317403 342.418319 40.286301
+V 31 -242.196071 -3380.238576 -31001.905938 .308127
+* 2004 3 1 4 30 .00000000
+P 1 -25701.564689 -229.142051 -6578.982721 332.616612
+V 1 -8022.405404 -3700.314387 30638.158690 .016410
+P 3 -19619.460091 -11913.898780 -13647.129561 89.945867
+V 3 17342.205278 -1304.893151 -23734.285752 .028964
+P 4 4408.309674 25274.484005 6198.227801 -76.901521
+V 4 -5449.724900 -6465.370053 30640.492849 -.091978
+P 5 19209.296710 -5152.190836 17399.688589 19.804812
+V 5 -11048.773280 19699.945622 18072.533630 .018232
+P 6 21589.307270 -7160.084488 -13635.330498 -1.375526
+V 6 17094.573794 5120.192191 23917.206849 -.007249
+P 7 -799.275940 15907.762648 21660.609572 611.625943
+V 7 -26497.680941 -2865.057755 979.853371 -.078447
+P 8 -1872.744081 22872.215692 -13290.225892 355.259339
+V 8 -7620.891726 -15008.505870 -25432.681942 -.088285
+P 9 17311.300743 6670.713463 18721.055798 -32.393935
+V 9 8238.491566 23193.795043 -15154.898086 -.017985
+P 10 9715.850158 11347.470750 -21989.461180 40.181122
+V 10 -17993.281868 21154.238941 3244.327138 .006357
+P 11 -18247.419747 -3174.485305 19074.099953 99.927995
+V 11 -9356.364658 -22610.691408 -12573.223197 .025604
+P 13 -18543.537122 8449.508970 -17032.463795 -30.901113
+V 13 -21010.506392 -4912.047260 20561.674412 .002112
+P 14 -453.122686 -15065.963531 21916.785449 -18.160842
+V 14 27366.800890 4051.529228 3370.564233 -.001090
+P 15 -2576.977536 -25424.764375 -6992.380111 233.062983
+V 15 4973.669367 7518.431265 -30390.913002 .056472
+P 16 -5810.144904 -15667.800084 -20573.474814 15.274666
+V 16 17216.473458 -19879.787217 10249.355069 -.004012
+P 17 15280.328196 14584.256815 -16369.533791 207.471056
+V 17 3886.250415 20470.350766 20914.471208 .194834
+P 18 17978.470785 -19373.804063 -809.044349 -15.468011
+V 18 1450.653663 2719.642601 -31951.315199 -.026497
+P 20 -20220.992329 9189.640284 14495.281791 -184.074857
+V 20 9969.477543 -15736.354359 23774.156811 .027615
+P 21 8880.923691 -16154.185169 -19026.719002 73.095615
+V 21 9104.818500 22489.784060 -15271.236390 .004909
+P 22 9661.492865 -22201.777417 11130.096813 -40.022015
+V 22 11046.760939 -8706.053494 -27316.952766 .087828
+P 24 11966.050289 22732.386743 -6287.168816 8.189512
+V 24 234.441341 8741.328400 30682.080859 .027942
+P 25 -8484.206783 -24868.350991 4327.357011 61.735465
+V 25 5095.689231 3158.278109 30727.646981 .008602
+P 26 24780.841218 8488.075274 -6321.723619 409.889343
+V 26 -7701.528798 283.920214 -30462.412443 -.124803
+P 27 -9550.554103 13784.349609 -20001.378708 919.972335
+V 27 -12166.754542 -23743.531434 -10811.078102 .042770
+P 28 -9710.962522 22592.478571 9813.513758 21.882244
+V 28 -9948.978435 7739.565883 -28488.896662 .016519
+P 29 21655.927445 10473.962352 -11056.218872 229.996949
+V 29 -14538.078417 52.470144 -27706.934826 .032782
+P 30 18927.094224 -17378.125963 6281.664738 805.378940
+V 30 -2358.971803 8651.514191 30043.998688 .142673
+P 31 -26249.459647 -4650.459525 -2442.801278 40.313407
+V 31 3021.937227 -2932.813037 -30804.971617 .308049
+* 2004 3 1 4 45 .00000000
+P 1 -26275.409069 -519.079394 -3772.716979 332.618679
+V 1 -4698.131852 -2808.571612 31633.154694 .016253
+P 3 -17947.036555 -12063.082509 -15661.622407 89.949109
+V 3 19767.273779 -2059.741143 -20968.748980 .029160
+P 4 3845.838432 24561.919969 8893.477957 -76.909748
+V 4 -7098.060524 -9314.884595 29166.597210 -.091979
+P 5 18211.033662 -3283.730769 18869.483714 19.805704
+V 5 -11064.746032 21776.034067 14542.211212 .017890
+P 6 23012.386591 -6749.680955 -11371.204793 -1.375479
+V 6 14473.399877 4046.858802 26323.207681 -.007449
+P 7 -3188.577938 15709.262764 21568.810081 611.618565
+V 7 -26514.351220 -1541.880223 -3018.008264 -.078452
+P 8 -2637.866979 21424.449732 -15457.823902 355.250798
+V 8 -9409.213297 -17087.622931 -22668.388488 -.088251
+P 9 18068.790900 8659.877885 17196.566869 -32.396279
+V 9 8530.126681 20955.899151 -18669.781658 -.018250
+P 10 8163.428001 13277.502755 -21509.484291 40.179950
+V 10 -16457.611482 21654.699557 7408.170422 .006123
+P 11 -19100.384455 -5128.952521 17782.183164 99.930494
+V 11 -9538.392069 -20771.477745 -16094.377954 .025589
+P 13 -20336.698490 8073.573102 -15040.607209 -30.900747
+V 13 -18762.731343 -3482.505416 23638.614606 .002115
+P 14 2028.539286 -14767.837876 22031.558408 -18.160990
+V 14 27689.520523 2559.266845 -823.610113 -.001093
+P 15 -2063.361621 -24616.227868 -9659.110006 233.068193
+V 15 6490.311636 10393.627812 -28785.014278 .056669
+P 16 -4343.251481 -17449.148024 -19475.594645 15.274268
+V 16 15351.353474 -19622.026872 14112.563330 -.004011
+P 17 15648.986629 16307.300790 -14354.498761 207.488044
+V 17 4241.299382 17774.375341 23798.389997 .194824
+P 18 18011.958482 -19006.509468 -3669.241489 -15.470107
+V 18 -646.979671 5479.530454 -31516.053157 -.026508
+P 20 -19292.365466 7656.494486 16503.506735 -184.072491
+V 20 10588.291142 -18310.307366 20788.397039 .027621
+P 21 9775.450492 -14086.318273 -20232.374208 73.095866
+V 21 10772.299345 23374.837968 -11484.404750 .004910
+P 22 10544.182154 -22902.409362 8583.683105 -40.013415
+V 22 8589.047299 -6791.992898 -29189.973016 .087804
+P 24 11953.630423 23368.356596 -3479.058881 8.191562
+V 24 -582.049103 5396.285609 31629.170786 .027960
+P 25 -7948.335748 -24459.529277 7048.089346 61.735440
+V 25 6858.272039 5875.127422 29647.818730 .008363
+P 26 23939.863592 8513.831455 -9003.733831 409.877805
+V 26 -10965.324294 359.613803 -29056.144712 -.124824
+P 27 -10717.906085 11632.094831 -20790.269180 919.976616
+V 27 -13750.828568 -23993.469399 -6695.052842 .042771
+P 28 -10499.286730 23193.621454 7171.617263 21.883360
+V 28 -7597.094463 5550.805058 -30135.480445 .016504
+P 29 20209.832190 10501.938415 -13446.449209 229.999169
+V 29 -17551.487592 633.514277 -25330.967260 .032782
+P 30 18647.611750 -16470.118835 8922.990960 805.392002
+V 30 -3783.162145 11536.711913 28566.106047 .142680
+P 31 -25831.109580 -4909.058973 -5186.980183 40.340057
+V 31 6263.454465 -2879.319108 -30091.761306 .307994
+* 2004 3 1 5 0 .00000000
+P 1 -26543.008666 -747.004768 -901.422517 332.618106
+V 1 -1233.361920 -2326.868400 32081.543553 .016120
+P 3 -16072.320578 -12292.687935 -17410.794350 89.949788
+V 3 21827.086502 -3082.052415 -17846.408289 .029297
+P 4 3122.972443 23608.709969 11432.947038 -76.918074
+V 4 -9002.189395 -11801.381450 27184.065254 -.091979
+P 5 17229.667546 -1241.864140 20009.725553 19.807423
+V 5 -10680.409586 23540.472988 10760.005349 .017774
+P 6 24185.575076 -6422.379947 -8910.939573 -1.376963
+V 6 11554.422041 3282.035117 28269.942919 -.007749
+P 7 -5556.815437 15629.716413 21118.659932 611.611762
+V 7 -26030.110889 -235.603332 -6972.817451 -.078459
+P 8 -3570.062650 19810.825473 -17359.125721 355.243110
+V 8 -11319.323119 -18687.948582 -19523.958424 -.088216
+P 9 18834.532960 10434.380722 15370.869974 -32.398407
+V 9 8415.971578 18438.436322 -21839.088552 -.018348
+P 10 6760.736310 15230.192321 -20659.522725 40.181041
+V 10 -14680.326815 21651.604354 11454.317487 .005998
+P 11 -19952.961787 -6905.386654 16185.486734 99.932980
+V 11 -9341.965089 -18667.023895 -19336.540306 .025573
+P 13 -21908.342537 7814.275096 -12789.663615 -30.900489
+V 13 -16099.239481 -2331.970588 26310.762292 .002117
+P 14 4514.339287 -14606.469733 21768.969598 -18.160818
+V 14 27457.810614 1027.907911 -5003.324943 -.001096
+P 15 -1400.668013 -23564.970654 -12158.940067 233.074194
+V 15 8274.981949 12900.669456 -26687.959961 .056723
+P 16 -3050.893071 -19184.489160 -18040.579972 15.273979
+V 16 13353.274971 -18855.702993 17730.369185 -.004008
+P 17 16031.553658 17776.860855 -12098.263796 207.505083
+V 17 4189.967958 14852.460801 26267.881693 .194817
+P 18 17873.517795 -18382.120831 -6465.430512 -15.472064
+V 18 -2361.733112 8418.042557 -30531.003844 -.026520
+P 20 -18328.979127 5899.385353 18226.356870 -184.069912
+V 20 10745.075173 -20697.733696 17441.633283 .027627
+P 21 10818.365441 -11962.586993 -21088.331369 73.096145
+V 21 12387.408469 23731.427366 -7511.630661 .004911
+P 22 11212.481416 -23412.124276 5890.773149 -40.005643
+V 22 6296.383735 -4471.418805 -30567.540152 .087780
+P 24 11848.699157 23706.120900 -610.481986 8.193933
+V 24 -1817.330238 2131.158904 32024.463784 .028002
+P 25 -7242.468682 -23821.078852 9648.993152 61.736062
+V 25 8862.118424 8250.754340 28069.209123 .008329
+P 26 22812.321692 8565.255968 -11537.510578 409.866322
+V 26 -14054.670066 849.740512 -27172.794929 -.124838
+P 27 -12020.129071 9481.566914 -21203.225887 919.980180
+V 27 -15149.308109 -23709.352572 -2470.329825 .042772
+P 28 -11084.657853 23580.153452 4404.767906 21.885537
+V 28 -5452.149228 2980.252968 -31261.021738 .016490
+P 29 18506.263755 10598.841950 -15602.320990 230.002250
+V 29 -20245.107030 1575.572646 -22506.218910 .032787
+P 30 18258.811483 -15301.086872 11408.477801 805.404816
+V 30 -4785.075165 14436.169279 26585.665232 .142684
+P 31 -25125.394025 -5180.324968 -7844.276060 40.367295
+V 31 9393.236590 -3211.534689 -28877.397748 .307949
+* 2004 3 1 5 15 .00000000
+P 1 -26496.202254 -950.785150 1985.391122 332.619812
+V 1 2271.769418 -2273.505425 31977.919846 .016195
+P 3 -14030.830000 -12623.924868 -18864.816354 89.953406
+V 3 23465.070276 -4306.485376 -14418.920428 .029578
+P 4 2220.064669 22450.447950 13772.443915 -76.926353
+V 4 -11085.329074 -13862.553975 24729.617681 -.091981
+P 5 16299.076963 942.028136 20800.742572 19.810104
+V 5 -9945.959473 24921.132514 6793.169912 .017731
+P 6 25085.712224 -6148.325222 -6297.340086 -1.377200
+V 6 8419.996647 2869.647990 29726.139947 -.008049
+P 7 -7859.295273 15663.857413 20316.910510 611.604167
+V 7 -25056.320687 970.913066 -10820.744920 -.078465
+P 8 -4676.354146 18075.859286 -18962.423363 355.236438
+V 8 -13262.967127 -19780.894382 -16055.921362 -.088178
+P 9 19570.671961 11973.182946 13277.465416 -32.398963
+V 9 7869.282865 15733.983383 -24610.854841 -.018418
+P 10 5525.529800 17158.837909 -19453.353903 40.180810
+V 10 -12751.162861 21117.355731 15312.324923 .005876
+P 11 -20769.753927 -8483.427750 14311.624021 99.935018
+V 11 -8739.931899 -16376.413832 -22244.962225 .025557
+P 13 -23224.328640 7643.497948 -10318.226075 -30.900197
+V 13 -13095.048403 -1524.938879 28531.291955 .002122
+P 14 6954.410694 -14581.208557 21133.531521 -18.160842
+V 14 26675.574432 -450.000630 -9097.364359 -.001105
+P 15 -568.056434 -22307.016446 -14449.386170 233.081290
+V 15 10252.950139 14977.964408 -24139.252671 .056731
+P 16 -1940.859051 -20827.874454 -16293.379135 15.273620
+V 16 11315.270020 -17580.009337 21039.997943 -.004004
+P 17 16390.261327 18976.745013 -9639.794476 207.522811
+V 17 3708.575224 11797.321759 28287.144742 .194811
+P 18 17599.575497 -17488.674044 -9148.844062 -15.474942
+V 18 -3652.802209 11442.632443 -29013.665316 -.026543
+P 20 -17371.291566 3939.217736 19633.901520 -184.067323
+V 20 10467.773760 -22808.253981 13791.738277 .027633
+P 21 12000.957194 -9830.213704 -21580.980125 73.096719
+V 21 13861.774953 23570.203869 -3422.634434 .004912
+P 22 11684.846759 -23696.724467 3097.153017 -39.997782
+V 22 4247.186780 -1799.988225 -31424.482826 .087755
+P 24 11614.923344 23757.266901 2268.691241 8.196650
+V 24 -3438.295921 -957.539238 31864.970653 .028087
+P 25 -6348.082223 -22986.295164 12086.484717 61.737706
+V 25 11034.758005 10230.187156 26022.093024 .008264
+P 26 21417.857238 8678.161951 -13881.419794 409.855106
+V 26 -16883.149010 1718.578191 -24842.417155 -.124851
+P 27 -13436.699011 7379.402930 -21234.077693 919.983635
+V 27 -16278.703044 -22926.126532 1782.773204 .042774
+P 28 -11489.112330 23720.596251 1560.962767 21.886625
+V 28 -3588.054506 94.473053 -31842.583011 .016473
+P 29 16577.770806 10794.603108 -17485.528241 230.005209
+V 29 -22537.252236 2819.209821 -19280.385981 .032794
+P 30 17799.286653 -13874.066899 13694.321591 805.417912
+V 30 -5354.658024 17253.697217 24135.890201 .142679
+P 31 -24146.235558 -5497.985123 -10370.548925 40.394596
+V 31 12326.301339 -3904.894144 -27184.510514 .307914
+* 2004 3 1 5 30 .00000000
+P 1 -26135.919863 -1169.089924 4838.156089 332.620642
+V 1 5715.998597 -2647.978727 31326.368503 .016285
+P 3 -11862.551469 -13071.691171 -19998.744270 89.955701
+V 3 24638.792396 -5658.569148 -10743.049771 .029813
+P 4 1124.814438 21127.593003 15871.466936 -76.935199
+V 4 -13261.567556 -15452.916345 21848.370808 -.091982
+P 5 15448.001033 3230.634035 21229.066836 19.811278
+V 5 -8924.997854 25858.776813 2712.085640 .017474
+P 6 25697.386492 -5894.410970 -3575.636644 -1.379031
+V 6 5159.423234 2837.761590 30669.231188 -.008211
+P 7 -10053.074840 15799.107367 19176.019328 611.597890
+V 7 -23620.429829 1998.549789 -14498.956200 -.078471
+P 8 -5955.673826 16265.800567 -20241.316522 355.228373
+V 8 -15149.201105 -20356.601200 -12325.505527 -.088154
+P 9 20237.738385 13263.784002 10954.160975 -32.401208
+V 9 6881.011353 12939.070777 -26941.416296 -.018571
+P 10 4467.256112 19015.108807 -17910.987321 40.180456
+V 10 -10764.378000 20043.510579 18914.356526 .005796
+P 11 -21513.624461 -9850.069591 12192.880772 99.937396
+V 11 -7720.949896 -13983.457965 -24770.697988 .025539
+P 13 -24257.835449 7527.981306 -7668.761952 -30.900055
+V 13 -9837.289035 -1110.819088 30261.067905 .002133
+P 14 9300.094671 -14683.157452 20136.109976 -18.161076
+V 14 25365.667284 -1784.363104 -13035.954209 -.001108
+P 15 448.151504 -20883.195321 -16491.851689 233.087669
+V 15 12340.331324 16580.585219 -21185.618555 .056439
+P 16 -1012.564454 -22334.133395 -14264.350302 15.273247
+V 16 9329.783710 -15813.015054 23984.183533 -.004000
+P 17 16685.986247 19899.232815 -7020.939907 207.540158
+V 17 2790.742484 8703.939107 29827.923203 .194810
+P 18 17229.423064 -16322.793995 -11672.727007 -15.477446
+V 18 -4497.521933 14455.601481 -26991.181426 -.026547
+P 20 -16456.469029 1804.676457 20701.670309 -184.064932
+V 20 9801.337797 -24559.925547 9902.000399 .027637
+P 21 13306.740335 -7734.636763 -21703.043597 73.097366
+V 21 15111.583741 22919.982799 711.770468 .004918
+P 22 11986.311150 -23727.686652 250.491252 -39.989891
+V 22 2508.722507 1152.221260 -31744.218677 .087740
+P 24 11219.715243 23541.705288 5108.763351 8.199825
+V 24 -5395.117121 -3781.922468 31157.476978 .028118
+P 25 -5253.556429 -21992.727777 14320.028530 61.738606
+V 25 13295.745908 11774.098307 23543.808619 .008179
+P 26 19783.532184 8884.440116 -15996.821306 409.844042
+V 26 -19372.746846 2914.950900 -22101.424470 -.124862
+P 27 -14940.010991 5368.257986 -20883.869064 919.986937
+V 27 -17065.714499 -21696.960179 5984.543759 .042776
+P 28 -11740.779779 23590.098471 -1310.172092 21.888058
+V 28 -2065.837679 -3026.281251 -31866.995461 .016455
+P 29 14463.655925 11113.160137 -19062.417639 230.008189
+V 29 -24360.025359 4291.151409 -15709.022175 .032799
+P 30 17307.717323 -12200.745609 15740.113156 805.431290
+V 30 -5500.036920 19893.899794 21258.897781 .142676
+P 31 -22914.909481 -5892.859757 -12724.014992 40.421982
+V 31 14984.698548 -4919.583675 -25042.744111 .307886
+* 2004 3 1 5 45 .00000000
+P 1 -25472.115088 -1439.700192 7608.091304 332.620565
+V 1 9000.682721 -3431.140336 30140.237829 .016377
+P 3 -9610.594365 -13643.878286 -20792.941761 89.959605
+V 3 25321.503578 -7057.579943 -6879.838861 .030098
+P 4 -167.066255 19683.879572 17693.916355 -76.943288
+V 4 -15439.362393 -16545.366824 18592.852686 -.091979
+P 5 14698.951817 5581.980430 21287.654614 19.813222
+V 5 -7691.809252 26309.402224 -1411.096540 .017277
+P 6 26013.410801 -5625.759497 -792.690092 -1.379029
+V 6 1865.599084 3197.574988 31085.573221 -.008254
+P 7 -12098.377237 16016.049545 17714.022424 611.590696
+V 7 -21765.156452 2774.955143 -17946.463382 -.078479
+P 8 -7398.781830 14426.939596 -21175.083828 355.221046
+V 8 -16887.954616 -20423.964594 -8397.489694 -.088137
+P 9 20796.252961 14302.406107 8442.303183 -32.402445
+V 9 5459.954654 10150.380010 -28795.853386 -.018708
+P 10 3586.815572 20750.801933 -16058.373060 40.181071
+V 10 -8815.021504 18441.386171 22196.444330 .005770
+P 11 -22147.150105 -10999.942349 9865.657478 99.940147
+V 11 -6290.025143 -11573.505583 -26871.373771 .025525
+P 13 -24990.308837 7430.775888 -4886.886498 -30.900339
+V 13 -6421.974144 -1121.892144 31469.384832 .002142
+P 14 11505.613383 -14895.556366 18793.742250 -18.161322
+V 14 23569.058514 -2891.121026 -16751.913714 -.001107
+P 15 1653.797583 -19337.576361 -18252.233317 233.092413
+V 15 14447.440625 17681.653565 -17880.011825 .056133
+P 16 -257.268763 -23660.551536 -11988.719427 15.272879
+V 16 7485.005019 -13591.070341 26512.177157 -.003995
+P 17 16879.814115 20545.128637 -4285.749466 207.557479
+V 17 1447.454733 5666.223843 30869.583176 .194814
+P 18 16803.544075 -14889.987971 -13993.181569 -15.479812
+V 18 -4892.129054 17357.905332 -24499.798433 -.026548
+P 20 -15616.935372 -468.680521 21411.090785 -184.062199
+V 20 8805.835342 -25882.457016 5840.001623 .027639
+P 21 14712.015538 -5717.933704 -21453.620770 73.097765
+V 21 16060.862687 21826.348444 4820.912739 .004920
+P 22 12147.360528 -23483.353319 -2600.453557 -39.982000
+V 22 1134.508161 4303.167978 -31519.164045 .087726
+P 24 10635.648503 23086.747681 7861.073159 8.202275
+V 24 -7623.319392 -6265.899165 29918.145267 .028122
+P 25 -3954.756090 -20880.717683 16312.738590 61.739906
+V 25 15559.723440 12859.917773 20677.986177 .007985
+P 26 17942.951974 9210.747385 -17848.623470 409.832884
+V 26 -21456.477876 4374.075558 -18992.191055 -.124875
+P 27 -16496.439954 3485.277042 -20160.722087 919.990929
+V 27 -17450.323498 -20090.641334 10057.706723 .042779
+P 28 -11872.605921 23171.538033 -4158.282932 21.889575
+V 28 -931.124236 -6291.042101 -31331.315685 .016437
+P 29 12208.606909 11571.342380 -20304.654278 230.010870
+V 29 -25662.060307 5907.233037 -11854.585877 .032806
+P 30 16821.244812 -10301.217436 17509.608228 805.444051
+V 30 -5247.157032 22265.957390 18004.987388 .142672
+P 31 -21459.290927 -6391.558324 -14865.854226 40.449310
+V 31 17300.123392 -6202.149989 -22488.222904 .307860
+* 2004 3 1 6 0 .00000000
+P 1 -24523.365361 -1797.865092 10248.020356 332.620572
+V 1 12033.405835 -4586.076290 28441.764869 .016756
+P 3 -7319.730660 -14340.947747 -21233.425289 89.963357
+V 3 25503.121534 -8419.669120 -2893.707105 .030265
+P 4 -1651.511603 18164.621015 19208.712136 -76.951381
+V 4 -17525.240898 -17131.988754 15021.889864 -.091981
+P 5 14067.391483 7950.886297 20975.983953 19.814458
+V 5 -6328.223009 26245.957063 -5503.827141 .016996
+P 6 26034.991944 -5307.259290 2003.815249 -1.379137
+V 6 -1368.415578 3943.084427 30970.507365 -.008428
+P 7 -13959.908473 16289.167590 15954.328570 611.583317
+V 7 -19547.133635 3237.386444 -21105.010421 -.078484
+P 8 -8988.502090 12603.944798 -21748.950892 355.213044
+V 8 -18393.501938 -20009.962069 -4339.061620 -.088123
+P 9 21208.313097 15093.841039 5785.978592 -32.405055
+V 9 3632.204197 7461.070268 -30148.216853 -.018843
+P 10 2876.661254 22319.618849 -13926.997784 40.181556
+V 10 -6995.128633 16341.898581 25099.723133 .005745
+P 11 -22634.093067 -11935.305849 7369.847417 99.942676
+V 11 -4468.430351 -9230.221331 -28511.846031 .025500
+P 13 -25412.101919 7312.851952 -2020.576116 -30.900183
+V 13 -2950.408505 -1571.940458 32134.564531 .002149
+P 14 13529.636945 -15194.478706 17129.353260 -18.161774
+V 14 21343.315674 -3695.609911 -20181.768930 -.001105
+P 15 3046.522648 -17715.807494 -19701.434714 233.098551
+V 15 16482.313000 18273.015105 -14280.566527 .055732
+P 16 341.382369 -24768.462074 -9505.952996 15.272190
+V 16 5861.383650 -10967.497342 28580.628959 -.003987
+P 17 16934.582900 20923.519508 -1479.786602 207.574763
+V 17 -293.469386 2773.803491 31399.105436 .194819
+P 18 16361.907767 -13204.592913 -16069.955044 -15.482124
+V 18 -4851.749616 20053.012839 -21584.135754 -.026551
+P 20 -14879.119362 -2839.599145 21749.821116 -184.059724
+V 20 7553.962603 -26719.978462 1676.411217 .027638
+P 21 16186.710561 -3817.397728 -20838.120488 73.098183
+V 21 16644.417908 20349.656652 8835.433182 .004922
+P 22 12202.598135 -22949.880290 -5406.655970 -39.974231
+V 22 162.220749 7561.789564 -30751.005586 .087713
+P 24 9841.662349 22425.921893 10478.815906 8.205158
+V 24 -10046.393235 -8347.815240 28171.963777 .028190
+P 25 -2455.330226 -19691.862214 18031.908699 61.739645
+V 25 17739.601401 13482.327663 17473.743885 .007734
+P 26 15935.167562 9677.382617 -19405.800500 409.821616
+V 26 -23080.663603 6019.863409 -15562.619770 -.124889
+P 27 -18067.650517 1760.830286 -19079.540856 919.994762
+V 27 -17388.219432 -18188.353201 13929.085769 .042779
+P 28 -11920.875834 22456.333589 -6933.220980 21.890913
+V 28 -212.236738 -9601.595083 -30243.061710 .016418
+P 29 9861.109091 12178.042014 -21189.793129 230.013577
+V 29 -26410.624074 7575.846190 -7785.300483 .032814
+P 30 16373.912341 -8203.407396 18971.423890 805.456706
+V 30 -4638.674278 24287.261555 14431.720520 .142666
+P 31 -19812.882311 -7015.341394 -16760.768160 40.477918
+V 31 19216.172815 -7687.559253 -19562.982340 .307835
+* 2004 3 1 6 15 .00000000
+P 1 -23316.159099 -2274.767735 12713.149637 332.621763
+V 1 14731.309929 -6059.655068 26261.569282 .017465
+P 3 -5034.873009 -15155.796484 -21312.124979 89.965033
+V 3 25190.614810 -9661.134009 1148.516693 .030356
+P 4 -3316.096989 16614.976175 20390.307039 -76.959703
+V 4 -19427.543718 -17224.071160 11199.399453 -.091976
+P 5 13561.205435 10290.540351 20300.029370 19.815514
+V 5 -4920.197378 25659.378638 -9494.512403 .016821
+P 6 25771.591743 -4905.103548 4766.177336 -1.381147
+V 6 -4452.791335 5051.408537 30328.272181 -.008573
+P 7 -15608.029722 16587.827907 13925.432414 611.575941
+V 7 -17035.048207 3335.267322 -23919.988803 -.078488
+P 8 -10700.261844 10838.290267 -21954.256657 355.204858
+V 8 -19587.716088 -19158.329753 -218.702397 -.088110
+P 9 21439.099894 15650.977318 3031.203709 -32.406589
+V 9 1439.945062 4957.370509 -30981.558425 -.018774
+P 10 2321.239040 23678.893134 -11553.371937 40.182109
+V 10 -5389.995906 13794.622340 27571.608527 .005794
+P 11 -22940.838203 -12665.755591 4748.160709 99.945209
+V 11 -2293.007565 -7032.445402 -29664.741629 .025478
+P 13 -25522.781006 7134.798649 880.664999 -30.899662
+V 13 474.620165 -2455.606773 32244.393210 .002155
+P 14 15336.685449 -15549.814963 15171.373810 -18.161796
+V 14 18760.466093 -4135.560348 -23266.812022 -.001095
+P 15 4615.721357 -16063.426705 -20815.784426 233.102300
+V 15 18354.251569 18365.202835 -10449.521479 .055353
+P 16 806.515499 -25624.689383 -6859.057765 15.271654
+V 16 4528.470610 -8010.620682 30154.326625 -.003979
+P 17 16816.353139 21051.252693 1350.553673 207.592576
+V 17 -2388.459818 109.022490 31411.013426 .194827
+P 18 15942.298533 -11289.379057 -17867.154295 -15.484671
+V 18 -4409.616794 22450.656263 -18296.291707 -.026551
+P 20 -14262.449339 -5262.531381 21711.971285 -184.057091
+V 20 6128.054560 -27033.255611 -2516.281276 .027641
+P 21 17695.465782 -2064.317643 -19868.093688 73.098745
+V 21 16810.317839 18562.527559 12688.374407 .004923
+P 22 12189.246822 -22121.901293 -8119.664598 -39.966400
+V 22 -387.798956 10831.331586 -29450.819880 .087709
+P 24 8824.011263 21597.576213 12917.807974 8.207604
+V 24 -12578.818867 -9982.487940 25952.070151 .028186
+P 25 -766.723715 -18467.463203 19449.469478 61.739473
+V 25 19749.755524 13653.142206 13984.866181 .007535
+P 26 13803.390563 10297.387671 -20641.869018 409.810664
+V 26 -24206.795878 7767.614778 -11865.666734 -.124902
+P 27 -19612.092164 217.559726 -17661.575920 919.998695
+V 27 -16852.480328 -16080.013388 17531.044927 .042778
+P 28 -11923.597583 21444.926955 -9585.985649 21.892717
+V 28 80.993529 -12856.297027 -28620.209588 .016399
+P 29 7471.701518 12933.713042 -21701.740376 230.017297
+V 29 -26592.970641 9201.739166 -3573.851309 .032821
+P 30 15995.237735 -5942.179500 20099.643881 805.469521
+V 30 -3732.138721 25886.741436 10602.819738 .142665
+P 31 -18013.656148 -7779.185522 -18377.485235 40.504864
+V 31 20690.182719 -9301.634138 -16314.372257 .307815
+* 2004 3 1 6 30 .00000000
+P 1 -21883.899939 -2896.158138 14961.795636 332.623606
+V 1 17024.032816 -7784.676329 23638.032680 .018302
+P 3 -2799.546156 -16073.918602 -21027.055673 89.968290
+V 3 24407.765801 -10701.715585 5178.620912 .030493
+P 4 -5140.367038 15078.248739 21219.088036 -76.968221
+V 4 -21060.057227 -16851.365270 7193.121175 -.091968
+P 5 13180.490005 12554.139889 19272.116555 19.815830
+V 5 -3554.269496 24558.913265 -13313.821230 .016643
+P 6 25240.489316 -4388.270494 7447.468080 -1.381857
+V 6 -7304.158046 6483.750382 29171.780291 -.008586
+P 7 -17019.740826 16877.475775 11660.544100 611.569128
+V 7 -14307.316282 3032.364028 -26341.375728 -.078490
+P 8 -12502.910081 9166.829202 -21788.521067 355.196635
+V 8 -20402.996093 -17927.655997 3894.888770 -.088094
+P 9 21458.250936 15994.036984 225.119869 -32.408489
+V 9 -1060.312130 2715.550832 -31287.795354 -.018755
+P 10 1897.753498 24791.198771 -8978.414653 40.182597
+V 10 -4074.691188 10866.092618 29566.886681 .005787
+P 11 -23037.740713 -13207.654311 2045.405301 99.947325
+V 11 185.116020 -5051.252987 -30310.874202 .025458
+P 13 -25331.084488 6858.546974 3766.669931 -30.899161
+V 13 3752.719755 -3748.513160 31796.386917 .002162
+P 14 16898.313347 -15926.506081 12953.266536 -18.161657
+V 14 15904.314031 -4163.629199 -25954.090479 -.001086
+P 15 6342.812630 -14424.207748 -21577.356681 233.108218
+V 15 19977.273967 17986.713224 -6452.140242 .055008
+P 16 1166.922692 -26202.788513 -4093.820944 15.271257
+V 16 3542.206286 -4801.218375 31206.778235 -.003968
+P 17 16495.757833 20952.155985 4158.718499 207.609464
+V 17 -4779.779017 -2255.763224 30907.252532 .194835
+P 18 15578.749099 -9174.826781 -19353.873262 -15.486834
+V 18 -3615.558013 24470.318392 -14694.809363 -.026551
+P 20 -13778.635012 -7689.208139 21298.208466 -184.054549
+V 20 4616.714865 -26801.258869 -6665.068802 .027642
+P 21 19198.919960 -483.002461 -18560.971557 73.098934
+V 21 16521.847452 16546.934933 16316.180286 .004919
+P 22 12145.546189 -21002.880013 -10692.446462 -39.958838
+V 22 -513.377562 14012.940870 -27639.029022 .087699
+P 24 7576.928556 20643.330227 15137.186137 8.210752
+V 24 -15129.377569 -11142.575648 23298.977636 .028131
+P 25 1092.095238 -17247.012825 20542.371083 61.740296
+V 25 21509.129208 13400.595438 10268.975671 .007548
+P 26 11593.561736 11075.906043 -21535.319477 409.799564
+V 26 -24812.923879 9527.035526 -7958.812121 -.124913
+P 27 -21086.610246 -1130.232251 -15933.870143 920.002897
+V 27 -15834.462502 -13860.367921 20802.678296 .042781
+P 28 -11918.813524 20146.912245 -12069.656264 21.894292
+V 28 -42.362637 -15954.080345 -26490.940393 .016383
+P 29 5091.147714 13830.222320 -21831.091247 230.020915
+V 29 -26216.876296 10690.010702 704.049822 .032824
+P 30 15708.978844 -3558.165297 20874.317678 805.482608
+V 30 -2597.543447 27007.733529 6586.914161 .142656
+P 31 -16102.753314 -8691.081516 -19689.211285 40.531761
+V 31 21694.595973 -10963.789479 -12794.434597 .307797
+* 2004 3 1 6 45 .00000000
+P 1 -20265.668070 -3681.203240 16956.051867 332.627219
+V 1 18856.152875 -9682.530383 20616.580278 .018989
+P 3 -654.407691 -17073.860671 -20382.393268 89.971373
+V 3 23194.312638 -11467.803251 9128.087942 .030492
+P 4 -7096.480113 13594.286190 21681.662163 -76.976220
+V 4 -22345.390316 -16060.625051 3073.322491 -.091958
+P 5 12917.660176 14696.525924 17910.662617 19.817222
+V 5 -2314.018051 22971.715920 -16895.917871 .016574
+P 6 24466.064536 -3729.890182 10002.299333 -1.383485
+V 6 -9848.554026 8186.948292 27522.272986 -.008663
+P 7 -18179.435994 17121.006722 9197.133936 611.562474
+V 7 -11449.357178 2308.489300 -28324.681568 -.078494
+P 8 -14359.781154 7620.562068 -21255.418170 355.188571
+V 8 -20784.774023 -16388.975402 7933.819417 -.088073
+P 9 21241.051870 16149.560311 -2584.793357 -32.410085
+V 9 -3799.973367 799.362556 -31067.439141 -.018745
+P 10 1577.231648 25625.773555 -6246.745807 40.183626
+V 10 -3110.948278 7637.404832 31048.683698 .005938
+P 11 -22900.333629 -13583.311936 -692.263802 99.949377
+V 11 2902.349739 -3347.320615 -30439.532782 .025434
+P 13 -24854.535293 6449.047702 6587.489923 -30.898976
+V 13 6789.687517 -5408.140042 30797.876290 .002163
+P 14 18194.031521 -16285.979782 10512.966574 -18.161929
+V 14 12867.312046 -3749.363480 -28197.310562 -.001085
+P 15 8201.811132 -12838.600236 -21974.195427 233.112932
+V 15 21273.336506 17182.642044 -2355.643520 .054542
+P 16 1455.734896 -26484.033004 -1258.005279 15.270959
+V 16 2942.760659 -1429.496635 31720.630512 -.003956
+P 17 15949.189417 20656.030395 6898.658308 207.626499
+V 17 -7397.548275 -4260.528358 29897.032767 .194845
+P 18 15300.140226 -6898.106801 -20504.722157 -15.489325
+V 18 -2533.821359 26044.315745 -10843.530638 -.026565
+P 20 -13431.264677 -10070.321913 20515.744506 -184.052048
+V 20 3111.200304 -26022.023992 -10697.739494 .027640
+P 21 20655.145841 909.918210 -16939.718030 73.099607
+V 21 15758.876299 14391.007610 19659.599420 .004922
+P 22 12109.106648 -19605.131984 -13080.219620 -39.951005
+V 22 -230.630168 17009.386082 -25345.182836 .087694
+P 24 6102.983948 19606.433361 17100.033776 8.212682
+V 24 -17604.618422 -11819.256408 20259.729879 .028042
+P 25 3095.179047 -16066.768832 21292.891375 61.742188
+V 25 22944.146413 12768.074622 6386.705537 .007440
+P 26 9352.818034 12009.824431 -22069.997085 409.788129
+V 26 -24894.513078 11205.493485 -3903.464904 -.124926
+P 27 -22448.101349 -2276.838915 -13928.609444 920.006827
+V 27 -14343.900642 -11625.030240 23690.733080 .042781
+P 28 -11942.910844 18580.802825 -14340.289736 21.895665
+V 28 -554.727574 -18798.467412 -23893.137340 .016370
+P 29 2768.596506 14851.062133 -21575.334110 230.023944
+V 29 -25310.322762 11950.120967 4971.194620 .032822
+P 30 15532.144300 -1096.359583 21281.840978 805.495462
+V 30 -1314.343573 27610.266436 2456.164625 .142640
+P 31 -14123.080740 -9751.589168 -20674.022846 40.559502
+V 31 22217.823878 -12589.981469 -9059.254775 .307795
+* 2004 3 1 7 0 .00000000
+P 1 -18504.786807 -4641.595390 18662.387349 332.627252
+V 1 20189.060921 -11666.263539 17248.880983 .019491
+P 3 1364.126722 -18127.956766 -19388.452286 89.974008
+V 3 21604.491234 -11895.426911 12929.210032 .030584
+P 4 -9150.140326 12198.039589 21771.025764 -76.984510
+V 4 -23217.967043 -14913.507620 -1088.492921 -.091953
+P 5 12757.869708 16675.750769 16239.809604 19.819285
+V 5 -1276.681460 20941.756069 -20179.597205 .016517
+P 6 23478.832452 -2908.447678 12387.552809 -1.384467
+V 6 -12023.995570 10095.548340 25408.866391 -.008737
+P 7 -19079.399008 17280.266861 6576.392041 611.555305
+V 7 -8550.545465 1160.651402 -29831.887676 -.078502
+P 8 -16229.962215 6223.640239 -20364.659498 355.180720
+V 8 -20693.526115 -14622.958822 11831.972304 -.088054
+P 9 20769.408694 16149.183743 -5351.475359 -32.411874
+V 9 -6700.974680 -741.988169 -30329.218226 -.018791
+P 10 1325.843455 26159.698061 -3405.897387 40.184491
+V 10 -2544.583338 4201.199151 31989.283630 .005915
+P 11 -22510.349662 -13819.945971 -3418.115427 99.951840
+V 11 5784.930213 -1968.695354 -30048.640080 .025413
+P 13 -24118.721455 5875.837063 9294.274560 -30.898720
+V 13 9501.066857 -7375.433806 29265.906098 .002161
+P 14 19211.931998 -16587.735113 7892.245346 -18.162353
+V 14 9747.102395 -2880.519825 -29957.639754 -.001086
+P 15 10160.174860 -11342.318921 -22000.443344 233.116811
+V 15 22175.229204 16012.745837 1771.832975 .054108
+P 16 1708.928933 -26458.113498 1599.485888 15.270966
+V 16 2753.007125 2008.289752 31687.917436 -.003949
+P 17 15159.786910 20197.450606 9525.472467 207.643236
+V 17 -10162.150198 -5859.498861 28396.642913 .194864
+P 18 15129.022223 -4501.805680 -21300.249598 -15.491808
+V 18 -1240.338312 27120.356776 -6810.368398 -.026575
+P 20 -13215.733442 -12357.253591 19378.205793 -184.049514
+V 20 1701.705107 -24712.769956 -14544.173282 .027641
+P 21 22021.181149 2105.897428 -15032.405391 73.099940
+V 21 14518.606315 12185.662836 22664.490312 .004919
+P 22 12115.285281 -17949.511292 -15241.258169 -39.942976
+V 22 426.645932 19728.760814 -22607.562385 .087685
+P 24 4413.127014 18530.093595 18773.928694 8.215071
+V 24 -19912.350977 -12022.214012 16887.007358 .027993
+P 25 5210.394960 -14958.466836 21688.869769 61.742377
+V 25 23991.346788 11812.350918 2400.875725 .007260
+P 26 7127.907715 13087.714780 -22235.425702 409.777127
+V 26 -24464.734754 12711.423123 235.711192 -.124939
+P 27 -23655.143498 -3225.052955 -11682.402488 920.010730
+V 27 -12408.257878 -9466.641700 26150.266862 .042778
+P 28 -12029.003695 16773.443277 -16357.762063 21.896969
+V 28 -1411.207510 -21301.414938 -20873.642977 .016355
+P 29 549.809624 15971.917821 -20938.914180 230.026447
+V 29 -23920.334856 12899.740817 9150.460403 .032821
+P 30 15474.291598 1395.459262 21315.208446 805.507918
+V 30 31.924267 27672.659145 -1715.193588 .142626
+P 31 -12117.855348 -10953.663695 -21315.200785 40.587244
+V 31 22264.576436 -14095.781046 -5168.283441 .307785
+* 2004 3 1 7 15 .00000000
+P 1 -16647.248717 -5780.950646 20052.169988 332.630126
+V 1 21002.201459 -13643.933340 13591.980799 .019989
+P 3 3225.101458 -19203.318853 -18061.561778 89.978605
+V 3 19705.020892 -11932.920404 16516.230187 .030648
+P 4 -11261.777467 10918.337491 21486.618665 -76.992831
+V 4 -23626.527003 -13483.932091 -5220.846836 -.091949
+P 5 12679.723591 18454.517849 14288.960963 19.820744
+V 5 -510.064423 18528.083884 -23109.303666 .016338
+P 6 22314.266770 -1908.779306 14563.064785 -1.383848
+V 6 -13782.582536 12134.315645 22868.002543 -.008650
+P 7 -19720.013216 17317.629019 3842.604943 611.548246
+V 7 -5700.938719 -396.420500 -30832.349903 -.078510
+P 8 -18069.717123 4992.636837 -19131.792924 355.172509
+V 8 -20106.230869 -12716.803316 15525.914669 -.088040
+P 9 20032.572118 16028.261098 -8029.003989 -32.413504
+V 9 -9678.660341 -1875.291769 -29089.622195 -.018781
+P 10 1106.427263 26378.779840 -505.458647 40.184635
+V 10 -2403.550886 658.147040 32370.766823 .005893
+P 11 -21856.518907 -13948.462352 -6085.621459 99.954033
+V 11 8751.596206 -949.048081 -29144.779214 .025392
+P 13 -23156.272670 5114.427160 11840.134566 -30.898450
+V 13 11815.323646 -9577.081238 27226.949559 .002163
+P 14 19948.991343 -16791.014659 5136.007222 -18.162246
+V 14 6642.857582 -1563.685907 -31204.393594 -.001088
+P 15 12179.894988 -9965.130280 -21656.378571 233.121607
+V 15 22629.050153 14549.010428 5862.246173 .053758
+P 16 1963.727818 -26123.521268 4429.458257 15.270446
+V 16 2977.685330 5413.436937 31110.138011 -.003937
+P 17 14118.192593 19614.413383 11996.037067 207.660753
+V 17 -12986.935466 -7022.603185 26429.239875 .194891
+P 18 15080.703780 -2032.448445 -21727.251690 -15.494009
+V 18 180.458285 27663.478527 -2666.026746 -.026585
+P 20 -13119.504786 -14503.776179 17905.388115 -184.046978
+V 20 473.694325 -22909.269749 -18137.596758 .027636
+P 21 23254.598428 3104.568140 -12871.721830 73.100198
+V 21 12815.687031 10021.191898 25282.528533 .004922
+P 22 12195.648683 -16064.770370 -17137.653473 -39.934910
+V 22 1408.293021 22088.020434 -19472.603892 .087675
+P 24 2526.419785 17455.837833 20131.409070 8.217554
+V 24 -21965.040527 -11778.954107 13238.204919 .028083
+P 25 7400.440984 -13948.212126 21723.867120 61.742844
+V 25 24599.665336 10601.370303 -1624.326878 .007205
+P 26 4963.606155 14290.085648 -22027.067075 409.765695
+V 26 -23554.157020 13957.776964 4391.562490 -.124950
+P 27 -24669.536681 -3985.736057 -9235.512684 920.014750
+V 27 -10071.396886 -7471.308234 28145.053260 .042768
+P 28 -12205.456571 14759.089576 -18086.532902 21.898408
+V 28 -2551.529128 -23386.814773 -17487.296428 .016339
+P 29 -1524.469680 17161.568007 -19933.154207 230.029813
+V 29 -22111.020256 13468.265979 13166.398510 .032818
+P 30 15537.141860 3868.419168 20974.133119 805.520763
+V 30 1353.272656 27192.363584 -5852.349714 .142609
+P 31 -10129.142652 -12282.760910 -21601.501373 40.615300
+V 31 21855.649622 -15399.479094 -1183.623600 .307773
+* 2004 3 1 7 30 .00000000
+P 1 -14740.059826 -7094.517506 21102.109471 332.633337
+V 1 21293.648214 -15522.130837 9707.382874 .020548
+P 3 4904.035069 -20263.048006 -16423.838034 89.980884
+V 3 17572.598588 -11543.148575 19826.491189 .030568
+P 4 -13387.926538 9776.917651 20834.266984 -77.001239
+V 4 -23536.048769 -11855.012620 -9253.496083 -.091941
+P 5 12656.251462 20001.439561 12092.232095 19.820917
+V 5 -69.850486 15802.535351 -25636.019230 .016152
+P 6 21011.457258 -722.826658 16492.257581 -1.385537
+V 6 -15092.073689 14221.089345 19942.817783 -.008835
+P 7 -20109.671157 17197.586120 1042.453492 611.541025
+V 7 -2987.894937 -2330.425187 -31303.637971 -.078514
+P 8 -19834.015179 3936.106909 -17577.922393 355.164900
+V 8 -19017.235654 -10760.931121 18955.747670 -.088019
+P 9 19027.594964 15824.380845 -10573.271437 -32.415845
+V 9 -12644.819653 -2584.191677 -27372.391466 -.018742
+P 10 880.157939 26278.104163 2403.826064 40.184103
+V 10 -2696.730942 -2886.915088 32185.444949 .005941
+P 11 -20935.112175 -14002.103328 -8649.232545 99.956289
+V 11 11716.549050 -306.474519 -27743.089007 .025374
+P 13 -22005.572987 4147.464942 14180.970710 -30.898222
+V 13 13676.513633 -11928.361077 24716.442110 .002166
+P 14 20411.040817 -16856.500116 2291.530084 -18.162260
+V 14 3651.557941 175.823979 -31915.593392 -.001096
+P 15 14218.786599 -8729.876654 -20948.362512 233.124585
+V 15 22596.184535 12872.819755 9848.613231 .053453
+P 16 2256.957891 -25487.603175 7183.275596 15.270075
+V 16 3603.280495 8688.469700 29998.166022 -.003922
+P 17 12823.054245 18946.877932 14269.612644 207.678237
+V 17 -15781.157285 -7736.416596 24024.612891 .194921
+P 18 15162.642202 461.122443 -21778.964699 -15.496175
+V 18 1639.126276 27657.293057 1517.301120 -.026603
+P 20 -13122.694372 -16467.669138 16122.901397 -184.044339
+V 20 -495.566891 -20664.500102 -21415.771673 .027634
+P 21 24315.057015 3913.535382 -10494.419698 73.100764
+V 21 10681.706438 7983.915431 27471.817865 .004923
+P 22 12376.585471 -13986.614460 -18736.015592 -39.926935
+V 22 2649.787985 24016.206846 -15994.147186 .087662
+P 24 469.472463 16421.962421 21150.355690 8.218292
+V 24 -23682.992065 -11133.493525 9374.495865 .028212
+P 25 9624.048449 -13055.587405 21397.251949 61.743012
+V 25 24732.289878 9211.677435 -5624.166269 .007043
+P 26 2901.187002 15589.942188 -21446.506770 409.754507
+V 26 -22209.823117 14865.413468 8495.310771 -.124961
+P 27 -25457.696693 -4577.085086 -6631.064125 920.019195
+V 27 -7391.666528 -5715.440501 29647.760261 .042760
+P 28 -12494.612416 12578.195639 -19496.314644 21.899701
+V 28 -3902.635325 -24993.493751 -13795.779617 .016325
+P 29 -3419.938788 18383.080030 -18576.033668 230.032656
+V 29 -19960.897742 13599.838060 16946.782611 .032812
+P 30 15714.526629 6274.284698 20265.030594 805.533984
+V 30 2562.983877 26186.017911 -9881.416359 .142591
+P 31 -8196.438943 -13717.219764 -21527.361417 40.643453
+V 31 21027.171061 -16425.129118 2830.722930 .307761
+* 2004 3 1 7 45 .00000000
+P 1 -12829.562517 -8569.205450 21794.615413 332.635856
+V 1 21080.001629 -17209.544104 5660.085845 .020781
+P 3 6383.689943 -21267.622809 -14502.854265 89.984270
+V 3 15290.987750 -10705.202932 22801.572749 .030529
+P 4 -15482.752120 8787.749177 19826.020113 -77.009926
+V 4 -22929.037036 -10115.692853 -13118.572287 -.091934
+P 5 12656.100846 21292.066966 9687.827282 19.823359
+V 5 2.581080 12846.974815 -27718.010159 .016118
+P 6 19611.651081 649.877939 18142.710910 -1.386719
+V 6 -15936.884508 16269.877272 16682.439591 -.008980
+P 7 -20264.379520 16888.299699 -1775.760606 611.533534
+V 7 -492.707279 -4592.339803 -31232.276683 -.078516
+P 8 -21478.110424 3054.449107 -15729.353860 355.156732
+V 8 -17438.511828 -8845.608993 22065.896774 -.088002
+P 9 17759.512989 15575.833188 -12942.612463 -32.417591
+V 9 -15510.779666 -2869.444665 -25207.972049 -.018708
+P 10 608.288245 25862.227094 5270.989727 40.185393
+V 10 -3413.506818 -6329.045522 31436.075758 .006032
+P 11 -19750.209084 -14015.013828 -11065.138511 99.958164
+V 11 14592.589995 -42.888076 -25867.029239 .025361
+P 13 -20709.260459 2965.612758 16276.252957 -30.897776
+V 13 15046.333233 -14336.458795 21778.143856 .002170
+P 14 20612.403994 -16747.965694 -592.338039 -18.162400
+V 14 864.347877 2294.799671 -32078.382732 -.001107
+P 15 16231.933033 -7651.769387 -19888.702481 233.129871
+V 15 22054.731109 11071.826935 13665.936105 .053301
+P 16 2623.427371 -24566.287499 9813.693306 15.269586
+V 16 4598.617926 11740.754446 28371.997713 -.003909
+P 17 11281.256041 18235.245156 16308.429396 207.695847
+V 17 -18453.052895 -8004.571112 21218.918171 .194948
+P 18 15374.156474 2929.447651 -21455.140575 -15.498506
+V 18 3044.872057 27104.504666 5667.229834 -.026620
+P 20 -13198.952164 -18212.180717 14061.711319 -184.041959
+V 20 -1140.149639 -18046.625247 -24322.094023 .027630
+P 21 25165.782063 4547.874805 -7940.712967 73.100894
+V 21 8164.084918 6153.019828 29197.408319 .004923
+P 22 12678.126070 -11756.485041 -20008.099519 -39.918895
+V 22 4074.838710 25457.224800 -12232.518220 .087649
+P 24 -1724.394031 15462.127611 21814.289783 8.221082
+V 24 -24997.221028 -10144.483542 5359.894063 .028461
+P 25 11837.330616 -12293.005879 20714.213020 61.744310
+V 25 24368.041108 7725.553384 -9534.176527 .006920
+P 26 977.003809 16953.643808 -20501.557447 409.743038
+V 26 -20493.720182 15366.303785 12477.525481 -.124973
+P 27 -25991.854562 -5023.635810 -3914.240559 920.023052
+V 27 -4439.513894 -4263.094912 30639.932206 .042744
+P 28 -12911.779681 10275.957518 -20562.630395 21.901313
+V 28 -5381.821480 -26077.580153 -9866.308804 .016312
+P 29 -5109.889797 19595.249916 -16891.832113 230.035932
+V 29 -17559.634528 13255.738104 20424.071932 .032806
+P 30 15992.667408 8567.156636 19200.869861 805.547115
+V 30 3579.256954 24688.714060 -13730.887425 .142568
+P 31 -6355.345219 -15228.912353 -21093.033513 40.671328
+V 31 19829.319192 -17105.432385 6809.655752 .307748
+* 2004 3 1 8 0 .00000000
+P 1 -10959.797883 -10183.931346 22118.067450 332.636794
+V 1 20395.618317 -18620.438097 1517.590589 .020939
+P 3 7654.565559 -22176.413457 -12331.209316 89.987074
+V 3 12947.805965 -9415.487999 25388.393993 .030429
+P 4 -17499.658588 7956.666035 18479.888779 -77.018295
+V 4 -21806.139954 -8357.214912 -16751.638244 -.091922
+P 5 12644.901258 22309.654731 7117.356016 19.824926
+V 5 -318.241686 9750.188816 -29321.426371 .015994
+P 6 18156.731434 2202.011165 19486.667077 -1.387034
+V 6 -16318.479768 18194.080900 13141.221429 -.008951
+P 7 -20207.067150 16363.040211 -4562.949196 611.526430
+V 7 1712.606647 -7117.971476 -30614.352387 -.078511
+P 8 -22959.116240 2340.071048 -13617.172709 355.148691
+V 8 -15399.296377 -7057.598893 24805.844326 -.087982
+P 9 16241.248497 15320.080025 -15098.382572 -32.419446
+V 9 -18190.456904 -2748.600201 -22632.950137 -.018664
+P 10 253.892105 25145.000917 8045.783898 40.185363
+V 10 -4524.157830 -9567.275406 30135.846767 .006069
+P 11 -18313.680126 -14020.780741 -13292.001897 99.961141
+V 11 17294.319403 -144.027405 -23548.018512 .025350
+P 13 -19312.573167 1568.114682 18089.735014 -30.897543
+V 13 15905.471502 -16704.111421 18463.344167 .002175
+P 14 20575.215244 -16433.824974 -3466.013074 -18.162572
+V 14 -1636.889147 4733.664880 -31689.292614 -.001116
+P 15 18173.232210 -6737.972942 -18495.433114 233.134607
+V 15 21000.336918 9236.635166 17252.082013 .053051
+P 16 3094.389636 -23383.492726 12275.662303 15.268895
+V 16 5916.143941 14485.908998 26260.346341 -.003898
+P 17 9507.868647 17518.824737 18078.246895 207.713838
+V 17 -20912.987766 -7847.614043 18054.375892 .194979
+P 18 15706.471489 5324.164846 -20762.006931 -15.500802
+V 18 4309.226982 26026.689075 9712.448390 -.026635
+P 20 -13316.607065 -19707.281832 11757.586845 -184.039458
+V 20 -1408.139138 -15136.396819 -26806.582784 .027626
+P 21 25774.918772 5029.358519 -5253.632151 73.100422
+V 21 5324.417065 4597.677723 30431.724092 .004929
+P 22 13113.019595 -9420.118174 -20931.341913 -39.910746
+V 22 5598.482510 26372.049450 -8253.460609 .087629
+P 24 -4016.226424 14604.143635 22112.586664 8.224754
+V 24 -25851.922571 -8882.842276 1260.321804 .028708
+P 25 13995.232357 -11665.331570 19685.697992 61.745907
+V 25 23502.232182 6227.955049 -13290.986151 .006806
+P 26 -778.763897 18342.037697 -19206.269769 409.731619
+V 26 -18480.661900 15406.435142 16269.203636 -.124986
+P 27 -26251.024094 -5355.052485 -1131.493525 920.026730
+V 27 -1294.739420 -3163.882844 31111.809951 .042724
+P 28 -13464.520625 7900.676997 -21267.248780 21.902784
+V 28 -6900.268180 -26614.136305 -5770.213015 .016303
+P 29 -6576.048857 20754.225542 -14910.646216 230.038483
+V 29 -15004.340977 12416.049398 23536.748122 .032800
+P 30 16350.774190 10705.071665 17800.896212 805.560282
+V 30 4328.623716 22752.519263 -17333.017032 .142547
+P 31 -4636.379037 -16784.142946 -20304.646984 40.698382
+V 31 18324.545321 -17384.371202 10687.827858 .307732
+* 2004 3 1 8 15 .00000000
+P 1 -9170.966390 -11910.270746 22066.994861 332.638544
+V 1 19291.203757 -19677.930211 -2651.115896 .021310
+P 3 8715.093541 -22949.263993 -9945.999649 89.991429
+V 3 10631.131718 -7688.141794 27540.256111 .030281
+P 4 -19392.925354 7281.320760 16819.492159 -77.026450
+V 4 -20186.088501 -6669.556753 -20092.651355 -.091911
+P 5 12586.744455 23045.635431 4425.102112 19.827393
+V 5 -1040.911850 6604.555178 -30420.751060 .015810
+P 6 16687.688460 3918.550376 20501.464838 -1.387319
+V 6 -16255.152762 19909.738884 9377.923711 -.008952
+P 7 -19966.616313 15601.457207 -7270.119190 611.519390
+V 7 3568.219866 -9830.178444 -29455.947660 -.078510
+P 8 -24237.520600 1777.850627 -11276.757803 355.140572
+V 8 -12945.135442 -5476.948353 27130.805215 -.087958
+P 9 14493.244548 15092.278885 -17005.484762 -32.420089
+V 9 -20603.278372 -2255.127669 -19689.476359 -.018594
+P 10 -216.463883 24149.038306 10679.607876 40.186171
+V 10 -5981.053408 -12508.529514 28308.126017 .006163
+P 11 -16644.882433 -14051.000672 -15291.653305 99.963054
+V 11 19741.280219 -580.079599 -20824.948673 .025340
+P 13 -17861.607114 -36.974599 19590.090831 -30.897355
+V 13 16254.210105 -18933.435645 14829.925633 .002181
+P 14 20328.444845 -15888.510589 -6280.025755 -18.162488
+V 14 -3782.603778 7418.651333 -30754.347400 -.001126
+P 15 19996.990587 -5987.492161 -16792.020539 233.140284
+V 15 19446.418821 7457.399045 20548.619652 .052809
+P 16 3696.150693 -21970.243471 14527.089953 15.268570
+V 16 7493.838217 16850.880574 23700.095239 -.003889
+P 17 7525.816789 16834.340031 19548.884425 207.731006
+V 17 -23076.574813 -7302.309193 14578.918285 .195009
+P 18 16143.088538 7599.670126 -19712.115262 -15.502997
+V 18 5349.598154 24463.354968 13583.934039 -.026651
+P 20 -13440.027877 -20930.663496 9250.464416 -184.036856
+V 20 -1263.748611 -12024.073813 -28826.740238 .027627
+P 21 26116.714751 5385.438074 -2478.344652 73.101610
+V 21 2236.321805 3374.544879 31154.904136 .004943
+P 22 13686.107646 -7025.933524 -21489.295618 -39.902765
+V 22 7130.563347 26740.266963 -4126.936468 .087612
+P 24 -6362.718812 13868.988736 22040.605918 8.226951
+V 24 -26206.465996 -7428.982866 -2857.312062 .028887
+P 25 16053.032584 -11169.780505 18328.277519 61.746712
+V 25 22146.977540 4803.349752 -16833.150800 .006630
+P 26 -2343.149239 19711.835387 -17580.841465 409.720017
+V 26 -16255.631204 14948.287637 19802.951517 -.125002
+P 27 -26221.710794 -5604.756402 1670.227355 920.031137
+V 27 1956.485831 -2451.486953 31062.024357 .042701
+P 28 -14152.269419 5502.013831 -21598.487379 21.904294
+V 28 -8366.809365 -26597.993648 -1581.443810 .016294
+P 29 -7809.068345 21815.243902 -12667.793554 230.041571
+V 29 -12395.590408 11080.522325 26230.490147 .032792
+P 30 16761.935565 12651.438025 16090.234884 805.572177
+V 30 4748.989815 20444.324604 -20625.085650 .142530
+P 31 -3063.967144 -18344.769230 -19174.189687 40.726551
+V 31 16585.342875 -17219.498572 14400.552250 .307718
+* 2004 3 1 8 30 .00000000
+P 1 -7498.041996 -13713.390499 21642.164001 332.641053
+V 1 17831.819540 -20316.948454 -6776.591643 .021652
+P 3 9571.524077 -23548.081152 -7388.201185 89.993585
+V 3 8426.061761 -5554.758980 29217.798422 .029925
+P 4 -21119.306651 6751.455337 14873.622719 -77.034668
+V 4 -18104.973856 -5137.967839 -23086.827880 -.091899
+P 5 12445.722632 23499.788804 1657.259097 19.827205
+V 5 -2156.829489 3502.616310 -30999.101470 .015683
+P 6 15243.137281 5777.153853 21169.897382 -1.388466
+V 6 -15781.202356 21338.678246 5454.847582 -.008998
+P 7 -19576.650137 14590.621796 -9849.284168 611.512805
+V 7 5028.977428 -12641.695486 -27773.369333 -.078508
+P 8 -25278.589468 1345.875993 -8747.237282 355.133189
+V 8 -10136.361862 -4174.024110 29002.345552 -.087929
+P 9 12542.845251 14923.908770 -18632.844213 -32.421151
+V 9 -22676.890127 -1437.031706 -16424.684758 -.018630
+P 10 -831.190723 22904.837108 13126.405182 40.186270
+V 10 -7720.597961 -15071.220461 25985.986065 .006199
+P 11 -14770.079505 -14133.930758 -17029.737684 99.965074
+V 11 21860.929673 -1306.897781 -17743.580964 .025331
+P 13 -16401.554910 -1832.907898 20751.461269 -30.897408
+V 13 16112.249290 -20929.785369 10941.307704 .002188
+P 14 19906.667931 -15093.632156 -8985.874644 -18.162080
+V 14 -5518.181341 10264.537134 -29289.006491 -.001128
+P 15 21659.509247 -5391.364806 -14806.993269 233.145793
+V 15 17423.768209 5820.457429 23501.611176 .052494
+P 16 4448.874323 -20363.528663 16529.545907 15.268251
+V 16 9257.679227 18776.577869 20735.622789 -.003875
+P 17 5365.270605 16214.520757 20694.716939 207.748574
+V 17 -24867.678073 -6420.386845 10845.774960 .195042
+P 18 16660.464601 9714.664388 -18324.082996 -15.505366
+V 18 6092.558089 22470.335413 17216.094517 -.026665
+P 20 -13531.146020 -21868.440093 6583.741082 -184.034322
+V 20 -688.788697 -8805.988618 -30348.268390 .027623
+P 21 26172.489495 5648.022151 338.551677 73.102069
+V 21 -1017.125102 2525.713459 31355.057058 .004966
+P 22 14394.022828 -4623.317516 -21671.951300 -39.894785
+V 22 8579.445897 26560.877335 74.178391 .087593
+P 24 -8717.648290 13270.091296 21599.739164 8.230093
+V 24 -26036.856463 -5869.732998 -6926.021734 .029027
+P 25 17967.849012 -10796.107855 16663.933953 61.748562
+V 25 20330.934284 3532.543002 -20101.996194 .006315
+P 26 -3701.175727 21017.188529 -15651.415963 409.708536
+V 26 -13910.653950 13972.765258 23014.253944 -.125021
+P 27 -25898.345995 -5808.448815 4444.212072 920.035083
+V 27 5224.725361 -2142.798235 30497.196495 .042676
+P 28 -14966.293635 3129.199769 -21551.380636 21.905850
+V 28 -9691.766812 -26043.765805 2624.938677 .016285
+P 29 -8808.655106 22734.409090 -10203.119028 230.045141
+V 29 -9833.341776 9268.613044 28459.158884 .032781
+P 30 17194.260910 14376.250985 14099.386909 805.584863
+V 30 4792.176875 17843.122323 -23550.525235 .142522
+P 31 -1655.657066 -19869.510868 -17719.405771 40.754661
+V 31 14691.623685 -16583.797259 17884.762976 .307704
+* 2004 3 1 8 45 .00000000
+P 1 -5969.589424 -15553.229429 20850.572530 332.644700
+V 1 16094.374876 -20486.769547 -10789.978597 .021796
+P 3 10237.505452 -23938.366661 -4701.970016 89.996625
+V 3 6411.357317 -3063.413166 30389.840576 .029651
+P 4 -22639.537850 6349.474829 12675.737860 -77.043059
+V 4 -15614.900880 -3839.725172 -25685.404516 -.091889
+P 5 12187.465128 23680.103162 -1138.854938 19.827777
+V 5 -3640.546065 533.685627 -31048.384555 .015535
+P 6 13857.936150 7748.816464 21480.490435 -1.389071
+V 6 -14945.537619 22411.465871 1436.927203 -.008982
+P 7 -19074.121053 13325.791212 -12254.386037 611.506073
+V 7 6066.317138 -15458.464759 -25593.139893 -.078510
+P 8 -26053.609453 1016.437908 -6070.891306 355.126304
+V 8 -7046.054773 -3206.885736 30388.942698 -.087911
+P 9 10423.444630 14841.541833 -19953.830478 -32.423890
+V 9 -24349.580088 -355.005561 -12890.107154 -.018702
+P 10 -1612.353033 21449.602189 15343.507501 40.186782
+V 10 -9665.841158 -17188.362204 23211.515422 .006251
+P 11 -12721.605391 -14293.274305 -18476.301186 99.967484
+V 11 23591.328652 -2267.770281 -14355.830425 .025323
+P 13 -14974.994699 -3794.706356 21553.901135 -30.896928
+V 13 15517.769766 -22605.484275 6865.292704 .002194
+P 14 19348.624603 -14038.866143 -11536.866431 -18.162404
+V 14 -6805.966351 13177.846329 -27317.939719 -.001138
+P 15 23120.607116 -4933.151612 -12573.503829 233.151135
+V 15 14979.552698 4405.107298 26062.359322 .052154
+P 16 5365.630387 -18604.946560 18248.901974 15.267972
+V 16 11124.564702 20219.961657 17418.014101 -.003866
+P 17 3062.775338 15686.832305 21495.130277 207.766197
+V 17 -26221.208204 -5266.762033 6912.979925 .195067
+P 18 17228.971325 11633.527382 -16622.236577 -15.507567
+V 18 6476.751260 20117.580895 20547.822838 -.026683
+P 20 -13551.079324 -22515.532728 3803.510085 -184.031519
+V 20 316.563057 -5580.894050 -31345.629970 .027619
+P 21 25931.357172 5852.093106 3149.754074 73.102375
+V 21 -4346.290475 2077.187620 31028.430864 .004982
+P 22 15225.226433 -2260.869045 -21475.937980 -39.886753
+V 22 9855.811854 25852.319871 4275.475678 .087578
+P 24 -11033.416523 12812.899298 20797.376521 8.232954
+V 24 -25336.622055 -4295.047703 -10879.641529 .029083
+P 25 19700.093971 -10527.077105 14719.773740 61.747888
+V 25 18098.473965 2489.600397 -23042.470562 .005846
+P 26 -4846.336054 22211.409753 -13449.763688 409.696889
+V 26 -11541.300239 12480.472178 25842.807697 -.125035
+P 27 -25283.440086 -6002.583918 7144.688878 920.038648
+V 27 8420.396871 -2237.665874 29431.474516 .042649
+P 28 -15889.997512 829.287999 -21127.712075 21.907600
+V 28 -10790.683019 -24985.054122 6774.260351 .016274
+P 29 -9583.334075 23470.436865 -7560.222024 230.048050
+V 29 -7412.943615 7018.707062 30185.571358 .032772
+P 30 17612.225128 15857.042159 11863.630886 805.598459
+V 30 4425.867492 15036.836247 -26059.881569 .142511
+P 31 -421.579750 -21315.402985 -15963.604627 40.782641
+V 31 12727.776816 -15467.028905 21080.026052 .307686
+* 2004 3 1 9 0 .00000000
+P 1 -4606.827217 -17385.885121 19705.350071 332.646038
+V 1 14164.688531 -20153.047406 -14624.041799 .021761
+P 3 10733.370959 -24090.630873 -1933.873448 90.000105
+V 3 4656.318031 -277.004500 31034.084296 .029394
+P 4 -23919.694605 6051.298843 10263.387717 -77.051292
+V 4 -12782.075555 -2841.220422 -27846.295858 -.091881
+P 5 11780.615349 23602.337505 -3915.590317 19.827698
+V 5 -5450.744271 -2219.388755 -30569.313317 .015536
+P 6 12561.954232 9798.778146 21427.697003 -1.388971
+V 6 -13809.757465 23070.059217 -2609.214448 -.008982
+P 7 -18497.755725 11810.855637 -14442.204408 611.498640
+V 7 6669.522065 -18183.341726 -22951.730033 -.078514
+P 8 -26540.925832 757.239834 -3292.507149 355.119141
+V 8 -3757.544474 -2619.087122 31266.483038 -.087913
+P 9 8173.432751 14865.799873 -20946.626663 -32.426135
+V 9 -25572.350250 919.819444 -9141.079714 -.018726
+P 10 -2574.605703 19825.813725 17292.407870 40.187419
+V 10 -11729.638154 -18810.071906 20034.938833 .006322
+P 11 -10536.803365 -14547.148161 -19606.308872 99.970027
+V 11 24883.447572 -3395.678191 -10718.946430 .025318
+P 13 -13620.296471 -5889.944962 21983.718865 -30.896692
+V 13 14525.771485 -23883.284974 2672.838540 .002202
+P 14 18695.626924 -12722.541538 -13888.928554 -18.162690
+V 14 -7626.629224 16060.387649 -24874.637740 -.001141
+P 15 24345.028288 -4589.706374 -10128.825223 233.154401
+V 15 12175.745702 3280.624083 28188.107807 .051756
+P 16 6451.722238 -16739.188844 19655.896528 15.267716
+V 16 13005.573414 21155.519919 13804.174989 -.003860
+P 17 660.142303 15272.388109 21934.927905 207.784312
+V 17 -27085.616215 -3917.255537 2842.784080 .195097
+P 18 17814.094350 13327.469589 -14636.164041 -15.510121
+V 18 6455.313071 17486.446167 23523.452047 -.026699
+P 20 -13461.792429 -22875.719320 957.753247 -184.029061
+V 20 1733.719933 -2446.235751 -31802.446166 .027605
+P 21 25390.677063 6034.211790 5907.991837 73.103177
+V 21 -7658.119781 2037.932040 30179.496601 .005007
+P 22 16160.385485 15.321779 -20904.597025 -39.878742
+V 22 10876.378412 24651.715526 8402.439901 .087561
+P 24 -13262.644267 12494.750959 19646.792879 8.235532
+V 24 -24117.100421 -2794.621704 -14653.711001 .029109
+P 25 21214.830496 -10339.198167 12527.662798 61.747981
+V 25 15508.298279 1738.966003 -25604.002831 .005312
+P 26 -5780.743729 23248.775429 -11012.841672 409.685931
+V 26 -9242.935298 10492.242775 28233.885959 -.125049
+P 27 -24387.458048 -6222.845970 9727.479374 920.042956
+V 27 11456.808076 -2719.234336 27886.032400 .042620
+P 28 -16899.550606 -1354.491362 -20335.914365 21.909273
+V 28 -11587.794235 -23472.896799 10793.669107 .016263
+P 29 -10149.862326 23986.294338 -4785.623795 230.051079
+V 29 -5221.388889 4386.576115 31382.053468 .032761
+P 30 17978.158863 17079.528663 9422.346062 805.610798
+V 30 3634.883964 12118.845475 -28111.598820 .142509
+P 31 635.812176 -22639.345519 -13935.376970 40.810472
+V 31 10779.500982 -13876.504837 23929.590572 .307663
+* 2004 3 1 9 15 .00000000
+P 1 -3422.970846 -19165.157511 18225.565627 332.647866
+V 1 12134.221696 -19299.258118 -18214.200854 .021893
+P 3 11085.159745 -23981.629330 867.934865 90.002432
+V 3 3218.016905 2729.011232 31137.650245 .029006
+P 4 -24932.357164 5827.456574 7677.588468 -77.059548
+V 4 -9684.401302 -2195.474887 -29534.647715 -.091877
+P 5 11198.192662 23289.303750 -6625.753933 19.829436
+V 5 -7531.807947 -4683.187105 -29571.291399 .015620
+P 6 11379.033500 11887.653919 21012.005670 -1.389633
+V 6 -12445.769280 23270.063951 -6616.241286 -.009074
+P 7 -17886.420458 10058.440424 -16373.229767 611.491427
+V 7 6846.224810 -20720.019169 -19895.020404 -.078515
+P 8 -26726.738399 532.783707 -458.692520 355.111915
+V 8 -361.539849 -2437.982704 31618.691705 -.087925
+P 9 5834.973272 15010.529145 -21594.544613 -32.427009
+V 9 -26310.582060 2308.462996 -5236.135376 -.018653
+P 10 -3724.434561 18079.601768 18939.447090 40.189315
+V 10 -13818.220394 -19905.358614 16513.573718 .006330
+P 11 -8256.777704 -14907.272254 -20400.084350 99.972458
+V 11 25703.000520 -4615.959698 -6894.598719 .025314
+P 13 -12370.207901 -8079.831928 22033.703401 -30.896350
+V 13 13205.759389 -24699.418401 -1563.216700 .002208
+P 14 17989.874717 -11151.896847 -16001.379516 -18.162988
+V 14 -7979.818797 18812.995943 -22000.862143 -.001142
+P 15 25303.683985 -4332.199359 -7513.786601 233.157382
+V 15 9087.031369 2503.627809 29842.691325 .051480
+P 16 7704.318397 -14812.421630 20726.615375 15.267687
+V 16 14809.443412 21576.077233 9955.864207 -.003851
+P 17 -1796.867510 14985.087648 22004.679915 207.801955
+V 17 -27424.992816 -2455.868633 -1299.042345 .195121
+P 18 18377.825182 14775.421170 -12400.186527 -15.512795
+V 18 5997.717412 14666.579467 26093.600238 -.026711
+P 20 -13227.728328 -22961.351407 -1904.494897 -184.026625
+V 20 3526.366597 505.502420 -31711.726409 .027596
+P 21 24556.214942 6230.963852 8566.766851 73.103763
+V 21 -10859.407187 2399.527422 28820.943420 .005021
+P 22 17173.074998 2163.292412 -19967.927163 -39.870706
+V 22 11567.380886 23013.354983 12381.883243 .087547
+P 24 -15359.764264 12305.050708 18166.955022 8.238903
+V 24 -22407.115667 -1454.509799 -18186.348679 .029129
+P 25 22482.979871 -10203.712205 10123.784667 61.747827
+V 25 12631.528877 1332.878635 -27741.358869 .005022
+P 26 -6514.941374 24086.339929 -8382.230525 409.675460
+V 26 -7106.864683 8048.858998 30139.691331 -.125060
+P 27 -23228.428864 -6502.681770 12150.607524 920.046712
+V 27 14253.021409 -3554.828362 25888.550433 .042585
+P 28 -17964.811960 -3384.205170 -19190.844082 21.910672
+V 28 -12019.102490 -21573.544861 14613.478119 .016253
+P 29 -10532.323153 24250.669226 -1927.895207 230.053820
+V 29 -3333.973557 1443.149985 32030.768740 .032751
+P 30 18253.822275 18037.941158 6818.273125 805.623535
+V 30 2421.762665 9184.349865 -29672.618238 .142500
+P 31 1521.714759 -23799.693836 -11668.215065 40.838227
+V 31 8930.516008 -11837.225014 26381.464389 .307641
+* 2004 3 1 9 30 .00000000
+P 1 -2422.880479 -20844.194081 16435.942845 332.650396
+V 1 10096.594092 -17927.505452 -21499.544516 .021938
+P 3 11323.409649 -23595.370181 3654.579883 90.005315
+V 3 2139.017284 5869.427082 30697.429096 .028630
+P 4 -25657.539523 5644.383155 4962.150505 -77.067204
+V 4 -6408.673219 -1940.162860 -30723.287045 -.091872
+P 5 10418.788541 22769.898672 -9223.381487 19.831274
+V 5 -9815.917421 -6796.305362 -28072.174453 .015685
+P 6 10326.182782 13972.746314 20239.959879 -1.390180
+V 6 -10933.025580 22982.517515 -10517.105888 -.009195
+P 7 -17277.476726 8089.651889 -18012.475964 611.484718
+V 7 6622.118102 -22976.993059 -16477.492800 -.078515
+P 8 -26605.625134 305.883001 2382.846449 355.104189
+V 8 3047.031451 -2673.602114 31437.486219 -.087944
+P 9 3452.651234 15282.220739 -21886.284460 -32.428265
+V 9 -26545.247403 3726.951396 -1236.373342 -.018596
+P 10 -5059.731088 16258.994598 20256.400028 40.188815
+V 10 -15835.021187 -20463.131082 12710.654489 .006302
+P 11 -5925.004381 -15378.413627 -20843.663299 99.974760
+V 11 26031.735746 -5849.283635 -2947.879866 .025304
+P 13 -11250.674354 -10320.539532 21703.235067 -30.896554
+V 13 11638.871847 -25006.114639 -5769.452917 .002214
+P 14 17272.745958 -9342.996678 -17837.642770 -18.162807
+V 14 -7884.072148 21339.330795 -18745.943384 -.001148
+P 15 25974.684686 -4127.358752 -4772.152904 233.162531
+V 15 5798.248422 2115.885938 30997.129296 .051436
+P 16 9112.402101 -12870.624627 21442.882443 15.267685
+V 16 16446.135388 21492.913107 5938.659919 -.003848
+P 17 -4260.027671 14831.017288 21701.003793 207.819839
+V 17 -27220.684293 -971.680613 -5444.030709 .195141
+P 18 18880.191248 15964.627521 -9952.758959 -15.515020
+V 18 5090.991730 11752.534456 28215.898830 -.026724
+P 20 -12817.347141 -22792.750624 -4733.996061 -184.024235
+V 20 5641.833111 3190.239905 -31075.929747 .027582
+P 21 23442.008141 6477.403038 11081.089544 73.104438
+V 21 -13860.091867 3136.449414 26973.581167 .005040
+P 22 18230.777436 4146.658859 -18682.401255 -39.862712
+V 22 11867.671043 21006.494853 16143.354830 .087526
+P 24 -17282.557814 12225.744889 16382.250644 8.240856
+V 24 -20252.052667 -353.864087 -21419.114072 .029131
+P 25 23482.335315 -10087.791877 7548.122123 61.748654
+V 25 9549.319165 1309.183947 -29415.483756 .004767
+P 26 -7067.363395 24685.686501 -5603.452019 409.664435
+V 26 -5216.536723 5209.921494 31520.647042 -.125071
+P 27 -21831.307687 -6871.935582 14374.861657 920.050888
+V 27 16736.471699 -4697.336075 23472.691606 .042551
+P 28 -19050.508176 -5228.464731 -17713.440813 21.911889
+V 28 -12034.928456 -19365.674471 18168.388817 .016243
+P 29 -10760.942548 24239.211745 963.235221 230.056583
+V 29 -1811.488054 -1728.287623 32123.828849 .032741
+P 30 18401.998431 18735.023293 4096.729576 805.636451
+V 30 806.617060 6326.727090 -30718.789412 .142492
+P 31 2248.646065 -24757.832051 -9200.035835 40.865800
+V 31 7259.271300 -9391.350484 28389.492478 .307614
+* 2004 3 1 9 45 .00000000
+P 1 -1603.027542 -22377.177364 14366.485130 332.654707
+V 1 8144.004563 -16058.651009 -24423.817692 .021825
+P 3 11481.770187 -22923.849265 6377.352763 90.007801
+V 3 1445.674375 9052.512231 29720.230854 .028088
+P 4 -26083.351707 5465.868616 2162.970723 -77.074833
+V 4 -3047.470430 -2096.206159 -31393.069611 -.091863
+P 5 9427.553584 22077.923170 -11664.483208 19.832273
+V 5 -12225.588822 -8511.478773 -26097.917173 .015736
+P 6 9413.034286 16009.494408 19124.086104 -1.391433
+V 6 -9355.471152 22195.131255 -14246.070731 -.009378
+P 7 -16705.198844 5933.471270 -19330.208203 611.477517
+V 7 6039.865979 -24871.384290 -12761.164332 -.078520
+P 8 -26180.772328 39.249607 5184.055239 355.096830
+V 8 6372.368537 -3318.141559 30723.243901 -.087972
+P 9 1072.033783 15679.697042 -21816.136009 -32.428719
+V 9 -26273.626687 5089.361376 2795.204605 -.018634
+P 10 -6569.716757 14412.112831 21220.951442 40.188036
+V 10 -17684.591832 -20492.393330 8694.059091 .006368
+P 11 -3585.852137 -15958.107892 -20929.053920 99.976718
+V 11 25868.129661 -7014.821978 1053.763161 .025295
+P 13 -10279.938086 -12564.734341 20998.279519 -30.896115
+V 13 9914.568873 -24773.498521 -9873.163983 .002229
+P 14 16583.128785 -7320.309455 -19365.890999 -18.162800
+V 14 -7375.982629 23549.583549 -15165.937964 -.001155
+P 15 26344.124333 -3938.887159 -1949.953895 233.165682
+V 15 2401.451583 2142.632869 31630.155183 .051317
+P 16 10657.040388 -10957.950844 21792.555083 15.267468
+V 16 17830.348087 20935.189250 1820.876124 -.003849
+P 17 -6680.251105 14808.144091 21026.765384 207.836814
+V 17 -26472.342828 444.542832 -9521.967530 .195161
+P 18 19280.865377 16890.932197 -7335.810616 -15.517124
+V 18 3740.262620 8840.232538 29855.599335 -.026731
+P 20 -12204.512169 -22397.310062 -7482.155205 -184.021877
+V 20 8013.101611 5535.394020 -29906.860594 .027571
+P 21 22069.936904 6805.547643 13408.201726 73.105059
+V 21 -16576.470199 4206.968845 24666.145376 .005052
+P 22 19296.138711 5935.840570 -17070.658687 -39.854665
+V 22 11731.299525 18712.555170 19620.489667 .087504
+P 24 -18993.581766 12232.081823 14322.140367 8.242121
+V 24 -17712.352826 438.104912 -24297.855954 .029242
+P 25 24198.341639 -9955.917240 4843.864220 61.748785
+V 25 6350.054262 1689.633355 -30594.313482 .004460
+P 26 -7463.465952 25014.538507 -2725.175323 409.652679
+V 26 -3643.976265 2051.880355 32346.570416 -.125082
+P 27 -20227.116006 -7355.628834 16364.309500 920.054677
+V 27 18845.271989 -6087.032748 20677.582546 .042519
+P 28 -20117.614360 -6863.401801 -15930.282409 21.913297
+V 28 -11601.854174 -16937.164670 21398.572725 .016229
+P 29 -10870.680767 23935.503024 3837.773857 230.059381
+V 29 -698.042422 -5035.349420 31663.198680 .032731
+P 30 18388.043087 19181.708368 1304.796378 805.649514
+V 30 -1173.688002 3634.025516 -31235.098337 .142480
+P 31 2835.827887 -25479.668338 -6572.607823 40.893671
+V 31 5835.778627 -6596.997826 29914.409899 .307591
+* 2004 3 1 10 0 .00000000
+P 1 -951.782977 -23720.993145 12052.013627 332.659078
+V 1 6363.683186 -13731.754908 -26936.368279 .021452
+P 3 11595.492015 -21967.480583 8988.602400 90.009567
+V 3 1147.099554 12183.530136 28222.722483 .027685
+P 4 -26206.372804 5254.605900 -672.701908 -77.083602
+V 4 304.145187 -2666.983648 -31533.126278 -.091859
+P 5 8216.939581 21250.733963 -13907.752905 19.834969
+V 5 -14676.562225 -9797.171360 -23682.115108 .015811
+P 6 8641.584052 17953.008290 17682.729557 -1.392913
+V 6 -7798.304489 20912.939766 -17739.740599 -.009555
+P 7 -16199.324392 3625.818163 -20302.564496 611.470532
+V 7 5157.252068 -26332.431585 -8814.291543 -.078527
+P 8 -25463.899389 -302.902472 7897.300725 355.089089
+V 8 9521.217696 -4346.102541 29484.971111 -.088006
+P 9 -1261.810426 16194.077474 -21384.118493 -32.431622
+V 9 -25509.505223 6310.967693 6794.401778 -.018774
+P 10 -8235.217707 12585.382414 21817.054115 40.187704
+V 10 -19276.443860 -20021.632969 4534.973019 .006556
+P 11 -1283.069199 -16636.670735 -20654.398584 99.978843
+V 11 25227.452934 -8033.501942 5041.653888 .025290
+P 13 -9467.950362 -14763.247129 19931.266065 -30.896330
+V 13 8127.013537 -23990.788986 -13803.627610 .002243
+P 14 15955.860730 -5115.961122 -20559.608737 -18.163020
+V 14 -6508.656625 25363.946726 -11322.659319 -.001159
+P 15 26406.586299 -3729.003545 905.231152 233.172489
+V 15 -1007.316722 2591.472622 31728.670781 .051423
+P 16 12311.962512 -9115.168103 21769.720183 15.266879
+V 16 18884.855497 19948.710553 -2327.555560 -.003851
+P 17 -9009.261249 14906.323929 19991.187912 207.854506
+V 17 -25198.340542 1703.923037 -13461.984035 .195185
+P 18 19540.793681 17558.739610 -4594.036682 -15.519463
+V 18 1968.619403 6023.405878 30986.055640 -.026741
+P 20 -11369.669887 -21808.337145 -10101.850917 -184.019245
+V 20 10561.364758 7482.512940 -28225.405004 .027565
+P 21 20469.014574 7242.985215 15508.277272 73.105640
+V 21 -18934.213602 5554.652047 21934.998674 .005054
+P 22 20328.429224 7509.010567 -15161.080314 -39.846572
+V 22 11129.473865 16221.837769 22752.264438 .087480
+P 24 -20461.435559 12293.631416 12020.734192 8.244967
+V 24 -14861.472185 864.840182 -26773.542518 .029433
+P 25 24624.607458 -9771.379782 2056.742428 61.748471
+V 25 3126.223598 2478.750141 -31253.535002 .004313
+P 26 -7734.552981 25048.157327 201.674897 409.641192
+V 26 -2446.625667 -1334.724400 32597.670521 -.125090
+P 27 -18451.890392 -7972.921443 18086.766845 920.058267
+V 27 20530.153208 -7653.782187 17547.302292 .042488
+P 28 -21124.880048 -8273.340302 -13873.049771 21.914754
+V 28 -10703.994227 -14381.581957 24250.598279 .016221
+P 29 -10899.659417 23331.716237 6646.337381 230.062108
+V 29 -19.594479 -8380.098128 30660.414353 .032720
+P 30 18181.330913 19396.491527 -1509.508059 805.662030
+V 30 -3467.001326 1185.725769 -31215.721459 .142468
+P 31 3308.292953 -25936.991702 -3830.885787 40.922864
+V 31 4718.701399 -3526.370834 30924.835691 .307562
+* 2004 3 1 10 15 .00000000
+P 1 -450.018544 -24836.817559 9531.622338 332.660195
+V 1 4834.503947 -11002.836170 -28993.039326 .020713
+P 3 11699.854976 -20735.202542 11442.611684 90.011106
+V 3 1234.836948 15168.400337 26231.150785 .027567
+P 4 -26031.722411 4973.781383 -3497.018413 -77.092254
+V 4 3552.010634 -3638.179879 -31141.008480 -.091852
+P 5 6787.169841 20327.778269 -15915.231375 19.836129
+V 5 -17080.933551 -10638.580084 -20865.450069 .015809
+P 6 8006.228028 19759.633976 15939.796846 -1.392539
+V 6 -6344.666168 19158.324259 -20938.095636 -.009674
+P 7 -15783.802839 1208.320920 -20912.051578 611.463728
+V 7 4044.643290 -27304.483766 -4709.883828 -.078532
+P 8 -24474.876826 -753.295534 10476.151277 355.082137
+V 8 12406.250081 -5715.088739 27740.361114 -.088047
+P 9 -3505.785305 16809.028808 -20596.054274 -32.433912
+V 9 -24282.829761 7311.404253 10696.588462 -.018822
+P 10 -10029.275972 10821.837637 22035.165244 40.188328
+V 10 -20528.660421 -19097.442100 306.525390 .006832
+P 11 941.707291 -17397.501016 -20024.032290 99.980940
+V 11 24141.200340 -8831.213386 8947.051308 .025291
+P 13 -8816.117677 -16866.817691 18520.853719 -30.896360
+V 13 6371.290609 -22666.759273 -17493.326522 .002260
+P 14 15420.336728 -2768.692492 -21398.062724 -18.163091
+V 14 -5349.518142 26715.708527 -7282.599688 -.001163
+P 15 26165.349659 -3460.055733 3745.025808 233.175902
+V 15 -4331.439317 3451.915131 31288.112747 .051373
+P 16 14044.426019 -7378.240308 21374.788635 15.266409
+V 16 19543.542725 18594.068226 -6436.223735 -.003843
+P 17 -11201.269747 15107.634738 18609.856956 207.872332
+V 17 -23435.492976 2723.098056 -17193.777180 .195203
+P 18 19623.780815 17980.661570 -1774.152028 -15.521933
+V 18 -183.692899 3390.150248 31589.080954 -.026753
+P 20 -10300.778549 -21063.683990 -12548.235210 -184.017175
+V 20 13199.034192 8989.350070 -26061.116500 .027565
+P 21 18674.418951 7811.637837 17345.091017 73.106248
+V 21 -20871.084794 7110.420429 18823.722262 .005070
+P 22 21285.149894 8852.733857 -12987.255707 -39.838392
+V 22 10051.811831 13629.905642 25484.130452 .087453
+P 24 -21661.822404 12375.530464 9516.294311 8.247570
+V 24 -11783.359744 884.726559 -28803.066140 .029588
+P 25 24763.124980 -9497.860459 -765.698378 61.747987
+V 25 -28.931781 3663.328128 -31377.269576 .004318
+P 26 -7916.342573 24770.459777 3124.890126 409.630400
+V 26 -1664.759932 -4848.716426 32265.313944 -.125096
+P 27 -16545.474862 -8736.285746 19514.220514 920.061797
+V 27 21755.993140 -9319.548579 14130.377460 .042457
+P 28 -22030.438026 -9451.143956 -11577.915494 21.916200
+V 28 -9343.564118 -11794.518400 26678.195258 .016211
+P 29 -10887.489208 22428.949832 9340.995240 230.065522
+V 29 216.781896 -11662.754571 29136.136654 .032716
+P 30 17756.543809 19404.526922 -4298.051423 805.674732
+V 30 -6007.917238 -950.112212 -30663.918674 .142456
+P 31 3695.746661 -26108.632339 -1022.259898 40.949992
+V 31 3952.831848 -263.274440 31398.169745 .307516
+* 2004 3 1 10 30 .00000000
+P 1 -72.000977 -25691.563158 6848.056008 332.661793
+V 1 3623.885078 -7942.986027 -30556.990072 .020059
+P 3 11828.599880 -19244.253966 13696.439293 90.012785
+V 3 1683.269910 17917.348588 23780.854711 .027623
+P 4 -25572.828437 4588.650018 -6262.290413 -77.099823
+V 4 6606.208579 -4978.276950 -30222.732705 -.091846
+P 5 5146.420852 19349.065708 -17652.915871 19.837931
+V 5 -19350.418511 -11038.022690 -17695.047414 .015736
+P 6 7494.095054 21388.491697 13924.406122 -1.393472
+V 6 -5072.372776 16970.396949 -23785.511897 -.009829
+P 7 -15475.799001 -1273.154084 -21147.900265 611.456348
+V 7 2781.885446 -27749.343687 -524.075796 -.078541
+P 8 -23241.046709 -1340.127596 12876.156545 355.074454
+V 8 14949.275359 -7367.250189 25515.726765 -.088100
+P 9 -5620.185926 17501.297041 -19463.571206 -32.435854
+V 9 -22638.819114 8017.743219 14437.526403 -.018802
+P 10 -11918.069917 9159.580231 21872.360043 40.190380
+V 10 -21371.134122 -17782.441934 -3917.570457 .007199
+P 11 3050.362403 -18217.665855 -19048.435164 99.983411
+V 11 22655.900034 -9341.846834 12702.336704 .025290
+P 13 -8317.390042 -18827.847191 16791.590329 -30.896252
+V 13 4739.611331 -20829.444357 -20879.100140 .002278
+P 14 14999.340960 -322.559630 -21866.671047 -18.163105
+V 14 -3977.546734 27553.849426 -3115.762529 -.001166
+P 15 25632.284284 -3096.144863 6521.037344 233.180363
+V 15 -7477.206612 4695.577848 30312.716823 .051447
+P 16 15816.338260 -5777.101091 20614.487079 15.266218
+V 16 19754.028712 16944.235226 -10435.379962 -.003843
+P 17 -13214.596859 15387.033732 16904.610109 207.890570
+V 17 -21238.059735 3427.767356 -20648.948046 .195217
+P 18 19497.973673 18176.863146 1075.881482 -15.524544
+V 18 -2660.715949 1019.709621 31655.179148 -.026762
+P 20 -8993.950228 -20204.219147 -14779.489686 -184.014698
+V 20 15833.079673 10031.304467 -23451.662499 .027560
+P 21 16726.296586 8526.735743 18886.645717 73.107118
+V 21 -22339.251441 8795.108921 15382.591361 .005084
+P 22 22123.717338 9962.270463 -10587.354927 -39.830356
+V 22 8506.841607 11033.777116 27768.998296 .087426
+P 24 -22578.364661 12439.911538 6850.667020 8.250489
+V 24 -8569.530536 472.868158 -30350.012170 .029741
+P 25 24624.182275 -9101.022577 -3574.885941 61.750088
+V 25 -3024.879366 5212.608873 -30958.651237 .004583
+P 26 -8047.332112 24174.798588 5992.006257 409.619075
+V 26 -1319.622043 -8382.290048 31352.509332 -.125105
+P 27 -14550.195471 -9650.917845 20623.205979 920.065957
+V 27 22502.899226 -11001.148413 10479.278088 .042418
+P 28 -22793.432506 -10398.233228 -9084.871106 21.917108
+V 28 -7540.743961 -9269.928724 28642.855348 .016202
+P 29 -10873.565487 21237.225645 11876.065440 230.068521
+V 29 22.882742 -14785.412584 27119.564672 .032711
+P 30 17094.754198 19236.489215 -7013.394536 805.687018
+V 30 -8720.283087 -2719.219417 -29591.781011 .142445
+P 31 4031.223899 -25981.373204 1804.269894 40.977513
+V 31 3567.079959 3099.912916 31321.352222 .307479
+* 2004 3 1 10 45 .00000000
+P 1 213.452393 -26259.128131 4047.017997 332.664332
+V 1 2785.097686 -4635.891731 -31599.427856 .019491
+P 3 12012.429247 -17519.627993 15710.708504 90.015219
+V 3 2450.741878 20348.389541 20915.578509 .027876
+P 4 -24850.899556 4068.037796 -8921.750176 -77.107349
+V 4 9384.265207 -6639.673607 -28792.723110 -.091852
+P 5 3310.708549 18353.633483 -19091.308054 19.838236
+V 5 -21399.633668 -11014.698750 -14223.752888 .015620
+P 6 7085.667200 22802.930261 11670.446521 -1.395454
+V 6 -4050.817412 14403.755274 -26231.753495 -.009955
+P 7 -15284.996014 -3770.150533 -21006.270107 611.449373
+V 7 1454.778671 -27647.849852 3665.584384 -.078554
+P 8 -21796.265844 -2085.769736 15055.615041 355.066899
+V 8 17084.170075 -9231.340748 22845.794501 -.088161
+P 9 -7570.012738 18241.508957 -18004.027762 -32.437840
+V 9 -20636.536528 8367.392215 17954.261275 -.018768
+P 10 -13862.104587 7630.453002 21332.324318 40.190950
+V 10 -21748.308543 -16152.608937 -8064.342500 .007464
+P 11 5009.580854 -19068.746969 -17744.077896 99.985734
+V 11 20831.342018 -9510.041740 16242.202270 .025291
+P 13 -7956.685911 -20602.090790 14773.471893 -30.896111
+V 13 3317.652043 -18525.111392 -23903.207984 .002295
+P 14 14708.148778 2174.573071 -21957.263983 -18.163317
+V 14 -2480.057299 27845.037256 1105.572908 -.001171
+P 15 24827.433973 -2604.701279 9185.656169 233.185355
+V 15 -10357.245659 6277.063195 28815.664061 .051596
+P 16 17585.591647 -4334.665220 19501.747123 15.265981
+V 16 19479.778724 15081.703354 -14257.071800 -.003840
+P 17 -15013.169123 15713.324128 14903.301794 207.908263
+V 17 -18676.017662 3755.999069 -23762.432635 .195226
+P 18 19137.188653 18174.133892 3907.642853 -15.527215
+V 18 -5392.800715 -1020.393021 31183.650883 -.026767
+P 20 -7453.782255 -19272.200154 -16757.526081 -184.012062
+V 20 18368.570080 10602.178372 -20442.144385 .027557
+P 21 14668.380431 9396.040738 20105.746382 73.107652
+V 21 -23307.105819 10522.443840 11667.929564 .005097
+P 22 22803.159494 10841.533605 -8003.419141 -39.822799
+V 22 6521.733974 8528.094935 29568.053894 .087400
+P 24 -23203.140892 12447.465981 4068.647567 8.252172
+V 24 -5315.824013 -377.720106 -31385.377809 .029928
+P 25 24225.964147 -8550.057273 -6322.052853 61.750344
+V 25 -5777.232327 7079.159485 -30000.270458 .004512
+P 26 -8167.032428 23264.363958 8751.361311 409.608193
+V 26 -1412.392192 -11825.391274 29874.072525 -.125114
+P 27 -12509.458576 -10714.404689 21395.139303 920.069859
+V 27 22766.818347 -12613.169208 6649.904981 .042383
+P 28 -23375.604173 -11124.277798 -6437.007504 21.918461
+V 28 -5332.862765 -6896.604756 30114.272298 .016191
+P 29 -10895.397808 19775.157670 14208.852220 230.071536
+V 29 -571.362061 -17655.620199 24647.735128 .032702
+P 30 16184.265020 18927.246497 -9609.569938 805.699981
+V 30 -11520.077913 -4082.930658 -28019.850143 .142436
+P 31 4349.592060 -25550.568613 4598.980131 41.005372
+V 31 3573.082969 6465.701375 30691.445101 .307441
+* 2004 3 1 11 0 .00000000
+P 1 441.598329 -26521.399098 1176.417001 332.666229
+V 1 2355.092204 -1174.852074 -32100.231791 .018791
+P 3 12277.639400 -15593.225671 17450.325896 90.018553
+V 3 3481.343526 22390.493604 17686.603846 .028076
+P 4 -23894.120692 3385.716520 -11430.300849 -77.115963
+V 4 11814.089208 -8560.395955 -26873.650659 -.091866
+P 5 1303.482824 17378.060990 -20205.893510 19.839448
+V 5 -23149.279822 -10603.834012 -10509.336119 .015627
+P 6 6755.667063 23971.842054 9216.050280 -1.396898
+V 6 -3338.156310 11526.637730 -28232.917631 -.009965
+P 7 -15213.228083 -6233.375399 -20490.298485 611.442505
+V 7 151.303170 -27000.622735 7781.869848 -.078566
+P 8 -20179.702633 -3005.674119 16976.316478 355.059662
+V 8 18759.403775 -11225.330864 19773.347392 -.088235
+P 9 -9326.133879 18995.222410 -16240.354729 -32.439897
+V 9 -18346.947126 8310.707018 21186.084053 -.018697
+P 10 -15817.622662 6258.976658 20425.230242 40.190766
+V 10 -21621.324798 -14294.121267 -12062.826254 .007702
+P 11 6791.941148 -19917.917096 -16133.160930 99.987855
+V 11 18738.288826 -9293.533769 19504.819899 .025291
+P 13 -7711.635280 -22150.225995 12501.410777 -30.895835
+V 13 2181.167643 -15816.537232 -26514.288210 .002312
+P 14 14553.934354 4672.689218 -21668.231453 -18.163471
+V 14 -949.148964 27574.940876 5308.131811 -.001176
+P 15 23778.298122 -1957.951423 11692.862524 233.190244
+V 15 -12893.769389 8135.499080 26819.093011 .051590
+P 16 19307.563036 -3066.114386 18055.493565 15.265884
+V 16 18701.627660 13095.267698 -17836.251595 -.003849
+P 17 -16567.829782 16050.402935 12639.436472 207.925637
+V 17 -15832.634658 3661.142577 -26473.988684 .195230
+P 18 18522.033572 18004.720232 6673.043843 -15.529783
+V 18 -8299.134500 -2676.778862 30182.577107 -.026775
+P 20 -5693.365938 -18309.609615 -18448.620470 -184.008985
+V 20 20712.281179 10714.228760 -17084.305491 .027555
+P 21 12546.468942 10419.352905 20980.510916 73.107948
+V 21 -23760.512310 12202.342776 7741.338842 .005108
+P 22 23285.753161 11502.707932 -5280.585950 -39.814866
+V 22 4141.285311 6201.428980 30851.391425 .087371
+P 24 -23536.920908 12359.085477 1217.283179 8.255260
+V 24 -2118.953013 -1655.566228 -31888.223839 .030192
+P 25 23593.849892 -7819.118555 -8959.101535 61.750273
+V 25 -8211.024803 9200.445474 -28514.453016 .004444
+P 26 -8314.149554 22052.181714 11353.152714 409.596018
+V 26 -1924.062340 -15070.264272 27856.449240 -.125122
+P 27 -10466.316233 -11916.658502 21816.602123 920.073558
+V 27 22559.655117 -14070.979017 2701.056584 .042353
+P 28 -23742.773020 -11646.582699 -3679.762732 21.919817
+V 28 -2772.952794 -4754.913780 31070.629097 .016183
+P 29 -10987.036474 18069.309412 16300.316468 230.074607
+V 29 -1519.297423 -20189.698699 21764.732216 .032691
+P 30 15021.178245 18514.397061 -12042.821160 805.712518
+V 30 -14318.548505 -5019.388212 -25976.627189 .142427
+P 31 4685.960164 -24820.436700 7312.353034 41.032883
+V 31 3964.521532 9735.250810 29515.998296 .307401
+* 2004 3 1 11 15 .00000000
+P 1 650.223642 -26468.966223 -1714.436760 332.665073
+V 1 2352.936315 2340.612104 -32048.448776 .017990
+P 3 12644.940544 -13502.743830 18885.114672 90.019752
+V 3 4707.287958 23986.304322 14151.724827 .028226
+P 4 -22736.599542 2521.599982 -13745.247481 -77.124099
+V 4 13836.549117 -10666.345117 -24496.166579 -.091877
+P 5 -845.055868 16455.088113 -20977.546533 19.840507
+V 5 -24529.116345 -9855.238216 -6613.627443 .015598
+P 6 6474.181107 24870.787117 6602.982711 -1.398001
+V 6 -2978.895134 8418.536579 -29752.311384 -.009922
+P 7 -15254.457347 -8614.480526 -19609.994809 611.436170
+V 7 -1042.222628 -25827.947987 11749.572341 -.078582
+P 8 -18434.428785 -4107.539191 18604.244810 355.052042
+V 8 19940.055008 -13259.493784 16348.707453 -.088314
+P 9 -10866.250961 19724.195086 -14200.807427 -32.441534
+V 9 -15850.501304 7813.216907 24075.556537 -.018615
+P 10 -17738.179030 5061.587066 19167.501637 40.191310
+V 10 -20969.501479 -12299.859247 -15845.250559 .007956
+P 11 8376.783479 -20729.205916 -14243.250207 99.990180
+V 11 16455.753046 -8665.003704 22432.967309 .025295
+P 13 -7553.610321 -23439.237353 10014.622915 -30.895402
+V 13 1393.008714 -12780.663298 -28668.197118 .002323
+P 14 14535.507584 7121.362216 -21004.554148 -18.163760
+V 14 522.036130 26748.809473 9418.944732 -.001181
+P 15 22518.833786 -1134.217571 13999.027652 233.194592
+V 15 -15021.519843 10196.704855 24353.962463 .051537
+P 16 20936.721435 -1978.483864 16300.334480 15.265389
+V 16 17418.655972 11076.576890 -21111.846333 -.003859
+P 17 -17857.401663 16358.747329 10151.667254 207.943755
+V 17 -12801.408720 3114.192860 -28729.691057 .195232
+P 18 17640.782811 17704.963064 9325.113892 -15.532207
+V 18 -11290.680895 -3912.105846 28668.681297 -.026779
+P 20 -3733.972677 -17356.518371 -19823.971704 -184.006448
+V 20 22776.234292 10397.516395 -13435.642033 .027553
+P 21 10406.821022 11588.324596 21494.805837 73.108112
+V 21 -23703.421394 13744.423044 3668.804777 .005116
+P 22 23538.538081 11965.546694 -2466.266327 -39.807102
+V 22 1426.202204 4132.862577 31598.454651 .087349
+P 24 -23589.085181 12137.522172 -1654.878795 8.258565
+V 24 927.038686 -3330.880202 -31846.239111 .030392
+P 25 22759.428867 -6888.586753 -11439.485831 61.751326
+V 25 -10263.683985 11501.062386 -26523.346038 .004463
+P 26 -8524.796960 20560.703264 13750.462954 409.584512
+V 26 -2816.238091 -18015.938441 25337.190191 -.125125
+P 27 -8462.043460 -13240.123205 21879.577211 920.076964
+V 27 21908.888873 -15293.747742 -1306.138445 .042323
+P 28 -23866.165284 -11989.197023 -860.150430 21.921138
+V 28 72.256090 -2913.911810 31498.742372 .016178
+P 29 -11177.653504 16153.268610 18115.671856 230.077620
+V 29 -2759.552830 -22315.686978 18520.830873 .032679
+P 30 13609.673999 18036.726423 -14272.293397 805.725861
+V 30 -17025.484683 -5524.107768 -23497.987926 .142421
+P 31 5074.060473 -23804.005781 9896.027720 41.060319
+V 31 4717.198803 12812.272362 27813.168614 .307359
+* 2004 3 1 11 30 .00000000
+P 1 877.990905 -26101.519581 -4575.673537 332.666014
+V 1 2778.937508 5808.429829 -31442.642996 .017750
+P 3 13128.513254 -11290.342925 19990.349709 90.022541
+V 3 6051.769694 25094.293903 10374.094455 .028571
+P 4 -21417.100922 1462.716336 -15826.999201 -77.132728
+V 4 15407.596371 -12874.009260 -21698.527572 -.091893
+P 5 -3098.894230 15612.387940 -21392.854462 19.841762
+V 5 -25480.621562 -8831.325801 -2601.594553 .015639
+P 6 6207.978333 25482.880775 3875.957187 -1.398745
+V 6 -3001.977792 5167.345679 -30761.237250 -.009841
+P 7 -15395.092676 -10867.795385 -18381.985813 611.429243
+V 7 -2044.868997 -24168.814655 15497.104958 -.078600
+P 8 -16605.856117 -5390.770083 19910.227180 355.044238
+V 8 20609.223489 -15239.860496 12629.050947 -.088404
+P 9 -12175.628202 20387.832353 -11918.623156 -32.443879
+V 9 -13234.304275 6857.363011 26569.589427 -.018520
+P 10 -19576.316830 4046.197714 17581.476814 40.193563
+V 10 -19791.104639 -10265.702245 -19348.126213 .008198
+P 11 9750.816927 -21464.906910 -12106.814361 99.992447
+V 11 14067.944954 -7613.348886 24975.087961 .025298
+P 13 -7449.002032 -24443.565480 7355.945266 -30.894981
+V 13 1000.654312 -9505.721128 -30328.717890 .002333
+P 14 14643.390684 9471.515157 -19977.717557 -18.164236
+V 14 1843.095450 25391.293802 13366.644577 -.001183
+P 15 21088.211196 -118.996747 16063.695371 233.199451
+V 15 -16690.284321 12375.919482 21459.751122 .051667
+P 16 22428.283988 -1070.565423 14266.157314 15.264788
+V 16 15648.382844 9116.576563 -24027.773656 -.003867
+P 17 -18869.449720 16597.083819 7483.161646 207.962591
+V 17 -9682.475030 2105.466704 -30483.378892 .195228
+P 18 16489.973192 17313.791465 11818.767291 -15.534859
+V 18 -14273.427488 -4706.364377 26667.073055 -.026782
+P 20 -1604.429680 -16449.537864 -20860.176040 -184.004068
+V 20 24481.034154 9698.581720 -9558.432441 .027549
+P 21 8294.525836 12886.594856 21638.595956 73.108532
+V 21 -23157.809213 15061.591925 -480.319790 .005131
+P 22 23534.648103 12256.379571 390.709419 -39.799213
+V 22 -1549.232926 2388.997274 31798.284145 .087330
+P 24 -23377.226086 11749.004676 -4498.588790 8.262018
+V 24 3734.282407 -5356.396245 -31256.195563 .030506
+P 25 21759.267392 -5746.103912 -13719.090748 61.750427
+V 25 -11887.561862 13895.557869 -24058.787401 .004416
+P 26 -8830.820724 18821.002885 15900.222800 409.573544
+V 26 -4032.837093 -20572.429997 22364.092563 -.125130
+P 27 -6534.772585 -14660.250224 21581.630882 920.080779
+V 27 20856.688847 -16207.398235 -5308.837690 .042295
+P 28 -23723.537852 -12181.783243 1974.018746 21.922942
+V 28 3124.815779 -1428.924544 31394.076027 .016173
+P 29 -11490.328271 14066.477424 19624.901650 230.080811
+V 29 -4218.564423 -23975.817209 14971.593696 .032663
+P 30 11961.993078 17532.642391 -16260.667935 805.737707
+V 30 -19552.515629 -5609.901061 -20626.520132 .142415
+P 31 5544.672469 -22522.709778 12303.750114 41.087864
+V 31 5789.902955 15606.895810 25611.568643 .307322
+* 2004 3 1 11 45 .00000000
+P 1 1162.737925 -25427.907474 -7357.730251 332.667999
+V 1 3614.498752 9127.796250 -30291.081691 .017392
+P 3 13735.339430 -9001.149505 20747.184205 90.026327
+V 3 7432.182615 25690.270870 6420.974259 .028932
+P 4 -19977.613530 203.918776 -17639.732702 -77.140672
+V 4 16499.854500 -15093.551011 -18526.110234 -.091905
+P 5 -5417.365522 14871.539315 -21444.356464 19.843296
+V 5 -25959.243796 -7604.666827 1459.634323 .015715
+P 6 5921.975013 25799.407325 1081.884440 -1.400851
+V 6 -3419.465007 1866.143227 -31239.663429 -.009865
+P 7 -15614.632217 -12951.937391 -16829.122764 611.422069
+V 7 -2784.535107 -22079.169916 18957.960363 -.078619
+P 8 -14740.076317 -6846.261926 20870.513670 355.036347
+V 8 20768.763969 -17071.918280 8677.555161 -.088494
+P 9 -13247.551137 20944.766161 -9431.579944 -32.445401
+V 9 -10588.952340 5443.657659 28620.553637 -.018379
+P 10 -21285.280181 3212.099173 15694.978275 40.193735
+V 10 -18103.392951 -8286.767056 -22513.224984 .008348
+P 11 10908.441489 -22087.070420 -9760.670384 99.994591
+V 11 11661.008662 -6144.320169 27086.261211 .025301
+P 13 -7360.692233 -25145.977737 4571.095720 -30.894499
+V 13 1034.351643 -6087.941199 -31468.129411 .002338
+P 14 14860.231446 11677.130636 -18605.510371 -18.164534
+V 14 2930.039554 23545.515865 17082.734999 -.001184
+P 15 19529.366245 1094.227952 17850.328873 233.203195
+V 15 -17866.873874 14581.003344 18183.983570 .051681
+P 16 23739.858127 -333.130193 11987.636537 15.264690
+V 16 13426.265680 7301.978130 -26533.888928 -.003875
+P 17 -19600.701386 16724.172858 4680.841583 207.979709
+V 17 -6578.620916 645.475288 -31697.991075 .195223
+P 18 15074.698007 16871.128451 14111.542034 -15.537009
+V 18 -17151.825954 -5057.530158 24210.875759 -.026788
+P 20 659.791028 -15620.420044 -21539.611329 -184.001528
+V 20 25758.882797 8678.501180 -5518.700585 .027545
+P 21 6251.909156 14290.245560 21408.197385 73.109116
+V 21 -22162.925381 16073.582336 -4634.444877 .005144
+P 22 23254.408191 12406.874111 3240.959308 -39.791733
+V 22 -4700.011628 1021.489828 31449.573970 .087309
+P 24 -22926.440244 11164.746811 -7264.728093 8.265021
+V 24 6224.420494 -7668.910487 -30124.270422 .030654
+P 25 20633.472372 -4387.332276 -15757.090021 61.750195
+V 25 -13051.901369 16291.744086 -21161.941087 .004515
+P 26 -9258.314991 16871.617749 17764.083392 409.562639
+V 26 -5502.601395 -22664.446299 18994.040307 -.125131
+P 27 -4718.229491 -16146.233561 20926.037158 920.084444
+V 27 19458.537361 -16747.402193 -9243.164941 .042265
+P 28 -23300.061880 -12258.292669 4774.911515 21.924526
+V 28 6298.414293 -339.668870 30760.636853 .016173
+P 29 -11941.079387 11852.863757 20803.192805 230.084264
+V 29 -5813.507427 -25128.447820 11176.938466 .032644
+P 30 10098.126164 17038.645552 -17974.733964 805.750259
+V 30 -21816.312579 -5306.170873 -17410.797002 .142410
+P 31 6124.159152 -21005.643904 14492.296612 41.115655
+V 31 7126.034031 18039.321740 22949.833898 .307280
+* 2004 3 1 12 0 .00000000
+P 1 1539.798094 -24465.850336 -10012.225490 332.668852
+V 1 4822.727617 12202.984629 -28611.742673 .017146
+P 3 14464.833832 -6681.654356 21142.960666 90.029149
+V 3 8763.557932 25768.183775 2362.420457 .029048
+P 4 -18461.800155 -1251.694717 -19152.006949 -77.149189
+V 4 17103.610687 -17232.166763 -15030.812578 -.091921
+P 5 -7756.489975 14247.237869 -21130.692261 19.845011
+V 5 -25936.160058 -6255.151775 5501.793370 .015733
+P 6 5580.789204 25820.132121 -1730.932392 -1.401807
+V 6 -4225.869484 -1390.271926 -31176.754990 -.009765
+P 7 -15886.596874 -14831.233492 -14979.965488 611.414857
+V 7 -3200.951040 -19629.489641 22071.984147 -.078642
+P 8 -12882.167165 -8456.521727 21467.272797 355.028333
+V 8 20439.291551 -18664.410972 4562.380872 -.088581
+P 9 -14083.489323 21354.509201 -6781.454776 -32.447503
+V 9 -8005.137138 3591.185757 30187.397389 -.018276
+P 10 -22820.698732 2550.194379 13540.799581 40.195529
+V 10 -15941.950558 -6453.729927 -25288.440481 .008516
+P 11 11851.771658 -22559.024202 -7245.346875 99.996841
+V 11 9319.675656 -4280.492501 28729.059898 .025306
+P 13 -7249.663053 -25538.128672 1707.888366 -30.894450
+V 13 1505.929902 -2627.972327 -32067.628553 .002344
+P 14 15161.536669 13696.844283 -16911.710930 -18.164527
+V 14 3708.710230 21271.423654 20502.805980 -.001186
+P 15 17887.402716 2503.481397 19327.006776 233.208097
+V 15 -18536.469540 16716.001387 14581.576093 .051922
+P 16 24833.007890 250.536776 9503.659728 15.264438
+V 16 10804.520113 5711.885237 -28586.848141 -.003884
+P 17 -20057.096992 16700.632661 1794.510769 207.997367
+V 17 -3591.081093 -1235.087166 -32346.724171 .195218
+P 18 13408.587336 16416.267900 16164.300058 -15.538854
+V 18 -19832.302529 -4981.549823 21340.741274 -.026791
+P 20 3017.736089 -14894.857318 -21850.725486 -183.998759
+V 20 26556.159144 7410.399510 -1385.128300 .027542
+P 21 4317.038302 15768.568011 20806.424189 73.109808
+V 21 -20773.858095 16710.292599 -8720.974176 .005155
+P 22 22686.156280 12452.602891 6035.414177 -39.784188
+V 22 -7933.642670 65.210265 30560.545947 .087296
+P 24 -22268.333351 10362.287883 -9905.164046 8.266802
+V 24 8331.637255 -10191.478861 -28466.212435 .030633
+P 25 19424.107463 -2816.397335 -17516.759944 61.750701
+V 25 -13744.131484 18594.371145 -17882.689538 .004680
+P 26 -9826.395498 14757.083936 19309.172177 409.551785
+V 26 -7142.294774 -24234.410232 15291.591835 -.125138
+P 27 -3040.615137 -17661.986230 19921.837385 920.087636
+V 27 17781.382697 -16861.333304 -13044.966671 .042248
+P 28 -22588.936629 -12255.498205 7495.432139 21.925883
+V 28 9501.498213 331.032940 29610.764752 .016170
+P 29 -12538.174838 9559.325109 21631.285326 230.087056
+V 29 -7455.528079 -25749.400517 7200.189788 .032623
+P 30 8045.223099 16587.890190 -19385.892578 805.763218
+V 30 -23741.589837 -4657.613672 -13904.598394 .142405
+P 31 6833.182049 -19288.508007 16422.346116 41.143424
+V 31 8655.935154 20043.081771 19875.909552 .307232
+* 2004 3 1 12 15 .00000000
+P 1 2040.409178 -23241.317498 -12492.826746 332.671059
+V 1 6349.788693 14947.000816 -26432.132895 .017046
+P 3 15308.789479 -4378.071040 21171.402062 90.031920
+V 3 9962.076092 25340.196656 -1730.059777 .029056
+P 4 -16913.387318 -2892.671885 -20337.318905 -77.157087
+V 4 17227.164437 -19197.602378 -11270.341582 -.091940
+P 5 -10070.448702 13746.775980 -20456.657037 19.846366
+V 5 -25399.474386 -4866.868082 9456.539790 .015728
+P 6 5150.323902 25553.295807 -4513.643394 -1.404653
+V 6 -5398.189905 -4508.956796 -30571.243420 -.009603
+P 7 -16179.709527 -16476.897070 -12868.161247 611.407671
+V 7 -3248.118279 -16901.794213 24786.434251 -.078664
+P 8 -11074.532001 -10196.131114 21688.988428 355.019962
+V 8 19659.436541 -19933.087344 355.501342 -.088665
+P 9 -14692.947426 21579.122257 -4013.382329 -32.448258
+V 9 -5570.138607 1337.388363 31236.733753 -.018127
+P 10 -24142.181448 2043.556112 11156.120254 40.195777
+V 10 -13359.345811 -4849.366523 -27628.525761 .008510
+P 11 12590.360099 -22846.861058 -4604.375982 99.999484
+V 11 7123.969849 -2060.564455 29874.274196 .025315
+P 13 -7076.681212 -25620.790294 -1184.582497 -30.894218
+V 13 2408.329479 772.851318 -32117.601860 .002354
+P 14 15516.696602 15495.360377 -14925.667522 -18.164566
+V 14 4117.807376 18643.496110 23567.673385 -.001187
+P 15 16207.904646 4098.122460 20467.052138 233.213929
+V 15 -18703.263200 18684.934453 10714.001368 .051939
+P 16 25674.684854 703.810232 6856.680354 15.263984
+V 16 7850.299898 4414.705827 -30150.871516 -.003897
+P 17 -20253.459169 16490.720699 -1124.111801 208.014926
+V 17 -815.310072 -3486.274667 -32413.949325 .195208
+P 18 11513.473957 15986.282952 17941.878845 -15.541672
+V 18 -22226.713936 -4511.657468 18104.255115 -.026800
+P 20 5424.343287 -14291.527412 -21788.225387 -183.996074
+V 20 26835.470275 5976.512595 2772.067590 .027536
+P 21 2522.385661 17285.116012 19842.620411 73.110028
+V 21 -19059.453723 16914.789654 -12667.617698 .005168
+P 22 21826.760558 12431.475226 8726.163100 -39.776430
+V 22 -11153.654208 -462.917868 29148.654309 .087280
+P 24 -21439.770860 9326.607754 -12373.612387 8.270114
+V 24 10005.254437 -12836.211098 -26307.330501 .030736
+P 25 18173.525936 -1045.989723 -18966.227585 61.752816
+V 25 -13970.413063 20709.007913 -14278.784149 .004823
+P 26 -10546.285536 12526.236330 20508.712623 409.540441
+V 26 -8860.418833 -25244.663054 11327.376074 -.125147
+P 27 -1523.673247 -19167.332227 18583.827937 920.092541
+V 27 15901.356830 -16511.088647 -16650.655026 .042234
+P 28 -21591.714393 -12211.439295 10089.959408 21.927798
+V 28 12640.551654 577.914928 27964.829330 .016171
+P 29 -13281.742139 7234.120220 22095.735965 230.089518
+V 29 -9053.159201 -25832.668742 3107.124961 .032601
+P 30 5836.744895 16208.886701 -20470.588692 805.775764
+V 30 -25263.805365 -3722.382649 -10166.089431 .142398
+P 31 7685.654137 -17412.280265 18059.275765 41.171023
+V 31 10299.828981 21567.745589 16446.071828 .307176
+* 2004 3 1 12 30 .00000000
+P 1 2690.275915 -21787.587820 -14756.092570 332.673667
+V 1 8126.957440 17284.928975 -23788.912125 .016840
+P 3 16251.636945 -2134.720192 20832.681924 90.034961
+V 3 10948.506234 24436.043833 -5784.849544 .029102
+P 4 -15374.553450 -4699.415582 -21174.590012 -77.165493
+V 4 16896.508959 -20901.700676 -7307.387300 -.091963
+P 5 -12313.138338 13369.812707 -19433.159561 19.848790
+V 5 -24354.805416 -3524.798147 13256.542001 .015708
+P 6 4599.314943 25015.286956 -7217.722759 -1.405346
+V 6 -6896.657813 -7402.370231 -29431.614905 -.009385
+P 7 -16459.265042 -17867.916939 -10531.738582 611.400720
+V 7 -2896.098511 -13986.259740 27056.809326 -.078683
+P 8 -9355.339749 -12032.538172 21530.745048 355.012110
+V 8 18484.358803 -20804.238527 -3868.604166 -.088743
+P 9 -15093.000846 21584.828334 -1175.118719 -32.450511
+V 9 -3364.344114 -1262.905954 31743.856308 -.018007
+P 10 -25214.761556 1668.281214 8581.859892 40.197218
+V 10 -10423.176633 -3545.436090 -29495.707959 .008520
+P 11 13140.632219 -22920.833971 -1883.526915 100.001551
+V 11 5146.097843 461.989990 30501.483096 .025320
+P 13 -6803.991762 -25403.744858 -4056.775942 -30.893583
+V 13 3715.860541 4016.254014 -31617.745062 .002360
+P 14 15890.259570 17044.635056 -12681.780357 -18.165212
+V 14 4111.404470 15747.889482 26224.420792 -.001188
+P 15 14535.224591 5859.016041 21249.578312 233.218891
+V 15 -18390.346573 20395.669151 6648.277334 .051895
+P 16 26238.468748 1055.637982 4092.006854 15.263552
+V 16 4643.300317 3465.468685 -31198.393081 -.003905
+P 17 -20212.788660 16063.990280 -4022.427879 208.032716
+V 17 1663.058248 -6040.725680 -31895.832586 .195203
+P 18 9418.755279 15614.525357 19413.684706 -15.544389
+V 18 -24255.624681 -3697.043079 14555.235986 -.026799
+P 20 7831.972055 -13821.418680 -21353.163657 -183.993005
+V 20 26577.099544 4464.911208 6882.278763 .027528
+P 21 893.706072 18799.009027 18532.571194 73.110415
+V 21 -17099.657006 16645.841928 -16403.761379 .005182
+P 22 20681.815124 12382.096588 11267.265183 -39.768328
+V 22 -14263.214166 -564.363145 27240.136610 .087271
+P 24 -20481.419220 8050.966909 -14626.489878 8.272716
+V 24 11211.772564 -15507.568069 -23682.286962 .030883
+P 25 16922.689927 902.885182 -20079.132083 61.752359
+V 25 -13755.391040 22545.959119 -10414.766118 .004869
+P 26 -11420.752651 10230.350852 21342.493501 409.529125
+V 26 -10561.256325 -25678.753710 7176.365350 -.125157
+P 27 -181.981070 -20619.380160 16932.467922 920.095778
+V 27 13901.108599 -15674.689681 -19998.142861 .042226
+P 28 -20318.327479 -12163.835956 12515.052503 21.929123
+V 28 15623.419042 413.294067 25850.843256 .016166
+P 29 -14163.689759 4925.225735 22189.096054 230.092465
+V 29 -10515.801752 -25390.485051 -1034.978818 .032584
+P 30 3511.389480 15924.391134 -21210.667413 805.787782
+V 30 -26331.473561 -2569.779311 -6256.963809 .142392
+P 31 8687.979454 -15421.677307 19373.857678 41.198758
+V 31 11971.225801 22580.939797 12723.712531 .307124
+* 2004 3 1 12 45 .00000000
+P 1 3508.346232 -20144.028520 -16762.272057 332.674829
+V 1 10073.302619 19156.826205 -20727.321302 .016477
+P 3 17271.004648 7.496896 20133.374977 90.037663
+V 3 11651.433726 23101.701817 -9731.530891 .029057
+P 4 -13884.375951 -6644.708876 -21648.573340 -77.173687
+V 4 16154.343456 -22263.850851 -3208.686431 -.091988
+P 5 -14439.749750 13108.444596 -18077.081577 19.848879
+V 5 -22825.232663 -2311.456919 16836.583319 .015654
+P 6 3900.780291 24230.002428 -9795.847841 -1.405626
+V 6 -8666.181126 -9991.741120 -27776.101822 -.009106
+P 7 -16688.629911 -18991.629051 -8012.337248 611.394485
+V 7 -2132.096623 -10977.585867 28847.440624 -.078706
+P 8 -7757.130542 -13927.152170 20994.390256 355.004039
+V 8 16983.564804 -21217.867690 -8034.367060 -.088814
+P 9 -15307.524656 21343.505616 1683.781165 -32.452339
+V 9 -1457.943117 -4139.204778 31693.635519 -.017851
+P 10 -26010.140809 1394.607073 5861.982678 40.197859
+V 10 -7213.579203 -2599.986070 -30860.167026 .008561
+P 11 13525.053839 -22756.602633 870.004525 100.003686
+V 11 3447.651642 3220.866499 30599.458284 .025326
+P 13 -6396.956317 -24905.345452 -6859.541939 -30.893381
+V 13 5385.177585 7010.632315 -30577.031158 .002368
+P 14 16243.406276 18324.781627 -10218.894928 -18.165417
+V 14 3660.853561 12679.138437 28427.323901 -.001189
+P 15 12910.816463 7759.050821 21659.936334 233.222550
+V 15 -17638.832315 21763.706320 2455.792753 .051814
+P 16 26505.569587 1339.234650 1257.038907 15.263490
+V 16 1272.871322 2903.649586 -31710.582324 -.003917
+P 17 -19965.212689 15396.743655 -6848.036815 208.050009
+V 17 3771.854367 -8816.335683 -30800.616107 .195192
+P 18 7160.472977 15329.272217 20554.218444 -15.546997
+V 18 -25851.286400 -2600.916033 10752.934440 -.026804
+P 20 10192.034969 -13487.461046 -20552.922181 -183.989797
+V 20 25779.798482 2966.007383 10875.654525 .027520
+P 21 -550.823653 20266.437559 16898.289197 73.110651
+V 21 -14982.365881 15879.862147 -19861.863080 .005196
+P 22 19265.509871 12342.120125 13615.514699 -39.760989
+V 22 -17168.727975 -258.714573 24869.428986 .087260
+P 24 -19436.132199 6537.431672 -16623.739007 8.275825
+V 24 11936.254907 -18106.042985 -20634.681688 .030891
+P 25 15709.548087 3001.504991 -20835.179327 61.754180
+V 25 -13141.146705 24024.039377 -6360.681220 .004941
+P 26 -12443.916268 7921.213478 21797.179844 409.517991
+V 26 -12149.038844 -25541.775980 2916.095942 -.125162
+P 27 977.504849 -21974.036828 14993.698597 920.099676
+V 27 11866.819540 -14347.577588 -23027.870174 .042218
+P 28 -18786.818406 -12148.528608 14730.118649 21.930320
+V 28 18362.560858 -133.529932 23304.000957 .016162
+P 29 -15167.940445 2678.715572 21910.003827 230.095124
+V 29 -11757.156405 -24452.754061 -5158.291386 .032569
+P 30 1111.829693 15750.520679 -21593.651928 805.801417
+V 30 -26908.015972 -1277.554487 -2241.557336 .142389
+P 31 9838.614597 -13363.467542 20342.837108 41.226461
+V 31 13580.643151 23069.578674 8777.927095 .307068
+* 2004 3 1 13 0 .00000000
+P 1 4505.853601 -18354.638559 -18476.044274 332.677325
+V 1 12098.895076 20520.039844 -17300.421217 .016149
+P 3 18338.555270 2012.476886 19086.292483 90.041567
+V 3 12010.148101 21397.443762 -13502.134041 .028962
+P 4 -12477.396465 -8694.541370 -21750.171694 -77.181782
+V 4 15058.439148 -23214.208191 956.018778 -.092013
+P 5 -16408.312733 12947.577116 -16411.037696 19.848665
+V 5 -20850.592554 -1303.593122 20134.666673 .015682
+P 6 3033.309536 23227.918055 -12202.768202 -1.404805
+V 6 -10638.436714 -12210.114917 -25632.467388 -.008871
+P 7 -16830.806638 -19843.956592 -5354.395354 611.387318
+V 7 -960.819078 -7971.282922 30131.852649 -.078738
+P 8 -6305.646348 -15836.701519 20088.566008 354.995870
+V 8 15238.104760 -21130.344747 -12066.623977 -.088890
+P 9 -15366.138923 20833.992329 4512.859761 -32.452776
+V 9 92.047932 -7207.797101 31081.246017 -.017635
+P 10 -26507.689362 1188.244150 3042.765020 40.199291
+V 10 -3820.310818 -2055.261817 -31700.399777 .008576
+P 11 13771.065706 -22336.280760 3608.434793 100.005824
+V 11 2077.238972 6139.395809 30166.389290 .025333
+P 13 -5825.572570 -24151.762343 -9544.949289 -30.893750
+V 13 7356.930143 9674.404098 -29013.530055 .002370
+P 14 16535.565071 19324.663908 -7579.618111 -18.165489
+V 14 2756.005026 9536.542911 30138.640369 -.001188
+P 15 11371.681456 9763.988280 21690.049974 233.227139
+V 15 -16506.225340 22715.724132 -1789.010582 .051834
+P 16 26465.551833 1590.606272 -1599.537000 15.262967
+V 16 -2165.253633 2751.594441 -31677.725288 -.003925
+P 17 -19546.630717 14473.211155 -9549.821457 208.067747
+V 17 5455.426597 -11719.645658 -29148.535149 .195184
+P 18 4780.141972 15152.571945 21343.524570 -15.549201
+V 18 -26960.208483 -1298.028985 6761.136465 -.026804
+P 20 12456.669894 -13284.476263 -19401.092500 -183.987451
+V 20 24460.892630 1568.973509 14684.241656 .027505
+P 21 -1801.164831 21642.313025 14967.675505 73.111360
+V 21 -12799.921183 14612.160553 -22978.839368 .005204
+P 22 17600.182622 12346.654242 15731.148204 -39.753143
+V 22 -19783.278222 417.282886 22078.465006 .087253
+P 24 -18347.245371 4797.055978 -18329.605540 8.278240
+V 24 12182.974907 -20532.082700 -17216.419588 .030833
+P 25 14567.542372 5214.354682 -21220.572943 61.753845
+V 25 -12185.384986 25074.026085 -2190.622821 .004961
+P 26 -13601.428499 5649.201339 21866.463982 409.506491
+V 26 -13532.037196 -24859.768033 -1375.095581 -.125169
+P 27 1955.623333 -23187.611653 12798.666569 920.102486
+V 27 9884.988103 -12543.324482 -25683.913578 .042215
+P 28 -17022.784041 -12197.999338 16698.036139 21.931924
+V 28 20778.135949 -1017.474781 20366.149223 .016159
+P 29 -16270.966951 537.218905 21263.191894 230.098250
+V 29 -12698.492472 -23065.875891 -9195.367997 .032553
+P 30 -1316.692303 15696.126250 -21612.940419 805.814192
+V 30 -26973.090102 71.089054 1814.064242 .142381
+P 31 11127.972519 -11284.711481 20949.376537 41.254448
+V 31 15039.459146 23040.249043 4681.955976 .307010
+* 2004 3 1 13 15 .00000000
+P 1 5685.667100 -16466.413472 -19867.181069 332.679169
+V 1 14108.415613 21350.843579 -13568.153427 .015667
+P 3 19421.062602 3850.093321 17710.208705 90.045425
+V 3 11977.081813 19395.365047 -17032.304149 .028615
+P 4 -11182.360629 -10809.210081 -21476.657651 -77.189667
+V 4 13679.406445 -23696.556195 5115.116753 -.092039
+P 5 -18181.148486 12865.585470 -14463.036454 19.849823
+V 5 -18486.138579 -569.078891 23093.103336 .015811
+P 6 1982.138765 22044.904670 -14396.145796 -1.405155
+V 6 -12734.534182 -14004.944746 -23037.579795 -.008805
+P 7 -16849.998287 -20429.318111 -2604.313958 611.379408
+V 7 595.877234 -5060.034175 30892.906758 -.078770
+P 8 -5018.937813 -17714.802523 18828.603243 354.987699
+V 8 13337.258654 -20516.417673 -15892.150861 -.088971
+P 9 -15302.906753 20043.141702 7261.708936 -32.453540
+V 9 1244.279070 -10374.847056 29912.675999 -.017655
+P 10 -26695.167498 1011.873487 172.033506 40.200486
+V 10 -339.495658 -1936.128360 -32003.494918 .008578
+P 11 13909.827638 -21649.241782 6284.243404 100.008222
+V 11 1068.638823 9133.430387 29209.923528 .025338
+P 13 -5065.817247 -23175.944495 -12067.090822 -30.893266
+V 13 9558.025042 11938.968750 -26954.084720 .002377
+P 14 16726.104374 20042.155525 -4809.569779 -18.165566
+V 14 1405.695620 6420.383773 31329.250825 -.001186
+P 15 9948.992462 11833.613493 21338.626744 233.231379
+V 15 -15064.096992 23192.716849 -6010.071555 .051831
+P 16 26116.751393 1846.962289 -4428.579581 15.262281
+V 16 -5572.490719 3013.605021 -31099.454451 -.003936
+P 17 -18997.118178 13286.399283 -12079.009925 208.085254
+V 17 6676.940482 -14649.780844 -26971.366037 .195172
+P 18 2323.370250 15099.334204 21767.555829 -15.551532
+V 18 -27545.221567 128.252967 2647.179269 -.026809
+P 20 14580.390430 -13199.449419 -17917.254597 -183.985623
+V 20 22655.695947 358.206953 18243.099975 .027489
+P 21 -2855.649832 22881.996568 12774.057608 73.111991
+V 21 -10645.372686 12857.436649 -25697.403719 .005213
+P 22 15715.573594 12426.786319 17578.484050 -39.745161
+V 22 -22029.781028 1411.336185 18915.877496 .087240
+P 24 -17256.847209 2849.705464 -19713.349509 8.281545
+V 24 11975.284720 -22690.089739 -13486.866062 .030855
+P 25 13524.309750 7500.340942 -21228.308022 61.754448
+V 25 -10958.931486 25641.625732 2018.853283 .005000
+P 26 -14871.012474 3461.457897 21551.060880 409.494727
+V 26 -14626.387654 -23678.237210 -5619.759113 -.125179
+P 27 2760.887133 -24218.456296 10383.344024 920.106264
+V 27 8039.085739 -10293.694408 -27915.161412 .042213
+P 28 -15058.553932 -12340.026528 18385.726829 21.933305
+V 28 22800.810818 -2179.432166 17085.194277 .016158
+P 29 -17442.610614 -1461.489992 20259.410696 230.100514
+V 29 -13271.648276 -21291.001858 -13080.077578 .032535
+P 30 -3727.864943 15762.444519 -21267.919864 805.827608
+V 30 -26523.352180 1390.692257 5843.039859 .142373
+P 31 12538.672180 -9231.006147 21183.354966 41.282267
+V 31 16263.716047 22518.736534 511.535441 .306950
+* 2004 3 1 13 30 .00000000
+P 1 7041.978692 -14527.596536 -20911.118004 332.679914
+V 1 16005.014427 21645.316712 -9596.241415 .015221
+P 3 20481.684260 5497.133031 16029.486799 90.046837
+V 3 11519.711148 17176.487326 -20262.366701 .028103
+P 4 -10021.183086 -12944.657290 -20831.787550 -77.197841
+V 4 12097.935775 -23670.691308 9196.344167 -.092064
+P 5 -19726.174244 12835.242254 -12266.044812 19.851318
+V 5 -15800.603759 -164.109919 25659.566192 .016021
+P 6 739.963828 20720.835869 -16337.347459 -1.405891
+V 6 -14868.145286 -15340.110782 -20036.779307 -.008754
+P 7 -16713.111041 -20760.217035 190.382277 611.372838
+V 7 2500.001373 -2330.275109 31122.748765 -.078801
+P 8 -3906.787313 -19513.676259 17236.278285 354.979241
+V 8 11374.848097 -19370.477871 -19441.193406 -.089055
+P 9 -15154.834884 18966.573380 9880.956468 -32.454931
+V 9 1974.940323 -13540.023319 28204.974999 -.017731
+P 10 -26569.143448 826.756024 -2701.612888 40.200678
+V 10 3129.845243 -2249.195604 -31765.183722 .008357
+P 11 13974.823242 -20692.650120 8851.018949 100.010506
+V 11 439.557805 12114.535136 27747.019848 .025345
+P 13 -4100.761089 -22016.336321 -14382.853245 -30.893034
+V 13 11904.413648 13751.169568 -24433.850570 .002383
+P 14 16776.035316 20484.056516 -1956.583848 -18.165616
+V 14 -362.512406 3428.116599 31979.140170 -.001190
+P 15 8666.956025 13923.144673 20611.235914 233.234599
+V 15 -13395.149296 23152.582849 -10131.225110 .051942
+P 16 25466.367845 2145.076706 -7181.338307 15.261692
+V 16 -8851.066724 3675.727856 -29984.818936 -.003945
+P 17 -18359.161930 11838.566937 -14390.180632 208.102782
+V 17 7419.803386 -17502.739748 -24311.621483 .195159
+P 18 -161.681064 15176.700278 21818.445531 -15.553890
+V 18 -27586.951459 1589.234695 -1519.111640 -.026812
+P 20 16521.653178 -13212.111600 -16126.656951 -183.983316
+V 20 20416.253103 -590.027705 21491.378317 .027473
+P 21 -3720.874761 23943.036241 10355.610678 73.112490
+V 21 -8608.678972 10649.469980 -27967.314722 .005220
+P 22 13647.812749 12608.277495 19126.486394 -39.737083
+V 22 -23843.748224 2657.784000 15436.122127 .087230
+P 24 -16204.097911 723.524137 -20749.870889 8.283633
+V 24 11354.682812 -24492.332266 -9511.795838 .030827
+P 25 12600.636148 9814.246123 -20858.318298 61.753996
+V 25 -9542.651318 25689.810440 6190.391535 .005143
+P 26 -16223.326943 1400.236490 20858.557078 409.483298
+V 26 -15359.491179 -22059.913655 -9742.890008 -.125188
+P 27 3409.059263 -25028.578601 7788.041228 920.109966
+V 27 6406.205802 -7648.005615 -29676.527114 .042212
+P 28 -12932.131527 -12596.520452 19764.672516 21.934895
+V 28 24374.205119 -3548.521431 13514.447988 .016160
+P 29 -18647.154186 -3285.721477 18915.268930 230.103515
+V 29 -13421.664959 -19201.780103 -16748.519603 .032518
+P 30 -6075.849270 15943.042499 -20563.994815 805.840215
+V 30 -25572.626280 2596.827028 9778.667149 .142366
+P 31 14046.121559 -7244.809698 21041.516910 41.309713
+V 31 17177.695421 21548.726095 -3656.783588 .306889
+* 2004 3 1 13 45 .00000000
+P 1 8560.343160 -12585.886625 -21589.420076 332.681186
+V 1 17694.261172 21419.423399 -5454.955709 .014823
+P 3 21481.378762 6937.957421 14073.613945 90.047289
+V 3 10621.854701 14827.561623 -23138.276949 .027821
+P 4 -9008.180995 -15053.997501 -19825.802925 -77.206162
+V 4 10401.608190 -23114.224268 13128.066587 -.092090
+P 5 -21018.008873 12824.878802 -9857.460282 19.853708
+V 5 -12873.727561 -130.830313 27788.085779 .016176
+P 6 -692.544237 19298.043335 -17992.171502 -1.404929
+V 6 -16948.970048 -16197.275383 -16683.049124 -.008737
+P 7 -16391.137858 -20856.537772 2981.871832 611.366617
+V 7 4699.041270 140.887472 30822.586202 -.078833
+P 8 -2970.474884 -21185.943017 15339.433376 354.970988
+V 8 9445.332769 -17707.010158 -22648.947930 -.089122
+P 9 -14960.237983 17609.079594 12323.261703 -32.456928
+V 9 2278.900205 -16600.514274 25986.205340 -.017792
+P 10 -26135.095126 594.389642 -5529.583024 40.202194
+V 10 6489.333224 -2982.606615 -30989.934538 .008218
+P 11 14000.381721 -19471.696448 11264.283656 100.012711
+V 11 191.037430 14993.351996 25803.619399 .025365
+P 13 -2921.413250 -20715.398685 -16452.639683 -30.893178
+V 13 14304.298707 15075.168337 -21495.706370 .002387
+P 14 16649.657572 20665.672003 930.126519 -18.165787
+V 14 -2503.328171 650.692926 32077.711779 -.001191
+P 15 7541.961627 15984.846070 19520.247952 233.238395
+V 15 -11589.787984 22572.036983 -14077.759211 .052232
+P 16 24530.226695 2519.662538 -9810.297879 15.261402
+V 16 -11907.666867 4706.260385 -28352.189316 -.003944
+P 17 -17675.809650 10141.308090 -16442.180313 208.120521
+V 17 7688.145106 -20175.813165 -21221.429718 .195156
+P 18 -2625.941309 15383.720314 21494.681092 -15.556398
+V 18 -27084.640384 2994.406922 -5666.552756 -.026817
+P 20 18244.283126 -13295.811999 -14059.802113 -183.980901
+V 20 17809.453345 -1210.652474 24373.335371 .027457
+P 21 -4411.253355 24786.840079 7754.672113 73.112842
+V 21 -6773.007031 8040.007265 -29746.492926 .005228
+P 22 11438.179868 12910.476078 20349.247476 -39.729331
+V 22 -25175.561772 4080.258824 11698.540222 .087225
+P 24 -15223.667496 -1545.940103 -21420.232021 8.287880
+V 24 10379.106675 -25862.587236 -5362.155644 .030926
+P 25 11809.708472 12108.359822 -20117.472249 61.754557
+V 25 -8023.932692 25200.413026 10247.521911 .005335
+P 26 -17623.112532 -498.524198 19803.126574 409.471822
+V 26 -15672.854392 -20081.867312 -13673.321764 -.125195
+P 27 3922.432441 -25585.166683 5056.809477 920.113753
+V 27 5053.840518 -4671.769737 -30930.163298 .042212
+P 28 -10685.934719 -12982.581382 20811.369788 21.936393
+V 28 25456.893289 -5044.767032 9711.914353 .016162
+P 29 -19844.611873 -4910.877088 17252.992018 230.107474
+V 29 -13108.966012 -16881.663328 -20139.927823 .032504
+P 30 -8316.809005 16224.057973 -19512.529576 805.853050
+V 30 -24151.469686 3609.364661 13555.372263 .142358
+P 31 15619.405954 -5363.917485 20527.470819 41.337184
+V 31 17717.102023 20189.751766 -7747.291059 .306838
+* 2004 3 1 14 0 .00000000
+P 1 10218.071379 -10686.675358 -21890.131241 332.680696
+V 1 19088.018641 20708.283887 -1217.771567 .014414
+P 3 22380.410786 8164.867290 11876.656658 90.049819
+V 3 9284.330166 12437.698946 -25612.442880 .027646
+P 4 -8149.609615 -17089.176922 -18475.314665 -77.215494
+V 4 8681.393155 -22023.711157 16840.599194 -.092116
+P 5 -22038.834899 12799.737320 -7278.496843 19.855717
+V 5 -9793.332321 -495.483647 29439.965655 .016353
+P 6 -2306.545438 17819.682586 -19331.491490 -1.406020
+V 6 -18886.393248 -16576.510516 -13036.007986 -.008788
+P 7 -15860.373326 -20744.583682 5722.836418 611.358829
+V 7 7128.085923 2288.316036 30002.323245 -.078866
+P 8 -2202.898722 -22686.419230 13171.467914 354.962608
+V 8 7639.864319 -15560.196099 -25456.946177 -.089184
+P 9 -14757.036764 15984.659271 14544.292635 -32.459232
+V 9 2170.027351 -19455.248425 23295.075459 -.017845
+P 10 -25407.193083 278.153867 -8264.076178 40.203259
+V 10 9644.751746 -4106.538307 -29690.797372 .008033
+P 11 14020.176578 -17999.527453 13482.280412 100.014941
+V 11 307.534685 17683.001337 23414.142492 .025383
+P 13 -1527.262658 -19317.990277 -18241.033768 -30.892632
+V 13 16661.640599 15893.663888 -18189.546207 .002397
+P 14 16316.083840 20610.070929 3800.824319 -18.166058
+V 14 -4955.422869 -1830.847723 31623.930947 -.001189
+P 15 6582.056133 17969.778851 18084.633618 233.244099
+V 15 -9742.349652 21447.751238 -17777.969155 .052516
+P 16 23332.219274 3001.823645 -12270.006589 15.260904
+V 16 -14656.927122 6056.960074 -26228.994847 -.003944
+P 17 -16988.819165 8215.239351 -18198.928888 208.137994
+V 17 7506.341550 -22571.908455 -17761.150848 .195153
+P 18 -5021.116808 15711.352656 20801.173320 -15.558966
+V 18 -26056.274744 4255.065864 -9723.786415 -.026817
+P 20 19718.703422 -13418.646772 -11751.943484 -183.978117
+V 20 14914.582807 -1452.409471 26839.289588 .027444
+P 21 -4948.248574 25380.214053 5016.962956 73.112897
+V 21 -5211.297429 5096.881844 -31001.967418 .005236
+P 22 9131.684726 13345.488385 21226.383412 -39.721286
+V 22 -25992.186487 5594.727389 7766.376614 .087216
+P 24 -14344.360097 -3916.919551 -21712.061413 8.290311
+V 24 9120.513538 -26739.350321 -1112.669670 .030874
+P 25 11156.696532 14334.217736 -19019.418604 61.754846
+V 25 -6492.900907 24174.907159 14116.311866 .005540
+P 26 -19030.564855 -2206.342307 18405.129843 409.459726
+V 26 -15524.276724 -17832.143003 -17344.926831 -.125202
+P 27 4328.829629 -25861.958099 2236.736480 920.117558
+V 27 4036.930914 -1444.613761 -31646.629521 .042213
+P 28 -8365.378804 -13505.814556 21507.717964 21.938288
+V 28 26023.894578 -6582.113869 5739.516239 .016162
+P 29 -20992.192208 -6320.197233 15300.099954 230.110380
+V 29 -12311.006984 -14420.864102 -23197.557815 .032482
+P 30 -10410.374562 16584.729033 -18130.702559 805.865603
+V 30 -22306.142434 4355.613712 17109.690675 .142349
+P 31 17222.439942 -3620.152374 19651.541668 41.364858
+V 31 17831.718256 18514.506886 -11686.694557 .306792
+* 2004 3 1 14 15 .00000000
+P 1 11984.962562 -8871.385287 -21807.999492 332.682147
+V 1 20108.075056 19564.665822 3040.048321 .014122
+P 3 23139.886071 9178.161567 9476.647980 90.051994
+V 3 7524.955879 10094.959431 -27644.415110 .027554
+P 4 -7443.522146 -19002.702127 -16803.067537 -77.223698
+V 4 7027.968677 -20415.051393 20267.540131 -.092131
+P 5 -22778.981050 12723.462522 -4573.493023 19.856796
+V 5 -6652.055257 -1267.174023 30584.592756 .016463
+P 6 -4085.168861 16328.076282 -20331.802240 -1.407881
+V 6 -20593.174535 -16496.166894 -9160.749045 -.008842
+P 7 -15103.418331 -20455.900159 8367.222869 611.351777
+V 7 9712.356805 4060.966164 28680.081635 -.078890
+P 8 -1589.046068 -23973.840816 10770.711061 354.954337
+V 8 6042.475608 -12982.680568 -27814.299528 -.089232
+P 9 -14581.065610 14116.170585 16503.655389 -32.461133
+V 9 1680.654762 -22009.118532 20180.249100 -.017746
+P 10 -24407.773453 -155.117097 -10858.845363 40.204031
+V 10 12509.401709 -5574.282266 -27889.216139 .007848
+P 11 14065.761743 -16296.873000 15466.707166 100.017344
+V 11 757.669761 20102.382276 20620.824668 .025399
+P 13 73.504787 -17869.670599 -19717.395060 -30.892745
+V 13 18879.832317 16208.410592 -14571.463208 .002409
+P 14 15750.583433 20347.055246 6606.109318 -18.166414
+V 14 -7643.744975 -3948.383551 30626.297565 -.001187
+P 15 5786.767223 19829.617490 16329.625024 233.248841
+V 15 -7947.148175 19796.662961 -21164.662826 .052742
+P 16 21903.440514 3617.645547 -14517.873520 15.260356
+V 16 -17024.633202 7664.914082 -23651.294233 -.003944
+P 17 -16336.892306 6089.310695 -19630.090417 208.154863
+V 17 6917.624145 -24603.565546 -13997.796185 .195154
+P 18 -7301.356988 16142.788496 19749.217370 -15.561453
+V 18 -24538.003307 5287.899537 -13620.501524 -.026820
+P 20 20922.922818 -13544.802114 -9242.500389 -183.975753
+V 20 11820.403417 -1279.972150 28846.482276 .027430
+P 21 -5359.312940 25696.698872 2190.733077 73.113883
+V 21 -3983.251761 1901.439725 -31710.618056 .005251
+P 22 6775.520463 13917.635993 21743.340107 -39.713264
+V 22 -26278.268129 7112.795197 3705.766463 .087208
+P 24 -13587.984646 -6342.874390 -21619.826203 8.292562
+V 24 7661.844153 -27078.460474 3159.677636 .030780
+P 25 10638.681175 16444.372736 -17584.286705 61.754294
+V 25 -5038.541233 22634.341599 17726.931127 .005732
+P 26 -20402.872700 -3703.016585 16690.613964 409.449948
+V 26 -14889.325074 -15406.078027 -20697.612609 -.125203
+P 27 4660.356905 -25840.391128 -622.859250 920.121004
+V 27 3395.337497 1942.473757 -31805.959016 .042220
+P 28 -6017.350426 -14165.928126 21841.334744 21.939905
+V 28 26067.597818 -8071.683661 1662.261924 .016158
+P 29 -22045.883193 -7505.222610 13089.006156 230.113054
+V 29 -11023.333911 -11913.054943 -25869.553421 .032466
+P 30 -12320.988432 16998.196020 -16441.272121 805.878650
+V 30 -20097.007632 4773.216999 20381.252208 .142341
+P 31 18815.330277 -2038.320783 18430.486941 41.392260
+V 31 17487.422537 16605.653826 -15405.571431 .306746
+* 2004 3 1 14 30 .00000000
+P 1 13824.346678 -7175.976716 -21344.572315 332.681866
+V 1 20689.379911 18056.758785 7242.911018 .013897
+P 3 23723.257289 9985.892038 6914.918707 90.053606
+V 3 5377.908446 7883.028511 -29201.440469 .027527
+P 4 -6879.963251 -20749.370145 -14837.585293 -77.231845
+V 4 5528.011621 -18323.118551 23347.085138 -.092142
+P 5 -23237.199627 12559.675071 -1789.152695 19.858275
+V 5 -3543.856080 -2437.294446 31200.119901 .016594
+P 6 -6003.978342 14863.103402 -20975.655505 -1.408680
+V 6 -21989.012924 -15991.989019 -5126.555022 -.008860
+P 7 -14109.942490 -20025.931888 10870.957800 611.344086
+V 7 12370.041057 5423.441221 26881.634492 -.078911
+P 8 -1106.794431 -25012.439628 8179.690225 354.945967
+V 8 4726.578381 -10043.552945 -29678.762615 -.089276
+P 9 -14464.466951 12034.611034 18165.747311 -32.461647
+V 9 860.192952 -24176.999312 16699.341931 -.017614
+P 10 -23166.519988 -733.689690 -13269.940043 40.205100
+V 10 15007.187092 -7324.012597 -25614.715673 .007624
+P 11 14165.203837 -14391.385815 17183.384954 100.019978
+V 11 1495.606836 22179.239378 17472.909044 .025424
+P 13 1864.122247 -16414.988566 -20856.376558 -30.892699
+V 13 20865.406572 16040.018190 -10702.836625 .002423
+P 14 14935.692818 19911.881056 9297.768651 -18.166734
+V 14 -10482.366556 -5649.199460 29102.651590 -.001181
+P 15 5147.284181 21518.455496 14286.245169 233.256033
+V 15 -6294.516881 17655.429548 -24176.570631 .052936
+P 16 20281.056862 4386.981715 -16514.919797 15.259883
+V 16 -18950.498537 9455.000201 -20663.184769 -.003938
+P 17 -15754.071732 3799.775806 -20711.595628 208.172092
+V 17 5981.868102 -26196.476370 -10003.323052 .195166
+P 18 -9424.836485 16654.092559 18356.342881 -15.564111
+V 18 -22582.856298 6018.401066 -17288.671646 -.026816
+P 20 21843.242854 -13636.060621 -6574.399960 -183.973521
+V 20 8621.865123 -675.450495 30359.838186 .027423
+P 21 -5676.582040 25717.647913 -674.150203 73.114579
+V 21 -3132.881053 -1454.618191 -31859.686403 .005265
+P 22 4417.447043 14623.217777 21891.607032 -39.705449
+V 22 -26036.585580 8545.154655 -415.296899 .087203
+P 24 -12968.521775 -8774.145417 -21144.964147 8.296015
+V 24 6093.500314 -26855.013171 7377.238407 .030737
+P 25 10244.928666 18394.122272 -15838.251818 61.755333
+V 25 -3744.911276 20618.441173 21015.080750 .005939
+P 26 -21695.855882 -4977.110672 14690.732404 409.438577
+V 26 -13762.072824 -12902.466852 -23678.111059 -.125205
+P 27 4951.952994 -25510.480678 -3471.323237 920.124596
+V 27 3151.873551 5390.491569 -31398.564980 .042232
+P 28 -3688.625229 -14954.631095 21805.794117 21.941416
+V 28 25598.082819 -9425.166418 -2452.648850 .016154
+P 29 -22962.104334 -8465.951131 10656.539579 230.116062
+V 29 -9260.005209 -9451.920451 -28109.784610 .032456
+P 30 -14019.082621 17432.549339 -14472.253895 805.891122
+V 30 -17596.408000 4812.701822 23313.761074 .142333
+P 31 20355.889021 -635.472515 16887.088936 41.420700
+V 31 16667.500553 14552.290720 -18839.659684 .306709
+* 2004 3 1 14 45 .00000000
+P 1 15694.395018 -5629.683602 -20508.160576 332.683207
+V 1 20782.745780 16265.327259 11316.354049 .013816
+P 3 24097.744360 10603.327438 4235.384943 90.055307
+V 3 2892.471117 5878.101614 -30258.879016 .027635
+P 4 -6441.491996 -22287.930606 -12612.699581 -77.240201
+V 4 4260.612837 -15800.621954 26023.289201 -.092150
+P 5 -23420.625264 12273.563778 1026.269111 19.859900
+V 5 -560.457853 -3979.694834 31273.991482 .016753
+P 6 -8031.747482 13460.700673 -21251.975725 -1.410594
+V 6 -23003.831822 -15115.515075 -1005.523860 -.008884
+P 7 -12877.182146 -19492.566968 13192.608310 611.336722
+V 7 15015.316406 6356.948479 24639.777144 -.078925
+P 8 -728.008134 -25773.306141 5444.313213 354.937027
+V 8 3751.927945 -6825.633561 -31017.583214 -.089307
+P 9 -14434.246864 9778.052954 19500.506711 -32.461869
+V 9 -227.052898 -25887.353946 12917.634918 -.017606
+P 10 -21719.384802 -1479.669931 -15456.415377 40.206354
+V 10 17075.321331 -9281.083259 -22904.487020 .007361
+P 11 14341.865037 -12316.720283 18602.847524 100.022418
+V 11 2463.007799 23852.874330 14025.715023 .025442
+P 13 3819.687890 -14995.821299 -21638.356161 -30.892375
+V 13 22531.637228 15427.040438 -6649.334757 .002431
+P 14 13862.050284 19343.782587 11829.602618 -18.167000
+V 14 -13377.747397 -6897.866131 27079.818094 -.001176
+P 15 4646.988370 22994.524263 11990.716522 233.262398
+V 15 -4867.024834 15079.050158 -26759.616512 .053009
+P 16 18506.947393 5322.484542 -18226.469689 15.259811
+V 16 -20390.409235 11342.845342 -17316.058454 -.003931
+P 17 -15268.368854 1388.873882 -21426.008143 208.190063
+V 17 4772.694017 -27292.355621 -5852.878626 .195187
+P 18 -11355.191835 17215.138030 16646.052750 -15.566770
+V 18 -20258.803270 6383.972043 -20663.788094 -.026807
+P 20 22474.657159 -13653.413433 -3793.355764 -183.970934
+V 20 5416.573280 360.771937 31352.608436 .027414
+P 21 -5935.376956 25432.999819 -3527.148349 73.114659
+V 21 -2686.727590 -4872.838205 -31447.037290 .005286
+P 22 2104.163513 15450.584130 21668.837658 -39.697614
+V 22 -25287.847699 9805.053795 -4528.002709 .087198
+P 24 -12491.623854 -11159.743315 -20295.870071 8.297529
+V 24 4509.492061 -26064.469020 11463.330558 .030657
+P 25 9957.495416 20143.119254 -13812.979489 61.754961
+V 25 -2687.615068 18183.928895 23923.245618 .006113
+P 26 -22865.636737 -6026.091239 12441.102769 409.427481
+V 26 -12155.112336 -10419.729767 -26240.569769 -.125201
+P 27 5239.791915 -24871.370397 -6257.631975 920.128777
+V 27 3311.026923 8796.248961 -30425.926399 .042248
+P 28 -1424.284571 -15855.838346 21400.781124 21.942940
+V 28 24642.817594 -10558.234039 -6536.778549 .016151
+P 29 -23699.366904 -9210.682183 8043.393064 230.118724
+V 29 -7053.349953 -7127.676634 -29878.646489 .032450
+P 30 -15482.043735 17852.087491 -12256.510577 805.904089
+V 30 -14886.082801 4439.585251 25855.958767 .142329
+P 31 21801.231461 579.512196 15049.639177 41.447785
+V 31 15373.215521 12446.241134 -21930.961408 .306659
+* 2004 3 1 15 0 .00000000
+P 1 17549.645533 -4254.029164 -19313.672128 332.682815
+V 1 20356.902676 14280.364697 15188.473470 .013764
+P 3 24235.616710 11052.150742 1483.804201 90.056164
+V 3 131.228524 4146.087872 -30800.486581 .027944
+P 4 -6104.016014 -23582.611883 -10166.969035 -77.248562
+V 4 3293.971346 -12916.231074 28247.239365 -.092157
+P 5 -23344.413700 11833.433156 3823.818384 19.862124
+V 5 2212.194573 -5851.474183 30803.286760 .016918
+P 6 -10131.512400 12151.537613 -21156.249432 -1.412294
+V 6 -23580.643983 -13931.833292 3128.858297 -.008801
+P 7 -11410.161580 -18894.622302 15293.984006 611.330218
+V 7 17561.459157 6859.648481 21993.655377 -.078936
+P 8 -419.881836 -26235.481212 2612.984465 354.928855
+V 8 3162.189948 -3422.190199 -31808.114076 -.089326
+P 9 -14511.059302 7390.280004 20484.035726 -32.462586
+V 9 -1504.759931 -27085.244269 8906.550095 -.017673
+P 10 -20107.286158 -2407.971542 -17380.999772 40.207058
+V 10 18666.560343 -11360.810509 -19802.872622 .007087
+P 11 14613.384518 -10111.387201 19700.842401 100.024958
+V 11 3591.475869 25076.397269 10339.605668 .025460
+P 13 5907.925146 -13649.825776 -22049.775106 -30.892006
+V 13 23801.900823 14424.385826 -2479.846965 .002440
+P 14 12528.922794 18684.357154 14158.211684 -18.167372
+V 14 -16232.288506 -7677.440776 24593.101597 -.001175
+P 15 4262.309971 24221.752556 9483.762937 233.266914
+V 15 -3736.037636 12138.715991 -28868.011432 .052895
+P 16 16626.170375 6428.920714 -19622.768321 15.259730
+V 16 -21318.044520 13238.166787 -13667.717252 -.003926
+P 17 -14900.677432 -1096.713501 -21762.732985 208.207148
+V 17 3374.047060 -27851.054061 -1623.062075 .195210
+P 18 -13062.755958 17790.801979 14647.452056 -15.568963
+V 18 -17646.214832 6336.587338 -23686.063218 -.026798
+P 20 22820.926754 -13558.716146 -947.094382 -183.968568
+V 20 2301.143844 1809.906430 31806.881741 .027407
+P 21 -6172.580091 24841.712920 -6318.009833 73.114693
+V 21 -2652.839905 -8251.898369 -30481.163077 .005305
+P 22 -120.272327 16380.519713 21078.876180 -39.689581
+V 22 -24069.846742 10811.663699 -8563.763034 .087191
+P 24 -12154.470162 -13449.199286 -19087.736100 8.301130
+V 24 3003.428593 -24722.903320 15343.849659 .030700
+P 25 9752.132392 21656.800199 -11544.966340 61.757374
+V 25 -1930.693180 15402.160859 26401.739261 .006323
+P 26 -23870.281331 -6856.126921 9981.119752 409.416536
+V 26 -10098.877740 -8052.228508 -28346.959575 -.125194
+P 27 5559.605421 -23931.525156 -8931.409541 920.132801
+V 27 3858.469429 12056.504925 -28900.997676 .042259
+P 28 733.812255 -16846.179491 20632.158183 21.944302
+V 28 23245.729255 -11393.858499 -10521.462597 .016145
+P 29 -24219.882263 -9755.550646 5293.502023 230.121829
+V 29 -4453.055658 -5023.677923 -31143.806141 .032450
+P 30 -16694.927936 18218.741231 -9831.256395 805.916604
+V 30 -12054.207382 3635.947639 27962.554568 .142327
+P 31 23109.391944 1605.999960 12951.332567 41.475264
+V 31 13623.639641 10378.331593 -24628.643258 .306612
+* 2004 3 1 15 15 .00000000
+P 1 19342.680654 -3062.159723 -17782.319690 332.683788
+V 1 19399.820884 12197.392709 18791.284603 .013833
+P 3 24115.290847 11359.422821 -1292.988018 90.059034
+V 3 -2832.218473 2740.229130 -30818.566762 .028420
+P 4 -5837.905090 -24604.447618 -7542.998156 -77.256268
+V 4 2682.513934 -9752.029099 29978.102904 -.092161
+P 5 -23031.071310 11212.144989 6554.721812 19.864791
+V 5 4697.218801 -7994.591219 29794.941246 .016853
+P 6 -12261.858818 10959.918792 -20690.585276 -1.412808
+V 6 -23677.875795 -12516.795254 7203.159002 -.008672
+P 7 -9721.634696 -18270.324523 17140.677269 611.323559
+V 7 19923.931022 6946.408254 18988.067225 -.078948
+P 8 -146.471915 -26386.732293 -264.322496 354.920856
+V 8 2983.213570 66.763605 -32038.172439 -.089341
+P 9 -14708.275262 4919.185432 21099.077478 -32.464073
+V 9 -2888.016159 -27734.592262 4741.947753 -.017817
+P 10 -18374.629658 -3525.552643 -19010.711603 40.205938
+V 10 19750.881947 -13471.641877 -16360.752235 .006778
+P 11 14990.898101 -7817.429893 20458.735348 100.027281
+V 11 4805.387176 25818.432662 6478.877301 .025473
+P 13 8090.229936 -12409.061947 -22083.377620 -30.891511
+V 13 24612.672068 13101.108298 1734.641137 .002451
+P 14 10944.405170 17975.874246 16243.731622 -18.167066
+V 14 -18948.036836 -7989.948064 21685.641794 -.001172
+P 15 3963.872917 25171.101393 6809.822352 233.270506
+V 15 -2958.775772 8918.988361 -30465.137894 .052812
+P 16 14685.314709 7702.799663 -20679.513995 15.259259
+V 16 -21725.805764 15048.365023 -9781.363090 -.003923
+P 17 -14664.011798 -3607.559100 -21718.071812 208.224508
+V 17 1876.434903 -27851.851895 2609.734332 .195237
+P 18 -14525.540686 18342.376520 12394.771041 -15.571327
+V 18 -14834.819406 5844.906984 -26301.577084 -.026784
+P 20 22894.327461 -13316.324299 1915.457591 -183.966497
+V 20 -632.414640 3635.344179 31713.950895 .027404
+P 21 -6424.954384 23951.843875 -8997.717221 73.114998
+V 21 -3020.543467 -11491.600381 -28980.933291 .005327
+P 22 -2215.920257 17386.920283 20131.690941 -39.681827
+V 22 -22436.000799 11493.227152 -12455.244386 .087187
+P 24 -11945.983084 -15594.398887 -17542.249462 8.304437
+V 24 1664.535366 -22866.384460 18948.813949 .030640
+P 25 9599.445759 22907.574061 -9074.796969 61.756164
+V 25 -1524.057390 12356.195860 28409.520656 .006464
+P 26 -24671.350840 -7481.567031 7353.238908 409.405246
+V 26 -7640.337295 -5886.853956 -29967.318694 -.125189
+P 27 5944.999215 -22708.543804 -11443.966875 920.137063
+V 27 4761.416058 15072.233662 -26848.295947 .042272
+P 28 2748.444604 -17895.797592 19511.938073 21.945875
+V 28 21465.666446 -11865.415370 -14338.871839 .016143
+P 29 -24491.058371 -10123.764102 2453.358849 230.124778
+V 29 -1524.600598 -3213.234500 -31880.881028 .032451
+P 30 -17650.896115 18493.612668 -7237.479959 805.929364
+V 30 -9192.154281 2401.402492 29595.105271 .142321
+P 31 24240.892521 2451.351803 10629.589868 41.503075
+V 31 11454.781856 8434.812485 -26889.728612 .306567
+* 2004 3 1 15 30 .00000000
+P 1 21025.889210 -2058.521697 -15941.210480 332.684552
+V 1 17919.251307 10113.563649 22061.983651 .013937
+P 3 23722.203958 11556.353535 -4047.849641 90.062178
+V 3 -5915.929249 1699.213724 -30313.997604 .028797
+P 4 -5609.339875 -25332.347482 -4786.668749 -77.264856
+V 4 2464.570827 -6400.394714 31184.017016 -.092165
+P 5 -22509.503583 10388.386858 9171.269062 19.865821
+V 5 6829.759296 -10338.020848 28265.627153 .016559
+P 6 -14378.390331 9902.956765 -19863.645010 -1.413633
+V 6 -23271.056042 -10953.810007 11145.419107 -.008586
+P 7 -7831.753530 -17655.838991 18702.539954 611.316146
+V 7 22023.347325 6647.985354 15672.749927 -.078957
+P 8 129.651225 -26223.983996 -3137.013433 354.912577
+V 8 3222.079339 3538.418657 -31706.143679 -.089359
+P 9 -15031.378925 2415.004770 21335.334484 -32.465873
+V 9 -4287.126714 -27819.583659 502.313187 -.017984
+P 10 -16567.705635 -4830.951070 -20317.416276 40.207268
+V 10 20316.548517 -15518.604128 -12634.831162 .006578
+P 11 15478.525893 -5478.973756 20863.812282 100.029321
+V 11 6024.994195 26064.217906 2510.595342 .025478
+P 13 10322.966715 -11298.839636 -21738.347335 -30.891027
+V 13 24916.039768 11537.658750 5922.214343 .002460
+P 14 9125.284379 17259.574323 18050.504963 -18.166787
+V 14 -21430.398731 -7856.127787 18407.644739 -.001168
+P 15 3717.877299 25821.619530 4016.190169 233.275374
+V 15 -2575.997870 5514.435723 -31524.202893 .052776
+P 16 12730.800456 9132.331374 -21378.294662 15.258864
+V 16 -21625.014807 16682.225751 -5724.481172 -.003923
+P 17 -14563.092044 -6093.265443 -21295.134290 208.242471
+V 17 373.009966 -27293.915245 6770.856110 .195264
+P 18 -15729.926886 18829.141511 9926.788480 -15.573804
+V 18 -11920.268900 4895.739972 -28463.339736 -.026776
+P 20 22715.078157 -12894.644479 4745.012641 -183.964168
+V 20 -3300.152541 5783.941274 31074.524587 .027399
+P 21 -6727.477952 22780.268912 -11519.400714 73.115478
+V 21 -3761.010412 -14496.790348 -26975.102550 .005347
+P 22 -4148.277164 18437.738907 18843.215700 -39.673929
+V 22 -20453.337114 11789.878724 -16137.382910 .087182
+P 24 -11847.394767 -17551.321704 -15687.156013 8.306772
+V 24 573.878112 -20549.512147 22213.795824 .030579
+P 25 9466.260137 23875.727227 -6446.337997 61.756353
+V 25 -1501.567047 9137.443677 29914.773761 .006673
+P 26 -25235.309676 -7924.129414 4602.244971 409.394287
+V 26 -4841.131681 -3999.990683 -31079.856095 -.125184
+P 27 6425.840559 -21228.590195 -13749.333167 920.140341
+V 27 5969.850907 17752.805778 -24303.634663 .042287
+P 28 4588.282669 -18969.413118 18058.159290 21.947135
+V 28 19374.292326 -11919.455172 -17923.117793 .016142
+P 29 -24486.827068 -10344.567607 -428.729944 230.128050
+V 29 1652.930984 -1756.760938 -32074.030112 .032447
+P 30 -18351.349260 18638.572419 -4519.291007 805.942323
+V 30 -6391.089577 753.409879 30722.823038 .142315
+P 31 25160.203685 3130.360389 8125.327161 41.530788
+V 31 8918.075253 6694.061619 -28679.585103 .306517
+* 2004 3 1 15 45 .00000000
+P 1 22553.241030 -1238.892028 -13822.827838 332.684814
+V 1 15942.467320 8123.731403 24944.082283 .014024
+P 3 23049.432719 11676.927692 -6734.100429 90.063668
+V 3 -9032.591187 1045.845809 -29296.138935 .029206
+P 4 -5381.840609 -25753.866263 -1946.299559 -77.274014
+V 4 2660.715170 -2960.439948 31842.790036 -.092173
+P 5 -21813.815698 9347.723154 11627.683452 19.866670
+V 5 8559.487755 -12800.475129 26241.579954 .016360
+P 6 -16435.317520 8990.047156 -18690.449028 -1.412716
+V 6 -22353.804088 -9330.359735 14886.515063 -.008529
+P 7 -5767.478336 -17083.896356 19954.095525 611.309012
+V 7 23788.237397 6009.683682 12101.659324 -.078966
+P 8 445.701261 -25753.388637 -5954.819815 354.904199
+V 8 3866.950969 6891.190657 -30820.835983 -.089370
+P 9 -15477.716141 -71.536772 21189.621606 -32.467126
+V 9 -5611.604703 -27345.154541 -3733.094614 -.018138
+P 10 -14733.020381 -6314.138141 -21278.314899 40.208185
+V 10 20370.508932 -17406.911657 -8686.832893 .006362
+P 11 16073.146797 -3140.705735 20909.474891 100.031986
+V 11 7169.675932 25816.057937 -1496.599897 .025488
+P 13 12558.965650 -10336.833351 -21020.337420 -30.890758
+V 13 24681.646192 9822.698352 10011.220488 .002467
+P 14 7096.574537 16574.022880 19547.678215 -18.166539
+V 14 -23591.720838 -7314.463881 14815.504919 -.001169
+P 15 3487.658454 26161.177673 1152.114808 233.280793
+V 15 -2610.404036 2025.884933 -32028.646517 .052742
+P 16 10807.194875 10697.716757 -21706.919873 15.258361
+V 16 -21045.371779 18053.583355 -1567.637840 -.003927
+P 17 -14594.282071 -8504.244448 -20503.618854 208.259814
+V 17 -1044.325373 -26195.940155 10788.753610 .195291
+P 18 -16671.032859 19210.037112 7286.164287 -15.575685
+V 18 -9000.447643 3494.790426 -30132.240957 -.026761
+P 20 22310.470972 -12267.539838 7492.773196 -183.961954
+V 20 -5629.329150 8187.959348 29898.775954 .027404
+P 21 -7111.764792 21352.061900 -13839.197329 73.116223
+V 21 -4828.593051 -17181.036501 -24501.598920 .005366
+P 22 -5889.392461 19496.167416 17235.100562 -39.666243
+V 22 -18199.986005 11656.037005 -19548.375232 .087177
+P 24 -11833.137916 -19281.614233 -13555.701621 8.309442
+V 24 -199.037262 -17843.187529 25081.198344 .030580
+P 25 9317.123619 24550.013765 -3705.890615 61.757334
+V 25 -1879.809654 5842.048849 30895.251039 .006879
+P 26 -25534.744420 -8211.835293 1774.516321 409.382553
+V 26 -1775.246636 -2454.941934 -31670.937530 -.125175
+P 27 7026.794155 -19525.459889 -15805.246789 920.144179
+V 27 7418.586219 20019.867030 -21313.490831 .042300
+P 28 6228.926613 -20027.618151 16294.660472 21.948510
+V 28 17053.468700 -11518.030783 -21211.387619 .016144
+P 29 -24188.749205 -10451.971111 -3303.435089 230.131102
+V 29 4989.588457 -699.371234 -31716.436898 .032440
+P 30 -18805.754691 18617.854183 -1723.198541 805.955487
+V 30 -3738.526255 -1273.095618 31323.285825 .142309
+P 31 25837.043322 3664.407788 5482.190231 41.558277
+V 31 6078.309912 5223.688569 -29972.218685 .306469
+* 2004 3 1 16 0 .00000000
+P 1 23882.002966 -590.757515 -11464.417331 332.686518
+V 1 13515.227076 6316.653875 27388.392146 .014202
+P 3 22098.035936 11756.437855 -9306.276904 90.067456
+V 3 -12092.670936 786.311172 -27782.626736 .029746
+P 4 -5117.912369 -25865.637977 928.247782 -77.281847
+V 4 3272.844733 465.844901 31942.389916 -.092172
+P 5 -20981.915255 8083.377690 13880.962583 19.868341
+V 5 9852.499228 -15293.589969 23758.124508 .016265
+P 6 -18387.103107 8222.664251 -17192.063091 -1.413570
+V 6 -20938.084599 -7734.387381 18361.432357 -.008617
+P 7 -3561.751618 -16582.561935 20874.886137 611.302053
+V 7 25157.517312 5089.533700 8332.244907 -.078974
+P 8 836.996690 -24990.038390 -8668.721522 354.895752
+V 8 4887.721624 10028.635033 -29401.102457 -.089371
+P 9 -16036.602930 -2491.079001 20665.853372 -32.469606
+V 9 -6774.147485 -26336.554402 -7886.060913 -.018338
+P 10 -12915.621877 -7956.699684 -21876.356103 40.208475
+V 10 19938.117057 -19045.608820 -4582.599233 .006095
+P 11 16764.467311 -846.342362 20595.328282 100.034578
+V 11 8161.206010 25093.125006 -5473.694662 .025487
+P 13 14749.165437 -9532.499242 -19941.392829 -30.890271
+V 13 23897.973096 8049.591709 13931.472092 .002469
+P 14 4890.740682 15953.582777 20709.715782 -18.166661
+V 14 -25354.603742 -6419.536365 10970.834643 -.001172
+P 15 3235.355009 26186.854310 -1732.132385 233.283912
+V 15 -3065.817963 -1443.542851 -31972.303624 .052656
+P 16 8955.609922 12371.760468 -21659.641566 15.257940
+V 16 -20033.692767 19084.798920 2616.783749 -.003930
+P 17 -14745.870958 -10793.430577 -19359.478671 208.277329
+V 17 -2288.627822 -24595.043732 14596.162917 .195323
+P 18 -17352.744507 19445.369579 4518.692741 -15.577768
+V 18 -6171.672802 1666.645768 -31277.860603 -.026751
+P 20 21713.736302 -11415.534000 10111.279326 -183.959703
+V 20 -7561.135998 10767.591378 28206.223141 .027412
+P 21 -7604.637337 19699.558302 -15917.037238 73.116848
+V 21 -6162.850393 -19469.907620 -21606.622302 .005386
+P 22 -7418.739103 20522.010646 15334.375141 -39.658836
+V 22 -15762.271177 11062.283092 -22630.636492 .087169
+P 24 -11872.020022 -20753.931443 -11185.966944 8.312630
+V 24 -599.140845 -14831.723709 27501.342653 .030611
+P 25 9115.889707 24927.914319 -901.322473 61.758681
+V 25 -2657.612874 2567.170535 31338.391620 .007103
+P 26 -25549.355907 -8377.735497 -1082.704860 409.371125
+V 26 1473.684172 -1299.877760 -31734.976804 -.125166
+P 27 7766.077817 -17639.319320 -17574.073050 920.147781
+V 27 9030.069249 21810.704610 -17934.014822 .042310
+P 28 7653.690374 -21028.356220 14250.751993 21.949990
+V 28 14592.213447 -10640.479279 -24145.091121 .016138
+P 29 -23586.851384 -10483.284472 -6121.233721 230.134094
+V 29 8387.762976 -69.024502 -30810.662565 .032434
+P 30 -19031.165178 18399.584742 1102.670036 805.968491
+V 30 -1314.985677 -3626.782180 31383.046806 .142300
+P 31 26247.468439 4080.384286 2745.770584 41.586177
+V 31 3011.113354 4078.133643 -30750.391012 .306424
+* 2004 3 1 16 15 .00000000
+P 1 24974.328280 -94.024153 -8907.291686 332.688831
+V 1 10700.008445 4771.481826 29353.841709 .014343
+P 3 20877.109498 11829.978755 -11720.863926 90.071917
+V 3 -15007.637044 910.059927 -25799.060845 .030153
+P 4 -4780.737756 -25673.456050 3786.496531 -77.290693
+V 4 4284.050223 3777.572589 31481.202920 -.092169
+P 5 -20053.973071 6596.715744 15891.669037 19.869757
+V 5 10692.552309 -17725.407209 20859.034617 .016130
+P 6 -20190.096912 7594.481730 -15395.175462 -1.415171
+V 6 -19053.728637 -6250.708844 21510.423013 -.008777
+P 7 -1252.465222 -16174.187949 21449.754282 611.294455
+V 7 26082.605028 3956.059613 4424.720283 -.078988
+P 8 1335.373869 -23957.336125 -11231.825971 354.887326
+V 8 6237.408349 12863.090929 -27475.254983 -.089360
+P 9 -16689.783934 -4797.402044 19774.871676 -32.470071
+V 9 -7694.406400 -24838.030176 -11881.134106 -.018478
+P 10 -11157.481698 -9732.341495 -22100.562886 40.208054
+V 10 19062.166666 -20351.115330 -391.102594 .005922
+P 11 17535.380470 1362.855177 19927.160982 100.037080
+V 11 8926.911253 23930.618387 -9352.489012 .025482
+P 13 16844.340362 -8886.817206 -18519.764677 -30.889979
+V 13 22572.920891 6312.710968 17615.439056 .002473
+P 14 2546.641031 15427.062956 21516.822978 -18.166699
+V 14 -26654.824845 -5239.762667 6939.417626 -.001174
+P 15 2923.614579 25904.961673 -4586.190903 233.291454
+V 15 -3927.168191 -4792.435865 -31359.325766 .052738
+P 16 7212.244023 14120.783119 -21237.259184 15.257542
+V 16 -18651.976965 19709.912834 6755.885267 -.003934
+P 17 -14998.674419 -12917.863483 -17884.490129 208.294984
+V 17 -3281.296229 -22544.989549 18131.090913 .195352
+P 18 -17787.404427 19498.481368 1672.489947 -15.580195
+V 18 -3524.939962 -546.003738 -31879.115702 -.026744
+P 20 20962.686096 -10326.764779 12555.238053 -183.957328
+V 20 -9052.883995 13433.977912 26025.440266 .027416
+P 21 -8226.908884 17861.147119 -17717.341702 73.117397
+V 21 -7691.166475 -21303.719201 -18343.587840 .005405
+P 22 -8723.808253 21473.203924 13173.027336 -39.651177
+V 22 -13231.496149 9996.655340 -25331.716047 .087161
+P 24 -11928.628269 -21944.993697 -8620.113838 8.315164
+V 24 -588.031378 -11609.434702 29433.341042 .030496
+P 25 8827.310374 25015.561416 1918.801587 61.758150
+V 25 -3816.281299 -592.685502 31241.232341 .007235
+P 26 -25266.695659 -8458.477259 -3922.029169 409.359743
+V 26 4815.346365 -566.349253 -31274.252712 -.125158
+P 27 8654.499571 -15615.172168 -19023.617826 920.151741
+V 27 10717.803523 23080.915137 -14229.713686 .042321
+P 28 8854.096210 -21928.534640 11960.784601 21.951336
+V 28 12083.333842 -9284.571621 -26670.997356 .016134
+P 29 -22680.156876 -10477.513755 -8833.263649 230.136937
+V 29 11745.755487 124.690212 -29368.847477 .032422
+P 30 -19051.447661 17957.185789 3909.396101 805.981138
+V 30 809.141277 -6241.640106 30898.031869 .142289
+P 31 26374.723972 4409.416019 -37.181905 41.613557
+V 31 -199.909001 3296.829675 -31005.580638 .306367
+* 2004 3 1 16 30 .00000000
+P 1 25798.657417 277.975703 -6196.070220 332.690884
+V 1 7573.598561 3554.673140 30808.113612 .014406
+P 3 19403.552328 11930.958984 -13936.993597 90.074136
+V 3 -17693.141007 1390.306029 -23378.592075 .030302
+P 4 -4335.845616 -25191.996015 6578.295194 -77.299522
+V 4 5659.277665 6878.892710 30468.053908 -.092159
+P 5 -19070.804706 4897.403949 17624.654806 19.871327
+V 5 11081.584792 -20004.024401 17595.704126 .016001
+P 6 -21804.095756 7091.809622 -13331.575929 -1.415707
+V 6 -16747.252544 -4957.597380 24280.025280 -.008859
+P 7 1118.744568 -15874.582688 21669.058454 611.287108
+V 7 26529.118314 2685.704355 441.326013 -.078998
+P 8 1967.756393 -22686.056035 -13600.186229 354.878850
+V 8 7854.216134 15318.908215 -25080.300049 -.089342
+P 9 -17412.214265 -6949.046873 18534.125377 -32.472103
+V 9 -8302.376872 -22910.720999 -15647.189551 -.018714
+P 10 -9495.993740 -11607.704589 -21946.266842 40.208129
+V 10 17801.266459 -21250.543316 3816.622707 .005829
+P 11 18362.599553 3449.462915 18916.819472 100.039072
+V 11 9402.599720 22378.322968 -13066.750149 .025473
+P 13 18796.846532 -8392.368908 -16779.618377 -30.889867
+V 13 20733.653136 4703.690597 20999.413391 .002473
+P 14 108.227872 15016.594671 21955.272106 -18.166772
+V 14 -27443.762625 -3854.616865 2790.103884 -.001175
+P 15 2517.265707 25330.716061 -7360.527597 233.296539
+V 15 -5161.251261 -7924.963334 -30203.879272 .052452
+P 16 5607.125168 15905.797750 -20447.106942 15.257303
+V 16 -16974.880448 19877.344850 10777.566374 -.003935
+P 17 -15326.921706 -14840.084940 -16105.741453 208.312473
+V 17 -3955.014791 -20113.853977 21337.605785 .195377
+P 18 -17995.171051 19337.317192 -1202.868751 -15.582744
+V 18 -1142.372258 -3083.889385 -31924.722440 -.026735
+P 20 20098.187876 -8997.648627 14782.319084 -183.954939
+V 20 -10079.564999 16092.598408 23393.600839 .027423
+P 21 -8992.423690 15879.843649 -19209.620373 73.118296
+V 21 -9331.835574 -22639.643492 -14771.952357 .005425
+P 22 -9800.405188 22307.418801 10787.501987 -39.643125
+V 22 -10700.537935 8465.308774 -27605.160098 .087155
+P 24 -11964.903075 -22840.319111 -5903.563447 8.318541
+V 24 -145.479729 -8276.862004 30845.740112 .030398
+P 25 8418.576502 24827.342465 4706.072355 61.759615
+V 25 -5320.520730 -3549.138462 30610.135526 .007447
+P 26 -24682.626889 -8492.763749 -6696.617390 409.348770
+V 26 8155.881831 -268.393612 -30298.668958 -.125147
+P 27 9694.823932 -13501.122699 -20127.809866 920.155193
+V 27 12390.211048 23806.227492 -10271.859406 .042330
+P 28 9830.056136 -22685.709283 9463.617226 21.953439
+V 28 9619.856733 -7466.963616 -28742.334017 .016130
+P 29 -21476.883999 -10473.679545 -11392.188181 230.139605
+V 29 14961.575694 -108.937491 -27412.740864 .032411
+P 30 -18896.242239 17270.594700 6648.132593 805.993851
+V 30 2576.366389 -9039.337680 29873.913694 .142279
+P 31 26209.823311 4685.454187 -2819.536667 41.640468
+V 31 -3466.256270 2902.969381 -30737.810421 .306322
+* 2004 3 1 16 45 .00000000
+P 1 26330.876735 557.222109 -3377.869230 332.693899
+V 1 4224.145060 2717.450272 31728.096514 .014276
+P 3 17701.552068 12089.684707 -15917.102682 90.077402
+V 3 -20072.046248 2185.123392 -20561.414346 .030493
+P 4 -3752.685403 -24444.192772 9254.748957 -77.307720
+V 4 7346.754873 9682.706294 28921.988451 -.092147
+P 5 -18072.239071 3003.240057 19049.703555 19.872665
+V 5 11039.484159 -22041.255071 14026.154216 .015786
+P 6 -23193.767621 6694.325757 -11037.549893 -1.418366
+V 6 -14080.034911 -3923.676359 26623.929242 -.008894
+P 7 3507.834095 -15692.423909 21528.821958 611.280258
+V 7 26478.106498 1359.990361 -3554.420137 -.079009
+P 8 2754.936518 -21213.137244 -15733.543601 354.870320
+V 8 9664.166748 17335.136478 -22261.030384 -.089320
+P 9 -18173.123829 -8910.715469 16967.217815 -32.474304
+V 9 -8541.264307 -20629.890305 -19118.794902 -.018867
+P 10 -7962.647196 -13543.463900 -21415.242930 40.208594
+V 10 16227.603026 -21684.658447 7968.620530 .005776
+P 11 19217.540757 5381.121419 17581.981118 100.041612
+V 11 9535.147888 20498.627814 -16553.313976 .025460
+P 13 20562.320924 -8033.749716 -14750.638952 -30.890018
+V 13 18425.705799 3307.776238 24024.626130 .002474
+P 14 -2376.943879 14736.777522 22017.627064 -18.167095
+V 14 -27690.233498 -2351.433917 -1406.337047 -.001175
+P 15 1984.887760 24487.571694 -10007.316785 233.300491
+V 15 -6718.224745 -10754.455933 -28529.642460 .052109
+P 16 4163.104362 17683.904775 -19302.923363 15.256873
+V 16 -15086.697914 19552.032734 14611.823243 -.003936
+P 17 -15699.384273 -16529.304998 -14055.058592 208.330134
+V 17 -4256.170595 -17381.252003 24166.443059 .195398
+P 18 -18003.073086 18935.821468 -4057.244060 -15.585158
+V 18 905.976848 -5873.374603 -31413.458959 -.026723
+P 20 19162.528893 -7433.227867 16753.902116 -183.952413
+V 20 -10634.722672 18646.906128 20355.859496 .027422
+P 21 -9907.390504 13801.703777 -20368.959150 73.118850
+V 21 -10997.473234 -23453.112041 -10955.962572 .005441
+P 22 -10652.634410 22983.698275 8218.124738 -39.635122
+V 22 -8260.367160 6492.507049 -29411.309169 .087150
+P 24 -11941.812161 -23434.606396 -3084.127015 8.320920
+V 24 729.845510 -4936.809702 31716.928439 .030207
+P 25 7860.746479 24385.203991 7413.057332 61.760478
+V 25 -7119.986736 -6223.080533 29460.360823 .007710
+P 26 -23801.499249 -8519.760029 -9360.854273 409.338119
+V 26 11401.096619 -402.238374 -28825.470692 -.125142
+P 27 10881.498150 -11346.516919 -20867.229963 920.158969
+V 27 13954.734023 23983.384164 -6136.690281 .042343
+P 28 10589.727981 -23259.776837 6801.988652 21.954953
+V 28 7291.391413 -5222.906368 -30319.818976 .016121
+P 29 -19994.297572 -10509.122962 -13753.055223 230.141968
+V 29 17936.826998 -741.979189 -24973.541459 .032402
+P 30 -18599.696607 16327.245499 9270.979304 806.006763
+V 30 3944.340900 -11932.140118 28326.092182 .142270
+P 31 25751.845783 4943.781362 -5554.539407 41.667393
+V 31 -6697.720553 2902.896855 -29955.363743 .306280
+* 2004 3 1 17 0 .00000000
+P 1 26555.192297 779.545474 -501.460105 332.694532
+V 1 747.795532 2293.893034 32100.150960 .013865
+P 3 15801.808969 12332.067478 -17627.540251 90.080368
+V 3 -22077.200112 3239.099192 -17394.166971 .030639
+P 4 -3006.041112 -23460.299476 11769.121106 -77.316139
+V 4 9280.116235 12114.000734 26871.825912 -.092134
+P 5 -17095.540946 939.658640 20142.077122 19.873428
+V 5 10603.123515 -23756.144625 10213.902275 .015616
+P 6 -24329.885978 6376.068450 -8553.201893 -1.418971
+V 6 -11125.936853 -3205.239464 28503.677808 -.008800
+P 7 5869.777811 -15628.936531 21030.813440 611.273565
+V 7 25926.778064 62.500209 -7498.491599 -.079018
+P 8 3710.613986 -19580.263182 -17595.983282 354.861761
+V 8 11584.168143 18867.584119 -19069.007608 -.089291
+P 9 -18937.311744 -10654.397717 15103.341533 -32.476646
+V 9 -8369.716162 -18081.648075 -22237.347505 -.019041
+P 10 -6581.925791 -15495.672952 -20515.738877 40.209635
+V 10 14424.163560 -21610.365979 11993.211485 .005715
+P 11 20067.419723 7131.563423 15945.830909 100.043783
+V 11 9284.651259 18364.085010 -19753.118981 .025453
+P 13 22101.268110 -7788.299672 -12467.538749 -30.889770
+V 13 15711.388785 2200.409466 26638.295968 .002475
+P 14 -4859.344412 14594.127281 21702.863506 -18.167143
+V 14 -27381.674539 -821.920460 -5578.387703 -.001173
+P 15 1300.216590 23406.250734 -12481.267116 233.303436
+V 15 -8533.748104 -13206.555886 -26369.130145 .051854
+P 16 2895.138356 19409.850824 -17824.605586 15.256048
+V 16 -13077.973706 18716.923357 18192.006526 -.003935
+P 17 -16080.696093 -17962.303272 -11768.384257 208.347903
+V 17 -4146.687344 -14435.246181 26575.443676 .195419
+P 18 -17843.797250 18275.109181 -6840.842270 -15.587582
+V 18 2564.831035 -8829.261465 -30354.217605 -.026713
+P 20 18197.734530 -5647.185138 18435.761567 -183.949810
+V 20 -10730.594822 21002.064014 16964.581654 .027433
+P 21 -10970.032157 11674.145390 -21176.393280 73.119293
+V 21 -12598.603716 -23738.473405 -6963.362472 .005457
+P 22 -11292.572964 23464.060892 5508.457570 -39.626884
+V 22 -5996.620605 4119.940654 -30718.016498 .087145
+P 24 -11821.054365 -23731.758742 -211.110476 8.322022
+V 24 2020.441377 -1690.361312 32035.312525 .030099
+P 25 7130.010412 23717.691168 9994.077352 61.761822
+V 25 -9151.373665 -8547.395396 27815.509790 .007882
+P 26 -22636.035276 -8577.499154 -11870.995210 409.326199
+V 26 14459.644162 -946.598458 -26878.927257 -.125141
+P 27 12200.750339 -9200.048436 -21229.471898 920.163114
+V 27 15321.961234 23630.042494 -1903.485000 .042356
+P 28 11149.046529 -23614.607070 4021.800640 21.956299
+V 28 5180.571200 -2605.203493 -31372.590816 .016119
+P 29 -18258.212687 -10617.867504 -15874.133024 230.145610
+V 29 20580.521539 -1728.867947 -22091.536316 .032391
+P 30 -18199.020522 15122.768864 11731.862186 806.019763
+V 30 4887.601352 -14826.209171 26279.690912 .142259
+P 31 25007.946642 5219.491071 -8196.539341 41.695177
+V 31 -9805.568717 3286.119763 -28674.411019 .306254
+* 2004 3 1 17 15 .00000000
+P 1 26464.687897 983.023937 2383.588282 332.696585
+V 1 -2754.935190 2299.730350 31920.193833 .013691
+P 3 13740.525508 12678.503823 -19039.117656 90.082793
+V 3 -23653.852446 4485.486967 -13929.251800 .030792
+P 4 -2077.226112 -22276.668752 14077.684526 -77.324422
+V 4 11381.128173 14112.664074 24355.500807 -.092123
+P 5 -16173.951813 -1261.067567 20882.955064 19.874883
+V 5 9824.706393 -25078.193970 6226.721725 .015499
+P 6 -25190.328754 6106.647381 -5921.723667 -1.420184
+V 6 -7968.470856 -2844.096010 29889.198008 -.008617
+P 7 8160.035512 -15677.846847 20182.557199 611.265973
+V 7 24888.697742 -1124.233533 -11327.146175 -.079033
+P 8 4840.725835 -17832.286381 -19156.494868 354.853270
+V 8 13525.388063 19890.186828 -15561.470378 -.089256
+P 9 -19666.610300 -12160.186631 12976.621519 -32.479405
+V 9 -7763.348866 -15359.331057 -24951.968713 -.019149
+P 10 -5370.477825 -17417.306863 -19262.394697 40.210562
+V 10 12481.512914 -21002.615850 15820.233405 .005704
+P 11 20876.518978 8681.404617 14036.648701 100.046339
+V 11 8626.060413 16054.604897 -22612.158540 .025440
+P 13 23380.473239 -7627.126124 -9969.474615 -30.889968
+V 13 12667.534920 1444.183187 28794.588991 .002475
+P 14 -7289.172078 14586.846019 21016.383064 -18.167293
+V 14 -26524.629363 641.496137 -9654.962507 -.001176
+P 15 443.332260 22123.513549 -14740.381037 233.308864
+V 15 -10531.665259 -15221.822569 -23762.876632 .051771
+P 16 1809.889020 21037.690295 -16037.853221 15.255649
+V 16 -11041.878448 17373.756582 21456.013763 -.003932
+P 17 -16432.811423 -19124.042410 -9285.124329 208.365598
+V 17 -3605.242998 -11369.061876 28529.844686 .195445
+P 18 -17554.258810 17344.361582 -9505.119881 -15.589755
+V 18 3795.794002 -11858.079111 -28765.844081 -.026703
+P 20 17243.907098 -3661.522615 19798.675613 -183.947238
+V 20 -10397.518634 23068.633738 13278.434244 .027439
+P 21 -12170.560321 9544.244396 -21619.163578 73.119505
+V 21 -14047.273746 -23508.901879 -2864.094142 .005474
+P 22 -11739.642308 23715.013547 2704.593776 -39.619208
+V 22 -3986.350017 1405.382059 -31501.273078 .087137
+P 24 -11566.723058 -23744.554692 2665.586773 8.325024
+V 24 3690.798064 1366.955090 31799.273226 .030197
+P 25 6208.745679 22858.765212 12405.928534 61.764656
+V 25 -11340.945244 -10469.164516 25706.871480 .008009
+P 26 -21206.934899 -8701.341014 -14185.783059 409.315045
+V 26 17246.092518 -1863.546571 -24489.986543 -.125139
+P 27 13631.052082 -7107.916750 -21209.327487 920.166770
+V 27 16409.566649 22783.716750 2347.406026 .042365
+P 28 11530.943570 -23719.547968 1171.323136 21.957857
+V 28 3359.723920 317.565414 -31879.004144 .016114
+P 29 -16302.164275 -10829.104505 -17717.704063 230.148407
+V 29 22812.665136 -3008.138604 -18815.530928 .032380
+P 30 -17732.915918 13661.380270 13987.390901 806.032787
+V 30 5398.560857 -17625.236603 23769.164053 .142244
+P 31 23993.084989 5545.995609 -10701.679512 41.722687
+V 31 -12705.612092 4025.919414 -26918.565671 .306226
+* 2004 3 1 17 30 .00000000
+P 1 26061.549366 1206.304846 5227.766925 332.696482
+V 1 -6182.923592 2731.864788 31193.610257 .013451
+P 3 11558.197494 13142.968394 -20127.593389 90.085928
+V 3 -24761.635507 5848.785724 -10224.069693 .030960
+P 4 -955.010228 -20934.308453 16140.505298 -77.332526
+V 4 13562.891421 15635.664092 21419.216710 -.092108
+P 5 -15335.408092 -3560.898192 21259.758885 19.876640
+V 5 8769.494337 -25950.156861 2135.324865 .015368
+P 6 -25760.806655 5852.621926 -3188.622044 -1.421208
+V 6 -4697.638030 -2866.014591 30759.162618 -.008390
+P 7 10336.012875 -15825.617233 18997.270785 611.258870
+V 7 23393.438998 -2121.835573 -14977.749149 -.079043
+P 8 6143.088229 -16015.562406 -20389.432448 354.845066
+V 8 15396.790451 20395.655871 -11800.200028 -.089215
+P 9 -20321.453241 -13416.758847 10625.389002 -32.480601
+V 9 -6715.536834 -12559.712832 -27220.153282 -.018994
+P 10 -4336.592085 -19259.947308 -17676.049425 40.210652
+V 10 10494.240269 -19855.639198 19382.303280 .005554
+P 11 21607.577212 10018.669673 11887.314905 100.048705
+V 11 7550.244627 13654.395897 -25082.339599 .025431
+P 13 24374.186023 -7516.379045 -7299.383467 -30.889681
+V 13 9382.677921 1086.289953 30455.469195 .002476
+P 14 -9618.068063 14704.922985 19969.921631 -18.167583
+V 14 -25144.519808 1949.343284 -13566.579421 -.001177
+P 15 -598.414444 20680.722291 -16746.635558 233.312737
+V 15 -12627.105433 -16757.708001 -20758.509380 .051678
+P 16 905.653914 22522.484374 -13973.708726 15.255495
+V 16 -9070.496761 15543.111204 24347.392700 -.003926
+P 17 -16716.544031 -20007.981681 -6647.473898 208.383090
+V 17 -2627.862224 -8277.727151 30002.445093 .195470
+P 18 -17174.013485 16141.409276 -12003.664285 -15.592426
+V 18 4578.758720 -14861.716527 -26676.766987 -.026696
+P 20 16337.650656 -1505.916837 20818.947751 -183.944528
+V 20 -9682.620087 24766.070986 9361.354022 .027451
+P 21 -13491.471250 7457.071767 -21690.856566 73.120236
+V 21 -15260.548443 -22795.584089 1270.977979 .005495
+P 22 -12019.700177 23708.914742 -145.598539 -39.611677
+V 22 -2295.071694 -1579.282026 -31745.723742 .087130
+P 24 -11146.862722 -23493.986328 5496.360004 8.328616
+V 24 5688.933492 4148.701232 31016.921645 .030234
+P 25 5086.328890 21846.447541 14608.541898 61.764663
+V 25 -13607.398443 -11951.302495 23172.695231 .007919
+P 26 -19542.212370 -8922.534169 -16267.032655 409.304265
+V 26 19683.789472 -3099.925608 -21695.902309 -.125130
+P 27 15143.919641 -5112.121229 -20808.795657 920.170791
+V 27 17145.864932 21499.838031 6536.489156 .042372
+P 28 11764.284157 -23550.739835 -1699.664763 21.959351
+V 28 1887.918593 3463.501614 -31827.256440 .016112
+P 29 -14166.270297 -11165.866597 -19250.798218 230.150792
+V 29 24567.455094 -4504.853633 -15202.070817 .032376
+P 30 -17239.948990 11955.932395 15997.678016 806.045551
+V 30 5487.808395 -20234.226173 20837.788812 .142229
+P 31 22729.484101 5953.614249 -13028.544587 41.750126
+V 31 -15321.068190 5080.519324 -24718.385762 .306210
+* 2004 3 1 17 45 .00000000
+P 1 25356.950455 1486.916665 7982.468806 332.695766
+V 1 -9438.175250 3568.633855 29935.005238 .013522
+P 3 9298.249452 13732.355148 -20874.085760 90.086748
+V 3 -25376.033597 7247.656808 -6340.180854 .031142
+P 4 363.757540 -19477.273134 17922.142799 -77.340862
+V 4 15733.377135 16658.509081 18116.442371 -.092093
+P 5 -14601.487988 -5917.323981 21266.355501 19.878641
+V 5 7513.017592 -26330.297087 -1987.997914 .015245
+P 6 -26035.296706 5578.990768 -400.921777 -1.420231
+V 6 -1406.562419 -3279.812150 31101.186528 -.008101
+P 7 12358.466124 -16051.956749 17493.727055 611.252164
+V 7 21485.691178 -2859.095291 -18389.629560 -.079049
+P 8 7607.358617 -14176.257942 -21274.871778 354.836716
+V 8 17108.694558 20395.406335 -7850.371986 -.089170
+P 9 -20862.481853 -14421.512651 8091.407508 -32.482488
+V 9 -5237.467044 -9779.209973 -29008.183513 -.018934
+P 10 -3480.003499 -20975.546145 -15783.434214 40.211620
+V 10 8557.208065 -18183.451550 22616.076431 .005466
+P 11 22223.247087 11139.035693 9534.743474 100.051104
+V 11 6064.446972 11248.764999 -27122.237563 .025423
+P 13 25065.028923 -7418.729835 -4503.246953 -30.889405
+V 13 5953.764658 1156.567725 31591.420491 .002478
+P 14 -11800.778592 14930.562185 18581.353171 -18.167513
+V 14 -23284.711914 3018.665365 -17246.507244 -.001179
+P 15 -1829.768414 19122.257246 -18466.575910 233.317636
+V 15 -14729.868315 -17789.846539 -17409.744675 .051549
+P 16 172.629400 23821.970835 -11668.003316 15.254861
+V 16 -7251.174652 13263.712335 26816.334084 -.003922
+P 17 -16893.131930 -20616.088930 -3899.733136 208.400758
+V 17 -1227.894480 -5254.747768 30973.669472 .195494
+P 18 -16743.576063 14672.978636 -14293.032014 -15.594835
+V 18 4912.564642 -17741.245742 -24124.427785 -.026687
+P 20 15510.644192 783.227022 21478.830710 -183.942058
+V 20 -8647.838145 26025.887099 5281.412857 .027466
+P 21 -14908.145827 5454.134340 -21391.431816 73.120780
+V 21 -16163.757065 -21646.237579 5371.294577 .005513
+P 22 -12163.884818 23425.135007 -2993.273909 -39.603678
+V 22 -974.231931 -4750.580001 -31445.058507 .087122
+P 24 -10534.858669 -23008.297908 8232.757176 8.330043
+V 24 7948.550712 6580.630875 29705.678458 .030201
+P 25 3759.679336 20721.343856 16565.575118 61.765293
+V 25 -15864.947715 -12973.586225 20257.413748 .007895
+P 26 -17676.287471 -9266.927642 -18080.180474 409.292106
+V 26 21707.444984 -4589.260757 -18539.831970 -.125119
+P 27 16705.011578 -3248.964857 -20036.922629 920.174765
+V 27 17472.818487 19849.056931 10586.940544 .042375
+P 28 11882.559174 -23092.180813 -4540.781528 21.960548
+V 28 808.525045 6740.437149 -31215.816192 .016112
+P 29 -11895.830095 -11643.947187 -20445.846779 230.154643
+V 29 25795.945076 -6133.626770 -11314.462622 .032370
+P 30 -16756.929575 10027.626700 17727.100530 806.058126
+V 30 5183.645096 -22563.265160 17536.911317 .142216
+P 31 21245.846791 6468.289802 -15138.761848 41.777657
+V 31 -17585.129490 6394.759129 -22110.833947 .306193
+* 2004 3 1 18 0 .00000000
+P 1 24370.608586 1859.636756 10600.801992 332.695321
+V 1 -12429.400706 4770.783717 28167.809855 .013896
+P 3 7005.562868 14446.092517 -21265.406767 90.090540
+V 3 -25489.286684 8598.078092 -2342.393984 .031353
+P 4 1873.853800 -17950.958328 19392.253591 -77.349600
+V 4 17799.142474 17175.941727 14506.783186 -.092084
+P 5 -13986.628155 -8284.840949 20903.137519 19.879760
+V 5 6137.890460 -26194.016626 -6070.749224 .014936
+P 6 -26016.168706 5250.733575 2393.642145 -1.421485
+V 6 1811.945730 -4077.109001 30911.865864 -.008086
+P 7 14192.802254 -16330.594220 15696.037641 611.244778
+V 7 19223.834994 -3274.775446 -21504.969823 -.079051
+P 8 9215.314202 -12358.696831 -21798.864334 354.828545
+V 8 18576.223426 19918.792383 -3779.416636 -.089122
+P 9 -21252.124136 -15180.370178 5419.071545 -32.483784
+V 9 -3357.494465 -7110.237012 -30291.326977 -.018847
+P 10 -2792.039860 -22518.199819 -13616.753247 40.212200
+V 10 6761.748921 -16019.585147 25463.475259 .005314
+P 11 22687.566030 12045.785915 7019.251960 100.053674
+V 11 4192.117455 8920.898734 -28697.738899 .025417
+P 13 25444.593108 -7294.995930 -1629.297595 -30.888915
+V 13 2482.527156 1666.225236 32182.022611 .002481
+P 14 -13796.702510 15238.920433 16874.391971 -18.167874
+V 14 -21004.910271 3776.338761 -20631.872460 -.001182
+P 15 -3247.248898 17493.849048 -19871.816409 233.322746
+V 15 -16747.955616 -18312.632783 -13775.334244 .051491
+P 16 -406.505680 24898.139272 -9160.719193 15.254337
+V 16 -5663.072003 10591.029688 28820.535156 -.003919
+P 17 -16925.773486 -20958.558699 -1087.621250 208.418766
+V 17 564.594758 -2388.918007 31431.550612 .195514
+P 18 -16302.714746 12954.591541 -16333.527300 -15.596929
+V 18 4814.878692 -20400.775263 -21154.527502 -.026678
+P 20 14788.419747 3163.985601 21766.844423 -183.939264
+V 20 -7367.361583 26794.350011 1109.601818 .027485
+P 21 -16389.726049 3571.976197 -20727.141721 73.121414
+V 21 -16693.372370 -20123.038377 9367.761207 .005525
+P 22 -12207.253791 22850.967534 -5789.435981 -39.595856
+V 22 -59.192848 -8016.458661 -30602.263762 .087113
+P 24 -9710.608465 -22321.768857 10828.292150 8.332098
+V 24 10391.712673 8603.253112 27891.703723 .030313
+P 25 2233.519176 19525.103447 18244.932861 61.764850
+V 25 -18026.516470 -13533.064626 17010.835590 .007904
+P 26 -15648.859825 -9753.875362 -19594.796564 409.281084
+V 26 23265.356765 -6254.118561 -15070.398904 -.125110
+P 27 18275.467439 -1547.828882 -18909.486530 920.178459
+V 27 17348.369794 17913.950200 14426.240996 .042376
+P 28 11922.385872 -22336.495558 -7301.978543 21.962174
+V 28 147.404693 10049.459196 -30053.627407 .016115
+P 29 -9539.711709 -12271.114609 -21281.239904 230.157489
+V 29 26468.050546 -7802.125749 -7221.611023 .032362
+P 30 -16317.365944 7905.391925 19144.984897 806.071012
+V 30 4530.876418 -24531.126547 13925.000153 .142201
+P 31 19576.355543 7110.476198 -16997.552054 41.804706
+V 31 -19443.166229 7902.209457 -19138.704690 .306167
+* 2004 3 1 18 15 .00000000
+P 1 23130.030992 2354.977040 13038.361354 332.697333
+V 1 -15075.298924 6283.104978 25923.758315 .014604
+P 3 4724.950066 15276.049036 -21294.310994 90.092384
+V 3 -25110.690166 9816.625450 1702.209866 .031525
+P 4 3561.722110 -16400.367517 20526.089436 -77.357114
+V 4 19669.067897 17201.852801 10654.762798 -.092073
+P 5 -13497.639672 -10616.540392 20176.980872 19.879688
+V 5 4730.367931 -25534.794412 -10041.574097 .014709
+P 6 -25714.004062 4834.344872 5147.429041 -1.422108
+V 6 4868.767928 -5232.744564 30196.670658 -.007963
+P 7 15810.228164 -16630.291439 13633.354978 611.237707
+V 7 16678.015776 -3320.123388 -24269.724951 -.079046
+P 8 10941.431160 -10603.804296 -21953.590001 354.820531
+V 8 19722.519609 19011.700012 344.091623 -.089076
+P 9 -21456.086726 -15707.263338 2654.596309 -32.484996
+V 9 -1119.859919 -4637.843687 -31053.843074 -.018777
+P 10 -2256.107443 -23845.864598 -11213.156572 40.212564
+V 10 5191.963796 -13416.043412 27872.857293 .005143
+P 11 22967.384288 12749.477323 4383.879040 100.055833
+V 11 1972.133479 6748.743946 -29782.564641 .025412
+P 13 25513.697828 -7105.847360 1272.819759 -30.888466
+V 13 -928.344783 2607.302739 32216.365724 .002480
+P 14 -15571.266226 15599.127878 14878.197700 -18.167876
+V 14 -18378.939246 4162.014519 -23664.709668 -.001188
+P 15 -4839.147484 15840.890936 -20939.445266 233.324946
+V 15 -18591.112951 -18339.089821 -9917.988265 .051314
+P 16 -855.710433 25718.650341 -6495.280502 15.253960
+V 16 -4374.056405 7595.224823 30325.918134 -.003921
+P 17 -16781.083808 -21053.252819 1742.405088 208.436482
+V 17 2703.978600 238.642855 31371.649908 .195533
+P 18 -15888.790876 11010.122987 -18089.905386 -15.599067
+V 18 4321.310005 -22751.173131 -17820.111710 -.026675
+P 20 14189.393908 5590.345985 21677.981788 -183.936598
+V 20 -5924.580554 27034.615748 -3081.442158 .027504
+P 21 -17900.230456 1840.989654 -19710.350507 73.122116
+V 21 -16799.426751 -18300.052495 13193.826122 .005536
+P 22 -12187.268220 21982.251120 -8485.779769 -39.587947
+V 22 432.175467 -11279.655896 -29229.719595 .087101
+P 24 -8661.433798 -21473.293396 13239.200919 8.333697
+V 24 12931.914225 10173.777390 25609.205345 .030578
+P 25 520.345720 18298.869318 19619.213643 61.764805
+V 25 -20006.925915 -13643.855788 13487.321931 .008037
+P 26 -13503.601526 -10395.370698 -20785.055161 409.269992
+V 26 24321.211628 -8008.850080 -11341.210441 -.125104
+P 27 19813.422742 -30.263826 -17448.544717 920.182483
+V 27 16748.017109 15785.315389 17987.585663 .042376
+P 28 11921.877555 -21285.370756 -9934.483101 21.963336
+V 28 -88.175195 13288.763311 -28360.072751 .016121
+P 29 -7148.592236 -13046.657732 -21741.772009 230.160600
+V 29 26573.795187 -9414.909237 -2996.695991 .032352
+P 30 -15950.060275 5624.952068 20226.198717 806.084143
+V 30 3588.904053 -26068.541680 10066.522672 .142180
+P 31 17759.493200 7894.233517 -18574.227482 41.831502
+V 31 -20854.502422 9527.654471 -15850.024046 .306163
+* 2004 3 1 18 30 .00000000
+P 1 21669.482917 2997.844022 15253.948044 332.697670
+V 1 -17307.432768 8036.657493 23242.252822 .015067
+P 3 2499.629033 16206.735678 -20959.653992 90.096202
+V 3 -24266.272487 10823.764828 5725.311478 .031765
+P 4 5405.845871 -14868.421318 21304.882908 -77.365731
+V 4 21257.962664 16768.435554 6628.549387 -.092064
+P 5 -13133.540155 -12865.751119 19101.083093 19.881077
+V 5 3376.788588 -24364.405798 -13831.558067 .014728
+P 6 -25147.117903 4299.301768 7813.681281 -1.422523
+V 6 7681.673580 -6705.824504 28969.703661 -.007882
+P 7 17188.705464 -16916.065369 11339.490573 611.230508
+V 7 13927.760786 -2960.988553 -26634.562801 -.079046
+P 8 12753.738701 -8947.704178 -21737.411574 354.812346
+V 8 20481.620353 17734.567241 4451.503283 -.089032
+P 9 -21444.705734 -16023.334033 -154.785687 -32.487132
+V 9 1417.148027 -2436.745012 -31288.827478 -.018758
+P 10 -1848.499425 -24921.943554 -8614.111727 40.211860
+V 10 3921.275794 -10441.503394 29800.090590 .004966
+P 11 23033.696340 13267.336340 1673.660505 100.057942
+V 11 -542.561014 4802.103091 -30358.669500 .025401
+P 13 25282.301981 -6813.527634 4152.916071 -30.888246
+V 13 -4179.079618 3952.894712 31693.291806 .002478
+P 14 -17097.074349 15975.552364 12626.889058 -18.167886
+V 14 -15491.992299 4130.576623 -26292.939725 -.001193
+P 15 -6585.840436 14206.793855 -21652.332230 233.329612
+V 15 -20174.252747 -17900.055359 -5903.296043 .051388
+P 16 -1204.442780 26258.044018 -3717.786597 15.253521
+V 16 -3438.059784 4358.531445 31307.191547 -.003921
+P 17 -16430.424581 -20924.887455 4543.823921 208.453784
+V 17 5130.717356 2557.149718 30796.930924 .195545
+P 18 -15535.211330 8871.035274 -19531.987143 -15.601493
+V 18 3483.801774 -24713.506611 -14180.519368 -.026668
+P 20 13724.190975 8013.797241 21213.798188 -183.934023
+V 20 -4408.674959 26728.204597 -7218.741912 .027517
+P 21 -19399.863251 284.475726 -18359.260281 73.122900
+V 21 -16447.389631 -16260.279369 16786.466835 .005548
+P 22 -12142.180182 20823.677422 -11035.535301 -39.579882
+V 22 500.230198 -14441.320018 -27349.131649 .087091
+P 24 -7382.702807 -20504.814958 15425.131180 8.338037
+V 24 15477.422701 11267.389118 22899.653828 .030925
+P 25 -1359.879260 17081.773264 20666.082288 61.766083
+V 25 -21725.977349 -13336.356118 9744.958077 .008166
+P 26 -11286.708993 -11195.442478 -21630.159521 409.258628
+V 26 24855.403058 -9762.645152 -7410.320462 -.125098
+P 27 21275.630194 1290.574696 -15681.865532 920.186463
+V 27 15665.597130 13558.246326 21211.038889 .042372
+P 28 11918.950497 -19949.635192 -12391.726852 21.964458
+V 28 90.156407 16357.669798 -26164.686439 .016125
+P 29 -4773.122792 -13961.285822 -21818.962097 230.163301
+V 29 26123.731975 -10877.433281 1284.277602 .032338
+P 30 -15677.904548 3227.620183 20951.634345 806.096971
+V 30 2429.195828 -27120.997440 6030.672015 .142162
+P 31 15836.724856 8826.560022 -19842.634806 41.858592
+V 31 -21793.716874 11189.861749 -12297.423854 .306165
+* 2004 3 1 18 45 .00000000
+P 1 20028.719101 3806.422166 17210.227400 332.699626
+V 1 -19072.599129 9951.492316 20169.633045 .015663
+P 3 369.755256 17215.800452 -20266.455304 90.099058
+V 3 -22997.853188 11547.034963 9658.436474 .031928
+P 4 7377.434367 -13394.375091 21716.117125 -77.374136
+V 4 22489.895953 15924.633011 2498.659439 -.092054
+P 5 -12885.705609 -14987.668987 17694.688083 19.881638
+V 5 2160.050428 -22712.423574 -17375.447525 .014786
+P 6 -24340.805984 3619.410866 10347.285817 -1.422174
+V 6 10178.222009 -8441.348359 27253.338869 -.007896
+P 7 18313.672642 -17150.579783 8852.448206 611.222900
+V 7 11059.204668 -2179.455776 -28555.811392 -.079041
+P 8 14614.913087 -7420.516963 -21154.835318 354.804100
+V 8 20800.901135 16159.917129 8475.111221 -.088989
+P 9 -21194.110674 -16155.888082 -2961.607820 -32.489027
+V 9 4183.491731 -568.830263 -30997.924858 -.018702
+P 10 -1539.497377 -25716.680009 -5864.684019 40.212556
+V 10 3009.388083 -7178.825627 31209.504387 .004736
+P 11 22862.825568 13622.406779 -1065.124945 100.059848
+V 11 -3286.845603 3140.050269 -30416.512784 .025397
+P 13 24769.070433 -6383.520331 6961.139846 -30.888321
+V 13 -7176.594409 5658.130133 30621.454513 .002478
+P 14 -18354.792547 16329.259604 10158.973236 -18.167567
+V 14 -12437.450569 3654.021013 -28471.259984 -.001199
+P 15 -8460.399245 12631.443713 -21999.339630 233.334176
+V 15 -21420.639611 -17042.735443 -1798.661169 .051571
+P 16 -1486.307131 26498.690488 -876.202207 15.252999
+V 16 -2892.999584 972.174980 31748.246049 -.003919
+P 17 -15851.065524 -20603.997087 7270.707163 208.471383
+V 17 7773.440798 4508.438889 29717.597712 .195554
+P 18 -15270.055489 6575.320635 -20635.174031 -15.603828
+V 18 2368.374208 -26222.060150 -10300.223953 -.026660
+P 20 13395.284434 10385.022980 20382.383023 -183.931378
+V 20 -2910.976597 25875.762516 -11230.292158 .027534
+P 21 -20846.466060 -1082.016197 -16697.552613 73.123737
+V 21 -15619.452789 -14092.423508 20087.080203 .005563
+P 22 -12109.385863 19388.766584 -13394.297338 -39.572256
+V 22 163.576895 -17404.736649 -24991.288643 .087082
+P 24 -5878.144595 -19459.676916 17349.757992 8.341431
+V 24 17934.755833 11877.832305 19810.928963 .031090
+P 25 -3380.309175 15909.527153 21368.567846 61.767536
+V 25 -23111.331950 -12655.901510 5844.726168 .008321
+P 26 -9045.359952 -12149.836807 -22114.715440 409.247534
+V 26 24865.814502 -11422.814691 -3339.624215 -.125089
+P 27 22619.115760 2410.134229 -13642.268132 920.190495
+V 27 14113.281191 11328.178239 24044.421569 .042369
+P 28 11949.639948 -18348.977657 -14630.237150 21.965640
+V 28 652.379127 19160.625644 -23506.617963 .016130
+P 29 -2462.093927 -14997.390006 -21511.239233 230.166131
+V 29 25148.510594 -12100.050914 5544.019594 .032327
+P 30 -15516.928174 758.866632 21308.572457 806.109646
+V 30 1132.242100 -27650.932885 1889.978752 .142139
+P 31 13851.085435 9906.983193 -20781.540461 41.886225
+V 31 -22251.433520 12804.553758 -8537.489230 .306166
+* 2004 3 1 19 0 .00000000
+P 1 18251.527652 4791.320655 18874.317401 332.699547
+V 1 -20334.616925 11939.764117 16758.366144 .016329
+P 3 -1628.934631 18274.800032 -19225.862244 90.103120
+V 3 -21361.505729 11924.001187 13434.075566 .032185
+P 4 9441.391478 -12012.405224 21753.678936 -77.382407
+V 4 23301.127648 14733.957483 -1663.331227 -.092033
+P 5 -12738.332627 -16940.910243 15982.705408 19.883621
+V 5 1156.261374 -20625.031106 -20612.769750 .014951
+P 6 -23326.347383 2773.985113 12705.498287 -1.422761
+V 6 12298.272098 -10372.348174 25077.753520 -.008022
+P 7 19178.502913 -17295.659032 6213.872275 611.215683
+V 7 8162.005258 -974.913634 -29996.393572 -.079022
+P 8 16483.569331 -6045.398164 -20216.382491 354.795563
+V 8 20643.014375 14369.500501 12349.111264 -.088943
+P 9 -20687.164657 -16137.148902 -5718.921906 -32.490486
+V 9 7100.040134 918.787537 -30190.939422 -.018453
+P 10 -1294.722928 -26208.299086 -3012.737954 40.213722
+V 10 2499.781001 -3721.963154 32074.684342 .004684
+P 11 22437.417588 13842.483249 -3785.728408 100.062021
+V 11 -6185.771806 1808.762132 -29955.198743 .025400
+P 13 24000.611469 -5786.094611 9648.855938 -30.888063
+V 13 -9838.008109 7661.874707 29019.193627 .002491
+P 14 -19333.729079 16619.613535 7516.699782 -18.167093
+V 14 -9313.388654 2722.681351 -30161.931465 -.001208
+P 15 -10429.473184 11149.814764 -21975.438716 233.338872
+V 15 -22264.733205 -15828.694053 2327.736369 .051738
+P 16 -1737.543407 26431.447644 1980.480403 15.252750
+V 16 -2759.342589 -2467.044839 31642.380183 -.003913
+P 17 -15027.141419 -20125.711542 9878.363901 208.488146
+V 17 10551.396973 6048.826576 28150.905309 .195573
+P 18 -15114.930880 4166.195730 -21380.855018 -15.606041
+V 18 1052.318945 -27226.813592 -6247.596772 -.026651
+P 20 13196.970548 12655.629027 19198.213829 -183.928964
+V 20 -1521.251299 24497.077351 -15046.352011 .027555
+P 21 -22197.057483 -2251.050392 -14753.954424 73.123882
+V 21 -14315.192580 -11887.514490 23042.274151 .005571
+P 22 -12123.809551 17699.508037 -15520.825232 -39.564470
+V 22 -541.636981 -20079.017627 -22195.640859 .087074
+P 24 -4159.849396 -18380.952051 18981.320432 8.344688
+V 24 20212.168159 12017.301479 16396.421087 .031086
+P 25 -5508.039067 14813.157391 21715.287227 61.768974
+V 25 -24101.101505 -11660.933751 1849.681876 .008433
+P 26 -6826.125500 -13246.001095 -22229.046762 409.236439
+V 26 24368.028482 -12898.207904 805.827370 -.125083
+P 27 23802.800533 3332.323014 -11366.894435 920.194044
+V 27 12120.829239 9187.076583 26443.933863 .042366
+P 28 12046.497448 -16511.312073 -16610.469306 21.967232
+V 28 1551.377141 21611.012264 -20433.858002 .016141
+P 29 -260.678087 -16129.657682 -20823.987032 230.168472
+V 29 23697.603451 -13001.826011 9705.540226 .032319
+P 30 -15475.637735 -1733.279587 21290.916905 806.122966
+V 30 -215.867996 -27639.237989 -2281.154498 .142116
+P 31 11845.720013 11127.423928 -21374.955965 41.914017
+V 31 -22234.578163 14287.491103 -4630.075814 .306168
+* 2004 3 1 19 15 .00000000
+P 1 16384.141334 5955.013489 20218.301216 332.702325
+V 1 -21075.478294 13909.116914 13066.172008 .017227
+P 3 -3466.315714 19350.222591 -17855.011717 90.107121
+V 3 -19425.471511 11904.865271 16986.827675 .032196
+P 4 11557.526111 -10750.416191 21417.897412 -77.390953
+V 4 23642.533738 13271.783554 -5786.043219 -.092019
+P 5 -12669.189218 -18688.929159 13995.234002 19.884569
+V 5 431.695516 -18163.205398 -23488.834288 .015069
+P 6 -22139.802130 1748.808302 14848.620696 -1.422777
+V 6 13996.017689 -12422.453361 22480.366823 -.008228
+P 7 19784.674238 -17313.869982 3468.413518 611.208462
+V 7 5326.049622 635.508830 -30926.723677 -.079001
+P 8 18315.702547 -4837.847508 -18938.377077 354.787069
+V 8 19987.268744 12451.153261 16010.503324 -.088894
+P 9 -19914.153505 -16002.861489 -8381.012125 -32.490294
+V 9 10081.474719 1995.143231 -28885.370425 -.018266
+P 10 -1076.686600 -26383.848455 -108.074687 40.213799
+V 10 2417.862932 -172.390704 32379.084506 .004542
+P 11 21747.204813 13958.871041 -6441.710209 100.064564
+V 11 -9157.282859 839.842630 -28982.485302 .025405
+P 13 23010.414983 -4997.667379 12169.504697 -30.887838
+V 13 -12093.755984 9889.089344 26914.224691 .002507
+P 14 -20032.092609 16805.955622 4745.348801 -18.167224
+V 14 -6218.898176 1345.751323 -31335.448483 -.001217
+P 15 -12454.408886 9790.786236 -21581.734136 233.344853
+V 15 -22654.599337 -14331.361794 6407.942610 .051900
+P 16 -1995.417764 26056.000923 4803.091889 15.252505
+V 16 -3039.363167 -5860.372484 30992.355418 -.003908
+P 17 -13950.374970 -19528.386847 12323.965532 208.505924
+V 17 13377.194979 7150.492236 26120.945649 .195596
+P 18 -15084.101510 1690.600988 -21756.699836 -15.608299
+V 18 -379.033634 -27695.287762 -2093.622552 -.026651
+P 20 13115.674559 14779.838902 17681.895915 -183.926433
+V 20 -324.050286 22630.349713 -18600.692401 .027577
+P 21 -23409.403766 -3223.360330 -12561.737042 73.124864
+V 21 -12551.599547 -9735.495428 25604.561622 .005594
+P 22 -12216.383471 15785.676581 -17377.796766 -39.556657
+V 22 -1563.139934 -22382.603220 -19009.699342 .087067
+P 24 -2247.959206 -17309.811965 20293.076044 8.348161
+V 24 22223.023694 11715.668415 12714.105814 .031077
+P 25 -7705.149300 13817.924315 21700.594920 61.769860
+V 25 -24646.073825 -10420.736617 -2175.865015 .008525
+P 26 -4673.390262 -14463.377898 -21969.445117 409.225649
+V 26 23394.934383 -14102.661708 4958.605670 -.125076
+P 27 24789.024764 4069.036767 -8896.436380 920.197989
+V 27 9734.176275 7219.920844 28374.528961 .042361
+P 28 12237.138453 -14471.815170 -18297.559247 21.968582
+V 28 2724.971253 23634.587082 -17002.247794 .016149
+P 29 1791.177252 -17326.015323 -19769.445092 230.171544
+V 29 21837.243256 -13513.989565 13693.736005 .032314
+P 30 -15554.676340 -4199.930428 20899.295753 806.136314
+V 30 -1527.099146 -27085.989935 -6407.954443 .142093
+P 31 9862.425478 12472.339781 -21612.400229 41.941971
+V 31 -21766.091571 15557.574792 -637.591571 .306169
+* 2004 3 1 19 30 .00000000
+P 1 14473.575192 7291.591968 21219.658602 332.704252
+V 1 -21295.830991 15766.219600 9155.096817 .017951
+P 3 -5118.857719 20404.726004 -16176.788752 90.110557
+V 3 -17267.593132 11454.625043 20254.548581 .032178
+P 4 13681.955044 -9629.110560 20715.471646 -77.399025
+V 4 23481.445073 11622.232240 -9799.494542 -.092004
+P 5 -12650.621422 -20201.246777 11767.001639 19.886022
+V 5 40.170268 -15400.351627 -25955.601676 .015162
+P 6 -20820.649444 536.853143 16740.624859 -1.424474
+V 6 15241.485039 -14508.785241 19505.197673 -.008474
+P 7 20141.637743 -17170.112957 663.016871 611.201626
+V 7 2638.066329 2617.184697 -31325.535712 -.078974
+P 8 20066.226846 -3805.309717 -17342.655108 354.778677
+V 8 18830.413135 10495.477833 19399.932741 -.088842
+P 9 -18873.206049 -15790.799726 -10904.064658 -32.492173
+V 9 13039.339872 2646.194926 -27105.896042 -.018291
+P 10 -846.470105 -26239.701427 2798.475273 40.214463
+V 10 2769.862441 3364.797819 32116.433220 .004435
+P 11 20789.513236 14005.019826 -8987.714194 100.066887
+V 11 -12115.204736 249.202697 -27514.661487 .025409
+P 13 21837.533119 -4001.927069 14479.425066 -30.887587
+V 13 -13890.179255 12253.751646 24343.149097 .002528
+P 14 -20456.916143 16849.298507 1892.464690 -18.167351
+V 14 -3250.367800 -448.920596 -31971.077410 -.001227
+P 15 -14492.564733 8576.201304 -20825.399997 233.348136
+V 15 -22553.816937 -12633.158308 10375.191383 .052022
+P 16 -2296.578802 25380.873748 7543.133677 15.252208
+V 16 -3717.119524 -9110.774065 29810.283813 -.003905
+P 17 -12620.542452 -18852.134342 14567.150502 208.523078
+V 17 16159.764541 7802.350594 23658.407925 .195633
+P 18 -15183.921284 -802.435163 -21756.835589 -15.610387
+V 18 -1835.837777 -27613.692756 2089.403493 -.026651
+P 20 13130.576648 16716.091147 15859.792693 -183.924276
+V 20 604.723139 20330.748535 -21831.773914 .027597
+P 21 -24443.564013 -4007.600147 -10158.157111 73.125353
+V 21 -10362.486352 -7721.896627 27732.958905 .005601
+P 22 -12412.685606 13683.847147 -18932.500013 -39.548797
+V 22 -2834.619339 -24246.432704 -15488.260708 .087063
+P 24 -170.064241 -16283.994366 21263.671400 8.349846
+V 24 23888.942480 11019.089456 8825.607176 .030916
+P 25 -9929.930623 12942.461947 21324.659065 61.771790
+V 25 -24711.507696 -9012.815556 -6167.168365 .008583
+P 26 -2627.835417 -15774.006498 -21338.345120 409.213283
+V 26 21995.722869 -14958.370910 9049.784092 -.125067
+P 27 25544.918214 4639.387008 -6274.339835 920.202175
+V 27 7013.448347 5501.606733 29810.063280 .042356
+P 28 12543.002681 -12271.676777 -19661.978357 21.970013
+V 28 4098.595844 25172.404498 -13274.302027 .016161
+P 29 3660.138620 -18548.860337 -18366.469422 230.175117
+V 29 19647.663447 -13582.883011 17436.929312 .032307
+P 30 -15746.815981 -6593.069135 20141.027137 806.149043
+V 30 -2715.189960 -26010.398448 -10416.772749 .142067
+P 31 7940.242406 13919.144730 -21489.095418 41.969956
+V 31 -20884.102183 16539.873038 3375.762912 .306166
+* 2004 3 1 19 45 .00000000
+P 1 12565.951273 8786.837401 21861.612028 332.706206
+V 1 -21014.782805 17420.325384 5090.546355 .018590
+P 3 -6570.358523 21398.546621 -14219.482176 90.113187
+V 3 -14972.355403 10554.690840 23179.484704 .032094
+P 4 15768.642656 -8661.353046 19659.293587 -77.407573
+V 4 22802.843678 9874.774669 -13636.229564 -.091991
+P 5 -12650.773389 -21454.445793 9336.732561 19.887895
+V 5 20.939758 -12419.490143 -27972.409828 .015300
+P 6 -19410.317154 -861.272098 18349.714801 -1.424347
+V 6 16021.447740 -16545.076321 16202.152249 -.008616
+P 7 20266.381823 -16833.159292 -2153.860844 611.194416
+V 7 178.273148 4918.934929 -31180.608604 -.078948
+P 8 21690.557279 -2947.077681 -15456.200936 354.770327
+V 8 17186.807818 8592.460192 22462.472714 -.088783
+P 9 -17570.437238 -15539.230751 -13246.789286 -32.494361
+V 9 15885.135660 2875.004430 -24883.824584 -.018263
+P 10 -565.472282 -25781.700140 5655.987051 40.215249
+V 10 3542.516567 6784.962182 31290.916798 .004350
+P 11 19569.491903 14015.083119 -11380.225139 100.069229
+V 11 -14972.398666 36.536118 -25576.295106 .025416
+P 13 20525.055464 -2790.673451 16538.625844 -30.886818
+V 13 -15191.485430 14662.223629 21350.794433 .002542
+P 14 -20623.649515 16713.968466 -992.952283 -18.167162
+V 14 -497.861476 -2615.760587 -32057.252711 -.001238
+P 15 -16498.772046 7520.198600 -19719.531303 233.352810
+V 15 -21942.826192 -10822.331282 14164.822807 .052207
+P 16 -2675.443861 24423.109704 10153.608379 15.251812
+V 16 -4759.142869 -12126.531022 28117.354576 -.003901
+P 17 -11045.666278 -18137.295349 16570.606164 208.541274
+V 17 18807.451195 8010.386295 20800.308491 .195670
+P 18 -15412.592192 -3263.502599 -21381.906301 -15.612507
+V 18 -3227.401440 -26987.344055 6229.169776 -.026657
+P 20 13214.532019 18428.476577 13763.553985 -183.922012
+V 20 1200.894745 17668.310204 -24683.832263 .027615
+P 21 -25263.355187 -4619.804744 -7583.847859 73.125549
+V 21 -7797.303893 -5924.704859 29393.491305 .005604
+P 22 -12731.792176 11436.144214 -20157.447952 -39.540814
+V 22 -4278.393560 -25616.648840 -11692.467797 .087052
+P 24 2039.669807 -15336.421265 21877.428238 8.352450
+V 24 25142.620900 9988.056346 4795.260066 .030819
+P 25 -12138.249353 12198.166572 20593.463871 61.772603
+V 25 -24278.443789 -7520.002941 -10059.865278 .008458
+P 26 -725.039689 -17143.419816 -20344.415576 409.201819
+V 26 20234.272720 -15399.060779 13009.925107 -.125054
+P 27 26043.570411 5068.673036 -3546.003871 920.205613
+V 27 4030.519423 4094.360118 30733.254753 .042346
+P 28 12978.379902 -9956.615580 -20680.075371 21.971639
+V 28 5588.498064 26183.087757 -9317.882438 .016169
+P 29 5320.600446 -19756.529751 -16640.158088 230.178106
+V 29 17219.766263 -13172.258090 20868.317120 .032300
+P 30 -16037.281619 -8867.240254 19029.952304 806.162603
+V 30 -3699.277685 -24449.968688 -14236.535349 .142039
+P 31 6114.145119 15438.894392 -21006.092338 41.997964
+V 31 -19640.575411 17168.477547 7344.801579 .306160
+* 2004 3 1 20 0 .00000000
+P 1 10704.871073 10418.610549 22133.384375 332.708493
+V 1 -20269.040948 18786.730587 940.288994 .019163
+P 3 -7812.397660 22291.026172 -12016.339765 90.114279
+V 3 -12627.640921 9203.883556 25709.368894 .032047
+P 4 17771.018209 -7851.847848 18268.173011 -77.416074
+V 4 21609.886638 8120.688802 -17232.363075 -.091981
+P 5 -12634.971004 -22432.896432 6746.456364 19.888933
+V 5 397.176954 -9310.111461 -29506.552507 .015364
+P 6 -17950.656006 -2437.163699 19648.822246 -1.424834
+V 6 16339.734145 -18444.904410 12626.250890 -.008899
+P 7 20182.701293 -16277.072164 -4933.092498 611.187093
+V 7 -1982.801748 7474.672893 -30489.351756 -.078921
+P 8 23146.179550 -2254.498853 -13310.715676 354.762263
+V 8 15087.983161 6828.133213 25148.349040 -.088718
+P 9 -16019.814623 -15285.389275 -15370.990660 -32.494934
+V 9 18533.356973 2701.339848 -22256.527142 -.018285
+P 10 -197.146901 -25024.930988 8414.382256 40.215176
+V 10 4703.574441 9987.982946 29917.131326 .004169
+P 11 18100.055714 14022.458233 -13578.297715 100.071266
+V 11 -17643.959513 185.411510 -23199.853527 .025423
+P 13 19118.439181 -1364.339290 18311.490459 -30.887179
+V 13 -15981.000879 17016.930284 17989.399075 .002545
+P 14 -20555.435584 16369.132695 -3861.283238 -18.167390
+V 14 1958.265696 -5093.091980 -31591.820394 -.001253
+P 15 -18426.891033 6628.836916 -18282.914710 233.357381
+V 15 -20819.681008 -8989.620184 17715.157616 .052376
+P 16 -3162.678309 23207.640251 12589.818712 15.251890
+V 16 -6115.807115 -14824.612622 25943.408923 -.003891
+P 17 -9241.926062 -17422.910515 18300.624645 208.558186
+V 17 21231.162238 7797.435678 17589.681758 .195701
+P 18 -15760.253744 -5644.520029 -20639.017325 -15.614551
+V 18 -4465.853865 -25840.341715 10254.608843 -.026667
+P 20 13335.247807 19887.960021 11429.551580 -183.919839
+V 20 1414.626524 14725.266752 -27107.850748 .027632
+P 21 -25837.685629 -5082.580779 -4882.168900 73.125839
+V 21 -4919.412641 -4411.529857 30559.609188 .005612
+P 22 -13185.393348 9088.773296 -21030.901713 -39.532571
+V 22 -5808.570373 -26456.718638 -7688.721894 .087041
+P 24 4341.610377 -14494.014806 22124.545478 8.356453
+V 24 25930.239513 8694.967520 689.179262 .030860
+P 25 -14285.007154 11588.854897 19518.738047 61.772854
+V 25 -23344.490212 -6027.377513 -13790.801273 .008308
+P 26 1005.748045 -18531.813378 -19002.557014 409.190320
+V 26 18186.956448 -15372.839346 16770.174650 -.125036
+P 27 26264.964791 5387.146663 -757.991128 920.209957
+V 27 866.227399 3045.726030 31135.484001 .042333
+P 28 13549.741722 -7575.223351 -21334.493733 21.972991
+V 28 7105.312436 26644.356045 -5204.764222 .016184
+P 29 6755.478910 -20904.943085 -14621.352093 230.180695
+V 29 14651.369909 -12264.834586 23927.288163 .032294
+P 30 -16404.391289 -10981.130630 17586.141723 806.175777
+V 30 -4407.271363 -22458.926197 -17800.107877 .142002
+P 31 4413.875747 16997.217095 -20170.320866 42.025678
+V 31 -18099.470965 17389.095232 11204.212284 .306151
+* 2004 3 1 20 15 .00000000
+P 1 8929.894141 12157.543324 22030.365847 332.711347
+V 1 -19111.420561 19790.013039 -3226.563058 .019583
+P 3 -8844.489503 23042.198587 -9605.027437 90.117524
+V 3 -10321.322093 7418.760984 27798.452778 .032040
+P 4 19643.609741 -7197.136476 16566.472699 -77.423185
+V 4 19923.752829 6449.502762 -20528.530348 -.091963
+P 5 -12567.213753 -23129.188986 4040.771560 19.890249
+V 5 1175.092380 -6164.824243 -30533.707978 .015535
+P 6 -16482.413904 -4174.754629 20616.030095 -1.424441
+V 6 16216.921903 -20124.929811 8836.802109 -.009285
+P 7 19920.193554 -15482.449215 -7625.767267 611.179773
+V 7 -3787.183970 10205.711553 -29259.214021 -.078891
+P 8 24394.153063 -1711.475785 -10942.122999 354.754454
+V 8 12581.603672 5281.394195 27413.607984 -.088650
+P 9 -14242.757079 -15064.012564 -17242.088050 -32.496273
+V 9 20904.390364 2160.730838 -19266.860866 -.018379
+P 10 291.341114 -23993.140865 11025.354923 40.215218
+V 10 6203.097597 12882.147547 28019.801845 .004102
+P 11 16401.542725 14058.362242 -15544.245758 100.073325
+V 11 -20050.342422 663.978304 -20425.201634 .025431
+P 13 17663.760220 267.827537 19767.401992 -30.887088
+V 13 -16261.666566 19220.200891 14317.658668 .002556
+P 14 -20282.097539 15790.151469 -6663.142694 -18.167682
+V 14 4050.382238 -7805.392543 -30582.121395 -.001266
+P 15 -20231.406856 5900.023913 -16539.722586 233.362226
+V 15 -19200.186861 -7224.855501 20968.327250 .052526
+P 16 -3783.826627 21766.363665 14810.121746 15.251664
+V 16 -7723.320748 -17133.700313 23326.375117 -.003890
+P 17 -7233.287558 -16745.233894 19727.628712 208.576034
+V 17 23347.475361 7202.411329 14075.220420 .195736
+P 18 -16209.397013 -7900.384284 -19541.568656 -15.617040
+V 18 -5469.668397 -24214.536894 14097.102460 -.026679
+P 20 13456.669372 21073.339850 8898.233039 -183.917354
+V 20 1212.447270 11592.909748 -29062.402033 .027643
+P 21 -26141.710778 -5424.059464 -2098.522526 73.126838
+V 21 -1803.871555 -3237.158809 31212.516950 .005621
+P 22 -13777.210445 6690.391473 -21537.290022 -39.524653
+V 22 -7334.565594 -26748.875708 -3547.467451 .087030
+P 24 6691.962055 -13776.749989 22001.217908 8.360405
+V 24 26213.387126 7221.307889 -3425.660852 .030886
+P 25 -16325.646769 11110.704300 18117.808594 61.774590
+V 25 -21924.054234 -4619.092239 -17298.864171 .008193
+P 26 2542.614254 -19895.451944 -17333.796110 409.179137
+V 26 15939.914136 -14844.606449 20263.456899 -.125015
+P 27 26196.651408 5628.623265 2042.738177 920.214203
+V 27 -2392.631911 2387.168077 31016.473411 .042313
+P 28 14255.405915 -5177.207586 -21614.456785 21.974434
+V 28 8557.848147 26553.748377 -1009.139930 .016198
+P 29 7956.655411 -21949.349555 -12346.024976 230.182995
+V 29 12043.204455 -10863.053897 26560.573805 .032289
+P 30 -16820.483098 -12898.978226 15835.483347 806.188534
+V 30 -4778.831783 -20105.981141 -21045.544126 .141957
+P 31 2862.964574 18555.462864 -18994.560567 42.053289
+V 31 -16334.454618 17161.284076 14889.470986 .306139
+* 2004 3 1 20 30 .00000000
+P 1 7275.177372 13968.007780 21554.188532 332.713843
+V 1 -17608.776296 20366.938202 -7340.586513 .019935
+P 3 -9673.927320 23614.374803 -7026.999384 90.121608
+V 3 -8137.822471 5233.244661 29408.448815 .032057
+P 4 21343.634330 -6685.911418 14583.662565 -77.431678
+V 4 17782.831623 4945.553859 -23470.737368 -.091961
+P 5 -12411.716303 -23544.260206 1266.077291 19.891313
+V 5 2343.711963 -3075.925486 -31038.219190 .015797
+P 6 -15043.764784 -6050.734017 21234.919431 -1.426415
+V 6 15689.433384 -21508.025001 4896.530293 -.009738
+P 7 19513.016309 -14437.430183 -10184.104785 611.172767
+V 7 -5191.865512 13023.663543 -27507.881668 -.078868
+P 8 25400.495195 -1295.242281 -8390.017369 354.747430
+V 8 9729.871683 4021.079291 29220.727027 -.088589
+P 9 -12267.482282 -14905.983558 -18829.582940 -32.499131
+V 9 22927.187991 1303.018234 -15962.587309 -.018543
+P 10 927.610401 -22717.818156 13443.261981 40.214646
+V 10 7975.501365 15387.687640 25633.276250 .004046
+P 11 14501.097617 14150.498273 -17244.281026 100.075504
+V 11 -22120.302215 1426.262494 -17298.982348 .025438
+P 13 16205.954751 2087.929181 20881.276936 -30.886961
+V 13 -16055.759248 21178.118728 10399.655180 .002557
+P 14 -19838.876002 14959.701621 -9350.230700 -18.167546
+V 14 5726.107057 -10666.103054 -29044.910234 -.001274
+P 15 -21869.010347 5323.749633 -14519.134353 233.369021
+V 15 -17117.422735 -5613.604512 23871.059736 .052725
+P 16 -4558.147798 20136.971717 16776.626535 15.251299
+V 16 -9506.259687 -18996.752135 20311.577336 -.003887
+P 17 -5050.856891 -16136.341631 20826.662456 208.594227
+V 17 25081.619069 6278.977290 10310.850883 .195767
+P 18 -16735.584153 -9990.496351 -18108.982982 -15.619540
+V 18 -6166.906591 -22167.836717 17691.612701 -.026690
+P 20 13540.520397 21971.909087 6213.406182 -183.914072
+V 20 578.629745 8368.118519 -30514.344120 .027654
+P 21 -26157.770968 -5676.649705 720.355744 73.127294
+V 21 1465.179640 -2441.576999 31341.416463 .005632
+P 22 -14502.740682 4290.381260 -21667.514470 -39.516550
+V 22 -8764.837794 -26494.817472 658.124991 .087016
+P 24 9044.219843 -13196.975229 21509.672601 8.362563
+V 24 25970.445423 5654.533693 -7482.334171 .030716
+P 25 -18217.653068 10752.479012 16413.379088 61.774640
+V 25 -20048.005445 -3375.209028 -20525.828197 .008067
+P 26 3871.719668 -21188.268546 -15365.068621 409.167726
+V 26 13585.869916 -13797.901335 23425.753990 -.124993
+P 27 25834.143431 5828.994723 4809.559104 920.217570
+V 27 -5656.418218 2133.288768 30383.877182 .042278
+P 28 15085.544830 -2811.606007 -21515.917172 21.975835
+V 28 9856.919603 25928.525173 3193.894377 .016209
+P 29 8925.055052 -22846.105911 -9854.577357 230.185732
+V 29 9494.834965 -8989.005564 28723.205317 .032289
+P 30 -17253.088105 -14591.753849 13809.164819 806.201442
+V 30 -4767.837582 -17471.537049 -23917.190171 .141917
+P 31 1477.974125 20072.034358 -17497.326594 42.081637
+V 31 -14426.226379 16460.247061 18337.809947 .306122
+* 2004 3 1 20 45 .00000000
+P 1 5768.323767 15809.327885 20712.707639 332.713780
+V 1 -15839.429076 20468.932015 -11333.086430 .020154
+P 3 -10315.321660 23973.662431 -4326.788520 90.125209
+V 3 -6154.786029 2697.547658 30509.354769 .031896
+P 4 22832.487190 -6299.629718 12353.801895 -77.439996
+V 4 15241.294554 3684.783961 -26011.108085 -.091974
+P 5 -12134.440345 -23687.212396 -1530.213686 19.893941
+V 5 3875.311572 -132.021441 -31013.229517 .016006
+P 6 -13668.944719 -8035.239445 21494.836145 -1.427777
+V 6 14808.064276 -22526.190167 870.662626 -.010022
+P 7 18998.453212 -13138.420606 -12562.376510 611.165339
+V 7 -6170.640891 15833.830857 -25263.236259 -.078849
+P 8 26137.398508 -977.387662 -5697.059952 354.740570
+V 8 6607.420863 3103.390511 30539.166576 -.088553
+P 9 -10128.126292 -14837.125384 -20107.474079 -32.500068
+V 9 24541.646475 190.449089 -12395.785979 -.018637
+P 10 1732.771695 -21236.976811 15625.958584 40.213775
+V 10 9942.247588 17439.816326 22800.809158 .004179
+P 11 12431.803199 14321.863341 -18649.091165 100.077885
+V 11 -23793.536031 2414.006474 -13873.886382 .025448
+P 13 14787.120129 4069.924027 21633.998141 -30.886702
+V 13 -15403.852296 22804.225213 6303.691492 .002560
+P 14 -19264.964538 13868.626344 -11876.170159 -18.168064
+V 14 6950.247496 -13580.881258 -27006.107379 -.001286
+P 15 -23300.108520 4882.615691 -12254.889104 233.372562
+V 15 -14620.663304 -4233.972602 26375.420588 .052643
+P 16 -5497.699287 18361.569814 18455.824413 15.250932
+V 16 -11380.540671 -20373.014354 16950.933273 -.003889
+P 17 -2731.975808 -15622.883868 21577.840263 208.611481
+V 17 26370.232042 5093.696412 6355.228188 .195794
+P 18 -17308.442788 -11880.107789 -16366.335859 -15.622409
+V 18 -6498.063809 -19771.922258 20977.723710 -.026700
+P 20 13547.935511 22579.794067 3421.467945 -183.911224
+V 20 -484.137649 5149.688121 -31439.359581 .027662
+P 21 -25876.078572 -5875.636539 3527.124701 73.127615
+V 21 4797.457700 -2048.518545 30943.665318 .005638
+P 22 -15349.341935 1937.096688 -21419.132769 -39.508854
+V 22 -10010.683367 -25715.622232 4853.547990 .087001
+P 24 11350.721218 -12759.022732 20658.124183 8.363877
+V 24 25197.394431 4084.765080 -11414.858262 .030438
+P 25 -19921.998139 10496.037085 14433.231566 61.774550
+V 25 -17762.770297 -2368.641571 -23417.207306 .007894
+P 26 4987.734752 -22363.600473 -13128.884209 409.156424
+V 26 11220.591281 -12236.081793 26197.445911 -.124974
+P 27 25181.032648 6024.699814 7496.875078 920.221591
+V 27 -8835.760812 2281.660179 29252.811677 .042244
+P 28 16022.534190 -525.046325 -21041.570820 21.977389
+V 28 10919.053101 24804.767157 7329.828029 .016223
+P 29 9670.361618 -23554.410909 -7191.054795 230.188376
+V 29 7100.689578 -6683.543088 30379.258696 .032286
+P 30 -17666.298371 -16038.071359 11543.063615 806.213567
+V 30 -4344.243007 -14644.470977 -26366.623241 .141875
+P 31 267.998109 21503.856425 -15702.666184 42.109507
+V 31 -12459.542761 15278.106095 21489.234789 .306105
+* 2004 3 1 21 0 .00000000
+P 1 4429.482250 17637.190995 19519.889177 332.717603
+V 1 -13890.176335 20064.032928 -15137.134849 .020577
+P 3 -10789.849046 24091.358470 -1551.229001 90.127799
+V 3 -4439.992877 -123.566376 31080.134247 .031757
+P 4 24077.076646 -6013.400200 9914.959003 -77.448519
+V 4 12367.110310 2731.880193 -28108.527443 -.091993
+P 5 -11704.558804 -23574.835212 -4300.468096 19.895363
+V 5 5726.482067 2585.177544 -30460.680126 .015895
+P 6 -12387.044143 -10092.798211 21391.073743 -1.428847
+V 6 13635.995136 -23123.154579 -3174.019777 -.010124
+P 7 18415.344211 -11590.493350 -14717.811671 611.158251
+V 7 -6715.262540 18538.949888 -22563.051400 -.078839
+P 8 26584.237818 -725.093464 -2908.327668 354.733453
+V 8 3298.764759 2569.761771 31345.858779 -.088540
+P 9 -7863.664740 -14877.185587 -21054.619420 -32.502394
+V 9 25700.627035 -1104.623716 -8622.259437 -.018851
+P 10 2720.403653 -19593.694467 17535.560349 40.213782
+V 10 12015.069524 18991.137979 19573.658051 .004317
+P 11 10231.591194 14589.743835 -19734.347266 100.080396
+V 11 -25022.929606 3558.987139 -10207.819334 .025455
+P 13 13444.942022 6180.454159 22012.739531 -30.886507
+V 13 -14363.061239 24022.931271 2101.056000 .002558
+P 14 -18601.900266 12516.476687 -14197.314435 -18.168213
+V 14 7706.070235 -16451.176913 -24500.387085 -.001293
+P 15 -24490.212261 4552.641411 -9784.773648 233.377832
+V 15 -11773.734468 -3153.664879 28439.506663 .052802
+P 16 -6606.704173 16485.143714 19819.142663 15.250714
+V 16 -13256.719719 -21239.409391 13302.056168 -.003891
+P 17 -319.082039 -15225.025809 21966.746094 208.629567
+V 17 27163.807875 3723.686471 2271.134218 .195824
+P 18 -17892.894676 -13541.438841 -14343.896613 -15.624544
+V 18 -6418.414523 -17109.474314 23900.581956 -.026706
+P 20 13441.120602 22901.958996 570.592031 -183.908678
+V 20 -1954.807600 2034.603047 -31822.330659 .027668
+P 21 -25295.129995 -6057.674860 6274.575351 73.128131
+V 21 8099.696221 -2064.595668 30024.848689 .005652
+P 22 -16296.655784 -323.847867 -20796.414960 -39.500642
+V 22 -10989.931693 -24450.885058 8964.385773 .086988
+P 24 13564.243679 -12459.121188 19460.650060 8.367632
+V 24 23908.015310 2601.393109 -15159.077908 .030333
+P 25 -21404.479831 10317.103792 12209.851336 61.775388
+V 25 -15128.873741 -1662.308632 -25923.113455 .007839
+P 26 5893.945056 -23375.997885 -10662.869220 409.144839
+V 26 8939.116471 -10182.746257 28524.676109 -.124960
+P 27 24248.828335 6251.205838 10060.766942 920.225139
+V 27 -11844.576364 2813.237349 27645.350629 .042199
+P 28 17041.624011 1639.878742 -20200.739503 21.978815
+V 28 11669.913295 23235.727378 11326.161045 .016236
+P 29 10210.386154 -24037.925590 -4402.308562 230.191251
+V 29 4946.360432 -4004.642245 31502.377045 .032283
+P 30 -18022.272289 -17224.794079 9077.060683 806.226072
+V 30 -3495.262392 -11718.626793 -28353.411351 .141841
+P 31 -765.561296 22807.934340 -13639.861797 42.134676
+V 31 -10520.026219 13624.589396 24287.579930 .306090
+* 2004 3 1 21 15 .00000000
+P 1 3270.731516 19405.208839 17995.604492 332.720403
+V 1 -11852.988047 19138.251563 -18688.600480 .020830
+P 3 -11124.239153 23945.157412 1251.375108 90.130717
+V 3 -3048.653404 -3153.132710 31109.229256 .031604
+P 4 25050.958245 -5797.108885 7308.577715 -77.456549
+V 4 9239.580088 2137.855578 -29729.180315 -.092016
+P 5 -11095.797640 -23230.851136 -6997.618683 19.896587
+V 5 7839.776475 5003.773756 -29391.176719 .015748
+P 6 -11220.999886 -12183.485135 20924.969320 -1.430299
+V 6 12246.352053 -23256.572941 -7170.161541 -.010299
+P 7 17802.445515 -9807.443013 -16611.463729 611.151128
+V 7 -6835.839711 21043.131744 -19454.417930 -.078841
+P 8 26728.330514 -502.539558 -70.621294 354.725742
+V 8 -104.620519 2445.239191 31625.627349 -.088540
+P 9 -5516.670434 -15039.042732 -21655.043883 -32.504652
+V 9 26371.561823 -2502.371011 -4700.923218 -.018884
+P 10 3895.837608 -17834.465663 19139.116839 40.214604
+V 10 14099.586870 20013.333590 16010.019742 .004570
+P 11 7941.971994 14964.938080 -20481.132190 100.082474
+V 11 -25776.321009 4785.728278 -6362.975675 .025461
+P 13 12211.308969 8379.961574 22011.177438 -30.885970
+V 13 -13004.647779 24772.501663 -2135.257473 .002552
+P 14 -17891.872192 10911.721998 -16273.510641 -18.168508
+V 14 7995.852356 -19177.989855 -21570.605894 -.001302
+P 15 -25411.152340 4304.318973 -7150.050356 233.381845
+V 15 -8652.851962 -2427.406432 30028.089013 .052889
+P 16 -7881.225061 14553.931249 20843.413661 15.249959
+V 16 -15043.489610 -21591.253115 9427.277257 -.003898
+P 17 2141.632740 -14955.619919 21984.773671 208.646929
+V 17 27428.732909 2253.838471 -1875.236146 .195849
+P 18 -18450.569828 -14954.528807 -12076.589548 -15.626970
+V 18 -5899.776444 -14271.017390 26411.725661 -.026720
+P 20 13184.975469 22951.878256 -2290.109633 -183.906473
+V 20 -3794.750897 -885.596645 -31657.546025 .027673
+P 21 -24421.827054 -6259.232077 8916.371306 73.128490
+V 21 11278.925607 -2479.038209 28598.762145 .005649
+P 22 -17317.352685 -2451.177066 -19810.270561 -39.492785
+V 22 -11630.383264 -22757.106094 12917.747568 .086972
+P 24 15639.593092 -12285.613619 17936.986630 8.370020
+V 24 22133.483381 1289.709815 -18653.537287 .030148
+P 25 -22636.905313 10186.287958 9779.974619 61.774387
+V 25 -12218.960541 -1306.598894 -27999.111593 .007784
+P 26 6602.012052 -24183.033900 -8009.187012 409.133620
+V 26 6831.897515 -7681.336569 30360.699164 -.124946
+P 27 23056.532130 6541.552185 12459.595746 920.229020
+V 27 -14602.904721 3693.313449 25590.004281 .042152
+P 28 18111.900010 3646.057686 -19009.129261 21.980003
+V 28 12047.311105 21289.523510 15113.732639 .016245
+P 29 10570.120615 -24266.214833 -1537.119502 230.194333
+V 29 3105.327388 -1025.087650 32076.069249 .032281
+P 30 -18282.814830 -18147.318275 6454.294065 806.238509
+V 30 -2225.847487 -8789.170725 -29845.686491 .141804
+P 31 -1628.923420 23942.945550 -11343.038133 42.162686
+V 31 -8690.869078 11527.081095 26681.585952 .306089
+* 2004 3 1 21 30 .00000000
+P 1 2295.771148 21066.572141 16165.332876 332.722899
+V 1 -9821.502246 17696.284738 -21927.160095 .020992
+P 3 -11349.540014 23520.123714 4032.118955 90.134624
+V 3 -2021.199702 -6304.854870 30594.884474 .031418
+P 4 25735.228822 -5616.739348 4578.800002 -77.464432
+V 4 5946.484102 1938.147816 -30846.987176 -.092035
+P 5 -10287.605370 -22684.915433 -9575.933393 19.896954
+V 5 10145.872282 7064.209980 -27823.734268 .015707
+P 6 -10186.824060 -14264.256789 20103.910197 -1.430872
+V 6 10719.397419 -22899.737456 -11050.837914 -.010403
+P 7 17196.789347 -7811.483549 -18209.012913 611.144673
+V 7 -6560.440536 23255.819692 -15992.899518 -.078841
+P 8 26565.421265 -272.430535 2768.260806 354.717693
+V 8 -3507.487626 2737.437370 31371.530062 -.088545
+P 9 -3131.946795 -15328.161765 -21898.191199 -32.507398
+V 9 26537.600122 -3918.373137 -693.171538 -.018879
+P 10 5255.779358 -16007.438491 20409.183332 40.214705
+V 10 16099.153472 20498.058803 12173.839312 .004845
+P 11 5606.630069 15451.237078 -20876.281781 100.084646
+V 11 -26037.712352 6014.507808 -2404.830821 .025468
+P 13 11111.167812 10624.049343 21629.585668 -30.885671
+V 13 -11411.081171 25007.496207 -6331.849129 .002545
+P 14 -17176.013363 9071.619362 -18068.804640 -18.168676
+V 14 7840.688102 -21665.664799 -18267.080372 -.001313
+P 15 -26042.080012 4103.881208 -4394.829666 233.385593
+V 15 -5344.008625 -2094.810761 31113.198562 .053081
+P 16 -9309.156804 12613.760581 21511.253060 15.249672
+V 16 -16651.244581 -21442.279569 5392.604578 -.003904
+P 17 4601.726700 -14819.645549 21629.396881 208.665429
+V 17 27148.828790 773.668730 -6015.113772 .195870
+P 18 -18941.350980 -16107.789724 -9603.385747 -15.629209
+V 18 -4931.635680 -11351.503532 28469.796725 -.026730
+P 20 12748.615272 22750.891073 -5111.436459 -183.904065
+V 20 -5949.220445 -3528.217325 -30948.739365 .027674
+P 21 -23271.301830 -6515.035373 11407.783470 73.129107
+V 21 14245.764403 -3264.057372 26687.301341 .005662
+P 22 -18378.169472 -4409.377688 -18478.047829 -39.485148
+V 22 -11872.844260 -20705.398105 16643.670475 .086953
+P 24 17535.128268 -12219.473401 16112.247537 8.370857
+V 24 19921.360892 227.670046 -21840.340268 .030191
+P 25 -23598.074961 10070.308780 7184.059844 61.775372
+V 25 -9115.346561 -1337.244512 -29607.058731 .007857
+P 26 7131.389186 -24747.040842 -5213.839699 409.123112
+V 26 4981.023851 -4793.892830 31667.159238 -.124934
+P 27 21629.968699 6925.002361 14654.558463 920.233257
+V 27 -17039.488254 4872.965750 23121.195905 .042106
+P 28 19197.492494 5463.073193 -17488.474641 21.981320
+V 28 12003.678374 19046.283024 18627.926180 .016255
+P 29 10780.520487 -24215.954594 1354.695148 230.197033
+V 29 1636.230141 2170.400070 32093.791710 .032281
+P 30 -18410.968701 -18809.528053 3720.369387 806.251104
+V 30 -558.454807 -5948.958548 -30820.530627 .141773
+P 31 -2335.562112 24870.805887 -8850.672022 42.190017
+V 31 -7049.551384 9030.001387 28625.976172 .306091
+* 2004 3 1 21 45 .00000000
+P 1 1499.932605 22575.739130 14059.774379 332.725550
+V 1 -7887.442323 15761.550834 -24797.280664 .021026
+P 3 -11499.710651 22809.386839 6742.386149 90.136344
+V 3 -1381.673768 -9486.379882 29545.268024 .031085
+P 4 26119.150023 -5435.838550 1771.753999 -77.472951
+V 4 2580.940720 2151.296415 -31443.937610 -.092062
+P 5 -9266.108047 -21971.409258 -11991.756536 19.899598
+V 5 12566.165193 8721.322774 -25785.408648 .015874
+P 6 -9293.098921 -16290.415517 18941.249215 -1.432119
+V 6 9139.444978 -22042.740327 -14750.578087 -.010581
+P 7 16632.115542 -5632.595940 -19481.481156 611.137927
+V 7 -5933.897102 25095.577216 -12241.434017 -.078844
+P 8 26099.870998 2.411682 5560.275909 354.710371
+V 8 -6814.180414 3436.117647 30585.113524 -.088557
+P 9 -755.080266 -15742.317687 -21779.117193 -32.509780
+V 9 26198.257184 -5266.682861 3337.791618 -.018826
+P 10 6788.281561 -14160.606955 21324.280950 40.214968
+V 10 17918.772993 20457.028265 8133.526109 .005305
+P 11 3269.937114 16045.185012 -20912.632152 100.086901
+V 11 -25807.879457 7164.548113 1598.935806 .025473
+P 13 10161.663608 12865.034441 20874.813676 -30.885575
+V 13 -9672.676632 24700.574512 -10416.207137 .002538
+P 14 -16492.743833 7021.745447 -19552.074680 -18.168768
+V 14 7279.556313 -23825.574136 -14646.725939 -.001318
+P 15 -26370.215160 3914.738086 -1565.392772 233.390658
+V 15 -1939.990986 -2178.774702 31674.646078 .053428
+P 16 -10870.538071 10708.417375 21811.341994 15.249697
+V 16 -17995.579246 -20823.976535 1266.633857 -.003911
+P 17 7012.125125 -14813.945039 20904.358726 208.683102
+V 17 26326.318994 -626.104500 -10078.127539 .195887
+P 18 -19324.989224 -16998.245691 -6966.636271 -15.632047
+V 18 -3521.599234 -8446.764282 30041.130662 -.026742
+P 20 12106.731601 22327.265424 -7844.944784 -183.901733
+V 20 -8349.438076 -5822.450066 -29708.962990 .027676
+P 21 -21866.448927 -6856.579696 13706.410418 73.129946
+V 21 16917.611470 -4375.829018 24320.253328 .005677
+P 22 -19441.196886 -6169.888286 -16823.209435 -39.477043
+V 22 -11673.628772 -18378.610371 20076.457360 .086935
+P 24 19214.168800 -12235.101779 14016.565093 8.373296
+V 24 17334.015853 -517.108313 -24665.996530 .030295
+P 25 -24274.527212 9933.392213 4465.684769 61.777067
+V 25 -5907.168717 -1773.693176 -30715.909880 .007915
+P 26 7508.408227 -25036.696550 -2325.860049 409.112257
+V 26 3456.701438 -1598.972076 32415.242850 -.124928
+P 27 20000.898215 7425.846076 16610.196781 920.236578
+V 27 -19094.031409 6290.934063 20278.743565 .042052
+P 28 20258.980603 7068.138434 -15666.080818 21.982584
+V 28 11507.922238 16594.872422 21809.730713 .016267
+P 29 10877.070322 -23871.860312 4223.173029 230.200243
+V 29 580.785354 5488.464506 31558.826799 .032285
+P 30 -18372.553499 -19223.429254 922.543869 806.263885
+V 30 1467.870550 -3285.057465 -31264.179516 .141745
+P 31 -2905.548776 25558.149491 -6205.006523 42.217660
+V 31 -5664.700929 6193.509132 30082.503525 .306093
+* 2004 3 1 22 0 .00000000
+P 1 870.511388 23890.096203 11714.376019 332.728301
+V 1 -6137.083613 13375.535578 -27249.159425 .020964
+P 3 -11610.098397 21814.528228 9334.739350 90.139480
+V 3 -1136.787036 -12602.844978 27978.379722 .030898
+P 4 26200.480303 -5217.074077 -1065.183415 -77.481052
+V 4 -761.912635 2778.239307 -31510.322539 -.092079
+P 5 -8024.814975 -21128.071939 -14204.211961 19.901062
+V 5 15015.697637 9945.853248 -23310.824334 .015843
+P 6 -8540.757886 -18217.151439 17456.127433 -1.433414
+V 6 7591.604318 -20693.037758 -18206.398327 -.010636
+P 7 16137.445124 -3307.549492 -20405.837734 611.130337
+V 7 -5015.855786 26493.523031 -8269.009307 -.078848
+P 8 25344.539719 357.446385 8257.908698 354.703228
+V 8 -9932.055564 4513.416392 29276.568048 -.088573
+P 9 1569.042217 -16271.599675 -21298.620895 -32.510023
+V 9 25369.538288 -6462.980161 7327.666821 -.018684
+P 10 8473.065429 -12340.032137 21869.238369 40.214508
+V 10 19468.918731 19921.296207 3960.612014 .005909
+P 11 975.438568 16736.130634 -20589.167489 100.089266
+V 11 -25104.351134 8157.269217 5579.572020 .025480
+P 13 9371.596085 15053.631737 19760.149435 -30.885029
+V 13 -7883.945962 23843.596921 -14317.972287 .002527
+P 14 -15876.229638 4795.207403 -20697.581822 -18.168696
+V 14 6367.683102 -25579.543558 -10772.071627 -.001324
+P 15 -26391.312719 3699.031478 1290.529139 233.397147
+V 15 1462.880363 -2684.464330 31700.465519 .053617
+P 16 -12538.169977 8878.101810 21738.609680 15.249372
+V 16 -19000.592191 -19784.259971 -2880.573200 -.003924
+P 17 9324.796116 -14927.276254 19819.766643 208.700864
+V 17 24982.150531 -1857.149968 -13993.412470 .195899
+P 18 -19562.729662 -17631.451806 -4211.357856 -15.634335
+V 18 -1695.165625 -5649.961116 31100.221753 -.026749
+P 20 11240.740804 21715.009174 -10443.774883 -183.899433
+V 20 -10915.220399 -7711.932964 -27960.303062 .027682
+P 21 -20237.179033 -7310.751300 15772.875335 73.129797
+V 21 19221.628999 -5756.072646 21534.983427 .005680
+P 22 -20465.364324 -7712.008254 -14874.891879 -39.468986
+V 22 -11006.423824 -15867.991695 23155.917328 .086914
+P 24 20646.236324 -12301.380776 11684.656378 8.376352
+V 24 14446.510179 -890.003372 -27082.248715 .030426
+P 25 -24661.012046 9738.788458 1670.873360 61.777656
+V 25 -2687.220496 -2618.057248 -31302.469196 .007876
+P 26 7765.066826 -25028.387679 603.592525 409.100772
+V 26 2314.162739 1811.212883 32586.647924 -.124921
+P 27 18205.941900 8062.387481 18294.859620 920.240872
+V 27 -20719.087486 7875.867959 17107.349799 .042001
+P 28 21254.933258 8446.725590 -13574.277150 21.984233
+V 28 10546.601871 14029.353075 24606.646065 .016284
+P 29 10898.193386 -23227.304445 7019.078537 230.202900
+V 29 -37.586202 8830.696946 30483.977109 .032286
+P 30 -18137.593514 -19408.482258 -1891.100239 806.276838
+V 30 3799.041848 -875.553561 -31172.054046 .141717
+P 31 -3364.624170 25977.662067 -3451.373413 42.245055
+V 31 -4593.227867 3091.546092 31020.933443 .306101
+* 2004 3 1 22 15 .00000000
+P 1 387.410174 24971.529042 9168.775833 332.730727
+V 1 -4647.898307 10596.460674 -29239.607088 .020870
+P 3 -11715.863603 20545.642401 11763.792939 90.142305
+V 3 -1275.696505 -15560.547018 25921.744709 .030721
+P 4 25985.504421 -4923.825938 -3884.140409 -77.489508
+V 4 -3988.303073 3802.250331 -31044.865633 -.092092
+P 5 -6565.049739 -20194.523606 -16175.859368 19.901988
+V 5 17406.315803 10725.367010 -20441.606891 .015883
+P 6 -7923.162977 -20001.107072 15673.203789 -1.434442
+V 6 6158.468494 -18875.384927 -21358.834078 -.010687
+P 7 15735.860322 -878.636290 -20965.477082 611.123534
+V 7 -3878.156597 27396.243854 -4149.154502 -.078853
+P 8 24320.363154 824.862802 10814.951967 354.695650
+V 8 -12774.845112 5924.731292 27464.769307 -.088590
+P 9 3797.702647 -16898.699893 -20463.308941 -32.512092
+V 9 24083.521416 -7427.727895 11211.828995 -.018600
+P 10 10282.176007 -10588.162722 22035.411464 40.214523
+V 10 20669.102149 18939.777573 -271.613659 .006548
+P 11 -1235.629354 17506.569597 -19911.064214 100.091767
+V 11 -23960.752983 8919.480206 9468.421779 .025486
+P 13 8741.212089 17140.703821 18305.070646 -30.884648
+V 13 -6139.805458 22447.982673 -17970.151000 .002515
+P 14 -15355.018599 2431.562170 -21485.426770 -18.168712
+V 14 5174.262641 -26862.884852 -6710.168372 -.001331
+P 15 -26109.827283 3419.252741 4124.511613 233.402671
+V 15 4768.180015 -3598.939911 31187.267717 .053679
+P 16 -14278.518641 7158.032808 21294.314164 15.249026
+V 16 -19601.872459 -18385.538841 -6978.628214 -.003939
+P 17 11494.424207 -15140.690847 18392.082167 208.718398
+V 17 23155.619219 -2837.150008 -17690.848026 .195904
+P 18 -19618.886181 -18021.098439 -1384.482398 -15.636231
+V 18 505.171685 -3048.162958 31630.062872 -.026769
+P 20 10139.675544 20952.475610 -12863.445578 -183.897134
+V 20 -13558.039323 -9156.743271 -25733.445828 .027690
+P 21 -18419.417438 -7898.618641 17571.489842 73.130086
+V 21 21097.409775 -7334.182551 18376.011335 .005689
+P 22 -21408.060788 -9023.491111 -12667.358752 -39.461111
+V 22 -9863.441092 -13269.534930 25828.479580 .086890
+P 24 21808.084031 -12382.946467 9155.316004 8.378869
+V 24 11344.017343 -851.612033 -29046.872911 .030684
+P 25 -24760.669371 9450.355615 -1152.641524 61.778797
+V 25 451.422610 -3854.702985 -31352.060770 .007982
+P 26 7937.563618 -24707.284070 3522.212826 409.089637
+V 26 1591.172327 5334.331953 32174.313732 -.124915
+P 27 16285.356176 8846.149728 19681.120007 920.244901
+V 27 -21881.529385 9548.875132 13656.097141 .041956
+P 28 22143.524408 9592.868615 -11249.796579 21.985907
+V 28 9124.400449 11445.310590 26973.425002 .016301
+P 29 10883.571064 -22284.604320 9694.739744 230.206314
+V 29 -214.389761 12097.354068 28891.098391 .032283
+P 30 -17681.580772 -19390.664539 -4672.477758 806.289553
+V 30 6368.033084 1213.240785 -30548.632493 .141690
+P 31 -3743.029604 26109.210242 -637.431519 42.272512
+V 31 -3877.864725 -190.728014 31419.924309 .306113
+* 2004 3 1 22 30 .00000000
+P 1 24.071100 25787.844734 6466.170601 332.732070
+V 1 -3485.505151 7497.311880 -30732.857489 .020725
+P 3 -11850.417058 19021.068119 13987.048612 90.144888
+V 3 -1770.510606 -18270.578787 23411.897643 .030557
+P 4 25488.759851 -4521.755020 -6637.511275 -77.497970
+V 4 -7009.155111 5189.518886 -30054.753656 -.092113
+P 5 -4896.091017 -19210.732743 -17873.295571 19.902577
+V 5 19649.942862 11064.555068 -17225.728496 .015998
+P 6 -7426.478487 -21601.907335 13622.292417 -1.436312
+V 6 4916.863907 -16631.131898 -24152.957492 -.010704
+P 7 15443.546227 1607.827482 -21150.554379 611.116457
+V 7 -2601.662704 27768.041238 41.702617 -.078860
+P 8 23055.633968 1432.137754 13187.285463 354.688094
+V 8 -15265.838340 7610.251697 25177.192904 -.088617
+P 9 5891.759225 -17599.482745 -19285.587880 -32.512906
+V 9 22387.394238 -8089.232149 14926.160769 -.018504
+P 10 12180.942001 -8942.320101 21820.780266 40.215806
+V 10 21451.049873 17577.084773 -4489.460570 .007236
+P 11 -3325.735598 18332.766569 -18889.628936 100.093925
+V 11 -22425.534704 9386.384526 13198.113293 .025496
+P 13 8262.340135 19079.009181 16534.889885 -30.884335
+V 13 -4531.790201 20544.315702 -21310.256126 .002503
+P 14 -14950.906880 -24.514907 -21901.904383 -18.168605
+V 14 3779.624992 -27626.915255 -2531.410715 -.001334
+P 15 -25538.765764 3039.864117 6888.220910 233.407837
+V 15 7882.860160 -4891.448875 30140.489670 .053606
+P 16 -16052.868082 5577.251186 20486.020291 15.248896
+V 16 -19749.058870 -16702.243206 -10957.958353 -.003954
+P 17 13480.017745 -15428.235294 16643.993817 208.735660
+V 17 20903.269732 -3493.321676 -21102.411009 .195898
+P 18 -19462.306885 -18188.317740 1465.918507 -15.638127
+V 18 3021.449797 -719.171510 31622.359586 -.026765
+P 20 8800.785869 20080.818146 -15062.603511 -183.894495
+V 20 -16184.396263 -10134.747409 -23067.106147 .027701
+P 21 -16453.880490 -8634.437637 19070.874457 73.130424
+V 21 22499.228807 -9029.848155 14894.470448 .005703
+P 22 -22226.825619 -10100.800239 -10239.360405 -39.453566
+V 22 -8255.811400 -10680.158169 28048.155896 .086869
+P 24 22684.475407 -12441.639412 6470.838456 8.381853
+V 24 8118.846336 -379.450710 -30524.441410 .030779
+P 25 -24584.898675 9034.149811 -3956.211142 61.780447
+V 25 3418.868013 -5450.522783 -30859.090558 .007848
+P 26 8064.641076 -24068.069524 6377.583830 409.078106
+V 26 1306.270385 8862.007218 31182.863637 -.124908
+P 27 14281.694498 9781.319789 20746.146587 920.249377
+V 27 -22563.570012 11226.300086 9977.943318 .041908
+P 28 22884.158991 10509.135393 -8733.095615 21.987326
+V 28 7263.894295 8936.202512 28872.651676 .016316
+P 29 10872.439132 -21054.974907 12204.836951 230.209347
+V 29 36.057518 15191.062824 26810.496132 .032278
+P 30 -16986.527277 -19201.303586 -7374.304405 806.301815
+V 30 9097.443460 2929.085239 -29407.179746 .141671
+P 31 -4074.139612 25940.715549 2187.668059 42.300227
+V 31 -3545.234014 -3560.029153 31267.764936 .306130
+* 2004 3 1 22 45 .00000000
+P 1 -251.335638 26313.989769 3652.614710 332.733939
+V 1 -2701.043311 4163.287453 -31701.285525 .020667
+P 3 -12043.935150 17266.799613 15965.675583 90.147972
+V 3 -2577.504739 -20652.276925 20493.669841 .030412
+P 4 24732.469777 -3980.291106 -9278.715648 -77.506054
+V 4 -9743.259147 6890.353054 -28555.564765 -.092136
+P 5 -3035.017879 -18215.484881 -19267.693240 19.903106
+V 5 21661.853268 10984.908129 -13716.774087 .016198
+P 6 -7030.329811 -22983.597785 11337.909646 -1.436793
+V 6 3934.783539 -14016.892405 -26539.364094 -.010594
+P 7 15269.136934 4103.168248 -20958.169443 611.109420
+V 7 -1272.691745 27592.403640 4225.954173 -.078867
+P 8 21585.009296 2200.758720 15333.640819 354.680380
+V 8 -17340.762089 9497.095765 22449.688472 -.088650
+P 9 7816.942729 -18343.821535 -17783.578425 -32.513558
+V 9 20341.955068 -8386.506910 18407.954215 -.018474
+P 10 14129.199317 -7433.405249 21229.925322 40.217525
+V 10 21761.369424 15910.781029 -8620.156216 .007801
+P 11 -5262.309442 19185.634929 -17542.129365 100.095841
+V 11 -20560.123917 9504.279774 16703.746059 .025505
+P 13 7918.859859 20824.881662 14480.301021 -30.884206
+V 13 -3144.421890 18181.217789 -24281.357057 .002487
+P 14 -14678.081230 -2524.761228 -21939.749067 -18.168929
+V 14 2271.962321 -27840.862785 1691.706281 -.001341
+P 15 -24699.228867 2528.863351 9534.215129 233.411950
+V 15 10720.662720 -6514.394297 28574.523624 .053490
+P 16 -17818.680606 4157.666067 19327.475285 15.248818
+V 16 -19407.877360 -14817.907360 -14750.936881 -.003975
+P 17 15246.384508 -15757.958340 14604.164033 208.753850
+V 17 18297.070010 -3765.678894 -24163.616565 .195881
+P 18 -19067.676007 -18160.719875 4291.422637 -15.640995
+V 18 5782.332955 1271.292501 31077.619307 -.026785
+P 20 7229.827313 19142.354218 -17003.715289 -183.892064
+V 20 -18699.380103 -10642.263445 -20007.331590 .027711
+P 21 -14384.671517 -9524.911768 20244.524944 73.131020
+V 21 23397.789518 -10756.081541 11147.445552 .005704
+P 22 -22881.040157 -10949.019599 -7633.414549 -39.445608
+V 22 -6213.211812 -8193.882933 29777.332159 .086844
+P 24 23268.680840 -12438.081864 3676.373997 8.384089
+V 24 4867.164616 530.939057 -31487.033329 .030776
+P 25 -24152.917691 8459.959293 -6691.108428 61.781204
+V 25 6131.829361 -7355.909019 -29827.469363 .007656
+P 26 8185.807696 -23115.289203 9118.236143 409.066954
+V 26 1457.862563 12284.229356 29628.724348 -.124902
+P 27 12238.398610 10864.450970 21472.029349 920.252562
+V 27 -22763.306665 12822.659514 6129.206503 .041854
+P 28 23439.047494 11206.277199 -6067.629495 21.988864
+V 28 5004.647980 6589.861406 30275.160444 .016331
+P 29 10901.926865 -19558.153970 14507.131765 230.212287
+V 29 681.457449 18020.373353 24280.211290 .032259
+P 30 -16041.769493 -18875.728074 -9950.870653 806.314015
+V 30 11902.417993 4235.544104 -27769.350672 .141652
+P 31 -4392.948513 25468.730263 4974.175146 42.326989
+V 31 -3604.549622 -6918.460177 30562.928862 .306148
+* 2004 3 1 23 0 .00000000
+P 1 -474.510030 26533.015405 776.259231 332.735532
+V 1 -2329.078011 688.751310 -32126.014166 .020598
+P 3 -12322.014508 15315.601534 17665.218433 90.149971
+V 3 -3638.994086 -22636.334731 17219.298332 .030288
+P 4 23745.702452 -3273.985926 -11762.946625 -77.514557
+V 4 -12120.166404 8840.967876 -26571.093085 -.092158
+P 5 -1006.264662 -17244.908391 -20335.270286 19.904489
+V 5 23363.833648 10523.777198 -9973.135169 .016521
+P 6 -6708.725553 -24115.936054 8858.734293 -1.438168
+V 6 3268.622494 -11102.620555 -28475.109520 -.010546
+P 7 15213.394372 6558.116676 -20392.394804 611.102573
+V 7 20.778415 26872.636687 8326.545715 -.078876
+P 8 19948.276984 3145.164343 17216.339380 354.672779
+V 8 -18950.243483 11501.993158 19326.101298 -.088696
+P 9 9544.994731 -19096.680276 -15980.945434 -32.516590
+V 9 18019.603375 -8271.840273 21596.881221 -.018489
+P 10 16082.727863 -6084.874577 20273.888001 40.218721
+V 10 21563.608596 14028.171515 -12593.102406 .008004
+P 11 -7018.806106 20031.841547 -15891.519254 100.098376
+V 11 -18436.572588 9232.842372 19924.055046 .025518
+P 13 7687.486168 22339.777246 12176.835831 -30.883671
+V 13 -2051.869837 15423.536854 -26833.022877 .002473
+P 14 -14542.570948 -5018.998987 -21598.266230 -18.169288
+V 14 743.742933 -27493.081151 5885.871648 -.001345
+P 15 -23619.653376 1859.231246 12016.750934 233.415792
+V 15 13205.334467 -8404.962840 26512.709949 .053471
+P 16 -19531.114128 2913.379846 17838.383657 15.248346
+V 16 -18561.580087 -12821.915610 -18292.987494 -.003997
+P 17 16765.411452 -16093.194496 12306.843829 208.771924
+V 17 15421.892952 -3609.878333 -26815.009276 .195863
+P 18 -18416.604312 -17971.195986 7044.048728 -15.643671
+V 18 8705.701847 2871.944573 30005.118001 -.026783
+P 20 5441.025599 18178.901333 -18653.691921 -183.889636
+V 20 -21010.273441 -10694.016531 -16606.696467 .027723
+P 21 -12257.745251 -10568.739296 21071.313476 73.132342
+V 21 23781.388404 -12422.552500 7197.185959 .005701
+P 22 -23333.552052 -11581.426294 -4895.023862 -39.438083
+V 22 -3782.748677 -5898.167320 30987.375238 .086828
+P 24 23562.669712 -12333.325505 819.223628 8.387492
+V 24 1685.527237 1865.536946 -31914.875416 .031018
+P 25 -23491.020042 7702.719548 -9309.396240 61.782025
+V 25 8516.868751 -9506.419836 -28270.867017 .007422
+P 26 8339.518988 -21863.291805 11694.702801 409.056397
+V 26 2024.221206 15493.909415 27539.900959 -.124897
+P 27 10198.362912 12084.433799 21846.058116 920.256249
+V 27 -22494.772077 14253.657929 2169.028399 .041801
+P 28 23774.670614 11702.575165 -3299.096544 21.990107
+V 28 2401.687901 4485.277983 31160.302910 .016351
+P 29 11005.501291 -17821.719107 16563.127825 230.215693
+V 29 1673.025776 20503.033455 21345.219772 .032244
+P 30 -14844.498311 -18451.790390 -12358.774900 806.326772
+V 30 14693.809569 5113.104360 -25664.685155 .141637
+P 31 -4734.471816 24698.683545 7672.673932 42.353874
+V 31 -4047.034391 -10167.300685 29314.408521 .306173
+* 2004 3 1 23 15 .00000000
+P 1 -683.459405 26436.750436 -2113.457908 332.739932
+V 1 -2386.129022 -2826.202932 -31997.391164 .020496
+P 3 -12704.521802 13205.863813 19056.217678 90.151309
+V 3 -4885.781633 -24167.448723 13647.381471 .030189
+P 4 22563.286153 -2383.680998 -14047.898346 -77.522357
+V 4 -14082.708818 10965.801564 -24133.067270 -.092187
+P 5 1159.099365 -16331.111280 -21057.683688 19.905230
+V 5 24687.119620 9732.853411 -6057.137904 .016859
+P 6 -6431.210585 -24975.485645 6226.986688 -1.439452
+V 6 2960.828218 -7969.153923 -29924.574924 -.010280
+P 7 15269.231913 8924.587180 -19464.149385 611.095759
+V 7 1192.946586 25631.630033 12268.664195 -.078884
+P 8 18188.923022 4271.947843 18801.988741 354.666014
+V 8 -20061.748791 13534.428197 15857.732085 -.088754
+P 9 11054.603553 -19819.409182 -13906.637664 -32.517814
+V 9 15501.863255 -7712.959560 24436.026872 -.018332
+P 10 17994.843741 -4912.020347 18969.921302 40.219121
+V 10 20839.640600 12022.767517 -16341.048802 .008158
+P 11 -8575.540906 20835.094866 -13966.060443 100.100780
+V 11 -16134.783376 8546.902003 22802.529082 .025532
+P 13 7538.835902 23591.629621 9664.241068 -30.883248
+V 13 -1315.031925 12349.923991 -28922.144701 .002462
+P 14 -14542.031316 -7456.883537 -20883.347170 -18.169151
+V 14 -712.044635 -26591.525243 9978.260450 -.001348
+P 15 -22334.778689 1010.204488 14292.582943 233.420268
+V 15 15273.519294 -10487.371054 23987.178576 .053567
+P 16 -21144.639942 1850.316749 16044.084450 15.247868
+V 16 -17211.731022 -10806.030596 -21523.647729 -.004015
+P 17 18017.089129 -16394.079167 9791.352788 208.788936
+V 17 12372.375211 -2999.496747 -29003.655521 .195836
+P 18 -17498.467746 -17656.532953 9677.039603 -15.645771
+V 18 11701.642157 4047.750839 28422.745913 -.026789
+P 20 3456.719696 17230.148770 -19984.436346 -183.886821
+V 20 -23030.071523 -10322.394391 -12923.400911 .027735
+P 21 -10119.295883 -11756.470205 21535.913348 73.132892
+V 21 23656.439410 -13939.115644 3110.194065 .005700
+P 22 -23552.167520 -12018.745699 -2071.847583 -39.430599
+V 22 -1027.151576 -3870.542331 31659.047538 .086813
+P 24 23576.985838 -12090.509194 -2051.919742 8.390608
+V 24 -1332.668305 3592.079425 -31796.892643 .031152
+P 25 -22631.554548 6743.748770 -11764.809842 61.781237
+V 25 10513.316583 -11825.096297 -26212.770153 .007222
+P 26 8561.400334 -20335.764438 14060.538158 409.044818
+V 26 2964.412816 18391.340028 24955.405230 -.124893
+P 27 8202.516784 13422.738974 21860.951203 920.259929
+V 27 -21787.483542 15439.204199 -1841.198861 .041750
+P 28 23863.081232 12022.913956 -474.664948 21.991730
+V 28 -476.573302 2689.772901 31516.073746 .016371
+P 29 11211.573158 -15880.126809 18338.656455 230.218632
+V 29 2947.577180 22568.874476 18056.568257 .032221
+P 30 -13399.997994 -17968.317219 -14557.606909 806.339345
+V 30 17381.464040 5559.653919 -23130.011761 .141625
+P 31 -5132.129501 23644.779945 10235.035405 42.381230
+V 31 -4846.105596 -13210.914243 27541.798596 .306203
+* 2004 3 1 23 30 .00000000
+P 1 -916.833903 26026.151826 -4966.658079 332.741833
+V 1 -2869.891981 -6279.452094 -31315.316802 .020146
+P 3 -13204.685802 10980.243504 20114.730511 90.155179
+V 3 -6240.073954 -25206.389935 9841.710189 .030204
+P 4 21224.517691 -1297.446004 -16094.463370 -77.529871
+V 4 -15589.052877 13180.284754 -21280.760480 -.092221
+P 5 3424.340643 -15500.979054 -21422.342125 19.908186
+V 5 25575.004820 8676.119075 -2034.111966 .017203
+P 6 -6164.208081 -25546.467574 3487.733888 -1.440649
+V 6 3038.066368 -4705.304396 -30860.237840 -.010007
+P 7 15422.078381 11157.398327 -18190.924430 611.089011
+V 7 2163.886147 23910.785041 15981.324158 -.078896
+P 8 16352.551541 5579.360054 20062.123149 354.658445
+V 8 -20660.907029 15500.135819 12102.629177 -.088830
+P 9 12332.098601 -20471.213230 -11594.532124 -32.521350
+V 9 12876.502756 -6694.696455 26872.973246 -.018206
+P 10 19818.084192 -3921.578675 17341.139408 40.220577
+V 10 19590.335506 9990.566745 -19801.167386 .008326
+P 11 -9920.258777 21557.566791 -11798.847201 100.103396
+V 11 -13739.421469 7437.629492 25288.459875 .025546
+P 13 7438.734130 24555.963710 6985.787395 -30.883594
+V 13 -979.144937 9049.895465 -30513.625832 .002449
+P 14 -14665.867140 -9789.660436 -19807.366922 -18.169399
+V 14 -2005.668132 -25163.467588 13897.828380 -.001352
+P 15 -20884.372097 -31.679130 16321.741516 233.426794
+V 15 16877.207700 -12675.663343 21038.525718 .053680
+P 16 -22614.700488 966.168856 13975.135174 15.247321
+V 16 -15378.305916 -8860.832422 -24387.576541 -.004037
+P 17 18990.229266 -16619.237936 7101.426840 208.806623
+V 17 9249.261134 -1927.602537 -30684.579099 .195812
+P 18 -16310.963106 -17255.891671 12145.626063 -15.648200
+V 18 14675.725568 4781.138040 26356.735017 -.026793
+P 20 1306.697037 16332.126654 -20973.306171 -183.883979
+V 20 -24680.783075 -9576.035559 -9020.290452 .027745
+P 21 -8014.128236 -13070.684452 21629.136187 73.133211
+V 21 23047.320122 -15219.401300 -1043.806870 .005702
+P 22 -23510.953065 -12288.122542 787.155457 -39.422803
+V 22 1977.638789 -2175.683718 31782.727573 .086798
+P 24 23330.305298 -11676.463861 -4887.774766 8.393132
+V 24 -4100.672609 5660.998943 -31131.146110 .031199
+P 25 -21611.661385 5571.748076 -14013.634856 61.781741
+V 25 12075.733081 -14225.358160 -23686.320501 .007216
+P 26 8882.593775 -18564.878549 16173.270272 409.033837
+V 26 4220.113755 20888.341014 21924.353621 -.124904
+P 27 6288.470082 14853.928759 21515.030310 920.263419
+V 27 -20685.490953 16306.346563 -5838.456738 .041698
+P 28 23682.998125 12197.621869 2357.805899 21.993337
+V 28 -3550.873208 1256.647403 31339.107446 .016395
+P 29 11542.313765 -13773.512784 19804.382438 230.221325
+V 29 4430.109418 24162.217217 14470.466157 .032190
+P 30 -11721.588354 -17463.546067 -16510.574051 806.351989
+V 30 19877.510441 5590.317454 -20208.775569 .141610
+P 31 -5616.181272 22329.547544 12615.365138 42.409056
+V 31 -5958.343594 -15960.596949 25275.107035 .306236
+* 2004 3 1 23 45 .00000000
+P 1 -1212.224821 25311.315654 -7733.890274 332.744421
+V 1 -3759.197324 -9570.667917 -30089.405752 .019796
+P 3 -13828.468196 8684.149283 20822.741947 90.157557
+V 3 -7618.737632 -25731.417834 5870.006902 .030073
+P 4 19771.710009 -11.250907 -17867.389977 -77.538887
+V 4 -16614.209817 15393.971646 -18060.489251 -.092251
+P 5 5748.248463 -14775.178233 -21422.632399 19.909510
+V 5 25985.028300 7427.339625 2028.593089 .017538
+P 6 -5872.500173 -25821.333599 688.130676 -1.441251
+V 6 3509.986995 -1404.599326 -31263.324468 -.009686
+P 7 15650.562181 13215.861337 -16596.373138 611.082317
+V 7 2862.934293 21768.170277 19398.803318 -.078913
+P 8 14485.216150 7057.138267 20973.772613 354.650222
+V 8 -20752.146863 17304.822663 8124.712472 -.088913
+P 9 13371.870300 -21010.744654 -9082.979354 -32.523259
+V 9 10234.332464 -5220.061610 28860.913226 -.017962
+P 10 21505.920315 -3111.675132 15416.075450 40.220776
+V 10 17835.506929 8026.294771 -22916.015950 .008484
+P 11 -11048.416156 22161.392968 -9427.240152 100.105784
+V 11 -11336.631950 5913.084378 27337.898190 .025559
+P 13 7349.708301 25216.725852 4187.522489 -30.883374
+V 13 -1072.012362 5620.494553 -31580.930933 .002441
+P 14 -14895.691449 -11971.863096 -18388.966857 -18.169499
+V 14 -3054.298415 -23254.466525 17576.574329 -.001354
+P 15 -19311.757676 -1271.808763 18068.273648 233.431372
+V 15 17985.634733 -14876.969705 17715.315749 .053462
+P 16 -23899.344880 250.661638 11666.808147 15.247091
+V 16 -13099.099048 -7072.201019 -26835.490916 -.004056
+P 17 19682.835432 -16727.581231 4284.441774 208.823949
+V 17 6155.376541 -407.510323 -31822.076115 .195796
+P 18 -14860.359601 -16809.205314 14407.761040 -15.650537
+V 18 17532.466724 5072.555997 23841.270937 -.026820
+P 20 -972.753923 15515.830076 -21603.485183 -183.881092
+V 20 -25896.391392 -8517.807086 -4963.811603 .027755
+P 21 -5984.073922 -14486.491143 21348.171124 73.133915
+V 21 21995.525877 -16184.332842 -5193.017282 .005700
+P 22 -23191.296755 -12421.852285 3632.595068 -39.414450
+V 22 5145.382299 -863.029829 31358.440797 .086790
+P 24 22848.687611 -11063.201539 -7639.308608 8.395780
+V 24 -6541.686125 8007.055368 -29925.134889 .031298
+P 25 -20471.812024 4183.518861 -16015.560144 61.783478
+V 25 13175.788431 -16614.373961 -20733.917339 .007260
+P 26 9328.305012 -16590.084860 17995.258488 409.022653
+V 26 5718.224847 22911.880777 18504.769916 -.124906
+P 27 4489.266480 16346.425666 20812.336420 920.267575
+V 27 -19245.935112 16792.040769 -9758.789613 .041652
+P 28 23220.654380 12261.123730 5150.538422 21.994933
+V 28 -6733.996948 223.382840 30634.558821 .016416
+P 29 12012.722967 -11546.300086 20936.226718 230.224419
+V 29 6036.783196 25243.726683 10647.350212 .032163
+P 30 -9830.274878 -16973.604861 -18185.064165 806.364854
+V 30 22099.542389 5236.668279 -16950.303835 .141603
+P 31 -6212.283453 20783.049152 14770.921403 42.436640
+V 31 -7325.219000 -18338.186263 22554.283722 .306267
+EOF
diff --git a/trunk/tests/data/partials.dat b/dev/oldtests/data/partials.dat
similarity index 100%
rename from trunk/tests/data/partials.dat
rename to dev/oldtests/data/partials.dat
diff --git a/trunk/tests/data/positiontest.ref b/dev/oldtests/data/positiontest.ref
similarity index 100%
rename from trunk/tests/data/positiontest.ref
rename to dev/oldtests/data/positiontest.ref
diff --git a/trunk/tests/data/squ.dat b/dev/oldtests/data/squ.dat
similarity index 100%
rename from trunk/tests/data/squ.dat
rename to dev/oldtests/data/squ.dat
diff --git a/trunk/tests/data/stringutiltest.ref b/dev/oldtests/data/stringutiltest.ref
similarity index 100%
rename from trunk/tests/data/stringutiltest.ref
rename to dev/oldtests/data/stringutiltest.ref
diff --git a/trunk/tests/data/sym.dat b/dev/oldtests/data/sym.dat
similarity index 100%
rename from trunk/tests/data/sym.dat
rename to dev/oldtests/data/sym.dat
diff --git a/trunk/tests/data/tmatrix.dat b/dev/oldtests/data/tmatrix.dat
similarity index 100%
rename from trunk/tests/data/tmatrix.dat
rename to dev/oldtests/data/tmatrix.dat
diff --git a/trunk/tests/data/ut.dat b/dev/oldtests/data/ut.dat
similarity index 100%
rename from trunk/tests/data/ut.dat
rename to dev/oldtests/data/ut.dat
diff --git a/dev/oldtests/daytimetest.cpp b/dev/oldtests/daytimetest.cpp
new file mode 100644
index 0000000..851dd05
--- /dev/null
+++ b/dev/oldtests/daytimetest.cpp
@@ -0,0 +1,80 @@
+#pragma ident "$Id$"
+
+
+//
+// test the daytime implementation
+//
+
+#include <iostream>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "GPSZcount.hpp"
+
+using namespace std;
+using namespace gpstk::StringUtils;
+
+/// prints the given daytime with the given format
+void dtft(ostream& s, const gpstk::DayTime& t, const string& fmt)
+{
+ string fs = fmt;
+ string p = t.printf(fmt.c_str());
+
+ s << leftJustify(fs, 30) << " "
+ << p << endl;
+}
+
+/// returns 0 if all tests pass
+int main()
+{
+ using gpstk::DayTime;
+
+ try
+ {
+ cout << "BOT:" << DayTime(gpstk::DayTime::BEGINNING_OF_TIME) << endl;
+ cout << "EOT:" << DayTime(gpstk::DayTime::END_OF_TIME) << endl;
+
+ DayTime dt;
+ dt.setSystemTime();
+ cout << "Check that the output matches the current UTC time." << endl
+ << "string printf()" << endl;
+
+ dtft(cout, dt, "mjd: %Q (%.0Q)");
+ dtft(cout, dt, "mjd: %5.3Q");
+ dtft(cout, dt, "mdy: %02m/%02d/%04Y");
+ dtft(cout, dt, "hms: %02H:%02M:%02S");
+ dtft(cout, dt, "hms: %02H:%02M:%06.3f");
+ dtft(cout, dt, "cal: %A, %B %d, %Y");
+ dtft(cout, dt, "week: %F(%G)");
+ dtft(cout, dt, "sow: %g");
+ dtft(cout, dt, "sow: %06.3g");
+ dtft(cout, dt, "doy: %j:%s");
+ dtft(cout, dt, "dow: %w");
+ dtft(cout, dt, "z: %Z (%z)");
+ dtft(cout, dt, "unix: %U.%06u");
+
+ cout << endl
+ << "The following functions use DayTime::setToString()" << endl;
+
+ string format = "%02m/%02d/%04Y %02H:%02M:%02S";
+ string st = dt.printf(format);
+
+ DayTime q;
+ q.setToString(st, format);
+ dtft(cout, q, format);
+
+ cout << "Tests complete." << endl;
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(...)
+ {
+ cout << "Some other exception thrown..." << endl;
+ }
+
+ cout << "Exiting with exceptions." << endl;
+ return -1;
+}
diff --git a/dev/oldtests/delFileSpecTestDirs.pl b/dev/oldtests/delFileSpecTestDirs.pl
new file mode 100755
index 0000000..d3532a5
--- /dev/null
+++ b/dev/oldtests/delFileSpecTestDirs.pl
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+# $Id$
+#
+#
+# This script eliminates the set of dummy files and directories created
+# by genFileSpecTestDirs. The dummy files/directories are used while
+# running FileSpecTest but are unnecessary afterwards.
+#
+
+for ($stn = 401; $stn <= 403; $stn++)
+{
+ $stnDir = sprintf("fstest/ADMS%03i/RINEXOBS", $stn);
+
+ for ($year = 1; $year <= 2; $year++)
+ {
+
+ for ($day = 50; $day <= 53; $day++)
+ {
+ $stnFile = $stnDir . sprintf("/S%02i1%03iA.%02iO", substr($stn,1,2), $day, $year);
+ # print "$stnFile\n";
+ `rm $stnFile`;
+ }
+ }
+ `rmdir -p $stnDir`;
+}
diff --git a/dev/oldtests/exceptiontest.cpp b/dev/oldtests/exceptiontest.cpp
new file mode 100755
index 0000000..d5893da
--- /dev/null
+++ b/dev/oldtests/exceptiontest.cpp
@@ -0,0 +1,52 @@
+#pragma ident "$Id$"
+
+
+
+#include <iostream>
+#include <string>
+
+#include "Exception.hpp"
+
+/**
+ * @file exceptiontest.cpp
+ * tests gpslib::Exception
+ */
+
+using namespace std;
+
+class TestException
+{
+public:
+ NEW_EXCEPTION_CLASS(TE, gpstk::Exception);
+
+ int foo;
+
+ void funcie() throw(TE)
+ {
+ try {
+ foo=1;
+ if (foo-1==0)
+ {
+ TE e("Blarfo");
+ e.addLocation(FILE_LOCATION);
+ throw e;
+ }
+ foo=4;
+ } catch (TE& e) {
+ e.addText("Ja mon");
+ e.addLocation(FILE_LOCATION);
+ throw;
+ }
+ }
+};
+
+// returns 0 if all tests pass
+int main()
+{
+ TestException a;
+ try {
+ a.funcie();
+ } catch (gpstk::Exception& e) {
+ cout << "main " << e;
+ }
+}
diff --git a/dev/oldtests/genFileSpecTestDirs.pl b/dev/oldtests/genFileSpecTestDirs.pl
new file mode 100755
index 0000000..836c4f7
--- /dev/null
+++ b/dev/oldtests/genFileSpecTestDirs.pl
@@ -0,0 +1,32 @@
+#!/usr/bin/perl -w
+#
+# "$Id$"
+
+
+#
+# This script generates a set of dummy files and directories for
+# running FileSpecTest. They are in the form of
+# fstest/ADMS###/RINEXOBS/S##1###A.##O
+
+for($stn = 401; $stn <= 403; $stn++)
+{
+ $stnDir = sprintf("fstest/ADMS%03i", $stn);
+ `mkdir -p $stnDir`;
+ $stnDir .= "/RINEXOBS";
+ `mkdir $stnDir`;
+ $stnDir .= sprintf("/S%02i1", substr($stn,1,2));
+ for ($year = 1; $year <= 2; $year++)
+ {
+ for ($day = 50; $day <= 53; $day++)
+ {
+ $thisFile = $stnDir . sprintf("%03iA.%02iO", $day, $year);
+ print "$thisFile\n";
+ `touch $thisFile`;
+ }
+ }
+
+# for ($num = 1; $num <= 5; $num++)
+# {
+# `touch $num`;
+# }
+}
diff --git a/dev/oldtests/gpszcounttest.cpp b/dev/oldtests/gpszcounttest.cpp
new file mode 100755
index 0000000..6145a8a
--- /dev/null
+++ b/dev/oldtests/gpszcounttest.cpp
@@ -0,0 +1,184 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file gpszcounttest.cpp
+ * A set of tests for the GPSZcount class.
+ * tests gpslib::GPSZcount
+ */
+
+#include <limits>
+#include "GPSZcount.hpp"
+#include "CommandOptionParser.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+bool failure = false;
+int verboseLevel = 0;
+void say(const string& foo);
+void process(bool result);
+
+//
+// returns zero if all tests pass
+//
+int main (int argc, char *argv[])
+{
+ // take care of command line options
+ CommandOptionNoArg hOption('h', "help", "Display this helpful information.",
+ false);
+ CommandOptionNoArg vOption('v', "verbose", "Increase the verbosity.",
+ false);
+ CommandOptionNoArg qOption('q', "quiet", "Only issue a return code.",
+ false);
+ CommandOptionParser cop("GPSZcount Test Suite");
+ cop.parseOptions(argc, argv);
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cout);
+ cop.displayUsage(cout);
+ return 1;
+ }
+
+ if(hOption.getCount())
+ {
+ cop.displayUsage(cout);
+ return 0;
+ }
+
+ verboseLevel = vOption.getCount();
+
+ try
+ {
+ // Proceed with testing
+ GPSZcount one, two;
+
+ say("Equality Test: ");
+ process (one == two);
+
+ say("Assignment Test 1: ");
+ one = GPSZcount(1000, 5);
+ process(one.getWeek() == 1000 &&
+ one.getZcount() == 5);
+
+ say("Assignment Test 2: ");
+ try
+ {
+ // this should throw an exception
+ one.setZcount(GPSZcount::ZCOUNT_WEEK);
+ // if we get here, it failed
+ process(false);
+ }
+ catch (InvalidParameter& ip)
+ {
+ process(true);
+ }
+
+ say("Addition Test: ");
+ one += GPSZcount::ZCOUNT_WEEK + 5 ;
+ process(one.getWeek() == 1001 &&
+ one.getZcount() == 10) ;
+
+ say("Subtraction Test: ");
+ one -= GPSZcount::ZCOUNT_WEEK + 5 ;
+ process(one.getWeek() == 1000 &&
+ one.getZcount() == 5) ;
+
+ say("Invalid Week Test 1: ");
+ one.setWeek(numeric_limits<short>::max());
+ try
+ {
+ // this should throw an exception
+ one += GPSZcount::ZCOUNT_WEEK;
+ // if we get here, it failed
+ process(false);
+ }
+ catch (InvalidRequest& ir)
+ {
+ process(true);
+ }
+
+ say("Invalid Week Test 2: " );
+ one.setWeek(0);
+ try
+ {
+ // this should throw an exception
+ one -= GPSZcount::ZCOUNT_WEEK;
+ // if we get here, it failed
+ process(false);
+ }
+ catch (InvalidRequest& ir)
+ {
+ process(true);
+ }
+
+ say("Less-Than Test: ");
+ one.setWeek(1000).setZcount(GPSZcount::ZCOUNT_WEEK / 2) ;
+ two = one + 5 ;
+ process(two >= one) ;
+
+ say("Greater-Than Test: ") ;
+ two = one - 5 ;
+ process(two <= one) ;
+
+ say("SameTimeBlock Test 1: ") ;
+ // set one to be at 4:20 and two at 4:00
+ one.setWeek(1200).setZcount(4 * GPSZcount::ZCOUNT_HOUR
+ + 20 * GPSZcount::ZCOUNT_MINUTE) ;
+ two.setWeek(1200).setZcount(4 * GPSZcount::ZCOUNT_HOUR) ;
+ // test if one and two are between 4:00 and 5:00
+ process(one.inSameTimeBlock(two, GPSZcount::ZCOUNT_HOUR)) ;
+
+ say("SameTimeBlock Test 2: ") ;
+ // test if one and two are NOT between 4:20 and 4:21
+ process(! one.inSameTimeBlock(two, GPSZcount::ZCOUNT_MINUTE)) ;
+
+ say("SameTimeBlock Test 3: ") ;
+ // test if one and two are NOT between 4:15 and 5:15
+ process(! one.inSameTimeBlock(two, GPSZcount::ZCOUNT_HOUR,
+ 15 * GPSZcount::ZCOUNT_MINUTE)) ;
+
+ say("Dump Test: ") ;
+ if (verboseLevel)
+ {
+ cout << endl << one << endl;
+ one.dump(cout, 1);
+ }
+
+ say("String Test: ");
+ one.setWeek(1200).setZcount(123456);
+ process(string(one) == string("1200w123456z"));
+
+ if (qOption.getCount() == 0)
+ {
+ // Display the overall results
+ cout << "GPSZcount Overall results: "
+ << (failure ? "Fail" : "Pass") << endl;
+ }
+
+ return failure ? 1 : 0 ;
+ }
+ catch(gpstk::Exception& exc)
+ {
+ cout << endl << endl << "Caught a " << exc.getName() << " exception:"
+ << endl << exc << endl ;
+ return 1 ;
+ }
+}
+
+void say(const string& foo)
+{
+ if (verboseLevel)
+ cout << foo << flush;
+}
+
+void process(bool result)
+{
+ failure |= !result;
+
+ if(verboseLevel)
+ {
+ cout << (result ? "Pass" : "Fail") << endl;
+ }
+}
diff --git a/trunk/tests/petest.cpp b/dev/oldtests/petest.cpp
similarity index 100%
rename from trunk/tests/petest.cpp
rename to dev/oldtests/petest.cpp
diff --git a/dev/oldtests/positiontest.cpp b/dev/oldtests/positiontest.cpp
new file mode 100755
index 0000000..d28bad1
--- /dev/null
+++ b/dev/oldtests/positiontest.cpp
@@ -0,0 +1,234 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file positiontest.cpp Test the Position module
+ *
+ */
+
+#include <iostream>
+#include <iomanip>
+#include "Position.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+int main()
+{
+ try
+ {
+ int i;
+ Position c,s,d,g;
+ cout << "Position() " << c << endl;
+
+ // test transformTo
+ cout << "Test set...() and transformTo\n";
+ {
+ c.setECEF(-1575232.0141,-4707872.2332, 3993198.4383);
+ cout << "Position.set to Cartesian " << c << endl;
+ Position t(c);
+ t.transformTo(Position::Geodetic);
+ cout << "Transform Cartesian to Geodetic " << t;
+ cout << " Error : " << range(t,c) << " m" << endl;
+ t = c;
+ t.transformTo(Position::Geocentric);
+ cout << "Transform Cartesian to Geocentric " << t;
+ cout << " Error : " << range(t,c) << " m" << endl;
+ t = c;
+ t.transformTo(Position::Spherical);
+ cout << "Transform Cartesian to Spherical " << t;
+ cout << " Error : " << range(t,c) << " m" << endl;
+ }
+ {
+ d.setGeodetic(39.000004186778,251.499999999370,1400.009066903964);
+ cout << "Position.set to Geodetic " << d << endl;
+ Position t(d);
+ t.transformTo(Position::Cartesian);
+ cout << "Transform Geodetic to Cartesian " << t;
+ cout << " Error : " << range(t,d) << " m" << endl;
+ t = d;
+ t.transformTo(Position::Geocentric);
+ cout << "Transform Geodetic to Geocentric " << t;
+ cout << " Error : " << range(t,d) << " m" << endl;
+ t = d;
+ t.transformTo(Position::Spherical);
+ cout << "Transform Geodetic to Spherical " << t;
+ cout << " Error : " << range(t,d) << " m" << endl;
+ }
+ {
+ g.setGeocentric(38.811958506159,251.499999999370,6371110.627671023800);
+ cout << "Position.set to Geocentric " << g << endl;
+ Position t(g);
+ t.transformTo(Position::Cartesian);
+ cout << "Transform Geocentric to Cartesian " << t;
+ cout << " Error : " << range(t,g) << " m" << endl;
+ t = g;
+ t.transformTo(Position::Geodetic);
+ cout << "Transform Geocentric to Geodetic " << t;
+ cout << " Error : " << range(t,g) << " m" << endl;
+ t = g;
+ t.transformTo(Position::Spherical);
+ cout << "Transform Geocentric to Spherical " << t;
+ cout << " Error : " << range(t,g) << " m" << endl;
+ }
+ {
+ s.setSpherical(51.188041493841,251.499999999370,6371110.627671023800);
+ cout << "Position.set to Spherical " << s << endl;
+ Position t(s);
+ t.transformTo(Position::Cartesian);
+ cout << "Transform Spherical to Cartesian " << t;
+ cout << " Error : " << range(t,s) << " m" << endl;
+ t = s;
+ t.transformTo(Position::Geocentric);
+ cout << "Transform Spherical to Geocentric " << t;
+ cout << " Error : " << range(t,s) << " m" << endl;
+ t = s;
+ t.transformTo(Position::Geodetic);
+ cout << "Transform Spherical to Geodetic " << t;
+ cout << " Error : " << range(t,s) << " m" << endl;
+ }
+
+ // test printf
+ cout << "\nTest printf and the indicated 'get()' functions\n";
+ cout << c.printf("%13.4x X() (meters)") << endl;
+ cout << c.printf("%13.4y Y() (meters)") << endl;
+ cout << c.printf("%13.4z Z() (meters)") << endl;
+ cout << c.printf("%13.4X X()/1000 (kilometers)") << endl;
+ cout << c.printf("%13.4Y Y()/1000 (kilometers)") << endl;
+ cout << c.printf("%13.4Z Z()/1000 (kilometers)") << endl;
+ cout << c.printf("%15.6A geodeticLatitude() (degrees North)") << endl;
+ cout << c.printf("%15.6a geocentricLatitude() (degrees North)") << endl;
+ cout << c.printf("%15.6L longitude() (degrees East)") << endl;
+ cout << c.printf("%15.6l longitude() (degrees East)") << endl;
+ cout << c.printf("%15.6w longitude() (degrees West)") << endl;
+ cout << c.printf("%15.6W longitude() (degrees West)") << endl;
+ cout << c.printf("%15.6t theta() (degrees)") << endl;
+ cout << c.printf("%15.6T theta() (radians)") << endl;
+ cout << c.printf("%15.6p phi() (degrees)") << endl;
+ cout << c.printf("%15.6P phi() (radians)") << endl;
+ cout << c.printf("%13.4r radius() meters") << endl;
+ cout << c.printf("%13.4R radius()/1000 kilometers") << endl;
+ cout << c.printf("%13.4h height() meters") << endl;
+ cout << c.printf("%13.4H height()/1000 kilometers") << endl;
+
+ // test setToString
+ cout << "\nTest setToString and equality operators\n";
+ string fmt[5]={
+ "",
+ "%A degN %L degE %h m",
+ "%a degN %L degE %r m",
+ "%x m %y m %z m",
+ "%t deg %p deg %r M"};
+ for(i=1; i<5; i++) {
+ string str;
+ Position t(c),tt;
+ t.transformTo(static_cast<Position::CoordinateSystem>(i));
+ {
+ ostringstream o;
+ o << t;
+ str = o.str();
+ }
+ tt.setToString(str,fmt[i]);
+ cout << "System: " << t.getSystemName() << endl;
+ cout << "Original " << t << endl;
+ cout << "string " << str << endl;
+ cout << "setToString " << tt
+ << " Error " << range(tt,t) << " m" << endl;
+ cout << " equality: " << (t==tt ? "==" : "not ==");
+ cout << " but " << (t!=tt ? "!=" : "not !=") << endl;
+ cout << endl;
+ }
+
+ // test elevation and azimuth
+ cout << "Elevation and azimth" << fixed << endl;
+ c.setECEF(-1575232.0141,-4707872.2332, 3993198.4383);
+ s.setECEF(3*6371110.62767,0,0);
+ cout << setw(6) << setprecision(2) << c.elevation(s)
+ << " " << setw(6) << setprecision(2) << c.azimuth(s) << endl;
+ // compare with functions from Triple::
+ cout << setw(6) << setprecision(2) << c.elvAngle(s)
+ << " " << setw(6) << setprecision(2) << c.azAngle(s) << endl;
+ cout << endl;
+
+ // test IPP
+ cout << "The IPP at " << g << " (90,0,350000) is\n"
+ << " " << g.getIonosphericPiercePoint(90,0,350000)
+ << " " << g.getSystemName() << endl << endl;
+
+ // test ALL transforms with pole
+ // X -> D -> C -> S -> X -> C -> D -> X -> S -> D -> S -> C -> X
+ cout << "Try to break it at the pole\n";
+ c.setECEF(0,0,6371110.6277);
+ //c.setECEF(0,0,0.0001); // this will break it
+ cout << "Set to the pole in cartesian : " << c << endl;
+ c.transformTo(Position::Geodetic);
+ cout << "The pole in geodetic " << c << endl;
+ c.transformTo(Position::Geocentric);
+ cout << "The pole in geocentric " << c << endl;
+ c.transformTo(Position::Spherical);
+ cout << "The pole in spherical " << c << endl;
+ c.transformTo(Position::Cartesian);
+ cout << "The pole in cartesian " << c << endl;
+ c.transformTo(Position::Geocentric);
+ cout << "The pole in geocentric " << c << endl;
+ c.transformTo(Position::Geodetic);
+ cout << "The pole in geodetic " << c << endl;
+ c.transformTo(Position::Cartesian);
+ cout << "The pole in cartesian " << c << endl;
+ c.transformTo(Position::Spherical);
+ cout << "The pole in spherical " << c << endl;
+ c.transformTo(Position::Geodetic);
+ cout << "The pole in geodetic " << c << endl;
+ c.transformTo(Position::Spherical);
+ cout << "The pole in spherical " << c << endl;
+ c.transformTo(Position::Geocentric);
+ cout << "The pole in geocentric " << c << endl;
+ c.transformTo(Position::Cartesian);
+ cout << "The pole in cartesian " << c << endl;
+
+ // test ALL transforms with origin
+ // X -> D -> C -> S -> X -> C -> D -> X -> S -> D -> S -> C -> X
+ cout << endl << "Try to break it at the origin\n";
+ c.setECEF(0,0,0);
+ cout << "Set to the origin in cartesian : " << c << endl;
+ c.transformTo(Position::Geodetic);
+ cout << "The origin in geodetic " << c << endl;
+ c.transformTo(Position::Geocentric);
+ cout << "The origin in geocentric " << c << endl;
+ c.transformTo(Position::Spherical);
+ cout << "The origin in spherical " << c << endl;
+ c.transformTo(Position::Cartesian);
+ cout << "The origin in cartesian " << c << endl;
+ c.transformTo(Position::Geocentric);
+ cout << "The origin in geocentric " << c << endl;
+ c.transformTo(Position::Geodetic);
+ cout << "The origin in geodetic " << c << endl;
+ c.transformTo(Position::Cartesian);
+ cout << "The origin in cartesian " << c << endl;
+ c.transformTo(Position::Spherical);
+ cout << "The origin in spherical " << c << endl;
+ c.transformTo(Position::Geodetic);
+ cout << "The origin in geodetic " << c << endl;
+ c.transformTo(Position::Spherical);
+ cout << "The origin in spherical " << c << endl;
+ c.transformTo(Position::Geocentric);
+ cout << "The origin in geocentric " << c << endl;
+ c.transformTo(Position::Cartesian);
+ cout << "The origin in cartesian " << c << endl;
+
+ cout << "Tests complete." << endl;
+ return 0;
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+ catch(...)
+ {
+ cout << "Some other exception thrown..." << endl;
+ }
+
+ cout << "Exiting with exceptions." << endl;
+ return -1;
+}
diff --git a/trunk/tests/rinex_met_livetest.pl b/dev/oldtests/rinex_met_livetest.pl
similarity index 100%
rename from trunk/tests/rinex_met_livetest.pl
rename to dev/oldtests/rinex_met_livetest.pl
diff --git a/dev/oldtests/rinex_met_read_write.cpp b/dev/oldtests/rinex_met_read_write.cpp
new file mode 100644
index 0000000..2a7c3a3
--- /dev/null
+++ b/dev/oldtests/rinex_met_read_write.cpp
@@ -0,0 +1,63 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file rinex_met_read_write.cpp
+ * tests gpslib::RinexMetData, gpslib::RinexMetHeader and gpslib::RinexMetStream.
+ */
+
+#include "RinexMetBase.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetStream.hpp"
+
+using namespace std;
+
+/// Returns 0 on success. The input file and output file should diff
+/// without errors.
+main(int argc, char *argv[])
+{
+ if (argc<3)
+ {
+ cout << "rinex_met_read_write inputfile outputfile" << endl;
+ exit(-1);
+ }
+
+ try
+ {
+ cout << "Reading " << argv[1] << endl;
+ gpstk::RinexMetStream roffs(argv[1]);
+ cout << "Writing " << argv[2] << endl;
+ gpstk::RinexMetStream out(argv[2],ios::out);
+// out.exceptions(fstream::failbit);
+ gpstk::RinexMetHeader roh;
+ gpstk::RinexMetData roe;
+
+
+
+ roffs >> roh;
+ out << roh;
+ roh.dump(cout);
+
+ while (roffs >> roe)
+ {
+ out << roe;
+ }
+
+ cout << "done" << endl;
+ exit(0);
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+ exit(0);
+} // main()
diff --git a/dev/oldtests/rinex_met_test.cpp b/dev/oldtests/rinex_met_test.cpp
new file mode 100644
index 0000000..02cb56e
--- /dev/null
+++ b/dev/oldtests/rinex_met_test.cpp
@@ -0,0 +1,59 @@
+#pragma ident "$Id$"
+
+
+
+#include "RinexMetBase.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetStream.hpp"
+
+/**
+ * @file rinex_met_test.cpp
+ * Tests gpslib::RinexMetStream, gpslib::RinexMetData, gpslib::RinexMetHeader.
+ */
+
+using namespace std;
+
+/// returns 0 if successful.
+main(int argc, char *argv[])
+{
+ if (argc<2)
+ {
+ cout << "Gimme a rinex obs to chew on! Exiting." << endl;
+ exit(-1);
+ }
+
+ try
+ {
+ cout << "Reading " << argv[1] << "." << endl;
+
+ gpstk::RinexMetStream roffs(argv[1]);
+
+ // reading the header data isn't necessary
+// gpstk::RinexMetHeader roh;
+ gpstk::RinexMetData roe;
+
+ roffs.exceptions(fstream::failbit);
+
+// roffs >> roh;
+// roh.dump(cout);
+
+ while (roffs >> roe)
+ {}
+
+ cout << "done" << endl;
+ exit(0);
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+ exit(0);
+} // main()
diff --git a/dev/oldtests/rinex_nav_read_write.cpp b/dev/oldtests/rinex_nav_read_write.cpp
new file mode 100644
index 0000000..bf727bc
--- /dev/null
+++ b/dev/oldtests/rinex_nav_read_write.cpp
@@ -0,0 +1,61 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file rinex_nav_read_write.cpp
+ * tests gpslib::RinexNavStream, gpslib::RinexNavData, gpslib::RinexNavHeader.
+ */
+
+#include "RinexNavBase.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavStream.hpp"
+
+using namespace std;
+
+/// Returns 0 on success, and input and output files should diff without error.
+main(int argc, char *argv[])
+{
+ if (argc<2)
+ {
+ cout << "rinex_nav_read_write inputfile outputfile" << endl;
+ exit(-1);
+ }
+
+ try
+ {
+ cout << "Reading " << argv[1] << endl;
+ gpstk::RinexNavStream rnffs(argv[1]);
+ cout << "Writing " << argv[2] << endl;
+ gpstk::RinexNavStream out(argv[2], ios::out);
+ gpstk::RinexNavHeader rnh;
+ gpstk::RinexNavData rne;
+
+ rnffs >> rnh;
+ out << rnh;
+ rnh.dump(cout);
+
+ int i = 0;
+ while (rnffs >> rne)
+ {
+ out << rne;
+ i++;
+ }
+
+ cout << "Read " << i << " records. Done." << endl;
+ exit(0);
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+ exit(0);
+} // main()
diff --git a/dev/oldtests/rinex_nav_test.cpp b/dev/oldtests/rinex_nav_test.cpp
new file mode 100644
index 0000000..0d8b03d
--- /dev/null
+++ b/dev/oldtests/rinex_nav_test.cpp
@@ -0,0 +1,60 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file rinex_nav_test.cpp
+ * tests gpslib::RinexNavStream, gpslib::RinexNavData, gpslib::RinexNavHeader.
+ */
+
+//#include "RinexNavBase.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexMetStream.hpp"
+
+using namespace std;
+
+/// Returns 0 when successful.
+main(int argc, char *argv[])
+{
+ if (argc<2)
+ {
+ cout << "Gimme a rinex nav to chew on! Exiting." << endl;
+ exit(-1);
+ }
+
+ try
+ {
+ cout << "Reading " << argv[1] << "." << endl;
+
+ gpstk::RinexNavStream rnffs(argv[1]);
+ gpstk::RinexNavHeader rnh;
+ gpstk::RinexNavData rne;
+
+ rnffs.exceptions(fstream::failbit);
+
+ rnffs >> rnh;
+ rnh.dump(cout);
+
+ int i = 0;
+ while (rnffs >> rne)
+ {
+ i++;
+ }
+
+ cout << "Read " << i << " records. Done." << endl;
+ exit(0);
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+ exit(0);
+} // main()
diff --git a/dev/oldtests/rinex_obs_read_write.cpp b/dev/oldtests/rinex_obs_read_write.cpp
new file mode 100644
index 0000000..64f97ea
--- /dev/null
+++ b/dev/oldtests/rinex_obs_read_write.cpp
@@ -0,0 +1,65 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file rinex_obs_read_write.cpp
+ * tests gpslib::RinexObsData, gpslib::RinexObsStream, gpslib::RinexObsHeader.
+ */
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+
+using namespace std;
+
+/// Returns 0 on success. Input and output files should diff wihtout error.
+main(int argc, char *argv[])
+{
+
+ if (argc<2)
+ {
+ cout << "rinex_obs_read_write inputfile outputfile" << endl;
+ exit(-1);
+ }
+
+ try
+ {
+ cout << "Reading " << argv[1] << endl;
+ gpstk::RinexObsStream roffs(argv[1]);
+ cout << "Writing " << argv[2] << endl;
+ gpstk::RinexObsStream out(argv[2], ios::out);
+ roffs.exceptions(ios::failbit);
+ gpstk::RinexObsHeader roh;
+ gpstk::RinexObsData roe;
+
+ roffs >> roh;
+ out << roh;
+ roh.dump(cout);
+
+ while (roffs >> roe)
+ {
+ out << roe;
+ }
+
+ cout << "Read " << roffs.recordNumber << " epochs. Done." << endl;
+ exit(0);
+ }
+ catch(gpstk::FFStreamError& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+ exit(0);
+} // main()
diff --git a/dev/oldtests/rinex_obs_test.cpp b/dev/oldtests/rinex_obs_test.cpp
new file mode 100644
index 0000000..bcf717b
--- /dev/null
+++ b/dev/oldtests/rinex_obs_test.cpp
@@ -0,0 +1,61 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file rinex_obs_test.cpp
+ * tests gpslib::RinexObsData, gpslib::RinexObsStream, gpslib::RinexObsHeader.
+ */
+
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+
+using namespace std;
+
+/// Returns 0 on success.
+main(int argc, char *argv[])
+{
+ if (argc<2)
+ {
+ cout << "Gimme a rinex obs to chew on! Exiting." << endl;
+ exit(-1);
+ }
+
+ try
+ {
+ cout << "Reading " << argv[1] << "." << endl;
+
+ gpstk::RinexObsStream roffs(argv[1]);
+ roffs.exceptions(ios::failbit);
+ gpstk::RinexObsHeader roh;
+ gpstk::RinexObsData roe;
+
+ roffs >> roh;
+ roh.dump(cout);
+
+ while (roffs >> roe)
+ {}
+
+ cout << "Read " << roffs.recordNumber << " epochs. Done." << endl;
+ exit(0);
+ }
+ catch(gpstk::FFStreamError& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+ exit(0);
+} // main()
diff --git a/trunk/tests/runAllTests b/dev/oldtests/runAllTests
similarity index 100%
rename from trunk/tests/runAllTests
rename to dev/oldtests/runAllTests
diff --git a/dev/oldtests/runAllTests.bat b/dev/oldtests/runAllTests.bat
new file mode 100755
index 0000000..a330a1d
--- /dev/null
+++ b/dev/oldtests/runAllTests.bat
@@ -0,0 +1,72 @@
+echo off
+REM Run all tests in the tests directory
+REM $Id$
+
+echo.
+echo.
+echo rinex_met_test
+echo -------------------------------------------------------------------------
+rinex_met_test data/405_077A.02M
+
+echo.
+echo.
+echo daytimetest:
+echo -------------------------------------------------------------------------
+daytimetest
+
+echo.
+echo.
+echo exceptiontest:
+echo -------------------------------------------------------------------------
+exceptiontest
+
+echo.
+echo.
+echo petest:
+echo -------------------------------------------------------------------------
+petest data/nga12600.apc
+
+echo.
+echo.
+echo stringutiltest:
+echo -------------------------------------------------------------------------
+stringutiltest >stringutiltest.out
+diff stringutiltest.out data/stringutiltest.ref
+echo Look in stringutiltest.out
+
+echo.
+echo.
+echo MatrixTest
+echo -------------------------------------------------------------------------
+MatrixTest data/anotsym.dat data/cov.dat data/dia.dat data/lt.dat data/partials.dat data/squ.dat data/sym.dat data/tmatrix.dat data/ut.dat > MatrixTest.out
+echo Look in MatrixTest.out
+echo Here is a 'diff' with what MatrixTest.out should be:
+diff MatrixTest.out data/MatrixTest.ref.Win32
+
+echo.
+echo.
+echo Generating directory for FileSpecTest
+echo -------------------------------------------------------------------------
+perl genFileSpecTestDirs.pl
+FileSpecTest
+
+echo.
+echo.
+echo PositionTest
+echo -------------------------------------------------------------------------
+positiontest > positiontest.out
+diff positiontest.out data/positiontest.ref
+echo Look in positiontest.out
+
+echo.
+echo.
+echo EphComp:
+echo -------------------------------------------------------------------------
+echo first merge three RINEX navigation files to create merged.n
+..\apps\Rinextools\NavMerge -omerged.n data\s011061a.04n data\s021061a.04n data\s031061a.04n
+echo EphComp will throw an exception when it can't find PRN 13 here --
+echo that's ok, its part of the test:
+EphComp -p data/nga12600.apc -p data/nga12601.apc -b merged.n > EphComp.out
+echo ...end of EphComp. Look in EphComp.out -- here's the plot:
+gnuplot EphCompWin.gp
+
diff --git a/dev/oldtests/stringutiltest.cpp b/dev/oldtests/stringutiltest.cpp
new file mode 100755
index 0000000..93e658f
--- /dev/null
+++ b/dev/oldtests/stringutiltest.cpp
@@ -0,0 +1,470 @@
+#pragma ident "$Id$"
+
+
+
+#include <iostream>
+#include <string>
+#include "StringUtils.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+/**
+ * @file stringutiltest.cpp
+ * A test of the gpslib::StringUtils functions
+ *
+ */
+
+// must be big enough to show hex digits in index
+char hexDumpMess[] =
+{ 0x00, 0x10, 0x30, 0x33, 0x30, 0x31, 0x30, 0x35,
+ 0x3A, 0x65, 0x70, 0x68, 0x20, 0x3A, 0x30, 0x3A,
+ 0x35, 0x32, 0x36, 0x34, 0x30, 0x2E, 0x33, 0x33,
+ 0x33, 0x34, 0x30, 0x32, 0x37, 0x37, 0x37, 0x37,
+ 0x37, 0x37, 0x37, 0x38, 0x42, 0x72, 0x69, 0x61,
+ 0x6e, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x68,
+ 0x6f, 0x73, 0x65, 0x72, 0x32, 0x35, 0x39, 0x32,
+ 0x35, 0x39, 0x32, 0x34, 0x20, 0x32, 0x20, 0x35,
+ 0x32, 0x36, 0x34, 0x30, 0x2E, 0x33, 0x33, 0x38,
+ 0x38, 0x33, 0x36, 0x33, 0x34, 0x32, 0x35, 0x39,
+ 0x32, 0x35, 0x39, 0x33, 0x20, 0x32, 0x20, 0x38,
+ 0x35, 0x34, 0x31, 0x32, 0x20, 0x31, 0x20, 0x31,
+ 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x20, 0x34,
+ 0x20, 0x32, 0x20, 0x34, 0x20, 0x30, 0x20, 0x30,
+ 0x20, 0x33, 0x20, 0x31, 0x31, 0x39, 0x39, 0x20,
+ 0x32, 0x32, 0x63, 0x30, 0x61, 0x66, 0x30, 0x33,
+ 0x20, 0x31, 0x37, 0x37, 0x30, 0x32, 0x39, 0x65,
+ 0x34, 0x20, 0x61, 0x66, 0x34, 0x30, 0x30, 0x31,
+ 0x66, 0x20, 0x65, 0x36, 0x31, 0x62, 0x35, 0x38,
+ 0x61, 0x20, 0x35, 0x35, 0x66, 0x33, 0x37, 0x35,
+ 0x30, 0x20, 0x34, 0x63, 0x63, 0x61, 0x38, 0x38,
+ 0x37, 0x20, 0x31, 0x31, 0x35, 0x64, 0x37, 0x63,
+ 0x66, 0x63, 0x20, 0x33, 0x61, 0x64, 0x32, 0x30,
+ 0x34, 0x38, 0x61, 0x20, 0x63, 0x65, 0x61, 0x20,
+ 0x33, 0x36, 0x32, 0x63, 0x34, 0x38, 0x20, 0x31,
+ 0x31, 0x39, 0x39, 0x20, 0x32, 0x32, 0x63, 0x30,
+ 0x61, 0x66, 0x30, 0x33, 0x20, 0x31, 0x37, 0x37,
+ 0x30, 0x34, 0x61, 0x37, 0x34, 0x20, 0x33, 0x61,
+ 0x63, 0x34, 0x36, 0x36, 0x63, 0x31, 0x20, 0x62,
+ 0x64, 0x30, 0x63, 0x36, 0x64, 0x63, 0x20, 0x33,
+ 0x39, 0x31, 0x62, 0x33, 0x37, 0x38, 0x33, 0x20,
+ 0x33, 0x65, 0x30, 0x34, 0x30, 0x63, 0x66, 0x85 };
+
+/// This returns 0 if all tests pass.
+int main()
+{
+ try
+ {
+ int rc = 0;
+ string result, ref;
+ string a = "1234567890", b = "456";
+ string aa = "---1234567890---";
+ char c = '-';
+ string d = "--";
+ string hexDumpString(hexDumpMess, sizeof(hexDumpMess));
+
+ // Someone may want to do this to a string stream and do some
+ // comparisons and what-not... for now, I'm only testing to
+ // make sure it doesn't crash...
+ cout << "Standard hex dump:" << endl;
+ hexDumpData(cout, hexDumpString);
+ cout << endl << "Alternate hex dump:" << endl;
+ HexDumpDataConfig hdcfg(true, true, true, 8, 2, 2, 1, 0, 0, 16, true,
+ '\'', 1);
+ hexDumpData(cout, hexDumpString, 6, hdcfg);
+
+ cout << endl << "Above using printable():" << endl;
+ cout << printable(hexDumpString) << endl;
+
+
+ //#############################
+ // Justification tests
+
+ cout << "Original: " << a << endl;
+ ref = a;
+ result = string(3,c) + a;
+ a = rightJustify(a, a.length() + 3, c);
+ if(a != result)
+ {
+ cout << "rightJustify failed: " << a << endl
+ << "Should be: " << result << endl;
+ }
+
+ a = ref;
+ result = a + string(3,c);
+ a = leftJustify(a, a.length()+3, c);
+ if(a != result)
+ {
+ cout << "leftJustify failed: " << a << endl
+ << "Should be: " << result << endl;
+ }
+
+ a = ref;
+ result = string(3,c) + a + string(3,c);
+ a = center(a, a.length()+6, c);
+ if(a != result)
+ {
+ cout << "center failed: " << a << endl
+ << "Should be: " << result << endl;
+ }
+
+ a = ref;
+
+ //#############################
+ // Strip Tests
+
+ //######## Leading
+ ref = aa;
+ result = aa.substr(1,string::npos);
+ aa = stripLeading(aa, c, 1);
+ if(aa != result)
+ {
+ cout << "stripLeading(string, char, 1) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(2,string::npos);
+ aa = stripLeading(aa, d, 1);
+ if(aa != result)
+ {
+ cout << "stripLeading(string, char *, 1) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(3,string::npos);
+ aa = stripLeading(aa, c);
+ if(aa != result)
+ {
+ cout << "stripLeading(string, char) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(2,string::npos);
+ aa = stripLeading(aa, d);
+ if(aa != result)
+ {
+ cout << "stripLeading(string, char *) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ //######## Trailing
+ aa = ref;
+ result = aa.substr(0, aa.length()-1);
+ aa = stripTrailing(aa, c, 1);
+ if(aa != result)
+ {
+ cout << "stripTrailing(string, char, 1) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(0, aa.length()-2);
+ aa = stripTrailing(aa, d, 1);
+ if(aa != result)
+ {
+ cout << "stripTrailing(string, char *, 1) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(0, aa.length()-3);
+ aa = stripTrailing(aa, c);
+ if(aa != result)
+ {
+ cout << "stripTrailing(string, char) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(0, aa.length()-2);
+ aa = stripTrailing(aa, d);
+ if(aa != result)
+ {
+ cout << "stripTrailing(string, char *) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ //######## Both Leading & Trailing
+ aa = ref;
+ result = aa.substr(1,aa.length()-2);
+ aa = strip(aa, c, 1);
+ if(aa != result)
+ {
+ cout << "strip(string, char, 1) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(2,aa.length()-4);
+ aa = strip(aa, d, 1);
+ if(aa != result)
+ {
+ cout << "strip(string, char *, 1) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(3, aa.length()-6);
+ aa = strip(aa,c);
+ if(aa != result)
+ {
+ cout << "strip(string, char) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ aa = ref;
+ result = aa.substr(2, aa.length()-4);
+ aa = strip(aa,d);
+ if(aa != result)
+ {
+ cout << "strip(string, char *) failed: " << aa << endl
+ << "Should be: " << result << endl;
+ }
+
+ //################################
+ //translation
+ string xlat = "The Hoopy Ford Prefect Boffs the Eccentrica Gallumbits";
+ string xlati1 = "sdfgDFG";
+ string xlato1 = "!)#%#)%";
+ string xlata1 = "The Hoopy )or) Pre#ect Bo##! the Eccentrica %allumbit!";
+ string xlati2 = "sdfgDFG";
+ string xlato2 = "!)#%";
+ string xlata2 = "The Hoopy or) Pre#ect Bo##! the Eccentrica allumbit!";
+ string xlati3 = "sdfgDFG";
+ string xlato3 = "sdfgDFG";
+ string xlata3 = "The Hoopy Ford Prefect Boffs the Eccentrica Gallumbits";
+ aa = translate(xlat, xlati1, xlato1);
+ if (aa != xlata1)
+ {
+ cout << "translate(const string&,const string&,const string&,char) "
+ << "failed: " << aa << endl
+ << "should be " << xlata1 << endl;
+ }
+ aa = translate(xlat, xlati2, xlato2);
+ if (aa != xlata2)
+ {
+ cout << "translate(const string&,const string&,const string&,char) "
+ << "failed: " << aa << endl
+ << "should be " << xlata2 << endl;
+ }
+ aa = translate(xlat, xlati3, xlato3);
+ if (aa != xlata3)
+ {
+ cout << "translate(const string&,const string&,const string&,char) "
+ << "failed: " << aa << endl
+ << "should be " << xlata3 << endl;
+ }
+
+ //################################
+ //String to number
+ int res = asInt(a);
+ if (1234567890 != res)
+ {
+ cout << "asInt(string&) failed: " << res << endl
+ << "should be 1234567890" << endl;
+ }
+
+ a = "12345.67890";
+ double res2 = asDouble(a);
+ if ( (double)(12345.67890) != res2)
+ {
+ cout << "asDouble(string&) failed: " << setprecision(15) << res2 << endl
+ << "should be 12345.67890 " << endl;
+ }
+
+ float res25 = asFloat(a);
+ if( (float)(12345.67890) != res25)
+ {
+ cout << "asFloat(string&) failed: " << setprecision(15) << res25 << endl
+ << "should be 12345.67890 " << endl;
+ }
+
+ long double lda = 12345.67890L;
+ long double res3 = asLongDouble(a);
+ if (lda != res3)
+ {
+ cout << "asLongDouble(string&) failed: " << setprecision(21) << res3
+ << endl << "should be 12345.67890 " << endl;
+ }
+
+ //#####################################33
+ // Number as string
+
+ res2 = 12345.6789; // double
+ res3 = 12345.6789L; // long double
+ res = 1234567890; // int
+
+ aa = asString(res2);
+ if(asDouble(aa) != res2)
+ {
+ cout << "asString(double) failed: " << aa << endl
+ << "should be 12345.6789" << endl;
+ }
+
+ aa = asString(res3);
+ if(asLongDouble(aa) != res3)
+ {
+ cout << "asString(long double) failed: " << aa << endl
+ << "should be 12345.6789" << endl;
+ }
+
+ aa = asString(res);
+ if(asInt(aa) != res)
+ {
+ cout << "asString(X) failed: " << aa << endl
+ << "should be " << res << endl;
+ }
+
+ // ##############################3
+ // Hex tests
+
+ string q="0x100 bleh";
+ string z="100 moo";
+
+ result = x2d(q);
+ if (result != string("256 bleh"))
+ {
+ cout << "x2d failed: " << result << endl
+ << "Should be: '256 bleh'"<< endl;
+ }
+
+ result = d2x(z);
+ if (result != string("64 moo"))
+ {
+ cout << "x2d failed: " << result << endl
+ << "Should be: '64 moo'"<< endl;
+ }
+
+ //##############################3
+ // String replacement
+
+ a = "010101000111010";
+ aa = "0-0-0-000---0-0";
+ string aaa = "0abc0abc0abc000abcabcabc0abc0";
+
+ ref = a;
+ a = replaceAll(a, string("1"), string("-"));
+ if(a != aa)
+ {
+ cout << "replaceAll() failed: " << a << endl
+ << "should be " << aa << endl;
+ }
+
+ a = ref;
+ a = replaceAll(a, string("1"), string("abc"));
+ if(a != aaa)
+ {
+ cout << "replaceAll() failed: " << a << endl
+ << "should be " << aaa << endl;
+ }
+
+ a = ref;
+ aaa = "01230123012300012312312301230";
+ a = replaceAll(a, string("1"), string("123"));
+ if(a != aaa)
+ {
+ cout << "replaceAll() failed: " << a << endl
+ << "should be " << aaa << endl;
+ }
+
+ //##############################################
+ // Word Tests
+ a = " The Quick Brown Fox Jumps Over The Lazy Dog. ";
+
+ aa = firstWord(a);
+ if(aa != string("The"))
+ {
+ cout << "firstWord() failed: " << aa << endl
+ << "should be 'The'" << endl;
+ }
+
+ res = numWords(a);
+ if(res != 9)
+ {
+ cout << "numWords() failed: " << res << endl
+ << "should be 9" << endl;
+ }
+
+ aa = word(a, 4);
+ if(aa != string("Jumps"))
+ {
+ cout << "word() failed: " << aa << endl
+ << "should be 'Jumps'" << endl;
+ }
+
+ removeWords(a, 3, 2);
+ result = " The Quick Brown Over The Lazy Dog. ";
+ if(a != result)
+ {
+ cout << "removeWords() failed: " << a << endl
+ << "should be '" << result << "'" << endl;
+ }
+
+ aa = stripFirstWord(a);
+ result = "Quick Brown Over The Lazy Dog. ";
+ if ((aa != string("The")) ||
+ (a != result))
+ {
+ cout << "stripFirstWord() failed: " << aa << endl
+ << "should be 'The'" << endl
+ << "and: " << a << endl
+ << "should be '" << result << "'" << endl;
+ }
+
+ removeWords(a, 5);
+ result = "Quick Brown Over The Lazy";
+ if (a != result)
+ {
+ cout << "removeWords failed: " << a << endl
+ << "should be '" << result << "'" << endl;
+ }
+
+ aa = words(a, 3);
+ result = "The Lazy";
+ if (aa != result)
+ {
+ cout << "words failed: \'" << aa << "' (" << a << ")" << endl
+ << "should be '" << result << "'" << endl;
+ }
+
+ //####################
+ // regular expressions
+
+ rc = isLike(a, "Br.*Over.*");
+ if (rc != 1)
+ {
+ cout << "isLike (Br.*Over.*) failed: " << rc << endl
+ << "should be: 1" << endl;
+ }
+
+ rc = isLike(a, "Br.Over.*");
+ if (rc != 0)
+ {
+ cout << "isLike (Br.Over.*) failed: " << rc << endl
+ << "should be: 0" << endl;
+ }
+
+ aa = matches(a, "Br.*Over.*");
+ result = "Brown Over The Lazy";
+ if (aa != result)
+ {
+ cout << "matches failed: " << aa << endl
+ << "should be: '" << result << "'" << endl;
+ }
+
+ string prettyPrintThis("This is a very long sentence that will get cut up into lines with a maximum length of 40 characters, each line indented by a few spaces.");
+ prettyPrint(prettyPrintThis, "\n", " ", " ", 40);
+ cout << prettyPrintThis << endl;
+
+ cout << "All other Tests Passed." << endl;
+
+ return 0;
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e << endl;
+ }
+}
diff --git a/dev/oldtests/svnKeyWordTest.txt b/dev/oldtests/svnKeyWordTest.txt
new file mode 100644
index 0000000..1a6debc
--- /dev/null
+++ b/dev/oldtests/svnKeyWordTest.txt
@@ -0,0 +1,8 @@
+This is meaningless text.
+$LastChangedDate$
+$LastChangedRevision$
+$LastChangedBy$
+$HeadURL$
+$Id$
+This is more meaningless text.
+This text was added after the above line and should form revision 66.
diff --git a/dev/oldtests/testExpression.cpp b/dev/oldtests/testExpression.cpp
new file mode 100644
index 0000000..49e863b
--- /dev/null
+++ b/dev/oldtests/testExpression.cpp
@@ -0,0 +1,117 @@
+#include <iostream>
+#include <iomanip>
+
+#include "RinexObsStream.hpp"
+#include "Expression.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main(int argc, char* argv[])
+{
+ short test=1;
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ string istr(" 1 + (6 - 2 ) * 3.2");
+ Expression xpr(istr);
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ try {
+ string istr(" 1 + (6 - gamma ) * 3.2");
+ Expression xpr(istr);
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+ catch (gpstk::Expression::ExpressionException ee)
+ {
+ cout << endl << "The expected exception was generated: " << endl;
+ cout << ee << endl;
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ string istr(" 1 + 2*(3 + 1)");
+ Expression xpr(istr);
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ try {
+ string istr(" 1 + 2*( beta + 1)");
+ Expression xpr(istr);
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ xpr.set("beta",1);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+ catch (...)
+ {
+ cout << "An unexpected exception was generated: ";
+ }
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ string istr(" 1 + 2*cos(3.141592647)");
+ Expression xpr(istr);
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ string istr(" 1E+1 + 4* 2E-2");
+ Expression xpr(istr);
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ string istr("C/L1");
+ Expression xpr(istr);
+ xpr.setGPSConstants();
+ cout << "Input string: \"" << istr << "\"" << endl;
+ xpr.print(cout);
+ cout << "=" << xpr.evaluate() << endl;
+ }
+
+ cout << endl << "Unit Test #" << setw(2) << test++ << " -----------------------------------" << endl;
+ {
+ string istr("1/(1-gamma)*(P1 - P2)");
+ cout << "Input string: \"" << istr << "\"" << endl;
+ Expression xpr(istr);
+ xpr.print(cout);
+ cout << endl;
+ xpr.setGPSConstants();
+
+ RinexObsStream ros("../examples/bahr1620.04o");
+ RinexObsData rod;
+ for (int i=0;i<3;i++)
+ //while (ros >> rod)
+ {
+ ros >> rod;
+
+ RinexObsData::RinexPrnMap::const_iterator it;
+ for (it = rod.obs.begin(); it!= rod.obs.end(); it++)
+ {
+ xpr.setRinexObs(it->second);
+ cout << rod.time << " " << it->first.prn << " ";
+ cout << xpr.evaluate() << endl;
+ } // end step through PRNs in an epoch
+ } // end step through input obs file epoch by epoch
+ }
+
+ exit(0);
+}
diff --git a/dev/oldtests/testscript.pl b/dev/oldtests/testscript.pl
new file mode 100755
index 0000000..0f4d3e2
--- /dev/null
+++ b/dev/oldtests/testscript.pl
@@ -0,0 +1,184 @@
+#!/usr/bin/perl
+# $Id$
+
+# Ryan Mire ARL SGL
+# June 2005
+# last saved: July 25 1:50pm
+#
+#
+# Test Script created for the purpose of automating the testing of the GPStk Toolkit
+# Proper Command Line Syntax:
+# >>test script terminated\n testscript <home directory> <configfile> <output directory> [<html file and directory path>]
+#
+
+
+$homedir=$ARGV[0];
+die "\nThe given output directory, $homedir, is not found or does not exist.\n Try......>>test script terminated\n testscript <home directory> <configfile> <output directory> [<html file name>]\n"
+ if((-e $homedir)==0);
+
+$configfile=$ARGV[1];
+
+$outdir=$ARGV[2];
+mkdir "$outdir"
+ if((-e $outdir)==0);
+
+$html=$ARGV[3];
+
+$exedir=$homedir."/gpstk/dev/tests";
+die "\nThe test directory, $exedir, is not found or does not exist.......test script terminated"
+ if((-e $exedir)==0);
+
+$datdir=$exedir."/data";
+die "\nThe data directory, $datdir, is not found or does not exist......test script terminated"
+ if((-e $datdir)==0);
+
+$passfail="All Tests Passed";
+
+
+$n=0;
+
+open(CONFIG, $configfile);
+$testspec="";
+$mainlog="$outdir/testscript.log";
+open(LOG,">".$mainlog);
+open(HTML,">".$html);
+
+if($html)
+{
+ chomp($kernel =`uname -s`);
+ chomp($processor = `uname -p`);
+ print HTML "<tr class=\"alt\">\n";
+ print HTML "<td> $kernel</td>\n"; #Name of Kernel
+ print HTML "<td> $processor</td>\n"; #Name of Processor
+}
+
+while(<CONFIG>)
+{
+ # print "N = $n\n";
+ next if /^(#|!)/; #Skips lines beginning with "!"
+ s/^\s+//; #Substitute any space at the beginning of the line with nothing
+
+ if (/\\$/) #If the line contains a "\" at the end
+ {
+ s/\\$//; #Substitute the endline character "\" with nothing
+ s/\n/ /; #Substitute the newline character with a space
+ $testspec=$testspec.$_;
+ next;
+ }
+ else
+ {
+ $testspec=$testspec.$_;
+ }
+
+ $n+=1; #Counts up through all the executed tests
+
+ $testspec=~ s/;\s*$//; #Substitue the colon and space endline character with nothing
+ $testspec=~ s/\$outdir/$outdir/; #Replace the word $outdir with the true local value of $outdir
+ $testspec=~ s/\$datdir/$datdir/g; #Replace the word $datdir with the true local value of $datdir
+ # print "\nOriginal: $testspec\n";
+
+ @Cmdline=split /,/, $testspec; #Split the line at any commas and create the command line array
+ @Cmdname=split /(\s+|,|;)/, $testspec; #Split the line at any comas or whitespace or colons and create the command name array
+
+ $Cmdline="$exedir/@Cmdline[0]"; #Add on the proper local directory $exedir to begin the building of the command line
+ $Cmdname="@Cmdname[0]";
+ $scrfile="$outdir/$Cmdname.scr"; #Creates the generic screen output file in the proper $outdir local directory
+
+ # print "Command Line: $Cmdline\n";
+ print "Executing: $Cmdname\n";
+ # print "File Spec for Screen Capture: $scrfile\n";
+
+ $ret_val="Success";
+
+ if (system "$Cmdline>$scrfile")
+ {
+ $ret_val="Failure";
+ }
+
+ $diff_val="Success";
+ $diffline=@Cmdline[1]; #If there are any pieces after the first space/comma/colon diffline gets them
+
+ # print "DIFFLINE: $diffline\n";
+
+ if ($diffline)
+ {
+
+
+ $diffline=~ s/^\s//; #Takes off the beginning whitespace
+ @diffline=split /:/, $diffline; #Splits at any colon
+ $output=@diffline[0]; #Text before the colon
+ $golden=@diffline[1]; #Text after the colon
+ $diff_file="$outdir/$Cmdname.dif";
+
+ system "sdiff -s -I File $outdir/$output $datdir/$golden>$diff_file"; #executes Unix Bash Shell command
+
+
+ if (!-z $diff_file) #If the diff file is non-empty
+ {
+ $diff_val="False";
+ }
+ }
+
+ if(-z $diff_file)
+ {
+ system "rm $diff_file"
+ }
+
+ print "\t\tTest Run: $ret_val\n";
+ print "\t\tDiff Value: $diff_val\n";
+# print "$kernel \t $processor \n";
+
+
+ if ($ret_val eq 'Success' && $diff_val eq 'Success')
+ {
+ print LOG "$Cmdname......Success\n";
+ }
+ else
+ {
+ print LOG "$Cmdname......Failure -see $Cmdname.dif and $Cmdname.scr\n";
+ $passfail="One or More Tests Failed";
+ chomp($n);
+ chomp($Cmdname);
+ $failed[$n]="\t $n \t $Cmdname \n"; #Adds failed test to Failed Test list
+ }
+
+ if ($html)
+ {
+ if($ret_val eq 'Success' && $diff_val eq 'Success')
+ {
+ $colorcode="pass";
+ }
+ else
+ {
+ $colorcode="fail";
+ }
+ print HTML "<td> class=\"$colorcode\"> $ret_val </td>\n";
+ }
+
+ $testspec="";
+}
+ print LOG "\n Failed Test List :\n";
+ print LOG "\n @failed";
+
+if($html)
+{
+ print HTML "</tr>\n";
+}
+
+ close(HTML);
+ close(LOG);
+ close(CONFIG);
+
+ print "\n Main Directory: $homedir\n";
+ print " Configuration File: $configfile\n";
+ print " Output Directory: $outdir\n";
+ print " Test Directory: $exedir\n";
+ print " Data directory: $datdir\n";
+ print "\nRan $n tests\n";
+ print "$passfail\n";
+
+if(@failed!=0)
+{
+ print "Failed Test List:\n";
+ print "@failed";
+}
diff --git a/trunk/tests/testscript_readme.txt b/dev/oldtests/testscript_readme.txt
similarity index 100%
rename from trunk/tests/testscript_readme.txt
rename to dev/oldtests/testscript_readme.txt
diff --git a/dev/src/ANSITime.cpp b/dev/src/ANSITime.cpp
new file mode 100644
index 0000000..e1cc3a4
--- /dev/null
+++ b/dev/src/ANSITime.cpp
@@ -0,0 +1,148 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "ANSITime.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ ANSITime& ANSITime::operator=( const ANSITime& right )
+ throw()
+ {
+ time = right.time;
+ return *this;
+ }
+
+ CommonTime ANSITime::convertToCommonTime() const
+ {
+ return CommonTime( ( MJD_JDAY + UNIX_MJD + time / SEC_PER_DAY ),
+ ( time % SEC_PER_DAY ),
+ 0 );
+ }
+
+ void ANSITime::convertFromCommonTime( const CommonTime& ct )
+ {
+ long jday, sod;
+ double fsod;
+ ct.get( jday, sod, fsod );
+
+ time =
+ static_cast<time_t>((jday - MJD_JDAY - UNIX_MJD) * SEC_PER_DAY + sod);
+ }
+
+ std::string ANSITime::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "K",
+ "Kd", time );
+
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ bool ANSITime::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ IdToValue::const_iterator i = info.find('K');
+ if( i != info.end() )
+ {
+ time = asInt( i->second );
+ }
+
+ return true;
+ }
+
+ bool ANSITime::isValid() const
+ throw()
+ {
+ ANSITime temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void ANSITime::reset()
+ throw()
+ {
+ time = 0;
+ }
+
+ bool ANSITime::operator==( const ANSITime& right ) const
+ throw()
+ {
+ if( time == right.time )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool ANSITime::operator!=( const ANSITime& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool ANSITime::operator<( const ANSITime& right ) const
+ throw()
+ {
+ return ( time < right.time );
+ }
+
+ bool ANSITime::operator>( const ANSITime& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool ANSITime::operator<=( const ANSITime& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool ANSITime::operator>=( const ANSITime& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/ANSITime.hpp b/dev/src/ANSITime.hpp
new file mode 100644
index 0000000..e05466c
--- /dev/null
+++ b/dev/src/ANSITime.hpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_ANSITIME_HPP
+#define GPSTK_ANSITIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+#include <time.h> // for time_t
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "ANSITime (seconds since Unix epoch)" time
+ * representation.
+ */
+ class ANSITime : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup utbo ANSITime Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ ANSITime( time_t t = 0 )
+ throw()
+ {
+ time = t;
+ }
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the ANSITime object to copy
+ */
+ ANSITime( const ANSITime& right )
+ throw()
+ : time( right.time )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ ANSITime( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ ANSITime( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the ANSITime to copy
+ * @return a reference to this ANSITime
+ */
+ ANSITime& operator=( const ANSITime& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~ANSITime()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "K";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%K";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup utco ANSITime Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the ANSITime object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const ANSITime& right ) const
+ throw();
+ bool operator!=( const ANSITime& right ) const
+ throw();
+ bool operator<( const ANSITime& right ) const
+ throw();
+ bool operator>( const ANSITime& right ) const
+ throw();
+ bool operator<=( const ANSITime& right ) const
+ throw();
+ bool operator>=( const ANSITime& right ) const
+ throw();
+ //@}
+
+ time_t time;
+ };
+
+} // namespace
+
+#endif // GPSTK_ANSITIME_HPP
diff --git a/dev/src/AlmOrbit.cpp b/dev/src/AlmOrbit.cpp
new file mode 100644
index 0000000..35724f5
--- /dev/null
+++ b/dev/src/AlmOrbit.cpp
@@ -0,0 +1,284 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file AlmOrbit.cpp
+ * Encapsulate almanac data, and compute satellite orbit, etc.
+ */
+
+#include "icd_200_constants.hpp"
+#include "GPSGeoid.hpp"
+#include "AlmOrbit.hpp"
+#include <cmath>
+
+namespace gpstk
+{
+ AlmOrbit :: AlmOrbit() throw()
+ {
+ ecc = i_offset = OMEGAdot = Ahalf = OMEGA0 = w = M0 = AF0 = AF1 = 0.0;
+
+ Toa = xmit_time = 0;
+
+ week = SV_health = 0;
+ }
+
+ AlmOrbit :: AlmOrbit(short prn, double aEcc, double ai_offset,
+ double aOMEGAdot, double aAhalf, double aOMEGA0,
+ double aw, double aM0, double aAF0, double aAF1,
+ long aToa, long axmit_time, short aweek,
+ short aSV_health)
+ : ecc(aEcc), i_offset(ai_offset), OMEGAdot(aOMEGAdot), Ahalf(aAhalf),
+ OMEGA0(aOMEGA0), w(aw), M0(aM0), AF0(aAF0), AF1(aAF1), Toa(aToa),
+ xmit_time(axmit_time), week(aweek), SV_health(aSV_health), PRN(prn)
+ {
+ }
+
+ Xvt AlmOrbit :: svXvt(const DayTime& t) const
+ throw()
+ {
+ Xvt sv;
+ GPSGeoid geoid;
+
+ double elapt; /* elapsed time since Toa */
+ double A; /* semi-major axis */
+ double n; /* mean motion */
+ double meana; /* mean anomoly */
+ double ea; /* eccentric anomoly */
+ short loop; /* counter */
+ double f,g,delea,q,gsta,gcta; /* temp. variables */
+ double dtc; /* corrected time */
+ double ta; /* true anomoly */
+ double sinea,cosea,sinu,cosu;
+ double alat; /* arguement of latitude */
+ double ualat; /* corrected arguement of latitude */
+ double r; /* radius */
+ double i; /* inclination */
+ double anlon; /* corrected longitue of ascending node */
+ double xip,yip,can,san,cinc,sinc,xef,yef,zef,dek,dlk,div,domk,duv,
+ drv,dxp,dyp,vxef,vyef,vzef;
+ double sqrtgm = ::sqrt(geoid.gm());
+
+/* Compute time since Almanac epoch (Toa) including week change */
+ elapt = t - getToaTime();
+
+ /* compute mean motion from semi-major axis */
+ A = Ahalf * Ahalf;
+ n = sqrtgm / (Ahalf * A);
+
+ /* compute the mean anomaly */
+ meana = M0 + elapt * n;
+ meana = fmod(meana, 2.0 * PI);
+
+ /* compute eccentric anomaly by iteration */
+
+ ea = meana + ecc * sin(meana);
+ loop = 1;
+
+ do {
+ f = meana - (ea - ecc * sin(ea));
+ g = 1.0 - ecc * ::cos(ea);
+ delea = f / g;
+ ea += delea;
+ loop++;
+ } while ( fabs(delea) > 1.0e-11 && (loop <= 20));
+
+ /* compute clock corrections (no relativistic correction computed) */
+ dtc = AF0 + elapt * AF1;
+ sv.dtime = dtc;
+
+ /* compute the true anomaly */
+ q = sqrt (1.0e0 - ecc * ecc);
+ sinea = ::sin(ea);
+ cosea = ::cos(ea);
+ gsta = q * sinea;
+ gcta = cosea - ecc;
+ ta = ::atan2(gsta,gcta);
+
+ /* compute argument of latitude for orbit */
+ alat = ta + w;
+
+ /* compute correction terms ( no pertubation ) */
+ ualat = alat;
+ r = A * (1.0 - ecc * cosea);
+ i = i_offset + 0.3e0 * PI;
+
+ /* compute corrected longitude of ascending node */
+ anlon = OMEGA0 +
+ (OMEGAdot - geoid.angVelocity()) * elapt -
+ geoid.angVelocity() * (double)Toa;
+
+ /* compute positions in orbital plane */
+ cosu = ::cos(ualat);
+ sinu = ::sin(ualat);
+ xip = r * cosu;
+ yip = r * sinu;
+
+ /* compute earch fixed coordinates (in meters) */
+ can = ::cos (anlon);
+ san = ::sin (anlon);
+ cinc = ::cos(i);
+ sinc = ::sin(i);
+
+ xef = xip * can - yip * cinc * san;
+ yef = xip * san + yip * cinc * can;
+ zef = yip * sinc;
+
+ sv.x[0] = xef;
+ sv.x[1] = yef;
+ sv.x[2] = zef;
+
+ /* compute velocity of rotation coordinates & velocity of sat. */
+ dek = n * A / r;
+ dlk = sqrtgm * Ahalf * q / (r * r);
+ div = 0.0e0;
+ domk = OMEGAdot - geoid.angVelocity();
+ duv = dlk;
+ drv = A * ecc * dek * sinea;
+
+ dxp = drv * cosu - r * sinu * duv;
+ dyp = drv * sinu + r * cosu * duv;
+
+ vxef = dxp * can - xip * san * domk - dyp * cinc * san
+ + yip * (sinc * san * div - cinc * can * domk);
+ vyef = dxp * san + xip * can * domk + dyp * cinc * can
+ - yip * (sinc * can * div + cinc * san * domk);
+ vzef = dyp * sinc + yip * cinc * div;
+
+ sv.v[0] = vxef;
+ sv.v[1] = vyef;
+ sv.v[2] = vzef;
+
+ return sv;
+ }
+
+ DayTime AlmOrbit::getTransmitTime() const throw()
+ {
+ DayTime transmitTime(0.L);
+ transmitTime.setGPSfullweek(getFullWeek(), (double)xmit_time);
+ return transmitTime;
+ }
+
+ short AlmOrbit::getFullWeek() const throw()
+ {
+ // return value of the transmit week for the given PRN
+ short xmit_week = week;
+ double sow_diff = (double)(Toa - xmit_time);
+ if (sow_diff < -DayTime::HALFWEEK)
+ xmit_week--;
+ else if (sow_diff > DayTime::HALFWEEK)
+ xmit_week++;
+
+ return xmit_week;
+ }
+
+ DayTime AlmOrbit::getToaTime() const throw()
+ {
+ DayTime toaTime(0.L);
+ toaTime.setGPSfullweek(week, (double)Toa);
+ return toaTime;
+ }
+
+ void AlmOrbit::dump(std::ostream& s, int verbosity) const
+ {
+ using std::endl;
+ using std::setw;
+ switch (verbosity)
+ {
+ case 0:
+ s << PRN << ", "
+ << Toa << ", "
+ << std::hex
+ << SV_health << ", "
+ << std::dec
+ << AF0 << ", "
+ << AF1 << ", "
+ << ecc << ", "
+ << w << ", "
+ << M0 << ", "
+ << OMEGA0 << ", "
+ << OMEGAdot << ", "
+ << i_offset
+ << endl;
+ break;
+
+ case 1:
+ s << "PRN:" << PRN
+ << " Toa:" << Toa
+ << " H:" << SV_health
+ << " AFO:" << AF0
+ << " AF1:" <<AF1
+ << " Ecc:" << ecc
+ << endl
+ << " " << w
+ << " M0:" << M0
+ << " OMEGA0:" << OMEGA0
+ << " OMEGAdot:" << OMEGAdot
+ << " Ioff:" << i_offset
+ << endl;
+ break;
+
+ default:
+ s << "PRN: " << PRN << endl
+ << "Toa: " << Toa << endl
+ << "xmit_time: " << xmit_time << endl
+ << "week: " << week << endl
+ << "SV_health: " << SV_health << endl
+ << "AFO: " << setw(12) << AF0 << " sec" << endl
+ << "AF1: " << setw(12) << AF1 << " sec/sec" << endl
+ << "Eccentricity: " << setw(12) << ecc << endl
+ << "Arg of perigee: " << setw(12) << w << " rad" << endl
+ << "Mean anomaly at epoch: " << setw(12) << M0 << " rad" << endl
+ << "Right ascension: " << setw(12) << OMEGA0 << " rad " << setw(16) << OMEGAdot << " rad/sec" << endl
+ << "Inclination offset: " << setw(12) << i_offset << " rad " << endl;
+ }
+ }
+
+ std::ostream& operator<<(std::ostream& s, const AlmOrbit& ao)
+ {
+ ao.dump(s);
+ return s;
+ }
+
+} // namespace
diff --git a/dev/src/AlmOrbit.hpp b/dev/src/AlmOrbit.hpp
new file mode 100644
index 0000000..ee5642e
--- /dev/null
+++ b/dev/src/AlmOrbit.hpp
@@ -0,0 +1,142 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef GPSTK_ALMORBIT_HPP
+#define GPSTK_ALMORBIT_HPP
+
+/**
+ * @file AlmOrbit.hpp
+ * Encapsulate almanac data, and compute satellite orbit, etc.
+ */
+
+#include <map>
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ /** @defgroup ephemcalc Ephemeris calculations */
+ //@{
+
+ /** Encapsulation of almanac SV orbital parameters (page 5,
+ * subframes 1-24). */
+ class AlmOrbit
+ {
+ public:
+ /// Default constructor, initialize to 0.
+ AlmOrbit() throw();
+
+ /// Fill constructor for all fields.
+ AlmOrbit(short prn, double aEcc, double ai_offset, double aOMEGAdot,
+ double aAhalf, double aOMEGA0, double aw, double aM0,
+ double aAF0, double aAF1, long aToa, long axmit_time,
+ short aweek, short aSV_health);
+
+ Xvt svXvt(const DayTime& t) const throw();
+
+ short getPRNID() const throw()
+ { return PRN; }
+
+ /// returns full week of TRANSMIT TIME
+ short getFullWeek() const throw();
+ DayTime getTransmitTime() const throw();
+ DayTime getToaTime() const throw();
+ DayTime getTimestamp() const throw() { return getToaTime(); }
+ short getSVHealth() const throw() { return SV_health; }
+
+ void dump(std::ostream& s = std::cout, int verbosity=1) const;
+
+ short getPRN() const;
+ double getecc() const;
+ double geti_offset() const;
+ double getOMEGAdot() const;
+ double getAhalf() const;
+ double getOMEGA0() const;
+ double getw() const;
+ double getM0() const;
+ double getAF0() const;
+ double getAF1() const;
+ long getToaSOW() const;
+ long getxmit_time() const;
+ short getToaWeek() const;
+
+ protected:
+ short PRN; /**< PRN identifier for this SV */
+ double ecc; /**< eccentricity */
+ double i_offset; /**< i offset from 54 deg. in rads. */
+ double OMEGAdot; /**< Right Ascention rate in rad/sec */
+ double Ahalf; /**< sqrt of semi-major axis in m**1/2 */
+ double OMEGA0; /**< Right Asc. of Ascending node in rads. */
+ double w; /**< arguement of perigee in rads. */
+ double M0; /**< mean anomoly in rads */
+ double AF0; /**< clock model coeff in sec */
+ double AF1; /**< clock model coeff in sec/sec */
+ long Toa; /**< Time of epoch in GPS sec */
+ long xmit_time; /**< Transmission time */
+ short week; /**< week of Toa (full week) */
+ short SV_health; /**< health of SV */
+
+ private:
+ friend class EngAlmanac;
+ }; // class AlmOrbit
+
+ /// Map from SatID to AlmOrbit.
+ typedef std::map<SatID, AlmOrbit> AlmOrbits;
+
+ std::ostream& operator<<(std::ostream& s, const AlmOrbit& ao);
+
+ inline short AlmOrbit::getPRN() const {return(PRN);}
+ inline double AlmOrbit::getecc() const {return(ecc);}
+ inline double AlmOrbit::geti_offset() const {return(i_offset);}
+ inline double AlmOrbit::getOMEGAdot() const {return(OMEGAdot);}
+ inline double AlmOrbit::getAhalf() const {return(Ahalf);}
+ inline double AlmOrbit::getOMEGA0() const {return(OMEGA0);}
+ inline double AlmOrbit::getw() const {return(w);}
+ inline double AlmOrbit::getM0() const {return(M0);}
+ inline double AlmOrbit::getAF0() const {return(AF0);}
+ inline double AlmOrbit::getAF1() const {return(AF1);}
+ inline long AlmOrbit::getToaSOW() const {return(Toa);}
+ inline long AlmOrbit::getxmit_time() const {return(xmit_time);}
+ inline short AlmOrbit::getToaWeek() const {return(week);}
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/AlmanacStore.cpp b/dev/src/AlmanacStore.cpp
new file mode 100644
index 0000000..4e0d29c
--- /dev/null
+++ b/dev/src/AlmanacStore.cpp
@@ -0,0 +1,186 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file AlmanacStore.cpp
+ * Store almanac information, and access by satellite and time
+ */
+
+#include "AlmanacStore.hpp"
+#include "StringUtils.hpp"
+#include "EngAlmanac.hpp"
+#include "gps_constants.hpp"
+
+namespace gpstk
+{
+ Xvt AlmanacStore::getSatXvt(SatID sat, const gpstk::DayTime& t)
+ const throw(AlmanacStore::NoAlmanacFound)
+ {
+ AlmOrbit a = findAlmanac(sat, t);
+ return a.svXvt(t);
+ }
+
+ short AlmanacStore::getSatHealth(SatID sat, const gpstk::DayTime& t)
+ const throw(AlmanacStore::NoAlmanacFound)
+ {
+ AlmOrbit a = findAlmanac(sat, t);
+ return a.getSVHealth();
+ }
+
+ bool AlmanacStore::addAlmanac(const AlmOrbit& alm) throw()
+ {
+ if ((alm.getPRNID() >= 1) && (alm.getPRNID() <= MAX_PRN))
+ {
+ SatID sat(alm.getPRNID(),SatID::systemGPS);
+ uba[sat][alm.getToaTime()] = alm;
+ return true;
+ }
+ return false;
+ }
+
+ bool AlmanacStore::addAlmanac(const EngAlmanac& alm) throw()
+ {
+ AlmOrbits ao = alm.getAlmOrbElems();
+ AlmOrbits::const_iterator oci;
+ for (oci = ao.begin();
+ oci != ao.end();
+ oci++)
+ {
+ addAlmanac((*oci).second);
+ }
+ return true;
+ }
+
+ /// gets the closest almanac for the given time and satellite,
+ /// closest being in the past or future.
+ AlmOrbit AlmanacStore::findAlmanac(SatID sat, const gpstk::DayTime& t)
+ const throw(AlmanacStore::NoAlmanacFound)
+ {
+ UBAMap::const_iterator satItr = uba.find(sat);
+ if (satItr == uba.end())
+ {
+ NoAlmanacFound nef("No almanacs for satellite " + StringUtils::asString(sat));
+ GPSTK_THROW(nef);
+ }
+
+ const EngAlmMap& eam = (*satItr).second;
+
+ // find the closest almanac BEFORE t, if any.
+ EngAlmMap::const_iterator nextItr = eam.begin(),
+ almItr = eam.end();
+
+ while ( (nextItr != eam.end()) &&
+ ((*nextItr).first < t) )
+ {
+ almItr = nextItr;
+ nextItr++;
+ }
+
+ if (almItr == eam.end())
+ {
+ if (nextItr == eam.end())
+ {
+ NoAlmanacFound nef("No almanacs for time " + t.asString());
+ GPSTK_THROW(nef);
+ }
+ else
+ {
+ almItr = nextItr;
+ }
+ }
+
+ // check the next almanac (the first one after t's time)
+ // to see if it's closer than the one before t
+ if (nextItr != eam.end())
+ {
+ if ( ((*nextItr).first - t) < (t - (*almItr).first))
+ almItr = nextItr;
+ }
+ return (*almItr).second;
+ }
+
+
+ AlmOrbits AlmanacStore::findAlmanacs(const gpstk::DayTime& t)
+ const
+ {
+ AlmOrbits ao;
+ UBAMap::const_iterator satItr = uba.begin();
+ while (satItr != uba.end())
+ {
+ try
+ {
+ AlmOrbit a = findAlmanac((*satItr).first, t);
+ ao[(*satItr).first] = a;
+ }
+ /// who cares about exceptions - the map will
+ /// be empty if there are no alms...
+ catch(...)
+ {}
+
+ satItr++;
+ }
+ return ao;
+ }
+
+ gpstk::DayTime AlmanacStore::getInitialTime()
+ const
+ {
+ DayTime retDT = DayTime::END_OF_TIME;
+ UBAMap::const_iterator satItr = uba.begin();
+ while (satItr != uba.end())
+ {
+ const EngAlmMap& eam = (*satItr).second;
+
+ EngAlmMap::const_iterator nextItr;
+ for (nextItr=eam.begin(); nextItr!=eam.end(); ++nextItr)
+ {
+ const AlmOrbit& ao = (*nextItr).second;
+ try
+ {
+ DayTime testT = ao.getToaTime();
+ if (testT<retDT) retDT = testT;
+ }
+ // Not to worry, worst case method return 'END_OF_TIME'
+ catch(...)
+ {}
+ }
+ satItr++;
+ }
+ return(retDT);
+ }
+
+}
diff --git a/dev/src/AlmanacStore.hpp b/dev/src/AlmanacStore.hpp
new file mode 100644
index 0000000..a0703cd
--- /dev/null
+++ b/dev/src/AlmanacStore.hpp
@@ -0,0 +1,135 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file AlmanacStore.hpp
+ * Store almanac information, and access by satellite and time
+ */
+
+#ifndef GPSTK_ALMANACSTORE_HPP
+#define GPSTK_ALMANACSTORE_HPP
+
+#include <iostream>
+#include <string>
+#include <map>
+
+#include "Exception.hpp"
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "AlmOrbit.hpp"
+#include "EngAlmanac.hpp"
+
+namespace gpstk
+{
+ /** @defgroup ephemstore Ephemeris I/O and Storage */
+ //@{
+
+ /// This class defines an interface to hide how we are getting an SV's
+ /// position at some point in time using almanac data.
+ class AlmanacStore
+ {
+ public:
+ /// Thrown when attempting to read an almanac that isn't stored.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(NoAlmanacFound, gpstk::Exception);
+
+ /// return the PVT of the satellite in ECEF coordinates
+ /// @param sat the satellite's SatID
+ /// @param t the time of interest
+ Xvt getSatXvt(SatID sat, const gpstk::DayTime& t)
+ const throw(NoAlmanacFound);
+
+ /// \deprecated use the SatID version
+ Xvt getPrnXvt(short prn, const gpstk::DayTime& t)
+ const throw(NoAlmanacFound)
+ { SatID sat(prn,SatID::systemGPS); return getSatXvt(sat,t); }
+
+ /// return the health of the satellite at a particular time
+ /// @param sat the satellite's SatID
+ /// @param t the time of interest
+ short getSatHealth(SatID sat, const gpstk::DayTime& t)
+ const throw(NoAlmanacFound);
+
+ /// \deprecated use the SatID version
+ short getPrnHealth(short prn, const gpstk::DayTime& t)
+ const throw(NoAlmanacFound)
+ { SatID sat(prn,SatID::systemGPS); return getSatHealth(sat,t); }
+
+ bool addAlmanac(const AlmOrbit& alm) throw();
+ bool addAlmanac(const EngAlmanac& alm) throw();
+
+ /// gets the closest almanac for the given time and satellite id,
+ /// closest being in the past or future.
+ /// @param sat the satellite's SatID
+ /// @param t the time of interest
+ AlmOrbit findAlmanac(SatID sat, const DayTime& t)
+ const throw(NoAlmanacFound);
+
+ /// \deprecated use the SatID version
+ AlmOrbit findAlmanac(short prn, const DayTime& t)
+ const throw(NoAlmanacFound)
+ { SatID sat(prn,SatID::systemGPS); return findAlmanac(sat,t); }
+
+ /// returns all almanacs closest to t for all satellites
+ AlmOrbits findAlmanacs(const DayTime& t) const;
+
+ /// returns earliest Toa found in the set
+ gpstk::DayTime getInitialTime() const;
+
+ /// this isn't accurate, but the 0 case is all that's really important
+ size_t size() const { return uba.size(); }
+
+ protected:
+ /** This is intended to just store weekly sets of unique EngAlmanacs
+ * for a single SV. The key is ToA
+ */
+ typedef std::map<gpstk::DayTime, AlmOrbit> EngAlmMap;
+
+ /** This is intended to hold all unique EngEphemerises for each SV
+ * The key is the SatID of the SV.
+ */
+ typedef std::map<SatID, EngAlmMap> UBAMap;
+
+ /// The map where all EngAlmanacs are stored.
+ UBAMap uba;
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/BCEphemerisStore.cpp b/dev/src/BCEphemerisStore.cpp
new file mode 100644
index 0000000..cc5faea
--- /dev/null
+++ b/dev/src/BCEphemerisStore.cpp
@@ -0,0 +1,489 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file BCEphemerisStore.cpp
+ * Store GPS broadcast ephemeris information, and access by satellite and time
+ */
+
+#include <iostream>
+#include <fstream>
+#include <iomanip>
+
+#include "StringUtils.hpp"
+#include "BCEphemerisStore.hpp"
+#include "MathBase.hpp"
+
+using namespace std;
+using namespace gpstk;
+using gpstk::StringUtils::asString;
+
+namespace gpstk
+{
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ const EngEphemeris&
+ BCEphemerisStore::findEphemeris(SatID sat, const DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ try
+ {
+ const EngEphemeris& eph
+ = (method==0 ? findUserEphemeris(sat, t) : findNearEphemeris(sat,t) );
+ return eph;
+ }
+ catch(NoEphemerisFound& nef)
+ {
+ GPSTK_RETHROW(nef);
+ }
+ catch(InvalidRequest& ir)
+ {
+ NoEphemerisFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+ }
+
+
+ Xvt BCEphemerisStore::getSatXvt(SatID sat, const DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ short ref;
+ return getSatXvt(sat, t, ref);
+ } // end of BCEphemerisStore::getSatXvt()
+
+
+ Xvt BCEphemerisStore::getSatXvt(SatID sat, const DayTime& t, short& ref)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ try
+ {
+ // test for GPS satellite system in sat?
+ const EngEphemeris& eph = findEphemeris(sat,t);
+ ref = eph.getIODC();
+ Xvt sv = eph.svXvt(t);
+ return sv;
+ }
+ catch(NoEphemerisFound& nef)
+ {
+ GPSTK_RETHROW(nef);
+ }
+ catch(InvalidRequest& ir)
+ {
+ NoEphemerisFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+ } // end of BCEphemerisStore::getSatXvt()
+
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ double BCEphemerisStore::getTGD(SatID sat, const DayTime& t)
+ const throw(EphemerisStore::NoTGDFound)
+ {
+ try
+ {
+ double tgdValue;
+ const EngEphemeris& eph
+ = ( method==0 ? findEphemeris(sat,t) : findNearEphemeris(sat,t) );
+ tgdValue = eph.getTgd() * C_GPS_M;
+ return tgdValue;
+ }
+ catch(NoTGDFound& nef)
+ {
+ GPSTK_RETHROW(nef);
+ }
+ catch(InvalidRequest& ir)
+ {
+ NoTGDFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+ } // end of BCEphemerisStore::getTGD()
+
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ short BCEphemerisStore::getSatHealth(SatID sat, const DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ try
+ {
+ // test for GPS satellite system in sat?
+ const EngEphemeris& eph = findEphemeris(sat, t);
+ short health = eph.getHealth();
+ return health;
+ }
+ catch(NoEphemerisFound& nef)
+ {
+ GPSTK_RETHROW(nef);
+ }
+ catch(InvalidRequest& ir)
+ {
+ NoEphemerisFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+ } // end of BCEphemerisStore::getHealth()
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ void BCEphemerisStore::dump(short detail, std::ostream& s) const
+ {
+ UBEMap::const_iterator it;
+
+ s << "Dump of BCEphemerisStore:\n";
+ if (detail==0)
+ {
+ unsigned bce_count=0;
+ for (it = ube.begin(); it != ube.end(); it++)
+ bce_count += it->second.size();
+
+ s << " Span is " << initialTime
+ << " to " << finalTime
+ << " with " << bce_count << " entries."
+ << std::endl;
+ }
+ else
+ {
+ for (it = ube.begin(); it != ube.end(); it++)
+ {
+ const EngEphMap& em = it->second;
+ s << " BCE map for satellite " << it->first
+ << " has " << em.size() << " entries." << std::endl;
+
+ EngEphMap::const_iterator ei;
+ for (ei=em.begin(); ei != em.end(); ei++)
+ if (detail==1)
+ s << "PRN " << setw(2) << it->first
+ << " TOE " << ei->second.getEpochTime()
+ << " TOC " << fixed << setw(10) << setprecision(3) << ei->second.getToc()
+ << " HOW " << setw(10) << ei->second.getHOWTime(2)
+ << " KEY " << ei->first
+ << std::endl;
+ else
+ ei->second.dump();
+ }
+
+ s << " End of BCE maps." << std::endl << std::endl;
+ }
+ } // end of BCEphemerisStore::dump()
+
+
+ //--------------------------------------------------------------------------
+ // Only keeps one ephemeris with a given IODC/time
+ // It should keep the one with the latest transmit time
+ //--------------------------------------------------------------------------
+ bool BCEphemerisStore::addEphemeris(const EngEphemeris& eph)
+ throw(InvalidRequest)
+ {
+ bool rc = false;
+ DayTime t(0.L);
+ t = eph.getEphemerisEpoch();
+ t -= 0.5*3600.0*eph.getFitInterval();
+
+ EngEphMap& eem = ube[eph.getPRNID()];
+ EngEphMap::iterator sfi = eem.find(t);
+ if ( sfi == eem.end())
+ {
+ eem[t] = eph;
+ rc = true;
+ }
+ else
+ {
+ // Store the new eph only if it has a later transmit time
+ EngEphemeris& current = sfi->second;
+ DayTime ephTot, currentTot;
+ ephTot = eph.getTransmitTime();
+ currentTot = current.getTransmitTime();
+
+ if (ephTot > currentTot)
+ {
+ //if (eph.getIODC() != current.getIODC())
+ //cerr << "Wierd: prn:" << setw(2) << eph.getPRNID()
+ //<< ", Toe:" << eph.getToe()
+ //<< ", New IODC:" << eph.getIODC()
+ //<< ", New TTx:" << eph.getTot()
+ //<< ", Old IODC:" << current.getIODC()
+ //<< ", Old TTx:" << current.getTot()
+ //<< endl;
+
+ current = eph;
+ rc = true;
+ }
+ }
+
+ // In any case, update the initial and final times
+ if (t<initialTime)
+ initialTime = t;
+ else if (t>finalTime)
+ finalTime = t;
+
+ return rc;
+ }
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ unsigned BCEphemerisStore::wiper(const DayTime& t) throw(InvalidRequest)
+ {
+ unsigned counter = 0;
+ DayTime test;
+ for(UBEMap::iterator i = ube.begin(); i != ube.end(); i++)
+ {
+ EngEphMap& thisPRN = i->second;
+ EngEphMap::size_type mapSize = i->second.size();
+ bool done = (i->second.size() == 0);
+ while(!done)
+ {
+ EngEphemeris& foo = thisPRN.begin()->second;
+ try
+ {
+ test = foo.getEphemerisEpoch();
+ }
+ catch (InvalidRequest& exc)
+ {
+ exc.addText("In wiping ephemerides for PRN " +
+ asString(i->first));
+ exc.addText("Map had " + asString(mapSize) + " elements in"
+ " it to begin with");
+ //foo.dump(exc);
+ ostringstream oss;
+ foo.dump(oss);
+ exc.addText(oss.str());
+ GPSTK_RETHROW(exc);
+ }
+ if( test < t )
+ {
+ thisPRN.erase(thisPRN.begin());
+ ++counter;
+ done = (i->second.size() == 0);
+ }
+ else
+ {
+ done = true;
+ }
+ }
+ }
+ // update initialTime
+ initialTime = t;
+
+ return counter;
+ }
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ void BCEphemerisStore::edit(const DayTime& tmin, const DayTime& tmax)
+ {
+ DayTime test;
+ for(UBEMap::iterator i = ube.begin(); i != ube.end(); i++)
+ {
+ EngEphMap& eMap = i->second;
+
+ EngEphMap::iterator lower = eMap.lower_bound(tmin);
+ if (lower != eMap.begin())
+ eMap.erase(eMap.begin(), --lower);
+
+ EngEphMap::iterator upper = eMap.upper_bound(tmax);
+ if (upper != eMap.end())
+ eMap.erase(upper, eMap.end());
+ }
+
+ initialTime = tmin;
+ finalTime = tmax;
+ }
+
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ void BCEphemerisStore::clear() throw()
+ {
+ ube.clear();
+ initialTime = DayTime::END_OF_TIME;
+ finalTime = DayTime::BEGINNING_OF_TIME;
+ }
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ unsigned BCEphemerisStore::ubeSize() const throw()
+ {
+ unsigned counter = 0;
+ for(UBEMap::const_iterator i = ube.begin(); i != ube.end(); i++)
+ counter += i->second.size();
+ return counter;
+ }
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ const EngEphemeris&
+ BCEphemerisStore::findUserEphemeris(SatID sat, const DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ DayTime test;
+ UBEMap::const_iterator prn_i = ube.find(sat.id);
+ if (prn_i == ube.end())
+ {
+ NoEphemerisFound nef("No ephemeris for satellite " + asString(sat));
+ GPSTK_THROW(nef);
+ }
+
+ const EngEphMap& em = prn_i->second;
+ DayTime t1(0.0L), t2(0.0L), Tot = DayTime::BEGINNING_OF_TIME;
+ EngEphMap::const_iterator it = em.end();
+
+ // Find eph with (Toe-(fitint/2)) > t - 4 hours
+ // Use 4 hours b/c it's the default fit interval.
+ // Backup one ephemeris to make sure you get the
+ // correct one in case of fit intervals greater
+ // than 4 hours.
+ EngEphMap::const_iterator ei = em.upper_bound(t - 4 * 3600);
+ if (!em.empty() && ei != em.begin() )
+ {
+ ei--;
+ }
+
+ for (; ei != em.end(); ei++)
+ {
+ const EngEphemeris& current = ei->second;
+ // t1 = Toe-(fitint / 2)
+ t1 = ei->first;
+ // t2 = HOW time
+ t2 = current.getTransmitTime();
+
+ // Ephemeredes are ordered by fit interval.
+ // If the start of the fit interval is in the future,
+ // this and any more ephemerides are not the one you are
+ // looking for.
+ if( t1 > t )
+ {
+ break;
+ }
+
+ double dt1 = t - t1;
+ double dt2 = t - t2;
+
+ if (dt1 >= 0 && // t is after start of fit interval
+ dt1 < current.getFitInterval() * 3600 && // t is within the fit interval
+ dt2 >= 0 && // t is after Tot
+ t2 > Tot ) // this eph has the latest Tot
+ {
+ it = ei;
+ Tot = t2;
+ }
+ }
+
+ if (it == em.end())
+ {
+ string mess = "No eph found for satellite "
+ + asString(sat) + " at " + t.printf("%03j %02H:%02M:%02S");
+ NoEphemerisFound e(mess);
+ GPSTK_THROW(e);
+ }
+
+ return it->second;
+ } // end of BCEphemerisStore::findEphemeris()
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ const EngEphemeris&
+ BCEphemerisStore::findNearEphemeris(SatID sat, const DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ DayTime test;
+ UBEMap::const_iterator prn_i = ube.find(sat.id);
+ if (prn_i == ube.end())
+ {
+ NoEphemerisFound nef("No ephemeris for satellite " + asString(sat));
+ GPSTK_THROW(nef);
+ }
+
+ const EngEphMap& em = prn_i->second;
+ double dt2min = -1;
+ DayTime tstart, how;
+ EngEphMap::const_iterator it = em.end();
+
+ // Find eph with (Toe-(fitint/2)) > t - 4 hours
+ // Use 4 hours b/c it's the default fit interval.
+ // Backup one ephemeris to make sure you get the
+ // correct one in case of fit intervals greater
+ // than 4 hours.
+ EngEphMap::const_iterator ei = em.upper_bound(t - 4 * 3600);
+ if (!em.empty() && ei != em.begin() )
+ {
+ ei--;
+ }
+
+ for (; ei != em.end(); ei++)
+ {
+ const EngEphemeris& current = ei->second;
+ // tstart = Toe-(fitint / 2)
+ tstart = ei->first;
+ // how = HOW time
+ how = current.getTransmitTime();
+
+ // Ephemerides are ordered by time of start of fit interval.
+ // If the start of the fit interval is in the future,
+ // this and any more ephemerides are not the one you are
+ // looking for.
+ if( tstart > t ) break;
+
+ double dt1 = t - tstart;
+ double dt2 = t - how;
+
+ if (dt1 >= 0 && // t is after start of fit interval
+ dt1 <= current.getFitInterval()*3600 && // t is within the fit interval
+ (dt2min == -1 || fabs(dt2) < dt2min)) // t is closest to HOW
+ {
+ it = ei;
+ dt2min = fabs(dt2);
+ }
+ }
+
+ if (it == em.end())
+ {
+ string mess = "No eph found for satellite "
+ + asString(sat) + " at " + t.printf("%03j %02H:%02M:%02S");
+ NoEphemerisFound e(mess);
+ GPSTK_THROW(e);
+ }
+
+ return it->second;
+ } // end of BCEphemerisStore::findNearEphemeris()
+
+//-----------------------------------------------------------------------------
+//-----------------------------------------------------------------------------
+ int BCEphemerisStore::addToList(std::list<EngEphemeris>& v) const throw()
+ {
+ int n=0;
+ UBEMap::const_iterator prn_i;
+ for (prn_i = ube.begin(); prn_i != ube.end(); prn_i++)
+ {
+ const EngEphMap& em = prn_i->second;
+ EngEphMap::const_iterator ei;
+ for (ei=em.begin(); ei != em.end(); ei++)
+ {
+ v.push_back(ei->second);
+ n++;
+ }
+ }
+ return n;
+ } // end of BCEphemerisStore::addToList(list<EngEphemeris>&)
+
+} // namespace
diff --git a/dev/src/BCEphemerisStore.hpp b/dev/src/BCEphemerisStore.hpp
new file mode 100644
index 0000000..7f6e158
--- /dev/null
+++ b/dev/src/BCEphemerisStore.hpp
@@ -0,0 +1,285 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file BCEphemerisStore.hpp
+ * Store GPS broadcast ephemeris information, and access by satellite and time
+ */
+
+#ifndef GPSTK_BCEPHEMERISSTORE_HPP
+#define GPSTK_BCEPHEMERISSTORE_HPP
+
+#include <iostream>
+#include <string>
+#include <list>
+#include <map>
+
+#include "EphemerisStore.hpp"
+#include "EngEphemeris.hpp"
+#include "icd_200_constants.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ /// Broadcast Ephemeris Store. In this variation of the EphemerisStore,
+ /// all ephemerides are broadcast from a satellite.
+ class BCEphemerisStore : public EphemerisStore
+ {
+ public:
+
+ /// Constructor.
+ BCEphemerisStore()
+ throw()
+ : initialTime(DayTime::END_OF_TIME),
+ finalTime(DayTime::BEGINNING_OF_TIME),
+ method(0) {};
+
+ /// Destructor.
+ virtual ~BCEphemerisStore() {}
+
+ /// \deprecated use the SatID version
+ virtual Xvt getPrnXvt(short prn,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound)
+ { SatID sat(prn,SatID::systemGPS); return getSatXvt(sat,t); }
+
+ /** This returns the pvt of the sv in ecef coordinates
+ * (units m, s, m/s, s/s) at the indicated time.
+ * @param sat the satellite's SatID
+ * @param t the time to look up
+ * @return the Xvt of the SV at time t
+ */
+ virtual Xvt getSatXvt(SatID sat,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound);
+
+ /** This method returns the Total Group Delay of the SV (in meters) at the
+ * indicated time.
+ * @param sat the satellite's SatID
+ * @param t the time to look up
+ * @return the TGD (in meters) of the SV at time t
+ */
+ virtual double getTGD(SatID sat, const gpstk::DayTime& t) const
+ throw(NoTGDFound);
+
+ /// \deprecated use the SatID version
+ virtual short getPrnHealth(short prn,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound)
+ { SatID sat(prn,SatID::systemGPS); return getSatHealth(sat,t); }
+
+ /** Return the health of an SV for a particular time
+ * @param sat the satellite's SatID
+ * @param t the time to look up
+ * @return the SV health bits
+ * @throw NoEphemerisFound no matching ephemeris found in the store
+ */
+ virtual short getSatHealth(SatID sat,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound);
+
+ /** Dumps all the ephemeris data stored in this object.
+ * @param detail the level of detail to provide
+ */
+ void dump(short detail = 0,
+ std::ostream& s = std::cout) const ;
+
+ /** Return the time of the first ephemeris in the object.
+ * @return the time of the first ephemeris in the object
+ */
+ virtual gpstk::DayTime getInitialTime() const
+ { return initialTime; }
+
+ /** Return the time of the last ephemeris in the object.
+ * @return the time of the last ephemeris in the object
+ */
+ virtual gpstk::DayTime getFinalTime() const
+ { return finalTime; }
+
+ /** Add an EngEphemeris object to this collection.
+ * @param eph the EngEphemeris to add
+ * @return true if ephemeris was added, false otherwise
+ */
+ bool addEphemeris(const EngEphemeris& eph)
+ throw(gpstk::InvalidRequest);
+
+ /** Remove EngEphemeris objects older than t.
+ * @param t remove EngEphemeris objects older than this
+ * @return number of Engephemeris objects removed
+ */
+ unsigned wiper(const DayTime& t)
+ throw(gpstk::InvalidRequest);
+
+ /// Edit the dataset, removing data outside this time interval
+ virtual void edit(const DayTime& tmin,
+ const DayTime& tmax) ;
+
+ /// Remove all data from this collection.
+ void clear() throw();
+
+
+ //---------------------------------------------------------------
+ // Below are interfaces that are unique to this class (i.e. not
+ // in the parent class)
+ //---------------------------------------------------------------
+
+ /// \deprecated use the SatID version.
+ Xvt getPrnXvt(short prn,
+ const gpstk::DayTime& t,
+ short& ref) const
+ throw(NoEphemerisFound)
+ { SatID sat(prn,SatID::systemGPS); return getSatXvt(sat,t,ref); }
+
+ /** This returns the pvt of the sv in ecef coordinates
+ * (units m, s, m/s, s/s) at the indicated time.
+ * @param sat the satellite's SatID
+ * @param t the time to look up
+ * @param ref a place to return the IODC for future reference.
+ * @return the Xvt of the SV at time t
+ */
+ Xvt getSatXvt(SatID sat,
+ const gpstk::DayTime& t,
+ short& ref) const
+ throw(NoEphemerisFound);
+
+ /** Get the number of EngEphemeris objects in this collection.
+ * @return the number of EngEphemeris records in the map
+ */
+ unsigned ubeSize() const
+ throw();
+
+ unsigned size() const
+ { return ubeSize(); };
+
+ /// \deprecated use the SatID version.
+ const EngEphemeris& findEphemeris(short prn,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound)
+ { SatID sat(prn,SatID::systemGPS); return findEphemeris(sat,t); }
+
+ /** Find an ephemeris based upon the search method configured
+ * by SearchNear/SearchPast
+ * @param sat SatID of satellite of interest
+ * @param t time with which to search for ephemeris
+ */
+ const EngEphemeris& findEphemeris(SatID sat,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound);
+
+ /// \deprecated use the SatID version.
+ const EngEphemeris& findUserEphemeris(short prn,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound)
+ { SatID sat(prn,SatID::systemGPS); return findUserEphemeris(sat,t); }
+
+ /** Find the EngEphemeris for prn at time t. The ephemeris
+ * is chosen to be the one that 1) is within the fit interval
+ * for the given time of interest, and 2) is the last
+ * ephemeris transmitted before the time of interest
+ * (i.e. min(toi - HOW time)).
+ *
+ * @param prn the SV's PRN of interest
+ * @param t the time of interest
+ * @return a reference to the EngEphemeris for prn at time t
+ */
+ const EngEphemeris& findUserEphemeris(SatID sat,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound);
+
+ /// \deprecated use the SatID version.
+ const EngEphemeris& findNearEphemeris(short prn,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound)
+ { SatID sat(prn,SatID::systemGPS); return findNearEphemeris(sat,t); }
+
+ /** Find the EngEphemeris for satellite prn at time t. The
+ * ephemeris chosen is the one with HOW time closest to the
+ * time t, i.e. with smallest fabs(t-HOW), but still within
+ * the fit interval.
+ *
+ * @param prn the SV's PRN of interest
+ * @param t the time of interest
+ * @return a reference to the EngEphemeris for prn at time t
+ */
+ const EngEphemeris& findNearEphemeris(SatID sat,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound);
+
+ /** Add all ephemerides to an existing list<EngEphemeris>.
+ * Return the number of ephemerides added.
+ */
+ int addToList(std::list<EngEphemeris>& v) const
+ throw();
+
+ /// use findNearEphemeris() in the getSat...() routines
+ void SearchNear(void)
+ { method = 1; }
+
+ /// use findEphemeris() in the getSat...() routines (the default)
+ void SearchPast(void)
+ { method = 0; }
+
+ private:
+ /** This is intended to just store weekly sets of unique EngEphemerides
+ * for a single SV. The key is the Toe - 1/2 the fit interval.
+ */
+ typedef std::map<gpstk::DayTime, EngEphemeris> EngEphMap;
+
+ /** This is intended to hold all unique EngEphemerides for each SV
+ * The key is the prn of the SV.
+ */
+ typedef std::map<short, EngEphMap> UBEMap;
+
+ /// The map where all EngEphemerides are stored.
+ UBEMap ube;
+
+ gpstk::DayTime initialTime; //< Time of the first EngEphemeris
+ gpstk::DayTime finalTime; //< Time of the last EngEphemeris
+
+ /// flag indicating search method (find...Eph) to use in getSatXvt
+ /// and getSatHealth
+ int method;
+
+ }; // end class BCEphemerisStore
+
+ //@}
+
+} // namespace gpstk
+
+#endif // GPSTK_BCEPHEMERISSTORE_HPP
diff --git a/dev/src/Bancroft.cpp b/dev/src/Bancroft.cpp
new file mode 100644
index 0000000..e6dff55
--- /dev/null
+++ b/dev/src/Bancroft.cpp
@@ -0,0 +1,169 @@
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+/**
+ * @file Bancroft.cpp
+ * Use Bancroft method to get an initial guess of GPS receiver's position
+ */
+
+#include <cstdlib> // for std::abs()
+#include "Bancroft.hpp"
+#include "MiscMath.hpp"
+#include "Matrix.hpp"
+#include "Vector.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+ /* 'Data' Matrix of data containing observation data in rows, one
+ * row per observation and complying with this format:
+ * x y z P
+ * Where x,y,z are satellite coordinates in an ECEF system
+ * and P is pseudorange (corrected as much as possible,
+ * specially from satellite clock errors), all expresed
+ * in meters
+ * 'X' Vector of position solution, in meters. There may be
+ * another solution, that may be accessed with vector
+ * "SecondSolution" if "ChooseOne" is set to "false".
+ *
+ * Return values:
+ * 0 Ok
+ * -1 Not enough good data
+ * -2 Singular problem
+ */
+ int Bancroft::Compute(Matrix<double>& Data, Vector<double>& X) throw(Exception)
+ {
+ try {
+
+ int N = Data.rows();
+ Matrix<double> B(0,4); // Working matrix
+
+ // Let's test the input data
+ if (testInput) {
+ double satRadius = 0.0;
+ // Check each row of B Matrix
+ for(int i=0; i < N; i++) {
+ // If Data(i,3) -> Pseudorange NOT between the allowed range, drop line immediately
+ if( !( Data(i,3)>=minPRange && Data(i,3)<=maxPRange ) ) continue;
+ // Let's compute distance between Earth center and satellite position
+ satRadius = RSS(Data(i,0), Data(i,1) , Data(i,2));
+ // If satRadius NOT between the allowed range, drop line immediately
+ if( !( satRadius>=minRadius && satRadius<=maxRadius ) ) continue;
+ // If everything is ok so far, then extract the good data row and add it to working matrix
+ MatrixRowSlice<double> goodRow(Data,i);
+ B = B && goodRow;
+ }
+ // Let's redefine "N" and check if we have enough data rows left in a single step
+ if ( (N = B.rows()) < 4 ) return -1; // We need at least 4 data rows
+ } else {
+ // No input filtering. Working matrix (B) and input matrix (Data) are equal
+ B = Data;
+ }
+
+
+ Matrix<double> BT=transpose(B);
+ Matrix<double> BTBI(4,4), M(4,4,0.0);
+ Vector<double> aux(4), alpha(N), solution1(4), solution2(4);
+
+ // Temporary storage for BT*B. It will be inverted later
+ BTBI = BT * B;
+
+ // Let's try to invert BTB matrix
+ try {
+ BTBI = inverseChol( BTBI );
+ }
+ catch(...) {
+ return -2;
+ }
+
+ // Now, let's compute alpha vector
+ for(int i=0; i < N; i++) {
+ // First, fill auxiliar vector with corresponding satellite position and pseudorange
+ aux(0) = B(i,0);
+ aux(1) = B(i,1);
+ aux(2) = B(i,2);
+ aux(3) = B(i,3);
+ alpha(i) = 0.5 * Minkowski(aux, aux);
+ }
+
+ Vector<double> tau(N,1.0), BTBIBTtau(4), BTBIBTalpha(4);
+
+ BTBIBTtau = BTBI * BT * tau;
+ BTBIBTalpha = BTBI * BT * alpha;
+
+ // Now, let's find the coeficients of the second order-equation
+ double a = Minkowski(BTBIBTtau, BTBIBTtau);
+ double b = 2.0 * (Minkowski(BTBIBTtau, BTBIBTalpha) - 1.0);
+ double c = Minkowski(BTBIBTalpha, BTBIBTalpha);
+
+ // Calculate discriminant and exit if negative
+ double discriminant = b*b - 4.0 * a * c;
+ if (discriminant < 0.0) return -2;
+
+ // Find possible DELTA values
+ double DELTA1 = ( -b + SQRT(discriminant) ) / ( 2.0 * a );
+ double DELTA2 = ( -b - SQRT(discriminant) ) / ( 2.0 * a );
+
+ // We need to define M matrix
+ M(0,0) = 1.0;
+ M(1,1) = 1.0;
+ M(2,2) = 1.0;
+ M(3,3) = - 1.0;
+
+ // Find possible position solutions with their implicit radii
+ solution1 = M * BTBI * ( BT * DELTA1 * tau + BT * alpha );
+ double radius1 = RSS(solution1(0), solution1(1), solution1(2));
+
+ solution2 = M * BTBI * ( BT * DELTA2 * tau + BT * alpha );
+ double radius2 = RSS(solution2(0), solution2(1), solution2(2));
+
+ // Let's choose the right solution
+ if ( ChooseOne ) {
+ if ( ABS(CloseTo-radius1) < ABS(CloseTo-radius2) ) {
+ X = solution1;
+ } else {
+ X = solution2;
+ }
+ } else { // Both solutions will be reported
+ X = solution1;
+ SecondSolution = solution2;
+ }
+
+ return 0;
+
+ } // end of first "try"
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end Bancroft::Compute()
+
+ /// Another version of Compute method to allow calling it with const Matrix B.
+ int Bancroft::Compute(const Matrix<double>& Data, Vector<double>& X) throw(Exception)
+ {
+ Matrix<double> Datanoconst(Data);
+ return Bancroft::Compute(Datanoconst, X);
+ }
+
+
+} // namespace gpstk
diff --git a/dev/src/Bancroft.hpp b/dev/src/Bancroft.hpp
new file mode 100644
index 0000000..cbcf5fb
--- /dev/null
+++ b/dev/src/Bancroft.hpp
@@ -0,0 +1,135 @@
+/**
+ * @file Bancroft.hpp
+ * Use Bancroft method to get an initial guess of GPS receiver's position
+ */
+
+#ifndef BANCROFT_HPP
+#define BANCROFT_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+#include <vector>
+#include "Matrix.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+ /** @defgroup GPSsolutions GPS solution algorithms and Tropospheric models */
+ //@{
+
+ /** This class defines an algebraic algorithm to get an initial guess of
+ * GPS receiver's position given satellites' positions and pseudoranges.
+ * The algorithm is based on Bancroft's Method as presented in: YANG, Ming &
+ * Kuo-Hwa CHEN. ``Performance Assessment of a Noniterative Algorithm for
+ * Global Positioning System (GPS) Absolute Positioning''. Proc. Natl. Sci.
+ * Counc. ROC(A). Vol. 25, No. 2, 2001. pp. 102-106.
+ */
+ class Bancroft
+ {
+ public:
+ /// Constructor
+ Bancroft() throw(Exception) : SecondSolution(4,0.0) {
+ testInput= true;
+ ChooseOne = true;
+ CloseTo = 6378137.0;
+ minPRange = 15000000.0;
+ maxPRange = 30000000.0;
+ minRadius = 23000000.0;
+ maxRadius = 29000000.0;
+ };
+
+ /** Compute an initial guess of GPS receiver's position , given satellites'
+ * positions and pseudoranges.
+ * @param Data Matrix of data containing observation data in rows, one
+ * row per observation and complying with this format:
+ *
+ * x y z P
+ *
+ * Where x,y,z are satellite coordinates in an ECEF system
+ * and P is pseudorange (corrected as much as possible,
+ * specially from satellite clock errors), all expresed
+ * in meters.
+ * @param X Vector of position solution, in meters. There may be
+ * another solution that may be accessed with vector
+ * "SecondSolution" if "ChooseOne" is set to "false".
+ *
+ * @return
+ * 0 Ok,
+ * -1 Not enough good data
+ * -2 Singular problem
+ */
+ int Compute(Matrix<double>& Data, Vector<double>& X) throw(Exception);
+
+ /// Another version of Compute method allowing calls with Matrix B being const.
+ int Compute(const Matrix<double>& Data, Vector<double>& X) throw(Exception);
+
+ // input:
+
+ /** If true, the solution closest to CloseTo criterion will be chosen. If false,
+ * both posible solutions will be provided.
+ */
+ bool ChooseOne;
+
+ /** Criterion to decide which solution to choose. The algorithm will choose the
+ * solution closer to this value. By default, it is set to earth radius, in meters.
+ */
+ double CloseTo;
+
+ /** If true (the default), the B input Matrix will be screened to get out suspicious data.
+ * It works with minPRange, maxPRange, minRadius and maxRadius to pick up a set of "clean
+ * data". However, don't be too picky with these parameters in order to leave room for
+ * different GNSS systems and configurations. Anyway, Bancroft will give you just an
+ * approximate position.
+ */
+ bool testInput;
+
+ /// Minimum pseudorange value allowed for input data (in meters).
+ double minPRange;
+
+ /// Maximum pseudorange value allowed for input data (in meters).
+ double maxPRange;
+
+ /// Minimum allowed distance between Earth center and satellite position for input data (in meters).
+ double minRadius;
+
+ /// Maximum allowed distance between Earth center and satellite position for input data (in meters).
+ double maxRadius;
+
+ /** Vector<double> containing the estimated second position solution (ECEF, meter),
+ * if ChooseOne is set to "false".
+ */
+ Vector<double> SecondSolution;
+
+ /// Destructor.
+ virtual ~Bancroft() throw() {};
+
+
+ }; // end class Bancroft
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/BasicFramework.cpp b/dev/src/BasicFramework.cpp
new file mode 100644
index 0000000..d02691e
--- /dev/null
+++ b/dev/src/BasicFramework.cpp
@@ -0,0 +1,132 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file BasicFramework.cpp
+ * Basic framework for programs in the GPS toolkit
+ */
+
+#include "Exception.hpp"
+#include "BasicFramework.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+
+ BasicFramework :: BasicFramework(const string& applName,
+ const string& applDesc)
+ throw()
+ : debugLevel(0),
+ verboseLevel(0),
+ argv0(applName),
+ appDesc(applDesc),
+ debugOption('d', "debug", "Increase debug level"),
+ verboseOption('v', "verbose", "Increase verbosity"),
+ helpOption('h', "help", "Print help usage")
+ {
+ }
+
+ bool BasicFramework :: initialize(int argc, char *argv[])
+ throw()
+ {
+ // Making this a pointer and moving it here ensures that the
+ // constructor will not occur until all the command line
+ // option objects are constructed in the sub-classes.
+ CommandOptionParser cop(appDesc);
+
+ cop.parseOptions(argc, argv);
+
+ if (helpOption.getCount())
+ {
+ cop.displayUsage(cerr);
+ return false;
+ }
+
+ if (cop.hasErrors())
+ {
+ cop.dumpErrors(cerr);
+ cop.displayUsage(cerr);
+ return false;
+ }
+
+ debugLevel = debugOption.getCount();
+ verboseLevel = verboseOption.getCount();
+
+ return true;
+ }
+
+ bool BasicFramework :: run()
+ throw()
+ {
+ try
+ {
+ completeProcessing();
+ }
+ catch (Exception& exc)
+ {
+ cerr << exc;
+ return false;
+ }
+ catch (...)
+ {
+ cerr << "Caught unknown exception" << endl;
+ return false;
+ }
+
+ shutDown();
+
+ return true;
+ } // BasicFramework::run()
+
+ void BasicFramework :: completeProcessing()
+ {
+ additionalSetup();
+
+ spinUp();
+
+ process();
+ }
+
+} // namespace
diff --git a/dev/src/BasicFramework.hpp b/dev/src/BasicFramework.hpp
new file mode 100644
index 0000000..30d4688
--- /dev/null
+++ b/dev/src/BasicFramework.hpp
@@ -0,0 +1,184 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file BasicFramework.hpp
+ * Basic framework for programs in the GPS toolkit
+ */
+
+#ifndef GPSTK_BASICFRAMEWORK_HPP
+#define GPSTK_BASICFRAMEWORK_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "CommandOptionParser.hpp"
+
+namespace gpstk
+{
+ /** @defgroup appframegroup Framework for Applications
+ *
+ * The application frameworks provide a set of classes that
+ * perform the basic functions of applications within the GPS
+ * toolkit. That is, they provide a framework for applications
+ * so that the applications only have to implement those
+ * features which are unique to that application.
+ *
+ * The classes are defined in a tree of increasing capability,
+ * that is, the BasicFramework class at the root of the tree
+ * does very little and implements only those functions which
+ * are common to all programs within the toolkit. Each
+ * subsequent subclass adds additional layers to these basic
+ * capabilities.
+ *
+ * The end user is expected to create a class, which inherits
+ * from one of these frameworks, and override the appropriate
+ * methods in order to perform the necessary function of that
+ * program. The methods to be overridden depend on the
+ * framework being used and what the program is intended to
+ * do.
+ */
+ //@{
+
+ /**
+ * This is a (very) basic framework for programs in the GPS
+ * toolkit. It is meant to be used by programs that start up,
+ * do some processing, and quit.
+ *
+ * The end user should define subclasses of this class,
+ * implementing those methods described as being meant to be
+ * overridden. When implementing these virtual functions in
+ * subclasses, do not forget to call the parent class'
+ * implementation of that virtual function first.
+ *
+ * In use, the user will construct an object of the class
+ * derived from this, then call the initialize() and run()
+ * methods in that order.
+ */
+ class BasicFramework
+ {
+ public:
+ /**
+ * Constructor for BasicFramework.
+ * @param applName name of the program (argv[0]).
+ * @param applDesc text description of program's function
+ * (used by CommandOption help).
+ */
+ BasicFramework(const std::string& applName, const std::string& applDesc)
+ throw();
+
+ /// Destructor.
+ virtual ~BasicFramework() {}
+
+ /**
+ * Process command line arguments.
+ * @param argc same as main() argc.
+ * @param argv same as main() argv.
+ * @return true if normal processing should proceed (i.e. no
+ * command line errors or help requests).
+ */
+ virtual bool initialize(int argc, char *argv[]) throw();
+
+ /**
+ * Run the program. Processes only once (refer to subclasses
+ * for looped processing).
+ * @return false if an exception occurred
+ */
+ bool run() throw();
+
+ protected:
+ int debugLevel; ///< Debug level for this run of the program.
+ int verboseLevel; ///< Verbose level for this run of the program.
+ std::string argv0; ///< Name of the program.
+ std::string appDesc; ///< Description of program's function.
+
+ /// Command-line options.
+ //@{
+ CommandOptionNoArg debugOption; ///< Enable debugging output and syslog message cloning to stdout.
+ CommandOptionNoArg verboseOption;
+ CommandOptionNoArg helpOption;
+ //@}
+
+ /**
+ * Called by the run() method; calls additionalSetup(),
+ * spinUp(), and process(), in that order. Generally should
+ * not be overridden.
+ */
+ virtual void completeProcessing();
+
+ /**
+ * Additional set-up to be performed before starting
+ * processing. This generally involves things that are
+ * necessary for either the spinUp processing or main
+ * processing.
+ */
+ virtual void additionalSetup() { }
+
+ /**
+ * Code to be executed AFTER initialization. This method
+ * should be implemeneted by the end-user.
+ */
+ virtual void spinUp() { }
+
+ /**
+ * Processing to be performed. This method should be
+ * implemeneted by the end-user.
+ */
+ virtual void process() { }
+
+ /**
+ * Clean-up processing to be done before the program ends.
+ * This method is executed outside of a try block and should
+ * be implemeneted by the end-user.
+ */
+ virtual void shutDown() { }
+
+ private:
+ // Do not allow the use of the default constructor.
+ BasicFramework();
+ }; // class BasicFramework
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/BinUtils.cpp b/dev/src/BinUtils.cpp
new file mode 100644
index 0000000..3ab64fd
--- /dev/null
+++ b/dev/src/BinUtils.cpp
@@ -0,0 +1,61 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file BinUtils.cpp
+ * Binary manipulation functions
+ */
+
+#include "BinUtils.hpp"
+
+namespace gpstk
+{
+ namespace BinUtils
+ {
+ const CRCParam CRCCCITT(16, 0x1021, 0xffff, 0, true, false, false);
+ const CRCParam CRC16(16, 0x8005, 0, 0, true, true, true);
+ const CRCParam CRC32(32, 0x4c11db7, 0xffffffff, 0xffffffff, true, true, true);
+ }
+}
diff --git a/dev/src/BinUtils.hpp b/dev/src/BinUtils.hpp
new file mode 100644
index 0000000..a6bae0e
--- /dev/null
+++ b/dev/src/BinUtils.hpp
@@ -0,0 +1,417 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file BinUtils.hpp
+ * Binary manipulation functions
+ */
+
+#ifndef BINUTILS_HPP
+#define BINUTILS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "gpstkplatform.h"
+
+#ifdef __sun
+#include <arpa/nameser_compat.h>
+#elif defined (__CYGWIN__)
+#include <sys/param.h>
+#elif defined (_AIX)
+#include <sys/machine.h>
+#endif
+
+#include "Exception.hpp"
+
+#ifndef BYTE_ORDER
+#ifdef _MSC_VER
+#define LITTLE_ENDIAN 1
+#define BIG_ENDIAN 0
+#define BYTE_ORDER LITTLE_ENDIAN
+#else
+#error "Platform doesn't support BYTE_ORDER?"
+#endif
+#endif
+
+namespace gpstk
+{
+ /**
+ * Binary data utilities.
+ *
+ * These functions and macros are to be used for manipulating
+ * binary data.
+ */
+ namespace BinUtils
+ {
+ /** @defgroup binutilsgroup Binary Data Manipulation Tools */
+ //@{
+
+ /**
+ * Reverse bytes.
+ * This function will reverse the bytes in any type, though it
+ * is typically meant to be used in atomic types like int and
+ * double.
+ * @param p object whose bytes are to be reversed.
+ */
+ template <class T> void twiddle(T& p)
+ throw()
+ {
+ unsigned char *front = (unsigned char*)&p;
+ unsigned char *end = front + sizeof(p) - 1;
+ unsigned char temp;
+
+ while (front<end)
+ {
+ temp = *front;
+ *front = *end;
+ *end = temp;
+ front++;
+ end--;
+ }
+ }
+
+ /**
+ * Converts Intel little-endian to host byte order, const version.
+ * @param p the object whose bytes are to be modified.
+ * @return a new object which is in Intel byte ordering.
+ */
+ template <class T> T intelToHost(const T& p)
+ throw()
+ {
+ T temp(p);
+#if BYTE_ORDER == BIG_ENDIAN
+ twiddle(temp);
+#endif
+ return temp;
+ }
+
+ /**
+ * Converts host byte order to Intel little-endian, const version
+ * @param p the object whose bytes are to be modified
+ * @return a new object which is in host byte ordering.
+ */
+ template <class T> T hostToIntel(const T& p)
+ throw()
+ {
+ T temp(p);
+#if BYTE_ORDER == BIG_ENDIAN
+ twiddle(temp);
+#endif
+ return temp;
+ }
+
+ /**
+ * Converts host byte order to network order, const version.
+ * @param p the object whose bytes are to be modified.
+ * @return a new object which is in network byte order.
+ */
+ template <class T> T netToHost(const T& p)
+ throw()
+ {
+ T temp(p);
+#if BYTE_ORDER == LITTLE_ENDIAN
+ twiddle(temp);
+#endif
+ return temp;
+ }
+
+ /**
+ * Converts network byte order to host order, const version.
+ * @param p the object whose bytes are to be modified.
+ * @return a new object which is in host byte order.
+ */
+ template <class T> T hostToNet(const T& p)
+ throw()
+ {
+ T temp(p);
+#if BYTE_ORDER == LITTLE_ENDIAN
+ twiddle(temp);
+#endif
+ return temp;
+ }
+
+ /**
+ * Remove (optinally) the item specified from the string and convert it
+ * from network byte order to host byte order.
+ * @param str the string from which to obtain data.
+ * @param pos an offset into the string to pull the data from. If this
+ * value is specified, the item is not removed from the string.
+ * @warn This function does not check for appropriate string length.
+ */
+ template <class T>
+ T decodeVar( std::string& str, std::string::size_type pos = std::string::npos)
+ {
+ T t;
+ char *cp = reinterpret_cast<char*>( &t );
+
+ if (pos == std::string::npos)
+ {
+ str.copy( cp, sizeof(T) );
+ t = gpstk::BinUtils::netToHost( t );
+ str.erase( 0, sizeof(T) );
+ }
+ else
+ {
+ str.copy( cp, sizeof(T) , pos);
+ t = gpstk::BinUtils::netToHost( t );
+ }
+ return t;
+ }
+
+ /**
+ * Add the network ordered binary representation of a var to the
+ * the given string.
+ * @param v the object of type T to convert to a string.
+ */
+ template<class T>
+ std::string encodeVar( const T& v )
+ {
+ T tmp = v;
+ tmp = gpstk::BinUtils::hostToNet( v );
+ return std::string( reinterpret_cast<char*>( &tmp ), sizeof( tmp ) );
+ }
+
+ /// This is thrown when there is an error processing a CRC
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(CRCException, Exception);
+
+ /// Reflects the lower \a bitnum bits of \a crc
+ inline unsigned long reflect (unsigned long crc,
+ int bitnum)
+ {
+ unsigned long i, j = 1, crcout = 0;
+
+ for (i = (unsigned long)1 << (bitnum - 1); i; i >>= 1)
+ {
+ if (crc & i)
+ {
+ crcout |= j;
+ }
+ j <<= 1;
+ }
+ return (crcout);
+ }
+
+ /// Encapsulate parameters for CRC computation
+ class CRCParam
+ {
+ public:
+ /// Constructor
+ CRCParam(int o,
+ unsigned long p,
+ unsigned long i,
+ unsigned long f,
+ bool d,
+ bool ri,
+ bool ro)
+ : order(o), polynom(p), initial(i), final(f), direct(d),
+ refin(ri), refout(ro)
+ {}
+
+ int order; ///< CRC polynomial order (without leading '1' bit).
+ unsigned long polynom; ///< CRC polynomial without the leading '1' bit.
+ unsigned long initial; ///< initial CRC initial value.
+ unsigned long final; ///< final final XOR value.
+ bool direct; ///< kind of algorithm, true = no augmented zero bits.
+ bool refin; ///< reflect the data bytes before processing.
+ bool refout; ///< reflect the CRC result before final XOR.
+ };
+
+ extern const CRCParam CRCCCITT;
+ extern const CRCParam CRC16;
+ extern const CRCParam CRC32;
+
+
+ /**
+ * Compute CRC (suitable for polynomial orders from 1 to 32).
+ * Does bit-by-bit computation (brute-force, no look-up
+ * tables). Default parameters are for CRC16.
+ * \p
+ * The following table lists parameters for common CRC
+ * algorithms (order is decimal, the other parameters are
+ * hex):
+ * \li CRC-CCITT order=16 polynom=1021 initial=ffff final=0 direct=true refin=false refout=false
+ * \li CRC-16 order=16 polynom=8005 initial=0 final=0 direct=true refin=true refout=true
+ * \li CRC-32 order=32 polynom=4c11db7 initial=ffffffff final=ffffffff direct=true refin=true refout=true
+ * @param data data to process CRC on.
+ * @param len length of data to process.
+ * @param params see documentation of CRCParam:w
+ * @return the CRC value
+ */
+ // This code "stolen" from Sven Reifegerste (zorci at gmx.de).
+ // Found at http://rcswww.urz.tu-dresden.de/~sr21/crctester.c
+ // from link at http://rcswww.urz.tu-dresden.de/~sr21/crc.html
+ inline unsigned long computeCRC(const unsigned char *data,
+ unsigned long len,
+ const CRCParam& params)
+ {
+ unsigned long i, j, c, bit;
+ unsigned long crc = params.initial;
+
+ // at first, compute constant bit masks for whole CRC and
+ // CRC high bit
+ unsigned long crcmask =
+ ((((unsigned long)1 << (params.order - 1)) - 1) << 1) | 1;
+ unsigned long crchighbit = (unsigned long)1 << (params.order - 1);
+
+ if (crc && params.direct)
+ {
+ for (i = 0; i < (unsigned long)params.order; i++)
+ {
+ bit = crc & 1;
+ if (bit)
+ {
+ crc ^= params.polynom;
+ }
+ crc >>= 1;
+ if (bit)
+ {
+ crc |= crchighbit;
+ }
+ }
+ }
+
+
+ for (i = 0; i < len; i++)
+ {
+ c = (unsigned long) * data++;
+ if (params.refin)
+ {
+ c = reflect(c, 8);
+ }
+
+ for (j = 0x80; j; j >>= 1)
+ {
+ bit = crc & crchighbit;
+ crc <<= 1;
+ if (c & j)
+ {
+ crc |= 1;
+ }
+ if (bit)
+ {
+ crc ^= params.polynom;
+ }
+ }
+ }
+
+ for (i = 0; i < (unsigned long)params.order; i++)
+ {
+ bit = crc & crchighbit;
+ crc <<= 1;
+ if (bit)
+ {
+ crc ^= params.polynom;
+ }
+ }
+
+ if (params.refout)
+ {
+ crc = reflect(crc, params.order);
+ }
+ crc ^= params.final;
+ crc &= crcmask;
+
+ return crc;
+ }
+
+ /**
+ * Calculate an Exclusive-OR Checksum on the string /a str.
+ * @return the calculated checksum.
+ * @throws gpstk::InvalidParameter if there is a partial word at
+ * the end of /a str.
+ */
+ template<class X>
+ X xorChecksum(const std::string& str)
+ throw(gpstk::InvalidParameter)
+ {
+ short wordSize = sizeof(X);
+ short strSize = str.size();
+
+ if(strSize % wordSize != 0)
+ {
+ gpstk::Exception ip("Incomplete word in string.");
+ GPSTK_THROW(ip);
+ }
+
+ X temp, xc = 0;
+
+ for(short i = 0; (i + wordSize - 1) < strSize; i += wordSize)
+ {
+ memcpy(&temp, &str[i], wordSize);
+ xc ^= temp;
+ }
+
+ return xc;
+ }
+ //@}
+
+ /**
+ * Count the set bits in an 32-bit unsigned integer.
+ * Originated due to need in EngNav::checkParity
+ */
+ static unsigned short countBits(uint32_t v)
+ {
+ // Stolen from http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
+ uint32_t c; // store the total here
+ const int S[] = {1, 2, 4, 8, 16}; // Magic Binary Numbers
+ const uint32_t B[] = {0x55555555, 0x33333333, 0x0F0F0F0F, 0x00FF00FF,
+ 0x0000FFFF};
+
+ // ...and if we were to turn this into a loop, it would
+ // totally defeat the purpose. The point here is to be
+ // FAST.
+ c = v;
+ c = ((c >> S[0]) & B[0]) + (c & B[0]);
+ c = ((c >> S[1]) & B[1]) + (c & B[1]);
+ c = ((c >> S[2]) & B[2]) + (c & B[2]);
+ c = ((c >> S[3]) & B[3]) + (c & B[3]);
+ c = ((c >> S[4]) & B[4]) + (c & B[4]);
+
+ return c;
+ }
+
+ } // end namespace BinUtils
+} // end namespace gpstk
+
+#endif
diff --git a/dev/src/BinexData.cpp b/dev/src/BinexData.cpp
new file mode 100644
index 0000000..df06561
--- /dev/null
+++ b/dev/src/BinexData.cpp
@@ -0,0 +1,1689 @@
+#pragma ident "$Id: //depot/msn/main/code/shared/gpstk/BinexData.cpp#1 $"
+
+
+/**
+ * @file BinexData.cpp
+ * Encapsulate BINEX file data, including I/O
+ */
+
+#include "DayTime.hpp"
+#include "BinexData.hpp"
+#include "BinexStream.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ // =========================================================================
+ // BinexData::UBNXI Methods
+ // =========================================================================
+
+ // -------------------------------------------------------------------------
+ BinexData::UBNXI::UBNXI()
+ {
+ value = 0;
+ size = 1;
+ }
+
+ // -------------------------------------------------------------------------
+ BinexData::UBNXI::UBNXI(unsigned long ul)
+ throw(FFStreamError)
+ {
+ if (ul < 128)
+ {
+ size = 1;
+ }
+ else if (ul < 16384)
+ {
+ size = 2;
+ }
+ else if (ul < 2097152)
+ {
+ size = 3;
+ }
+ else if (ul < 536870912)
+ {
+ size = 4;
+ }
+ else
+ {
+ value = 0;
+ size = 0;
+
+ std::ostringstream errStrm;
+ errStrm << "BINEX UBNXI overflow: " << ul;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+
+ value = ul;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::UBNXI::decode(
+ const std::string& inBuffer,
+ size_t offset,
+ bool littleEndian)
+ throw(FFStreamError)
+ {
+ if (offset > inBuffer.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX UBNXI input buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ bool more = true;
+ for (size = 0, value = 0L; (size < MAX_BYTES) && more; size++)
+ {
+ unsigned char mask = (size < 3) ? 0x7f : 0xff;
+ if (littleEndian)
+ {
+ value |= ( (unsigned long)inBuffer[offset + size] & mask) << (7 * size);
+ }
+ else
+ {
+ value <<= (size < 3) ? 7 : 8;
+ value |= ( (unsigned long)inBuffer[offset + size] & mask);
+ }
+ if ( (inBuffer[offset + size] & 0x80) != 0x80)
+ {
+ more = false;
+ }
+ }
+ return size;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::UBNXI::encode(
+ std::string& outBuffer,
+ size_t offset,
+ bool littleEndian) const
+ {
+ unsigned char uc;
+ unsigned short us, us1;
+ unsigned long ul, ul1, ul2, ul3;
+
+ if (offset > outBuffer.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX UBNXI output buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ switch (size)
+ {
+ case 1:
+ uc = (unsigned char)value;
+ outBuffer.replace(offset, size, reinterpret_cast<char*>(&uc), size);
+ break;
+
+ case 2:
+ us = (unsigned short)value;
+ us1 = 0x7f00 & (us << 1);
+ us &= 0x007f;
+ us |= us1;
+
+ if (littleEndian != nativeLittleEndian)
+ {
+ // Allow encoding to non-native byte ordering
+ reverseBuffer((unsigned char*)&us, 2);
+ }
+ us |= nativeLittleEndian ? 0x0080 : 0x8000;
+
+ outBuffer.replace(offset, size, reinterpret_cast<char*>(&us), size);
+ break;
+
+ case 3:
+ ul = (unsigned long)value;
+ ul2 = 0x007f0000 & (ul << 2);
+ ul1 = 0x00007f00 & (ul << 1);
+ ul &= 0x0000007f;
+ ul |= ul1 | ul2;
+
+ if (littleEndian != nativeLittleEndian)
+ {
+ // Allow encoding to non-native byte ordering
+ reverseBuffer((unsigned char*)&ul, 4);
+ ul >>= 8;
+ }
+ if (nativeLittleEndian)
+ {
+ ul |= 0x00008080;
+ }
+ else
+ {
+ ul |= 0x00808000;
+ ul <<= 8;
+ }
+
+ outBuffer.replace(offset, size, reinterpret_cast<char*>(&ul), size);
+ break;
+
+ case 4:
+ if (littleEndian)
+ {
+ ul = (unsigned long)value;
+ ul3 = 0xff000000 & (ul << 3);
+ ul2 = 0x007f0000 & (ul << 2);
+ ul1 = 0x00007f00 & (ul << 1);
+ ul &= 0x0000007f;
+ ul |= ul1 | ul2 | ul3;
+
+ if (!nativeLittleEndian)
+ {
+ // Allow encoding to non-native byte ordering
+ reverseBuffer((unsigned char*)&ul, 4);
+ }
+ }
+ else
+ {
+ ul = (unsigned long)value;
+ ul2 = 0x7f000000 & (ul << 2);
+ ul1 = 0x007f0000 & (ul << 1);
+ ul &= 0x00007fff;
+ ul |= ul1 | ul2;
+
+ if (nativeLittleEndian)
+ {
+ // Allow encoding to non-native byte ordering
+ reverseBuffer((unsigned char*)&ul, 4);
+ }
+ }
+ ul |= nativeLittleEndian ? 0x00808080 : 0x80808000;
+
+ outBuffer.replace(offset, size, reinterpret_cast<char*>(&ul), size);
+ break;
+
+ default:
+ std::ostringstream errStrm;
+ errStrm << "BINEX UBNXI invalid size: " << size;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ break;
+ }
+ return size;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::UBNXI::read(
+ istream& strm,
+ std::string *outBuffer,
+ size_t offset,
+ bool reverseBytes,
+ bool littleEndian)
+ throw(FFStreamError)
+ {
+ unsigned char mask = 0;
+ char buffer [MAX_BYTES];
+
+ if (reverseBytes)
+ {
+ /// @TODO
+ }
+ else
+ {
+ bool more = true;
+ for (size = 0, value = 0L; (size < MAX_BYTES) && more; size++)
+ {
+ mask = (size < 3) ? 0x7f : 0xff;
+
+ strm.read(&buffer[size], 1);
+ if (!strm.good() )
+ {
+ FFStreamError err("Error reading BINEX UBNXI");
+ GPSTK_THROW(err);
+ }
+ if (littleEndian)
+ {
+ value |= ( (unsigned long)buffer[size] & mask) << (size * 7);
+ }
+ else
+ {
+ value <<= (size < 3) ? 7 : 8;
+ value |= (unsigned long)buffer[size] & mask;
+ }
+ if ( (buffer[size] & 0x80) != 0x80)
+ {
+ more = false; // End of UBNXI detected - exit loop
+ }
+ }
+ if (outBuffer)
+ {
+ // Store the as-read bytes
+ if (offset <= outBuffer->size() )
+ {
+ outBuffer->replace(offset, size, buffer, size);
+ }
+ else
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX UBNXI output buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ }
+ }
+ return size;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::UBNXI::write(
+ ostream& strm,
+ std::string *outBuffer,
+ size_t offset,
+ bool reverseBytes,
+ bool littleEndian) const
+ throw(FFStreamError)
+ {
+ std::string buffer;
+ encode(buffer, 0, littleEndian);
+ if (outBuffer)
+ {
+ if (offset <= outBuffer->size() )
+ {
+ // Store the as written bytes
+ outBuffer->replace(offset, size, buffer);
+ }
+ else
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX UBNXI output buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ }
+ if (reverseBytes)
+ {
+ reverseBuffer(buffer);
+ }
+ strm.write(buffer.data(), size);
+ if (!strm.good() )
+ {
+ FFStreamError err("Error writing BINEX UBNXI");
+ GPSTK_THROW(err);
+ }
+ return size;
+ }
+
+ // =========================================================================
+ // BinexData::MGFZI Methods
+ // =========================================================================
+
+ // -------------------------------------------------------------------------
+ BinexData::MGFZI::MGFZI()
+ {
+ value = 0;
+ size = 1;
+ }
+
+
+ // -------------------------------------------------------------------------
+ BinexData::MGFZI::MGFZI(long long ll)
+ throw(FFStreamError)
+ {
+
+ value = ll;
+ long long absValue = value;
+ if (absValue < 0)
+ {
+ absValue = absValue*(-1);
+ }
+
+
+ if (absValue < 16LL)
+ {
+ size = 1;
+ }
+ else if (absValue < 4110LL)
+ {
+ size = 2;
+ }
+ else if (absValue < 1052685LL)
+ {
+ size = 3;
+ }
+ else if (absValue < 269488140LL)
+ {
+ size = 4;
+ }
+ else if (absValue < 68988964875LL)
+ {
+ size = 5;
+ }
+ else if (absValue < 17661175009290LL)
+ {
+ size = 6;
+ }
+ else if (absValue < 4521260802379785LL)
+ {
+ size = 7;
+ }
+ else if (absValue <= BinexData::MGFZI::MAX_VALUE)
+ {
+ size = 8;
+ }
+ else
+ {
+ value = 0LL;
+ size = 0;
+
+ std::ostringstream errStrm;
+ errStrm << "BINEX MGFZI overflow: " << ll;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::MGFZI::decode(
+ const std::string& inBuffer,
+ size_t offset,
+ bool littleEndian)
+ throw(FFStreamError)
+ {
+ long long absValue = 0;
+ unsigned char flags;
+ unsigned long long ull;
+ short sign;
+
+ if (offset > inBuffer.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX MGFZI input buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+
+ if (inBuffer.size() == 0)
+ {
+ // Nothing to decode
+ size = 0;
+ value = 0;
+ return 0;
+ }
+ // Isolate sign and byte-length flags
+ flags = littleEndian
+ ? inBuffer[offset] & 0x0f
+ : (inBuffer[offset] >> 4) & 0x0f;
+
+ // Determine whether the final value is positive or negative.
+ sign = (flags & 0x08) ? -1 : 1;
+
+ // Handle varying byte lengths
+ size = (flags & 0x07) + 1;
+ if (size > inBuffer.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "BINEX MGFZI is too large for the supplied decode buffer: "
+ << "MGFZI size = " << size << " , buffer size = " << inBuffer.size();
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+
+ switch (size)
+ {
+ case 0x01:
+ // Use 1 byte:
+ //
+ ull = parseBuffer(inBuffer, offset, 1);
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x0000000fULL;
+ if (sign == -1 && absValue == 0)
+ {
+ // "-0" reserved for "no data" indicator
+ size = 0;
+ // TODO - throw
+ }
+ else
+ {
+ value = sign * absValue;
+ }
+ break;
+
+ case 0x02:
+ // Use 2 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 2);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ ull >>= 48;
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x0000000000000fffULL;
+ value = sign * (14ULL + absValue);
+ break;
+
+ case 0x03:
+ // Use 3 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 3);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ ull >>= 40;
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x00000000000fffffULL;
+ value = sign * (4109ULL + absValue);
+ break;
+
+ case 0x04:
+ // Use 4 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 4);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ ull >>= 32;
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x000000000fffffffULL;
+ value = sign * (1052684ULL + absValue);
+ break;
+
+ case 0x05:
+ // Use 5 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 5);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ ull >>= 24;
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x0000000fffffffffULL;
+ value = sign * (269488139ULL + absValue);
+ break;
+
+ case 0x06:
+ // Use 6 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 6);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ ull >>= 16;
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x00000fffffffffffULL;
+ value = sign * (68988964874ULL + absValue);
+ break;
+
+ case 0x07:
+ // Use 7 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 7);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ ull >>= 8;
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x000fffffffffffffULL;
+ value = sign * (17661175009289ULL + absValue);
+ break;
+
+ case 0x08:
+ // Use 8 bytes:
+ //
+ ull = parseBuffer(inBuffer, offset, 8);
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ }
+ absValue = littleEndian
+ ? ull >> 4
+ : ull & 0x0fffffffffffffffULL;
+ value = sign * (4521260802379784ULL + absValue);
+ break;
+
+ default:
+ // Internal error
+ std::ostringstream errStrm;
+ errStrm << "BINEX MGFZI invalid size: " << size;
+ FFStreamError err(errStrm.str() );
+ size = 0;
+ GPSTK_THROW(err);
+ break;
+
+ } // switch (flag)
+ return size;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::MGFZI::encode(
+ std::string& outBuffer,
+ size_t offset,
+ bool littleEndian) const
+ {
+ char buffer[MAX_BYTES];
+ unsigned char uc;
+ unsigned short us;
+ unsigned long ul;
+ unsigned long long ull;
+
+ if (offset > outBuffer.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX MGFZI output buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+
+ long long absValue = value;
+ if (absValue < 0)
+ {
+ absValue = absValue*(-1);
+ }
+
+ unsigned char signBit = (value < 0) ? 0x01 : 0x00;
+
+ size_t result = size; // Default
+ switch (size)
+ {
+ case 1:
+ if (!littleEndian)
+ {
+ uc = (signBit << 7) | (0x0f & (unsigned char)absValue);
+ }
+ else
+ {
+ uc = (signBit << 3) | (0xf0 & ( (unsigned char)absValue << 4) );
+ }
+ if (uc == 0x08)
+ {
+ // A valid value has been rounded to "-0"; convert to "+0".
+ uc = 0x00;
+ }
+ buffer[0] = uc;
+ break;
+
+ case 2:
+ absValue -= 14LL;
+ if (littleEndian)
+ {
+ us = ( (unsigned short)signBit << 3) | 0xfff1
+ & (0x0001 | (unsigned short)absValue << 4);
+ }
+ else
+ {
+ us = ((unsigned short)signBit << 15) | 0x1fff
+ & (0x1000 | (unsigned short)absValue);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&us, 2);
+ }
+ memcpy((void*)buffer, (const void*)&us, 2);
+ break;
+
+ case 3:
+ absValue -= 4109LL;
+ if (littleEndian)
+ {
+ ul = ((unsigned long)signBit << 3) | 0x00fffff2
+ & (0x00000002 | (unsigned long)absValue << 4);
+ }
+ else
+ {
+ ul = ((unsigned long)signBit << 31) | 0x2fffff00
+ & (0x20000000 | (unsigned long)absValue << 8);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ul, 4);
+ }
+ memcpy((void*)buffer, (const void*)&ul, 3);
+ break;
+
+ case 4:
+ absValue -= 1052684LL;
+ if (littleEndian)
+ {
+ ul = ((unsigned long)signBit << 3) | 0xfffffff3
+ & (0x00000003 | (unsigned long)absValue << 4);
+ }
+ else
+ {
+ ul = ((unsigned long)signBit << 31) | 0x3fffffff
+ & (0x30000000 | (unsigned long)absValue);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ul, 4);
+ }
+ memcpy((void*)buffer, (const void*)&ul, 4);
+ break;
+
+ case 5:
+ absValue -= 269488139LL;
+ if (littleEndian)
+ {
+ ull = ((unsigned long long)signBit << 3) | 0x000000fffffffff4ULL
+ & (0x0000000000000004ULL | (unsigned long long)absValue << 4);
+ }
+ else
+ {
+ ull = ((unsigned long long)signBit << 63) | 0x4fffffffff000000ULL
+ & (0x4000000000000000ULL | (unsigned long long)absValue << 24);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ }
+ memcpy((void*)buffer, (const void*)&ull, 5);
+ break;
+
+ case 6:
+ absValue -= 68988964874LL;
+ if (littleEndian)
+ {
+ ull = ((unsigned long long)signBit << 3) | 0x0000fffffffffff5ULL
+ & (0x0000000000000005ULL| (unsigned long long)absValue << 4);
+ }
+ else
+ {
+ ull = ((unsigned long long)signBit << 63) | 0x5fffffffffff0000ULL
+ & (0x5000000000000000ULL | (unsigned long long)absValue << 16);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ }
+ memcpy((void*)buffer, (const void*)&ull, 6);
+ break;
+
+ case 7:
+ absValue -= 17661175009289LL;
+ if (littleEndian)
+ {
+ ull = ((unsigned long long)signBit << 3) | 0x00fffffffffffff6ULL
+ & (0x0000000000000006ULL | (unsigned long long)absValue << 4);
+ }
+ else
+ {
+ ull = ((unsigned long long)signBit << 63) | 0x6fffffffffffff00ULL
+ & (0x6000000000000000ULL | (unsigned long long)absValue << 8);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ }
+ memcpy((void*)buffer, (const void*)&ull, 7);
+ break;
+
+ case 8:
+ absValue -= 4521260802379784LL;
+ if (littleEndian)
+ {
+ ull = ((unsigned long long)signBit << 3) | 0xfffffffffffffff7ULL
+ & (0x0000000000000007ULL | (unsigned long long)absValue << 4);
+ }
+ else
+ {
+ ull = ((unsigned long long)signBit << 63) | 0x7fffffffffffffffULL
+ & (0x7000000000000000ULL | (unsigned long long)absValue);
+ }
+ if (littleEndian != nativeLittleEndian)
+ {
+ reverseBuffer( (unsigned char*)&ull, 8);
+ }
+ memcpy((void*)buffer, (const void*)&ull, 8);
+ break;
+
+ default:
+ // If the byte count is 0, store "no value"
+ result = 1;
+ buffer[0] = 0x80;
+
+ } // switch
+ outBuffer.replace(offset, size, buffer, size);
+ return result;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::MGFZI::read(
+ istream& strm,
+ std::string *outBuffer,
+ size_t offset,
+ bool reverseBytes,
+ bool littleEndian)
+ throw(FFStreamError)
+ {
+ unsigned char buffer [MAX_BYTES];
+ unsigned char flags;
+ short sign;
+
+ // Read the flags byte
+ strm.read((char*)&buffer[0], 1);
+
+ // Isolate sign and byte-length flags
+ flags = reverseBytes
+ ? buffer[0] & 0x0f
+ : (buffer[0] >> 4) & 0x0f;
+
+ // Determine whether the final value is positive or negative
+ // and determine the number of bytes comprising the MGFZI.
+ sign = (flags & 0x08) ? -1 : 1;
+ size = (flags & 0x07) + 1;
+
+ if (size > 1)
+ {
+ strm.read((char*)&buffer[1], size - 1);
+ if (!strm.good() || strm.gcount() != size - 1)
+ {
+ FFStreamError err("Error reading BINEX MGFZI");
+ GPSTK_THROW(err);
+ }
+ }
+ if (reverseBytes)
+ {
+ reverseBuffer(buffer, size);
+ }
+ if (outBuffer)
+ {
+ // Store the as-read bytes
+ if (offset <= outBuffer->size() )
+ {
+ outBuffer->replace(offset, size, (char*)&buffer[0], size);
+ }
+ else
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX MGFZI output buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ }
+
+ // Decode the entire buffer
+ std::string tmp((const char*)&buffer[0], size);
+ decode(tmp, size, littleEndian);
+
+ return size;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::MGFZI::write(
+ ostream& strm,
+ std::string *outBuffer,
+ size_t offset,
+ bool reverseBytes,
+ bool littleEndian) const
+ throw(FFStreamError)
+ {
+ std::string buffer;
+ encode(buffer, 0, littleEndian);
+ if (outBuffer)
+ {
+ // Store the as-written bytes
+ //memcpy(outBuffer, buffer, bufferSize);
+ if (offset <= outBuffer->size() )
+ {
+ outBuffer->replace(offset, size, buffer);
+ }
+ else
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid offset into BINEX MGFZI output buffer: " << offset;
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ }
+ if (reverseBytes)
+ {
+ reverseBuffer(buffer);
+ }
+ strm.write(buffer.data(), size);
+ if (!strm.good() )
+ {
+ FFStreamError err("Error writing BINEX MGFZI");
+ GPSTK_THROW(err);
+ }
+ return size;
+ }
+
+
+ // =========================================================================
+ // BinexData Methods
+ // =========================================================================
+
+ // -------------------------------------------------------------------------
+ BinexData::BinexData()
+ {
+ setRecordFlags(); // Establish defaults
+ recID = INVALID_RECORD_ID;
+ }
+
+
+ // -------------------------------------------------------------------------
+ BinexData::BinexData(const BinexData& other)
+ {
+ *this = other;
+ }
+
+
+ // -------------------------------------------------------------------------
+ BinexData::BinexData(unsigned long recordID,
+ unsigned char recordFlags)
+ throw()
+ {
+ setRecordFlags(recordFlags);
+ setRecordID(recordID);
+ }
+
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::operator=(const BinexData& right)
+ {
+ recID = right.recID;
+ syncByte = right.syncByte;
+ msg = right.msg;
+ return *this;
+ }
+
+ // -------------------------------------------------------------------------
+ bool BinexData::operator==(const BinexData& b) const
+ {
+ return ( (recID == b.recID)
+ && (syncByte == b.syncByte)
+ && (msg.compare(b.msg) == 0) );
+ }
+
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::setRecordID(unsigned long id)
+ throw(FFStreamError)
+ {
+ if (id > UBNXI::MAX_VALUE)
+ {
+ FFStreamError err("BINEX record ID overflow");
+ GPSTK_THROW(err);
+ }
+
+ recID = id;
+ return *this;
+
+ } // BinexData::setRecordID()
+
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::setRecordFlags(unsigned char flags)
+ {
+ // Set all unsupported bits to 0.
+ syncByte = flags & VALID_RECORD_FLAGS;
+
+ // Set "regular CRC" bit (0x02) to the opposite of the enhanced CRC bit
+ // and set the two leading always-on bits (0xC0).
+ syncByte |= (flags & eEnhancedCRC) ? 0xC0 : 0xC2;
+
+ return *this;
+ }
+
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::getRecordSize() const
+ {
+ size_t recSize = 1; // Start with sync byte
+
+ UBNXI r(recID); // Add record ID
+ recSize += r.getSize();
+ UBNXI m(msg.size() ); // Add message length
+ recSize += m.getSize();
+ recSize += msg.size(); // Add message
+
+ size_t crcLen = getCRCLength(recSize - 1);
+
+ recSize += crcLen; // Add CRC length
+
+ if (syncByte & eReverseReadable)
+ {
+ UBNXI t(1 + r.getSize() + m.getSize() + msg.size() + crcLen);
+
+ recSize += t.getSize(); // Add total reverse length
+
+ recSize += 1; // Add sync byte
+ }
+
+ return recSize;
+ }
+
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::clearMessage()
+ {
+ msg.resize(0);
+ return *this;
+
+ } // BinexData::clearMessage()
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::ensureMessageCapacity(size_t cap)
+ throw(FFStreamError)
+ {
+ if (cap > UBNXI::MAX_VALUE)
+ {
+ std::ostringstream errStrm;
+ errStrm << "Requested message length exceeds allowable maximum: " << cap;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ msg.reserve(cap);
+ return *this;
+
+ } // BinexData::ensureMessageCapacity()
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::updateMessageData(
+ size_t& offset,
+ const UBNXI& data)
+ throw(FFStreamError, InvalidParameter)
+ {
+ bool littleEndian = ( (syncByte & eBigEndian) == 0) ? true : false;
+ ensureMessageCapacity(offset + data.getSize() );
+ offset += data.encode(msg, offset, littleEndian);
+ return *this;
+
+ } // BinexData::updateMessageData()
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::updateMessageData(
+ size_t& offset,
+ const MGFZI& data)
+ throw(FFStreamError, InvalidParameter)
+ {
+ bool littleEndian = ( (syncByte & eBigEndian) == 0) ? true : false;
+ ensureMessageCapacity(offset + data.getSize() );
+ offset += data.encode(msg, offset, littleEndian);
+ return *this;
+
+ } // BinexData::updateMessageData()
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::updateMessageData(
+ size_t& offset,
+ const std::string& data,
+ size_t size)
+ throw(FFStreamError, InvalidParameter)
+ {
+ ensureMessageCapacity(offset + size);
+ if (size > data.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid data size: " << size;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ msg.replace(offset, size, data, 0, size);
+ offset += size;
+ return *this;
+
+ } // BinexData::updateMessageData()
+
+ // -------------------------------------------------------------------------
+ BinexData&
+ BinexData::updateMessageData(
+ size_t& offset,
+ const char *data,
+ size_t size)
+ throw(FFStreamError, InvalidParameter)
+ {
+ ensureMessageCapacity(offset + size);
+ msg.replace(offset, size, data, size);
+ offset += size;
+ return *this;
+ }
+
+ // -------------------------------------------------------------------------
+ void
+ BinexData::extractMessageData(
+ size_t& offset,
+ UBNXI& data)
+ throw(FFStreamError, InvalidParameter)
+ {
+ if (offset > msg.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Message buffer offset invalid: " << offset;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ bool littleEndian = ( (syncByte & eBigEndian) == 0) ? true : false;
+ offset += data.decode(msg, offset, littleEndian);
+
+ } // BinexData::extractMessageData()
+
+ // -------------------------------------------------------------------------
+ void
+ BinexData::extractMessageData(
+ size_t& offset,
+ MGFZI& data)
+ throw(FFStreamError, InvalidParameter)
+ {
+ if (offset > msg.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Message buffer offset invalid: " << offset;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ bool littleEndian = ( (syncByte & eBigEndian) == 0) ? true : false;
+ offset += data.decode(msg, offset, littleEndian);
+
+ } // BinexData::extractMessageData()
+
+ // -------------------------------------------------------------------------
+ void
+ BinexData::extractMessageData(
+ size_t& offset,
+ std::string& data,
+ size_t size) const
+ throw(InvalidParameter)
+ {
+ if (offset + size > msg.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Message buffer offset invalid: " << offset;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ data.assign(msg, offset, size);
+ offset += size;
+
+ } // BinexData::extractMessageData()
+
+ // -------------------------------------------------------------------------
+ void
+ BinexData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ StringUtils::StringException)
+ {
+ //std::cout << "BinexData::reallyPutRecord: ENTER" << std::endl;
+
+ BinexStream* strm = dynamic_cast<BinexStream*>(&ffs);
+ if (NULL == strm)
+ {
+ FFStreamError e("Attempt to read a BinexData object"
+ " from a non-BinexStream FFStream.");
+ GPSTK_THROW(e);
+ }
+
+ try
+ {
+ unsigned char syncTail;
+ if (!isHeadSyncByteValid(syncByte, syncTail) )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid BINEX synchronization byte: "
+ << static_cast<uint16_t>(syncByte);
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+ // Buffer, etc. for non-msg data
+ std::string headBuf;
+ size_t bufLen = 0; // Total buffer data length
+ size_t crcLen = 0; // Length of calculated CRC
+
+ bool littleEndian = (syncByte&eBigEndian)==0 ? true : false;
+
+ headBuf.reserve(9); // 1+4+4
+
+ // Copy sync byte to header buffer
+ headBuf.append(1, syncByte);
+ bufLen += 1;
+
+ // Copy record ID to header buffer
+ UBNXI r(recID);
+ bufLen += r.encode(headBuf, bufLen, littleEndian);
+
+ // Copy message length to header buffer
+ UBNXI m(msg.size() );
+ bufLen += m.encode(headBuf, bufLen, littleEndian);
+
+ // Write header buffer and message to the output stream
+ strm->write(headBuf.data(), headBuf.size() );
+ strm->write(msg.data(), msg.size() );
+
+ // Calculate CRC and store it in the tail buffer
+ std::string tailBuf;
+ tailBuf.reserve(21); // 16+4+1
+ headBuf.erase(0, 1); // Exclude sync byte from CRC calculation
+ getCRC(headBuf, msg, tailBuf);
+ crcLen = tailBuf.size();
+
+ // Copy enhanced CRC record items into the tail buffer
+ if (syncByte & eReverseReadable)
+ {
+ UBNXI recLen(1 + r.getSize() + m.getSize() + msg.size() + crcLen);
+ recLen.encode(tailBuf, crcLen, littleEndian);
+ reverseBuffer(tailBuf, crcLen);
+ tailBuf.append(1, syncTail);
+ }
+
+ // Write the tail buffer to the output stream.
+ strm->write(tailBuf.data(), tailBuf.size() );
+ }
+ catch(std::exception& exc)
+ {
+ FFStreamError err(exc.what());
+ GPSTK_THROW(err);
+ }
+ catch(...)
+ {
+ FFStreamError err("Unknown exception");
+ GPSTK_THROW(err);
+ }
+
+ if (strm->fail() || strm->bad())
+ {
+ FFStreamError err("Error writing data");
+ GPSTK_THROW(err);
+ }
+
+ //std::cout << "BinexData::reallyPutRecord: EXIT" << std::endl;
+ }
+
+ // -------------------------------------------------------------------------
+ void BinexData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, StringUtils::StringException)
+ {
+ //std::cout << "BinexData::reallyGetRecord: ENTER" << std::endl;
+
+ BinexStream* strm = dynamic_cast<BinexStream*>(&ffs);
+ if (NULL == strm)
+ {
+ FFStreamError e("Attempt to read a BinexData object"
+ " from a non-BinexStream FFStream.");
+ GPSTK_THROW(e);
+ }
+
+ size_t offset = 0;
+
+ std::string crcBuf;
+ size_t crcBufLen = 0;
+
+ unsigned char expectedSyncByte;
+ std::string expectedCrc;
+ unsigned char crc [16];
+ size_t crcLen = 0;
+ unsigned char syncBuf;
+
+ try
+ {
+ strm->read((char*)&syncBuf, 1); // Read synchronization byte
+ }
+ catch (std::exception &e)
+ {
+ if ( (strm->gcount() == 0) && strm->eof() )
+ {
+ // Process as EOF
+ EndOfFile err("EOF encountered");
+ GPSTK_THROW(err);
+ }
+ else
+ {
+ // Rethrow if not EOF
+ FFStreamError err(e.what() );
+ GPSTK_THROW(err);
+ }
+ }
+
+ try
+ {
+ if (isHeadSyncByteValid(syncBuf, expectedSyncByte) )
+ {
+ syncByte = syncBuf;
+
+ // Process the BINEX record forward (not in reverse)
+ bool littleEndian = (syncByte & eBigEndian) == 0 ? true : false;
+
+ UBNXI uRecID;
+ crcBufLen += uRecID.read(*strm, &crcBuf, crcBufLen, false, littleEndian);
+ setRecordID((unsigned long)uRecID);
+
+ UBNXI uMsgLen;
+ crcBufLen += uMsgLen.read(*strm, &crcBuf, crcBufLen, false, littleEndian);
+
+ unsigned long msgLen = (unsigned long)uMsgLen;
+
+ // Read directly into the memory buffer of a vector. This is OK
+ // because, unlike a string, a vector is stored contiguously.
+ // The vector's memory will be reclaimed in all exit conditions
+ // since the vector is allocated on the stack.
+ std::vector<char> msgBuf(msgLen);
+ strm->read((char*)&msgBuf[0], msgLen);
+ if (!strm->good() || (strm->gcount() != msgLen) )
+ {
+ FFStreamError err("Incomplete BINEX record message");
+ GPSTK_THROW(err);
+ }
+ msg.assign((char*)&msgBuf[0], msgLen);
+
+ // Check CRC - first calculate expected, then read actual,
+ // then compare.
+ getCRC(crcBuf, msg, expectedCrc);
+ crcLen = expectedCrc.size();
+
+ strm->read( (char*)crc, crcLen);
+ if (!strm->good() || (strm->gcount() != crcLen) )
+ {
+ FFStreamError err("Error reading BINEX CRC");
+ GPSTK_THROW(err);
+ }
+ if (memcmp(crc, expectedCrc.data(), crcLen) )
+ {
+ FFStreamError err("Bad BINEX CRC");
+ GPSTK_THROW(err);
+ }
+ }
+ else if (isTailSyncByteValid(syncBuf, expectedSyncByte) )
+ {
+ // Process the BINEX record in reverse
+ bool littleEndian = (expectedSyncByte & eBigEndian) == 0 ? true : false;
+
+ UBNXI r, m, b;
+ b.read(*strm, NULL, 0, false, littleEndian);
+ unsigned long revRecSize = (unsigned long)b;
+
+ // Read the entire remainder of the record into memory
+ std::vector<char> revRecVec(revRecSize);
+ strm->read( (char*)&revRecVec[0], revRecSize);
+ if (!strm->good() || (strm->gcount() != revRecSize) )
+ {
+ FFStreamError err("Incomplete BINEX record message");
+ GPSTK_THROW(err);
+ }
+ std::string revRecBuf( (char*)&revRecVec[0], revRecSize);
+ reverseBuffer(revRecBuf, revRecSize);
+
+ if (revRecBuf[0] != expectedSyncByte)
+ {
+ FFStreamError err("BINEX head/tail synchronization byte mismatch");
+ GPSTK_THROW(err);
+ }
+ syncByte = expectedSyncByte;
+ offset += 1;
+
+ offset += r.decode(revRecBuf, offset, littleEndian);
+ setRecordID((unsigned long)r);
+ // @TODO - Check against revRecSize
+ offset += m.decode(revRecBuf, offset, littleEndian);
+ // @TODO - Check against revRecSize
+
+ msg.assign(revRecBuf, offset, (unsigned long)m);
+ offset += msg.size();
+
+ // Check CRC - first calculate expected, then compare to actual.
+ getCRC(revRecBuf.substr(1, r.getSize() + m.getSize() ), msg, expectedCrc);
+ crcLen = expectedCrc.size();
+
+ if ( (offset + crcLen != revRecSize)
+ || expectedCrc.compare(revRecBuf.substr(offset, crcLen) ) )
+ {
+ FFStreamError err("Bad BINEX CRC");
+ GPSTK_THROW(err);
+ }
+ }
+ else
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid BINEX synchronization byte: "
+ << static_cast<uint16_t>(syncBuf);
+ FFStreamError err(errStrm.str() );
+ GPSTK_THROW(err);
+ }
+
+ }
+ catch(FFStreamError& exc)
+ {
+ GPSTK_RETHROW(exc);
+ }
+ catch(std::exception& exc)
+ {
+ FFStreamError err(exc.what() );
+ GPSTK_THROW(err);
+ }
+ catch(...)
+ {
+ FFStreamError err("Unknown exception");
+ GPSTK_THROW(err);
+ }
+
+ //std::cout << "BinexData::reallyGetRecord: EXIT" << std::endl;
+ }
+
+ void
+ BinexData::getCRC(const std::string& head,
+ const std::string& message,
+ std::string& crc) const
+ {
+ size_t crcDataLen = head.size() + message.size();
+ size_t crcLen = 0;
+ unsigned long crcTmp = 0;
+
+ if (crcDataLen >= 1048576)
+ {
+ // @TODO - Use 16-byte CRC (128-bit MD5 checksum)
+ crcLen = 16;
+ }
+ else // (crcLen < 1048576)
+ {
+ if (syncByte & eEnhancedCRC)
+ {
+ if (crcDataLen < 128)
+ {
+ // Use 2-byte CRC (CRC16)
+ BinUtils::CRCParam params(BinUtils::CRC16);
+ crcTmp = BinUtils::computeCRC((const unsigned char*)head.data(),
+ head.size(),
+ params);
+ params.initial = crcTmp;
+ crcTmp = BinUtils::computeCRC((const unsigned char*)message.data(),
+ message.size(),
+ params);
+ crcLen = 2;
+ }
+ else
+ {
+ // Use 4-byte CRC (CRC32)
+ BinUtils::CRCParam params(BinUtils::CRC32);
+ crcTmp = BinUtils::computeCRC((const unsigned char*)head.data(),
+ head.size(),
+ params);
+ params.initial = crcTmp;
+ crcTmp = BinUtils::computeCRC((const unsigned char*)message.data(),
+ message.size(),
+ params);
+ crcLen = 4;
+ }
+ }
+ else // Regular CRC
+ {
+ if (crcDataLen < 128)
+ {
+ // Use 1-byte checksum: 8-bit XOR of all bytes
+ size_t b;
+ const char *ptr;
+ ptr = head.data();
+ for (b = head.size(); b > 0 ; b--, ptr++)
+ {
+ crcTmp ^= *ptr;
+ }
+ ptr = message.data();
+ for (b = message.size(); b > 0 ; b--, ptr++)
+ {
+ crcTmp ^= *ptr;
+ }
+ crcLen = 1;
+ }
+ else if (crcDataLen < 4096)
+ {
+ // Use 2-byte CRC (CRC16)
+ BinUtils::CRCParam params(BinUtils::CRC16);
+ crcTmp = BinUtils::computeCRC((const unsigned char*)head.data(),
+ head.size(),
+ params);
+ params.initial = crcTmp;
+ crcTmp = BinUtils::computeCRC((const unsigned char*)message.data(),
+ message.size(),
+ params);
+ crcLen = 2;
+ }
+ else
+ {
+ // Use 4-byte CRC (CRC32)
+ BinUtils::CRCParam params(BinUtils::CRC32);
+ crcTmp = BinUtils::computeCRC((const unsigned char*)head.data(),
+ head.size(),
+ params);
+ params.initial = crcTmp;
+ crcTmp = BinUtils::computeCRC((const unsigned char*)message.data(),
+ message.size(),
+ params);
+ crcLen = 4;
+ }
+ } // Regular CRC
+
+ // Copy the CRC into the output
+ if (!nativeLittleEndian)
+ {
+ BinUtils::twiddle(crcTmp);
+ }
+ crc.assign( (const char*)&crcTmp, crcLen);
+
+ } // (crcLen < 1048576)
+
+ } // BinexData::getCRC()
+
+ // -------------------------------------------------------------------------
+ size_t
+ BinexData::getCRCLength(size_t crcDataLen) const
+ {
+ size_t crcLen = 0;
+
+ if (crcDataLen >= 1048576)
+ {
+ crcLen = 16;
+ }
+ else // (crcLen < 1048576)
+ {
+ if (syncByte & eEnhancedCRC)
+ {
+ if (crcDataLen < 128)
+ {
+ crcLen = 2;
+ }
+ else
+ {
+ crcLen = 4;
+ }
+ }
+ else // Regular CRC
+ {
+ if (crcDataLen < 128)
+ {
+ crcLen = 1;
+ }
+ else if (crcDataLen < 4096)
+ {
+ crcLen = 2;
+ }
+ else
+ {
+ crcLen = 4;
+ }
+
+ } // Regular CRC
+
+ } // (crcLen < 1048576)
+
+ return crcLen;
+ }
+
+ // -------------------------------------------------------------------------
+ bool
+ BinexData::isHeadSyncByteValid(unsigned char headSync,
+ unsigned char& expectedTailSync) const
+ {
+ switch (headSync)
+ {
+ case 0xC2: // Fall through ...
+ case 0xE2: // Fall through ...
+ case 0xC8: // Fall through ...
+ case 0xE8:
+ expectedTailSync = 0x00; // No tail sync byte
+ break;
+
+ case 0xD2:
+ expectedTailSync = 0xB4;
+ break;
+
+ case 0xF2:
+ expectedTailSync = 0xB0;
+ break;
+
+ case 0xD8:
+ expectedTailSync = 0xE4;
+ break;
+
+ case 0xF8:
+ expectedTailSync = 0xE0;
+ break;
+
+ default:
+ return false; // Invalid head synchronization byte
+ }
+ return true;
+ }
+
+ // -------------------------------------------------------------------------
+ bool
+ BinexData::isTailSyncByteValid(unsigned char tailSync,
+ unsigned char& expectedHeadSync) const
+ {
+ switch (tailSync)
+ {
+ case 0xB4:
+ expectedHeadSync = 0xD2;
+ break;
+
+ case 0xB0:
+ expectedHeadSync = 0xF2;
+ break;
+
+ case 0xE4:
+ expectedHeadSync = 0xD8;
+ break;
+
+ case 0xE0:
+ expectedHeadSync = 0xF8;
+ break;
+
+ default:
+ return false; // Invalid tail synchronization byte
+ }
+ return true;
+ }
+
+ // -------------------------------------------------------------------------
+ unsigned long long
+ BinexData::parseBuffer(const std::string& buffer,
+ size_t offset,
+ size_t size)
+ throw(FFStreamError)
+ {
+ unsigned long long value = 0;
+ if (size > sizeof(value) )
+ {
+ FFStreamError err("Invalid data size parsing BINEX data buffer");
+ GPSTK_THROW(err);
+ }
+ if (offset + size > buffer.size() )
+ {
+ FFStreamError err("Invalid offset parsing BINEX data buffer");
+ GPSTK_THROW(err);
+ }
+ char* valp = (char*)&value;
+ for (size_t i = 0; i < size; i++, valp++)
+ {
+ *valp = buffer[offset + i];
+ }
+ if (!nativeLittleEndian)
+ {
+ value >>= ( (sizeof(value) - size) << 3);
+ }
+ return value;
+ }
+
+ // -------------------------------------------------------------------------
+ void
+ BinexData::reverseBuffer(unsigned char *buffer,
+ size_t bufferLength)
+ {
+ unsigned char tmp;
+ for (size_t i = 1; i <= (bufferLength >> 1); i++)
+ {
+ tmp = buffer[i - 1];
+ buffer[i - 1] = buffer[bufferLength - i];
+ buffer[bufferLength - i] = tmp;
+ }
+ }
+
+ // -------------------------------------------------------------------------
+ void
+ BinexData::reverseBuffer(std::string& buffer, size_t offset, size_t n)
+ {
+ if ( (offset < 0) || (offset > buffer.size() ) )
+ {
+ FFStreamError err("Invalid offset reversing BINEX data buffer");
+ GPSTK_THROW(err);
+ }
+ size_t back = (n == std::string::npos) ? buffer.size() : offset + n;
+ if ( (back < 0) || (back > buffer.size() ) )
+ {
+ FFStreamError err("Invalid size reversing BINEX data buffer");
+ GPSTK_THROW(err);
+ }
+ --back;
+ unsigned char tmp;
+ while (offset < back)
+ {
+ tmp = buffer[offset];
+ buffer[offset] = buffer[back];
+ buffer[back] = tmp;
+ ++offset;
+ --back;
+ }
+ }
+
+ // -------------------------------------------------------------------------
+ void BinexData::dump(ostream& s) const
+ {
+ std::cout << "RecordID: " << recID << std::endl;
+ std::cout << "SyncByte: " << (unsigned short)syncByte << std::endl;
+ std::cout << "MessageLen: " << msg.size() << std::endl;
+ std::cout << "MessageData: " << std::endl;
+ for (size_t i = 0; i < msg.size(); i++)
+ {
+ unsigned short s = msg[i];
+ std::cout << s << " ";
+ }
+ std::cout << std::endl;
+ }
+
+
+} // namespace gpstk
diff --git a/dev/src/BinexData.hpp b/dev/src/BinexData.hpp
new file mode 100644
index 0000000..04944c3
--- /dev/null
+++ b/dev/src/BinexData.hpp
@@ -0,0 +1,933 @@
+#pragma ident "$Id: //depot/msn/main/code/shared/gpstk/BinexData.hpp#1 $"
+
+/**
+ * @file BinexData.hpp
+ * Encapsulate BINEX file data, including I/O
+ */
+
+#ifndef GPSTK_BINEXDATA_HPP
+#define GPSTK_BINEXDATA_HPP
+
+#include "gpstkplatform.h"
+
+#include "BinUtils.hpp"
+#include "FFData.hpp"
+#include "FFStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Binex */
+
+ //@{
+
+ /**
+ * This class stores, reads, and writes BINEX records.
+ *
+ * @sa binex_read_write.cpp for an example.
+ * @sa binex_test.cpp for an example.
+ * @sa BinexStream.
+ */
+ class BinexData : public FFData
+ {
+ public:
+
+ // Establish the endianness of the native platform
+ #if BYTE_ORDER == LITTLE_ENDIAN
+ static const bool nativeLittleEndian = true;
+ #else
+ static const bool nativeLittleEndian = false;
+ #endif
+
+ static const unsigned long INVALID_RECORD_ID = 0xFFFFFFFF;
+
+ static const unsigned char DEFAULT_RECORD_FLAGS = 0x20;
+ static const unsigned char VALID_RECORD_FLAGS = 0x38;
+
+ // Flags indicating whether a record is reversed, whether a record
+ // is big endian, and whether a record contains an enhanced CRC.
+ // Combining these flags (via bitwise-or) helps create the
+ // synchronization byte(s) for a BINEX record.
+ enum recordFlagsEnum
+ {
+ eReverseReadable = 0x10,
+ eBigEndian = 0x20,
+ eEnhancedCRC = 0x08
+ };
+
+ /// BINEX data types
+ //@{
+
+ /**
+ * An unsigned integer stored using 1, 2, 3, or 4 bytes to represent
+ * integers from 0 to 536870911; used to represent BINEX record IDs,
+ * subrecord IDs, field IDs, and so on.
+ */
+ class UBNXI
+ {
+ public:
+
+ static const unsigned long MIN_VALUE = 0;
+ static const unsigned long MAX_VALUE = 536870911;
+ static const unsigned char MAX_BYTES = 4;
+
+ /**
+ * Default constructor - sets value to 0.
+ */
+ UBNXI();
+
+ /**
+ * Copy constructor.
+ */
+ UBNXI(const UBNXI& other)
+ {
+ *this = other;
+ };
+
+ /**
+ * Constructor with unsigned long initialization value.
+ */
+ UBNXI(unsigned long ul)
+ throw(FFStreamError);
+
+ /**
+ * Copies another UBNXI.
+ */
+ inline UBNXI&
+ operator=(const UBNXI& right)
+ {
+ value = right.value;
+ size = right.size;
+ return *this;
+ };
+
+ /**
+ * Compares two UBNXI's for equality.
+ */
+ inline bool
+ operator==(const UBNXI& other) const
+ {
+ return (value == other.value);
+ };
+
+ /**
+ * Compares two UBNXI's for inequality.
+ */
+ inline bool
+ operator!=(const UBNXI& other) const
+ {
+ return (value != other.value);
+ };
+
+ /**
+ * Returns whether this UBNXI is less than the other.
+ */
+ inline bool
+ operator<(const UBNXI& other) const
+ {
+ return (value < other.value);
+ };
+
+ /**
+ * Returns whether this UBNXI is less than or equal to the other.
+ */
+ inline bool
+ operator<=(const UBNXI& other) const
+ {
+ return (value <= other.value);
+ };
+
+ /**
+ * Returns whether this UBNXI is greater than the other.
+ */
+ inline bool
+ operator>(const UBNXI& other) const
+ {
+ return (value > other.value);
+ };
+
+ /**
+ * Returns whether this UBNXI is greater than or equal to the other.
+ */
+ inline bool
+ operator>=(const UBNXI& other) const
+ {
+ return (value >= other.value);
+ };
+
+ /**
+ * Returns the value of the UBNXI as an unsigned long.
+ */
+ inline
+ operator unsigned long() const
+ {
+ return value;
+ };
+
+ /**
+ * Returns the number of bytes required to represent the UBNXI.
+ * A size of 0 indicates an invalid or uninitialized UBNXI.
+ */
+ inline size_t
+ getSize() const
+ {
+ return size;
+ };
+
+ /**
+ * Attempts to decode a valid UBNXI from the contents of inBuffer.
+ * The contents of inBuffer are assumed to be in normal order
+ * (i.e. not reversed) but may be either big or little endian.
+ * @param inBuffer Sequence of bytes to decode
+ * @param offset Offset into inBuffer at which to decode
+ * @param littleEndian Byte order of the encoded bytes
+ * @return Number of bytes decoded
+ */
+ size_t
+ decode(const std::string& inBuffer,
+ size_t offset = 0,
+ bool littleEndian = false)
+ throw(FFStreamError);
+
+ /**
+ * Converts the UBNXI to a series of bytes placed in outBuffer.
+ * The bytes are output in normal order (i.e. not reversed) but
+ * may encode in either big or little endian format.
+ * @param outBuffer Sequence of encoded bytes
+ * @param offset Offset into outBuffer at which to encode
+ * @param littleEndian Optional flag indicating byte order of
+ * the encoded bytes
+ * @return Number of bytes used to encode
+ */
+ size_t
+ encode(std::string& outBuffer,
+ size_t offset = 0,
+ bool littleEndian = false) const;
+
+ /**
+ * Attempts to read a valid UBNXI from the specified input stream.
+ * The stream can be in reverse order and can be
+ * big or little endian. If the method succeeds, the number
+ * of bytes used to contruct the UBNXI can be determined
+ * by calling the getSize() method.
+ * @param strm Stream from which to read
+ * @param outBuffer Optional buffer to receive copy of raw input
+ * @param offset Offset into outBuffer at which to copy input
+ * @param reverseBytes Optional flag indicating whether
+ * the input bytes are reversed
+ * @param littleEndian Optional flag indicating byte order of input
+ * @return Number of bytes removed from the input stream
+ */
+ size_t
+ read(std::istream& strm,
+ std::string *outBuffer = NULL,
+ size_t offset = 0,
+ bool reverseBytes = false,
+ bool littleEndian = false)
+ throw(FFStreamError);
+
+ /**
+ * Attempts to write the UBNXI to the specified output stream.
+ * The stream can be output in reverse order and can be
+ * big or little endian. The method fails if the entire
+ * UBNXI cannot be written to the stream.
+ * @param strm Stream in which to write
+ * @param outBuffer Optional buffer to receive copy of raw ouput
+ * @param offset Offset into outBuffer at which to copy output
+ * @param reverseBytes Optional flag indicating whether
+ * the ouput bytes should be reversed
+ * @param littleEndian Optional flag indicating byte order of output
+ * @return Number of bytes added to the output stream
+ */
+ size_t
+ write(std::ostream& strm,
+ std::string *outBuffer = NULL,
+ size_t offset = 0,
+ bool reverseBytes = false,
+ bool littleEndian = false) const
+ throw(FFStreamError);
+
+ protected:
+
+ unsigned long value;
+ size_t size;
+ };
+
+ /**
+ * A signed integer stored using 1, 2, 3, 4, 5, 6, 7, or 8 bytes to
+ * represent integers from about -1.15292e18 to +1.15292e18 using a
+ * modified version of a compression scheme developed by GFZ, plus
+ * using "special" numbers to flag certain conditions, such as using
+ * the 1-byte MFGZI to store "-0" to indicate "no value."
+ */
+ class MGFZI
+ {
+ public:
+
+ static const long long MIN_VALUE = -1157442765409226759LL;
+ static const long long MAX_VALUE = 1157442765409226759LL;
+ static const unsigned char MAX_BYTES = 8;
+
+ /**
+ * Default constructor - sets value to 0.
+ */
+ MGFZI();
+
+ /**
+ * Copy constructor.
+ */
+ MGFZI(const MGFZI& other)
+ {
+ *this = other;
+ };
+
+ /**
+ * Constructor with a long long initialization value.
+ */
+ MGFZI(long long ll)
+ throw(FFStreamError);
+
+ /**
+ * Copies another MGFZI.
+ */
+ inline MGFZI&
+ operator=(const MGFZI& right)
+ {
+ value = right.value;
+ size = right.size;
+ return *this;
+ };
+
+ /**
+ * Compares two MGFZI's for equality.
+ */
+ inline bool
+ operator==(const MGFZI& other) const
+ {
+ return (value == other.value);
+ };
+
+ /**
+ * Compares two MGFZI's for inequality.
+ */
+ inline bool
+ operator!=(const MGFZI& other) const
+ {
+ return (value != other.value);
+ };
+
+ /**
+ * Returns whether this MGFZI is less than the other.
+ */
+ inline bool
+ operator<(const MGFZI& other) const
+ {
+ return (value < other.value);
+ };
+
+ /**
+ * Returns whether this MGFZI is less than or equal to the other.
+ */
+ inline bool
+ operator<=(const MGFZI& other) const
+ {
+ return (value <= other.value);
+ };
+
+ /**
+ * Returns whether this MGFZI is greater than the other.
+ */
+ inline bool
+ operator>(const MGFZI& other) const
+ {
+ return (value > other.value);
+ };
+
+ /**
+ * Returns whether this MGFZI is greater than or equal to the other.
+ */
+ inline bool
+ operator>=(const MGFZI& other) const
+ {
+ return (value >= other.value);
+ };
+
+ /**
+ * Returns the value of the MGFZI as a long long.
+ */
+ inline
+ operator long long() const
+ {
+ return value;
+ };
+
+ /**
+ * Returns the number of bytes required to represent the MGFZI.
+ * A size of 0 indicates an invalid or uninitialized MGFZI.
+ */
+ inline size_t
+ getSize() const
+ {
+ return size;
+ };
+
+ /**
+ * Attempts to decode a valid MGFZI from the contents of inBuffer.
+ * The contents of inBuffer are assumed to be in normal order
+ * (i.e. not reversed) but may be either big or little endian.
+ * @param inBuffer Sequence of bytes to decode
+ * @param offset Offset into inBuffer at which to decode
+ * @param littleEndian Byte order of the encoded bytes
+ * @return Number of bytes decoded
+ */
+ size_t
+ decode(const std::string& inBuffer,
+ size_t offset = 0,
+ bool littleEndian = false)
+ throw(FFStreamError);
+
+ /**
+ * Converts the MGFZI to a series of bytes placed in outBuffer.
+ * The bytes are output in normal order (i.e. not reversed) but
+ * may encode in either big or little endian format.
+ * @param outBuffer Sequence of encoded bytes
+ * @param offset Offset into outBuffer at which to encode
+ * @param littleEndian Byte order of the encoded bytes
+ * @return Number of bytes used to encode
+ */
+ size_t
+ encode(std::string& outBuffer,
+ size_t offset = 0,
+ bool littleEndian = false) const;
+
+ /**
+ * Attempts to read a valid MGFZI from the specified input stream.
+ * The stream can be in reverse order and can be
+ * big or little endian. If the method succeeds, the number
+ * of bytes used to contruct the MGFZI can be determined
+ * by calling the getSize() method.
+ * @param strm Stream from which to read
+ * @param outBuffer Optional buffer to receive copy of raw input
+ * @param reverseBytes Optional flag indicating whether
+ * the input bytes are reversed
+ * @param littleEndian Optional flag indicating byte order of input
+ */
+ size_t
+ read(std::istream& strm,
+ std::string *outBuffer = NULL,
+ size_t offset = 0,
+ bool reverseBytes = false,
+ bool littleEndian = false)
+ throw(FFStreamError);
+
+ /**
+ * Attempts to write the MGFZI to the specified output stream.
+ * The stream can be output in reverse order and can be
+ * big or little endian. The method fails if the entire
+ * MGFZI cannot be written to the stream.
+ * @param strm Stream in which to write
+ * @param outBuffer Optional buffer to receive copy of raw ouput
+ * @param reverseBytes Optional flag indicating whether
+ * the ouput bytes should be reversed
+ * @param littleEndian Optional flag indicating byte order of output
+ */
+ size_t
+ write(std::ostream& strm,
+ std::string *outBuffer = NULL,
+ size_t offset = 0,
+ bool reverseBytes = false,
+ bool littleEndian = false) const
+ throw(FFStreamError);
+
+ protected:
+
+ long long value;
+ size_t size;
+ };
+
+ //@}
+
+
+ /**
+ * Default constructor
+ */
+ BinexData();
+
+ /**
+ * Copy constructor
+ */
+ BinexData(const BinexData& other);
+
+ /**
+ * Convenience constructor
+ */
+ BinexData(unsigned long recordID,
+ unsigned char recordFlags = DEFAULT_RECORD_FLAGS)
+ throw();
+
+ /**
+ * Copies another BinexData object.
+ */
+ BinexData&
+ operator=(const BinexData& right);
+
+ /**
+ * Destructor
+ */
+ virtual
+ ~BinexData() {};
+
+ /**
+ * BinexData is "data" so this function always returns true.
+ */
+ virtual bool
+ isData(void) const
+ {
+ return true;
+ }
+
+ /**
+ * A debug output function.
+ */
+ virtual void
+ dump(std::ostream& s) const;
+
+ /**
+ * Compares two BinexData objects.
+ *
+ * @param b BinexData object to compare to this object
+ */
+ bool
+ operator==(const BinexData& b) const;
+
+ /**
+ * Returns flags indicating endianness, reversability, and CRC-mode
+ * of the current record. The individual flags can be extracted from
+ * the returned value by AND-ing with values from recordFlagsEnum.
+ */
+ inline unsigned char
+ getRecordFlags() const
+ {
+ // Return only essential, valid flag bits listed in recordFlagMask
+ return syncByte & VALID_RECORD_FLAGS;
+ };
+
+ /**
+ * Sets the endianness, reversability, and CRC-mode of the record.
+ * The "flags" paramater should be set by OR-ing together values
+ * from recordFlagsEnum enumeration. Invalid bits in "flag" are
+ * silently ignored.
+ *
+ * WARNING: Since the record flags determine how data is stored in
+ * the record message buffer, altering the record flags
+ * after data has been placed in the message buffer
+ * could result in misinterpretation of that data.
+ * Doing so is therefore highly discouraged.
+ */
+ BinexData&
+ setRecordFlags(unsigned char flags = DEFAULT_RECORD_FLAGS);
+
+ /**
+ * Returns the ID of this BINEX record.
+ */
+ inline unsigned long
+ getRecordID() const
+ {
+ return recID;
+ };
+
+ /**
+ * Sets the ID of this BINEX record.
+ */
+ BinexData&
+ setRecordID(unsigned long id)
+ throw(FFStreamError);
+
+ /**
+ * Returns the number of bytes required to represent the entire record
+ * (based on the record's current contents).
+ */
+ size_t
+ getRecordSize() const;
+
+ /**
+ * Remove all data from the record message buffer.
+ */
+ BinexData&
+ clearMessage();
+
+ /**
+ * Reserves a number of bytes for storage of the record message.
+ * This number can grow as data is added to the message, but an
+ * adequate initial number results in greater efficiency. The
+ * actual length of the data in the message buffer is a separate
+ * and strictly smaller amount.
+ */
+ BinexData&
+ ensureMessageCapacity(size_t cap)
+ throw(FFStreamError);
+
+ /**
+ * Returns the length of the data in the record message buffer
+ * (which is separate from the record message buffer's capacity).
+ *
+ * @return Record message data length in bytes
+ */
+ inline size_t
+ getMessageLength() const
+ {
+ return msg.size();
+ };
+
+ /**
+ * Returns the capacity of the record message buffer (which is
+ * separate from the lenth of the data in the buffer).
+ *
+ * @return Record message capacity in bytes
+ */
+ inline size_t
+ getMessageCapacity() const
+ {
+ return msg.capacity();
+ };
+
+ /**
+ * Returns a pointer to the raw message data. Note that the format
+ * of the data is dependent upon the record flags at the time the
+ * data was added to the message.
+ */
+ //inline const char*
+ inline const std::string&
+ getMessageData() const
+ {
+ //return msg.data();
+ return msg;
+ };
+
+ /**
+ * Updates the message buffer with the specified UBNXI. The location
+ * within the message buffer is set by the offset parameter.
+ * This method checks to ensure that all data fits within
+ * the message buffer. After updating the message buffer, the
+ * value of the offset parameter is updated by size to reference
+ * the next available byte in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to update
+ * @param data Data with which to update the message buffer
+ */
+ BinexData&
+ updateMessageData(
+ size_t& offset,
+ const UBNXI& data)
+ throw(FFStreamError, InvalidParameter);
+
+ /**
+ * Updates the message buffer with the specified MGFZI. The location
+ * within the message buffer is set by the offset parameter.
+ * This method checks to ensure that all data fits within
+ * the message buffer. After updating the message buffer, the
+ * value of the offset parameter is updated by size to reference
+ * the next available byte in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to update
+ * @param data Data with which to update the message buffer
+ */
+ BinexData&
+ updateMessageData(
+ size_t& offset,
+ const MGFZI& data)
+ throw(FFStreamError, InvalidParameter);
+
+ /**
+ * Updates the message buffer with the specified raw data. The
+ * location within the message buffer is set by the offset parameter,
+ * and the size of the data to copy is set by the size parameter.
+ * After updating the message buffer, the value of the offset
+ * parameter is updated by size to reference the next available byte
+ * in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to update
+ * @param data Raw data with which to update the message buffer
+ * @param size Number of bytes of data to be copied
+ */
+ BinexData&
+ updateMessageData(
+ size_t& offset,
+ const std::string& data,
+ size_t size)
+ throw(FFStreamError, InvalidParameter);
+
+ /**
+ * Updates the message buffer with the specified raw data. The
+ * location within the message buffer is set by the offset parameter,
+ * and the size of the data to copy is set by the size parameter.
+ * After updating the message buffer, the value of the offset
+ * parameter is updated by size to reference the next available byte
+ * in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to update
+ * @param data Raw data with which to update the message buffer
+ * @param size Number of bytes of data to be copied
+ */
+ BinexData&
+ updateMessageData(
+ size_t& offset,
+ const char *data,
+ size_t size)
+ throw(FFStreamError, InvalidParameter);
+
+ /**
+ * Updates the message buffer with the specified data. The location
+ * within the message buffer is set by the offset parameter,
+ * and the size of the data to copy is set by the size parameter.
+ * This method checks to ensure that the value of the size parameter
+ * does not exceed sizeof(T) and that all data fits within
+ * the message buffer. After updating the message buffer, the
+ * value of the offset parameter is updated by size to reference
+ * the next available byte in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to update
+ * @param data Data with which to update the message buffer
+ * @param size Number of bytes of data to be copied
+ */
+ template<class T>
+ BinexData&
+ updateMessageData(
+ size_t& offset,
+ const T& data,
+ size_t size)
+ throw(FFStreamError, InvalidParameter)
+ {
+ if (size > sizeof(T) )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Invalid data size: " << size;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ bool littleEndian = ( (syncByte & eBigEndian) == 0) ? true : false;
+ if (littleEndian == nativeLittleEndian)
+ {
+ msg.replace(offset, size, reinterpret_cast<const char*>(&data), size);
+ }
+ else
+ {
+ T tmpData(data);
+ BinUtils::twiddle(tmpData);
+ msg.replace(offset, size, reinterpret_cast<const char*>(&tmpData), size);
+ }
+ offset += size;
+ return *this;
+
+ } // BinexData::updateMessageData()
+
+ /**
+ * Extacts a UBNXI from the message buffer. The location within the
+ * message buffer is set by the offset parameter. After extracting
+ * the UBNXI from the message buffer, the value of the offset parameter
+ * is updated by the UBNXI's size to reference the next available byte
+ * in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to extract
+ * @param data Location to store the extracted data
+ */
+ void
+ extractMessageData(
+ size_t& offset,
+ UBNXI& data)
+ throw(FFStreamError, InvalidParameter);
+
+ /**
+ * Extacts a MGFZI from the message buffer. The location within the
+ * message buffer is set by the offset parameter. After extracting
+ * the MGFZI from the message buffer, the value of the offset parameter
+ * is updated by the MGFZI's size to reference the next available byte
+ * in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to extract
+ * @param data Location to store the extracted data
+ */
+ void
+ extractMessageData(
+ size_t& offset,
+ MGFZI& data)
+ throw(FFStreamError, InvalidParameter);
+
+ /**
+ * Extacts raw data from the message buffer. The location within the
+ * message buffer is set by the offset parameter, and the size of the
+ * data to extract is set by the size parameter. This method checks
+ * to ensure that all data is extracted from within the message
+ * buffer. After extracting data from the message buffer,
+ * the value of the offset parameter is updated by size to reference
+ * the next available byte in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to extract
+ * @param data Location to store the extracted data
+ * @param size Number of bytes of data to be extracted
+ */
+ void
+ extractMessageData(
+ size_t& offset,
+ std::string& data,
+ size_t size) const
+ throw(InvalidParameter);
+
+ /**
+ * Extacts data from the message buffer. The location within the
+ * message buffer is set by the offset parameter, and the size of the
+ * data to extract is set by the size parameter. This method checks
+ * to ensure that the value of the size parameter does not exceed
+ * sizeof(T) and that all data is extracted from within the
+ * message buffer. After extracting data from the message buffer,
+ * the value of the offset parameter is updated by size to reference
+ * the next available byte in the message buffer.
+ *
+ * @param offset Location within the message buffer at which to extract
+ * @param data Location to store the extracted data
+ * @param size Number of bytes of data to be extracted
+ */
+ template<class T>
+ void
+ extractMessageData(
+ size_t& offset,
+ T& data,
+ size_t size) const
+ throw(FFStreamError, InvalidParameter)
+ {
+ if (size > sizeof(T) )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Data size invalid: " << size;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ if (offset + size > msg.size() )
+ {
+ std::ostringstream errStrm;
+ errStrm << "Message buffer offset invalid: " << offset;
+ InvalidParameter ip(errStrm.str() );
+ GPSTK_THROW(ip);
+ }
+ bool littleEndian = ( (syncByte & eBigEndian) == 0) ? true : false;
+ msg.copy(reinterpret_cast<char*>(&data), size, offset);
+ if (littleEndian != nativeLittleEndian)
+ {
+ BinUtils::twiddle(data);
+ }
+ offset += size;
+
+ } // BinexData::extractMessageData()
+
+
+ protected:
+
+ /**
+ * Writes the BINEX data to the file stream formatted correctly.
+ */
+ virtual void
+ reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ StringUtils::StringException);
+
+ /**
+ * This function retrieves a BINEX record from the given FFStream.
+ * If an error is encountered in reading from the stream, the stream
+ * is returned to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void
+ reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ StringUtils::StringException);
+
+ /**
+ * @param bufs A NULL-terminated list of pointers to byte buffers
+ * @param bufLens A list of lengths for the buffers specified by bufs
+ * @param crc A pointer to the buffer in which to store the CRC
+ * @param crcLen The number of bytes used to store the CRC
+ */
+ void getCRC(const std::string& head,
+ const std::string& message,
+ std::string& crc) const;
+
+ /**
+ * Returns the number of bytes required to store the record's CRC
+ * based on the record's current contents.
+ */
+ size_t
+ getCRCLength(size_t crcDataLen) const;
+
+ /**
+ * Determines whether the supplied head sync byte is valid an returns
+ * an expected correosponding tail sync byte if appropriate.
+ */
+ bool
+ isHeadSyncByteValid(unsigned char headSync,
+ unsigned char& expectedTailSync) const;
+
+ /**
+ * Determines whether the supplied tail sync byte is valid an returns
+ * an expected correosponding head sync byte.
+ */
+ bool
+ isTailSyncByteValid(unsigned char tailSync,
+ unsigned char& expectedHeadSync) const;
+ /**
+ * Converts a raw sequence of bytes into an unsigned long long integer.
+ *
+ * @param buffer Raw bytes to convert
+ * @param offset Position at which to begin conversion
+ * @param size Number of bytes to convert
+ * @return Result of converting raw bytes to an unsigned integer
+ */
+ static unsigned long long
+ parseBuffer(const std::string& buffer,
+ size_t offset,
+ size_t size)
+ throw(FFStreamError);
+
+ /**
+ * Reverses the order of the first bufferLength bytes in the
+ * specified buffer.
+ *
+ * @param buffer Pointer to the bytes
+ * @param bufferLength Number of bytes to reverse
+ */
+ static void
+ reverseBuffer(unsigned char *buffer,
+ size_t bufferLength);
+
+ /**
+ * Reverses the order of the first bufferLength bytes in the
+ * specified buffer.
+ *
+ * @param buffer String containing bytes to reverse
+ * @param offset Starting position of bytes to reverse
+ * @param n Number of bytes to reverse
+ */
+ static void
+ reverseBuffer(std::string& buffer,
+ size_t offset = 0,
+ size_t n = std::string::npos);
+
+ /** @name Attributes
+ */
+ //@{
+ unsigned char syncByte; ///< Flags for endianness, CRC, etc.
+ unsigned long recID; ///< Record ID
+ std::string msg; ///< Record message (opaque)
+ //@}
+
+ private:
+
+ }; // class BinexData
+
+ //@}
+
+} // namespace gpstk
+
+
+#endif // GPSTK_BINEXDATA_HPP
diff --git a/dev/src/BinexFilterOperators.hpp b/dev/src/BinexFilterOperators.hpp
new file mode 100644
index 0000000..cd089e8
--- /dev/null
+++ b/dev/src/BinexFilterOperators.hpp
@@ -0,0 +1,41 @@
+#pragma ident "$Id: //depot/msn/main/code/shared/gpstk/BinexFilterOperators.hpp#1 $"
+
+/**
+ * @file BinexFilterOperators.hpp
+ * Operators for FileFilter using Binex data
+ */
+
+#ifndef GPSTK_BINEXFILTEROPERATORS_HPP
+#define GPSTK_BINEXFILTEROPERATORS_HPP
+
+#include "DayTime.hpp"
+#include "FileFilter.hpp"
+#include "BinexData.hpp"
+
+#include <set>
+
+namespace gpstk
+{
+ /** @addtogroup Binex */
+ //@{
+
+ typedef std::binary_function<BinexData, BinexData, bool> BinexDataBinaryOperator;
+
+
+ /// Determine if two BinexData objects are equal.
+ struct BinexDataOperatorEquals :
+ public BinexDataBinaryOperator
+ {
+ public:
+ bool operator()(const BinexData& l,
+ const BinexData& r) const
+ {
+ return (l == r);
+ }
+ };
+
+ //@}
+
+}
+
+#endif // GPSTK_BINEXFILTEROPERATORS_HPP
diff --git a/dev/src/BinexStream.hpp b/dev/src/BinexStream.hpp
new file mode 100644
index 0000000..65db139
--- /dev/null
+++ b/dev/src/BinexStream.hpp
@@ -0,0 +1,55 @@
+#pragma ident "$Id: //depot/msn/main/code/shared/gpstk/BinexStream.hpp#1 $"
+
+/**
+ * @file BinexStream.hpp
+ * File stream for RINEX meteorological files
+ */
+
+#ifndef GPSTK_BINEXSTREAM_HPP
+#define GPSTK_BINEXSTREAM_HPP
+
+#include "FFBinaryStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Binex */
+ //@{
+
+ /**
+ * This class performs file i/o on a BINEX file for the
+ * BinexData classes.
+ *
+ * @sa binex_read_write.cpp for an example.
+ * @sa binex_test.cpp for an example.
+ * @sa BinexData.
+ *
+ */
+ class BinexStream : public FFBinaryStream
+ {
+ public:
+ /// Destructor
+ virtual ~BinexStream() {}
+
+ /// Default constructor
+ BinexStream() {}
+
+ /** Constructor
+ * Opens a file named \a fn using ios::openmode \a mode.
+ */
+ BinexStream(const char* fn,
+ std::ios::openmode mode=std::ios::in | std::ios::binary)
+ : FFBinaryStream(fn, mode) {};
+
+ /// Opens a file named \a fn using ios::openmode \a mode.
+ virtual void
+ open(const char* fn, std::ios::openmode mode)
+ {
+ FFBinaryStream::open(fn, mode);
+ }
+ };
+
+ //@}
+
+} // namespace gpstk
+
+#endif // GPSTK_BINEXSTREAM_HPP
diff --git a/dev/src/BivarStats.hpp b/dev/src/BivarStats.hpp
new file mode 100644
index 0000000..322d398
--- /dev/null
+++ b/dev/src/BivarStats.hpp
@@ -0,0 +1,435 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file BivarStats.hpp
+ * Bivariate Statistics
+ */
+
+#ifndef INCLUDE_GPSTK_BIVARSTATS_HPP
+#define INCLUDE_GPSTK_BIVARSTATS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "MiscMath.hpp"
+#include "Vector.hpp"
+#include "Exception.hpp"
+#include "Stats.hpp"
+
+namespace gpstk
+{
+
+ /** @addtogroup math */
+ /** @{ */
+
+ /** Conventional statistics for two samples. Constructor does the same as
+ * clear(); use this when starting a new series of input samples.
+ */
+ template <class T>
+ class BivarStats
+ {
+ public:
+ /** @name Constructors.
+ * Various ways to construct a BivarStats object.
+ * @param x the data to use for the independent variable
+ * @param y the data to use for the dependent variable
+ * @param scale whether data is scaled internally (default: false) */
+ /** @{ */
+ BivarStats(bool scale=false);
+ BivarStats(const T& x, const T&, bool scale=false);
+ BivarStats(const std::vector<T>& x, const std::vector<T>& y,
+ bool scale=false);
+ BivarStats(const std::vector< std::pair<T, T> >& d, bool scale=false);
+ BivarStats(const Vector<T>& x, const Vector<T>& y, bool scale=false);
+ /** @} */
+
+ /** @name Addition Functions
+ * Add data to the statistics. */
+ /** @{ */
+ void add(const T& x, const T& y);
+ void add(const std::vector<T>& x, const std::vector<T>& y);
+ void add(const std::vector< std::pair<T, T> >& d);
+ void add(const Vector<T>& x, const Vector<T>& y);
+ /** @} */
+
+ /** @name Subtraction Functions
+ * Subtract data from the statistics. */
+ /** @{ */
+ void subtract(const T& x, const T& y);
+ void subtract(const std::vector<T>& x, const std::vector<T>& y);
+ void subtract(const std::vector< std::pair<T, T> >& d);
+ void subtract(const Vector<T>& x, const Vector<T>& y);
+ /** @} */
+
+ void clear(void); ///< Remove all data and start over.
+ size_t n(void) const; ///< Return the sample size.
+
+ T minimumX(void) const;
+ T maximumX(void) const;
+ T minimumY(void) const;
+ T maximumY(void) const;
+
+ T averageX(void) const;
+ T averageY(void) const;
+
+ T varianceX(void) const;
+ T varianceY(void) const;
+ T stdDevX(void) const;
+ T stdDevY(void) const;
+
+ /// Return slope of best-fit line Y=slope*X + intercept.
+ T slope(void) const;
+ /// Return intercept of best-fit line Y=slope*X + intercept
+ T intercept(void) const;
+ /// Return uncertainty in slope.
+ T sigmaSlope(void) const;
+
+ T correlation(void) const;
+
+ /// return conditional uncertainty = uncertainty y given x
+ T sigmaYX(void) const;
+
+ /// compute intercept + x * slope
+ T eval(const T& x) const {return intercept() + x * slope();};
+
+ /// Combine two BivarStats (assumed to be taken from the same or
+ /// equivalent samples).
+ BivarStats<T>& operator+=(BivarStats<T>& S);
+
+ Stats<T> estimateDeviation(const std::vector< std::pair<T, T> >& d) const;
+
+ private:
+
+ /// Number of samples added to the statistics so far.
+ size_t ns;
+
+ T xMin, xMax, yMin, yMax;
+ T scaleX, scaleY;
+ bool scaled;
+ T sumX, sumY, sumX2, sumY2, sumXY;
+ }; // end class BivarStats
+
+ /// Output operator for BivarStats class
+ template <class T>
+ std::ostream& operator<<(std::ostream& s, const BivarStats<T>& BVS)
+ {
+ s << " N = " << BVS.n() << std::endl
+ << " Minimum: X = " << BVS.minimumX()
+ << " Y = " << BVS.minimumY()
+ << " Maximum: X = " << BVS.maximumX()
+ << " Y = " << BVS.maximumY() << std::endl
+ << " Average: X = " << BVS.averageX()
+ << " Y = " << BVS.averageY()
+ << " Std Dev: X = " << BVS.stdDevX()
+ << " Y = " << BVS.stdDevY() << std::endl
+ << " Intercept = " << BVS.intercept()
+ << " Slope = " << BVS.slope()
+ << " with uncertainty = " << BVS.sigmaSlope() << std::endl
+ << " Conditional uncertainty (sigma y given x) = " << BVS.sigmaYX()
+ << " Correlation = " << BVS.correlation() << std::endl;
+ return s;
+ }
+
+ template<class T>
+ BivarStats<T>::BivarStats(bool s)
+ :ns(0), scaled(s)
+ {}
+
+ template<class T>
+ BivarStats<T>::BivarStats(const T& x, const T& y, bool s)
+ :ns(0), scaled(s)
+ {
+ add(x,y);
+ }
+
+ template<class T>
+ BivarStats<T>::BivarStats(const std::vector<T>& x, const std::vector<T>& y,
+ bool s )
+ :ns(0), scaled(s)
+ {
+ add(x,y);
+ }
+
+ template<class T>
+ BivarStats<T>::BivarStats(const std::vector< std::pair<T, T> >& d, bool s)
+ :ns(0), scaled(s)
+ {
+ add(d);
+ }
+
+ template<class T>
+ BivarStats<T>::BivarStats(const Vector<T>& x, const Vector<T>& y, bool s)
+ :ns(0), scaled(s)
+ {
+ add(x,y);
+ }
+
+ template<class T>
+ void BivarStats<T>::add(const T& x, const T& y)
+ {
+ if (ns == 0)
+ {
+ sumX = sumY = sumX2 = sumY2 = sumXY = T(0);
+ xMin = xMax = x;
+ yMin = yMax = y;
+ scaleX = scaleY = T(1);
+ }
+
+ if (scaled)
+ {
+ if (scaleX==T(1) && x!=T()) scaleX=ABS(x);
+ if (scaleY==T(1) && y!=T()) scaleY=ABS(y);
+ T tx(x/scaleX);
+ T ty(y/scaleY);
+ sumX += tx;
+ sumY += ty;
+ sumX2 += tx*tx;
+ sumY2 += ty*ty;
+ sumXY += tx*ty;
+ }
+ else
+ {
+ sumX += x;
+ sumY += y;
+ sumX2 += x*x;
+ sumY2 += y*y;
+ sumXY += x*y;
+ }
+
+ if(x < xMin) xMin=x;
+ if(x > xMax) xMax=x;
+ if(y < yMin) yMin=y;
+ if(y > yMax) yMax=y;
+ ns++;
+ }
+
+ template<class T>
+ void BivarStats<T>::add(const std::vector<T>& x, const std::vector<T>& y)
+ {
+ size_t m = x.size() < y.size() ? x.size() : y.size();
+ if(m==0)
+ return;
+ for (size_t i=0; i<m; i++)
+ add(x[i], y[i]);
+ }
+
+ template<class T>
+ void BivarStats<T>::add(const std::vector< std::pair<T, T> >& d)
+ {
+ size_t max( d.size() );
+ for (size_t i=0; i<max; i++)
+ add(d[i].first, d[i].second);
+ }
+
+ template<class T>
+ void BivarStats<T>::add(const Vector<T>& x, const Vector<T>& y)
+ {
+ size_t m = x.size() < y.size() ? x.size() : y.size();
+ if (m==0)
+ return;
+ for (size_t i=0; i<m; i++)
+ add(x(i), y(i));
+ }
+
+ template<class T>
+ void BivarStats<T>::subtract(const T& x, const T& y)
+ {
+ if (ns < 2)
+ {
+ ns = 0;
+ return;
+ }
+
+ if (scaled)
+ {
+ T tx(x/scaleX);
+ T ty(y/scaleY);
+ sumX -= tx;
+ sumY -= ty;
+ sumX2 -= tx*tx;
+ sumY2 -= ty*ty;
+ sumXY -= tx*ty;
+ }
+ else
+ {
+ sumX -= x;
+ sumY -= y;
+ sumX2 -= x*x;
+ sumY2 -= y*y;
+ sumXY -= x*y;
+ }
+
+ ns--;
+ }
+
+ template<class T>
+ void BivarStats<T>::subtract(const std::vector<T>& x, const std::vector<T>& y)
+ {
+ size_t m = x.size()<y.size() ? x.size() : y.size();
+ if(m==0)
+ return;
+ for (size_t i=0; i<m; i++)
+ subtract(x[i], y[i]);
+ }
+
+ template<class T>
+ void BivarStats<T>::subtract(const std::vector< std::pair<T, T> >& d)
+ {
+ size_t max( d.size() );
+ for (size_t i=0; i<max; d++)
+ subtract(d[i].first, d[i].second);
+ }
+
+ template<class T>
+ void BivarStats<T>::subtract(const Vector<T>& x, const Vector<T>& y)
+ {
+ size_t m = x.size()<y.size() ? x.size() : y.size();
+ if (m==0)
+ return;
+ for (size_t i=0; i<m; i++)
+ subtract(x(i), y(i));
+ }
+
+ /// This assumes that the accessors will check for n>0, which they do.
+ template<class T>
+ void BivarStats<T>::clear(void) { ns=0; }
+
+ template<class T>
+ inline size_t BivarStats<T>::n(void) const { return ns; }
+
+ template<class T>
+ T BivarStats<T>::minimumX(void) const { return ns>0 ? xMin : T(0); }
+ template<class T>
+ T BivarStats<T>::maximumX(void) const { return ns>0 ? xMax : T(0); }
+ template<class T>
+ T BivarStats<T>::minimumY(void) const { return ns>0 ? yMin : T(0); }
+ template<class T>
+ T BivarStats<T>::maximumY(void) const { return ns>0 ? yMax : T(0); }
+
+ template<class T>
+ T BivarStats<T>::averageX(void) const
+ { return ns>0 ? scaleX*sumX/T(ns) : T(0); }
+ template<class T>
+ T BivarStats<T>::averageY(void) const
+ { return ns>0 ? scaleY*sumY/T(ns) : T(0); }
+
+
+ template<class T>
+ T BivarStats<T>::varianceX(void) const
+ {
+ return (ns>1) ? scaleX*scaleX * (sumX2 - sumX*sumX/T(ns)) / T(ns-1) : T(0);
+ }
+
+ template<class T>
+ T BivarStats<T>::varianceY(void) const
+ {
+ return (ns>1) ? scaleY*scaleY * (sumY2 - sumY*sumY/T(ns)) / T(ns-1) : T(0);
+ }
+
+ template<class T>
+ T BivarStats<T>::stdDevX(void) const { return SQRT(varianceX()); }
+ template<class T>
+ T BivarStats<T>::stdDevY(void) const { return SQRT(varianceY()); }
+
+ template<class T>
+ T BivarStats<T>::slope(void) const
+ {
+ if (ns>0)
+ return (scaleY/scaleX) * (sumXY - sumX*sumY/T(ns)) /
+ (sumX2 - sumX*sumX/T(ns));
+ else
+ return T();
+ }
+
+ template<class T>
+ T BivarStats<T>::intercept(void) const
+ {
+ if (ns>0)
+ return averageY() - slope() * averageX();
+ else
+ return T();
+ }
+
+ template<class T>
+ T BivarStats<T>::sigmaSlope(void) const
+ {
+ if (ns>2)
+ return sigmaYX() / (stdDevX() * SQRT(T(ns-1)));
+ else
+ return T();
+ }
+
+ template<class T>
+ T BivarStats<T>::correlation(void) const
+ {
+ if (ns>1)
+ return scaleX*scaleY * (sumXY - sumX*sumY/T(ns)) /
+ (stdDevX() * stdDevY() * T(ns-1));
+ else
+ return T();
+ }
+
+ template<class T>
+ T BivarStats<T>::sigmaYX(void) const
+ {
+ if (ns>2)
+ return (stdDevY() * SQRT(T(ns-1) / T(ns-2))
+ * SQRT(T(1) - correlation() * correlation()) );
+ else return T();
+ }
+
+ /// combine two BivarStats (assumed to be taken from the same or
+ /// equivalent samples)
+ template<class T>
+ BivarStats<T>& BivarStats<T>::operator+=(BivarStats<T>& S)
+ {
+ if(ns + S.ns == 0) return *this;
+ xMin = std::min(xMin, S.xMin);
+ xMax = std::max(xMax, S.xMax);
+ yMin = std::min(yMin, S.yMin);
+ yMax = std::max(yMax, S.yMax);
+ T xscaler( S.scaleX/scaleX ), yscaler( S.scaleY/scaleY );
+ sumX += xscaler * S.sumX;
+ sumY += yscaler * S.sumY;
+ sumX2 += xscaler * xscaler * S.sumX2;
+ sumY2 += yscaler * yscaler * S.sumY2;
+ sumXY += xscaler * yscaler * S.sumXY;
+ ns += S.ns;
+ return *this;
+ }
+ /** @} */ // end of @addtogroup math
+
+ template<class T>
+ Stats<T> BivarStats<T>::estimateDeviation(const std::vector< std::pair<T, T> >& d) const
+ {
+ Stats<T> estats;
+ size_t max( d.size() );
+ for (size_t i=0; i<max; i++)
+ estats.Add(std::abs(d[i].second - eval(d[i].first)));
+ return estats;
+ }
+
+} // namespace
+
+#endif
diff --git a/dev/src/CheckPRData.hpp b/dev/src/CheckPRData.hpp
new file mode 100644
index 0000000..3e58fb4
--- /dev/null
+++ b/dev/src/CheckPRData.hpp
@@ -0,0 +1,100 @@
+
+/**
+ * @file CheckPRData.hpp
+ * This class checks that pseudorange data is between reasonable values.
+ */
+
+#ifndef CheckPRData_GPSTK
+#define CheckPRData_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class checks that pseudorange data is between reasonable values.
+ class CheckPRData
+ {
+ public:
+
+ /// Default constructor
+ CheckPRData() : minPRange(15000000.0), maxPRange(30000000.0) {};
+
+
+ /// Constructor that allows to set the data span values
+ CheckPRData(const double& min, const double& max) : minPRange(min), maxPRange(max) {};
+
+
+ /** Checks that the given pseudorange data is between the limits
+ * @param prange The pseudorange data to be tested
+ *
+ * @return
+ * True if check was OK.
+ */
+ virtual bool check(const double& prange) const
+ {
+ return ( prange>=minPRange && prange<=maxPRange );
+ }; // end CheckPRData::check()
+
+
+ /// Set the minimum pseudorange value allowed for data (in meters).
+ virtual void setMinPRange(const double& minPR) { minPRange = minPR; };
+
+ /// Get the minimum pseudorange value allowed for data (in meters).
+ virtual double getMinPRange(void) const { return minPRange; };
+
+ /// Set the maximum pseudorange value allowed for data (in meters).
+ virtual void setMaxPRange(const double& maxPR) { maxPRange = maxPR; };
+
+ /// Get the maximum pseudorange value allowed for data (in meters).
+ virtual double getMaxPRange(void) const { return maxPRange; };
+
+
+ /// Destructor
+ virtual ~CheckPRData() {};
+
+
+ protected:
+
+ /// Minimum pseudorange value allowed for input data (in meters).
+ double minPRange;
+
+ /// Maximum pseudorange value allowed for input data (in meters).
+ double maxPRange;
+
+
+
+ }; // end class CheckPRData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/CivilTime.cpp b/dev/src/CivilTime.cpp
new file mode 100644
index 0000000..d4d1436
--- /dev/null
+++ b/dev/src/CivilTime.cpp
@@ -0,0 +1,322 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <cmath>
+#include "CivilTime.hpp"
+#include "TimeConverters.hpp"
+
+namespace gpstk
+{
+ /// Long month names for converstion from numbers to strings
+ const char * CivilTime::MonthNames[] =
+ {
+ "Error",
+ "January","February", "March", "April",
+ "May", "June","July", "August",
+ "September", "October", "November", "December"
+ };
+
+ /// Short month names for converstion from numbers to strings
+ const char * CivilTime::MonthAbbrevNames[] =
+ {
+ "err", "Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul",
+ "Aug", "Sep", "Oct", "Nov", "Dec"
+ };
+
+ CivilTime& CivilTime::operator=( const CivilTime& right )
+ throw()
+ {
+ year = right.year;
+ month = right.month;
+ day = right.day;
+ hour = right.hour;
+ minute = right.minute;
+ second = right.second;
+ return *this;
+ }
+
+ CommonTime CivilTime::convertToCommonTime() const
+ {
+ // get the julian day
+ long jday = convertCalendarToJD( year, month, day );
+ // get the second of day
+ double sod = convertTimeToSOD( hour, minute, second );
+ // make a CommonTime with jd, whole sod, and fractional second of day
+ return CommonTime( jday, static_cast<long>( sod ),
+ ( sod - static_cast<long>( sod ) ) );
+ }
+
+ void CivilTime::convertFromCommonTime( const CommonTime& ct )
+ {
+ long jday, sod;
+ double fsod;
+ // get the julian day, second of day, and fractional second of day
+ ct.get( jday, sod, fsod );
+ // convert the julian day to calendar "year/month/day of month"
+ convertJDtoCalendar( jday, year, month, day );
+ // convert the (whole) second of day to "hour/minute/second"
+ convertSODtoTime( static_cast<double>( sod ), hour, minute, second );
+ // add the fractional second of day to "second"
+ second += fsod;
+ }
+
+ std::string CivilTime::printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv = fmt;
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "Y",
+ "Yd", year );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "y",
+ "yd", static_cast<short>( year % 100 ) );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "m",
+ "md", month );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "b",
+ "bs", MonthAbbrevNames[month] );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "B",
+ "Bs", MonthNames[month] );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "d",
+ "dd", day );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "H",
+ "Hd", hour );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "M",
+ "Md", minute );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "S",
+ "Sd", static_cast<short>( second ) );
+ rv = formattedPrint( rv, getFormatPrefixFloat() + "f",
+ "ff", second );
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& exc )
+ {
+ GPSTK_RETHROW( exc );
+ }
+ }
+
+ bool CivilTime::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin(); i != info.end(); i++ )
+ {
+ switch( i->first )
+ {
+ case 'Y':
+ year = asInt( i->second );
+ break;
+
+ case 'y':
+ switch( i->second.length() )
+ {
+ case 2:
+ year = asInt( i->second ) + 1900;
+ if( year < 1980 )
+ year += 100;
+ break;
+ case 3:
+ year = asInt( i->second ) + 1000;
+ if( year < 1980 )
+ year += 100;
+ break;
+ default:
+ year = asInt( i->second );
+ break;
+ };
+ break;
+
+ case 'm':
+ month = asInt( i->second );
+ break;
+
+ case 'b':
+ case 'B':
+ {
+ std::string thisMonth( i->second );
+ lowerCase(thisMonth);
+
+ if (isLike(thisMonth, "jan.*")) month = 1;
+ else if (isLike(thisMonth, "feb.*")) month = 2;
+ else if (isLike(thisMonth, "mar.*")) month = 3;
+ else if (isLike(thisMonth, "apr.*")) month = 4;
+ else if (isLike(thisMonth, "may.*")) month = 5;
+ else if (isLike(thisMonth, "jun.*")) month = 6;
+ else if (isLike(thisMonth, "jul.*")) month = 7;
+ else if (isLike(thisMonth, "aug.*")) month = 8;
+ else if (isLike(thisMonth, "sep.*")) month = 9;
+ else if (isLike(thisMonth, "oct.*")) month = 10;
+ else if (isLike(thisMonth, "nov.*")) month = 11;
+ else if (isLike(thisMonth, "dec.*")) month = 12;
+ else
+ {
+ return false;
+ }
+ }
+ break;
+
+ case 'd':
+ day = asInt( i->second );
+ break;
+
+ case 'H':
+ hour = asInt( i->second );
+ break;
+
+ case 'M':
+ minute = asInt( i->second );
+ break;
+
+ case 'S':
+ case 'f':
+ second = asDouble( i->second );
+ if (i->first == 'S')
+ second = floor(second);
+ break;
+
+ default:
+ // do nothing
+ break;
+ };
+ }
+
+ return true;
+ }
+
+ bool CivilTime::isValid() const
+ throw()
+ {
+ CivilTime temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void CivilTime::reset()
+ throw()
+ {
+ year = 0;
+ month = day = 1;
+ hour = minute = 0;
+ second = 0.0;
+ }
+
+ bool CivilTime::operator==( const CivilTime& right ) const
+ throw()
+ {
+ if( year == right.year &&
+ month == right.month &&
+ day == right.day &&
+ hour == right.hour &&
+ minute == right.minute &&
+ second == right.second )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool CivilTime::operator!=( const CivilTime& right ) const
+ throw()
+ {
+ return (! operator==( right ) );
+ }
+
+ bool CivilTime::operator<( const CivilTime& right ) const
+ throw()
+ {
+ if( year < right.year )
+ {
+ return true;
+ }
+ if( year > right.year )
+ {
+ return false;
+ }
+ if( month < right.month )
+ {
+ return true;
+ }
+ if( month > right.month )
+ {
+ return false;
+ }
+ if( day < right.day )
+ {
+ return true;
+ }
+ if( day > right.day )
+ {
+ return false;
+ }
+ if( hour < right.hour )
+ {
+ return true;
+ }
+ if( hour > right.hour )
+ {
+ return false;
+ }
+ if( minute < right.minute )
+ {
+ return true;
+ }
+ if( minute > right.minute )
+ {
+ return false;
+ }
+ if( second < right.second )
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ bool CivilTime::operator>( const CivilTime& right ) const
+ throw()
+ {
+ return (! operator<=( right ) );
+ }
+
+ bool CivilTime::operator<=( const CivilTime& right ) const
+ throw()
+ {
+ return ( operator<( right ) || operator==( right ) );
+ }
+
+ bool CivilTime::operator>=( const CivilTime& right ) const
+ throw()
+ {
+ return (! operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/CivilTime.hpp b/dev/src/CivilTime.hpp
new file mode 100644
index 0000000..cab7eb5
--- /dev/null
+++ b/dev/src/CivilTime.hpp
@@ -0,0 +1,191 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_CIVILTIME_HPP
+#define GPSTK_CIVILTIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the representation of time consisting of
+ * year, month, day (of month), hour (of day), minute (of hour), and
+ * second (of minute).
+ */
+ class CivilTime : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup caltbo CivilTime Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements default to zero.
+ */
+ CivilTime( int yr = 0,
+ int mo = 0,
+ int dy = 0,
+ int hr = 0,
+ int mn = 0,
+ double s = 0.0 )
+ throw()
+ : year(yr), month(mo), day(dy), hour(hr), minute(mn), second(s)
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a const reference to the CivilTime object to copy
+ */
+ CivilTime( const CivilTime& right )
+ throw()
+ : year( right.year ), month( right.month ), day( right.day ),
+ hour( right.hour ), minute( right.minute ),
+ second( right.second )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the TimeTag-based object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ CivilTime( const TimeTag& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ CivilTime( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the CivilTime object to copy
+ * @return a reference to this CivilTime object
+ */
+ CivilTime& operator=( const CivilTime& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~CivilTime()
+ throw()
+ {}
+ //@}
+
+ /// Long month names for converstion from numbers to strings
+ static const char *MonthNames[];
+
+ /// Short month names for converstion from numbers to strings
+ static const char *MonthAbbrevNames[];
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "YymbBdHMSf";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%02m/%02d/%04Y %02H:%02M:%02.9f";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup ctco CivilTime Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the CivilTime object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const CivilTime& right ) const
+ throw();
+ bool operator!=( const CivilTime& right ) const
+ throw();
+ bool operator<( const CivilTime& right ) const
+ throw();
+ bool operator>( const CivilTime& right ) const
+ throw();
+ bool operator<=( const CivilTime& right ) const
+ throw();
+ bool operator>=( const CivilTime& right ) const
+ throw();
+ //@}
+
+ int year;
+ int month;
+ int day;
+ int hour;
+ int minute;
+ double second;
+
+ };
+
+} // namespace
+
+#endif // GPSTK_CIVILTIME_HPP
diff --git a/dev/src/ClockModel.hpp b/dev/src/ClockModel.hpp
new file mode 100644
index 0000000..9fe544c
--- /dev/null
+++ b/dev/src/ClockModel.hpp
@@ -0,0 +1,77 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file ClockModel.hpp
+ * An abstract class to provide an interface to a model of a clock offset.
+ * The model neds to be able to return an offset value at an indicated
+ * point in time.
+ */
+
+#ifndef CLOCKMODEL_HPP
+#define CLOCKMODEL_HPP
+
+#include <map>
+#include "Exception.hpp"
+#include "DayTime.hpp"
+
+/**
+ * This is a abstract base class for a clock model
+ */
+
+namespace gpstk
+{
+ class ClockModel
+ {
+ public:
+ ClockModel() throw() {};
+
+ virtual double getOffset(const gpstk::DayTime& t) const = 0;
+
+ virtual bool isOffsetValid(const gpstk::DayTime& t) const = 0;
+
+ };
+}
+#endif
diff --git a/dev/src/CodeBuffer.cpp b/dev/src/CodeBuffer.cpp
new file mode 100644
index 0000000..80c1620
--- /dev/null
+++ b/dev/src/CodeBuffer.cpp
@@ -0,0 +1,70 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "CodeBuffer.hpp"
+
+namespace gpstk
+{
+ CodeBuffer::CodeBuffer( const int SVPRNID )
+ {
+ PRNID = SVPRNID;
+ POrYCode = P_CODE;
+ currentTime = gpstk::DayTime();
+ buffer = new unsigned long[NUM_6SEC_WORDS];
+ }
+
+ // Assignment
+ CodeBuffer& CodeBuffer::operator=( const CodeBuffer& c )
+ {
+ if (this!=&c)
+ {
+ PRNID = c.PRNID;
+ POrYCode = c.POrYCode;
+ currentTime = c.currentTime;
+ for (long i=0;i<NUM_6SEC_WORDS;++i) buffer[i] = c.buffer[i];
+ }
+ return( *this );
+ }
+
+ void CodeBuffer::updateBufferStatus( const gpstk::DayTime& dt, const codeType PYFlag )
+ {
+ currentTime = dt;
+ POrYCode = PYFlag;
+ }
+
+} // end of namespace
diff --git a/dev/src/CodeBuffer.hpp b/dev/src/CodeBuffer.hpp
new file mode 100644
index 0000000..5ea6a87
--- /dev/null
+++ b/dev/src/CodeBuffer.hpp
@@ -0,0 +1,175 @@
+#pragma ident "$Id$"
+
+
+// CodeBuffer.hpp
+
+#ifndef CODEBUFFER_HPP
+#define CODEBUFFER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+ // Library headers
+#include "DayTime.hpp"
+
+ // Project headers
+#include "PCodeConst.hpp"
+
+namespace gpstk
+{
+/** @addtogroup code */
+//@{
+ /** P(Y)-code Buffer class.
+ * Applied Research Laboratories, The University of Texas at Austin
+ * August 2003
+ *
+ * CodeBuffer is a helper class designed to store P-code information.
+ * Six seconds of code for a particular satellite is stored in each
+ * object. The satellite is identified by PRNID and the beginning
+ * time is specified in a DayTime object. The code is stored in an
+ * array of unsigned long (assumed 32-bit) integers. The time order
+ * started with the MSB of first word of the buffer ([0]) and runs
+ * through the LSB of the last word of the buffer.
+ *
+ * The size of the buffer is probably the most notable feature of
+ * this class. 1.5s (one Z-count) of P(Y)-code is 15,345,000 bits.
+ * Therefore, 6 seconds is equal to 4 Z-counts or 4 * 15,345,000 bits
+ * = 61,380,000 bits. These bits are stored in 1,918,125 unsigned
+ * long integers. The fact that 61,380,000 is evenly divisble by 32
+ * is not a coincidence, but part of the design. The constant
+ * NUM_6SEC_WORDS is used to hold the value 1,918,125 and located in
+ * PCodeConst.h.
+ */
+ class CodeBuffer
+ {
+ public:
+ /// Defines the type of code held in the buffer
+ //enum codeType { P_CODE, Y_CODE, BOTH };
+
+ /**
+ * Instantiate and initialize a code buffer for a particular
+ * satellite.
+ */
+ CodeBuffer( const int SVPRNID );
+ ~CodeBuffer( );
+ CodeBuffer& operator=( const CodeBuffer& c );
+
+ /**
+ * Update the time associated with the buffer and the designation
+ * of the data contained in the buffer as P-code or Y-code.
+ */
+ void updateBufferStatus( const gpstk::DayTime& dt,
+ const codeType PYFlag );
+
+ /**
+ * Update the time associated with the buffer and the designation
+ * of the data contained in the buffer as P-code or Y-code. In this
+ * case, the time is not being changed, but the code flag may be
+ * changed.
+ */
+ void updateBufferStatus( const codeType PYFlag ) { POrYCode = PYFlag; }
+
+ /// Accessor returning the current time.
+ const gpstk::DayTime& getCurrentTime( ) { return(currentTime); }
+
+ /// Accessor returning the type of code in the buffer (P or Y)
+ codeType getPYFlag( ) { return(POrYCode); }
+
+ /// Accessor returing the PRN ID of the buffer
+ int getPRNID( ) { return(PRNID); }
+
+ /// Set or return the designated word of the code buffer.
+ unsigned long& operator[]( int i );
+ const unsigned long& operator[]( const int i ) const;
+
+ /** Given a bit number between 0 and (NUM_6SEC_WORDS * MAX_BIT) - 1,
+ * return the value of the bit as a right justified unsigned
+ * long word (0x00000000 or 0x00000001)..
+ */
+ unsigned long getBit( const long i ) const;
+
+ /** Perform an exclusive-or operation on the bits contained in
+ * this instance of CodeBuffer and the instance referenced by cb.
+ */
+ CodeBuffer& operator^=( const CodeBuffer& cb );
+
+ protected:
+ CodeBuffer( const CodeBuffer& c );
+ unsigned long * buffer;
+ int PRNID;
+ gpstk::DayTime currentTime;
+ codeType POrYCode;
+ };
+
+ inline CodeBuffer::~CodeBuffer( ) { delete [] buffer; }
+ inline CodeBuffer& CodeBuffer::operator^=( const CodeBuffer& cb )
+ {
+ for (long i=0;i<NUM_6SEC_WORDS;++i) buffer[i] ^= cb.buffer[i];
+ return( *this );
+ }
+
+ inline unsigned long& CodeBuffer::operator[]( int i )
+ {
+ return(buffer[i]);
+ }
+
+ inline const unsigned long& CodeBuffer::operator[]( int i ) const
+ {
+ return(buffer[i]);
+ }
+
+ inline unsigned long CodeBuffer::getBit( const long i ) const
+ {
+ unsigned long iret;
+ long bNdx = i / MAX_BIT;
+ long bitNum = i - (bNdx * MAX_BIT);
+ iret = buffer[bNdx];
+
+ // Shift LEFT to clear off msbs
+ iret <<= bitNum;
+ // Then shift RIGHT to clear off lsbs
+ iret >>= (MAX_BIT-1);
+
+ return iret;
+ }
+ //@}
+} // end of namespace
+#endif // CODEBUFFER_HPP
diff --git a/dev/src/CodeSmoother.hpp b/dev/src/CodeSmoother.hpp
new file mode 100644
index 0000000..6a6de44
--- /dev/null
+++ b/dev/src/CodeSmoother.hpp
@@ -0,0 +1,415 @@
+
+/**
+ * @file CodeSmoother.hpp
+ * This class smoothes a given code observable using the corresponding phase observable.
+ */
+
+#ifndef CODE_SMOOTHER_GPSTK
+#define CODE_SMOOTHER_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class smoothes a given code observable using the corresponding phase observable.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * OneFreqCSDetector markCSC1; // We MUST mark cycle slips
+ * CodeSmoother smoothC1;
+ *
+ * while(rin >> gRin) {
+ * gRin >> markCSC1 >> smoothC1;
+ * }
+ * @endcode
+ *
+ * The "CodeSmoother" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will smooth the given code observation using
+ * the corresponding phase observation.
+ *
+ * By default, the algorithm will use C1 and L1 observables, and the CSL1 index
+ * will be consulted for cycle slip information. You can change these settings
+ * with the appropriate set methods.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the code observation smoothed (unless the resultType
+ * field is changed). Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Another important parameter is the maxWindowSize field. By default, it is
+ * set to 100 samples (you may adjust that with the setMaxWindowSize() method).
+ *
+ * A window of 100 samples is typical and appropriate when working with data
+ * sampled at 1 Hz, because then the full window will last at most 100 seconds.
+ *
+ * However, if for instance your samples are taken at 30 seconds (and you are
+ * working with C1/L1 or other ionosphere-affected observation pair), then a
+ * window of 50 minutes will be used and you will get badly distorted data
+ * because of ionosphere drift, among other effects.
+ *
+ * A good rule here is to make sure that the filter window lasts at most 5 minutes.
+ * Therefore, for a 30 s sampling data set you should set your smoother object like
+ * this:
+ *
+ * @code
+ * CodeSmoother smoothC1;
+ * smoothC1.setMaxWindowSize(8);
+ * @endcode
+ *
+ * Resulting in a 4 minutes filter window.
+ *
+ * \warning Code smoothers are objets that store their internal state,
+ * so you MUST NOT use the SAME object to process DIFFERENT data streams.
+ *
+ */
+ class CodeSmoother
+ {
+ public:
+
+ /// Default constructor, setting default parameters and C1 and L1 as observables.
+ CodeSmoother() : codeType(TypeID::C1), phaseType(TypeID::L1), resultType(TypeID::C1), maxWindowSize(100), csFlag(TypeID::CSL1) { };
+
+
+ /** Common constructor
+ *
+ * @param codeT Type of code to be smoothed.
+ * @param mwSize Maximum size of filter window, in samples.
+ */
+ CodeSmoother(const TypeID& codeT, const int& mwSize = 100) : codeType(codeT)
+ {
+ // Don't allow window sizes less than 1
+ if (mwSize > 1) maxWindowSize = mwSize; else maxWindowSize = 1;
+
+ switch ( codeT.type )
+ {
+ case TypeID::C1:
+ phaseType = TypeID::L1;
+ csFlag = TypeID::CSL1;
+ resultType = TypeID::C1;
+ break;
+ case TypeID::C2:
+ phaseType = TypeID::L2;
+ csFlag = TypeID::CSL2;
+ resultType = TypeID::C2;
+ break;
+ case TypeID::P1:
+ phaseType = TypeID::L1;
+ csFlag = TypeID::CSL1;
+ resultType = TypeID::P1;
+ break;
+ case TypeID::P2:
+ phaseType = TypeID::L2;
+ csFlag = TypeID::CSL2;
+ resultType = TypeID::P2;
+ break;
+ case TypeID::C5:
+ phaseType = TypeID::L5;
+ csFlag = TypeID::CSL5;
+ resultType = TypeID::C5;
+ break;
+ case TypeID::C6:
+ phaseType = TypeID::L6;
+ csFlag = TypeID::CSL6;
+ resultType = TypeID::C6;
+ break;
+ case TypeID::C7:
+ phaseType = TypeID::L7;
+ csFlag = TypeID::CSL7;
+ resultType = TypeID::C7;
+ break;
+ case TypeID::C8:
+ phaseType = TypeID::L8;
+ csFlag = TypeID::CSL8;
+ resultType = TypeID::C8;
+ break;
+ default:
+ phaseType = TypeID::L1;
+ csFlag = TypeID::CSL1;
+ resultType = TypeID::C1;
+ };
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Smooth(satTypeValueMap& gData)
+ {
+ double codeObs(0.0);
+ double phaseObs(0.0);
+ double flagObs(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ codeObs = (*it).second(codeType);
+ phaseObs = (*it).second(phaseType);
+ flagObs = (*it).second(csFlag);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ // If everything is OK, then process according if there is a cycle slip or not.
+ (*it).second[resultType] = getSmoothing((*it).first, codeObs, phaseObs, flagObs);
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Smooth(gnssSatTypeValue& gData)
+ {
+ (*this).Smooth(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Smooth(gnssRinex& gData)
+ {
+ (*this).Smooth(gData.body);
+ return gData;
+ };
+
+
+ /** Method to set the default code type to be used.
+ * @param codeT TypeID of code to be used
+ */
+ virtual void setCodeType(const TypeID& codeT)
+ {
+ codeType = codeT;
+ };
+
+
+ /// Method to get the default code type being used.
+ virtual TypeID getCodeType() const
+ {
+ return codeType;
+ };
+
+
+ /** Method to set the default phase type to be used.
+ * @param phaseT TypeID of phase to be used
+ */
+ virtual void setPhaseType(const TypeID& phaseT)
+ {
+ phaseType = phaseT;
+ };
+
+
+ /// Method to get the default phase type being used.
+ virtual TypeID getPhaseType() const
+ {
+ return phaseType;
+ };
+
+
+ /** Method to set the default cycle slip type to be used.
+ * @param csT Cycle slip type to be used
+ */
+ virtual void setCSFlag(const TypeID& csT)
+ {
+ csFlag = csT;
+ };
+
+
+ /// Method to get the default cycle slip type being used.
+ virtual TypeID getCSFlag() const
+ {
+ return csFlag;
+ };
+
+
+ /** Method to set the default return type to be used.
+ * @param returnT TypeID to be returned
+ */
+ virtual void setResultType(const TypeID& resultT)
+ {
+ resultType = resultT;
+ };
+
+
+ /// Method to get the default return type being used.
+ virtual TypeID getResultType() const
+ {
+ return resultType;
+ };
+
+
+ /** Method to set the maximum size of filter window, in samples.
+ * @param maxSize Maximum size of filter window, in samples.
+ */
+ virtual void setMaxWindowSize(const int& maxSize)
+ {
+ // Don't allow window sizes less than 1
+ if (maxSize > 1) maxWindowSize = maxSize; else maxWindowSize = 1;
+ };
+
+
+ /// Method to get the maximum size of filter window, in samples.
+ virtual int getMaxWindowSize() const
+ {
+ return maxWindowSize;
+ };
+
+
+ /// Destructor
+ virtual ~CodeSmoother() {};
+
+
+ private:
+
+ /// Type of code observation to be used.
+ TypeID codeType;
+
+
+ /// Type of phase observation to be used.
+ TypeID phaseType;
+
+
+ /// Type assigned to the resulting smoothed code.
+ TypeID resultType;
+
+
+ /// Maximum size of filter window, in samples.
+ int maxWindowSize;
+
+
+ /// Cycle slip flag. It MUST be present. @sa OneFreqCSDetector.hpp class.
+ TypeID csFlag;
+
+
+ /// A structure used to store filter data for a SV.
+ struct filterData
+ {
+ // Default constructor initializing the data in the structure
+ filterData() : windowSize(1), previousCode(0.0), previousPhase(0.0) {};
+
+ int windowSize; ///< The filter window size.
+ double previousCode; ///< Accumulated mean bias (pseudorange - phase).
+ double previousPhase; ///< Accumulated mean bias sigma squared.
+ };
+
+
+ /// Map holding the information regarding every satellite
+ std::map<SatID, filterData> SmoothingData;
+
+
+
+ /// Compute the combination of observables.
+ virtual double getSmoothing(const SatID& sat, const double& code, const double& phase, const double& flag)
+ {
+ if ( flag!=0.0 ) // In case we have a cycle slip
+ {
+ // Prepare the structure for the next iteration
+ SmoothingData[sat].previousCode = code;
+ SmoothingData[sat].previousPhase = phase;
+ SmoothingData[sat].windowSize = 1;
+ return code; // We don't need any further processing
+ }
+
+ // In case we didn't have cycle slip
+ double smoothedCode(0.0);
+
+ // Increment size of window and check limit
+ ++SmoothingData[sat].windowSize;
+ if (SmoothingData[sat].windowSize > maxWindowSize) SmoothingData[sat].windowSize = maxWindowSize;
+
+ // The formula used is the following:
+ //
+ // CSn = (1/n)*Cn + ((n-1)/n)*(CSn-1 + Ln - Ln-1)
+ //
+ // As window size "n" increases, the former formula gives more
+ // weight to the previous smoothed code CSn-1 plus the phase bias
+ // (Ln - Ln-1), and less weight to the current code observation Cn
+ smoothedCode = ( code + ((static_cast<double>(SmoothingData[sat].windowSize)) - 1.0) * (SmoothingData[sat].previousCode + (phase - SmoothingData[sat].previousPhase) ) ) / (static_cast<double>(SmoothingData[sat].windowSize));
+
+ // Store results for next iteration
+ SmoothingData[sat].previousCode = smoothedCode;
+ SmoothingData[sat].previousPhase = phase;
+
+ return smoothedCode;
+ };
+
+
+ }; // end class CodeSmoother
+
+
+ /// Input operator from gnssSatTypeValue to CodeSmoother.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, CodeSmoother& codeS)
+ {
+ codeS.Smooth(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to CodeSmoother.
+ inline gnssRinex& operator>>(gnssRinex& gData, CodeSmoother& codeS)
+ {
+ codeS.Smooth(gData);
+ return gData;
+ }
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/CommandOption.cpp b/dev/src/CommandOption.cpp
new file mode 100644
index 0000000..84d2383
--- /dev/null
+++ b/dev/src/CommandOption.cpp
@@ -0,0 +1,396 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file CommandOption.cpp
+ * Command line options
+ */
+
+#include "CommandOption.hpp"
+#include "StringUtils.hpp"
+
+#include <sstream>
+
+using namespace std;
+using namespace gpstk::StringUtils;
+
+namespace gpstk
+{
+ CommandOptionVec defaultCommandOptionList;
+
+ // Prints out short options with a leading '-' and long ones with '--'.
+ // Puts a '|' between them if it has both.
+ string CommandOption::getOptionString() const
+ {
+ string toReturn;
+ if (shortOpt != 0)
+ {
+ toReturn += string("-") + string(1, shortOpt);
+ if (!longOpt.empty())
+ toReturn += string(" | --") + longOpt;
+ }
+ else
+ {
+ toReturn += string("--") + longOpt;
+ }
+ return toReturn;
+ }
+
+ // Prints out short options with a leading '-' and long ones with '--'.
+ // Puts a ',' between them if it has both.
+ string CommandOption::getFullOptionString() const
+ {
+ string toReturn(" ");
+ if (shortOpt != 0)
+ {
+ toReturn += string("-") + string(1, shortOpt);
+ if (!longOpt.empty())
+ {
+ toReturn += string(", --") + longOpt;
+ if (optFlag == hasArgument)
+ toReturn += "=" + getArgString();
+ }
+ }
+ else
+ {
+ toReturn += string(" --") + longOpt;
+ if (optFlag == hasArgument)
+ toReturn += "=" + getArgString();
+ }
+ return toReturn;
+ }
+
+ // creates the struct option for getopt_long
+ struct option CommandOption::toGetoptLongOption() const
+ {
+ struct option o = {longOpt.c_str(), optFlag, NULL, 0};
+ return o;
+ }
+
+ // makes the string for getopt
+ std::string CommandOption::toGetoptShortOption() const
+ {
+ std::string opt(1, shortOpt);
+ if (optFlag == hasArgument) opt += ":";
+ return opt;
+ }
+
+ // writes out the vector of values for this command option
+ std::ostream& CommandOption::dumpValue(std::ostream& out) const
+ {
+ std::vector<std::string>::const_iterator itr = value.begin();
+ while(itr != value.end())
+ {
+ out << *itr << std::endl;
+ itr++;
+ }
+ return out;
+ }
+
+ // returns a string like this:
+ //
+ // -f | --foo <arg>
+ // this is the description
+ //
+ std::string CommandOption::getDescription() const
+ {
+ ostringstream out;
+ // do the option itself first
+ out << '\t';
+ if (shortOpt != 0)
+ {
+ out << '-' << shortOpt;
+ if (!longOpt.empty())
+ out << " | ";
+ else
+ out << '\t';
+ }
+ if (! longOpt.empty())
+ {
+ out << "--" << longOpt;
+ }
+ if (optFlag == hasArgument)
+ {
+ out << " " << getArgString();
+ }
+ // and the description goes on a new line
+ out << endl << prettyPrint(description,
+ "\n",
+ " ",
+ " ");
+ if (maxCount != 0)
+ {
+ out << "\t\tUp to " << maxCount << " may be used on the command line."
+ << endl;
+ }
+ return out.str();
+ }
+
+ // this checks if it expects number or string type arguments.
+ // it returns a string describing the error, if any.
+ string CommandOption::checkArguments()
+ {
+ if (required && (count == 0))
+ return "Required option " + getOptionString() + " was not found.";
+
+ return string();
+ }
+
+ string CommandOptionRest::checkArguments()
+ {
+ if (required && (count == 0))
+ return "Required trailing argument was not found.";
+
+ return string();
+ }
+
+ string CommandOptionWithNumberArg::checkArguments()
+ {
+ string errstr = CommandOption::checkArguments();
+
+ if (!errstr.empty())
+ return errstr;
+
+ vector<string>::size_type vecindex;
+ for(vecindex = 0; vecindex < value.size(); vecindex++)
+ {
+ if (!isDigitString(value[vecindex]))
+ {
+ string errstr("Argument for ");
+ errstr += getOptionString();
+ errstr += string(" should be a digit string.");
+ return errstr;
+ }
+ }
+
+ return string();
+ }
+
+ string CommandOptionWithStringArg::checkArguments()
+ {
+ string errstr = CommandOption::checkArguments();
+
+ if (!errstr.empty())
+ return errstr;
+
+ vector<string>::size_type vecindex;
+ for(vecindex = 0; vecindex < value.size(); vecindex++)
+ {
+ if (!isAlphaString(value[vecindex]))
+ {
+ string errstr("Argument for ");
+ errstr += getOptionString();
+ errstr += string(" should be an alphabetic string.");
+ return errstr;
+ }
+ }
+ return errstr;
+ }
+
+ string CommandOptionMutex::checkArguments()
+ {
+ if (doOneOfChecking)
+ {
+ string oo = CommandOptionOneOf::checkArguments();
+ if (oo != string())
+ return oo;
+ }
+
+ // mutex doesn't call CommandOption::checkArguments because
+ // it uses "required" differently
+ string errstr("Only one of the following options may be specified: ");
+ int firstSpec = -1;
+ bool touched = false;
+
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ CommandOption *opt = optionVec[i];
+
+ if (i)
+ errstr += ", ";
+ errstr += opt->getOptionString();
+ if (opt->getCount())
+ {
+ if (firstSpec != -1)
+ touched = true;
+ else
+ firstSpec = i;
+ }
+ }
+
+ if (touched)
+ return errstr;
+
+ return string();
+ }
+
+ string CommandOptionOneOf::checkArguments()
+ {
+ // one-of doesn't call CommandOption::checkArguments because
+ // it doesn't use "required"
+ string errstr("One of the following options must be specified: ");
+ bool found = false;
+
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ if (optionVec[i]->getCount())
+ found = true;
+ if (i > 0)
+ errstr += ", ";
+ errstr += optionVec[i]->getOptionString();
+ }
+
+ if (!found)
+ return errstr;
+
+ return string();
+ }
+
+ CommandOption* CommandOptionOneOf::whichOne() const
+ {
+ CommandOption *rv = NULL;
+
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ if (optionVec[i]->getCount())
+ {
+ rv = optionVec[i];
+ break;
+ }
+ }
+
+ return rv;
+ }
+
+ string CommandOptionAllOf::checkArguments()
+ {
+ string errstr("The following options must be used together: ");
+ bool found = false, notFound = false;
+
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ if (optionVec[i]->getCount())
+ found = true;
+ else
+ notFound = true;
+ if (i > 0)
+ errstr += ", ";
+ errstr += optionVec[i]->getOptionString();
+ }
+
+ if (found && notFound)
+ return errstr;
+
+ return string();
+ }
+
+ unsigned long CommandOptionAllOf::getCount() const
+ {
+ unsigned long rv = 0;
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ if (optionVec[i]->getCount() == 0)
+ return 0;
+ rv += optionVec[i]->getCount();
+ }
+ return rv;
+ }
+
+ string CommandOptionDependent::checkArguments()
+ {
+ // dependent doesn't call CommandOption::checkArguments because
+ // it doesn't use "required"
+ string errstr;
+
+ if (!requiree)
+ errstr = "Null requiree (parent) for CommandOptionDependent";
+ if (!requirer)
+ errstr = "Null requirer (child) for CommandOptionDependent";
+
+ if (requirer->getCount() && !requiree->getCount())
+ errstr = "Option " + requirer->getOptionString() + " requires " +
+ requiree->getOptionString();
+
+ return errstr;
+ }
+
+ string CommandOptionGroupOr::getOptionString() const
+ {
+ string rv;
+ if (optionVec.size() > 1)
+ rv += "(";
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ if (i) rv += ",";
+ rv += optionVec[i]->getOptionString();
+ }
+ if (optionVec.size() > 1)
+ rv += ")";
+
+ return rv;
+ }
+
+ unsigned long CommandOptionGroupOr::getCount() const
+ {
+ unsigned long rv = 0;
+ for (int i = 0; i < optionVec.size(); i++)
+ rv += optionVec[i]->getCount();
+
+ return rv;
+ }
+
+ unsigned long CommandOptionGroupAnd::getCount() const
+ {
+ unsigned long rv = 0;
+ for (int i = 0; i < optionVec.size(); i++)
+ {
+ if (optionVec[i]->getCount() == 0)
+ return 0;
+ rv += optionVec[i]->getCount();
+ }
+ return rv;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/CommandOption.hpp b/dev/src/CommandOption.hpp
new file mode 100644
index 0000000..fb7d364
--- /dev/null
+++ b/dev/src/CommandOption.hpp
@@ -0,0 +1,631 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file CommandOption.hpp
+ * Command line options
+ */
+
+#ifndef COMMANDOPTION_HPP
+#define COMMANDOPTION_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifdef __SUNPRO_CC
+#include "getopt.h"
+#elif defined (_AIX)
+#include "getopt.h"
+#else
+#include <getopt.h>
+#endif
+
+#include <string>
+#include <vector>
+
+namespace gpstk
+{
+ /** @defgroup commandoptiongroup Command-Line Options */
+ //@{
+
+ // forward declaration
+ class CommandOption;
+ typedef std::vector<CommandOption*> CommandOptionVec;
+
+ /// The default command option list used by CommandOption and
+ /// gpstk::CommandOptionParser
+ extern CommandOptionVec defaultCommandOptionList;
+
+ /**
+ * This class is part of a replacement for getopt.
+ *
+ * Each CommandOption
+ * represents an option you would enter at a command line. You can
+ * specify whether the option does or does not require an argument,
+ * if the option is of a certain type (string or number), then the
+ * short option (i.e. '-f') and long option ('--foo'), whether it's
+ * a required option or not, then a short description for a help display.
+ * By default, options can appear an unlimited number of times on a
+ * command line. Use setMaxCount() to set a maximum limit to this.
+ * In that case, additional appearances of that option will trigger
+ * an error once parsed.
+ *
+ * When a CommandOption is created (not using the default
+ * constructor), it automatically adds itself to a list that will
+ * be used by gpstk::CommandOptionParser. If you want to manage your
+ * own list, pass in your own std::vector<gpstk::CommandOptionParser>
+ * with the CommandOption constructor. After parsing the command
+ * line, you can use the getValue() and
+ * getCount() methods to see what arguments
+ * the options had and how many times the option was listed on
+ * the command line.
+ *
+ * This class is strongly connected to gpstk::CommandOptionParser, so
+ * if you change anything here, make sure you don't side affect
+ * the other.
+ *
+ * @sa getopttest.cpp in the test directory for some examples.
+ *
+ * @warning DO NOT USE THE DEFAULT CONSTRUCTOR FOR THIS CLASS.
+ * That's for the STL use requirements only.
+ * @warning Do not repeat characters or strings used in the short
+ * or long command options. Doing so will cause one of them not to work.
+ * @warning Do not reuse the CommandOption objects. Make a separate
+ * one for each option you want on the command line.
+ * @warning Make the description an understandable, grammatically
+ * correct sentence.
+ * @warning The resulting behavior of not heeding the above advice
+ * is undefined, and I take no responsibility for the results of you
+ * not taking appropriate action in light of this warning.
+ */
+ class CommandOption
+ {
+ public:
+ /// let's the CommandOptionParser see it's private parts =)
+ friend class CommandOptionParser;
+
+ /// Every option must either have or not have an argument.
+ /// There are no optional arguments because Solaris doesn't support it.
+ enum CommandOptionFlag
+ {
+ noArgument = 0, ///< option requires no arguments
+ hasArgument = 1 ///< option requires an argument
+ };
+
+ /// This is so you can limit what type or argument an option can have.
+ /// If specified, it will be checked when the argument is encountered.
+ /// Errors will get set appropriately if there are any.
+ enum CommandOptionType
+ {
+ trailingType, ///< Special case, no option, just the remaining args.
+ stdType, ///< The argument of this option can be any type.
+ metaType ///< A meta-option that has its own special validation.
+ };
+
+ /**
+ * Constructor.
+ * @param of Whether or not this command requires an argument
+ * @param ot The type of option (string, number, any, etc.)
+ * @param shOpt The one character command line option. Set to 0
+ * if unused.
+ * @param loOpt The long command option. Set to std::string()
+ * if unused.
+ * @param desc A string describing what this option does.
+ * @param req Set to true if this is a required option.
+ * @param optVectorList Use this to create your own
+ * command option list if you want to use an alternate method
+ * of parsing the command options.
+ */
+ CommandOption(const CommandOptionFlag of,
+ const CommandOptionType ot,
+ const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool req = false,
+ CommandOptionVec& optVectorList =
+ defaultCommandOptionList)
+ : optFlag(of), optType(ot),
+ shortOpt(shOpt), longOpt(loOpt), description(desc),
+ required(req), count(0), maxCount(0), order(0)
+ {optVectorList.push_back(this);}
+
+ /// Sets the maximum number of times this should appear on the
+ /// command line.
+ CommandOption& setMaxCount(const unsigned long l)
+ {maxCount = l; return *this;}
+
+ /// Returns a string with the flags for this CommandOption.
+ /// (i.e. "-f | --foo")
+ virtual std::string getOptionString() const;
+
+ /// Returns a formatted string with the flags for this CommandOption.
+ /// (i.e. " -f, --foo=ARG")
+ std::string getFullOptionString() const;
+
+ /// Returns a string with the argument format.
+ virtual std::string getArgString() const
+ { return "ARG"; }
+
+ /// Returns a struct option for use with getopt_long.
+ struct option toGetoptLongOption() const;
+ /// Returns a string for use with getopt.
+ std::string toGetoptShortOption() const;
+
+ /**
+ * Returns the number of times this option was found on the
+ * command line.
+ */
+ virtual unsigned long getCount() const { return count; }
+
+ /**
+ * Returns the arguments this option had passed in from the
+ * command line.
+ */
+ std::vector<std::string> getValue() const { return value; }
+
+ /// Returns the order which this command option was seen on the
+ /// command line, with 1 being the first option.
+ // If it can be repeated, this order represents the order of
+ /// the last occurance of this option.
+ unsigned int getOrder() const { return order; }
+
+ /// Displays this->value to the stream \c out.
+ std::ostream& dumpValue(std::ostream& out) const;
+
+ /// Returns a formatted string with the description of this option.
+ std::string getDescription() const;
+
+ /**
+ * If you specified a format for the arguments (for example, digit or
+ * string), this function checks them to see if they match.
+ * If they don't, an error string is returned. If they do, an
+ * empty string is returned.
+ * @param optVec complete set of processed command line options
+ * being processed (used by some option types).
+ */
+ virtual std::string checkArguments();
+
+ /// Destructor
+ virtual ~CommandOption() {}
+
+ protected:
+ /// Flag for determining whether this option has an argument or not.
+ CommandOptionFlag optFlag;
+ /// Flag for determining whether this option has a specific
+ /// argument type.
+ CommandOptionType optType;
+ /// The character for the short option (for example, '-f').
+ char shortOpt;
+ /// The string for the long option (for example, "--foo").
+ std::string longOpt;
+ /// The description for the help text.
+ std::string description;
+ /// Any arguments passed with this option get put in here.
+ std::vector<std::string> value;
+ /// Whether or not this is a required command line option.
+ bool required;
+ /// The number of times this option was encountered on the
+ /// command line.
+ unsigned long count;
+ /// The maximum number of times this can appear on the command line.
+ /// If it's 0, then it's unlimited.
+ unsigned long maxCount;
+ /// The order in which this option was encountered on the command line
+ unsigned long order;
+
+ /// Default Constructor
+ CommandOption() {}
+ };
+
+ /// A subclass of CommandOption that is a required command line option.
+ class RequiredOption : public CommandOption
+ {
+ public:
+ /// Constructor
+ RequiredOption(const CommandOptionFlag of,
+ const CommandOptionType ot,
+ const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc)
+ : CommandOption(of, ot, shOpt, loOpt, desc, true)
+ {}
+
+ /// Destructor
+ virtual ~RequiredOption() {}
+
+ protected:
+ /// default constructor
+ RequiredOption() {}
+ };
+
+ /// A subclass of CommandOption that has no arguments
+ class CommandOptionNoArg : public CommandOption
+ {
+ public:
+ /// Constructor
+ CommandOptionNoArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool required = false)
+ : CommandOption(noArgument, stdType, shOpt, loOpt, desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionNoArg() {}
+ /// Returns true if this option was found on the command line
+ operator bool() const throw() { return (getCount() != 0); }
+
+ protected:
+ /// Default Constructor
+ CommandOptionNoArg() {}
+ };
+
+ /// A subclass of CommandOption that has an argument.
+ class CommandOptionWithArg : public CommandOption
+ {
+ public:
+ /// Constructor
+ CommandOptionWithArg(const CommandOptionType ot,
+ const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool required = false)
+ : CommandOption(hasArgument, ot, shOpt, loOpt, desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithArg() {}
+
+ protected:
+ /// Default Constructor
+ CommandOptionWithArg() {}
+ };
+
+ /// A CommandOption that requires a string argument.
+ class CommandOptionWithAnyArg : public CommandOptionWithArg
+ {
+ public:
+ /// Constructor
+ CommandOptionWithAnyArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool required = false)
+ : CommandOptionWithArg(stdType, shOpt, loOpt, desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithAnyArg() {}
+
+ protected:
+ /// Default Constructor
+ CommandOptionWithAnyArg() {}
+ };
+
+ /// A CommandOption that requires a string argument.
+ class CommandOptionWithStringArg : public CommandOptionWithArg
+ {
+ public:
+ /// Constructor
+ CommandOptionWithStringArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool required = false)
+ : CommandOptionWithArg(stdType, shOpt, loOpt, desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithStringArg() {}
+
+ virtual std::string checkArguments();
+
+ /// Returns a string with the argument format.
+ virtual std::string getArgString() const
+ { return "<alpha>"; }
+
+ protected:
+ /// Default Constructor
+ CommandOptionWithStringArg() {}
+ };
+
+ /// A CommandOption that requires a numeric argument.
+ class CommandOptionWithNumberArg : public CommandOptionWithArg
+ {
+ public:
+ /// Constructor
+ CommandOptionWithNumberArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool required = false)
+ : CommandOptionWithArg(stdType, shOpt, loOpt, desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithNumberArg() {}
+
+ virtual std::string checkArguments();
+
+ /// Returns a string with the argument format.
+ virtual std::string getArgString() const
+ { return "NUM"; }
+
+ protected:
+ /// Default Constructor
+ CommandOptionWithNumberArg() {}
+ };
+
+ /**
+ * It only makes sense to have a single one of these set. It is
+ * the option that takes the rest of the command line options
+ * that are not part of any other options. e.g. "strace -ofile
+ * command arg1 arg2". The "command arg1 arg2" part is placed in
+ * objects of this class.
+ *
+ * @short CommandOption to take the rest of the command line
+ */
+ class CommandOptionRest : public CommandOptionWithArg
+ {
+ public:
+ /**
+ * CommandOptionRest contructor. This sets the CommandOptionType
+ * for this object to trailingType.
+ *
+ * @param desc short description of the option
+ * @param required true if option is required
+ */
+ CommandOptionRest(const std::string& desc,
+ const bool required = false)
+ : CommandOptionWithArg(trailingType, 0, "", desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionRest() {}
+
+ virtual std::string checkArguments();
+
+ protected:
+ /// Default Constructor
+ CommandOptionRest() {}
+ };
+
+ /**
+ * This is a special "command option" which is really a
+ * meta-option to make sure at least one of a set of real
+ * options has been used.
+ * \warning There's nothing to prevent you from, say, adding
+ * another meta-option to the list of mutually exclusive options
+ * contained in a CommandOptionOneOf instance (or even itself),
+ * but the behavior if you try this is undefined.
+ */
+ class CommandOptionOneOf : public CommandOption
+ {
+ public:
+ /**
+ * CommandOptionOneOf contructor. This sets the CommandOptionType
+ * for this object to metaType.
+ */
+ CommandOptionOneOf()
+ : CommandOption(noArgument, metaType, 0, "", "")
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionOneOf() {}
+
+ virtual std::string checkArguments();
+
+ /// Add an option to the list of mutually exclusive options
+ void addOption(CommandOption* opt)
+ { optionVec.push_back(opt); }
+
+ /// @return the command option that was used (NULL if none).
+ CommandOption* whichOne() const;
+
+ protected:
+ CommandOptionVec optionVec;
+ };
+
+ /**
+ * This is a special "command option" which is really a
+ * meta-option to make sure that if one of a set of real options
+ * has been used, all of the set are used.
+ * \warning There's nothing to prevent you from, say, adding
+ * another meta-option to the list of mutually exclusive options
+ * contained in a CommandOptionAllOf instance (or even itself),
+ * but the behavior if you try this is undefined.
+ */
+ class CommandOptionAllOf : public CommandOptionOneOf
+ {
+ public:
+ /**
+ * CommandOptionAllOf contructor. This sets the CommandOptionType
+ * for this object to metaType.
+ */
+ CommandOptionAllOf()
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionAllOf() {}
+
+ virtual std::string checkArguments();
+
+ /// returns the sum of all encapsulated option counts if all are in use, zero otherwise.
+ virtual unsigned long getCount() const;
+
+ private:
+ // hide this as it doesn't make sense for this class
+ CommandOption* whichOne() const;
+ };
+
+ /**
+ * This is a special "command option" which is really a
+ * meta-option to enforce mutual exclusion between a set of real
+ * options.
+ * \warning There's nothing to prevent you from, say, adding
+ * another mutex to the list of mutually exclusive options
+ * contained in a CommandOptionMutex instance (or even itself),
+ * but the behavior if you try this is undefined.
+ */
+ class CommandOptionMutex : public CommandOptionOneOf
+ {
+ public:
+ /**
+ * CommandOptionMutex contructor. This sets the CommandOptionType
+ * for this object to metaType.
+ *
+ * @param required true if option is required. This makes
+ * CommandOptionMutex do CommandOptionOneOf-type checking in
+ * addition to the exclusion (i.e. it checks to make sure at
+ * least one option was specified).
+ */
+ CommandOptionMutex(const bool required = false)
+ : doOneOfChecking(required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionMutex() {}
+
+ virtual std::string checkArguments();
+
+ protected:
+ bool doOneOfChecking;
+ };
+
+ /**
+ * This is a special "command option" which is really a
+ * meta-option to make sure that a required option is set where
+ * the requirement is based on another option (that is, if you
+ * specify one, you must have specified another).
+ * \warning There's nothing to prevent you from using other meta
+ * options as requirements, but the behavior if you try this is
+ * undefined.
+ */
+ class CommandOptionDependent : public CommandOption
+ {
+ public:
+ /**
+ * CommandOptionDependent contructor. This sets the
+ * CommandOptionType for this object to metaType. During
+ * command line option validation, if \c child is set, \c
+ * parent is checked to make sure it is also set.
+ *
+ * @param parent Command option that must be used if...
+ * @param child ...is used.
+ */
+ CommandOptionDependent(const CommandOption* parent,
+ const CommandOption* child)
+ : CommandOption(noArgument, metaType, 0, "", ""),
+ requiree(parent), requirer(child)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionDependent() {}
+
+ virtual std::string checkArguments();
+
+ protected:
+ /// Default Constructor
+ CommandOptionDependent() {}
+
+ const CommandOption *requiree, *requirer;
+ };
+
+ /**
+ * This is a special "command option" which is really a
+ * meta-option to group other options together for use in other
+ * meta-options. This particular meta-option allows a group of
+ * options to be specified in other meta-options. This option
+ * is considered "set" if any of the member options are set.
+ * This class and CommandOptionGroupAnd are designed to make up
+ * for the fact that the verification meta-options are not
+ * designed to work in other verification meta-options.
+ */
+ class CommandOptionGroupOr : public CommandOptionOneOf
+ {
+ public:
+ /**
+ * CommandOptionGroupOr contructor. Does nothing explicitly.
+ */
+ CommandOptionGroupOr()
+ {}
+
+ /// Destructor.
+ virtual ~CommandOptionGroupOr() {}
+
+ /// Do not do any checking.
+ virtual std::string checkArguments() { return std::string(); }
+
+ /// returns the sum of all encapsulated option counts.
+ virtual unsigned long getCount() const;
+
+ /// return a string containing the aggregated option strings
+ virtual std::string getOptionString() const;
+ };
+
+ /**
+ * This is a special "command option" which is really a
+ * meta-option to group other options together for use in other
+ * meta-options. This particular meta-option allows a group of
+ * options to be specified in other meta-options. This option
+ * is considered "set" iff all of the member options are set.
+ * This class and CommandOptionGroupAnd are designed to make up
+ * for the fact that the verification meta-options are not
+ * designed to work in other verification meta-options.
+ */
+ class CommandOptionGroupAnd : public CommandOptionGroupOr
+ {
+ public:
+ /**
+ * CommandOptionGroupAnd contructor. Does nothing explicitly.
+ */
+ CommandOptionGroupAnd()
+ {}
+
+ /// Destructor.
+ virtual ~CommandOptionGroupAnd() {}
+
+ /// returns the sum of all encapsulated option counts if all are in use, zero otherwise.
+ virtual unsigned long getCount() const;
+ };
+
+ //@}
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/CommandOptionParser.cpp b/dev/src/CommandOptionParser.cpp
new file mode 100644
index 0000000..8b6c5d7
--- /dev/null
+++ b/dev/src/CommandOptionParser.cpp
@@ -0,0 +1,360 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file CommandOptionParser.cpp
+ * Parse command line options.
+ */
+
+#include "CommandOptionParser.hpp"
+
+#include "StringUtils.hpp"
+
+using namespace std;
+using namespace gpstk::StringUtils;
+
+#ifdef _MSC_VER
+#define min(VAL1, VAL2) _cpp_min(VAL1, VAL2)
+#define max(VAL1, VAL2) _cpp_max(VAL1, VAL2)
+#endif
+
+namespace gpstk
+{
+
+ // parses the command line input
+ void
+ CommandOptionParser::parseOptions(int argc,
+ char* argv[])
+ {
+ // this maps the index of optionVec to the command line options
+ CommandOptionMap com;
+
+ // keep track of the order of command options
+ unsigned int order = 0;
+
+ // get the program name. If there's a / in it, take the part
+ // after the last / as the program name
+ progName = string(argv[0]);
+ string::size_type slashPos = progName.rfind('/');
+ if (slashPos != string::npos)
+ progName = progName.substr(slashPos + 1);
+
+ string shortOptString;
+ struct option* optArray = NULL;
+ unsigned long optArraySize = 0;
+
+ CommandOption *trailing = NULL;
+
+ // build the getopt and getopt_long inputs
+ CommandOptionVec::size_type index;
+ for(index = 0; index < optionVec.size(); index++)
+ {
+ // add short options
+ switch (optionVec[index]->optType)
+ {
+ case CommandOption::trailingType:
+ if (trailing)
+ errorStrings.push_back("More than one trailing argument"
+ " object used (programming error");
+ else
+ trailing = optionVec[index];
+ break;
+ case CommandOption::stdType:
+ if (optionVec[index]->shortOpt != 0)
+ {
+ shortOptString += optionVec[index]->toGetoptShortOption();
+ com[string(1,optionVec[index]->shortOpt)] = optionVec[index];
+ }
+
+ // add long options
+ if (!optionVec[index]->longOpt.empty())
+ {
+ resizeOptionArray(optArray, optArraySize);
+ optArray[optArraySize - 1] =
+ optionVec[index]->toGetoptLongOption();
+ com[optionVec[index]->longOpt] = optionVec[index];
+ }
+
+ // keep track of whether or not there are required or
+ // optional arguments
+ if (optionVec[index]->required)
+ hasRequiredArguments = true;
+ else
+ hasOptionalArguments = true;
+ break;
+ default:
+ // do nothing
+ break;
+ }
+ }
+
+ // add the getopt_long terminator value
+ resizeOptionArray(optArray, optArraySize);
+ struct option lastOption = {0,0,0,0};
+ optArray[optArraySize - 1] = lastOption;
+
+ // use '+' to make getopt not mangle the inputs (if i remember right)
+ shortOptString.insert((string::size_type)0, (string::size_type)1, '+');
+
+ int cha;
+ int optionIndex;
+
+ // disable internal error messages
+ opterr = 0;
+
+ while (optind < argc)
+ {
+ if ((cha = getopt_long(argc, argv, shortOptString.c_str(),
+ optArray, &optionIndex)) == -1)
+ {
+ if (!trailing)
+ errorStrings.push_back("Excess arguments");
+ break;
+ }
+
+ order++;
+
+ // Solaris uses '?' for all getopt errors. Linux uses '?'
+ // for unknown options and ':' for options that require
+ // arguments but don't have then. That's why the error
+ // message is "option error" cause we can't differentiate
+ // what the REAL error is...
+ if ((cha == '?') || (cha == ':'))
+ {
+ // get the argument that had the error and write an
+ // error string
+ string errorArg;
+ // for a character option error
+ if (optopt != 0)
+ errorArg = string(1, (char)optopt);
+ // for a getopt_long error
+ else
+ errorArg = argv[optind - 1];
+ errorStrings.push_back(string("Option error: " + errorArg));
+ }
+ // otherwise this is probably a found option
+ else
+ {
+ string thisOption;
+
+ // determine whether it found the short or long version
+ if (cha != 0)
+ thisOption = string(1,(char)cha);
+ else
+ thisOption = string(optArray[optionIndex].name);
+
+ // try to find the option in our option map
+ map<string, CommandOption*>::iterator itr = com.find(thisOption);
+
+ if (itr != com.end())
+ {
+ CommandOption* pickedOption = (*itr).second;
+ // if there is an value for this option...
+ if (optarg)
+ {
+ if (pickedOption->optFlag == CommandOption::noArgument)
+ {
+ errorStrings.push_back(string("Option ") +
+ thisOption +
+ string(" has an argument but it shouldn't."));
+ }
+ // add this argument to the picked option and
+ // increment the count
+ else if (pickedOption->optFlag == CommandOption::hasArgument)
+ {
+ pickedOption->value.push_back(string(optarg));
+ pickedOption->count++;
+ pickedOption->order = order;
+ }
+
+ }
+ // no value for option...
+ else
+ {
+ if (pickedOption->optFlag == CommandOption::hasArgument)
+ {
+ errorStrings.push_back(string("Option ") +
+ thisOption +
+ string(" has no argument when it should."));
+ }
+ // increment the picked option's count
+ else if (pickedOption->optFlag == CommandOption::noArgument)
+ {
+ pickedOption->count++;
+ pickedOption->order = order;
+ }
+ }
+ } // itr != end()
+ else
+ {
+ errorStrings.push_back("Unknown option error");
+ }
+ } // else cha ==
+ } // getopt_long
+
+ // check for remaining arguments
+ if (optind < argc)
+ {
+ if (trailing)
+ {
+ int i;
+ for(i = optind; i < argc; i++)
+ {
+ trailing->value.push_back(string(argv[i]));
+ trailing->count++;
+ }
+ }
+ // the case where trailing==null is handled above
+ }
+
+ for(index = 0; index < optionVec.size(); index++)
+ {
+ string retVal = optionVec[index]->checkArguments();
+ if (!retVal.empty())
+ errorStrings.push_back(retVal);
+
+ // check max count
+ if (optionVec[index]->maxCount != 0)
+ {
+ if (optionVec[index]->count > optionVec[index]->maxCount)
+ {
+ string errstr("Option ");
+ errstr += optionVec[index]->getOptionString();
+ errstr += string(" appeared more times than allowed.");
+ errorStrings.push_back(errstr);
+ }
+ }
+ }
+
+ delete [] optArray;
+ }
+
+ ostream& CommandOptionParser::dumpErrors(ostream& out)
+ {
+ vector<string>::size_type index;
+ for(index = 0; index < errorStrings.size(); index++)
+ out << errorStrings[index] << endl;
+ return out;
+ }
+
+ // prints the required arguments first (if any) then the optional
+ // ones (if any)
+ ostream& CommandOptionParser::displayUsage(ostream& out, bool doPretty)
+ {
+ CommandOptionVec::size_type index;
+ CommandOption *trailing = NULL;
+
+ char *colch = getenv("COLUMNS");
+ int columns = 80;
+ unsigned maxlen = 0;
+ if (colch)
+ {
+ string colStr(colch);
+ columns = asInt(colStr);
+ }
+
+ // find the trailing argument if any, and max option string length
+ for (index = 0; index < optionVec.size(); index++)
+ {
+ if (optionVec[index]->optType == CommandOption::trailingType)
+ trailing = optionVec[index];
+ else if (optionVec[index]->optType == CommandOption::stdType)
+ maxlen = std::max(maxlen,
+ unsigned(optionVec[index]->getFullOptionString().length()));
+ }
+
+ out << "Usage: " << progName;
+ if (hasRequiredArguments || hasOptionalArguments)
+ out << " [OPTION] ...";
+ if (trailing)
+ out << " " << trailing->description;
+ out << endl
+ << (doPretty ? prettyPrint(text,"\n","","",columns) : text);
+// << endl
+// << endl
+// << "Command options:" << endl;
+
+ for(int required = 1; required >= 0; required--)
+ {
+ if (required==1 && hasRequiredArguments)
+ out << endl << "Required arguments:" << endl;
+ else if (required==0 && hasOptionalArguments)
+ out << endl << "Optional arguments:" << endl;
+
+ for(index = 0; index < optionVec.size(); index++)
+ {
+ if ((optionVec[index]->required == (required==1)) &&
+ (optionVec[index]->optType == CommandOption::stdType))
+ {
+ string optstr(optionVec[index]->getFullOptionString());
+ string desc(optionVec[index]->description);
+ string indent(maxlen, ' ');
+
+ if(doPretty) {
+ leftJustify(optstr, maxlen);
+ prettyPrint(desc, "\n", indent, optstr, columns);
+ }
+ out << desc;
+ if(!doPretty) out << endl;
+ }
+ }
+ }
+
+ return out;
+ }
+
+ // resizes the array for getopt_long
+ void CommandOptionParser::resizeOptionArray(struct option *&oldArray,
+ unsigned long& oldSize)
+ {
+ struct option* newArray = new struct option[1 + oldSize];
+ memcpy(newArray, oldArray, oldSize * sizeof(struct option));
+ delete [] oldArray;
+ oldArray = newArray;
+ newArray = NULL;
+ oldSize += 1;
+ }
+
+} // end namespace gpstk
diff --git a/dev/src/CommandOptionParser.hpp b/dev/src/CommandOptionParser.hpp
new file mode 100644
index 0000000..10f07d1
--- /dev/null
+++ b/dev/src/CommandOptionParser.hpp
@@ -0,0 +1,156 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file CommandOptionParser.hpp
+ * Parse command line options
+ */
+
+#ifndef COMMANDOPTIONPARSER_HPP
+#define COMMANDOPTIONPARSER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "CommandOption.hpp"
+
+#include <vector>
+#include <map>
+#include <ostream>
+
+namespace gpstk
+{
+ /** @addtogroup commandoptiongroup Command-Line Options */
+ //@{
+
+ /**
+ * This class parses the command line options and modifies the
+ * corresponding CommandOptions. By default, any CommandOptions you
+ * create will be put on a static vector<CommandOption> which is used
+ * by CommandOptionParser. You can make your own as well but that
+ * isn't necessary. You can also use addOption() to add individual
+ * CommandOptions to the parser, but again this isn't necessary as the
+ * default list is usually sufficient.
+ *
+ * Call parseOptions() to process the command line, then
+ * call hasErrors() to see if there
+ * were any problems parsing the string. Errors can occur when
+ * a required option isn't found on the command line, when an option
+ * requiring an argument doesn't have one, or when an argument appers
+ * more than its maxCount number of times among other errors.
+ * If so, use dumpErrors() to
+ * display the errors to an output stream, then use
+ * displayUsage() to display a well formatted list of the correct
+ * command line options. Of
+ * course, you can just as well ignore any command line
+ * errors. After hitting an error (which most often happens when
+ * it hits an argument that has no CommandOption), you can use
+ * CommandOptionRest to get the unprocessed command line
+ * options.
+ *
+ * @sa the getopttest.cpp file in the test code for some examples.
+ */
+ class CommandOptionParser
+ {
+ public:
+ /// Typedef for a map between the command line option (-f) and the
+ /// associated CommandOption.
+ typedef std::map<std::string, gpstk::CommandOption*> CommandOptionMap;
+
+ /**
+ * Constructor given a text description of the program.
+ * @param description a short description of this program
+ * @param optList a CommandOptionVec with the list of
+ * CommandOptions for this parser.
+ */
+ CommandOptionParser(const std::string& description,
+ const CommandOptionVec optList =
+ defaultCommandOptionList)
+ : optionVec(optList), hasRequiredArguments(false),
+ hasOptionalArguments(false), text(description)
+
+ {}
+
+ /// Adds the CommandOption to the list for parsing.
+ CommandOptionParser& addOption(gpstk::CommandOption& co)
+ { optionVec.push_back(&co); return *this; }
+
+ /// Parses the command line.
+ void parseOptions(int argc, char* argv[]);
+
+ /// Returns true if any processing errors occurred.
+ bool hasErrors() { return !errorStrings.empty(); }
+ /// Writes the errors to \c out.
+ std::ostream& dumpErrors(std::ostream& out);
+
+ /** Writes the arguments nicely to the output.
+ * @param out ostream on which to write
+ * @param doPretty if true (the default), 'pretty print' descriptions
+ */
+ std::ostream& displayUsage(std::ostream& out, bool doPretty=true);
+
+ private:
+ /// changes the size of the option array for getopt_long.
+ void resizeOptionArray(struct option* &oldArray, unsigned long& oldSize);
+
+ /// The vector of CommandOptions for the parser
+ CommandOptionVec optionVec;
+ /// The vector of error strings for displaying to the user.
+ std::vector<std::string> errorStrings;
+ /// The vector of unprocessed command line arguments.
+ //std::vector<std::string> remainingArguments;
+
+ /// whether or not this command line has any rrequired options
+ bool hasRequiredArguments;
+ /// whether or not this command line has optional options
+ bool hasOptionalArguments;
+
+ /// the description of this program
+ std::string text;
+
+ /// the name of this program
+ std::string progName;
+ };
+ //@}
+}
+
+#endif
diff --git a/dev/src/CommandOptionWithCommonTimeArg.cpp b/dev/src/CommandOptionWithCommonTimeArg.cpp
new file mode 100644
index 0000000..ead373f
--- /dev/null
+++ b/dev/src/CommandOptionWithCommonTimeArg.cpp
@@ -0,0 +1,82 @@
+#pragma ident "$Id: CommandOptionWithCommonTimeArg.cpp 274 2006-10-27 14:24:35Z rickmach $"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file CommandOptionWithCommonTimeArg.cpp
+ * Command line options with time arguments
+ */
+
+#include "StringUtils.hpp"
+#include "TimeString.hpp"
+#include "CommandOptionWithCommonTimeArg.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ string CommandOptionWithCommonTimeArg :: checkArguments()
+ {
+ string errstr = CommandOptionWithAnyArg::checkArguments();
+
+ if (errstr != string())
+ return errstr;
+
+ vector<string>::size_type vecindex;
+ for(vecindex = 0; vecindex < value.size(); vecindex++)
+ {
+ if (timeSpec != string())
+ {
+ try
+ {
+ CommonTime t;
+ scanTime(t, value[vecindex], timeSpec);
+ times.push_back(t);
+ }
+ catch (...)
+ {
+ errstr += "\"" + value[vecindex] + "\" is not a valid time.";
+ }
+ }
+ else
+ errstr += "\"" + value[vecindex] + "\" is not a valid time.";
+ }
+
+ return errstr;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/CommandOptionWithCommonTimeArg.hpp b/dev/src/CommandOptionWithCommonTimeArg.hpp
new file mode 100644
index 0000000..a2b7665
--- /dev/null
+++ b/dev/src/CommandOptionWithCommonTimeArg.hpp
@@ -0,0 +1,113 @@
+#pragma ident "$Id: CommandOptionWithCommonTimeArg.hpp 70 2006-08-01 18:36:21Z ehagen $"
+
+/**
+ * @file CommandOptionWithCommonTimeArg.hpp
+ * Command line options with time arguments
+ */
+
+#ifndef COMMANDOPTIONWITHTIMEARG_HPP
+#define COMMANDOPTIONWITHTIMEARG_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "CommandOption.hpp"
+#include "CommonTime.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup commandoptiongroup */
+ //@{
+
+ /** @ingroup timegroup
+ * @brief Command-line option class for processing time strings.
+ * This class is allows the programmer to add command-line
+ * options to an application that can parse strings containing
+ * representations of time. The programmer must specify the
+ * format to be accepted. Refer to each TimeTag class' getDefaultFormat() for
+ * details on the formatting specifications. */
+ class CommandOptionWithCommonTimeArg : public gpstk::CommandOptionWithAnyArg
+ {
+ public:
+ /** Constructor
+ * @param shOpt The one character command line option. Set to 0
+ * if unused.
+ * @param loOpt The long command option. Set to std::string()
+ * if unused.
+ * @param timeFormat format for scanning argument into a CommonTime
+ * (\see scanTime() in TimeString.hpp and TimeString.cpp for details).
+ * @param desc A string describing what this option does.
+ * @param required Set to true if this is a required option.
+ */
+ CommandOptionWithCommonTimeArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& timeFormat,
+ const std::string& desc,
+ const bool required = false)
+ : gpstk::CommandOptionWithAnyArg(shOpt, loOpt, desc, required),
+ timeSpec(timeFormat)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithCommonTimeArg() {}
+
+ /** Returns a string with the argument format (just "TIME",
+ * not scanning format). */
+ virtual std::string getArgString() const
+ { return "TIME"; }
+
+ /// Validate arguments passed using this option (and store them).
+ virtual std::string checkArguments();
+
+ /// Return the times scanned in from the command line.
+ std::vector<CommonTime> getTime() const { return times; }
+
+ protected:
+ /// Collection of times scanned in from the command line.
+ std::vector<CommonTime> times;
+ /// Format used to scan times in.
+ std::string timeSpec;
+
+ /// Default Constructor
+ CommandOptionWithCommonTimeArg() {}
+
+ }; // class CommandOptionWithCommonTimeArg
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/CommandOptionWithPositionArg.cpp b/dev/src/CommandOptionWithPositionArg.cpp
new file mode 100644
index 0000000..9add53b
--- /dev/null
+++ b/dev/src/CommandOptionWithPositionArg.cpp
@@ -0,0 +1,91 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file CommandOptionWithPositionArg.cpp
+ * Command line options with position (class Position) arguments
+ */
+
+#include "StringUtils.hpp"
+#include "CommandOptionWithPositionArg.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ string CommandOptionWithPositionArg :: checkArguments()
+ {
+ string errstr = CommandOptionWithAnyArg::checkArguments();
+
+ if( errstr != string() )
+ return errstr;
+
+ vector<string>::size_type vecIndex;
+ for( vecIndex = 0; vecIndex < value.size(); vecIndex++ )
+ {
+ string thisPosSpec = getPositionSpec( vecIndex );
+ if( thisPosSpec != string() )
+ {
+ try
+ {
+ Position pos;
+ pos.setToString( value[vecIndex], thisPosSpec );
+ positions.push_back( pos );
+ }
+ catch (...)
+ {
+ errstr += "\"" + value[vecIndex] + "\" is not a valid position.";
+ }
+ }
+ else
+ {
+ errstr += "\"" + value[vecIndex] + "\" is not a valid position.";
+ }
+ }
+
+ return errstr;
+ } // end of checkArguments()
+
+}
diff --git a/dev/src/CommandOptionWithPositionArg.hpp b/dev/src/CommandOptionWithPositionArg.hpp
new file mode 100644
index 0000000..bfe725d
--- /dev/null
+++ b/dev/src/CommandOptionWithPositionArg.hpp
@@ -0,0 +1,131 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file CommandOptionWithPositionArg.hpp
+ * Command line options with position (class Position) arguments.
+ */
+
+#ifndef COMMANDOPTIONWITHPOSITIONARG_HPP
+#define COMMANDOPTIONWITHPOSITIONARG_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "CommandOption.hpp"
+#include "Position.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup commandoptiongroup */
+ //@{
+
+ /** @ingroup positiongroup
+ * @brief Command-line option class for processing position strings.
+ * This class allows the programmer to add command-line options
+ * to an application that can parse strings containing representations
+ * of position. The programmer must specify the format to be
+ * accepted. Refer to Position::printf() for details on the formatting
+ * specifications.
+ */
+ class CommandOptionWithPositionArg : public gpstk::CommandOptionWithAnyArg
+ {
+ public:
+ /** Constructor
+ * @param shOpt The one character command line option. Set to 0
+ * if unused.
+ * @param loOpt The long command option. Set to std::string()
+ * if unused.
+ * @param posFormat format for scanning argument into a Position
+ * (\see Position::setToString() for details).
+ * @param desc A string describing what this option does.
+ * @param required Set to true if this is a required option.
+ */
+ CommandOptionWithPositionArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& posFormat,
+ const std::string& desc,
+ const bool required = false)
+ : gpstk::CommandOptionWithAnyArg(shOpt, loOpt, desc, required),
+ posSpec(posFormat)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithPositionArg()
+ {}
+
+ /** Returns a string with the argument format (just "POSITION",
+ * not scanning format).
+ */
+ virtual std::string getArgString() const
+ { return "POSITION"; }
+
+ /// Validate arguments passed using this option (and store them).
+ virtual std::string checkArguments();
+
+ /// Return the positions scanned in from the command line.
+ std::vector<Position> getPosition() const
+ { return positions; }
+
+ protected:
+ /// Collection of positions scanned in from the command line.
+ std::vector<Position> positions;
+
+ /// Format used to scan positions in.
+ std::string posSpec;
+
+ /// Default Constructor
+ CommandOptionWithPositionArg()
+ {}
+
+ /// Return the appropriate position scanning format for value[index].
+ virtual std::string
+ getPositionSpec(std::vector<std::string>::size_type index) const
+ { return posSpec; }
+
+ }; // end of class CommandOptionWithPositionArg
+
+ //@}
+
+}
+
+#endif // COMMANDOPTIONWITHPOSITIONARG_HPP
diff --git a/dev/src/CommandOptionWithTimeArg.cpp b/dev/src/CommandOptionWithTimeArg.cpp
new file mode 100644
index 0000000..c7732cc
--- /dev/null
+++ b/dev/src/CommandOptionWithTimeArg.cpp
@@ -0,0 +1,109 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file CommandOptionWithTimeArg.cpp
+ * Command line options with time (class DayTime) arguments
+ */
+
+#include "StringUtils.hpp"
+#include "CommandOptionWithTimeArg.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ string CommandOptionWithTimeArg :: checkArguments()
+ {
+ string errstr = CommandOptionWithAnyArg::checkArguments();
+
+ if (errstr != string())
+ return errstr;
+
+ vector<string>::size_type vecindex;
+ for(vecindex = 0; vecindex < value.size(); vecindex++)
+ {
+ string thisTimeSpec = getTimeSpec(vecindex);
+ if (thisTimeSpec != string())
+ {
+ try {
+ DayTime dt;
+ dt.setToString(value[vecindex], thisTimeSpec);
+ times.push_back(dt);
+ }
+ catch (...)
+ {
+ errstr += "\"" + value[vecindex] + "\" is not a valid time.";
+ }
+ }
+ else
+ errstr += "\"" + value[vecindex] + "\" is not a valid time.";
+ }
+
+ return errstr;
+ }
+
+ string CommandOptionWithSimpleTimeArg :: getTimeSpec
+ (vector<string>::size_type index) const
+ {
+ int numwords = gpstk::StringUtils::numWords(value[index]);
+ string thisTimeSpec;
+ switch (numwords)
+ {
+ case 1:
+ thisTimeSpec = "%m/%d/%Y";
+ break;
+ case 2:
+ thisTimeSpec = "%Y %j";
+ break;
+ case 3:
+ thisTimeSpec = "%Y %j %s";
+ break;
+ }
+
+ return thisTimeSpec;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/CommandOptionWithTimeArg.hpp b/dev/src/CommandOptionWithTimeArg.hpp
new file mode 100644
index 0000000..47827ae
--- /dev/null
+++ b/dev/src/CommandOptionWithTimeArg.hpp
@@ -0,0 +1,162 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file CommandOptionWithTimeArg.hpp
+ * Command line options with time (class DayTime) arguments
+ */
+
+#ifndef COMMANDOPTIONWITHTIMEARG_HPP
+#define COMMANDOPTIONWITHTIMEARG_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "CommandOption.hpp"
+#include "DayTime.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup commandoptiongroup */
+ //@{
+
+ /** @ingroup timegroup
+ * @brief Command-line option class for processing time strings.
+ * This class is allows the programmer to add command-line
+ * options to an application that can parse strings containing
+ * representations of time. The programmer must specify the
+ * format to be accepted. Refer to DayTime::printf() for
+ * details on the formatting specifications. */
+ class CommandOptionWithTimeArg : public gpstk::CommandOptionWithAnyArg
+ {
+ public:
+ /** Constructor
+ * @param shOpt The one character command line option. Set to 0
+ * if unused.
+ * @param loOpt The long command option. Set to std::string()
+ * if unused.
+ * @param timeFormat format for scanning argument into a DayTime
+ * (\see DayTime::setToString() for details).
+ * @param desc A string describing what this option does.
+ * @param required Set to true if this is a required option.
+ */
+ CommandOptionWithTimeArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& timeFormat,
+ const std::string& desc,
+ const bool required = false)
+ : gpstk::CommandOptionWithAnyArg(shOpt, loOpt, desc, required),
+ timeSpec(timeFormat)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithTimeArg() {}
+
+ /** Returns a string with the argument format (just "TIME",
+ * not scanning format). */
+ virtual std::string getArgString() const
+ { return "TIME"; }
+
+ /// Validate arguments passed using this option (and store them).
+ virtual std::string checkArguments();
+
+ /// Return the times scanned in from the command line.
+ std::vector<DayTime> getTime() const { return times; }
+
+ protected:
+ /// Collection of times scanned in from the command line.
+ std::vector<DayTime> times;
+ /// Format used to scan times in.
+ std::string timeSpec;
+
+ /// Default Constructor
+ CommandOptionWithTimeArg() {}
+
+ /// Return the appropriate time scanning format for value[index].
+ virtual std::string getTimeSpec(std::vector<std::string>::size_type index) const
+ { return timeSpec; }
+ }; // class CommandOptionWithTimeArg
+
+
+ /** @ingroup timegroup
+ * This class is similar to CommandOptionWithTimeArg, but
+ * accepts several different time formats simultaneously.
+ * The user can use any of the following time formats with this
+ * option:
+ * - month/day/year
+ * - year day-of-year
+ * - year day-of-year seconds-of-day
+ */
+ class CommandOptionWithSimpleTimeArg : public CommandOptionWithTimeArg
+ {
+ public:
+ /** Constructor
+ * @param shOpt The one character command line option. Set to 0
+ * if unused.
+ * @param loOpt The long command option. Set to std::string()
+ * if unused.
+ * @param desc A string describing what this option does.
+ * @param required Set to true if this is a required option.
+ */
+ CommandOptionWithSimpleTimeArg(const char shOpt,
+ const std::string& loOpt,
+ const std::string& desc,
+ const bool required = false)
+ : CommandOptionWithTimeArg(shOpt, loOpt, "", desc, required)
+ {}
+
+ /// Destructor
+ virtual ~CommandOptionWithSimpleTimeArg() {}
+
+ protected:
+ /// Default Constructor
+ CommandOptionWithSimpleTimeArg() {}
+
+ /// Return the appropriate time scanning format for value[index].
+ virtual std::string getTimeSpec(std::vector<std::string>::size_type index) const;
+ }; // class CommandOptionWithSimpleTimeArg
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/CommonTime.cpp b/dev/src/CommonTime.cpp
new file mode 100644
index 0000000..87ba144
--- /dev/null
+++ b/dev/src/CommonTime.cpp
@@ -0,0 +1,338 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "CommonTime.hpp"
+#include "TimeConstants.hpp"
+
+#include "MathBase.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ // 'julian day' of earliest epoch expressible by CommonTime; 1/1/4713 B.C.
+ const long CommonTime::BEGIN_LIMIT_JDAY = 0;
+ // 'julian day' of latest 'julian day' expressible by CommonTime,
+ // 1/1/4713 A.D.
+ const long CommonTime::END_LIMIT_JDAY = 3442448;
+
+ // earliest representable CommonTime
+ const CommonTime
+ CommonTime::BEGINNING_OF_TIME( CommonTime::BEGIN_LIMIT_JDAY, 0, 0.0 );
+ // latest representable CommonTime
+ const CommonTime
+ CommonTime::END_OF_TIME( CommonTime::END_LIMIT_JDAY, 0, 0.0 ) ;
+
+ CommonTime::CommonTime( const CommonTime& right )
+ throw()
+ : m_day( right.m_day ), m_msod( right.m_msod ), m_fsod( right.m_fsod )
+ {}
+
+ CommonTime& CommonTime::operator=( const CommonTime& right )
+ throw()
+ {
+ m_day = right.m_day;
+ m_msod = right.m_msod;
+ m_fsod = right.m_fsod;
+ return *this;
+ }
+
+ CommonTime& CommonTime::set( long day,
+ long sod,
+ double fsod )
+ throw( gpstk::InvalidParameter )
+ {
+ // Use temp variables so that we don't modify our
+ // data members until we know these values are good.
+ if( day < BEGIN_LIMIT_JDAY || day > END_LIMIT_JDAY )
+ {
+ gpstk::InvalidParameter ip( "Invalid day: "
+ + gpstk::StringUtils::asString( day ) );
+ GPSTK_THROW( ip );
+ }
+
+ if( sod < 0 || sod >= SEC_PER_DAY )
+ {
+ gpstk::InvalidParameter ip( "Invalid seconds of day: "
+ + gpstk::StringUtils::asString( sod ) );
+ GPSTK_THROW( ip );
+ }
+
+ if( fsod < 0.0 || fsod >= 1 )
+ {
+ gpstk::InvalidParameter ip( "Invalid fractional-seconds: "
+ + gpstk::StringUtils::asString( fsod ) );
+ GPSTK_THROW( ip );
+ }
+
+ // get the number of milliseconds in the fractional seconds argument
+ long msec = static_cast<long>( fsod * MS_PER_SEC );
+
+ // subtract whole milliseconds to obtain the "fractional milliseconds"
+ fsod -= static_cast<double>( msec ) * SEC_PER_MS;
+
+ m_day = day;
+ m_msod = sod * MS_PER_SEC + msec;
+ m_fsod = fsod;
+
+ return *this;
+ }
+
+ CommonTime& CommonTime::set( long day,
+ double sod )
+ throw( gpstk::InvalidParameter )
+ {
+ // separate whole and fractional seconds, then use set()
+ long sec = static_cast<long>( sod );
+ sod -= sec;
+
+ return set( day, sec, sod );
+ }
+
+ CommonTime& CommonTime::set( double day = 0.0 )
+ throw( gpstk::InvalidParameter )
+ {
+ // separate whole and fractional days
+ long lday = static_cast<long>( day );
+ double sec = ( day - lday ) * SEC_PER_DAY;
+ return set( lday, sec );
+ }
+
+ CommonTime& CommonTime::setInternal( long day,
+ long msod,
+ double fsod )
+ throw( gpstk::InvalidParameter )
+ {
+ if( day < BEGIN_LIMIT_JDAY || day > END_LIMIT_JDAY )
+ {
+ gpstk::InvalidParameter ip( "Invalid day: "
+ + gpstk::StringUtils::asString( day ) );
+ GPSTK_THROW( ip );
+ }
+
+ if( msod < 0 || msod >= MS_PER_DAY )
+ {
+ gpstk::InvalidParameter ip( "Invalid milliseconds of day: "
+ + gpstk::StringUtils::asString( msod ) );
+ GPSTK_THROW( ip );
+ }
+
+ if( fsod < 0.0 || fsod >= SEC_PER_MS )
+ {
+ gpstk::InvalidParameter ip( "Invalid fractional-milliseconds: "
+ + gpstk::StringUtils::asString( fsod ) );
+ GPSTK_THROW( ip );
+ }
+
+ m_day = day;
+ m_msod = msod;
+ m_fsod = fsod;
+
+ return *this;
+ }
+
+ void CommonTime::get( long& day,
+ long& sod,
+ double& fsod ) const
+ throw()
+ {
+ day = m_day;
+ sod = m_msod / MS_PER_SEC;
+ long msec = m_msod - sod * MS_PER_SEC; // m_msod % MS_PER_SEC
+ fsod = static_cast<double>( msec ) * SEC_PER_MS + m_fsod;
+ }
+
+ void CommonTime::get( long& day,
+ double& sod ) const
+ throw()
+ {
+ day = m_day;
+ sod = m_msod / MS_PER_SEC + m_fsod;
+ }
+
+ void CommonTime::get( double& day ) const
+ throw()
+ {
+ // convert everything to days
+ day = static_cast<double>( m_day ) +
+ static_cast<double>( m_msod ) * MS_PER_DAY +
+ m_fsod * SEC_PER_DAY;
+ }
+
+ double CommonTime::getDays() const
+ throw()
+ {
+ double day;
+ get( day );
+ return day;
+ }
+
+ double CommonTime::getSecondOfDay() const
+ throw()
+ {
+ long day;
+ double sod;
+ get( day, sod );
+ return sod;
+ }
+
+ double CommonTime::operator-( const CommonTime& right ) const
+ throw()
+ {
+ return ( SEC_PER_DAY * static_cast<double>( m_day - right.m_day ) +
+ SEC_PER_MS * static_cast<double>( m_msod - right.m_msod ) +
+ m_fsod - right.m_fsod ) ;
+ }
+
+ CommonTime CommonTime::operator+( double sec ) const
+ throw( gpstk::InvalidRequest )
+ {
+ return CommonTime( *this ).addSeconds( sec );
+ }
+
+ CommonTime CommonTime::operator-( double sec ) const
+ throw( gpstk::InvalidRequest )
+ {
+ return CommonTime( *this ).addSeconds( -sec );
+ }
+
+ CommonTime& CommonTime::operator+=( double sec )
+ throw( gpstk::InvalidRequest )
+ {
+ addSeconds( sec );
+ return *this;
+ }
+
+ CommonTime& CommonTime::operator-=( double sec )
+ throw( gpstk::InvalidRequest )
+ {
+ addSeconds( -sec );
+ return *this;
+ }
+
+ CommonTime& CommonTime::addSeconds( double seconds )
+ throw( InvalidRequest )
+ {
+ long days=0, ms=0;
+ if ( ABS(seconds) >= SEC_PER_DAY )
+ {
+ days = static_cast<long>( seconds * DAY_PER_SEC );
+ seconds -= days * SEC_PER_DAY;
+ }
+
+ if ( ABS(seconds) >= SEC_PER_MS )
+ {
+ ms = static_cast<long>( seconds * MS_PER_SEC );
+ seconds -= static_cast<double>( ms ) * SEC_PER_MS;
+ }
+
+ add(days, ms, seconds);
+ return *this;
+ }
+
+ CommonTime& CommonTime::addSeconds( long seconds )
+ throw( gpstk::InvalidRequest )
+ {
+ long days( 0 );
+ if( ABS( seconds ) > SEC_PER_DAY )
+ {
+ days = seconds / SEC_PER_DAY;
+ seconds -= days * SEC_PER_DAY; // seconds %= SEC_PER_DAY
+ }
+ add( days, seconds * MS_PER_SEC, 0. );
+
+ // How about this?
+ // add( seconds / SEC_PER_DAY,
+ // seconds % SEC_PER_DAY * MS_PER_SEC,
+ // 0 );
+
+ return *this;
+ }
+
+ CommonTime& CommonTime::addDays( long days )
+ throw( gpstk::InvalidRequest )
+ {
+ add( days, 0, 0.0 );
+ return *this;
+ }
+
+ CommonTime& CommonTime::addMilliseconds( long msec )
+ throw( InvalidRequest )
+ {
+ add( 0, msec, 0.0 );
+ return *this;
+ }
+
+ /// protected functions
+ bool CommonTime::add( long days,
+ long msod,
+ double fsod )
+ throw()
+ {
+ m_day += days;
+ m_msod += msod;
+ m_fsod += fsod;
+ return normalize();
+ }
+
+ bool CommonTime::normalize()
+ throw()
+ {
+ if( ABS( m_fsod ) >= SEC_PER_MS )
+ {
+ long ms = static_cast<long>( m_fsod * MS_PER_SEC );
+ m_msod += ms;
+ m_fsod -= static_cast<double>( ms ) * SEC_PER_MS;
+ }
+
+ if( ABS( m_msod ) >= MS_PER_DAY )
+ {
+ long day = m_msod / MS_PER_DAY;
+ m_day += day;
+ m_msod -= day * MS_PER_DAY;
+ }
+
+ if( ABS(m_fsod) < 1e-15 )
+ {
+ m_fsod = 0.0;
+ }
+
+ if( m_fsod < 0 )
+ {
+ m_fsod += 1;
+ --m_msod;
+ }
+
+ if( m_msod < 0 )
+ {
+ m_msod = m_msod + MS_PER_DAY;
+ --m_day;
+ }
+
+ return ( ( m_day >= BEGIN_LIMIT_JDAY ) &&
+ ( m_day < END_LIMIT_JDAY ) );
+ }
+
+} // namespace
diff --git a/dev/src/CommonTime.hpp b/dev/src/CommonTime.hpp
new file mode 100644
index 0000000..11b9abc
--- /dev/null
+++ b/dev/src/CommonTime.hpp
@@ -0,0 +1,356 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_COMMONTIME_HPP
+#define GPSTK_COMMONTIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is the common time format that all time formats convert to when
+ * converting between themselves. This allows the decoupling of
+ * inter-format conversions.
+ *
+ * The interface is based on three quantites: days, seconds of day, and
+ * fractional seconds of day. The internal representation, however, is
+ * slightly different. It consists of a day, milliseconds of day, and
+ * fractional seconds of day. Their valid ranges are shown below:
+ *
+ * Quantity >= <
+ * -------- --- ---
+ * day 0 2^31
+ * msod 0 86400000
+ * fsod 0 0.001
+ *
+ * The above is somewhat difficult to grasp at first, but the reason for
+ * keeping the fractional part of time in units of seconds is due to the
+ * fact that the time formats usually break at seconds and partial seconds
+ * not at milliseconds and partial milliseconds. By keeping the value in
+ * seconds, we save ourselves additional work and loss of precision
+ * through conversion of fractional seconds to fractional milliseconds.
+ */
+ class CommonTime
+ {
+ public:
+ /**
+ * @defgroup ctc CommonTime Constants
+ */
+ //@{
+ /// 'julian day' of earliest epoch expressible by CommonTime:
+ /// 1/1/4713 B.C.
+ static const long BEGIN_LIMIT_JDAY;
+ /// 'julian day' of latest epoch expressible by CommonTime:
+ /// 1/1/4713 A.D.
+ static const long END_LIMIT_JDAY;
+ /// earliest representable CommonTime
+ static const CommonTime BEGINNING_OF_TIME;
+ /// latest representable CommonTime
+ static const CommonTime END_OF_TIME;
+
+ //@}
+
+ /**
+ * @defgroup ctbo CommonTime Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements default to zero.
+ * @see CommonTime::set()
+ */
+ CommonTime( long day = 0,
+ long sod = 0,
+ double fsod = 0.0 )
+ throw( gpstk::InvalidParameter )
+ { set( day, sod, fsod ); }
+
+ /**
+ * Constructor that accepts days and second of day.
+ * All elements default to zero.
+ */
+ CommonTime( long day,
+ double sod )
+ throw( gpstk::InvalidParameter )
+ { set( day, sod ); }
+
+ /**
+ * Constructor that accepts days only.
+ * All elements default to zero.
+ */
+ CommonTime( double day )
+ throw( gpstk::InvalidParameter )
+ { set( day ); }
+
+ /**
+ * Copy Constructor.
+ * @param right a const reference to the CommonTime object to copy.
+ */
+ CommonTime( const CommonTime& right )
+ throw();
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the CommonTime object to copy.
+ * @return a reference to this CommonTime object.
+ */
+ CommonTime& operator=( const CommonTime& right )
+ throw();
+
+ /// Destructor.
+ ~CommonTime()
+ throw()
+ {}
+ //@}
+
+ /**
+ * @defgroup ctam CommonTime Accessor Methods
+ */
+ //@{
+ /**
+ * Set method that accepts values for day, seconds of day and
+ * fractional seconds of day. It also checks the validity of the
+ * arguments and throws an exception if any values are out of bounds.
+ */
+ CommonTime& set( long day,
+ long sod,
+ double fsod = 0.0 )
+ throw( gpstk::InvalidParameter );
+
+ /**
+ * Set method that accepts values for day and seconds of day. It also
+ * checks the validity of the arguments and throws an exception if any
+ * values are out of bounds.
+ */
+ CommonTime& set( long day,
+ double sod = 0.0 )
+ throw( gpstk::InvalidParameter );
+
+ /**
+ * Set method that accepts a value for day. It also checks the
+ * validity of the argument and throws an exception if its value is
+ * out of bounds.
+ */
+ CommonTime& set( double day )
+ throw( gpstk::InvalidParameter );
+
+ /**
+ * Set internal values method. Set the data members of this object
+ * directly. Checks the validity of the given time representation
+ * and throws an exception if any values are out of bounds.
+ */
+ CommonTime& setInternal( long day = 0,
+ long msod = 0,
+ double fsod = 0.0 )
+ throw( gpstk::InvalidParameter );
+
+ /**
+ * Get method. Obtain values in days, second of day and fractional
+ * second of day.
+ */
+ void get( long& day,
+ long& sod,
+ double& fsod ) const
+ throw();
+
+ /**
+ * Get method through which one may obtain values for day and
+ * second of day which includes the fractional second of day.
+ */
+ void get( long& day,
+ double& sod ) const
+ throw();
+
+ /**
+ * Get method through which one may obtain a value for day which
+ * includes the fraction of a day.
+ */
+ void get( double& day ) const
+ throw();
+
+ /**
+ * Get internal values method. Obtain the values stored within this
+ * object.
+ */
+ void getInternal( long& day,
+ long& msod,
+ double& fsod ) const
+ throw()
+ { day = m_day; msod = m_msod; fsod = m_fsod; }
+
+ /// Obtain the time, in days, including the fraction of a day.
+ double getDays() const
+ throw();
+
+ /// Obtain the seconds of day ( ignoring the day ).
+ double getSecondOfDay() const
+ throw();
+
+ //@}
+
+ /**
+ * @defgroup ctao CommonTime Arithmetic Operations
+ */
+ //@{
+ /**
+ * Difference two Common Time objects.
+ * @param right CommonTime to subtract from this one
+ * @param reutrn difference in seconds
+ */
+ double operator-( const CommonTime& right ) const
+ throw();
+
+ /**
+ * Add seconds to a copy of this CommonTime.
+ * @param sec the number of seconds to add to a copy of this CommonTime
+ * @return the new CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime operator+( double seconds ) const
+ throw( InvalidRequest );
+
+ /**
+ * Subtract seconds from a copy of this CommonTime.
+ * @param sec the number of seconds to subtract from a copy of this
+ * CommonTime
+ * @return the new CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime operator-( double seconds ) const
+ throw( InvalidRequest );
+
+ /**
+ * Add seconds to this CommonTime.
+ * @param sec the number of seconds to add to this CommonTime.
+ * @return a reference to this CommonTime
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime& operator+=( double seconds )
+ throw( InvalidRequest );
+
+ /**
+ * Subtract seconds from this CommonTime.
+ * @param sec the number of seconds to subtract from this CommonTime
+ * @return a reference to this CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime& operator-=( double seconds )
+ throw( InvalidRequest );
+
+ /**
+ * Add seconds to this CommonTime object.
+ * This is the workhorse for the addition/subtraction operators.
+ * @param sec the number of seconds to add to this CommonTime
+ * @return a reference to this CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime& addSeconds( double seconds )
+ throw( InvalidRequest );
+
+ /**
+ * Add integer days to this CommonTime object.
+ * param days the number of days to add to this CommonTime
+ * @return a reference to this CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime& addDays( long days )
+ throw( InvalidRequest );
+
+ /**
+ * Add integer seconds to this CommonTime object.
+ * @param sec the number of seconds to add to this CommonTime
+ * @return a reference to this CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime& addSeconds( long seconds )
+ throw( InvalidRequest );
+
+ /**
+ * Add integer milliseconds to this CommonTime object.
+ * @param ms the number of milliseconds to add to this CommonTime
+ * @return a reference to this CommonTime object
+ * @throws InvalidRequest on over-/under-flow
+ */
+ CommonTime& addMilliseconds( long ms )
+ throw( InvalidRequest );
+ //@}
+
+ /**
+ * @defgroup ctco CommonTime Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the CommonTime object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const CommonTime& right ) const
+ throw();
+ bool operator!=( const CommonTime& right ) const
+ throw();
+ bool operator<( const CommonTime& right ) const
+ throw();
+ bool operator>( const CommonTime& right ) const
+ throw();
+ bool operator<=( const CommonTime& right ) const
+ throw();
+ bool operator>=( const CommonTime& right ) const
+ throw();
+ //@}
+
+ void reset()
+ throw()
+ { m_day = m_msod = 0; m_fsod = 0.0; }
+
+ protected:
+
+ /**
+ * Add the following quantities to this CommonTime object.
+ * @param days the number of days to add
+ * @param msod the number of milliseconds to add
+ * @param fsod the number of fractional seconds to add
+ * @return the result of calling the normalize() function
+ */
+ bool add( long days,
+ long msod,
+ double fsod )
+ throw();
+
+ /// Normalize the values. This takes out of bounds values and rolls
+ /// other values appropriately.
+ /// @return true if m_day is valid, false otherwise
+ bool normalize()
+ throw();
+
+ long m_day; //< days (as a Julian Day) 0 <= val < 2^31
+ long m_msod; //< milliseconds-of-day 0 <= val < 86400000
+ double m_fsod; //< fractional seconds-of-day 0 <= val < 0.001
+ };
+
+} // namespace
+
+#endif // GPSTK_COMMONTIME_HPP
diff --git a/dev/src/ComputeCombination.hpp b/dev/src/ComputeCombination.hpp
new file mode 100644
index 0000000..c77393c
--- /dev/null
+++ b/dev/src/ComputeCombination.hpp
@@ -0,0 +1,154 @@
+
+/**
+ * @file ComputeCombination.hpp
+ * This is the base class to ease computing combination of data for GNSS data structures.
+ */
+
+#ifndef Compute_Combination_GPSTK
+#define Compute_Combination_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /// This class eases computing combination of data for GNSS data structures.
+ class ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputeCombination() {};
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ double value1(0.0);
+ double value2(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ value1 = (*it).second(type1);
+ value2 = (*it).second(type2);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ // If everything is OK, then get the new value inside the structure
+ (*it).second[resultType] = getCombination(value1, value2);
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Combine(gnssSatTypeValue& gData)
+ {
+ (*this).Combine(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Combine(gnssRinex& gData)
+ {
+ (*this).Combine(gData.body);
+ return gData;
+ };
+
+
+ /// Destructor
+ virtual ~ComputeCombination() {};
+
+
+ protected:
+ /// Compute the combination of observables. You must define this method according to your specific combination.
+ virtual double getCombination(const double& obs1, const double& obs2) = 0;
+
+ /// Type of observation to be combined. Nro 1.
+ TypeID type1;
+
+ /// Type of observation to be combined. Nro 2.
+ TypeID type2;
+
+ /// Type assigned to the resulting combination.
+ TypeID resultType;
+
+
+ }; // end class ComputeCombination
+
+
+ /// Input operator from gnssSatTypeValue to ComputeCombination.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, ComputeCombination& compComb)
+ {
+ compComb.Combine(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to ComputeCombination.
+ inline gnssRinex& operator>>(gnssRinex& gData, ComputeCombination& compComb)
+ {
+ compComb.Combine(gData);
+ return gData;
+ }
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputeIURAWeights.hpp b/dev/src/ComputeIURAWeights.hpp
new file mode 100644
index 0000000..e911864
--- /dev/null
+++ b/dev/src/ComputeIURAWeights.hpp
@@ -0,0 +1,304 @@
+
+/**
+ * @file ComputeIURAWeights.hpp
+ * This class computes satellites weights based on URA Index and is meant to be used with GNSS data structures.
+ */
+
+#ifndef Compute_IURA_WEIGHTS_GPSTK
+#define Compute_IURA_WEIGHTS_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+
+#include "WeightBase.hpp"
+#include "EngEphemeris.hpp"
+#include "TabularEphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class computes satellites weights based on URA Index.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ * RinexNavStream rnavin("brdc0300.02n");
+ * RinexNavData rNavData;
+ * BCEphemerisStore bceStore;
+ * while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
+ * bceStore.SearchPast(); // This is the default
+ *
+ * gnssRinex gRin;
+ * ComputeIURAWeights iuraW(bceStore);
+ *
+ * while(rin >> gRin) {
+ * gRin >> iuraW;
+ * }
+ * @endcode
+ *
+ * The "ComputeIURAWeights" object will visit every satellite in the
+ * GNSS data structure that is "gRin" and will try to compute its weight
+ * based on the corresponding IURA. For precise ephemeris, a fixed value
+ * of IURA = 0.1 m will be set, returning a weight of 100.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the weights inserted along their corresponding
+ * satellites. Be warned that if it is not possible to compute the weight
+ * for a given satellite, it will be summarily deleted from the data
+ * structure.
+ *
+ */
+
+ class ComputeIURAWeights : public WeightBase
+ {
+ public:
+
+ /// Default constructor
+ ComputeIURAWeights() : pBCEphemeris(NULL), pTabEphemeris(NULL) {};
+
+
+ /** Common constructor
+ *
+ * @param bcephem BCEphemerisStore object holding the ephemeris.
+ */
+ ComputeIURAWeights(BCEphemerisStore& bcephem) : pBCEphemeris(&bcephem), pTabEphemeris(NULL) {};
+
+
+ /** Common constructor
+ *
+ * @param tabephem TabularEphemerisStore object holding the ephemeris.
+ */
+ ComputeIURAWeights(TabularEphemerisStore& tabephem) : pBCEphemeris(NULL), pTabEphemeris(&tabephem) {};
+
+
+ /** Common constructor
+ *
+ * @param ephem EphemerisStore object holding the ephemeris.
+ */
+ ComputeIURAWeights(EphemerisStore& ephem)
+ {
+ setDefaultEphemeris(ephem);
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& ComputeWeight(const DayTime& time, satTypeValueMap& gData)
+ {
+ double weight(0.000001); // By default a very small value
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the weight value
+ if (pBCEphemeris != NULL)
+ {
+ weight = getWeight( ((*it).first), time, pBCEphemeris );
+ } else {
+ if (pTabEphemeris != NULL) weight = getWeight( ((*it).first), time, pTabEphemeris );
+ }
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ // If everything is OK, then get the new value inside the structure
+ (*it).second[TypeID::weight] = weight;
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& ComputeWeight(gnssSatTypeValue& gData)
+ {
+ (*this).ComputeWeight(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& ComputeWeight(gnssRinex& gData)
+ {
+ (*this).ComputeWeight(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Method to set the default ephemeris to be used with GNSS data structures.
+ * @param ephem EphemerisStore object to be used
+ */
+ virtual void setDefaultEphemeris(EphemerisStore& ephem)
+ {
+ // Let's check what type ephem belongs to
+ if (dynamic_cast<BCEphemerisStore*>(&ephem))
+ {
+ pBCEphemeris = dynamic_cast<BCEphemerisStore*>(&ephem);
+ pTabEphemeris = NULL;
+ } else {
+ pBCEphemeris = NULL;
+ pTabEphemeris = dynamic_cast<TabularEphemerisStore*>(&ephem);
+ }
+ };
+
+
+ /** Method to set the default ephemeris to be used with GNSS data structures.
+ * @param ephem BCEphemerisStore object to be used
+ */
+ virtual void setDefaultEphemeris(BCEphemerisStore& ephem)
+ {
+ pBCEphemeris = &ephem;
+ pTabEphemeris = NULL;
+ };
+
+
+ /** Method to set the default ephemeris to be used with GNSS data structures.
+ * @param ephem TabularEphemerisStore object to be used
+ */
+ virtual void setDefaultEphemeris(TabularEphemerisStore& ephem)
+ {
+ pBCEphemeris = NULL;
+ pTabEphemeris = &ephem;
+ };
+
+
+ /// Destructor
+ virtual ~ComputeIURAWeights() {};
+
+
+ protected:
+
+ /// Pointer to default broadcast ephemeris to be used.
+ BCEphemerisStore* pBCEphemeris;
+
+
+ /// Pointer to default precise ephemeris to be used.
+ TabularEphemerisStore* pTabEphemeris;
+
+
+ /** Method to really get the weight of a given satellite.
+ *
+ * @param sat Satellite
+ * @param time Epoch
+ * @param preciseEph Precise ephemerisStore object to be used
+ */
+ virtual double getWeight(const SatID& sat, const DayTime& time, const TabularEphemerisStore* preciseEph) throw(InvalidWeights)
+ {
+ try
+ {
+ // Look if this satellite is present in ephemeris
+ preciseEph->getSatXvt(sat, time);
+ }
+ catch(...)
+ {
+ InvalidWeights eWeight("Satellite not found.");
+ GPSTK_THROW(eWeight);
+ }
+ // An URA of 0.1 m is assumed for all satellites, so sigma=0.1*0.1= 0.01 m^2
+ return 100.0;
+ };
+
+
+ /** Method to really get the weight of a given satellite.
+ *
+ * @param sat Satellite
+ * @param time Epoch
+ * @param bcEph Broadcast EphemerisStore object to be used
+ */
+ virtual double getWeight(const SatID& sat, const DayTime& time, const BCEphemerisStore* bcEph) throw(InvalidWeights)
+ {
+ int iura(1000000); // By default a very big value
+ double sigma(1000000.0);
+ EngEphemeris engEph;
+
+ try
+ {
+ // Look if this satellite is present in ephemeris
+ engEph = bcEph->findEphemeris(sat, time);
+ // If so, wet the IURA
+ iura = engEph.getAccFlag();
+ }
+ catch(...)
+ {
+ InvalidWeights eWeight("Satellite not found.");
+ GPSTK_THROW(eWeight);
+ }
+ // Compute and return the weight
+ sigma = gpstk::ura2nominalAccuracy(iura);
+ return ( 1.0 / (sigma*sigma) );
+ };
+
+
+ }; // end class ComputeIURAWeights
+
+
+ /// Input operator from gnssSatTypeValue to ComputeIURAWeights.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, ComputeIURAWeights& right)
+ {
+ right.ComputeWeight(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to ComputeIURAWeights.
+ inline gnssRinex& operator>>(gnssRinex& gData, ComputeIURAWeights& right)
+ {
+ right.ComputeWeight(gData);
+ return gData;
+ }
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputeLC.hpp b/dev/src/ComputeLC.hpp
new file mode 100644
index 0000000..9ce5b67
--- /dev/null
+++ b/dev/src/ComputeLC.hpp
@@ -0,0 +1,120 @@
+
+/**
+ * @file ComputeLC.hpp
+ * This class eases computing LC combination for GNSS data structures.
+ */
+
+#ifndef Compute_LC_GPSTK
+#define Compute_LC_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing LC combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeLC getLC;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getLC;
+ * }
+ * @endcode
+ *
+ * The "ComputeLC" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will try to compute its LC combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the LC inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * All observations are in meters.
+ *
+ */
+ class ComputeLC : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputeLC() : DEN(0.646944444)
+ {
+ type1 = TypeID::L1;
+ type2 = TypeID::L2;
+ resultType = TypeID::LC;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ ComputeCombination::Combine(gData);
+
+ return gData;
+ }
+
+
+ /// Destructor
+ virtual ~ComputeLC() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& obs1, const double& obs2)
+ {
+ return ( (GAMMA_GPS*obs1 - obs2)/(DEN) );
+ };
+
+ private:
+
+ const double DEN; // DEN = GAMMA_GPS - 1
+
+ }; // end class ComputeLC
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputeLI.hpp b/dev/src/ComputeLI.hpp
new file mode 100644
index 0000000..761714a
--- /dev/null
+++ b/dev/src/ComputeLI.hpp
@@ -0,0 +1,116 @@
+
+/**
+ * @file ComputeLI.hpp
+ * This class eases computing LI combination for GNSS data structures.
+ */
+
+#ifndef Compute_LI_GPSTK
+#define Compute_LI_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing LI combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeLI getLI;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getLI;
+ * }
+ * @endcode
+ *
+ * The "ComputeLI" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will try to compute its LI combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the LI inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * All observations are in meters.
+ *
+ */
+ class ComputeLI : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputeLI()
+ {
+ type1 = TypeID::L1;
+ type2 = TypeID::L2;
+ resultType = TypeID::LI;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ ComputeCombination::Combine(gData);
+
+ return gData;
+ }
+
+
+ /// Destructor
+ virtual ~ComputeLI() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& obs1, const double& obs2)
+ {
+ return ( obs1 - obs2 );
+ };
+
+ }; // end class ComputeLI
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputeLdelta.hpp b/dev/src/ComputeLdelta.hpp
new file mode 100644
index 0000000..5d2a52d
--- /dev/null
+++ b/dev/src/ComputeLdelta.hpp
@@ -0,0 +1,120 @@
+
+/**
+ * @file ComputeLdelta.hpp
+ * This class eases computing Ldelta combination for GNSS data structures.
+ */
+
+#ifndef Compute_LDELTA_GPSTK
+#define Compute_LDELTA_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing Ldelta combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeLdelta getLdelta;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getLdelta;
+ * }
+ * @endcode
+ *
+ * The "ComputeLdelta" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will try to compute its Ldelta combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the Ldelta inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * All observations are in meters.
+ *
+ */
+ class ComputeLdelta : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputeLdelta() : DEN(L1_FREQ - L2_FREQ)
+ {
+ type1 = TypeID::L1;
+ type2 = TypeID::L2;
+ resultType = TypeID::Ldelta;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ ComputeCombination::Combine(gData);
+
+ return gData;
+ }
+
+
+ /// Destructor
+ virtual ~ComputeLdelta() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& obs1, const double& obs2)
+ {
+ return ( ( L1_FREQ*obs1 - L2_FREQ*obs2 ) / ( DEN ) );
+ };
+
+ private:
+
+ const double DEN; // DEN = L1_FREQ - L2_FREQ
+
+ }; // end class ComputeLdelta
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputeMOPSWeights.hpp b/dev/src/ComputeMOPSWeights.hpp
new file mode 100644
index 0000000..8d67d08
--- /dev/null
+++ b/dev/src/ComputeMOPSWeights.hpp
@@ -0,0 +1,317 @@
+
+/**
+ * @file ComputeMOPSWeights.hpp
+ * This class computes satellites weights based on the Appendix J of MOPS C, and is meant to be used with GNSS data structures.
+ */
+
+#ifndef Compute_MOPS_WEIGHTS_GPSTK
+#define Compute_MOPS_WEIGHTS_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+
+#include "WeightBase.hpp"
+#include "EngEphemeris.hpp"
+#include "TabularEphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "ComputeIURAWeights.hpp"
+#include "TropModel.hpp"
+#include "DataStructures.hpp"
+#include "geometry.hpp" // DEG_TO_RAD
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class computes satellites weights based on the Appendix J of MOPS C.
+ * It is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ * RinexNavStream rnavin("brdc0300.02n");
+ * RinexNavData rNavData;
+ * BCEphemerisStore bceStore;
+ * while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
+ * bceStore.SearchPast(); // This is the default
+ *
+ * RinexNavHeader rNavHeader;
+ * IonoModelStore ionoStore;
+ * IonoModel ioModel;
+ * rnavin >> rNavHeader;
+ * ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
+ * ionoStore.addIonoModel(DayTime::BEGINNING_OF_TIME, ioModel);
+ *
+ * Position nominalPos(4833520.2269, 41537.00768, 4147461.489);
+ *
+ * MOPSTropModel mopsTM;
+ * mopsTM.setReceiverHeight(nominalPos.getAltitude());
+ * mopsTM.setReceiverLatitude(nominalPos.getGeodeticLatitude());
+ * mopsTM.setDayOfYear(30); // Day of the year
+ *
+ * ModeledPR modelRef(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1, true);
+ *
+ * gnssRinex gRin;
+ * ComputeMOPSWeights mopsW(nominalPos, bceStore);
+ *
+ * while(rin >> gRin) {
+ * gRin >> modelRef >> mopsW;
+ * }
+ * @endcode
+ *
+ * The "ComputeMOPSWeights" object will visit every satellite in the
+ * GNSS data structure that is "gRin" and will try to compute its weight
+ * based on the MOPS algorithm.
+ *
+ * It is very important to note that MOPS algorithm demands a proper
+ * modeling of the observable before starting, otherwise it won't work.
+ * That is the reason of the long initialization phase, where the ionospheric
+ * model (ionoStore), the MOPS tropospheric model (mopsTM) and the general
+ * model (modelRef) objects are set up.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the weights inserted along their corresponding
+ * satellites. Be warned that if it is not possible to compute the weight
+ * for a given satellite, it will be summarily deleted from the data
+ * structure.
+ *
+ */
+
+ class ComputeMOPSWeights : public ComputeIURAWeights
+ {
+ public:
+
+ /// Default constructor. Generates an invalid object.
+ ComputeMOPSWeights() : receiverClass(2)
+ {
+ pBCEphemeris = NULL;
+ pTabEphemeris = NULL;
+ }
+
+
+
+ /** Common constructor
+ *
+ * @param pos Reference position.
+ * @param bcephem BCEphemerisStore object holding the ephemeris.
+ * @param rxClass Receiver class. By default, it is 2.
+ */
+ ComputeMOPSWeights(const Position& pos, BCEphemerisStore& bcephem, int rxClass = 2) : receiverClass(rxClass), nominalPos(pos)
+ {
+ setDefaultEphemeris(bcephem);
+ };
+
+
+ /** Common constructor
+ *
+ * @param pos Reference position.
+ * @param tabephem TabularEphemerisStore object holding the ephemeris.
+ * @param rxClass Receiver class. By default, it is 2.
+ */
+ ComputeMOPSWeights(const Position& pos, TabularEphemerisStore& tabephem, int rxClass = 2) : receiverClass(rxClass), nominalPos(pos)
+ {
+ setDefaultEphemeris(tabephem);
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& ComputeWeight(const DayTime& time, satTypeValueMap& gData)
+ {
+ // IURA weights are needed
+ ComputeIURAWeights::ComputeWeight(time, gData);
+
+ double weight(0.000001); // By default a very small value
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ weight = getWeight( ((*it).first), ((*it).second) );
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ // If everything is OK, then get the new value inside the structure
+ (*it).second[TypeID::weight] = weight;
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& ComputeWeight(gnssSatTypeValue& gData)
+ {
+ (*this).ComputeWeight(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& ComputeWeight(gnssRinex& gData)
+ {
+ (*this).ComputeWeight(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Method to set the default ephemeris to be used with GNSS data structures.
+ * @param ephem TabularEphemerisStore object to be used
+ */
+ virtual void setPosition(const Position& pos)
+ {
+ nominalPos = pos;
+ };
+
+
+ /// Destructor
+ virtual ~ComputeMOPSWeights() {};
+
+
+ private:
+
+ /// Default receiver class (the usual value is 2).
+ int receiverClass;
+
+
+ /// Nominal position used for computing weights.
+ Position nominalPos;
+
+
+ /** Method to really get the MOPS weight of a given satellite.
+ *
+ * @param sat Satellite
+ *
+ */
+ virtual double getWeight(const SatID& sat, typeValueMap& tvMap) throw(InvalidWeights)
+ {
+ double weight(0.000001); // Receiver noise sigma^2 in meters^2, by default a very big value
+
+ double sigma2rx(1000000.0); // Receiver noise sigma^2 in meters^2, by default a very big value
+ if (receiverClass==1) sigma2rx = 0.25; else sigma2rx = 0.36;
+
+ // Some extra variables. By default a very big value
+ double sigma2ura(1000000.0), sigma2multipath(1000000.0), sigma2trop(1000000.0), sigma2uire(1000000.0);
+
+ try
+ {
+ // We need a MOPSTropModel object. Parameters must be valid but they have no importance
+ MOPSTropModel mopsTrop(0.0, 0.0, 1);
+ // At first, the weight type have just the IURA weight
+ sigma2ura = (1.0 / tvMap(TypeID::weight) );
+
+ sigma2multipath = 0.13 + (0.53 * std::exp( - (tvMap(TypeID::elevation)) / 10.0));
+ sigma2trop = mopsTrop.MOPSsigma2(tvMap(TypeID::elevation));
+ sigma2uire = sigma2iono(tvMap(TypeID::ionoSlant), tvMap(TypeID::elevation), tvMap(TypeID::azimuth), nominalPos);
+ weight = 1.0 / (sigma2rx + sigma2ura + sigma2multipath + sigma2trop + sigma2uire);
+ }
+ catch(...)
+ {
+ InvalidWeights eWeight("Problem when computing weights. Did you call a modeler class?.");
+ GPSTK_THROW(eWeight);
+ }
+
+ return weight;
+ };
+
+
+ // Compute ionospheric sigma^2 according to Appendix J.2.3 and Appendix A.4.4.10.4 in MOPS-C
+ double sigma2iono(const double& ionoCorrection, const double& elevation, const double& azimuth, const Position& rxPosition) throw(InvalidWeights)
+ {
+ // First, let's found magnetic latitude according to ICD-GPS-200, section 20.3.3.5.2.6
+ double azRad = azimuth * DEG_TO_RAD;
+ double elevRad = elevation * DEG_TO_RAD;
+ double cosElev = std::cos(elevRad);
+ double svE = elevation / 180.0; // Semi-circles
+
+ double phi_u = rxPosition.getGeodeticLatitude() / 180.0; // Semi-circles
+ double lambda_u = rxPosition.getLongitude() / 180.0; // Semi-circles
+
+ double psi = (0.0137 / (svE + 0.11)) - 0.022; // Semi-circles
+
+ double phi_i = phi_u + psi * std::cos(azRad); // Semi-circles
+ if (phi_i > 0.416)
+ phi_i = 0.416;
+ if (phi_i < -0.416)
+ phi_i = -0.416;
+
+ double lambda_i = lambda_u + ( psi * std::sin(azRad) / std::cos(phi_i*PI) ); // Semi-circles
+
+ double phi_m = phi_i + 0.064 * std::cos((lambda_i - 1.617)*PI); // Semi-circles
+
+ // Convert magnetic latitude to degrees
+ phi_m = std::abs(phi_m * 180.0);
+
+ // Estimate vertical ionospheric delay according to MOPS-C
+ double tau_vert;
+ if ( (phi_m >= 0.0) && (phi_m <= 20.0) ) { tau_vert = 9.0; }
+ else
+ {
+ if ( (phi_m > 20.0) && (phi_m <= 55.0) ) { tau_vert = 4.5; }
+ else tau_vert = 6.0;
+ }
+
+ // Compute obliquity factor
+ double fpp = ( 1.0 / (std::sqrt(1.0 - 0.898665418 * cosElev * cosElev)) );
+
+ double sigma2uire = ( (ionoCorrection*ionoCorrection) / 25.0 );
+
+ double fact = ( (fpp*tau_vert) * (fpp*tau_vert) );
+
+ if (fact > sigma2uire) sigma2uire = fact;
+
+ return sigma2uire;
+
+ } // End of sigma2iono()
+
+ }; // end class ComputeMOPSWeights
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputeMelbourneWubbena.hpp b/dev/src/ComputeMelbourneWubbena.hpp
new file mode 100644
index 0000000..d26816f
--- /dev/null
+++ b/dev/src/ComputeMelbourneWubbena.hpp
@@ -0,0 +1,165 @@
+
+/**
+ * @file ComputeMelbourneWubbena.hpp
+ * This class eases computing Melbourne-Wubbena combination for GNSS data structures.
+ */
+
+#ifndef Compute_MELBOURNEWUBBENA_GPSTK
+#define Compute_MELBOURNEWUBBENA_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing Melbourne-Wubbena combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeMelbourneWubbena getMW;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getMW;
+ * }
+ * @endcode
+ *
+ * The "ComputeMelbourne-Wubbena" object will visit every satellite in the
+ * GNSS data structure that is "gRin" and will try to compute its
+ * Melbourne-Wubbena combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the Melbourne-Wubbena combinations inserted along their
+ * corresponding satellites. Be warned that if a given satellite does not
+ * have the observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Sometimes, the Rinex observations file does not have P1, but provides C1
+ * instead. In such cases, you must use the useC1() method.
+ *
+ */
+ class ComputeMelbourneWubbena : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputeMelbourneWubbena() : type3(TypeID::L1), type4(TypeID::L2), DEN1(L1_FREQ + L2_FREQ), DEN2(L1_FREQ - L2_FREQ)
+ {
+ type1 = TypeID::P1;
+ type2 = TypeID::P2;
+ resultType = TypeID::MWubbena;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ double value1(0.0);
+ double value2(0.0);
+ double value3(0.0);
+ double value4(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ value1 = (*it).second(type1);
+ value2 = (*it).second(type2);
+ value3 = (*it).second(type3);
+ value4 = (*it).second(type4);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ // If everything is OK, then get the new value inside the structure
+ (*it).second[resultType] = getCombination(value1, value2, value3, value4);
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /// Some Rinex data files provide C1 instead of P1. Use this method in those cases.
+ void useC1() { type1 = TypeID::C1; };
+
+
+ /// Destructor
+ virtual ~ComputeMelbourneWubbena() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& p1, const double& p2, const double& l1, const double& l2)
+ {
+ return ( ( L1_FREQ*l1 - L2_FREQ*l2 ) / ( DEN2 ) - ( L1_FREQ*p1 + L2_FREQ*p2 ) / ( DEN1 ) );
+ };
+
+ /// Dummy function.
+ virtual double getCombination(const double& obs1, const double& obs2) { return 0.0; };
+
+ private:
+
+ /// Type of observation to be combined. Nro 3.
+ TypeID type3;
+
+ /// Type of observation to be combined. Nro 4.
+ TypeID type4;
+
+ const double DEN1; // DEN1 = L1_FREQ + L2_FREQ
+ const double DEN2; // DEN2 = L1_FREQ - L2_FREQ
+
+ }; // end class ComputeMelbourneWubbena
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputePC.hpp b/dev/src/ComputePC.hpp
new file mode 100644
index 0000000..2b14eee
--- /dev/null
+++ b/dev/src/ComputePC.hpp
@@ -0,0 +1,129 @@
+
+/**
+ * @file ComputePC.hpp
+ * This class eases computing PC combination for GNSS data structures.
+ */
+
+#ifndef Compute_PC_GPSTK
+#define Compute_PC_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing PC combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputePC getPC;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getPC;
+ * }
+ * @endcode
+ *
+ * The "ComputePC" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will try to compute its PC combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the PC inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Sometimes, the Rinex observations file does not have P1, but provides C1
+ * instead. In such cases, you must use the useC1() method.
+ *
+ * @warning When using C1 instead of P1 to compute this combination, be aware
+ * that instrumental errors will NOT cancel, introducing a bias that must be
+ * taken into account by other means.
+ *
+ */
+ class ComputePC : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputePC() : DEN(0.646944444)
+ {
+ type1 = TypeID::P1;
+ type2 = TypeID::P2;
+ resultType = TypeID::PC;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ ComputeCombination::Combine(gData);
+
+ return gData;
+ }
+
+
+ /// Some Rinex data files provide C1 instead of P1. Use this method in those cases.
+ void useC1() { type1 = TypeID::C1; };
+
+
+ /// Destructor
+ virtual ~ComputePC() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& obs1, const double& obs2)
+ {
+ return ( (GAMMA_GPS*obs1 - obs2)/(DEN) );
+ };
+
+ private:
+
+ const double DEN; // DEN = GAMMA_GPS - 1
+
+ }; // end class ComputePC
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputePI.hpp b/dev/src/ComputePI.hpp
new file mode 100644
index 0000000..b09c605
--- /dev/null
+++ b/dev/src/ComputePI.hpp
@@ -0,0 +1,121 @@
+
+/**
+ * @file ComputePI.hpp
+ * This class eases computing PI combination for GNSS data structures.
+ */
+
+#ifndef Compute_PI_GPSTK
+#define Compute_PI_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing PI combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputePI getPI;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getPI;
+ * }
+ * @endcode
+ *
+ * The "ComputePI" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will try to compute its PI combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the PI inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Sometimes, the Rinex observations file does not have P1, but provides C1
+ * instead. In such cases, you must use the useC1() method.
+ *
+ */
+ class ComputePI : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputePI()
+ {
+ type1 = TypeID::P1;
+ type2 = TypeID::P2;
+ resultType = TypeID::PI;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ ComputeCombination::Combine(gData);
+
+ return gData;
+ }
+
+
+ /// Some Rinex data files provide C1 instead of P1. Use this method in those cases.
+ void useC1() { type1 = TypeID::C1; };
+
+
+ /// Destructor
+ virtual ~ComputePI() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& obs1, const double& obs2)
+ {
+ return ( obs2 - obs1 );
+ };
+
+ }; // end class ComputePI
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ComputePdelta.hpp b/dev/src/ComputePdelta.hpp
new file mode 100644
index 0000000..1306d82
--- /dev/null
+++ b/dev/src/ComputePdelta.hpp
@@ -0,0 +1,125 @@
+
+/**
+ * @file ComputePdelta.hpp
+ * This class eases computing Pdelta combination for GNSS data structures.
+ */
+
+#ifndef Compute_PDELTA_GPSTK
+#define Compute_PDELTA_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "ComputeCombination.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class eases computing Pdelta combination for GNSS data structures.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputePdelta getPdelta;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getPdelta;
+ * }
+ * @endcode
+ *
+ * The "ComputePdelta" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will try to compute its Pdelta combination.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the Pdelta inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Sometimes, the Rinex observations file does not have P1, but provides C1
+ * instead. In such cases, you must use the useC1() method.
+ *
+ */
+ class ComputePdelta : public ComputeCombination
+ {
+ public:
+
+ /// Default constructor
+ ComputePdelta() : DEN(L1_FREQ + L2_FREQ)
+ {
+ type1 = TypeID::P1;
+ type2 = TypeID::P2;
+ resultType = TypeID::Pdelta;
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Combine(satTypeValueMap& gData)
+ {
+ ComputeCombination::Combine(gData);
+
+ return gData;
+ }
+
+
+ /// Some Rinex data files provide C1 instead of P1. Use this method in those cases.
+ void useC1() { type1 = TypeID::C1; };
+
+
+ /// Destructor
+ virtual ~ComputePdelta() {};
+
+
+ protected:
+ /// Compute the combination of observables.
+ virtual double getCombination(const double& obs1, const double& obs2)
+ {
+ return ( ( L1_FREQ*obs1 + L2_FREQ*obs2 ) / ( DEN ) );
+ };
+
+ private:
+
+ const double DEN; // DEN = L1_FREQ + L2_FREQ
+
+ }; // end class ComputePdelta
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/DOP.cpp b/dev/src/DOP.cpp
new file mode 100644
index 0000000..488d0d3
--- /dev/null
+++ b/dev/src/DOP.cpp
@@ -0,0 +1,71 @@
+
+/**
+ * @file DOP.cpp
+ * Class encapsulating the computation of DOP.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+#include "DOP.hpp"
+
+
+namespace gpstk
+{
+
+ // Compute the DOP values associated with the given Covariance Matrix
+ // @param covarianceMatrix Covariance matrix for the equation system
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int DOP::Compute(const Matrix<double>& covarianceMatrix) throw(InvalidDOP)
+ {
+ int covCol = (int) covarianceMatrix.cols();
+ int covRow = (int) covarianceMatrix.rows();
+ if (!(covRow==covCol)) {
+ InvalidDOP e("covarianceMatrix is not square");
+ GPSTK_THROW(e);
+ }
+
+ try {
+ GDOP = RSS(covarianceMatrix(0,0), covarianceMatrix(1,1), covarianceMatrix(2,2), covarianceMatrix(3,3));
+ PDOP = RSS(covarianceMatrix(0,0), covarianceMatrix(1,1), covarianceMatrix(2,2));
+ TDOP = SQRT(covarianceMatrix(3,3));
+ }
+ catch(...) {
+ InvalidDOP e("Unable to compute RSS of covarianceMatrix values.");
+ GPSTK_THROW(e);
+ }
+
+
+ // If everything is fine so far, then the results should be valid
+ valid = true;
+
+ return 0;
+
+ } // end DOP::Compute()
+
+
+} // end namespace gpstk
diff --git a/dev/src/DOP.hpp b/dev/src/DOP.hpp
new file mode 100644
index 0000000..149a525
--- /dev/null
+++ b/dev/src/DOP.hpp
@@ -0,0 +1,97 @@
+
+/**
+ * @file DOP.hpp
+ * Class encapsulating the computation of DOP.
+ */
+
+#ifndef DOP_GPSTK
+#define DOP_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "Exception.hpp"
+#include "Matrix.hpp"
+#include "MiscMath.hpp"
+
+
+namespace gpstk
+{
+ /// Thrown when some problem appeared when computing DOP
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidDOP, gpstk::Exception);
+
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+
+ /** This class encapsulates the computation of DOP, given the Covariance matrix
+ * of an equation system.
+ */
+ class DOP
+ {
+ public:
+ /// Return validity of results
+ bool isValid(void)
+ { return valid; }
+
+ /// Geometric Dilution of Precision
+ double GDOP;
+
+ /// Position Dilution of Precision
+ double PDOP;
+
+ /// Time Dilution of Precision
+ double TDOP;
+
+ /// Implicit constructor
+ DOP() throw(InvalidDOP) { valid = false; };
+
+
+ /** Compute the DOP values associated with the given Covariance Matrix
+ * @param covarianceMatrix Covariance matrix for the equation system
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const Matrix<double>& covarianceMatrix) throw(InvalidDOP);
+
+
+ /// Destructor
+ virtual ~DOP() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class SolverBase
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/DataHeaders.cpp b/dev/src/DataHeaders.cpp
new file mode 100644
index 0000000..cd2be2b
--- /dev/null
+++ b/dev/src/DataHeaders.cpp
@@ -0,0 +1,152 @@
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+#include "DataHeaders.hpp"
+
+
+/**
+ * @file DataHeaders.cpp
+ * gpstk::DataHeaders: Set of several headers to be used by data structures.
+ */
+
+//using namespace gpstk::StringUtils;
+using namespace std;
+
+
+namespace gpstk
+{
+
+ // Convenience output method for sourceHeader
+ std::ostream& sourceHeader::dump(std::ostream& s) const
+ {
+ s << source;
+ return s;
+ } // sourceHeader::dump()
+
+
+ // stream output for sourceHeader
+ std::ostream& operator<<(std::ostream& s, const sourceHeader& sh)
+ {
+ sh.dump(s);
+ return s;
+ }
+
+
+ // Convenience output method for sourceEpochHeader
+ std::ostream& sourceEpochHeader::dump(std::ostream& s) const
+ {
+ s << source << " " << epoch;
+ return s;
+ } // sourceEpochHeader::dump()
+
+
+ // stream output for sourceEpochHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochHeader& seh)
+ {
+ seh.dump(s);
+ return s;
+ }
+
+
+ // Convenience output method for sourceEpochRinexHeader
+ std::ostream& sourceEpochRinexHeader::dump(std::ostream& s) const
+ {
+ s << source << " " << epoch << " " << antennaType << " " << antennaPosition << " " << epochFlag;
+ return s;
+ } // sourceEpochRinexHeader::dump()
+
+
+ // stream output for sourceEpochRinexHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochRinexHeader& serh)
+ {
+ serh.dump(s);
+ return s;
+ }
+
+
+ // Convenience output method for sourceTypeHeader
+ std::ostream& sourceTypeHeader::dump(std::ostream& s) const
+ {
+ s << source << " " << type;
+ return s;
+ } // sourceTypeHeader::dump()
+
+
+ // stream output for sourceTypeHeader
+ std::ostream& operator<<(std::ostream& s, const sourceTypeHeader& sth)
+ {
+ sth.dump(s);
+ return s;
+ }
+
+
+ // Convenience output method for sourceSatHeader
+ std::ostream& sourceSatHeader::dump(std::ostream& s) const
+ {
+ s << source << " " << satellite;
+ return s;
+ } // sourceSatHeader::dump()
+
+
+ // stream output for sourceSatHeader
+ std::ostream& operator<<(std::ostream& s, const sourceSatHeader& ssh)
+ {
+ ssh.dump(s);
+ return s;
+ }
+
+
+ // Convenience output method for sourceEpochSatHeader
+ std::ostream& sourceEpochSatHeader::dump(std::ostream& s) const
+ {
+ s << source << " " << epoch << " " << satellite;
+ return s;
+ } // sourceEpochSatHeader::dump()
+
+
+ // stream output for sourceEpochSatHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochSatHeader& sesh)
+ {
+ sesh.dump(s);
+ return s;
+ }
+
+
+ // Convenience output method for sourceEpochTypeHeader
+ std::ostream& sourceEpochTypeHeader::dump(std::ostream& s) const
+ {
+ s << source << " " << epoch << " " << type;
+ return s;
+ } // sourceEpochTypeHeader::dump()
+
+
+ // stream output for sourceEpochTypeHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochTypeHeader& seth)
+ {
+ seth.dump(s);
+ return s;
+ }
+
+
+
+}
diff --git a/dev/src/DataHeaders.hpp b/dev/src/DataHeaders.hpp
new file mode 100644
index 0000000..c7cf906
--- /dev/null
+++ b/dev/src/DataHeaders.hpp
@@ -0,0 +1,542 @@
+/**
+ * @file DataHeaders.hpp
+ * Set of several headers to be used with data structures.
+ */
+
+#ifndef DATA_HEADERS_GPSTK
+#define DATA_HEADERS_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+#include <string>
+#include "SatID.hpp"
+#include "TypeID.hpp"
+#include "SourceID.hpp"
+#include "DayTime.hpp"
+#include "Triple.hpp"
+
+
+
+namespace gpstk
+{
+ /** @addtogroup DataStructures */
+ //@{
+
+ /** Set of several headers to be used with data structures.
+ */
+
+
+
+ /// Defines a header containing just the source of data
+ struct sourceHeader
+ {
+ /// The only field is a SourceID object
+ SourceID source;
+
+ /// Default constructor
+ sourceHeader() {};
+
+ /// Explicit constructor
+ sourceHeader(const SourceID::SourceType& st, const std::string& name)
+ {
+ source.type = st;
+ source.sourceName = name;
+ };
+
+ /// Explicit constructor
+ sourceHeader(const SourceID& sI) : source(sI) {};
+
+ /// Copy constructor
+ sourceHeader(const sourceHeader& sH) { source = sH.source; };
+
+ /// Assignment operator
+ virtual sourceHeader& operator=(const sourceHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceHeader() {};
+
+ };
+
+
+ /// stream output for sourceHeader
+ std::ostream& operator<<(std::ostream& s, const sourceHeader& sh);
+
+
+
+
+ /// Defines a header containing the source and epoch of data
+ struct sourceEpochHeader : public sourceHeader
+ {
+ /// Field containing the epoch of data
+ DayTime epoch;
+
+ /// Default constructor
+ sourceEpochHeader() {};
+
+ /// Explicit constructor
+ sourceEpochHeader(const SourceID::SourceType& st, const std::string& sourcename, const DayTime& time) : epoch(time)
+ {
+ source.type = st;
+ source.sourceName = sourcename;
+ };
+
+ /// Explicit constructor
+ sourceEpochHeader(const SourceID& sI, const DayTime& time) : epoch(time) { source = sI; };
+
+ /// Explicit constructor from parent class
+ sourceEpochHeader(const sourceHeader& sh, const DayTime& time) : sourceHeader(sh), epoch(time) {};
+
+ /// Copy constructor
+ sourceEpochHeader(const sourceEpochHeader& seh) : epoch(seh.epoch) { source = seh.source; };
+
+ /// Assignment operator
+ virtual sourceEpochHeader& operator=(const sourceEpochHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceHeader
+ virtual sourceEpochHeader& operator=(const sourceHeader& right)
+ {
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceEpochHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceEpochHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceEpochHeader() {};
+
+ };
+
+
+ /// stream output for sourceEpochHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochHeader& seh);
+
+
+
+
+ /// Defines a header containing the source and epoch of data, plus extra data extracted from a Rinex file
+ struct sourceEpochRinexHeader : public sourceEpochHeader
+ {
+ /// String describing the antenna type
+ std::string antennaType;
+
+ /// Triple holding the antenna position
+ Triple antennaPosition;
+
+ /// The RINEX epoch flag assigned to this epoch
+ short epochFlag;
+
+ /// Default constructor
+ sourceEpochRinexHeader() {};
+
+ /// Explicit constructor
+ sourceEpochRinexHeader(const SourceID::SourceType& st, const std::string& sourcename, const DayTime& time, const std::string& antType, const Triple& antPos, const short& flag) : antennaType(antType), antennaPosition(antPos), epochFlag(flag)
+ {
+ source.type = st;
+ source.sourceName = sourcename;
+ epoch = time;
+ };
+
+ /// Explicit constructor
+ sourceEpochRinexHeader(const SourceID& sI, const DayTime& time, const std::string& antType, const Triple& antPos, const short& flag) : antennaType(antType), antennaPosition(antPos), epochFlag(flag)
+ {
+ source = sI;
+ epoch = time;
+ };
+
+ /// Explicit constructor
+ sourceEpochRinexHeader(const sourceHeader& sh, const DayTime& time, const std::string& antType, const Triple& antPos, const short& flag) : antennaType(antType), antennaPosition(antPos), epochFlag(flag)
+ {
+ source.sourceName = sh.source.sourceName;
+ source.type = sh.source.type;
+ epoch = time;
+ };
+
+ /// Explicit constructor from parent class sourceEpochHeader
+ sourceEpochRinexHeader(const sourceEpochHeader& seh) : sourceEpochHeader(seh) {};
+
+ /// Explicit constructor from parent class plus extra parameters
+ sourceEpochRinexHeader(const sourceEpochHeader& seh, const std::string& antType, const Triple& antPos, const short& flag) : sourceEpochHeader(seh), antennaType(antType), antennaPosition(antPos), epochFlag(flag) {};
+
+ /// Copy constructor
+ sourceEpochRinexHeader(const sourceEpochRinexHeader& serh) : antennaType(serh.antennaType), antennaPosition(serh.antennaPosition), epochFlag(serh.epochFlag) { source = serh.source; epoch = serh.epoch; };
+
+ /// Assignment operator
+ virtual sourceEpochRinexHeader& operator=(const sourceEpochRinexHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ (*this).antennaType = right.antennaType;
+ (*this).antennaPosition = right.antennaPosition;
+ (*this).epochFlag = right.epochFlag;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceEpochHeader
+ virtual sourceEpochRinexHeader& operator=(const sourceEpochHeader& right)
+ {
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceHeader
+ virtual sourceEpochRinexHeader& operator=(const sourceHeader& right)
+ {
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceEpochRinexHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceEpochRinexHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceEpochRinexHeader() {};
+
+ };
+
+
+ /// stream output for sourceEpochRinexHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochRinexHeader& serh);
+
+
+
+
+ /// Defines a header containing the source and type of data
+ struct sourceTypeHeader : public sourceHeader
+ {
+ /// Field describing the type of data being held
+ TypeID type;
+
+ /// Default constructor
+ sourceTypeHeader() {};
+
+ /// Explicit constructor
+ sourceTypeHeader(const SourceID::SourceType& st, const std::string& sourcename, const TypeID& datatype) : type(datatype)
+ {
+ source.type = st;
+ source.sourceName = sourcename;
+ };
+
+ /// Explicit constructor
+ sourceTypeHeader(const SourceID& sI, const TypeID& datatype) : type(datatype) { source = sI; };
+
+ /// Explicit constructor from parent class
+ sourceTypeHeader(const sourceHeader& sh, const TypeID& datatype) : sourceHeader(sh), type(datatype) {};
+
+ /// Copy constructor
+ sourceTypeHeader(const sourceTypeHeader& sth) : type(sth.type) { source = sth.source; };
+
+ /// Assignment operator from a sourceTypeHeader
+ virtual sourceTypeHeader& operator=(const sourceTypeHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ (*this).type = right.type;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceHeader
+ virtual sourceTypeHeader& operator=(const sourceHeader& right)
+ {
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceTypeHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceTypeHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceTypeHeader() {};
+
+ };
+
+
+ /// stream output for sourceTypeHeader
+ std::ostream& operator<<(std::ostream& s, const sourceTypeHeader& sth);
+
+
+
+
+ /// Defines a header containing the source and satellite ID of data
+ struct sourceSatHeader : public sourceHeader
+ {
+ /// Field holding the satellite ID this data belongs to
+ SatID satellite;
+
+ /// Default constructor
+ sourceSatHeader() {};
+
+ /// Explicit constructor
+ sourceSatHeader(const SourceID::SourceType& st, const std::string& sourcename, const SatID& sat) : satellite(sat)
+ {
+ source.type = st;
+ source.sourceName = sourcename;
+ };
+
+ /// Explicit constructor
+ sourceSatHeader(const SourceID& sI, const SatID& sat) : satellite(sat) { source = sI; };
+
+ /// Explicit constructor from parent class
+ sourceSatHeader(const sourceHeader& sh, const SatID& sat) : sourceHeader(sh), satellite(sat) {};
+
+ /// Copy constructor
+ sourceSatHeader(const sourceSatHeader& ssh) : satellite(ssh.satellite) { source = ssh.source; };
+
+ /// Assignment operator from a sourceSatHeader
+ virtual sourceSatHeader& operator=(const sourceSatHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ (*this).satellite = right.satellite;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceHeader
+ virtual sourceSatHeader& operator=(const sourceHeader& right)
+ {
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceSatHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceSatHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceSatHeader() {};
+
+ };
+
+
+ /// stream output for sourceSatHeader
+ std::ostream& operator<<(std::ostream& s, const sourceSatHeader& ssh);
+
+
+
+
+ /// Defines a header containing the source, satellite ID and epoch of data
+ struct sourceEpochSatHeader : public sourceEpochHeader
+ {
+ /// Field holding the satellite ID this data belongs to
+ SatID satellite;
+
+ /// Default constructor
+ sourceEpochSatHeader() {};
+
+ /// Explicit constructor
+ sourceEpochSatHeader(const SourceID::SourceType& st, const std::string& sourcename, const DayTime& time, const SatID& sat) : satellite(sat)
+ {
+ source.type = st;
+ source.sourceName = sourcename;
+ epoch = time;
+ };
+
+ /// Explicit constructor
+ sourceEpochSatHeader(const SourceID& sI, const DayTime& time, const SatID& sat) : satellite(sat) { source = sI; epoch = time; };
+
+ /// Explicit constructor
+ sourceEpochSatHeader(const sourceHeader& sh, const DayTime& time, const SatID& sat) : satellite(sat) { source = sh.source; epoch = time; };
+
+ /// Explicit constructor from parent class
+ sourceEpochSatHeader(const sourceEpochHeader& seh, const SatID& sat) : satellite(sat) { source = seh.source; epoch = seh.epoch; };
+
+ /// Copy constructor
+ sourceEpochSatHeader(const sourceEpochSatHeader& sesh) : satellite(sesh.satellite) { source = sesh.source; epoch = sesh.epoch; };
+
+ /// Assignment operator from a sourceEpochSatHeader
+ virtual sourceEpochSatHeader& operator=(const sourceEpochSatHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ (*this).satellite = right.satellite;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceEpochHeader
+ virtual sourceEpochSatHeader& operator=(const sourceEpochHeader& right)
+ {
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceHeader
+ virtual sourceEpochSatHeader& operator=(const sourceHeader& right)
+ {
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceEpochSatHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceEpochSatHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceEpochSatHeader() {};
+
+ };
+
+
+ /// stream output for sourceEpochSatHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochSatHeader& sesh);
+
+
+
+
+ /// Defines a header containing the source, type and epoch of data
+ struct sourceEpochTypeHeader : public sourceEpochHeader
+ {
+ /// Field describing the type of data being held
+ TypeID type;
+
+ /// Default constructor
+ sourceEpochTypeHeader() {};
+
+ /// Explicit constructor
+ sourceEpochTypeHeader(const SourceID::SourceType& st, const std::string& sourcename, const DayTime& time, const TypeID& datatype) : type(datatype)
+ {
+ source.type = st;
+ source.sourceName = sourcename;
+ epoch = time;
+ };
+
+ /// Explicit constructor
+ sourceEpochTypeHeader(const SourceID& sI, const DayTime& time, const TypeID& datatype) : type(datatype) { source = sI; epoch = time; };
+
+ /// Explicit constructor
+ sourceEpochTypeHeader(const sourceHeader& sh, const DayTime& time, const TypeID& datatype) : type(datatype) { source = sh.source; epoch = time; };
+
+ /// Explicit constructor from parent class
+ sourceEpochTypeHeader(const sourceEpochHeader& seh, const TypeID& datatype) : type(datatype) { source = seh.source; epoch = seh.epoch; };
+
+ /// Copy constructor
+ sourceEpochTypeHeader(const sourceEpochTypeHeader& sesh) : type(sesh.type) { source = sesh.source; epoch = sesh.epoch; };
+
+ /// Assignment operator from a sourceEpochTypeHeader
+ virtual sourceEpochTypeHeader& operator=(const sourceEpochTypeHeader& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ (*this).type = right.type;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceEpochHeader
+ virtual sourceEpochTypeHeader& operator=(const sourceEpochHeader& right)
+ {
+ (*this).source = right.source;
+ (*this).epoch = right.epoch;
+ return *this;
+ }
+
+ /// Assignment operator from a sourceHeader
+ virtual sourceEpochTypeHeader& operator=(const sourceHeader& right)
+ {
+ (*this).source = right.source;
+ return *this;
+ }
+
+ /// Assignment operator from a SourceID
+ virtual sourceEpochTypeHeader& operator=(const SourceID& right)
+ {
+ (*this).source = right;
+ return *this;
+ }
+
+ /// Convenience output method for sourceEpochTypeHeader
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Destructor
+ virtual ~sourceEpochTypeHeader() {};
+
+ };
+
+
+ /// stream output for sourceEpochTypeHeader
+ std::ostream& operator<<(std::ostream& s, const sourceEpochTypeHeader& seth);
+
+
+ //@}
+
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/DataStructures.cpp b/dev/src/DataStructures.cpp
new file mode 100644
index 0000000..ee88e01
--- /dev/null
+++ b/dev/src/DataStructures.cpp
@@ -0,0 +1,399 @@
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+#include "DataStructures.hpp"
+//#include "DataHeaders.hpp"
+//#include "StringUtils.hpp"
+//#include "TypeID.hpp"
+
+
+/**
+ * @file DataStructures.cpp
+ * gpstk::DataStructures: Set of several data structures to be used by other GPSTk classes.
+ */
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+
+namespace gpstk
+{
+
+ // Convenience output method for structure satTypeValueMap
+ std::ostream& satTypeValueMap::dump(std::ostream& s, int mode) const
+ {
+ satTypeValueMap::const_iterator it;
+ for (it = (*this).begin(); it!= (*this).end(); it++)
+ {
+ // First, print satellite (system and PRN)
+ s << (*it).first << " ";
+
+ typeValueMap::const_iterator itObs;
+ for (itObs = (*it).second.begin(); itObs != (*it).second.end(); itObs++)
+ {
+ if (mode==1) s << (*itObs).first << " ";
+ s << (*itObs).second << " ";
+ }
+
+ s << endl;
+
+ }
+
+ return s;
+ } // satTypeValueMap::dump()
+
+
+
+ // stream output for satTypeValueMap
+ std::ostream& operator<<(std::ostream& s, const satTypeValueMap& stvMap)
+ {
+ stvMap.dump(s);
+ return s;
+ }
+
+
+
+
+ // Input for gnssSatTypeValue from RinexObsHeader
+ gnssSatTypeValue& operator>>(const RinexObsHeader& roh, gnssSatTypeValue& f)
+ {
+
+ // First, select the right system the data came from
+ f.header.source.type = SatIDsystem2SourceIDtype(roh.system);
+
+ // Set the proper name for the receiver
+ f.header.source.sourceName = roh.markerName;
+
+ return f;
+ }
+
+
+ // Input for gnssRinex from RinexObsHeader
+ gnssRinex& operator>>(const RinexObsHeader& roh, gnssRinex& f)
+ {
+
+ // First, select the right system the data came from
+ f.header.source.type = SatIDsystem2SourceIDtype(roh.system);
+
+ // Set the proper name for the receiver
+ f.header.source.sourceName = roh.markerName;
+
+ // Set the proper antenna type for the receiver
+ f.header.antennaType = roh.antType;
+
+ // Set the proper antenna position
+ f.header.antennaPosition = roh.antennaPosition;
+
+ return f;
+ }
+
+
+ // Input for gnssSatTypeValue from RinexObsData
+ gnssSatTypeValue& operator>>(const RinexObsData& rod, gnssSatTypeValue& f)
+ {
+
+ // Fill header epoch with the proper value
+ f.header.epoch = rod.time;
+
+ // Extract the observations map and store it in the body
+ f.body = FillsatTypeValueMapwithRinexObsData(rod);
+
+ return f;
+ }
+
+
+ // Input for gnssRinex from RinexObsData
+ gnssRinex& operator>>(const RinexObsData& rod, gnssRinex& f)
+ {
+
+ // Fill header epoch with the proper value
+ f.header.epoch = rod.time;
+
+ // Fill header epoch with the proper value
+ f.header.epochFlag = rod.epochFlag;
+
+ // Extract the observations map and store it in the body
+ f.body = FillsatTypeValueMapwithRinexObsData(rod);
+
+ return f;
+ }
+
+
+
+ // Stream input for gnssSatTypeValue
+ std::istream& operator>>(std::istream& i, gnssSatTypeValue& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ FFStream* ffs = dynamic_cast<FFStream*>(&i);
+ if (ffs)
+ {
+ try
+ {
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(*ffs);
+
+ // If the header hasn't been read, read it...
+ if(!strm.headerRead) strm >> strm.header;
+
+ // Clear out this object
+ RinexObsHeader& hdr = strm.header;
+
+ hdr >> f;
+
+ std::string line;
+
+ strm.formattedGetLine(line, true);
+
+ if (line.size()>80 || line[0] != ' ' || line[3] != ' ' || line[6] != ' ')
+ {
+ FFStreamError e("Bad epoch line");
+ GPSTK_THROW(e);
+ }
+
+ // process the epoch line, including SV list and clock bias
+ short epochFlag = asInt(line.substr(28,1));
+ if ((epochFlag < 0) || (epochFlag > 6))
+ {
+ FFStreamError e("Invalid epoch flag: " + asString(epochFlag));
+ GPSTK_THROW(e);
+ }
+
+ f.header.epoch = parseTime(line, hdr);
+
+ short numSvs = asInt(line.substr(29,3));
+
+ RinexObsData rod;
+
+ // Now read the observations ...
+ if(epochFlag==0 || epochFlag==1 || epochFlag==6) {
+ int isv, ndx, line_ndx;
+ vector<SatID> satIndex(numSvs);
+ int col=30;
+ for (isv=1, ndx=0; ndx<numSvs; isv++, ndx++) {
+ if(! (isv % 13)) {
+ strm.formattedGetLine(line);
+ isv = 1;
+ if(line.size() > 80) {
+ FFStreamError err("Invalid line size:" + asString(line.size()));
+ GPSTK_THROW(err);
+ }
+ }
+ try {
+ satIndex[ndx] = RinexSatID(line.substr(col+isv*3-1, 3));
+ }
+ catch (Exception& e)
+ {
+ FFStreamError ffse(e);
+ GPSTK_THROW(ffse);
+ }
+ }
+
+ for (isv=0; isv < numSvs; isv++)
+ {
+ short numObs = hdr.obsTypeList.size();
+ for (ndx=0, line_ndx=0; ndx < numObs; ndx++, line_ndx++)
+ {
+ SatID sat = satIndex[isv];
+ RinexObsHeader::RinexObsType obs_type = hdr.obsTypeList[ndx];
+ if (! (line_ndx % 5))
+ {
+ strm.formattedGetLine(line);
+ line_ndx = 0;
+ if (line.size() > 80)
+ {
+ FFStreamError err("Invalid line size:" + asString(line.size()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ line.resize(80, ' ');
+
+ rod.obs[sat][obs_type].data = asDouble(line.substr(line_ndx*16, 14));
+ rod.obs[sat][obs_type].lli = asInt( line.substr(line_ndx*16+14, 1));
+ rod.obs[sat][obs_type].ssi = asInt( line.substr(line_ndx*16+15, 1));
+ }
+ }
+
+
+ }
+
+ f.body = FillsatTypeValueMapwithRinexObsData(rod);
+
+ return i;
+ } // End of "try" block
+ ////
+ //// ATENTION: This part is VERY UGLY
+ //// Help from the guys who wrote FFStream::tryFFStreamGet(FFData& rec)
+ //// will be very appreciated
+ ////
+ // EOF - do nothing - eof causes fail() to be set which
+ // is handled by std::fstream
+ catch (EndOfFile& e)
+ {
+ return i;
+ }
+ catch (...)
+ {
+ return i;
+ }
+
+ } // End of block: "if (ffs)..."
+ else
+ {
+ FFStreamError e("operator<< stream argument must be an FFStream");
+ GPSTK_THROW(e);
+ }
+
+ } // End of stream input for gnssSatTypeValue
+
+
+
+
+ // Stream input for gnssRinex
+ std::istream& operator>>(std::istream& i, gnssRinex& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ FFStream* ffs = dynamic_cast<FFStream*>(&i);
+ if (ffs)
+ {
+ try
+ {
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(*ffs);
+
+ // If the header hasn't been read, read it...
+ if(!strm.headerRead) strm >> strm.header;
+
+ // Clear out this object
+ RinexObsHeader& hdr = strm.header;
+
+ hdr >> f;
+
+ std::string line;
+
+ strm.formattedGetLine(line, true);
+
+ if (line.size()>80 || line[0] != ' ' || line[3] != ' ' || line[6] != ' ')
+ {
+ FFStreamError e("Bad epoch line");
+ GPSTK_THROW(e);
+ }
+
+ // process the epoch line, including SV list and clock bias
+ short epochFlag = asInt(line.substr(28,1));
+ if ((epochFlag < 0) || (epochFlag > 6))
+ {
+ FFStreamError e("Invalid epoch flag: " + asString(epochFlag));
+ GPSTK_THROW(e);
+ }
+
+ f.header.epochFlag = epochFlag;
+
+ f.header.epoch = parseTime(line, hdr);
+
+ short numSvs = asInt(line.substr(29,3));
+
+ RinexObsData rod;
+
+ // Now read the observations ...
+ if(epochFlag==0 || epochFlag==1 || epochFlag==6) {
+ int isv, ndx, line_ndx;
+ vector<SatID> satIndex(numSvs);
+ int col=30;
+ for (isv=1, ndx=0; ndx<numSvs; isv++, ndx++) {
+ if(! (isv % 13)) {
+ strm.formattedGetLine(line);
+ isv = 1;
+ if(line.size() > 80) {
+ FFStreamError err("Invalid line size:" + asString(line.size()));
+ GPSTK_THROW(err);
+ }
+ }
+ try {
+ satIndex[ndx] = RinexSatID(line.substr(col+isv*3-1, 3));
+ }
+ catch (Exception& e)
+ {
+ FFStreamError ffse(e);
+ GPSTK_THROW(ffse);
+ }
+ }
+
+ for (isv=0; isv < numSvs; isv++)
+ {
+ short numObs = hdr.obsTypeList.size();
+ for (ndx=0, line_ndx=0; ndx < numObs; ndx++, line_ndx++)
+ {
+ SatID sat = satIndex[isv];
+ RinexObsHeader::RinexObsType obs_type = hdr.obsTypeList[ndx];
+ if (! (line_ndx % 5))
+ {
+ strm.formattedGetLine(line);
+ line_ndx = 0;
+ if (line.size() > 80)
+ {
+ FFStreamError err("Invalid line size:" + asString(line.size()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ line.resize(80, ' ');
+
+ rod.obs[sat][obs_type].data = asDouble(line.substr(line_ndx*16, 14));
+ rod.obs[sat][obs_type].lli = asInt( line.substr(line_ndx*16+14, 1));
+ rod.obs[sat][obs_type].ssi = asInt( line.substr(line_ndx*16+15, 1));
+ }
+ }
+
+
+ }
+
+ f.body = FillsatTypeValueMapwithRinexObsData(rod);
+
+ return i;
+ } // End of "try" block
+ ////
+ //// ATENTION: This part is VERY UGLY
+ //// Help from the guys who wrote FFStream::tryFFStreamGet(FFData& rec)
+ //// will be very appreciated
+ ////
+ // EOF - do nothing - eof causes fail() to be set which
+ // is handled by std::fstream
+ catch (EndOfFile& e)
+ {
+ return i;
+ }
+ catch (...)
+ {
+ return i;
+ }
+
+ } // End of block: "if (ffs)..."
+ else
+ {
+ FFStreamError e("operator<< stream argument must be an FFStream");
+ GPSTK_THROW(e);
+ }
+
+ } // End of stream input for gnssRinex
+
+
+
+}
diff --git a/dev/src/DataStructures.hpp b/dev/src/DataStructures.hpp
new file mode 100644
index 0000000..1bc03e8
--- /dev/null
+++ b/dev/src/DataStructures.hpp
@@ -0,0 +1,1608 @@
+/**
+ * @file DataStructures.hpp
+ * Set of several data structures to be used by other GPSTk classes.
+ */
+
+#ifndef DATA_STRUCTURES_GPSTK
+#define DATA_STRUCTURES_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+#include <utility>
+#include <vector>
+#include <set>
+#include <map>
+#include <string>
+
+#include "DataHeaders.hpp"
+#include "FFData.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexObsData.hpp"
+#include "StringUtils.hpp"
+#include "Vector.hpp"
+#include "Matrix.hpp"
+#include "icd_200_constants.hpp"
+
+
+
+namespace gpstk
+{
+ /** @defgroup DataStructures GPSTk data structures
+ *
+ * This is a set of several data structures to be used by other
+ * GPSTk classes.
+ *
+ * Each data structure is composed of a header and a body. The header
+ * contains the information that is common to all the data stored in
+ * the structure, and the body contains the data themselves along with
+ * the information (indexes) necessary to access them.
+ *
+ * In this regard, four basic indexes are considered enough to completely
+ * identify any GNSS value:
+ *
+ * - Receiver/Source (SourceID)
+ * - Epoch (DayTime)
+ * - Satellite (SatID)
+ * - Type of value (TypeID)
+ *
+ * Moreover, all the GNSS data structures have two main parts:
+ *
+ * - Header: Containing the indexes that are common to all the values (sometimes
+ * with some extra information).
+ *
+ * - Body: Containing the GNSS values themselves, organized in std::maps.
+ *
+ * The general idea is to use the GNSS data structures like WHITE BOXES that
+ * are able to carry all the important data around in an easy way, in order to
+ * do something like the following to process GNSS data:
+ *
+ * @code
+ * RinexObsStream rin("bahr1620.04o"); // Create the input file stream
+ * gnssRinex gRin; // Declare a gnssRinex object
+ * ModeledPR modelPR; // Declare a ModeledReferencePR object
+ * SolverLMS solver; // Declare an object to apply LMS method
+ * Position refPosition(3633909.1016, 4425275.5033, 2799861.2736); // Initial position
+ * Position solPosition; // Solution
+ *
+ * // Feed the gRin data structure
+ * while(rin >> gRin) {
+ * gRin.keepOnlyTypeID(TypeID::C1) >> modelPR >> solver >> solPosition;
+ * cout << solPosition;
+ * }
+ * @endcode
+ *
+ */
+
+ //@{
+
+
+ // First, we must declare some important exception objects
+
+
+ /// Thrown when attempting to access a value and the corresponding TypeID
+ /// does not exist in the map.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(TypeIDNotFound, gpstk::Exception);
+
+ /// Thrown when attempting to access a value and the corresponding SatID
+ /// does not exist in the map.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(SatIDNotFound, gpstk::Exception);
+
+
+ /// Thrown when the number of data values and the number of corresponding
+ /// types does not match.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(NumberOfTypesMismatch, gpstk::Exception);
+
+
+ /// Thrown when the number of data values and the number of corresponding
+ /// satellites does not match.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(NumberOfSatsMismatch, gpstk::Exception);
+
+
+ // Now, some useful type definitions
+
+ /// Set containing TypeID objects.
+ typedef std::set<TypeID> TypeIDSet;
+
+ /// Set containing SatID objects.
+ typedef std::set<SatID> SatIDSet;
+
+
+ /// Map holding TypeID with corresponding numeric value.
+ struct typeValueMap : std::map<TypeID, double>
+ {
+
+ /// Returns the number of different types available.
+ inline size_t numTypes() const { return (*this).size(); }
+
+ /// Returns a TypeIDSet with all the data types present in this object.
+ inline TypeIDSet getTypeID() const
+ {
+ TypeIDSet typeSet;
+ typeValueMap::const_iterator pos;
+ for (pos = (*this).begin(); pos != (*this).end(); ++pos)
+ {
+ typeSet.insert( (*pos).first );
+ }
+ return typeSet;
+ }
+
+ /// Returns a typeValueMap with only this type of data.
+ /// @param type Type of value to be extracted.
+ inline typeValueMap extractTypeID(const TypeID& type) const
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).extractTypeID(typeSet);
+ }
+
+ /// Returns a typeValueMap with only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be extracted.
+ inline typeValueMap extractTypeID(const TypeIDSet& typeSet) const
+ {
+ typeValueMap tvMap;
+ TypeIDSet::const_iterator pos;
+ for (pos = typeSet.begin(); pos != typeSet.end(); ++pos)
+ {
+ typeValueMap::const_iterator itObs;
+ itObs = (*this).find(*pos);
+ if ( itObs != (*this).end() )
+ {
+ tvMap[ (*itObs).first ] = (*itObs).second;
+ };
+ }
+ return tvMap;
+ }
+
+ /// Modifies this object, keeping only this type of data.
+ /// @param type Type of value to be kept.
+ inline typeValueMap& keepOnlyTypeID(const TypeID& type)
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).keepOnlyTypeID(typeSet);
+ }
+
+ /// Modifies this object, keeping only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline typeValueMap& keepOnlyTypeID(const TypeIDSet& typeSet)
+ {
+ typeValueMap tvMap = (*this).extractTypeID(typeSet);
+ (*this) = tvMap;
+ return (*this);
+ }
+
+ /// Modifies this object, removing this type of data.
+ /// @param type Type of value to be removed.
+ inline typeValueMap& removeTypeID(const TypeID& type)
+ {
+ (*this).erase(type);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline typeValueMap& removeTypeID(const TypeIDSet& typeSet)
+ {
+ TypeIDSet::const_iterator pos;
+ for (pos = typeSet.begin(); pos != typeSet.end(); ++pos)
+ {
+ (*this).erase(*pos);
+ }
+ return (*this);
+ }
+
+ /// Returns a reference to the data value (double) with corresponding type.
+ /// @param type Type of value to be look for.
+ inline double& operator()(const TypeID& type) throw(TypeIDNotFound)
+ {
+ typeValueMap::iterator itObs;
+ itObs = (*this).find(type);
+ if ( itObs != (*this).end() )
+ {
+ return (*itObs).second;
+ } else GPSTK_THROW(TypeIDNotFound("TypeID not found in map"));
+ }
+
+ /// Destructor.
+ virtual ~typeValueMap() {};
+
+ }; // End typeValueMap
+
+
+ /// Map holding SatID with corresponding numeric value.
+ struct satValueMap : std::map<SatID, double>
+ {
+
+ /// Returns the number of satellites available.
+ inline size_t numSats() const { return (*this).size(); }
+
+ /// Returns a SatIDSet with all the satellites present in this object.
+ inline SatIDSet getSatID() const
+ {
+ SatIDSet satSet;
+ satValueMap::const_iterator pos;
+ for (pos = (*this).begin(); pos != (*this).end(); ++pos)
+ {
+ satSet.insert( (*pos).first );
+ }
+ return satSet;
+ }
+
+ /// Returns a Vector with all the satellites present in this object.
+ inline Vector<SatID> getVectorOfSatID() const
+ {
+ std::vector<SatID> temp;
+ satValueMap::const_iterator pos;
+ for (pos = (*this).begin(); pos != (*this).end(); ++pos)
+ {
+ temp.push_back( (*pos).first );
+ }
+ Vector<SatID> result;
+ result = temp;
+ return result;
+ }
+
+ /// Returns a satValueMap with only this satellite.
+ /// @param satellite Satellite to be extracted.
+ inline satValueMap extractSatID(const SatID& satellite) const
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).extractSatID(satSet);
+ }
+
+ /// Returns a satValueMap with only one satellite, identified by the given parameters.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline satValueMap extractSatID(const int& p, const SatID::SatelliteSystem& s) const
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).extractSatID(tempSatellite);
+ }
+
+ /// Returns a satValueMap with only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be extracted.
+ inline satValueMap extractSatID(const SatIDSet& satSet) const
+ {
+ satValueMap svMap;
+ SatIDSet::const_iterator pos;
+ for (pos = satSet.begin(); pos != satSet.end(); ++pos)
+ {
+ satValueMap::const_iterator itObs;
+ itObs = (*this).find(*pos);
+ if ( itObs != (*this).end() )
+ {
+ svMap[ (*itObs).first ] = (*itObs).second;
+ };
+ }
+ return svMap;
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param satellite Satellite to be kept.
+ inline satValueMap& keepOnlySatID(const SatID& satellite)
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).keepOnlySatID(satSet);
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline satValueMap& keepOnlySatID(const int& p, const SatID::SatelliteSystem& s)
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).keepOnlySatID(tempSatellite);
+ }
+
+ /// Modifies this object, keeping only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be kept.
+ inline satValueMap& keepOnlySatID(const SatIDSet& satSet)
+ {
+ satValueMap svMap = (*this).extractSatID(satSet);
+ (*this) = svMap;
+ return (*this);
+ }
+
+ /// Modifies this object, removing this satellite.
+ /// @param satellite Satellite to be removed.
+ inline satValueMap& removeSatID(const SatID& satellite)
+ {
+ (*this).erase(satellite);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be removed.
+ inline satValueMap& removeSatID(const SatIDSet& satSet)
+ {
+ SatIDSet::const_iterator pos;
+ for (pos = satSet.begin(); pos != satSet.end(); ++pos)
+ {
+ (*this).erase(*pos);
+ }
+ return (*this);
+ }
+
+ /// Returns a reference to the data value (double) with corresponding SatID.
+ /// @param satellite Satellite to be look for.
+ inline double& operator()(const SatID& satellite) throw(SatIDNotFound)
+ {
+ satValueMap::iterator itObs;
+ itObs = (*this).find(satellite);
+ if ( itObs != (*this).end() )
+ {
+ return (*itObs).second;
+ } else GPSTK_THROW(SatIDNotFound("SatID not found in map"));
+ }
+
+ /// Destructor.
+ virtual ~satValueMap() {};
+
+ }; // End of satValueMap
+
+
+ /// Map holding SatID with corresponding typeValueMap.
+ struct satTypeValueMap : std::map<SatID, typeValueMap>
+ {
+
+ /// Returns the number of available satellites.
+ inline size_t numSats() const { return (*this).size(); }
+
+ /** Returns the total number of data elements in the map.
+ * This method DOES NOT suppose that all the satellites have
+ * the same number of type values.
+ */
+ inline size_t numElements() const
+ {
+ size_t numEle(0);
+ satTypeValueMap::const_iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ numEle = numEle + (*it).second.size();
+ }
+ return numEle;
+ }
+
+ /// Returns a SatIDSet with all the satellites present in this object.
+ inline SatIDSet getSatID() const
+ {
+ SatIDSet satSet;
+ satTypeValueMap::const_iterator pos;
+ for (pos = (*this).begin(); pos != (*this).end(); ++pos)
+ {
+ satSet.insert( (*pos).first );
+ }
+ return satSet;
+ }
+
+ /// Returns a Vector with all the satellites present in this object.
+ inline Vector<SatID> getVectorOfSatID() const
+ {
+ std::vector<SatID> temp;
+ satTypeValueMap::const_iterator pos;
+ for (pos = (*this).begin(); pos != (*this).end(); ++pos)
+ {
+ temp.push_back( (*pos).first );
+ }
+ Vector<SatID> result;
+ result = temp;
+ return result;
+ }
+
+ /// Returns a TypeIDSet with all the data types present in this object.
+ inline TypeIDSet getTypeID() const
+ {
+ TypeIDSet typeSet;
+ satTypeValueMap::const_iterator pos;
+ for (pos = (*this).begin(); pos != (*this).end(); ++pos)
+ {
+ typeValueMap::const_iterator it;
+ for (it = (*pos).second.begin(); it != (*pos).second.end(); ++it)
+ {
+ typeSet.insert( (*it).first );
+ }
+ }
+ return typeSet;
+ }
+
+ /// Returns a satTypeValueMap with only this satellite.
+ /// @param satellite Satellite to be extracted.
+ inline satTypeValueMap extractSatID(const SatID& satellite) const
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).extractSatID(satSet);
+ };
+
+ /// Returns a satTypeValueMap with only one satellite, identified by the given parameters.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline satTypeValueMap extractSatID(const int& p, const SatID::SatelliteSystem& s) const
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).extractSatID(tempSatellite);
+ }
+
+ /// Returns a satTypeValueMap with only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be extracted.
+ inline satTypeValueMap extractSatID(const SatIDSet& satSet) const
+ {
+ satTypeValueMap stvMap;
+ SatIDSet::const_iterator pos;
+ for (pos = satSet.begin(); pos != satSet.end(); ++pos)
+ {
+ satTypeValueMap::const_iterator itObs;
+ itObs = (*this).find(*pos);
+ if ( itObs != (*this).end() )
+ {
+ stvMap[ (*itObs).first ] = (*itObs).second;
+ };
+ }
+ return stvMap;
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param satellite Satellite to be kept.
+ inline satTypeValueMap& keepOnlySatID(const SatID& satellite)
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).keepOnlySatID(satSet);
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline satTypeValueMap& keepOnlySatID(const int& p, const SatID::SatelliteSystem& s)
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).keepOnlySatID(tempSatellite);
+ }
+
+ /// Modifies this object, keeping only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be kept.
+ inline satTypeValueMap& keepOnlySatID(const SatIDSet& satSet)
+ {
+ satTypeValueMap stvMap( (*this).extractSatID(satSet) );
+ (*this) = stvMap;
+ return (*this);
+ }
+
+ /// Returns a satTypeValueMap with only this type of value.
+ /// @param type Type of value to be extracted.
+ inline satTypeValueMap extractTypeID(const TypeID& type) const
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).extractTypeID(typeSet);
+ };
+
+ /// Returns a satTypeValueMap with only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be extracted.
+ inline satTypeValueMap extractTypeID(const TypeIDSet& typeSet) const
+ {
+ satTypeValueMap theMap;
+ satTypeValueMap::const_iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ typeValueMap tvMap = (*it).second.extractTypeID(typeSet);
+ if( tvMap.size() > 0 ) { theMap[(*it).first] = tvMap; };
+ };
+ return theMap;
+ };
+
+ /// Modifies this object, keeping only this type of data.
+ /// @param type Type of value to be kept.
+ inline satTypeValueMap& keepOnlyTypeID(const TypeID& type)
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).keepOnlyTypeID(typeSet);
+ }
+
+ /// Modifies this object, keeping only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline satTypeValueMap& keepOnlyTypeID(const TypeIDSet& typeSet)
+ {
+ satTypeValueMap stvMap( (*this).extractTypeID(typeSet) );
+ (*this) = stvMap;
+ return (*this);
+ }
+
+ /// Modifies this object, removing this satellite.
+ /// @param satellite Satellite to be removed.
+ inline satTypeValueMap& removeSatID(const SatID& satellite)
+ {
+ (*this).erase(satellite);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be removed.
+ inline satTypeValueMap& removeSatID(const SatIDSet& satSet)
+ {
+ SatIDSet::const_iterator pos;
+ for (pos = satSet.begin(); pos != satSet.end(); ++pos)
+ {
+ (*this).erase(*pos);
+ }
+ return (*this);
+ }
+
+ /// Modifies this object, removing this type of data.
+ /// @param type Type of value to be removed.
+ inline satTypeValueMap& removeTypeID(const TypeID& type)
+ {
+ satTypeValueMap::iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ (*it).second.removeTypeID(type);
+ }
+ return (*this);
+ }
+
+ /// Modifies this object, removing these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline satTypeValueMap& removeTypeID(const TypeIDSet& typeSet)
+ {
+ TypeIDSet::const_iterator pos;
+ for (pos = typeSet.begin(); pos != typeSet.end(); ++pos)
+ {
+ (*this).removeTypeID(*pos);
+ }
+ return (*this);
+ }
+
+ /// Returns a GPSTk::Vector containing the data values with this type.
+ /// @param type Type of value to be returned.
+ inline Vector<double> getVectorOfTypeID(const TypeID& type) const
+ {
+ std::vector<double> temp;
+ typeValueMap::const_iterator itObs;
+ satTypeValueMap::const_iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ itObs = (*it).second.find(type);
+ if ( itObs != (*it).second.end() )
+ temp.push_back( (*itObs).second );
+ else
+ temp.push_back( 0.0 );
+ }
+ Vector<double> result;
+ result = temp;
+ return result;
+ }
+
+ /// Returns a GPSTk::Matrix containing the data values in this set.
+ /// @param typeSet TypeIDSet of values to be returned.
+ inline Matrix<double> getMatrixOfTypes(const TypeIDSet& typeSet) const
+ {
+ // First, let's create a Matrix<double> of the proper size
+ Matrix<double> tempMat( (*this).numSats(), typeSet.size(), 0.0 );
+
+ size_t numRow(0), numCol(0);
+
+ satTypeValueMap::const_iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ numCol=0;
+ typeValueMap::const_iterator itObs;
+ TypeIDSet::const_iterator pos;
+ for (pos = typeSet.begin(); pos != typeSet.end(); ++pos)
+ {
+ itObs = (*it).second.find(*pos);
+ if ( itObs != (*it).second.end() )
+ tempMat(numRow, numCol) = (*itObs).second;
+ ++numCol;
+ }
+ ++numRow;
+ }
+
+ return tempMat;
+ } // End getMatrixOfTypes(const TypeIDSet& typeSet)
+
+
+ /** Modifies this object, adding one vector of data with this type, one value
+ * per satellite.
+ *
+ * If type already exists, data is overwritten. If the number of values does not
+ * match with the number of satellites, a NumberOfSatsMismatch exception is thrown.
+ *
+ * Given that dataVector does not store information about the satellites the
+ * values correspond to, the user is held responsible for having the data values
+ * stored in dataVector in the proper order regarding the SatIDs in this object.
+ *
+ * @param type Type of data to be added.
+ * @param dataVector GPSTk Vector containing the data to be added.
+ */
+ inline satTypeValueMap& insertTypeIDVector(const TypeID& type, const Vector<double> dataVector) throw(NumberOfSatsMismatch)
+ {
+ if ( dataVector.size() == (*this).numSats() )
+ {
+ size_t pos = 0;
+ satTypeValueMap::iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ (*it).second[type] = dataVector[pos];
+ ++pos;
+ }
+ return (*this);
+ } else GPSTK_THROW(NumberOfSatsMismatch("Number of data values in vector and number of satellites do not match"));
+ }
+
+ /** Modifies this object, adding a matrix of data, one vector per satellite.
+ *
+ * If types already exists, data is overwritten. If the number of rows in matrix does not
+ * match with the number of satellites, a NumberOfSatsMismatch exception is thrown. If the
+ * number of columns in matrix does not match with the number of types in typeSet, a
+ * NumberOfTypesMismatch exception is thrown.
+ *
+ * Given that dataMatrix does not store information about the satellites and types the
+ * values correspond to, the user is held responsible for having those data values
+ * stored in dataMatrix in the proper order regarding the SatIDs in this object and the
+ * provided typeSet.
+ *
+ * @param typeSet Set (TypeIDSet) containing the types of data to be added.
+ * @param dataMatrix GPSTk Matrix containing the data to be added.
+ */
+ inline satTypeValueMap& insertMatrix(const TypeIDSet& typeSet, const Matrix<double> dataMatrix) throw(NumberOfSatsMismatch, NumberOfTypesMismatch)
+ {
+ if ( dataMatrix.rows() != (*this).numSats() ) GPSTK_THROW(NumberOfSatsMismatch("Number of rows in matrix and number of satellites do not match"));
+ if ( dataMatrix.cols() == typeSet.size() )
+ {
+ size_t pos(0);
+ satTypeValueMap::iterator it;
+ for (it = (*this).begin(); it != (*this).end(); ++it)
+ {
+ size_t idx(0);
+ TypeIDSet::const_iterator itSet;
+ for (itSet = typeSet.begin(); itSet != typeSet.end(); ++itSet)
+ {
+ (*it).second[(*itSet)] = dataMatrix(pos,idx);
+ ++idx;
+ }
+ ++pos;
+ }
+ return (*this);
+ } else GPSTK_THROW(NumberOfTypesMismatch("Number of data values per row in matrix and number of types do not match"));
+ }
+
+
+ /// Returns a reference to the typeValueMap with corresponding SatID.
+ /// @param type Type of value to be look for.
+ inline typeValueMap& operator()(const SatID& satellite) throw(SatIDNotFound)
+ {
+ satTypeValueMap::iterator itObs;
+ itObs = (*this).find(satellite);
+ if ( itObs != (*this).end() )
+ {
+ return (*itObs).second;
+ } else GPSTK_THROW(SatIDNotFound("SatID not found in map"));
+ }
+
+
+ /// Convenience output method
+ virtual std::ostream& dump(std::ostream& s, int mode = 0) const;
+
+
+ /// Destructor.
+ virtual ~satTypeValueMap() {};
+
+ }; // End of satTypeValueMap
+
+
+
+ /// stream output for satTypeValueMap
+ std::ostream& operator<<(std::ostream& s, const satTypeValueMap& stvMap);
+
+
+
+ /// Map holding epoch with corresponding satTypeValueMap.
+ typedef std::map<DayTime, satTypeValueMap> epochSatTypeValueMap;
+
+ /// Map holding epoch with corresponding satValueMap.
+ typedef std::map<DayTime, satValueMap> epochSatValueMap;
+
+ /// Map holding epoch with corresponding typeValueMap.
+ typedef std::map<DayTime, typeValueMap> epochTypeValueMap;
+
+
+
+
+ /// Basic gnssData structure.
+ template <class HEADER_CLASS, class BODY_CLASS>
+ struct gnssData
+ {
+
+ /// Header.
+ HEADER_CLASS header;
+
+ /// Body.
+ BODY_CLASS body;
+
+
+ /// Default constructor.
+ gnssData() {}
+
+ /// Common constructor.
+ gnssData(const HEADER_CLASS& h, const BODY_CLASS& b)
+ {
+ header = h;
+ body = b;
+ }
+
+ /// Copy constructor.
+ template<class H, class B>
+ gnssData(const gnssData<H,B>& g)
+ {
+ header = g.header;
+ body = g.body;
+ }
+
+
+ /// Destructor.
+ virtual ~gnssData() {};
+
+ }; // End of gnssData
+
+
+
+
+ // Further type definitions
+
+ /// GNSS data structure with source, epoch and data type as header (common indexes) and satValueMap as body.
+ struct gnssSatValue : gnssData<sourceEpochTypeHeader, satValueMap>
+ {
+
+ /// Returns the number of satellites available in the body (a satValueMap).
+ inline size_t numSats() const { return body.numSats(); };
+
+ /// Returns a SatIDSet with all the satellites present in this object.
+ inline SatIDSet getSatID() const
+ {
+ return (*this).body.getSatID();
+ }
+
+ /// Returns a Vector with all the satellites present in this object.
+ inline Vector<SatID> getVectorOfSatID() const
+ {
+ return (*this).body.getVectorOfSatID();
+ }
+
+ /// Returns a gnssSatValue with only this satellite.
+ /// @param satellite Satellite to be extracted.
+ inline gnssSatValue extractSatID(const SatID& satellite) const
+ {
+ gnssSatValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractSatID(satellite);
+ return result;
+ };
+
+ /// Returns a gnssSatValue with only one satellite, identified by the given parameters.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline gnssSatValue extractSatID(const int& p, const SatID::SatelliteSystem& s) const
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).extractSatID(tempSatellite);
+ };
+
+ /// Returns a gnssSatValue with only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be extracted.
+ inline gnssSatValue extractSatID(const SatIDSet& satSet) const
+ {
+ gnssSatValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractSatID(satSet);
+ return result;
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param satellite Satellite to be kept.
+ inline gnssSatValue& keepOnlySatID(const SatID& satellite)
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).keepOnlySatID(satSet);
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline gnssSatValue& keepOnlySatID(const int& p, const SatID::SatelliteSystem& s)
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).keepOnlySatID(tempSatellite);
+ }
+
+ /// Modifies this object, keeping only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be kept.
+ inline gnssSatValue& keepOnlySatID(const SatIDSet& satSet)
+ {
+ satValueMap svMap ( (*this).body.extractSatID(satSet) );
+ (*this).body = svMap;
+ return (*this);
+ }
+
+ /// Modifies this object, removing this satellite.
+ /// @param satellite Satellite to be removed.
+ inline gnssSatValue& removeSatID(const SatID& satellite)
+ {
+ (*this).body.erase(satellite);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be removed.
+ inline gnssSatValue& removeSatID(const SatIDSet& satSet)
+ {
+ SatIDSet::const_iterator pos;
+ for (pos = satSet.begin(); pos != satSet.end(); ++pos)
+ {
+ (*this).body.erase(*pos);
+ }
+ return (*this);
+ }
+
+ /// Returns a reference to the value (double) with corresponding satellite.
+ /// @param satellite Satellite to be look for.
+ inline double& operator()(const SatID& satellite) throw(SatIDNotFound)
+ {
+ return (*this).body(satellite);
+ }
+
+
+
+ /// Destructor.
+ virtual ~gnssSatValue() {};
+
+ }; // End of gnssSatValue
+
+
+
+ /// GNSS data structure with source, epoch and satellite as header (common indexes) and typeValueMap as body.
+ struct gnssTypeValue : gnssData<sourceEpochSatHeader, typeValueMap>
+ {
+
+ /// Returns the number of types available in the body (a typeValueMap).
+ inline size_t numTypes() const { return body.numTypes(); };
+
+ /// Returns a TypeIDSet with all the data types present in this object.
+ inline TypeIDSet getTypeID() const
+ {
+ return (*this).body.getTypeID();
+ }
+
+ /// Returns a gnssTypeValue with only this type of data.
+ /// @param type Type of value to be extracted.
+ inline gnssTypeValue extractTypeID(const TypeID& type) const
+ {
+ gnssTypeValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractTypeID(type);
+ return result;
+ };
+
+ /// Returns a gnssTypeValue with only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be extracted.
+ inline gnssTypeValue extractTypeID(const TypeIDSet& typeSet) const
+ {
+ gnssTypeValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractTypeID(typeSet);
+ return result;
+ };
+
+ /// Modifies this object, keeping only this type of data.
+ /// @param type Type of value to be kept.
+ inline gnssTypeValue& keepOnlyTypeID(const TypeID& type)
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).keepOnlyTypeID(typeSet);
+ }
+
+ /// Modifies this object, keeping only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline gnssTypeValue& keepOnlyTypeID(const TypeIDSet& typeSet)
+ {
+ typeValueMap tvMap( (*this).body.extractTypeID(typeSet) );
+ (*this).body = tvMap;
+ return (*this);
+ }
+
+ /// Modifies this object, removing this type of data.
+ /// @param type Type of value to be removed.
+ inline gnssTypeValue& removeTypeID(const TypeID& type)
+ {
+ (*this).body.erase(type);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline gnssTypeValue& removeTypeID(const TypeIDSet& typeSet)
+ {
+ TypeIDSet::const_iterator pos;
+ for (pos = typeSet.begin(); pos != typeSet.end(); ++pos)
+ {
+ (*this).body.erase(*pos);
+ }
+ return (*this);
+ }
+
+ /// Returns a reference to the value (double) with corresponding type.
+ /// @param type TypeID to be look for.
+ inline double& operator()(const TypeID& type) throw(TypeIDNotFound)
+ {
+ return (*this).body(type);
+ }
+
+
+ /// Destructor.
+ virtual ~gnssTypeValue() {};
+
+ }; // End of gnssTypeValue
+
+
+
+ /// GNSS data structure with source and epoch as header (common indexes) and satTypeValueMap as body.
+ struct gnssSatTypeValue : gnssData<sourceEpochHeader, satTypeValueMap>
+ {
+
+ /// Returns the number of satellites available in the body (a satTypeValueMap).
+ inline size_t numSats() const { return body.numSats(); };
+
+ /// Returns a TypeIDSet with all the data types present in this object.
+ inline TypeIDSet getTypeID() const
+ {
+ return (*this).body.getTypeID();
+ }
+
+ /// Returns a SatIDSet with all the satellites present in this object.
+ inline SatIDSet getSatID() const
+ {
+ return (*this).body.getSatID();
+ }
+
+ /// Returns a Vector with all the satellites present in this object.
+ inline Vector<SatID> getVectorOfSatID() const
+ {
+ return (*this).body.getVectorOfSatID();
+ }
+
+ /** Returns the total number of data elements in the body.
+ * This method DOES NOT suppose that all the satellites have
+ * the same number of type values.
+ */
+ inline size_t numElements() const { return body.numElements(); };
+
+ /// Returns a gnssSatTypeValue with only this satellite.
+ /// @param satellite Satellite to be extracted.
+ inline gnssSatTypeValue extractSatID(const SatID& satellite) const
+ {
+ gnssSatTypeValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractSatID(satellite);
+ return result;
+ };
+
+ /// Returns a gnssSatTypeValue with only one satellite, identified by the given parameters.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline gnssSatTypeValue extractSatID(const int& p, const SatID::SatelliteSystem& s) const
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).extractSatID(tempSatellite);
+ };
+
+ /// Returns a gnssSatTypeValue with only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be extracted.
+ inline gnssSatTypeValue extractSatID(const SatIDSet& satSet) const
+ {
+ gnssSatTypeValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractSatID(satSet);
+ return result;
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param satellite Satellite to be kept.
+ inline gnssSatTypeValue& keepOnlySatID(const SatID& satellite)
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).keepOnlySatID(satSet);
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline gnssSatTypeValue& keepOnlySatID(const int& p, const SatID::SatelliteSystem& s)
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).keepOnlySatID(tempSatellite);
+ }
+
+ /// Modifies this object, keeping only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be kept.
+ inline gnssSatTypeValue& keepOnlySatID(const SatIDSet& satSet)
+ {
+ satTypeValueMap stvMap( (*this).body.extractSatID(satSet) );
+ (*this).body = stvMap;
+ return (*this);
+ }
+
+ /// Returns a gnssSatTypeValue with only this type of data.
+ /// @param type Type of value to be extracted.
+ inline gnssSatTypeValue extractTypeID(const TypeID& type) const
+ {
+ gnssSatTypeValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractTypeID(type);
+ return result;
+ };
+
+ /// Returns a gnssSatTypeValue with only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be extracted.
+ inline gnssSatTypeValue extractTypeID(const TypeIDSet& typeSet) const
+ {
+ gnssSatTypeValue result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractTypeID(typeSet);
+ return result;
+ };
+
+ /// Modifies this object, keeping only this type of data.
+ /// @param type Type of value to be kept.
+ inline gnssSatTypeValue& keepOnlyTypeID(const TypeID& type)
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).keepOnlyTypeID(typeSet);
+ }
+
+ /// Modifies this object, keeping only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline gnssSatTypeValue& keepOnlyTypeID(const TypeIDSet& typeSet)
+ {
+ satTypeValueMap stvMap( (*this).body.extractTypeID(typeSet) );
+ (*this).body = stvMap;
+ return (*this);
+ }
+
+ /// Modifies this object, removing this satellite.
+ /// @param satellite Satellite to be removed.
+ inline gnssSatTypeValue& removeSatID(const SatID& satellite)
+ {
+ (*this).body.erase(satellite);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be removed.
+ inline gnssSatTypeValue& removeSatID(const SatIDSet& satSet)
+ {
+ SatIDSet::const_iterator pos;
+ for (pos = satSet.begin(); pos != satSet.end(); ++pos)
+ {
+ (*this).body.erase(*pos);
+ }
+ return (*this);
+ }
+
+ /// Modifies this object, removing this type of data.
+ /// @param type Type of value to be kept.
+ inline gnssSatTypeValue& removeTypeID(const TypeID& type)
+ {
+ (*this).body.removeTypeID(type);
+ return (*this);
+ }
+
+ /// Modifies this object, removing these types of data
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline gnssSatTypeValue& removeTypeID(const TypeIDSet& typeSet)
+ {
+ TypeIDSet::const_iterator pos;
+ for (pos = typeSet.begin(); pos != typeSet.end(); ++pos)
+ {
+ (*this).body.removeTypeID(*pos);
+ }
+ return (*this);
+ }
+
+ /// Returns a GPSTk::Vector containing the data values with this type.
+ /// @param type Type of value to be returned.
+ inline Vector<double> getVectorOfTypeID(const TypeID& type) const
+ {
+ return ( (*this).body.getVectorOfTypeID(type) );
+ }
+
+
+ /** Modifies this object, adding one vector of data with this type, one value
+ * per satellite.
+ *
+ * If type already exists, data is overwritten. If the number of values does not
+ * match with the number of satellites, a NumberOfSatsMismatch exception is thrown.
+ *
+ * Given that dataVector does not store information about the satellites the
+ * values correspond to, the user is held responsible for having the data values
+ * stored in dataVector in the proper order regarding the SatIDs in this object.
+ *
+ * @param type Type of data to be added.
+ * @param dataVector GPSTk Vector containing the data to be added.
+ */
+ inline gnssSatTypeValue& insertTypeIDVector(const TypeID& type, const Vector<double> dataVector) throw(NumberOfSatsMismatch)
+ {
+ (*this).body.insertTypeIDVector(type, dataVector);
+ return (*this);
+ }
+
+
+ /** Modifies this object, adding a matrix of data, one vector per satellite.
+ *
+ * If types already exists, data is overwritten. If the number of rows in matrix does not
+ * match with the number of satellites, a NumberOfSatsMismatch exception is thrown. If the
+ * number of columns in matrix does not match with the number of types in typeSet, a
+ * NumberOfTypesMismatch exception is thrown.
+ *
+ * Given that dataMatrix does not store information about the satellites and types the
+ * values correspond to, the user is held responsible for having those data values
+ * stored in dataMatrix in the proper order regarding the SatIDs in this object and the
+ * provided typeSet.
+ *
+ * @param typeSet Set (TypeIDSet) containing the types of data to be added.
+ * @param dataMatrix GPSTk Matrix containing the data to be added.
+ */
+ inline gnssSatTypeValue& insertMatrix(const TypeIDSet& typeSet, const Matrix<double> dataMatrix) throw(NumberOfSatsMismatch, NumberOfTypesMismatch)
+ {
+ (*this).body.insertMatrix(typeSet, dataMatrix);
+ return (*this);
+ }
+
+
+ /** Returns a reference to the typeValueMap with corresponding satellite.
+ * This operator allows direct access to data values when chained with the
+ * typeValueMap::operator() like this: gRin(sat21)(TypeID::C1).
+ *
+ * Example:
+ *
+ * @code
+ * RinexObsStream rin("bahr1620.04o"); // Create the input file stream
+ * gnssRinex gRin; // Declare a gnssRinex object
+ * SatID sat21(21,SatID::systemGPS); // Create a satellite object
+ *
+ * // Feed the gRin data structure
+ * while(rin >> gRin)
+ * {
+ * try
+ * {
+ * if (gRin(sat21)(TypeID::C1) == 0.0) gRin(sat21)(TypeID::C1) = 123.456;
+ * cout << "C1 value for satellite G21: " << gRin(sat21)(TypeID::C1) << endl;
+ * }
+ * catch (SatIDNotFound& e)
+ * {
+ * cout << endl << "Satellite G21 not found." << endl;
+ * };
+ * }
+ * @endcode
+ *
+ * @param satellite Satellite to be looked for.
+ */
+ inline typeValueMap& operator()(const SatID& satellite) throw(SatIDNotFound)
+ {
+ return (*this).body(satellite);
+ }
+
+
+ /// Destructor.
+ virtual ~gnssSatTypeValue() {};
+
+ }; // End of gnssSatTypeValue
+
+
+
+ /// GNSS data structure with source, epoch and extra Rinex data as header (common indexes) and satTypeValueMap as body.
+ struct gnssRinex : gnssSatTypeValue
+ {
+
+ /// Header.
+ sourceEpochRinexHeader header;
+
+ /// Returns a gnssRinex with only this satellite.
+ /// @param satellite Satellite to be extracted.
+ inline gnssRinex extractSatID(const SatID& satellite) const
+ {
+ gnssRinex result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractSatID(satellite);
+ return result;
+
+ };
+
+ /// Returns a gnssRinex with only one satellite, identified by the given parameters.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline gnssRinex extractSatID(const int& p, const SatID::SatelliteSystem& s) const
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).extractSatID(tempSatellite);
+ };
+
+ /// Returns a gnssRinex with only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be extracted.
+ inline gnssRinex extractSatID(const SatIDSet& satSet) const
+ {
+ gnssRinex result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractSatID(satSet);
+ return result;
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param satellite Satellite to be kept.
+ inline gnssRinex& keepOnlySatID(const SatID& satellite)
+ {
+ SatIDSet satSet;
+ satSet.insert(satellite);
+ return (*this).keepOnlySatID(satSet);
+ }
+
+ /// Modifies this object, keeping only this satellite.
+ /// @param p Satellite PRN number.
+ /// @param p System the satellite belongs to.
+ inline gnssRinex& keepOnlySatID(const int& p, const SatID::SatelliteSystem& s)
+ {
+ SatID tempSatellite(p, s); // We build a temporary SatID object
+ return (*this).keepOnlySatID(tempSatellite);
+ }
+
+ /// Modifies this object, keeping only these satellites.
+ /// @param satSet Set (SatIDSet) containing the satellites to be kept.
+ inline gnssRinex& keepOnlySatID(const SatIDSet& satSet)
+ {
+ satTypeValueMap stvMap( (*this).body.extractSatID(satSet) );
+ (*this).body = stvMap;
+ return (*this);
+ }
+
+ /// Returns a gnssRinex with only this type of data.
+ /// @param type Type of value to be extracted.
+ inline gnssRinex extractTypeID(const TypeID& type) const
+ {
+ gnssRinex result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractTypeID(type);
+ return result;
+ };
+
+ /// Returns a gnssRinex with only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be extracted.
+ inline gnssRinex extractTypeID(const TypeIDSet& typeSet) const
+ {
+ gnssRinex result;
+ result.header = (*this).header;
+ result.body = (*this).body.extractTypeID(typeSet);
+ return result;
+
+ };
+
+ /// Modifies this object, keeping only this type of data.
+ /// @param type Type of value to be kept.
+ inline gnssRinex& keepOnlyTypeID(const TypeID& type)
+ {
+ TypeIDSet typeSet;
+ typeSet.insert(type);
+ return (*this).keepOnlyTypeID(typeSet);
+ }
+
+ /// Modifies this object, keeping only these types of data.
+ /// @param typeSet Set (TypeIDSet) containing the types of data to be kept.
+ inline gnssRinex& keepOnlyTypeID(const TypeIDSet& typeSet)
+ {
+ satTypeValueMap stvMap( (*this).body.extractTypeID(typeSet) );
+ (*this).body = stvMap;
+ return (*this);
+ }
+
+
+ /// Destructor.
+ virtual ~gnssRinex() {};
+
+ }; // End of gnssRinex
+
+
+
+ /// Object defining the structure of GNSS equation. The header is the prefit and the body is a TypeIDSet containing
+ /// the unknowns.
+ struct gnssEquationDefinition : gnssData<TypeID, TypeIDSet>
+ {
+
+ /// Default constructor.
+ gnssEquationDefinition() {};
+
+
+ /// Common constructor.
+ gnssEquationDefinition(const TypeID& h, const TypeIDSet& b)
+ {
+ header = h;
+ body = b;
+ }
+
+
+ /// Destructor.
+ virtual ~gnssEquationDefinition() {};
+
+
+ }; // End of gnssEquationDefinition
+
+
+
+
+ /// Stream input for gnssSatTypeValue.
+ /// @param i Input stream.
+ /// @param f gnssSatTypeValue receiving the data.
+ std::istream& operator>>(std::istream& i, gnssSatTypeValue& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+
+ /// Input for gnssSatTypeValue from RinexObsHeader.
+ /// @param roh RinexObsHeader holding the data.
+ /// @param f gnssSatTypeValue receiving the data.
+ gnssSatTypeValue& operator>>(const RinexObsHeader& roh, gnssSatTypeValue& f);
+
+ /// Input for gnssSatTypeValue from RinexObsData.
+ /// @param rod RinexObsData holding the data.
+ /// @param f gnssSatTypeValue receiving the data.
+ gnssSatTypeValue& operator>>(const RinexObsData& rod, gnssSatTypeValue& f);
+
+ /// Input for gnssRinex from RinexObsHeader.
+ /// @param roh RinexObsHeader holding the data.
+ /// @param f gnssRinex receiving the data.
+ gnssRinex& operator>>(const RinexObsHeader& roh, gnssRinex& f);
+
+ /// Input for gnssRinex from RinexObsData.
+ /// @param rod RinexObsData holding the data.
+ /// @param f gnssRinex receiving the data.
+ gnssRinex& operator>>(const RinexObsData& rod, gnssRinex& f);
+
+
+ /// Convenience function to convert from SatID system to SourceID type.
+ /// @param sid Satellite ID.
+ inline SourceID::SourceType SatIDsystem2SourceIDtype(const SatID& sid)
+ {
+ // Select the right system the data came from
+ switch(sid.system)
+ {
+ case SatID::systemGPS:
+ return SourceID::GPS;
+ break;
+ case SatID::systemGalileo:
+ return SourceID::Galileo;
+ break;
+ case SatID::systemGlonass:
+ return SourceID::Glonass;
+ break;
+ case SatID::systemGeosync:
+ return SourceID::Geosync;
+ break;
+ case SatID::systemLEO:
+ return SourceID::LEO;
+ break;
+ case SatID::systemTransit:
+ return SourceID::Transit;
+ break;
+ case SatID::systemMixed:
+ return SourceID::Mixed;
+ break;
+ default:
+ return SourceID::Unknown;
+ }
+ } // End SatIDsystem2SourceIDtype(const SatID& sid)
+
+
+ /// Convenience function to fill a typeValueMap with data from RinexObsTypeMap.
+ inline typeValueMap FilltypeValueMapwithRinexObsTypeMap(const RinexObsData::RinexObsTypeMap& otmap)
+ {
+ // RinexObsTypeMap is a map from RinexObsType to RinexDatum:
+ // std::map<RinexObsHeader::RinexObsType, RinexDatum>
+ // Let's define a iterator to visit the observations type map
+ RinexObsData::RinexObsTypeMap::const_iterator itObs;
+
+ // We will need a typeValueMap
+ typeValueMap tvMap;
+
+ // Let's visit the RinexObsTypeMap (RinexObsType -> RinexDatum)
+ for (itObs = otmap.begin(); itObs!= otmap.end(); ++itObs)
+ {
+
+ TypeID type( RinexType2TypeID( (*itObs).first ) );
+ tvMap[ type ] = (*itObs).second.data;
+
+ // If this is a phase measurement, let's store corresponding LLI and SSI for this SV and frequency
+ // Also, the values for phase measurements will be given in meters
+ if (type == TypeID::L1)
+ {
+ tvMap[TypeID::LLI1] = (*itObs).second.lli;
+ tvMap[TypeID::SSI1] = (*itObs).second.ssi;
+ tvMap[ type ] = tvMap[ type ] * L1_WAVELENGTH;
+ }
+ if (type == TypeID::L2)
+ {
+ tvMap[TypeID::LLI2] = (*itObs).second.lli;
+ tvMap[TypeID::SSI2] = (*itObs).second.ssi;
+ tvMap[ type ] = tvMap[ type ] * L2_WAVELENGTH;
+ }
+ if (type == TypeID::L5)
+ {
+ tvMap[TypeID::LLI5] = (*itObs).second.lli;
+ tvMap[TypeID::SSI5] = (*itObs).second.ssi;
+ tvMap[ type ] = tvMap[ type ] * L5_WAVELENGTH;
+ }
+ if (type == TypeID::L6)
+ {
+ tvMap[TypeID::LLI6] = (*itObs).second.lli;
+ tvMap[TypeID::SSI6] = (*itObs).second.ssi;
+ tvMap[ type ] = tvMap[ type ] * L6_WAVELENGTH;
+ }
+ if (type == TypeID::L7)
+ {
+ tvMap[TypeID::LLI7] = (*itObs).second.lli;
+ tvMap[TypeID::SSI7] = (*itObs).second.ssi;
+ tvMap[ type ] = tvMap[ type ] * L7_WAVELENGTH;
+ }
+ if (type == TypeID::L8)
+ {
+ tvMap[TypeID::LLI8] = (*itObs).second.lli;
+ tvMap[TypeID::SSI8] = (*itObs).second.ssi;
+ tvMap[ type ] = tvMap[ type ] * L8_WAVELENGTH;
+ }
+ }
+
+ return tvMap;
+
+ } // End FilltypeValueMapwithRinexObsTypeMap(const RinexObsData::RinexObsTypeMap& otmap)
+
+
+ /// Convenience function to fill a satTypeValueMap with data from RinexObsData.
+ /// @param rod RinexObsData holding the data.
+ inline satTypeValueMap FillsatTypeValueMapwithRinexObsData(const RinexObsData& rod)
+ {
+
+ // We need to declare a satTypeValueMap
+ satTypeValueMap theMap;
+
+ // Let's define the "it" iterator to visit the observations PRN map
+ // RinexSatMap is a map from SatID to RinexObsTypeMap:
+ // std::map<SatID, RinexObsTypeMap>
+ RinexObsData::RinexSatMap::const_iterator it;
+ for (it = rod.obs.begin(); it!= rod.obs.end(); ++it)
+ {
+ // RinexObsTypeMap is a map from RinexObsType to RinexDatum:
+ // std::map<RinexObsHeader::RinexObsType, RinexDatum>
+ // The "second" field of a RinexSatMap (it) is a RinexObsTypeMap (otmap)
+ RinexObsData::RinexObsTypeMap otmap = (*it).second;
+
+ theMap[(*it).first] = FilltypeValueMapwithRinexObsTypeMap(otmap);
+
+ }
+
+ return theMap;
+
+ } // End FillsatTypeValueMapwithRinexObsData(const RinexObsData& rod)
+
+
+ /** Stream input for gnssRinex.
+ * This handy operator allows to fed a gnssRinex data structure directly from
+ * an input stream such a RinexObsStream object. For example:
+ *
+ * @code
+ * RinexObsStream rin("bahr1620.04o"); // Create the input file stream
+ * gnssRinex gRin; // Declare a gnssRinex object
+ *
+ * // Feed the gRin data structure
+ * while(rin >> gRin) {
+ * // Lots of stuff here...
+ * }
+ * @endcode
+ */
+ std::istream& operator>>(std::istream& i, gnssRinex& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ /**
+ * This function constructs a DayTime object from the given parameters.
+ * @param line the encoded time string found in the RINEX record.
+ * @param hdr the RINEX Observation Header object for the current RINEX file.
+ */
+ inline DayTime parseTime(const std::string& line, const RinexObsHeader& hdr) throw(FFStreamError)
+ {
+ try
+ {
+ // check if the spaces are in the right place - an easy
+ // way to check if there's corruption in the file
+ if ( (line[0] != ' ') ||
+ (line[3] != ' ') ||
+ (line[6] != ' ') ||
+ (line[9] != ' ') ||
+ (line[12] != ' ') ||
+ (line[15] != ' '))
+ {
+ FFStreamError e("Invalid time format");
+ GPSTK_THROW(e);
+ }
+
+ // if there's no time, just return a bad time
+ if (line.substr(0,26) == std::string(26, ' '))
+ {
+ return DayTime(DayTime::BEGINNING_OF_TIME);
+ }
+
+ int year, month, day, hour, min;
+ double sec;
+ int yy = hdr.firstObs.year()/100;
+ yy *= 100;
+
+ year = StringUtils::asInt( line.substr(1, 2 ));
+ month = StringUtils::asInt( line.substr(4, 2 ));
+ day = StringUtils::asInt( line.substr(7, 2 ));
+ hour = StringUtils::asInt( line.substr(10, 2 ));
+ min = StringUtils::asInt( line.substr(13, 2 ));
+ sec = StringUtils::asDouble(line.substr(15, 11));
+
+ // Real Rinex has epochs 'yy mm dd hr 59 60.0' surprisingly often....
+ double ds=0;
+ if(sec >= 60.) { ds=sec; sec=0.0; }
+ DayTime rv(yy+year, month, day, hour, min, sec);
+ if(ds != 0) rv += ds;
+
+ return rv;
+ }
+ // string exceptions for substr are caught here
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " + std::string(e.what()));
+ GPSTK_THROW(err);
+ }
+ catch (gpstk::Exception& e)
+ {
+ std::string text;
+ for(int i=0; i<(int)e.getTextCount(); i++) text += e.getText(i);
+ FFStreamError err("gpstk::Exception in parseTime(): " + text);
+ GPSTK_THROW(err);
+ }
+
+ }
+
+
+ //@}
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/DayTime.cpp b/dev/src/DayTime.cpp
new file mode 100644
index 0000000..15b9d7f
--- /dev/null
+++ b/dev/src/DayTime.cpp
@@ -0,0 +1,1922 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file DayTime.cpp
+ * gpstk::DayTime - encapsulates date and time-of-day in many formats
+ */
+
+#include <iostream>
+#include <iomanip>
+#include <string>
+#include <ctime>
+
+#include "gpstkplatform.h"
+#include "DayTime.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk::StringUtils;
+
+ // ----------- Part 0: month and day labels -------------------
+ //
+ /// Long month names for converstion from numbers to strings
+ static const char *MonthNames[] = {
+ "Error",
+ "January","February", "March", "April",
+ "May", "June","July", "August",
+ "September", "October", "November", "December"
+ };
+
+ /// Short month names for converstion from numbers to strings
+ static const char *MonthAbbrevNames[] = {
+ "err", "Jan", "Feb", "Mar", "Apr", "May", "Jun","Jul",
+ "Aug", "Sep", "Oct", "Nov", "Dec"
+ };
+
+ /// Long day of week names for converstion from numbers to strings
+ static const char *DayOfWeekNames[] = {
+ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
+ "Friday", "Saturday"
+ };
+
+ /// Short day of week names for converstion from numbers to strings
+ static const char *DayOfWeekAbbrevNames[] = {
+ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
+ };
+
+ // ----------- Part 1: exceptions and constants ---------------
+ //
+
+ // mSod is sod*FACTOR and mSec is seconds*FACTOR
+ // NB FACTOR must be <, and a factor of, 1,000,000
+ const long DayTime::FACTOR = 1000;
+
+ // Seconds per half a GPS week.
+ const long DayTime::HALFWEEK = 302400;
+ // Seconds per whole GPS week.
+ const long DayTime::FULLWEEK = 604800;
+ // Seconds per day.
+ const long DayTime::SEC_DAY = 86400;
+ // Milliseconds in a day.
+ const long DayTime::MS_PER_DAY = SEC_DAY*1000;
+
+ // Conversion offset, Julian Date to Modified Julian Date.
+ const double DayTime::JD_TO_MJD = 2400000.5;
+ // 'Julian day' offset from MJD
+ const long DayTime::MJD_JDAY = 2400001;
+ // 'Julian day' of GPS epoch (Jan. 1, 1980).
+ const long DayTime::GPS_EPOCH_JDAY = 2444245L;
+ // Modified Julian Date of GPS epoch (Jan. 1, 1980).
+ const long DayTime::GPS_EPOCH_MJD = 44244L;
+ // Modified Julian Date of UNIX epoch (Jan. 1, 1970).
+ const long DayTime::UNIX_MJD = 40587L;
+
+ // One nanosecond tolerance.
+ const double DayTime::ONE_NSEC_TOLERANCE = 1e-9;
+ // One microsecond tolerance.
+ const double DayTime::ONE_USEC_TOLERANCE = 1e-6;
+ // One millisecond tolerance.
+ const double DayTime::ONE_MSEC_TOLERANCE = 1e-3;
+ // One second tolerance.
+ const double DayTime::ONE_SEC_TOLERANCE = 1;
+ // One minute tolerance.
+ const double DayTime::ONE_MIN_TOLERANCE = 60;
+ // One hour tolerance.
+ const double DayTime::ONE_HOUR_TOLERANCE = 3600;
+
+ // Tolerance for time equality.
+#ifdef _WIN32
+ double DayTime::DAYTIME_TOLERANCE = ONE_USEC_TOLERANCE;
+#else
+ double DayTime::DAYTIME_TOLERANCE = ONE_NSEC_TOLERANCE;
+#endif
+
+ // 'julian day' of earliest epoch expressible by DayTime; 1/1/4713 B.C.
+ const long DayTime::BEGIN_LIMIT_JDAY=0;
+ // 'julian day' of latest 'julian day' expressible by DayTime,
+ // 1/1/4713 A.D.
+ const long DayTime::END_LIMIT_JDAY=3442448;
+ // earliest representable DayTime
+ const DayTime DayTime::BEGINNING_OF_TIME =
+ DayTime(DayTime::BEGIN_LIMIT_JDAY, 0, 0.0, DayTime::DAYTIME_TOLERANCE);
+ // latest representable DayTime
+ const DayTime DayTime::END_OF_TIME =
+ DayTime(DayTime::END_LIMIT_JDAY, 0, 0.0, DayTime::DAYTIME_TOLERANCE);
+
+ // If true, check the validity of inputs and throw DayTimeException
+ // on failure.
+ bool DayTime::DAYTIME_TEST_VALID = true;
+
+ // ----------- Part 2: member functions: tolerance -------------
+ //
+ DayTime& DayTime::setTolerance(const double tol)
+ throw()
+ {
+ tolerance = tol;
+ return *this;
+ }
+
+ // ----------- Part 3: member functions: constructors ----------
+ //
+ // Default constructor; initializes to current system time.
+ DayTime::DayTime()
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setSystemTime();
+ }
+
+ // GPS time with full week constructor.
+ // @param GPSWeek full week number
+ // @param GPSSecond seconds of week.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(short GPSWeek,
+ double GPSSecond,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setGPSfullweek(GPSWeek, GPSSecond, f);
+ }
+
+ // GPS time constructor.
+ // @param GPSWeek 10 bit week number.
+ // @param GPSSecond Seconds of week.
+ // @param year Four-digit year.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(short GPSWeek,
+ double GPSSecond,
+ short ayear,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setGPS(GPSWeek, GPSSecond, ayear, f);
+ }
+
+ // GPS time constructor.
+ // @param GPSWeek GPS 10 bit week number.
+ // @param zcount Z-count (seconds of week / 1.5)
+ // @param year Four-digit year.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(short GPSWeek,
+ long zcount,
+ short ayear,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setGPS(GPSWeek, zcount, ayear, f);
+ }
+
+ // GPS time constructor.
+ // @param fullZcount Full z-count (3 MSB unused, mid 10 bits -
+ // week number, 19 LSB "normal" z-count).
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(unsigned long fullZcount,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setGPS(fullZcount, f);
+ }
+
+ // GPS Zcount constructor.
+ // @param z GPSZcount object to set to
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(const GPSZcount& z,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setGPSZcount(z, f);
+ }
+
+ // CommonTime constructor.
+ // @param c CommonTime object to set to
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(const CommonTime& c,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setCommonTime(c, f);
+ }
+
+ // Calendar time constructor.
+ // @param yy four-digit year.
+ // @param mm month of year (1-based).
+ // @param dd day of month (1-based).
+ // @param hh hour of day.
+ // @param min minutes of hour.
+ // @param sec seconds of minute.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(short yy,
+ short mm,
+ short dd,
+ short hh,
+ short min,
+ double sec,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setYMDHMS(yy, mm, dd, hh, min, sec, f);
+ }
+
+ // Modified Julian date time constructor.
+ // @param julian Modified Julian date.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(long double mjd,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setMJD(mjd, f);
+ }
+
+ // Modified Julian date time constructor.
+ // @param MJD Modified Julian date as double.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(double mjd,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setMJD((long double)(mjd), f);
+ }
+
+ // Day of year time constructor.
+ // @param year Four-digit year.
+ // @param DOY Day of year.
+ // @param SOD Seconds of day.
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(short year,
+ short doy,
+ double sod,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setYDoySod(year,doy,sod,f);
+ }
+
+ // UNIX time constructor.
+ // @param t timeval structure (typically from gettimeofday()).
+ // @param f Time frame (see #TimeFrame)
+ DayTime::DayTime(const struct timeval& t,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ setUnix(t,f);
+ timeFrame = f;
+ }
+
+ // ----------- Part 4: member functions: assignment and copy ----------
+ //
+ // Copy constructor
+ DayTime::DayTime(const DayTime &right)
+ throw(DayTime::DayTimeException)
+ {
+ init();
+ *this = right;
+ }
+
+ // Assignment operator.
+ DayTime& DayTime::operator=(const DayTime& right)
+ throw()
+ {
+ jday = right.jday;
+ mSod = right.mSod;
+ mSec = right.mSec;
+ timeFrame = right.timeFrame;
+ tolerance = right.tolerance;
+ return *this;
+ }
+
+ // ----------- Part 5: member functions: arithmetic ------------
+ //
+ // DayTime difference function.
+ // @param right DayTime to subtract from this one.
+ // @return difference in seconds.
+ double DayTime::operator-(const DayTime& right) const
+ throw()
+ {
+ return ( SEC_DAY * double(jday - right.jday)
+ + (double(mSod - right.mSod) + mSec - right.mSec) / FACTOR );
+ }
+
+ // Add seconds to this time.
+ // @param seconds Number of seconds to increase this time by.
+ // @return The new time incremented by \c seconds.
+ DayTime DayTime::operator+(double seconds) const
+ throw()
+ {
+ return DayTime(*this).addSeconds(seconds);
+ }
+
+ // Subtract seconds from this time.
+ // @param seconds Number of seconds to decrease this time by.
+ // @return The new time decremented by \c seconds.
+ DayTime DayTime::operator-(double seconds) const
+ throw()
+ {
+ return DayTime(*this).addSeconds(-seconds);
+ }
+
+ // Add seconds to this time.
+ // @param seconds Number of seconds to increase this time by.
+ DayTime& DayTime::operator+=(double seconds)
+ throw(DayTime::DayTimeException)
+ {
+ addSeconds(seconds);
+ return *this;
+ }
+
+ // Subtract seconds from this time.
+ // @param sec Number of seconds to decrease this time by.
+ DayTime& DayTime::operator-=(double seconds)
+ throw(DayTime::DayTimeException)
+ {
+ addSeconds(-seconds);
+ return *this;
+ }
+
+ // Add seconds to this object.
+ // @param seconds Number of seconds to add
+ DayTime& DayTime::addSeconds(double seconds)
+ throw(DayTime::DayTimeException)
+ {
+ addLongDeltaTime(0, 0, seconds * FACTOR);
+ return *this;
+ }
+
+ // Add (integer) seconds to this object.
+ // @param seconds Number of seconds to add.
+ DayTime& DayTime::addSeconds(long seconds)
+ throw(DayTime::DayTimeException)
+ {
+ long ldd, lds ;
+ ldd = seconds / SEC_DAY ; // days
+ seconds %= SEC_DAY ; // seconds-of-day
+ lds = seconds * FACTOR ;
+ addLongDeltaTime(ldd, lds, 0) ;
+ return *this ;
+ }
+
+ // Add (integer) milliseconds to this object.
+ // @param msec Number of milliseconds to add.
+ DayTime& DayTime::addMilliSeconds(long msec)
+ throw(DayTime::DayTimeException)
+ {
+ long ldd, lds ;
+ ldd = msec / MS_PER_DAY ; // days
+ msec %= MS_PER_DAY ; // milliseconds-of-day
+ lds = msec * FACTOR / 1000 ;
+ addLongDeltaTime(ldd, lds, 0) ;
+ return *this;
+ }
+
+ // Add (integer) microseconds to this object.
+ // @param usec Number of microseconds to add.
+ DayTime& DayTime::addMicroSeconds(long usec)
+ throw(DayTime::DayTimeException)
+ {
+ // NB FACTOR must be <, and a factor of, 1000000 :
+ long ldd, lds, mult = (1000000 / FACTOR);
+ double ds;
+ ldd = usec / (1000000 * SEC_DAY) ; // days
+ usec %= (1000000 * SEC_DAY) ; // usec-of-day
+ lds = usec / mult; // long sec/FACTOR's
+ ds = double(usec % mult) / mult; // frac sec/FACTOR's
+ addLongDeltaTime(ldd, lds, ds);
+ return *this;
+ }
+
+ // ----------- Part 6: member functions: comparisons ------------
+ //
+ // Equality operator.
+ bool DayTime::operator==(const DayTime &right) const
+ throw()
+ {
+ // use the smaller of the two tolerances for comparison
+ return (ABS(operator-(right)) <=
+ ((tolerance > right.tolerance) ? right.tolerance : tolerance));
+ }
+ // Inequality operator.
+ bool DayTime::operator!=(const DayTime &right) const
+ throw()
+ {
+ return !(operator==(right));
+ }
+ // Comparison operator (less-than).
+ bool DayTime::operator<(const DayTime &right) const
+ throw()
+ {
+ return (operator-(right) <
+ -((tolerance > right.tolerance) ? right.tolerance : tolerance));
+ }
+ // Comparison operator (greater-than).
+ bool DayTime::operator>(const DayTime &right) const
+ throw()
+ {
+ return (operator-(right) >
+ ((tolerance > right.tolerance) ? right.tolerance : tolerance));
+ }
+ // Comparison operator (less-than or equal-to).
+ bool DayTime::operator<=(const DayTime &right) const
+ throw()
+ {
+ return !(operator>(right));
+ }
+ // Comparison operator (greater-than or equal-to).
+ bool DayTime::operator>=(const DayTime &right) const
+ throw()
+ {
+ return !(operator<(right));
+ }
+
+ // ----------- Part 7: member functions: time frame-----------------------
+ //
+ DayTime& DayTime::setAllButTimeFrame(const DayTime& right)
+ throw(DayTime::DayTimeException)
+ {
+ TimeFrame t = timeFrame;
+ *this = right;
+ timeFrame = t;
+ return *this;
+ }
+
+ // ----------- Part 8: member functions: get -----------------------------
+ //
+ //
+ // These routines let you retrieve the time stored in this object.
+ //
+ // Get Julian Date JD
+ double DayTime::JD() const throw()
+ {
+ return (double(jday) + secOfDay() / SEC_DAY - 0.5);
+ }
+
+ // Get Modified Julian Date MJD
+ double DayTime::MJD() const
+ throw()
+ {
+ return JD() - JD_TO_MJD ;
+ }
+
+ // Get year.
+ short DayTime::year() const
+ throw()
+ {
+ int yy, mm, dd;
+ convertJDtoCalendar(jday, yy, mm, dd);
+ return yy;
+ }
+
+ // Get month of year.
+ short DayTime::month() const
+ throw()
+ {
+ int yy, mm, dd;
+ convertJDtoCalendar(jday, yy, mm, dd);
+ return mm;
+ }
+
+ // Get day of month.
+ short DayTime::day() const
+ throw()
+ {
+ int yy,mm,dd;
+ convertJDtoCalendar(jday, yy, mm, dd);
+ return dd;
+ }
+
+ // Get day of week
+ short DayTime::dayOfWeek() const
+ throw()
+ {
+ return (((jday % 7) + 1) % 7) ;
+ }
+
+ // Get hour of day.
+ short DayTime::hour() const
+ throw()
+ {
+ int hh, mm ;
+ double sec ;
+ convertSODtoTime(secOfDay(), hh, mm, sec);
+ return hh;
+ }
+
+ // Get minutes of hour.
+ short DayTime::minute() const
+ throw()
+ {
+ int hh, mm ;
+ double sec ;
+ convertSODtoTime(secOfDay(), hh, mm, sec);
+ return mm;
+ }
+
+ // Get seconds of minute.
+ double DayTime::second() const
+ throw()
+ {
+ int hh, mm ;
+ double sec ;
+ convertSODtoTime(secOfDay(), hh, mm, sec) ;
+ return sec;
+ }
+
+ // Get 10-bit GPS week.
+ short DayTime::GPS10bitweek() const
+ throw()
+ {
+ return (GPSfullweek() % 1024);
+ }
+
+ // Get normal (19 bit) zcount.
+ long DayTime::GPSzcount() const
+ throw()
+ {
+ return (long)((GPSsow() / 1.5) + .5);
+ }
+
+ // Same as GPSzcount() but without rounding to nearest zcount.
+ long DayTime::GPSzcountFloor() const
+ throw()
+ {
+ return (long)(GPSsow() / 1.5);
+ }
+
+ // Get seconds of week.
+ double DayTime::GPSsow() const
+ throw()
+ {
+ return double(GPSday() * SEC_DAY) + secOfDay() ;
+ }
+
+ // Get full (>10 bits) week
+ short DayTime::GPSfullweek() const
+ throw()
+ {
+ return short(double(jday - GPS_EPOCH_JDAY) / 7) ;
+ }
+
+ // Get day of year.
+ short DayTime::DOY() const
+ throw()
+ {
+ int yy, mm, dd;
+ convertJDtoCalendar(jday, yy, mm, dd);
+ return (jday - convertCalendarToJD(yy, 1, 1) + 1) ;
+ }
+
+ // Get object time as a modified Julian date.
+ long double DayTime::getMJDasLongDouble() const
+ throw()
+ {
+ return ( (long double)(jday)
+ + (long double)(secOfDay() / SEC_DAY - 0.5)
+ - (long double)(JD_TO_MJD) );
+ }
+
+ // Get object time in UNIX timeval structure.
+ struct timeval DayTime::unixTime() const
+ throw(DayTime::DayTimeException)
+ {
+ struct timeval t;
+
+ t.tv_sec = mSod / FACTOR
+ + long(jday - MJD_JDAY - UNIX_MJD) * SEC_DAY ;
+
+ t.tv_usec = (mSod % FACTOR) * (1000000 / FACTOR)
+ + long(mSec * (1000000 / FACTOR) + 0.5) ;
+
+ if (t.tv_usec >= 1000000)
+ {
+ t.tv_usec -= 1000000;
+ ++t.tv_sec;
+ }
+
+ return t;
+ }
+
+ // Get time as 32 bit Z count.
+ // The 13 MSBs are week modulo 1024, 19 LSBs are seconds of
+ // week in Zcounts.
+ unsigned long DayTime::fullZcount() const
+ throw()
+ {
+ return ((long(GPS10bitweek()) << 19) + GPSzcount()) ;
+ }
+
+ // Same as fullZcount() but without rounding to nearest zcount.
+ unsigned long DayTime::fullZcountFloor() const
+ throw()
+ {
+ return ((long(GPS10bitweek()) << 19) + GPSzcountFloor()) ;
+ }
+
+ DayTime::operator GPSZcount() const
+ throw(DayTime::DayTimeException)
+ {
+ try
+ {
+ // account for rounding error in GPSzcount()
+ if(GPSzcount() == GPSZcount::ZCOUNT_WEEK)
+ {
+ return GPSZcount(GPSfullweek() + 1, 0);
+ }
+ else
+ {
+ return GPSZcount(GPSfullweek(), GPSzcount());
+ }
+ }
+ catch (gpstk::InvalidParameter& ip)
+ {
+ DayTime::DayTimeException de(ip);
+ GPSTK_THROW(de);
+ }
+ }
+
+ DayTime::operator CommonTime() const
+ throw(DayTime::DayTimeException)
+ {
+ try
+ {
+ // Multiply by 1/FACTOR to convert mSec from milliseconds to seconds.
+ return CommonTime().setInternal(jday, mSod, mSec / FACTOR);
+ }
+ catch (gpstk::InvalidParameter& ip)
+ {
+ DayTime::DayTimeException de(ip);
+ GPSTK_THROW(de);
+ }
+ }
+
+ // ----------- Part 9: member functions: set -------------
+ //
+ // Set the object's time using calendar (Y/M/D) date and ordinary (H:M:S)
+ // time.
+ // @param yy four-digit year.
+ // @param month month of year (1-based).
+ // @param day day of month (1-based).
+ // @param hour hour of day.
+ // @param min minutes of hour.
+ // @param sec seconds of minute.
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setYMDHMS(short yy,
+ short month,
+ short day,
+ short hour,
+ short min,
+ double sec,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ setYMD(yy, month, day, f);
+ return setHMS(hour, min, sec, f);
+ }
+
+ // Set the object time using GPS time. If the GPS week is
+ // 10 bit, the full week is determined from the system clock.
+ // @param week Week number (can be 10 bit).
+ // @param sow Seconds of week.
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPS(short week,
+ double sow,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ short fullweek=week;
+ if(week < 1024) {
+ DayTime ndt;
+ ndt.setSystemTime();
+ fullweek = 1024*(ndt.GPSfullweek()/1024) + week;
+ }
+ return setGPSfullweek(fullweek,sow,f);
+ }
+
+ // Set the object's time using GPS time. If the GPS week
+ // is 10 bit, the full week is determined from the system clock.
+ // @param week GPS 10 bit week number.
+ // @param zcount Z-count (seconds of week / 1.5)
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPS(short week,
+ long zcount,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ return setGPS(week, double(zcount) * 1.5, f);
+ }
+
+ // Set the object's time using GPS time.
+ // @param week GPS 10 bit week number.
+ // @param zcount Z-count (seconds of week / 1.5)
+ // @param year Four-digit year.
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPS(short week,
+ long zcount,
+ short year,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ return setGPS(week, double(zcount) * 1.5, year, f);
+ }
+
+ // Set the object's time using input GPS 10-bit
+ // week and seconds of week; determine the number
+ // of GPS week rollovers by deducing it from the input year and week.
+ // @param week 10 bit week number.
+ // @param sow Seconds of week.
+ // @param year Four-digit year.
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPS(short week,
+ double sow,
+ short year,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ bool valid = true;
+
+ if (DAYTIME_TEST_VALID)
+ {
+ if ((year < 1980) || (week < 0))
+ valid = false;
+ }
+
+ if (valid)
+ {
+ DayTime dt;
+
+ // In case the user supplies the full GPS week number.
+ week %= 1024;
+
+ dt.setYMD(year, 1, 1);
+ // z1 is the number of GPS 10-bit-week roll-overs at the beginning
+ // of the year.
+ short z1 = dt.GPSfullweek() / 1024;
+
+ dt.setYMD(year, 12, 31);
+ // z2 is the number of GPS 10-bit-week roll-overs at the end
+ // of the year.
+ short z2 = dt.GPSfullweek() / 1024;
+
+ // GPS 10-bit-week *does not* roll-over during the year.
+ if (z1 == z2)
+ {
+ return setGPSfullweek(week + z1 * 1024, sow, f);
+ }
+ // GPS 10-bit-week *does* roll-over during the year.
+ else
+ {
+ if (week <= 512) // roll-over happened before week ... use z2
+ {
+ return setGPSfullweek(week + z2 * 1024, sow, f);
+ }
+ else if (week > 512) // roll-over happened after week ... use z1
+ {
+ return setGPSfullweek(week + z1 * 1024, sow, f);
+ }
+ }
+ }
+
+ // If we get here, valid is false.
+ if(DAYTIME_TEST_VALID)
+ {
+ using gpstk::StringUtils::asString ;
+ DayTimeException dte("Input inconsistent: year "
+ + asString<int>(year)
+ + " cannot contain 10-bit GPS week "
+ + asString<short>(week));
+ GPSTK_THROW(dte);
+ }
+
+ return *this;
+ }
+
+ // Set the object's time using GPS time. System time
+ // is used to determine which 'zone' of 1024 weeks is assigned.
+ // @param Zcount Full z-count (3 MSB unused, mid 10 bits -
+ // week number, 19 LSB "normal" z-count).
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPS(unsigned long Zcount,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ short cweek = (Zcount >> 19) & 0x3FF ;
+ long zcount = Zcount & 0x7FFFFL ;
+ if(DAYTIME_TEST_VALID)
+ {
+ if(cweek < 0 || cweek > 1023 || // Is this is a necessary check?
+ zcount < 0 || zcount > 403199 )
+ {
+ using gpstk::StringUtils::asString ;
+ DayTimeException dte("Invalid Full GPS Z-count: "
+ + asString<unsigned long>(Zcount));
+ GPSTK_THROW(dte);
+ }
+ }
+ return setGPS(cweek, zcount, f);
+ }
+
+ // Set the object's time using GPS time.
+ // @param fullweek Full (i.e. >10bits) GPS week number.
+ // @param sow Seconds of week.
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPSfullweek(short fullweek,
+ double sow,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ if(DAYTIME_TEST_VALID)
+ {
+ if(fullweek < 0 ||
+ sow < 0.0 ||
+ sow >= double(FULLWEEK))
+ {
+ using gpstk::StringUtils::asString ;
+ DayTimeException dte("Invalid week/seconds-of-week: "
+ + asString<short>(fullweek)+ "/"
+ + asString(sow));
+ GPSTK_THROW(dte);
+ }
+ }
+ jday = GPS_EPOCH_JDAY + 7 * long(fullweek) + long(sow / SEC_DAY);
+ double sod = sow - SEC_DAY * long(sow / SEC_DAY);
+ return setSecOfDay(sod, f);
+ }
+
+ // Set the object's time using the given GPSZcount.
+ // System time is used to disambiguate which 1024 week 'zone'
+ // is appropriate.
+ // @param z the GPSZcount object to set to
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setGPSZcount(const GPSZcount& z,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ setGPS(z.getWeek(), z.getZcount(), f) ;
+ return *this ;
+ }
+
+ // Set the object's time using the give CommonTime.
+ // @param c the CommonTime object to set to
+ // @param f Time frame (see #TimeFrame))
+ // @return a reference to this object.
+ DayTime& DayTime::setCommonTime(const CommonTime& c,
+ TimeFrame f)
+ throw()
+ {
+ c.get(jday, mSod, mSec);
+ // Convert mSec from seconds to milliseconds by multiplying by 1000.
+ mSec *= FACTOR;
+ timeFrame = f;
+ return *this;
+ }
+
+ // Set the object's time using day of year.
+ // @param year Four-digit year.
+ // @param day_of_year Day of year.
+ // @param sec_of_day Seconds of day.
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setYDoySod(short year,
+ short doy,
+ double sod,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ setYDoy(year, doy, f);
+ return setSecOfDay(sod, f);
+ }
+
+ // Set the object's time using Modified Julian date.
+ // This just sets the time to the indicated modified Julian date.
+ // @param mjd the MJD of the date & time to set
+ // @param f Time frame (see #TimeFrame)
+ // @return a reference to this object.
+ DayTime& DayTime::setMJD(long double mjd,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ if(DAYTIME_TEST_VALID)
+ {
+ if(mjd < (long double)(BEGIN_LIMIT_JDAY-MJD_JDAY) ||
+ mjd > (long double)(END_LIMIT_JDAY-MJD_JDAY))
+ {
+ DayTimeException dte("Invalid MJD: "
+ + gpstk::StringUtils::asString(mjd)) ;
+ GPSTK_THROW(dte) ;
+ }
+ }
+ jday = long(mjd + 1.0) ; // int part of JD contributed by MJD
+ long double sod = SEC_DAY * (mjd + 1.0 - double(jday)) ;
+ jday += MJD_JDAY - 1 ;
+ mSod = long(FACTOR * sod) ;
+ mSec = FACTOR * double(sod) - double(mSod) ;
+ realignInternals();
+ timeFrame = f ;
+ return *this ;
+ }
+
+ // set using unix timeval struct
+ DayTime& DayTime::setUnix(const struct timeval& t,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ long sec = t.tv_sec ;
+ double dt = double(sec) + (t.tv_usec * 1.e-6) ;
+ jday = MJD_JDAY + UNIX_MJD + long(dt / SEC_DAY) ;
+ sec -= long(dt / SEC_DAY) * SEC_DAY ;
+ dt = double(sec) + (t.tv_usec * 1.e-6) ;
+ return setSecOfDay(dt);
+ }
+
+ // set using ANSI
+ DayTime& DayTime::setANSI(const time_t& t,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ long double dt = (long double)(t);
+ dt /= SEC_DAY;
+ dt += UNIX_MJD;
+ return setMJD(dt, f);
+ }
+
+ // set using system time
+ DayTime& DayTime::setSystemTime()
+ throw(DayTime::DayTimeException)
+ {
+#if defined(ANSI_ONLY)
+ time_t t;
+ time(&t);
+ setANSI(t, LocalSystem);
+#elif defined(WIN32)
+ _timeb t;
+ _ftime(&t);
+ timeval tv;
+ tv.tv_sec = t.time;
+ tv.tv_usec = t.millitm*1000;
+ setUnix(tv, LocalSystem);
+#else
+ timeval t;
+ gettimeofday(&t, NULL);
+ setUnix(t, LocalSystem);
+#endif
+ return *this;
+ }
+
+ // set using local time
+ DayTime& DayTime::setLocalTime()
+ throw(DayTime::DayTimeException)
+ {
+ time_t t;
+ time(&t);
+ struct tm *ltod;
+ ltod = localtime(&t);
+ setYMDHMS(1900 + ltod->tm_year, ltod->tm_mon + 1, ltod->tm_mday,
+ ltod->tm_hour, ltod->tm_min, ltod->tm_sec);
+ return *this;
+ }
+
+ // end of set...() that set Day and Time
+ // add set...() that set only Day or only Time
+ //
+ // Set the object using calendar (Y/M/D) date only (time is unchanged)
+ DayTime& DayTime::setYMD(int yy,
+ int mm,
+ int dd,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ long tempDay = convertCalendarToJD(yy, mm, dd);
+ if(DAYTIME_TEST_VALID)
+ {
+ int y, m, d;
+ convertJDtoCalendar(tempDay, y, m, d);
+ if(y != yy || m != mm || d != dd)
+ {
+ using gpstk::StringUtils::asString ;
+ DayTimeException dte("Invalid yy/mm/dd: " + asString<int>(yy) + "/"
+ + asString<int>(mm) + "/" + asString<int>(dd)
+ + " != " + asString<int>(y) + "/"
+ + asString<int>(m) + "/" + asString<int>(d));
+ GPSTK_THROW(dte);
+ }
+ }
+ jday = tempDay;
+ timeFrame = f;
+ return *this;
+ }
+
+ // Set the object using ordinary (H:M:S) time only (day is unchanged)
+ DayTime& DayTime::setHMS(int hh,
+ int mm,
+ double sec,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ double sod = convertTimeToSOD(hh, mm, sec);
+ if(DAYTIME_TEST_VALID)
+ {
+ int h, m;
+ double s;
+ convertSODtoTime(sod, h, m, s);
+ if(h != hh || m != mm || ABS(s - sec) > tolerance)
+ {
+ using gpstk::StringUtils::asString ;
+ DayTimeException dte("Invalid hh:mm:ss: " + asString<int>(hh)
+ + ":" + asString<int>(mm)
+ + ":" + asString(sec));
+ GPSTK_THROW(dte);
+ }
+ }
+ return setSecOfDay(sod,f);
+ }
+
+ // Set the object using seconds of day only (day is unchanged)
+ DayTime& DayTime::setSecOfDay(double sod,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ if(DAYTIME_TEST_VALID)
+ {
+ if(sod < 0.0 || sod >= double(SEC_DAY))
+ {
+ DayTimeException dte("Invalid seconds-of-day: "
+ + gpstk::StringUtils::asString(sod));
+ GPSTK_THROW(dte);
+ }
+ }
+ mSod = long(FACTOR * sod);
+ mSec = FACTOR * sod - double(mSod);
+ realignInternals();
+ timeFrame = f;
+ return *this;
+ }
+
+ // Set the object using year and day of year only (time is unchanged)
+ DayTime& DayTime::setYDoy(int yy,
+ int doy,
+ TimeFrame f)
+ throw(DayTime::DayTimeException)
+ {
+ jday = convertCalendarToJD(yy, 1, 1) + doy - 1;
+ if(DAYTIME_TEST_VALID)
+ {
+ int y,m,d;
+ convertJDtoCalendar(jday, y, m, d);
+ if(y != yy)
+ {
+ DayTimeException dte("Invalid Year/Day-of-Year: "
+ + gpstk::StringUtils::asString(yy)
+ + "/" + gpstk::StringUtils::asString(doy));
+ GPSTK_THROW(dte);
+ }
+ }
+ timeFrame = f;
+ return *this;
+ }
+
+ // ----------- Part 10: member functions: setToString, printf ---------
+ //
+ DayTime& DayTime::setToString(const string& str,
+ const string& fmt)
+ throw(DayTime::DayTimeException, DayTime::FormatException,
+ StringException)
+ {
+ try
+ {
+ // make an object to return
+ DayTime toReturn(*this);
+
+ // test completeness of specification given by input
+ bool hmjd = false, hsow = false, hweek = false, hfullWeek = false,
+ hdow = false, hyear = false, hmonth = false, hday= false,
+ hzcount = false, hdoy = false, hfullzcount = false,
+ hhour = false, hmin = false, hsec = false, hsod = false,
+ hunixsec = false, hunixusec = false;
+
+ double imjd, isow;
+ short iweek, ifullWeek, idow, imonth, iday;
+ long izcount, idoy;
+ long ifullzcount;
+
+ short iyear, ihour, imin;
+ double isec, isod;
+
+ // unix time
+ long unixsec, unixusec;
+
+ // set the year in case it is not in the input -- for week input
+ iyear = toReturn.year();
+
+ string f = fmt;
+ string s = str;
+
+ // parse strings... As we process each part, it's removed from
+ // both strings so when we reach 0, we're done
+ while ( (s.size() > 0) && (f.size() > 0) )
+ {
+ // remove everything in f and s up to the first % in f
+ // (these parts of the strings must be identical or this will
+ // break after it tries to remove it!)
+ while ( (s.length() != 0) && (f.length() != 0) && (f[0] != '%') )
+ {
+ // remove that character now and other whitespace
+ s.erase(0,1);
+ f.erase(0,1);
+ }
+
+ // check just in case we hit the end of either string...
+ if ( (s.length() == 0) || (f.length() == 0) )
+ break;
+
+ // lose the '%' in f...
+ f.erase(0,1);
+
+ // if the format string is like %03f, get '3' as the field length.
+ string::size_type fieldLength = string::npos;
+
+ if (!isalpha(f[0]))
+ {
+ // This is where we have a specified field length so we should
+ // not throw away any more characters
+ fieldLength = asInt(f);
+
+ // remove everything else up to the next character
+ // (in "%03f", that would be 'f')
+ while ((!f.empty()) && (!isalpha(f[0])))
+ f.erase(0,1);
+ if (f.empty())
+ break;
+ }
+ else
+ {
+ // finally, get the character that should end this field, if any
+ char delimiter = 0;
+ if (f.size() > 1)
+ {
+ if (f[1] != '%')
+ {
+ delimiter = f[1];
+
+ stripLeading(s);
+ fieldLength = s.find(delimiter,0);
+ }
+
+ // if the there is no delimiter character and the next field
+ // is another part of the time to parse, assume the length
+ // of this field is 1
+ else if (fieldLength == string::npos)
+ {
+ fieldLength = 1;
+ }
+ }
+ }
+
+ // figure out the next string to be removed. if there is a
+ // field length, use that first
+ string toBeRemoved = s.substr(0, fieldLength);
+
+ // based on char at f[0], convert input to temporary variable
+ switch (f[0])
+ {
+ case 'Q':
+ {
+ imjd = asDouble(toBeRemoved);
+ hmjd = true;
+ }
+ break;
+
+ case 'Z':
+ {
+ izcount = asInt(toBeRemoved);
+ hzcount = true;
+ }
+ break;
+
+ case 's':
+ {
+ isod = asDouble(toBeRemoved);
+ hsod = true;
+ }
+ break;
+
+ case 'g':
+ {
+ isow = asDouble(toBeRemoved);
+ hsow = true;
+ }
+ break;
+
+ case 'w':
+ {
+ idow = asInt(toBeRemoved);
+ hdow = true;
+ }
+ break;
+
+ case 'G':
+ {
+ iweek = asInt(toBeRemoved);
+ hweek = true;
+ }
+ break;
+
+ case 'F':
+ {
+ ifullWeek = asInt(toBeRemoved);
+ hfullWeek = true;
+ }
+ break;
+
+ case 'j':
+ {
+ idoy = asInt(toBeRemoved);
+ hdoy = true;
+ }
+ break;
+
+ case 'b':
+ case 'B':
+ {
+ string thisMonth(toBeRemoved);
+ lowerCase(thisMonth);
+
+ if (isLike(thisMonth, "jan.*")) imonth = 1;
+ else if (isLike(thisMonth, "feb.*")) imonth = 2;
+ else if (isLike(thisMonth, "mar.*")) imonth = 3;
+ else if (isLike(thisMonth, "apr.*")) imonth = 4;
+ else if (isLike(thisMonth, "may.*")) imonth = 5;
+ else if (isLike(thisMonth, "jun.*")) imonth = 6;
+ else if (isLike(thisMonth, "jul.*")) imonth = 7;
+ else if (isLike(thisMonth, "aug.*")) imonth = 8;
+ else if (isLike(thisMonth, "sep.*")) imonth = 9;
+ else if (isLike(thisMonth, "oct.*")) imonth = 10;
+ else if (isLike(thisMonth, "nov.*")) imonth = 11;
+ else if (isLike(thisMonth, "dec.*")) imonth = 12;
+ else
+ {
+ FormatException fe("Invalid month entry for setToString");
+ GPSTK_THROW(fe);
+ }
+ hmonth = true;
+ }
+ break;
+
+ case 'Y':
+ {
+ iyear = asInt(toBeRemoved);
+ hyear = true;
+ }
+ break;
+
+ case 'y':
+ {
+ if (fieldLength == 2)
+ {
+ iyear = asInt(toBeRemoved) + 1900;
+ if (iyear < 1980)
+ iyear += 100;
+ }
+ else if (fieldLength == 3)
+ {
+ iyear = asInt(toBeRemoved) + 1000;
+ if (iyear < 1980)
+ iyear += 100;
+ }
+ else
+ iyear = asInt(toBeRemoved);
+
+ hyear = true;
+ }
+ break;
+
+ case 'a':
+ case 'A':
+ {
+ string thisDay = firstWord(toBeRemoved);
+ lowerCase(thisDay);
+ if (isLike(thisDay, "sun.*")) idow = 0;
+ else if (isLike(thisDay, "mon.*")) idow = 1;
+ else if (isLike(thisDay, "tue.*")) idow = 2;
+ else if (isLike(thisDay, "wed.*")) idow = 3;
+ else if (isLike(thisDay, "thu.*")) idow = 4;
+ else if (isLike(thisDay, "fri.*")) idow = 5;
+ else if (isLike(thisDay, "sat.*")) idow = 6;
+ else
+ {
+ FormatException fe("Invalid day of week for setTostring");
+ GPSTK_THROW(fe);
+ }
+ hdow = true;
+ }
+ break;
+
+ case 'm':
+ {
+ imonth = asInt(toBeRemoved);
+ hmonth = true;
+ }
+ break;
+
+ case 'd':
+ {
+ iday = asInt(toBeRemoved);
+ hday = true;
+ }
+ break;
+
+ case 'H':
+ {
+ ihour = asInt(toBeRemoved);
+ hhour = true;
+ }
+ break;
+
+ case 'M':
+ {
+ imin = asInt(toBeRemoved);
+ hmin = true;
+ }
+ break;
+
+ case 'S':
+ {
+ isec = asDouble(toBeRemoved);
+ isec = double(short(isec));
+ hsec = true;
+ }
+ break;
+
+ case 'f':
+ {
+ isec = asDouble(toBeRemoved);
+ hsec = true;
+ }
+ break;
+
+ case 'U':
+ {
+ unixsec = asInt(toBeRemoved);
+ hunixsec = true;
+ }
+ break;
+
+ case 'u':
+ {
+ unixusec = asInt(toBeRemoved);
+ hunixusec = true;
+ }
+ break;
+
+ case 'C':
+ {
+ ifullzcount = asInt(toBeRemoved);
+ hfullzcount = true;
+ }
+
+ default:
+ {
+ // do nothing
+ }
+ break;
+ }
+ // remove the part of s that we processed
+ stripLeading(s,toBeRemoved,1);
+
+ // remove the character we processed from f
+ f.erase(0,1);
+ }
+
+ if ( s.length() != 0 )
+ {
+ // throw an error - something didn't get processed in the strings
+ FormatException fe(
+ "Processing error - parts of strings left unread - " + s);
+ GPSTK_THROW(fe);
+ }
+
+ if (f.length() != 0)
+ {
+ // throw an error - something didn't get processed in the strings
+ FormatException fe(
+ "Processing error - parts of strings left unread - " + f);
+ GPSTK_THROW(fe);
+ }
+
+ if (!hmjd && !hsow && !hweek && !hfullWeek && !hdow && !hmonth &&
+ !hday&& !hzcount && !hdoy && !hfullzcount && !hhour && !hmin &&
+ !hsec && !hsod && !hunixsec && !hunixusec)
+ {
+ FormatException fe("Incomplete time specification for setToString");
+ GPSTK_THROW(fe);
+ }
+
+ // GPS time formats
+ if (hsow)
+ toReturn.setGPSfullweek(0, isow);
+ if (hdow && !hsow)
+ toReturn.setGPSfullweek(0, idow * double(SEC_DAY));
+ if (hzcount)
+ toReturn.setGPSfullweek(0, izcount);
+ if (hfullzcount)
+ toReturn.setGPS(ifullzcount);
+ if (hfullWeek)
+ toReturn.setGPSfullweek(ifullWeek, toReturn.GPSsow());
+ if (hweek) // iyear has been set in any case
+ toReturn.setGPS(iweek, toReturn.GPSsow(), iyear);
+
+ // Calendar time formats
+ /*
+ * Due to inconsistency in number of days/month and
+ * number of days/year, the call to setYMDHMS() needs
+ * to be performed as an atomic call. Changing the pieces
+ * individually can lead to inconsistencies in the
+ * transient states.
+ */
+ if (hyear || hmonth || hday || hhour || hmin || hsec )
+ {
+ int nyear = toReturn.year();
+ int nmonth = toReturn.month();
+ int nday = toReturn.day();
+ int nhour = toReturn.hour();
+ int nmin = toReturn.minute();
+ double dsec = toReturn.second();
+
+ if (hyear) nyear = iyear;
+ if (hmonth) nmonth = imonth;
+ if (hday) nday = iday;
+ if (hhour) nhour = ihour;
+ if (hmin) nmin = imin;
+ if (hmin) dsec = isec;
+ toReturn.setYMDHMS(nyear, nmonth, nday,
+ nhour, nmin, dsec);
+ }
+
+ // DOY time formats
+ if (hdoy)
+ toReturn.setYDoySod(toReturn.year(), idoy, toReturn.DOYsecond());
+ if (hsod)
+ toReturn.setYDoySod(toReturn.year(), toReturn.DOY(), isod);
+
+ // MJD time format
+ if (hmjd)
+ toReturn.setMJD(imjd);
+
+ // unix time formats
+ if (hunixsec || hunixusec)
+ {
+ struct timeval tv = toReturn.unixTime();
+ if (hunixsec) tv.tv_sec = unixsec;
+ if (hunixusec) tv.tv_usec = unixusec;
+
+ toReturn.setUnix(tv);
+ }
+
+ *this = toReturn;
+ return *this;
+ }
+ catch(gpstk::Exception& exc)
+ {
+ DayTime::DayTimeException dte(exc);
+ dte.addText("Cannot generate time");
+ GPSTK_THROW(dte);
+ }
+ catch(std::exception& exc)
+ {
+ DayTime::DayTimeException dte(exc.what());
+ dte.addText("Cannot generate time");
+ GPSTK_THROW(dte);
+ }
+ }
+
+ // Format this time into a string.
+ string DayTime::printf(const char *fmt) const
+ throw(gpstk::StringUtils::StringException)
+ {
+ string rv = fmt;
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*S"),
+ string("Sd"), (short)second());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?f"),
+ string("ff"), second());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*G"),
+ string("Ghd"), GPS10bitweek());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*F"),
+ string("Fhd"), GPSfullweek());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?g"),
+ string("gf"), GPSsow());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?s"),
+ string("sf"), DOYsecond());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?Q"),
+ string("QLf"), getMJDasLongDouble());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*Y"),
+ string("Yhd"), year());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*y"),
+ string("yhd"), (short)(year() % 100));
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*m"),
+ string("mhd"), month());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*b"),
+ string("bs"), MonthAbbrevNames[month()]);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*B"),
+ string("Bs"), MonthNames[month()]);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*d"),
+ string("dhd"), day());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*H"),
+ string("Hhd"), hour());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*M"),
+ string("Mhd"), minute());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*w"),
+ string("whd"), dayOfWeek());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*a"),
+ string("as"), DayOfWeekAbbrevNames[dayOfWeek()]);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*A"),
+ string("As"), DayOfWeekNames[dayOfWeek()]);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*z"),
+ string("zd"), GPSzcountFloor());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*Z"),
+ string("Zd"), GPSzcount());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*U"),
+ string("Ud"), unixTime().tv_sec);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*u"),
+ string("ud"), unixTime().tv_usec);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*j"),
+ string("jhd"), DOY());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*C"),
+ string("Cd"), fullZcount());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*c"),
+ string("cd"), fullZcountFloor());
+
+ return rv;
+ }
+
+ // Format this time into a string.
+ std::string DayTime::asString() const
+ throw(gpstk::StringUtils::StringException)
+ {
+ ostringstream o;
+ o << *this;
+ return o.str();
+ }
+
+ // Dump everything possible, using every get() TD: keep?
+ void DayTime::dump(std::ostream& s) const
+ throw(DayTime::DayTimeException)
+ {
+ // warning: the internal representation, even for objects that are equal
+ // within the tolerance, may be very different
+
+ s << " internal: jday " << jday << endl;
+ s << " internal: mSod " << mSod << endl;
+ s << " internal: mSec " << fixed << setprecision(15) << mSec << endl;
+ s << " internal: tolerance " << fixed << setprecision(15) << tolerance << endl;
+ s << " double JD(): " << fixed << setprecision(6) << JD() << endl;
+ s << " double MJD(): " << fixed << setprecision(6) << MJD() << endl;
+ s << " short year(): " << year() << endl;
+ s << " short month(): " << month() << endl;
+ s << " short day(): " << day() << endl;
+ s << " short dayOfWeek(): " << dayOfWeek() << endl;
+ int yy,mm,dd;
+ getYMD(yy, mm, dd);
+ s << " void getYMD(int& yy, int& mm, int& dd): " << yy << " " << mm
+ << " " << dd << endl;
+ s << " short hour(): " << hour() << endl;
+ s << " short minute(): " << minute() << endl;
+ s << " double second(): " << fixed << setprecision(6) << second()
+ << endl;
+ s << " double secOfDay(): " << fixed << setprecision(6) << secOfDay()
+ << endl;
+ s << " short GPS10bitweek(): " << GPS10bitweek() << endl;
+ s << " long GPSzcount(): " << GPSzcount() << endl;
+ s << " long GPSzcountFloor(): " << GPSzcountFloor() << endl;
+ s << " double GPSsecond(): " << fixed << setprecision(6) << GPSsecond()
+ << endl;
+ s << " double GPSsow(): " << fixed << setprecision(6) << GPSsow()
+ << endl;
+ s << " short GPSday(): " << GPSday() << endl;
+ s << " short GPSfullweek(): " << GPSfullweek() << endl;
+ s << " short GPSyear(): " << GPSyear() << endl;
+ s << " short DOYyear(): " << DOYyear() << endl;
+ s << " short DOYday(): " << DOYday() << endl;
+ s << " short DOY(): " << DOY() << endl;
+ s << " double DOYsecond(): "<< fixed << setprecision(6) << DOYsecond()
+ << endl;
+ s << " double MJDdate(): " << fixed << setprecision(6) << MJDdate()
+ << endl;
+ s << " long double getMJDasLongDouble(): "
+ << fixed << setprecision(6) << getMJDasLongDouble() << endl;
+ struct timeval tv=unixTime();
+ s << " struct timeval unixTime(): " << tv.tv_sec << " " << tv.tv_usec
+ << endl;
+ s << " unsigned long fullZcount(): " << fullZcount() << endl;
+ s << " unsigned long fullZcountFloor(): " << fullZcountFloor() << endl;
+ }
+
+ // ----------- Part 11: functions: fundamental conversions -----------
+ //
+ // These two routines convert 'integer JD' and calendar time; they were
+ // derived from Sinnott, R. W. "Bits and Bytes" Sky & Telescope Magazine,
+ // Vol 82, p. 183, August 1991, and The Astronomical Almanac, published
+ // by the U.S. Naval Observatory.
+ // NB range of applicability of this routine is from 0JD (4713BC)
+ // to approx 3442448JD (4713AD).
+ void DayTime::convertJDtoCalendar(long jd,
+ int& iyear,
+ int& imonth,
+ int& iday)
+ throw()
+ {
+ long L, M, N, P, Q;
+ if(jd > 2299160) // after Oct 4, 1582
+ {
+ L = jd + 68569;
+ M = (4 * L) / 146097;
+ L = L - ((146097 * M + 3) / 4);
+ N = (4000 * (L + 1)) / 1461001;
+ L = L - ((1461 * N) / 4) + 31;
+ P = (80 * L) / 2447;
+ iday = int(L - (2447 * P) / 80);
+ L = P / 11;
+ imonth = int(P + 2 - 12 * L);
+ iyear = int(100 * (M - 49) + N + L);
+ }
+ else
+ {
+ P = jd + 1402;
+ Q = (P - 1) / 1461;
+ L = P - 1461 * Q;
+ M = (L - 1) / 365 - L / 1461;
+ N = L - 365 * M + 30;
+ P = (80 * N) / 2447;
+ iday = int(N - (2447 * P) / 80);
+ N = P / 11;
+ imonth = int(P + 2 - 12 * N);
+ iyear = int(4 * Q + M + N - 4716);
+ if(iyear <= 0)
+ {
+ --iyear;
+ }
+ }
+ // catch century/non-400 non-leap years
+ if(iyear > 1599 &&
+ !(iyear % 100) &&
+ (iyear % 400) &&
+ imonth == 2 &&
+ iday == 29)
+ {
+ imonth = 3;
+ iday = 1;
+ }
+ }
+
+ long DayTime::convertCalendarToJD(int yy,
+ int mm,
+ int dd)
+ throw()
+ {
+ if(yy == 0)
+ --yy; // there is no year 0
+
+ if(yy < 0)
+ ++yy;
+
+ long jd;
+ double y = double(yy), m = double(mm), d = double(dd);
+
+ // In the conversion from the Julian Calendar to the Gregorian
+ // Calendar the day after October 4, 1582 was October 15, 1582.
+ //
+ // if the date is before October 15, 1582
+ if(yy < 1582 || (yy == 1582 && (mm < 10 || (mm == 10 && dd < 15))))
+ {
+ jd = 1729777 + dd + 367 * yy
+ - long(7 * ( y + 5001 + long((m - 9) / 7)) / 4)
+ + long(275 * m / 9);
+ }
+ else // after Oct 4, 1582
+ {
+ jd = 1721029 + dd + 367 * yy
+ - long(7 * (y + long((m + 9) / 12)) / 4)
+ - long(3 * (long((y + (m - 9) / 7) / 100) + 1) / 4)
+ + long(275 * m / 9);
+
+ // catch century/non-400 non-leap years
+ if( (! (yy % 100) &&
+ (yy % 400) &&
+ mm > 2 &&
+ mm < 9) ||
+ (!((yy - 1) % 100) &&
+ ((yy - 1) % 400) &&
+ mm == 1))
+ {
+ --jd;
+ }
+ }
+ return jd;
+ }
+
+ void DayTime::convertSODtoTime(double sod,
+ int& hh,
+ int& mm,
+ double& sec)
+ throw()
+ {
+ // Get us to within one day.
+ if (sod < 0)
+ {
+ sod += (1 + (unsigned long)(sod / SEC_DAY)) * SEC_DAY ;
+ }
+ else if (sod >= SEC_DAY)
+ {
+ sod -= (unsigned long)(sod / SEC_DAY) * SEC_DAY ;
+ }
+
+ double temp; // variable to hold the integer part of sod
+ sod = modf(sod, &temp); // sod holds the fraction, temp the integer
+ long seconds = long(temp); // get temp into a real integer
+
+ hh = seconds / 3600 ;
+ mm = (seconds % 3600) / 60 ;
+ sec = double(seconds % 60) + sod ;
+
+ }
+
+ double DayTime::convertTimeToSOD(int hh,
+ int mm,
+ double sec)
+ throw()
+ {
+ return (sec + 60. * (mm + 60. * hh));
+ }
+
+ // ----------- Part 12: private functions and member data -----------
+ //
+ void DayTime::init()
+ throw()
+ {
+ timeFrame = Unknown;
+ tolerance = DAYTIME_TOLERANCE;
+ jday = 0;
+ mSod = 0;
+ mSec = 0.0;
+ }
+
+ // ldd is days, lds is milliseconds, and ds is milliseconds
+ void DayTime::addLongDeltaTime(long ldd,
+ long lds,
+ double ds)
+ throw(DayTime::DayTimeException)
+ {
+ // Use temp variables so that we don't modify our
+ // data members until we know these values are good.
+ long workingJday(jday), workingMsod(mSod) ;
+ double workingMsec(mSec), temp(0) ;
+
+ workingMsec += ds ;
+ // check that workingMsod is not out of bounds
+ if (workingMsec < 0.)
+ {
+ // split workingMsec into integer and fraction parts
+ // workingMsec gets the fraction and temp gets the integer
+ workingMsec = 1 + modf(workingMsec, &temp);
+ // add the (negative) integer milliseconds to lds
+ if(workingMsec == 1) {
+ workingMsec = 0;
+ lds += long(temp);
+ }
+ else
+ lds += long(temp) - 1;
+ }
+ else if (workingMsec >= 1.0)
+ {
+ // same as above
+ workingMsec = modf(workingMsec, &temp) ;
+ // add the integer milliseconds to lds
+ lds += long(temp) ;
+ }
+
+ workingMsod += lds ;
+ // add any full days to ldd
+ ldd += workingMsod / (SEC_DAY * FACTOR) ;
+
+ // this will get us here:
+ // -(SEC_DAY * FACTOR) < workingMsod < (SEC_DAY * FACTOR)
+ workingMsod %= (SEC_DAY * FACTOR) ;
+
+ // this will get us here: 0 <= workingMsod < (SEC_DAY * FACTOR)
+ if (workingMsod < 0)
+ {
+ workingMsod += (SEC_DAY * FACTOR) ;
+ --ldd ;
+ }
+
+ workingJday += ldd ;
+ // check that workingJday is not out of bounds
+ if(workingJday < BEGIN_LIMIT_JDAY)
+ {
+ DayTime::DayTimeException dte("DayTime underflow") ;
+ GPSTK_THROW(dte) ;
+ }
+ if(workingJday > END_LIMIT_JDAY)
+ {
+ DayTime::DayTimeException dte("DayTime overflow") ;
+ GPSTK_THROW(dte) ;
+ }
+
+ // everything's OK, so set the data members
+ jday = workingJday ;
+ mSod = workingMsod ;
+ mSec = workingMsec ;
+
+ realignInternals();
+ }
+
+ // Helper routine to realign the internal representation in order to
+ // avoid incorrect output (printf) when mSec is within tolerance of 1
+ void DayTime::realignInternals(void)
+ throw()
+ {
+ if(fabs(mSec-1)/FACTOR < tolerance) {
+ // decrement mSec, except mSec must not be negative
+ // alternately, set mSec = 0, but perhaps this contributes numerical noise?
+ mSec = (mSec-1 < 0 ? 0 : mSec-1);
+ mSod += 1;
+ }
+ if(mSod >= SEC_DAY*FACTOR) {
+ mSod -= SEC_DAY*FACTOR;
+ jday += 1;
+ }
+ }
+
+ // ----------- Part 13: operator<< --------------
+ //
+ // Stream output for DayTime objects. Typically used for debugging.
+ // @param s stream to append formatted DayTime to.
+ // @param t DayTime to append to stream \c s.
+ // @return reference to \c s.
+ ostream& operator<<( ostream& s,
+ const DayTime& t )
+ {
+ s << t.printf("%02m/%02d/%04Y %02H:%02M:%02S");
+ return s;
+ }
+
+} // end namespace gpstk
+
diff --git a/dev/src/DayTime.hpp b/dev/src/DayTime.hpp
new file mode 100644
index 0000000..b62d988
--- /dev/null
+++ b/dev/src/DayTime.hpp
@@ -0,0 +1,1217 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file DayTime.hpp
+ * gpstk::DayTime - encapsulates date and time-of-day in many formats
+ */
+
+#ifndef GPSTK_DAYTIME_HPP
+#define GPSTK_DAYTIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <string>
+#ifdef _MSC_VER
+// timeval is defined in winsock.h, which we don't want to include
+// because it breaks lots of this code
+struct timeval {
+ long tv_sec; /* seconds */
+ long tv_usec; /* and microseconds */
+};
+#else
+#include <sys/time.h>
+#endif
+
+#include "MathBase.hpp"
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "GPSZcount.hpp"
+#include "CommonTime.hpp"
+
+namespace gpstk
+{
+ /** @defgroup timegroup GPStk Time Group */
+ //@{
+
+ /**
+ * A time representation class for all common time formats, including
+ * GPS. There is a seamless conversion between dates, times, and both,
+ * as well as the ability to input and output the stored day-time in
+ * formatted strings (printf() and setToString()).
+ *
+ * Internally, the representation of day and time uses three quantities,
+ * (1) jday, an integer representation of Julian Date, specifically
+ * jday = int(JD+0.5) or jday=int(MJD+2400001). [Recall that JD = MJD +
+ * 2400000.5 and MJD is an integer when second-of-day==0. N.B. jday is
+ * NOT == JD or Julian Date, but DayTime::JD() does return JD.]
+ * (2) mSod, the integer part of milliseconds of the day, and
+ * (3) mSec, the (double) fractional part of milliseconds of the day.
+ *
+ * In addition, the representation includes a tolerance value (see below)
+ * and a time frame. The time frame is a simple way of denoting the
+ * origin or type of day-time which is stored in the object. See
+ * #TimeFrame for the list of possible values. The time frame of an
+ * object is determined in the call to a constructor (default is
+ * timeFrame=Unknown), and carried forward into other objects. It may be
+ * read or changed using member functions setAllButTimeFrame(),
+ * setTimeFrame(), and getTimeFrame().
+ *
+ * The member datum 'double tolerance' is used in DayTime comparisons.
+ * It defaults to the value of the static
+ * gpstk::DayTime::DAYTIME_TOLERANCE, but this can be modified with the
+ * static method setDayTimeTolerance(). Several different default
+ * tolerances have been defined and are in the DayTime-Specific
+ * Definitions section. The tolerance can also be changed on a per object
+ * basis with the setTolerance() member function. All comparisons are
+ * done using the tolerance as a range for the comparison.
+ * So, for example, operator==() returns true if the times are within
+ * 'tolerance' seconds. Once set for each object, the tolerance is
+ * appropriately "carried forward" to new objects through the copy
+ * operator (DayTime::operator=), the copy constructor, and elsewhere.
+ *
+ * The internal representation is manipulated using four fundamental
+ * routines, two that convert between 'jday' (the integer
+ * representation of JD) and calendar date: year/month/day-of-month,
+ * and two that convert between seconds-of-day and hour/minute/second.
+ * The range of validity of the jday--calendar routines is approximately
+ * 4317 B.C. to 4317 A.D.; these limits are incorporated into constants
+ * DayTime::BEGINNING_OF_TIME and DayTime::END_OF_TIME.
+ *
+ * * All DayTime objects that lie outside these limits are disallowed. *
+ *
+ * This internal representation allows close to the maximum precision
+ * possible in the time-of-day. Although, note that the code uses
+ * FACTOR=1000 everywhere to compute milliseconds, via e.g.
+ * mSec=seconds/FACTOR, and thus FACTOR could be changed to give a
+ * different precision. (This has not been tested.)
+ *
+ * This representation separates day and time-of-day cleanly.
+ * Because day and time are logically separated, it is possible to use
+ * DayTime for day only, or for time only. Thus, for example, one
+ * could instantiate a DayTime object and only manipulate the date,
+ * without reference to time-of-day; or vice-versa. [However in this
+ * regard note that the default constructor for DayTime sets the
+ * data, not to zero, but to the current (system) time; because there
+ * is no year 0, a DayTime object with all zero data is invalid!]
+ *
+ * When constructing DayTime objects from GPS time values -- such as
+ * GPS week and seconds of weeks, or GPS week and z count -- there
+ * may be ambiguity associated with the GPS week. Many receivers
+ * and receiver processing software store the GPS week as it appears
+ * in the NAV message, as a 10 bit number. This leads to a 1024 week
+ * ambiguity when 10 bit GPS weeks are used to specify a DayTime.
+ * In general, DayTime uses the system time to disambiguate which
+ * 1024 week period to use. This is a good assumption except when
+ * processing binary data from before GPS week rollover, which
+ * occured on August 22, 1999.
+ *
+ */
+ class DayTime
+ {
+ public:
+ // ----------- Part 1: exceptions and constants --------------
+ /**
+ * @ingroup exceptionclass
+ * DayTime basic exception class.
+ */
+ NEW_EXCEPTION_CLASS(DayTimeException, gpstk::Exception);
+
+ /**
+ * @ingroup exceptionclass
+ * DayTime formatting ("printing") error exception class.
+ */
+ NEW_EXCEPTION_CLASS(FormatException, gpstk::Exception);
+
+ /// The various time frames
+ enum TimeFrame
+ {
+ Unknown, /**< unknown time frame */
+ UTC, /**< Coordinated Universal Time (e.g., from NTP) */
+ LocalSystem,/**< time from a local system clock */
+ GPS_Tx, /**< GPS transmit Time (paper clock) (e.g., 15 smooth) */
+ GPS_Rx, /**< GPS receive time (paper clock) */
+ // (e.g., rx data if clock bias is applied)
+ GPS_SV, /**< SV time frame (e.g., 211 1.5s/6packs) */
+ GPS_Receiver/**< Receiver time (e.g., 30s, raw 1.5s) */
+ };
+
+ /**
+ * @name DayTime-Specific Definitions
+ * All of these tolerances are 1/2 of the tolerance they specify.
+ * So one nsec tolerance is actually 1/2 an ns added to the time
+ * in units of days.
+ */
+ //@{
+
+ /// time-of-day is stored as long (seconds-of-day)*FACTOR
+ /// plus double (remaining seconds)/FACTOR
+ static const long FACTOR;
+
+ /// Conversion offset, Julian Date to Modified Julian Date.
+ static const double JD_TO_MJD;
+ /// 'Julian day' offset from MJD
+ static const long MJD_JDAY;
+ /// 'Julian day' of GPS epoch (Jan. 1, 1980).
+ static const long GPS_EPOCH_JDAY;
+ /// Modified Julian Date of GPS epoch (Jan. 1, 1980).
+ static const long GPS_EPOCH_MJD;
+ /// Modified Julian Date of UNIX epoch (Jan. 1, 1970).
+ static const long UNIX_MJD;
+ /// Seconds per half a GPS week.
+ static const long HALFWEEK;
+ /// Seconds per whole GPS week.
+ static const long FULLWEEK;
+ /// Seconds per day.
+ static const long SEC_DAY;
+ /// Milliseconds in a day.
+ static const long MS_PER_DAY;
+
+ /// One nanosecond tolerance.
+ static const double ONE_NSEC_TOLERANCE;
+ /// One microsecond tolerance.
+ static const double ONE_USEC_TOLERANCE;
+ /// One millisecond tolerance.
+ static const double ONE_MSEC_TOLERANCE;
+ /// One second tolerance.
+ static const double ONE_SEC_TOLERANCE;
+ /// One minute tolerance.
+ static const double ONE_MIN_TOLERANCE;
+ /// One hour tolerance.
+ static const double ONE_HOUR_TOLERANCE;
+
+ /// Default tolerance for time equality in days.
+ static double DAYTIME_TOLERANCE;
+
+ /// 'julian day' of earliest epoch expressible by DayTime:
+ /// 1/1/4713 B.C.
+ static const long BEGIN_LIMIT_JDAY;
+ /// 'julian day' of latest epoch expressible by DayTime:
+ /// 1/1/4713 A.D.
+ static const long END_LIMIT_JDAY;
+ /// earliest representable DayTime
+ static const DayTime BEGINNING_OF_TIME;
+ /// latest representable DayTime
+ static const DayTime END_OF_TIME;
+
+ /// If true, check the validity of inputs.
+ /// Throw DayTimeException on failure.
+ static bool DAYTIME_TEST_VALID;
+
+ //@}
+
+ // ----------- Part 2: member functions: tolerance ------------
+ //
+ /// Changes the DAYTIME_TOLERANCE for all DayTime objects
+ static double setDayTimeTolerance(const double tol)
+ throw()
+ { DAYTIME_TOLERANCE = tol; return DAYTIME_TOLERANCE; }
+
+ /// Returns the current DAYTIME_TOLERANCE.
+ static double getDayTimeTolerance()
+ throw()
+ { return DAYTIME_TOLERANCE; }
+
+ /**
+ * Sets the tolerance for output and comparisons on this object only.
+ * See the constants in this file (e.g. ONE_NSEC_TOLERANCE)
+ * for some easy to use tolerance values.
+ * @param tol Tolerance in days to be used by comparison operators.
+ * @sa DayTime-Specific Definitions
+ */
+ DayTime& setTolerance(const double tol) throw();
+
+ /**
+ * Return the tolerance value currently in use by this object.
+ * @return the current tolerance value (in seconds, of course)
+ */
+ double getTolerance() throw()
+ { return tolerance; }
+
+
+ // ----------- Part 3: member functions: constructors ------------
+ //
+ /**
+ * Default constructor.
+ * Initializes to current system time.
+ */
+ DayTime()
+ throw(DayTimeException);
+
+ /**
+ * GPS time with full week constructor.
+ * @param GPSWeek full week number
+ * @param GPSSecond seconds of week.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(short GPSWeek,
+ double GPSSecond,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * GPS time constructor. In the case of 10-bit week input,
+ * the year and week are used to deduce the number of GPS
+ * week rollovers and thus the full GPS week.
+ * @param GPSWeek week number.
+ * @param GPSSecond Seconds of week.
+ * @param year Four-digit year consistent with GPS input.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(short GPSWeek,
+ double GPSSecond,
+ short year,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * GPS time constructor. In the case of 10-bit week input,
+ * the year and week are used to deduce the number of GPS
+ * week rollovers and thus the full GPS week.
+ * @param GPSWeek GPS week number.
+ * @param zcount Z-count (seconds of week / 1.5)
+ * @param year Four-digit year consistent with GPS input.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(short GPSWeek,
+ long zcount,
+ short year,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * GPS time constructor given the full Z count.
+ * @warn The number of GPS week rollovers, and therefore the
+ * full GPS week, is determined from the current system time.
+ * @param fullZcount Full z-count (3 MSB unused, mid 10 bits -
+ * week number, 19 LSB "normal" z-count).
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(unsigned long fullZcount,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * GPS Zcount constructor.
+ * @warn The number of GPS week rollovers, and therefore the
+ * full GPS week, is determined from the current system time.
+ * @param z GPSZcount object to set to
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(const GPSZcount& z,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * CommonTime constructor.
+ * @param c CommonTime object to set to
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(const CommonTime& c,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Calendar time constructor.
+ * @param year four-digit year.
+ * @param month month of year (1-based).
+ * @param day day of month (1-based).
+ * @param hour hour of day.
+ * @param minute minutes of hour.
+ * @param second seconds of minute.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(short year,
+ short month,
+ short day,
+ short hour,
+ short minute,
+ double second,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Modified Julian date time constructor.
+ * @warn For some compilers, this result may have diminished accuracy.
+ * @param MJD Modified Julian date as long double.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(long double MJD,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Modified Julian date time constructor.
+ * @warn For some compilers, this result may have diminished accuracy.
+ * @param MJD Modified Julian date as double.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(double MJD,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Day of year time constructor.
+ * @param year Four-digit year.
+ * @param DOY Day of year.
+ * @param SOD Seconds of day.
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(short year,
+ short doy,
+ double sod,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * UNIX time constructor.
+ * @param t timeval structure (typically from gettimeofday()).
+ * @param f Time frame (see #TimeFrame)
+ */
+ DayTime(const struct timeval& t,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /// Destructor.
+ ~DayTime()
+ throw()
+ {}
+
+ // --------- Part 4: member functions: assignment and copy ----------
+ //
+ /// Copy constructor.
+ DayTime(const DayTime &right)
+ throw(DayTimeException);
+
+ /// Assignment operator.
+ DayTime& operator=(const DayTime& right)
+ throw();
+
+ // ----------- Part 5: member functions: arithmetic ------------
+ //
+ /**
+ * DayTime difference function.
+ * @param right DayTime to subtract from this one.
+ * @return difference in seconds.
+ */
+ double operator-(const DayTime& right) const
+ throw();
+
+ /**
+ * Add seconds to this time.
+ * @param sec Number of seconds to increase this time by.
+ * @return The new time incremented by \c sec.
+ */
+ DayTime operator+(double sec) const
+ throw();
+
+ /**
+ * Subtract seconds from this time.
+ * @param sec Number of seconds to decrease this time by.
+ * @return The new time decremented by \c sec.
+ */
+ DayTime operator-(double sec) const
+ throw();
+
+ /**
+ * Add seconds to this time.
+ * @param sec Number of seconds to increase this time by.
+ * @throws DayTimeException on over/under-flow
+ */
+ DayTime& operator+=(double sec)
+ throw(DayTimeException);
+
+ /**
+ * Subtract seconds from this time.
+ * @param sec Number of seconds to decrease this time by.
+ * @throws DayTimeException on over/under-flow
+ */
+ DayTime& operator-=(double sec)
+ throw(DayTimeException);
+
+ /**
+ * Add (double) seconds to this time.
+ * @param seconds Number of seconds to increase this time by.
+ * @throws DayTimeException on over/under-flow
+ */
+ DayTime& addSeconds(double seconds)
+ throw(DayTimeException);
+
+ /**
+ * Add (integer) seconds to this time.
+ * @param seconds Number of seconds to increase this time by.
+ * @throws DayTimeException on over/under-flow
+ */
+ DayTime& addSeconds(long seconds)
+ throw(DayTimeException);
+
+ /**
+ * Add (integer) milliseconds to this time.
+ * @param msec Number of milliseconds to increase this time by.
+ * @throws DayTimeException on over/under-flow
+ */
+ DayTime& addMilliSeconds(long msec)
+ throw(DayTimeException);
+
+ /**
+ * Add (integer) microseconds to this time.
+ * @param usec Number of microseconds to increase this time by.
+ * @throws DayTimeException on over/under-flow
+ */
+ DayTime& addMicroSeconds(long usec)
+ throw(DayTimeException);
+
+ // ----------- Part 6: member functions: comparisons ------------
+ //
+ /// Equality operator.
+ /// @return true if ABS(*this - right) <= lesser of tolerance
+ /// and right.tolerance; false otherwise
+ bool operator==(const DayTime &right) const
+ throw();
+ /// Inequality operator.
+ bool operator!=(const DayTime &right) const
+ throw();
+ /// Comparison operator (less-than).
+ bool operator<(const DayTime &right) const
+ throw();
+ /// Comparison operator (greater-than).
+ bool operator>(const DayTime &right) const
+ throw();
+ /// Comparison operator (less-than or equal-to).
+ bool operator<=(const DayTime &right) const
+ throw();
+ /// Comparison operator (greater-than or equal-to).
+ bool operator>=(const DayTime &right) const
+ throw();
+
+ // ----------- Part 7: member functions: time frame ------------
+ //
+ /**
+ * Change time frames via pseudo-copy method.
+ * Copies all of \c right except the time frame,
+ * which remains unchanged.
+ * @param right DayTime object to copy time from.
+ * @throws DayTimeException
+ */
+ DayTime& setAllButTimeFrame(const DayTime& right)
+ throw(DayTimeException);
+
+ /// Set the time frame for this time.
+ DayTime& setTimeFrame(TimeFrame f)
+ throw()
+ { timeFrame = f ; return *this ; }
+
+ /// Get the time frame for this time.
+ TimeFrame getTimeFrame() const
+ throw()
+ { return timeFrame ; }
+
+ // ----------- Part 8: member functions: get --------------
+ //
+ // These routines retrieve elements of day, time or both.
+ //
+ /// Get Julian Date JD
+ double JD() const
+ throw();
+
+ /// Get Modified Julian Date MJD
+ /// @warning For some compilers, this result may have diminished
+ /// accuracy.
+ double MJD() const
+ throw();
+
+ /// Get year.
+ short year() const
+ throw();
+
+ /// Get month of year.
+ short month() const
+ throw();
+
+ /// Get day of month.
+ short day() const
+ throw();
+
+ /// Get day of week
+ short dayOfWeek() const
+ throw();
+
+ /// Get year, month and day of month
+ void getYMD(int& yy, int& mm, int& dd) const
+ throw()
+ { convertJDtoCalendar(jday, yy, mm, dd) ; }
+
+ /// Get hour of day.
+ short hour() const
+ throw();
+
+ /// Get minutes of hour.
+ short minute() const
+ throw();
+
+ /// Get seconds of minute.
+ double second() const
+ throw();
+
+ /// Get seconds of day.
+ double secOfDay() const
+ throw()
+ { return (double(mSod) + mSec) / FACTOR ; }
+
+ /// Get 10-bit GPS week.
+ short GPS10bitweek() const
+ throw();
+
+ /// Get normal (19 bit) zcount.
+ long GPSzcount() const
+ throw();
+
+ /// Same as GPSzcount() but without rounding to nearest zcount.
+ long GPSzcountFloor() const
+ throw();
+
+ /// Get seconds of week.
+ double GPSsecond() const
+ throw()
+ { return GPSsow(); }
+
+ /// Get GPS second of week.
+ double GPSsow() const
+ throw();
+
+ /// Get day of week.
+ short GPSday() const
+ throw()
+ { return dayOfWeek(); }
+
+ /// Get full (>10 bits) week
+ short GPSfullweek() const
+ throw();
+
+ /// Get year.
+ short GPSyear() const
+ throw()
+ { return year(); }
+
+ /// Get year.
+ short DOYyear() const
+ throw()
+ { return year(); }
+
+ /// Get day of year.
+ short DOYday() const
+ throw()
+ { return DOY(); }
+
+ /// Get day of year.
+ short DOY() const
+ throw();
+
+ /// Get seconds of day.
+ double DOYsecond() const
+ throw()
+ { return secOfDay(); }
+
+ /// Get object time as a modified Julian date.
+ /// @warning For some compilers, this result may have diminished
+ /// accuracy.
+ double MJDdate() const
+ throw()
+ { return double(getMJDasLongDouble()) ; }
+
+ /// Get object time as a (long double) modified Julian date.
+ /// @Warning For some compilers, this result may have diminished
+ /// accuracy.
+ long double getMJDasLongDouble() const
+ throw();
+
+ /// Get object time in UNIX timeval structure.
+ struct timeval unixTime() const
+ throw(DayTimeException);
+
+ /**
+ * Get time as 32 bit Z count.
+ * The 13 MSBs are week modulo 1024, 19 LSBs are seconds of
+ * week in Zcounts.
+ */
+ unsigned long fullZcount() const
+ throw();
+
+ /// Same as fullZcount() but without rounding to nearest zcount.
+ unsigned long fullZcountFloor() const
+ throw();
+
+ /// Convert this object to a GPSZcount object.
+ /// @throws DayTimeException if this DayTime's current state
+ /// doesn't constitute a valid GPS Z-count.
+ operator GPSZcount() const
+ throw(DayTimeException) ;
+
+ /// Convert this object to a CommonTime object.
+ /// @throws DayTimeException if this DayTime's current state
+ /// doesn't constitute a valid CommonTime.
+ operator CommonTime() const
+ throw(DayTimeException);
+
+ // ----------- Part 9: member functions: set ------------
+ //
+ /**
+ * Set the object's time using calendar (Y/M/D) date
+ * and ordinary (H:M:S) time
+ * @param year four-digit year.
+ * @param month month of year (1-based).
+ * @param day day of month (1-based).
+ * @param hour hour of day.
+ * @param min minutes of hour.
+ * @param sec seconds of minute.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setYMDHMS(short year,
+ short month,
+ short day,
+ short hour,
+ short min,
+ double sec,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time.
+ * @warn In the case of 10-bit week input, the number of
+ * GPS week rollovers, and therefore the full GPS week,
+ * is determined from the current system time.
+ * @param week GPS week number.
+ * @param sow GPS seconds of week.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPS(short week,
+ double sow,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time (week and Z count).
+ * @warn In the case of 10-bit week input, the number of
+ * GPS week rollovers, and therefore the full GPS week,
+ * is determined from the current system time; prefer setGPSfullweek().
+ * @param week GPS week number.
+ * @param zcount Z-count (seconds of week / 1.5)
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPS(short week,
+ long zcount,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time. In case of 10-bit
+ * week input, the year and week are used to deduce the number
+ * of GPS week rollovers and thus the full GPS week;
+ * prefer setGPSfullweek().
+ * @param week GPS week number.
+ * @param zcount GPS Z-count (seconds of week / 1.5)
+ * @param year Four-digit year consistent with GPS input.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPS(short week,
+ long zcount,
+ short year,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time. In case of 10-bit
+ * week input, the year and week are used to deduce the number
+ * of GPS week rollovers and thus the full GPS week;
+ * prefer setGPSfullweek().
+ * @param week GPS week number.
+ * @param sow GPS seconds of week.
+ * @param year Four-digit year consistent with GPS input.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPS(short week,
+ double sow,
+ short year,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time (full Z count).
+ * @warn The number of GPS week rollovers, and therefore the
+ * full GPS week, is determined from the current system time.
+ * @param Zcount Full z-count (3 MSB unused, mid 10 bits -
+ * week number, 19 LSB "normal" z-count).
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPS(unsigned long Zcount,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time.
+ * @param fullweek Full (i.e. >10bits) GPS week number.
+ * @param sow Seconds of week.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPSfullweek(short fullweek,
+ double sow,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using GPS time.
+ * @param fullweek Full (i.e. >10bits) GPS week number.
+ * @param zcount Z-count (seconds of week / 1.5)
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPSfullweek(short fullweek,
+ long zcount,
+ TimeFrame f = Unknown)
+ throw(DayTimeException)
+ { return setGPSfullweek(fullweek, double(zcount) * 1.5, f) ; }
+
+ /**
+ * Set the object's time using the given GPSZcount.
+ * @warn The number of GPS week rollovers, and therefore the
+ * full GPS week, is determined from the current system time.
+ * @param z the GPSZcount object to set to
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setGPSZcount(const GPSZcount& z,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using the give CommonTime.
+ * @param c the CommonTime object to set to
+ * @param f Time frame (see #TimeFrame))
+ * @return a reference to this object.
+ */
+ DayTime& setCommonTime(const CommonTime& c,
+ TimeFrame f = Unknown)
+ throw();
+
+ /**
+ * Set the object's time using day of year.
+ * @param year Four-digit year.
+ * @param day_of_year Day of year.
+ * @param sec_of_day Seconds of day.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setYDoySod(short year,
+ short day_of_year,
+ double sec_of_day,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using (long double) Modified Julian date.
+ * This just sets the time to the indicated modified Julian date.
+ * @param mjd date/time to set, in MJD.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setMJD(long double mjd,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /// Same as setMJD
+ DayTime& setMJDdate(long double mjd,
+ TimeFrame f = Unknown)
+ throw(DayTimeException)
+ { return setMJD(mjd, f); }
+
+ /// Same as setMJD but with input of type double
+ DayTime& setMJD(double mjd,
+ TimeFrame f = Unknown)
+ throw(DayTimeException)
+ { return setMJD((long double)(mjd), f) ; }
+
+ /// Same as setMJD but with input of type double
+ DayTime& setMJDdate(double mjd,
+ TimeFrame f = Unknown)
+ throw(DayTimeException)
+ { return setMJD((long double)(mjd), f) ; }
+
+ /**
+ * Set the object's time using POSIX structures.
+ * This uses the POSIX timeval struct to set the time. This
+ * structure represents the time with a resolution of
+ * microseconds.
+ * @param t time to set
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setUnix(const struct timeval& t,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time using ANSI structures. This uses
+ * the ANSI C/C++ time_t struct to set the time. This
+ * structure represents the time with a resolution of
+ * seconds.
+ * @param t time to set
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setANSI(const time_t& t,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object's time to the current system time.
+ * If the POSIX gettimeofday() system call is available, it
+ * is used to determine system time. If the gettimeofday()
+ * call is not available, the ANSI time() system call is used
+ * to determine system time.
+ * @return a reference to this object.
+ */
+ DayTime& setSystemTime()
+ throw(DayTimeException);
+
+ /**
+ * Set the object time to the current local time.
+ */
+ DayTime& setLocalTime()
+ throw(DayTimeException);
+
+ /**
+ * Set the object using calendar (Y/M/D) date only (time is unchanged)
+ * @param yy four-digit year.
+ * @param mm month of year (1-based).
+ * @param dd day of month (1-based).
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setYMD(int yy,
+ int mm,
+ int dd,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object using ordinary (H:M:S) time only (day is unchanged)
+ * @param hh hour of day.
+ * @param mm minutes of hour.
+ * @param sec seconds of minute.
+ * @param f Time frame (see #TimeFrame)
+ * @return a reference to this object.
+ */
+ DayTime& setHMS(int hh,
+ int mm,
+ double sec,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object using seconds of day only (day is unchanged)
+ * @param sod seconds of day.
+ */
+ DayTime& setSecOfDay(double sod,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ /**
+ * Set the object using year and day of year only (time is unchanged)
+ * @param sod seconds of day.
+ */
+ DayTime& setYDoy(int yy,
+ int doy,
+ TimeFrame f = Unknown)
+ throw(DayTimeException);
+
+ // ----------- Part 10: member functions: setToString, printf --------
+ //
+ // FIX someone figure out how to make the table below show up
+ // nice in doxygen.
+ /**
+ * Similar to scanf, this function takes a string and a
+ * format describing string in order to read in daytime
+ * values. The parameters it can take are listed below and
+ * described above with the printf() function.
+ *
+ * The specification must resolve to a day at a minimum
+ * level. The following table lists combinations that give valid
+ * times. Anything more or other combinations will give
+ * unknown (read as: "bad") results so don't try it. Anything
+ * less will throw an exception. If nothing changes the time
+ * of day, it will default to midnight. Also, the year
+ * defaults to the current year if a year isn't specified
+ * or can't be determined.
+ *
+ * @code
+ * 1 of... and 1 of.... optional...
+ * %C
+ * %G %w %g %Z %Y %y
+ * %F %w %g %Z
+ * %m %B %b %a %A %d %Y %y %H %M %S
+ * %Q
+ * %j %Y %y %s
+ * @endcode
+ *
+ * So
+ * @code
+ * time.setToString("Aug 1, 2000 20:20:20", "%b %d, %Y %H:%M:%S")
+ * @endcode
+ * works but
+ * @code
+ * time.setToString("Aug 2000", "%b %Y")
+ * @endcode
+ * doesn't work (incomplete specification because it doesn't specify
+ * a day).
+ *
+ * Don't worry about counting whitespace - this function will
+ * take care of that. Just make sure that the extra stuff in
+ * the format string (ie '.' ',') are in the same relative
+ * location as they are in the actual string. (see in the
+ * example above))
+ *
+ * @param str string to get date/time from.
+ * @param fmt format to use to parse \c str.
+ * @throw DayTimeException if \c fmt is an incomplete specification
+ * @throw FormatException if unable to scan \c str.
+ * @throw StringException if an error occurs manipulating the
+ * \c str or \c fmt strings.
+ * @return a reference to this object.
+ */
+ DayTime& setToString(const std::string& str,
+ const std::string& fmt)
+ throw(DayTimeException, FormatException,
+ gpstk::StringUtils::StringException);
+
+
+ // if you can see this, ignore the \'s below, as they are for
+ // the nasty html-ifying of doxygen. Browsers try and
+ // interpret the % and they get all messed up.
+ /**
+ * Format this time into a string.
+ *
+ * Generate and return a string containing a formatted
+ * date, formatted by the specification \c fmt.
+ *
+ * \li \%Y year()
+ * \li \%y year() % 100
+ * \li \%m month()
+ * \li \%d day()
+ * \li \%H hour()
+ * \li \%M minute()
+ * \li \%S (short)second()
+ * \li \%f second()
+ * \li \%G GPS10bitweek()
+ * \li \%F GPSfullweek()
+ * \li \%g GPSsecond() or GPSsow()
+ * \li \%s DOYsecond()
+ * \li \%Q MJDdate()
+ * \li \%w dayOfWeek() or GPSday()
+ * \li \%b MonthAbbrevName[month()]
+ * \li \%B MonthName[month()]
+ * \li \%a DayOfWeekAbbrevName[dayOfWeek()]
+ * \li \%A DayOfWeekName[dayOfWeek()]
+ * \li \%j DOYday() or DOY()
+ * \li \%Z GPSzcount()
+ * \li \%z GPSzcountFloor()
+ * \li \%U unixTime().tv_sec
+ * \li \%u unixTime().tv_usec
+ * \li \%C fullZcount()
+ * \li \%c fullZcountFloor()
+ *
+ * @param fmt format to use for this time.
+ * @return a string containing this time in the
+ * representation specified by \c fmt.
+ */
+ std::string printf(const char *fmt) const
+ throw(gpstk::StringUtils::StringException);
+
+ /// Format this time into a string. @see printf(const char*)
+ std::string printf(const std::string& fmt) const
+ throw(gpstk::StringUtils::StringException)
+ { return printf(fmt.c_str()) ; }
+
+ /// Returns the string that operator<<() would print.
+ std::string asString() const
+ throw(gpstk::StringUtils::StringException);
+
+ /// Dump everything possible, using every get() TD: keep?
+ void dump(std::ostream& s) const
+ throw(DayTimeException);
+
+ // ----------- Part 11: functions: fundamental conversions ----------
+ //
+ /** Fundamental routine to convert from "Julian day" (= JD + 0.5)
+ * to calendar day.
+ * @param jd long integer "Julian day" = JD+0.5
+ * @param iyear reference to integer year
+ * @param imonth reference to integer month (January == 1)
+ * @param iday reference to integer day of month
+ * (1st day of month == 1)
+ * @note range of applicability of this routine is from 0JD (4713BC)
+ * to approx 3442448JD (4713AD).
+ * Algorithm references: Sinnott, R. W. "Bits and Bytes,"
+ * Sky & Telescope Magazine, Vol 82, p. 183, August 1991, and
+ * The Astronomical Almanac, published by the U.S. Naval Observatory.
+ */
+ static void convertJDtoCalendar(long jd,
+ int& iyear,
+ int& imonth,
+ int& iday)
+ throw();
+
+ /** Fundamental routine to convert from calendar day to "Julian day"
+ * (= JD + 0.5)
+ * @param iyear reference to integer year
+ * @param imonth reference to integer month (January == 1)
+ * @param iday reference to integer day of month
+ * (1st day of month == 1)
+ * @return jd long integer "Julian day" = JD+0.5
+ * @note range of applicability of this routine is from 0JD (4713BC)
+ * to approx 3442448JD (4713AD).
+ * Algorithm references: Sinnott, R. W. "Bits and Bytes,"
+ * Sky & Telescope Magazine, Vol 82, p. 183, August 1991, and
+ * The Astronomical Almanac, published by the U.S. Naval Observatory.
+ */
+ static long convertCalendarToJD(int iyear,
+ int imonth,
+ int iday)
+ throw();
+
+ /** Fundamental routine to convert seconds of day to H:M:S
+ * @param sod seconds of day (input)
+ * @param hh reference to integer hour (0 <= hh < 24) (output)
+ * @param mm reference to integer minutes (0 <= mm < 60) (output)
+ * @param sec reference to double seconds (0 <= sec < 60.0) (output)
+ */
+ static void convertSODtoTime(double sod,
+ int& hh,
+ int& mm,
+ double& sec)
+ throw();
+
+ /** Fundamental routine to convert H:M:S to seconds of day
+ * @param hh integer hour (0 <= hh < 24) (input)
+ * @param mm integer minutes (0 <= mm < 60) (input)
+ * @param sec double seconds (0 <= sec < 60.0) (input)
+ * @return sod seconds of day (input)
+ */
+ static double convertTimeToSOD(int hh,
+ int mm,
+ double sec)
+ throw();
+
+ // ----------- Part 12: private functions and member data ----------
+ //
+ private:
+ /// Initialization method. Used by the constructors.
+ void init()
+ throw();
+
+ /// Constructor with direct member data input.
+ DayTime(long jd,
+ long sod,
+ double ms,
+ double tol,
+ TimeFrame f = Unknown)
+ throw()
+ : jday(jd), mSod(sod), mSec(ms), tolerance(tol), timeFrame(f)
+ {}
+
+ /** Helper routine for add...() functions
+ * @param ldd the number of days to add to jday
+ * @param lds the number of milliseconds to add to mSod
+ * @param ds the number of partial milliseconds to add to mSec
+ * @throws DayTimeException if adding these values causes an overflow
+ * of the jday value
+ */
+ void addLongDeltaTime(long ldd,
+ long lds,
+ double ds)
+ throw(DayTimeException);
+
+ /// Helper routine to realign the internal representation in order to
+ /// avoid incorrect output (printf) when mSec is within tolerance of 1
+ void realignInternals(void)
+ throw();
+
+ /// integer 'Julian day', = JD+0.5 (0 <= jday <= 3442448)
+ long jday;
+
+ /// integer milliseconds of the day (0 <= mSod <= 86400000)
+ long mSod;
+
+ /// double fractional milliseconds (mSec < 1.0)
+ double mSec;
+
+ /// double tolerance used in comparisons (seconds)
+ double tolerance;
+
+ /// @sa TimeFrame
+ TimeFrame timeFrame;
+
+ }; // end class DayTime
+
+ // ----------- Part 13: operator<< -----------
+ //
+ /**
+ * Stream output for DayTime objects. Typically used for debugging.
+ * @param s stream to append formatted DayTime to.
+ * @param t DayTime to append to stream \c s.
+ * @return reference to \c s.
+ */
+ std::ostream& operator<<( std::ostream& s,
+ const gpstk::DayTime& t );
+
+ //@}
+
+} // namespace gpstk
+
+#endif // GPSTK_DAYTIME_HPP
diff --git a/dev/src/DeltaOp.cpp b/dev/src/DeltaOp.cpp
new file mode 100644
index 0000000..5265cd9
--- /dev/null
+++ b/dev/src/DeltaOp.cpp
@@ -0,0 +1,96 @@
+
+/**
+ * @file DeltaOp.cpp
+ * This is a class to apply the Delta operator (differences on ground-related data) to GNSS data structures.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+#include "DeltaOp.hpp"
+
+
+namespace gpstk
+{
+
+ // Returns a reference to a gnssSatTypeValue object after differencing the
+ // data type values given in the diffTypes field with respect to reference
+ // station data in refData field.
+ //
+ // @param gData Data object holding the data.
+ //
+ satTypeValueMap& DeltaOp::Difference(satTypeValueMap& gData)
+ {
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites in the station data set
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ satTypeValueMap::const_iterator itref;
+ // Let's find if the same satellite is present in refData
+ itref = refData.find((*it).first);
+
+ // If we found the satellite, let's proceed with the differences
+ if (itref != refData.end())
+ {
+ // We must compute the difference for all the types in diffTypes set
+ TypeIDSet::const_iterator itType;
+ for (itType = diffTypes.begin(); itType != diffTypes.end(); ++itType)
+ {
+
+ double value1(0.0);
+ double value2(0.0);
+
+ try
+ {
+ // Let's try to compute the difference
+ value1 = gData((*it).first)(*itType);
+ value2 = refData((*it).first)(*itType);
+
+ gData((*it).first)((*itType)) = value1 - value2;
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue; // Skip this value if problems arise
+ }
+ }
+
+ } else {
+ // If we didn't find the same satellite in both sets, mark it for deletion
+ satRejectedSet.insert( (*it).first );
+ continue;
+ };
+ }
+
+ // If ordered so, delete the missing satellites
+ if (deleteMissingSats) gData.removeSatID(satRejectedSet);
+
+ return gData;
+
+ } // end DeltaOp::Difference()
+
+
+} // end namespace gpstk
diff --git a/dev/src/DeltaOp.hpp b/dev/src/DeltaOp.hpp
new file mode 100644
index 0000000..f6f45cd
--- /dev/null
+++ b/dev/src/DeltaOp.hpp
@@ -0,0 +1,375 @@
+
+/**
+ * @file DeltaOp.hpp
+ * This is a class to apply the Delta operator (differences on ground-related data) to GNSS data structures.
+ */
+
+#ifndef DELTAOP_HPP
+#define DELTAOP_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "TypeID.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * This class applies the Delta operator (differences on ground-related data)
+ * to GNSS data structures.
+ *
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * // Input observation file stream for ROVER
+ * RinexObsStream rin("ebre0300.02o");
+ * // Reference position of receiver station
+ * Position nominalPos(4833520.2269, 41537.00768, 4147461.489);
+ *
+ * // Input observation file stream for REFERENCE STATION
+ * RinexObsStream rinRef("garr1900.07o");
+ * // Reference station nominal position
+ * Position nominalPosRef(4796983.7690, 160308.7500, 4187339.9860);
+ *
+ * // Some more code and definitions here...
+ *
+ * gnssRinex gRin; // GNSS data structure for rover data
+ * gnssRinex gRef; // GNSS data structure for reference station data
+ *
+ * // Set defaults of models. A typical C1-based modeling is used
+ * ModeledPR model(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1, true);
+ * ModeledReferencePR modelRef(nominalPosRef, ionoStore, mopsTM, bceStore, TypeID::C1, true);
+ *
+ * // Create an object to compute the single differences of prefit residuals
+ * DeltaOp delta;
+ *
+ *
+ * while(rin >> gRin) {
+ *
+ * rinRef >> gRef; // Be sure that data streams ARE synchronized!!!
+ * delta.setRefData(gRef.body); // Set the reference data to be differenced
+ *
+ * gRef >> modelRef; // Apply model to reference data
+ *
+ * // By default, difference is applied on code prefit residuals
+ * gRin >> model >> delta >> solver;
+ * }
+ *
+ * @endcode
+ *
+ * The "DeltaOp" object will visit every satellite in the GNSS data structure that
+ * is "gRin" and will substract from the specified type or types (code prefit
+ * residuals by default) the corresponding data in the "gRef" data structure.
+ *
+ * Take notice that in the default case the code prefit residuals were computed by
+ * the "ModeledPR" and "ModeledReferencePR" objects, so those steps are mandatory.
+ *
+ * Be warned that, by default, if a given satellite does not have in "gRin" the data
+ * required to be differenced, it will be summarily deleted from the data structure.
+ *
+ * @sa NablaOp.hpp for differences on satellite-related data.
+ *
+ */
+ class DeltaOp
+ {
+ public:
+
+ /// Default constructor. By default it will difference prefitC data and will delete satellites present in reference station data but missing in input data.
+ DeltaOp() : deleteMissingSats(true)
+ {
+ diffTypes.insert(TypeID::prefitC);
+ };
+
+
+ /** Common constructor taking a satTypeValueMap as reference station data.
+ * By default it will difference prefitC data and will delete satellites
+ * present in reference station data but missing in input data.
+ *
+ * @param gData satTypeValueMap data object holding the reference station data.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const satTypeValueMap& gData, const bool& delSats=true) : refData(gData), deleteMissingSats(delSats)
+ {
+ diffTypes.insert(TypeID::prefitC);
+ }
+
+
+ /** Common constructor taking a satTypeValueMap as reference station data.
+ * By default it will delete satellites present in reference station data
+ * but missing in input data.
+ *
+ * @param gData satTypeValueMap data object holding the reference station data.
+ * @param difftype TypeID of data values to be differenced.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const satTypeValueMap& gData, const TypeID& difftype, const bool& delSats=true) : refData(gData), deleteMissingSats(delSats)
+ {
+ diffTypes.insert(difftype);
+ }
+
+
+ /** Common constructor taking a satTypeValueMap as reference station data.
+ * By default it will delete satellites present in reference station data
+ * but missing in input data.
+ *
+ * @param gData satTypeValueMap data object holding the reference station data.
+ * @param diffSet TypeIDSet of data values to be differenced.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const satTypeValueMap& gData, const TypeIDSet& diffSet, const bool& delSats=true) : refData(gData), deleteMissingSats(delSats), diffTypes(diffSet) {}
+
+
+ /** Common constructor taking a gnssSatTypeValue as reference station data.
+ * By default it will difference prefitC data and will delete satellites
+ * present in reference station data but missing in input data.
+ *
+ * @param gData gnssSatTypeValue data object holding the reference station data.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const gnssSatTypeValue& gData, const bool& delSats=true) : refData(gData.body), deleteMissingSats(delSats)
+ {
+ diffTypes.insert(TypeID::prefitC);
+ }
+
+
+ /** Common constructor taking a gnssSatTypeValue as reference station data.
+ * By default it will delete satellites present in reference station data
+ * but missing in input data.
+ *
+ * @param gData gnssSatTypeValue data object holding the reference station data.
+ * @param difftype TypeID of data values to be differenced.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const gnssSatTypeValue& gData, const TypeID& difftype, const bool& delSats=true) : refData(gData.body), deleteMissingSats(delSats)
+ {
+ diffTypes.insert(difftype);
+ }
+
+
+ /** Common constructor taking a gnssSatTypeValue as reference station data.
+ * By default it will delete satellites present in reference station data
+ * but missing in input data.
+ *
+ * @param gData gnssSatTypeValue data object holding the reference station data.
+ * @param diffSet TypeIDSet of data values to be differenced.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const gnssSatTypeValue& gData, const TypeIDSet& diffSet, const bool& delSats=true) : refData(gData.body), deleteMissingSats(delSats), diffTypes(diffSet) {}
+
+
+ /** Common constructor taking a gnssRinex as reference station data.
+ * By default it will difference prefitC data and will delete satellites
+ * present in reference station data but missing in input data.
+ *
+ * @param gData gnssRinex data object holding the reference station data.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const gnssRinex& gData, const bool& delSats=true) : refData(gData.body), deleteMissingSats(delSats)
+ {
+ diffTypes.insert(TypeID::prefitC);
+ }
+
+
+ /** Common constructor taking a gnssRinex as reference station data.
+ * By default it will delete satellites present in reference station data
+ * but missing in input data.
+ *
+ * @param gData gnssRinex data object holding the reference station data.
+ * @param difftype TypeID of data values to be differenced.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const gnssRinex& gData, const TypeID& difftype, const bool& delSats=true) : refData(gData.body), deleteMissingSats(delSats)
+ {
+ diffTypes.insert(difftype);
+ }
+
+
+ /** Common constructor taking a gnssRinex as reference station data.
+ * By default it will delete satellites present in reference station data
+ * but missing in input data.
+ *
+ * @param gData gnssRinex data object holding the reference station data.
+ * @param diffSet TypeIDSet of data values to be differenced.
+ * @param delSats Boolean value setting if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ */
+ DeltaOp(const gnssRinex& gData, const TypeIDSet& diffSet, const bool& delSats=true) : refData(gData.body), deleteMissingSats(delSats), diffTypes(diffSet) {}
+
+
+
+ /** Method to set the satTypeValueMap data object holding the reference station data.
+ * @param gData satTypeValueMap data object holding the reference station data.
+ */
+ virtual void setRefData(const satTypeValueMap& gData)
+ {
+ refData = gData;
+ };
+
+
+ /// Method to get the satTypeValueMap data object holding the reference station data.
+ virtual satTypeValueMap getRefData() const
+ {
+ return refData;
+ };
+
+
+ /** Method to set if satellites present in reference station data but missing in input data will be deleted from the later (this is the default).
+ * @param deleteSats Boolean stating if satellites will be deleted or not.
+ */
+ virtual void setDeleteMissingSats(const bool& deleteSats)
+ {
+ deleteMissingSats = deleteSats;
+ };
+
+
+ /// Method to get the deleteMissingSats field value (i.e., if missing satellites will be deleted or not).
+ virtual bool getDeleteMissingSats() const
+ {
+ return deleteMissingSats;
+ };
+
+
+ /** Method to set the data values to be differenced. The previous type values will be deleted. If this is not what you want, see method addDiffType.
+ * @param difftype TypeID of data values to be differenced.
+ */
+ virtual void setDiffType(const TypeID& difftype)
+ {
+ diffTypes.clear(); // Delete the previous types
+ diffTypes.insert(difftype);
+ };
+
+
+ /** Method to add a data value type to be differenced.
+ * @param difftype TypeID of data values to be added to the ones being differenced.
+ */
+ virtual void addDiffType(const TypeID& difftype)
+ {
+ diffTypes.insert(difftype);
+ };
+
+
+ /** Method to set the data values to be differenced. The previous type values will be deleted. If this is not what you want, see method addDiffType.
+ * @param diffSet TypeIDSet of data values to be differenced.
+ */
+ virtual void setDiffTypeSet(const TypeIDSet& diffSet)
+ {
+ diffTypes.clear(); // Delete the previous types
+ diffTypes = diffSet;
+ };
+
+
+ /** Method to add a set of data value types to be differenced.
+ * @param diffSet TypeIDSet of data values to be added to the ones being differenced.
+ */
+ virtual void addDiffTypeSet(const TypeIDSet& diffSet)
+ {
+ TypeIDSet::const_iterator pos;
+ for (pos = diffSet.begin(); pos != diffSet.end(); ++pos) diffTypes.insert(*pos);
+ };
+
+
+ /// Method to get the set of data value types to be differenced.
+ virtual TypeIDSet getDiffTypeSet() const
+ {
+ return diffTypes;
+ };
+
+
+ /** Returns a reference to a satTypeValueMap object after differencing the data type values given in the diffTypes field with respect to reference station data in refData field.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Difference(satTypeValueMap& gData);
+
+
+ /** Returns a reference to a gnssSatTypeValue object after differencing the data type values given in the diffTypes field with respect to reference station data in refData field.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Difference(gnssSatTypeValue& gData)
+ {
+ (*this).Difference(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a reference to a gnnsRinex object after differencing the data type values given in the diffTypes field with respect to reference station data in refData field.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Difference(gnssRinex& gData)
+ {
+ (*this).Difference(gData.body);
+ return gData;
+ };
+
+
+ /// Destructor.
+ virtual ~DeltaOp() {};
+
+
+ private:
+
+
+ /// satTypeValueMap data structure containing reference station data.
+ satTypeValueMap refData;
+
+
+ /// Flag indicating if satellites present in reference station data but missing in input data will be deleted.
+ bool deleteMissingSats;
+
+
+
+ /// Set (TypeIDSet) containing the types of data to be differenced.
+ TypeIDSet diffTypes;
+
+
+ }; // class DeltaOp
+
+
+ /// Input operator from gnssSatTypeValue to DeltaOp.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, DeltaOp& delta)
+ {
+ delta.Difference(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to DeltaOp.
+ inline gnssRinex& operator>>(gnssRinex& gData, DeltaOp& delta)
+ {
+ delta.Difference(gData);
+ return gData;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/ECEF.cpp b/dev/src/ECEF.cpp
new file mode 100644
index 0000000..0749318
--- /dev/null
+++ b/dev/src/ECEF.cpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file ECEF.cpp
+ * Encapsulate Earth-centered, Earth-fixed Cartesian coordinates
+ */
+
+#include "geometry.hpp"
+#include "ECEF.hpp"
+#include "Geodetic.hpp"
+#include "MiscMath.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+
+ ECEF :: ECEF()
+ : Triple()
+ {
+ }
+
+ ECEF :: ECEF(const ECEF& right)
+ : Triple(right)
+ {
+ }
+
+ ECEF& ECEF :: operator=(const ECEF& right)
+ {
+ Triple::operator=(right);
+ return *this;
+ }
+
+ // Convert Earth-centered, Earth-fixed XYZ coordinates (m)
+ // to Geodetic coordinates (lat,lon(E),ht) (deg,degE,m).
+ Geodetic ECEF::asGeodetic(GeoidModel* geoid)
+ {
+ double X = this->operator[](0); //ecef[0]; // m
+ double Y = this->operator[](1); //ecef[1]; // m
+ double Z = this->operator[](2); //ecef[2]; // m
+ double p = RSS(X,Y);
+ double latd = atan2(Z,p*(1.0-geoid->eccSquared()));
+ double ht = 0.0, slatd, N, htold, latdold;
+ for(int i=0; i<5; i++) {
+ slatd = sin(latd);
+ N = geoid->a() / SQRT(1.0-geoid->eccSquared()*slatd*slatd);
+ htold = ht;
+ ht = p/cos(latd) - N;
+ latdold = latd;
+ latd = atan2(Z,p*(1.0-geoid->eccSquared()*(N/(N+ht))));
+ if(ABS(latd-latdold) < 1.0e-9 &&
+ ABS(ht-htold) < (1.0e-9*geoid->a())) break;
+ }
+ double lon = atan2(Y,X);
+ if(lon < 0.0) lon += 6.2831853071796;
+
+ Geodetic g(latd*RAD_TO_DEG,lon*RAD_TO_DEG,ht,geoid); // deg,deg E,m
+ return g;
+
+ } // end asGeodetic(geoid)
+
+} // namespace gpstk
diff --git a/dev/src/ECEF.hpp b/dev/src/ECEF.hpp
new file mode 100644
index 0000000..9ed6fae
--- /dev/null
+++ b/dev/src/ECEF.hpp
@@ -0,0 +1,110 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file ECEF.hpp
+ * Encapsulate Earth-centered, Earth-fixed Cartesian coordinates
+ */
+
+#ifndef GPSTK_ECEF_HPP
+#define GPSTK_ECEF_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "Triple.hpp"
+#include "Exception.hpp"
+#include "GeoidModel.hpp"
+
+namespace gpstk
+{
+ class Geodetic;
+
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /**
+ * Earth centered, earth fixed geodetic coordinates in meters.
+ */
+ class ECEF : public Triple
+ {
+ public:
+ /// Default constructor.
+ ECEF();
+
+ /// Copy constructor.
+ ECEF(const ECEF& right);
+
+ /// Construct from three doubles.
+ /// @param x x coordinate in meters
+ /// @param y y coordinate in meters
+ /// @param z z coordinate in meters
+ ECEF(const double& x, const double& y, const double& z)
+ : Triple(x, y, z)
+ { }
+
+ /// Construct from a Triple. The Triple consists of the x coordinate,
+ /// the y coordinate, and the z coordinate. All in meters.
+ /// @param t the Triple to copy from.
+ ECEF(const Triple& t)
+ : Triple(t)
+ { }
+
+ /// destructor
+ virtual ~ECEF() {}
+
+ /// Assignment operator.
+ ECEF& operator=(const ECEF& right);
+
+ /** \deprecated Convert to Geodetic
+ * Geodetic has a constructor that takes an ECEF and GeoidModel.
+ * \sa Geodetic, GeoidModel
+ */
+ Geodetic asGeodetic(GeoidModel *g);
+
+ }; // class ECEF
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/EngAlmanac.cpp b/dev/src/EngAlmanac.cpp
new file mode 100644
index 0000000..6056dd1
--- /dev/null
+++ b/dev/src/EngAlmanac.cpp
@@ -0,0 +1,540 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file EngAlmanac.cpp
+ * Almanac data encapsulated in engineering terms
+ */
+
+#include "gps_constants.hpp"
+#include "DayTime.hpp"
+#include "EngAlmanac.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+// This is a macro in order to retain useful location information in the exc
+#define CHECK_SV_HERE(itty, prn) \
+if (itty == almPRN.end()) \
+{ \
+ SVNotPresentException \
+ exc("Attempt to get data from EngAlmanac from a SV that is not" \
+ " present."); \
+ GPSTK_THROW(exc); \
+}
+
+namespace gpstk
+{
+ EngAlmanac :: EngAlmanac()
+ throw()
+ {
+ for (int n = 0; n < 4; n++)
+ {
+ alpha[n] = beta[n] = 0.0;
+ }
+
+ A0 = A1 = dt_ls = dt_lsf = 0.0;
+
+ t_ot = t_oa = 0;
+
+ wn_t = wn_lsf = 0;
+
+ alm_wk = 0;
+
+ dn = 0;
+
+ haveUTC = false;
+ }
+
+ bool EngAlmanac::addSubframe(const long subframe[10],
+ const int gpsWeek)
+ throw(InvalidParameter)
+ {
+ double ficked[60];
+
+ if (!subframeConvert(subframe, gpsWeek, ficked))
+ return false;
+
+ short pat = getSubframePattern(subframe);
+
+ // check tlm preamble, subframe id and format #
+ if ((ficked[0] != 0x8b) || ((ficked[4] != 4) && (ficked [4] != 5))
+ || (pat < 4) || (pat > 10))
+ {
+ InvalidParameter
+ exc("EngAlmanac::addSubframe: Not a valid almanac page.");
+ GPSTK_THROW(exc);
+ }
+
+ short svid = (subframe[3] >> 22) & 0x3F;
+ short sfid = (subframe[2] >> 8) & 0x7;
+ long tow = ((subframe[2] >> 13) & 0x1ffff) * 6;
+
+ switch(pat)
+ {
+ case 4:
+ /* Page with Orbital Elements */
+ /*check PRN */
+ if ((ficked[19] < 0) || (ficked[19] > MAX_PRN))
+ {
+ InvalidParameter exc("EngAlmanac::addSubframe, PRN out of range "
+ + StringUtils::asString(ficked[19]));
+ GPSTK_THROW(exc);
+ }
+ {
+ int prn = static_cast<short>( ficked[19] );
+ if (prn) {
+ SatID sat(prn,SatID::systemGPS);
+ almPRN[sat] = AlmOrbit(prn, ficked[7], ficked[9], ficked[10],
+ ficked[12], ficked[13], ficked[14],
+ ficked[15], ficked[16], ficked[17],
+ static_cast<long>( ficked[8] ),
+ static_cast<long>( ficked[2] ), gpsWeek,
+ static_cast<short>( ficked[11] ));
+ }
+ }
+ break;
+
+ case 5: /* Page with Satellite health information 1-24 */
+ for (int i=1; i <=24; i++)
+ health[i] = static_cast<char>( ficked[7 + i] );
+ // manually crack the t_oa and WNa
+ t_oa = ((subframe[2] >> 14) & 0xFF) * 4096;
+ convert8bit(gpsWeek, &ficked[7]);
+ alm_wk = static_cast<int>(ficked[7]);
+ break;
+
+ case 6:
+ case 7:
+ /* ignore page becase no data for our structure */
+ return true;
+
+ case 8: /* Page with UTC and ionosphere parameters */
+ alpha[0] = ficked[7];
+ alpha[1] = ficked[8];
+ alpha[2] = ficked[9];
+ alpha[3] = ficked[10];
+ beta[0] = ficked[11];
+ beta[1] = ficked[12];
+ beta[2] = ficked[13];
+ beta[3] = ficked[14];
+ A0 = ficked[15];
+ A1 = ficked[16];
+ dt_ls = ficked[19];
+ t_ot = static_cast<long>( ficked[17] );
+ wn_t = static_cast<int>( ficked[18] );
+ wn_lsf = static_cast<int>( ficked[20] );
+ dn = static_cast<char>( ficked[21] );
+ dt_lsf = ficked[22];
+ haveUTC = true;
+ break;
+
+ case 9: /* Page with Health for 25-32 and AS/SV config */
+ for (int i=1; i<=MAX_PRN; i++)
+ SV_config[i] = static_cast<char>( ficked[6 + i] );
+
+ for (int i=25; i<=MAX_PRN; i++)
+ health[i] = static_cast<char>( ficked[14 + i] );
+ break;
+
+ case 10:/* Page with Special Message */
+ special_msg = "";
+ for (int i=0; i<22; i++)
+ special_msg += static_cast<char>( ficked[7 + i] );
+ break;
+
+ default:
+ // never reached, see if statement prior to this switch
+ break;
+ }
+ return true;
+ }
+
+ double EngAlmanac::getEcc(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the ecc for the given PRN
+ return (*i).second.ecc;
+ }
+
+ double EngAlmanac::getIOffset(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the iOffset for the given PRN
+ return (*i).second.i_offset;
+ }
+
+ double EngAlmanac::getOmegadot(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of OMEGAdot for the given PRN
+ return (*i).second.OMEGAdot;
+ }
+
+ short EngAlmanac::getSVHealth(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of SV_health for the given PRN
+ return (*i).second.SV_health;
+ }
+
+ double EngAlmanac::getAhalf(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of Ahalf for the given PRN
+ return (*i).second.Ahalf;
+ }
+
+ double EngAlmanac::getA(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of A for the given PRN
+ return (*i).second.Ahalf * (*i).second.Ahalf;
+ }
+
+ double EngAlmanac::getOmega0(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of OMEGA0 for the given PRN
+ return (*i).second.OMEGA0;
+ }
+
+ double EngAlmanac::getW(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of w for the given PRN
+ return (*i).second.w;
+ }
+
+ double EngAlmanac::getM0(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of M0 for the given PRN
+ return (*i).second.M0;
+ }
+
+ double EngAlmanac::getAf0(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the af0 for the given PRN
+ return (*i).second.AF0;
+ }
+
+
+ double EngAlmanac::getAf1(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of af1 for the given PRN
+ return (*i).second.AF1;
+ }
+
+
+ double EngAlmanac::getToa() const throw()
+ {
+ return static_cast<double>( t_oa );
+ }
+
+ double EngAlmanac::getToa(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the Toa for the given PRN
+ return static_cast<double>( (*i).second.Toa );
+ }
+
+
+ double EngAlmanac::getXmitTime(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the xmit_time for the given PRN
+ return static_cast<double>( (*i).second.xmit_time );
+ }
+
+
+ short EngAlmanac::getFullWeek(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ return (*i).second.getFullWeek();
+ }
+
+ void EngAlmanac::getIon(double a[4], double b[4]) const
+ throw(InvalidRequest)
+ {
+ if (!haveUTC)
+ {
+ InvalidRequest
+ exc("UTC offset (subframe 4, page 18) is not present.");
+ GPSTK_THROW(exc);
+ }
+ for (int n = 0; n < 4; n++)
+ {
+ a[n] = alpha[n];
+ b[n] = beta[n];
+ }
+ }
+
+ void EngAlmanac::getUTC(double& a0, double& a1, double& deltaTLS,
+ long& tot, int& WNt, int& WNLSF,
+ int& DN, double& deltaTLSF) const
+ throw(InvalidRequest)
+ {
+ if (!haveUTC)
+ {
+ InvalidRequest
+ exc("UTC offset (subframe 4, page 18) is not present.");
+ GPSTK_THROW(exc);
+ }
+ a0 = A0;
+ a1 = A1;
+ deltaTLS = dt_ls;
+ tot = t_ot;
+ WNt = wn_t;
+ WNLSF = wn_lsf;
+ DN = static_cast<int>( dn );
+ deltaTLSF = dt_lsf;
+ }
+
+ short EngAlmanac::getAlmWeek() const throw()
+ {
+ return alm_wk;
+ }
+
+ AlmOrbit EngAlmanac::getAlmOrbElem(SatID sat) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the orbit elm. for the given PRN
+ return (*i).second;
+ }
+
+ Xvt EngAlmanac::svXvt(SatID sat, const DayTime& t) const
+ throw(EngAlmanac::SVNotPresentException)
+ {
+ AlmOrbits::const_iterator i = almPRN.find(sat);
+ CHECK_SV_HERE(i, sat);
+
+ // return value of the orbit elm. for the given PRN
+ return (*i).second.svXvt(t);
+ }
+
+ bool EngAlmanac::isData(SatID sat) const throw()
+ {
+ return (almPRN.find(sat) != almPRN.end());
+ }
+
+ string int2bin(unsigned int v, int len=8)
+ {
+ string s;
+ for (int i = 0; i < len; i++)
+ {
+ if (v & 1)
+ s = "1" + s;
+ else
+ s = "0" + s;
+ v = v >> 1;
+ }
+ return s;
+ }
+
+
+ bool EngAlmanac::check(ostream& s) const
+ {
+ bool good = false;
+
+ if (!haveUTC)
+ s << "UTC offset (subframe 4, page 18) is not present." << endl;
+
+ double p51Toa=getToa();
+ for (int prn=1; prn<=32; prn++)
+ {
+ try
+ {
+ double svToa = getToa(gpstk::SatID(prn, SatID::systemGPS));
+ if (svToa != p51Toa)
+ {
+ s << "Toa mis-match on prn " << prn
+ << " page 51 Toa=" << p51Toa
+ << ", SV Toa=" << svToa << endl;
+ good = false;
+ }
+ }
+ catch (SVNotPresentException& e)
+ {
+ cout << "No page for prn " << prn << endl;
+ }
+ }
+ return good;
+ }
+
+
+ void EngAlmanac::dump(ostream& s, bool checkFlag) const
+ {
+ ios::fmtflags oldFlags = s.flags();
+
+ s.fill(' ');
+
+ s << "****************************************************************"
+ << "***************" << endl
+ << "Broadcast Almanac (Engineering Units)" << endl
+ << endl;
+
+ s << endl << " Iono Parameters" << endl << endl;
+ s << "Alpha: ";
+ for (int i=0; i<4; i++)
+ s << setw(12) << alpha[i] << " ";
+ s << " various" << endl;
+ s << " Beta: ";
+ for (int i=0; i<4; i++)
+ s << setw(12) << beta[i] << " ";
+ s << " various" << endl;
+
+ s << endl << " UTC Paramters" << endl << endl;
+ s << "A0: " << setw(12) << A0 << " sec" << endl
+ << "A1: " << setw(12) << A1 << " sec/sec" << endl
+ << "dt_ls: " << setw(12) << dt_ls << " sec" << endl
+ << "t_ot: " << setw(12) << t_ot << " sec" << endl
+ << "wn_t: " << setw(12) << wn_t << " week" << endl
+ << "wn_lsf " << setw(12) << wn_lsf << " week" << endl
+ << "dn: " << setw(12) << (int)dn << " days" << endl
+ << "dt_lsf: " << setw(12) << dt_lsf << " sec" << endl;
+
+ s << endl << " Orbit Parameters" << endl << endl;
+ for (AlmOrbits::const_iterator i = almPRN.begin(); i != almPRN.end(); i++)
+ s << (*i).second;
+
+ s << endl << " Special Message" << endl << endl;
+ StringUtils::hexDumpData(s, special_msg);
+
+
+ s << endl << " Page 25 Health, AS, & SV config" << endl << endl;
+
+ s << "Toa: " << setfill(' ') << setw(8) << t_oa
+ << ", week: " << setw(5) << alm_wk << endl << endl
+ << "PRN health AS cfg PRN health AS cfg" << endl;
+ string bits[33];
+
+ for (SVBitsMap::const_iterator i = health.begin(); i != health.end(); i++)
+ {
+ int prn = i->first;
+ if (prn >= 1 && prn <= 32)
+ bits[prn] = int2bin(i->second, 6);
+ }
+
+ for (SVBitsMap::const_iterator i = SV_config.begin(); i != SV_config.end(); i++)
+ {
+ int prn = i->first;
+ if (prn >= 1 && prn <= 32)
+ {
+ bits[prn] += " " + int2bin(i->second, 4);
+ bits[prn].insert(9, " ");
+ }
+ }
+
+ for (int i=1; i<=16; i++)
+ s << setw(2) << i << " " << bits[i] << " "
+ << setw(2) << i+16 << " " << bits[i+16] << endl;
+
+ s << endl;
+
+ if (checkFlag)
+ check(s);
+
+ s << endl;
+
+ s.flags(oldFlags);
+ } // end of dump()
+
+ std::ostream& operator<<(std::ostream& s, const EngAlmanac& alm)
+ {
+ alm.dump(s);
+ return s;
+ }
+
+} // namespace
diff --git a/dev/src/EngAlmanac.hpp b/dev/src/EngAlmanac.hpp
new file mode 100644
index 0000000..4f00647
--- /dev/null
+++ b/dev/src/EngAlmanac.hpp
@@ -0,0 +1,321 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EngAlmanac.hpp
+ * Almanac data encapsulated in engineering terms
+ */
+
+#ifndef GPSTK_ENGALMANAC_HPP
+#define GPSTK_ENGALMANAC_HPP
+
+#include "Exception.hpp"
+#include "EngNav.hpp"
+#include "AlmOrbit.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemcalc */
+ //@{
+
+ /**
+ * Almanac information for the GPS constellation. This class
+ * encapsulates the almanac navigation message (subframes 4 & 5)
+ * and provides functions to decode the as-broadcast almanac.
+ * It is possible for an EngAlmanac to not contain a complete
+ * set of pages.
+ */
+ class EngAlmanac : public EngNav
+ {
+ public:
+ /// Exception - requested almanac page that wasn't present.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(SVNotPresentException, gpstk::InvalidRequest);
+
+ /// Map PRN to bits (e.g. health bits).
+ typedef std::map<short, unsigned char, std::less<short> > SVBitsMap;
+
+ /// Default constructor, blank almanac.
+ EngAlmanac() throw();
+
+ /// Destructor
+ virtual ~EngAlmanac() {}
+
+ /**
+ * Store a subframe in this object.
+ * @param subframe ten word navigation subframe stored in the
+ * 30 least-significant bits of each array index.
+ * @param gpsWeek full GPS week number.
+ * @return true if successful.
+ * @throw InvalidParameter if subframe is valid but not subframe 4-5.
+ */
+ bool addSubframe(const long subframe[10], const int gpsWeek)
+ throw(gpstk::InvalidParameter);
+
+ /** This function returns true if data is available for a given
+ * PRN. This data is accessed by the below accesser methods
+ */
+ bool isData(SatID sat) const throw();
+
+ /** This function returns the value of the eccentricity for
+ * the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getEcc(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the offset of the
+ * inclination from 54 degrees in radians for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getIOffset(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the rate of the right
+ * ascension of the ascending node in radians/second for the
+ * given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getOmegadot(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the health of the given
+ * PRN from the general pages in the almanac. It return the
+ * shortened 6 bit health that is in those pages.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ short get6bitHealth(SatID sat) const throw();
+
+ /** This function returns the value of the health of the given
+ * PRN from the PRN specific page which might not be present.
+ * This is the full 8 bit health
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ short getSVHealth(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the square root of the
+ * semi-major axis in square root of meters for the given
+ * PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getAhalf(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the semi-major axis in
+ * meters for the specified PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getA(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the right ascension of
+ * the ascending node in radians for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getOmega0(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the argument of perigee
+ * in radians for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getW(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the mean anomaly in
+ * radians for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getM0(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the SV clock error in seconds for
+ * the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getAf0(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the SV clock drift in
+ * seconds/seconds for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getAf1(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the time of the almanac
+ * (from page 51) in GPS seconds of week.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getToa() const throw();
+
+ /** This function returns the value of the time of the almanac
+ * in GPS seconds of week for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getToa(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the transmit time for
+ * this almanac data in seconds of week for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ double getXmitTime(SatID sat) const throw(SVNotPresentException);
+
+ /** This function returns the value of the week of the page
+ * transmission for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ short getFullWeek(SatID sat) const throw(SVNotPresentException);
+
+ /**
+ * Get the ionospheric parameters.
+ * @throw InvalidRequest if the almanac page isn't present
+ */
+ void getIon(double a[4], double b[4]) const
+ throw(InvalidRequest);
+
+ /**
+ * Get the UTC offset parameters.
+ * @throw InvalidRequest if the almanac page isn't present
+ */
+ void getUTC(double& a0, double& a1, double& deltaTLS, long& tot,
+ int& WNt, int& WNLSF, int& DN, double& deltaTLSF) const
+ throw(InvalidRequest);
+
+ /** This function gets the week number for the almanac stored
+ * in this object. It is replaced when an almanac is
+ * converted to engineering units with the almWeek from the
+ * data. It also is replaced by the week number in the FIC
+ * data (if it is non zero) when addSF is used to add FIC
+ * data to the almanac. This is a full GPS week number (ie >
+ * 10 bits)
+ */
+ short getAlmWeek() const throw();
+
+ /** This function returns an object containing all of the
+ * almanac orbit elements for the given PRN.
+ * @throw SVNotPresentException if almanac page for the given
+ * PRN isn't present.
+ */
+ AlmOrbit getAlmOrbElem(SatID sat) const
+ throw(SVNotPresentException);
+
+ /** This function returns an object containing all of the
+ * almanac orbit elements.
+ */
+ AlmOrbits getAlmOrbElems() const
+ { return almPRN; }
+
+ /** Compute satellite velocity/position at the given time
+ * using this almanac.
+ * @param sat SatID of satellite to get velocity/position of.
+ * @param t time at which to compute SV position.
+ * @throw InvalidRequest if a required subframe has not been stored.
+ */
+ Xvt svXvt(SatID sat, const DayTime& t) const
+ throw(SVNotPresentException);
+
+ /// \deprecated use the SatID version
+ Xvt svXvt(short prn, const DayTime& t) const
+ throw(SVNotPresentException)
+ { SatID sat(prn,SatID::systemGPS); return svXvt(sat,t); }
+
+ void dump(std::ostream& s = std::cout, bool checkFlag=true) const;
+
+ bool check(std::ostream& s) const;
+
+ protected:
+ /** This function is used to make sure data is present before
+ * accessing it.
+ */
+ void checkSVHere(SatID sat) const throw(SVNotPresentException);
+
+
+ /** ionosphere parameters */
+ //@{
+ double alpha[4];
+ double beta[4];
+ //@}
+
+ /** UTC Parameters */
+ //@{
+ double A0; /**< Bias term of difference polynomial */
+ double A1; /**< Drift term of difference polynomial */
+ double dt_ls; /**< time increment due to leap seconds */
+ double dt_lsf; /**< scheduled future time increment due to
+ leap seconds */
+ long t_ot; /**< reference time */
+ long t_oa; /**< Toa from page id 51 (subframe 5,
+ pg 25) */
+ int wn_t; /**< reference week of current leap
+ second */
+ int wn_lsf; /**< week number of last/next leap
+ second */
+ short alm_wk; /**< GPS Week of the Almanac from the last
+ page of orbital data */
+ unsigned char dn; /**< reference day # of future leap
+ second */
+ SVBitsMap health; /**< satellite health array */
+ std::string special_msg; /**< Special message from GPS */
+
+ SVBitsMap SV_config; /**< 4 bit anti-spoofing/SV config sats. */
+ //@}
+
+ AlmOrbits almPRN;
+ bool haveUTC;
+
+ private:
+ bool operator==(const EngAlmanac&);
+ bool operator!=(const EngAlmanac&);
+ bool operator<(const EngAlmanac&);
+ bool operator>(const EngAlmanac&);
+ }; // class EngAlmanac
+
+
+ std::ostream& operator<<(std::ostream& s, const EngAlmanac& alm);
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/EngEphemeris.cpp b/dev/src/EngEphemeris.cpp
new file mode 100644
index 0000000..84693d5
--- /dev/null
+++ b/dev/src/EngEphemeris.cpp
@@ -0,0 +1,1386 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file EngEphemeris.cpp
+ * Ephemeris data encapsulated in engineering terms
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+#include "GPSGeoid.hpp"
+#include "EngEphemeris.hpp"
+
+#include <cmath>
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ EngEphemeris::EngEphemeris()
+ throw()
+ {
+ haveSubframe[0] = haveSubframe[1] = haveSubframe[2] = false;
+
+ tlm_message[0] = tlm_message[1] = tlm_message[2] = 0;
+
+ PRNID = tracker = ASalert[0] = ASalert[1] = ASalert[2] = weeknum =
+ codeflags = accFlag = health = L2Pdata = 0;
+
+ HOWtime[0] = HOWtime[1] = HOWtime[2] = 0;
+
+ IODC = IODE = 0;
+ Toc = af0 = af1 = af2 = Tgd = Cuc = Cus = Crc = Crs =
+ Cic = Cis = Toe = M0 = dn = ecc = Ahalf = OMEGA0 = i0 = w =
+ OMEGAdot = idot = accuracy = 0.0;
+
+ fitint = 0;
+ }
+
+ bool EngEphemeris::addSubframe(const long subframe[10], const int gpsWeek,
+ short PRN, short track)
+ throw(InvalidParameter)
+ {
+ double ficked[60];
+
+ if (!subframeConvert(subframe, gpsWeek, ficked))
+ return false;
+
+ int sfnum = static_cast<int>( ficked[4] );
+ InvalidParameter exc("Subframe "+StringUtils::asString(sfnum)+
+ " not ephemeris subframe.");
+
+ switch (sfnum)
+ {
+ case 1:
+ tlm_message[0] = (subframe[0] >> 8) & 0x3fff;
+ HOWtime[0] = static_cast<long>( ficked[2] );
+ ASalert[0] = static_cast<short>( ficked[3] );
+ weeknum = static_cast<short>( ficked[5] );
+ codeflags = static_cast<short>( ficked[6] );
+ accFlag = static_cast<short>( ficked[7] );
+ health = static_cast<short>( ficked[8] );
+ IODC = static_cast<short>( ldexp( ficked[9], -11 ) );
+ L2Pdata = static_cast<short>( ficked[10] );
+ Tgd = ficked[11];
+ Toc = ficked[12];
+ af2 = ficked[13];
+ af1 = ficked[14];
+ af0 = ficked[15];
+ tracker = track;
+ PRNID = PRN;
+ haveSubframe[0] = true;
+ // convert the accuracy flag to a value...
+ accuracy = gpstk::ura2accuracy(accFlag);
+ break;
+
+ case 2:
+ tlm_message[1] = (subframe[0] >> 8) & 0x3fff;
+ HOWtime[1] = static_cast<long>( ficked[2] );
+ ASalert[1] = static_cast<short>( ficked[3] );
+ IODE = static_cast<short>( ldexp( ficked[5], -11 ) );
+ Crs = ficked[6];
+ dn = ficked[7];
+ M0 = ficked[8];
+ Cuc = ficked[9];
+ ecc = ficked[10];
+ Cus = ficked[11];
+ Ahalf = ficked[12];
+ Toe = ficked[13];
+ fitint = static_cast<short>( ficked[14] );
+ haveSubframe[1] = true;
+ break;
+
+ case 3:
+ tlm_message[2] = (subframe[0] >> 8) & 0x3fff;
+ HOWtime[2] = static_cast<long>( ficked[2] );
+ ASalert[2] = static_cast<short>( ficked[3] );
+ Cic = ficked[5];
+ OMEGA0 = ficked[6];
+ Cis = ficked[7];
+ i0 = ficked[8];
+ Crc = ficked[9];
+ w = ficked[10];
+ OMEGAdot = ficked[11];
+ idot = ficked[13];
+ haveSubframe[2] = true;
+ break;
+
+ default:
+ GPSTK_THROW(exc);
+ break;
+ } // switch (sfnum)
+
+ return true;
+ }
+
+ bool EngEphemeris::addSubframeNoParity(const long subframe[10],
+ const long gpsWeek,
+ const short PRN,
+ const short track)
+ throw(InvalidParameter)
+ {
+ long paddedSF[10];
+ short PRNArg;
+ short trackArg;
+
+ for (int i=0;i<10;++i)
+ {
+ paddedSF[i] = subframe[i];
+ paddedSF[i] <<= 6;
+ paddedSF[i] &= 0x3FFFFFC0; // Guarantee 2 msb and 6 lsb are zeroes
+ }
+ PRNArg = PRN;
+ trackArg = track;
+ return( addSubframe( paddedSF, gpsWeek, PRNArg, trackArg ));
+ }
+
+ bool EngEphemeris::addIncompleteSF1Thru3(
+ const long sf1[8], const long sf2[8], const long sf3[8],
+ const long sf1TransmitSOW, const int gpsWeek,
+ const short PRN, const short track)
+ {
+ double ficked[60];
+
+ // Need to provide a valid subframe number in the handover word.
+ // While we're at it, we'll fake the A-S bit such that it
+ // appears A-S is ON, even though we warn the user NOT to trust
+ // returns from the getASAlert() method.
+ const long sf1Lead[2] = { 0x00000000, 0x00000900 };
+ const long sf2Lead[2] = { 0x00000000, 0x00000A00 };
+ const long sf3Lead[2] = { 0x00000000, 0x00000B00 };
+ long subframe[10];
+
+ // Handover word times represent the time of the leading edge of the
+ // NEXT subframe. Therefore, HOW should always correspond to
+ // :06/:36 for SF 1
+ // :12/:42 for SF 2
+ // :18/:48 for SF 3
+ // This method hasn't a clue about the accuracy of the SOW input by the
+ // user, but it WILL enforce this relationship.
+ long frameCount = sf1TransmitSOW / 30;
+ long SF1HOWTime = (frameCount * 30) + 6;
+
+ // Convert subframe 1 parameters
+ subframe[0] = sf1Lead[0];
+ subframe[1] = sf1Lead[1];
+ int i;
+ for (i=0; i<8; ++i) subframe[i+2] = sf1[i];
+
+ if (!subframeConvert(subframe, gpsWeek, ficked))
+ return false;
+
+ tlm_message[0] = 0;
+ HOWtime[0] = SF1HOWTime;
+ ASalert[0] = (short)ficked[3];
+ weeknum = (short)ficked[5];
+ codeflags = (short)ficked[6];
+ accFlag = (short)ficked[7];
+ health = (short)ficked[8];
+ IODC = (short)ldexp(ficked[9],-11);
+ L2Pdata = (short)ficked[10];
+ Tgd = ficked[11];
+ Toc = ficked[12];
+ af2 = ficked[13];
+ af1 = ficked[14];
+ af0 = ficked[15];
+ tracker = track;
+ PRNID = PRN;
+ haveSubframe[0] = true;
+ // convert the accuracy flag to a value...
+ accuracy = gpstk::ura2accuracy(accFlag);
+
+
+ // Convert subframe 2 parameters
+ subframe[0] = sf2Lead[0];
+ subframe[1] = sf2Lead[1];
+ for (i=0; i<8; ++i) subframe[i+2] = sf2[i];
+
+ if (!subframeConvert(subframe, gpsWeek, ficked))
+ return false;
+
+ tlm_message[1] = 0;
+ HOWtime[1] = SF1HOWTime + 6;
+ ASalert[1] = (short)ficked[3];
+ IODE = (short)ldexp(ficked[5],-11);
+ Crs = ficked[6];
+ dn = ficked[7];
+ M0 = ficked[8];
+ Cuc = ficked[9];
+ ecc = ficked[10];
+ Cus = ficked[11];
+ Ahalf = ficked[12];
+ Toe = ficked[13];
+ fitint = (short)ficked[14];
+ haveSubframe[1] = true;
+
+ // Convert subframe 3 parameters
+ subframe[0] = sf3Lead[0];
+ subframe[1] = sf3Lead[1];
+ for (i=0; i<8; ++i) subframe[i+2] = sf3[i];
+
+ if (!subframeConvert(subframe, gpsWeek, ficked))
+ return false;
+
+ tlm_message[2] = 0;
+ HOWtime[2] = SF1HOWTime + 12;
+ ASalert[2] = (short)ficked[3];
+ Cic = ficked[5];
+ OMEGA0 = ficked[6];
+ Cis = ficked[7];
+ i0 = ficked[8];
+ Crc = ficked[9];
+ w = ficked[10];
+ OMEGAdot = ficked[11];
+ idot = ficked[13];
+ haveSubframe[2] = true;
+
+ return true;
+ }
+
+ bool EngEphemeris :: isData(short subframe) const
+ throw(gpstk::InvalidRequest)
+ {
+ if ((subframe < 1) || (subframe > 3))
+ {
+ InvalidRequest exc("Subframe "+StringUtils::asString(subframe)+
+ " is not a valid ephemeris subframe.");
+ GPSTK_THROW(exc);
+ }
+
+ return haveSubframe[subframe-1];
+ }
+
+ void EngEphemeris :: setAccuracy(const double& acc)
+ throw(gpstk::InvalidParameter)
+ {
+ if( acc < 0 )
+ {
+ InvalidParameter exc("SV Accuracy of " + StringUtils::asString(acc) +
+ " meters is invalid.");
+ GPSTK_THROW(exc);
+ }
+ accuracy = acc;
+ accFlag = gpstk::accuracy2ura(acc);
+ }
+
+ Xvt EngEphemeris :: svXvt(const DayTime& t) const
+ throw(InvalidRequest)
+ {
+ Xvt sv;
+
+ double ea; /* eccentric anomaly */
+ double delea; /* delta eccentric anomaly during iteration */
+ double elapte; /* elapsed time since Toe */
+ double elaptc; /* elapsed time since Toc */
+ double dtc,dtr,q,sinea,cosea;
+ double GSTA,GCTA;
+ double A; /* semi-major axis */
+ double amm;
+ double meana; /* mean anomaly */
+ double F,G; /* temporary real variables */
+ double alat,talat,c2al,s2al,du,dr,di,U,R,truea,AINC;
+ double ANLON,cosu,sinu,xip,yip,can,san,cinc,sinc;
+ double xef,yef,zef,dek,dlk,div,domk,duv,drv;
+ double dxp,dyp,vxef,vyef,vzef;
+ GPSGeoid geoid;
+
+ double sqrtgm = sqrt(geoid.gm());
+
+ // Check for ground transmitter
+ double twoPI = 2.0e0 * PI;
+ bool igtran; // ground transmitter flag
+ double lecc; // eccentricity
+ double tdrinc; // dt inclination
+ if (getAhalf() < 2550.0e0 )
+ {
+ igtran = true;
+ lecc = 0.0e0;
+ tdrinc = 0.0e0;
+ }
+ else
+ {
+ igtran = false;
+ lecc = getEcc();
+ tdrinc = getIDot();
+ }
+
+ // Compute time since ephemeris & clock epochs
+ elapte = t - getEphemerisEpoch();
+ elaptc = t - getEpochTime();
+
+
+ // Compute mean motion
+ A = getA();
+ amm = (sqrtgm / (A*getAhalf())) + getDn();
+
+
+ // In-plane angles
+ // meana - Mean anomaly
+ // ea - Eccentric anomaly
+ // truea - True anomaly
+ if (!igtran)
+ meana = getM0() + elapte * amm;
+ else
+ meana = getM0();
+ meana = fmod(meana, twoPI);
+
+ ea = meana + lecc * sin(meana);
+
+ int loop_cnt = 1;
+ do {
+ F = meana - ( ea - lecc * sin(ea));
+ G = 1.0 - lecc * cos(ea);
+ delea = F/G;
+ ea = ea + delea;
+ loop_cnt++;
+ } while ( (fabs(delea) > 1.0e-11 ) && (loop_cnt <= 20) );
+
+ // Compute clock corrections
+ sv.ddtime = getAf1() + elaptc * getAf2();
+ dtc = getAf0() + elaptc * ( sv.ddtime );
+ dtr = REL_CONST * lecc * getAhalf() * sin(ea);
+ sv.dtime = dtc + dtr;
+
+ // Compute true anomaly
+ q = sqrt ( 1.0e0 - lecc*lecc);
+ sinea = sin(ea);
+ cosea = cos(ea);
+ G = 1.0e0 - lecc * cosea;
+
+ // G*SIN(TA) AND G*COS(TA)
+ GSTA = q * sinea;
+ GCTA = cosea - lecc;
+
+ // True anomaly
+ truea = atan2 ( GSTA, GCTA );
+
+ // Argument of lat and correction terms (2nd harmonic)
+ alat = truea + getW();
+ talat = 2.0e0 * alat;
+ c2al = cos( talat );
+ s2al = sin( talat );
+
+ du = c2al * getCuc() + s2al * getCus();
+ dr = c2al * getCrc() + s2al * getCrs();
+ di = c2al * getCic() + s2al * getCis();
+
+ // U = updated argument of lat, R = radius, AINC = inclination
+ U = alat + du;
+ R = getA()*G + dr;
+ AINC = getI0() + tdrinc * elapte + di;
+
+ // Longitude of ascending node (ANLON)
+ if (!igtran)
+ ANLON = getOmega0() + (getOmegaDot() - geoid.angVelocity()) *
+ elapte - geoid.angVelocity() * getToe();
+ else
+ ANLON = getOmega0() - getOmegaDot() * getToe();
+
+ // In plane location
+ cosu = cos( U );
+ sinu = sin( U );
+
+ xip = R * cosu;
+ yip = R * sinu;
+
+ // Angles for rotation to earth fixed
+ can = cos( ANLON );
+ san = sin( ANLON );
+ cinc = cos( AINC );
+ sinc = sin( AINC );
+
+ // Earth fixed - meters
+ xef = xip*can - yip*cinc*san;
+ yef = xip*san + yip*cinc*can;
+ zef = yip*sinc;
+
+ sv.x[0] = xef;
+ sv.x[1] = yef;
+ sv.x[2] = zef;
+
+ // Compute velocity of rotation coordinates
+ dek = amm * A / R;
+ dlk = getAhalf() * q * sqrtgm / (R*R);
+ div = tdrinc - 2.0e0 * dlk *
+ ( getCic() * s2al - getCis() * c2al );
+ domk = getOmegaDot() - geoid.angVelocity();
+ duv = dlk*(1.e0+ 2.e0 * (getCus()*c2al - getCuc()*s2al) );
+ drv = A * lecc * dek * sinea - 2.e0 * dlk *
+ ( getCrc() * s2al - getCrs() * c2al );
+
+ dxp = drv*cosu - R*sinu*duv;
+ dyp = drv*sinu + R*cosu*duv;
+
+ // Calculate velocities
+ vxef = dxp*can - xip*san*domk - dyp*cinc*san
+ + yip*( sinc*san*div - cinc*can*domk);
+ vyef = dxp*san + xip*can*domk + dyp*cinc*can
+ - yip*( sinc*can*div + cinc*san*domk);
+ vzef = dyp*sinc + yip*cinc*div;
+
+ // Move results into output variables
+ sv.v[0] = vxef;
+ sv.v[1] = vyef;
+ sv.v[2] = vzef;
+
+ return sv;
+ }
+
+ double EngEphemeris::svRelativity(const DayTime& t) const
+ throw(gpstk::InvalidRequest)
+ {
+ GPSGeoid geoid;
+ double twoPI = 2.0e0 * PI;
+ double sqrtgm = sqrt(geoid.gm());
+ double elapte = t - getEphemerisEpoch();
+ double elaptc = t - getEpochTime();
+ double A = getA();
+ double amm = (sqrtgm / (A*getAhalf())) + getDn();
+ double meana,lecc,F,G,delea;
+
+ if (getAhalf() < 2550.0e0 ) { lecc = 0.0e0; meana = getM0(); }
+ else { lecc = getEcc(); meana = getM0() + elapte * amm; }
+ meana = fmod(meana, twoPI);
+ double ea = meana + lecc * sin(meana);
+
+ int loop_cnt = 1;
+ do {
+ F = meana - ( ea - lecc * sin(ea));
+ G = 1.0 - lecc * cos(ea);
+ delea = F/G;
+ ea = ea + delea;
+ loop_cnt++;
+ } while ( (fabs(delea) > 1.0e-11 ) && (loop_cnt <= 20) );
+ double dtr = REL_CONST * lecc * getAhalf() * sin(ea);
+ return dtr;
+ }
+
+ double EngEphemeris::svClockBias(const DayTime& t) const
+ throw(gpstk::InvalidRequest)
+ {
+ double dtc,elaptc;
+ elaptc = t - getEpochTime();
+ dtc = getAf0() + elaptc * ( getAf1() + elaptc * getAf2() );
+
+ return dtc;
+ }
+
+ double EngEphemeris::svClockDrift(const DayTime& t) const
+ throw(gpstk::InvalidRequest)
+ {
+ double drift,elaptc;
+ elaptc = t - getEpochTime();
+ drift = getAf1() + elaptc * getAf2();
+ return drift;
+ }
+
+ short EngEphemeris :: getFitInterval() const
+ throw(InvalidRequest)
+ {
+ short iodc = getIODC();
+ short fiti = getFitInt();
+
+ /* check the IODC */
+ if (iodc < 0 || iodc > 1023)
+ {
+ /* error in iodc, return minimum fit */
+ return 4;
+ }
+
+ if (((fiti == 0) &&
+ (iodc & 0xFF) < 240 || (iodc & 0xFF) > 255 ))
+ {
+ /* fit interval of 4 hours */
+ return 4;
+ }
+ else if (fiti == 1)
+ {
+ if( ((iodc & 0xFF) < 240 || (iodc & 0xFF) > 255))
+ {
+ /* fit interval of 6 hours */
+ return 6;
+ }
+ else if(iodc >=240 && iodc <=247)
+ {
+ /* fit interval of 8 hours */
+ return 8;
+ }
+ else if(iodc >= 248 && iodc <= 255 || iodc == 496)
+ {
+ /* fit interval of 14 hours */
+ return 14;
+ }
+ else if(iodc >= 497 && iodc <=503)
+ {
+ /* fit interval of 26 hours */
+ return 26;
+ }
+ else if(iodc >= 504 && iodc <=510)
+ {
+ /* fit interval of 50 hours */
+ return 50;
+ }
+ else if(iodc == 511 || iodc >= 752 && iodc <= 756)
+ {
+ /* fit interval of 74 hours */
+ return 74;
+ }
+ else if(iodc >= 757 && iodc <= 763)
+ {
+ /* fit interval of 98 hours */
+ return 98;
+ }
+ else if(iodc >= 764 && iodc <=767 || iodc >=1008 && iodc <=1010)
+ {
+ /* fit interval of 122 hours */
+ return 122;
+ }
+ else if(iodc >= 1011 && iodc <=1020)
+ {
+ /* fit interval of 146 hours */
+ return 146;
+ }
+ else
+ {
+ /* error in the iodc or ephemeris, return minimum
+ fit */
+ return 4;
+ }
+ }
+ else
+ {
+ /* error in ephemeris/iodc, return minimum fit */
+ return 4;
+ }
+
+ return 0; // never reached
+ }
+
+ unsigned EngEphemeris::getTLMMessage(short subframe) const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[subframe-1])
+ {
+ InvalidRequest exc("Subframe "+StringUtils::asString(subframe)+
+ " not stored.");
+ GPSTK_THROW(exc);
+ }
+ return tlm_message[subframe-1];
+ }
+
+ DayTime EngEphemeris::getTransmitTime() const
+ throw(InvalidRequest)
+ {
+ DayTime toReturn(0.L);
+ toReturn.setGPSfullweek(getFullWeek(), (double)getTot());
+ return toReturn;
+ }
+
+ DayTime EngEphemeris::getEpochTime() const
+ throw(InvalidRequest)
+ {
+ DayTime toReturn(0.L);
+ if ( (getToc() - getHOWTime(1)) < -DayTime::HALFWEEK)
+ toReturn.setGPSfullweek(getFullWeek() + 1, getToc());
+ else if ( (getToc() - getHOWTime(1)) > DayTime::HALFWEEK)
+ toReturn.setGPSfullweek(getFullWeek() - 1, getToc());
+ else
+ toReturn.setGPSfullweek(getFullWeek(), getToc());
+ return toReturn;
+ }
+
+ DayTime EngEphemeris::getEphemerisEpoch() const
+ throw(InvalidRequest)
+ {
+ DayTime toReturn(0.L);
+ if ( (getToe() - getHOWTime(1)) < -DayTime::HALFWEEK)
+ toReturn.setGPSfullweek(getFullWeek() + 1, getToe());
+ else if ( (getToe() - getHOWTime(1)) > DayTime::HALFWEEK)
+ toReturn.setGPSfullweek(getFullWeek() - 1, getToe());
+ else
+ toReturn.setGPSfullweek(getFullWeek(), getToe());
+ return toReturn;
+ }
+
+ short EngEphemeris::getPRNID() const
+ throw(InvalidRequest)
+ {
+ if(!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return PRNID;
+ }
+
+ short EngEphemeris::getTracker() const
+ throw(InvalidRequest)
+ {
+ if(!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return tracker;
+ }
+
+ double EngEphemeris::getHOWTime(short subframe) const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[subframe-1])
+ {
+ InvalidRequest exc("Subframe "+StringUtils::asString(subframe)+
+ " not stored.");
+ GPSTK_THROW(exc);
+ }
+ // this return as a double is necessary for sets into DayTime
+ // to not get confused. Ints are Zcounts whereas doubles are seconds
+ return (double) HOWtime[subframe-1];
+ }
+
+ short EngEphemeris::getASAlert(short subframe) const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[subframe-1])
+ {
+ InvalidRequest exc("Subframe "+StringUtils::asString(subframe)+
+ " not stored.");
+ GPSTK_THROW(exc);
+ }
+ return ASalert[subframe-1];
+ }
+
+ short EngEphemeris::getFullWeek() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return weeknum;
+ }
+
+ short EngEphemeris::getCodeFlags() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return codeflags;
+ }
+
+ double EngEphemeris::getAccuracy() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return accuracy;
+ }
+
+ short EngEphemeris::getAccFlag() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return accFlag;
+ }
+
+ short EngEphemeris::getHealth() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return health;
+ }
+
+ short EngEphemeris::getL2Pdata() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return L2Pdata;
+ }
+
+ short EngEphemeris::getIODC() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return (short)IODC;
+ }
+
+ short EngEphemeris::getIODE() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return (short)IODE;
+ }
+
+ double EngEphemeris::getToc() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Toc;
+ }
+
+ double EngEphemeris::getAf0() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return af0;
+ }
+
+ double EngEphemeris::getAf1() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return af1;
+ }
+
+ double EngEphemeris::getAf2() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return af2;
+ }
+
+ double EngEphemeris::getTgd() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Tgd;
+ }
+
+ double EngEphemeris::getCus() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Cus;
+ }
+
+ double EngEphemeris::getCrs() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Crs;
+ }
+
+ double EngEphemeris::getCis() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Cis;
+ }
+
+ double EngEphemeris::getCrc() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Crc;
+ }
+
+ double EngEphemeris::getCuc() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Cuc;
+ }
+
+ double EngEphemeris::getCic() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Cic;
+ }
+
+ double EngEphemeris::getToe() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Toe;
+ }
+
+ double EngEphemeris::getM0() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return M0;
+ }
+
+ double EngEphemeris::getDn() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return dn;
+ }
+
+ double EngEphemeris::getEcc() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return ecc;
+ }
+
+ double EngEphemeris::getAhalf() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Ahalf;
+ }
+
+ double EngEphemeris::getA() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return Ahalf * Ahalf;
+ }
+
+ double EngEphemeris::getOmega0() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return OMEGA0;
+ }
+
+ double EngEphemeris::getI0() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return i0;
+ }
+
+ double EngEphemeris::getW() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return w;
+ }
+
+ double EngEphemeris::getOmegaDot() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return OMEGAdot;
+ }
+
+ double EngEphemeris::getIDot() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return idot;
+ }
+
+ short EngEphemeris::getFitInt() const
+ throw(InvalidRequest)
+ {
+ if (!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ return fitint;
+ }
+
+ long EngEphemeris::getTot() const
+ throw(InvalidRequest)
+ {
+ if(!haveSubframe[0])
+ {
+ InvalidRequest exc("Required subframe 1 not stored.");
+ GPSTK_THROW(exc);
+ }
+ if(!haveSubframe[1])
+ {
+ InvalidRequest exc("Required subframe 2 not stored.");
+ GPSTK_THROW(exc);
+ }
+ if(!haveSubframe[2])
+ {
+ InvalidRequest exc("Required subframe 3 not stored.");
+ GPSTK_THROW(exc);
+ }
+
+ // MSVC
+#ifdef _MSC_VER
+ long foo = static_cast<long>( getHOWTime(1) < getHOWTime(2) ) ? getHOWTime(1) : getHOWTime(2);
+ foo = ( foo < getHOWTime(3) ) ? foo : getHOWTime(3) ;
+#else
+ long foo =
+ static_cast<long>( min( getHOWTime(1),
+ min( getHOWTime(2), getHOWTime(3) ) ) );
+#endif
+ // The ephemeris comes on 30 second boundaries, so...
+ foo/=30;
+ foo*=30;
+ return foo;
+ }
+
+ EngEphemeris& EngEphemeris::setSF1( unsigned tlm, double how, short asalert,
+ short fullweek, short cflags, short acc,
+ short svhealth, short iodc, short l2pdata,
+ double tgd, double toc, double Af2,
+ double Af1, double Af0, short Tracker,
+ short prn )
+ throw()
+ {
+
+ tlm_message[0] = tlm;
+ HOWtime[0] = static_cast<long>( how );
+ ASalert[0] = asalert;
+ weeknum = fullweek;
+ codeflags = cflags;
+ accFlag = acc;
+ health = svhealth;
+ IODC = iodc;
+ L2Pdata = l2pdata;
+ Tgd = tgd;
+ Toc = toc;
+ af2 = Af2;
+ af1 = Af1;
+ af0 = Af0;
+ tracker = Tracker;
+ PRNID = prn;
+ haveSubframe[0] = true;
+ // convert the accuracy flag to a value...
+ accuracy = gpstk::ura2accuracy(accFlag);
+ return *this;
+ }
+
+ EngEphemeris& EngEphemeris::setSF2( unsigned tlm, double how, short asalert,
+ short iode, double crs, double Dn,
+ double m0, double cuc, double Ecc,
+ double cus, double ahalf, double toe,
+ short fitInt )
+ throw()
+ {
+ tlm_message[1] = tlm;
+ HOWtime[1] = static_cast<long>( how );
+ ASalert[1] = asalert;
+ IODE = iode;
+ Crs = crs;
+ dn = Dn;
+ M0 = m0;
+ Cuc = cuc;
+ ecc = Ecc;
+ Cus = cus;
+ Ahalf = ahalf;
+ Toe = toe;
+ fitint = fitInt;
+ haveSubframe[1] = true;
+ return *this;
+ }
+
+
+ EngEphemeris& EngEphemeris::setSF3( unsigned tlm, double how, short asalert,
+ double cic, double Omega0, double cis,
+ double I0, double crc, double W,
+ double OmegaDot, double IDot )
+ throw()
+ {
+ tlm_message[2] = tlm;
+ HOWtime[2] = static_cast<long>( how );
+ ASalert[2] = asalert;
+ Cic = cic;
+ OMEGA0 = Omega0;
+ Cis = cis;
+ i0 = I0;
+ Crc = crc;
+ w = W;
+ OMEGAdot = OmegaDot;
+ idot = IDot;
+ haveSubframe[2] = true;
+ return *this;
+ }
+
+ static void timeDisplay( ostream & os, const gpstk::DayTime& t)
+ {
+ // Convert to daytime struct from GPS wk,SOW to M/D/Y, H:M:S.
+ os << setw(4) << t.GPSfullweek() << "(";
+ os << setw(4) << t.GPS10bitweek() << ") ";
+ os << setw(6) << setfill(' ') << t.GPSsecond() << " ";
+
+ switch (t.GPSday())
+ {
+ case 0: os << "Sun-0"; break;
+ case 1: os << "Mon-1"; break;
+ case 2: os << "Tue-2"; break;
+ case 3: os << "Wed-3"; break;
+ case 4: os << "Thu-4"; break;
+ case 5: os << "Fri-5"; break;
+ case 6: os << "Sat-6"; break;
+ default: break;
+ }
+ os << " " << t.printf("%3j %5.0s %02m/%02d/%04Y %02H:%02M:%02S");
+ }
+
+
+ static void shortcut(ostream & os, const long HOW )
+ {
+ short DOW, hour, min, sec;
+ long SOD, SOW;
+ short SOH;
+
+ SOW = static_cast<long>( HOW );
+ DOW = static_cast<short>( SOW / DayTime::SEC_DAY );
+ SOD = SOW - static_cast<long>( DOW * DayTime::SEC_DAY );
+ hour = static_cast<short>( SOD/3600 );
+
+ SOH = static_cast<short>( SOD - (hour*3600) );
+ min = SOH/60;
+
+ sec = SOH - min * 60;
+ switch (DOW)
+ {
+ case 0: os << "Sun-0"; break;
+ case 1: os << "Mon-1"; break;
+ case 2: os << "Tue-2"; break;
+ case 3: os << "Wed-3"; break;
+ case 4: os << "Thu-4"; break;
+ case 5: os << "Fri-5"; break;
+ case 6: os << "Sat-6"; break;
+ default: break;
+ }
+
+ os << ":" << setfill('0')
+ << setw(2) << hour
+ << ":" << setw(2) << min
+ << ":" << setw(2) << sec
+ << setfill(' ');
+ }
+
+ void EngEphemeris :: dump(ostream& s) const
+ {
+ ios::fmtflags oldFlags = s.flags();
+
+ s.setf(ios::fixed, ios::floatfield);
+ s.setf(ios::right, ios::adjustfield);
+ s.setf(ios::uppercase);
+ s.precision(0);
+ s.fill(' ');
+
+ s << "****************************************************************"
+ << "************" << endl
+ << "Broadcast Ephemeris (Engineering Units)" << endl
+ << endl
+ << "PRN : " << setw(2) << PRNID << endl
+ << endl;
+
+
+ s << " Week(10bt) SOW DOW UTD SOD"
+ << " MM/DD/YYYY HH:MM:SS\n";
+ s << "Clock Epoch: ";
+ timeDisplay(s, getEpochTime());
+ s << endl;
+ s << "Eph Epoch: ";
+ timeDisplay(s, getEphemerisEpoch());
+ s << endl;
+
+#if 0
+ // FIX when moved from sf123, the tot got zapped.. because in
+ // order for engephemeris to be able to use such a thing, it
+ // needs to be pulled out of as-broadcast bits somehow.
+ s << "Transmit time:" << setw(4) << weeknum << ", sow=" << Tot.GPSsecond() << endl
+ << "Fit interval flag : " << setw(2) << fitint
+ << " (" << fitintlen << " hours)" << endl;
+#elsif 0
+ s << "Transmit time:" << setw(4) << weeknum << endl
+ << "Fit interval flag : " << setw(2) << fitint
+ << " (" << getFitInt() << " hours)" << endl;
+#endif
+ // nuts to the above, let's just make it look like navdump output
+ s << "Transmit Week:" << setw(4) << weeknum << endl
+ << "Fit interval flag : " << fitint << endl;
+
+ s << endl
+ << " SUBFRAME OVERHEAD"
+ << endl
+ << endl
+ << " SOW DOW:HH:MM:SS IOD ALERT A-S\n";
+ for (int i=0;i<3;i++)
+ {
+ s << "SF" << setw(1) << (i+1)
+ << " HOW: " << setw(7) << HOWtime[i]
+ << " ";
+
+ shortcut( s, HOWtime[i]);
+ if (i==0)
+ s << " ";
+ else
+ s << " ";
+
+ s << "0x" << setfill('0') << hex;
+
+ if (i==0)
+ s << setw(3) << IODC;
+ else
+ s << setw(2) << IODE;
+
+ s << dec << " " << setfill(' ');
+
+ if (ASalert[i] & 0x0002) // "Alert" bit handling
+ s << "1 ";
+ else
+ s << "0 ";
+
+ if (ASalert[i] & 0x0001) // A-S flag handling
+ s << " on";
+ else
+ s << "off";
+ s << endl;
+ }
+
+ s.setf(ios::scientific, ios::floatfield);
+ s.precision(8);
+
+ s << endl
+ << " CLOCK"
+ << endl
+ << endl
+ << "Bias T0: " << setw(16) << af0 << " sec" << endl
+ << "Drift: " << setw(16) << af1 << " sec/sec" << endl
+ << "Drift rate: " << setw(16) << af2 << " sec/(sec**2)" << endl
+ << "Group delay: " << setw(16) << Tgd << " sec" << endl;
+
+ s << endl
+ << " ORBIT PARAMETERS"
+ << endl
+ << endl
+ << "Semi-major axis: " << setw(16) << Ahalf << " m**.5" << endl
+ << "Motion correction: " << setw(16) << dn << " rad/sec"
+ << endl
+ << "Eccentricity: " << setw(16) << ecc << endl
+ << "Arg of perigee: " << setw(16) << w << " rad" << endl
+ << "Mean anomaly at epoch: " << setw(16) << M0 << " rad" << endl
+ << "Right ascension: " << setw(16) << OMEGA0 << " rad "
+ << setw(16) << OMEGAdot << " rad/sec" << endl
+ << "Inclination: " << setw(16) << i0 << " rad "
+ << setw(16) << idot << " rad/sec" << endl;
+
+ s << endl
+ << " HARMONIC CORRECTIONS"
+ << endl
+ << endl
+ << "Radial Sine: " << setw(16) << Crs << " m Cosine: "
+ << setw(16) << Crc << " m" << endl
+ << "Inclination Sine: " << setw(16) << Cis << " rad Cosine: "
+ << setw(16) << Cic << " rad" << endl
+ << "In-track Sine: " << setw(16) << Cus << " rad Cosine: "
+ << setw(16) << Cuc << " rad" << endl;
+
+ s << endl
+ << " SV STATUS"
+ << endl
+ << endl
+ << "Health bits: 0x" << setfill('0') << setw(2) << health
+ << " URA index: " << setfill(' ') << setw(4) << accFlag << endl
+ << "Code on L2: ";
+
+ switch (codeflags)
+ {
+ case 0:
+ s << "reserved ";
+ break;
+
+ case 1:
+ s << " P only ";
+ break;
+
+ case 2:
+ s << " C/A only";
+ break;
+
+ case 3:
+ s << " P & C/A ";
+ break;
+
+ default:
+ break;
+
+ }
+
+ s << " L2 P Nav data: ";
+ if (L2Pdata!=0)
+ s << "off";
+ else
+ s << "on";
+
+ s << endl
+ << endl;
+ s.flags(oldFlags);
+
+ } // end of SF123::dump()
+
+ ostream& operator<<(ostream& s, const EngEphemeris& eph)
+ {
+ eph.dump(s);
+ return s;
+
+/* this appears to be more like the dump_eph_table routine of gappc
+ * which dumped the bce table.
+
+ s.setf(ios::right);
+ s << "prn:" << setw(2) << eph.PRNID
+ << ", HOW[0]:" << hex << setfill('0') << setw(5) << eph.getHOWTime(1)
+ << ", IODC:" << hex << setw(3) << eph.getIODC()
+ << dec << setfill(' ') << setw(0)
+ << ", Toe: [" << eph.getToc()-1800*eph.getFitInt()
+ << "..." << eph.getToc()+1800*eph.getFitInt()
+ << ")";
+*/
+ } // end of operator<<
+
+} // namespace
diff --git a/dev/src/EngEphemeris.hpp b/dev/src/EngEphemeris.hpp
new file mode 100644
index 0000000..8270066
--- /dev/null
+++ b/dev/src/EngEphemeris.hpp
@@ -0,0 +1,496 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file EngEphemeris.hpp
+ * Ephemeris data encapsulated in engineering terms
+ */
+
+#ifndef GPSTK_ENGEPHEMERIS_HPP
+#define GPSTK_ENGEPHEMERIS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "EngNav.hpp"
+#include "Exception.hpp"
+#include "DayTime.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemcalc */
+ //@{
+
+ /**
+ * Ephemeris information for a single satellite. This class
+ * encapsulates the ephemeris navigation message (subframes 1-3)
+ * and provides functions to decode the as-broadcast
+ * ephemerides.
+ */
+ class EngEphemeris : public EngNav
+ {
+ public:
+ /// Default constructor
+ EngEphemeris() throw();
+
+ /// Destructor
+ virtual ~EngEphemeris() {}
+
+ /**
+ * Store a subframe in this object.
+ * @param subframe ten word navigation subframe stored in the
+ * 30 least-significant bits of each array index.
+ * @param gpsWeek full GPS week number.
+ * @param PRN PRN ID of source satellite.
+ * @param track tracking number (typically receiver channel number).
+ * @return true if successful.
+ * @throw InvalidParameter if subframe is valid but not subframe 1-3.
+ */
+ bool addSubframe(const long subframe[10], const int gpsWeek,
+ short PRN, short track)
+ throw(gpstk::InvalidParameter);
+
+ /**
+ * Store a subframe in this object. This method is provided in
+ * order to allow construction of an EngEphemeris object for
+ * cases where a receiver only provides the 24 msb of each
+ * word and strips the parity.l
+ * @param subframe ten word navigation subframe (minus the six
+ * parity bits) stored in the 24 least-significant bits of
+ * each array index.
+ * @param gpsWeek full GPS week number.
+ * @param PRN PRN ID of source satellite.
+ * @param track tracking number (typically receiver channel number).
+ * @return true if successful.
+ * @throw InvalidParameter if subframe is valid but not subframe 1-3.
+ */
+ bool addSubframeNoParity(const long subframe[10],
+ const long gpsWeek,
+ const short PRN,
+ const short track)
+ throw(gpstk::InvalidParameter);
+
+ /**
+ * Store a subframe in this object. This method is provided in
+ * order to provide a path to a EngEphemeris object for cases
+ * where a receiver only provides words 3-10 of subframes 1-3.
+ * @note: It is important to appropriately determine the transmit
+ * time of the data. The parameters sf1TransmitSOW and gpsWeek
+ * should be consistent and should represent the time when the
+ * data in sf1, sf2, and sf3 were received. As a general rule,
+ * the transmit time should be somewhere in the range of 0-2 hours
+ * BEFORE the epoch time of the ephemeris.
+ * @note: EngEphemeris objects built via this method will not
+ * contain valid TLM message data, A-S flags, and "Alert" bits.
+ * Methods getTLMMesage() and getASAlert() should not be used.
+ * @param sf1 words 3-10 of navigation subframe1 stored in the
+ * 30 least-significant bits of each array index.
+ * @param sf2 words 3-10 of navigation subframe 2
+ * @param sf3 words 3-10 of navigation subframe 3
+ * @param sf1TransmitSOW time (in GPS seconds of week) corresponding
+ * to leading edge of first bit of subframe 1
+ * @param gpsWeek full GPS week number.
+ * @param PRN PRN ID of source satellite.
+ * @param track tracker number (typically receiver channel number).
+ * @return true if successful.
+ */
+ bool addIncompleteSF1Thru3(
+ const long sf1[8], const long sf2[8], const long sf3[8],
+ const long sf1TransmitSOW, const int gpsWeek,
+ const short PRN, const short track);
+
+ /**
+ * Query presence of subframe in this object.
+ * @param subframe subframe ID (1-3) to check.
+ * @return true if the given subframe is present in this object.
+ * @throw InvalidParameter if subframe is not a valid
+ * ephemeris subframe number.
+ */
+ bool isData(short subframe) const throw(gpstk::InvalidRequest);
+
+ /**
+ * Set the value of the SV accuracy (in meters). This is the only
+ * "set" method and is provided so that one can set the SV
+ * accuracy directly and thereby override the conversion of the
+ * SV accuracy flag to meters. This is usually used when entering
+ * data from some source other than an SV nav message.
+ * @note Subsequent use of the addSubframe(), with subframe 1 info,
+ * or the setSF1() methods will overwrite any value set using this
+ * method.
+ * @note This function converts the given accuracy to the appropriate
+ * SV accuracy flag and stores it in the accFlag data member.
+ * @param acc the new value of SV accuracy in meters.
+ * @throw InvalidParameter if the given accuracy value is invalid.
+ */
+ void setAccuracy(const double& acc) throw(gpstk::InvalidParameter);
+
+ /**
+ * This computes and returns the fit interval for the
+ * satellite ephemeris from the IODC and the fit interval
+ * flag. This fit interval is centered around the Toe (time
+ * of ephemeris) for the ephemeris. See Table 20-XIA in the
+ * ICD-GPS-200 and section 20.3.3.4.3.1 for more information.
+ * @return the fit interval in hours (0 = failure).
+ * @throw InvalidRequest if data is missing.
+ */
+ short getFitInterval() const throw(gpstk::InvalidRequest);
+
+ /// Return 0x8b, the upper 5 bits of the 22-bit TLM word.
+ // kinda pointless, huh?
+ unsigned char getTLMPreamble() const throw() { return 0x8b; }
+
+ /// Return the lower 16 bits of the TLM word for the given subframe.
+ unsigned getTLMMessage(short subframe) const
+ throw(gpstk::InvalidRequest);
+
+ /// Extracts the epoch time from this ephemeris, correcting
+ /// for half weeks and HOW time
+ DayTime getEphemerisEpoch() const throw(InvalidRequest);
+
+ /// Extracts the epoch time (time of clock) from this ephemeris, correcting
+ /// for half weeks and HOW time
+ DayTime getEpochTime() const throw(gpstk::InvalidRequest);
+
+ /// Extracts the transmit time from the ephemeris using the Tot
+ DayTime getTransmitTime() const throw(gpstk::InvalidRequest);
+
+ /// used for template functions
+ DayTime getTimestamp() const throw(gpstk::InvalidRequest)
+ { return getEpochTime(); }
+
+ /** This function returns the PRN ID of the SV. */
+ short getPRNID() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the tracker number. */
+ short getTracker() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the time of the HOW in subframe
+ * 1 or 2 or 3 in seconds of week. */
+ double getHOWTime(short subframe) const throw(gpstk::InvalidRequest);
+
+ /** This function returns the A-S alert flag for either
+ * subframe 1 or 2 or 3. */
+ short getASAlert(short subframe) const throw(gpstk::InvalidRequest);
+
+ /** This function return the GPS week number for the
+ * ephemeris. this is the full GPS week (ie > 10 bits). */
+ short getFullWeek() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the values of the L2 codes. */
+ short getCodeFlags() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the SV accuracy (m)
+ * computed from the accuracy flag in the nav message, or
+ * as set by the setAccuracy() method. */
+ double getAccuracy() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the flag based on the SV accuracy
+ * flag as it appears in the nav message. */
+ short getAccFlag() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the SV health flag. */
+ short getHealth() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the L2 P-code data
+ * flag. */
+ short getL2Pdata() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the IODC for the given PRN. */
+ short getIODC() const throw(gpstk::InvalidRequest);
+
+ /** This function return the IODE for the ephemeris. */
+ short getIODE() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the clock epoch in GPS seconds of
+ * week. */
+ double getToc() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the SV clock error in seconds. */
+ double getAf0() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the SV clock drift in
+ * seconds/seconds. */
+ double getAf1() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the SV clock rate of change of the
+ * drift in seconds/(seconds*seconds). */
+ double getAf2() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the group delay
+ * differential in seconds. */
+ double getTgd() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the sine latitude
+ * harmonic perturbation in radians. */
+ double getCus() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the sine radius
+ * harmonic perturbation in meters. */
+ double getCrs() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the sine inclination
+ * harmonic perturbation in radians. */
+ double getCis() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the cosine radius
+ * harmonic perturbation in meters. */
+ double getCrc() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the cosine latitude
+ * harmonic perturbation in radians. */
+ double getCuc() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the cosine inclination
+ * harmonic perturbation in radians. */
+ double getCic() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the time of ephemeris
+ * in GPS seconds of week. */
+ double getToe() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the mean anomaly in
+ * radians. */
+ double getM0() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the correction to the
+ * mean motion in radians/second. */
+ double getDn() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the eccentricity. */
+ double getEcc() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the square root of the
+ * semi-major axis in square root of meters. */
+ double getAhalf() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the semi-major axis in
+ * meters. */
+ double getA() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the right ascension of
+ * the ascending node in radians. */
+ double getOmega0() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the inclination in
+ * radians. */
+ double getI0() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the argument of
+ * perigee in radians. */
+ double getW() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the rate of the right
+ * ascension of the ascending node in radians/second. */
+ double getOmegaDot() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the rate of the
+ * inclination in radians/second. */
+ double getIDot() const throw(gpstk::InvalidRequest);
+
+ /** Compute satellite velocity/position at the given time
+ * using this ephemeris.
+ * @throw InvalidRequest if a required subframe has not been stored.
+ */
+ Xvt svXvt(const DayTime& t) const throw(gpstk::InvalidRequest);
+
+ /** Compute satellite relativity correction (sec) at the given time
+ * @throw InvalidRequest if a required subframe has not been stored.
+ */
+ double svRelativity(const DayTime& t) const throw(gpstk::InvalidRequest);
+
+ /** Compute the satellite clock bias (sec) at the given time
+ * @throw InvalidRequest if a required subframe has not been stored.
+ */
+ double svClockBias(const DayTime& t) const throw(gpstk::InvalidRequest);
+
+ /** Compute the satellite clock drift (sec/sec) at the given time
+ * @throw InvalidRequest if a required subframe has not been stored.
+ */
+ double svClockDrift(const DayTime& t) const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the fit interval
+ * flag. */
+ short getFitInt() const throw(gpstk::InvalidRequest);
+
+ /** This function returns the value of the ephemeris key that
+ * is used to sort the ephemerides when they are stored in
+ * the bcetable. */
+ double getEphkey() const throw(gpstk::InvalidRequest);
+
+ /** This function returnst the value of the Time of Transmit.
+ * Basically just the earliest of the HOWs. */
+ long getTot() const throw(gpstk::InvalidRequest);
+
+ /** Set the values contained in SubFrame 1.
+ * @param tlm the new value for the TLM word
+ * @param how the new value for the HOW
+ * @param asalert the new falue for the A-S alert flag
+ * @param fullweek the new value for the full GPS week
+ * @param cflags the nve values for the L2 code flags
+ * @param acc the new value for the SV accuracy flag
+ * @param svhealth the new value for the SV health
+ * @param iodc the new value for the IODC
+ * @param l2pdata the new value for the L2 P-code data flag
+ * @param tgd the new value for the Tgd
+ * @param toc the new value for the clock epoch
+ * @param Af2 the new value for Af2
+ * @param Af1 the new value for Af1
+ * @param Af0 the new value for Af0
+ * @param Tracker the new value of the tracker number
+ * @param prn the new value of the PRN ID
+ * @return a reference to the modified EngEphemeris object
+ */
+ EngEphemeris& setSF1( unsigned tlm, double how, short asalert, short fullweek,
+ short cflags, short acc, short svhealth, short iodc,
+ short l2pdata, double tgd, double toc, double Af2,
+ double Af1, double Af0, short Tracker, short prn )
+ throw();
+
+
+ /** Set the values contained in SubFrame 2.
+ * @param tlm the new value for the TLM word
+ * @param how the new value for the HOW
+ * @param asalert the new falue for the A-S alert flag
+ * @param iode the new value for the IODE
+ * @param crs the new value for the Crs
+ * @param m0 the new value for M0
+ * @param Dn the new value for Dn
+ * @param cuc the new value for the Cuc
+ * @param Ecc the new value for the Ecc
+ * @param cus the new value for the Cus
+ * @param ahalf the new value for Ahalf
+ * @param toe the new value for the Toe
+ * @param fitInt the new value for the fit interval flag
+ * @return a reference to the modified EngEphemeris object
+ */
+ EngEphemeris& setSF2( unsigned tlm, double how, short asalert, short iode,
+ double crs, double Dn, double m0, double cuc, double Ecc,
+ double cus, double ahalf, double toe, short fitInt )
+ throw();
+
+ /** Set the values contained in SubFrame 2.
+ * @param tlm the new value for the TLM word
+ * @param how the new value for the HOW
+ * @param asalert the new falue for the A-S alert flag
+ * @param cic the new value for the Cic
+ * @param Omega0 the enw value for Omega0
+ * @param cis the new value for the Cis
+ * @param I0 the new value for I0
+ * @param crc the new value for the Crc
+ * @param W the new value for W
+ * @param OmegaDot the new value for OmegaDot
+ * @param IDot the new value for IDot
+ * @return a reference to the modified EngEphemeris object
+ */
+ EngEphemeris& setSF3( unsigned tlm, double how, short asalert, double cic,
+ double Omega0, double cis, double I0, double crc,
+ double W, double OmegaDot, double IDot )
+ throw();
+
+ /// Output the contents of this ephemeris to the given stream.
+ void dump(std::ostream& s = std::cout) const;
+
+ protected:
+ bool haveSubframe[3];/**< flags indicating presence of a subframe */
+
+ /// Ephemeris overhead information
+ //@{
+ unsigned short tlm_message[3];
+ short PRNID; /**< SV PRN ID */
+ short tracker; /**< Tracker number */
+ long HOWtime[3]; /**< Time of subframe 1-3 (sec of week) */
+ short ASalert[3]; /**< A-S and "alert" flags for each subframe */
+ short weeknum; /**< GPS full week number that corresponds to the HOWtime of SF1 */
+ short codeflags; /**< L2 codes */
+ double accuracy; /**< SV accuracy (m)*/
+ short accFlag; /**< User Range Accuracy (URA) the accuracy flag */
+ short health; /**< SV health */
+ short L2Pdata; /**< L2 P data flag */
+ short IODC; /**< Index of data-clock */
+ short IODE; /**< Index of data-eph */
+ //@}
+
+ /// Clock information
+ //@{
+ double Toc; /**< Clock epoch (sec of week) */
+ double af0; /**< SV clock error (sec) */
+ double af1; /**< SV clock drift (sec/sec) */
+ double af2; /**< SV clock drift rate (sec/sec**2) */
+ double Tgd; /**< Group delay differential (sec) */
+ //@}
+
+ /// Harmonic perturbations
+ //@{
+ double Cuc; /**< Cosine latitude (rad) */
+ double Cus; /**< Sine latitude (rad) */
+ double Crc; /**< Cosine radius (m) */
+ double Crs; /**< Sine radius (m) */
+ double Cic; /**< Cosine inclination (rad) */
+ double Cis; /**< Sine inclination (rad) */
+ //@}
+
+ /// Major ephemeris parameters
+ //@{
+ double Toe; /**< Ephemeris epoch (sec of week) */
+ double M0; /**< Mean anomaly (rad) */
+ double dn; /**< Correction to mean motion (rad/sec) */
+ double ecc; /**< Eccentricity */
+ double Ahalf; /**< SQRT of semi-major axis (m**1/2) */
+ double OMEGA0; /**< Rt ascension of ascending node (rad) */
+ double i0; /**< Inclination (rad) */
+ double w; /**< Argument of perigee (rad) */
+ double OMEGAdot; /**< Rate of Rt ascension (rad/sec) */
+ double idot; /**< Rate of inclination angle (rad/sec) */
+ short fitint; /**< Fit interval flag */
+ //@}
+
+ friend std::ostream& operator<<(std::ostream& s,
+ const EngEphemeris& eph);
+
+ }; // class EngEphemeris
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/EngNav.cpp b/dev/src/EngNav.cpp
new file mode 100644
index 0000000..2e3be91
--- /dev/null
+++ b/dev/src/EngNav.cpp
@@ -0,0 +1,686 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file EngNav.cpp
+ * Engineering units navigation message abstraction.
+ */
+
+#include <cstdlib>
+#include <iostream>
+#include <cmath>
+#include "EngNav.hpp"
+#include "icd_200_constants.hpp"
+
+#ifdef _MSC_VER
+#define LDEXP(x,y) ldexp(x,y)
+#else
+#define LDEXP(x,y) std::ldexp(x,y)
+#endif
+
+namespace gpstk
+{
+ /// DecodeBits .
+ struct DecodeBits
+ {
+ short startBit;
+ short numBits;
+ };
+
+ /** DecodeQuant contains the information necessary to decode
+ * a given quantity for a particular navigation message
+ * subframe. */
+ struct DecodeQuant
+ {
+ short outIndex; ///< Output array index (0-19)
+ short pow2; ///< Power of 2 to scale factor
+ short powPI; ///< Power of PI scale factor
+ double scale; ///< Scalar scale factor
+ short signq; ///< 0 = unsigned, 1 = signed
+ DecodeBits fmt[2]; ///< start bit, #bits for up to 2 sections
+ DecodeQuant *nxtq; ///< Pointer to next structure in list
+ };
+
+ /** Pointers to list of subframe conversions. There are ten
+ * formats numbered 1-10. Index 0 is unused. */
+ static DecodeQuant *subframeList[11];
+
+ /// Table of powers of PI, initialized in EngNav().
+ static double PItab[7] = {0,0,0,0,0,0,0};
+
+ static DecodeQuant formats[] = {
+ { 0, 0, 0, 1.0L, 0,{ { 1, 8} , { 0, 0} }, 0 }, /* Preamble */
+ { 1, 0, 0, 1.0L, 0,{ { 9, 14}, { 0, 0} }, 0 }, /* Message */
+ { 2, 0, 0, 6.0L, 0,{ { 31,17}, { 0, 0} }, 0 }, /* HOW */
+ { 3, 0, 0, 1.0L, 0,{ { 48, 2}, { 0, 0} }, 0 }, /* "alert" */
+ { 4, 0, 0, 1.0L, 0,{ { 50, 3}, { 0, 0} }, 0 }, /* SF ID */
+ { 5, 0, 0, 1.0L, 0,{ { 61, 10},{ 0, 0} }, 0 }, /* week # */
+ { 6, 0, 0, 1.0L, 0,{ { 71, 2},{ 0, 0} }, 0}, /* L2 code */
+ { 7, 0, 0, 1.0L, 0,{ { 73, 4},{ 0, 0} }, 0}, /* accuracy */
+ { 8, 0, 0, 1.0L, 0,{ { 77, 6},{ 0, 0} }, 0}, /* health */
+ { 9, 11, 0, 1.0L, 0,{ { 83, 2},{ 211,8}}, 0}, /* AODC */
+ { 10, 0, 0, 1.0L, 0,{ { 91, 1},{ 0, 0}}, 0}, /* L2 P */
+ { 11, -31, 0, 1.0L, 1,{ {197, 8},{ 0, 0}}, 0}, /* Tgd */
+ { 12, 4, 0, 1.0L, 0,{ {219, 16},{ 0, 0}}, 0}, /* Toc */
+ { 13, -55, 0, 1.0L, 1,{ {241, 8},{ 0, 0}}, 0}, /* Af2 */
+ { 14, -43, 0, 1.0L, 1,{ {249, 16},{ 0, 0}}, 0}, /* Af1 */
+ { 15, -31, 0, 1.0L, 1,{ {271, 22}, {0, 0}}, 0}, /* Af0 */
+ /* Pattern 2 */
+ {0, 0, 0, 1.0L, 0,{ { 1 , 8}, {0, 0 }}, 0 }, /* Preamble */
+ {1, 0, 0, 1.0L, 0,{ { 9, 14}, { 0, 0 }}, 0 }, /* Message */
+ {2, 0, 0, 6.0L, 0,{ { 31,17}, { 0, 0 }}, 0 }, /* HOW */
+ {3, 0, 0, 1.0L, 0,{ { 48, 2}, { 0, 0 }}, 0 }, /* "alert" */
+ {4, 0, 0, 1.0L, 0,{ { 50, 3}, { 0, 0 }}, 0 }, /* SF ID */
+ {5, 11, 0, 1.0L, 0,{ { 61, 8 }, { 0, 0 }}, 0 }, /* AODE */
+ {6, -5, 0, 1.0L, 1,{ { 69, 16 }, { 0, 0 }}, 0 }, /* Crs */
+ {7, -43, 1, 1.0L, 1,{ { 91,16 }, { 0, 0 }}, 0 }, /* delta n */
+ {8, -31, 1, 1.0L, 1,{ { 107, 8 }, {121,24 }}, 0 }, /* M0 */
+ {9, -29, 0, 1.0L, 1,{ { 151, 16}, { 0, 0 }}, 0}, /* Cuc */
+ {10, -33, 0, 1.0L, 0,{ { 167, 8}, {181,24 }}, 0}, /* ecc */
+ {11, -29, 0, 1.0L, 1,{ { 211,16}, { 0, 0 }}, 0}, /* Cus */
+ {12, -19, 0, 1.0L, 0,{ { 227, 8}, {241, 24 }}, 0}, /* sqrt(A) */
+ {13, 4, 0, 1.0L, 0,{ { 271,16}, { 0, 0 }}, 0}, /* Toe */
+ {14, 0, 0, 1.0L, 0,{ { 287, 1}, { 0, 0 }}, 0}, /* fit init */
+ /* Pattern 3 */
+ {0, 0, 0, 1.0L, 0,{ { 1, 8}, { 0, 0 }}, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0,{ { 9, 14}, { 0, 0 }}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0,{ { 31,17}, { 0, 0 }}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0,{ { 48, 2}, { 0, 0 }}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0,{ { 50, 3}, { 0, 0 }}, 0}, /* SF ID */
+ {5, -29, 0, 1.0L, 1,{ { 61,16}, { 0, 0 }}, 0}, /* Cic */
+ {6, -31, 1, 1.0L, 1,{ { 77,8}, { 91, 24}}, 0}, /* OMEGA0 */
+ {7, -29, 0, 1.0L, 1,{ { 121,16}, { 0, 0 }}, 0}, /* Cis */
+ {8, -31, 1, 1.0L, 1,{ { 137, 8}, {151, 24}}, 0}, /* i0 */
+ {9, -5, 0, 1.0L, 1,{ { 181,16}, { 0, 0 }}, 0}, /* Crc */
+ {10, -31, 1, 1.0L, 1,{ { 197, 8}, {211, 24}}, 0}, /* w */
+ {11, -43, 1, 1.0L, 1,{ { 241,24}, { 0, 0 }}, 0}, /* OMEGAdot */
+ {12, 11, 0, 1.0L, 0,{ { 271, 8}, { 0, 0 }}, 0}, /* AODE */
+ {13, -43, 1, 1.0L, 1,{ { 279,14}, { 0, 0 }}, 0}, /* idot */
+ /* Pattern 4 */
+ {0, 0, 0, 1.0L, 0,{ { 1, 8}, { 0, 0}}, 0 }, /* Preamble */
+ {1, 0, 0, 1.0L, 0,{ { 9, 14}, { 0, 0}}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0,{ { 31,17}, { 0, 0}}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0,{ { 48, 2}, { 0, 0}}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0,{ { 50, 3}, { 0, 0}}, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0,{ { 61, 2}, { 0, 0}}, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0,{ { 63, 6}, { 0, 0}}, 0}, /* Page ID */
+ {7, -21, 0, 1.0L, 0,{ { 69,16}, { 0, 0}}, 0}, /* e */
+ {8, 12, 0, 1.0L, 0,{ { 91, 8}, { 0, 0}}, 0}, /* time ep */
+ {9, -19, 1, 1.0L, 1,{ { 99,16}, { 0, 0}}, 0}, /* i offset */
+ {10, -38, 1, 1.0L, 1,{ {121,16}, { 0, 0}}, 0}, /* OMEGADOT */
+ {11, 0, 0, 1.0L, 0,{ {137, 8}, { 0, 0}}, 0}, /* Health */
+ {12, -11, 0, 1.0L, 0,{ {151,24}, { 0, 0}}, 0}, /* SQRT(a) */
+ {13, -23, 1, 1.0L, 1,{ {181,24}, { 0, 0}}, 0}, /* OMEGA */
+ {14, -23, 1, 1.0L, 1,{ {211,24}, { 0, 0}}, 0}, /* w */
+ {15, -23, 1, 1.0L, 1,{ {241,24}, { 0, 0}}, 0}, /* Mean Ano */
+ {16, -20, 0, 1.0L, 1,{ {271, 8}, {290, 3}}, 0}, /* AF0 */
+ {17, -38, 0, 1.0L, 1,{ {279,11}, { 0, 0}}, 0}, /* AF1 */
+ {18, 0, 0, 1.0L, 0,{ { 0, 0}, { 0, 0}}, 0}, /* REF WEEK */
+ {19, 0, 0, 1.0L, 0,{ { 63, 6}, { 0, 0}}, 0}, /* PRN # */
+
+ /* Pattern 5 */
+ {0, 0, 0, 1.0L, 0,{ { 1, 8}, { 0, 0}}, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0,{ { 9, 14}, { 0, 0}}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0,{ {31, 17}, { 0, 0}}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0,{ {48, 2}, { 0, 0}}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0,{ {50, 3}, { 0, 0}}, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0,{ { 61, 2}, { 0, 0}}, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0,{ { 63, 6}, { 0, 0}}, 0}, /* Page ID */
+ {7, 0, 0, 1.0L, 0,{ { 77, 8}, { 0, 0}}, 0}, /* Refweek */
+ {8, 0, 0, 1.0L, 0,{ { 91, 6}, { 0, 0}}, 0}, /* SV1 Hlth */
+ {9, 0, 0, 1.0L, 0,{ { 97, 6}, { 0, 0}}, 0}, /* SV2 Hlth */
+ {10, 0, 0, 1.0L, 0,{ { 103,6}, { 0, 0}}, 0}, /* SV3 Hlth */
+ {11, 0, 0, 1.0L, 0,{ { 109,6}, { 0, 0}}, 0}, /* SV4 Hlth */
+ {12, 0, 0, 1.0L, 0,{ { 121,6}, { 0, 0}}, 0}, /* SV5 Hlth */
+ {13, 0, 0, 1.0L, 0,{ { 127,6}, { 0, 0}}, 0}, /* SV6 Hlth */
+ {14, 0, 0, 1.0L, 0,{ { 133,6}, { 0, 0}}, 0}, /* SV7 Hlth */
+ {15, 0, 0, 1.0L, 0,{ { 139,6}, { 0, 0}}, 0}, /* SV8 Hlth */
+ {16, 0, 0, 1.0L, 0,{ { 151,6}, { 0, 0}}, 0}, /* SV9 Hlth */
+ {17, 0, 0, 1.0L, 0,{ { 157,6}, { 0, 0}}, 0}, /* SV10 Hlth*/
+ {18, 0, 0, 1.0L, 0,{ { 163,6}, { 0, 0}}, 0}, /* SV11 Hlth*/
+ {19, 0, 0, 1.0L, 0,{ { 169,6}, { 0, 0}}, 0}, /* SV12 Hlth*/
+ {20, 0, 0, 1.0L, 0,{ { 181,6}, { 0, 0}}, 0}, /* SV13 Hlth*/
+ {21, 0, 0, 1.0L, 0,{ { 187,6}, { 0, 0}}, 0}, /* SV14 Hlth*/
+ {22, 0, 0, 1.0L, 0,{ { 193,6}, { 0, 0}}, 0}, /* SV15 Hlth*/
+ {23, 0, 0, 1.0L, 0,{ { 199,6}, { 0, 0}}, 0}, /* SV16 Hlth*/
+ {24, 0, 0, 1.0L, 0,{ { 211,6}, { 0, 0}}, 0}, /* SV17 Hlth*/
+ {25, 0, 0, 1.0L, 0,{ { 217,6}, { 0, 0}}, 0}, /* SV18 Hlth*/
+ {26, 0, 0, 1.0L, 0,{ { 223,6}, { 0, 0}}, 0}, /* SV19 Hlth*/
+ {27, 0, 0, 1.0L, 0,{ { 229,6}, { 0, 0}}, 0}, /* SV20 Hlth*/
+ {28, 0, 0, 1.0L, 0,{ { 241,6}, { 0, 0}}, 0}, /* SV21 Hlth*/
+ {29, 0, 0, 1.0L, 0,{ { 247,6}, { 0, 0}}, 0}, /* SV22 Hlth*/
+ {30, 0, 0, 1.0L, 0,{ { 253,6}, { 0, 0}}, 0}, /* SV23 Hlth*/
+ {31, 0, 0, 1.0L, 0,{ { 259,6}, { 0, 0}}, 0}, /* SV24 Hlth*/
+ /* Pattern 6 */
+ {0, 0, 0, 1.0L, 0, { { 1, 8},{ 0, 0}}, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0, { { 9, 14},{ 0, 0}}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0, { { 31, 17},{ 0, 0}}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0, { { 48, 2},{ 0, 0}}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0, { { 50, 3},{ 0, 0}}, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0, { { 61, 2},{ 0, 0}}, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0, { { 63, 6},{ 0, 0}}, 0}, /* Page ID */
+ {7, 0, 0, 1.0L, 0, { { 69, 16},{ 0, 0}}, 0}, /* Reserved */
+ {8, 0, 0, 1.0L, 0, { { 91, 24},{ 0, 0}}, 0}, /* Reserved */
+ {9, 0, 0, 1.0L, 0, { { 121, 24},{ 0, 0}}, 0}, /* Reserved */
+ {10, 0, 0, 1.0L, 0, { { 151, 24},{ 0, 0}}, 0}, /* Reserved */
+ {11, 0, 0, 1.0L, 0, { { 181, 24},{ 0, 0}}, 0}, /* Reserved */
+ {12, 0, 0, 1.0L, 0, { { 211, 24},{ 0, 0}}, 0}, /* Reserved */
+ {13, 0, 0, 1.0L, 0, { { 241, 8},{ 0, 0}}, 0}, /* Reserved */
+ {14, 0, 0, 1.0L, 0, { { 249,16},{ 0, 0}}, 0}, /* Reserved */
+ /* Pattern 7 */
+ {0, 0, 0, 1.0L, 0, { { 1, 8}, { 0, 0} }, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0, { { 9, 14}, { 0, 0} }, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0, { { 31, 17}, { 0, 0} }, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0, { { 48, 2}, { 0, 0} }, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0, { { 50, 3}, { 0, 0} }, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0, { { 61, 2}, { 0, 0} }, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0, { { 63, 6}, { 0, 0} }, 0}, /* Page ID */
+ {7, 0, 0, 1.0L, 0, { { 69, 16}, { 0, 0} }, 0}, /* Reserved */
+ {8, 0, 0, 1.0L, 0, { { 91, 24}, { 0, 0} }, 0}, /* Reserved */
+ {9, 0, 0, 1.0L, 0, { {121, 24}, { 0, 0} }, 0}, /* Reserved */
+ {10, 0, 0, 1.0L, 0, { {151, 24}, { 0, 0} }, 0}, /* Reserved */
+ {11, 0, 0, 1.0L, 0, { {181, 24}, { 0, 0} }, 0}, /* Reserved */
+ {12, 0, 0, 1.0L, 0, { {211, 24}, { 0, 0} }, 0}, /* Reserved */
+ {13, 0, 0, 1.0L, 0, { {241, 8}, { 0, 0} }, 0}, /* Reserved */
+ {14, 0, 0, 1.0L, 0, { {249, 16}, { 0, 0} }, 0}, /* Reserved */
+ /* Pattern 8 */
+ {0, 0, 0, 1.0L, 0,{ { 1, 8},{ 0, 0}}, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0,{ { 9, 14},{ 0, 0}}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0,{ { 31, 17},{ 0, 0}}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0,{ { 48, 2},{ 0, 0}}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0,{ { 50, 3},{ 0, 0}}, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0,{ { 61, 2},{ 0, 0}}, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0,{ { 63, 6},{ 0, 0}}, 0}, /* Page ID */
+ {7, -30, 0, 1.0L, 1,{ { 69, 8},{ 0, 0}}, 0}, /* ALPHA0 */
+ {8, -27, -1, 1.0L, 1,{ { 77, 8},{ 0, 0}}, 0}, /* ALPHA1 */
+ {9, -24, -2, 1.0L, 1,{ { 91, 8},{ 0, 0}}, 0}, /* ALPHA2 */
+ {10, -24, -3, 1.0L, 1,{ { 99, 8},{ 0, 0}}, 0}, /* ALPHA3 */
+ {11, 11, 0, 1.0L, 1,{ { 107, 8},{ 0, 0}}, 0}, /* BETA0 */
+ {12, 14, -1, 1.0L, 1,{ { 121, 8},{ 0, 0}}, 0}, /* BETA1 */
+ {13, 16, -2, 1.0L, 1,{ { 129, 8},{ 0, 0}}, 0}, /* BETA2 */
+ {14, 16, -3, 1.0L, 1,{ { 137, 8},{ 0, 0}}, 0}, /* BETA3 */
+ {15, -30, 0, 1.0L, 1,{ { 181,24},{211, 8}}, 0}, /* A0 */
+ {16, -50, 0, 1.0L, 1,{ { 151,24},{ 0, 0}}, 0}, /* A1 */
+ {17, 12, 0, 1.0L, 0,{ { 219, 8},{ 0, 0}}, 0}, /* Tot */
+ {18, 0, 0, 1.0L, 0,{ { 227, 8},{ 0, 0}}, 0}, /* wnt */
+ {19, 0, 0, 1.0L, 1,{ { 241, 8},{ 0, 0}}, 0}, /* DELTATLS */
+ {20, 0, 0, 1.0L, 0,{ { 249, 8},{ 0, 0}}, 0}, /* WN LSF */
+ {21, 0, 0, 1.0L, 0,{ { 257, 8},{ 0, 0}}, 0}, /* DN */
+ {22, 0, 0, 1.0L, 1,{ { 271, 8},{ 0, 0}}, 0}, /* DELTALSF */
+ /* Pattern 9 */
+ {0, 0, 0, 1.0L, 0, { { 1, 8}, { 0, 0}}, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0, { { 9, 14}, { 0, 0}}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0, { { 31, 17}, { 0, 0}}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0, { { 48, 2}, { 0, 0}}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0, { { 50, 3}, { 0, 0}}, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0, { { 61, 2}, { 0, 0}}, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0, { { 63, 6}, { 0, 0}}, 0}, /* Page ID */
+ {7, 0, 0, 1.0L, 0, { { 69, 4}, { 0, 0}}, 0}, /* SV1 cnfig*/
+ {8, 0, 0, 1.0L, 0, { { 73, 4}, { 0, 0}}, 0}, /* SV2 cnfig*/
+ {9, 0, 0, 1.0L, 0, { { 77, 4}, { 0, 0}}, 0}, /* SV3 cnfig*/
+ {10, 0, 0, 1.0L, 0, { { 81, 4}, { 0, 0}}, 0}, /* SV4 cnfig*/
+ {11, 0, 0, 1.0L, 0, { { 91, 4}, { 0, 0}}, 0}, /* SV5 cnfig*/
+ {12, 0, 0, 1.0L, 0, { { 95, 4}, { 0, 0}}, 0}, /* SV6 cnfig*/
+ {13, 0, 0, 1.0L, 0, { { 99, 4}, { 0, 0}}, 0}, /* SV7 cnfig*/
+ {14, 0, 0, 1.0L, 0, { { 103, 4}, { 0, 0}}, 0}, /* SV8 cnfig*/
+ {15, 0, 0, 1.0L, 0, { { 107, 4}, { 0, 0}}, 0}, /* SV9 cnfig*/
+ {16, 0, 0, 1.0L, 0, { { 111, 4}, { 0, 0}}, 0}, /* SV10 cnfig*/
+ {17, 0, 0, 1.0L, 0, { { 121, 4}, { 0, 0}}, 0}, /* SV11 cnfig*/
+ {18, 0, 0, 1.0L, 0, { { 125, 4}, { 0, 0}}, 0}, /* SV12 cnfig*/
+ {19, 0, 0, 1.0L, 0, { { 129, 4}, { 0, 0}}, 0}, /* SV13 cnfig*/
+ {20, 0, 0, 1.0L, 0, { { 133, 4}, { 0, 0}}, 0}, /* SV14 cnfig*/
+ {21, 0, 0, 1.0L, 0, { { 137, 4}, { 0, 0}}, 0}, /* SV15 cnfig*/
+ {22, 0, 0, 1.0L, 0, { { 141, 4}, { 0, 0}}, 0}, /* SV16 cnfig*/
+ {23, 0, 0, 1.0L, 0, { { 151, 4}, { 0, 0}}, 0}, /* SV17 cnfig*/
+ {24, 0, 0, 1.0L, 0, { { 155, 4}, { 0, 0}}, 0}, /* SV18 cnfig*/
+ {25, 0, 0, 1.0L, 0, { { 159, 4}, { 0, 0}}, 0}, /* SV19 cnfig*/
+ {26, 0, 0, 1.0L, 0, { { 163, 4}, { 0, 0}}, 0}, /* SV20 cnfig*/
+ {27, 0, 0, 1.0L, 0, { { 167, 4}, { 0, 0}}, 0}, /* SV21 cnfig*/
+ {28, 0, 0, 1.0L, 0, { { 171, 4}, { 0, 0}}, 0}, /* SV22 cnfig*/
+ {29, 0, 0, 1.0L, 0, { { 181, 4}, { 0, 0}}, 0}, /* SV23 cnfig*/
+ {30, 0, 0, 1.0L, 0, { { 185, 4}, { 0, 0}}, 0}, /* SV24 cnfig*/
+ {31, 0, 0, 1.0L, 0, { { 189, 4}, { 0, 0}}, 0}, /* SV25 cnfig*/
+ {32, 0, 0, 1.0L, 0, { { 193, 4}, { 0, 0}}, 0}, /* SV26 cnfig*/
+ {33, 0, 0, 1.0L, 0, { { 197, 4}, { 0, 0}}, 0}, /* SV27 cnfig*/
+ {34, 0, 0, 1.0L, 0, { { 201, 4}, { 0, 0}}, 0}, /* SV28 cnfig*/
+ {35, 0, 0, 1.0L, 0, { { 211, 4}, { 0, 0}}, 0}, /* SV29 cnfig*/
+ {36, 0, 0, 1.0L, 0, { { 215, 4}, { 0, 0}}, 0}, /* SV30 cnfig*/
+ {37, 0, 0, 1.0L, 0, { { 219, 4}, { 0, 0}}, 0}, /* SV31 cnfig*/
+ {38, 0, 0, 1.0L, 0, { { 223, 4}, { 0, 0}}, 0}, /* SV32 cnfig*/
+ {39, 0, 0, 1.0L, 0, { { 229, 6}, { 0, 0}}, 0}, /* SV25 Hlth */
+ {40, 0, 0, 1.0L, 0, { { 241, 6}, { 0, 0}}, 0}, /* SV26 Hlth */
+ {41, 0, 0, 1.0L, 0, { { 247, 6}, { 0, 0}}, 0}, /* SV27 Hlth */
+ {42, 0, 0, 1.0L, 0, { { 253, 6}, { 0, 0}}, 0}, /* SV28 Hlth */
+ {43, 0, 0, 1.0L, 0, { { 259, 6}, { 0, 0}}, 0}, /* SV29 Hlth */
+ {44, 0, 0, 1.0L, 0, { { 271, 6}, { 0, 0}}, 0}, /* SV30 Hlth */
+ {45, 0, 0, 1.0L, 0, { { 277, 6}, { 0, 0}}, 0}, /* SV31 Hlth */
+ {46, 0, 0, 1.0L, 0, { { 283, 6}, { 0, 0}}, 0}, /* SV32 Hlth */
+ /* Pattern 10 */
+ {0, 0, 0, 1.0L, 0,{ { 1, 8}, { 0, 0}}, 0}, /* Preamble */
+ {1, 0, 0, 1.0L, 0,{ { 9, 14}, { 0, 0}}, 0}, /* Message */
+ {2, 0, 0, 6.0L, 0,{ { 31, 17}, { 0, 0}}, 0}, /* HOW */
+ {3, 0, 0, 1.0L, 0,{ { 48, 2}, { 0, 0}}, 0}, /* "alert" */
+ {4, 0, 0, 1.0L, 0,{ { 50, 3}, { 0, 0}}, 0}, /* SF ID */
+ {5, 0, 0, 1.0L, 0,{ { 61, 2}, { 0, 0}}, 0}, /* Dataflag */
+ {6, 0, 0, 1.0L, 0,{ { 63, 6}, { 0, 0}}, 0}, /* Page ID */
+ {7, 0, 0, 1.0L, 0,{ { 69, 8}, { 0, 0}}, 0}, /* ASCII */
+ {8, 0, 0, 1.0L, 0,{ { 77, 8}, { 0, 0}}, 0}, /* ASCII */
+ {9, 0, 0, 1.0L, 0,{ { 91, 8}, { 0, 0}}, 0}, /* ASCII */
+ {10, 0, 0, 1.0L, 0,{ { 99, 8}, { 0, 0}}, 0}, /* ASCII */
+ {11, 0, 0, 1.0L, 0,{ { 107, 8}, { 0, 0}}, 0}, /* ASCII */
+ {12, 0, 0, 1.0L, 0,{ { 121, 8}, { 0, 0}}, 0}, /* ASCII */
+ {13, 0, 0, 1.0L, 0,{ { 129, 8}, { 0, 0}}, 0}, /* ASCII */
+ {14, 0, 0, 1.0L, 0,{ { 137, 8}, { 0, 0}}, 0}, /* ASCII */
+ {15, 0, 0, 1.0L, 0,{ { 151, 8}, { 0, 0}}, 0}, /* ASCII */
+ {16, 0, 0, 1.0L, 0,{ { 159, 8}, { 0, 0}}, 0}, /* ASCII */
+ {17, 0, 0, 1.0L, 0,{ { 167, 8}, { 0, 0}}, 0}, /* ASCII */
+ {18, 0, 0, 1.0L, 0,{ { 181, 8}, { 0, 0}}, 0}, /* ASCII */
+ {19, 0, 0, 1.0L, 0,{ { 189, 8}, { 0, 0}}, 0}, /* ASCII */
+ {20, 0, 0, 1.0L, 0,{ { 197, 8}, { 0, 0}}, 0}, /* ASCII */
+ {21, 0, 0, 1.0L, 0,{ { 211, 8}, { 0, 0}}, 0}, /* ASCII */
+ {22, 0, 0, 1.0L, 0,{ { 219, 8}, { 0, 0}}, 0}, /* ASCII */
+ {23, 0, 0, 1.0L, 0,{ { 227, 8}, { 0, 0}}, 0}, /* ASCII */
+ {24, 0, 0, 1.0L, 0,{ { 241, 8}, { 0, 0}}, 0}, /* ASCII */
+ {25, 0, 0, 1.0L, 0,{ { 249, 8}, { 0, 0}}, 0}, /* ASCII */
+ {26, 0, 0, 1.0L, 0,{ { 257, 8}, { 0, 0}}, 0}, /* ASCII */
+ {27, 0, 0, 1.0L, 0,{ { 271, 8}, { 0, 0}}, 0}, /* ASCII */
+ {28, 0, 0, 1.0L, 0,{ { 279, 8}, { 0, 0}}, 0}, /* ASCII */
+ /* Dummy pattern for constructor */
+ {0, 0, 0, 1.0L, 0,{{ 0, 0}, { 0, 0}}, 0}
+ };
+
+
+ EngNav::EngNav()
+ throw()
+ {
+ short i=0, n=0;
+ static short initialized = 0;
+
+ if (initialized)
+ return;
+
+ // Set up pointers within subframe format structure.
+ for (i=1; i<=10; i++)
+ {
+ subframeList[i] = &formats[n];
+ while (formats[n+1].outIndex != 0)
+ {
+ formats[n].nxtq = &formats[n+1];
+ n++;
+ }
+ formats[n].nxtq = NULL;
+ n++;
+ }
+
+ // Calculate powers of PI table.
+ PItab[3] = 1.0L;
+ for (i=0;i<=2;i++)
+ {
+ PItab[4+i] = PItab[3+i] * PI;
+ PItab[2-i] = PItab[3-i] / PI;
+ }
+
+ initialized = 1;
+ }
+
+ // Retained for backward compatibility
+ bool EngNav :: subframeConvert(const long input[10],
+ int gpsWeek,
+ double output[60])
+ throw()
+ {
+ uint32_t tinput[10];
+ for (int n=0;n<10;++n)
+ tinput[n] = static_cast<uint32_t>( input[n] );
+ short tgpsWeek = gpsWeek;
+ return( subframeConvert( tinput, tgpsWeek, output ));
+ }
+
+ bool EngNav :: subframeConvert(const uint32_t input[10],
+ short gpsWeek,
+ double output[60])
+ throw()
+ {
+ short patId = -2, i = 2;
+ struct DecodeQuant *p=NULL;
+
+ for (i=0; i< 20; i++)
+ output[i] = 0.0L;
+
+ // Get subframe and page id and derive pattern number.
+ if ((patId = getSubframePattern(input)) == 0)
+ return false;
+
+ // convert each quantity in the list
+ p = subframeList[patId];
+ while (p != NULL)
+ {
+ convertQuant(input, output, p);
+ if(p->nxtq)
+ p = p->nxtq;
+ else
+ p = NULL;
+ }
+
+ // Almanac does not contain a reference week
+ // However we need to put one in the FIC version of the Almanac
+ if (patId==4)
+ {
+ output[18]= static_cast<double>( gpsWeek );
+ }
+
+ // Modify the 8-bit week numbers to be the full week numbers
+ if (patId == 8)
+ {
+ if (!convert8bit(gpsWeek, &output[18]))
+ return false;
+
+ if (!convert8bit(gpsWeek, &output[20]))
+ return false;
+ }
+
+ // Change the 10 bit week number in subframe 1 to full weeks
+ if (patId == 1)
+ {
+ short week10Bit = static_cast<uint32_t>( output[5] );
+ output[5] =
+ static_cast<double>( convertXBit(gpsWeek, week10Bit, BITS10) );
+ }
+ return true;
+ }
+
+ // Retained for backward compatibility
+ bool EngNav :: convert8bit(int gpsWeek, double *output)
+ throw()
+ {
+ short tgpsWeek = static_cast<short>( gpsWeek );
+ short toutput = static_cast<short> ( *output );
+ short retArg = convertXBit( tgpsWeek, toutput, BITS8 );
+ *output = static_cast<double>(retArg);
+
+ return true;
+ }
+
+ // Retained for backward compatibility
+ bool EngNav :: convert10bit(int gpsWeek, double *output)
+ throw()
+ {
+ short tgpsWeek = static_cast<short>( gpsWeek );
+ short toutput = static_cast<short> ( *output );
+ short retArg = convertXBit( tgpsWeek, toutput, BITS10 );
+ *output = static_cast<double>(retArg);
+ return true;
+ }
+
+ static short LIMIT[] = { 127, 511 };
+ static short RANGE[] = { 256, 1024 };
+
+ short EngNav :: convertXBit(short fullGPSWeek,
+ short incompleteGPSWeek,
+ BitConvertType type)
+ {
+ short extension = fullGPSWeek - (fullGPSWeek % RANGE[type]);
+ short target = extension + incompleteGPSWeek;
+
+ short diff = target - fullGPSWeek;
+ if (diff>LIMIT[type])
+ target -= RANGE[type];
+ else if (diff< -LIMIT[type])
+ target += RANGE[type];
+
+ return( target );
+ }
+
+ // Retained for backward compatibility
+ short EngNav :: getSubframePattern(const long input[10])
+ throw()
+ {
+ uint32_t tinput[10];
+ for (int n=0;n<10;++n)
+ tinput[n] = static_cast<uint32_t>( input[n] );
+ return( getSubframePattern( tinput ));
+ }
+
+ short EngNav :: getSubframePattern(const uint32_t input[10])
+ throw()
+ {
+ short iret, svid;
+ long itemp;
+
+ short patId[]
+ = { 5, 6, 6, 6, 10, 8, 6, 7, 7, 7, 7, 7, 9 };
+ /*SVid 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 */
+
+ // Get subframe id. If 1-3 return as patId.
+
+ itemp = input[1]; /* move HOW to temp storage */
+ itemp >>= 8; /* shift so subframe id is in 3 lsb */
+ itemp &= 0x00000007L; /* and mask off msbs */
+ iret = static_cast<short>( itemp );
+ /* Not a valid sf id */
+ if ( iret < 1 || iret > 5 )
+ return(0);
+ if ( iret < 4 )
+ return(iret);
+
+
+ /* If subframe 1-5, get page id and look up patId */
+ itemp = input[2]; /* move word 3 into temp storage */
+ itemp >>= 22; /* shift so SV ID is in 6 lsbs */
+ itemp &= 0x0000003FL; /* and mask off msbs */
+ svid = static_cast<short>( itemp );
+ if ( svid <= 32 )
+ iret = 4; /* PRN orbit data */
+ else
+ iret = patId[svid-51]; /* look up pat id for almanac overhead
+ information */
+ return iret;
+ }
+
+ uint32_t EngNav :: computeParity(uint32_t sfword,
+ uint32_t psfword,
+ bool knownUpright)
+ {
+ /*
+ This function is somewhat table-driven. There is one
+ element in bmask for each of the six parity bits. Each
+ element is a bit mask with bits set corresponding to the
+ bits which are to be exclusive-OR'd together to form the
+ parity check bit. The following bit maps define the bmask
+ array. They were drawn from table 20-XIV of ICD-GPS-200C
+ (10 OCT 1993).
+
+ Bit in navigation message
+ bit1 bit 30
+ bit 12 3456 789. 1234 5678 9.12 3456 789.
+ --- -------------------------------------
+ D25 11 1011 0001 1111 0011 0100 1000 0000
+ D26 01 1101 1000 1111 1001 1010 0100 0000
+ D27 10 1110 1100 0111 1100 1101 0000 0000
+ D28 01 0111 0110 0011 1110 0110 1000 0000
+ D29 10 1011 1011 0001 1111 0011 0100 0000
+ D30 00 1011 0111 1010 1000 1001 1100 0000
+ */
+ uint32_t bmask[6] = { 0x3B1F3480L, 0x1D8F9A40L, 0x2EC7CD00L,
+ 0x1763E680L, 0x2BB1F340L, 0x0B7A89C0L };
+
+ uint32_t D = 0;
+ uint32_t d = sfword;
+ uint32_t D29 = getd29(psfword);
+ uint32_t D30 = getd30(psfword);
+
+ // If D30 of the previous subframe was set, complement the word
+ // to get the source data bits. This will also complement the
+ // parity, but we don't need the original parity to compute the
+ // new.
+ if (D30 && !knownUpright)
+ d = ~d;
+ D |= ((D29 + BinUtils::countBits(bmask[0] & d)) % 2) << 5;
+ D |= ((D30 + BinUtils::countBits(bmask[1] & d)) % 2) << 4;
+ D |= ((D29 + BinUtils::countBits(bmask[2] & d)) % 2) << 3;
+ D |= ((D30 + BinUtils::countBits(bmask[3] & d)) % 2) << 2;
+ D |= ((D30 + BinUtils::countBits(bmask[4] & d)) % 2) << 1;
+ D |= ((D29 + BinUtils::countBits(bmask[5] & d)) % 2);
+
+ return D;
+ }
+
+ uint32_t EngNav :: fixParity(uint32_t sfword,
+ uint32_t psfword,
+ bool nib)
+ {
+ uint32_t bmask[6] = { 0x3B1F3480L, 0x1D8F9A40L, 0x2EC7CD00L,
+ 0x1763E680L, 0x2BB1F340L, 0x0B7A89C0L };
+
+ uint32_t D = 0;
+ uint32_t d = sfword;
+ uint32_t D29 = getd29(psfword);
+ uint32_t D30 = getd30(psfword);
+
+ if (nib)
+ {
+ // make sure the non-information bits are zero to start with.
+ d &= 0xffffff00;
+ if ((D30 + BinUtils::countBits(bmask[4] & d)) % 2)
+ d |= 0x00000040;
+ if ((D29 + BinUtils::countBits(bmask[5] & d)) % 2)
+ d |= 0x00000080;
+ }
+
+ D = computeParity(d, psfword);
+
+ return D | d;
+ }
+
+ /// This is the OLD GPSTk method, left here for compatibility
+ bool EngNav :: subframeParity(const long input[10])
+ {
+ uint32_t temp[10];
+ for (int n=0;n<10;++n) temp[n] = input[n];
+ return(checkParity( temp ));
+ }
+
+
+ bool EngNav :: checkParity(const std::vector<uint32_t>& sf, bool knownUpright)
+ {
+ return (((sf[0] & 0x0000003f) == computeParity(sf[0], 0, knownUpright)) &&
+ ((sf[1] & 0x0000003f) == computeParity(sf[1], sf[0], knownUpright)) &&
+ ((sf[2] & 0x0000003f) == computeParity(sf[2], sf[1], knownUpright)) &&
+ ((sf[3] & 0x0000003f) == computeParity(sf[3], sf[2], knownUpright)) &&
+ ((sf[4] & 0x0000003f) == computeParity(sf[4], sf[3], knownUpright)) &&
+ ((sf[5] & 0x0000003f) == computeParity(sf[5], sf[4], knownUpright)) &&
+ ((sf[6] & 0x0000003f) == computeParity(sf[6], sf[5], knownUpright)) &&
+ ((sf[7] & 0x0000003f) == computeParity(sf[7], sf[6], knownUpright)) &&
+ ((sf[8] & 0x0000003f) == computeParity(sf[8], sf[7], knownUpright)) &&
+ ((sf[9] & 0x0000003f) == computeParity(sf[9], sf[8], knownUpright)));
+ }
+
+ bool EngNav :: checkParity(const uint32_t sf[10], bool knownUpright)
+ {
+ std::vector<uint32_t> temp(10);
+ for (size_t n=0; n<10; ++n)
+ temp[n] = sf[n];
+ return checkParity(temp, knownUpright);
+ }
+
+ void EngNav :: convertQuant(const uint32_t input[10],
+ double output[60],
+ DecodeQuant *p)
+ throw()
+ {
+ double dval;
+ short i, n, bit1, nword, nbit, lsb;
+ union equ
+ {
+ uint32_t u;
+ int32_t s;
+ } temp;
+ uint32_t *b;
+ uint32_t mask;
+
+ // Convert starting bit number to word/bit pair
+ temp.u = 0x0L;
+ for (n=0; n<=1; n++)
+ {
+ if (p->fmt[n].startBit == 0)
+ break;
+ bit1 = p->fmt[n].startBit;
+ nword = (bit1-1) / 30;
+ nbit = (bit1 % 30) + 1;
+
+ b = const_cast<uint32_t *>( input ) + nword;
+ for (i=0;i<p->fmt[n].numBits;i++)
+ {
+ temp.u <<= 1;
+ mask = 0x80000000L >> nbit++;
+ if (*b & mask)
+ temp.u++;
+ if (nbit>=32)
+ {
+ b++;
+ nbit = 0;
+ }
+ }
+ }
+
+ // Convert to double and scale
+ if (p->signq)
+ {
+ nbit = 32 - (p->fmt[0].numBits + p->fmt[1].numBits);
+ temp.u <<= nbit; // Move sign bit to msb
+ temp.s >>= nbit; // Move lsb back to right spot with sign extend
+ dval = temp.s;
+ }
+ else
+ {
+ dval = temp.u; // msb = 0
+ }
+ dval = dval * p->scale; // Scale by scalar
+ dval = dval * PItab[ p->powPI+3 ]; // Scale by power of PI
+ dval = LDEXP(dval,p->pow2); // Scale by power of 2
+ output[p->outIndex] = dval; // Store result in output array
+ }
+
+} // namespace
diff --git a/dev/src/EngNav.hpp b/dev/src/EngNav.hpp
new file mode 100644
index 0000000..93b9c9d
--- /dev/null
+++ b/dev/src/EngNav.hpp
@@ -0,0 +1,284 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EngNav.hpp
+ * Engineering units navigation message abstraction.
+ */
+
+#ifndef GPSTK_ENGNAV_HPP
+#define GPSTK_ENGNAV_HPP
+
+
+#include <sys/types.h>
+
+#include "gpstkplatform.h"
+#include "BinUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemcalc */
+ //@{
+
+ struct DecodeQuant;
+
+ /**
+ * Base class for ICD-GPS-200 navigation messages. This class
+ * provides functions for decoding the bits in navigation
+ * message, and is the base class for all "engineering units"
+ * types.
+ */
+ class EngNav
+ {
+ public:
+ /// This enumeration is used by the convertXBit() method.
+ enum BitConvertType
+ {
+ BITS8 = 0,
+ BITS10 = 1
+ };
+
+ /// default constructor
+ EngNav() throw();
+
+ /// destructor
+ virtual ~EngNav() {}
+
+
+ /**
+ * Compute and return the parity of the given subframe word,
+ * based on the algorihm defined in Section 20.3.5 of
+ * IS-GPS-200D.
+ * @param sfword The subframe word to compute the parity of.
+ * @param psfword The previous word in the subframe (use 0
+ * when sfword is word 1)
+ * @param knownUpright When this is set, the data is assumed to be upright
+ * and no D30 inversion is performed
+ * @return the 6-bit parity (or, if zeroBits is set, the
+ * 6-bit parity along with the two t-bits, the
+ * non-information bits used for parity computation).
+ */
+ static uint32_t computeParity(uint32_t sfword,
+ uint32_t psfword,
+ bool knownUpright=true);
+
+ /**
+ * Compute the parity for the given subframe using the prior
+ * subframe and a flag to handle the "non-information bits"
+ * that appear in certain words of each subframe.
+ * @param sfword The subframe word to compute the parity of.
+ * @param psfword The previous word in the subframe (use 0
+ * when sfword is word 1)
+ * @param nib if true, sfword is one of the words with the
+ * non-information bearing bits (word 2 or 10), and the
+ * parity will be computed as appropriate for that situation.
+ * @return sfword with the proper parity bits.
+ */
+ static uint32_t fixParity(uint32_t sfword,
+ uint32_t psfword,
+ bool nib);
+
+ /**
+ * Perform a parity check on a navigation message subframe.
+ * @return true if the parity check is successful.
+ */
+ static bool checkParity(const uint32_t input[10], bool knownUpright=true);
+ static bool checkParity(const std::vector<uint32_t>& v, bool knownUpright=true);
+
+
+ /// This is the old routine only left around for compatibility
+ static bool subframeParity(const long input[10]);
+
+
+ /// Following two used by checkParity
+ /// Get bit 30 from the given subframe word
+ static inline uint32_t getd30(uint32_t sfword)
+ {
+ return (sfword & 0x01);
+ }
+
+ /// Get bit 29 from the given subframe word
+ static inline uint32_t getd29(uint32_t sfword)
+ {
+ return ((sfword & 0x02) >> 1);
+ }
+
+ /// Get the HOW time from the provided HOW
+ static inline unsigned long getHOWTime(uint32_t word2)
+ {
+ word2 >>= 13;
+ word2 &= 0x0001FFFFL;
+ return word2 * 6;
+ }
+
+ /// Get the subframe ID from the provided HOW
+ static inline short getSFID(uint32_t word2)
+ {
+ word2 >>= 8;
+ word2 &= 0x00000007L;
+ return word2 ;
+ }
+
+
+ /**
+ * Given 10 words of a navigation message subframe (as
+ * defined in ICD-GPS-200), convert to the "appropriate" 60
+ * FIC floating point values.
+ * @param input array of ten 30-bit words (stored in the 30
+ * least-significant bits of each long.
+ * @param gpsWeek full (>10 bits) GPS week number associated
+ * with almanac reference time.
+ * @param output 60 FIC floating point values as defined in
+ * the documentation for FIC blocks 9 and 62.
+ * @return true if successful.
+ */
+ static bool subframeConvert(const long input[10],
+ int gpsWeek,
+ double output[60])
+ throw();
+
+ /**
+ * Given 10 words of a navigation message subframe (as
+ * defined in ICD-GPS-200), convert to the "appropriate" 60
+ * FIC floating point values.
+ * @param input array of ten 30-bit words (stored in the 30
+ * least-significant bits of each long.
+ * @param gpsWeek full (>10 bits) GPS week number associated
+ * with almanac reference time.
+ * @param output 60 FIC floating point values as defined in
+ * the documentation for FIC blocks 9 and 62.
+ * @return true if successful.
+ */
+ static bool subframeConvert(const uint32_t input[10],
+ short gpsWeek,
+ double output[60])
+ throw();
+
+ /** Convert the week number in \c out from 8-bit to full
+ * using the full week number \c gpsWeek.
+ * @param gpsWeek source full week number.
+ * @param out 8-bit week number to convert to full
+ * @return true if source and target are within 127 weeks of
+ * each other.
+ */
+ static bool convert8bit(int gpsWeek, double *out)
+ throw();
+
+ /** Convert the week number in \c out from 10-bit to full
+ * using the full week number \c gpsWeek.
+ * @param gpsWeek source full week number.
+ * @param out 10-bit week number to convert to full
+ * @return true if source and target are within 511 weeks of
+ * each other.
+ */
+ static bool convert10bit(int gpsWeek, double *out)
+ throw();
+
+ /** Convert the week number in \c out from 8 or 10-bit to full
+ * using the full week number \c fullGPSWeek.
+ * @param fullGPSWeek source full week number.
+ * @param incompleteGPSWeek week number to convert to full
+ * @param type BITS8 (0) or BITS10 (1)
+ * @return Full GPS week corresponding to incompleteGPSWeek
+ * assuming incompleteGPSWeek is within half the 8/10 bit
+ * distance from fullGPSWeek.
+ */
+ static short convertXBit( short fullGPSWeek,
+ short incompleteGPSWeek,
+ BitConvertType type);
+
+ /**
+ * Given a navigation message subframe, return the
+ * pattern number to be used in converting the
+ * subframe to engineering units. The patterns are
+ * defined in the following table. The numbers correspond
+ * to the ordering of the bit definitions in ICD-GPS-200
+ * Figure 20-1.
+ *
+ * Subframe # SV_id Pattern #
+ * 1 n/a 1
+ * 2 n/a 2
+ * 3 n/a 3
+ * 4 1-24 4
+ * 4 25 5
+ * 5 57 6
+ * 5 58-62 7
+ * 5 56 8
+ * 5 63 9
+ * 5 52-55 10
+ *
+ * @param input 10 long integers containing the ten words of
+ * the navigation message subframe.
+ * @return the pattern ID as defined in the above table.
+ */
+ static short getSubframePattern(const long input[10])
+ throw();
+ static short getSubframePattern(const uint32_t input[10])
+ throw();
+
+ private:
+
+ /**
+ * Given 10 words of a navigation message subframe, in, and a
+ * structure, p, defining a particular conversion, perform
+ * the conversion and store the results in the appropriate
+ * location in the FIC F array, out.
+ *
+ * @param input words of navigation message subframe. Each
+ * nav message word is in the 30 lsbs of the corresponding
+ * input[i].
+ *
+ * @param output array of 60 double which correspond to the
+ * section of a FIC F array. The converted output will be
+ * placed in the output array at the location specified in
+ * the conversion specification.
+ *
+ * @param p pointer to structure defining conversion to be
+ * performed.
+ */
+ static void convertQuant(const uint32_t input[10],
+ double output[60],
+ DecodeQuant *p)
+ throw();
+ }; // class EngNav
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/EphemerisRange.cpp b/dev/src/EphemerisRange.cpp
new file mode 100644
index 0000000..92f5c3b
--- /dev/null
+++ b/dev/src/EphemerisRange.cpp
@@ -0,0 +1,227 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EphemerisRange.cpp
+ * Computation of range and associated quantities from EphemerisStore,
+ * given receiver position and time.
+ */
+
+#include "EphemerisRange.hpp"
+#include "MiscMath.hpp"
+#include "GPSGeoid.hpp"
+#include "icd_200_constants.hpp"
+#include "geometry.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+ // Compute the corrected range at RECEIVE time, from receiver at position Rx,
+ // to the GPS satellite given by SatID sat, as well as all the CER quantities,
+ // given the nominal receive time tr_nom and an EphemerisStore.
+ double CorrectedEphemerisRange::ComputeAtReceiveTime(const DayTime& tr_nom,
+ const Position& Rx,
+ const SatID sat,
+ const EphemerisStore& Eph)
+ {
+ try {
+ int nit;
+ double tof,tof_old,wt,sx,sy;
+ GPSGeoid geoid;
+
+ nit = 0;
+ tof = 0.07; // initial guess 70ms
+ do {
+ // best estimate of transmit time
+ transmit = tr_nom;
+ transmit -= tof;
+ tof_old = tof;
+ // get SV position
+ try {
+ svPosVel = Eph.getSatXvt(sat,transmit);
+ }
+ catch(EphemerisStore::NoEphemerisFound& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(InvalidRequest& ir)
+ {
+ EphemerisStore::NoEphemerisFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+ // compute new time of flight
+ tof = RSS(svPosVel.x[0]-Rx.X(),
+ svPosVel.x[1]-Rx.Y(),
+ svPosVel.x[2]-Rx.Z());
+ tof /= geoid.c();
+ // correct for Earth rotation
+ wt = geoid.angVelocity()*tof;
+ sx = cos(wt)*svPosVel.x[0] + sin(wt)*svPosVel.x[1];
+ sy = -sin(wt)*svPosVel.x[0] + cos(wt)*svPosVel.x[1];
+ svPosVel.x[0] = sx;
+ svPosVel.x[1] = sy;
+ sx = cos(wt)*svPosVel.v[0] + sin(wt)*svPosVel.v[1];
+ sy = -sin(wt)*svPosVel.v[0] + cos(wt)*svPosVel.v[1];
+ svPosVel.v[0] = sx;
+ svPosVel.v[1] = sy;
+ // update raw range and time of flight
+ rawrange = RSS(svPosVel.x[0]-Rx.X(),
+ svPosVel.x[1]-Rx.Y(),
+ svPosVel.x[2]-Rx.Z());
+ tof = rawrange/geoid.c();
+
+ } while(ABS(tof-tof_old)>1.e-13 && ++nit<5);
+
+ relativity = RelativityCorrection(svPosVel) * C_GPS_M;
+ // relativity correction is added to dtime by the
+ // EphemerisStore::getSatXvt routines...
+
+ svclkbias = svPosVel.dtime*C_GPS_M - relativity;
+ svclkdrift = svPosVel.ddtime * C_GPS_M;
+
+ cosines[0] = (Rx.X()-svPosVel.x[0])/rawrange;
+ cosines[1] = (Rx.Y()-svPosVel.x[1])/rawrange;
+ cosines[2] = (Rx.Z()-svPosVel.x[2])/rawrange;
+
+ Position SV(svPosVel);
+ elevation = Rx.elevation(SV);
+ azimuth = Rx.azimuth(SV);
+ elevationGeodetic = Rx.elevationGeodetic(SV);
+ azimuthGeodetic = Rx.azimuthGeodetic(SV);
+
+ return (rawrange-svclkbias-relativity);
+ }
+ catch(gpstk::Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end CorrectedEphemerisRange::ComputeAtReceiveTime
+
+ // Compute the corrected range at TRANSMIT time, from receiver at position Rx,
+ // to the GPS satellite given by SatID sat, as well as all the CER quantities,
+ // given the nominal receive time tr_nom and an EphemerisStore, as well as
+ // the raw measured pseudorange.
+ double CorrectedEphemerisRange::ComputeAtTransmitTime(const DayTime& tr_nom,
+ const double& pr,
+ const Position& Rx,
+ const SatID sat,
+ const EphemerisStore& Eph)
+ {
+ try {
+ DayTime tt;
+ GPSGeoid geoid;
+
+ // 0-th order estimate of transmit time = receiver - pseudorange/c
+ transmit = tr_nom;
+ transmit -= pr/C_GPS_M;
+ tt = transmit;
+
+ // correct for SV clock
+ for(int i=0; i<2; i++) {
+ // get SV position
+ try {
+ svPosVel = Eph.getSatXvt(sat,tt);
+ }
+ catch(EphemerisStore::NoEphemerisFound& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(InvalidRequest& ir)
+ {
+ EphemerisStore::NoEphemerisFound nef(ir);
+ GPSTK_THROW(nef);
+ }
+ tt = transmit;
+ tt -= svPosVel.dtime; // clock and relativity
+ }
+
+ // correct for Earth rotation
+ double tof = RSS(svPosVel.x[0]-Rx.X(),
+ svPosVel.x[1]-Rx.Y(),
+ svPosVel.x[2]-Rx.Z())/geoid.c();
+ double wt = geoid.angVelocity()*tof;
+ double sx = cos(wt)*svPosVel.x[0] + sin(wt)*svPosVel.x[1];
+ double sy = -sin(wt)*svPosVel.x[0] + cos(wt)*svPosVel.x[1];
+ svPosVel.x[0] = sx;
+ svPosVel.x[1] = sy;
+ sx = cos(wt)*svPosVel.v[0] + sin(wt)*svPosVel.v[1];
+ sy = -sin(wt)*svPosVel.v[0] + cos(wt)*svPosVel.v[1];
+ svPosVel.v[0] = sx;
+ svPosVel.v[1] = sy;
+ // raw range
+ rawrange = RSS(svPosVel.x[0]-Rx.X(),
+ svPosVel.x[1]-Rx.Y(),
+ svPosVel.x[2]-Rx.Z());
+
+ relativity = RelativityCorrection(svPosVel) * C_GPS_M;
+ // relativity correction is added to dtime by the
+ // EphemerisStore::getSatXvt routines...
+
+ svclkbias = svPosVel.dtime*C_GPS_M - relativity;
+ svclkdrift = svPosVel.ddtime * C_GPS_M;
+
+ cosines[0] = (Rx.X()-svPosVel.x[0])/rawrange;
+ cosines[1] = (Rx.Y()-svPosVel.x[1])/rawrange;
+ cosines[2] = (Rx.Z()-svPosVel.x[2])/rawrange;
+
+ Position SV(svPosVel);
+ elevation = Rx.elevation(SV);
+ azimuth = Rx.azimuth(SV);
+ elevationGeodetic = Rx.elevationGeodetic(SV);
+ azimuthGeodetic = Rx.azimuthGeodetic(SV);
+
+ return (rawrange-svclkbias-relativity);
+ }
+ catch(gpstk::Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end CorrectedEphemerisRange::ComputeAtTransmitTime
+
+ double RelativityCorrection(const Xvt& svPosVel)
+ {
+ // relativity correction is added to dtime by the
+ // EphemerisStore::getSatXvt routines...
+ // dtr = -2*dot(R,V)/(c*c) = -4.4428e-10(s/sqrt(m)) * ecc * sqrt(A(m)) * sinE
+ // compute it separately here, in units seconds.
+ double dtr = ( -2.0 *( svPosVel.x[0] * svPosVel.v[0]
+ + svPosVel.x[1] * svPosVel.v[1]
+ + svPosVel.x[2] * svPosVel.v[2] ) / C_GPS_M ) / C_GPS_M;
+ return dtr;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/EphemerisRange.hpp b/dev/src/EphemerisRange.hpp
new file mode 100644
index 0000000..d2327d7
--- /dev/null
+++ b/dev/src/EphemerisRange.hpp
@@ -0,0 +1,114 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EphemerisRange.hpp
+ * Computation of range and associated quantities from EphemerisStore
+ */
+
+#ifndef EPHEMERIS_RANGE_HPP
+#define EPHEMERIS_RANGE_HPP
+
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "Position.hpp"
+#include "EphemerisStore.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemcalc */
+ //@{
+
+ /** class CorrectedEphemerisRange. Compute the corrected range from receiver
+ * at position Rx, to the GPS satellite given by SatID sat, as well as azimuth,
+ * elevation, etc., given a nominal timetag (either received or transmitted
+ * time) and an EphemerisStore.
+ */
+ class CorrectedEphemerisRange
+ {
+ public:
+ /// Default constructor.
+ CorrectedEphemerisRange() {}
+
+ /// Compute the corrected range at RECEIVE time, from receiver at
+ /// position Rx, to the GPS satellite given by SatID sat, as well as all
+ /// the CER quantities, given the nominal receive time tr_nom and
+ /// an EphemerisStore.
+ double ComputeAtReceiveTime(const DayTime& tr_nom,
+ const Position& Rx, const SatID sat, const EphemerisStore& Eph);
+
+ /// Compute the corrected range at TRANSMIT time, from receiver at
+ /// position Rx, to the GPS satellite given by SatID sat, as well as all
+ /// the CER quantities, given the nominal receive time tr_nom and
+ /// an EphemerisStore.
+ double ComputeAtTransmitTime(const DayTime& tr_nom, const double& pr,
+ const Position& Rx, const SatID sat, const EphemerisStore& Eph);
+
+ /// The computed raw (geometric) range in meters.
+ double rawrange;
+ /// The satellite clock bias in meters.
+ double svclkbias;
+ /// The satellite clock drift in m/s.
+ double svclkdrift;
+ /// The relativity correction in meters.
+ double relativity;
+ /// The satellite elevation (spheroidal), as seen at the receiver, in degrees.
+ double elevation;
+ /// The satellite azimuth (spheroidal), as seen at the receiver, in degrees.
+ double azimuth;
+ /// The satellite elevation (geodetic), as seen at the receiver, in degrees.
+ double elevationGeodetic;
+ /// The satellite azimuth (geodetic), as seen at the receiver, in degrees.
+ double azimuthGeodetic;
+ /// The computed transmit time of the signal.
+ DayTime transmit;
+ /// The direction cosines of the satellite, as seen at the receiver (XYZ).
+ Triple cosines;
+ /// The satellite position (m) and velocity (m/s) in ECEF coordinates.
+ Xvt svPosVel;
+
+ }; // end class CorrectedEphemerisRange
+
+ /// Compute relativity correction (seconds) from the satellite position and velocity
+ double RelativityCorrection(const Xvt& svPosVel);
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/EphemerisStore.hpp b/dev/src/EphemerisStore.hpp
new file mode 100644
index 0000000..df874c0
--- /dev/null
+++ b/dev/src/EphemerisStore.hpp
@@ -0,0 +1,129 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file EphemerisStore.hpp
+ * Base for ephemeris storage classes
+ */
+
+#ifndef GPSTK_EPHEMERISSTORE_HPP
+#define GPSTK_EPHEMERISSTORE_HPP
+
+#include <iostream>
+#include <string>
+#include <list>
+#include <map>
+
+#include "Exception.hpp"
+#include "SatID.hpp"
+#include "DayTime.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ /// This class defines an interface to hide how we are getting an SV's
+ /// position at some point in time.
+ class EphemerisStore
+ {
+ public:
+ /// Thrown when attempting to read an ephemeris that isn't stored.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(NoEphemerisFound, gpstk::Exception);
+
+ /// Thrown when attempting to read TGD from an ephemeris that doesn't have it.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(NoTGDFound, gpstk::Exception);
+
+ /// destructor.
+ virtual ~EphemerisStore() {}
+
+ /** This returns the PVT of the SV in ECEF coordinates at the
+ * indicated time.
+ * @param sat the SV's SatID
+ * @param t the time to look up
+ * @return the Xvt of the SV at time t
+ */
+ virtual Xvt getSatXvt(SatID sat,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound) = 0;
+
+ /// \deprecated use the SatID version getSatXvt
+ virtual Xvt getPrnXvt(short prn,
+ const gpstk::DayTime& t) const
+ throw(NoEphemerisFound) = 0;
+
+ /** This method returns the Total Group Delay of the SV (in meters) at the
+ * indicated time.
+ * @param sat the SV's SatID
+ * @param t the time to look up
+ * @return the TGD (in meters) of the SV at time t
+ */
+ virtual double getTGD(SatID sat, const gpstk::DayTime& t) const
+ throw(NoTGDFound) { return 0.0; }
+
+ /** Dumps all the ephemeris data stored in this object.
+ * @param detail the level of detail to provide
+ */
+ virtual void dump(short detail = 0,
+ std::ostream& s = std::cout) const = 0;
+
+ /// Edit the dataset, removing data outside this time interval
+ virtual void edit(const DayTime& tmin,
+ const DayTime& tmax
+ = DayTime(DayTime::END_OF_TIME) ) = 0;
+
+ /** Return the time of the first ephemeris in the object.
+ * @return the time of the first ephemeris in the object
+ */
+ virtual gpstk::DayTime getInitialTime() const = 0;
+
+ /** Return the time of the last ephemeris in the object.
+ * @return the time of the last ephemeris in the object
+ */
+ virtual gpstk::DayTime getFinalTime() const = 0;
+
+ }; // end class EphemerisStore
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/EpochClockModel.hpp b/dev/src/EpochClockModel.hpp
new file mode 100644
index 0000000..35dba53
--- /dev/null
+++ b/dev/src/EpochClockModel.hpp
@@ -0,0 +1,110 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef EPOCHCLOCKMODEL_HPP
+#define EPOCHCLOCKMODEL_HPP
+
+#include <map>
+#include "Exception.hpp"
+#include "gps_constants.hpp"
+
+#include "ObsClockModel.hpp"
+#include "ORDEpoch.hpp"
+
+/**
+ * @file EpochClockModel.hpp
+ * Finally a concrete class. This model just uses an epoch of ORDs to determine
+ * the clock offset at that point in time.
+ */
+
+namespace gpstk
+{
+ class EpochClockModel : public ObsClockModel
+ {
+ public:
+ EpochClockModel(double sigma = 2,
+ double elmask = 0,
+ SvMode mode = ALWAYS)
+ : ObsClockModel(sigma, elmask, mode), valid(false), clkc(0){}
+
+ virtual double getOffset(const gpstk::DayTime& t) const
+ throw(gpstk::InvalidArgumentException)
+ {
+ if (t!=time)
+ {
+ gpstk::InvalidArgumentException e;
+ GPSTK_THROW(e);
+ }
+ return clkc;
+ };
+
+ virtual bool isOffsetValid(const gpstk::DayTime& t) const
+ throw(gpstk::InvalidArgumentException)
+ {
+ if (t!=time)
+ {
+ gpstk::InvalidArgumentException e;
+ GPSTK_THROW(e);
+ }
+ return valid;
+ };
+
+
+ // An unchecked accessor for programs that don't need the generic
+ // interface
+ double getOffset() const
+ throw() {return clkc;};
+
+ bool isOffsetValid() const
+ throw() {return valid;};
+
+ virtual void addEpoch(const ORDEpoch& oe) throw(gpstk::InvalidValue)
+ {
+ gpstk::Stats<double> stat = simpleOrdClock(oe);
+ clkc = stat.Average();
+ valid = stat.N() >= 3; /// we need at least three to have a real avg
+ time = oe.time;
+ }
+
+ private:
+ gpstk::DayTime time; ///< The time of this offset
+ double clkc; ///< clock bias value (same units as residuals)
+ bool valid; ///< flag indicating clock bias statistical validity
+ };
+}
+#endif
diff --git a/dev/src/Exception.cpp b/dev/src/Exception.cpp
new file mode 100644
index 0000000..47966e1
--- /dev/null
+++ b/dev/src/Exception.cpp
@@ -0,0 +1,222 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Exception.cpp
+ * Exceptions for all of GPSTK, including location information
+ */
+
+#include <sstream>
+#include "Exception.hpp"
+
+using std::ostream;
+using std::ostringstream;
+using std::streambuf;
+using std::string;
+using std::endl;
+
+namespace gpstk
+{
+
+ void ExceptionLocation::dump(ostream& s) const
+ throw()
+ {
+ s << getFileName() << ":"
+#ifdef __FUNCTION__
+ << getFunctionName() << ":"
+#endif
+ << getLineNumber();
+ }
+
+ Exception::Exception()
+ throw()
+ {
+ }
+
+ Exception::Exception(const string& errorText,
+ const unsigned long& errId,
+ const Severity& sever)
+ throw()
+ {
+ text.push_back(errorText);
+ errorId = errId;
+ severity = sever;
+ }
+
+ Exception::Exception(const Exception& e)
+ throw()
+ : errorId(e.errorId),
+ locations(e.locations),
+ severity(e.severity),
+ text(e.text),
+ streamBuffer(e.streamBuffer)
+ {}
+
+ Exception& Exception::operator=(const Exception& e)
+ throw()
+ {
+ errorId = e.errorId;
+ locations = e.locations;
+ severity = e.severity;
+ text = e.text;
+ // reuse existing stream objects, no matter.
+ //streambuf(), ostream((streambuf*)this),
+ streamBuffer = e.streamBuffer;
+
+ return *this;
+ }
+
+ Exception& Exception::addLocation(
+ const ExceptionLocation& location)
+ throw()
+ {
+ locations.push_back(location);
+ return *this;
+ }
+
+ const ExceptionLocation Exception::getLocation(
+ const size_t& index) const
+ throw()
+ {
+ if (index < 0 || index>=getLocationCount())
+ {
+ return ExceptionLocation();
+ }
+ else
+ {
+ return locations[index];
+ }
+ }
+
+ size_t Exception::getLocationCount() const
+ throw()
+ {
+ return locations.size();
+ }
+
+ Exception& Exception::addText(const string& errorText)
+ throw()
+ {
+ text.push_back(errorText);
+ return *this;
+ }
+
+ string Exception::getText(const size_t& index) const
+ throw()
+ {
+ if (index < 0 || index>=getTextCount())
+ {
+ string tmp;
+ return tmp;
+ }
+ else
+ {
+ return text[index];
+ }
+ }
+
+ size_t Exception::getTextCount() const
+ throw()
+ {
+ return text.size();
+ }
+
+ void Exception::dump(ostream& s) const
+ throw()
+ {
+ int i;
+ for (i=0; i<getTextCount(); i++)
+ {
+ s << "text " << i << ":" << this->getText(i) << endl;
+ }
+ for (i=0; i<getLocationCount(); i++)
+ {
+ s << "location " << i << ":" << getLocation(i).what() << endl;
+ }
+ }
+
+ int Exception::overflow(int c)
+ {
+ if (c == '\n' || !c)
+ {
+ if (streamBuffer.length() == 0)
+ {
+ return c;
+ }
+ addText(streamBuffer);
+ streamBuffer = "";
+ return c;
+ }
+ streamBuffer.append(1, (char)c);
+ return c;
+ }
+
+ string ExceptionLocation::what() const
+ throw()
+ {
+ ostringstream oss;
+ this->dump(oss);
+ return oss.str();
+ }
+
+ string Exception::what() const
+ throw()
+ {
+ ostringstream oss;
+ this->dump(oss);
+ return oss.str();
+ }
+
+ ostream& operator<<( ostream& s,
+ const Exception& e )
+ throw()
+ {
+ e.dump(s);
+ return s;
+ }
+
+ ostream& operator<<( ostream& s,
+ const ExceptionLocation& e )
+ throw()
+ {
+ e.dump(s);
+ return s;
+ }
+
+} // namespace gpstk
+
diff --git a/dev/src/Exception.hpp b/dev/src/Exception.hpp
new file mode 100644
index 0000000..2c52856
--- /dev/null
+++ b/dev/src/Exception.hpp
@@ -0,0 +1,479 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file Exception.hpp
+ * Exceptions for all of GPSTK, including location information
+ */
+
+// The unusual include macro below is done this way because xerces
+// #defines EXCEPTION_HPP in their own exception class header file.
+#ifndef GPSTK_EXCEPTION_HPP
+#define GPSTK_EXCEPTION_HPP
+
+#include <iostream>
+#include <vector>
+#include <string>
+
+namespace gpstk
+{
+ /**
+ * @defgroup exceptiongroup Exception Classes
+ * These classes are the exceptions that can be thrown in
+ * the library code. Use these in your catch() blocks
+ * and you'll be able to get more information
+ * than what std::exception provides. Use GPSTK_THROW()
+ * and GPSTK_RETHROW() to throw or rethrow these exceptions
+ * to automatically add line and file information to your
+ * exceptions..
+ */
+
+ /// A class for recording locations (in the source code) of
+ /// exceptions being thrown.
+ class ExceptionLocation
+ {
+ public:
+ /**
+ * Constructor for location information.
+ * @param filename name of source file where exception occurred.
+ * @param funcName name of function where exception occurred.
+ * @param lineNum line of source file where exception occurred.
+ */
+ ExceptionLocation(const std::string& filename = std::string(),
+ const std::string& funcName = std::string(),
+ const unsigned long& lineNum = 0)
+ throw()
+ : fileName(filename), functionName(funcName),
+ lineNumber(lineNum)
+ { }
+
+ /**
+ * Destructor.
+ */
+ ~ExceptionLocation() throw() {}
+
+ /// Accessor for name of source file where exception occurred.
+ std::string getFileName() const
+ throw()
+ { return fileName; }
+ /// Accessor for name of function where exception occurred.
+ std::string getFunctionName() const
+ throw()
+ { return functionName; }
+ /// Accessor for line of source file where exception occurred.
+ unsigned long getLineNumber() const
+ throw()
+ { return lineNumber; }
+
+ /**
+ * Debug output function.
+ * @param s stream to output debugging information for this class to.
+ */
+ void dump(std::ostream& s) const throw();
+
+ /// Dump to a string
+ std::string what() const throw();
+
+ /**
+ * Output stream operator for ::ExceptionLocation.
+ * This is intended just to dump all the data in the
+ * ::ExceptionLocation to the indicated stream. \warning Warning: It
+ * will _not_ preserve the state of the stream.
+ * @param s stream to send ::ExceptionLocation information to.
+ * @param e ::ExceptionLocation to "dump".
+ * @return a reference to the stream \c s.
+ */
+ friend std::ostream& operator<<( std::ostream& s,
+ const ExceptionLocation& e )
+ throw();
+
+ private:
+ /// Name of source file where exception occurred.
+ std::string fileName;
+ /// Name of function where exception occurred.
+ std::string functionName;
+ /// Line in source file where exception occurred.
+ unsigned long lineNumber;
+ }; // class ExceptionLocation
+
+ /**
+ * The Exception class is the base class from which all
+ * exception objects thrown in the library are derived. None of
+ * the functions in this class throws exceptions because an
+ * exception has probably already been thrown or is about to be
+ * thrown. Each exception object contains the following:
+ * - A stack of exception message text strings (descriptions).
+ * - An error ID.
+ * - A severity code.
+ * - An error code group.
+ * - Information about where the exception was thrown.
+ *
+ * Exception provides all of the functions required for it and
+ * its derived classes, including functions that operate on the
+ * text strings in the stack.
+ *
+ * @sa exceptiontest.cpp for some examples of how to use this class.
+ *
+ * @ingroup exceptiongroup
+ */
+ class Exception
+ {
+ public:
+ /// Exception severity classes.
+ enum Severity
+ {
+ unrecoverable, /**< program can not recover from this exception */
+ recoverable /**< program can recover from this exception */
+ };
+
+ /**
+ * Default constructor.
+ * Does nothing.
+ */
+ Exception() throw();
+
+ /**
+ * Full constructor for exception.
+ * @param errorText text message detailing exception.
+ * @param errorId error code related to exception e.g. MQ result
+ * code.
+ * @param severity severity of error.
+ */
+ Exception(const std::string& errorText,
+ const unsigned long& errorId = 0,
+ const Severity& severity = unrecoverable)
+ throw();
+ /// Copy constructor.
+ Exception(const Exception& exception)
+ throw();
+ /// Destructor.
+ ~Exception()
+ throw()
+ {};
+
+ /// Assignment operator.
+ Exception& operator=(const Exception& e)
+ throw();
+
+ /**
+ * Ends the application. Normally, the library only intends
+ * this function to be used internally by the library's
+ * exception-handling macros when the compiler you are using
+ * does not support C++ exception handling. This only occurs
+ * if you define the NO_EXCEPTIONS_SUPPORT macro.
+ */
+ void terminate()
+ throw()
+ { exit(1); };
+
+ /// Returns the error ID of the exception.
+ unsigned long getErrorId() const
+ throw()
+ { return errorId; };
+
+ /**
+ * Sets the error ID to the specified value.
+ * @param errId The identifier you want to associate with
+ * this error.
+ */
+ Exception& setErrorId(const unsigned long& errId)
+ throw()
+ { errorId = errId; return *this; };
+
+ /**
+ * Adds the location information to the exception object. The
+ * library captures this information when an exception is
+ * thrown or rethrown. An array of ExceptionLocation objects
+ * is stored in the exception object.
+ *
+ * @param location An IExceptionLocation object containing
+ * the following:
+ * \li Function name
+ * \li File name
+ * \li Line number where the function is called
+ */
+ Exception& addLocation(const ExceptionLocation& location)
+ throw();
+
+ /**
+ * Returns the ExceptionLocation object at the specified index.
+ * @param index If the index is not valid, a 0
+ * pointer is returned. (well, not really since someone
+ * changed all this bah)
+ */
+ const ExceptionLocation getLocation(const size_t& index=0) const
+ throw();
+
+ /// Returns the number of locations stored in the exception
+ /// location array.
+ size_t getLocationCount() const
+ throw();
+
+ /**
+ * If the thrower (that is, whatever creates the exception)
+ * determines the exception is recoverable, 1 is returned. If
+ * the thrower determines it is unrecoverable, 0 is returned.
+ */
+ bool isRecoverable() const
+ throw()
+ { return (severity == recoverable); }
+
+ /**
+ * Sets the severity of the exception.
+ * @param sever Use the enumeration Severity to specify
+ * the severity of the exception.
+ */
+ Exception& setSeverity(const Severity& sever)
+ throw()
+ { severity = sever; return *this; };
+
+ /**
+ * Appends the specified text to the text string on the top
+ * of the exception text stack.
+ * @param errorText The text you want to append.
+ */
+ Exception& addText(const std::string& errorText)
+ throw();
+
+ /**
+ * Returns an exception text string from the exception text
+ * stack.
+ *
+ * @param index The default index is 0, which is the
+ * top of the stack. If you specify an index which is not
+ * valid, a 0 pointer is returned.
+ */
+ std::string getText(const size_t& index=0) const
+ throw();
+
+ /// Returns the number of text strings in the exception text stack.
+ size_t getTextCount() const
+ throw();
+
+ /// Returns the name of the object's class.
+ std::string getName() const
+ throw()
+ { return "Exception"; };
+
+ /**
+ * Debug output function.
+ * @param s stream to output debugging information for this class to.
+ */
+ void dump(std::ostream& s) const
+ throw();
+
+ /// Dump to a string
+ std::string what() const throw();
+
+ /**
+ * Output stream operator for ::Exception.
+ * This is intended just to dump all the data in the ::Exception to
+ * the indicated stream. \warning Warning: It will _not_ preserve
+ * the state of the stream.
+ * @param s stream to send ::Exception information to.
+ * @param e ::Exception to "dump".
+ * @return a reference to the stream \c s. */
+ friend std::ostream& operator<<( std::ostream& s,
+ const Exception& e )
+ throw();
+
+ protected:
+ /// Error code.
+ unsigned long errorId;
+ /// Stack of exception locations (where it was thrown).
+ std::vector<ExceptionLocation> locations;
+ /// Severity of exception.
+ Severity severity;
+ /// Text stack describing exception condition.
+ std::vector<std::string> text;
+
+ /**
+ * This is the streambuf function that actually outputs the
+ * data to the device. Since all output should be done with
+ * the standard ostream operators, this function should never
+ * be called directly. In the case of this class, the
+ * characters to be output are stored in a buffer and added
+ * to the exception text after each newline.
+ */
+ int overflow(int c);
+
+ private:
+ /// Buffer for stream output.
+ std::string streamBuffer;
+ }; // class Exception
+
+
+} // namespace gpstk
+
+
+/**
+ * Just a comment for the wary. These following macros are quite
+ * useful. They just don't work under gcc 2.96/linux. If you can fix
+ * them I would be quite greatful but I am not holding my breath. For
+ * now, I am just manually putting the code where it needs to be. The
+ * problem seems to be with the __FILE__, __FUNCTION__, LINE__ being
+ * defined in a macro that is in a .hpp file as opposed to the .cpp
+ * file where the code gets used. When you do it you get a segfault.
+ * See the exceptiontest.cpp code in the base/test directory.
+ */
+#if defined ( __FUNCTION__ )
+#define FILE_LOCATION gpstk::ExceptionLocation(__FILE__, __FUNCTION__, __LINE__)
+#else
+#define FILE_LOCATION gpstk::ExceptionLocation(__FILE__, "", __LINE__)
+#endif
+
+// For compilers without exceptions, die if you get an exception.
+#if defined (NO_EXCEPTIONS_SUPPORT)
+/// A macro for adding location when throwing an gpstk::Exception
+/// @ingroup exceptiongroup
+#define GPSTK_THROW(exc) { exc.addLocation(FILE_LOCATION); exc.terminate(); }
+/// A macro for adding location when rethrowing an gpstk::Exception
+/// @ingroup exceptiongroup
+#define GPSTK_RETHROW(exc) { exc.addLocation(FILE_LOCATION); exc.terminate(); }
+#else
+/// A macro for adding location when throwing an gpstk::Exception
+/// @ingroup exceptiongroup
+#define GPSTK_THROW(exc) { exc.addLocation(FILE_LOCATION); throw exc; }
+/// A macro for adding location when rethrowing an gpstk::Exception
+/// @ingroup exceptiongroup
+#define GPSTK_RETHROW(exc) { exc.addLocation(FILE_LOCATION); throw; }
+#endif
+
+
+
+/**
+ * A macro for quickly defining a new exception class that inherits from
+ * an gpstk::Exception derived class. Use this to make specific exceptions,
+ * such as the ones defined in this header file. Make sure that all
+ * exceptions have "\@ingroup exceptiongroup" in their comment block
+ * so doxygen knows what to do with them.
+ *
+ * @ingroup exceptiongroup
+ */
+#define NEW_EXCEPTION_CLASS(child, parent) \
+class child : public parent \
+{ \
+public: \
+ /** Default constructor. */ \
+ child() throw() : parent() {} \
+ /** Copy constructor. */ \
+ child(const child& a) throw() : parent(a) {} \
+ /** Cast constructor. */ \
+ child(const gpstk::Exception& a) throw() : parent(a) {}; \
+ /** \
+ * Common use constructor. \
+ * @param a text description of exception condition. \
+ * @param b error code (default none) \
+ * @param c severity of exception (default unrecoverable) \
+ */ \
+ child(std::string a, unsigned long b = 0,\
+ gpstk::Exception::Severity c = gpstk::Exception::unrecoverable) \
+ throw() \
+ : parent(a, b, c) \
+ {};\
+ /** Destructor. */ \
+ ~child() throw() {} \
+ /** Returns the name of the exception class. */ \
+ std::string getName() const throw() {return ( # child);} \
+ /** assignment operator for derived exceptions */ \
+ child& operator=(const child& kid) \
+ { parent::operator=(kid); return *this; } \
+ /** ostream operator for derived exceptions */ \
+ friend std::ostream& operator<<(std::ostream& s, const child& c) throw() \
+ { c.dump(s); return s; } \
+}
+
+namespace gpstk
+{
+ /// Thrown when a function is given a parameter value that it invalid
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidParameter, Exception);
+
+ /// Thrown if a function can not satisfy a request
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidRequest, Exception);
+
+ /// Thrown when a required condition in a function is not met.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(AssertionFailure, Exception);
+
+ /// Thrown if a function makes a request of the OS that can't be satisfied.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(AccessError, Exception);
+
+ /// Attempts to access an "array" or other element that doesn't exist
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(IndexOutOfBoundsException, Exception);
+
+ /// A function was passed an invalid argument
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidArgumentException, Exception);
+
+ /// Application's configuration is invalid
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(ConfigurationException, Exception);
+
+ /// Attempted to open a file that doesn't exist
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(FileMissingException, Exception);
+
+ /// A problem using a system semaphore
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(SystemSemaphoreException, Exception);
+
+ /// A problem using a system pipe
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(SystemPipeException, Exception);
+
+ /// A problem using a system queue
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(SystemQueueException, Exception);
+
+ /// Unable to allocate memory
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(OutOfMemory, Exception);
+
+ /// Operation failed because it was unable to locate the requested obj
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(ObjectNotFound, AccessError);
+
+} // namespace gpstk
+#endif
+
+
+
diff --git a/dev/src/Expression.cpp b/dev/src/Expression.cpp
new file mode 100644
index 0000000..99b4281
--- /dev/null
+++ b/dev/src/Expression.cpp
@@ -0,0 +1,606 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+/**
+ * @file Expression.cpp
+ * Provides ability to resolve mathematical functions at runtime.
+ * Class definitions.
+ */
+
+#include <sstream>
+#include <map>
+#include <list>
+#include <vector>
+#include <string>
+#include <ctype.h>
+#include <math.h>
+
+#include "icd_200_constants.hpp"
+#include "StringUtils.hpp"
+#include "Expression.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+
+namespace gpstk
+{
+
+ double Expression::BinOpNode::getValue()
+ throw (gpstk::Expression::ExpressionException)
+ {
+
+ // To get the value, compute the value of the left and
+ // right operands, and combine them with the operator.
+ double leftVal = left->getValue();
+ double rightVal = right->getValue();
+
+ if (op=="+") return leftVal + rightVal;
+ if (op=="-") return leftVal - rightVal;
+ if (op=="*") return leftVal * rightVal;
+ if (op=="/") return leftVal / rightVal;
+
+ }
+
+ double Expression::FuncOpNode::getValue()
+ throw (gpstk::Expression::ExpressionException)
+ {
+ // To get the value, compute the value of the right first
+ double rightVal = right->getValue();
+
+ if (op=="cos") return cos(rightVal);
+ if (op=="sin") return sin(rightVal);
+ if (op=="tan") return tan(rightVal);
+ if (op=="acos") return acos(rightVal);
+ if (op=="asin") return asin(rightVal);
+ if (op=="atan") return atan(rightVal);
+ if (op=="exp") return exp(rightVal);
+ if (op=="abs") return fabs(rightVal);
+ if (op=="sqrt") return sqrt(rightVal);
+ if (op=="log") return log(rightVal);
+ if (op=="log10") return log10(rightVal);
+// else THROW exception
+ }
+
+ std::ostream& Expression::FuncOpNode::print(std::ostream& ostr) {
+ ostr << op;
+ right->print(ostr);
+
+ return ostr;
+ }
+
+ std::ostream& Expression::BinOpNode::print(std::ostream& ostr) {
+ ostr << "(";
+ left->print(ostr);
+ ostr << op;
+ right->print(ostr);
+ ostr << ")";
+
+ return ostr;
+ }
+
+ void Expression::VarNode::setValue(double newValue)
+ {
+ value=newValue;
+ hasValue=true;
+ };
+
+ double Expression::VarNode::getValue(void)
+ throw (gpstk::Expression::ExpressionException)
+ {
+ if (!hasValue)
+ {
+ Expression::ExpressionException
+ ee("Variable " + name + " undefined.");
+ GPSTK_THROW(ee);
+ }
+
+ return value;
+ }
+
+ Expression::Token::Token(std::string iValue, int iPriority,
+ bool isOp=false)
+ :
+ value(iValue), priority(iPriority), used(false), resolved(false),
+ expNode(0), isOperator(isOp)
+ {
+ }
+
+ void Expression::Token::print(std::ostream& ostr)
+ {
+ ostr <<" Value '" << value;
+ ostr << "', operation priority " << priority << ", ";
+
+ if (isOperator) ostr << "operator";
+ else ostr << "not operator";
+
+ ostr << ", ";
+
+ if (used) ostr << "used,";
+ else ostr << "not used,";
+
+ if (resolved) ostr << "resolved";
+ else ostr << "not resolved ";
+
+ return;
+ }
+
+ bool Expression::operatorsDefined = false;
+ std::map<std::string,int> Expression::operatorMap;
+ std::map<std::string,std::string> Expression::argumentPatternMap;
+
+ Expression::Expression(const std::string& istr)
+ : root(0)
+ {
+ defineOperators();
+ setExpression(istr);
+ }
+
+ void Expression::setExpression(const std::string& istr)
+ {
+ dumpLists();
+ tokenize(istr);
+ buildExpressionTree();
+ }
+
+ Expression::Expression(void)
+ : root(0)
+ {
+ defineOperators();
+ setExpression("0");
+ }
+
+ Expression::Expression(const Expression& rhs)
+ {
+ defineOperators();
+ std::ostringstream ostr;
+ rhs.print(ostr);
+ setExpression(ostr.str());
+ }
+
+ Expression& Expression::operator=(const Expression& rhs)
+ {
+ std::ostringstream ostr;
+ rhs.print(ostr);
+ setExpression(ostr.str());
+ return (*this);
+ }
+
+ void Expression::dumpLists(void)
+ {
+ // first release the points tracked by this Expression
+ std::list<ExpNode *>::iterator i= eList.begin(), itemp;
+ while (i!= eList.end())
+ {
+ itemp=i;
+ itemp++;
+ delete(*i);
+ i=itemp;
+ }
+ std::list<ExpNode *> emptyENodeList;
+ eList = emptyENodeList;
+ std::list<Token> emptyTokenList;
+ tList = emptyTokenList;
+ root =0;
+ }
+
+
+ void Expression::defineOperators(void)
+ {
+ if (!operatorsDefined)
+ {
+ operatorMap["+"]=1;
+ operatorMap["-"]=1;
+ operatorMap["*"]=2;
+ operatorMap["/"]=2;
+ operatorMap["^"]=3;
+ operatorMap["cos"]=4;
+ operatorMap["sin"]=4;
+ operatorMap["tan"]=4;
+ operatorMap["acos"]=4;
+ operatorMap["asin"]=4;
+ operatorMap["atan"]=4;
+ operatorMap["exp"]=4;
+ operatorMap["abs"]=4;
+ operatorMap["sqrt"]=4;
+ operatorMap["log"]=4;
+ operatorMap["log10"]=4;
+
+ argumentPatternMap["+"]="RL";
+ argumentPatternMap["-"]="RL";
+ argumentPatternMap["*"]="RL";
+ argumentPatternMap["/"]="RL";
+ argumentPatternMap["^"]="RL";
+ argumentPatternMap["cos"]="R";
+ argumentPatternMap["sin"]="R";
+ argumentPatternMap["tan"]="R";
+ argumentPatternMap["acos"]="R";
+ argumentPatternMap["asin"]="R";
+ argumentPatternMap["atan"]="R";
+ argumentPatternMap["exp"]="R";
+ argumentPatternMap["abs"]="R";
+ argumentPatternMap["sqrt"]="R";
+ argumentPatternMap["log"]="R";
+ argumentPatternMap["log10"]="R";
+
+ operatorsDefined = true;
+ }
+ }
+
+ Expression::~Expression(void)
+ {
+ std::list<ExpNode *>::iterator i;
+ for (i=eList.begin(); i!=eList.end(); i++)
+ delete (*i);
+ }
+
+ void Expression::tokenize(const std::string& istr)
+ {
+ using namespace std;
+
+ // Remove spaces and parenthesis from the input string
+ // Must store informatin from parenthesis in another list
+ stringstream ss(istr);
+ string str;
+ char tempc;
+ vector<int> baseOrder;
+ int currentOrder = 0;
+
+ while (ss >> skipws >> tempc)
+ {
+ bool strip=false;
+
+ if (tempc == '(')
+ {
+ currentOrder+=10;
+ strip=true;
+ }
+
+ if (tempc == ')')
+ {
+ currentOrder-=10;
+ strip=true;
+ }
+
+ if (!strip)
+ {
+ baseOrder.push_back(currentOrder);
+ str.append(&tempc,1);
+ }
+ }
+
+ map<string, int>::iterator it;
+ list<int> breaks;
+ breaks.push_back(0);
+
+ // Break the expression into candidates for tokens. First known
+ // operators and functions
+ // are found and marked with as a "break" in the the string.
+ // Note the location and compute the order of operation of each.
+ // key is location in string. value is ord. of op.
+ map<int,int> breakPriority;
+
+ // Note when the breaks are due to an operator or to an operand.
+ // Each break can become a token but not all othem do.
+ // Key is location in the string, value is boolean, true for operators and functions.
+ map<int, bool> breakType;
+
+ for (it=operatorMap.begin(); it!=operatorMap.end(); it++)
+ {
+ int position = 0;
+ while ((position=str.find(it->first,position+1))!=string::npos)
+ {
+ // Account for scientific notation
+ bool sciNotation=false;
+ if ((it->first=="+") || (it->first=="-"))
+ {
+ sciNotation =
+ ( ( (str.substr(position-1,1)=="E") ||
+ (str.substr(position-1,1)=="e") ) &&
+ (isdigit(str.substr(position-2,1).c_str()[0])) &&
+ (isdigit(str.substr(position+1,1).c_str()[0])) );
+ }
+
+ if (!sciNotation)
+ {
+ breaks.push_back(position);
+ breakPriority[position] = it->second + baseOrder[position];
+ breakType[position] = true;
+
+ int operandPos = position+(it->first.size());
+ breaks.push_back(operandPos);
+ breakPriority[operandPos] = baseOrder[operandPos];
+ breakType[operandPos] = false;
+ }
+ }
+
+ }
+ breaks.push_back(str.size());
+
+ // Sort the breaks into a list
+ // Please note that sorting a linked list is expensive compared to
+ // sorting a vector or map, as the search cost is high (lists are not sorted).
+ // This should be revisited IF large expressions are handled by the GPSTk.
+ breaks.sort();
+
+ list<string> tokens;
+ list<int>::iterator ls = breaks.begin(), rs = ls; // used to identify token string
+
+ for (rs++ ;rs!=breaks.end(); rs++, ls++)
+ {
+ if (*rs!=*ls) // If not two operators in a row
+ {
+ string thisToken = str.substr(*ls,(*rs)-(*ls));
+ int thisOop = breakPriority[*ls];
+ bool isOp = breakType[*ls];
+
+ // Create the token
+ Token tok(thisToken,thisOop, isOp);
+
+ if ( tok.getOperator() )
+ tok.setArgumentPattern( argumentPatternMap[thisToken] );
+
+ // Create an expression node, save it, and link it to the token
+ ExpNode *expNode;
+
+
+ if (!isOp)
+ {
+ char testChar = thisToken.c_str()[0];
+ if (isalpha(testChar))
+ expNode = new VarNode(thisToken);
+ else
+ expNode = new ConstNode(StringUtils::asDouble(thisToken));
+ eList.push_back(expNode);
+ tok.setNode(expNode);
+ tok.setResolved(true);
+ }
+
+ // Now that the token has the best possible state, save it
+ tList.push_back(tok);
+ }
+ }
+ } // end tokenize function
+
+
+ int Expression::countResolvedTokens(void)
+ {
+ using namespace std;
+
+ list<Token>::iterator itt;
+
+ // How many have already been processed? Are we done yet?
+ int totalResolved=0;
+ for (itt = tList.begin(); itt!=tList.end(); itt++)
+ {
+ if (itt->getResolved()) totalResolved++;
+ }
+ return totalResolved;
+ }
+
+
+ void Expression::buildExpressionTree(void)
+ {
+ using namespace std;
+
+ list<Token>::iterator itt, targetToken;
+
+ if ((tList.size()==1)&&(tList.begin()->getResolved()))
+ {
+ root = tList.begin()->getNode();
+ return;
+ }
+
+ int totalResolved = countResolvedTokens();
+
+ while (totalResolved<tList.size())
+ {
+
+ //
+ // Step through tokens to find the value for the highest priority
+ // that doesn not yet have an expression node ExpNode assigned to it.
+ // A subtle but important sideeffect of this traversal is taht
+ // operators with the same priority get evaluated from right to
+ // left.
+ itt=tList.begin();
+ int highestP = -1;
+
+ for (itt = tList.begin(); itt !=tList.end(); itt++)
+ {
+ if ( itt->getOperator() && !itt->getResolved() )
+ {
+ if (itt->getPriority()>highestP)
+ {
+ targetToken = itt;
+ highestP=itt->getPriority();
+ }
+ }
+ }
+
+ if ( targetToken->getOperator() )
+ {
+ // Find the arg(s) for this operator.
+ list<Token>::iterator leftArg=targetToken, rightArg=leftArg;
+
+ stringstream argstr(targetToken->getArgumentPattern());
+ char thisArg;
+ bool searching;
+
+ while (argstr >> thisArg)
+ {
+ switch (thisArg) {
+ case 'R':
+ searching = true;
+
+ while (searching)
+ {
+ if (rightArg==tList.end())// TODO throw exception
+ cout << "Mistake, no right arg for " << targetToken->getValue() << endl;
+ else
+ rightArg++;
+
+ searching = (rightArg->getUsed());
+ }
+
+ break;
+
+ case 'L':
+
+ // Resolve left arg
+ searching=true;
+
+ while (searching)
+ {
+ if (leftArg == tList.begin()) // TODO throw
+ cout << "Mistake - no right argument for operator?!" << endl;
+ else
+ leftArg--;
+
+ searching = (leftArg->getUsed());
+ }
+
+ break;
+ } // end of argumentPattern cases
+ } // done processing argument list
+
+
+ if (targetToken->getArgumentPattern()=="RL")
+ {
+ ExpNode *opNode =
+ new BinOpNode(targetToken->getValue(),leftArg->getNode(), rightArg->getNode());
+ targetToken->setNode(opNode);
+ eList.push_back(opNode);
+
+ targetToken->setResolved(true);
+ root = targetToken->getNode();
+
+ leftArg->setUsed();
+ rightArg->setUsed();
+ }
+
+ if (targetToken->getArgumentPattern()=="R")
+ {
+ ExpNode *opNode =
+ new FuncOpNode(targetToken->getValue(),rightArg->getNode());
+ targetToken->setNode(opNode);
+
+ eList.push_back(opNode);
+
+ targetToken->setResolved(true);
+ root = targetToken->getNode();
+
+ rightArg->setUsed();
+ }
+
+ } // If this is an operator
+
+ // Are we done yet?
+ totalResolved = countResolvedTokens();
+ }
+
+ } // end buildExpressionTree
+
+
+ bool Expression::set(const std::string name, double value)
+ {
+ using namespace std;
+
+ bool gotSet;
+
+ std::list<ExpNode *>::iterator i;
+ int t;
+
+ for (t=0, i=eList.begin(); i!=eList.end(); t++, i++)
+ {
+ VarNode *vnode = dynamic_cast<VarNode *> (*i);
+ if (vnode!=0)
+ {
+ if (StringUtils::upperCase(vnode->name) ==
+ StringUtils::upperCase(name))
+ {
+ vnode->setValue(value);
+ gotSet = true;
+ }
+ }
+ }
+
+ return gotSet;
+ }
+
+
+ bool Expression::canEvaluate(void)
+ {
+ using namespace std;
+
+ bool areSet=true;
+
+ std::list<ExpNode *>::iterator i;
+ int t;
+
+ for (t=0, i=eList.begin(); i!=eList.end(); t++, i++)
+ {
+ VarNode *vnode = dynamic_cast<VarNode *> (*i);
+ if (vnode!=0)
+ {
+ areSet &= vnode->hasValue;
+ }
+ }
+
+ return areSet;
+ }
+
+ bool Expression::setGPSConstants(void)
+ {
+ bool gotSet = false;
+
+ gotSet |= set("gamma",(L1_FREQ / L2_FREQ)*(L1_FREQ / L2_FREQ));
+ gotSet |= set("pi",PI);
+ gotSet |= set("c",C_GPS_M);
+ gotSet |= set("c_gps_m",C_GPS_M);
+ gotSet |= set("f1",L1_FREQ);
+ gotSet |= set("f2",L2_FREQ);
+ gotSet |= set("l1",L1_FREQ);
+ gotSet |= set("l2",L2_FREQ);
+ gotSet |= set("wl1",C_GPS_M/L1_FREQ);
+ gotSet |= set("wl2",C_GPS_M/L2_FREQ);
+ return gotSet;
+ }
+
+ bool Expression::setRinexObs(const RinexObsData::RinexObsTypeMap& rotm)
+ {
+ bool gotSet = false;
+
+ RinexObsData::RinexObsTypeMap::const_iterator i;
+ for (i=rotm.begin(); i!=rotm.end(); i++)
+ {
+ gotSet |= set(i->first.type, i->second.data);
+ }
+
+ return gotSet;
+ }
+
+
+} // end namespace gpstk
+
diff --git a/dev/src/Expression.hpp b/dev/src/Expression.hpp
new file mode 100644
index 0000000..734f5a5
--- /dev/null
+++ b/dev/src/Expression.hpp
@@ -0,0 +1,329 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+/**
+ * @file Expression.hpp
+ * Provides ability to resolve mathematical functions at runtime.
+ * Class declarations.
+ */
+
+#ifndef EXPRESSION__HPP
+#define EXPRESSION__HPP
+
+#include <iostream>
+#include <string>
+#include <list>
+#include <map>
+
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup math */
+ //@{
+
+ /**
+ * This class provides the ability to resolve general mathematical
+ * expressions at run time. The goal is to allow the end user the
+ * ability to specify arbitrary observation transformations.
+ *
+ * The expression is input as a string in the constructor of the class.
+ * The expression is first broken up into tokens. Those tokens are
+ * prioritized according to operator precedence and the number of
+ * parentheses surrounding them. This list of prioritized combinations
+ * is then converted into a 'classic" binary expression tree. All this
+ * happens during construction, hidden to the user.
+ *
+ * The design of the expression node classes is based on
+ * material by David Eck and Scotty Orr found at
+ *
+ * http://math.hws.edu/orr/s04/cpsc225/btrees/index.html
+ *
+ * After the expression is instantiated, it can be evaluated. If the
+ * expression contains variables, those must be set using the set
+ * operation for the expression to successfully evaluate.
+ *
+ */
+
+ class Expression
+ {
+ public:
+
+ NEW_EXCEPTION_CLASS(ExpressionException, gpstk::Exception);
+
+
+ /**
+ * Empty constructor
+ */
+ Expression(void);
+
+ /**
+ * Constructor.
+ * @param str Expression to be evaluated.
+ */
+ Expression(const std::string& str);
+
+ /**
+ * Copy constructor.
+ * @param expr Expression to be copied. Note that variable values are not copied.
+ */
+ Expression(const Expression& rhs);
+
+ /// Destructor
+ ~Expression(void);
+
+ /// Assignment operator.
+ Expression& operator=(const Expression& rhs);
+
+
+ /**
+ * Sets a variable in the expression to the input value.
+ * All instances of the variable are set to this value.
+ * This is required before an expression can be evaluated, if
+ * the expression contains variables.
+ * @param name Name of the variable to set
+ * @param value Value to set the variable to.
+ * @return True if the variable was found.
+ */
+ bool set(const std::string name, double value);
+
+ /**
+ * Sets a variable in the expression to the input value.
+ * All instances of the variable are set to this value.
+ * This is required before an expression can be evaluated, if
+ * the expression contains variables. In the search, case
+ * is not important (e.g., "c" and "C" would be a match).
+ * @param name Name of the variable to set
+ * @param value Value to set the variable to.
+ * @return True if the variable was found.
+ */
+ bool set(const char* name, double value)
+ { return set (std::string(name),value); }
+
+ /**
+ * Sets multiple variables in the expression to constants associated
+ * with GPS. Predefined variables include: PI; C (meters per
+ * second); L1 and L2, carrier frequencies in cycles per second;
+ * WL1 and WL2, carrier
+ * wavelengths. As with other variables, the case is insensitive.
+ * @return True if any GPS related constants were found
+ */
+ bool setGPSConstants(void);
+
+ /**
+ * Sets multiple variables in the expression using values stored
+ * in a RinexObsType stucture. This structure is nested within the
+ * RinexObsData class.
+ * @param rotm Map of RinexObsType to RinexObsDatum
+ * @return True if an obs variable was found.
+ */
+ bool setRinexObs(const RinexObsData::RinexObsTypeMap& rotm);
+
+ /**
+ * Checks in advance if all variables have been set.
+ * @return True if all variables are set.
+ */
+ bool canEvaluate(void);
+
+ /**
+ * Returns the numerical value of the expression. Note that
+ * if the expression contains variables, those variables must
+ * be set.
+ */
+ double evaluate(void) throw (gpstk::Expression::ExpressionException)
+ { return root->getValue(); }
+
+ /**
+ * Writes the expression out to a stream.
+ */
+ void print(std::ostream& ostr) const {root->print(ostr);}
+
+ private:
+ // Represents a node of any type in an expression tree.
+ class ExpNode {
+ public:
+
+ virtual ~ExpNode() {}
+
+ // Compute and return the numerical value of this node
+ virtual double getValue()
+ throw (gpstk::Expression::ExpressionException) =0;
+
+
+ // Write out this node to a stream
+ virtual std::ostream& print(std::ostream& ostr) =0;
+
+ }; // end class ExpNode
+
+
+ // Represents a node that holds a number.
+ class ConstNode : public ExpNode {
+ public:
+ // Constructor. Create a node to hold val.
+ ConstNode( double theNum ): number(theNum) {}
+
+ double getValue() throw (gpstk::Expression::ExpressionException)
+ { return number; }
+
+ std::ostream& print(std::ostream& ostr) {
+ ostr << number;
+ return ostr;
+ }
+
+ double number; // The number in the node.
+ }; // end class ConstNode
+
+ // Represents a node that holds a variable
+ class VarNode : public ExpNode {
+ public:
+ // Constructor.
+
+ VarNode(std::string theName ): name(theName), hasValue(false)
+ {}
+
+ double getValue() throw (gpstk::Expression::ExpressionException);
+
+ std::ostream& print(std::ostream& ostr) {
+ ostr << name;
+ return ostr;
+ }
+
+ std::string name; // The name of the varaible
+ bool hasValue;
+
+ void setValue(double newValue);
+
+ private:
+ double value;
+
+
+ }; // end class VarNode
+
+ // Represents a node that holds an operator.
+ class BinOpNode : public ExpNode {
+ public:
+
+ // Constructor. Create a node to hold the given data.
+ BinOpNode( const std::string& theOp, ExpNode *theLeft, ExpNode *theRight ):
+ op(theOp), left(theLeft), right(theRight){}
+
+ double getValue()
+ throw (gpstk::Expression::ExpressionException);
+
+ std::ostream& print(std::ostream& ostr);
+
+ std::string op; // The operator.
+ ExpNode *left; // The left operand.
+ ExpNode *right; // The right operand.
+
+ }; // end class BinOpNode
+
+ // Represents a node that holds a function of a signle variable
+ class FuncOpNode : public ExpNode {
+ public:
+
+ // Constructor. Create a node to hold the given data.
+ FuncOpNode( const std::string& theOp, ExpNode *theRight ):
+ op(theOp), right(theRight){}
+
+ double getValue()
+ throw (gpstk::Expression::ExpressionException);
+
+ std::ostream& print(std::ostream& ostr);
+
+ std::string op; // The operator.
+ ExpNode *right; // The right operand.
+
+ }; // end class FuncOpNode
+
+ // This class is used internally, during construction of an Expression,
+ // to generate ExpNodes.
+ class Token
+ {
+ public:
+
+ Token(std::string value, int relPriority,
+ bool isOperator);
+
+ std::string getValue(void) {return value;}
+
+ int getPriority(void) {return priority;}
+
+ void setUsed(void) {used=true;}
+ bool getUsed(void) {return used;}
+
+ ExpNode * getNode(void) {return expNode;}
+ void setNode(ExpNode *newNode) {expNode = newNode; }
+
+ void setResolved(bool value) {resolved=value;}
+ bool getResolved(void) {return resolved;}
+
+ bool getOperator(void) {return isOperator;}
+ void setOperator(bool value) {isOperator = value;}
+
+ std::string getArgumentPattern(void) {return argumentPattern;}
+ void setArgumentPattern(std::string value) {argumentPattern = value;}
+
+ void print(std::ostream& ostr);
+
+ private:
+
+ std::string value;
+ bool isOperator;
+ bool resolved;
+
+ int priority;
+ ExpNode *expNode;
+ bool used; // has the node of this token been used (linked to?)
+
+ std::string argumentPattern;
+ };
+
+ void setExpression(const std::string& newExpression);
+ void dumpLists(void);
+
+ void defineOperators(void);
+ void tokenize(const std::string& str);
+ void buildExpressionTree(void);
+
+ int countResolvedTokens(void);
+
+ static std::map<std::string,int> operatorMap;
+ static std::map<std::string,std::string> argumentPatternMap;
+ static bool operatorsDefined;
+
+ std::list<Token> tList;
+ std::list<ExpNode *> eList;
+ ExpNode *root;
+ }; // End class expression
+
+
+} // End namespace gpstk
+
+#endif // EXPRESSION_HPP
diff --git a/dev/src/ExtractC1.hpp b/dev/src/ExtractC1.hpp
new file mode 100644
index 0000000..5b59aef
--- /dev/null
+++ b/dev/src/ExtractC1.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractC1.hpp
+ * This class eases C1 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractC1_GPSTK
+#define ExtractC1_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases C1 data extraction from a RinexObsData object.
+ class ExtractC1 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractC1() throw(InvalidData) : valid(false)
+ {
+ checkData = true;
+ };
+
+
+ /** Pull out the C1 observation from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with C1 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::C1);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractC1() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractCombinationData.hpp b/dev/src/ExtractCombinationData.hpp
new file mode 100644
index 0000000..af8329a
--- /dev/null
+++ b/dev/src/ExtractCombinationData.hpp
@@ -0,0 +1,149 @@
+
+/**
+ * @file ExtractCombinationData.hpp
+ * This is the base class to ease extraction of a combination of data from a RinexObsData object.
+ */
+
+#ifndef Extract_CombinationData_GPSTK
+#define Extract_CombinationData_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases the extraction of a combination of data from a RinexObsData object.
+ class ExtractCombinationData : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractCombinationData() throw(InvalidData)
+ {
+ valid = false;
+ checkData = true;
+ };
+
+
+ /** Pull out the combination of observations from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ * @param typeObs1 The #1 type of observation we want to get
+ * @param typeObs2 The #2 type of observation we want to get
+ *
+ * @return
+ * Number of satellites with this combination of observable data available
+ */
+ virtual int getData(const RinexObsData& rinexData, RinexObsHeader::RinexObsType typeObs1, RinexObsHeader::RinexObsType typeObs2) throw(InvalidData)
+ {
+ try {
+ // Let's make sure each time we start with clean Vectors
+ availableSV.resize(0);
+ obsData.resize(0);
+
+ // Create a CheckPRData object with the given limits
+ CheckPRData checker(minPRange, maxPRange);
+
+ // Let's define the "it" iterator to visit the observations PRN map
+ // RinexSatMap is a map from SatID to RinexObsTypeMap:
+ // std::map<SatID, RinexObsTypeMap>
+ RinexObsData::RinexSatMap::const_iterator it;
+ for (it = rinexData.obs.begin(); it!= rinexData.obs.end(); it++)
+ {
+ // RinexObsTypeMap is a map from RinexObsType to RinexDatum:
+ // std::map<RinexObsHeader::RinexObsType, RinexDatum>
+ RinexObsData::RinexObsTypeMap otmap;
+ // Let's define a iterator to visit the observations type map
+ RinexObsData::RinexObsTypeMap::const_iterator itObs1;
+ // The "second" field of a RinexSatMap (it) is a RinexObsTypeMap (otmap)
+ otmap = (*it).second;
+
+ // Let's find the observation type inside the RinexObsTypeMap that is "otmap"
+ itObs1 = otmap.find(typeObs1);
+
+ // Let's check if we found this type of observation
+ if (itObs1!=otmap.end())
+ {
+ // Find an itObs2 observation inside the RinexObsTypeMap that is "otmap"
+ // Let's define a iterator to visit the observations type map
+ RinexObsData::RinexObsTypeMap::const_iterator itObs2;
+ itObs2 = otmap.find(typeObs2);
+ // If we indeed found a typeObs2 observation, let's compute the combination
+ if (itObs2!=otmap.end())
+ {
+ // The "second" part of a RinexObsTypeMap is a RinexDatum, whose public
+ // attribute "data" indeed holds the actual numerical data
+ double combinationValue = getCombination((*itObs1).second.data, (*itObs2).second.data);
+
+ // Let's check that the combination is between the limits
+ if (checker.check(combinationValue) || !(checkData) )
+ {
+ // Store all relevant data of this epoch
+ availableSV = availableSV && (*it).first;
+ obsData = obsData && combinationValue;
+ }
+ }
+ }
+ } // End of data extraction from this epoch
+ }
+ catch(...) {
+ InvalidData e("Unable to get combination data from RinexObsData object");
+ GPSTK_THROW(e);
+ }
+
+ // Let's record the number of SV with this type of data available
+ numSV = (int)obsData.size();
+
+ // If everything is fine so far, then the results should be valid
+ valid = true;
+
+ return numSV;
+
+ }; // end ExtractCombinationData::getData()
+
+
+ /// Destructor
+ virtual ~ExtractCombinationData() {};
+
+
+ protected:
+ /// Compute the combination of observables. You must define this method according to your specific combination.
+ virtual double getCombination(double obs1, double obs2) throw(InvalidData) = 0;
+
+
+ }; // end class ExtractCombinationData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractD1.hpp b/dev/src/ExtractD1.hpp
new file mode 100644
index 0000000..6d0b843
--- /dev/null
+++ b/dev/src/ExtractD1.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractD1.hpp
+ * This class eases D1 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractD1_GPSTK
+#define ExtractD1_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases D1 data extraction from a RinexObsData object.
+ class ExtractD1 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractD1() throw(InvalidData) : valid(false)
+ {
+ checkData = false; // This is not code, and we don't want to check these values
+ };
+
+
+ /** Pull out the D1 observation from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with D1 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::D1);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractD1() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractD2.hpp b/dev/src/ExtractD2.hpp
new file mode 100644
index 0000000..3343895
--- /dev/null
+++ b/dev/src/ExtractD2.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractD2.hpp
+ * This class eases D2 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractD2_GPSTK
+#define ExtractD2_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases D2 data extraction from a RinexObsData object.
+ class ExtractD2 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractD2() throw(InvalidData) : valid(false)
+ {
+ checkData = false; // This is not code, and we don't want to check these values
+ };
+
+
+ /** Pull out the D2 observation from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with D2 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::D2);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractD2() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractData.hpp b/dev/src/ExtractData.hpp
new file mode 100644
index 0000000..774e091
--- /dev/null
+++ b/dev/src/ExtractData.hpp
@@ -0,0 +1,175 @@
+
+/**
+ * @file ExtractData.hpp
+ * This is the base class to ease data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractData_GPSTK
+#define ExtractData_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "Exception.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsData.hpp"
+#include "CheckPRData.hpp"
+#include "Vector.hpp"
+
+
+namespace gpstk
+{
+ /// Thrown when some problem appeared when extracting data
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidData, gpstk::Exception);
+
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This is the base class to ease data extraction from a RinexObsData object.
+ class ExtractData
+ {
+ public:
+
+ /// Return validity of data
+ inline bool isValid(void)
+ { return valid; }
+
+
+ /// Number of satellites with available data
+ int numSV;
+
+
+ /// Vector with the PRN of satellites with available data.
+ Vector<SatID> availableSV;
+
+
+ /// Vector holding the available data
+ Vector<double> obsData;
+
+
+ /// Default constructor
+ ExtractData() throw(InvalidData) : checkData(true), valid(false), minPRange(15000000.0), maxPRange(30000000.0) {};
+
+
+ /** Pull out the selected observation type from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ * @param typeObs The type of observation we want to get
+ *
+ * @return
+ * Number of satellites with this kind of data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData, RinexObsHeader::RinexObsType typeObs) throw(InvalidData)
+ {
+ try {
+ // Let's make sure each time we start with clean Vectors
+ availableSV.resize(0);
+ obsData.resize(0);
+
+ // Create a CheckPRData object with the given limits
+ CheckPRData checker(minPRange, maxPRange);
+
+ // Let's define the "it" iterator to visit the observations PRN map
+ // RinexSatMap is a map from SatID to RinexObsTypeMap:
+ // std::map<SatID, RinexObsTypeMap>
+ RinexObsData::RinexSatMap::const_iterator it;
+ for (it = rinexData.obs.begin(); it!= rinexData.obs.end(); it++)
+ {
+ // RinexObsTypeMap is a map from RinexObsType to RinexDatum:
+ // std::map<RinexObsHeader::RinexObsType, RinexDatum>
+ RinexObsData::RinexObsTypeMap otmap;
+ // Let's define a iterator to visit the observations type map
+ RinexObsData::RinexObsTypeMap::const_iterator itObs1;
+ // The "second" field of a RinexSatMap (it) is a RinexObsTypeMap (otmap)
+ otmap = (*it).second;
+
+ // Let's find the observation type inside the RinexObsTypeMap that is "otmap"
+ itObs1 = otmap.find(typeObs);
+
+ // Let's check if we found this type of observation and it is between the limits
+ if ( (itObs1!=otmap.end()) && ( (checker.check((*itObs1).second.data)) || !(checkData) ) )
+ {
+ // Store all relevant data of this epoch
+ availableSV = availableSV && (*it).first;
+ obsData = obsData && (*itObs1).second.data;
+ }
+ } // End of data extraction from this epoch
+ }
+ catch(...) {
+ InvalidData e("Unable to get data from RinexObsData object");
+ GPSTK_THROW(e);
+ }
+
+ // Let's record the number of SV with this type of data available
+ numSV = (int)obsData.size();
+
+ // If everything is fine so far, then the results should be valid
+ valid = true;
+
+ return numSV;
+
+ }; // end ExtractData::getData()
+
+
+ /// Set this to true if you want to enable data checking within given boundaries (default for code measurements)
+ bool checkData;
+
+ /// Set the minimum pseudorange value allowed for data (in meters).
+ virtual void setMinPRange(const double minPR) { minPRange = minPR; };
+
+ /// Get the minimum pseudorange value allowed for data (in meters).
+ virtual double getMinPRange(void) { return minPRange; };
+
+ /// Set the maximum pseudorange value allowed for data (in meters).
+ virtual void setMaxPRange(const double maxPR) { maxPRange = maxPR; };
+
+ /// Get the minimum pseudorange value allowed for data (in meters).
+ virtual double getMaxPRange(void) { return maxPRange; };
+
+
+ /// Destructor
+ inline virtual ~ExtractData() {};
+
+
+ protected:
+ /// True only if results are valid
+ bool valid;
+
+ /// Minimum pseudorange value allowed for input data (in meters).
+ double minPRange;
+
+ /// Maximum pseudorange value allowed for input data (in meters).
+ double maxPRange;
+
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractL1.hpp b/dev/src/ExtractL1.hpp
new file mode 100644
index 0000000..92bcf94
--- /dev/null
+++ b/dev/src/ExtractL1.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractL1.hpp
+ * This class eases L1 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractL1_GPSTK
+#define ExtractL1_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases L1 data extraction from a RinexObsData object.
+ class ExtractL1 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractL1() throw(InvalidData) : valid(false)
+ {
+ checkData = false; // This is not code, and we don't want to check these values
+ };
+
+
+ /** Pull out the L1 observation from a RinexObsData object (in cycles)
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with L1 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::L1);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractL1() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractL2.hpp b/dev/src/ExtractL2.hpp
new file mode 100644
index 0000000..0bd4fa0
--- /dev/null
+++ b/dev/src/ExtractL2.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractL2.hpp
+ * This class eases L2 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractL2_GPSTK
+#define ExtractL2_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases L2 data extraction from a RinexObsData object.
+ class ExtractL2 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractL2() throw(InvalidData) : valid(false)
+ {
+ checkData = false; // This is not code, and we don't want to check these values
+ };
+
+
+ /** Pull out the L2 observation from a RinexObsData object (in cycles)
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with L2 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::L2);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractL2() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractLC.hpp b/dev/src/ExtractLC.hpp
new file mode 100644
index 0000000..0f62048
--- /dev/null
+++ b/dev/src/ExtractLC.hpp
@@ -0,0 +1,94 @@
+
+/**
+ * @file ExtractLC.hpp
+ * This class eases LC combination data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractLC_GPSTK
+#define ExtractLC_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractCombinationData.hpp"
+#include "icd_200_constants.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases LC combination data extraction from a RinexObsData object.
+ class ExtractLC : public ExtractCombinationData
+ {
+ public:
+
+ /// Default constructor
+ ExtractLC() throw(InvalidData) : typeObs1(RinexObsHeader::L1), typeObs2(RinexObsHeader::L2)
+ {
+ valid = false;
+ checkData = false; // This is not code, and we don't want to check these values
+ };
+
+
+ /** Compute the LC observation from a RinexObsData object (in meters)
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with LC combination data available
+ */
+ virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractCombinationData::getData(rinexData, typeObs1, typeObs2);
+ }; // end ExtractLC::getData()
+
+
+ /// Destructor
+ virtual ~ExtractLC() {};
+
+
+ protected:
+ // Compute the combination of observables.
+ virtual double getCombination(double obs1, double obs2) throw(InvalidData)
+ {
+ return ( (GAMMA_GPS*obs1*L1_WAVELENGTH - obs2*L2_WAVELENGTH)/(GAMMA_GPS - 1.0) );
+ };
+
+
+ private:
+ RinexObsHeader::RinexObsType typeObs1;
+ RinexObsHeader::RinexObsType typeObs2;
+
+
+ }; // end class ExtractLC
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractP1.hpp b/dev/src/ExtractP1.hpp
new file mode 100644
index 0000000..2381f62
--- /dev/null
+++ b/dev/src/ExtractP1.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractP1.hpp
+ * This class eases P1 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractP1_GPSTK
+#define ExtractP1_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases P1 data extraction from a RinexObsData object.
+ class ExtractP1 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractP1() throw(InvalidData) : valid(false)
+ {
+ checkData = true;
+ };
+
+
+ /** Pull out the P1 observation from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with P1 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::P1);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractP1() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractP2.hpp b/dev/src/ExtractP2.hpp
new file mode 100644
index 0000000..37fc706
--- /dev/null
+++ b/dev/src/ExtractP2.hpp
@@ -0,0 +1,82 @@
+
+/**
+ * @file ExtractP2.hpp
+ * This class eases P2 data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractP2_GPSTK
+#define ExtractP2_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractData.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases P2 data extraction from a RinexObsData object.
+ class ExtractP2 : public ExtractData
+ {
+ public:
+
+ /// Default constructor
+ ExtractP2() throw(InvalidData) : valid(false)
+ {
+ checkData = true;
+ };
+
+
+ /** Pull out the P2 observation from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with P2 data available
+ */
+ inline virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractData::getData(rinexData, RinexObsHeader::P2);
+ };
+
+
+ /// Destructor
+ inline virtual ~ExtractP2() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class ExtractData
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/ExtractPC.hpp b/dev/src/ExtractPC.hpp
new file mode 100644
index 0000000..4097bd9
--- /dev/null
+++ b/dev/src/ExtractPC.hpp
@@ -0,0 +1,97 @@
+
+/**
+ * @file ExtractPC.hpp
+ * This class eases PC combination data extraction from a RinexObsData object.
+ */
+
+#ifndef ExtractPC_GPSTK
+#define ExtractPC_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "ExtractCombinationData.hpp"
+#include "icd_200_constants.hpp"
+
+namespace gpstk
+{
+
+ /** @addtogroup RinexObs */
+ //@{
+
+
+ /// This class eases PC combination data extraction from a RinexObsData object.
+ class ExtractPC : public ExtractCombinationData
+ {
+ public:
+
+ /// Default constructor
+ ExtractPC() throw(InvalidData) : typeObs1(RinexObsHeader::P1), typeObs2(RinexObsHeader::P2)
+ {
+ valid = false;
+ checkData = true;
+ };
+
+
+ /** Compute the PC observation from a RinexObsData object
+ * @param rinexData The Rinex data set holding the observations
+ *
+ * @return
+ * Number of satellites with PC combination data available
+ */
+ virtual int getData(const RinexObsData& rinexData) throw(InvalidData)
+ {
+ return ExtractCombinationData::getData(rinexData, typeObs1, typeObs2);
+ }; // end ExtractPC::getData()
+
+
+ /// Some Rinex data files provide C1 instead of P1. Use this method in those cases.
+ void useC1() { typeObs1 = RinexObsHeader::C1; };
+
+
+ /// Destructor
+ virtual ~ExtractPC() {};
+
+
+ protected:
+ // Compute the combination of observables.
+ virtual double getCombination(double obs1, double obs2) throw(InvalidData)
+ {
+ return ( (GAMMA_GPS*obs1 - obs2)/(GAMMA_GPS - 1.0) );
+ };
+
+
+ private:
+ RinexObsHeader::RinexObsType typeObs1;
+ RinexObsHeader::RinexObsType typeObs2;
+
+
+ }; // end class ExtractPC
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/FFBinaryStream.hpp b/dev/src/FFBinaryStream.hpp
new file mode 100644
index 0000000..78e5423
--- /dev/null
+++ b/dev/src/FFBinaryStream.hpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FFBinaryStream.hpp
+ * An FFStream for binary file reading
+ */
+
+#ifndef GPSTK_FFBINARYSTREAM_HPP
+#define GPSTK_FFBINARYSTREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFStream.hpp"
+
+namespace gpstk
+{
+ /** @defgroup formattedfile Formatted file I/O */
+ //@{
+
+ /**
+ * This is an FFStream that is required to be binary. It also includes
+ * functions for reading and writing binary file. Otherwise, this
+ * is the same as FFStream.
+ */
+ class FFBinaryStream : public FFStream
+ {
+ public:
+ /// destructor
+ virtual ~FFBinaryStream() {};
+
+ /// Default constructor
+ FFBinaryStream() {}
+
+ /**
+ * Constructor - opens the stream in binary mode if not set.
+ * @param fn file name.
+ * @param mode file open mode (std::ios)
+ */
+ FFBinaryStream(const char* fn,
+ std::ios::openmode mode=std::ios::in|std::ios::binary)
+ : FFStream(fn, mode|std::ios::binary) {}
+
+ /// Overrides open to ensure binary mode opens
+ virtual void open(const char* fn, std::ios::openmode mode)
+ { FFStream::open(fn, mode|std::ios::binary); }
+
+ /**
+ * Reads a T-object directly from the stream
+ * in binary form.
+ * @throw FFStreamError when the size of the data read
+ * from this stream doesn't match the size of a T-object.
+ * @return a T-object
+ */
+ template <class T> T getData() throw(FFStreamError, EndOfFile)
+ {
+ T data;
+ getData((char*)&data, sizeof(T));
+ return data;
+ } // end of getData(FFStream& strm)
+
+ void getData(char* buff, size_t length) throw(FFStreamError, EndOfFile)
+ {
+ try
+ {
+ read(buff, length);
+ }
+ catch(std::exception& exc)
+ {
+ if (gcount() != length && eof())
+ {
+ EndOfFile err("EOF encountered");
+ GPSTK_THROW(err);
+ }
+ else
+ {
+ FFStreamError err(exc.what());
+ std::cout << err << std::endl;
+ GPSTK_THROW(err);
+ }
+ }
+ catch(...)
+ {
+ FFStreamError err("Unknown exception");
+ GPSTK_THROW(err);
+ }
+ } // end of getData(char*, size_t))
+
+ /**
+ * Writes a T-object directly from the stream
+ * in binary form.
+ * @param data the data to be written.
+ * @throw FFStreamError when the size of the data written
+ * to this stream doesn't match the size of a T-object.
+ * @return a T-object
+ */
+ template <class T> void writeData(const T& data)
+ throw(FFStreamError)
+ {
+ T temp = data;
+ writeData((char*)&data, sizeof(T));
+ return;
+ } // end of writeData(FFStream& strm, const T& data)
+
+ void writeData(const char* buff, size_t length)
+ throw(FFStreamError)
+ {
+ try
+ {
+ write(buff, length);
+ }
+ catch(std::exception& exc)
+ {
+ FFStreamError err(exc.what());
+ GPSTK_THROW(err);
+ }
+ catch(...)
+ {
+ FFStreamError err("Unknown exception");
+ GPSTK_THROW(err);
+ }
+
+ if (fail() || bad())
+ {
+ FFStreamError err("Error writing data");
+ GPSTK_THROW(err);
+ }
+ return;
+ } // end of writeData(const char*, size_t)
+
+ };
+ //@}
+}
+#endif
diff --git a/dev/src/FFData.cpp b/dev/src/FFData.cpp
new file mode 100644
index 0000000..1f9c83e
--- /dev/null
+++ b/dev/src/FFData.cpp
@@ -0,0 +1,101 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FFData.cpp
+ * Formatted File Data base class
+ */
+
+#include "FFData.hpp"
+#include "FFStream.hpp"
+
+namespace gpstk
+{
+ void FFData::putRecord(FFStream& s) const
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ s.tryFFStreamPut(*this);
+ }
+
+ void FFData::getRecord(FFStream& s)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ s.tryFFStreamGet(*this);
+ }
+
+ std::ostream& operator<<(std::ostream& o, const FFData& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ FFStream* ffs = dynamic_cast<FFStream*>(&o);
+ if (ffs)
+ {
+ f.putRecord(*ffs);
+ return o;
+ }
+ else
+ {
+ FFStreamError e("operator<< stream argument must be an FFStream");
+ GPSTK_THROW(e);
+ }
+
+ }
+
+ std::istream& operator>>(std::istream& i, FFData& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ FFStream* ffs = dynamic_cast<FFStream*>(&i);
+ if (ffs)
+ {
+ f.getRecord(*ffs);
+ return i;
+ }
+ else
+ {
+ FFStreamError e("operator<< stream argument must be an FFStream");
+ GPSTK_THROW(e);
+ }
+
+ }
+}
diff --git a/dev/src/FFData.hpp b/dev/src/FFData.hpp
new file mode 100644
index 0000000..8fe8edc
--- /dev/null
+++ b/dev/src/FFData.hpp
@@ -0,0 +1,191 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FFData.hpp
+ * Formatted File Data base class
+ */
+
+#ifndef GPSTK_FFDATA_HPP
+#define GPSTK_FFDATA_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <iostream>
+#include <typeinfo>
+
+#include "FFStreamError.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup formattedfile */
+ //@{
+
+ /// Forward declaration of FFStream class and friend functions
+ class FFStream;
+
+ /**
+ * This is the base class for all Formatted File Data (FFData).
+ * The data in FFStream objects are read/written into classes derived
+ * from FFData. There are two interfaces for this - one with the
+ * operator<<() and operator>>() and the equivalent with getRecord() and
+ * putRecord().
+ *
+ * Classes that derive from this should override the reallyGetRecord()
+ * and reallyPutRecord() functions where the actual reading and
+ * writing of the data should go as well as the isHeader() or isData()
+ * functions as appropriate for the data type.
+ * Overriding dump() for debugging purposes is highly suggested.
+ *
+ * All FFData derived classes should have all of their members defined
+ * public. These are meant to be simple container classes for reading,
+ * writing, and manipulating file data. Any conversion of data types
+ * should be made in constructors or cast operators. For all FFData
+ * objects, any internal time representation for the data should be
+ * called \c time to ensure consistency between classes.
+ *
+ * Finally, for the sake of organization of the inheritence and
+ * dependency trees, all related file data classes (i.e. RinexObsData and
+ * RinexObsHeader) should derive from a common base (i.e. RinexObsBase).
+ *
+ * \sa FFStream for more information.
+ */
+ class FFData
+ {
+ public:
+ /// virtual desctuctor
+ virtual ~FFData(void) {};
+
+ /**
+ * Send a "record" to the given stream.
+ * @param s a FFStream-based stream
+ */
+ void putRecord(FFStream& s) const
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ /**
+ * Retrieve a "record" from the given stream.
+ * By default, this won't throw exceptions. You can change this
+ * by enabling exceptions with this code:
+ * \code
+ * filestream.exceptions(fstream::failbit);
+ * \endcode
+ * @param s a FFStream-based stream
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ void getRecord(FFStream& s)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ /**
+ * Send debug output to the given stream.
+ * @param s a generic output stream
+ */
+ virtual void dump(std::ostream& s) const {}
+
+ /**
+ * Returns whether or not this class is a header.
+ * Have your overriding function return the correct value.
+ */
+ virtual bool isHeader() const {return false;}
+ /**
+ * Returns whether or not this class is data.
+ * Have your overriding function return the correct value.
+ */
+ virtual bool isData() const {return false;}
+
+ /**
+ * Our generic formatted output operator
+ * This function provides compatibility with the ostream_iterator
+ * class.
+ * @param o the stream to write to
+ * @param f the data to write
+ * @return a reference to \c o
+ * @warning The ostream provided MUST be an FFStream.
+ */
+ friend std::ostream& operator<<(std::ostream& o, const FFData& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ /**
+ * Generic formatted input operator.
+ * This should throw the same exceptions as
+ * FFData::getRecord(). Please read that for more info.
+ * @see FFData::getRecord().
+ * @warning see FFData::getRecord() for more info on exceptions
+ * @param f formatted file data record.
+ * @param i the stream to read from
+ * @throw FFStreamError if the file being read is formatted
+ * incorrectly or some other file error occurs
+ * @throw StringException when StringUtils messes up.
+ * @warning read the notes for getRecord() for whatever
+ * class you'll be using this with.
+ * @return a reference to \c i.
+ * This function provides compatibility with the istream_iterator
+ * class.
+ * @warning The istream provided MUST be an FFStream.
+ */
+ friend std::istream& operator>>(std::istream& i, FFData& f)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ friend class FFStream;
+
+ protected:
+ /// Does the actual reading from the stream into this FFData object.
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError) = 0;
+
+ /// Does the actual writing from the stream into this FFData object.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError) = 0;
+ }; // class
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FFStream.cpp b/dev/src/FFStream.cpp
new file mode 100644
index 0000000..3272dd4
--- /dev/null
+++ b/dev/src/FFStream.cpp
@@ -0,0 +1,278 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FFStream.cpp
+ * Formatted File Stream base class
+ */
+
+#include "FFStream.hpp"
+
+namespace gpstk
+{
+ void FFStream::open(const char* fn, std::ios::openmode mode)
+ {
+#ifdef _MSC_VER
+ fstream::open(fn, mode);
+#else
+ std::fstream::open(fn, mode);
+#endif
+ filename = std::string(fn);
+ recordNumber = 0;
+ }
+
+ // the crazy double try block is so that no gpstk::Exception throws
+ // get masked, allowing all exception information (line numbers, text,
+ // etc) to be retained.
+ void FFStream::tryFFStreamGet(FFData& rec)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ // Mark where we start in case there is an error.
+ long initialPosition = tellg();
+ unsigned long initialRecordNumber = recordNumber;
+ clear();
+
+ try
+ {
+ try
+ {
+ rec.reallyGetRecord(*this);
+ recordNumber++;
+ }
+ catch (std::exception &e)
+ {
+ mostRecentException = FFStreamError("std::exception thrown: " +
+ std::string(e.what()));
+ mostRecentException.addText("In record " +
+ gpstk::StringUtils::asString(recordNumber));
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ clear();
+ seekg(initialPosition);
+ recordNumber = initialRecordNumber;
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ // EOF - do nothing - eof causes fail() to be set which
+ // is handled by std::fstream
+ catch (EndOfFile& e)
+ {
+ e.addText("In record " +
+ gpstk::StringUtils::asString(recordNumber));
+ e.addText("In file " + filename);
+ e.addLocation(FILE_LOCATION);
+ mostRecentException = e;
+ }
+ catch (gpstk::StringUtils::StringException& e)
+ {
+ e.addText("In record " +
+ gpstk::StringUtils::asString(recordNumber));
+ e.addText("In file " + filename);
+ e.addLocation(FILE_LOCATION);
+ mostRecentException = e;
+ clear();
+ seekg(initialPosition);
+ recordNumber = initialRecordNumber;
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ // catches some errors we can encounter
+ catch (FFStreamError& e)
+ {
+ e.addText("In record " +
+ gpstk::StringUtils::asString(recordNumber));
+ e.addText("In file " + filename);
+ e.addLocation(FILE_LOCATION);
+ mostRecentException = e;
+ clear();
+ seekg(initialPosition);
+ recordNumber = initialRecordNumber;
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ }
+ // this is if you throw an FFStream error in the above catch
+ // block because the catch(...) below will mask it otherwise.
+ // This also takes care of catching StringExceptions
+ catch (gpstk::Exception &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch (std::ifstream::failure &e)
+ {
+ // setting failbit when catching FFStreamError can cause
+ // this exception to be thrown. in this case, we don't want
+ // to lose the exception info so only make a new exception
+ // if this isn't a fail() case
+ if (!fail())
+ {
+ mostRecentException = FFStreamError("ifstream::failure thrown: " +
+ std::string(e.what()));
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ }
+ conditionalThrow();
+ }
+ catch (std::exception &e)
+ {
+ mostRecentException = FFStreamError("std::exception thrown: " +
+ std::string(e.what()));
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ catch (...)
+ {
+ mostRecentException = FFStreamError("Unknown exception thrown");
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ }
+
+ // the crazy double try block is so that no gpstk::Exception throws
+ // get masked, allowing all exception information (line numbers, text,
+ // etc) to be retained.
+ void FFStream::tryFFStreamPut(const FFData& rec)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ // Mark where we start in case there is an error.
+ long initialPosition = tellg();
+ unsigned long initialRecordNumber = recordNumber;
+ clear();
+
+ try
+ {
+ try
+ {
+ rec.reallyPutRecord(*this);
+ recordNumber++;
+ }
+ catch (std::exception &e)
+ {
+ // if this is a stream failure, don't mask it and let the
+ // later catch block handle it
+ if (dynamic_cast<std::ifstream::failure*>(&e))
+ throw;
+
+ // the catch(FFStreamError) below will add file information
+ // to this exception
+ mostRecentException = FFStreamError("std::exception thrown: " +
+ std::string(e.what()));
+ mostRecentException.addLocation(FILE_LOCATION);
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ catch (gpstk::StringUtils::StringException& e)
+ {
+ e.addText("In record " +
+ gpstk::StringUtils::asString(recordNumber));
+ e.addText("In file " + filename);
+ e.addLocation(FILE_LOCATION);
+ mostRecentException = e;
+ seekg(initialPosition);
+ recordNumber = initialRecordNumber;
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ // catches some errors we can encounter
+ catch (FFStreamError& e)
+ {
+ e.addText("In record " +
+ gpstk::StringUtils::asString(recordNumber));
+ e.addText("In file " + filename);
+ e.addLocation(FILE_LOCATION);
+ mostRecentException = e;
+ seekg(initialPosition);
+ recordNumber = initialRecordNumber;
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ }
+ // this is if you throw an FFStream error in the above catch
+ // block because the catch(...) below will mask it otherwise.
+ // This also takes care of catching StringExceptions
+ catch (gpstk::Exception &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch (std::ifstream::failure &e)
+ {
+ // setting failbit when catching FFStreamError can cause
+ // this exception to be thrown. in this case, we don't want
+ // to lose the exception info so only make a new exception
+ // if this isn't a fail() case
+ if (!fail())
+ {
+ mostRecentException = FFStreamError("ifstream::failure thrown: " +
+ std::string(e.what()));
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ }
+ conditionalThrow();
+ }
+ catch (std::exception &e)
+ {
+ mostRecentException = FFStreamError("std::exception thrown: " +
+ std::string(e.what()));
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ catch (...)
+ {
+ mostRecentException = FFStreamError("Unknown exception thrown");
+ mostRecentException.addText("In file " + filename);
+ mostRecentException.addLocation(FILE_LOCATION);
+ setstate(std::ios::failbit);
+ conditionalThrow();
+ }
+ }
+
+}
+
diff --git a/dev/src/FFStream.hpp b/dev/src/FFStream.hpp
new file mode 100644
index 0000000..5c62a1f
--- /dev/null
+++ b/dev/src/FFStream.hpp
@@ -0,0 +1,211 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FFStream.hpp
+ * Formatted File Stream, root class to provide formatted I/O operators ('<<' & '>>')
+ */
+
+#ifndef GPSTK_FFSTREAM_HPP
+#define GPSTK_FFSTREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <iostream>
+#include <fstream>
+#include <string>
+#include <typeinfo>
+
+#include "FFStreamError.hpp"
+#include "FFData.hpp"
+
+#include "StringUtils.hpp"
+
+#ifdef _MSC_VER
+using namespace std;
+#endif
+
+namespace gpstk
+{
+ /** @addtogroup formattedfile */
+ //@{
+
+ /// This gets thrown if a valid EOF occurs on formattedGetLine.
+ /// @ingroup exceptionclass
+ NEW_EXCEPTION_CLASS(EndOfFile, gpstk::FFStreamError);
+
+ /**
+ * Formatted File Stream (FFStream).
+ * This is just a root class to provice the single point formatted i/o
+ * operators (such as '<<' & '>>' ).
+ *
+ * As a special design consideration,
+ * all exceptions thrown are based on gpstk::Exception - all
+ * std::exception throws are rethrown as gpstk::Exception.
+ * Furthermore, exceptions will not be thrown unless exceptions
+ * are set to be thrown:
+ * @code
+ * fs.exceptions(std::fstream::failbit);
+ * @endcode
+ * where \c fs is the name of your file stream.
+ * Then when an exception occurs, conditionalThrow() will throw the
+ * last thrown exception.
+ * Otherwise when an exception occurs, the stream sets
+ * \c ios::fail and will not read any more. Exceptions for this
+ * class store the record number of the file for when the exception
+ * occurred as well as the file name and any detailed information
+ * about the error. For gpstk::FFTextStream, the line number
+ * of the file where the error was found is also recorded, allowing
+ * for easy location of file problems.
+ *
+ * When operating on the file, recordNumber will automatically increment
+ * with each read and write operation. When a file is opened with the
+ * constructor or with open(), all internal FFStream variables are
+ * reset. Derived classes should make sure any of their internal
+ * variables are reset when either of those function are called.
+ *
+ * Many file types have header data as part of the file format. When
+ * reading the file, the reader is not required to explicitly read in
+ * the header to access the data. To facilitate this, each of these
+ * stream classes has an internal header object that will store the
+ * header. The stream keeps track of whether it read the
+ * header or not, and reads the header if the internal state says
+ * it hasn't been read. When writing a file, the stream's
+ * internal header is used for those formats which use header information
+ * to determine what data is in the records.
+ * See RinexObsHeader::reallyGetRecord() and
+ * RinexObsData::reallyGetRecord()
+ * for an example of this.
+ *
+ * \sa FFData for more information
+ * \sa RinexObsData::reallyGetRecord() and
+ * RinexObsHeader::reallyGetRecord() for more information for files
+ * that read header data.
+ *
+ * @warning When using open(), the internal header data of the stream
+ * is not guaranteed to be retained.
+ */
+ class FFStream : public std::fstream
+ {
+ public:
+ /// virtual desctructor
+ virtual ~FFStream(void) {}
+
+ /**
+ * Default constructor
+ */
+ FFStream()
+ : recordNumber(0)
+ {}
+
+ /**
+ * Constructor.
+ * @param fn file name.
+ * @param mode file open mode (std::ios)
+ */
+ FFStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ :
+#ifdef _MSC_VER
+ fstream(fn, mode),
+#else
+ std::fstream(fn, mode),
+#endif
+ recordNumber(0), filename(fn)
+ {}
+
+ /**
+ * Overrides fstream:open so derived classes can make appropriate
+ * internal changes (line count, header info, etc).
+ */
+ virtual void open(const char* fn, std::ios::openmode mode);
+
+ /**
+ * Throws \a mostRecentException only if the stream is enabled
+ * to throw exceptions when failbit is set.
+ * You can set this behavior with the following line of code:
+ * @code
+ * ffstreamobject.exceptions(ifstream::failbit);
+ * @endcode
+ * where \a ffstreamobject is the name of your stream object.
+ */
+ inline void conditionalThrow(void) throw(FFStreamError)
+ {
+ if (exceptions() & std::fstream::failbit)
+ GPSTK_THROW(mostRecentException);
+ }
+
+ ///@name Data members
+ ///@{
+ /// This stores the most recently thrown exception.
+ FFStreamError mostRecentException;
+
+ /// keeps track of the number of records read
+ unsigned int recordNumber;
+
+ /// file name
+ std::string filename;
+ //@}
+
+ /// FFData is a friend so it can access the try* functions.
+ friend class FFData;
+
+ protected:
+ /// Encapsulates shared try/catch blocks for all file types
+ /// to hide std::exception.
+ virtual void tryFFStreamGet(FFData& rec)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ /// Encapsulates shared try/catch blocks for all file types
+ /// to hide std::exception.
+ virtual void tryFFStreamPut(const FFData& rec)
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ };
+
+ //@}
+
+} // end of namespace
+
+
+#endif
+
diff --git a/dev/src/FFStreamError.hpp b/dev/src/FFStreamError.hpp
new file mode 100644
index 0000000..6755c82
--- /dev/null
+++ b/dev/src/FFStreamError.hpp
@@ -0,0 +1,65 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FFStreamError.hpp
+ * Exceptions for FFStream
+ */
+
+#ifndef GPSTK_FFSTREAMERROR_HPP
+#define GPSTK_FFSTREAMERROR_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /// FFStreamError is an exception for when the file read doesn't
+ /// match the specs for that file type.
+ /// @ingroup exceptionclass
+ /// @ingroup formattedfile
+ NEW_EXCEPTION_CLASS(FFStreamError, gpstk::Exception);
+}
+
+#endif
diff --git a/dev/src/FFTextStream.hpp b/dev/src/FFTextStream.hpp
new file mode 100644
index 0000000..48dd541
--- /dev/null
+++ b/dev/src/FFTextStream.hpp
@@ -0,0 +1,222 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FFTextStream.hpp
+ * An FFStream for text files
+ */
+
+#ifndef GPSTK_FFTEXTSTREAM_HPP
+#define GPSTK_FFTEXTSTREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup formattedfile */
+ //@{
+
+ /**
+ * An FFStream that is meant for reading text. This also includes
+ * an internal line count and a read line method. When reading and
+ * using the formattedGetLine() call, the lineNumber automatically
+ * increments. However, any other read and all write calls do not
+ * update the line number - the derived class or programmer
+ * needs to make sure
+ * that the reader or writer increments lineNumber in these cases.
+ */
+ class FFTextStream : public FFStream
+ {
+ public:
+ /// destructor
+ virtual ~FFTextStream() {}
+
+ /// Default constructor
+ FFTextStream()
+ : lineNumber(0)
+ {}
+
+ /**
+ * Constructor.
+ * @param fn file name.
+ * @param mode file open mode (std::ios)
+ */
+ FFTextStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ : FFStream(fn, mode), lineNumber(0)
+ {}
+
+ /// Overrides open to reset the line number.
+ virtual void open(const char* fn, std::ios::openmode mode)
+ { FFStream::open(fn, mode); lineNumber = 0; }
+
+ /// the internal line count. When writing, make sure
+ /// to increment this.
+ unsigned int lineNumber;
+
+ /**
+ * Like std::istream::getline but checks for EOF and removes '/r'.
+ * Also increments lineNumber. When \a expectEOF is true and EOF
+ * is found, an gpstk::EndOfFile exception is thrown. If
+ * \a expectEOF is false and an EOF is encountered, an
+ * gpstk::FFStreamError is thrown.
+ * @param line is set to the value of the line read from the file.
+ * @param expectEOF set true if finding EOF on this read is acceptable.
+ * @throw EndOfFile if \a expectEOF is true and an EOF is encountered.
+ * @throw FFStreamError if EOF is found and \a expectEOF is false
+ * @throw gpstk::StringUtils::StringException when a string error occurs
+ * or if any other error happens.
+ * @warning There is a maximum line length of 256 characters when
+ * using this function.
+ */
+ inline void formattedGetLine(std::string& line,
+ const bool expectEOF = false)
+ throw(EndOfFile, FFStreamError, gpstk::StringUtils::StringException);
+
+
+ protected:
+ /// calls FFStream::tryFFStreamGet and adds line number information
+ virtual void tryFFStreamGet(FFData& rec)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ unsigned int initialLineNumber = lineNumber;
+
+ try
+ {
+ FFStream::tryFFStreamGet(rec);
+ }
+ catch(gpstk::Exception& e)
+ {
+ e.addText(std::string("Near file line ") +
+ gpstk::StringUtils::asString(lineNumber));
+ lineNumber = initialLineNumber;
+ mostRecentException = e;
+ conditionalThrow();
+ }
+ }
+
+ /// calls FFStream::tryFFStreamPut and adds line number information
+ virtual void tryFFStreamPut(const FFData& rec)
+ throw(FFStreamError, gpstk::StringUtils::StringException)
+ {
+ unsigned int initialLineNumber = lineNumber;
+
+ try
+ {
+ FFStream::tryFFStreamPut(rec);
+ }
+ catch(gpstk::Exception& e)
+ {
+ e.addText(std::string("Near file line ") +
+ gpstk::StringUtils::asString(lineNumber));
+ lineNumber = initialLineNumber;
+ mostRecentException = e;
+ conditionalThrow();
+ }
+ }
+
+ };
+
+ // the reason for checking ffs.eof() in the try AND catch block is
+ // because if the user enabled exceptions on the stream with exceptions()
+ // then eof could throw an exception, in which case we need to catch it
+ // and rethrow an EOF or FFStream exception. In any event, EndOfFile
+ // gets thrown whenever there's an EOF and expectEOF is true
+ void FFTextStream::formattedGetLine(std::string& line,
+ const bool expectEOF)
+ throw(EndOfFile, FFStreamError, gpstk::StringUtils::StringException)
+ {
+ try
+ {
+ const int MAX_LINE_LENGTH = 256;
+ char templine[MAX_LINE_LENGTH + 1];
+ getline(templine, MAX_LINE_LENGTH);
+ lineNumber++;
+ line = templine;
+ gpstk::StringUtils::stripTrailing(line, '\r');
+ // catch EOF when stream exceptions are disabled
+ if ((gcount() == 0) && eof())
+ {
+ if (expectEOF)
+ {
+ EndOfFile err("EOF encountered");
+ GPSTK_THROW(err);
+ }
+ else
+ {
+ FFStreamError err("Unexpected EOF encountered");
+ GPSTK_THROW(err);
+ }
+ }
+ }
+ catch(std::exception &e)
+ {
+ // catch EOF when exceptions are enabled
+ if ( (gcount() == 0) && eof())
+ {
+ if (expectEOF)
+ {
+ EndOfFile err("EOF encountered");
+ GPSTK_THROW(err);
+ }
+ else
+ {
+ FFStreamError err("Unexpected EOF");
+ GPSTK_THROW(err);
+ }
+ }
+ else
+ {
+ FFStreamError err("Critical file error: " +
+ std::string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FICAStream.hpp b/dev/src/FICAStream.hpp
new file mode 100644
index 0000000..a323c02
--- /dev/null
+++ b/dev/src/FICAStream.hpp
@@ -0,0 +1,92 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICAStream.hpp
+ * gpstk::FICAStream - ASCII FIC file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICASTREAM_HPP
+#define FICASTREAM_HPP
+
+#include "FICStreamBase.hpp"
+#include "FFTextStream.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is a stream used to obtain data from an ascii FIC File.
+ *
+ * \sa fica_test.cpp for an example.
+ *
+ * \sa FICData and FICHeader.
+ */
+ class FICAStream : public FICStreamBase, public FFTextStream
+ {
+ public:
+ /// Default constructor
+ FICAStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the ascuu FIC file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ FICAStream(const char* fn,
+ std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode)
+ {}
+
+ /// destructor per the coding standards
+ virtual ~FICAStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ { FFTextStream::open(fn, mode); FICStreamBase::open(); }
+
+ }; // class FICStream
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/FICBase.hpp b/dev/src/FICBase.hpp
new file mode 100644
index 0000000..e5686eb
--- /dev/null
+++ b/dev/src/FICBase.hpp
@@ -0,0 +1,69 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICBase.hpp
+ * gpstk::FICBase - base class for FIC FFData.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICBASE_HPP
+#define FICBASE_HPP
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is a base class for all FIC-related classes.
+ */
+ class FICBase : public FFData
+ {
+ public:
+ /// in deference to our coding standards, this is declared virtual
+ virtual ~FICBase() {}
+ };
+}
+
+#endif
diff --git a/dev/src/FICData.cpp b/dev/src/FICData.cpp
new file mode 100644
index 0000000..51113a6
--- /dev/null
+++ b/dev/src/FICData.cpp
@@ -0,0 +1,1168 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICData.cpp
+ * gpstk::FICData - container for the FIC file data.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "StringUtils.hpp"
+#include "BinUtils.hpp"
+#include "FICData.hpp"
+#include "FICStream.hpp"
+#include "FICAStream.hpp"
+
+#include <cmath>
+
+#include "gpstkplatform.h"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+using namespace gpstk::BinUtils;
+
+ // the "blk " literal is 4 chrs wide
+const int FICBlkHdrSize = 4;
+
+namespace gpstk
+{
+ const string FICData::blockString = "BLK ";
+
+ void FICData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError)
+ {
+ if (!isValid())
+ {
+ FFStreamError e("Tried to write an invalid FIC block");
+ GPSTK_THROW(e);
+ }
+
+ // is this a FIC or FICA stream?
+ // remember that a FICAStream derives from FICStream, so check
+ // for FICA first
+ if (dynamic_cast<FICAStream*>(&ffs))
+ {
+ FICAStream& strm = dynamic_cast<FICAStream&>(ffs);
+
+ strm << '\n' << blockString;
+ strm << setw(6) << blockNum
+ << setw(5) << f.size()
+ << setw(5) << i.size()
+ << setw(5) << c.size();
+ unsigned long index;
+ for (index = 0; index < f.size(); index++)
+ {
+ if ((index % 4) == 0)
+ strm << '\n';
+ double l10 = log10(fabs(f[index]));
+ if ( ((l10 >= 100) || (l10 <= -100)) && (f[index] != 0))
+ strm << doub2for(f[index], 20, 3);
+ else
+ strm << doub2for(f[index], 20, 2);
+ }
+ for (index = 0; index < i.size(); index++)
+ {
+ if ((index % 6) == 0)
+ strm << '\n';
+ strm << setw(12) << i[index];
+ }
+ for (index = 0; index < c.size(); index++)
+ {
+ if ((index % 8) == 0)
+ strm << '\n';
+ strm << setw(8) << c[index];
+ }
+ }
+ else
+ {
+ if (dynamic_cast<FICStream*>(&ffs))
+ {
+ FICStream& strm = dynamic_cast<FICStream&>(ffs);
+
+ strm << blockString;
+ strm.writeData<int32_t>(hostToIntel(blockNum));
+ strm.writeData<uint32_t>(hostToIntel(static_cast<uint32_t>(f.size())));
+ strm.writeData<uint32_t>(hostToIntel(static_cast<uint32_t>(i.size())));
+ strm.writeData<uint32_t>(hostToIntel(static_cast<uint32_t>(c.size())));
+ unsigned long index;
+ for (index = 0; index < f.size(); index++)
+ strm.writeData<double>(hostToIntel(f[index]));
+ for (index = 0; index < i.size(); index++)
+ strm.writeData<int32_t>(hostToIntel(i[index]));
+ for (index = 0; index < c.size(); index++)
+ strm.writeData<char>(hostToIntel(c[index]));
+ }
+ // bad cast!!!
+ else
+ {
+ FFStreamError e("FICData tried to read from a non-FIC file");
+ GPSTK_THROW(e);
+ }
+ }
+ }
+
+ bool FICData::isValid() const
+ {
+ switch(blockNum) {
+ case 109:
+ if((f.size() == 0) && (i.size() == 32) && (c.size() == 0))
+ return true;
+ break;
+ case 9:
+ if((f.size() == 60) && (i.size() == 0) && (c.size() == 0))
+ return true;
+ break;
+ case 162:
+ if((f.size() == 0) && (i.size() == 15) && (c.size() == 0))
+ return true;
+ break;
+ case 62:
+ if(( (f.size() == 20) || (f.size() == 32) || (f.size() == 14) ||
+ (f.size() == 23) || (f.size() == 47) || (f.size() == 29) )
+ && (i.size() == 6) && (c.size() == 0))
+ return true;
+ break;
+ default:
+ return false;
+ break;
+ }
+ return false;
+ }
+
+ void FICData::dump(ostream& s) const
+ {
+ int n;
+ s << "FIC BlockNumber: " << blockNum << endl
+ << " floats: " << flush;
+ for(n = 0; n< f.size(); n++)
+ s << f[n] << " " << flush;
+ s << endl << " integers: " << flush;
+ for(n = 0; n< i.size(); n++)
+ s << i[n] << " " << flush;
+ s << endl << " chars: " << flush;
+ for(n = 0; n< c.size(); n++)
+ s << c[n] << " " << flush;
+ s << endl << endl;
+ };
+
+ void FICData::prettyDump(ostream& os) const
+ {
+ switch (blockNum)
+ {
+ case 109:
+ prettyDump109(os);
+ break;
+ case 9:
+ prettyDump9(os);
+ break;
+ case 62:
+ prettyDump62(os);
+ break;
+ case 162:
+ prettyDump162(os);
+ break;
+ default:
+ break;
+ }
+ }
+
+ void FICData::prettyDump9(ostream& os) const
+ {
+ short j;
+ short ndx[3] = { 9, 25, 52 };
+ short iod;
+ short itemp;
+ short epochWeek;
+ double epochTime, xmitTime, diff;
+
+ os << "**************************************";
+ os << "**************************************\n";
+ os << " Block Number : ";
+ os.width(3);
+ os << blockNum << "\n";
+ os << "Broadcast Ephemeris (Engineering Units)\n";
+ os << "\n";
+ os << "PRN : ";
+ os.width(2);
+ os << f[19] << "\n\n";
+
+ // Check for week rollover between nav msg week # and
+ // epoch time week number.
+ epochTime = f[12];
+ xmitTime = f[2];
+ diff = -1 * (epochTime - xmitTime);
+ if (diff > DayTime::HALFWEEK) epochWeek = (short) f[5] + 1;
+ else epochWeek = (short) f[5];
+ timeDisplay( os, "Clock Epoch:", epochWeek, f[12], 1 );
+
+ epochTime = f[33];
+ xmitTime = f[22];
+ diff = -1 * (epochTime - xmitTime);
+ if (diff > DayTime::HALFWEEK) epochWeek = (short) f[5] + 1;
+ else epochWeek = (short) f[5];
+ timeDisplay( os, "Eph Epoch:", epochWeek, f[33], 0 );
+
+ os << "Transmit Week:";
+ os.width(4);
+ os << f[5] << "\n";
+ os.width(2);
+ os << "Fit interval flag : " << f[34] << "\n";
+
+ os << "\n";
+ os << " SUBFRAME OVERHEAD\n\n";
+ os << " SOW DOW:HH:MM:SS IOD ALERT A-S\n";
+ for (j=0;j<3;j++)
+ {
+ os.width(1);
+ os << "SF" << (j+1) << " HOW: ";
+ os.width(7);
+ os << f[2+j*20];
+
+ // Convert SOW to D:H:M:S and output
+ os << " ";
+ shortcut( os, f[2+j*20]);
+ if (j==0)os << " ";
+ else os << " ";
+ os.setf(ios::uppercase);
+ // Due to ancient use of FIC back
+ // when IODC/IODE were AODC/AODE,
+ // the IODC/IODE values are scaled by 2**10
+ // in FIC and have to unscaled.
+ iod = (short) (f[ndx[j]] / 2048);
+ iod = iod;
+ os << "0x";
+ os.fill('0');
+ if (j==0) os.width(3); // IODC is longer
+ else os.width(2);
+ os << hex << iod << dec << " ";
+ os.fill(' ');
+ // Word 4 (index 3) combines the "Alert" bit and the A-S flag
+ itemp = (short) f[3+j*20];
+ if (itemp & 0x0002) os << "1 "; // "Alert" bit handling
+ else os << "0 ";
+ if (itemp & 0x0001) os << " on\n"; // A-S flag handling
+ else os << "off\n";
+ }
+ os << "\n CLOCK\n\n";
+ os << "Bias T0: ";
+ os.setf(ios::scientific, ios::floatfield);
+ os.setf(ios::right, ios::adjustfield);
+ os.precision(8);
+ os.width(16);
+ os << f[15] << " sec\n";
+ os << "Drift: ";
+ os.width(16);
+ os << f[14] << " sec/sec\n";
+ os << "Drift rate: ";
+ os.width(16);
+ os << f[13] << " sec/(sec**2)\n";
+ os << "Group delay: ";
+ os.width(16);
+ os << f[11] << " sec\n";
+ os.setf(ios::fixed, ios::floatfield);
+ os.precision(0);
+
+ os << "\n ORBIT PARAMETERS\n\n";
+ os << "Semi-major axis: ";
+ os.setf(ios::scientific, ios::floatfield);
+ os.setf(ios::right, ios::adjustfield);
+ os.precision(8);
+ os.width(16);
+ os << f[32] << " m**.5\n";
+ os << "Motion correction: ";
+ os.width(16);
+ os << f[27] << " rad/sec\n";
+ os << "Eccentricity: ";
+ os.width(16);
+ os << f[30] << "\n";
+ os << "Arg of perigee: ";
+ os.width(16);
+ os << f[50] << " rad\n";
+ os << "Mean anomaly at epoch: ";
+ os.width(16);
+ os << f[28] << " rad\n";
+ os << "Right ascension: ";
+ os.width(16);
+ os << f[46] << " rad ";
+ os.width(16);
+ os << f[51] << " rad/sec\n";
+ os << "Inclination: ";
+ os.width(16);
+ os << f[48] << " rad ";
+ os.width(16);
+ os << f[53] << " rad/sec\n";
+ os.setf(ios::fixed, ios::floatfield);
+ os.precision(0);
+
+ os << "\n HARMONIC CORRECTIONS\n\n";
+ os << "Radial Sine: ";
+ os.setf(ios::scientific, ios::floatfield);
+ os.setf(ios::right, ios::adjustfield);
+ os.precision(8);
+ os.width(16);
+ os << f[26] << " m Cosine: ";
+ os.width(16);
+ os << f[49] << " m\n";
+ os << "Inclination Sine: ";
+ os.width(16);
+ os << f[47] << " rad Cosine: ";
+ os.width(16);
+ os << f[45] << " rad\n";
+ os << "In-track Sine: ";
+ os.width(16);
+ os << f[31] << " rad Cosine: ";
+ os.width(16);
+ os << f[29] << " rad\n";
+ os.setf(ios::fixed, ios::floatfield);
+ os.precision(0);
+
+ os << "\n SV STATUS\n\n";
+ os << "Health bits: 0x";
+ os.fill('0');
+ os.width(2);
+ os << (short) f[8] << " URA index: ";
+ os.fill(' ');
+ os.width(4);
+ os << f[7] << "\n";
+ os << "Code on L2: ";
+ switch ( (short) f[6] )
+ {
+ case 0:
+ os << "reserved";
+ break;
+
+ case 1:
+ os << " P only";
+ break;
+
+ case 2:
+ os << " C/A only";
+ break;
+
+ case 3:
+ os << " P & C/A";
+ break;
+
+ default:
+ break;
+
+ }
+ os << " L2 P Nav data: ";
+ if ( (short) f[10]!=0) os << "off";
+ else os << "on";
+ os << "\n";
+ }
+
+ void FICData::prettyDump109(ostream & os) const
+ {
+ os << "**************************************";
+ os << "**************************************\n";
+ os << " Block Number : ";
+ os.width(3);
+ os << blockNum << "\n";
+ os << "Broadcast Ephemeris as Transmitted\n";
+ os << "\n";
+ os << "PRN : ";
+ os.width(2);
+ os << i[1] << "\n";
+ timeDisplay( os, "Transmit time:",
+ i[0],
+ ((i[3] & 0x3FFFFFFFL) >> 13) * 6,
+ 2 );
+ os.setf(ios::uppercase);
+ os << "\n";
+ os << "Hexadecimal dump of words 1-10";
+ short j;
+ for (j=0;j<10;j++)
+ {
+ if (j==0 || j ==5 ) os << "\n";
+ os << " ";
+ os.width(2);
+ os << (j+1) << ":";
+ os.width(8);
+ os.fill('0');
+ os << hex << i[j+2] << dec;
+ os.fill(' ');
+ }
+ os << "\n\n";
+ os << "Hexadecimal dump of words 11-20";
+ for (j=10;j<20;j++)
+ {
+ if (j==10 || j ==15 ) os << "\n";
+ os << " ";
+ os.width(2);
+ os << (j+1) << ":";
+ os.width(8);
+ os.fill('0');
+ os << hex << i[j+2] << dec;
+ os.fill(' ');
+ }
+ os << "\n\n";
+ os << "Hexadecimal dump of words 21-30";
+ for (j=20;j<30;j++)
+ {
+ if (j==20 || j ==25 ) os << "\n";
+ os << " ";
+ os.width(2);
+ os << (j+1) << ":";
+ os.width(8);
+ os.fill('0');
+ os << hex << i[j+2] << dec;
+ os.fill(' ');
+ }
+ os << "\n\n";
+ }
+
+ void FICData::prettyDump62(ostream & os) const
+ {
+ short j,k;
+ unsigned short btmp;
+ unsigned long aword;
+ short rotate;
+ char ochar;
+ short almType;
+
+ os << "**************************************";
+ os << "**************************************\n";
+ os << " Block Number : ";
+ os.width(3);
+ os << blockNum << "\n";
+ os << "Almanac(Engineering Units)\n";
+ os << "\n";
+ os << "SV ID : ";
+ os.setf(ios::right, ios::adjustfield);
+ os.width(2);
+ os << i[3] << "\n";
+ timeDisplay( os, "Transmit time", i[5], i[1], 1 );
+ os << "Reference Wk ";
+ os.width(4);
+ os << i[0] << "\n";
+ almType = (short) f[6];
+ if (almType>0&&almType<33)
+ {
+ // Output of SV almanac data
+ timeDisplay( os, "Epoch time", (short) f[18], f[8], 0);
+ os << "\n";
+ os << "CLOCK\n";
+ os.setf(ios::scientific, ios::floatfield);
+ os.setf(ios::right, ios::adjustfield);
+ os.precision(8);
+ os << " Bias: ";
+ os.width(16);
+ os << f[16] << " sec\n";
+ os << " Drift: ";
+ os.width(16);
+ os << f[17] << " sec/sec\n";
+
+ os << "\nORBIT PARAMETERS\n";
+ os << " Semi-major axis: ";
+ os.width(16);
+ os << f[12] << " m**.5\n";
+ os << " Eccentricity: ";
+ os.width(16);
+ os << f[7] << "\n";
+ os << " Arg of perigee: ";
+ os.width(16);
+ os << f[14] << " rad\n";
+ os << " Mean anamoly of epoch: ";
+ os.width(16);
+ os << f[15] << " rad\n";
+ os << " Right Ascension: ";
+ os.width(16);
+ os << f[13] << " rad ";
+ os.width(16);
+ os << f[10] << " rad/sec\n";
+ os << " Inclination: ";
+ os.width(16);
+ os << f[9] << " rad (from 54 deg)\n";
+
+ os.setf(ios::fixed, ios::floatfield);
+ os.precision(0);
+ }
+ else if (almType>=57 && almType<=62 )
+ {
+ // Hexadecimal dump
+ os << "\n";
+ os << "Hexadecimal dump of non-parity bits of words 3-10\n";
+// os << " **This feature under construction.**\n";
+ os.setf(ios::uppercase);
+ for (k=2;k<10;k++)
+ {
+ if (k==2 || k==6 ) os << "\n";
+ os << " ";
+ os.width(2);
+ os << (k+1) << ":";
+ os.width(6); // 'stead 6
+ os.fill('0');
+ aword = (unsigned long) f[k+5];
+// aword >>= 6; // The data had parity stripped
+ // during subframe conversion.
+ os << hex << aword << dec;
+ os.fill(' ');
+ }
+
+ }
+ else switch (almType)
+ {
+ case 51: // Health 1
+ os << "\n";
+ os << "Page Type: SV Health Information\n";
+ os << "\nAlmanac reference week (8 bit): ";
+ os.precision(0);
+ os << f[7] << "\n";
+ os << "SV Health Information for PRN 1-24\n\n";
+ os << " --Health--- --Health--- --Health--- --Health---\n";
+ os << "PRN Hex Binary PRN Hex Binary PRN Hex Binary PRN Hex Binary\n";
+ os.setf(ios::uppercase);
+ for (k=1;k<=21;k+=4)
+ {
+ for (j=k;j<k+4;j++)
+ {
+ if (j!=k) os << " ";
+ else os << " ";
+ os.width(2);
+ os.fill('0');
+ os << j;
+ os.fill(' ');
+ os << " ";
+ btmp = (unsigned short) f[j+7];
+ btmp &= 0x003F;
+ os.fill('0');
+ os.width(2);
+ os << hex << btmp << dec;
+ os.fill(' ');
+ os << " ";
+ btmp = (unsigned short) f[j+7];
+ for (rotate=0;rotate<6;rotate++)
+ {
+ if (btmp & 0x20) os << "1";
+ else os << "0";
+ btmp <<= 1;
+ }
+ }
+ os << "\n";
+ }
+ break;
+
+ case 52:
+ case 53:
+ case 54:
+ os << "\n";
+ if (almType==52) os << "Page Type: Subframe 4 Page 13, Reserved Bits\n";
+ if (almType==53) os << "Page Type: Subframe 4 Page 14, Reserved Bits\n";
+ if (almType==54) os << "Page Type: Subframe 4 Page 15, Reserved Bits\n";
+ // Hexadecimal dump
+ os << "Hexadecimal dump of non-parity bits of words 3-10\n";
+ os << " **This feature under construction.**\n";
+ os << " **This page is decoded incorrectly in the ";
+ os << "subframe converter.**\n";
+/* os.setf(ios::uppercase);
+ for (j=2;j<10;j++)
+ {
+ if (j==2 || j==6 ) os << "\n";
+ os << " ";
+ os.width(2);
+ os << (j+1) << ":";
+ os.width(6);
+ os.fill('0');
+ aword = i[j+2];
+ aword >>= 6;
+ os << hex << aword << dec;
+ os.fill(' ');
+ }
+*/
+ break;
+
+ case 55:
+ os << "\n";
+ os << "Page Type: Subframe 4 Page 17, Special Message\n";
+ // Hexadecimal dump
+ // Loop over words 3-10
+ os << "\n Message : \"";
+ for (k=1;k<23;k++)
+ {
+ aword = (unsigned long) f[k+6];
+ ochar = (char) aword;
+ os << ochar;
+ }
+ os << "\"\n";
+ break;
+
+ case 56:
+ os << "\n";
+ os << "Page Type: UTC and Ionospheric Information\n";
+ os.setf(ios::scientific, ios::floatfield);
+ os.setf(ios::right, ios::adjustfield);
+ os.precision(8);
+ os << "\n";
+ os << "IONOSPHERIC PARAMETERS \n";
+ os << " Alpha 1 : ";
+ os.width(16);
+ os << f[7] << " sec Beta 1 : ";
+ os.width(16);
+ os << f[11] << "sec\n";
+ os << " Alpha 2 : ";
+ os.width(16);
+ os << f[8] << " sec/rad Beta 2 : ";
+ os.width(16);
+ os << f[12] << " sec/rad\n";
+ os << " Alpha 3 : ";
+ os.width(16);
+ os << f[9] << " sec/rad**2 Beta 3 : ";
+ os.width(16);
+ os << f[13] << " sec/rad**2\n";
+ os << " Alpha 4 : ";
+ os.width(16);
+ os << f[10] << " sec/rad**3 Beta 4 : ";
+ os.width(16);
+ os << f[14] << " sec/rad**3\n\n";
+
+ os << "GPS-UTC CORRECTION PARAMETERS\n";
+ os << " Bias (A0) ";
+ os.width(16);
+ os << f[15] << " sec\n";
+ os << " Drift (A1) ";
+ os.width(16);
+ os << f[16] << " sec/sec\n";
+ os.setf(ios::fixed, ios::floatfield);
+ os.precision(0);
+ os << " Reference time (tot) ";
+ os.width(16);
+ os << f[17] << " sec of week\n";
+ os << " Current leap second (dtls) ";
+ os.width(16);
+ os << f[19] << " sec\n";
+ os << " Ref week of current leap second (WNt) ";
+ os.width(16);
+ os << f[18] << " weeks\n";
+ os << " Week of next/last change (WNLSF) ";
+ os.width(16);
+ os << f[20] << " weeks\n";
+ os << " Day number of future change (DN) ";
+ os.width(16);
+ os << f[21] << " day of week\n";
+ os << " Scheduled future time increment due to\n";
+ os << " lead seconds (dtLSF) ";
+ os.width(16);
+ os << f[22] << " sec\n";
+ break;
+
+ case 63: // Health 2
+ os << "\n";
+ os << "Page Type: SV Health and Configuration Information\n\n";
+ os.precision(0);
+ os << "SV Health Information for PRN 25-32\n";
+ os << "-----Health----- -----Health----- -----Health----- -----Health-----\n";
+ os << "PRN Hex Binary PRN Hex Binary PRN Hex Binary PRN Hex Binary\n";
+ for (k=25;k<=29;k+=4)
+ {
+ for (j=k;j<k+4;j++)
+ {
+ if (j!=k) os << " ";
+ else os << " ";
+ os.width(2);
+ os.fill('0');
+ os << j;
+ os.fill(' ');
+ os << " ";
+ btmp = (unsigned short) f[j+14];
+ btmp &= 0x003F;
+ os.fill('0');
+ os.width(2);
+ os << hex << btmp << dec;
+ os.fill(' ');
+ os << " ";
+ btmp = (unsigned short) f[j+14];
+ for (rotate=0;rotate<6;rotate++)
+ {
+ if (btmp & 0x20) os << "1";
+ else os << "0";
+ btmp <<= 1;
+ }
+ }
+ os << "\n";
+ }
+
+ os << "\nSV Configuration for PRN 1-32 (bit coded)\n";
+ os << "-----Config----- -----Config----- -----Config----- -----Config-----\n";
+ os << "PRN Binary PRN Binary PRN Binary PRN Binary\n";
+ os.fill('0');
+ for (k=1;k<32;k+=4)
+ {
+ for (j=k;j<(k+4);j++)
+ {
+ if (j==k) os << " ";
+ else os << " ";
+ os.width(2);
+ os << j << " ";
+ btmp = (unsigned short) f[j+6];
+ for (rotate=0;rotate<4;rotate++)
+ {
+ if (btmp & 0x08) os << "1";
+ else os << "0";
+ btmp <<= 1;
+ }
+ }
+ os << "\n";
+ }
+ os.fill(' ');
+ break;
+
+ default:
+ break;
+ }
+ os << "\n\n";
+ }
+
+ void FICData::prettyDump162(ostream & os) const
+ {
+ os << "**************************************";
+ os << "**************************************\n";
+ os << " Block Number : ";
+ os.width(3);
+ os << blockNum << "\n";
+ os << "As Broadcast Almanac\n";
+ os << "\n";
+ os << "SV ID : ";
+ os.width(2);
+ os << i[0] << "\n";
+ timeDisplay( os, "Transmit time",
+ i[14],
+ ((i[2] & 0x3FFFFFFFL) >> 13) * 6,
+ 1 );
+
+ // Added to display reference week in addition to transmit week.
+ os << "Reference Wk ";
+ os.width(4);
+ os << i[13];
+ os << "\n";
+
+ os.setf(ios::uppercase);
+ os << "\n";
+ os << "Hexadecimal dump of words in subframe";
+ short j;
+ for (j=0;j<10;j++)
+ {
+ if (j==0 || j ==5 ) os << "\n";
+ os << " ";
+ os.width(2);
+ os << (j+1) << ":";
+ os.width(8);
+ os.fill('0');
+ os << hex << i[j+1] << dec;
+ os.fill(' ');
+ }
+ os << "\n\n";
+ }
+
+ // shortcut is used in outBlock9 to convert the
+ // HOW word time to D:H:M:S and print it out.
+ void FICData::shortcut(ostream & os, const double HOW ) const
+ {
+ short DOW, hour, min, sec;
+ long SOD, SOW;
+ short SOH;
+
+ SOW = (long) HOW;
+ DOW = (short) (SOW / DayTime::SEC_DAY);
+ SOD = SOW - DOW * long(DayTime::SEC_DAY);
+ hour = (short) (SOD/3600);
+
+ SOH = (short) (SOD - (hour*3600));
+ min = SOH/60;
+
+ sec = SOH - min * 60;
+ switch (DOW)
+ {
+ case 0: os << "Sun-0"; break;
+ case 1: os << "Mon-1"; break;
+ case 2: os << "Tue-2"; break;
+ case 3: os << "Wed-3"; break;
+ case 4: os << "Thu-4"; break;
+ case 5: os << "Fri-5"; break;
+ case 6: os << "Sat-6"; break;
+ default: break;
+ }
+ os << ":";
+ os.fill('0');
+ os.width(2);
+ os << hour << ":";
+ os.width(2);
+ os << min << ":";
+ os.width(2);
+ os << sec;
+ }
+
+ // timeDisplay method provides a standard means for displaying
+ // the GPS time and d/m/y h:m:s. The calling program provides
+ // the opening text string for the line, the GPS week, the GPS SOW,
+ // and a flag indicating if the header line is to be output.
+ // (The latter is helpful when there are two or more times to be
+ // output one above the other.)
+ void FICData::timeDisplay( ostream & os, const char * legend,
+ const short week, const double SOW,
+ const short headerFlag ) const
+ {
+ DayTime dt;
+ short slen;
+ short j;
+
+ if (headerFlag)
+ os << " Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS\n";
+ os << legend;
+ slen = strlen(legend);
+ for (j=1;j<(15-slen);j++) os << " ";
+
+ // Convert to daytime struct from GPS wk,SOW to M/D/Y, H:M:S.
+ dt.setGPSfullweek(week, SOW);
+
+ os.width(4);
+ os << dt.GPSfullweek() << "(";
+ os.width(4);
+ os << dt.GPS10bitweek() << ") ";
+ os.width(6);
+ os << dt.GPSsecond() << " ";
+
+ switch (dt.GPSday())
+ {
+ case 0: os << "Sun-0"; break;
+ case 1: os << "Mon-1"; break;
+ case 2: os << "Tue-2"; break;
+ case 3: os << "Wed-3"; break;
+ case 4: os << "Thu-4"; break;
+ case 5: os << "Fri-5"; break;
+ case 6: os << "Sat-6"; break;
+ default: break;
+ }
+ os << " ";
+ os.fill('0');
+ os.width(3);
+ os << dt.DOYday() << " ";
+ os.width(5);
+ os << dt.DOYsecond() << " ";
+ os.width(2);
+ os << dt.month() << "/";
+ os.width(2);
+ os << dt.day() << "/";
+ os.width(4);
+ os << dt.year() << " ";
+ os.width(2);
+ os << dt.hour() << ":";
+ os.width(2);
+ os << dt.minute() << ":";
+ os.width(2);
+ os << dt.second() << "\n";
+ os.fill(' ');
+ }
+
+ void FICData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError)
+ {
+ // is this a FIC or FICA stream?
+ if (dynamic_cast<FICAStream*>(&ffs))
+ {
+ FICAStream& strm = dynamic_cast<FICAStream&>(ffs);
+
+ // Make sure the header has been read.
+ if (!strm.headerRead)
+ strm >> strm.header;
+
+ f.clear();
+ i.clear();
+ c.clear();
+
+ string line;
+ strm.formattedGetLine(line, true);
+ string blkHdr(line.substr(0,4));
+
+ if ( (blkHdr.size() != FICBlkHdrSize) ||
+ (blkHdr != blockString))
+ {
+ FFStreamError e("Bad block header, record=" +
+ asString(strm.recordNumber) +
+ " location=" + asString(strm.tellg()));
+ e.addText(string("blkHdr=[")+string(blkHdr)+string("]"));
+ GPSTK_THROW(e);
+ }
+ // get block number
+ blockNum = asInt(line.substr(4, 6));
+
+ // get num of f,i, and c to read then read them
+ long numf = asInt(line.substr(10,5)),
+ numi = asInt(line.substr(15,5)),
+ numc = asInt(line.substr(20,5));
+
+ long n;
+
+ for (n = 0; n < numf; n++)
+ {
+ if (n%4 == 0)
+ strm.formattedGetLine(line);
+ f.push_back(for2doub(line.substr((n%4)*20, 20), 20));
+ }
+
+ for (n = 0; n < numi; n++)
+ {
+ if (n%6 == 0)
+ strm.formattedGetLine(line);
+ i.push_back(asInt(line.substr((n%6)*12, 12)));
+ }
+
+ for (n = 0; n < numc; n++)
+ {
+ if (n%8 == 0)
+ strm.formattedGetLine(line);
+ c.push_back(line.substr((n%8)*8 + 7, 1)[0]);
+ }
+
+ if (!isValid())
+ {
+ FFStreamError e("Read an invalid FIC block");
+ GPSTK_THROW(e);
+ }
+ }
+ else
+ {
+ if (dynamic_cast<FICStream*>(&ffs))
+ {
+ FICStream& strm = dynamic_cast<FICStream&>(ffs);
+
+ // Make sure the header has been read.
+ if (!strm.headerRead)
+ strm >> strm.header;
+
+ f.clear();
+ i.clear();
+ c.clear();
+
+ char blkHdr[FICBlkHdrSize + 1];
+ unsigned location = strm.tellg();
+
+ strm.getData(blkHdr, FICBlkHdrSize);
+ if ((string(blkHdr, FICBlkHdrSize) != blockString))
+ {
+ FFStreamError e("Bad block header, record="
+ + asString(strm.recordNumber)
+ + " location=" + asString(location));
+ e.addText(string("blkHdr=[")+string(blkHdr)+string("]"));
+ GPSTK_THROW(e);
+ }
+ // get block number
+ blockNum = intelToHost(strm.getData<int32_t>());
+
+ // get num of f,i, and c to read then read them
+ int32_t numf = intelToHost(strm.getData<int32_t>());
+ int32_t numi = intelToHost(strm.getData<int32_t>());
+ int32_t numc = intelToHost(strm.getData<int32_t>());
+
+ long n;
+
+ for (n = 0; n < numf; n++)
+ {
+ double fl = intelToHost(strm.getData<double>());
+ f.push_back(fl);
+ }
+
+ for (n = 0; n < numi; n++)
+ {
+ long lg = intelToHost(strm.getData<int32_t>());
+ i.push_back(lg);
+ }
+
+ for (n = 0; n < numc; n++)
+ {
+ char ch = intelToHost(strm.getData<char>());
+ c.push_back(ch);
+ }
+ }
+ // bad cast!!!
+ else
+ {
+ FFStreamError e("FICData tried to read from a non-FIC file");
+ GPSTK_THROW(e);
+ }
+ }
+ if (!isValid())
+ {
+ FFStreamError e("Read an invalid FIC block");
+ GPSTK_THROW(e);
+ }
+ }
+
+ FICData::operator EngEphemeris() const
+ throw(WrongBlockNumber)
+ {
+ if(blockNum==9)
+ {
+ gpstk::EngEphemeris eph;
+ unsigned tlm = (unsigned)f[0];
+ eph.setSF1( ((tlm >> 8) & 0x3fff), (long)f[2], (short)f[3], (short)f[5],
+ (short)f[6], (short)f[7], (short)f[8], (short)ldexp(f[9],-11),
+ (short)f[10], f[11], f[12], f[13], f[14], f[15], (short)f[18],
+ (short)f[19] );
+ tlm = (unsigned)f[20];
+ eph.setSF2( ((tlm >> 8) & 0x3fff),(long)f[22], (short)f[23],
+ (short)ldexp(f[25],-11), f[26], f[27], f[28], f[29], f[30],
+ f[31], f[32], f[33], (short)f[34] );
+ tlm = (unsigned)f[40];
+ eph.setSF3( ((tlm >> 8) & 0x3fff), (long)f[42], (short)f[43], f[45],
+ f[46], f[47], f[48], f[49], f[50], f[51], f[53] );
+ return eph;
+ }
+ else if(blockNum == 109)
+ {
+ gpstk::EngEphemeris eph;
+ // gotta transfer data in vector<long> to long[].
+ long foo[30];
+ int count = 0;
+ for(int count = 2; count < i.size(); count++)
+ {
+ foo[count-2] = i[count];
+ }
+ eph.addSubframe(foo, i[0], i[1], 0);
+ eph.addSubframe(foo+10, i[0], i[1], 0);
+ eph.addSubframe(foo+20, i[0], i[1], 0);
+ return eph;
+ }
+ else
+ {
+ WrongBlockNumber wbn( "Block number should be 9, was " +
+ asString(blockNum) );
+ GPSTK_THROW(wbn);
+ }
+ }
+
+
+ FICData::operator AlmOrbit() const
+ throw(WrongBlockNumber)
+ {
+ if(blockNum == 62)
+ {
+ AlmOrbit ao(i[3], f[7], f[9], f[10],
+ f[12], f[13], f[14], f[15],
+ f[16], f[17], long(f[8]), i[1],
+ i[0], short(f[11]));
+ return ao;
+ }
+ else
+ {
+ WrongBlockNumber wbn( "Block number should be 62, was " +
+ asString(blockNum) );
+ GPSTK_THROW(wbn);
+ }
+ }
+
+ std::string FICData::generateUniqueKey() const
+ throw(WrongBlockNumber, WrongBlockFormat)
+ {
+ std::ostringstream out;
+ DayTime transmitTime(0.L), howTime(0.L);
+ WrongBlockNumber wbn( "Block number should be 9, 109, or 62, was "+
+ asString(blockNum) );
+
+ switch (blockNum)
+ {
+ case 9:
+ // the keys for EphData are PRN, week, IODC, AS and alert bits
+ out << "EE" << ' '
+ << f[19] << ' '
+ << f[5] << ' '
+ // all bits are as counted from the MSB
+ // AODC is recorded, not IODC so divide by 2048
+ << ldexp(f[9], -11) << ' '
+ // the AS and alert bits
+ << f[3] << ' '
+ << f[23] << ' '
+ << f[43];
+ break;
+
+ case 109:
+ out << "E" << ' '
+ << i[1] << ' ' // prn
+ << i[0] << ' ' // transmit week
+ << (((i[4] & 0xC0)<<2) + ((i[9] & 0x3FC00000)>>22)) << ' '
+ // the AS and alert bits are in the HOW (word 2), bits 18 and 19
+ << ((i[3] & 0x1800)>>11) << ' '
+ << ((i[13] & 0x1800)>>11) << ' '
+ << ((i[23] & 0x1800)>>11);
+ break;
+
+ case 62:
+ transmitTime.setGPSfullweek(i[5], (double)i[1]);
+ howTime.setGPSfullweek(i[5], f[2]);
+
+ // we only have toa in this format message.. yay.
+ // FIX magic number.. I'm a bit apprehensive about
+ // using MAX_PRN here because I don't know how things
+ // may change. erf.
+ if ((i[3] >= 1) && (i[3] <= 32))
+ {
+ out << "A" << ' '
+ << ((short)f[6]) << ' ' // page id
+ << transmitTime.GPSday() << ' '
+ << transmitTime.GPSfullweek() << ' '
+ << ((long)f[8]) << ' ' // toa
+ << howTime.DOYday() << ' '
+ << howTime.DOYyear();
+ }
+ else
+ {
+ WrongBlockFormat wbf("Format " + asString(i[4]) +
+ " (page ID " + asString(i[3]) +
+ ") cannot be used to generate a key.");
+ GPSTK_THROW(wbf);
+ }
+ break;
+ default:
+ GPSTK_THROW(wbn);
+ } // switch (blockNum)
+
+ return out.str();
+
+ }
+
+} // namespace gpstk
+
diff --git a/dev/src/FICData.hpp b/dev/src/FICData.hpp
new file mode 100644
index 0000000..caad6a1
--- /dev/null
+++ b/dev/src/FICData.hpp
@@ -0,0 +1,189 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICData.hpp
+ * gpstk::FICData - container for the FIC file data.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICDATA_HPP
+#define FICDATA_HPP
+
+#include <vector>
+#include <map>
+
+#include "FFStream.hpp"
+#include "FICBase.hpp"
+#include "EngEphemeris.hpp"
+#include "AlmOrbit.hpp"
+
+namespace gpstk
+{
+ /// This gets thrown if we don't have the right data for cast operations.
+ /// @ingroup exceptionclass
+ NEW_EXCEPTION_CLASS(WrongBlockNumber, gpstk::Exception);
+
+ /// This gets thrown if we don't have the wrong format block is used.
+ /// @ingroup exceptionclass
+ NEW_EXCEPTION_CLASS(WrongBlockFormat, gpstk::Exception);
+
+ /**
+ * This does all the grunt-work in reading/decoding
+ * FIC-formatted files (ASCII And Binary).
+ *
+ * \sa fic_test.cpp, fic_read_write.cpp, fica_test.cpp for examples.
+ *
+ * \sa FICStream, FICAStream, and FICHeader.
+ */
+ class FICData : public FICBase
+ {
+ public:
+ /// Default constructor
+ FICData() : blockNum(0) {}
+
+ /*
+ * Construct a FICData from an EngEphemeris object.
+ * @param engEph the EngEphemeris to copy
+ */
+ // if you uncomment this, fix the doxygen comment above as well
+ //FICData(const EngEphemeris& engEph) throw();
+
+ /// Destructor
+ virtual ~FICData() {}
+ /**
+ * Returns whether or not this FICData is valid.
+ * Checks the sizes of the f, i, and c vectors using different
+ * metrics for each FIC Record Type.
+ * See the ICD-GPS-200 for complete details.
+ */
+ bool isValid() const;
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the f, i, and c vectors to the
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ /**
+ * Prints the FIC data in a nice format, labeling all the important
+ * subframes and quantities.
+ */
+ void prettyDump(std::ostream& os) const;
+
+ /**
+ * Cast *this to an Engineering Ephemeiris Object.
+ * @return the constructed EngEphemeris object
+ */
+ operator EngEphemeris() const throw(WrongBlockNumber);
+
+ /**
+ * cast *this into an AlmOrbit, only for block 62s
+ * @return the constructed AlmOrbit object
+ */
+ operator AlmOrbit() const throw(WrongBlockNumber);
+
+ /// Generates a unique key for this FIC data so that redundant
+ /// messages can be filtered. Uses the same criteria
+ /// as other generateUniqueKey() functions.
+ /// Currently only for blocks 9 and 62 (otherwise it throws)
+ /// @sa NavSF::generateUniqueKey()
+ /// @sa EngEphData::generateUniqueKey()
+ std::string generateUniqueKey() const throw(WrongBlockNumber,
+ WrongBlockFormat);
+
+ /// @name data members
+ //@{
+ static const std::string blockString; ///< "BLK " record header constsnt
+ long blockNum; ///< Block number for this FIC Record.
+ std::vector<double> f; ///< Vector of floating point numbers.
+ std::vector<long> i; ///< Vector of long integers.
+ std::vector<char> c; ///< Vector of characters.
+ //@}
+
+ protected:
+ //! Writes this record to the stream \a s.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError);
+ /**
+ * Read a "FICData" record from the FFStream \c s.
+ * If an error is encountered, the function will
+ * return the stream to its original state and mark its fail-bit.
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError);
+
+ private:
+ /// nicely prints the data from a block 9 record
+ void prettyDump9(std::ostream& o) const;
+ /// nicely prints the data from a block 109 record
+ void prettyDump109(std::ostream& o) const;
+ /// nicely prints the data from a block 62 record
+ void prettyDump62(std::ostream& o) const;
+ /// nicely prints the data from a block 162 record
+ void prettyDump162(std::ostream& o) const;
+
+ /// nicely prints the time
+ void timeDisplay( std::ostream & os, const char * legend,
+ const short week, const double SOW,
+ const short headerFlag ) const;
+
+ /// shortcut is used in prettyDump9 to convert the
+ /// HOW word time to D:H:M:S and print it out.
+ void shortcut(std::ostream & os, const double HOW ) const;
+ };
+
+}
+
+#endif // FICDATA_HPP
+
diff --git a/dev/src/FICData109.cpp b/dev/src/FICData109.cpp
new file mode 100644
index 0000000..493d32a
--- /dev/null
+++ b/dev/src/FICData109.cpp
@@ -0,0 +1,88 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FICData109.cpp
+ * Ephemeris data encapsulated in engineering terms
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+#include "DayTime.hpp"
+#include "FICData109.hpp"
+
+#include <cmath>
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ //
+ // Note: the subframes are assumed to be 11 elements long so
+ // elements 1-10 are used.
+ FICData109::FICData109(const short PRNID,
+ const std::vector<uint32_t> sf1,
+ const std::vector<uint32_t> sf2,
+ const std::vector<uint32_t> sf3 )
+ {
+ blockNum = 109;
+
+ long temp = sf1[3];
+ temp &= 0x3FFFFFFF; // Make certain top two bits are 0
+ temp >>= 20;
+ // DANGER WILL ROBINSON!!!!
+ // HERE IS A TEMP KLUDGE
+ temp += 1024; // for the GPS Epoch.
+
+ i.push_back( temp );
+ i.push_back( (long) PRNID );
+
+ for (int wndx=1;wndx<11;++wndx) i.push_back( (long) sf1[wndx] );
+ for (int wndx=1;wndx<11;++wndx) i.push_back( (long) sf2[wndx] );
+ for (int wndx=1;wndx<11;++wndx) i.push_back( (long) sf3[wndx] );
+ }
+
+} // namespace
diff --git a/dev/src/FICData109.hpp b/dev/src/FICData109.hpp
new file mode 100644
index 0000000..98a7d7e
--- /dev/null
+++ b/dev/src/FICData109.hpp
@@ -0,0 +1,77 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICData109.hpp
+ * Augment the FICData class to provide the ability to load
+ * the FICData specifically for Block 109
+ */
+
+#ifndef GPSTK_FICDATA109_HPP
+#define GPSTK_FICDATA109_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICData.hpp"
+
+namespace gpstk
+{
+ class FICData109 : public FICData
+ {
+ public:
+ /// Default constructor
+ FICData109( const short PRNID,
+ const std::vector<uint32_t> sf1,
+ const std::vector<uint32_t> sf2,
+ const std::vector<uint32_t> sf3 );
+
+ /// Destructor
+ virtual ~FICData109() {}
+
+ }; // class FICData109
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FICData162.cpp b/dev/src/FICData162.cpp
new file mode 100644
index 0000000..534cbca
--- /dev/null
+++ b/dev/src/FICData162.cpp
@@ -0,0 +1,82 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FICData162.cpp
+ * Ephemeris data encapsulated in engineering terms
+ */
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+#include "DayTime.hpp"
+#include "FICData162.hpp"
+
+#include <cmath>
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ //
+ // Note: the subframes are assumed to be 11 elements long so
+ // elements 1-10 are used.
+ FICData162::FICData162(const short xmitPRN,
+ const short SVID,
+ const short xmitWeek,
+ const short toaWeek,
+ const std::vector<uint32_t> subframe )
+ {
+ blockNum = 162;
+
+ i.push_back( (long) SVID );
+ for (int wndx=1;wndx<11;++wndx) i.push_back( (long) subframe[wndx] );
+ long dummy = 0;
+ i.push_back( (long) xmitPRN );
+ i.push_back( dummy );
+ i.push_back( (long) toaWeek );
+ i.push_back( (long) xmitWeek );
+ }
+
+} // namespace
diff --git a/dev/src/FICData162.hpp b/dev/src/FICData162.hpp
new file mode 100644
index 0000000..c2e8c7d
--- /dev/null
+++ b/dev/src/FICData162.hpp
@@ -0,0 +1,78 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICData162.hpp
+ * Augment the FICData class to provide the ability to load
+ * the FICData specifically for Block 162
+ */
+
+#ifndef GPSTK_FICDATA162_HPP
+#define GPSTK_FICDATA162_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FICData.hpp"
+
+namespace gpstk
+{
+ class FICData162 : public FICData
+ {
+ public:
+ /// Default constructor
+ FICData162( const short xmitPRN,
+ const short SVID,
+ const short xmitWeek,
+ const short toaWeek,
+ const std::vector<uint32_t> subframe );
+
+ /// Destructor
+ virtual ~FICData162() {}
+
+ }; // class FICData162
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FICData62.cpp b/dev/src/FICData62.cpp
new file mode 100644
index 0000000..0bc3119
--- /dev/null
+++ b/dev/src/FICData62.cpp
@@ -0,0 +1,111 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FICData62.cpp
+ * Almanac data encapsulated in engineering terms
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+#include "DayTime.hpp"
+#include "FICData62.hpp"
+
+#include <cmath>
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ const double FICData62::UNUSED_F = 0.0;
+ const long FICData62::UNUSED_I = 0;
+
+ FICData62::FICData62( const gpstk::FICData162 fic162 )
+ {
+ blockNum = 62;
+
+ double output[60];
+ bool stat = EngNav::subframeConvert( &(fic162.i[1]),
+ (int) fic162.i[14],
+ output );
+
+ if (stat==false)
+ {
+ // need to throw something here
+ return;
+ }
+
+ short format = EngNav::getSubframePattern( &(fic162.i[1]) );
+
+ i.push_back( fic162.i[13] );
+ i.push_back( (long) (output[2] - 6.0) );
+ i.push_back( UNUSED_I );
+ i.push_back( (long) output[6] );
+ i.push_back( (long) format );
+ i.push_back( fic162.i[14] );
+
+
+ short maxNdx;
+ switch (format)
+ {
+ case 4: maxNdx = 20; break;
+ case 5: maxNdx = 32; break;
+ case 6: maxNdx = 14; break;
+ case 7: maxNdx = 14; break;
+ case 8: maxNdx = 23; break;
+ case 9: maxNdx = 47; break;
+ case 10:maxNdx = 29; break;
+
+ default:
+ // THROW SOMETHING
+ break;
+ }
+ for (int ndx=0;ndx<maxNdx;++ndx)
+ {
+ f.push_back( output[ndx] );
+ }
+ }
+} // namespace
diff --git a/dev/src/FICData62.hpp b/dev/src/FICData62.hpp
new file mode 100644
index 0000000..6712baa
--- /dev/null
+++ b/dev/src/FICData62.hpp
@@ -0,0 +1,82 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICData62.hpp
+ * Augment the FICData class to provide the ability to load
+ * the FICData specifically for Block 62. This may seem
+ * counter-intuitive (usually we're READING FIC and converting
+ * to internal storage) but it's helpful in preparing to WRITE
+ * FIC in the creation process.
+ */
+
+#ifndef GPSTK_FICDATA62_HPP
+#define GPSTK_FICDATA62_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "EngEphemeris.hpp"
+#include "FICData.hpp"
+#include "FICData162.hpp"
+
+namespace gpstk
+{
+ class FICData62 : public FICData
+ {
+ public:
+ /// Default constructor
+ FICData62( const gpstk::FICData162 rawsf );
+
+ /// Destructor
+ virtual ~FICData62() {}
+ protected:
+ static const double UNUSED_F;
+ static const long UNUSED_I;
+
+ }; // class FICData62
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FICData9.cpp b/dev/src/FICData9.cpp
new file mode 100644
index 0000000..30eb705
--- /dev/null
+++ b/dev/src/FICData9.cpp
@@ -0,0 +1,133 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FICData9.cpp
+ * Ephemeris data encapsulated in engineering terms
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+#include "DayTime.hpp"
+#include "FICData9.hpp"
+
+#include <cmath>
+
+namespace gpstk
+{
+ using namespace std;
+ using namespace gpstk;
+
+ const double FICData9::UNUSED = 0.0;
+
+ FICData9::FICData9( const gpstk::FICData109 rawsf, const gpstk::EngEphemeris ee )
+ {
+ int i;
+ blockNum = 9;
+
+ firstFiveItems( 1, rawsf, ee );
+ f.push_back( (double) ee.getTransmitTime().GPSfullweek() );
+ f.push_back( (double) ee.getCodeFlags() );
+ f.push_back( (double) ee.getAccFlag() );
+ f.push_back( (double) ee.getHealth() );
+ f.push_back( (double) (ee.getIODC() * 2048) );
+ f.push_back( (double) ee.getL2Pdata() );
+ f.push_back( ee.getTgd() );
+ f.push_back( ee.getToc() );
+ f.push_back( ee.getAf2() );
+ f.push_back( ee.getAf1() );
+ f.push_back( ee.getAf0() );
+
+ // Two unused
+ f.push_back( UNUSED );
+ f.push_back( UNUSED );
+ f.push_back( (double) ee.getTracker() );
+ f.push_back( (double) ee.getPRNID() );
+
+ firstFiveItems( 2, rawsf, ee );
+ f.push_back( (double) (ee.getIODE() * 2048) );
+ f.push_back( ee.getCrs() );
+ f.push_back( ee.getDn() );
+ f.push_back( ee.getM0() );
+ f.push_back( ee.getCuc() );
+ f.push_back( ee.getEcc() );
+ f.push_back( ee.getCus() );
+ f.push_back( ee.getAhalf() );
+ f.push_back( ee.getToe() );
+ f.push_back( (double) ee.getFitInt() );
+
+ // Five unused
+ for (i=0;i<5;++i) f.push_back( UNUSED );
+
+ firstFiveItems( 3, rawsf, ee );
+ f.push_back( ee.getCic() );
+ f.push_back( ee.getOmega0() );
+ f.push_back( ee.getCis() );
+ f.push_back( ee.getI0() );
+ f.push_back( ee.getCrc() );
+ f.push_back( ee.getW() );
+ f.push_back( ee.getOmegaDot() );
+ f.push_back( (double) (ee.getIODE() * 2048) );
+ f.push_back( ee.getIDot() );
+
+ // Six unused
+ for (i=0;i<6;++i) f.push_back( UNUSED );
+ }
+
+ void FICData9::firstFiveItems( const short sfNum,
+ const gpstk::FICData109 rawsf,
+ const gpstk::EngEphemeris ee )
+ {
+ int ndx = 2 + ((sfNum-1) * 10);
+ long word01 = rawsf.i[ ndx ];
+ long preamble = word01 >> 22;
+ f.push_back( (double) preamble );
+ f.push_back( (double) ee.getTLMMessage(sfNum) );
+ f.push_back( ee.getHOWTime(sfNum) );
+ f.push_back( (double) ee.getASAlert(sfNum) );
+ f.push_back( (double) sfNum );
+ }
+
+} // namespace
diff --git a/dev/src/FICData9.hpp b/dev/src/FICData9.hpp
new file mode 100644
index 0000000..12674d0
--- /dev/null
+++ b/dev/src/FICData9.hpp
@@ -0,0 +1,85 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICData9.hpp
+ * Augment the FICData class to provide the ability to load
+ * the FICData specifically for Block 9. This may seem
+ * counter-intuitive (usually we're READING FIC and converting
+ * to internal storage) but it's helpful in preparing to WRITE
+ * FIC in the creation process.
+ */
+
+#ifndef GPSTK_FICDATA9_HPP
+#define GPSTK_FICDATA9_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "EngEphemeris.hpp"
+#include "FICData.hpp"
+#include "FICData109.hpp"
+
+namespace gpstk
+{
+ class FICData9 : public FICData
+ {
+ public:
+ /// Default constructor
+ FICData9( const gpstk::FICData109 rawsf, const gpstk::EngEphemeris ee );
+
+ /// Destructor
+ virtual ~FICData9() {}
+ protected:
+ static const double UNUSED;
+
+ void firstFiveItems( const short sfNum,
+ const gpstk::FICData109 rawsf,
+ const gpstk::EngEphemeris ee );
+
+ }; // class FICData9
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FICFilterOperators.hpp b/dev/src/FICFilterOperators.hpp
new file mode 100644
index 0000000..8664f61
--- /dev/null
+++ b/dev/src/FICFilterOperators.hpp
@@ -0,0 +1,303 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICFilterOperators.hpp
+ * gpstk::FICFilterOperators - FIC filter operators.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICFILTEROPERATORS_HPP
+#define FICFILTEROPERATORS_HPP
+
+#include "FileFilter.hpp"
+#include "FICData.hpp"
+
+namespace gpstk
+{
+ /// Removes all data that doesn't match the given SVID/PRN numbers.
+ struct FICDataFilterPRN :
+ public std::unary_function<gpstk::FICData, bool>
+ {
+ public:
+ FICDataFilterPRN(const std::list<long>& lst)
+ : prnList(lst)
+ {}
+
+ /// This should return true when the data is to be erased.
+ bool operator() (const gpstk::FICData& l) const
+ {
+ // this criteria is the same as the r44 navdump criteria
+ switch (l.blockNum)
+ {
+ case 9:
+ return find(prnList.begin(), prnList.end(), l.f[19]) ==
+ prnList.end();
+ break;
+
+ case 109:
+ return find(prnList.begin(), prnList.end(), l.i[1]) ==
+ prnList.end();
+ break;
+
+ // For 62 and 162, all SVIDs 51-63 will be added
+ // as well as any PRNs 1-32 that were selected.
+
+ case 62:
+ if (l.i[3] >= 51)
+ return false;
+ return find(prnList.begin(), prnList.end(), l.i[3]) ==
+ prnList.end();
+
+ break;
+
+ case 162:
+ if (l.i[0] >= 51)
+ return false;
+ return find(prnList.begin(), prnList.end(), l.i[0]) ==
+ prnList.end();
+ break;
+
+ default:
+ return true;
+ break;
+ }
+ }
+
+ private:
+ std::list<long> prnList;
+ };
+
+ /// Removes all data that doesn't match the given block numbers
+ struct FICDataFilterBlock :
+ public std::unary_function<gpstk::FICData, bool>
+ {
+ public:
+ FICDataFilterBlock(const std::list<long>& lst)
+ : blockList(lst)
+ {}
+
+ bool operator() (const gpstk::FICData& l) const
+ {
+ return find(blockList.begin(), blockList.end(), l.blockNum) ==
+ blockList.end();
+ }
+
+ private:
+ std::list<long> blockList;
+ };
+
+ /// Finds all data that matches the given block numbers
+ struct FICDataFindBlock :
+ public std::unary_function<gpstk::FICData, bool>
+ {
+ public:
+ FICDataFindBlock(const std::list<long>& lst)
+ : blockList(lst)
+ {}
+
+ bool operator() (const gpstk::FICData& l) const
+ {
+ return find(blockList.begin(), blockList.end(), l.blockNum) !=
+ blockList.end();
+ }
+ private:
+ std::list<long> blockList;
+ };
+
+ /// Sorting only for block 9 FICData
+ struct FICDataOperatorLessThanBlock9 :
+ public std::binary_function<gpstk::FICData, gpstk::FICData, bool>
+ {
+ public:
+ bool operator() (const gpstk::FICData& l,
+ const gpstk::FICData& r) const
+ {
+ if ( (l.blockNum != 9) || (r.blockNum != 9) )
+ return false;
+
+ // sort by transmit time, prn
+ if (l.f[5] < r.f[5])
+ return true;
+ else if (l.f[5] == r.f[5])
+ if (l.f[33] < r.f[33])
+ return true;
+ else if (l.f[33] == r.f[33])
+ if (l.f[19] < r.f[19])
+ return true;
+
+ return false;
+ }
+ };
+
+ /// Sorting only for block 109 FICData
+ struct FICDataOperatorLessThanBlock109 :
+ public std::binary_function<gpstk::FICData, gpstk::FICData, bool>
+ {
+ public:
+ bool operator() (const gpstk::FICData& l,
+ const gpstk::FICData& r) const
+ {
+ if ( (l.blockNum != 9) || (r.blockNum != 9) )
+ return false;
+
+ // sort by transmit time, prn
+ if(l.i[0] < r.i[0]) // week numbers
+ return true;
+ else if(l.i[0] == r.i[0])
+ {
+ // crack the HOW. Note: I know I'm not multiplying by 6.
+ if( ((l.i[3] >> 13) & 0x1FFFF) <
+ ((r.i[3] >> 13) & 0x1FFFF) )
+ return true;
+ else if( ((l.i[3] >> 13) & 0x1FFFF) ==
+ ((r.i[3] >> 13) & 0x1FFFF) )
+ if(l.i[1] < r.i[1])
+ return true;
+ }
+
+ return false;
+ }
+ };
+
+ /// Useful for FICDiff and others...
+ struct FICDataOperatorLessThanFull :
+ public std::binary_function<gpstk::FICData, gpstk::FICData, bool>
+ {
+ public:
+ bool operator() (const gpstk::FICData& l,
+ const gpstk::FICData& r) const
+ {
+ if (l.blockNum < r.blockNum)
+ return true;
+ if (l.blockNum > r.blockNum)
+ return false;
+
+ if ( (l.f.size() < r.f.size()) ||
+ (l.i.size() < r.i.size()) ||
+ (l.c.size() < r.c.size()))
+ return true;
+
+ if ( (l.f.size() > r.f.size()) ||
+ (l.i.size() > r.i.size()) ||
+ (l.c.size() > r.c.size()))
+ return false;
+
+ // ok, they're the same block and type of data - check
+ // the individual contents
+ std::vector<double>::size_type findex;
+ for (findex = 0; findex < l.f.size(); findex++)
+ {
+ if (l.f[findex] < r.f[findex])
+ return true;
+ if (l.f[findex] > r.f[findex])
+ return false;
+ }
+
+ std::vector<long>::size_type iindex;
+ for (iindex = 0; iindex < l.i.size(); iindex++)
+ {
+ if (l.i[iindex] < r.i[iindex])
+ return true;
+ if (l.i[iindex] > r.i[iindex])
+ return false;
+ }
+
+ std::vector<char>::size_type cindex;
+ for (cindex = 0; cindex < l.c.size(); cindex++)
+ {
+ if (l.c[cindex] < r.c[cindex])
+ return true;
+ if (l.c[cindex] > r.c[cindex])
+ return false;
+ }
+ // they're equal
+ return false;
+ }
+ };
+
+ /// Uniqueness operator for block 9 FIC data
+ struct FICDataUniqueBlock9 :
+ public std::binary_function<gpstk::FICData, gpstk::FICData, bool>
+ {
+ public:
+ bool operator() (const gpstk::FICData& l,
+ const gpstk::FICData& r) const
+ {
+ // the unique criteria are PRN, week, IODC, AS/alert bits
+ return ( (l.f[19] == r.f[19]) &&
+ (l.f[3] == r.f[3]) &&
+ (l.f[5] == r.f[5]) &&
+ (l.f[23] == r.f[23]) &&
+ (l.f[43] == r.f[43]) &&
+ ( (l.f[9] / 2048) == (r.f[9] / 2048) ) );
+ }
+ };
+
+ /// Uniqueness operator for block 109 FIC data
+ struct FICDataUniqueBlock109 :
+ public std::binary_function<gpstk::FICData, gpstk::FICData, bool>
+ {
+ public:
+ bool operator() (const gpstk::FICData& l,
+ const gpstk::FICData& r) const
+ {
+ // the unique criteria are PRN, week, IODC, AS/alert bits
+ return ( (l.i[1] == r.i[1]) &&
+ (l.i[0] == r.i[0]) &&
+ // crack IODC on subframe 1
+ ((((l.i[4] << 2) & 0x00000300) + ((l.i[9] >> 22) & 0xFF)) ==
+ (((r.i[4] << 2) & 0x00000300) + ((r.i[9] >> 22) & 0xFF))) &&
+ // crack AS/Alert on subframe 1
+ ( ((l.i[4] >> 11) & 0x3) == ((r.i[4] >> 11) & 0x3) ) &&
+ // crack AS/Alert on subframe 2
+ ( ((l.i[14] >> 11) & 0x3) == ((r.i[14] >> 11) & 0x3) ) &&
+ // crack AS/Alert on subframe 3
+ ( ((l.i[24] >> 11) & 0x3) == ((r.i[24] >> 11) & 0x3) ) );
+ }
+ };
+}
+
+#endif
+
diff --git a/dev/src/FICHeader.cpp b/dev/src/FICHeader.cpp
new file mode 100644
index 0000000..5f61abc
--- /dev/null
+++ b/dev/src/FICHeader.cpp
@@ -0,0 +1,142 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICHeader.cpp
+ * gpstk::FICHeader - container for the FIC file header data.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "StringUtils.hpp"
+#include "FICHeader.hpp"
+#include "FICStream.hpp"
+#include "FICAStream.hpp"
+
+using namespace gpstk::StringUtils;
+
+const int gpstk::FICHeader::headerSize = 40;
+
+
+namespace gpstk
+{
+ using namespace std;
+
+
+ void FICHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError)
+ {
+ string theHeader(header);
+ if(FICStream* strm = dynamic_cast<FICStream*>(&ffs))
+ {
+ // This is a binary FIC stream, so
+ // send the 40 character header, truncated or padded
+ // with ' ' as needed.
+ *strm << leftJustify(theHeader, headerSize, ' ');
+ }
+ else if (FICAStream* ficas = dynamic_cast<FICAStream*>(&ffs))
+ {
+ // If this is a FICA stream, add some extra stuff as well as
+ // send the 40 character header, truncated or padded
+ // with ' ' as needed.
+ *ficas << " " << leftJustify(theHeader, headerSize, ' ') << '\n';
+ }
+ else
+ {
+ gpstk::FFStreamError e("Attempt to write a FICHeader object"
+ " to a non-FIC(A)Stream FFStream.");
+ GPSTK_THROW(e);
+ }
+ }
+
+ void FICHeader::dump(ostream& s) const
+ {
+ s << header << endl;
+ };
+
+ void FICHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError)
+ {
+ FICStreamBase *fsb = dynamic_cast<FICStreamBase *>(&ffs);
+ if(fsb == NULL)
+ {
+ gpstk::FFStreamError e("Attempt to read a FICHeader object"
+ " from a non-FICStreamBase FFStream.");
+ GPSTK_THROW(e);
+ }
+
+ char c[headerSize + 1];
+
+ // if this is a FICA stream, get 4 characters
+ FICAStream* ficas = dynamic_cast<FICAStream*>(&ffs);
+
+ if (ficas)
+ {
+ const int blankChrs = 4;
+ char whitespaces[blankChrs + 1];
+ ffs.read(whitespaces, blankChrs);
+ }
+
+ ffs.read(c, headerSize);
+ if (ffs.gcount() != headerSize)
+ {
+ FFStreamError e("Error reading header");
+ GPSTK_THROW(e);
+ }
+
+ c[headerSize]='\0';
+ header = c;
+ fsb->headerRead=true;
+ fsb->header.header = header;
+
+ if (ficas)
+ {
+ string line;
+ ficas->formattedGetLine(line);
+ ficas->formattedGetLine(line);
+ }
+ } // end of FICHeader::getRecord()
+
+} // namespace gpstk
diff --git a/dev/src/FICHeader.hpp b/dev/src/FICHeader.hpp
new file mode 100644
index 0000000..8a0c3e1
--- /dev/null
+++ b/dev/src/FICHeader.hpp
@@ -0,0 +1,113 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICHeader.hpp
+ * gpstk::FICHeader - container for the FIC file header data.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICHEADER_HPP
+#define FICHEADER_HPP
+
+#include "FFStream.hpp"
+#include "FICBase.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is the Header for the FIC File Model.
+ * There is one 40 character header at the start of each FIC file,
+ * ASCII or binary.
+ *
+ * \sa fic_test.cpp, fic_read_write.cpp, and fica_test.cpp for examples.
+ *
+ * \sa FICStream, FICAStream, and FICData.
+ */
+ class FICHeader : public FICBase
+ {
+ public:
+ /// Default constructor
+ FICHeader() {}
+
+ /// Destructor
+ virtual ~FICHeader() {}
+
+ /// FICHeader is a header, so this function always returns true.
+ virtual bool isHeader() const {return true;}
+
+ /**
+ * This function does \b nothing.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ /// The header string.
+ std::string header;
+
+ /// constant for the header size.
+ static const int headerSize;
+
+ protected:
+ /// Writes the header string to the FFStream \a s.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError);
+
+ /**
+ * Retrieve the header string from the FFStream \a s.
+ * If the read fails for some reason, the stream will
+ * be reset to its original position, and its fail-bit
+ * will be set.
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, gpstk::StringUtils::StringException,
+ gpstk::FFStreamError);
+
+ }; // class FICHeader
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/FICStream.hpp b/dev/src/FICStream.hpp
new file mode 100644
index 0000000..5e46be9
--- /dev/null
+++ b/dev/src/FICStream.hpp
@@ -0,0 +1,96 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICStream.hpp
+ * gpstk::FICStream - binary FIC file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICSTREAM_HPP
+#define FICSTREAM_HPP
+
+#include <vector>
+#include <map>
+
+#include "FICStreamBase.hpp"
+#include "FFBinaryStream.hpp"
+#include "FICHeader.hpp"
+
+namespace gpstk
+{
+ /**
+ * This is a stream used to obtain data from a binary FIC File.
+ *
+ * \sa fic_test.cpp and fic_read_write.cpp for an example.
+ *
+ * \sa FICData and FICHeader.
+ */
+ class FICStream : public FFBinaryStream, public FICStreamBase
+ {
+ public:
+ /// default constructor
+ FICStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the FIC file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ FICStream(const char* fn,
+ std::ios::openmode mode=std::ios::in|std::ios::binary)
+ : FFBinaryStream(fn, mode)
+ {}
+
+ /// destructor per the coding standards
+ virtual ~FICStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ { FFBinaryStream::open(fn, mode); FICStreamBase::open(); }
+
+ }; // class FICStream
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/FICStreamBase.hpp b/dev/src/FICStreamBase.hpp
new file mode 100644
index 0000000..1ae37b8
--- /dev/null
+++ b/dev/src/FICStreamBase.hpp
@@ -0,0 +1,87 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FICStreamBase.hpp
+ * gpstk::FICStreamBase stores common FIC stream data.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef FICSTREAMBASE_HPP
+#define FICSTREAMBASE_HPP
+
+#include <vector>
+#include <map>
+
+#include "FICHeader.hpp"
+
+namespace gpstk
+{
+ /**
+ * Encapsulates FIC stream data for FIC and FICA files.
+ */
+ class FICStreamBase
+ {
+ public:
+ /// Default constructor
+ FICStreamBase()
+ : headerRead(false)
+ {}
+
+ /// destructor per the coding standards
+ virtual ~FICStreamBase() {}
+
+ /// resets the header info for derived classes
+ void open()
+ { headerRead = false; header = FICHeader(); }
+
+ /// Whether or not the header's been read for this file.
+ bool headerRead;
+ /// The FICHeader object for this file.
+ FICHeader header;
+
+ };
+}
+
+#endif
diff --git a/dev/src/FileFilter.hpp b/dev/src/FileFilter.hpp
new file mode 100644
index 0000000..16e397f
--- /dev/null
+++ b/dev/src/FileFilter.hpp
@@ -0,0 +1,411 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileFilter.hpp
+ * A framework for sorting and filtering file data.
+ */
+
+#ifndef GPSTK_FILEFILTER_HPP
+#define GPSTK_FILEFILTER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <functional>
+#include <algorithm>
+
+#include "FFData.hpp"
+#include "FileSpec.hpp"
+
+namespace gpstk
+{
+ /** @defgroup filedirgroup File and Directory Processing Utilities */
+ //@{
+
+ /**
+ * This class is a framework for sorting and filtering file data.
+ * It borrows several datatypes from FileSpec for cohesion of data
+ * types. Add the data to the filter, specify the parameters (date,
+ * exclusion filters, etc.), then process it. For the specific data
+ * type, you can specify your own operators for sorting, uniqueness,
+ * or almost anything else you want to do to the data.
+ *
+ * @warning The FFData class you're sorting MUST have a weak strict
+ * ordering as defined in the FileFilterOperator.
+ */
+
+ template<class FileData>
+ class FileFilter
+ {
+ public:
+ /// Default constructor
+ FileFilter(void);
+
+ /// Destructor
+ virtual ~FileFilter();
+
+ /// Adds the given data into the filter.
+ FileFilter& addData(const FileData& ffd);
+
+ /// Adds arbitrary data to the filter.
+ FileFilter& addData(const std::list<FileData>& datavec);
+
+ /// Sorts the data.
+ /// @warning bp MUST be a strict weak ordering!
+ template <class Compare>
+ FileFilter& sort(Compare comp)
+ {
+ // FIX: this someday...
+ // this is a total hack until Solaris gets their act together and
+ // gets list::sort() working again
+ // all the code below can be replaced (someday) by this one line:
+ // dataVec.sort(comp);
+
+ // make a vector of pointer to list iterator objects...
+ std::vector<lItrType> data(dataVec.size());
+ lItrType itr = dataVec.begin();
+ typename std::vector<lItrType>::size_type i = 0;
+ while (itr != dataVec.end())
+ {
+ data[i] = itr;
+ i++;
+ itr++;
+ }
+
+ // use SortAdapter to use comp with the pointer vector
+ // then sort the vector
+ SortAdapter<Compare> sa(comp);
+ std::stable_sort(data.begin(), data.end(), sa);
+
+ // make a new list of the data in the right order, then copy that
+ // over dataVec.
+ lType fdlist;
+ for (i = 0; i < data.size(); i++)
+ {
+ fdlist.push_back(*data[i]);
+ }
+ dataVec = fdlist;
+
+/*
+ // move the items into the correct order with splice.
+ // splice does nothing if (itr == data[i]) || (itr == ++data[i])
+ // so the data is inserted backwards to avoid this...
+ i = data.size();
+ while (i != 0)
+ {
+ itr = dataVec.begin();
+ --i;
+ dataVec.splice(itr, dataVec, data[i]);
+ }
+*/
+ return *this;
+ }
+
+
+ /// Combines the data from the input filter to this object.
+ FileFilter& merge(const FileFilter& right);
+
+ /// Combines the data from the input filter to this object using
+ /// the predicate to sort the data it merges.
+ /// This should use list::merge(list, bp) but since it's broken in
+ /// forte...
+ template <class Compare>
+ FileFilter& merge(const FileFilter& right, Compare bp)
+ { merge(right); sort(bp); return *this; }
+
+ /// After sorting, use this to filter the data.
+ /// @warning The data must be sorted first
+ template <class BinaryPredicate>
+ FileFilter& unique(BinaryPredicate bp)
+ {
+ // FIX: unique is broken or doesnt like my syntax
+ // so i wrote my own version of it
+// list<FileData>::iterator itr =
+// unique(dataVec.begin(), dataVec.end(), bp);
+ filtered = 0;
+
+ typename std::list<FileData>::iterator first = dataVec.begin();
+ typename std::list<FileData>::iterator second= dataVec.begin();
+ second++;
+
+ // keep only the first of many unique values
+ while (second != dataVec.end())
+ {
+ if ( bp(*first, *second))
+ {
+ second = dataVec.erase(second);
+ filtered++;
+ }
+ else
+ {
+ first++;
+ second++;
+ }
+ }
+
+ return *this;
+ }
+
+ /// This filters data based on a single test. All data that
+ /// passes the UnaryPredicate (i.e. it returns true) is removed
+ /// @warning Depending on the filter, your data may need to be sorted
+ template <class Predicate>
+ FileFilter& filter(Predicate up)
+ {
+ // delete all values for which up() is true
+ filtered = 0;
+
+ typename std::list<FileData>::iterator itr = dataVec.begin();
+
+ while (itr != dataVec.end())
+ {
+ if (up(*itr))
+ {
+ itr = dataVec.erase(itr);
+ filtered++;
+ }
+ else
+ itr++;
+ }
+
+ return *this;
+ }
+
+ /// Applies Operation on all the data elements, counting each one that
+ /// gets modified (for which Operation returns true). The operation
+ /// is passed by reference so that it can retain state information
+ /// for use by the program calling it.
+ template <class Operation>
+ FileFilter& touch(Operation& op)
+ {
+ filtered = 0;
+
+ typename std::list<FileData>::iterator itr = dataVec.begin();
+
+ while (itr != dataVec.end())
+ {
+ if (op(*itr))
+ filtered++;
+ itr++;
+ }
+
+ return *this;
+ }
+
+ /// a const operator touch for the classes that need it.
+ template <class Operation>
+ FileFilter& touch(const Operation& op)
+ { Operation o(op); return touch(o); }
+
+ /// Returns two lists - one of the data in *this that isn't in r and
+ /// the second of data in r that isn't in *this. Remember that /a p
+ /// has to be a strict weak ordering on the data.
+ /// @warning the input data needs to be sorted according to /a p
+ /// before running diff(). This also means that /a p is a strict
+ /// weak ordering on the data (i.e. /a p sorts the data).
+ template <class BinaryPredicate>
+ std::pair< std::list<FileData>, std::list<FileData> >
+ diff(const FileFilter<FileData>& r, BinaryPredicate p) const
+ {
+ std::pair< std::list<FileData>, std::list<FileData> > toReturn;
+
+ std::set_difference(dataVec.begin(), dataVec.end(),
+ r.dataVec.begin(), r.dataVec.end(),
+ std::inserter(toReturn.first,
+ toReturn.first.begin()),
+ p);
+
+ std::set_difference(r.dataVec.begin(), r.dataVec.end(),
+ dataVec.begin(), dataVec.end(),
+ std::inserter(toReturn.second,
+ toReturn.second.begin()),
+ p);
+
+ return toReturn;
+ }
+
+ /// Returns a list of data matching the given unary predicate.
+ template <class Predicate>
+ std::list<FileData> findAll(Predicate p) const
+ {
+ std::list<FileData> toReturn;
+ typename std::list<FileData>::const_iterator itr = dataVec.begin();
+
+ while (itr != dataVec.end())
+ {
+ if (p(*itr))
+ toReturn.push_back((*itr));
+ itr++;
+ }
+
+ return toReturn;
+
+ }
+
+ /// Returns the number of items filtered from the last filter()
+ /// touch() or unique() call.
+ int getFiltered() const {return filtered;}
+
+ /// Returns the contents of the data list.
+ std::list<FileData>& getData(void) {return dataVec;}
+
+ /// Returns the contents of the data list, const.
+ std::list<FileData> getData(void) const {return dataVec;}
+
+ /// Returns the number of data items in the filter.
+ typename std::list<FileData>::size_type getDataCount(void) const
+ { return dataVec.size(); }
+
+ typename std::list<FileData>::const_iterator begin() const
+ { return dataVec.begin(); }
+
+ typename std::list<FileData>::const_iterator end() const
+ { return dataVec.end(); }
+
+ typename std::list<FileData>::iterator begin()
+ { return dataVec.begin(); }
+
+ typename std::list<FileData>::iterator end()
+ { return dataVec.end(); }
+
+ bool empty() const
+ { return dataVec.empty(); }
+
+ void clear()
+ { dataVec.clear(); }
+
+ typename std::list<FileData>::size_type size()
+ { return dataVec.size(); }
+
+ FileData& front()
+ { return dataVec.front(); }
+
+ const FileData& front() const
+ { return dataVec.front(); }
+
+ FileData& back()
+ { return dataVec.back(); }
+
+ const FileData& back() const
+ { return dataVec.back(); }
+
+ protected:
+ /// List of file data to be filtered.
+ typedef std::list<FileData> lType;
+ lType dataVec;
+ typedef typename std::list<FileData>::iterator lItrType;
+
+ /// SortAdapter is an adapter class that takes any comparison
+ /// function and instead uses list iterator objects instead
+ /// of FileData. This is only used by sort() and shouldn't be
+ /// used elsewhere.
+ template<class Compare>
+ class SortAdapter :
+ public std::binary_function<lItrType, lItrType, bool>
+ {
+ public:
+ SortAdapter(Compare& c)
+ : comp(c)
+ {}
+
+ bool operator()(const lItrType l,
+ const lItrType r) const
+ {
+ return comp(*l, *r);
+ }
+ private:
+ Compare comp;
+ };
+
+ /// A count of the last number of items filtered
+ int filtered;
+ };
+
+ //@}
+
+ template<class FileData>
+ FileFilter<FileData> :: FileFilter(void)
+ : filtered(0)
+ {}
+
+ template<class FileData>
+ FileFilter<FileData> :: ~FileFilter()
+ {
+ }
+
+ template<class FileData>
+ FileFilter<FileData>& FileFilter<FileData> ::
+ addData(const FileData& ffd)
+ {
+ dataVec.push_back(ffd);
+ return *this;
+ }
+
+ template <class FileData>
+ FileFilter<FileData>& FileFilter<FileData> ::
+ addData(const std::list<FileData>& datavec)
+ {
+ std::copy(datavec.begin(), datavec.end(),
+ std::inserter(dataVec, dataVec.begin()));
+ return *this;
+ }
+
+ template <class FileData>
+ FileFilter<FileData>&
+ FileFilter<FileData> ::
+ merge(const FileFilter<FileData>& right)
+ {
+ // cast out const to use the non-const version of getData()
+ FileFilter<FileData>& r = (FileFilter<FileData>&)(right);
+
+ // copy rightData into *this
+ std::list<FileData>& rightData = r.getData();
+ std::copy(rightData.begin(), rightData.end(),
+ std::inserter(dataVec, dataVec.begin()));
+
+ return *this;
+ }
+
+} // namespace gpstk
+
+#endif // GPSTK_FILEFILTER_HPP
diff --git a/dev/src/FileFilterFrame.hpp b/dev/src/FileFilterFrame.hpp
new file mode 100644
index 0000000..721f931
--- /dev/null
+++ b/dev/src/FileFilterFrame.hpp
@@ -0,0 +1,378 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileFilterFrame.hpp
+ * Wrapper for gpstk::FileHunter and gpstk::FileFilter
+ */
+
+#ifndef GPSTK_FILEFILTERFRAME_HPP
+#define GPSTK_FILEFILTERFRAME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileSpec.hpp"
+#include "FileFilter.hpp"
+#include "FileHunter.hpp"
+#include "FileUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+
+ /**
+ * This class is a wrapper for FileHunter and FileFilter, allowing you
+ * to easily pick what files you want to process and how to process
+ * them. In the constructors, providing a start and end time will
+ * allow FileHunter to pick the correct files for that date range.
+ * After the object is built, it is ready for filtering.
+ *
+ * Use the filter(), sort(), unique() and touch() operators to run
+ * whatever operations you want to on the data, then write out the
+ * files when you're done. You can also get access to the data with
+ * getData() and run whatever other post processing tools you would like
+ * to.
+ *
+ * See the examples in FileFilterFrameTest.cpp for a demonstration.
+ */
+ template <class FileStream, class FileData>
+ class FileFilterFrame : public FileFilter<FileData>
+ {
+ public:
+ /// Default constructor
+ FileFilterFrame(const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception);
+
+ /// Takes a list of files to open in lieu of day times
+ FileFilterFrame(const std::vector<std::string>& fileList,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception);
+
+ /// Takes a file name for a single file filter.
+ /// This can throw an exception when there's a file error.
+ FileFilterFrame(const std::string& filename,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception);
+
+ /// Uses the FileSpec to retrieve files. Use filter like you would
+ /// in FileHunter, to filter FOR stations, receivers, etc.
+ /// This can throw an exception when there's a file error.
+ FileFilterFrame(const FileSpec& spec,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME,
+ const std::vector<FileHunter::FilterPair>& filter =
+ std::vector<FileHunter::FilterPair>())
+ throw(gpstk::Exception);
+
+ /// Gets the files from the file spec and the time, then adds
+ /// the data to the filter. Use filter like you would
+ /// in FileHunter, to filter FOR stations, receivers, etc.
+ FileFilterFrame&
+ newSource(const FileSpec& filespec,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME,
+ const std::vector<FileHunter::FilterPair>& filter =
+ std::vector<FileHunter::FilterPair>())
+ throw(gpstk::Exception);
+
+ /// Reads in the file and adds the data to the filter.
+ FileFilterFrame&
+ newSource(const std::string& filename,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception);
+
+ /// Takes a list of files to open in lieu of day times
+ FileFilterFrame&
+ newSource(const std::vector<std::string>& fileList,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception);
+
+ virtual ~FileFilterFrame() {}
+
+ /**
+ * Writes the data to the file outputFile, truncating the
+ * output file if it already exists unless append is true.
+ * This can throw an exception when there's a file error.
+ * @return true when it works.
+ * @warning This will not write out headers for files that need them,
+ * and files that depend on header data will (like RINEX) will not
+ * be written correctly with this function. Use
+ * FileFilterFrameWithHeader for those file types.
+ */
+ bool writeFile(const std::string& outputFile,
+ const bool append = false) const
+ throw(gpstk::Exception);
+
+ /**
+ * Writes the data to the supplied stream.
+ * This can throw an exception when there's a file error.
+ * @return true when it works.
+ * @warning This will not write out headers for files that need them,
+ * and files that depend on header data will (like RINEX) will not
+ * be written correctly with this function. Use
+ * FileFilterFrameWithHeader for those file types.
+ */
+ bool writeFile(FileStream& stream) const
+ throw(gpstk::Exception);
+
+ protected:
+ /// Run init() to load the data into the filter.
+ void init(const std::vector<FileHunter::FilterPair>& filter=
+ std::vector<FileHunter::FilterPair>())
+ throw(gpstk::Exception);
+
+
+ protected:
+ /// The file spec for this filter
+ FileSpec fs;
+ /// the start and end dates for the filter.
+ gpstk::DayTime startTime, endTime;
+
+ };
+
+ //@}
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream,FileData> ::
+ FileFilterFrame(const gpstk::DayTime& start,
+ const gpstk::DayTime& end)
+ throw(gpstk::Exception)
+ : startTime(start), endTime(end)
+ {}
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream,FileData> ::
+ FileFilterFrame(const std::vector<std::string>& fileList,
+ const gpstk::DayTime& start,
+ const gpstk::DayTime& end)
+ throw(gpstk::Exception)
+ : startTime(start), endTime(end)
+ {
+ typename std::vector<std::string>::const_iterator itr;
+ for (itr = fileList.begin(); itr != fileList.end(); itr++)
+ {
+ fs.newSpec(*itr);
+ init();
+ }
+ }
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream,FileData> ::
+ FileFilterFrame(const std::string& filename,
+ const gpstk::DayTime& start,
+ const gpstk::DayTime& end)
+ throw(gpstk::Exception)
+ : fs(filename), startTime(start), endTime(end)
+ {
+ init();
+ }
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream,FileData> ::
+ FileFilterFrame(const FileSpec& spec,
+ const gpstk::DayTime& start,
+ const gpstk::DayTime& end,
+ const std::vector<FileHunter::FilterPair>& filter)
+ throw(gpstk::Exception)
+ : fs(spec), startTime(start), endTime(end)
+ {
+ init(filter);
+ }
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream, FileData>&
+ FileFilterFrame<FileStream,FileData> ::
+ newSource(const FileSpec& filespec,
+ const gpstk::DayTime& start,
+ const gpstk::DayTime& end,
+ const std::vector<FileHunter::FilterPair>& filter)
+ throw(gpstk::Exception)
+ {
+ startTime = start;
+ endTime = end;
+
+ fs = filespec;
+ init(filter);
+ return *this;
+ }
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream, FileData>&
+ FileFilterFrame<FileStream,FileData> ::
+ newSource(const std::string& filename,
+ const gpstk::DayTime& start,
+ const gpstk::DayTime& end)
+ throw(gpstk::Exception)
+ {
+ startTime = start;
+ endTime = end;
+
+ fs.newSpec(filename);
+ init();
+ return *this;
+ }
+
+ template <class FileStream, class FileData>
+ FileFilterFrame<FileStream, FileData>&
+ FileFilterFrame<FileStream,FileData> ::
+ newSource(const std::vector<std::string>& fileList,
+ const gpstk::DayTime& start,
+ const gpstk::DayTime& end)
+ throw(gpstk::Exception)
+ {
+ startTime = start;
+ endTime = end;
+
+ typename std::vector<std::string>::const_iterator itr;
+ for (itr = fileList.begin(); itr != fileList.end(); itr++)
+ {
+ fs.newSpec(*itr);
+ init();
+ }
+ return *this;
+ }
+
+ template <class FileStream, class FileData>
+ void
+ FileFilterFrame<FileStream,FileData> ::
+ init(const std::vector<FileHunter::FilterPair>& filter)
+ throw(gpstk::Exception)
+ {
+ // find the files
+ FileHunter fh(fs);
+
+ typename std::vector<FileHunter::FilterPair>::const_iterator itr =
+ filter.begin();
+ while (itr != filter.end())
+ {
+ fh.setFilter((*itr).first, (*itr).second);
+ itr++;
+ }
+
+ std::vector<std::string> listOfFiles =
+ fh.find(startTime, endTime, FileSpec::ascending);
+
+ // for each file, read it into the filter
+ typename std::vector<std::string>::iterator i;
+ for(i = listOfFiles.begin(); i != listOfFiles.end(); i++)
+ {
+ FileStream s((*i).c_str());
+
+ if (s.good())
+ {
+ s.exceptions(std::ios::failbit);
+
+ FileData data;
+
+ while (s >> data)
+ {
+ addData(data);
+ }
+ }
+ }
+ }
+
+ template <class FileStream, class FileData>
+ bool FileFilterFrame<FileStream,FileData> ::
+ writeFile(const std::string& str,
+ const bool append) const
+ throw(gpstk::Exception)
+ {
+ if (!this->dataVec.empty())
+ {
+ // make the directory (if needed)
+ std::string::size_type pos = str.rfind('/');
+ if (pos != std::string::npos)
+ gpstk::FileUtils::makeDir(str.substr(0,pos).c_str(), 0755);
+
+ std::ios::openmode mode = std::ios::out;
+ if (append)
+ mode |= (std::ios::app|std::ios::ate);
+
+ FileStream stream(str.c_str(), mode);
+ return writeFile(stream);
+ }
+
+ return true;
+ }
+
+ template <class FileStream, class FileData>
+ bool FileFilterFrame<FileStream,FileData> ::
+ writeFile(FileStream& stream)
+ const throw(gpstk::Exception)
+ {
+ if (!this->dataVec.empty())
+ {
+ stream.exceptions(std::ios::failbit);
+
+ typename std::list<FileData>::const_iterator index;
+ for(index = this->dataVec.begin(); index != this->dataVec.end(); index++)
+ (*index).putRecord(stream);
+ }
+
+ return true;
+ }
+
+} // namespace gpstk
+
+#endif // GPSTK_FILEFILTERFRAME_HPP
diff --git a/dev/src/FileFilterFrameWithHeader.hpp b/dev/src/FileFilterFrameWithHeader.hpp
new file mode 100644
index 0000000..1d5bf18
--- /dev/null
+++ b/dev/src/FileFilterFrameWithHeader.hpp
@@ -0,0 +1,433 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileFilterFrameWithHeader.hpp
+ * Wrapper for gpstk::FileHunter and gpstk::FileFilter that also handles header data
+ */
+
+#ifndef GPSTK_FILEFILTERFRAMEWITHHEADER_HPP
+#define GPSTK_FILEFILTERFRAMEWITHHEADER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileFilterFrame.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+
+ /**
+ * This is just like FileFilterFrame but it can also handle header
+ * data. The header data is stored in an internal list that can be
+ * accessed with the *Header() methods below. Certain classes (like
+ * RINEX Obs and Met) have filter functions that can be used with
+ * touch() to combine header data from various files. The merge utilities
+ * in wonky use this ability, and other file types with header data
+ * can benefit from using this class's ability to store and write
+ * header data - see the RINEX and FIC GFW classes for more examples.
+ *
+ * When initializing, this uses the FileFilterFrame::init() to read
+ * the FileData into the filter, then does a second pass with its own
+ * init() function to read the headers from those files. This
+ * is a little inefficient, but the goal of these classes was never
+ * efficiency.
+ */
+ template <class FileStream, class FileData, class FileHeader>
+ class FileFilterFrameWithHeader :
+ public FileFilterFrame<FileStream, FileData>
+ {
+ public:
+ /// Default constructor
+ FileFilterFrameWithHeader(const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception) :
+ FileFilterFrame<FileStream, FileData>(start, end)
+ {}
+
+ /// Takes a list of files to open in lieu of day times
+ FileFilterFrameWithHeader(const std::vector<std::string>& fileList,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception) :
+ FileFilterFrame<FileStream, FileData>(fileList, start, end)
+ {
+ std::vector<std::string>::const_iterator itr = fileList.begin();
+ while (itr != fileList.end())
+ {
+ this->fs.newSpec(*itr);
+ init();
+ itr++;
+ }
+ }
+
+ /// Takes a file name for a single file filter.
+ /// This can throw an exception when there's a file error.
+ FileFilterFrameWithHeader(const std::string& filename,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception) :
+ FileFilterFrame<FileStream, FileData>(filename, start, end)
+ {init();}
+
+ /// Uses the FileSpec to retrieve files. Use filter like you would
+ /// in FileHunter, to filter FOR stations, receivers, etc.
+ /// This can throw an exception when there's a file error.
+ FileFilterFrameWithHeader(const FileSpec& spec,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME,
+ const std::vector<FileHunter::FilterPair>& filter =
+ std::vector<FileHunter::FilterPair>())
+ throw(gpstk::Exception) :
+ FileFilterFrame<FileStream, FileData>(spec, start, end, filter)
+ {init(filter);}
+
+ /// Gets the files from the file spec and the time, then adds
+ /// the data to the filter. Use filter like you would
+ /// in FileHunter, to filter FOR stations, receivers, etc.
+ FileFilterFrameWithHeader&
+ newSource(const FileSpec& filespec,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME,
+ const std::vector<FileHunter::FilterPair>& filter =
+ std::vector<FileHunter::FilterPair>())
+ throw(gpstk::Exception)
+ {
+ FileFilterFrame<FileStream, FileData>::newSource(filespec, start,
+ end, filter);
+ init(filter);
+ return *this;
+ }
+
+ /// Reads in the file and adds the data to the filter.
+ FileFilterFrameWithHeader&
+ newSource(const std::string& filename,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception)
+ {
+ FileFilterFrame<FileStream, FileData>::newSource(filename, start,
+ end);
+ init();
+ return *this;
+ }
+
+ /// Reads in the file and adds the data to the filter.
+ FileFilterFrameWithHeader&
+ newSource(const std::vector<std::string>& fileList,
+ const gpstk::DayTime& start =
+ gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end =
+ gpstk::DayTime::END_OF_TIME)
+ throw(gpstk::Exception)
+ {
+ FileFilterFrame<FileStream, FileData>::newSource(fileList, start,
+ end);
+ typename std::vector<std::string>::const_iterator itr;
+ for (itr = fileList.begin(); itr != fileList.end(); itr++)
+ {
+ this->fs.newSpec(*itr);
+ init();
+ }
+ return *this;
+ }
+
+ virtual ~FileFilterFrameWithHeader() {}
+
+ /**
+ * Writes the data to the file outputFile with the given header.
+ * This will overwrite any existing file with the same name.
+ * This can throw an exception when there's a file error.
+ * @return true when it works.
+ * @warning This will not write out headers for files that need them.
+ */
+ bool writeFile(const std::string& outputFile,
+ const FileHeader& fh) const
+ throw(gpstk::Exception);
+
+ /** performs the operation op on the header list. */
+ template <class Operation>
+ FileFilterFrameWithHeader& touchHeader(Operation& op)
+ {
+ typename std::list<FileHeader>::iterator itr = headerList.begin();
+
+ while (itr != headerList.end())
+ {
+ op(*itr);
+ itr++;
+ }
+
+ return *this;
+ }
+
+ /// Returns the contents of the header data list.
+ std::list<FileHeader>& getHeaderData(void) {return headerList;}
+
+ /// Returns the contents of the header data list, const.
+ std::list<FileHeader> getHeaderData(void) const {return headerList;}
+
+ /// Returns the number of data items in the header list.
+ typename std::list<FileHeader>::size_type getHeaderCount(void) const
+ { return headerList.size(); }
+
+ typename std::list<FileHeader>::const_iterator beginHeader() const
+ throw(gpstk::InvalidRequest);
+
+ typename std::list<FileHeader>::const_iterator endHeader() const
+ throw(gpstk::InvalidRequest);
+
+ typename std::list<FileHeader>::iterator beginHeader()
+ throw(gpstk::InvalidRequest);
+
+ typename std::list<FileHeader>::iterator endHeader()
+ throw(gpstk::InvalidRequest);
+
+ bool emptyHeader() const
+ { return headerList.empty(); }
+
+ typename std::list<FileHeader>::size_type sizeHeader()
+ { return headerList.size(); }
+
+ FileHeader& frontHeader()
+ throw(gpstk::InvalidRequest);
+
+ const FileHeader& frontHeader() const
+ throw(gpstk::InvalidRequest);
+
+ FileHeader& backHeader()
+ throw(gpstk::InvalidRequest);
+
+ const FileHeader& backHeader() const
+ throw(gpstk::InvalidRequest);
+
+ protected:
+ /// Run init() to load the data into the filter.
+ void init(const std::vector<FileHunter::FilterPair>& filter=
+ std::vector<FileHunter::FilterPair>())
+ throw(gpstk::Exception);
+
+ /// Check to make sure headerList is empty
+ /// @throw InvalidRequest if headerList is empty
+ inline void chl(const std::string& req) throw(gpstk::InvalidRequest)
+ {
+ gpstk::InvalidRequest exc("Header list is empty attempting to"
+ " satisfy "+req+" request.");
+ if (headerList.empty())
+ {
+ GPSTK_THROW(exc);
+ }
+ }
+
+ protected:
+ std::list<FileHeader> headerList;
+ };
+
+ //@}
+
+ template <class FileStream, class FileData, class FileHeader>
+ bool FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::
+ writeFile(const std::string& outputFile,
+ const FileHeader& fh) const
+ throw(gpstk::Exception)
+ {
+ // make the directory (if needed)
+ std::string::size_type pos = outputFile.rfind('/');
+ if (pos != std::string::npos)
+ gpstk::FileUtils::makeDir(outputFile.substr(0,pos).c_str(), 0755);
+
+ FileStream stream(outputFile.c_str(), std::ios::out|std::ios::trunc);
+ stream.exceptions(std::ios::failbit);
+
+ stream << fh;
+
+ typename std::list<FileData>::const_iterator index;
+ for(index = this->dataVec.begin(); index != this->dataVec.end(); index++)
+ stream << (*index);
+ return true;
+ }
+
+ template <class FileStream, class FileData, class FileHeader>
+ typename std::list<FileHeader>::const_iterator
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::beginHeader()
+ const throw(gpstk::InvalidRequest)
+ {
+ try { chl("beginHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.begin();
+ }
+
+ template <class FileStream, class FileData, class FileHeader>
+ typename std::list<FileHeader>::const_iterator
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::endHeader()
+ const throw(gpstk::InvalidRequest)
+ {
+ try { chl("endHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.end();
+ }
+
+ template <class FileStream, class FileData, class FileHeader>
+ typename std::list<FileHeader>::iterator
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::beginHeader()
+ throw(gpstk::InvalidRequest)
+ {
+ try { chl("beginHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.begin();
+ }
+
+
+ template <class FileStream, class FileData, class FileHeader>
+ typename std::list<FileHeader>::iterator
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::endHeader()
+ throw(gpstk::InvalidRequest)
+ {
+ try { chl("endHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.end();
+ }
+
+ template <class FileStream, class FileData, class FileHeader>
+ FileHeader&
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::frontHeader()
+ throw(gpstk::InvalidRequest)
+ {
+ try { chl("frontHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.front();
+ }
+
+
+ template <class FileStream, class FileData, class FileHeader>
+ const FileHeader&
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::frontHeader()
+ const throw(gpstk::InvalidRequest)
+ {
+ try { chl("frontHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.front();
+ }
+
+
+ template <class FileStream, class FileData, class FileHeader>
+ FileHeader&
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::backHeader()
+ throw(gpstk::InvalidRequest)
+ {
+ try { chl("backHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.back();
+ }
+
+
+ template <class FileStream, class FileData, class FileHeader>
+ const FileHeader&
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::backHeader()
+ const throw(gpstk::InvalidRequest)
+ {
+ try { chl("backHeader"); }
+ catch(gpstk::InvalidRequest exc)
+ { GPSTK_RETHROW(exc); }
+ return headerList.back();
+ }
+
+ template <class FileStream, class FileData, class FileHeader>
+ void
+ FileFilterFrameWithHeader<FileStream,FileData,FileHeader> ::
+ init(const std::vector<FileHunter::FilterPair>& filter)
+ throw(gpstk::Exception)
+ {
+ // find the files
+ FileHunter fh(this->fs);
+
+ typename std::vector<FileHunter::FilterPair>::const_iterator itr =
+ filter.begin();
+ while (itr != filter.end())
+ {
+ fh.setFilter((*itr).first, (*itr).second);
+ itr++;
+ }
+
+ std::vector<std::string> listOfFiles =
+ fh.find(this->startTime, this->endTime, FileSpec::ascending);
+
+ // for each file, just read the header
+ typename std::vector<std::string>::iterator i;
+ for(i = listOfFiles.begin(); i != listOfFiles.end(); i++)
+ {
+ FileStream s((*i).c_str());
+
+ if (s.good())
+ {
+ s.exceptions(std::ios::failbit);
+
+ FileHeader header;
+ s >> header;
+ headerList.push_back(header);
+ }
+ }
+ }
+
+} // namespace gpstk
+
+#endif //GPSTK_FILEFILTERFRAMEWITHHEADER_HPP
diff --git a/dev/src/FileHunter.cpp b/dev/src/FileHunter.cpp
new file mode 100644
index 0000000..132701b
--- /dev/null
+++ b/dev/src/FileHunter.cpp
@@ -0,0 +1,698 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FileHunter.cpp
+ * Find all files matching a specification.
+ */
+
+#include "FileHunter.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+// headers for directory searching interface
+#ifndef _WIN32
+#include <unistd.h>
+#include <dirent.h>
+#else
+#include <io.h>
+#include <direct.h>
+#define PATH_MAX _MAX_PATH
+#endif
+
+namespace gpstk
+{
+ FileHunter::FileHunter(const string& filespec)
+ throw(FileHunterException)
+ {
+ try
+ {
+ init(filespec);
+ }
+ catch (FileHunterException& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ }
+
+ FileHunter::FileHunter(const FileSpec& filespec)
+ throw(FileHunterException)
+ {
+ try
+ {
+ init(filespec.getSpecString());
+ }
+ catch (FileHunterException& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ }
+
+ FileHunter& FileHunter::newHunt(const string& filespec)
+ throw(FileHunterException)
+ {
+ try
+ {
+ init(filespec);
+ }
+ catch (FileHunterException& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ return *this;
+ }
+
+ FileHunter& FileHunter::setFilter(const FileSpec::FileSpecType fst,
+ const vector<string>& filter)
+ throw(FileHunterException)
+ {
+ // try to find the field in the fileSpecList.
+ vector<FileSpec>::iterator itr = fileSpecList.begin();
+ while (itr != fileSpecList.end())
+ {
+ if ((*itr).hasField(fst))
+ break;
+ itr++;
+ }
+ // found the field - add the filter.
+ if (itr != fileSpecList.end())
+ {
+ filterList.push_back(FilterPair(fst, filter));
+ return *this;
+ }
+ // didn't find it - throw an exception
+ else
+ {
+ FileHunterException fhe("The FileSpec does not have a field: " +
+ FileSpec::convertFileSpecType(fst));
+ return *this;
+ }
+ }
+
+ vector<string> FileHunter::find(const DayTime& start,
+ const DayTime& end,
+ const FileSpec::FileSpecSortType fsst,
+ enum FileChunking chunk) const
+ throw(FileHunterException)
+ {
+
+ // stupidity check
+ if (end < start)
+ {
+ FileHunterException fhe("The times are specified incorrectly");
+ GPSTK_THROW(fhe);
+ }
+
+ // move the start time back to a boundary defined by the file
+ // chunking
+ DayTime exStart;
+ switch(chunk)
+ {
+ case WEEK:
+ exStart = DayTime(start.GPSfullweek(), 0.0, start.GPSyear());
+ break;
+ case DAY:
+ exStart = DayTime(start.DOYyear(), start.DOYday(), 0.0);
+ break;
+ case HOUR:
+ exStart = DayTime(start.year(), start.month(),
+ start.day(), start.hour(),
+ 0, 0.0);
+ break;
+ case MINUTE:
+ exStart = DayTime(start.year(), start.month(),
+ start.day(), start.hour(),
+ start.minute(), 0.0);
+ break;
+ }
+
+ vector<string> toReturn;
+ // seed the return vector with an empty string. you'll see why later
+ toReturn.push_back(string());
+
+ try
+ {
+ vector<FileSpec>::const_iterator itr = fileSpecList.begin();
+
+#ifdef _WIN32
+ // If Windows, we should seed it with the drive spec
+ if (itr != fileSpecList.end())
+ {
+ toReturn[0] = (*itr).getSpecString() + string(1,'\\');
+ itr++;
+ }
+#endif
+#ifdef __CYGWIN__
+ // If Cygwin AND the user is attempting to use DOS file paths,
+ // need to see with the /cygdrive "head".
+ if (itr != fileSpecList.end())
+ {
+ toReturn[0] = string(1,slash) + (*itr).getSpecString();
+ itr++;
+ }
+#endif
+
+ while (itr != fileSpecList.end())
+ {
+ vector<string> toReturnTemp;
+
+ // counting variables
+ vector<string>::size_type i,j;
+
+ for(i = 0; i < toReturn.size(); i++)
+ {
+ // search for the next entries
+
+ //Debug
+ //printf("In .find() before call to serachHelper()\n");
+ //string temp = (*itr).createSearchString();
+ //printf(" toReturn[%d]:'%s', spec:'%s'\n",
+ // i,toReturn[i].c_str(),temp.c_str());
+
+ vector<string> newEntries = searchHelper(toReturn[i],*itr);
+ //Debug
+ /*
+ vector<string>::iterator itr1 = newEntries.begin();
+ int j1 = 0;
+ printf("In .find() after call to searchHelper\n");
+ while (itr1 != newEntries.end())
+ {
+ printf("toReturn[%d],item %d,'%s'\n",i,j1,(*itr1).c_str());
+ itr1++;
+ j1++;
+ }
+ printf("In .find(). end of list\n");
+ */
+ // after getting the potential entries, filter
+ // them based on the user criteria...
+ filterHelper(newEntries, *itr);
+
+ //Debug
+ /*
+ vector<string>::iterator itr2 = newEntries.begin();
+ int j2 = 0;
+ printf("In .find() after call to filterHelper\n");
+ while (itr2 != newEntries.end())
+ {
+ printf("toReturn[%d],item %d,'%s'\n",i,j2,(*itr2).c_str());
+ itr2++;
+ j2++;
+ }
+ printf("In .find(). end of list\n");
+ */
+
+ // for each new entry, check the time (if possible)
+ // then add it if it's in the correct time range.
+ // this is why we need to enter an empty string to
+ // seed toReturn
+ for(j = 0; j < newEntries.size(); j++)
+ {
+ try
+ {
+ DayTime fileDT = (*itr).extractDayTime(newEntries[j]);
+ if ( (fileDT >= exStart) && (fileDT <= end) )
+ {
+#ifdef _WIN32
+ if (toReturn[i].empty())
+ toReturnTemp.push_back(newEntries[j]);
+ else
+ {
+ if ( toReturn[i][toReturn[i].size()-1]=='\\')
+ toReturnTemp.push_back(toReturn[i] + newEntries[j]);
+ else
+ toReturnTemp.push_back(toReturn[i] + string(1,'\\') +
+ newEntries[j]);
+ }
+#else
+ toReturnTemp.push_back(toReturn[i] + string(1,slash) +
+ newEntries[j]);
+#endif
+ }
+ }
+ // if you can't make a DayTime, just add it -
+ // most likely, this is a field that you can't
+ // make a DayTime out of
+ catch (FileSpecException &e)
+ {
+#ifdef _WIN32
+ if (toReturn[i].empty())
+ toReturnTemp.push_back(newEntries[j]);
+ else
+ {
+ if ( toReturn[i][toReturn[i].size()-1]=='\\')
+ toReturnTemp.push_back(toReturn[i] + newEntries[j]);
+ else
+ toReturnTemp.push_back(toReturn[i] + string(1,'\\') +
+ newEntries[j]);
+ }
+#else
+ toReturnTemp.push_back(toReturn[i] + string(1,slash) +
+ newEntries[j]);
+#endif
+ }
+ }
+ }
+
+ toReturn = toReturnTemp;
+
+ // Debug
+ /*
+ vector<string>::iterator itr3 = toReturn.begin();
+ int j3 = 0;
+ printf("In .find() just above toReturn empty check.\n");
+ while (itr3 != toReturn.end())
+ {
+ printf("toReturn[%d],'%s'\n",j3,(*itr3).c_str());
+ itr3++;
+ j3++;
+ }
+ printf("In .find(). end of list\n");
+ */
+
+ // if at any time toReturn is empty, then there are no matches
+ // so just return
+ if (toReturn.empty())
+ return toReturn;
+
+ itr++;
+ }
+
+ // sort the list by the file spec of the last field
+ itr--;
+ (*itr).sortList(toReturn, fsst);
+
+ return toReturn;
+ }
+ catch(...)
+ {
+ return toReturn;
+ }
+ }
+
+ void FileHunter::init(const string& filespec)
+ throw(FileHunterException)
+ {
+ try
+ {
+ fileSpecList.clear();
+ filterList.clear();
+
+ string fs(filespec);
+
+ // If working under Cygwin, then the file specification will be
+ // handled as if it's a system rooted in '/'. HOWEVER, if the
+ // user provided a spec that starts with a drive letter or
+ // provided a relative path, it needs to be modified to fit the
+ //
+ // /cygdrive/<drive letter>/path
+ //
+ // For example,
+ // c:\ -> /cygdrive/c
+ // something -> <cwd>/something
+ // c:\foo -> /cygdrive/c/foo
+ //
+ // form.
+#ifdef __CYGWIN__
+ //printf(" Entering 'ifdef __CYGWIN__' branch.\n");
+ char backSlash = '\\';
+ string::size_type st;
+ if (fs[1] == ':')
+ {
+ //printf("Cygwin 'if' branch. fs = '%s'. Size = %d\n",
+ // fs.c_str(),fs.size());
+ char driveLetter = fs[0];
+
+ // Change all '\' to '/'
+ while ((st = fs.find( backSlash )) != fs.npos)
+ {
+ //printf(" st = %d, ",st);
+ fs = fs.replace(st, 1, 1, slash );
+ }
+ //printf(" end of back slash replacement.\n");
+ //printf("After backslash replace. fs = '%s'.\n",fs.c_str());
+
+ // Remove drive letter and colon
+ fs.erase(0,2);
+ //printf("After removing draft letter and colon. fs = '%s'.\n",fs.c_str());
+
+ // Prepend "/cygdrive/driveLetter" to filespec
+ fs.insert(0, 1, driveLetter);
+ fs.insert(0,"/cygdrive/");
+ }
+ else
+ {
+ //printf("Cygwin 'else' branch. fs = '%s'.\n",fs.c_str());
+ // Get current working directory.
+ char* cwd = getcwd(NULL, PATH_MAX);
+
+ // If strokes are in wrong directon, fix them
+ while ((st = fs.find( backSlash )) != fs.npos)
+ {
+ //printf(" st = %d, ",st);
+ fs = fs.replace(st, 1, 1, slash );
+ }
+ //printf("After backslash replace. fs = '%s'.\n",fs.c_str());
+
+ // Prepend cwd to filespec
+ if (fs[0]!=slash)
+ {
+ fs.insert(0,string(1,slash));
+ fs.insert(0,cwd);
+ }
+ }
+ //printf(" Operating under Cygwin. Filespec after modification:\n");
+ //printf(" fs = %s.\n",fs.c_str());
+#endif
+
+ // first, check if the file spec has a leading '/'. if not
+ // prepend the current directory to it.
+#ifndef _WIN32
+ if (fs[0] != slash)
+ {
+// #ifdef _WIN32
+// char* cwd = _getcwd(NULL, PATH_MAX);
+// #else
+ char* cwd = getcwd(NULL, PATH_MAX);
+// #endif
+ if (cwd == NULL)
+ {
+ FileHunterException fhe("Cannot get working directory");
+ GPSTK_THROW(fhe);
+ }
+ string wd(cwd);
+ // append a trailing slash if needed
+ if (wd[wd.size()-1] != slash)
+ wd += std::string(1,slash);
+ fs.insert(0, wd);
+ free(cwd);
+ }
+ // Append a closing slash so the breakdown algorithm has a
+ // means to terminate.
+ if (fs[fs.size()-1] != '/') fs += std::string(1,'/');
+#else
+ // If Windows, then check for leading drive name.
+ // If not leading drivename, then prepend current working directory.
+ if (fs[1]!=':')
+ {
+ char* cwdW = _getcwd(NULL, PATH_MAX);
+ if (cwdW == NULL)
+ {
+ FileHunterException fhe("Cannot get working directory");
+ GPSTK_THROW(fhe);
+ }
+ string wdW(cwdW);
+
+ // append a trailing slash if needed
+ if (wdW[wdW.size()-1] != '\\')
+ wdW += std::string(1,'\\');
+ fs.insert(0, wdW);
+ free(cwdW);
+ }
+ // Append a closing slash so the breakdown algorithm has a
+ // means to terminate.
+ if (fs[fs.size()-1] != '\\') fs += std::string(1,'\\');
+#endif
+
+ // break down the filespec directory by directory into the
+ // storage vector
+ while (!fs.empty())
+ {
+#ifndef _WIN32
+ if (fs[0] != slash)
+ {
+ FileHunterException fhe("Unexpected character: " +
+ fs.substr(0,1));
+ GPSTK_THROW(fhe);
+ }
+ else
+ // erase the leading slash
+ fs.erase(0,1);
+
+ string::size_type slashpos = fs.find(slash);
+ FileSpec tempfs(fs.substr(0, slashpos));
+
+ // debug
+ //printf(" fs, slashpos, tempfs = '%s', %d, '%s'.\n",
+ // fs.c_str(),slashpos,tempfs.getSpecString().c_str());
+
+ if (slashpos!=string::npos) fileSpecList.push_back(tempfs);
+ fs.erase(0, slashpos);
+#else
+ // for Windows erase the leading backslash, if present
+ if (fs[0] == '\\') fs.erase(0,1);
+ string::size_type slashpos;
+ slashpos = fs.find('\\');
+ FileSpec tempfs(fs.substr(0, slashpos));
+
+ if (slashpos!=string::npos) fileSpecList.push_back(tempfs);
+ fs.erase(0, slashpos);
+#endif
+ }
+ }
+ catch(FileHunterException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(FileSpecException &e)
+ {
+ FileHunterException fhe(e);
+ fhe.addText("Error in the file spec");
+ GPSTK_THROW(fhe);
+ }
+ catch(Exception &e)
+ {
+ FileHunterException fhe(e);
+ GPSTK_THROW(fhe);
+ }
+ catch(std::exception &e)
+ {
+ FileHunterException fhe("std::exception caught: " + string(e.what()));
+ GPSTK_THROW(fhe);
+ }
+ catch(...)
+ {
+ FileHunterException fhe("unknown exception caught");
+ GPSTK_THROW(fhe);
+ }
+ } // init
+
+ vector<string> FileHunter::searchHelper(const string& directory,
+ const FileSpec& fs) const
+ throw(FileHunterException)
+ {
+ try
+ {
+ vector<string> toReturn;
+
+ // generate a search string
+ string searchString = fs.createSearchString();
+
+#ifndef _WIN32
+ // open the dir
+ DIR* theDir;
+
+ //printf(" In searchHelper(). About to call opendir.\n");
+ // The first clause is a special kludge for Cygwin
+ // referencing DOS drive structures
+ //if (searchString.compare("cygdrive")==0)
+ //{
+ // std::string tempFS = std::string(1,slash) + searchString;
+ // theDir = opendir(tempFS.c_str());
+ //}
+ //else
+ if (directory.empty())
+ theDir = opendir(std::string(1,slash).c_str());
+ else
+ theDir = opendir(directory.c_str());
+
+ //printf(" In searchHelper(). Back from opendir call.\n");
+
+ if (theDir == NULL)
+ {
+ FileHunterException fhe("Cannot open directory: " + directory);
+ GPSTK_THROW(fhe);
+ }
+
+ // get each dir/file entry and compare it to the search string
+ struct dirent* entry;
+
+ while ( (entry = readdir(theDir)) != NULL)
+ {
+ string filename(entry->d_name);
+
+ // DEBUG
+ //printf("Testing '%s'\n",filename.c_str());
+
+ if (isLike(filename, searchString, '*', '+', '?') &&
+ (filename.length() == searchString.length()) &&
+ (filename != ".") && (filename != ".."))
+ {
+ toReturn.push_back(filename);
+ }
+ }
+ // use filespec for extra verification?
+
+ // cleanup
+ if (closedir(theDir) != 0)
+ {
+ FileHunterException fhe("Error closing directory: " +
+ directory);
+ GPSTK_THROW(fhe);
+ }
+#endif
+#ifdef _WIN32
+ // say 'hi' to old school MS io
+ char* cwd = _getcwd(NULL, PATH_MAX);
+ _chdir(directory.c_str());
+
+ struct _finddata_t c_file;
+ long hFile;
+
+ if ( (hFile = _findfirst( searchString.c_str(), &c_file )) != -1 )
+ {
+ std::string filename(c_file.name);
+ if ((filename != ".") && (filename != ".."))
+ {
+ toReturn.push_back(filename);
+ }
+ while( _findnext( hFile, &c_file ) == 0 )
+ {
+ filename = std::string(c_file.name);
+ if ((filename != ".") && (filename != ".."))
+ {
+ toReturn.push_back(filename);
+ }
+ }
+ }
+ _findclose(hFile);
+ _chdir(cwd);
+#endif
+ return toReturn;
+ }
+ catch(Exception& e)
+ {
+ FileHunterException fhe(e);
+ fhe.addText("Search failed");
+ GPSTK_THROW(fhe);
+ }
+ catch(std::exception& e)
+ {
+ FileHunterException fhe("std::exception caught: " + string(e.what()));
+ fhe.addText("Search failed");
+ GPSTK_THROW(fhe);
+ }
+ catch(...)
+ {
+ FileHunterException fhe("unknown exception");
+ fhe.addText("Search failed");
+ GPSTK_THROW(fhe);
+ }
+ }
+
+ void FileHunter::filterHelper(vector<std::string>& fileList,
+ const FileSpec& fs) const
+ throw(FileHunterException)
+ {
+ // go through the filterList. If the filespec has
+ // any fields to filter, remove matches from fileList
+
+ // for each element in the filter....
+ vector<FilterPair>::const_iterator filterItr = filterList.begin();
+ while(filterItr != filterList.end())
+ {
+ // if the file spec has that element...
+ if (fs.hasField((*filterItr).first))
+ {
+
+ // then search through the file list and
+ // remove any files that don't match the filter.
+ vector<string>::iterator fileListItr = fileList.begin();
+ while (fileListItr != fileList.end())
+ {
+ // thisField holds the part of the file name
+ // that we're searching for
+ string thisField = fs.extractField(*fileListItr,
+ (*filterItr).first);
+
+ vector<string>::const_iterator filterStringItr =
+ (*filterItr).second.begin();
+
+ // the iterator searches each element of the filter
+ // and compares it to thisField. If there's a match
+ // then keep it. if there's no match, delete it.
+ while (filterStringItr != (*filterItr).second.end())
+ {
+ if (thisField == rightJustify(*filterStringItr,
+ thisField.size(),
+ '0'))
+ break;
+ filterStringItr++;
+ }
+
+ if (filterStringItr == (*filterItr).second.end())
+ fileList.erase(fileListItr);
+ else
+ fileListItr++;
+ }
+ }
+ filterItr++;
+ }
+ }
+
+
+ void FileHunter::dump(ostream& o) const
+ {
+ vector<FileSpec>::const_iterator itr = fileSpecList.begin();
+ while(itr != fileSpecList.end())
+ {
+ (*itr).dump(o);
+ itr++;
+ }
+ }
+
+} // namespace
+
diff --git a/dev/src/FileHunter.hpp b/dev/src/FileHunter.hpp
new file mode 100644
index 0000000..ad23623
--- /dev/null
+++ b/dev/src/FileHunter.hpp
@@ -0,0 +1,229 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileHunter.hpp
+ * Find all files matching a specification.
+ */
+
+#ifndef GPSTK_FILEHUNTER_HPP
+#define GPSTK_FILEHUNTER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileSpec.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+
+ /// The only exception that class FileHunter throws.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(FileHunterException, gpstk::Exception);
+
+ /**
+ * FileHunter is a class designed to find files matching specified
+ * criteria. The specified criteria is threefold:
+ * 1. The File Specification. This is a path and/or file description
+ * which is the most important search criteria. For instance, the
+ * specification for a Rinex Obs file might be:
+ * /archive/ADMS%3n/RINEXOBS/S%2n%t%3jA.%2y0
+ * where the '%#char' elements denote fields such as year, day, station
+ * number, and so on. In this example, FileHunter is smart enough to
+ * search all station directories (ADMS401, ADMS402, etc) but it won't
+ * search any directories (or subdirectories) other than ones that
+ * match the initial specification.
+ * 2. Start and end times. If you simply call find(), FileHunter will
+ * return all files that match the specification. You can specify
+ * DayTimes to only return files whose dates (according to the file
+ * name) fall between those times. Note that you can tell find() to
+ * return the list of files ascending, descending, or unsorted
+ * (unsorted will return them in disk order).
+ * 3. Filters. Filters can be used on any field that your file
+ * specification includes. The most appropriate use of this is to
+ * filter for a certain set of stations, but it will allow you to
+ * filter ANY field (day, year, etc) that is in the file specification.
+ *
+ * For more information about file specifications, see the comments in
+ * the FileSpec class. Also check the file FileSpecTest in the test
+ * subdirectory below this one for examples.
+ *
+ * Limitations: If a file specification has two or more of the same
+ * field defined, only the first one is used. This is only if they
+ * repeat in a single directory or path. For instance, this would be ok:
+ * /ADMS%3n/FILE%3n but in this case: /ADMS%3n/%3j%3j only the first
+ * %3j would be used for the day field.
+ * Also, wildcards cannot be used. Sorry - it's a limitation of how
+ * regular expressions are used.
+ * Finally, if you specify a version field, all files matching will
+ * be reurned. You can either use extractField() on the returned files
+ * to determine the latest version or select the version you want
+ * returned by using setFilter().
+ */
+ class FileHunter
+ {
+ public:
+
+ /// This describes how the files to be searched are chunked
+ /// i.e. a DAY chunking means one file is written per day
+ enum FileChunking
+ {
+ WEEK,
+ DAY,
+ HOUR,
+ MINUTE
+ };
+
+ /// Pairs of FileSpecTypes and lists of strings for filtering
+ /// the search results.
+ typedef std::pair<FileSpec::FileSpecType, std::vector<std::string> >
+ FilterPair;
+
+ /**
+ * Constructs a FileHunter using a file specification. This
+ * can be a full or relative path and/or a file specification.
+ * See FileSpec for details on how to format a file specification.
+ * @throw FileHunterException when there's a problem with the filespec
+ */
+ FileHunter(const std::string& filespec)
+ throw(FileHunterException);
+
+ /**
+ * Constructs a FileHunter using a FileSpec.
+ * @throw FileHunterException when there's a problem with the filespec
+ */
+ FileHunter(const FileSpec& filespec)
+ throw(FileHunterException);
+
+ /**
+ * Rather than building a new file hunter, this lets you change
+ * the filespec you're searching for.
+ * @throw FileHunterException when there's a problem with the filespec
+ */
+ FileHunter& newHunt(const std::string& filespec)
+ throw(FileHunterException);
+
+ /**
+ * Changes the file spec you're searching for in FileHunter.
+ * @throw FileHunterException when there's an error in the filespec
+ */
+ FileHunter& newHunt(const FileSpec& filespec)
+ throw(FileHunterException)
+ {return newHunt(filespec.getSpecString());}
+
+ /**
+ * Filters FOR the strings in /a filter in the field specified
+ * by /a fst when searching.
+ * @param fst A FileSpecType you want to run a filter on.
+ * @param filter a list of strings to search for.in the filter.
+ * @throw FileHunterException when /a fst can't be found.
+ */
+ FileHunter& setFilter(const FileSpec::FileSpecType fst,
+ const std::vector<std::string>& filter)
+ throw(FileHunterException);
+
+ /**
+ * Does the searching for the files. Set /a start and /a end
+ * for specifying times of files (according to their file names)
+ * for returning.
+ * \warning This method is NOT MT-Safe.
+ * @param start the start time to limit the search
+ * @param end the end time to limit the search
+ * @param fsst set to change the order the list is returned
+ * @param chunk the type of file chunking to use to select files
+ * @return a list of files matching the file specification,
+ * start and end times, and filters ordered according to fsst.
+ * This list can be empty if no files are found.
+ * @throw FileHunterException when there's a problem searching.
+ */
+ std::vector<std::string>
+ find(const gpstk::DayTime& start = gpstk::DayTime::BEGINNING_OF_TIME,
+ const gpstk::DayTime& end = gpstk::DayTime::END_OF_TIME,
+ const FileSpec::FileSpecSortType fsst = FileSpec::ascending,
+ enum FileChunking chunk = DAY) const
+ throw(FileHunterException);
+
+ /// outputs the file spec into a semi-readable format
+ void dump(std::ostream& o) const;
+
+ private:
+ // disallow these
+ FileHunter();
+ FileHunter(const FileHunter& fh);
+ FileHunter& operator=(const FileHunter& fh);
+
+ protected:
+ ///Shared code between the constructor and newHunt
+ void init(const std::string& filespec)
+ throw(FileHunterException);
+
+ /** Performs a search for the given file spec on the given directory.
+ * \warning This method is NOT MT-Safe.
+ * @return a list of matching directories/files */
+ std::vector<std::string>
+ searchHelper(const std::string& directory,
+ const FileSpec& fs) const
+ throw(FileHunterException);
+
+ /// If there is a filter set, this will find the filtered items
+ /// and set fileList to contain only those.
+ void filterHelper(std::vector<std::string>& fileList,
+ const FileSpec& fs) const
+ throw(FileHunterException);
+
+ /// Holds the broken down list of the file specification for searching
+ std::vector<FileSpec> fileSpecList;
+
+ /// Stores the list of things to filter for
+ std::vector<FilterPair> filterList;
+ }; // FileHunter
+
+ //@}
+
+} // namespace
+
+
+
+
+#endif
diff --git a/dev/src/FileSpec.cpp b/dev/src/FileSpec.cpp
new file mode 100644
index 0000000..b963f61
--- /dev/null
+++ b/dev/src/FileSpec.cpp
@@ -0,0 +1,537 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file FileSpec.cpp
+ * Define the specification of a file.
+ */
+
+#include <algorithm>
+
+#include "FileSpec.hpp"
+
+#include "StringUtils.hpp"
+
+using namespace std;
+using namespace gpstk;
+using namespace gpstk::StringUtils;
+
+namespace gpstk
+{
+ // operator-- for FileSpecType
+ FileSpec::FileSpecType& operator-- (FileSpec::FileSpecType& fst, int)
+ {
+ return fst = (fst == FileSpec::unknown) ?
+ FileSpec::end : FileSpec::FileSpecType(fst-1);
+ }
+
+ // operator++ for FileSpecType
+ FileSpec::FileSpecType& operator++ (FileSpec::FileSpecType& fst, int)
+ {
+ return fst = (fst == FileSpec::end) ?
+ FileSpec::unknown : FileSpec::FileSpecType(fst+1);
+ }
+
+ // compares substrings of \a l and \a r
+ bool FileSpec::FileSpecSort::operator() (const std::string& l,
+ const std::string& r) const
+ {
+ // if there are directories, don't include them in the comparison
+ std::string tl(l, offset + l.find_last_of(slash) + 1, length);
+ std::string tr(r, offset + r.find_last_of(slash) + 1, length);
+ if (sortBy == ascending)
+ return tl < tr;
+ else
+ return tl > tr;
+ }
+
+ string FileSpec::convertFileSpecType(const FileSpecType fst)
+ throw(FileSpecException)
+ {
+ if (fst == station) return string("n");
+ else if (fst == receiver) return string("r");
+ else if (fst == prn) return string("p");
+ else if (fst == selected) return string("t");
+ else if (fst == sequence) return string("I");
+ else if (fst == version) return string("v");
+ else if (fst == fixed) return string("");
+ else if (fst == clock) return string("c");
+
+ else if (fst == year) return string("y");
+ else if (fst == month) return string("m");
+ else if (fst == dayofmonth) return string("d");
+ else if (fst == hour) return string("H");
+ else if (fst == minute) return string("M");
+ else if (fst == second) return string("S");
+ else if (fst == fsecond) return string("f");
+ else if (fst == gpsweek) return string("G");
+ else if (fst == fullgpsweek) return string("F");
+ else if (fst == gpssecond) return string("g");
+ else if (fst == mjd) return string("Q");
+ else if (fst == dayofweek) return string("w");
+ else if (fst == day) return string("j");
+ else if (fst == zcount) return string("Z");
+ else if (fst == zcountfloor) return string("z");
+ else if (fst == unixsec) return string("U");
+ else if (fst == unixusec) return string("u");
+ else if (fst == fullzcount) return string("C");
+ else
+ {
+ FileSpecException fse("Unknown FileSpecType: " + asString(fst));
+ GPSTK_THROW(fse);
+ }
+ }
+
+ FileSpec::FileSpecType FileSpec::convertFileSpecType(const string& fst)
+ throw(FileSpecException)
+ {
+ if (fst == string("n")) return station;
+ else if (fst == string("r")) return receiver;
+ else if (fst == string("p")) return prn;
+ else if (fst == string("t")) return selected;
+ else if (fst == string("I")) return sequence;
+ else if (fst == string("v")) return version;
+ else if (fst == string("c")) return clock;
+
+ else if (fst == string("Y") ||
+ fst == string("y")) return year;
+ else if (fst == string("m")) return month;
+ else if (fst == string("d")) return dayofmonth;
+ else if (fst == string("H")) return hour;
+ else if (fst == string("M")) return minute;
+ else if (fst == string("S")) return second;
+ else if (fst == string("f")) return fsecond;
+ else if (fst == string("G")) return gpsweek;
+ else if (fst == string("F")) return fullgpsweek;
+ else if (fst == string("g")) return gpssecond;
+ else if (fst == string("Q")) return mjd;
+ else if (fst == string("w")) return dayofweek;
+ else if (fst == string("j")) return day;
+ else if (fst == string("Z")) return zcount;
+ else if (fst == string("z")) return zcountfloor;
+ else if (fst == string("U")) return unixsec;
+ else if (fst == string("u")) return unixusec;
+ else if (fst == string("C")) return fullzcount;
+ else
+ {
+ FileSpecException fse("Unknown FileSpecType: " + fst);
+ GPSTK_THROW(fse);
+ }
+ }
+
+
+ string FileSpec::createSearchString() const
+ throw(FileSpecException)
+ {
+ string searchString;
+
+ // go through the file spec element list...
+ vector<FileSpecElement>::const_iterator itr = fileSpecList.begin();
+ while (itr != fileSpecList.end())
+ {
+ // the error case first...
+ if ( ((*itr).type <= unknown) || ((*itr).type >= end) )
+ {
+ FileSpecException fse("Unknown FileSpecType: " +
+ asString((*itr).type));
+ GPSTK_THROW(fse);
+ }
+ // just add the fixed fields
+ else if ((*itr).type == fixed)
+ {
+ searchString += (*itr).field;
+ }
+ // replace all the others with question marks for searching
+ else
+ {
+ searchString += string((*itr).numCh, '?');
+ }
+
+ itr++;
+ }
+
+ return searchString;
+ }
+
+ string FileSpec::extractField(const string& filename,
+ const FileSpecType fst) const
+ throw(FileSpecException)
+ {
+ // stupidity check - is it a valid FST?
+ if ((fst <= unknown) || (fst >= end))
+ {
+ FileSpecException fse("Unknown FileSpecType: " +
+ convertFileSpecType(fst));
+ GPSTK_THROW(fse);
+ }
+
+ // check the FileSpec for this type of FST
+ vector<FileSpecElement>::const_iterator itr = fileSpecList.begin();
+ while (itr != fileSpecList.end())
+ {
+ // found it - get the substring and return
+ if ((*itr).type == fst)
+ {
+ return filename.substr((*itr).offset, (*itr).numCh);
+ }
+
+ // didn't find it on this iteration
+ itr++;
+ }
+ // oops - didn't find it.
+ FileSpecException fse("Couldn't find specified FileSpecType: " +
+ convertFileSpecType(fst));
+ GPSTK_THROW(fse);
+ }
+
+ bool FileSpec::hasField(const FileSpecType fst) const
+ throw(FileSpecException)
+ {
+ vector<FileSpecElement>::const_iterator itr = fileSpecList.begin();
+ while (itr != fileSpecList.end())
+ {
+ // stupidity check - is it a valid FST?
+ if (((*itr).type <= unknown) || ((*itr).type >= end))
+ {
+ FileSpecException fse("Unknown FileSpecType: " +
+ convertFileSpecType((*itr).type));
+ GPSTK_THROW(fse);
+ }
+ if ((*itr).type == fst)
+ return true;
+ itr++;
+ }
+ return false;
+ }
+
+
+ DayTime FileSpec::extractDayTime(const string& filename) const
+ throw(FileSpecException)
+ {
+ // this uses DayTime::setToString to get the time out
+ try
+ {
+ DayTime dt(0.L);
+ dt.setToString(filename, fileSpecString);
+ return dt;
+ }
+ catch(Exception& exc)
+ {
+ // too ambiguous - throw an exception
+ FileSpecException fse(exc);
+ fse.addText("Can't generate a DayTime for this FileSpec");
+ GPSTK_THROW(fse);
+ }
+ catch(std::exception& exc)
+ {
+ FileSpecException fse("std::exception: " + string(exc.what()));
+ fse.addText("Can't generate a DayTime for this FileSpec");
+ GPSTK_THROW(fse);
+ }
+ catch(...)
+ {
+ FileSpecException fse("unknown exception");
+ fse.addText("Can't generate a DayTime for this FileSpec");
+ GPSTK_THROW(fse);
+ }
+
+ }
+
+ std::string FileSpec::toString(const gpstk::DayTime& dt,
+ const FSTStringMap& fstsMap) const
+ {
+ string toReturn;
+
+ // Go through the list and insert all the non-date elements
+ // into the string. In other words, fill in the string with data
+ // from the FSTSMap first.. For date elements, put the FileSpec string
+ // directly into the file name (i.e. '%3j'). Then use Daytime::printf
+ // to fill in all the date elements at the end.
+ vector<FileSpecElement>::const_iterator fslItr = fileSpecList.begin();
+ while (fslItr != fileSpecList.end())
+ {
+ FSTStringMap::const_iterator fstsItr = fstsMap.find((*fslItr).type);
+ // once again, it its found in the map, replace that part of
+ // the file spec. otherwise, just put the fixed field in.
+ if (fstsItr != fstsMap.end())
+ {
+ toReturn += rightJustify((*fstsItr).second, (*fslItr).numCh, '0');
+ }
+ else
+ {
+ toReturn += (*fslItr).field;
+ }
+
+ fslItr++;
+ }
+
+ toReturn = dt.printf(toReturn);
+
+ return toReturn;
+ }
+
+ void FileSpec::sortList(vector<string>& fileList,
+ const FileSpecSortType fsst) const
+ throw(FileSpecException)
+ {
+ // gotta sort them in order as they appear in FileSpecType.
+ // This is kinda like Radix sort... sort one field at a time.
+ for(FileSpecType fst = FileSpecType(end-1); fst > unknown; fst--)
+ {
+ if (hasField(fst))
+ {
+ // check the FileSpec for this type of FST
+ vector<FileSpecElement>::const_iterator itr = fileSpecList.begin();
+ string::size_type ofs, len;
+ while (itr != fileSpecList.end())
+ {
+ // found it - get the substring and return
+ if ((*itr).type == fst)
+ {
+ ofs = (*itr).offset;
+ len = (*itr).numCh;
+ if (fsst != none)
+ {
+ FileSpecSort q(ofs, len, fsst);
+ stable_sort(fileList.begin(), fileList.end(), q);
+ }
+ }
+
+ // didn't find it on this iteration
+ itr++;
+ }
+ }
+ }
+
+ // to filter out versions, generate a list of the version FSEs first
+ // and copy the file list. then make a map of the file name without
+ // the version field to the name with the version field. since its
+ // sorted, the highest version will be the last one set and the map
+ // will only have the latest versions...
+ //
+ // ex. a1a a2a a3a a4a a5a file spec: a%1va
+ // copyOfFileList after versions removed: aa aa aa aa aa
+ // versionMap[aa] = a1a then a2a, a3a, a4a, and finally a5a
+ //
+ // note that this only handles 1 version field right now, not that
+ // it couldnt do more but it gets very difficult...
+
+ // filter out older versions here
+ if (hasField(version))
+ {
+ // copy the file list
+ vector<string> copyOfFileList = fileList;
+
+ // find all the version elements in this file spec
+ vector<FileSpecElement>::const_iterator itr = fileSpecList.begin();
+ vector<FileSpecElement> versionVec;
+ while (itr != fileSpecList.end())
+ {
+ if ((*itr).type == version)
+ versionVec.push_back(*itr);
+ itr++;
+ }
+ // remove the version fields from the copied list, but only for the
+ // last directory/file entry in this name
+ vector<string>::size_type index;
+ for (index = 0; index < copyOfFileList.size(); index++)
+ {
+ string::size_type slashpos = copyOfFileList[index].rfind(slash);
+ if (slashpos != string::npos)
+ copyOfFileList[index].erase(0, slashpos + 1);
+ copyOfFileList[index].erase(versionVec[0].offset,
+ versionVec[0].numCh);
+ }
+
+ // now make one more pass on the copied list. whenever two strings
+ // match, go to the original list and compare the version numbers.
+ // erase the lower version.
+
+ // FIX: this will only compare the first version field encountered.
+ // it could be changed to do more, but it's not essential now...
+ map<string, string> versionMap;
+ for (index = 0; index < copyOfFileList.size(); index++)
+ versionMap[copyOfFileList[index]] = fileList[index];
+
+ fileList.erase(fileList.begin(), fileList.end());
+ map<string, string>::iterator mapitr = versionMap.begin();
+ while (mapitr != versionMap.end())
+ {
+ fileList.push_back((*mapitr).second);
+ mapitr++;
+ }
+ }
+ }
+
+ void FileSpec::dump(ostream& o) const
+ {
+ o << "FileSpec string: " << fileSpecString << endl;
+
+ o << "offset numch type field" << endl;
+ vector<FileSpecElement>::const_iterator itr = fileSpecList.begin();
+ while (itr != fileSpecList.end())
+ {
+ o << setw(6) << (*itr).offset << setw(6) << (*itr).numCh
+ << setw(6) << convertFileSpecType((*itr).type)
+ // this makes the field bigger if the string is
+ // bigger than 5 characters
+ << setw(6 + ((*itr).field.size() > 5 ? ((*itr).field.size()-5): 0))
+ << (*itr).field << endl;
+ itr++;
+ }
+ }
+
+ void FileSpec::init(const string& fileSpec)
+ throw(FileSpecException)
+ {
+ try
+ {
+ fileSpecList.erase(fileSpecList.begin(), fileSpecList.end());
+ fileSpecString.erase(fileSpecString.begin(), fileSpecString.end());
+
+ fileSpecString = fileSpec;
+
+ // holds the offset for where we would be in the real file
+ // name
+ string::size_type offset = 0;
+
+ // copy the string so we can mess with it
+ string fs(fileSpec);
+
+ // bit by bit, parse out the string into FileSpecElements,
+ // stripping out the used parts as we go
+ while (!fs.empty())
+ {
+ string atom;
+ // if fs[0] == '%', then stop to parse. also stop at
+ // the end of the string
+ string::size_type pos = fs.find('%');
+ atom = fs.substr(0,pos);
+ fs.erase(0,pos);
+
+ // if it's at the end of the string...
+ // make a FileSpecElement of any remaining
+ // characters and return (fall through the while loop)
+ if (fs.empty())
+ {
+ if (!atom.empty())
+ {
+ FileSpecElement fse(atom.size(), offset, fixed, atom);
+ fileSpecList.push_back(fse);
+ }
+ }
+ // found a '%' so parse out this little bit of a file spec,
+ // but make sure to add atom to the FileSpec (if there is any)
+ else
+ {
+ if (!atom.empty())
+ {
+ FileSpecElement fse(atom.size(), offset, fixed, atom);
+ fileSpecList.push_back(fse);
+ offset += atom.size();
+ atom.erase(atom.begin(), atom.end());
+ }
+
+ // erase the '%'
+ // also make sure that atom holds the string that
+ // makes up this element.
+ atom += fs[0];
+ fs.erase(0,1);
+
+ // get any integers that come before the letter we're lookin
+ // for, then erase them
+ int numChs = asInt(fs);
+ if (numChs == 0)
+ numChs = 1;
+
+ if (fs[0] == '0')
+ atom += '0';
+
+ stripLeading(fs, "0");
+ stripLeading(fs, asString(numChs));
+
+ atom += asString(numChs);
+
+ // get the file spec type and erase that part of the string
+ FileSpecType fst = convertFileSpecType(fs.substr(0,1));
+ atom += fs[0];
+
+ // super special case - %Y -> %4y FIX shouldn't this be <4?
+ if ((fs.substr(0,1) == string("Y")) && (numChs != 4))
+ numChs = 4;
+ fs.erase(0,1);
+
+ FileSpecElement fse(numChs, offset, fst, atom);
+ fileSpecList.push_back(fse);
+ offset += numChs;
+ }
+
+ } // while !fs.empty()
+ }
+ catch(FileSpecException& e)
+ {
+ e.addText("Check your file spec for errors: " + fileSpec);
+ GPSTK_RETHROW(e);
+ }
+ catch(StringException& e)
+ {
+ FileSpecException fse(e);
+ fse.addText("String exception: Check the file spec for errors: " + fileSpec);
+ GPSTK_THROW(fse);
+ }
+ catch(std::exception& e)
+ {
+ FileSpecException fse("std::exception: " + string(e.what()));
+ fse.addText("Check the file spec for errors: " + fileSpec);
+ GPSTK_THROW(fse);
+ }
+ catch(...)
+ {
+ FileSpecException fse("Unknown exception: Check the file spec for errors: " + fileSpec);
+ GPSTK_THROW(fse);
+ }
+ }
+
+} // namespace
diff --git a/dev/src/FileSpec.hpp b/dev/src/FileSpec.hpp
new file mode 100644
index 0000000..d8e1250
--- /dev/null
+++ b/dev/src/FileSpec.hpp
@@ -0,0 +1,319 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileSpec.hpp
+ * Define the specification of a file.
+ */
+
+#ifndef GPSTK_FILESPEC_HPP
+#define GPSTK_FILESPEC_HPP
+
+#include <vector>
+#include <functional>
+#include <map>
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "DayTime.hpp"
+
+#ifdef _WIN32
+const char slash = '\\';
+#else
+const char slash = '/';
+#endif
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+
+ /// This exception is thrown when there is a problem with
+ /// handling file specifications.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(FileSpecException, gpstk::Exception);
+
+ /**
+ * A FileSpec is how file names are defined. For instance,
+ * ASM%4Y.%3j is the file spec for a SMODF file. The format is similar
+ * to what you would use in sprintf(), and specifically it uses the same
+ * fields as DayTime::printf(). For the most predictable results,
+ * fully specify the field length (as in %4Y vs. %Y). Check the
+ * FileSpecType enum values for how characters map to fields. Any new
+ * fields added should conform to DayTime or already existing fields,
+ * if there are any.
+ */
+ class FileSpec
+ {
+ public:
+ /// This enum lists the different possible elements you can
+ /// have in a FileSpec.
+ enum FileSpecType
+ {
+ unknown, ///< Unknown type
+ station, ///< 'n' A field for station numbers
+ receiver, ///< 'r' A field for the receiver number
+ prn, ///< 'p' A field for PRN number
+ selected, ///< 't' A field for selected/unselected receiver
+ sequence, ///< 'I' A sequence number, as in part 1, part 2, etc..
+ version, ///< 'v' A version number, as in version 2
+ ///< is more recent than version 1
+ fixed, ///< A field for fixed characters
+ clock, ///< 'c' A field for the clock number
+
+
+ // see DayTime for more information on the followint elements
+ year, ///< 'y' or 'Y' A field for a year
+ month, ///< 'm' A field for month (numeric)
+ dayofmonth, ///< 'd' A field for day-of-month
+ hour, ///< 'H' A field for hours (out of 24)
+ minute, ///< 'M' A field for minutes (out of 60)
+ second, ///< 'S' A field for seconds (out of 60)
+ fsecond, ///< 'f' A field for seconds (float)
+ gpsweek, ///< 'G' A field for 10 bit GPS weeks
+ fullgpsweek, ///< 'F' A field for full GPS weeks
+ gpssecond, ///< 'g' A field for GPS second-of-week
+ mjd, ///< 'Q' A field for Modified Julian Date
+ dayofweek, ///< 'w' A field for day-of-week (numeric)
+ day, ///< 'j' A field for day of year
+ zcount, ///< 'Z' A field for GPS Z-count
+ zcountfloor, ///< 'z' A field for GPS Z-count rounded down
+ unixsec, ///< 'U' A field for UNIX seconds
+ unixusec, ///< 'u' A field for UNIX microseconds
+ fullzcount, ///< 'C' A field for Full GPS Z-count
+
+ end ///< A place holder for the end of this list
+ };
+
+ /// A map from a FileSpecType to a string, used in the
+ /// toString function.
+ typedef std::map<FileSpecType, std::string> FSTStringMap;
+
+
+ /// An enum for identifying the sort order of the list returned
+ /// from FileHunter.
+ enum FileSpecSortType
+ {
+ none,
+ ascending,
+ descending
+ };
+
+ /// Default constructor
+ FileSpec() {}
+
+ /// Constructor with a string to parse
+ FileSpec(const std::string& fileSpec)
+ throw(FileSpecException)
+ {init(fileSpec);}
+
+ /// Destructor
+ virtual ~FileSpec() {}
+
+ /// Reinitializes this FileSpec with the new string
+ virtual FileSpec& newSpec(const std::string& fileSpec)
+ throw(FileSpecException)
+ {init(fileSpec); return *this;}
+
+ /// Returns the string of the filespec
+ virtual std::string getSpecString(void) const
+ {return fileSpecString;}
+
+ /**
+ * Returns a string that can be used to search for files
+ * matching this FileSpec. Essentailly turns every non-fixed
+ * field into strings of '?'.
+ * @throw FileSpecException when there's an error in the FileSpec
+ */
+ virtual std::string createSearchString() const
+ throw(FileSpecException);
+
+ /**
+ * Given a file name and a field, returns that field from the string.
+ * Use hasField() first to see if the field exists in the FileSpec.
+ * If multiple fields of FileSpecType are defined, only the first
+ * is returned.
+ * @throw FileSpecException when the FileSpecType doesn't exist
+ * in the FileSpec
+ */
+ virtual std::string extractField(const std::string& filename,
+ const FileSpecType) const
+ throw(FileSpecException);
+
+ /**
+ * Given a field type, returns true if the FileSpec has that field.
+ * @throw FileSpecException when you pass in an invalid FileSpecType
+ */
+ virtual bool hasField(const FileSpecType) const
+ throw(FileSpecException);
+
+ /**
+ * If possible, returns a DayTime object with the time the file
+ * represents. Since the time resolution only goes to days for
+ * most file types, all times are set to midnight of that day.
+ * @throw FileSpecException when a time can't be formed
+ */
+ virtual gpstk::DayTime extractDayTime(const std::string& filename) const
+ throw(FileSpecException);
+
+ /**
+ * For the given FileSpec, fills in the fields with the given
+ * information and returns a string of that file name. Use the
+ * FSTStringMap to provide all the other non-time data for the
+ * string (i.e. FSTSMap[station] = "85408";). Any unspecified
+ * field will be filled with 0's. The one side affect of this
+ * is that you can only specify one of each field in the map,
+ * but you're likely not going to need two different station
+ * numbers in the file name. If you want, you can put the daytime
+ * information into the FSTSMap, but it's not necessary.
+ * @return the new filename.
+ */
+ virtual std::string toString(const gpstk::DayTime& dt,
+ const FSTStringMap& fstsMap = FSTStringMap())
+ const;
+
+ /**
+ * Sort the list of files ascending or
+ * descending. The fields of the files are sorted in the order
+ * that they're specified in the FileSpecType enum.
+ * The list fileList is modified as a result
+ * of this. If the files in fileList have paths listed, then
+ * only the file name (taken to be the word after the last '/')
+ * will be used in the comparison. This function also filters
+ * out older versions of files in the fileList.
+ */
+ virtual void sortList(std::vector<std::string>& fileList,
+ const FileSpecSortType fsst = ascending) const
+ throw(FileSpecException);
+
+ /// semi-nicely print the FileSpec to the stream.
+ virtual void dump(std::ostream& o) const;
+
+ protected:
+ /// Parses the string into the FileSpec object
+ virtual void init(const std::string& fileSpec)
+ throw(FileSpecException);
+
+ public:
+ /**
+ * Converts the FileSpecType to a string it is identified with.
+ * @throw FileSpecException when FileSpecType doesn't match
+ * any known types
+ */
+ static std::string convertFileSpecType(const FileSpecType)
+ throw(FileSpecException);
+
+ /**
+ * Converts the string into its corresponding FileSpecType
+ * @throw FileSpecException when FileSpecType doesn't match
+ * any known types
+ */
+ static FileSpecType convertFileSpecType(const std::string&)
+ throw(FileSpecException);
+
+ protected:
+ /// This is an internal, private class of FileSpec that holds
+ /// information for one individual file specification element.
+ class FileSpecElement
+ {
+ public:
+ /// This is the default constructor too.
+ FileSpecElement(const std::string::size_type numChars = 0,
+ const std::string::size_type offs = 0,
+ const FileSpecType fst = unknown,
+ const std::string& fld = std::string())
+ : numCh(numChars), offset(offs), type(fst), field(fld)
+ {};
+
+ /// The number of characters this field is in the file name.
+ std::string::size_type numCh;
+ /// The offset in the string where this field begins
+ std::string::size_type offset;
+ /// The type which this field corresponds to.
+ FileSpecType type;
+ /// For fixed strings, the characters it represents.
+ /// For all other types, it's the original string for
+ /// that field (i.e. '%03j').
+ std::string field;
+ };
+
+ /// Another private, internal class for doing sorting
+ /// by substring.
+ struct FileSpecSort :
+ public std::binary_function<std::string,std::string,bool>
+ {
+ public:
+ FileSpecSort(std::string::size_type o, std::string::size_type l,
+ const FileSpecSortType s)
+ : offset(o), length(l), sortBy(s) {}
+ /// Compares two strings based on the substrings defined by
+ /// offset and length accounting for any directory names
+ /// in the strings
+ bool operator() (const std::string& l, const std::string& r) const;
+ private:
+ /// the offset of the substring to compare
+ std::string::size_type offset;
+ /// the length of the substring to compare
+ std::string::size_type length;
+ /// ascending, descending or none
+ FileSpecSortType sortBy;
+ };
+
+ /// Holds all of the FileSpecElements for this FileSpec
+ std::vector<FileSpecElement> fileSpecList;
+ /// Holds the string that the fileSpecList was generated from
+ std::string fileSpecString;
+
+
+ }; // class FileSpec
+
+ /// Operator-- for FileSpecType
+ FileSpec::FileSpecType& operator-- (FileSpec::FileSpecType& fst, int);
+ /// Operator++ for FileSpecType
+ FileSpec::FileSpecType& operator++ (FileSpec::FileSpecType& fst, int);
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/FileStore.hpp b/dev/src/FileStore.hpp
new file mode 100644
index 0000000..01f382d
--- /dev/null
+++ b/dev/src/FileStore.hpp
@@ -0,0 +1,121 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileStore.hpp
+ * Read and write data
+ */
+
+#ifndef GPSTK_FILE_STORE_HPP
+#define GPSTK_FILE_STORE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <vector>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+ /**
+ * This is an abstract class used to add a list of files and the interface
+ * to read files into a datastore. This is intended to support arbitrary
+ * file names, not a list of similiar file names. See the FileHunter framework
+ * for support of that type of file.
+ */
+
+ template <class HeaderType> class FileStore
+ {
+ public:
+
+ /// Constructor.
+ FileStore() throw() {};
+
+ /// destructor
+ virtual ~FileStore() {};
+
+ std::vector<std::string> getFileNames() const
+ {
+ typedef typename FFDataMap::const_iterator const_iterator;
+ std::vector<std::string> nv;
+ const_iterator i;
+ for (i=headerMap.begin(); i!=headerMap.end(); i++)
+ nv.push_back(i->first);
+ return nv;
+ }
+
+ void addFile(const std::string& fn, const HeaderType& header) throw()
+ { headerMap[fn] = header; };
+
+ const HeaderType& getHeader(const std::string& fn) throw()
+ { return headerMap[fn]; };
+
+ /// Load a single file into the store
+ virtual void loadFile(const std::string& fileName)
+ throw (FileMissingException) = 0;
+
+ virtual void loadFiles(const std::vector<std::string>& fileNames)
+ {
+ std::vector<std::string>::const_iterator f=fileNames.begin();
+ for (f=fileNames.begin(); f!=fileNames.end(); f++)
+ loadFile(*f);
+ };
+
+ /// Return the size of the (filename,header) map
+ unsigned size() const throw() { return headerMap.size(); }
+
+ private:
+
+ typedef std::map<std::string, HeaderType> FFDataMap;
+
+ /// A store of all headers loaded, indexed by file name
+ FFDataMap headerMap;
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/FileUtils.hpp b/dev/src/FileUtils.hpp
new file mode 100644
index 0000000..0aab1b7
--- /dev/null
+++ b/dev/src/FileUtils.hpp
@@ -0,0 +1,156 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file FileUtils.hpp
+ * File and directory utilities
+ */
+
+#ifndef GPSTK_FILEUTILS_HPP
+#define GPSTK_FILEUTILS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifdef __sun
+#include <libgen.h>
+#else
+#include <sys/stat.h>
+#include <sys/types.h>
+#endif
+
+#include <fstream>
+#include <string>
+#include "StringUtils.hpp"
+
+#ifdef _MSC_VER
+#include <direct.h>
+#endif
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+
+ /**
+ * These functions and macros help process files and directories.
+ */
+ namespace FileUtils
+ {
+ /**
+ * Creates a hierarchy of directories rather than just one dir.
+ * This intentionally doesn't check the mkdir return codes because
+ * there is no difference between return codes for directories
+ * that already exist and error creating new ones.
+ * @param path the full path of the directory you want created
+ * @param mode the permission of the new directory (like 0755)
+ * @return always 0
+ */
+ inline int makeDir(const std::string& path, unsigned mode)
+ {
+#ifdef __sun
+ mkdirp(path.c_str(), mode);
+#else
+ int rc = 0;
+ std::string::size_type i = 0;
+
+ while ((i = path.find('/',i+1)) != std::string::npos)
+ {
+ std::string thispath(path.substr(0,i));
+ if (thispath[thispath.length() - 1] == '/')
+ thispath.erase(thispath.length() - 1);
+#ifdef _MSC_VER
+ _mkdir(path.c_str());
+#else
+ mkdir(thispath.c_str(), mode);
+#endif
+ }
+#ifdef _MSC_VER
+ _mkdir(path.c_str());
+#else
+ mkdir(path.c_str(), mode);
+#endif
+
+#endif // __sun
+ return 0;
+ }
+
+ /**
+ * makeDir that takes a char* for an argument.
+ * @param path the full path of the directory you want created
+ * @param mode the permission of the new directory (like 0755)
+ * @return always 0
+ */
+ inline int makeDir(const char* path, unsigned mode)
+ {
+ return makeDir(std::string(path), mode);
+ }
+
+ /**
+ * Returns true if the file exists. Only readability is
+ * verified unless the user inputs the openmode of interest.
+ * @param fname Name of the file to check
+ * @param mode Mode of access to check (default is readable, std::ios::in)
+ * @return true if the file can be accessed
+ */
+ inline bool fileAccessCheck(const char* fname,
+ std::ios::openmode mode=std::ios::in)
+ {
+ std::fstream test(fname, mode);
+ return !test.fail();
+ }
+
+ inline bool fileAccessCheck(const std::string& fname,
+ std::ios::openmode mode=std::ios::in)
+ {
+ return fileAccessCheck(fname.c_str(), mode);
+ }
+
+
+ } // namespace FileUtils
+
+ //@}
+
+} // namespace
+
+
+#endif
diff --git a/dev/src/GPSEpochWeekSecond.cpp b/dev/src/GPSEpochWeekSecond.cpp
new file mode 100644
index 0000000..8087302
--- /dev/null
+++ b/dev/src/GPSEpochWeekSecond.cpp
@@ -0,0 +1,214 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "GPSEpochWeekSecond.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ GPSEpochWeekSecond&
+ GPSEpochWeekSecond::operator=( const GPSEpochWeekSecond& right )
+ throw()
+ {
+ epoch = right.epoch;
+ week = right.week;
+ sow = right.sow;
+ return *this;
+ }
+
+ CommonTime GPSEpochWeekSecond::convertToCommonTime() const
+ {
+ int fullweek( epoch * WEEKS_PER_EPOCH + week );
+ int dow = static_cast<int>( sow * DAY_PER_SEC );
+ int jday = GPS_EPOCH_JDAY + ( 7 * fullweek ) + dow;
+ double sod( sow - SEC_PER_DAY * dow );
+ return CommonTime( jday,
+ static_cast<long>( sod ),
+ sod - static_cast<long>( sod ) );
+ }
+
+ void GPSEpochWeekSecond::convertFromCommonTime( const CommonTime& ct )
+ {
+ long day, sod;
+ double fsod;
+ ct.get( day, sod, fsod );
+
+ // find the number of days since the beginning of the GPS Epoch
+ day -= GPS_EPOCH_JDAY;
+ // find out how many weeks that is
+ int fullweek( static_cast<int>( day / 7 ) );
+ // find out what the day of week is
+ day -= fullweek * 7;
+
+ epoch = fullweek / WEEKS_PER_EPOCH;
+ week = fullweek % WEEKS_PER_EPOCH;
+ sow = static_cast<double>( day * SEC_PER_DAY + sod ) + fsod;
+ }
+
+ std::string GPSEpochWeekSecond::printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv = fmt;
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "E",
+ "Ed", epoch );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "G",
+ "Gd", week );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "w",
+ "wd", static_cast<int>(sow / SEC_PER_DAY));
+ rv = formattedPrint( rv, getFormatPrefixFloat() + "g",
+ "gf", sow);
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& exc )
+ {
+ GPSTK_RETHROW( exc );
+ }
+ }
+
+ bool GPSEpochWeekSecond::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin(); i != info.end(); i++ )
+ {
+ // based on the character, we know what to do...
+ switch ( i->first )
+ {
+ case 'E':
+ epoch = asInt( i->second );
+ break;
+ case 'G':
+ week = asInt( i->second );
+ break;
+ case 'w':
+ sow = static_cast<double>( asInt( i->second ) ) * SEC_PER_DAY;
+ break;
+ case 'g':
+ sow = asDouble( i->second );
+ break;
+ default:
+ // do nothing
+ break;
+ };
+
+ } // end of for loop
+
+ return true;
+ }
+
+ bool GPSEpochWeekSecond::isValid() const
+ throw()
+ {
+ GPSEpochWeekSecond temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void GPSEpochWeekSecond::reset()
+ throw()
+ {
+ epoch = week = 0;
+ sow = 0.0;
+ }
+
+ bool
+ GPSEpochWeekSecond::operator==( const GPSEpochWeekSecond& right ) const
+ throw()
+ {
+ if( epoch == right.epoch &&
+ week == right.week &&
+ sow == right.sow )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool
+ GPSEpochWeekSecond::operator!=( const GPSEpochWeekSecond& right ) const
+ throw()
+ {
+ return (! operator==( right ) );
+ }
+
+ bool
+ GPSEpochWeekSecond::operator<( const GPSEpochWeekSecond& right ) const
+ throw()
+ {
+ if( epoch < right.epoch )
+ {
+ return true;
+ }
+ if( epoch > right.epoch )
+ {
+ return false;
+ }
+ if( week < right.week )
+ {
+ return true;
+ }
+ if( week > right.week )
+ {
+ return false;
+ }
+ if( sow < right.sow )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool
+ GPSEpochWeekSecond::operator>( const GPSEpochWeekSecond& right ) const
+ throw()
+ {
+ return (! operator<=( right ) );
+ }
+
+ bool
+ GPSEpochWeekSecond::operator<=( const GPSEpochWeekSecond& right ) const
+ throw()
+ {
+ return ( operator<( right ) || operator==( right ) );
+ }
+
+ bool
+ GPSEpochWeekSecond::operator>=( const GPSEpochWeekSecond& right ) const
+ throw()
+ {
+ return (! operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/GPSEpochWeekSecond.hpp b/dev/src/GPSEpochWeekSecond.hpp
new file mode 100644
index 0000000..23c3e66
--- /dev/null
+++ b/dev/src/GPSEpochWeekSecond.hpp
@@ -0,0 +1,175 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_GPSEPOCHWEEKSECOND_HPP
+#define GPSTK_GPSEPOCHWEEKSECOND_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "GPS Epoch, GPS Week and GPS
+ * Seconds-of-week" time representation.
+ */
+ class GPSEpochWeekSecond : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup gewsbo GPSEpochWeekSecond Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ GPSEpochWeekSecond( int e = 0,
+ int w = 0,
+ double s = 0. )
+ throw()
+ : epoch(e), week(w), sow(s)
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the GPSEpochWeekSecond object to copy
+ */
+ GPSEpochWeekSecond( const GPSEpochWeekSecond& right )
+ throw()
+ : epoch( right.epoch ), week( right.week ), sow( right.sow )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSEpochWeekSecond( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSEpochWeekSecond( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the GPSEpochWeekSecond to copy
+ * @return a reference to this GPSEpochWeekSecond
+ */
+ GPSEpochWeekSecond& operator=( const GPSEpochWeekSecond& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~GPSEpochWeekSecond()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "EGwg";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%E %04G %g";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup gewsco GPSEpochWeekSecond Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the GPSEpochWeekSecond object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const GPSEpochWeekSecond& right ) const
+ throw();
+ bool operator!=( const GPSEpochWeekSecond& right ) const
+ throw();
+ bool operator<( const GPSEpochWeekSecond& right ) const
+ throw();
+ bool operator>( const GPSEpochWeekSecond& right ) const
+ throw();
+ bool operator<=( const GPSEpochWeekSecond& right ) const
+ throw();
+ bool operator>=( const GPSEpochWeekSecond& right ) const
+ throw();
+ //@}
+
+ int epoch;
+ int week;
+ double sow;
+ };
+
+}
+
+#endif // GPSTK_GPSEPOCHWEEKSECOND_HPP
diff --git a/dev/src/GPSGeoid.hpp b/dev/src/GPSGeoid.hpp
new file mode 100644
index 0000000..f578362
--- /dev/null
+++ b/dev/src/GPSGeoid.hpp
@@ -0,0 +1,89 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file GPSGeoid.hpp
+ * The GPS geoid defined in ICD-GPS-200
+ */
+
+#ifndef GPSTK_GPSGEOID_HPP
+#define GPSTK_GPSGEOID_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "WGS84Geoid.hpp"
+#include "icd_200_constants.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /**
+ * This class represents the geodetic model defined in
+ * ICD-GPS-200. This geodetic model was based on the WGS 84
+ * model, which has changed since the ICD-GPS-200 was written.
+ * To save the cost of having to update all of the fielded
+ * receivers, these constants were kept for GPS purposes.
+ *
+ * Only some of the WGS 84 geodetic model parameters are defined
+ * as part of the 200. These parameters are explicitly defined
+ * here. Other parameters are inherited from the WGS84Geoid
+ * definition.
+ */
+ class GPSGeoid : public WGS84Geoid
+ {
+ public:
+ /// defined in ICD-GPS-200C, 20.3.3.4.3.3 and Table 20-IV
+ /// @return angular velocity of Earth in radians/sec.
+ virtual double angVelocity() const throw()
+ { return 7.2921151467e-5; }
+
+ /// defined in ICD-GPS-200C, 20.3.3.4.3.3 and Table 20-IV
+ /// @return geocentric gravitational constant in m**3 / s**2
+ virtual double gm() const throw()
+ { return 3.986005e14; }
+
+ /// derived from ICD-GPS-200C, 20.3.3.4.3.3 and Table 20-IV
+ /// @return geocentric gravitational constant in km**3 / s**2
+ virtual double gm_km() const throw()
+ { return 3.9860034e5; }
+
+ /// defined in ICD-GPS-200C, 20.3.4.3
+ /// @return Speed of light in m/s.
+ virtual double c() const throw()
+ { return C_GPS_M; }
+
+ /// derived from ICD-GPS-200C, 20.3.4.3
+ /// @return Speed of light in km/s
+ virtual double c_km() const throw()
+ { return (C_GPS_M / 1000); }
+
+ }; // class GPSGeoid
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/GPSWeekSecond.cpp b/dev/src/GPSWeekSecond.cpp
new file mode 100644
index 0000000..393bdab
--- /dev/null
+++ b/dev/src/GPSWeekSecond.cpp
@@ -0,0 +1,196 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "GPSWeekSecond.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ GPSWeekSecond&
+ GPSWeekSecond::operator=( const GPSWeekSecond& right )
+ throw()
+ {
+ week = right.week;
+ sow = right.sow;
+ return *this;
+ }
+
+ CommonTime GPSWeekSecond::convertToCommonTime() const
+ {
+ int dow = static_cast<int>( sow * DAY_PER_SEC );
+ int jday = GPS_EPOCH_JDAY + ( 7 * week ) + dow;
+ double sod( sow - SEC_PER_DAY * dow );
+ return CommonTime( jday,
+ static_cast<long>( sod ),
+ sod - static_cast<long>( sod ) );
+ }
+
+ void GPSWeekSecond::convertFromCommonTime( const CommonTime& ct )
+ {
+ long day, sod;
+ double fsod;
+ ct.get( day, sod, fsod );
+
+ // find the number of days since the beginning of the GPS Epoch
+ day -= GPS_EPOCH_JDAY;
+ // find out how many weeks that is
+ week = static_cast<int>( day / 7 );
+ // find out what the day of week is
+ day %= 7;
+
+ sow = static_cast<double>( day * SEC_PER_DAY + sod ) + fsod;
+ }
+
+ std::string GPSWeekSecond::printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv = fmt;
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "F",
+ "Fd", week );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "w",
+ "wd", static_cast<int>(sow / SEC_PER_DAY) );
+ rv = formattedPrint( rv, getFormatPrefixFloat() + "g",
+ "gf", sow);
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& exc )
+ {
+ GPSTK_RETHROW( exc );
+ }
+ }
+
+ bool GPSWeekSecond::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin(); i != info.end(); i++ )
+ {
+ // based on the character, we know what to do...
+ switch ( i->first )
+ {
+ case 'F':
+ week = asInt( i->second );
+ break;
+ case 'w':
+ sow = static_cast<double>( asInt( i->second ) ) * SEC_PER_DAY;
+ break;
+ case 'g':
+ sow = asDouble( i->second );
+ break;
+ default:
+ // do nothing
+ break;
+ };
+
+ } // end of for loop
+
+ return true;
+ }
+
+ bool GPSWeekSecond::isValid() const
+ throw()
+ {
+ GPSWeekSecond temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void GPSWeekSecond::reset()
+ throw()
+ {
+ week = 0;
+ sow = 0.0;
+ }
+
+ bool
+ GPSWeekSecond::operator==( const GPSWeekSecond& right ) const
+ throw()
+ {
+ if( week == right.week &&
+ sow == right.sow )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool
+ GPSWeekSecond::operator!=( const GPSWeekSecond& right ) const
+ throw()
+ {
+ return (! operator==( right ) );
+ }
+
+ bool
+ GPSWeekSecond::operator<( const GPSWeekSecond& right ) const
+ throw()
+ {
+ if( week < right.week )
+ {
+ return true;
+ }
+ if( week > right.week )
+ {
+ return false;
+ }
+ if( sow < right.sow )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool
+ GPSWeekSecond::operator>( const GPSWeekSecond& right ) const
+ throw()
+ {
+ return (! operator<=( right ) );
+ }
+
+ bool
+ GPSWeekSecond::operator<=( const GPSWeekSecond& right ) const
+ throw()
+ {
+ return ( operator<( right ) || operator==( right ) );
+ }
+
+ bool
+ GPSWeekSecond::operator>=( const GPSWeekSecond& right ) const
+ throw()
+ {
+ return (! operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/GPSWeekSecond.hpp b/dev/src/GPSWeekSecond.hpp
new file mode 100644
index 0000000..ec732cc
--- /dev/null
+++ b/dev/src/GPSWeekSecond.hpp
@@ -0,0 +1,176 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_GPSWEEKSECOND_HPP
+#define GPSTK_GPSWEEKSECOND_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "Full GPS Week and GPS
+ * Seconds-of-week" time representation.
+ */
+ class GPSWeekSecond : public TimeTag
+ {
+ public:
+ static const std::string printChars;
+ static const std::string defaultFormat;
+
+ /**
+ * @defgroup gwsbo GPSWeekSecond Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ GPSWeekSecond( int w = 0,
+ double s = 0. )
+ throw()
+ : week(w), sow(s)
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the GPSWeekSecond object to copy
+ */
+ GPSWeekSecond( const GPSWeekSecond& right )
+ throw()
+ : week( right.week ), sow( right.sow )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSWeekSecond( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSWeekSecond( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the GPSWeekSecond to copy
+ * @return a reference to this GPSWeekSecond
+ */
+ GPSWeekSecond& operator=( const GPSWeekSecond& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~GPSWeekSecond()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "Fwg";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%04F %g";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup gwsco GPSWeekSecond Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the GPSWeekSecond object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const GPSWeekSecond& right ) const
+ throw();
+ bool operator!=( const GPSWeekSecond& right ) const
+ throw();
+ bool operator<( const GPSWeekSecond& right ) const
+ throw();
+ bool operator>( const GPSWeekSecond& right ) const
+ throw();
+ bool operator<=( const GPSWeekSecond& right ) const
+ throw();
+ bool operator>=( const GPSWeekSecond& right ) const
+ throw();
+ //@}
+
+ int week;
+ double sow;
+ };
+
+}
+
+#endif // GPSTK_GPSWEEKSECOND_HPP
diff --git a/dev/src/GPSWeekZcount.cpp b/dev/src/GPSWeekZcount.cpp
new file mode 100644
index 0000000..ec38330
--- /dev/null
+++ b/dev/src/GPSWeekZcount.cpp
@@ -0,0 +1,194 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "GPSWeekZcount.hpp"
+#include "TimeConstants.hpp"
+#include "TimeConverters.hpp"
+
+namespace gpstk
+{
+ GPSWeekZcount& GPSWeekZcount::operator=( const GPSWeekZcount& right )
+ throw()
+ {
+ week = right.week;
+ zcount = right.zcount;
+ return *this;
+ }
+
+ CommonTime GPSWeekZcount::convertToCommonTime() const
+ {
+ int dow = zcount / ZCOUNT_PER_DAY;
+ int jday = GPS_EPOCH_JDAY + ( 7 * week ) + dow;
+ double sod = static_cast<double>( zcount % ZCOUNT_PER_DAY ) * 1.5;
+ return CommonTime( jday,
+ static_cast<long>( sod ),
+ sod - static_cast<long>( sod ) );
+ }
+
+ void GPSWeekZcount::convertFromCommonTime( const CommonTime& ct )
+ {
+ long day, sod;
+ double fsod;
+ ct.get( day, sod, fsod );
+
+ // find the number of days since the beginning of the GPS Epoch
+ day -= GPS_EPOCH_JDAY;
+ // find out how many weeks that is
+ week = static_cast<int>( day / 7 );
+ // find out what the day of week is
+ day %= 7;
+
+ zcount = static_cast<long>( day * ZCOUNT_PER_DAY )
+ + static_cast<long>( static_cast<double>( sod + fsod ) / 1.5 );
+ }
+
+ std::string GPSWeekZcount::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "F", "Fd", week );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "w", "wd",
+ static_cast<int>(zcount / ZCOUNT_PER_DAY) );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "z", "zd", zcount );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "Z", "Zd", zcount );
+
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& exc )
+ {
+ GPSTK_RETHROW( exc );
+ }
+ }
+
+ bool GPSWeekZcount::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin(); i != info.end(); i++ )
+ {
+ // based on the character, we know what to do...
+ switch( i->first )
+ {
+ case 'F':
+ week = asInt( i->second );
+ break;
+
+ case 'w':
+ zcount = asInt( i->second) * ZCOUNT_PER_DAY;
+ break;
+
+ case 'z':
+ case 'Z':
+ zcount = asInt( i->second );
+ break;
+
+ default:
+ // do nothing
+ break;
+ };
+ }
+
+ return true;
+ }
+
+ bool GPSWeekZcount::isValid() const
+ throw()
+ {
+ GPSWeekZcount temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void GPSWeekZcount::reset()
+ throw()
+ {
+ week = zcount = 0;
+ }
+
+ bool GPSWeekZcount::operator==( const GPSWeekZcount& right ) const
+ throw()
+ {
+ if( week == right.week &&
+ zcount == right.zcount )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSWeekZcount::operator!=( const GPSWeekZcount& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool GPSWeekZcount::operator<( const GPSWeekZcount& right ) const
+ throw()
+ {
+ if( week < right.week )
+ {
+ return true;
+ }
+ if( week > right.week )
+ {
+ return false;
+ }
+ if( zcount < right.zcount )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSWeekZcount::operator>( const GPSWeekZcount& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool GPSWeekZcount::operator<=( const GPSWeekZcount& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool GPSWeekZcount::operator>=( const GPSWeekZcount& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/GPSWeekZcount.hpp b/dev/src/GPSWeekZcount.hpp
new file mode 100644
index 0000000..8621eb8
--- /dev/null
+++ b/dev/src/GPSWeekZcount.hpp
@@ -0,0 +1,173 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_GPSWEEKZCOUNT_HPP
+#define GPSTK_GPSWEEKZCOUNT_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "Full GPS Week and GPS Z-count" time
+ * representation.
+ */
+ class GPSWeekZcount : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup gwzbo GPSWeekZcount Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ GPSWeekZcount( int w = 0,
+ int z = 0 )
+ throw()
+ : week( w ), zcount( z )
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the GPSWeekZcount object to copy
+ */
+ GPSWeekZcount( const GPSWeekZcount& right )
+ throw()
+ : week( right.week ), zcount( right.zcount )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSWeekZcount( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSWeekZcount( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the GPSWeekZcount to copy
+ * @return a reference to this GPSWeekZcount
+ */
+ GPSWeekZcount& operator=( const GPSWeekZcount& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~GPSWeekZcount()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "FwzZ";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%04F %06Z";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup gwzco GPSWeekZcount Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the GPSWeekZcount object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const GPSWeekZcount& right ) const
+ throw();
+ bool operator!=( const GPSWeekZcount& right ) const
+ throw();
+ bool operator<( const GPSWeekZcount& right ) const
+ throw();
+ bool operator>( const GPSWeekZcount& right ) const
+ throw();
+ bool operator<=( const GPSWeekZcount& right ) const
+ throw();
+ bool operator>=( const GPSWeekZcount& right ) const
+ throw();
+ //@}
+
+ int week;
+ int zcount;
+ };
+
+} // namespace
+
+#endif // GPSTK_GPSWEEKZCOUNT_HPP
diff --git a/dev/src/GPSZcount.cpp b/dev/src/GPSZcount.cpp
new file mode 100644
index 0000000..d0de782
--- /dev/null
+++ b/dev/src/GPSZcount.cpp
@@ -0,0 +1,405 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file GPSZcount.cpp
+ * gpstk::GPSZcount - encapsulates time according to full GPS Week and Z-count.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <limits>
+
+#include "GPSZcount.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+using gpstk::StringUtils::asString;
+
+namespace gpstk
+{
+ const long GPSZcount::ZCOUNT_MINUTE = 40;
+ const long GPSZcount::ZCOUNT_HOUR = 2400;
+ const long GPSZcount::ZCOUNT_DAY = 57600;
+ const long GPSZcount::ZCOUNT_WEEK = 403200;
+
+ GPSZcount::GPSZcount(short inWeek,
+ long inZcount)
+ throw(gpstk::InvalidParameter)
+ {
+ try
+ {
+ setWeek(inWeek);
+ setZcount(inZcount);
+ }
+ catch(gpstk::InvalidParameter& ip)
+ {
+ GPSTK_RETHROW(ip);
+ }
+ }
+
+ GPSZcount::GPSZcount(long inFullZcount)
+ throw(gpstk::InvalidParameter)
+ {
+ try
+ {
+ setFullZcount(inFullZcount);
+ }
+ catch(gpstk::InvalidParameter& ip)
+ {
+ GPSTK_RETHROW(ip);
+ }
+ }
+
+ GPSZcount::GPSZcount(const GPSZcount& right)
+ throw()
+ {
+ operator=(right) ;
+ }
+
+ GPSZcount& GPSZcount::setWeek(short inWeek)
+ throw(gpstk::InvalidParameter)
+ {
+ if( inWeek < 0 )
+ {
+ gpstk::InvalidParameter ip("GPS Week invalid: " +
+ asString<short>(inWeek)) ;
+ GPSTK_THROW(ip) ;
+ }
+ week = inWeek;
+ return *this;
+ }
+
+ GPSZcount& GPSZcount::setZcount(long inZcount)
+ throw(gpstk::InvalidParameter)
+ {
+ if(validZcount(inZcount) != 0)
+ {
+ gpstk::InvalidParameter ip("GPS Z-count invalid: " +
+ asString<long>(inZcount)) ;
+ GPSTK_THROW(ip) ;
+ }
+ zcount = inZcount ;
+ return *this ;
+ }
+
+ GPSZcount& GPSZcount::setFullZcount(long inZcount)
+ throw(gpstk::InvalidParameter)
+ {
+ try
+ {
+ setZcount(inZcount & 0x7FFFFL) ; // 19-bit mask
+
+ // A 10-bit value will always be within constraints for a GPS week, so
+ // there's no need to test it.
+ setWeek((inZcount >> 19) & 0x3FFL) ; // 10-bit mask
+
+ }
+ catch(gpstk::InvalidParameter& ip)
+ {
+ ip.addText("GPS Full Z-count invalid: " + asString<long>(inZcount)) ;
+ GPSTK_RETHROW(ip) ;
+ }
+ return *this ;
+ }
+
+ GPSZcount& GPSZcount::addWeeks(short inWeeks)
+ throw(gpstk::InvalidRequest)
+ {
+ if (inWeeks == 0)
+ {
+ return *this ;
+ }
+
+ try
+ {
+ return setWeek(week + inWeeks) ;
+ }
+ catch(gpstk::InvalidParameter& ip)
+ {
+ gpstk::InvalidRequest ir(ip) ;
+ ir.addText("Addition of " + asString(inWeeks) +
+ " weeks renders this object invalid.") ;
+ GPSTK_THROW(ir) ;
+ }
+ }
+
+ GPSZcount& GPSZcount::addZcounts(long inZcounts)
+ throw(gpstk::InvalidRequest)
+ {
+ if (inZcounts == 0)
+ {
+ return *this ;
+ }
+
+ short originalWeek(week) ;
+ long originalZcount(zcount) ;
+
+ try
+ {
+ // First, do week modifications.
+ addWeeks(inZcounts / ZCOUNT_WEEK) ;
+
+ // Now, take care of Z-counts.
+ long tmp = zcount + (inZcounts % ZCOUNT_WEEK) ;
+
+ if (tmp < 0)
+ {
+ addWeeks(-1);
+ tmp += ZCOUNT_WEEK ;
+ }
+ else if (tmp >= ZCOUNT_WEEK)
+ {
+ addWeeks(1);
+ tmp -= ZCOUNT_WEEK ;
+ }
+
+ setZcount(tmp) ;
+ return *this ;
+
+ }
+ catch(gpstk::InvalidRequest& ir)
+ {
+ setWeek(originalWeek) ;
+ setZcount(originalZcount) ;
+ ir.addText("Did not add " + asString(inZcounts) + " Z-counts.") ;
+ GPSTK_RETHROW(ir) ;
+
+ }
+ catch(gpstk::InvalidParameter& ip)
+ {
+ setWeek(originalWeek) ;
+ setZcount(originalZcount) ;
+ gpstk::InvalidRequest ir(ip) ;
+ ir.addText("Did not add " + asString(inZcounts) + " Z-counts.") ;
+ GPSTK_THROW(ir) ;
+ }
+ }
+
+ GPSZcount GPSZcount::operator++(int)
+ throw(gpstk::InvalidRequest)
+ {
+ GPSZcount temp = *this ;
+ ++(*this) ;
+ return temp ;
+ }
+
+ GPSZcount& GPSZcount::operator++()
+ throw(gpstk::InvalidRequest)
+ {
+ return addZcounts(1);
+ }
+
+ GPSZcount GPSZcount::operator--(int)
+ throw(gpstk::InvalidRequest)
+ {
+ GPSZcount temp = *this ;
+ --(*this) ;
+ return temp ;
+ }
+
+ GPSZcount& GPSZcount::operator--()
+ throw(gpstk::InvalidRequest)
+ {
+ return addZcounts(-1);
+ }
+
+ GPSZcount GPSZcount::operator+(long inZcounts) const
+ throw(gpstk::InvalidRequest)
+ {
+ return GPSZcount(*this).addZcounts(inZcounts);
+ }
+
+ GPSZcount GPSZcount::operator-(long inZcounts) const
+ throw(gpstk::InvalidRequest)
+ {
+ return operator+(-inZcounts);
+ }
+
+ double GPSZcount::operator-(const GPSZcount& right) const
+ throw()
+ {
+ return (double(week) - right.week) * ZCOUNT_WEEK
+ + (zcount - right.zcount) ;
+ }
+
+ long GPSZcount::operator%(const long right) const
+ throw()
+ {
+ return zcount % right;
+ }
+
+ GPSZcount& GPSZcount::operator+=(long inZcounts)
+ throw(gpstk::InvalidRequest)
+ {
+ return addZcounts(inZcounts);
+ }
+
+ GPSZcount& GPSZcount::operator-=(long inZcounts)
+ throw(gpstk::InvalidRequest)
+ {
+ return addZcounts(-inZcounts);
+ }
+
+ GPSZcount& GPSZcount::operator=(const GPSZcount& right)
+ throw()
+ {
+ week = right.week;
+ zcount = right.zcount;
+ return *this;
+ }
+
+ bool GPSZcount::operator<(const GPSZcount& right) const
+ throw()
+ {
+ if (week < right.week)
+ {
+ return true;
+ }
+ if (week == right.week &&
+ zcount < right.zcount)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount::operator>(const GPSZcount& right) const
+ throw()
+ {
+ if (week > right.week)
+ {
+ return true;
+ }
+ if (week == right.week &&
+ zcount > right.zcount)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount::operator==(const GPSZcount& right) const
+ throw()
+ {
+ if (week == right.week &&
+ zcount == right.zcount)
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount::operator!=(const GPSZcount& right) const
+ throw()
+ {
+ return (! operator==(right));
+ }
+
+ bool GPSZcount::operator<=(const GPSZcount& right) const
+ throw()
+ {
+ return (! operator>(right));
+ }
+
+ bool GPSZcount::operator>=(const GPSZcount& right) const
+ throw()
+ {
+ return (! operator<(right));
+ }
+
+ GPSZcount::operator std::string() const
+ throw()
+ {
+ return asString<short>(week) + "w" + asString<long>(zcount) + "z";
+ }
+
+ bool GPSZcount::inSameTimeBlock(const GPSZcount& other,
+ unsigned long inZcountBlock,
+ unsigned long inZcountOffset)
+ throw()
+ {
+ if (inZcountBlock < ZCOUNT_WEEK)
+ {
+ // Make sure that we're in the same week, and then check to see if
+ // we're in the same time block
+ if ( (getWeek() == other.getWeek()) &&
+ (((getZcount() - inZcountOffset) / inZcountBlock) ==
+ ((other.getZcount() - inZcountOffset) / inZcountBlock)) )
+ {
+ return true ;
+ }
+ }
+ else // inZcountBlock >= ZCOUNT_WEEK
+ {
+ // Compare using the total number of Z-counts.
+ if (long((getTotalZcounts() - inZcountOffset) / inZcountBlock) ==
+ long((other.getTotalZcounts() - inZcountOffset) / inZcountBlock))
+ {
+ return true ;
+ }
+ }
+
+ return false ;
+ }
+
+ void GPSZcount::dump(std::ostream& out,
+ short level) const
+ throw()
+ {
+ switch(level)
+ {
+ case 0:
+ out << week << "w" << zcount << "z" << flush;
+ break;
+ case 1:
+ default:
+ out << "GPS Full Week: " << setw(6) << week << endl
+ << "GPS Z-count: " << setw(6) << zcount << endl;
+ break;
+ }
+ }
+
+ long GPSZcount::validZcount(long z)
+ throw()
+ {
+ if (z < 0)
+ {
+ return z;
+ }
+ if (z >= GPSZcount::ZCOUNT_WEEK)
+ {
+ return (z - (GPSZcount::ZCOUNT_WEEK - 1));
+ }
+ return 0; // z is OK
+ }
+
+ std::ostream& operator<<(std::ostream& s,
+ const gpstk::GPSZcount& z)
+ {
+ z.dump(s, 0) ;
+ return s;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/GPSZcount.hpp b/dev/src/GPSZcount.hpp
new file mode 100644
index 0000000..8c2c7d3
--- /dev/null
+++ b/dev/src/GPSZcount.hpp
@@ -0,0 +1,376 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file GPSZcount.hpp
+ * gpstk::GPSZcount - encapsulates time according to full GPS Week and Z-count.
+ */
+
+#ifndef GPSTK_GPSZCOUNT_HPP
+#define GPSTK_GPSZCOUNT_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+// system includes
+#include <ostream>
+
+// GPSTK includes
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup timegroup */
+ //@{
+
+ /**
+ * A representation class for GPS Time consisting of
+ * a short GPS week, and a long GPS Z-count.
+ * A valid GPS week is in the following range:
+ * 0 <= week <= numerical_limits<short>::max()
+ * A valid GPS Z-count is in the following range:
+ * 0 <= zcount < 403200
+ *
+ * In Z-count addition, if a specified Z-count value is above or below
+ * the given range of valid Z-counts, the appropriate number of GPS
+ * weeks-worth of Z-counts are added or subtracted from the given value
+ * so that it falls within the acceptable range. These extra weeks are
+ * then accounted for in the weeks data member. If the addition or
+ * subtraction of these additional weeks cause the GPS week value to go
+ * out-of-bounds, an InvalidRequest exception is thrown.
+ */
+ class GPSZcount
+ {
+ public:
+ /// Z-counts per minute (40)
+ static const long ZCOUNT_MINUTE;
+ /// Z-counts per hour (2400)
+ static const long ZCOUNT_HOUR;
+ /// Z-counts per day (57600)
+ static const long ZCOUNT_DAY;
+ /// Z-counts per whole GPS week. (403200)
+ static const long ZCOUNT_WEEK;
+
+ /** Separate Week and Z-count Constructor.
+ * @param inWeek the GPS week to use in this object.
+ * @param inZcount the GPS Z-count to use in this object.
+ * @throws gpstk::InvalidParameter if either inWeek or inZcount
+ * are invalid values for their respective types.
+ */
+ GPSZcount(short inWeek,
+ long inZcount)
+ throw(gpstk::InvalidParameter) ;
+
+ /** Full Z-count Constructor.
+ * @param inFullZcount the Full 29-bit GPS Z-count to use in
+ * this object. (default=0 => week == 0; Z-count == 0)
+ * @throws gpstk::InvalidParameter if either inFullZcount is
+ * an invalid value for a full Z-count.
+ */
+ GPSZcount(long inFullZcount = 0)
+ throw(gpstk::InvalidParameter) ;
+
+ /// Destructor. Does nothing.
+ ~GPSZcount() throw() {}
+
+ /** Copy Constructor.
+ * @param right the GPSZcount object to copy
+ */
+ GPSZcount(const GPSZcount& right)
+ throw() ;
+
+ /// GPS week accessor
+ short getWeek() const throw()
+ { return week ; }
+
+ /// GPS Z-count accessor
+ long getZcount() const throw()
+ { return zcount ; }
+
+ /** Construct, from the data members, the Z-count which could have
+ * been broadcast from an SV.
+ * @return a Full Z-count (3 MSB unused, next 10 bits = week,
+ * 19 LSB = Z-count)
+ */
+ long getFullZcount() const
+ throw()
+ { return (long(getWeek() & 0x3FF) << 19) + getZcount() ; }
+
+ /** Calculate the total number of Z-counts in this object.
+ * @return weeks * ZCOUNT_WEEK + zcount
+ */
+ double getTotalZcounts() const
+ throw()
+ { return double(getWeek()) * ZCOUNT_WEEK + getZcount() ; }
+
+ /** Set the GPS week.
+ * @param inWeek the new value for GPS Week.
+ * @return a reference to this object.
+ * @throws gpstk::InvalidParameter if inWeek is an invalid value
+ * for a GPS week.
+ */
+ GPSZcount& setWeek(short inWeek)
+ throw(gpstk::InvalidParameter) ;
+
+ /** Set the GPS Z-count.
+ * @param inZcount the new value for GPS Z-count.
+ * @return a reference to this object.
+ * @throws gpstk::InvalidParameter if inZcount is an invalid value
+ * for a GPS Z-count.
+ */
+ GPSZcount& setZcount(long inZcount)
+ throw(gpstk::InvalidParameter) ;
+
+ /** Set the GPS Week and Z-count using the value broadcast from an SV.
+ * @param inZcount A full Z-count (3 MSB unused, next 10 bits = week,
+ * 19 LSB = Z-count)
+ * @throws gpstk::InvalidParameter if the extracted Z-count is
+ * an invalid value for a GPS Z-count.
+ */
+ GPSZcount& setFullZcount(long inZcount)
+ throw(gpstk::InvalidParameter) ;
+
+ /** Add the given number of weeks to the current value.
+ * @param inWeeks the number of weeks to add to the current value.
+ * @return a reference to this object
+ * @throws gpstk::InvalidRequest if adding inWeeks would render
+ * this object invalid.
+ */
+ GPSZcount& addWeeks(short inWeeks)
+ throw(gpstk::InvalidRequest) ;
+
+ /** Add the given number of Z-counts to the current value.
+ * This may cause a roll-(over/under) of the Z-count and appropriate
+ * modification of the week.
+ * @param inZcounts the number of Z-counts to add to the current
+ * value.
+ * @return a reference to this object
+ * @throws gpstk::InvalidRequest if adding inZcounts would render
+ * this object invalid.
+ */
+ GPSZcount& addZcounts(long inZcounts)
+ throw(gpstk::InvalidRequest) ;
+
+ /** Postfix Increment the Z-count in this object (x++). This may also
+ * cause the roll-over of the Z-count and incrementing of the week.
+ * @return a GPSZcount with the value of this object before the
+ * increment
+ * @throws gpstk::InvalidRequest if Z-count increment would render
+ * this object invalid.
+ */
+ GPSZcount operator++(int)
+ throw(gpstk::InvalidRequest) ;
+
+ /** Prefix Increment the Z-count in this object (++x). This may also
+ * cause the roll-over of the Z-count and incrementing of the week.
+ * @return a reference to this object.
+ * @throws gpstk::InvalidRequest if Z-count increment would render
+ * this object invalid.
+ */
+ GPSZcount& operator++()
+ throw(gpstk::InvalidRequest) ;
+
+ /** Postfix Decrement the Z-count in this object (x--). This may also
+ * cause the roll-under of the Z-count and decrementing of the week.
+ * @return a GPSZcount with the value of this object before the
+ * decrement
+ * @throws gpstk::InvalidRequest if a Z-count decrement would render
+ * this object invalid.
+ */
+ GPSZcount operator--(int)
+ throw(gpstk::InvalidRequest) ;
+
+ /** Prefix Decrement the Z-count in this object (--x). This may also
+ * cause the roll-under of the Z-count and decrementing of the week.
+ * @return a reference to this object.
+ * @throws gpstk::InvalidRequest if a Z-count decrement would render
+ * this object invalid.
+ */
+ GPSZcount& operator--()
+ throw(gpstk::InvalidRequest) ;
+
+ /** Add the given number of Z-counts to the current value.
+ * This may cause a roll-(over/under) of the Z-count and appropriate
+ * modification of the week.
+ * @param inZcounts the number of Z-counts to add to the current
+ * value.
+ * @return a modified GPSZcount object
+ * @throws gpstk::InvalidRequest if adding inZcounts would render
+ * this object invalid.
+ */
+ GPSZcount operator+(long inZcounts) const
+ throw(gpstk::InvalidRequest) ;
+
+ /** Subtract the given number of Z-counts from the current value.
+ * This may cause a roll-(over/under) of the Z-count and appropriate
+ * modification of the week.
+ * @param inZcounts the number of Z-counts to subtract from the
+ * current value.
+ * @return a modified GPSZcount object
+ * @throws gpstk::InvalidRequest if subtracting inZcounts would
+ * render this object invalid.
+ */
+ GPSZcount operator-(long inZcounts) const
+ throw(gpstk::InvalidRequest) ;
+
+ /** Compute the time differenct between this object and \a right.
+ * @param right the GPSZcount to subtract from this object
+ * @return the number of Z-counts between this object and \a right
+ * Note that this returns a double as opposed to a long. This is to
+ * avoid any overflow issues.
+ */
+ double operator-(const GPSZcount& right) const
+ throw() ;
+
+ /** Compute the remainder of the ztime
+ * @param right the number to
+ * @return z counts % \a right
+ */
+ long operator%(const long right) const
+ throw() ;
+
+ /** Add the given number of Z-counts to the current value.
+ * This may cause a roll-(over/under) of the Z-count and appropriate
+ * modification of the week.
+ * @param inZcounts the number of Z-counts to add to the current
+ * value.
+ * @return a reference to this object
+ * @throws gpstk::InvalidRequest if adding inZcounts would render
+ * this object invalid.
+ */
+ GPSZcount& operator+=(long inZcounts)
+ throw(gpstk::InvalidRequest) ;
+
+ /** Subtract the given number of Z-counts from the current value.
+ * This may cause a roll-(over/under) of the Z-count and appropriate
+ * modification of the week.
+ * @param inZcounts the number of Z-counts to subtract from the
+ * current value.
+ * @return a reference to this object
+ * @throws gpstk::InvalidRequest if subtracting inZcounts would
+ * render this object invalid.
+ */
+ GPSZcount& operator-=(long inZcounts)
+ throw(gpstk::InvalidRequest) ;
+
+ /// Assignment operator.
+ GPSZcount& operator=(const GPSZcount& right)
+ throw();
+
+ /// Comparison operator (less-than).
+ bool operator<(const GPSZcount& right) const
+ throw();
+ /// Comparison operator (greater-than).
+ bool operator>(const GPSZcount& right) const
+ throw();
+ /// Equality operator.
+ bool operator==(const GPSZcount& right) const
+ throw();
+ /// Inequality operator.
+ bool operator!=(const GPSZcount& right) const
+ throw();
+ /// Comparison operator (less-than or equal-to).
+ bool operator<=(const GPSZcount& right) const
+ throw();
+ /// Comparison operator (greater-than or equal-to).
+ bool operator>=(const GPSZcount& right) const
+ throw();
+
+ /// Convert this object to a string.
+ operator std::string() const
+ throw() ;
+
+ /**
+ * This is a test of whether or not this object and the given
+ * GPSZcount object are within the same time-block. Say you need to
+ * find out if the two GPSZcounts are:
+ * ... in the same day: inZcountBlock == ZCOUNT_DAY
+ * ... or the same minute: inZcountBlock == ZCOUNT_MINUTE etc.
+ * For inZcountBlock < ZCOUNT_WEEK, blocks start at the beginning of
+ * the week.
+ * For inZcountBlock >= ZCOUNT_WEEK, blocks start at the beginning of
+ * GPS Week 0.
+ * inZcountOffset allows checking of times off of the usual boundaries
+ * i.e. in the same day where a day is defined as starting at noon
+ * instead of at midnight, or in the same minute where a minute
+ * starts at 23 seconds instead of zero.
+ * @param other the other GPSZcount object
+ * @param inZcountBlock the number of Z-counts in a time-block
+ * @param inZcountOffset the number of Z-counts to offset the
+ * time-block (default = 0)
+ * @return whether this object and /a other are in the same time-block
+ */
+ bool inSameTimeBlock(const GPSZcount& other,
+ unsigned long inZcountBlock,
+ unsigned long inZcountOffset = 0)
+ throw();
+
+ /** Dump the contents of this object to the given output stream.
+ * @param out the output stream to write to
+ * @param level the level of verbosity to use (default=0)
+ */
+ void dump(std::ostream& out,
+ short level = 0) const
+ throw() ;
+
+ protected:
+ short week; ///< GPS full week. (0 <= week)
+ long zcount; ///< GPS Z-count. (0 <= zcount <= 403199)
+
+ /** Check the validity of the given Z-count.
+ * @param z the Z-count to verify
+ * @return 0 if valid, negative if below zero,
+ * positive if above 403199
+ */
+ static long validZcount(long z)
+ throw();
+
+ };
+
+ /** Stream output operator for GPSZcount objects.
+ * @param s stream to append formatted GPSZcount to.
+ * @param z GPSZcount to append to stream \c s.
+ * @return a reference to \c s.
+ */
+ std::ostream& operator<<(std::ostream& s,
+ const gpstk::GPSZcount& z) ;
+
+ //@}
+
+} // namespace gpstk
+
+#endif // GPSTK_GPSZCOUNT_HPP
diff --git a/dev/src/GPSZcount29.cpp b/dev/src/GPSZcount29.cpp
new file mode 100644
index 0000000..977c8ca
--- /dev/null
+++ b/dev/src/GPSZcount29.cpp
@@ -0,0 +1,186 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "GPSZcount29.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ GPSZcount29& GPSZcount29::operator=( const GPSZcount29& right )
+ throw()
+ {
+ zcount = right.zcount;
+ return *this;
+ }
+
+ CommonTime GPSZcount29::convertToCommonTime() const
+ {
+ // What we have in the zcount data member is the following:
+ // a 10-bit week number, and a 19-bit zcount. Split 'em apart.
+ long wk( epoch * WEEKS_PER_EPOCH + ( (zcount >> 19) & 0x3FF ) );
+ long zc( zcount & 0x7FFFF );
+ long jday = GPS_EPOCH_JDAY + ( 7 * wk )
+ + ( zc / ZCOUNT_PER_DAY );
+ double sod = ( zc % ZCOUNT_PER_DAY ) * 1.5;
+
+ return CommonTime( jday,
+ static_cast<long>( sod ),
+ sod - static_cast<long>( sod ) );
+ }
+
+ void GPSZcount29::convertFromCommonTime( const CommonTime& ct )
+ {
+ long day, sod;
+ double fsod;
+ ct.get( day, sod, fsod );
+
+ // find the number of days since the beginning of the GPS Epoch
+ day -= GPS_EPOCH_JDAY;
+
+ // find out how many weeks that is
+ int wk( static_cast<int>( day / 7 ) );
+
+ // ... and chop off the epochs
+ epoch = wk / WEEKS_PER_EPOCH;
+ wk %= WEEKS_PER_EPOCH;
+
+ // find out what the day of week is
+ day %= 7;
+
+ zcount = static_cast<long>( day * ZCOUNT_PER_DAY )
+ + static_cast<long>( static_cast<double>( sod + fsod ) / 1.5 );
+
+ zcount |= ( wk << 19 );
+ }
+
+ std::string GPSZcount29::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "E",
+ "Ed", epoch );
+ rv = formattedPrint( rv, getFormatPrefixInt() + "c",
+ "cd", zcount );
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ bool GPSZcount29::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin(); i != info.end(); i++ )
+ {
+ switch( i->first )
+ {
+ case 'E':
+ epoch = gpstk::StringUtils::asInt( i->second );
+ break;
+ case 'c':
+ zcount = gpstk::StringUtils::asInt( i->second );
+ break;
+ default:
+ // do nothing
+ break;
+ };
+ }
+
+ return true;
+ }
+
+ bool GPSZcount29::isValid() const
+ throw()
+ {
+ GPSZcount29 temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void GPSZcount29::reset()
+ throw()
+ {
+ epoch = zcount = 0;
+ }
+
+ bool GPSZcount29::operator==( const GPSZcount29& right ) const
+ throw()
+ {
+ if( zcount == right.zcount )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount29::operator!=( const GPSZcount29& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool GPSZcount29::operator<( const GPSZcount29& right ) const
+ throw()
+ {
+ if( zcount < right.zcount )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount29::operator>( const GPSZcount29& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool GPSZcount29::operator<=( const GPSZcount29& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool GPSZcount29::operator>=( const GPSZcount29& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/GPSZcount29.hpp b/dev/src/GPSZcount29.hpp
new file mode 100644
index 0000000..43c720d
--- /dev/null
+++ b/dev/src/GPSZcount29.hpp
@@ -0,0 +1,173 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_GPSZCOUNT29_HPP
+#define GPSTK_GPSZCOUNT29_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "GPS Epoch and 29-bit full Zcount" time
+ * representation.
+ */
+ class GPSZcount29 : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup gz29bo GPSZcount29 Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ GPSZcount29( int e = 0,
+ int z = 0 )
+ throw()
+ : epoch( e ), zcount( z )
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the GPSZcount29 object to copy
+ */
+ GPSZcount29( const GPSZcount29& right )
+ throw()
+ : epoch( right.epoch ), zcount( right.zcount )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSZcount29( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSZcount29( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the GPSZcount29 to copy
+ * @return a reference to this GPSZcount29
+ */
+ GPSZcount29& operator=( const GPSZcount29& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~GPSZcount29()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "Ec";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%E %c";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup gz29co GPSZcount29 Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the GPSZcount29 object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const GPSZcount29& right ) const
+ throw();
+ bool operator!=( const GPSZcount29& right ) const
+ throw();
+ bool operator<( const GPSZcount29& right ) const
+ throw();
+ bool operator>( const GPSZcount29& right ) const
+ throw();
+ bool operator<=( const GPSZcount29& right ) const
+ throw();
+ bool operator>=( const GPSZcount29& right ) const
+ throw();
+ //@}
+
+ int epoch;
+ int zcount;
+ };
+
+} // namespace
+
+#endif // GPSTK_GPSZCOUNT32_HPP
diff --git a/dev/src/GPSZcount32.cpp b/dev/src/GPSZcount32.cpp
new file mode 100644
index 0000000..44e7d06
--- /dev/null
+++ b/dev/src/GPSZcount32.cpp
@@ -0,0 +1,168 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "GPSZcount32.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ GPSZcount32& GPSZcount32::operator=( const GPSZcount32& right )
+ throw()
+ {
+ zcount = right.zcount;
+ return *this;
+ }
+
+ CommonTime GPSZcount32::convertToCommonTime() const
+ {
+ // What we have in the zcount data member is the following:
+ // a 13-bit week number, and a 19-bit zcount. Split 'em apart.
+ int wk( (zcount >> 19) & 0x1FFF ), zc( zcount & 0x7FFFF );
+ int jday = GPS_EPOCH_JDAY + ( 7 * wk )
+ + static_cast<int>( zc * DAY_PER_ZCOUNT );
+ double sod = ( zc % ZCOUNT_PER_DAY ) * 1.5;
+
+ return CommonTime( jday,
+ static_cast<long>( sod ),
+ sod - static_cast<long>( sod ) );
+ }
+
+ void GPSZcount32::convertFromCommonTime( const CommonTime& ct )
+ {
+ long day, sod;
+ double fsod;
+ ct.get( day, sod, fsod );
+
+ // find the number of days since the beginning of the GPS Epoch
+ day -= GPS_EPOCH_JDAY;
+ // find out how many weeks that is
+ int wk( static_cast<int>( day / 7 ) );
+ // find out what the day of week is
+ day %= 7;
+
+ zcount = static_cast<long>( day * ZCOUNT_PER_DAY )
+ + static_cast<long>( static_cast<double>( sod + fsod ) / 1.5 );
+
+ zcount |= ( wk << 19 );
+ }
+
+ std::string GPSZcount32::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "C",
+ "Cd", zcount );
+
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ bool GPSZcount32::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ IdToValue::const_iterator itr = info.find('C');
+ if( itr != info.end() )
+ {
+ zcount = gpstk::StringUtils::asInt( itr->second );
+ }
+
+ return true;
+ }
+
+ bool GPSZcount32::isValid() const
+ throw()
+ {
+ GPSZcount32 temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void GPSZcount32::reset()
+ throw()
+ {
+ zcount = 0;
+ }
+
+ bool GPSZcount32::operator==( const GPSZcount32& right ) const
+ throw()
+ {
+ if( zcount == right.zcount )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount32::operator!=( const GPSZcount32& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool GPSZcount32::operator<( const GPSZcount32& right ) const
+ throw()
+ {
+ if( zcount < right.zcount )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool GPSZcount32::operator>( const GPSZcount32& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool GPSZcount32::operator<=( const GPSZcount32& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool GPSZcount32::operator>=( const GPSZcount32& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/GPSZcount32.hpp b/dev/src/GPSZcount32.hpp
new file mode 100644
index 0000000..9790264
--- /dev/null
+++ b/dev/src/GPSZcount32.hpp
@@ -0,0 +1,170 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_GPSZCOUNT32_HPP
+#define GPSTK_GPSZCOUNT32_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "32-bit full Zcount" time representation.
+ */
+ class GPSZcount32 : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup gz32bo GPSZcount32 Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ GPSZcount32( int z = 0 )
+ throw()
+ : zcount( z )
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the GPSZcount32 object to copy
+ */
+ GPSZcount32( const GPSZcount32& right )
+ throw()
+ : zcount( right.zcount )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSZcount32( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ GPSZcount32( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the GPSZcount32 to copy
+ * @return a reference to this GPSZcount32
+ */
+ GPSZcount32& operator=( const GPSZcount32& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~GPSZcount32()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "C";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%C";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup gz32co GPSZcount32 Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the GPSZcount32 object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const GPSZcount32& right ) const
+ throw();
+ bool operator!=( const GPSZcount32& right ) const
+ throw();
+ bool operator<( const GPSZcount32& right ) const
+ throw();
+ bool operator>( const GPSZcount32& right ) const
+ throw();
+ bool operator<=( const GPSZcount32& right ) const
+ throw();
+ bool operator>=( const GPSZcount32& right ) const
+ throw();
+ //@}
+
+ int zcount;
+ };
+
+} // namespace
+
+#endif // GPSTK_GPSZCOUNT32_HPP
diff --git a/dev/src/GenXSequence.cpp b/dev/src/GenXSequence.cpp
new file mode 100644
index 0000000..f2a4b88
--- /dev/null
+++ b/dev/src/GenXSequence.cpp
@@ -0,0 +1,215 @@
+// $Id$
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/*
+ * GenXSequence.cpp - Generate GPS X-register sequences
+ */
+
+ // Local headers
+#include "GenXSequence.hpp"
+
+namespace gpstk
+{
+ // Constructor
+ GenXSequence::GenXSequence( const unsigned int initialState,
+ const unsigned int tapRegister,
+ const int initialLengthOfSequence,
+ const int maxDelay )
+ {
+
+ /*
+ * NOTE: the x register functions assume a LSB-to-MSB shift. Therefore,
+ * the tap register definition and the initialization definition for the
+ * X register correspond to the diagrams in ICD-GPS-200, assuming
+ * "stage 0" is the LSB. That means the diagrams have to be read from
+ * LSB (LEFT) -> MSB (RIGHT). The corresponding text doesn't have this
+ * problem.
+ */
+ unsigned int mask12bits[12] = { 0x0001, 0x0002, 0x0004, 0x0008,
+ 0x0010, 0x0020, 0x0040, 0x0080,
+ 0x0100, 0x0200, 0x0400, 0x0800 };
+
+ unsigned int reg = initialState;
+ lengthOfSequence = initialLengthOfSequence;
+ maxOfSequence = lengthOfSequence + maxDelay;
+
+ unsigned long output;
+ word_num = 0;
+ bit_num = 0;
+ int bit16cnt;
+ int andBits;
+ int i;
+
+ // Clear the output array
+ for ( i=0; i<MAX_WORD; ++i ) bits[i] = 0L;
+ debugPrint = false;
+
+ for ( i=0; i<lengthOfSequence ; ++i)
+ {
+ // Get current output and store it away
+ if ( (reg & 0x0800) != 0 ) output = 0x00000001;
+ else output = 0x00000000;
+ addBitToSequence( output );
+
+ // Calculate next input bit
+ andBits = reg & tapRegister;
+ reg <<= 1;
+ reg &= 0x0FFF;
+ int cnt = 0;
+ for ( int bit12cnt=0; bit12cnt<12; ++bit12cnt)
+ {
+ if (( andBits & mask12bits[bit12cnt] ) != 0) ++cnt;
+ }
+ int newBit = cnt % 2;
+ reg |= newBit;
+
+ }
+
+ // Fill delay bits with copies of the last ouptut bit
+ for ( i=0; i<maxDelay; ++i) addBitToSequence( output );
+
+ // When finished, make sure the last word (which is probably
+ // a partially-filled word) is left-justified.
+ if (bit_num>0) bits[word_num] <<= (MAX_BIT-bit_num);
+ }
+
+ // Private helper method to avoid duplicate code.
+ void GenXSequence::addBitToSequence( unsigned long newBit )
+ {
+ // Left shift any pre-existing data, then OR on the new
+ // data (assumed to be right-justified).
+ bits[word_num] <<= 1;
+ bits[word_num] |= newBit;
+
+ /*
+ Increment bit pointer and check for word overflow.
+ NOTE: Overflow of the WORD pointer is a "programming problem"
+ that is unrecoverable and should NEVER happen in production.
+ */
+ ++bit_num;
+ if (bit_num>=MAX_BIT)
+ {
+ ++word_num;
+ bit_num=0;
+ }
+ }
+
+ /*
+ Given a bit position within the X sequence (numbered starting at 0),
+ return the next 32 bits. Note: if there are insufficient bits left
+ to fill the request, wrap around to the beginning of the sequence.
+ Note that the location of the wrap around can be modified using the
+ function GenXSequence::setEndOfSequence( int los );
+ */
+ unsigned long GenXSequence::operator[] ( int i )
+ {
+ unsigned long retArg;
+ int ndx1 = i / MAX_BIT;
+ int offset = i % MAX_BIT;
+ if ( (i+MAX_BIT) <= lengthOfSequence )
+ {
+ if (offset==0) retArg = bits[ndx1];
+ else retArg = merge( bits[ndx1], bits[ndx1+1], offset );
+ }
+ /*
+ Complicated case when coming up to end of sequence. May have to
+ put together parts of up to three words to get 32 bits. Two words
+ at the end of sequence plus "wrap around" bits from beginning of
+ sequence.
+ First: If end of sequence doesn't fall in current word, use up
+ remaining bits in the current word.
+ Second: use bits up to the end of sequence.
+ Third: fill remaining bits from the beginning of the sequence.
+ */
+ else
+ {
+ retArg = 0L;
+ int numRemainingInSequence = lengthOfSequence - i;
+ int numRemainingInWord = MAX_BIT - offset;
+ int numFilled = 0;
+
+ /*
+ Get bits (if any) from next-to-last word.
+ */
+ if (numRemainingInWord<numRemainingInSequence)
+ {
+ retArg = bits[ndx1++] << offset;
+ numRemainingInSequence -= numRemainingInWord;
+ numFilled = numRemainingInWord;
+ }
+
+ unsigned long temp = bits[ndx1];
+ /*
+ Get bits from last word
+ Case 1: No bits from previous word, need only "middle" section
+ from last word.
+ Case 2: Need all bits available from final word (may or
+ may not have bits from preceding word)
+ */
+ if (numFilled==0 && offset!=0)
+ {
+ temp <<= offset; // Move to left to clear excess msb
+ temp >>= (MAX_BIT-numRemainingInSequence); // Shift right to clear excess lsb retArg |= temp;
+ temp <<= (MAX_BIT - (numRemainingInSequence+numFilled) );
+ retArg |= temp;
+ }
+ else
+ {
+ temp >>= (MAX_BIT-numRemainingInSequence);
+ temp <<= (MAX_BIT-(numRemainingInSequence+numFilled));
+ retArg |= temp;
+ }
+
+ // Finally, add bits from the "wraparound" word at the
+ // beginning of the array.
+ retArg |= bits[0] >> (numRemainingInSequence+numFilled);
+ }
+ return(retArg);
+ }
+
+ void GenXSequence::setLengthOfSequence( int los )
+ {
+ lengthOfSequence = los;
+ return;
+ }
+} // end of namespace
diff --git a/dev/src/GenXSequence.hpp b/dev/src/GenXSequence.hpp
new file mode 100644
index 0000000..6cda541
--- /dev/null
+++ b/dev/src/GenXSequence.hpp
@@ -0,0 +1,161 @@
+#pragma ident "$Id$"
+
+
+
+// GenXSequence.hpp - Generate X Sequence class.
+
+#ifndef GENXSEQUENCE_HPP
+#define GENXSEQUENCE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "PCodeConst.hpp"
+#include "mergePCodeWords.h"
+
+namespace gpstk
+{
+/** @addtogroup code */
+//@{
+
+ // Derived from X2A maximum length (see xconst.hpp)
+ const int MAX_WORD = 140;
+
+ /**
+ * Generate X Sequence for GPS
+ * Applied Research Laboratories, The University of Texas at Austin
+ * August 2003
+ *
+ * GenXSequence holds a bit buffer containing one of the GPS code
+ * sequences: X1A, X1B, X2A, X2B.
+ *
+ * The first 4092 or 4093 bits are constructed using the algorithms
+ * from ICD-GPS-200, section 3.3.2. The process of generating the
+ * bits is identical for each of the four sequences. The process
+ * consists of a 12-bit shift register which is initialized to a
+ * specific value and a specification of the "taps" on the shift
+ * register. As a given bit is read off the high end of the register,
+ * the sum of the bits specified by the taps is used to determine
+ * is 0 or 1 is used as the next input to the shift register. This
+ * process is defined in more detail in ICD-GPS-200 section 3.3.2.2.
+ *
+ * Once the 4092 or 4093 bits are constructed, in the case of X1B, X2A,
+ * and X2B it is necesary to add copies of the last bit to account for
+ * delay states in which the register is "held" in it's final position
+ * for many counts while X1A completes a cycle.
+ *
+ * Once the sequences are created, the array subscript operator is used
+ * to access the sequences 32 bits at a time. The index passed to the
+ * array subscript operator is the bit position within the sequence
+ * (first bit is equal to bit 0). When the process reaches the end of
+ * the sequence, the operator will "wrap around" and restart at the
+ * front of the array in order to fill the 32-bit return word.
+ *
+ * For X1A, the length of the sequence will always be 4092 bits. For
+ * all other registers, the length of the sequence is a variable,
+ * dependent on the epoch and the time of week. That information is
+ * not available to GenXSequence; therefore, the method
+ * GenXSequence::setEndOfSequence( los ) is provided to allow the
+ * calling program to adjust the end of sequence accordingly.
+ * NOTE: this means the calling program also needs to specify
+ * a maximum sequence length (see constructor) that is equal or greater
+ * than the maximum length the calling program will use.
+ */
+ class GenXSequence
+ {
+ public:
+ /**
+ * The initial state of the register and the defintion of the
+ * taps are provided to the constructor. In each case, the
+ * 12-bits of interest are right justified in the argument.
+ * The lsb of the variables corresponds to stage 1 in figures
+ * 3-3 through 3-6 of ICD-GPS-200. The constructor runs the
+ * X generator process, creates 4096 bits of X-code, and stores
+ * the results internally in an array of 128 unsigned long
+ * (32-bit) variables as packed integers. Within the storage
+ * words the bits are ordered from word[0] to word[xxx] and from
+ * msb to lsb within the word.
+ *
+ * initialEndOfSequence is the number of time the X-register
+ * process should be incremented and should be either 4092
+ * (X1A, X2A) or 4093 (X1B, X2B).
+ *
+ * maxDelay represents the number of times the final bit of the
+ * sequence should be copied after initialEndOfSequence is reached.
+ * This should be equivalent (or greater than) the maximum number
+ * of delay states that this variable can experience. For X1B,
+ * that's the end-of-X1A-epoch delay (349 counts). For X2A and
+ * X2B the 37 chip end-of-X2-epoch and the end-of-week delays must
+ * be considered.
+ */
+ GenXSequence( const unsigned int initialState,
+ const unsigned int taps,
+ const int initialEndOfSequence,
+ const int max_delay );
+ ~GenXSequence( ) {};
+
+ /**
+ * Fetch 32-bits from the sequence starting at the specified bit
+ * location. Bits are counted started at 0 and run to
+ * initialEndOfSequence+maxDelay. Attempts to reference bits outside
+ * this range will generate exceptions and halt the program. These
+ * conditions shouldn't occur during operation, only during
+ * programming. If there are not 32 bits remaining prior to the
+ * current value for lengthOfSequence, the function will wrap around
+ * to the beginning of sequence.
+ */
+ unsigned long operator[] ( int i );
+
+ /// Set the end of sequence for the current cycle.
+ void setLengthOfSequence( int i );
+
+ private:
+ void addBitToSequence( unsigned long newBit );
+ unsigned long bits[MAX_WORD];
+ int lengthOfSequence;
+ int maxOfSequence;
+ bool debugPrint;
+ int word_num;
+ int bit_num;
+ };
+ //@}
+} // end of namespace
+#endif // GENXSEQUENCE_HPP
diff --git a/dev/src/Geodetic.cpp b/dev/src/Geodetic.cpp
new file mode 100644
index 0000000..adaf50d
--- /dev/null
+++ b/dev/src/Geodetic.cpp
@@ -0,0 +1,201 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file Geodetic.cpp
+ * Geodetic coordinates (lat, lon, alt)
+ */
+
+#include "geometry.hpp"
+#include "Geodetic.hpp"
+#include "MiscMath.hpp"
+#include "icd_200_constants.hpp" // for TWO_PI
+
+namespace gpstk
+{
+ using namespace std;
+
+ Geodetic :: Geodetic()
+ : Triple(), geoid(NULL)
+ {
+ }
+
+ Geodetic :: Geodetic(const Geodetic& right)
+ : Triple(right), geoid(right.geoid)
+ {
+ }
+
+ Geodetic :: Geodetic(const double& lat, const double& lon, const double& alt,
+ GeoidModel* geo)
+ : Triple(lat, lon, alt), geoid(geo)
+ {
+ }
+
+ Geodetic :: Geodetic(const Triple& t, GeoidModel* geo)
+ : Triple(t), geoid(geo)
+ {
+ }
+
+ Geodetic :: Geodetic(const ECEF& right, GeoidModel* geo)
+ throw(NoGeoidException)
+ {
+ double X = right[0]; // m
+ double Y = right[1]; // m
+ double Z = right[2]; // m
+ double p = RSS(X,Y);
+ double latd = atan2(Z, p * (1.0 - geo->eccSquared()) );
+ double ht = 0.0, slatd, N, htold, latdold;
+
+ for(int i=0; i<5; i++)
+ {
+ slatd = sin(latd);
+ N = geo->a() / SQRT(1.0 - geo->eccSquared() * slatd * slatd);
+ htold = ht;
+ ht = p/cos(latd) - N;
+ latdold = latd;
+ latd = atan2(Z, p * (1.0 - geo->eccSquared() * (N/(N+ht)) ) );
+ if(ABS(latd-latdold) < 1.0e-9 &&
+ ABS(ht-htold) < (1.0e-9 * geo->a())) break;
+ }
+
+ double lon = atan2(Y,X);
+
+ if(lon < 0.0)
+ lon += TWO_PI;
+
+ theArray[0] = latd * RAD_TO_DEG; // deg
+ theArray[1] = lon * RAD_TO_DEG; // deg
+ theArray[2] = ht; // m
+ geoid = geo;
+ }
+
+ Geodetic& Geodetic :: operator=(const Geodetic& right)
+ {
+ Triple::operator=(right);
+ geoid = right.geoid;
+ return *this;
+ }
+
+#if 0
+ // This function is preserved here in case someone actually goes
+ // about verifying it and finishing it.
+ // As of July 31, 2002, David Munton, who implemented this
+ // particular bit of code, recommends not using it.
+ void tidal_corrections ( double rad_gdlat, double rad_gdlon,
+ double& xval, double& yval, double& zval)
+ {
+ double radial_correction, transverse_correction;
+ double gclat, re1;
+ double corr_array[3];
+
+ /*convert lat to geocentric */
+ /* re1 = rad_earth(gdlat)
+ gclat=geod_to_geoc(gdlat,re1);*/
+
+ /* compute radial correction */
+
+ radial_correction=-0.1196*(1.50*pow(sin(rad_gdlat),2)-0.5);
+
+ /* compute tranverse correction */
+
+ transverse_correction=-0.0247*sin(2.0*rad_gdlat);
+
+ /* compute correction components then add to station locations*/
+
+ corr_array[0]=radial_correction*cos(rad_gdlat)*cos(rad_gdlon) -
+ transverse_correction*sin(rad_gdlat)*cos(rad_gdlon);
+ corr_array[1]=radial_correction*cos(rad_gdlat)*sin(rad_gdlon) -
+ transverse_correction*sin(rad_gdlat)*sin(rad_gdlon);
+ corr_array[2]=radial_correction*sin(rad_gdlat) +
+ transverse_correction*cos(rad_gdlat);
+
+ /* scale results to km units */
+
+ //corr_array[0]=corr_array[0]*0.001;
+ //corr_array[1]=corr_array[1]*0.001;
+ //corr_array[2]=corr_array[2]*0.001;
+
+ xval = xval + corr_array[0];
+ yval = yval + corr_array[1];
+ zval = zval + corr_array[2];
+ }
+#endif
+
+ // based on formulae 2.30 and 2.31 in section 2.1.4, page 19 of
+ // Satellite Geodesy by Gunter Seeber, 1993.
+ gpstk::ECEF Geodetic :: asECEF() const throw(NoGeoidException)
+ {
+ double rad_cur, gdlat, gdlon;
+ double gdalt = getAltitude();
+
+ if (geoid == NULL)
+ {
+ NoGeoidException exc
+ ("Must specify a geoid to use to change systems");
+ GPSTK_THROW(exc);
+ }
+
+ // convert angles to radians
+ gdlat = DEG_TO_RAD * getLatitude();
+ gdlon = DEG_TO_RAD * getLongitude();
+
+ // radius of curvature in the prime vertical, formula 2.31
+ rad_cur = geoid->a() /
+ sqrt(1.0-geoid->eccSquared()*pow((sin(gdlat)),2.0));
+
+ // formula 2.30
+ double xval = (rad_cur + gdalt) * ::cos(gdlat) * ::cos(gdlon);
+ double yval = (rad_cur + gdalt) * ::cos(gdlat) * ::sin(gdlon);
+ double zval = ((1.0 - geoid->eccSquared()) * rad_cur + gdalt) * ::sin(gdlat);
+
+ ECEF ecef(xval, yval, zval);
+
+ // see comments for tidalCorrections above for why this is
+ // commented out.
+// tidalCorrections(gdlat, gdlon, xarray[0], xarray[1], xarray[2]);
+
+ return ecef;
+ }
+} // namespace gpstk
diff --git a/dev/src/Geodetic.hpp b/dev/src/Geodetic.hpp
new file mode 100644
index 0000000..599847d
--- /dev/null
+++ b/dev/src/Geodetic.hpp
@@ -0,0 +1,134 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file Geodetic.hpp
+ * Geodetic coordinates (lat, lon, alt)
+ */
+
+#ifndef GPSTK_GEODETIC_HPP
+#define GPSTK_GEODETIC_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "Triple.hpp"
+#include "Exception.hpp"
+#include "GeoidModel.hpp"
+#include "ECEF.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /// Thrown when the internal gpstk::GeoidModel isn't assigned.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(NoGeoidException, gpstk::Exception);
+
+ /**
+ * Specialization of triple that represents geodetic coordinates
+ * (latitude in degrees, longitude in degrees, altitude in m).
+ */
+ class Geodetic : public Triple
+ {
+ public:
+ /// Default constructor.
+ Geodetic();
+
+ /// Copy constructor.
+ Geodetic(const Geodetic& right);
+
+ /** Construct from three doubles. Be careful you don't
+ * specify a geoid that will disappear (e.g. one on the stack
+ * where these coordinates will be used outside that context).
+ * @param lat latitude in degrees.
+ * @param lon longitude in degrees.
+ * @param alt altitude in m.
+ * @param geo geoid model for transformations.
+ */
+ Geodetic(const double& lat, const double& lon, const double& alt,
+ GeoidModel* geo = NULL);
+
+ /** Construct from a Triple and a GeoidMode. The triple is latitude
+ * in degrees, longitude in degrees, and altitude in meters. Be
+ * careful you don't specify a geoid that will disappear (e.g. one
+ * on the stack where these coordinates will be used outside that
+ * context).
+ * @param t the Triple to copy from.
+ * @param geo geoid model for transformations.
+ */
+ Geodetic(const Triple& t, GeoidModel* geo = NULL);
+
+ /** Construct from an ECEF and a GeoidModel. Converts Earth-centered,
+ * Earth-fixed XYZ coordinates (m) to Geodetic coordinates
+ * (lat,lon(E),ht) (deg,degE,m). Be careful you don't
+ * specify a geoid that will disappear (e.g. one on the stack
+ * where these coordinates will be used outside that context).
+ * @param right the ECEF to construct from.
+ * @param geo geoid model for transformations.
+ */
+ Geodetic(const ECEF& right, GeoidModel* geo)
+ throw(NoGeoidException);
+
+ /// destructor
+ virtual ~Geodetic() {}
+
+ /// Assignment operator.
+ Geodetic& operator=(const Geodetic& right);
+
+ /** Convert to Earth-centered, Earth-fixed XYZ coordinates. */
+ gpstk::ECEF asECEF() const throw(NoGeoidException);
+
+ double getLatitude() const throw() { return operator[](0); }
+ double getLongitude() const throw() { return operator[](1); }
+ double getAltitude() const throw() { return operator[](2); }
+
+ protected:
+ GeoidModel *geoid;
+ }; // class Geodetic
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/GeoidModel.hpp b/dev/src/GeoidModel.hpp
new file mode 100644
index 0000000..0f9d9ec
--- /dev/null
+++ b/dev/src/GeoidModel.hpp
@@ -0,0 +1,106 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file GeoidModel.hpp
+ * Abstract base class modeling a geoid
+ */
+
+#ifndef GPSTK_GEOIDMODEL_HPP
+#define GPSTK_GEOIDMODEL_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /**
+ * This abstract class encapsulates geodetic models (e.g. WGS84,
+ * GPS, etc).
+ */
+ class GeoidModel
+ {
+ public:
+ /// @return semi-major axis of Earth in meters.
+ virtual double a() const throw() = 0;
+
+ /// @return semi-major axis of Earth in km.
+ virtual double a_km() const throw() = 0;
+
+ /// @return flattening (ellipsoid parameter).
+ virtual double flattening() const throw() = 0;
+
+ /// @return eccentricity (ellipsoid parameter).
+ virtual double eccentricity() const throw() = 0;
+
+ /// @return eccentricity squared (ellipsoid parameter).
+ virtual double eccSquared() const throw()
+ { return eccentricity() * eccentricity(); }
+
+ /// @return angular velocity of Earth in radians/sec.
+ virtual double angVelocity() const throw() = 0;
+
+ /// @return geocentric gravitational constant in m**3 / s**2
+ virtual double gm() const throw() = 0;
+
+ /// @return geocentric gravitational constant in m**3 / s**2
+ virtual double gm_km() const throw() = 0;
+
+ /// @return Speed of light in m/s.
+ virtual double c() const throw() = 0;
+
+ /// @return Speed of light in km/s
+ virtual double c_km() const throw() = 0;
+
+ /// Destructor.
+ virtual ~GeoidModel() throw() {};
+
+ }; // class GeoidModel
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/IonoModel.cpp b/dev/src/IonoModel.cpp
new file mode 100644
index 0000000..d8436be
--- /dev/null
+++ b/dev/src/IonoModel.cpp
@@ -0,0 +1,182 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file IonoModel.cpp
+ * Implementation of the ICD-GPS-200 Ionosphere model.
+ */
+
+#include <math.h>
+#include "icd_200_constants.hpp"
+#include "IonoModel.hpp"
+#include "geometry.hpp"
+
+namespace gpstk
+{
+ IonoModel::IonoModel(const double a[4], const double b[4]) throw()
+ {
+ setModel(a, b);
+ }
+
+ IonoModel::IonoModel(const EngAlmanac& engalm)
+ throw()
+ {
+ try
+ {
+ engalm.getIon(alpha, beta);
+ valid = true;
+ }
+ catch(InvalidRequest& e)
+ {
+ valid = false;
+ }
+ }
+
+
+ void IonoModel::setModel(const double a[4], const double b[4]) throw()
+ {
+ for (int n = 0; n < 4; n++)
+ {
+ alpha[n] = a[n];
+ beta[n] = b[n];
+ }
+ valid = true;
+ }
+
+
+ double IonoModel::getCorrection(const DayTime& time,
+ const Geodetic& rxgeo,
+ double svel,
+ double svaz,
+ Frequency freq) const
+ throw(IonoModel::InvalidIonoModel)
+ {
+
+ if (!valid)
+ {
+ InvalidIonoModel e("Alpha and beta parameters invalid.");
+ GPSTK_THROW(e);
+ }
+
+ // all angle units are in semi-circles (radians / TWO_PI)
+ // Note: math functions (cos, sin, etc.) require arguments in
+ // radians so all semi-circles must be multiplied by TWO_PI
+
+ double azRad = svaz * DEG_TO_RAD;
+ double svE = svel / 180.0;
+
+ double phi_u = rxgeo.getLatitude() / 180.0;
+ double lambda_u = rxgeo.getLongitude() / 180.0;
+
+ double psi = (0.0137 / (svE + 0.11)) - 0.022;
+
+ double phi_i = phi_u + psi * cos(azRad);
+ if (phi_i > 0.416)
+ phi_i = 0.416;
+ if (phi_i < -0.416)
+ phi_i = -0.416;
+
+ double lambda_i = lambda_u + psi * sin(azRad) / cos(phi_i*PI);
+
+ double phi_m = phi_i + 0.064 * cos((lambda_i - 1.617)*PI);
+
+ double iAMP = 0.0;
+ double iPER = 0.0;
+ iAMP = alpha[0]+phi_m*(alpha[1]+phi_m*(alpha[2]+phi_m*alpha[3]));
+ iPER = beta[0]+phi_m*( beta[1]+phi_m*( beta[2]+phi_m* beta[3]));
+
+ if (iAMP < 0.0)
+ iAMP = 0.0;
+ if (iPER < 72000.0)
+ iPER = 72000.0;
+
+ double t = 43200.0 * lambda_i + time.DOYsecond();
+ if (t >= 86400.0)
+ t -= 86400.0;
+ if (t < 0)
+ t += 86400.0;
+
+ double x = TWO_PI * (t - 50400.0) / iPER; // x is in radians
+
+ double iF = 1.0 + 16.0 * (0.53 - svE)*(0.53 - svE)*(0.53 - svE);
+
+ double t_iono = 0.0;
+ if (fabs(x) < 1.57)
+ t_iono = iF * (5.0e-9 + iAMP * (1 + x*x * (-0.5 + x*x/24.0)));
+ else
+ t_iono = iF * 5.0e-9;
+
+ if (freq == L2)
+ {
+ // see ICD-GPS-200 20.3.3.3.3.2
+ t_iono *= GAMMA_GPS; // GAMMA_GPS = (fL1 / fL2)^2
+ }
+
+ double correction = t_iono * C_GPS_M;
+
+ return correction;
+ }
+
+ bool IonoModel::operator==(const IonoModel& right) const
+ throw()
+ {
+ for (int n = 0; n < 4; n++)
+ {
+ if (alpha[n] != right.alpha[n] || beta[n] != right.beta[n])
+ return false;
+ }
+ return true;
+ }
+
+ bool IonoModel::operator!=(const IonoModel&right) const
+ throw()
+ {
+ return !(operator==(right));
+ }
+}
+
+
+
+
diff --git a/dev/src/IonoModel.hpp b/dev/src/IonoModel.hpp
new file mode 100644
index 0000000..59760e8
--- /dev/null
+++ b/dev/src/IonoModel.hpp
@@ -0,0 +1,161 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_IONOMODEL_HPP
+#define GPSTK_IONOMODEL_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file IonoModel.cpp
+ * Implementation of the ICD-GPS-200 Ionosphere model.
+ */
+
+#include "DayTime.hpp"
+#include "EngAlmanac.hpp"
+#include "Geodetic.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * Model of the ionosphere.
+ * It is used to compute the delay of the satellite signal
+ * as seen at the receiver caused by the ionosphere for a
+ * "one frequency" user.
+ *
+ * See ICD-GPS-200, section 20.3.3.5.2.5 and Figure 20-4.
+ *
+ * Verbatim from the above section:
+ * "It is estimated that the use of this model will provide at least
+ * a 50% reduction in the single-frequency user's RMS error due to
+ * ionospheric propagation effects. During extended operations, or for
+ * the Block IIR SVs in the Autonav mode if the CS is unable to upload
+ * the SVs, the use of this model will yield unpredictable results."
+ */
+ class IonoModel
+ {
+ public:
+
+ /// Thrown when attempting to use a model for which all necessary
+ /// parameters have not been specified.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidIonoModel, gpstk::Exception);
+
+
+ enum Frequency
+ {
+ L1, ///< L1 frequency (1575.42 MHz)
+ L2 ///< L2 frequency (1227.60 MHz)
+ };
+
+ /// default constructor, creates an invalid model
+ IonoModel() throw() : valid(false) {}
+
+ /// destructor
+ virtual ~IonoModel() throw() {}
+
+ /**
+ * constructor.
+ * Creates a valid model with satellite transmitted alpha
+ * and beta parameters provided from almanac.
+ * \param a an array containing the four alpha terms
+ * \param b an array containing the four beta terms
+ */
+ IonoModel(const double a[4], const double b[4]) throw();
+
+ /**
+ * EngAlmanac constructor.
+ * Creates a valid model from and EngAlmanac object
+ * \param engalm an EngAlmanac object
+ */
+ IonoModel(const EngAlmanac& engalm) throw();
+
+ /** Method to feed the model with satellite transmitted alpha
+ * and beta parameters provided from almanac.
+ * \param a an array containing the four alpha terms
+ * \param b an array containing the four beta terms
+ */
+ void setModel(const double a[4], const double b[4]) throw();
+
+ /**
+ * returns the validity of the model.
+ * \return model validity
+ */
+ bool isValid() const throw() { return valid; }
+
+ /**
+ * get the ionospheric correction value.
+ * \param time the time of the observation
+ * \param rxgeo the WGS84 geodetic position of the receiver
+ * \param svel the elevation angle between the rx and SV (degrees)
+ * \param svaz the azimuth angle between the rx and SV (degrees)
+ * \param freq the GPS frequency the observation was made from
+ * \return the ionospheric correction (meters)
+ */
+ double getCorrection(const DayTime& time,
+ const Geodetic& rxgeo,
+ double svel,
+ double svaz,
+ Frequency freq = L1) const
+ throw(InvalidIonoModel);
+
+ /// equality operator
+ bool operator==(const IonoModel& right) const throw();
+
+ /// inequality operator
+ bool operator!=(const IonoModel& right) const throw();
+
+ private:
+
+ double alpha[4];
+ double beta[4];
+
+ bool valid;
+ };
+ //@}
+}
+
+#endif
diff --git a/dev/src/IonoModelStore.cpp b/dev/src/IonoModelStore.cpp
new file mode 100644
index 0000000..74b3366
--- /dev/null
+++ b/dev/src/IonoModelStore.cpp
@@ -0,0 +1,95 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file IonoModelStore.cpp
+ * Store GPS Navigation Message based ionospheric models
+ */
+
+#include "IonoModelStore.hpp"
+
+using namespace std;
+
+namespace gpstk
+{
+ bool IonoModelStore::addIonoModel(const DayTime& mt, const IonoModel& im)
+ throw()
+ {
+ if (!im.isValid())
+ return false;
+
+ IonoModelMap::const_iterator i = ims.upper_bound(mt);
+ if (!ims.empty() && i != ims.begin())
+ {
+ // compare to previous stored model and if they have the
+ // the same alpha and beta parameters don't store it
+ i--;
+ if (im == i->second)
+ return false;
+ }
+ ims[mt] = im;
+ return true;
+ }
+
+ double IonoModelStore::getCorrection(const DayTime& time,
+ const Geodetic& rxgeo,
+ double svel,
+ double svaz,
+ IonoModel::Frequency freq) const
+ throw(IonoModelStore::NoIonoModelFound)
+ {
+ IonoModelMap::const_iterator i = ims.upper_bound(time);
+ if (!ims.empty() && i != ims.begin())
+ {
+ i--;
+ return i->second.getCorrection(time, rxgeo, svel, svaz, freq);
+ }
+ else
+ {
+ NoIonoModelFound e;
+ GPSTK_THROW(e);
+ }
+ }
+}
diff --git a/dev/src/IonoModelStore.hpp b/dev/src/IonoModelStore.hpp
new file mode 100644
index 0000000..40f9a00
--- /dev/null
+++ b/dev/src/IonoModelStore.hpp
@@ -0,0 +1,117 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_IONOMODELSTORE_HPP
+#define GPSTK_IONOMODELSTORE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file IonoModelStore.hpp
+ * Store GPS Navigation Message based ionospheric models
+ */
+
+#include <map>
+#include "DayTime.hpp"
+#include "IonoModel.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * This class defines an interface to hide how we determine
+ * the ionospheric delay as determined from GPS navigation message
+ * based models at some point in time
+ */
+ class IonoModelStore
+ {
+ public:
+ /**
+ * Thrown when attempting to get a model that isn't stored.
+ * @ingroup exceptiongroup
+ */
+ NEW_EXCEPTION_CLASS(NoIonoModelFound, gpstk::Exception);
+
+ /// constructor
+ IonoModelStore() throw() {}
+
+ /// destructor
+ virtual ~IonoModelStore() throw() {}
+
+ /**
+ * get the ionospheric correction value.
+ * \param time the time of the observation
+ * \param rxgeo the WGS84 geodetic position of the receiver
+ * \param svel the elevation angle between the rx and SV (degrees)
+ * \param svaz the azimuth angle between the rx and SV (degrees)
+ * \param freq the GPS frequency the observation was made from
+ * \return the ionospheric correction (meters)
+ */
+ double getCorrection(const DayTime& time,
+ const Geodetic& rxgeo,
+ double svel,
+ double svaz,
+ IonoModel::Frequency freq = IonoModel::L1) const
+ throw(NoIonoModelFound);
+
+ /**
+ * add an IonoModel to this collection
+ * \param mt the time the model is valid from
+ * \param im the IonoModel to add
+ * \return true if the model was added, false otherwise
+ */
+ bool addIonoModel(const DayTime& mt, const IonoModel& im) throw();
+
+
+ private:
+
+ typedef std::map<DayTime, IonoModel> IonoModelMap;
+ IonoModelMap ims;
+ };
+
+ //@}
+}
+
+#endif
diff --git a/dev/src/Jamfile b/dev/src/Jamfile
new file mode 100644
index 0000000..ae374b8
--- /dev/null
+++ b/dev/src/Jamfile
@@ -0,0 +1,140 @@
+#
+# $Id$
+#
+
+SubDir TOP src ;
+
+BonkForte ;
+
+if $(NEED_GETOPT)
+{
+ GETOPT_SOURCE = getopt.c getopt1.c ;
+ GETOPT_INC = getopt.h ;
+}
+
+if $(PREPROCESSING)
+{
+ if $(NEED_REGEX)
+ {
+ REGEX_SOURCE = regex.c ;
+ REGEX_INC = regex.h ;
+ if $(MSVCNT)
+ {
+ ObjectCcFlags $(REGEX_SOURCE) : -D__STDC__ -D_POSIX_SOURCE -DREGEX_MALLOC -DSTDC_HEADERS ;
+ }
+ }
+ else
+ {
+ REGEX_SOURCE = ;
+ }
+ GPSSetupLibrary gpstk ;
+}
+else
+{
+ GPSBuildLibrary gpstk : $(REGEX_SOURCE) Exception.cpp BinUtils.cpp
+ VectorBase.cpp DayTime.cpp Triple.cpp Geodetic.cpp
+ ECEF.cpp Xvt.cpp EngNav.cpp EngEphemeris.cpp EngAlmanac.cpp
+ AlmOrbit.cpp BCEphemerisStore.cpp ObsEpochMap.cpp WxObsMap.cpp
+ SP3EphemerisStore.cpp AlmanacStore.cpp TropModel.cpp
+ IonoModel.cpp IonoModelStore.cpp
+ FFStream.cpp FFData.cpp RinexMetData.cpp RinexMetHeader.cpp
+ RinexObsData.cpp RinexObsHeader.cpp RinexNavData.cpp RinexNavHeader.cpp
+ SP3Data.cpp SP3Header.cpp FileSpec.cpp FileHunter.cpp
+ $(GETOPT_SOURCE) CommandOption.cpp CommandOptionParser.cpp
+ CommandOptionWithTimeArg.cpp CommandOptionWithCommonTimeArg.cpp
+ BasicFramework.cpp LoopedFramework.cpp
+ EphemerisRange.cpp TabularEphemerisStore.cpp
+ RinexEphemerisStore.cpp RungeKutta4.cpp
+ MSCData.cpp SMODFData.cpp LinearClockModel.cpp
+ ObsClockModel.cpp ObsRngDev.cpp
+ FICData.cpp FICHeader.cpp
+ FICData109.cpp FICData9.cpp FICData162.cpp FICData62.cpp
+ CodeBuffer.cpp GenXSequence.cpp SVPCodeGen.cpp X1Sequence.cpp
+ X2Sequence.cpp GPSZcount.cpp Position.cpp
+ CommandOptionWithPositionArg.cpp
+ PRSolution.cpp RinexUtilities.cpp
+ RACRotation.cpp SVExclusionList.cpp
+ TimeConverters.cpp TimeString.cpp
+ CommonTime.cpp TimeTag.cpp ANSITime.cpp CivilTime.cpp
+ GPSEpochWeekSecond.cpp GPSWeekSecond.cpp
+ GPSWeekZcount.cpp GPSZcount32.cpp
+ GPSZcount29.cpp JulianDate.cpp MJD.cpp UnixTime.cpp YDSTime.cpp
+ SystemTime.cpp
+ Expression.cpp
+ RinexSatID.cpp SP3SatID.cpp
+ ObsID.cpp RinexObsID.cpp
+ Bancroft.cpp SolverLMS.cpp SolverWMS.cpp DOP.cpp
+ ModeledReferencePR.cpp ModeledPR.cpp SimpleIURAWeight.cpp
+ MOPSWeight.cpp
+ BinexData.cpp
+ YumaHeader.cpp YumaData.cpp YumaAlmanacStore.cpp
+ SEMHeader.cpp SEMData.cpp SEMAlmanacStore.cpp
+ SourceID.cpp TypeID.cpp DataHeaders.cpp DataStructures.cpp XYZ2NEU.cpp
+ XYZ2NED.cpp DeltaOp.cpp SimpleKalmanFilter.cpp NablaOp.cpp
+ ;
+
+ InstallFile $(INCDIR) : AlmOrbit.hpp AlmanacStore.hpp BCEphemerisStore.hpp
+ BinUtils.hpp DayTime.hpp ECEF.hpp EngAlmanac.hpp EngEphemeris.hpp
+ EngNav.hpp EphemerisStore.hpp Exception.hpp FFBinaryStream.hpp
+ FFData.hpp FFStream.hpp FFStreamError.hpp FFTextStream.hpp
+ SatID.hpp RinexSatID.hpp SP3SatID.hpp
+ FileFilter.hpp FileFilterFrame.hpp FileFilterFrameWithHeader.hpp
+ FileHunter.hpp FileSpec.hpp FileUtils.hpp GPSGeoid.hpp Geodetic.hpp
+ GeoidModel.hpp MathBase.hpp Matrix.hpp MatrixBase.hpp
+ MatrixBaseOperators.hpp MatrixFunctors.hpp MatrixImplementation.hpp
+ MatrixOperators.hpp MiscMath.hpp ObsEpochMap.hpp WxObsMap.hpp PolyFit.hpp
+ RTFileFrame.hpp RinexMetBase.hpp RinexMetData.hpp
+ RinexMetFilterOperators.hpp RinexMetHeader.hpp RinexMetStream.hpp
+ RinexNavBase.hpp RinexNavData.hpp RinexNavFilterOperators.hpp
+ RinexNavHeader.hpp RinexNavStream.hpp RinexObsBase.hpp
+ RinexObsData.hpp RinexObsFilterOperators.hpp RinexObsHeader.hpp
+ RinexObsStream.hpp SP3Base.hpp SP3Data.hpp SP3EphemerisStore.hpp
+ SP3Header.hpp SP3Stream.hpp Stats.hpp StringUtils.hpp Triple.hpp
+ TropModel.hpp IonoModel.hpp IonoModelStore.hpp
+ Vector.hpp VectorBase.hpp VectorBaseOperators.hpp VectorOperators.hpp
+ WGS84Geoid.hpp Xvt.hpp
+ convhelp.hpp geometry.hpp gps_constants.hpp icd_200_constants.hpp
+ stl_helpers.hpp CommandOption.hpp CommandOptionParser.hpp
+ CommandOptionWithTimeArg.hpp CommandOptionWithCommonTimeArg.hpp
+ BasicFramework.hpp
+ EphemerisRange.hpp LoopedFramework.hpp TabularEphemerisStore.hpp
+ RinexEphemerisStore.hpp FileStore.hpp RungeKutta4.hpp
+ $(GETOPT_INC) $(REGEX_INC)
+ MSCData.hpp MSCStream.hpp SMODFData.hpp SMODFStream.hpp
+ ClockModel.hpp EpochClockModel.hpp LinearClockModel.hpp
+ ObsClockModel.hpp ObsRngDev.hpp ValidType.hpp ORDEpoch.hpp
+ FICAStream.hpp FICBase.hpp FICData.hpp FICData9.hpp
+ FICData109.hpp FICData162.hpp FICData62.hpp FICFilterOperators.hpp
+ FICHeader.hpp FICStream.hpp FICStreamBase.hpp
+ CodeBuffer.hpp GenXSequence.hpp PCodeConst.hpp SVPCodeGen.hpp
+ X1Sequence.hpp X2Sequence.hpp GPSZcount.hpp Position.hpp
+ CommandOptionWithPositionArg.hpp
+ PRSolution.hpp RinexUtilities.hpp
+ RACRotation.hpp SVExclusionList.hpp
+ TimeConstants.hpp TimeConverters.hpp TimeString.hpp
+ CommonTime.hpp TimeTag.hpp ANSITime.hpp CivilTime.hpp
+ GPSEpochWeekSecond.hpp GPSWeekSecond.hpp
+ GPSWeekZcount.hpp GPSZcount32.hpp
+ GPSZcount29.hpp JulianDate.hpp MJD.hpp UnixTime.hpp YDSTime.hpp
+ SystemTime.hpp
+ gpstkplatform.h mergePCodeWords.h BivarStats.hpp
+ Expression.hpp ObsID.hpp RinexObsID.hpp
+ Bancroft.hpp CheckPRData.hpp SolverBase.hpp SolverLMS.hpp SolverWMS.hpp
+ DOP.hpp WeightBase.hpp ModeledPseudorangeBase.hpp ExtractData.hpp
+ ExtractCombinationData.hpp ExtractC1.hpp ExtractP1.hpp ExtractP2.hpp
+ ExtractPC.hpp ExtractL1.hpp ExtractL2.hpp ExtractLC.hpp ExtractD1.hpp
+ ExtractD2.hpp ModeledReferencePR.hpp ModeledPR.hpp SimpleIURAWeight.hpp
+ MOPSWeight.hpp
+ BinexData.hpp BinexFilterOperators.hpp BinexStream.hpp
+ YumaBase.hpp YumaStream.hpp YumaHeader.hpp YumaData.hpp YumaAlmanacStore.hpp
+ SEMBase.hpp SEMStream.hpp SEMHeader.hpp SEMData.hpp SEMAlmanacStore.hpp
+ SourceID.hpp TypeID.hpp DataHeaders.hpp DataStructures.hpp
+ TimeNamedFileStream.hpp ComputeCombination.hpp ComputePC.hpp
+ SimpleFilter.hpp ComputeLC.hpp ComputePI.hpp ComputeLI.hpp ComputePdelta.hpp
+ ComputeLdelta.hpp ComputeIURAWeights.hpp ComputeMOPSWeights.hpp
+ ComputeMelbourneWubbena.hpp OneFreqCSDetector.hpp CodeSmoother.hpp
+ PCSmoother.hpp LICSDetector.hpp MWCSDetector.hpp XYZ2NEU.hpp XYZ2NED.hpp
+ DeltaOp.hpp SimpleKalmanFilter.hpp NablaOp.hpp
+ ;
+}
+
diff --git a/dev/src/JulianDate.cpp b/dev/src/JulianDate.cpp
new file mode 100644
index 0000000..eafac1f
--- /dev/null
+++ b/dev/src/JulianDate.cpp
@@ -0,0 +1,158 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "JulianDate.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ JulianDate& JulianDate::operator=( const JulianDate& right )
+ throw()
+ {
+ jd = right.jd;
+ return *this;
+ }
+
+ CommonTime JulianDate::convertToCommonTime() const
+ {
+ long double temp_jd( jd + 0.5 );
+ long jday( static_cast<long>( temp_jd ) );
+ long double sod =
+ ( temp_jd - static_cast<long double>( jday ) ) * SEC_PER_DAY;
+
+ return CommonTime( jday,
+ static_cast<long>( sod ),
+ static_cast<double>( sod - static_cast<long>( sod ) ));
+ }
+
+ void JulianDate::convertFromCommonTime( const CommonTime& ct )
+ {
+ long jday, sod;
+ double fsod;
+ ct.get( jday, sod, fsod );
+
+ jd = static_cast<long double>( jday ) +
+ ( static_cast<long double>( sod )
+ + static_cast<long double>( fsod ) ) * DAY_PER_SEC
+ - 0.5;
+ }
+
+ std::string JulianDate::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint( rv, getFormatPrefixFloat() + "J",
+ "JLf", jd );
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ bool JulianDate::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ IdToValue::const_iterator itr = info.find('J');
+ if( itr != info.end() )
+ {
+ jd = gpstk::StringUtils::asLongDouble( itr->second );
+ }
+
+ return true;
+ }
+
+ bool JulianDate::isValid() const
+ throw()
+ {
+ JulianDate temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void JulianDate::reset()
+ throw()
+ {
+ jd = 0.0;
+ }
+
+ bool JulianDate::operator==( const JulianDate& right ) const
+ throw()
+ {
+ if( jd == right.jd )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool JulianDate::operator!=( const JulianDate& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool JulianDate::operator<( const JulianDate& right ) const
+ throw()
+ {
+ if( jd < right.jd )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool JulianDate::operator>( const JulianDate& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool JulianDate::operator<=( const JulianDate& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool JulianDate::operator>=( const JulianDate& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/JulianDate.hpp b/dev/src/JulianDate.hpp
new file mode 100644
index 0000000..e9d9f93
--- /dev/null
+++ b/dev/src/JulianDate.hpp
@@ -0,0 +1,170 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_JULIANDATE_HPP
+#define GPSTK_JULIANDATE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "Julian Date" time representation.
+ */
+ class JulianDate : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup jdbo JulianDate Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ JulianDate( long double j = 0. )
+ throw()
+ : jd( j )
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the JulianDate object to copy
+ */
+ JulianDate( const JulianDate& right )
+ throw()
+ : jd( right.jd )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ JulianDate( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ JulianDate( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the JulianDate to copy
+ * @return a reference to this JulianDate
+ */
+ JulianDate& operator=( const JulianDate& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~JulianDate()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "J";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%J";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup jdco JulianDate Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the JulianDate object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const JulianDate& right ) const
+ throw();
+ bool operator!=( const JulianDate& right ) const
+ throw();
+ bool operator<( const JulianDate& right ) const
+ throw();
+ bool operator>( const JulianDate& right ) const
+ throw();
+ bool operator<=( const JulianDate& right ) const
+ throw();
+ bool operator>=( const JulianDate& right ) const
+ throw();
+ //@}
+
+ long double jd;
+ };
+
+} // namespace
+
+#endif // GPSTK_JULIANDATE_HPP
diff --git a/dev/src/LICSDetector.hpp b/dev/src/LICSDetector.hpp
new file mode 100644
index 0000000..56d838c
--- /dev/null
+++ b/dev/src/LICSDetector.hpp
@@ -0,0 +1,422 @@
+
+/**
+ * @file LICSDetector.hpp
+ * This is a class to detect cycle slips using LI observables.
+ */
+
+#ifndef LICSDETECTOR_GPSTK
+#define LICSDETECTOR_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "DataStructures.hpp"
+
+
+
+namespace gpstk
+{
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+
+ /** This is a class to detect cycle slips using LI observables.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeLI getLI;
+ * LICSDetector markCSLI;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getLI >> markCSLI;
+ * }
+ * @endcode
+ *
+ * The "LICSDetector" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will decide if a cycle slip has happened in the
+ * given observable.
+ *
+ * The algorithm will use LI observables, and the LLI1 and LLI2 indexes.
+ * The result (a 0 if a cycle slip is found, 1 otherwise) will be stored in the
+ * data structure both as the CSL1 and CSL2 indexes.
+ *
+ * This algorithm will use some values as maximum interval of time between
+ * two successive epochs, minimum threshold for declaring cycle slip and LI
+ * combination limit drift.
+ *
+ * The default values are usually fine, but nevertheless you may change them
+ * with the appropriate methods. The former is of special importance for the
+ * maximum interval time, that should be adjusted to your sampling rate. By
+ * default it is 61 seconds, adapted to 30 seconds per sample RINEX files.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the cycle slip indexes inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Be aware that some combinations of cycle slips in L1 and L2 may result in
+ * a false negative when using a cycle slip detector based on LI. Therefore,
+ * to be on the safe side you should complement this with another kind of
+ * detector, such as one based on the Melbourne-Wubbena combination.
+ *
+ * @sa MWCSDetector.hpp for more information.
+ *
+ * \warning Cycle slip detectors are objets that store their internal state,
+ * so you MUST NOT use the SAME object to process DIFFERENT data streams.
+ *
+ */
+ class LICSDetector
+ {
+ public:
+
+ /// Default constructor, setting default parameters.
+ LICSDetector() : obsType(TypeID::LI), lliType1(TypeID::LLI1), lliType2(TypeID::LLI2), resultType1(TypeID::CSL1), resultType2(TypeID::CSL2), deltaTMax(61.0), minThreshold(0.04), LIDrift(0.002), useLLI(true) {};
+
+
+ /** Common constructor
+ *
+ * @param mThr Minimum threshold for declaring cycle slip, in meters.
+ * @param drift LI combination limit drift, in meters/second.
+ * @param dtMax Maximum interval of time allowed between two successive epochs, in seconds.
+ */
+ LICSDetector(const double& mThr, const double& drift, const double& dtMax = 61.0, const bool& use = true) : obsType(TypeID::LI), lliType1(TypeID::LLI1), lliType2(TypeID::LLI2), resultType1(TypeID::CSL1), resultType2(TypeID::CSL2), useLLI(use)
+ {
+ setDeltaTMax(dtMax);
+ setMinThreshold(mThr);
+ setLIDrift(drift);
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param epoch Time of observations.
+ * @param gData Data object holding the data.
+ * @param epochflag Epoch flag.
+ */
+ virtual satTypeValueMap& Detect(const DayTime& epoch, satTypeValueMap& gData, const short& epochflag=0)
+ {
+ double value1(0.0);
+ double lli1(0.0);
+ double lli2(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ value1 = (*it).second(obsType);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ if (useLLI)
+ {
+ try
+ {
+ // Try to get the LLI1 index
+ lli1 = (*it).second(lliType1);
+ }
+ catch(...)
+ {
+ // If LLI #1 is not found, set it to zero
+ // You REALLY want to have BOTH LLI indexes properly set
+ lli1 = 0.0;
+ }
+ try
+ {
+ // Try to get the LLI2 index
+ lli2 = (*it).second(lliType2);
+ }
+ catch(...)
+ {
+ // If LLI #2 is not found, set it to zero
+ // You REALLY want to have BOTH LLI indexes properly set
+ lli2 = 0.0;
+ }
+ }
+ // If everything is OK, then get the new values inside the structure
+ // This way of doing it allows concatenation of several different cycle slip detectors
+ (*it).second[resultType1] += getDetection(epoch, (*it).first, (*it).second, epochflag, value1, lli1, lli2);
+ if ( (*it).second[resultType1] > 1.0 ) (*it).second[resultType1] = 1.0;
+ // We will mark both cycle slip flags
+ (*it).second[resultType2] = (*it).second[resultType1];
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Method to set the maximum interval of time allowed between two successive epochs.
+ * @param maxDelta Maximum interval of time, in seconds
+ */
+ virtual void setDeltaTMax(const double& maxDelta)
+ {
+ // Don't allow delta times less than or equal to 0
+ if (maxDelta > 0.0) deltaTMax = maxDelta; else deltaTMax = 61.0;
+ };
+
+
+ /// Method to get the maximum interval of time allowed between two successive epochs, in seconds.
+ virtual double getDeltaTMax() const
+ {
+ return deltaTMax;
+ };
+
+
+ /** Method to set the minimum threshold for cycle slip detection, in meters.
+ * @param mThr Minimum threshold for cycle slip detection, in meters.
+ */
+ virtual void setMinThreshold(const double& mThr)
+ {
+ // Don't allow thresholds less than 0
+ if (mThr < 0.0) minThreshold = 0.04; else minThreshold = mThr;
+ };
+
+
+ /// Method to get the minimum threshold for cycle slip detection, in meters.
+ virtual double getMinThreshold() const
+ {
+ return minThreshold;
+ };
+
+
+ /** Method to set the LI combination limit drift, in meters/second
+ * @param drift LI combination limit drift, in meters/second.
+ */
+ virtual void setLIDrift(const double& drift)
+ {
+ // Don't allow drift less than or equal to 0
+ if (drift > 0.0) LIDrift = drift; else LIDrift = 0.002;
+ };
+
+
+ /// Method to get the minimum threshold for cycle slip detection, in meters.
+ virtual double getLIDrift() const
+ {
+ return LIDrift;
+ };
+
+
+ /** Method to set whether the LLI indexes will be used as an aid or not.
+ * @param use Boolean value enabling/disabling LLI check
+ */
+ virtual void setUseLLI(const bool& use)
+ {
+ useLLI = use;
+ };
+
+
+ /// Method to know if the LLI check is enabled or disabled.
+ virtual bool getUseLLI() const
+ {
+ return useLLI;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Detect(gnssSatTypeValue& gData)
+ {
+ (*this).Detect(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Detect(gnssRinex& gData)
+ {
+ (*this).Detect(gData.header.epoch, gData.body, gData.header.epochFlag);
+ return gData;
+ };
+
+
+ /// Destructor
+ virtual ~LICSDetector() {};
+
+
+ private:
+
+ /// Type of code.
+ TypeID obsType;
+
+ /// Type of LLI1 record.
+ TypeID lliType1;
+
+ /// Type of LLI2 record.
+ TypeID lliType2;
+
+ /// Type of result #1.
+ TypeID resultType1;
+
+ /// Type of result #2.
+ TypeID resultType2;
+
+
+ /// Maximum interval of time allowed between two successive epochs, in seconds.
+ double deltaTMax;
+
+
+ /// Minimum threshold for declaring cycle slip, in meters.
+ double minThreshold;
+
+
+ /// LI combination limit drift, in meters/second.
+ double LIDrift;
+
+
+ /// This field tells whether to use or ignore the LLI indexes as an aid.
+ bool useLLI;
+
+ /// A structure used to store filter data for a SV.
+ struct filterData
+ {
+ // Default constructor initializing the data in the structure
+ filterData() : formerEpoch(DayTime::BEGINNING_OF_TIME), windowSize(0), formerLI(0.0), formerBias(0.0), formerDeltaT(1.0) {};
+
+ DayTime formerEpoch; ///< The previous epoch time stamp.
+ int windowSize; ///< Size of current window, in samples.
+ double formerLI; ///< Value of the previous LI observable.
+ double formerBias; ///< Previous bias (LI_1 - LI_0).
+ double formerDeltaT; ///< Previous time difference, in seconds.
+ };
+
+
+ /// Map holding the information regarding every satellite
+ std::map<SatID, filterData> LIData;
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param epoch Time of observations.
+ * @param sat SatID.
+ * @param tvMap Data structure of TypeID and values.
+ * @param epochflag Epoch flag.
+ * @param li Current LI observation value.
+ * @param lli1 LLI1 index.
+ * @param lli2 LLI2 index.
+ */
+ virtual double getDetection(const DayTime& epoch, const SatID& sat, typeValueMap& tvMap, const short& epochflag, const double& li, const double& lli1, const double& lli2)
+ {
+ bool reportCS(false);
+ double currentDeltaT(0.0); // Difference between current and former epochs, in sec
+ double currentBias(0.0); // Difference between current and former LI values
+ double deltaLimit(0.0); // Limit to declare cycle slip
+ double delta(0.0);
+ double tempLLI1(0.0);
+ double tempLLI2(0.0);
+
+
+ // Get the difference between current epoch and former epoch, in seconds
+ currentDeltaT = ( epoch.MJDdate() - LIData[sat].formerEpoch.MJDdate() ) * DayTime::SEC_DAY;
+
+ // Store current epoch as former epoch
+ LIData[sat].formerEpoch = epoch;
+
+ currentBias = li - LIData[sat].formerLI; // Current value of LI difference
+
+ // Increment size of window
+ ++LIData[sat].windowSize;
+
+ // Check if receiver already declared cycle slip or too much time has elapsed
+ // Note: If tvMap(lliType1) or tvMap(lliType2) don't exist, then 0 will be returned and those tests will pass
+ if ( (tvMap(lliType1)==1.0) || (tvMap(lliType1)==3.0) || (tvMap(lliType1)==5.0) || (tvMap(lliType1)==7.0) ) tempLLI1 = 1.0;
+
+ if ( (tvMap(lliType2)==1.0) || (tvMap(lliType2)==3.0) || (tvMap(lliType2)==5.0) || (tvMap(lliType2)==7.0) ) tempLLI2 = 1.0;
+
+ if ( (epochflag==1) || (epochflag==6) || (tempLLI1==1.0) || (tempLLI2==1.0) || (currentDeltaT > deltaTMax) )
+ {
+ LIData[sat].windowSize = 0; // We reset the filter with this
+ reportCS = true;
+ }
+
+ if (LIData[sat].windowSize > 1)
+ {
+ deltaLimit = minThreshold + std::abs(LIDrift*currentDeltaT);
+ // Compute a linear interpolation and compute LI_predicted - LI_current
+ delta = std::abs(currentBias - LIData[sat].formerBias*currentDeltaT/LIData[sat].formerDeltaT);
+
+ if (delta > deltaLimit)
+ {
+ LIData[sat].windowSize = 0; // We reset the filter with this
+ reportCS = true;
+ }
+ }
+
+ // Let's prepare for the next time
+ LIData[sat].formerLI = li;
+ LIData[sat].formerBias = currentBias;
+ LIData[sat].formerDeltaT = currentDeltaT;
+
+ if (reportCS) return 1.0; else return 0.0;
+ };
+
+ }; // end class LICSDetector
+
+
+ /// Input operator from gnssSatTypeValue to LICSDetector.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, LICSDetector& liD)
+ {
+ liD.Detect(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to LICSDetector.
+ inline gnssRinex& operator>>(gnssRinex& gData, LICSDetector& liD)
+ {
+ liD.Detect(gData);
+ return gData;
+ }
+
+
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/LinearClockModel.cpp b/dev/src/LinearClockModel.cpp
new file mode 100644
index 0000000..3334aec
--- /dev/null
+++ b/dev/src/LinearClockModel.cpp
@@ -0,0 +1,173 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file LinearClockModel.cpp
+ * This model is just a moving average of clock models over time. It
+ * really is quite bad and shouldn't be used at this time. Be warned!
+ */
+
+#include <math.h>
+#include "Stats.hpp"
+
+#include "LinearClockModel.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+
+ void LinearClockModel::reset() throw()
+ {
+ startTime == gpstk::DayTime::END_OF_TIME;
+ endTime == gpstk::DayTime::BEGINNING_OF_TIME;
+ clockObs.clear();
+ prnStatus.clear();
+ clockModel.Reset();
+ tossCount=0;
+ }
+
+ void LinearClockModel::addEpoch(const ORDEpoch& oe)
+ throw(gpstk::InvalidValue)
+ {
+ ORDEpoch::ORDMap::const_iterator itr;
+ const gpstk::DayTime t=oe.time;
+
+ // Start off by getting an estimate of this epoch's clock
+ // note that this also sets the prn status map
+ gpstk::Stats<double> stat = simpleOrdClock(oe);
+ SvStatusMap& statusMap = prnStatus[t];
+ statusMap = status;
+
+ double mean;
+ if (clockModel.N()==0)
+ {
+ double clkc = stat.Average();
+ startTime = endTime = baseTime = t;
+ tossCount = 0;
+ }
+
+ const double deltaT = t-baseTime;
+
+ if (t<startTime)
+ startTime=t;
+ if (t>endTime)
+ endTime=t;
+
+ if (clockModel.N()>24)
+ mean = clockModel.Slope()*deltaT + clockModel.Intercept();
+ else
+ mean = stat.Average();
+
+ if (std::abs(stat.Average() - mean) > 20)
+ {
+ cout << t
+ << " slope=" << setw(12) << clockModel.Slope()
+ << ", intercept=" << setw(8) << clockModel.Intercept()
+ << ", est=" << setw(8) << clockModel.Slope()*deltaT + clockModel.Intercept()
+ << ", N=" << setw(6) << clockModel.N()
+ << ", stdev=" << setw(6) << clockModel.StdDevY()
+ << endl;
+ tossCount++;
+ if (tossCount>5)
+ {
+ reset();
+ cout << "Reseting model" << endl;
+ }
+ }
+ else
+ {
+ tossCount=0;
+ for (itr = oe.ords.begin(); itr != oe.ords.end(); itr++)
+ if (statusMap[itr->second.getSvID()] == USED)
+ {
+ const double ord = itr->second.getORD();
+ clockModel.Add(deltaT, ord);
+ std::pair<const double,double> o(deltaT, ord);
+ clockObs.insert(o);
+ }
+ }
+
+ std::multimap<double,double>::iterator i1,i2;
+ i1 = clockObs.begin();
+ while (i1!=clockObs.end())
+ {
+ i2=i1;
+ i1++;
+ double dt = i2->first;
+ double ord = i2->second;
+ if ((deltaT - dt)>1800)
+ {
+ clockObs.erase(i2);
+ clockModel.Subtract(dt, ord);
+ }
+ else
+ break;
+ }
+ }
+
+ void LinearClockModel::dump(std::ostream& s, short detail) const throw()
+ {
+ s << "base: " << baseTime
+ << ", start: " << startTime
+ << ", end: " << endTime
+ << endl
+ << "Clock: est(end)=" << getOffset(endTime)
+ << ", n=" << clockModel.N()
+ << ", b=" << clockModel.Intercept()
+ << ", m=" << clockModel.Slope()
+ << ", sigma=" << clockModel.StdDevY()
+ << ", r=" << clockModel.Correlation()
+ << endl;
+
+ if (detail>0)
+ {
+ s << "min elev: " << elvmask
+ << ", max sigma: " << sigmam
+ << endl;
+
+ map<DayTime,SvStatusMap>::const_iterator e = prnStatus.find(endTime);
+ const SvStatusMap& statusMap = e->second;
+ SvStatusMap::const_iterator i;
+ for ( i=statusMap.begin(); i!= statusMap.end(); i++)
+ s << i->first << "/" << i->second << " ";
+ s << endl;
+ }
+ }
+}
diff --git a/dev/src/LinearClockModel.hpp b/dev/src/LinearClockModel.hpp
new file mode 100644
index 0000000..deac5c8
--- /dev/null
+++ b/dev/src/LinearClockModel.hpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef LINEARCLOCKMODEL_HPP
+#define LINEARCLOCKMODEL_HPP
+
+#include <map>
+
+#include "Exception.hpp"
+
+#include "ObsClockModel.hpp"
+#include "ORDEpoch.hpp"
+
+/**
+ * @file LinearClockModel.hpp
+ * This model is just a moving average of clock models over time. It
+ * really is quite bad and shouldn't be used at this time. Be warned!
+ */
+
+namespace gpstk
+{
+ class LinearClockModel : public ObsClockModel
+ {
+ public:
+ LinearClockModel(double sigma = 2, double elmask = 0, SvMode mode = ALWAYS)
+ :ObsClockModel(sigma, elmask, mode) {reset();};
+
+ virtual double getOffset(const gpstk::DayTime& t) const
+ throw()
+ {
+ if (!isOffsetValid(t))
+ return 0;
+ else
+ return clockModel.Slope()*(t-baseTime) + clockModel.Intercept();
+ };
+
+ virtual bool isOffsetValid(const gpstk::DayTime& t) const throw()
+ {return t >= startTime && t <= endTime && clockModel.N() > 1;};
+
+ /// Add in the given ord to the clock model
+ virtual void addEpoch(const ORDEpoch& oe) throw(gpstk::InvalidValue);
+
+ /// Reset the accumulated statistics on the clock
+ void reset() throw();
+
+ void dump(std::ostream& s, short detail=1) const throw();
+
+ friend std::ostream& operator<<(std::ostream& s, const LinearClockModel& r)
+ { r.dump(s, 0); return s; };
+
+ private:
+ // x is time y is clock offset
+ gpstk::TwoSampleStats<double> clockModel;
+
+ gpstk::DayTime startTime, endTime, baseTime;
+
+ unsigned long tossCount;
+
+ // This is were we store what SVs were used to compute the individual
+ // clock observations
+ std::map<gpstk::DayTime, SvStatusMap> prnStatus;
+
+ // This is a store of the clock observations that were added into the
+ // clockModel object
+ std::multimap<double,double> clockObs;
+ };
+
+}
+#endif
diff --git a/dev/src/LoopedFramework.cpp b/dev/src/LoopedFramework.cpp
new file mode 100644
index 0000000..f8844e8
--- /dev/null
+++ b/dev/src/LoopedFramework.cpp
@@ -0,0 +1,68 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file LoopedFramework.cpp
+ * Basic framework for programs processing loops in the GPS toolkit
+ */
+
+#include "LoopedFramework.hpp"
+
+namespace gpstk
+{
+ using namespace gpstk;
+
+ void LoopedFramework :: completeProcessing()
+ {
+ additionalSetup();
+
+ spinUp();
+
+ while (!timeToDie)
+ process();
+
+ } // LoopedFramework::run()
+
+} // namespace sglmsn
diff --git a/dev/src/LoopedFramework.hpp b/dev/src/LoopedFramework.hpp
new file mode 100644
index 0000000..0f76287
--- /dev/null
+++ b/dev/src/LoopedFramework.hpp
@@ -0,0 +1,109 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file LoopedFramework.hpp
+ * Basic framework for programs processing loops in the GPS toolkit
+ */
+
+#ifndef LOOPEDFRAMEWORK_HPP
+#define LOOPEDFRAMEWORK_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "BasicFramework.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup appframegroup */
+ //@{
+
+ /**
+ * This is a basic framework for programs processing in loops in
+ * the GPSTK.
+ *
+ * The end user should define subclasses of this class,
+ * implementing those methods described as being meant to be
+ * overridden.
+ *
+ * In use, the user will construct an object of the class
+ * derived from this, then call the initialize() and run()
+ * methods in that order.
+ */
+ class LoopedFramework : public BasicFramework
+ {
+ public:
+ /**
+ * Constructor for LoopedFramework.
+ * @param applName name of the program (argv[0]).
+ * @param applDesc text description of program's function
+ * (used by CommandOption help).
+ */
+ LoopedFramework(const std::string& applName,
+ const std::string& applDesc)
+ throw()
+ : BasicFramework(applName, applDesc), timeToDie(false)
+ { }
+
+ /// Destructor.
+ virtual ~LoopedFramework() {}
+
+ protected:
+ bool timeToDie; ///< if set to true, the loop will terminate
+
+ /**
+ * Called by the run() method, calls additionalSetup(),
+ * spinUp(), and process(), in that order.
+ */
+ virtual void completeProcessing();
+
+ private:
+ // Do not allow the use of the default constructor.
+ LoopedFramework();
+ }; // class LoopedFramework
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/MJD.cpp b/dev/src/MJD.cpp
new file mode 100644
index 0000000..62ec16b
--- /dev/null
+++ b/dev/src/MJD.cpp
@@ -0,0 +1,161 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "MJD.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ MJD& MJD::operator=( const MJD& right )
+ throw()
+ {
+ mjd = right.mjd;
+ return *this;
+ }
+
+ CommonTime MJD::convertToCommonTime() const
+ {
+ // convert to Julian Day
+ long double tmp( mjd + MJD_JDAY );
+ // get the whole number of days
+ long jday( static_cast<long>( tmp ) );
+ // tmp now holds the partial days
+ tmp -= static_cast<long>( tmp );
+ // convert tmp to seconds of day
+ tmp *= SEC_PER_DAY;
+
+ return CommonTime( jday,
+ static_cast<long>( tmp ),
+ tmp - static_cast<long>( tmp ) );
+ }
+
+ void MJD::convertFromCommonTime( const CommonTime& ct )
+ {
+ long jday, sod;
+ double fsod;
+ ct.get( jday, sod, fsod );
+
+ mjd = static_cast<long double>( jday - MJD_JDAY ) +
+ ( static_cast<long double>( sod )
+ + static_cast<long double>( fsod ) ) * DAY_PER_SEC;
+ }
+
+ std::string MJD::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint( rv, getFormatPrefixFloat() + "Q",
+ "QLf", mjd );
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ bool MJD::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ IdToValue::const_iterator itr = info.find('Q');
+ if( itr != info.end() )
+ {
+ mjd = gpstk::StringUtils::asLongDouble( itr->second );
+ }
+
+ return true;
+ }
+
+ bool MJD::isValid() const
+ throw()
+ {
+ MJD temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void MJD::reset()
+ throw()
+ {
+ mjd = 0.0;
+ }
+
+ bool MJD::operator==( const MJD& right ) const
+ throw()
+ {
+ if( mjd == right.mjd )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool MJD::operator!=( const MJD& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool MJD::operator<( const MJD& right ) const
+ throw()
+ {
+ if( mjd < right.mjd )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool MJD::operator>( const MJD& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool MJD::operator<=( const MJD& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool MJD::operator>=( const MJD& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/MJD.hpp b/dev/src/MJD.hpp
new file mode 100644
index 0000000..e637772
--- /dev/null
+++ b/dev/src/MJD.hpp
@@ -0,0 +1,170 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_MJD_HPP
+#define GPSTK_MJD_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "Modified Julian Date" time representation.
+ */
+ class MJD : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup mjdbo MJD Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ MJD( long double m = 0. )
+ throw()
+ : mjd( m )
+ {}
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the MJD object to copy
+ */
+ MJD( const MJD& right )
+ throw()
+ : mjd( right.mjd )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ MJD( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ MJD( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the MJD to copy
+ * @return a reference to this MJD
+ */
+ MJD& operator=( const MJD& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~MJD()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "Q";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%.9Q";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup mjdco MJD Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the MJD object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const MJD& right ) const
+ throw();
+ bool operator!=( const MJD& right ) const
+ throw();
+ bool operator<( const MJD& right ) const
+ throw();
+ bool operator>( const MJD& right ) const
+ throw();
+ bool operator<=( const MJD& right ) const
+ throw();
+ bool operator>=( const MJD& right ) const
+ throw();
+ //@}
+
+ long double mjd;
+ };
+
+} // namespace
+
+#endif // GPSTK_MJD_HPP
diff --git a/dev/src/MOPSWeight.cpp b/dev/src/MOPSWeight.cpp
new file mode 100644
index 0000000..56ed817
--- /dev/null
+++ b/dev/src/MOPSWeight.cpp
@@ -0,0 +1,240 @@
+
+/**
+ * @file MOPSWeight.cpp
+ * Class for assign weights to satellites based on the Appendix J of MOPS C.
+ */
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "MOPSWeight.hpp"
+
+
+using namespace std;
+namespace gpstk
+{
+
+ // Compute and return a vector with the weights for the given satellites
+ // @param time Epoch weights will be computed for
+ // @param Satellites Vector of satellites
+ // @param bcEph Satellite broadcast ephemeris
+ // @param ionoCorrections Ionospheric corrections computed using Klobuchar model
+ // @param elevationVector Vector of elevations, in degrees
+ // @param azimuthVector Vector of azimuths, in degrees
+ // @param rxPosition Position of the receiver
+ // @param rxClass Integer indicating receiver class according MOPS-C.
+ // It is 2 by default (conservative setting).
+ //
+ // @return
+ // Number of satellites with valid weights
+ //
+ // \note
+ // Method isValid() will return false if some satellite does not have a
+ // valid weight. Also, its PRN will be set to a negative value.
+ //
+ int MOPSWeight::getWeights(DayTime& time, Vector<SatID>& Satellites, BCEphemerisStore& bcEph, Vector<double>& ionoCorrections, Vector<double>& elevationVector, Vector<double>& azimuthVector, Position rxPosition, int rxClass) throw(InvalidWeights)
+ {
+
+ int N = Satellites.size();
+ int Ne = elevationVector.size();
+ int Na = azimuthVector.size();
+ // We need at least one satellite
+ if (N == 0)
+ {
+ InvalidWeights eWeight("At least one satellite is needed to compute weights.");
+ GPSTK_THROW(eWeight);
+ }
+
+ if ( (N != Ne) || (N != Na) )
+ {
+ InvalidWeights eWeight("Size of input vectors do not match.");
+ GPSTK_THROW(eWeight);
+ }
+
+ SimpleIURAWeight sIura;
+
+ // Compute the satellites' IURA weights
+ int goodSV = sIura.getWeights(time, Satellites, bcEph);
+
+ // Let's compute the sigma^2 and weight values
+ MOPSWeight::Compute(goodSV, sIura, Satellites, ionoCorrections, elevationVector, azimuthVector, rxPosition, rxClass);
+
+ return goodSV;
+
+ }
+
+
+ // Compute and return a vector with the weights for the given satellites
+ // @param time Epoch weights will be computed for
+ // @param Satellites Vector of satellites
+ // @param preciseEph Satellite precise ephemeris
+ // @param ionoCorrections Ionospheric corrections computed using Klobuchar model
+ // @param elevationVector Vector of elevations, in degrees
+ // @param azimuthVector Vector of azimuths, in degrees
+ // @param rxPosition Position of the receiver
+ // @param rxClass Integer indicating receiver class according MOPS-C.
+ // It is 2 by default (conservative setting).
+ //
+ // @return
+ // Number of satellites with valid weights
+ //
+ // \note
+ // Method isValid() will return false if some satellite does not have a
+ // valid weight. Also, its PRN will be set to a negative value.
+ //
+ int MOPSWeight::getWeights(DayTime& time, Vector<SatID>& Satellites, TabularEphemerisStore& preciseEph, Vector<double>& ionoCorrections, Vector<double>& elevationVector, Vector<double>& azimuthVector, Position rxPosition, int rxClass) throw(InvalidWeights)
+ {
+
+ int N = Satellites.size();
+ int Ne = elevationVector.size();
+ int Na = azimuthVector.size();
+ // We need at least one satellite
+ if (N == 0)
+ {
+ InvalidWeights eWeight("At least one satellite is needed to compute weights.");
+ GPSTK_THROW(eWeight);
+ }
+
+ if ( (N != Ne) || (N != Na) )
+ {
+ InvalidWeights eWeight("Size of input vectors do not match.");
+ GPSTK_THROW(eWeight);
+ }
+
+ SimpleIURAWeight sIura;
+
+ // Compute the satellites' IURA weights
+ int goodSV = sIura.getWeights(time, Satellites, preciseEph);
+
+ // Let's compute the sigma^2 and weight values
+ MOPSWeight::Compute(goodSV, sIura, Satellites, ionoCorrections, elevationVector, azimuthVector, rxPosition, rxClass);
+
+ return goodSV;
+
+ }
+
+
+ // Compute satellites' weights
+ void MOPSWeight::Compute(int goodSV, SimpleIURAWeight& sIura, Vector<SatID>& Satellites, Vector<double>& ionoCorrections, Vector<double>& elevationVector, Vector<double>& azimuthVector, Position rxPosition, int rxClass) throw(InvalidWeights)
+ {
+ int N = Satellites.size();
+
+ double sigma2rx; // Receiver noise sigma^2 in meters^2
+ if (rxClass==1) sigma2rx = 0.25; else sigma2rx = 0.36;
+
+ double sigma2ura, sigma2multipath, sigma2trop, sigma2uire;
+ // Let's resize weightsVector
+ weightsVector.resize(goodSV);
+
+ // We need a MOPSTropModel object. Parameters must be valid but they have no importance
+ MOPSTropModel mopsTrop(0.0, 0.0, 1);
+
+ if (N==goodSV) // In this case, we don't have to worry much and things go faster
+ {
+ for (int i=0; i<goodSV; i++)
+ {
+ sigma2ura = (1.0 / sIura.weightsVector(i));
+ sigma2multipath = 0.13 + (0.53 * std::exp(-elevationVector(i)/10.0));
+ sigma2trop = mopsTrop.MOPSsigma2(elevationVector(i));
+ sigma2uire = sigma2iono(ionoCorrections(i), elevationVector(i), azimuthVector(i), rxPosition);
+ weightsVector(i) = 1.0 / (sigma2rx + sigma2ura + sigma2multipath + sigma2trop + sigma2uire);
+ }
+ }
+ else // Much care must be taken in this case
+ {
+ int offset = 0;
+ for (int i=0; i<goodSV; i++)
+ {
+ // Lets make sure we are using the same satellites
+ while ( (sIura.availableSV(i).id != Satellites(i+offset).id) && ((i+offset)<N) ) offset++;
+ if ( (i+offset) >= N ) break;
+ sigma2ura = (1.0 / sIura.weightsVector(i));
+ sigma2multipath = 0.13 + (0.53 * std::exp(-elevationVector(i)/10.0));
+ sigma2trop = mopsTrop.MOPSsigma2(elevationVector(i+offset));
+ sigma2uire = sigma2iono(ionoCorrections(i+offset), elevationVector(i+offset), azimuthVector(i+offset), rxPosition);
+ weightsVector(i) = 1.0 / (sigma2rx + sigma2ura + sigma2multipath + sigma2trop + sigma2uire);
+ }
+ }
+
+ (*this).valid = sIura.isValid(); // Valididy depends if sIura rejected satellites or not
+ (*this).availableSV = sIura.availableSV;
+ (*this).rejectedSV = sIura.rejectedSV;
+
+
+ } // End of MOPSWeight::Compute()
+
+
+ // Compute ionospheric sigma^2 according to Appendix J.2.3 and Appendix A.4.4.10.4 in MOPS-C
+ double MOPSWeight::sigma2iono(double& ionoCorrection, double& elevation, double& azimuth, Position rxPosition) throw(InvalidWeights)
+ {
+ // First, let's found magnetic latitude according to ICD-GPS-200, section 20.3.3.5.2.6
+ double azRad = azimuth * DEG_TO_RAD;
+ double elevRad = elevation * DEG_TO_RAD;
+ double cosElev = std::cos(elevRad);
+ double svE = elevation / 180.0; // Semi-circles
+
+ double phi_u = rxPosition.getGeodeticLatitude() / 180.0; // Semi-circles
+ double lambda_u = rxPosition.getLongitude() / 180.0; // Semi-circles
+
+ double psi = (0.0137 / (svE + 0.11)) - 0.022; // Semi-circles
+
+ double phi_i = phi_u + psi * std::cos(azRad); // Semi-circles
+ if (phi_i > 0.416)
+ phi_i = 0.416;
+ if (phi_i < -0.416)
+ phi_i = -0.416;
+
+ double lambda_i = lambda_u + ( psi * std::sin(azRad) / std::cos(phi_i*PI) ); // Semi-circles
+
+ double phi_m = phi_i + 0.064 * std::cos((lambda_i - 1.617)*PI); // Semi-circles
+
+ // Convert magnetic latitude to degrees
+ phi_m = std::abs(phi_m * 180.0);
+
+ // Estimate vertical ionospheric delay according to MOPS-C
+ double tau_vert;
+ if ( (phi_m >= 0.0) && (phi_m <= 20.0) ) { tau_vert = 9.0; }
+ else
+ {
+ if ( (phi_m > 20.0) && (phi_m <= 55.0) ) { tau_vert = 4.5; }
+ else tau_vert = 6.0;
+ }
+
+ // Compute obliquity factor
+ double fpp = ( 1.0 / (std::sqrt(1.0 - 0.898665418 * cosElev * cosElev)) );
+
+ double sigma2uire = ( (ionoCorrection*ionoCorrection) / 25.0 );
+
+ double fact = ( (fpp*tau_vert) * (fpp*tau_vert) );
+
+ if (fact > sigma2uire) sigma2uire = fact;
+
+ return sigma2uire;
+
+ } // End of MOPSWeight::sigma2iono()
+
+
+}
+
diff --git a/dev/src/MOPSWeight.hpp b/dev/src/MOPSWeight.hpp
new file mode 100644
index 0000000..c7b6255
--- /dev/null
+++ b/dev/src/MOPSWeight.hpp
@@ -0,0 +1,148 @@
+
+/**
+ * @file MOPSWeight.hpp
+ * Class to assign weights to satellites based on the Appendix J of MOPS C.
+ */
+
+#ifndef MOPSWEIGHT_BASE_GPSTK
+#define MOPSWEIGHT_BASE_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "WeightBase.hpp"
+#include "EphemerisStore.hpp"
+#include "BCEphemerisStore.hpp"
+#include "TabularEphemerisStore.hpp"
+#include "EngEphemeris.hpp"
+#include "RinexObsHeader.hpp"
+#include "Position.hpp"
+#include "SimpleIURAWeight.hpp"
+#include "TropModel.hpp"
+#include "icd_200_constants.hpp"
+#include "geometry.hpp" // DEG_TO_RAD
+#include <cmath>
+#include <vector>
+
+
+namespace gpstk
+{
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /** Class to assign weights to satellites based on the Appendix J of MOPS C.
+ *
+ * This class implements an algorithm to assign weights to satellites based on
+ * the RTCA "Minimum Operational Performance Standards" (MOPS), version C
+ * (RTCA/DO-229C), sections J.2.3. "Variance of Ionospheric Delay", J.2.4.
+ * "Variance of Airborne Receiver Errors" and J.2.5. "Variance of Tropospheric
+ * errors".
+ *
+ * It is meant to be used with the class "MOPSTropModel".
+ *
+ */
+ class MOPSWeight: WeightBase
+ {
+ public:
+
+ /// Empty constructor
+ MOPSWeight(void) { valid = false; };
+
+
+ /** Compute and return a vector with the weights for the given satellites
+ * @param time Epoch weights will be computed for
+ * @param Satellites Vector of satellites
+ * @param bcEph Satellite broadcast ephemeris
+ * @param ionoCorrections Ionospheric corrections computed using Klobuchar model
+ * @param elevationVector Vector of elevations, in degrees
+ * @param azimuthVector Vector of azimuths, in degrees
+ * @param rxPosition Position of the receiver
+ * @param rxClass Integer indicating receiver class according MOPS-C.
+ * It is 2 by default (conservative setting).
+ *
+ * @return
+ * Number of satellites with valid weights
+ *
+ * \note
+ * Method isValid() will return false if some satellite does not have a
+ * valid weight. Also, its PRN will be set to a negative value.
+ *
+ */
+ virtual int getWeights(DayTime& time, Vector<SatID>& Satellites, BCEphemerisStore& bcEph, Vector<double>& ionoCorrections, Vector<double>& elevationVector, Vector<double>& azimuthVector, Position rxPosition, int rxClass=2) throw(InvalidWeights);
+
+
+ /** Compute and return a vector with the weights for the given satellites
+ * @param time Epoch weights will be computed for
+ * @param Satellites Vector of satellites
+ * @param preciseEph Satellite precise ephemeris
+ * @param ionoCorrections Ionospheric corrections computed using Klobuchar model
+ * @param elevationVector Vector of elevations, in degrees
+ * @param azimuthVector Vector of azimuths, in degrees
+ * @param rxPosition Position of the receiver
+ * @param rxClass Integer indicating receiver class according MOPS-C.
+ * It is 2 by default (conservative setting).
+ *
+ * @return
+ * Number of satellites with valid weights
+ *
+ * \note
+ * Method isValid() will return false if some satellite does not have a
+ * valid weight. Also, its PRN will be set to a negative value.
+ *
+ */
+ virtual int getWeights(DayTime& time, Vector<SatID>& Satellites, TabularEphemerisStore& preciseEph, Vector<double>& ionoCorrections, Vector<double>& elevationVector, Vector<double>& azimuthVector, Position rxPosition, int rxClass=2) throw(InvalidWeights);
+
+
+ /// Vector of weights for these satellites
+ Vector<double> weightsVector;
+
+ /// Vector with the PRN of satellites with weights available for computing.
+ Vector<SatID> availableSV;
+
+ /// Vector with the PRN of satellites rejected or with no proper weights.
+ Vector<SatID> rejectedSV;
+
+ /// Return validity of weights
+ virtual bool isValid(void)
+ { return valid; }
+
+
+ private:
+
+ /// Compute satellites' weights
+ void Compute(int goodSV, SimpleIURAWeight& sIura, Vector<SatID>& Satellites, Vector<double>& ionoCorrections, Vector<double>& elevationVector, Vector<double>& azimuthVector, Position rxPosition, int rxClass) throw(InvalidWeights);
+
+
+ /// Compute ionospheric sigma^2 according to Appendix J.2.3 and Appendix A.4.4.10.4 in MOPS-C
+ double sigma2iono(double& ionoCorrection, double& elevation, double& azimuth, Position rxPosition) throw(InvalidWeights);
+
+ }; // end class MOPSWeight
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/MSCData.cpp b/dev/src/MSCData.cpp
new file mode 100644
index 0000000..6eeb2a1
--- /dev/null
+++ b/dev/src/MSCData.cpp
@@ -0,0 +1,144 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file MSCData.cpp
+ * Monitor station coordinate file data
+ */
+
+#include <math.h>
+#include "MSCData.hpp"
+#include "MSCStream.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+
+ static const unsigned long SEC_YEAR = (unsigned long)(365.25 * gpstk::DayTime::SEC_DAY);
+
+ void MSCData::reallyPutRecord(gpstk::FFStream & ffs) const
+ throw(std::exception, gpstk::FFStreamError, StringException)
+ {
+ MSCStream& strm = dynamic_cast<MSCStream&>(ffs);
+
+ string line;
+
+ line += rightJustify(asString<short>(time.DOYyear()), 4);
+ line += rightJustify(asString<short>(time.DOYday()), 3 , '0');
+ line += rightJustify(asString<long>(station), 5);
+ line += leftJustify(mnemonic, 7);
+ double repoch = refepoch.DOYyear()
+ + (refepoch.DOYday() * gpstk::DayTime::SEC_DAY
+ + refepoch.DOYsecond()) / SEC_YEAR;
+ line += rightJustify(asString(repoch, 2), 7);
+ double eepoch = effepoch.DOYyear()
+ + (effepoch.DOYday() * gpstk::DayTime::SEC_DAY
+ + effepoch.DOYsecond()) / SEC_YEAR;
+ line += rightJustify(asString(eepoch, 2), 7);
+ line += rightJustify(asString(coordinates[0], 3), 12);
+ line += rightJustify(asString(coordinates[1], 3), 12);
+ line += rightJustify(asString(coordinates[2], 3), 12);
+ if (velocities[0] >= 0)
+ line += rightJustify(change(asString(velocities[0], 4),"0.","."), 7);
+ else
+ line += rightJustify(change(asString(velocities[0], 4),"-0.","-."), 7);
+ if (velocities[1] >= 0)
+ line += rightJustify(change(asString(velocities[1], 4),"0.","."), 7);
+ else
+ line += rightJustify(change(asString(velocities[1], 4),"-0.","-."), 7);
+ if (velocities[2] >= 0)
+ line += rightJustify(change(asString(velocities[2], 4),"0.","."), 7);
+ else
+ line += rightJustify(change(asString(velocities[2], 4),"-0.","-."), 7);
+
+ ffs << line << endl;
+ strm.lineNumber++;
+ }
+
+ void MSCData::reallyGetRecord(gpstk::FFStream& ffs)
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ MSCStream& strm = dynamic_cast<MSCStream&>(ffs);
+
+ string currentLine;
+
+ strm.formattedGetLine(currentLine, true);
+ int len = currentLine.length();
+
+ short year = asInt(currentLine.substr(0, 4));
+ short day = asInt(currentLine.substr(4, 3));
+ time.setYDoySod(year, day, 0.0);
+
+ station = asInt(currentLine.substr(7, 5));
+ mnemonic = currentLine.substr(12, 7);
+
+ double epoch, intg, frac, sod;
+ short doy;
+
+ // can't have DOY 0, so use doy + 1 when generating times
+ epoch = asDouble(currentLine.substr(19, 7));
+ frac = modf(epoch, &intg);
+ doy = (short)(frac * SEC_YEAR / gpstk::DayTime::SEC_DAY);
+ sod = (short)((frac * gpstk::DayTime::SEC_DAY) - (doy * gpstk::DayTime::SEC_DAY));
+ refepoch = gpstk::DayTime((short)intg, doy+1, sod);
+
+ epoch = asDouble(currentLine.substr(26, 7));
+ frac = modf(epoch, &intg);
+ doy = (short)(frac * SEC_YEAR / gpstk::DayTime::SEC_DAY);
+ sod = (frac * gpstk::DayTime::SEC_DAY) - (doy * gpstk::DayTime::SEC_DAY);
+ effepoch = gpstk::DayTime((short)intg, doy+1, sod);
+
+ coordinates[0] = asDouble(currentLine.substr(33, 12));
+ coordinates[1] = asDouble(currentLine.substr(45, 12));
+ coordinates[2] = asDouble(currentLine.substr(57, 12));
+
+ velocities[0] = asDouble(currentLine.substr(69, 7));
+ velocities[1] = asDouble(currentLine.substr(76, 7));
+ velocities[2] = asDouble(currentLine.substr(83, 7));
+ }
+}
diff --git a/dev/src/MSCData.hpp b/dev/src/MSCData.hpp
new file mode 100644
index 0000000..72c5ab0
--- /dev/null
+++ b/dev/src/MSCData.hpp
@@ -0,0 +1,114 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file MSCData.hpp
+ * Monitor station coordinate file data
+ */
+
+#ifndef MSCDATA_HPP
+#define MSCDATA_HPP
+
+#include <string>
+#include "StringUtils.hpp"
+#include "Triple.hpp"
+#include "ECEF.hpp"
+#include "DayTime.hpp"
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup icd211group ICD-GPS-211 Classes */
+ //@{
+
+ /**
+ * Model for a Monitor Station Coordinates File Data Record
+ */
+ class MSCData : public gpstk::FFData
+ {
+ public:
+ /// constructor
+ MSCData() throw() : time(gpstk::DayTime(0.L)) {}
+
+ /// destructor
+ virtual ~MSCData() throw() {}
+
+ gpstk::DayTime time; ///< date of coordinates release from NIMA
+ unsigned long station; ///< NIMA Monitor Station number (e.g. 85408)
+ std::string mnemonic; ///< NIMA Monitor Station identifier (e.g. ARLM)
+ gpstk::DayTime refepoch; ///< epoch of coordinates and velocities
+ gpstk::DayTime effepoch; ///< earliest epoch data is valid
+ gpstk::ECEF coordinates; ///< ECEF XYZ coordinates
+ gpstk::Triple velocities; ///< XYZ velocities
+
+ /// MSCData \b is data, so this always return \c true
+ virtual bool isData() const { return true; }
+
+ protected:
+ /// Write an MSCData object in the format specified by the stream
+ virtual void reallyPutRecord(gpstk::FFStream& ffs) const
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * Retrieve an MSCData record from the given gpstk::FFStream.
+ * If there is a problem reading from the stream, it
+ * is reset to its original position and it's failbit is set.
+ * @throws StringException when a gpstk::StringUtils functions fails
+ * @throws gpstk::FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to it pre-read position.
+ */
+ virtual void reallyGetRecord(gpstk::FFStream& ffs)
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException);
+ }; // class MSCData
+
+ //@}
+
+} // namespace gpstk
+
+#endif
+
diff --git a/dev/src/MSCStream.hpp b/dev/src/MSCStream.hpp
new file mode 100644
index 0000000..f40406b
--- /dev/null
+++ b/dev/src/MSCStream.hpp
@@ -0,0 +1,87 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file MSCStream.hpp
+ * Read/Write Monitorm station coordinate file data
+ */
+
+#ifndef MSCSTREAM_HPP
+#define MSCSTREAM_HPP
+
+#include "FFTextStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup icd211group ICD-GPS-211 Classes */
+ //@{
+
+ /// Stream used to obtain data from a Monitor Station Coordinates File
+ class MSCStream : public gpstk::FFTextStream
+ {
+ public:
+ /// Default constructor
+ MSCStream() {}
+
+ /**
+ * Constructor.
+ * @param fn the file to open
+ * @param mode the ios::openmode to use in opening \a fn
+ */
+ MSCStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ throw()
+ : gpstk::FFTextStream(fn, mode)
+ {}
+
+ /// Destructor
+ virtual ~MSCStream() {}
+
+ }; // class MSCStream
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/MWCSDetector.hpp b/dev/src/MWCSDetector.hpp
new file mode 100644
index 0000000..5d14cb1
--- /dev/null
+++ b/dev/src/MWCSDetector.hpp
@@ -0,0 +1,421 @@
+
+/**
+ * @file MWCSDetector.hpp
+ * This is a class to detect cycle slips using the Melbourne-Wubbena combination.
+ */
+
+#ifndef MWCSDETECTOR_GPSTK
+#define MWCSDETECTOR_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "DataStructures.hpp"
+#include <list>
+
+
+namespace gpstk
+{
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+
+ /** This is a class to detect cycle slips using MW observables.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeMelbourneWubbena getMW;
+ * MWCSDetector markCSMW;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getMW >> markCSMW;
+ * }
+ * @endcode
+ *
+ * The "MWCSDetector" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will decide if a cycle slip has happened in the
+ * given observable.
+ *
+ * The algorithm will use MW observables, and the LLI1 and LLI2 indexes.
+ * The result (a 0 if a cycle slip is found, 1 otherwise) will be stored in the
+ * data structure both as the CSL1 and CSL2 indexes.
+ *
+ * In taking the decision, this algorithm will use criteria as the maximum
+ * interval of time between two successive epochs and the maximum number of
+ * Melbourne-Wubbena wavelenghts allowed above or below the MW combination
+ * average for that arc.
+ *
+ * The default values are usually fine, but nevertheless you may change them
+ * with the appropriate methods. The former is of special importance for the
+ * maximum interval time, that should be adjusted to your sampling rate. By
+ * default it is 61 seconds, adapted to 30 seconds per sample RINEX files.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the cycle slip indexes inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * You should be aware that the Melbourne-Wubbena combination is based on a
+ * mix of code and phase observations, and it is very noisy. Therefore, it
+ * has a tendency to yield a fair number of false positives if you are not
+ * careful with its parameters. Because of this, the default parameters are
+ * very conservative, i.e., the detector is NOT much sensitive.
+ *
+ * Best results are achieved when using this detector as a "backup" detector
+ * for detectors based in LI combination, like this:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * ComputeLI getLI;
+ * LICSDetector markCSLI;
+ * ComputeMelbourneWubbena getMW;
+ * MWCSDetector markCSMW;
+ *
+ * while(rin >> gRin) {
+ * gRin >> getLI >> getMW >> markCSLI >> markCSMW;
+ * }
+ * @endcode
+ *
+ * @sa LICSDetector.hpp for more information.
+ *
+ * \warning Cycle slip detectors are objets that store their internal state,
+ * so you MUST NOT use the SAME object to process DIFFERENT data streams.
+ *
+ */
+ class MWCSDetector
+ {
+ public:
+
+ /// Default constructor, setting default parameters.
+ MWCSDetector() : obsType(TypeID::MWubbena), lliType1(TypeID::LLI1), lliType2(TypeID::LLI2), resultType1(TypeID::CSL1), resultType2(TypeID::CSL2), deltaTMax(61.0), maxNumLambdas(10.0), useLLI(true) {};
+
+
+ /** Common constructor
+ *
+ * @param mLambdas Maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
+ * @param dtMax Maximum interval of time allowed between two successive epochs, in seconds.
+ */
+ MWCSDetector(const double& mLambdas, const double& dtMax = 61.0, const bool& use = true) : obsType(TypeID::MWubbena), lliType1(TypeID::LLI1), lliType2(TypeID::LLI2), resultType1(TypeID::CSL1), resultType2(TypeID::CSL2), useLLI(use)
+ {
+ setDeltaTMax(dtMax);
+ setMaxNumLambdas(mLambdas);
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param epoch Time of observations.
+ * @param gData Data object holding the data.
+ * @param epochflag Epoch flag.
+ */
+ virtual satTypeValueMap& Detect(const DayTime& epoch, satTypeValueMap& gData, const short& epochflag=0)
+ {
+ double value1(0.0);
+ double lli1(0.0);
+ double lli2(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ value1 = (*it).second(obsType);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ if (useLLI)
+ {
+ try
+ {
+ // Try to get the LLI1 index
+ lli1 = (*it).second(lliType1);
+ }
+ catch(...)
+ {
+ // If LLI #1 is not found, set it to zero
+ // You REALLY want to have BOTH LLI indexes properly set
+ lli1 = 0.0;
+ }
+ try
+ {
+ // Try to get the LLI2 index
+ lli2 = (*it).second(lliType2);
+ }
+ catch(...)
+ {
+ // If LLI #2 is not found, set it to zero
+ // You REALLY want to have BOTH LLI indexes properly set
+ lli2 = 0.0;
+ }
+ }
+ // If everything is OK, then get the new values inside the structure
+ // This way of doing it allows concatenation of several different cycle slip detectors
+ (*it).second[resultType1] += getDetection(epoch, (*it).first, (*it).second, epochflag, value1, lli1, lli2);
+ if ( (*it).second[resultType1] > 1.0 ) (*it).second[resultType1] = 1.0;
+ // We will mark both cycle slip flags
+ (*it).second[resultType2] = (*it).second[resultType1];
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Method to set the maximum interval of time allowed between two successive epochs.
+ * @param maxDelta Maximum interval of time, in seconds
+ */
+ virtual void setDeltaTMax(const double& maxDelta)
+ {
+ // Don't allow delta times less than or equal to 0
+ if (maxDelta > 0.0) deltaTMax = maxDelta; else deltaTMax = 61.0;
+ };
+
+
+ /// Method to get the maximum interval of time allowed between two successive epochs, in seconds.
+ virtual double getDeltaTMax() const
+ {
+ return deltaTMax;
+ };
+
+
+ /** Method to set the maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
+ * @param mLambdas Maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
+ */
+ virtual void setMaxNumLambdas(const double& mLambdas)
+ {
+ // Don't allow number of lambdas less than or equal to 0
+ if (mLambdas > 0.0) maxNumLambdas = mLambdas; else maxNumLambdas = 10.0;
+ };
+
+
+ /// Method to get the maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
+ virtual double getMaxNumLambdas() const
+ {
+ return maxNumLambdas;
+ };
+
+
+ /** Method to set whether the LLI indexes will be used as an aid or not.
+ * @param use Boolean value enabling/disabling LLI check
+ */
+ virtual void setUseLLI(const bool& use)
+ {
+ useLLI = use;
+ };
+
+
+ /// Method to know if the LLI check is enabled or disabled.
+ virtual bool getUseLLI() const
+ {
+ return useLLI;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Detect(gnssSatTypeValue& gData)
+ {
+ (*this).Detect(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Detect(gnssRinex& gData)
+ {
+ (*this).Detect(gData.header.epoch, gData.body, gData.header.epochFlag);
+ return gData;
+ };
+
+
+ /// Destructor
+ virtual ~MWCSDetector() {};
+
+
+
+ private:
+
+ /// Type of code.
+ TypeID obsType;
+
+ /// Type of LMW1 record.
+ TypeID lliType1;
+
+ /// Type of LMW2 record.
+ TypeID lliType2;
+
+ /// Type of result #1.
+ TypeID resultType1;
+
+ /// Type of result #2.
+ TypeID resultType2;
+
+
+ /// Maximum interval of time allowed between two successive epochs, in seconds.
+ double deltaTMax;
+
+
+ /// Maximum deviation allowed before declaring cycle slip (in number of Melbourne-Wubbena wavelenghts).
+ double maxNumLambdas;
+
+
+ /// This field tells whether to use or ignore the LLI indexes as an aid.
+ bool useLLI;
+
+
+ /// A structure used to store filter data for a SV.
+ struct filterData
+ {
+ // Default constructor initializing the data in the structure
+ filterData() : formerEpoch(DayTime::BEGINNING_OF_TIME), windowSize(0), meanMW(0.0) {};
+
+ DayTime formerEpoch; ///< The previous epoch time stamp.
+ int windowSize; ///< Size of current window, in samples.
+ double meanMW; ///< Accumulated mean value of combination
+ };
+
+ /// Map holding the information regarding every satellite
+ std::map<SatID, filterData> MWData;
+
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param epoch Time of observations.
+ * @param sat SatID.
+ * @param tvMap Data structure of TypeID and values.
+ * @param epochflag Epoch flag.
+ * @param mw Current MW observation value.
+ * @param lli1 LLI1 index.
+ * @param lli2 LLI2 index.
+ */
+ virtual double getDetection(const DayTime& epoch, const SatID& sat, typeValueMap& tvMap, const short& epochflag, const double& mw, const double& lli1, const double& lli2)
+ {
+ bool reportCS(false);
+ double currentDeltaT(0.0); // Difference between current and former epochs, in sec
+ double currentBias(0.0); // Difference between current and former MW values
+ double lambdaLimit(maxNumLambdas*0.862); // Limit to declare cycle slip based on lambdas (LambdaLW = 0.862 m)
+ double tempLLI1(0.0);
+ double tempLLI2(0.0);
+
+
+ // Get the difference between current epoch and former epoch, in seconds
+ currentDeltaT = ( epoch.MJDdate() - MWData[sat].formerEpoch.MJDdate() ) * DayTime::SEC_DAY;
+
+ // Store current epoch as former epoch
+ MWData[sat].formerEpoch = epoch;
+
+ // Difference between current value of MW and average value
+ currentBias = std::abs(mw - MWData[sat].meanMW);
+
+ // Increment size of window
+ ++MWData[sat].windowSize;
+
+ // Check if receiver already declared cycle slip or too much time has elapsed
+ // Note: If tvMap(lliType1) or tvMap(lliType2) don't exist, then 0 will be used and those tests will pass
+ if ( (tvMap(lliType1)==1.0) || (tvMap(lliType1)==3.0) || (tvMap(lliType1)==5.0) || (tvMap(lliType1)==7.0) ) tempLLI1 = 1.0;
+
+ if ( (tvMap(lliType2)==1.0) || (tvMap(lliType2)==3.0) || (tvMap(lliType2)==5.0) || (tvMap(lliType2)==7.0) ) tempLLI2 = 1.0;
+
+ if ( (epochflag==1) || (epochflag==6) || (tempLLI1==1.0) || (tempLLI2==1.0) || (currentDeltaT > deltaTMax) )
+ {
+ MWData[sat].windowSize = 1; // We reset the filter with this
+ reportCS = true; // Report cycle slip
+ }
+
+
+ if (MWData[sat].windowSize > 1)
+ {
+ // Test for current bias bigger than lambda limit and for current bias squared bigger than sigma squared limit
+ if ( (currentBias > lambdaLimit) )
+ {
+ MWData[sat].windowSize = 1; // We reset the filter with this
+ reportCS = true; // Report cycle slip
+ }
+ }
+
+ // Let's prepare for the next time
+ // If a cycle-slip happened or just starting up
+ if (MWData[sat].windowSize < 2)
+ {
+ MWData[sat].meanMW = mw;
+ } else {
+ // Compute average
+ MWData[sat].meanMW += (mw - MWData[sat].meanMW) / (static_cast<double>(MWData[sat].windowSize));
+ }
+
+ if (reportCS) return 1.0; else return 0.0;
+ };
+
+ }; // end class MWCSDetector
+
+
+ /// Input operator from gnssSatTypeValue to MWCSDetector.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, MWCSDetector& mwD)
+ {
+ mwD.Detect(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to MWCSDetector.
+ inline gnssRinex& operator>>(gnssRinex& gData, MWCSDetector& mwD)
+ {
+ mwD.Detect(gData);
+ return gData;
+ }
+
+
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/Makefile.am b/dev/src/Makefile.am
new file mode 100644
index 0000000..3b67714
--- /dev/null
+++ b/dev/src/Makefile.am
@@ -0,0 +1,82 @@
+# $Id$
+## Process this file with automake to produce Makefile.in
+lib_LTLIBRARIES = libgpstk.la
+libgpstk_la_SOURCES = ANSITime.cpp AlmOrbit.cpp AlmanacStore.cpp \
+BCEphemerisStore.cpp Bancroft.cpp BasicFramework.cpp BinUtils.cpp \
+BinexData.cpp CivilTime.cpp CodeBuffer.cpp CommandOption.cpp \
+CommandOptionParser.cpp CommandOptionWithCommonTimeArg.cpp \
+CommandOptionWithPositionArg.cpp CommandOptionWithTimeArg.cpp CommonTime.cpp \
+DOP.cpp DayTime.cpp ECEF.cpp EngAlmanac.cpp EngEphemeris.cpp EngNav.cpp \
+EphemerisRange.cpp Exception.cpp Expression.cpp FFData.cpp FFStream.cpp \
+FICData.cpp FICData109.cpp FICData162.cpp FICData62.cpp FICData9.cpp \
+FICHeader.cpp FileHunter.cpp FileSpec.cpp GPSEpochWeekSecond.cpp \
+GPSWeekSecond.cpp GPSWeekZcount.cpp GPSZcount.cpp GPSZcount29.cpp \
+GPSZcount32.cpp GenXSequence.cpp Geodetic.cpp IonoModel.cpp \
+IonoModelStore.cpp JulianDate.cpp LinearClockModel.cpp LoopedFramework.cpp \
+MJD.cpp MOPSWeight.cpp MSCData.cpp ModeledPR.cpp ModeledReferencePR.cpp \
+ObsClockModel.cpp ObsEpochMap.cpp ObsID.cpp ObsRngDev.cpp PRSolution.cpp \
+Position.cpp RACRotation.cpp RinexEphemerisStore.cpp RinexMetData.cpp \
+RinexMetHeader.cpp RinexNavData.cpp RinexNavHeader.cpp RinexObsData.cpp \
+RinexObsHeader.cpp RinexObsID.cpp RinexSatID.cpp RinexUtilities.cpp \
+RungeKutta4.cpp SEMAlmanacStore.cpp SEMData.cpp SEMHeader.cpp SMODFData.cpp \
+SP3Data.cpp SP3EphemerisStore.cpp SP3Header.cpp SP3SatID.cpp \
+SVExclusionList.cpp SVPCodeGen.cpp SimpleIURAWeight.cpp SolverLMS.cpp \
+SolverWMS.cpp SourceID.cpp SystemTime.cpp TabularEphemerisStore.cpp \
+TimeConverters.cpp TimeString.cpp TimeTag.cpp Triple.cpp TropModel.cpp \
+TypeID.cpp UnixTime.cpp VectorBase.cpp WxObsMap.cpp X1Sequence.cpp \
+X2Sequence.cpp Xvt.cpp YDSTime.cpp YumaAlmanacStore.cpp YumaData.cpp \
+YumaHeader.cpp DataHeaders.cpp DataStructures.cpp XYZ2NEU.cpp \
+XYZ2NED.cpp DeltaOp.cpp SimpleKalmanFilter.cpp NablaOp.cpp
+
+incldir = $(includedir)/gpstk
+incl_HEADERS = ANSITime.hpp AlmOrbit.hpp AlmanacStore.hpp \
+BCEphemerisStore.hpp Bancroft.hpp BasicFramework.hpp BinUtils.hpp \
+BinexData.hpp BinexFilterOperators.hpp BinexStream.hpp BivarStats.hpp \
+CheckPRData.hpp CivilTime.hpp ClockModel.hpp CodeBuffer.hpp \
+CommandOption.hpp CommandOptionParser.hpp CommandOptionWithCommonTimeArg.hpp \
+CommandOptionWithPositionArg.hpp CommandOptionWithTimeArg.hpp CommonTime.hpp \
+DOP.hpp DayTime.hpp ECEF.hpp EngAlmanac.hpp \
+EngEphemeris.hpp EngNav.hpp EphemerisRange.hpp EphemerisStore.hpp \
+EpochClockModel.hpp Exception.hpp Expression.hpp ExtractC1.hpp \
+ExtractCombinationData.hpp ExtractD1.hpp ExtractD2.hpp ExtractData.hpp \
+ExtractL1.hpp ExtractL2.hpp ExtractLC.hpp ExtractP1.hpp ExtractP2.hpp \
+ExtractPC.hpp FFBinaryStream.hpp FFData.hpp FFStream.hpp FFStreamError.hpp \
+FFTextStream.hpp FICAStream.hpp FICBase.hpp FICData.hpp FICData109.hpp \
+FICData162.hpp FICData62.hpp FICData9.hpp FICFilterOperators.hpp \
+FICHeader.hpp FICStream.hpp FICStreamBase.hpp FileFilter.hpp \
+FileFilterFrame.hpp FileFilterFrameWithHeader.hpp FileHunter.hpp FileSpec.hpp \
+FileStore.hpp FileUtils.hpp GPSEpochWeekSecond.hpp GPSGeoid.hpp \
+GPSWeekSecond.hpp GPSWeekZcount.hpp GPSZcount.hpp GPSZcount29.hpp \
+GPSZcount32.hpp GenXSequence.hpp Geodetic.hpp GeoidModel.hpp IonoModel.hpp \
+IonoModelStore.hpp JulianDate.hpp LinearClockModel.hpp LoopedFramework.hpp \
+MJD.hpp MOPSWeight.hpp MSCData.hpp MSCStream.hpp MathBase.hpp Matrix.hpp \
+MatrixBase.hpp MatrixBaseOperators.hpp MatrixFunctors.hpp \
+MatrixImplementation.hpp MatrixOperators.hpp MiscMath.hpp ModeledPR.hpp \
+ModeledPseudorangeBase.hpp ModeledReferencePR.hpp ORDEpoch.hpp \
+ObsClockModel.hpp ObsEpochMap.hpp ObsID.hpp ObsRngDev.hpp \
+PCodeConst.hpp PRSolution.hpp PolyFit.hpp Position.hpp \
+RACRotation.hpp RTFileFrame.hpp RinexEphemerisStore.hpp RinexMetBase.hpp \
+RinexMetData.hpp RinexMetFilterOperators.hpp RinexMetHeader.hpp \
+RinexMetStream.hpp RinexNavBase.hpp RinexNavData.hpp \
+RinexNavFilterOperators.hpp RinexNavHeader.hpp RinexNavStream.hpp \
+RinexObsBase.hpp RinexObsData.hpp RinexObsFilterOperators.hpp \
+RinexObsHeader.hpp RinexObsID.hpp RinexObsStream.hpp RinexSatID.hpp \
+RinexUtilities.hpp RungeKutta4.hpp SEMAlmanacStore.hpp SEMBase.hpp \
+SEMData.hpp SEMHeader.hpp SEMStream.hpp SMODFData.hpp SMODFStream.hpp \
+SP3Base.hpp SP3Data.hpp SP3EphemerisStore.hpp SP3Header.hpp SP3SatID.hpp \
+SP3Stream.hpp SVExclusionList.hpp SVPCodeGen.hpp SatID.hpp \
+SimpleIURAWeight.hpp SolverBase.hpp SolverLMS.hpp SolverWMS.hpp \
+SourceID.hpp Stats.hpp StringUtils.hpp SystemTime.hpp \
+TabularEphemerisStore.hpp TimeConstants.hpp TimeConverters.hpp \
+TimeNamedFileStream.hpp TimeString.hpp TimeTag.hpp Triple.hpp TropModel.hpp \
+TypeID.hpp UnixTime.hpp ValidType.hpp Vector.hpp VectorBase.hpp \
+VectorBaseOperators.hpp VectorOperators.hpp WGS84Geoid.hpp WeightBase.hpp \
+WxObsMap.hpp X1Sequence.hpp X2Sequence.hpp Xvt.hpp YDSTime.hpp \
+YumaAlmanacStore.hpp YumaBase.hpp YumaData.hpp YumaHeader.hpp YumaStream.hpp \
+convhelp.hpp geometry.hpp gps_constants.hpp icd_200_constants.hpp \
+stl_helpers.hpp DataHeaders.hpp DataStructures.hpp ComputeCombination.hpp \
+ComputePC.hpp SimpleFilter.hpp ComputeLC.hpp ComputePI.hpp ComputeLI.hpp \
+ComputePdelta.hpp ComputeLdelta.hpp ComputeIURAWeights.hpp \
+ComputeMOPSWeights.hpp ComputeMelbourneWubbena.hpp OneFreqCSDetector.hpp \
+CodeSmoother.hpp PCSmoother.hpp LICSDetector.hpp MWCSDetector.hpp \
+XYZ2NEU.hpp XYZ2NED.hpp DeltaOp.hpp SimpleKalmanFilter.hpp NablaOp.hpp
\ No newline at end of file
diff --git a/dev/src/MathBase.hpp b/dev/src/MathBase.hpp
new file mode 100644
index 0000000..10e1072
--- /dev/null
+++ b/dev/src/MathBase.hpp
@@ -0,0 +1,58 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file MathBase.hpp
+ * Basic math #defines (ABS, SQRT, etc)
+ */
+
+#ifndef GPSTK_MATH_BASE_HPP
+#define GPSTK_MATH_BASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//@fix MSVC doesnt like std::sqrt or std::abs, and disabling
+//extensions allows abs(double) to be used instead of fabs()
+#ifdef _MSC_VER
+#undef _MSC_EXTENSIONS
+#endif
+#include <cmath>
+#ifdef _MSC_VER
+#define _MSC_EXTENSIONS
+#endif
+
+namespace gpstk
+{
+// do Doxygen elsewhere
+#ifdef _MSC_VER
+#define ABS(x) ::abs(x)
+#define SQRT(x) ::sqrt(x)
+#else
+#define ABS(x) std::abs(x)
+#define SQRT(x) std::sqrt(x)
+#endif
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/Matrix.hpp b/dev/src/Matrix.hpp
new file mode 100644
index 0000000..bfb48bf
--- /dev/null
+++ b/dev/src/Matrix.hpp
@@ -0,0 +1,712 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file Matrix.hpp
+ * Basic Matrix algorithms
+ */
+
+#ifndef GPSTK_MATRIX_HPP
+#define GPSTK_MATRIX_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "Vector.hpp"
+#include "MatrixBase.hpp"
+
+namespace gpstk
+{
+
+ /** @defgroup VectorGroup Vector and Matrix mathematics */
+ //@{
+
+// forward declarations
+ template <class T> class MatrixRowSlice;
+ template <class T> class ConstMatrixRowSlice;
+ template <class T> class MatrixColSlice;
+ template <class T> class ConstMatrixColSlice;
+
+
+/**
+ * An implementation of a matrix class using Vector<T> as its internal basis.
+ * This class is STL compliant with the iterator proceeding in row major order.
+ * Operators +=, -=, *= and /= are implemented in RefMatrixBase.
+ *
+ * @sa matvectest.cpp for examples
+ */
+ template <class T>
+ class Matrix : public RefMatrixBase<T, Matrix<T> >
+ {
+ public:
+ /// STL value_type
+ typedef typename Vector<T>::value_type value_type;
+ /// STL reference type
+ typedef typename Vector<T>::reference reference;
+ /// STL const reference type
+ typedef typename Vector<T>::const_reference const_reference;
+ /// STL iterator type
+ typedef typename Vector<T>::iterator iterator;
+ /// STL const iterator type
+ typedef typename Vector<T>::const_iterator const_iterator;
+
+ /// default constructor
+ Matrix();
+ /// constructor given an initial size
+ Matrix(size_t rows, size_t cols);
+ /// constructor for an initial size and value
+ Matrix(size_t rows, size_t cols, T initialValue);
+ /// copies out the contents of vec to initialize the matrix
+ Matrix(size_t rows, size_t cols, const T* vec);
+ /// copies out the contents of vec to initialize the matrix
+ template <class BaseClass>
+ Matrix(size_t rows, size_t cols, const ConstVectorBase<T, BaseClass>& vec)
+ : v(vec), r(rows), c(cols), s(rows * cols)
+ {}
+ /// constructor for a ConstMatrixBase object
+ template <class BaseClass>
+ Matrix(const ConstMatrixBase<T, BaseClass>& mat)
+ : v(mat.size()), r(mat.rows()), c(mat.cols()), s(mat.size())
+ {
+ size_t i,j;
+ for(i = 0; i < r; i++)
+ for(j = 0; j < c; j++)
+ (*this)(i,j) = mat(i, j);
+ }
+
+ /// submatrix constructor
+ template <class BaseClass>
+ Matrix(const ConstMatrixBase<T, BaseClass>& mat, size_t topRow,
+ size_t topCol, size_t numRows, size_t numCols)
+ : v((size_t)0), r(0), c(0), s(0)
+ {
+ // sanity checks...
+ if ( (topCol > mat.cols()) ||
+ (topRow > mat.rows()) ||
+ ((topRow + numRows) > mat.rows()) ||
+ ((topCol + numCols) > mat.cols()) )
+ {
+ MatrixException e("Invalid dimensions or size for Matrix(MatrixBase)");
+ GPSTK_THROW(e);
+ }
+
+ // seems ok - make the valarray and copy column by column
+ r = numRows;
+ c = numCols;
+ s = r * c;
+ v.resize(r * c);
+ size_t i, j;
+ for(i = 0; i < r; i++)
+ for(j = 0; j < c; j++)
+ (*this)(i,j) = mat(topRow + i, topCol + j);
+ }
+
+ /// STL begin
+ iterator begin() { return v.begin(); }
+ /// STL const begin
+ const_iterator begin() const { return v.begin(); }
+ /// STL end
+ iterator end() { return v.end(); }
+ /// STL const end
+ const_iterator end() const { return v.end(); }
+ /// STL front
+ value_type front() { return v.front(); }
+ /// STL const front
+ const_reference front() const { return v.front();}
+ /// STL empty
+ bool empty() const { return s == 0; }
+ /// STL size
+ size_t size() const {return s; }
+ /// STL max size
+ size_t max_size() const { return s; }
+
+ /// The number of rows in the matrix
+ inline size_t rows() const { return r; }
+ /// The number of columns in the matrix
+ inline size_t cols() const { return c; }
+ /// A reference slice of a row with a given std::slice
+ inline MatrixRowSlice<T> rowRef(size_t rowNum, const std::slice& s);
+ /// A reference slice of a row with a starting column (i.e. sub-row)
+ inline MatrixRowSlice<T> rowRef(size_t rowNum, size_t colNum = 0);
+ /// A const reference slice of a row with a given std::slice
+ inline ConstMatrixRowSlice<T> row(size_t rowNum, const std::slice& s) const;
+ /// A const reference slice of a row with a starting column (i.e. sub-row)
+ inline ConstMatrixRowSlice<T> row(size_t rowNum, size_t colNum = 0) const;
+
+ /// A reference column with a given slice
+ inline MatrixColSlice<T> colRef(size_t colNum, const std::slice& s);
+ /// A reference column with a starting row number (i.e. sub-column)
+ inline MatrixColSlice<T> colRef(size_t colNum, size_t rowNum = 0);
+ /// A const reference column with a given slice
+ inline ConstMatrixColSlice<T> col(size_t colNum, const std::slice& s) const;
+ /// A const reference column with a starting row number (i.e. sub-column)
+ inline ConstMatrixColSlice<T> col(size_t colNum, size_t rowNum = 0) const;
+
+ /// Non-const matrix operator(row,col)
+ inline T& operator() (size_t rowNum, size_t colNum)
+ { return v(rowNum + colNum * r); }
+ /// Const matrix operator(row,col)
+ inline T operator() (size_t rowNum, size_t colNum) const
+ { return v(rowNum + colNum * r); }
+ /// operator[] that returns a row slice
+ inline MatrixRowSlice<T> operator[] (size_t row)
+ { return rowRef(row); }
+ /// const operator[] that returns a const row slice
+ inline ConstMatrixRowSlice<T> operator[] (size_t rowNum) const
+ { return row(rowNum);}
+
+ /// Resizes the matrix to rows*cols.
+ /// @warning YOUR DATA MAY NOT BE RETAINED!!!
+ inline Matrix& resize(size_t rows, size_t cols);
+
+ inline Matrix& resize(size_t rows, size_t cols,
+ const T initialValue);
+
+ /**
+ * Assigns this matrix to a T* in column major order.
+ * @warning be careful that array is as large as the matrix is!
+ */
+ inline Matrix& operator=(const T* array)
+ { return assignFrom(array); }
+ /// Assigns the contents of this matrix to those in array in column
+ /// major order.
+ inline Matrix& operator=(const std::valarray<T> array)
+ { return assignFrom(array); }
+ /// Assigns all elements of the matrix to \c t.
+ inline Matrix& operator=(const T t)
+ { return assignFrom(t); }
+ /// Copies the other matrix.
+ inline Matrix& operator=(const Matrix& mat)
+ { v = mat.v; r = mat.r; c = mat.c; s = mat.s; return *this; }
+ /// Copies from any matrix.
+ template <class BaseClass>
+ inline Matrix& operator=(const ConstMatrixBase<T, BaseClass>& mat)
+ {
+ v.resize(mat.size());
+ r=mat.rows();
+ c=mat.cols();
+ s=mat.size();
+ return assignFrom(mat);
+ }
+ /// Copies from any vector.
+ template <class BaseClass>
+ inline Matrix& operator=(const ConstVectorBase<T, BaseClass>& mat)
+ { return assignFrom(mat); }
+
+ private:
+ /// the matrix stored in column major order
+ Vector<T> v;
+ size_t r, ///< the number of rows
+ c, ///< the number of columns
+ s; ///< the overall size
+ };
+
+/**
+ * An assignable slice of a matrix.
+ */
+ template <class T>
+ class MatrixSlice : public RefMatrixSliceBase<T, MatrixSlice<T> >
+ {
+ public:
+ /// default constructor
+ MatrixSlice() : m(NULL), rSlice(std::slice(0,0,0)),
+ cSlice(std::slice(0,0,0)), s(0)
+ {}
+
+ /// Makes a slice of the whole matrix.
+ MatrixSlice(Matrix<T>& mat)
+ : m(&mat), rSlice(std::slice(0, mat.rows(), 1)),
+ cSlice(std::slice(0,mat.cols(), 1)), s(mat.size())
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// Makes a partial slice of a matrix.
+ MatrixSlice(Matrix<T>& mat, const std::slice& rowSlice,
+ const std::slice& colSlice)
+ : m(&mat), rSlice(rowSlice), cSlice(colSlice),
+ s(rSlice.size() * cSlice.size())
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// Submatrix slice.
+ MatrixSlice(Matrix<T>& mat, size_t topRow, size_t topCol,
+ size_t numRows, size_t numCols)
+ : m(&mat), rSlice(std::slice(topRow, numRows, 1)),
+ cSlice(std::slice(topCol, numCols, 1)),
+ s(rSlice.size() * cSlice.size())
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// Copies from x to (*this).
+ template <class V>
+ MatrixSlice& operator=(const ConstMatrixBase<T, V>& x)
+ { return assignFrom(x); }
+
+ /// Copies from x to (*this).
+ template <class V>
+ MatrixSlice& operator=(const ConstVectorBase<T, V>& x)
+ { return assignFrom(x); }
+
+ /// Copies from x to (*this).
+ MatrixSlice& operator=(const std::valarray<T>& x)
+ { return assignFrom(x); }
+ /// Copies from x to (*this).
+ MatrixSlice& operator=(const T x)
+ { return assignFrom(x); }
+ /// Copies from x to (*this).
+ MatrixSlice& operator=(const T* x)
+ { return assignFrom(x); }
+
+ /// returns the size of this slice
+ size_t size() const { return s; }
+ /// returns the number of columns in the slice
+ size_t cols() const { return colSize(); }
+ /// returns the number of rows in the slice
+ size_t rows() const { return rowSize(); }
+ /// returns the (i,j) element of the slice.
+ T& operator() (size_t i, size_t j)
+ { return (*m)(i * rowStride() + rowStart(),
+ j * colStride() + colStart()); }
+ /// returns the (i,j) element of the slice, const version.
+ T operator() (size_t i, size_t j) const
+ { return (*m)(i * rowStride() + rowStart(),
+ j * colStride() + colStart()); }
+
+
+ /// returns the number of rows in this slice
+ size_t rowSize() const { return rSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const{ return rSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const { return rSlice.stride(); }
+ /// returns the number of columns in this slice
+ size_t colSize() const { return cSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const { return cSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const { return cSlice.stride(); }
+
+ private:
+ /// The matrix this slice refers to
+ Matrix<T>* m;
+ std::slice rSlice, ///< a row slice
+ cSlice; ///< a column slice
+ size_t s; ///< the overall size
+ };
+
+/**
+ * An unmodifiable matrix slice.
+ */
+ template <class T>
+ class ConstMatrixSlice : public ConstMatrixSliceBase<T, ConstMatrixSlice<T> >
+ {
+ public:
+ /// default constructor
+ ConstMatrixSlice(void) : m(NULL), rSlice(std::slice(0,0,0)),
+ cSlice(std::slice(0,0,0)), s(0)
+ {}
+
+ /// makes a const slice of the whole matrix
+ ConstMatrixSlice(const Matrix<T>& mat)
+ : m(&mat), rSlice(std::slice(0, mat.rows(), 1)),
+ cSlice(std::slice(0,mat.cols(), 1)), s(mat.size())
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// makes a slice given std::slices for rows and columns
+ ConstMatrixSlice(const Matrix<T>& mat, const std::slice& rowSlice,
+ const std::slice& colSlice)
+ : m(&mat), rSlice(rowSlice), cSlice(colSlice),
+ s(rSlice.size() * cSlice.size())
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// submatrix slice
+ ConstMatrixSlice(const Matrix<T>& mat, size_t topRow, size_t topCol,
+ size_t numRows, size_t numCols)
+ : m(&mat), rSlice(std::slice(topRow, numRows, 1)),
+ cSlice(std::slice(topCol, numCols, 1)),
+ s(rSlice.size() * cSlice.size())
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// the size of the slice
+ size_t size() const { return s; }
+ /// the number of columns in the slice
+ size_t cols() const { return colSize(); }
+ /// the number of rows in the slice
+ size_t rows() const { return rowSize(); }
+ /// the (i,j) element of the slice, const.
+ T operator() (size_t i, size_t j) const
+ { return (*m)(i * rowStride() + rowStart(),
+ j * colStride() + colStart()); }
+
+ /// returns the number of rows in this slice
+ size_t rowSize() const { return rSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const{ return rSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const { return rSlice.stride(); }
+ /// returns the number of columns in this slice
+ size_t colSize() const { return cSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const { return cSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const { return cSlice.stride(); }
+ private:
+ /// the matrix this slice refers to.
+ const Matrix<T>* m;
+ std::slice rSlice, ///< the row slice
+ cSlice; ///< the column slice
+ size_t s; ///< the size of the slice
+ };
+
+/**
+ * an assignable single column slice of a matrix
+ */
+ template <class T>
+ class MatrixColSlice : public RefMatrixSliceBase<T, MatrixColSlice<T> >
+ {
+ public:
+ /// default constructor
+ MatrixColSlice() : m(NULL), c(0), rSlice(std::slice(0,0,0)) {}
+ /// makes a slice of the column \c col from matrix \c mat.
+ MatrixColSlice(Matrix<T>& mat, size_t col)
+ : m(&mat), c(col), rSlice(std::slice(0,mat.rows(),1))
+ {
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+ /// makes a slice of the column from the matrix using \c s to
+ /// further slice the column.
+ MatrixColSlice(Matrix<T>& mat, size_t col, const std::slice& s)
+ : m(&mat), c(col), rSlice(s)
+ {
+ // decide if the input is reasonable
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// assigns this column to x
+ template <class V>
+ MatrixColSlice& operator=(const ConstMatrixBase<T, V>& x)
+ { return assignFrom(x); }
+
+ /// assigns this column to x
+ template <class V>
+ MatrixColSlice& operator=(const ConstVectorBase<T, V>& x)
+ { return assignFrom(x); }
+ /// assigns this column to x
+ MatrixColSlice& operator=(const std::valarray<T>& x)
+ { return assignFrom(x); }
+ /// assigns this column to x
+ MatrixColSlice& operator=(const T x)
+ { return assignFrom(x); }
+ /// assigns this column to x
+ MatrixColSlice& operator=(const T* x)
+ { return assignFrom(x); }
+
+ /// returns the i'th element of the column, non-const
+ T& operator[] (size_t i)
+ { return (*m)(rowStart() + i * rowStride(), c); }
+ /// returns the i'th element of the column, non-const
+ T& operator() (size_t i)
+ { return (*m)(rowStart() + i * rowStride(), c); }
+ /// returns the i'th element of the column, const
+ T operator[] (size_t i) const
+ { return (*m)(rowStart() + i * rowStride(), c); }
+ /// returns the i'th element of the column, const
+ T operator() (size_t i) const
+ { return (*m)(rowStart() + i * rowStride(), c); }
+
+ /// returns the (i,j) element, non-const
+ T& operator() (size_t i, size_t j)
+ { return (*m)(rowStart() + i * rowStride(), j + c); }
+ /// returns the (i,j) element, non-const
+ T operator() (size_t i, size_t j) const
+ { return (*m)(rowStart() + i * rowStride(), j + c); }
+
+ /// returns the number of rows in the slice
+ size_t rows() const {return size();}
+ /// returns the number of columns in the slice
+ size_t cols() const {return 1;}
+ /// returns the size of the slice
+ size_t size() const {return rowSize();}
+
+ /// returns the number of rows in this slice
+ size_t rowSize() const { return rSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const{ return rSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const { return rSlice.stride(); }
+ /// returns the number of columns in this slice
+ size_t colSize() const { return 1; }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const { return c; }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const { return 1; }
+
+ private:
+ /// the matrix this slice refers to.
+ Matrix<T>* m;
+ /// the column this slice is for
+ size_t c;
+ /// slice down the rows
+ std::slice rSlice;
+
+ };
+
+/**
+ * a constant slice of a single column from a matrix.
+ */
+ template <class T>
+ class ConstMatrixColSlice : public ConstMatrixSliceBase<T, ConstMatrixColSlice<T> >
+ {
+ public:
+ /// default constructor
+ ConstMatrixColSlice()
+ : m(NULL), c(0), rSlice(std::slice(0,0,0))
+ {}
+
+ /// constructor taking a slice of column \c col from the matrix.
+ ConstMatrixColSlice(const Matrix<T>& mat, size_t col)
+ : m(&mat), c(col), rSlice(std::slice(0,mat.rows(),1))
+ { matSliceCheck(mat.rows(), mat.cols()); }
+
+ /// constructor taking a slice of column \c col from the matrix,
+ /// slicing the column by \c s.
+ ConstMatrixColSlice(const Matrix<T>& mat, size_t col,
+ const std::slice& s)
+ : m(&mat), c(col), rSlice(s)
+ {
+ // decide if the input is reasonable
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// returns the i'th element of the column slice
+ T operator[] (size_t i) const
+ { return (*m)(rowStart() + i * rowStride(), c); }
+ /// returns the i'th element of the column slice
+ T operator() (size_t i) const
+ { return (*m)(rowStart() + i * rowStride(), c); }
+
+ /// returns the (i,j) element of the column slice
+ T operator() (size_t i, size_t j) const
+ { return (*m)(rowStart() + i * rowStride(), j + c); }
+
+ /// returns the size of the slice in rows
+ size_t rows() const {return rowSize();}
+ /// returns the size of the slice in columns
+ size_t cols() const {return 1;}
+ /// returns the overall size of the slice
+ size_t size() const {return rowSize();}
+
+ /// returns the number of rows in this slice
+ size_t rowSize() const { return rSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const{ return rSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const { return rSlice.stride(); }
+ /// returns the number of columns in this slice
+ size_t colSize() const { return 1; }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const { return c; }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const { return 1; }
+ private:
+ /// the matrix this slice refers to
+ const Matrix<T>* m;
+ /// the column this slice refers to
+ size_t c;
+ /// a slice down the rows
+ std::slice rSlice;
+ };
+
+/**
+ * an assignable single row slice of a matrix
+ */
+ template <class T>
+ class MatrixRowSlice : public RefMatrixSliceBase<T, MatrixRowSlice<T> >
+ {
+ public:
+ /// default constructor
+ MatrixRowSlice()
+ : m(NULL), r(0), cSlice(std::slice(0,0,0))
+ {}
+ /// makes a slice of row \c row from the matrix.
+ MatrixRowSlice(Matrix<T>& mat, size_t row)
+ : m(&mat), r(row), cSlice(std::slice(0,mat.cols(),1))
+ { matSliceCheck(mat.rows(), mat.cols()); }
+
+ /// makes a slice of row \c row from the matrix, slicing it by \c s.
+ MatrixRowSlice(Matrix<T>& mat, size_t row,
+ const std::slice& s)
+ : m(&mat), r(row), cSlice(s)
+ {
+ // decide if the input is reasonable
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// assigns this row to x.
+ template <class V>
+ MatrixRowSlice& operator=(const ConstMatrixBase<T, V>& x)
+ { return assignFrom(x); }
+ /// assigns this row to x.
+ template <class V>
+ MatrixRowSlice& operator=(const ConstVectorBase<T, V>& x)
+ { return assignFrom(x); }
+ /// assigns this row to x.
+ MatrixRowSlice& operator=(const std::valarray<T>& x)
+ { return assignFrom(x); }
+ /// assigns this row to x.
+ MatrixRowSlice& operator=(const T x)
+ { return assignFrom(x); }
+ /// assigns this row to x.
+ MatrixRowSlice& operator=(const T* x)
+ { return assignFrom(x); }
+
+ /// returns the j'th element of the slice, non-const
+ T& operator[] (size_t j)
+ { return (*m)(r, colStart() + j * colStride()); }
+ /// returns the j'th element of the slice, non-const
+ T& operator() (size_t j)
+ { return (*m)(r, colStart() + j * colStride()); }
+ /// returns the j'th element of the slice, const
+ T operator[] (size_t j) const
+ { return (*m)(r, colStart() + j * colStride()); }
+ /// returns the j'th element of the slice, const
+ T operator() (size_t j) const
+ { return (*m)(r, colStart() + j * colStride()); }
+ /// returns the (i,j) element of the slice, non-const
+ T& operator() (size_t i, size_t j)
+ { return (*m)(i + r, colStart() + j * colStride()); }
+ /// returns the (i,j) element of the slice, const
+ T operator() (size_t i, size_t j) const
+ { return (*m)(i + r, colStart() + j * colStride()); }
+
+ /// returns the number of rows in the row slice
+ size_t rows() const {return 1;}
+ /// returns the number of columns in the row slice
+ size_t cols() const {return colSize();}
+ /// returns the size of the slice
+ size_t size() const {return colSize();}
+
+ /// returns the number of rows in this slice
+ size_t rowSize() const { return 1; }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const{ return r; }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const { return 1; }
+ /// returns the number of columns in this slice
+ size_t colSize() const { return cSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const { return cSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const { return cSlice.stride(); }
+
+ private:
+ /// the matrix this slice refers to.
+ Matrix<T>* m;
+ /// the row of the slice
+ size_t r;
+ /// the column slice of the row.
+ std::slice cSlice;
+ };
+
+/**
+ * an unmodifiable row slice of a matrix.
+ */
+ template <class T>
+ class ConstMatrixRowSlice : public ConstMatrixSliceBase<T, ConstMatrixRowSlice<T> >
+ {
+ public:
+ /// default constructor
+ ConstMatrixRowSlice()
+ : m(NULL), r(0), cSlice(std::slice(0,0,0))
+ {}
+ /// makes a const row slice from the matrix
+ ConstMatrixRowSlice(const Matrix<T>& mat, size_t row)
+ : m(&mat), r(row), cSlice(std::slice(0,mat.cols(),1))
+ { matSliceCheck(mat.rows(), mat.cols()); }
+
+ /// makes a const row slice from the matrix, slicing that row by \c s.
+ ConstMatrixRowSlice(const Matrix<T>& mat, size_t row,
+ const std::slice& s)
+ : m(&mat), r(row), cSlice(s)
+ {
+ // decide if the input is reasonable
+ matSliceCheck(mat.rows(), mat.cols());
+ }
+
+ /// returns the i'th element of the slice
+ T operator[] (size_t i) const
+ { return (*m)(r, colStart() + i * colStride()); }
+ /// returns the i'th element of the slice
+ T operator() (size_t i) const
+ { return (*m)(r, colStart() + i * colStride()); }
+
+ /// returns the (i,j) element of the slice
+ T operator() (size_t i, size_t j) const
+ { return (*m)(i + r, colStart() + j * colStride()); }
+
+ /// returns the number of rows in the slice
+ size_t rows() const {return 1;}
+ /// returns the number of columns in the slice
+ size_t cols() const {return colSize();}
+ /// returns the overall size of the slice
+ size_t size() const {return colSize();}
+
+ /// returns the number of rows in this slice
+ size_t rowSize() const { return 1; }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const{ return r; }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const { return 1; }
+ /// returns the number of columns in this slice
+ size_t colSize() const { return cSlice.size(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const { return cSlice.start(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const { return cSlice.stride(); }
+ private:
+ /// the matrix this slice refers to
+ const Matrix<T>* m;
+ /// the row of the slice
+ size_t r;
+ /// the slice of the row's columns
+ std::slice cSlice;
+ };
+
+ //@}
+
+} // namespace
+
+#include "MatrixImplementation.hpp"
+#include "MatrixOperators.hpp"
+#include "MatrixFunctors.hpp"
+
+#endif
diff --git a/dev/src/MatrixBase.hpp b/dev/src/MatrixBase.hpp
new file mode 100644
index 0000000..1328798
--- /dev/null
+++ b/dev/src/MatrixBase.hpp
@@ -0,0 +1,422 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file MatrixBase.hpp
+ * Base classes (const and ref) for Matrix
+ */
+
+#ifndef GPSTK_MATRIX_BASE_HPP
+#define GPSTK_MATRIX_BASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "Vector.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup VectorGroup */
+ //@{
+
+/// @ingroup VectorGroup
+/// Thrown when there are problems with the matrix operations
+ NEW_EXCEPTION_CLASS(MatrixException, gpstk::Exception);
+/// @ingroup VectorGroup
+/// Thrown when an operation can't be performed on a singular matrix.
+ NEW_EXCEPTION_CLASS(SingularMatrixException, MatrixException);
+
+/**
+ * A matrix base class for a non-modifiable matrix. There is no operator[]
+ * for base matrix classes.
+ */
+ template <class T, class BaseClass>
+ class ConstMatrixBase
+ {
+ public:
+ /// default constructor
+ explicit ConstMatrixBase() {}
+
+ /// the rows()*cols() size of the matrix.
+ size_t size() const
+ { return static_cast<const BaseClass*>(this)->size(); }
+ /// the number of columns in the matrix
+ size_t cols() const
+ { return static_cast<const BaseClass*>(this)->cols(); }
+ /// the number of rows in the matrix
+ size_t rows() const
+ { return static_cast<const BaseClass*>(this)->rows(); }
+ /// returns a const version of the (i,j)'th element in the matrix,
+ /// valid for 0...rows()-1, 0...cols()-1.
+ T operator() (size_t i, size_t j) const
+ { return constMatrixRef(i, j); }
+
+ /// returns true if this is a square matrix (false for a null matrix).
+ inline bool isSquare() const
+ { return ((rows() == cols()) && (rows() != 0)); }
+ /// returns true if this is an upper triangular matrix.
+ inline bool isUT() const
+ {
+ if (!isSquare())
+ return false;
+ size_t i, j;
+ for (i = 1; i < rows(); i++)
+ for (j = 0; j < i; j++)
+ if ((*this)(i,j) != T(0))
+ return false;
+ return true;
+ }
+ /// returns true if this is a lower triangular matrix.
+ inline bool isLT() const
+ {
+ if (!isSquare())
+ return false;
+ size_t i, j;
+ for (i = 0; i < rows(); i++)
+ for (j = i+1; j < cols(); j++)
+ if ((*this)(i,j) != T(0))
+ return false;
+ return true;
+ }
+
+ /// returns true if this is a diagonal matrix
+ inline bool isDiagonal() const
+ {
+ if (!isSquare())
+ return false;
+ size_t i, j;
+ for (i = 0; i < rows(); i++)
+ for (j = 0; j < cols(); j++)
+ if (i != j)
+ if ((*this)(i,j) != T(0))
+ return false;
+ return true;
+ }
+ /// returns true if this is a symmetrical matrix (across the primary
+ /// diagonal)
+ inline bool isSymmetric() const
+ {
+ if (!isSquare())
+ return false;
+ size_t i,j;
+ for (i = 0; i < rows(); i++)
+ for (j = i + 1; j < cols(); j++)
+ if ((*this)(i,j) != (*this)(j,i))
+ return false;
+ return true;
+ }
+
+ /// copies out column c into a vector starting with row r
+ Vector<T> colCopy(size_t c, size_t r = 0) const
+ {
+ if ((c >= cols()) || (r >= rows()))
+ {
+ gpstk::Exception e("Invalid ConstMatrixBase index for colCopy");
+ GPSTK_THROW(e);
+ }
+ Vector<T> toReturn(rows() - r);
+ size_t i;
+ for (i = r; i < rows(); i++)
+ toReturn(i - r) = (*this)(i, c);
+ return toReturn;
+ }
+
+ /// copies out row r into a vector starting with column c
+ Vector<T> rowCopy(size_t r, size_t c = 0) const
+ {
+ if ((c >= cols()) || (r >= rows()))
+ {
+ gpstk::Exception e("Invalid ConstMatrixBase index for rowCopy");
+ GPSTK_THROW(e);
+ }
+ Vector<T> toReturn(cols() - c);
+ size_t i;
+ for (i = c; i < cols(); i++)
+ toReturn(i - c) = (*this)(r, i);
+ return toReturn;
+ }
+
+ protected:
+ /// returns the const (i,j) element from the matrix
+ inline T constMatrixRef(size_t i, size_t j) const
+ throw(gpstk::Exception)
+ {
+ const BaseClass& b = static_cast<const BaseClass&>(*this);
+#ifdef RANGECHECK
+ if ((i >= b.rows()) || (j > b.cols()))
+ {
+ gpstk::Exception e("Invalid ConstMatrixBase index for ref");
+ GPSTK_THROW(e);
+ }
+#endif
+ return b(i,j);
+ }
+ };
+
+/**
+ * A matrix base class that allows assignment of the internal matrix.
+ * There is no operator[] for base matrix classes.
+ */
+ template <class T, class BaseClass>
+ class RefMatrixBase : public ConstMatrixBase<T, BaseClass>
+ {
+ public:
+ /// default constructor
+ explicit RefMatrixBase() {}
+
+ /// returns a reference to the (i,j) element of the matrix.
+ T& operator() (size_t i, size_t j)
+ { return static_cast<BaseClass*>(this)->operator()(i,j); }
+
+ /// returns the rows()*cols() size of the matrix
+ size_t size() const
+ { return static_cast<const BaseClass*>(this)->size(); }
+ /// returns the number of columns in the matrix
+ size_t cols() const
+ { return static_cast<const BaseClass*>(this)->cols(); }
+ /// returns the number of rows in the matrix
+ size_t rows() const
+ { return static_cast<const BaseClass*>(this)->rows(); }
+ /// any value with absolute value below
+ /// RefVectorBaseHelper::zeroTolerance is set to 0.
+ BaseClass& zeroize()
+ {
+ BaseClass& me = static_cast<BaseClass&>(*this);
+ size_t i, j;
+ for (i=0; i < me.rows(); i++)
+ for (j=0; j < me.cols(); j++)
+ if (ABS(me(i,j)) < RefVectorBaseHelper::zeroTolerance)
+ me(i,j) = T(0);
+ return me;
+ }
+ /// any value in row r with absolute value below
+ /// RefVectorBaseHelper::zeroTolerance is set to 0.
+ BaseClass& zeroizeRow(size_t r)
+ {
+ BaseClass& me = static_cast<BaseClass&>(*this);
+ size_t j;
+ for (j=0; j < me.cols(); j++)
+ if (ABS(me(r,j)) < RefVectorBaseHelper::zeroTolerance)
+ me(r,j) = T(0);
+ return me;
+ }
+ /// any value in column c with absolute value below
+ /// RefVectorBaseHelper::zeroTolerance is set to 0.
+ BaseClass& zeroizeCol(size_t c)
+ {
+ BaseClass& me = static_cast<BaseClass&>(*this);
+ size_t i;
+ for (i=0; i < me.rows(); i++)
+ if (ABS(me(i,c)) < RefVectorBaseHelper::zeroTolerance)
+ me(i,c) = T(0);
+ return me;
+ }
+
+#define MatBaseArrayAssignMacro(func) \
+ BaseClass& me = static_cast<BaseClass&>(*this); \
+ size_t i,j; \
+ for (i=0; i < me.rows(); i++) \
+ for (j=0; j < me.cols(); j++) \
+ me(i,j) func x(i,j); \
+ return me;
+
+#define MatBaseArrayAssignMacroVecSource(func) \
+ BaseClass& me = static_cast<BaseClass&>(*this); \
+ size_t i,j; \
+ for (i=0; i < me.rows(); i++) \
+ for (j=0; j < me.cols(); j++) \
+ me(i,j) func x[i*me.cols()+j]; \
+ return me;
+
+#define MatBaseAtomicAssignMacro(func) \
+ BaseClass& me = static_cast<BaseClass&>(*this); \
+ size_t i,j; \
+ for (i=0; i < me.rows(); i++) \
+ for (j=0; j < me.cols(); j++) \
+ me(i,j) func x; \
+ return me;
+
+#define MatBaseNewAssignOperator(funcName, op) \
+/** performs op on each element of this matrix with each element of x */ \
+ template <class E> BaseClass& funcName(const ConstMatrixBase<T, E>& x) \
+ { MatBaseArrayAssignMacro(op); } \
+/** performs op on each element of this matrix with each element of x */ \
+ template <class E> BaseClass& funcName(const ConstVectorBase<T, E>& x) \
+ { MatBaseArrayAssignMacroVecSource(op); } \
+/** performs op on each element of this matrix with each element of x */ \
+ BaseClass& funcName(const std::valarray<T>& x) \
+ { MatBaseArrayAssignMacroVecSource(op); } \
+/** performs op on each element of this matrix with each element of x */ \
+ BaseClass& funcName(const T* x) \
+ { MatBaseArrayAssignMacroVecSource(op); } \
+/** performs op on each element of this matrix with x */ \
+ BaseClass& funcName(T x) \
+ { MatBaseAtomicAssignMacro(op); }
+
+ /// remember that operator= isn't inherited. use assignFrom in
+ /// derived classes' copy constructors and operator=.
+ MatBaseNewAssignOperator(assignFrom, =);
+ MatBaseNewAssignOperator(operator+=, +=);
+ MatBaseNewAssignOperator(operator-=, -=);
+
+ /// multiplies each element in this matrix by x.
+ BaseClass& operator*=(const T x)
+ {
+ MatBaseAtomicAssignMacro(*=);
+ }
+ /// divides each element in this matrix by x.
+ BaseClass& operator/=(const T x)
+ {
+ MatBaseAtomicAssignMacro(/=);
+ }
+ /// unary minus: multiplies each element in this matrix by -1.
+ BaseClass& operator-()
+ {
+ const T x=T(-1);
+ MatBaseAtomicAssignMacro(*=);
+ }
+
+ /// swaps rows row1 and row2 in this matrix.
+ BaseClass& swapRows(size_t row1, size_t row2)
+ {
+ BaseClass& me = static_cast<BaseClass&>(*this);
+#ifdef RANGECHECK
+ if ( (row1 >= me.rows()) || (row2 >= me.rows()) )
+ {
+ MatrixException e("Invalid rows for swapRows");
+ GPSTK_THROW(e);
+ }
+#endif
+ size_t i;
+ T temp;
+ for (i = 0; i < me.cols(); i++)
+ {
+ temp = me(row1, i);
+ me(row1,i) = me(row2,i);
+ me(row2,i) = temp;
+ }
+ return me;
+ }
+
+ /// swaps columns col1 and col2 in this matrix.
+ BaseClass& swapCols(size_t col1, size_t col2)
+ {
+ BaseClass& me = static_cast<BaseClass&>(*this);
+#ifdef RANGECHECK
+ if ( (col1 >= me.cols()) || (col2 >= me.cols()) )
+ {
+ MatrixException e("Invalid columns for swapCols");
+ GPSTK_THROW(e);
+ }
+#endif
+ size_t i;
+ T temp;
+ for (i = 0; i < me.rows(); i++)
+ {
+ temp = me(i, col1);
+ me(i, col1) = me(i, col2);
+ me(i, col2) = temp;
+ }
+ return me;
+ }
+ };
+
+/**
+ * Base class for defining a slice of a matrix.
+ */
+ template <class T, class BaseClass>
+ class MatrixSliceBase
+ {
+ /// returns the number of rows in this slice
+ size_t rowSize() const
+ { return static_cast<const BaseClass*>(this)->rowSize(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t rowStart() const
+ { return static_cast<const BaseClass*>(this)->rowStart(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t rowStride() const
+ { return static_cast<const BaseClass*>(this)->rowStride(); }
+ /// returns the number of columns in this slice
+ size_t colSize() const
+ { return static_cast<const BaseClass*>(this)->colSize(); }
+ /// returns the starting row in the base matrix of this slice
+ size_t colStart() const
+ { return static_cast<const BaseClass*>(this)->colStart(); }
+ /// returns the number of elements between the i'th and i+1'th row
+ size_t colStride() const
+ { return static_cast<const BaseClass*>(this)->colStride(); }
+ protected:
+ /// checks this slice against the source matrix row and column size
+ /// to see if it's a valid slice.
+ inline void matSliceCheck(size_t sourceRowSize,
+ size_t sourceColSize) const
+ throw(MatrixException)
+ {
+#ifdef RANGECHECK
+ if (rowSize() > 0)
+ {
+ if ( (rowStart() >= sourceRowSize) ||
+ ((rowStart() + (rowSize()-1) * rowStride()) >= sourceRowSize))
+ {
+ MatrixException e("Invalid row range for slice");
+ GPSTK_THROW(e);
+ }
+ }
+ if (colSize() > 0)
+ {
+ if ( (colStart() >= sourceColSize) ||
+ ((colStart() + (colSize()-1) * colStride()) >= sourceColSize))
+ {
+ MatrixException e("Invalid col range for slice");
+ GPSTK_THROW(e);
+ }
+ }
+#endif
+ }
+ };
+
+/// Base class for an unmodifiable matrix slice
+ template <class T, class BaseClass>
+ class ConstMatrixSliceBase : public MatrixSliceBase<T, BaseClass>,
+ public ConstMatrixBase<T, BaseClass>
+ {
+ public:
+ explicit ConstMatrixSliceBase() {}
+ };
+
+/// Base class for a modifiable matrix slice
+ template <class T, class BaseClass>
+ class RefMatrixSliceBase : public MatrixSliceBase<T, BaseClass>,
+ public RefMatrixBase<T, BaseClass>
+ {
+ public:
+ explicit RefMatrixSliceBase() {}
+ };
+
+ //@}
+
+} // namespace
+
+#include "MatrixBaseOperators.hpp"
+
+#endif
diff --git a/dev/src/MatrixBaseOperators.hpp b/dev/src/MatrixBaseOperators.hpp
new file mode 100644
index 0000000..776a11a
--- /dev/null
+++ b/dev/src/MatrixBaseOperators.hpp
@@ -0,0 +1,171 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file MatrixBaseOperators.hpp
+ * Matrix operators for the base class
+ */
+
+#ifndef GPSTK_MATRIX_BASE_OPERATORS_HPP
+#define GPSTK_MATRIX_BASE_OPERATORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <fstream> // for copyfmt
+#include <iomanip>
+
+namespace gpstk
+{
+
+ /** @addtogroup VectorGroup */
+ //@{
+
+/// Output operator for ConstMatrixBase classes
+ template <class T, class E>
+ std::ostream& operator<<(std::ostream& s, const ConstMatrixBase<T, E>& a)
+ {
+ size_t i, j;
+ std::ofstream savefmt;
+ savefmt.copyfmt(s);
+ for (i=0; i<a.rows(); i++)
+ {
+ for (j=0; j< a.cols(); j++) {
+ s << std::setw(1) << ' ';
+ s.copyfmt(savefmt);
+ s << a(i,j);
+ }
+ if(i < a.rows()-1) s << std::endl;
+ }
+ return s;
+ }
+
+/**
+ * Turns the square RefMatrixBase matrix into an identity matrix
+ */
+ template <class T, class BaseClass>
+ BaseClass& ident(RefMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ BaseClass& me = static_cast<BaseClass&>(m);
+ if ( (me.rows() != me.cols()) || (me.cols() < 1) )
+ {
+ MatrixException e("invalid matrix dimensions for ident()");
+ GPSTK_THROW(e);
+ }
+ m.assignFrom(T(0));
+ size_t i;
+ for (i = 0; i < me.rows(); i++)
+ me(i,i) = T(1);
+ return me;
+ }
+
+/**
+ * Returns the trace of the matrix
+ */
+ template <class T, class BaseClass>
+ inline T trace(const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ if ((!m.isSquare()) || (m.rows() == 0))
+ {
+ MatrixException e("Invalid matrix for trace()");
+ GPSTK_THROW(e);
+ }
+ size_t index = 0;
+ T answer = m(index,index);
+ for (index = 1; index < m.rows(); index++)
+ answer += m(index,index);
+ return answer;
+ }
+
+/**
+ * returns the frobenius norm or RSS of the matrix
+ */
+ template <class T, class BaseClass>
+ inline T normF(const ConstMatrixBase<T, BaseClass>& m)
+ {
+ T sum(0);
+ size_t i,j;
+ for (i = 0; i < m.rows(); i++)
+ for (j = 0; j < m.cols(); j++)
+ sum += m(i,j) * m(i,j);
+ return SQRT(sum);
+ }
+
+/**
+ * returns the column sum norm of the matrix
+ */
+ template <class T, class BaseClass>
+ inline T normCol(const ConstMatrixBase<T, BaseClass>& m)
+ {
+ T sum(0), tempSum;
+ size_t i,j;
+ for (i = 0; i < m.rows(); i++)
+ {
+ tempSum = T(0);
+ for (j = 0; j < m.cols(); j++)
+ tempSum += ABS(m(i,j));
+ if (tempSum > sum)
+ sum = tempSum;
+ }
+ return sum;
+ }
+
+/**
+ * Uses the sum of minor determinates to calculate the whole det.
+ * Slow for large matricies, but it works.
+ */
+ template <class T, class BaseClass>
+ inline T slowDet(const ConstMatrixBase<T, BaseClass>& l)
+ {
+ if (!l.isSquare() || (l.rows() <= 1))
+ {
+ MatrixException e("Invalid matrix for det()");
+ GPSTK_THROW(e);
+ }
+ // go recursion!
+ if (l.rows() == 2)
+ return l(0,0)*l(1,1) - l(0,1)*l(1,0);
+ else
+ {
+ // use v[0,0] * det(minor matrix(0,0)) +
+ // v[0,1] * det(minor matrix(0,1)) + ...
+ size_t i;
+ int sign;
+ T det = 0;
+ for (i = 0; i < l.rows(); i++)
+ {
+ sign = (i % 2) ? -1 : 1;
+ if (l(0,i) != 0)
+ det += sign * l(0,i) * slowDet(minorMatrix(l,0,i));
+ }
+ return det;
+ }
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/MatrixFunctors.hpp b/dev/src/MatrixFunctors.hpp
new file mode 100644
index 0000000..6ef5204
--- /dev/null
+++ b/dev/src/MatrixFunctors.hpp
@@ -0,0 +1,762 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file MatrixFunctors.hpp
+ * Matrix function operators (SVD, LUD, etc)
+ */
+
+#ifndef GPSTK_MATRIX_FUNCTORS_HPP
+#define GPSTK_MATRIX_FUNCTORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <cmath>
+
+namespace gpstk
+{
+
+ /** @addtogroup VectorGroup */
+ //@{
+
+/**
+ * Class SVD: A function object for the singular value decomposition of a matrix.
+ * Given a matrix A [m,n], the SVD of A = U*S*transpose(V), where U is [m,m],
+ * V is [n,n], and S is [m,n] (like A). Both U and V are unitary [meaning
+ * transpose(U)*U = unity = transpose(V)*V] and the columns of U[resp,V]
+ * are orthonormal vectors spanning the space A*transpose(A) [transpose(A)*A].
+ * Note that U*transpose(U)=1 and V*transpose(V)=1 are not true in general,
+ * but may be. S[m,n] is 'diagonal' in the sense that only diagonal elements
+ * are non-zero (even when m != n); the min(m,n) diagonal elements are called
+ * the singular values of A, often referred to as S[i]. The singular values
+ * may be sorted, as the SVD is invariant under a consistent re-ordering of
+ * {singular values / columns of U / columns of V}.
+ * The condition number of A is the ratio
+ * cn = fabs(largest S[i])/fabs(smallest S[i]).
+ * Note that inverse(A) = V*inverse(S)*UT where inverse(S) is diagonal with
+ * elements equal to the inverse of elements of S, and with dimension [n,m].
+ * The matrix A is non-singular matrix if and only if all of its singular
+ * values are non-zero. If some of the singular values are zero, the
+ * 'generalized inverse' of A may be formed by editing the singular values
+ * in this way: if the ratio of S[i] to S[0] (where S[0] is the largest
+ * singular value) is bigger than some tolerance (1.e-7 is good), then 1/S[i]
+ * is set to zero in the inverse. In this way the 'generalized inverse' of
+ * ANY matrix is guaranteed to exist.
+ * The SVD algorithm never fails.
+ *
+ * Ref: Bulirsch and Stoer, "Introduction to Numerical Analysis,"
+ * NY, Springer-Verlag, 1980.
+ *
+ * @code
+ * Matrix<double> m(and is assigned some value);
+ * SVD<double> d;
+ * d(m);
+ * cout << d.U << endl << d.V << endl << d.S << endl;
+ * @endcode
+ */
+ template <class T>
+ class SVD
+ {
+ public:
+ SVD() : iterationMax(30) {}
+
+ /**
+ * Singular Value Decomposition
+ */
+ template <class BaseClass>
+ bool operator() (const ConstMatrixBase<T, BaseClass>& mat)
+ throw (MatrixException)
+ {
+ bool flip=false;
+ U = mat;
+ if(mat.rows() > mat.cols()) {
+ flip = true;
+ U = transpose(mat);
+ }
+
+ size_t n(U.cols()), m(U.rows());
+ size_t i, j, k, l, nm, jj, kk;
+ T anorm(0), scale(0), g(0), s, f, h, c, x, y, z;
+
+ V = Matrix<T>(n, n, T(0));
+ S = Vector<T>(n, T(1));
+ Vector<T> B(n, T(1));
+
+ for (i = 0; i < n; i++) {
+ l = i + 1;
+ B[i] = scale * g;
+ g = s = scale = T(0);
+ if (i < m) {
+ for(k = i; k < m; k++) scale += ABS(U(k, i));
+ if (scale) {
+ for(k = i; k < m; k++) {
+ U(k, i) /= scale;
+ s += U(k, i) * U(k, i);
+ }
+ f = U(i, i);
+ g = -SIGN(SQRT(s),f);
+ h = f * g - s;
+ U(i,i) = f - g;
+ for(j = l; j < n; j++) {
+ for(s = T(0), k = i; k < m; k++) s += U(k, i) * U(k, j);
+ f = s / h;
+ for(k = i; k < m; k++) U(k, j) += f * U(k, i);
+ }
+ for(k = i; k < m; k++) U(k, i) *= scale;
+ } // if (scale)
+ } // if (i < m)
+ S[i] = scale * g;
+ g = s = scale = T(0);
+ if ( (i < m) && (i != n-1) ) {
+ for(k = l; k < n; k++) scale += ABS(U(i, k));
+ if (scale) {
+ for(k = l; k < n; k++) {
+ U(i, k) /= scale;
+ s += U(i, k) * U(i, k);
+ }
+ f = U(i, l);
+ g = -SIGN(SQRT(s),f);
+ h = f * g - s;
+ U(i, l) = f - g;
+ for(k = l; k < n; k++) B[k] = U(i, k) / h;
+ for(j = l; j < m; j++) {
+ for(s = T(0), k = l; k < n; k++) s += U(j, k) * U(i, k);
+ for(k = l; k < n; k++) U(j, k) += s * B[k];
+ }
+ for(k = l; k < n; k++) U(i, k) *= scale;
+ }
+ }
+ if(ABS(S[i])+ABS(B[i]) > anorm) anorm=ABS(S[i])+ABS(B[i]);
+ }
+ for(i = n - 1; ; i--) {
+ if (i < n - 1) {
+ if (g) {
+ for(j = l; j < n; j++) V(j, i) = (U(i, j) / U(i, l)) / g;
+ for(j = l; j < n; j++) {
+ for(s = T(0), k = l; k < n; k++) s += U(i, k) * V(k, j);
+ for(k = l; k < n; k++) V(k, j) += s * V(k, i);
+ }
+ }
+ for(j = l; j < n; j++) V(j, i) = V(i, j) = T(0);
+ }
+ V(i,i) =T(1);
+ g = B[i];
+ l = i;
+ if(i==0) break;
+ }
+ for(i = ( (m-1 < n-1) ? m-1 : n-1); ; i--) {
+ l = i+1;
+ g = S[i];
+ for(j=l; j<n; j++) U(i, j) = T(0);
+ if (g) {
+ g = T(1) / g;
+ for(j = l; j < n; j++) {
+ for(s = T(0), k = l; k < m; k++) s += U(k,i) * U(k,j);
+ f = (s / U(i,i)) * g;
+ for(k=i; k<m; k++) U(k,j) += f * U(k,i);
+ }
+ for(j = i; j < m; j++) U(j,i) *= g;
+ }
+ else {
+ for(j=i; j<m; j++) U(j,i) = T(0);
+ }
+ ++U(i,i);
+ if(i==0) break;
+ }
+ for(k = n - 1; ; k--) {
+ size_t its;
+ for(its = 1; its <= iterationMax; its++) {
+ bool flag = true;
+ for(l = k; ; l--) {
+ nm = l - 1;
+ if ((ABS(B[l])+anorm) == anorm) {
+ flag = false;
+ break;
+ }
+ if (l == 0) { // should never happen
+ MatrixException e("SVD algorithm has nm==-1");
+ GPSTK_THROW(e);
+ }
+ if ((ABS(S[nm])+anorm) == anorm) break;
+ if(l == 0) break; // since l is unsigned...
+ }
+ if (flag) {
+ c = T(0);
+ s = T(1);
+ for(i = l; i <= k; i++) {
+ f = s * B[i];
+ B[i] = c * B[i];
+ if ((ABS(f) + anorm) == anorm) break;
+ g = S[i];
+ h = RSS(f,g);
+ S[i] = h;
+ h = T(1) / h;
+ c = g * h;
+ s = -f * h;
+ for(j = 0; j < m; j++) {
+ y = U(j, nm);
+ z = U(j,i);
+ U(j, nm) = y * c + z * s;
+ U(j,i) = z * c - y * s;
+ }
+ }
+ }
+ z = S[k];
+ if (l == k) {
+ if (z < T(0)) {
+ S[k] = -z;
+ for(j = 0; j < n; j++) V(j,k) = -V(j,k);
+ }
+ break;
+ }
+
+ if (its == iterationMax) {
+ MatrixException e("SVD algorithm did not converge");
+ GPSTK_THROW(e);
+ }
+ x = S[l];
+ if(k == 0) { // should never happen
+ MatrixException e("SVD algorithm has k==0");
+ GPSTK_THROW(e);
+ }
+ nm = k - 1;
+ y = S[nm];
+ g = B[nm];
+ h = B[k];
+ f = ( (y-z) * (y+z) + (g-h) * (g+h)) / (T(2) * h * y);
+ g = RSS(f,T(1));
+ f = ( (x-z) * (x+z) + h * ((y/(f + SIGN(g,f))) - h)) / x;
+ c = s = 1.0;
+ for(j = l; j <= nm; j++) {
+ i = j + 1;
+ g = B[i];
+ y = S[i];
+ h = s * g;
+ g = c * g;
+ z = RSS(f, h);
+ B[j] = z;
+ c = f / z;
+ s = h / z;
+ f = x * c + g * s;
+ g = g * c - x * s;
+ h = y * s;
+ y *= c;
+ for(jj = 0; jj < n; jj++) {
+ x = V(jj, j);
+ z = V(jj, i);
+ V(jj, j) = x * c + z * s;
+ V(jj, i) = z * c - x * s;
+ }
+ z = RSS(f, h);
+ S[j] = z;
+ if (z) {
+ z = T(1) / z;
+ c = f * z;
+ s = h * z;
+ }
+ f = c * g + s * y;
+ x = c * y - s * g;
+ for(jj = 0; jj < m; jj++) {
+ y = U(jj, j);
+ z = U(jj, i);
+ U(jj, j) = y * c + z * s;
+ U(jj, i) = z * c - y * s;
+ }
+ }
+ B[l] = T(0);
+ B[k] = f;
+ S[k] = x;
+ }
+ if(k==0) break; // since k is unsigned...
+ }
+ // if U is not square - last n-m columns of U are zero - remove
+ if(U.cols() > U.rows()) {
+ for(i=1; i<S.size(); i++) { // sort in descending order
+ T sv=S[i],svj;
+ kk = i-1;
+ while(kk >= 0) {
+ svj = S[kk];
+ if(sv < svj) break;
+ S[kk+1] = svj;
+ // exchange columns kk and kk+1 in U and V
+ U.swapCols(kk,kk+1);
+ V.swapCols(kk,kk+1);
+ kk = kk - 1;
+ }
+ S[kk+1] = sv;
+ }
+ Matrix<T> Temp(U);
+ U = Matrix<T>(Temp,0,0,Temp.rows(),Temp.rows());
+ S.resize(Temp.rows());
+ }
+
+ if(flip) {
+ Matrix<T> Temp(U);
+ U = V;
+ V = Temp;
+ }
+
+ return true;
+
+ } // end SVD::operator() - the SVD algorithm
+
+ /** Backsubstitution using SVD.
+ * Solve A*x=b for vector x where A [mxn] has been SVD'ed and is given by
+ * U,W,V (*this); that is A[mxn] = U[mxm]*W[mxn]*VT[nxn]. b has dimension m,
+ * x dimension n. Singular values are NOT edited, except that if s.v. == 0,
+ * 1/0 is replaced by 0. Result is returned as b.
+ */
+ template <class BaseClass>
+ void backSub(RefVectorBase<T, BaseClass>& b) const
+ throw(MatrixException)
+ {
+ if(b.size() != U.rows())
+ {
+ MatrixException e("SVD::BackSub called with unequal dimensions");
+ GPSTK_THROW(e);
+ }
+
+ size_t i, n=V.cols(), m=U.rows();
+ Matrix<T> W(n,m,T(0)); // build the 'inverse singular values' matrix
+ for(i=0; i<S.size(); i++) W(i,i)=(S(i)==T(0)?T(0):T(1)/S(i));
+ Vector<T> Y;
+ Y = V*W*transpose(U)*b;
+ //b = Y;
+ // this fails because operator= is not defined for the base class
+ // (op= not inherited); use assignFrom instead
+ b.assignFrom(Y);
+
+ } // end SVD::backSub
+
+ /// sort singular values
+ void sort(bool descending)
+ throw(MatrixException)
+ {
+ size_t i;
+ int j; // j must be allowed to go negative
+ for(i=1; i<S.size(); i++) {
+ T sv=S(i),svj;
+ j = i - 1;
+ while(j >= 0) {
+ svj = S(j);
+ if(descending && sv < svj) break;
+ if(!descending && sv > svj) break;
+ S(j+1) = svj;
+ // exchange columns j and j+1 in U and V
+ U.swapCols(j,j+1);
+ V.swapCols(j,j+1);
+ j = j - 1;
+ }
+ S(j+1) = sv;
+ }
+ } // end SVD::sort
+
+ /// compute determinant from SVD
+ inline T det(void)
+ throw(MatrixException)
+ {
+ T d(1);
+ for(size_t i=0; i<S.size(); i++) d *= S(i);
+ return d;
+ } // end SVD::det
+
+ /// Matrix U
+ Matrix<T> U;
+ /// Vector of singular values
+ Vector<T> S;
+ /// Matrix V (not transpose(V))
+ Matrix<T> V;
+
+ private:
+ const size_t iterationMax;
+
+ T SIGN(T a, T b)
+ {
+ if (b >= T(0))
+ return ABS(a);
+ else
+ return -ABS(a);
+ }
+
+ }; // end class SVD
+
+/**
+ * Performs the lower/upper triangular decomposition of a matrix PA = LU.
+ * The results are put into the matricies L, U, and P (pivot), and sign
+ * (representing even (positive) or odd (negative) row swaps.
+ */
+ template <class T>
+ class LUDecomp
+ {
+ public:
+ LUDecomp() {} // why is there no constructor from ConstMatrixBase?
+
+ /// Does the decomposition.
+ template <class BaseClass>
+ void operator() (const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ if(!m.isSquare() || m.rows()<=1) {
+ MatrixException e("LUDecomp requires a square, non-trivial matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t N=m.rows(),i,j,k,n,imax;
+ T big,t,d;
+ Vector<T> V(N,T(0));
+
+ LU = m;
+ Pivot = Vector<int>(N);
+ parity = 1;
+
+ for(i=0; i<N; i++) { // get scale of each row
+ big = T(0);
+ for(j=0; j<N; j++) {
+ t = ABS(LU(i,j));
+ if(t > big) big=t;
+ }
+ if(big <= T(0)) { // m is singular
+ //LU *= T(0);
+ SingularMatrixException e("singular matrix!");
+ GPSTK_THROW(e);
+ }
+ V(i) = T(1)/big;
+ }
+
+ for(j=0; j<N; j++) { // loop over columns
+ for(i=0; i<j; i++) {
+ t = LU(i,j);
+ for(k=0; k<i; k++) t -= LU(i,k)*LU(k,j);
+ LU(i,j) = t;
+ }
+ big = T(0); // find largest pivot
+ for(i=j; i<N; i++) {
+ t = LU(i,j);
+ for(k=0; k<j; k++) t -= LU(i,k)*LU(k,j);
+ LU(i,j) = t;
+ d = V(i)*ABS(t);
+ if(d >= big) {
+ big = d;
+ imax = i;
+ }
+ }
+ if(j != imax) {
+ LU.swapRows(imax,j);
+ V(imax) = V(j);
+ parity = -parity;
+ }
+ Pivot(j) = imax;
+
+ t = LU(j,j);
+ if(t == 0.0) { // m is singular
+ //LU *= T(0);
+ SingularMatrixException e("singular matrix!");
+ GPSTK_THROW(e);
+ }
+ if(j != N-1) {
+ d = T(1)/t;
+ for(i=j+1; i<N; i++) LU(i,j) *= d;
+ }
+ }
+ } // end LUDecomp()
+
+ /** Compute inverse(m)*v, where *this is LUD(m), via back substitution
+ * Solution overwrites input Vector v
+ */
+ template <class BaseClass2>
+ void backSub(RefVectorBase<T, BaseClass2>& v) const
+ throw (MatrixException)
+ {
+ if(LU.rows() != v.size()) {
+ MatrixException e("Vector size does not match dimension of LUDecomp");
+ GPSTK_THROW(e);
+ }
+
+ bool first=true;
+ size_t N=LU.rows(),i,j,ii;
+ T sum;
+
+ // un-pivot
+ for(i=0; i<N; i++) {
+ sum = v(Pivot(i));
+ v(Pivot(i)) = v(i);
+ if(first && sum != T(0)) {
+ ii = i;
+ first = false;
+ }
+ else for(j=ii; j<i; j++) sum -= LU(i,j)*v(j);
+ v(i) = sum;
+ }
+ // back substitution
+ for(i=N-1; ; i--) {
+ sum = v(i);
+ for(j=i+1; j<N; j++) sum -= LU(i,j)*v(j);
+ v(i) = sum / LU(i,i);
+ if(i == 0) break; // b/c i is unsigned
+ }
+ } // end LUD::backSub
+
+ /// compute determinant from LUD
+ inline T det(void)
+ throw(MatrixException)
+ {
+ T d(parity);
+ for(size_t i=0; i<LU.rows(); i++) d *= LU(i,i);
+ return d;
+ }
+
+ /** The matrix in LU-decomposed form: L and U together;
+ * all diagonal elements of L are implied 1.
+ */
+ Matrix<T> LU;
+ /// The pivot array
+ Vector<int> Pivot;
+ /// Parity
+ int parity;
+
+ }; // end class LUDecomp
+
+
+ /**
+ * Compute cholesky decomposition (upper triangular square root) of the
+ * given matrix, which must be positive definite. Positive definite <=>
+ * positive eigenvalues. Note that the UT sqrt is not unique, and that
+ * m = U*transpose(U) (where U=UTsqrt(m)) only if m is symmetric.
+ */
+ template <class T>
+ class Cholesky
+ {
+ public:
+ Cholesky() {}
+
+ /// @todo potential complex number problem!
+ template <class BaseClass>
+ void operator() (const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ if(!m.isSquare()) {
+ MatrixException e("Cholesky requires a square matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t N=m.rows(),i,j,k;
+ double d;
+ Matrix<T> P(m);
+ U = Matrix<T>(m.rows(),m.cols(),T(0));
+
+ for(j=N-1; ; j--) {
+ if(P(j,j) <= T(0)) {
+ MatrixException e("Cholesky fails - eigenvalue <= 0");
+ GPSTK_THROW(e);
+ }
+ U(j,j) = SQRT(P(j,j));
+ d = T(1)/U(j,j);
+ if(j > 0) {
+ for(k=0; k<j; k++) U(k,j)=d*P(k,j);
+ for(k=0; k<j; k++)
+ for(i=0; i<=k; i++)
+ P(i,k) -= U(k,j)*U(i,j);
+ }
+ if(j==0) break; // since j is unsigned
+ }
+
+ // L does not = transpose(U);
+ P = m;
+ L = Matrix<T>(m.rows(),m.cols(),T(0));
+ for(j=0; j<=N-1; j++) {
+ if(P(j,j) <= T(0)) {
+ MatrixException e("Cholesky fails - eigenvalue <= 0");
+ GPSTK_THROW(e);
+ }
+ L(j,j) = SQRT(P(j,j));
+ d = T(1)/L(j,j);
+ if(j < N-1) {
+ for(k=j+1; k<N; k++) L(k,j)=d*P(k,j);
+ for(k=j+1; k<N; k++) {
+ for(i=k; i<N; i++) {
+ P(i,k) -= L(i,j)*L(k,j);
+ }
+ }
+ }
+ }
+
+ } // end Cholesky::operator()
+
+ /* Use backsubstition to solve the equation A*x=b where *this Cholesky
+ * has been applied to A, i.e. A = L*transpose(L). The algorithm is in
+ * two steps: since A*x=L*LT*x=b, first solve L*y=b for y, then solve
+ * LT*x=y for x. x is returned as b.
+ */
+ template <class BaseClass2>
+ void backSub(RefVectorBase<T, BaseClass2>& b) const
+ throw (MatrixException)
+ {
+ if (L.rows() != b.size())
+ {
+ MatrixException e("Vector size does not match dimension of Cholesky");
+ GPSTK_THROW(e);
+ }
+ size_t i,j,N=L.rows();
+
+ Vector<T> y(b.size());
+ y(0) = b(0)/L(0,0);
+ for(i=1; i<N; i++) {
+ y(i) = b(i);
+ for(j=0; j<i; j++) y(i)-=L(i,j)*y(j);
+ y(i) /= L(i,i);
+ }
+ // b is now x
+ b(N-1) = y(N-1)/L(N-1,N-1);
+ for(i=N-1; ; i--) {
+ b(i) = y(i);
+ for(j=i+1; j<N; j++) b(i)-=L(j,i)*b(j);
+ b(i) /= L(i,i);
+ if(i==0) break;
+ }
+
+ } // end Cholesky::backSub
+
+ /// Lower triangular and Upper triangular Cholesky decompositions
+ Matrix<T> L, U;
+
+ }; // end class Cholesky
+
+ /**
+ * Compute the Cholesky decomposition using the Cholesky-Crout algorithm,
+ * which is very fast; if A is the given matrix we will get L, where A = L*LT.
+ * A must be symetric and positive definite. This is the usual case when
+ * A comes from applying a Least Mean-Square (LMS) or Weighted Least
+ * Mean-Square (WLMS) method.
+ */
+ template <class T>
+ class CholeskyCrout : public Cholesky<T>
+ {
+ public:
+ template <class BaseClass>
+ void operator() (const ConstMatrixBase<T, BaseClass>& m) throw (MatrixException)
+ {
+ if(!m.isSquare()) {
+ MatrixException e("CholeskyCrout requires a square matrix");
+ GPSTK_THROW(e);
+ }
+
+ int N = m.rows(), i, j, k;
+ double sum;
+ (*this).L = Matrix<T>(N,N, 0.0);
+
+ for(j=0; j<N; j++) {
+ sum = m(j,j);
+ for(k=0; k<j; k++ ) sum -= (*this).L(j,k)*(*this).L(j,k);
+ if(sum > 0.0) {
+ (*this).L(j,j) = SQRT(sum);
+ } else {
+ MatrixException e("CholeskyCrout fails - eigenvalue <= 0");
+ GPSTK_THROW(e);
+ }
+
+ for(i=j+1; i<N; i++){
+ sum = m(i,j);
+ for(k=0; k<j; k++) sum -= (*this).L(i,k)*(*this).L(j,k);
+ (*this).L(i,j) = sum/(*this).L(j,j);
+ }
+ }
+
+ (*this).U = transpose((*this).L);
+ }
+
+ }; // end class CholeskyCrout
+
+
+
+/**
+ * The Householder transformation is simply an orthogonal transformation
+ * designed to make the elements below the diagonal zero. It applies to any
+ * matrix.
+ */
+ template <class T>
+ class Householder
+ {
+ public:
+ Householder() {}
+
+ /** Explicitly perform the transformation, one column at a time, without
+ * actually constructing the transformation matrix. Let y be column k of the
+ * input matrix. y can be zeroed below the diagonal as follows:
+ * let sum=sign(y(k))*sqrt(y*y), and define vector u(k)=y(k)+sum,
+ * u(j)=y(j) (j.gt.k). This defines the transformation matrix as (1-bu*u),
+ * with b=2/u*u=1/sum*u(k). Redefine y(k)=u(k) and apply the transformation to
+ * elements of the input matrix below and to the right of the (k,k) element.
+ * This algorithm for each column k=0,n-1 in turn is equivalent to a single
+ * orthogonal transformation which triangularizes the matrix.
+ */
+ template <class BaseClass>
+ inline void operator() (const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ size_t i,j;
+ A = m;
+ Matrix<T> P(A.rows(), A.rows());
+ Matrix<T> colVector(A.rows(), 1),
+ rowVector(1, A.rows());
+ Vector<T> v(A.rows());
+ for (j = 0; (j < A.cols()) && (j < (A.rows() - 1)); j++)
+ {
+ colVector.resize(A.rows() - j, 1);
+ rowVector.resize(1, A.rows() - j);
+
+ // for each column c, form the vector v =
+ // [c[0] + (sign(c[0]))abs(c), c[1], c[2], ...]
+ // then normalize v
+ v = A.colCopy(j, j);
+ v[0] += ((v[0] >= T(0)) ? T(1) : T(-1)) * norm(v);
+ v = normalize(v);
+ // now make matrix P = 1 - 2* columnVector(v) * rowVector(v)
+ // (makes the lower right of P =
+ // 1 - 2* columnVector(v) * rowVector(v)
+ // and the remaining parts I)
+ // and perform A = P * A
+ colVector = v;
+ rowVector = v;
+ MatrixSlice<T> Pslice(P, j, j, P.rows() - j, P.cols() - j);
+ ident(P);
+ //Pslice -= T(2) * colVector * rowVector;
+ Pslice = T(2) * colVector * rowVector - Pslice;
+ MatrixSlice<T> Aslice(A, j, j, A.rows() - j, A.cols() - j);
+ Aslice = Pslice * Aslice;
+ // set the elements below the diagonal of this column to 0
+ for(i = j+1; i < A.rows(); i++)
+ A(i,j) = T(0);
+ }
+ } // end Householder::operator()
+
+ /// The upper triangular transformed matrix.
+ Matrix<T> A;
+
+ }; // end class Householder
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/MatrixImplementation.hpp b/dev/src/MatrixImplementation.hpp
new file mode 100644
index 0000000..7bc4ce7
--- /dev/null
+++ b/dev/src/MatrixImplementation.hpp
@@ -0,0 +1,139 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file MatrixImplementation.hpp
+ * Implementation of Matrix algorithms
+ */
+
+#ifndef GPSTK_MATRIX_IMPLEMENTATION_HPP
+#define GPSTK_MATRIX_IMPLEMENTATION_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+namespace gpstk
+{
+
+ /** @addtogroup VectorGroup */
+ //@{
+
+ template <class T>
+ Matrix<T>::Matrix()
+ : v((size_t)0), r(0), c(0), s(0)
+ {}
+
+
+ template <class T>
+ Matrix<T>::Matrix(size_t rows, size_t cols)
+ : v(rows * cols), r(rows), c(cols), s(rows * cols)
+ {}
+
+ template <class T>
+ Matrix<T>::Matrix(size_t rows, size_t cols,
+ T initialValue)
+ : v(rows * cols, initialValue), r(rows), c(cols), s(rows * cols)
+ {}
+
+ template <class T>
+ MatrixRowSlice<T> Matrix<T>::rowRef(size_t rowNum, const std::slice& s)
+ {
+ return MatrixRowSlice<T>(*this, rowNum, s);
+ }
+
+ template <class T>
+ MatrixRowSlice<T> Matrix<T>::rowRef(size_t rowNum, size_t colNum)
+ {
+ return MatrixRowSlice<T>(*this, rowNum,
+ std::slice(colNum, cols()-colNum, 1));
+ }
+
+ template <class T>
+ ConstMatrixRowSlice<T> Matrix<T>::row(size_t rowNum, const std::slice& s)
+ const
+ {
+ return ConstMatrixRowSlice<T>(*this, rowNum, s);
+ }
+
+ template <class T>
+ ConstMatrixRowSlice<T> Matrix<T>::row(size_t rowNum, size_t colNum)
+ const
+ {
+ return ConstMatrixRowSlice<T>(*this, rowNum,
+ std::slice(colNum, cols()-colNum, 1));
+ }
+
+ template <class T>
+ MatrixColSlice<T> Matrix<T>::colRef(size_t colNum, const std::slice& s)
+ {
+ return MatrixColSlice<T>(*this, colNum, s);
+ }
+
+ template <class T>
+ MatrixColSlice<T> Matrix<T>::colRef(size_t colNum, size_t rowNum)
+ {
+ return MatrixColSlice<T>(*this, colNum,
+ std::slice(rowNum, rows() - rowNum, 1));
+ }
+
+ template <class T>
+ ConstMatrixColSlice<T> Matrix<T>::col(size_t colNum,
+ const std::slice& s) const
+ {
+ return ConstMatrixColSlice<T>(*this, colNum, s);
+ }
+
+ template <class T>
+ ConstMatrixColSlice<T> Matrix<T>::col(size_t colNum,
+ size_t rowNum) const
+ {
+ return ConstMatrixColSlice<T>(*this, colNum,
+ std::slice(colNum * r + rowNum, r - rowNum, 1));
+ }
+
+ template <class T>
+ Matrix<T>& Matrix<T>::resize(size_t rows, size_t cols)
+ {
+ v.resize(rows * cols);
+ c = cols;
+ r = rows;
+ s = rows * cols;
+ return *this;
+ }
+
+ template <class T>
+ Matrix<T>& Matrix<T>::resize(size_t rows, size_t cols,
+ const T initialValue)
+ {
+ v.resize(rows * cols, initialValue);
+ c = cols;
+ r = rows;
+ s = rows * cols;
+ return *this;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/MatrixOperators.hpp b/dev/src/MatrixOperators.hpp
new file mode 100644
index 0000000..eabc057
--- /dev/null
+++ b/dev/src/MatrixOperators.hpp
@@ -0,0 +1,774 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file MatrixOperators.hpp
+ * Matrix operators (arithmetic, transpose(), inverse(), etc)
+ */
+
+#ifndef GPSTK_MATRIX_OPERATORS_HPP
+#define GPSTK_MATRIX_OPERATORS_HPP
+
+#include "MiscMath.hpp"
+#include "MatrixFunctors.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup VectorGroup */
+ //@{
+
+/**
+ * Returns the top to bottom concatenation of Matrices l and r only if they have the
+ * same number of columns.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator&&(const ConstMatrixBase<T, BaseClass1>& l,
+ const ConstMatrixBase<T, BaseClass2>& r)
+ throw(MatrixException)
+ {
+ if (l.cols() != r.cols())
+ {
+ MatrixException e("Incompatible dimensions for Matrix && Matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t rows = l.rows() + r.rows();
+ size_t cols = l.cols();
+ Matrix<T> toReturn(rows, cols);
+
+ for (rows = 0; rows < l.rows(); rows++)
+ for (cols = 0; cols < l.cols(); cols++)
+ toReturn(rows, cols) = l(rows, cols);
+
+ for (rows = 0; rows < r.rows(); rows++)
+ for (cols = 0; cols < l.cols(); cols++)
+ toReturn(rows + l.rows(), cols) = r(rows, cols);
+
+ return toReturn;
+ }
+
+/**
+ * Returns the top to bottom concatenation of Matrix t and Vector b
+ * only if they have the same number of columns.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator&&(const ConstMatrixBase<T, BaseClass1>& t,
+ const ConstVectorBase<T, BaseClass2>& b)
+ throw(MatrixException)
+ {
+ if (t.cols() != b.size())
+ {
+ MatrixException e("Incompatible dimensions for Matrix && Vector");
+ GPSTK_THROW(e);
+ }
+
+ size_t rows = t.rows() + 1;
+ size_t cols = t.cols();
+ Matrix<T> toReturn(rows, cols);
+
+ for (rows = 0; rows < t.rows(); rows++)
+ for (cols = 0; cols < t.cols(); cols++)
+ toReturn(rows, cols) = t(rows, cols);
+
+ for (cols = 0; cols < t.cols(); cols++)
+ toReturn(t.rows(), cols) = b(cols);
+
+ return toReturn;
+ }
+
+/**
+ * Returns the top to bottom concatenation of Vector t and Matrix b
+ * only if they have the same number of columns.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator&&(const ConstVectorBase<T, BaseClass1>& t,
+ const ConstMatrixBase<T, BaseClass2>& b)
+ throw(MatrixException)
+ {
+ if (t.size() != b.cols())
+ {
+ MatrixException e("Incompatible dimensions for Vector && Matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t rows = 1 + b.rows();
+ size_t cols = b.cols();
+ Matrix<T> toReturn(rows, cols);
+
+ for (cols = 0; cols < b.cols(); cols++)
+ toReturn(0, cols) = t(cols);
+
+ for (rows = 1; rows < b.rows()+1; rows++)
+ for (cols = 0; cols < b.cols(); cols++)
+ toReturn(rows, cols) = b(rows, cols);
+
+ return toReturn;
+ }
+
+/**
+ * Returns the left to right concatenation of l and r only if they have the
+ * same number of rows.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator||(const ConstMatrixBase<T, BaseClass1>& l,
+ const ConstMatrixBase<T, BaseClass2>& r)
+ throw(MatrixException)
+ {
+ if (l.rows() != r.rows())
+ {
+ MatrixException e("Incompatible dimensions for Matrix || Matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t rows = l.rows();
+ size_t cols = l.cols() + r.cols();
+ Matrix<T> toReturn(rows, cols);
+
+ for (cols = 0; cols < l.cols(); cols++)
+ for (rows = 0; rows < l.rows(); rows++)
+ toReturn(rows, cols) = l(rows, cols);
+
+ for (cols = 0; cols < r.cols(); cols++)
+ for (rows = 0; rows < l.rows(); rows++)
+ toReturn(rows, cols + l.cols()) = r(rows,cols);
+
+ return toReturn;
+ }
+
+/**
+ * Returns the left to right concatenation of Matrix l and Vector r
+ * only if they have the same number of rows.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator||(const ConstMatrixBase<T, BaseClass1>& l,
+ const ConstVectorBase<T, BaseClass2>& r)
+ throw(MatrixException)
+ {
+ if (l.rows() != r.size())
+ {
+ MatrixException e("Incompatible dimensions for Matrix || Vector");
+ GPSTK_THROW(e);
+ }
+
+ size_t rows = l.rows();
+ size_t cols = l.cols() + 1;
+ Matrix<T> toReturn(rows, cols);
+
+ for (cols = 0; cols < l.cols(); cols++)
+ for (rows = 0; rows < l.rows(); rows++)
+ toReturn(rows, cols) = l(rows, cols);
+
+ for (rows = 0; rows < l.rows(); rows++)
+ toReturn(rows, l.cols()) = r(rows);
+
+ return toReturn;
+ }
+
+/**
+ * Returns the left to right concatenation of Vector l and Matrix r
+ * only if they have the same number of rows.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator||(const ConstVectorBase<T, BaseClass1>& l,
+ const ConstMatrixBase<T, BaseClass2>& r)
+ throw(MatrixException)
+ {
+ if (l.size() != r.rows())
+ {
+ MatrixException e("Incompatible dimensions for Vector || Matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t rows = r.rows();
+ size_t cols = r.cols() + 1;
+ Matrix<T> toReturn(rows, cols);
+
+ for (rows = 0; rows < r.rows(); rows++)
+ toReturn(rows, 0) = l(rows);
+
+ for (cols = 1; cols < r.cols()+1; cols++)
+ for (rows = 0; rows < r.rows(); rows++)
+ toReturn(rows, cols) = r(rows, cols);
+
+ return toReturn;
+ }
+
+/**
+ * Returns the minor matrix of l at element (row, col). A minor matrix is the
+ * same matrix as \c l but with row \c row and col \c col removed.
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> minorMatrix(const ConstMatrixBase<T, BaseClass>& l,
+ size_t row, size_t col)
+ throw(MatrixException)
+ {
+ if ((row >= l.rows()) || (col >= l.cols()))
+ {
+ MatrixException e("Invalid row or column for minorMatrix()");
+ GPSTK_THROW(e);
+ }
+ // handle special cases
+ if (row == 0)
+ {
+ if (col == 0)
+ {
+ return Matrix<T>(l,1,1,l.rows()-1,l.cols()-1);
+ }
+ else if (col == (l.cols() - 1))
+ {
+ return Matrix<T>(l,1,0,l.rows()-1,l.cols()-1);
+ }
+ else
+ {
+ return Matrix<T>(l,1,0,l.rows()-1,col) ||
+ Matrix<T>(l,1,col+1,l.rows()-1,l.cols()-col-1);
+ }
+ }
+ else if (row == (l.rows() - 1))
+ {
+ if (col == 0)
+ {
+ return Matrix<T>(l,0,1,l.rows()-1,l.cols()-1);
+ }
+ else if (col == (l.cols() - 1))
+ {
+ return Matrix<T>(l,0,0,l.rows()-1,l.cols()-1);
+ }
+ else
+ {
+ return Matrix<T>(l,0,0,l.rows()-1,col) ||
+ Matrix<T>(l,0,col+1,l.rows()-1,l.cols()-col-1);
+ }
+ }
+ else if (col == 0)
+ {
+ return Matrix<T>(l,0,1,row,l.cols()-1) &&
+ Matrix<T>(l,row+1,1,l.rows()-row-1,l.cols()-1);
+ }
+ else if (col == (l.cols() - 1))
+ {
+ return Matrix<T>(l,0,0,row,l.cols()-1) &&
+ Matrix<T>(l,row+1,0,l.rows()-row-1,l.cols()-1);
+ }
+ else
+ {
+ return (Matrix<T>(l, 0, 0, row, col) ||
+ Matrix<T>(l, 0, col + 1, row, l.cols()-col-1)) &&
+ (Matrix<T>(l, row + 1, 0, l.rows()-row-1, col) ||
+ Matrix<T>(l, row + 1, col + 1, l.rows()-row-1, l.cols()-col-1));
+ }
+ }
+
+/**
+ * Returns a matrix that is \c m transposed.
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> transpose(const ConstMatrixBase<T, BaseClass>& m)
+ {
+ Matrix<T> temp(m.cols(), m.rows());
+ size_t i, j;
+ for (i = 0; i < m.rows(); i++)
+ for (j = 0; j < m.cols(); j++)
+ temp(j,i) = m(i,j);
+ return temp;
+ }
+
+/**
+ * Uses an LU Decomposition to calculate the determinate of m. This is
+ * faster than longDet() for large matricies.
+ */
+ template <class T, class BaseClass>
+ inline T det(const ConstMatrixBase<T, BaseClass>& m)
+ throw(MatrixException)
+ {
+ try
+ {
+ LUDecomp<T> lud;
+ lud(m);
+ T det = 1;
+ size_t i;
+ // now just multiply down the main diagonal and then by the LUD sign.
+ for(i = 0; i < m.rows(); i++)
+ det *= lud.U(i,i);
+ return det * lud.sign;
+ }
+ catch(SingularMatrixException &e)
+ {
+ return 0;
+ }
+ catch(MatrixException& e)
+ {
+ e.addText("in det()");
+ GPSTK_RETHROW(e);
+ }
+ }
+
+/**
+ * returns the condition number of the matrix
+ */
+ template <class T, class BaseClass>
+ inline T condNum(const ConstMatrixBase<T, BaseClass>& m, T& big, T& small)
+ throw ()
+ {
+ SVD<T> svd;
+ svd(m);
+ // SVD will sort singular values in descending order
+ big = svd.S(0);
+ small = svd.S(svd.S.size()-1);
+ if(fabs(small) <= T(1.e-15)) return T(0);// TD replace with ~ machine precision
+ return big/small;
+ }
+
+/**
+ * returns the condition number of the matrix, doesnt require big or small..
+ */
+ template <class T, class BaseClass>
+ inline T condNum(const ConstMatrixBase<T, BaseClass>& m)
+ throw ()
+ {
+ T big, small;
+ return condNum(m, big, small);
+ }
+
+/**
+ * Returns a new \c dim * \c dim matrix that's an identity matrix.
+ */
+ template <class T>
+ inline Matrix<T> ident(size_t dim)
+ throw(MatrixException)
+ {
+ if (dim == 0)
+ {
+ MatrixException e("Invalid (0) dimension for ident()");
+ GPSTK_THROW(e);
+ }
+ Matrix<T> toReturn(dim, dim, T(0));
+ size_t i;
+ for (i = 0; i < toReturn.rows(); i++)
+ toReturn(i,i) = T(1);
+ return toReturn;
+ }
+
+/**
+ * Return a rotation matrix [dimensioned 3x3, inverse() = transpose()]
+ * for the rotation through \c angle radians about \c axis number (= 1, 2 or 3).
+ */
+ template <class T>
+ inline Matrix<T> rotation(T angle, int axis)
+ throw(MatrixException)
+ {
+ if (axis < 1 || axis > 3)
+ {
+ MatrixException e("Invalid axis (must be 1,2, or 3)");
+ GPSTK_THROW(e);
+ }
+ Matrix<T> toReturn(3,3,T(0));
+ int i1 = axis-1;
+ int i2 = (i1+1) % 3;
+ int i3 = (i2+1) % 3;
+ toReturn(i1,i1) = 1.0;
+ toReturn(i2,i2) = toReturn(i3,i3) = ::cos(angle);
+ toReturn(i3,i2) = -(toReturn(i2,i3) = ::sin(angle));
+
+ return toReturn;
+ }
+
+/**
+ * Inverts the matrix M by Gaussian elimination. Throws on non-square
+ * and singular matricies.
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> inverse(const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ if ((m.rows() != m.cols()) || (m.cols() == 0))
+ {
+ MatrixException e("inverse() requires non-trivial square matrix");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<T> toReturn(m.rows(), m.cols() * 2);
+
+ size_t r, t, j;
+ T temp;
+
+ // set the left half to m
+ {
+ MatrixSlice<T> ms(toReturn, 0, 0, m.rows(), m.cols());
+ ms = m;
+ }
+
+ // set the right half to identity
+ {
+ MatrixSlice<T> ms(toReturn, 0, m.cols(), m.rows(), m.cols());
+ ident(ms);
+ }
+
+ for (r = 0; r < m.rows(); r++)
+ {
+ // if m(r,r) is zero, find another row
+ // to add to it...
+ if (toReturn(r,r) == 0)
+ {
+ t = r+1;
+ while ( (t < m.rows()) && (toReturn(t,r) == 0) )
+ t++;
+
+ if (t == m.rows())
+ {
+ SingularMatrixException e("Singular matrix");
+ GPSTK_THROW(e);
+ }
+
+ for (j = r; j < toReturn.cols(); j++)
+ toReturn(r,j) += (toReturn(t,j) / toReturn(t,r));
+ }
+
+ // scale this row's (r,r)'th element to 1
+ temp = toReturn(r,r);
+ for (j = r; j < toReturn.cols(); j++)
+ toReturn(r,j) /= temp;
+
+ // do the elimination
+ for (t = 0; t < m.rows(); t++)
+ {
+ if (t != r)
+ {
+ temp = toReturn(t,r);
+ for (j = r; j < toReturn.cols(); j++)
+ toReturn(t,j) -= temp/toReturn(r,r) * toReturn(r,j);
+ }
+ }
+ }
+ // return the right hand side square matrix
+ return Matrix<T>(toReturn, 0, m.cols(), m.rows(), m.cols());
+
+ } // end inverse
+
+/**
+ * Inverts the matrix M by LU decomposition. Throws on non-square
+ * and singular matricies.
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> inverseLUD(const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ if ((m.rows() != m.cols()) || (m.cols() == 0)) {
+ MatrixException e("inverseLUD() requires non-trivial square matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t i,j,N=m.rows();
+ Matrix<T> inv(m);
+ Vector<T> V(N);
+ LUDecomp<T> LU;
+ LU(m);
+ for(j=0; j<N; j++) { // loop over columns
+ V = T(0);
+ V(j) = T(1);
+ LU.backSub(V);
+ for(i=0; i<N; i++) inv(i,j)=V(i);
+ }
+ return inv;
+
+ } // end inverseLUD
+
+/**
+ * Inverts the square matrix M by SVD. Throws only on input of the zero matrix
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> inverseSVD(const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ if ((m.rows() != m.cols()) || (m.cols() == 0)) {
+ MatrixException e("inverseSVD() requires non-trivial square matrix");
+ GPSTK_THROW(e);
+ }
+
+ size_t i,j,N=m.rows();
+ Matrix<T> inv(m);
+ SVD<T> svd;
+ svd(m);
+ // svd will sort the singular values in descending order
+ if(svd.S(0) == T(0)) {
+ MatrixException e("Input is the zero matrix");
+ GPSTK_THROW(e);
+ }
+ // edit singular values TD input tolerance, output edited SVs
+ for(i=1; i<N; i++) if(svd.S(i) < T(1.e-8)*svd.S(0)) svd.S(i)=T(0);
+
+ // back substitution
+ Vector<T> V(N);
+ for(j=0; j<N; j++) { //loop over columns
+ V = T(0);
+ V(j) = T(1);
+ svd.backSub(V);
+ for(i=0; i<N; i++) inv(i,j)=V(i);
+ }
+ return inv;
+
+ } // end inverseSVD
+
+
+ /**
+ * Inverts the square symetrix positive definite matrix M using Cholesky-Crout
+ * algorithm. Very fast and useful when M comes from using a Least Mean-Square
+ * (LMS) or Weighted Least Mean-Square (WLMS) method.
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> inverseChol(const ConstMatrixBase<T, BaseClass>& m)
+ throw (MatrixException)
+ {
+ int N = m.rows(), i, j, k;
+ double sum;
+ Matrix<T> LI(N,N, 0.0); // Here we will first store L^-1, and later m^-1
+
+ // Let's call CholeskyCrout class to decompose matrix "m" in L*LT
+ gpstk::CholeskyCrout<double> CC;
+ CC(m);
+
+ // Let's find the inverse of L (the LI from above)
+ for(i=0; i<N; i++) {
+ LI(i,i) = 1.0 / CC.L(i,i);
+ for(j=0; j<i; j++) {
+ sum = 0.0;
+ for(k=i; k>=0; k-- ) sum += CC.L(i,k)*LI(k,j);
+ LI(i,j) = -sum*LI(i,i);
+ }
+ }
+
+ // Now, let's remember that m^-1 = transpose(LI)*LI
+ LI = transpose(LI) * LI;
+ return LI;
+
+ } // end inverseChol
+
+
+/**
+ * Matrix * Matrix : row by column multiplication of two matricies.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator* (const ConstMatrixBase<T, BaseClass1>& l,
+ const ConstMatrixBase<T, BaseClass2>& r)
+ throw (MatrixException)
+ {
+ if (l.cols() != r.rows())
+ {
+ MatrixException e("Incompatible dimensions for Matrix * Matrix");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<T> toReturn(l.rows(), r.cols(), T(0));
+ size_t i, j, k;
+ for (i = 0; i < toReturn.rows(); i++)
+ for (j = 0; j < toReturn.cols(); j++)
+ for (k = 0; k < l.cols(); k++)
+ toReturn(i,j) += l(i,k) * r(k,j);
+
+ return toReturn;
+ }
+
+/**
+ * Matrix times vector multiplication, returning a vector.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Vector<T> operator* (const ConstMatrixBase<T, BaseClass1>& m,
+ const ConstVectorBase<T, BaseClass2>& v)
+ throw (MatrixException)
+ {
+ if (v.size() != m.cols())
+ {
+ gpstk::MatrixException e("Incompatible dimensions for Vector * Matrix");
+ GPSTK_THROW(e);
+ }
+
+ Vector<T> toReturn(m.rows());
+ size_t i, j;
+ for (i = 0; i < m.rows(); i++)
+ {
+ toReturn[i] = 0;
+ for (j = 0; j < m.cols(); j++)
+ toReturn[i] += m(i, j) * v[j];
+ }
+ return toReturn;
+ }
+/**
+ * Vector times matrix multiplication, returning a vector.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Vector<T> operator* (const ConstVectorBase<T, BaseClass1>& v,
+ const ConstMatrixBase<T, BaseClass2>& m)
+ throw (gpstk::MatrixException)
+ {
+ if (v.size() != m.rows())
+ {
+ gpstk::MatrixException e("Incompatible dimensions for Vector * Matrix");
+ GPSTK_THROW(e);
+ }
+
+ Vector<T> toReturn(m.cols());
+ size_t i, j;
+ for (i = 0; i < m.cols(); i++)
+ {
+ toReturn[i] = 0;
+ for (j = 0; j < m.rows(); j++)
+ toReturn[i] += m(j,i) * v[j];
+ }
+ return toReturn;
+ }
+
+/**
+ * Compute sum of two matricies.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator+ (const ConstMatrixBase<T, BaseClass1>& l,
+ const ConstMatrixBase<T, BaseClass2>& r)
+ throw (MatrixException)
+ {
+ if (l.cols() != r.cols() || l.rows() != r.rows())
+ {
+ MatrixException e("Incompatible dimensions for Matrix + Matrix");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<T> toReturn(l.rows(), r.cols(), T(0));
+ size_t i, j;
+ for (i = 0; i < toReturn.rows(); i++)
+ for (j = 0; j < toReturn.cols(); j++)
+ toReturn(i,j) = l(i,j) + r(i,j);
+
+ return toReturn;
+ }
+
+/**
+ * Compute difference of two matricies.
+ */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline Matrix<T> operator- (const ConstMatrixBase<T, BaseClass1>& l,
+ const ConstMatrixBase<T, BaseClass2>& r)
+ throw (MatrixException)
+ {
+ if (l.cols() != r.cols() || l.rows() != r.rows())
+ {
+ MatrixException e("Incompatible dimensions for Matrix - Matrix");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<T> toReturn(l.rows(), r.cols(), T(0));
+ size_t i, j;
+ for (i = 0; i < toReturn.rows(); i++)
+ for (j = 0; j < toReturn.cols(); j++)
+ toReturn(i,j) = l(i,j) - r(i,j);
+
+ return toReturn;
+ }
+
+/**
+ * Compute the outer product of two vectors.
+ */
+ template <class T, class BaseClass>
+ inline Matrix<T> outer(const ConstVectorBase<T, BaseClass>& v,
+ const ConstVectorBase<T, BaseClass>& w)
+ throw (MatrixException)
+ {
+ if(v.size()*w.size() == 0) {
+ MatrixException e("Zero length vector(s)");
+ GPSTK_THROW(e);
+ }
+ Matrix<T> M(v.size(),w.size(),T(0));
+ for(size_t i=0; i<v.size(); i++)
+ for(size_t j=0; j<w.size(); j++)
+ M(i,j) = v(i)*w(j);
+ return M;
+ }
+
+/// Multiplies all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator* (const ConstMatrixBase<T, BaseClass>& m, const T d)
+ {
+ Matrix<T> temp(m);
+ return temp *= d;
+ }
+
+/// Multiplies all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator* (const T d, const ConstMatrixBase<T, BaseClass>& m)
+ {
+ Matrix<T> temp(m);
+ return temp *= d;
+ }
+
+/// Divides all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator/ (const ConstMatrixBase<T, BaseClass>& m, const T d)
+ {
+ Matrix<T> temp(m);
+ return temp /= d;
+ }
+
+/// Divides all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator/ (const T d, const ConstMatrixBase<T, BaseClass>& m)
+ {
+ Matrix<T> temp(m);
+ return temp /= d;
+ }
+
+/// Adds all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator+ (const ConstMatrixBase<T, BaseClass>& m, const T d)
+ {
+ Matrix<T> temp(m);
+ return temp += d;
+ }
+
+/// Adds all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator+ (const T d, const ConstMatrixBase<T, BaseClass>& m)
+ {
+ Matrix<T> temp(m);
+ return temp += d;
+ }
+
+/// Subtracts all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator- (const ConstMatrixBase<T, BaseClass>& m, const T d)
+ {
+ Matrix<T> temp(m);
+ return temp -= d;
+ }
+
+/// Subtracts all the elements of m by d.
+ template <class T, class BaseClass>
+ inline Matrix<T> operator- (const T d, const ConstMatrixBase<T, BaseClass>& m)
+ {
+ Matrix<T> temp(m);
+ return temp -= d;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/MiscMath.hpp b/dev/src/MiscMath.hpp
new file mode 100644
index 0000000..a1fa243
--- /dev/null
+++ b/dev/src/MiscMath.hpp
@@ -0,0 +1,222 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file MiscMath.hpp
+ * Miscellaneous mathematical algorithms
+ */
+
+#ifndef GPSTK_MISC_MATH_HPP
+#define GPSTK_MISC_MATH_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <vector>
+#include "MathBase.hpp"
+
+namespace gpstk
+{
+ /** @defgroup math Mathematical algorithms */
+ //@{
+
+ /** Perform Lagrange interpolation on the data (X[i],Y[i]), i=1,N (N=X.size()),
+ * returning the value of Y(x). Also return an estimate of the estimation error in 'err'.
+ * Assumes k=X.size() is even, and that x is between X[j-1] and X[j], where j=k/2.
+ */
+ template <class T>
+ T LagrangeInterpolation(const std::vector<T>& X, const std::vector<T>& Y, const T& x, T& err)
+ {
+ size_t i,j,k;
+ T y,del;
+ std::vector<T> D,Q;
+
+ err = T(0);
+ k = X.size()/2;
+ if(x == X[k]) return Y[k];
+ if(x == X[k-1]) return Y[k-1];
+ if(ABS(x-X[k-1]) < ABS(x-X[k])) k=k-1;
+ for(i=0; i<X.size(); i++) {
+ Q.push_back(Y[i]);
+ D.push_back(Y[i]);
+ }
+ y = Y[k--];
+ for(j=1; j<X.size(); j++) {
+ for(i=0; i<X.size()-j; i++) {
+ del = (Q[i+1]-D[i])/(X[i]-X[i+j]);
+ D[i] = (X[i+j]-x)*del;
+ Q[i] = (X[i]-x)*del;
+ }
+ err = (2*k < X.size()-j ? Q[k+1] : D[k--]);
+ y += err;
+ }
+ return y;
+ } // end T LagrangeInterpolation(vector, vector, const T, T&)
+
+ // The following is a
+ // Straightforward implementation of Lagrange polynomial and its derivative
+ // { all sums are over index=0,N-1; Xi is short for X[i]; Lp is dL/dx;
+ // y(x) is the function being approximated. }
+ // y(x) = SUM[Li(x)*Yi]
+ // Li(x) = PROD(j!=i)[x-Xj] / PROD(j!=i)[Xi-Xj]
+ // dy(x)/dx = SUM[Lpi(x)*Yi]
+ // Lpi(x) = SUM(k!=i){PROD(j!=i,j!=k)[x-Xj]} / PROD(j!=i)[Xi-Xj]
+ // Define Pi = PROD(j!=i)[x-Xj], Di = PROD(j!=i)[Xi-Xj],
+ // Qij = PROD(k!=i,k!=j)[x-Xk] and Si = SUM(j!=i)Qij.
+ // then Li(x) = Pi/Di, and Lpi(x) = Si/Di.
+ // Qij is symmetric, there are only N(N+1)/2 - N of them, so store them
+ // in a vector of length N(N+1)/2, where Qij==Q[i+j*(j+1)/2] (ignore i=j).
+
+ /** Perform Lagrange interpolation on the data (X[i],Y[i]), i=1,N (N=X.size()),
+ * returning the value of Y(x) and dY(x)/dX.
+ * Assumes that x is between X[k-1] and X[k], where k=N/2.
+ * Warning: for use with the precise (SP3) ephemeris only when velocity is not
+ * available; estimates of velocity, and especially clock drift, not as accurate.
+ */
+ template <class T>
+ void LagrangeInterpolation(const std::vector<T>& X, const std::vector<T>& Y, const T& x, T& y, T& dydx)
+ {
+ size_t i,j,k,N=X.size(),M;
+ M = (N*(N+1))/2;
+ std::vector<T> P(N,T(1)),Q(M,T(1)),D(N,T(1));
+ for(i=0; i<N; i++) {
+ for(j=0; j<N; j++) {
+ if(i != j) {
+ P[i] *= x-X[j];
+ D[i] *= X[i]-X[j];
+ if(i < j) {
+//std::cout << "Compute Q[" << i << "," << j << "=" << (i+(j*(j+1))/2) << "] = 1 ";
+ for(k=0; k<N; k++) {
+ if(k == i || k == j) continue;
+//std::cout << " * (x-X[" << k << "])";
+ Q[i+(j*(j+1))/2] *= (x-X[k]);
+ }
+//std::cout << " = " << Q[i+(j*(j+1))/2] << std::endl;
+ }
+ }
+ }
+ }
+ y = dydx = T(0);
+ for(i=0; i<N; i++) {
+ y += Y[i]*(P[i]/D[i]);
+ T S(0);
+ for(k=0; k<N; k++) if(i != k) {
+ if(k<i) S += Q[k+(i*(i+1))/2]/D[i];
+ else S += Q[i+(k*(k+1))/2]/D[i];
+ }
+ dydx += Y[i]*S;
+ }
+ } // end void LagrangeInterpolation(vector, vector, const T, T&, T&)
+
+ /// Perform the root sum square of aa, bb and cc
+ template <class T>
+ T RSS (T aa, T bb, T cc)
+ {
+ T a(ABS(aa)), b(ABS(bb)), c(ABS(cc));
+ if ( (a > b) && (a > c) )
+ return a * SQRT(1 + (b/a)*(b/a) + (c/a)*(c/a));
+ if ( (b > a) && (b > c) )
+ return b * SQRT(1 + (a/b)*(a/b) + (c/b)*(c/b));
+ if ( (c > b) && (c > a) )
+ return c * SQRT(1 + (b/c)*(b/c) + (a/c)*(a/c));
+
+ if (a == b)
+ {
+ if (b == c)
+ return a * SQRT(T(3));
+ a *= SQRT(T(2));
+ if (a > c)
+ return a * SQRT(1 + (c/a)*(c/a));
+ else
+ return c * SQRT(1 + (a/c)*(a/c));
+ }
+ if (a == c)
+ {
+ a *= SQRT(T(2));
+ if (a > b)
+ return a * SQRT(1 + (b/a)*(b/a));
+ else
+ return b * SQRT(1 + (a/b)*(a/b));
+ }
+ if (b == c)
+ {
+ b *= SQRT(T(2));
+ if (b > a)
+ return b * SQRT(1 + (a/b)*(a/b));
+ else
+ return a * SQRT(1 + (b/a)*(b/a));
+ }
+
+ return T(0);
+ }
+
+ /// Perform the root sum square of aa, bb
+ template <class T>
+ T RSS (T aa, T bb)
+ {
+ return RSS(aa,bb,T(0));
+ }
+
+
+ /// Perform the root sum square of aa, bb, cc and dd
+ template <class T>
+ T RSS (T aa, T bb, T cc, T dd)
+ {
+#define swapValues(x,y) \
+ { T temporalStorage; \
+ temporalStorage = x; x = y; y = temporalStorage; }
+
+ T a(ABS(aa)), b(ABS(bb)), c(ABS(cc)), d(ABS(dd));
+
+ // For numerical reason, let's just put the biggest in "a" (we are not sorting)
+ if (a < b) std::swap(a,b);
+ if (a < c) swapValues(a,c);
+ if (a < d) swapValues(a,d);
+
+ return a * SQRT(1 + (b/a)*(b/a) + (c/a)*(c/a) + (d/a)*(d/a));
+ }
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/ModeledPR.cpp b/dev/src/ModeledPR.cpp
new file mode 100644
index 0000000..7ac2aba
--- /dev/null
+++ b/dev/src/ModeledPR.cpp
@@ -0,0 +1,122 @@
+/**
+ * @file ModeledPR.cpp
+ * Class to compute modeled pseudoranges of a mobile receiver
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+
+#include "ModeledPR.hpp"
+
+
+namespace gpstk
+{
+
+ /* Method to set an a priori position of receiver using Bancroft method.
+ *
+ * @param Tr Time of observation
+ * @param Satellite Vector of satellites in view
+ * @param Pseudorange Pseudoranges measured from mobile to satellites
+ * @param Eph Satellites Ephemeris
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ int ModeledPR::Prepare(const DayTime& Tr, std::vector<SatID>& Satellite, std::vector<double>& Pseudorange, const EphemerisStore& Eph)
+ {
+ Matrix<double> SVP;
+ Bancroft Ban;
+ Vector<double> vPos;
+ PRSolution raimObj;
+
+ try
+ {
+ raimObj.PrepareAutonomousSolution(Tr, Satellite, Pseudorange, Eph, SVP);
+ if (Ban.Compute(SVP, vPos) < 0 ) return -1;
+ }
+ catch(...)
+ {
+ return -1;
+ }
+
+ return Prepare(vPos(0), vPos(1), vPos(2));
+
+ }
+
+
+ /* Method to set the initial (a priori) position of receiver before
+ * Compute() method.
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ int ModeledPR::Prepare(const double& aRx, const double& bRx, const double& cRx, Position::CoordinateSystem
+ s, GeoidModel *geoid) throw(GeometryException)
+ {
+ int result = setInitialRxPosition(aRx, bRx, cRx, s, geoid);
+ // If everything is OK, the model is prepared
+ if (result ==0) modelPrepared = true; else modelPrepared = false;
+
+ return result;
+ }
+
+
+ /* Method to set the initial (a priori) position of receiver before
+ * Compute() method.
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ int ModeledPR::Prepare(const Position& RxCoordinates) throw(GeometryException)
+ {
+
+ int result = setInitialRxPosition(RxCoordinates);
+ // If everything is OK, the model is prepared
+ if (result ==0) modelPrepared = true; else modelPrepared = false;
+
+ return result;
+ }
+
+
+
+ /* Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.
+ *
+ * @param time Epoch.
+ * @param gData Data object holding the data.
+ */
+ satTypeValueMap& ModeledPR::processModel(const DayTime& time, satTypeValueMap& gData) throw(Exception)
+ {
+ // First, if the model is not prepared let's take care of it
+ if (!getModelPrepared()) Prepare(time, gData);
+
+ ModeledReferencePR::processModel(time, gData);
+
+ return gData;
+ } // End ModeledPR::processModel(const DayTime& time, satTypeValueMap& gData)
+
+
+
+} // namespace
+
diff --git a/dev/src/ModeledPR.hpp b/dev/src/ModeledPR.hpp
new file mode 100644
index 0000000..be7c9b4
--- /dev/null
+++ b/dev/src/ModeledPR.hpp
@@ -0,0 +1,442 @@
+/**
+ * @file ModeledPR.hpp
+ * Class to compute modeled pseudoranges of a mobile receiver
+ */
+
+#ifndef GPSTK_MODELEDPR_HPP
+#define GPSTK_MODELEDPR_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+
+#include "ModeledReferencePR.hpp"
+#include "Matrix.hpp"
+#include "Bancroft.hpp"
+#include "PRSolution.hpp"
+#include "DataStructures.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /** This class compute modeled pseudoranges from satellites to a mobile receiver.
+ *
+ * The main difference between this class and ModeledReferencePR is that for a
+ * mobile receiver we should "prepare" the computation giving an estimate of
+ * the mobile station position. This position may be the last known
+ * position or it may be estimated using a method such as Bancroft.
+ *
+ * Prepare() method is used for this.
+ *
+ * This class may be used either in a Vector- and Matrix-oriented way, or
+ * with GNSS data structure objects from "DataStructures" class. In any
+ * case, it is intented to be used with stations where the position
+ * changes with time.
+ *
+ * A typical way to use this class with GNSS data structures follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o"); // Data stream
+ * RinexNavStream rnavin("brdc0300.02n"); // Ephemeris data stream
+ * RinexNavData rNavData;
+ * BCEphemerisStore bceStore;
+ * while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
+ * bceStore.SearchPast(); // This is the default
+ *
+ * RinexNavHeader rNavHeader;
+ * IonoModelStore ionoStore;
+ * IonoModel ioModel;
+ * rnavin >> rNavHeader; // Read navigation RINEX header
+ * ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
+ * ionoStore.addIonoModel(DayTime::BEGINNING_OF_TIME, ioModel);
+ *
+ * // EBRE station nominal position
+ * Position nominalPos(4833520.3800, 41536.8300, 4147461.2800);
+ *
+ * // Declare a tropospheric model object, setting the defaults
+ * MOPSTropModel mopsTM(nominalPos.getAltitude(), nominalPos.getGeodeticLatitude(), 30);
+ *
+ * // Declare the modeler object, setting all the parameters in one pass
+ * // As stated, it will compute the model using the C1 observable
+ * ModeledPR model(ionoStore, mopsTM, bceStore, TypeID::C1);
+ *
+ * // Set the initial apriori position using the Bancroft method
+ * model.Prepare();
+ *
+ * gnssRinex gRin;
+ *
+ * while(rin >> gRin) {
+ * gRin >> model;
+ * }
+ * @endcode
+ *
+ * The "ModeledPR" object will visit every satellite in the
+ * GNSS data structure that is "gRin" and will try to compute its
+ * model: Prefit residual, geometric distance, relativity delay,
+ * ionospheric/tropospheric corrections, geometry matrix, etc.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the extra data inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not
+ * have the observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * @sa ModeledPseudorangeBase.hpp and ModeledReferencePR.hpp for base classes.
+ *
+ */
+ class ModeledPR : public ModeledReferencePR
+ {
+ public:
+
+ /// Implicit constructor
+ ModeledPR() : modelPrepared(false) {};
+
+
+ /** Explicit constructor, taking as input initial receiver coordinates, default
+ * ionospheric and tropospheric models, ephemeris to be used, default observable
+ * and whether TGD will be computed or not.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Initial receiver coordinates.
+ * @param dIonoModel Ionospheric model to be used by default.
+ * @param dTropoModel Tropospheric model to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(const Position& RxCoordinates, IonoModelStore& dIonoModel, TropModel& dTropoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ Prepare(RxCoordinates);
+ setDefaultIonoModel(dIonoModel);
+ setDefaultTropoModel(dTropoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input initial receiver coordinates, default
+ * ionospheric model, ephemeris to be used, default observable and whether TGD
+ * will be computed or not.
+ *
+ * The default tropospheric model will be set to NULL.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Initial receiver coordinates.
+ * @param dIonoModel Ionospheric model to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(const Position& RxCoordinates, IonoModelStore& dIonoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ Prepare(RxCoordinates);
+ setDefaultIonoModel(dIonoModel);
+ pDefaultTropoModel = NULL;
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input initial receiver coordinates, default
+ * tropospheric model, ephemeris to be used, default observable and whether TGD
+ * will be computed or not.
+ *
+ * The default ionospheric model will be set to NULL.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Initial receiver coordinates.
+ * @param dTropoModel Tropospheric model to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(const Position& RxCoordinates, TropModel& dTropoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ Prepare(RxCoordinates);
+ pDefaultIonoModel = NULL;
+ setDefaultTropoModel(dTropoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input initial receiver coordinates,
+ * ephemeris to be used, default observable and whether TGD will be
+ * computed or not.
+ *
+ * Both the tropospheric and ionospheric models will be set to NULL.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Initial receiver coordinates.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(const Position& RxCoordinates, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ Prepare(RxCoordinates);
+ pDefaultIonoModel = NULL;
+ pDefaultTropoModel = NULL;
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input default ionospheric and tropospheric
+ * models, ephemeris to be used, default observable and whether TGD will be
+ * computed or not.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param dIonoModel Ionospheric model to be used by default.
+ * @param dTropoModel Tropospheric model to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(IonoModelStore& dIonoModel, TropModel& dTropoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ setDefaultIonoModel(dIonoModel);
+ setDefaultTropoModel(dTropoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input default ionospheric model,
+ * ephemeris to be used, default observable and whether TGD will be
+ * computed or not.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param dIonoModel Ionospheric model to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(IonoModelStore& dIonoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ setDefaultIonoModel(dIonoModel);
+ pDefaultTropoModel = NULL;
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input default tropospheric model,
+ * ephemeris to be used, default observable and whether TGD will be
+ * computed or not.
+ *
+ * This constructor is meant to be used when working with GNSS data structures
+ * in order to set the basic parameters from the beginning.
+ *
+ * @param dTropoModel Tropospheric model to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledPR(TropModel& dTropoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ pDefaultIonoModel = NULL;
+ setDefaultTropoModel(dTropoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Method to set an a priori position of receiver using Bancroft method.
+ *
+ * @param Tr Time of observation
+ * @param Satellite Vector of satellites in view
+ * @param Pseudorange Pseudoranges measured from mobile to satellites
+ * @param Eph Satellites Ephemeris
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Prepare(const DayTime& Tr, std::vector<SatID>& Satellite, std::vector<double>& Pseudorange, const EphemerisStore& Eph);
+
+
+ /** Method to set an a priori position of receiver using Bancroft method.
+ *
+ * @param Tr Time of observation
+ * @param Satellite Vector of satellites in view
+ * @param Pseudorange Pseudoranges measured from mobile to satellites
+ * @param Eph Satellites Ephemeris
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Prepare(const DayTime& Tr, const Vector<SatID>& Satellite, const Vector<double>& Pseudorange, const EphemerisStore& Eph)
+ {
+ int i;
+ std::vector<SatID> vSat;
+ std::vector<double> vPR;
+
+ // Convert from gpstk::Vector to std::vector
+ for (i = 0; i < (int)Satellite.size(); i++)
+ vSat.push_back(Satellite[i]);
+
+ for (i = 0; i < (int)Pseudorange.size(); i++)
+ vPR.push_back(Pseudorange[i]);
+
+ return Prepare(Tr, vSat, vPR, Eph);
+
+ };
+
+
+ /** Method to set an a priori position of receiver using Bancroft method. Intended to be used
+ * with GNSS data structures.
+ *
+ * @param time DayTime object for this epoch
+ * @param data A satTypeValueMap data structure holding the data
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual inline int Prepare(const DayTime& time, const satTypeValueMap& data)
+ {
+ int i;
+ std::vector<SatID> vSat;
+ std::vector<double> vPR;
+ Vector<SatID> Satellite( data.getVectorOfSatID() );
+ Vector<double> Pseudorange( data.getVectorOfTypeID( (*this).getDefaultObservable() ) );
+
+ // Convert from gpstk::Vector to std::vector
+ for (i = 0; i < (int)Satellite.size(); i++)
+ vSat.push_back(Satellite[i]);
+
+ for (i = 0; i < (int)Pseudorange.size(); i++)
+ vPR.push_back(Pseudorange[i]);
+
+ return Prepare(time, vSat, vPR, (*( (*this).getDefaultEphemeris())) );
+
+ };
+
+
+ /** Method to set an a priori position of receiver using Bancroft method. Intended to be used
+ * with GNSS data structures.
+ *
+ * @param gData GNSS data structure to be used
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual inline int Prepare(const gnssSatTypeValue& gData)
+ {
+ return ((*this).Prepare(gData.header.epoch, gData.body));
+ };
+
+
+ /** Method to set the initial (a priori) position of receiver before
+ * Compute() method.
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Prepare(const double& aRx, const double& bRx, const double& cRx,
+ Position::CoordinateSystem s=Position::Cartesian,
+ GeoidModel *geoid=NULL) throw(GeometryException);
+
+
+ /** Method to set the initial (a priori) position of receiver before
+ * Compute() method.
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Prepare(const Position& RxCoordinates) throw(GeometryException);
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.
+ *
+ * @param time Epoch.
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& processModel(const DayTime& time, satTypeValueMap& gData) throw(Exception);
+
+
+ /// Method to get if the model has been prepared.
+ inline bool getModelPrepared() const { return modelPrepared; };
+
+
+ /** Method to forcefully set whether the model has been prepared.
+ *
+ * @param prepare Boolean indicating whether the model has been prepared.
+ */
+ inline void setModelPrepared(const bool& prepare) { modelPrepared = prepare; };
+
+
+ /// Destructor.
+ virtual ~ModeledPR() throw() {};
+
+
+ protected:
+
+ bool modelPrepared;
+
+
+ }; // class ModeledPR
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/ModeledPseudorangeBase.hpp b/dev/src/ModeledPseudorangeBase.hpp
new file mode 100644
index 0000000..082f986
--- /dev/null
+++ b/dev/src/ModeledPseudorangeBase.hpp
@@ -0,0 +1,130 @@
+/**
+ * @file ModeledPseudorangeBase.hpp
+ * Abstract base class for modeled pseudoranges
+ */
+
+#ifndef GPSTK_MODELEDPSEUDORANGEBASE_HPP
+#define GPSTK_MODELEDPSEUDORANGEBASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "Xvt.hpp"
+#include "Position.hpp"
+#include "Matrix.hpp"
+#include "Vector.hpp"
+#include "RinexObsHeader.hpp"
+#include <vector>
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * This abstract class deals with modeled pseudoranges.
+ */
+ class ModeledPseudorangeBase
+ {
+ public:
+
+ /// Implicit constructor
+ ModeledPseudorangeBase() : minElev(10.0) {};
+
+ /// Either estimated or "a priori" position of receiver
+ Position rxPos;
+
+ /// Estimated geometric ranges from satellites to receiver
+ Vector<double> geometricRho;
+
+ /// Satellite clock biases, in meters
+ Vector<double> svClockBiases;
+
+ /// Satellite ECEF positions (m) and velocities (m/s) at transmission time
+ Vector<Xvt> svXvt;
+
+ /// Epoch when the signal left the satellite (Transmission time)
+ Vector<DayTime> svTxTime;
+
+ /// Total Group Delay (TGD) of satellites, in meters
+ Vector<double> svTGD;
+
+ /// Relativity corrections of satellites, in meters
+ Vector<double> svRelativity;
+
+ /// Ionospheric corrections in each receiver-satellite ray, in meters
+ Vector<double> ionoCorrections;
+
+ /// Tropospheric corrections in each receiver-satellite ray, in meters
+ Vector<double> tropoCorrections;
+
+ /// Observed (measured) pseudoranges from satellites to receiver
+ Vector<double> observedPseudoranges;
+
+ /// Modeled pseudoranges from satellites to receiver
+ Vector<double> modeledPseudoranges;
+
+ /// Prefit-residuals: Difference between Pseudoranges and ModeledPseudoranges
+ Vector<double> prefitResiduals;
+
+ /// Matrix of Geometry (director cosines from receiver to satellites)
+ Matrix<double> geoMatrix;
+
+ /// The elevation cut-off angle for accepted satellites. By default is set to 10 degrees
+ double minElev;
+
+ /// Any other biases (in meters) that the user wants to include. Will be substracted from modeled pseudoranges.
+ Vector<double> extraBiases;
+
+ /// Boolean telling if there are available computed data for at least 4 satellites
+ bool validData;
+
+ /// Vector with the PRN of satellites available for computing.
+ Vector<SatID> availableSV;
+
+ /// Vector with the PRN of satellites rejected or not used in computing.
+ Vector<SatID> rejectedSV;
+
+ /// Vector with the geodetic elevation of satellites from the receiver point of view.
+ Vector<double> elevationSV;
+
+ /// Vector with the geodetic azimuth of satellites from the receiver point of view.
+ Vector<double> azimuthSV;
+
+ /// Destructor.
+ virtual ~ModeledPseudorangeBase() throw() {};
+
+ protected:
+ /// Method to set the initial (a priori) position of receiver.
+ virtual int setInitialRxPosition() throw(Exception) = 0;
+
+
+ }; // class ModeledPseudorangeBase
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/ModeledReferencePR.cpp b/dev/src/ModeledReferencePR.cpp
new file mode 100644
index 0000000..979414a
--- /dev/null
+++ b/dev/src/ModeledReferencePR.cpp
@@ -0,0 +1,410 @@
+/**
+ * @file ModeledReferencePR.cpp
+ * Class to compute modeled pseudoranges using a reference station
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+
+#include "ModeledReferencePR.hpp"
+
+using namespace std;
+namespace gpstk
+{
+
+ /* Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ * @param Tr Measured time of reception of the data.
+ * @param Satellite Vector of satellites; on successful return, satellites that
+ * were excluded by the algorithm are marked by a negative
+ * Satellite[i].id
+ * @param Pseudorange Vector of raw pseudoranges (parallel to satellite), in meters.
+ * @param Eph EphemerisStore to be used.
+ * @param pTropModel Pointer to tropospheric model to be used (@sa TropModel.hpp). By
+ * default points to NULL.
+ * @param pIonoModel Pointer to ionospheric model to be used (@sa IonoModelStore.hpp).
+ * By default points to NULL.
+ * @param extraBiases Vector of extra biases to be added to the model.
+ *
+ * @return
+ * Number of satellites with valid data
+ */
+ int ModeledReferencePR::Compute(const DayTime& Tr, Vector<SatID>& Satellite,
+ Vector<double>& Pseudorange, const EphemerisStore& Eph, const Vector<double>& extraBiases,
+ TropModel *pTropModel, IonoModelStore *pIonoModel) throw(Exception)
+ {
+ try {
+
+ int N = Satellite.size();
+ if(N <= 0) return 0; // No deal if there are no satellites
+
+ int i;
+ int eN = int(extraBiases.size()) - 1; // Maximum valid index of extraBiases vector
+ int validSats(0);
+ // Some std::vector to hold temporal values (do not confuse with gpstk::Vector)
+ vector<double> vPR;
+ vector<double> vGeometricRho;
+ vector<double> vClock;
+ vector<double> vTGD;
+ vector<double> vRel;
+ vector<double> vTrop;
+ vector<double> vIono;
+ vector<double> vObservedPR;
+ vector<double> vModeledPR;
+ vector<double> vPrefit;
+ vector<double> vElevation;
+ vector<double> vAzimuth;
+ vector<Xvt> vXvt;
+ vector<DayTime> vTxTime;
+ vector<SatID> vAvailableSV;
+ vector<SatID> vRejectedSV;
+ vector<Triple> vCosines;
+ vector<Triple>::iterator iter; // Iterator for vCosines vector
+ // A lot of the work is done by a CorrectedEphemerisRange object
+ CorrectedEphemerisRange cerange;
+ validData = false;
+
+ // Let's make sure everything is clean
+ rejectedSV.resize(0);
+ availableSV.resize(0);
+ geometricRho.resize(0);
+ svClockBiases.resize(0);
+ svXvt.resize(0);
+ svTxTime.resize(0);
+ svTGD.resize(0);
+ svRelativity.resize(0);
+ ionoCorrections.resize(0);
+ tropoCorrections.resize(0);
+ observedPseudoranges.resize(0);
+ modeledPseudoranges.resize(0);
+ prefitResiduals.resize(0);
+ elevationSV.resize(0);
+ azimuthSV.resize(0);
+ geoMatrix.resize(0, 0);
+
+ for (i=0; i<N; i++) {
+ if(Satellite[i].id <= 0) { // Skip marked satellites
+ // First, make sure we are using a positive satellite id
+ // Note: Now that we have a SatID class, it is a BAD IDEA to use negative id's
+ // in order to mark faulty or rejected satellites
+ SatID tempSat(std::abs(Satellite[i].id), Satellite[i].system);
+ vRejectedSV.push_back(tempSat);
+ continue;
+ }
+ try {
+ // Scalars to hold temporal values
+ double tempPR(0.0);
+ double tempTGD(0.0);
+ double tempTrop(0.0);
+ double tempIono(0.0);
+ double tempModeledPR(0.0);
+ double tempPrefit(0.0);
+
+ try {
+ // Compute most of the parameters
+ tempPR = cerange.ComputeAtTransmitTime(Tr, Pseudorange[i], rxPos, Satellite[i], Eph);
+ }
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ // If there were no ephemeris for this satellite, let's mark it
+ vRejectedSV.push_back(Satellite[i]);
+ continue;
+ };
+
+ // Let's test if satellite has enough elevation over horizon
+ if (rxPos.elevationGeodetic(cerange.svPosVel) < (*this).minElev) {
+ // Mark this satellite if it doesn't have enough elevation
+ vRejectedSV.push_back(Satellite[i]);
+ continue;
+ }
+
+ // If given, computes tropospheric model
+ if(pTropModel) tempTrop = getTropoCorrections(pTropModel, cerange.elevationGeodetic);
+
+ // If given, computes ionospheric model
+ if(pIonoModel) {
+ Geodetic rxGeo(rxPos.getGeodeticLatitude(), rxPos.getLongitude(), rxPos.getAltitude()); // Convert Position rxPos to Geodetic rxGeo
+ tempIono = getIonoCorrections(pIonoModel, Tr, rxGeo, cerange.elevationGeodetic, cerange.azimuthGeodetic);
+ };
+
+ tempModeledPR = tempPR + tempTrop + tempIono;
+
+ // Check if there could be an extra bias defined for this satellite
+ if (i <= eN ) tempModeledPR += extraBiases(i);
+
+ // Computing Total Group Delay (TGD - meters) and adding it to result
+ if(useTGD) {
+ tempTGD = getTGDCorrections(Tr, Eph, Satellite[i]);
+ tempModeledPR += tempTGD;
+ }
+
+ tempPrefit = Pseudorange[i] - tempModeledPR;
+
+ // Let's store the results in their corresponding std::vector
+ vGeometricRho.push_back(cerange.rawrange);
+ vClock.push_back(cerange.svclkbias);
+ vXvt.push_back(cerange.svPosVel);
+ vTxTime.push_back(cerange.transmit);
+ vTGD.push_back(tempTGD);
+ // Relativity was computed with a negative sign added
+ vRel.push_back(-cerange.relativity);
+ vIono.push_back(tempIono);
+ vTrop.push_back(tempTrop);
+ vObservedPR.push_back(Pseudorange[i]);
+ vModeledPR.push_back(tempModeledPR);
+ vPrefit.push_back(tempPrefit);
+ vElevation.push_back(cerange.elevationGeodetic);
+ vAzimuth.push_back(cerange.azimuthGeodetic);
+ vAvailableSV.push_back(Satellite[i]);
+ vCosines.push_back(cerange.cosines);
+
+ validSats += 1; // If everything is OK, increment valid sat's counter
+
+ } // End of try
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ // If there were no ephemeris for this satellite, let's mark it
+ vRejectedSV.push_back(Satellite[i]);
+ continue;
+ }
+ catch(...) {
+ Exception unknownEx("An unknown exception has happened in ModeledReferencePR object.");
+ GPSTK_THROW(unknownEx);
+ }
+
+ } // End of "for" loop
+
+ // Let's storage results in their corresponding gpstk::Vector
+ rejectedSV = vRejectedSV;
+ availableSV = vAvailableSV;
+ geometricRho = vGeometricRho;
+ svClockBiases = vClock;
+ svXvt = vXvt;
+ svTxTime = vTxTime;
+ svTGD = vTGD;
+ svRelativity = vRel;
+ ionoCorrections = vIono;
+ tropoCorrections = vTrop;
+ observedPseudoranges = vObservedPR;
+ modeledPseudoranges = vModeledPR;
+ prefitResiduals = vPrefit;
+ elevationSV = vElevation;
+ azimuthSV = vAzimuth;
+
+ // Let's fill in the Geometry Matrix
+ geoMatrix.resize((size_t)validSats, 4); // First, set the correct size
+ int counter(0);
+ for ( iter=vCosines.begin(); iter!=vCosines.end(); iter++ )
+ {
+ geoMatrix(counter,0) = (*iter)[0];
+ geoMatrix(counter,1) = (*iter)[1];
+ geoMatrix(counter,2) = (*iter)[2];
+ geoMatrix(counter,3) = 1.0; // When using pseudorange method, this is 1.0
+ counter++;
+ }
+
+ if (validSats >= 4) validData = true;
+
+ return validSats; // Return number of valid satellites
+
+ } // end of "try"
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end ModeledReferencePR::Compute()
+
+
+ // Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int ModeledReferencePR::Compute(const DayTime& Tr, Vector<SatID>& Satellite,
+ Vector<double>& Pseudorange, const EphemerisStore& Eph) throw(Exception)
+ {
+ // Create missing parameters
+ Vector<double> vectorBIAS(1, 0.0);
+
+ // Let's call the most complete Compute method defined above
+ return ModeledReferencePR::Compute(Tr, Satellite, Pseudorange, Eph, vectorBIAS);
+ }
+
+
+ // Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int ModeledReferencePR::Compute(const DayTime& Tr, Vector<SatID>& Satellite,
+ Vector<double>& Pseudorange, const EphemerisStore& Eph, TropModel *pTropModel)
+ throw(Exception)
+ {
+ // Create missing parameters
+ Vector<double> vectorBIAS(1, 0.0);
+
+ // Let's call the most complete Compute method defined above
+ return ModeledReferencePR::Compute(Tr, Satellite, Pseudorange, Eph, vectorBIAS, pTropModel);
+ }
+
+
+ // Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int ModeledReferencePR::Compute(const DayTime& Tr, Vector<SatID>& Satellite,
+ Vector<double>& Pseudorange, const EphemerisStore& Eph, const Vector<double>& extraBiases,
+ IonoModelStore *pIonoModel) throw(Exception)
+ {
+ // Create missing parameters
+ TropModel *pTropModel=NULL;
+
+ // Let's call the most complete Compute method defined above
+ return ModeledReferencePR::Compute(Tr, Satellite, Pseudorange, Eph, extraBiases, pTropModel, pIonoModel);
+ }
+
+
+ // Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int ModeledReferencePR::Compute(const DayTime& Tr, Vector<SatID>& Satellite,
+ Vector<double>& Pseudorange, const EphemerisStore& Eph, IonoModelStore *pIonoModel)
+ throw(Exception)
+ {
+ // Create missing parameters
+ Vector<double> vectorBIAS(1, 0.0);
+ TropModel *pTropModel=NULL;
+
+ // Let's call the most complete Compute method defined above
+ return ModeledReferencePR::Compute(Tr, Satellite, Pseudorange, Eph, vectorBIAS, pTropModel, pIonoModel);
+ }
+
+
+ // Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int ModeledReferencePR::Compute(const DayTime& Tr, Vector<SatID>& Satellite,
+ Vector<double>& Pseudorange, const EphemerisStore& Eph, TropModel *pTropModel,
+ IonoModelStore *pIonoModel) throw(Exception)
+ {
+ // Create missing parameters
+ Vector<double> vectorBIAS(1, 0.0);
+
+ // Let's call the most complete Compute method defined above
+ return ModeledReferencePR::Compute(Tr, Satellite, Pseudorange, Eph, vectorBIAS, pTropModel, pIonoModel);
+ }
+
+
+ /* Compute just one modeled pseudorange, given satellite ID's, pseudorange and other data
+ * @param Tr Measured time of reception of the data.
+ * @param Satellite ID's of satellite
+ * @param Pseudorange Pseudorange (parallel to satellite), in meters.
+ * @param Eph EphemerisStore to be used.
+ * @param pTropModel Pointer to tropospheric model to be used (@sa TropModel.hpp). By
+ * default points to NULL.
+ * @param pIonoModel Pointer to ionospheric model to be used (@sa IonoModelStore.hpp).
+ * By default points to NULL.
+ * @param extraBiases Extra bias to be added to the model.
+ *
+ * @return
+ * 1 if satellite has valid data
+ */
+ int ModeledReferencePR::Compute(const DayTime& Tr, SatID& Satellite, double& Pseudorange,
+ const EphemerisStore& Eph, const double& extraBiases, TropModel *pTropModel,
+ IonoModelStore *pIonoModel) throw(Exception)
+ {
+ // Create Vectors from scalar values
+ Vector<SatID> vectorSV(1, Satellite);
+ Vector<double> vectorPR(1, Pseudorange);
+ Vector<double> vectorBIAS(1, extraBiases);
+
+ // Now, let's call one of the Compute methods defined above
+ return ModeledReferencePR::Compute(Tr, vectorSV, vectorPR, Eph, vectorBIAS, pTropModel, pIonoModel);
+ }
+
+
+
+ /* Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.
+ *
+ * @param time Epoch.
+ * @param gData Data object holding the data.
+ */
+ satTypeValueMap& ModeledReferencePR::processModel(const DayTime& time, satTypeValueMap& gData) throw(Exception)
+ {
+ Vector<SatID> Vsat = gData.getVectorOfSatID();
+ Vector<double> Vprange = gData.getVectorOfTypeID( (*this).getDefaultObservable() );
+ try
+ {
+ // Call the Compute() method with the defaults. Those defaults MUST HAVE BEEN
+ // previously set, usually when creating modPR with the appropriate constructor.
+ (*this).Compute( time, Vsat, Vprange, (*((*this).getDefaultEphemeris())), (*this).extraBiases, (*this).getDefaultTropoModel(), (*this).getDefaultIonoModel() );
+
+ // Once we get the result, it may be necessary to make some satellite cleanup
+ SatIDSet rejectedSet;
+ for (size_t i = 0; i<(*this).rejectedSV.size(); ++i) { rejectedSet.insert((*this).rejectedSV[i]); }
+ gData.removeSatID(rejectedSet); // All rejected satellites are removed
+
+ // Now we have to add the new values to the data structure
+ gData.insertTypeIDVector(TypeID::prefitC, (*this).prefitResiduals);
+ gData.insertTypeIDVector(TypeID::rho, (*this).geometricRho);
+ gData.insertTypeIDVector(TypeID::dtSat, (*this).svClockBiases);
+ gData.insertTypeIDVector(TypeID::rel, (*this).svRelativity);
+ gData.insertTypeIDVector(TypeID::ionoSlant, (*this).ionoCorrections);
+ gData.insertTypeIDVector(TypeID::tropoSlant, (*this).tropoCorrections);
+ gData.insertTypeIDVector(TypeID::elevation, (*this).elevationSV);
+ gData.insertTypeIDVector(TypeID::azimuth, (*this).azimuthSV);
+
+ // Get the instrumental delays right
+ if (useTGD)
+ {
+ TypeID instDelayType;
+ switch ( (*this).getDefaultObservable().type )
+ {
+ case TypeID::C1:
+ instDelayType = TypeID::instC1;
+ break;
+ case TypeID::C2:
+ instDelayType = TypeID::instC2;
+ break;
+ case TypeID::C5:
+ instDelayType = TypeID::instC5;
+ break;
+ case TypeID::C6:
+ instDelayType = TypeID::instC6;
+ break;
+ case TypeID::C7:
+ instDelayType = TypeID::instC7;
+ break;
+ case TypeID::C8:
+ instDelayType = TypeID::instC8;
+ break;
+ default:
+ instDelayType = TypeID::instC1;
+ };
+ gData.insertTypeIDVector(instDelayType, (*this).svTGD);
+ }
+
+ // Now, lets insert the geometry matrix
+ TypeIDSet tSet;
+ tSet.insert(TypeID::dx);
+ tSet.insert(TypeID::dy);
+ tSet.insert(TypeID::dz);
+ tSet.insert(TypeID::cdt);
+ gData.insertMatrix(tSet, (*this).geoMatrix);
+
+
+ return gData;
+ }
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+
+ } // End ModeledReferencePR::processModel(const DayTime& time, satTypeValueMap& gData)
+
+
+
+
+} // namespace
+
diff --git a/dev/src/ModeledReferencePR.hpp b/dev/src/ModeledReferencePR.hpp
new file mode 100644
index 0000000..33e4923
--- /dev/null
+++ b/dev/src/ModeledReferencePR.hpp
@@ -0,0 +1,615 @@
+/**
+ * @file ModeledReferencePR.hpp
+ * Class to compute modeled pseudoranges using a reference station
+ */
+
+#ifndef GPSTK_MODELEDREFERENCEPR_HPP
+#define GPSTK_MODELEDREFERENCEPR_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+
+#include "ModeledPseudorangeBase.hpp"
+#include "DayTime.hpp"
+#include "EngEphemeris.hpp"
+#include "EphemerisStore.hpp"
+#include "EphemerisRange.hpp"
+#include "TropModel.hpp"
+#include "IonoModel.hpp"
+#include "IonoModelStore.hpp"
+#include "Geodetic.hpp"
+#include "Position.hpp"
+#include "icd_200_constants.hpp"
+#include "TypeID.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /** This class compute modeled pseudoranges from satellites to a reference station.
+ *
+ * This class may be used either in a Vector- and Matrix-oriented way, or
+ * with GNSS data structure objects from "DataStructures" class. In any
+ * case, it is intented to be used with stations where the position is
+ * known (there comes the name: Modeled Reference station PseudoRange).
+ *
+ * A typical way to use this class with GNSS data structures follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o"); // Data stream
+ * RinexNavStream rnavin("brdc0300.02n"); // Ephemeris data stream
+ * RinexNavData rNavData;
+ * BCEphemerisStore bceStore;
+ * while (rnavin >> rNavData) bceStore.addEphemeris(rNavData);
+ * bceStore.SearchPast(); // This is the default
+ *
+ * RinexNavHeader rNavHeader;
+ * IonoModelStore ionoStore;
+ * IonoModel ioModel;
+ * rnavin >> rNavHeader; // Read navigation RINEX header
+ * ioModel.setModel(rNavHeader.ionAlpha, rNavHeader.ionBeta);
+ * ionoStore.addIonoModel(DayTime::BEGINNING_OF_TIME, ioModel);
+ *
+ * // EBRE station nominal position
+ * Position nominalPos(4833520.3800, 41536.8300, 4147461.2800);
+ *
+ * // Declare a tropospheric model object, setting the defaults
+ * MOPSTropModel mopsTM(nominalPos.getAltitude(), nominalPos.getGeodeticLatitude(), 30);
+ *
+ * // Declare the modeler object, setting all the parameters in one pass
+ * // As stated, it will compute the model using the C1 observable
+ * ModeledReferencePR modelRef(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1);
+ *
+ * gnssRinex gRin;
+ *
+ * while(rin >> gRin) {
+ * gRin >> modelRef;
+ * }
+ * @endcode
+ *
+ * The "ModeledReferencePR" object will visit every satellite in the
+ * GNSS data structure that is "gRin" and will try to compute its
+ * model: Prefit residual, geometric distance, relativity delay,
+ * ionospheric/tropospheric corrections, geometry matrix, etc.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the extra data inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not
+ * have the observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * @sa ModeledPseudorangeBase.hpp for base class.
+ *
+ */
+ class ModeledReferencePR : public ModeledPseudorangeBase
+ {
+ public:
+
+ /// Implicit constructor
+ ModeledReferencePR() throw(Exception) : useTGD(true), pDefaultIonoModel(NULL), pDefaultTropoModel(NULL), defaultObservable(TypeID::C1), pDefaultEphemeris(NULL)
+ {
+ InitializeValues();
+ };
+
+
+ /** Explicit constructor taking as input reference station coordinates.
+ *
+ * Those coordinates may be Cartesian (X, Y, Z in meters) or Geodetic
+ * (Latitude, Longitude, Altitude), but defaults to Cartesian.
+ *
+ * Also, a pointer to GeoidModel may be specified, but default is NULL
+ * (in which case WGS84 values will be used).
+ *
+ * @param aRx first coordinate [ X(m), or latitude (degrees N) ]
+ * @param bRx second coordinate [ Y(m), or longitude (degrees E) ]
+ * @param cRx third coordinate [ Z, height above ellipsoid or radius, in m ]
+ * @param s coordinate system (default is Cartesian, may be set to Geodetic).
+ * @param geoid pointer to GeoidModel (default is null, implies WGS84)
+ */
+ ModeledReferencePR(const double& aRx, const double& bRx, const double& cRx,
+ Position::CoordinateSystem s = Position::Cartesian,
+ GeoidModel *geoid = NULL) throw(Exception) : useTGD(true), pDefaultIonoModel(NULL), pDefaultTropoModel(NULL), defaultObservable(TypeID::C1), pDefaultEphemeris(NULL)
+ {
+ InitializeValues();
+ setInitialRxPosition(aRx, bRx, cRx, s, geoid);
+ };
+
+
+ /// Explicit constructor, taking as input a Position object containing reference station coordinates.
+ ModeledReferencePR(const Position& RxCoordinates) throw(Exception) : useTGD(true), pDefaultIonoModel(NULL), pDefaultTropoModel(NULL), defaultObservable(TypeID::C1), pDefaultEphemeris(NULL)
+ {
+ InitializeValues();
+ setInitialRxPosition(RxCoordinates);
+ };
+
+
+ /** Explicit constructor, taking as input reference station coordinates, default
+ * ionospheric and tropospheric models, ephemeris to be used, default observable
+ * and whether TGD will be computed or not.
+ *
+ * This constructor is meant to be used when working with GNSS data structures in
+ * order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Reference station coordinates.
+ * @param dIonoModel Ionospheric model to be used by default.
+ * @param dTropoModel Tropospheric model to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledReferencePR(const Position& RxCoordinates, IonoModelStore& dIonoModel, TropModel& dTropoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) {
+ InitializeValues();
+ setInitialRxPosition(RxCoordinates);
+ setDefaultIonoModel(dIonoModel);
+ setDefaultTropoModel(dTropoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input reference station coordinates, default
+ * ionospheric model, ephemeris to be used, default observable and whether TGD
+ * will be computed or not.
+ *
+ * The default tropospheric model will be set to NULL.
+ *
+ * This constructor is meant to be used when working with GNSS data structures in
+ * order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Reference station coordinates.
+ * @param dIonoModel Ionospheric model to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledReferencePR(const Position& RxCoordinates, IonoModelStore& dIonoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) : pDefaultTropoModel(NULL) {
+ InitializeValues();
+ setInitialRxPosition(RxCoordinates);
+ setDefaultIonoModel(dIonoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input reference station coordinates, default
+ * tropospheric model, ephemeris to be used, default observable and whether TGD
+ * will be computed or not.
+ *
+ * The default ionospheric model will be set to NULL.
+ *
+ * This constructor is meant to be used when working with GNSS data structures in
+ * order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Reference station coordinates.
+ * @param dTropoModel Tropospheric model to be used by default.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledReferencePR(const Position& RxCoordinates, TropModel& dTropoModel, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) : pDefaultIonoModel(NULL) {
+ InitializeValues();
+ setInitialRxPosition(RxCoordinates);
+ setDefaultTropoModel(dTropoModel);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Explicit constructor, taking as input reference station coordinates,
+ * ephemeris to be used, default observable and whether TGD will be computed
+ * or not.
+ *
+ * Both the tropospheric and ionospheric models will be set to NULL.
+ *
+ * This constructor is meant to be used when working with GNSS data structures in
+ * order to set the basic parameters from the beginning.
+ *
+ * @param RxCoordinates Reference station coordinates.
+ * @param dEphemeris EphemerisStore object to be used by default.
+ * @param dObservable Observable type to be used by default.
+ * @param usetgd Whether TGD will be used by default or not.
+ *
+ * @sa DataStructures.hpp.
+ */
+ ModeledReferencePR(const Position& RxCoordinates, EphemerisStore& dEphemeris, const TypeID& dObservable, bool usetgd = true) throw(Exception) : pDefaultIonoModel(NULL), pDefaultTropoModel(NULL) {
+ InitializeValues();
+ setInitialRxPosition(RxCoordinates);
+ setDefaultObservable(dObservable);
+ setDefaultEphemeris(dEphemeris);
+ useTGD = usetgd;
+ };
+
+
+ /** Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ * @param Tr Measured time of reception of the data.
+ * @param Satellite Vector of satellites; on successful return, satellites that
+ * were excluded by the algorithm are marked by a negative
+ * Satellite[i].prn
+ * @param Pseudorange Vector of raw pseudoranges (parallel to satellite), in meters.
+ * @param Eph EphemerisStore to be used.
+ * @param pTropModel Pointer to tropospheric model to be used. By default points to NULL.
+ * @param pIonoModel Pointer to ionospheric model to be used. By default points to NULL.
+ * @param extraBiases Vector of extra biases to be added to the model.
+ *
+ * @return
+ * Number of satellites with valid data
+ *
+ * @sa TropModel.hpp, IonoModelStore.hpp.
+ */
+ int Compute(const DayTime& Tr, Vector<SatID>& Satellite, Vector<double>& Pseudorange,
+ const EphemerisStore& Eph, const Vector<double>& extraBiases, TropModel
+ *pTropModel=NULL, IonoModelStore *pIonoModel=NULL) throw(Exception);
+
+
+ /// Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int Compute(const DayTime& Tr, Vector<SatID>& Satellite, Vector<double>& Pseudorange,
+ const EphemerisStore& Eph) throw(Exception);
+
+
+ /// Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int Compute(const DayTime& Tr, Vector<SatID>& Satellite, Vector<double>& Pseudorange,
+ const EphemerisStore& Eph, TropModel *pTropModel) throw(Exception);
+
+
+ /// Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int Compute(const DayTime& Tr, Vector<SatID>& Satellite, Vector<double>& Pseudorange,
+ const EphemerisStore& Eph, const Vector<double>& extraBiases, IonoModelStore
+ *pIonoModel) throw(Exception);
+
+
+ /// Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int Compute(const DayTime& Tr, Vector<SatID>& Satellite, Vector<double>& Pseudorange,
+ const EphemerisStore& Eph, IonoModelStore *pIonoModel) throw(Exception);
+
+
+ /// Compute the modeled pseudoranges, given satellite ID's, pseudoranges and other data
+ int Compute(const DayTime& Tr, Vector<SatID>& Satellite, Vector<double>& Pseudorange,
+ const EphemerisStore& Eph, TropModel *pTropModel, IonoModelStore *pIonoModel)
+ throw(Exception);
+
+
+ /** Compute just one modeled pseudorange, given satellite ID's, pseudorange and other data
+ * @param Tr Measured time of reception of the data.
+ * @param Satellite ID's of satellite
+ * @param Pseudorange Pseudorange (parallel to satellite), in meters.
+ * @param Eph EphemerisStore to be used.
+ * @param pTropModel Pointer to tropospheric model to be used. By default points to NULL.
+ * @param pIonoModel Pointer to ionospheric model to be used. By default points to NULL.
+ * @param extraBiases Extra bias to be added to the model.
+ *
+ * @return
+ * 1 if satellite has valid data
+ *
+ * @sa TropModel.hpp, IonoModelStore.hpp.
+ */
+ int Compute(const DayTime& Tr, SatID& Satellite, double& Pseudorange,
+ const EphemerisStore& Eph, const double& extraBiases, TropModel *pTropModel=NULL,
+ IonoModelStore *pIonoModel=NULL) throw(Exception);
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling a modeling object.
+ *
+ * @param time Epoch.
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& processModel(const DayTime& time, satTypeValueMap& gData) throw(Exception);
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling a modeling object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& processModel(gnssSatTypeValue& gData) throw(Exception)
+ {
+ (*this).processModel(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling a modeling object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& processModel(gnssRinex& gData) throw(Exception)
+ {
+ (*this).processModel(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /// Boolean variable indicating if SV instrumental delays (TGD) will be included in results. It is true by default.
+ bool useTGD;
+
+
+ /// Method to get satellite elevation cut-off angle. By default, it is set to 10 degrees.
+ virtual double getMinElev() const
+ {
+ return minElev;
+ };
+
+
+ /// Method to set satellite elevation cut-off angle. By default, it is set to 10 degrees.
+ virtual void setMinElev(double newElevation)
+ {
+ minElev = newElevation;
+ };
+
+
+ /** Method to set the default ionospheric model.
+ * @param dIonoModel Ionospheric model to be used by default.
+ */
+ virtual void setDefaultIonoModel(IonoModelStore& dIonoModel)
+ {
+ pDefaultIonoModel = &dIonoModel;
+ };
+
+
+ /** Method to get a pointer to the default ionospheric model.
+ */
+ virtual IonoModelStore* getDefaultIonoModel() const
+ {
+ return pDefaultIonoModel;
+ };
+
+
+ /// Method to set a NULL ionospheric model.
+ virtual void setNULLIonoModel()
+ {
+ pDefaultIonoModel = NULL;
+ };
+
+
+ /** Method to set the default tropospheric model.
+ * @param dTropoModel Tropospheric model to be used by default.
+ */
+ virtual void setDefaultTropoModel(TropModel& dTropoModel)
+ {
+ pDefaultTropoModel = &dTropoModel;
+ };
+
+
+ /** Method to get a pointer to the default tropospheric model.
+ */
+ virtual TropModel* getDefaultTropoModel() const
+ {
+ return pDefaultTropoModel;
+ };
+
+
+ /// Method to set a NULL tropospheric model.
+ virtual void setNULLTropoModel()
+ {
+ pDefaultTropoModel = NULL;
+ };
+
+
+ /** Method to set the default extra biases.
+ * @param eBiases Vector with the default extra biases
+ */
+ virtual void setDefaultExtraBiases(Vector<double>& eBiases)
+ {
+ extraBiases = eBiases;
+ };
+
+
+ /** Method to set the default observable to be used when fed with GNSS data structures.
+ * @param type TypeID object to be used by default
+ */
+ virtual void setDefaultObservable(const TypeID& type)
+ {
+ defaultObservable = type;
+ };
+
+
+ /// Method to get the default observable being used with GNSS data structures.
+ virtual TypeID getDefaultObservable() const
+ {
+ return defaultObservable;
+ };
+
+
+ /** Method to set the default EphemerisStore to be used with GNSS data structures.
+ * @param ephem EphemerisStore object to be used by default
+ */
+ virtual void setDefaultEphemeris(EphemerisStore& ephem)
+ {
+ pDefaultEphemeris = &ephem;
+ };
+
+
+ /** Method to get a pointer to the default EphemerisStore to be used with GNSS data structures.
+ */
+ virtual EphemerisStore* getDefaultEphemeris() const
+ {
+ return pDefaultEphemeris;
+ };
+
+
+ /// Destructor.
+ virtual ~ModeledReferencePR() throw() {};
+
+
+ protected:
+
+ /// Pointer to default ionospheric model.
+ IonoModelStore *pDefaultIonoModel;
+
+ /// Pointer to default tropospheric model.
+ TropModel *pDefaultTropoModel;
+
+ /// Default observable to be used when fed with GNSS data structures.
+ TypeID defaultObservable;
+
+ /// Pointer to default EphemerisStore object when working with GNSS data structures.
+ EphemerisStore* pDefaultEphemeris;
+
+ /// Initialization method
+ virtual void InitializeValues() throw(Exception) {
+ setInitialRxPosition();
+ geometricRho(0);
+ svClockBiases(0);
+ svXvt(0);
+ svTGD(0);
+ svRelativity(0);
+ ionoCorrections(0);
+ tropoCorrections(0);
+ modeledPseudoranges(0);
+ prefitResiduals(0);
+ extraBiases(0);
+ availableSV(0);
+ rejectedSV(0);
+ };
+
+
+ /** Method to set the initial (a priori) position of receiver.
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int setInitialRxPosition(const double& aRx, const double& bRx, const double& cRx,
+ Position::CoordinateSystem s=Position::Cartesian,
+ GeoidModel *geoid=NULL) throw(GeometryException)
+ {
+ try {
+ Position rxpos(aRx, bRx, cRx, s, geoid);
+ setInitialRxPosition(rxpos);
+ return 0;
+ }
+ catch(GeometryException& e) {
+ return -1;
+ }
+ };
+
+
+ /// Method to set the initial (a priori) position of receiver.
+ virtual int setInitialRxPosition(const Position& RxCoordinates) throw(GeometryException)
+ {
+ try {
+ (*this).rxPos = RxCoordinates;
+ return 0;
+ }
+ catch(GeometryException& e) {
+ return -1;
+ }
+ };
+
+
+ /// Method to set the initial (a priori) position of receiver.
+ virtual int setInitialRxPosition() throw(GeometryException)
+ {
+ try {
+ Position rxpos(0.0, 0.0, 0.0, Position::Cartesian, NULL);
+ setInitialRxPosition(rxpos);
+ return 0;
+ }
+ catch(GeometryException& e) {
+ return -1;
+ }
+ };
+
+
+ /// Method to get the tropospheric corrections.
+ virtual double getTropoCorrections(TropModel *pTropModel, double elevation) throw()
+ {
+ double tropoCorr(0.0);
+ try {
+ tropoCorr = pTropModel->correction(elevation);
+ // Check validity
+ if(!(pTropModel->isValid())) tropoCorr = 0.0;
+ }
+ catch(TropModel::InvalidTropModel& e) {
+ tropoCorr = 0.0;
+ }
+ return tropoCorr;
+ };
+
+
+ /// Method to get the ionospheric corrections.
+ virtual double getIonoCorrections(IonoModelStore *pIonoModel, DayTime Tr, Geodetic rxGeo, double elevation, double azimuth) throw()
+ {
+ double ionoCorr(0.0);
+ try {
+ ionoCorr = pIonoModel->getCorrection(Tr, rxGeo, elevation, azimuth);
+ }
+ catch(IonoModelStore::NoIonoModelFound& e) {
+ ionoCorr = 0.0;
+ }
+ return ionoCorr;
+ };
+
+
+ /// Method to get TGD corrections.
+ virtual double getTGDCorrections(DayTime Tr, const EphemerisStore& Eph, SatID sat) throw()
+ {
+
+ double TGDCorr(0.0);
+
+ try {
+ TGDCorr = (Eph.getTGD(sat, Tr));
+ }
+ catch(EphemerisStore::NoTGDFound& e) {
+ TGDCorr = 0.0;
+ }
+ return TGDCorr;
+ };
+
+
+ }; // class ModeledReferencePR
+
+
+ /// Input operator from gnssSatTypeValue to ModeledReferencePR.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, ModeledReferencePR& modRefPR) throw(Exception)
+ {
+ modRefPR.processModel(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to ModeledReferencePR.
+ inline gnssRinex& operator>>(gnssRinex& gData, ModeledReferencePR& modRefPR) throw(Exception)
+ {
+ modRefPR.processModel(gData);
+ return gData;
+ }
+
+
+
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/NablaOp.cpp b/dev/src/NablaOp.cpp
new file mode 100644
index 0000000..f21dc28
--- /dev/null
+++ b/dev/src/NablaOp.cpp
@@ -0,0 +1,106 @@
+
+/**
+ * @file NablaOp.cpp
+ * This is a class to apply the Nabla operator (differences on satellite-related data) to GNSS data structures.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+#include "NablaOp.hpp"
+
+
+namespace gpstk
+{
+
+ // Returns a reference to a gnssSatTypeValue object after differencing the
+ // data type values given in the diffTypes field with respect to reference
+ // satellite data.
+ //
+ // @param gData Data object holding the data.
+ //
+ satTypeValueMap& NablaOp::Difference(satTypeValueMap& gData)
+ {
+
+ double maxElevation(0.0);
+
+ // If configured to do so, let's look for the reference satellite
+ if (lookReferenceSat) {
+ // Loop through all the satellites in the station data set, looking for the reference satellite
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ if ( gData((*it).first)(TypeID::elevation) > maxElevation )
+ {
+ refSat = (*it).first;
+ maxElevation = gData((*it).first)(TypeID::elevation);
+ }
+ }
+ }
+
+ // We will use the reference satellite data as reference data
+ satTypeValueMap refData(gData.extractSatID(refSat));
+
+ // We must remove the reference satellite data from the data set
+ gData.removeSatID(refSat);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites in the station data set
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ // We must compute the difference for all the types in diffTypes set
+ TypeIDSet::const_iterator itType;
+ for (itType = diffTypes.begin(); itType != diffTypes.end(); ++itType)
+ {
+
+ double value1(0.0);
+ double value2(0.0);
+
+ try
+ {
+ // Let's try to compute the difference
+ value1 = gData((*it).first)(*itType);
+ value2 = refData(refSat)(*itType);
+
+ gData((*it).first)((*itType)) = value1 - value2;
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ }
+
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+
+ } // end NablaOp::Difference()
+
+
+} // end namespace gpstk
diff --git a/dev/src/NablaOp.hpp b/dev/src/NablaOp.hpp
new file mode 100644
index 0000000..c808915
--- /dev/null
+++ b/dev/src/NablaOp.hpp
@@ -0,0 +1,284 @@
+
+/**
+ * @file NablaOp.hpp
+ * This is a class to apply the Nabla operator (differences on satellite-related data) to GNSS data structures.
+ */
+
+#ifndef NABLAOP_HPP
+#define NABLAOP_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "TypeID.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * This class applies the Nabla operator (differences on satellite-related data)
+ * to GNSS data structures.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * // Input observation file stream
+ * RinexObsStream rin("ebre0300.02o");
+ * // Reference position of receiver station
+ * Position nominalPos(4833520.2269, 41537.00768, 4147461.489);
+ *
+ * // Some more code and definitions here...
+ *
+ * gnssRinex gRin; // GNSS data structure for rover data
+ *
+ * // Set defaults of models. A typical C1-based modeling is used
+ * ModeledPR model(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1, true);
+ *
+ * // Create an object to compute the single differences on satellite-related
+ * // data. Highest satellite will be used as reference and prefit residuals will
+ * // be differenced (this is the default)
+ * NablaOp nabla;
+ *
+ * while(rin >> gRin) {
+ *
+ * // By default, difference is applied on code prefit residuals, and therefore
+ * // you need a modeler object before nabla object
+ * gRin >> model >> nabla;
+ * }
+ *
+ * @endcode
+ *
+ * The "NablaOp" object will visit every satellite in the GNSS data structure that
+ * is "gRin" and, unless told otherwise with "setRefSat()" method, will pick up as
+ * reference satellite the satellite with the highest elevation.
+ *
+ * Afterwards, it will REMOVE reference satellite data from the GNSS data structure
+ * and will substract the specified type or types (code prefit residuals by default)
+ * from the corresponding data in the rest of the "gRef" data structure.
+ *
+ * Take notice that in the default case the code prefit residuals were computed by
+ * the "ModeledPR" and "ModeledReferencePR" objects, so those steps are mandatory.
+ *
+ * Be warned that, by default, if a given satellite does not have in "gRin" the data
+ * required to be differenced, it will be summarily deleted from the data structure.
+ *
+ * @sa DeltaOp.hpp for differences on ground-related data.
+ *
+ */
+ class NablaOp
+ {
+ public:
+
+ /// Default constructor. By default it will difference prefitC data and will take as reference satellite the one with the highest elevation.
+ NablaOp() : lookReferenceSat(true)
+ {
+ diffTypes.insert(TypeID::prefitC);
+ };
+
+
+ /** Common constructor taking as input the reference satellite to be used.
+ *
+ * @param rSat SatID of satellite to be used as reference.
+ */
+ NablaOp(const SatID& rSat) : refSat(rSat), lookReferenceSat(false)
+ {
+ diffTypes.insert(TypeID::prefitC);
+ };
+
+
+ /** Common constructor taking as input the type of data values to be differenced.
+ *
+ * @param difftype TypeID of data values to be differenced.
+ */
+ NablaOp(const TypeID& difftype) : lookReferenceSat(true)
+ {
+ diffTypes.insert(difftype);
+ }
+
+
+ /** Common constructor taking as input the type of data values to be differenced and the reference satellite.
+ *
+ * @param rSat SatID of satellite to be used as reference.
+ * @param difftype TypeID of data values to be differenced.
+ */
+ NablaOp(const SatID& rSat, const TypeID& difftype) : refSat(rSat), lookReferenceSat(false)
+ {
+ diffTypes.insert(difftype);
+ }
+
+
+ /** Common constructor taking as input a set of types of data values to be differenced and the reference satellite.
+ *
+ * @param rSat SatID of satellite to be used as reference.
+ * @param diffSet TypeIDSet of data values to be differenced.
+ */
+ NablaOp(const SatID& rSat, const TypeIDSet& diffSet) : refSat(rSat), lookReferenceSat(false), diffTypes(diffSet) {}
+
+
+ /** Method to set the reference satellite to be used. It is not common to use this method.
+ * @param rSat SatID of reference satellite to be used.
+ */
+ virtual void setRefSat(const SatID& rSat)
+ {
+ refSat = rSat;
+ lookReferenceSat = false;
+ };
+
+
+ /// Method to set that the reference satellite will be the one with highest elevation. This is the default.
+ virtual void useHighestSat()
+ {
+ lookReferenceSat = true;
+ };
+
+
+ /// Method to get the reference satellite being used.
+ virtual SatID getRefSat() const
+ {
+ return refSat;
+ };
+
+
+ /** Method to set the data values to be differenced. The previous type values will be deleted. If this is not what you want, see method addDiffType.
+ * @param difftype TypeID of data values to be differenced.
+ */
+ virtual void setDiffType(const TypeID& difftype)
+ {
+ diffTypes.clear(); // Delete the previous types
+ diffTypes.insert(difftype);
+ };
+
+
+ /** Method to add a data value type to be differenced.
+ * @param difftype TypeID of data values to be added to the ones being differenced.
+ */
+ virtual void addDiffType(const TypeID& difftype)
+ {
+ diffTypes.insert(difftype);
+ };
+
+
+ /** Method to set the data values to be differenced. The previous type values will be deleted. If this is not what you want, see method addDiffType.
+ * @param diffSet TypeIDSet of data values to be differenced.
+ */
+ virtual void setDiffTypeSet(const TypeIDSet& diffSet)
+ {
+ diffTypes.clear(); // Delete the previous types
+ diffTypes = diffSet;
+ };
+
+
+ /** Method to add a set of data value types to be differenced.
+ * @param diffSet TypeIDSet of data values to be added to the ones being differenced.
+ */
+ virtual void addDiffTypeSet(const TypeIDSet& diffSet)
+ {
+ TypeIDSet::const_iterator pos;
+ for (pos = diffSet.begin(); pos != diffSet.end(); ++pos) diffTypes.insert(*pos);
+ };
+
+
+ /// Method to get the set of data value types to be differenced.
+ virtual TypeIDSet getDiffTypeSet() const
+ {
+ return diffTypes;
+ };
+
+
+ /** Returns a reference to a satTypeValueMap object after differencing the data type values given in the diffTypes field with respect to reference station data in refData field.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Difference(satTypeValueMap& gData);
+
+
+ /** Returns a reference to a gnssSatTypeValue object after differencing the data type values given in the diffTypes field with respect to reference station data in refData field.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Difference(gnssSatTypeValue& gData)
+ {
+ (*this).Difference(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a reference to a gnnsRinex object after differencing the data type values given in the diffTypes field with respect to reference station data in refData field.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Difference(gnssRinex& gData)
+ {
+ (*this).Difference(gData.body);
+ return gData;
+ };
+
+
+ /// Destructor.
+ virtual ~NablaOp() {};
+
+
+ private:
+
+
+ /// SatID of reference satellite.
+ SatID refSat;
+
+
+ /// Flag indicating if we have to look for a reference satellite.
+ bool lookReferenceSat;
+
+
+
+ /// Set (TypeIDSet) containing the types of data to be differenced.
+ TypeIDSet diffTypes;
+
+
+ }; // class NablaOp
+
+
+ /// Input operator from gnssSatTypeValue to NablaOp.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, NablaOp& nabla)
+ {
+ nabla.Difference(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to NablaOp.
+ inline gnssRinex& operator>>(gnssRinex& gData, NablaOp& nabla)
+ {
+ nabla.Difference(gData);
+ return gData;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/ORDEpoch.hpp b/dev/src/ORDEpoch.hpp
new file mode 100644
index 0000000..3b88d10
--- /dev/null
+++ b/dev/src/ORDEpoch.hpp
@@ -0,0 +1,113 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ORDEpoch.hpp
+ * A set of observed range deviations for a single point in time from
+ * a single receiver.
+ */
+
+#ifndef ORDEPOCH_HPP
+#define ORDEPOCH_HPP
+
+#include <map>
+#include "Exception.hpp"
+#include "ObsRngDev.hpp"
+#include "ClockModel.hpp"
+#include "SatID.hpp"
+
+namespace gpstk
+{
+ class ORDEpoch
+ {
+ public:
+ ORDEpoch() : wonky(false) {};
+
+ /// defines a store for each SV's ord, indexed by prn
+ typedef std::map<SatID, ObsRngDev> ORDMap;
+
+ ORDEpoch& removeORD(const SatID& svid) throw()
+ {
+ ORDMap::iterator i = ords.find(svid);
+ if(i != ords.end())
+ ords.erase(i);
+ return *this;
+ }
+
+ ORDEpoch& applyClockModel(const ClockModel& cm) throw()
+ {
+ if (cm.isOffsetValid(time))
+ {
+ clockOffset = cm.getOffset(time);
+ removeOffset(clockOffset);
+ }
+ return *this;
+ }
+
+ ORDEpoch& removeOffset(const double offset) throw()
+ {
+ ORDMap::iterator i;
+ for (i = ords.begin(); i != ords.end(); i++)
+ i->second.applyClockOffset(offset);
+ return *this;
+ }
+
+ vdouble clockOffset; ///< clock bias value (application defined units)
+ vdouble clockResidual; ///< clock bias minus expected value
+ ORDMap ords; ///< map of ORDs in epoch
+ gpstk::DayTime time;
+ bool wonky; ///< Indicates that this epoch is suspect
+
+ friend std::ostream& operator<<(std::ostream& s,
+ const ORDEpoch& oe)
+ throw()
+ {
+ s << "t=" << oe.time
+ << " clk=" << oe.clockOffset << std::endl;
+ ORDMap::const_iterator i;
+ for (i=oe.ords.begin(); i!=oe.ords.end(); i++)
+ s << i->second << std::endl;
+ return s;
+ }
+
+ };
+
+ // this is a store of ORDs over time
+ typedef std::map<gpstk::DayTime, gpstk::ORDEpoch> ORDEpochMap;
+}
+#endif
diff --git a/dev/src/ObsClockModel.cpp b/dev/src/ObsClockModel.cpp
new file mode 100644
index 0000000..a717349
--- /dev/null
+++ b/dev/src/ObsClockModel.cpp
@@ -0,0 +1,183 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ObsClockModel.cpp
+ * Yet another abstract class used to define an interface to a model that
+ * accepts GPS observation datat and determines a clock model from it. It
+ * mainly adds the ability to specify the characteristcs of the observations
+ * that are to be accpeted into the model. It also defines a function that
+ * accepts Observed Range Deviations and computes the mean of these (that
+ * meet the selection criteria) as an estimate of the receiver clock.
+ */
+
+#include <math.h>
+
+#include "ObsClockModel.hpp"
+
+namespace gpstk
+{
+ using namespace std;
+
+
+ ObsClockModel::SvStatus ObsClockModel::getSvStatus(const SatID& svid) const
+ throw(gpstk::ObjectNotFound)
+ {
+ SvStatusMap::const_iterator i = status.find(svid);
+ if(i == status.end())
+ {
+ gpstk::ObjectNotFound e("No status for SV " +
+ StringUtils::asString(svid) +
+ " available.");
+ GPSTK_THROW(e);
+ }
+ else
+ return i->second;
+ }
+
+
+ ObsClockModel& ObsClockModel::setSvModeMap(const SvModeMap& right)
+ throw()
+ {
+ for(int prn = 1; prn <= gpstk::MAX_PRN; prn++)
+ modes[SatID(prn, SatID::systemGPS)] = IGNORE;
+
+ for(SvModeMap::const_iterator i = right.begin(); i != right.end(); i++)
+ modes[i->first] = i->second;
+
+ return *this;
+ }
+
+
+ ObsClockModel::SvMode ObsClockModel::getSvMode(const SatID& svid) const
+ throw(gpstk::ObjectNotFound)
+ {
+ SvModeMap::const_iterator i = modes.find(svid);
+ if(i == modes.end())
+ {
+ gpstk::ObjectNotFound e("No status for SV " +
+ StringUtils::asString(svid) +
+ " available.");
+ GPSTK_THROW(e);
+ }
+ else
+ return i->second;
+ }
+
+
+ gpstk::Stats<double> ObsClockModel::simpleOrdClock(const ORDEpoch& oe)
+ throw(gpstk::InvalidValue)
+ {
+ gpstk::Stats<double> stat;
+
+ status.clear();
+
+ ORDEpoch::ORDMap::const_iterator itr;
+ for(itr = oe.ords.begin(); itr != oe.ords.end(); itr++)
+ {
+ const SatID& svid = itr->first;
+ const ObsRngDev& ord=itr->second;
+ switch (modes[svid])
+ {
+ case IGNORE:
+ status[svid] = MANUAL;
+ break;
+ case ALWAYS:
+ status[svid] = USED;
+ break;
+ case HEALTHY:
+ // SV Health bits are defined in ICD-GPS-200C-IRN4 20.3.3.3.1.4
+ // It is a 6-bit value where the MSB (0x20) indicates a summary of
+ // of NAV data health where 0 = OK, 1 = some or all BAD
+ if (ord.getHealth().is_valid() && (ord.getHealth() & 0x20))
+ status[svid] = SVHEALTH;
+ else
+ status[svid] = USED;
+ break;
+ }
+
+ if (ord.getElevation() < elvmask)
+ status[svid] = ELEVATION;
+
+ if (ord.wonky && !useWonkyData)
+ status[svid] = WONKY;
+
+ if (status[svid] == USED)
+ stat.Add(ord.getORD());
+ }
+
+ if (stat.N() > 2)
+ {
+ for (itr = oe.ords.begin(); itr != oe.ords.end(); itr++)
+ {
+ const SatID& svid = itr->first;
+
+ // don't override other types of stripping
+ if (status[svid] == USED)
+ {
+ // get absolute distance of residual from mean
+ double res = itr->second.getORD();
+ double dist = res - stat.Average();
+ if(fabs(dist) > (sigmam * stat.StdDev()))
+ status[svid] = SIGMA;
+ }
+ }
+
+ // now, recompute the statistics on unstripped residuals to get
+ // the clock bias value
+ stat.Reset();
+ for (itr = oe.ords.begin(); itr != oe.ords.end(); itr++)
+ if (status[itr->second.getSvID()] == USED)
+ stat.Add(itr->second.getORD());
+ }
+
+ return stat;
+ }
+
+ void ObsClockModel::dump(ostream& s, short detail) const throw()
+ {
+ s << "min elev:" << elvmask
+ << ", max sigma:" << sigmam
+ << ", prn/status: ";
+
+ ObsClockModel::SvStatusMap::const_iterator i;
+ for ( i=status.begin(); i!= status.end(); i++)
+ s << i->first << "/" << i->second << " ";
+ }
+}
+
diff --git a/dev/src/ObsClockModel.hpp b/dev/src/ObsClockModel.hpp
new file mode 100644
index 0000000..14a625b
--- /dev/null
+++ b/dev/src/ObsClockModel.hpp
@@ -0,0 +1,224 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef OBSCLOCKMODEL_HPP
+#define OBSCLOCKMODEL_HPP
+
+#include <map>
+#include "Exception.hpp"
+#include "gps_constants.hpp"
+
+#include "Stats.hpp"
+#include "ClockModel.hpp"
+#include "ORDEpoch.hpp"
+
+/**
+ * @file ObsClockModel.hpp
+ * Yet another abstract class used to define an interface to a model that
+ * accepts GPS observation datat and determines a clock model from it. It
+ * mainly adds the ability to specify the characteristcs of the observations
+ * that are to be accpeted into the model. It also defines a function that
+ * accepts Observed Range Deviations and computes the mean of these (that
+ * meet the selection criteria) as an estimate of the receiver clock.
+ */
+
+
+namespace gpstk
+{
+ class ObsClockModel : public ClockModel
+ {
+ public:
+ enum SvMode
+ {
+ IGNORE, ///< do not include ORDs from this SV
+ HEALTHY, ///< include ORDs from this SV if it is healthy
+ ALWAYS ///< always include ORDs from this SV
+ };
+
+ enum SvStatus
+ {
+ USED, ///< ORD used in the clock bias computation
+ MANUAL, ///< ORD removed from computation by user request
+ SVHEALTH, ///< ORD removed from computation because SV unhealthy
+ ELEVATION, ///< ORD removed from computation because SV elevation < mask
+ WONKY, ///< ORD removed due to being flagged wonky
+ SIGMA ///< ORD removed from computation because it was outlier
+ };
+
+ /// defines a store for each SV's #SvMode
+ typedef std::map<SatID, SvMode> SvModeMap;
+
+ /// defines a store for each SV's #SvStatus
+ typedef std::map<SatID, SvStatus> SvStatusMap;
+
+ ObsClockModel(double sigma = 2, double elmask = 0, SvMode mode = ALWAYS)
+ : sigmam(sigma), elvmask(elmask), useWonkyData(false)
+ {
+ status.clear();
+ setSvMode(mode);
+ }
+
+ virtual void addEpoch(const ORDEpoch& re) throw(gpstk::InvalidValue) = 0;
+
+ // set accessor methods ----------------------------------------------
+
+ /**
+ * set a SvMode for all SVs.
+ * \param right #SvModeMap
+ * \return a reference to this object
+ */
+ ObsClockModel& setSvModeMap(const SvModeMap& right) throw();
+
+ /**
+ * set the SvMode for a particular SV.
+ * \param prn Sv number of the SV
+ * \param mode #SvMode for the SV
+ * \return a reference to this object
+ */
+ ObsClockModel& setSvMode(const SatID& svid, const SvMode& mode) throw()
+ { modes[svid] = mode; return *this; }
+
+ /**
+ * set the SvMode for all SVs
+ * \param mode #SvMode for the SVs
+ * \return a reference to this object
+ */
+ ObsClockModel& setSvMode(const SvMode& mode) throw()
+ {
+ for(int prn = 1; prn <= gpstk::MAX_PRN; prn++)
+ {
+ SatID svid(prn, SatID::systemGPS);
+ modes[svid] = mode;
+ }
+ return *this;
+ }
+
+ /**
+ * set the sigma multiple for ORD stripping.
+ * \param right sigma multiple value
+ * \return a reference to this object
+ */
+ ObsClockModel& setSigmaMultiplier(double right) throw()
+ { sigmam = right; return *this; }
+
+ /**
+ * set the elevation mask angle for ORD stripping.
+ * \param right elevation mask angle value
+ * \return a reference to this object
+ */
+ ObsClockModel& setElevationMask(double right) throw()
+ { elvmask = right; return *this; }
+
+ /** Set useWonkyData true and ords that are flagged as wonky
+ will be included in any clock estimation calculations.
+ **/
+ ObsClockModel& setUseWonkyData(bool right) throw()
+ { useWonkyData = right; return *this; }
+
+ // get accessor methods ----------------------------------------------
+
+ /**
+ * get the map indicating how each ORD was used in the bias computation.
+ * \return a const reference to the #SvStatusMap
+ */
+ const SvStatusMap& getSvStatusMap() const throw()
+ { return status; };
+
+ /**
+ * get the status of a particular ORD in the bias computation.
+ * \param prn the PRN number indicating the ORD of interest
+ * \return #SvStatus
+ * \exception ObjectNotFound an ORD for that SV is not in the map
+ */
+ SvStatus getSvStatus(const SatID& svid) const throw(ObjectNotFound);
+
+ /**
+ * get the map indicating how to use each ORD in the bias computation.
+ * \return a const reference to the #SvModeMap
+ */
+ const SvModeMap& getSvModeMap() const throw() { return modes; }
+
+ /**
+ * get how a particular ORD is to be used in the bias computation.
+ * \param prn the Sv number indicating the mode of interest
+ * \return #SvMode
+ * \exception ObjectNotFound a mode for that SV is not in the map
+ */
+ SvMode getSvMode(const SatID& svid) const throw(ObjectNotFound);
+
+ /**
+ * returns the sigma multiple value used for ORD stripping.
+ * \return sigma multiple
+ */
+ double getSigmaMultiplier() const throw() { return sigmam; }
+
+ /**
+ * returns the elevation mask angle used for ORD stripping.
+ * \return elevation mask angle
+ */
+ double getElevationMask() const throw() { return elvmask; }
+
+
+ /**
+ * return the current value of the userWonkyData flag.
+ */
+ bool getUseWonkyData() const throw()
+ { return useWonkyData; }
+
+ /// Computes an average of all ORD in the epoch that pass the elevation
+ /// mask, and SvModeMap tests, removes those ORDS that exceede the sigmam
+ /// value and returns the resulting statistics. This is effectivly a simple
+ /// single epoch clock model.
+ Stats<double> simpleOrdClock(const ORDEpoch& oe)
+ throw(InvalidValue);
+
+ virtual void dump(std::ostream& s, short detail=1) const throw();
+
+ friend std::ostream& operator<<(std::ostream& s, const ObsClockModel& r)
+ { r.dump(s, 0); return s; };
+
+ protected:
+
+ double sigmam; ///< sigma multiple value for ORD stripping
+ double elvmask; ///< elevation mask angle for ORD stripping
+ SvStatusMap status; ///< map of ORD usage in bias computation
+ SvModeMap modes; ///< map of modes to use ORDs in bias computation
+ bool useWonkyData; ///< set to use ords that are flagged wonky
+ };
+}
+#endif
diff --git a/dev/src/ObsEpochMap.cpp b/dev/src/ObsEpochMap.cpp
new file mode 100644
index 0000000..63af43b
--- /dev/null
+++ b/dev/src/ObsEpochMap.cpp
@@ -0,0 +1,76 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ObsEpochMap.cpp
+ * A class encapsulating observation data (roughly standard RINEX obs and met files).
+ */
+
+#include "ObsEpochMap.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+ // These are just to facilitate debugging. The format of the data output
+ // is quite ad-hoc and may change.
+ std::ostream& operator<<(std::ostream& s, const SvObsEpoch& obs)
+ throw()
+ {
+ SvObsEpoch::const_iterator i;
+ for (i=obs.begin(); i != obs.end(); i++)
+ {
+ if (i != obs.begin())
+ s << ", ";
+ s << i->first << ": " << i->second;
+ }
+ return s;
+ }
+
+ std::ostream& operator<<(std::ostream& s, const ObsEpoch& oe)
+ throw()
+ {
+ s << oe.time << ", rxClock: " << oe.rxClock << endl;
+ ObsEpoch::const_iterator i;
+ for (i=oe.begin(); i!=oe.end(); i++)
+ s << i->first << ": " << i->second << endl;
+
+ return s;
+ }
+} // namespace
diff --git a/dev/src/ObsEpochMap.hpp b/dev/src/ObsEpochMap.hpp
new file mode 100644
index 0000000..0273bd1
--- /dev/null
+++ b/dev/src/ObsEpochMap.hpp
@@ -0,0 +1,80 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef GPSTK_OBSEPOCHMAP_HPP
+#define GPSTK_OBSEPOCHMAP_HPP
+
+/**
+ * @file ObsEpochMap.hpp
+ * A class encapsulating observation data
+ */
+
+
+#include <map>
+#include <iostream>
+
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "ObsID.hpp"
+#include "ValidType.hpp"
+
+namespace gpstk
+{
+ // All the observations collected from a single SV at a single epoch
+ struct SvObsEpoch : public std::map<ObsID, double>
+ {
+ gpstk::SatID svid;
+ vfloat azimuth, elevation;
+ };
+
+ /// All the observations collected from a single receiver at a single epoch
+ struct ObsEpoch : public std::map<SatID, SvObsEpoch>
+ {
+ gpstk::DayTime time;
+ vdouble rxClock;
+ };
+
+ /// A time history of the observations collected from a single receiver.
+ typedef std::map<DayTime, ObsEpoch> ObsEpochMap;
+
+ std::ostream& operator<<(std::ostream& s, const SvObsEpoch& obs) throw();
+ std::ostream& operator<<(std::ostream& s, const ObsEpoch& oe) throw();
+
+} // namespace
+
+#endif
diff --git a/dev/src/ObsID.cpp b/dev/src/ObsID.cpp
new file mode 100644
index 0000000..845dd28
--- /dev/null
+++ b/dev/src/ObsID.cpp
@@ -0,0 +1,170 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+#include "ObsID.hpp"
+
+
+/**
+ * @file ObsID.cpp
+ * gpstk::ObsID - Identifies types of observations
+ */
+
+namespace gpstk
+{
+ std::map< ObsID::TrackingCode, std::string > ObsID::tcStrings;
+ std::map< ObsID::CarrierBand, std::string > ObsID::cbStrings;
+ std::map< ObsID::ObservationType, std::string > ObsID::otStrings;
+
+ ObsID::Initializer singleton;
+
+ ObsID::Initializer::Initializer()
+ {
+ cbStrings[cbUnknown] = "UnknownBand";
+ cbStrings[cbL1] = "L1";
+ cbStrings[cbL2] = "L2";
+ cbStrings[cbL5] = "L5";
+ cbStrings[cbL1L2] = "L1+L2";
+ cbStrings[cbG1] = "G1";
+ cbStrings[cbG2] = "G2";
+ cbStrings[cbE5b] = "E5b";
+ cbStrings[cbE5ab] = "L5a+b";
+ cbStrings[cbE6] = "E6";
+
+ otStrings[otUnknown] = "UnknownType";
+ otStrings[otRange] = "range";
+ otStrings[otPhase] = "phase";
+ otStrings[otDoppler] = "doppler";
+ otStrings[otSNR] = "snr";
+ otStrings[otSSI] = "ssi";
+ otStrings[otLLI] = "lli";
+
+ tcStrings[tcUnknown] = "UnknownCode";
+ tcStrings[tcCA] = "C/A";
+ tcStrings[tcP] = "P";
+ tcStrings[tcY] = "Y";
+ tcStrings[tcW] = "W";
+ tcStrings[tcN] = "N";
+ tcStrings[tcM] = "M";
+ tcStrings[tcC2M] = "C2M";
+ tcStrings[tcC2L] = "C2L";
+ tcStrings[tcC2LM] = "C2L+M";
+ tcStrings[tcI5] = "I5";
+ tcStrings[tcQ5] = "Q5";
+ tcStrings[tcIQ5] = "I+Q";
+ tcStrings[tcA] = "A";
+ tcStrings[tcB] = "B";
+ tcStrings[tcC] = "C";
+ tcStrings[tcBC] = "B+C";
+ tcStrings[tcABC] = "A+B+C";
+ }
+
+
+ std::ostream& ObsID::dump(std::ostream& s) const
+ {
+ s << ObsID::cbStrings[band] << " "
+ << ObsID::tcStrings[code] << " "
+ << ObsID::otStrings[type];
+
+ return s;
+ } // ObsID::dump()
+
+ bool ObsID::isValid() const
+ {
+ // At some time this needs to be implimented.
+ return false;
+ }
+
+ ObsID::CarrierBand ObsID::newCarrierBand(const std::string& s)
+
+ {
+ CarrierBand newId =
+ static_cast<CarrierBand>(ObsID::cbStrings.rbegin()->first + 1);
+ ObsID::cbStrings[newId] = s;
+ return newId;
+ }
+
+ ObsID::ObservationType ObsID::newObservationType(const std::string& s)
+ {
+ ObservationType newId =
+ static_cast<ObservationType>(ObsID::otStrings.rbegin()->first + 1);
+ ObsID::otStrings[newId] = s;
+ return newId;
+ }
+
+ ObsID::TrackingCode ObsID::newTrackingCode(const std::string& s)
+ {
+ TrackingCode newId =
+ static_cast<TrackingCode>(ObsID::tcStrings.rbegin()->first + 1);
+ ObsID::tcStrings[newId] = s;
+ return newId;
+ }
+
+ bool ObsID::operator==(const ObsID& right) const
+ { return type==right.type && band==right.band && code==right.code; }
+
+ bool ObsID::operator<(const ObsID& right) const
+ {
+ if (band == right.band)
+ if (code == right.code)
+ return type < right.type;
+ else
+ return code < right.code;
+ else
+ return band < right.band;
+
+ // This should never be reached...
+ return false;
+ }
+
+ namespace StringUtils
+ {
+ /// convert this object to a string representation
+ std::string asString(const ObsID& p)
+ {
+ std::ostringstream oss;
+ p.dump(oss);
+ return oss.str();
+ }
+ }
+
+ /// stream output for ObsID
+ std::ostream& operator<<(std::ostream& s, const ObsID& p)
+ {
+ p.dump(s);
+ return s;
+ }
+
+}
diff --git a/dev/src/ObsID.hpp b/dev/src/ObsID.hpp
new file mode 100644
index 0000000..9ee1a24
--- /dev/null
+++ b/dev/src/ObsID.hpp
@@ -0,0 +1,193 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef GPSTK_OBSID_HPP
+#define GPSTK_OBSID_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <string>
+#include <map>
+
+/**
+ * @file ObsID.hpp
+ * gpstk::ObsID - navigation system, receiver, and file specification
+ independent representation of the types of observation data that can
+ be collected. This class is analogous to the RinexObsType class that
+ is used to represent the observation codes in a RINEX file. It is
+ intended to support at least everything in section 5.1 of the RINEX 3
+ specifications.
+ */
+
+namespace gpstk
+{
+ class ObsID
+ {
+ public:
+ /// The type of observation.
+ enum ObservationType
+ {
+ otUnknown,
+ otRange, ///< pseudorange, in meters
+ otPhase, ///< accumulated phase, in meters
+ otDoppler, ///< Doppler, in Hz
+ otSNR, ///< Signal strength, in dB-Hz
+ otSSI, ///< Signal strength indicator/inded (kinda a rinex thing)
+ otLLI, ///< loss of lock indicator/ lock count
+ otLast, ///< used to extend this...
+ otPlaceholder = otLast+1000
+ };
+
+ /// The frequency band this obs was collected from.
+ enum CarrierBand
+ {
+ cbUnknown,
+ cbL1, ///< GPS L1, Galileo E2-L1-E1, SBAS L1
+ cbL2, ///< GPS L2
+ cbL5, ///< GPS L5, Galileo E5a, SBAS L5
+ cbL1L2, ///< Combined L1L2 (like an ionosphere free obs)
+ cbG1, ///< Glonass G1
+ cbG2, ///< Glonass G2
+ cbE5b, ///< Galileo E5b
+ cbE5ab, ///< Galileo E5a+b
+ cbE6, ///< Galileo E6
+ cbLast, ///< Used to extend this...
+ ccPlaceholder = cbLast+1000
+ };
+
+ /// The code used to collect the observation. This generally follows
+ /// the attributes in section 5.1 of RINEX 3. Note that these need to
+ /// be interpreted in conjunction with the satellite system that
+ /// is in the svid variable.
+ enum TrackingCode
+ {
+ tcUnknown,
+ tcCA, ///< Legacy civil code
+ tcP, ///< Legacy precise code
+ tcY, ///< Encrypted legacy precise code
+ tcW, ///< Encrypted legacy precise code, with codeless Z mode tracking
+ tcN, ///< Encrypted legacy precise code, with codeless tracking
+ tcM, ///< Encrypted modernized precise code
+ tcC2M, ///< L2 civil M code
+ tcC2L, ///< L2 civil L code
+ tcC2LM, ///< L2 civil M+L combined tracking (such as Trimble NetRS, Septrentrio, and ITT)
+ tcI5, ///< L5 civil in-phase
+ tcQ5, ///< L5 civil quadrature
+ tcIQ5, ///< L5 civil I+Q combined tracking
+ tcA, ///< Galileo L1 PRS code
+ tcB, ///< Galileo OS/CS/SoL code
+ tcC, ///< Galileo Dataless code
+ tcBC, ///< Galileo B+C combined tracking
+ tcABC, ///< Galileo A+B+C combined tracking
+ tcLast, ///< Used to extend this...
+ tcPlaceholder = tcLast+1000
+ };
+
+ /// empty constructor, creates an invalid object
+ ObsID()
+ : type(otUnknown), band(cbUnknown), code(tcUnknown) {};
+
+ /// Explicit constructor
+ ObsID(ObservationType ot, CarrierBand cb, TrackingCode tc)
+ : type(ot), band(cb), code(tc) {};
+
+ /// Equality requires all fields to be the same
+ virtual bool operator==(const ObsID& right) const;
+
+ /// This ordering is somewhat arbitrary but is required to be able
+ /// to use an ObsID as an index to a std::map. If an application needs
+ /// some other ordering, inherit and override this function.
+ virtual bool operator<(const ObsID& right) const;
+
+ bool operator!=(const ObsID& right) const
+ { return !(operator==(right)); }
+
+ bool operator>(const ObsID& right) const
+ { return (!operator<(right) && !operator==(right)); }
+
+ bool operator<=(const ObsID& right) const
+ { return (operator<(right) || operator==(right)); }
+
+ bool operator>=(const ObsID& right) const
+ { return !(operator<(right)); }
+
+ /// Convenience output method
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Return true if this is a valid ObsID. Basically just
+ /// checks that none of the enums are undefined
+ virtual bool isValid() const;
+
+ /// Destructor
+ virtual ~ObsID() {}
+
+
+ static ObservationType newObservationType(const std::string& s);
+ static CarrierBand newCarrierBand(const std::string& s);
+ static TrackingCode newTrackingCode(const std::string& s);
+
+ ObservationType type;
+ CarrierBand band;
+ TrackingCode code;
+
+ static std::map< TrackingCode, std::string > tcStrings;
+ static std::map< CarrierBand, std::string > cbStrings;
+ static std::map< ObservationType, std::string > otStrings;
+
+ public:
+ class Initializer
+ {
+ public:
+ Initializer();
+ };
+
+ static Initializer singleton;
+
+ }; // class ObsID
+
+ namespace StringUtils
+ {
+ /// convert this object to a string representation
+ std::string asString(const ObsID& p);
+ }
+
+ /// stream output for ObsID
+ std::ostream& operator<<(std::ostream& s, const ObsID& p);
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/ObsRngDev.cpp b/dev/src/ObsRngDev.cpp
new file mode 100644
index 0000000..82e7dee
--- /dev/null
+++ b/dev/src/ObsRngDev.cpp
@@ -0,0 +1,330 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ObsRngDev.hpp
+ * Observed range deviation computation & storage.
+ */
+
+#include "EphemerisRange.hpp"
+#include "EngEphemeris.hpp"
+#include "BCEphemerisStore.hpp"
+#include "MiscMath.hpp"
+#include "icd_200_constants.hpp"
+
+#include "ObsRngDev.hpp"
+
+namespace gpstk
+{
+
+ // these are the L1-L2 correction factors per ICD-GPS-200, sec. 20.3.3.3.3.2
+ static const double GAMMA = 1.64694444444444444; // (1575.42/1227.6)^2
+ static const double IGAMMA = 1-GAMMA;
+
+ bool ObsRngDev::debug=false;
+
+ ObsRngDev::ObsRngDev(
+ const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ bool svTime)
+ : obstime(time), svid(svid), ord(0), wonky(false)
+ {
+ computeOrd(prange, rxpos, eph, gm, svTime);
+ Geodetic gx(rxpos, &gm);
+ NBTropModel nb(gx.getAltitude(), gx.getLatitude(), time.DOYday());
+ computeTrop(nb);
+ }
+
+ ObsRngDev::ObsRngDev(
+ const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ const IonoModelStore& ion,
+ IonoModel::Frequency fq,
+ bool svTime)
+ : obstime(time), svid(svid), ord(0), wonky(false)
+ {
+ computeOrd(prange, rxpos, eph, gm, svTime);
+ Geodetic gx(rxpos, &gm);
+ NBTropModel nb(gx.getAltitude(), gx.getLatitude(), time.DOYday());
+ computeTrop(nb);
+ iono = ion.getCorrection(time, gx, elevation, azimuth, fq);
+ ord -= iono;
+ }
+
+ ObsRngDev::ObsRngDev(
+ const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ const TropModel& tm,
+ bool svTime)
+ : obstime(time), svid(svid), ord(0), wonky(false)
+ {
+ computeOrd(prange, rxpos, eph, gm, svTime);
+ computeTrop(tm);
+ }
+
+ ObsRngDev::ObsRngDev(
+ const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ const TropModel& tm,
+ const IonoModelStore& ion,
+ IonoModel::Frequency fq,
+ bool svTime)
+ : obstime(time), svid(svid), ord(0), wonky(false)
+ {
+ computeOrd(prange, rxpos, eph, gm, svTime);
+ computeTrop(tm);
+ Geodetic gx(rxpos, &gm);
+ iono = ion.getCorrection(time, gx, elevation, azimuth, fq);
+ ord -= iono;
+ }
+
+
+ ObsRngDev::ObsRngDev(
+ const double prange1,
+ const double prange2,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ bool svTime)
+ : obstime(time), svid(svid), ord(0), wonky(false)
+ {
+ // for dual frequency see ICD-GPS-211, section 20.3.3.3.3.3
+ double icpr = (prange2 - GAMMA * prange1)/IGAMMA;
+ iono = prange1 - icpr;
+
+ computeOrd(icpr, rxpos, eph, gm, svTime);
+ Geodetic gx(rxpos, &gm);
+ NBTropModel nb(gx.getAltitude(), gx.getLatitude(), time.DOYday());
+ computeTrop(nb);
+ }
+
+
+ ObsRngDev::ObsRngDev(
+ const double prange1,
+ const double prange2,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm,
+ const TropModel& tm,
+ bool svTime)
+ : obstime(time), svid(svid), ord(0), wonky(false)
+ {
+ // for dual frequency see ICD-GPS-211, section 20.3.3.3.3.3
+ double icpr = (prange2 - GAMMA * prange1)/IGAMMA;
+ iono = prange1 - icpr;
+
+ computeOrd(icpr, rxpos, eph, gm, svTime);
+ computeTrop(tm);
+ }
+
+ // This should be used for obs in GPS (i.e. receiver) time.
+ void ObsRngDev::computeOrdRx(
+ const double obs,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm)
+ {
+ // This algorithm should really be moved to Xvt.preciseRho() or somewhere
+ Xvt svpos;
+ double rawrange;
+ double tof = 0.070;
+ double tof_old = 0;
+ DayTime ttime;
+
+ for (int i=0; fabs(tof-tof_old) > 1.0e-13 && i<=5; i++)
+ {
+ ttime = obstime - tof;
+ tof_old = tof;
+
+ svpos = eph.getSatXvt(svid, ttime);
+
+ rawrange = rxpos.slantRange(svpos.x);
+ tof = rawrange/gm.c();
+
+ // Perform earth rotation correction
+ double wt = gm.angVelocity()*tof;
+ Triple tmp;
+ tmp[0] = svpos.x[0] + wt*svpos.x[1];
+ tmp[1] = -wt*svpos.x[0] + svpos.x[1];
+ tmp[2] = svpos.x[2];
+
+ rawrange = rxpos.slantRange(tmp);
+ tof = rawrange/gm.c();
+ }
+
+ double svclkbias = svpos.dtime*gm.c();
+ if (typeid(eph) == typeid(BCEphemerisStore))
+ {
+ const BCEphemerisStore& bce = dynamic_cast<const BCEphemerisStore&>(eph);
+ const EngEphemeris& eph = bce.findEphemeris(svid, obstime);
+ iodc = eph.getIODC();
+ health = eph.getHealth();
+ }
+
+ // Now add in the corrections
+ rho = rawrange - svclkbias;
+
+ // compute the azimuth and elevation of the SV
+ azimuth = rxpos.azAngle(svpos.x);
+ elevation = rxpos.elvAngle(svpos.x);
+
+ // and now calculate the ORD
+ ord = obs - rho;
+
+ if (debug)
+ {
+ std::ios::fmtflags oldFlags = std::cout.flags();
+ std::cout << *this << std::endl
+ << std::setprecision(3) << std::fixed
+ << " obs=" << obs
+ << ", rho=" << (double)rho
+ << ", obs-rho=" << (double)ord
+ << std::setprecision(9)
+ << ", tof=" << tof
+ << std::endl
+ << std::setprecision(3)
+ << " sv.x=" << svpos.x
+ << ", sv.v=" << svpos.v
+ << std::endl
+ << " rx.x=" << rxpos
+ << std::setprecision(4) << std::scientific
+ << ", sv bias=" << svpos.dtime
+ << ", sv drift=" << svpos.ddtime
+ << std::endl;
+ std::cout.flags(oldFlags);
+ }
+ }
+
+
+// This should be used for obs in SV time
+ void ObsRngDev::computeOrdTx(
+ double obs,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm)
+ {
+ Xvt svpos = eph.getSatXvt(svid, obstime);
+
+ // compute the range from the station to the SV
+ rho = svpos.preciseRho(rxpos, gm);
+
+ // and now calculate the ORD
+ ord = obs - rho;
+
+ if (typeid(eph) == typeid(BCEphemerisStore))
+ {
+ const BCEphemerisStore& bce = dynamic_cast<const BCEphemerisStore&>(eph);
+ const EngEphemeris& eph = bce.findEphemeris(svid, obstime);
+ iodc = eph.getIODC();
+ health = eph.getHealth();
+ }
+
+ // compute the azimuth and elevation of the SV
+ azimuth = rxpos.azAngle(svpos.x);
+ elevation = rxpos.elvAngle(svpos.x);
+
+ if (debug)
+ {
+ std::ios::fmtflags oldFlags = std::cout.flags();
+ std::cout << *this << std::endl
+ << std::setprecision(3) << std::fixed
+ << " obs=" << obs
+ << ", rho=" << (double)rho
+ << ", obs-rho=" << (double)ord
+ << std::endl
+ << std::setprecision(3)
+ << " sv.x=" << svpos.x
+ << ", sv.v=" << svpos.v
+ << std::endl
+ << " rx.x=" << rxpos
+ << std::setprecision(4) << std::scientific
+ << ", sv bias=" << svpos.dtime
+ << ", sv drift=" << svpos.ddtime
+ << std::endl;
+ std::cout.flags(oldFlags);
+ }
+ }
+
+ void ObsRngDev::computeTrop(const TropModel& tm)
+ {
+ trop = tm.correction(elevation);
+ ord -= trop;
+ }
+
+ std::ostream& operator<<(std::ostream& s, const ObsRngDev& ord)
+ throw()
+ {
+ std::ios::fmtflags oldFlags = s.flags();
+ s << "t=" << ord.obstime.printf("%Y/%03j %02H:%02M:%04.1f")
+ << " prn=" << std::setw(2) << ord.svid.id
+ << std::setprecision(4)
+ << " az=" << std::setw(3) << ord.azimuth
+ << " el=" << std::setw(2) << ord.elevation
+ << std::hex
+ << " h=" << std::setw(1) << ord.health
+ << std::dec << std::setprecision(4)
+ << " ord=" << ord.ord
+ << " ion=" << ord.iono
+ << " trop=" << ord.trop
+ << std::hex
+ << " iodc=" << ord.iodc
+ << " wonky=" << ord.wonky;
+ s.flags(oldFlags);
+ return s;
+ }
+}
diff --git a/dev/src/ObsRngDev.hpp b/dev/src/ObsRngDev.hpp
new file mode 100644
index 0000000..d10b27b
--- /dev/null
+++ b/dev/src/ObsRngDev.hpp
@@ -0,0 +1,326 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ObsRngDev.hpp
+ * Observed range deviation computation & storage.
+ */
+
+
+#ifndef OBSRNGDEV_HPP
+#define OBSRNGDEV_HPP
+
+#include <ostream>
+
+#include "DayTime.hpp"
+#include "ECEF.hpp"
+#include "EphemerisStore.hpp"
+#include "Exception.hpp"
+#include "GPSGeoid.hpp"
+#include "IonoModelStore.hpp"
+#include "TropModel.hpp"
+#include "ValidType.hpp"
+#include "SatID.hpp"
+
+namespace gpstk
+{
+
+/**
+ * A single (one observation from one sv), Observed Range Deviation (ORD).
+ * It contains all of the parameters that define an ORD and includes
+ * metadata on ORD computation such as SV position and health.
+ */
+ class ObsRngDev
+ {
+ public:
+
+ /**
+ * default constructor.
+ * Creates an empty, useless object to facilitate STL containers of this
+ * object.
+ */
+ ObsRngDev() throw() : wonky(false), obstime(DayTime::END_OF_TIME) {};
+
+ /**
+ * constructor.
+ * Creates an ORD, with no ionospheric correction and a default
+ * trop correction.
+ * \param prange the observed pseudorange
+ * \param svid the SV being observed
+ * \param time the time of the observation
+ * \param rxpos the earth-centered, earth-fixed receiver position
+ * \param eph a store of either broadcast or precise ephemerides
+ * \param gm a GeoidModel for performing range calculations
+ * \param ion a store of nav based ionospheric models
+ * \param fq the GPS frequency (L1 or L2) from which the obs was made
+ * \param svTime true if prange is in SV time, false for RX time.
+ */
+ ObsRngDev(const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ bool svTime = false);
+ /**
+ * constructor.
+ * Creates an ORD, applies a single-frequency nav-message based
+ * ionospheric correction and a default trop correction.
+ * \param prange the observed pseudorange
+ * \param prn the PRN number of the observed SV
+ * \param time the time of the observation
+ * \param rxpos the earth-centered, earth-fixed receiver position
+ * \param eph a store of either broadcast or precise ephemerides
+ * \param gm a GeoidModel for performing range calculations
+ * \param ion a store of nav based ionospheric models
+ * \param fq the GPS frequency (L1 or L2) from which the obs was made
+ * \param svTime true if prange is in SV time, false for RX time.
+ */
+ ObsRngDev(const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ const IonoModelStore& ion,
+ IonoModel::Frequency fq,
+ bool svTime = false);
+ /**
+ * constructor.
+ * Creates an ORD, applies no ionospheric correction and
+ * a user-specified trop correction.
+ * \param prange the observed pseudorange
+ * \param prn the PRN number of the observed SV
+ * \param time the time of the observation
+ * \param rxpos the earth-centered, earth-fixed receiver position
+ * \param eph a store of either broadcast or precise ephemerides
+ * \param gm a GeoidModel for performing range calculations
+ * \param tm a TropModel for performing trop calculation
+ * \param ion a store of nav based ionospheric models
+ * \param fq the GPS frequency (L1 or L2) from which the obs was made
+ * \param svTime true if prange is in SV time, false for RX time.
+ */
+ ObsRngDev(const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ const TropModel& tm,
+ bool svTime = false);
+
+ /**
+ * constructor.
+ * Creates an ORD, applies a single-frequency nav-message based
+ * ionospheric correction and a user-specified trop correction.
+ * \param prange the observed pseudorange
+ * \param prn the PRN number of the observed SV
+ * \param time the time of the observation
+ * \param rxpos the earth-centered, earth-fixed receiver position
+ * \param eph a store of either broadcast or precise ephemerides
+ * \param gm a GeoidModel for performing range calculations
+ * \param tm a TropModel for performing trop calculation
+ * \param ion a store of nav based ionospheric models
+ * \param fq the GPS frequency (L1 or L2) from which the obs was made
+ * \param svTime true if prange is in SV time, false for RX time.
+ */
+ ObsRngDev(const double prange,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ const TropModel& tm,
+ const IonoModelStore& ion,
+ IonoModel::Frequency fq,
+ bool svTime = false);
+
+ /**
+ * constructor.
+ * Creates an ORD, applies a dual-frequency ionospheric correction
+ * and a default trop correction.
+ * \param prange the observed pseudorange
+ * \param prn the PRN number of the observed SV
+ * \param time the time of the observation
+ * \param rxpos the earth-centered, earth-fixed receiver position
+ * \param eph a store of either broadcast or precise ephemerides
+ * \param gm a GeoidModel for performing range calculations
+ * \param svTime true if prange is in SV time, false for RX time.
+ */
+ ObsRngDev(const double prange1,
+ const double prange2,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ GeoidModel& gm,
+ bool svTime = false);
+
+ /**
+ * constructor.
+ * Creates an ORD, applies a dual-frequency ionospheric correction
+ * and a user-specified trop correction.
+ * \param prange the observed pseudorange
+ * \param prn the PRN number of the observed SV
+ * \param time the time of the observation
+ * \param rxpos the earth-centered, earth-fixed receiver position
+ * \param eph a store of either broadcast or precise ephemerides
+ * \param gm a GeoidModel for performing range calculations
+ * \param tm a TropModel for performing trop calculations
+ * \param svTime true if prange is in SV time, false for RX time.
+ */
+ ObsRngDev(const double prange1,
+ const double prange2,
+ const SatID& svid,
+ const DayTime& time,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm,
+ const TropModel& tm,
+ bool svTime = false);
+
+ /// destructor
+ virtual ~ObsRngDev() throw() {}
+
+ // get accessor methods ----------------------------------------------
+ /**
+ * returns the time of the SV observation
+ * \return time of SV observation
+ */
+ const DayTime& getTime() const throw() { return obstime; }
+
+ /**
+ * returns the observed SV's identifier
+ * \return svid
+ */
+ SatID getSvID() const throw() { return svid; }
+
+ /**
+ * returns the SV azimuth angle (in degrees) in relation to the rx
+ * \return SV azimuth angle
+ */
+ vfloat getAzimuth() const throw() { return azimuth; }
+
+ /**
+ * returns elevation (in degrees) of the SV in relation to the rx
+ * \return SV elevation angle
+ */
+ vfloat getElevation() const throw() { return elevation; }
+
+ /**
+ * returns the 6-bit SV health bitfield from epehemeris, subframe 1
+ * \return SV health bitfield
+ */
+ vshort getHealth() const throw() { return health; }
+
+ /**
+ * returns the Issue Of Data, Clock (IODC) from ephemeris, subframe 1
+ * \return ephemeris IODC
+ */
+ vshort getIODC() const throw() { return iodc; }
+
+ /**
+ * returns the observed range deviation (ORD) (in meters)
+ * \returns ORD
+ */
+ double getORD() const throw() { return ord; }
+
+ /**
+ * returns the ionospheric offset (in meters)
+ * \returns ionospheric offset
+ */
+ vdouble getIono() const throw() { return iono; }
+
+ /**
+ * returns the tropospheric offset (in meters)
+ * \returns tropospheric offset
+ */
+ vdouble getTrop() const throw() { return trop; }
+
+ friend std::ostream& operator<<(std::ostream& s,
+ const ObsRngDev& r) throw();
+
+ void applyClockOffset(double clockOffset)
+ {ord -= clockOffset;}
+
+ static bool debug;
+
+ private:
+ void computeOrd(double obs,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm,
+ bool svTime)
+ {
+ if (svTime)
+ computeOrdTx(obs, rxpos, eph, gm);
+ else
+ computeOrdRx(obs, rxpos, eph, gm);
+ return;
+ }
+
+
+
+ void computeOrdTx(double obs,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm);
+
+ void computeOrdRx(double obs,
+ const ECEF& rxpos,
+ const EphemerisStore& eph,
+ const GeoidModel& gm);
+
+ void computeTrop(const TropModel& tm);
+
+ public:
+ DayTime obstime; ///< time of SV observation
+ SatID svid; ///< PRN number of observed SV
+ double ord; ///< difference between expected and observed range
+ unsigned wonky; ///< A bitmask defined by the application to flag questionable data
+
+ vfloat azimuth; ///< SV azimuth
+ vfloat elevation; ///< SV elevation
+ vshort health; ///< SV health bitfield
+ vshort iodc; ///< ephemeris IODC
+ vdouble rho; ///< expected geometric range
+ vdouble iono; ///< iono correction (meters)
+ vdouble trop; ///< trop correction (meters)
+ };
+}
+#endif
diff --git a/dev/src/OneFreqCSDetector.hpp b/dev/src/OneFreqCSDetector.hpp
new file mode 100644
index 0000000..df34019
--- /dev/null
+++ b/dev/src/OneFreqCSDetector.hpp
@@ -0,0 +1,513 @@
+
+/**
+ * @file OneFreqCSDetector.hpp
+ * This is a class to detect cycle slips using observables in just one frequency.
+ */
+
+#ifndef ONEFREQCSDETECTOR_GPSTK
+#define ONEFREQCSDETECTOR_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "DataStructures.hpp"
+
+
+
+namespace gpstk
+{
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+
+ /** This is a class to detect cycle slips using observables in just one frequency.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * OneFreqCSDetector markCSC1;
+ *
+ * while(rin >> gRin) {
+ * gRin >> markCSC1;
+ * }
+ * @endcode
+ *
+ * The "OneFreqCSDetector" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will decide if a cycle slip has happened in the
+ * given observable.
+ *
+ * By default, the algorithm will use C1 and L1 observables, and the LLI1 index.
+ * The result (a 0 if a cycle slip is found, 1 otherwise) will be stored in the
+ * data structure as the CSL1 index. Note that these data types may be changed
+ * using the appropriate methods. For example:
+ *
+ * @code
+ * markCSC1.setCodeType(TypeID::P2);
+ * markCSC1.setPhaseType(TypeID::L2);
+ * markCSC1.setLLIType(TypeID::LLI2);
+ * markCSC1.setResultType(TypeID::CSI2);
+ * @endcode
+ *
+ * This algorithm will compute the bias between code and phase, and will compare
+ * it with a mean bias that is computed on the fly. If the current bias exceeds a
+ * given threshold, then a cycle slip is declared. The algorithm will also use
+ * the corresponding LLI index (and the RINEX epoch flag, if present) to guide
+ * its decision.
+ *
+ * The threshold, as well as the filter window size and the maximum allowed
+ * time interval between two successive measures, may be tuned with their
+ * corresponding methods. For instance:
+ *
+ * @code
+ * markCSC1.setMaxNumSigmas(3.5);
+ * markCSC1.setMaxWindowSize(20);
+ * @endcode
+ *
+ * Please be aware that the window size should not be too big, because
+ * other factors (such as the ionospheric drift) may show up in the bias, affecting
+ * the algorithm. When using 1 Hz data sampling, a window size between 60 and 100
+ * samples will be fine.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the cycle slip index inserted along their corresponding
+ * satellites. Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * @sa LICSDetector.hpp and MWCSDetector.hpp for more information.
+ *
+ * \warning Cycle slip detectors are objets that store their internal state,
+ * so you MUST NOT use the SAME object to process DIFFERENT data streams.
+ *
+ */
+ class OneFreqCSDetector
+ {
+ public:
+
+ /// Default constructor, setting default parameters and C1 and L1 observables.
+ OneFreqCSDetector() : codeType(TypeID::C1), phaseType(TypeID::L1), lliType(TypeID::LLI1), resultType(TypeID::CSL1), deltaTMax(31.0), maxWindowSize(60), maxNumSigmas(4.5), defaultBiasSigma(4.0) {};
+
+
+ /** Common constructor
+ *
+ * @param codeT Type of code to be used.
+ * @param dtMax Maximum interval of time allowed between two successive epochs.
+ * @param mwSize Maximum size of filter window, in samples.
+ * @param mnSigmas Maximum deviation allowed before declaring cycle slip (in number of sigmas).
+ * @param dbSigma Default value assigned to sigma when filter starts.
+ */
+ OneFreqCSDetector(const TypeID& codeT, const double& dtMax = 31.0, const int& mwSize = 60, const double& mnSigmas = 4.5, const double& dbSigma = 4.0) : codeType(codeT), deltaTMax(dtMax), maxNumSigmas(mnSigmas), defaultBiasSigma(dbSigma)
+ {
+ // Don't allow window sizes less than 1
+ if (mwSize > 1) maxWindowSize = mwSize; else maxWindowSize = 60;
+
+ switch ( codeT.type )
+ {
+ case TypeID::C1:
+ phaseType = TypeID::L1;
+ lliType = TypeID::LLI1;
+ resultType = TypeID::CSL1;
+ break;
+ case TypeID::C2:
+ phaseType = TypeID::L2;
+ lliType = TypeID::LLI2;
+ resultType = TypeID::CSL2;
+ break;
+ case TypeID::C5:
+ phaseType = TypeID::L5;
+ lliType = TypeID::LLI5;
+ resultType = TypeID::CSL5;
+ break;
+ case TypeID::C6:
+ phaseType = TypeID::L6;
+ lliType = TypeID::LLI6;
+ resultType = TypeID::CSL6;
+ break;
+ case TypeID::C7:
+ phaseType = TypeID::L7;
+ lliType = TypeID::LLI7;
+ resultType = TypeID::CSL7;
+ break;
+ case TypeID::C8:
+ phaseType = TypeID::L8;
+ lliType = TypeID::LLI8;
+ resultType = TypeID::CSL8;
+ break;
+ default:
+ phaseType = TypeID::L1;
+ lliType = TypeID::LLI1;
+ resultType = TypeID::CSL1;
+ };
+ };
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param epoch Time of observations.
+ * @param gData Data object holding the data.
+ * @param epochflag Epoch flag.
+ */
+ virtual satTypeValueMap& Detect(const DayTime& epoch, satTypeValueMap& gData, const short& epochflag=0)
+ {
+ double value1(0.0);
+ double value2(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ value1 = (*it).second(codeType);
+ value2 = (*it).second(phaseType);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ // If everything is OK, then get the new value inside the structure
+ // This way of doing it allows concatenation of several different cycle slip detectors
+ (*it).second[resultType] += getDetection(epoch, (*it).first, (*it).second, epochflag, value1, value2);
+ if ( (*it).second[resultType] > 1.0 ) (*it).second[resultType] = 1.0;
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Method to set the default code type to be used.
+ * @param codeT TypeID of code to be used
+ */
+ virtual void setCodeType(const TypeID& codeT)
+ {
+ codeType = codeT;
+ };
+
+
+ /// Method to get the default code type being used.
+ virtual TypeID getCodeType() const
+ {
+ return codeType;
+ };
+
+
+ /** Method to set the default phase type to be used.
+ * @param phaseT TypeID of phase to be used
+ */
+ virtual void setPhaseType(const TypeID& phaseT)
+ {
+ phaseType = phaseT;
+ };
+
+
+ /// Method to get the default phase type being used.
+ virtual TypeID getPhaseType() const
+ {
+ return phaseType;
+ };
+
+
+ /** Method to set the default LLI to be used.
+ * @param lliT LLI to be used
+ */
+ virtual void setLLIType(const TypeID& lliT)
+ {
+ lliType = lliT;
+ };
+
+
+ /// Method to get the default LLI being used.
+ virtual TypeID getLLIType() const
+ {
+ return lliType;
+ };
+
+
+ /** Method to set the default return type to be used.
+ * @param returnT TypeID to be returned
+ */
+ virtual void setResultType(const TypeID& resultT)
+ {
+ resultType = resultT;
+ };
+
+
+ /// Method to get the default return type being used.
+ virtual TypeID getResultType() const
+ {
+ return resultType;
+ };
+
+
+ /** Method to set the maximum interval of time allowed between two successive epochs.
+ * @param maxDelta Maximum interval of time, in seconds
+ */
+ virtual void setDeltaTMax(const double& maxDelta)
+ {
+ deltaTMax = maxDelta;
+ };
+
+
+ /// Method to get the maximum interval of time allowed between two successive epochs.
+ virtual double getDeltaTMax() const
+ {
+ return deltaTMax;
+ };
+
+
+ /** Method to set the maximum size of filter window, in samples.
+ * @param maxSize Maximum size of filter window, in samples.
+ */
+ virtual void setMaxWindowSize(const int& maxSize)
+ {
+ // Don't allow window sizes less than 1
+ if (maxSize > 1) maxWindowSize = maxSize; else maxWindowSize = 60;
+ };
+
+
+ /// Method to get the maximum size of filter window, in samples.
+ virtual int getMaxWindowSize() const
+ {
+ return maxWindowSize;
+ };
+
+
+ /** Method to set the maximum deviation allowed before declaring cycle slip (in number of sigmas).
+ * @param maxNSigmas Maximum deviation allowed before declaring cycle slip (in number of sigmas).
+ */
+ virtual void setMaxNumSigmas(const double& maxNSigmas)
+ {
+ maxNumSigmas = maxNSigmas;
+ };
+
+
+ /// Method to get the maximum deviation allowed before declaring cycle slip (in number of sigmas).
+ virtual double getMaxNumSigmas() const
+ {
+ return maxNumSigmas;
+ };
+
+
+ /** Method to set the default value assigned to sigma when filter starts.
+ * @param defSigma Default value assigned to sigma when filter starts.
+ */
+ virtual void setDefaultBiasSigma(const double& defSigma)
+ {
+ defaultBiasSigma = defSigma;
+ };
+
+
+ /// Method to get the default value assigned to sigma when filter starts.
+ virtual double getDefaultBiasSigma() const
+ {
+ return defaultBiasSigma;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Detect(gnssSatTypeValue& gData)
+ {
+ (*this).Detect(gData.header.epoch, gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Detect(gnssRinex& gData)
+ {
+ (*this).Detect(gData.header.epoch, gData.body, gData.header.epochFlag);
+ return gData;
+ };
+
+
+ /// Destructor
+ virtual ~OneFreqCSDetector() {};
+
+
+ private:
+
+ /// Type of code.
+ TypeID codeType;
+
+ /// Type of phase.
+ TypeID phaseType;
+
+ /// Type of LLI record.
+ TypeID lliType;
+
+ /// Type of result.
+ TypeID resultType;
+
+ /// Maximum interval of time allowed between two successive epochs.
+ double deltaTMax;
+
+
+ /// Maximum size of filter window, in samples.
+ int maxWindowSize;
+
+
+ /// Maximum deviation allowed before declaring cycle slip (in number of sigmas).
+ double maxNumSigmas;
+
+
+ /// Default value assigned to sigma when filter starts.
+ double defaultBiasSigma;
+
+
+ /// A structure used to store filter data for a SV.
+ struct filterData
+ {
+ // Default constructor initializing the data in the structure
+ filterData() : previousEpoch(DayTime::BEGINNING_OF_TIME), windowSize(0), meanBias(0.0), meanSigma2(0.0) {};
+
+ DayTime previousEpoch; ///< The previous epoch time stamp.
+ int windowSize; ///< The filter window size.
+ double meanBias; ///< Accumulated mean bias (pseudorange - phase).
+ double meanSigma2; ///< Accumulated mean bias sigma squared.
+ };
+
+
+ /// Map holding the information regarding every satellite
+ std::map<SatID, filterData> OneFreqData;
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param epoch Time of observations.
+ * @param sat SatID.
+ * @param tvMap Data structure of TypeID and values.
+ * @param epochflag Epoch flag.
+ * @param code Current code observation value.
+ * @param phase Current phase observation value.
+ */
+ virtual double getDetection(const DayTime& epoch, const SatID& sat, typeValueMap& tvMap, const short& epochflag, const double& code, const double& phase)
+ {
+ bool reportCS(false);
+ double deltaT(0.0); // Difference between current and former epochs, in sec
+ double bias(0.0); // Code-phase bias
+ double dif2(0.0); // Difference between biases, squared.
+ double thr2(0.0); // Threshold in sigmas, squared.
+ double deltaBias(0.0); // Difference between biases
+ double tempLLI(0.0);
+
+ // Get the difference between current epoch and former epoch, in seconds
+ deltaT = ( epoch.MJDdate() - OneFreqData[sat].previousEpoch.MJDdate() ) * DayTime::SEC_DAY;
+
+ // Store current epoch as former epoch
+ OneFreqData[sat].previousEpoch = epoch;
+
+ bias = code - phase; // Current value of code-phase bias
+
+ // Increment size of window and check limit
+ ++OneFreqData[sat].windowSize;
+ if (OneFreqData[sat].windowSize > maxWindowSize) OneFreqData[sat].windowSize = maxWindowSize;
+
+ // Check if receiver already declared cycle slip or too much time has elapsed
+ // Note: If tvMap(lliType) doesn't exist, then 0 will be returned and that test will pass
+ if ( (tvMap(lliType)==1.0) || (tvMap(lliType)==3.0) || (tvMap(lliType)==5.0) || (tvMap(lliType)==7.0) ) tempLLI = 1.0;
+
+ if ( (epochflag==1) || (epochflag==6) || (tempLLI==1.0) || (deltaT > deltaTMax) )
+ {
+ OneFreqData[sat].windowSize = 1;
+ }
+
+ if (OneFreqData[sat].windowSize > 1)
+ {
+ deltaBias = (bias - OneFreqData[sat].meanBias);
+
+ dif2 = deltaBias*deltaBias; // Square difference between biases
+ thr2 = OneFreqData[sat].meanSigma2 * maxNumSigmas * maxNumSigmas; // Compute threshold^2
+
+ // If difference in biases is bigger or equal to threshold, then cycle slip
+ if (dif2 >= thr2)
+ {
+ OneFreqData[sat].windowSize = 1;
+ } else {
+ // Update mean bias
+ OneFreqData[sat].meanBias = OneFreqData[sat].meanBias + deltaBias/(static_cast<double>(OneFreqData[sat].windowSize));
+
+ // Update mean variance
+ OneFreqData[sat].meanSigma2 = OneFreqData[sat].meanSigma2 + ( (dif2-OneFreqData[sat].meanSigma2) ) / (static_cast<double>(OneFreqData[sat].windowSize));
+ }
+ }
+
+ if (OneFreqData[sat].windowSize <= 1) // If a cycle-slip happened
+ {
+ // Set mean bias to current code-phase bias
+ OneFreqData[sat].meanBias = bias;
+
+ // Set mean variance to default variance
+ OneFreqData[sat].meanSigma2 = defaultBiasSigma * defaultBiasSigma;
+ reportCS = true;
+ }
+
+ if (reportCS) return 1.0; else return 0.0;
+ };
+
+ }; // end class OneFreqCSDetector
+
+
+ /// Input operator from gnssSatTypeValue to OneFreqCSDetector.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, OneFreqCSDetector& oneF)
+ {
+ oneF.Detect(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to OneFreqCSDetector.
+ inline gnssRinex& operator>>(gnssRinex& gData, OneFreqCSDetector& oneF)
+ {
+ oneF.Detect(gData);
+ return gData;
+ }
+
+
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/PCSmoother.hpp b/dev/src/PCSmoother.hpp
new file mode 100644
index 0000000..2027aed
--- /dev/null
+++ b/dev/src/PCSmoother.hpp
@@ -0,0 +1,342 @@
+
+/**
+ * @file PCSmoother.hpp
+ * This class smoothes PC code observables using the corresponding LC phase observable.
+ */
+
+#ifndef PC_SMOOTHER_GPSTK
+#define PC_SMOOTHER_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http:// www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "CodeSmoother.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class smoothes the PC code observable using the corresponding LC phase observable.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * OneFreqCSDetector markCSL1; // We MUST mark at least some cycle slips
+ * PCSmoother smoothPC;
+ *
+ * while(rin >> gRin) {
+ * gRin >> markCSL1 >> smoothPC;
+ * }
+ * @endcode
+ *
+ * The "PCSmoother" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will smooth the PC code observation using
+ * the corresponding LC phase observation.
+ *
+ * By default, the algorithm will check both the CSL1 and CSL2 index for cycle
+ * slip information. You can change these settings in the constructor and with
+ * the appropriate set methods.
+ *
+ * When used with the ">>" operator, this class returns the same incoming
+ * data structure with the PC code observation smoothed (unless the resultType
+ * field is changed). Be warned that if a given satellite does not have the
+ * observations required, it will be summarily deleted from the data
+ * structure.
+ *
+ * Another important parameter is the maxWindowSize field. By default, it is
+ * set to 100 samples. You may adjust that with the setMaxWindowSize() method:
+ *
+ * @code
+ * PCSmoother smoothPC;
+ * smoothPC.setMaxWindowSize(35);
+ * @endcode
+ *
+ * A window of 100 samples is typical and appropriate when working with data
+ * sampled at 1 Hz. Note that the PC observable doesn't suffer the effect of
+ * the ionosphere drift.
+ *
+ * @sa CodeSmoother.hpp for base class.
+ *
+ * \warning Code smoothers are objets that store their internal state,
+ * so you MUST NOT use the SAME object to process DIFFERENT data streams.
+ *
+ */
+ class PCSmoother : public CodeSmoother
+ {
+ public:
+
+ /// Default constructor, setting default parameters and C1 and L1 as observables.
+ PCSmoother() : codeType(TypeID::PC), phaseType(TypeID::LC), resultType(TypeID::PC), maxWindowSize(100), csFlag1(TypeID::CSL1), csFlag2(TypeID::CSL2) {};
+
+
+ /** Common constructor
+ *
+ * @param mwSize Maximum size of filter window, in samples.
+ * @param resultT TypeID where results will be stored.
+ */
+ PCSmoother(const int& mwSize, const TypeID& resultT = TypeID::PC) : codeType(TypeID::PC), phaseType(TypeID::LC), resultType(resultT), maxWindowSize(mwSize), csFlag1(TypeID::CSL1), csFlag2(TypeID::CSL2) {};
+
+
+ /** Returns a satTypeValueMap object, adding the new data generated when calling this object.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Smooth(satTypeValueMap& gData)
+ {
+ double codeObs(0.0);
+ double phaseObs(0.0);
+ double flagObs1(0.0);
+ double flagObs2(0.0);
+
+ SatIDSet satRejectedSet;
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ codeObs = (*it).second(codeType);
+ phaseObs = (*it).second(phaseType);
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ continue;
+ }
+ try
+ {
+ // Try to get the first cycle slip flag
+ flagObs1 = (*it).second(csFlag1);
+ }
+ catch(...)
+ {
+ // If flag #1 is not found, no cycle slip is assumed
+ // You REALLY want to have BOTH CS flags properly set
+ flagObs1 = 0.0;
+ }
+ try
+ {
+ // Try to get the second cycle slip flag
+ flagObs2 = (*it).second(csFlag2);
+ }
+ catch(...)
+ {
+ // If flag #2 is not found, no cycle slip is assumed
+ // You REALLY want to have BOTH CS flags properly set
+ flagObs2 = 0.0;
+ }
+ // Get the smoothed PC.
+ (*it).second[resultType] = getSmoothing((*it).first, codeObs, phaseObs, flagObs1, flagObs2);
+ }
+ // Remove satellites with missing data
+ gData.removeSatID(satRejectedSet);
+
+ return gData;
+ };
+
+
+ /** Method to set the default return type to be used.
+ * @param returnT TypeID to be returned
+ */
+ virtual void setResultType(const TypeID& resultT)
+ {
+ resultType = resultT;
+ };
+
+
+ /// Method to get the default return type being used.
+ virtual TypeID getResultType() const
+ {
+ return resultType;
+ };
+
+
+ /** Method to set the maximum size of filter window, in samples.
+ * @param maxSize Maximum size of filter window, in samples.
+ */
+ virtual void setMaxWindowSize(const int& maxSize)
+ {
+ // Don't allow window sizes less than 1
+ if (maxSize > 1) maxWindowSize = maxSize; else maxWindowSize = 1;
+ };
+
+
+ /// Method to get the maximum size of filter window, in samples.
+ virtual int getMaxWindowSize() const
+ {
+ return maxWindowSize;
+ };
+
+
+ /** Method to set the default cycle slip type #1 to be used.
+ * @param csT Cycle slip type to be used
+ */
+ virtual void setCSFlag1(const TypeID& csT)
+ {
+ csFlag1 = csT;
+ };
+
+
+ /// Method to get the default cycle slip type #1 being used.
+ virtual TypeID getCSFlag1() const
+ {
+ return csFlag1;
+ };
+
+
+ /** Method to set the default cycle slip type #2 to be used.
+ * @param csT Cycle slip type to be used
+ */
+ virtual void setCSFlag2(const TypeID& csT)
+ {
+ csFlag2 = csT;
+ };
+
+
+ /// Method to get the default cycle slip type #2 being used.
+ virtual TypeID getCSFlag2() const
+ {
+ return csFlag2;
+ };
+
+
+ /// Destructor
+ virtual ~PCSmoother() {};
+
+
+ private:
+
+ /// Type of code observation to be used.
+ TypeID codeType;
+
+
+ /// Type of phase observation to be used.
+ TypeID phaseType;
+
+
+ /// Type assigned to the resulting smoothed code.
+ TypeID resultType;
+
+
+ /// Maximum size of filter window, in samples.
+ int maxWindowSize;
+
+
+ /// Cycle slip flag #1. It should be present.
+ TypeID csFlag1;
+
+
+ /// Cycle slip flag #2. It should be present.
+ TypeID csFlag2;
+
+
+ /// A structure used to store filter data for a SV.
+ struct filterData
+ {
+ // Default constructor initializing the data in the structure
+ filterData() : windowSize(1), previousCode(0.0), previousPhase(0.0) {};
+
+ int windowSize; ///< The filter window size.
+ double previousCode; ///< Accumulated mean bias (pseudorange - phase).
+ double previousPhase; ///< Accumulated mean bias sigma squared.
+ };
+
+
+ /// Map holding the information regarding every satellite
+ std::map<SatID, filterData> SmoothingData;
+
+
+
+ /// Compute the combination of observables.
+ virtual double getSmoothing(const SatID& sat, const double& code, const double& phase, const double& flag1, const double& flag2)
+ {
+ // In case we have a cycle slip either in L1 or L2
+ if ( (flag1!=0.0) || (flag2!=0.0) )
+ {
+ // Prepare the structure for the next iteration
+ SmoothingData[sat].previousCode = code;
+ SmoothingData[sat].previousPhase = phase;
+ SmoothingData[sat].windowSize = 1;
+ return code; // We don't need any further processing
+ }
+
+ // In case we didn't have cycle slip
+ double smoothedCode(0.0);
+
+ // Increment size of window and check limit
+ ++SmoothingData[sat].windowSize;
+ if (SmoothingData[sat].windowSize > maxWindowSize) SmoothingData[sat].windowSize = maxWindowSize;
+
+ // The formula used is the following:
+ //
+ // CSn = (1/n)*Cn + ((n-1)/n)*(CSn-1 + Ln - Ln-1)
+ //
+ // As window size "n" increases, the former formula gives more
+ // weight to the previous smoothed code CSn-1 plus the phase bias
+ // (Ln - Ln-1), and less weight to the current code observation Cn
+ smoothedCode = ( code + ((static_cast<double>(SmoothingData[sat].windowSize)) - 1.0) * (SmoothingData[sat].previousCode + (phase - SmoothingData[sat].previousPhase) ) ) / (static_cast<double>(SmoothingData[sat].windowSize));
+
+ // Store results for next iteration
+ SmoothingData[sat].previousCode = smoothedCode;
+ SmoothingData[sat].previousPhase = phase;
+
+ return smoothedCode;
+ };
+
+
+ /// This method is out of reach in this class.
+ virtual void setCodeType(const TypeID& dummy) {};
+
+ /// This method is out of reach in this class.
+ virtual void setPhaseType(const TypeID& dummy) {};
+
+ /// This method is out of reach in this class.
+ virtual void setCSFlag(const TypeID& dummy) {};
+
+ /// This method is out of reach in this class.
+ virtual TypeID getCSFlag() const { return TypeID::Unknown; };
+
+
+
+
+ }; // end class PCSmoother
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/PCodeConst.hpp b/dev/src/PCodeConst.hpp
new file mode 100644
index 0000000..17191ec
--- /dev/null
+++ b/dev/src/PCodeConst.hpp
@@ -0,0 +1,100 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+// PCodeConst.hpp - Constants for GPS X-register manipulation
+
+
+#ifndef PCodeConst_HPP
+#define PCodeConst_HPP
+
+//#define PCODE_DEBUG
+
+namespace gpstk
+{
+ /** @addtogroup code */
+ /**
+ * PCodeConst.hpp maintains a variety of "magic numbers" related
+ * to P-code generation and used throughout the P-code generator.
+ */
+ enum codeType { P_CODE, Y_CODE, BOTH };
+
+ /// Number of bits assumed to be in a unsigned long int
+ const int MAX_BIT = 32;
+
+ /// Maximum PRN Code number (1-n)
+ const int MAX_PRN_CODE = 37;
+
+ /// Number of 4 byte unsigned ints necessary to hold 6 sec of P-code
+ const long NUM_6SEC_WORDS = 1918125;
+
+ /// Number of 4 byte unsigned ints necessary to hold an X2 sequence (with leading delay)
+ const long NUM_X2_WORDS = 1918131;
+
+ /// INIT variables are starting conditions of 12-bit registers (IS-GPS-200)
+ const unsigned int X1A_INIT = 0x0248;
+ const unsigned int X1B_INIT = 0x0554;
+ const unsigned int X2A_INIT = 0x0925;
+ const unsigned int X2B_INIT = 0x0554;
+
+ /// TAPS variables denote which stages of 12-bit registers are XOR'd.
+ const unsigned int X1A_TAPS = 0x0CA0;
+ const unsigned int X1B_TAPS = 0x0F93;
+ const unsigned int X2A_TAPS = 0x0FDD;
+ const unsigned int X2B_TAPS = 0x098E;
+
+ /// X?_MAX_EPOCH is the maximum number of epochs in a sequence
+ const int XA_MAX_EPOCH = 3750;
+ const int XB_MAX_EPOCH = 3749;
+
+ /// X?_COUNT is the number of bits in an epoch
+ const int XA_COUNT = 4092;
+ const int XB_COUNT = 4093;
+
+ /** XA_EPOCH_DELAY and XB_EPOCH_DELAY allow for precession of X1B and X2B wrt
+ * to X1A and X2A at the end of each X1A epoch and X2A epoch. End
+ * of week delays are handled elsewhere.
+ */
+ const long XA_EPOCH_DELAY = 0;
+ const long XB_EPOCH_DELAY = 343;
+
+ /// The 37 chip delay at the end of every X2A epoch
+ const long X2A_EPOCH_DELAY = 37;
+ //@}
+} // namespace
+
+#endif
diff --git a/dev/src/PRSolution.cpp b/dev/src/PRSolution.cpp
new file mode 100644
index 0000000..f4971a2
--- /dev/null
+++ b/dev/src/PRSolution.cpp
@@ -0,0 +1,711 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file PRSolution.cpp
+ * Autonomous pseudorange navigation solution, including RAIM algorithm
+ */
+
+#include "MathBase.hpp"
+#include "PRSolution.hpp"
+#include "EphemerisRange.hpp"
+#include "GPSGeoid.hpp"
+
+// -----------------------------------------------------------------------------------
+// Combinations.hpp
+// Find all the combinations of n things taken k at a time.
+
+#include "Exception.hpp"
+
+/// Class Combinations will compute C(n,k), all the combinations of n things
+/// taken k at a time (where k <= n).
+/// Let n 'things' be indexed by i (i=0...n-1), e.g. stored in an array of length n.
+/// This class computes C(n,k) as sets of k indexes into the 'things' array.
+/// These indexes are accessible via member functions Selection() or isSelected().
+/// Next() computes the next combination until there are no more (when it returns -1).
+class Combinations {
+public:
+ /// Default constructor
+ Combinations(void)
+ throw()
+ {
+ nc = n = k = 0;
+ Index = NULL;
+ }
+
+ /// Constructor for C(n,k) = combinations of n things taken k at a time (k <= n)
+ /// @throw on invalid input (k>n).
+ Combinations(int N, int K)
+ throw(gpstk::Exception)
+ {
+ try { init(N,K); }
+ catch(gpstk::Exception& e) { GPSTK_RETHROW(e); }
+ }
+
+ /// copy constructor
+ Combinations(const Combinations& right)
+ throw()
+ {
+ *this = right;
+ }
+
+ /// destructor
+ ~Combinations(void)
+ {
+ if(Index) delete[] Index;
+ Index = NULL;
+ }
+
+ /// Assignment operator.
+ Combinations& operator=(const Combinations& right)
+ throw()
+ {
+ this->~Combinations();
+ init(right.n,right.k);
+ nc = right.nc;
+ for(int j=0; j<k; j++) Index[j] = right.Index[j];
+ return *this;
+ }
+
+ /// Compute the next combination, returning the number of combinations computed
+ /// so far; if there are no more combinations, return -1.
+ int Next(void) throw();
+
+ /// Return index i (0 <= i < n) of jth selection (0 <= j < k);
+ /// if j is out of range, return -1.
+ int Selection(int j)
+ throw()
+ {
+ if(j < 0 || j >= k) return -1;
+ return Index[j];
+ }
+
+ /// Return true if the given index j (0 <= j < n) is
+ /// currently selected (i.e. if j = Selection(i) for some i)
+ bool isSelected(int j)
+ throw()
+ {
+ for(int i=0; i<k; i++)
+ if(Index[i] == j) return true;
+ return false;
+ }
+
+private:
+
+ /// The initialization routine used by constructors.
+ /// @throw on invalid input (k>n or either n or k < 0).
+ void init(int N, int K)
+ throw(gpstk::Exception);
+
+ /// Recursive function to increment Index[j].
+ int Increment(int j) throw();
+
+ int nc; ///< number of combinations computed so far
+ int k,n; ///< combinations of n things taken k at a time, given at c'tor
+ int* Index; ///< Index[j] = index of jth selection (j=0...k-1; I[j]=0...n-1)
+};
+
+// -----------------------------------------------------------------------------------
+int Combinations::Next(void)
+ throw()
+{
+ if(k < 1) return -1;
+ if(Increment(k-1) != -1) return ++nc;
+ return -1;
+}
+
+int Combinations::Increment(int j)
+ throw()
+{
+ if(Index[j] < n-k+j) { // can this index be incremented?
+ Index[j]++;
+ for(int m=j+1; m<k; m++)
+ Index[m]=Index[m-1]+1;
+ return 0;
+ }
+ // is this the last index?
+ if(j-1 < 0) return -1;
+ // increment the next lower index
+ return Increment(j-1);
+}
+
+void Combinations::init(int N, int K)
+ throw(gpstk::Exception)
+{
+ if(K > N || N < 0 || K < 0) {
+ gpstk::Exception e("Combinations(n,k) must have k <= n, with n,k >= 0");
+ GPSTK_THROW(e);
+ }
+
+ if(K > 0) {
+ Index = new int[K];
+ if(!Index) {
+ gpstk::Exception e("Could not allocate");
+ GPSTK_THROW(e);
+ }
+ }
+ else Index = NULL;
+
+ nc = 0;
+ k = K;
+ n = N;
+ for(int j=0; j<k; j++)
+ Index[j]=j;
+}
+
+// -----------------------------------------------------------------------------------
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+ int PRSolution::RAIMCompute(const DayTime& Tr,
+ vector<SatID>& Satellite,
+ vector<double>& Pseudorange,
+ const EphemerisStore& Eph,
+ TropModel *pTropModel)
+ throw(Exception)
+ {
+ try {
+ int iret,jret,i,j,N,Nreject,MinSV,stage;
+ vector<bool> UseSat,UseSave;
+ vector<int> GoodIndexes;
+ // Use these to save the 'best' solution within the loop.
+ int BestNIter;
+ double BestRMS=0.0,BestSL=0.0,BestConv=0.0;
+ Vector<double> BestSol;
+ vector<bool> BestUse;
+ BestRMS = -1.0; // this marks the 'Best' set as unused.
+
+ // ----------------------------------------------------------------
+ // initialize
+ Valid = false;
+
+ // Save the input solution
+ // (for use in rejection when ResidualCriterion is false).
+ if(Solution.size() != 4) { Solution.resize(4); Solution = 0.0; }
+ APrioriSolution = Solution;
+
+ // ----------------------------------------------------------------
+ // fill the SVP matrix, and use it for every solution
+ // NB this routine can set Satellite[.]=negative when no ephemeris
+ i = PrepareAutonomousSolution(Tr, Satellite, Pseudorange, Eph, SVP);
+ if(Debug) {
+ *pDebugStream << "In RAIMCompute after PAS(): Satellites:";
+ for(j=0; j<Satellite.size(); j++) *pDebugStream << " " << Satellite[j];
+ *pDebugStream << endl;
+ *pDebugStream << " SVP matrix("
+ << SVP.rows() << "," << SVP.cols() << ")" << endl;
+ *pDebugStream << fixed << setw(16) << setprecision(3) << SVP << endl;
+ }
+ if(i) return -3; // return is 0(ok) or -4(no ephemeris)
+
+ // count how many good satellites we have
+ // Initialize UseSat based on Satellite, and build GoodIndexes.
+ // UseSat is used to mark good sats (true) and those to ignore (false).
+ // UseSave saves the original so it can be reused for each solution.
+ // Let GoodIndexes be all the indexes of Satellites that are good:
+ // UseSat[GoodIndexes[.]] == true by definition
+ for(N=0,i=0; i<Satellite.size(); i++) {
+ if(Satellite[i].id > 0) {
+ N++;
+ UseSat.push_back(true);
+ GoodIndexes.push_back(i);
+ }
+ else UseSat.push_back(false);
+ }
+ UseSave = UseSat;
+ //if(Debug) {
+ // *pDebugStream << "GoodIndexes (" << N << ") are";
+ // for(i=0; i<GoodIndexes.size(); i++)
+ // *pDebugStream << " " << Satellite[GoodIndexes[i]];
+ // *pDebugStream << endl;
+ //}
+
+ // don't even try if there are not 4 good satellites
+ if(N < 4) return -3;
+
+ // minimum number of sats needed for algorithm
+ MinSV = 5; // this would be RAIM
+ // ( not really RAIM || not RAIM at all - just one solution)
+ if(!ResidualCriterion || NSatsReject==0) MinSV=4;
+
+ // how many satellites can RAIM reject, if we have to?
+ // default is -1, meaning as many as possible
+ Nreject = NSatsReject;
+ if(Nreject == -1 || Nreject > N-MinSV)
+ Nreject=N-MinSV;
+
+ // ----------------------------------------------------------------
+ // now compute the solution, first with all the data. If this fails,
+ // reject 1 satellite at a time and try again, then 2, etc.
+
+ // Slopes for each satellite are computed (cf. the RAIM algorithm)
+ Vector<double> Slopes(Pseudorange.size());
+
+ // Residuals stores the post-fit data residuals.
+ Vector<double> Residuals(Satellite.size(),0.0);
+
+ // stage is the number of satellites to reject.
+ stage = 0;
+
+ do {
+ // compute all the combinations of N satellites taken stage at a time
+ Combinations Combo(N,stage);
+
+ // compute a solution for each combination of marked satellites
+ do {
+ // Mark the satellites for this combination
+ UseSat = UseSave;
+ for(i=0; i<GoodIndexes.size(); i++)
+ if(Combo.isSelected(i)) UseSat[i]=false;
+
+ // ----------------------------------------------------------------
+ // Compute a solution given the data; ignore ranges for marked
+ // satellites. Fill Vector 'Slopes' with slopes for each unmarked
+ // satellite.
+ // Return 0 ok
+ // -1 failed to converge
+ // -2 singular problem
+ // -3 not enough good data
+ NIterations = MaxNIterations; // pass limits in
+ Convergence = ConvergenceLimit;
+ iret = AutonomousPRSolution(Tr, UseSat, SVP, pTropModel, Algebraic,
+ NIterations, Convergence, Solution, Covariance, Residuals, Slopes);
+
+ // ----------------------------------------------------------------
+ // Compute RMS residual...
+ if(!ResidualCriterion) {
+ // when 'distance from a priori' is the criterion.
+ Vector<double> D=Solution-APrioriSolution;
+ RMSResidual = RMS(D);
+ }
+ else {
+ // and in the usual case
+ RMSResidual = RMS(Residuals);
+ }
+ // ... and find the maximum slope
+ MaxSlope = 0.0;
+ if(iret == 0)
+ for(i=0; i<UseSat.size(); i++)
+ if(UseSat[i] && Slopes(i)>MaxSlope) MaxSlope=Slopes[i];
+
+ // ----------------------------------------------------------------
+ // print solution with diagnostic information
+ if(Debug) {
+ *pDebugStream << "RPS " << setw(2) << stage
+ << " " << setw(4) << Tr.GPSfullweek()
+ << " " << fixed << setw(10) << setprecision(3) << Tr.GPSsecond()
+ << " " << setw(2) << N-stage << setprecision(6)
+ << " " << setw(16) << Solution(0)
+ << " " << setw(16) << Solution(1)
+ << " " << setw(16) << Solution(2)
+ << " " << setw(14) << Solution(3)
+ << " " << setw(12) << RMSResidual
+ << " " << fixed << setw(5) << setprecision(1) << MaxSlope
+ << " " << NIterations
+ << " " << scientific << setw(8) << setprecision(2)<< Convergence;
+ // print the SatID for good sats
+ for(i=0; i<UseSat.size(); i++) {
+ if(UseSat[i])
+ *pDebugStream << " " << setw(3)<< Satellite[i].id;
+ else
+ *pDebugStream << " " << setw(3) << -::abs(Satellite[i].id);
+ }
+ // also print the return value
+ *pDebugStream << " (" << iret << ")" << endl;
+ }// end debug print
+
+ // ----------------------------------------------------------------
+ // deal with the results of AutonomousPRSolution()
+ if(iret) { // failure for this combination
+ RMSResidual = 0.0;
+ Solution = 0.0;
+ }
+ else { // success
+ // save 'best' solution for later
+ if(BestRMS < 0.0 || RMSResidual < BestRMS) {
+ BestRMS = RMSResidual;
+ BestSol = Solution;
+ BestUse = UseSat;
+ BestSL = MaxSlope;
+ BestConv = Convergence;
+ BestNIter = NIterations;
+ }
+ // quit immediately?
+ if((stage==0 || ReturnAtOnce) && RMSResidual < RMSLimit)
+ break;
+ }
+
+ // get the next combinations and repeat
+ } while(Combo.Next() != -1);
+
+ // end of the stage
+ if(BestRMS > 0.0 && BestRMS < RMSLimit) { // success
+ iret=0;
+ break;
+ }
+
+ // go to next stage
+ stage++;
+ if(stage > Nreject) break;
+
+ } while(iret == 0); // end loop over stages
+
+ // ----------------------------------------------------------------
+ // copy out the best solution and return
+ Convergence = BestConv;
+ NIterations = BestNIter;
+ RMSResidual = BestRMS;
+ Solution = BestSol;
+ MaxSlope = BestSL;
+ for(Nsvs=0,i=0; i<BestUse.size(); i++) {
+ if(!BestUse[i]) Satellite[i].id = -::abs(Satellite[i].id);
+ else Nsvs++;
+ }
+
+ if(iret==0 && BestSL > SlopeLimit) iret=1;
+ if(iret==0 && BestSL > SlopeLimit/2.0 && Nsvs == 5) iret=1;
+ if(iret>=0 && BestRMS >= RMSLimit) iret=2;
+
+ if(iret==0) Valid=true;
+
+ return iret;
+ }
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end PRSolution::RAIMCompute()
+
+ int PRSolution::PrepareAutonomousSolution(const DayTime& Tr,
+ vector<SatID>& Satellite,
+ vector<double>& Pseudorange,
+ const EphemerisStore& Eph,
+ Matrix<double>& SVP,
+ ostream *pDebugStream)
+ throw()
+ {
+ int i,j,nsvs,N=Satellite.size();
+ DayTime tx; // transmit time
+ Xvt PVT;
+
+ if(N <= 0) return 0;
+ SVP = Matrix<double>(N,4);
+ SVP = 0.0;
+
+ for(nsvs=0,i=0; i<N; i++) {
+ // skip marked satellites
+ if(Satellite[i].id <= 0) continue;
+
+ // first estimate of transmit time
+ tx = Tr;
+ tx -= Pseudorange[i]/C_GPS_M;
+ // get ephemeris range, etc
+ try {
+ PVT = Eph.getSatXvt(Satellite[i], tx);
+ }
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ Satellite[i].id = -::abs(Satellite[i].id);
+ continue;
+ }
+
+ // update transmit time and get ephemeris range again
+ tx -= PVT.dtime; // clk+rel
+ try {
+ PVT = Eph.getSatXvt(Satellite[i], tx);
+ }
+ catch(EphemerisStore::NoEphemerisFound& e) {
+ Satellite[i].id = -::abs(Satellite[i].id);
+ continue;
+ }
+
+ // SVP = {SV position at transmit time}, raw range + clk + rel
+ for(j=0; j<3; j++) SVP(i,j) = PVT.x[j];
+ SVP(i,3) = Pseudorange[i] + C_GPS_M * PVT.dtime;
+ nsvs++;
+ }
+
+ if(nsvs == 0) return -4;
+ return 0;
+
+ } // end PrepareAutonomousPRSolution
+
+ int PRSolution::AlgebraicSolution(Matrix<double>& A,
+ Vector<double>& Q,
+ Vector<double>& X,
+ Vector<double>& R)
+ {
+ try {
+ int N=A.rows();
+ Matrix<double> AT=transpose(A);
+ Matrix<double> B=AT,C(4,4);
+
+ C = AT * A;
+ // invert
+ try {
+ //double big,small;
+ //condNum(C,big,small);
+ //if(small < 1.e-15 || big/small > 1.e15) return -2;
+ C = inverseSVD(C);
+ }
+ catch(SingularMatrixException& sme) {
+ return -2;
+ }
+
+ B = C * AT;
+
+ Vector<double> One(N,1.0),V(4),U(4);
+ double E,F,G,d,lam;
+
+ U = B * One;
+ V = B * Q;
+ E = Minkowski(U,U);
+ F = Minkowski(U,V) - 1.0;
+ G = Minkowski(V,V);
+ d = F*F-E*G;
+ if(d < 0.0) d=0.0; // avoid imaginary solutions: what does this really mean?
+ d = SQRT(d);
+
+ // first solution ...
+ lam = (-F+d)/E;
+ X = lam*U + V;
+ X(3) = -X(3);
+ // ... and its residual
+ R(0) = A(0,3)-X(3) - RSS(X(0)-A(0,0), X(1)-A(0,1), X(2)-A(0,2));
+
+ // second solution ...
+ lam = (-F-d)/E;
+ X = lam*U + V;
+ X(3) = -X(3);
+ // ... and its residual
+ R(1) = A(0,3)-X(3) - RSS(X(0)-A(0,0), X(1)-A(0,1), X(2)-A(0,2));
+
+ // pick the right solution
+ if(ABS(R(1)) > ABS(R(0))) {
+ lam = (-F+d)/E;
+ X = lam*U + V;
+ X(3) = -X(3);
+ }
+
+ // compute the residuals
+ for(int i=0; i<N; i++)
+ R(i) = A(i,3)-X(3) - RSS(X(0)-A(i,0), X(1)-A(i,1), X(2)-A(i,2));
+
+ return 0;
+
+ }
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end PRSolution::AlgebraicSolution
+
+
+ int PRSolution::AutonomousPRSolution(const DayTime& T,
+ const vector<bool>& Use,
+ const Matrix<double> SVP,
+ TropModel *pTropModel,
+ const bool Algebraic,
+ int& n_iterate,
+ double& converge,
+ Vector<double>& Sol,
+ Matrix<double>& Cov,
+ Vector<double>& Resid,
+ Vector<double>& Slope,
+ ostream *pDebugStream)
+ throw(Exception)
+ {
+ if(!pTropModel) {
+ Exception e("Undefined tropospheric model");
+ GPSTK_THROW(e);
+ }
+
+ try {
+ int iret,i,j,n,N;
+ double rho,wt,svxyz[3];
+ GPSGeoid geoid; // WGS84?
+
+ if(pDebugStream) *pDebugStream << "Enter APRS " << n_iterate << " "
+ << scientific << setprecision(3) << converge << endl;
+
+ // find the number of good satellites
+ for(N=0,i=0; i<Use.size(); i++) if(Use[i]) N++;
+ if(N < 4) return -3;
+
+ // define for computation
+ Vector<double> CRange(N),dX(4);
+ Matrix<double> P(N,4),PT,G(4,N),PG(N,N);
+ Xvt SV,RX;
+
+ Sol.resize(4);
+ Cov.resize(4,4);
+ Resid.resize(N);
+ Slope.resize(Use.size());
+
+ // define for algebraic solution
+ Vector<double> U(4),Q(N);
+ Matrix<double> A(P);
+ // and for linearized least squares
+ int niter_limit = (n_iterate<2 ? 2 : n_iterate);
+ double conv_limit = converge;
+
+ // prepare for iteration loop
+ Sol = 0.0; // initial guess: center of earth
+ n_iterate = 0;
+ converge = 0.0;
+
+ // iteration loop
+ // do at least twice (even for algebraic solution) so that
+ // trop model gets evaluated
+ do {
+ // current estimate of position solution
+ RX.x = ECEF(Sol(0),Sol(1),Sol(2));
+
+ // loop over satellites, computing partials matrix
+ for(n=0,i=0; i<Use.size(); i++) {
+ // ignore marked satellites
+ if(!Use[i]) continue;
+
+ // time of flight (sec)
+ if(n_iterate == 0)
+ rho = 0.070; // initial guess: 70ms
+ else
+ rho = RSS(SVP(i,0)-Sol(0), SVP(i,1)-Sol(1), SVP(i,2)-Sol(2))
+ / geoid.c();
+
+ // correct for earth rotation
+ wt = geoid.angVelocity()*rho; // radians
+ svxyz[0] = ::cos(wt)*SVP(i,0) + ::sin(wt)*SVP(i,1);
+ svxyz[1] = -::sin(wt)*SVP(i,0) + ::cos(wt)*SVP(i,1);
+ svxyz[2] = SVP(i,2);
+
+ // corrected pseudorange (m)
+ CRange(n) = SVP(i,3);
+
+ // correct for troposphere (but not on the first iteration)
+ if(n_iterate > 0) {
+ SV.x = ECEF(svxyz[0],svxyz[1],svxyz[2]);
+ // must test RX for reasonableness to avoid corrupting TropModel
+ Position R(RX),S(SV);
+ double tc=R.getHeight(), elev = R.elevation(SV);
+ if(elev < 0.0 || tc > 10000.0 || tc < -1000) tc=0.0;
+ else tc = pTropModel->correction(R,S,T);
+ CRange(n) -= tc;
+ }
+
+ // geometric range
+ rho = RSS(svxyz[0]-Sol(0),svxyz[1]-Sol(1),svxyz[2]-Sol(2));
+
+ // partials matrix
+ P(n,0) = (Sol(0)-svxyz[0])/rho; // x direction cosine
+ P(n,1) = (Sol(1)-svxyz[1])/rho; // y direction cosine
+ P(n,2) = (Sol(2)-svxyz[2])/rho; // z direction cosine
+ P(n,3) = 1.0;
+
+ // data vector: corrected range residual
+ Resid(n) = CRange(n) - rho - Sol(3);
+
+ // TD: allow weight matrix = measurement covariance
+ // P *= MCov;
+ // Resid *= MCov;
+
+ // compute intermediate quantities for algebraic solution
+ if(Algebraic) {
+ U(0) = A(n,0) = svxyz[0];
+ U(1) = A(n,1) = svxyz[1];
+ U(2) = A(n,2) = svxyz[2];
+ U(3) = A(n,3) = CRange(n);
+ Q(n) = 0.5 * Minkowski(U,U);
+ }
+
+ n++; // n is number of good satellites - used for Slope
+ } // end loop over satellites
+
+ // compute information matrix = inverse covariance matrix
+ PT = transpose(P);
+ Cov = PT * P;
+
+ // invert using SVD
+ //double big,small;
+ //condNum(PT*P,big,small);
+ //if(small < 1.e-15 || big/small > 1.e15) return -2;
+ try { Cov = inverseSVD(Cov); }
+ //try { Cov = inverseLUD(Cov); }
+ catch(SingularMatrixException& sme) {
+ return -2;
+ }
+
+ // generalized inverse
+ G = Cov * PT;
+ PG = P * G; // used for Slope
+
+ n_iterate++; // increment number iterations
+
+ // ----------------- algebraic solution -----------------------
+ if(Algebraic) {
+ iret = PRSolution::AlgebraicSolution(A,Q,Sol,Resid);
+ if(iret) return iret; // (singular)
+ if(n_iterate > 1) { // need 2, for trop
+ iret = 0;
+ break;
+ }
+ }
+ // ----------------- linearized least squares solution --------
+ else {
+ dX = G * Resid;
+ Sol += dX;
+ // test for convergence
+ converge = norm(dX);
+ // success: quit
+ if(n_iterate > 1 && converge < conv_limit) {
+ iret = 0;
+ break;
+ }
+ // failure: quit
+ if(n_iterate >= niter_limit || converge > 1.e10) {
+ iret = -1;
+ break;
+ }
+ }
+
+
+ } while(1); // end iteration loop
+
+ // compute slopes
+ Slope = 0.0;
+ if(iret == 0) for(j=0,i=0; i<Use.size(); i++) {
+ if(!Use[i]) continue;
+ for(int k=0; k<4; k++) Slope(i) += G(k,j)*G(k,j);
+ Slope(i) = SQRT(Slope(i)*double(n-4)/(1.0-PG(j,j)));
+ j++;
+ }
+
+ return iret;
+
+ }
+ catch(Exception& e) {
+ GPSTK_RETHROW(e);
+ }
+ } // end PRSolution::AutonomousPRSolution
+
+} // namespace gpstk
diff --git a/dev/src/PRSolution.hpp b/dev/src/PRSolution.hpp
new file mode 100644
index 0000000..0123bc3
--- /dev/null
+++ b/dev/src/PRSolution.hpp
@@ -0,0 +1,282 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file PRSolution.hpp
+ * Autonomous pseudorange navigation solution, including RAIM algorithm
+ */
+
+#ifndef PRS_POSITION_SOLUTION_HPP
+#define PRS_POSITION_SOLUTION_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <vector>
+#include <ostream>
+#include "icd_200_constants.hpp"
+#include "DayTime.hpp"
+#include "SatID.hpp"
+#include "Matrix.hpp"
+#include "RinexObsHeader.hpp"
+#include "EphemerisStore.hpp"
+#include "TropModel.hpp"
+
+namespace gpstk
+{
+ /** @defgroup GPSsolutions GPS solution algorithms and Tropospheric models */
+ //@{
+
+ /** This class defines an interface to routines which compute a position
+ * and time solution from pseudorange data, with a data editing algorithm
+ * based on Receiver Autonomous Integrity Monitoring (RAIM) concepts.
+ * RAIM ref. "A Baseline GPS RAIM Scheme and a Note on the Equivalence of
+ * Three RAIM Methods," by R. Grover Brown, Journal of the Institute of
+ * Navigation, Vol. 39, No. 3, Fall 1992, pg 301.
+ */
+ class PRSolution
+ {
+ public:
+ /// Constructor
+ PRSolution() throw() : RMSLimit(6.5), SlopeLimit(100.),
+ Algebraic(false), ResidualCriterion(true), ReturnAtOnce(false),
+ NSatsReject(-1), Debug(false), pDebugStream(&std::cout),
+ MaxNIterations(10), ConvergenceLimit(3.e-7), Valid(false) {};
+
+ /** Compute a position/time solution, given satellite PRNs and pseudoranges
+ * using a RAIM algorithm.
+ * @param Tr Measured time of reception of the data.
+ * @param Satellite std::vector<SatID> of satellites; on successful
+ * return, satellites that were excluded by the algorithm
+ * are marked by a negative 'prn' member.
+ * @param Pseudorange std::vector<double> of raw pseudoranges (parallel to
+ * Satellite), in meters; on successful return,
+ * contains residuals of fit (m) (for unmarked satellites).
+ * @param Eph gpstk::EphemerisStore to be used in the algorithm.
+ *
+ * @return Return values:
+ * 2 solution is found, but it is not good (RMS residual exceed limits)
+ * 1 solution is found, but it is suspect (slope is large)
+ * 0 ok
+ * -1 algorithm failed to converge
+ * -2 singular problem, no solution is possible
+ * -3 not enough good data (> 4) to form a (RAIM) solution
+ * (the 4 satellite solution might be returned - check isValid())
+ * -4 ephemeris is not found for one or more satellites
+ */
+ int RAIMCompute(const DayTime& Tr,
+ std::vector<SatID>& Satellite,
+ std::vector<double>& Pseudorange,
+ const EphemerisStore& Eph,
+ TropModel *pTropModel)
+ throw(Exception);
+
+ /// Return the status of solution
+ bool isValid()
+ const throw() { return Valid; }
+
+ // input:
+
+ /// RMS limit - either residual of fit or distance (see ResidualCriterion).
+ double RMSLimit;
+
+ /// Slope limit.
+ double SlopeLimit;
+
+ /// Use an algebraic (if true) or linearized least squares (if false) algorithm.
+ bool Algebraic;
+
+ /** Use a rejection criterion based on RMS residual of fit (true)
+ * or RMS distance from an a priori position. If false, member Vector Solution
+ * must be defined as this a priori position when RAIMCompute() is called.
+ */
+ bool ResidualCriterion;
+
+ /** Return as soon as a solution meeting the limit requirements is found
+ * (this makes it a non-RAIM algorithm).
+ */
+ bool ReturnAtOnce;
+
+ /** Maximum number of satellites that may be rejected in the RAIM algorithm;
+ * if this = -1, as many as possible will be rejected (RAIM requires at least 5
+ * satellites). A (single) non-RAIM solution can be obtained by setting this
+ * to 0 before calling RAIMCompute().
+ */
+ int NSatsReject;
+
+ /// If true, RAIMCompute() will output solution information to *pDebugStream.
+ bool Debug;
+
+ /// Pointer to an ostream, default &std::cout; if Debug is true, RAIMCompute()
+ /// will print all preliminary solutions to this stream.
+ std::ostream *pDebugStream;
+
+ // TD optional: measurement covariance matrix
+
+ /// Maximum number of iterations allowed in the linearized least squares
+ /// algorithm.
+ int MaxNIterations;
+
+ /// Convergence limit (m): continue iteration loop while RSS change in
+ /// solution exceeds this.
+ double ConvergenceLimit;
+
+ // output:
+
+ /// flag: output content is valid.
+ bool Valid;
+
+ /** Vector<double> containing the computed position solution (ECEF, meter);
+ * valid only when isValid() is true.
+ */
+ Vector<double> Solution;
+
+ /** 4x4 Matrix<double> containing the computed solution covariance (meter);
+ * valid only when isValid() is true.
+ */
+ Matrix<double> Covariance;
+
+ /** Root mean square residual of fit (except when RMSDistanceFlag is set,
+ * then RMS distance from apriori 4-position); in meters.
+ */
+ double RMSResidual;
+
+ /** Slope computed in the RAIM algorithm (largest of all satellite values)
+ * for the returned solution, dimensionless ??.
+ */
+ double MaxSlope;
+
+ /// the actual number of iterations used (linearized least squares algorithm)
+ int NIterations;
+
+ /// the RSS change in solution at the end of iterations.
+ double Convergence;
+
+ /// the number of good satellites used in the final computation
+ int Nsvs;
+
+ /** Compute the satellite position / corrected range matrix (SVP) which is used
+ * by AutonomousPRSolution(). SVP is output, dimensioned (N,4) where N is the
+ * number of satellites and the length of both Satellite and Pseudorange.
+ * Data is ignored whenever Sats[i].id is < 0. NB caller should verify that the
+ * number of good entries (Satellite[.] > 0) is > 4 before proceeding.
+ * @param Tr Measured time of reception of the data.
+ * @param Sats std::vector<SatID> of satellites; satellites that are
+ * to be excluded by the algorithm are marked by a
+ * negative 'prn' member.
+ * @param Pseudorange std::vector<double> of raw pseudoranges (parallel to
+ * Satellite), in meters
+ * @param Eph gpstk::EphemerisStore to be used in the algorithm.
+ * @param SVP gpstk::Matrix<double> of dimension (N,4), N is the number
+ * of unmarked satellites in Sats[], on output this
+ * contains the satellite positions at transmit time, and
+ * the corrected pseudorange.
+ * @param pDebug pointer to an ostream for debug output, NULL (the default)
+ * for no debug output.
+ * @return Return values:
+ * 0 ok
+ * -4 ephemeris not found for all the satellites
+ */
+ static int PrepareAutonomousSolution(const DayTime& Tr,
+ std::vector<SatID>& Sats,
+ std::vector<double>& Pseudorange,
+ const EphemerisStore& Eph,
+ Matrix<double>& SVP,
+ std::ostream *pDebug=NULL)
+ throw();
+
+ /** Compute a single autonomous pseudorange solution.
+ * Input only:
+ * @param Tr Measured time of reception of the data.
+ * @param Use std::vector<bool> of length N, the number of satellites;
+ * false means do not include that sat. in the computation.
+ * @param SVP Matrix<double> of dimension (N,4). This Matrix must have
+ * been computed by calling PrepareAutonomousPRSolution().
+ * @param Algebraic bool flag indicating algorithm to use : algebraic (true)
+ * or linearized least squares (false).
+ * @param pTropModel pointer to a gpstk::TropModel for use within the algorithm
+ *
+ * Weight matrix TD...
+ *
+ * Input and output (for least squares only; ignored if Algebraic==true):
+ * @param n_iterate integer limit on the number of iterations. On output,
+ * it is the number of iterations actually used.
+ * @param converge double convergence criterion, = RSS change in solution,
+ * in meters. On output, it is the the final value.
+ *
+ * Output: (these will be resized within the function)
+ * @param Sol gpstk::Vector<double> solution (ECEF + time components;
+ * all in meters)
+ * @param Cov gpstk::Matrix<double> 4X4 covariance matrix (meter*meter)
+ * @param Resid gpstk::Vector<double> post-fit range residuals for each
+ * satellite (m), the length of this Vector is the number of
+ * satellites actually used (see Use).
+ * @param Slope gpstk::Vector<double> slope value used in RAIM for each
+ * good satellite, length N
+ * @param pDebug pointer to an ostream for debug output, NULL (the default)
+ * for no debug output.
+ * @return Return values:
+ * 0 ok
+ * -1 failed to converge
+ * -2 singular problem
+ * -3 not enough good data to form a solution (at least 4 satellites required)
+ * -4 ephemeris not found for one or more satellites
+ */
+ static int AutonomousPRSolution(const DayTime& Tr,
+ const std::vector<bool>& Use,
+ const Matrix<double> SVP,
+ TropModel *pTropModel,
+ const bool Algebraic,
+ int& n_iterate,
+ double& converge,
+ Vector<double>& Sol,
+ Matrix<double>& Cov,
+ Vector<double>& Resid,
+ Vector<double>& Slope,
+ std::ostream *pDebug=NULL)
+ throw(Exception);
+
+ private:
+
+ /** Matrix, dimensioned Nx4, where N data are input, containing satellite
+ * positions at transmit time (0,1,2) and raw pseudorange+clk+relativity (3).
+ */
+ Matrix<double> SVP;
+
+ /// Save the input solution (for use in rejection when ResidualCriterion is
+ /// false).
+ Vector<double> APrioriSolution;
+
+ /** Function used internally to handle the details of the Algebraic solution */
+ static int AlgebraicSolution(Matrix<double>& A,
+ Vector<double>& Q,
+ Vector<double>& X,
+ Vector<double>& R);
+
+ }; // end class PRSolution
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/PolyFit.hpp b/dev/src/PolyFit.hpp
new file mode 100644
index 0000000..eb7a01e
--- /dev/null
+++ b/dev/src/PolyFit.hpp
@@ -0,0 +1,266 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file PolyFit.hpp
+ * Least squares fit using a polynomial model.
+ */
+
+#ifndef GPSTK_POLYFIT_HPP
+#define GPSTK_POLYFIT_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "Matrix.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup math */
+ //@{
+
+/**
+ * Compute a polynomial fit of the form sum[X(i)*t**i] = d, that is solve for
+ * coefficients X given a set of data pairs (t,d). The dimension of X is n, the
+ * degree of the polynomial.
+ * @code
+ * unsigned int i,n=4;
+ * double dat[17]={...}, times[17]={...};
+ * PolyFit<double> PF(n);
+ * for(i=0; i<17; i++)
+ * PF.Add(dat[i],times[i]);
+ *
+ * cout << "Solution vector: " << PF.Solution() << endl;
+ * cout << "Covariance matrix: " << PF.Covariance() << endl;
+ * for(i=0; i<17; i++)
+ * cout << times[i] << " " << dat[i] << " " << PF.Evaluate(times[i]) << endl;
+ * @endcode
+ */
+ template <class T>
+ class PolyFit
+ {
+ public:
+ /// Empty constructor
+ PolyFit() : n_(0), Inverted(false), Singular(true), Npts(0) {}
+
+ /// Constructor given an initial size.
+ PolyFit(unsigned int n) : n_(n), Inverted(false), Singular(true), Npts(0)
+ {
+ InfData.resize(n_,T(0));
+ X.resize(n_);
+ InfMatrix.resize(n_,n_,T(0));
+ Cov.resize(n_,n_);
+ }
+
+ /** Reset the estimation, i.e. restart with new data, with new dimension.
+ * Default dimension is 0, meaning do not change dimension.
+ */
+ void Reset(unsigned int n=0)
+ {
+ if(n != 0 && n_ != n) {
+ InfData.resize(n,T(0));
+ X.resize(n);
+ InfMatrix.resize(n,n,T(0));
+ Cov.resize(n,n);
+ n_ = n;
+ }
+ Npts = 0;
+ InfData = T(0);
+ X = T(0);
+ InfMatrix = T(0);
+ Cov = T(0);
+ Singular = true;
+ Inverted = false;
+ }
+
+ /// Add a single (optional: weighted) datum to the estimation.
+ void Add(T d, T t, T w=T(1))
+ {
+ // n_-1
+ // Equation is sum[t^i * X(i)] = d OR P * X = d
+ // i=0 1xn_ n_ 1
+ Vector<T> P(n_);
+ T tt=T(1);
+ for(size_t i=0; i<n_; i++) { P(i)=tt; tt *= t; }
+ Npts++;
+ Matrix<T> PP;
+ PP = outer(P,P);
+ PP *= w;
+ InfMatrix += PP;
+ P *= d*w;
+ InfData += P;
+ Inverted = false;
+ }
+
+ /// Add a gpstk::Vector of data to the estimation.
+ void Add(const Vector<T>& d, const Vector<T>& t)
+ {
+ size_t m=d.size();
+ if(t.size() < m) m=t.size();
+
+ Matrix<T> P(m,n_);
+ Vector<T> D(d);
+ D.resize(m);
+
+ for(size_t j=0; j<m; j++) {
+ T tt=T(1);
+ for(size_t i=0; i<n_; i++) { P(j,i)=tt; tt *= t(j); }
+ }
+ Npts += m;
+ Matrix<T> PTP,PT;
+ PT = transpose(P);
+ PTP = PT*P;
+ InfMatrix += PTP;
+ InfData += PT*D;
+ Inverted = false;
+ }
+
+ /// Add a std::vector of data to the estimation.
+ void Add(const std::vector<T>& d, const std::vector<T>& t)
+ {
+ size_t m=d.size();
+ if(t.size() < m) m=t.size();
+
+ Matrix<T> P(m,n_);
+ Vector<T> D;
+ D.resize(m);
+ for(int i=0; i<m; i++) D(i)=d[i];
+
+ for(size_t j=0; j<m; j++) {
+ T tt=T(1);
+ for(size_t i=0; i<n_; i++) { P(j,i)=tt; tt *= t[j]; }
+ }
+ Npts += m;
+ Matrix<T> PTP,PT;
+ PT = transpose(P);
+ PTP = PT*P;
+ InfMatrix += PTP;
+ InfData += PT*D;
+ Inverted = false;
+ }
+
+ /// Evaluate the polynomial at the given time; singular problems return zero.
+ T Evaluate(T t)
+ {
+ if(n_ <= 0) { Singular=true; return T(0); }
+ Solve();
+ if(Singular) return T(0);
+
+ T d,tn;
+ d = X(0);
+ tn = t;
+ for(size_t i=1; i<X.size(); i++) {
+ d += X(i)*tn;
+ tn *= t;
+ }
+ return d;
+ }
+
+ /// Evaluate the polynomial at a Vector of times;
+ /// singular problems return an empty vector.
+ Vector<T> Evaluate(const Vector<T>& Vt)
+ {
+ Vector<T> R;
+ if(n_ <= 0) { Singular=true; return R; }
+ Solve();
+ if(Singular) return R;
+
+ T tn;
+ R = Vector<T>(Vt.size());
+ for(size_t j=0; j<Vt.size(); j++) {
+ R(j) = X(0);
+ tn = Vt(j);
+ for(size_t i=1; i<X.size(); i++) {
+ R(j) += X(i)*tn;
+ tn *= Vt(j);
+ }
+ }
+ return R;
+ }
+
+ /// is the problem singular?
+ inline bool isSingular(void) { Solve(); return Singular; }
+ /// get the solution vector (coefficients)
+ inline Vector<T> Solution(void) { Solve(); return X; }
+ /// get the covariance matrix
+ inline Matrix<T> Covariance(void) { Solve(); return Cov; }
+ /// get the degree of the polynomial
+ inline unsigned int Degree(void) const { return n_; }
+ /// get the number of data points processed
+ inline unsigned int N(void) const { return Npts; }
+
+ private:
+ /// Invert the equation
+ inline void Solve(void)
+ {
+ if(Inverted) return;
+ try { Cov=inverse(InfMatrix); }
+ catch (gpstk::Exception& e) { Singular=true; return; }
+ Singular = false;
+ X = Cov * InfData;
+ Inverted = true;
+ }
+
+ /// degree of polynomial to be fit (dimension of state).
+ unsigned int n_;
+ /// number of data points added to the estimation so far.
+ unsigned int Npts;
+ /// information matrix = inverse(Cov) = sum[transpose(P)*P], P=partials.
+ Matrix<T> InfMatrix;
+ /// information data = inverse(Cov)*X = sum[transpose(P)*data].
+ Vector<T> InfData;
+ /// flag indicating problem has been inverted.
+ bool Inverted;
+ /// flag indicating problem is singular.
+ bool Singular;
+ /// State vector (array of polynomial coefficients) of size n_.
+ Vector<T> X;
+ /// Covariance matrix
+ Matrix<T> Cov;
+
+ }; // end class PolyFit
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/Position.cpp b/dev/src/Position.cpp
new file mode 100644
index 0000000..f8d7d6d
--- /dev/null
+++ b/dev/src/Position.cpp
@@ -0,0 +1,1540 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file Position.cpp
+ * class gpstk::Position encapsulates 3-D positions, both geographic positions,
+ * expressed as geodetic (with respect to any geoid), geocentric or
+ * Earth-centered, Earth-fixed (cartesian) coordinates, as well as ordinary
+ * positions defined by spherical or cartesian coordinates. Position inherits
+ * from class Triple.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "Position.hpp"
+#include "WGS84Geoid.hpp"
+#include "icd_200_constants.hpp" // for TWO_PI, etc
+#include "geometry.hpp" // for RAD_TO_DEG, etc
+#include "MiscMath.hpp" // for RSS, SQRT
+
+namespace gpstk
+{
+
+ using namespace std;
+ using namespace StringUtils;
+
+ // ----------- Part 1: coordinate systems --------------------------------
+ // Labels for coordinate systems supported by Position
+ static const char *SystemNames[] = {
+ "Unknown",
+ "Geodetic",
+ "Geocentric",
+ "Cartesian",
+ "Spherical"};
+
+ // return string giving name of coordinate system
+ string Position::getSystemName()
+ throw()
+ { return SystemNames[system]; }
+
+ // ----------- Part 2: tolerance -----------------------------------------
+ // One millimeter tolerance.
+ const double Position::ONE_MM_TOLERANCE = 0.001;
+ // One centimeter tolerance.
+ const double Position::ONE_CM_TOLERANCE = 0.01;
+ // One micron tolerance.
+ const double Position::ONE_UM_TOLERANCE = 0.000001;
+
+ // Default tolerance for time equality in meters.
+ double Position::POSITION_TOLERANCE = Position::ONE_MM_TOLERANCE;
+
+ // Sets the tolerance for output and comparisons, for this object only.
+ // See the constants in this file (e.g. ONE_MM_TOLERANCE)
+ // for some easy to use tolerance values.
+ // @param tol Tolerance in meters to be used by comparison operators.
+ Position& Position::setTolerance(const double tol)
+ throw()
+ {
+ tolerance = tol;
+ return *this;
+ }
+
+ // ----------- Part 3: member functions: constructors --------------------
+ //
+ // Default constructor.
+ Position::Position()
+ throw()
+ {
+ WGS84Geoid WGS84;
+ initialize(0.0,0.0,0.0,Unknown,&WGS84);
+ }
+
+ Position::Position(const double& a,
+ const double& b,
+ const double& c,
+ Position::CoordinateSystem s,
+ GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ try {
+ initialize(a,b,c,s,geoid);
+ }
+ catch(GeometryException& ge) {
+ GPSTK_RETHROW(ge);
+ }
+ }
+
+ Position::Position(const double ABC[3],
+ CoordinateSystem s,
+ GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ double a=ABC[0];
+ double b=ABC[1];
+ double c=ABC[2];
+ try {
+ initialize(a,b,c,s,geoid);
+ }
+ catch(GeometryException& ge) {
+ GPSTK_RETHROW(ge);
+ }
+ }
+
+ Position::Position(const Triple& ABC,
+ CoordinateSystem s,
+ GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ double a=ABC[0];
+ double b=ABC[1];
+ double c=ABC[2];
+ try {
+ initialize(a,b,c,s,geoid);
+ }
+ catch(GeometryException& ge) {
+ GPSTK_RETHROW(ge);
+ }
+ }
+
+ Position::Position(const Xvt& xvt)
+ throw()
+ {
+ double a=xvt.x[0];
+ double b=xvt.x[1];
+ double c=xvt.x[2];
+ initialize(a,b,c,Cartesian);
+ }
+
+ // ----------- Part 4: member functions: arithmetic ----------------------
+ //
+ Position& Position::operator-=(const Position& right)
+ throw()
+ {
+ Position r(right);
+ CoordinateSystem savesys=system; // save the original system
+
+ // convert to cartestian and difference there
+ transformTo(Cartesian);
+ r.transformTo(Cartesian);
+
+ for(int i=0; i<3; i++)
+ theArray[i] -= r.theArray[i];
+
+ transformTo(savesys); // transform back to the original system
+ return *this;
+ }
+
+ Position& Position::operator+=(const Position& right)
+ throw()
+ {
+ Position r(right);
+ CoordinateSystem savesys=system; // save the original system
+
+ // convert to cartestian and difference there
+ transformTo(Cartesian);
+ r.transformTo(Cartesian);
+
+ for(int i=0; i<3; i++)
+ theArray[i] += r.theArray[i];
+
+ transformTo(savesys); // transform back to the original system
+ return *this;
+ }
+
+ Position operator-(const Position& left,
+ const Position& right)
+ throw()
+ {
+ Position l(left),r(right);
+ // convert both to Cartesian
+ l.transformTo(Position::Cartesian);
+ r.transformTo(Position::Cartesian);
+ // difference
+ l -= r;
+
+ return l;
+ }
+
+ Position operator+(const Position& left,
+ const Position& right)
+ throw()
+ {
+ Position l(left),r(right);
+ // convert both to Cartesian
+ l.transformTo(Position::Cartesian);
+ r.transformTo(Position::Cartesian);
+ // add
+ l += r;
+
+ return l;
+ }
+
+ // ----------- Part 5: member functions: comparisons ---------------------
+ //
+ // Equality operator. Returns false if geoid values differ.
+ bool Position::operator==(const Position &right) const
+ throw()
+ {
+ if(AEarth != right.AEarth || eccSquared != right.eccSquared)
+ return false;
+ if(range(*this,right) < tolerance)
+ return true;
+ else
+ return false;
+ }
+
+ // Inequality operator. Returns true if geoid values differ.
+ bool Position::operator!=(const Position &right) const
+ throw()
+ {
+ return !(operator==(right));
+ }
+
+ // ----------- Part 6: member functions: coordinate transformations ------
+ //
+ // Transform coordinate system. Does nothing if sys already matches the
+ // current value of member CoordinateSystem 'system'.
+ // @param sys coordinate system into which *this is to be transformed.
+ // @return *this
+ Position Position::transformTo(CoordinateSystem sys)
+ throw()
+ {
+ if(sys == Unknown || sys == system) return *this;
+
+ // this copies geoid information and tolerance
+ Position target(*this);
+
+ // transform target.theArray and set target.system
+ switch(system) {
+ case Unknown:
+ return *this;
+ case Geodetic:
+ // --------------- Geodetic to ... ------------------------
+ switch(sys) {
+ case Unknown: case Geodetic: return *this;
+ case Geocentric:
+ convertGeodeticToGeocentric(*this,target,AEarth,eccSquared);
+ target.system = Geocentric;
+ break;
+ case Cartesian:
+ convertGeodeticToCartesian(*this,target,AEarth,eccSquared);
+ target.system = Cartesian;
+ break;
+ case Spherical:
+ convertGeodeticToGeocentric(*this,target,AEarth,eccSquared);
+ target.theArray[0] = 90 - target.theArray[0]; // geocen -> sph
+ target.system = Spherical;
+ break;
+ }
+ break;
+ case Geocentric:
+ // --------------- Geocentric to ... ----------------------
+ switch(sys) {
+ case Unknown: case Geocentric: return *this;
+ case Geodetic:
+ convertGeocentricToGeodetic(*this,target,AEarth,eccSquared);
+ target.system = Geodetic;
+ break;
+ case Cartesian:
+ convertGeocentricToCartesian(*this,target);
+ target.system = Cartesian;
+ break;
+ case Spherical:
+ target.theArray[0] = 90 - target.theArray[0]; // geocen -> sph
+ target.system = Spherical;
+ break;
+ }
+ break;
+ case Cartesian:
+ // --------------- Cartesian to ... -----------------------
+ switch(sys) {
+ case Unknown: case Cartesian: return *this;
+ case Geodetic:
+ convertCartesianToGeodetic(*this,target,AEarth,eccSquared);
+ target.system = Geodetic;
+ break;
+ case Geocentric:
+ convertCartesianToGeocentric(*this,target);
+ target.system = Geocentric;
+ break;
+ case Spherical:
+ convertCartesianToSpherical(*this,target);
+ target.system = Spherical;
+ break;
+ }
+ break;
+ case Spherical:
+ // --------------- Spherical to ... -----------------------
+ switch(sys) {
+ case Unknown: case Spherical: return *this;
+ case Geodetic:
+ theArray[0] = 90 - theArray[0]; // sph -> geocen
+ convertGeocentricToGeodetic(*this,target,AEarth,eccSquared);
+ target.system = Geodetic;
+ break;
+ case Geocentric:
+ target.theArray[0] = 90 - target.theArray[0]; // sph -> geocen
+ target.system = Geocentric;
+ break;
+ case Cartesian:
+ convertSphericalToCartesian(*this,target);
+ target.system = Cartesian;
+ break;
+ }
+ break;
+ } // end switch(system)
+
+ *this = target;
+ return *this;
+ }
+
+ // ----------- Part 7: member functions: get -----------------------------
+ //
+ // These routines retrieve coordinate values in all coordinate systems.
+ // Note that calling these will transform the Position to another coordinate
+ // system if that is required.
+ //
+ // Get X coordinate (meters)
+ double Position::X() const
+ throw()
+ {
+ if(system == Cartesian)
+ return theArray[0];
+ Position t(*this);
+ t.transformTo(Cartesian);
+ return t.theArray[0];
+ }
+
+ // Get Y coordinate (meters)
+ double Position::Y() const
+ throw()
+ {
+ if(system == Cartesian)
+ return theArray[1];
+ Position t(*this);
+ t.transformTo(Cartesian);
+ return t.theArray[1];
+ }
+
+ // Get Z coordinate (meters)
+ double Position::Z() const
+ throw()
+ {
+ if(system == Cartesian)
+ return theArray[2];
+ Position t(*this);
+ t.transformTo(Cartesian);
+ return t.theArray[2];
+ }
+
+ // Get geodetic latitude (degrees North).
+ double Position::geodeticLatitude() const
+ throw()
+ {
+ if(system == Geodetic)
+ return theArray[0];
+ Position t(*this);
+ t.transformTo(Geodetic);
+ return t.theArray[0];
+ }
+
+ // Get geocentric latitude (degrees North),
+ // equal to 90 degress - theta in regular spherical coordinates.
+ double Position::geocentricLatitude() const
+ throw()
+ {
+ if(system == Geocentric)
+ return theArray[0];
+ Position t(*this);
+ t.transformTo(Geocentric);
+ return t.theArray[0];
+ }
+
+ // Get spherical coordinate theta in degrees
+ double Position::theta() const
+ throw()
+ {
+ if(system == Spherical)
+ return theArray[0];
+ Position t(*this);
+ t.transformTo(Spherical);
+ return t.theArray[0];
+ }
+
+ // Get spherical coordinate phi in degrees
+ double Position::phi() const
+ throw()
+ {
+ if(system == Spherical)
+ return theArray[1];
+ Position t(*this);
+ t.transformTo(Spherical);
+ return t.theArray[1];
+ }
+
+ // Get longitude (degrees East),
+ // equal to phi in regular spherical coordinates.
+ double Position::longitude() const
+ throw()
+ {
+ if(system != Cartesian)
+ return theArray[1];
+ Position t(*this);
+ t.transformTo(Spherical);
+ return t.theArray[1];
+ }
+
+ // Get radius or distance from the center of Earth (meters),
+ // Same as radius in spherical coordinates.
+ double Position::radius() const
+ throw()
+ {
+ if(system == Spherical || system == Geocentric)
+ return theArray[2];
+ Position t(*this);
+ t.transformTo(Spherical);
+ return t.theArray[2];
+ }
+
+ // Get height above ellipsoid (meters) (Geodetic).
+ double Position::height() const
+ throw()
+ {
+ if(system == Geodetic)
+ return theArray[2];
+ Position t(*this);
+ t.transformTo(Geodetic);
+ return t.theArray[2];
+ }
+
+ // ----------- Part 8: member functions: set -----------------------------
+ //
+ // Set the geoid values for this Position given a geoid.
+ // @param geoid Pointer to the GeoidModel.
+ // @throw GeometryException if input is NULL.
+ void Position::setGeoidModel(const GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ if(!geoid)
+ {
+ GeometryException ge("Given GeoidModel pointer is NULL.");
+ GPSTK_THROW(ge);
+ }
+ AEarth = geoid->a();
+ eccSquared = geoid->eccSquared();
+ }
+
+ // Set the Position given geodetic coordinates, system is set to Geodetic.
+ // @param lat geodetic latitude in degrees North
+ // @param lon geodetic longitude in degrees East
+ // @param ht height above the ellipsoid in meters
+ // @return a reference to this object.
+ // @throw GeometryException on invalid input
+ Position& Position::setGeodetic(const double lat,
+ const double lon,
+ const double ht,
+ const GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ if(lat > 90 || lat < -90)
+ {
+ GeometryException ge("Invalid latitude in setGeodetic: "
+ + StringUtils::asString(lat));
+ GPSTK_THROW(ge);
+ }
+ theArray[0] = lat;
+
+ theArray[1] = lon;
+ if(theArray[1] < 0)
+ theArray[1] += 360*(1+(unsigned long)(theArray[1]/360));
+ else if(theArray[1] >= 360)
+ theArray[1] -= 360*(unsigned long)(theArray[1]/360);
+
+ theArray[2] = ht;
+
+ if(geoid) {
+ AEarth = geoid->a();
+ eccSquared = geoid->eccSquared();
+ }
+ system = Geodetic;
+
+ return *this;
+ }
+
+ // Set the Position given geocentric coordinates, system is set to Geocentric
+ // @param lat geocentric latitude in degrees North
+ // @param lon geocentric longitude in degrees East
+ // @param rad radius from the Earth's center in meters
+ // @return a reference to this object.
+ // @throw GeometryException on invalid input
+ Position& Position::setGeocentric(const double lat,
+ const double lon,
+ const double rad)
+ throw(GeometryException)
+ {
+ if(lat > 90 || lat < -90)
+ {
+ GeometryException ge("Invalid latitude in setGeocentric: "
+ + StringUtils::asString(lat));
+ GPSTK_THROW(ge);
+ }
+ if(rad < 0)
+ {
+ GeometryException ge("Invalid radius in setGeocentric: "
+ + StringUtils::asString(rad));
+ GPSTK_THROW(ge);
+ }
+ theArray[0] = lat;
+ theArray[1] = lon;
+ theArray[2] = rad;
+
+ if(theArray[1] < 0)
+ theArray[1] += 360*(1+(unsigned long)(theArray[1]/360));
+ else if(theArray[1] >= 360)
+ theArray[1] -= 360*(unsigned long)(theArray[1]/360);
+ system = Geocentric;
+
+ return *this;
+ }
+
+ // Set the Position given spherical coordinates, system is set to Spherical
+ // @param theta angle from the Z-axis (degrees)
+ // @param phi angle from the X-axis in the XY plane (degrees)
+ // @param rad radius from the center in meters
+ // @return a reference to this object.
+ // @throw GeometryException on invalid input
+ Position& Position::setSpherical(const double theta,
+ const double phi,
+ const double rad)
+ throw(GeometryException)
+ {
+ if(theta < 0 || theta > 180)
+ {
+ GeometryException ge("Invalid theta in setSpherical: "
+ + StringUtils::asString(theta));
+ GPSTK_THROW(ge);
+ }
+ if(rad < 0)
+ {
+ GeometryException ge("Invalid radius in setSpherical: "
+ + StringUtils::asString(rad));
+ GPSTK_THROW(ge);
+ }
+
+ theArray[0] = theta;
+ theArray[1] = phi;
+ theArray[2] = rad;
+
+ if(theArray[1] < 0)
+ theArray[1] += 360*(1+(unsigned long)(theArray[1]/360));
+ else if(theArray[1] >= 360)
+ theArray[1] -= 360*(unsigned long)(theArray[1]/360);
+ system = Spherical;
+
+ return *this;
+ }
+
+ // Set the Position given ECEF coordinates, system is set to Cartesian.
+ // @param X ECEF X coordinate in meters.
+ // @param Y ECEF Y coordinate in meters.
+ // @param Z ECEF Z coordinate in meters.
+ // @return a reference to this object.
+ Position& Position::setECEF(const double X,
+ const double Y,
+ const double Z)
+ throw()
+ {
+ theArray[0] = X;
+ theArray[1] = Y;
+ theArray[2] = Z;
+ system = Cartesian;
+ return *this;
+ }
+
+ // ----------- Part 9: member functions: setToString, printf -------------
+ //
+ // setToString, similar to scanf, this function takes a string and a
+ // format describing string in order to define Position
+ // values. The parameters it can take are listed below and
+ // described above with the printf() function.
+ //
+ // The specification must be sufficient to define a Position.
+ // The following table lists combinations that give valid
+ // Positions. Anything more or other combinations will give
+ // unknown (read as: "bad") results so don't try it. Anything
+ // less will throw an exception.
+ //
+ // @code
+ // %X %Y %Z (cartesian or ECEF)
+ // %x %y %z (cartesian or ECEF)
+ // %a %l %r (geocentric)
+ // %A %L %h (geodetic)
+ // %t %p %r (spherical)
+ // @endcode
+ //
+ // So
+ // @code
+ // pos.setToString("123.4342,9328.1982,-128987.399", "%X,%Y,%Z");
+ // @endcode
+ //
+ // works but
+ //
+ // @code
+ // pos.setToString("123.4342,9328.1982", "%X,%Y");
+ // @endcode
+ // doesn't work (incomplete specification because it doesn't specify
+ // a Position).
+ //
+ // Whitespace is unimportant here, the function will handle it.
+ // The caller must ensure that that the extra characters in
+ // the format string (ie '.' ',') are in the same relative
+ // location as they are in the actual string, see the example above.
+ //
+ // @param str string from which to get the Position coordinates
+ // @param fmt format to use to parse \c str.
+ // @throw GeometryException if \c fmt is an incomplete or invalid specification
+ // @throw FormatException if unable to scan \c str.
+ // @throw StringException if an error occurs manipulating the
+ // \c str or \c fmt strings.
+ // @return a reference to this object.
+ Position& Position::setToString(const std::string& str,
+ const std::string& fmt)
+ throw(GeometryException,
+ DayTime::FormatException,
+ StringUtils::StringException)
+ {
+ try {
+ // make an object to return (so we don't fiddle with *this
+ // until it's necessary)
+ Position toReturn;
+
+ // flags indicated these defined
+ bool hX=false, hY=false, hZ=false;
+ bool hglat=false, hlon=false, hht=false;
+ bool hclat=false, hrad=false;
+ bool htheta=false, hphi=false;
+ // store input values
+ double x,y,z,glat,lon,ht,clat,rad,theta,phi;
+ // copy format and input string to parse
+ string f = fmt;
+ string s = str;
+
+ // parse strings... As we process each part, it's removed from both
+ // strings so when we reach 0, we're done
+ while ( (s.size() > 0) && (f.size() > 0) )
+ {
+ // remove everything in f and s up to the first % in f
+ // (these parts of the strings must be identical or this will break
+ // after it tries to remove it!)
+ while ( (s.length() != 0) && (f.length() != 0) && (f[0] != '%') )
+ {
+ // remove that character now and other whitespace
+ s.erase(0,1);
+ f.erase(0,1);
+ stripLeading(s);
+ stripLeading(f);
+ }
+
+ // check just in case we hit the end of either string...
+ if ( (s.length() == 0) || (f.length() == 0) )
+ break;
+
+ // lose the '%' in f...
+ f.erase(0,1);
+
+ // if the format string is like %03f, get '3' as the field
+ // length.
+ string::size_type fieldLength = string::npos;
+
+ if (!isalpha(f[0]))
+ {
+ fieldLength = asInt(f);
+
+ // remove everything else up to the next character
+ // (in "%03f", that would be 'f')
+ while ((!f.empty()) && (!isalpha(f[0])))
+ f.erase(0,1);
+ if (f.empty())
+ break;
+ }
+
+ // finally, get the character that should end this field, if any
+ char delimiter = 0;
+ if (f.size() > 1)
+ {
+ if (f[1] != '%')
+ {
+ delimiter = f[1];
+
+ if (fieldLength == string::npos)
+ fieldLength = s.find(delimiter,0);
+ }
+ // if the there is no delimiter character and the next field
+ // is another part of the time to parse, assume the length
+ // of this field is 1
+ else if (fieldLength == string::npos)
+ {
+ fieldLength = 1;
+ }
+ }
+
+ // figure out the next string to be removed. if there is a field
+ // length, use that first
+ string toBeRemoved = s.substr(0, fieldLength);
+
+ // based on char at f[0], we know what to do...
+ switch (f[0])
+ {
+ //%x X() (meters)
+ //%y Y() (meters)
+ //%z Z() (meters)
+ //%X X()/1000 (kilometers)
+ //%Y Y()/1000 (kilometers)
+ //%Z Z()/1000 (kilometers)
+ case 'X':
+ x = asDouble(toBeRemoved) * 1000;
+ hX = true;
+ break;
+ case 'x':
+ x = asDouble(toBeRemoved);
+ hX = true;
+ break;
+ case 'Y':
+ y = asDouble(toBeRemoved) * 1000;
+ hY = true;
+ break;
+ case 'y':
+ y = asDouble(toBeRemoved);
+ hY = true;
+ break;
+ case 'Z':
+ z = asDouble(toBeRemoved) * 1000;
+ hZ = true;
+ break;
+ case 'z':
+ z = asDouble(toBeRemoved);
+ hZ = true;
+ break;
+ //%A geodeticLatitude() (degrees North)
+ //%a geocentricLatitude() (degrees North)
+ case 'A':
+ glat = asDouble(toBeRemoved);
+ if(glat > 90. || glat < -90.) {
+ DayTime::FormatException f(
+ "Invalid geodetic latitude for setTostring: "
+ + toBeRemoved);
+ GPSTK_THROW(f);
+ }
+ hglat = true;
+ break;
+ case 'a':
+ clat = asDouble(toBeRemoved);
+ if(clat > 90. || clat < -90.) {
+ DayTime::FormatException f(
+ "Invalid geocentric latitude for setTostring: "
+ + toBeRemoved);
+ GPSTK_THROW(f);
+ }
+ hclat = true;
+ break;
+ //%L longitude() (degrees East)
+ //%l longitude() (degrees East)
+ //%w longitude() (degrees West)
+ //%W longitude() (degrees West)
+ case 'L':
+ case 'l':
+ lon = asDouble(toBeRemoved);
+ if(lon < 0)
+ lon += 360*(1+(unsigned long)(lon/360));
+ else if(lon >= 360)
+ lon -= 360*(unsigned long)(lon/360);
+ hlon = true;
+ break;
+ case 'w':
+ case 'W':
+ lon = 360.0 - asDouble(toBeRemoved);
+ if(lon < 0)
+ lon += 360*(1+(unsigned long)(lon/360));
+ else if(lon >= 360)
+ lon -= 360*(unsigned long)(lon/360);
+ hlon = true;
+ break;
+ //%t theta() (degrees)
+ //%T theta() (radians)
+ case 't':
+ theta = asDouble(toBeRemoved);
+ if(theta > 180. || theta < 0.) {
+ DayTime::FormatException f("Invalid theta for setTostring: "
+ + toBeRemoved);
+ GPSTK_THROW(f);
+ }
+ htheta = true;
+ break;
+ case 'T':
+ theta = asDouble(toBeRemoved) * RAD_TO_DEG;
+ if(theta > 90. || theta < -90.) {
+ DayTime::FormatException f("Invalid theta for setTostring: "
+ + toBeRemoved);
+ GPSTK_THROW(f);
+ }
+ htheta = true;
+ break;
+ //%p phi() (degrees)
+ //%P phi() (radians)
+ case 'p':
+ phi = asDouble(toBeRemoved);
+ if(phi < 0)
+ phi += 360*(1+(unsigned long)(phi/360));
+ else if(phi >= 360)
+ phi -= 360*(unsigned long)(phi/360);
+ hphi = true;
+ break;
+ case 'P':
+ phi = asDouble(toBeRemoved) * RAD_TO_DEG;
+ if(phi < 0)
+ phi += 360*(1+(unsigned long)(phi/360));
+ else if(phi >= 360)
+ phi -= 360*(unsigned long)(phi/360);
+ hphi = true;
+ break;
+ //%r radius() meters
+ //%R radius()/1000 kilometers
+ //%h height() meters
+ //%H height()/1000 kilometers
+ case 'r':
+ rad = asDouble(toBeRemoved);
+ if(rad < 0.0) {
+ DayTime::FormatException f("Invalid radius for setTostring: "
+ + toBeRemoved);
+ GPSTK_THROW(f);
+ }
+ hrad = true;
+ break;
+ case 'R':
+ rad = asDouble(toBeRemoved) * 1000;
+ if(rad < 0.0) {
+ DayTime::FormatException f("Invalid radius for setTostring: "
+ + toBeRemoved);
+ GPSTK_THROW(f);
+ }
+ hrad = true;
+ break;
+ case 'h':
+ ht = asDouble(toBeRemoved);
+ hht = true;
+ break;
+ case 'H':
+ ht = asDouble(toBeRemoved) * 1000;
+ hht = true;
+ break;
+ default: // do nothing
+ break;
+ }
+ // remove the part of s that we processed
+ stripLeading(s,toBeRemoved,1);
+
+ // remove the character we processed from f
+ f.erase(0,1);
+
+ // check for whitespace again...
+ stripLeading(f);
+ stripLeading(s);
+
+ }
+
+ if ( s.length() != 0 )
+ {
+ // throw an error - something didn't get processed in the strings
+ DayTime::FormatException fe(
+ "Processing error - parts of strings left unread - " + s);
+ GPSTK_THROW(fe);
+ }
+
+ if (f.length() != 0)
+ {
+ // throw an error - something didn't get processed in the strings
+ DayTime::FormatException fe(
+ "Processing error - parts of strings left unread - " + f);
+ GPSTK_THROW(fe);
+ }
+
+ // throw if the specification is incomplete
+ if ( !(hX && hY && hZ) && !(hglat && hlon && hht) &&
+ !(hclat && hlon && hrad) && !(htheta && hphi && hrad)) {
+ DayTime::FormatException fe("Incomplete specification for setToString");
+ GPSTK_THROW(fe);
+ }
+
+ // define the Position toReturn
+ if(hX && hY && hZ)
+ toReturn.setECEF(x,y,z);
+ else if(hglat && hlon && hht)
+ toReturn.setGeodetic(glat,lon,ht);
+ else if(hclat && hlon && hrad)
+ toReturn.setGeocentric(clat,lon,rad);
+ else if(htheta && hphi && hrad)
+ toReturn.setSpherical(theta,phi,rad);
+
+ *this = toReturn;
+ return *this;
+ }
+ catch(gpstk::Exception& exc)
+ {
+ GeometryException ge(exc);
+ ge.addText("Failed to convert string to Position");
+ GPSTK_THROW(ge);
+ }
+ catch(std::exception& exc)
+ {
+ GeometryException ge(exc.what());
+ ge.addText("Failed to convert string to Position");
+ GPSTK_THROW(ge);
+ }
+ }
+
+ // Format this Position into a string.
+ //
+ // Generate and return a string containing formatted
+ // Position coordinates, formatted by the specification \c fmt.
+ //
+ // \li \%x X() (meters)
+ // \li \%y Y() (meters)
+ // \li \%z Z() (meters)
+ // \li \%X X()/1000 (kilometers)
+ // \li \%Y Y()/1000 (kilometers)
+ // \li \%Z Z()/1000 (kilometers)
+ // \li \%A geodeticLatitude() (degrees North)
+ // \li \%a geocentricLatitude() (degrees North)
+ // \li \%L longitude() (degrees East)
+ // \li \%l longitude() (degrees East)
+ // \li \%w longitude() (degrees West)
+ // \li \%W longitude() (degrees West)
+ // \li \%t theta() (degrees)
+ // \li \%T theta() (radians)
+ // \li \%p phi() (degrees)
+ // \li \%P phi() (radians)
+ // \li \%r radius() meters
+ // \li \%R radius()/1000 kilometers
+ // \li \%h height() meters
+ // \li \%H height()/1000 kilometers
+ //
+ // @param fmt format to use for this time.
+ // @return a string containing this Position in the
+ // representation specified by \c fmt.
+ std::string Position::printf(const char *fmt) const
+ throw(StringUtils::StringException)
+ {
+ string rv = fmt;
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?x"),
+ string("xf"), X());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?y"),
+ string("yf"), Y());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?z"),
+ string("zf"), Z());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?X"),
+ string("Xf"), X()/1000);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?Y"),
+ string("Yf"), Y()/1000);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?Z"),
+ string("Zf"), Z()/1000);
+
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?A"),
+ string("Af"), geodeticLatitude());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?a"),
+ string("af"), geocentricLatitude());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?L"),
+ string("Lf"), longitude());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?l"),
+ string("lf"), longitude());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?w"),
+ string("wf"), 360-longitude());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?W"),
+ string("Wf"), 360-longitude());
+
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?t"),
+ string("tf"), theta());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?T"),
+ string("Tf"), theta()*DEG_TO_RAD);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?p"),
+ string("pf"), phi());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?P"),
+ string("Pf"), phi()*DEG_TO_RAD);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?r"),
+ string("rf"), radius());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?R"),
+ string("Rf"), radius()/1000);
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?h"),
+ string("hf"), height());
+ rv = formattedPrint(rv, string("%[ 0-]?[[:digit:]]*(\\.[[:digit:]]+)?H"),
+ string("Hf"), height()/1000);
+ return rv;
+ }
+
+ // Returns the string that operator<<() would print.
+ string Position::asString() const
+ throw(StringUtils::StringException)
+ {
+ ostringstream o;
+ o << *this;
+ return o.str();
+ }
+
+ // ----------- Part 10: functions: fundamental conversions ---------------
+ //
+ // Fundamental conversion from spherical to cartesian coordinates.
+ // @param trp (input): theta, phi, radius
+ // @param xyz (output): X,Y,Z in units of radius
+ // Algorithm references: standard geometry.
+ void Position::convertSphericalToCartesian(const Triple& tpr,
+ Triple& xyz)
+ throw()
+ {
+ double st=sin(tpr[0]*DEG_TO_RAD);
+ xyz[0] = tpr[2]*st*cos(tpr[1]*DEG_TO_RAD);
+ xyz[1] = tpr[2]*st*sin(tpr[1]*DEG_TO_RAD);
+ xyz[2] = tpr[2]*cos(tpr[0]*DEG_TO_RAD);
+ }
+
+ // Fundamental routine to convert cartesian to spherical coordinates.
+ // @param xyz (input): X,Y,Z
+ // @param trp (output): theta, phi (deg), radius in units of input
+ // Algorithm references: standard geometry.
+ void Position::convertCartesianToSpherical(const Triple& xyz,
+ Triple& tpr)
+ throw()
+ {
+ tpr[2] = RSS(xyz[0],xyz[1],xyz[2]);
+ if(tpr[2] <= Position::POSITION_TOLERANCE/5)
+ {
+ // zero-length Cartesian vector
+ tpr[0] = 90;
+ tpr[1] = 0;
+ return;
+ }
+ tpr[0] = acos(xyz[2]/tpr[2]);
+ tpr[0] *= RAD_TO_DEG;
+ if(RSS(xyz[0],xyz[1]) < Position::POSITION_TOLERANCE/5) { // pole
+ tpr[1] = 0;
+ return;
+ }
+ tpr[1] = atan2(xyz[1],xyz[0]);
+ tpr[1] *= RAD_TO_DEG;
+ if(tpr[1] < 0) tpr[1] += 360;
+ }
+
+ // Fundamental routine to convert cartesian (ECEF) to geodetic coordinates,
+ // (Geoid specified by semi-major axis and eccentricity squared).
+ // @param xyz (input): X,Y,Z in meters
+ // @param llh (output): geodetic lat(deg N), lon(deg E),
+ // height above ellipsoid (meters)
+ // @param A (input) Earth semi-major axis
+ // @param eccSq (input) square of Earth eccentricity
+ // Algorithm references:
+ void Position::convertCartesianToGeodetic(const Triple& xyz,
+ Triple& llh,
+ const double A,
+ const double eccSq)
+ throw()
+ {
+ double p,slat,N,htold,latold;
+ p = SQRT(xyz[0]*xyz[0]+xyz[1]*xyz[1]);
+ if(p < Position::POSITION_TOLERANCE/5) { // pole or origin
+ llh[0] = llh[1] = 0;
+ llh[2] = fabs(xyz[2]) - A;
+ return;
+ }
+ llh[0] = atan2(xyz[2], p*(1.0-eccSq));
+ llh[2] = 0;
+ for(int i=0; i<5; i++) {
+ slat = sin(llh[0]);
+ N = A / SQRT(1.0 - eccSq*slat*slat);
+ htold = llh[2];
+ llh[2] = p/cos(llh[0]) - N;
+ latold = llh[0];
+ llh[0] = atan2(xyz[2], p*(1.0-eccSq*(N/(N+llh[2]))));
+ if(fabs(llh[0]-latold) < 1.0e-9 && fabs(llh[2]-htold) < 1.0e-9 * A) break;
+ }
+ llh[1] = atan2(xyz[1],xyz[0]);
+ if(llh[1] < 0.0) llh[1] += TWO_PI;
+ llh[0] *= RAD_TO_DEG;
+ llh[1] *= RAD_TO_DEG;
+ }
+
+ // Fundamental routine to convert geodetic to cartesian (ECEF) coordinates,
+ // (Geoid specified by semi-major axis and eccentricity squared).
+ // @param llh (input): geodetic lat(deg N), lon(deg E),
+ // height above ellipsoid (meters)
+ // @param xyz (output): X,Y,Z in meters
+ // @param A (input) Earth semi-major axis
+ // @param eccSq (input) square of Earth eccentricity
+ // Algorithm references:
+ void Position::convertGeodeticToCartesian(const Triple& llh,
+ Triple& xyz,
+ const double A,
+ const double eccSq)
+ throw()
+ {
+ double slat = sin(llh[0]*DEG_TO_RAD);
+ double clat = cos(llh[0]*DEG_TO_RAD);
+ double N = A/SQRT(1.0-eccSq*slat*slat);
+ xyz[0] = (N+llh[2])*clat*cos(llh[1]*DEG_TO_RAD);
+ xyz[1] = (N+llh[2])*clat*sin(llh[1]*DEG_TO_RAD);
+ xyz[2] = (N*(1.0-eccSq)+llh[2])*slat;
+ }
+
+ // Fundamental routine to convert cartesian (ECEF) to geocentric coordinates.
+ // @param xyz (input): X,Y,Z in meters
+ // @param llr (output):
+ // geocentric lat(deg N),lon(deg E),radius (units of input)
+ void Position::convertCartesianToGeocentric(const Triple& xyz,
+ Triple& llr)
+ throw()
+ {
+ convertCartesianToSpherical(xyz, llr);
+ llr[0] = 90 - llr[0]; // convert theta to latitude
+ }
+
+ // Fundamental routine to convert geocentric to cartesian (ECEF) coordinates.
+ // @param llr (input): geocentric lat(deg N),lon(deg E),radius
+ // @param xyz (output): X,Y,Z (units of radius)
+ void Position::convertGeocentricToCartesian(const Triple& llr,
+ Triple& xyz)
+ throw()
+ {
+ Triple llh(llr);
+ llh[0] = 90 - llh[0]; // convert latitude to theta
+ convertSphericalToCartesian(llh, xyz);
+ }
+
+ // Fundamental routine to convert geocentric to geodetic coordinates.
+ // @param llr (input): geocentric Triple: lat(deg N),lon(deg E),radius (meters)
+ // @param llh (output): geodetic latitude (deg N),
+ // longitude (deg E), and height above ellipsoid (meters)
+ // @param A (input) Earth semi-major axis
+ // @param eccSq (input) square of Earth eccentricity
+ void Position::convertGeocentricToGeodetic(const Triple& llr,
+ Triple& llh,
+ const double A,
+ const double eccSq)
+ throw()
+ {
+ double cl,p,sl,slat,N,htold,latold;
+ cl = sin((90-llr[0])*DEG_TO_RAD);
+ sl = cos((90-llr[0])*DEG_TO_RAD);
+ if(llr[2] <= Position::POSITION_TOLERANCE/5) {
+ // radius is below tolerance, hence assign zero-length
+ // arbitrarily set latitude = longitude = 0
+ llh[0] = llh[1] = 0;
+ llh[2] = -A;
+ return;
+ }
+ else if(cl < 1.e-10) {
+ // near pole ... note that 1mm/radius(Earth) = 1.5e-10
+ if(llr[0] < 0) llh[0] = -90;
+ else llh[0] = 90;
+ llh[1] = 0;
+ llh[2] = llr[2] - A*SQRT(1-eccSq);
+ return;
+ }
+ llh[0] = atan2(sl, cl*(1.0-eccSq));
+ p = cl*llr[2];
+ llh[2] = 0;
+ for(int i=0; i<5; i++) {
+ slat = sin(llh[0]);
+ N = A / SQRT(1.0 - eccSq*slat*slat);
+ htold = llh[2];
+ llh[2] = p/cos(llh[0]) - N;
+ latold = llh[0];
+ llh[0] = atan2(sl, cl*(1.0-eccSq*(N/(N+llh[2]))));
+ if(fabs(llh[0]-latold) < 1.0e-9 && fabs(llh[2]-htold) < 1.0e-9 * A) break;
+ }
+ llh[0] *= RAD_TO_DEG;
+ }
+
+ // Fundamental routine to convert geodetic to geocentric coordinates.
+ // @param geodeticllh (input): geodetic latitude (deg N),
+ // longitude (deg E), and height above ellipsoid (meters)
+ // @param llr (output): geocentric lat (deg N),lon (deg E),radius (meters)
+ // @param A (input) Earth semi-major axis
+ // @param eccSq (input) square of Earth eccentricity
+ void Position::convertGeodeticToGeocentric(const Triple& llh,
+ Triple& llr,
+ const double A,
+ const double eccSq)
+ throw()
+ {
+ double slat = sin(llh[0]*DEG_TO_RAD);
+ double N = A/SQRT(1.0-eccSq*slat*slat);
+ // radius
+ llr[2] = SQRT((N+llh[2])*(N+llh[2]) + N*eccSq*(N*eccSq-2*(N+llh[2]))*slat*slat);
+ if(llr[2] <= Position::POSITION_TOLERANCE/5)
+ {
+ // radius is below tolerance, hence assign zero-length
+ // arbitrarily set latitude = longitude = 0
+ llr[0] = llr[1] = llr[2] = 0;
+ return;
+ }
+ if(1-fabs(slat) < 1.e-10) { // at the pole
+ if(slat < 0) llr[0] = -90;
+ else llr[0] = 90;
+ return;
+ }
+ // theta
+ llr[0] = acos((N*(1-eccSq)+llh[2])*slat/llr[2]);
+ llr[0] *= RAD_TO_DEG;
+ llr[0] = 90 - llr[0];
+ }
+
+ // ----------- Part 11: operator<< and other useful functions -------------
+ //
+ // Stream output for Position objects.
+ // @param s stream to append formatted Position to.
+ // @param t Position to append to stream \c s.
+ // @return reference to \c s.
+ ostream& operator<<(ostream& s, const Position& p)
+ {
+ if(p.system == Position::Cartesian)
+ s << p.printf("%.4x m %.4y m %.4z m");
+ else if(p.system == Position::Geodetic)
+ s << p.printf("%.8A degN %.8L degE %.4h m");
+ else if(p.system == Position::Geocentric)
+ s << p.printf("%.8a degN %.8L degE %.4r m");
+ else if(p.system == Position::Spherical)
+ s << p.printf("%.8t deg %.8p deg %.4r m");
+ else
+ s << " Unknown system! : " << p[0] << " " << p[1] << " " << p[2];
+
+ return s;
+ }
+
+ // Compute the range in meters between this Position and
+ // the Position passed as input.
+ // @param right Position to which to find the range
+ // @return the range (in meters)
+ // @throw GeometryException if geoid values differ
+ double range(const Position& A,
+ const Position& B)
+ throw(GeometryException)
+ {
+ if(A.AEarth != B.AEarth || A.eccSquared != B.eccSquared)
+ {
+ GeometryException ge("Unequal geoids");
+ GPSTK_THROW(ge);
+ }
+
+ Position L(A),R(B);
+ L.transformTo(Position::Cartesian);
+ R.transformTo(Position::Cartesian);
+ double dif = RSS(L.X()-R.X(),L.Y()-R.Y(),L.Z()-R.Z());
+ return dif;
+ }
+
+ // Compute the radius of the ellipsoidal Earth, given the geodetic latitude.
+ // @param geolat geodetic latitude in degrees
+ // @return the Earth radius (in meters)
+ double Position::radiusEarth(const double geolat,
+ const double A,
+ const double eccSq)
+ throw()
+ {
+ double slat=sin(DEG_TO_RAD*geolat);
+ double e=(1.0-eccSq);
+ double f=(1.0+(e*e-1.0)*slat*slat)/(1.0-eccSq*slat*slat);
+ return (A * SQRT(f));
+ }
+
+ // A member function that computes the elevation of the input
+ // (Target) position as seen from this Position.
+ // @param Target the Position which is observed to have the
+ // computed elevation, as seen from this Position.
+ // @return the elevation in degrees
+ double Position::elevation(const Position& Target) const
+ throw(GeometryException)
+ {
+ Position R(*this),S(Target);
+ R.transformTo(Cartesian);
+ S.transformTo(Cartesian);
+ // use Triple:: functions in cartesian coordinates (only)
+ double elevation;
+ try {
+ elevation = R.elvAngle(S);
+ }
+ catch(GeometryException& ge)
+ {
+ GPSTK_RETHROW(ge);
+ }
+ return elevation;
+ }
+
+ // A member function that computes the elevation of the input
+ // (Target) position as seen from this Position, using a Geodetic
+ // (i.e. ellipsoidal) system.
+ // @param Target the Position which is observed to have the
+ // computed elevation, as seen from this Position.
+ // @return the elevation in degrees
+ double Position::elevationGeodetic(const Position& Target) const
+ throw(GeometryException)
+ {
+ Position R(*this),S(Target);
+ double latGeodetic = R.getGeodeticLatitude()*DEG_TO_RAD;
+ double longGeodetic = R.getLongitude()*DEG_TO_RAD;
+ double localUp;
+ double cosUp;
+ R.transformTo(Cartesian);
+ S.transformTo(Cartesian);
+ Triple z;
+ // Let's get the slant vector
+ z = S.theArray - R.theArray;
+
+ if (z.mag()<=1e-4) // if the positions are within .1 millimeter
+ {
+ GeometryException ge("Positions are within .1 millimeter");
+ GPSTK_THROW(ge);
+ }
+
+ // Compute k vector in local North-East-Up (NEU) system
+ Triple kVector(cos(latGeodetic)*cos(longGeodetic), cos(latGeodetic)*sin(longGeodetic), sin(latGeodetic));
+ // Take advantage of dot method to get Up coordinate in local NEU system
+ localUp = z.dot(kVector);
+ // Let's get cos(z), being z the angle with respect to local vertical (Up);
+ cosUp = localUp/z.mag();
+
+ return 90.0 - ((::acos(cosUp))*RAD_TO_DEG);
+ }
+
+ // A member function that computes the azimuth of the input
+ // (Target) position as seen from this Position.
+ // @param Target the Position which is observed to have the
+ // computed azimuth, as seen from this Position.
+ // @return the azimuth in degrees
+ double Position::azimuth(const Position& Target) const
+ throw(GeometryException)
+ {
+ Position R(*this),S(Target);
+ R.transformTo(Cartesian);
+ S.transformTo(Cartesian);
+ // use Triple:: functions in cartesian coordinates (only)
+ double az;
+ try
+ {
+ az = R.azAngle(S);
+
+ }
+ catch(GeometryException& ge)
+ {
+ GPSTK_RETHROW(ge);
+ }
+
+ return az;
+ }
+
+ // A member function that computes the azimuth of the input
+ // (Target) position as seen from this Position, using a Geodetic
+ // (i.e. ellipsoidal) system.
+ // @param Target the Position which is observed to have the
+ // computed azimuth, as seen from this Position.
+ // @return the azimuth in degrees
+ double Position::azimuthGeodetic(const Position& Target) const
+ throw(GeometryException)
+ {
+ Position R(*this),S(Target);
+ double latGeodetic = R.getGeodeticLatitude()*DEG_TO_RAD;
+ double longGeodetic = R.getLongitude()*DEG_TO_RAD;
+ double localN, localE;
+ R.transformTo(Cartesian);
+ S.transformTo(Cartesian);
+ Triple z;
+ // Let's get the slant vector
+ z = S.theArray - R.theArray;
+
+ if (z.mag()<=1e-4) // if the positions are within .1 millimeter
+ {
+ GeometryException ge("Positions are within .1 millimeter");
+ GPSTK_THROW(ge);
+ }
+
+ // Compute i vector in local North-East-Up (NEU) system
+ Triple iVector(-sin(latGeodetic)*cos(longGeodetic), -sin(latGeodetic)*sin(longGeodetic), cos(latGeodetic));
+ // Compute j vector in local North-East-Up (NEU) system
+ Triple jVector(-sin(longGeodetic), cos(longGeodetic), 0);
+
+ // Now, let's use dot product to get localN and localE unitary vectors
+ localN = (z.dot(iVector))/z.mag();
+ localE = (z.dot(jVector))/z.mag();
+
+ // Let's test if computing azimuth has any sense
+ double test = fabs(localN) + fabs(localE);
+
+ // Warning: If elevation is very close to 90 degrees, we will return azimuth = 0.0
+ if (test < 1.0e-16) return 0.0;
+
+ double alpha = ((::atan2(localE, localN)) * RAD_TO_DEG);
+ if (alpha < 0.0)
+ {
+ return alpha + 360.0;
+ }
+ else
+ {
+ return alpha;
+ }
+ }
+
+ // A member function that computes the point at which a signal, which
+ // is received at *this Position and there is observed at the input
+ // azimuth and elevation, crosses a model ionosphere that is taken to
+ // be a uniform thin shell at the input height. This algorithm is done
+ // in geocentric coordinates.
+ // A member function that computes the point at which a signal, which
+ // is received at *this Position and there is observed at the input
+ // azimuth and elevation, crosses a model ionosphere that is taken to
+ // be a uniform thin shell at the input height. This algorithm is done
+ // in geocentric coordinates.
+ // @param elev elevation angle of the signal at reception, in degrees
+ // @param azim azimuth angle of the signal at reception, in degrees
+ // @param ionoht height of the ionosphere, in meters
+ // @return Position IPP the position of the ionospheric pierce point,
+ // in the same coordinate system as *this; *this is not modified.
+ Position Position::getIonosphericPiercePoint(const double elev,
+ const double azim,
+ const double ionoht) const
+ throw()
+ {
+ Position Rx(*this);
+
+ // convert to Geocentric
+ Rx.transformTo(Geocentric);
+
+ // compute the geographic pierce point
+ Position IPP(Rx); // copy system and geoid
+ double el = elev * DEG_TO_RAD;
+ // p is the angle subtended at Earth center by Rx and the IPP
+ double p = PI/2.0 - el - asin(AEarth*cos(el)/(AEarth+ionoht));
+ double lat = Rx.theArray[0] * DEG_TO_RAD;
+ double az = azim * DEG_TO_RAD;
+ IPP.theArray[0] = asin(sin(lat)*cos(p) + cos(lat)*sin(p)*cos(az));
+ IPP.theArray[1] = Rx.theArray[1]*DEG_TO_RAD
+ + asin(sin(p)*sin(az)/cos(IPP.theArray[0]));
+
+ IPP.theArray[0] *= RAD_TO_DEG;
+ IPP.theArray[1] *= RAD_TO_DEG;
+ IPP.theArray[2] = AEarth + ionoht;
+
+ // transform back
+ IPP.transformTo(system);
+
+ return IPP;
+ }
+
+ // ----------- Part 12: private functions and member data -----------------
+ //
+ // Initialization function, used by the constructors.
+ // @param a coordinate [ X(m), or latitude (degrees N) ]
+ // @param b coordinate [ Y(m), or longitude (degrees E) ]
+ // @param c coordinate [ Z, height above ellipsoid or radius, in m ]
+ // @param s CoordinateSystem, defaults to Cartesian
+ // @param geiod pointer to a GeoidModel, default NULL (WGS84)
+ // @throw GeometryException on invalid input.
+ void Position::initialize(const double a,
+ const double b,
+ const double c,
+ Position::CoordinateSystem s,
+ GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ double bb(b);
+ if(s == Geodetic || s==Geocentric)
+ {
+ if(a > 90 || a < -90)
+ {
+ GeometryException ge("Invalid latitude in constructor: "
+ + StringUtils::asString(a));
+ GPSTK_THROW(ge);
+ }
+ if(bb < 0)
+ bb += 360*(1+(unsigned long)(bb/360));
+ else if(bb >= 360)
+ bb -= 360*(unsigned long)(bb/360);
+ }
+ if(s==Geocentric || s==Spherical)
+ {
+ if(c < 0)
+ {
+ GeometryException ge("Invalid radius in constructor: "
+ + StringUtils::asString(c));
+ GPSTK_THROW(ge);
+ }
+ }
+ if(s==Spherical)
+ {
+ if(a < 0 || a > 180)
+ {
+ GeometryException ge("Invalid theta in constructor: "
+ + StringUtils::asString(a));
+ GPSTK_THROW(ge);
+ }
+ if(bb < 0)
+ bb += 360*(1+(unsigned long)(bb/360));
+ else if(bb >= 360)
+ bb -= 360*(unsigned long)(bb/360);
+ }
+
+ theArray[0] = a;
+ theArray[1] = bb;
+ theArray[2] = c;
+
+ if(geoid) {
+ AEarth = geoid->a();
+ eccSquared = geoid->eccSquared();
+ }
+ else {
+ WGS84Geoid WGS84;
+ AEarth = WGS84.a();
+ eccSquared = WGS84.eccSquared();
+ }
+ system = s;
+ tolerance = POSITION_TOLERANCE;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/Position.hpp b/dev/src/Position.hpp
new file mode 100644
index 0000000..acb2711
--- /dev/null
+++ b/dev/src/Position.hpp
@@ -0,0 +1,922 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file Position.hpp
+ * class gpstk::Position encapsulates 3-D positions, including geographic positions,
+ * expressed as geodetic (with respect to an ellipsoidal geoid), geocentric or
+ * Earth-centered, Earth-fixed (cartesian) coordinates, as well as ordinary
+ * positions defined by spherical or cartesian coordinates. Position inherits
+ * from class Triple.
+ */
+
+#ifndef GPSTK_POSITION_HPP
+#define GPSTK_POSITION_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "Exception.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp" // for FormatException
+#include "Triple.hpp"
+#include "GeoidModel.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ // The following forward declaration of Position and range are the only
+ // way I can get range to be a member of namespace gpstk.
+ class Position;
+ double range(const Position& A, const Position& B) throw(GeometryException);
+
+ /**
+ * A position representation class for common 3D geographic position formats,
+ * including geodetic (geodetic latitude, longitude, and height above the geoid)
+ * geocentric (geocentric latitude, longitude, and radius from Earth's center),
+ * cartesian (Earth-centered, Earth-fixed) and spherical (theta,phi,radius).
+ *
+ * Internally, the representation of Position consists of three coordinate
+ * values (double), two doubles from a geoid model (see below, storing these
+ * doubles is preferred over adding GeoidModel to calling arguments everywhere),
+ * a flag of type 'enum CoordinateSystem' giving the coordinate system, and a
+ * tolerance for use in comparing Positions. Class Position inherits from class
+ * Triple, which is how the coordinate values are stored (Triple actually uses
+ * std::valarray<double> of length 3). It is important to note that
+ * Triple:: routines are properly used by Positions ONLY in the Cartesian
+ * coordinate system.
+ *
+ * Only geodetic coordinates depend on a geoid, and then (for an ellipsoidal
+ * geoid) only on the semi-major axis of the Earth and the square of its
+ * eccentricity. Input of this geoid information (usually a pointer to a
+ * GeoidModel) is required by functions involving constructors of, or
+ * transformation to or from, Geodetic coordinates. However since a default
+ * is supplied (WGS84), the user need never deal with geiods unless desired.
+ * In fact, if the geodetic coordinate system is avoided, the Position class
+ * can be interpreted simply as 3D vectors in any context, particularly since
+ * the class inherits from Triple, which includes many vector manipulation
+ * routines (although the Triple:: routines assume Cartesian coordinates).
+ * Even the requirement that lengths (radius, height and the cartesian
+ * coordinates) have units of meters is required only if geodetic coordinates
+ * are used (because the semi-major axis in GeoidModel is in meters);
+ * without using Geodetic one could apply the class using any units for
+ * length as long as setTolerance() is called appropriately.
+ *
+ * Position relies on a series of fundamental routines to transform from
+ * one coordinate system to another, these include, for example
+ * void Position::convertGeodeticToCartesian(const Triple& llh, Triple& xyz,
+ * const double A, const double eccSq);
+ * void Position::convertSphericalToCartesian(const Triple& tpr, Triple& xyz);
+ * These functions use Triple in the calling arguments.
+ *
+ * Position will throw exceptions (gpstk::GeometryException) on bad input
+ * (e.g. negative radius or latitude > 90 degrees); otherwise the class
+ * attempts to handle all points, even the pole and the origin, consistently
+ * and without throwing exceptions.
+ * At or very near the poles, the transformation routines will set
+ * latitude = +/-90 degrees, which is theta = 0 or 180, and (arbitrarily)
+ * longitude = 0. At or very near the origin, the transformation routines
+ * will set latitude = 0, which is theta = 90, and (arbitrarily) longitude = 0;
+ * radius will be set to zero and geodetic height will be set to
+ * -radius(Earth) (= -6378137.0 in WGS84). The tolerance used in testing
+ * 'at or near the pole or origin' is radius < POSITION_TOLERANCE/5.
+ * Note that this implies that a Position that is very near the origin may
+ * be SET to the exact origin by the transformation routines, and that
+ * thereby information about direction (e.g. latitude and longitude)
+ * may be LOST. The user is warned to be very careful when working
+ * near either the pole or the origin.
+ *
+ * Position includes setToString() and printf() functions similar to those
+ * in gpstk::DayTime; this allows flexible and powerful I/O of Position to
+ * strings and streams.
+ *
+ * @sa positiontest.cpp for examples.
+ */
+ class Position : public Triple
+ {
+ public:
+ // ----------- Part 1: coordinate systems --------------------------------
+ //
+ /// The coordinate systems supported by Position
+ enum CoordinateSystem
+ {
+ Unknown=0, ///< unknown coordinate system
+ Geodetic, ///< geodetic latitude, longitude, and height above geoid
+ Geocentric, ///< geocentric (regular spherical coordinates)
+ Cartesian, ///< cartesian (Earth-centered, Earth-fixed)
+ Spherical ///< spherical coordinates (theta,phi,radius)
+ };
+
+ /// return string giving name of coordinate system
+ std::string getSystemName()
+ throw();
+
+ // ----------- Part 2: member functions: tolerance -----------------------
+ //
+ /// One millimeter tolerance.
+ static const double ONE_MM_TOLERANCE;
+ /// One centimeter tolerance.
+ static const double ONE_CM_TOLERANCE;
+ /// One micron tolerance.
+ static const double ONE_UM_TOLERANCE;
+
+ /// Default tolerance for time equality in days.
+ static double POSITION_TOLERANCE;
+
+ /// Changes the POSITION_TOLERANCE for all Position objects
+ static double setPositionTolerance(const double tol)
+ { POSITION_TOLERANCE = tol; return POSITION_TOLERANCE; }
+
+ /// Returns the current POSITION_TOLERANCE.
+ static double getPositionTolerance()
+ { return POSITION_TOLERANCE; }
+
+ /**
+ * Sets the tolerance for output and comparisons, for this object only.
+ * See the constants in this file (e.g. ONE_MM_TOLERANCE)
+ * for some easy to use tolerance values.
+ * @param tol Tolerance in meters to be used by comparison operators.
+ * @sa Position-Specific Definitions
+ */
+ Position& setTolerance(const double tol)
+ throw();
+
+ // ----------- Part 3: member functions: constructors --------------------
+ //
+ /**
+ * Default constructor.
+ * Initializes to zero, Unknown coordinates
+ */
+ Position()
+ throw();
+
+ /**
+ * Explicit constructor. Coordinate system may be specified on input,
+ * but defaults to Cartesian. Pointer to GeoidModel may be specified,
+ * but default is NULL (in which case WGS84 values will be used).
+ * @param a first coordinate [ X(m), or latitude (degrees N) ]
+ * @param b second coordinate [ Y(m), or longitude (degrees E) ]
+ * @param c third coordinate [ Z, height above ellipsoid or radius, in m ]
+ * @param s coordinate system
+ * @param geoid pointer to GeoidModel
+ * @throw GeometryException on invalid input.
+ */
+ Position(const double& a,
+ const double& b,
+ const double& c,
+ CoordinateSystem s = Cartesian,
+ GeoidModel *geoid = NULL)
+ throw(GeometryException);
+
+ /**
+ * Explicit constructor. Coordinate system may be specified on input,
+ * but defaults to Cartesian. Pointer to GeoidModel may be specified,
+ * but default is NULL (in which case WGS84 values will be used).
+ * @param ABC double array[3] coordinate values
+ * @param s CoordinateSystem
+ * @param geoid pointer to GeoidModel
+ * @throw GeometryException on invalid input.
+ */
+ Position(const double ABC[3],
+ CoordinateSystem s = Cartesian,
+ GeoidModel *geoid = NULL)
+ throw(GeometryException);
+
+ /**
+ * Explicit constructor. Coordinate system may be specified on input,
+ * but defaults to Cartesian. Pointer to GeoidModel may be specified,
+ * but default is NULL (in which case WGS84 values will be used).
+ * @param ABC coordinate values
+ * @param s CoordinateSystem
+ * @param geoid pointer to GeoidModel
+ * @throw GeometryException on invalid input.
+ */
+ Position(const Triple& ABC,
+ CoordinateSystem s = Cartesian,
+ GeoidModel *geoid = NULL)
+ throw(GeometryException);
+
+ /**
+ * Explicit constructor from Xvt. The coordinate system is Cartesian,
+ * and the velocity and time information in the input is ignored.
+ * @param xvt Input Xvt object, xvt.x contains the Cartesian coordinates
+ */
+ Position(const Xvt& xvt)
+ throw();
+
+ /// Destructor.
+ ~Position()
+ throw()
+ {}
+
+ // ----------- Part 4: member functions: arithmetic ----------------------
+ //
+ /** Subtract a Position from this Position. Perform the subtraction in
+ * Cartesian coordinates, but return this Position to the system it
+ * had originally.
+ * @param right Position to subtract from this one.
+ * @return new Position, in the original system.
+ */
+ Position& operator-=(const Position& right)
+ throw();
+
+ /** Add a Position to this Position. Perform the addition in
+ * Cartesian coordinates, but return this Position to the system it
+ * had originally.
+ * @param right Position to add to this one.
+ * @return new Position, in the original system.
+ */
+ Position& operator+=(const Position& right)
+ throw();
+
+ /**
+ * Difference two Positions, returning result as a Position in Cartesian
+ * coordinates, the only system in which a position difference makes sense.
+ * @param right Position to subtract from this one.
+ * @return difference as Position.
+ */
+ friend Position operator-(const Position& left,
+ const Position& right)
+ throw();
+
+ /**
+ * Add two Positions, returning result as a Position in Cartesian
+ * coordinates, the only system in which a position sum makes sense.
+ * @param right Position to add to this one.
+ * @return The new Position.
+ */
+ friend Position operator+(const Position& left,
+ const Position& right)
+ throw();
+
+ /** Multiply a Position by a double scalar on the left.
+ * @param right Position to be multiplied by the scalar
+ * @param scale the (double) scalar
+ * @return The new Position.
+ */
+ friend Position operator*(const double& scale,
+ const Position& right)
+ {
+ Position tmp(right);
+ tmp.theArray *= scale;
+ return tmp;
+ }
+
+ /** Multiply a Position by a double scalar on the right.
+ * @param left Position to be multiplied by the scalar
+ * @param scale the (double) scalar
+ * @return The new Position.
+ */
+ friend Position operator*(const Position& left,
+ const double& scale)
+ {
+ return operator*(scale, left);
+ }
+
+ /** Multiply a Position by an integer scalar on the left.
+ * @param right Position to be multiplied by the scalar
+ * @param scale the (int) scalar
+ * @return The new Position.
+ */
+ friend Position operator*(const int& scale,
+ const Position& right)
+ {
+ return operator*(double(scale), right);
+ }
+
+ /** Multiply a Position by an integer scalar on the right.
+ * @param left Position to be multiplied by the scalar
+ * @param scale the (int) scalar
+ * @return The new Position.
+ */
+ friend Position operator*(const Position& left,
+ const int& scale)
+ {
+ return operator*(double(scale), left);
+ }
+
+ // ----------- Part 5: member functions: comparisons ---------------------
+ //
+ /// Equality operator. Return true if range between this Position and
+ /// the input Position is less than tolerance. Return false if geoid
+ /// values differ.
+ /// @param right Position to be compared to this Position
+ bool operator==(const Position &right) const
+ throw();
+
+ /// Inequality operator. Return true if range between this Position and
+ /// the input Position is greater than tolerance. Return true if geoid
+ /// values differ.
+ /// @param right Position to be compared to this Position
+ bool operator!=(const Position &right) const
+ throw();
+
+ // ----------- Part 6: member functions: coordinate transformations ------
+ //
+ /**
+ * Transform coordinate system. Does nothing if sys already matches the
+ * current value of member CoordinateSystem 'system'.
+ * @param sys CoordinateSystem into which this Position is transformed.
+ */
+ Position transformTo(CoordinateSystem sys)
+ throw();
+
+ /// Convert to geodetic coordinates (does nothing if
+ /// system == Geodetic already).
+ Position asGeodetic()
+ throw()
+ { transformTo(Geodetic); return *this; }
+
+ /// Convert to another geoid, then to geodetic coordinates.
+ /// @return a reference to this.
+ /// @throw GeometryException if input is NULL.
+ Position asGeodetic(GeoidModel *geoid)
+ throw(GeometryException)
+ {
+ try { setGeoidModel(geoid); }
+ catch(GeometryException& ge) { GPSTK_RETHROW(ge); }
+ transformTo(Geodetic);
+ return *this;
+ }
+
+ /// Convert to cartesian coordinates (does nothing if
+ /// system == Cartesian already).
+ Position asECEF()
+ throw()
+ { transformTo(Cartesian); return *this; }
+
+
+ // ----------- Part 7: member functions: get -----------------------------
+ //
+ // These routines retrieve coordinate values in all coordinate systems.
+ //
+ /// return X coordinate (meters)
+ double X() const
+ throw();
+
+ /// return Y coordinate (meters)
+ double Y() const
+ throw();
+
+ /// return Z coordinate (meters)
+ double Z() const
+ throw();
+
+ /// return geodetic latitude (degrees North).
+ double geodeticLatitude() const
+ throw();
+
+ /// return geocentric latitude (degrees North);
+ /// equal to 90 degress - theta in regular spherical coordinates.
+ double geocentricLatitude() const
+ throw();
+
+ /// return spherical coordinate theta in degrees
+ double theta() const
+ throw();
+
+ /// return spherical coordinate phi in degrees
+ double phi() const
+ throw();
+
+ /// return longitude (degrees East);
+ /// equal to phi in regular spherical coordinates.
+ double longitude() const
+ throw();
+
+ /// return distance from the center of Earth (meters),
+ /// Same as radius in spherical coordinates.
+ double radius() const
+ throw();
+
+ /// return height above ellipsoid (meters) (Geodetic).
+ double height() const
+ throw();
+
+ /// return the coordinate system for this Position
+ CoordinateSystem getCoordinateSystem() const
+ throw()
+ { return system; };
+
+ /// return geodetic latitude (deg N)
+ double getGeodeticLatitude() const
+ throw()
+ { return geodeticLatitude(); }
+
+ /// return geocentric latitude (deg N)
+ double getGeocentricLatitude() const
+ throw()
+ { return geocentricLatitude(); }
+
+ /// return longitude (deg E) (either geocentric or geodetic)
+ double getLongitude() const
+ throw()
+ { return longitude(); }
+
+ /// return height above ellipsoid (meters)
+ double getAltitude() const
+ throw()
+ { return height(); }
+
+ /// return height above ellipsoid (meters)
+ double getHeight() const
+ throw()
+ { return height(); }
+
+ /// return ECEF X coordinate (meters)
+ double getX() const
+ throw()
+ { return X(); }
+
+ /// return ECEF Y coordinate (meters)
+ double getY() const
+ throw()
+ { return Y(); }
+
+ /// return ECEF Z coordinate (meters)
+ double getZ() const
+ throw()
+ { return Z(); }
+
+ /// return spherical coordinate angle theta (deg) (90 - geocentric latitude)
+ double getTheta() const
+ throw()
+ { return theta(); }
+
+ /// return spherical coordinate angle phi (deg) (same as longitude)
+ double getPhi() const
+ throw()
+ { return phi(); }
+
+ /// return radius
+ double getRadius() const
+ throw()
+ { return radius(); }
+
+ // ----------- Part 8: member functions: set -----------------------------
+ //
+ /**
+ * Set the geoid values for this Position given a geoid.
+ * @param geoid Pointer to the GeoidModel.
+ * @throw GeometryException if input is NULL.
+ */
+ void setGeoidModel(const GeoidModel *geoid)
+ throw(GeometryException);
+
+ /**
+ * Set the Position given geodetic coordinates; system is set to Geodetic.
+ * @param lat geodetic latitude in degrees North
+ * @param lon geodetic longitude in degrees East
+ * @param ht height above the ellipsoid in meters
+ * @return a reference to this object.
+ * @throw GeometryException on invalid input
+ */
+ Position& setGeodetic(const double lat,
+ const double lon,
+ const double ht,
+ const GeoidModel *geoid = NULL)
+ throw(GeometryException);
+
+ /**
+ * Set the Position given geocentric coordinates; system is set to Geocentric
+ * @param lat geocentric latitude in degrees North
+ * @param lon geocentric longitude in degrees East
+ * @param rad radius from the Earth's center in meters
+ * @return a reference to this object.
+ * @throw GeometryException on invalid input
+ */
+ Position& setGeocentric(const double lat,
+ const double lon,
+ const double rad)
+ throw(GeometryException);
+
+ /**
+ * Set the Position given spherical coordinates; system is set to Spherical
+ * @param theta angle from the Z-axis (degrees)
+ * @param phi angle from the X-axis in the XY plane (degrees)
+ * @param rad radius from the center in meters
+ * @return a reference to this object.
+ * @throw GeometryException on invalid input
+ */
+ Position& setSpherical(const double theta,
+ const double phi,
+ const double rad)
+ throw(GeometryException);
+
+ /**
+ * Set the Position given ECEF coordinates; system is set to Cartesian.
+ * @param X ECEF X coordinate in meters.
+ * @param Y ECEF Y coordinate in meters.
+ * @param Z ECEF Z coordinate in meters.
+ * @return a reference to this object.
+ */
+ Position& setECEF(const double X,
+ const double Y,
+ const double Z)
+ throw();
+
+ /**
+ * Set the Position given an array of ECEF coordinates;
+ * system is set to Cartesian.
+ * @param XYZ array[3] ECEF X,Y,Z coordinate in meters.
+ * @return a reference to this object.
+ */
+ Position& setECEF(const double XYZ[3])
+ throw()
+ { return setECEF(XYZ[0],XYZ[1],XYZ[2]); }
+
+ /**
+ * Set the Position given ECEF coordinates; system is set to Cartesian.
+ * @param XYZ ECEF X,Y,Z coordinates in meters.
+ * @return a reference to this object.
+ */
+ Position& setECEF(const Triple& XYZ)
+ throw()
+ { return setECEF(XYZ[0],XYZ[1],XYZ[2]); }
+
+ // ----------- Part 9: member functions: setToString, printf -------------
+ //
+ /**
+ * setToString, similar to scanf, this function takes a string and a
+ * format describing string in order to define Position
+ * values. The parameters it can take are listed below and
+ * described above with the printf() function.
+ *
+ * The specification must be sufficient to define a Position.
+ * The following table lists combinations that give valid
+ * Positions. Anything more or other combinations will give
+ * unknown (read as: "bad") results so don't try it. Anything
+ * less will throw an exception.
+ *
+ * @code
+ * %X %Y %Z (cartesian or ECEF in kilometers)
+ * %x %y %z (cartesian or ECEF in meters)
+ * %a %l %r (geocentric lat,lon,radius, longitude E, radius in meters)
+ * %A %L %h (geodetic lat,lon,height, longitude E, height in meters)
+ * %a %w %R (geocentric lat,lon,radius, longitude W, radius in kilometers)
+ * %A %W %H (geodetic lat,lon,height, longitude W, height in kilometers)
+ * %t %p %r (spherical theta, phi, radius, degrees and meters)
+ * %T %P %R (spherical theta, phi, radius, radians and kilometers)
+ * @endcode
+ *
+ * So
+ * @code
+ * pos.setToString("123.4342,9328.1982,-128987.399", "%X,%Y,%Z");
+ * @endcode
+ *
+ * works but
+ *
+ * @code
+ * pos.setToString("123.4342,9328.1982", "%X,%Y");
+ * @endcode
+ * doesn't work (incomplete specification because it doesn't specify
+ * a Position).
+ *
+ * Whitespace is unimportant here; the function will handle it.
+ * The caller must ensure that that the extra characters in
+ * the format string (ie '.' ',') are in the same relative
+ * location as they are in the actual string; see the example above.
+ *
+ * @param str string from which to get the Position coordinates
+ * @param fmt format to use to parse \c str.
+ * @throw GeometryException if \c fmt is an incomplete or invalid
+ * specification
+ * @throw FormatException if unable to scan \c str.
+ * @throw StringException if an error occurs manipulating the
+ * \c str or \c fmt strings.
+ * @return a reference to this object.
+ */
+ Position& setToString(const std::string& str,
+ const std::string& fmt)
+ throw(GeometryException,
+ DayTime::FormatException,
+ StringUtils::StringException);
+
+
+ // if you can see this, ignore the \'s below, as they are for
+ // the nasty html-ifying of doxygen. Browsers try to
+ // interpret the % and they get all messed up.
+ /**
+ * Format this Position into a string.
+ *
+ * Generate and return a string containing formatted
+ * Position coordinates, formatted by the specification \c fmt.
+ *
+ * \li \%x X() (meters)
+ * \li \%y Y() (meters)
+ * \li \%z Z() (meters)
+ * \li \%X X()/1000 (kilometers)
+ * \li \%Y Y()/1000 (kilometers)
+ * \li \%Z Z()/1000 (kilometers)
+ * \li \%A geodeticLatitude() (degrees North)
+ * \li \%a geocentricLatitude() (degrees North)
+ * \li \%L longitude() (degrees East)
+ * \li \%l longitude() (degrees East)
+ * \li \%w longitude() (degrees West)
+ * \li \%W longitude() (degrees West)
+ * \li \%t theta() (degrees)
+ * \li \%T theta() (radians)
+ * \li \%p phi() (degrees)
+ * \li \%P phi() (radians)
+ * \li \%r radius() meters
+ * \li \%R radius()/1000 kilometers
+ * \li \%h height() meters
+ * \li \%H height()/1000 kilometers
+ *
+ * @param fmt format to use for this time.
+ * @return a string containing this Position in the
+ * representation specified by \c fmt.
+ */
+ std::string printf(const char *fmt) const
+ throw(StringUtils::StringException);
+
+ /// Format this time into a string.
+ /// @see printf(const char*)
+ std::string printf(const std::string& fmt) const
+ throw(StringUtils::StringException)
+ { return printf(fmt.c_str()); }
+
+ /// Returns the string that operator<<() would print.
+ std::string asString() const
+ throw(StringUtils::StringException);
+
+ // ----------- Part 10: functions: fundamental conversions ---------------
+ //
+ /** Fundamental conversion from spherical to cartesian coordinates.
+ * @param trp (input): theta, phi (degrees), radius
+ * @param xyz (output): X,Y,Z in units of radius
+ * Algorithm references: standard geometry.
+ */
+ static void convertSphericalToCartesian(const Triple& tpr,
+ Triple& xyz)
+ throw();
+
+ /** Fundamental routine to convert cartesian to spherical coordinates.
+ * The zero vector is converted to (90,0,0).
+ * @param xyz (input): X,Y,Z
+ * @param trp (output): theta, phi (degrees), radius (units of input)
+ * Algorithm references: standard geometry.
+ */
+ static void convertCartesianToSpherical(const Triple& xyz,
+ Triple& tpr)
+ throw();
+
+
+ /** Fundamental routine to convert ECEF (cartesian) to geodetic coordinates,
+ * (Geoid specified by semi-major axis and eccentricity squared).
+ * The zero vector is converted to (90,0,-R(earth)).
+ * @param xyz (input): X,Y,Z in meters
+ * @param llh (output): geodetic lat(deg N), lon(deg E),
+ * height above ellipsoid (meters)
+ * @param A (input) Earth semi-major axis
+ * @param eccSq (input) square of Earth eccentricity
+ * Algorithm references: Leick, "GPS Satellite Surveying," 2nd edition.
+ */
+ static void convertCartesianToGeodetic(const Triple& xyz,
+ Triple& llh,
+ const double A,
+ const double eccSq)
+ throw();
+
+ /** Fundamental routine to convert geodetic to ECEF (cartesian) coordinates,
+ * (Geoid specified by semi-major axis and eccentricity squared).
+ * @param llh (input): geodetic lat(deg N), lon(deg E),
+ * height above ellipsoid (meters)
+ * @param A (input) Earth semi-major axis
+ * @param xyz (output): X,Y,Z in meters
+ * @param eccSq (input) square of Earth eccentricity
+ * Algorithm references: Leick, "GPS Satellite Surveying," 2nd edition.
+ */
+ static void convertGeodeticToCartesian(const Triple& llh,
+ Triple& xyz,
+ const double A,
+ const double eccSq)
+ throw();
+
+
+ /** Fundamental routine to convert cartesian (ECEF) to geocentric
+ * The zero vector is converted to (0,0,0).
+ * @param xyz (input): X,Y,Z
+ * @param llr (output): geocentric lat(deg N), lon(deg E),
+ * radius (units of input)
+ */
+ static void convertCartesianToGeocentric(const Triple& xyz,
+ Triple& llr)
+ throw();
+
+ /** Fundamental routine to convert geocentric to cartesian (ECEF)
+ * @param llr (input): geocentric lat(deg N),lon(deg E),radius
+ * @param xyz (output): X,Y,Z (units of radius)
+ */
+ static void convertGeocentricToCartesian(const Triple& llr,
+ Triple& xyz)
+ throw();
+
+
+ /** Fundamental routine to convert geocentric to geodetic
+ * @param llr (input): geocentric lat(deg N),lon(deg E),radius (meters)
+ * @param geodeticllh (output): geodetic latitude (deg N),
+ * longitude (deg E), and height above ellipsoid (meters)
+ * @param A (input) Earth semi-major axis
+ * @param eccSq (input) square of Earth eccentricity
+ */
+ static void convertGeocentricToGeodetic(const Triple& llr,
+ Triple& geodeticllh,
+ const double A,
+ const double eccSq)
+ throw();
+
+ /** Fundamental routine to convert geodetic to geocentric
+ * @param geodeticllh (input): geodetic latitude (deg N),
+ * longitude (deg E), and height above ellipsoid (meters)
+ * @param llr (output): geocentric lat (deg N),lon (deg E),radius (meters)
+ * @param A (input) Earth semi-major axis
+ * @param eccSq (input) square of Earth eccentricity
+ */
+ static void convertGeodeticToGeocentric(const Triple& geodeticllh,
+ Triple& llr,
+ const double A,
+ const double eccSq)
+ throw();
+
+ // ----------- Part 11: operator<< and other useful functions -------------
+ //
+ /**
+ * Stream output for Position objects.
+ * @param s stream to append formatted Position to.
+ * @param t Position to append to stream \c s.
+ * @return reference to \c s.
+ */
+ friend std::ostream& operator<<(std::ostream& s,
+ const Position& p);
+
+ /**
+ * Compute the range in meters between two Positions.
+ * Input Positions are not modified.
+ * @param A,B Positions between which to find the range
+ * @return the range (in meters)
+ * @throw GeometryException if geoid values differ.
+ * or if transformTo(Cartesian) fails
+ */
+ friend double range(const Position& A,
+ const Position& B)
+ throw(GeometryException);
+
+ /**
+ * Compute the radius of the ellipsoidal Earth, given the geodetic latitude.
+ * @param geolat geodetic latitude in degrees
+ * @return the Earth radius (in meters)
+ */
+ static double radiusEarth(const double geolat,
+ const double A,
+ const double eccSq)
+ throw();
+
+ /**
+ * A member function that calls the non-member radiusEarth() for
+ * this Position.
+ * @return the Earth radius (in meters)
+ */
+ double radiusEarth() const
+ throw()
+ {
+ Position p(*this);
+ p.transformTo(Position::Geodetic);
+ return Position::radiusEarth(p.theArray[0], p.AEarth, p.eccSquared);
+ }
+
+ /**
+ * A member function that computes the elevation of the input
+ * (Target) position as seen from this Position.
+ * @param Target the Position which is observed to have the
+ * computed elevation, as seen from this Position.
+ * @return the elevation in degrees
+ */
+ double elevation(const Position& Target) const
+ throw(GeometryException);
+
+ /**
+ * A member function that computes the elevation of the input
+ * (Target) position as seen from this Position, using a Geodetic
+ * (ellipsoidal) system.
+ * @param Target the Position which is observed to have the
+ * computed elevation, as seen from this Position.
+ * @return the elevation in degrees
+ */
+ double elevationGeodetic(const Position& Target) const
+ throw(GeometryException);
+
+ /**
+ * A member function that computes the azimuth of the input
+ * (Target) position as seen from this Position.
+ * @param Target the Position which is observed to have the
+ * computed azimuth, as seen from this Position.
+ * @return the azimuth in degrees
+ */
+ double azimuth(const Position& Target) const
+ throw(GeometryException);
+
+ /**
+ * A member function that computes the azimuth of the input
+ * (Target) position as seen from this Position, using a Geodetic
+ * (ellipsoidal) system.
+ * @param Target the Position which is observed to have the
+ * computed azimuth, as seen from this Position.
+ * @return the azimuth in degrees
+ */
+ double azimuthGeodetic(const Position& Target) const
+ throw(GeometryException);
+
+ /**
+ * A member function that computes the position at which a signal, which
+ * is received at this Position and there is observed at the (input)
+ * azimuth and elevation angles, crosses a model ionosphere that is
+ * taken to be a thin shell at constant (input) height.
+ * This function will not transform this Position, and it will return
+ * a Position in the same system; the algorithm itself is done in the
+ * geocentric coordinate system.
+ * @param elev elevation angle in degrees of the signal at reception
+ * @param azim azimuth angle in degrees of the signal at reception
+ * @param ionoht height of the ionosphere, in meters
+ * @return Position IPP the position of the ionospheric pierce point,
+ * in the same coordinate system as *this; *this is not modified.
+ */
+ Position getIonosphericPiercePoint(const double elev,
+ const double azim,
+ const double ionoht) const
+ throw();
+
+ // ----------- Part 12: private functions and member data -----------------
+ //
+ private:
+
+ /** Initialization function, used by the constructors.
+ * @param a coordinate [ X(m), or latitude (degrees N) ]
+ * @param b coordinate [ Y(m), or longitude (degrees E) ]
+ * @param c coordinate [ Z, height above ellipsoid or radius, in m ]
+ * @param s CoordinateSystem, defaults to Cartesian
+ * @param geiod pointer to a GeoidModel, default NULL (WGS84)
+ * @throw GeometryException on invalid input.
+ */
+ void initialize(const double a,
+ const double b,
+ const double c,
+ CoordinateSystem s = Cartesian,
+ GeoidModel *geoid = NULL)
+ throw(GeometryException);
+
+ /* Values of the coordinates, defined for each system as follows;
+ * Cartesian : X,Y,Z in meters
+ * Geocentric : Latitude(degrees N), Longitude(degrees E),
+ * Radius (meters)
+ * Geodetic : Latitude(degrees N), Longitude(degrees E),
+ * Height above ellipsoid (meters)
+ * Spherical : theta (degrees) - angle from the z axis
+ * phi (degrees) - angle in xy plane from x axis toward
+ * y axis (same as longitude)
+ * radius (meters?) - distance from origin
+ */
+ // use std::valarray<double> theArray; -- inherit from Triple
+
+ /// semi-major axis of Earth (meters)
+ double AEarth;
+
+ /// square of geoid eccentricity
+ double eccSquared;
+
+ /// see #CoordinateSystem
+ CoordinateSystem system;
+
+ /// tolerance used in comparisons
+ double tolerance;
+
+ }; // end class Position
+
+ //@}
+
+} // namespace gpstk
+
+#endif // GPSTK_POSITION_HPP
diff --git a/dev/src/RACRotation.cpp b/dev/src/RACRotation.cpp
new file mode 100644
index 0000000..a7e41d3
--- /dev/null
+++ b/dev/src/RACRotation.cpp
@@ -0,0 +1,142 @@
+#pragma ident "$Id$"
+
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+
+
+//
+//
+//#include <stdio.h>
+
+// gpstk
+#include "RACRotation.hpp"
+
+namespace gpstk
+{
+
+//using namespace std;
+
+RACRotation::RACRotation( const gpstk::Triple& SVPositionVector,
+ const gpstk::Triple& SVVelocityVector)
+ : gpstk::Matrix<double>(3,3)
+{
+ compute( SVPositionVector, SVVelocityVector );
+}
+
+RACRotation::RACRotation(const gpstk::Xvt& xvt)
+ : gpstk::Matrix<double>(3,3)
+{
+ compute( xvt.x, xvt.v );
+}
+
+//
+// Given the SV position vector and the SV velocity vector,
+// compute a rotation from ECEF XYZ to ECEF Radial,
+// Along-Track, Cross-Track (RAC).
+//
+// Let the SV position vector be represented by R
+// Let the SV velocity vector be represented by V
+// 1.) Form the unit vector R^ = R / |R|.
+// 2.) Compute vector C = R^ cross V and unit vector C^ = C / |C|. C^ is
+// perpendiculat to the RV plane
+// 3.) Compute A^ = C^ corss R^.
+// 4.) [R^, A^, C^] is an orthonormal triad and the rotation matrix between
+// XYZ and RAC is the matrix where R^, C^, and A^ are each a row of the
+// matrix.
+//
+void RACRotation::compute( const gpstk::Triple& SVPositionVector,
+ const gpstk::Triple& SVVelocityVector)
+{
+
+ gpstk::Triple unitR = SVPositionVector.unitVector();
+ gpstk::Triple C = unitR.cross(SVVelocityVector);
+ gpstk::Triple unitC = C.unitVector();
+ gpstk::Triple unitA = unitC.cross(unitR);
+
+ (*this) (0,0) = unitR[0];
+ (*this) (0,1) = unitR[1];
+ (*this) (0,2) = unitR[2];
+ (*this) (1,0) = unitA[0];
+ (*this) (1,1) = unitA[1];
+ (*this) (1,2) = unitA[2];
+ (*this) (2,0) = unitC[0];
+ (*this) (2,1) = unitC[1];
+ (*this) (2,2) = unitC[2];
+}
+
+gpstk::Vector<double> RACRotation::convertToRAC( const gpstk::Vector<double>& inV )
+{
+ gpstk::Vector<double> outV(3);
+
+ /*
+ My goal was to use the following statement.
+ outV = this * inV;
+ However, for some reason, gcc refuses to recognize RACRotation as a
+ Matrix subclass. Therefore, I've incorporated the matrix multiply
+ as a temporary kludge.
+ */
+ if (inV.size()!=3)
+ {
+ gpstk::Exception e("Incompatible dimensions for Vector");
+ GPSTK_THROW(e);
+ }
+ size_t i, j;
+ for (i = 0; i < 3; i++)
+ {
+ outV[i] = 0;
+ for (j = 0; j < 3; j++)
+ {
+ double temp = (*this)(i,j) * inV[j];
+ outV[i] += temp;
+ }
+ }
+ /* end kludge */
+ return(outV);
+}
+
+gpstk::Triple RACRotation::convertToRAC( const gpstk::Triple& inVec )
+{
+ gpstk::Vector<double> v(3);
+ v[0] = inVec[0];
+ v[1] = inVec[1];
+ v[2] = inVec[2];
+
+ gpstk::Vector<double> vOut = convertToRAC( v );
+ gpstk::Triple outVec( vOut[0], vOut[1], vOut[2] );
+ return(outVec);
+}
+
+gpstk::Xvt RACRotation::convertToRAC( const gpstk::Xvt& in )
+{
+ gpstk::Xvt out;
+ out.dtime = in.dtime;
+ out.ddtime = in.ddtime;
+ out.x = convertToRAC( in.x );
+ out.v = convertToRAC( in.v );
+ return(out);
+}
+} // end namespace gpstk
diff --git a/dev/src/RACRotation.hpp b/dev/src/RACRotation.hpp
new file mode 100644
index 0000000..33c8cbd
--- /dev/null
+++ b/dev/src/RACRotation.hpp
@@ -0,0 +1,62 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+
+
+//
+//
+#ifndef GPSTK_RACROTATION_HPP
+#define GPSTK_RACROTATION_HPP
+
+// gpstk
+#include "Triple.hpp"
+#include "Matrix.hpp"
+#include "Vector.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+ class RACRotation : public gpstk::Matrix<double>
+ {
+ public:
+ // Constructors
+ RACRotation( const gpstk::Triple& SVPositionVector,
+ const gpstk::Triple& SVVelocityVector);
+ RACRotation(const gpstk::Xvt& xvt);
+
+ // Methods
+ gpstk::Vector<double> convertToRAC( const gpstk::Vector<double>& inV );
+ gpstk::Triple convertToRAC( const gpstk::Triple& inVec );
+ gpstk::Xvt convertToRAC( const gpstk::Xvt& in );
+
+ // Utilities
+ protected:
+ void compute( const gpstk::Triple& SVPositionVector,
+ const gpstk::Triple& SVVelocityVector);
+ };
+}
+#endif
diff --git a/dev/src/README b/dev/src/README
new file mode 100644
index 0000000..4abebe4
--- /dev/null
+++ b/dev/src/README
@@ -0,0 +1,216 @@
+// this is for Doxygen to parse and add to the documentation
+
+/**
+ * @file README
+ * Documentation for Doxygen
+ */
+
+/** @mainpage
+ * This documentation describes the architecture and design of the
+ * GPS ToolKit (GPSTk), produced by the Space and Geophysics Laboratory (SGL)
+ * of Applied Research Laboratories, The University of Texas at Austin (ARL:UT).
+ *
+ * This documentation is generated nightly from the GPSTk Subversion repository.
+ *
+ * \section intro Introduction
+ * GPSTK is a library of support routines designed for use by programmers
+ * developing applications that read and write (particularly in RINEX format),
+ * process and otherwise manipulate GPS data. It is characterized by the following:
+ * - Modern, ANSI C++; highly object oriented
+ * - Uses templates, the Standard Template Library (STL) and iostreams classes
+ * - Portable and platform independent
+ * - Includes full implementation of the RINEX (Receiver Independent Exchange Format) I/O
+ *
+ * \section codedesign Code Design
+ * \subsection namesp Namespaces
+ * All GPSTK code is placed within the gpstk namespace. Within the gpstk namespace, other
+ * namespaces are defined for certain specialized functionality; these include
+ * - gpstk::BinUtils in the Binary utilities module
+ * - gpstk::FileUtils in the File utilities module
+ * - gpstk::StringUtils in the String utilities module
+ *
+ * Namespace std is also used throughout the GPSTK.
+ *
+ * \section content Library Content
+ * The library consists of several modules, which are more or less dependent upon each
+ * other. These include
+ * - Exceptions for use throughout the library
+ * - Binary utilities
+ * - STL "helpers"
+ * - String utilities
+ * - Command line options
+ * - Date and time conversions
+ * - Formatted file I/O
+ * - File utilities, including file filters and filter hunter
+ * - Vector and Matrix algorithms
+ * - Mathematical algorithms
+ * - Geodetic coordinates, conversions, etc
+ * - Complete RINEX implementation (including Glonass and other data),
+ * with extensions that allow user-defined observation types
+ * -# Rinex Meterological file I/O
+ * -# Rinex Navigation file I/O
+ * -# Rinex Observation file I/O
+ * - Ephemeris calculations, including almanac and ICD-GPS-200 algorithms
+ * - Ephemeris I/O and storage
+ * - SP3 format file ("precise ephemeris") I/O and storage
+ * - GPS navigation solution algorithms
+ * - Basic application frameworks
+ * - P-Code generator
+ * - GNSS Data Structures handling
+ *
+ * \section applic Applications
+ * This distribution also includes several stand-alone application programs which
+ * also serve as examples of how to use the GPSTK. These include
+ * - Rinex summary
+ * - Rinex editor
+ * - Discontinuity Correction (i.e. cycle slip fixing)
+ * - Residual and correction generator
+ *
+ */
+
+/** @namespace gpstk Namespace for entire GPSTK library. */
+
+// These are all the example and test files we have and a brief description
+// of each.
+
+/**
+ * @example AnotherFileFilterTest.cpp
+ */
+
+/**
+ * @example EphComp.cpp
+ */
+
+/**
+ * @example FileSpecTest.cpp
+ */
+
+/**
+ * @example MatrixTest.cpp
+ */
+
+/**
+ * @example NavMerge.cpp
+ */
+
+/**
+ * @example RungeKuttaTest.cpp
+ * The full, nonlinear equation of motion for a simple pendulum.
+ * Tests the RungeKutta4 integrator class.
+ *
+ */
+
+/**
+ * @example Xbegweek.cpp
+ */
+
+/**
+ * @example Xendweek.cpp
+ */
+
+/**
+ * @example daytimetest.cpp
+ * Tests the DayTime class.
+ */
+
+/**
+ * @example exceptiontest.cpp
+ * Tests exceptions.
+ */
+
+/**
+ * @example petest.cpp
+ */
+
+/**
+ * @example rinex_met_read_write.cpp
+ * Reads an input RINEX Met file, writes out the same data. The input and
+ * output files should diff without error if everything is working right.
+ */
+
+/**
+ * @example rinex_met_test.cpp
+ * Reads an input RINEX Met file to test file data processing.
+ */
+
+/**
+ * @example rinex_nav_read_write.cpp
+ * Reads an input RINEX Nav file, writes out the same data. The input and
+ * output files should diff without error if everything is working right.
+ */
+
+/**
+ * @example rinex_nav_test.cpp
+ * Reads an input RINEX Nav file to test file data processing.
+ */
+
+/**
+ * @example rinex_obs_read_write.cpp
+ * Reads an input RINEX Obs file, writes out the same data. The input and
+ * output files should diff without error if everything is working right.
+ */
+
+/**
+ * @example rinex_obs_test.cpp
+ * Reads an input RINEX Obs file to test file data processing.
+ */
+
+/**
+ * @example stringutiltest.cpp
+ * Tests the string utilities.
+ */
+
+/**
+ * @example example1.cpp
+ * Demonstrates the most basic properties of DayTime.
+ */
+
+/**
+ * @example example2.cpp
+ * Demonstrates the most basic properties of RINEX input and output.
+ */
+
+/**
+ * @example example3.cpp
+ * Demonstrates simple manipulation of RINEX observables.
+ */
+
+/**
+ * @example example4.cpp
+ * Demonstrates the position solutions.
+ */
+
+/**
+ * @example example5.cpp
+ * Demonstrates how to use some very useful high-level GPSTk classes for positioning.
+ */
+
+/**
+ * @example example6.cpp
+ * Shows a minimalist way to process GPS data using GNSS Data Structures (@DataStructures.hpp).
+ */
+
+/**
+ * @example example7.cpp
+ * Demonstrates several different ways to process GPS data using GNSS Data Structures (@DataStructures.hpp).
+ */
+
+/**
+ * @example DayTimeToleranceTest.cpp
+ * Tests DayTime for user-defined comparison tolerances.
+ */
+
+/**
+ * @example DayTimeIncrementTest.cpp
+ * Tests DayTime's ability to reject accumulation of floating point error
+ * when incremented or decremented.
+ */
+
+/** EMACS **
+ * Local variables:
+ * mode: c++
+ * End:
+ */
+
+
+
diff --git a/dev/src/RTFileFrame.hpp b/dev/src/RTFileFrame.hpp
new file mode 100644
index 0000000..1a8fde6
--- /dev/null
+++ b/dev/src/RTFileFrame.hpp
@@ -0,0 +1,601 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RTFileFrame.hpp
+ * Realtime file frame
+ */
+
+#ifndef GPSTK_RTFILEFRAME_HPP
+#define GPSTK_RTFILEFRAME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <iterator>
+#include "FileSpec.hpp"
+#include "FileFilter.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup filedirgroup */
+ //@{
+
+ /// specifying internal enums and classes of a template class can be
+ /// problematic, so these are declared outside RTFileFrame
+ class RTFileFrameHelper
+ {
+ public:
+ enum GetRecordMode
+ {
+ Dumb = 0, ///< only tries to read once from current file
+ Smart = 1 ///< if cannot read, rolls files or waits for data
+ };
+
+ /**
+ * Whether additional file data can be read from the end of a file
+ * or not.
+ */
+ enum FileReadingMode
+ {
+ AppendedData = 0, ///< read only appended data.
+ FromTheBeginning = 1 ///< reread from the beginning every time.
+ };
+ };
+
+ // forward declaration of the RTFileFrame class
+ template <class FileStream, class FileData>
+ class RTFileFrame;
+
+ /**
+ * An iterator class for the RTFileFrame. Note how much it looks
+ * like std::istream_iterator except for a couple of differences..
+ */
+ template <class FileStream, class FileData>
+ class RTFileFrameIterator
+ {
+ public:
+ /// default constructor
+ RTFileFrameIterator()
+ : rtff(NULL)
+ {}
+
+ /// copy constructor
+ RTFileFrameIterator(const RTFileFrameIterator& right)
+ : rtff(right.rtff)
+ {}
+
+ /// destructor
+ virtual ~RTFileFrameIterator() {}
+
+ /// assignment operator
+ RTFileFrameIterator& operator=(const RTFileFrameIterator& r)
+ {
+ rtff = r.rtff;
+ return *this;
+ }
+
+ /// prefix increment of internal iterator
+ RTFileFrameIterator operator++()
+ {
+ rtff->getRecord();
+ return *this;
+ }
+
+ /// postfix increment of internal iterator
+ RTFileFrameIterator operator++(int)
+ {
+ RTFileFrameIterator<FileStream, FileData> temp = *this;
+ read();
+ return temp;
+ }
+
+ /// dereference object for current object
+ const FileData& operator*() const
+ {
+ return rtff->lastData;
+ }
+
+ /// dereference pointer for current object
+ const FileData* operator->() const
+ {
+ return &(rtff->lastData);
+ }
+
+ /// equality operator
+ bool operator==(const RTFileFrameIterator& right) const
+ {
+ if (rtff == right.rtff)
+ {
+ if (rtff == NULL)
+ return true;
+
+ if ((rtff->isOK == right.rtff->isOK) ||
+ (!rtff->isOK && (right.rtff->fileStream == rtff->fileStream)))
+ return true;
+ return false;
+ }
+ else if ((rtff == NULL) && (right.rtff))
+ return !right.rtff->isOK;
+ else if ((right.rtff == NULL) && (rtff))
+ return !rtff->isOK;
+ else
+ return false;
+ }
+
+ /// inequality operator
+ bool operator!=(const RTFileFrameIterator& right) const
+ { return !(*this == right);}
+
+ /// give RTFileFrame access to the
+ friend class RTFileFrame<FileStream, FileData>;
+
+ protected:
+ /// gets the next record
+ void read()
+ { rtff->getRecord(); }
+
+ private:
+ /// constructor for use by gpstk::RTFileFrame<FileStream, FileData>.
+ RTFileFrameIterator(gpstk::RTFileFrame<FileStream, FileData>& r)
+ : rtff(&r)
+ { rtff->getRecord(); }
+
+ /// gives access to the RTFileFrame being used
+ gpstk::RTFileFrame<FileStream, FileData>* rtff;
+ };
+
+ /**
+ * This class supports two iteration semantics.
+ * @code
+ * RTFileFrameIterator<SMODFStream, SMODFData> itr = rtf.begin();
+ * while(itr != rtf.end())
+ * {
+ * // do something
+ * cout << *itr << endl;
+ * itr++;
+ * }
+ * rtf.waitForData(10);
+ * @endcode
+ * and the legacy interface
+ * @code
+ * while(rtf.getRecord())
+ * {
+ * // use data() to get the last read record
+ * cout << rtf.data() << endl;
+ * }
+ * rtf.waitForData(10);
+ * @endcode
+ * The waitForData() call will ready the internal file stream
+ * for the next read. Remember that RTFileFrameIterator is a
+ * past-the-end style iterator, so you must reset it to begin() when
+ * it has finished otherwise you'll get no data. In Dumb mode,
+ * you will need to use the openNextDay() function to advance
+ * to tne next day.
+ * When you reach the end of a data set, there are three ways
+ * to restore the valid state of the RTFileFrame iteration:
+ * @code rtf.waitForData(900) @endcode
+ * This is the best option for either Smart or Dumb mode, ensuring
+ * that the file gets reopened correctly.
+ * @code rtf.openCurrentFile() @endcode
+ * Reopens the current file, destroying the current read position.
+ * In other words, don't use this in Smart mode.
+ * @code rtf.openNextDay() @endcode
+ * This will open the next day's file, obviously resetting
+ * the read position for the stream.
+ * @warning In Smart mode, you could potentially miss data when
+ * you pass to the start of a new day if data gets written to the
+ * file of the previous day.
+ * @warning DO NOT MIX THE TWO ITERATOR SEMANTICS. Doing so, you will
+ * definately miss data.
+ *
+ *
+ */
+ template <class FileStream, class FileData>
+ class RTFileFrame : public RTFileFrameHelper
+ {
+ public:
+ /**
+ * constructor
+ * @param fnFormat string defining how the files names are formatted
+ * @param beginning time of data to start streaming from
+ * @param ending time of data to stop streaming at
+ * @param frm mode used to read file (new data or all)
+ * @param grm mode used when end of file is reached (new data or all)
+ * @throw Exception an error ocurred
+ */
+ RTFileFrame(const gpstk::FileSpec& fnFormat,
+ const gpstk::DayTime& beginning = gpstk::DayTime(),
+ const gpstk::DayTime& ending = gpstk::DayTime::END_OF_TIME,
+ const FileReadingMode frm = AppendedData,
+ const GetRecordMode grm = Dumb)
+ throw(gpstk::Exception);
+
+ /// destructor
+ ~RTFileFrame();
+
+ /// Allows changing of the FileReadingMode
+ RTFileFrame& setFileReadingMode(const FileReadingMode f);
+
+ /// Allows changing of the GetRecordMode
+ RTFileFrame& setGetRecordMode(const GetRecordMode g);
+
+ /**
+ * Waits \a wait number of seconds, then reopens the file
+ * and sets the next read as appropriate for the FileReadingMode.
+ * @param wait number of seconds to sleep.
+ */
+ void waitForData(unsigned wait = 0);
+
+ /// returns true if the file currently being read from has
+ /// changed since its last read
+ bool hasFileChanged();
+
+ /// Returns true if all data for the given time has been read.
+ bool endOfDataSet();
+
+ /// end of data set iterator, useful for loops
+ RTFileFrameIterator<FileStream, FileData> end();
+
+ /// start of data set, set appropriately for the
+ /// given FileReadingMode. if in AppendedData mode, begin will
+ /// start at the next record that hasn't been read. if in
+ /// FromTheBeginning mode, begin starts at the start of the
+ /// current file.
+ RTFileFrameIterator<FileStream, FileData> begin();
+
+ /// reads the next record in the file
+ /// @return true if a record was read, otherwise false.
+ bool getRecord();
+
+ /// when in Dumb mode, use this function to advance to the next day.
+ void openNextDay();
+
+ /// returns the last read data
+ const FileData& data() const { return lastData;}
+
+ /// this traverses the RTFileFrame from begin() to end(), adding
+ /// each item to a list that gets returned. Using this will
+ /// change the file position, so getRecord and any iterators
+ /// will not be the same after this call.
+ std::list<FileData> getList() const;
+
+ /// this traverses the RTFileFrame from begin() to end(), adding
+ /// each item to a FileFilter that gets returned. Using this will
+ /// change the file position, so getRecord and any iterators
+ /// will not be the same after this call.
+ FileFilter<FileData> getFileFilter() const;
+
+ /// returns the name of the current file begin used
+ std::string getCurrentFile() const {return currentFileName;}
+
+ /// returns the current time used for finding files
+ gpstk::DayTime getCurrentTime() const {return currentTime;}
+
+ /// let the iterator see this class's insides
+ friend class RTFileFrameIterator<FileStream, FileData>;
+
+ /// reopens the file \a currentFileName
+ bool openCurrentFile();
+
+ /// close the file \a currentFileName
+ void closeCurrentFile();
+
+ protected:
+ /// the internal file stream for the internal iterator
+ FileStream* fileStream;
+
+ FileData lastData;
+ /// the last get position from the file
+ std::streampos lastPosition;
+ /// the last file to be read
+ std::string currentFileName;
+ /// the file spec for determining file names
+ gpstk::FileSpec fs;
+
+ gpstk::DayTime startTime, ///< start time for file searching
+ currentTime, ///< time last used for finding a file
+ endTime; ///< end time for file searching
+ /// the FileReadingMode for the reader
+ FileReadingMode readMode;
+ /// the GetRecordMode for the reader
+ GetRecordMode getMode;
+ /// keeps track of the last modify date for the last file read
+ struct stat fileInfo;
+ /// isOK is only false when the user needs to take action
+ /// to continue reading - by calling waitForData(),
+ /// openNextDay(), or openCurrentFile()
+ bool isOK;
+ };
+
+ //@}
+
+ template <class FileStream, class FileData>
+ RTFileFrame<FileStream, FileData>::
+ RTFileFrame<FileStream, FileData>(const gpstk::FileSpec& fnFormat,
+ const gpstk::DayTime& beginning,
+ const gpstk::DayTime& ending,
+ const RTFileFrameHelper::FileReadingMode frm,
+ const RTFileFrameHelper::GetRecordMode grm)
+ throw(gpstk::Exception)
+ : fileStream(NULL), fs(fnFormat), startTime(beginning),
+ currentTime(beginning), endTime(ending), readMode(frm), getMode(grm)
+ {
+ // zero out seconds
+ startTime.setMJDdate(floor(startTime.MJDdate()));
+ endTime.setMJDdate(floor(endTime.MJDdate()));
+ currentTime.setMJDdate(floor(currentTime.MJDdate()));
+
+ // set up the stream
+ openCurrentFile();
+ }
+
+ template <class FileStream, class FileData>
+ RTFileFrame<FileStream, FileData>::~RTFileFrame()
+ {
+ if (fileStream)
+ {
+ fileStream->close();
+ delete fileStream;
+ }
+ }
+
+ template <class FileStream, class FileData>
+ RTFileFrame<FileStream, FileData>&
+ RTFileFrame<FileStream, FileData> ::
+ setFileReadingMode(const RTFileFrameHelper::FileReadingMode f)
+ {
+ readMode = f;
+ return *this;
+ }
+
+ /// Allows changing of the GetRecordMode
+ template <class FileStream, class FileData>
+ RTFileFrame<FileStream, FileData>&
+ RTFileFrame<FileStream, FileData> ::
+ setGetRecordMode(const RTFileFrameHelper::GetRecordMode g)
+ {
+ getMode = g;
+ return *this;
+ }
+
+ template <class FileStream, class FileData>
+ void
+ RTFileFrame<FileStream, FileData>::waitForData(unsigned wait)
+ {
+ sleep(wait);
+ if(readMode == AppendedData)
+ {
+ // reopen the file and skip to where we left off - openCurrentFile
+ // will overwrite lastPosition...
+ std::streampos cachedPos = lastPosition;
+ if(openCurrentFile())
+ fileStream->seekg(cachedPos);
+ lastPosition = cachedPos;
+ }
+ else
+ {
+ // start from the beginning
+ openCurrentFile();
+ }
+ }
+
+ template <class FileStream, class FileData>
+ bool
+ RTFileFrame<FileStream, FileData>::hasFileChanged()
+ {
+ struct stat tempStat;
+ if (stat(currentFileName.c_str(), &tempStat))
+ return false;
+ if (tempStat.st_mtime != fileInfo.st_mtime)
+ return true;
+ else
+ return false;
+ }
+
+ template <class FileStream, class FileData>
+ bool
+ RTFileFrame<FileStream, FileData>::endOfDataSet()
+ {
+ if (currentTime > endTime)
+ return true;
+ else
+ return false;
+ }
+
+ template <class FileStream, class FileData>
+ RTFileFrameIterator<FileStream, FileData>
+ RTFileFrame<FileStream, FileData>::end()
+ {
+ return RTFileFrameIterator<FileStream, FileData>();
+ }
+
+ template <class FileStream, class FileData>
+ RTFileFrameIterator<FileStream, FileData>
+ RTFileFrame<FileStream, FileData>::begin()
+ {
+ if (readMode == AppendedData)
+ {
+ ;
+ }
+ else // if (readMode == FromTheBeginning)
+ {
+ openCurrentFile();
+ }
+ // this constructor does not read in the first record, so force it
+ // to do so before returning
+ RTFileFrameIterator<FileStream, FileData> toReturn(*this);
+ return toReturn;
+ }
+
+ template <class FileStream, class FileData>
+ bool
+ RTFileFrame<FileStream, FileData>::getRecord()
+ {
+ if (!isOK)
+ return false;
+
+ // is the stream still good to read?
+ if (*fileStream >> lastData)
+ {
+ lastPosition = fileStream->tellg();
+ return true;
+ }
+ // the last read failed - try opening the next file until
+ // today's file is reched or else return false
+ else
+ {
+ // read the next file or not?
+ if (getMode == Smart)
+ {
+ if (!endOfDataSet())
+ {
+ // still before today?
+ gpstk::DayTime today;
+ today.setYDoySod(today.year(), today.DOY(), 0);
+
+ if (currentTime < today)
+ {
+ openNextDay();
+ return getRecord();
+ }
+ // we've read through today, so just wait until tomorrow's
+ // data comes in - the user needs to call waitForData()
+ // to continue
+ else
+ isOK = false;
+ }
+ else
+ {
+ isOK = false;
+ }
+ } // if (getmode == smart)
+
+ // in dumb mode, the user needs to call openNextDay or
+ // openCurrentFile to continue.
+ else
+ {
+ isOK = false;
+ }
+ } // if (isOK)
+ return isOK;
+ }
+
+ template <class FileStream, class FileData>
+ void
+ RTFileFrame<FileStream, FileData>::openNextDay()
+ {
+ // open a new file for another day, if any.
+ currentTime += gpstk::DayTime::SEC_DAY;
+ if (!endOfDataSet())
+ openCurrentFile();
+ }
+
+ template <class FileStream, class FileData>
+ std::list<FileData>
+ RTFileFrame<FileStream, FileData>::getList() const
+ {
+ RTFileFrameIterator<FileStream, FileData> inputStream;
+ std::list<FileData> toReturn;
+ inputStream = begin();
+ while (inputStream != end())
+ {
+ toReturn.push_back(data());
+ }
+ return toReturn;
+ }
+
+ template <class FileStream, class FileData>
+ FileFilter<FileData>
+ RTFileFrame<FileStream, FileData>::getFileFilter() const
+ {
+ RTFileFrameIterator<FileStream, FileData> inputStream;
+ FileFilter<FileData> toReturn;
+ inputStream = begin();
+ while (inputStream != end())
+ {
+ toReturn.addData(data());
+ }
+ return toReturn;
+ }
+
+ template <class FileStream, class FileData>
+ bool
+ RTFileFrame<FileStream, FileData>::openCurrentFile()
+ {
+ isOK = false;
+ currentFileName = fs.toString(currentTime);
+ stat(currentFileName.c_str(), &fileInfo);
+ lastPosition = 0;
+
+ if(fileStream)
+ {
+ fileStream->close();
+ delete fileStream;
+ fileStream = NULL;
+ }
+
+ fileStream = new FileStream;
+ fileStream->open(currentFileName.c_str(), std::ios::in);
+ if (!fileStream->fail())
+ isOK = true;
+ return isOK;
+ }
+
+ template <class FileStream, class FileData>
+ void
+ RTFileFrame<FileStream, FileData>::closeCurrentFile()
+ {
+ if(fileStream)
+ {
+ fileStream->close();
+ delete fileStream;
+ fileStream = NULL;
+ }
+ isOK = false;
+ }
+
+} // namespace gpstk
+
+#endif // GPSTK_RTFILEFRAME_HPP
diff --git a/dev/src/RinexEphemerisStore.cpp b/dev/src/RinexEphemerisStore.cpp
new file mode 100644
index 0000000..fbfd160
--- /dev/null
+++ b/dev/src/RinexEphemerisStore.cpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file RinexEphemerisStore.cpp
+ * Read & store Rinex formated ephemeris data
+ */
+
+#include "RinexEphemerisStore.hpp"
+#include "MiscMath.hpp"
+#include "ECEF.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace gpstk::StringUtils;
+
+namespace gpstk
+{
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ void RinexEphemerisStore::loadFile(const std::string& filename)
+ throw(gpstk::FileMissingException)
+ {
+ try
+ {
+ RinexNavStream strm(filename.c_str());
+ if (!strm)
+ {
+ FileMissingException e("File " + filename + " could not be opened.");
+ GPSTK_THROW(e);
+ }
+
+ RinexNavHeader header;
+ strm >> header;
+
+ addFile(filename, header);
+
+ RinexNavData rec;
+ while(strm >> rec)
+ addEphemeris(rec);
+ }
+ catch (gpstk::Exception& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ } // end RinexEphemerisStore::load
+
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ void RinexEphemerisStore::dump(short detail, std::ostream& s) const
+ {
+ s << "Dump of RinexEphemerisStore:" << std::endl;
+ std::vector<std::string> fileNames = getFileNames();
+ std::vector<std::string>::const_iterator f=fileNames.begin();
+ for (f=fileNames.begin(); f!=fileNames.end(); f++)
+ s << *f << std::endl;
+
+ BCEphemerisStore::dump(detail, s);
+
+ } // end of RinexEphemerisStore::dump
+
+} // namespace gpstk
diff --git a/dev/src/RinexEphemerisStore.hpp b/dev/src/RinexEphemerisStore.hpp
new file mode 100644
index 0000000..811bac7
--- /dev/null
+++ b/dev/src/RinexEphemerisStore.hpp
@@ -0,0 +1,98 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexEphemerisStore.hpp
+ * Read and store Rinex formated ephemeris data
+ */
+
+#ifndef GPSTK_RINEX_EPHEMERIS_STORE_HPP
+#define GPSTK_RINEX_EPHEMERIS_STORE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <iostream>
+
+#include "BCEphemerisStore.hpp"
+#include "FileStore.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ /**
+ * This adds the interface to read Rinex files into a BCEphemerisStore
+ */
+ class RinexEphemerisStore : public BCEphemerisStore,
+ public FileStore<RinexNavHeader>
+ {
+ public:
+ /// Constructor.
+ RinexEphemerisStore() throw() {BCEphemerisStore();}
+
+ /// destructor
+ virtual ~RinexEphemerisStore() {}
+
+ /** Dump the store to cout.
+ * @param detail determines how much detail to include in the output
+ * 0 list of filenames with their start, stop times.
+ * 1 list of filenames with their start, stop times,
+ * other header information and prns/accuracy.
+ * 2 above, plus dump all the PVT data (use judiciously).
+ */
+ void dump(short detail=0, std::ostream& s=std::cout) const;
+
+ /// load the given Rinex file
+ void loadFile(const std::string& filename)
+ throw(FileMissingException);
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/RinexMetBase.hpp b/dev/src/RinexMetBase.hpp
new file mode 100644
index 0000000..6e3b5a8
--- /dev/null
+++ b/dev/src/RinexMetBase.hpp
@@ -0,0 +1,75 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexMetBase.hpp
+ * Base class for RINEX meteorological file data
+ */
+
+#ifndef GPSTK_RINEXMETBASE_HPP
+#define GPSTK_RINEXMETBASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @defgroup RinexMet RINEX meteorological files */
+ //@{
+
+ /**
+ * This class serves no purpose other than to make readable diagrams.
+ */
+ class RinexMetBase : public FFData
+ {
+ public:
+ /// Destructor per our coding standards
+ virtual ~RinexMetBase() {}
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/RinexMetData.cpp b/dev/src/RinexMetData.cpp
new file mode 100644
index 0000000..26c042f
--- /dev/null
+++ b/dev/src/RinexMetData.cpp
@@ -0,0 +1,284 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file RinexMetData.cpp
+ * Encapsulate RINEX meteorological file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetStream.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ const int RinexMetData::maxObsPerLine = 8;
+ const int RinexMetData::maxObsPerContinuationLine = 10;
+
+ void RinexMetData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ const int maxObsPerOutputLine = 8;
+ const int maxObsPerOutputContLine = 10;
+
+ RinexMetStream& strm = dynamic_cast<RinexMetStream&>(ffs);
+ string line;
+
+ // write the first line
+ line += " ";
+ line += rightJustify(asString<short>(time.year()),2,'0');
+ line += " ";
+ line += rightJustify(asString<short>(time.month()),2);
+ line += " ";
+ line += rightJustify(asString<short>(time.day()),2);
+ line += " ";
+ line += rightJustify(asString<short>(time.hour()),2);
+ line += " ";
+ line += rightJustify(asString<short>(time.minute()),2);
+ line += " ";
+ line += rightJustify(asString<short>(short(time.second())),2);
+
+ for (int i = 0;
+ (i < strm.header.obsTypeList.size()) &&
+ (i < maxObsPerOutputLine);
+ i++)
+ {
+ RinexMetHeader::RinexMetType thistype = strm.header.obsTypeList[i];
+ RinexMetMap::const_iterator itr = data.find(thistype);
+ if (itr == data.end())
+ {
+ FFStreamError err("Couldn't find data for " +
+ RinexMetHeader::convertObsType(strm.header.obsTypeList[i]));
+ GPSTK_THROW(err);
+ }
+ line += rightJustify(asString((*itr).second,1),7);
+ }
+
+ // do we need continuation lines?
+ if (strm.header.obsTypeList.size() > maxObsPerOutputLine)
+ {
+ for (int i = maxObsPerOutputLine;
+ i < strm.header.obsTypeList.size();
+ i++)
+ {
+
+ if (((i - maxObsPerOutputLine) % maxObsPerOutputContLine) == 0)
+ {
+ ffs << line << endl;
+ strm.lineNumber++;
+ line.clear();
+ line += string(4,' ');
+ }
+ RinexMetHeader::RinexMetType thistype = strm.header.obsTypeList[i];
+ RinexMetMap::const_iterator itr = data.find(thistype);
+ if (itr == data.end())
+ {
+ FFStreamError err("Couldn't find data for " +
+ RinexMetHeader::convertObsType(strm.header.obsTypeList[i]));
+ GPSTK_THROW(err);
+ }
+ line += rightJustify(asString((*itr).second,1),7);
+ }
+ }
+
+ ffs << line << endl;
+ strm.lineNumber++;
+ }
+
+ void RinexMetData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ RinexMetStream& strm = dynamic_cast<RinexMetStream&>(ffs);
+
+ if(!strm.headerRead)
+ strm >> strm.header;
+
+ RinexMetHeader& hdr = strm.header;
+
+ string line;
+ data.clear();
+
+ // this is to see whether or not we expect an EOF
+ // when we read this next line
+ if (hdr.obsTypeList.size() > maxObsPerLine)
+ strm.formattedGetLine(line);
+ else
+ strm.formattedGetLine(line, true);
+
+ processFirstLine(line, hdr);
+
+ time = parseTime(line);
+
+ while (data.size() < hdr.obsTypeList.size())
+ {
+ if (hdr.obsTypeList.size() - data.size() < maxObsPerContinuationLine)
+ strm.formattedGetLine(line, true);
+ else
+ strm.formattedGetLine(line);
+ processContinuationLine(line, hdr);
+ }
+
+ if (data.size() != hdr.obsTypeList.size())
+ {
+ FFStreamError e("Incorrect number of records");
+ GPSTK_THROW(e);
+ }
+ }
+
+ void RinexMetData::processFirstLine(const string& line,
+ const RinexMetHeader& hdr)
+ throw(FFStreamError)
+ {
+ try
+ {
+ for (int i = 0;
+ (i < maxObsPerLine) && (i < hdr.obsTypeList.size());
+ i++)
+ {
+ int currPos = i * 7 + 18;
+ data[hdr.obsTypeList[i]] = asDouble(line.substr(currPos,7));
+ }
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " + string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexMetData::processContinuationLine(const string& line,
+ const RinexMetHeader& hdr)
+ throw(FFStreamError)
+ {
+ try
+ {
+ int currentElements = data.size();
+ for (int i = currentElements;
+ (i < (maxObsPerContinuationLine + currentElements)) &&
+ (i < hdr.obsTypeList.size());
+ i++)
+ {
+ int currPos = ((i - maxObsPerLine) % maxObsPerContinuationLine) * 7
+ + 4;
+ data[hdr.obsTypeList[i]] = asDouble(line.substr(currPos,7));
+ }
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " + string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ DayTime RinexMetData::parseTime(const string& line) const
+ throw(FFStreamError)
+ {
+ try
+ {
+ // according to the RINEX spec, any 2 digit year 80 or greater
+ // is a year in the 1900s (1980-1999), under 80 is 2000s
+ const int YearRollover = 80;
+
+ // check if the spaces are in the right place - an easy way to check
+ // if there's corruption in the file
+ if ( (line[0] != ' ') ||
+ (line[3] != ' ') ||
+ (line[6] != ' ') ||
+ (line[9] != ' ') ||
+ (line[12] != ' ') ||
+ (line[15] != ' '))
+ {
+ FFStreamError e("Invalid time format");
+ GPSTK_THROW(e);
+ }
+
+ int year, month, day, hour, min;
+ double sec;
+
+ year = asInt( line.substr(1, 2 ));
+ month = asInt( line.substr(3, 3 ));
+ day = asInt( line.substr(6, 3 ));
+ hour = asInt( line.substr(9, 3 ));
+ min = asInt( line.substr(12, 3 ));
+ sec = asInt( line.substr(15, 3 ));
+
+ if (year < YearRollover)
+ {
+ year += 100;
+ }
+ year += 1900;
+
+ DayTime rv(year, month, day, hour, min, sec);
+ return rv;
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " + string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexMetData::dump(ostream& s) const
+ {
+ s << time << endl;
+
+ RinexMetMap::const_iterator itr;
+ for(itr = data.begin(); itr != data.end(); itr++)
+ {
+ s << RinexMetHeader::convertObsType((*itr).first)
+ << " " << (*itr).second << endl;
+ }
+ }
+
+
+
+} // end of namespace
diff --git a/dev/src/RinexMetData.hpp b/dev/src/RinexMetData.hpp
new file mode 100644
index 0000000..09c0dd2
--- /dev/null
+++ b/dev/src/RinexMetData.hpp
@@ -0,0 +1,149 @@
+#pragma ident "$Id$"
+
+/**
+ * @file RinexMetData.hpp
+ * Encapsulate RINEX meteorological file data, including I/O
+ */
+
+#ifndef GPSTK_RINEXMETDATA_HPP
+#define GPSTK_RINEXMETDATA_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <map>
+
+#include "DayTime.hpp"
+
+#include "FFStream.hpp"
+#include "RinexMetBase.hpp"
+#include "RinexMetHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexMet */
+ //@{
+
+ /**
+ * This class stores, reads, and writes RINEX MET records.
+ * @warning When writing a RinexMetData, the RinexMetStream::headerData
+ * must have the correct observation types set or else no data will
+ * be written.
+ *
+ * @sa rinex_met_read_write.cpp for an example.
+ * @sa rinex_met_test.cpp for an example.
+ * @sa RinexMetStream.
+ * @sa RinexMetHeader for information on writing RINEX met files.
+ */
+ class RinexMetData : public RinexMetBase
+ {
+
+ public:
+ RinexMetData()
+ : time(gpstk::DayTime::BEGINNING_OF_TIME)
+ {}
+
+ /// The next four lines is our common interface
+ /// RinexMetData is "data" so this function always returns true.
+ virtual bool isData(void) const {return true;}
+
+ /**
+ * A debug output function.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ /// less than operator, for use with STL sort()
+ bool operator<(const RinexMetData& right) const
+ { return (time < right.time); }
+
+ /// A map for storing one line of observations, mapping
+ /// the observation type to its value.
+ typedef std::map<RinexMetHeader::RinexMetType, double> RinexMetMap;
+
+ /** @name Rinex weather data
+ */
+ //@{
+ DayTime time; ///< The time this data was recorded.
+ RinexMetMap data; ///< The data itself in map form.
+ //@}
+
+ /// The maximum number of obs per line before you need a new line
+ static const int maxObsPerLine;
+ /// The max number of obs per continuation line before you need
+ /// a new line.
+ static const int maxObsPerContinuationLine;
+
+ protected:
+ /// Writes the met data to the file stream formatted correctly.
+ void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This function retrieves a RINEX MET record from the given FFStream.
+ * If an error is encountered in reading from the stream, the stream
+ * is returned to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ private:
+ /// Parses string \a line to get time and met data
+ void processFirstLine(const std::string& line,
+ const RinexMetHeader& hdr)
+ throw(FFStreamError);
+
+ /// Parses string \a line to get data on continuation lines.
+ void processContinuationLine(const std::string& line,
+ const RinexMetHeader& hdr)
+ throw(FFStreamError);
+
+ /// Parses the time portion of a line into a DayTime object.
+ DayTime parseTime(const std::string& line) const
+ throw(FFStreamError);
+ }; // class RinexMetData
+
+ //@}
+
+} // namespace
+
+
+#endif
diff --git a/dev/src/RinexMetFilterOperators.hpp b/dev/src/RinexMetFilterOperators.hpp
new file mode 100644
index 0000000..8562be1
--- /dev/null
+++ b/dev/src/RinexMetFilterOperators.hpp
@@ -0,0 +1,249 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexMetFilterOperators.hpp
+ * Operators for FileFilter using Rinex meteorological data
+ */
+
+#ifndef GPSTK_RINEXMETFILTEROPERATORS_HPP
+#define GPSTK_RINEXMETFILTEROPERATORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "DayTime.hpp"
+#include "FileFilter.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetHeader.hpp"
+
+#include <set>
+
+namespace gpstk
+{
+ /** @addtogroup RinexMet */
+ //@{
+
+ typedef std::unary_function<gpstk::RinexMetHeader, bool> RinexMetDataUnaryOperator;
+ typedef std::binary_function<gpstk::RinexMetData, gpstk::RinexMetData, bool> RinexMetDataBinaryOperator;
+
+ /// This compares all elements of the RinexMetData with less than
+ /// (only for those fields which the two obs data share).
+ struct RinexMetDataOperatorLessThanFull :
+ public RinexMetDataBinaryOperator
+ {
+ public:
+ /// The set is a set of RinexMetType that the two files have in
+ /// common. This is easily generated with the set_intersection
+ /// STL function. See difftools/rmwdiff.cpp for an example.
+ RinexMetDataOperatorLessThanFull
+ (const std::set<gpstk::RinexMetHeader::RinexMetType>& rmhset)
+ : obsSet(rmhset)
+ {}
+
+ bool operator()(const gpstk::RinexMetData& l,
+ const gpstk::RinexMetData& r) const
+ {
+ // compare the times, offsets, then only those elements
+ // that are common to both. this ignores the flags
+ // that are set to 0
+ if (l.time < r.time)
+ return true;
+ else if (l.time != r.time)
+ return false;
+
+ // then check that each observation has the same data
+ // for each item in the set of common observations
+ gpstk::RinexMetData::RinexMetMap::const_iterator
+ lItr, rItr;
+ std::set<gpstk::RinexMetHeader::RinexMetType>::const_iterator
+ obsItr = obsSet.begin();
+
+ while (obsItr != obsSet.end())
+ {
+ rItr = r.data.find(*obsItr);
+ if (rItr == r.data.end())
+ return false;
+
+ lItr = l.data.find(*obsItr);
+ if (lItr == l.data.end())
+ return false;
+
+ if ((*lItr).second < (*rItr).second)
+ return true;
+ if ((*lItr).second > (*rItr).second)
+ return false;
+
+ obsItr++;
+ }
+
+ // the data is either == or > at this point
+ return false;
+ }
+
+ private:
+ std::set<gpstk::RinexMetHeader::RinexMetType> obsSet;
+ };
+
+ /// Only compares times
+ struct RinexMetDataOperatorLessThanSimple :
+ public RinexMetDataBinaryOperator
+ {
+ public:
+ bool operator()(const gpstk::RinexMetData& l,
+ const gpstk::RinexMetData& r) const
+ {
+ if (l.time < r.time)
+ return true;
+ return false;
+ }
+ };
+
+ /// Only compares times
+ struct RinexMetDataOperatorEqualsSimple :
+ public RinexMetDataBinaryOperator
+ {
+ public:
+ bool operator()(const gpstk::RinexMetData& l,
+ const gpstk::RinexMetData& r) const
+ {
+ if (l.time == r.time)
+ return true;
+ return false;
+ }
+ };
+
+ /// Combines RinexMetHeaders into a single header, combining comments
+ /// and adding the appropriate RinexMetTypes. This assumes that
+ /// all the headers come from the same station for setting the other
+ /// header fields. After running touch() on a list of RinexMetHeader,
+ /// the internal theHeader will be the merged header data for
+ /// those files and obsSet will be the set of RinexMetTypes that
+ /// will be printed to the file.
+ struct RinexMetHeaderTouchHeaderMerge :
+ public RinexMetDataUnaryOperator
+ {
+ public:
+ RinexMetHeaderTouchHeaderMerge()
+ : firstHeader(true)
+ {}
+
+ bool operator()(const gpstk::RinexMetHeader& l)
+ {
+ if (firstHeader)
+ {
+ theHeader = l;
+ firstHeader = false;
+ }
+ else
+ {
+ std::set<gpstk::RinexMetHeader::RinexMetType> thisMetSet,
+ tempMetSet;
+ std::set<std::string> commentSet;
+ obsSet.clear();
+
+ // insert the comments to the set
+ // and let the set take care of uniqueness
+ copy(theHeader.commentList.begin(),
+ theHeader.commentList.end(),
+ inserter(commentSet, commentSet.begin()));
+ copy(l.commentList.begin(),
+ l.commentList.end(),
+ inserter(commentSet, commentSet.begin()));
+ // then copy the comments back into theHeader
+ theHeader.commentList.clear();
+ copy(commentSet.begin(), commentSet.end(),
+ inserter(theHeader.commentList,
+ theHeader.commentList.begin()));
+
+ // find the set intersection of the obs types
+ copy(theHeader.obsTypeList.begin(),
+ theHeader.obsTypeList.end(),
+ inserter(thisMetSet, thisMetSet.begin()));
+ copy(l.obsTypeList.begin(),
+ l.obsTypeList.end(),
+ inserter(tempMetSet, tempMetSet.begin()));
+ set_intersection(thisMetSet.begin(), thisMetSet.end(),
+ tempMetSet.begin(), tempMetSet.end(),
+ inserter(obsSet, obsSet.begin()));
+ // then copy the obsTypes back into theHeader
+ theHeader.obsTypeList.clear();
+ copy(obsSet.begin(), obsSet.end(),
+ inserter(theHeader.obsTypeList,
+ theHeader.obsTypeList.begin()));
+ }
+ return true;
+ }
+
+ bool firstHeader;
+ gpstk::RinexMetHeader theHeader;
+ std::set<gpstk::RinexMetHeader::RinexMetType> obsSet;
+ };
+
+
+ /// This filter will remove any data not within the specified time range.
+ struct RinexMetDataFilterTime : public RinexMetDataUnaryOperator
+ {
+ public:
+ RinexMetDataFilterTime(const gpstk::DayTime& startTime,
+ const gpstk::DayTime& endTime)
+ : start(startTime), end(endTime)
+ {}
+
+ bool operator() (const gpstk::RinexMetData& l) const
+ {
+ if ( (l.time < start) ||
+ (l.time >= end))
+ return true;
+ return false;
+ }
+
+ private:
+ gpstk::DayTime start, end;
+ };
+
+ //@}
+
+}
+
+
+#endif
diff --git a/dev/src/RinexMetHeader.cpp b/dev/src/RinexMetHeader.cpp
new file mode 100644
index 0000000..7198fb7
--- /dev/null
+++ b/dev/src/RinexMetHeader.cpp
@@ -0,0 +1,511 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file RinexMetHeader.cpp
+ * Encapsulate header of Rinex meteorological file data, including I/O
+ */
+
+#include <algorithm> // for find
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetStream.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ const int RinexMetHeader::maxObsPerLine = 9;
+
+ const string RinexMetHeader::versionString = "RINEX VERSION / TYPE";
+ const string RinexMetHeader::runByString = "PGM / RUN BY / DATE";
+ const string RinexMetHeader::commentString = "COMMENT";
+ const string RinexMetHeader::markerNameString = "MARKER NAME";
+ const string RinexMetHeader::markerNumberString = "MARKER NUMBER";
+ const string RinexMetHeader::obsTypeString = "# / TYPES OF OBSERV";
+ const string RinexMetHeader::sensorTypeString = "SENSOR MOD/TYPE/ACC";
+ const string RinexMetHeader::sensorPosString = "SENSOR POS XYZ/H";
+ const string RinexMetHeader::endOfHeader = "END OF HEADER";
+
+
+
+ std::string RinexMetHeader::bitString(unsigned long vb, char quote,
+ std::string sep)
+ {
+ unsigned long b = 1;
+ std::string rv;
+ while (b)
+ {
+ if (vb & b)
+ {
+ if (rv.length())
+ rv += sep;
+ if (quote)
+ rv += quote + bitsAsString((validBits)b) + quote;
+ else
+ rv += bitsAsString((validBits)b);
+ }
+ b <<= 1;
+ }
+ return rv;
+ }
+
+ void RinexMetHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ RinexMetStream& strm = dynamic_cast<RinexMetStream&>(ffs);
+
+ // since they want to output this header, let's store
+ // it internally for use by the data
+ strm.header = (*this);
+
+ // i'm casting out const here to set the correct required valid bits.
+ // deal with it =P
+
+
+ unsigned long allValid;
+ if (version == 2.0) allValid = allValid20;
+ else if (version == 2.1) allValid = allValid21;
+ else
+ {
+ FFStreamError err("Unknown RINEX version: " + asString(version,2));
+ err.addText("Make sure to set the version correctly.");
+ GPSTK_THROW(err);
+ }
+
+ if ((valid & allValid) != allValid)
+ {
+ string errstr("Incomplete or invalid header: missing: ");
+ errstr += bitString(allValid & ~valid);
+ FFStreamError err(errstr);
+ err.addText("Make sure you set all header valid bits for all of the available data.");
+ GPSTK_THROW(err);
+ }
+
+ string line;
+ // line by line, let's do this.
+ if (valid & versionValid)
+ {
+ line = rightJustify(asString(version,2), 9);
+ line += string(11, ' ');
+ line += leftJustify(fileType, 40);
+ line += versionString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & runByValid)
+ {
+ line = leftJustify(fileProgram,20);
+ line += leftJustify(fileAgency,20);
+ DayTime dt;
+ dt.setLocalTime();
+ string dat = dt.printf("%02m/%02d/%04Y %02H:%02M:%02S");
+ line += leftJustify(dat, 20);
+ line += runByString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & commentValid)
+ {
+ vector<string>::const_iterator itr = commentList.begin();
+ while (itr != commentList.end())
+ {
+ line = leftJustify((*itr), 60);
+ line += commentString;
+ strm << line << endl;
+ strm.lineNumber++;
+ itr++;
+ }
+ }
+ if (valid & markerNameValid)
+ {
+ line = leftJustify(markerName, 60);
+ line += markerNameString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & markerNumberValid)
+ {
+ line = leftJustify(markerNumber, 60);
+ line += markerNumberString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & obsTypeValid)
+ {
+ line = rightJustify(asString(obsTypeList.size()),6);
+ vector<RinexMetType>::const_iterator itr = obsTypeList.begin();
+ size_t numWritten = 0;
+ while (itr != obsTypeList.end())
+ {
+ numWritten++;
+ // stupid continuation lines =P
+ if ((numWritten % (maxObsPerLine+1)) == 0)
+ {
+ line += obsTypeString;
+ strm << line << endl;
+ strm.lineNumber++;
+ line = string(6,' ');
+ }
+ line += rightJustify(convertObsType(*itr), 6);
+ itr++;
+ }
+ // pad the line out to 60 chrs and add label
+ line += string(60 - line.size(), ' ');
+ line += obsTypeString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & sensorTypeValid)
+ {
+ // only write out the sensor types that are
+ // in the obsTypeList
+ vector<sensorType>::const_iterator itr = sensorTypeList.begin();
+ while (itr != sensorTypeList.end())
+ {
+ if (std::find(obsTypeList.begin(), obsTypeList.end(),
+ (*itr).obsType) != obsTypeList.end())
+ {
+ line = leftJustify((*itr).model, 20);
+ line += leftJustify((*itr).type, 20);
+ line += string(6, ' ');
+ line += rightJustify(asString((*itr).accuracy,1),7);
+ line += string(4, ' ');
+ line += convertObsType((*itr).obsType);
+ line += string(1, ' ');
+ line += sensorTypeString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ itr++;
+ }
+ }
+ if (valid & sensorPosValid)
+ {
+ // only write out the sensor positions that are
+ // in the obsTypeList
+ vector<sensorPosType>::const_iterator itr = sensorPosList.begin();
+ while (itr != sensorPosList.end())
+ {
+ if (std::find(obsTypeList.begin(), obsTypeList.end(),
+ (*itr).obsType) != obsTypeList.end())
+ {
+ line = rightJustify(asString((*itr).position[0],4),14);
+ line += rightJustify(asString((*itr).position[1],4),14);
+ line += rightJustify(asString((*itr).position[2],4),14);
+ line += rightJustify(asString((*itr).height,4),14);
+ line += string(1, ' ');
+ line += convertObsType((*itr).obsType);
+ line += string(1, ' ');
+ line += sensorPosString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ itr++;
+ }
+ }
+ if (valid & endValid)
+ {
+ line = string(60, ' ');
+ line += endOfHeader;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ }
+
+
+ void RinexMetHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+
+ RinexMetStream& strm = dynamic_cast<RinexMetStream&>(ffs);
+ // if already read, just return
+ if (strm.headerRead == true)
+ return;
+
+ valid = 0;
+
+ // clear out structures in case the last read was a partial header
+ // and there's cruft left
+ commentList.clear();
+ obsTypeList.clear();
+ sensorTypeList.clear();
+ sensorPosList.clear();
+
+ int numObs;
+
+ while (! (valid & endValid))
+ {
+ string line;
+ strm.formattedGetLine(line);
+
+ if (line.length()<60 || line.length()>81)
+ {
+ FFStreamError e("Bad line length");
+ GPSTK_THROW(e);
+ }
+
+ string thisLabel(line, 60, 20);
+
+ if (thisLabel == versionString)
+ {
+ version = asDouble(line.substr(0,20));
+ fileType = strip(line.substr(20,20));
+ if ( (fileType[0] != 'M') &&
+ (fileType[0] != 'm'))
+ {
+ FFStreamError e("This isn't a Rinex Met file");
+ GPSTK_THROW(e);
+ }
+ valid |= versionValid;
+ }
+ else if (thisLabel == runByString)
+ {
+ fileProgram = strip(line.substr(0,20));
+ fileAgency = strip(line.substr(20,20));
+ date = strip(line.substr(40,20));
+ valid |= runByValid;
+ }
+ else if (thisLabel == commentString)
+ {
+ commentList.push_back(strip(line.substr(0,60)));
+ valid |= commentValid;
+ }
+ else if (thisLabel == markerNameString)
+ {
+ markerName = strip(line.substr(0,60));
+ valid |= markerNameValid;
+ }
+ else if (thisLabel == markerNumberString)
+ {
+ markerNumber = strip(line.substr(0,20));
+ valid |= markerNumberValid;
+ }
+ else if (thisLabel == obsTypeString)
+ {
+ // read the first line
+ if (! (valid & obsTypeValid))
+ {
+ numObs = gpstk::StringUtils::asInt(line.substr(0,6));
+ for (int i = 0; (i < numObs) && (i < maxObsPerLine); i++)
+ {
+ int currPos = i * 6 + 6;
+ if (line.substr(currPos, 4) != string(4, ' '))
+ {
+ FFStreamError e("Format error for line type " +
+ obsTypeString);
+ GPSTK_THROW(e);
+ }
+
+ obsTypeList.push_back(convertObsType(line.substr(currPos + 4, 2)));
+ }
+ valid |= obsTypeValid;
+ }
+ // read continuation lines
+ else
+ {
+ int currentObsTypes = obsTypeList.size();
+ for (int i = currentObsTypes;
+ (i < numObs) && (i < (maxObsPerLine + currentObsTypes));
+ i++)
+ {
+ int currPos = (i % maxObsPerLine) * 6 + 6;
+ if (line.substr(currPos, 4) != string(4,' '))
+ {
+ FFStreamError e("Format error for line type " +
+ obsTypeString);
+ GPSTK_THROW(e);
+ }
+ obsTypeList.push_back(convertObsType(line.substr(currPos + 4, 2)));
+ }
+ }
+ }
+ else if (thisLabel == sensorTypeString)
+ {
+ if (line.substr(40,6) != string(6, ' '))
+ {
+ FFStreamError e("Format error for line type " +
+ sensorTypeString);
+ GPSTK_THROW(e);
+ }
+ sensorType st;
+ st.model = strip(line.substr(0,20));
+ st.type = strip(line.substr(20,20));
+ st.accuracy = asDouble(line.substr(46,9));
+ st.obsType = convertObsType(line.substr(57,2));
+
+ sensorTypeList.push_back(st);
+
+ // only set this valid if there are exactly
+ // the same number in both lists
+ if (sensorTypeList.size() == obsTypeList.size())
+ {
+ valid |= sensorTypeValid;
+ }
+ else
+ {
+ valid &= ~(long)sensorTypeValid;
+ }
+ }
+ else if (thisLabel == sensorPosString)
+ {
+ // read XYZ and H and obs type
+ sensorPosType sp;
+ sp.position[0] = asDouble(line.substr(0,14));
+ sp.position[1] = asDouble(line.substr(14,14));
+ sp.position[2] = asDouble(line.substr(28,14));
+ sp.height = asDouble(line.substr(42,14));
+
+ sp.obsType = convertObsType(line.substr(57,2));
+
+ sensorPosList.push_back(sp);
+
+ // only barometer is required, so
+ // set it valid only if you see that record.
+ if (sp.obsType == PR)
+ {
+ valid |= sensorPosValid;
+ }
+ }
+ else if (thisLabel == endOfHeader)
+ {
+ valid |= endValid;
+ }
+ else
+ {
+ FFStreamError e("Unknown header label " + thisLabel);
+ GPSTK_THROW(e);
+ }
+ }
+
+ unsigned long allValid;
+ if (version == 2.0) allValid = allValid20;
+ else if (version == 2.1) allValid = allValid21;
+ else
+ {
+ FFStreamError e("Unknown or unsupported RINEX version " +
+ asString(version));
+ GPSTK_THROW(e);
+ }
+
+ if ( (allValid & valid) != allValid)
+ {
+ string errstr("Incomplete or invalid header: missing: ");
+ errstr += bitString(allValid & ~valid);
+ FFStreamError err(errstr);
+ GPSTK_THROW(err);
+ }
+
+ // we got here, so something must be right...
+ strm.header = *this;
+ strm.headerRead = true;
+ }
+
+ void RinexMetHeader::dump(ostream& s) const
+ {
+ s << "Marker " << markerName << endl;
+
+ if (!obsTypeList.empty())
+ {
+ cout << "Obs types:" << endl;
+ vector<RinexMetType>::const_iterator itr = obsTypeList.begin();
+ while (itr != obsTypeList.end())
+ {
+ cout << convertObsType(*itr) << " ";
+ itr++;
+ }
+ cout << endl;
+ }
+ }
+
+
+ RinexMetHeader::RinexMetType
+ RinexMetHeader::convertObsType(const string& oneObs)
+ throw(FFStreamError)
+ {
+ if (oneObs == "PR") return PR;
+ else if (oneObs == "TD") return TD;
+ else if (oneObs == "HR") return HR;
+ else if (oneObs == "ZW") return ZW;
+ else if (oneObs == "ZD") return ZD;
+ else if (oneObs == "ZT") return ZT;
+ else if (oneObs == "WD") return WD;
+ else if (oneObs == "WS") return WS;
+ else if (oneObs == "RI") return RI;
+ else if (oneObs == "HI") return HI;
+ else
+ {
+ FFStreamError e("Bad obs type:" + oneObs);
+ GPSTK_THROW(e);
+ }
+ }
+
+ string RinexMetHeader::convertObsType(const RinexMetHeader::RinexMetType& oneObs)
+ throw(FFStreamError)
+ {
+ if (oneObs == PR) return "PR";
+ else if (oneObs == TD) return "TD";
+ else if (oneObs == HR) return "HR";
+ else if (oneObs == ZW) return "ZW";
+ else if (oneObs == ZD) return "ZD";
+ else if (oneObs == ZT) return "ZT";
+ else if (oneObs == WD) return "WD";
+ else if (oneObs == WS) return "WS";
+ else if (oneObs == RI) return "RI";
+ else if (oneObs == HI) return "HI";
+ else
+ {
+ FFStreamError e("Bad obs type:" + asString(oneObs));
+ GPSTK_THROW(e);
+ }
+ }
+
+
+} // namespace
diff --git a/dev/src/RinexMetHeader.hpp b/dev/src/RinexMetHeader.hpp
new file mode 100644
index 0000000..d52ec15
--- /dev/null
+++ b/dev/src/RinexMetHeader.hpp
@@ -0,0 +1,268 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexMetHeader.hpp
+ * Encapsulate header of Rinex meteorological file data, including I/O
+ */
+
+#ifndef GPSTK_RINEXMETHEADER_HPP
+#define GPSTK_RINEXMETHEADER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "StringUtils.hpp"
+#include "FFStream.hpp"
+#include "RinexMetBase.hpp"
+
+#include "Triple.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexMet */
+ //@{
+
+ /**
+ * This class models the RINEX MET header for a RINEX MET file.
+ * When writing data, this class determines what data gets written from
+ * a RinexMetData object to the RinexMetStream.
+ *
+ * @sa rinex_met_read_write.cpp for an example.
+ * @sa rinex_met_test.cpp for an example.
+ * @sa RinexMetHeader::obsTypeList for writing files.
+ * @sa RinexMetData and RinexMetStream.
+ */
+ class RinexMetHeader : public RinexMetBase
+ {
+ public:
+ /// Enum for the different types of data in this file.
+ enum RinexMetType
+ {
+ PR, ///< Pressure (mbar)
+ TD, ///< Dry temperature (deg C)
+ HR, ///< Relative humidity (percent)
+ ZW, ///< Wet zenith path delay (mm)
+ ZD, ///< Dry component of zenith path delay (mm)
+ ZT, ///< Total zenith path delay (mm)
+ WD, ///< Wind azmiuth from where the wind blows (deg)
+ WS, ///< Wind speed (m/s)
+ RI, ///< "Rain increment": Rain accumulation since last measurement (1/10 mm)
+ HI ///< Hail indicator non-zero: Hail detected since last mesaurement
+ };
+
+ /// Constructor
+ RinexMetHeader() : valid(0), version(2.1) {}
+
+ /// Destructor
+ virtual ~RinexMetHeader() {}
+
+ // The next four lines is our common interface
+ /// RinexMetHeader is a "header" so this function always returns true.
+ virtual bool isHeader(void) const {return true;}
+
+ /// A debug function that outputs the header to \a s.
+ virtual void dump(std::ostream& s) const;
+
+ /// sets the obs type array given an obs type line
+ static RinexMetType convertObsType(const std::string& oneObs)
+ throw(FFStreamError);
+
+ /// Converts a RinexMetType to its string equivalent.
+ static std::string convertObsType(const RinexMetType& oneObs)
+ throw(FFStreamError);
+
+ /// Tell me, Am I valid?
+ unsigned long valid;
+
+ /// These are validity bits used in checking the RINEX MET header.
+ enum validBits
+ {
+ versionValid = 0x01, ///< Set if the RINEX version is valid.
+ runByValid = 0x02, ///< Set if the Run-by value is valid.
+ commentValid = 0x04, ///< Set if the comments are valid. Very subjective
+ markerNameValid = 0x08, ///< Set if the Marker Name is valid.
+ markerNumberValid = 0x010, ///< Set if the Marker Number is valid.
+ obsTypeValid = 0x020, ///< Set if Num/Types of Obs is valid.
+ sensorTypeValid = 0x040, ///< Set if Sensor Mod/Type/Acc is valid.
+ sensorPosValid = 0x080, ///< Set if Sensor position is valid.
+
+
+ endValid = 0x080000000, ///< Set if the end value is valid.
+
+ /// This bitset checks that all required header items are
+ /// available for a Rinex2.0 file
+ allValid20 = 0x0800000EB,
+ /// This bitset checks that all required header items are
+ /// available for a Rinex2.1 file
+ allValid21 = 0x0800000EB
+ };
+
+
+ static inline std::string bitsAsString(validBits b)
+ {
+ switch (b)
+ {
+ case versionValid:
+ return versionString;
+ case runByValid:
+ return runByString;
+ case commentValid:
+ return commentString;
+ case markerNameValid:
+ return markerNameString;
+ case markerNumberValid:
+ return markerNumberString;
+ case obsTypeValid:
+ return obsTypeString;
+ case sensorTypeValid:
+ return sensorTypeString;
+ case sensorPosValid:
+ return sensorPosString;
+ case endValid:
+ return endOfHeader;
+ }
+
+ return "*UNKNOWN/INVALID BITS*";
+ }
+
+ /* @return a string composed the RINEX header strings
+ * represented by the validBits set in vb, surrounded by the
+ * quote character, separated by sep.
+ * @param vb bit field with valid bits set
+ * @param quote quote character to use around RINEX header strings.
+ * @param sep separator used between rinex header strings.
+ */
+ static std::string bitString(unsigned long vb, char quote='\"',
+ std::string sep=", ");
+
+
+ /// Struct for holding information about a sensor
+ struct sensorType
+ {
+ std::string model; ///< The manufacturer of the sensor
+ std::string type; ///< The specific type of sensor
+ double accuracy; ///< The accuracy of the sensor.
+ RinexMetType obsType; ///< The obs type this sensor corresponds to.
+ };
+
+ /// Struct for holding info about a sensor position
+ struct sensorPosType
+ {
+ /**
+ * XYZ and height of sensor coordinates.
+ * Use ITRF ro WGS-84 coordinates.
+ */
+ gpstk::Triple position;
+ double height;
+ /// The obs type of the sensor this position corresponds to.
+ RinexMetType obsType;
+ };
+
+ /** @name HeaderValues
+ */
+ //@{
+ double version; ///< RINEX Version
+
+ std::string fileType; ///< The type of file it is.
+ std::string fileProgram; ///< The program that generated it
+ std::string fileAgency; ///< The group who generated it
+ std::string date; ///< When the file was written
+ std::vector<std::string> commentList; ///< A list of comments
+ std::string markerName; ///< The name of the location
+ std::string markerNumber; ///< The number of the location
+
+ /**
+ * A list of obs types in the file.
+ * @warning This variable determines what data gets written to
+ * an output RinexObsStream. Set this with the RinexMetTypes
+ * that you want written to the file.
+ */
+ std::vector<RinexMetType> obsTypeList;
+ std::vector<sensorType> sensorTypeList; ///< A list of sensors used in the file
+ std::vector<sensorPosType> sensorPosList; ///< A list of sensor positions used in the file
+
+ //@}
+
+ static const int maxObsPerLine; ///< Holds the max records per line
+
+ /** @name FormattingStrings
+ */
+ //@{
+ static const std::string versionString; ///< "RINEX VERSION / TYPE"
+ static const std::string runByString; ///< "PGM / RUN BY / DATE"
+ static const std::string commentString; ///< "COMMENT"
+ static const std::string markerNameString; ///< "MARKER NAME"
+ static const std::string markerNumberString; ///< "MARKER NUMBER"
+ static const std::string obsTypeString; ///< "# / TYPES OF OBSERV"
+ static const std::string sensorTypeString; ///< "SENSOR MOD/TYPE/ACC"
+ static const std::string sensorPosString; ///< "SENSOR POS XYZ/H"
+ static const std::string endOfHeader; ///< "END OF HEADER"
+ //@}
+
+ protected:
+ /// Writes the RINEX Met header to the stream \a s.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This function reads the RINEX MET header from the given FFStream.
+ * If an error is encountered in reading from the stream, the stream
+ * is reset to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+
+ }; // class RinexMetHeader
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/RinexMetStream.hpp b/dev/src/RinexMetStream.hpp
new file mode 100644
index 0000000..e19630c
--- /dev/null
+++ b/dev/src/RinexMetStream.hpp
@@ -0,0 +1,113 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexMetStream.hpp
+ * File stream for RINEX meteorological files
+ */
+
+#ifndef GPSTK_RINEXMETSTREAM_HPP
+#define GPSTK_RINEXMETSTREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFTextStream.hpp"
+#include "RinexMetHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexMet */
+ //@{
+
+ /**
+ * This class performs file i/o on a RINEX MET file for the
+ * RinexMetHeader and RinexMetData classes.
+ *
+ * @sa rinex_met_read_write.cpp for an example.
+ * @sa rinex_met_test.cpp for an example.
+ * @sa RinexMetData.
+ * @sa RinexMetHeader for information on writing RINEX met files.
+ *
+ * @warning When writing RinexMetData, the internal
+ * RinexMetStream::headerData must have the correct observation
+ * types set for what you want to write out. If you don't set any,
+ * no data will be written. See RinexMetHeader for more information
+ * on this.
+ */
+ class RinexMetStream : public FFTextStream
+ {
+ public:
+ /// default constructor
+ RinexMetStream()
+ : headerRead(false)
+ {}
+
+ /** Constructor
+ * Opens a file named \a fn using ios::openmode \a mode.
+ */
+ RinexMetStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {};
+
+ /// Destructor
+ virtual ~RinexMetStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = RinexMetHeader();
+ }
+
+ /// RINEX met header for this file.
+ RinexMetHeader header;
+
+ /// Flag showing whether or not the header has been read.
+ bool headerRead;
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/RinexNavBase.hpp b/dev/src/RinexNavBase.hpp
new file mode 100644
index 0000000..35afaa3
--- /dev/null
+++ b/dev/src/RinexNavBase.hpp
@@ -0,0 +1,75 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexNavBase.hpp
+ * Base class for RINEX Navigation data
+ */
+
+#ifndef GPSTK_RINEXNAVBASE_HPP
+#define GPSTK_RINEXNAVBASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @defgroup RinexNav RINEX navigation files */
+ //@{
+
+ /**
+ * This class serves no purpose other than to make readable diagrams.
+ */
+ class RinexNavBase : public FFData
+ {
+ public:
+ /// in deference to our coding standards, this is declared virtual
+ virtual ~RinexNavBase() {}
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/RinexNavData.cpp b/dev/src/RinexNavData.cpp
new file mode 100644
index 0000000..92beb3e
--- /dev/null
+++ b/dev/src/RinexNavData.cpp
@@ -0,0 +1,575 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file RinexNavData.cpp
+ * Encapsulates RINEX Navigation data
+ */
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "icd_200_constants.hpp"
+
+namespace gpstk
+{
+ using namespace gpstk::StringUtils;
+ using namespace std;
+
+ RinexNavData::RinexNavData(const EngEphemeris& ee)
+ {
+ time = ee.getEpochTime();
+ PRNID = ee.getPRNID();
+ HOWtime = long(ee.getHOWTime(1));
+ weeknum = ee.getFullWeek();
+ codeflgs = ee.getCodeFlags();
+ accuracy = ee.getAccuracy();
+ health = ee.getHealth();
+ L2Pdata = ee.getL2Pdata();
+ IODC = ee.getIODC();
+ IODE = ee.getIODE();
+
+ Toc = ee.getToc();
+ af0 = ee.getAf0();
+ af1 = ee.getAf1();
+ af2 = ee.getAf2();
+ Tgd = ee.getTgd();
+
+ Cuc = ee.getCuc();
+ Cus = ee.getCus();
+ Crc = ee.getCrc();
+ Crs = ee.getCrs();
+ Cic = ee.getCic();
+ Cis = ee.getCis();
+
+ Toe = ee.getToe();
+ M0 = ee.getM0();
+ dn = ee.getDn();
+ ecc = ee.getEcc();
+ Ahalf = ee.getAhalf();
+ OMEGA0 = ee.getOmega0();
+ i0 = ee.getI0();
+ w = ee.getW();
+ OMEGAdot = ee.getOmegaDot();
+ idot = ee.getIDot();
+ fitint = ee.getFitInterval();
+ }
+
+ void RinexNavData::reallyPutRecord(FFStream& ffs) const
+ throw(exception, FFStreamError, StringException)
+ {
+ RinexNavStream& strm = dynamic_cast<RinexNavStream&>(ffs);
+
+ strm << putPRNEpoch() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit1() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit2() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit3() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit4() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit5() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit6() << endl;
+ strm.lineNumber++;
+ strm << putBroadcastOrbit7(strm.header.version) << endl;
+ strm.lineNumber++;
+ }
+
+ void RinexNavData::reallyGetRecord(FFStream& ffs)
+ throw(exception, FFStreamError, StringException)
+ {
+ RinexNavStream& strm = dynamic_cast<RinexNavStream&>(ffs);
+
+ // If the header hasn't been read, read it...
+ if(!strm.headerRead)
+ strm >> strm.header;
+
+ string line;
+
+ strm.formattedGetLine(line, true);
+ getPRNEpoch(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit1(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit2(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit3(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit4(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit5(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit6(line);
+
+ strm.formattedGetLine(line);
+ getBroadcastOrbit7(line);
+ }
+
+ void RinexNavData::dump(ostream& s) const
+ {
+ s << "PRN: " << setw(2) << PRNID
+ << " TOE: " << time
+ << " TOC: " << setw(4) << weeknum << " "
+ << fixed << setw(10) << setprecision(3) << Toc
+ << " IODE: " << setw(4) << int(IODE) // IODE should be int
+ << " HOWtime: " << setw(6) << HOWtime // HOW should be double
+ << endl;
+ //<< ios::hex << IODE << " HOWtime: " << HOWtime << endl; ?? IODE is double
+ }
+
+ RinexNavData::operator EngEphemeris() const throw()
+ {
+ EngEphemeris ee;
+
+ // there's no TLM word in RinexNavData, so it's set to 0.
+ // likewise, there's no AS alert or tracker.
+ // Also, in Rinex, the accuracy is in meters, and setSF1 expects
+ // the accuracy flag. We'll give it zero and pass the accuracy
+ // separately via the setAccuracy() method.
+ ee.setSF1(0, HOWtime, 0, weeknum, codeflgs, 0, health,
+ short(IODC), L2Pdata, Tgd, Toc, af2, af1, af0, 0, PRNID);
+ ee.setSF2(0, HOWtime, 0, short(IODE), Crs, dn, M0, Cuc, ecc, Cus, Ahalf,
+ Toe, (fitint > 4) ? 1 : 0);
+ ee.setSF3(0, HOWtime, 0, Cic, OMEGA0, Cis, i0, Crc, w, OMEGAdot,
+ idot);
+
+ ee.setAccuracy(accuracy);
+
+ return ee;
+ }
+
+ list<double> RinexNavData::toList() const
+ {
+ list<double> l;
+
+ l.push_back(PRNID);
+ l.push_back(HOWtime);
+ l.push_back(weeknum);
+ l.push_back(codeflgs);
+ l.push_back(accuracy);
+ l.push_back(health);
+ l.push_back(L2Pdata);
+ l.push_back(IODC);
+ l.push_back(IODE);
+ l.push_back(Toc);
+ l.push_back(af0);
+ l.push_back(af1);
+ l.push_back(af2);
+ l.push_back(Tgd);
+ l.push_back(Cuc);
+ l.push_back(Cus);
+ l.push_back(Crc);
+ l.push_back(Crs);
+ l.push_back(Cic);
+ l.push_back(Cis);
+ l.push_back(Toe);
+ l.push_back(M0);
+ l.push_back(dn);
+ l.push_back(ecc);
+ l.push_back(Ahalf);
+ l.push_back(OMEGA0);
+ l.push_back(i0);
+ l.push_back(w);
+ l.push_back(OMEGAdot);
+ l.push_back(idot);
+ l.push_back(fitint);
+
+ return l;
+ }
+
+ string RinexNavData::putPRNEpoch(void) const
+ throw(StringException)
+ {
+ string line;
+ line += rightJustify(asString(PRNID), 2);
+ line += string(1, ' ');
+ // year is padded with 0s but none of the rest are
+ line += rightJustify(asString<short>(time.year()), 2, '0');
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(time.month()), 2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(time.day()), 2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(time.hour()), 2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(time.minute()), 2);
+ line += rightJustify(asString(time.second(), 1), 5);
+ line += string(1, ' ');
+ line += doub2for(af0, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(af1, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(af2, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit1(void) const
+ throw(StringException)
+ {
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(IODE, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Crs, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(dn, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(M0, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit2(void) const
+ throw(StringException)
+ {
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(Cuc, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(ecc, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Cus, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Ahalf, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit3(void) const
+ throw(StringException)
+ {
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(Toe, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Cic, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(OMEGA0, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Cis, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit4(void) const
+ throw(StringException)
+ {
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(i0, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Crc, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(w, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(OMEGAdot, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit5(void) const
+ throw(StringException)
+ {
+ // Internally (RinexNavData and EngEphemeris), weeknum is the week of HOW
+ // In Rinex *files*, weeknum is the week of TOE
+ double wk=double(weeknum);
+ if(HOWtime - Toe > DayTime::HALFWEEK)
+ wk++;
+ else if(HOWtime - Toe < -(DayTime::HALFWEEK))
+ wk--;
+
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(idot, 18, 2);
+ line += string(1, ' ');
+ line += doub2for((double)codeflgs, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(wk, 18, 2);
+ line += string(1, ' ');
+ line += doub2for((double)L2Pdata, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit6(void) const
+ throw(StringException)
+ {
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(accuracy, 18, 2);
+ line += string(1, ' ');
+ line += doub2for((double)health, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(Tgd, 18, 2);
+ line += string(1, ' ');
+ line += doub2for(IODC, 18, 2);
+ return line;
+ }
+
+ string RinexNavData::putBroadcastOrbit7(const double ver) const
+ throw(StringException)
+ {
+ string line;
+ line += string(3, ' ');
+ line += string(1, ' ');
+ line += doub2for(HOWtime, 18, 2);
+
+ if (ver >= 2.1)
+ {
+ line += string(1, ' ');
+ line += doub2for(fitint, 18, 2);
+ }
+ return line;
+ }
+
+ void RinexNavData::getPRNEpoch(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ // check for spaces in the right spots...
+ for (int i = 2; i <= 17; i += 3)
+ if (currentLine[i] != ' ')
+ throw(FFStreamError("Badly formatted line"));
+
+ PRNID = asInt(currentLine.substr(0,2));
+
+ short yr = asInt(currentLine.substr(2,3));
+ short mo = asInt(currentLine.substr(5,3));
+ short day = asInt(currentLine.substr(8,3));
+ short hr = asInt(currentLine.substr(11,3));
+ short min = asInt(currentLine.substr(14,3));
+ double sec = asDouble(currentLine.substr(17,5));
+
+ // years 80-99 represent 1980-1999
+ const int rolloverYear = 80;
+ if (yr < rolloverYear)
+ yr += 100;
+ yr += 1900;
+
+ // Real Rinex has epochs 'yy mm dd hr 59 60.0' surprisingly often....
+ double ds=0;
+ if(sec >= 60.) { ds=sec; sec=0.0; }
+ time = DayTime(yr,mo,day,hr,min,sec);
+ if(ds != 0) time += ds;
+
+ Toc = time.GPSsecond();
+ af0 = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ af1 = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ af2 = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit1(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ IODE = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ Crs = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ dn = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ M0 = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit2(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ Cuc = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ ecc = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ Cus = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ Ahalf = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit3(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ Toe = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ Cic = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ OMEGA0 = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ Cis = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit4(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ i0 = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ Crc = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ w = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ OMEGAdot = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit5(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ double codeL2, L2P, toe_wn;
+
+ idot = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ codeL2 = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ toe_wn = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ L2P = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+
+ codeflgs = (short) codeL2;
+ L2Pdata = (short) L2P;
+ weeknum = (short) toe_wn;
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit6(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ double SV_acc, SV_health;
+
+ accuracy = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ SV_health = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+ Tgd = gpstk::StringUtils::for2doub(currentLine.substr(41,19),19);
+ IODC = gpstk::StringUtils::for2doub(currentLine.substr(60,19),19);
+
+
+ health = (short) SV_health;
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ void RinexNavData::getBroadcastOrbit7(const string& currentLine)
+ throw(StringException, FFStreamError)
+ {
+ try
+ {
+ double HOW_sec;
+
+ HOW_sec = gpstk::StringUtils::for2doub(currentLine.substr(3,19),19);
+ fitint = gpstk::StringUtils::for2doub(currentLine.substr(22,19),19);
+
+ HOWtime = (long) HOW_sec;
+
+ // In Rinex *files*, weeknum is the week of TOE
+ // Internally (RinexNavData and EngEphemeris), weeknum is the week of HOW
+ if(HOWtime - Toe > DayTime::HALFWEEK)
+ weeknum--;
+ else if(HOWtime - Toe < -(DayTime::HALFWEEK))
+ weeknum++;
+
+ // Some Rinex files have HOW < 0
+ while(HOWtime < 0) {
+ HOWtime += (long) DayTime::FULLWEEK;
+ weeknum--;
+ }
+
+ }
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " +
+ string(e.what()));
+ GPSTK_THROW(err);
+ }
+ }
+
+} // end of namespace
diff --git a/dev/src/RinexNavData.hpp b/dev/src/RinexNavData.hpp
new file mode 100644
index 0000000..b3947cd
--- /dev/null
+++ b/dev/src/RinexNavData.hpp
@@ -0,0 +1,254 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexNavData.hpp
+ * Encapsulates RINEX Navigation data
+ */
+
+#ifndef RINEXNAVDATA_HPP
+#define RINEXNAVDATA_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <list>
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "FFStream.hpp"
+#include "RinexNavBase.hpp"
+#include "EngEphemeris.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexNav */
+ //@{
+
+ /**
+ * This class models a RINEX NAV record.
+ *
+ * \sa rinex_nav_test.cpp and rinex_nav_read_write.cpp for examples.
+ * \sa gpstk::RinexNavHeader and gpstk::RinexNavStream classes.
+ */
+ class RinexNavData : public RinexNavBase
+ {
+ public:
+ /**
+ * Constructor
+ * @warning CHECK THE PRNID TO SEE IF THIS DATA IS
+ * VALID BEFORE USING!!
+ */
+ RinexNavData(void)
+ : time(gpstk::DayTime::BEGINNING_OF_TIME), PRNID(-1), fitint(4)
+ {}
+
+ /// Initializes the nav data with an EngEphemeris
+ RinexNavData(const EngEphemeris& ee);
+
+ /// destructor
+ virtual ~RinexNavData() {}
+
+ // The next four lines is our common interface
+ /// RinexNavData is "data" so this function always returns true.
+ virtual bool isData(void) const {return true;}
+
+ /**
+ * A debug output function.
+ * Prints the PRN id and the IODC for this record.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ /**
+ * Converts this RinexNavData to an EngEphemeris object.
+ */
+ operator EngEphemeris() const throw();
+
+ /**
+ * Converts the (non-DayTime) data to a list for easy
+ * comparison operators.
+ */
+ std::list<double> toList() const;
+
+ /** @name Epochdata
+ */
+ //@{
+ DayTime time; ///< Time according to the record.
+ short PRNID; ///< SV PRN ID
+ long HOWtime; ///< Time of subframe 1-3 (sec of week)
+ short weeknum; ///< GPS full week number that corresponds
+ ///< to the HOWtime of SF1
+ ///< (NB in Rinex files, week number corresponds to TOE)
+ short codeflgs; ///< L2 codes
+ double accuracy; ///< SV accuracy (m)
+ short health; ///< SV health
+ short L2Pdata; ///< L2 P data flag
+ double IODC; ///< Index of data-clock
+ double IODE; ///< Index of data-eph
+ //@}
+
+ /** @name ClockInformation
+ */
+ //@{
+ double Toc; ///< Clock epoch (sec of week) (found in epoch line of Rinex navigation files)
+ double af0; ///< SV clock error (sec)
+ double af1; ///< SV clock drift (sec/sec)
+ double af2; ///< SV clock drift rate (sec/sec**2)
+ double Tgd; ///< Group delay differential (sec)
+ //@}
+
+ /** @name HarmonicPerturbations
+ */
+ //@{
+ double Cuc; ///< Cosine latitude (rad)
+ double Cus; ///< Sine latitude (rad)
+ double Crc; ///< Cosine radius (m)
+ double Crs; ///< Sine radius (m)
+ double Cic; ///< Cosine inclination (rad)
+ double Cis; ///< Sine inclination (rad)
+ //@}
+
+ /** @name MajorEphemerisParameters
+ */
+ //@{
+ double Toe; ///< Ephemeris epoch (sec of week)
+ double M0; ///< Mean anomaly (rad)
+ double dn; ///< Correction to mean motion (rad/sec)
+ double ecc; ///< Eccentricity
+ double Ahalf; ///< SQRT of semi-major axis (m**1/2)
+ double OMEGA0; ///< Rt ascension of ascending node (rad)
+ double i0; ///< Inclination (rad)
+ double w; ///< Argument of perigee (rad)
+ double OMEGAdot; ///< Rate of Rt ascension (rad/sec)
+ double idot; ///< Rate of inclination angle (rad/sec)
+ double fitint; ///< Fit interval
+ //@}
+
+ private:
+ /// Parses string \a currentLine to obtain PRN id and epoch.
+ void getPRNEpoch(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /** @name OrbitParameters
+ * Obtain orbit parameters from strint \a currentLine.
+ */
+ //@{
+ /// Reads line 1 of the Nav Data record
+ void getBroadcastOrbit1(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /// Reads line 2 of the Nav Data record
+ void getBroadcastOrbit2(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /// Reads line 3 of the Nav Data record
+ void getBroadcastOrbit3(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /// Reads line 4 of the Nav Data record
+ void getBroadcastOrbit4(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /// Reads line 5 of the Nav Data record
+ void getBroadcastOrbit5(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /// Reads line 6 of the Nav Data record
+ void getBroadcastOrbit6(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ /// Reads line 7 of the Nav Data record
+ void getBroadcastOrbit7(const std::string& currentLine)
+ throw(gpstk::StringUtils::StringException, FFStreamError);
+ //@}
+
+ /// generates a line to be output to a file for the PRN/epoch line
+ std::string putPRNEpoch(void) const
+ throw(gpstk::StringUtils::StringException);
+ /** @name OrbitParameters
+ * Generate orbit parameter lines from data to be output to a file
+ */
+ //@{
+ /// Writes line 7 of the Nav Data record
+ std::string putBroadcastOrbit1(void) const
+ throw(gpstk::StringUtils::StringException);
+ /// Writes line 7 of the Nav Data record
+ std::string putBroadcastOrbit2(void) const
+ throw(gpstk::StringUtils::StringException);
+ /// Writes line 7 of the Nav Data record
+ std::string putBroadcastOrbit3(void) const
+ throw(gpstk::StringUtils::StringException);
+ /// Writes line 7 of the Nav Data record
+ std::string putBroadcastOrbit4(void) const
+ throw(gpstk::StringUtils::StringException);
+ /// Writes line 7 of the Nav Data record
+ std::string putBroadcastOrbit5(void) const
+ throw(gpstk::StringUtils::StringException);
+ /// Writes line 7 of the Nav Data record
+ std::string putBroadcastOrbit6(void) const
+ throw(gpstk::StringUtils::StringException);
+ /// Writes line 7 of the Nav Data record
+ /// @warning Pass in version to decide wheter or not
+ /// to write fit interval
+ std::string putBroadcastOrbit7(const double ver) const
+ throw(gpstk::StringUtils::StringException);
+ //@}
+
+ protected:
+ /// Outputs the record to the FFStream \a s.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This function retrieves a RINEX NAV record from the given FFStream.
+ * If an error is encountered in reading from the stream, the stream
+ * is returned to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+ }; // class RinexNavData
+
+ //@}
+
+} // namespace
+
+
+#endif
diff --git a/dev/src/RinexNavFilterOperators.hpp b/dev/src/RinexNavFilterOperators.hpp
new file mode 100644
index 0000000..70480f2
--- /dev/null
+++ b/dev/src/RinexNavFilterOperators.hpp
@@ -0,0 +1,240 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexNavFilterOperators.hpp
+ * Operators for FileFilter using Rinex navigation data
+ */
+
+#ifndef GPSTK_RINEXNAVFILTEROPERATORS_HPP
+#define GPSTK_RINEXNAVFILTEROPERATORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileFilter.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavHeader.hpp"
+
+#include <set>
+
+namespace gpstk
+{
+ /** @addtogroup RinexNav */
+ //@{
+
+ /// This compares all elements of the RinexNavData with less than.
+ struct RinexNavDataOperatorLessThanFull :
+ public std::binary_function<gpstk::RinexNavData,
+ gpstk::RinexNavData, bool>
+ {
+ public:
+ bool operator()(const gpstk::RinexNavData& l,
+ const gpstk::RinexNavData& r) const
+ {
+ gpstk::DayTime lXmitTime(0.L);
+ lXmitTime.setGPSfullweek(l.weeknum, (double)l.HOWtime);
+ gpstk::DayTime rXmitTime(0.L);
+ rXmitTime.setGPSfullweek(r.weeknum, (double)r.HOWtime);
+
+ if (lXmitTime < rXmitTime)
+ return true;
+ else if (lXmitTime == rXmitTime)
+ {
+ // compare the times and all data members
+ if (l.time < r.time)
+ return true;
+ else if (l.time == r.time)
+ {
+ std::list<double>
+ llist = l.toList(),
+ rlist = r.toList();
+
+ std::list<double>::iterator
+ litr = llist.begin(),
+ ritr = rlist.begin();
+
+ while (litr != llist.end())
+ {
+ if (*litr < *ritr)
+ return true;
+ else if (*litr > *ritr)
+ return false;
+ else
+ {
+ litr++;
+ ritr++;
+ }
+ }
+ }
+ } // if (lXmitTime == rXmitTime)
+
+ return false;
+ }
+ };
+
+ /// This compares all elements of the RinexNavData with equals
+ struct RinexNavDataOperatorEqualsFull :
+ public std::binary_function<gpstk::RinexNavData,
+ gpstk::RinexNavData, bool>
+ {
+ public:
+ bool operator()(const gpstk::RinexNavData& l,
+ const gpstk::RinexNavData& r) const
+ {
+ // compare the times and all data members
+ if (l.time != r.time)
+ return false;
+ else // if (l.time == r.time)
+ {
+ std::list<double>
+ llist = l.toList(),
+ rlist = r.toList();
+
+ std::list<double>::iterator
+ litr = llist.begin(),
+ ritr = rlist.begin();
+
+ while (litr != llist.end())
+ {
+ if (*litr != *ritr)
+ return false;
+ litr++;
+ ritr++;
+ }
+ }
+
+ return true;
+ }
+ };
+
+ /// Only compares time. Suitable for sorting a RinexNav file.
+ struct RinexNavDataOperatorLessThanSimple :
+ public std::binary_function<gpstk::RinexNavData,
+ gpstk::RinexNavData, bool>
+ {
+ public:
+ bool operator()(const gpstk::RinexNavData& l,
+ const gpstk::RinexNavData& r) const
+ {
+ gpstk::DayTime lXmitTime(0.L);
+ lXmitTime.setGPSfullweek(l.weeknum, (double)l.HOWtime);
+ gpstk::DayTime rXmitTime(0.L);
+ rXmitTime.setGPSfullweek(r.weeknum, (double)r.HOWtime);
+ if (lXmitTime < rXmitTime)
+ return true;
+ return false;
+ }
+ };
+
+ /// Combines RinexNavHeaders into a single header, combining comments
+ /// This assumes that
+ /// all the headers come from the same station for setting the other
+ /// header fields. After running touch() on a list of RinexNavHeader,
+ /// the internal theHeader will be the merged header data for
+ /// those files.
+ struct RinexNavHeaderTouchHeaderMerge :
+ public std::unary_function<gpstk::RinexNavHeader, bool>
+ {
+ public:
+ RinexNavHeaderTouchHeaderMerge()
+ : firstHeader(true)
+ {}
+
+ bool operator()(const gpstk::RinexNavHeader& l)
+ {
+ if (firstHeader)
+ {
+ theHeader = l;
+ firstHeader = false;
+ }
+ else
+ {
+ std::set<std::string> commentSet;
+
+ // insert the comments to the set
+ // and let the set take care of uniqueness
+ copy(theHeader.commentList.begin(),
+ theHeader.commentList.end(),
+ inserter(commentSet, commentSet.begin()));
+ copy(l.commentList.begin(),
+ l.commentList.end(),
+ inserter(commentSet, commentSet.begin()));
+ // then copy the comments back into theHeader
+ theHeader.commentList.clear();
+ copy(commentSet.begin(), commentSet.end(),
+ inserter(theHeader.commentList,
+ theHeader.commentList.begin()));
+ }
+ return true;
+ }
+
+ bool firstHeader;
+ gpstk::RinexNavHeader theHeader;
+ };
+
+ /// Filter based on PRN ID.
+ struct RinexNavDataFilterPRN :
+ public std::unary_function<gpstk::RinexNavData, bool>
+ {
+ public:
+ RinexNavDataFilterPRN(const std::list<long>& lst )
+ :prnList(lst)
+ {}
+ /// This should return true when the data are to be erased
+ bool operator()(const gpstk::RinexNavData& l) const
+ {
+ long testValue = (long) l.PRNID;
+ return find(prnList.begin(), prnList.end(), testValue )
+ == prnList.end();
+ }
+ private:
+ std::list<long> prnList;
+ };
+
+ //@}
+
+}
+
+
+#endif
+
diff --git a/dev/src/RinexNavHeader.cpp b/dev/src/RinexNavHeader.cpp
new file mode 100644
index 0000000..0dac9ff
--- /dev/null
+++ b/dev/src/RinexNavHeader.cpp
@@ -0,0 +1,343 @@
+
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file RinexNavHeader.cpp
+ * Encapsulate header of Rinex navigation file
+ */
+
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavStream.hpp"
+
+#include <iostream>
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ const string RinexNavHeader::endOfHeader = "END OF HEADER";
+ const string RinexNavHeader::leapSecondsString = "LEAP SECONDS";
+ const string RinexNavHeader::deltaUTCString = "DELTA-UTC: A0,A1,T,W";
+ const string RinexNavHeader::ionBetaString = "ION BETA";
+ const string RinexNavHeader::ionAlphaString = "ION ALPHA";
+ const string RinexNavHeader::commentString = "COMMENT";
+ const string RinexNavHeader::runByString = "PGM / RUN BY / DATE";
+ const string RinexNavHeader::versionString = "RINEX VERSION / TYPE";
+
+ void RinexNavHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError, StringException)
+ {
+ RinexNavStream& strm = dynamic_cast<RinexNavStream&>(ffs);
+
+ strm.header = (*this);
+
+ unsigned long allValid;
+ if (version == 2.0) allValid = allValid20;
+ else if (version == 2.1) allValid = allValid21;
+ else if (version == 2.11) allValid = allValid211;
+ else
+ {
+ FFStreamError err("Unknown RINEX version: " + asString(version,3));
+ err.addText("Make sure to set the version correctly.");
+ GPSTK_THROW(err);
+ }
+
+ if ((valid & allValid) != allValid)
+ {
+ FFStreamError err("Incomplete or invalid header.");
+ err.addText("Make sure you set all header valid bits for all of the available data.");
+ GPSTK_THROW(err);
+ }
+
+ string line;
+
+ if (valid & versionValid)
+ {
+ line = rightJustify(asString(version,3), 10);
+ line += string(10, ' ');
+ line += string("NAVIGATION"); //leftJustify(fileType, 20);
+ line += string(30, ' ');
+ line += versionString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & runByValid)
+ {
+ line = leftJustify(fileProgram,20);
+ line += leftJustify(fileAgency,20);
+ DayTime dt;
+ dt.setLocalTime();
+ string dat = dt.printf("%02m/%02d/%04Y %02H:%02M:%02S");
+ line += leftJustify(dat, 20);
+ line += runByString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & commentValid)
+ {
+ vector<string>::const_iterator itr = commentList.begin();
+ while (itr != commentList.end())
+ {
+ line = leftJustify((*itr), 60);
+ line += commentString;
+ strm << line << endl;
+ strm.lineNumber++;
+ itr++;
+ }
+ }
+ if (valid & ionAlphaValid)
+ {
+ line = string(2, ' ');
+ for (int i = 0; i < 4; i++)
+ {
+ line += rightJustify(doub2for(ionAlpha[i], 12, 2),12); // should be 12.4
+ }
+ line += string(10, ' ');
+ line += ionAlphaString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & ionBetaValid)
+ {
+ line = string(2, ' ');
+ for (int i = 0; i < 4; i++)
+ {
+ line += rightJustify(doub2for(ionBeta[i], 12, 2),12);
+ }
+ line += string(10, ' ');
+ line += ionBetaString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & deltaUTCValid)
+ {
+ line = string(3, ' ');
+ //line += string(2, ' ');
+ line += doub2for(A0, 19, 2);
+ line += doub2for(A1, 19, 2);
+ line += rightJustify(asString(UTCRefTime),9);
+ line += rightJustify(asString(UTCRefWeek),9);
+ line += string(1, ' ');
+ line += deltaUTCString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & leapSecondsValid)
+ {
+ line = rightJustify(asString(leapSeconds), 6);
+ line += string(54, ' ');
+ line += leapSecondsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & endValid)
+ {
+ line = string(60,' ');
+ line += endOfHeader;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+
+ }
+
+ void RinexNavHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, StringException)
+ {
+ RinexNavStream& strm = dynamic_cast<RinexNavStream&>(ffs);
+
+ // if already read, just return
+ if (strm.headerRead == true)
+ return;
+
+ valid = 0;
+
+ // clear out anything that was unsuccessfully read the first
+ commentList.clear();
+
+ while (! (valid & endValid))
+ {
+ string line;
+ strm.formattedGetLine(line);
+ StringUtils::stripTrailing(line);
+
+ if (line.length()==0) continue;
+ else if (line.length()<60 || line.length()>80)
+ {
+ FFStreamError e("Invalid line length");
+ GPSTK_THROW(e);
+ }
+
+ string thisLabel(line, 60, 20);
+
+ if (thisLabel == versionString)
+ {
+ version = asDouble(line.substr(0,20));
+ fileType = strip(line.substr(20,20));
+ if ( (fileType[0] != 'N') &&
+ (fileType[0] != 'n'))
+ {
+ FFStreamError e("This isn't a Rinex Nav file");
+ GPSTK_THROW(e);
+ }
+ valid |= versionValid;
+ }
+ else if (thisLabel == runByString)
+ {
+ fileProgram = strip(line.substr(0,20));
+ fileAgency = strip(line.substr(20,20));
+ date = strip(line.substr(40,20));
+ valid |= runByValid;
+ }
+ else if (thisLabel == commentString)
+ {
+ commentList.push_back(strip(line.substr(0,60)));
+ valid |= commentValid;
+ }
+ else if (thisLabel == ionAlphaString)
+ {
+ for(int i = 0; i < 4; i++)
+ ionAlpha[i] = gpstk::StringUtils::for2doub(line.substr(2 + 12 * i,12),12);
+ valid |= ionAlphaValid;
+ }
+ else if (thisLabel == ionBetaString)
+ {
+ for(int i = 0; i < 4; i++)
+ ionBeta[i] = gpstk::StringUtils::for2doub(line.substr(2 + 12 * i,12),12);
+ valid |= ionBetaValid;
+ }
+ else if (thisLabel == deltaUTCString)
+ {
+ A0 = gpstk::StringUtils::for2doub(line.substr(3,19),19);
+ A1 = gpstk::StringUtils::for2doub(line.substr(22,19),19);
+ UTCRefTime = asInt(line.substr(41,9));
+ UTCRefWeek = asInt(line.substr(50,9));
+ valid |= deltaUTCValid;
+ }
+ else if (thisLabel == leapSecondsString)
+ {
+ leapSeconds = asInt(line.substr(0,6));
+ valid |= leapSecondsValid;
+ }
+ else if (thisLabel == endOfHeader)
+ {
+ valid |= endValid;
+ }
+ else
+ {
+ throw(FFStreamError("Unknown header label at line " +
+ asString<size_t>(strm.lineNumber)));
+ }
+ }
+
+ unsigned long allValid;
+ if (version == 2.0) allValid = allValid20;
+ else if (version == 2.1) allValid = allValid21;
+ else if (version == 2.11) allValid = allValid211;
+ else
+ {
+ FFStreamError e("Unknown or unsupported RINEX version " +
+ asString(version));
+ GPSTK_THROW(e);
+ }
+
+ if ( (allValid & valid) != allValid)
+ {
+ FFStreamError e("Incomplete or invalid header");
+ GPSTK_THROW(e);
+ }
+
+ // we got here, so something must be right...
+ strm.header = *this;
+ strm.headerRead = true;
+ }
+
+ void RinexNavHeader::dump(ostream& s) const
+ {
+ int i;
+ s << "---------------------------------- REQUIRED ----------------------------------\n";
+ s << "Rinex Version " << fixed << setw(5) << setprecision(2) << version
+ << ", File type " << fileType << ".\n";
+ s << "Prgm: " << fileProgram << ", Run: " << date << ", By: " << fileAgency << endl;
+
+ s << "(This header is ";
+ if((valid & allValid211) == allValid211) s << "VALID 2.11";
+ else if((valid & allValid21) == allValid21) s << "VALID 2.1";
+ else if((valid & allValid20) == allValid20) s << "VALID 2.0";
+ else s << "NOT VALID";
+ s << " Rinex.)\n";
+
+ if(!(valid & versionValid)) s << " Version is NOT valid\n";
+ if(!(valid & runByValid)) s << " Run by is NOT valid\n";
+ if(!(valid & endValid)) s << " End is NOT valid\n";
+
+ s << "---------------------------------- OPTIONAL ----------------------------------\n";
+ if(valid & ionAlphaValid) { s << "Ion alpha:";
+ for(i=0; i<4; i++) s << " " << scientific << setprecision(4) << ionAlpha[i];
+ s << endl; }
+ else s << " Ion alpha is NOT valid\n";
+ if(valid & ionBetaValid) { s << "Ion beta:";
+ for(i=0; i<4; i++) s << " " << scientific << setprecision(4) << ionBeta[i];
+ s << endl; }
+ else s << " Ion beta is NOT valid\n";
+ if(valid & deltaUTCValid) s << "Delta UTC: A0="
+ << scientific << setprecision(12) << A0 << ", A1="
+ << scientific << setprecision(12) << A1 << ", UTC ref = ("
+ << UTCRefWeek << "," << UTCRefTime << ")\n";
+ else s << " Delta UTC is NOT valid\n";
+ if(valid & leapSecondsValid) s << "Leap seconds: " << leapSeconds << endl;
+ else s << " Leap seconds is NOT valid\n";
+ if(commentList.size() > 0) {
+ s << "Comments (" << commentList.size() << ") :\n";
+ for(int i=0; i<commentList.size(); i++)
+ s << commentList[i] << endl;
+ }
+ s << "-------------------------------- END OF HEADER -------------------------------\n";
+ }
+
+} // namespace
diff --git a/dev/src/RinexNavHeader.hpp b/dev/src/RinexNavHeader.hpp
new file mode 100644
index 0000000..51ae482
--- /dev/null
+++ b/dev/src/RinexNavHeader.hpp
@@ -0,0 +1,165 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexNavHeader.hpp
+ * Encapsulate header of Rinex navigation file
+ */
+
+#ifndef GPSTK_RINEXNAVHEADER_HPP
+#define GPSTK_RINEXNAVHEADER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFStream.hpp"
+#include "RinexNavBase.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexNav */
+ //@{
+
+ /**
+ * This class models the RINEX NAV header for a RINEX NAV file.
+ *
+ * \sa rinex_nav_test.cpp and rinex_nav_read_write.cpp for examples.
+ * \sa gpstk::RinexNavData and gpstk::RinexNavStream classes.
+ */
+ class RinexNavHeader : public RinexNavBase
+ {
+ public:
+ /// Constructor
+ RinexNavHeader(void) : valid(0), version(2.1) {}
+
+ /// Destructor
+ virtual ~RinexNavHeader() {}
+
+ /// RinexNavHeader is a "header" so this function always returns true.
+ virtual bool isHeader(void) const {return true;}
+
+ /// This function dumps the contents of the header.
+ virtual void dump(std::ostream& s) const;
+
+ /// Tell me, Am I valid?
+ unsigned long valid;
+
+ /// These are validity bits used in checking the RINEX NAV header.
+ enum validBits
+ {
+ versionValid = 0x01, ///< Set if the RINEX version is valid.
+ runByValid = 0x02, ///< Set if the Run-by value is valid.
+ commentValid = 0x04, ///< Set if the comments are valid. Very subjective
+ ionAlphaValid = 0x08, ///< Set if the Ion Alpha value is valid.
+ ionBetaValid = 0x010, ///< Set if the Ion Beta value is valid.
+ deltaUTCValid = 0x020, ///< Set if the Delta UTC value is valid.
+ leapSecondsValid = 0x040, ///< Set if the Leap Seconds value is valid.
+ endValid = 0x080000000, ///< Set if the end value is valid.
+
+ /// This bitset checks that all required header items are available
+ /// for a Rinex 2.0 version file
+ allValid20 = 0x080000003,
+ /// This bitset checks that all required header items are available
+ /// for a Rinex 2.1 version file
+ allValid21 = 0x080000003,
+ /// This bitset checks that all required header items are available
+ /// for a Rinex 2.11 version file
+ allValid211 = 0x080000003
+ };
+
+ /** @name HeaderValues
+ */
+ //@{
+ double version; ///< RINEX Version
+
+ std::string fileType;
+ std::string fileProgram;
+ std::string fileAgency;
+ std::string date;
+ std::vector<std::string> commentList;
+ double ionAlpha[4];
+ double ionBeta[4];
+ double A0;
+ double A1;
+ long UTCRefTime;
+ long UTCRefWeek;
+ long leapSeconds;
+ //@}
+
+ /** @name FormattingStd::Strings
+ */
+ //@{
+ static const std::string versionString; //"RINEX VERSION / TYPE"
+ static const std::string runByString; //"PGM / RUN BY / DATE"
+ static const std::string commentString; // "COMMENT"
+ static const std::string ionAlphaString; //"ION ALPHA"
+ static const std::string ionBetaString; //"ION BETA"
+ static const std::string deltaUTCString; //"DELTA-UTC: A0,A1,T,W"
+ static const std::string leapSecondsString; //"LEAP SECONDS"
+ static const std::string endOfHeader; //"END OF HEADER"
+ //@}
+
+ protected:
+ /// Writes a correctly formatted record from this data to stream \a s.
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This function reads the RINEX NAV header from the given FFStream.
+ * If an error is encountered in reading from the stream, the stream
+ * is reset to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+ }; // class RinexNavHeader
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/RinexNavStream.hpp b/dev/src/RinexNavStream.hpp
new file mode 100644
index 0000000..6368384
--- /dev/null
+++ b/dev/src/RinexNavStream.hpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexNavStream.hpp
+ * File stream for Rinex navigation file data
+ */
+
+#ifndef GPSTK_RINEXNAVSTREAM_HPP
+#define GPSTK_RINEXNAVSTREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFTextStream.hpp"
+#include "RinexNavHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexNav */
+ //@{
+
+ /**
+ * This class performs file i/o on a RINEX NAV file.
+ *
+ * \sa rinex_nav_test.cpp and rinex_nav_read_write.cpp for examples.
+ * \sa gpstk::RinexNavHeader and gpstk::RinexNavData classes.
+ */
+ class RinexNavStream : public FFTextStream
+ {
+ public:
+ /// Default constructor
+ RinexNavStream()
+ : headerRead(false)
+ {}
+
+ /** Constructor
+ * Opens a file named \a fn using ios::openmode \a mode.
+ */
+ RinexNavStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {}
+
+ /// Destructor
+ virtual ~RinexNavStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = RinexNavHeader();
+ }
+
+ /// RINEX NAV header for this file.
+ RinexNavHeader header;
+
+ /// Flag showing whether or not the header has been read.
+ bool headerRead;
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/RinexObsBase.hpp b/dev/src/RinexObsBase.hpp
new file mode 100644
index 0000000..6878f2a
--- /dev/null
+++ b/dev/src/RinexObsBase.hpp
@@ -0,0 +1,75 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexObsBase.hpp
+ * Base class for RINEX observation file data
+ */
+
+#ifndef GPSTK_RINEXOBSBASE_HPP
+#define GPSTK_RINEXOBSBASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @defgroup RinexObs RINEX observation files */
+ //@{
+
+ /** This level isn't serving any purpose other than to make
+ * the class diagram look nice...
+ */
+ class RinexObsBase : public FFData
+ {
+ public:
+ /// Destructor per the coding standards
+ virtual ~RinexObsBase() {}
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/RinexObsData.cpp b/dev/src/RinexObsData.cpp
new file mode 100644
index 0000000..22dd0d6
--- /dev/null
+++ b/dev/src/RinexObsData.cpp
@@ -0,0 +1,407 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexObsData.cpp
+ * Encapsulate RINEX observation file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ void RinexObsData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError, StringException)
+ {
+ // is there anything to write?
+ if( (epochFlag==0 || epochFlag==1 || epochFlag==6)
+ && (numSvs==0 || obs.empty()) ) return;
+ if((epochFlag>=2 && epochFlag<=5) &&
+ auxHeader.NumberHeaderRecordsToBeWritten()==0) return;
+
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(ffs);
+ string line;
+
+ // first the epoch line to 'line'
+ line = writeTime(time);
+ line += string(2, ' ');
+ line += rightJustify(asString<short>(epochFlag), 1);
+ line += rightJustify(asString<short>(numSvs), 3);
+
+ // write satellite ids to 'line'
+ const int maxPrnsPerLine = 12;
+ int satsWritten = 0;
+ RinexSatMap::const_iterator obsItr = obs.begin();
+ if(epochFlag==0 || epochFlag==1 || epochFlag==6) {
+ while ((obsItr != obs.end()) && (satsWritten < maxPrnsPerLine))
+ {
+ RinexSatID prn((*obsItr).first);
+ line += prn.toString();
+ satsWritten++;
+ obsItr++;
+ }
+
+ // add clock offset
+ if(clockOffset != 0.0) {
+ line += string(68 - line.size(), ' ');
+ line += rightJustify(asString(clockOffset, 9), 12);
+ }
+
+ // continuation lines
+ while (satsWritten != obs.size())
+ {
+ if ((satsWritten % maxPrnsPerLine) == 0)
+ {
+ strm << line << endl;
+ strm.lineNumber++;
+ line = string(32, ' ');
+ }
+ RinexSatID prn(obsItr->first);
+ line += prn.toString();
+ satsWritten++;
+ obsItr++;
+ }
+ }
+
+ // write the epoch line
+ strm << line << endl;
+ strm.lineNumber++;
+
+ // write the auxiliary header records, if any
+ if(epochFlag >= 2 && epochFlag <= 5)
+ {
+ try {
+ auxHeader.WriteHeaderRecords(strm);
+ }
+ catch(FFStreamError& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(StringException& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ }
+
+ // write the obs data
+ else if (!obs.empty())
+ {
+ // write out the observations themselves
+ obsItr = obs.begin();
+
+ const int maxObsPerLine = 5;
+
+ while(obsItr != obs.end())
+ {
+ vector<RinexObsHeader::RinexObsType>::iterator obsTypeItr =
+ strm.header.obsTypeList.begin();
+
+ line.erase();
+ int obsWritten = 0;
+
+ while (obsTypeItr != strm.header.obsTypeList.end())
+ {
+ if ( ((obsWritten % maxObsPerLine) == 0) &&
+ (obsWritten != 0))
+ {
+ strm << line << endl;
+ strm.lineNumber++;
+ line.erase();
+ }
+
+ RinexObsTypeMap::const_iterator rotmi(obsItr->second.find(*obsTypeItr));
+ RinexDatum thisData;
+ if (rotmi != obsItr->second.end())
+ thisData = rotmi->second;
+ line += rightJustify(asString(thisData.data,3),14);
+ if (thisData.lli == 0)
+ line += string(1, ' ');
+ else
+ line += rightJustify(asString<short>(thisData.lli),1);
+ if (thisData.ssi == 0)
+ line += string(1, ' ');
+ else
+ line += rightJustify(asString<short>(thisData.ssi),1);
+ obsWritten++;
+ obsTypeItr++;
+ }
+ strm << line << endl;
+ strm.lineNumber++;
+ obsItr++;
+ }
+ }
+ } // end RinexObsData::reallyPutRecord
+
+
+ void RinexObsData::reallyGetRecord(FFStream& ffs)
+ throw(exception, FFStreamError, gpstk::StringUtils::StringException)
+ {
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(ffs);
+
+ // If the header hasn't been read, read it...
+ if(!strm.headerRead) strm >> strm.header;
+
+ // Clear out this object
+ RinexObsHeader& hdr = strm.header;
+
+ RinexObsData rod;
+ *this=rod;
+
+ string line;
+
+ strm.formattedGetLine(line, true);
+
+ if (line.size()>80 || line[0] != ' ' || line[3] != ' ' || line[6] != ' ')
+ {
+ FFStreamError e("Bad epoch line");
+ GPSTK_THROW(e);
+ }
+
+ // process the epoch line, including SV list and clock bias
+ epochFlag = asInt(line.substr(28,1));
+ if ((epochFlag < 0) || (epochFlag > 6))
+ {
+ FFStreamError e("Invalid epoch flag: " + asString(epochFlag));
+ GPSTK_THROW(e);
+ }
+ time = parseTime(line, hdr);
+ numSvs = asInt(line.substr(29,3));
+
+ if( line.size() > 68 )
+ clockOffset = asDouble(line.substr(68, 12));
+ else
+ clockOffset = 0.0;
+
+ // Now read the observations ...
+ if(epochFlag==0 || epochFlag==1 || epochFlag==6) {
+ int isv, ndx, line_ndx;
+ vector<SatID> satIndex(numSvs);
+ int col=30;
+ for (isv=1, ndx=0; ndx<numSvs; isv++, ndx++) {
+ if(! (isv % 13)) {
+ strm.formattedGetLine(line);
+ isv = 1;
+ if(line.size() > 80) {
+ FFStreamError err("Invalid line size:" + asString(line.size()));
+ GPSTK_THROW(err);
+ }
+ }
+ try {
+ satIndex[ndx] = RinexSatID(line.substr(col+isv*3-1, 3));
+ }
+ catch (Exception& e)
+ {
+ FFStreamError ffse(e);
+ GPSTK_THROW(ffse);
+ }
+ }
+
+ for (isv=0; isv < numSvs; isv++)
+ {
+ short numObs = hdr.obsTypeList.size();
+ for (ndx=0, line_ndx=0; ndx < numObs; ndx++, line_ndx++)
+ {
+ SatID sat = satIndex[isv];
+ RinexObsHeader::RinexObsType obs_type = hdr.obsTypeList[ndx];
+ if (! (line_ndx % 5))
+ {
+ strm.formattedGetLine(line);
+ line_ndx = 0;
+ if (line.size() > 80)
+ {
+ FFStreamError err("Invalid line size:" + asString(line.size()));
+ GPSTK_THROW(err);
+ }
+ }
+
+ line.resize(80, ' ');
+
+ obs[sat][obs_type].data = asDouble(line.substr(line_ndx*16, 14));
+ obs[sat][obs_type].lli = asInt( line.substr(line_ndx*16+14, 1));
+ obs[sat][obs_type].ssi = asInt( line.substr(line_ndx*16+15, 1));
+ }
+ }
+ }
+ // ... or the auxiliary header information
+ else if(numSvs > 0) {
+ auxHeader.clear();
+ for(int i=0; i<numSvs; i++) {
+ strm.formattedGetLine(line);
+ StringUtils::stripTrailing(line);
+ try {
+ auxHeader.ParseHeaderRecord(line);
+ }
+ catch(FFStreamError& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(StringException& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ }
+ }
+
+ return;
+
+ } // end of reallyGetRecord()
+
+
+ DayTime RinexObsData::parseTime(const string& line,
+ const RinexObsHeader& hdr) const
+ throw(FFStreamError)
+ {
+ try
+ {
+ // check if the spaces are in the right place - an easy
+ // way to check if there's corruption in the file
+ if ( (line[0] != ' ') ||
+ (line[3] != ' ') ||
+ (line[6] != ' ') ||
+ (line[9] != ' ') ||
+ (line[12] != ' ') ||
+ (line[15] != ' '))
+ {
+ FFStreamError e("Invalid time format");
+ GPSTK_THROW(e);
+ }
+
+ // if there's no time, just return a bad time
+ if (line.substr(0,26) == string(26, ' '))
+ {
+ return DayTime(DayTime::BEGINNING_OF_TIME);
+ }
+
+ int year, month, day, hour, min;
+ double sec;
+ int yy = hdr.firstObs.year()/100;
+ yy *= 100;
+
+ year = asInt( line.substr(1, 2 ));
+ month = asInt( line.substr(4, 2 ));
+ day = asInt( line.substr(7, 2 ));
+ hour = asInt( line.substr(10, 2 ));
+ min = asInt( line.substr(13, 2 ));
+ sec = asDouble(line.substr(15, 11));
+
+ // Real Rinex has epochs 'yy mm dd hr 59 60.0' surprisingly often....
+ double ds=0;
+ if(sec >= 60.) { ds=sec; sec=0.0; }
+ DayTime rv(yy+year, month, day, hour, min, sec);
+ if(ds != 0) rv += ds;
+
+ return rv;
+ }
+ // string exceptions for substr are caught here
+ catch (std::exception &e)
+ {
+ FFStreamError err("std::exception: " + string(e.what()));
+ GPSTK_THROW(err);
+ }
+ catch (gpstk::Exception& e)
+ {
+ std::string text;
+ for(int i=0; i<e.getTextCount(); i++) text += e.getText(i);
+ FFStreamError err("gpstk::Exception in parseTime(): " + text);
+ GPSTK_THROW(err);
+ }
+
+ }
+
+ string RinexObsData::writeTime(const DayTime& dt) const
+ throw(StringException)
+ {
+ if (dt == DayTime::BEGINNING_OF_TIME)
+ {
+ return string(26, ' ');
+ }
+
+ string line;
+ line = string(1, ' ');
+ line += rightJustify(asString<short>(dt.year()),2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(dt.month()),2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(dt.day()),2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(dt.hour()),2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(dt.minute()),2);
+ line += rightJustify(asString(dt.second(), 7),11);
+
+ return line;
+ }
+
+
+ void RinexObsData::dump(ostream& s) const
+ {
+ if (obs.empty())
+ return;
+
+ s << "Dump of RinexObsData - time: ";
+ s << writeTime(time) << " epochFlag: "
+ << " " << epochFlag << " numSvs: " << numSvs
+ << fixed << setprecision(6)
+ << " clk offset: " << clockOffset << endl;
+ if(epochFlag == 0 || epochFlag == 1)
+ {
+ RinexSatMap::const_iterator it;
+ for(it=obs.begin(); it!=obs.end(); it++) {
+ s << "Sat " << setw(2) << RinexSatID(it->first);
+ RinexObsTypeMap::const_iterator jt;
+ for(jt=it->second.begin(); jt!=it->second.end(); jt++)
+ {
+ s << " " << jt->first.type << ":" << fixed << setprecision(3)
+ << " " << setw(12) << jt->second.data
+ << "/" << jt->second.lli << "/" << jt->second.ssi;
+ }
+ s << endl;
+ }
+ }
+ else {
+ s << "aux. header info:\n";
+ auxHeader.dump(s);
+ }
+ }
+
+} // namespace
diff --git a/dev/src/RinexObsData.hpp b/dev/src/RinexObsData.hpp
new file mode 100644
index 0000000..b4da238
--- /dev/null
+++ b/dev/src/RinexObsData.hpp
@@ -0,0 +1,172 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexObsData.hpp
+ * Encapsulate RINEX observation file data, including I/O
+ */
+
+#ifndef RINEXOBSDATA_HPP
+#define RINEXOBSDATA_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "DayTime.hpp"
+#include "FFStream.hpp"
+#include "RinexObsBase.hpp"
+#include "RinexObsHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexObs */
+ //@{
+
+ /**
+ * This class models a RINEX Observation Data Record.
+ *
+ * @sa gpstk::RinexObsStream and gpstk::RinexObsHeader.
+ * @sa rinex_obs_test.cpp and rinex_obs_read_write.cpp for examples.
+ */
+ class RinexObsData : public RinexObsBase
+ {
+ public:
+
+ /// A structure used to store a single RINEX Data point.
+ struct RinexDatum
+ {
+ RinexDatum() : data(0), lli(0), ssi(0) {}
+ double data; ///< The actual data point.
+ short lli; ///< See the RINEX Spec. for an explanation.
+ short ssi; ///< See the RINEX Spec. for an explanation.
+ };
+
+ /// map from RinexObsType to RinexDatum.
+ typedef std::map<RinexObsHeader::RinexObsType, RinexDatum> RinexObsTypeMap;
+ /// map from SatID to RinexObsTypeMap.
+ typedef std::map<SatID, RinexObsTypeMap> RinexSatMap;
+
+ gpstk::DayTime time; ///< the time corresponding to the observations
+ /** Epoch flag has the following values
+ * 0 ok
+ * 1 power failure since previous epoch
+ * 2 start moving antenna
+ * 3 new site occupation (end moving antenna)
+ * at least MARKER NAME header record follows
+ * 4 header records follow
+ * 5 external event
+ * 6 cycle slip record - same format as observation, but slips not data,
+ * and LLI and SSI are blank
+ */
+ short epochFlag;
+ /** number of satellites in this observation, except when epochFlag = 2-5,
+ * then the number of auxiliary header records to follow.
+ */
+ short numSvs;
+ double clockOffset; ///< optional clock offset
+ RinexSatMap obs; ///< the map of observations
+ RinexObsHeader auxHeader;///< auxiliary header records (epochFlag 2-5)
+
+ /// Constructor.
+ RinexObsData() : time(gpstk::DayTime::BEGINNING_OF_TIME){}
+
+ /// Destructor
+ virtual ~RinexObsData() {}
+
+ // The next four lines is our common interface
+ /// RinexObsData is a "data", so this function always returns true.
+ virtual bool isData() const {return true;}
+
+ /**
+ * A Debug output function.
+ * Dumps the time of observations and the IDs of the Sats
+ * in the map.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ protected:
+ /**
+ * Writes a correctly formatted record from this data to stream \a s.
+ * When printing comment records, you'll need to format them correctly
+ * yourself. This means making sure that "COMMENT" is at the end
+ * of the line and that they're the correct length (<= 80 chrs).
+ * Also make sure to correctly set the epochFlag to the correct
+ * number for the type of header data you want to write.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a RINEX Observation record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * Because of the Rinex Obs format, a RinexObsData record returned
+ * might not have data in it. Check the RinexSatMap for empty()
+ * before using any data in it.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ private:
+ /// Writes the daytime object into RINEX format. If it's a bad time,
+ /// it will return blanks.
+ std::string writeTime(const DayTime& dt) const
+ throw(gpstk::StringUtils::StringException);
+
+ /**
+ * This function constructs a DayTime object from the given parameters.
+ * @param line the encoded time string found in the RINEX record.
+ * @param hdr the RINEX Observation Header object for the current RINEX file.
+ */
+ DayTime parseTime(const std::string& line, const RinexObsHeader& hdr) const
+ throw(FFStreamError);
+ }; // class RinexObsData
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/RinexObsFilterOperators.hpp b/dev/src/RinexObsFilterOperators.hpp
new file mode 100644
index 0000000..08fbfae
--- /dev/null
+++ b/dev/src/RinexObsFilterOperators.hpp
@@ -0,0 +1,270 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexObsFilterOperators.hpp
+ * Operators for FileFilter using Rinex observation data
+ */
+
+#ifndef GPSTK_RINEXOBSFILTEROPERATORS_HPP
+#define GPSTK_RINEXOBSFILTEROPERATORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FileFilter.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsHeader.hpp"
+
+#include <set>
+#include <algorithm>
+
+namespace gpstk
+{
+ /** @addtogroup RinexObs */
+ //@{
+
+ /// This compares all elements of the RinexObsData with less than
+ /// (only for those fields which the two obs data share).
+ struct RinexObsDataOperatorLessThanFull :
+ public std::binary_function<gpstk::RinexObsData,
+ gpstk::RinexObsData, bool>
+ {
+ public:
+ /// The set is a set of RinexObsType that the two files have in
+ /// common. This is easily generated with the set_intersection
+ /// STL function. See difftools/rowdiff.cpp for an example.
+ RinexObsDataOperatorLessThanFull
+ (const std::set<gpstk::RinexObsHeader::RinexObsType>& rohset)
+ : obsSet(rohset)
+ {}
+
+ bool operator()(const gpstk::RinexObsData& l,
+ const gpstk::RinexObsData& r) const
+ {
+ // compare the times, offsets, then only those elements
+ // that are common to both. this ignores the flags
+ // that are set to 0
+ if (l.time < r.time)
+ return true;
+ else if (l.time == r.time)
+ {
+ if (l.epochFlag < r.epochFlag)
+ return true;
+ else if (l.epochFlag == r.epochFlag)
+ {
+ if (l.clockOffset < r.clockOffset)
+ return true;
+ else if (l.clockOffset > r.clockOffset)
+ return false;
+ }
+ else
+ return false;
+ }
+ else
+ return false;
+
+ // for the obs, first check that they're the same size
+ // i.e. - contain the same number of PRNs
+ if (l.obs.size() < r.obs.size())
+ return true;
+
+ if (l.obs.size() > r.obs.size())
+ return false;
+
+ // then check that each PRN has the same data for each of the
+ // shared fields
+ gpstk::RinexObsData::RinexSatMap::const_iterator lItr =
+ l.obs.begin(), rItr;
+
+ gpstk::SatID sat;
+
+ while (lItr != l.obs.end())
+ {
+ sat = (*lItr).first;
+ rItr = r.obs.find(sat);
+ if (rItr == r.obs.end())
+ return false;
+
+ gpstk::RinexObsData::RinexObsTypeMap
+ lObs = (*lItr).second,
+ rObs = (*rItr).second;
+
+ std::set<gpstk::RinexObsHeader::RinexObsType>::const_iterator obsItr =
+ obsSet.begin();
+
+ while (obsItr != obsSet.end())
+ {
+ gpstk::RinexObsData::RinexDatum lData, rData;
+ lData = lObs[*obsItr];
+ rData = rObs[*obsItr];
+
+ if (lData.data < rData.data)
+ return true;
+
+ if ( (lData.lli != 0) && (rData.lli != 0) )
+ if (lData.lli < rData.lli)
+ return true;
+
+ if ( (lData.ssi != 0) && (rData.ssi != 0) )
+ if (lData.ssi < rData.ssi)
+ return true;
+
+ obsItr++;
+ }
+
+ lItr++;
+ }
+
+ // the data is either == or > at this point
+ return false;
+ }
+
+ private:
+ std::set<gpstk::RinexObsHeader::RinexObsType> obsSet;
+ };
+
+ /// This is a much faster less than operator for RinexObsData,
+ /// only checking time
+ struct RinexObsDataOperatorLessThanSimple :
+ public std::binary_function<gpstk::RinexObsData,
+ gpstk::RinexObsData, bool>
+ {
+ public:
+ bool operator()(const gpstk::RinexObsData& l,
+ const gpstk::RinexObsData& r) const
+ {
+ if (l.time < r.time)
+ return true;
+ return false;
+ }
+ };
+
+ /// This simply compares the times of the two records
+ /// for equality
+ struct RinexObsDataOperatorEqualsSimple :
+ public std::binary_function<gpstk::RinexObsData,
+ gpstk::RinexObsData, bool>
+ {
+ public:
+ bool operator()(const gpstk::RinexObsData& l,
+ const gpstk::RinexObsData& r) const
+ {
+ if (l.time == r.time)
+ return true;
+ return false;
+ }
+ };
+
+ /// Combines RinexObsHeaders into a single header, combining comments
+ /// and adding the appropriate RinexObsTypes. This assumes that
+ /// all the headers come from the same station for setting the other
+ /// header fields. After running touch() on a list of RinexObsHeader,
+ /// the internal theHeader will be the merged header data for
+ /// those files and obsSet will be the set of RinexObsTypes that
+ /// will be printed to the file.
+ struct RinexObsHeaderTouchHeaderMerge :
+ public std::unary_function<gpstk::RinexObsHeader, bool>
+ {
+ public:
+ RinexObsHeaderTouchHeaderMerge()
+ : firstHeader(true)
+ {}
+
+ bool operator()(const gpstk::RinexObsHeader& l)
+ {
+ if (firstHeader)
+ {
+ theHeader = l;
+ firstHeader = false;
+ }
+ else
+ {
+ std::set<gpstk::RinexObsHeader::RinexObsType> thisObsSet,
+ tempObsSet;
+ std::set<std::string> commentSet;
+ obsSet.clear();
+
+ // insert the comments to the set
+ // and let the set take care of uniqueness
+ copy(theHeader.commentList.begin(),
+ theHeader.commentList.end(),
+ inserter(commentSet, commentSet.begin()));
+ copy(l.commentList.begin(),
+ l.commentList.end(),
+ inserter(commentSet, commentSet.begin()));
+ // then copy the comments back into theHeader
+ theHeader.commentList.clear();
+ copy(commentSet.begin(), commentSet.end(),
+ inserter(theHeader.commentList,
+ theHeader.commentList.begin()));
+
+ // find the set intersection of the obs types
+ copy(theHeader.obsTypeList.begin(),
+ theHeader.obsTypeList.end(),
+ inserter(thisObsSet, thisObsSet.begin()));
+ copy(l.obsTypeList.begin(),
+ l.obsTypeList.end(),
+ inserter(tempObsSet, tempObsSet.begin()));
+ set_intersection(thisObsSet.begin(), thisObsSet.end(),
+ tempObsSet.begin(), tempObsSet.end(),
+ inserter(obsSet, obsSet.begin()));
+ // then copy the obsTypes back into theHeader
+ theHeader.obsTypeList.clear();
+ copy(obsSet.begin(), obsSet.end(),
+ inserter(theHeader.obsTypeList,
+ theHeader.obsTypeList.begin()));
+ }
+ return true;
+ }
+
+ bool firstHeader;
+ gpstk::RinexObsHeader theHeader;
+ std::set<gpstk::RinexObsHeader::RinexObsType> obsSet;
+ };
+
+ //@}
+
+}
+
+
+#endif
diff --git a/dev/src/RinexObsHeader.cpp b/dev/src/RinexObsHeader.cpp
new file mode 100644
index 0000000..4d9ee41
--- /dev/null
+++ b/dev/src/RinexObsHeader.cpp
@@ -0,0 +1,1027 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexObsHeader.cpp
+ * Encapsulate header of Rinex observation file, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsStream.hpp"
+
+using namespace std;
+using namespace gpstk::StringUtils;
+
+namespace gpstk
+{
+ const string RinexObsHeader::versionString = "RINEX VERSION / TYPE";
+ const string RinexObsHeader::runByString = "PGM / RUN BY / DATE";
+ const string RinexObsHeader::commentString = "COMMENT";
+ const string RinexObsHeader::markerNameString = "MARKER NAME";
+ const string RinexObsHeader::markerNumberString = "MARKER NUMBER";
+ const string RinexObsHeader::observerString = "OBSERVER / AGENCY";
+ const string RinexObsHeader::receiverString = "REC # / TYPE / VERS";
+ const string RinexObsHeader::antennaTypeString = "ANT # / TYPE";
+ const string RinexObsHeader::antennaPositionString = "APPROX POSITION XYZ";
+ const string RinexObsHeader::antennaOffsetString = "ANTENNA: DELTA H/E/N";
+ const string RinexObsHeader::waveFactString = "WAVELENGTH FACT L1/2";
+ const string RinexObsHeader::numObsString = "# / TYPES OF OBSERV";
+ const string RinexObsHeader::intervalString = "INTERVAL";
+ const string RinexObsHeader::firstTimeString = "TIME OF FIRST OBS";
+ const string RinexObsHeader::lastTimeString = "TIME OF LAST OBS";
+ const string RinexObsHeader::receiverOffsetString = "RCV CLOCK OFFS APPL";
+ const string RinexObsHeader::leapSecondsString = "LEAP SECONDS";
+ const string RinexObsHeader::numSatsString = "# OF SATELLITES";
+ const string RinexObsHeader::prnObsString = "PRN / # OF OBS";
+ const string RinexObsHeader::endOfHeader = "END OF HEADER";
+
+ const unsigned int RinexObsHeader::RinexObsType::C1depend=0x01;
+ const unsigned int RinexObsHeader::RinexObsType::L1depend=0x02;
+ const unsigned int RinexObsHeader::RinexObsType::L2depend=0x04;
+ const unsigned int RinexObsHeader::RinexObsType::P1depend=0x08;
+ const unsigned int RinexObsHeader::RinexObsType::P2depend=0x10;
+ const unsigned int RinexObsHeader::RinexObsType::EPdepend=0x20;
+ const unsigned int RinexObsHeader::RinexObsType::PSdepend=0x40;
+
+ const RinexObsHeader::RinexObsType RinexObsHeader::UN("UN", "Unknown or Invalid", "unknown", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::L1("L1", "L1 Carrier Phase", "L1 cycles",
+ RinexObsHeader::RinexObsType::L1depend);
+ const RinexObsHeader::RinexObsType RinexObsHeader::L2("L2", "L2 Carrier Phase", "L2 cycles",
+ RinexObsHeader::RinexObsType::L2depend);
+ const RinexObsHeader::RinexObsType RinexObsHeader::C1("C1", "C/A-code pseudorange", "meters",
+ RinexObsHeader::RinexObsType::C1depend);
+ const RinexObsHeader::RinexObsType RinexObsHeader::C2("C2", "L2C-code pseudorange", "meters", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::P1("P1", "Pcode L1 pseudorange", "meters",
+ RinexObsHeader::RinexObsType::P1depend);
+ const RinexObsHeader::RinexObsType RinexObsHeader::P2("P2", "Pcode L2 pseudorange", "meters",
+ RinexObsHeader::RinexObsType::P2depend);
+ const RinexObsHeader::RinexObsType RinexObsHeader::D1("D1", "Doppler Frequency L1", "Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::D2("D2", "Doppler Frequency L2", "Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::S1("S1", "Signal-to-Noise L1", "dB-Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::S2("S2", "Signal-to-Noise L2", "dB-Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::T1("T1", "Transit 150 MHz", "meters", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::T2("T2", "Transit 400 MHz", "meters", 0);
+ // v 2.11
+ const RinexObsHeader::RinexObsType RinexObsHeader::C5("C5", "L5C-code pseudorange", "meters", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::L5("L5", "L5 Carrier Phase", "L5 cycles", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::D5("D5", "Doppler Frequency L5", "Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::S5("S5", "Signal-to-Noise L5", "dB-Hz", 0);
+ // Galileo only
+ const RinexObsHeader::RinexObsType RinexObsHeader::C6("C6", "E6-code pseudorange", "meters", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::L6("L6", "E6 Carrier Phase", "L6 cycles", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::D6("D6", "Doppler Frequency E6", "Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::S6("S6", "Signal-to-Noise E6", "dB-Hz", 0);
+
+ const RinexObsHeader::RinexObsType RinexObsHeader::C7("C7", "E5b-code pseudorange", "meters", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::L7("L7", "E5b Carrier Phase", "L7 cycles", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::D7("D7", "Doppler Frequency E5b", "Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::S7("S7", "Signal-to-Noise E5b", "dB-Hz", 0);
+
+ const RinexObsHeader::RinexObsType RinexObsHeader::C8("C8", "E5a+b-code pseudorange", "meters", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::L8("L8", "E5a+b Carrier Phase", "L8 cycles", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::D8("D8", "Doppler Frequency E5a+b","Hz", 0);
+ const RinexObsHeader::RinexObsType RinexObsHeader::S8("S8", "Signal-to-Noise E5a+b", "dB-Hz", 0);
+
+ RinexObsHeader::RinexObsType sot[29] =
+ {
+ RinexObsHeader::UN,
+ RinexObsHeader::L1, RinexObsHeader::L2,
+ RinexObsHeader::C1, RinexObsHeader::C2,
+ RinexObsHeader::P1, RinexObsHeader::P2,
+ RinexObsHeader::D1, RinexObsHeader::D2,
+ RinexObsHeader::S1, RinexObsHeader::S2,
+ RinexObsHeader::T1, RinexObsHeader::T2,
+ RinexObsHeader::C5, RinexObsHeader::L5, RinexObsHeader::D5, RinexObsHeader::S5,
+ RinexObsHeader::C6, RinexObsHeader::L6, RinexObsHeader::D6, RinexObsHeader::S6,
+ RinexObsHeader::C7, RinexObsHeader::L7, RinexObsHeader::D7, RinexObsHeader::S7,
+ RinexObsHeader::C8, RinexObsHeader::L8, RinexObsHeader::D8, RinexObsHeader::S8
+ };
+
+ // Warning: the size of the above sot array needs to be put
+ // in this initializer.
+ const std::vector<RinexObsHeader::RinexObsType> RinexObsHeader::StandardRinexObsTypes(sot,sot+29);
+
+ std::vector<RinexObsHeader::RinexObsType> RinexObsHeader::RegisteredRinexObsTypes
+ = RinexObsHeader::StandardRinexObsTypes;
+
+ void RinexObsHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError, StringException)
+ {
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(ffs);
+
+ strm.header = *this;
+
+ unsigned long allValid;
+ if (version == 2.0) allValid = allValid20;
+ else if (version == 2.1) allValid = allValid21;
+ else if (version == 2.11) allValid = allValid211;
+ else
+ {
+ FFStreamError err("Unknown RINEX version: " + asString(version,2));
+ err.addText("Make sure to set the version correctly.");
+ GPSTK_THROW(err);
+ }
+
+ if ((valid & allValid) != allValid)
+ {
+ FFStreamError err("Incomplete or invalid header.");
+ err.addText("Make sure you set all header valid bits for all of the available data.");
+ GPSTK_THROW(err);
+ }
+
+ try
+ {
+ WriteHeaderRecords(strm);
+ }
+ catch(FFStreamError& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(StringException& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+
+ } // end RinexObsHeader::reallyPutRecord
+
+
+ // this function computes the number of valid header records which WriteHeaderRecords will write
+ int RinexObsHeader::NumberHeaderRecordsToBeWritten(void) const throw()
+ {
+ int n=0;
+ if(valid & RinexObsHeader::versionValid) n++;
+ if(valid & RinexObsHeader::runByValid) n++;
+ if(valid & RinexObsHeader::markerNameValid) n++;
+ if(valid & RinexObsHeader::observerValid) n++;
+ if(valid & RinexObsHeader::receiverValid) n++;
+ if(valid & RinexObsHeader::antennaTypeValid) n++;
+ if(valid & RinexObsHeader::antennaPositionValid) n++;
+ if(valid & RinexObsHeader::antennaOffsetValid) n++;
+ if(valid & RinexObsHeader::waveFactValid) {
+ n++;
+ if(extraWaveFactList.size()) n += 1 + (extraWaveFactList.size()-1)/7;
+ }
+ if(valid & RinexObsHeader::obsTypeValid) n += 1 + (obsTypeList.size()-1)/9;
+ if(valid & RinexObsHeader::intervalValid) n++;
+ if(valid & RinexObsHeader::firstTimeValid) n++;
+ if(valid & RinexObsHeader::lastTimeValid) n++;
+ if(valid & RinexObsHeader::markerNumberValid) n++;
+ if(valid & RinexObsHeader::receiverOffsetValid) n++;
+ if(valid & RinexObsHeader::leapSecondsValid) n++;
+ if(valid & RinexObsHeader::commentValid) n += commentList.size();
+ if(valid & RinexObsHeader::numSatsValid) n++;
+ if(valid & RinexObsHeader::prnObsValid)
+ n += numObsForSat.size() * (1+numObsForSat.begin()->second.size()/9);
+ if(valid & RinexObsHeader::endValid) n++;
+ return n;
+ }
+
+ // this function writes all valid header records
+ void RinexObsHeader::WriteHeaderRecords(FFStream& ffs) const
+ throw(FFStreamError, StringException)
+ {
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(ffs);
+ string line;
+ if (valid & versionValid)
+ {
+ line = rightJustify(asString(version,2), 9);
+ line += string(11, ' ');
+ if ((fileType[0] != 'O') && (fileType[0] != 'o'))
+ {
+ FFStreamError err("This isn't a Rinex Observation file: " +
+ fileType.substr(0,1));
+ GPSTK_THROW(err);
+ }
+
+ if (system.system == RinexSatID::systemUnknown)
+ {
+ FFStreamError err("Invalid satellite system");
+ GPSTK_THROW(err);
+ }
+
+ line += leftJustify(string("Observation"), 20);
+ std::string str;
+ str = system.systemChar();
+ str = str + " (" + system.systemString() + ")";
+ line += leftJustify(str, 20);
+ line += versionString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & runByValid)
+ {
+ line = leftJustify(fileProgram,20);
+ line += leftJustify(fileAgency,20);
+ DayTime dt;
+ dt.setLocalTime();
+ string dat = dt.printf("%02m/%02d/%04Y %02H:%02M:%02S");
+ line += leftJustify(dat, 20);
+ line += runByString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & markerNameValid)
+ {
+ line = leftJustify(markerName, 60);
+ line += markerNameString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & observerValid)
+ {
+ line = leftJustify(observer, 20);
+ line += leftJustify(agency, 40);
+ line += observerString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & receiverValid)
+ {
+ line = leftJustify(recNo, 20);
+ line += leftJustify(recType, 20);
+ line += leftJustify(recVers, 20);
+ line += receiverString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & antennaTypeValid)
+ {
+ line = leftJustify(antNo, 20);
+ line += leftJustify(antType, 20);
+ line += string(20, ' ');
+ line += antennaTypeString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & antennaPositionValid)
+ {
+ line = rightJustify(asString(antennaPosition[0], 4), 14);
+ line += rightJustify(asString(antennaPosition[1], 4), 14);
+ line += rightJustify(asString(antennaPosition[2], 4), 14);
+ line += string(18, ' ');
+ line += antennaPositionString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & antennaOffsetValid)
+ {
+ line = rightJustify(asString(antennaOffset[0], 4), 14);
+ line += rightJustify(asString(antennaOffset[1], 4), 14);
+ line += rightJustify(asString(antennaOffset[2], 4), 14);
+ line += string(18, ' ');
+ line += antennaOffsetString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & waveFactValid)
+ {
+ line = rightJustify(asString<short>(wavelengthFactor[0]),6);
+ line += rightJustify(asString<short>(wavelengthFactor[1]),6);
+ line += string(48, ' ');
+ line += waveFactString;
+ strm << line << endl;
+ strm.lineNumber++;
+
+ // handle continuation lines
+ if (!extraWaveFactList.empty())
+ {
+ vector<ExtraWaveFact>::const_iterator itr = extraWaveFactList.begin();
+
+ while (itr != extraWaveFactList.end())
+ {
+ const int maxSatsPerLine = 7;
+ short satsWritten = 0, satsLeft = (*itr).satList.size(), satsThisLine;
+ vector<SatID>::const_iterator vecItr = (*itr).satList.begin();
+
+ while ((vecItr != (*itr).satList.end())) {
+ if(satsWritten == 0) {
+ line = rightJustify(asString<short>((*itr).wavelengthFactor[0]),6);
+ line += rightJustify(asString<short>((*itr).wavelengthFactor[1]),6);
+ satsThisLine = (satsLeft > maxSatsPerLine ? maxSatsPerLine : satsLeft);
+ line += rightJustify(asString<short>(satsThisLine),6);
+ }
+ try {
+ line += string(3, ' ') + RinexSatID(*vecItr).toString();
+ }
+ catch (Exception& e) {
+ FFStreamError ffse(e);
+ GPSTK_THROW(ffse);
+ }
+ satsWritten++;
+ satsLeft--;
+ if(satsWritten==maxSatsPerLine || satsLeft==0) { // output a complete line
+ line += string(60 - line.size(), ' ');
+ line += waveFactString;
+ strm << line << endl;
+ strm.lineNumber++;
+ satsWritten = 0;
+ }
+ vecItr++;
+ }
+ itr++;
+ }
+ }
+ }
+ if (valid & obsTypeValid)
+ {
+ const int maxObsPerLine = 9;
+ int obsWritten = 0;
+ line = ""; // make sure the line contents are reset.
+
+ vector<RinexObsType>::const_iterator itr = obsTypeList.begin();
+
+ while (itr != obsTypeList.end())
+ {
+ // the first line needs to have the # of obs
+ if (obsWritten == 0)
+ line = rightJustify(asString(obsTypeList.size()), 6);
+ // if you hit 9, write out the line and start a new one
+ else if ((obsWritten % maxObsPerLine) == 0)
+ {
+ line += numObsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ line = string(6, ' ');
+ }
+ line += rightJustify(convertObsType(*itr), 6);
+ obsWritten++;
+ itr++;
+ }
+ line += string(60 - line.size(), ' ');
+ line += numObsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & intervalValid)
+ {
+ line = rightJustify(asString(interval, 3), 10);
+ line += string(50, ' ');
+ line += intervalString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & firstTimeValid)
+ {
+ line = writeTime(firstObs);
+ line += string(48-line.size(),' ');
+ if(firstSystem.system == RinexSatID::systemGPS) line += "GPS";
+ if(firstSystem.system == RinexSatID::systemGlonass) line += "GLO";
+ if(firstSystem.system == RinexSatID::systemGalileo) line += "GAL";
+ line += string(60 - line.size(), ' ');
+ line += firstTimeString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & lastTimeValid)
+ {
+ line = writeTime(lastObs);
+ line += string(48-line.size(),' ');
+ if(lastSystem.system == RinexSatID::systemGPS) line += "GPS";
+ if(lastSystem.system == RinexSatID::systemGlonass) line += "GLO";
+ if(lastSystem.system == RinexSatID::systemGalileo) line += "GAL";
+ line += string(60 - line.size(), ' ');
+ line += lastTimeString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & markerNumberValid)
+ {
+ line = leftJustify(markerNumber, 20);
+ line += string(40, ' ');
+ line += markerNumberString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & receiverOffsetValid)
+ {
+ line = rightJustify(asString(receiverOffset),6);
+ line += string(54, ' ');
+ line += receiverOffsetString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & leapSecondsValid)
+ {
+ line = rightJustify(asString(leapSeconds),6);
+ line += string(54, ' ');
+ line += leapSecondsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & commentValid)
+ {
+ vector<string>::const_iterator itr = commentList.begin();
+ while (itr != commentList.end())
+ {
+ line = leftJustify((*itr), 60);
+ line += commentString;
+ strm << line << endl;
+ strm.lineNumber++;
+ itr++;
+ }
+ }
+ if (valid & numSatsValid)
+ {
+ line = rightJustify(asString(numSVs), 6);
+ line += string(54, ' ');
+ line += numSatsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ if (valid & prnObsValid)
+ {
+ const int maxObsPerLine = 9;
+ map<SatID, vector<int> >::const_iterator itr = numObsForSat.begin();
+ while (itr != numObsForSat.end())
+ {
+ int numObsWritten = 0;
+
+ vector<int>::const_iterator vecItr = (*itr).second.begin();
+ while (vecItr != (*itr).second.end())
+ {
+ if (numObsWritten == 0)
+ {
+ try {
+ RinexSatID prn((*itr).first);
+ line = string(3, ' ') + prn.toString();
+ }
+ catch (Exception& e) {
+ FFStreamError ffse(e);
+ GPSTK_RETHROW(ffse);
+ }
+ }
+ else if ((numObsWritten % maxObsPerLine) == 0)
+ {
+ line += prnObsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ line = string(6, ' ');
+ }
+ line += rightJustify(asString(*vecItr), 6);
+ ++vecItr;
+ ++numObsWritten;
+ }
+ line += string(60 - line.size(), ' ');
+ line += prnObsString;
+ strm << line << endl;
+ strm.lineNumber++;
+ itr++;
+ }
+ }
+ if (valid & endValid)
+ {
+ line = string(60, ' ');
+ line += endOfHeader;
+ strm << line << endl;
+ strm.lineNumber++;
+ }
+ } // end RinexObsHeader::WriteHeaderRecords()
+
+
+ // this function parses a single header record
+ void RinexObsHeader::ParseHeaderRecord(string& line)
+ throw(FFStreamError)
+ {
+ string label(line, 60, 20);
+
+ if (label == versionString)
+ {
+ version = asDouble(line.substr(0,20));
+ fileType = strip(line.substr(20, 20));
+ if ( (fileType[0] != 'O') &&
+ (fileType[0] != 'o'))
+ {
+ FFStreamError e("This isn't a Rinex Obs file");
+ GPSTK_THROW(e);
+ }
+ string system_str = strip(line.substr(40, 20));
+ try {
+ system.fromString(system_str);
+ }
+ catch (Exception& e)
+ {
+ FFStreamError ffse("Input satellite system is unsupported: " + system_str);
+ GPSTK_THROW(ffse);
+ }
+ valid |= versionValid;
+ }
+ else if (label == runByString )
+ {
+ fileProgram = strip(line.substr(0, 20));
+ fileAgency = strip(line.substr(20, 20));
+ date = strip(line.substr(40, 20));
+ valid |= runByValid;
+ }
+ else if (label == commentString)
+ {
+ string s = strip(line.substr(0, 60));
+ commentList.push_back(s);
+ valid |= commentValid;
+ }
+ else if (label == markerNameString)
+ {
+ markerName = strip(line.substr(0,60));
+ valid |= markerNameValid;
+ }
+ else if (label == markerNumberString)
+ {
+ markerNumber = strip(line.substr(0,20));
+ valid |= markerNumberValid;
+ }
+ else if (label == observerString)
+ {
+ observer = strip(line.substr(0,20));
+ agency = strip(line.substr(20,40));
+ valid |= observerValid;
+ }
+ else if (label == receiverString)
+ {
+ recNo = strip(line.substr(0, 20));
+ recType = strip(line.substr(20,20));
+ recVers = strip(line.substr(40,20));
+ valid |= receiverValid;
+ }
+ else if (label ==antennaTypeString)
+ {
+ antNo = strip(line.substr(0, 20));
+ antType = strip(line.substr(20, 20));
+ valid |= antennaTypeValid;
+ }
+ else if (label == antennaPositionString)
+ {
+ antennaPosition[0] = asDouble(line.substr(0, 14));
+ antennaPosition[1] = asDouble(line.substr(14, 14));
+ antennaPosition[2] = asDouble(line.substr(28, 14));
+ valid |= antennaPositionValid;
+ }
+ else if (label == antennaOffsetString)
+ {
+ antennaOffset[0] = asDouble(line.substr(0, 14));
+ antennaOffset[1] = asDouble(line.substr(14, 14));
+ antennaOffset[2] = asDouble(line.substr(28, 14));
+ valid |= antennaOffsetValid;
+ }
+ else if (label == waveFactString)
+ {
+ // first time reading this
+ if (! (valid & waveFactValid))
+ {
+ wavelengthFactor[0] = asInt(line.substr(0,6));
+ wavelengthFactor[1] = asInt(line.substr(6,6));
+ valid |= waveFactValid;
+ }
+ // additional wave fact lines
+ else
+ {
+ const int maxSatsPerLine = 7;
+ int Nsats;
+ ExtraWaveFact ewf;
+ ewf.wavelengthFactor[0] = asInt(line.substr(0,6));
+ ewf.wavelengthFactor[1] = asInt(line.substr(6,6));
+ Nsats = asInt(line.substr(12,6));
+
+ if (Nsats > maxSatsPerLine) // > not >=
+ {
+ FFStreamError e("Invalid number of Sats for " + waveFactString);
+ GPSTK_THROW(e);
+ }
+
+ for (int i = 0; i < Nsats; i++)
+ {
+ try {
+ RinexSatID prn(line.substr(21+i*6,3));
+ ewf.satList.push_back(prn);
+ }
+ catch (Exception& e){
+ FFStreamError ffse(e);
+ GPSTK_RETHROW(ffse);
+ }
+ }
+
+ extraWaveFactList.push_back(ewf);
+ }
+ }
+ else if (label == numObsString)
+ {
+ const int maxObsPerLine = 9;
+ // process the first line
+ if (! (valid & obsTypeValid))
+ {
+ numObs = asInt(line.substr(0,6));
+
+ for (int i = 0; (i < numObs) && (i < maxObsPerLine); i++)
+ {
+ int position = i * 6 + 6 + 4;
+ RinexObsType rt = convertObsType(line.substr(position,2));
+ obsTypeList.push_back(rt);
+ }
+ valid |= obsTypeValid;
+ }
+ // process continuation lines
+ else
+ {
+ for (int i = obsTypeList.size();
+ (i < numObs) && ( (i % maxObsPerLine) < maxObsPerLine); i++)
+ {
+ int position = (i % maxObsPerLine) * 6 + 6 + 4;
+ RinexObsType rt = convertObsType(line.substr(position,2));
+ obsTypeList.push_back(rt);
+ }
+ }
+ }
+ else if (label == intervalString)
+ {
+ interval = asDouble(line.substr(0, 10));
+ valid |= intervalValid;
+ }
+ else if (label == firstTimeString)
+ {
+ firstObs = parseTime(line);
+ firstSystem.system = RinexSatID::systemGPS;
+ if(line.substr(48,3)=="GLO") firstSystem.system=RinexSatID::systemGlonass;
+ if(line.substr(48,3)=="GAL") firstSystem.system=RinexSatID::systemGalileo;
+ valid |= firstTimeValid;
+ }
+ else if (label == lastTimeString)
+ {
+ lastObs = parseTime(line);
+ lastSystem.system = RinexSatID::systemGPS;
+ if(line.substr(48,3)=="GLO") lastSystem.system=RinexSatID::systemGlonass;
+ if(line.substr(48,3)=="GAL") lastSystem.system=RinexSatID::systemGalileo;
+ valid |= lastTimeValid;
+ }
+ else if (label == receiverOffsetString)
+ {
+ receiverOffset = asInt(line.substr(0,6));
+ valid |= receiverOffsetValid;
+ }
+ else if (label == leapSecondsString)
+ {
+ leapSeconds = asInt(line.substr(0,6));
+ valid |= leapSecondsValid;
+ }
+ else if (label == numSatsString)
+ {
+ numSVs = asInt(line.substr(0,6)) ;
+ valid |= numSatsValid;
+ }
+ else if (label == prnObsString)
+ {
+ const int maxObsPerLine = 9;
+ // continuation lines... you have to know what PRN
+ // this is continuing for, hence lastPRN
+ if ((lastPRN.id != -1) &&
+ (numObsForSat[lastPRN].size() != obsTypeList.size()))
+ {
+ for(int i = numObsForSat[lastPRN].size();
+ (i < obsTypeList.size()) &&
+ ( (i % maxObsPerLine) < maxObsPerLine); i++)
+ {
+ numObsForSat[lastPRN].push_back(asInt(line.substr((i%maxObsPerLine)*6+6,6)));
+ }
+ }
+ else
+ {
+ try {
+ lastPRN.fromString(line.substr(3,3));
+ }
+ catch (Exception& e) {
+ FFStreamError ffse(e);
+ GPSTK_RETHROW(ffse);
+ }
+ vector<int> numObsList;
+ for(int i = 0;
+ (i < obsTypeList.size()) && (i < maxObsPerLine); i++)
+ {
+ numObsList.push_back(asInt(line.substr(i*6+6,6)));
+ }
+
+ numObsForSat[lastPRN] = numObsList;
+ }
+ valid |= prnObsValid;
+ }
+ else if (label == endOfHeader)
+ {
+ valid |= endValid;
+ }
+ else
+ {
+ FFStreamError e("Unidentified label: " + label);
+ GPSTK_THROW(e);
+ }
+ } // end of RinexObsHeader::ParseHeaderRecord(string& line)
+
+
+ // This function parses the entire header from the given stream
+ void RinexObsHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ RinexObsStream& strm = dynamic_cast<RinexObsStream&>(ffs);
+
+ // if already read, just return
+ if (strm.headerRead == true)
+ return;
+
+ // since we're reading a new header, we need to reinitialize
+ // all our list structures. all the other objects should be ok.
+ // this also applies if we threw an exception the first time we read
+ // the header and are now re-reading it. some of these could be full
+ // and we need to empty them.
+ commentList.clear();
+ wavelengthFactor[0] = wavelengthFactor[1] = 1;
+ extraWaveFactList.clear();
+ obsTypeList.clear();
+ numObsForSat.clear();
+ valid = 0;
+ numObs = 0;
+ lastPRN.id = -1;
+
+ string line;
+
+ while (!(valid & endValid))
+ {
+ strm.formattedGetLine(line);
+ StringUtils::stripTrailing(line);
+
+ if (line.length()==0)
+ continue;
+ else if (line.length()<60 || line.length()>80)
+ {
+ FFStreamError e("Invalid line length");
+ GPSTK_THROW(e);
+ }
+
+ try
+ {
+ ParseHeaderRecord(line);
+ }
+ catch(FFStreamError& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+
+ } // end while(not end of header)
+
+ unsigned long allValid;
+ if (version == 2.0) allValid = allValid20;
+ else if (version == 2.1) allValid = allValid21;
+ else if (version == 2.11) allValid = allValid211;
+ else
+ {
+ FFStreamError e("Unknown or unsupported RINEX version " +
+ asString(version));
+ GPSTK_THROW(e);
+ }
+
+ if ( (allValid & valid) != allValid)
+ {
+ FFStreamError e("Incomplete or invalid header");
+ GPSTK_THROW(e);
+ }
+
+ // If we get here, we should have reached the end of header line
+ strm.header = *this;
+ strm.headerRead = true;
+
+ } // end of reallyGetRecord()
+
+
+
+ RinexObsHeader::RinexObsType
+ RinexObsHeader::convertObsType(const string& oneObs)
+ throw(FFStreamError)
+ {
+ RinexObsType ot(RegisteredRinexObsTypes[0]); // Unknown type
+ for(int i=0; i<RegisteredRinexObsTypes.size(); i++) {
+ if(RegisteredRinexObsTypes[i].type == oneObs) {
+ ot = RegisteredRinexObsTypes[i];
+ break;
+ }
+ //FFStreamError e("Bad obs type: " + oneObs);
+ //GPSTK_THROW(e);
+ }
+ return ot;
+ }
+ string
+ RinexObsHeader::convertObsType(const RinexObsHeader::RinexObsType& oneObs)
+ throw(FFStreamError)
+ {
+ return oneObs.type;
+ }
+
+
+ DayTime RinexObsHeader::parseTime(const string& line) const
+ {
+ int year, month, day, hour, min;
+ double sec;
+
+ year = asInt( line.substr(0, 6 ));
+ month = asInt( line.substr(6, 6 ));
+ day = asInt( line.substr(12, 6 ));
+ hour = asInt( line.substr(18, 6 ));
+ min = asInt( line.substr(24, 6 ));
+ sec = asDouble(line.substr(30, 13));
+ return DayTime(year, month, day, hour, min, sec);
+ }
+
+ string RinexObsHeader::writeTime(const DayTime& dt) const
+ {
+ string line;
+ line = rightJustify(asString<short>(dt.year()), 6);
+ line += rightJustify(asString<short>(dt.month()), 6);
+ line += rightJustify(asString<short>(dt.day()), 6);
+ line += rightJustify(asString<short>(dt.hour()), 6);
+ line += rightJustify(asString<short>(dt.minute()), 6);
+ line += rightJustify(asString(dt.second(), 7), 13);
+ return line;
+ }
+
+ void RinexObsHeader::dump(ostream& s) const
+ {
+ int i,j;
+ s << "---------------------------------- REQUIRED ----------------------------------\n";
+ string str;
+ str = system.systemChar();
+ str = str + " (" + system.systemString() + ")";
+ s << "Rinex Version " << fixed << setw(5) << setprecision(2) << version
+ << ", File type " << fileType << ", System " << str << ".\n";
+ s << "Prgm: " << fileProgram << ", Run: " << date << ", By: " << fileAgency << endl;
+ s << "Marker name: " << markerName << ".\n";
+ s << "Obs'r : " << observer << ", Agency: " << agency << endl;
+ s << "Rec#: " << recNo << ", Type: " << recType << ", Vers: " << recVers << endl;
+ s << "Antenna # : " << antNo << ", Type : " << antType << endl;
+ s << "Position (XYZ,m) : " << setprecision(4) << antennaPosition << ".\n";
+ s << "Antenna offset (ENU,m) : " << setprecision(4) << antennaOffset << ".\n";
+ s << "Wavelength factors (default) L1:" << wavelengthFactor[0]
+ << ", L2: " << wavelengthFactor[1] << ".\n";
+ for(i=0; i<extraWaveFactList.size(); i++) {
+ s << "Wavelength factors (extra) L1:"
+ << extraWaveFactList[i].wavelengthFactor[0]
+ << ", L2: " << extraWaveFactList[i].wavelengthFactor[1]
+ << ", for Sats";
+ for(j=0; j<extraWaveFactList[i].satList.size(); j++)
+ s << " " << extraWaveFactList[i].satList[j];
+ s << endl;
+ }
+ s << "Observation types (" << obsTypeList.size() << ") :\n";
+ for(i=0; i<obsTypeList.size(); i++)
+ s << " Type #" << i << " = "
+ << gpstk::RinexObsHeader::convertObsType(obsTypeList[i])
+ << " " << obsTypeList[i].description
+ << " (" << obsTypeList[i].units << ")." << endl;
+ s << "Time of first obs " << firstObs.printf("%04Y/%02m/%02d %02H:%02M:%010.7f")
+ << " " << (firstSystem.system==RinexSatID::systemGlonass ? "GLO" :
+ (firstSystem.system==RinexSatID::systemGalileo ? "GAL" : "GPS")) << endl;
+ s << "(This header is ";
+ if((valid & allValid211) == allValid211) s << "VALID 2.11";
+ else if((valid & allValid21) == allValid21) s << "VALID 2.1";
+ else if((valid & allValid20) == allValid20) s << "VALID 2.0";
+ else s << "NOT VALID";
+ s << " Rinex.)\n";
+
+ if(!(valid & versionValid)) s << " Version is NOT valid\n";
+ if(!(valid & runByValid)) s << " Run by is NOT valid\n";
+ if(!(valid & markerNameValid)) s << " Marker Name is NOT valid\n";
+ if(!(valid & observerValid)) s << " Observer is NOT valid\n";
+ if(!(valid & receiverValid)) s << " Receiver is NOT valid\n";
+ if(!(valid & antennaTypeValid)) s << " Antenna Type is NOT valid\n";
+ if(!(valid & antennaPositionValid)) s << " Ant Position is NOT valid\n";
+ if(!(valid & antennaOffsetValid)) s << " Antenna Offset is NOT valid\n";
+ if(!(valid & waveFactValid)) s << " Wavelength factor is NOT valid\n";
+ if(!(valid & obsTypeValid)) s << " Obs Type is NOT valid\n";
+ if(!(valid & firstTimeValid)) s << " First time is NOT valid\n";
+ if(!(valid & endValid)) s << " End is NOT valid\n";
+
+ s << "---------------------------------- OPTIONAL ----------------------------------\n";
+ if(valid & markerNumberValid) s << "Marker number : " << markerNumber << endl;
+ if(valid & intervalValid) s << "Interval = "
+ << fixed << setw(7) << setprecision(3) << interval << endl;
+ if(valid & lastTimeValid) s << "Time of last obs "
+ << lastObs.printf("%04Y/%02m/%02d %02H:%02M:%010.7f")
+ << " " << (lastSystem.system==RinexSatID::systemGlonass ? "GLO":
+ (lastSystem.system==RinexSatID::systemGalileo ? "GAL" : "GPS")) << endl;
+ if(valid & leapSecondsValid) s << "Leap seconds: " << leapSeconds << endl;
+ if(valid & receiverOffsetValid) s << "Clock offset record is present and offsets "
+ << (receiverOffset?"ARE":"are NOT") << " applied." << endl;
+ if(valid & numSatsValid) s << "Number of Satellites with data : " << numSVs << endl;
+ if(valid & prnObsValid) {
+ s << "SAT ";
+ for(i=0; i<obsTypeList.size(); i++)
+ s << setw(7) << convertObsType(obsTypeList[i]);
+ s << endl;
+ map<SatID, vector<int> >::const_iterator sat_itr = numObsForSat.begin();
+ while (sat_itr != numObsForSat.end()) {
+ vector<int> obsvec=sat_itr->second;
+ s << " " << RinexSatID(sat_itr->first) << " ";
+ for(i=0; i<obsvec.size(); i++) s << " " << setw(6) << obsvec[i];
+ s << endl;
+ sat_itr++;
+ }
+ }
+ if(commentList.size() && !(valid & commentValid)) s << " Comment is NOT valid\n";
+ s << "Comments (" << commentList.size() << ") :\n";
+ for(i=0; i<commentList.size(); i++)
+ s << commentList[i] << endl;
+ s << "-------------------------------- END OF HEADER -------------------------------\n";
+ }
+
+ // return 1 if type already defined,
+ // 0 if successful
+ // -1 if not successful - invalid input
+ int RegisterExtendedRinexObsType(string t, string d, string u, unsigned int dep)
+ {
+ if(t.empty()) return -1;
+ // throw if t="UN" ?
+ // check that it is not duplicated
+ for(int i=0; i<RinexObsHeader::RegisteredRinexObsTypes.size(); i++) {
+ if(RinexObsHeader::RegisteredRinexObsTypes[i].type == t) { return 1; }
+ }
+ RinexObsHeader::RinexObsType ot;
+ if(t.size()>2) t.resize(2,' '); ot.type = stripTrailing(t);
+ if(d.size()>20) d.resize(20,' '); ot.description = stripTrailing(d);
+ if(u.size()>10) u.resize(10,' '); ot.units = stripTrailing(u);
+ ot.depend = dep;
+ RinexObsHeader::RegisteredRinexObsTypes.push_back(ot);
+ return 0;
+ }
+
+ // Pretty print a list of standard Rinex observation types
+ void DisplayStandardRinexObsTypes(ostream& s)
+ {
+ s << "The list of standard Rinex obs types:\n";
+ s << " OT Description Units\n";
+ s << " -- -------------------- ---------\n";
+ for(int i=0; i<RinexObsHeader::StandardRinexObsTypes.size(); i++) {
+ string line;
+ line = string(" ")+RinexObsHeader::StandardRinexObsTypes[i].type;
+ line += leftJustify(string(" ")+RinexObsHeader::StandardRinexObsTypes[i].description,21);
+ line += leftJustify(string(" ")+RinexObsHeader::StandardRinexObsTypes[i].units,11);
+ s << line << endl;
+ }
+ }
+
+ // Pretty print a list of registered extended Rinex observation types
+ void DisplayExtendedRinexObsTypes(ostream& s)
+ {
+ s << "The list of available extended Rinex obs types:\n";
+ s << " OT Description Units Required input (EP=ephemeris,PS=Rx Position)\n";
+ s << " -- -------------------- --------- ------------------\n";
+ for(int i=RinexObsHeader::StandardRinexObsTypes.size();
+ i<RinexObsHeader::RegisteredRinexObsTypes.size(); i++) {
+ string line;
+ line = string(" ")+RinexObsHeader::RegisteredRinexObsTypes[i].type;
+ line += leftJustify(string(" ")+RinexObsHeader::RegisteredRinexObsTypes[i].description,21);
+ line += leftJustify(string(" ")+RinexObsHeader::RegisteredRinexObsTypes[i].units,11);
+ for(int j=1; j<=6; j++) {
+ if(j==3 || j==4) continue;
+ if(RinexObsHeader::RegisteredRinexObsTypes[i].depend &
+ RinexObsHeader::StandardRinexObsTypes[j].depend)
+ line += string(" ")+RinexObsHeader::StandardRinexObsTypes[j].type;
+ else line += string(" ");
+ }
+ if(RinexObsHeader::RegisteredRinexObsTypes[i].depend & RinexObsHeader::RinexObsType::EPdepend)
+ line += string(" EP"); else line += string(" ");
+ if(RinexObsHeader::RegisteredRinexObsTypes[i].depend & RinexObsHeader::RinexObsType::PSdepend)
+ line += string(" PS"); else line += string(" ");
+ s << line << endl;
+ }
+ }
+
+} // namespace gpstk
diff --git a/dev/src/RinexObsHeader.hpp b/dev/src/RinexObsHeader.hpp
new file mode 100644
index 0000000..c9db470
--- /dev/null
+++ b/dev/src/RinexObsHeader.hpp
@@ -0,0 +1,373 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexObsHeader.hpp
+ * Encapsulate header of Rinex observation file, including I/O
+ */
+
+#ifndef GPSTK_RINEXOBSHEADER_HPP
+#define GPSTK_RINEXOBSHEADER_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+#include <iostream>
+#include <iomanip>
+
+#include "DayTime.hpp"
+#include "FFStream.hpp"
+#include "RinexObsBase.hpp"
+#include "Triple.hpp"
+#include "RinexSatID.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexObs */
+ //@{
+
+ /**
+ * This class models the header for a RINEX Observation File.
+ * @sa gpstk::RinexObsData and gpstk::RinexObsStream.
+ * @sa rinex_obs_test.cpp and rinex_obs_read_write.cpp for examples.
+ */
+ class RinexObsHeader : public RinexObsBase
+ {
+ public:
+
+ /// A Simple Constructor.
+ RinexObsHeader() : version(2.1), valid()
+ {}
+
+ /// Clear (empty out) header
+ inline void clear()
+ {
+ version = 2.11;
+ valid = 0;
+ commentList.clear();
+ wavelengthFactor[0] = wavelengthFactor[1] = 1;
+ extraWaveFactList.clear();
+ obsTypeList.clear();
+ numObsForSat.clear();
+ numObs = 0;
+ lastPRN.id = -1;
+ }
+
+ /**
+ * @name RinexObsHeaderFormatStrings
+ * RINEX Observation Header Formatting Strings
+ */
+ //@{
+ static const std::string versionString; ///< "RINEX VERSION / TYPE"
+ static const std::string runByString; ///< "PGM / RUN BY / DATE"
+ static const std::string commentString; ///< "COMMENT"
+ static const std::string markerNameString; ///< "MARKER NAME"
+ static const std::string markerNumberString; ///< "MARKER NUMBER"
+ static const std::string observerString; ///< "OBSERVER / AGENCY"
+ static const std::string receiverString; ///< "REC # / TYPE / VERS"
+ static const std::string antennaTypeString; ///< "ANT # / TYPE"
+ static const std::string antennaPositionString; ///< "APPROX POSITION XYZ"
+ static const std::string antennaOffsetString; ///< "ANTENNA: DELTA H/E/N"
+ static const std::string waveFactString; ///< "WAVELENGTH FACT L1/2"
+ static const std::string numObsString; ///< "# / TYPES OF OBSERV"
+ static const std::string intervalString; ///< "INTERVAL"
+ static const std::string firstTimeString; ///< "TIME OF FIRST OBS"
+ static const std::string lastTimeString; ///< "TIME OF LAST OBS"
+ static const std::string receiverOffsetString; ///< "RCV CLOCK OFFS APPL"
+ static const std::string leapSecondsString; ///< "LEAP SECONDS"
+ static const std::string numSatsString; ///< "# OF SATELLITES"
+ static const std::string prnObsString; ///< "PRN / # OF OBS"
+ static const std::string endOfHeader; ///< "END OF HEADER"
+ //@}
+
+ /// Validity bits for the RINEX Observation Header
+ enum validBits
+ {
+ versionValid = 0x01, ///< "RINEX VERSION / TYPE"
+ runByValid = 0x02, ///< "PGM / RUN BY / DATE"
+ commentValid = 0x04, ///< "COMMENT"
+ markerNameValid = 0x08, ///< "MARKER NAME"
+ markerNumberValid = 0x010, ///< "MARKER NUMBER"
+ observerValid = 0x020, ///< "OBSERVER / AGENCY"
+ receiverValid = 0x040, ///< "REC # / TYPE / VERS"
+ antennaTypeValid = 0x080, ///< "ANT # / TYPE"
+ antennaPositionValid = 0x0100, ///< "APPROX POSITION XYZ"
+ antennaOffsetValid = 0x0200, ///< "ANTENNA: DELTA H/E/N"
+ waveFactValid = 0x0400, ///< "WAVELENGTH FACT L1/2"
+ obsTypeValid = 0x0800, ///< "# / TYPES OF OBSERV"
+ intervalValid = 0x01000, ///< "INTERVAL"
+ firstTimeValid = 0x02000, ///< "TIME OF FIRST OBS"
+ lastTimeValid = 0x04000, ///< "TIME OF LAST OBS"
+ receiverOffsetValid = 0x08000, ///< "RCV CLOCK OFFS APPL"
+ leapSecondsValid = 0x0100000, ///< "LEAP SECONDS"
+ numSatsValid = 0x0200000, ///< "# OF SATELLITES"
+ prnObsValid = 0x0400000, ///< "PRN / # OF OBS"
+
+ endValid = 0x080000000, ///< "END OF HEADER"
+
+ /// This mask is for all required valid fields for RINEX 2.0
+ allValid20 = 0x080002FEB,
+ /// This mask is for all required valid fields for RINEX 2.1
+ allValid21 = 0x080002FEB,
+ /// This mask is for all required valid fields for RINEX 2.11
+ allValid211 = 0x080002FEB
+ };
+
+ /// RINEX Observation Types
+ struct RinexObsType
+ {
+ std::string type; ///< 2- char type e.g. L1, P2
+ std::string description; ///< 20- char description (optional) e.g. "L1 pseudorange"
+ std::string units; ///< 10- char units (optional) e.g. "meters"
+ unsigned int depend;
+ RinexObsType() : type(std::string("UN")),description(std::string("Unknown or Invalid")),
+ units(std::string("")),depend(0) {}
+ RinexObsType(std::string t, std::string d, std::string u, unsigned int dep=0) :
+ type(t),description(d),units(u),depend(dep) {}
+ static const unsigned int C1depend;
+ static const unsigned int L1depend;
+ static const unsigned int L2depend;
+ static const unsigned int P1depend;
+ static const unsigned int P2depend;
+ static const unsigned int EPdepend;
+ static const unsigned int PSdepend;
+ };
+
+ /** @name Standard RINEX observation types
+ */
+ //@{
+ static const RinexObsType UN;
+ static const RinexObsType L1;
+ static const RinexObsType L2;
+ static const RinexObsType C1;
+ static const RinexObsType C2;
+ static const RinexObsType P1;
+ static const RinexObsType P2;
+ static const RinexObsType D1;
+ static const RinexObsType D2;
+ static const RinexObsType S1;
+ static const RinexObsType S2;
+ static const RinexObsType T1;
+ static const RinexObsType T2;
+ static const RinexObsType C5;
+ static const RinexObsType L5;
+ static const RinexObsType D5;
+ static const RinexObsType S5;
+ // Galileo only
+ static const RinexObsType C6;
+ static const RinexObsType L6;
+ static const RinexObsType D6;
+ static const RinexObsType S6;
+ static const RinexObsType C7;
+ static const RinexObsType L7;
+ static const RinexObsType D7;
+ static const RinexObsType S7;
+ static const RinexObsType C8;
+ static const RinexObsType L8;
+ static const RinexObsType D8;
+ static const RinexObsType S8;
+
+ //@}
+
+ static const std::vector<RinexObsType> StandardRinexObsTypes;
+ static std::vector<RinexObsType> RegisteredRinexObsTypes;
+
+ /// Holds the data for the extra Wavelength Factor lines
+ struct ExtraWaveFact
+ {
+ /// List of PRNs with this wavelength factor.
+ std::vector<SatID> satList;
+ /// The vector of wavelength factor values.
+ short wavelengthFactor[2];
+ };
+
+ /** @name RinexObsHeaderValues
+ */
+ //@{
+ double version; ///< RINEX VERSION & TYPE
+ std::string fileType; ///< RINEX FILETYPE (Observation Navigation etc)
+ //std::string system_str; ///< The string (for file i/o) giving the RINEX system
+ RinexSatID system; ///< The RINEX satellite system
+ std::string fileProgram, ///< The program used to generate this file
+ fileAgency, ///< Who ran the program.
+ date; ///< When the program was run.
+ std::vector<std::string> commentList; ///< Comments in header (optional)
+ std::string markerName, ///< MARKER NAME
+ markerNumber; ///< MARKER NUMBER (optional)
+ std::string observer, ///< OBSERVER : who collected the data
+ agency; ///< OBSERVER'S AGENCY
+ std::string recNo, ///< RECEIVER NUMBER
+ recType, ///< RECEIVER TYPE
+ recVers; ///< RECEIVER VERSION
+ std::string antNo, ///< ANTENNA NUMBER
+ antType; ///< ANTENNA TYPE
+ gpstk::Triple antennaPosition; ///< APPROXIMATE POSITION XYZ
+ gpstk::Triple antennaOffset; ///< ANTENNA: DELTA H/E/N
+ short wavelengthFactor[2]; ///< default WAVELENGTH FACTORS
+ std::vector<ExtraWaveFact> extraWaveFactList; ///< extra (per PRN) WAVELENGTH FACTORS
+ std::vector<RinexObsType> obsTypeList; ///< NUMBER & TYPES OF OBSERV
+ double interval; ///< INTERVAL (optional)
+ DayTime firstObs ; ///< TIME OF FIRST OBS
+ RinexSatID firstSystem; ///< RINEX satellite system of FIRST OBS timetag
+ DayTime lastObs ; ///< TIME OF LAST OBS (optional)
+ RinexSatID lastSystem; ///< RINEX satellite system of LAST OBS timetag
+ int receiverOffset; ///< RCV CLOCK OFFS APPL (optional)
+ int leapSeconds; ///< LEAP SECONDS (optional)
+ short numSVs; ///< NUMBER OF SATELLITES in following map (optional)
+ std::map<SatID, std::vector<int> > numObsForSat; ///< PRN / # OF OBS (optional)
+ unsigned long valid; ///< Bits set when individual header members are present and valid
+ int numObs; ///< used to save the number of obs on # / TYPES continuation lines.
+ RinexSatID lastPRN; ///< used to save the current PRN while reading PRN/OBS continuation lines.
+ //@}
+
+ /// Destructor
+ virtual ~RinexObsHeader() {}
+
+ // The next four lines is our common interface
+ /// RinexObsHeader is a "header" so this function always returns true.
+ virtual bool isHeader() const {return true;}
+
+ /**
+ * This is a simple Debug output function.
+ * It simply outputs the version, name and antenna number of this
+ * RINEX header.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ /**
+ * This function converts the string in \a oneObs to a RinexObsType.
+ */
+ static RinexObsType convertObsType(const std::string& oneObs)
+ throw(FFStreamError);
+
+ /**
+ * This function converts the RinexObsType in \a oneObs to a string.
+ */
+ static std::string convertObsType(const RinexObsType& oneObs)
+ throw(FFStreamError);
+
+ /**
+ * Parse a single header record, and modify valid accordingly.
+ * Used by reallyGetRecord for both RinexObsHeader and RinexObsData.
+ */
+ void ParseHeaderRecord(std::string& line)
+ throw(FFStreamError);
+
+ /// Compute the number of valid header records which WriteHeaderRecords() will write
+ int NumberHeaderRecordsToBeWritten(void) const throw();
+
+ /**
+ * Write all valid header records to the given stream.
+ * Used by reallyPutRecord for both RinexObsHeader and RinexObsData.
+ */
+ void WriteHeaderRecords(FFStream& s) const
+ throw(FFStreamError, gpstk::StringUtils::StringException);
+
+ /// Return boolean : is this a valid Rinex header?
+ bool isValid() const { return ((valid & allValid20) == allValid20); }
+
+ protected:
+ /**
+ * outputs this record to the stream correctly formatted.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This function retrieves the RINEX Header from the given FFStream.
+ * If an stream error is encountered, the stream is reset to its
+ * original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ friend class RinexObsData;
+
+ private:
+ /// Converts the daytime \a dt into a Rinex Obs time
+ /// string for the header
+ std::string writeTime(const DayTime& dt) const;
+
+ /**
+ * This function sets the time for this header.
+ * It looks at \a line to obtain the needed information.
+ */
+ DayTime parseTime(const std::string& line) const;
+
+ }; // end class RinexObsHeader
+
+ /// operator == for RinexObsHeader::RinexObsType
+ inline bool operator==(const RinexObsHeader::RinexObsType& x,
+ const RinexObsHeader::RinexObsType& y) { return (x.type == y.type); }
+
+ /// operator < for RinexObsHeader::RinexObsType
+ inline bool operator<(const RinexObsHeader::RinexObsType& x,
+ const RinexObsHeader::RinexObsType& y) { return (x.type < y.type); }
+
+ /// operator << for RinexObsHeader::RinexObsType
+ inline std::ostream& operator<<(std::ostream& s,
+ const RinexObsHeader::RinexObsType rot)
+ {
+ return s << "Type=" << rot.type
+ << ", Description=" << rot.description
+ << ", Units=" << rot.units;
+ }
+
+ /// Function to allow user to define a new RINEX observation type
+ int RegisterExtendedRinexObsType(std::string t,
+ std::string d=std::string("(undefined)"),
+ std::string u=std::string("undefined"),
+ unsigned int dep=0);
+
+ /// Pretty print a list of standard Rinex observation types
+ void DisplayStandardRinexObsTypes(std::ostream& s);
+
+ /// Pretty print a list of registered extended Rinex observation types
+ void DisplayExtendedRinexObsTypes(std::ostream& s);
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/RinexObsID.cpp b/dev/src/RinexObsID.cpp
new file mode 100644
index 0000000..bfc8029
--- /dev/null
+++ b/dev/src/RinexObsID.cpp
@@ -0,0 +1,64 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexObsID.cpp
+ * gpstk::RinexObsID - Identifies types of observations
+ */
+
+#include "RinexObsID.hpp"
+
+namespace gpstk
+{
+ RinexObsID::RinexObsID(const RinexObsHeader::RinexObsType& rot)
+ : ObsID()
+ {
+ // Note that the choice of tracking code for L1, L2, S1, S2 are arbitrary
+ // since they are ambiguous in the rinex 2 specifications
+ if (rot == RinexObsHeader::L1) {type=otPhase; band=cbL1; code=tcP;}
+ else if (rot == RinexObsHeader::P1) {type=otRange; band=cbL1; code=tcP;}
+ else if (rot == RinexObsHeader::C1) {type=otRange; band=cbL1; code=tcCA;}
+ else if (rot == RinexObsHeader::S1) {type=otSNR; band=cbL1; code=tcP;}
+ else if (rot == RinexObsHeader::D1) {type=otDoppler; band=cbL1; code=tcP;}
+
+ else if (rot == RinexObsHeader::L2) {type=otPhase; band=cbL2; code=tcP;}
+ else if (rot == RinexObsHeader::P2) {type=otRange; band=cbL2; code=tcP;}
+ else if (rot == RinexObsHeader::C2) {type=otRange; band=cbL2; code=tcC2LM;}
+ else if (rot == RinexObsHeader::S2) {type=otSNR; band=cbL2; code=tcP;}
+ else if (rot == RinexObsHeader::D2) {type=otDoppler; band=cbL2; code=tcP;}
+ }
+}
diff --git a/dev/src/RinexObsID.hpp b/dev/src/RinexObsID.hpp
new file mode 100644
index 0000000..804e7e6
--- /dev/null
+++ b/dev/src/RinexObsID.hpp
@@ -0,0 +1,70 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef GPSTK_RINEXOBSID_HPP
+#define GPSTK_RINEXOBSID_HPP
+
+/**
+ * @file RinexObsID.hpp
+ * gpstk::RinexObsID - A specialization of ObsID that has Rinex unique
+ stuff. The intent is to migrate the RinexObs classes to use this in lieu
+ of the RinexObsType subclass of RinexObsHeader. That probably won't happen
+ until the code to support rinex 3 is written.
+ */
+#include "ObsID.hpp"
+#include "RinexObsHeader.hpp"
+
+namespace gpstk
+{
+ class RinexObsID : public ObsID
+ {
+ public:
+ /// empty constructor, creates an invalid object
+ RinexObsID()
+ : ObsID() {};
+
+ /// Explicit constructior
+ RinexObsID(ObservationType ot, CarrierBand cb, TrackingCode tc)
+ : ObsID(ot, cb, tc) {};
+
+ /// a conversion constructor
+ RinexObsID(const RinexObsHeader::RinexObsType& rot);
+
+ };
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/RinexObsStream.hpp b/dev/src/RinexObsStream.hpp
new file mode 100644
index 0000000..2837d48
--- /dev/null
+++ b/dev/src/RinexObsStream.hpp
@@ -0,0 +1,110 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file RinexObsStream.hpp
+ * File stream for Rinex observation file data
+ */
+
+#ifndef GPSTK_RINEXOBSSTREAM_HPP
+#define GPSTK_RINEXOBSSTREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFTextStream.hpp"
+#include "RinexObsHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup RinexObs */
+ //@{
+
+ /**
+ * This class to reads a RINEX files.
+ *
+ * @sa gpstk::RinexObsData and gpstk::RinexObsHeader.
+ * @sa rinex_obs_test.cpp and rinex_obs_read_write.cpp for examples.
+ */
+ class RinexObsStream : public FFTextStream
+ {
+ public:
+ /// Default constructor
+ RinexObsStream()
+ : headerRead(false)
+ {}
+
+ /**
+ * The Constructor.
+ * @param fn the RINEX file to open
+ * @param mode how to open \a fn.
+ */
+ RinexObsStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {}
+
+ /// Destructor
+ virtual ~RinexObsStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = RinexObsHeader();
+ }
+
+ /// Whether or not the RinexObsHeader has been read
+ bool headerRead;
+ /// The header for this file.
+ RinexObsHeader header;
+ };
+
+ //@}
+
+} // namespace
+
+#endif
+
diff --git a/dev/src/RinexSatID.cpp b/dev/src/RinexSatID.cpp
new file mode 100644
index 0000000..2707d9d
--- /dev/null
+++ b/dev/src/RinexSatID.cpp
@@ -0,0 +1,51 @@
+#pragma ident "$Id: $"
+
+#include "RinexSatID.hpp"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+/**
+ * @file RinexSatID.cpp
+ * gpstk::RinexSatID - navigation system-independent representation of a satellite
+ * as defined by the RINEX specification.
+ */
+
+namespace gpstk
+{
+ char RinexSatID::fillchar = '0';
+}
diff --git a/dev/src/RinexSatID.hpp b/dev/src/RinexSatID.hpp
new file mode 100644
index 0000000..2f48f2a
--- /dev/null
+++ b/dev/src/RinexSatID.hpp
@@ -0,0 +1,205 @@
+#pragma ident "$Id: SatID.hpp 105 2006-08-31 15:53:26Z ocibu $"
+
+#ifndef GPSTK_RINEX_SATID_HPP
+#define GPSTK_RINEX_SATID_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+
+#include "Exception.hpp"
+#include "SatID.hpp"
+
+/**
+ * @file RinexSatID.hpp
+ * gpstk::RinexSatID - navigation system-independent representation of a satellite
+ * as defined by the RINEX specification.
+ */
+
+namespace gpstk
+{
+ class RinexSatID : public SatID
+ {
+ public:
+
+ /// empty constructor, creates an invalid object
+ RinexSatID() throw() { id=-1; system=systemGPS; }
+
+ /// explicit constructor, no defaults, RINEX systems only
+ RinexSatID(int p, SatelliteSystem s) throw()
+ {
+ id = p; system = s;
+ switch(s) {
+ case systemGPS:
+ case systemGalileo:
+ case systemGlonass:
+ case systemGeosync:
+ case systemTransit:
+ case systemMixed: break;
+ // invalidate anything non-RINEX
+ default:
+ system = systemUnknown;
+ id = -1;
+ }
+ }
+
+ /// constructor from string
+ RinexSatID(const std::string& str) throw(Exception)
+ {
+ try { fromString(str); }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ }
+
+ /// cast SatID to RinexSatID
+ RinexSatID(const SatID& sat) throw()
+ { *this = RinexSatID(sat.id,sat.system); }
+
+ /// set the fill character used in output
+ /// return the current fill character
+ char setfill(char c) throw()
+ { char csave=fillchar; fillchar=c; return csave; }
+
+ /// get the fill character used in output
+ char getfill() throw()
+ { return fillchar; }
+
+ // operator=, copy constructor and destructor built by compiler
+
+ /// return a character based on the system
+ /// return the single-character system descriptor
+ /// @note return only RINEX types, for non-RINEX systems return '?'
+ char systemChar() const throw()
+ {
+ switch(system) {
+ case systemGPS: return 'G';
+ case systemGalileo: return 'E';
+ case systemGlonass: return 'R';
+ case systemGeosync: return 'S';
+ case systemTransit: return 'T';
+ case systemMixed: return 'M';
+ default: return '?';
+ }
+ };
+
+ std::string systemString() const throw()
+ {
+ switch(system) {
+ case systemGPS: return "GPS";
+ case systemGalileo: return "Galileo";
+ case systemGlonass: return "Glonass";
+ case systemGeosync: return "Geosync";
+ case systemTransit: return "Transit";
+ case systemMixed: return "Mixed";
+ default: return "Unknown";
+ }
+ };
+
+ /// read from string
+ /// @note GPS is default system (no or unknown system char)
+ void fromString(const std::string s) throw(Exception)
+ {
+ char c;
+ std::istringstream iss(s);
+
+ id = -1; system = systemGPS; // default
+ if(s.find_first_not_of(std::string(" \t\n"), 0) == std::string::npos)
+ return; // all whitespace yields the default
+
+ iss >> c; // read one character (non-whitespace)
+ switch(c)
+ {
+ // no leading system character
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ iss.putback(c);
+ system = SatID::systemGPS;
+ break;
+ case 'R': case 'r':
+ system = SatID::systemGlonass;
+ break;
+ case 'T': case 't':
+ system = SatID::systemTransit;
+ break;
+ case 'S': case 's':
+ system = SatID::systemGeosync;
+ break;
+ case 'E': case 'e':
+ system = SatID::systemGalileo;
+ break;
+ case 'M': case 'm':
+ system = SatID::systemMixed;
+ break;
+ case ' ': case 'G': case 'g':
+ system = SatID::systemGPS;
+ break;
+ default: // non-RINEX system character
+ Exception e(std::string("Invalid system character \"")
+ + c + std::string("\""));
+ GPSTK_THROW(e);
+ }
+ iss >> id;
+ if(id <= 0) id = -1;
+ }
+
+ /// convert to string
+ std::string toString() const throw()
+ {
+ std::ostringstream oss;
+ oss.fill(fillchar);
+ oss << systemChar()
+ << std::setw(2) << id;
+ return oss.str();
+ }
+
+ private:
+
+ static char fillchar; ///< fill character used during stream output
+
+ }; // class RinexSatID
+
+ /// stream output for RinexSatID
+ inline std::ostream& operator<<(std::ostream& s, const RinexSatID& sat)
+ {
+ s << sat.toString();
+ return s;
+ }
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/RinexUtilities.cpp b/dev/src/RinexUtilities.cpp
new file mode 100644
index 0000000..9ba9ed3
--- /dev/null
+++ b/dev/src/RinexUtilities.cpp
@@ -0,0 +1,309 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexUtilities.cpp
+ * Miscellaneous RINEX-related utilities.
+ */
+
+//------------------------------------------------------------------------------------
+// system includes
+
+// GPSTk includes
+#include "RinexObsStream.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexUtilities.hpp"
+
+namespace gpstk {
+
+using namespace std;
+using namespace gpstk;
+
+//------------------------------------------------------------------------------
+int RegisterARLUTExtendedTypes(void)
+{
+try {
+ unsigned int EPPS = //0x60
+ RinexObsHeader::RinexObsType::EPdepend | RinexObsHeader::RinexObsType::PSdepend;
+ unsigned int L1L2 = //0x06
+ RinexObsHeader::RinexObsType::L1depend | RinexObsHeader::RinexObsType::L2depend;
+ unsigned int P1P2 = //0x18
+ RinexObsHeader::RinexObsType::P1depend | RinexObsHeader::RinexObsType::P2depend;
+ unsigned int EPEP=RinexObsHeader::RinexObsType::EPdepend;//0x20
+ unsigned int PELL=EPPS | L1L2;//0x66
+ unsigned int PEPP=EPPS | P1P2;//0x78
+ unsigned int PsLs=L1L2 | P1P2;//0x1E
+ unsigned int L1P1 = //0x0A
+ RinexObsHeader::RinexObsType::L1depend | RinexObsHeader::RinexObsType::P1depend;
+ unsigned int L2P2 = //0x14
+ RinexObsHeader::RinexObsType::L2depend | RinexObsHeader::RinexObsType::P2depend;
+ int j;
+ j = RegisterExtendedRinexObsType("ER","Ephemeris range", "meters", EPPS);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("RI","Iono Delay, Range", "meters", P1P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("PI","Iono Delay, Phase", "meters", L1L2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("TR","Tropospheric Delay", "meters", EPPS);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("RL","Relativity Correct.", "meters", EPEP);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("SC","SV Clock Bias", "meters", EPEP);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("EL","Elevation Angle", "degrees",EPPS);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("AZ","Azimuth Angle", "degrees",EPPS);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("SR","Slant TEC (PR)", "TECU", P1P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("SP","Slant TEC (Ph)", "TECU", L1L2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("VR","Vertical TEC (PR)", "TECU", PEPP);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("VP","Vertical TEC (Ph)", "TECU", PELL);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("LA","Lat Iono Intercept", "degrees",EPPS);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("LO","Lon Iono Intercept", "degrees",EPPS);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("P3","TFC(IF) Pseudorange", "meters", P1P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("L3","TFC(IF) Phase", "meters", L1L2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("PF","GeoFree Pseudorange", "meters", P1P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("LF","GeoFree Phase", "meters", L1L2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("PW","WideLane Pseudorange","meters", P1P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("LW","WideLane Phase", "meters", L1L2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("MP","Multipath (=M3)", "meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("R1","(P1 + L1)/2" ,"meters", L1P1);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("R2","(P2 + L2)/2" ,"meters", L2P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("M1","L1 Range minus Phase","meters", L1P1);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("M2","L2 Range minus Phase","meters", L2P2);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("M3","IF Range minus Phase","meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("M4","GF Range minus Phase","meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("M5","WL Range minus Phase","meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("XR","Non-dispersive Range","meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("XI","Ionospheric delay", "meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("X1","Range Error L1", "meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("X2","Range Error L2", "meters", PsLs);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("SX","Satellite ECEF-X", "meters", EPEP);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("SY","Satellite ECEF-Y", "meters", EPEP);
+ if(j) return j;
+ j = RegisterExtendedRinexObsType("SZ","Satellite ECEF-Z", "meters", EPEP);
+ if(j) return j;
+ return 0;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+bool isSP3File(const string& file)
+{
+try {
+ SP3Header header;
+ SP3Stream strm(file.c_str());
+ strm.exceptions(fstream::failbit);
+ try { strm >> header; } catch(Exception& e) { return false; }
+ strm.close();
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+bool isRinexNavFile(const string& file)
+{
+try {
+ RinexNavHeader header;
+ RinexNavStream rnstream;
+ try {
+ rnstream.open(file.c_str(),ios::in);
+ if(!rnstream) return false;
+ rnstream.exceptions(fstream::failbit);
+ }
+ catch(Exception& e) { return false; }
+ catch(exception& e) { return false; }
+ try { rnstream >> header; }
+ catch(Exception& e) { return false; }
+ catch(exception& e) { return false; }
+ rnstream.close();
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+bool isRinexObsFile(const string& file)
+{
+try {
+ RinexObsHeader header;
+ RinexObsStream rostream;
+ try {
+ rostream.open(file.c_str(),ios::in);
+ if(!rostream) return false;
+ rostream.exceptions(fstream::failbit);
+ }
+ catch(Exception& e) { return false; }
+ catch(exception& e) { return false; }
+ try { rostream >> header; }
+ catch(Exception& e) { return false; }
+ catch(exception& e) { return false; }
+ rostream.close();
+ return true;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+void sortRinexObsFiles(vector<string>& files)
+{
+try {
+ // build a hash with key = start time, value = filename
+ map<DayTime,string> hash;
+ for(int n=0; n<files.size(); n++) {
+ RinexObsHeader header;
+ RinexObsStream rostream(files[n].c_str());
+ rostream.exceptions(fstream::failbit);
+ try { rostream >> header; } catch(Exception& e) {
+ rostream.close();
+ continue;
+ }
+ rostream.close();
+ if(!header.isValid()) continue;
+ hash[header.firstObs] = files[n];
+ }
+ // return the sorted file names
+ files.clear();
+ map<DayTime,string>::const_iterator it = hash.begin();
+ while(it != hash.end()) {
+ files.push_back(it->second);
+ it++;
+ }
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+//------------------------------------------------------------------------------------
+int FillEphemerisStore(const vector<string>& files, SP3EphemerisStore& PE,
+ BCEphemerisStore& BCE)
+{
+try {
+ int nread=0;
+ RinexNavHeader rnh;
+ RinexNavData rne;
+ for(int i=0; i<files.size(); i++) {
+ if(files[i].empty()) throw Exception("File name is empty");
+ RinexNavStream strm(files[i].c_str());
+ if(!strm) throw Exception("Could not open file " + files[i]);
+ strm.close();
+ if(isRinexNavFile(files[i])) {
+ RinexNavStream RNFileIn(files[i].c_str());
+ RNFileIn.exceptions(fstream::failbit);
+ try {
+ RNFileIn >> rnh;
+ while (RNFileIn >> rne)
+ {
+ // check health...
+ if(rne.health == 0)
+ BCE.addEphemeris(rne);
+ }
+ nread++;
+ }
+ catch(Exception& e) {
+ //cerr << "Caught Exception while reading Rinex Nav file " << files[i]
+ // << " :\n" << e << endl;
+ //continue;
+ GPSTK_RETHROW(e);
+ }
+ }
+ else if(isSP3File(files[i])) {
+ try {
+ PE.loadFile(files[i]);
+ }
+ catch(Exception& e) {
+ //cerr << "Caught Exception while reading SP3 Nav file " << files[i]
+ // << " :\n" << e << endl;
+ //continue;
+ GPSTK_RETHROW(e);
+ }
+ nread++;
+ }
+ else
+ throw Exception("File " + files[i] + " is neither BCE nor PE file.");
+ }
+ return nread;
+}
+catch(Exception& e) { GPSTK_RETHROW(e); }
+catch(exception& e) { Exception E("std except: "+string(e.what())); GPSTK_THROW(E); }
+catch(...) { Exception e("Unknown exception"); GPSTK_THROW(e); }
+}
+
+} // end namespace gpstk
+
+//------------------------------------------------------------------------------------
+//------------------------------------------------------------------------------------
diff --git a/dev/src/RinexUtilities.hpp b/dev/src/RinexUtilities.hpp
new file mode 100644
index 0000000..cd1f191
--- /dev/null
+++ b/dev/src/RinexUtilities.hpp
@@ -0,0 +1,110 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file RinexUtilities.hpp
+ * Miscellaneous RINEX-related utilities for use with geomatics lib.
+ */
+
+#ifndef GPSTK_RINEX_UTILITIES_INCLUDE
+#define GPSTK_RINEX_UTILITIES_INCLUDE
+
+//------------------------------------------------------------------------------------
+// system includes
+#include <string>
+#include <vector>
+
+// GPSTk
+#include "BCEphemerisStore.hpp"
+#include "SP3EphemerisStore.hpp"
+
+namespace gpstk {
+//------------------------------------------------------------------------------------
+/** @defgroup rinexutils Rinex Utilities */
+//@{
+ /** Register commonly used extended Rinex observation types.
+ * @return 0 ok, or the return value of RegisterExtendedRinexObsType().
+ */
+int RegisterARLUTExtendedTypes(void);
+
+ /** Determine if the given file is an SP3 format file.
+ * @param file the filename
+ * @return true if the file is SP3 format.
+ */
+bool isSP3File(const std::string& file);
+
+ /** Determine if the given file is a Rinex navigation file.
+ * Open the file, read the header, and test its validity.
+ * @param file the filename
+ * @return true if the file is a valid Rinex navigation file.
+ */
+bool isRinexNavFile(const std::string& file);
+
+ /** Determine if the given file is a Rinex observation file.
+ * Open the file, read the header, and test its validity.
+ * @param file the filename
+ * @return true if the file is a valid Rinex observation file.
+ */
+bool isRinexObsFile(const std::string& file);
+
+ /** Sort a vector of RINEX obs file names on the time of the first observation
+ * as found in the header. Return the sorted list in the calling argument.
+ * Do not include files that are found not to be RINEX obs files, or that have
+ * invalid headers.
+ * @param files vector<string> containing filenames, with path
+ */
+void sortRinexObsFiles(std::vector<std::string>& files);
+
+ /** Open the files and add to the appropriate EphemerisStore.
+ * @param files vector of the filenames.
+ * @param PE an SP3EphemerisStore into which to put SP3 ephemeris data.
+ * @param BCE a BCEphemerisStore into which to put broadcast
+ * (Rinex Nav) ephemeris data.
+ * @return the number of files successfully read.
+ * Throws on errors.
+ */
+int FillEphemerisStore(const std::vector<std::string>& files,
+ gpstk::SP3EphemerisStore& PE,
+ gpstk::BCEphemerisStore& BCE);
+
+//@}
+
+} // end namespace gpstk
+
+#endif
+//------------------------------------------------------------------------------------
diff --git a/dev/src/RungeKutta4.cpp b/dev/src/RungeKutta4.cpp
new file mode 100644
index 0000000..32e7807
--- /dev/null
+++ b/dev/src/RungeKutta4.cpp
@@ -0,0 +1,120 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "RungeKutta4.hpp"
+
+/*
+ * @file RungeKutta4.hpp
+ * Implementation of a Runge Kutta integrator.
+ */
+
+void gpstk::RungeKutta4::integrateTo (double nextTime,
+ double stepSize)
+{
+ if (stepSize == 0)
+ stepSize = nextTime - currentTime;
+
+ bool done = false;
+
+ while (!done)
+ {
+ // Time steps
+ double ctPlusDeltaT = currentTime + stepSize;
+ double ctPlusHalfDeltaT = currentTime + (stepSize * .5);
+
+ // k1
+ k1 = stepSize * derivative(currentTime, currentState, k1);
+ tempy = currentState + (.5 * k1);
+
+ // k2
+ k2 = stepSize * derivative(ctPlusHalfDeltaT, tempy, k2);
+ tempy = currentState + (.5 * k2);
+
+ // k3
+ k3 = stepSize * derivative(ctPlusHalfDeltaT, tempy, k3);
+
+ // k4
+ k4 = stepSize * derivative(ctPlusDeltaT, tempy, k4);
+ currentState += (k1 + 2. * (k2 + k3) + k4) / 6. ;
+
+ // If we are within teps of the goal time, we are done.
+ if (fabs(currentTime + stepSize - nextTime) < teps)
+ done = true;
+
+ // If we are about to overstep, change the stepsize appropriately
+ // to hit our target final time;
+ if ((currentTime + stepSize) > nextTime)
+ stepSize = (nextTime - currentTime);
+
+ currentTime += stepSize;
+ }
+
+ currentTime = nextTime;
+}
+
+void gpstk::RungeKutta4::integrateTo (double nextTime,
+ Matrix<double>& error,
+ double stepSize)
+{
+ double deltaT = nextTime - currentTime;
+
+ // Save the current state and time for the second step.
+ double savedTime = currentTime;
+ gpstk::Matrix<double> savedState = currentState;
+
+ // First, take the integration using two steps.
+ integrateTo(currentTime + (deltaT * 0.5), stepSize);
+ integrateTo(nextTime, stepSize);
+
+ // Save the results.
+ gpstk::Matrix<double> twoStepState = currentState;
+
+ // Restore the original state.
+ currentTime = savedTime;
+ currentState = savedState;
+
+ // Now, take the integration using only one step.
+ integrateTo(nextTime, stepSize);
+ gpstk::Matrix<double> oneStepState = currentState;
+
+ error = oneStepState - twoStepState;
+
+ currentState = twoStepState + (twoStepState - oneStepState) / 15.0;
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/dev/src/RungeKutta4.hpp b/dev/src/RungeKutta4.hpp
new file mode 100644
index 0000000..582506a
--- /dev/null
+++ b/dev/src/RungeKutta4.hpp
@@ -0,0 +1,144 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+/*
+ * @file RungeKutta4.hpp
+ * RungeKutta4 class. Provides several versions of the Runge Kutta integration
+ * The algorithms are based on Ch.16 of "Numerical Recipes in C" but the
+ * implementation is entirely independent, i.e., this isn't the source
+ * distributed with the text.
+ */
+
+#ifndef GPSTK_RUNGEKUTTA4_H
+#define GPSTK_RUNGEKUTTA4_H
+
+#include "Matrix.hpp"
+
+namespace gpstk
+{
+
+ /** @addtogroup math */
+ //@{
+
+ /** The RungeKutta4 class provides a collection of integration routines
+ * that work on a Matrix of doubles. Integrations use a fixed step-size.
+ */
+ class RungeKutta4
+ {
+ public:
+ /** Constructor.
+ * @param initalState a reference to the original Matrix to work on
+ * that is copied to an internal Matrix.
+ * @param initialTime the time at which to begin integrations
+ * @param timeEpsilon how close the final internal timestep must match
+ * the specified final time of an integration
+ */
+ RungeKutta4(const Matrix<double>& initialState,
+ double initialTime=0,
+ double timeEpsilon=1e-18)
+ : currentState(initialState), currentTime(initialTime),
+ teps(timeEpsilon), M(initialState.rows()), N(initialState.cols()),
+ k1(M,N), k2(M,N), k3(M,N), k4(M,N), yn(M,N), tempy(M,N)
+ { }
+
+ /** The classic Runge Kutta 4th Order Integration Algorithm.
+ * This routine integrates using a Runge Kutta 4th order algorithm
+ * with a fixed step from the internal time to \a nextTime.
+ * @param nextTime the time to integrate to
+ * @param stepSize the amount time between internal integration steps
+ */
+ void integrateTo (double nextTime,
+ double stepSize = 0);
+
+ /** The classic Runge Kutta 4th-5th Order Integration Algorithm.
+ * This function integrates by applying a 4th order Runge Kutta
+ * algorithm multiple times. This provides two benefits. First, an
+ * estimate of the truncation error is returned. Second, the multiple
+ * 4th order estimates are combined to produce the 5th order estimate.
+ * @param nextTime the time to integrate to
+ * @param error the Matrix of estimated integration error
+ * (one for each element)
+ * @param stepSize the amount time between internal integration steps
+ */
+ void integrateTo (double nextTime,
+ Matrix<double>& error,
+ double stepSize = 0);
+
+ /** This is the function to be integrated.
+ * @param time the time at which to evaluate the derivative
+ * @param inState the Matrix to evaluate the derivative of at /a time.
+ * @param inStateDot the derivative of /a inState evaluated at /a time.
+ * @return a reference to /a inStateDot
+ */
+ virtual gpstk::Matrix<double>&
+ derivative(long double time,
+ const gpstk::Matrix<double>& inState,
+ gpstk::Matrix<double>& inStateDot) = 0;
+
+ /// Return the currnet time of the system.
+ double getTime(void)
+ { return currentTime; }
+
+ /// Return the current state of the system.
+ const Matrix<double>& getState(void)
+ { return currentState; }
+
+ protected:
+
+ /// Current time of the system
+ double currentTime;
+
+ /// State of the system at the current time
+ gpstk::Matrix<double> currentState;
+
+ double teps; //< Precision for time calculations and comparisons
+ int M; //< Number of rows in the state
+ int N; //< Number of columns in the state
+
+ private:
+
+ /// Disallow copy constructor
+ RungeKutta4(const RungeKutta4& cloneDonor);
+
+ /// Disallow the assignment operator
+ RungeKutta4& operator= (const RungeKutta4& right);
+
+ /** These values are only used in the integrateTo method(s).
+ * Declaring them here keeps them from being constructed every
+ * time the integrateTo method(s) are called.
+ */
+ Matrix<double> k1, k2, k3, k4, yn, tempy;
+
+ }; // end class RungeKutta4
+
+ //@}
+
+} // end namespace gpstk
+
+#endif
+
+
diff --git a/dev/src/SEMAlmanacStore.cpp b/dev/src/SEMAlmanacStore.cpp
new file mode 100644
index 0000000..e9f0d98
--- /dev/null
+++ b/dev/src/SEMAlmanacStore.cpp
@@ -0,0 +1,107 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SEMAlmanacStore.cpp
+ * Store SEM almanac information, and access by satellite and time
+ */
+
+#include "SEMAlmanacStore.hpp"
+
+namespace gpstk
+{
+ void SEMAlmanacStore::loadFile(const std::string& filename)
+ throw(gpstk::FileMissingException)
+ {
+ try
+ {
+ SEMStream strm(filename.c_str());
+ if (!strm)
+ {
+ FileMissingException e("File " + filename + " could not be opened.");
+ GPSTK_THROW(e);
+ }
+
+ SEMHeader header;
+ strm >> header;
+ addFile(filename, header);
+
+ SEMData rec;
+ while(strm >> rec)
+ {
+ //This is a fix to get the header and the data to share Toa and week.
+ //This should be fixed in the future
+ rec.Toa = header.Toa;
+ rec.week = header.week + 1024;
+ addAlmanac(AlmOrbit(rec));
+ }
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+
+ }
+
+ gpstk::DayTime SEMAlmanacStore::getFinalTime()
+ const
+ {
+ DayTime retDT = DayTime::BEGINNING_OF_TIME;
+ UBAMap::const_iterator satItr = uba.begin();
+ while (satItr != uba.end())
+ {
+ const EngAlmMap& eam = (*satItr).second;
+
+ EngAlmMap::const_iterator nextItr;
+ for (nextItr=eam.begin(); nextItr!=eam.end(); ++nextItr)
+ {
+ const AlmOrbit& ao = (*nextItr).second;
+ try
+ {
+ DayTime testT = ao.getToaTime();
+ if (testT<retDT) retDT = testT;
+ }
+ // Not to worry, worst case method return 'BEGINNING_OF_TIME'
+ catch(...)
+ {}
+ }
+ satItr++;
+ }
+ return(retDT);
+ }
+}
diff --git a/dev/src/SEMAlmanacStore.hpp b/dev/src/SEMAlmanacStore.hpp
new file mode 100644
index 0000000..b9ca865
--- /dev/null
+++ b/dev/src/SEMAlmanacStore.hpp
@@ -0,0 +1,74 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SEMAlmanacStore.hpp
+ * Store SEM almanac information, and access by satellite and time
+ */
+
+#ifndef SEMALMANACSTORE_HPP
+#define SEMALMANACSTORE_HPP
+
+#include "AlmanacStore.hpp"
+#include "FileStore.hpp"
+#include "SEMData.hpp"
+#include "SEMStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ /// This class defines an interface to hide how we are getting an SV's
+ /// position at some point in time using almanac data.
+ class SEMAlmanacStore : public FileStore<SEMHeader>,
+ public AlmanacStore
+ {
+ public:
+
+ void loadFile(const std::string& filename)
+ throw(FileMissingException);
+
+ gpstk::DayTime getFinalTime() const;
+
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/SEMBase.hpp b/dev/src/SEMBase.hpp
new file mode 100644
index 0000000..78ab8fd
--- /dev/null
+++ b/dev/src/SEMBase.hpp
@@ -0,0 +1,78 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file SEMBase.hpp
+ * gpstk::SEMBase - base class for SEM FFData.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef SEMBASE_HPP
+#define SEMBASE_HPP
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+
+ /** @defgroup SEM SEM Almanac files */
+ //@{
+
+ /**
+ * This is a base class for all SEM-related classes.
+ */
+ class SEMBase : public FFData
+ {
+
+ public:
+
+ /// in deference to our coding standards, this is declared virtual
+ virtual ~SEMBase() {}
+
+ };
+
+ //@}
+}
+
+#endif
diff --git a/dev/src/SEMData.cpp b/dev/src/SEMData.cpp
new file mode 100644
index 0000000..4915a4c
--- /dev/null
+++ b/dev/src/SEMData.cpp
@@ -0,0 +1,198 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMData.cpp
+ * Encapsulate SEM almanac file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "SEMData.hpp"
+#include "SEMStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ void SEMData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ //First output blank line to mark between records
+ strm << std::endl;
+
+ //PRN output
+ strm << asString<short>(PRN) << endl;
+
+ //SVNnum
+ strm << asString<short>(SVNnum) << endl;
+
+ //URAnum
+ strm << asString<short>(URAnum) << endl;
+
+ //Ecc, i_offset, OMEGAdot
+ line += rightJustify(asString(doub2for(ecc,22,4,false)),23);
+ line += rightJustify(asString(doub2for(i_offset/gpstk::PI,22,4,false)),24);
+ line += rightJustify(asString(doub2for((OMEGAdot/gpstk::PI),22,4,false)),24);
+ strm << line << endl;
+ line.erase();
+
+ //Ahalf, OMEGA0, w
+ line += rightJustify(asString(doub2for(Ahalf,22,4,false)),23);
+ line += rightJustify(asString(doub2for((OMEGA0/gpstk::PI),22,4,false)),24);
+ line += rightJustify(asString(doub2for((w/gpstk::PI),22,4,false)),24);
+ strm << line << endl;
+ line.erase();
+
+ //M0, AF0, AF1
+ line += rightJustify(asString(doub2for((M0/gpstk::PI),22,4,false)),23);
+ line += rightJustify(asString(doub2for(AF0,22,4,false)),24);
+ line += rightJustify(asString(doub2for(AF1,22,4,false)),24);
+ strm << line << endl;
+ line.erase();
+
+ //SV_health
+ strm << asString<short>(SV_health) << endl;
+
+ //satConfig
+ strm << asString<short>(satConfig) << endl;
+
+
+ } // end SEMData::reallyPutRecord
+
+
+ void SEMData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ //if(!strm.headerRead)
+ // strm >> strm.header;
+
+ SEMHeader& hdr = strm.header;
+
+ //Don't need first line - empty space
+ strm.formattedGetLine(line, true);
+
+ // Second line - PRN
+ strm.formattedGetLine(line, true);
+ PRN = asInt(line);
+
+ // Third line - SVN Number
+ // HACKHACKHACK This information might not be here??? Find out more info
+ strm.formattedGetLine(line, true);
+ SVNnum = (short) asInt(line);
+
+ // Fourth line - Average URA Number as defined in ICD-GPS-200
+ strm.formattedGetLine(line, true);
+ URAnum = (short) asInt(line);
+
+
+ // Fifth line - Eccentricity, Inclinatin Offset, and Rate of Right Ascension
+ strm.formattedGetLine(line, true);
+ ecc = asDouble(line.substr(0,23));
+ i_offset = asDouble(line.substr(24,47));
+ OMEGAdot = asDouble(line.substr(48,72));
+ i_offset *= gpstk::PI;
+ OMEGAdot *= gpstk::PI;
+
+
+ // Sixth line - Sqrt of A, Omega0, and Arg of Perigee
+ strm.formattedGetLine(line, true);
+ Ahalf = asDouble(line.substr(0,23));
+ OMEGA0 = asDouble(line.substr(24,47));
+ OMEGA0 *= gpstk::PI;
+ w = asDouble(line.substr(48,72));
+ w *= gpstk::PI;
+
+ // Seventh Line - M0, AF0, AF1
+ strm.formattedGetLine(line, true);
+ M0 = asDouble(line.substr(0,23));
+ M0 *= gpstk::PI;
+ AF0 = asDouble(line.substr(24,47));
+ AF1 = asDouble(line.substr(48,72));
+
+ // Eigth line - Satellite Health
+ strm.formattedGetLine(line, true);
+ SV_health = (short) asInt(line);
+
+ // Ninth line - Satellite Config
+ strm.formattedGetLine(line, true);
+ satConfig = (short) asInt(line);
+
+
+ //week = strm.header.week + 1024; // Need a way to set epoch Hmmm really?
+
+
+ week = hdr.week;
+ Toa = hdr.Toa;
+
+
+ xmit_time = 0;
+
+ } // end of reallyGetRecord()
+
+ void SEMData::dump(ostream& s) const
+ {
+ std::cout << "PRN =" << PRN << std::endl;
+ std::cout << "SVNnum =" << SVNnum << std::endl;
+ std::cout << "URAnum =" << URAnum << std::endl;
+ std::cout << "ecc =" << ecc << std::endl;
+ std::cout << "i_offset =" << i_offset << std::endl;
+ std::cout << "OMEGAdot =" << OMEGAdot << std::endl;
+ std::cout << "Ahalf =" << Ahalf << std::endl;
+ std::cout << "OMEGA0 =" << OMEGA0 << std::endl;
+ std::cout << "w =" << w << std::endl;
+ std::cout << "M0 =" << M0 << std::endl;
+ std::cout << "AF0 =" << AF0 << std::endl;
+ std::cout << "AF1 =" << AF1 << std::endl;
+ std::cout << "SV_health =" << SV_health << std::endl;
+ std::cout << "satConfig =" << satConfig << std::endl;
+ std::cout << "xmit_time =" << xmit_time << std::endl;
+ std::cout << "week" << week << std::endl;
+ std::cout << "toa" << Toa << std::endl;
+ }
+
+ SEMData::operator AlmOrbit() const
+ {
+
+ AlmOrbit ao(PRN, ecc,i_offset, OMEGAdot, Ahalf, OMEGA0,
+ w, M0, AF0, AF1, Toa, xmit_time, week, SV_health);
+
+ return ao;
+
+ }
+
+} // namespace
diff --git a/dev/src/SEMData.hpp b/dev/src/SEMData.hpp
new file mode 100644
index 0000000..332c222
--- /dev/null
+++ b/dev/src/SEMData.hpp
@@ -0,0 +1,135 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMData.hpp
+ * Encapsulate SEM Almanac file data, including I/O
+ */
+
+#ifndef SEMDATA_HPP
+#define SEMDATA_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "SEMBase.hpp"
+#include "StringUtils.hpp"
+#include "SEMHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SEM */
+ //@{
+
+ /**
+ * This class stores, reads, and writes SEM records.
+ * @warning The SEM header information and data information don't
+ * correctly talk to each other at the time of completion of this file.
+ * The current fix is in SEMAlamanacStore.hpp.
+ *
+ * @sa tests/SEM for examples
+ * @sa SEMStream.
+ * @sa SEMHeader for information on writing SEM files.
+ */
+ class SEMData : public SEMBase
+ {
+ public:
+
+ /// Constructor.
+ SEMData() {}
+
+ /// Destructor
+ virtual ~SEMData() {}
+
+
+ short PRN;
+ short SVNnum;
+ short URAnum;
+ double ecc;
+ double i_offset;
+ double OMEGAdot;
+ double Ahalf;
+ double OMEGA0;
+ double w;
+ double M0;
+ double AF0;
+ double AF1;
+ short SV_health;
+ short satConfig;
+
+ long xmit_time;
+
+ long Toa;
+ short week;
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the SEM class to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /**
+ * cast *this into an AlmOrbit
+ * @return the constructed AlmOrbit object
+ */
+ operator AlmOrbit() const;
+
+
+ protected:
+
+ /**
+ * Writes a correctly formatted record from this data to stream \a s.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a SEM almanac record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class SEMData
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SEMHeader.cpp b/dev/src/SEMHeader.cpp
new file mode 100644
index 0000000..2126f43
--- /dev/null
+++ b/dev/src/SEMHeader.cpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMHeader.cpp
+ * Encapsulate header of SEM file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "SEMHeader.hpp"
+#include "SEMStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ void SEMHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ line = leftJustify(asString<short>(numRecords),2);
+ line += " ";
+ line += Title;
+ strm << line << endl;
+ line.erase();
+
+ line = rightJustify(asString<short>(week),4);
+ line += " ";
+ line += asString<long>(Toa);
+ strm << line << endl;
+ line.erase();
+
+ } // end SEMAHeader::reallyPutRecord
+
+
+ void SEMHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ //Grab the first line
+ strm.formattedGetLine(line);
+
+ numRecords = (short) asInt(line.substr(0,2));
+ Title = line.substr(3,24);
+
+ //Grab the second line
+ strm.formattedGetLine(line);
+ week = (short) asInt(line.substr(0,4));
+ Toa = asInt(line.substr(5,6));
+
+ } // end of reallyGetRecord()
+
+ void SEMHeader::dump(ostream& s) const
+ {
+ std::cout << "numRecords = " << numRecords << std::endl;
+ std::cout << "Title = " << Title << std::endl;
+ std::cout << "week = " << week << std::endl;
+ std::cout << "Toa = " << Toa << std::endl;
+ }
+
+} // namespace
diff --git a/dev/src/SEMHeader.hpp b/dev/src/SEMHeader.hpp
new file mode 100644
index 0000000..ff5ead6
--- /dev/null
+++ b/dev/src/SEMHeader.hpp
@@ -0,0 +1,112 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMHeader.hpp
+ * Encapsulate SEM Almanac header data, including I/O
+ */
+
+#ifndef SEMHEADER_HPP
+#define SEMHEADER_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "SEMBase.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SEM */
+ //@{
+
+ /**
+ * This class stores, reads, and writes SEM records.
+ * @warning The SEM header information and data information don't
+ * correctly talk to each other at the time of completion of this file.
+ * The current fix is in SEMAlamanacStore.hpp.
+ *
+ * @sa tests/SEM for examples
+ * @sa SEMStream.
+ * @sa SEMHeader for information on writing SEM files.
+ */
+ class SEMHeader : public SEMBase
+ {
+ public:
+ /// Constructor.
+ SEMHeader() {}
+
+ /// Destructor
+ virtual ~SEMHeader() {}
+
+ short numRecords;
+ std::string Title;
+ short week;
+ long Toa;
+
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the SEM header to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is a "header" so this function always returns "true".
+ virtual bool isHeader() const {return true;}
+
+
+
+ protected:
+ /**
+ * Writes a correctly formatted record from this header to stream \a s.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a SEM header record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class SEMHeader
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SEMStream.hpp b/dev/src/SEMStream.hpp
new file mode 100644
index 0000000..59e1096
--- /dev/null
+++ b/dev/src/SEMStream.hpp
@@ -0,0 +1,114 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file SEMStream.hpp
+ * gpstk::SEMStream - ASCII SEM file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef SEMSTREAM_HPP
+#define SEMSTREAM_HPP
+
+
+#include "FFTextStream.hpp"
+#include "SEMHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SEM */
+ //@{
+
+ /**
+ * This class performs file i/o on a SEM file for the
+ * SEMHeader and SEMData classes.
+ *
+ * @sa tests/SEM for examples.
+ * @sa SEMData.
+ * @sa SEMHeader for information on writing SEM files.
+ *
+ * @warning The SEM header information and data information don't
+ * correctly talk to each other at the time of completion of this file.
+ * The current fix is in SEMAlamanacStore.hpp.
+ */
+ class SEMStream : public FFTextStream
+ {
+ public:
+
+ /// Default constructor
+ SEMStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the ascii SEM file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ SEMStream(const char* fn,
+ std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {};
+
+ /// destructor per the coding standards
+ virtual ~SEMStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = SEMHeader();
+ }
+
+ ///SEMHeader for this file
+ SEMHeader header;
+
+ /// Flag showing whether or not the header has been read.
+ bool headerRead;
+
+ }; // class SEMStream
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/SMODFData.cpp b/dev/src/SMODFData.cpp
new file mode 100644
index 0000000..03b72de
--- /dev/null
+++ b/dev/src/SMODFData.cpp
@@ -0,0 +1,328 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SMODFData.cpp
+ * smoothed measurement data file data
+ */
+
+#include "StringUtils.hpp"
+#include "SMODFData.hpp"
+#include "SMODFStream.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ const int SMODFData::SMO_LEN_ICD211 = 85; ///< Length of an ICD-GPS-211 SMODF record
+ const int SMODFData::SMO_LEN_LEGACY = 80; ///< Length of a Legacy SMODF record
+ const int SMODFData::BEGINGPS2DYEAR = 80; ///< Beginning of the GPS Two Digit Year
+
+ void SMODFData::reallyPutRecord(gpstk::FFStream& ffs) const
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ SMODFStream& strm = dynamic_cast<SMODFStream&>(ffs);
+
+ // here's a hack - if you dont know what to write, assume ICD211
+ if (strm.format == SMODFStream::undefined)
+ strm.format = SMODFStream::icd211;
+
+ string line;
+
+ if (strm.format == SMODFStream::icd211)
+ {
+ line += rightJustify(asString<short>(time.DOYyear()),4);
+ line += rightJustify(asString<short>(time.DOYday()),3,'0');
+ line += rightJustify(asString(time.DOYsecond(),7),13);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(PRNID),2);
+ line += rightJustify(asString<long>(station),5);
+ line += rightJustify(asString<short>(channel),2);
+ line += rightJustify(asString<short>(type),1);
+
+ if (type == 9)
+ line += rightJustify(asString<short>(lol),1);
+ else
+ line += string(1, ' ');
+
+ line += string(1, ' ');
+ line += doub2for(obs, 20, 2);
+ line += string(1, ' ');
+ line += doub2for(stdDev, 11, 2);
+ line += string(1, ' ');
+ line += rightJustify(asString<short>(tempSource),1);
+ line += rightJustify(asString<short>(pressSource),1);
+ line += rightJustify(asString<short>(humidSource),1);
+ line += rightJustify(asString(temp,1), 5);
+ line += rightJustify(asString(pressure,1), 6);
+ line += rightJustify(asString(humidity,1), 5);
+
+ }
+ else if (strm.format == SMODFStream::legacy)
+ {
+ line += time.printf("%02y%3j%12.6s");
+ line += rightJustify(asString<short>(PRNID),3);
+ line += rightJustify(asString<long>(station),5);
+ line += rightJustify(asString<short>(channel),2);
+ line += rightJustify(asString<short>(type),1);
+
+ if (type == 9)
+ line += rightJustify(asString<short>(lol),1);
+ else
+ line += string(1, ' ');
+
+ // FIX this is actually D21.14, but because of the way
+ // doub2for works, we prepend a space and use 20 characters
+ line += string(1, ' ');
+ line += doub2for(obs, 20, 2);
+ // FIX same as above, only with D12.5
+ line += string(1, ' ');
+ line += doub2for(stdDev, 11, 2);
+ line += string(1, ' ');
+
+ // convert from 211-B/C to 211-A flags
+ short wxsource = 0;
+ if (tempSource == pressSource == humidSource)
+ wxsource = tempSource;
+ else if (tempSource && pressSource && humidSource)
+ {
+ // No missing data. We can assume that there is some
+ // default data at this point because the first test
+ // eliminates the all-sources-same condition (all real,
+ // all missing, all default), and this test guarantees
+ // that there are no missing data mixed in with
+ // real/default. Only remaining possibility is some
+ // real, some default.
+ wxsource = 2;
+ }
+ else
+ {
+ // Mixed real and/or default data with missing. We
+ // can't really handle that.
+ gpstk::FFStreamError err("Assertion failed: all weather data must be"
+ " either present or missing");
+ if (tempSource == 0)
+ err.addText("temperature data is missing");
+ if (pressSource == 0)
+ err.addText("pressure data is missing");
+ if (humidSource == 0)
+ err.addText("humidity data is missing");
+ err.addText("unlisted weather measurements are present");
+ }
+
+ if (wxsource == 1)
+ wxsource = 7;
+
+ line += rightJustify(asString<short>(wxsource),1);
+ line += rightJustify(asString(temp,1), 5);
+ line += rightJustify(asString(pressure,1), 6);
+ line += rightJustify(asString(humidity,1), 5);
+ }
+ else
+ {
+ gpstk::FFStreamError err("Unknown SMODF format: " +
+ asString<unsigned long>(strm.format));
+ err.addText("Make sure you specify the format of the data.");
+ GPSTK_THROW(err);
+ }
+
+ ffs << line << endl;
+ strm.lineNumber++;
+ }
+
+ void SMODFData::dump(ostream& s) const
+ {
+ s << time << " Station: " << station << " Type: " << type
+ << " PRN " << PRNID << endl;
+ }
+
+ void SMODFData::reallyGetRecord(gpstk::FFStream& ffs)
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ SMODFStream& strm = dynamic_cast<SMODFStream&>(ffs);
+
+ string str, currentLine;
+
+ strm.formattedGetLine(currentLine, true);
+ int len=currentLine.length();
+
+ // determine the format of the ODBIF file by examining
+ // the record length
+ if (strm.format == SMODFStream::undefined)
+ {
+ if (len == SMO_LEN_ICD211)
+ strm.format = SMODFStream::icd211;
+ else if (len == SMO_LEN_LEGACY)
+ strm.format = SMODFStream::legacy;
+ else
+ {
+ gpstk::FFStreamError e("Unreconized format");
+ GPSTK_THROW(e);
+ }
+ }
+
+ if (strm.format == SMODFStream::icd211)
+ {
+ if (len != SMO_LEN_ICD211)
+ {
+ gpstk::FFStreamError e("Bad 211 format line length: " +
+ asString(len));
+ GPSTK_THROW(e);
+ }
+
+ // a simple check to see if this is really an ODBIF file
+ if ((currentLine[20] != ' ') ||
+ (currentLine[32] != ' '))
+ {
+ gpstk::FFStreamError e("Invalid ICD211 line");
+ GPSTK_THROW(e);
+ }
+
+ // blank out column 66 (in case this ODBIF file uses it
+ // for some unauthorized purpose)
+ currentLine[65] = ' ';
+
+ if (currentLine[31]!='1')
+ currentLine[31]='0';
+
+ // Parse line and load apropriate values into ODBIF structure
+ short year = asInt(currentLine.substr( 0, 4));
+ short DOY = asInt(currentLine.substr( 4, 3));
+ double SOD = asDouble(currentLine.substr( 7, 13));
+ PRNID = asInt(currentLine.substr(21, 2));
+ station = asInt(currentLine.substr(23, 5));
+ channel = asInt(currentLine.substr(28, 2));
+ type = asInt(currentLine.substr(30, 1));
+ lol = asInt(currentLine.substr(31, 1));
+ obs = for2doub(currentLine.substr(32, 21), 21);
+ stdDev = for2doub(currentLine.substr(53, 12), 12);
+ tempSource = asInt(currentLine.substr(66, 1));
+ pressSource = asInt(currentLine.substr(67, 1));
+ humidSource = asInt(currentLine.substr(68, 1));
+ temp = asDouble(currentLine.substr(69, 5));
+ pressure = asDouble(currentLine.substr(74, 6));
+ humidity = asDouble(currentLine.substr(80, 5));
+
+ // Add some sanity checks on the data so we can detect if this is
+ // *really* a SMOD file.
+ if (DOY < 0 || DOY > 366 || SOD > 86400 || PRNID > 32 ||
+ (type != 0 && type != 9) ||
+ stdDev > 100 || stdDev <= 0)
+ {
+ gpstk::FFStreamError e(string("Bad 211 format data"));
+ GPSTK_THROW(e);
+ }
+
+
+ // set the time
+ time.setYDoySod(year, DOY, SOD);
+ }
+ else if (strm.format == SMODFStream::legacy)
+ {
+ if (len != SMO_LEN_LEGACY)
+ {
+ gpstk::FFStreamError e("Bad legacy format line length: " +
+ asString(len));
+ GPSTK_THROW(e);
+ }
+
+ // blank out column 63 (in case this ODBIF file uses it
+ // for some unauthorized purpose)
+ currentLine[62] = ' ';
+
+ if (currentLine[28]!='1')
+ currentLine[28]='0';
+
+ // Parse line and load apropriate values into ODBIF structure
+ short year = asInt(currentLine.substr( 0, 2));
+ short DOY = asInt(currentLine.substr( 2, 3));
+ double SOD = asDouble(currentLine.substr( 5, 12));
+ PRNID = asInt(currentLine.substr(17, 3));
+ station = asInt(currentLine.substr(20, 5));
+ channel = asInt(currentLine.substr(25, 2));
+ type = asInt(currentLine.substr(27, 1));
+ lol = asInt(currentLine.substr(28, 1));
+ obs = for2doub(currentLine.substr(29, 21), 21);// len ??
+ stdDev = for2doub(currentLine.substr(50, 12), 12);//start &
+ short src = asInt(currentLine.substr(63, 1));
+ temp = asDouble(currentLine.substr(64, 5));
+ pressure = asDouble(currentLine.substr(69, 6));
+ humidity = asDouble(currentLine.substr(75, 5));
+
+ // Add some sanity checks on the data so we can detect if this is
+ // *really* a SMOD file.
+ if (DOY < 0 || DOY > 366 || SOD > 86400 || PRNID > 32 ||
+ (type != 0 && type != 9) ||
+ stdDev > 100 || stdDev <= 0)
+ {
+ gpstk::FFStreamError e(string("Bad legacy format data"));
+ GPSTK_THROW(e);
+ }
+
+ // set the time
+ if ( year < BEGINGPS2DYEAR )
+ year += 2000;
+ else
+ year += 1900;
+ time.setYDoySod(year, DOY, SOD);
+
+ /*
+ Translate ODBIF (legacy) weather types to ICD-GPS-211 types
+ Legacy Meaning
+ 0 No met data
+ 1 OCS smoothed values
+ 2 OCS default values
+ 3 NIMA overridden at OCS (?)
+ 6 NIMA default weather values
+ 7 NIMA automated weather station (usual)
+ 8 Bad meteorological data
+ other Undefined
+ */
+ if ( src==1 || src==7 )
+ tempSource = pressSource = humidSource = 1;
+ else if ( src==2 || src==6 )
+ tempSource = pressSource = humidSource = 2;
+ else
+ tempSource = pressSource = humidSource = 0;
+ }
+ } // end reallyGetRecord()
+
+} // end namespace gpstk
diff --git a/dev/src/SMODFData.hpp b/dev/src/SMODFData.hpp
new file mode 100644
index 0000000..35336fd
--- /dev/null
+++ b/dev/src/SMODFData.hpp
@@ -0,0 +1,125 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef SMODFDATA_HPP
+#define SMODFDATA_HPP
+
+/**
+ * @file SMODFData.hpp
+ * smoothed measurement data file data
+ */
+
+#include <vector>
+
+#include "StringUtils.hpp"
+#include "FFData.hpp"
+#include "DayTime.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup icd211group ICD-GPS-211 Classes */
+ //@{
+
+ /**
+ * Model for a Smoothed Measurement Data File Data Record.
+ */
+ class SMODFData : public gpstk::FFData
+ {
+ public:
+ /// constructor
+ SMODFData() : PRNID(0), time(gpstk::DayTime::BEGINNING_OF_TIME)
+ {}
+
+ /// destructor
+ virtual ~SMODFData() {}
+
+ gpstk::DayTime time; ///< the date of this data (from year DOY, SOD)
+ short PRNID; ///< PRN number
+ long station; ///< NIMA Monitor Station number (85408, etc.)
+ short channel; ///< receiver channel
+ short type; ///< Data type ( 0 = range, 9 = delta/doppler range )
+ short lol; ///< Loss of lock flag. 0 = OK, 1 = loss
+ ///< ( only used for type = 9 )
+ long double obs; ///< Observed data (range or delta range meas)
+ double stdDev; ///< standard deviation of observation
+ short tempSource; ///< temperature source flag
+ ///< (0 = not available, 1 = measured value, 2 = default value)
+ short pressSource; ///< pressure source flag
+ ///< (0 = not available, 1 = measured value, 2 = default value)
+ short humidSource; ///< humidity source flag
+ ///< (0 = not available, 1 = measured value, 2 = default value)
+ double temp; ///< temperature (degrees C)
+ double pressure; ///< pressure (mb)
+ double humidity; ///< relative humidity (%)
+
+ /// SMODFData is data, so this function always returns true.
+ virtual bool isData() const {return true;}
+
+ virtual void dump(std::ostream& s) const;
+
+ protected:
+ /// Writes a smodfdata object in the format specified
+ /// by the stream to the stream.
+ virtual void reallyPutRecord(gpstk::FFStream& s) const
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * Retrieve a SMODFData record from the given gpstk::FFStream.
+ * If there is a problem with reading from the stream, it
+ * is reset to its original position and its fail-bit is set.
+ * @throws StringException when a gpstk::StringUtils function fails
+ * @throws gpstk::FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(gpstk::FFStream& s)
+ throw(std::exception, gpstk::FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ private:
+ static const int SMO_LEN_ICD211; ///< Length of an ICD-GPS-211 SMODF record
+ static const int SMO_LEN_LEGACY; ///< Length of a Legacy SMODF record
+ static const int BEGINGPS2DYEAR; ///< Beginning of the GPS Two Digit Year
+ }; // class SMODFData
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/SMODFStream.hpp b/dev/src/SMODFStream.hpp
new file mode 100644
index 0000000..98b1430
--- /dev/null
+++ b/dev/src/SMODFStream.hpp
@@ -0,0 +1,116 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file SMODFStream.hpp
+ * Read/Write smoothed measurement data
+ */
+
+#ifndef SMODFSTREAM_HPP
+#define SMODFSTREAM_HPP
+
+#include "FFTextStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup icd211group ICD-GPS-211 Classes */
+ //@{
+
+ /**
+ * This is a stream used to obtain data from a
+ * Smoothed Measurement Data File.
+ */
+ class SMODFStream : public gpstk::FFTextStream
+ {
+ public:
+ SMODFStream()
+ : format(undefined)
+ {}
+
+ /**
+ * Constructor.
+ * @param fn the SMODF to open
+ * @param mode the ios::openmode to use in opening \a fn
+ */
+ SMODFStream(const char* fn, std::ios::openmode mode=std::ios::in)
+ throw()
+ : gpstk::FFTextStream(fn, mode), format(undefined)
+ {
+ // open a file for write in icd211 mode
+ if ( (mode & std::ios::out) && !(mode & std::ios::in) )
+ format = icd211;
+ }
+
+ /// Destructor per the coding standard
+ virtual ~SMODFStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ gpstk::FFTextStream::open(fn, mode);
+ // open a file for write in icd211 mode
+ if ( (mode & std::ios::out) && !(mode & std::ios::in) )
+ format = icd211;
+ else
+ format = undefined;
+ }
+
+ /**
+ * These are the file formats SMODFStream recognizes.
+ */
+ enum FileFormat {
+ undefined, ///< Undefined format
+ legacy, ///< Legacy format
+ icd211 ///< ICD-GPS-211 format
+ };
+
+ FileFormat format; ///< The FileFormat of the file currently being read.
+ }; // class SMODFStream
+
+ //@}
+
+} // namespace sglmsn
+
+#endif
diff --git a/dev/src/SP3Base.hpp b/dev/src/SP3Base.hpp
new file mode 100644
index 0000000..0395efb
--- /dev/null
+++ b/dev/src/SP3Base.hpp
@@ -0,0 +1,73 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file SP3Base.hpp
+ * Base class for SP3 file data
+ */
+
+#ifndef GPSTK_SP3BASE_HPP
+#define GPSTK_SP3BASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @defgroup SP3ephem SP3 format file I/O */
+ //@{
+
+ /// This class is here to make readable inheritance diagrams.
+ class SP3Base : public FFData
+ {
+ public:
+ /// Destructor per the coding standards
+ virtual ~SP3Base() {}
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SP3Data.cpp b/dev/src/SP3Data.cpp
new file mode 100644
index 0000000..127aa6f
--- /dev/null
+++ b/dev/src/SP3Data.cpp
@@ -0,0 +1,317 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+/**
+ * @file SP3Data.cpp
+ * Encapsulate SP3 file data, including I/O
+ */
+
+#include "SP3Stream.hpp"
+#include "SP3Header.hpp"
+#include "SP3Data.hpp"
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ void SP3Data::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError, StringException)
+ {
+ SP3Stream& strm = dynamic_cast<SP3Stream&>(ffs);
+
+ string line;
+ if(flag == '*') {// output Epoch Header Record
+ line = "* ";
+ line += time.printf(" %4Y %2m %2d %2H %2M");
+ line += " " + rightJustify(time.printf("%.8f"),11);
+ }
+ else { // output Position and Clock OR Velocity and Clock Rate Record
+ line = flag;
+ if(version == 'c')
+ line += SP3SatID(sat).toString();
+ else
+ line += rightJustify(asString(sat.id),3);
+ line += rightJustify(asString(x[0],6),14);
+ line += rightJustify(asString(x[1],6),14);
+ line += rightJustify(asString(x[2],6),14);
+ line += rightJustify(asString(clk,6),14);
+ if(version == 'c') {
+ line += rightJustify(asString(sig[0]),3);
+ line += rightJustify(asString(sig[1]),3);
+ line += rightJustify(asString(sig[2]),3);
+ line += rightJustify(asString(sig[3]),4);
+ if(flag == 'P') {
+ line += string(" ");
+ line += (clockEventFlag ? string("E") : string(" "));
+ line += (clockPredFlag ? string("P") : string(" "));
+ line += string(" ");
+ line += (orbitManeuverFlag ? string("M") : string(" "));
+ line += (orbitPredFlag ? string("P") : string(" "));
+ }
+ //else {
+ // line += string(" ");
+ //}
+ }
+
+ // if version is 'c' and correlation flag is set,
+ // output P|V Correlation Record
+ if(version == 'c' && correlationFlag) {
+ // first output the P|V record
+ strm << line << endl;
+
+ // now output the correlation record
+ if(flag == 'P') line = "EP ";
+ else line = "EV ";
+ line += rightJustify(asString(sdev[0]),5);
+ line += rightJustify(asString(sdev[1]),5);
+ line += rightJustify(asString(sdev[2]),5);
+ line += rightJustify(asString(sdev[3]),8);
+ for(int i=0; i<6; i++)
+ line += rightJustify(asString(correlation[i]),9);
+ }
+ }
+
+ // write the line
+ strm << line << endl;
+ }
+
+ void SP3Data::dump(ostream& s) const
+ {
+ s << flag << " " << sat
+ << " " << time.printf("%Y/%02m/%02d %2H:%02M:%06.3f = %F/%10.3g");
+ if(flag != '*') {
+ s << fixed << setprecision(6)
+ << " X=" << setw(14) << x[0]
+ << " Y=" << setw(14) << x[1]
+ << " Z=" << setw(14) << x[2]
+ << " C=" << setw(14) << clk;
+
+ if(version == 'c') {
+ s << " sX=" << setw(2) << sig[0]
+ << " sY=" << setw(2) << sig[1]
+ << " sZ=" << setw(2) << sig[2]
+ << " sC=" << setw(3) << sig[3];
+ if(flag == 'P')
+ s << " " << (clockEventFlag ? "clockEvent" : "-")
+ << " " << (clockPredFlag ? "clockPrediction" : "-")
+ << " " << (orbitManeuverFlag ? "orbitManeuver" : "-")
+ << " " << (orbitPredFlag ? "orbitPrediction" : "-");
+ if(correlationFlag)
+ s << endl
+ << 'E' << flag
+ << " cXX=" << setw(4) << sdev[0]
+ << " cYY=" << setw(4) << sdev[1]
+ << " cZZ=" << setw(4) << sdev[2]
+ << " cCC=" << setw(7) << sdev[3]
+ << " cXY=" << setw(8) << correlation[0]
+ << " cXZ=" << setw(8) << correlation[1]
+ << " cXC=" << setw(8) << correlation[2]
+ << " cYZ=" << setw(8) << correlation[3]
+ << " cYC=" << setw(8) << correlation[4]
+ << " cZC=" << setw(8) << correlation[5];
+ }
+ }
+ s << endl;
+ };
+
+ void SP3Data::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError, StringException)
+ {
+ SP3Stream& strm = dynamic_cast<SP3Stream&>(ffs);
+
+ correlationFlag = false;
+ int status = 0; // initial status = 0
+ while(1) {
+ // set the time in the record
+ time = strm.currentEpoch;
+
+ // ---------------------------------------------------------
+ // process the buffer containing the last line read
+ if(strm.buffer.size() < 3) {
+ // nothing in buffer - do nothing here, get another line
+ ;
+ }
+
+ else if(strm.buffer.substr(0,3) == string("EOF")) { // 'EOF' record
+ // if a data record has been processed during this call, then
+ // return and let the next call process this EOF.
+ //if(status == 1) throw - found EOF right after an epoch record
+ if(status > 1) break;
+
+ // this next read had better fail - if it does, an exception will
+ // be thrown, and the FFStreamError created next won't get thrown
+ strm.formattedGetLine(strm.buffer, true);
+
+ FFStreamError err("EOF text found but file didn't end");
+ GPSTK_THROW(err);
+ }
+
+ else if(strm.buffer[0] == '*') { // Epoch record
+ // if another record has been process during this call, quit now
+ if(status > 0) break;
+ status = 1; // epoch status = 1
+
+ // throw if the line is short
+ if(strm.buffer.size() <= 30) {
+ FFStreamError err("Invalid line length "+asString(strm.buffer.size()));
+ GPSTK_THROW(err);
+ }
+
+ // parse the epoch line
+ int year = asInt(strm.buffer.substr(3,4));
+ int month = asInt(strm.buffer.substr(8,2));
+ int dom = asInt(strm.buffer.substr(11,2));
+ int hour = asInt(strm.buffer.substr(14,2));
+ int minute = asInt(strm.buffer.substr(17,2));
+ double second = asInt(strm.buffer.substr(20,10));
+ DayTime t(year, month, dom, hour, minute, second);
+ time = strm.currentEpoch = t;
+ }
+
+ else if(strm.buffer[0] == 'P' || strm.buffer[0] == 'V') {// P|V record
+ // if nothing, or epoch record, was processed during this call,
+ // process this P|V, otherwise (P|V or EP|V were processed), quit now
+ if(status > 1) break;
+ status = 2; // P|V status = 2
+
+ flag = strm.buffer[0]; // P or V
+
+ // 6/20/07 IGS SP3c files sometimes have short lines, apparently implying
+ // zero sigma and no flags...add the following to be tolerant of this.
+ if (version == 'c' && strm.buffer.size() < 73 && strm.buffer.size() > 59)
+ leftJustify(strm.buffer,73);
+
+ // throw if the line is short
+ if ((version == 'a' && strm.buffer.size() < 60) ||
+ (version == 'c' && strm.buffer.size() < 73) ) {
+ FFStreamError err("Invalid line length "+asString(strm.buffer.size()));
+ GPSTK_THROW(err);
+ }
+
+ // parse the line
+ if(version == 'a')
+ sat = SatID(asInt(strm.buffer.substr(1, 3)), SP3SatID::systemGPS);
+ else
+ sat = SP3SatID(strm.buffer.substr(1,3));
+
+ x[0] = asDouble(strm.buffer.substr(4,14));
+ x[1] = asDouble(strm.buffer.substr(18,14));
+ x[2] = asDouble(strm.buffer.substr(32,14));
+ clk = asDouble(strm.buffer.substr(46,14));
+
+ if(version == 'c') {
+ // get sigmas from P|V record
+ sig[0] = asInt(strm.buffer.substr(61,2));
+ sig[1] = asInt(strm.buffer.substr(64,2));
+ sig[2] = asInt(strm.buffer.substr(67,2));
+ sig[3] = asInt(strm.buffer.substr(70,3));
+
+ // get flags
+ if(flag == 'P') {
+ clockEventFlag = clockPredFlag
+ = orbitManeuverFlag = orbitPredFlag = false;
+ if(strm.buffer.size() >= 75 && strm.buffer[74] == 'E')
+ clockEventFlag = true;
+ if(strm.buffer.size() >= 76 && strm.buffer[75] == 'P')
+ clockPredFlag = true;
+ if(strm.buffer.size() >= 79 && strm.buffer[78] == 'M')
+ orbitManeuverFlag = true;
+ if(strm.buffer.size() >= 80 && strm.buffer[79] == 'P')
+ orbitPredFlag = true;
+ }
+ }
+
+ }
+ else if(strm.buffer[0] == 'E' && // EP|EV record
+ (strm.buffer[1] == 'P' || strm.buffer[1] == 'V')) {
+
+ // always process an EP|V immediately, since it must follow P|V
+ status = 3; // EP|V status = 3
+
+ // throw if correlation record did not follow corresponding P|V record
+ if(strm.buffer[1] != flag) {
+ Exception e("SP3c correlation record mismatched with previous P|V");
+ GPSTK_THROW(e);
+ }
+
+ // throw if line is short
+ if(strm.buffer.size()<80) {
+ FFStreamError err("Invalid SP3c correlation line length "
+ + asString(strm.buffer.size()));
+ GPSTK_THROW(err);
+ }
+
+ sdev[0] = abs(asInt(strm.buffer.substr(4,4)));
+ sdev[1] = abs(asInt(strm.buffer.substr(9,4)));
+ sdev[2] = abs(asInt(strm.buffer.substr(14,4)));
+ sdev[3] = abs(asInt(strm.buffer.substr(19,7)));
+ correlation[0] = asInt(strm.buffer.substr(27,8));
+ correlation[1] = asInt(strm.buffer.substr(36,8));
+ correlation[2] = asInt(strm.buffer.substr(45,8));
+ correlation[3] = asInt(strm.buffer.substr(54,8));
+ correlation[4] = asInt(strm.buffer.substr(63,8));
+ correlation[5] = asInt(strm.buffer.substr(72,8));
+
+ // tell the caller that correlation data is now present
+ correlationFlag = true;
+ }
+
+ else { // Unknown record
+ FFStreamError err("Unknown line label " + strm.buffer.substr(0,2));
+ GPSTK_THROW(err);
+ }
+
+ // ---------------------------------------------------------
+ // read next line into the buffer
+ strm.formattedGetLine(strm.buffer);
+
+ // ---------------------------------------------------------
+ // quit if EP|EV was processed
+ if(status == 3) break;
+ // go back if buffer was empty (0)
+ // go back if epoch was processed (1)
+ // go back if P|V was processed (2)
+ }
+
+ } // end reallyGetRecord()
+
+} // namespace
diff --git a/dev/src/SP3Data.hpp b/dev/src/SP3Data.hpp
new file mode 100644
index 0000000..bb0cd83
--- /dev/null
+++ b/dev/src/SP3Data.hpp
@@ -0,0 +1,129 @@
+#pragma ident "$Id$"
+
+/**
+ * @file SP3Data.hpp
+ * Encapsulate SP3 file data, including I/O
+ */
+
+#ifndef GPSTK_SP3DATA_HPP
+#define GPSTK_SP3DATA_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "SatID.hpp"
+#include "SP3Base.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SP3ephem */
+ //@{
+
+ /**
+ * This class models Satellite Position in Three Dimensions.
+ *
+ * @sa gpstk::SP3Header and gpstk::SP3Stream for more information.
+ * @sa sp3_test.cpp for an example.
+ */
+ class SP3Data : public SP3Base
+ {
+ public:
+ /// Constructor.
+ SP3Data() : version('a'),flag('\000'), time(gpstk::DayTime::BEGINNING_OF_TIME),
+ clockEventFlag(false),clockPredFlag(false),orbitManeuverFlag(false),
+ orbitPredFlag(false),correlationFlag(false)
+ {}
+
+ /// Destructor
+ virtual ~SP3Data() {}
+
+ // The next four lines is our common interface
+ /// SP3Data is "data" so this function always returns true.
+ virtual bool isData() const {return true;}
+
+ /// Debug output function.
+ virtual void dump(std::ostream& s) const;
+
+ ///@name data members
+ //@{
+ char version; ///< Version of SP3, 'a' or 'c' ONLY
+ char flag; ///< Data type indicator. P for position or V for velocity ONLY
+ SatID sat; ///< Satellite ID
+ DayTime time; ///< Time of epoch for this record
+ double x[3]; ///< The three-vector for position | velocity (m | dm/s).
+ double clk; ///< The clock bias or drift for P|V (microsec|1).
+ int sig[4]; ///< (c) Four-vector of integer exponents for estimated sigma of
+ ///< position,clock | velocity,clock rate; sigma = base**n
+ ///< (mm,psec | 10^-4 mm/sec,psec/sec); base in header
+ bool clockEventFlag; ///< clock event flag, 'E' in file, version c only
+ bool clockPredFlag; ///< clock prediction flag, 'P' in file, version c only
+ bool orbitManeuverFlag; ///< orbit maneuver flag, 'M' in file, version c only
+ bool orbitPredFlag; ///< orbit prediction flag, 'P' in file, version c only
+ /// data for optional P|V Correlation record, version c only
+ bool correlationFlag; ///< If true, on input: a correlation record was read;
+ ///< on output: stream should output correlation.
+ unsigned sdev[4]; ///< std dev of 3 positions (XYZ,mm) and clock (psec)
+ ///< or velocities(10^-4 mm/sec) and clock rate (10^-4 ps/s)
+ int correlation[6];///< elements of correlation matrix: xy,xz,xc,yz,yc,zc
+ //@}
+
+ protected:
+
+ /// Writes the formatted record to the FFStream \a s.
+ /// @warning This function is currently unimplemented
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This function reads a record from the given FFStream.
+ * If an error is encountered in retrieving the record, the
+ * stream is reset to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SP3EphemerisStore.cpp b/dev/src/SP3EphemerisStore.cpp
new file mode 100644
index 0000000..f379713
--- /dev/null
+++ b/dev/src/SP3EphemerisStore.cpp
@@ -0,0 +1,140 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file SP3EphemerisStore.cpp
+ * Read & store SP3 formated ephemeris data
+ */
+
+#include "SP3EphemerisStore.hpp"
+#include "MiscMath.hpp"
+#include "ECEF.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace gpstk::StringUtils;
+
+namespace gpstk
+{
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ void SP3EphemerisStore::loadFile(const std::string& filename)
+ throw(FileMissingException)
+ {
+ try
+ {
+ SP3Stream strm(filename.c_str());
+ if (!strm)
+ {
+ FileMissingException e("File " + filename + " could not be opened.");
+ GPSTK_THROW(e);
+ }
+
+ SP3Header header;
+ strm >> header;
+
+ addFile(filename, header);
+
+ /// If any file doesn't have the velocity data, clear the
+ /// the flag indicating that there is any velocity data
+ if (tolower(header.pvFlag) != 'v')
+ setHaveVelocity(false);
+
+ SP3Data rec;
+ while(strm >> rec) {
+ rec.version = header.version;
+ addEphemeris(rec);
+ }
+ }
+ catch (gpstk::Exception& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ } // end SP3EphemerisStore::load
+
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ void SP3EphemerisStore::dump(short detail, std::ostream& s) const
+ {
+ s << "Dump of SP3EphemerisStore:" << std::endl;
+ std::vector<std::string> fileNames = getFileNames();
+ std::vector<std::string>::const_iterator f=fileNames.begin();
+ for (f=fileNames.begin(); f!=fileNames.end(); f++)
+ s << *f << std::endl;
+/*
+ Add this back in when/if we add header info to the file store.
+ while(fmi != fm.end()) {
+ s << " File " << fmi->first << ", Times: " << fmi->second.time
+ << " to " << (fmi->second.time+fmi->second.epochInterval*fmi->second.numberOfEpochs)
+ << ", (" << fmi->second.numberOfEpochs
+ << " " << fmi->second.epochInterval << "sec intervals)." << std::endl;
+ if(detail > 0) {
+ s << " Data used as input : " << fmi->second.dataUsed
+ << " Coordinate system : " << fmi->second.coordSystem << std::endl;
+ s << " Orbit estimate type : " << fmi->second.orbitType
+ << " Agency : " << fmi->second.agency << std::endl;
+ s << " List of satellite PRN/acc (" << fmi->second.svList.size()
+ << " total) :\n";
+ int i=0;
+ std::map<short,short>::const_iterator it=fmi->second.svList.begin();
+ while(it != fmi->second.svList.end()) {
+ s << " " << std::setw(2) << it->first << "/" << it->second;
+ if(!(++i % 8)) s << std::endl;
+ it++;
+ }
+ if(++i % 8) s << std::endl;
+ s << " Comments:\n";
+ for(i=0; i<fmi->second.comments.size(); i++)
+ s << " " << fmi->second.comments[i] << std::endl;
+ s << std::endl;
+ }
+ fmi++;
+ }
+*/
+ TabularEphemerisStore::dump(detail, s);
+
+ } // end of SP3EphemerisStore::dump
+
+} // namespace gpstk
diff --git a/dev/src/SP3EphemerisStore.hpp b/dev/src/SP3EphemerisStore.hpp
new file mode 100644
index 0000000..1170ea0
--- /dev/null
+++ b/dev/src/SP3EphemerisStore.hpp
@@ -0,0 +1,91 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file SP3EphemerisStore.hpp
+ * Read and store SP3 formated ephemeris data
+ */
+
+#ifndef GPSTK_SP3_EPHEMERIS_STORE_HPP
+#define GPSTK_SP3_EPHEMERIS_STORE_HPP
+
+#include <iostream>
+
+#include "TabularEphemerisStore.hpp"
+#include "FileStore.hpp"
+
+#include "SP3Stream.hpp"
+#include "SP3Data.hpp"
+#include "SP3Header.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ /**
+ * This adds the interface to read SP3 files into a TabularEphemerisStore
+ */
+ class SP3EphemerisStore : public TabularEphemerisStore,
+ public FileStore<SP3Header>
+ {
+ public:
+ /// Constructor.
+ SP3EphemerisStore() throw() {TabularEphemerisStore();}
+
+ /// destructor
+ virtual ~SP3EphemerisStore() {}
+
+ /** Dump the store to cout.
+ * @param detail determines how much detail to include in the output
+ * 0 list of filenames with their start, stop times.
+ * 1 list of filenames with their start, stop times,
+ * other header information and prns/accuracy.
+ * 2 above, plus dump all the PVT data (use judiciously).
+ */
+ virtual void dump(short detail=0, std::ostream& s=std::cout) const;
+
+ /// load the given SP3 file
+ virtual void loadFile(const std::string& filename)
+ throw(FileMissingException);
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SP3Header.cpp b/dev/src/SP3Header.cpp
new file mode 100644
index 0000000..b43fe3d
--- /dev/null
+++ b/dev/src/SP3Header.cpp
@@ -0,0 +1,330 @@
+#pragma ident "$Id$"
+
+/**
+ * @file SP3Header.cpp
+ * Encapsulate header of SP3 file data, including I/O
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "StringUtils.hpp"
+#include "SP3Stream.hpp"
+#include "SP3Header.hpp"
+
+namespace gpstk
+{
+ using namespace StringUtils;
+ using namespace std;
+
+ void SP3Header::reallyPutRecord(FFStream& ffs) const
+ throw(exception, FFStreamError, StringException)
+ {
+ SP3Stream& strm = dynamic_cast<SP3Stream&>(ffs);
+ int i,j,k;
+ string line;
+ SatID SVid;
+
+ if(version != 'a' && version != 'c') {
+ Exception e(string("SP3 version must be 'a' or 'c' : ") + version);
+ GPSTK_THROW(e);
+ }
+ if(pvFlag != 'P' && pvFlag != 'V') {
+ Exception e(string("SP3 pv flag must be 'P' or 'V' : ") + pvFlag);
+ GPSTK_THROW(e);
+ }
+
+ // line 1
+ line = "#";
+ line += version;
+ line += pvFlag;
+ line += time.printf("%4Y %2m %2d %2H %2M");
+ line += " " + rightJustify(time.printf("%f"),11);
+ line += " " + rightJustify(asString(numberOfEpochs),7);
+ line += " " + rightJustify(dataUsed,5);
+ line += " " + rightJustify(coordSystem,5);
+ line += " " + rightJustify(orbitType,3);
+ line += " " + rightJustify(agency,4);
+ strm << line << endl;
+
+ // line 2
+ line = "##";
+ line += rightJustify(time.printf("%F"),5);
+ line += rightJustify(time.printf("%g"),16);
+ line += " " + rightJustify(asString(epochInterval,8),14);
+ line += " " + time.printf("%5.0Q");
+ line += " " + rightJustify(asString(time.DOYsecond()/86400.,13),15);
+ strm << line << endl;
+
+ // lines 3-7 and 8-12
+ //Map<SV,accuracy flag> (all SVs in data)
+ std::map<SatID, short>::const_iterator it;
+ for(i=3; i<=12; i++) { // loop over the lines
+ if(i==3) line = "+ " + rightJustify(asString(satList.size()),2) + " ";
+ else if(i < 8) line = "+ ";
+ else line = "++ ";
+ k = 0;
+ if(i == 3 || i == 8) // start the iteration
+ it = satList.begin();
+ while(k < 17) { // there are 17 per line
+ if(it != satList.end()) {
+ if(i < 8) { // lines 3-7 - sat id
+ if(version == 'c') {
+ // a satellite in version c -> let j be -1 to mark it
+ SVid = it->first;
+ j = -1;
+ }
+ else j = it->first.id;
+ }
+ else // lines 8-12 - accuracy
+ j = it->second;
+ it++;
+ }
+ else j=0; // no more
+
+ if(j == -1) // sat version c
+ try {
+ line += rightJustify(SP3SatID(SVid).toString(),3);
+ }
+ catch (Exception& e)
+ {
+ FFStreamError ffse(e);
+ GPSTK_THROW(ffse);
+ }
+ else // sat version a, accuracy, or 0
+ line += rightJustify(asString(j),3);
+ k++;
+ }
+ strm << line << endl;
+ }
+
+ // line 13
+ string ft(" cc");
+ if (version == 'c')
+ {
+ ft[1] = system.systemChar(); ft[2] = ' '; }
+ strm << "%c" << ft << " cc"
+ << " " << (version == 'c' ? timeSystemString() : "ccc")
+ << " ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc" << endl;
+ // line 14
+ strm << "%c cc cc ccc ccc cccc cccc cccc cccc ccccc ccccc ccccc ccccc" << endl;
+ // line 15
+ strm << "%f "
+ << (version == 'c' ? rightJustify(asString(basePV,7),10) : " 0.0000000")
+ << " "
+ << (version == 'c' ? rightJustify(asString(baseClk,9),12) : " 0.000000000")
+ << " 0.00000000000 0.000000000000000" << endl;
+ // lines 16-18
+ strm << "%f 0.0000000 0.000000000 0.00000000000 0.000000000000000" << endl;
+ strm << "%i 0 0 0 0 0 0 0 0 0" << endl;
+ strm << "%i 0 0 0 0 0 0 0 0 0" << endl;
+
+ // lines 19-22
+ //std::vector<std::string> comments; ///< vector of 4 comment lines
+ for(j=0,i=19; i<=22; i++) {
+ line = "/* ";
+ if(j < comments.size()) line += leftJustify(comments[j++],57);
+ else line += string(57,'C');
+ strm << line << endl;
+ }
+ }
+
+ void SP3Header::dump(ostream& s) const
+ {
+ s << "SP3 Header: version '" << version << "' containing ";
+ if(pvFlag=='P') s << "positions.";
+ if(pvFlag=='V') s << "positions and velocities.";
+ s << endl;
+ s << " Time tag in header is " << time << endl;
+ s << " Timespacing is " << epochInterval
+ << " sec, and the number of epochs is " << numberOfEpochs << endl;
+ s << " Data used as input : " << dataUsed << endl;
+ s << " Coordinate system : " << coordSystem << endl;
+ s << " Orbit estimate type : " << orbitType << endl;
+ s << " Agency : " << agency << endl;
+ if(version == 'c') {
+ s << " File type: '" << system.systemChar() << "' which is "
+ << system.systemString() << endl;
+ s << " Time System: " << timeSystemString() << endl;
+ s << " Base for Pos/Vel =" << fixed << setw(10) << setprecision(7)
+ << basePV << endl;
+ s << " Base for Clk/Rate =" << setw(12) << setprecision(9)
+ << baseClk << endl;
+ }
+
+ s << " List of satellite PRN/acc (" << satList.size() << " total) :\n";
+ int i=0;
+ std::map<SatID,short>::const_iterator it=satList.begin();
+ while(it != satList.end()) {
+ s << " " << it->first << "/" << it->second;
+ if(!(++i % 8)) s << endl;
+ it++;
+ }
+ if(++i % 8) s << endl;
+
+ s << " Comments:\n";
+ for(size_t j=0; j<comments.size(); j++) s << " " << comments[j] << endl;
+
+ s << "End of SP3 header" << endl;
+
+ } // end SP3Header::reallyPutRecord()
+
+ void SP3Header::reallyGetRecord(FFStream& ffs)
+ throw(exception, FFStreamError, StringException)
+ {
+ SP3Stream& strm = dynamic_cast<SP3Stream&>(ffs);
+
+ string line;
+ strm.formattedGetLine(line);
+
+ if (line[0]=='#' && line[1]!='#')
+ {
+ version=line[1];
+ pvFlag=line[2];
+ int year = asInt(line.substr(3,4));
+ int month = asInt(line.substr(8,2));
+ int dom = asInt(line.substr(11,2));
+ int hour = asInt(line.substr(14,2));
+ int minute = asInt(line.substr(17,2));
+ double second = asInt(line.substr(20,10));
+ time = DayTime(year, month, dom, hour, minute, second);
+ numberOfEpochs = asInt(line.substr(32,7));
+ dataUsed = line.substr(40,5);
+ coordSystem = line.substr(46,5);
+ orbitType = line.substr(52,3);
+ agency = line.substr(56,4);
+ }
+ else
+ {
+ FFStreamError e("Unknown label " + string(1, line[0]));
+ GPSTK_THROW(e);
+ }
+
+ strm.formattedGetLine(line);
+ if (line[0]=='#' && line[1]=='#')
+ {
+ epochInterval = asDouble(line.substr(24,14));
+ }
+ else
+ {
+ FFStreamError e("Unknown label " + string(1, line[0]));
+ GPSTK_THROW(e);
+ }
+
+ int i, index;
+ int numSVs(0), readSVs(0);
+
+ // the map stores them sorted, so use svsAsWritten to determine
+ // which SV each accuracy corresponds to.
+ vector<SatID> svsAsWritten;
+ SatID sat;
+
+ // read in the SV list
+ for(i = 3; i <= 7; i++)
+ {
+ strm.formattedGetLine(line);
+ if (line[0]=='+')
+ {
+ // get the total number of svs on line 3
+ if (i == 3)
+ {
+ numSVs = asInt(line.substr(4,2));
+ svsAsWritten.resize(numSVs);
+ }
+ for(index = 9; index < 60; index += 3)
+ {
+ if (readSVs < numSVs)
+ {
+ try {
+ sat = SP3SatID(line.substr(index,3));
+ }
+ catch (Exception& e) {
+ FFStreamError ffse(e);
+ GPSTK_THROW(ffse);
+ }
+ svsAsWritten[readSVs] = sat;
+ satList[sat] = 0;
+ readSVs++;
+ }
+ }
+ }
+ else
+ {
+ FFStreamError e("Unknown label " + string(1, line[0]));
+ GPSTK_THROW(e);
+ }
+ }
+
+ readSVs = 0;
+
+ // read in the accuracy.
+ for(i = 8; i <= 12; i++)
+ {
+ strm.formattedGetLine(line);
+ if ((line[0]=='+') && (line[1]=='+'))
+ {
+ for(index = 9; index < 60; index += 3)
+ {
+ if (readSVs < numSVs)
+ {
+ satList[svsAsWritten[readSVs]] = asInt(line.substr(index,3));
+ readSVs++;
+ }
+ }
+ }
+ else
+ {
+ FFStreamError e("Unknown label " + string(1, line[0]));
+ GPSTK_THROW(e);
+ }
+ }
+
+ // read in 6 unused lines
+ for(i = 13; i <= 18; i++)
+ strm.formattedGetLine(line);
+
+ // read in 4 comment lines
+ for(i = 19; i <= 22; i++)
+ {
+ strm.formattedGetLine(line);
+ // strip the first 3 characters
+ line.erase(0, 3);
+ // and add to the comment vector
+ comments.push_back(line);
+ }
+ } // end SP3Header::reallyGetRecord()
+
+} // namespace
diff --git a/dev/src/SP3Header.hpp b/dev/src/SP3Header.hpp
new file mode 100644
index 0000000..998fbc0
--- /dev/null
+++ b/dev/src/SP3Header.hpp
@@ -0,0 +1,153 @@
+#pragma ident "$Id$"
+
+/**
+ * @file SP3Header.hpp
+ * Encapsulate header of SP3 file data, including I/O
+ */
+
+#ifndef GPSTK_SP3HEADER_HPP
+#define GPSTK_SP3HEADER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <string>
+#include <map>
+#include <vector>
+#include "DayTime.hpp"
+#include "SP3Base.hpp"
+#include "SP3SatID.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SP3ephem */
+ //@{
+
+ /**
+ * This class models the header for a SP3 file.
+ *
+ * @note A valid header does not need to be read before
+ * data can be read from an sp3 file because a large part of the
+ * SP3 file header is skipped and not processed.
+ *
+ * @sa gpstk::SP3Stream and gpstk::SP3Data for more information.
+ * @sa sp3_test.cpp for an example.
+ */
+ class SP3Header : public SP3Base
+ {
+ public:
+
+ /// Supported time systems (version 'c')
+ enum TimeSystem
+ {
+ timeGPS=1,
+ timeUTC
+ };
+
+ /// constructor
+ SP3Header() : version('a'), numberOfEpochs(0),
+ system(1, SP3SatID::systemGPS), timeSystem(timeGPS),
+ basePV(0.0), baseClk(0.0)
+ {}
+
+ /// destructor
+ virtual ~SP3Header() {}
+
+ /// return a string with time system name
+ std::string timeSystemString() const
+ {
+ switch(timeSystem) {
+ case timeGPS: return "GPS";
+ case timeUTC: return "UTC";
+ default: return "??";
+ }
+ };
+
+ // The next four lines is our common interface
+ /// SP3Header is a "header" so this function always returns true.
+ virtual bool isHeader() const {return true;}
+
+ /// Debug output operator.
+ virtual void dump(std::ostream& s) const;
+
+ char version; ///< Version of the SP3 File, 'a' or 'c'
+ char pvFlag; ///< P or V: File contains positions only (P)
+ ///< or positions and velocities (V)
+ DayTime time; ///< Time of first Epoch in file
+ double epochInterval; ///< Duration of Epoch in seconds
+ int numberOfEpochs; ///< Number of Epochs in this file
+ std::string dataUsed; ///< Types of data input into the positions
+ std::string coordSystem; ///< Coordinate System of the data
+ std::string orbitType; ///< Type of Orbit Estimate
+ std::string agency; ///< Agency generating the Orbit
+ // the following four are specific to version 'c'
+ SP3SatID system; ///< File type (system of satellites in file)
+ TimeSystem timeSystem; ///< Time system used
+ double basePV; ///< Base used in Pos or Vel (mm or 10**-4mm/sec)
+ double baseClk; ///< Base used in Clk or rate (psec or 10**-4psec/sec)
+
+ std::map<SatID, short> satList; ///< Map<SatID,accuracy flag> (all SVs in file)
+ std::vector<std::string> comments; ///< vector of 4 comment lines
+
+ friend class SP3Data;
+
+ protected:
+ /// Writes the record formatted to the FFStream \a s.
+ /// @throws StringException when a StringUtils function fails
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ StringUtils::StringException);
+
+ /**
+ * This function retrieves the SP3 header from the given FFStream.
+ * If an error is encountered in the retrieval of the header, the
+ * stream is reset to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ StringUtils::StringException);
+ };
+
+ //@}
+
+} // namespace
+
+#endif
+
diff --git a/dev/src/SP3SatID.cpp b/dev/src/SP3SatID.cpp
new file mode 100644
index 0000000..41442b4
--- /dev/null
+++ b/dev/src/SP3SatID.cpp
@@ -0,0 +1,51 @@
+#pragma ident "$Id: $"
+
+#include "SP3SatID.hpp"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+/**
+ * @file SP3SatID.cpp
+ * gpstk::SP3SatID - navigation system-independent representation of a satellite
+ * as defined by the SP3 specification.
+ */
+
+namespace gpstk
+{
+ char SP3SatID::fillchar = '0';
+}
diff --git a/dev/src/SP3SatID.hpp b/dev/src/SP3SatID.hpp
new file mode 100644
index 0000000..78e4be3
--- /dev/null
+++ b/dev/src/SP3SatID.hpp
@@ -0,0 +1,200 @@
+#pragma ident "$Id: SatID.hpp 105 2006-08-31 15:53:26Z ocibu $"
+
+#ifndef GPSTK_SP3_SATID_HPP
+#define GPSTK_SP3_SATID_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iostream>
+#include <sstream>
+#include <iomanip>
+
+#include "Exception.hpp"
+#include "SatID.hpp"
+
+/**
+ * @file SP3SatID.hpp
+ * gpstk::SP3SatID - navigation system-independent representation of a satellite
+ * as defined by the SP3 specification.
+ */
+
+namespace gpstk
+{
+ class SP3SatID : public SatID
+ {
+ public:
+
+ /// empty constructor, creates an invalid object
+ SP3SatID() throw() { id=-1; system=systemGPS; }
+
+ /// explicit constructor, no defaults, SP3 systems only
+ SP3SatID(int p, SatelliteSystem s) throw()
+ {
+ id = p; system = s;
+ switch(system) {
+ case systemGPS:
+ case systemGlonass:
+ case systemGalileo:
+ case systemLEO: break;
+ // invalidate anything non-SP3
+ default:
+ system = systemUnknown;
+ id = -1;
+ }
+ }
+
+ /// constructor from string
+ SP3SatID(const std::string& str) throw(Exception)
+ {
+ try { fromString(str); }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+ }
+
+ /// cast SatID to SP3SatID
+ SP3SatID(const SatID& sat) throw()
+ { *this = SP3SatID(sat.id,sat.system); }
+
+ /// set the fill character used in output
+ /// return the current fill character
+ char setfill(char c) throw()
+ { char csave=fillchar; fillchar=c; return csave; }
+
+ /// get the fill character used in output
+ char getfill() throw()
+ { return fillchar; }
+
+ // operator=, copy constructor and destructor built by compiler
+
+ /// return a character based on the system
+ /// return the single-character system descriptor
+ /// @note return only SP3 types, for non-SP3 systems return '?'
+ char systemChar() const throw()
+ {
+ switch (system) {
+ case systemGPS: return 'G';
+ case systemGalileo: return 'E';
+ case systemGlonass: return 'R';
+ case systemLEO: return 'L';
+ case systemMixed: return 'M';
+ // non-SP3
+ default: return '?';
+ }
+ };
+
+ std::string systemString() const throw()
+ {
+ switch (system) {
+ case systemGPS: return "GPS";
+ case systemGalileo: return "Galileo";
+ case systemGlonass: return "Glonass";
+ case systemLEO: return "LEO";
+ case systemMixed: return "Mixed";
+ default: return "Unknown";
+ }
+ };
+
+
+ /// read from string
+ /// @note GPS is default system (no or unknown system char)
+ void fromString(const std::string s) throw(Exception)
+ {
+ char c;
+ std::istringstream iss(s);
+
+ id = -1; system = systemGPS; // default
+ if(s.find_first_not_of(std::string(" \t\n"), 0) == std::string::npos)
+ return; // all whitespace yields the default
+
+ iss >> c; // read one character (non-whitespace)
+ switch(c)
+ {
+ // no leading system character
+ case '0': case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8': case '9':
+ iss.putback(c);
+ system = SatID::systemGPS;
+ break;
+ case ' ': case 'G': case 'g':
+ system = SatID::systemGPS;
+ break;
+ case 'R': case 'r':
+ system = SatID::systemGlonass;
+ break;
+ case 'E': case 'e':
+ system = SatID::systemGalileo;
+ break;
+ case 'L': case 'l':
+ system = SatID::systemLEO;
+ break;
+ case 'M': case 'm':
+ system = SatID::systemMixed;
+ break;
+ default: // non-SP3 system character
+ Exception e(std::string("Invalid system character \"")
+ + c + std::string("\""));
+ GPSTK_THROW(e);
+ }
+ iss >> id;
+ if(id <= 0) id = -1;
+ }
+
+ /// convert to string
+ std::string toString() const throw()
+ {
+ std::ostringstream oss;
+ oss.fill(fillchar);
+ oss << systemChar()
+ << std::setw(2) << id;
+ return oss.str();
+ }
+
+ private:
+
+ static char fillchar; ///< fill character used during stream output
+
+ }; // class SP3SatID
+
+ /// stream output for SP3SatID
+ inline std::ostream& operator<<(std::ostream& s, const SP3SatID& sat)
+ {
+ s << sat.toString();
+ return s;
+ }
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/SP3Stream.hpp b/dev/src/SP3Stream.hpp
new file mode 100644
index 0000000..33f17b5
--- /dev/null
+++ b/dev/src/SP3Stream.hpp
@@ -0,0 +1,83 @@
+#pragma ident "$Id$"
+
+/**
+ * @file SP3Stream.hpp
+ * File stream for SP3 format files
+ */
+
+#ifndef GPSTK_SP3STREAM_HPP
+#define GPSTK_SP3STREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "DayTime.hpp"
+#include "FFTextStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SP3ephem */
+ //@{
+
+ /**
+ * This class provides access to SP3 files.
+ *
+ * @sa gpstk::SP3Header and gpstk::SP3Data for more information.
+ * @sa sp3_test.cpp for an example.
+ */
+ class SP3Stream : public FFTextStream
+ {
+ public:
+ SP3Stream() : buffer(std::string()) {}
+
+ /** Constructor
+ * Opens file \a fn using ios::openmode \a mode.
+ */
+ SP3Stream(const char* fn, std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode) {}
+
+ /// destructor
+ virtual ~SP3Stream() {}
+
+ DayTime currentEpoch; ///< Time from last epoch record read
+ std::string buffer; ///< Last line read, not yet processed
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SVExclusionList.cpp b/dev/src/SVExclusionList.cpp
new file mode 100644
index 0000000..2bd85d5
--- /dev/null
+++ b/dev/src/SVExclusionList.cpp
@@ -0,0 +1,346 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+
+
+
+//
+//
+#include <stdio.h>
+// gpstk
+#include "SVExclusionList.hpp"
+
+namespace gpstk
+{
+
+ using namespace std;
+
+//--------------- Methods for SVExclusionList ---------------
+ SVExclusionList::SVExclusionList( )
+ :earliestTime(gpstk::DayTime::END_OF_TIME),
+ latestTime(gpstk::DayTime::BEGINNING_OF_TIME)
+ {
+ readFailCount = 0;
+ timeSpecString = "%F %g";
+ }
+
+ SVExclusionList::SVExclusionList( const std::string filename )
+ throw(SVExclusionList::SVExclusionFileNotFound)
+ :earliestTime(gpstk::DayTime::END_OF_TIME),
+ latestTime(gpstk::DayTime::BEGINNING_OF_TIME)
+ {
+ readFailCount = 0;
+ timeSpecString = "%F %g";
+ addFile( filename );
+ }
+
+ void SVExclusionList::addFile( const std::string filename )
+ throw(SVExclusionList::SVExclusionFileNotFound)
+ {
+ char file[100];
+ sscanf(filename.c_str(),"%s",file);
+ FILE* inf = fopen(file, "rt");
+ if (inf==0)
+ {
+ char text[200];
+ sprintf(text,"Exclusion file not found. Filename: %s",filename.c_str());
+ std::string sout = text;
+ SVExclusionFileNotFound noSVXFile( sout );
+ GPSTK_THROW(noSVXFile);
+ }
+
+ std::string temps;
+ DayTime tempDTs;
+ std::string tempe;
+ DayTime tempDTe;
+ int lineCount =0;
+ char fileLine[200];
+ while (fgets(fileLine, 200, inf))
+ {
+ lineCount++;
+ //cout << "------------- Line " << lineCount << endl;
+ string whiteSpace = " \t\n\r";
+ string lineIn = fileLine;
+
+ // strip trailing whitespace
+ string::size_type endIndex = lineIn.find_last_not_of(whiteSpace);
+ lineIn = lineIn.substr( 0, endIndex+1 );
+ string lead2Chars = lineIn.substr(0,2);
+ if (lead2Chars.compare("TS")==0)
+ {
+ string::size_type q1 = lineIn.find('"');
+ string::size_type q2 = lineIn.find('"',(q1+1));
+ if (q1!=string::npos && q2!=string::npos)
+ {
+ timeSpecString = lineIn.substr((q1+1),(q2-q1-1));
+ // debug
+ //cout << " New timeSpecString '" << timeSpecString << "'." << endl;
+ }
+ else
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ "Invalid TS specification at",
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ }
+ }
+ if (lead2Chars.compare("EX")==0)
+ {
+ string::size_type c1 = lineIn.find(',');
+ string::size_type c2 = lineIn.find(',',(c1+1));
+ string::size_type c3 = lineIn.find(',',(c2+1));
+ if (c1!=string::npos && c2!=string::npos)
+ {
+ std::string comment = "";
+ int PRNID = StringUtils::asInt(lineIn.substr(2, (c1-1)) );
+ if (PRNID<0 || PRNID>gpstk::MAX_PRN)
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ "PRN ID out of range",
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ continue;
+ }
+ temps = lineIn.substr((c1+1),(c2-c1-1));
+ string::size_type nonWhiteBeg = temps.find_first_not_of(whiteSpace);
+ string::size_type nonWhiteEnd = temps.find_last_not_of(whiteSpace);
+ //cout << "Before trimming. temps, Beg, End = '" << temps << "', " << nonWhiteBeg << ", " << nonWhiteEnd << "." << endl;
+ if (nonWhiteEnd!=string::npos)
+ temps = temps.substr(nonWhiteBeg,nonWhiteEnd-nonWhiteBeg+1);
+ else
+ temps = temps.substr(nonWhiteBeg);
+
+ //cout << "c3, string::npos = " << c3 << ", " << string::npos << endl;
+ if (c3!=string::npos)
+ {
+ tempe = lineIn.substr(c2+1, (c3-c2-1) );
+ comment = lineIn.substr(c3+1);
+ nonWhiteBeg = comment.find_first_not_of(whiteSpace);
+ comment = comment.substr(nonWhiteBeg);
+ }
+ else
+ tempe = lineIn.substr(c2+1);
+
+ nonWhiteBeg = tempe.find_first_not_of(whiteSpace);
+ nonWhiteEnd = tempe.find_last_not_of(whiteSpace);
+ //cout << "Before trimming. tempe, Beg, End = '" << tempe << "', " << nonWhiteBeg << ", " << nonWhiteEnd << "." << endl;
+ if (nonWhiteEnd!=string::npos)
+ tempe = tempe.substr(nonWhiteBeg,nonWhiteEnd-nonWhiteBeg+1);
+ else
+ tempe = tempe.substr(nonWhiteBeg);
+ try
+ {
+ //cout << "Input start string: '" << temps << "'." << endl;
+ tempDTs.setToString( temps, timeSpecString );
+ //cout << "Input end string: '" << tempe << "'." << endl;
+ tempDTe.setToString( tempe, timeSpecString );
+ if (tempDTs<=tempDTe)
+ {
+ SVExclusion svEx( tempDTs, tempDTe, PRNID, comment );
+
+ // Add exclusion to the multimap
+ addExclusion( svEx );
+ }
+ else
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ "Start time after end time",
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ }
+ }
+ catch (DayTime::DayTimeException& dte)
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ dte.getText(),
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ }
+ catch (DayTime::FormatException& fe)
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ fe.getText(),
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ }
+ catch (gpstk::StringUtils::StringException& se)
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ se.getText(),
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ }
+ }
+ else
+ {
+ readFailCount++;
+ string failString = buildFailString(
+ "Invalid EX line format at",
+ lineCount,
+ filename);
+ readFailList.push_back( failString );
+ }
+ }
+ }
+ fclose(inf);
+ }
+
+ void SVExclusionList::addExclusion( const SVExclusion svx )
+ {
+ // The sun compiler's *really* picky about its consts and says this doesn't work:
+ //exclusionMap.insert( make_pair( svx.getPRNID(), svx ) );
+
+ // Here's some tedium to make it happy:
+ pair<const int, gpstk::SVExclusion> temp( svx.getPRNID(), svx );
+ exclusionMap.insert( temp );
+
+ // Update the earliest/latest info
+ if (svx.getBeginTime() < earliestTime) earliestTime = svx.getBeginTime();
+ if (svx.getEndTime() > latestTime) latestTime = svx.getEndTime();
+ }
+
+ bool SVExclusionList::isExcluded(
+ const int PRN,
+ const gpstk::DayTime dt ) const
+ {
+ SVXListPair p = exclusionMap.equal_range( PRN );
+ for (SVXListCI ci=p.first; ci != p.second; ++ci)
+ {
+ if (ci->second.isApplicable( PRN, dt )) return(true);
+ }
+ return(false);
+ }
+
+ const SVExclusion& SVExclusionList::getApplicableExclusion(
+ const int PRN, const gpstk::DayTime dt)
+ const throw(SVExclusionList::NoSVExclusionFound)
+ {
+ SVXListPair p = exclusionMap.equal_range( PRN );
+ for (SVXListCI ci=p.first; ci != p.second; ++ci)
+ {
+ if (ci->second.isApplicable( PRN, dt )) return( ci->second );
+ }
+
+ // Failed to find an exclusion corresponding to the request
+ char textOut[80];
+ sprintf(textOut,"No SVExclusion found for PRN %02d at %s.",
+ PRN, dt.printf("week %F SOW %g, %02m/%02d/%02y %02H:%02M:%02S").c_str());
+ std::string sout = textOut;
+ NoSVExclusionFound noSVX( sout );
+ GPSTK_THROW(noSVX);
+ }
+
+ void SVExclusionList::dumpList( FILE* fp ) const
+ {
+ if (fp==0) return;
+ std::string timeString = "Wk %F SOW %6.0g, %02m/%02d/%02y (DOY %03j) %02H:%02M:%02S";
+ fprintf(fp,"List of SV Exclusion from SVExclusionList\n\n");
+ for (int PRN=1; PRN<=gpstk::MAX_PRN; ++PRN)
+ {
+ fprintf(fp,"\nExclusions for PRN %02d\n",PRN);
+ SVXListPair p = exclusionMap.equal_range( PRN );
+ for (SVXListCI ci=p.first; ci != p.second; ++ci)
+ {
+ fprintf(fp," %s to %s\n",
+ ci->second.getBeginTime().printf(timeString).c_str(),
+ ci->second.getEndTime().printf(timeString).c_str());
+ }
+ }
+ }
+
+ void SVExclusionList::listOfReadFailures() const
+ {
+ typedef list<string>::const_iterator LI;
+ for (LI i=readFailList.begin(); i!=readFailList.end(); ++i)
+ {
+ cerr << *i << endl;
+ }
+ }
+
+ void SVExclusionList::listOfReadFailures( FILE* fpout ) const
+ {
+ if (fpout==0) return;
+ typedef list<string>::const_iterator LI;
+ for (LI i=readFailList.begin(); i!=readFailList.end(); ++i)
+ {
+ fprintf(fpout,"%s\n",(*i).c_str());
+ }
+ }
+
+ void SVExclusionList::listOfReadFailures( std::ofstream fsout ) const
+ {
+ if (!fsout.is_open()) return;
+ typedef list<string>::const_iterator LI;
+ for (LI i=readFailList.begin(); i!=readFailList.end(); ++i)
+ {
+ fsout << *i << endl;
+ }
+ }
+
+ std::string SVExclusionList::buildFailString(const std::string s,
+ const int lineCount, const std::string filename )
+ {
+ string outString = s;
+ outString += " at line ";
+ outString += StringUtils::asString(lineCount);
+ outString += " of file ";
+ outString += filename;
+ outString += ".";
+ return(outString);
+ }
+
+//--------------- Methods for SVExclusion ---------------
+ SVExclusion::SVExclusion( const gpstk::DayTime begin,
+ const gpstk::DayTime end,
+ const int PRNID,
+ const std::string commentArg )
+ {
+ begExclude = begin;
+ endExclude = end;
+ PRN_IDENTIFIER = PRNID;
+ comment = commentArg;
+ }
+
+ bool SVExclusion::isApplicable( const int PRNID, const gpstk::DayTime dt ) const
+ {
+ if (dt>=begExclude && dt<=endExclude && PRN_IDENTIFIER==PRNID) return(true);
+ return(false);
+ }
+
+} // end namespace gpstk
diff --git a/dev/src/SVExclusionList.hpp b/dev/src/SVExclusionList.hpp
new file mode 100644
index 0000000..d1be80c
--- /dev/null
+++ b/dev/src/SVExclusionList.hpp
@@ -0,0 +1,154 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+
+
+/**
+*
+*
+*
+*Input File Format
+* The file may contain any number of lines of ASCII text. Any line that
+* does not begin with "EX" or "TS" will be ignored. Lines beginning with
+* TS are assumed to contains a double quote delimited string that defines
+* the time format that will be used in following EX lines. The default
+* time string is "%F %g" (GPS full week, GPS Second of Week). See
+* DayTime.hpp for more information on time specificaction strings
+* (in particular the method DayTime.setToString()).
+*
+* Each "EX" line must follow the format:
+*
+* EX pp, startTime, endTime, comment(optional)
+*
+*where
+* pp - SV PRNID
+* startTime - In format defined by latest TS command
+* endTime - In format defined by latest TS command
+* comment - An optional ASCII text comment to be stored with the exclusion
+*
+* Read failues will silently discarded, however, the calling program
+* may access a count of the number of read failures and a list of the
+* failures.
+*/
+#ifndef GPSTK_SVEXCLUSIONLIST_HPP
+#define GPSTK_SVEXCLUSIONLIST_HPP
+
+//
+#include <stdio.h>
+#include <fstream>
+#include <iostream>
+
+// std library
+#include <map>
+
+// gpstk
+#include "DayTime.hpp"
+#include "Exception.hpp"
+#include "gps_constants.hpp"
+
+namespace gpstk
+{
+ class SVExclusion
+ {
+ public:
+ SVExclusion( const gpstk::DayTime begin,
+ const gpstk::DayTime end,
+ const int PRNID,
+ const std::string commentArg );
+ bool isApplicable( const int PRNID, const gpstk::DayTime dt ) const;
+ std::string getComment() const;
+ int getPRNID() const;
+ gpstk::DayTime getBeginTime() const;
+ gpstk::DayTime getEndTime() const;
+
+ protected:
+ int PRN_IDENTIFIER;
+ gpstk::DayTime begExclude;
+ gpstk::DayTime endExclude;
+ std::string comment;
+ };
+
+ // For this first implementation, there will be a multimap
+ // organized by PRN.
+
+ typedef std::multimap< int, SVExclusion >::const_iterator SVXListCI;
+ typedef std::pair<SVXListCI,SVXListCI> SVXListPair;
+
+ class SVExclusionList
+ {
+ public:
+ NEW_EXCEPTION_CLASS( NoSVExclusionFound , gpstk::Exception);
+ NEW_EXCEPTION_CLASS( SVExclusionFileNotFound , gpstk::Exception);
+
+ SVExclusionList( );
+ SVExclusionList( std::string filename )
+ throw(SVExclusionFileNotFound);
+ void addFile( const std::string filename )
+ throw(SVExclusionFileNotFound);
+ bool isExcluded( const int PRN, const gpstk::DayTime dt ) const;
+ void addExclusion( const SVExclusion );
+ gpstk::DayTime getEarliestTime() const;
+ gpstk::DayTime getLatestTime() const;
+ int getNumberOfExclusions() const;
+ const SVExclusion& getApplicableExclusion(
+ const int PRN, const gpstk::DayTime dt)
+ const throw(NoSVExclusionFound);
+ int numberOfReadFailures() const;
+ void listOfReadFailures() const; // List goes to cerr
+ void listOfReadFailures( FILE* fpout ) const;
+ void listOfReadFailures( std::ofstream fsout ) const;
+ void dumpList( FILE* fp ) const;
+
+ protected:
+ gpstk::DayTime earliestTime;
+ gpstk::DayTime latestTime;
+ std::multimap< int, SVExclusion > exclusionMap;
+
+ std::string timeSpecString;
+ int readFailCount;
+ std::list<std::string> readFailList;
+
+ std::string buildFailString(const std::string s,
+ const int lineCount, const std::string filename );
+ };
+
+ inline gpstk::DayTime SVExclusionList::getEarliestTime() const
+ { return(earliestTime); }
+ inline gpstk::DayTime SVExclusionList::getLatestTime() const
+ { return(latestTime); }
+ inline int SVExclusionList::getNumberOfExclusions() const
+ { return(exclusionMap.size()); }
+ inline int SVExclusionList::numberOfReadFailures() const
+ { return(readFailCount); }
+
+ inline std::string SVExclusion::getComment() const {return(comment); }
+ inline int SVExclusion::getPRNID() const { return(PRN_IDENTIFIER); }
+ inline gpstk::DayTime SVExclusion::getBeginTime() const { return(begExclude); }
+ inline gpstk::DayTime SVExclusion::getEndTime() const { return(endExclude); }
+
+}
+#endif
diff --git a/dev/src/SVPCodeGen.cpp b/dev/src/SVPCodeGen.cpp
new file mode 100644
index 0000000..012acfc
--- /dev/null
+++ b/dev/src/SVPCodeGen.cpp
@@ -0,0 +1,112 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include "SVPCodeGen.hpp"
+
+namespace gpstk
+{
+ const long LAST_6SEC_ZCOUNT_OF_WEEK = 403200 - 4;
+
+ SVPCodeGen::SVPCodeGen( const int SVPRNID, const gpstk::DayTime& dt )
+ {
+ currentZTime = dt;
+ PRNID = SVPRNID;
+ }
+
+ void SVPCodeGen::getCurrentSixSeconds( CodeBuffer& pcb )
+ {
+ // Compute appropriate X2A offset
+ long X2count;
+ long X1count = currentZTime.GPSzcount();
+
+ /*
+ Trivial, but special, case for beginning of week. This
+ can't be simplified into the general case due to the beginning
+ of week chip delays that are equivalent to the PRNID. These
+ chips are stored at the beginning of the X2 chips sequence. This
+ is the only time the X2count should be "negative". The offset is
+ handled within the X2Sequence::operator[] method.
+ */
+ if (X1count==0) X2count = -PRNID;
+
+ /*
+ At the beginning of an X1 epoch, the previous X2 epoch
+ will still be unfinished due to delays. The accumulated
+ delay is based on the PRNID and the delay per X1 epoch.
+ Subtract this delay from the max length of the X2 sequence
+ to determine the current chip within the X2 sequence.
+ */
+ else
+ {
+ long cumulativeX2Delay = X1count * X2A_EPOCH_DELAY + PRNID;
+ X2count = MAX_X2_TEST - cumulativeX2Delay;
+ if (X2count<0) X2count += MAX_X2_TEST;
+ }
+
+ /*
+ If this if the final six-second interval of the week,
+ signal the X2 bit sequence generator to use the "end of week"
+ sequence. Otherwise, use the "regular" sequence.
+ */
+ if ( X1count==LAST_6SEC_ZCOUNT_OF_WEEK) X2Seq.setEOWX2Epoch(true);
+ else X2Seq.setEOWX2Epoch(false);
+
+ // Update the time and code state in the CodeBuffer object
+ pcb.updateBufferStatus( currentZTime, P_CODE );
+
+ // Starting at the beginning of the interval, step through
+ // the six second period loading the code buffer as we go.
+ for ( long i=0;i<NUM_6SEC_WORDS;++i )
+ {
+ pcb[i] = X1Seq[i] ^ X2Seq[X2count];
+ X2count += MAX_BIT;
+ if (X2count>=MAX_X2_TEST) X2count -= MAX_X2_TEST;
+ }
+ }
+
+ void SVPCodeGen::increment4ZCounts( )
+ {
+ currentZTime += 6; // 6 seconds == 4 Zcounts.
+ }
+
+ void SVPCodeGen::setCurrentZCount(const gpstk::GPSZcount& z)
+ {
+ GPSZcount z2 = z - z%4;
+ currentZTime = z2;
+ }
+} // end of namespace
diff --git a/dev/src/SVPCodeGen.hpp b/dev/src/SVPCodeGen.hpp
new file mode 100644
index 0000000..cc86a47
--- /dev/null
+++ b/dev/src/SVPCodeGen.hpp
@@ -0,0 +1,149 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef SVPCODEGEN_HPP
+#define SVPCODEGEN_HPP
+
+
+#include "DayTime.hpp"
+#include "PCodeConst.hpp"
+#include "CodeBuffer.hpp"
+#include "X1Sequence.hpp"
+#include "X2Sequence.hpp"
+
+namespace gpstk
+{
+/** @defgroup code Code generator */
+//@{
+ /**
+ * SV P-code Generator.
+ * Applied Research Laboratories, The University of Texas at Austin
+ * August 2003
+ *
+ * SVPCodeGen handles the P-code generation for a particular SV. Each object
+ * is initialized based on the particular satellite (identified by PRN code)
+ * and the Z-count when generation is to begin. The Z-count must be an even
+ * four Z-count (six second) interval. Input values that do not align with four
+ * Z-count boundaries are rounded BACK to the next earliest 4 Z-count boundary.
+ *
+ * After initializaiton, P-code is generated in 6-second "chunks". The chunks
+ * are returned to the caller in CodeBuffer objects. After each call to
+ * getNextSixSeconds( ), the application shall call increment4ZCounts( )
+ * to advance the time by four Z-counts. This separation between getting the
+ * bits and advancing the time is purposely done to allow for easier
+ * coordination when generating code for multiple satellites and performing
+ * other operations on the data after generating the P-code and before moving
+ * on to the next increment.
+ *
+ * A key aspect of this class is the use of the X1Sequence and X2Sequence
+ * classes. Analysis of the P-code generation processes reveals that the
+ * combined X1A/X1B bit stream repeats every 1.5s (1 Z-count) and is the
+ * same for all satellites. At the end of 6s (4 Z-counts), the number of
+ * bits is evenly divisable by 32 (which is the assumed wordsize for the
+ * applicationn). Therefore, to obtain X1 bits, getNextSixSeconds( ) need only
+ * access the indiviual words from the X1Sequence starting at the beginning
+ * of the array and progressing to the end. The restriction that the coder
+ * must start on an even 6-second (4 Z-count) epoch and generate intervals of
+ * six seconds obviates the need to build code to compute bit positions
+ * within X1A cycles or any information on the X1A/X1B relationship. See
+ * documentation on the class X1Sequence for more information.
+ *
+ * The situation with respect to X2A/X2B is somewhat more complicated. Once
+ * again, the X2A/X2B sequence is only 1.5s long. However, the X2 sequence is
+ * "slipped" wrt the X1 sequence in two ways: (1.) once per week (at the
+ * beginning of week), it is slipped by a number of bits corresponding to
+ * the PRN ID, (2.) slipped 37 bits for each X2A cycle. This
+ * means that it is necessary to keep track of the bit position within the
+ * X2 sequence and "chop out" 32 bits at a time. See documentation for the
+ * class X2Sequence for more information.
+ */
+ class SVPCodeGen
+ {
+ public:
+ /**
+ * SVPCodeGen::SVPCodeGen( const int PRNID, const DayTime ) -
+ * Instantiate and initialize a SVPCodeGen object. Based on the
+ * PRNID and the ZCount, determine the appropriate starting
+ * location in the X2 sequence and set it up. Set the current
+ * time.
+ */
+ SVPCodeGen( const int SVPRNID, const gpstk::DayTime& dt );
+ ~SVPCodeGen( ) {};
+
+ /**
+ * Starting at the beginning of the X1 sequence and at the
+ * appropriate location (as determined by time and PRN), advance
+ * through both the X1 sequence and X2 sequences combining the
+ * sequences 32 bits at a time until the X1 sequence for this
+ * six second period has been exhausted. Sometime within that
+ * period, the X2 sequence will be exahusted (including the
+ * appropriate delays) and will rollover to the beginning of
+ * the sequence.
+ */
+ void getCurrentSixSeconds( CodeBuffer& pcb );
+
+ /**
+ * Generally, the only action is to increment the Z-count by
+ * 4 counts. This function COULD be included at the end of
+ * getCurrentSixSeconds( ), however, it has been separated to
+ * allow the calling application to have a consistent view of
+ * all the state conditions (for output and debug) before
+ * moving the time forward for the next generation.
+ */
+ void increment4ZCounts();
+
+ /**
+ * Returns the current time to the calling method.
+ */
+ const gpstk::DayTime& getCurrentZCount() const {return currentZTime;}
+
+ /** Allows the user to set the current time. While a any time may
+ be specified, this routine will take the Z % 4 for the actuall
+ time.
+ **/
+ void setCurrentZCount(const gpstk::GPSZcount& z);
+
+ private:
+ gpstk::X1Sequence X1Seq;
+ gpstk::X2Sequence X2Seq;
+ gpstk::DayTime currentZTime;
+ int PRNID;
+ };
+ //@}
+} // end of namespace
+#endif // SVPCODEGEN_HPP
diff --git a/dev/src/SatID.hpp b/dev/src/SatID.hpp
new file mode 100644
index 0000000..cfffecc
--- /dev/null
+++ b/dev/src/SatID.hpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+#ifndef GPSTK_SATID_HPP
+#define GPSTK_SATID_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <gps_constants.hpp>
+
+/**
+ * @file SatID.hpp
+ * gpstk::SatID - navigation system-independent representation of a satellite.
+ */
+
+namespace gpstk
+{
+ // forward declarations
+ class SatID;
+ std::istream& operator>>(std::istream& s, SatID& p);
+
+ /// Satellite identifier consisting of a satellite number (PRN, etc.)
+ /// and a satellite system
+ class SatID
+ {
+ public:
+ /// Supported satellite systems
+ enum SatelliteSystem
+ {
+ systemGPS = 1,
+ systemGalileo,
+ systemGlonass,
+ systemGeosync,
+ systemLEO,
+ systemTransit,
+ systemMixed,
+ systemUnknown
+ };
+
+ /// empty constructor, creates an invalid object
+ SatID() { id=-1; system=systemGPS; }
+
+ /// explicit constructor, no defaults
+ /// @note if s is given a default value here,
+ /// some compilers will silently cast int to SatID.
+ SatID(int p, SatelliteSystem s) { id=p; system=s; }
+
+ // operator=, copy constructor and destructor built by compiler
+
+ /// Convenience output method
+ void dump(std::ostream& s) const
+ {
+ switch(system)
+ {
+ case systemGPS: s << "GPS"; break;
+ case systemGalileo: s << "Galileo"; break;
+ case systemGlonass: s << "GLONASS"; break;
+ case systemGeosync: s << "Geostationary"; break;
+ case systemLEO: s << "LEO"; break;
+ case systemTransit: s << "Transit"; break;
+ case systemMixed: s << "Mixed"; break;
+ case systemUnknown: s << "Unknown"; break;
+ default: s << "??"; break;
+ }
+ s << " " << id;
+ }
+
+ /// operator == for SatID
+ bool operator==(const SatID& right) const
+ { return ((system == right.system) && (id == right.id)); }
+
+ /// operator != for SatID
+ bool operator!=(const SatID& right) const
+ { return !(operator==(right)); }
+
+ /// operator < for SatID : order by system, then number
+ bool operator<(const SatID& right) const
+ {
+ if (system==right.system)
+ return (id<right.id);
+ return (system<right.system);
+ }
+
+ /// operator > for SatID
+ bool operator>(const SatID& right) const
+ { return (!operator<(right) && !operator==(right)); }
+
+ /// operator <= for SatID
+ bool operator<=(const SatID& right) const
+ { return (operator<(right) || operator==(right)); }
+
+ /// operator >= for SatID
+ bool operator>=(const SatID& right) const
+ { return !(operator<(right)); }
+
+ /// return true if this is a valid SatID
+ /// @note assumes all id's are positive and less than 100;
+ /// plus GPS id's are less than or equal to MAX_PRN (32).
+ /// @note this is not used internally in the gpstk library
+ bool isValid() const
+ {
+ switch(system)
+ {
+ case systemGPS: return (id > 0 && id <= MAX_PRN);
+ //case systemGalileo:
+ //case systemGlonass:
+ //case systemGeosync:
+ //case systemLEO:
+ //case systemTransit:
+ default: return (id > 0 && id < 100);
+ }
+ }
+
+ int id; ///< satellite identifier, e.g. PRN
+ SatelliteSystem system; ///< system for this satellite
+
+ }; // class SatID
+
+ namespace StringUtils
+ {
+ inline std::string asString(const SatID& p)
+ {
+ std::ostringstream oss;
+ p.dump(oss);
+ return oss.str();
+ }
+ }
+
+ /// stream output for SatID
+ inline std::ostream& operator<<(std::ostream& s, const SatID& p)
+ {
+ p.dump(s);
+ return s;
+ }
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/SimpleFilter.hpp b/dev/src/SimpleFilter.hpp
new file mode 100644
index 0000000..280d151
--- /dev/null
+++ b/dev/src/SimpleFilter.hpp
@@ -0,0 +1,320 @@
+
+/**
+ * @file SimpleFilter.hpp
+ * This class filters out satellites with observations grossly out of bounds.
+ */
+
+#ifndef Simple_Filter_GPSTK
+#define Simple_Filter_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+
+
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+
+ /** @addtogroup DataStructures */
+ //@{
+
+
+ /** This class filters out satellites with observations grossly out of bounds.
+ * This class is meant to be used with the GNSS data structures objects
+ * found in "DataStructures" class.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ *
+ * gnssRinex gRin;
+ * SimpleFilter myFilter;
+ *
+ * while(rin >> gRin) {
+ * gRin >> myFilter;
+ * }
+ * @endcode
+ *
+ * The "SimpleFilter" object will visit every satellite in the GNSS data
+ * structure that is "gRin" and will check that the given code observations
+ * are within some (preassigned) boundaries.
+ *
+ * By default, the algorithm will check C1 observables, the minimum limit
+ * is 15000000.0 meters and the maximum limit is 30000000.0 meters. You can
+ * change all these settings with the appropriate set methods.
+ *
+ * Also, you may set more than one observable to be checked by passing a
+ * "TypeIDSet" object to the appropriate constructors or methods. For instance:
+ *
+ * @code
+ * TypeIDSet typeSet;
+ * typeSet.insert(TypeID::P1);
+ * typeSet.insert(TypeID::P2);
+ *
+ * myFilter.setFilteredType(typeSet);
+ * @endcode
+ *
+ * Be warned that if a given satellite does not have the observations required,
+ * or if their are out of bounds, the full satellite record will be summarily
+ * deleted from the data structure.
+ *
+ */
+ class SimpleFilter
+ {
+ public:
+
+ /// Default constructor.
+ SimpleFilter() : minLimit(15000000.0), maxLimit(30000000.0)
+ {
+ setFilteredType(TypeID::C1); // By default, filter C1
+ };
+
+
+ /** Explicit constructor
+ *
+ * @param type TypeID to be filtered.
+ * @param min Minimum limit (in meters).
+ * @param max Maximum limit (in meters).
+ */
+ SimpleFilter(const TypeID& type, const double& min, const double& max) : minLimit(min), maxLimit(max)
+ {
+ setFilteredType(type);
+ };
+
+
+ /** Explicit constructor
+ *
+ * @param type TypeID to be filtered.
+ */
+ SimpleFilter(const TypeID& type) : minLimit(15000000.0), maxLimit(30000000.0)
+ {
+ setFilteredType(type);
+ };
+
+
+ /** Explicit constructor
+ *
+ * @param typeSet Set of TypeID's to be filtered.
+ * @param min Minimum limit (in meters).
+ * @param max Maximum limit (in meters).
+ */
+ SimpleFilter(const TypeIDSet& typeSet, const double& min, const double& max) : filterTypeSet(typeSet), minLimit(min), maxLimit(max) {};
+
+
+ /** Explicit constructor
+ *
+ * @param typeSet Set of TypeID's to be filtered.
+ */
+ SimpleFilter(const TypeIDSet& typeSet) : filterTypeSet(typeSet), minLimit(15000000.0), maxLimit(30000000.0) {};
+
+
+ /** Returns a satTypeValueMap object, filtering the target observables.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Filter(satTypeValueMap& gData)
+ {
+
+ SatIDSet satRejectedSet;
+
+ // Check all the indicated TypeID's
+ TypeIDSet::const_iterator pos;
+ for (pos = filterTypeSet.begin(); pos != filterTypeSet.end(); ++pos)
+ {
+
+ double value(0.0);
+
+ // Loop through all the satellites
+ satTypeValueMap::iterator it;
+ for (it = gData.begin(); it != gData.end(); ++it)
+ {
+ try
+ {
+ // Try to extract the values
+ value = (*it).second(*pos);
+
+ // Now, check that the value is within bounds
+ if ( !( checkValue(value) ) )
+ {
+ // If value is out of bounds, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ }
+ }
+ catch(...)
+ {
+ // If some value is missing, then schedule this satellite for removal
+ satRejectedSet.insert( (*it).first );
+ }
+ }
+ // Before checking next TypeID, let's remove satellites with data out of bounds
+ gData.removeSatID(satRejectedSet);
+ }
+
+ return gData;
+ };
+
+
+ /** Method to set the minimum limit.
+ * @param min Minimum limit (in meters).
+ */
+ virtual void setMinLimit(const double& min)
+ {
+ minLimit = min;
+ };
+
+
+ /// Method to get the minimum limit.
+ virtual double getMinLimit() const
+ {
+ return minLimit;
+ };
+
+
+ /** Method to set the maximum limit.
+ * @param max Maximum limit (in meters).
+ */
+ virtual void setMaxLimit(const double& max)
+ {
+ maxLimit = max;
+ };
+
+
+ /// Method to get the maximum limit.
+ virtual double getMaxLimit() const
+ {
+ return maxLimit;
+ };
+
+
+ /** Method to add a TypeID to be filtered.
+ * @param type Extra TypeID to be filtered.
+ */
+ virtual void addFilteredType(const TypeID& type)
+ {
+ filterTypeSet.insert(type);
+ };
+
+
+ /** Method to set a TypeID to be filtered. This method will erase previous types.
+ * @param type TypeID to be filtered.
+ */
+ virtual void setFilteredType(const TypeID& type)
+ {
+ filterTypeSet.clear(); // This makes the set empty
+ filterTypeSet.insert(type);
+ };
+
+
+ /** Method to set the TypeID's to be filtered. This method will erase previous types.
+ * @param typeSet Set of TypeID's to be filtered.
+ */
+ virtual void setFilteredType(const TypeIDSet& typeSet)
+ {
+ filterTypeSet.clear(); // This makes the set empty
+ filterTypeSet = typeSet;
+ };
+
+
+ /// Method to get the set of TypeID's to be filtered.
+ virtual TypeIDSet getFilteredType() const
+ {
+ return filterTypeSet;
+ };
+
+
+ /** Returns a gnnsSatTypeValue object, filtering the target observables.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Filter(gnssSatTypeValue& gData)
+ {
+ (*this).Filter(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a gnnsRinex object, filtering the target observables.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Filter(gnssRinex& gData)
+ {
+ (*this).Filter(gData.body);
+ return gData;
+ };
+
+
+ /// Destructor
+ virtual ~SimpleFilter() {};
+
+
+ protected:
+ /** Checks that the value is within the given limits.
+ * @param value The value to be test
+ *
+ * @return
+ * True if check was OK.
+ */
+ virtual bool checkValue(const double& value) const
+ {
+ return ( (value>=minLimit) && (value<=maxLimit) );
+ }; // end SimpleFilter::checkValue()
+
+ /// Set of types to be filtered
+ TypeIDSet filterTypeSet;
+
+ /// Minimum value allowed for input data (in meters).
+ double minLimit;
+
+ /// Maximum value allowed for input data (in meters).
+ double maxLimit;
+
+
+ }; // end class SimpleFilter
+
+
+ /// Input operator from gnssSatTypeValue to SimpleFilter.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, SimpleFilter& sFilter)
+ {
+ sFilter.Filter(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to SimpleFilter.
+ inline gnssRinex& operator>>(gnssRinex& gData, SimpleFilter& sFilter)
+ {
+ sFilter.Filter(gData);
+ return gData;
+ }
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/SimpleIURAWeight.cpp b/dev/src/SimpleIURAWeight.cpp
new file mode 100644
index 0000000..97280cb
--- /dev/null
+++ b/dev/src/SimpleIURAWeight.cpp
@@ -0,0 +1,158 @@
+
+/**
+ * @file SimpleIURAWeight.cpp
+ * Class for assign weights to satellites based on their URA Index (IURA).
+ */
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "SimpleIURAWeight.hpp"
+
+using namespace std;
+namespace gpstk
+{
+
+ // Compute and return a vector with the weights for the given satellites
+ // @param time Epoch weights will be computed for
+ // @param Satellites Vector of satellites
+ // @param bcEph Satellite broadcast ephemeris
+ //
+ // @return
+ // Number of satellites with valid weights
+ //
+ // NOTE: Method isValid() will return false if some satellite does not have a
+ // valid weight.
+ //
+ int SimpleIURAWeight::getWeights(DayTime& time, Vector<SatID>& Satellites, BCEphemerisStore& bcEph) throw(InvalidWeights)
+ {
+ int N = Satellites.size();
+ // We need at least one satellite
+ if (N == 0)
+ {
+ InvalidWeights eWeight("At least one satellite is needed to compute weights.");
+ GPSTK_THROW(eWeight);
+ }
+
+ int i, iura;
+ double sigma;
+ // Some std::vectors to hold temporal values (do not confuse with gpstk::Vector)
+ vector<double> vWeight;
+ vector<SatID> vAvailableSV;
+ vector<SatID> vRejectedSV;
+ EngEphemeris engEph;
+ bool validFlag = true;
+
+ for (i=0; i<N; i++)
+ {
+ try
+ {
+ engEph = bcEph.findEphemeris(Satellites(i).id, time);
+ iura = engEph.getAccFlag();
+ }
+ catch(...)
+ {
+ // If there are problems, we skip this satellite
+ vRejectedSV.push_back(Satellites(i));
+ validFlag = false; // Validity flag is set to false
+ continue;
+ }
+ sigma = gpstk::ura2nominalAccuracy(iura);
+ vWeight.push_back( 1.0 / (sigma*sigma) );
+ vAvailableSV.push_back(Satellites(i));
+ }
+
+ valid = validFlag;
+ weightsVector = vWeight;
+ availableSV = vAvailableSV;
+ rejectedSV = vRejectedSV;
+
+ return (int)(availableSV.size());
+
+ }
+
+
+ // Compute and return a vector with the weights for the given satellites
+ // @param time Epoch weights will be computed for
+ // @param Satellites Vector of satellites
+ // @param preciseEph Satellite precise ephemeris
+ //
+ // @return
+ // Number of satellites with valid weights
+ //
+ // NOTE: Method isValid() will return false if some satellite does not have a
+ // valid weight.
+ //
+ // NOTE: This method assigns an URA of 0.1 m to all satellites.
+ //
+ int SimpleIURAWeight::getWeights(DayTime& time, Vector<SatID>& Satellites, TabularEphemerisStore& preciseEph) throw(InvalidWeights)
+ {
+ int N = Satellites.size();
+ // We need at least one satellite
+ if (N == 0)
+ {
+ InvalidWeights eWeight("At least one satellite is needed to compute weights.");
+ GPSTK_THROW(eWeight);
+ }
+
+ int i;
+ // Some std::vectors to hold temporal values (do not confuse with gpstk::Vector)
+ vector<double> vWeight;
+ vector<SatID> vAvailableSV;
+ vector<SatID> vRejectedSV;
+ bool validFlag = true;
+
+ for (i=0; i<N; i++)
+ {
+ try
+ {
+ preciseEph.getSatXvt(Satellites(i), time);
+ }
+ catch(...)
+ {
+ // If the satellite is not available, we skip it
+ vRejectedSV.push_back(Satellites(i));
+ validFlag = false; // Validity flag is set to false
+ continue;
+ }
+ // An URA of 0.1 m is assumed for all satellites, so sigma=0.1*0.1= 0.01 m^2
+ vWeight.push_back( 100.0 );
+ vAvailableSV.push_back(Satellites(i));
+ }
+
+ valid = validFlag;
+ weightsVector = vWeight;
+ availableSV = vAvailableSV;
+ rejectedSV = vRejectedSV;
+
+ return (int)(availableSV.size());
+
+ }
+
+
+
+
+}
+
diff --git a/dev/src/SimpleIURAWeight.hpp b/dev/src/SimpleIURAWeight.hpp
new file mode 100644
index 0000000..2280e88
--- /dev/null
+++ b/dev/src/SimpleIURAWeight.hpp
@@ -0,0 +1,116 @@
+
+/**
+ * @file SimpleIURAWeight.hpp
+ * Class to assign weights to satellites based on their URA Index (IURA).
+ */
+
+#ifndef SIMPLEIURAWEIGHT_BASE_GPSTK
+#define SIMPLEIURAWEIGHT_BASE_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "WeightBase.hpp"
+#include "BCEphemerisStore.hpp"
+#include "TabularEphemerisStore.hpp"
+#include "EngEphemeris.hpp"
+#include "RinexObsHeader.hpp"
+#include "icd_200_constants.hpp"
+#include <vector>
+
+
+namespace gpstk
+{
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * Class to assign weights to satellites based on their URA Index (IURA).
+ */
+ class SimpleIURAWeight : public WeightBase
+ {
+ public:
+
+ /// Empty constructor
+ SimpleIURAWeight(void) { valid = false; };
+
+
+ /** Compute and return a vector with the weights for the given satellites
+ * @param time Epoch weights will be computed for
+ * @param Satellites Vector of satellites
+ * @param bcEph Satellite broadcast ephemeris
+ *
+ * @return
+ * Number of satellites with valid weights
+ *
+ * \note
+ * Method isValid() will return false if some satellite does not have a
+ * valid weight. Also, its PRN will be set to a negative value.
+ *
+ */
+ virtual int getWeights(DayTime& time, Vector<SatID>& Satellites, BCEphemerisStore& bcEph) throw(InvalidWeights);
+
+
+ /** Compute and return a vector with the weights for the given satellites
+ * @param time Epoch weights will be computed for
+ * @param Satellites Vector of satellites
+ * @param preciseEph Satellite precise ephemeris
+ *
+ * @return
+ * Number of satellites with valid weights
+ *
+ * \note
+ * Method isValid() will return false if some satellite does not have a
+ * valid weight. Also, its PRN will be set to a negative value.
+ *
+ * \note
+ * This method assigns an URA of 0.1 m to all satellites.
+ *
+ */
+ virtual int getWeights(DayTime& time, Vector<SatID>& Satellites, TabularEphemerisStore& preciseEph) throw(InvalidWeights);
+
+
+ /// Vector of weights for these satellites
+ Vector<double> weightsVector;
+
+ /// Vector with the PRN of satellites with weights available for computing.
+ Vector<SatID> availableSV;
+
+ /// Vector with the PRN of satellites rejected or with no proper weights.
+ Vector<SatID> rejectedSV;
+
+ /// Return validity of weights
+ virtual bool isValid(void)
+ { return valid; }
+
+
+ }; // end class SimpleIURAWeight
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/SimpleKalmanFilter.cpp b/dev/src/SimpleKalmanFilter.cpp
new file mode 100644
index 0000000..b5e700a
--- /dev/null
+++ b/dev/src/SimpleKalmanFilter.cpp
@@ -0,0 +1,325 @@
+
+/**
+ * @file SimpleKalmanFilter.cpp
+ * Class to compute the solution using a Kalman filter.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "SimpleKalmanFilter.hpp"
+#include "MatrixFunctors.hpp"
+
+
+namespace gpstk
+{
+
+ // Compute the a posteriori estimate of the system state, as well as the
+ // a posteriori estimate error covariance matrix.
+ //
+ // @param phiMatrix State transition matrix.
+ // @param controlMatrix Control matrix.
+ // @param controlInput Control input vector.
+ // @param processNoiseCovariance Process noise covariance matrix.
+ // @param measurements Measurements vector.
+ // @param measurementsMatrix Measurements matrix. Called geometry matrix in GNSS.
+ // @param measurementsNoiseCovariance Measurements noise covariance matrix.
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SimpleKalmanFilter::Compute(const Matrix<double>& phiMatrix, const Matrix<double>& controlMatrix, const Vector<double>& controlInput, const Matrix<double>& processNoiseCovariance, const Vector<double>& measurements, const Matrix<double>& measurementsMatrix, const Matrix<double>& measurementsNoiseCovariance) throw(InvalidSolver)
+ {
+
+ try {
+ (*this).Predict(phiMatrix, xhat, controlMatrix, controlInput, processNoiseCovariance);
+
+ (*this).Correct(measurements, measurementsMatrix, measurementsNoiseCovariance);
+ }
+ catch(InvalidSolver e) {
+ GPSTK_THROW(e);
+ return -1;
+ }
+
+ return 0;
+
+ } // end SimpleKalmanFilter::Compute()
+
+
+ // Compute the a posteriori estimate of the system state, as well as the
+ // a posteriori estimate error covariance matrix. This version assumes that
+ // no control inputs act on the system.
+ //
+ // @param phiMatrix State transition matrix.
+ // @param processNoiseCovariance Process noise covariance matrix.
+ // @param measurements Measurements vector.
+ // @param measurementsMatrix Measurements matrix. Called geometry matrix in GNSS.
+ // @param measurementsNoiseCovariance Measurements noise covariance matrix.
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SimpleKalmanFilter::Compute(const Matrix<double>& phiMatrix, const Matrix<double>& processNoiseCovariance, const Vector<double>& measurements, const Matrix<double>& measurementsMatrix, const Matrix<double>& measurementsNoiseCovariance) throw(InvalidSolver)
+ {
+
+ try {
+ (*this).Predict(phiMatrix, xhat, processNoiseCovariance);
+
+ (*this).Correct(measurements, measurementsMatrix, measurementsNoiseCovariance);
+ }
+ catch(InvalidSolver e) {
+ GPSTK_THROW(e);
+ return -1;
+ }
+
+ return 0;
+
+ } // end SimpleKalmanFilter::Compute()
+
+
+ // Compute the a posteriori estimate of the system state, as well as the
+ // a posteriori estimate error variance. Version for one-dimensional systems.
+ //
+ // @param phiValue State transition gain.
+ // @param controlGain Control gain.
+ // @param controlInput Control input value.
+ // @param processNoiseVariance Process noise variance.
+ // @param measurement Measurement value.
+ // @param measurementsGain Measurements gain.
+ // @param measurementsNoiseVariance Measurements noise variance.
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SimpleKalmanFilter::Compute(const double& phiValue, const double& controlGain, const double& controlInput, const double& processNoiseVariance, const double& measurement, const double& measurementsGain, const double& measurementsNoiseVariance) throw(InvalidSolver)
+ {
+
+ try {
+ (*this).Predict(phiValue, xhat(0), controlGain, controlInput, processNoiseVariance);
+
+ (*this).Correct(measurement, measurementsGain, measurementsNoiseVariance);
+ }
+ catch(InvalidSolver e) {
+ GPSTK_THROW(e);
+ return -1;
+ }
+
+ return 0;
+
+ } // end SimpleKalmanFilter::Compute()
+
+
+ // Compute the a posteriori estimate of the system state, as well as the
+ // a posteriori estimate error variance. Version for one-dimensional systems
+ // without control input on the system.
+ //
+ // @param phiValue State transition gain.
+ // @param processNoiseVariance Process noise variance.
+ // @param measurement Measurement value.
+ // @param measurementsGain Measurements gain.
+ // @param measurementsNoiseVariance Measurements noise variance.
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SimpleKalmanFilter::Compute(const double& phiValue, const double& processNoiseVariance, const double& measurement, const double& measurementsGain, const double& measurementsNoiseVariance) throw(InvalidSolver)
+ {
+
+ try {
+ (*this).Predict(phiValue, xhat(0), processNoiseVariance);
+
+ (*this).Correct(measurement, measurementsGain, measurementsNoiseVariance);
+ }
+ catch(InvalidSolver e) {
+ GPSTK_THROW(e);
+ return -1;
+ }
+
+ return 0;
+
+ } // end SimpleKalmanFilter::Compute()
+
+
+ // Predicts (or "time updates") the a priori estimate of the system state,
+ // as well as the a priori estimate error covariance matrix.
+ //
+ // @param phiMatrix State transition matrix.
+ // @param previousState Previous system state vector. It is the last computed xhat.
+ // @param controlMatrix Control matrix.
+ // @param controlInput Control input vector.
+ // @param processNoiseCovariance Process noise covariance matrix.
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SimpleKalmanFilter::Predict(const Matrix<double>& phiMatrix, const Vector<double>& previousState, const Matrix<double>& controlMatrix, const Vector<double>& controlInput, const Matrix<double>& processNoiseCovariance) throw(InvalidSolver)
+ {
+ // Let's check sizes before start
+ int aposterioriStateRow(xhat.size());
+ int controlInputRow(controlInput.size());
+
+ int phiCol(phiMatrix.cols());
+ int phiRow(phiMatrix.rows());
+
+ int controlCol(controlMatrix.cols());
+ int controlRow(controlMatrix.rows());
+
+ int processNoiseRow(processNoiseCovariance.rows());
+
+ if (phiCol!=phiRow) {
+ InvalidSolver e("Predict(): State transition matrix is not square, and it must be.");
+ GPSTK_THROW(e);
+ }
+
+ if (phiCol!=aposterioriStateRow) {
+ InvalidSolver e("Predict(): Sizes of state transition matrix and a posteriori state estimation vector do not match.");
+ GPSTK_THROW(e);
+ }
+
+ if (controlCol!=controlInputRow) {
+ InvalidSolver e("Predict(): Sizes of control matrix and a control input vector do not match.");
+ GPSTK_THROW(e);
+ }
+
+ if (aposterioriStateRow!=controlRow) {
+ InvalidSolver e("Predict(): Sizes of control matrix and a posteriori state estimation vector do not match.");
+ GPSTK_THROW(e);
+ }
+
+ if (phiRow!=processNoiseRow) {
+ InvalidSolver e("Predict(): Sizes of state transition matrix and process noise covariance matrix do not match.");
+ GPSTK_THROW(e);
+ }
+
+ // After checking sizes, lets' do the real prediction work
+ try
+ {
+ // Compute the a priori state vector
+ xhatminus = phiMatrix*xhat + controlMatrix * controlInput;
+
+ Matrix<double> phiT(transpose(phiMatrix));
+
+ // Compute the a priori estimate error covariance matrix
+ Pminus = phiMatrix*P*phiT + processNoiseCovariance;
+ }
+ catch(...) {
+ InvalidSolver e("Predict(): Unable to predict next state.");
+ GPSTK_THROW(e);
+ return -1;
+ }
+
+ return 0;
+
+ } // end SimpleKalmanFilter::Predict()
+
+
+ // Corrects (or "measurement updates") the a posteriori estimate of the
+ // system state vector, as well as the a posteriori estimate error covariance
+ // matrix, using as input the predicted a priori state vector and error
+ // covariance matrix, plus measurements and associated matrices.
+ //
+ // @param measurements Measurements vector.
+ // @param measurementsMatrix Measurements matrix. Called geometry matrix in GNSS.
+ // @param measurementsNoiseCovariance Measurements noise covariance matrix.
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SimpleKalmanFilter::Correct(const Vector<double>& measurements, const Matrix<double>& measurementsMatrix, const Matrix<double>& measurementsNoiseCovariance) throw(InvalidSolver)
+ {
+ // Let's check sizes before start
+ int measRow(measurements.size());
+ int aprioriStateRow(xhatminus.size());
+
+ int mMRow(measurementsMatrix.rows());
+
+ int mNCCol(measurementsNoiseCovariance.cols());
+ int mNCRow(measurementsNoiseCovariance.rows());
+
+ int pMCol(Pminus.cols());
+ int pMRow(Pminus.rows());
+
+ if ( (mNCCol!=mNCRow) || (pMCol!=pMRow) ) {
+ InvalidSolver e("Correct(): Either Pminus or measurement covariance matrices are not square, and therefore not invertible.");
+ GPSTK_THROW(e);
+ }
+
+ if (mMRow!=mNCRow) {
+ InvalidSolver e("Correct(): Sizes of measurements matrix and measurements noise covariance matrix do not match.");
+ GPSTK_THROW(e);
+ }
+
+ if (mNCCol!=measRow) {
+ InvalidSolver e("Correct(): Sizes of measurements matrix and measurements vector do not match.");
+ GPSTK_THROW(e);
+ }
+
+ if (pMCol!=aprioriStateRow) {
+ InvalidSolver e("Correct(): Sizes of a priori error covariance matrix and a priori state estimation vector do not match.");
+ GPSTK_THROW(e);
+ }
+
+ // After checking sizes, let's do the real correction work
+ Matrix<double> invR;
+ Matrix<double> invPMinus;
+ Matrix<double> measMatrixT( transpose(measurementsMatrix) );
+
+ try {
+
+ invR = inverseChol(measurementsNoiseCovariance);
+ invPMinus = inverseChol(Pminus);
+ Matrix<double> invTemp( measMatrixT*invR*measurementsMatrix + invPMinus );
+
+ // Compute the A posteriori error covariance matrix
+ P = inverseChol( invTemp );
+ }
+ catch(...) {
+ InvalidSolver e("Correct(): Unable to compute P matrix.");
+ GPSTK_THROW(e);
+ return -1;
+ }
+
+ try {
+ // Compute the a posteriori state estimation
+ xhat = P * ( (measMatrixT*invR*measurements) + (invPMinus*xhatminus) );
+ }
+ catch(Exception e) {
+ InvalidSolver eis("Correct(): Unable to compute xhat.");
+ GPSTK_THROW(eis);
+ return -1;
+ }
+
+ return 0;
+
+ } // end SimpleKalmanFilter::Correct()
+
+
+
+} // end namespace gpstk
diff --git a/dev/src/SimpleKalmanFilter.hpp b/dev/src/SimpleKalmanFilter.hpp
new file mode 100644
index 0000000..312a3fe
--- /dev/null
+++ b/dev/src/SimpleKalmanFilter.hpp
@@ -0,0 +1,379 @@
+
+/**
+ * @file SimpleKalmanFilter.hpp
+ * Class to compute the solution using a Kalman filter.
+ */
+
+#ifndef SIMPLE_KALMAN_FILTER_HPP
+#define SIMPLE_KALMAN_FILTER_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "Exception.hpp"
+#include "Matrix.hpp"
+#include "Vector.hpp"
+#include "SolverBase.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ /// @ingroup math
+ //@{
+
+ /** This class computes the solution using a Kalman filter.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * // Declarations and initializations here...
+ *
+ * SimpleKalmanFilter kalman(xhat0, pmatrix);
+ *
+ * while(cin >> x >> y) {
+ *
+ * try {
+ *
+ * meas(0) = x;
+ * meas(1) = y;
+ *
+ * kalman.Compute(phimatrix, qmatrix, meas, hmatrix, rmatrix);
+ *
+ * cout << kalman.xhat(0) << " " << kalman.xhat(1) << endl;
+ * }
+ * catch (Exception e)
+ * {
+ * cout << e;
+ * }
+ * }
+ * @endcode
+ *
+ * More information about the Kalman filter may be found in the excellent and
+ * easy introduction by Welch, G. and G. Bishop. "An Introduction to the
+ * Kalman Filter" (http://www.cs.unc.edu/~welch/kalman/kalmanIntro.html).
+ *
+ * However, be aware that the algorithm used here is the modified version
+ * presented in G. J. Bierman. "Factorization Methods for Discrete Sequential
+ * Estimation". Mathematics in Science and Engineering, Vol. 128. Academic
+ * Press, New York, 1977. This version enjoys better numerical stability.
+ *
+ */
+ class SimpleKalmanFilter
+ {
+ public:
+
+ /// Default constructor.
+ SimpleKalmanFilter() : xhat(1,0.0), P(1,1,0.0), xhatminus(1,0.0), Pminus(1,1,0.0) {};
+
+
+ /** Common constructor.
+ *
+ * @param initialState Vector setting the initial state of the system.
+ * @param initialErrorCovariance Matrix setting the initial values of the a posteriori error covariance.
+ */
+ SimpleKalmanFilter(const Vector<double>& initialState, const Matrix<double>& initialErrorCovariance) : xhat(initialState), P(initialErrorCovariance), xhatminus(initialState.size(), 0.0), Pminus(initialErrorCovariance.rows(), initialErrorCovariance.cols(), 0.0) {};
+
+
+ /** Common constructor. This is meant to be used with one-dimensional systems.
+ *
+ * @param initialValue Initial value of system state.
+ * @param initialErrorVariance Initial value of the a posteriori error variance.
+ */
+ SimpleKalmanFilter(const double& initialValue, const double& initialErrorVariance) : xhat(1,initialValue), P(1,1,initialErrorVariance), xhatminus(1,0.0), Pminus(1,1,0.0) {};
+
+
+ /** Reset method.
+ *
+ * This method will reset the filter, setting new values for initial system
+ * state vector and the a posteriori error covariance matrix.
+ *
+ * @param initialState Vector setting the initial state of the system.
+ * @param initialErrorCovariance Matrix setting the initial values of the a posteriori error covariance.
+ */
+ virtual void Reset(const Vector<double>& initialState, const Matrix<double>& initialErrorCovariance)
+ {
+ xhat = initialState;
+ P = initialErrorCovariance;
+ xhatminus.resize(initialState.size(), 0.0);
+ Pminus.resize(initialErrorCovariance.rows(), initialErrorCovariance.cols(), 0.0);
+ }
+
+
+ /** Reset method.
+ *
+ * This method will reset the filter, setting new values for initial system
+ * state and the a posteriori error variance. Used for one-dimensional
+ * systems.
+ *
+ * @param initialValue Initial value of system state.
+ * @param initialErrorVariance Initial value of the a posteriori error variance.
+ */
+ virtual void Reset(const double& initialValue, const double& initialErrorVariance)
+ {
+ xhat.resize(1, initialValue);
+ P.resize(1,1, initialErrorVariance);
+ xhatminus.resize(1, 0.0);
+ Pminus.resize(1, 1, 0.0);
+ }
+
+
+ /** Compute the a posteriori estimate of the system state, as well as the
+ * a posteriori estimate error covariance matrix.
+ *
+ * @param phiMatrix State transition matrix.
+ * @param controlMatrix Control matrix.
+ * @param controlInput Control input vector.
+ * @param processNoiseCovariance Process noise covariance matrix.
+ * @param measurements Measurements vector.
+ * @param measurementsMatrix Measurements matrix. Called geometry matrix in GNSS.
+ * @param measurementsNoiseCovariance Measurements noise covariance matrix.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const Matrix<double>& phiMatrix, const Matrix<double>& controlMatrix, const Vector<double>& controlInput, const Matrix<double>& processNoiseCovariance, const Vector<double>& measurements, const Matrix<double>& measurementsMatrix, const Matrix<double>& measurementsNoiseCovariance) throw(InvalidSolver);
+
+
+ /** Compute the a posteriori estimate of the system state, as well as the
+ * a posteriori estimate error covariance matrix. This version assumes that
+ * no control inputs act on the system.
+ *
+ * @param phiMatrix State transition matrix.
+ * @param processNoiseCovariance Process noise covariance matrix.
+ * @param measurements Measurements vector.
+ * @param measurementsMatrix Measurements matrix. Called geometry matrix in GNSS.
+ * @param measurementsNoiseCovariance Measurements noise covariance matrix.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const Matrix<double>& phiMatrix, const Matrix<double>& processNoiseCovariance, const Vector<double>& measurements, const Matrix<double>& measurementsMatrix, const Matrix<double>& measurementsNoiseCovariance) throw(InvalidSolver);
+
+
+ /** Compute the a posteriori estimate of the system state, as well as the
+ * a posteriori estimate error variance. Version for one-dimensional systems.
+ *
+ * @param phiValue State transition gain.
+ * @param controlGain Control gain.
+ * @param controlInput Control input value.
+ * @param processNoiseVariance Process noise variance.
+ * @param measurement Measurement value.
+ * @param measurementsGain Measurements gain.
+ * @param measurementsNoiseVariance Measurements noise variance.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const double& phiValue, const double& controlGain, const double& controlInput, const double& processNoiseVariance, const double& measurement, const double& measurementsGain, const double& measurementsNoiseVariance) throw(InvalidSolver);
+
+
+ /** Compute the a posteriori estimate of the system state, as well as the
+ * a posteriori estimate error variance. Version for one-dimensional systems
+ * without control input on the system.
+ *
+ * @param phiValue State transition gain.
+ * @param processNoiseVariance Process noise variance.
+ * @param measurement Measurement value.
+ * @param measurementsGain Measurements gain.
+ * @param measurementsNoiseVariance Measurements noise variance.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const double& phiValue, const double& processNoiseVariance, const double& measurement, const double& measurementsGain, const double& measurementsNoiseVariance) throw(InvalidSolver);
+
+
+ /// Destructor.
+ virtual ~SimpleKalmanFilter() {};
+
+ /// A posteriori state estimation. This is usually your target.
+ Vector<double> xhat;
+
+ /// A posteriori error covariance.
+ Matrix<double> P;
+
+ /// A priori state estimation.
+ Vector<double> xhatminus;
+
+ /// A priori error covariance.
+ Matrix<double> Pminus;
+
+
+ private:
+
+
+ /** Predicts (or "time updates") the a priori estimate of the system state,
+ * as well as the a priori estimate error covariance matrix.
+ *
+ * @param phiMatrix State transition matrix.
+ * @param previousState Previous system state vector. It is the last computed xhat.
+ * @param controlMatrix Control matrix.
+ * @param controlInput Control input vector.
+ * @param processNoiseCovariance Process noise covariance matrix.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Predict(const Matrix<double>& phiMatrix, const Vector<double>& previousState, const Matrix<double>& controlMatrix, const Vector<double>& controlInput, const Matrix<double>& processNoiseCovariance) throw(InvalidSolver);
+
+
+ /** Predicts (or "time updates") the a priori estimate of the system state,
+ * as well as the a priori estimate error variance. Version for
+ * one-dimensional systems.
+ *
+ * @param phiValue State transition gain.
+ * @param previousState Previous system state. It is the last computed xhat.
+ * @param controlGain Control gain.
+ * @param controlInput Control input value.
+ * @param processNoiseVariance Process noise variance.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Predict(const double& phiValue, const double& previousState, const double& controlGain, const double& controlInput, const double& processNoiseVariance) throw(InvalidSolver)
+ {
+
+ // Create dummy matrices and vectors and call the full Predict() method
+ Matrix<double> dummyPhiMatrix(1,1,phiValue);
+ Vector<double> dummyPreviousState(1,previousState);
+ Matrix<double> dummyControMatrix(1,1,controlGain);
+ Vector<double> dummyControlInput(1,controlInput);
+ Matrix<double> dummyProcessNoiseCovariance(1,1,processNoiseVariance);
+
+ return ( (*this).Predict(dummyPhiMatrix, dummyPreviousState, dummyControMatrix, dummyControlInput, dummyProcessNoiseCovariance) );
+
+ };
+
+
+ /** Predicts (or "time updates") the a priori estimate of the system state,
+ * as well as the a priori estimate error covariance matrix. This version
+ * assumes that no control inputs act on the system.
+ *
+ * @param phiMatrix State transition matrix.
+ * @param previousState Previous system state vector. It is the last computed xhat.
+ * @param processNoiseCovariance Process noise covariance matrix.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Predict(const Matrix<double>& phiMatrix, const Vector<double>& previousState, const Matrix<double>& processNoiseCovariance) throw(InvalidSolver)
+ {
+
+ // Create dummy matrices and vectors and call the full Predict() method
+ int stateRow(previousState.size());
+
+ Matrix<double> dummyControMatrix(stateRow,1,0.0);
+ Vector<double> dummyControlInput(1,0.0);
+
+ return ( (*this).Predict(phiMatrix, previousState, dummyControMatrix, dummyControlInput, processNoiseCovariance) );
+
+ };
+
+
+ /** Predicts (or "time updates") the a priori estimate of the system state,
+ * as well as the a priori estimate error variance. Version for
+ * one-dimensional systems and no control input acting on the system.
+ *
+ * @param phiValue State transition gain.
+ * @param previousState Previous system state. It is the last computed xhat.
+ * @param processNoiseVariance Process noise variance.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Predict(const double& phiValue, const double& previousState, const double& processNoiseVariance) throw(InvalidSolver)
+ {
+
+ // Create dummy matrices and vectors and call the full Predict() method
+ Matrix<double> dummyPhiMatrix(1,1,phiValue);
+ Vector<double> dummyPreviousState(1,previousState);
+ Matrix<double> dummyControMatrix(1,1,0.0);
+ Vector<double> dummyControlInput(1,0.0);
+ Matrix<double> dummyProcessNoiseCovariance(1,1,processNoiseVariance);
+
+ return ( (*this).Predict(dummyPhiMatrix, dummyPreviousState, dummyControMatrix, dummyControlInput, dummyProcessNoiseCovariance) );
+
+ };
+
+
+ /** Corrects (or "measurement updates") the a posteriori estimate of the
+ * system state vector, as well as the a posteriori estimate error covariance
+ * matrix, using as input the predicted a priori state vector and error
+ * covariance matrix, plus measurements and associated matrices.
+ *
+ * @param measurements Measurements vector.
+ * @param measurementsMatrix Measurements matrix. Called geometry matrix in GNSS.
+ * @param measurementsNoiseCovariance Measurements noise covariance matrix.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Correct(const Vector<double>& measurements, const Matrix<double>& measurementsMatrix, const Matrix<double>& measurementsNoiseCovariance) throw(InvalidSolver);
+
+
+ /** Corrects (or "measurement updates") the a posteriori estimate of the
+ * system state value, as well as the a posteriori estimate error variance,
+ * using as input the predicted a priori state and error variance values,
+ * plus measurement and associated gain and variance. Version for
+ * one-dimensional systems.
+ *
+ * @param measurement Measurement value.
+ * @param measurementsGain Measurements gain.
+ * @param measurementsNoiseVariance Measurements noise variance.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Correct(const double& measurement, const double& measurementsGain, const double& measurementsNoiseVariance) throw(InvalidSolver)
+ {
+
+ // Create dummy matrices and vectors and call the full Correct() method
+ Vector<double> dummyMeasurements(1,measurement);
+ Matrix<double> dummyMeasurementsMatrix(1,1,measurementsGain);
+ Matrix<double> dummyMeasurementsNoise(1,1,measurementsNoiseVariance);
+
+ return ( (*this).Correct(dummyMeasurements, dummyMeasurementsMatrix, dummyMeasurementsNoise) );
+
+ };
+
+
+ }; // class SimpleKalmanFilter
+
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SolverBase.hpp b/dev/src/SolverBase.hpp
new file mode 100644
index 0000000..264dc1d
--- /dev/null
+++ b/dev/src/SolverBase.hpp
@@ -0,0 +1,87 @@
+
+/**
+ * @file SolverBase.hpp
+ * Abstract base class for solver algorithms.
+ */
+
+#ifndef SOLVER_BASE_GPSTK
+#define SOLVER_BASE_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "Exception.hpp"
+#include "Matrix.hpp"
+#include "Vector.hpp"
+
+
+namespace gpstk
+{
+ /// Thrown when some problem appeared when solving a given equation set
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidSolver, gpstk::Exception);
+
+
+ /** @addtogroup GPSsolutions */
+ /// @ingroup math
+ //@{
+
+ /**
+ * Abstract base class for solver algorithms.
+ */
+ class SolverBase
+ {
+ public:
+
+ /// Implicit constructor
+ SolverBase() : valid(false) {};
+
+ /// Return validity of results
+ bool isValid(void)
+ { return valid; }
+
+ /// Solution
+ Vector<double> solution;
+
+ /// Postfit-residuals.
+ Vector<double> postfitResiduals;
+
+ /// Covariance matrix
+ Matrix<double> covMatrix;
+
+ /// Destructor
+ virtual ~SolverBase() {};
+
+
+ protected:
+ bool valid; // true only if results are valid
+
+ }; // end class SolverBase
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/SolverLMS.cpp b/dev/src/SolverLMS.cpp
new file mode 100644
index 0000000..bcc9877
--- /dev/null
+++ b/dev/src/SolverLMS.cpp
@@ -0,0 +1,118 @@
+
+/**
+ * @file SolverLMS.cpp
+ * Class to compute the Least Mean Squares Solution
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+#include "SolverBase.hpp"
+#include "SolverLMS.hpp"
+#include "MatrixFunctors.hpp"
+
+
+namespace gpstk
+{
+
+ // Compute the Least Mean Squares Solution of the given equations set.
+ // @param prefitResiduals Vector of prefit residuals
+ // @param designMatrix Design matrix for equation system
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SolverLMS::Compute(const Vector<double>& prefitResiduals, const Matrix<double>& designMatrix) throw(InvalidSolver)
+ {
+ int gCol = (int) designMatrix.cols();
+
+ int gRow = (int) designMatrix.rows();
+ int pRow = (int) prefitResiduals.size();
+ if (!(gRow==pRow)) {
+ InvalidSolver e("prefitResiduals size does not match dimension of designMatrix");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<double> AT = transpose(designMatrix);
+ covMatrix.resize(gCol, gCol);
+ solution.resize(gCol);
+
+ // Temporary storage for covMatrix. It will be inverted later
+ covMatrix = AT * designMatrix;
+
+ // Let's try to invert AT*A matrix
+ try {
+ covMatrix = inverseChol( covMatrix );
+ }
+ catch(...) {
+ InvalidSolver e("Unable to invert matrix covMatrix");
+ GPSTK_THROW(e);
+ }
+
+ // Now, compute the Vector holding the solution...
+ solution = covMatrix * AT * prefitResiduals;
+
+ // ... and the postfit residuals Vector
+ postfitResiduals = prefitResiduals - designMatrix * solution;
+
+ // If everything is fine so far, then the results should be valid
+ valid = true;
+
+ return 0;
+
+ } // end SolverLMS::Compute()
+
+
+
+ /* Returns a reference to a satTypeValueMap object after solving the previously defined equation system.
+ *
+ * @param gData Data object holding the data.
+ */
+ satTypeValueMap& SolverLMS::processSolver(satTypeValueMap& gData) throw(InvalidSolver)
+ {
+ // First, let's fetch the vector of prefit residuals
+ Vector<double> prefit(gData.getVectorOfTypeID((*this).defaultEqDef.header));
+ // Then, generate the corresponding geometry/design matrix
+ Matrix<double> dMatrix(gData.getMatrixOfTypes((*this).defaultEqDef.body));
+
+ try
+ {
+ // Call the Compute() method with the defined equation model. This equation model MUST HAS BEEN
+ // previously set, usually when creating the SolverLMS object with the appropriate constructor.
+ (*this).Compute(prefit, dMatrix);
+ }
+ catch(InvalidSolver& e) {
+ GPSTK_RETHROW(e);
+ }
+
+ // Now we have to add the new values to the data structure
+ if ( (*this).defaultEqDef.header == TypeID::prefitC ) gData.insertTypeIDVector(TypeID::postfitC, (*this).postfitResiduals);
+ if ( (*this).defaultEqDef.header == TypeID::prefitL ) gData.insertTypeIDVector(TypeID::postfitL, (*this).postfitResiduals);
+
+ return gData;
+
+ } // End SolverLMS::processSolver(const DayTime& time, satTypeValueMap& gData)
+
+
+} // end namespace gpstk
diff --git a/dev/src/SolverLMS.hpp b/dev/src/SolverLMS.hpp
new file mode 100644
index 0000000..87a7658
--- /dev/null
+++ b/dev/src/SolverLMS.hpp
@@ -0,0 +1,217 @@
+
+/**
+ * @file SolverLMS.hpp
+ * Class to compute the Least Mean Squares Solution
+ */
+
+#ifndef SOLVER_LMS_HPP
+#define SOLVER_LMS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+#include "SolverBase.hpp"
+#include "TypeID.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ /// @ingroup math
+ //@{
+
+ /** This class computes the Least Mean Squares Solution of a given equations set.
+ *
+ * This class may be used either in a Vector- and Matrix-oriented way, or
+ * with GNSS data structure objects from "DataStructures" class.
+ *
+ * A typical way to use this class with GNSS data structures follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o"); // Data stream
+ *
+ * // More declarations here: Ionospheric and tropospheric models,
+ * // ephemeris, etc.
+ *
+ * // Declare the modeler object, setting all the parameters in one pass
+ * ModeledPR model(ionoStore, mopsTM, bceStore, TypeID::C1);
+ * model.Prepare(); // Set initial position (Bancroft method)
+ *
+ * // Declare a SolverLMS object
+ * SolverLMS solver;
+ *
+ * gnssRinex gRin;
+ *
+ * while(rin >> gRin) {
+ * gRin >> model >> solver;
+ * }
+ * @endcode
+ *
+ * The "SolverLMS" object will extract all the data it needs from the
+ * GNSS data structure that is "gRin" and will try to solve the system
+ * of equations using the Least-Mean-Squares method. It will also insert
+ * back postfit residual data into "gRin" if it successfully solves the
+ * equation system.
+ *
+ * By default, it will build the geometry matrix from the values of
+ * coefficients dx, dy, dz and cdt, and the independent vector will be
+ * composed of the code prefit residuals (TypeID::prefitC) values.
+ *
+ * You may change the former by redefining the default equation definition
+ * to be used. For instance:
+ *
+ * @code
+ * TypeIDSet unknownsSet;
+ * unknownsSet.insert(TypeID::dLat);
+ * unknownsSet.insert(TypeID::dLon);
+ * unknownsSet.insert(TypeID::dH);
+ * unknownsSet.insert(TypeID::cdt);
+ *
+ * // Create a new equation definition (independent value, unknowns set)
+ * gnssEquationDefinition newEq(TypeID::prefitC, unknownsSet);
+ *
+ * // Reconfigure solver
+ * solver.setDefaultEqDefinition(newEq);
+ * @endcode
+ *
+ * @sa SolverBase.hpp for base class.
+ *
+ */
+ class SolverLMS : public SolverBase
+ {
+ public:
+
+ /// Default constructor. When fed with GNSS data structures, the
+ /// default the equation definition to be used is the common GNSS
+ /// code equation.
+ SolverLMS()
+ {
+ // First, let's define a set with the typical unknowns
+ TypeIDSet tempSet;
+ tempSet.insert(TypeID::dx);
+ tempSet.insert(TypeID::dy);
+ tempSet.insert(TypeID::dz);
+ tempSet.insert(TypeID::cdt);
+
+ // Now, we build the default definition for a common GNSS code equation
+ defaultEqDef.header = TypeID::prefitC;
+ defaultEqDef.body = tempSet;
+ };
+
+
+ /** Explicit constructor. Sets the default equation definition to be used when fed with GNSS data structures.
+ *
+ * @param eqDef gnssEquationDefinition to be used
+ */
+ SolverLMS(const gnssEquationDefinition& eqDef) : defaultEqDef(eqDef) {};
+
+
+ /** Compute the Least Mean Squares Solution of the given equations set.
+ * @param prefitResiduals Vector of prefit residuals
+ * @param designMatrix Design matrix for the equation system
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const Vector<double>& prefitResiduals, const Matrix<double>& designMatrix) throw(InvalidSolver);
+
+
+ /** Returns a reference to a satTypeValueMap object after solving the previously defined equation system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& processSolver(satTypeValueMap& gData) throw(InvalidSolver);
+
+
+ /** Returns a reference to a gnnsSatTypeValue object after solving the previously defined equation system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& processSolver(gnssSatTypeValue& gData) throw(InvalidSolver)
+ {
+ (*this).processSolver(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a reference to a gnnsRinex object after solving the previously defined equation system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& processSolver(gnssRinex& gData) throw(InvalidSolver)
+ {
+ (*this).processSolver(gData.body);
+ return gData;
+ };
+
+
+ /** Method to set the default equation definition to be used when fed with GNSS data structures.
+ * @param eqDef gnssEquationDefinition to be used by default
+ */
+ virtual void setDefaultEqDefinition(const gnssEquationDefinition& eqDef)
+ {
+ defaultEqDef = eqDef;
+ };
+
+
+ /// Method to get the default equation definition being used with GNSS data structures.
+ virtual gnssEquationDefinition getDefaultEqDefinition() const
+ {
+ return defaultEqDef;
+ };
+
+
+ /// Destructor.
+ virtual ~SolverLMS() {};
+
+
+ protected:
+
+ /// Default equation definition to be used when fed with GNSS data structures.
+ gnssEquationDefinition defaultEqDef;
+
+ }; // class SolverLMS
+
+
+ /// Input operator from gnssSatTypeValue to SolverLMS.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, SolverLMS& solver) throw(InvalidSolver)
+ {
+ solver.processSolver(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to SolverLMS.
+ inline gnssRinex& operator>>(gnssRinex& gData, SolverLMS& solver) throw(InvalidSolver)
+ {
+ solver.processSolver(gData);
+ return gData;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SolverWMS.cpp b/dev/src/SolverWMS.cpp
new file mode 100644
index 0000000..532866c
--- /dev/null
+++ b/dev/src/SolverWMS.cpp
@@ -0,0 +1,146 @@
+
+/**
+ * @file SolverWMS.cpp
+ * Class to compute the Weighted Least Mean Squares Solution
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+#include "SolverBase.hpp"
+#include "SolverWMS.hpp"
+#include "MatrixFunctors.hpp"
+
+
+namespace gpstk
+{
+
+ // Compute the Weighted Least Mean Squares Solution of the given equations set.
+ // @param prefitResiduals Vector of prefit residuals
+ // @param designMatrix Design matrix for equation system
+ // @param weightMatrix Matrix of weights
+ //
+ // @return
+ // 0 if OK
+ // -1 if problems arose
+ //
+ int SolverWMS::Compute(const Vector<double>& prefitResiduals, const Matrix<double>& designMatrix, const Matrix<double>& weightMatrix) throw(InvalidSolver)
+ {
+ if (!(weightMatrix.isSquare())) {
+ InvalidSolver e("Weight matrix is not square");
+ GPSTK_THROW(e);
+ }
+
+ int wRow = (int) weightMatrix.rows();
+ int pRow = (int) prefitResiduals.size();
+ if (!(wRow==pRow)) {
+ InvalidSolver e("prefitResiduals size does not match dimension of weightMatrix");
+ GPSTK_THROW(e);
+ }
+
+ int gCol = (int) designMatrix.cols();
+
+ int gRow = (int) designMatrix.rows();
+ if (!(gRow==pRow)) {
+ InvalidSolver e("prefitResiduals size does not match dimension of designMatrix");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<double> AT = transpose(designMatrix);
+ covMatrix.resize(gCol, gCol);
+ covMatrixNoWeight.resize(gCol, gCol);
+ solution.resize(gCol);
+
+ // Temporary storage for covMatrix. It will be inverted later
+ covMatrix = AT * weightMatrix * designMatrix;
+
+ // Let's try to invert AT*W*A matrix
+ try {
+ covMatrix = inverseChol( covMatrix );
+ }
+ catch(...) {
+ InvalidSolver e("Unable to invert matrix covMatrix");
+ GPSTK_THROW(e);
+ }
+
+ // Temporary storage for covMatrixNoWeight. It will be inverted later
+ covMatrixNoWeight = AT * designMatrix;
+
+ // Let's try to invert AT*A matrix
+ try {
+ covMatrixNoWeight = inverseChol( covMatrixNoWeight );
+ }
+ catch(...) {
+ InvalidSolver e("Unable to invert matrix covMatrixNoWeight");
+ GPSTK_THROW(e);
+ }
+
+ // Now, compute the Vector holding the solution...
+ solution = covMatrix * AT * weightMatrix * prefitResiduals;
+
+ // ... and the postfit residuals Vector
+ postfitResiduals = prefitResiduals - designMatrix * solution;
+
+ // If everything is fine so far, then the results should be valid
+ valid = true;
+
+ return 0;
+
+ } // end SolverWMS::Compute()
+
+
+
+ /* Returns a reference to a satTypeValueMap object after solving the previously defined equation system.
+ *
+ * @param gData Data object holding the data.
+ */
+ satTypeValueMap& SolverWMS::processSolver(satTypeValueMap& gData) throw(InvalidSolver)
+ {
+ // First, let's fetch the vector of prefit residuals
+ Vector<double> prefit(gData.getVectorOfTypeID((*this).defaultEqDef.header));
+ // Second, generate the corresponding geometry/design matrix
+ Matrix<double> dMatrix(gData.getMatrixOfTypes((*this).defaultEqDef.body));
+ // Third, generate the appropriate weights vector
+ Vector<double> weightsVector(gData.getVectorOfTypeID(TypeID::weight));
+
+ try
+ {
+ // Call the Compute() method with the defined equation model. This equation model MUST HAS BEEN
+ // previously set, usually when creating the SolverWMS object with the appropriate constructor.
+ (*this).Compute(prefit, dMatrix, weightsVector);
+ }
+ catch(InvalidSolver& e) {
+ GPSTK_RETHROW(e);
+ }
+
+ // Now we have to add the new values to the data structure
+ if ( (*this).defaultEqDef.header == TypeID::prefitC ) gData.insertTypeIDVector(TypeID::postfitC, (*this).postfitResiduals);
+ if ( (*this).defaultEqDef.header == TypeID::prefitL ) gData.insertTypeIDVector(TypeID::postfitL, (*this).postfitResiduals);
+
+ return gData;
+
+ } // End SolverWMS::processSolver(const DayTime& time, satTypeValueMap& gData)
+
+
+
+} // end namespace gpstk
diff --git a/dev/src/SolverWMS.hpp b/dev/src/SolverWMS.hpp
new file mode 100644
index 0000000..e4bacb1
--- /dev/null
+++ b/dev/src/SolverWMS.hpp
@@ -0,0 +1,207 @@
+
+/**
+ * @file SolverWMS.hpp
+ * Class to compute the Weighted Least Mean Squares Solution
+ */
+
+#ifndef SOLVER_WMS_HPP
+#define SOLVER_WMS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2006, 2007
+//
+//============================================================================
+
+
+#include "SolverLMS.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ /// @ingroup math
+ //@{
+
+ /**This class computes the Weighted Least Mean Squares Solution of a given equations set.
+ *
+ * This class may be used either in a Vector- and Matrix-oriented way, or
+ * with GNSS data structure objects from "DataStructures" class.
+ *
+ * A typical way to use this class with GNSS data structures follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o"); // Data stream
+ *
+ * // More declarations here: Ionospheric and tropospheric models,
+ * // ephemeris, etc.
+ *
+ * // Declare the modeler object, setting all the parameters in one pass
+ * ModeledPR model(ionoStore, mopsTM, bceStore, TypeID::C1);
+ * model.Prepare(); // Set initial position (Bancroft method)
+ *
+ * // Declare a SolverWMS object
+ * SolverWMS solverWMS;
+ *
+ * // This object will compute the appropriate MOPS weights
+ * ComputeMOPSWeights mopsW(nominalPos, bceStore);
+ *
+ * gnssRinex gRin;
+ *
+ * while(rin >> gRin) {
+ * gRin >> model >> mopsW >> solverWMS;
+ * }
+ * @endcode
+ *
+ * The "SolverWMS" object will extract all the data it needs from the
+ * GNSS data structure that is "gRin" and will try to solve the system
+ * of equations using the Weighted-Least-Mean-Squares method. It will
+ * also insert back postfit residual data into "gRin" if it successfully
+ * solves the equation system.
+ *
+ * Please note it needs some weights assigned to each satellite. This
+ * can be achieved with objects from classes such as "ComputeIURAWeights",
+ * "ComputeMOPSWeights", etc., but in any case this is a mandatory step.
+ *
+ * By default, it will build the geometry matrix from the values of
+ * coefficients dx, dy, dz and cdt, and the independent vector will be
+ * composed of the code prefit residuals (TypeID::prefitC) values.
+ *
+ * You may change the former by redefining the default equation definition
+ * to be used. For instance:
+ *
+ * @code
+ * TypeIDSet unknownsSet;
+ * unknownsSet.insert(TypeID::dLat);
+ * unknownsSet.insert(TypeID::dLon);
+ * unknownsSet.insert(TypeID::dH);
+ * unknownsSet.insert(TypeID::cdt);
+ *
+ * // Create a new equation definition (independent value, unknowns set)
+ * gnssEquationDefinition newEq(TypeID::prefitC, unknownsSet);
+ *
+ * // Reconfigure solver
+ * solverWMS.setDefaultEqDefinition(newEq);
+ * @endcode
+ *
+ * @sa SolverBase.hpp and SolverLMS for base classes.
+ *
+ */
+ class SolverWMS : public SolverLMS
+ {
+ public:
+
+ /// Default constructor. When fed with GNSS data structures, the
+ /// default the equation definition to be used is the common GNSS
+ /// code equation.
+ SolverWMS()
+ {
+ // First, let's define a set with the typical unknowns
+ TypeIDSet tempSet;
+ tempSet.insert(TypeID::dx);
+ tempSet.insert(TypeID::dy);
+ tempSet.insert(TypeID::dz);
+ tempSet.insert(TypeID::cdt);
+
+ // Now, we build the default definition for a common GNSS code equation
+ defaultEqDef.header = TypeID::prefitC;
+ defaultEqDef.body = tempSet;
+ };
+
+
+ /** Explicit constructor. Sets the default equation definition to be used when fed with GNSS data structures.
+ *
+ * @param eqDef gnssEquationDefinition to be used
+ */
+ SolverWMS(const gnssEquationDefinition& eqDef)
+ {
+ setDefaultEqDefinition(eqDef);
+ };
+
+
+ /** Compute the Weighted Least Mean Squares Solution of the given equations set.
+ * @param prefitResiduals Vector of prefit residuals
+ * @param designMatrix Design matrix for the equation system
+ * @param weightMatrix Matrix of weights
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const Vector<double>& prefitResiduals, const Matrix<double>& designMatrix, const Matrix<double>& weightMatrix) throw(InvalidSolver);
+
+
+ /** Compute the Weighted Least Mean Squares Solution of the given equations set.
+ * @param prefitResiduals Vector of prefit residuals
+ * @param designMatrix Design matrix for the equation system
+ * @param weightVector Vector of weights assigned to each satellite.
+ *
+ * @return
+ * 0 if OK
+ * -1 if problems arose
+ */
+ virtual int Compute(const Vector<double>& prefitResiduals, const Matrix<double>& designMatrix, const Vector<double>& weightVector) throw(InvalidSolver)
+ {
+ // First, check that everyting has a proper size
+ int wSize = (int) weightVector.size();
+ int pSize = (int) prefitResiduals.size();
+ if (!(wSize==pSize)) {
+ InvalidSolver e("prefitResiduals size does not match dimension of weightVector");
+ GPSTK_THROW(e);
+ }
+
+ Matrix<double> wMatrix(wSize,wSize,0.0); // Declare a weight matrix
+
+ // Fill the weight matrix diagonal with the content of the weight vector
+ for (int i=0; i<wSize; i++) wMatrix(i,i) = weightVector(i);
+
+ // Call the more general SolverWMS::Compute() method
+ return SolverWMS::Compute(prefitResiduals, designMatrix, wMatrix);
+ };
+
+
+ /// Compute the Weighted Least Mean Squares Solution of the given equations set.
+ virtual int Compute(const Vector<double>& prefitResiduals, const Matrix<double>& designMatrix) throw(InvalidSolver)
+ {
+ return SolverLMS::Compute(prefitResiduals, designMatrix);
+ };
+
+
+ /** Returns a reference to a satTypeValueMap object after solving the previously defined equation system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& processSolver(satTypeValueMap& gData) throw(InvalidSolver);
+
+
+ /// Covariance matrix without weights. This must be used to compute DOP
+ Matrix<double> covMatrixNoWeight;
+
+
+ /// Destructor.
+ virtual ~SolverWMS() {};
+
+
+ }; // class SolverWMS
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/SourceID.cpp b/dev/src/SourceID.cpp
new file mode 100644
index 0000000..9fb8822
--- /dev/null
+++ b/dev/src/SourceID.cpp
@@ -0,0 +1,97 @@
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2007
+//
+//============================================================================
+
+#include "SourceID.hpp"
+
+
+/**
+ * @file SourceID.cpp
+ * gpstk::SourceID - Simple index to represent source of the data.
+ */
+
+namespace gpstk
+{
+ std::map< SourceID::SourceType, std::string > SourceID::stStrings;
+
+ SourceID::Initializer SourceIDsingleton;
+
+ SourceID::Initializer::Initializer()
+ {
+ stStrings[Unknown] = "UnknownSource";
+ stStrings[GPS] = "GPS";
+ stStrings[DGPS] = "DGPS";
+ stStrings[RTK] = "RTK";
+ stStrings[INS] = "INS";
+ }
+
+ std::ostream& SourceID::dump(std::ostream& s) const
+ {
+ s << SourceID::stStrings[type] << " "
+ << sourceName;
+
+ return s;
+ } // SourceID::dump()
+
+ bool SourceID::isValid() const
+ {
+ return !(type==Unknown || sourceName=="");
+ }
+
+ SourceID::SourceType SourceID::newSourceType(const std::string& s)
+ {
+ SourceType newId =
+ static_cast<SourceType>(SourceID::stStrings.rbegin()->first + 1);
+ SourceID::stStrings[newId] = s;
+ return newId;
+ }
+
+ bool SourceID::operator==(const SourceID& right) const
+ { return (type==right.type && sourceName==right.sourceName); }
+
+ bool SourceID::operator<(const SourceID& right) const
+ {
+ if (type == right.type)
+ return sourceName < right.sourceName;
+ else
+ return type < right.type;
+ }
+
+ namespace StringUtils
+ {
+ /// convert this object to a string representation
+ std::string asString(const SourceID& p)
+ {
+ std::ostringstream oss;
+ p.dump(oss);
+ return oss.str();
+ }
+ }
+
+ /// stream output for SourceID
+ std::ostream& operator<<(std::ostream& s, const SourceID& p)
+ {
+ p.dump(s);
+ return s;
+ }
+
+}
diff --git a/dev/src/SourceID.hpp b/dev/src/SourceID.hpp
new file mode 100644
index 0000000..18500f6
--- /dev/null
+++ b/dev/src/SourceID.hpp
@@ -0,0 +1,146 @@
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+#ifndef GPSTK_SOURCEID_HPP
+#define GPSTK_SOURCEID_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <string>
+#include <map>
+
+/**
+ * @file SourceID.hpp
+ * gpstk::SourceID - Simple index to represent source of the data.
+ */
+
+namespace gpstk
+{
+ /** @addtogroup DataStructures */
+
+ class SourceID
+ {
+ public:
+ /// The type of source.
+ enum SourceType
+ {
+ Unknown,
+ GPS, ///< GPS data
+ Galileo, ///< Galileo data
+ Glonass, ///< Glonass data
+ Geosync, ///< Geostationary data
+ LEO, ///< LEO data
+ Transit, ///< Transit data
+ DGPS, ///< Differential GPS data
+ RTK, ///< Real Time Kinematic data
+ INS, ///< Inertial System data
+ Mixed, ///< Mixed data
+ Last, ///< used to extend this...
+ Placeholder = Last+1000
+ };
+
+ /// empty constructor, creates an unknown source data object
+ SourceID()
+ : type(Unknown), sourceName("") {};
+
+ /// Explicit constructor
+ SourceID(SourceType st, std::string name)
+ : type(st), sourceName(name) {};
+
+ /// Copy constructor
+ SourceID(const SourceID& s)
+ : type(s.type), sourceName(s.sourceName) {};
+
+ /// Equality requires all fields to be the same
+ virtual bool operator==(const SourceID& right) const;
+
+ /// Ordering is arbitrary but required to be able to use a SourceID
+ /// as an index to a std::map. If an application needs
+ /// some other ordering, inherit and override this function.
+ virtual bool operator<(const SourceID& right) const;
+
+ bool operator!=(const SourceID& right) const
+ { return !(operator==(right)); }
+
+ bool operator>(const SourceID& right) const
+ { return (!operator<(right) && !operator==(right)); }
+
+ bool operator<=(const SourceID& right) const
+ { return (operator<(right) || operator==(right)); }
+
+ bool operator>=(const SourceID& right) const
+ { return !(operator<(right)); }
+
+ /// Assignment operator
+ SourceID& operator=(const SourceID& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).type = right.type;
+ (*this).sourceName = right.sourceName;
+ return *this;
+ }
+
+ /// Convenience output method
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Returns true if this is a valid SourceID. Basically just
+ /// checks that none of the fields are undefined
+ virtual bool isValid() const;
+
+ /// Destructor
+ virtual ~SourceID() {}
+
+ static SourceType newSourceType(const std::string& s);
+
+ // Fields
+ /// Type of the data source (GPS receiver, Inertial system, etc)
+ SourceType type;
+ /// Name of the data source
+ std::string sourceName;
+
+ private:
+ static std::map< SourceType, std::string > stStrings;
+
+ public:
+ class Initializer
+ {
+ public:
+ Initializer();
+ };
+
+ static Initializer SourceIDsingleton;
+
+ }; // class SourceID
+
+ namespace StringUtils
+ {
+ /// convert this object to a string representation
+ std::string asString(const SourceID& p);
+ }
+
+ /// stream output for SourceID
+ std::ostream& operator<<(std::ostream& s, const SourceID& p);
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/Stats.hpp b/dev/src/Stats.hpp
new file mode 100644
index 0000000..0d2e9be
--- /dev/null
+++ b/dev/src/Stats.hpp
@@ -0,0 +1,513 @@
+#pragma ident "$Id$"
+
+/**
+ * @file Stats.hpp
+ * One and two-sample statistics
+ */
+
+#ifndef INCLUDE_GPSTK_STATS_HPP
+#define INCLUDE_GPSTK_STATS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "MiscMath.hpp"
+#include "Vector.hpp"
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup math */
+ //@{
+
+/** Conventional statistics for one sample. Constructor does the same as
+ * Reset(); use this when starting a new series of input samples.
+ * Results are available at any time by calling N(), Minimum(), Maximum(),
+ * Average(), Variance() and StdDev().
+ */
+ template <class T>
+
+ class Stats
+ {
+ public:
+ /// constructor
+ explicit Stats() { n=0; weighted=false; }
+
+ /// constructor given a vector of data
+ Stats(Vector<T>& X, Vector<T>& W)
+ {
+ n = 0;
+ weighted = false;
+ Add(X,W);
+ }
+
+ /// reset, i.e. ignore earlier data and restart sampling
+ inline void Reset(void) { n=0; weighted=false; W=T(); }
+
+ /// access the sample size
+ inline unsigned int N(void) const { return n; }
+
+ /// return minimum value
+ inline T Minimum(void) const { if(n) return min; else return T(); }
+
+ /// return maximum value
+ inline T Maximum(void) const { if(n) return max; else return T(); }
+
+ /// return computed average
+ inline T Average(void) const
+ {
+ // normalization constant is (W=sum wts)/n, -> 1 when all wts=1
+ if(n == 0)
+ return T();
+ if(weighted)
+ return (T(n)*ave/W);
+ return ave;
+ }
+
+ /// return computed variance
+ inline T Variance(void) const
+ {
+ if(n == 0)
+ return T();
+ if(weighted) {
+ T wn=W/T(n);
+ return (var/wn/wn/wn/wn);
+ }
+ return var;
+ }
+
+ /// return computed standard deviation
+ inline T StdDev(void) const
+ {
+ if(n == 0)
+ return T();
+ if(weighted) {
+ T wn=W/T(n);
+ return SQRT(ABS(var))/wn/wn;
+ }
+ return SQRT(ABS(var));
+ }
+
+ /// return the normalization constant = sum weights
+ inline T Normalization(void) const
+ { return W; }
+
+ /// return weight flag
+ inline bool Weighted(void) const
+ { return weighted; }
+
+ /// add a single sample to the computation of statistics, with optional weight
+ void Add(const T& x, const T& wt=T())
+ {
+ if(wt != T()) weighted=true;
+
+ T xx(x);
+ n++;
+ if(n == 1) {
+ min = max = ave = xx;
+ if(weighted) ave *= wt;
+ var = T();
+ W = T();
+ }
+ else {
+ if(xx < min) min=xx;
+ if(xx > max) max=xx;
+ }
+
+ if(weighted) { xx *= wt; W += wt; }
+ ave += (xx-ave)/T(n);
+ if(n > 1)
+ var = (var*T(n-2) + T(n)*(xx-ave)*(xx-ave)/T(n-1))/T(n-1);
+ }
+
+ /// add a Vector<T> of samples to the computation of statistics,
+ /// with optional weights
+ inline void Add(Vector<T>& X, Vector<T> w = Vector<T>())
+ {
+ if(w.size() > 0 && w.size() < X.size()) {
+ Exception e("Inconsistent input: weight vector short");
+ GPSTK_THROW(e);
+ }
+
+ size_t i;
+ if(w.size() > 0)
+ for(i=0; i<X.size(); i++) Add(X(i),w(i));
+ else
+ for(i=0; i<X.size(); i++) Add(X(i));
+ }
+
+ /// remove a sample from the computation of statistics (can't do min and max).
+ void Subtract(T x)
+ {
+ T dn=T(n);
+ if(n > 2) var=(var*(dn-T(1))-dn*(x-ave)*(x-ave)/(dn-T(1)))/(dn-T(2));
+ else var=T();
+
+ if(n > 1) ave=(ave*dn-x)/(dn-T(1));
+ else if(n==1) ave=x;
+ else ave=T();
+
+ n--;
+ }
+
+ /// remove a Vector<T> of samples to the computation of statistics
+ inline void Subtract(Vector<T>& X)
+ {
+ for(size_t i=0; i<X.size(); i++) Subtract(X(i));
+ }
+
+ /// define private members directly; useful in continuing with an object
+ /// that was earlier saved (e.g. to a file).
+ void Load(unsigned int in_n, T in_min, T in_max, T in_ave, T in_var,
+ bool wtd=false, T norm=1.0)
+ {
+ n = in_n;
+ min = in_min;
+ max = in_max;
+ var = in_var;
+ ave = in_ave;
+ weighted = wtd;
+ W = norm;
+ }
+
+ /// combine two Stats (assumed taken from the same or equivalent samples);
+ /// both must be either weighted or unweighted.
+ Stats<T>& operator+=(const Stats<T>& S)
+ {
+ if(S.n == 0) return *this;
+ if(n==0) {
+ *this = S;
+ return *this;
+ }
+ if((weighted && !S.weighted) || (!weighted && S.weighted)) {
+ Exception e("Stats::operator+= : operands have inconsistent weighting");
+ GPSTK_THROW(e);
+ }
+
+ if(S.min < min) min=S.min;
+ if(S.max > max) max=S.max;
+
+ if(weighted) {
+ T W1 = W/n;
+ T W2 = S.W/S.n;
+ var = W1*W1*((n-T(1))*var + n*ave*ave)
+ + W2*W2*((S.n-T(1))*S.var + S.n*S.ave*S.ave);
+ var *= (n+S.n)/(W+S.W);
+ var *= (n+S.n)/(W+S.W);
+ W += S.W;
+ }
+ else {
+ var = ((n-T(1))*var + n*ave*ave);
+ var += ((S.n-T(1))*S.var + S.n*S.ave*S.ave);
+ }
+ ave = (n*ave + S.n*S.ave)/(n+S.n);
+ n += S.n;
+ var -= n*ave*ave;
+ var /= (n-T(1));
+
+ return *this;
+
+ } // end Stats operator+=
+
+ /// dump the data stored in the class
+
+ private:
+ /// Number of samples added to the statistics so far
+ unsigned int n;
+ /// Minimum value
+ T min;
+ /// Maximum value
+ T max;
+ /// Average value
+ T var;
+ /// Variance (square of the standard deviation)
+ T ave;
+ /// Normalization constant = sum weights
+ T W;
+ /// Flag weighted input; ALL input must be consistently weighted or not
+ bool weighted;
+ }; // end class Stats
+
+ /// Output operator for Stats class
+ template <class T>
+ std::ostream& operator<<(std::ostream& s, const Stats<T>& ST)
+ {
+ std::ofstream savefmt;
+ savefmt.copyfmt(s);
+ s << " N = " << ST.N() << (ST.Weighted() ? " ":" not") << " weighted\n";
+ s << " Minimum = "; s.copyfmt(savefmt); s << ST.Minimum();
+ s << " Maximum = "; s.copyfmt(savefmt); s << ST.Maximum() << "\n";
+ s << " Average = "; s.copyfmt(savefmt); s << ST.Average();
+ s << " Std Dev = "; s.copyfmt(savefmt); s << ST.StdDev();
+ return s;
+ }
+
+/** Conventional statistics for two samples. Constructor does the same as
+ * Reset(); use this when starting a new series of input samples.
+ * Results are available at any time by calling N(), Minimum(), Maximum(),
+ * Average(), Variance() and StdDev().
+ */
+ template <class T>
+ class TwoSampleStats
+ {
+ public:
+ /// constructor
+ TwoSampleStats() { n=0; }
+
+ /// constructor given two Vector of data
+ TwoSampleStats(Vector<T>& X, Vector<T>& Y)
+ {
+ n = 0;
+ Add(X,Y);
+ }
+
+ /// Add data to the statistics
+ void Add(const T& X, const T& Y)
+ {
+ if(n == 0) {
+ sumx = sumy = sumx2 = sumy2 = sumxy = T();
+ xmin = xmax = X;
+ ymin = ymax = Y;
+ scalex = scaley = T(1);
+ }
+ if(scalex==T(1) && X!=T()) scalex=ABS(X);
+ if(scaley==T(1) && Y!=T()) scaley=ABS(Y);
+ sumx += X/scalex;
+ sumy += Y/scaley;
+ sumx2 += (X/scalex)*(X/scalex);
+ sumy2 += (Y/scaley)*(Y/scaley);
+ sumxy += (X/scalex)*(Y/scaley);
+ if(X < xmin) xmin=X;
+ if(X > xmax) xmax=X;
+ if(Y < ymin) ymin=Y;
+ if(Y > ymax) ymax=Y;
+ n++;
+ }
+
+ /// Add two Vectors of data to the statistics
+ void Add(const Vector<T>& X, const Vector<T>& Y)
+ {
+ size_t m = (X.size() < Y.size() ? X.size() : Y.size());
+ if(m==0) return;
+ for(size_t i=0; i<m; i++) Add(X(i),Y(i));
+ }
+
+ void Subtract(const T& X, const T& Y)
+ {
+ if(n == 1) {
+ sumx = sumy = sumx2 = sumy2 = sumxy = T();
+ xmin = xmax = T();
+ ymin = ymax = T();
+ scalex = scaley = T(1);
+ return;
+ }
+
+ sumx -= X/scalex;
+ sumy -= Y/scaley;
+ sumx2 -= (X/scalex)*(X/scalex);
+ sumy2 -= (Y/scaley)*(Y/scaley);
+ sumxy -= (X/scalex)*(Y/scaley);
+ n--;
+ }
+
+ void Subtract(const Vector<T>& X, const Vector<T>& Y)
+ {
+ size_t m=(X.size()<Y.size()?X.size():Y.size());
+ if(m==0) return;
+ for(size_t i=0; i<m; i++) Subtract(X(i),Y(i));
+ }
+
+ /// reset, i.e. ignore earlier data and restart sampling
+ inline void Reset(void) { n=0; }
+
+ /// return the sample size
+ inline unsigned int N(void) const { return n; }
+ /// return minimum X value
+ inline T MinimumX(void) const { if(n) return xmin; else return T(); }
+ /// return maximum X value
+ inline T MaximumX(void) const { if(n) return xmax; else return T(); }
+ /// return minimum Y value
+ inline T MinimumY(void) const { if(n) return ymin; else return T(); }
+ /// return maximum Y value
+ inline T MaximumY(void) const { if(n) return ymax; else return T(); }
+
+ /// return computed X average
+ inline T AverageX(void) const
+ { if(n>0) return (scalex*sumx/T(n)); else return T(); }
+
+ /// return computed Y average
+ inline T AverageY(void) const
+ { if(n>0) return (scaley*sumy/T(n)); else return T(); }
+
+ /// return computed X variance
+ inline T VarianceX(void) const
+ {
+ if(n>1) return scalex*scalex*(sumx2-sumx*sumx/T(n))/T(n-1);
+ else return T();
+ }
+
+ /// return computed Y variance
+ inline T VarianceY(void) const
+ {
+ if(n>1) return scaley*scaley*(sumy2-sumy*sumy/T(n))/T(n-1);
+ else return T();
+ }
+
+ /// return computed X standard deviation
+ inline T StdDevX(void) const { return SQRT(VarianceX()); }
+
+ /// return computed Y standard deviation
+ inline T StdDevY(void) const { return SQRT(VarianceY()); }
+
+ /// return slope of best-fit line Y=slope*X + intercept
+ inline T Slope(void) const
+ {
+ if(n>0)
+ return ((scaley/scalex)*(sumxy-sumx*sumy/T(n))/(sumx2-sumx*sumx/T(n)));
+ else
+ return T();
+ }
+
+ /// return intercept of best-fit line Y=slope*X + intercept
+ inline T Intercept(void) const
+ {
+ if(n>0)
+ return (AverageY()-Slope()*AverageX());
+ else
+ return T();
+ }
+
+ /// return uncertainty in slope
+ inline T SigmaSlope(void) const
+ {
+ if(n>2)
+ return (SigmaYX()/(StdDevX()*SQRT(T(n-1))));
+ else
+ return T();
+ }
+
+ /// return correlation
+ inline T Correlation(void) const
+ {
+ if(n>1)
+ {
+ return ( scalex * scaley * (sumxy-sumx*sumy/T(n))
+ / (StdDevX()*StdDevY()*T(n-1)) );
+ }
+ else
+ return T();
+ }
+
+ /// return conditional uncertainty = uncertainty y given x
+ inline T SigmaYX(void) const
+ {
+ if(n>2)
+ {
+ return (StdDevY() * SQRT(T(n-1)/T(n-2))
+ * SQRT(T(1)-Correlation()*Correlation()) );
+ }
+ else return T();
+ }
+
+ /// combine two TwoSampleStats (assumed to be taken from the same or
+ /// equivalent samples)
+ TwoSampleStats<T>& operator+=(TwoSampleStats<T>& S)
+ {
+ if(n + S.n == 0) return *this;
+ if(S.xmin < xmin) xmin=S.xmin;
+ if(S.xmax > xmax) xmax=S.xmax;
+ if(S.ymin < ymin) ymin=S.ymin;
+ if(S.ymax > ymax) ymax=S.ymax;
+ sumx += S.scalex*S.sumx/scalex;
+ sumy += S.scaley*S.sumy/scaley;
+ sumx2 += (S.scalex/scalex)*(S.scalex/scalex)*S.sumx2;
+ sumy2 += (S.scaley/scaley)*(S.scaley/scaley)*S.sumy2;
+ sumxy += (S.scalex/scalex)*(S.scaley/scaley)*S.sumxy;
+ n += S.n;
+ return *this;
+ } // end Stats operator+=
+
+ private:
+ /// Number of samples added to the statistics so far
+ unsigned int n;
+ T xmin, xmax, ymin, ymax, scalex, scaley;
+ T sumx, sumy, sumx2, sumy2, sumxy;
+
+ }; // end class TwoSampleStats
+
+ /// Output operator for TwoSampleStats class
+ template <class T>
+ std::ostream& operator<<(std::ostream& s, const TwoSampleStats<T>& TSS)
+ {
+ std::ofstream savefmt;
+ savefmt.copyfmt(s);
+ s << " N = " << TSS.N() << "\n";
+ s << " Minimum: X = "; s.copyfmt(savefmt); s << TSS.MinimumX();
+ s << " Y = "; s.copyfmt(savefmt); s << TSS.MinimumY();
+ s << " Maximum: X = "; s.copyfmt(savefmt); s << TSS.MaximumX();
+ s << " Y = "; s.copyfmt(savefmt); s << TSS.MaximumY() << "\n";
+ s << " Average: X = "; s.copyfmt(savefmt); s << TSS.AverageX();
+ s << " Y = "; s.copyfmt(savefmt); s << TSS.AverageY();
+ s << " Std Dev: X = "; s.copyfmt(savefmt); s << TSS.StdDevX();
+ s << " Y = "; s.copyfmt(savefmt); s << TSS.StdDevY() << "\n";
+ s << " Intercept = "; s.copyfmt(savefmt); s << TSS.Intercept();
+ s << " Slope = "; s.copyfmt(savefmt); s << TSS.Slope();
+ s << " with uncertainty = "; s.copyfmt(savefmt); s << TSS.SigmaSlope() << "\n";
+ s << " Conditional uncertainty (sigma y given x) = ";
+ s.copyfmt(savefmt); s << TSS.SigmaYX();
+ s << " Correlation = "; s.copyfmt(savefmt); s << TSS.Correlation();
+ return s;
+ }
+
+ /** Compute the median of a vector */
+ template <class T>
+ inline T median(const Vector<T>& v)
+ {
+ if(v.size()==0) return T();
+ if(v.size()==1) return v(0);
+ if(v.size()==2) return (v(0)+v(1))/T(2);
+ // insert sort
+ size_t i,j;
+ T x;
+ Vector<T> w(v);
+ for(i=0; i<v.size(); i++) {
+ x = w[i] = v(i);
+ j = i-1;
+ while(j>=0 && x<w[j]) {
+ w[j+1] = w[j];
+ j--;
+ }
+ w[j+1] = x;
+ }
+ if(v.size() % 2)
+ x=w[(v.size()+1)/2-1];
+ else
+ x=(w[v.size()/2-1]+w[v.size()/2])/T(2);
+
+ return x;
+ } // end median(Vector)
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/StringUtils.hpp b/dev/src/StringUtils.hpp
new file mode 100644
index 0000000..e372824
--- /dev/null
+++ b/dev/src/StringUtils.hpp
@@ -0,0 +1,2603 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file StringUtils.hpp
+ * StringUtils namespace and GPSTK string utility functions
+ */
+
+#ifndef GPSTK_STRINGUTILS_HPP
+#define GPSTK_STRINGUTILS_HPP
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+#include <string>
+#include <sstream>
+#include <iomanip>
+#include <iostream>
+#include <list>
+
+/// @todo Get rid of the stdio.h dependency if possible.
+#include <cstdio>
+
+#include <regex.h>
+#include <cctype>
+
+#include <limits>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /**
+ * Stuff to make the C++ string class a little easier to use. All the
+ * functionality here is inlined since they are farily small
+ * functions.
+ *
+ * All functions here will throw gpstk::StringUtils::StringException
+ * on an error. Any std::exception is converted to a
+ * gpstk::StringUtils::StringException so
+ * that's the only exception a user of this class needs to catch.
+ *
+ * For any function that modifies a string, make sure there is a
+ * non-const (std::string&) version and a const (const std::string&)
+ * version. The convention for writing the functions is the non-const
+ * version fully implements the function and the const version calls
+ * the non-const version.
+ *
+ * @sa stringutiltest.cpp for some examples.
+ */
+ namespace StringUtils
+ {
+ /** @defgroup stringutilsgroup Text String Manipulation Tools */
+ //@{
+
+ /// This is thrown instread of a std::exception when a
+ /// gpstk::StringUtils function fails.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(StringException, Exception);
+
+ /// Class for configuring the appearance of hexDumpData() output
+ class HexDumpDataConfig
+ {
+ public:
+ HexDumpDataConfig()
+ : showIndex(true), hexIndex(true), upperHex(false),
+ idxDigits(4), indexWS(1), groupBy(1), groupWS(1),
+ group2By(8), group2WS(2), bytesPerLine(16), showText(true),
+ separator(0), textWS(4)
+ {}
+ HexDumpDataConfig(bool ashowIndex, bool ahexIndex, bool aupperHex,
+ unsigned aidxDigits, unsigned aindexWS,
+ unsigned agroupBy, unsigned agroupWS,
+ unsigned agroup2By, unsigned agroup2WS,
+ unsigned abytesPerLine, bool ashowText,
+ char aseparator, unsigned atextWS)
+ : showIndex(ashowIndex), hexIndex(ahexIndex),
+ upperHex(aupperHex), idxDigits(aidxDigits),
+ indexWS(aindexWS), groupBy(agroupBy), groupWS(agroupWS),
+ group2By(agroup2By), group2WS(agroup2WS),
+ bytesPerLine(abytesPerLine), showText(ashowText),
+ separator(aseparator), textWS(atextWS)
+ {}
+ bool showIndex; ///< display index into string on each line.
+ bool hexIndex; ///< if true, use hex index numbers (else decimal).
+ bool upperHex; ///< if true, use upper-case hex digits.
+ unsigned idxDigits; ///< number of positions to use for index.
+ unsigned indexWS; ///< number of whitespace charaters between index and data.
+ unsigned groupBy; ///< number of bytes of data to show between spaces.
+ unsigned groupWS; ///< number of whitespace charaters between groups of hex data.
+ unsigned group2By; ///< number of groups to show per 2nd layer group (0=none, must be multiple of groupBy).
+ unsigned group2WS; ///< number of whitespace charaters between 2nd layer groups.
+ unsigned bytesPerLine; ///< number of bytes to display on a line of output (must be evenly divisible by both groupBy and group2By).
+ bool showText; ///< if true, show text of message (unprintable characters become '.'.
+ char separator; ///< character to offset text with (0 = none).
+ unsigned textWS; ///< number of whitespace characters between hex and text.
+ };
+
+ /**
+ * Perform a formatted hex-dump of the (potentially) binary
+ * data to the given stream.
+ * @param s stream to dump data to.
+ * @param data data to hex-dump.
+ * @param indent indents the string by that many spaces.
+ * @param cfg formatting configuration.
+ */
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ unsigned indent = 0,
+ HexDumpDataConfig cfg = HexDumpDataConfig());
+
+ /**
+ * Perform a formatted hex-dump of the (potentially) binary
+ * data to the given stream.
+ * @param s stream to dump data to.
+ * @param data data to hex-dump.
+ * @param tag string to put at the beginning of each line of output.
+ * @param cfg formatting configuration.
+ */
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ const std::string& tag,
+ HexDumpDataConfig cfg = HexDumpDataConfig());
+
+ /**
+ * Remove a string from the beginning of another string.
+ * Occurrences of the string \a aString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline
+ std::string& stripLeading(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+ /**
+ * Remove a string from the beginning of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, aString, num); return t; }
+
+ /**
+ * Remove a string from the beginning of another string.
+ * Occurrences of the string \a pString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the beginning of another string const version.
+ * Occurrences of the string \a pString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the beginning of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the beginning of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, std::string(1,aCharacter), num); return t; }
+
+ /**
+ * Strip blanks from the beginning of a string.
+ * Occurrences of the space character appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s,std::string(1,' '),num); }
+
+ /**
+ * Strip blanks from the beginning of a string const version.
+ * Occurrences of the space character appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t,std::string(1,' '),num); return t; }
+
+ /**
+ * Remove a string from the end of another string.
+ * Occurrences of the string \a aString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+ /**
+ * Remove a string from the end of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, aString, num); return t;}
+
+ /**
+ * Remove a string from the end of another string.
+ * Occurrences of the string \a pString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the end of another string const version.
+ * Occurrences of the string \a pString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the end of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the end of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(1,aCharacter), num); return t; }
+
+ /**
+ * Strip blanks from the end of a string.
+ * Occurrences of the space character appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(1,' '), num); }
+
+ /**
+ * Strip blanks from the end of a string const version.
+ * Occurrences of the space character appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(1,' '), num); return t;}
+
+ /**
+ * Remove a string from the beginning and end of another string.
+ * Occurrences of the string \a aString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+
+ /**
+ * Remove a string from the beginning and end of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, aString, num); return t; }
+
+
+ /**
+ * Remove a string from the beginning and end of another string.
+ * Occurrences of the string \a pString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the beginning and end of another string cosnt version.
+ * Occurrences of the string \a pString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the beginning and end of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the beginning and end of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(1,aCharacter), num); return t;}
+
+ /**
+ * Strip blanks from the beginning and end of a string.
+ * Occurrences of the space character appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(1, ' '), num); }
+
+ /**
+ * Strip blanks from the beginning and end of a string const version.
+ * Occurrences of the space character appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(1, ' '), num); return t;}
+
+ /**
+ * Converts all of the receiver's characters that are in the
+ * first specified string to the corresponding character in
+ * the second specified string.
+ * @param aString string to perform translation on.
+ * @param inputChars characters in \a aString to translate from.
+ * @param outputChars characters to translate to.
+ * @param pad pad character in the event inputChars and
+ * outputChars are not equal length. The pad character will
+ * become the translated character.
+ */
+ inline std::string translate(const std::string& aString,
+ const std::string& inputChars,
+ const std::string& outputChars,
+ const char pad = ' ');
+
+ /**
+ * Changes occurrences of a specified pattern to a specified
+ * replacement string. You can specify the number of changes
+ * to perform. The default is to change all occurrences of
+ * the pattern. You can also specify the position in the
+ * receiver at which to begin.
+ * @param aString string to perform translation on.
+ * @param inputString The pattern string as a reference to an
+ * object of type string. The library searches for the
+ * pattern string within the receiver's data.
+ * @param outputString The replacement string as a reference
+ * to an object of type string. It replaces the occurrences
+ * of the pattern string in the receiver's data.
+ * @param startPos The position to start the search at within
+ * the receiver's data. The default is 0.
+ * @param numChanges the number of patterns to search for and
+ * change. The default is to change all occurrences of the
+ * pattern.
+ */
+ inline std::string change(const std::string& aString,
+ const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos = 0,
+ unsigned numChanges = std::numeric_limits<unsigned>::max());
+
+ /**
+ * Changes occurrences of a specified pattern to a specified
+ * replacement string. You can specify the number of changes
+ * to perform. The default is to change all occurrences of
+ * the pattern. You can also specify the position in the
+ * receiver at which to begin.
+ * @param aString string to perform translation on.
+ * @param inputString The pattern string as a reference to an
+ * object of type string. The library searches for the
+ * pattern string within the receiver's data.
+ * @param outputString The replacement string as a reference
+ * to an object of type string. It replaces the occurrences
+ * of the pattern string in the receiver's data.
+ * @param startPos The position to start the search at within
+ * the receiver's data. The default is 0.
+ * @param numChanges the number of patterns to search for and
+ * change. The default is to change all occurrences of the
+ * pattern.
+ */
+ inline std::string& change(std::string& aString,
+ const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos = 0,
+ unsigned numChanges = std::numeric_limits<unsigned>::max());
+
+ /**
+ * Right-justifies the receiver in a string of the specified
+ * length. If the receiver's data is shorter than the
+ * requested length (\a length), it is padded on the left with
+ * the pad character (\a pad). The default pad
+ * character is a blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string& rightJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Right-justifies the receiver in a string of the specified
+ * length (const version). If the receiver's data is shorter than the
+ * requested length (\a length), it is padded on the left with
+ * the pad character (\a pad). The default pad
+ * character is a blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string rightJustify(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return rightJustify(t, length, pad); }
+
+ /**
+ * Left-justifies the receiver in a string of the specified
+ * length. If the new length (\a length) is larger than the
+ * current length, the string is extended by the pad
+ * character (\a pad). The default pad character is a
+ * blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string& leftJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Left-justifies the receiver in a string of the specified
+ * length (const version). If the new length (\a length) is larger
+ * than the current length, the string is extended by the pad
+ * character (\a pad). The default pad character is a
+ * blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string leftJustify(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return leftJustify(t, length, pad); }
+
+ /**
+ * Change the length of a string by adding to the beginning and end.
+ * The string \a s is modified to the specified
+ * length. If the string is shorter than
+ * \a length, then the string is truncated with the
+ * left-most \a length characters remaining.
+ * Otherwise, characters are added to the beginning and end of the
+ * string until the string is the specified length, where the
+ * number of characters added to the beginning and the end
+ * does not differ by more than one so the original string
+ * is centered.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& center(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Change the length of a string by adding to the beginning and end
+ * (const version).
+ * The string \a s is modified to the specified
+ * length. If the string is shorter than
+ * \a length, then the string is truncated with the
+ * left-most \a length characters remaining.
+ * Otherwise, characters are added to the beginning and end of the
+ * string until the string is the specified length, where the
+ * number of characters added to the beginning and the end
+ * does not differ by more than one so the original string
+ * is centered.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string center(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return center(t, length, pad); }
+
+ /**
+ * Convert a string to a double precision floating point number.
+ * @param s string containing a number.
+ * @return double representation of string.
+ */
+ inline double asDouble(const std::string& s)
+ { return strtod(s.c_str(), 0); }
+
+ /**
+ * Convert a string to an integer.
+ * @param s string containing a number.
+ * @return long integer representation of string.
+ */
+ inline long asInt(const std::string& s)
+ { return strtol(s.c_str(), 0, 10); }
+
+ /**
+ * Convert a string to an unsigned integer.
+ * @param s string containing a number.
+ * @return unsigned long integer representation of string.
+ */
+ inline unsigned long asUnsigned(const std::string& s)
+ { return strtoul(s.c_str(), 0, 10); }
+
+ /**
+ * Convert a string to a single precision floating point number.
+ * @param s string containing a number.
+ * @return single representation of string.
+ */
+ inline float asFloat(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a string to a big precision floating point number.
+ * @param s string containing a number.
+ * @return long double representation of string.
+ */
+ inline long double asLongDouble(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a value in a string to a type specified by the template
+ * class. The template class type must have stream operators
+ * defined.
+ * @param x object to turn into the templatized type.
+ * @return the template object of \a x.
+ */
+ template <class X>
+ inline X asData(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a long double to a string in fixed notation.
+ * @param x long double.
+ * @param precision the number of decimal places you want displayed.
+ * @return string representation of \a x.
+ */
+ inline std::string asString(const long double x,
+ const std::string::size_type precision = 21);
+
+ /**
+ * Convert a double to a string in fixed notation.
+ * @param x double.
+ * @param precision the number of decimal places you want displayed.
+ * @return string representation of \a x.
+ */
+ inline std::string asString(const double x,
+ const std::string::size_type precision = 17);
+
+ /**
+ * Convert any old object to a string.
+ * The class must have stream operators defined.
+ * @param x object to turn into a string.
+ * @return string representation of \a x.
+ */
+ template <class X>
+ inline std::string asString(const X x);
+
+ /**
+ * Convert a decimal string to a hexadecimal string.
+ * Modify the string such that the decimal integer is now
+ * represented as hexadecimal. Only the first decimal encountered is
+ * changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return reference to modified \a s.
+ */
+ inline std::string& d2x(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a decimal string to a hexadecimal string.
+ * Given a string containing a decimal integer, convert the
+ * integer from base 10 to base 16 and return the result. No
+ * prefix is added. Only the first decimal encountered is
+ * changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return string containing a hexadecimal number.
+ */
+ inline std::string d2x(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return d2x(t); }
+
+ /**
+ * Convert a hexadecimal string to a decimal string.
+ * Modify the string such that the hexadecimal number is now
+ * represented as decimal. Only the first hex number encountered
+ * is changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return reference to modified \a s.
+ */
+ inline std::string& x2d(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a hexadecimal string to a decimal string.
+ * Given a string containing a hexadecimal number, convert the
+ * integer from base 16 to base 10 and return the result.
+ * Only the first hex number encountered
+ * is changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return string containing a hexadecimal number.
+ */
+ inline std::string x2d(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return x2d(t); }
+
+ /**
+ * Convert a character string to a hexadecimal string.
+ * Modify the string such that the character string is now
+ * represented as series of hexadecimal digits.
+ * @param s string to convert.
+ * @return reference to modified \a s.
+ */
+ inline std::string& c2x(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a character string to a hexadecimal string.
+ * @param s string containing an integer.
+ * @return string containing a sequence of hexadecimal numbers.
+ */
+ inline std::string c2x(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return c2x(t); }
+
+ /**
+ * Convert a hexadecimal string to an int.
+ * Only the first hex number encountered is converted.
+ * @param s string containing a hex integer.
+ * @return a long holding the value of \a s.
+ */
+ inline unsigned int x2int(const std::string& s)
+ throw(StringException);
+
+
+ /**
+ * Convert an int to a string.
+ * @param i the integer to convert
+ * @return a string with the hex equivalent of i
+ */
+ inline std::string int2x(const unsigned int& i)
+ throw(StringException);
+
+ /**
+ * Replace all instances of \a oldString with \a newString in \a s.
+ * @param s the string whose contents will be modified.
+ * @param oldString the string to search for in \a s.
+ * @param newString the string to replace \a oldString in \a s.
+ * @return a reference to the modified string.
+ */
+ inline std::string& replaceAll(std::string& s,
+ const std::string& oldString,
+ const std::string& newString )
+ throw(StringException);
+
+ /**
+ * isDigitString is exactly like the C function isDigit
+ * except it checks all the characters of string \a s to see if
+ * they are all digits.
+ * @param s the string to check the digits in.
+ * @return true if \a s is all digits, false otherwise.
+ */
+ inline bool isDigitString(const std::string& s);
+
+ /**
+ * isDecimalString is like isDigitString() except it allows a
+ * single period ('.') character in the string.
+ * @param s the string to check.
+ * @return true if \a s is a valid fixed-point number.
+ */
+ inline bool isDecimalString(const std::string& s);
+
+ /**
+ * isAlphaString is exactly like the C function isAlpha
+ * except it checks all the characters of string \a s to see if
+ * they are all alphabet characters.
+ * @param s the string to check the characters in.
+ * @return true if \a s is all digits, false otherwise.
+ */
+ inline bool isAlphaString(const std::string& s);
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param aPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return string representing the first match of \a aPattern in
+ * \a s. Returns a null string if no match is found.
+ */
+ inline std::string matches(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException);
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param aPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return t if a match is found, f if not.
+ */
+ inline bool isLike(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException)
+ { return matches(s, aPattern, zeroOrMore, oneOrMore, anyChar) !=
+ std::string(); }
+
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param pPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return t if a match is found, f if not.
+ */
+ inline bool isLike(const std::string& s,
+ const char* pPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException)
+ { return matches(s, std::string(pPattern), zeroOrMore, oneOrMore, anyChar) !=
+ std::string(); }
+
+
+ /**
+ * Work-horse method for printf. Substitutes patterns
+ * matching \a pat with \a rep. Use only one pattern/token
+ * at a time! This used to be DayTime::iprint().
+ * @param fmt format to use for this time.
+ * @param pat regular expression pattern to match.
+ * @param rep sprintf token replacement. First character is
+ * token character used in fmt, remainder is sprintf token to
+ * use. For example, with fmt="%15S", pat="%[ 0-]?[[:digit:]]*S",
+ * and rep="Sd", the fmt will be translated to "%15d" before
+ * using it in a sprintf call like printf("%15d"), \a to.
+ * @param to the value to stuff into the string.
+ * @return \a fmt with \a pat replaced by \a to. If there is no
+ * match, \a fmt is returned unchanged.
+ */
+ template <class T>
+ std::string formattedPrint(const std::string& fmt,
+ const std::string& pat,
+ const std::string& rep,
+ T to)
+ throw(StringException);
+
+ /**
+ * Get a substring of a string.
+ * Try to avoid using this, use the stl string's substr
+ * method instead (and ::leftJustify if needed).
+ */
+ inline std::string subString(const std::string& s,
+ const std::string::size_type startPos = 0,
+ const std::string::size_type length = std::string::npos,
+ const char pad = ' ' )
+ throw(StringException);
+
+ /**
+ * Change all upper-case letters in a string to lower-case.
+ * \a s is modified as a result.
+ * @param s string to change to lower case.
+ * @return a copy of the original string, all in lower-case.
+ */
+ inline std::string& lowerCase(std::string& s);
+
+ /**
+ * Change all upper-case letters in a string to lower-case.
+ * Does not modify the original string.
+ * @param s a string containing upper-case characters.
+ * @return a copy of the original string, all in lower-case.
+ */
+ inline std::string lowerCase(const std::string& s)
+ { std::string t(s); return lowerCase(t); }
+
+ /**
+ * Change all lower-case letters in a string to upper-case.
+ * \a s is modified as a result.
+ * @param s string to change to upper case.
+ * @return a copy of the original string, all in upper-case.
+ */
+ inline std::string& upperCase(std::string& s);
+
+ /**
+ * Change all lower-case letters in a string to upper-case.
+ * Does not modify the original string.
+ * @param s a string containing lower-case characters.
+ * @return a copy of the original string, all in upper-case.
+ */
+ inline std::string upperCase(const std::string& s)
+ { std::string t(s); return upperCase(t); }
+
+ /**
+ * Make a string from a void pointer.
+ * This function should not be used. Instead, use the string
+ * constructor as follows:
+ * \code string((char*)p, size); \endcode
+ * @param p pointer to memory.
+ * @param size length of the data to turn into a string.
+ * @return string object containing the contents of \a p.
+ */
+ inline std::string memToString(const void* p,
+ const std::string::size_type size);
+
+ /**
+ * Returns the first word in string \a s without modifying the string.
+ * @param s the string to count the words from.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s;
+ */
+ inline std::string firstWord(const std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Counts the number of words in \a s and returns it.
+ * @param s the string to count the words from.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the number of words in \a s.
+ */
+ inline int numWords(const std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Returns \a numWords words starting with \a firstWord from
+ * \a s (if any).
+ * @param s a string with the word you want removed.
+ * @param firstWord the number of the first word you want from \a s.
+ * The first word is word 0.
+ * @param numWords number of words to get from \a s.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s or an empty string if there is
+ * no \a wordNum'th word.
+ */
+ inline std::string words(const std::string& s,
+ const std::string::size_type firstWord = 0,
+ const std::string::size_type numWords = std::string::npos,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Returns word number \a wordNum from \a s (if any).
+ * @param s a string with the word you want removed.
+ * @param wordNum the number of the word you want from \a s.
+ * The first word is word 0.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s or an empty string if there is
+ * no \a wordNum'th word.
+ */
+ inline std::string word(const std::string& s,
+ const std::string::size_type wordNum = 0,
+ const char delimiter = ' ')
+ throw(StringException)
+ { return words(s, wordNum, 1, delimiter); }
+
+ /**
+ * Removes the first word off string \a s and returns it.
+ * \a s is modified as a result.
+ * @param s a string with the word you want removed.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s
+ */
+ inline std::string stripFirstWord(std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Removes indicated words from the string \a s.
+ * \a s is modified as a result.
+ * @param s a string with the words you want removed.
+ * @param first the first word to be removed (the first word is 0).
+ * @param wordsToReplace the number of words you want removed.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return a reference to string \a s with the words removed.
+ */
+ inline std::string& removeWords(std::string& s,
+ const std::string::size_type first = 0,
+ const std::string::size_type wordsToReplace = std::string::npos,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Convert a double to a scientific notation number.
+ * @param d the double to convert
+ * @param length length (in characters) of output, including exponent
+ * @param expLen length (in characters) of the exponent, with sign
+ * @param showSign if true, reserves 1 character for +/- sign
+ * @param checkSwitch if true, keeps the exponential sanity check for
+ * exponentials above three characters in length. If false, it removes
+ * that check.
+ */
+ inline std::string doub2sci(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool showSign = true,
+ const bool checkSwitch = true);
+
+ /**
+ * Convert scientific notation to FORTRAN notation.
+ * As an example, the string "1.5636E5" becomes " .15636D6".
+ * Note that the first character of the string will be '-' if
+ * the number is negative or ' ' if the first character is positive.
+ * @param aStr string with number to convert
+ * @param length length (in characters) of number, including exponent.
+ * @param expLen length (in characters of exponent, not including sign.
+ * @param startPos start position of number in string
+ * @param checkSwitch will keep the method running as orignially programed
+ * when set to true. If false, the method will always resize exponentials,
+ * produce an exponential with an E instead of a D, and always have a leading
+ * zero. For example -> 0.87654E-0004 or -0.1234E00005.
+ * @throws Exception if the string is not a number in
+ * scientific notation
+ */
+ inline std::string& sci2for(std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos = 0,
+ const std::string::size_type expLen = 3,
+ const bool checkSwitch = true)
+ throw(StringException);
+
+ /**
+ * Convert double precision floating point to a string
+ * containing the number in FORTRAN notation.
+ * As an example, the number 156360 becomes ".15636D6".
+ * @param d number to convert.
+ * @param length length (in characters) of number, including exponent.
+ * @param expLen length (in characters of exponent, including sign.
+ * @param checkSwitch if true, keeps the exponential sanity check for
+ * exponentials above three characters in length. If false, it removes
+ * that check.
+ * @return a string containing \a d in FORTRAN notation.
+ */
+ inline std::string doub2for(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool checkSwitch = true)
+ throw(StringException);
+
+ /**
+ * Convert FORTRAN representation of a double precision
+ * floating point in a string to a number.
+ * As an example, the number ".15636D6" becomes 156360.
+ * @param aStr string containing FORTRAN representation of number.
+ * @param length length (in characters) of number, including exponent.
+ * @param startPos beginning of number in string.
+ * @return value of the number.
+ */
+ inline double for2doub(const std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos = 0);
+
+ /**
+ * Change a string into printable characters. Control
+ * characters (0-26) are changed to ^@, ^A, etc. Other
+ * non-printable characters are changed to hex sequences
+ * enclosed in <>.
+ * @param aStr the string to make printable.
+ */
+ inline std::string printable(const std::string& aStr)
+ throw(StringException);
+
+ /**
+ * Nicely expands the input string into several lines, non-const
+ * version.
+ * @param aStr the string to be modified.
+ * @param lineDelim a string to put between every line.
+ * @param indent an indentataion string used on all but the first line
+ * @param firstIndent is the indentation used on the first line.
+ * @param len the maximum length of string to put on a line.
+ * @param wordDelim the character that separates each word.
+ * @return the string nicely formatted.
+ */
+ inline std::string& prettyPrint(std::string& aStr,
+ const std::string& lineDelim = "\n",
+ const std::string& indent = "",
+ const std::string& firstIndent = " ",
+ const std::string::size_type len = 80,
+ const char wordDelim = ' ')
+ throw(StringException);
+
+ /**
+ * Const version of prettyPrint, which nicely expands the
+ * input string into several lines.
+ * @param aStr the string to be modified.
+ * @param lineDelim a string to put between every line.
+ * @param indent an indentataion string used on all but the first line
+ * @param firstIndent is the indentation used on the first line.
+ * @param len the maximum length of string to put on a line.
+ * @param wordDelim the character that separates each word.
+ * @return the string nicely formatted.
+ */
+ inline std::string prettyPrint(const std::string& aStr,
+ const std::string& lineDelim = "\n",
+ const std::string& indent = "",
+ const std::string& firstIndent = " ",
+ const std::string::size_type len = 80,
+ const char wordDelim = ' ')
+ throw(StringException)
+ {
+ std::string temp(aStr);
+ prettyPrint(temp, lineDelim, indent, firstIndent, len, wordDelim);
+ return temp;
+ }
+
+ } // namespace StringUtils
+
+} // namespace gpstk
+
+// ################################################
+// Implementations of inline functions follow
+// ################################################
+
+namespace gpstk
+{
+
+ namespace StringUtils
+ {
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ unsigned indent, HexDumpDataConfig cfg)
+ {
+ std::string instr(indent, ' ');
+ hexDumpData(s, data, instr, cfg);
+ }
+
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ const std::string& tag, HexDumpDataConfig cfg)
+ {
+ std::string ascii="";
+ unsigned indent = tag.length();
+ int col = 0;
+ int datasize=data.size();
+ std::string groupws(cfg.groupWS, ' ');
+ std::string group2ws(cfg.group2WS, ' ');
+ std::string indexws(cfg.indexWS, ' ');
+ std::string textws(cfg.textWS, ' ');
+ unsigned linesize;
+
+ if (cfg.groupBy && ((cfg.bytesPerLine % cfg.groupBy) != 0))
+ {
+ s << "hexDumpData: cfg.bytesPerLine % cfg.groupBy != 0"
+ << std::endl;
+ return;
+ }
+ if (cfg.group2By && ((cfg.bytesPerLine % cfg.group2By) != 0))
+ {
+ s << "hexDumpData: cfg.bytesPerLine % cfg.group2By != 0"
+ << std::endl;
+ return;
+ }
+ if (cfg.groupBy && ((cfg.group2By % cfg.groupBy) != 0))
+ {
+ s << "hexDumpData: cfg.group2By % cfg.groupBy != 0"
+ << std::endl;
+ return;
+ }
+
+ // line format:
+ // <tag><index>:<indexws><group1byte1>...<group1byte[groupBy]><groupws>...<group[group2By]byte1>...<group[group2By]byte[groupBy]><group2ws>....<byte[bytesPerLine]><textws><separator><text><separator>\n
+ linesize = indent;
+ if (cfg.showIndex)
+ linesize += cfg.idxDigits + 1 + cfg.indexWS;
+ linesize += cfg.bytesPerLine * 2;
+ unsigned w2 = 0;
+ unsigned w1 = 0;
+ if (cfg.group2By)
+ w2 = (cfg.bytesPerLine / cfg.group2By) - 1;
+ if (cfg.groupBy)
+ w1 = (cfg.bytesPerLine / cfg.groupBy) - w2 - 1;
+ if (cfg.groupBy > 0)
+ linesize += cfg.groupWS * w1;
+ if (cfg.group2By > 0)
+ linesize += cfg.group2WS * w2;
+ /*
+ linesize doesn't include text stuff
+ if (cfg.showText)
+ linesize += cfg.textWS + cfg.bytesPerLine;
+ if (cfg.separator)
+ linesize += 2;
+ */
+
+ for (int i=0; i<datasize; i++)
+ {
+ if (i%cfg.bytesPerLine==0)
+ {
+ s << tag;
+ col = indent;
+ if (cfg.showIndex)
+ {
+ if (cfg.hexIndex)
+ {
+ s << std::hex;
+ if (cfg.upperHex)
+ s << std::uppercase;
+ else
+ s << std::nouppercase;
+ }
+ else
+ s << std::dec;
+ s << std::setfill('0');
+ s << std::setw(cfg.idxDigits) << i << ":" << indexws;
+ s << std::dec << std::nouppercase;
+ }
+ col += cfg.idxDigits + 1 + cfg.indexWS;
+ }
+ unsigned char c=data[i];
+ if (isprint(c))
+ ascii += c;
+ else
+ ascii += '.';
+ if (cfg.upperHex)
+ s << std::uppercase;
+ else
+ s << std::nouppercase;
+ s << std::hex << std::setw(2) << (int)c << std::dec
+ << std::nouppercase;
+ col += 2;
+ if (((i % cfg.bytesPerLine) == (cfg.bytesPerLine-1)) ||
+ (i == (datasize-1)))
+ {
+ if (cfg.showText)
+ {
+ int extra = linesize-col;
+ std::string space(extra, ' ');
+ s << space << textws;
+ if (cfg.separator)
+ s << cfg.separator;
+ s << ascii;
+ if (cfg.separator)
+ s << cfg.separator;
+ s << std::endl;
+ }
+ // this *should* be updated at the beginning of the loop
+ //col=indent+6;
+ ascii.erase();
+ }
+ else if (cfg.group2By && ((i % cfg.group2By) == (cfg.group2By-1)))
+ {
+ s << group2ws;
+ col += cfg.group2WS;
+ }
+ else if (cfg.groupBy && ((i % cfg.groupBy) == (cfg.groupBy-1)))
+ {
+ s << groupws;
+ col += cfg.groupWS;
+ }
+ }
+ }
+
+ // Keep searching for aString at the start of s
+ // until num == 0 or aString is not found at the start of s
+ inline std::string& stripLeading(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ try
+ {
+ if (aString == "")
+ return s;
+
+ while((num > 0) &&
+ (s.find(aString,0) == 0) &&
+ (s.length() > 0))
+ {
+ s.erase(0,aString.length());
+ --num;
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // keep searching for aString at the end of s
+ // until aString isn't found there or num == 0
+ inline std::string& stripTrailing(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ try
+ {
+ std::string::size_type pos = s.length() - aString.length();
+
+ // empty string, etc.
+ if ((pos > s.length()) || (aString == ""))
+ return s;
+
+ while((num > 0) &&
+ (s.rfind(aString,pos) == pos) &&
+ (s.length() > 0))
+ {
+ s.erase(pos, std::string::npos);
+ --num;
+ pos = s.length() - aString.length();
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& strip(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ stripLeading(s, aString, num);
+ stripTrailing(s, aString, num);
+ return s;
+ }
+
+ inline std::string translate(const std::string& aString,
+ const std::string& inputChars,
+ const std::string& outputChars,
+ const char pad)
+ {
+ std::string rv = aString;
+ std::string::size_type aspos = 0;
+ std::string::size_type inpos = std::string::npos;
+ char toc = pad;
+
+ // By starting at the last position, we avoid infinite
+ // loops in case someone did something dumb, like, for
+ // example, setting inputChars=outputChars.
+ while ((aspos = rv.find_first_of(inputChars, aspos))
+ != std::string::npos)
+ {
+ // figure out which char we found;
+ inpos = inputChars.find(rv[aspos]);
+ if (outputChars.length() < inpos)
+ toc = pad;
+ else
+ toc = outputChars[inpos];
+ rv[aspos] = toc;
+
+ aspos++; // try to guarantee no infinite loops
+ }
+
+ return rv;
+ }
+
+ inline std::string change(const std::string& aString, const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos, unsigned numChanges)
+ {
+ std::string rv(aString);
+ change(rv, inputString, outputString, startPos, numChanges);
+ return rv;
+ }
+
+ inline std::string& change(std::string& aString, const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos, unsigned numChanges)
+ {
+ unsigned count = 0;
+ std::string::size_type opos = startPos;
+
+ while (count < numChanges)
+ {
+ std::string::size_type pos = aString.find(inputString, opos);
+ if (pos != std::string::npos)
+ {
+ count++;
+ aString.replace(pos, inputString.length(), outputString);
+ opos = pos + outputString.length();
+ }
+ else
+ break;
+ }
+
+ return aString;
+ }
+
+ // if the string is bigger than length, truncate it from the left.
+ // otherwise, add pad characters to it's left.
+ inline std::string& rightJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ s = s.substr(s.length()-length, std::string::npos);
+ }
+ else
+ {
+ s.insert((std::string::size_type)0, length-s.length(), pad);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // if the string is bigger than length, truncate it from the right.
+ // otherwise, add pad characters to it's right.
+ inline std::string& leftJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ s = s.substr(0, length);
+ }
+ else
+ {
+ s.append(length-s.length(), pad);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // leftJustify if s is bigger than length.
+ // otherwise, add pad to the left and right of s.
+ inline std::string& center(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ leftJustify(s, length, pad);
+ }
+ else {
+ std::string::size_type leftOff = s.length() + (length - s.length()) / 2;
+ leftJustify(s, leftOff, pad);
+ rightJustify(s, length, pad);
+ }
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+
+ inline float asFloat(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ float f;
+ is >> f;
+ return f;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline long double asLongDouble(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ long double x;
+ is >> x;
+ return x;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ template <class X>
+ inline X asData(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ X x;
+ is >> x;
+ return x;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string asString(const long double x, const std::string::size_type precision)
+ {
+ std::ostringstream ss;
+ ss << std::fixed << std::setprecision(precision) << x ;
+ return ss.str();
+ }
+
+ inline std::string asString(const double x, const std::string::size_type precision)
+ {
+ std::ostringstream ss;
+ ss << std::fixed << std::setprecision(precision) << x;
+ return ss.str();
+ }
+
+ template<class X>
+ inline std::string asString(const X x)
+ {
+ std::ostringstream ss;
+ ss << x;
+ return ss.str();
+ }
+
+ // decimal to hex...
+ inline std::string& d2x(std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ // remove the integer from s, including
+ // leading spaces and 0's
+ long l = asInt(s);
+ stripLeading(s);
+ stripLeading(s, "0");
+ stripLeading(s, asString<long>(l));
+
+ // put the int in a stringstream to convert it
+ std::ostringstream st;
+ st << std::hex << l << std::dec;
+
+ // add the new hex to s
+ s.insert(0, upperCase(st.str()) );
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // character to hex...
+ inline std::string& c2x(std::string& s)
+ throw(StringException)
+ {
+ const char hexDigits[] = "0123456789ABCDEF";
+ try
+ {
+ std::string old(s);
+ const unsigned char *pSource = (unsigned char *)old.c_str();
+ unsigned n = old.length();
+
+ s.resize(n * 2, 0);
+
+ for (int i = 0; i < (int)n * 2;)
+ {
+ unsigned char c = *pSource++;
+ s[i++] = hexDigits[ c / 16 ];
+ s[i++] = hexDigits[ c % 16 ];
+ }
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ /// @todo Need to find a way to combine this with x2d.
+ // hex to a long.
+ inline unsigned int x2int(const std::string& s)
+ throw (StringException)
+ {
+ try
+ {
+ std::string t(s);
+ // remove the "0x" part, leading zeros and spaces from the
+ // string
+ // ex. ' 0x003' -> '3'
+ stripLeading(t);
+ stripLeading(t, "0x", 1);
+ stripLeading(t, "0");
+
+ // if it's empty, it was 0
+ if (t.empty())
+ {
+ return 0;
+ }
+
+ // make the stringstream, get the integer, and
+ // remove it from the string
+ std::istringstream strstr(t);
+ int i;
+ strstr >> std::hex >> i;
+ return i;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ /// @todo detecting 0 isn't quite right...
+ // hex to decimal
+ inline std::string& x2d(std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ // remove the "0x" part, leading zeros and spaces from the
+ // string
+ // ex. ' 0x003' -> '3'
+ stripLeading(s);
+ stripLeading(s, "0x", 1);
+ stripLeading(s, "0");
+
+ // make the stringstream, get the integer, and
+ // remove it from the string
+ std::istringstream strstr(s);
+ int i = 0;
+ strstr >> std::hex >> i;
+ stripLeading(s, asString<int>(asInt(s)), 1);
+
+ // append the decimal to the existing string
+ s.insert(0,asString<int>(i));
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string int2x(const unsigned int& i)
+ throw(StringException)
+ {
+ try
+ {
+ std::ostringstream ss;
+ ss << std::hex << i;
+ return ss.str();
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& replaceAll(std::string& s,
+ const std::string& oldString,
+ const std::string& newString)
+ throw(StringException)
+ {
+ try
+ {
+ int spot = s.find(oldString, 0);
+ while (spot != (int)std::string::npos)
+ {
+ s.replace(spot, oldString.length(), newString);
+ spot += newString.length();
+ spot = s.find(oldString, spot);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline bool isDigitString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index = 0;
+ if((s[0] == '-') || (s[0] == '+'))
+ index++;
+ for( ; index < s.size(); index++)
+ if (!isdigit(s[index]))
+ return false;
+ return true;
+ }
+
+ inline bool isDecimalString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index = 0;
+ bool sawdot = false;
+ if((s[0] == '-') || (s[0] == '+'))
+ index++;
+ for( ; index < s.size(); index++)
+ {
+ if (s[index] == '.')
+ {
+ if (sawdot)
+ return false;
+ else sawdot = true;
+ }
+ else if (!isdigit(s[index]))
+ return false;
+ }
+ return true;
+ }
+
+ inline bool isAlphaString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index;
+ for(index = 0; index < s.size(); index++)
+ if (!isalpha(s[index]))
+ return false;
+ return true;
+ }
+
+ inline std::string matches(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore,
+ const char oneOrMore,
+ const char anyChar)
+ throw(StringException)
+ {
+ const std::string::size_type regErrorBufSize = 512;
+
+ std::string thisPattern(aPattern);
+ std::string thisStr(s);
+
+ // check if something other than the regex standard
+ // characters (*,+,.) is used for those variables
+ if (zeroOrMore != '*')
+ {
+ replaceAll(thisPattern, "*", "\\*");
+ replaceAll(thisPattern, std::string(1, zeroOrMore), "*");
+ }
+ if (oneOrMore != '+')
+ {
+ replaceAll(thisPattern, "+", "\\+");
+ replaceAll(thisPattern, std::string(1, oneOrMore), "+");
+ }
+ if (anyChar != '.')
+ {
+ replaceAll(thisPattern, ".", "\\.");
+ replaceAll(thisPattern, std::string(1, anyChar), ".");
+ }
+ regmatch_t matches;
+ regex_t regExp;
+ char errorMsg[regErrorBufSize];
+ int rc;
+
+ if ((rc = regcomp(®Exp, thisPattern.c_str(), REG_EXTENDED)) != 0)
+ {
+ regerror(rc, ®Exp, errorMsg, regErrorBufSize - 1);
+ regfree(®Exp);
+ StringException strerr("Regexp error: " + std::string(errorMsg));
+ GPSTK_THROW(strerr);
+ }
+ rc = regexec(®Exp, thisStr.c_str(), 1, &matches,
+ REG_NOTBOL | REG_NOTEOL);
+ if ( (rc != 0) && (rc != REG_NOMATCH) )
+ {
+ regerror(rc, ®Exp, errorMsg, regErrorBufSize - 1);
+ regfree(®Exp);
+ StringException strerr("Regexp error: " + std::string(errorMsg));
+ GPSTK_THROW(strerr);
+ }
+
+ regfree(®Exp);
+ if (rc == REG_NOMATCH)
+ return std::string();
+ else
+ return thisStr.substr(matches.rm_so, matches.rm_eo - matches.rm_so);
+ }
+
+ template <class T>
+ inline std::string formattedPrint(const std::string& fmt, const std::string& pat,
+ const std::string& rep, T to)
+ throw(StringException)
+ {
+ regex_t re;
+ regmatch_t r;
+ std::string rv = fmt;
+ int rc;
+ char buffer[513];
+
+ // if the regex doesnt compile, toast =)
+ if ((rc = regcomp(&re, pat.c_str(), REG_EXTENDED)) != 0)
+ {
+ StringException se("Bad regular expression: regcomp() rc = " +
+ asString(rc));
+ GPSTK_THROW(se);
+ }
+
+ int len = rv.length();
+ for (int i = 0; i < len; i++)
+ {
+ if ((rc = regexec(&re, rv.c_str(), 1, &r, 0)) != 0)
+ break;
+ else
+ {
+ std::string mac = rv.substr(r.rm_so, r.rm_eo - r.rm_so);
+ mac = replaceAll(mac, rep.substr(0,1), rep.substr(1));
+ sprintf(buffer, mac.c_str(), to);
+ rv = rv.substr(0, r.rm_so) + std::string(buffer) +
+ rv.substr(r.rm_eo);
+ i = r.rm_eo;
+ }
+ }
+
+ regfree(&re);
+
+ return rv;
+ }
+
+ inline std::string subString(const std::string& s,
+ const std::string::size_type startPos,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(startPos >= s.length())
+ {
+ return std::string(length, pad);
+ }
+ std::string temp = s.substr(startPos, length);
+ return leftJustify(temp, length, pad);
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& lowerCase(std::string& s)
+ {
+ for(std::string::size_type i = 0; i < s.length(); i++)
+ {
+ s[i] = tolower(s[i]);
+ }
+ return s;
+ }
+
+ inline std::string& upperCase(std::string& s)
+ {
+ for(std::string::size_type i = 0; i < s.length(); i++)
+ {
+ s[i] = toupper(s[i]);
+ }
+ return s;
+ }
+
+ inline std::string memToString(const void* p,
+ const std::string::size_type size)
+ {
+ unsigned char* q = (unsigned char*)p;
+ std::string s(size,'\0');
+ for (int i=0; i<(int)size; i++)
+ {
+ s[i] = (unsigned char)(*q++);
+ }
+ return s;
+ }
+
+ inline std::string firstWord(const std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ // return s if there are no delimiters
+ std::string::size_type pos = s.find_first_not_of(delimiter);
+ if (pos == std::string::npos)
+ {
+ return s;
+ }
+ // find the end delimiter (if any) and return the string
+ std::string::size_type endPos = s.find(delimiter, pos);
+ if (endPos == std::string::npos)
+ {
+ return std::string(s, pos, endPos);
+ }
+ else
+ {
+ return std::string(s, pos, endPos - pos);
+ }
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline int numWords(const std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ std::string t(s);
+ stripTrailing(t, delimiter);
+
+ int words = 0;
+ while(t.length())
+ {
+ stripLeading(t, delimiter);
+ stripLeading(t, firstWord(t, delimiter));
+ words++;
+ }
+ return words;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string words(const std::string& s,
+ const std::string::size_type firstWord,
+ const std::string::size_type numWords,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ if ((firstWord == 0) && (numWords == 1))
+ return StringUtils::firstWord(s, delimiter);
+ if (numWords == 0)
+ return "";
+ std::string::size_type wordNum = 0;
+ std::string::size_type pos = 0, startPos = 0;
+
+ std::string toReturn;
+
+ // get position of word wordNum
+ pos = s.find_first_not_of(delimiter, pos);
+ while ((pos != std::string::npos) && (pos <= s.length()))
+ {
+ if (wordNum == firstWord)
+ startPos = pos;
+ // get first delimter after word wordNum
+ pos = s.find(delimiter, pos);
+ if (((int)numWords != -1) && ((int)wordNum == (int)(firstWord + (numWords-1))))
+ break;
+ pos = s.find_first_not_of(delimiter, pos);
+ wordNum++;
+ }
+
+ if (pos == std::string::npos)
+ return s.substr(startPos);
+ return s.substr(startPos, pos-startPos);
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string stripFirstWord(std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ stripLeading(s, delimiter);
+ std::string toReturn = firstWord(s, delimiter);
+ stripLeading(s, toReturn);
+ stripLeading(s, delimiter);
+ return toReturn;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& removeWords(std::string& s,
+ const std::string::size_type first,
+ const std::string::size_type wordsToReplace,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ std::string temp(s);
+ std::string::size_type thisWord;
+
+ // empty out s. add the new parts of s as they are parsed
+ s.erase(0, std::string::npos);
+
+ // copy the part of the string through word 'first'
+ // by appending any delimiters then appending
+ // a word for however many words we're keeping.
+ for(thisWord = 0; thisWord < first; thisWord++)
+ {
+ s.append(temp.find_first_not_of(delimiter),delimiter);
+ stripLeading(temp, delimiter);
+ s.append(firstWord(temp));
+ stripLeading(temp, firstWord(temp));
+ }
+
+ // skip over the number of words to replace, making
+ // sure to stop when there's no more string left
+ // to skip
+ for(thisWord = 0;
+ (thisWord < wordsToReplace) &&
+ (temp.length() != 0);
+ thisWord++)
+ {
+ stripLeading(temp, delimiter);
+ stripLeading(temp, firstWord(temp));
+ }
+
+ // add on any extra words at the end
+ s.append(temp);
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string doub2sci(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool showSign,
+ const bool checkSwitch)
+ {
+ std::string toReturn;
+ short exponentLength = expLen;
+
+ /* Validate the assumptions regarding the input arguments */
+ if (exponentLength < 0) exponentLength = 1;
+ if (exponentLength > 3 && checkSwitch) exponentLength = 3;
+
+ std::stringstream c;
+ c.setf(std::ios::scientific, std::ios::floatfield);
+
+ // length - 3 for special characters ('.', 'e', '+' or '-')
+ // - exponentlength (e04)
+ // - 1 for the digit before the decimal (2.)
+ // and if showSign == true,
+ // an extra -1 for '-' or ' ' if it's positive or negative
+ int expSize = 0;
+ if (showSign)
+ expSize = 1;
+ c.precision(length - 3 - exponentLength - 1 - expSize);
+
+
+ c << d;
+
+ c >> toReturn;
+
+ return toReturn;
+ }
+
+ inline std::string& sci2for(std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos,
+ const std::string::size_type expLen,
+ const bool checkSwitch)
+ throw(StringException)
+ {
+ try
+ {
+ std::string::size_type idx = aStr.find('.', startPos);
+ int expAdd = 0;
+ std::string exp;
+ long iexp;
+ //If checkSwitch is false, always redo the exponential. Otherwise,
+ //set it to false.
+ bool redoexp=!checkSwitch;
+
+ // Check for decimal place within specified boundaries
+ if ((idx == 0) || (idx >= (startPos + length - expLen - 1)))
+ {
+ StringException e("sci2for: no decimal point in string");
+ GPSTK_THROW(e);
+ }
+
+ // Here, account for the possibility that there are
+ // no numbers to the left of the decimal, but do not
+ // account for the possibility of non-scientific
+ // notation (more than one digit to the left of the
+ // decimal)
+ if (idx > startPos)
+ {
+ redoexp = true;
+ // Swap digit and decimal.
+ aStr[idx] = aStr[idx-1];
+ aStr[idx-1] = '.';
+ // Only add one to the exponent if the number is non-zero
+ if (asDouble(aStr.substr(startPos, length)) != 0.0)
+ expAdd = 1;
+ }
+
+ idx = aStr.find('e', startPos);
+ if (idx == std::string::npos)
+ {
+ idx = aStr.find('E', startPos);
+ if (idx == std::string::npos)
+ {
+ StringException e("sci2for:no 'e' or 'E' in string");
+ GPSTK_THROW(e);
+ }
+ }
+ // Change the exponent character to D normally, or E of checkSwitch is false.
+ if (checkSwitch)
+ aStr[idx] = 'D';
+ else
+ aStr[idx] = 'E';
+
+ // Change the exponent itself
+ if (redoexp)
+ {
+ exp = aStr.substr(idx + 1, std::string::npos);
+ iexp = asInt(exp);
+ iexp += expAdd;
+
+ aStr.erase(idx + 1);
+ if (iexp < 0)
+ {
+ aStr += "-";
+ iexp -= iexp*2;
+ }
+ else
+ aStr += "+";
+ aStr += rightJustify(asString(iexp),expLen,'0');
+
+ }
+
+ // if the number is positive, append a space
+ // (if it's negative, there's a leading '-'
+ if (aStr[0] == '.')
+ {
+ aStr.insert((std::string::size_type)0, 1, ' ');
+ }
+
+ //If checkSwitch is false, add on one leading zero to the string
+ if (!checkSwitch)
+ {
+ aStr.insert((std::string::size_type)1, 1, '0');
+ }
+
+
+ return aStr;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ } // end sci2for
+
+
+ inline std::string doub2for(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool checkSwitch)
+ throw(StringException)
+ {
+ try
+ {
+ short exponentLength = expLen;
+
+ /* Validate the assumptions regarding the input arguments */
+ if (exponentLength < 0) exponentLength = 1;
+ if (exponentLength > 3 && checkSwitch) exponentLength = 3;
+
+ std::string toReturn = doub2sci(d, length, exponentLength, true, checkSwitch);
+ sci2for(toReturn, length, 0, exponentLength, checkSwitch);
+
+ return toReturn;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+
+ inline double for2doub(const std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos)
+ {
+ std::string s(aStr);
+ strip(s);
+ std::string::size_type pos;
+
+ // you can blame Rinex for these special checks
+ if (s.empty())
+ {
+ return 0;
+ }
+
+ if ( ((pos = s.find('E', startPos)) != std::string::npos) ||
+ ((pos = s.find('d', startPos)) != std::string::npos) ||
+ ((pos = s.find('D', startPos)) != std::string::npos))
+ {
+ s[pos] = 'e';
+ }
+ // just treat it like a double
+ else
+ {
+ return asDouble(aStr.substr(length, startPos));
+ }
+
+ std::stringstream st;
+ st << s;
+
+ double d;
+ st >> d;
+
+ return d;
+ }
+
+ inline std::string printable(const std::string& aStr)
+ throw(StringException)
+ {
+ try
+ {
+ std::string rv(aStr);
+
+ for (int i = 0; i < (int)rv.length(); i++)
+ {
+ char c = rv[i];
+ if (!isprint(c))
+ {
+ if (iscntrl(c))
+ {
+ rv.replace(i,1,2,'^');
+ rv.replace(i+1,1,1, 64+(c));
+ }
+ else
+ {
+ std::string mess(c2x(rv.substr(i,1)));
+ rv.replace(i,1,"<"+mess+">");
+ }
+ }
+ }
+
+ return rv;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& prettyPrint(std::string& aStr,
+ const std::string& lineDelim,
+ const std::string& indent,
+ const std::string& firstIndent,
+ const std::string::size_type len,
+ const char wordDelim)
+ throw(StringException)
+ {
+ try
+ {
+ // chop aStr up into words based on wordDelim
+ std::list<std::string> wordList;
+ std::string tempStr(aStr);
+ stripLeading(tempStr, wordDelim);
+ while (!tempStr.empty())
+ {
+ std::string theFirstWord = firstWord(tempStr,wordDelim);
+ wordList.push_back(theFirstWord);
+ stripLeading(tempStr, theFirstWord);
+ stripLeading(tempStr, wordDelim);
+ }
+
+ // now reassemble the words into sentences
+ std::string toReturn;
+ std::string thisLine = firstIndent, lastLine;
+ while (!wordList.empty())
+ {
+ lastLine = thisLine;
+ if (!lastLine.empty())
+ thisLine += wordDelim;
+ thisLine += wordList.front();
+
+ if (thisLine.length() > len)
+ {
+ // if the first word is longer than a line, just add it.
+ // if this is the first line, remember to add the indent.
+ if (lastLine.empty())
+ {
+ if (toReturn.empty())
+ lastLine += firstIndent;
+ lastLine = wordList.front();
+ }
+
+ toReturn += lastLine + lineDelim;
+
+ thisLine.erase();
+ lastLine.erase();
+
+ thisLine = indent;
+ }
+ else
+ wordList.erase(wordList.begin());
+ }
+ if (!thisLine.empty())
+ toReturn += (thisLine + lineDelim);
+
+ aStr = toReturn;
+ return aStr;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ //@}
+
+ } // namespace StringUtils
+
+} // namespace gpstk
+#endif // GPSTK_STRINGUTILS_HPP
+
+
+
diff --git a/dev/src/SystemTime.cpp b/dev/src/SystemTime.cpp
new file mode 100644
index 0000000..fa09b9f
--- /dev/null
+++ b/dev/src/SystemTime.cpp
@@ -0,0 +1,59 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "gpstkplatform.h"
+#include "SystemTime.hpp"
+#include "ANSITime.hpp"
+
+namespace gpstk
+{
+ SystemTime& SystemTime::operator=( const SystemTime& right )
+ throw()
+ {
+ UnixTime::operator=( right );
+ return *this;
+ }
+
+ SystemTime& SystemTime::update()
+ throw()
+ {
+#if defined(ANSI_ONLY)
+ time_t t;
+ time( &t );
+ *this = ANSITime( t );
+#elif defined(WIN32)
+ _timeb t;
+ _ftime( &t );
+ tv.tv_sec = t.time;
+ tv.tv_usec = t.millitm * 1000;
+#else
+ gettimeofday( &tv, NULL );
+#endif
+
+ return *this;
+ }
+
+} // namespace
diff --git a/dev/src/SystemTime.hpp b/dev/src/SystemTime.hpp
new file mode 100644
index 0000000..be13c31
--- /dev/null
+++ b/dev/src/SystemTime.hpp
@@ -0,0 +1,115 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_SYSTEMTIME_HPP
+#define GPSTK_SYSTEMTIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "UnixTime.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class reads the current system time and stores it in
+ * a UnixTime.
+ */
+ class SystemTime
+ : public UnixTime
+ {
+ public:
+ /**
+ * @defgroup stbo SystemTime Basic Operations
+ */
+ //@{
+
+ /**
+ * Default Constructor.
+ * Reads the system clock for the current system time.
+ */
+ SystemTime()
+ throw()
+ {
+ update();
+ }
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the SystemTime object to copy
+ */
+ SystemTime( const SystemTime& right )
+ throw()
+ : UnixTime( right )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ SystemTime( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ SystemTime( const CommonTime& right )
+ throw( InvalidRequest )
+ : UnixTime( right )
+ {}
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the SystemTime to copy
+ * @return a reference to this SystemTime
+ */
+ SystemTime& operator=( const SystemTime& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~SystemTime()
+ throw()
+ {}
+ //@}
+
+ /**
+ * Update this object to the current system time.
+ * @return a reference to this SystemTime
+ */
+ SystemTime& update()
+ throw();
+ };
+
+}
+
+#endif // GPSTK_SYSTEMTIME_HPP
diff --git a/dev/src/TabularEphemerisStore.cpp b/dev/src/TabularEphemerisStore.cpp
new file mode 100644
index 0000000..739f345
--- /dev/null
+++ b/dev/src/TabularEphemerisStore.cpp
@@ -0,0 +1,265 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file TabularEphemerisStore.cpp
+ * Store & access a list of SV pvts
+ */
+
+#include "TabularEphemerisStore.hpp"
+#include "MiscMath.hpp"
+#include "ECEF.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace gpstk::StringUtils;
+
+namespace gpstk
+{
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ void TabularEphemerisStore::dump(short detail, std::ostream& s) const
+ {
+ s << "Dump of TabularEphemerisStore:" << std::endl;
+ if(detail >= 0) {
+ EphMap::const_iterator it;
+ s << " Data stored for " << pe.size() << " satellites." << std::endl;
+ if(detail == 0) return;
+ for(it=pe.begin(); it!=pe.end(); it++) {
+ s << " PRN " << it->first << " : "
+ << it->second.size() << " records.";
+ if(detail == 1) { s << std::endl; continue; }
+ s << " Data:" << std::endl;
+ SvEphMap::const_iterator jt;
+ for(jt=it->second.begin(); jt!=it->second.end(); jt++) {
+ s << " " << jt->first << " P "
+ << std::fixed << std::setprecision(6)
+ << std::setw(13) << jt->second.x[0] << " "
+ << std::setw(13) << jt->second.x[1] << " "
+ << std::setw(13) << jt->second.x[2] << " "
+ << std::setw(13) << jt->second.dtime
+ << " V "
+ << std::setw(13) << jt->second.v[0] << " "
+ << std::setw(13) << jt->second.v[1] << " "
+ << std::setw(13) << jt->second.v[2] << " "
+ << std::setw(13) << jt->second.ddtime
+ << std::endl;
+ }
+ }
+ }
+
+ } // end of TabularEphemerisStore::dump
+
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ void TabularEphemerisStore::edit(const DayTime& tmin, const DayTime& tmax) throw()
+ {
+ EphMap::iterator kt;
+ for(kt=pe.begin(); kt!=pe.end(); kt++) {
+ SvEphMap::reverse_iterator jt=(kt->second).rbegin();
+ while(jt != (kt->second).rend()) {
+ if(jt->first < tmin || jt->first > tmax) (kt->second).erase(jt->first);
+ jt ++;
+ }
+ }
+ } // end TabularEphemerisStore::edit
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ // Remove all data
+ void TabularEphemerisStore::clear() throw()
+ {
+ pe.clear();
+ initialTime = DayTime::END_OF_TIME;
+ finalTime = DayTime::BEGINNING_OF_TIME;
+ }
+
+ //--------------------------------------------------------------------------
+ //--------------------------------------------------------------------------
+ Xvt TabularEphemerisStore::getSatXvt(SatID sat, const gpstk::DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ EphMap::const_iterator svmap = pe.find(sat);
+ if (svmap==pe.end()) {
+ NoEphemerisFound e("Ephemeris for satellite " + asString(sat)
+ + " not found.");
+ GPSTK_THROW(e);
+ }
+
+ const SvEphMap& sem=svmap->second;
+ SvEphMap::const_iterator i=sem.find(t);
+
+ Xvt sv;
+ if (i!= sem.end() && haveVelocity)
+ {
+ sv = i->second;
+ sv.x[0] *= 1.e3; // m
+ sv.x[1] *= 1.e3; // m
+ sv.x[2] *= 1.e3; // m
+ sv.dtime *= 1.e-6; // sec
+ sv.v[0] *= 1.e-1; // m/sec
+ sv.v[1] *= 1.e-1; // m/sec
+ sv.v[2] *= 1.e-1; // m/sec
+ sv.ddtime *= 1.e-10; // sec/sec
+
+ sv.dtime += -2*(sv.x[0]/C_GPS_M)*(sv.v[0]/C_GPS_M)
+ -2*(sv.x[1]/C_GPS_M)*(sv.v[1]/C_GPS_M)
+ -2*(sv.x[2]/C_GPS_M)*(sv.v[2]/C_GPS_M);
+ return sv;
+ }
+
+ /// Note that the order of the Lagrange interpolation is twice this value
+ const int half=5;
+
+ // i will be the lower bound, j the upper (in time).
+ i = sem.lower_bound(t);
+ SvEphMap::const_iterator j=i;
+ if(i == sem.begin() || --i == sem.begin()) {
+ NoEphemerisFound e("Inadequate data before requested time, satellite "
+ + asString(sat));
+ GPSTK_THROW(e);
+ }
+ for(int k=0; k<half-1; k++) {
+ i--;
+ if(i == sem.begin() && k<half-2) {
+ NoEphemerisFound e("Inadequate data before requested time, satellite "
+ + asString(sat));
+ GPSTK_THROW(e);
+ }
+ j++;
+ if(j == sem.end()) {
+ NoEphemerisFound e("Inadequate data after requested time, satellite "
+ + asString(sat));
+ GPSTK_THROW(e);
+ }
+ }
+
+ // pull data and interpolate
+ SvEphMap::const_iterator itr;
+ DayTime t0=i->first;
+ double dt=t-t0,err;
+ std::vector<double> times,X,Y,Z,T,VX,VY,VZ,F;
+
+
+ for (itr=i; itr!=sem.end(); itr++)
+ {
+ times.push_back(itr->first - t0); // sec
+ X.push_back(itr->second.x[0]); // km
+ Y.push_back(itr->second.x[1]); // km
+ Z.push_back(itr->second.x[2]); // km
+ T.push_back(itr->second.dtime); // microsec
+ VX.push_back(itr->second.v[0]); // decimeters/sec
+ VY.push_back(itr->second.v[1]); // decimeters/sec
+ VZ.push_back(itr->second.v[2]); // decimeters/sec
+ F.push_back(itr->second.ddtime); // 1.e-4 microsec/sec
+ if(itr == j) break;
+ }
+
+ if (haveVelocity)
+ {
+ sv.x[0] = LagrangeInterpolation(times,X,dt,err);
+ sv.x[1] = LagrangeInterpolation(times,Y,dt,err);
+ sv.x[2] = LagrangeInterpolation(times,Z,dt,err);
+ sv.dtime = LagrangeInterpolation(times,T,dt,err);
+ sv.v[0] = LagrangeInterpolation(times,VX,dt,err);
+ sv.v[1] = LagrangeInterpolation(times,VY,dt,err);
+ sv.v[2] = LagrangeInterpolation(times,VZ,dt,err);
+ sv.ddtime = LagrangeInterpolation(times,F,dt,err);
+ }
+ else {
+ LagrangeInterpolation(times,X,dt,sv.x[0],sv.v[0]);
+ LagrangeInterpolation(times,Y,dt,sv.x[1],sv.v[1]);
+ LagrangeInterpolation(times,Z,dt,sv.x[2],sv.v[2]);
+ LagrangeInterpolation(times,T,dt,sv.dtime,sv.ddtime);
+ sv.v[0] *= 1.e4; // decimeters/sec
+ sv.v[1] *= 1.e4; // decimeters/sec
+ sv.v[2] *= 1.e4; // decimeters/sec
+ sv.ddtime *= 1.e4; // 1.e-4 microsec/sec
+ }
+
+ sv.x[0] *= 1.e3; // m
+ sv.x[1] *= 1.e3; // m
+ sv.x[2] *= 1.e3; // m
+ sv.dtime *= 1.e-6; // sec
+ sv.v[0] *= 1.e-1; // m/sec
+ sv.v[1] *= 1.e-1; // m/sec
+ sv.v[2] *= 1.e-1; // m/sec
+ sv.ddtime *= 1.e-10; // sec/sec
+
+ // add relativity correction to dtime
+ // this only for consistency with BCEphemerisStore::getSatXvt ....
+ // dtr = -2*dot(R,V)/(c*c) = -4.4428e-10 * ecc * sqrt(A(m))*sinE
+ // (do it this way for numerical reasons)
+ sv.dtime += -2*(sv.x[0]/C_GPS_M)*(sv.v[0]/C_GPS_M)
+ -2*(sv.x[1]/C_GPS_M)*(sv.v[1]/C_GPS_M)
+ -2*(sv.x[2]/C_GPS_M)*(sv.v[2]/C_GPS_M);
+
+ return sv;
+
+ } // end Xvt TabularEphemerisStore::getSatXvt
+
+
+ //-----------------------------------------------------------------------------
+ //-----------------------------------------------------------------------------
+ void TabularEphemerisStore::addEphemeris(const SP3Data& data)
+ throw()
+ {
+ DayTime t = data.time;
+ SatID sat = data.sat;
+ Xvt& xvt = pe[sat][t];
+
+ if (data.flag=='P')
+ {
+ xvt.x = ECEF(data.x[0], data.x[1], data.x[2]);
+ xvt.dtime = data.clk;
+ haveVelocity=false;
+ }
+ else if (data.flag=='V')
+ {
+ xvt.v = Triple(data.x[0],data.x[1],data.x[2]);
+ xvt.ddtime = data.clk;
+ haveVelocity=true;
+ }
+
+ if (t<initialTime)
+ initialTime = t;
+ else if (t>finalTime)
+ finalTime = t;
+ }
+
+} // namespace gpstk
diff --git a/dev/src/TabularEphemerisStore.hpp b/dev/src/TabularEphemerisStore.hpp
new file mode 100644
index 0000000..c24f672
--- /dev/null
+++ b/dev/src/TabularEphemerisStore.hpp
@@ -0,0 +1,144 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file TabularEphemerisStore.hpp
+ * Store & access a list of SV pvts
+ */
+
+#ifndef GPSTK_TABULAR_EPHEMERIS_STORE_HPP
+#define GPSTK_TABULAR_EPHEMERIS_STORE_HPP
+
+#include <iostream>
+
+#include "SatID.hpp"
+#include "EphemerisStore.hpp"
+#include "SP3Data.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ /**
+ * This stores tabular ephemeris data for determining satellite positions.
+ */
+ class TabularEphemerisStore : public EphemerisStore
+ {
+ public:
+ /// Constructor.
+ TabularEphemerisStore() throw()
+ : initialTime(DayTime::END_OF_TIME),
+ finalTime(DayTime::BEGINNING_OF_TIME),
+ haveVelocity(true) {};
+
+ /// destructor
+ virtual ~TabularEphemerisStore() {}
+
+ /** Return the position, velocity and clock model of the sv in Cartesian
+ * ECEF coordinates (units m, s, m/s, s/s) at the indicated time.
+ * @param sat the satellite's SatID
+ * @param t the time to look up
+ * @return the Xvt of the SV at time t
+ */
+ virtual Xvt getSatXvt(SatID sat, const gpstk::DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound);
+
+ /// \deprecated
+ virtual Xvt getPrnXvt(short prn, const gpstk::DayTime& t)
+ const throw(EphemerisStore::NoEphemerisFound)
+ {
+ SatID sat(prn,SatID::systemGPS);
+ return TabularEphemerisStore::getSatXvt(sat,t);
+ }
+
+ /** Dump the store to given stream.
+ * @param detail specifies the level of detail to include in the output:
+ * 0: number of satellites, 1: records per satellite, >1 all data.
+ */
+ void dump(short detail=0, std::ostream& s=std::cout) const;
+
+ /// Edit the dataset, removing data outside this time interval
+ void edit(const DayTime& tmin, const DayTime& tmax) throw();
+
+ /// Insert a new SP3Data object into the store
+ void addEphemeris(const SP3Data& data)
+ throw();
+
+ /// Remove all data
+ void clear() throw();
+
+ /** Return the time of the first ephemeris in the object.
+ * @return the time of the first ephemeris in the object
+ */
+ virtual gpstk::DayTime getInitialTime() const {return initialTime;};
+
+ /** Return the time of the last ephemeris in the object.
+ * @return the time of the last ephemeris in the object
+ */
+ virtual gpstk::DayTime getFinalTime() const {return finalTime;};
+
+ void setHaveVelocity(bool f) throw() {haveVelocity=f;};
+ bool getHaveVelocity() throw() {return haveVelocity;};
+
+ private:
+
+ /// The key to this map is the time
+ typedef std::map<DayTime, Xvt> SvEphMap;
+
+ /// The key to this map is the svid of the satellite (usually the prn)
+ typedef std::map<SatID, SvEphMap> EphMap;
+
+ /// the map of SVs and XVTs
+ EphMap pe;
+
+ /** These give the overall span of time for which this object contains data.
+ * NB there may be gaps in the data, i.e. the data may not be continuous.
+ */
+ gpstk::DayTime initialTime, finalTime;
+
+ /// Flag indicating that velocity data present in all datasets loaded.
+ bool haveVelocity;
+
+ };
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/TimeConstants.hpp b/dev/src/TimeConstants.hpp
new file mode 100644
index 0000000..2b3d6a9
--- /dev/null
+++ b/dev/src/TimeConstants.hpp
@@ -0,0 +1,78 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_TIMECONSTANTS_HPP
+#define GPSTK_TIMECONSTANTS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+namespace gpstk
+{
+ /// Add this offset to convert Modified Julian Date to Julian Date.
+ const double MJD_TO_JD = 2400000.5;
+ /// 'Julian day' offset from MJD
+ const long MJD_JDAY = 2400001L;
+ /// 'Julian day' of GPS epoch (Jan. 1, 1980).
+ const long GPS_EPOCH_JDAY = 2444245L;
+ /// Modified Julian Date of GPS epoch (Jan. 1, 1980).
+ const long GPS_EPOCH_MJD = 44244L;
+ /// Modified Julian Date of UNIX epoch (Jan. 1, 1970).
+ const long UNIX_MJD = 40587L;
+
+ /// Seconds per half a GPS week.
+ const long HALFWEEK = 302400L;
+ /// Seconds per whole GPS week.
+ const long FULLWEEK = 604800L;
+
+ /// Weeks per GPS Epoch
+ const long WEEKS_PER_EPOCH = 1024L;
+
+ /// Seconds per day.
+ const long SEC_PER_DAY = 86400L;
+ /// Days per second.
+ const double DAY_PER_SEC = 1.0/SEC_PER_DAY;
+
+ /// Milliseconds in a second.
+ const long MS_PER_SEC = 1000L;
+ /// Seconds per millisecond.
+ const double SEC_PER_MS = 1.0/MS_PER_SEC;
+
+ /// Milliseconds in a day.
+ const long MS_PER_DAY = MS_PER_SEC * SEC_PER_DAY;
+ /// Days per milliseconds.
+ const double DAY_PER_MS = 1.0/MS_PER_DAY;
+
+ /// Zcounts in a day.
+ const long ZCOUNT_PER_DAY = 57600L;
+ /// Days in a Zcount
+ const double DAY_PER_ZCOUNT = 1.0/ZCOUNT_PER_DAY;
+
+ /// Zcounts in a week.
+ const long ZCOUNT_PER_WEEK = 403200L;
+ /// Weeks in a Zcount.
+ const double WEEKS_PER_ZCOUNT = 1.0/ZCOUNT_PER_WEEK;
+
+} // namespace
+
+#endif // GPSTK_TIMECONSTANTS_HPP
diff --git a/dev/src/TimeConverters.cpp b/dev/src/TimeConverters.cpp
new file mode 100644
index 0000000..2bac926
--- /dev/null
+++ b/dev/src/TimeConverters.cpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeConverters.hpp"
+#include "TimeConstants.hpp"
+#include <math.h>
+
+namespace gpstk
+{
+
+ // These two routines convert 'integer JD' and calendar time; they were
+ // derived from Sinnott, R. W. "Bits and Bytes" Sky & Telescope Magazine,
+ // Vol 82, p. 183, August 1991, and The Astronomical Almanac, published
+ // by the U.S. Naval Observatory.
+ // NB range of applicability of this routine is from 0JD (4713BC)
+ // to approx 3442448JD (4713AD).
+ void convertJDtoCalendar( long jd,
+ int& iyear,
+ int& imonth,
+ int& iday )
+ throw()
+ {
+ long L, M, N, P, Q;
+ if(jd > 2299160) // after Oct 4, 1582
+ {
+ L = jd + 68569;
+ M = (4 * L) / 146097;
+ L = L - ((146097 * M + 3) / 4);
+ N = (4000 * (L + 1)) / 1461001;
+ L = L - ((1461 * N) / 4) + 31;
+ P = (80 * L) / 2447;
+ iday = int(L - (2447 * P) / 80);
+ L = P / 11;
+ imonth = int(P + 2 - 12 * L);
+ iyear = int(100 * (M - 49) + N + L);
+ }
+ else
+ {
+ P = jd + 1402;
+ Q = (P - 1) / 1461;
+ L = P - 1461 * Q;
+ M = (L - 1) / 365 - L / 1461;
+ N = L - 365 * M + 30;
+ P = (80 * N) / 2447;
+ iday = int(N - (2447 * P) / 80);
+ N = P / 11;
+ imonth = int(P + 2 - 12 * N);
+ iyear = int(4 * Q + M + N - 4716);
+ if(iyear <= 0)
+ {
+ --iyear;
+ }
+ }
+ // catch century/non-400 non-leap years
+ if(iyear > 1599 &&
+ !(iyear % 100) &&
+ (iyear % 400) &&
+ imonth == 2 &&
+ iday == 29)
+ {
+ imonth = 3;
+ iday = 1;
+ }
+ }
+
+ long convertCalendarToJD( int yy,
+ int mm,
+ int dd )
+ throw()
+ {
+ if(yy == 0)
+ --yy; // there is no year 0
+
+ if(yy < 0)
+ ++yy;
+
+ long jd;
+ double y = static_cast<double>( yy ),
+ m = static_cast<double>( mm ),
+ d = static_cast<double>( dd );
+
+ // In the conversion from the Julian Calendar to the Gregorian
+ // Calendar the day after October 4, 1582 was October 15, 1582.
+ //
+ // if the date is before October 15, 1582
+ if(yy < 1582 || (yy == 1582 && (mm < 10 || (mm == 10 && dd < 15))))
+ {
+ jd = 1729777 + dd + 367 * yy
+ - static_cast<long>(7 * ( y + 5001 +
+ static_cast<long>((m - 9) / 7)) / 4)
+ + static_cast<long>(275 * m / 9);
+ }
+ else // after Oct 4, 1582
+ {
+ jd = 1721029 + dd + 367 * yy
+ - static_cast<long>(7 * (y + static_cast<long>((m + 9) / 12)) / 4)
+ - static_cast<long>(3 * (static_cast<long>((y + (m - 9) / 7) / 100)
+ + 1) / 4)
+ + static_cast<long>(275 * m / 9);
+
+ // catch century/non-400 non-leap years
+ if( (! (yy % 100) &&
+ (yy % 400) &&
+ mm > 2 &&
+ mm < 9) ||
+ (!((yy - 1) % 100) &&
+ ((yy - 1) % 400) &&
+ mm == 1))
+ {
+ --jd;
+ }
+ }
+ return jd;
+ }
+
+ void convertSODtoTime( double sod,
+ int& hh,
+ int& mm,
+ double& sec )
+ throw()
+ {
+ // Get us to within one day.
+ if (sod < 0)
+ {
+ sod += (1 +
+ static_cast<unsigned long>(sod / SEC_PER_DAY)) * SEC_PER_DAY ;
+ }
+ else if (sod >= SEC_PER_DAY)
+ {
+ sod -= static_cast<unsigned long>(sod / SEC_PER_DAY) * SEC_PER_DAY ;
+ }
+
+ double temp; // variable to hold the integer part of sod
+ sod = modf(sod, &temp); // sod holds the fraction, temp the integer
+ long seconds = static_cast<long>(temp); // get temp into a real integer
+
+ hh = seconds / 3600 ;
+ mm = (seconds % 3600) / 60 ;
+ sec = double(seconds % 60) + sod ;
+
+ }
+
+ double convertTimeToSOD( int hh,
+ int mm,
+ double sec )
+ throw()
+ {
+ return (sec + 60. * (mm + 60. * hh));
+ }
+
+} // namespace
diff --git a/dev/src/TimeConverters.hpp b/dev/src/TimeConverters.hpp
new file mode 100644
index 0000000..ef360a3
--- /dev/null
+++ b/dev/src/TimeConverters.hpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_TIMECONVERTERS_HPP
+#define GPSTK_TIMECONVERTERS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+namespace gpstk
+{
+ /** Fundamental routine to convert from "Julian day" (= JD + 0.5)
+ * to calendar day.
+ * @param jd long integer "Julian day" = JD+0.5
+ * @param iyear reference to integer year
+ * @param imonth reference to integer month (January == 1)
+ * @param iday reference to integer day of month
+ * (1st day of month == 1)
+ * @note range of applicability of this routine is from 0JD (4713BC)
+ * to approx 3442448JD (4713AD).
+ * Algorithm references: Sinnott, R. W. "Bits and Bytes,"
+ * Sky & Telescope Magazine, Vol 82, p. 183, August 1991, and
+ * The Astronomical Almanac, published by the U.S. Naval Observatory.
+ */
+ void convertJDtoCalendar( long jd,
+ int& iyear,
+ int& imonth,
+ int& iday )
+ throw();
+
+ /** Fundamental routine to convert from calendar day to "Julian day"
+ * (= JD + 0.5)
+ * @param iyear reference to integer year
+ * @param imonth reference to integer month (January == 1)
+ * @param iday reference to integer day of month
+ * (1st day of month == 1)
+ * @return jd long integer "Julian day" = JD+0.5
+ * @note range of applicability of this routine is from 0JD (4713BC)
+ * to approx 3442448JD (4713AD).
+ * Algorithm references: Sinnott, R. W. "Bits and Bytes,"
+ * Sky & Telescope Magazine, Vol 82, p. 183, August 1991, and
+ * The Astronomical Almanac, published by the U.S. Naval Observatory.
+ */
+ long convertCalendarToJD( int iyear,
+ int imonth,
+ int iday )
+ throw();
+
+ /** Fundamental routine to convert seconds of day to H:M:S
+ * @param sod seconds of day (input)
+ * @param hh reference to integer hour (0 <= hh < 24) (output)
+ * @param mm reference to integer minutes (0 <= mm < 60) (output)
+ * @param sec reference to double seconds (0 <= sec < 60.0) (output)
+ */
+ void convertSODtoTime( double sod,
+ int& hh,
+ int& mm,
+ double& sec )
+ throw();
+
+ /** Fundamental routine to convert H:M:S to seconds of day
+ * @param hh integer hour (0 <= hh < 24) (input)
+ * @param mm integer minutes (0 <= mm < 60) (input)
+ * @param sec double seconds (0 <= sec < 60.0) (input)
+ * @return sod seconds of day (input)
+ */
+ double convertTimeToSOD( int hh,
+ int mm,
+ double sec )
+ throw();
+
+} // namespace
+
+#endif // GPSTK_TIMECONVERTERS_HPP
diff --git a/dev/src/TimeNamedFileStream.hpp b/dev/src/TimeNamedFileStream.hpp
new file mode 100644
index 0000000..3a87331
--- /dev/null
+++ b/dev/src/TimeNamedFileStream.hpp
@@ -0,0 +1,157 @@
+#pragma ident "$Id$"
+
+/**
+ * @file TimeNamedFileStream.hpp
+ * Writes data to a file whose name is derived from a pattern and a nominal epoch.
+ */
+
+#ifndef GPSTK_TIME_NAMED_FILE_STREAM_HPP
+#define GPSTK_TIME_NAMED_FILE_STREAM_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#include <string>
+
+#include "Exception.hpp"
+#include "DayTime.hpp"
+#include "FFStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup FFStream */
+ //@{
+
+ template <class BaseStream>
+ class TimeNamedFileStream : public BaseStream
+ {
+ public:
+
+ TimeNamedFileStream()
+ : omode(std::ios::in), debugLevel(0)
+ {};
+
+ TimeNamedFileStream(
+ const std::string fs,
+ std::ios::openmode mode = std::ios::in)
+ : filespec(fs), omode(mode), debugLevel(0)
+ {};
+
+ virtual ~TimeNamedFileStream(void) {};
+
+
+ /// overrides open to just set the filespec, Note that this does
+ /// not actually open a file
+ virtual void open(const char* fs, std::ios::openmode mode = std::ios::in)
+ {
+ setFilespec(fs);
+ omode = mode;
+ };
+
+
+ void setFilespec(const std::string fs)
+ { filespec=fs; currentFilename=""; }
+
+
+ std::string getFilespec(void) const
+ { return filespec;}
+
+
+ // Get the filename of the current file
+ std::string getCurrentFilename(void) const
+ { return currentFilename; };
+
+
+ // Return the time used to generate the current file name
+ DayTime getCurrentTime(void) const
+ { return currentTime; };
+
+
+ // Update the file name, returns true if the file name changed
+ bool updateFileName(const DayTime& t=DayTime())
+ {
+ bool openedNewFile = false;
+ const std::string newFilename=t.printf(filespec);
+ if (currentFilename.size() == 0 && newFilename.size() > 0)
+ {
+ currentFilename = newFilename;
+ currentTime = t;
+ BaseStream::open(currentFilename.c_str(), omode);
+ if (debugLevel)
+ std::cout << "Opened " << currentFilename << std::endl;
+ openedNewFile=true;
+ }
+ else if (newFilename == currentFilename)
+ {
+ currentTime = t;
+ openedNewFile=false;
+ }
+ else
+ {
+ if (debugLevel)
+ std::cout << "Closing " << currentFilename << std::endl;
+ BaseStream::close();
+ currentFilename = newFilename;
+ currentTime = t;
+ BaseStream::open(currentFilename.c_str(), omode);
+ if (debugLevel)
+ std::cout << "Opened " << currentFilename << std::endl;
+ openedNewFile=true;
+ }
+
+ return openedNewFile;
+ };
+
+ int debugLevel;
+
+ private:
+ /// Pattern on which to create new files
+ std::string filespec;
+
+ /// Name of the current output file.
+ std::string currentFilename;
+
+ /// The time used to generate currentFilename
+ DayTime currentTime;
+
+ // The flags to use when opening the files
+ std::ios::openmode omode;
+ }; // end class TimeNamedFileStream
+
+ //@}
+} // end namespace gpstk
+
+#endif // GPSTK_TIME_NAMED_FILE_STREAM_HPP
diff --git a/dev/src/TimeString.cpp b/dev/src/TimeString.cpp
new file mode 100644
index 0000000..6bf61ef
--- /dev/null
+++ b/dev/src/TimeString.cpp
@@ -0,0 +1,724 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeString.hpp"
+
+#include "ANSITime.hpp"
+#include "CivilTime.hpp"
+#include "GPSEpochWeekSecond.hpp"
+#include "GPSWeekSecond.hpp"
+#include "GPSWeekZcount.hpp"
+#include "GPSZcount29.hpp"
+#include "GPSZcount32.hpp"
+#include "JulianDate.hpp"
+#include "MJD.hpp"
+#include "UnixTime.hpp"
+#include "YDSTime.hpp"
+
+#include "TimeConverters.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ std::string printTime( const TimeTag& t,
+ const std::string& fmt )
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ std::string rv( fmt );
+
+ // First, try to print using 't' itself.
+ rv = t.printf( rv );
+
+ // Next, run it through all the other TimeTag classes.
+ return printTime( t.convertToCommonTime(), rv );
+
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ std::string printTime( const CommonTime& t,
+ const std::string& fmt )
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ std::string rv( fmt );
+
+ // Convert to each TimeTag type and run its printf using rv.
+ // The printf functions test to see if they can print any part
+ // of the requested format. If they can, they do, and if not,
+ // simply return without doing any work.
+ rv = ANSITime( t ).printf( rv );
+ rv = CivilTime( t ).printf( rv );
+ rv = GPSEpochWeekSecond( t ).printf( rv );
+ rv = GPSWeekSecond( t ).printf( rv );
+ rv = GPSWeekZcount( t ).printf( rv );
+ rv = GPSZcount32( t ).printf( rv );
+ rv = GPSZcount29( t ).printf( rv );
+ rv = JulianDate( t ).printf( rv );
+ rv = MJD( t ).printf( rv );
+ rv = UnixTime( t ).printf( rv );
+ rv = YDSTime( t ).printf( rv );
+
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ /// Fill the TimeTag object \a btime with time information found in
+ /// string \a str formatted according to string \a fmt.
+ void scanTime( TimeTag& btime,
+ const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ // Get the mapping of character (from fmt) to value (from str).
+ TimeTag::IdToValue info;
+ TimeTag::getInfo( str, fmt, info );
+
+ if( btime.setFromInfo( info ) )
+ {
+ return;
+ }
+
+ // Convert to CommonTime, and try to set using all formats.
+ CommonTime ct( btime.convertToCommonTime() );
+ scanTime( ct, str, fmt );
+
+ // Convert the CommonTime into the requested format.
+ btime.convertFromCommonTime( ct );
+ }
+ catch( gpstk::InvalidRequest& ir )
+ {
+ GPSTK_RETHROW( ir );
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ void scanTime( CommonTime& t,
+ const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using namespace gpstk::StringUtils;
+
+ // Get the mapping of character (from fmt) to value (from str).
+ TimeTag::IdToValue info;
+ TimeTag::getInfo( str, fmt, info );
+
+ // These indicate which information has been found.
+ bool hmjd( false ), hsow( false ), hweek( false ), hfullweek( false ),
+ hdow( false ), hyear( false ), hmonth( false ), hday( false ),
+ hzcount( false ), hdoy( false ), hzcount29( false ),
+ hzcount32( false ), hhour( false ), hmin( false ), hsec( false ),
+ hsod( false ), hunixsec( false ), hunixusec( false ),
+ hepoch( false ), hansi( false ), hjulian( false );
+
+ // These are to hold data that no one parses.
+ int idow( 0 );
+
+ for( TimeTag::IdToValue::iterator itr = info.begin();
+ itr != info.end(); itr++ )
+ {
+ switch( itr->first )
+ {
+ case 'Q':
+ hmjd = true;
+ break;
+
+ case 'Z':
+ hzcount = true;
+ break;
+
+ case 's':
+ hsod = true;
+ break;
+
+ case 'g':
+ hsow = true;
+ break;
+
+ case 'w':
+ idow = asInt( itr->second );
+ hdow = true;
+ break;
+
+ case 'G':
+ hweek = true;
+ break;
+
+ case 'F':
+ hfullweek = true;
+ break;
+
+ case 'j':
+ hdoy = true;
+ break;
+
+ case 'b':
+ case 'B':
+ hmonth = true;
+ break;
+
+ case 'Y':
+ case 'y':
+ hyear = true;
+ break;
+
+ case 'a':
+ case 'A':
+ {
+ hdow = true;
+ std::string thisDay = firstWord( itr->second );
+ lowerCase(thisDay);
+ if (isLike(thisDay, "sun.*")) idow = 0;
+ else if (isLike(thisDay, "mon.*")) idow = 1;
+ else if (isLike(thisDay, "tue.*")) idow = 2;
+ else if (isLike(thisDay, "wed.*")) idow = 3;
+ else if (isLike(thisDay, "thu.*")) idow = 4;
+ else if (isLike(thisDay, "fri.*")) idow = 5;
+ else if (isLike(thisDay, "sat.*")) idow = 6;
+ else
+ {
+ hdow = false;
+ }
+ }
+ break;
+
+ case 'm':
+ hmonth = true;
+ break;
+
+ case 'd':
+ hday = true;
+ break;
+
+ case 'H':
+ hhour = true;
+ break;
+
+ case 'M':
+ hmin = true;
+ break;
+
+ case 'S':
+ hsec = true;
+ break;
+
+ case 'f':
+ hsec = true;
+ break;
+
+ case 'U':
+ hunixsec = true;
+ break;
+
+ case 'u':
+ hunixusec = true;
+ break;
+
+ case 'c':
+ hzcount29 = true;
+ break;
+
+ case 'C':
+ hzcount32 = true;
+ break;
+
+ case 'J':
+ hjulian = true;
+ break;
+
+ case 'K':
+ hansi = true;
+ break;
+
+ case 'E':
+ hepoch = true;
+ break;
+
+ default:
+ {
+ // do nothing
+ }
+ break;
+
+ };
+ }
+
+ if( hyear )
+ {
+ if( hmonth && hday )
+ {
+ CivilTime tt;
+ tt.setFromInfo( info );
+ if( hsod )
+ {
+ convertSODtoTime( asDouble( info['s'] ),
+ tt.hour, tt.minute, tt.second );
+ }
+ t = tt.convertToCommonTime();
+ return;
+ }
+ else // use YDSTime as default
+ {
+ YDSTime tt;
+ tt.setFromInfo( info );
+ if( hhour && hmin && hsec )
+ {
+ tt.sod = convertTimeToSOD( asInt( info['H'] ),
+ asInt( info['M'] ),
+ asDouble( info['S'] ) );
+ }
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ } // end of if( hyear )
+
+ if( hzcount32 )
+ {
+ GPSZcount32 tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ if( hepoch )
+ {
+ if( hzcount29 )
+ {
+ GPSZcount29 tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ if( hweek )
+ {
+ GPSEpochWeekSecond tt;
+ tt.setFromInfo( info );
+ if( hdow && !hsow )
+ {
+ tt.sow = asInt( info['w'] ) * SEC_PER_DAY;
+ if( hsod )
+ {
+ tt.sow += asDouble( info['s'] );
+ }
+ else if( hhour && hmin && hsec )
+ {
+ tt.sow += convertTimeToSOD( asInt( info['H'] ),
+ asInt( info['M'] ),
+ asDouble( info['S'] ) );
+ }
+ }
+ t = tt.convertToCommonTime();
+ return;
+
+ } // end of if( hweek )
+
+ } // end of if( hepoch )
+
+ if( hfullweek )
+ {
+ if( hzcount )
+ {
+ GPSWeekZcount tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ GPSWeekSecond tt;
+ tt.setFromInfo( info );
+ if( hdow && !hsow )
+ {
+ tt.sow = asInt( info['w'] ) * SEC_PER_DAY;
+ if( hsod )
+ {
+ tt.sow += asDouble( info['s'] );
+ }
+ else if( hhour && hmin && hsec )
+ {
+ tt.sow += convertTimeToSOD( asInt( info['H'] ),
+ asInt( info['M'] ),
+ asDouble( info['S'] ) );
+ }
+ }
+ t = tt.convertToCommonTime();
+ return;
+ } // end of if( hfullweek )
+
+ if( hmjd )
+ {
+ MJD tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ if( hjulian )
+ {
+ JulianDate tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ if( hansi )
+ {
+ ANSITime tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ if( hunixsec || hunixusec )
+ {
+ UnixTime tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+
+ InvalidRequest ir("Incomplete time specification for readTime");
+ GPSTK_THROW( ir );
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ void mixedScanTime( CommonTime& t,
+ const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using namespace gpstk::StringUtils;
+
+ // Get the mapping of character (from fmt) to value (from str).
+ TimeTag::IdToValue info;
+ TimeTag::getInfo( str, fmt, info );
+
+ // These indicate which information has been found.
+ bool hsow( false ), hweek( false ), hfullweek( false ),
+ hdow( false ), hyear( false ), hmonth( false ), hday( false ),
+ hzcount( false ), hdoy( false ), hzcount29( false ),
+ hhour( false ), hmin( false ), hsec( false ),
+ hsod( false ), hepoch( false ), hunixsec( false ),
+ hunixusec( false );
+
+ // MJD, Julian Date, ANSI time, Unix time, and 32-bit Zcounts
+ // are treated as stand-alone types and are not mixed with others
+ // if detected.
+
+ // These variables will hold the values for use later.
+ double isow, isod, isec;
+ int iweek, ifullweek, idow, iyear, imonth, iday, izcount, idoy,
+ izcount29, ihour, imin, iepoch, iunixsec, iunixusec;
+
+ for( TimeTag::IdToValue::iterator itr = info.begin();
+ itr != info.end(); itr++ )
+ {
+ switch( itr->first )
+ {
+ case 'Q':
+ t = MJD( asLongDouble(itr->second) );
+ return;
+
+ case 'J':
+ t = JulianDate( asLongDouble(itr->second) );
+ return;
+
+ case 'C':
+ t = GPSZcount32( asInt(itr->second) );
+ return;
+
+ case 'K':
+ t = ANSITime( asInt(itr->second) );
+ return;
+
+ case 'U':
+ case 'u':
+ {
+ UnixTime tt;
+ tt.setFromInfo( info );
+ t = tt.convertToCommonTime();
+ return;
+ }
+ break;
+
+ case 'Z':
+ hzcount = true;
+ izcount = asInt(itr->second);
+ break;
+
+ case 's':
+ hsod = true;
+ isod = asDouble(itr->second);
+ break;
+
+ case 'g':
+ hsow = true;
+ isow = asDouble(itr->second);
+ break;
+
+ case 'w':
+ idow = asInt(itr->second);
+ hdow = true;
+ break;
+
+ case 'G':
+ hweek = true;
+ iweek = asInt(itr->second);
+ break;
+
+ case 'F':
+ hfullweek = true;
+ ifullweek = asInt(itr->second);
+ break;
+
+ case 'j':
+ hdoy = true;
+ idoy = asInt(itr->second);
+ break;
+
+ case 'b':
+ case 'B':
+ hmonth = true;
+ imonth = asInt(itr->second);
+ break;
+
+ case 'Y':
+ case 'y':
+ hyear = true;
+ iyear = asInt(itr->second);
+ break;
+
+ case 'a':
+ case 'A':
+ {
+ hdow = true;
+ std::string thisDay = firstWord( itr->second );
+ lowerCase(thisDay);
+ if (isLike(thisDay, "sun.*")) idow = 0;
+ else if (isLike(thisDay, "mon.*")) idow = 1;
+ else if (isLike(thisDay, "tue.*")) idow = 2;
+ else if (isLike(thisDay, "wed.*")) idow = 3;
+ else if (isLike(thisDay, "thu.*")) idow = 4;
+ else if (isLike(thisDay, "fri.*")) idow = 5;
+ else if (isLike(thisDay, "sat.*")) idow = 6;
+ }
+ break;
+
+ case 'm':
+ hmonth = true;
+ imonth = asInt(itr->second);
+ break;
+
+ case 'd':
+ hday = true;
+ iday = asInt(itr->second);
+ break;
+
+ case 'H':
+ hhour = true;
+ ihour = asInt(itr->second);
+ break;
+
+ case 'M':
+ hmin = true;
+ imin = asInt(itr->second);
+ break;
+
+ case 'S':
+ hsec = true;
+ isec = asDouble(itr->second);
+ break;
+
+ case 'f':
+ hsec = true;
+ isec = asDouble(itr->second);
+ break;
+
+ case 'c':
+ hzcount29 = true;
+ izcount29 = asInt(itr->second);
+ break;
+
+ case 'E':
+ hepoch = true;
+ iepoch = asInt(itr->second);
+ break;
+
+ default:
+ // do nothing
+ break;
+
+ };
+ }
+
+
+ // We'll copy this time to 't' after all of the processing.
+ CommonTime ct;
+
+ // Go through all of the types in order of least precise to most
+ // precise.
+ if( hepoch )
+ {
+ GPSEpochWeekSecond tt(ct);
+ tt.epoch = iepoch;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hyear )
+ {
+ YDSTime tt(ct);
+ tt.year = iyear;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hmonth )
+ {
+ CivilTime tt(ct);
+ tt.month = imonth;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hfullweek )
+ {
+ GPSWeekSecond tt(ct);
+ tt.week = ifullweek;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hweek )
+ {
+ GPSEpochWeekSecond tt(ct);
+ tt.week = iweek;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hdow )
+ {
+ GPSWeekSecond tt(ct);
+ tt.sow = static_cast<double>(idow) * SEC_PER_DAY;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hday )
+ {
+ CivilTime tt(ct);
+ tt.day = iday;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hdoy )
+ {
+ YDSTime tt(ct);
+ tt.doy = idoy;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hzcount29 )
+ {
+ GPSZcount29 tt(ct);
+ tt.zcount = izcount29;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hzcount )
+ {
+ GPSWeekZcount tt(ct);
+ tt.zcount = izcount;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hhour )
+ {
+ CivilTime tt(ct);
+ tt.hour = ihour;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hmin )
+ {
+ CivilTime tt(ct);
+ tt.hour = imin;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hsow )
+ {
+ GPSWeekSecond tt(ct);
+ tt.sow = isow;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hsod )
+ {
+ YDSTime tt(ct);
+ tt.sod = isod;
+ ct = tt.convertToCommonTime();
+ }
+
+ if( hsec )
+ {
+ CivilTime tt(ct);
+ tt.second = isec;
+ ct = tt.convertToCommonTime();
+ }
+
+ t = ct;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+} // namespace gpstk
diff --git a/dev/src/TimeString.hpp b/dev/src/TimeString.hpp
new file mode 100644
index 0000000..90220d6
--- /dev/null
+++ b/dev/src/TimeString.hpp
@@ -0,0 +1,75 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_TIMESTRING_HPP
+#define GPSTK_TIMESTRING_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+#include "CommonTime.hpp"
+
+namespace gpstk
+{
+ std::string printTime( const TimeTag& t,
+ const std::string& fmt )
+ throw( gpstk::StringUtils::StringException );
+
+ std::string printTime( const CommonTime& t,
+ const std::string& fmt )
+ throw( gpstk::StringUtils::StringException );
+
+ /// Fill the TimeTag object \a btime with time information found in
+ /// string \a str formatted according to string \a fmt.
+ void scanTime( TimeTag& btime,
+ const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException );
+
+ void scanTime( CommonTime& t,
+ const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException );
+
+ /** This function is like the other scanTime functions except that
+ * it allows mixed time formats.
+ * i.e. Year / 10-bit GPS week / seconds-of-week
+ * The time formats are filled in the following order: GPS Epoch,
+ * year, month, GPS Full Week, GPS 10-bit Week, day-of-week,
+ * day-of-month, day-of-year, 29-bit Zcount, 19-bit Zcount, hour,
+ * minute, second-of-week, second-of-day, second-of-minute.
+ * @note MJD, Julian Date, ANSI time, Unix time, and 32-bit Zcount are
+ * treated as stand-alone types and are not mixed with others if
+ * detected.
+ */
+ void mixedScanTime( CommonTime& t,
+ const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException );
+} // namespace
+
+#endif // GPSTK_TIMESTRING_HPP
diff --git a/dev/src/TimeTag.cpp b/dev/src/TimeTag.cpp
new file mode 100644
index 0000000..011c785
--- /dev/null
+++ b/dev/src/TimeTag.cpp
@@ -0,0 +1,171 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ void TimeTag::scanf( const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ // Get the mapping of character (from fmt) to value (from str).
+ IdToValue info;
+ getInfo( str, fmt, info );
+
+ // Attempt to set this object using the IdToValue object
+ if( !setFromInfo( info ) )
+ {
+ gpstk::InvalidRequest ir( "Incomplete time specification." );
+ GPSTK_THROW( ir );
+ }
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ void TimeTag::getInfo( const std::string& str,
+ const std::string& fmt,
+ IdToValue& info )
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using namespace gpstk::StringUtils;
+
+ // Copy the arguments to strings we can modify.
+ std::string f = fmt;
+ std::string s = str;
+
+ // Parse strings... As we process each part, it's removed from both
+ // strings so when we reach 0, we're done
+ while( !s.empty() && !f.empty() )
+ {
+ // Remove everything in f and s up to the first % in f
+ // (these parts of the strings must be identical or this will
+ // break after it tries to remove it!)
+ while ( !s.empty() &&
+ !f.empty() &&
+ ( f[0] != '%' ) )
+ {
+ // remove that character now and other whitespace
+ s.erase(0,1);
+ f.erase(0,1);
+ }
+
+ // check just in case we hit the end of either string...
+ if ( s.empty() || f.empty() )
+ break;
+
+ // lose the '%' in f...
+ f.erase( 0, 1 );
+
+ std::string::size_type fieldLength = std::string::npos;
+ char delimiter = 0;
+
+ if (false)
+ std::cout << "--------------" << std::endl
+ << "f:\"" << f << "\"" << std::endl
+ << "s:\"" << s << "\"" << std::endl;
+
+ if( !isalpha( f[0] ) )
+ {
+ // If the format string is %03f, get '3' as the field length.
+ // This is where we have a specified field length so we should
+ // not throw away any more characters
+ fieldLength = asInt( f );
+
+ // remove everything else up to the next character
+ // (in "%03f", that would be 'f')
+ while ( !f.empty() && !isalpha( f[0] ) )
+ f.erase( 0, 1 );
+
+ if ( f.empty() )
+ break;
+ }
+ else
+ {
+ // When there is no field width specified, there must be a
+ // delimiter for the field.
+ if ( f.size() > 1 )
+ {
+ if ( f[1] != '%' )
+ {
+ delimiter = f[1];
+
+ stripLeading(s);
+ fieldLength = s.find( delimiter, 0 );
+ }
+ else
+ {
+ // if the there is no delimiter character and the next field
+ // is another part of the time to parse, assume the length
+ // of this field is 1
+ fieldLength = 1;
+ }
+ }
+ }
+
+ // Copy the next string to be removed.
+ std::string value( s.substr( 0, fieldLength ) );
+
+ // based on char at f[0], we know what to do...
+ info[ f[0] ] = value;
+
+ // remove the part of str that we processed
+ stripLeading( s, value, 1 );
+
+ // remove the character we processed from fmt
+ f.erase( 0, 1 );
+
+ // And remove the delimiter if one was used
+ if (delimiter != 0)
+ {
+ f.erase(0,1);
+ s.erase(0,1);
+ }
+ } // end of while( (s.size() > 0) && (f.size() > 0) )
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+} // namespace
+
+std::ostream& operator<<( std::ostream& s,
+ const gpstk::TimeTag& t )
+{
+ s << t.printf( t.getDefaultFormat() );
+ return s;
+}
diff --git a/dev/src/TimeTag.hpp b/dev/src/TimeTag.hpp
new file mode 100644
index 0000000..5c87ad4
--- /dev/null
+++ b/dev/src/TimeTag.hpp
@@ -0,0 +1,152 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_TIMETAG_HPP
+#define GPSTK_TIMETAG_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "CommonTime.hpp"
+#include "StringUtils.hpp"
+#include <map>
+
+namespace gpstk
+{
+ /** This class is an abstract base class inherited by all the classes
+ * that provide a specific time representation.
+ * These time representations must ensure or provide a way for the
+ * user to verify their own self-consistency.
+ */
+ class TimeTag
+ {
+ public:
+
+ /// Virtual Destructor.
+ virtual ~TimeTag()
+ throw()
+ {}
+
+ /// This function probably won't throw exceptions because if you can
+ /// represent a time in this format, you can probably represent it in
+ /// the Common format.
+ virtual CommonTime convertToCommonTime() const = 0;
+
+ /// This function may throw exceptions b/c it is possible that it may
+ /// not be possible to represent the time specified by the Common
+ /// object "bt" in this object.
+ virtual void convertFromCommonTime( const CommonTime& ct ) = 0;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ ///
+ virtual std::string printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException ) = 0;
+
+ /**
+ * This function sets this object to the time stored in the given
+ * string \a str.
+ * @param str the string to parse
+ * @param fmt the string containing the time format
+ * @throw InvalidRequest if an invalid time is given.
+ * @throw StringException on problems parsing the strings.
+ */
+ virtual void scanf( const std::string& str,
+ const std::string& fmt )
+ throw( gpstk::InvalidRequest,
+ gpstk::StringUtils::StringException );
+
+ /// This type maps a character ( from a time format ) to its
+ /// corresponding value ( from a time string ).
+ typedef std::map< char, std::string> IdToValue;
+
+ /**
+ * This is the workhorse for the scanf family of functions. It parses
+ * the given string \a str with the given format \a fmt in order to
+ * extract a time or part of a time from \a str.
+ * @param str the string from which to cull time information
+ * @param fmt the string containing the time format
+ * @param info a mapping of all of the character identifier to their
+ * respective culled time information
+ * @throw StringException on problems parsing the strings.
+ */
+ static void getInfo( const std::string& str,
+ const std::string& fmt,
+ IdToValue& info )
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw() = 0;
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw() = 0;
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw() = 0;
+
+ /// Returns true if this object's members are valid, false otherwise.
+ virtual bool isValid() const
+ throw() = 0;
+
+ /// Reset this object to the default state.
+ virtual void reset()
+ throw() = 0;
+
+ /// Format this time as a string using a format specified by the
+ /// inheriting class.
+ virtual std::string asString() const
+ throw( gpstk::StringUtils::StringException )
+ { return printf( getDefaultFormat() ); }
+
+ /// Hey, it's an implicit casting operator! Basically just a lazy
+ /// way to get at convertToCommonTime().
+ operator CommonTime() const
+ { return convertToCommonTime(); }
+
+ /// This returns the regular expression prefix that is used when
+ /// searching for integer specifiers.
+ static std::string getFormatPrefixInt()
+ { return "%[ 0-]?[[:digit:]]*"; }
+
+ /// This returns the regular expression prefix that is used when
+ /// searching for float specifiers.
+ static std::string getFormatPrefixFloat()
+ { return getFormatPrefixInt() + "(\\.[[:digit:]]+)?"; }
+
+ };
+
+} // namespace
+
+std::ostream& operator<<( std::ostream& s,
+ const gpstk::TimeTag& t );
+
+#endif // GPSTK_BASETIME_HPP
diff --git a/dev/src/Triple.cpp b/dev/src/Triple.cpp
new file mode 100644
index 0000000..f384c4a
--- /dev/null
+++ b/dev/src/Triple.cpp
@@ -0,0 +1,279 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file Triple.cpp
+ * Three element double vectors, for use with geodetic coordinates
+ */
+
+#include "geometry.hpp"
+#include "Triple.hpp"
+#include <cmath>
+
+namespace gpstk
+{
+ using namespace std;
+
+ Triple :: Triple()
+ : theArray(3)
+ {
+ }
+
+ Triple :: Triple(const Triple& right)
+ : theArray(right.theArray)
+ {
+ }
+
+ Triple :: Triple(double a,
+ double b,
+ double c)
+ : theArray(3)
+ {
+ theArray[0] = a;
+ theArray[1] = b;
+ theArray[2] = c;
+ }
+
+ Triple& Triple :: operator=(const Triple& right)
+ {
+ theArray = right.theArray;
+ return *this;
+ }
+
+ Triple& Triple :: operator=(const valarray<double>& right)
+ throw(GeometryException)
+ {
+ if (right.size() != 3)
+ {
+ GPSTK_THROW(GeometryException("Incorrect vector size"));
+ }
+
+ theArray = right;
+ return *this;
+ }
+
+ // returns the dot product of the two vectors
+ double Triple :: dot(const Triple& right) const
+ throw()
+ {
+ Triple z;
+ z = (this->theArray)*(right.theArray);
+ double a = z.theArray.sum();
+ return a;
+ }
+
+
+ // retuns v1 x v2 , vector cross product
+ Triple Triple :: cross(const Triple& right) const
+ throw()
+ {
+ Triple cp;
+ cp[0] = (*this)[1] * right[2] - (*this)[2] * right[1];
+ cp[1] = (*this)[2] * right[0] - (*this)[0] * right[2];
+ cp[2] = (*this)[0] * right[1] - (*this)[1] * right[0];
+ return cp;
+ }
+
+
+ double Triple :: mag() const throw()
+ {
+ return ::sqrt(dot(*this));
+ }
+
+ Triple Triple::unitVector() const
+ throw(GeometryException)
+ {
+ double mag = sqrt(dot(*this));
+
+ if (mag <= 1e-14)
+ GPSTK_THROW(GeometryException("Divide by Zero Error"));
+
+ Triple retArg;
+ retArg[0] = (*this)[0] / mag;
+ retArg[1] = (*this)[1] / mag;
+ retArg[2] = (*this)[2] / mag;
+ return(retArg);
+ }
+
+ // function that returns the cosine of angle between this and right
+ double Triple :: cosVector(const Triple& right) const
+ throw(GeometryException)
+ {
+ double rx, ry, cosvects;
+
+ rx = dot(*this);
+ ry = right.dot(right);
+
+ if (rx <= 1e-14 || ry <= 1e-14)
+ GPSTK_THROW(GeometryException("Divide by Zero Error"));
+
+ cosvects = dot(right) / ::sqrt(rx * ry);
+
+ /* this if checks for and corrects round off error */
+ if (fabs(cosvects) > 1.0e0)
+ {
+ cosvects = fabs(cosvects) / cosvects;
+ }
+
+ return cosvects;
+ }
+
+
+ // Computes the slant range between two vectors
+ double Triple :: slantRange(const Triple& right) const
+ throw()
+ {
+ Triple z;
+ z = right.theArray - this->theArray;
+ double r = z.mag();
+ return r;
+ }
+
+
+ // Finds the elevation angle of the second point with respect to
+ // the first point
+ double Triple :: elvAngle(const Triple& right) const
+ throw(GeometryException)
+ {
+ Triple z;
+ z = right.theArray - this->theArray;
+ double c = z.cosVector(*this);
+ return 90.0 - ::acos(c) * RAD_TO_DEG;
+ }
+
+
+ // Calculates a satellites azimuth from a station
+ double Triple :: azAngle(const Triple& right) const
+ throw(GeometryException)
+ {
+ double xy, xyz, cosl, sinl, sint, xn1, xn2, xn3, xe1, xe2;
+ double z1, z2, z3, p1, p2, test, alpha;
+
+ xy = (*this)[0] * (*this)[0] + (*this)[1] * (*this)[1] ;
+ xyz = xy + (*this)[2] * (*this)[2] ;
+ xy = ::sqrt(xy);
+ xyz = ::sqrt(xyz);
+
+ if (xy <= 1e-14 || xyz <=1e-14)
+ GPSTK_THROW(GeometryException("Divide by Zero Error"))
+
+ cosl = (*this)[0] / xy;
+ sinl = (*this)[1] / xy;
+ sint = (*this)[2] / xyz;
+
+ xn1 = -sint * cosl;
+ xn2 = -sint * sinl;
+ xn3 = xy/xyz;
+
+ xe1 = -sinl;
+ xe2 = cosl;
+
+ z1 = right[0] - (*this)[0];
+ z2 = right[1] - (*this)[1];
+ z3 = right[2] - (*this)[2];
+
+ p1 = (xn1 * z1) + (xn2 * z2) + (xn3 * z3) ;
+ p2 = (xe1 * z1) + (xe2 * z2) ;
+
+ test = fabs(p1) + fabs(p2);
+
+ if (test < 1.0e-16)
+ {
+ GPSTK_THROW(GeometryException("azAngle(), failed p1+p2 test."));
+ }
+
+ alpha = 90 - ::atan2(p1, p2) * RAD_TO_DEG;
+ if (alpha < 0)
+ {
+ return alpha + 360;
+ }
+ else
+ {
+ return alpha;
+ }
+ }
+
+ bool Triple :: operator== (const Triple& right) const
+ {
+ return (*this)[0]==right[0] && (*this)[1]==right[1] && (*this)[2]==right[2];
+ }
+
+ Triple Triple :: operator-(const Triple& right) const
+ {
+ Triple tmp;
+ tmp.theArray = this->theArray - right.theArray;
+ return tmp;
+ }
+
+ Triple Triple :: operator+(const Triple& right) const
+ {
+ Triple tmp;
+ tmp.theArray = this->theArray + right.theArray;
+ return tmp;
+ }
+
+ Triple operator*(double scale, const Triple& rhs)
+ {
+ Triple tmp;
+ tmp.theArray = rhs.theArray * scale;
+ return tmp;
+ }
+
+ std::ostream& operator<<(std::ostream& s,
+ const gpstk::Triple& v)
+ {
+ if (v.size() > 0)
+ {
+ s << "(" << v[0];
+ for (int i = 1; i < v.size(); i++)
+ {
+ s << ", " << v[i];
+ }
+ s << ")";
+ }
+
+ return s;
+ }
+
+} // namespace gpstk
+
diff --git a/dev/src/Triple.hpp b/dev/src/Triple.hpp
new file mode 100644
index 0000000..09d7aa5
--- /dev/null
+++ b/dev/src/Triple.hpp
@@ -0,0 +1,224 @@
+#pragma ident "$Id$"
+
+/**
+ * @file Triple.hpp
+ * Three element double vectors, for use with geodetic coordinates
+ */
+
+#ifndef GPSTK_TRIPLE_HPP
+#define GPSTK_TRIPLE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <valarray>
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /// Thrown when a gpstk::Triple operation can't be completed.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(GeometryException, gpstk::Exception);
+
+ /**
+ * Three-dimensional vectors. This class provides mathematical
+ * functions for 3D vectors, including some functions specific
+ * to orbital tracking.
+ */
+ class Triple
+ {
+ public:
+ /// Default constructor, initialize as triple.
+ Triple();
+
+ /// Copy constructor.
+ Triple(const Triple& right);
+
+ /// Construct from three doubles.
+ Triple(double a,
+ double b,
+ double c);
+
+ /// Destructor
+ virtual ~Triple() {}
+
+ /// Assignment operator.
+ Triple& operator=(const Triple& right);
+
+ /** Assign from valarray.
+ * @throw GeometryException if right.size() != 3.
+ */
+ Triple& operator=(const std::valarray<double>& right)
+ throw(GeometryException);
+
+ /**
+ * Computes the Dot Product of two vectors
+ * @param right vector to compute dot product with.
+ * @return The dot product of \c this and \c right
+ */
+ double dot(const Triple& right) const
+ throw();
+
+ /**
+ * Computes the Cross Product of two vectors
+ * @param right vector to compute cross product with
+ * @return The cross product of \c v1 and \c v2
+ */
+ Triple cross(const Triple& right) const
+ throw();
+
+ /**
+ * Computes the Magnigude of this vector
+ */
+ double mag() const
+ throw();
+
+ /**
+ * Returns the unit vector of this vector
+ */
+ Triple unitVector() const
+ throw(GeometryException);
+
+ /**
+ * Computes the Cosine of the Angle Between this vector and another.
+ * @param right the other vector
+ * @return The cosine of the angle between \c this and \c right
+ */
+ double cosVector(const Triple& right) const
+ throw(GeometryException);
+
+ /**
+ * Computes the slant range between this vector and another
+ * @param right A Vector
+ * @return The slant range between \c this and \c right
+ */
+ double slantRange(const Triple& right) const
+ throw();
+
+ /**
+ * Computes the elevation of a point with respect to this
+ * point.
+ * @param right The second point
+ * @return The elevation of \c right relative to \c this
+ */
+ double elvAngle(const Triple& right) const
+ throw(GeometryException);
+
+ /**
+ * Computes an azimuth from this point.
+ * @param right The position to determine azimuth of.
+ * @return The azimuth of \c right relative to \c this
+ */
+ double azAngle(const Triple& right) const
+ throw(GeometryException);
+
+ /**
+ * Return a reference to the element at /a index.
+ * @param index the index of the element to return.
+ * @return the reference to the requested element.
+ */
+ double& operator[](const size_t index)
+ { return theArray[index]; }
+
+ /**
+ * Return the value of the element at /a index.
+ * @param index the index of the element to return.
+ * @return the value of the element at /a index.
+ */
+ double operator[](const size_t index) const
+ { return theArray[index]; }
+
+
+ /**
+ * Equality Operator.
+ * @param right the Triple to test equality against
+ * @return true if left is equal to right
+ */
+ bool operator== (const Triple& right) const ;
+
+
+ /**
+ * Difference Operator.
+ * @param right the Triple to subtract from this object
+ * @return a Triple containing the difference between *this and right
+ */
+ Triple operator-(const Triple& right) const ;
+
+ /**
+ * Sum Operator.
+ * @param right the Triple to add to this object
+ * @return a Triple containing the sum of *this and right
+ */
+ Triple operator+(const Triple& right) const ;
+
+ /**
+ * Multiplication Operator.
+ * @scale the scale by which to multiply a Triple
+ * @theTriple the Triple to scale
+ * @return a Triple containing the scaled result
+ */
+ friend Triple operator*(double right, const Triple& rhs);
+
+ /// Return the size of this object.
+ size_t size(void) const
+ { return theArray.size(); }
+
+ /**
+ * Output operator for dvec
+ * @param s output stream to which \c v is sent
+ * @param v dvec that is sent to \c s
+ */
+ friend std::ostream& operator<<(std::ostream& s,
+ const gpstk::Triple& v);
+
+ std::valarray<double> theArray;
+
+ }; // class Triple
+
+ //@}
+
+} // namespace gpstk
+
+
+#endif
diff --git a/dev/src/TropModel.cpp b/dev/src/TropModel.cpp
new file mode 100644
index 0000000..f7aff94
--- /dev/null
+++ b/dev/src/TropModel.cpp
@@ -0,0 +1,2171 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file TropModel.cpp
+ * Base class for tropospheric models, plus implementations of several
+ * published models
+ */
+
+#include "TropModel.hpp"
+#include "EphemerisRange.hpp" // for Elevation()
+#include "MathBase.hpp" // SQRT
+#include "geometry.hpp" // DEG_TO_RAD
+#include "GPSGeoid.hpp" // geoid.a() = R earth
+#include "icd_200_constants.hpp" // TWO_PI
+#include "Geodetic.hpp"
+#include "ECEF.hpp"
+
+namespace gpstk
+{
+ // for temperature conversion from Celcius to Kelvin
+ static const double CELSIUS_TO_KELVIN = 273.15;
+
+ // Compute and return the full tropospheric delay. Typically call
+ // setWeather(T,P,H) before making this call.
+ // @param elevation Elevation of satellite as seen at receiver, in degrees
+ double TropModel::correction(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ if(elevation < 0.0)
+ return 0.0;
+
+ return (dry_zenith_delay() * dry_mapping_function(elevation)
+ + wet_zenith_delay() * wet_mapping_function(elevation));
+
+ } // end TropModel::correction(elevation)
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag may
+ // vary; it computes the elevation (and other receiver location information)
+ // and passes them to appropriate set...() routines and the
+ // correction(elevation) routine.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param tt Time tag of the signal
+ double TropModel::correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ double c;
+ try
+ {
+ c = correction(RX.elevation(SV));
+ }
+ catch(InvalidTropModel& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ return c;
+ } // end TropModel::correction(RX,SV,TT)
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ void TropModel::setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ temp = T + CELSIUS_TO_KELVIN;
+ press = P;
+ humid = H;
+ if (temp < 0.0)
+ {
+ valid = false;
+ GPSTK_THROW(InvalidParameter("Invalid temperature parameter."));
+ }
+ if (press < 0.0)
+ {
+ valid = false;
+ GPSTK_THROW(InvalidParameter("Invalid pressure parameter."));
+ }
+ if (humid < 0.0 || humid > 100.0)
+ {
+ valid = false;
+ GPSTK_THROW(InvalidParameter("Invalid humidity parameter."));
+ }
+ } // end TropModel::setWeather(T,P,H)
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param wx the weather to use for this correction
+ void TropModel::setWeather(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ if (wx.isAllValid())
+ {
+ try
+ {
+ setWeather(wx.temperature, wx.pressure, wx.humidity);
+ valid = true;
+ }
+ catch(InvalidParameter& e)
+ {
+ valid = false;
+ GPSTK_RETHROW(e);
+ }
+ }
+ else
+ {
+ valid = false;
+ GPSTK_THROW(InvalidParameter("Invalid weather data"));
+ }
+ }
+
+ // -------------------------------------------------------------------------------
+ // Simple Black model. This has been used as the 'default' for many years.
+
+ // Default constructor
+ SimpleTropModel::SimpleTropModel(void)
+ {
+ setWeather(20.0, 980.0, 50.0);
+ Cwetdelay = 0.122382715318184;
+ Cdrydelay = 2.235486646978727;
+ Cwetmap = 1.000282213715744;
+ Cdrymap = 1.001012704615527;
+ valid = true;
+ }
+
+ // Creates a trop model from a weather observation
+ // @param wx the weather to use for this correction.
+ SimpleTropModel::SimpleTropModel(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ setWeather(wx);
+ valid = true;
+ }
+
+ // Create a tropospheric model from explicit weather data
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ SimpleTropModel::SimpleTropModel(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ setWeather(T,P,H);
+ valid = true;
+ }
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ void SimpleTropModel::setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ TropModel::setWeather(T,P,H);
+ GPSGeoid geoid;
+ Cdrydelay = 2.343*(press/1013.25)*(temp-3.96)/temp;
+ double tks = temp * temp;
+ Cwetdelay = 8.952/tks*humid*std::exp(-37.2465+0.213166*temp-(0.256908e-3)*tks);
+ Cdrymap =1.0+(0.15)*148.98*(temp-3.96)/geoid.a();
+ Cwetmap =1.0+(0.15)*12000.0/geoid.a();
+ valid = true;
+ } // end SimpleTropModel::setWeather(T,P,H)
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param wx the weather to use for this correction
+ void SimpleTropModel::setWeather(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ TropModel::setWeather(wx);
+ }
+
+ // Compute and return the zenith delay for dry component of the troposphere
+ double SimpleTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ return Cdrydelay;
+ }
+
+ // Compute and return the zenith delay for wet component of the troposphere
+ double SimpleTropModel::wet_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ return Cwetdelay;
+ }
+
+ // Compute and return the mapping function for dry component
+ // of the troposphere
+ // @param elevation is the Elevation of satellite as seen at receiver,
+ // in degrees
+ double SimpleTropModel::dry_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ if(elevation < 0.0) return 0.0;
+
+ double d = std::cos(elevation*DEG_TO_RAD);
+ d /= Cdrymap;
+ return (1.0/SQRT(1.0-d*d));
+ }
+
+ // Compute and return the mapping function for wet component
+ // of the troposphere
+ // @param elevation is the Elevation of satellite as seen at receiver,
+ // in degrees
+ double SimpleTropModel::wet_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ if(elevation < 0.0) return 0.0;
+
+ double d = std::cos(elevation*DEG_TO_RAD);
+ d /= Cwetmap;
+ return (1.0/SQRT(1.0-d*d));
+ }
+
+ // -------------------------------------------------------------------------------
+ // Tropospheric model based on Goad and Goodman(1974),
+ // "A Modified Hopfield Tropospheric Refraction Correction Model," Paper
+ // presented at the Fall Annual Meeting of the American Geophysical Union,
+ // San Francisco, December 1974.
+ // See Leick, "GPS Satellite Surveying," Wiley, NY, 1990, Chapter 9,
+ // particularly Table 9.1.
+ // -------------------------------------------------------------------------------
+
+ static const double GGdryscale = 8594.777388436570600;
+ static const double GGwetscale = 2540.042008403690900;
+
+ // Default constructor
+ GGTropModel::GGTropModel(void)
+ {
+ TropModel::setWeather(20.0, 980.0, 50.0);
+ Cdrydelay = 2.59629761092150147e-4; // zenith delay, dry
+ Cwetdelay = 4.9982784999977412e-5; // zenith delay, wet
+ Cdrymap = 42973.886942182834900; // height for mapping, dry
+ Cwetmap = 12700.210042018454260; // height for mapping, wet
+ valid = true;
+ } // end GGTropModel::GGTropModel()
+
+ // Creates a trop model from a weather observation
+ // @param wx the weather to use for this correction.
+ GGTropModel::GGTropModel(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ setWeather(wx);
+ valid = true;
+ } // end GGTropModel::GGTropModel(weather)
+
+ // Create a tropospheric model from explicit weather data
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ GGTropModel::GGTropModel(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ setWeather(T,P,H);
+ valid = true;
+ } // end GGTropModel::GGTropModel()
+
+ double GGTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ return (Cdrydelay * GGdryscale);
+ } // end GGTropModel::dry_zenith_delay()
+
+ double GGTropModel::wet_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ return (Cwetdelay * GGwetscale);
+ } // end GGTropModel::wet_zenith_delay()
+
+ double GGTropModel::dry_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ if(elevation < 0.0) return 0.0;
+
+ GPSGeoid geoid;
+ double ce=std::cos(elevation*DEG_TO_RAD), se=std::sin(elevation*DEG_TO_RAD);
+ double ad = -se/Cdrymap;
+ double bd = -ce*ce/(2.0*geoid.a()*Cdrymap);
+ double Rd = SQRT((geoid.a()+Cdrymap)*(geoid.a()+Cdrymap)
+ - geoid.a()*geoid.a()*ce*ce) - geoid.a()*se;
+
+ double Ad[9], ad2=ad*ad, bd2=bd*bd;
+ Ad[0] = 1.0;
+ Ad[1] = 4.0*ad;
+ Ad[2] = 6.0*ad2 + 4.0*bd;
+ Ad[3] = 4.0*ad*(ad2+3.0*bd);
+ Ad[4] = ad2*ad2 + 12.0*ad2*bd + 6.0*bd2;
+ Ad[5] = 4.0*ad*bd*(ad2+3.0*bd);
+ Ad[6] = bd2*(6.0*ad2+4.0*bd);
+ Ad[7] = 4.0*ad*bd*bd2;
+ Ad[8] = bd2*bd2;
+
+ // compute dry component of the mapping function
+ double sumd=0.0;
+ for(int j=9; j>=1; j--) {
+ sumd += Ad[j-1]/double(j);
+ sumd *= Rd;
+ }
+ return sumd/GGdryscale;
+
+ } // end GGTropModel::dry_mapping_function(elev)
+
+ // compute wet component of the mapping function
+ double GGTropModel::wet_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ GPSTK_THROW(InvalidTropModel("Invalid model"));
+
+ if(elevation < 0.0) return 0.0;
+
+ GPSGeoid geoid;
+ double ce = std::cos(elevation*DEG_TO_RAD), se = std::sin(elevation*DEG_TO_RAD);
+ double aw = -se/Cwetmap;
+ double bw = -ce*ce/(2.0*geoid.a()*Cwetmap);
+ double Rw = SQRT((geoid.a()+Cwetmap)*(geoid.a()+Cwetmap)
+ - geoid.a()*geoid.a()*ce*ce) - geoid.a()*se;
+
+ double Aw[9], aw2=aw*aw, bw2=bw*bw;
+ Aw[0] = 1.0;
+ Aw[1] = 4.0*aw;
+ Aw[2] = 6.0*aw2 + 4.0*bw;
+ Aw[3] = 4.0*aw*(aw2+3.0*bw);
+ Aw[4] = aw2*aw2 + 12.0*aw2*bw + 6.0*bw2;
+ Aw[5] = 4.0*aw*bw*(aw2+3.0*bw);
+ Aw[6] = bw2*(6.0*aw2+4.0*bw);
+ Aw[7] = 4.0*aw*bw*bw2;
+ Aw[8] = bw2*bw2;
+
+ double sumw=0.0;
+ for(int j=9; j>=1; j--) {
+ sumw += Aw[j-1]/double(j);
+ sumw *= Rw;
+ }
+ return sumw/GGwetscale;
+
+ } // end GGTropModel::wet_mapping_function(elev)
+
+ void GGTropModel::setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ TropModel::setWeather(T,P,H);
+ double th=300./temp;
+ // water vapor partial pressure (mb)
+ // this comes from Leick and is not good.
+ // double wvpp=6.108*(RHum*0.01)*exp((17.15*Tk-4684.0)/(Tk-38.45));
+ double wvpp=2.409e9*humid*th*th*th*th*std::exp(-22.64*th);
+ Cdrydelay = 7.7624e-5*press/temp;
+ Cwetdelay = 1.0e-6*(-12.92+3.719e+05/temp)*(wvpp/temp);
+ Cdrymap = (5.0*0.002277*press)/Cdrydelay;
+ Cwetmap = (5.0*0.002277/Cwetdelay)*(1255.0/temp+0.5)*wvpp;
+ valid = true;
+ } // end GGTropModel::setWeather(T,P,H)
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param wx the weather to use for this correction
+ void GGTropModel::setWeather(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ TropModel::setWeather(wx);
+ }
+
+ // -------------------------------------------------------------------------------
+ // Tropospheric model with heights based on Goad and Goodman(1974),
+ // "A Modified Hopfield Tropospheric Refraction Correction Model," Paper
+ // presented at the Fall Annual Meeting of the American Geophysical Union,
+ // San Francisco, December 1974.
+ // (Not the same as GGTropModel because this has height dependence,
+ // and the computation of this model does not break cleanly into
+ // wet and dry components.)
+
+ // Default constructor
+ GGHeightTropModel::GGHeightTropModel(void)
+ {
+ validWeather = false; //setWeather(20.0,980.0,50.0);
+ validHeights = false; //setHeights(0.0,0.0,0.0);
+ validRxHeight = false;
+ }
+
+ // Creates a trop model from a weather observation
+ // @param wx the weather to use for this correction.
+ GGHeightTropModel::GGHeightTropModel(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ valid = validRxHeight = validHeights = false;
+ setWeather(wx);
+ }
+
+ // Create a tropospheric model from explicit weather data
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ GGHeightTropModel::GGHeightTropModel(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ validRxHeight = validHeights = false;
+ setWeather(T,P,H);
+ }
+
+ // Create a valid model from explicit input.
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ // @param hT height at which temperature applies in meters.
+ // @param hP height at which atmospheric pressure applies in meters.
+ // @param hH height at which relative humidity applies in meters.
+ GGHeightTropModel::GGHeightTropModel(const double& T,
+ const double& P,
+ const double& H,
+ const double hT,
+ const double hP,
+ const double hH)
+ throw(InvalidParameter)
+ {
+ validRxHeight = false;
+ setWeather(T,P,H);
+ setHeights(hT,hP,hH);
+ }
+
+ // re-define this to get the throws
+ double GGHeightTropModel::correction(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Weather"));
+ if(!validHeights)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Heights"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Rx Height"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ return (dry_zenith_delay() * dry_mapping_function(elevation)
+ + wet_zenith_delay() * wet_mapping_function(elevation));
+
+ } // end GGHeightTropModel::correction(elevation)
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag
+ // may vary; it computes the elevation (and other receiver location
+ // information) and passes them to appropriate set...() routines and
+ // the correction(elevation) routine.
+ // @param RX Receiver position
+ // @param SV Satellite position
+ // @param tt Time tag of the signal
+ double GGHeightTropModel::correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid)
+ {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Weather"));
+ if(!validHeights)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Heights"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Rx Height"));
+ }
+
+ // compute height from RX
+ setReceiverHeight(RX.getHeight());
+
+ return TropModel::correction(RX.elevation(SV));
+
+ } // end GGHeightTropModel::correction(RX,SV,TT)
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag
+ // may vary; it computes the elevation (and other receiver location
+ // information) and passes them to appropriate set...() routines and
+ // the correction(elevation) routine.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param tt Time tag of the signal
+ // This function is deprecated; use the Position version
+ double GGHeightTropModel::correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ Position R(RX),S(SV);
+ return GGHeightTropModel::correction(R,S,tt);
+ }
+
+ // Compute and return the zenith delay for dry component of the troposphere
+ double GGHeightTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Weather"));
+ if(!validHeights)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Heights"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Rx Height"));
+ }
+ double hrate=6.5e-3;
+ double Ts=temp+hrate*height;
+ double em=978.77/(2.8704e4*hrate);
+ double Tp=Ts-hrate*hpress;
+ double ps=press*std::pow(Ts/Tp,em)/1000.0;
+ double rs=77.624e-3/Ts;
+ double ho=11.385/rs;
+ rs *= ps;
+ double zen=(ho-height)/ho;
+ zen = rs*zen*zen*zen*zen;
+ // normalize
+ zen *= (ho-height)/5;
+ return zen;
+
+ } // end GGHeightTropModel::dry_zenith_delay()
+
+ // Compute and return the zenith delay for wet component of the troposphere
+ double GGHeightTropModel::wet_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Weather"));
+ if(!validHeights)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Heights"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Rx Height"));
+ }
+ double hrate=6.5e-3; // deg K / m
+ double Th=temp-273.15-hrate*(hhumid-htemp);
+ double Ta=7.5*Th/(237.3+Th);
+ // water vapor partial pressure
+ double e0=6.11e-5*humid*std::pow(10.0,Ta);
+ double Ts=temp+hrate*htemp;
+ double em=978.77/(2.8704e4*hrate);
+ double Tk=Ts-hrate*hhumid;
+ double es=e0*std::pow(Ts/Tk,4.0*em);
+ double rs=(371900.0e-3/Ts-12.92e-3)/Ts;
+ double ho=11.385*(1255/Ts+0.05)/rs;
+ double zen=(ho-height)/ho;
+ zen = rs*es*zen*zen*zen*zen;
+ //normalize
+ zen *= (ho-height)/5;
+ return zen;
+
+ } // end GGHeightTropModel::wet_zenith_delay()
+
+ // Compute and return the mapping function for dry component
+ // of the troposphere
+ // @param elevation Elevation of satellite as seen at receiver,
+ // in degrees
+ double GGHeightTropModel::dry_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Weather"));
+ if(!validHeights)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Heights"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Rx Height"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ double hrate=6.5e-3;
+ double Ts=temp+hrate*htemp;
+ double ho=(11.385/77.624e-3)*Ts;
+ double se=std::sin(elevation*DEG_TO_RAD);
+ if(se < 0.0) se=0.0;
+
+ GPSGeoid geoid;
+ double rt,a,b,rn[8],al[8],er=geoid.a();
+ rt = (er+ho)/(er+height);
+ rt = rt*rt - (1.0-se*se);
+ if(rt < 0) rt=0.0;
+ rt = (er+height)*(SQRT(rt)-se);
+ a = -se/(ho-height);
+ b = -(1.0-se*se)/(2.0*er*(ho-height));
+ rn[0] = rt*rt;
+ for(int j=1; j<8; j++) rn[j]=rn[j-1]*rt;
+ al[0] = 2*a;
+ al[1] = 2*a*a+4*b/3;
+ al[2] = a*(a*a+3*b);
+ al[3] = a*a*a*a/5+2.4*a*a*b+1.2*b*b;
+ al[4] = 2*a*b*(a*a+3*b)/3;
+ al[5] = b*b*(6*a*a+4*b)*0.1428571;
+ if(b*b > 1.0e-35) {
+ al[6] = a*b*b*b/2;
+ al[7] = b*b*b*b/9;
+ } else {
+ al[6] = 0.0;
+ al[7] = 0.0;
+ }
+ double map=rt;
+ for(int k=0; k<8; k++) map += al[k]*rn[k];
+ // normalize
+ double norm=(ho-height)/5;
+ return map/norm;
+
+ } // end GGHeightTropModel::dry_mapping_function(elevation)
+
+ // Compute and return the mapping function for wet component
+ // of the troposphere
+ // @param elevation Elevation of satellite as seen at receiver,
+ // in degrees
+ double GGHeightTropModel::wet_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Weather"));
+ if(!validHeights)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Heights"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid GGH trop model: Rx Height"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ double hrate=6.5e-3;
+ double Ts=temp+hrate*htemp;
+ double rs=(371900.0e-3/Ts-12.92e-3)/Ts;
+ double ho=11.385*(1255/Ts+0.05)/rs;
+ double se=std::sin(elevation*DEG_TO_RAD);
+ if(se < 0.0) se=0.0;
+
+ GPSGeoid geoid;
+ double rt,a,b,rn[8],al[8],er=geoid.a();
+ rt = (er+ho)/(er+height);
+ rt = rt*rt - (1.0-se*se);
+ if(rt < 0) rt=0.0;
+ rt = (er+height)*(SQRT(rt)-se);
+ a = -se/(ho-height);
+ b = -(1.0-se*se)/(2.0*er*(ho-height));
+ rn[0] = rt*rt;
+ for(int i=1; i<8; i++) rn[i]=rn[i-1]*rt;
+ al[0] = 2*a;
+ al[1] = 2*a*a+4*b/3;
+ al[2] = a*(a*a+3*b);
+ al[3] = a*a*a*a/5+2.4*a*a*b+1.2*b*b;
+ al[4] = 2*a*b*(a*a+3*b)/3;
+ al[5] = b*b*(6*a*a+4*b)*0.1428571;
+ if(b*b > 1.0e-35) {
+ al[6] = a*b*b*b/2;
+ al[7] = b*b*b*b/9;
+ } else {
+ al[6] = 0.0;
+ al[7] = 0.0;
+ }
+ double map=rt;
+ for(int j=0; j<8; j++) map += al[j]*rn[j];
+ // normalize map function
+ double norm=(ho-height)/5;
+ return map/norm;
+
+ } // end GGHeightTropModel::wet_mapping_function(elevation)
+
+ // Re-define the weather data.
+ // Typically called just before correction().
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ void GGHeightTropModel::setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ try
+ {
+ TropModel::setWeather(T,P,H);
+ validWeather = true;
+ valid = validWeather && validHeights && validRxHeight;
+ }
+ catch(InvalidParameter& e)
+ {
+ valid = validWeather = false;
+ GPSTK_RETHROW(e);
+ }
+ } // end GGHeightTropModel::setWeather(T,P,H)
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param wx the weather to use for this correction
+ void GGHeightTropModel::setWeather(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ try
+ {
+ TropModel::setWeather(wx);
+ validWeather = true;
+ valid = validWeather && validHeights && validRxHeight;
+ }
+ catch(InvalidParameter& e)
+ {
+ valid = validWeather = false;
+ GPSTK_RETHROW(e);
+ }
+ }
+
+
+ // Re-define the heights at which the weather parameters apply.
+ // Typically called just before correction().
+ // @param hT height (m) at which temperature applies
+ // @param hP height (m) at which atmospheric pressure applies
+ // @param hH height (m) at which relative humidity applies
+ void GGHeightTropModel::setHeights(const double& hT,
+ const double& hP,
+ const double& hH)
+ {
+ htemp = hT; // height (m) at which temp applies
+ hpress = hP; // height (m) at which press applies
+ hhumid = hH; // height (m) at which humid applies
+ validHeights = true;
+ valid = validWeather && validHeights && validRxHeight;
+ } // end GGHeightTropModel::setHeights(hT,hP,hH)
+
+ // Define the receiver height; this required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void GGHeightTropModel::setReceiverHeight(const double& ht)
+ {
+ height = ht;
+ validRxHeight = true;
+ if(!validHeights) {
+ htemp = hpress = hhumid = ht;
+ validHeights = true;
+ }
+ valid = validWeather && validHeights && validRxHeight;
+ } // end GGHeightTropModel::setReceiverHeight(const double& ht)
+
+ // -------------------------------------------------------------------------------
+ // Tropospheric model developed by University of New Brunswick and described in
+ // "A Tropospheric Delay Model for the User of the Wide Area Augmentation
+ // System," J. Paul Collins and Richard B. Langley, Technical Report No. 187,
+ // Dept. of Geodesy and Geomatics Engineering, University of New Brunswick,
+ // 1997. See particularly Appendix C.
+ //
+ // This model includes a wet and dry component, and was designed for the user
+ // without access to measurements of temperature, pressure and relative humidity
+ // at ground level. It requires input of the latitude, day of year and height
+ // above the ellipsoid, and it interpolates a table of values, using these
+ // inputs, to get the ground level weather parameters plus other parameters and
+ // the mapping function constants.
+ //
+ // NB in this model, units of temp are degrees Celsius, and humid is the water
+ // vapor partial pressure.
+
+ static const double NBRd=287.054; // J/kg/K = m*m*K/s*s
+ static const double NBg=9.80665; // m/s*s
+ static const double NBk1=77.604; // K/mbar
+ static const double NBk3p=382000; // K*K/mbar
+
+ static const double NBLat[5]={ 15.0, 30.0, 45.0, 60.0, 75.0};
+
+ // zenith delays, averages
+ static const double NBZP0[5]={1013.25,1017.25,1015.75,1011.75,1013.00};
+ static const double NBZT0[5]={ 299.65, 294.15, 283.15, 272.15, 263.65};
+ static const double NBZW0[5]={ 26.31, 21.79, 11.66, 6.78, 4.11};
+ static const double NBZB0[5]={6.30e-3,6.05e-3,5.58e-3,5.39e-3,4.53e-3};
+ static const double NBZL0[5]={ 2.77, 3.15, 2.57, 1.81, 1.55};
+
+ // zenith delays, amplitudes
+ static const double NBZPa[5]={ 0.0, -3.75, -2.25, -1.75, -0.50};
+ static const double NBZTa[5]={ 0.0, 7.0, 11.0, 15.0, 14.5};
+ static const double NBZWa[5]={ 0.0, 8.85, 7.24, 5.36, 3.39};
+ static const double NBZBa[5]={ 0.0,0.25e-3,0.32e-3,0.81e-3,0.62e-3};
+ static const double NBZLa[5]={ 0.0, 0.33, 0.46, 0.74, 0.30};
+
+ // mapping function, dry, averages
+ static const double NBMad[5]={1.2769934e-3,1.2683230e-3,1.2465397e-3,1.2196049e-3,
+ 1.2045996e-3};
+ static const double NBMbd[5]={2.9153695e-3,2.9152299e-3,2.9288445e-3,2.9022565e-3,
+ 2.9024912e-3};
+ static const double NBMcd[5]={62.610505e-3,62.837393e-3,63.721774e-3,63.824265e-3,
+ 64.258455e-3};
+
+ // mapping function, dry, amplitudes
+ static const double NBMaa[5]={0.0,1.2709626e-5,2.6523662e-5,3.4000452e-5,
+ 4.1202191e-5};
+ static const double NBMba[5]={0.0,2.1414979e-5,3.0160779e-5,7.2562722e-5,
+ 11.723375e-5};
+ static const double NBMca[5]={0.0,9.0128400e-5,4.3497037e-5,84.795348e-5,
+ 170.37206e-5};
+
+ // mapping function, wet, averages (there are no amplitudes for wet)
+ static const double NBMaw[5]={5.8021897e-4,5.6794847e-4,5.8118019e-4,5.9727542e-4,
+ 6.1641693e-4};
+ static const double NBMbw[5]={1.4275268e-3,1.5138625e-3,1.4572752e-3,1.5007428e-3,
+ 1.7599082e-3};
+ static const double NBMcw[5]={4.3472961e-2,4.6729510e-2,4.3908931e-2,4.4626982e-2,
+ 5.4736038e-2};
+
+ // labels for use with the interpolation routine
+ enum TableEntry { ZP=1, ZT, ZW, ZB, ZL, Mad, Mbd, Mcd, Maw, Mbw, Mcw };
+
+ // the interpolation routine
+ static double NB_Interpolate(double lat, int doy, TableEntry entry)
+ {
+ const double *pave, *pamp;
+ double ret, day=double(doy);
+
+ // assign pointer to the right array
+ switch(entry) {
+ case ZP: pave=&NBZP0[0]; pamp=&NBZPa[0]; break;
+ case ZT: pave=&NBZT0[0]; pamp=&NBZTa[0]; break;
+ case ZW: pave=&NBZW0[0]; pamp=&NBZWa[0]; break;
+ case ZB: pave=&NBZB0[0]; pamp=&NBZBa[0]; break;
+ case ZL: pave=&NBZL0[0]; pamp=&NBZLa[0]; break;
+ case Mad: pave=&NBMad[0]; pamp=&NBMaa[0]; break;
+ case Mbd: pave=&NBMbd[0]; pamp=&NBMba[0]; break;
+ case Mcd: pave=&NBMcd[0]; pamp=&NBMca[0]; break;
+ case Maw: pave=&NBMaw[0]; break;
+ case Mbw: pave=&NBMbw[0]; break;
+ case Mcw: pave=&NBMcw[0]; break;
+ }
+
+ // find the index i such that NBLat[i] <= lat < NBLat[i+1]
+ int i = int(ABS(lat)/15.0)-1;
+
+ if(i>=0 && i<=3) { // mid-latitude -> regular interpolation
+ double m=(ABS(lat)-NBLat[i])/(NBLat[i+1]-NBLat[i]);
+ ret = pave[i]+m*(pave[i+1]-pave[i]);
+ if(entry < Maw)
+ ret -= (pamp[i]+m*(pamp[i+1]-pamp[i]))
+ * std::cos(TWO_PI*(day-28.0)/365.25);
+ }
+ else { // < 15 or > 75 -> simpler interpolation
+ if(i<0) i=0; else i=4;
+ ret = pave[i];
+ if(entry < Maw)
+ ret -= pamp[i]*std::cos(TWO_PI*(day-28.0)/365.25);
+ }
+
+ return ret;
+
+ } // end double NB_Interpolate(lat,doy,entry)
+
+ // Default constructor
+ NBTropModel::NBTropModel(void)
+ {
+ validWeather = false;
+ validRxLatitude = false;
+ validDOY = false;
+ validRxHeight = false;
+ } // end NBTropModel::NBTropModel()
+
+ // Create a trop model using the minimum information: latitude and doy.
+ // Interpolate the weather unless setWeather (optional) is called.
+ // @param lat Latitude of the receiver in degrees.
+ // @param day Day of year.
+ NBTropModel::NBTropModel(const double& lat,
+ const int& day)
+ {
+ validRxHeight = false;
+ setReceiverLatitude(lat);
+ setDayOfYear(day);
+ setWeather();
+ } // end NBTropModel::NBTropModel(lat, day);
+
+ // Create a trop model with weather.
+ // @param lat Latitude of the receiver in degrees.
+ // @param day Day of year.
+ // @param wx the weather to use for this correction.
+ NBTropModel::NBTropModel(const double& lat,
+ const int& day,
+ const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ validRxHeight = false;
+ setReceiverLatitude(lat);
+ setDayOfYear(day);
+ setWeather(wx);
+ } // end NBTropModel::NBTropModel(weather)
+
+ // Create a tropospheric model from explicit weather data
+ // @param lat Latitude of the receiver in degrees.
+ // @param day Day of year.
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ NBTropModel::NBTropModel(const double& lat,
+ const int& day,
+ const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ validRxHeight = false;
+ setReceiverLatitude(lat);
+ setDayOfYear(day);
+ setWeather(T,P,H);
+ } // end NBTropModel::NBTropModel()
+
+ // Create a valid model from explicit input (weather will be estimated
+ // internally by this model).
+ // @param ht Height of the receiver in meters.
+ // @param lat Latitude of the receiver in degrees.
+ // @param d Day of year.
+ NBTropModel::NBTropModel(const double& ht,
+ const double& lat,
+ const int& day)
+ {
+ setReceiverHeight(ht);
+ setReceiverLatitude(lat);
+ setDayOfYear(day);
+ setWeather();
+ }
+
+ // re-define this to get the throws
+ double NBTropModel::correction(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: weather"));
+ if(!validRxLatitude)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Latitude"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Height"));
+ if(!validDOY)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: day of year"));
+ }
+
+ if(elevation < 0.0) return 0.0;
+
+ return (dry_zenith_delay() * dry_mapping_function(elevation)
+ + wet_zenith_delay() * wet_mapping_function(elevation));
+ } // end NBTropModel::correction(elevation)
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag
+ // may vary; it computes the elevation (and other receiver location
+ // information) and passes them to appropriate set...() routines
+ // and the correction(elevation) routine.
+ // @param RX Receiver position
+ // @param SV Satellite position
+ // @param tt Time tag of the signal
+ double NBTropModel::correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+
+ if(!validRxLatitude)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Latitude"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Height"));
+ if(!validDOY)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: day of year"));
+ }
+
+ // compute height and latitude from RX
+ setReceiverHeight(RX.getHeight());
+ setReceiverLatitude(RX.getGeodeticLatitude());
+
+ // compute day of year from tt
+ setDayOfYear(int(tt.DOYday()));
+
+ return TropModel::correction(RX.elevation(SV));
+
+ } // end NBTropModel::correction(RX,SV,TT)
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag
+ // may vary; it computes the elevation (and other receiver location
+ // information) and passes them to appropriate set...() routines
+ // and the correction(elevation) routine.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param tt Time tag of the signal
+ // This function is deprecated; use the Position version
+ double NBTropModel::correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ Position R(RX),S(SV);
+ return NBTropModel::correction(R,S,tt);
+ }
+
+ // Compute and return the zenith delay for dry component of the troposphere
+ double NBTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: weather"));
+ if(!validRxLatitude)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Latitude"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Height"));
+ if(!validDOY)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: day of year"));
+ }
+ double beta = NB_Interpolate(latitude,doy,ZB);
+ double gm = 9.784*(1.0-2.66e-3*std::cos(2.0*latitude*DEG_TO_RAD)-2.8e-7*height);
+
+ // scale factors for height above mean sea level
+ // if weather is given, assume it's measured at ht -> kw=kd=1
+ double kd=1, base=std::log(1.0-beta*height/temp);
+ if(interpolateWeather)
+ kd = std::exp(base*NBg/(NBRd*beta));
+
+ // compute the zenith delay for dry component
+ return ((1.0e-6*NBk1*NBRd/gm) * kd * press);
+
+ } // end NBTropModel::dry_zenith_delay()
+
+ // Compute and return the zenith delay for wet component of the troposphere
+ double NBTropModel::wet_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: weather"));
+ if(!validRxLatitude)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Latitude"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Height"));
+ if(!validDOY)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: day of year"));
+ }
+ double beta = NB_Interpolate(latitude,doy,ZB);
+ double lam = NB_Interpolate(latitude,doy,ZL);
+ double gm = 9.784*(1.0-2.66e-3*std::cos(2.0*latitude*DEG_TO_RAD)-2.8e-7*height);
+
+ // scale factors for height above mean sea level
+ // if weather is given, assume it's measured at ht -> kw=kd=1
+ double kw=1, base=std::log(1.0-beta*height/temp);
+ if(interpolateWeather)
+ kw = std::exp(base*(-1.0+(lam+1)*NBg/(NBRd*beta)));
+
+ // compute the zenith delay for wet component
+ return ((1.0e-6*NBk3p*NBRd/(gm*(lam+1)-beta*NBRd)) * kw * humid/temp);
+
+ } // end NBTropModel::wet_zenith_delay()
+
+ // Compute and return the mapping function for dry component
+ // of the troposphere
+ // @param elevation Elevation of satellite as seen at receiver,
+ // in degrees
+ double NBTropModel::dry_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: weather"));
+ if(!validRxLatitude)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Latitude"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Height"));
+ if(!validDOY)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: day of year"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ double a,b,c,se,map;
+ se = std::sin(elevation*DEG_TO_RAD);
+
+ a = NB_Interpolate(latitude,doy,Mad);
+ b = NB_Interpolate(latitude,doy,Mbd);
+ c = NB_Interpolate(latitude,doy,Mcd);
+ map = (1.0+a/(1.0+b/(1.0+c))) / (se+a/(se+b/(se+c)));
+
+ a = 2.53e-5;
+ b = 5.49e-3;
+ c = 1.14e-3;
+ if(ABS(elevation)<=0.001) se=0.001;
+ map += ((1.0/se)-(1.0+a/(1.0+b/(1.0+c)))/(se+a/(se+b/(se+c))))*height/1000.0;
+
+ return map;
+
+ } // end NBTropModel::dry_mapping_function()
+
+ // Compute and return the mapping function for wet component
+ // of the troposphere
+ // @param elevation Elevation of satellite as seen at receiver,
+ // in degrees
+ double NBTropModel::wet_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: weather"));
+ if(!validRxLatitude)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Latitude"));
+ if(!validRxHeight)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: Rx Height"));
+ if(!validDOY)
+ GPSTK_THROW(InvalidTropModel("Invalid NB trop model: day of year"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ double a,b,c,se;
+ se = std::sin(elevation*DEG_TO_RAD);
+ a = NB_Interpolate(latitude,doy,Maw);
+ b = NB_Interpolate(latitude,doy,Mbw);
+ c = NB_Interpolate(latitude,doy,Mcw);
+
+ return ( (1.0+a/(1.0+b/(1.0+c))) / (se+a/(se+b/(se+c))) );
+
+ } // end NBTropModel::wet_mapping_function()
+
+ // Re-define the weather data.
+ // If called, typically called before any calls to correction().
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ void NBTropModel::setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ interpolateWeather=false;
+ TropModel::setWeather(T,P,H);
+ // humid actually stores water vapor partial pressure
+ double th=300./temp;
+ humid = 2.409e9*H*th*th*th*th*std::exp(-22.64*th);
+ validWeather = true;
+ valid = validWeather && validRxHeight && validRxLatitude && validDOY;
+
+ } // end NBTropModel::setWeather()
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param wx the weather to use for this correction
+ void NBTropModel::setWeather(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ interpolateWeather = false;
+ try
+ {
+ TropModel::setWeather(wx);
+ // humid actually stores vapor partial pressure
+ double th=300./temp;
+ humid = 2.409e9*humid*th*th*th*th*std::exp(-22.64*th);
+ validWeather = true;
+ valid = validWeather && validRxHeight && validRxLatitude && validDOY;
+ }
+ catch(InvalidParameter& e)
+ {
+ valid = validWeather = false;
+ GPSTK_RETHROW(e);
+ }
+ }
+
+ // configure the model to estimate the weather from the internal model,
+ // using lat and doy
+ void NBTropModel::setWeather()
+ throw(TropModel::InvalidTropModel)
+ {
+ interpolateWeather = true;
+ if(!validRxLatitude)
+ {
+ valid = validWeather = false;
+ GPSTK_THROW(InvalidTropModel(
+ "NBTropModel must have Rx latitude before interpolating weather"));
+ }
+ if(!validDOY)
+ {
+ valid = validWeather = false;
+ GPSTK_THROW(InvalidTropModel(
+ "NBTropModel must have day of year before interpolating weather"));
+ }
+ temp = NB_Interpolate(latitude,doy,ZT);
+ press = NB_Interpolate(latitude,doy,ZP);
+ humid = NB_Interpolate(latitude,doy,ZW);
+ validWeather = true;
+ valid = validWeather && validRxHeight && validRxLatitude && validDOY;
+ }
+
+ // Define the receiver height; this required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void NBTropModel::setReceiverHeight(const double& ht)
+ {
+ height = ht;
+ validRxHeight = true;
+ valid = validWeather && validRxHeight && validRxLatitude && validDOY;
+ if(!validWeather && validRxLatitude && validDOY)
+ setWeather();
+ } // end NBTropModel::setReceiverHeight()
+
+ // Define the latitude of the receiver; this is required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void NBTropModel::setReceiverLatitude(const double& lat)
+ {
+ latitude = lat;
+ validRxLatitude = true;
+ valid = validWeather && validRxHeight && validRxLatitude && validDOY;
+ if(!validWeather && validRxLatitude && validDOY)
+ setWeather();
+ } // end NBTropModel::setReceiverLatitude(lat)
+
+ // Define the day of year; this is required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void NBTropModel::setDayOfYear(const int& d)
+ {
+ doy = d;
+ if(doy > 0 && doy < 367) validDOY=true; else validDOY = false;
+ valid = validWeather && validRxHeight && validRxLatitude && validDOY;
+ if(!validWeather && validRxLatitude && validDOY)
+ setWeather();
+ } // end NBTropModel::setDayOfYear(doy)
+
+ // -------------------------------------------------------------------------------
+ // Saastamoinen tropospheric model based on Saastamoinen, J., 'Atmospheric
+ // Correction for the Troposphere and Stratosphere in Radio Ranging of
+ // Satellites,' Geophysical Monograph 15, American Geophysical Union, 1972,
+ // and Ch. 9 of McCarthy, D. and Petit, G., IERS Conventions (2003), IERS
+ // Technical Note 32, IERS, 2004. The mapping functions are from
+ // Neill, A.E., 1996, 'Global Mapping Functions for the Atmosphere Delay of
+ // Radio Wavelengths,' J. Geophys. Res., 101, pp. 3227-3246 (also see IERS TN 32).
+ //
+ // This model includes a wet and dry component, and requires input of the
+ // geodetic latitude, day of year and height above the ellipsoid of the receiver.
+ //
+ // Usually, the caller will set the latitude and day of year at the same
+ // time the weather is set
+ // SaasTropModel stm;
+ // stm.setReceiverLatitude(lat);
+ // stm.setDayOfYear(doy);
+ // stm.setWeather(T,P,H);
+ // Then, when the correction (and/or delay and map) is computed, receiver height
+ // should be set before the call to correction(elevation):
+ // stm.setReceiverHeight(height);
+ // trop_corr = stm.correction(elevation);
+ //
+ // NB in this model, units of 'temp' are degrees Celcius and
+ // humid actually stores water vapor partial pressure in mbars
+ //
+
+ // constants for wet mapping function
+ static const double SaasWetA[5]=
+ { 0.00058021897, 0.00056794847, 0.00058118019, 0.00059727542, 0.00061641693 };
+ static const double SaasWetB[5]=
+ { 0.0014275268, 0.0015138625, 0.0014572752, 0.0015007428, 0.0017599082 };
+ static const double SaasWetC[5]=
+ { 0.043472961, 0.046729510, 0.043908931, 0.044626982, 0.054736038 };
+
+ // constants for dry mapping function
+ static const double SaasDryA[5]=
+ { 0.0012769934, 0.0012683230, 0.0012465397, 0.0012196049, 0.0012045996 };
+ static const double SaasDryB[5]=
+ { 0.0029153695, 0.0029152299, 0.0029288445, 0.0029022565, 0.0029024912 };
+ static const double SaasDryC[5]=
+ { 0.062610505, 0.062837393, 0.063721774, 0.063824265, 0.064258455 };
+
+ static const double SaasDryA1[5]=
+ { 0.0, 0.000012709626, 0.000026523662, 0.000034000452, 0.000041202191 };
+ static const double SaasDryB1[5]=
+ { 0.0, 0.000021414979, 0.000030160779, 0.000072562722, 0.00011723375 };
+ static const double SaasDryC1[5]=
+ { 0.0, 0.000090128400, 0.000043497037, 0.00084795348, 0.0017037206 };
+
+ // Default constructor
+ SaasTropModel::SaasTropModel(void)
+ {
+ validWeather = false;
+ validRxLatitude = false;
+ validDOY = false;
+ validRxHeight = false;
+ } // end SaasTropModel::SaasTropModel()
+
+ // Create a trop model using the minimum information: latitude and doy.
+ // Interpolate the weather unless setWeather (optional) is called.
+ // @param lat Latitude of the receiver in degrees.
+ // @param day Day of year.
+ SaasTropModel::SaasTropModel(const double& lat,
+ const int& day)
+ {
+ validWeather = false;
+ validRxHeight = false;
+ SaasTropModel::setReceiverLatitude(lat);
+ SaasTropModel::setDayOfYear(day);
+ } // end SaasTropModel::SaasTropModel
+
+ // Create a trop model with weather.
+ // @param lat Latitude of the receiver in degrees.
+ // @param day Day of year.
+ // @param wx the weather to use for this correction.
+ SaasTropModel::SaasTropModel(const double& lat,
+ const int& day,
+ const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ validRxHeight = false;
+ SaasTropModel::setReceiverLatitude(lat);
+ SaasTropModel::setDayOfYear(day);
+ SaasTropModel::setWeather(wx);
+ } // end SaasTropModel::SaasTropModel(weather)
+
+ // Create a tropospheric model from explicit weather data
+ // @param lat Latitude of the receiver in degrees.
+ // @param day Day of year.
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ SaasTropModel::SaasTropModel(const double& lat,
+ const int& day,
+ const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ validRxHeight = false;
+ SaasTropModel::setReceiverLatitude(lat);
+ SaasTropModel::setDayOfYear(day);
+ SaasTropModel::setWeather(T,P,H);
+ } // end SaasTropModel::SaasTropModel()
+
+ // re-define this to get the throws correct
+ double SaasTropModel::correction(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: weather"));
+ if(!validRxLatitude) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Latitude"));
+ if(!validRxHeight) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Height"));
+ if(!validDOY) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: day of year"));
+ GPSTK_THROW(
+ InvalidTropModel("Valid flag corrupted in Saastamoinen trop model"));
+ }
+
+ if(elevation < 0.0) return 0.0;
+
+ double corr=0.0;
+ try {
+ corr = (dry_zenith_delay() * dry_mapping_function(elevation)
+ + wet_zenith_delay() * wet_mapping_function(elevation));
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+
+ return corr;
+
+ } // end SaasTropModel::correction(elevation)
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag
+ // may vary; it computes the elevation (and other receiver location
+ // information) and passes them to appropriate set...() routines
+ // and the correction(elevation) routine.
+ // @param RX Receiver position
+ // @param SV Satellite position
+ // @param tt Time tag of the signal
+ double SaasTropModel::correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ SaasTropModel::setReceiverHeight(RX.getHeight());
+ SaasTropModel::setReceiverLatitude(RX.getGeodeticLatitude());
+ SaasTropModel::setDayOfYear(int(tt.DOYday()));
+
+ if(!valid) {
+ if(!validWeather) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: weather"));
+ if(!validRxLatitude) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Latitude"));
+ if(!validRxHeight) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Height"));
+ if(!validDOY) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: day of year"));
+ valid = true;
+ }
+
+ double corr=0.0;
+ try {
+ corr = SaasTropModel::correction(RX.elevation(SV));
+ }
+ catch(Exception& e) { GPSTK_RETHROW(e); }
+
+ return corr;
+
+ } // end SaasTropModel::correction(RX,SV,TT)
+
+ double SaasTropModel::correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ Position R(RX),S(SV);
+ return SaasTropModel::correction(R,S,tt);
+ }
+
+ // Compute and return the zenith delay for dry component of the troposphere
+ double SaasTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: weather"));
+ if(!validRxLatitude) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Latitude"));
+ if(!validRxHeight) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Height"));
+ if(!validDOY) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: day of year"));
+ GPSTK_THROW(
+ InvalidTropModel("Valid flag corrupted in Saastamoinen trop model"));
+ }
+
+ // correct pressure for height
+ double press_at_h =
+ press * std::pow((temp+273.16-4.5*height/1000.0)/(temp+273.16),34.1/4.5);
+ // humid is zero for the dry component
+ double delay = 0.0022768 * press_at_h
+ / (1 - 0.00266 * ::cos(2*latitude*DEG_TO_RAD) - 0.00028 * height/1000.);
+
+ return delay;
+
+ } // end SaasTropModel::dry_zenith_delay()
+
+ // Compute and return the zenith delay for wet component of the troposphere
+ double SaasTropModel::wet_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: weather"));
+ if(!validRxLatitude) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Latitude"));
+ if(!validRxHeight) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Height"));
+ if(!validDOY) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: day of year"));
+ GPSTK_THROW(
+ InvalidTropModel("Valid flag corrupted in Saastamoinen trop model"));
+ }
+
+ // press is zero for the wet component
+ double delay = 0.0022768 * humid * 1255/(temp+273.20)
+ / (1 - 0.00266 * ::cos(2*latitude*DEG_TO_RAD) - 0.00028 * height/1000.);
+
+ return delay;
+
+ } // end SaasTropModel::wet_zenith_delay()
+
+ // Compute and return the mapping function for dry component of the troposphere
+ // @param elevation Elevation of satellite as seen at receiver, in degrees
+ double SaasTropModel::dry_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: weather"));
+ if(!validRxLatitude) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Latitude"));
+ if(!validRxHeight) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Height"));
+ if(!validDOY) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: day of year"));
+ GPSTK_THROW(
+ InvalidTropModel("Valid flag corrupted in Saastamoinen trop model"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ double lat,t,ct;
+ lat = fabs(latitude); // degrees
+ t = doy - 28.; // mid-winter
+ if(latitude < 0) // southern hemisphere
+ t += 365.25/2.;
+ t *= 360.0/365.25; // convert to degrees
+ ct = ::cos(t*DEG_TO_RAD);
+
+ double a,b,c;
+ if(lat < 15.) {
+ a = SaasDryA[0];
+ b = SaasDryB[0];
+ c = SaasDryC[0];
+ }
+ else if(lat < 75.) { // coefficients are for 15,30,45,60,75 deg
+ int i=int(lat/15.0)-1;
+ double frac=(lat-15.*(i+1))/15.;
+ a = SaasDryA[i] + frac*(SaasDryA[i+1]-SaasDryA[i]);
+ b = SaasDryB[i] + frac*(SaasDryB[i+1]-SaasDryB[i]);
+ c = SaasDryC[i] + frac*(SaasDryC[i+1]-SaasDryC[i]);
+
+ a -= ct * (SaasDryA1[i] + frac*(SaasDryA1[i+1]-SaasDryA1[i]));
+ b -= ct * (SaasDryB1[i] + frac*(SaasDryB1[i+1]-SaasDryB1[i]));
+ c -= ct * (SaasDryC1[i] + frac*(SaasDryC1[i+1]-SaasDryC1[i]));
+ }
+ else {
+ a = SaasDryA[4] - ct * SaasDryA1[4];
+ b = SaasDryB[4] - ct * SaasDryB1[4];
+ c = SaasDryC[4] - ct * SaasDryC1[4];
+ }
+
+ double se = ::sin(elevation*DEG_TO_RAD);
+ double map = (1.+a/(1.+b/(1.+c)))/(se+a/(se+b/(se+c)));
+
+ a = 0.0000253;
+ b = 0.00549;
+ c = 0.00114;
+ map += (height/1000.0)*(1./se-(1+a/(1.+b/(1.+c)))/(se+a/(se+b/(se+c))));
+
+ return map;
+
+ } // end SaasTropModel::dry_mapping_function()
+
+ // Compute and return the mapping function for wet component of the troposphere
+ // @param elevation Elevation of satellite as seen at receiver, in degrees.
+ double SaasTropModel::wet_mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validWeather) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: weather"));
+ if(!validRxLatitude) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Latitude"));
+ if(!validRxHeight) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: Rx Height"));
+ if(!validDOY) GPSTK_THROW(
+ InvalidTropModel("Invalid Saastamoinen trop model: day of year"));
+ GPSTK_THROW(
+ InvalidTropModel("Valid flag corrupted in Saastamoinen trop model"));
+ }
+ if(elevation < 0.0) return 0.0;
+
+ double a,b,c,lat;
+ lat = fabs(latitude); // degrees
+ if(lat < 15.) {
+ a = SaasWetA[0];
+ b = SaasWetB[0];
+ c = SaasWetC[0];
+ }
+ else if(lat < 75.) { // coefficients are for 15,30,45,60,75 deg
+ int i=int(lat/15.0)-1;
+ double frac=(lat-15.*(i+1))/15.;
+ a = SaasWetA[i] + frac*(SaasWetA[i+1]-SaasWetA[i]);
+ b = SaasWetB[i] + frac*(SaasWetB[i+1]-SaasWetB[i]);
+ c = SaasWetC[i] + frac*(SaasWetC[i+1]-SaasWetC[i]);
+ }
+ else {
+ a = SaasWetA[4];
+ b = SaasWetB[4];
+ c = SaasWetC[4];
+ }
+
+ double se = ::sin(elevation*DEG_TO_RAD);
+ double map = (1.+a/(1.+b/(1.+c)))/(se+a/(se+b/(se+c)));
+
+ return map;
+
+ } // end SaasTropModel::wet_mapping_function()
+
+ // Re-define the weather data.
+ // If called, typically called before any calls to correction().
+ // @param T temperature in degrees Celsius
+ // @param P atmospheric pressure in millibars
+ // @param H relative humidity in percent
+ void SaasTropModel::setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter)
+ {
+ temp = T;
+ press = P;
+ // humid actually stores water vapor partial pressure
+ double exp=7.5*T/(T+237.3);
+ humid = 6.11 * (H/100.) * std::pow(10.0,exp);
+
+ validWeather = true;
+ valid = (validWeather && validRxHeight && validRxLatitude && validDOY);
+
+ } // end SaasTropModel::setWeather()
+
+ // Re-define the tropospheric model with explicit weather data.
+ // Typically called just before correction().
+ // @param wx the weather to use for this correction
+ void SaasTropModel::setWeather(const WxObservation& wx)
+ throw(InvalidParameter)
+ {
+ try
+ {
+ SaasTropModel::setWeather(wx.temperature,wx.pressure,wx.humidity);
+ }
+ catch(InvalidParameter& e)
+ {
+ valid = validWeather = false;
+ GPSTK_RETHROW(e);
+ }
+ }
+
+ // Define the receiver height; this required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void SaasTropModel::setReceiverHeight(const double& ht)
+ {
+ height = ht;
+ validRxHeight = true;
+ valid = (validWeather && validRxHeight && validRxLatitude && validDOY);
+ } // end SaasTropModel::setReceiverHeight()
+
+ // Define the latitude of the receiver; this is required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void SaasTropModel::setReceiverLatitude(const double& lat)
+ {
+ latitude = lat;
+ validRxLatitude = true;
+ valid = (validWeather && validRxHeight && validRxLatitude && validDOY);
+ } // end SaasTropModel::setReceiverLatitude(lat)
+
+ // Define the day of year; this is required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ void SaasTropModel::setDayOfYear(const int& d)
+ {
+ doy = d;
+ if(doy > 0 && doy < 367) validDOY=true; else validDOY = false;
+ valid = (validWeather && validRxHeight && validRxLatitude && validDOY);
+ } // end SaasTropModel::setDayOfYear(doy)
+
+
+ //-----------------------------------------------------------------------------
+ // GCAT model.
+
+ // Constructor to create a GCAT trop model providing the height of the receiver
+ // above mean sea level (as defined by ellipsoid model).
+ //
+ // @param ht Height of the receiver above mean sea level, in meters.
+ GCATTropModel::GCATTropModel(const double& ht)
+ {
+ setReceiverHeight(ht);
+ valid = true;
+ }
+
+
+ // Compute and return the full tropospheric delay. The receiver height must
+ // has been provided before, whether using the appropriate constructor of
+ // with the setReceiverHeight() method
+ // @param elevation Elevation of satellite as seen at receiver, in degrees
+ double GCATTropModel::correction(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) throw InvalidTropModel("Invalid model");
+ if(elevation < 5.0) return 0.0;
+ return ((dry_zenith_delay() + wet_zenith_delay()) * mapping_function(elevation));
+ } // end GCATTropModel::correction(elevation)
+
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite. This version is most useful within positioning algorithms,
+ // where the receiver position may vary; it computes the elevation and the receiver
+ // height and passes them to appropriate set...() routines and the
+ // correction(elevation) routine.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ double GCATTropModel::correction(const Position& RX,
+ const Position& SV)
+ throw(TropModel::InvalidTropModel)
+ {
+ try
+ {
+ setReceiverHeight( RX.getAltitude() );
+ }
+ catch(GeometryException& e)
+ {
+ valid = false;
+ }
+
+ if(!valid) throw InvalidTropModel("Invalid model");
+ double c;
+ try
+ {
+ c = correction(RX.elevationGeodetic(SV));
+ }
+ catch(InvalidTropModel& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ return c;
+ } // end GCATTropModel::correction(RX,SV,TT)
+
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position and timetag
+ // may vary; it computes the elevation (and other receiver location information)
+ // and passes them to appropriate set...() routines and the
+ // correction(elevation) routine.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param tt Time. In this model, tt is a dummy parameter kept only for consistency
+ // This function is deprecated; use the Position version
+ double GCATTropModel::correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ Position R(RX),S(SV);
+ return GCATTropModel::correction(R,S);
+ } // end GCATTropModel::correction(RX,SV,tt)
+
+
+ // Compute and return the zenith delay for the dry component of the troposphere
+ double GCATTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) throw InvalidTropModel("Invalid model");
+ double ddry;
+ ddry = std::pow(2.3, (-0.000116 * gcatHeight) );
+ return ddry;
+ } // end GCATTropModel::dry_zenith_delay()
+
+
+ // Compute and return the mapping function of the troposphere
+ // @param elevation is the Elevation of satellite as seen at receiver,
+ // in degrees
+ double GCATTropModel::mapping_function(double elevation) const
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) throw InvalidTropModel("Invalid model");
+ if(elevation < 5.0) return 0.0;
+
+ double d = std::sin(elevation*DEG_TO_RAD);
+ d = SQRT(0.002001+(d*d));
+ return (1.001/d);
+ } // end GCATTropModel::mapping_function(elevation)
+
+
+ // Define the receiver height; this is required before calling
+ // correction() or any of the zenith_delay or mapping_function routines.
+ // @param ht Height of the receiver above mean sea level, in meters.
+ void GCATTropModel::setReceiverHeight(const double& ht)
+ {
+ gcatHeight = ht;
+ valid = true;
+ }
+
+ //----------------------------------------------------------------------------
+ // MOPS model.
+
+ // Some specific constants
+ static const double MOPSg=9.80665;
+ static const double MOPSgm=9.784;
+ static const double MOPSk1=77.604;
+ static const double MOPSk2=382000.0;
+ static const double MOPSRd=287.054;
+
+ // Compute and return the full tropospheric delay. The receiver height,
+ // latitude and Day oy Year must has been set before using the
+ // appropriate constructor or the provided methods.
+ // @param elevation Elevation of satellite as seen at receiver, in degrees
+ double MOPSTropModel::correction(double elevation) const throw(TropModel::InvalidTropModel)
+ {
+ if(!valid) {
+ if(!validLat)
+ throw InvalidTropModel("Invalid MOPS trop model: Rx Latitude");
+ if(!validHeight)
+ throw InvalidTropModel("Invalid MOPS trop model: Rx Height");
+ if(!validTime)
+ throw InvalidTropModel("Invalid MOPS trop model: day of year");
+ }
+
+ if(elevation < 5.0) return 0.0;
+
+ double map = MOPSTropModel::mapping_function(elevation);
+
+ // Compute tropospheric delay
+ double tropDelay = (MOPSTropModel::dry_zenith_delay() + MOPSTropModel::wet_zenith_delay()) * map;
+
+ return tropDelay;
+
+ } // end MOPSTropModel::correction(elevation)
+
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite. This version is most useful within positioning
+ // algorithms, where the receiver position may vary; it computes the elevation
+ // (and other receiver location information as height and latitude) and passes
+ // them to appropriate methods. You must set time using method setDayOfYear()
+ // before calling this method.
+ // @param RX Receiver position
+ // @param SV Satellite position
+ double MOPSTropModel::correction(const Position& RX,
+ const Position& SV)
+ throw(TropModel::InvalidTropModel)
+ {
+ try
+ {
+ setReceiverHeight( RX.getAltitude() );
+ setReceiverLatitude(RX.getGeodeticLatitude());
+ setWeather();
+ }
+ catch(GeometryException& e)
+ {
+ valid = false;
+ }
+
+ if(!valid) throw InvalidTropModel("Invalid model");
+ double c;
+ try
+ {
+ c = MOPSTropModel::correction(RX.elevationGeodetic(SV));
+ }
+ catch(InvalidTropModel& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ return c;
+ } // end MOPSTropModel::correction(RX,SV)
+
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position may vary; it
+ // computes the elevation (and other receiver location information as height
+ // and latitude) and passes them to appropriate methods.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param tt Time (DayTime object).
+ double MOPSTropModel::correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ setDayOfYear(tt);
+ return MOPSTropModel::correction(RX,SV);
+ } // end MOPSTropModel::correction(RX,SV,TT)
+
+
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the day of the year. This version is most useful
+ // within positioning algorithms, where the receiver position may vary; it
+ // computes the elevation (and other receiver location information as height
+ // and latitude) and passes them to appropriate methods.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param doy Day of year.
+ double MOPSTropModel::correction(const Position& RX,
+ const Position& SV,
+ const int& doy)
+ throw(TropModel::InvalidTropModel)
+ {
+ setDayOfYear(doy);
+ return MOPSTropModel::correction(RX,SV);
+ } // end MOPSTropModel::correction(RX,SV,doy)
+
+
+
+ // deprecated
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite. . You must set time using method setDayOfYear()
+ // before calling this method.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // This function is deprecated; use the Position version
+ double MOPSTropModel::correction(const Xvt& RX,
+ const Xvt& SV)
+ throw(TropModel::InvalidTropModel)
+ {
+ Position R(RX),S(SV);
+ return MOPSTropModel::correction(R,S);
+ } // end MOPSTropModel::correction(RX,SV)
+
+
+ // deprecated
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the time tag. This version is most useful
+ // within positioning algorithms, where the receiver position may vary; it
+ // computes the elevation (and other receiver location information as height
+ // and latitude) and passes them to appropriate methods.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param tt Time (DayTime object).
+ // This function is deprecated; use the Position version
+ double MOPSTropModel::correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(TropModel::InvalidTropModel)
+ {
+ setDayOfYear(tt);
+ Position R(RX),S(SV);
+ return MOPSTropModel::correction(R,S);
+ } // end MOPSTropModel::correction(RX,SV,tt)
+
+
+ // deprecated
+ // Compute and return the full tropospheric delay, given the positions of
+ // receiver and satellite and the day of the year. This version is most useful
+ // within positioning algorithms, where the receiver position may vary; it
+ // computes the elevation (and other receiver location information as height
+ // and latitude) and passes them to appropriate methods.
+ // @param RX Receiver position in ECEF cartesian coordinates (meters)
+ // @param SV Satellite position in ECEF cartesian coordinates (meters)
+ // @param doy Day of year.
+ // This function is deprecated; use the Position version
+ double MOPSTropModel::correction(const Xvt& RX,
+ const Xvt& SV,
+ const int& doy)
+ throw(TropModel::InvalidTropModel)
+ {
+ setDayOfYear(doy);
+ Position R(RX),S(SV);
+ return MOPSTropModel::correction(R,S);
+ } // end MOPSTropModel::correction(RX,SV,doy)
+
+
+ // Compute and return the zenith delay for the dry component of the troposphere
+ double MOPSTropModel::dry_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+
+ if(!valid) throw InvalidTropModel("Invalid model");
+ double ddry, zh_dry, exponent;
+
+ // Set the extra parameters
+ double P = MOPSParameters(0);
+ double T = MOPSParameters(1);
+ double beta = MOPSParameters(3);
+
+ // Zero-altitude dry zenith delay:
+ zh_dry = 0.000001*(MOPSk1*MOPSRd)*P/MOPSgm;
+
+ // Zenith delay terms at MOPSHeight meters of height above mean sea level
+ exponent = MOPSg/MOPSRd/beta;
+ ddry = zh_dry * std::pow( (1.0 - beta*MOPSHeight/T), exponent );
+
+ return ddry;
+ } // end MOPSTropModel::dry_zenith_delay()
+
+
+ // Compute and return the zenith delay for the wet component of the troposphere
+ double MOPSTropModel::wet_zenith_delay(void) const
+ throw(TropModel::InvalidTropModel)
+ {
+
+ if(!valid) throw InvalidTropModel("Invalid model");
+ double dwet, zh_wet, exponent;
+
+ // Set the extra parameters
+ double T = MOPSParameters(1);
+ double e = MOPSParameters(2);
+ double beta = MOPSParameters(3);
+ double lambda = MOPSParameters(4);
+
+ // Zero-altitude wet zenith delay:
+ zh_wet = (0.000001*MOPSk2)*MOPSRd/(MOPSgm*(lambda+1.0)-beta*MOPSRd)*e/T;
+
+ // Zenith delay terms at MOPSHeight meters of height above mean sea level
+ exponent = ( (lambda+1.0)*MOPSg/MOPSRd/beta)-1.0;
+ dwet= zh_wet * std::pow( (1.0 - beta*MOPSHeight/T), exponent );
+
+ return dwet;
+ } // end MOPSTropModel::wet_zenith_delay()
+
+
+ // This method configure the model to estimate the weather using height,
+ // latitude and day of year (DOY). It is called automatically when setting
+ // those parameters.
+ void MOPSTropModel::setWeather()
+ throw(TropModel::InvalidTropModel)
+ {
+ if(!validLat)
+ {
+ valid = false;
+ throw InvalidTropModel(
+ "MOPSTropModel must have Rx latitude before computing weather");
+ }
+ if(!validTime)
+ {
+ valid = false;
+ throw InvalidTropModel(
+ "MOPSTropModel must have day of year before computing weather");
+ }
+
+ // In order to compute tropospheric delay we need to compute some extra parameters
+ try
+ {
+ prepareParameters();
+ }
+ catch(InvalidTropModel& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+
+ valid = validHeight && validLat && validTime;
+ }
+
+
+ // Compute and return the sigma-squared value of tropospheric delay residual
+ // error (meters^2)
+ // @param elevation is the Elevation of satellite as seen at receiver,
+ // in degrees
+ double MOPSTropModel::MOPSsigma2(double elevation)
+ throw(TropModel::InvalidTropModel)
+ {
+
+ double map_f;
+
+ // If elevation is below bounds, fail in a sensible way returning a
+ // very big sigma value
+ if(elevation < 5.0)
+ {
+ return 9.9e9;
+ }
+ else
+ {
+ map_f = MOPSTropModel::mapping_function(elevation);
+ }
+
+ // Compute residual error for tropospheric delay
+ double MOPSsigma2trop = (0.12*map_f)*(0.12*map_f);
+
+ return MOPSsigma2trop;
+ } // end MOPSTropModel::MOPSsigma(elevation)
+
+
+
+
+
+ // The MOPS tropospheric model needs to compute several extra parameters
+ void MOPSTropModel::prepareParameters(void)
+ throw(TropModel::InvalidTropModel)
+ {
+
+ if(!valid) throw InvalidTropModel("Invalid model");
+
+ try
+ {
+ // We need to read some data
+ prepareTables();
+
+ // Declare some variables
+ int idmin, j, index;
+ double fact, axfi;
+ Vector<double> avr0(5);
+ Vector<double> svr0(5);
+
+ // Resize MOPSParameters as appropriate
+ MOPSParameters.resize(5);
+
+ if (MOPSLat >= 0.0) {
+ idmin = 28;
+ } else {
+ idmin = 211;
+ }
+
+ // Fraction of the year in radians
+ fact = 2.0*PI*((double)(MOPSTime-idmin))/365.25;
+
+ axfi = ABS(MOPSLat);
+
+ if (axfi <= 15.0) index=0;
+ if ((axfi > 15.0) && (axfi <= 30.0)) index=1;
+ if ((axfi > 30.0) && (axfi <= 45.0)) index=2;
+ if ((axfi > 45.0) && (axfi <= 60.0)) index=3;
+ if ((axfi > 60.0) && (axfi <= 75.0)) index=4;
+ if (axfi > 75.0) index=5;
+
+ for (j=0; j<5; j++)
+ {
+ if (index == 0) {
+ avr0(j)=avr(index,j);
+ svr0(j)=svr(index,j);
+ } else {
+ if (index < 5) {
+ avr0(j)=avr(index-1,j)+(avr(index,j)-avr(index-1,j))*(axfi-fi0(index-1))/(fi0(index)-fi0(index-1));
+ svr0(j)=svr(index-1,j)+(svr(index,j)-svr(index-1,j))*(axfi-fi0(index-1))/(fi0(index)-fi0(index-1));
+ } else {
+ avr0(j)=avr(index-1,j);
+ svr0(j)=svr(index-1,j);
+ }
+ }
+ MOPSParameters(j) = avr0(j)-svr0(j)*std::cos(fact);
+ }
+
+ } // end try
+ catch (...)
+ {
+ InvalidTropModel e("Problem computing extra MOPS parameters.");
+ GPSTK_RETHROW(e);
+ }
+ } // end MOPSTropModel::prepareParameters()
+
+
+} // end namespace gpstk
diff --git a/dev/src/TropModel.hpp b/dev/src/TropModel.hpp
new file mode 100644
index 0000000..e99e2d7
--- /dev/null
+++ b/dev/src/TropModel.hpp
@@ -0,0 +1,1435 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef TROPOSPHERIC_MODELS_GPSTK
+#define TROPOSPHERIC_MODELS_GPSTK
+
+/**
+ * @file TropModel.hpp
+ * Base class for tropospheric models, plus implementations
+ * of several published models
+ */
+
+#include "Exception.hpp"
+#include "ObsEpochMap.hpp"
+#include "WxObsMap.hpp"
+#include "Xvt.hpp"
+#include "Position.hpp"
+#include "Matrix.hpp"
+
+
+// Model of the troposphere, used to compute non-dispersive delay of
+// satellite signal as function of satellite elevation as seen at the
+// receiver. Both wet and dry components are computed.
+//
+// The default model (implemented here) is a simple Black model.
+//
+// In this model (and many others), the wet and dry components are
+// independent, the zenith delays depend only on the weather
+// (temperature, pressure and humidity), and the mapping functions
+// depend only on the elevation of the satellite as seen at the
+// receiver. In general, this is not true; other models depend on,
+// for example, latitude or day of year.
+//
+// Other models may be implemented by inheriting this class and
+// redefining the virtual functions, and (perhaps) adding other
+// 'set...()' routines as needed.
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /** Abstract base class for tropospheric models.
+ * The wet and dry components of the tropospheric delay are each the
+ * product of a zenith delay and a mapping function. Usually the zenith
+ * delay depends only on the weather (temperature, pressure and humidity),
+ * while the mapping function depends only on the satellite elevation, i.e.
+ * the geometry of satellite and receiver. This may not be true in complex
+ * models.
+ * The full tropospheric delay is the sum of the wet and dry components.
+ * A TropModel is valid only when all the necessary information
+ * (weather + whatever else the model requires) is specified;
+ * An InvalidTropModel exception will be thrown when any correction()
+ * or zenith_delay() or mapping_function() routine is called for
+ * an invalid TropModel.
+ */
+ class TropModel
+ {
+ public:
+ /// Thrown when attempting to use a model for which all necessary
+ /// parameters have not been specified.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidTropModel, gpstk::Exception);
+
+ /// Destructor
+ virtual ~TropModel() {}
+
+ /// Return validity of model
+ bool isValid(void)
+ { return valid; }
+
+ /// Compute and return the full tropospheric delay
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel);
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel)
+ { Position R(RX),S(SV); return TropModel::correction(R,S,tt); }
+
+ /// Compute and return the zenith delay for dry component of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel) = 0;
+
+ /// Compute and return the zenith delay for wet component of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel) = 0;
+
+ /// Compute and return the mapping function for dry component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation)
+ const throw(InvalidTropModel) = 0;
+
+ /// Compute and return the mapping function for wet component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation)
+ const throw(InvalidTropModel) = 0;
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param wx the weather to use for this correction
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Define the receiver height; this required by some models before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param ht Height of the receiver in meters.
+ virtual void setReceiverHeight(const double& ht) {};
+
+ /// Define the latitude of the receiver; this is required by some models
+ /// before calling correction() or any of the zenith_delay or
+ /// mapping_function routines.
+ /// @param lat Latitude of the receiver in degrees.
+ virtual void setReceiverLatitude(const double& lat) {};
+
+ /// Define the day of year; this is required by some models before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param d Day of year.
+ virtual void setDayOfYear(const int& d) {};
+
+ protected:
+ bool valid; // true only if current model parameters are valid
+ double temp; // latest value of temperature (kelvin or celsius)
+ double press; // latest value of pressure (millibars)
+ double humid; // latest value of relative humidity (percent)
+
+ }; // end class TropModel
+
+
+ //---------------------------------------------------------------------------------
+ /// The 'zero' trop model, meaning it always returns zero.
+ class ZeroTropModel : public TropModel
+ {
+ public:
+ /// Compute and return the full tropospheric delay
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel)
+ { return 0.0; }
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel)
+ { return 0.0; }
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel)
+ { return 0.0; }
+
+ /// Compute and return the zenith delay for dry component of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel)
+ { return 0.0; }
+
+ /// Compute and return the zenith delay for wet component of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel)
+ { return 0.0; }
+
+ /// Compute and return the mapping function for dry component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation)
+ const throw(InvalidTropModel)
+ { return 0.0; }
+
+ /// Compute and return the mapping function for wet component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation)
+ const throw(InvalidTropModel)
+ { return 0.0; }
+
+ }; // end class ZeroTropModel
+
+ //---------------------------------------------------------------------------------
+ /// A simple Black model of the troposphere. temp is in Kelvin.
+ class SimpleTropModel : public TropModel
+ {
+ public:
+ /// Empty constructor
+ SimpleTropModel(void);
+
+ /// Creates a trop model, with weather observation input
+ /// @param wx the weather to use for this correction.
+ SimpleTropModel(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Create a tropospheric model from explicit weather data
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ SimpleTropModel(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Compute and return the zenith delay for dry component of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for wet component of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for dry component
+ /// of the troposphere
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for wet component
+ /// of the troposphere
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param wx the weather to use for this correction
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ private:
+ double Cdrydelay;
+ double Cwetdelay;
+ double Cdrymap;
+ double Cwetmap;
+
+ }; // end class SimpleTropModel
+
+ //---------------------------------------------------------------------------------
+ /** Tropospheric model based on Goad and Goodman(1974),
+ * "A Modified Hopfield Tropospheric Refraction Correction Model," Paper
+ * presented at the Fall Annual Meeting of the American Geophysical Union,
+ * San Francisco, December 1974, as presented in Leick, "GPS Satellite Surveying,"
+ * Wiley, NY, 1990, Chapter 9 (note particularly Table 9.1).
+ */
+ class GGTropModel : public TropModel
+ {
+ public:
+ /// Empty constructor
+ GGTropModel(void);
+
+ /// Creates a trop model, with weather observation input
+ /// @param wx the weather to use for this correction.
+ GGTropModel(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Create a tropospheric model from explicit weather data
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ GGTropModel(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Compute and return the zenith delay for dry component
+ /// of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for wet component
+ /// of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for dry component
+ /// of the troposphere
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for wet component
+ /// of the troposphere
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called initially, and whenever the weather changes.
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param wx the weather to use for this correction
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ private:
+ double Cdrydelay;
+ double Cwetdelay;
+ double Cdrymap;
+ double Cwetmap;
+
+ }; // end class GGTropModel
+
+ //---------------------------------------------------------------------------------
+ /** Tropospheric model with heights based on Goad and Goodman(1974),
+ * "A Modified Hopfield Tropospheric Refraction Correction Model," Paper
+ * presented at the Fall Annual Meeting of the American Geophysical Union,
+ * San Francisco, December 1974.
+ *
+ * (Not the same as GGTropModel because this has height dependence, and the
+ * computation of this model does not break cleanly into wet and dry components.)
+ *
+ * NB this model requires heights, both of the weather parameters,
+ * and of the receiver.
+ * Thus, usually, caller will set heights at the same time the weather is set:
+ *
+ * @code
+ * GGHeightTropModel ggh;
+ * ggh.setWeather(T,P,H);
+ * ggh.setHeights(hT,hP,hH);
+ * @endcode
+ *
+ * and when the correction (and/or delay and map) is computed,
+ * receiver height is set before the call to correction(elevation):
+ *
+ * @code
+ * ggh.setReceiverHeight(height);
+ * trop = ggh.correction(elevation);
+ * @endcode
+ *
+ * NB setReceiverHeight(ht) sets the 'weather heights' as well, if they are not
+ * already defined.
+ */
+ class GGHeightTropModel : public TropModel
+ {
+ public:
+ /// Empty constructor
+ GGHeightTropModel(void);
+
+ /// Creates a trop model, with weather observation input
+ /// @param wx the weather to use for this correction.
+ GGHeightTropModel(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Create a tropospheric model from explicit weather data
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ GGHeightTropModel(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Create a valid model from explicit input.
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ /// @param hT height at which temperature applies in meters.
+ /// @param hP height at which atmospheric pressure applies in meters.
+ /// @param hH height at which relative humidity applies in meters.
+ GGHeightTropModel(const double& T,
+ const double& P,
+ const double& H,
+ const double hT,
+ const double hP,
+ const double hH)
+ throw(InvalidParameter);
+
+ /// Compute and return the full tropospheric delay
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel);
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for dry component
+ /// of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for wet component of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for dry component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for wet component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Re-define the weather data.
+ /// Typically called initially, and whenever the weather changes.
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param wx the weather to use for this correction
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Re-define the heights at which the weather parameters apply.
+ /// Typically called whenever setWeather is called.
+ /// @param hT height at which temperature applies in meters.
+ /// @param hP height at which atmospheric pressure applies in meters.
+ /// @param hH height at which relative humidity applies in meters.
+ void setHeights(const double& hT,
+ const double& hP,
+ const double& hH);
+
+ /// Define the receiver height; this required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ void setReceiverHeight(const double& ht);
+
+ private:
+ double height; // height (m) of the receiver
+ double htemp; // height (m) at which temp applies
+ double hpress; // height (m) at which press applies
+ double hhumid; // height (m) at which humid applies
+ bool validWeather;
+ bool validHeights;
+ bool validRxHeight;
+
+ }; // end class GGHeightTropModel
+
+
+ //---------------------------------------------------------------------------------
+ /** Tropospheric model developed by University of New Brunswick and described in
+ * "A Tropospheric Delay Model for the User of the Wide Area Augmentation
+ * System," J. Paul Collins and Richard B. Langley, Technical Report No. 187,
+ * Dept. of Geodesy and Geomatics Engineering, University of New Brunswick,
+ * 1997. See particularly Appendix C.
+ *
+ * This model includes a wet and dry component, and was designed for the user
+ * without access to measurements of temperature, pressure and relative humidity
+ * at ground level. Input of the receiver latitude, day of year and height
+ * above the ellipsoid are required, because the mapping functions depend on
+ * these quantities. In addition, if the weather (T,P,H) are not explicitly
+ * provided, this model interpolates a table of values, using latitude and day
+ * of year, to get the ground level weather parameters.
+ *
+ * Usually, the caller will set the latitude and day of year at the same
+ * time the weather is set (if weather is available):
+ *
+ * @code
+ * NBTropModel nb;
+ * nb.setReceiverLatitude(lat);
+ * nb.setDayOfYear(doy);
+ * nb.setWeather(T,P,H); // OPTIONAL
+ * @endcode
+ *
+ * Then, when the correction (and/or delay and map) is computed, receiver height
+ * should be set before the call to correction(elevation):
+ *
+ * @code
+ * nb.setReceiverHeight(height);
+ * trop = nb.correction(elevation);
+ * @endcode
+ *
+ * NB in this model, units of 'temp' are degrees Kelvin, and 'humid'
+ * is the water vapor partial pressure.
+ */
+ class NBTropModel : public TropModel
+ {
+ public:
+ /// Empty constructor
+ NBTropModel(void);
+
+ /// Create a trop model using the minimum information: latitude and doy.
+ /// Interpolate the weather unless setWeather (optional) is called.
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ NBTropModel(const double& lat,
+ const int& day);
+
+ /// Create a trop model with weather.
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ /// @param wx the weather to use for this correction.
+ NBTropModel(const double& lat,
+ const int& day,
+ const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Create a tropospheric model from explicit weather data
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ NBTropModel(const double& lat,
+ const int& day,
+ const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Create a valid model from explicit input
+ /// (weather will be estimated internally by this model).
+ /// @param ht Height of the receiver in meters.
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ NBTropModel(const double& ht,
+ const double& lat,
+ const int& day);
+
+ /// Compute and return the full tropospheric delay
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel);
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for dry component
+ /// of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for wet component
+ /// of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for dry component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for wet component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param wx the weather to use for this correction
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Define the weather data; typically called just before correction().
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// configure the model to estimate the weather using lat and doy
+ void setWeather()
+ throw(InvalidTropModel);
+
+ /// Define the receiver height; this required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param ht Height of the receiver in meters.
+ void setReceiverHeight(const double& ht);
+
+ /// Define the latitude of the receiver; this is required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param lat Latitude of the receiver in degrees.
+ void setReceiverLatitude(const double& lat);
+
+ /// Define the day of year; this is required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param d Day of year.
+ void setDayOfYear(const int& d);
+
+ private:
+ bool interpolateWeather; // if true, compute T,P,H from latitude,doy
+ double height; // height (m) of the receiver
+ double latitude; // latitude (deg) of receiver
+ int doy; // day of year
+ bool validWeather;
+ bool validRxLatitude;
+ bool validRxHeight;
+ bool validDOY;
+
+ }; // end class NBTropModel
+
+ //---------------------------------------------------------------------------------
+ /** Saastamoinen tropospheric model based on Saastamoinen, J., 'Atmospheric
+ * Correction for the Troposphere and Stratosphere in Radio Ranging of
+ * Satellites,' Geophysical Monograph 15, American Geophysical Union, 1972,
+ * and Ch 9 of McCarthy, D and Petit, G, IERS Conventions (2003), IERS
+ * Technical Note 32, IERS, 2004. The mapping functions are from
+ * Neill, A.E., 1996, 'Global Mapping Functions for the Atmosphere Delay of
+ * Radio Wavelengths,' J. Geophys. Res., 101, pp. 3227-3246 (also see IERS TN 32).
+ *
+ * This model includes a wet and dry component, and requires input of the
+ * geodetic latitude, day of year and height above the ellipsoid of the receiver.
+ *
+ * Usually, the caller will set the latitude and day of year at the same
+ * time the weather is set
+ * SaasTropModel stm;
+ * stm.setReceiverLatitude(lat);
+ * stm.setDayOfYear(doy);
+ * stm.setWeather(T,P,H);
+ * Then, when the correction (and/or delay and map) is computed, receiver height
+ * should be set before the call to correction(elevation):
+ * stm.setReceiverHeight(height);
+ * trop_corr = stm.correction(elevation);
+ *
+ * NB in this model, units of 'temp' are degrees Celsius and
+ * humid actually stores water vapor partial pressure in mbars
+ */
+ class SaasTropModel : public TropModel
+ {
+ public:
+ /// Empty constructor
+ SaasTropModel(void);
+
+ /// Create a trop model using the minimum information: latitude and doy.
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ SaasTropModel(const double& lat,
+ const int& day);
+
+ /// Create a trop model with weather.
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ /// @param wx the weather to use for this correction.
+ SaasTropModel(const double& lat,
+ const int& day,
+ const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Create a tropospheric model from explicit weather data
+ /// @param lat Latitude of the receiver in degrees.
+ /// @param day Day of year.
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ SaasTropModel(const double& lat,
+ const int& day,
+ const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Compute and return the full tropospheric delay
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel);
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information) and passes them to appropriate set...() routines and the
+ * correction(elevation) routine.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time tag of the signal
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for dry component
+ /// of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the zenith delay for wet component
+ /// of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for dry component of
+ /// the troposphere. NB this function will return infinity at zero elevation.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Compute and return the mapping function for wet component of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+ /// Re-define the tropospheric model with explicit weather data.
+ /// Typically called just before correction().
+ /// @param wx the weather to use for this correction
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter);
+
+ /// Define the weather data; typically called just before correction().
+ /// @param T temperature in degrees Celsius
+ /// @param P atmospheric pressure in millibars
+ /// @param H relative humidity in percent
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter);
+
+ /// Define the receiver height; this required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param ht Height of the receiver in meters.
+ void setReceiverHeight(const double& ht);
+
+ /// Define the latitude of the receiver; this is required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param lat Latitude of the receiver in degrees.
+ void setReceiverLatitude(const double& lat);
+
+ /// Define the day of year; this is required before calling
+ /// correction() or any of the zenith_delay or mapping_function routines.
+ /// @param d Day of year.
+ void setDayOfYear(const int& d);
+
+ private:
+ double height; /// height (m) of the receiver above the geoid
+ double latitude; /// latitude (deg) of receiver
+ int doy; /// day of year
+ bool validWeather;
+ bool validRxLatitude;
+ bool validRxHeight;
+ bool validDOY;
+
+ }; // end class SaasTropModel
+
+
+ //---------------------------------------------------------------------------------
+ /** Tropospheric model implemented in "GPS Code Analysis Tool" (GCAT) software.
+ * This model is described in the book "GPS Data processing: code and phase
+ * Algorithms, Techniques and Recipes" by Hernandez-Pajares, M., J.M. Juan-Zornoza
+ * and Sanz-Subirana, J. See Chapter 5.
+ *
+ * This book and associated software are freely available at:
+ * http://gage152.upc.es/~manuel/tdgps/tdgps.html
+ *
+ * This is a simple but efective model composed of the wet and dry vertical
+ * tropospheric delays as defined in Gipsy/Oasis-II GPS analysis software, and
+ * the mapping function as defined by Black and Eisner (H. D. Black, A. Eisner.
+ * Correcting Satellite Doppler Data for Tropospheric Effects. Journal of
+ * Geophysical Research. Vol 89. 1984.) and used in MOPS (RTCA/DO-229C) standards.
+ *
+ * Usually, the caller will set the receiver height using setReceiverHeight() method,
+ * and then call the correction() method with the satellite elevation
+ *
+ * @code
+ * GCATTropModel gcatTM();
+ * ...
+ * gcatTM.setReceiverHeight(150.0);
+ * trop = gcatTM.correction(elevation);
+ * @endcode
+ *
+ * Another posibility is to set the receiver height when calling the constructor.
+ *
+ * @code
+ * GCATTropModel gcatTM(150.0); // Receiver height is 150.0 meters
+ * ...
+ * trop = gcatTM.correction(elevation);
+ * @endcode
+ */
+ class GCATTropModel : public TropModel
+ {
+ public:
+
+ /// Empty constructor
+ GCATTropModel(void) { valid = false; };
+
+
+ /// Constructor to create a GCAT trop model providing the height of the receiver
+ /// above mean sea level (as defined by ellipsoid model).
+ ///
+ /// @param ht Height of the receiver above mean sea level, in meters.
+ GCATTropModel(const double& ht);
+
+
+ /// Compute and return the full tropospheric delay. The receiver height must
+ /// has been provided before, whether using the appropriate constructor of
+ /// with the setReceiverHeight() method
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel);
+
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite. This version is most useful within positioning
+ * algorithms, where the receiver position may vary; it computes the elevation
+ * (and other receiver location information as height) and passes them to
+ * setReceiverHeight() method and correction(elevation) method.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV)
+ throw(InvalidTropModel);
+
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information as height) and passes them to setReceiverHeight() method and
+ * correction(elevation) method.
+ * @param RX Receiver position
+ * @param SV Satellite position
+ * @param tt Time. In this model, tt is a dummy parameter kept just for consistency
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel)
+ { return correction(RX, SV); };
+
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position and timetag
+ * may vary; it computes the elevation (and other receiver location
+ * information as height) and passes them to setReceiverHeight() method and
+ * correction(elevation) method.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time. In this model, tt is a dummy parameter kept just for consistency
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+
+ /// Compute and return the zenith delay for dry component of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+
+ /// Compute and return the zenith delay for wet component of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel)
+ { return 0.1; };
+
+
+ /// Compute and return the mapping function for both components of
+ /// the troposphere.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double mapping_function(double elevation) const
+ throw(InvalidTropModel);
+
+
+ /// Compute and return the mapping function for dry component
+ /// of the troposphere
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double dry_mapping_function(double elevation) const
+ throw(InvalidTropModel)
+ { return mapping_function(elevation); };
+
+
+ /// Compute and return the mapping function for wet component
+ /// of the troposphere
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees
+ virtual double wet_mapping_function(double elevation) const
+ throw(InvalidTropModel)
+ { return mapping_function(elevation); };
+
+
+ /// In GCAT tropospheric model, this is a dummy method kept here just for consistency
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter) {};
+
+
+ /// In GCAT tropospheric model, this is a dummy method kept here just for consistency
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter) {};
+
+
+ /// Define the receiver height; this is required before calling
+ /// correction() or any of the zenith_delay routines.
+ /// @param ht Height of the receiver above mean sea level, in meters.
+ void setReceiverHeight(const double& ht);
+
+
+ private:
+ double gcatHeight;
+
+ }; // end class GCATTropModel
+
+
+ //---------------------------------------------------------------------------------
+ /** Tropospheric model implemented in the RTCA "Minimum Operational Performance Standards" (MOPS), version C.
+ * This model is described in the RTCA "Minimum Operational Performance
+ * Standards" (MOPS), version C (RTCA/DO-229C), in Appendix A.4.2.4. Although
+ * originally developed for SBAS systems (EGNOS, WAAS), it may be suitable
+ * for other uses as well.
+ *
+ * This model needs the day of year, satellite elevation (degrees), receiver
+ * height over mean sea level (meters) and receiver latitude in order to start
+ * computing.
+ *
+ * On the other hand, the outputs are the tropospheric correction (in meters)
+ * and the sigma-squared of tropospheric delay residual error (meters^2)
+ *
+ * A typical way to use this model follows:
+ *
+ * @code
+ * MOPSTropModel mopsTM;
+ * mopsTM.setReceiverLatitude(lat);
+ * mopsTM.setReceiverHeight(height);
+ * mopsTM.setDayOfYear(doy);
+ * @endcode
+ *
+ * Once all the basic model parameters are set (latitude, height and day of
+ * year), then we are able to compute the tropospheric correction as a
+ * function of elevation:
+ *
+ * @code
+ * trop = mopsTM.correction(elevation);
+ * @endcode
+ *
+ */
+ class MOPSTropModel : public GCATTropModel
+ {
+ public:
+
+ /// Empty constructor
+ MOPSTropModel(void)
+ {
+ validHeight = false;
+ validLat = false;
+ validTime = false;
+ valid = false;
+ };
+
+
+ /// Constructor to create a MOPS trop model providing just the height of the
+ /// receiver above mean sea level. The other parameters must be set with the
+ /// appropriate set methods before calling correction methods.
+ ///
+ /// @param ht Height of the receiver above mean sea level, in meters.
+ MOPSTropModel(const double& ht)
+ {
+ setReceiverHeight(ht);
+ };
+
+
+
+ /// Constructor to create a MOPS trop model providing the height of the receiver
+ /// above mean sea level (as defined by ellipsoid model), its latitude and the day
+ /// of year.
+ ///
+ /// @param ht Height of the receiver above mean sea level, in meters.
+ /// @param lat Latitude of receiver, in degrees.
+ /// @param doy Day of year.
+ MOPSTropModel(const double& ht, const double& lat, const int& doy)
+ {
+ setReceiverHeight(ht);
+ setReceiverLatitude(lat);
+ setDayOfYear(doy);
+ };
+
+
+ /// Constructor to create a MOPS trop model providing the position of the receiver
+ /// and current time.
+ ///
+ /// @param RX Receiver position.
+ /// @param time Time.
+ MOPSTropModel(const Position& RX, const DayTime& time)
+ {
+ setReceiverHeight(RX.getAltitude());
+ setReceiverLatitude(RX.getGeodeticLatitude());
+ setDayOfYear(time);
+ };
+
+
+ /// Compute and return the full tropospheric delay. The receiver height,
+ /// latitude and Day oy Year must has been set before using the
+ /// appropriate constructor or the provided methods.
+ /// @param elevation Elevation of satellite as seen at receiver, in degrees.
+ virtual double correction(double elevation) const
+ throw(InvalidTropModel);
+
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite. This version is most useful within positioning
+ * algorithms, where the receiver position may vary; it computes the
+ * elevation (and other receiver location information as height and
+ * latitude) and passes them to appropriate methods. You must set time
+ * using method setReceiverDOY() before calling this method.
+ * @param RX Receiver position.
+ * @param SV Satellite position.
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV)
+ throw(InvalidTropModel);
+
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position may vary; it
+ * computes the elevation (and other receiver location information as
+ * height and latitude) and passes them to appropriate methods.
+ * @param RX Receiver position.
+ * @param SV Satellite position.
+ * @param tt Time (DayTime object).
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+
+ /**
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the day of the year. This version is most
+ * useful within positioning algorithms, where the receiver position may
+ * vary; it computes the elevation (and other receiver location information
+ * as height and latitude) and passes them to appropriate methods.
+ * @param RX Receiver position.
+ * @param SV Satellite position.
+ * @param doy Day of year.
+ */
+ virtual double correction(const Position& RX,
+ const Position& SV,
+ const int& doy)
+ throw(InvalidTropModel);
+
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite. . You must set time using method setReceiverDOY()
+ * before calling this method.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters).
+ * @param SV Satellite position in ECEF cartesian coordinates (meters).
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV)
+ throw(InvalidTropModel);
+
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the time tag. This version is most useful
+ * within positioning algorithms, where the receiver position may vary; it
+ * computes the elevation (and other receiver location information as
+ * height and latitude) and passes them to appropriate methods.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param tt Time (DayTime object).
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const DayTime& tt)
+ throw(InvalidTropModel);
+
+
+ /** \deprecated
+ * Compute and return the full tropospheric delay, given the positions of
+ * receiver and satellite and the day of the year. This version is most
+ * useful within positioning algorithms, where the receiver position may
+ * vary; it computes the elevation (and other receiver location information
+ * as height and latitude) and passes them to appropriate methods.
+ * @param RX Receiver position in ECEF cartesian coordinates (meters)
+ * @param SV Satellite position in ECEF cartesian coordinates (meters)
+ * @param doy Day of year.
+ */
+ virtual double correction(const Xvt& RX,
+ const Xvt& SV,
+ const int& doy)
+ throw(InvalidTropModel);
+
+
+ /// Compute and return the zenith delay for dry component of the troposphere
+ virtual double dry_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+
+ /// Compute and return the zenith delay for wet component of the troposphere
+ virtual double wet_zenith_delay(void) const
+ throw(InvalidTropModel);
+
+
+ /// This method configure the model to estimate the weather using height, latitude and day of year (DOY). It is called automatically when setting those parameters.
+ void setWeather()
+ throw(InvalidTropModel);
+
+
+ /// In MOPS tropospheric model, this is a dummy method kept here just for consistency
+ virtual void setWeather(const double& T,
+ const double& P,
+ const double& H)
+ throw(InvalidParameter) {};
+
+
+ /// In MOPS tropospheric model, this is a dummy method kept here just for consistency
+ virtual void setWeather(const WxObservation& wx)
+ throw(InvalidParameter) {};
+
+
+ /// Define the receiver height; this is required before calling
+ /// correction() or any of the zenith_delay routines.
+ /// @param ht Height of the receiver above mean sea level, in meters.
+ virtual void setReceiverHeight(const double& ht)
+ {
+ MOPSHeight = ht;
+ validHeight = true;
+ // Change the value of field "valid" if everything is already set
+ valid = validHeight && validLat && validTime;
+ // If model is valid, set the appropriate parameters
+ if (valid) setWeather();
+ };
+
+
+ /// Define the receiver latitude; this is required before calling
+ /// correction() or any of the zenith_delay routines.
+ /// @param lat Latitude of receiver, in degrees.
+ virtual void setReceiverLatitude(const double& lat)
+ {
+ MOPSLat = lat;
+ validLat = true;
+ // Change the value of field "valid" if everything is already set
+ valid = validHeight && validLat && validTime;
+ // If model is valid, set the appropriate parameters
+ if (valid) setWeather();
+ };
+
+
+ /// Set the time when tropospheric correction will be computed for, in days
+ /// of the year.
+ /// @param doy Day of the year.
+ virtual void setDayOfYear(const int& doy)
+ {
+ if ( (doy>=1) && (doy<=366)) validTime = true; else validTime = false;
+ MOPSTime = doy;
+ // Change the value of field "valid" if everything is already set
+ valid = validHeight && validLat && validTime;
+ // If model is valid, set the appropriate parameters
+ if (valid) setWeather();
+ };
+
+
+ /// Set the time when tropospheric correction will be computed for, in days
+ /// of the year.
+ /// @param time Time object.
+ virtual void setDayOfYear(const DayTime& time)
+ {
+ MOPSTime = (int)time.DOY();
+ validTime = true;
+ // Change the value of field "valid" if everything is already set
+ valid = validHeight && validLat && validTime;
+ // If model is valid, set the appropriate parameters
+ if (valid) setWeather();
+ };
+
+
+ /** Convenient method to set all model parameters in one pass.
+ *
+ * @param time Time object.
+ * @param rxPos Receiver position object.
+ */
+ virtual void setAllParameters(const DayTime& time, const Position& rxPos)
+ {
+ MOPSTime = (int)time.DOY();
+ validTime = true;
+ MOPSHeight = rxPos.getGeodeticLatitude();
+ validHeight = true;
+ MOPSLat = rxPos.getHeight();
+ validLat = true;
+ // Change the value of field "valid" if everything is already set
+ valid = validHeight && validLat && validTime;
+ // If model is valid, set the appropriate parameters
+ if (valid) setWeather();
+ };
+
+
+ /// Compute and return the sigma-squared value of tropospheric delay
+ /// residual error (meters^2)
+ /// @param elevation is the Elevation of satellite as seen at receiver,
+ /// in degrees
+ double MOPSsigma2(double elevation)
+ throw(TropModel::InvalidTropModel);
+
+
+ private:
+ double MOPSHeight;
+ double MOPSLat;
+ int MOPSTime;
+ bool validHeight;
+ bool validLat;
+ bool validTime;
+ Matrix<double> avr;
+ Matrix<double> svr;
+ Vector<double> fi0;
+ Vector<double> MOPSParameters;
+
+
+ // The MOPS tropospheric model needs to compute several extra parameters
+ virtual void prepareParameters(void) throw(TropModel::InvalidTropModel);
+
+ // The MOPS tropospheric model uses several predefined data tables
+ virtual void prepareTables(void)
+ {
+ avr.resize(5,5);
+ svr.resize(5,5);
+ fi0.resize(5);
+
+ // Table avr (Average):
+ avr(0,0)=1013.25; avr(0,1)=299.65; avr(0,2)=26.31; avr(0,3)=0.0063; avr(0,4)=2.77;
+ avr(1,0)=1017.25; avr(1,1)=294.15; avr(1,2)=21.79; avr(1,3)=0.00605; avr(1,4)=3.15;
+ avr(2,0)=1015.75; avr(2,1)=283.15; avr(2,2)=11.66; avr(2,3)=0.00558; avr(2,4)=2.57;
+ avr(3,0)=1011.75; avr(3,1)=272.15; avr(3,2)= 6.78; avr(3,3)=0.00539; avr(3,4)=1.81;
+ avr(4,0)=1013.00; avr(4,1)=263.65; avr(4,2)= 4.11; avr(4,3)=0.00453; avr(4,4)=1.55;
+
+ // Table svr (Seasonal Variation):
+ svr(0,0)= 0.00; svr(0,1)= 0.00; svr(0,2)=0.00; svr(0,3)=0.00000; svr(0,4)=0.00;
+ svr(1,0)=-3.75; svr(1,1)= 7.00; svr(1,2)=8.85; svr(1,3)=0.00025; svr(1,4)=0.33;
+ svr(2,0)=-2.25; svr(2,1)=11.00; svr(2,2)=7.24; svr(2,3)=0.00032; svr(2,4)=0.46;
+ svr(3,0)=-1.75; svr(3,1)=15.00; svr(3,2)=5.36; svr(3,3)=0.00081; svr(3,4)=0.74;
+ svr(4,0)=-0.50; svr(4,1)=14.50; svr(4,2)=3.39; svr(4,3)=0.00062; svr(4,4)=0.30;
+
+ // Table fi0 (Latitude bands):
+ fi0(0)=15.0; fi0(1)=30.0; fi0(2)=45.0; fi0(3)=60.0; fi0(4)=75.0;
+
+ }
+
+ }; // end class MOPSTropModel
+
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/TypeID.cpp b/dev/src/TypeID.cpp
new file mode 100644
index 0000000..babe814
--- /dev/null
+++ b/dev/src/TypeID.cpp
@@ -0,0 +1,202 @@
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+#include "TypeID.hpp"
+
+
+/**
+ * @file TypeID.cpp
+ * gpstk::TypeID - Identifies types of values
+ */
+
+namespace gpstk
+{
+ std::map< TypeID::ValueType, std::string > TypeID::tStrings;
+
+ TypeID::Initializer TypeIDsingleton;
+
+ TypeID::Initializer::Initializer()
+ {
+ tStrings[Unknown] = "UnknownType";
+ tStrings[C1] = "C1";
+ tStrings[C2] = "C2";
+ tStrings[P1] = "P1";
+ tStrings[P2] = "P2";
+ tStrings[L1] = "L1";
+ tStrings[L2] = "L2";
+ tStrings[D1] = "D1";
+ tStrings[D2] = "D2";
+ tStrings[S1] = "S1";
+ tStrings[S2] = "S2";
+ tStrings[T1] = "T1";
+ tStrings[T2] = "T2";
+ tStrings[SSI1] = "SSI1";
+ tStrings[LLI1] = "LLI1";
+ tStrings[SSI2] = "SSI2";
+ tStrings[LLI2] = "LLI2";
+ tStrings[C5] = "C5";
+ tStrings[L5] = "L5";
+ tStrings[D5] = "D5";
+ tStrings[S5] = "S5";
+ tStrings[SSI5] = "SSI5";
+ tStrings[LLI5] = "LLI5";
+ tStrings[C6] = "C6";
+ tStrings[L6] = "L6";
+ tStrings[D6] = "D6";
+ tStrings[S6] = "S6";
+ tStrings[SSI6] = "SSI6";
+ tStrings[LLI6] = "LLI6";
+ tStrings[C7] = "C7";
+ tStrings[L7] = "L7";
+ tStrings[D7] = "D7";
+ tStrings[S7] = "S7";
+ tStrings[SSI7] = "SSI7";
+ tStrings[LLI7] = "LLI7";
+ tStrings[C8] = "C8";
+ tStrings[L8] = "L8";
+ tStrings[D8] = "D8";
+ tStrings[S8] = "S8";
+ tStrings[SSI8] = "SSI8";
+ tStrings[LLI8] = "LLI8";
+ tStrings[PC] = "PC";
+ tStrings[LC] = "LC";
+ tStrings[PI] = "PI";
+ tStrings[LI] = "LI";
+ tStrings[Pdelta] = "Pdelta";
+ tStrings[Ldelta] = "Ldelta";
+ tStrings[MWubbena] = "MWubbena";
+ tStrings[rho] = "rho";
+ tStrings[dtSat] = "dtSat";
+ tStrings[rel] = "rel";
+ tStrings[tropo] = "tropo";
+ tStrings[dryTropo] = "dryTropo";
+ tStrings[wetTropo] = "wetTropo";
+ tStrings[tropoSlant] = "slantTropo";
+ tStrings[iono] = "verticalIono";
+ tStrings[ionoSlant] = "slantIono";
+ tStrings[windUp] = "windup";
+ tStrings[satX] = "satX";
+ tStrings[satY] = "satY";
+ tStrings[satZ] = "satZ";
+ tStrings[elevation] = "elevation";
+ tStrings[azimuth] = "azimuth";
+ tStrings[CSL1] = "CSL1";
+ tStrings[CSL2] = "CSL2";
+ tStrings[CSL5] = "CSL5";
+ tStrings[CSL6] = "CSL6";
+ tStrings[CSL7] = "CSL7";
+ tStrings[CSL8] = "CSL8";
+ tStrings[BL1] = "ambiguityL1";
+ tStrings[BL2] = "ambiguityL2";
+ tStrings[BL5] = "ambiguityL5";
+ tStrings[BL6] = "ambiguityL6";
+ tStrings[BL7] = "ambiguityL7";
+ tStrings[BL8] = "ambiguityL8";
+ tStrings[mpC1] = "multipathC1";
+ tStrings[mpC2] = "multipathC2";
+ tStrings[mpC5] = "multipathC5";
+ tStrings[mpC6] = "multipathC6";
+ tStrings[mpC7] = "multipathC7";
+ tStrings[mpC8] = "multipathC8";
+ tStrings[mpL1] = "multipathL1";
+ tStrings[mpL2] = "multipathL2";
+ tStrings[mpL5] = "multipathL5";
+ tStrings[mpL6] = "multipathL6";
+ tStrings[mpL7] = "multipathL7";
+ tStrings[mpL8] = "multipathL8";
+ tStrings[instC1] = "instrumentalC1";
+ tStrings[instC2] = "instrumentalC2";
+ tStrings[instC5] = "instrumentalC5";
+ tStrings[instC6] = "instrumentalC6";
+ tStrings[instC7] = "instrumentalC7";
+ tStrings[instC8] = "instrumentalC8";
+ tStrings[instL1] = "instrumentalL1";
+ tStrings[instL2] = "instrumentalL2";
+ tStrings[instL5] = "instrumentalL5";
+ tStrings[instL6] = "instrumentalL6";
+ tStrings[instL7] = "instrumentalL7";
+ tStrings[instL8] = "instrumentalL8";
+ tStrings[prefitC] = "prefitResidualCode";
+ tStrings[prefitL] = "prefitResidualPhase";
+ tStrings[postfitC] = "posfitResidualCode";
+ tStrings[postfitL] = "posfitResidualPhase";
+ tStrings[dx] = "dx";
+ tStrings[dy] = "dy";
+ tStrings[dz] = "dz";
+ tStrings[cdt] = "cdt";
+ tStrings[dLat] = "dLat";
+ tStrings[dLon] = "dLon";
+ tStrings[dH] = "dH";
+ tStrings[weight] = "weight";
+ tStrings[recX] = "RxPositionX";
+ tStrings[recY] = "RxPositionY";
+ tStrings[recZ] = "RxPositionZ";
+ tStrings[recLat] = "RxLat";
+ tStrings[recLon] = "RxLon";
+ tStrings[recH] = "RxH";
+ tStrings[sigma] = "sigma";
+ tStrings[iura] = "iura";
+ }
+
+
+ std::ostream& TypeID::dump(std::ostream& s) const
+ {
+ s << TypeID::tStrings[type];
+
+ return s;
+ } // TypeID::dump()
+
+ bool TypeID::isValid() const
+ {
+ // At some time this needs to be implemented.
+ return !(type==Unknown);
+ }
+
+ TypeID::ValueType TypeID::newValueType(const std::string& s)
+ {
+ ValueType newId =
+ static_cast<ValueType>(TypeID::tStrings.rbegin()->first + 1);
+ TypeID::tStrings[newId] = s;
+ return newId;
+ }
+
+
+ namespace StringUtils
+ {
+ // convert this object to a string representation
+ std::string asString(const TypeID& p)
+ {
+ std::ostringstream oss;
+ p.dump(oss);
+ return oss.str();
+ }
+ }
+
+ // stream output for TypeID
+ std::ostream& operator<<(std::ostream& s, const TypeID& p)
+ {
+ p.dump(s);
+ return s;
+ }
+
+}
diff --git a/dev/src/TypeID.hpp b/dev/src/TypeID.hpp
new file mode 100644
index 0000000..d39423e
--- /dev/null
+++ b/dev/src/TypeID.hpp
@@ -0,0 +1,332 @@
+#pragma ident "$Id$"
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+#ifndef GPSTK_TYPEID_HPP
+#define GPSTK_TYPEID_HPP
+
+#include <iostream>
+#include <iomanip>
+#include <sstream>
+#include <string>
+#include <map>
+#include "RinexObsHeader.hpp"
+
+
+/**
+ * @file TypeID.hpp
+ * gpstk::TypeID - This class was written taking as inspiration ObsID. The
+ objective of this class is to create an index able to represent any type
+ of observation, correction, model parameter or other data value of interest
+ for GNSS data processing. This class is extensible in run-time, so the
+ programmer may add indexes on-demand.
+ */
+
+namespace gpstk
+{
+
+ /**
+ * This class creates an index able to represent any type of observation,
+ * correction, model parameter or other data value of interest for GNSS
+ * data processing.
+ *
+ * This class is exensible in run-time, so the programmer may add
+ * indexes on-demand. For instance, in order to create a new TypeID object
+ * referring INS-related data, and with "ins" as description string,
+ * you may write the following:
+ *
+ * @code
+ * TypeID INS = TypeID::newValueType("ins");
+ * @endcode
+ *
+ * Or using the constructor:
+ *
+ * @code
+ * TypeID INS(TypeID::newValueType("ins"));
+ * @endcode
+ *
+ * From now on, you'll be able to use INS as TypeID when you need to
+ * refer to inertial system data.
+ *
+ */
+ class TypeID
+ {
+ public:
+ /// The type of the data value.
+ enum ValueType
+ {
+ Unknown,
+ // Observation-related types
+ C1, ///< GPS civil code observation in L1 frequency
+ C2, ///< GPS civil code observation in L2 frequency
+ P1, ///< GPS precise code observation in L1 frequency
+ P2, ///< GPS precise code observation in L2 frequency
+ L1, ///< GPS phase observation in L1 frequency
+ L2, ///< GPS phase observation in L2 frequency
+ D1, ///< GPS doppler observation in L1 frequency
+ D2, ///< GPS doppler observation in L2 frequency
+ S1, ///< GPS signal strength observation in L1 frequency
+ S2, ///< GPS signal strength observation in L2 frequency
+ T1, ///< Transit integrated doppler observation in L1 frequency
+ T2, ///< Transit integrated doppler observation in L2 frequency
+ SSI1, ///< Signal strength indicator/index, L1 frequency
+ LLI1, ///< Loss of Lock Indicator/ lock count, L1 frequency
+ SSI2, ///< Signal strength indicator/index, L2 frequency
+ LLI2, ///< Loss of Lock Indicator/ lock count, L2 frequency
+ // v 2.11
+ C5, ///< GPS L5C-code pseudorange
+ L5, ///< GPS phase observation in L5 frequency
+ D5, ///< GPS doppler observation in L5 frequency
+ S5, ///< GPS signal strength observation in L5 frequency
+ SSI5, ///< Signal strength indicator/index, L5 frequency
+ LLI5, ///< Loss of Lock Indicator/ lock count, L5 frequency
+ // Galileo-related
+ C6, ///< Galileo E6-code pseudorange
+ L6, ///< Galileo phase observation in L6 frequency
+ D6, ///< Galileo doppler observation in L6 frequency
+ S6, ///< Galileo signal strength observation in L6 frequency
+ SSI6, ///< Signal strength indicator/index, L6 frequency
+ LLI6, ///< Loss of Lock Indicator/ lock count, L6 frequency
+ C7, ///< Galileo E5b-code pseudorange
+ L7, ///< Galileo phase observation in L5b frequency
+ D7, ///< Galileo doppler observation in L5b frequency
+ S7, ///< Galileo signal strength observation in L5b frequency
+ SSI7, ///< Signal strength indicator/index, L5b frequency
+ LLI7, ///< Loss of Lock Indicator/ lock count, L5b frequency
+ C8, ///< Galileo E5a+b-code pseudorange
+ L8, ///< Galileo phase observation in L5a+b frequency
+ D8, ///< Galileo doppler observation in L5a+b frequency
+ S8, ///< Galileo signal strength observation in L5a+b frequency
+ SSI8, ///< Signal strength indicator/index, L5a+b frequency
+ LLI8, ///< Loss of Lock Indicator/ lock count, L5a+b frequency
+ // Combination-related types
+ PC, ///< Code-based ionosphere-free combination
+ LC, ///< Phase-based ionosphere-free combination
+ PI, ///< Code-based ionospheric combination
+ LI, ///< Phase-based ionospheric combination
+ Pdelta, ///< Narrow-lane combination
+ Ldelta, ///< Wide-lane combination
+ MWubbena, ///< Melbourne-Wubbena combination
+ // Model-related types
+ rho, ///< Geometric distance satellite-receiver
+ dtSat, ///< Satellite clock offset
+ rel, ///< Relativistic delay
+ tropo, ///< Vertical tropospheric delay, total
+ dryTropo, ///< Vertical tropospheric delay, dry component
+ wetTropo, ///< Vertical tropospheric delay, wet component
+ tropoSlant, ///< Slant tropospheric delay, total
+ iono, ///< Vertical ionospheric delay
+ ionoSlant, ///< Slant ionospheric delay
+ windUp, ///< Wind-up effect (in radians)
+ satX, ///< Satellite position, X component
+ satY, ///< Satellite position, Y component
+ satZ, ///< Satellite position, Z component
+ elevation, ///< Satellite elevation
+ azimuth, ///< Satellite azimuth
+ // Cycle slip flags
+ CSL1, ///< Cycle slip in L1
+ CSL2, ///< Cycle slip in L2
+ CSL5, ///< Cycle slip in L5
+ CSL6, ///< Cycle slip in L6
+ CSL7, ///< Cycle slip in L7
+ CSL8, ///< Cycle slip in L8
+ // Phase-ambiguity types
+ BL1, ///< Phase ambiguity in L1
+ BL2, ///< Phase ambiguity in L2
+ BL5, ///< Phase ambiguity in L5
+ BL6, ///< Phase ambiguity in L6
+ BL7, ///< Phase ambiguity in L7
+ BL8, ///< Phase ambiguity in L8
+ // Multipath-related types
+ mpC1, ///< Multipath bias, C1
+ mpC2, ///< Multipath bias, C2
+ mpC5, ///< Multipath bias, C5
+ mpC6, ///< Multipath bias, C6
+ mpC7, ///< Multipath bias, C7
+ mpC8, ///< Multipath bias, C8
+ mpL1, ///< Multipath bias, L1
+ mpL2, ///< Multipath bias, L2
+ mpL5, ///< Multipath bias, L5
+ mpL6, ///< Multipath bias, L6
+ mpL7, ///< Multipath bias, L7
+ mpL8, ///< Multipath bias, L8
+ // Instrumental delays types
+ instC1, ///< Instrumental delay, C1
+ instC2, ///< Instrumental delay, C2
+ instC5, ///< Instrumental delay, C5
+ instC6, ///< Instrumental delay, C6
+ instC7, ///< Instrumental delay, C7
+ instC8, ///< Instrumental delay, C8
+ instL1, ///< Instrumental delay, L1
+ instL2, ///< Instrumental delay, L2
+ instL5, ///< Instrumental delay, L5
+ instL6, ///< Instrumental delay, L6
+ instL7, ///< Instrumental delay, L7
+ instL8, ///< Instrumental delay, L8
+ // Equation system-related types
+ prefitC, ///< Prefit residual, code
+ prefitL, ///< Prefit residual, phase
+ postfitC, ///< Postfit residual, code
+ postfitL, ///< Postfit residual, phase
+ dx, ///< In the position domain: Position bias, X component; in the range domain: dx coefficient
+ dy, ///< In the position domain: Position bias, Y component; in the range domain: dy coefficient
+ dz, ///< In the position domain: Position bias, Z component; in the range domain: dz coefficient
+ dLat, ///< Position bias, Latitude component
+ dLon, ///< Position bias, Longitude component
+ dH, ///< Position bias, Height component
+ cdt, ///< In the position domain: Receiver clock offset, meters; in the range domain: cdt coefficient
+ weight, ///< Weight assigned to a given observation
+ // Other types
+ recX, ///< Receiver position, X component
+ recY, ///< Receiver position, Y component
+ recZ, ///< Receiver position, Z component
+ recLat, ///< Receiver position, Latitude component
+ recLon, ///< Receiver position, Longitude component
+ recH, ///< Receiver position, Height component
+ sigma, ///< Standard deviation
+ iura, ///< Index User Range Accuracy
+ Last, ///< used to extend this...
+ Placeholder = Last+1000
+ };
+
+ /// empty constructor, creates an invalid object
+ TypeID()
+ : type(Unknown) {};
+
+ /// Explicit constructor
+ TypeID(ValueType vt)
+ : type(vt) {};
+
+ /// Equality requires all fields to be the same
+ virtual bool operator==(const TypeID& right) const
+ { return type==right.type; }
+
+ /// This ordering is somewhat arbitrary but is required to be able
+ /// to use an TypeID as an index to a std::map. If an application needs
+ /// some other ordering, inherit and override this function.
+ virtual bool operator<(const TypeID& right) const
+ { return type < right.type; }
+
+
+ bool operator!=(const TypeID& right) const
+ { return !(operator==(right)); }
+
+ bool operator>(const TypeID& right) const
+ { return (!operator<(right) && !operator==(right)); }
+
+ bool operator<=(const TypeID& right) const
+ { return (operator<(right) || operator==(right)); }
+
+ bool operator>=(const TypeID& right) const
+ { return !(operator<(right)); }
+
+ /// Assignment operator
+ virtual TypeID operator=(const TypeID& right)
+ {
+ if ( this == &right ) return (*this);
+ (*this).type = right.type;
+ return *this;
+ }
+
+ /// Convenience output method
+ virtual std::ostream& dump(std::ostream& s) const;
+
+ /// Returns true if this is a valid TypeID. Basically just
+ /// checks that the enum is defined
+ virtual bool isValid() const;
+
+ /// Destructor
+ virtual ~TypeID() {}
+
+
+ /** Static method to add new TypeID's
+ * @param string Identifying string for the new TypeID
+ */
+ static ValueType newValueType(const std::string& s);
+
+ /// Type of the value
+ ValueType type;
+
+ static std::map< ValueType, std::string > tStrings;
+
+ public:
+ class Initializer
+ {
+ public:
+ Initializer();
+ };
+
+ static Initializer TypeIDsingleton;
+
+ }; // class TypeID
+
+ namespace StringUtils
+ {
+ /// convert this object to a string representation
+ std::string asString(const TypeID& p);
+ }
+
+ /// stream output for TypeID
+ std::ostream& operator<<(std::ostream& s, const TypeID& p);
+
+
+ /// Conversion from RinexObsType to TypeID
+ inline TypeID::ValueType RinexType2TypeID(const RinexObsHeader::RinexObsType& rot)
+ {
+ if (rot == RinexObsHeader::UN) return TypeID::Unknown;
+ if (rot == RinexObsHeader::C1) return TypeID::C1;
+ if (rot == RinexObsHeader::C2) return TypeID::C2;
+ if (rot == RinexObsHeader::P1) return TypeID::P1;
+ if (rot == RinexObsHeader::P2) return TypeID::P2;
+ if (rot == RinexObsHeader::L1) return TypeID::L1;
+ if (rot == RinexObsHeader::L2) return TypeID::L2;
+ if (rot == RinexObsHeader::D1) return TypeID::D1;
+ if (rot == RinexObsHeader::D2) return TypeID::D2;
+ if (rot == RinexObsHeader::S1) return TypeID::S1;
+ if (rot == RinexObsHeader::S2) return TypeID::S2;
+ // v 2.11
+ if (rot == RinexObsHeader::C5) return TypeID::C5;
+ if (rot == RinexObsHeader::L5) return TypeID::L5;
+ if (rot == RinexObsHeader::D5) return TypeID::D5;
+ if (rot == RinexObsHeader::S5) return TypeID::S5;
+ // Galileo-related
+ if (rot == RinexObsHeader::C6) return TypeID::C6;
+ if (rot == RinexObsHeader::L6) return TypeID::L6;
+ if (rot == RinexObsHeader::D6) return TypeID::D6;
+ if (rot == RinexObsHeader::S6) return TypeID::S6;
+ if (rot == RinexObsHeader::C7) return TypeID::C7;
+ if (rot == RinexObsHeader::L7) return TypeID::L7;
+ if (rot == RinexObsHeader::D7) return TypeID::D7;
+ if (rot == RinexObsHeader::S7) return TypeID::S7;
+ if (rot == RinexObsHeader::C8) return TypeID::C8;
+ if (rot == RinexObsHeader::L8) return TypeID::L8;
+ if (rot == RinexObsHeader::D8) return TypeID::D8;
+ if (rot == RinexObsHeader::S8) return TypeID::S8;
+
+ // Just in case, but it should never get this far
+ return TypeID::Unknown;
+ }
+
+
+
+} // namespace gpstk
+#endif
diff --git a/dev/src/UnixTime.cpp b/dev/src/UnixTime.cpp
new file mode 100644
index 0000000..cf7b935
--- /dev/null
+++ b/dev/src/UnixTime.cpp
@@ -0,0 +1,182 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "UnixTime.hpp"
+#include "TimeConstants.hpp"
+
+namespace gpstk
+{
+ UnixTime& UnixTime::operator=( const UnixTime& right )
+ throw()
+ {
+ tv.tv_sec = right.tv.tv_sec;
+ tv.tv_usec = right.tv.tv_usec;
+ return *this;
+ }
+
+ CommonTime UnixTime::convertToCommonTime() const
+ {
+ return CommonTime( ( MJD_JDAY + UNIX_MJD + tv.tv_sec / SEC_PER_DAY ),
+ ( tv.tv_sec % SEC_PER_DAY ),
+ ( static_cast<double>( tv.tv_usec ) * 1e-6 ) );
+ }
+
+ void UnixTime::convertFromCommonTime( const CommonTime& ct )
+ {
+ long jday, sod;
+ double fsod;
+ ct.get( jday, sod, fsod );
+
+ tv.tv_sec =
+ static_cast<time_t>((jday - MJD_JDAY - UNIX_MJD) * SEC_PER_DAY + sod);
+
+ // round to the nearest microsecond
+ tv.tv_usec = static_cast<time_t>( fsod * 1e6 + 0.5 ) ;
+
+ if (tv.tv_usec >= 1000000)
+ {
+ tv.tv_usec -= 1000000;
+ ++tv.tv_sec;
+ }
+ }
+
+ std::string UnixTime::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv( fmt );
+
+ rv = formattedPrint(rv, getFormatPrefixInt() + "U",
+ "Ud", tv.tv_sec);
+ rv = formattedPrint(rv, getFormatPrefixInt() + "u",
+ "ud", tv.tv_usec);
+
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& se )
+ {
+ GPSTK_RETHROW( se );
+ }
+ }
+
+ bool UnixTime::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin(); i != info.end(); i++ )
+ {
+ switch( i->first )
+ {
+ case 'U':
+ tv.tv_sec = asInt( i->second );
+ break;
+
+ case 'u':
+ tv.tv_usec = asInt( i->second );
+ break;
+
+ default:
+ // do nothing
+ break;
+ };
+ }
+
+ return true;
+ }
+
+ bool UnixTime::isValid() const
+ throw()
+ {
+ UnixTime temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void UnixTime::reset()
+ throw()
+ {
+ tv.tv_sec = tv.tv_usec = 0;
+ }
+
+ bool UnixTime::operator==( const UnixTime& right ) const
+ throw()
+ {
+ if( tv.tv_sec == right.tv.tv_sec &&
+ tv.tv_usec == right.tv.tv_usec )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool UnixTime::operator!=( const UnixTime& right ) const
+ throw()
+ {
+ return ( !operator==( right ) );
+ }
+
+ bool UnixTime::operator<( const UnixTime& right ) const
+ throw()
+ {
+ if( tv.tv_sec < right.tv.tv_sec )
+ {
+ return true;
+ }
+ if( tv.tv_sec == right.tv.tv_sec &&
+ tv.tv_usec < right.tv.tv_usec )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool UnixTime::operator>( const UnixTime& right ) const
+ throw()
+ {
+ return ( !operator<=( right ) );
+ }
+
+ bool UnixTime::operator<=( const UnixTime& right ) const
+ throw()
+ {
+ return ( operator<( right ) ||
+ operator==( right ) );
+ }
+
+ bool UnixTime::operator>=( const UnixTime& right ) const
+ throw()
+ {
+ return ( !operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/UnixTime.hpp b/dev/src/UnixTime.hpp
new file mode 100644
index 0000000..89d56f9
--- /dev/null
+++ b/dev/src/UnixTime.hpp
@@ -0,0 +1,193 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_UNIXTIME_HPP
+#define GPSTK_UNIXTIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+#ifdef _MSC_VER
+// timeval is defined in winsock.h, which we don't want to include
+// because it breaks lots of this code
+struct timeval {
+ long tv_sec; /* seconds */
+ long tv_usec; /* and microseconds */
+};
+#else
+#include <sys/time.h> // for struct timeval
+#endif
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "Unix Timeval" time representation.
+ */
+ class UnixTime : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup utbo UnixTime Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+
+ /**
+ * Default Constructor.
+ * All elements are initialized to zero.
+ */
+ UnixTime( int sec = 0,
+ int usec = 0 )
+ throw()
+ {
+ tv.tv_sec = sec; tv.tv_usec = usec;
+ }
+
+ /** struct timeval Constructor.
+ * Sets time according to the given struct timeval.
+ */
+ UnixTime( struct timeval t )
+ throw()
+ {
+ tv.tv_sec = t.tv_sec; tv.tv_usec = t.tv_usec;
+ }
+
+ /**
+ * Copy Constructor.
+ * @param right a reference to the UnixTime object to copy
+ */
+ UnixTime( const UnixTime& right )
+ throw()
+ : tv( right.tv )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the BasicTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ UnixTime( const TimeTag& right )
+ throw( gpstk::InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ UnixTime( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the UnixTime to copy
+ * @return a reference to this UnixTime
+ */
+ UnixTime& operator=( const UnixTime& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~UnixTime()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "Uu";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%U %u";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup utco UnixTime Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the UnixTime object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ virtual bool operator==( const UnixTime& right ) const
+ throw();
+ virtual bool operator!=( const UnixTime& right ) const
+ throw();
+ virtual bool operator<( const UnixTime& right ) const
+ throw();
+ virtual bool operator>( const UnixTime& right ) const
+ throw();
+ virtual bool operator<=( const UnixTime& right ) const
+ throw();
+ virtual bool operator>=( const UnixTime& right ) const
+ throw();
+ //@}
+
+ struct timeval tv;
+ };
+
+} // namespace
+
+#endif // GPSTK_UNIXTIME_HPP
diff --git a/dev/src/ValidType.hpp b/dev/src/ValidType.hpp
new file mode 100644
index 0000000..45a02a8
--- /dev/null
+++ b/dev/src/ValidType.hpp
@@ -0,0 +1,123 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file ValidType.hpp
+ * Capturing the concept of an uninitialized variable into a nice neat class.
+ */
+
+#ifndef VALIDTYPE_HPP
+#define VALIDTYPE_HPP
+
+#include <ostream>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+
+ // Note that the regular operators don't have to be defined because of the
+ // conversion operator. This allows
+ // ValidType<int> p=1;
+ // p+=1;
+ // to use the regular int operators.
+ // Also note that the exception is declaired outside of the template class
+ // so there will only be one exception for all instantiations
+
+ NEW_EXCEPTION_CLASS(InvalidValue, gpstk::Exception);
+
+ template <class T>
+ class ValidType
+ {
+ public:
+ ValidType(const T& v):value(v),valid(true){};
+ ValidType():valid(false){};
+
+ ValidType& operator=(const T& v) throw() {
+ this->valid = true; this->value = v; return *this; };
+
+ ValidType& operator+=(const T& r) throw(){value-=r;};
+ ValidType& operator-=(const T& r) throw(){value+=r;};
+
+ // A conversion operator, will throw an exception if the object
+ // is marked invalid
+ operator T() const throw(InvalidValue) {
+ if (!this->is_valid()) throw InvalidValue();
+ return value;
+ };
+
+ bool operator==(const ValidType& r) {
+ return this->valid && r.valid && this->value == r.value;
+ };
+
+ bool is_valid() const { return valid;};
+ T get_value() const { return value;};
+
+ void set_valid(const bool& v) throw()
+ { valid=v;}
+
+ private:
+ T value;
+ bool valid;
+ };
+
+ typedef ValidType<float> vfloat;
+ typedef ValidType<double> vdouble;
+ typedef ValidType<char> vchar;
+ typedef ValidType<short> vshort;
+ typedef ValidType<int> vint;
+ typedef ValidType<long> vlong;
+ typedef ValidType<unsigned char> vuchar;
+ typedef ValidType<unsigned short> vushort;
+ typedef ValidType<unsigned int> vuint;
+ typedef ValidType<unsigned long> vulong;
+
+
+ // Yes, Virgina, this is the ugliest declaration that I have ever created...
+ template <class T> std::ostream& operator<<(
+ std::ostream& s, const ValidType<T>& r) throw() {
+ if (r.is_valid())
+ s << r.get_value();
+ else
+ s << "Unknown";
+ return s;
+ }
+
+}
+
+#endif
diff --git a/dev/src/Vector.hpp b/dev/src/Vector.hpp
new file mode 100644
index 0000000..0bbb1d8
--- /dev/null
+++ b/dev/src/Vector.hpp
@@ -0,0 +1,431 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file Vector.hpp
+ * Classes for Vector, both constant and modifiable
+ */
+
+#ifndef GPSTK_VECTOR_HPP
+#define GPSTK_VECTOR_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "VectorBase.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup VectorGroup */
+ //@{
+
+// forward declaration
+ template <class T> class VectorSlice;
+
+/**
+ * This class pretty much duplicates std::valarray<T> except it's fully
+ * STL container compliant. Remember that operators +=, -=, *= and /=
+ * are provided by RefVectorBase.
+ *
+ * @sa matvectest.cpp for examples
+ */
+ template <class T>
+ class Vector : public RefVectorBase<T, Vector<T> >
+ {
+ public:
+ /// STL value type
+ typedef T value_type;
+ /// STL reference type
+ typedef T& reference;
+ /// STL const reference type
+ typedef const T& const_reference;
+ /// STL iterator type
+ typedef T* iterator;
+ /// STL const iterator type
+ typedef const T* const_iterator;
+
+ /// Default constructor
+ Vector() : v(NULL), s(0) {}
+ /// Constructor given an initial size.
+ Vector(size_t siz) : s(siz)
+ //: v(new T[siz]), s(siz)
+ {
+ v = new T[siz];
+ if(!v) {
+ VectorException e("Vector(size_t) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ }
+ /**
+ * Constructor given an initial size and default value for all elements.
+ */
+ Vector(size_t siz, const T defaultValue) : s(siz)
+ //: v(new T[siz]), s(siz)
+ {
+ v = new T[siz];
+ if(!v) {
+ VectorException e("Vector<T>(size_t, const T) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ assignFrom(defaultValue);
+ }
+ /**
+ * Copy constructor from a ConstVectorBase type.
+ */
+ template <class E>
+ Vector(const ConstVectorBase<T, E>& r) : s(r.size())
+ //: v(new T[r.size()]), s(r.size())
+ {
+ v = new T[r.size()];
+ if(!v) {
+ VectorException e("Vector<T>(ConstVectorBase) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ assignFrom(r);
+ }
+ /**
+ * Copy constructor.
+ */
+ Vector(const Vector& r) : s(r.s)
+ //: v(new T[r.s]), s(r.s)
+ {
+ v = new T[r.s];
+ if(!v) {
+ VectorException e("Vector(Vector) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ assignFrom(r);
+ }
+ /**
+ * Valarray constructor
+ */
+ Vector(const std::valarray<T>& r) : s(r.size())
+ //: v(new T[r.size()]), s(r.size())
+ {
+ v = new T[r.size()];
+ if(!v) {
+ VectorException e("Vector(valarray) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ assignFrom(r);
+ }
+
+ /// subvector constructor
+ template <class E>
+ Vector(const ConstVectorBase<T, E>& vec,
+ size_t top,
+ size_t num) : v(size_t(0)),s(0)
+ {
+ // sanity checks...
+ if ( top >= vec.size() ||
+ top + num > vec.size())
+ {
+ VectorException e("Invalid dimensions or size for Vector(VectorBase)");
+ GPSTK_THROW(e);
+ }
+
+ v = new T[num];
+ if(!v) {
+ VectorException e("Vector(subvector) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ size_t i;
+ for(i = 0; i < num; i++)
+ v[i] = vec(top+i);
+ s = num;
+ }
+
+ /// Destructor
+ ~Vector()
+ { if (v) delete [] v; }
+
+ /// STL iterator begin
+ iterator begin() { return v; }
+ /// STL const iterator begin
+ const_iterator begin() const { return v; }
+ /// STL iterator end
+ iterator end() { return v + s; }
+ /// STL const iterator end
+ const_iterator end() const { return v + s; }
+ /// STL front
+ value_type front() { return v[s-1]; }
+ /// STL const front
+ const_reference front() const { return v[s-1];}
+ /// STL empty
+ bool empty() const { return size == 0; }
+ /// STL size
+ size_t size() const {return s; }
+ /// STL max_size
+ size_t max_size() const { return std::numeric_limits<size_t>().max(); }
+
+ /// Non-const operator []
+ T& operator[] (size_t i)
+ { return v[i]; }
+ /// Const operator []
+ T operator[] (size_t i) const
+ { return v[i]; }
+ /// Non-const operator ()
+ T& operator() (size_t i)
+ { return v[i]; }
+ /// Const operator ()
+ T operator() (size_t i) const
+ { return v[i]; }
+
+ /// Like valarray, lets you do vec[slice] to get a VectorSlice.
+ VectorSlice<T> operator[] (const std::slice& sli)
+ { return VectorSlice<T>(*this, sli); }
+
+ /// *this will be resized if it isn't as large as x.
+ Vector& operator=(const Vector& x)
+ { resize(x.s); return assignFrom(x); }
+
+ /// *this will be resized if it isn't as large as x.
+ template <class E>
+ Vector& operator=(const ConstVectorBase<T, E>& x)
+ { resize(x.size()); return assignFrom(x); }
+
+ /// *this will be resized if it isn't as large as x.
+ Vector& operator=(const std::valarray<T>& x)
+ { resize(x.size()); return assignFrom(x); }
+ /// Only (*this).size() elements will be assigned.
+ Vector& operator=(const T x)
+ { return assignFrom(x); }
+ /// Only (*this).size() elements will be assigned.
+ Vector& operator=(const T* x)
+ { return assignFrom(x); }
+
+ /// *this will be cleared and resized as necessary
+ inline Vector& operator=(const std::vector<T>& x)
+ {
+ size_t i;
+ size_t vs = x.size();
+ (*this).resize(vs);
+
+ for (i = 0; i < vs; i++)
+ (*this)[i] = x[i];
+
+ return (*this);
+ }
+
+ /// Resizes the vector. if index > size, the vector will be
+ /// erased and the contents destroyed.
+ Vector& resize(const size_t index)
+ {
+ if (index > s)
+ {
+ if (v)
+ delete [] v;
+ v = new T[index];
+ if(!v) {
+ VectorException e("Vector.resize(size_t) failed to allocate");
+ GPSTK_THROW(e);
+ }
+ }
+ s = index;
+ return *this;
+ }
+
+ /// resize with new default value
+ Vector& resize(const size_t index, const T defaultValue)
+ {
+ resize(index);
+ size_t i;
+ for(i = 0; i < s; i++)
+ v[i] = defaultValue;
+ return *this;
+ }
+
+ /// Returns the concatenation of this Vector and Vector b
+ inline Vector operator&&(const Vector &b)
+ {
+ size_t i;
+ size_t vs = this->size();
+ size_t bs = b.size();
+ size_t rows = vs + bs;
+ Vector<T> toReturn(rows);
+
+ for (i = 0; i < vs; i++)
+ toReturn[i] = (*this)[i];
+
+ for (i = 0; i < bs; i++)
+ toReturn[i+vs] = b[i];
+
+ return toReturn;
+ }
+
+ /// Returns the concatenation of this Vector and a scalar of type T
+ inline Vector operator&&(const T &b)
+ {
+ size_t i;
+ size_t vs = this->size();
+ size_t rows = vs + 1;
+ Vector<T> toReturn(rows);
+
+ for (i = 0; i < vs; i++)
+ toReturn[i] = (*this)[i];
+
+ toReturn[rows - 1] = b;
+
+ return toReturn;
+ }
+
+ private:
+
+ // a good optimizer will remove this function call
+ // if RANGECHECK isn't defined. remember that
+ // range checking affects EVERY operation
+ inline bool rangeCheck(const size_t index) const
+ {
+#ifdef RANGECHECK
+ return (index < s);
+#else
+ return true;
+#endif
+ }
+
+ /// The vector
+ T* v;
+ /// The size of the vector.
+ size_t s;
+ };
+ // end class Vector<T>
+
+/**
+ * A slice of Vector<T> that can be modified.
+ * @warning Remember that (VectorSlice = VectorSlice) will
+ * assign elements to the VectorSlice, not copy the VectorSlice internal data!
+ */
+ template <class T>
+ class VectorSlice : public RefVectorSliceBase<T, VectorSlice<T> >
+ {
+ public:
+ /// Default constructor
+ VectorSlice()
+ : v(NULL), s(std::slice(0,0,0))
+ { }
+
+ /// Makes a slice of the whole vector
+ VectorSlice(Vector<T>& vv)
+ : v(&vv), s(std::slice(0,vv.size(),1))
+ { }
+
+ /// Makes a slice of the vector with the given std::slice.
+ VectorSlice(Vector<T>& vv, const std::slice& ss)
+ : v(&vv), s(ss)
+ { vecSliceCheck(vv.size()); }
+
+ /// Assign the elements of this slice from another vector.
+ template <class V>
+ VectorSlice& operator=(const ConstVectorBase<T, V>& x)
+ { return assignFrom(x); }
+
+ /// Assign the elements of this slice from a valarray.
+ VectorSlice& operator=(const std::valarray<T>& x)
+ { return assignFrom(x); }
+
+ /// Assign all the elements of this slice to x.
+ VectorSlice& operator=(const T x)
+ { return assignFrom(x); }
+
+ /// Assign (*this).size() elements from x to (*this).
+ VectorSlice& operator=(const T* x)
+ { return assignFrom(x); }
+
+ /// Returns the modifiable i'th element of the slice.
+ T& operator[] (size_t i)
+ { return (*v)[start() + i * stride()]; }
+ /// Returns the const i'th element of the slice.
+ T operator[] (size_t i) const
+ { return (*v)[start() + i * stride()]; }
+ /// Returns the modifiable i'th element of the slice.
+ T& operator() (size_t i)
+ { return (*v)[start() + i * stride()]; }
+ /// Returns the const i'th element of the slice.
+ T operator() (size_t i) const
+ { return (*v)[start() + i * stride()]; }
+
+ /// returns the number of elements in the slice
+ inline size_t size() const { return s.size(); }
+ /// returns the index in the vector of the first element.
+ inline size_t start() const { return s.start(); }
+ /// returns the number of elements to skip between (*this)[i] and
+ /// (*this)[i+1]
+ inline size_t stride() const { return s.stride(); }
+ private:
+ /// the vector used as a source for the slice
+ Vector<T>* v;
+ /// the slice specification.
+ std::slice s;
+ };
+
+/**
+ * A Vector<T> slice that doesn't allow modification.
+ */
+ template <class T>
+ class ConstVectorSlice : public ConstVectorSliceBase<T, ConstVectorSlice<T> >
+ {
+ public:
+ /// default constructor
+ ConstVectorSlice()
+ : v(NULL), s(std::slice(0,0,0))
+ { }
+
+ /// Makes a slice of the whole vector
+ ConstVectorSlice(const Vector<T>& vv)
+ : v(&vv), s(std::slice(0,vv.size(),1))
+ { }
+
+ /// Uses the given slice and vector.
+ ConstVectorSlice(const Vector<T>& vv, const std::slice& ss)
+ : v(&vv), s(ss)
+ { vecSliceCheck(vv.size()); }
+
+ /// Returns a const version of the i'th slice element.
+ T operator[] (size_t i) const
+ { return (*v)[start() + i * stride()]; }
+ /// Returns a const version of the i'th slice element.
+ T operator() (size_t i) const
+ { return (*v)[start() + i * stride()]; }
+
+ /// returns the number of elements in the slice
+ inline size_t size() const { return s.size(); }
+ /// returns the index in the vector of the first element.
+ inline size_t start() const { return s.start(); }
+ /// returns the number of elements to skip between (*this)[i] and
+ /// (*this)[i+1]
+ inline size_t stride() const { return s.stride(); }
+
+ private:
+ /// Vectortor used as a source for this slice.
+ const Vector<T>* v;
+ /// the slice specification.
+ std::slice s;
+ };
+
+ //@}
+
+} // namespace
+
+#include "VectorOperators.hpp"
+
+#endif
diff --git a/dev/src/VectorBase.cpp b/dev/src/VectorBase.cpp
new file mode 100644
index 0000000..fbd11b3
--- /dev/null
+++ b/dev/src/VectorBase.cpp
@@ -0,0 +1,38 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file VectorBase.cpp
+ * Initialize static members of base Vector class
+ */
+
+#include "VectorBase.hpp"
+
+namespace gpstk
+{
+ // initialize static members
+ double RefVectorBaseHelper::zeroTolerance = 10e-10;
+} // namespace gpstk
diff --git a/dev/src/VectorBase.hpp b/dev/src/VectorBase.hpp
new file mode 100644
index 0000000..5f85037
--- /dev/null
+++ b/dev/src/VectorBase.hpp
@@ -0,0 +1,301 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file VectorBase.hpp
+ * Base Vector class
+ */
+
+#ifndef GPSTK_VECTOR_BASE_HPP
+#define GPSTK_VECTOR_BASE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <valarray>
+#include "Exception.hpp"
+
+#include "MathBase.hpp"
+
+namespace gpstk
+{
+/** @addtogroup VectorGroup */
+ //@{
+
+/// An exception thrown when there's a problem with a vector
+/// @ingroup exceptiongroup
+NEW_EXCEPTION_CLASS(VectorException, gpstk::Exception);
+
+/*
+ * There were two overriding philosophies to the vector and matrix classes:
+ *
+ * The concept of "const" and "reference" (i.e. changable) vector
+ * and matrix types both exist, so that any Const* type could not be altered
+ * while Ref* types can. This allowed one to add the slice classes that
+ * let you use a subset of a vector and modify (or not if it's const) the
+ * original vector. Furthermore, it allowed slice and non-slice classes
+ * to interoperate through the ConstVectorBase or ConstMatrixBase classes, so, for
+ * example, operator* only needs to be written in terms of ConstVectorBase to
+ * work correctly with Vector, VectorSlice and ConstVectorSlice.
+ *
+ * Remember that a slice MUST refer to a vector or matrix; you cannot have
+ * a slice independent of a base vector or matrix.
+ *
+ * In the future:
+ *
+ * - Change the math operators to template expressions.
+ * - Add general slices and diagonal matrix slices.
+ * - Make range checking more consistent.
+ * - Make operator= and copy constructors consistent between const and
+ * non-const versions.
+ * - Reevaluate the need for default slice constructors...?
+ * - find a way for LUD and SVD to use the template type of the parameters
+ * rather than specified when the object is created.
+ * - come up with a policy for when zeroize() will be used before results
+ * are returned.
+ *
+ * @warning MSVC cant deal with cmath header.
+ * Changes to accomidate this may break complex!
+ */
+
+/**
+ * A base class for a vector that does not allow modification of the internal
+ * vector. BaseClass is the base class that implements the vector.
+ */
+ template <class T, class BaseClass>
+ class ConstVectorBase
+ {
+ public:
+ /// Constructor
+ explicit ConstVectorBase() {}
+
+ /// Returns the size of the base class.
+ size_t size() const
+ { return static_cast<const BaseClass*>(this)->size(); }
+ /// returns the element at index i
+ T operator[] (size_t i) const
+ { return constVectorRef(i); }
+ /// returns the element at index i
+ T operator() (size_t i) const
+ { return constVectorRef(i); }
+
+ protected:
+ /// returns the element at index i by calling the base class's operator[]
+ inline T constVectorRef(size_t i) const
+ throw(VectorException)
+ {
+ const BaseClass& b = static_cast<const BaseClass&>(*this);
+#ifdef RANGECHECK
+ if (i >= b.size())
+ {
+ VectorException e("Invalid ConstVectorBase index");
+ GPSTK_THROW(e);
+ }
+#endif
+ return b[i];
+ }
+ };
+
+ /// a class to hold the static members of RefVectorBase. Static members
+ /// in template classes have to be initialized on a PER TEMPLATE
+ /// basis - this gets around that problem.
+ class RefVectorBaseHelper
+ {
+ public:
+ /// used with zeroize(), any number below this value will become 0.
+ /// this variable can be assigned any value.
+ static double zeroTolerance;
+ };
+
+/**
+ * A vector base class that allows modification of the internal representation.
+ */
+ template <class T, class BaseClass>
+ class RefVectorBase : public ConstVectorBase<T, BaseClass>,
+ public RefVectorBaseHelper
+ {
+ public:
+ /// constructor
+ explicit RefVectorBase() {}
+ /// returns a modifiable version of the element at index i.
+ T& operator[] (size_t i)
+ { return vecRef(i); }
+ /// returns a modifiable version of the element at index i.
+ T& operator() (size_t i)
+ { return vecRef(i); }
+ /// Any value in the vector with absolute value below
+ /// zeroTolerance is set to zero.
+ BaseClass& zeroize()
+ {
+ BaseClass& me = static_cast<BaseClass&>(*this);
+ size_t i;
+ for (i = 0; i < me.size(); i++)
+ if (ABS(me[i]) < zeroTolerance)
+ me[i] = T(0);
+ return me;
+ }
+
+#define VecBaseArrayAssignMacroDontCheckRange(func) \
+ BaseClass& me = static_cast<BaseClass&>(*this); \
+ size_t i; for (i=0; i < me.size(); i++) { \
+ me[i] func x[i]; \
+ } \
+ return me;
+
+#ifdef RANGECHECK
+#define VecBaseArrayAssignMacro(func) \
+ BaseClass& me = static_cast<BaseClass&>(*this); \
+ if (x.size() != me.size()) \
+ { \
+ VectorException e("Unequal lengths for vectors"); \
+ GPSTK_THROW(e); \
+ } \
+ size_t i; for (i=0; i < me.size(); i++) me[i] func x[i]; \
+ return me;
+#else
+#define VecBaseArrayAssignMacro(func) \
+VecBaseArrayAssignMacroDontCheckRange(func)
+#endif
+
+#define VecBaseAtomicAssignMacro(func) \
+ BaseClass& me = static_cast<BaseClass&>(*this); \
+ size_t i; for (i=0; i < me.size(); i++) me[i] func x; \
+ return me;
+
+#define VecBaseNewAssignOperator(funcName, op) \
+ /** Performs op on (*this).size() elements of (*this) from x */ \
+ template <class E> BaseClass& funcName(const ConstVectorBase<T, E>& x) \
+ { VecBaseArrayAssignMacro(op) } \
+ /** Performs op on (*this).size() elements of (*this) from x */ \
+ BaseClass& funcName(const std::valarray<T>& x) \
+ { VecBaseArrayAssignMacro(op) } \
+ /** Performs op on (*this).size() elements of (*this) from x */ \
+ BaseClass& funcName(const T* x) \
+ { VecBaseArrayAssignMacroDontCheckRange(op) } \
+ /** Performs op on (*this).size() elements of (*this) from x */ \
+ BaseClass& funcName(T x) \
+ { VecBaseAtomicAssignMacro(op) }
+
+ /**
+ * Remember that operator= is NOT inherited. Derived classes can
+ * use assignFrom to initialize values from a copy constructor or
+ * their own operator= rather than explicitly copying them.
+ */
+ VecBaseNewAssignOperator(assignFrom, =);
+ VecBaseNewAssignOperator(operator+=, +=);
+ VecBaseNewAssignOperator(operator-=, -=);
+ VecBaseNewAssignOperator(operator*=, *=);
+ VecBaseNewAssignOperator(operator/=, /=);
+
+ /// unary minus: multiplies each element of this vector by -1.
+ BaseClass& operator-()
+ {
+ const T x=T(-1);
+ VecBaseAtomicAssignMacro(*=);
+ }
+
+ protected:
+ /// Returns a modifiable object at index i.
+ inline T& vecRef(size_t i)
+ throw(VectorException)
+ {
+ BaseClass& b = static_cast<BaseClass&>(*this);
+#ifdef RANGECHECK
+ if (i >= b.size())
+ {
+ VectorException e("Invalid VectorBase index");
+ GPSTK_THROW(e);
+ }
+#endif
+ return b[i];
+ }
+ };
+
+/**
+ * A base class that represents a subset of a vector.
+ */
+ template <class BaseClass>
+ class VectorSliceBase
+ {
+ public:
+ /// constructor
+ explicit VectorSliceBase() {}
+
+ /// the number of elements in the slice.
+ size_t size() const
+ { return static_cast<const BaseClass*>(this)->size(); }
+ /// the start index in the BaseClass vector for this slice.
+ size_t start() const
+ { return static_cast<const BaseClass*>(this)->start(); }
+ /// How many elements separate the i'th element from the i+1'th element.
+ size_t stride() const
+ { return static_cast<const BaseClass*>(this)->stride(); }
+
+ protected:
+ /// Given the size of the source vector, checks that the slice is valid.
+ inline void vecSliceCheck(size_t sourceSize) const
+ throw(VectorException)
+ {
+#ifdef RANGECHECK
+ // sanity checks...
+ if ( (start() >= sourceSize) ||
+ ((start() + (size() - 1) * stride()) >= sourceSize) )
+ {
+ VectorException e("Invalid range for slice");
+ GPSTK_THROW(e);
+ }
+#endif
+ }
+ };
+
+/**
+ * A vector slice base class that doesn't allow modification of the
+ * internal elements.
+ */
+ template <class T, class BaseClass>
+ class ConstVectorSliceBase : public VectorSliceBase<BaseClass>,
+ public ConstVectorBase<T, BaseClass>
+ {
+public:
+ explicit ConstVectorSliceBase() {}
+};
+
+/**
+ * A vector slice base class that does allow modification of the
+ * internal elements.
+ */
+template <class T, class BaseClass>
+class RefVectorSliceBase : public VectorSliceBase<BaseClass>,
+ public RefVectorBase<T, BaseClass>
+{
+public:
+ explicit RefVectorSliceBase() {}
+};
+
+//@}
+
+} // namespace gpstk
+
+#include "VectorBaseOperators.hpp"
+
+#endif //GPSTK_VECTOR_BASE_HPP
diff --git a/dev/src/VectorBaseOperators.hpp b/dev/src/VectorBaseOperators.hpp
new file mode 100644
index 0000000..0902705
--- /dev/null
+++ b/dev/src/VectorBaseOperators.hpp
@@ -0,0 +1,272 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file VectorBaseOperators.hpp
+ * Vector base class operators, including I/O, min(), dot(), comparisons, etc
+ */
+
+#ifndef GPSTK_VECTOR_BASE_OPERATORS_HPP
+#define GPSTK_VECTOR_BASE_OPERATORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include <fstream> // for copyfmt
+#include <vector>
+#include <iomanip>
+
+namespace gpstk
+{
+
+ /** @addtogroup VectorGroup */
+ //@{
+
+/** Output operator for ConstVectorBase objects */
+ template <class T, class E>
+ std::ostream& operator<<(std::ostream& s, const ConstVectorBase<T, E>& a)
+ {
+ std::ofstream savefmt;
+ savefmt.copyfmt(s);
+ size_t i;
+ for (i=0; i< a.size(); i++) {
+ s << std::setw(1) << ' ';
+ s.copyfmt(savefmt);
+ s << a[i];
+ }
+ return s;
+ }
+
+/** Returns the sum of the elements of the vector */
+ template <class T, class BaseClass>
+ inline T sum(const ConstVectorBase<T, BaseClass>& l)
+ {
+ T total(0);
+ size_t i;
+ for (i = 0; i < l.size(); i++)
+ total += l[i];
+ return total;
+ }
+
+/** Return the element with smallest absolute value in the vector */
+ template <class T, class BaseClass>
+ inline T minabs(const ConstVectorBase<T, BaseClass>& l) throw (VectorException)
+ {
+ if (l.size() == 0)
+ {
+ VectorException e("Can't find the minabs of an empty vector");
+ GPSTK_THROW(e);
+ }
+ T min = l[0];
+ size_t i;
+ for (i = 1; i < l.size(); i++)
+ if (ABS(l[i]) < ABS(min))
+ min = l[i];
+ return min;
+ }
+
+/** Returns the smallest element of the vector */
+ template <class T, class BaseClass>
+ inline T min(const ConstVectorBase<T, BaseClass>& l) throw (VectorException)
+ {
+ if (l.size() == 0)
+ {
+ VectorException e("Can't find the min of an empty vector");
+ GPSTK_THROW(e);
+ }
+ T min = l[0];
+ size_t i;
+ for (i = 1; i < l.size(); i++)
+ if (l[i] < min)
+ min = l[i];
+ return min;
+ }
+
+/** Return the element with largest absolute value in the vector */
+ template <class T, class BaseClass>
+ inline T maxabs(const ConstVectorBase<T, BaseClass>& l)
+ {
+ if (l.size() == 0)
+ {
+ VectorException e("Can't find the maxabs of an empty vector");
+ GPSTK_THROW(e);
+ }
+ T max = l[0];
+ size_t i;
+ for (i = 1; i < l.size(); i++)
+ if (ABS(l[i]) > ABS(max))
+ max = l[i];
+ return max;
+ }
+
+/** Returns the largest element of the vector */
+ template <class T, class BaseClass>
+ inline T max(const ConstVectorBase<T, BaseClass>& l)
+ {
+ if (l.size() == 0)
+ {
+ VectorException e("Can't find the max of an empty vector");
+ GPSTK_THROW(e);
+ }
+ T max = l[0];
+ size_t i;
+ for (i = 1; i < l.size(); i++)
+ if (l[i] > max)
+ max = l[i];
+ return max;
+ }
+
+/** returns the dot product of the two vectors */
+ template <class T, class BaseClass, class BaseClass2>
+ inline T dot(const ConstVectorBase<T, BaseClass>& l,
+ const ConstVectorBase<T, BaseClass2>& r)
+ {
+ T sum(0);
+ size_t i,n=(l.size() > r.size() ? r.size() : l.size());
+ for (i = 0; i < n; i++)
+ {
+ sum += l[i] * r[i];
+ }
+ return sum;
+ }
+
+/** returns the dot product of a vector and a scalar */
+ template <class T, class BaseClass>
+ inline T dot(const ConstVectorBase<T, BaseClass>& l, const T r)
+ {
+ T sum(0);
+ size_t i;
+ for (i = 0; i < l.size(); i++)
+ {
+ sum += l[i] * r;
+ }
+ return sum;
+ }
+
+/** returns the dot product of a scalar and a vector */
+ template <class T, class BaseClass>
+ inline T dot(const T l, const ConstVectorBase<T, BaseClass>& r)
+ {
+ T sum(0);
+ size_t i;
+ for (i = 0; i < r.size(); i++)
+ {
+ sum += l * r[i];
+ }
+ return sum;
+ }
+
+/** returns the norm of the vector */
+ template <class T, class BaseClass>
+ inline T norm(const ConstVectorBase<T, BaseClass>& v)
+ {
+ T mag=T(0);
+ if(v.size()==0) return mag;
+ mag = ABS(v(0));
+ for(size_t i=1; i<v.size(); i++) {
+ if(mag > ABS(v(i)))
+ mag *= SQRT(T(1)+(v(i)/mag)*(v(i)/mag));
+ else if(ABS(v(i)) > mag)
+ mag = ABS(v(i))*SQRT(T(1)+(mag/v(i))*(mag/v(i)));
+ else
+ mag *= SQRT(T(2));
+ }
+ return mag;
+ }
+
+/** return the Minkowski product of two vectors of length 4. */
+ template <class T, class BaseClass, class BaseClass2>
+ inline T Minkowski(const ConstVectorBase<T, BaseClass>& v,
+ const ConstVectorBase<T, BaseClass2>& w)
+ {
+ if (v.size()<4 || w.size()<4)
+ {
+ VectorException e("Minkowski requires vector length 4");
+ GPSTK_THROW(e);
+ }
+ return (v(0)*w(0)+v(1)*w(1)+v(2)*w(2)-v(3)*w(3));
+ }
+
+/** finds the cosine between the two vectors */
+ template <class T, class BaseClass1, class BaseClass2>
+ inline T cosVec(const ConstVectorBase<T, BaseClass1>& a,
+ const ConstVectorBase<T, BaseClass2>& b)
+ {
+ T na=norm(a), nb=norm(b), c(0);
+ size_t i,n=(b.size() > a.size() ? a.size() : b.size());
+ for(i=0; i<n; i++) c += (a(i)/na)*(b(i)/nb);
+ return c;
+ }
+
+// shortwire equality operators - compares each individual
+// element in the vector but returns one 'true' or 'false'
+// for the whole comparison. note this only compares
+// the smaller of the size of the two vectors
+#define VecShortwireComparisonOperator(func, op) \
+/** Performs op on each element of l and r, returning false if any fail */ \
+template <class T, class BaseClass, class BaseClass2> \
+inline bool func(const ConstVectorBase<T, BaseClass>& l, \
+ const ConstVectorBase<T, BaseClass2>& r) \
+{ \
+ size_t len = (l.size() < r.size()) ? l.size() : r.size(); \
+ size_t i; \
+ for(i = 0; i < len; i++) \
+ if ( !(l[i] op r[i]) ) \
+ return false; \
+ return true; \
+} \
+/** Performs op on each element of l to r, returning false if any fail */ \
+template <class T, class BaseClass> \
+inline bool func(const ConstVectorBase<T, BaseClass>& l, const T r) \
+{ \
+ size_t len = l.size(); \
+ size_t i; \
+ for(i = 0; i < len; i++) \
+ if ( !(l[i] op r) ) \
+ return false; \
+ return true; \
+} \
+/** Performs op on each element of r to l, returning false if any fail */ \
+template <class T, class BaseClass> \
+inline bool func(const T l, const ConstVectorBase<T, BaseClass>& r) \
+{ \
+ size_t len = r.size(); \
+ size_t i; \
+ for(i = 0; i < len; i++) \
+ if ( !(l op r[i]) ) \
+ return false; \
+ return true; \
+}
+
+VecShortwireComparisonOperator(eq, ==)
+ VecShortwireComparisonOperator(ne, !=)
+ VecShortwireComparisonOperator(lt, <)
+ VecShortwireComparisonOperator(gt, >)
+ VecShortwireComparisonOperator(ge, >=)
+ VecShortwireComparisonOperator(le, <=)
+
+ //@}
+
+} // namespace gpstk
+
+#endif // GPSTK_VECTOR_BASE_OPERATORS_HPP
diff --git a/dev/src/VectorOperators.hpp b/dev/src/VectorOperators.hpp
new file mode 100644
index 0000000..3f0e37b
--- /dev/null
+++ b/dev/src/VectorOperators.hpp
@@ -0,0 +1,189 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file VectorOperators.hpp
+ * Vector operators, including arithmetic, trig, cross, RMS, etc
+ */
+
+#ifndef GPSTK_VECTOR_OPERATORS_HPP
+#define GPSTK_VECTOR_OPERATORS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+namespace gpstk
+{
+
+ /** @addtogroup VectorGroup */
+ //@{
+
+#define VecBaseNewUnaryOperator(func) \
+ /** performs func on each element of x, returning a new vector */ \
+ template <class T, class BaseClass> \
+ Vector<T> func(const ConstVectorBase<T, BaseClass>& x) \
+ { \
+ BaseClass toReturn(x.size()); \
+ size_t i; for (i=0; i < x.size(); i++) toReturn[i] = func(x[i]); \
+ return toReturn; \
+ }
+
+// VecBaseNewUnaryOperator(-)
+ VecBaseNewUnaryOperator(abs)
+ VecBaseNewUnaryOperator(acos)
+ VecBaseNewUnaryOperator(asin)
+ VecBaseNewUnaryOperator(atan)
+ VecBaseNewUnaryOperator(cos)
+ VecBaseNewUnaryOperator(cosh)
+ VecBaseNewUnaryOperator(exp)
+ VecBaseNewUnaryOperator(log)
+ VecBaseNewUnaryOperator(log10)
+ VecBaseNewUnaryOperator(sinh)
+ VecBaseNewUnaryOperator(sin)
+ VecBaseNewUnaryOperator(sqrt)
+ VecBaseNewUnaryOperator(tan)
+ VecBaseNewUnaryOperator(tanh)
+
+#define VecBaseNewBinaryOperator(func, retval) \
+/** returns a retval with each element the result of l[i] func r[i] */ \
+template <class T, class BaseClass, class BaseClass2> \
+retval operator func(const ConstVectorBase<T, BaseClass>& l, \
+ const ConstVectorBase<T, BaseClass2>& r) \
+{ \
+ if (l.size() != r.size()) \
+ { \
+ VectorException e("Unequal lengths vectors"); \
+ GPSTK_THROW(e); \
+ } \
+ retval toReturn(l.size()); \
+ size_t i; \
+ for (i=0; i < l.size(); i++) toReturn[i] = l[i] func r[i]; \
+ return toReturn; \
+} \
+/** returns a retval with each element the result of l[i] func (scalar)r */ \
+template <class T, class BaseClass> \
+retval operator func(const ConstVectorBase<T, BaseClass>& l, const T r) \
+{ \
+ retval toReturn(l.size()); \
+ size_t i; \
+ for (i=0; i < l.size(); i++) toReturn[i] = l[i] func r; \
+ return toReturn; \
+} \
+/** returns a retval with each element the result of (scalar)l func r[i] */ \
+template <class T, class BaseClass> \
+retval operator func(const T l, const ConstVectorBase<T, BaseClass>& r) \
+{ \
+ retval toReturn(r.size()); \
+ size_t i; \
+ for (i=0; i < r.size(); i++) toReturn[i] = l func r[i]; \
+ return toReturn; \
+}
+
+ VecBaseNewBinaryOperator(*, Vector<T>)
+ VecBaseNewBinaryOperator(/, Vector<T>)
+ VecBaseNewBinaryOperator(%, Vector<T>)
+ VecBaseNewBinaryOperator(+, Vector<T>)
+ VecBaseNewBinaryOperator(-, Vector<T>)
+ VecBaseNewBinaryOperator(^, Vector<T>)
+ VecBaseNewBinaryOperator(&, Vector<T>)
+ VecBaseNewBinaryOperator(|, Vector<T>)
+
+ VecBaseNewBinaryOperator(==, Vector<bool>)
+ VecBaseNewBinaryOperator(<, Vector<bool>)
+ VecBaseNewBinaryOperator(>, Vector<bool>)
+ VecBaseNewBinaryOperator(!=, Vector<bool>)
+ VecBaseNewBinaryOperator(<=, Vector<bool>)
+ VecBaseNewBinaryOperator(>=, Vector<bool>)
+
+#define VecBaseNewBinaryTranscendentalOperator(func, retval) \
+/** performs func between each element of l and r, returning a retval */ \
+ template <class T, class BaseClass, class BaseClass2> \
+ retval func(const ConstVectorBase<T, BaseClass>& l, \
+ const ConstVectorBase<T, BaseClass2>& r) \
+ { \
+ retval toReturn(l.size()); \
+ size_t i; \
+ for (i=0; i < l.size(); i++) toReturn[i] = func(l[i], r[i]); \
+ return toReturn; \
+ } \
+/** performs func between each element of l and (scalar)r, returning a retval */ \
+template <class T, class BaseClass> \
+retval func(const ConstVectorBase<T, BaseClass>& l, const T r) \
+{ \
+ retval toReturn(l.size()); \
+ size_t i; \
+ for (i=0; i < l.size(); i++) toReturn[i] = func(l[i], r); \
+ return toReturn; \
+} \
+/** performs func between (scalar)l and each element of r, returning a retval */ \
+template <class T, class BaseClass> \
+retval func(const T l, const ConstVectorBase<T, BaseClass>& r) \
+{ \
+ retval toReturn(r.size()); \
+ size_t i; \
+ for (i=0; i < r.size(); i++) toReturn[i] = func(l, r[i]); \
+ return toReturn; \
+}
+
+ VecBaseNewBinaryTranscendentalOperator(atan, Vector<T>)
+ VecBaseNewBinaryTranscendentalOperator(pow, Vector<T>)
+
+/** finds the cross product between l and r */
+ template <class T, class BaseClass, class BaseClass2>
+ Vector<T> cross(const ConstVectorBase<T, BaseClass>& l,
+ const ConstVectorBase<T, BaseClass2>& r) throw(VectorException)
+{
+ if ((l.size() != 3) && (r.size() != 3))
+ {
+ VectorException e("Cross product requires vectors of size 3");
+ GPSTK_THROW(e);
+ }
+ BaseClass toReturn(3);
+ toReturn[0] = l[1] * r[2] - l[2] * r[1];
+ toReturn[1] = l[2] * r[0] - l[0] * r[2];
+ toReturn[2] = l[0] * r[1] - l[1] * r[0];
+ return toReturn;
+}
+
+/** returns a new vector with the normalized version of l */
+template <class T, class BaseClass>
+Vector<T> normalize(const ConstVectorBase<T, BaseClass>& l)
+{ return l / norm(l); }
+
+/** returns the root-sum-square of the elements of l */
+template <class T, class BaseClass>
+T RSS(const ConstVectorBase<T, BaseClass>& l)
+{ return norm(l); }
+
+/** returns the root-mean-square of the elements of l */
+template <class T, class BaseClass>
+T RMS(const ConstVectorBase<T, BaseClass>& l)
+{ return norm(l)/SQRT(T(l.size())); }
+
+ //@}
+
+} // namespace
+
+#endif
+
+
diff --git a/dev/src/WGS84Geoid.hpp b/dev/src/WGS84Geoid.hpp
new file mode 100644
index 0000000..fb9428b
--- /dev/null
+++ b/dev/src/WGS84Geoid.hpp
@@ -0,0 +1,131 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file WGS84Geoid.hpp
+ * WGS 1984 model of the geoid
+ */
+
+#ifndef GPSTK_WGS84GEOID_HPP
+#define GPSTK_WGS84GEOID_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "GeoidModel.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /// This class represents the geodetic model defined in NIMA
+ /// TR8350.2, "Department of Defense World Geodetic System 1984".
+ class WGS84Geoid : public GeoidModel
+ {
+ public:
+
+ /// Defined in TR8350.2, Appendix A.1
+ /// @return semi-major axis of Earth in meters.
+ virtual double a() const throw()
+ { return 6378137.0; }
+
+ /// Derived from TR8350.2, Appendix A.1
+ /// @return semi-major axis of Earth in km.
+ virtual double a_km() const throw()
+ { return a() / 1000.0; }
+
+ /**
+ * Derived from TR8350.2, Appendix A.1
+ * @note This parameter was in gappc as e-2, but a
+ * little calculator work indicates it should really be e-3.
+ * We'll leave it as e-3 for now.
+ * @return flattening (ellipsoid parameter).
+ */
+ virtual double flattening() const throw()
+ { return 0.335281066475e-3; }
+
+ /// Defined in TR8350.2, Table 3.3
+ /// @return eccentricity (ellipsoid parameter).
+ virtual double eccentricity() const throw()
+ { return 8.1819190842622e-2; }
+
+ /// Defined in TR8350.2, Table 3.3
+ /// @return eccentricity squared (ellipsoid parameter).
+ virtual double eccSquared() const throw()
+ { return 6.69437999014e-3; }
+
+ /// Defined in TR8350.2, 3.2.4 line 3-6, or Table 3.1
+ /// @return angular velocity of Earth in radians/sec.
+ virtual double angVelocity() const throw()
+ { return 7.292115e-5; }
+
+ /// Defined in TR8350.2, Table 3.1
+ /// @return geocentric gravitational constant in m**3 / s**2
+ virtual double gm() const throw()
+ { return 3986004.418e8; }
+
+ /// Derived from TR8350.2, Table 3.1
+ /// @return geocentric gravitational constant in km**3 / s**2
+ virtual double gm_km() const throw()
+ { return 398600.4418; }
+
+ /// Defined in TR8350.2, 3.3.2 line 3-11
+ /// @return Speed of light in m/s.
+ virtual double c() const throw()
+ { return 299792458; }
+
+ /// Derived from TR8350.2, 3.3.2 line 3-11
+ /// @return Speed of light in km/s
+ virtual double c_km() const throw()
+ { return c()/1000.0; }
+
+ /// Destructor.
+ virtual ~WGS84Geoid() throw() {};
+
+ }; // class WGS84Geoid
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/WeightBase.hpp b/dev/src/WeightBase.hpp
new file mode 100644
index 0000000..b797fb4
--- /dev/null
+++ b/dev/src/WeightBase.hpp
@@ -0,0 +1,70 @@
+
+/**
+ * @file WeightBase.hpp
+ * Abstract base class for algorithms assigning weights to satellites.
+ */
+
+#ifndef WEIGHT_BASE_GPSTK
+#define WEIGHT_BASE_GPSTK
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE. 2006
+//
+//============================================================================
+
+
+
+#include "Exception.hpp"
+#include "Matrix.hpp"
+#include "Vector.hpp"
+
+
+namespace gpstk
+{
+ /// Thrown when some problem appeared when assigning weights to satellites
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(InvalidWeights, gpstk::Exception);
+
+
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * Abstract base class for algorithms assigning weights to satellites.
+ */
+ class WeightBase
+ {
+ public:
+
+ /// Destructor
+ virtual ~WeightBase() {};
+
+
+ protected:
+ bool valid; // true only if weights are valid
+
+ }; // end class WeightBase
+
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/WxObsMap.cpp b/dev/src/WxObsMap.cpp
new file mode 100644
index 0000000..c566633
--- /dev/null
+++ b/dev/src/WxObsMap.cpp
@@ -0,0 +1,243 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file WxObsMap.cpp
+ * A class encapsulating wx data.
+ */
+
+#include "WxObsMap.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+namespace gpstk
+{
+
+ WxObservation WxObsData::getMostRecent( const DayTime& t ) const
+ throw()
+ {
+ if(obs.size() == 0)
+ return WxObservation();
+
+ WxObsMap::const_iterator i = obs.upper_bound(t);
+ if (i== obs.end())
+ i--;
+ if (i != obs.begin())
+ i--;
+ return i->second;
+ };
+
+ void WxObsData::insertObservation( const WxObservation& wx )
+ throw()
+ {
+ obs[wx.t] = wx;
+ if (wx.t > lastTime) lastTime=wx.t;
+ if (wx.t < firstTime) firstTime=wx.t;
+ }
+
+ bool WxObservation::isAllValid() const
+ throw()
+ {
+ return temperatureSource != noWx
+ && pressureSource != noWx
+ && humiditySource != noWx;
+ };
+
+ void WxObsData::flush(const DayTime& t) throw()
+ {
+ // remove data from the WxObsMap
+ // map is sorted by time, stop removing data at
+ // first point after t
+ WxObsMap::iterator i = obs.begin();
+ while (i != obs.end())
+ {
+ if (i->first < t)
+ {
+ obs.erase(i);
+ i = obs.begin();
+ firstTime = i->second.t;
+ }
+ else
+ break;
+ }
+ }
+
+ WxObservation WxObsData::getWxObservation(const DayTime& t,
+ unsigned iv,
+ bool interpolate) const
+ throw(ObjectNotFound)
+ {
+ if (obs.empty())
+ {
+ ObjectNotFound e("No WxObservation available near time " +
+ t.printf("%02H:%02M:%02S on day %03j of %4Y"));
+ GPSTK_THROW(e);
+ }
+
+ // get the first object after time t;
+ WxObsMap::const_iterator after = obs.upper_bound(t);
+
+ if (after == obs.begin())
+ {
+ const WxObservation& wxa = after->second;
+ if ((wxa.t >= (t - iv)) && (wxa.t <= (t + iv)))
+ {
+ // only after point fits
+ return wxa;
+ }
+ else
+ {
+ ObjectNotFound e("No WxObservation available near time " +
+ t.printf("%02H:%02M:%02S on day %03j of %4Y"));
+ GPSTK_THROW(e);
+ }
+ }
+
+
+ // get the first object at or before time t;
+ WxObsMap::const_iterator before = after;
+ before--;
+
+ if (after == obs.end())
+ {
+ const WxObservation& wxb = before->second;
+ if((wxb.t >= (t - iv)) && (wxb.t <= (t + iv)))
+ {
+ // only before point fits
+ return wxb;
+ }
+ else
+ {
+ ObjectNotFound e("No WeatherData available near time " +
+ t.printf("%02H:%02M:%02S on day %03j of %4Y"));
+ GPSTK_THROW(e);
+ }
+ }
+ else
+ {
+ const WxObservation& wxa = after->second;
+ const WxObservation& wxb = before->second;
+
+ if (interpolate)
+ {
+ if((wxb.t >= (t - iv)) && (wxb.t <= (t + iv)))
+ {
+ if ((wxa.t >= (t - iv)) && (wxa.t <= (t + iv)))
+ {
+ // both points fit, linearly interpolate and create
+ // a WeatherData object with those values
+ double dtw = wxa.t - wxb.t;
+ double dt = t - wxb.t;
+
+ double slope = (wxa.pressure - wxb.pressure) / dtw;
+ double pressure = slope * dt + wxb.pressure;
+
+ slope = (wxa.humidity - wxb.humidity) / dtw;
+ double humidity = slope * dt + wxb.humidity;
+
+ slope = (wxa.temperature - wxb.temperature) / dtw;
+ double temp = slope * dt + wxb.temperature;
+
+ WxObservation wx(t, temp, pressure, humidity);
+ return wx;
+ }
+ else
+ {
+ // only before point fits
+ return wxb;
+ }
+ }
+ else if ((wxa.t >= (t - iv)) && (wxa.t <= (t + iv)))
+ {
+ // only after point fits
+ return wxa;
+ }
+ else
+ {
+ ObjectNotFound e("No WeatherData available near time " +
+ t.printf("%02H:%02M:%02S on day %03j of %4Y"));
+ GPSTK_THROW(e);
+ }
+ }
+ else
+ {
+ if((wxb.t >= (t - iv)) && (wxb.t <= (t + iv)))
+ {
+ if ((wxa.t >= (t - iv)) && (wxa.t <= (t + iv)))
+ {
+ // both points fit, return closer point, or
+ // before point if at same distance
+ double diffa = wxa.t - t;
+ double diffb = t - wxb.t;
+ return(diffa < diffb ? wxa : wxb);
+ }
+ else
+ {
+ // only before point fits
+ return wxb;
+ }
+ }
+ else if ((wxa.t >= (t - iv)) && (wxa.t <= (t + iv)))
+ {
+ // only after point fits
+ return wxa;
+ }
+ else
+ {
+ ObjectNotFound e("No WeatherData available near time " +
+ t.printf("%02H:%02M:%02S on day %03j of %4Y"));
+ GPSTK_THROW(e);
+ }
+ }
+ }
+ }
+
+ // These are just to facilitate debugging.
+ std::ostream& operator<<(std::ostream& s, const gpstk::WxObservation& obs)
+ throw()
+ {
+ // Note that this does not flag where the wx data came from
+ s << obs.t << ", t=" << obs.temperature
+ << ", p=" << obs.pressure
+ << ", rh=" << obs.humidity;
+ return s;
+ }
+
+
+} // namespace
diff --git a/dev/src/WxObsMap.hpp b/dev/src/WxObsMap.hpp
new file mode 100644
index 0000000..f7ab226
--- /dev/null
+++ b/dev/src/WxObsMap.hpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+#ifndef GPSTK_WXOBSMAP_HPP
+#define GPSTK_WXOBSMAP_HPP
+
+/**
+ * @file WxObsMap.hpp
+ * A class encapsulating and managing wx observations data.
+ */
+
+
+#include <map>
+#include <iostream>
+
+#include "DayTime.hpp"
+
+namespace gpstk
+{
+ /// A Single Weather Observation.
+ struct WxObservation
+ {
+ /// Default Constructor
+ WxObservation() throw()
+ : t(DayTime::END_OF_TIME), temperatureSource(noWx),
+ pressureSource(noWx), humiditySource(noWx)
+ {}
+
+ /** Constructor
+ * @param t the time of the observation
+ * @param temp the recorded temperature (deg. Centigrade)
+ * @param pres the recorded pressure (millibars)
+ * @param humid the recorded relative humidity (%)
+ */
+ WxObservation(const DayTime& t,
+ double temp,
+ double pres,
+ double humid)
+ throw()
+ :t(t),
+ temperature(temp), pressure(pres),
+ humidity(humid), temperatureSource(obsWx),
+ pressureSource(obsWx), humiditySource(obsWx)
+ {}
+
+
+ DayTime t; ///< Time that this data was collected, in Rx GPS time.
+ float temperature; ///< degrees Centigrade
+ float pressure; ///< millibars
+ float humidity; ///< percent
+
+ /// An enumeration of the various weather sources.
+ enum EWxSrc
+ {
+ noWx, ///< No weather measurements were available.
+ defWx, ///< Default weather was used.
+ obsWx ///< The Observed Weather was used.
+ };
+
+ enum EWxSrc temperatureSource; ///< source of the temperature meas.
+ enum EWxSrc pressureSource; ///< source of the pressure meas.
+ enum EWxSrc humiditySource; ///< source of the humidity meas.
+
+ /** Return whether all weather values in this object are valid.
+ * @return whether all weather values in this object are valid
+ */
+ bool isAllValid() const throw();
+
+ /** Friendly Output Operator.
+ * @param s the output stream to which data is sent
+ * @param obs the WxObservation from which the data comes
+ * @return a reference to the modified ostream
+ */
+ friend std::ostream& operator<<(std::ostream& s,
+ const WxObservation& obs) throw();
+ };
+
+
+ /// This is a map of weather observations over time. The key
+ /// should be the same time as the time of the epoch.
+ typedef std::map<DayTime, WxObservation> WxObsMap;
+
+ /// This is a time history weather data from a single site
+ struct WxObsData
+ {
+ /// Constructor
+ WxObsData() throw()
+ :firstTime(DayTime::END_OF_TIME),
+ lastTime(DayTime::BEGINNING_OF_TIME) {}
+
+ // First and last time of any data in this object
+ DayTime firstTime; ///< Time of the oldest data in this object.
+ DayTime lastTime; ///< Time of the youngest data in this object.
+
+ /// This is the identifier of the site.
+ unsigned rxId;
+
+ /// The actual data.
+ WxObsMap obs;
+
+ /** Get the last WxObservation made before time t.
+ * @return the WxObservation coming before time t
+ */
+ WxObservation getMostRecent(const DayTime& t) const throw();
+
+ /** Insert a WxObservation.
+ * @param obs the WxObservation to insert.
+ */
+ void insertObservation(const WxObservation& obs) throw();
+
+ /**
+ * Removes all stored #WxObservation objects older than time \a t.
+ * \param t remove #WxObservation objects older than this
+ */
+ void flush(const DayTime& t) throw();
+
+ /**
+ * Find a #WxObservation object for time \a t.
+ * A #WxObservation object will be retured. If interpolation is used,
+ * the first object immediately before or at time \a t and the first
+ * object immediately after time \a t will be linearly interpolated
+ * between to return a data point at time \a t. If there is not enough
+ * data to interpolate, the nearest real observation will be returned.
+ * Any object returned or used in the interpolation scheme must fit
+ * within the specified time interval around \a t (if \a iv is one
+ * hour, a point must be within an hour before or after time \a t.)
+ * \param t the time of interest
+ * \param interpolate true if interpolation between points is wanted
+ * \param iv time interval (seconds, before and after) around \a t
+ * \return a #WxObservation object
+ * \exception ObjectNotFound a #WxObservation object not available
+ */
+ WxObservation getWxObservation(const DayTime& t,
+ unsigned iv = 3600,
+ bool interpolate = true) const
+ throw(ObjectNotFound);
+ };
+} // namespace
+#endif
diff --git a/dev/src/X1Sequence.cpp b/dev/src/X1Sequence.cpp
new file mode 100644
index 0000000..04c7a77
--- /dev/null
+++ b/dev/src/X1Sequence.cpp
@@ -0,0 +1,161 @@
+#pragma ident "$Id$"
+
+
+/*
+* X1Sequence.cpp
+*
+* GPS X1 Sequencer.
+* Applied Research Laboratories, The University of Texas at Austin
+* August 2003
+*/
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+ // Project headers
+#include "Exception.hpp"
+#include "X1Sequence.hpp"
+#include "GenXSequence.hpp"
+
+namespace gpstk
+{
+ // Static Variable Definition
+ bool X1Sequence::isInit = false;
+ unsigned long* X1Sequence::X1Bits = 0;
+
+ X1Sequence::X1Sequence( )
+ {
+ if (isInit!=true)
+ {
+ gpstk::Exception e(
+ "Must call X1Sequence::allocateMemory() before instantiating a X1Sequence object.");
+ GPSTK_THROW(e);
+ }
+ }
+
+ void X1Sequence::allocateMemory( )
+ {
+ int X1Aepoch;
+ int X1Acount;
+ int X1Bepoch;
+ int X1Bcount;
+ int X1epoch = 1;
+ long X1Word = 0;
+ int lengthOfX1BSequence;
+
+ if (isInit==true)
+ {
+ gpstk::Exception e ("X1Sequence::allocateMemory() called multiple times");
+ GPSTK_THROW(e);
+ }
+
+ X1Bits = new unsigned long[NUM_6SEC_WORDS];
+ if (X1Bits==0)
+ {
+ gpstk::Exception e ("X1Sequence::allocateMemory() - allocation failed.");
+ GPSTK_THROW(e);
+ }
+
+ // Generate the X1A and X1B sequences.
+ gpstk::GenXSequence X1A( X1A_INIT, X1A_TAPS, XA_COUNT, XA_EPOCH_DELAY);
+ gpstk::GenXSequence X1B( X1B_INIT, X1B_TAPS, XB_COUNT, XB_EPOCH_DELAY);
+
+ // Combination will be performed for four X1 epochs.
+ // This will generate six seconds of X1 bits sequence
+ // that will end on an even 32-bit boundary.
+ unsigned long X1Abits;
+ unsigned long X1Bbits;
+ X1Aepoch = 1;
+ X1Acount = 0;
+ X1Bepoch = 1;
+ X1Bcount = 0;
+ lengthOfX1BSequence = XB_COUNT;
+
+ while ( X1Word < NUM_6SEC_WORDS )
+ {
+ // Get 32 X1A bits. Update counters and handle rollovers.
+ X1Abits = X1A[X1Acount];
+ X1Acount += MAX_BIT;
+
+ if ( X1Acount >= XA_COUNT )
+ {
+ ++X1Aepoch;
+ if (X1Aepoch>XA_MAX_EPOCH)
+ {
+ ++X1epoch;
+ X1Aepoch = 1;
+ }
+ X1Acount = X1Acount - XA_COUNT;
+ }
+
+ // Get 32 X1B bits. Update counters and handle rollovers
+ X1Bbits = X1B[X1Bcount];
+ X1Bcount += MAX_BIT;
+ if (X1Bcount >= lengthOfX1BSequence )
+ {
+ X1Bcount = X1Bcount - lengthOfX1BSequence;
+ ++X1Bepoch;
+ if (X1Bepoch>XB_MAX_EPOCH) X1Bepoch = 1;
+ if (X1Bepoch==XB_MAX_EPOCH)
+ lengthOfX1BSequence = XB_COUNT+XB_EPOCH_DELAY;
+ else
+ lengthOfX1BSequence = XB_COUNT;
+ X1B.setLengthOfSequence( lengthOfX1BSequence );
+ }
+
+ X1Bits[X1Word++] = X1Abits ^ X1Bbits;
+ }
+
+ isInit = true;
+ }
+
+ void X1Sequence::deAllocateMemory()
+ {
+ if (isInit!=true || X1Bits==0)
+ {
+ gpstk::Exception e("X1Sequence::deAllocateMemory() called when no memory allocated.");
+ GPSTK_THROW(e);
+ }
+ delete [] X1Bits;
+ isInit = false;
+ }
+
+} // end of namespace
+
diff --git a/dev/src/X1Sequence.hpp b/dev/src/X1Sequence.hpp
new file mode 100644
index 0000000..23f9607
--- /dev/null
+++ b/dev/src/X1Sequence.hpp
@@ -0,0 +1,134 @@
+#pragma ident "$Id$"
+
+
+// X1Sequence.cpp - GPS X1 Seqeuncer
+
+#ifndef X1SEQUENCE_HPP
+#define X1SEQUENCE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+ // Project headers
+#include "PCodeConst.hpp"
+
+namespace gpstk
+{
+/** @addtogroup code */
+//@{
+ /**
+ * GPS X1 Sequencer.
+ * Applied Research Laboratories, The University of Texas at Austin
+ * August 2003
+ *
+ * X1Sequence is contains
+ * a six-second (four Z-count) sequence of the combined X1A/X1B data
+ * for the GPS constellation. The X1 sequence repeats every 1.5s
+ * (each X1 epoch) and is identical for all SVs and all 1.5s epochs.
+ * In this case, 6 seconds of bitstream is generated and stored
+ * because this set of code "thinks" in term of 32-bit words and
+ * a 1.5s epoch doesn't contain an integer number of 32-bit words
+ * of packed bits) - there's a .25 word (8 bit) remainder.
+ * Therefore, a six second seqeunce DOES include an even mulitple
+ * of 32 bits, which greatly simplifies handling of the data.
+ *
+ * Six seconds of X1 bits is a significant amount of data:
+ * X1 Epoch = 4092 X1A bits * 3750 X1A cycles = 15,345,000 bits
+ * 6 s = 4 X1 Epoch = 4 * bits = 4 * 15,345,000 = 61,380,000 bits.
+ * The number of 32 bit words required equals
+ * 61,380,000 bits / 32 bits/word = 1,918,125 words
+ */
+ class X1Sequence
+ {
+ public:
+ /**
+ * Initialize the member variables associated with this object.
+ * In the case of this class, this is a significant amount of
+ * work. The X1A/X1B process described in ICD-GPS-200B is followed
+ * in order to fill the X1Bits array.
+ */
+ X1Sequence();
+ ~X1Sequence( ) {};
+
+ /** The X1 sequence requires a 6-second buffer of 10MBit/sec
+ * samples. This comes to approximately 2 million four-byte
+ * unsigned integers. These data are the same for all PRN codes
+ * To minimize the memory footprint, these data are stored
+ * in a dynamically-allocated static array. It is
+ * - - - - NECESSARY - - - -
+ * that the calling method call X1Sequence::allocateMemory()
+ * PRIOR to instantiating the first X1Sequence object.
+ * X1Sequence::allocateMemory() should only be called once.
+ * Violation of either condition will result in a
+ * gpstk::Exception thrown from either X1Sequence::X1Sequence()
+ * or X1Sequence::allocateMemory().
+ *
+ * The X1Sequence::deAllocateMemory() method may be called to
+ * release the memory (if desired) but it should only be called
+ * after all X1Sequence objects have been "destroyed".
+ */
+ static void allocateMemory( );
+ static void deAllocateMemory( );
+
+ unsigned long & operator[]( int i );
+ /**
+ * Given a word number from 0 to NUM_6SEC_WORDS, return the
+ * requested word.
+ */
+ const unsigned long & operator[] ( int i ) const;
+
+ private:
+ static unsigned long* X1Bits;
+ static bool isInit;
+ };
+
+ inline unsigned long & X1Sequence::operator[] ( int i )
+ {
+ return(X1Bits[i]);
+ }
+
+ inline const unsigned long & X1Sequence::operator[] ( int i ) const
+ {
+ return(X1Bits[i]);
+ }
+
+} // end of namespace
+#endif // X1SEQUENCE_HPP
diff --git a/dev/src/X2Sequence.cpp b/dev/src/X2Sequence.cpp
new file mode 100644
index 0000000..ffa04bd
--- /dev/null
+++ b/dev/src/X2Sequence.cpp
@@ -0,0 +1,239 @@
+#pragma ident "$Id$"
+
+
+/*
+* X2Sequence.cpp
+* GPS X2 Sequencer.
+* Applied Research Laboratories, The University of Texas at Austin
+* August 2003
+*/
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+ // Language headers
+#include <stdio.h>
+#include <string>
+
+ // Project headers
+#include "Exception.hpp"
+#include "GenXSequence.hpp"
+#include "X2Sequence.hpp"
+
+namespace gpstk
+{
+ // Static Variable Definition
+ bool X2Sequence::isInit = false;
+ unsigned long* X2Sequence::X2Bits = 0;
+ unsigned long* X2Sequence::X2BitsEOW = 0;
+
+ // See program x2EOW.cpp for derivation of these values
+ unsigned long X2Sequence::EOWEndOfSequence[LENGTH_OF_EOW_OVERLAP] =
+ {
+ 0xFA5F8298, 0xB30C04D9, 0xD5CACBCA, 0x0ED47FFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
+ 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF
+ };
+
+ X2Sequence::X2Sequence( )
+ {
+ if (isInit!=true)
+ {
+ gpstk::Exception e(
+ "Must call X2Sequence::allocateMemory() before instantiating a X2Sequence object.");
+ GPSTK_THROW(e);
+ }
+
+ // This must be done for each object in order to initialize the
+ // bitsP pointer to the correct buffer of bits.
+ setEOWX2Epoch(false);
+ }
+
+ void X2Sequence::allocateMemory( )
+ {
+ int X2Aepoch;
+ int X2Acount;
+ int X2Bepoch;
+ int X2Bcount;
+ int X2epoch = 1;
+ long X2Word = 0;
+ long X2Count = 0;
+ int lengthOfX2ASequence;
+ int lengthOfX2BSequence;
+
+ if (isInit==true)
+ {
+ gpstk::Exception e ("X2Sequence::allocateMemory() called multiple times");
+ GPSTK_THROW(e);
+ }
+
+ X2Bits = new unsigned long[NUM_X2_WORDS];
+ X2BitsEOW = new unsigned long[NUM_X2_WORDS];
+ if (X2Bits==0 || X2BitsEOW==0)
+ {
+ gpstk::Exception e ("X2Sequence::allocateMemory() - allocation failed.");
+ GPSTK_THROW(e);
+ }
+
+ // Last words of X2Bits and X2BitsEOW are only partially filled.
+ // Initialize to 0 to avoid confusion.
+ X2Bits[NUM_X2_WORDS-1] = 0x00000000;
+ X2BitsEOW[NUM_X2_WORDS-1] = 0x00000000;
+
+ // Generate the X2A and X2B sequences.
+ gpstk::GenXSequence X2A( X2A_INIT, X2A_TAPS, XA_COUNT,
+ XA_EPOCH_DELAY+X2A_EPOCH_DELAY);
+ gpstk::GenXSequence X2B( X2B_INIT, X2B_TAPS, XB_COUNT,
+ XB_EPOCH_DELAY+X2A_EPOCH_DELAY);
+
+ /*
+ In order to handle the beginning of week case, obtain the
+ initial X2 bit, then copy this bit into the first 37 bit
+ positions of the X2 sequence. The X2Ainit and X2Binit variables
+ are purposely chosen to be SIGNED integers to take advantage of
+ the arithmetic shift behavior.
+ */
+ unsigned long firstTest = X2A[0] ^ X2B[0];
+ if (firstTest & 0x80000000 )
+ X2Bits[0] = 0xFFFFFFFF;
+ else
+ X2Bits[0] = 0x00000000;
+
+ X2Bits[1] = firstTest >> 5;
+ X2Bits[1] |= ( X2Bits[0] & 0xF8000000 );
+
+ /*
+ Previous section handled the beginning of week 37 chip delay
+ plus the first 27 chips (64 bits - 37 chip = 27) of the X2
+ cycle. Set the counters accordingly and start retrieving bits.
+ The combination will be performed for four X2 epochs.
+ This will generate six seconds+ of X2 bits sequence.
+ */
+ unsigned long X2Abits;
+ unsigned long X2Bbits;
+ X2Aepoch = 1;
+ X2Acount = 27;
+ X2Bepoch = 1;
+ X2Bcount = 27;
+ X2Word = 2;
+ X2Count = X2Word * MAX_BIT;
+
+ lengthOfX2ASequence = XA_COUNT;
+ X2A.setLengthOfSequence( lengthOfX2ASequence );
+
+ lengthOfX2BSequence = XB_COUNT;
+ X2B.setLengthOfSequence( lengthOfX2BSequence );
+
+ while ( X2Count < MAX_X2_COUNT )
+ {
+ // Get 32 X2A bits. Update counters and handle rollovers.
+ X2Abits = X2A[X2Acount];
+ X2Acount += MAX_BIT;
+
+ if ( X2Acount >= lengthOfX2ASequence )
+ {
+ X2Acount = X2Acount - lengthOfX2ASequence;
+ ++X2Aepoch;
+ if (X2Aepoch>XA_MAX_EPOCH)
+ {
+ ++X2epoch;
+ X2Aepoch = 1;
+ }
+ if (X2Aepoch==XA_MAX_EPOCH)
+ lengthOfX2ASequence = XA_COUNT+X2A_EPOCH_DELAY;
+ else
+ lengthOfX2ASequence = XA_COUNT;
+ X2A.setLengthOfSequence( lengthOfX2ASequence );
+ }
+
+ // Get 32 X2B bits. Update counters and handle rollovers
+ X2Bbits = X2B[X2Bcount];
+ X2Bcount += MAX_BIT;
+ if (X2Bcount >= lengthOfX2BSequence )
+ {
+ X2Bcount = X2Bcount - lengthOfX2BSequence;
+ ++X2Bepoch;
+ if (X2Bepoch>XB_MAX_EPOCH) X2Bepoch = 1;
+ if (X2Bepoch==XB_MAX_EPOCH)
+ lengthOfX2BSequence = XB_COUNT+XB_EPOCH_DELAY+X2A_EPOCH_DELAY;
+ else
+ lengthOfX2BSequence = XB_COUNT;
+ X2B.setLengthOfSequence( lengthOfX2BSequence );
+ }
+
+ X2Bits[X2Word++] = X2Abits ^ X2Bbits;
+ X2Count += MAX_BIT;
+ }
+
+ // At this point, the X2Bits array is complete. Copy the entire
+ // array into X2BitsEOW, then overlay the EOW section into the
+ // appropriate place.
+ const size_t numBytesPerWord = 4;
+ size_t numBytes = NUM_X2_WORDS * numBytesPerWord;
+ memcpy( X2BitsEOW, X2Bits, numBytes );
+ numBytes = LENGTH_OF_EOW_OVERLAP * numBytesPerWord;
+ memcpy( (void *) &X2BitsEOW[OVERLAP_WORD_POSITION], EOWEndOfSequence, numBytes );
+
+ isInit = true;
+ }
+
+ void X2Sequence::deAllocateMemory()
+ {
+ if (isInit!=true || X2Bits==0 || X2BitsEOW==0)
+ {
+ gpstk::Exception e("X2Sequence::deAllocateMemory() called when no memory allocated.");
+ GPSTK_THROW(e);
+ }
+ delete [] X2Bits;
+ delete [] X2BitsEOW;
+ isInit = false;
+ }
+
+ void X2Sequence::setEOWX2Epoch( const bool tf )
+ {
+ if (tf) bitsP = X2BitsEOW;
+ else bitsP = X2Bits;
+ }
+
+} // end of namespace
diff --git a/dev/src/X2Sequence.hpp b/dev/src/X2Sequence.hpp
new file mode 100644
index 0000000..b390b02
--- /dev/null
+++ b/dev/src/X2Sequence.hpp
@@ -0,0 +1,296 @@
+#pragma ident "$Id$"
+
+
+// X2Sequence.hpp - GPS X2 Sequencer
+
+#ifndef X2SEQUENCE_HPP
+#define X2SEQUENCE_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+ // Local headers
+#include "PCodeConst.hpp"
+#include "mergePCodeWords.h"
+
+namespace gpstk
+{
+/** @addtogroup code */
+//@{
+
+ /*
+ The following constants are derived in x2EOW.cpp and
+ used as literals here.
+ */
+ const long LENGTH_OF_EOW_OVERLAP = 34;
+ const long OVERLAP_WORD_POSITION = 1451897;
+ // Maximum number of X2 chips (exclusive of BOW delay chips)
+ const long MAX_X2_TEST = 4 * ((XA_COUNT * XA_MAX_EPOCH) + X2A_EPOCH_DELAY);
+ // Maximum number of X2 chips
+ const long MAX_X2_COUNT = X2A_EPOCH_DELAY + MAX_X2_TEST;
+
+ /**
+ * GPS X2 Sequencer.
+ * Applied Research Laboratories, The University of Texas at Austin
+ * August 2003
+ *
+ * X2Sequence is a static class (one instance per executable) that
+ * contains a little more than a six-second (four Z-count) sequence
+ * of the combined X2A/X2B data for the GPS constellation. The
+ * X2 sequence repeats roughly every 1.5s (each X1 epoch) and is
+ * identical for all SVs. The progressive "slip" in the relative
+ * relationship between X1 and X2 is responsible for progressing the
+ * P-code bitstream in time while a beginning of week offset is
+ * responsible to differentiating between unique satellite codes.
+ *
+ * These two slips are responsbile for some special circumstances in
+ * the X2 bit sequence. The satelite differentiation is handled by
+ * "holding" the X2 state at the beginning of week bit for a delay
+ * equivalent to the PRN ID of the satellite. This is handled by
+ * replicating the first bit of the combined X2A/X2B bitstream 37
+ * times at the front of the bit sequence. Therefore, a bit index
+ * of "1" will be internally interpreted as 38. At the beginning
+ * of the week, the calling application shall coerce the beginning
+ * bit of the first call to X2 sequence to be 1-PRNID.
+ *
+ * The other delay is a 37 chip delay at the end of each X2A epoch.
+ * During this delay, the X2 state is "held" in the final bit state.
+ *
+ * Given these considerations, the following caluclations derive the
+ * number of bits that make up an X2Sequence and the number of unsigned
+ * 32-bit words required to hold these bits:
+ *
+ * Base number of bits in a X2A epoch: 4092 chips
+ * Number of X2A epochs in an X2 Epoch: 3750 epochs (cycles)
+ * Delay at end of each X2 Epoch: 37 chips
+ * Number of bits required for a SINGLE X2 Epoch:
+ * 4092 * 3750 + 37 = 15,345,037 bits.
+ * Number of bits in FOUR X2 Epochs (corresponding to FOUR X1 Epochs):
+ * 4 * 15,345,037 = 61,380,148 bits.
+ * Number of PRN delay bits to be added to FRONT of array to be us
+ * at the beginning of week: 37.
+ *
+ * Total number of bits required: 61,380,148 + 37 = 61,380,185 bits.
+ * Number of 32 bit words required:
+ * 61,380,185 / 32 = 1,918,131 (1,918,130 Remainder of 25).
+ *
+ * SPECIAL CONDITION
+ * The final X2 sequence of the week is both truncated and unique.
+ * X2Sequence makes special provision for handing this condition. The
+ * final X2 epoch starts well into the final X1 epoch, consequently,
+ * the final X2 epoch contains ?? X2A cycles at which point, the final
+ * X2A chips is "held" until week rollover occurs. The final X2 epoch
+ * contains ?? X2B cycles at which point, the final X2B chip is "held"
+ * (repeated) until week rollover occurs. This means bits ??-?? of the
+ * X2Sequence differ for this final cycle (and the end of this final X2
+ * cycle is at bit ??).
+ *
+ * It's important to avoid having a conditional in the inline subscript
+ * operator. Therefore, the design implements two buffers. Each are
+ * 6+ seconds long. The two buffers only differ in the 1069 chip span
+ * (34 words) where there are two different patterns.
+ *
+ * The internal points unsigned long *bitsP is used to track which buffer
+ * (X2bits[] or X2bitsEOW[] is in use at a particular time. The method
+ * setEOWX2Epoch( bool tf ) is used to control the buffer to which *bitsP
+ * currently points. X2Sequence initialize2 the bitsP pointer to point
+ * to the regular array. The calling application will need to manage
+ * the timing of calling setEOWX2Epoch. This needs to be done for EACH
+ * X2Sequence object - X2Bits and X2BitsEOW are static, but the bitsP
+ * pointer is a member veriable of the class and NOT static.
+ */
+ class X2Sequence
+ {
+ public:
+ /** Initialize the local variables associated with
+ * this object. In the case of this class, this is a significant
+ * amount of work. The X2A/X2B process described in ICD-GPS-200B
+ * is followed in order to fill the X2Bits array.
+ */
+ X2Sequence();
+ ~X2Sequence( ) {};
+
+ /** The X2 sequence requires two 6-second buffers of 10MBit/sec
+ * samples. This comes to approximately 4 million four-byte
+ * unsigned integers. These data are the same for all PRN codes
+ * To minimize the memory footprint, these data are stored
+ * in a dynamically-allocated static array. It is
+ * - - - - NECESSARY - - - -
+ * that the calling method call X2Sequence::allocateMemory()
+ * PRIOR to instantiating the first X2Sequence object.
+ * X2Sequence::allocateMemory() should only be called once.
+ * Violation of either condition will result in a
+ * gpstk::Exception thrown from either X2Sequence::X2Sequence()
+ * or X2Sequence::allocateMemory().
+ *
+ * The X2Sequence::deAllocateMemory() method may be called to
+ * release the memory (if desired) but it should only be called
+ * after all X2Sequence objects have been "destroyed".
+ */
+ static void allocateMemory( );
+ static void deAllocateMemory( );
+
+ /** Given a bit number from -37 to X2Length-37, stuff the 32 bits
+ * starting with that bit and continuing for the next 31 bits into
+ * an unsigned long and return this as the result. Conditional
+ * code (compiled only for debug) will confirm that the requested
+ * bit number is >=-37 and <(61,380,185-32) and will halt the
+ * program if this assertion is violated.
+ * NOTE: operator[] should never have to worry about rollovers.
+ * The length of the X2 array shall be set such that the maximum
+ * number of X2 bits needed will be available. The reset will be
+ * driven by the occurrence of the next X1 epoch and be tracked
+ * one level up in the corresponding SVPcodeGen object.
+ */
+ unsigned long operator[]( long i );
+
+ /** Controls whether the X2 Epoch is set to EOW condition
+ * or normal condition. Should only be set true for the final
+ * X2 epoch of the week.
+ */
+ void setEOWX2Epoch( const bool tf );
+
+ private:
+ unsigned long *bitsP;
+ static unsigned long* X2Bits;
+ static unsigned long* X2BitsEOW;
+ static unsigned long EOWEndOfSequence[LENGTH_OF_EOW_OVERLAP];
+ static bool isInit;
+ };
+
+ /*
+ Given a bit position within the X2 sequence (numbered starting at -37),
+ return the next 32 bits. Note: if there are insufficient bits left
+ to fill the request, wrap around to the beginning of the sequence.
+ */
+ inline unsigned long X2Sequence::operator[] ( long i )
+ {
+ long adjustedCount = i + X2A_EPOCH_DELAY;
+
+ unsigned long retArg;
+ int ndx1 = adjustedCount / MAX_BIT;
+ int offset = adjustedCount - (ndx1 * MAX_BIT);
+ if ( (adjustedCount+MAX_BIT) <= MAX_X2_COUNT )
+ {
+ if (offset==0) retArg = bitsP[ndx1];
+ else retArg = merge( bitsP[ndx1], bitsP[ndx1+1], offset );
+ }
+ /*
+ Complicated case when coming up to end of sequence. May have to
+ put together parts of up to three words to get 32 bits. The problem
+ is complicated because the word at the end of the array is partial
+ AND the beginning of sequence (BOW) occurs in mid-word due to the
+ PRN offset. Some numbers:
+
+ Number of bits available in word N : 25
+ Number of bits available in word at BOS : 27
+
+ Possible cases:
+ 1.) Combine bits from [n-1], [n], and [BOS] - word n will provide
+ 25 bits. Therefore, some combination of (n-1,BOS) from the
+ choice of (1,4), (2,3), (3,2), (4,1).
+
+ 2.) Combine bits from [n-1] and [BOS] - word n-1 will provide 25-5
+ bits. Therefore, BOS will provide 7-27 bits.
+
+ 3.) Combine bits from [n-1], [BOS], and [BOS+1] - word n-1 provides
+ 4-1 bits. BOS provides 27 bits (running total to 31-28 bits).
+ BOS+1 provides 1-4 bits.
+ */
+ else
+ {
+ retArg = 0L;
+ int numRemainingInSequence = MAX_X2_COUNT - adjustedCount;
+ int numRemainingInWord;
+ int numFilled = 0;
+
+ // Handle word n-1
+ if (ndx1==NUM_X2_WORDS-2)
+ {
+ numRemainingInWord = MAX_BIT - offset;
+ retArg = bitsP[ndx1++] << offset;
+ numFilled = numRemainingInWord;
+ numRemainingInSequence -= numRemainingInWord;
+ }
+
+ // Handle word n
+ unsigned long temp = bitsP[ndx1];
+ numRemainingInWord = numRemainingInSequence;
+ temp >>= (MAX_BIT-numRemainingInWord);
+ temp <<= (MAX_BIT-(numRemainingInWord+numFilled));
+ retArg |= temp;
+ numFilled += numRemainingInSequence;
+
+ // Wrap to front. Recall that "front" is actually bit
+ // 37 in sequence due to "beginning of week" delay
+ numRemainingInWord = (2 * MAX_BIT) - X2A_EPOCH_DELAY;
+ int numNeeded = MAX_BIT - numFilled;
+
+ // Case where all bits needed are in word 1 of sequence array
+ //(which only has 27 "useful" bits)
+ if (numNeeded <= numRemainingInWord)
+ {
+ temp = bitsP[1] << (MAX_BIT - numRemainingInWord);
+ temp >>= (MAX_BIT - numNeeded);
+ retArg |= temp;
+ }
+ // Case where all bits in word 1 are needed plus some bits in word 2.
+ else
+ {
+ // Clearing high-order bits
+ temp = bitsP[1] << (MAX_BIT - numRemainingInWord);
+ temp >>= (MAX_BIT - numRemainingInWord);
+ temp <<= (MAX_BIT - (numRemainingInWord+numFilled));
+ retArg |= temp;
+
+ // Fetch remaining bits from next word
+ numFilled += numRemainingInWord;
+ numNeeded = MAX_BIT - numFilled;
+ temp = bitsP[2] >> (MAX_BIT - numNeeded);
+ retArg |= temp;
+ }
+ }
+ return(retArg);
+ }
+ //@}
+} // end of namespace
+
+#endif // X2SEQUENCE_HPP
diff --git a/dev/src/XYZ2NED.cpp b/dev/src/XYZ2NED.cpp
new file mode 100644
index 0000000..f0a1990
--- /dev/null
+++ b/dev/src/XYZ2NED.cpp
@@ -0,0 +1,90 @@
+
+/**
+ * @file XYZ2NED.cpp
+ * This is a class to change the reference base from ECEF XYZ to North-East-Down (NED)
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+#include "XYZ2NED.hpp"
+
+
+namespace gpstk
+{
+
+ // Returns a reference to a satTypeValueMap object after converting from a geocentric reference
+ // system to a topocentric reference system.
+ //
+ // @param gData Data object holding the data.
+ //
+ satTypeValueMap& XYZ2NED::Convert(satTypeValueMap& gData)
+ {
+ Matrix<double> neuMatrix;
+
+ // Get the corresponding geometry/design matrix data
+ Matrix<double> dMatrix(gData.getMatrixOfTypes((*this).inputSet));
+
+ // Compute the base change. For convenience, we use the property:
+ // Y = A*B => Y^T = (A*B)^T => Y^T = B^T * A^T
+ neuMatrix = dMatrix*rotationMatrix;
+
+ gData.insertMatrix(outputSet, neuMatrix);
+
+ return gData;
+
+ } // end XYZ2NED::Convert()
+
+
+ // This method builds the rotation matrix according to refLat and refLon values.
+ void XYZ2NED::Prepare()
+ {
+ // First, let's resize rotation matrix and assign the proper values
+ rotationMatrix.resize(3,3);
+
+ // The clasical rotation matrix is transposed here for convenience
+ rotationMatrix(0,0) = -std::sin(refLat)*std::cos(refLon);
+ rotationMatrix(1,0) = -std::sin(refLat)*std::sin(refLon);
+ rotationMatrix(2,0) = std::cos(refLat);
+ rotationMatrix(0,1) = -std::sin(refLon);
+ rotationMatrix(1,1) = std::cos(refLon);
+ rotationMatrix(2,1) = 0.0;
+ rotationMatrix(0,2) = -std::cos(refLat)*std::cos(refLon);
+ rotationMatrix(1,2) = -std::cos(refLat)*std::sin(refLon);
+ rotationMatrix(2,2) = -std::sin(refLat);
+
+ // Then, fill the sets with the proper types
+ inputSet.clear();
+ inputSet.insert(TypeID::dx);
+ inputSet.insert(TypeID::dy);
+ inputSet.insert(TypeID::dz);
+
+ outputSet.clear();
+ outputSet.insert(TypeID::dLat);
+ outputSet.insert(TypeID::dLon);
+ outputSet.insert(TypeID::dH);
+
+ } // end XYZ2NED::Prepare()
+
+
+} // end namespace gpstk
diff --git a/dev/src/XYZ2NED.hpp b/dev/src/XYZ2NED.hpp
new file mode 100644
index 0000000..6aea704
--- /dev/null
+++ b/dev/src/XYZ2NED.hpp
@@ -0,0 +1,269 @@
+
+/**
+ * @file XYZ2NED.hpp
+ * This is a class to change the reference base from ECEF XYZ to topocentric North-East-Down (NED).
+ */
+
+#ifndef XYZ2NED_HPP
+#define XYZ2NED_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "geometry.hpp" // DEG_TO_RAD
+#include "Matrix.hpp"
+#include "Position.hpp"
+#include "TypeID.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * This class changes the reference base from an Earth-Centered,
+ * Earth-Fixed (ECEF) system to a North-East-Down (NED) topocentric system,
+ * centered at the provided reference location.
+ *
+ * The NED system may be used when comparing the relative accuracy
+ * of a given GNSS data processing strategy. This is a "right-handed"
+ * system, and be aware that "down" is positive and "up" is negative.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ * // Reference position of receiver station
+ * Position nominalPos(4833520.2269, 41537.00768, 4147461.489);
+ *
+ * // Some more code and definitions here...
+ *
+ * gnssRinex gRin;
+ *
+ * // Set defaults of model. A typical C1-based modeling is used
+ * ModeledPR modelRef(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1, true);
+ *
+ * // Let's define a new equation definition to adapt solver object to base change
+ * TypeIDSet typeSet;
+ * typeSet.insert(TypeID::dLat);
+ * typeSet.insert(TypeID::dLon);
+ * typeSet.insert(TypeID::dH);
+ * typeSet.insert(TypeID::cdt);
+ * gnssEquationDefinition newEq(TypeID::prefitC, typeSet);
+ *
+ * // Declare (and tune) a SolverLMS object
+ * SolverLMS solver;
+ * solver.setDefaultEqDefinition(newEq);
+ *
+ * // Declare the base-changing object setting the reference position
+ * XYZ2NED baseChange(nominalPos);
+ *
+ * while(rin >> gRin) {
+ * gRin >> modelRef >> baseChange >> solver;
+ * }
+ *
+ * @endcode
+ *
+ * The "XYZ2NED" object will visit every satellite in the GNSS data structure that
+ * is "gRin" and will apply a rotation matrix to coefficients dx, dy and dz of the
+ * design matrix, yielding corresponding dLat, dLon and dH for each satellite.
+ *
+ * Take notice that the design matrix coefficients dx, dy and dz were computed by
+ * the "ModeledPR" object, so that step is mandatory.
+ *
+ * Also, the "XYZ2NED" class is effective when properly coupled with the "solver"
+ * object (be it based on LMS or WMS). In order to get this, you must instruct the
+ * "solver" object to get the solution using a geometry/design matrix based on
+ * dLat, dLon and dH, instead of the defaults (dx, dy and dz).
+ *
+ * The later is achieved defining an appropriate "gnssEquationDefinition" object
+ * and instructing "solver" to use it as the default equation definition.
+ *
+ * @sa XYZ2NEU.hpp
+ */
+ class XYZ2NED
+ {
+ public:
+
+ /// Default constructor.
+ XYZ2NED() : refLat(0.0), refLon(0.0)
+ {
+ Prepare();
+ };
+
+
+ /** Common constructor taking reference point latitude and longitude
+ *
+ * @param lat Latitude of the reference point.
+ * @param lon Longitude of the reference point.
+ */
+ XYZ2NED(const double& lat, const double& lon)
+ {
+ setLatLon(lat, lon);
+ }
+
+
+ /** Common constructor taking reference point Position object
+ *
+ * @param refPos Reference point Position object.
+ */
+ XYZ2NED(const Position& refPos)
+ {
+ setLatLon(refPos.getGeodeticLatitude(), refPos.getLongitude());
+ }
+
+
+ /** Method to set the latitude of the reference point, in degrees.
+ * @param lat Latitude of the reference point, in degrees.
+ */
+ virtual void setLat(const double& lat)
+ {
+ // Don't allow latitudes out of the -90/+90 interval
+ if ( (lat > 90.0) || (lat < -90.0) ) refLat = 0.0; else refLat = (lat*DEG_TO_RAD);
+ Prepare();
+ };
+
+
+ /// Method to get the latitude of the reference point, in degrees.
+ virtual double getLat() const
+ {
+ return (refLat*RAD_TO_DEG);
+ };
+
+
+ /** Method to set the longitude of the reference point, in degrees.
+ * @param lon Longitude of the reference point, in degrees.
+ */
+ virtual void setLon(const double& lon)
+ {
+ refLon = (lon*DEG_TO_RAD);
+ Prepare();
+ };
+
+
+ /// Method to get the longitude of the reference point, in degrees.
+ virtual double getLon() const
+ {
+ return (refLon*RAD_TO_DEG);
+ };
+
+
+ /** Method to set simultaneously the latitude and longitude of the reference point, in degrees.
+ * @param lat Latitude of the reference point, in degrees.
+ * @param lon Longitude of the reference point, in degrees.
+ */
+ virtual void setLatLon(const double& lat, const double& lon)
+ {
+ // Don't allow latitudes out of the -90/+90 interval
+ if ( (lat > 90.0) || (lat < -90.0) ) refLat = 0.0; else refLat = (lat*DEG_TO_RAD);
+ refLon = (lon*DEG_TO_RAD);
+ Prepare();
+ };
+
+
+ /** Returns a reference to a satTypeValueMap object after converting from a geocentric reference system to a topocentric reference system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Convert(satTypeValueMap& gData);
+
+
+ /** Returns a reference to a gnssSatTypeValue object after converting from a geocentric reference system to a topocentric reference system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Convert(gnssSatTypeValue& gData)
+ {
+ (*this).Convert(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a reference to a gnnsRinex object after converting from a geocentric reference system to a topocentric reference system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Convert(gnssRinex& gData)
+ {
+ (*this).Convert(gData.body);
+ return gData;
+ };
+
+
+ /// Destructor.
+ virtual ~XYZ2NED() {};
+
+
+ private:
+
+
+ /// Latitude of the reference point (topocentric reference), in radians.
+ double refLat;
+
+
+ /// Longitude of the reference point (topocentric reference), in radians.
+ double refLon;
+
+
+ /// Rotation matrix.
+ Matrix<double> rotationMatrix;
+
+
+ /// Set (TypeIDSet) containing the types of data to be converted (dx, dy, dz).
+ TypeIDSet inputSet;
+
+
+ /// Set (TypeIDSet) containing the resulting types of data (dLat, dLon, dH).
+ TypeIDSet outputSet;
+
+
+ /// This method builds the rotation matrix according to refLat and refLon values.
+ virtual void Prepare();
+
+
+ }; // class XYZ2NED
+
+
+ /// Input operator from gnssSatTypeValue to XYZ2NED.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, XYZ2NED& converter)
+ {
+ converter.Convert(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to XYZ2NED.
+ inline gnssRinex& operator>>(gnssRinex& gData, XYZ2NED& converter)
+ {
+ converter.Convert(gData);
+ return gData;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/XYZ2NEU.cpp b/dev/src/XYZ2NEU.cpp
new file mode 100644
index 0000000..fbf2d04
--- /dev/null
+++ b/dev/src/XYZ2NEU.cpp
@@ -0,0 +1,90 @@
+
+/**
+ * @file XYZ2NEU.cpp
+ * This is a class to change the reference base from XYZ to North-East-Up (NEU)
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+#include "XYZ2NEU.hpp"
+
+
+namespace gpstk
+{
+
+ // Returns a reference to a satTypeValueMap object after converting from a geocentric reference
+ // system to a topocentric reference system.
+ //
+ // @param gData Data object holding the data.
+ //
+ satTypeValueMap& XYZ2NEU::Convert(satTypeValueMap& gData)
+ {
+ Matrix<double> neuMatrix;
+
+ // Get the corresponding geometry/design matrix data
+ Matrix<double> dMatrix(gData.getMatrixOfTypes((*this).inputSet));
+
+ // Compute the base change. For convenience, we use the property:
+ // Y = A*B => Y^T = (A*B)^T => Y^T = B^T * A^T
+ neuMatrix = dMatrix*rotationMatrix;
+
+ gData.insertMatrix(outputSet, neuMatrix);
+
+ return gData;
+
+ } // end XYZ2NEU::Convert()
+
+
+ // This method builds the rotation matrix according to refLat and refLon values.
+ void XYZ2NEU::Prepare()
+ {
+ // First, let's resize rotation matrix and assign the proper values
+ rotationMatrix.resize(3,3);
+
+ // The clasical rotation matrix is transposed here for convenience
+ rotationMatrix(0,0) = -std::sin(refLat)*std::cos(refLon);
+ rotationMatrix(1,0) = -std::sin(refLat)*std::sin(refLon);
+ rotationMatrix(2,0) = std::cos(refLat);
+ rotationMatrix(0,1) = -std::sin(refLon);
+ rotationMatrix(1,1) = std::cos(refLon);
+ rotationMatrix(2,1) = 0.0;
+ rotationMatrix(0,2) = std::cos(refLat)*std::cos(refLon);
+ rotationMatrix(1,2) = std::cos(refLat)*std::sin(refLon);
+ rotationMatrix(2,2) = std::sin(refLat);
+
+ // Then, fill the sets with the proper types
+ inputSet.clear();
+ inputSet.insert(TypeID::dx);
+ inputSet.insert(TypeID::dy);
+ inputSet.insert(TypeID::dz);
+
+ outputSet.clear();
+ outputSet.insert(TypeID::dLat);
+ outputSet.insert(TypeID::dLon);
+ outputSet.insert(TypeID::dH);
+
+ } // end XYZ2NEU::Prepare()
+
+
+} // end namespace gpstk
diff --git a/dev/src/XYZ2NEU.hpp b/dev/src/XYZ2NEU.hpp
new file mode 100644
index 0000000..14b38d5
--- /dev/null
+++ b/dev/src/XYZ2NEU.hpp
@@ -0,0 +1,270 @@
+
+/**
+ * @file XYZ2NEU.hpp
+ * This is a class to change the reference base from ECEF XYZ to topocentric North-East-Up (NEU).
+ */
+
+#ifndef XYZ2NEU_HPP
+#define XYZ2NEU_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007
+//
+//============================================================================
+
+
+
+#include "geometry.hpp" // DEG_TO_RAD
+#include "Matrix.hpp"
+#include "Position.hpp"
+#include "TypeID.hpp"
+#include "DataStructures.hpp"
+
+
+namespace gpstk
+{
+ /** @addtogroup GPSsolutions */
+ //@{
+
+ /**
+ * This class changes the reference base from an Earth-Centered,
+ * Earth-Fixed (ECEF) system to a North-East-Up (NEU) topocentric system,
+ * centered at the provided reference location.
+ *
+ * The NEU system is commonly used when comparing the relative accuracy
+ * of a given GNSS data processing strategy. Be mindful, however, that NEU
+ * is a "left-handed" reference system, whereas geocentric ECEF and
+ * topocentric North-East-Down (NED) are "right-handed" systems.
+ *
+ * A typical way to use this class follows:
+ *
+ * @code
+ * RinexObsStream rin("ebre0300.02o");
+ * // Reference position of receiver station
+ * Position nominalPos(4833520.2269, 41537.00768, 4147461.489);
+ *
+ * // Some more code and definitions here...
+ *
+ * gnssRinex gRin;
+ *
+ * // Set defaults of model. A typical C1-based modeling is used
+ * ModeledPR modelRef(nominalPos, ionoStore, mopsTM, bceStore, TypeID::C1, true);
+ *
+ * // Let's define a new equation definition to adapt solver object to base change
+ * TypeIDSet typeSet;
+ * typeSet.insert(TypeID::dLat);
+ * typeSet.insert(TypeID::dLon);
+ * typeSet.insert(TypeID::dH);
+ * typeSet.insert(TypeID::cdt);
+ * gnssEquationDefinition newEq(TypeID::prefitC, typeSet);
+ *
+ * // Declare (and tune) a SolverLMS object
+ * SolverLMS solver;
+ * solver.setDefaultEqDefinition(newEq);
+ *
+ * // Declare the base-changing object setting the reference position
+ * XYZ2NEU baseChange(nominalPos);
+ *
+ * while(rin >> gRin) {
+ * gRin >> modelRef >> baseChange >> solver;
+ * }
+ *
+ * @endcode
+ *
+ * The "XYZ2NEU" object will visit every satellite in the GNSS data structure that
+ * is "gRin" and will apply a rotation matrix to coefficients dx, dy and dz of the
+ * design matrix, yielding corresponding dLat, dLon and dH for each satellite.
+ *
+ * Take notice that the design matrix coefficients dx, dy and dz were computed by
+ * the "ModeledPR" object, so that step is mandatory.
+ *
+ * Also, the "XYZ2NEU" class is effective when properly coupled with the "solver"
+ * object (be it based on LMS or WMS). In order to get this, you must instruct the
+ * "solver" object to get the solution using a geometry/design matrix based on
+ * dLat, dLon and dH, instead of the defaults (dx, dy and dz).
+ *
+ * The later is achieved defining an appropriate "gnssEquationDefinition" object
+ * and instructing "solver" to use it as the default equation definition.
+ *
+ * @sa XYZ2NED.hpp
+ */
+ class XYZ2NEU
+ {
+ public:
+
+ /// Default constructor.
+ XYZ2NEU() : refLat(0.0), refLon(0.0)
+ {
+ Prepare();
+ };
+
+
+ /** Common constructor taking reference point latitude and longitude
+ *
+ * @param lat Latitude of the reference point.
+ * @param lon Longitude of the reference point.
+ */
+ XYZ2NEU(const double& lat, const double& lon)
+ {
+ setLatLon(lat, lon);
+ }
+
+
+ /** Common constructor taking reference point Position object
+ *
+ * @param refPos Reference point Position object.
+ */
+ XYZ2NEU(const Position& refPos)
+ {
+ setLatLon(refPos.getGeodeticLatitude(), refPos.getLongitude());
+ }
+
+
+ /** Method to set the latitude of the reference point, in degrees.
+ * @param lat Latitude of the reference point, in degrees.
+ */
+ virtual void setLat(const double& lat)
+ {
+ // Don't allow latitudes out of the -90/+90 interval
+ if ( (lat > 90.0) || (lat < -90.0) ) refLat = 0.0; else refLat = (lat*DEG_TO_RAD);
+ Prepare();
+ };
+
+
+ /// Method to get the latitude of the reference point, in degrees.
+ virtual double getLat() const
+ {
+ return (refLat*RAD_TO_DEG);
+ };
+
+
+ /** Method to set the longitude of the reference point, in degrees.
+ * @param lon Longitude of the reference point, in degrees.
+ */
+ virtual void setLon(const double& lon)
+ {
+ refLon = (lon*DEG_TO_RAD);
+ Prepare();
+ };
+
+
+ /// Method to get the longitude of the reference point, in degrees.
+ virtual double getLon() const
+ {
+ return (refLon*RAD_TO_DEG);
+ };
+
+
+ /** Method to set simultaneously the latitude and longitude of the reference point, in degrees.
+ * @param lat Latitude of the reference point, in degrees.
+ * @param lon Longitude of the reference point, in degrees.
+ */
+ virtual void setLatLon(const double& lat, const double& lon)
+ {
+ // Don't allow latitudes out of the -90/+90 interval
+ if ( (lat > 90.0) || (lat < -90.0) ) refLat = 0.0; else refLat = (lat*DEG_TO_RAD);
+ refLon = (lon*DEG_TO_RAD);
+ Prepare();
+ };
+
+
+ /** Returns a reference to a satTypeValueMap object after converting from a geocentric reference system to a topocentric reference system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual satTypeValueMap& Convert(satTypeValueMap& gData);
+
+
+ /** Returns a reference to a gnssSatTypeValue object after converting from a geocentric reference system to a topocentric reference system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssSatTypeValue& Convert(gnssSatTypeValue& gData)
+ {
+ (*this).Convert(gData.body);
+ return gData;
+ };
+
+
+ /** Returns a reference to a gnnsRinex object after converting from a geocentric reference system to a topocentric reference system.
+ *
+ * @param gData Data object holding the data.
+ */
+ virtual gnssRinex& Convert(gnssRinex& gData)
+ {
+ (*this).Convert(gData.body);
+ return gData;
+ };
+
+
+ /// Destructor.
+ virtual ~XYZ2NEU() {};
+
+
+ private:
+
+
+ /// Latitude of the reference point (topocentric reference), in radians.
+ double refLat;
+
+
+ /// Longitude of the reference point (topocentric reference), in radians.
+ double refLon;
+
+
+ /// Rotation matrix.
+ Matrix<double> rotationMatrix;
+
+
+ /// Set (TypeIDSet) containing the types of data to be converted (dx, dy, dz).
+ TypeIDSet inputSet;
+
+
+ /// Set (TypeIDSet) containing the resulting types of data (dLat, dLon, dH).
+ TypeIDSet outputSet;
+
+
+ /// This method builds the rotation matrix according to refLat and refLon values.
+ virtual void Prepare();
+
+
+ }; // class XYZ2NEU
+
+
+ /// Input operator from gnssSatTypeValue to XYZ2NEU.
+ inline gnssSatTypeValue& operator>>(gnssSatTypeValue& gData, XYZ2NEU& converter)
+ {
+ converter.Convert(gData);
+ return gData;
+ }
+
+
+ /// Input operator from gnssRinex to XYZ2NEU.
+ inline gnssRinex& operator>>(gnssRinex& gData, XYZ2NEU& converter)
+ {
+ converter.Convert(gData);
+ return gData;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/Xvt.cpp b/dev/src/Xvt.cpp
new file mode 100644
index 0000000..3c4453f
--- /dev/null
+++ b/dev/src/Xvt.cpp
@@ -0,0 +1,125 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file Xvt.cpp
+ * Position, velocity, and clock representation as ECEF, Triple and double
+ */
+
+#include "GeoidModel.hpp"
+#include "Xvt.hpp"
+
+namespace gpstk
+{
+
+ /*
+ * Function to find the range and position from a ground
+ * location, rxPos, to the spacecraft position (*this).x.
+ *
+ * Use the pseudorange corrected for SV clock effects to get a
+ * rough time of flight (dt). Account directly for Earth
+ * rotation, then compute a rough receiver bias by differencing
+ * the initial time of flight with the new estimate. Then
+ * correct the rotation by a small amount.
+ */
+ double Xvt :: preciseRho(const ECEF& rxPos,
+ const GeoidModel& geoid,
+ double correction) const
+ throw()
+ {
+ // Compute initial time of flight estimate using the
+ // geometric range at transmit time. This fails to account
+ // for the rotation of the earth, but should be good to
+ // within about 40 m
+ double sr1 = rxPos.slantRange(x);
+ double dt = sr1 / geoid.c();
+
+ // compute rotation angle in the time of signal transit
+ double rotation_angle = -geoid.angVelocity() * dt;
+
+ // rotate original GS coordinates to new values to correct for
+ // rotation of ECEF frame
+ // Ref: Satellite Geodesy, Gunter Seeber, 1993, pg 291 and the
+ // ICD-GPS-200 sheet 102 May 1993 version
+ // xnew[0]=xg[0]*cos(rotation_angle)-xg[1]*sin(rotation_angle);
+ // xnew[1]=xg[1]*cos(rotation_angle)+xg[0]*sin(rotation_angle);
+ // xnew[2]=xg[2];
+ // since cosine and sine are small, approximate by the first
+ // order terms in an expansion.
+ Triple xnew;
+ for (int i = 0; i < 2; i++)
+ {
+ xnew[0] = x[0] - x[1] * rotation_angle;
+ xnew[1] = x[1] + x[0] * rotation_angle;
+ xnew[2] = x[2];
+
+ // Compute geometric slant range from ground station to
+ // the rotated new coord's
+ sr1 = rxPos.slantRange(xnew);
+
+ // Recompute the time of flight (dt) based on PR, with the
+ // time of flight based on geometric range. Note that
+ // this is a really unneeded, in that the change in PR is
+ // < 40 m, hence the change in tof is < 20 ns
+ dt = sr1 / geoid.c();
+
+ // Compute new rotation in this time
+ rotation_angle = -geoid.angVelocity() * dt;
+ }
+ // Account for SV clock drift and other factors
+ double rho = sr1 - (dtime * geoid.c()) - correction;
+ return rho;
+ } // end of preciseRho()
+}
+
+std::ostream& operator<<( std::ostream& s,
+ const gpstk::Xvt& xvt )
+{
+ s << "x:" << xvt.x
+ << ", v:" << xvt.v
+ << ", clk bias:" << xvt.dtime
+ << ", clk drift:" << xvt.ddtime;
+ return s;
+}
diff --git a/dev/src/Xvt.hpp b/dev/src/Xvt.hpp
new file mode 100644
index 0000000..9014f91
--- /dev/null
+++ b/dev/src/Xvt.hpp
@@ -0,0 +1,103 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file Xvt.hpp
+ * Position, velocity, and clock representation as ECEF, Triple and double
+ */
+
+#ifndef GPSTK_XVT_HPP
+#define GPSTK_XVT_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <iostream>
+#include "Triple.hpp"
+#include "ECEF.hpp"
+#include "GeoidModel.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup geodeticgroup */
+ //@{
+
+ /// An Earth-Centered, Earth-Fixed position/velocity/clock representation
+ class Xvt
+ {
+ public:
+ /// Default constructor
+ Xvt() { }
+
+ ECEF x; ///< SV position (x,y,z). Earth-fixed. meters
+ Triple v; ///< SV velocity. Earth-fixed, including rotation. meters/sec
+ double dtime; ///< SV clock correction in seconds
+ double ddtime; ///< SV clock drift in sec/sec
+
+ /**
+ * Given the position of a ground location, compute the range
+ * to the spacecraft position.
+ * @param rxPos ground position at broadcast time in ECEF.
+ * @param geoid geodetic parameters.
+ * @param correction offset in meters (include any factors other
+ * than the SV clock correction).
+ * @return Range in meters
+ */
+ double preciseRho(const ECEF& rxPos,
+ const GeoidModel& geoid,
+ double correction = 0) const
+ throw();
+ };
+
+ //@}
+
+}
+
+/**
+ * Output operator for Xvt
+ * @param s output stream to which \c xvt is sent
+ * @param xvt Xvt that is sent to \c s
+ */
+std::ostream& operator<<( std::ostream& s,
+ const gpstk::Xvt& xvt );
+
+#endif
diff --git a/dev/src/YDSTime.cpp b/dev/src/YDSTime.cpp
new file mode 100644
index 0000000..00c31b8
--- /dev/null
+++ b/dev/src/YDSTime.cpp
@@ -0,0 +1,214 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "YDSTime.hpp"
+#include "TimeConverters.hpp"
+
+namespace gpstk
+{
+ YDSTime& YDSTime::operator=( const YDSTime& right )
+ throw()
+ {
+ year = right.year;
+ doy = right.doy;
+ sod = right.sod;
+ return *this;
+ }
+
+ CommonTime YDSTime::convertToCommonTime() const
+ {
+ long jday = convertCalendarToJD( year, 1, 1 ) + doy - 1;
+ return CommonTime( jday, sod );
+ }
+
+ void YDSTime::convertFromCommonTime( const CommonTime& ct )
+ {
+ long jday, secDay;
+ double fsecDay;
+ ct.get( jday, secDay, fsecDay );
+ sod = static_cast<double>( secDay ) + fsecDay;
+
+ int month, day;
+ convertJDtoCalendar( jday, year, month, day );
+ doy = jday - convertCalendarToJD( year, 1, 1 ) + 1;
+ }
+
+ std::string YDSTime::printf( const std::string& fmt ) const
+ throw( gpstk::StringUtils::StringException )
+ {
+ try
+ {
+ using gpstk::StringUtils::formattedPrint;
+ std::string rv = fmt;
+
+ rv = formattedPrint( rv, getFormatPrefixInt() + "Y",
+ "Yd", year);
+ rv = formattedPrint(rv, getFormatPrefixInt() + "y",
+ "yd", static_cast<short>(year % 100));
+ rv = formattedPrint( rv, getFormatPrefixInt() + "j",
+ "jd", doy);
+ rv = formattedPrint( rv, getFormatPrefixFloat() + "s",
+ "sf", sod);
+ return rv;
+ }
+ catch( gpstk::StringUtils::StringException& exc)
+ {
+ GPSTK_RETHROW( exc );
+ }
+ }
+
+ bool YDSTime::setFromInfo( const IdToValue& info )
+ throw()
+ {
+ using namespace gpstk::StringUtils;
+
+ for( IdToValue::const_iterator i = info.begin();
+ i != info.end(); i++ )
+ {
+ switch( i->first )
+ {
+ case 'Y':
+ year = asInt( i->second );
+ break;
+
+ case 'y':
+ switch( i->second.length() )
+ {
+ case 2:
+ year = asInt( i->second ) + 1900;
+ if( year < 1980 )
+ year += 100;
+ break;
+ case 3:
+ year = asInt( i->second ) + 1000;
+ if( year < 1980 )
+ year += 100;
+ break;
+ default:
+ year = asInt( i->second );
+ break;
+ };
+ break;
+
+ case 'j':
+ doy = asInt( i->second );
+ break;
+
+ case 's':
+ sod = asDouble( i->second );
+ break;
+
+ default:
+ // do nothing
+ break;
+ };
+ }
+
+ return true;
+ }
+
+ bool YDSTime::isValid() const
+ throw()
+ {
+ YDSTime temp;
+ temp.convertFromCommonTime( convertToCommonTime() );
+ if( *this == temp )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ void YDSTime::reset()
+ throw()
+ {
+ year = doy = 0;
+ sod = 0.0;
+ }
+
+ bool YDSTime::operator==( const YDSTime& right ) const
+ throw()
+ {
+ if( year == right.year &&
+ doy == right.doy &&
+ sod == right.sod )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool YDSTime::operator!=( const YDSTime& right ) const
+ throw()
+ {
+ return (! operator==( right ) );
+ }
+
+ bool YDSTime::operator<( const YDSTime& right ) const
+ throw()
+ {
+ if( year < right.year )
+ {
+ return true;
+ }
+ if( year > right.year )
+ {
+ return false;
+ }
+ if( doy < right.doy )
+ {
+ return true;
+ }
+ if( doy > right.doy )
+ {
+ return false;
+ }
+ if( sod < right.sod )
+ {
+ return true;
+ }
+ return false;
+ }
+
+ bool YDSTime::operator>( const YDSTime& right ) const
+ throw()
+ {
+ return (! operator<=( right ) );
+ }
+
+ bool YDSTime::operator<=( const YDSTime& right ) const
+ throw()
+ {
+ return ( operator<( right ) || operator==( right ) );
+ }
+
+ bool YDSTime::operator>=( const YDSTime& right ) const
+ throw()
+ {
+ return (! operator<( right ) );
+ }
+
+} // namespace
diff --git a/dev/src/YDSTime.hpp b/dev/src/YDSTime.hpp
new file mode 100644
index 0000000..4f084d9
--- /dev/null
+++ b/dev/src/YDSTime.hpp
@@ -0,0 +1,174 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_YDSTIME_HPP
+#define GPSTK_YDSTIME_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+#include "TimeTag.hpp"
+
+namespace gpstk
+{
+ /**
+ * This class encapsulates the "year, day-of-year, and seconds-of-day"
+ * time format.
+ */
+ class YDSTime : public TimeTag
+ {
+ public:
+ /**
+ * @defgroup ydstbo YDSTime Basic Operations
+ * Default and Copy Constructors, Assignment Operator and Destructor.
+ */
+ //@{
+ /**
+ * Default Constructor.
+ * All elements are set to zero by default.
+ */
+ YDSTime( long y = 0,
+ long d = 0,
+ double s = 0.)
+ throw()
+ : year(y), doy(d), sod(s)
+ {}
+
+ /** Copy Constructor.
+ * @param right a const reference to the YDSTime object to copy
+ */
+ YDSTime( const YDSTime& right )
+ throw()
+ : year( right.year ), doy( right.doy ), sod( right.sod )
+ {}
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const TimeTag reference and copies its contents via
+ * conversion to CommonTime.
+ * @param right a const reference to the TimeTag-based object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ YDSTime( const TimeTag& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right.convertToCommonTime() );
+ }
+
+ /**
+ * Alternate Copy Constructor.
+ * Takes a const CommonTime reference and copies its contents via
+ * the convertFromCommonTime method.
+ * @param right a const reference to the CommonTime object to copy
+ * @throw InvalidRequest on over-/under-flow
+ */
+ YDSTime( const CommonTime& right )
+ throw( InvalidRequest )
+ {
+ convertFromCommonTime( right );
+ }
+
+ /**
+ * Assignment Operator.
+ * @param right a const reference to the YDSTime object to copy
+ * @return a reference to this YDSTime
+ */
+ YDSTime& operator=( const YDSTime& right )
+ throw();
+
+ /// Virtual Destructor.
+ virtual ~YDSTime()
+ throw()
+ {}
+ //@}
+
+ // The following functions are required by TimeTag.
+ virtual CommonTime convertToCommonTime() const;
+
+ virtual void convertFromCommonTime( const CommonTime& ct ) ;
+
+ /// This function formats this time to a string. The exceptions
+ /// thrown would only be due to problems parsing the fmt string.
+ virtual std::string printf(const std::string& fmt) const
+ throw( gpstk::StringUtils::StringException );
+
+ /**
+ * Set this object using the information provided in \a info.
+ * @param info the IdToValue object to which this object shall be set.
+ * @return true if this object was successfully set using the
+ * data in \a info, false if not.
+ */
+ virtual bool setFromInfo( const IdToValue& info )
+ throw();
+
+ /// Return a string containing the characters that this class
+ /// understands when printing times.
+ virtual std::string getPrintChars() const
+ throw()
+ {
+ return "Yyjs";
+ }
+
+ /// Return a string containing the default format to use in printing.
+ virtual std::string getDefaultFormat() const
+ throw()
+ {
+ return "%04Y/%03j %s";
+ }
+
+ virtual bool isValid() const
+ throw();
+
+ virtual void reset()
+ throw();
+
+ /**
+ * @defgroup ydstco YDSTime Comparison Operators
+ * All comparison operators have a parameter "right" which corresponds
+ * to the YDSTime object to the right of the symbol.
+ * All comparison operators are const and return true on success
+ * and false on failure.
+ */
+ //@{
+ bool operator==( const YDSTime& right ) const
+ throw();
+ bool operator!=( const YDSTime& right ) const
+ throw();
+ bool operator<( const YDSTime& right ) const
+ throw();
+ bool operator>( const YDSTime& right ) const
+ throw();
+ bool operator<=( const YDSTime& right ) const
+ throw();
+ bool operator>=( const YDSTime& right ) const
+ throw();
+ //@}
+
+ int year;
+ int doy;
+ double sod;
+ };
+
+} // namespace
+
+#endif // GPSTK_YDSTIME_HPP
diff --git a/dev/src/YumaAlmanacStore.cpp b/dev/src/YumaAlmanacStore.cpp
new file mode 100644
index 0000000..3b7454b
--- /dev/null
+++ b/dev/src/YumaAlmanacStore.cpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file YumaAlmanacStore.cpp
+ * Store Yuma almanac information, and access by satellite and time
+ */
+
+#include "YumaAlmanacStore.hpp"
+
+namespace gpstk
+{
+ void YumaAlmanacStore::loadFile(const std::string& filename)
+ throw(gpstk::FileMissingException)
+ {
+ try
+ {
+ YumaStream strm(filename.c_str());
+ if (!strm)
+ {
+ FileMissingException e("File " + filename + " could not be opened.");
+ GPSTK_THROW(e);
+ }
+
+ YumaHeader header;
+ strm >> header;
+ addFile(filename, header);
+
+ YumaData rec;
+ while(strm >> rec)
+ {
+ addAlmanac(AlmOrbit(rec));
+ }
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ GPSTK_RETHROW(e);
+ }
+
+ }
+
+ gpstk::DayTime YumaAlmanacStore::getFinalTime()
+ const
+ {
+ DayTime retDT = DayTime::BEGINNING_OF_TIME;
+ UBAMap::const_iterator satItr = uba.begin();
+ while (satItr != uba.end())
+ {
+ const EngAlmMap& eam = (*satItr).second;
+
+ EngAlmMap::const_iterator nextItr;
+ for (nextItr=eam.begin(); nextItr!=eam.end(); ++nextItr)
+ {
+ const AlmOrbit& ao = (*nextItr).second;
+ try
+ {
+ DayTime testT = ao.getToaTime();
+ if (testT<retDT) retDT = testT;
+ }
+ // Not to worry, worst case method return 'BEGINNING_OF_TIME'
+ catch(...)
+ {}
+ }
+ satItr++;
+ }
+ return(retDT);
+ }
+
+}
diff --git a/dev/src/YumaAlmanacStore.hpp b/dev/src/YumaAlmanacStore.hpp
new file mode 100644
index 0000000..f2cc679
--- /dev/null
+++ b/dev/src/YumaAlmanacStore.hpp
@@ -0,0 +1,72 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+/**
+ * @file YumaAlmanacStore.hpp
+ * Store Yuma almanac information, and access by satellite and time
+ */
+
+#ifndef YUMAALMANACSTORE_HPP
+#define YUMAALMANACSTORE_HPP
+
+#include "AlmanacStore.hpp"
+#include "FileStore.hpp"
+#include "YumaData.hpp"
+#include "YumaStream.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup ephemstore */
+ //@{
+
+ class YumaAlmanacStore : public FileStore<YumaHeader>,
+ public AlmanacStore
+ {
+ public:
+
+ void loadFile(const std::string& filename)
+ throw(FileMissingException);
+
+ gpstk::DayTime getFinalTime() const;
+
+ };
+
+ //@}
+
+}
+
+#endif
diff --git a/dev/src/YumaBase.hpp b/dev/src/YumaBase.hpp
new file mode 100644
index 0000000..87f0dbd
--- /dev/null
+++ b/dev/src/YumaBase.hpp
@@ -0,0 +1,77 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file YumaBase.hpp
+ * gpstk::YumaBase - base class for Yuma FFData.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef YUMABASE_HPP
+#define YUMABASE_HPP
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @defgroup Yuma Yuma almanac files */
+ //@{
+
+ /**
+ * This is a base class for all Yuma-related classes.
+ */
+ class YumaBase : public FFData
+ {
+
+ public:
+
+ /// in deference to our coding standards, this is declared virtual
+ virtual ~YumaBase() {}
+
+ };
+
+ //@}
+}
+
+#endif
diff --git a/dev/src/YumaData.cpp b/dev/src/YumaData.cpp
new file mode 100644
index 0000000..5b693d1
--- /dev/null
+++ b/dev/src/YumaData.cpp
@@ -0,0 +1,273 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file YumaData.cpp
+ * Encapsulate Yuma almanac file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "YumaData.hpp"
+#include "YumaStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ const std::string YumaData::sID = "ID: ";
+ const std::string YumaData::sHlth = "Health: ";
+ const std::string YumaData::sEcc = "Eccentricity: ";
+ const std::string YumaData::sTOA = "Time of Applicability(s): ";
+ const std::string YumaData::sOrbI = "Orbital Inclination(rad): ";
+ const std::string YumaData::sRRA = "Rate of Right Ascen(r/s): ";
+ const std::string YumaData::sSqrA = "SQRT(A) (m 1/2): ";
+ const std::string YumaData::sRtAs = "Right Ascen at Week(rad): ";
+ const std::string YumaData::sArgP = "Argument of Perigee(rad): ";
+ const std::string YumaData::sMnAn = "Mean Anom(rad): ";
+ const std::string YumaData::sAf0 = "Af0(s): ";
+ const std::string YumaData::sAf1 = "Af1(s/s): ";
+ const std::string YumaData::sweek = "week: ";
+
+ void YumaData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ YumaStream& strm = dynamic_cast<YumaStream&>(ffs);
+
+ // first the epoch line to 'line'
+ line = "******** Week";
+ int epochWeek = week % 1024;
+ line += rightJustify(asString<short>(epochWeek), 5);
+ line += " almanac for PRN-";
+ line += rightJustify(asString<short>(PRN), 2, '0');
+ line += " ********";
+
+ // write the header line
+ strm << line << endl;
+ line.erase();
+
+ // Write the ID line
+ line = sID;
+ line += rightJustify(asString<short>(PRN),2,'0');
+ strm << line << endl;
+ line.erase();
+
+ // Write the Health line
+ line = sHlth;
+ line += rightJustify(asString<short>(SV_health),3,'0'); // should be hex
+ strm << line << endl;
+ line.erase();
+
+ // Write the Ecc line
+ line = sEcc;
+ line += leftJustify(asString(doub2for(ecc,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Toa line
+ line = sTOA;
+ line += leftJustify(asString((double)Toa,4),11);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Orbital Inc line
+ line = sOrbI;
+ double i_total = i_offset + 54.0 * (gpstk::PI / 180.0 );
+ if (i_total >=0) line += " ";
+ line += leftJustify(asString(i_total,10),17);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Rate of Right Ascen line
+ line = sRRA;
+ line += leftJustify(asString(doub2for(OMEGAdot,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the SqrtA line
+ line = sSqrA;
+ line += " ";
+ line += leftJustify(asString(Ahalf,6),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Right Ascen at Week line
+ line = sRtAs;
+ line += leftJustify(asString(doub2for(OMEGA0,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Argument of Perigee line
+ line = sArgP;
+ if (w>=0) line += " ";
+ line += leftJustify(asString(w,9),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write Mean Anomaly line
+ line = sMnAn;
+ line += leftJustify(asString(doub2for(M0,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Af0 line
+ line = sAf0;
+ line += leftJustify(asString(doub2for(AF0,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the AF1 line
+ line = sAf1;
+ line += leftJustify(asString(doub2for(AF1,17,3,false)),18); // should be hex
+ strm << line << endl;
+ line.erase();
+
+ // Write the week line
+ line = sweek;
+ line += rightJustify(asString<short>(epochWeek),5); // should be hex
+ strm << line << endl;
+ line.erase();
+ strm << endl;
+
+ } // end YumaData::reallyPutRecord
+
+
+ void YumaData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ YumaStream& strm = dynamic_cast<YumaStream&>(ffs);
+
+ string line;
+
+ // We don't need first line as we will get all the information from the others
+ strm.formattedGetLine(line, true);
+
+ //Second Line - PRN
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sID );
+ PRN = asInt(line);
+
+ //Third Line - Satellite Health
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sHlth );
+ SV_health = asInt(line);
+
+ //Fourth Line - Eccentricity
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sEcc );
+ ecc = asDouble(line);
+
+ //Fifth Line - Time of Applicability
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sTOA );
+ double dToa = asDouble(line);
+ Toa = (long) dToa;
+
+ //Sixth Line - Orbital Inclination
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sOrbI );
+ double i_total = asDouble(line);
+ i_offset = i_total - 54.0 * (gpstk::PI / 180.0);
+
+ //Seventh Line - Rate of Right Ascen
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sRRA );
+ OMEGAdot = asDouble(line);
+
+ //Eigth Line - SqrtA
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sSqrA );
+ Ahalf = asDouble(line);
+
+ //Ninth Line - Right Ascen at Week
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sRtAs );
+ OMEGA0 = asDouble(line);
+
+ //Tenth Line - Argument of Perigee
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sArgP );
+ w = asDouble(line);
+
+ //Eleventh Line - Mean Anomaly
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sMnAn );
+ M0 = asDouble(line);
+
+ //Twelfth Line - Af0
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sAf0 );
+ AF0 = asDouble(line);
+
+ //Thirteenth Line - Af1
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sAf1 );
+ AF1 = asDouble(line);
+
+ //Fourteenth Line - week
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sweek );
+ int epoch_week = asInt(line);
+ week = epoch_week + 1024; // Need a way to set epoch Do we??
+
+ xmit_time = 0;
+ strm.formattedGetLine(line,true);
+
+ } // end of reallyGetRecord()
+
+ void YumaData::dump(ostream& s) const
+ {
+ cout << "PRN = " << PRN << endl;
+ cout << "week = " << week << endl;
+ cout << "SV_health = " << SV_health << endl;
+ cout << "ecc = " << ecc << endl;
+ cout << "Toa = " << Toa << endl;
+ cout << "i_offset = " << i_offset << endl;
+ cout << "OMEGAdot = " << OMEGAdot << endl;
+ cout << "Ahalf = " << Ahalf << endl;
+ cout << "OMEGA0 = " << OMEGA0 << endl;
+ cout << "w = " << w << endl;
+ cout << "M0 = " << M0 << endl;
+ cout << "AF0 = " << AF0 << endl;
+ cout << "AF1 = " << AF1 << endl;
+ cout << "xmit_time = " << xmit_time << endl;
+
+ } // end of dump()
+
+ YumaData::operator AlmOrbit() const
+ {
+ AlmOrbit ao(PRN, ecc,i_offset, OMEGAdot, Ahalf, OMEGA0,
+ w, M0, AF0, AF1, Toa, xmit_time, week, SV_health);
+
+ return ao;
+
+ } // end of AlmOrbit()
+} // namespace
diff --git a/dev/src/YumaData.hpp b/dev/src/YumaData.hpp
new file mode 100644
index 0000000..7a9bd0a
--- /dev/null
+++ b/dev/src/YumaData.hpp
@@ -0,0 +1,141 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file YumaData.hpp
+ * Encapsulate Yuma Almanac file data, including I/O
+ */
+
+#ifndef YUMADATA_HPP
+#define YUMADATA_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "YumaBase.hpp"
+#include "YumaHeader.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Yuma */
+ //@{
+
+ /**
+ * This class stores, reads, and writes Yuma records.
+ *
+ * @sa tests/Yuma for examples
+ * @sa YumaStream.
+ * @sa YumaHeader for information on writing Yuma files.
+ */
+ class YumaData : public YumaBase
+ {
+ public:
+ /// Constructor.
+ YumaData() {}
+
+ /// Destructor
+ virtual ~YumaData() {}
+
+ static const std::string sID; // ID label string
+ static const std::string sHlth; // Satellite Health string
+ static const std::string sEcc; // Eccentricity string
+ static const std::string sTOA;
+ static const std::string sOrbI;
+ static const std::string sRRA;
+ static const std::string sSqrA;
+ static const std::string sRtAs;
+ static const std::string sArgP;
+ static const std::string sMnAn;
+ static const std::string sAf0;
+ static const std::string sAf1;
+ static const std::string sweek;
+
+
+ short PRN;
+ short week;
+ short SV_health;
+ double ecc;
+ long Toa;
+ double i_offset;
+ double OMEGAdot;
+ double Ahalf;
+ double OMEGA0;
+ double w;
+ double M0;
+ double AF0;
+ double AF1;
+ long xmit_time;
+
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the Yuma class to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /**
+ * cast *this into an AlmOrbit
+ * @return the constructed AlmOrbit object
+ */
+ operator AlmOrbit() const;
+
+
+
+ protected:
+ /**
+ * Writes a correctly formatted record from this data to stream \a s.
+ */
+ void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a Yuma almanac record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class YumaData
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/YumaHeader.cpp b/dev/src/YumaHeader.cpp
new file mode 100644
index 0000000..5df1a95
--- /dev/null
+++ b/dev/src/YumaHeader.cpp
@@ -0,0 +1,66 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file YumaHeader.cpp
+ * Encapsulate Yuma header almanac file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "YumaHeader.hpp"
+#include "YumaStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ /// There is actually no Yuma Header information, it was just much
+ /// easier to use this format for Yuma storage.
+
+ void YumaHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+
+ } // end YumaAHeader::reallyPutRecord
+
+
+ void YumaHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+
+
+ } // end of reallyGetRecord()
+
+ void YumaHeader::dump(ostream& s) const
+ {
+
+ }
+
+} // namespace
diff --git a/dev/src/YumaHeader.hpp b/dev/src/YumaHeader.hpp
new file mode 100644
index 0000000..8c50a7c
--- /dev/null
+++ b/dev/src/YumaHeader.hpp
@@ -0,0 +1,106 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file YumaHeader.hpp
+ * Encapsulate Yuma Almanac header, including I/O
+ */
+
+#ifndef YUMAHEADER_HPP
+#define YUMAHEADER_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "YumaBase.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Yuma */
+ //@{
+
+ /**
+ * This class does not really do anything. It is here to conform to the
+ * other file types, even though the Yuma file type
+ * does not have any header information.
+ *
+ * @sa tests/Yuma for examples
+ * @sa YumaStream.
+ * @sa YumaData for more information on writing Yuma files.
+ */
+ class YumaHeader : public YumaBase
+ {
+ public:
+ /// Constructor.
+ YumaHeader() {}
+
+ /// Destructor
+ virtual ~YumaHeader() {}
+
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the Yuma header to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is a "header" so this function always returns "true".
+ virtual bool isHeader() const {return true;}
+
+
+
+ protected:
+ /**
+ * Writes a correctly formatted record from this header to stream \a s.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a Yuma header record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class YumaHeader
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/YumaStream.hpp b/dev/src/YumaStream.hpp
new file mode 100644
index 0000000..03b48bd
--- /dev/null
+++ b/dev/src/YumaStream.hpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file YumaStream.hpp
+ * gpstk::YumaStream - ASCII FIC file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+#ifndef YUMASTREAM_HPP
+#define YUMASTREAM_HPP
+
+
+#include "FFTextStream.hpp"
+#include "YumaHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Yuma */
+ //@{
+
+ /**
+ * This class performs file i/o on a Yuma file for the
+ * YumaHeader and YumaData classes.
+ *
+ * @sa tests/Yuma for examples.
+ * @sa YumaData.
+ * @sa YumaHeader for information on writing Yuma files.
+ *
+ */
+ class YumaStream : public FFTextStream
+ {
+ public:
+ /// Default constructor
+ YumaStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the ascuu FIC file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ YumaStream(const char* fn,
+ std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {};
+
+ /// destructor per the coding standards
+ virtual ~YumaStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = YumaHeader();
+ }
+ /// YumaHeader for this file
+ YumaHeader header;
+
+ /// Flag showing whether or not the header has been read.
+ bool headerRead;
+
+ }; // class YumaStream
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/src/convhelp.hpp b/dev/src/convhelp.hpp
new file mode 100644
index 0000000..8028439
--- /dev/null
+++ b/dev/src/convhelp.hpp
@@ -0,0 +1,135 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file convhelp.hpp
+ * Conversion of units (deg F to C, meters to cycles, etc)
+ */
+
+#ifndef GPSTK_CONVHELP_HPP
+#define GPSTK_CONVHELP_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include "GeoidModel.hpp"
+
+namespace gpstk
+{
+ /** @defgroup geodeticgroup Geodetic coordinates and geoids */
+ //@{
+
+ /**
+ * Convert a phase and frequency to meters
+ * @param phase Phase in cycles (radians?)
+ * @param freq Frequency in Hertz
+ * @param geoid geodetic parameters (for c)
+ * @return Range in meters
+ * @see meters2cycles
+ */
+ inline double cycles2meters(double phase, double freq, GeoidModel& geoid)
+ {
+ return geoid.c()/freq * phase;
+ }
+
+ /**
+ * Convert a range and frequency to cycles
+ * @param range Distance in meters
+ * @param freq Frequency in Hertz
+ * @param geoid geodetic parameters (for c)
+ * @return Phase in cycles (radians?)
+ * @see cycles2meters
+ */
+ inline double meters2cycles(double range, double freq, GeoidModel& geoid)
+ {
+ return freq/geoid.c() * range;
+ }
+
+ /**
+ * Convert a temperature from Celsius to Fahrenheit
+ * @param c Temperature in degrees Celsius
+ * @return Temperature in degrees Fahrenheit
+ * @see far2cel
+ */
+ inline double cel2far(double c)
+ {
+ return 9.0 / 5.0 * c + 32;
+ }
+
+ /**
+ * Convert a temperature from Fahrenheit to Celsius
+ * @param f Temperature in degrees Fahrenheit
+ * @return Temperature in degrees Celsius
+ * @see cel2far
+ */
+ inline double far2cel(double f)
+ {
+ return 5.0 / 9.0 * (f - 32);
+ }
+
+ /**
+ * Convert pressure from millibars to inches of mercury
+ * @param mb Pressure in millibars
+ * @return Pressure in inches of mercury
+ * @see hg2mb
+ */
+ inline double mb2hg(double mb)
+ {
+ return mb / 33.8638815789;
+ }
+
+ /**
+ * Convert pressure from inches of mercury to millibars
+ * @param hg Pressure in inches of mercury
+ * @return Pressure in millibars
+ * @see mb2hg
+ */
+ inline double hg2mb(double hg)
+ {
+ return hg * 33.8638815789;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/geometry.hpp b/dev/src/geometry.hpp
new file mode 100644
index 0000000..cde8ec5
--- /dev/null
+++ b/dev/src/geometry.hpp
@@ -0,0 +1,71 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file geometry.hpp
+ * Geometric constants (radian-degree conversion)
+ */
+
+#ifndef GPSTK_GEOMETRY_HPP
+#define GPSTK_GEOMETRY_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+namespace gpstk
+{
+ /**
+ * @addtogroup geodeticgroup
+ * @name Geometric Constants
+ */
+ //@{
+ //Miscellaneous Parameters
+
+ /// Conversion Factor from degrees to radians (units: degrees^-1)
+ static const double DEG_TO_RAD = 1.7453292519943e-2;
+
+ /// Conversion Factor from radians to degrees (units: degrees)
+ static const double RAD_TO_DEG = 57.295779513082;
+ //@}
+}
+
+#endif
diff --git a/trunk/src/getopt.c b/dev/src/getopt.c
similarity index 100%
rename from trunk/src/getopt.c
rename to dev/src/getopt.c
diff --git a/trunk/src/getopt.h b/dev/src/getopt.h
similarity index 100%
rename from trunk/src/getopt.h
rename to dev/src/getopt.h
diff --git a/trunk/src/getopt1.c b/dev/src/getopt1.c
similarity index 100%
rename from trunk/src/getopt1.c
rename to dev/src/getopt1.c
diff --git a/dev/src/gps_constants.hpp b/dev/src/gps_constants.hpp
new file mode 100644
index 0000000..142a2be
--- /dev/null
+++ b/dev/src/gps_constants.hpp
@@ -0,0 +1,67 @@
+#pragma ident "$Id$"
+
+
+
+#ifndef GPSTK_GPS_CONSTANTS_HPP
+#define GPSTK_GPS_CONSTANTS_HPP
+
+/**
+ * @file gps_constants.hpp
+ * Miscellaneous constants for GPS.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+namespace gpstk
+{
+ /** @addtogroup ephemcalc */
+ //@{
+
+ /** The maximum number of active satellites in the GPS
+ * constellation. */
+ const long MAX_PRN = 32;
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/gpstkplatform.h b/dev/src/gpstkplatform.h
new file mode 100644
index 0000000..5147fe6
--- /dev/null
+++ b/dev/src/gpstkplatform.h
@@ -0,0 +1,57 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+
+
+/* This is where all platform specific includes, defines and crud should go.
+ Unless, of course, it has to go somewhere else. :-)
+*/
+
+#ifndef GPSTK_PLATFORM_HPP
+#define GPSTK_PLATFORM_HPP
+
+#ifdef _MSC_VER
+
+#include<stdlib.h>
+
+typedef __int8 int8_t;
+typedef __int16 int16_t;
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int8 uint8_t;
+typedef unsigned __int16 uint16_t;
+typedef unsigned __int32 uint32_t;
+typedef unsigned __int64 uint64_t;
+#include <sys/types.h>
+#include <sys/timeb.h>
+
+
+#elif !defined(__SUNPRO_CC)
+#include <stdint.h>
+#endif
+
+#endif
diff --git a/dev/src/icd_200_constants.hpp b/dev/src/icd_200_constants.hpp
new file mode 100644
index 0000000..040ea4a
--- /dev/null
+++ b/dev/src/icd_200_constants.hpp
@@ -0,0 +1,183 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file icd_200_constants.hpp
+ * Constants as defined in the GPS-ICD-200
+ * Now the IS-GPS-200D
+ */
+
+#ifndef GPSTK_ICD_200_CONSTANTS_HPP
+#define GPSTK_ICD_200_CONSTANTS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+namespace gpstk
+{
+ /**
+ * @addtogroup geodeticgroup
+ * @name GPS Constants
+ * Time constants are in the time library.
+ */
+ //@{
+ /// GPS value of PI
+ const double PI = 3.1415926535898;
+ /// GPS value of PI*2
+ const double TWO_PI = 6.2831853071796;
+ /// GPS value of PI**0.5
+ const double SQRT_PI = 1.7724539;
+ /// relativity constant for GPS (sec/sqrt(m))
+ const double REL_CONST = -4.442807633e-10;
+ /// Hz
+ const double OSC_FREQ = 10.23e6;
+ /// Hz, chip rate of the P & Y codes
+ const double PY_CHIP_FREQ = OSC_FREQ;
+ /// Hz, chip rate of the C/A code
+ const double CA_CHIP_FREQ = OSC_FREQ / 10.0;
+ /// speed of light (m/s)
+ const double C_GPS_M = 2.99792458e8;
+ /// Base freq w/o relativisitic effects, Hz.
+ const double RSVCLK = 10.22999999543e6;
+ /// L1 carrier frequency in Hz.
+ const double L1_FREQ = 1575.42e6;
+ /// L1 carrier wavelength in meters.
+ const double L1_WAVELENGTH = 0.190293672798;
+ /// L2 carrier frequency in Hz.
+ const double L2_FREQ = 1227.60e6;
+ /// L2 carrier wavelength in meters.
+ const double L2_WAVELENGTH = 0.244210213425;
+ /// L1 multiplier.
+ const double L1_MULT = 154.0;
+ /// L2 multiplier.
+ const double L2_MULT = 120.0;
+ /// Gamma multiplier.
+ const double GAMMA_GPS = 1.646944444;
+
+ // Modernized GPS
+ /// L5 carrier frequency in Hz.
+ const double L5_FREQ = 1176.45e6;
+ /// L5 carrier wavelength in meters.
+ const double L5_WAVELENGTH = 0.254828049;
+
+ // Galileo-related
+ /// L6 carrier frequency in Hz.
+ const double L6_FREQ = 1278.75e6;
+ /// L6 carrier wavelength in meters.
+ const double L6_WAVELENGTH = 0.234441805;
+ /// L7 carrier frequency in Hz.
+ const double L7_FREQ = 1207.140e6;
+ /// L7 carrier wavelength in meters.
+ const double L7_WAVELENGTH = 0.24834937;
+ /// L8 carrier frequency in Hz.
+ const double L8_FREQ = 1191.795e6;
+ /// L8 carrier wavelength in meters.
+ const double L8_WAVELENGTH = 0.251547001;
+
+ /// constant for the max array index in sv accuracy table
+ const int SV_ACCURACY_MAX_INDEX_VALUE = 15;
+ /// map from SV accuracy/URA flag to minimum accuracy values in m
+ const double SV_ACCURACY_MIN_INDEX[] = {0.0, 2.4, 3.4, 4.85, 6.85, 9.65,
+ 13.65, 24.0, 48.0, 96.0, 192.0,
+ 384.0, 768.0, 1536.0, 3072.0,
+ 6144.0};
+ /// Map from SV accuracy/URA flag to NOMINAL accuracy values in m
+ /// Further details in ICD-GPS-200C, section 20.3.3.3.1.3
+ const double SV_ACCURACY_NOMINAL_INDEX[] = {2.0, 2.8, 4.0, 5.7, 8.0,
+ 11.3, 16.0, 32.0, 64.0, 128.0,
+ 256.0, 512.0, 1024.0, 2048.0,
+ 4096.0, 9.999999999999e99};
+ /// map from SV accuracy/URA flag to maximum accuracy values in m
+ const double SV_ACCURACY_MAX_INDEX[] = {2.4, 3.4, 4.85, 6.85, 9.65,
+ 13.65, 24.0, 48.0, 96.0, 192.0,
+ 384.0, 768.0, 1536.0, 3072.0,
+ 6144.0, 9.999999999999e99};
+
+ inline
+ short accuracy2ura(const double& acc) throw()
+ {
+ short ura = 0;
+ while ( (ura <= SV_ACCURACY_MAX_INDEX_VALUE) &&
+ (acc > SV_ACCURACY_MAX_INDEX[ura]))
+ ura++;
+ if (ura > SV_ACCURACY_MAX_INDEX_VALUE)
+ ura = SV_ACCURACY_MAX_INDEX_VALUE;
+ return ura;
+ }
+
+ inline
+ double ura2accuracy(const short& ura) throw()
+ {
+ if(ura < 0)
+ return SV_ACCURACY_MAX_INDEX[0];
+ if(ura > SV_ACCURACY_MAX_INDEX_VALUE)
+ return SV_ACCURACY_MAX_INDEX[SV_ACCURACY_MAX_INDEX_VALUE];
+ return SV_ACCURACY_MAX_INDEX[ura];
+ }
+
+ inline
+ short nominalAccuracy2ura(const double& acc) throw()
+ {
+ short ura = 0;
+ while ( (ura <= SV_ACCURACY_MAX_INDEX_VALUE) &&
+ (acc > SV_ACCURACY_NOMINAL_INDEX[ura]))
+ ura++;
+ if (ura > SV_ACCURACY_MAX_INDEX_VALUE)
+ ura = SV_ACCURACY_MAX_INDEX_VALUE;
+ return ura;
+ }
+
+ inline
+ double ura2nominalAccuracy(const short& ura) throw()
+ {
+ if(ura < 0)
+ return SV_ACCURACY_NOMINAL_INDEX[0];
+ if(ura > SV_ACCURACY_MAX_INDEX_VALUE)
+ return SV_ACCURACY_NOMINAL_INDEX[SV_ACCURACY_MAX_INDEX_VALUE];
+ return SV_ACCURACY_NOMINAL_INDEX[ura];
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/src/mergePCodeWords.h b/dev/src/mergePCodeWords.h
new file mode 100644
index 0000000..676b67c
--- /dev/null
+++ b/dev/src/mergePCodeWords.h
@@ -0,0 +1,52 @@
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+
+
+/*
+* mergePCodeWords - Helper function used in X2Sequence and GenXSequence
+
+ Given two bit-packed integers, merge the lower portion of the
+ first and the higher portion of the second into a new bit-packed
+ integer. The first_bit argument defines the most significant
+ bit of the merged word. The bits are numbered from 0 - MAX_BIT-1.
+*/
+#ifndef MERGEPCODEWORDS_H
+#define MERGEPCODEWORDS_H
+
+ inline unsigned long merge( unsigned long w1,
+ unsigned long w2,
+ int first_bit )
+ {
+ unsigned long outword = w1;
+ if (first_bit==0) return(outword);
+
+ outword <<= first_bit;
+ outword |= w2 >> (gpstk::MAX_BIT - first_bit);
+
+ return(outword);
+ }
+
+#endif // end of MERGEPCODEWORDS_H
diff --git a/dev/src/regex.c b/dev/src/regex.c
new file mode 100644
index 0000000..60dd5bd
--- /dev/null
+++ b/dev/src/regex.c
@@ -0,0 +1,4949 @@
+/* Extended regular expression matching and search library,
+ version 0.12.
+ (Implements POSIX draft P10003.2/D11.2, except for
+ internationalization features.)
+
+ Copyright (C) 1993 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+/* AIX requires this to be the first thing in the file. */
+#if defined (_AIX) && !defined (REGEX_MALLOC)
+ #pragma alloca
+#endif
+
+#define _GNU_SOURCE
+
+/* We need this for `regex.h', and perhaps for the Emacs include files. */
+#include <sys/types.h>
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+/* The `emacs' switch turns on certain matching commands
+ that make sense only in Emacs. */
+#ifdef emacs
+
+#include "lisp.h"
+#include "buffer.h"
+#include "syntax.h"
+
+/* Emacs uses `NULL' as a predicate. */
+#undef NULL
+
+#else /* not emacs */
+
+/* We used to test for `BSTRING' here, but only GCC and Emacs define
+ `BSTRING', as far as I know, and neither of them use this code. */
+#if HAVE_STRING_H || STDC_HEADERS
+#include <string.h>
+#ifndef bcmp
+#define bcmp(s1, s2, n) memcmp ((s1), (s2), (n))
+#endif
+#ifndef bcopy
+#define bcopy(s, d, n) memcpy ((d), (s), (n))
+#endif
+#ifndef bzero
+#define bzero(s, n) memset ((s), 0, (n))
+#endif
+#else
+#include <strings.h>
+#endif
+
+#ifdef STDC_HEADERS
+#include <stdlib.h>
+#else
+char *malloc ();
+char *realloc ();
+#endif
+
+
+/* Define the syntax stuff for \<, \>, etc. */
+
+/* This must be nonzero for the wordchar and notwordchar pattern
+ commands in re_match_2. */
+#ifndef Sword
+#define Sword 1
+#endif
+
+#ifdef SYNTAX_TABLE
+
+extern char *re_syntax_table;
+
+#else /* not SYNTAX_TABLE */
+
+/* How many characters in the character set. */
+#define CHAR_SET_SIZE 256
+
+static char re_syntax_table[CHAR_SET_SIZE];
+
+static void
+init_syntax_once ()
+{
+ register int c;
+ static int done = 0;
+
+ if (done)
+ return;
+
+ bzero (re_syntax_table, sizeof re_syntax_table);
+
+ for (c = 'a'; c <= 'z'; c++)
+ re_syntax_table[c] = Sword;
+
+ for (c = 'A'; c <= 'Z'; c++)
+ re_syntax_table[c] = Sword;
+
+ for (c = '0'; c <= '9'; c++)
+ re_syntax_table[c] = Sword;
+
+ re_syntax_table['_'] = Sword;
+
+ done = 1;
+}
+
+#endif /* not SYNTAX_TABLE */
+
+#define SYNTAX(c) re_syntax_table[c]
+
+#endif /* not emacs */
+
+/* Get the interface, including the syntax bits. */
+#include "regex.h"
+
+/* isalpha etc. are used for the character classes. */
+#include <ctype.h>
+
+#ifndef isascii
+#define isascii(c) 1
+#endif
+
+#ifdef isblank
+#define ISBLANK(c) (isascii (c) && isblank (c))
+#else
+#define ISBLANK(c) ((c) == ' ' || (c) == '\t')
+#endif
+#ifdef isgraph
+#define ISGRAPH(c) (isascii (c) && isgraph (c))
+#else
+#define ISGRAPH(c) (isascii (c) && isprint (c) && !isspace (c))
+#endif
+
+#define ISPRINT(c) (isascii (c) && isprint (c))
+#define ISDIGIT(c) (isascii (c) && isdigit (c))
+#define ISALNUM(c) (isascii (c) && isalnum (c))
+#define ISALPHA(c) (isascii (c) && isalpha (c))
+#define ISCNTRL(c) (isascii (c) && iscntrl (c))
+#define ISLOWER(c) (isascii (c) && islower (c))
+#define ISPUNCT(c) (isascii (c) && ispunct (c))
+#define ISSPACE(c) (isascii (c) && isspace (c))
+#define ISUPPER(c) (isascii (c) && isupper (c))
+#define ISXDIGIT(c) (isascii (c) && isxdigit (c))
+
+#ifndef NULL
+#define NULL 0
+#endif
+
+/* We remove any previous definition of `SIGN_EXTEND_CHAR',
+ since ours (we hope) works properly with all combinations of
+ machines, compilers, `char' and `unsigned char' argument types.
+ (Per Bothner suggested the basic approach.) */
+#undef SIGN_EXTEND_CHAR
+#if __STDC__
+#define SIGN_EXTEND_CHAR(c) ((signed char) (c))
+#else /* not __STDC__ */
+/* As in Harbison and Steele. */
+#define SIGN_EXTEND_CHAR(c) ((((unsigned char) (c)) ^ 128) - 128)
+#endif
+
+/* Should we use malloc or alloca? If REGEX_MALLOC is not defined, we
+ use `alloca' instead of `malloc'. This is because using malloc in
+ re_search* or re_match* could cause memory leaks when C-g is used in
+ Emacs; also, malloc is slower and causes storage fragmentation. On
+ the other hand, malloc is more portable, and easier to debug.
+
+ Because we sometimes use alloca, some routines have to be macros,
+ not functions -- `alloca'-allocated space disappears at the end of the
+ function it is called in. */
+
+#ifdef REGEX_MALLOC
+
+#define REGEX_ALLOCATE malloc
+#define REGEX_REALLOCATE(source, osize, nsize) realloc (source, nsize)
+
+#else /* not REGEX_MALLOC */
+
+/* Emacs already defines alloca, sometimes. */
+#ifndef alloca
+
+/* Make alloca work the best possible way. */
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not __GNUC__ */
+#if HAVE_ALLOCA_H
+#include <alloca.h>
+#else /* not __GNUC__ or HAVE_ALLOCA_H */
+#ifndef _AIX /* Already did AIX, up at the top. */
+char *alloca ();
+#endif /* not _AIX */
+#endif /* not HAVE_ALLOCA_H */
+#endif /* not __GNUC__ */
+
+#endif /* not alloca */
+
+#define REGEX_ALLOCATE alloca
+
+/* Assumes a `char *destination' variable. */
+#define REGEX_REALLOCATE(source, osize, nsize) \
+ (destination = (char *) alloca (nsize), \
+ bcopy (source, destination, osize), \
+ destination)
+
+#endif /* not REGEX_MALLOC */
+
+
+/* True if `size1' is non-NULL and PTR is pointing anywhere inside
+ `string1' or just past its end. This works if PTR is NULL, which is
+ a good thing. */
+#define FIRST_STRING_P(ptr) \
+ (size1 && string1 <= (ptr) && (ptr) <= string1 + size1)
+
+/* (Re)Allocate N items of type T using malloc, or fail. */
+#define TALLOC(n, t) ((t *) malloc ((n) * sizeof (t)))
+#define RETALLOC(addr, n, t) ((addr) = (t *) realloc (addr, (n) * sizeof (t)))
+#define REGEX_TALLOC(n, t) ((t *) REGEX_ALLOCATE ((n) * sizeof (t)))
+
+#define BYTEWIDTH 8 /* In bits. */
+
+#define STREQ(s1, s2) ((strcmp (s1, s2) == 0))
+
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+
+typedef char boolean;
+#define false 0
+#define true 1
+
+/* These are the command codes that appear in compiled regular
+ expressions. Some opcodes are followed by argument bytes. A
+ command code can specify any interpretation whatsoever for its
+ arguments. Zero bytes may appear in the compiled regular expression.
+
+ The value of `exactn' is needed in search.c (search_buffer) in Emacs.
+ So regex.h defines a symbol `RE_EXACTN_VALUE' to be 1; the value of
+ `exactn' we use here must also be 1. */
+
+typedef enum
+{
+ no_op = 0,
+
+ /* Followed by one byte giving n, then by n literal bytes. */
+ exactn = 1,
+
+ /* Matches any (more or less) character. */
+ anychar,
+
+ /* Matches any one char belonging to specified set. First
+ following byte is number of bitmap bytes. Then come bytes
+ for a bitmap saying which chars are in. Bits in each byte
+ are ordered low-bit-first. A character is in the set if its
+ bit is 1. A character too large to have a bit in the map is
+ automatically not in the set. */
+ charset,
+
+ /* Same parameters as charset, but match any character that is
+ not one of those specified. */
+ charset_not,
+
+ /* Start remembering the text that is matched, for storing in a
+ register. Followed by one byte with the register number, in
+ the range 0 to one less than the pattern buffer's re_nsub
+ field. Then followed by one byte with the number of groups
+ inner to this one. (This last has to be part of the
+ start_memory only because we need it in the on_failure_jump
+ of re_match_2.) */
+ start_memory,
+
+ /* Stop remembering the text that is matched and store it in a
+ memory register. Followed by one byte with the register
+ number, in the range 0 to one less than `re_nsub' in the
+ pattern buffer, and one byte with the number of inner groups,
+ just like `start_memory'. (We need the number of inner
+ groups here because we don't have any easy way of finding the
+ corresponding start_memory when we're at a stop_memory.) */
+ stop_memory,
+
+ /* Match a duplicate of something remembered. Followed by one
+ byte containing the register number. */
+ duplicate,
+
+ /* Fail unless at beginning of line. */
+ begline,
+
+ /* Fail unless at end of line. */
+ endline,
+
+ /* Succeeds if at beginning of buffer (if emacs) or at beginning
+ of string to be matched (if not). */
+ begbuf,
+
+ /* Analogously, for end of buffer/string. */
+ endbuf,
+
+ /* Followed by two byte relative address to which to jump. */
+ jump,
+
+ /* Same as jump, but marks the end of an alternative. */
+ jump_past_alt,
+
+ /* Followed by two-byte relative address of place to resume at
+ in case of failure. */
+ on_failure_jump,
+
+ /* Like on_failure_jump, but pushes a placeholder instead of the
+ current string position when executed. */
+ on_failure_keep_string_jump,
+
+ /* Throw away latest failure point and then jump to following
+ two-byte relative address. */
+ pop_failure_jump,
+
+ /* Change to pop_failure_jump if know won't have to backtrack to
+ match; otherwise change to jump. This is used to jump
+ back to the beginning of a repeat. If what follows this jump
+ clearly won't match what the repeat does, such that we can be
+ sure that there is no use backtracking out of repetitions
+ already matched, then we change it to a pop_failure_jump.
+ Followed by two-byte address. */
+ maybe_pop_jump,
+
+ /* Jump to following two-byte address, and push a dummy failure
+ point. This failure point will be thrown away if an attempt
+ is made to use it for a failure. A `+' construct makes this
+ before the first repeat. Also used as an intermediary kind
+ of jump when compiling an alternative. */
+ dummy_failure_jump,
+
+ /* Push a dummy failure point and continue. Used at the end of
+ alternatives. */
+ push_dummy_failure,
+
+ /* Followed by two-byte relative address and two-byte number n.
+ After matching N times, jump to the address upon failure. */
+ succeed_n,
+
+ /* Followed by two-byte relative address, and two-byte number n.
+ Jump to the address N times, then fail. */
+ jump_n,
+
+ /* Set the following two-byte relative address to the
+ subsequent two-byte number. The address *includes* the two
+ bytes of number. */
+ set_number_at,
+
+ wordchar, /* Matches any word-constituent character. */
+ notwordchar, /* Matches any char that is not a word-constituent. */
+
+ wordbeg, /* Succeeds if at word beginning. */
+ wordend, /* Succeeds if at word end. */
+
+ wordbound, /* Succeeds if at a word boundary. */
+ notwordbound /* Succeeds if not at a word boundary. */
+
+#ifdef emacs
+ ,before_dot, /* Succeeds if before point. */
+ at_dot, /* Succeeds if at point. */
+ after_dot, /* Succeeds if after point. */
+
+ /* Matches any character whose syntax is specified. Followed by
+ a byte which contains a syntax code, e.g., Sword. */
+ syntaxspec,
+
+ /* Matches any character whose syntax is not that specified. */
+ notsyntaxspec
+#endif /* emacs */
+} re_opcode_t;
+
+/* Common operations on the compiled pattern. */
+
+/* Store NUMBER in two contiguous bytes starting at DESTINATION. */
+
+#define STORE_NUMBER(destination, number) \
+ do { \
+ (destination)[0] = (number) & 0377; \
+ (destination)[1] = (number) >> 8; \
+ } while (0)
+
+/* Same as STORE_NUMBER, except increment DESTINATION to
+ the byte after where the number is stored. Therefore, DESTINATION
+ must be an lvalue. */
+
+#define STORE_NUMBER_AND_INCR(destination, number) \
+ do { \
+ STORE_NUMBER (destination, number); \
+ (destination) += 2; \
+ } while (0)
+
+/* Put into DESTINATION a number stored in two contiguous bytes starting
+ at SOURCE. */
+
+#define EXTRACT_NUMBER(destination, source) \
+ do { \
+ (destination) = *(source) & 0377; \
+ (destination) += SIGN_EXTEND_CHAR (*((source) + 1)) << 8; \
+ } while (0)
+
+#ifdef DEBUG
+static void
+extract_number (dest, source)
+ int *dest;
+ unsigned char *source;
+{
+ int temp = SIGN_EXTEND_CHAR (*(source + 1));
+ *dest = *source & 0377;
+ *dest += temp << 8;
+}
+
+#ifndef EXTRACT_MACROS /* To debug the macros. */
+#undef EXTRACT_NUMBER
+#define EXTRACT_NUMBER(dest, src) extract_number (&dest, src)
+#endif /* not EXTRACT_MACROS */
+
+#endif /* DEBUG */
+
+/* Same as EXTRACT_NUMBER, except increment SOURCE to after the number.
+ SOURCE must be an lvalue. */
+
+#define EXTRACT_NUMBER_AND_INCR(destination, source) \
+ do { \
+ EXTRACT_NUMBER (destination, source); \
+ (source) += 2; \
+ } while (0)
+
+#ifdef DEBUG
+static void
+extract_number_and_incr (destination, source)
+ int *destination;
+ unsigned char **source;
+{
+ extract_number (destination, *source);
+ *source += 2;
+}
+
+#ifndef EXTRACT_MACROS
+#undef EXTRACT_NUMBER_AND_INCR
+#define EXTRACT_NUMBER_AND_INCR(dest, src) \
+ extract_number_and_incr (&dest, &src)
+#endif /* not EXTRACT_MACROS */
+
+#endif /* DEBUG */
+
+/* If DEBUG is defined, Regex prints many voluminous messages about what
+ it is doing (if the variable `debug' is nonzero). If linked with the
+ main program in `iregex.c', you can enter patterns and strings
+ interactively. And if linked with the main program in `main.c' and
+ the other test files, you can run the already-written tests. */
+
+#ifdef DEBUG
+
+/* We use standard I/O for debugging. */
+#include <stdio.h>
+
+/* It is useful to test things that ``must'' be true when debugging. */
+#include <assert.h>
+
+static int debug = 0;
+
+#define DEBUG_STATEMENT(e) e
+#define DEBUG_PRINT1(x) if (debug) printf (x)
+#define DEBUG_PRINT2(x1, x2) if (debug) printf (x1, x2)
+#define DEBUG_PRINT3(x1, x2, x3) if (debug) printf (x1, x2, x3)
+#define DEBUG_PRINT4(x1, x2, x3, x4) if (debug) printf (x1, x2, x3, x4)
+#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e) \
+ if (debug) print_partial_compiled_pattern (s, e)
+#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2) \
+ if (debug) print_double_string (w, s1, sz1, s2, sz2)
+
+
+extern void printchar ();
+
+/* Print the fastmap in human-readable form. */
+
+void
+print_fastmap (fastmap)
+ char *fastmap;
+{
+ unsigned was_a_range = 0;
+ unsigned i = 0;
+
+ while (i < (1 << BYTEWIDTH))
+ {
+ if (fastmap[i++])
+ {
+ was_a_range = 0;
+ printchar (i - 1);
+ while (i < (1 << BYTEWIDTH) && fastmap[i])
+ {
+ was_a_range = 1;
+ i++;
+ }
+ if (was_a_range)
+ {
+ printf ("-");
+ printchar (i - 1);
+ }
+ }
+ }
+ putchar ('\n');
+}
+
+
+/* Print a compiled pattern string in human-readable form, starting at
+ the START pointer into it and ending just before the pointer END. */
+
+void
+print_partial_compiled_pattern (start, end)
+ unsigned char *start;
+ unsigned char *end;
+{
+ int mcnt, mcnt2;
+ unsigned char *p = start;
+ unsigned char *pend = end;
+
+ if (start == NULL)
+ {
+ printf ("(null)\n");
+ return;
+ }
+
+ /* Loop over pattern commands. */
+ while (p < pend)
+ {
+ switch ((re_opcode_t) *p++)
+ {
+ case no_op:
+ printf ("/no_op");
+ break;
+
+ case exactn:
+ mcnt = *p++;
+ printf ("/exactn/%d", mcnt);
+ do
+ {
+ putchar ('/');
+ printchar (*p++);
+ }
+ while (--mcnt);
+ break;
+
+ case start_memory:
+ mcnt = *p++;
+ printf ("/start_memory/%d/%d", mcnt, *p++);
+ break;
+
+ case stop_memory:
+ mcnt = *p++;
+ printf ("/stop_memory/%d/%d", mcnt, *p++);
+ break;
+
+ case duplicate:
+ printf ("/duplicate/%d", *p++);
+ break;
+
+ case anychar:
+ printf ("/anychar");
+ break;
+
+ case charset:
+ case charset_not:
+ {
+ register int c;
+
+ printf ("/charset%s",
+ (re_opcode_t) *(p - 1) == charset_not ? "_not" : "");
+
+ assert (p + *p < pend);
+
+ for (c = 0; c < *p; c++)
+ {
+ unsigned bit;
+ unsigned char map_byte = p[1 + c];
+
+ putchar ('/');
+
+ for (bit = 0; bit < BYTEWIDTH; bit++)
+ if (map_byte & (1 << bit))
+ printchar (c * BYTEWIDTH + bit);
+ }
+ p += 1 + *p;
+ break;
+ }
+
+ case begline:
+ printf ("/begline");
+ break;
+
+ case endline:
+ printf ("/endline");
+ break;
+
+ case on_failure_jump:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/on_failure_jump/0/%d", mcnt);
+ break;
+
+ case on_failure_keep_string_jump:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/on_failure_keep_string_jump/0/%d", mcnt);
+ break;
+
+ case dummy_failure_jump:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/dummy_failure_jump/0/%d", mcnt);
+ break;
+
+ case push_dummy_failure:
+ printf ("/push_dummy_failure");
+ break;
+
+ case maybe_pop_jump:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/maybe_pop_jump/0/%d", mcnt);
+ break;
+
+ case pop_failure_jump:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/pop_failure_jump/0/%d", mcnt);
+ break;
+
+ case jump_past_alt:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/jump_past_alt/0/%d", mcnt);
+ break;
+
+ case jump:
+ extract_number_and_incr (&mcnt, &p);
+ printf ("/jump/0/%d", mcnt);
+ break;
+
+ case succeed_n:
+ extract_number_and_incr (&mcnt, &p);
+ extract_number_and_incr (&mcnt2, &p);
+ printf ("/succeed_n/0/%d/0/%d", mcnt, mcnt2);
+ break;
+
+ case jump_n:
+ extract_number_and_incr (&mcnt, &p);
+ extract_number_and_incr (&mcnt2, &p);
+ printf ("/jump_n/0/%d/0/%d", mcnt, mcnt2);
+ break;
+
+ case set_number_at:
+ extract_number_and_incr (&mcnt, &p);
+ extract_number_and_incr (&mcnt2, &p);
+ printf ("/set_number_at/0/%d/0/%d", mcnt, mcnt2);
+ break;
+
+ case wordbound:
+ printf ("/wordbound");
+ break;
+
+ case notwordbound:
+ printf ("/notwordbound");
+ break;
+
+ case wordbeg:
+ printf ("/wordbeg");
+ break;
+
+ case wordend:
+ printf ("/wordend");
+
+#ifdef emacs
+ case before_dot:
+ printf ("/before_dot");
+ break;
+
+ case at_dot:
+ printf ("/at_dot");
+ break;
+
+ case after_dot:
+ printf ("/after_dot");
+ break;
+
+ case syntaxspec:
+ printf ("/syntaxspec");
+ mcnt = *p++;
+ printf ("/%d", mcnt);
+ break;
+
+ case notsyntaxspec:
+ printf ("/notsyntaxspec");
+ mcnt = *p++;
+ printf ("/%d", mcnt);
+ break;
+#endif /* emacs */
+
+ case wordchar:
+ printf ("/wordchar");
+ break;
+
+ case notwordchar:
+ printf ("/notwordchar");
+ break;
+
+ case begbuf:
+ printf ("/begbuf");
+ break;
+
+ case endbuf:
+ printf ("/endbuf");
+ break;
+
+ default:
+ printf ("?%d", *(p-1));
+ }
+ }
+ printf ("/\n");
+}
+
+
+void
+print_compiled_pattern (bufp)
+ struct re_pattern_buffer *bufp;
+{
+ unsigned char *buffer = bufp->buffer;
+
+ print_partial_compiled_pattern (buffer, buffer + bufp->used);
+ printf ("%d bytes used/%d bytes allocated.\n", bufp->used, bufp->allocated);
+
+ if (bufp->fastmap_accurate && bufp->fastmap)
+ {
+ printf ("fastmap: ");
+ print_fastmap (bufp->fastmap);
+ }
+
+ printf ("re_nsub: %d\t", bufp->re_nsub);
+ printf ("regs_alloc: %d\t", bufp->regs_allocated);
+ printf ("can_be_null: %d\t", bufp->can_be_null);
+ printf ("newline_anchor: %d\n", bufp->newline_anchor);
+ printf ("no_sub: %d\t", bufp->no_sub);
+ printf ("not_bol: %d\t", bufp->not_bol);
+ printf ("not_eol: %d\t", bufp->not_eol);
+ printf ("syntax: %d\n", bufp->syntax);
+ /* Perhaps we should print the translate table? */
+}
+
+
+void
+print_double_string (where, string1, size1, string2, size2)
+ const char *where;
+ const char *string1;
+ const char *string2;
+ int size1;
+ int size2;
+{
+ unsigned this_char;
+
+ if (where == NULL)
+ printf ("(null)");
+ else
+ {
+ if (FIRST_STRING_P (where))
+ {
+ for (this_char = where - string1; this_char < size1; this_char++)
+ printchar (string1[this_char]);
+
+ where = string2;
+ }
+
+ for (this_char = where - string2; this_char < size2; this_char++)
+ printchar (string2[this_char]);
+ }
+}
+
+#else /* not DEBUG */
+
+#undef assert
+#define assert(e)
+
+#define DEBUG_STATEMENT(e)
+#define DEBUG_PRINT1(x)
+#define DEBUG_PRINT2(x1, x2)
+#define DEBUG_PRINT3(x1, x2, x3)
+#define DEBUG_PRINT4(x1, x2, x3, x4)
+#define DEBUG_PRINT_COMPILED_PATTERN(p, s, e)
+#define DEBUG_PRINT_DOUBLE_STRING(w, s1, sz1, s2, sz2)
+
+#endif /* not DEBUG */
+
+/* Set by `re_set_syntax' to the current regexp syntax to recognize. Can
+ also be assigned to arbitrarily: each pattern buffer stores its own
+ syntax, so it can be changed between regex compilations. */
+reg_syntax_t re_syntax_options = RE_SYNTAX_EMACS;
+
+
+/* Specify the precise syntax of regexps for compilation. This provides
+ for compatibility for various utilities which historically have
+ different, incompatible syntaxes.
+
+ The argument SYNTAX is a bit mask comprised of the various bits
+ defined in regex.h. We return the old syntax. */
+
+reg_syntax_t
+re_set_syntax (syntax)
+ reg_syntax_t syntax;
+{
+ reg_syntax_t ret = re_syntax_options;
+
+ re_syntax_options = syntax;
+ return ret;
+}
+
+/* This table gives an error message for each of the error codes listed
+ in regex.h. Obviously the order here has to be same as there. */
+
+static const char *re_error_msg[] =
+ { NULL, /* REG_NOERROR */
+ "No match", /* REG_NOMATCH */
+ "Invalid regular expression", /* REG_BADPAT */
+ "Invalid collation character", /* REG_ECOLLATE */
+ "Invalid character class name", /* REG_ECTYPE */
+ "Trailing backslash", /* REG_EESCAPE */
+ "Invalid back reference", /* REG_ESUBREG */
+ "Unmatched [ or [^", /* REG_EBRACK */
+ "Unmatched ( or \\(", /* REG_EPAREN */
+ "Unmatched \\{", /* REG_EBRACE */
+ "Invalid content of \\{\\}", /* REG_BADBR */
+ "Invalid range end", /* REG_ERANGE */
+ "Memory exhausted", /* REG_ESPACE */
+ "Invalid preceding regular expression", /* REG_BADRPT */
+ "Premature end of regular expression", /* REG_EEND */
+ "Regular expression too big", /* REG_ESIZE */
+ "Unmatched ) or \\)", /* REG_ERPAREN */
+ };
+
+/* Subroutine declarations and macros for regex_compile. */
+
+static void store_op1 (), store_op2 ();
+static void insert_op1 (), insert_op2 ();
+static boolean at_begline_loc_p (), at_endline_loc_p ();
+static boolean group_in_compile_stack ();
+static reg_errcode_t compile_range ();
+
+/* Fetch the next character in the uncompiled pattern---translating it
+ if necessary. Also cast from a signed character in the constant
+ string passed to us by the user to an unsigned char that we can use
+ as an array index (in, e.g., `translate'). */
+#define PATFETCH(c) \
+ do {if (p == pend) return REG_EEND; \
+ c = (unsigned char) *p++; \
+ if (translate) c = translate[c]; \
+ } while (0)
+
+/* Fetch the next character in the uncompiled pattern, with no
+ translation. */
+#define PATFETCH_RAW(c) \
+ do {if (p == pend) return REG_EEND; \
+ c = (unsigned char) *p++; \
+ } while (0)
+
+/* Go backwards one character in the pattern. */
+#define PATUNFETCH p--
+
+
+/* If `translate' is non-null, return translate[D], else just D. We
+ cast the subscript to translate because some data is declared as
+ `char *', to avoid warnings when a string constant is passed. But
+ when we use a character as a subscript we must make it unsigned. */
+#define TRANSLATE(d) (translate ? translate[(unsigned char) (d)] : (d))
+
+
+/* Macros for outputting the compiled pattern into `buffer'. */
+
+/* If the buffer isn't allocated when it comes in, use this. */
+#define INIT_BUF_SIZE 32
+
+/* Make sure we have at least N more bytes of space in buffer. */
+#define GET_BUFFER_SPACE(n) \
+ while (b - bufp->buffer + (n) > bufp->allocated) \
+ EXTEND_BUFFER ()
+
+/* Make sure we have one more byte of buffer space and then add C to it. */
+#define BUF_PUSH(c) \
+ do { \
+ GET_BUFFER_SPACE (1); \
+ *b++ = (unsigned char) (c); \
+ } while (0)
+
+
+/* Ensure we have two more bytes of buffer space and then append C1 and C2. */
+#define BUF_PUSH_2(c1, c2) \
+ do { \
+ GET_BUFFER_SPACE (2); \
+ *b++ = (unsigned char) (c1); \
+ *b++ = (unsigned char) (c2); \
+ } while (0)
+
+
+/* As with BUF_PUSH_2, except for three bytes. */
+#define BUF_PUSH_3(c1, c2, c3) \
+ do { \
+ GET_BUFFER_SPACE (3); \
+ *b++ = (unsigned char) (c1); \
+ *b++ = (unsigned char) (c2); \
+ *b++ = (unsigned char) (c3); \
+ } while (0)
+
+
+/* Store a jump with opcode OP at LOC to location TO. We store a
+ relative address offset by the three bytes the jump itself occupies. */
+#define STORE_JUMP(op, loc, to) \
+ store_op1 (op, loc, (to) - (loc) - 3)
+
+/* Likewise, for a two-argument jump. */
+#define STORE_JUMP2(op, loc, to, arg) \
+ store_op2 (op, loc, (to) - (loc) - 3, arg)
+
+/* Like `STORE_JUMP', but for inserting. Assume `b' is the buffer end. */
+#define INSERT_JUMP(op, loc, to) \
+ insert_op1 (op, loc, (to) - (loc) - 3, b)
+
+/* Like `STORE_JUMP2', but for inserting. Assume `b' is the buffer end. */
+#define INSERT_JUMP2(op, loc, to, arg) \
+ insert_op2 (op, loc, (to) - (loc) - 3, arg, b)
+
+
+/* This is not an arbitrary limit: the arguments which represent offsets
+ into the pattern are two bytes long. So if 2^16 bytes turns out to
+ be too small, many things would have to change. */
+#define MAX_BUF_SIZE (1L << 16)
+
+
+/* Extend the buffer by twice its current size via realloc and
+ reset the pointers that pointed into the old block to point to the
+ correct places in the new one. If extending the buffer results in it
+ being larger than MAX_BUF_SIZE, then flag memory exhausted. */
+#define EXTEND_BUFFER() \
+ do { \
+ unsigned char *old_buffer = bufp->buffer; \
+ if (bufp->allocated == MAX_BUF_SIZE) \
+ return REG_ESIZE; \
+ bufp->allocated <<= 1; \
+ if (bufp->allocated > MAX_BUF_SIZE) \
+ bufp->allocated = MAX_BUF_SIZE; \
+ bufp->buffer = (unsigned char *) realloc (bufp->buffer, bufp->allocated);\
+ if (bufp->buffer == NULL) \
+ return REG_ESPACE; \
+ /* If the buffer moved, move all the pointers into it. */ \
+ if (old_buffer != bufp->buffer) \
+ { \
+ b = (b - old_buffer) + bufp->buffer; \
+ begalt = (begalt - old_buffer) + bufp->buffer; \
+ if (fixup_alt_jump) \
+ fixup_alt_jump = (fixup_alt_jump - old_buffer) + bufp->buffer;\
+ if (laststart) \
+ laststart = (laststart - old_buffer) + bufp->buffer; \
+ if (pending_exact) \
+ pending_exact = (pending_exact - old_buffer) + bufp->buffer; \
+ } \
+ } while (0)
+
+
+/* Since we have one byte reserved for the register number argument to
+ {start,stop}_memory, the maximum number of groups we can report
+ things about is what fits in that byte. */
+#define MAX_REGNUM 255
+
+/* But patterns can have more than `MAX_REGNUM' registers. We just
+ ignore the excess. */
+typedef unsigned regnum_t;
+
+
+/* Macros for the compile stack. */
+
+/* Since offsets can go either forwards or backwards, this type needs to
+ be able to hold values from -(MAX_BUF_SIZE - 1) to MAX_BUF_SIZE - 1. */
+typedef int pattern_offset_t;
+
+typedef struct
+{
+ pattern_offset_t begalt_offset;
+ pattern_offset_t fixup_alt_jump;
+ pattern_offset_t inner_group_offset;
+ pattern_offset_t laststart_offset;
+ regnum_t regnum;
+} compile_stack_elt_t;
+
+
+typedef struct
+{
+ compile_stack_elt_t *stack;
+ unsigned size;
+ unsigned avail; /* Offset of next open position. */
+} compile_stack_type;
+
+
+#define INIT_COMPILE_STACK_SIZE 32
+
+#define COMPILE_STACK_EMPTY (compile_stack.avail == 0)
+#define COMPILE_STACK_FULL (compile_stack.avail == compile_stack.size)
+
+/* The next available element. */
+#define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail])
+
+
+/* Set the bit for character C in a list. */
+#define SET_LIST_BIT(c) \
+ (b[((unsigned char) (c)) / BYTEWIDTH] \
+ |= 1 << (((unsigned char) c) % BYTEWIDTH))
+
+
+/* Get the next unsigned number in the uncompiled pattern. */
+#define GET_UNSIGNED_NUMBER(num) \
+ { if (p != pend) \
+ { \
+ PATFETCH (c); \
+ while (ISDIGIT (c)) \
+ { \
+ if (num < 0) \
+ num = 0; \
+ num = num * 10 + c - '0'; \
+ if (p == pend) \
+ break; \
+ PATFETCH (c); \
+ } \
+ } \
+ }
+
+#define CHAR_CLASS_MAX_LENGTH 6 /* Namely, `xdigit'. */
+
+#define IS_CHAR_CLASS(string) \
+ (STREQ (string, "alpha") || STREQ (string, "upper") \
+ || STREQ (string, "lower") || STREQ (string, "digit") \
+ || STREQ (string, "alnum") || STREQ (string, "xdigit") \
+ || STREQ (string, "space") || STREQ (string, "print") \
+ || STREQ (string, "punct") || STREQ (string, "graph") \
+ || STREQ (string, "cntrl") || STREQ (string, "blank"))
+
+/* `regex_compile' compiles PATTERN (of length SIZE) according to SYNTAX.
+ Returns one of error codes defined in `regex.h', or zero for success.
+
+ Assumes the `allocated' (and perhaps `buffer') and `translate'
+ fields are set in BUFP on entry.
+
+ If it succeeds, results are put in BUFP (if it returns an error, the
+ contents of BUFP are undefined):
+ `buffer' is the compiled pattern;
+ `syntax' is set to SYNTAX;
+ `used' is set to the length of the compiled pattern;
+ `fastmap_accurate' is zero;
+ `re_nsub' is the number of subexpressions in PATTERN;
+ `not_bol' and `not_eol' are zero;
+
+ The `fastmap' and `newline_anchor' fields are neither
+ examined nor set. */
+
+static reg_errcode_t
+regex_compile (pattern, size, syntax, bufp)
+ const char *pattern;
+ int size;
+ reg_syntax_t syntax;
+ struct re_pattern_buffer *bufp;
+{
+ /* We fetch characters from PATTERN here. Even though PATTERN is
+ `char *' (i.e., signed), we declare these variables as unsigned, so
+ they can be reliably used as array indices. */
+ register unsigned char c, c1;
+
+ /* A random tempory spot in PATTERN. */
+ const char *p1;
+
+ /* Points to the end of the buffer, where we should append. */
+ register unsigned char *b;
+
+ /* Keeps track of unclosed groups. */
+ compile_stack_type compile_stack;
+
+ /* Points to the current (ending) position in the pattern. */
+ const char *p = pattern;
+ const char *pend = pattern + size;
+
+ /* How to translate the characters in the pattern. */
+ char *translate = bufp->translate;
+
+ /* Address of the count-byte of the most recently inserted `exactn'
+ command. This makes it possible to tell if a new exact-match
+ character can be added to that command or if the character requires
+ a new `exactn' command. */
+ unsigned char *pending_exact = 0;
+
+ /* Address of start of the most recently finished expression.
+ This tells, e.g., postfix * where to find the start of its
+ operand. Reset at the beginning of groups and alternatives. */
+ unsigned char *laststart = 0;
+
+ /* Address of beginning of regexp, or inside of last group. */
+ unsigned char *begalt;
+
+ /* Place in the uncompiled pattern (i.e., the {) to
+ which to go back if the interval is invalid. */
+ const char *beg_interval;
+
+ /* Address of the place where a forward jump should go to the end of
+ the containing expression. Each alternative of an `or' -- except the
+ last -- ends with a forward jump of this sort. */
+ unsigned char *fixup_alt_jump = 0;
+
+ /* Counts open-groups as they are encountered. Remembered for the
+ matching close-group on the compile stack, so the same register
+ number is put in the stop_memory as the start_memory. */
+ regnum_t regnum = 0;
+
+#ifdef DEBUG
+ DEBUG_PRINT1 ("\nCompiling pattern: ");
+ if (debug)
+ {
+ unsigned debug_count;
+
+ for (debug_count = 0; debug_count < size; debug_count++)
+ printchar (pattern[debug_count]);
+ putchar ('\n');
+ }
+#endif /* DEBUG */
+
+ /* Initialize the compile stack. */
+ compile_stack.stack = TALLOC (INIT_COMPILE_STACK_SIZE, compile_stack_elt_t);
+ if (compile_stack.stack == NULL)
+ return REG_ESPACE;
+
+ compile_stack.size = INIT_COMPILE_STACK_SIZE;
+ compile_stack.avail = 0;
+
+ /* Initialize the pattern buffer. */
+ bufp->syntax = syntax;
+ bufp->fastmap_accurate = 0;
+ bufp->not_bol = bufp->not_eol = 0;
+
+ /* Set `used' to zero, so that if we return an error, the pattern
+ printer (for debugging) will think there's no pattern. We reset it
+ at the end. */
+ bufp->used = 0;
+
+ /* Always count groups, whether or not bufp->no_sub is set. */
+ bufp->re_nsub = 0;
+
+#if !defined (emacs) && !defined (SYNTAX_TABLE)
+ /* Initialize the syntax table. */
+ init_syntax_once ();
+#endif
+
+ if (bufp->allocated == 0)
+ {
+ if (bufp->buffer)
+ { /* If zero allocated, but buffer is non-null, try to realloc
+ enough space. This loses if buffer's address is bogus, but
+ that is the user's responsibility. */
+ RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char);
+ }
+ else
+ { /* Caller did not allocate a buffer. Do it for them. */
+ bufp->buffer = TALLOC (INIT_BUF_SIZE, unsigned char);
+ }
+ if (!bufp->buffer) return REG_ESPACE;
+
+ bufp->allocated = INIT_BUF_SIZE;
+ }
+
+ begalt = b = bufp->buffer;
+
+ /* Loop through the uncompiled pattern until we're at the end. */
+ while (p != pend)
+ {
+ PATFETCH (c);
+
+ switch (c)
+ {
+ case '^':
+ {
+ if ( /* If at start of pattern, it's an operator. */
+ p == pattern + 1
+ /* If context independent, it's an operator. */
+ || syntax & RE_CONTEXT_INDEP_ANCHORS
+ /* Otherwise, depends on what's come before. */
+ || at_begline_loc_p (pattern, p, syntax))
+ BUF_PUSH (begline);
+ else
+ goto normal_char;
+ }
+ break;
+
+
+ case '$':
+ {
+ if ( /* If at end of pattern, it's an operator. */
+ p == pend
+ /* If context independent, it's an operator. */
+ || syntax & RE_CONTEXT_INDEP_ANCHORS
+ /* Otherwise, depends on what's next. */
+ || at_endline_loc_p (p, pend, syntax))
+ BUF_PUSH (endline);
+ else
+ goto normal_char;
+ }
+ break;
+
+
+ case '+':
+ case '?':
+ if ((syntax & RE_BK_PLUS_QM)
+ || (syntax & RE_LIMITED_OPS))
+ goto normal_char;
+ handle_plus:
+ case '*':
+ /* If there is no previous pattern... */
+ if (!laststart)
+ {
+ if (syntax & RE_CONTEXT_INVALID_OPS)
+ return REG_BADRPT;
+ else if (!(syntax & RE_CONTEXT_INDEP_OPS))
+ goto normal_char;
+ }
+
+ {
+ /* Are we optimizing this jump? */
+ boolean keep_string_p = false;
+
+ /* 1 means zero (many) matches is allowed. */
+ char zero_times_ok = 0, many_times_ok = 0;
+
+ /* If there is a sequence of repetition chars, collapse it
+ down to just one (the right one). We can't combine
+ interval operators with these because of, e.g., `a{2}*',
+ which should only match an even number of `a's. */
+
+ for (;;)
+ {
+ zero_times_ok |= c != '+';
+ many_times_ok |= c != '?';
+
+ if (p == pend)
+ break;
+
+ PATFETCH (c);
+
+ if (c == '*'
+ || (!(syntax & RE_BK_PLUS_QM) && (c == '+' || c == '?')))
+ ;
+
+ else if (syntax & RE_BK_PLUS_QM && c == '\\')
+ {
+ if (p == pend) return REG_EESCAPE;
+
+ PATFETCH (c1);
+ if (!(c1 == '+' || c1 == '?'))
+ {
+ PATUNFETCH;
+ PATUNFETCH;
+ break;
+ }
+
+ c = c1;
+ }
+ else
+ {
+ PATUNFETCH;
+ break;
+ }
+
+ /* If we get here, we found another repeat character. */
+ }
+
+ /* Star, etc. applied to an empty pattern is equivalent
+ to an empty pattern. */
+ if (!laststart)
+ break;
+
+ /* Now we know whether or not zero matches is allowed
+ and also whether or not two or more matches is allowed. */
+ if (many_times_ok)
+ { /* More than one repetition is allowed, so put in at the
+ end a backward relative jump from `b' to before the next
+ jump we're going to put in below (which jumps from
+ laststart to after this jump).
+
+ But if we are at the `*' in the exact sequence `.*\n',
+ insert an unconditional jump backwards to the .,
+ instead of the beginning of the loop. This way we only
+ push a failure point once, instead of every time
+ through the loop. */
+ assert (p - 1 > pattern);
+
+ /* Allocate the space for the jump. */
+ GET_BUFFER_SPACE (3);
+
+ /* We know we are not at the first character of the pattern,
+ because laststart was nonzero. And we've already
+ incremented `p', by the way, to be the character after
+ the `*'. Do we have to do something analogous here
+ for null bytes, because of RE_DOT_NOT_NULL? */
+ if (TRANSLATE (*(p - 2)) == TRANSLATE ('.')
+ && zero_times_ok
+ && p < pend && TRANSLATE (*p) == TRANSLATE ('\n')
+ && !(syntax & RE_DOT_NEWLINE))
+ { /* We have .*\n. */
+ STORE_JUMP (jump, b, laststart);
+ keep_string_p = true;
+ }
+ else
+ /* Anything else. */
+ STORE_JUMP (maybe_pop_jump, b, laststart - 3);
+
+ /* We've added more stuff to the buffer. */
+ b += 3;
+ }
+
+ /* On failure, jump from laststart to b + 3, which will be the
+ end of the buffer after this jump is inserted. */
+ GET_BUFFER_SPACE (3);
+ INSERT_JUMP (keep_string_p ? on_failure_keep_string_jump
+ : on_failure_jump,
+ laststart, b + 3);
+ pending_exact = 0;
+ b += 3;
+
+ if (!zero_times_ok)
+ {
+ /* At least one repetition is required, so insert a
+ `dummy_failure_jump' before the initial
+ `on_failure_jump' instruction of the loop. This
+ effects a skip over that instruction the first time
+ we hit that loop. */
+ GET_BUFFER_SPACE (3);
+ INSERT_JUMP (dummy_failure_jump, laststart, laststart + 6);
+ b += 3;
+ }
+ }
+ break;
+
+
+ case '.':
+ laststart = b;
+ BUF_PUSH (anychar);
+ break;
+
+
+ case '[':
+ {
+ boolean had_char_class = false;
+
+ if (p == pend) return REG_EBRACK;
+
+ /* Ensure that we have enough space to push a charset: the
+ opcode, the length count, and the bitset; 34 bytes in all. */
+ GET_BUFFER_SPACE (34);
+
+ laststart = b;
+
+ /* We test `*p == '^' twice, instead of using an if
+ statement, so we only need one BUF_PUSH. */
+ BUF_PUSH (*p == '^' ? charset_not : charset);
+ if (*p == '^')
+ p++;
+
+ /* Remember the first position in the bracket expression. */
+ p1 = p;
+
+ /* Push the number of bytes in the bitmap. */
+ BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH);
+
+ /* Clear the whole map. */
+ bzero (b, (1 << BYTEWIDTH) / BYTEWIDTH);
+
+ /* charset_not matches newline according to a syntax bit. */
+ if ((re_opcode_t) b[-2] == charset_not
+ && (syntax & RE_HAT_LISTS_NOT_NEWLINE))
+ SET_LIST_BIT ('\n');
+
+ /* Read in characters and ranges, setting map bits. */
+ for (;;)
+ {
+ if (p == pend) return REG_EBRACK;
+
+ PATFETCH (c);
+
+ /* \ might escape characters inside [...] and [^...]. */
+ if ((syntax & RE_BACKSLASH_ESCAPE_IN_LISTS) && c == '\\')
+ {
+ if (p == pend) return REG_EESCAPE;
+
+ PATFETCH (c1);
+ SET_LIST_BIT (c1);
+ continue;
+ }
+
+ /* Could be the end of the bracket expression. If it's
+ not (i.e., when the bracket expression is `[]' so
+ far), the ']' character bit gets set way below. */
+ if (c == ']' && p != p1 + 1)
+ break;
+
+ /* Look ahead to see if it's a range when the last thing
+ was a character class. */
+ if (had_char_class && c == '-' && *p != ']')
+ return REG_ERANGE;
+
+ /* Look ahead to see if it's a range when the last thing
+ was a character: if this is a hyphen not at the
+ beginning or the end of a list, then it's the range
+ operator. */
+ if (c == '-'
+ && !(p - 2 >= pattern && p[-2] == '[')
+ && !(p - 3 >= pattern && p[-3] == '[' && p[-2] == '^')
+ && *p != ']')
+ {
+ reg_errcode_t ret
+ = compile_range (&p, pend, translate, syntax, b);
+ if (ret != REG_NOERROR) return ret;
+ }
+
+ else if (p[0] == '-' && p[1] != ']')
+ { /* This handles ranges made up of characters only. */
+ reg_errcode_t ret;
+
+ /* Move past the `-'. */
+ PATFETCH (c1);
+
+ ret = compile_range (&p, pend, translate, syntax, b);
+ if (ret != REG_NOERROR) return ret;
+ }
+
+ /* See if we're at the beginning of a possible character
+ class. */
+
+ else if (syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
+ { /* Leave room for the null. */
+ char str[CHAR_CLASS_MAX_LENGTH + 1];
+
+ PATFETCH (c);
+ c1 = 0;
+
+ /* If pattern is `[[:'. */
+ if (p == pend) return REG_EBRACK;
+
+ for (;;)
+ {
+ PATFETCH (c);
+ if (c == ':' || c == ']' || p == pend
+ || c1 == CHAR_CLASS_MAX_LENGTH)
+ break;
+ str[c1++] = c;
+ }
+ str[c1] = '\0';
+
+ /* If isn't a word bracketed by `[:' and:`]':
+ undo the ending character, the letters, and leave
+ the leading `:' and `[' (but set bits for them). */
+ if (c == ':' && *p == ']')
+ {
+ int ch;
+ boolean is_alnum = STREQ (str, "alnum");
+ boolean is_alpha = STREQ (str, "alpha");
+ boolean is_blank = STREQ (str, "blank");
+ boolean is_cntrl = STREQ (str, "cntrl");
+ boolean is_digit = STREQ (str, "digit");
+ boolean is_graph = STREQ (str, "graph");
+ boolean is_lower = STREQ (str, "lower");
+ boolean is_print = STREQ (str, "print");
+ boolean is_punct = STREQ (str, "punct");
+ boolean is_space = STREQ (str, "space");
+ boolean is_upper = STREQ (str, "upper");
+ boolean is_xdigit = STREQ (str, "xdigit");
+
+ if (!IS_CHAR_CLASS (str)) return REG_ECTYPE;
+
+ /* Throw away the ] at the end of the character
+ class. */
+ PATFETCH (c);
+
+ if (p == pend) return REG_EBRACK;
+
+ for (ch = 0; ch < 1 << BYTEWIDTH; ch++)
+ {
+ if ( (is_alnum && ISALNUM (ch))
+ || (is_alpha && ISALPHA (ch))
+ || (is_blank && ISBLANK (ch))
+ || (is_cntrl && ISCNTRL (ch))
+ || (is_digit && ISDIGIT (ch))
+ || (is_graph && ISGRAPH (ch))
+ || (is_lower && ISLOWER (ch))
+ || (is_print && ISPRINT (ch))
+ || (is_punct && ISPUNCT (ch))
+ || (is_space && ISSPACE (ch))
+ || (is_upper && ISUPPER (ch))
+ || (is_xdigit && ISXDIGIT (ch)))
+ SET_LIST_BIT (ch);
+ }
+ had_char_class = true;
+ }
+ else
+ {
+ c1++;
+ while (c1--)
+ PATUNFETCH;
+ SET_LIST_BIT ('[');
+ SET_LIST_BIT (':');
+ had_char_class = false;
+ }
+ }
+ else
+ {
+ had_char_class = false;
+ SET_LIST_BIT (c);
+ }
+ }
+
+ /* Discard any (non)matching list bytes that are all 0 at the
+ end of the map. Decrease the map-length byte too. */
+ while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
+ b[-1]--;
+ b += b[-1];
+ }
+ break;
+
+
+ case '(':
+ if (syntax & RE_NO_BK_PARENS)
+ goto handle_open;
+ else
+ goto normal_char;
+
+
+ case ')':
+ if (syntax & RE_NO_BK_PARENS)
+ goto handle_close;
+ else
+ goto normal_char;
+
+
+ case '\n':
+ if (syntax & RE_NEWLINE_ALT)
+ goto handle_alt;
+ else
+ goto normal_char;
+
+
+ case '|':
+ if (syntax & RE_NO_BK_VBAR)
+ goto handle_alt;
+ else
+ goto normal_char;
+
+
+ case '{':
+ if (syntax & RE_INTERVALS && syntax & RE_NO_BK_BRACES)
+ goto handle_interval;
+ else
+ goto normal_char;
+
+
+ case '\\':
+ if (p == pend) return REG_EESCAPE;
+
+ /* Do not translate the character after the \, so that we can
+ distinguish, e.g., \B from \b, even if we normally would
+ translate, e.g., B to b. */
+ PATFETCH_RAW (c);
+
+ switch (c)
+ {
+ case '(':
+ if (syntax & RE_NO_BK_PARENS)
+ goto normal_backslash;
+
+ handle_open:
+ bufp->re_nsub++;
+ regnum++;
+
+ if (COMPILE_STACK_FULL)
+ {
+ RETALLOC (compile_stack.stack, compile_stack.size << 1,
+ compile_stack_elt_t);
+ if (compile_stack.stack == NULL) return REG_ESPACE;
+
+ compile_stack.size <<= 1;
+ }
+
+ /* These are the values to restore when we hit end of this
+ group. They are all relative offsets, so that if the
+ whole pattern moves because of realloc, they will still
+ be valid. */
+ COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer;
+ COMPILE_STACK_TOP.fixup_alt_jump
+ = fixup_alt_jump ? fixup_alt_jump - bufp->buffer + 1 : 0;
+ COMPILE_STACK_TOP.laststart_offset = b - bufp->buffer;
+ COMPILE_STACK_TOP.regnum = regnum;
+
+ /* We will eventually replace the 0 with the number of
+ groups inner to this one. But do not push a
+ start_memory for groups beyond the last one we can
+ represent in the compiled pattern. */
+ if (regnum <= MAX_REGNUM)
+ {
+ COMPILE_STACK_TOP.inner_group_offset = b - bufp->buffer + 2;
+ BUF_PUSH_3 (start_memory, regnum, 0);
+ }
+
+ compile_stack.avail++;
+
+ fixup_alt_jump = 0;
+ laststart = 0;
+ begalt = b;
+ /* If we've reached MAX_REGNUM groups, then this open
+ won't actually generate any code, so we'll have to
+ clear pending_exact explicitly. */
+ pending_exact = 0;
+ break;
+
+
+ case ')':
+ if (syntax & RE_NO_BK_PARENS) goto normal_backslash;
+
+ if (COMPILE_STACK_EMPTY)
+ if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
+ goto normal_backslash;
+ else
+ return REG_ERPAREN;
+
+ handle_close:
+ if (fixup_alt_jump)
+ { /* Push a dummy failure point at the end of the
+ alternative for a possible future
+ `pop_failure_jump' to pop. See comments at
+ `push_dummy_failure' in `re_match_2'. */
+ BUF_PUSH (push_dummy_failure);
+
+ /* We allocated space for this jump when we assigned
+ to `fixup_alt_jump', in the `handle_alt' case below. */
+ STORE_JUMP (jump_past_alt, fixup_alt_jump, b - 1);
+ }
+
+ /* See similar code for backslashed left paren above. */
+ if (COMPILE_STACK_EMPTY)
+ if (syntax & RE_UNMATCHED_RIGHT_PAREN_ORD)
+ goto normal_char;
+ else
+ return REG_ERPAREN;
+
+ /* Since we just checked for an empty stack above, this
+ ``can't happen''. */
+ assert (compile_stack.avail != 0);
+ {
+ /* We don't just want to restore into `regnum', because
+ later groups should continue to be numbered higher,
+ as in `(ab)c(de)' -- the second group is #2. */
+ regnum_t this_group_regnum;
+
+ compile_stack.avail--;
+ begalt = bufp->buffer + COMPILE_STACK_TOP.begalt_offset;
+ fixup_alt_jump
+ = COMPILE_STACK_TOP.fixup_alt_jump
+ ? bufp->buffer + COMPILE_STACK_TOP.fixup_alt_jump - 1
+ : 0;
+ laststart = bufp->buffer + COMPILE_STACK_TOP.laststart_offset;
+ this_group_regnum = COMPILE_STACK_TOP.regnum;
+ /* If we've reached MAX_REGNUM groups, then this open
+ won't actually generate any code, so we'll have to
+ clear pending_exact explicitly. */
+ pending_exact = 0;
+
+ /* We're at the end of the group, so now we know how many
+ groups were inside this one. */
+ if (this_group_regnum <= MAX_REGNUM)
+ {
+ unsigned char *inner_group_loc
+ = bufp->buffer + COMPILE_STACK_TOP.inner_group_offset;
+
+ *inner_group_loc = regnum - this_group_regnum;
+ BUF_PUSH_3 (stop_memory, this_group_regnum,
+ regnum - this_group_regnum);
+ }
+ }
+ break;
+
+
+ case '|': /* `\|'. */
+ if (syntax & RE_LIMITED_OPS || syntax & RE_NO_BK_VBAR)
+ goto normal_backslash;
+ handle_alt:
+ if (syntax & RE_LIMITED_OPS)
+ goto normal_char;
+
+ /* Insert before the previous alternative a jump which
+ jumps to this alternative if the former fails. */
+ GET_BUFFER_SPACE (3);
+ INSERT_JUMP (on_failure_jump, begalt, b + 6);
+ pending_exact = 0;
+ b += 3;
+
+ /* The alternative before this one has a jump after it
+ which gets executed if it gets matched. Adjust that
+ jump so it will jump to this alternative's analogous
+ jump (put in below, which in turn will jump to the next
+ (if any) alternative's such jump, etc.). The last such
+ jump jumps to the correct final destination. A picture:
+ _____ _____
+ | | | |
+ | v | v
+ a | b | c
+
+ If we are at `b', then fixup_alt_jump right now points to a
+ three-byte space after `a'. We'll put in the jump, set
+ fixup_alt_jump to right after `b', and leave behind three
+ bytes which we'll fill in when we get to after `c'. */
+
+ if (fixup_alt_jump)
+ STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
+
+ /* Mark and leave space for a jump after this alternative,
+ to be filled in later either by next alternative or
+ when know we're at the end of a series of alternatives. */
+ fixup_alt_jump = b;
+ GET_BUFFER_SPACE (3);
+ b += 3;
+
+ laststart = 0;
+ begalt = b;
+ break;
+
+
+ case '{':
+ /* If \{ is a literal. */
+ if (!(syntax & RE_INTERVALS)
+ /* If we're at `\{' and it's not the open-interval
+ operator. */
+ || ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+ || (p - 2 == pattern && p == pend))
+ goto normal_backslash;
+
+ handle_interval:
+ {
+ /* If got here, then the syntax allows intervals. */
+
+ /* At least (most) this many matches must be made. */
+ int lower_bound = -1, upper_bound = -1;
+
+ beg_interval = p - 1;
+
+ if (p == pend)
+ {
+ if (syntax & RE_NO_BK_BRACES)
+ goto unfetch_interval;
+ else
+ return REG_EBRACE;
+ }
+
+ GET_UNSIGNED_NUMBER (lower_bound);
+
+ if (c == ',')
+ {
+ GET_UNSIGNED_NUMBER (upper_bound);
+ if (upper_bound < 0) upper_bound = RE_DUP_MAX;
+ }
+ else
+ /* Interval such as `{1}' => match exactly once. */
+ upper_bound = lower_bound;
+
+ if (lower_bound < 0 || upper_bound > RE_DUP_MAX
+ || lower_bound > upper_bound)
+ {
+ if (syntax & RE_NO_BK_BRACES)
+ goto unfetch_interval;
+ else
+ return REG_BADBR;
+ }
+
+ if (!(syntax & RE_NO_BK_BRACES))
+ {
+ if (c != '\\') return REG_EBRACE;
+
+ PATFETCH (c);
+ }
+
+ if (c != '}')
+ {
+ if (syntax & RE_NO_BK_BRACES)
+ goto unfetch_interval;
+ else
+ return REG_BADBR;
+ }
+
+ /* We just parsed a valid interval. */
+
+ /* If it's invalid to have no preceding re. */
+ if (!laststart)
+ {
+ if (syntax & RE_CONTEXT_INVALID_OPS)
+ return REG_BADRPT;
+ else if (syntax & RE_CONTEXT_INDEP_OPS)
+ laststart = b;
+ else
+ goto unfetch_interval;
+ }
+
+ /* If the upper bound is zero, don't want to succeed at
+ all; jump from `laststart' to `b + 3', which will be
+ the end of the buffer after we insert the jump. */
+ if (upper_bound == 0)
+ {
+ GET_BUFFER_SPACE (3);
+ INSERT_JUMP (jump, laststart, b + 3);
+ b += 3;
+ }
+
+ /* Otherwise, we have a nontrivial interval. When
+ we're all done, the pattern will look like:
+ set_number_at <jump count> <upper bound>
+ set_number_at <succeed_n count> <lower bound>
+ succeed_n <after jump addr> <succed_n count>
+ <body of loop>
+ jump_n <succeed_n addr> <jump count>
+ (The upper bound and `jump_n' are omitted if
+ `upper_bound' is 1, though.) */
+ else
+ { /* If the upper bound is > 1, we need to insert
+ more at the end of the loop. */
+ unsigned nbytes = 10 + (upper_bound > 1) * 10;
+
+ GET_BUFFER_SPACE (nbytes);
+
+ /* Initialize lower bound of the `succeed_n', even
+ though it will be set during matching by its
+ attendant `set_number_at' (inserted next),
+ because `re_compile_fastmap' needs to know.
+ Jump to the `jump_n' we might insert below. */
+ INSERT_JUMP2 (succeed_n, laststart,
+ b + 5 + (upper_bound > 1) * 5,
+ lower_bound);
+ b += 5;
+
+ /* Code to initialize the lower bound. Insert
+ before the `succeed_n'. The `5' is the last two
+ bytes of this `set_number_at', plus 3 bytes of
+ the following `succeed_n'. */
+ insert_op2 (set_number_at, laststart, 5, lower_bound, b);
+ b += 5;
+
+ if (upper_bound > 1)
+ { /* More than one repetition is allowed, so
+ append a backward jump to the `succeed_n'
+ that starts this interval.
+
+ When we've reached this during matching,
+ we'll have matched the interval once, so
+ jump back only `upper_bound - 1' times. */
+ STORE_JUMP2 (jump_n, b, laststart + 5,
+ upper_bound - 1);
+ b += 5;
+
+ /* The location we want to set is the second
+ parameter of the `jump_n'; that is `b-2' as
+ an absolute address. `laststart' will be
+ the `set_number_at' we're about to insert;
+ `laststart+3' the number to set, the source
+ for the relative address. But we are
+ inserting into the middle of the pattern --
+ so everything is getting moved up by 5.
+ Conclusion: (b - 2) - (laststart + 3) + 5,
+ i.e., b - laststart.
+
+ We insert this at the beginning of the loop
+ so that if we fail during matching, we'll
+ reinitialize the bounds. */
+ insert_op2 (set_number_at, laststart, b - laststart,
+ upper_bound - 1, b);
+ b += 5;
+ }
+ }
+ pending_exact = 0;
+ beg_interval = NULL;
+ }
+ break;
+
+ unfetch_interval:
+ /* If an invalid interval, match the characters as literals. */
+ assert (beg_interval);
+ p = beg_interval;
+ beg_interval = NULL;
+
+ /* normal_char and normal_backslash need `c'. */
+ PATFETCH (c);
+
+ if (!(syntax & RE_NO_BK_BRACES))
+ {
+ if (p > pattern && p[-1] == '\\')
+ goto normal_backslash;
+ }
+ goto normal_char;
+
+#ifdef emacs
+ /* There is no way to specify the before_dot and after_dot
+ operators. rms says this is ok. --karl */
+ case '=':
+ BUF_PUSH (at_dot);
+ break;
+
+ case 's':
+ laststart = b;
+ PATFETCH (c);
+ BUF_PUSH_2 (syntaxspec, syntax_spec_code[c]);
+ break;
+
+ case 'S':
+ laststart = b;
+ PATFETCH (c);
+ BUF_PUSH_2 (notsyntaxspec, syntax_spec_code[c]);
+ break;
+#endif /* emacs */
+
+
+ case 'w':
+ laststart = b;
+ BUF_PUSH (wordchar);
+ break;
+
+
+ case 'W':
+ laststart = b;
+ BUF_PUSH (notwordchar);
+ break;
+
+
+ case '<':
+ BUF_PUSH (wordbeg);
+ break;
+
+ case '>':
+ BUF_PUSH (wordend);
+ break;
+
+ case 'b':
+ BUF_PUSH (wordbound);
+ break;
+
+ case 'B':
+ BUF_PUSH (notwordbound);
+ break;
+
+ case '`':
+ BUF_PUSH (begbuf);
+ break;
+
+ case '\'':
+ BUF_PUSH (endbuf);
+ break;
+
+ case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ if (syntax & RE_NO_BK_REFS)
+ goto normal_char;
+
+ c1 = c - '0';
+
+ if (c1 > regnum)
+ return REG_ESUBREG;
+
+ /* Can't back reference to a subexpression if inside of it. */
+ if (group_in_compile_stack (compile_stack, c1))
+ goto normal_char;
+
+ laststart = b;
+ BUF_PUSH_2 (duplicate, c1);
+ break;
+
+
+ case '+':
+ case '?':
+ if (syntax & RE_BK_PLUS_QM)
+ goto handle_plus;
+ else
+ goto normal_backslash;
+
+ default:
+ normal_backslash:
+ /* You might think it would be useful for \ to mean
+ not to translate; but if we don't translate it
+ it will never match anything. */
+ c = TRANSLATE (c);
+ goto normal_char;
+ }
+ break;
+
+
+ default:
+ /* Expects the character in `c'. */
+ normal_char:
+ /* If no exactn currently being built. */
+ if (!pending_exact
+
+ /* If last exactn not at current position. */
+ || pending_exact + *pending_exact + 1 != b
+
+ /* We have only one byte following the exactn for the count. */
+ || *pending_exact == (1 << BYTEWIDTH) - 1
+
+ /* If followed by a repetition operator. */
+ || *p == '*' || *p == '^'
+ || ((syntax & RE_BK_PLUS_QM)
+ ? *p == '\\' && (p[1] == '+' || p[1] == '?')
+ : (*p == '+' || *p == '?'))
+ || ((syntax & RE_INTERVALS)
+ && ((syntax & RE_NO_BK_BRACES)
+ ? *p == '{'
+ : (p[0] == '\\' && p[1] == '{'))))
+ {
+ /* Start building a new exactn. */
+
+ laststart = b;
+
+ BUF_PUSH_2 (exactn, 0);
+ pending_exact = b - 1;
+ }
+
+ BUF_PUSH (c);
+ (*pending_exact)++;
+ break;
+ } /* switch (c) */
+ } /* while p != pend */
+
+
+ /* Through the pattern now. */
+
+ if (fixup_alt_jump)
+ STORE_JUMP (jump_past_alt, fixup_alt_jump, b);
+
+ if (!COMPILE_STACK_EMPTY)
+ return REG_EPAREN;
+
+ free (compile_stack.stack);
+
+ /* We have succeeded; set the length of the buffer. */
+ bufp->used = b - bufp->buffer;
+
+#ifdef DEBUG
+ if (debug)
+ {
+ DEBUG_PRINT1 ("\nCompiled pattern: ");
+ print_compiled_pattern (bufp);
+ }
+#endif /* DEBUG */
+
+ return REG_NOERROR;
+} /* regex_compile */
+
+/* Subroutines for `regex_compile'. */
+
+/* Store OP at LOC followed by two-byte integer parameter ARG. */
+
+static void
+store_op1 (op, loc, arg)
+ re_opcode_t op;
+ unsigned char *loc;
+ int arg;
+{
+ *loc = (unsigned char) op;
+ STORE_NUMBER (loc + 1, arg);
+}
+
+
+/* Like `store_op1', but for two two-byte parameters ARG1 and ARG2. */
+
+static void
+store_op2 (op, loc, arg1, arg2)
+ re_opcode_t op;
+ unsigned char *loc;
+ int arg1, arg2;
+{
+ *loc = (unsigned char) op;
+ STORE_NUMBER (loc + 1, arg1);
+ STORE_NUMBER (loc + 3, arg2);
+}
+
+
+/* Copy the bytes from LOC to END to open up three bytes of space at LOC
+ for OP followed by two-byte integer parameter ARG. */
+
+static void
+insert_op1 (op, loc, arg, end)
+ re_opcode_t op;
+ unsigned char *loc;
+ int arg;
+ unsigned char *end;
+{
+ register unsigned char *pfrom = end;
+ register unsigned char *pto = end + 3;
+
+ while (pfrom != loc)
+ *--pto = *--pfrom;
+
+ store_op1 (op, loc, arg);
+}
+
+
+/* Like `insert_op1', but for two two-byte parameters ARG1 and ARG2. */
+
+static void
+insert_op2 (op, loc, arg1, arg2, end)
+ re_opcode_t op;
+ unsigned char *loc;
+ int arg1, arg2;
+ unsigned char *end;
+{
+ register unsigned char *pfrom = end;
+ register unsigned char *pto = end + 5;
+
+ while (pfrom != loc)
+ *--pto = *--pfrom;
+
+ store_op2 (op, loc, arg1, arg2);
+}
+
+
+/* P points to just after a ^ in PATTERN. Return true if that ^ comes
+ after an alternative or a begin-subexpression. We assume there is at
+ least one character before the ^. */
+
+static boolean
+at_begline_loc_p (pattern, p, syntax)
+ const char *pattern, *p;
+ reg_syntax_t syntax;
+{
+ const char *prev = p - 2;
+ boolean prev_prev_backslash = prev > pattern && prev[-1] == '\\';
+
+ return
+ /* After a subexpression? */
+ (*prev == '(' && (syntax & RE_NO_BK_PARENS || prev_prev_backslash))
+ /* After an alternative? */
+ || (*prev == '|' && (syntax & RE_NO_BK_VBAR || prev_prev_backslash));
+}
+
+
+/* The dual of at_begline_loc_p. This one is for $. We assume there is
+ at least one character after the $, i.e., `P < PEND'. */
+
+static boolean
+at_endline_loc_p (p, pend, syntax)
+ const char *p, *pend;
+ int syntax;
+{
+ const char *next = p;
+ boolean next_backslash = *next == '\\';
+ const char *next_next = p + 1 < pend ? p + 1 : NULL;
+
+ return
+ /* Before a subexpression? */
+ (syntax & RE_NO_BK_PARENS ? *next == ')'
+ : next_backslash && next_next && *next_next == ')')
+ /* Before an alternative? */
+ || (syntax & RE_NO_BK_VBAR ? *next == '|'
+ : next_backslash && next_next && *next_next == '|');
+}
+
+
+/* Returns true if REGNUM is in one of COMPILE_STACK's elements and
+ false if it's not. */
+
+static boolean
+group_in_compile_stack (compile_stack, regnum)
+ compile_stack_type compile_stack;
+ regnum_t regnum;
+{
+ int this_element;
+
+ for (this_element = compile_stack.avail - 1;
+ this_element >= 0;
+ this_element--)
+ if (compile_stack.stack[this_element].regnum == regnum)
+ return true;
+
+ return false;
+}
+
+
+/* Read the ending character of a range (in a bracket expression) from the
+ uncompiled pattern *P_PTR (which ends at PEND). We assume the
+ starting character is in `P[-2]'. (`P[-1]' is the character `-'.)
+ Then we set the translation of all bits between the starting and
+ ending characters (inclusive) in the compiled pattern B.
+
+ Return an error code.
+
+ We use these short variable names so we can use the same macros as
+ `regex_compile' itself. */
+
+static reg_errcode_t
+compile_range (p_ptr, pend, translate, syntax, b)
+ const char **p_ptr, *pend;
+ char *translate;
+ reg_syntax_t syntax;
+ unsigned char *b;
+{
+ unsigned this_char;
+
+ const char *p = *p_ptr;
+ int range_start, range_end;
+
+ if (p == pend)
+ return REG_ERANGE;
+
+ /* Even though the pattern is a signed `char *', we need to fetch
+ with unsigned char *'s; if the high bit of the pattern character
+ is set, the range endpoints will be negative if we fetch using a
+ signed char *.
+
+ We also want to fetch the endpoints without translating them; the
+ appropriate translation is done in the bit-setting loop below. */
+ range_start = ((unsigned char *) p)[-2];
+ range_end = ((unsigned char *) p)[0];
+
+ /* Have to increment the pointer into the pattern string, so the
+ caller isn't still at the ending character. */
+ (*p_ptr)++;
+
+ /* If the start is after the end, the range is empty. */
+ if (range_start > range_end)
+ return syntax & RE_NO_EMPTY_RANGES ? REG_ERANGE : REG_NOERROR;
+
+ /* Here we see why `this_char' has to be larger than an `unsigned
+ char' -- the range is inclusive, so if `range_end' == 0xff
+ (assuming 8-bit characters), we would otherwise go into an infinite
+ loop, since all characters <= 0xff. */
+ for (this_char = range_start; this_char <= range_end; this_char++)
+ {
+ SET_LIST_BIT (TRANSLATE (this_char));
+ }
+
+ return REG_NOERROR;
+}
+
+/* Failure stack declarations and macros; both re_compile_fastmap and
+ re_match_2 use a failure stack. These have to be macros because of
+ REGEX_ALLOCATE. */
+
+
+/* Number of failure points for which to initially allocate space
+ when matching. If this number is exceeded, we allocate more
+ space, so it is not a hard limit. */
+#ifndef INIT_FAILURE_ALLOC
+#define INIT_FAILURE_ALLOC 5
+#endif
+
+/* Roughly the maximum number of failure points on the stack. Would be
+ exactly that if always used MAX_FAILURE_SPACE each time we failed.
+ This is a variable only so users of regex can assign to it; we never
+ change it ourselves. */
+int re_max_failures = 2000;
+
+typedef const unsigned char *fail_stack_elt_t;
+
+typedef struct
+{
+ fail_stack_elt_t *stack;
+ unsigned size;
+ unsigned avail; /* Offset of next open position. */
+} fail_stack_type;
+
+#define FAIL_STACK_EMPTY() (fail_stack.avail == 0)
+#define FAIL_STACK_PTR_EMPTY() (fail_stack_ptr->avail == 0)
+#define FAIL_STACK_FULL() (fail_stack.avail == fail_stack.size)
+#define FAIL_STACK_TOP() (fail_stack.stack[fail_stack.avail])
+
+
+/* Initialize `fail_stack'. Do `return -2' if the alloc fails. */
+
+#define INIT_FAIL_STACK() \
+ do { \
+ fail_stack.stack = (fail_stack_elt_t *) \
+ REGEX_ALLOCATE (INIT_FAILURE_ALLOC * sizeof (fail_stack_elt_t)); \
+ \
+ if (fail_stack.stack == NULL) \
+ return -2; \
+ \
+ fail_stack.size = INIT_FAILURE_ALLOC; \
+ fail_stack.avail = 0; \
+ } while (0)
+
+
+/* Double the size of FAIL_STACK, up to approximately `re_max_failures' items.
+
+ Return 1 if succeeds, and 0 if either ran out of memory
+ allocating space for it or it was already too large.
+
+ REGEX_REALLOCATE requires `destination' be declared. */
+
+#define DOUBLE_FAIL_STACK(fail_stack) \
+ ((fail_stack).size > re_max_failures * MAX_FAILURE_ITEMS \
+ ? 0 \
+ : ((fail_stack).stack = (fail_stack_elt_t *) \
+ REGEX_REALLOCATE ((fail_stack).stack, \
+ (fail_stack).size * sizeof (fail_stack_elt_t), \
+ ((fail_stack).size << 1) * sizeof (fail_stack_elt_t)), \
+ \
+ (fail_stack).stack == NULL \
+ ? 0 \
+ : ((fail_stack).size <<= 1, \
+ 1)))
+
+
+/* Push PATTERN_OP on FAIL_STACK.
+
+ Return 1 if was able to do so and 0 if ran out of memory allocating
+ space to do so. */
+#define PUSH_PATTERN_OP(pattern_op, fail_stack) \
+ ((FAIL_STACK_FULL () \
+ && !DOUBLE_FAIL_STACK (fail_stack)) \
+ ? 0 \
+ : ((fail_stack).stack[(fail_stack).avail++] = pattern_op, \
+ 1))
+
+/* This pushes an item onto the failure stack. Must be a four-byte
+ value. Assumes the variable `fail_stack'. Probably should only
+ be called from within `PUSH_FAILURE_POINT'. */
+#define PUSH_FAILURE_ITEM(item) \
+ fail_stack.stack[fail_stack.avail++] = (fail_stack_elt_t) item
+
+/* The complement operation. Assumes `fail_stack' is nonempty. */
+#define POP_FAILURE_ITEM() fail_stack.stack[--fail_stack.avail]
+
+/* Used to omit pushing failure point id's when we're not debugging. */
+#ifdef DEBUG
+#define DEBUG_PUSH PUSH_FAILURE_ITEM
+#define DEBUG_POP(item_addr) *(item_addr) = POP_FAILURE_ITEM ()
+#else
+#define DEBUG_PUSH(item)
+#define DEBUG_POP(item_addr)
+#endif
+
+
+/* Push the information about the state we will need
+ if we ever fail back to it.
+
+ Requires variables fail_stack, regstart, regend, reg_info, and
+ num_regs be declared. DOUBLE_FAIL_STACK requires `destination' be
+ declared.
+
+ Does `return FAILURE_CODE' if runs out of memory. */
+
+#define PUSH_FAILURE_POINT(pattern_place, string_place, failure_code) \
+ do { \
+ char *destination; \
+ /* Must be int, so when we don't save any registers, the arithmetic \
+ of 0 + -1 isn't done as unsigned. */ \
+ int this_reg; \
+ \
+ DEBUG_STATEMENT (failure_id++); \
+ DEBUG_STATEMENT (nfailure_points_pushed++); \
+ DEBUG_PRINT2 ("\nPUSH_FAILURE_POINT #%u:\n", failure_id); \
+ DEBUG_PRINT2 (" Before push, next avail: %d\n", (fail_stack).avail);\
+ DEBUG_PRINT2 (" size: %d\n", (fail_stack).size);\
+ \
+ DEBUG_PRINT2 (" slots needed: %d\n", NUM_FAILURE_ITEMS); \
+ DEBUG_PRINT2 (" available: %d\n", REMAINING_AVAIL_SLOTS); \
+ \
+ /* Ensure we have enough space allocated for what we will push. */ \
+ while (REMAINING_AVAIL_SLOTS < NUM_FAILURE_ITEMS) \
+ { \
+ if (!DOUBLE_FAIL_STACK (fail_stack)) \
+ return failure_code; \
+ \
+ DEBUG_PRINT2 ("\n Doubled stack; size now: %d\n", \
+ (fail_stack).size); \
+ DEBUG_PRINT2 (" slots available: %d\n", REMAINING_AVAIL_SLOTS);\
+ } \
+ \
+ /* Push the info, starting with the registers. */ \
+ DEBUG_PRINT1 ("\n"); \
+ \
+ for (this_reg = lowest_active_reg; this_reg <= highest_active_reg; \
+ this_reg++) \
+ { \
+ DEBUG_PRINT2 (" Pushing reg: %d\n", this_reg); \
+ DEBUG_STATEMENT (num_regs_pushed++); \
+ \
+ DEBUG_PRINT2 (" start: 0x%x\n", regstart[this_reg]); \
+ PUSH_FAILURE_ITEM (regstart[this_reg]); \
+ \
+ DEBUG_PRINT2 (" end: 0x%x\n", regend[this_reg]); \
+ PUSH_FAILURE_ITEM (regend[this_reg]); \
+ \
+ DEBUG_PRINT2 (" info: 0x%x\n ", reg_info[this_reg]); \
+ DEBUG_PRINT2 (" match_null=%d", \
+ REG_MATCH_NULL_STRING_P (reg_info[this_reg])); \
+ DEBUG_PRINT2 (" active=%d", IS_ACTIVE (reg_info[this_reg])); \
+ DEBUG_PRINT2 (" matched_something=%d", \
+ MATCHED_SOMETHING (reg_info[this_reg])); \
+ DEBUG_PRINT2 (" ever_matched=%d", \
+ EVER_MATCHED_SOMETHING (reg_info[this_reg])); \
+ DEBUG_PRINT1 ("\n"); \
+ PUSH_FAILURE_ITEM (reg_info[this_reg].word); \
+ } \
+ \
+ DEBUG_PRINT2 (" Pushing low active reg: %d\n", lowest_active_reg);\
+ PUSH_FAILURE_ITEM (lowest_active_reg); \
+ \
+ DEBUG_PRINT2 (" Pushing high active reg: %d\n", highest_active_reg);\
+ PUSH_FAILURE_ITEM (highest_active_reg); \
+ \
+ DEBUG_PRINT2 (" Pushing pattern 0x%x: ", pattern_place); \
+ DEBUG_PRINT_COMPILED_PATTERN (bufp, pattern_place, pend); \
+ PUSH_FAILURE_ITEM (pattern_place); \
+ \
+ DEBUG_PRINT2 (" Pushing string 0x%x: `", string_place); \
+ DEBUG_PRINT_DOUBLE_STRING (string_place, string1, size1, string2, \
+ size2); \
+ DEBUG_PRINT1 ("'\n"); \
+ PUSH_FAILURE_ITEM (string_place); \
+ \
+ DEBUG_PRINT2 (" Pushing failure id: %u\n", failure_id); \
+ DEBUG_PUSH (failure_id); \
+ } while (0)
+
+/* This is the number of items that are pushed and popped on the stack
+ for each register. */
+#define NUM_REG_ITEMS 3
+
+/* Individual items aside from the registers. */
+#ifdef DEBUG
+#define NUM_NONREG_ITEMS 5 /* Includes failure point id. */
+#else
+#define NUM_NONREG_ITEMS 4
+#endif
+
+/* We push at most this many items on the stack. */
+#define MAX_FAILURE_ITEMS ((num_regs - 1) * NUM_REG_ITEMS + NUM_NONREG_ITEMS)
+
+/* We actually push this many items. */
+#define NUM_FAILURE_ITEMS \
+ ((highest_active_reg - lowest_active_reg + 1) * NUM_REG_ITEMS \
+ + NUM_NONREG_ITEMS)
+
+/* How many items can still be added to the stack without overflowing it. */
+#define REMAINING_AVAIL_SLOTS ((fail_stack).size - (fail_stack).avail)
+
+
+/* Pops what PUSH_FAIL_STACK pushes.
+
+ We restore into the parameters, all of which should be lvalues:
+ STR -- the saved data position.
+ PAT -- the saved pattern position.
+ LOW_REG, HIGH_REG -- the highest and lowest active registers.
+ REGSTART, REGEND -- arrays of string positions.
+ REG_INFO -- array of information about each subexpression.
+
+ Also assumes the variables `fail_stack' and (if debugging), `bufp',
+ `pend', `string1', `size1', `string2', and `size2'. */
+
+#define POP_FAILURE_POINT(str, pat, low_reg, high_reg, regstart, regend, reg_info)\
+{ \
+ DEBUG_STATEMENT (fail_stack_elt_t failure_id;) \
+ int this_reg; \
+ const unsigned char *string_temp; \
+ \
+ assert (!FAIL_STACK_EMPTY ()); \
+ \
+ /* Remove failure points and point to how many regs pushed. */ \
+ DEBUG_PRINT1 ("POP_FAILURE_POINT:\n"); \
+ DEBUG_PRINT2 (" Before pop, next avail: %d\n", fail_stack.avail); \
+ DEBUG_PRINT2 (" size: %d\n", fail_stack.size); \
+ \
+ assert (fail_stack.avail >= NUM_NONREG_ITEMS); \
+ \
+ DEBUG_POP (&failure_id); \
+ DEBUG_PRINT2 (" Popping failure id: %u\n", failure_id); \
+ \
+ /* If the saved string location is NULL, it came from an \
+ on_failure_keep_string_jump opcode, and we want to throw away the \
+ saved NULL, thus retaining our current position in the string. */ \
+ string_temp = POP_FAILURE_ITEM (); \
+ if (string_temp != NULL) \
+ str = (const char *) string_temp; \
+ \
+ DEBUG_PRINT2 (" Popping string 0x%x: `", str); \
+ DEBUG_PRINT_DOUBLE_STRING (str, string1, size1, string2, size2); \
+ DEBUG_PRINT1 ("'\n"); \
+ \
+ pat = (unsigned char *) POP_FAILURE_ITEM (); \
+ DEBUG_PRINT2 (" Popping pattern 0x%x: ", pat); \
+ DEBUG_PRINT_COMPILED_PATTERN (bufp, pat, pend); \
+ \
+ /* Restore register info. */ \
+ high_reg = (unsigned) POP_FAILURE_ITEM (); \
+ DEBUG_PRINT2 (" Popping high active reg: %d\n", high_reg); \
+ \
+ low_reg = (unsigned) POP_FAILURE_ITEM (); \
+ DEBUG_PRINT2 (" Popping low active reg: %d\n", low_reg); \
+ \
+ for (this_reg = high_reg; this_reg >= low_reg; this_reg--) \
+ { \
+ DEBUG_PRINT2 (" Popping reg: %d\n", this_reg); \
+ \
+ reg_info[this_reg].word = POP_FAILURE_ITEM (); \
+ DEBUG_PRINT2 (" info: 0x%x\n", reg_info[this_reg]); \
+ \
+ regend[this_reg] = (const char *) POP_FAILURE_ITEM (); \
+ DEBUG_PRINT2 (" end: 0x%x\n", regend[this_reg]); \
+ \
+ regstart[this_reg] = (const char *) POP_FAILURE_ITEM (); \
+ DEBUG_PRINT2 (" start: 0x%x\n", regstart[this_reg]); \
+ } \
+ \
+ DEBUG_STATEMENT (nfailure_points_popped++); \
+} /* POP_FAILURE_POINT */
+
+/* re_compile_fastmap computes a ``fastmap'' for the compiled pattern in
+ BUFP. A fastmap records which of the (1 << BYTEWIDTH) possible
+ characters can start a string that matches the pattern. This fastmap
+ is used by re_search to skip quickly over impossible starting points.
+
+ The caller must supply the address of a (1 << BYTEWIDTH)-byte data
+ area as BUFP->fastmap.
+
+ We set the `fastmap', `fastmap_accurate', and `can_be_null' fields in
+ the pattern buffer.
+
+ Returns 0 if we succeed, -2 if an internal error. */
+
+int
+re_compile_fastmap (bufp)
+ struct re_pattern_buffer *bufp;
+{
+ int j, k;
+ fail_stack_type fail_stack;
+#ifndef REGEX_MALLOC
+ char *destination;
+#endif
+ /* We don't push any register information onto the failure stack. */
+ unsigned num_regs = 0;
+
+ register char *fastmap = bufp->fastmap;
+ unsigned char *pattern = bufp->buffer;
+ unsigned long size = bufp->used;
+ const unsigned char *p = pattern;
+ register unsigned char *pend = pattern + size;
+
+ /* Assume that each path through the pattern can be null until
+ proven otherwise. We set this false at the bottom of switch
+ statement, to which we get only if a particular path doesn't
+ match the empty string. */
+ boolean path_can_be_null = true;
+
+ /* We aren't doing a `succeed_n' to begin with. */
+ boolean succeed_n_p = false;
+
+ assert (fastmap != NULL && p != NULL);
+
+ INIT_FAIL_STACK ();
+ bzero (fastmap, 1 << BYTEWIDTH); /* Assume nothing's valid. */
+ bufp->fastmap_accurate = 1; /* It will be when we're done. */
+ bufp->can_be_null = 0;
+
+ while (p != pend || !FAIL_STACK_EMPTY ())
+ {
+ if (p == pend)
+ {
+ bufp->can_be_null |= path_can_be_null;
+
+ /* Reset for next path. */
+ path_can_be_null = true;
+
+ p = fail_stack.stack[--fail_stack.avail];
+ }
+
+ /* We should never be about to go beyond the end of the pattern. */
+ assert (p < pend);
+
+#ifdef SWITCH_ENUM_BUG
+ switch ((int) ((re_opcode_t) *p++))
+#else
+ switch ((re_opcode_t) *p++)
+#endif
+ {
+
+ /* I guess the idea here is to simply not bother with a fastmap
+ if a backreference is used, since it's too hard to figure out
+ the fastmap for the corresponding group. Setting
+ `can_be_null' stops `re_search_2' from using the fastmap, so
+ that is all we do. */
+ case duplicate:
+ bufp->can_be_null = 1;
+ return 0;
+
+
+ /* Following are the cases which match a character. These end
+ with `break'. */
+
+ case exactn:
+ fastmap[p[1]] = 1;
+ break;
+
+
+ case charset:
+ for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
+ if (p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH)))
+ fastmap[j] = 1;
+ break;
+
+
+ case charset_not:
+ /* Chars beyond end of map must be allowed. */
+ for (j = *p * BYTEWIDTH; j < (1 << BYTEWIDTH); j++)
+ fastmap[j] = 1;
+
+ for (j = *p++ * BYTEWIDTH - 1; j >= 0; j--)
+ if (!(p[j / BYTEWIDTH] & (1 << (j % BYTEWIDTH))))
+ fastmap[j] = 1;
+ break;
+
+
+ case wordchar:
+ for (j = 0; j < (1 << BYTEWIDTH); j++)
+ if (SYNTAX (j) == Sword)
+ fastmap[j] = 1;
+ break;
+
+
+ case notwordchar:
+ for (j = 0; j < (1 << BYTEWIDTH); j++)
+ if (SYNTAX (j) != Sword)
+ fastmap[j] = 1;
+ break;
+
+
+ case anychar:
+ /* `.' matches anything ... */
+ for (j = 0; j < (1 << BYTEWIDTH); j++)
+ fastmap[j] = 1;
+
+ /* ... except perhaps newline. */
+ if (!(bufp->syntax & RE_DOT_NEWLINE))
+ fastmap['\n'] = 0;
+
+ /* Return if we have already set `can_be_null'; if we have,
+ then the fastmap is irrelevant. Something's wrong here. */
+ else if (bufp->can_be_null)
+ return 0;
+
+ /* Otherwise, have to check alternative paths. */
+ break;
+
+
+#ifdef emacs
+ case syntaxspec:
+ k = *p++;
+ for (j = 0; j < (1 << BYTEWIDTH); j++)
+ if (SYNTAX (j) == (enum syntaxcode) k)
+ fastmap[j] = 1;
+ break;
+
+
+ case notsyntaxspec:
+ k = *p++;
+ for (j = 0; j < (1 << BYTEWIDTH); j++)
+ if (SYNTAX (j) != (enum syntaxcode) k)
+ fastmap[j] = 1;
+ break;
+
+
+ /* All cases after this match the empty string. These end with
+ `continue'. */
+
+
+ case before_dot:
+ case at_dot:
+ case after_dot:
+ continue;
+#endif /* not emacs */
+
+
+ case no_op:
+ case begline:
+ case endline:
+ case begbuf:
+ case endbuf:
+ case wordbound:
+ case notwordbound:
+ case wordbeg:
+ case wordend:
+ case push_dummy_failure:
+ continue;
+
+
+ case jump_n:
+ case pop_failure_jump:
+ case maybe_pop_jump:
+ case jump:
+ case jump_past_alt:
+ case dummy_failure_jump:
+ EXTRACT_NUMBER_AND_INCR (j, p);
+ p += j;
+ if (j > 0)
+ continue;
+
+ /* Jump backward implies we just went through the body of a
+ loop and matched nothing. Opcode jumped to should be
+ `on_failure_jump' or `succeed_n'. Just treat it like an
+ ordinary jump. For a * loop, it has pushed its failure
+ point already; if so, discard that as redundant. */
+ if ((re_opcode_t) *p != on_failure_jump
+ && (re_opcode_t) *p != succeed_n)
+ continue;
+
+ p++;
+ EXTRACT_NUMBER_AND_INCR (j, p);
+ p += j;
+
+ /* If what's on the stack is where we are now, pop it. */
+ if (!FAIL_STACK_EMPTY ()
+ && fail_stack.stack[fail_stack.avail - 1] == p)
+ fail_stack.avail--;
+
+ continue;
+
+
+ case on_failure_jump:
+ case on_failure_keep_string_jump:
+ handle_on_failure_jump:
+ EXTRACT_NUMBER_AND_INCR (j, p);
+
+ /* For some patterns, e.g., `(a?)?', `p+j' here points to the
+ end of the pattern. We don't want to push such a point,
+ since when we restore it above, entering the switch will
+ increment `p' past the end of the pattern. We don't need
+ to push such a point since we obviously won't find any more
+ fastmap entries beyond `pend'. Such a pattern can match
+ the null string, though. */
+ if (p + j < pend)
+ {
+ if (!PUSH_PATTERN_OP (p + j, fail_stack))
+ return -2;
+ }
+ else
+ bufp->can_be_null = 1;
+
+ if (succeed_n_p)
+ {
+ EXTRACT_NUMBER_AND_INCR (k, p); /* Skip the n. */
+ succeed_n_p = false;
+ }
+
+ continue;
+
+
+ case succeed_n:
+ /* Get to the number of times to succeed. */
+ p += 2;
+
+ /* Increment p past the n for when k != 0. */
+ EXTRACT_NUMBER_AND_INCR (k, p);
+ if (k == 0)
+ {
+ p -= 4;
+ succeed_n_p = true; /* Spaghetti code alert. */
+ goto handle_on_failure_jump;
+ }
+ continue;
+
+
+ case set_number_at:
+ p += 4;
+ continue;
+
+
+ case start_memory:
+ case stop_memory:
+ p += 2;
+ continue;
+
+
+ default:
+ abort (); /* We have listed all the cases. */
+ } /* switch *p++ */
+
+ /* Getting here means we have found the possible starting
+ characters for one path of the pattern -- and that the empty
+ string does not match. We need not follow this path further.
+ Instead, look at the next alternative (remembered on the
+ stack), or quit if no more. The test at the top of the loop
+ does these things. */
+ path_can_be_null = false;
+ p = pend;
+ } /* while p */
+
+ /* Set `can_be_null' for the last path (also the first path, if the
+ pattern is empty). */
+ bufp->can_be_null |= path_can_be_null;
+ return 0;
+} /* re_compile_fastmap */
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+ ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use
+ this memory for recording register information. STARTS and ENDS
+ must be allocated using the malloc library routine, and must each
+ be at least NUM_REGS * sizeof (regoff_t) bytes long.
+
+ If NUM_REGS == 0, then subsequent matches should allocate their own
+ register data.
+
+ Unless this function is called, the first search or match using
+ PATTERN_BUFFER will allocate its own register data, without
+ freeing the old data. */
+
+void
+re_set_registers (bufp, regs, num_regs, starts, ends)
+ struct re_pattern_buffer *bufp;
+ struct re_registers *regs;
+ unsigned num_regs;
+ regoff_t *starts, *ends;
+{
+ if (num_regs)
+ {
+ bufp->regs_allocated = REGS_REALLOCATE;
+ regs->num_regs = num_regs;
+ regs->start = starts;
+ regs->end = ends;
+ }
+ else
+ {
+ bufp->regs_allocated = REGS_UNALLOCATED;
+ regs->num_regs = 0;
+ regs->start = regs->end = (regoff_t) 0;
+ }
+}
+
+/* Searching routines. */
+
+/* Like re_search_2, below, but only one string is specified, and
+ doesn't let you say where to stop matching. */
+
+int
+re_search (bufp, string, size, startpos, range, regs)
+ struct re_pattern_buffer *bufp;
+ const char *string;
+ int size, startpos, range;
+ struct re_registers *regs;
+{
+ return re_search_2 (bufp, NULL, 0, string, size, startpos, range,
+ regs, size);
+}
+
+
+/* Using the compiled pattern in BUFP->buffer, first tries to match the
+ virtual concatenation of STRING1 and STRING2, starting first at index
+ STARTPOS, then at STARTPOS + 1, and so on.
+
+ STRING1 and STRING2 have length SIZE1 and SIZE2, respectively.
+
+ RANGE is how far to scan while trying to match. RANGE = 0 means try
+ only at STARTPOS; in general, the last start tried is STARTPOS +
+ RANGE.
+
+ In REGS, return the indices of the virtual concatenation of STRING1
+ and STRING2 that matched the entire BUFP->buffer and its contained
+ subexpressions.
+
+ Do not consider matching one past the index STOP in the virtual
+ concatenation of STRING1 and STRING2.
+
+ We return either the position in the strings at which the match was
+ found, -1 if no match, or -2 if error (such as failure
+ stack overflow). */
+
+int
+re_search_2 (bufp, string1, size1, string2, size2, startpos, range, regs, stop)
+ struct re_pattern_buffer *bufp;
+ const char *string1, *string2;
+ int size1, size2;
+ int startpos;
+ int range;
+ struct re_registers *regs;
+ int stop;
+{
+ int val;
+ register char *fastmap = bufp->fastmap;
+ register char *translate = bufp->translate;
+ int total_size = size1 + size2;
+ int endpos = startpos + range;
+
+ /* Check for out-of-range STARTPOS. */
+ if (startpos < 0 || startpos > total_size)
+ return -1;
+
+ /* Fix up RANGE if it might eventually take us outside
+ the virtual concatenation of STRING1 and STRING2. */
+ if (endpos < -1)
+ range = -1 - startpos;
+ else if (endpos > total_size)
+ range = total_size - startpos;
+
+ /* If the search isn't to be a backwards one, don't waste time in a
+ search for a pattern that must be anchored. */
+ if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0)
+ {
+ if (startpos > 0)
+ return -1;
+ else
+ range = 1;
+ }
+
+ /* Update the fastmap now if not correct already. */
+ if (fastmap && !bufp->fastmap_accurate)
+ if (re_compile_fastmap (bufp) == -2)
+ return -2;
+
+ /* Loop through the string, looking for a place to start matching. */
+ for (;;)
+ {
+ /* If a fastmap is supplied, skip quickly over characters that
+ cannot be the start of a match. If the pattern can match the
+ null string, however, we don't need to skip characters; we want
+ the first null string. */
+ if (fastmap && startpos < total_size && !bufp->can_be_null)
+ {
+ if (range > 0) /* Searching forwards. */
+ {
+ register const char *d;
+ register int lim = 0;
+ int irange = range;
+
+ if (startpos < size1 && startpos + range >= size1)
+ lim = range - (size1 - startpos);
+
+ d = (startpos >= size1 ? string2 - size1 : string1) + startpos;
+
+ /* Written out as an if-else to avoid testing `translate'
+ inside the loop. */
+ if (translate)
+ while (range > lim
+ && !fastmap[(unsigned char)
+ translate[(unsigned char) *d++]])
+ range--;
+ else
+ while (range > lim && !fastmap[(unsigned char) *d++])
+ range--;
+
+ startpos += irange - range;
+ }
+ else /* Searching backwards. */
+ {
+ register char c = (size1 == 0 || startpos >= size1
+ ? string2[startpos - size1]
+ : string1[startpos]);
+
+ if (!fastmap[(unsigned char) TRANSLATE (c)])
+ goto advance;
+ }
+ }
+
+ /* If can't match the null string, and that's all we have left, fail. */
+ if (range >= 0 && startpos == total_size && fastmap
+ && !bufp->can_be_null)
+ return -1;
+
+ val = re_match_2 (bufp, string1, size1, string2, size2,
+ startpos, regs, stop);
+ if (val >= 0)
+ return startpos;
+
+ if (val == -2)
+ return -2;
+
+ advance:
+ if (!range)
+ break;
+ else if (range > 0)
+ {
+ range--;
+ startpos++;
+ }
+ else
+ {
+ range++;
+ startpos--;
+ }
+ }
+ return -1;
+} /* re_search_2 */
+
+/* Declarations and macros for re_match_2. */
+
+static int bcmp_translate ();
+static boolean alt_match_null_string_p (),
+ common_op_match_null_string_p (),
+ group_match_null_string_p ();
+
+/* Structure for per-register (a.k.a. per-group) information.
+ This must not be longer than one word, because we push this value
+ onto the failure stack. Other register information, such as the
+ starting and ending positions (which are addresses), and the list of
+ inner groups (which is a bits list) are maintained in separate
+ variables.
+
+ We are making a (strictly speaking) nonportable assumption here: that
+ the compiler will pack our bit fields into something that fits into
+ the type of `word', i.e., is something that fits into one item on the
+ failure stack. */
+typedef union
+{
+ fail_stack_elt_t word;
+ struct
+ {
+ /* This field is one if this group can match the empty string,
+ zero if not. If not yet determined, `MATCH_NULL_UNSET_VALUE'. */
+#define MATCH_NULL_UNSET_VALUE 3
+ unsigned match_null_string_p : 2;
+ unsigned is_active : 1;
+ unsigned matched_something : 1;
+ unsigned ever_matched_something : 1;
+ } bits;
+} register_info_type;
+
+#define REG_MATCH_NULL_STRING_P(R) ((R).bits.match_null_string_p)
+#define IS_ACTIVE(R) ((R).bits.is_active)
+#define MATCHED_SOMETHING(R) ((R).bits.matched_something)
+#define EVER_MATCHED_SOMETHING(R) ((R).bits.ever_matched_something)
+
+
+/* Call this when have matched a real character; it sets `matched' flags
+ for the subexpressions which we are currently inside. Also records
+ that those subexprs have matched. */
+#define SET_REGS_MATCHED() \
+ do \
+ { \
+ unsigned r; \
+ for (r = lowest_active_reg; r <= highest_active_reg; r++) \
+ { \
+ MATCHED_SOMETHING (reg_info[r]) \
+ = EVER_MATCHED_SOMETHING (reg_info[r]) \
+ = 1; \
+ } \
+ } \
+ while (0)
+
+
+/* This converts PTR, a pointer into one of the search strings `string1'
+ and `string2' into an offset from the beginning of that string. */
+#define POINTER_TO_OFFSET(ptr) \
+ (FIRST_STRING_P (ptr) ? (ptr) - string1 : (ptr) - string2 + size1)
+
+/* Registers are set to a sentinel when they haven't yet matched. */
+#define REG_UNSET_VALUE ((char *) -1)
+#define REG_UNSET(e) ((e) == REG_UNSET_VALUE)
+
+
+/* Macros for dealing with the split strings in re_match_2. */
+
+#define MATCHING_IN_FIRST_STRING (dend == end_match_1)
+
+/* Call before fetching a character with *d. This switches over to
+ string2 if necessary. */
+#define PREFETCH() \
+ while (d == dend) \
+ { \
+ /* End of string2 => fail. */ \
+ if (dend == end_match_2) \
+ goto fail; \
+ /* End of string1 => advance to string2. */ \
+ d = string2; \
+ dend = end_match_2; \
+ }
+
+
+/* Test if at very beginning or at very end of the virtual concatenation
+ of `string1' and `string2'. If only one string, it's `string2'. */
+#define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2)
+#define AT_STRINGS_END(d) ((d) == end2)
+
+
+/* Test if D points to a character which is word-constituent. We have
+ two special cases to check for: if past the end of string1, look at
+ the first character in string2; and if before the beginning of
+ string2, look at the last character in string1. */
+#define WORDCHAR_P(d) \
+ (SYNTAX ((d) == end1 ? *string2 \
+ : (d) == string2 - 1 ? *(end1 - 1) : *(d)) \
+ == Sword)
+
+/* Test if the character before D and the one at D differ with respect
+ to being word-constituent. */
+#define AT_WORD_BOUNDARY(d) \
+ (AT_STRINGS_BEG (d) || AT_STRINGS_END (d) \
+ || WORDCHAR_P (d - 1) != WORDCHAR_P (d))
+
+
+/* Free everything we malloc. */
+#ifdef REGEX_MALLOC
+#define FREE_VAR(var) if (var) free (var); var = NULL
+#define FREE_VARIABLES() \
+ do { \
+ FREE_VAR (fail_stack.stack); \
+ FREE_VAR (regstart); \
+ FREE_VAR (regend); \
+ FREE_VAR (old_regstart); \
+ FREE_VAR (old_regend); \
+ FREE_VAR (best_regstart); \
+ FREE_VAR (best_regend); \
+ FREE_VAR (reg_info); \
+ FREE_VAR (reg_dummy); \
+ FREE_VAR (reg_info_dummy); \
+ } while (0)
+#else /* not REGEX_MALLOC */
+/* Some MIPS systems (at least) want this to free alloca'd storage. */
+#define FREE_VARIABLES() alloca (0)
+#endif /* not REGEX_MALLOC */
+
+
+/* These values must meet several constraints. They must not be valid
+ register values; since we have a limit of 255 registers (because
+ we use only one byte in the pattern for the register number), we can
+ use numbers larger than 255. They must differ by 1, because of
+ NUM_FAILURE_ITEMS above. And the value for the lowest register must
+ be larger than the value for the highest register, so we do not try
+ to actually save any registers when none are active. */
+#define NO_HIGHEST_ACTIVE_REG (1 << BYTEWIDTH)
+#define NO_LOWEST_ACTIVE_REG (NO_HIGHEST_ACTIVE_REG + 1)
+
+/* Matching routines. */
+
+#ifndef emacs /* Emacs never uses this. */
+/* re_match is like re_match_2 except it takes only a single string. */
+
+int
+re_match (bufp, string, size, pos, regs)
+ struct re_pattern_buffer *bufp;
+ const char *string;
+ int size, pos;
+ struct re_registers *regs;
+ {
+ return re_match_2 (bufp, NULL, 0, string, size, pos, regs, size);
+}
+#endif /* not emacs */
+
+
+/* re_match_2 matches the compiled pattern in BUFP against the
+ the (virtual) concatenation of STRING1 and STRING2 (of length SIZE1
+ and SIZE2, respectively). We start matching at POS, and stop
+ matching at STOP.
+
+ If REGS is non-null and the `no_sub' field of BUFP is nonzero, we
+ store offsets for the substring each group matched in REGS. See the
+ documentation for exactly how many groups we fill.
+
+ We return -1 if no match, -2 if an internal error (such as the
+ failure stack overflowing). Otherwise, we return the length of the
+ matched substring. */
+
+int
+re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+ struct re_pattern_buffer *bufp;
+ const char *string1, *string2;
+ int size1, size2;
+ int pos;
+ struct re_registers *regs;
+ int stop;
+{
+ /* General temporaries. */
+ int mcnt;
+ unsigned char *p1;
+
+ /* Just past the end of the corresponding string. */
+ const char *end1, *end2;
+
+ /* Pointers into string1 and string2, just past the last characters in
+ each to consider matching. */
+ const char *end_match_1, *end_match_2;
+
+ /* Where we are in the data, and the end of the current string. */
+ const char *d, *dend;
+
+ /* Where we are in the pattern, and the end of the pattern. */
+ unsigned char *p = bufp->buffer;
+ register unsigned char *pend = p + bufp->used;
+
+ /* We use this to map every character in the string. */
+ char *translate = bufp->translate;
+
+ /* Failure point stack. Each place that can handle a failure further
+ down the line pushes a failure point on this stack. It consists of
+ restart, regend, and reg_info for all registers corresponding to
+ the subexpressions we're currently inside, plus the number of such
+ registers, and, finally, two char *'s. The first char * is where
+ to resume scanning the pattern; the second one is where to resume
+ scanning the strings. If the latter is zero, the failure point is
+ a ``dummy''; if a failure happens and the failure point is a dummy,
+ it gets discarded and the next next one is tried. */
+ fail_stack_type fail_stack;
+#ifdef DEBUG
+ static unsigned failure_id = 0;
+ unsigned nfailure_points_pushed = 0, nfailure_points_popped = 0;
+#endif
+
+ /* We fill all the registers internally, independent of what we
+ return, for use in backreferences. The number here includes
+ an element for register zero. */
+ unsigned num_regs = bufp->re_nsub + 1;
+
+ /* The currently active registers. */
+ unsigned lowest_active_reg = NO_LOWEST_ACTIVE_REG;
+ unsigned highest_active_reg = NO_HIGHEST_ACTIVE_REG;
+
+ /* Information on the contents of registers. These are pointers into
+ the input strings; they record just what was matched (on this
+ attempt) by a subexpression part of the pattern, that is, the
+ regnum-th regstart pointer points to where in the pattern we began
+ matching and the regnum-th regend points to right after where we
+ stopped matching the regnum-th subexpression. (The zeroth register
+ keeps track of what the whole pattern matches.) */
+ const char **regstart, **regend;
+
+ /* If a group that's operated upon by a repetition operator fails to
+ match anything, then the register for its start will need to be
+ restored because it will have been set to wherever in the string we
+ are when we last see its open-group operator. Similarly for a
+ register's end. */
+ const char **old_regstart, **old_regend;
+
+ /* The is_active field of reg_info helps us keep track of which (possibly
+ nested) subexpressions we are currently in. The matched_something
+ field of reg_info[reg_num] helps us tell whether or not we have
+ matched any of the pattern so far this time through the reg_num-th
+ subexpression. These two fields get reset each time through any
+ loop their register is in. */
+ register_info_type *reg_info;
+
+ /* The following record the register info as found in the above
+ variables when we find a match better than any we've seen before.
+ This happens as we backtrack through the failure points, which in
+ turn happens only if we have not yet matched the entire string. */
+ unsigned best_regs_set = false;
+ const char **best_regstart, **best_regend;
+
+ /* Logically, this is `best_regend[0]'. But we don't want to have to
+ allocate space for that if we're not allocating space for anything
+ else (see below). Also, we never need info about register 0 for
+ any of the other register vectors, and it seems rather a kludge to
+ treat `best_regend' differently than the rest. So we keep track of
+ the end of the best match so far in a separate variable. We
+ initialize this to NULL so that when we backtrack the first time
+ and need to test it, it's not garbage. */
+ const char *match_end = NULL;
+
+ /* Used when we pop values we don't care about. */
+ const char **reg_dummy;
+ register_info_type *reg_info_dummy;
+
+#ifdef DEBUG
+ /* Counts the total number of registers pushed. */
+ unsigned num_regs_pushed = 0;
+#endif
+
+ DEBUG_PRINT1 ("\n\nEntering re_match_2.\n");
+
+ INIT_FAIL_STACK ();
+
+ /* Do not bother to initialize all the register variables if there are
+ no groups in the pattern, as it takes a fair amount of time. If
+ there are groups, we include space for register 0 (the whole
+ pattern), even though we never use it, since it simplifies the
+ array indexing. We should fix this. */
+ if (bufp->re_nsub)
+ {
+ regstart = REGEX_TALLOC (num_regs, const char *);
+ regend = REGEX_TALLOC (num_regs, const char *);
+ old_regstart = REGEX_TALLOC (num_regs, const char *);
+ old_regend = REGEX_TALLOC (num_regs, const char *);
+ best_regstart = REGEX_TALLOC (num_regs, const char *);
+ best_regend = REGEX_TALLOC (num_regs, const char *);
+ reg_info = REGEX_TALLOC (num_regs, register_info_type);
+ reg_dummy = REGEX_TALLOC (num_regs, const char *);
+ reg_info_dummy = REGEX_TALLOC (num_regs, register_info_type);
+
+ if (!(regstart && regend && old_regstart && old_regend && reg_info
+ && best_regstart && best_regend && reg_dummy && reg_info_dummy))
+ {
+ FREE_VARIABLES ();
+ return -2;
+ }
+ }
+#ifdef REGEX_MALLOC
+ else
+ {
+ /* We must initialize all our variables to NULL, so that
+ `FREE_VARIABLES' doesn't try to free them. */
+ regstart = regend = old_regstart = old_regend = best_regstart
+ = best_regend = reg_dummy = NULL;
+ reg_info = reg_info_dummy = (register_info_type *) NULL;
+ }
+#endif /* REGEX_MALLOC */
+
+ /* The starting position is bogus. */
+ if (pos < 0 || pos > size1 + size2)
+ {
+ FREE_VARIABLES ();
+ return -1;
+ }
+
+ /* Initialize subexpression text positions to -1 to mark ones that no
+ start_memory/stop_memory has been seen for. Also initialize the
+ register information struct. */
+ for (mcnt = 1; mcnt < num_regs; mcnt++)
+ {
+ regstart[mcnt] = regend[mcnt]
+ = old_regstart[mcnt] = old_regend[mcnt] = REG_UNSET_VALUE;
+
+ REG_MATCH_NULL_STRING_P (reg_info[mcnt]) = MATCH_NULL_UNSET_VALUE;
+ IS_ACTIVE (reg_info[mcnt]) = 0;
+ MATCHED_SOMETHING (reg_info[mcnt]) = 0;
+ EVER_MATCHED_SOMETHING (reg_info[mcnt]) = 0;
+ }
+
+ /* We move `string1' into `string2' if the latter's empty -- but not if
+ `string1' is null. */
+ if (size2 == 0 && string1 != NULL)
+ {
+ string2 = string1;
+ size2 = size1;
+ string1 = 0;
+ size1 = 0;
+ }
+ end1 = string1 + size1;
+ end2 = string2 + size2;
+
+ /* Compute where to stop matching, within the two strings. */
+ if (stop <= size1)
+ {
+ end_match_1 = string1 + stop;
+ end_match_2 = string2;
+ }
+ else
+ {
+ end_match_1 = end1;
+ end_match_2 = string2 + stop - size1;
+ }
+
+ /* `p' scans through the pattern as `d' scans through the data.
+ `dend' is the end of the input string that `d' points within. `d'
+ is advanced into the following input string whenever necessary, but
+ this happens before fetching; therefore, at the beginning of the
+ loop, `d' can be pointing at the end of a string, but it cannot
+ equal `string2'. */
+ if (size1 > 0 && pos <= size1)
+ {
+ d = string1 + pos;
+ dend = end_match_1;
+ }
+ else
+ {
+ d = string2 + pos - size1;
+ dend = end_match_2;
+ }
+
+ DEBUG_PRINT1 ("The compiled pattern is: ");
+ DEBUG_PRINT_COMPILED_PATTERN (bufp, p, pend);
+ DEBUG_PRINT1 ("The string to match is: `");
+ DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
+ DEBUG_PRINT1 ("'\n");
+
+ /* This loops over pattern commands. It exits by returning from the
+ function if the match is complete, or it drops through if the match
+ fails at this starting point in the input data. */
+ for (;;)
+ {
+ DEBUG_PRINT2 ("\n0x%x: ", p);
+
+ if (p == pend)
+ { /* End of pattern means we might have succeeded. */
+ DEBUG_PRINT1 ("end of pattern ... ");
+
+ /* If we haven't matched the entire string, and we want the
+ longest match, try backtracking. */
+ if (d != end_match_2)
+ {
+ DEBUG_PRINT1 ("backtracking.\n");
+
+ if (!FAIL_STACK_EMPTY ())
+ { /* More failure points to try. */
+ boolean same_str_p = (FIRST_STRING_P (match_end)
+ == MATCHING_IN_FIRST_STRING);
+
+ /* If exceeds best match so far, save it. */
+ if (!best_regs_set
+ || (same_str_p && d > match_end)
+ || (!same_str_p && !MATCHING_IN_FIRST_STRING))
+ {
+ best_regs_set = true;
+ match_end = d;
+
+ DEBUG_PRINT1 ("\nSAVING match as best so far.\n");
+
+ for (mcnt = 1; mcnt < num_regs; mcnt++)
+ {
+ best_regstart[mcnt] = regstart[mcnt];
+ best_regend[mcnt] = regend[mcnt];
+ }
+ }
+ goto fail;
+ }
+
+ /* If no failure points, don't restore garbage. */
+ else if (best_regs_set)
+ {
+ restore_best_regs:
+ /* Restore best match. It may happen that `dend ==
+ end_match_1' while the restored d is in string2.
+ For example, the pattern `x.*y.*z' against the
+ strings `x-' and `y-z-', if the two strings are
+ not consecutive in memory. */
+ DEBUG_PRINT1 ("Restoring best registers.\n");
+
+ d = match_end;
+ dend = ((d >= string1 && d <= end1)
+ ? end_match_1 : end_match_2);
+
+ for (mcnt = 1; mcnt < num_regs; mcnt++)
+ {
+ regstart[mcnt] = best_regstart[mcnt];
+ regend[mcnt] = best_regend[mcnt];
+ }
+ }
+ } /* d != end_match_2 */
+
+ DEBUG_PRINT1 ("Accepting match.\n");
+
+ /* If caller wants register contents data back, do it. */
+ if (regs && !bufp->no_sub)
+ {
+ /* Have the register data arrays been allocated? */
+ if (bufp->regs_allocated == REGS_UNALLOCATED)
+ { /* No. So allocate them with malloc. We need one
+ extra element beyond `num_regs' for the `-1' marker
+ GNU code uses. */
+ regs->num_regs = MAX (RE_NREGS, num_regs + 1);
+ regs->start = TALLOC (regs->num_regs, regoff_t);
+ regs->end = TALLOC (regs->num_regs, regoff_t);
+ if (regs->start == NULL || regs->end == NULL)
+ return -2;
+ bufp->regs_allocated = REGS_REALLOCATE;
+ }
+ else if (bufp->regs_allocated == REGS_REALLOCATE)
+ { /* Yes. If we need more elements than were already
+ allocated, reallocate them. If we need fewer, just
+ leave it alone. */
+ if (regs->num_regs < num_regs + 1)
+ {
+ regs->num_regs = num_regs + 1;
+ RETALLOC (regs->start, regs->num_regs, regoff_t);
+ RETALLOC (regs->end, regs->num_regs, regoff_t);
+ if (regs->start == NULL || regs->end == NULL)
+ return -2;
+ }
+ }
+ else
+ assert (bufp->regs_allocated == REGS_FIXED);
+
+ /* Convert the pointer data in `regstart' and `regend' to
+ indices. Register zero has to be set differently,
+ since we haven't kept track of any info for it. */
+ if (regs->num_regs > 0)
+ {
+ regs->start[0] = pos;
+ regs->end[0] = (MATCHING_IN_FIRST_STRING ? d - string1
+ : d - string2 + size1);
+ }
+
+ /* Go through the first `min (num_regs, regs->num_regs)'
+ registers, since that is all we initialized. */
+ for (mcnt = 1; mcnt < MIN (num_regs, regs->num_regs); mcnt++)
+ {
+ if (REG_UNSET (regstart[mcnt]) || REG_UNSET (regend[mcnt]))
+ regs->start[mcnt] = regs->end[mcnt] = -1;
+ else
+ {
+ regs->start[mcnt] = POINTER_TO_OFFSET (regstart[mcnt]);
+ regs->end[mcnt] = POINTER_TO_OFFSET (regend[mcnt]);
+ }
+ }
+
+ /* If the regs structure we return has more elements than
+ were in the pattern, set the extra elements to -1. If
+ we (re)allocated the registers, this is the case,
+ because we always allocate enough to have at least one
+ -1 at the end. */
+ for (mcnt = num_regs; mcnt < regs->num_regs; mcnt++)
+ regs->start[mcnt] = regs->end[mcnt] = -1;
+ } /* regs && !bufp->no_sub */
+
+ FREE_VARIABLES ();
+ DEBUG_PRINT4 ("%u failure points pushed, %u popped (%u remain).\n",
+ nfailure_points_pushed, nfailure_points_popped,
+ nfailure_points_pushed - nfailure_points_popped);
+ DEBUG_PRINT2 ("%u registers pushed.\n", num_regs_pushed);
+
+ mcnt = d - pos - (MATCHING_IN_FIRST_STRING
+ ? string1
+ : string2 - size1);
+
+ DEBUG_PRINT2 ("Returning %d from re_match_2.\n", mcnt);
+
+ return mcnt;
+ }
+
+ /* Otherwise match next pattern command. */
+#ifdef SWITCH_ENUM_BUG
+ switch ((int) ((re_opcode_t) *p++))
+#else
+ switch ((re_opcode_t) *p++)
+#endif
+ {
+ /* Ignore these. Used to ignore the n of succeed_n's which
+ currently have n == 0. */
+ case no_op:
+ DEBUG_PRINT1 ("EXECUTING no_op.\n");
+ break;
+
+
+ /* Match the next n pattern characters exactly. The following
+ byte in the pattern defines n, and the n bytes after that
+ are the characters to match. */
+ case exactn:
+ mcnt = *p++;
+ DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt);
+
+ /* This is written out as an if-else so we don't waste time
+ testing `translate' inside the loop. */
+ if (translate)
+ {
+ do
+ {
+ PREFETCH ();
+ if (translate[(unsigned char) *d++] != (char) *p++)
+ goto fail;
+ }
+ while (--mcnt);
+ }
+ else
+ {
+ do
+ {
+ PREFETCH ();
+ if (*d++ != (char) *p++) goto fail;
+ }
+ while (--mcnt);
+ }
+ SET_REGS_MATCHED ();
+ break;
+
+
+ /* Match any character except possibly a newline or a null. */
+ case anychar:
+ DEBUG_PRINT1 ("EXECUTING anychar.\n");
+
+ PREFETCH ();
+
+ if ((!(bufp->syntax & RE_DOT_NEWLINE) && TRANSLATE (*d) == '\n')
+ || (bufp->syntax & RE_DOT_NOT_NULL && TRANSLATE (*d) == '\000'))
+ goto fail;
+
+ SET_REGS_MATCHED ();
+ DEBUG_PRINT2 (" Matched `%d'.\n", *d);
+ d++;
+ break;
+
+
+ case charset:
+ case charset_not:
+ {
+ register unsigned char c;
+ boolean not = (re_opcode_t) *(p - 1) == charset_not;
+
+ DEBUG_PRINT2 ("EXECUTING charset%s.\n", not ? "_not" : "");
+
+ PREFETCH ();
+ c = TRANSLATE (*d); /* The character to match. */
+
+ /* Cast to `unsigned' instead of `unsigned char' in case the
+ bit list is a full 32 bytes long. */
+ if (c < (unsigned) (*p * BYTEWIDTH)
+ && p[1 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
+ not = !not;
+
+ p += 1 + *p;
+
+ if (!not) goto fail;
+
+ SET_REGS_MATCHED ();
+ d++;
+ break;
+ }
+
+
+ /* The beginning of a group is represented by start_memory.
+ The arguments are the register number in the next byte, and the
+ number of groups inner to this one in the next. The text
+ matched within the group is recorded (in the internal
+ registers data structure) under the register number. */
+ case start_memory:
+ DEBUG_PRINT3 ("EXECUTING start_memory %d (%d):\n", *p, p[1]);
+
+ /* Find out if this group can match the empty string. */
+ p1 = p; /* To send to group_match_null_string_p. */
+
+ if (REG_MATCH_NULL_STRING_P (reg_info[*p]) == MATCH_NULL_UNSET_VALUE)
+ REG_MATCH_NULL_STRING_P (reg_info[*p])
+ = group_match_null_string_p (&p1, pend, reg_info);
+
+ /* Save the position in the string where we were the last time
+ we were at this open-group operator in case the group is
+ operated upon by a repetition operator, e.g., with `(a*)*b'
+ against `ab'; then we want to ignore where we are now in
+ the string in case this attempt to match fails. */
+ old_regstart[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
+ ? REG_UNSET (regstart[*p]) ? d : regstart[*p]
+ : regstart[*p];
+ DEBUG_PRINT2 (" old_regstart: %d\n",
+ POINTER_TO_OFFSET (old_regstart[*p]));
+
+ regstart[*p] = d;
+ DEBUG_PRINT2 (" regstart: %d\n", POINTER_TO_OFFSET (regstart[*p]));
+
+ IS_ACTIVE (reg_info[*p]) = 1;
+ MATCHED_SOMETHING (reg_info[*p]) = 0;
+
+ /* This is the new highest active register. */
+ highest_active_reg = *p;
+
+ /* If nothing was active before, this is the new lowest active
+ register. */
+ if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
+ lowest_active_reg = *p;
+
+ /* Move past the register number and inner group count. */
+ p += 2;
+ break;
+
+
+ /* The stop_memory opcode represents the end of a group. Its
+ arguments are the same as start_memory's: the register
+ number, and the number of inner groups. */
+ case stop_memory:
+ DEBUG_PRINT3 ("EXECUTING stop_memory %d (%d):\n", *p, p[1]);
+
+ /* We need to save the string position the last time we were at
+ this close-group operator in case the group is operated
+ upon by a repetition operator, e.g., with `((a*)*(b*)*)*'
+ against `aba'; then we want to ignore where we are now in
+ the string in case this attempt to match fails. */
+ old_regend[*p] = REG_MATCH_NULL_STRING_P (reg_info[*p])
+ ? REG_UNSET (regend[*p]) ? d : regend[*p]
+ : regend[*p];
+ DEBUG_PRINT2 (" old_regend: %d\n",
+ POINTER_TO_OFFSET (old_regend[*p]));
+
+ regend[*p] = d;
+ DEBUG_PRINT2 (" regend: %d\n", POINTER_TO_OFFSET (regend[*p]));
+
+ /* This register isn't active anymore. */
+ IS_ACTIVE (reg_info[*p]) = 0;
+
+ /* If this was the only register active, nothing is active
+ anymore. */
+ if (lowest_active_reg == highest_active_reg)
+ {
+ lowest_active_reg = NO_LOWEST_ACTIVE_REG;
+ highest_active_reg = NO_HIGHEST_ACTIVE_REG;
+ }
+ else
+ { /* We must scan for the new highest active register, since
+ it isn't necessarily one less than now: consider
+ (a(b)c(d(e)f)g). When group 3 ends, after the f), the
+ new highest active register is 1. */
+ unsigned char r = *p - 1;
+ while (r > 0 && !IS_ACTIVE (reg_info[r]))
+ r--;
+
+ /* If we end up at register zero, that means that we saved
+ the registers as the result of an `on_failure_jump', not
+ a `start_memory', and we jumped to past the innermost
+ `stop_memory'. For example, in ((.)*) we save
+ registers 1 and 2 as a result of the *, but when we pop
+ back to the second ), we are at the stop_memory 1.
+ Thus, nothing is active. */
+ if (r == 0)
+ {
+ lowest_active_reg = NO_LOWEST_ACTIVE_REG;
+ highest_active_reg = NO_HIGHEST_ACTIVE_REG;
+ }
+ else
+ highest_active_reg = r;
+ }
+
+ /* If just failed to match something this time around with a
+ group that's operated on by a repetition operator, try to
+ force exit from the ``loop'', and restore the register
+ information for this group that we had before trying this
+ last match. */
+ if ((!MATCHED_SOMETHING (reg_info[*p])
+ || (re_opcode_t) p[-3] == start_memory)
+ && (p + 2) < pend)
+ {
+ boolean is_a_jump_n = false;
+
+ p1 = p + 2;
+ mcnt = 0;
+ switch ((re_opcode_t) *p1++)
+ {
+ case jump_n:
+ is_a_jump_n = true;
+ case pop_failure_jump:
+ case maybe_pop_jump:
+ case jump:
+ case dummy_failure_jump:
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ if (is_a_jump_n)
+ p1 += 2;
+ break;
+
+ default:
+ /* do nothing */ ;
+ }
+ p1 += mcnt;
+
+ /* If the next operation is a jump backwards in the pattern
+ to an on_failure_jump right before the start_memory
+ corresponding to this stop_memory, exit from the loop
+ by forcing a failure after pushing on the stack the
+ on_failure_jump's jump in the pattern, and d. */
+ if (mcnt < 0 && (re_opcode_t) *p1 == on_failure_jump
+ && (re_opcode_t) p1[3] == start_memory && p1[4] == *p)
+ {
+ /* If this group ever matched anything, then restore
+ what its registers were before trying this last
+ failed match, e.g., with `(a*)*b' against `ab' for
+ regstart[1], and, e.g., with `((a*)*(b*)*)*'
+ against `aba' for regend[3].
+
+ Also restore the registers for inner groups for,
+ e.g., `((a*)(b*))*' against `aba' (register 3 would
+ otherwise get trashed). */
+
+ if (EVER_MATCHED_SOMETHING (reg_info[*p]))
+ {
+ unsigned r;
+
+ EVER_MATCHED_SOMETHING (reg_info[*p]) = 0;
+
+ /* Restore this and inner groups' (if any) registers. */
+ for (r = *p; r < *p + *(p + 1); r++)
+ {
+ regstart[r] = old_regstart[r];
+
+ /* xx why this test? */
+ if ((int) old_regend[r] >= (int) regstart[r])
+ regend[r] = old_regend[r];
+ }
+ }
+ p1++;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ PUSH_FAILURE_POINT (p1 + mcnt, d, -2);
+
+ goto fail;
+ }
+ }
+
+ /* Move past the register number and the inner group count. */
+ p += 2;
+ break;
+
+
+ /* \<digit> has been turned into a `duplicate' command which is
+ followed by the numeric value of <digit> as the register number. */
+ case duplicate:
+ {
+ register const char *d2, *dend2;
+ int regno = *p++; /* Get which register to match against. */
+ DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
+
+ /* Can't back reference a group which we've never matched. */
+ if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
+ goto fail;
+
+ /* Where in input to try to start matching. */
+ d2 = regstart[regno];
+
+ /* Where to stop matching; if both the place to start and
+ the place to stop matching are in the same string, then
+ set to the place to stop, otherwise, for now have to use
+ the end of the first string. */
+
+ dend2 = ((FIRST_STRING_P (regstart[regno])
+ == FIRST_STRING_P (regend[regno]))
+ ? regend[regno] : end_match_1);
+ for (;;)
+ {
+ /* If necessary, advance to next segment in register
+ contents. */
+ while (d2 == dend2)
+ {
+ if (dend2 == end_match_2) break;
+ if (dend2 == regend[regno]) break;
+
+ /* End of string1 => advance to string2. */
+ d2 = string2;
+ dend2 = regend[regno];
+ }
+ /* At end of register contents => success */
+ if (d2 == dend2) break;
+
+ /* If necessary, advance to next segment in data. */
+ PREFETCH ();
+
+ /* How many characters left in this segment to match. */
+ mcnt = dend - d;
+
+ /* Want how many consecutive characters we can match in
+ one shot, so, if necessary, adjust the count. */
+ if (mcnt > dend2 - d2)
+ mcnt = dend2 - d2;
+
+ /* Compare that many; failure if mismatch, else move
+ past them. */
+ if (translate
+ ? bcmp_translate (d, d2, mcnt, translate)
+ : bcmp (d, d2, mcnt))
+ goto fail;
+ d += mcnt, d2 += mcnt;
+ }
+ }
+ break;
+
+
+ /* begline matches the empty string at the beginning of the string
+ (unless `not_bol' is set in `bufp'), and, if
+ `newline_anchor' is set, after newlines. */
+ case begline:
+ DEBUG_PRINT1 ("EXECUTING begline.\n");
+
+ if (AT_STRINGS_BEG (d))
+ {
+ if (!bufp->not_bol) break;
+ }
+ else if (d[-1] == '\n' && bufp->newline_anchor)
+ {
+ break;
+ }
+ /* In all other cases, we fail. */
+ goto fail;
+
+
+ /* endline is the dual of begline. */
+ case endline:
+ DEBUG_PRINT1 ("EXECUTING endline.\n");
+
+ if (AT_STRINGS_END (d))
+ {
+ if (!bufp->not_eol) break;
+ }
+
+ /* We have to ``prefetch'' the next character. */
+ else if ((d == end1 ? *string2 : *d) == '\n'
+ && bufp->newline_anchor)
+ {
+ break;
+ }
+ goto fail;
+
+
+ /* Match at the very beginning of the data. */
+ case begbuf:
+ DEBUG_PRINT1 ("EXECUTING begbuf.\n");
+ if (AT_STRINGS_BEG (d))
+ break;
+ goto fail;
+
+
+ /* Match at the very end of the data. */
+ case endbuf:
+ DEBUG_PRINT1 ("EXECUTING endbuf.\n");
+ if (AT_STRINGS_END (d))
+ break;
+ goto fail;
+
+
+ /* on_failure_keep_string_jump is used to optimize `.*\n'. It
+ pushes NULL as the value for the string on the stack. Then
+ `pop_failure_point' will keep the current value for the
+ string, instead of restoring it. To see why, consider
+ matching `foo\nbar' against `.*\n'. The .* matches the foo;
+ then the . fails against the \n. But the next thing we want
+ to do is match the \n against the \n; if we restored the
+ string value, we would be back at the foo.
+
+ Because this is used only in specific cases, we don't need to
+ check all the things that `on_failure_jump' does, to make
+ sure the right things get saved on the stack. Hence we don't
+ share its code. The only reason to push anything on the
+ stack at all is that otherwise we would have to change
+ `anychar's code to do something besides goto fail in this
+ case; that seems worse than this. */
+ case on_failure_keep_string_jump:
+ DEBUG_PRINT1 ("EXECUTING on_failure_keep_string_jump");
+
+ EXTRACT_NUMBER_AND_INCR (mcnt, p);
+ DEBUG_PRINT3 (" %d (to 0x%x):\n", mcnt, p + mcnt);
+
+ PUSH_FAILURE_POINT (p + mcnt, NULL, -2);
+ break;
+
+
+ /* Uses of on_failure_jump:
+
+ Each alternative starts with an on_failure_jump that points
+ to the beginning of the next alternative. Each alternative
+ except the last ends with a jump that in effect jumps past
+ the rest of the alternatives. (They really jump to the
+ ending jump of the following alternative, because tensioning
+ these jumps is a hassle.)
+
+ Repeats start with an on_failure_jump that points past both
+ the repetition text and either the following jump or
+ pop_failure_jump back to this on_failure_jump. */
+ case on_failure_jump:
+ on_failure:
+ DEBUG_PRINT1 ("EXECUTING on_failure_jump");
+
+ EXTRACT_NUMBER_AND_INCR (mcnt, p);
+ DEBUG_PRINT3 (" %d (to 0x%x)", mcnt, p + mcnt);
+
+ /* If this on_failure_jump comes right before a group (i.e.,
+ the original * applied to a group), save the information
+ for that group and all inner ones, so that if we fail back
+ to this point, the group's information will be correct.
+ For example, in \(a*\)*\1, we need the preceding group,
+ and in \(\(a*\)b*\)\2, we need the inner group. */
+
+ /* We can't use `p' to check ahead because we push
+ a failure point to `p + mcnt' after we do this. */
+ p1 = p;
+
+ /* We need to skip no_op's before we look for the
+ start_memory in case this on_failure_jump is happening as
+ the result of a completed succeed_n, as in \(a\)\{1,3\}b\1
+ against aba. */
+ while (p1 < pend && (re_opcode_t) *p1 == no_op)
+ p1++;
+
+ if (p1 < pend && (re_opcode_t) *p1 == start_memory)
+ {
+ /* We have a new highest active register now. This will
+ get reset at the start_memory we are about to get to,
+ but we will have saved all the registers relevant to
+ this repetition op, as described above. */
+ highest_active_reg = *(p1 + 1) + *(p1 + 2);
+ if (lowest_active_reg == NO_LOWEST_ACTIVE_REG)
+ lowest_active_reg = *(p1 + 1);
+ }
+
+ DEBUG_PRINT1 (":\n");
+ PUSH_FAILURE_POINT (p + mcnt, d, -2);
+ break;
+
+
+ /* A smart repeat ends with `maybe_pop_jump'.
+ We change it to either `pop_failure_jump' or `jump'. */
+ case maybe_pop_jump:
+ EXTRACT_NUMBER_AND_INCR (mcnt, p);
+ DEBUG_PRINT2 ("EXECUTING maybe_pop_jump %d.\n", mcnt);
+ {
+ register unsigned char *p2 = p;
+
+ /* Compare the beginning of the repeat with what in the
+ pattern follows its end. If we can establish that there
+ is nothing that they would both match, i.e., that we
+ would have to backtrack because of (as in, e.g., `a*a')
+ then we can change to pop_failure_jump, because we'll
+ never have to backtrack.
+
+ This is not true in the case of alternatives: in
+ `(a|ab)*' we do need to backtrack to the `ab' alternative
+ (e.g., if the string was `ab'). But instead of trying to
+ detect that here, the alternative has put on a dummy
+ failure point which is what we will end up popping. */
+
+ /* Skip over open/close-group commands. */
+ while (p2 + 2 < pend
+ && ((re_opcode_t) *p2 == stop_memory
+ || (re_opcode_t) *p2 == start_memory))
+ p2 += 3; /* Skip over args, too. */
+
+ /* If we're at the end of the pattern, we can change. */
+ if (p2 == pend)
+ {
+ /* Consider what happens when matching ":\(.*\)"
+ against ":/". I don't really understand this code
+ yet. */
+ p[-3] = (unsigned char) pop_failure_jump;
+ DEBUG_PRINT1
+ (" End of pattern: change to `pop_failure_jump'.\n");
+ }
+
+ else if ((re_opcode_t) *p2 == exactn
+ || (bufp->newline_anchor && (re_opcode_t) *p2 == endline))
+ {
+ register unsigned char c
+ = *p2 == (unsigned char) endline ? '\n' : p2[2];
+ p1 = p + mcnt;
+
+ /* p1[0] ... p1[2] are the `on_failure_jump' corresponding
+ to the `maybe_finalize_jump' of this case. Examine what
+ follows. */
+ if ((re_opcode_t) p1[3] == exactn && p1[5] != c)
+ {
+ p[-3] = (unsigned char) pop_failure_jump;
+ DEBUG_PRINT3 (" %c != %c => pop_failure_jump.\n",
+ c, p1[5]);
+ }
+
+ else if ((re_opcode_t) p1[3] == charset
+ || (re_opcode_t) p1[3] == charset_not)
+ {
+ int not = (re_opcode_t) p1[3] == charset_not;
+
+ if (c < (unsigned char) (p1[4] * BYTEWIDTH)
+ && p1[5 + c / BYTEWIDTH] & (1 << (c % BYTEWIDTH)))
+ not = !not;
+
+ /* `not' is equal to 1 if c would match, which means
+ that we can't change to pop_failure_jump. */
+ if (!not)
+ {
+ p[-3] = (unsigned char) pop_failure_jump;
+ DEBUG_PRINT1 (" No match => pop_failure_jump.\n");
+ }
+ }
+ }
+ }
+ p -= 2; /* Point at relative address again. */
+ if ((re_opcode_t) p[-1] != pop_failure_jump)
+ {
+ p[-1] = (unsigned char) jump;
+ DEBUG_PRINT1 (" Match => jump.\n");
+ goto unconditional_jump;
+ }
+ /* Note fall through. */
+
+
+ /* The end of a simple repeat has a pop_failure_jump back to
+ its matching on_failure_jump, where the latter will push a
+ failure point. The pop_failure_jump takes off failure
+ points put on by this pop_failure_jump's matching
+ on_failure_jump; we got through the pattern to here from the
+ matching on_failure_jump, so didn't fail. */
+ case pop_failure_jump:
+ {
+ /* We need to pass separate storage for the lowest and
+ highest registers, even though we don't care about the
+ actual values. Otherwise, we will restore only one
+ register from the stack, since lowest will == highest in
+ `pop_failure_point'. */
+ unsigned dummy_low_reg, dummy_high_reg;
+ unsigned char *pdummy;
+ const char *sdummy;
+
+ DEBUG_PRINT1 ("EXECUTING pop_failure_jump.\n");
+ POP_FAILURE_POINT (sdummy, pdummy,
+ dummy_low_reg, dummy_high_reg,
+ reg_dummy, reg_dummy, reg_info_dummy);
+ }
+ /* Note fall through. */
+
+
+ /* Unconditionally jump (without popping any failure points). */
+ case jump:
+ unconditional_jump:
+ EXTRACT_NUMBER_AND_INCR (mcnt, p); /* Get the amount to jump. */
+ DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
+ p += mcnt; /* Do the jump. */
+ DEBUG_PRINT2 ("(to 0x%x).\n", p);
+ break;
+
+
+ /* We need this opcode so we can detect where alternatives end
+ in `group_match_null_string_p' et al. */
+ case jump_past_alt:
+ DEBUG_PRINT1 ("EXECUTING jump_past_alt.\n");
+ goto unconditional_jump;
+
+
+ /* Normally, the on_failure_jump pushes a failure point, which
+ then gets popped at pop_failure_jump. We will end up at
+ pop_failure_jump, also, and with a pattern of, say, `a+', we
+ are skipping over the on_failure_jump, so we have to push
+ something meaningless for pop_failure_jump to pop. */
+ case dummy_failure_jump:
+ DEBUG_PRINT1 ("EXECUTING dummy_failure_jump.\n");
+ /* It doesn't matter what we push for the string here. What
+ the code at `fail' tests is the value for the pattern. */
+ PUSH_FAILURE_POINT (0, 0, -2);
+ goto unconditional_jump;
+
+
+ /* At the end of an alternative, we need to push a dummy failure
+ point in case we are followed by a `pop_failure_jump', because
+ we don't want the failure point for the alternative to be
+ popped. For example, matching `(a|ab)*' against `aab'
+ requires that we match the `ab' alternative. */
+ case push_dummy_failure:
+ DEBUG_PRINT1 ("EXECUTING push_dummy_failure.\n");
+ /* See comments just above at `dummy_failure_jump' about the
+ two zeroes. */
+ PUSH_FAILURE_POINT (0, 0, -2);
+ break;
+
+ /* Have to succeed matching what follows at least n times.
+ After that, handle like `on_failure_jump'. */
+ case succeed_n:
+ EXTRACT_NUMBER (mcnt, p + 2);
+ DEBUG_PRINT2 ("EXECUTING succeed_n %d.\n", mcnt);
+
+ assert (mcnt >= 0);
+ /* Originally, this is how many times we HAVE to succeed. */
+ if (mcnt > 0)
+ {
+ mcnt--;
+ p += 2;
+ STORE_NUMBER_AND_INCR (p, mcnt);
+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p, mcnt);
+ }
+ else if (mcnt == 0)
+ {
+ DEBUG_PRINT2 (" Setting two bytes from 0x%x to no_op.\n", p+2);
+ p[2] = (unsigned char) no_op;
+ p[3] = (unsigned char) no_op;
+ goto on_failure;
+ }
+ break;
+
+ case jump_n:
+ EXTRACT_NUMBER (mcnt, p + 2);
+ DEBUG_PRINT2 ("EXECUTING jump_n %d.\n", mcnt);
+
+ /* Originally, this is how many times we CAN jump. */
+ if (mcnt)
+ {
+ mcnt--;
+ STORE_NUMBER (p + 2, mcnt);
+ goto unconditional_jump;
+ }
+ /* If don't have to jump any more, skip over the rest of command. */
+ else
+ p += 4;
+ break;
+
+ case set_number_at:
+ {
+ DEBUG_PRINT1 ("EXECUTING set_number_at.\n");
+
+ EXTRACT_NUMBER_AND_INCR (mcnt, p);
+ p1 = p + mcnt;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p);
+ DEBUG_PRINT3 (" Setting 0x%x to %d.\n", p1, mcnt);
+ STORE_NUMBER (p1, mcnt);
+ break;
+ }
+
+ case wordbound:
+ DEBUG_PRINT1 ("EXECUTING wordbound.\n");
+ if (AT_WORD_BOUNDARY (d))
+ break;
+ goto fail;
+
+ case notwordbound:
+ DEBUG_PRINT1 ("EXECUTING notwordbound.\n");
+ if (AT_WORD_BOUNDARY (d))
+ goto fail;
+ break;
+
+ case wordbeg:
+ DEBUG_PRINT1 ("EXECUTING wordbeg.\n");
+ if (WORDCHAR_P (d) && (AT_STRINGS_BEG (d) || !WORDCHAR_P (d - 1)))
+ break;
+ goto fail;
+
+ case wordend:
+ DEBUG_PRINT1 ("EXECUTING wordend.\n");
+ if (!AT_STRINGS_BEG (d) && WORDCHAR_P (d - 1)
+ && (!WORDCHAR_P (d) || AT_STRINGS_END (d)))
+ break;
+ goto fail;
+
+#ifdef emacs
+#ifdef emacs19
+ case before_dot:
+ DEBUG_PRINT1 ("EXECUTING before_dot.\n");
+ if (PTR_CHAR_POS ((unsigned char *) d) >= point)
+ goto fail;
+ break;
+
+ case at_dot:
+ DEBUG_PRINT1 ("EXECUTING at_dot.\n");
+ if (PTR_CHAR_POS ((unsigned char *) d) != point)
+ goto fail;
+ break;
+
+ case after_dot:
+ DEBUG_PRINT1 ("EXECUTING after_dot.\n");
+ if (PTR_CHAR_POS ((unsigned char *) d) <= point)
+ goto fail;
+ break;
+#else /* not emacs19 */
+ case at_dot:
+ DEBUG_PRINT1 ("EXECUTING at_dot.\n");
+ if (PTR_CHAR_POS ((unsigned char *) d) + 1 != point)
+ goto fail;
+ break;
+#endif /* not emacs19 */
+
+ case syntaxspec:
+ DEBUG_PRINT2 ("EXECUTING syntaxspec %d.\n", mcnt);
+ mcnt = *p++;
+ goto matchsyntax;
+
+ case wordchar:
+ DEBUG_PRINT1 ("EXECUTING Emacs wordchar.\n");
+ mcnt = (int) Sword;
+ matchsyntax:
+ PREFETCH ();
+ if (SYNTAX (*d++) != (enum syntaxcode) mcnt)
+ goto fail;
+ SET_REGS_MATCHED ();
+ break;
+
+ case notsyntaxspec:
+ DEBUG_PRINT2 ("EXECUTING notsyntaxspec %d.\n", mcnt);
+ mcnt = *p++;
+ goto matchnotsyntax;
+
+ case notwordchar:
+ DEBUG_PRINT1 ("EXECUTING Emacs notwordchar.\n");
+ mcnt = (int) Sword;
+ matchnotsyntax:
+ PREFETCH ();
+ if (SYNTAX (*d++) == (enum syntaxcode) mcnt)
+ goto fail;
+ SET_REGS_MATCHED ();
+ break;
+
+#else /* not emacs */
+ case wordchar:
+ DEBUG_PRINT1 ("EXECUTING non-Emacs wordchar.\n");
+ PREFETCH ();
+ if (!WORDCHAR_P (d))
+ goto fail;
+ SET_REGS_MATCHED ();
+ d++;
+ break;
+
+ case notwordchar:
+ DEBUG_PRINT1 ("EXECUTING non-Emacs notwordchar.\n");
+ PREFETCH ();
+ if (WORDCHAR_P (d))
+ goto fail;
+ SET_REGS_MATCHED ();
+ d++;
+ break;
+#endif /* not emacs */
+
+ default:
+ abort ();
+ }
+ continue; /* Successfully executed one pattern command; keep going. */
+
+
+ /* We goto here if a matching operation fails. */
+ fail:
+ if (!FAIL_STACK_EMPTY ())
+ { /* A restart point is known. Restore to that state. */
+ DEBUG_PRINT1 ("\nFAIL:\n");
+ POP_FAILURE_POINT (d, p,
+ lowest_active_reg, highest_active_reg,
+ regstart, regend, reg_info);
+
+ /* If this failure point is a dummy, try the next one. */
+ if (!p)
+ goto fail;
+
+ /* If we failed to the end of the pattern, don't examine *p. */
+ assert (p <= pend);
+ if (p < pend)
+ {
+ boolean is_a_jump_n = false;
+
+ /* If failed to a backwards jump that's part of a repetition
+ loop, need to pop this failure point and use the next one. */
+ switch ((re_opcode_t) *p)
+ {
+ case jump_n:
+ is_a_jump_n = true;
+ case maybe_pop_jump:
+ case pop_failure_jump:
+ case jump:
+ p1 = p + 1;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ p1 += mcnt;
+
+ if ((is_a_jump_n && (re_opcode_t) *p1 == succeed_n)
+ || (!is_a_jump_n
+ && (re_opcode_t) *p1 == on_failure_jump))
+ goto fail;
+ break;
+ default:
+ /* do nothing */ ;
+ }
+ }
+
+ if (d >= string1 && d <= end1)
+ dend = end_match_1;
+ }
+ else
+ break; /* Matching at this starting point really fails. */
+ } /* for (;;) */
+
+ if (best_regs_set)
+ goto restore_best_regs;
+
+ FREE_VARIABLES ();
+
+ return -1; /* Failure to match. */
+} /* re_match_2 */
+
+/* Subroutine definitions for re_match_2. */
+
+
+/* We are passed P pointing to a register number after a start_memory.
+
+ Return true if the pattern up to the corresponding stop_memory can
+ match the empty string, and false otherwise.
+
+ If we find the matching stop_memory, sets P to point to one past its number.
+ Otherwise, sets P to an undefined byte less than or equal to END.
+
+ We don't handle duplicates properly (yet). */
+
+static boolean
+group_match_null_string_p (p, end, reg_info)
+ unsigned char **p, *end;
+ register_info_type *reg_info;
+{
+ int mcnt;
+ /* Point to after the args to the start_memory. */
+ unsigned char *p1 = *p + 2;
+
+ while (p1 < end)
+ {
+ /* Skip over opcodes that can match nothing, and return true or
+ false, as appropriate, when we get to one that can't, or to the
+ matching stop_memory. */
+
+ switch ((re_opcode_t) *p1)
+ {
+ /* Could be either a loop or a series of alternatives. */
+ case on_failure_jump:
+ p1++;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+
+ /* If the next operation is not a jump backwards in the
+ pattern. */
+
+ if (mcnt >= 0)
+ {
+ /* Go through the on_failure_jumps of the alternatives,
+ seeing if any of the alternatives cannot match nothing.
+ The last alternative starts with only a jump,
+ whereas the rest start with on_failure_jump and end
+ with a jump, e.g., here is the pattern for `a|b|c':
+
+ /on_failure_jump/0/6/exactn/1/a/jump_past_alt/0/6
+ /on_failure_jump/0/6/exactn/1/b/jump_past_alt/0/3
+ /exactn/1/c
+
+ So, we have to first go through the first (n-1)
+ alternatives and then deal with the last one separately. */
+
+
+ /* Deal with the first (n-1) alternatives, which start
+ with an on_failure_jump (see above) that jumps to right
+ past a jump_past_alt. */
+
+ while ((re_opcode_t) p1[mcnt-3] == jump_past_alt)
+ {
+ /* `mcnt' holds how many bytes long the alternative
+ is, including the ending `jump_past_alt' and
+ its number. */
+
+ if (!alt_match_null_string_p (p1, p1 + mcnt - 3,
+ reg_info))
+ return false;
+
+ /* Move to right after this alternative, including the
+ jump_past_alt. */
+ p1 += mcnt;
+
+ /* Break if it's the beginning of an n-th alternative
+ that doesn't begin with an on_failure_jump. */
+ if ((re_opcode_t) *p1 != on_failure_jump)
+ break;
+
+ /* Still have to check that it's not an n-th
+ alternative that starts with an on_failure_jump. */
+ p1++;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ if ((re_opcode_t) p1[mcnt-3] != jump_past_alt)
+ {
+ /* Get to the beginning of the n-th alternative. */
+ p1 -= 3;
+ break;
+ }
+ }
+
+ /* Deal with the last alternative: go back and get number
+ of the `jump_past_alt' just before it. `mcnt' contains
+ the length of the alternative. */
+ EXTRACT_NUMBER (mcnt, p1 - 2);
+
+ if (!alt_match_null_string_p (p1, p1 + mcnt, reg_info))
+ return false;
+
+ p1 += mcnt; /* Get past the n-th alternative. */
+ } /* if mcnt > 0 */
+ break;
+
+
+ case stop_memory:
+ assert (p1[1] == **p);
+ *p = p1 + 2;
+ return true;
+
+
+ default:
+ if (!common_op_match_null_string_p (&p1, end, reg_info))
+ return false;
+ }
+ } /* while p1 < end */
+
+ return false;
+} /* group_match_null_string_p */
+
+
+/* Similar to group_match_null_string_p, but doesn't deal with alternatives:
+ It expects P to be the first byte of a single alternative and END one
+ byte past the last. The alternative can contain groups. */
+
+static boolean
+alt_match_null_string_p (p, end, reg_info)
+ unsigned char *p, *end;
+ register_info_type *reg_info;
+{
+ int mcnt;
+ unsigned char *p1 = p;
+
+ while (p1 < end)
+ {
+ /* Skip over opcodes that can match nothing, and break when we get
+ to one that can't. */
+
+ switch ((re_opcode_t) *p1)
+ {
+ /* It's a loop. */
+ case on_failure_jump:
+ p1++;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ p1 += mcnt;
+ break;
+
+ default:
+ if (!common_op_match_null_string_p (&p1, end, reg_info))
+ return false;
+ }
+ } /* while p1 < end */
+
+ return true;
+} /* alt_match_null_string_p */
+
+
+/* Deals with the ops common to group_match_null_string_p and
+ alt_match_null_string_p.
+
+ Sets P to one after the op and its arguments, if any. */
+
+static boolean
+common_op_match_null_string_p (p, end, reg_info)
+ unsigned char **p, *end;
+ register_info_type *reg_info;
+{
+ int mcnt;
+ boolean ret;
+ int reg_no;
+ unsigned char *p1 = *p;
+
+ switch ((re_opcode_t) *p1++)
+ {
+ case no_op:
+ case begline:
+ case endline:
+ case begbuf:
+ case endbuf:
+ case wordbeg:
+ case wordend:
+ case wordbound:
+ case notwordbound:
+#ifdef emacs
+ case before_dot:
+ case at_dot:
+ case after_dot:
+#endif
+ break;
+
+ case start_memory:
+ reg_no = *p1;
+ assert (reg_no > 0 && reg_no <= MAX_REGNUM);
+ ret = group_match_null_string_p (&p1, end, reg_info);
+
+ /* Have to set this here in case we're checking a group which
+ contains a group and a back reference to it. */
+
+ if (REG_MATCH_NULL_STRING_P (reg_info[reg_no]) == MATCH_NULL_UNSET_VALUE)
+ REG_MATCH_NULL_STRING_P (reg_info[reg_no]) = ret;
+
+ if (!ret)
+ return false;
+ break;
+
+ /* If this is an optimized succeed_n for zero times, make the jump. */
+ case jump:
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ if (mcnt >= 0)
+ p1 += mcnt;
+ else
+ return false;
+ break;
+
+ case succeed_n:
+ /* Get to the number of times to succeed. */
+ p1 += 2;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+
+ if (mcnt == 0)
+ {
+ p1 -= 4;
+ EXTRACT_NUMBER_AND_INCR (mcnt, p1);
+ p1 += mcnt;
+ }
+ else
+ return false;
+ break;
+
+ case duplicate:
+ if (!REG_MATCH_NULL_STRING_P (reg_info[*p1]))
+ return false;
+ break;
+
+ case set_number_at:
+ p1 += 4;
+
+ default:
+ /* All other opcodes mean we cannot match the empty string. */
+ return false;
+ }
+
+ *p = p1;
+ return true;
+} /* common_op_match_null_string_p */
+
+
+/* Return zero if TRANSLATE[S1] and TRANSLATE[S2] are identical for LEN
+ bytes; nonzero otherwise. */
+
+static int
+bcmp_translate (s1, s2, len, translate)
+ unsigned char *s1, *s2;
+ register int len;
+ char *translate;
+{
+ register unsigned char *p1 = s1, *p2 = s2;
+ while (len)
+ {
+ if (translate[*p1++] != translate[*p2++]) return 1;
+ len--;
+ }
+ return 0;
+}
+
+/* Entry points for GNU code. */
+
+/* re_compile_pattern is the GNU regular expression compiler: it
+ compiles PATTERN (of length SIZE) and puts the result in BUFP.
+ Returns 0 if the pattern was valid, otherwise an error string.
+
+ Assumes the `allocated' (and perhaps `buffer') and `translate' fields
+ are set in BUFP on entry.
+
+ We call regex_compile to do the actual compilation. */
+
+const char *
+re_compile_pattern (pattern, length, bufp)
+ const char *pattern;
+ int length;
+ struct re_pattern_buffer *bufp;
+{
+ reg_errcode_t ret;
+
+ /* GNU code is written to assume at least RE_NREGS registers will be set
+ (and at least one extra will be -1). */
+ bufp->regs_allocated = REGS_UNALLOCATED;
+
+ /* And GNU code determines whether or not to get register information
+ by passing null for the REGS argument to re_match, etc., not by
+ setting no_sub. */
+ bufp->no_sub = 0;
+
+ /* Match anchors at newline. */
+ bufp->newline_anchor = 1;
+
+ ret = regex_compile (pattern, length, re_syntax_options, bufp);
+
+ return re_error_msg[(int) ret];
+}
+
+/* Entry points compatible with 4.2 BSD regex library. We don't define
+ them if this is an Emacs or POSIX compilation. */
+
+#if !defined (emacs) && !defined (_POSIX_SOURCE)
+
+/* BSD has one and only one pattern buffer. */
+static struct re_pattern_buffer re_comp_buf;
+
+char *
+re_comp (s)
+ const char *s;
+{
+ reg_errcode_t ret;
+
+ if (!s)
+ {
+ if (!re_comp_buf.buffer)
+ return "No previous regular expression";
+ return 0;
+ }
+
+ if (!re_comp_buf.buffer)
+ {
+ re_comp_buf.buffer = (unsigned char *) malloc (200);
+ if (re_comp_buf.buffer == NULL)
+ return "Memory exhausted";
+ re_comp_buf.allocated = 200;
+
+ re_comp_buf.fastmap = (char *) malloc (1 << BYTEWIDTH);
+ if (re_comp_buf.fastmap == NULL)
+ return "Memory exhausted";
+ }
+
+ /* Since `re_exec' always passes NULL for the `regs' argument, we
+ don't need to initialize the pattern buffer fields which affect it. */
+
+ /* Match anchors at newlines. */
+ re_comp_buf.newline_anchor = 1;
+
+ ret = regex_compile (s, strlen (s), re_syntax_options, &re_comp_buf);
+
+ /* Yes, we're discarding `const' here. */
+ return (char *) re_error_msg[(int) ret];
+}
+
+
+int
+re_exec (s)
+ const char *s;
+{
+ const int len = strlen (s);
+ return
+ 0 <= re_search (&re_comp_buf, s, len, 0, len, (struct re_registers *) 0);
+}
+#endif /* not emacs and not _POSIX_SOURCE */
+
+/* POSIX.2 functions. Don't define these for Emacs. */
+
+#ifndef emacs
+
+/* regcomp takes a regular expression as a string and compiles it.
+
+ PREG is a regex_t *. We do not expect any fields to be initialized,
+ since POSIX says we shouldn't. Thus, we set
+
+ `buffer' to the compiled pattern;
+ `used' to the length of the compiled pattern;
+ `syntax' to RE_SYNTAX_POSIX_EXTENDED if the
+ REG_EXTENDED bit in CFLAGS is set; otherwise, to
+ RE_SYNTAX_POSIX_BASIC;
+ `newline_anchor' to REG_NEWLINE being set in CFLAGS;
+ `fastmap' and `fastmap_accurate' to zero;
+ `re_nsub' to the number of subexpressions in PATTERN.
+
+ PATTERN is the address of the pattern string.
+
+ CFLAGS is a series of bits which affect compilation.
+
+ If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
+ use POSIX basic syntax.
+
+ If REG_NEWLINE is set, then . and [^...] don't match newline.
+ Also, regexec will try a match beginning after every newline.
+
+ If REG_ICASE is set, then we considers upper- and lowercase
+ versions of letters to be equivalent when matching.
+
+ If REG_NOSUB is set, then when PREG is passed to regexec, that
+ routine will report only success or failure, and nothing about the
+ registers.
+
+ It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for
+ the return codes and their meanings.) */
+
+int
+regcomp (preg, pattern, cflags)
+ regex_t *preg;
+ const char *pattern;
+ int cflags;
+{
+ reg_errcode_t ret;
+ unsigned syntax
+ = (cflags & REG_EXTENDED) ?
+ RE_SYNTAX_POSIX_EXTENDED : RE_SYNTAX_POSIX_BASIC;
+
+ /* regex_compile will allocate the space for the compiled pattern. */
+ preg->buffer = 0;
+ preg->allocated = 0;
+
+ /* Don't bother to use a fastmap when searching. This simplifies the
+ REG_NEWLINE case: if we used a fastmap, we'd have to put all the
+ characters after newlines into the fastmap. This way, we just try
+ every character. */
+ preg->fastmap = 0;
+
+ if (cflags & REG_ICASE)
+ {
+ unsigned i;
+
+ preg->translate = (char *) malloc (CHAR_SET_SIZE);
+ if (preg->translate == NULL)
+ return (int) REG_ESPACE;
+
+ /* Map uppercase characters to corresponding lowercase ones. */
+ for (i = 0; i < CHAR_SET_SIZE; i++)
+ preg->translate[i] = ISUPPER (i) ? tolower (i) : i;
+ }
+ else
+ preg->translate = NULL;
+
+ /* If REG_NEWLINE is set, newlines are treated differently. */
+ if (cflags & REG_NEWLINE)
+ { /* REG_NEWLINE implies neither . nor [^...] match newline. */
+ syntax &= ~RE_DOT_NEWLINE;
+ syntax |= RE_HAT_LISTS_NOT_NEWLINE;
+ /* It also changes the matching behavior. */
+ preg->newline_anchor = 1;
+ }
+ else
+ preg->newline_anchor = 0;
+
+ preg->no_sub = !!(cflags & REG_NOSUB);
+
+ /* POSIX says a null character in the pattern terminates it, so we
+ can use strlen here in compiling the pattern. */
+ ret = regex_compile (pattern, strlen (pattern), syntax, preg);
+
+ /* POSIX doesn't distinguish between an unmatched open-group and an
+ unmatched close-group: both are REG_EPAREN. */
+ if (ret == REG_ERPAREN) ret = REG_EPAREN;
+
+ return (int) ret;
+}
+
+
+/* regexec searches for a given pattern, specified by PREG, in the
+ string STRING.
+
+ If NMATCH is zero or REG_NOSUB was set in the cflags argument to
+ `regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at
+ least NMATCH elements, and we set them to the offsets of the
+ corresponding matched substrings.
+
+ EFLAGS specifies `execution flags' which affect matching: if
+ REG_NOTBOL is set, then ^ does not match at the beginning of the
+ string; if REG_NOTEOL is set, then $ does not match at the end.
+
+ We return 0 if we find a match and REG_NOMATCH if not. */
+
+int
+regexec (preg, string, nmatch, pmatch, eflags)
+ const regex_t *preg;
+ const char *string;
+ size_t nmatch;
+ regmatch_t pmatch[];
+ int eflags;
+{
+ int ret;
+ struct re_registers regs;
+ regex_t private_preg;
+ int len = strlen (string);
+ boolean want_reg_info = !preg->no_sub && nmatch > 0;
+
+ private_preg = *preg;
+
+ private_preg.not_bol = !!(eflags & REG_NOTBOL);
+ private_preg.not_eol = !!(eflags & REG_NOTEOL);
+
+ /* The user has told us exactly how many registers to return
+ information about, via `nmatch'. We have to pass that on to the
+ matching routines. */
+ private_preg.regs_allocated = REGS_FIXED;
+
+ if (want_reg_info)
+ {
+ regs.num_regs = nmatch;
+ regs.start = TALLOC (nmatch, regoff_t);
+ regs.end = TALLOC (nmatch, regoff_t);
+ if (regs.start == NULL || regs.end == NULL)
+ return (int) REG_NOMATCH;
+ }
+
+ /* Perform the searching operation. */
+ ret = re_search (&private_preg, string, len,
+ /* start: */ 0, /* range: */ len,
+ want_reg_info ? ®s : (struct re_registers *) 0);
+
+ /* Copy the register information to the POSIX structure. */
+ if (want_reg_info)
+ {
+ if (ret >= 0)
+ {
+ unsigned r;
+
+ for (r = 0; r < nmatch; r++)
+ {
+ pmatch[r].rm_so = regs.start[r];
+ pmatch[r].rm_eo = regs.end[r];
+ }
+ }
+
+ /* If we needed the temporary register info, free the space now. */
+ free (regs.start);
+ free (regs.end);
+ }
+
+ /* We want zero return to mean success, unlike `re_search'. */
+ return ret >= 0 ? (int) REG_NOERROR : (int) REG_NOMATCH;
+}
+
+
+/* Returns a message corresponding to an error code, ERRCODE, returned
+ from either regcomp or regexec. We don't use PREG here. */
+
+size_t
+regerror (int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
+//regerror (errcode, preg, errbuf, errbuf_size)
+// int errcode;
+// const regex_t *preg;
+// char *errbuf;
+// size_t errbuf_size;
+{
+ const char *msg;
+ size_t msg_size;
+
+ if (errcode < 0
+ || errcode >= (sizeof (re_error_msg) / sizeof (re_error_msg[0])))
+ /* Only error codes returned by the rest of the code should be passed
+ to this routine. If we are given anything else, or if other regex
+ code generates an invalid error code, then the program has a bug.
+ Dump core so we can fix it. */
+ abort ();
+
+ msg = re_error_msg[errcode];
+
+ /* POSIX doesn't require that we do anything in this case, but why
+ not be nice. */
+ if (! msg)
+ msg = "Success";
+
+ msg_size = strlen (msg) + 1; /* Includes the null. */
+
+ if (errbuf_size != 0)
+ {
+ if (msg_size > errbuf_size)
+ {
+ strncpy (errbuf, msg, errbuf_size - 1);
+ errbuf[errbuf_size - 1] = 0;
+ }
+ else
+ strcpy (errbuf, msg);
+ }
+
+ return msg_size;
+}
+
+
+/* Free dynamically allocated space used by PREG. */
+
+void
+regfree (preg)
+ regex_t *preg;
+{
+ if (preg->buffer != NULL)
+ free (preg->buffer);
+ preg->buffer = NULL;
+
+ preg->allocated = 0;
+ preg->used = 0;
+
+ if (preg->fastmap != NULL)
+ free (preg->fastmap);
+ preg->fastmap = NULL;
+ preg->fastmap_accurate = 0;
+
+ if (preg->translate != NULL)
+ free (preg->translate);
+ preg->translate = NULL;
+}
+
+#endif /* not emacs */
+
+/*
+Local variables:
+make-backup-files: t
+version-control: t
+trim-versions-without-asking: nil
+End:
+*/
diff --git a/trunk/src/regex.h b/dev/src/regex.h
similarity index 100%
rename from trunk/src/regex.h
rename to dev/src/regex.h
diff --git a/dev/src/stl_helpers.hpp b/dev/src/stl_helpers.hpp
new file mode 100644
index 0000000..620db0c
--- /dev/null
+++ b/dev/src/stl_helpers.hpp
@@ -0,0 +1,129 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file stl_helpers.hpp
+ * Useful functions that take advantage of STL containers
+ */
+
+#ifndef GPSTK_STL_HELPERS_HPP
+#define GPSTK_STL_HELPERS_HPP
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#include <cmath>
+#include <algorithm>
+#include <list>
+
+namespace gpstk
+{
+ /** @defgroup datastructsgroup STL helpers */
+ //@{
+
+ /// A simple way to get the max value of a list of numbers
+ template<class For> For max(const std::list<For> lst)
+ {
+ return *max_element(lst.begin(), lst.end());
+ }
+
+ /// A simple way to get the minimum value of a list of numbers
+ template<class For> For min(const std::list<For> lst)
+ {
+ return *min_element(lst.begin(), lst.end());
+ }
+
+ /// ListStats (i.e. Statistics on a list of numbers)
+ template<class bt>
+ struct ListStats
+ {
+ /// number of items used in the statistics taking
+ unsigned n;
+ /// statistics values
+ bt mean, sigma, min, max;
+ /// constructor
+ ListStats():n(0),mean(0),sigma(0),min(0),max(0){};
+ };
+
+ /// Compute the statistics for a list of numbers.
+ /// This algorithm is written to be stable in computing the standard
+ /// deviation for sequences of number with a large mean value.
+ /// (i.e. it doesn't accumulate sum of the value squared.)
+ template<class bt> ListStats<bt> stats(const std::list<bt>& lst)
+ {
+ ListStats<bt> s;
+ bt sum=0, sumsq=0;
+
+ s.n = lst.size();
+ if (s.n<1)
+ return s;
+
+ typename std::list<bt>::const_iterator li;
+ li=lst.begin();
+ s.min = s.max = *li;
+ for(; li!=lst.end(); li++)
+ {
+ s.min = std::min(s.min, *li);
+ s.max = std::max(s.max, *li);
+ sum += *li;
+ }
+ s.mean = sum/s.n;
+
+ if (s.n<2)
+ return s;
+
+ for(li=lst.begin(); li!=lst.end(); li++)
+ {
+ bt z=*li-s.mean;
+ sumsq += z*z;
+ }
+
+ s.sigma = sqrt(sumsq/(s.n-1));
+
+ return s;
+ }
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/tests/ANSITime/ANSITime.cpp b/dev/tests/ANSITime/ANSITime.cpp
new file mode 120000
index 0000000..d49aa9d
--- /dev/null
+++ b/dev/tests/ANSITime/ANSITime.cpp
@@ -0,0 +1 @@
+../../src/ANSITime.cpp
\ No newline at end of file
diff --git a/dev/tests/ANSITime/ANSITime.hpp b/dev/tests/ANSITime/ANSITime.hpp
new file mode 120000
index 0000000..33fd981
--- /dev/null
+++ b/dev/tests/ANSITime/ANSITime.hpp
@@ -0,0 +1 @@
+../../src/ANSITime.hpp
\ No newline at end of file
diff --git a/dev/tests/ANSITime/Jamfile b/dev/tests/ANSITime/Jamfile
new file mode 100644
index 0000000..ebd37f3
--- /dev/null
+++ b/dev/tests/ANSITime/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP ANSITime ;
+TestMain ANSITime/xANSITime.tst : ANSITime/xANSITimeM.cpp ANSITime/xANSITime.cpp ANSITime/ANSITime.cpp ;
diff --git a/dev/tests/ANSITime/Logs/printfOutput b/dev/tests/ANSITime/Logs/printfOutput
new file mode 100644
index 0000000..b09955a
--- /dev/null
+++ b/dev/tests/ANSITime/Logs/printfOutput
@@ -0,0 +1,2 @@
+13500000
+0
diff --git a/dev/tests/ANSITime/xANSITime.cpp b/dev/tests/ANSITime/xANSITime.cpp
new file mode 100644
index 0000000..001210c
--- /dev/null
+++ b/dev/tests/ANSITime/xANSITime.cpp
@@ -0,0 +1,58 @@
+#include "xANSITime.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xANSITime);
+
+using namespace gpstk;
+
+void xANSITime :: setUp (void)
+{
+}
+
+void xANSITime :: setFromInfoTest (void)
+{
+ gpstk::ANSITime setFromInfo1;
+ gpstk::ANSITime setFromInfo2;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('K',"13500000"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('K');
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+}
+
+void xANSITime :: operatorTest (void)
+{
+
+ gpstk::ANSITime Compare(13500000);
+ gpstk::ANSITime LessThan(13400000);
+
+ gpstk::ANSITime CompareCopy(Compare);
+
+ gpstk::ANSITime CompareCopy2;
+ //Assignment
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThan);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThan < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThan));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThan);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThan <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThan);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+}
+
diff --git a/dev/tests/ANSITime/xANSITime.hpp b/dev/tests/ANSITime/xANSITime.hpp
new file mode 100644
index 0000000..96678c0
--- /dev/null
+++ b/dev/tests/ANSITime/xANSITime.hpp
@@ -0,0 +1,28 @@
+#ifndef XANSITIME_HPP
+#define XANSITIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "ANSITime.hpp"
+
+using namespace std;
+
+class xANSITime: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xANSITime);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/ANSITime/xANSITimeM.cpp b/dev/tests/ANSITime/xANSITimeM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/ANSITime/xANSITimeM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/BCEphemerisStore/BCEphemerisStore.cpp b/dev/tests/BCEphemerisStore/BCEphemerisStore.cpp
new file mode 120000
index 0000000..12aec85
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/BCEphemerisStore.cpp
@@ -0,0 +1 @@
+../../src/BCEphemerisStore.cpp
\ No newline at end of file
diff --git a/dev/tests/BCEphemerisStore/BCEphemerisStore.hpp b/dev/tests/BCEphemerisStore/BCEphemerisStore.hpp
new file mode 120000
index 0000000..6158015
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/BCEphemerisStore.hpp
@@ -0,0 +1 @@
+../../src/BCEphemerisStore.hpp
\ No newline at end of file
diff --git a/dev/tests/BCEphemerisStore/Checks/DumpData0.chk b/dev/tests/BCEphemerisStore/Checks/DumpData0.chk
new file mode 100644
index 0000000..7138230
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/DumpData0.chk
@@ -0,0 +1,4 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ Span is 01/31/2006 00:00:00 to 01/31/2006 22:00:00 with 41 entries.
diff --git a/dev/tests/BCEphemerisStore/Checks/DumpData1.chk b/dev/tests/BCEphemerisStore/Checks/DumpData1.chk
new file mode 100644
index 0000000..c59b097
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/DumpData1.chk
@@ -0,0 +1,49 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 15 entries.
+PRN 1 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 13 entries.
+PRN 15 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 13 entries.
+PRN 32 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/trunk/src/Makefile.am b/dev/tests/BCEphemerisStore/Checks/DumpData2.chk
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/BCEphemerisStore/Checks/DumpData2.chk
diff --git a/trunk/src/Makefile.am b/dev/tests/BCEphemerisStore/Checks/TestRinexDump.dmp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/BCEphemerisStore/Checks/TestRinexDump.dmp
diff --git a/dev/tests/BCEphemerisStore/Checks/addEphemerisTest.chk b/dev/tests/BCEphemerisStore/Checks/addEphemerisTest.chk
new file mode 100644
index 0000000..dfcb5e5
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/addEphemerisTest.chk
@@ -0,0 +1,5 @@
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Checks/addToListTest.chk b/dev/tests/BCEphemerisStore/Checks/addToListTest.chk
new file mode 100644
index 0000000..76f8863
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/addToListTest.chk
@@ -0,0 +1,1886 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x043 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+
+ CLOCK
+
+Bias T0: 3.41343693E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367689E+03 m**.5
+Motion correction: 4.34053794E-09 rad/sec
+Eccentricity: 6.32685330E-03
+Arg of perigee: -1.71098328E+00 rad
+Mean anomaly at epoch: 1.26681178E+00 rad
+Right ascension: -1.71526968E+00 rad -8.34177604E-09 rad/sec
+Inclination: 9.86356141E-01 rad 3.65729520E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.15968750E+02 m Cosine: 3.27531250E+02 m
+Inclination Sine: -1.17346644E-07 rad Cosine: -1.02445483E-07 rad
+In-track Sine: 3.52226198E-06 rad Cosine: 5.89340925E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 181806 Tue-2:02:30:06 0x044 0 off
+SF2 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+SF3 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+
+ CLOCK
+
+Bias T0: 3.41478735E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367755E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32700860E-03
+Arg of perigee: -1.71092165E+00 rad
+Mean anomaly at epoch: 2.31692691E+00 rad
+Right ascension: -1.71532878E+00 rad -8.11605235E-09 rad/sec
+Inclination: 9.86359782E-01 rad 3.52514684E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12937500E+02 m Cosine: 3.30625000E+02 m
+Inclination Sine: -6.70552254E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 3.17767262E-06 rad Cosine: 5.77233732E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 192216 Tue-2:05:23:36 0x259 0 off
+SF2 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+SF3 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+
+ CLOCK
+
+Bias T0: 3.41548584E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367874E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628636E-03
+Arg of perigee: -1.71094976E+00 rad
+Mean anomaly at epoch: -2.91838707E+00 rad
+Right ascension: -1.71538720E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362374E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x23F 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+
+ CLOCK
+
+Bias T0: 3.41618434E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367875E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628449E-03
+Arg of perigee: -1.71094881E+00 rad
+Mean anomaly at epoch: -2.91605436E+00 rad
+Right ascension: -1.71538734E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362375E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x15A 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+
+ CLOCK
+
+Bias T0: 3.41683626E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368112E+03 m**.5
+Motion correction: 4.14945856E-09 rad/sec
+Eccentricity: 6.32504828E-03
+Arg of perigee: -1.71103397E+00 rad
+Mean anomaly at epoch: -1.86812836E+00 rad
+Right ascension: -1.71544585E+00 rad -8.06569311E-09 rad/sec
+Inclination: 9.86365821E-01 rad 4.89306096E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06562500E+02 m Cosine: 3.13812500E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: 2.79396772E-08 rad
+In-track Sine: 4.02703881E-06 rad Cosine: 5.71832061E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Eph Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208446 Tue-2:09:54:06 0x073 0 off
+SF2 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+SF3 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.41916457E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367637E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467808E-03
+Arg of perigee: -1.71064445E+00 rad
+Mean anomaly at epoch: -8.18341978E-01 rad
+Right ascension: -1.71550465E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368594E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x15B 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+
+ CLOCK
+
+Bias T0: 3.41818668E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367640E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467505E-03
+Arg of perigee: -1.71064293E+00 rad
+Mean anomaly at epoch: -8.16009862E-01 rad
+Right ascension: -1.71550477E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368607E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x175 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+
+ CLOCK
+
+Bias T0: 3.42191197E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367680E+03 m**.5
+Motion correction: 4.14195824E-09 rad/sec
+Eccentricity: 6.32508728E-03
+Arg of perigee: -1.71080977E+00 rad
+Mean anomaly at epoch: 1.28450941E+00 rad
+Right ascension: -1.71562416E+00 rad -8.23998609E-09 rad/sec
+Inclination: 9.86376251E-01 rad 5.43236914E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.20250000E+02 m Cosine: 2.93375000E+02 m
+Inclination Sine: -1.11758709E-07 rad Cosine: -7.63684511E-08 rad
+In-track Sine: 5.04590571E-06 rad Cosine: 6.22309744E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x176 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+
+ CLOCK
+
+Bias T0: 3.42330895E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367810E+03 m**.5
+Motion correction: 3.95159317E-09 rad/sec
+Eccentricity: 6.32507459E-03
+Arg of perigee: -1.71069671E+00 rad
+Mean anomaly at epoch: 2.33457123E+00 rad
+Right ascension: -1.71568233E+00 rad -7.97497505E-09 rad/sec
+Inclination: 9.86381295E-01 rad 5.13592822E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.19093750E+02 m Cosine: 2.98875000E+02 m
+Inclination Sine: 0.00000000E+00 rad Cosine: 1.73225999E-07 rad
+In-track Sine: 4.85964119E-06 rad Cosine: 6.14114106E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x177 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+
+ CLOCK
+
+Bias T0: 3.42465937E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367751E+03 m**.5
+Motion correction: 3.94552149E-09 rad/sec
+Eccentricity: 6.32530451E-03
+Arg of perigee: -1.71075624E+00 rad
+Mean anomaly at epoch: -2.89838037E+00 rad
+Right ascension: -1.71573859E+00 rad -7.88925719E-09 rad/sec
+Inclination: 9.86384717E-01 rad 3.83230249E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.14312500E+02 m Cosine: 2.97218750E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -1.11758709E-08 rad
+In-track Sine: 5.05894423E-06 rad Cosine: 5.97164035E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x178 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+
+ CLOCK
+
+Bias T0: 3.42600979E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368125E+03 m**.5
+Motion correction: 3.94802159E-09 rad/sec
+Eccentricity: 6.32367632E-03
+Arg of perigee: -1.71094499E+00 rad
+Mean anomaly at epoch: -1.84801896E+00 rad
+Right ascension: -1.71579510E+00 rad -7.97426073E-09 rad/sec
+Inclination: 9.86386906E-01 rad 2.96440919E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.01968750E+02 m Cosine: 2.88843750E+02 m
+Inclination Sine: 6.33299351E-08 rad Cosine: 1.09896064E-07 rad
+In-track Sine: 5.53019345E-06 rad Cosine: 5.29736280E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Eph Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 250056 Tue-2:21:27:36 0x08D 0 off
+SF2 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+SF3 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+
+ CLOCK
+
+Bias T0: 3.42894346E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309169E-03
+Arg of perigee: -1.71055998E+00 rad
+Mean anomaly at epoch: -8.00563293E-01 rad
+Right ascension: -1.71585327E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388127E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x173 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.42740677E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309355E-03
+Arg of perigee: -1.71056065E+00 rad
+Mean anomaly at epoch: -7.98228821E-01 rad
+Right ascension: -1.71585343E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388094E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Eph Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x08E 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+
+ CLOCK
+
+Bias T0: 3.43038701E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367983E+03 m**.5
+Motion correction: 4.16553065E-09 rad/sec
+Eccentricity: 6.32479729E-03
+Arg of perigee: -1.71061566E+00 rad
+Mean anomaly at epoch: 2.49668417E-01 rad
+Right ascension: -1.71591282E+00 rad -8.23534304E-09 rad/sec
+Inclination: 9.86390525E-01 rad 3.76444252E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06718750E+02 m Cosine: 2.61562500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 6.87316060E-06 rad Cosine: 5.65685332E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x2AC 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+
+ CLOCK
+
+Bias T0: 5.58263157E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370760E+03 m**.5
+Motion correction: 4.95913514E-09 rad/sec
+Eccentricity: 9.35129554E-03
+Arg of perigee: 2.54594306E+00 rad
+Mean anomaly at epoch: -9.06095983E-02 rad
+Right ascension: 2.51239340E+00 rad -8.35570519E-09 rad/sec
+Inclination: 9.58205830E-01 rad -5.09306929E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.05000000E+01 m Cosine: 2.32312500E+02 m
+Inclination Sine: -8.19563866E-08 rad Cosine: 5.21540642E-08 rad
+In-track Sine: 7.47665763E-06 rad Cosine: -2.24076211E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x2AD 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+
+ CLOCK
+
+Bias T0: 5.58305997E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371153E+03 m**.5
+Motion correction: 4.84091593E-09 rad/sec
+Eccentricity: 9.35316086E-03
+Arg of perigee: 2.54603428E+00 rad
+Mean anomaly at epoch: 9.59460895E-01 rad
+Right ascension: 2.51233346E+00 rad -8.27070165E-09 rad/sec
+Inclination: 9.58202504E-01 rad -5.20021661E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.51562500E+01 m Cosine: 2.45906250E+02 m
+Inclination Sine: -3.53902578E-08 rad Cosine: 1.60187483E-07 rad
+In-track Sine: 6.79865479E-06 rad Cosine: -2.42330134E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 193626 Tue-2:05:47:06 0x2C4 0 off
+SF2 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+SF3 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58349304E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331150E-03
+Arg of perigee: 2.54596333E+00 rad
+Mean anomaly at epoch: 2.00735802E+00 rad
+Right ascension: 2.51227500E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198768E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x2AE 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+
+ CLOCK
+
+Bias T0: 5.58348838E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331290E-03
+Arg of perigee: 2.54596378E+00 rad
+Mean anomaly at epoch: 2.00969128E+00 rad
+Right ascension: 2.51227486E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198745E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1C5 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58392145E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370812E+03 m**.5
+Motion correction: 4.85734519E-09 rad/sec
+Eccentricity: 9.35426482E-03
+Arg of perigee: 2.54589149E+00 rad
+Mean anomaly at epoch: 3.05759168E+00 rad
+Right ascension: 2.51221588E+00 rad -8.14212487E-09 rad/sec
+Inclination: 9.58194788E-01 rad -5.32522182E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.34375000E+01 m Cosine: 2.56125000E+02 m
+Inclination Sine: 1.04308128E-07 rad Cosine: -2.23517418E-08 rad
+In-track Sine: 6.29760325E-06 rad Cosine: -2.15694308E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1C6 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58434986E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370631E+03 m**.5
+Motion correction: 4.91627621E-09 rad/sec
+Eccentricity: 9.35517496E-03
+Arg of perigee: 2.54592936E+00 rad
+Mean anomaly at epoch: -2.17313468E+00 rad
+Right ascension: 2.51215687E+00 rad -8.24570061E-09 rad/sec
+Inclination: 9.58190482E-01 rad -5.29307762E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.03125000E+01 m Cosine: 2.49781250E+02 m
+Inclination Sine: 8.94069672E-08 rad Cosine: -1.50874257E-07 rad
+In-track Sine: 6.75022602E-06 rad Cosine: -1.99861825E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x1C8 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+
+ CLOCK
+
+Bias T0: 5.58520667E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370721E+03 m**.5
+Motion correction: 4.94806325E-09 rad/sec
+Eccentricity: 9.35553596E-03
+Arg of perigee: 2.54590311E+00 rad
+Mean anomaly at epoch: -7.27814121E-02 rad
+Right ascension: 2.51203755E+00 rad -8.40392149E-09 rad/sec
+Inclination: 9.58182252E-01 rad -6.62527597E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.21875000E+01 m Cosine: 2.48468750E+02 m
+Inclination Sine: -1.37835741E-07 rad Cosine: 6.51925802E-08 rad
+In-track Sine: 6.81355596E-06 rad Cosine: -2.41957605E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0C9 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+
+ CLOCK
+
+Bias T0: 5.58563508E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371126E+03 m**.5
+Motion correction: 4.96199240E-09 rad/sec
+Eccentricity: 9.35740734E-03
+Arg of perigee: 2.54600791E+00 rad
+Mean anomaly at epoch: 9.77276156E-01 rad
+Right ascension: 2.51197711E+00 rad -8.37927760E-09 rad/sec
+Inclination: 9.58177516E-01 rad -6.83242746E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.54375000E+01 m Cosine: 2.62937500E+02 m
+Inclination Sine: -5.40167093E-08 rad Cosine: 1.19209290E-07 rad
+In-track Sine: 5.70528209E-06 rad Cosine: -2.64123082E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x3C4 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58606349E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371147E+03 m**.5
+Motion correction: 5.09914097E-09 rad/sec
+Eccentricity: 9.35770059E-03
+Arg of perigee: 2.54601763E+00 rad
+Mean anomaly at epoch: 2.02742773E+00 rad
+Right ascension: 2.51191656E+00 rad -8.39249244E-09 rad/sec
+Inclination: 9.58172632E-01 rad -6.30740559E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.35625000E+01 m Cosine: 2.67000000E+02 m
+Inclination Sine: 2.42143869E-08 rad Cosine: 1.99303031E-07 rad
+In-track Sine: 5.63822687E-06 rad Cosine: -2.02842057E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x2C5 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58649190E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370851E+03 m**.5
+Motion correction: 5.13557106E-09 rad/sec
+Eccentricity: 9.35899641E-03
+Arg of perigee: 2.54592152E+00 rad
+Mean anomaly at epoch: 3.07768774E+00 rad
+Right ascension: 2.51185522E+00 rad -8.28748806E-09 rad/sec
+Inclination: 9.58169255E-01 rad -4.05016871E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.60000000E+01 m Cosine: 2.75468750E+02 m
+Inclination Sine: 1.63912773E-07 rad Cosine: -7.07805157E-08 rad
+In-track Sine: 5.40725887E-06 rad Cosine: -1.72853470E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x2C6 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58691565E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370654E+03 m**.5
+Motion correction: 5.16735810E-09 rad/sec
+Eccentricity: 9.35994752E-03
+Arg of perigee: 2.54597027E+00 rad
+Mean anomaly at epoch: -2.15538154E+00 rad
+Right ascension: 2.51179534E+00 rad -8.36856287E-09 rad/sec
+Inclination: 9.58166043E-01 rad -3.85730353E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.37500000E+01 m Cosine: 2.68281250E+02 m
+Inclination Sine: 8.56816769E-08 rad Cosine: -1.97440386E-07 rad
+In-track Sine: 5.96605241E-06 rad Cosine: -1.59814954E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x2C7 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58734406E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370608E+03 m**.5
+Motion correction: 5.14592863E-09 rad/sec
+Eccentricity: 9.36006801E-03
+Arg of perigee: 2.54599571E+00 rad
+Mean anomaly at epoch: -1.10524073E+00 rad
+Right ascension: 2.51173364E+00 rad -8.51249744E-09 rad/sec
+Inclination: 9.58163270E-01 rad -2.69296932E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.57187500E+01 m Cosine: 2.67156250E+02 m
+Inclination Sine: -8.00937414E-08 rad Cosine: -5.96046448E-08 rad
+In-track Sine: 5.89340925E-06 rad Cosine: -2.13272870E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x1B4 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.11610459E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360316E+03 m**.5
+Motion correction: 4.39589739E-09 rad/sec
+Eccentricity: 8.71090021E-03
+Arg of perigee: 1.29523927E+00 rad
+Mean anomaly at epoch: -2.23653823E+00 rad
+Right ascension: 3.07566662E-01 rad -7.75710883E-09 rad/sec
+Inclination: 9.44623504E-01 rad 1.08933109E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -6.76875000E+01 m Cosine: 1.15000000E+02 m
+Inclination Sine: -9.31322575E-08 rad Cosine: 1.21071935E-07 rad
+In-track Sine: 1.32359564E-05 rad Cosine: -3.53716314E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x1B5 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+
+ CLOCK
+
+Bias T0: 2.11857259E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360674E+03 m**.5
+Motion correction: 4.54197491E-09 rad/sec
+Eccentricity: 8.71113362E-03
+Arg of perigee: 1.29501397E+00 rad
+Mean anomaly at epoch: -1.18609024E+00 rad
+Right ascension: 3.07510597E-01 rad -8.09319426E-09 rad/sec
+Inclination: 9.44622470E-01 rad -5.00020828E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.28750000E+01 m Cosine: 1.30031250E+02 m
+Inclination Sine: 2.40281224E-07 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 1.24983490E-05 rad Cosine: -3.84636223E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x1B6 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+
+ CLOCK
+
+Bias T0: 2.12104060E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360359E+03 m**.5
+Motion correction: 4.66233706E-09 rad/sec
+Eccentricity: 8.70950485E-03
+Arg of perigee: 1.29508260E+00 rad
+Mean anomaly at epoch: -1.35935973E-01 rad
+Right ascension: 3.07451598E-01 rad -8.18676958E-09 rad/sec
+Inclination: 9.44622210E-01 rad 1.42863094E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.65312500E+01 m Cosine: 1.33937500E+02 m
+Inclination Sine: 1.09896064E-07 rad Cosine: -9.68575478E-08 rad
+In-track Sine: 1.23213977E-05 rad Cosine: -4.46103513E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Eph Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1B7 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+
+ CLOCK
+
+Bias T0: 2.12350860E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360806E+03 m**.5
+Motion correction: 4.60804909E-09 rad/sec
+Eccentricity: 8.71139602E-03
+Arg of perigee: 1.29526135E+00 rad
+Mean anomaly at epoch: 9.14109252E-01 rad
+Right ascension: 3.07393065E-01 rad -8.17498338E-09 rad/sec
+Inclination: 9.44621932E-01 rad -6.39312344E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00750000E+02 m Cosine: 1.20312500E+02 m
+Inclination Sine: -1.11758709E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 1.31167471E-05 rad Cosine: -5.17070293E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1B8 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+
+ CLOCK
+
+Bias T0: 2.12597661E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360479E+03 m**.5
+Motion correction: 4.61126351E-09 rad/sec
+Eccentricity: 8.71198589E-03
+Arg of perigee: 1.29505117E+00 rad
+Mean anomaly at epoch: 1.96454133E+00 rad
+Right ascension: 3.07334399E-01 rad -7.96354600E-09 rad/sec
+Inclination: 9.44622565E-01 rad -4.64305054E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00281250E+02 m Cosine: 1.02875000E+02 m
+Inclination Sine: -2.12341547E-07 rad Cosine: 5.58793545E-09 rad
+In-track Sine: 1.37276947E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Eph Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 219786 Tue-2:13:03:06 0x0CE 0 off
+SF2 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+SF3 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+
+ CLOCK
+
+Bias T0: 2.13137828E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319743E-03
+Arg of perigee: 1.29534120E+00 rad
+Mean anomaly at epoch: -2.22082140E+00 rad
+Right ascension: 3.07220032E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623207E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x2B4 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.13091262E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319557E-03
+Arg of perigee: 1.29534135E+00 rad
+Mean anomaly at epoch: -2.21848770E+00 rad
+Right ascension: 3.07219892E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623209E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Eph Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0CF 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+
+ CLOCK
+
+Bias T0: 2.13384628E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360553E+03 m**.5
+Motion correction: 4.71126767E-09 rad/sec
+Eccentricity: 8.71346553E-03
+Arg of perigee: 1.29510646E+00 rad
+Mean anomaly at epoch: -1.17036120E+00 rad
+Right ascension: 3.07162875E-01 rad -8.14748223E-09 rad/sec
+Inclination: 9.44622831E-01 rad 5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.65312500E+01 m Cosine: 1.37875000E+02 m
+Inclination Sine: 2.23517418E-07 rad Cosine: -1.86264515E-08 rad
+In-track Sine: 1.22822821E-05 rad Cosine: -3.85381281E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x0D0 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+
+ CLOCK
+
+Bias T0: 2.13631429E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360266E+03 m**.5
+Motion correction: 4.72555398E-09 rad/sec
+Eccentricity: 8.71195330E-03
+Arg of perigee: 1.29516376E+00 rad
+Mean anomaly at epoch: -1.17860253E-01 rad
+Right ascension: 3.07103413E-01 rad -8.23248577E-09 rad/sec
+Inclination: 9.44622997E-01 rad 6.57170231E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.90312500E+01 m Cosine: 1.42281250E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: -1.04308128E-07 rad
+In-track Sine: 1.21705234E-05 rad Cosine: -4.79258597E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237666 Tue-2:18:01:06 0x0D1 0 off
+SF2 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+SF3 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+
+ CLOCK
+
+Bias T0: 2.13873573E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360660E+03 m**.5
+Motion correction: 4.58126226E-09 rad/sec
+Eccentricity: 8.71358160E-03
+Arg of perigee: 1.29532649E+00 rad
+Mean anomaly at epoch: 9.32201625E-01 rad
+Right ascension: 3.07044718E-01 rad -8.23534304E-09 rad/sec
+Inclination: 9.44622947E-01 rad -5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02281250E+02 m Cosine: 1.30906250E+02 m
+Inclination Sine: -5.77419996E-08 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 1.24275684E-05 rad Cosine: -5.36069274E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x0D2 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+
+ CLOCK
+
+Bias T0: 2.14120373E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360381E+03 m**.5
+Motion correction: 4.50054461E-09 rad/sec
+Eccentricity: 8.71415599E-03
+Arg of perigee: 1.29514812E+00 rad
+Mean anomaly at epoch: 1.98260220E+00 rad
+Right ascension: 3.06985642E-01 rad -8.02461997E-09 rad/sec
+Inclination: 9.44623629E-01 rad -3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02875000E+02 m Cosine: 1.15656250E+02 m
+Inclination Sine: -2.29105353E-07 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.31297857E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x0D3 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+
+ CLOCK
+
+Bias T0: 2.14362517E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360734E+03 m**.5
+Motion correction: 4.35768151E-09 rad/sec
+Eccentricity: 8.71229277E-03
+Arg of perigee: 1.29522530E+00 rad
+Mean anomaly at epoch: 3.03274719E+00 rad
+Right ascension: 3.06929331E-01 rad -7.84746974E-09 rad/sec
+Inclination: 9.44623928E-01 rad -8.82179603E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.73125000E+01 m Cosine: 1.10812500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.33030117E-05 rad Cosine: -4.45544720E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Checks/clearTest.chk b/dev/tests/BCEphemerisStore/Checks/clearTest.chk
new file mode 100644
index 0000000..e1dcfc7
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/clearTest.chk
@@ -0,0 +1,5 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Checks/editTest.chk b/dev/tests/BCEphemerisStore/Checks/editTest.chk
new file mode 100644
index 0000000..87b4198
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/editTest.chk
@@ -0,0 +1,33 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 9 entries.
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 15 has 8 entries.
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Checks/findEph1.chk b/dev/tests/BCEphemerisStore/Checks/findEph1.chk
new file mode 100644
index 0000000..e5b77d1
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/findEph1.chk
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Checks/findEph15.chk b/dev/tests/BCEphemerisStore/Checks/findEph15.chk
new file mode 100644
index 0000000..8ca404a
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/findEph15.chk
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Checks/findEph32.chk b/dev/tests/BCEphemerisStore/Checks/findEph32.chk
new file mode 100644
index 0000000..071d04c
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/findEph32.chk
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Checks/findNearTest.chk b/dev/tests/BCEphemerisStore/Checks/findNearTest.chk
new file mode 100644
index 0000000..c2311e3
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/findNearTest.chk
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Checks/findUserTest.chk b/dev/tests/BCEphemerisStore/Checks/findUserTest.chk
new file mode 100644
index 0000000..ff4a2dd
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/findUserTest.chk
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Checks/getPrnXvt1.chk b/dev/tests/BCEphemerisStore/Checks/getPrnXvt1.chk
new file mode 100644
index 0000000..e4c3bff
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/getPrnXvt1.chk
@@ -0,0 +1 @@
+x:(1.43293e+07, -2.70658e+06, -2.19986e+07), v:(354.696, 2812.26, -117.977), clk bias:3.42024e-05, clk drift:1.93268e-12
diff --git a/dev/tests/BCEphemerisStore/Checks/getPrnXvt15.chk b/dev/tests/BCEphemerisStore/Checks/getPrnXvt15.chk
new file mode 100644
index 0000000..ab2097d
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/getPrnXvt15.chk
@@ -0,0 +1 @@
+x:(1.46708e+07, 7.54272e+06, 2.07205e+07), v:(-2147.79, 1575.58, 902.848), clk bias:0.000558493, clk drift:5.91172e-12
diff --git a/dev/tests/BCEphemerisStore/Checks/getPrnXvt32.chk b/dev/tests/BCEphemerisStore/Checks/getPrnXvt32.chk
new file mode 100644
index 0000000..0b3c565
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/getPrnXvt32.chk
@@ -0,0 +1 @@
+x:(8.40859e+06, 1.71989e+07, -1.87307e+07), v:(-2248.12, -606.201, -1577.94), clk bias:2.12763e-05, clk drift:3.41061e-12
diff --git a/dev/tests/BCEphemerisStore/Checks/wiperTest.chk b/dev/tests/BCEphemerisStore/Checks/wiperTest.chk
new file mode 100644
index 0000000..31aca91
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/wiperTest.chk
@@ -0,0 +1,31 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 8 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 7 entries.
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Checks/wiperTest2.chk b/dev/tests/BCEphemerisStore/Checks/wiperTest2.chk
new file mode 100644
index 0000000..f90c2f7
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Checks/wiperTest2.chk
@@ -0,0 +1,8 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for prn 1 has 0 entries.
+ BCE map for prn 15 has 0 entries.
+ BCE map for prn 32 has 0 entries.
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Jamfile b/dev/tests/BCEphemerisStore/Jamfile
new file mode 100644
index 0000000..3d9b25a
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Jamfile
@@ -0,0 +1,4 @@
+SubDir TOP BCEphemerisStore ;
+
+TestMain BCEphemerisStore/xBCEphemerisStore.tst : BCEphemerisStore/xRinexEphemerisStoreM.cpp BCEphemerisStore/xRinexEphemerisStore.cpp BCEphemerisStore/BCEphemerisStore.cpp ;
+
diff --git a/dev/tests/BCEphemerisStore/Logs/DumpData.txt b/dev/tests/BCEphemerisStore/Logs/DumpData.txt
new file mode 100644
index 0000000..c59b097
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/DumpData.txt
@@ -0,0 +1,49 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 15 entries.
+PRN 1 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 13 entries.
+PRN 15 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 13 entries.
+PRN 32 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/DumpData0.txt b/dev/tests/BCEphemerisStore/Logs/DumpData0.txt
new file mode 100644
index 0000000..7138230
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/DumpData0.txt
@@ -0,0 +1,4 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ Span is 01/31/2006 00:00:00 to 01/31/2006 22:00:00 with 41 entries.
diff --git a/dev/tests/BCEphemerisStore/Logs/DumpData1.txt b/dev/tests/BCEphemerisStore/Logs/DumpData1.txt
new file mode 100644
index 0000000..c59b097
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/DumpData1.txt
@@ -0,0 +1,49 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 15 entries.
+PRN 1 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 13 entries.
+PRN 15 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 13 entries.
+PRN 32 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/trunk/src/Makefile.am b/dev/tests/BCEphemerisStore/Logs/DumpData2.txt
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/BCEphemerisStore/Logs/DumpData2.txt
diff --git a/dev/tests/BCEphemerisStore/Logs/TestRinex06.031NEW b/dev/tests/BCEphemerisStore/Logs/TestRinex06.031NEW
new file mode 100644
index 0000000..bac0a39
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/TestRinex06.031NEW
@@ -0,0 +1,347 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+fic2rin 07/10/2006 09:16:03 PGM / RUN BY / DATE
+ END OF HEADER
+ 1 06 1 31 2 0 0.0 .341343693435D-04 .193267624127D-11 .000000000000D+00
+ .670000000000D+02 .115968750000D+03 .434053794369D-08 .126681177927D+01
+ .589340925217D-05 .632685329765D-02 .352226197720D-05 .515367689323D+04
+ .180000000000D+06 -.102445483208D-06 -.171526967635D+01 -.117346644402D-06
+ .986356140504D+00 .327531250000D+03 -.171098328249D+01 -.834177603988D-08
+ .365729519817D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .670000000000D+02
+ .172806000000D+06 .400000000000D+01
+15 06 1 31 2 0 0.0 .558263156563D-03 .591171556152D-11 .000000000000D+00
+ .172000000000D+03 -.405000000000D+02 .495913513931D-08 -.906095982535D-01
+ -.224076211452D-05 .935129553545D-02 .747665762901D-05 .515370759583D+04
+ .180000000000D+06 .521540641785D-07 .251239340464D+01 -.819563865662D-07
+ .958205829645D+00 .232312500000D+03 .254594306232D+01 -.835570519152D-08
+ -.509306928964D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .684000000000D+03
+ .172806000000D+06 .400000000000D+01
+32 06 1 31 2 0 0.0 .211610458791D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.676875000000D+02 .439589739249D-08 -.223653823215D+01
+ -.353716313839D-05 .871090020519D-02 .132359564304D-04 .515360315704D+04
+ .180000000000D+06 .121071934700D-06 .307566661900D+00 -.931322574615D-07
+ .944623504252D+00 .115000000000D+03 .129523926775D+01 -.775710882900D-08
+ .108933108930D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .436000000000D+03
+ .172806000000D+06 .400000000000D+01
+ 0 06 1 31 2 0 0.0 .134724657983D-03 .115960574476D-10 .000000000000D+00
+ .890000000000D+02 -.476250000000D+02 .517342977983D-08 -.123175874797D+01
+ -.269524753094D-05 .745224312413D-02 .590272247791D-05 .515377070999D+04
+ .180000000000D+06 .614672899246D-07 .245581236493D+01 -.113621354103D-06
+ .951089754306D+00 .254656250000D+03 .135575912515D+00 -.841499337539D-08
+ -.359300680601D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.605359673500D-08 .890000000000D+02
+ .172806000000D+06 .400000000000D+01
+33 06 1 31 2 0 0.0 .492035411298D-03 .989075488178D-11 .000000000000D+00
+ .136000000000D+03 -.743437500000D+02 .465197948790D-08 -.152972249815D+01
+ -.396370887756D-05 .679594022222D-02 .129826366901D-04 .515367445946D+04
+ .180000000000D+06 .208616256714D-06 .261910760240D+00 .409781932831D-07
+ .937992873408D+00 .116843750000D+03 .104088405222D+01 -.799854745732D-08
+ .142863093678D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.419095158577D-08 .392000000000D+03
+ .172806000000D+06 .400000000000D+01
+ 1 06 1 31 4 0 0.0 .341478735209D-04 .193267624127D-11 .000000000000D+00
+ .680000000000D+02 .112937500000D+03 .425303429881D-08 .231692690748D+01
+ .577233731747D-05 .632700859569D-02 .317767262459D-05 .515367754555D+04
+ .187200000000D+06 .128522515297D-06 -.171532877970D+01 -.670552253723D-07
+ .986359781707D+00 .330625000000D+03 -.171092164536D+01 -.811605235187D-08
+ .352514683652D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .680000000000D+02
+ .180006000000D+06 .400000000000D+01
+15 06 1 31 4 0 0.0 .558305997401D-03 .591171556152D-11 .000000000000D+00
+ .173000000000D+03 -.451562500000D+02 .484091592929D-08 .959460894860D+00
+ -.242330133915D-05 .935316085815D-02 .679865479469D-05 .515371152878D+04
+ .187200000000D+06 .160187482834D-06 .251233346304D+01 -.353902578354D-07
+ .958202504432D+00 .245906250000D+03 .254603427966D+01 -.827070165078D-08
+ -.520021660989D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .685000000000D+03
+ .180006000000D+06 .400000000000D+01
+32 06 1 31 4 0 0.0 .211857259274D-04 .341060513165D-11 .000000000000D+00
+ .181000000000D+03 -.728750000000D+02 .454197490577D-08 -.118609023742D+01
+ -.384636223316D-05 .871113361791D-02 .124983489513D-04 .515360673523D+04
+ .187200000000D+06 -.745058059692D-08 .307510597028D+00 .240281224251D-06
+ .944622469969D+00 .130031250000D+03 .129501396667D+01 -.809319425688D-08
+ -.500020827875D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .437000000000D+03
+ .180006000000D+06 .400000000000D+01
+ 1 06 1 31 6 0 0.0 .341618433595D-04 .193267624127D-11 .000000000000D+00
+ .630000000000D+02 .112750000000D+03 .425553440295D-08 -.291605435972D+01
+ .586546957493D-05 .632628449239D-02 .357814133167D-05 .515367875481D+04
+ .194400000000D+06 .154599547386D-06 -.171538734177D+01 .484287738800D-07
+ .986362375461D+00 .323406250000D+03 -.171094881175D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .575000000000D+03
+ .187206000000D+06 .400000000000D+01
+15 06 1 31 6 0 0.0 .558348838240D-03 .591171556152D-11 .000000000000D+00
+ .174000000000D+03 -.489062500000D+02 .484555897984D-08 .200969128199D+01
+ -.245310366154D-05 .935331289656D-02 .662170350552D-05 .515371031952D+04
+ .194400000000D+06 .633299350739D-07 .251227486146D+01 .763684511185D-07
+ .958198744732D+00 .249906250000D+03 .254596378017D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .686000000000D+03
+ .187206000000D+06 .400000000000D+01
+32 06 1 31 6 0 0.0 .212104059756D-04 .341060513165D-11 .000000000000D+00
+ .182000000000D+03 -.865312500000D+02 .466233706220D-08 -.135935973227D+00
+ -.446103513241D-05 .870950485114D-02 .123213976622D-04 .515360359001D+04
+ .194400000000D+06 -.968575477600D-07 .307451597542D+00 .109896063805D-06
+ .944622209570D+00 .133937500000D+03 .129508259801D+01 -.818676958324D-08
+ .142863093678D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .438000000000D+03
+ .187206000000D+06 .400000000000D+01
+ 1 06 1 31 5 59 44.0 .341548584402D-04 .181898940355D-11 .000000000000D+00
+ .890000000000D+02 .112750000000D+03 .425553440295D-08 -.291838707330D+01
+ .586546957493D-05 .632628635503D-02 .357814133167D-05 .515367874336D+04
+ .194384000000D+06 .154599547386D-06 -.171538720133D+01 .484287738800D-07
+ .986362373998D+00 .323406250000D+03 -.171094975533D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .601000000000D+03
+ .192216000000D+06 .400000000000D+01
+15 06 1 31 5 59 44.0 .558349303901D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.489062500000D+02 .484555897984D-08 .200735802421D+01
+ -.245310366154D-05 .935331149958D-02 .662170350552D-05 .515371031570D+04
+ .194384000000D+06 .633299350739D-07 .251227499751D+01 .763684511185D-07
+ .958198768139D+00 .249906250000D+03 .254596332667D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .708000000000D+03
+ .193626000000D+06 .400000000000D+01
+ 1 06 1 31 7 59 44.0 .341683626175D-04 .181898940355D-11 .000000000000D+00
+ .900000000000D+02 .106562500000D+03 .414945855589D-08 -.186812836407D+01
+ .571832060814D-05 .632504827809D-02 .402703881264D-05 .515368111992D+04
+ .201584000000D+06 .279396772385D-07 -.171544585411D+01 .987201929092D-07
+ .986365820633D+00 .313812500000D+03 -.171103396675D+01 -.806569311135D-08
+ .489306095849D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .346000000000D+03
+ .194406000000D+06 .400000000000D+01
+15 06 1 31 7 59 44.0 .558392144740D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.434375000000D+02 .485734518507D-08 .305759167950D+01
+ -.215694308281D-05 .935426482465D-02 .629760324955D-05 .515370812416D+04
+ .201584000000D+06 -.223517417908D-07 .251221588100D+01 .104308128357D-06
+ .958194787539D+00 .256125000000D+03 .254589149446D+01 -.814212486647D-08
+ -.532522181686D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .453000000000D+03
+ .194406000000D+06 .400000000000D+01
+32 06 1 31 8 0 0.0 .212350860238D-04 .341060513165D-11 .000000000000D+00
+ .183000000000D+03 -.100750000000D+03 .460804908660D-08 .914109252365D+00
+ -.517070293427D-05 .871139601804D-02 .131167471409D-04 .515360806274D+04
+ .201600000000D+06 -.134110450745D-06 .307393064726D+00 -.111758708954D-07
+ .944621931615D+00 .120312500000D+03 .129526134611D+01 -.817498337801D-08
+ -.639312344211D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .439000000000D+03
+ .194406000000D+06 .400000000000D+01
+ 1 06 1 31 10 0 0.0 .341818667948D-04 .181898940355D-11 .000000000000D+00
+ .910000000000D+02 .106437500000D+03 .425303429881D-08 -.816009861720D+00
+ .566430389881D-05 .632467505056D-02 .520423054695D-05 .515367639923D+04
+ .208800000000D+06 -.135973095894D-06 -.171550476728D+01 .335276126862D-07
+ .986368607492D+00 .295875000000D+03 -.171064293460D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .347000000000D+03
+ .201606000000D+06 .400000000000D+01
+15 06 1 31 10 0 0.0 .558434985578D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.403125000000D+02 .491627621121D-08 -.217313467942D+01
+ -.199861824512D-05 .935517495964D-02 .675022602081D-05 .515370630646D+04
+ .208800000000D+06 -.150874257088D-06 .251215686981D+01 .894069671631D-07
+ .958190482171D+00 .249781250000D+03 .254592935625D+01 -.824570060939D-08
+ -.529307762079D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .454000000000D+03
+ .201606000000D+06 .400000000000D+01
+32 06 1 31 10 0 0.0 .212597660720D-04 .341060513165D-11 .000000000000D+00
+ .184000000000D+03 -.100281250000D+03 .461126350621D-08 .196454132616D+01
+ -.529922544956D-05 .871198589448D-02 .137276947498D-04 .515360478783D+04
+ .208800000000D+06 .558793544769D-08 .307334398786D+00 -.212341547012D-06
+ .944622565059D+00 .102875000000D+03 .129505117306D+01 -.796354599937D-08
+ -.464305054455D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .440000000000D+03
+ .201606000000D+06 .400000000000D+01
+ 1 06 1 31 9 59 44.0 .341916456819D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .106437500000D+03 .425303429881D-08 -.818341978428D+00
+ .566430389881D-05 .632467807736D-02 .520423054695D-05 .515367637444D+04
+ .208784000000D+06 -.135973095894D-06 -.171550464586D+01 .335276126862D-07
+ .986368594325D+00 .295875000000D+03 -.171064445164D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .115000000000D+03
+ .208446000000D+06 .400000000000D+01
+ 1 06 1 31 11 59 44.0 .342056155205D-04 .193267624127D-11 .000000000000D+00
+ .116000000000D+03 .113406250000D+03 .415874465698D-08 .231892822330D+00
+ .578165054321D-05 .632588984445D-02 .529363751411D-05 .515367877960D+04
+ .215984000000D+06 -.745058059692D-07 -.171556435925D+01 -.279396772385D-07
+ .986372320378D+00 .290062500000D+03 -.171070282354D+01 -.827605901679D-08
+ .533236497155D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .372000000000D+03
+ .208806000000D+06 .400000000000D+01
+15 06 1 31 12 0 0.0 .558477826416D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.394062500000D+02 .489556106263D-08 -.112295671303D+01
+ -.219792127609D-05 .935519312043D-02 .676140189171D-05 .515370655060D+04
+ .216000000000D+06 -.134110450745D-06 .251209679215D+01 -.465661287308D-07
+ .958186633234D+00 .249156250000D+03 .254591534295D+01 -.832106089130D-08
+ -.494663461862D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .455000000000D+03
+ .208806000000D+06 .400000000000D+01
+32 06 1 31 12 0 0.0 .212844461203D-04 .341060513165D-11 .000000000000D+00
+ .185000000000D+03 -.842187500000D+02 .455768984608D-08 .301468049889D+01
+ -.437162816525D-05 .871008832473D-02 .138413161039D-04 .515360840988D+04
+ .216000000000D+06 .115483999252D-06 .307277460551D+00 -.130385160446D-06
+ .944622686481D+00 .985625000000D+02 .129513504508D+01 -.791318675885D-08
+ .357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .441000000000D+03
+ .208806000000D+06 .400000000000D+01
+ 1 06 1 31 14 0 0.0 .342191196978D-04 .193267624127D-11 .000000000000D+00
+ .117000000000D+03 .120250000000D+03 .414195824347D-08 .128450940586D+01
+ .622309744358D-05 .632508727722D-02 .504590570927D-05 .515367679787D+04
+ .223200000000D+06 -.763684511185D-07 -.171562415603D+01 -.111758708954D-06
+ .986376251239D+00 .293375000000D+03 -.171080977163D+01 -.823998608564D-08
+ .543236913712D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .373000000000D+03
+ .216006000000D+06 .400000000000D+01
+15 06 1 31 14 0 0.0 .558520667255D-03 .591171556152D-11 .000000000000D+00
+ .200000000000D+03 -.421875000000D+02 .494806324955D-08 -.727814120722D-01
+ -.241957604885D-05 .935553596355D-02 .681355595589D-05 .515370721245D+04
+ .223200000000D+06 .651925802231D-07 .251203754543D+01 -.137835741043D-06
+ .958182251794D+00 .248468750000D+03 .254590310711D+01 -.840392148563D-08
+ -.662527596934D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .456000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 14 0 0.0 .213091261685D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.714375000000D+02 .470841040991D-08 -.221848770144D+01
+ -.376813113689D-05 .871319556609D-02 .128187239170D-04 .515360179138D+04
+ .223200000000D+06 .128522515297D-06 .307219891799D+00 .167638063431D-07
+ .944623208743D+00 .122156250000D+03 .129534134872D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .692000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 13 59 44.0 .213137827814D-04 .341060513165D-11 .000000000000D+00
+ .206000000000D+03 -.714375000000D+02 .470841040991D-08 -.222082139957D+01
+ -.376813113689D-05 .871319742873D-02 .128187239170D-04 .515360178947D+04
+ .223184000000D+06 .128522515297D-06 .307220032239D+00 .167638063431D-07
+ .944623207280D+00 .122156250000D+03 .129534120242D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .206000000000D+03
+ .219786000000D+06 .400000000000D+01
+32 06 1 31 15 59 44.0 .213384628296D-04 .341060513165D-11 .000000000000D+00
+ .207000000000D+03 -.765312500000D+02 .471126767178D-08 -.117036120409D+01
+ -.385381281376D-05 .871346553322D-02 .122822821140D-04 .515360552979D+04
+ .230384000000D+06 -.186264514923D-07 .307162874567D+00 .223517417908D-06
+ .944622831310D+00 .137875000000D+03 .129510646405D+01 -.814748223248D-08
+ .507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .207000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 16 0 0.0 .342330895364D-04 .193267624127D-11 .000000000000D+00
+ .118000000000D+03 .119093750000D+03 .395159317115D-08 .233457122826D+01
+ .614114105701D-05 .632507458795D-02 .485964119434D-05 .515367810249D+04
+ .230400000000D+06 .173225998878D-06 -.171568232750D+01 .000000000000D+00
+ .986381295380D+00 .298875000000D+03 -.171069670561D+01 -.797497504686D-08
+ .513592821774D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .374000000000D+03
+ .223206000000D+06 .400000000000D+01
+15 06 1 31 16 0 0.0 .558563508093D-03 .591171556152D-11 .000000000000D+00
+ .201000000000D+03 -.454375000000D+02 .496199240119D-08 .977276156160D+00
+ -.264123082161D-05 .935740733985D-02 .570528209209D-05 .515371125984D+04
+ .230400000000D+06 .119209289551D-06 .251197710643D+01 -.540167093277D-07
+ .958177516328D+00 .262937500000D+03 .254600790909D+01 -.837927760197D-08
+ -.683242745517D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .201000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 18 0 0.0 .342465937138D-04 .193267624127D-11 .000000000000D+00
+ .119000000000D+03 .114312500000D+03 .394552148966D-08 -.289838036803D+01
+ .597164034843D-05 .632530450821D-02 .505894422531D-05 .515367750549D+04
+ .237600000000D+06 -.111758708954D-07 -.171573859426D+01 -.372529029846D-08
+ .986384717146D+00 .297218750000D+03 -.171075624345D+01 -.788925719066D-08
+ .383230248792D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .375000000000D+03
+ .230406000000D+06 .400000000000D+01
+15 06 1 31 18 0 0.0 .558606348932D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.435625000000D+02 .509914097112D-08 .202742773297D+01
+ -.202842056751D-05 .935770059004D-02 .563822686672D-05 .515371146965D+04
+ .237600000000D+06 .199303030968D-06 .251191656064D+01 .242143869400D-07
+ .958172631645D+00 .267000000000D+03 .254601763457D+01 -.839249243814D-08
+ -.630740558590D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .964000000000D+03
+ .230406000000D+06 .400000000000D+01
+32 06 1 31 18 0 0.0 .213631428778D-04 .341060513165D-11 .000000000000D+00
+ .208000000000D+03 -.890312500000D+02 .472555398115D-08 -.117860252530D+00
+ -.479258596897D-05 .871195329819D-02 .121705234051D-04 .515360266304D+04
+ .237600000000D+06 -.104308128357D-06 .307103412798D+00 .987201929092D-07
+ .944622996619D+00 .142281250000D+03 .129516376363D+01 -.823248577322D-08
+ .657170230921D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .208000000000D+03
+ .230406000000D+06 .400000000000D+01
+ 1 06 1 31 20 0 0.0 .342600978911D-04 .193267624127D-11 .000000000000D+00
+ .120000000000D+03 .101968750000D+03 .394802159380D-08 -.184801896196D+01
+ .529736280441D-05 .632367632352D-02 .553019344807D-05 .515368125343D+04
+ .244800000000D+06 .109896063805D-06 -.171579509654D+01 .633299350739D-07
+ .986386905671D+00 .288843750000D+03 -.171094499207D+01 -.797426073140D-08
+ .296440919383D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .376000000000D+03
+ .237606000000D+06 .400000000000D+01
+15 06 1 31 20 0 0.0 .558649189770D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.360000000000D+02 .513557106001D-08 .307768773981D+01
+ -.172853469849D-05 .935899640899D-02 .540725886822D-05 .515370851135D+04
+ .244800000000D+06 -.707805156708D-07 .251185522049D+01 .163912773132D-06
+ .958169255230D+00 .275468750000D+03 .254592151939D+01 -.828748806429D-08
+ -.405016870578D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .709000000000D+03
+ .237606000000D+06 .400000000000D+01
+32 06 1 31 20 0 0.0 .213873572648D-04 .341060513165D-11 .000000000000D+00
+ .209000000000D+03 -.102281250000D+03 .458126225653D-08 .932201625459D+00
+ -.536069273949D-05 .871358159930D-02 .124275684357D-04 .515360659790D+04
+ .244800000000D+06 -.987201929092D-07 .307044717599D+00 -.577419996262D-07
+ .944622946880D+00 .130906250000D+03 .129532648986D+01 -.823534303509D-08
+ -.507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .209000000000D+03
+ .237666000000D+06 .400000000000D+01
+ 1 06 1 31 22 0 0.0 .342740677297D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .987812500000D+02 .416945938901D-08 -.798228821000D+00
+ .518187880516D-05 .632309354842D-02 .631809234619D-05 .515367652702D+04
+ .252000000000D+06 -.987201929092D-07 -.171585342747D+01 .745058059692D-08
+ .986388093561D+00 .271312500000D+03 -.171056064545D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .371000000000D+03
+ .244806000000D+06 .400000000000D+01
+15 06 1 31 22 0 0.0 .558691564947D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.337500000000D+02 .516735809835D-08 -.215538154240D+01
+ -.159814953804D-05 .935994752217D-02 .596605241299D-05 .515370653725D+04
+ .252000000000D+06 -.197440385818D-06 .251179533886D+01 .856816768646D-07
+ .958166042662D+00 .268281250000D+03 .254597027406D+01 -.836856286995D-08
+ -.385730352932D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .710000000000D+03
+ .244806000000D+06 .400000000000D+01
+32 06 1 31 22 0 0.0 .214120373130D-04 .341060513165D-11 .000000000000D+00
+ .210000000000D+03 -.102875000000D+03 .450054460860D-08 .198260220117D+01
+ -.529922544956D-05 .871415599249D-02 .131297856569D-04 .515360381126D+04
+ .252000000000D+06 .763684511185D-07 .306985642041D+00 -.229105353355D-06
+ .944623628600D+00 .115656250000D+03 .129514812211D+01 -.802461997192D-08
+ -.357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .210000000000D+03
+ .244806000000D+06 .400000000000D+01
+ 1 06 1 31 21 59 44.0 .342894345522D-04 .193267624127D-11 .000000000000D+00
+ .141000000000D+03 .987812500000D+02 .416945938901D-08 -.800563293006D+00
+ .518187880516D-05 .632309168577D-02 .631809234619D-05 .515367653465D+04
+ .251984000000D+06 -.987201929092D-07 -.171585326802D+01 .745058059692D-08
+ .986388127208D+00 .271312500000D+03 -.171055998422D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .141000000000D+03
+ .250056000000D+06 .400000000000D+01
+ 1 06 1 31 23 59 44.0 .343038700521D-04 .193267624127D-11 .000000000000D+00
+ .142000000000D+03 .106718750000D+03 .416553065393D-08 .249668416606D+00
+ .565685331821D-05 .632479728665D-02 .687316060066D-05 .515367983246D+04
+ .259184000000D+06 -.745058059692D-08 -.171591281756D+01 -.372529029846D-08
+ .986390524930D+00 .261562500000D+03 -.171061566288D+01 -.823534303509D-08
+ .376444251843D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .142000000000D+03
+ .252006000000D+06 .400000000000D+01
+15 06 2 1 0 0 0.0 .558734405786D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.357187500000D+02 .514592863430D-08 -.110524072535D+01
+ -.213272869587D-05 .936006801203D-02 .589340925217D-05 .515370607948D+04
+ .259200000000D+06 -.596046447754D-07 .251173363883D+01 -.800937414169D-07
+ .958163270432D+00 .267156250000D+03 .254599570982D+01 -.851249743683D-08
+ -.269296931584D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .711000000000D+03
+ .252006000000D+06 .400000000000D+01
+32 06 2 1 0 0 0.0 .214362516999D-04 .341060513165D-11 .000000000000D+00
+ .211000000000D+03 -.873125000000D+02 .435768151493D-08 .303274718753D+01
+ -.445544719696D-05 .871229276527D-02 .133030116558D-04 .515360733604D+04
+ .259200000000D+06 .763684511185D-07 .306929331399D+00 -.372529029846D-08
+ .944623928498D+00 .110812500000D+03 .129522530274D+01 -.784746973576D-08
+ -.882179603464D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .211000000000D+03
+ .252006000000D+06 .400000000000D+01
diff --git a/dev/tests/BCEphemerisStore/Logs/addEphemerisTest.txt b/dev/tests/BCEphemerisStore/Logs/addEphemerisTest.txt
new file mode 100644
index 0000000..dfcb5e5
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/addEphemerisTest.txt
@@ -0,0 +1,5 @@
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/addToListTest.txt b/dev/tests/BCEphemerisStore/Logs/addToListTest.txt
new file mode 100644
index 0000000..76f8863
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/addToListTest.txt
@@ -0,0 +1,1886 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x043 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+
+ CLOCK
+
+Bias T0: 3.41343693E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367689E+03 m**.5
+Motion correction: 4.34053794E-09 rad/sec
+Eccentricity: 6.32685330E-03
+Arg of perigee: -1.71098328E+00 rad
+Mean anomaly at epoch: 1.26681178E+00 rad
+Right ascension: -1.71526968E+00 rad -8.34177604E-09 rad/sec
+Inclination: 9.86356141E-01 rad 3.65729520E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.15968750E+02 m Cosine: 3.27531250E+02 m
+Inclination Sine: -1.17346644E-07 rad Cosine: -1.02445483E-07 rad
+In-track Sine: 3.52226198E-06 rad Cosine: 5.89340925E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 181806 Tue-2:02:30:06 0x044 0 off
+SF2 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+SF3 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+
+ CLOCK
+
+Bias T0: 3.41478735E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367755E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32700860E-03
+Arg of perigee: -1.71092165E+00 rad
+Mean anomaly at epoch: 2.31692691E+00 rad
+Right ascension: -1.71532878E+00 rad -8.11605235E-09 rad/sec
+Inclination: 9.86359782E-01 rad 3.52514684E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12937500E+02 m Cosine: 3.30625000E+02 m
+Inclination Sine: -6.70552254E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 3.17767262E-06 rad Cosine: 5.77233732E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 192216 Tue-2:05:23:36 0x259 0 off
+SF2 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+SF3 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+
+ CLOCK
+
+Bias T0: 3.41548584E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367874E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628636E-03
+Arg of perigee: -1.71094976E+00 rad
+Mean anomaly at epoch: -2.91838707E+00 rad
+Right ascension: -1.71538720E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362374E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x23F 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+
+ CLOCK
+
+Bias T0: 3.41618434E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367875E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628449E-03
+Arg of perigee: -1.71094881E+00 rad
+Mean anomaly at epoch: -2.91605436E+00 rad
+Right ascension: -1.71538734E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362375E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x15A 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+
+ CLOCK
+
+Bias T0: 3.41683626E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368112E+03 m**.5
+Motion correction: 4.14945856E-09 rad/sec
+Eccentricity: 6.32504828E-03
+Arg of perigee: -1.71103397E+00 rad
+Mean anomaly at epoch: -1.86812836E+00 rad
+Right ascension: -1.71544585E+00 rad -8.06569311E-09 rad/sec
+Inclination: 9.86365821E-01 rad 4.89306096E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06562500E+02 m Cosine: 3.13812500E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: 2.79396772E-08 rad
+In-track Sine: 4.02703881E-06 rad Cosine: 5.71832061E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Eph Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208446 Tue-2:09:54:06 0x073 0 off
+SF2 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+SF3 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.41916457E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367637E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467808E-03
+Arg of perigee: -1.71064445E+00 rad
+Mean anomaly at epoch: -8.18341978E-01 rad
+Right ascension: -1.71550465E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368594E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x15B 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+
+ CLOCK
+
+Bias T0: 3.41818668E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367640E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467505E-03
+Arg of perigee: -1.71064293E+00 rad
+Mean anomaly at epoch: -8.16009862E-01 rad
+Right ascension: -1.71550477E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368607E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x175 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+
+ CLOCK
+
+Bias T0: 3.42191197E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367680E+03 m**.5
+Motion correction: 4.14195824E-09 rad/sec
+Eccentricity: 6.32508728E-03
+Arg of perigee: -1.71080977E+00 rad
+Mean anomaly at epoch: 1.28450941E+00 rad
+Right ascension: -1.71562416E+00 rad -8.23998609E-09 rad/sec
+Inclination: 9.86376251E-01 rad 5.43236914E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.20250000E+02 m Cosine: 2.93375000E+02 m
+Inclination Sine: -1.11758709E-07 rad Cosine: -7.63684511E-08 rad
+In-track Sine: 5.04590571E-06 rad Cosine: 6.22309744E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x176 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+
+ CLOCK
+
+Bias T0: 3.42330895E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367810E+03 m**.5
+Motion correction: 3.95159317E-09 rad/sec
+Eccentricity: 6.32507459E-03
+Arg of perigee: -1.71069671E+00 rad
+Mean anomaly at epoch: 2.33457123E+00 rad
+Right ascension: -1.71568233E+00 rad -7.97497505E-09 rad/sec
+Inclination: 9.86381295E-01 rad 5.13592822E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.19093750E+02 m Cosine: 2.98875000E+02 m
+Inclination Sine: 0.00000000E+00 rad Cosine: 1.73225999E-07 rad
+In-track Sine: 4.85964119E-06 rad Cosine: 6.14114106E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x177 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+
+ CLOCK
+
+Bias T0: 3.42465937E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367751E+03 m**.5
+Motion correction: 3.94552149E-09 rad/sec
+Eccentricity: 6.32530451E-03
+Arg of perigee: -1.71075624E+00 rad
+Mean anomaly at epoch: -2.89838037E+00 rad
+Right ascension: -1.71573859E+00 rad -7.88925719E-09 rad/sec
+Inclination: 9.86384717E-01 rad 3.83230249E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.14312500E+02 m Cosine: 2.97218750E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -1.11758709E-08 rad
+In-track Sine: 5.05894423E-06 rad Cosine: 5.97164035E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x178 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+
+ CLOCK
+
+Bias T0: 3.42600979E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368125E+03 m**.5
+Motion correction: 3.94802159E-09 rad/sec
+Eccentricity: 6.32367632E-03
+Arg of perigee: -1.71094499E+00 rad
+Mean anomaly at epoch: -1.84801896E+00 rad
+Right ascension: -1.71579510E+00 rad -7.97426073E-09 rad/sec
+Inclination: 9.86386906E-01 rad 2.96440919E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.01968750E+02 m Cosine: 2.88843750E+02 m
+Inclination Sine: 6.33299351E-08 rad Cosine: 1.09896064E-07 rad
+In-track Sine: 5.53019345E-06 rad Cosine: 5.29736280E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Eph Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 250056 Tue-2:21:27:36 0x08D 0 off
+SF2 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+SF3 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+
+ CLOCK
+
+Bias T0: 3.42894346E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309169E-03
+Arg of perigee: -1.71055998E+00 rad
+Mean anomaly at epoch: -8.00563293E-01 rad
+Right ascension: -1.71585327E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388127E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x173 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.42740677E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309355E-03
+Arg of perigee: -1.71056065E+00 rad
+Mean anomaly at epoch: -7.98228821E-01 rad
+Right ascension: -1.71585343E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388094E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Eph Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x08E 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+
+ CLOCK
+
+Bias T0: 3.43038701E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367983E+03 m**.5
+Motion correction: 4.16553065E-09 rad/sec
+Eccentricity: 6.32479729E-03
+Arg of perigee: -1.71061566E+00 rad
+Mean anomaly at epoch: 2.49668417E-01 rad
+Right ascension: -1.71591282E+00 rad -8.23534304E-09 rad/sec
+Inclination: 9.86390525E-01 rad 3.76444252E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06718750E+02 m Cosine: 2.61562500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 6.87316060E-06 rad Cosine: 5.65685332E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x2AC 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+
+ CLOCK
+
+Bias T0: 5.58263157E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370760E+03 m**.5
+Motion correction: 4.95913514E-09 rad/sec
+Eccentricity: 9.35129554E-03
+Arg of perigee: 2.54594306E+00 rad
+Mean anomaly at epoch: -9.06095983E-02 rad
+Right ascension: 2.51239340E+00 rad -8.35570519E-09 rad/sec
+Inclination: 9.58205830E-01 rad -5.09306929E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.05000000E+01 m Cosine: 2.32312500E+02 m
+Inclination Sine: -8.19563866E-08 rad Cosine: 5.21540642E-08 rad
+In-track Sine: 7.47665763E-06 rad Cosine: -2.24076211E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x2AD 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+
+ CLOCK
+
+Bias T0: 5.58305997E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371153E+03 m**.5
+Motion correction: 4.84091593E-09 rad/sec
+Eccentricity: 9.35316086E-03
+Arg of perigee: 2.54603428E+00 rad
+Mean anomaly at epoch: 9.59460895E-01 rad
+Right ascension: 2.51233346E+00 rad -8.27070165E-09 rad/sec
+Inclination: 9.58202504E-01 rad -5.20021661E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.51562500E+01 m Cosine: 2.45906250E+02 m
+Inclination Sine: -3.53902578E-08 rad Cosine: 1.60187483E-07 rad
+In-track Sine: 6.79865479E-06 rad Cosine: -2.42330134E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 193626 Tue-2:05:47:06 0x2C4 0 off
+SF2 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+SF3 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58349304E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331150E-03
+Arg of perigee: 2.54596333E+00 rad
+Mean anomaly at epoch: 2.00735802E+00 rad
+Right ascension: 2.51227500E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198768E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x2AE 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+
+ CLOCK
+
+Bias T0: 5.58348838E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331290E-03
+Arg of perigee: 2.54596378E+00 rad
+Mean anomaly at epoch: 2.00969128E+00 rad
+Right ascension: 2.51227486E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198745E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1C5 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58392145E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370812E+03 m**.5
+Motion correction: 4.85734519E-09 rad/sec
+Eccentricity: 9.35426482E-03
+Arg of perigee: 2.54589149E+00 rad
+Mean anomaly at epoch: 3.05759168E+00 rad
+Right ascension: 2.51221588E+00 rad -8.14212487E-09 rad/sec
+Inclination: 9.58194788E-01 rad -5.32522182E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.34375000E+01 m Cosine: 2.56125000E+02 m
+Inclination Sine: 1.04308128E-07 rad Cosine: -2.23517418E-08 rad
+In-track Sine: 6.29760325E-06 rad Cosine: -2.15694308E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1C6 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58434986E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370631E+03 m**.5
+Motion correction: 4.91627621E-09 rad/sec
+Eccentricity: 9.35517496E-03
+Arg of perigee: 2.54592936E+00 rad
+Mean anomaly at epoch: -2.17313468E+00 rad
+Right ascension: 2.51215687E+00 rad -8.24570061E-09 rad/sec
+Inclination: 9.58190482E-01 rad -5.29307762E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.03125000E+01 m Cosine: 2.49781250E+02 m
+Inclination Sine: 8.94069672E-08 rad Cosine: -1.50874257E-07 rad
+In-track Sine: 6.75022602E-06 rad Cosine: -1.99861825E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x1C8 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+
+ CLOCK
+
+Bias T0: 5.58520667E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370721E+03 m**.5
+Motion correction: 4.94806325E-09 rad/sec
+Eccentricity: 9.35553596E-03
+Arg of perigee: 2.54590311E+00 rad
+Mean anomaly at epoch: -7.27814121E-02 rad
+Right ascension: 2.51203755E+00 rad -8.40392149E-09 rad/sec
+Inclination: 9.58182252E-01 rad -6.62527597E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.21875000E+01 m Cosine: 2.48468750E+02 m
+Inclination Sine: -1.37835741E-07 rad Cosine: 6.51925802E-08 rad
+In-track Sine: 6.81355596E-06 rad Cosine: -2.41957605E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0C9 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+
+ CLOCK
+
+Bias T0: 5.58563508E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371126E+03 m**.5
+Motion correction: 4.96199240E-09 rad/sec
+Eccentricity: 9.35740734E-03
+Arg of perigee: 2.54600791E+00 rad
+Mean anomaly at epoch: 9.77276156E-01 rad
+Right ascension: 2.51197711E+00 rad -8.37927760E-09 rad/sec
+Inclination: 9.58177516E-01 rad -6.83242746E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.54375000E+01 m Cosine: 2.62937500E+02 m
+Inclination Sine: -5.40167093E-08 rad Cosine: 1.19209290E-07 rad
+In-track Sine: 5.70528209E-06 rad Cosine: -2.64123082E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x3C4 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58606349E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371147E+03 m**.5
+Motion correction: 5.09914097E-09 rad/sec
+Eccentricity: 9.35770059E-03
+Arg of perigee: 2.54601763E+00 rad
+Mean anomaly at epoch: 2.02742773E+00 rad
+Right ascension: 2.51191656E+00 rad -8.39249244E-09 rad/sec
+Inclination: 9.58172632E-01 rad -6.30740559E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.35625000E+01 m Cosine: 2.67000000E+02 m
+Inclination Sine: 2.42143869E-08 rad Cosine: 1.99303031E-07 rad
+In-track Sine: 5.63822687E-06 rad Cosine: -2.02842057E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x2C5 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58649190E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370851E+03 m**.5
+Motion correction: 5.13557106E-09 rad/sec
+Eccentricity: 9.35899641E-03
+Arg of perigee: 2.54592152E+00 rad
+Mean anomaly at epoch: 3.07768774E+00 rad
+Right ascension: 2.51185522E+00 rad -8.28748806E-09 rad/sec
+Inclination: 9.58169255E-01 rad -4.05016871E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.60000000E+01 m Cosine: 2.75468750E+02 m
+Inclination Sine: 1.63912773E-07 rad Cosine: -7.07805157E-08 rad
+In-track Sine: 5.40725887E-06 rad Cosine: -1.72853470E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x2C6 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58691565E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370654E+03 m**.5
+Motion correction: 5.16735810E-09 rad/sec
+Eccentricity: 9.35994752E-03
+Arg of perigee: 2.54597027E+00 rad
+Mean anomaly at epoch: -2.15538154E+00 rad
+Right ascension: 2.51179534E+00 rad -8.36856287E-09 rad/sec
+Inclination: 9.58166043E-01 rad -3.85730353E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.37500000E+01 m Cosine: 2.68281250E+02 m
+Inclination Sine: 8.56816769E-08 rad Cosine: -1.97440386E-07 rad
+In-track Sine: 5.96605241E-06 rad Cosine: -1.59814954E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x2C7 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58734406E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370608E+03 m**.5
+Motion correction: 5.14592863E-09 rad/sec
+Eccentricity: 9.36006801E-03
+Arg of perigee: 2.54599571E+00 rad
+Mean anomaly at epoch: -1.10524073E+00 rad
+Right ascension: 2.51173364E+00 rad -8.51249744E-09 rad/sec
+Inclination: 9.58163270E-01 rad -2.69296932E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.57187500E+01 m Cosine: 2.67156250E+02 m
+Inclination Sine: -8.00937414E-08 rad Cosine: -5.96046448E-08 rad
+In-track Sine: 5.89340925E-06 rad Cosine: -2.13272870E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x1B4 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.11610459E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360316E+03 m**.5
+Motion correction: 4.39589739E-09 rad/sec
+Eccentricity: 8.71090021E-03
+Arg of perigee: 1.29523927E+00 rad
+Mean anomaly at epoch: -2.23653823E+00 rad
+Right ascension: 3.07566662E-01 rad -7.75710883E-09 rad/sec
+Inclination: 9.44623504E-01 rad 1.08933109E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -6.76875000E+01 m Cosine: 1.15000000E+02 m
+Inclination Sine: -9.31322575E-08 rad Cosine: 1.21071935E-07 rad
+In-track Sine: 1.32359564E-05 rad Cosine: -3.53716314E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x1B5 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+
+ CLOCK
+
+Bias T0: 2.11857259E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360674E+03 m**.5
+Motion correction: 4.54197491E-09 rad/sec
+Eccentricity: 8.71113362E-03
+Arg of perigee: 1.29501397E+00 rad
+Mean anomaly at epoch: -1.18609024E+00 rad
+Right ascension: 3.07510597E-01 rad -8.09319426E-09 rad/sec
+Inclination: 9.44622470E-01 rad -5.00020828E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.28750000E+01 m Cosine: 1.30031250E+02 m
+Inclination Sine: 2.40281224E-07 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 1.24983490E-05 rad Cosine: -3.84636223E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x1B6 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+
+ CLOCK
+
+Bias T0: 2.12104060E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360359E+03 m**.5
+Motion correction: 4.66233706E-09 rad/sec
+Eccentricity: 8.70950485E-03
+Arg of perigee: 1.29508260E+00 rad
+Mean anomaly at epoch: -1.35935973E-01 rad
+Right ascension: 3.07451598E-01 rad -8.18676958E-09 rad/sec
+Inclination: 9.44622210E-01 rad 1.42863094E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.65312500E+01 m Cosine: 1.33937500E+02 m
+Inclination Sine: 1.09896064E-07 rad Cosine: -9.68575478E-08 rad
+In-track Sine: 1.23213977E-05 rad Cosine: -4.46103513E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Eph Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1B7 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+
+ CLOCK
+
+Bias T0: 2.12350860E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360806E+03 m**.5
+Motion correction: 4.60804909E-09 rad/sec
+Eccentricity: 8.71139602E-03
+Arg of perigee: 1.29526135E+00 rad
+Mean anomaly at epoch: 9.14109252E-01 rad
+Right ascension: 3.07393065E-01 rad -8.17498338E-09 rad/sec
+Inclination: 9.44621932E-01 rad -6.39312344E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00750000E+02 m Cosine: 1.20312500E+02 m
+Inclination Sine: -1.11758709E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 1.31167471E-05 rad Cosine: -5.17070293E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1B8 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+
+ CLOCK
+
+Bias T0: 2.12597661E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360479E+03 m**.5
+Motion correction: 4.61126351E-09 rad/sec
+Eccentricity: 8.71198589E-03
+Arg of perigee: 1.29505117E+00 rad
+Mean anomaly at epoch: 1.96454133E+00 rad
+Right ascension: 3.07334399E-01 rad -7.96354600E-09 rad/sec
+Inclination: 9.44622565E-01 rad -4.64305054E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00281250E+02 m Cosine: 1.02875000E+02 m
+Inclination Sine: -2.12341547E-07 rad Cosine: 5.58793545E-09 rad
+In-track Sine: 1.37276947E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Eph Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 219786 Tue-2:13:03:06 0x0CE 0 off
+SF2 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+SF3 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+
+ CLOCK
+
+Bias T0: 2.13137828E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319743E-03
+Arg of perigee: 1.29534120E+00 rad
+Mean anomaly at epoch: -2.22082140E+00 rad
+Right ascension: 3.07220032E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623207E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x2B4 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.13091262E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319557E-03
+Arg of perigee: 1.29534135E+00 rad
+Mean anomaly at epoch: -2.21848770E+00 rad
+Right ascension: 3.07219892E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623209E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Eph Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0CF 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+
+ CLOCK
+
+Bias T0: 2.13384628E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360553E+03 m**.5
+Motion correction: 4.71126767E-09 rad/sec
+Eccentricity: 8.71346553E-03
+Arg of perigee: 1.29510646E+00 rad
+Mean anomaly at epoch: -1.17036120E+00 rad
+Right ascension: 3.07162875E-01 rad -8.14748223E-09 rad/sec
+Inclination: 9.44622831E-01 rad 5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.65312500E+01 m Cosine: 1.37875000E+02 m
+Inclination Sine: 2.23517418E-07 rad Cosine: -1.86264515E-08 rad
+In-track Sine: 1.22822821E-05 rad Cosine: -3.85381281E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x0D0 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+
+ CLOCK
+
+Bias T0: 2.13631429E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360266E+03 m**.5
+Motion correction: 4.72555398E-09 rad/sec
+Eccentricity: 8.71195330E-03
+Arg of perigee: 1.29516376E+00 rad
+Mean anomaly at epoch: -1.17860253E-01 rad
+Right ascension: 3.07103413E-01 rad -8.23248577E-09 rad/sec
+Inclination: 9.44622997E-01 rad 6.57170231E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.90312500E+01 m Cosine: 1.42281250E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: -1.04308128E-07 rad
+In-track Sine: 1.21705234E-05 rad Cosine: -4.79258597E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237666 Tue-2:18:01:06 0x0D1 0 off
+SF2 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+SF3 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+
+ CLOCK
+
+Bias T0: 2.13873573E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360660E+03 m**.5
+Motion correction: 4.58126226E-09 rad/sec
+Eccentricity: 8.71358160E-03
+Arg of perigee: 1.29532649E+00 rad
+Mean anomaly at epoch: 9.32201625E-01 rad
+Right ascension: 3.07044718E-01 rad -8.23534304E-09 rad/sec
+Inclination: 9.44622947E-01 rad -5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02281250E+02 m Cosine: 1.30906250E+02 m
+Inclination Sine: -5.77419996E-08 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 1.24275684E-05 rad Cosine: -5.36069274E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x0D2 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+
+ CLOCK
+
+Bias T0: 2.14120373E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360381E+03 m**.5
+Motion correction: 4.50054461E-09 rad/sec
+Eccentricity: 8.71415599E-03
+Arg of perigee: 1.29514812E+00 rad
+Mean anomaly at epoch: 1.98260220E+00 rad
+Right ascension: 3.06985642E-01 rad -8.02461997E-09 rad/sec
+Inclination: 9.44623629E-01 rad -3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02875000E+02 m Cosine: 1.15656250E+02 m
+Inclination Sine: -2.29105353E-07 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.31297857E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x0D3 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+
+ CLOCK
+
+Bias T0: 2.14362517E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360734E+03 m**.5
+Motion correction: 4.35768151E-09 rad/sec
+Eccentricity: 8.71229277E-03
+Arg of perigee: 1.29522530E+00 rad
+Mean anomaly at epoch: 3.03274719E+00 rad
+Right ascension: 3.06929331E-01 rad -7.84746974E-09 rad/sec
+Inclination: 9.44623928E-01 rad -8.82179603E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.73125000E+01 m Cosine: 1.10812500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.33030117E-05 rad Cosine: -4.45544720E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Logs/clearTest.txt b/dev/tests/BCEphemerisStore/Logs/clearTest.txt
new file mode 100644
index 0000000..e1dcfc7
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/clearTest.txt
@@ -0,0 +1,5 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/editTest.txt b/dev/tests/BCEphemerisStore/Logs/editTest.txt
new file mode 100644
index 0000000..87b4198
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/editTest.txt
@@ -0,0 +1,33 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 9 entries.
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 15 has 8 entries.
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/findEph1.txt b/dev/tests/BCEphemerisStore/Logs/findEph1.txt
new file mode 100644
index 0000000..e5b77d1
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/findEph1.txt
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Logs/findEph15.txt b/dev/tests/BCEphemerisStore/Logs/findEph15.txt
new file mode 100644
index 0000000..8ca404a
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/findEph15.txt
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Logs/findEph32.txt b/dev/tests/BCEphemerisStore/Logs/findEph32.txt
new file mode 100644
index 0000000..071d04c
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/findEph32.txt
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/BCEphemerisStore/Logs/findNearTest.txt b/dev/tests/BCEphemerisStore/Logs/findNearTest.txt
new file mode 100644
index 0000000..c2311e3
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/findNearTest.txt
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/findUserTest.txt b/dev/tests/BCEphemerisStore/Logs/findUserTest.txt
new file mode 100644
index 0000000..ff4a2dd
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/findUserTest.txt
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/getPrnXvt1.txt b/dev/tests/BCEphemerisStore/Logs/getPrnXvt1.txt
new file mode 100644
index 0000000..e4c3bff
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/getPrnXvt1.txt
@@ -0,0 +1 @@
+x:(1.43293e+07, -2.70658e+06, -2.19986e+07), v:(354.696, 2812.26, -117.977), clk bias:3.42024e-05, clk drift:1.93268e-12
diff --git a/dev/tests/BCEphemerisStore/Logs/getPrnXvt15.txt b/dev/tests/BCEphemerisStore/Logs/getPrnXvt15.txt
new file mode 100644
index 0000000..ab2097d
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/getPrnXvt15.txt
@@ -0,0 +1 @@
+x:(1.46708e+07, 7.54272e+06, 2.07205e+07), v:(-2147.79, 1575.58, 902.848), clk bias:0.000558493, clk drift:5.91172e-12
diff --git a/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_1.txt b/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_1.txt
new file mode 100644
index 0000000..e4c3bff
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_1.txt
@@ -0,0 +1 @@
+x:(1.43293e+07, -2.70658e+06, -2.19986e+07), v:(354.696, 2812.26, -117.977), clk bias:3.42024e-05, clk drift:1.93268e-12
diff --git a/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_15.txt b/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_15.txt
new file mode 100644
index 0000000..ab2097d
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_15.txt
@@ -0,0 +1 @@
+x:(1.46708e+07, 7.54272e+06, 2.07205e+07), v:(-2147.79, 1575.58, 902.848), clk bias:0.000558493, clk drift:5.91172e-12
diff --git a/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_32.txt b/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_32.txt
new file mode 100644
index 0000000..0b3c565
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/getPrnXvt2_32.txt
@@ -0,0 +1 @@
+x:(8.40859e+06, 1.71989e+07, -1.87307e+07), v:(-2248.12, -606.201, -1577.94), clk bias:2.12763e-05, clk drift:3.41061e-12
diff --git a/dev/tests/BCEphemerisStore/Logs/getPrnXvt32.txt b/dev/tests/BCEphemerisStore/Logs/getPrnXvt32.txt
new file mode 100644
index 0000000..0b3c565
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/getPrnXvt32.txt
@@ -0,0 +1 @@
+x:(8.40859e+06, 1.71989e+07, -1.87307e+07), v:(-2248.12, -606.201, -1577.94), clk bias:2.12763e-05, clk drift:3.41061e-12
diff --git a/dev/tests/BCEphemerisStore/Logs/s011100a.00nEdit b/dev/tests/BCEphemerisStore/Logs/s011100a.00nEdit
new file mode 100644
index 0000000..3ad7715
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/s011100a.00nEdit
@@ -0,0 +1,233 @@
+ 2.10 Navigation RINEX VERSION / TYPE
+RinexNavWriter NIMA 11-07-01 22:11:07 PGM / RUN BY / DATE
+ END OF HEADER
+ 6 00 4 9 2 0 0.0 .163633376360D-05 .000000000000D+01 .000000000000D+01
+ .139000000000D+03 .110968750000D+03 .479127100424D-08 -.271185537978D+00
+ .587105751038D-05 .666063290555D-02 .486150383949D-05 .515376547623D+04
+ .720000000000D+04 .100582838059D-06 .166945390407D+01 .108033418655D-06
+ .948998078425D+00 .280656250000D+03 -.241616685489D+01 -.853356974315D-08
+ .295369446180D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .139000000000D+03
+ .600000000000D+01 .400000000000D+01
+10 00 4 9 2 0 0.0 .492976978421D-04 .454747350886D-12 .000000000000D+01
+ .148000000000D+03 -.748750000000D+02 .415231581776D-08 .295979226314D+01
+ -.385195016861D-05 .409659452271D-02 .105686485767D-04 .515359637451D+04
+ .720000000000D+04 -.838190317154D-07 -.252978665650D+01 .242143869400D-07
+ .974400053365D+00 .183781250000D+03 -.997736974607D-01 -.774067957323D-08
+ .113219001740D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .148000000000D+03
+ .600000000000D+01 .400000000000D+01
+22 00 4 9 2 0 0.0 .359528698027D-03 -.110276232590D-10 .000000000000D+01
+ .860000000000D+02 .381562500000D+02 .488556064607D-08 .251560405486D+01
+ .183284282684D-05 .130287357606D-01 .117607414722D-04 .515384888840D+04
+ .720000000000D+04 -.149011611938D-06 .559738517550D+00 -.223517417908D-06
+ .934327413664D+00 .138250000000D+03 .561874429148D+00 -.802712007606D-08
+ -.385016037463D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.372529029846D-08 .342000000000D+03
+ .600000000000D+01 .400000000000D+01
+17 00 4 9 1 59 44.0 -.250394456089D-03 -.170530256582D-11 .000000000000D+01
+ .177000000000D+03 -.726875000000D+02 .421874715632D-08 -.621796324633D+00
+ -.385381281376D-05 .114934575977D-01 .392086803913D-05 .515353078079D+04
+ .718400000000D+04 .670552253723D-07 .281169049785D+01 -.141561031342D-06
+ .984505588632D+00 .313687500000D+03 .294499385637D+01 -.827463038586D-08
+ -.825034365993D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .177000000000D+03
+ .600000000000D+01 .400000000000D+01
+23 00 4 9 2 0 0.0 .889180228114D-05 .454747350886D-12 .000000000000D+01
+ .200000000000D+03 -.905937500000D+02 .392694928749D-08 .305905949251D+01
+ -.464916229248D-05 .146467217710D-01 .111218541861D-04 .515359329224D+04
+ .720000000000D+04 .180676579475D-06 -.248304348633D+01 -.191852450371D-06
+ .976962943937D+00 .168750000000D+03 -.189609092403D+01 -.753995692661D-08
+ .764317551180D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.279396772385D-08 .968000000000D+03
+ .600000000000D+01 .400000000000D+01
+26 00 4 9 2 0 0.0 .343976076692D-03 .263753463514D-10 .000000000000D+01
+ .173000000000D+03 .148750000000D+02 .477341311753D-08 .135384298481D+01
+ .107474625111D-05 .119682099903D-01 .796280801296D-05 .515373517036D+04
+ .720000000000D+04 .931322574616D-08 -.147654535428D+01 .175088644028D-06
+ .962793555370D+00 .224375000000D+03 .621537159918D-01 -.815426822943D-08
+ .222866426138D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.651925802231D-08 .685000000000D+03
+ .600000000000D+01 .400000000000D+01
+13 00 4 9 2 0 0.0 -.673008617014D-03 -.229647412198D-10 .000000000000D+01
+ .160000000000D+02 .900000000000D+01 .462912139291D-08 -.309947591942D+01
+ .473111867905D-06 .261789024807D-02 .811740756035D-05 .515380358505D+04
+ .720000000000D+04 -.968575477600D-07 -.148223452858D+01 .260770320892D-07
+ .963936182165D+00 .223125000000D+03 -.561096161119D+00 -.801140513575D-08
+ .414660129402D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.121071934700D-07 .784000000000D+03
+ .600000000000D+01 .400000000000D+01
+24 00 4 9 2 0 0.0 .692430417985D-03 .112549969344D-10 .000000000000D+01
+ .195000000000D+03 -.573750000000D+02 .421553273672D-08 -.633580562785D+00
+ -.297091901302D-05 .885261967778D-02 .400282442570D-05 .515374859238D+04
+ .720000000000D+04 -.100582838059D-06 .274167786744D+01 .931322574616D-08
+ .986917451930D+00 .320187500000D+03 -.170110306440D+01 -.827034449305D-08
+ -.101075638777D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.931322574616D-09 .195000000000D+03
+ .600000000000D+01 .400000000000D+01
+30 00 4 9 2 0 0.0 -.164322555065D-04 -.147792889038D-11 .000000000000D+01
+ .610000000000D+02 .528125000000D+02 .453733185523D-08 -.312710684023D+01
+ .279955565929D-05 .554548786022D-02 .110473483801D-04 .515369513321D+04
+ .720000000000D+04 .633299350738D-07 .596010813534D+00 -.931322574616D-08
+ .944875031072D+00 .157375000000D+03 .147830475026D+01 -.786711341114D-08
+ -.322156276245D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.791624188423D-08 .610000000000D+02
+ .600000000000D+01 .400000000000D+01
+ 8 00 4 9 2 0 0.0 .708011910319D-03 .454747350886D-12 .000000000000D+01
+ .232000000000D+03 -.217812500000D+02 .486484549748D-08 .597655036903D-01
+ -.123865902424D-05 .756750302389D-02 .695511698723D-05 .515371695519D+04
+ .720000000000D+04 -.104308128357D-06 -.405562428206D+00 -.800937414169D-07
+ .958074393770D+00 .246218750000D+03 .184743763488D+01 -.829641700764D-08
+ -.356086260993D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.419095158577D-08 .232000000000D+03
+ .846000000000D+03 .400000000000D+01
+ 9 00 4 9 2 0 0.0 -.395360402763D-04 -.170530256582D-11 .000000000000D+01
+ .109000000000D+03 -.230000000000D+02 .529914930227D-08 -.490580358572D+00
+ -.124052166939D-05 .100804441608D-01 .655837357044D-05 .515368806839D+04
+ .720000000000D+04 .856816768646D-07 -.451021166545D+00 .165775418282D-06
+ .943999932495D+00 .242593750000D+03 .581628308525D+00 -.852464079979D-08
+ -.414660129402D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.558793544769D-08 .365000000000D+03
+ .174600000000D+04 .400000000000D+01
+21 00 4 9 2 0 0.0 .628270208836D-05 .795807864051D-12 .000000000000D+01
+ .123000000000D+03 -.109781250000D+03 .404481133977D-08 .312679520065D+01
+ -.562146306038D-05 .160276150564D-01 .110547989607D-04 .515369010544D+04
+ .720000000000D+04 -.111758708954D-06 -.252378090819D+01 -.204890966415D-06
+ .973901231947D+00 .172062500000D+03 -.255745275172D+01 -.756531512574D-08
+ .750031241812D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.232830643654D-08 .123000000000D+03
+ .324600000000D+04 .400000000000D+01
+ .
+ .
+ .
+ .
+ .
+ .
+ 6 00 4 9 23 59 44.0 .163167715073D-05 .000000000000D+01 .000000000000D+01
+ .163000000000D+03 .115156250000D+03 .469662420468D-08 -.128848168781D+01
+ .595301389694D-05 .665864639450D-02 .708550214768D-05 .515376416969D+04
+ .863840000000D+05 .173225998878D-06 .166879520765D+01 .372529029846D-08
+ .949008522197D+00 .231875000000D+03 -.241617757223D+01 -.825355807954D-08
+ .179293182566D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .163000000000D+03
+ .792060000000D+05 .400000000000D+01
+18 00 4 10 0 0 0.0 .337287783623D-04 .341060513165D-12 .000000000000D+01
+ .190000000000D+02 -.160937500000D+02 .482805825086D-08 .564503290011D+00
+ -.992789864540D-06 .736587739084D-02 .931695103645D-05 .515377211189D+04
+ .864000000000D+05 -.912696123123D-07 -.152826194122D+01 -.108033418655D-06
+ .949671014890D+00 .195406250000D+03 .187279612020D+01 -.824641492485D-08
+ .268225458381D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .275000000000D+03
+ .792060000000D+05 .400000000000D+01
+30 00 4 9 23 59 44.0 -.165509991348D-04 -.147792889038D-11 .000000000000D+01
+ .830000000000D+02 .279062500000D+02 .470483883257D-08 .213944673940D+01
+ .141561031342D-05 .554110133089D-02 .978074967861D-05 .515368985939D+04
+ .863840000000D+05 .141561031342D-06 .595369255199D+00 -.745058059692D-07
+ .944846866973D+00 .180531250000D+03 .147811569005D+01 -.798997567170D-08
+ -.344657213499D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.791624188423D-08 .830000000000D+02
+ .792060000000D+05 .400000000000D+01
+17 00 4 10 0 0 0.0 -.250512734056D-03 -.159161572810D-11 .000000000000D+01
+ .205000000000D+03 -.232187500000D+02 .429625038464D-08 -.163301242893D+01
+ -.136345624924D-05 .114995198091D-01 .324659049511D-05 .515352962303D+04
+ .864000000000D+05 -.577419996262D-07 .281104428159D+01 -.169500708580D-06
+ .984493902843D+00 .332593750000D+03 .294509301588D+01 -.825748681461D-08
+ .124648049234D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .205000000000D+03
+ .792360000000D+05 .400000000000D+01
+23 00 4 10 0 0 0.0 .892858952284D-05 .454747350886D-12 .000000000000D+01
+ .226000000000D+03 -.111000000000D+03 .402838208400D-08 .204480412470D+01
+ -.595673918724D-05 .146519975970D-01 .812299549580D-05 .515359183311D+04
+ .864000000000D+05 .428408384323D-07 -.248366336275D+01 -.322237610817D-06
+ .976965435286D+00 .231937500000D+03 -.189569348868D+01 -.777353808478D-08
+ -.564309220030D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.279396772385D-08 .738000000000D+03
+ .829860000000D+05 .400000000000D+01
+22 00 4 10 0 0 0.0 .358670484275D-03 -.110276232590D-10 .000000000000D+01
+ .111000000000D+03 .133750000000D+02 .506949687918D-08 .149993500641D+01
+ .840052962303D-06 .130276182899D-01 .984407961369D-05 .515384736824D+04
+ .864000000000D+05 -.175088644028D-06 .559088876593D+00 .521540641785D-07
+ .934297400437D+00 .179093750000D+03 .562029747161D+00 -.833784730481D-08
+ -.520378818724D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.372529029846D-08 .367000000000D+03
+ .858060000000D+05 .400000000000D+01
+ 8 00 4 10 0 0 0.0 .708049628884D-03 .227373675443D-12 .000000000000D+01
+ .190000000000D+02 -.515625000000D+01 .487127433670D-08 -.954908384499D+00
+ -.301748514175D-06 .756483781151D-02 .716187059879D-05 .515371685982D+04
+ .864000000000D+05 -.117346644402D-06 -.406210024004D+00 .223517417908D-07
+ .958061239211D+00 .243375000000D+03 .184747522164D+01 -.826927301984D-08
+ -.835749098019D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.419095158577D-08 .190000000000D+02
+ .863160000000D+05 .400000000000D+01
+17 00 4 10 0 0 0.0 -.250512734056D-03 -.159161572810D-11 .000000000000D+01
+ .205000000000D+03 -.232187500000D+02 .429625038464D-08 -.163301242893D+01
+ -.136345624924D-05 .114995198091D-01 .324659049511D-05 .515352962303D+04
+ .864000000000D+05 -.577419996262D-07 .281104428159D+01 -.169500708580D-06
+ .984493902843D+00 .332593750000D+03 .294509301588D+01 -.825748681461D-08
+ .124648049234D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .205000000000D+03
+ .863760000000D+05 .400000000000D+01
+10 00 4 9 23 59 44.0 .493335537612D-04 .454747350886D-12 .000000000000D+01
+ .170000000000D+03 -.993750000000D+02 .422803325741D-08 .194280654160D+01
+ -.489130616188D-05 .409883516841D-02 .867061316967D-05 .515359880066D+04
+ .863840000000D+05 .633299350738D-07 -.253040833085D+01 .145286321640D-06
+ .974400072383D+00 .219281250000D+03 -.990254880091D-01 -.799211861811D-08
+ -.992898501065D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .170000000000D+03
+ .863460000000D+05 .400000000000D+01
+26 00 4 10 0 0 0.0 .346053857356D-03 .262616595137D-10 .000000000000D+01
+ .203000000000D+03 -.236250000000D+02 .462054960730D-08 .338511381821D+00
+ -.128895044327D-05 .119717431953D-01 .913441181183D-05 .515373644257D+04
+ .864000000000D+05 .160187482834D-06 -.147717802978D+01 .949949026108D-07
+ .962829629467D+00 .200281250000D+03 .626838672632D-01 -.814855370568D-08
+ .285726187357D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.651925802231D-08 .459000000000D+03
+ .863460000000D+05 .400000000000D+01
+22 00 4 10 0 0 0.0 .358670484275D-03 -.110276232590D-10 .000000000000D+01
+ .111000000000D+03 .133750000000D+02 .506949687918D-08 .149993500641D+01
+ .840052962303D-06 .130276182899D-01 .984407961369D-05 .515384736824D+04
+ .864000000000D+05 -.175088644028D-06 .559088876593D+00 .521540641785D-07
+ .934297400437D+00 .179093750000D+03 .562029747161D+00 -.833784730481D-08
+ -.520378818724D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.372529029846D-08 .367000000000D+03
+ .863460000000D+05 .400000000000D+01
+23 00 4 10 0 0 0.0 .892858952284D-05 .454747350886D-12 .000000000000D+01
+ .226000000000D+03 -.111000000000D+03 .402838208400D-08 .204480412470D+01
+ -.595673918724D-05 .146519975970D-01 .812299549580D-05 .515359183311D+04
+ .864000000000D+05 .428408384323D-07 -.248366336275D+01 -.322237610817D-06
+ .976965435286D+00 .231937500000D+03 -.189569348868D+01 -.777353808478D-08
+ -.564309220030D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.279396772385D-08 .738000000000D+03
+ .863460000000D+05 .400000000000D+01
+24 00 4 10 0 0 0.0 .693322159350D-03 .112549969344D-10 .000000000000D+01
+ .219000000000D+03 -.207187500000D+02 .421874715632D-08 -.164834618179D+01
+ -.802800059319D-06 .885061838199D-02 .303238630295D-05 .515374885559D+04
+ .864000000000D+05 .651925802231D-07 .274103252161D+01 .132247805595D-06
+ .986908675885D+00 .334156250000D+03 -.170124785525D+01 -.811462372093D-08
+ .500020827874D-11 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.931322574616D-09 .219000000000D+03
+ .863460000000D+05 .400000000000D+01
+13 00 4 10 0 0 0.0 -.674818176776D-03 -.227373675443D-10 .000000000000D+01
+ .600000000000D+01 -.130625000000D+02 .451661670664D-08 .216653066637D+01
+ -.642612576485D-06 .262047967408D-02 .928342342377D-05 .515380464745D+04
+ .864000000000D+05 -.745058059692D-08 -.148286537397D+01 .465661287308D-07
+ .963972361592D+00 .199656250000D+03 -.559161763560D+00 -.795568852922D-08
+ .300012496725D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.121071934700D-07 .262000000000D+03
+ .863460000000D+05 .400000000000D+01
+30 00 4 9 23 59 44.0 -.165509991348D-04 -.147792889038D-11 .000000000000D+01
+ .830000000000D+02 .279062500000D+02 .470483883257D-08 .213944673940D+01
+ .141561031342D-05 .554110133089D-02 .978074967861D-05 .515368985939D+04
+ .863840000000D+05 .141561031342D-06 .595369255199D+00 -.745058059692D-07
+ .944846866973D+00 .180531250000D+03 .147811569005D+01 -.798997567170D-08
+ -.344657213499D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.791624188423D-08 .830000000000D+02
+ .863460000000D+05 .400000000000D+01
+ 6 00 4 9 23 59 44.0 .163167715073D-05 .000000000000D+01 .000000000000D+01
+ .163000000000D+03 .115156250000D+03 .469662420468D-08 -.128848168781D+01
+ .595301389694D-05 .665864639450D-02 .708550214768D-05 .515376416969D+04
+ .863840000000D+05 .173225998878D-06 .166879520765D+01 .372529029846D-08
+ .949008522197D+00 .231875000000D+03 -.241617757223D+01 -.825355807954D-08
+ .179293182566D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .163000000000D+03
+ .863460000000D+05 .400000000000D+01
diff --git a/dev/tests/BCEphemerisStore/Logs/wiperTest.txt b/dev/tests/BCEphemerisStore/Logs/wiperTest.txt
new file mode 100644
index 0000000..31aca91
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/wiperTest.txt
@@ -0,0 +1,31 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 8 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 7 entries.
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Logs/wiperTest2.txt b/dev/tests/BCEphemerisStore/Logs/wiperTest2.txt
new file mode 100644
index 0000000..23380d9
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Logs/wiperTest2.txt
@@ -0,0 +1,8 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 0 entries.
+ BCE map for satellite 15 has 0 entries.
+ BCE map for satellite 32 has 0 entries.
+ End of BCE maps.
+
diff --git a/dev/tests/BCEphemerisStore/Makefile b/dev/tests/BCEphemerisStore/Makefile
new file mode 100644
index 0000000..9d8eba1
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/Makefile
@@ -0,0 +1,24 @@
+# file: makefile
+# next line has to be changed to the installation-path of CppUnit
+CPPUNIT_PATH=/home/ehagen
+
+xBCEphemerisStore.tst: xRinexEphemerisStoreM.o xRinexEphemerisStore.o RinexEphemerisStore.o BCEphemerisStore.o
+ g++ -o xBCEphemerisStore.tst xRinexEphemerisStoreM.o xRinexEphemerisStore.o RinexEphemerisStore.o BCEphemerisStore.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+RinexEphemerisStore.o: RinexEphemerisStore.cpp RinexEphemerisStore.hpp
+ g++ -c RinexEphemerisStore.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -lgpstk -fprofile-arcs -ftest-coverage
+xRinexEphemerisStore.o: xRinexEphemerisStore.cpp xRinexEphemerisStore.hpp
+ g++ -c xRinexEphemerisStore.cpp -I${CPPUNIT_PATH}/include -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xRinexEphemerisStoreM.o: xRinexEphemerisStoreM.cpp
+ g++ -c xRinexEphemerisStoreM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+BCEphemerisStore.o: BCEphemerisStore.cpp BCEphemerisStore.hpp
+ g++ -c BCEphemerisStore.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -lgpstk -fprofile-arcs -ftest-coverage
+
+
+clean:
+ rm -f *.o
+ rm -f *.txt
+ rm -f *.g*
+ rm -f *.*.g*
diff --git a/dev/tests/BCEphemerisStore/RinexEphemerisStore.cpp b/dev/tests/BCEphemerisStore/RinexEphemerisStore.cpp
new file mode 120000
index 0000000..865c12c
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/RinexEphemerisStore.cpp
@@ -0,0 +1 @@
+../../src/RinexEphemerisStore.cpp
\ No newline at end of file
diff --git a/dev/tests/BCEphemerisStore/RinexEphemerisStore.hpp b/dev/tests/BCEphemerisStore/RinexEphemerisStore.hpp
new file mode 120000
index 0000000..d17be57
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/RinexEphemerisStore.hpp
@@ -0,0 +1 @@
+../../src/RinexEphemerisStore.hpp
\ No newline at end of file
diff --git a/dev/tests/BCEphemerisStore/TestRinex06.031 b/dev/tests/BCEphemerisStore/TestRinex06.031
new file mode 100644
index 0000000..5d88357
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/TestRinex06.031
@@ -0,0 +1,339 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+fic2rin 07/10/2006 09:16:03 PGM / RUN BY / DATE
+ END OF HEADER
+ 1 06 1 31 2 0 0.0 .341343693435D-04 .193267624127D-11 .000000000000D+00
+ .670000000000D+02 .115968750000D+03 .434053794369D-08 .126681177927D+01
+ .589340925217D-05 .632685329765D-02 .352226197720D-05 .515367689323D+04
+ .180000000000D+06 -.102445483208D-06 -.171526967635D+01 -.117346644402D-06
+ .986356140504D+00 .327531250000D+03 -.171098328249D+01 -.834177603988D-08
+ .365729519817D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .670000000000D+02
+ .172806000000D+06 .400000000000D+01
+15 06 1 31 2 0 0.0 .558263156563D-03 .591171556152D-11 .000000000000D+00
+ .172000000000D+03 -.405000000000D+02 .495913513931D-08 -.906095982535D-01
+ -.224076211452D-05 .935129553545D-02 .747665762901D-05 .515370759583D+04
+ .180000000000D+06 .521540641785D-07 .251239340464D+01 -.819563865662D-07
+ .958205829645D+00 .232312500000D+03 .254594306232D+01 -.835570519152D-08
+ -.509306928964D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .684000000000D+03
+ .172806000000D+06 .400000000000D+01
+32 06 1 31 2 0 0.0 .211610458791D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.676875000000D+02 .439589739249D-08 -.223653823215D+01
+ -.353716313839D-05 .871090020519D-02 .132359564304D-04 .515360315704D+04
+ .180000000000D+06 .121071934700D-06 .307566661900D+00 -.931322574615D-07
+ .944623504252D+00 .115000000000D+03 .129523926775D+01 -.775710882900D-08
+ .108933108930D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .436000000000D+03
+ .172806000000D+06 .400000000000D+01
+ 1 06 1 31 4 0 0.0 .341478735209D-04 .193267624127D-11 .000000000000D+00
+ .680000000000D+02 .112937500000D+03 .425303429881D-08 .231692690748D+01
+ .577233731747D-05 .632700859569D-02 .317767262459D-05 .515367754555D+04
+ .187200000000D+06 .128522515297D-06 -.171532877970D+01 -.670552253723D-07
+ .986359781707D+00 .330625000000D+03 -.171092164536D+01 -.811605235187D-08
+ .352514683652D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .680000000000D+02
+ .180006000000D+06 .400000000000D+01
+ 1 06 1 31 4 0 0.0 .341478735209D-04 .193267624127D-11 .000000000000D+00
+ .680000000000D+02 .112937500000D+03 .425303429881D-08 .231692690748D+01
+ .577233731747D-05 .632700859569D-02 .317767262459D-05 .515367754555D+04
+ .187200000000D+06 .128522515297D-06 -.171532877970D+01 -.670552253723D-07
+ .986359781707D+00 .330625000000D+03 -.171092164536D+01 -.811605235187D-08
+ .352514683652D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .680000000000D+02
+ .181806000000D+06 .400000000000D+01
+15 06 1 31 4 0 0.0 .558305997401D-03 .591171556152D-11 .000000000000D+00
+ .173000000000D+03 -.451562500000D+02 .484091592929D-08 .959460894860D+00
+ -.242330133915D-05 .935316085815D-02 .679865479469D-05 .515371152878D+04
+ .187200000000D+06 .160187482834D-06 .251233346304D+01 -.353902578354D-07
+ .958202504432D+00 .245906250000D+03 .254603427966D+01 -.827070165078D-08
+ -.520021660989D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .685000000000D+03
+ .180006000000D+06 .400000000000D+01
+32 06 1 31 4 0 0.0 .211857259274D-04 .341060513165D-11 .000000000000D+00
+ .181000000000D+03 -.728750000000D+02 .454197490577D-08 -.118609023742D+01
+ -.384636223316D-05 .871113361791D-02 .124983489513D-04 .515360673523D+04
+ .187200000000D+06 -.745058059692D-08 .307510597028D+00 .240281224251D-06
+ .944622469969D+00 .130031250000D+03 .129501396667D+01 -.809319425688D-08
+ -.500020827875D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .437000000000D+03
+ .180006000000D+06 .400000000000D+01
+ 1 06 1 31 6 0 0.0 .341618433595D-04 .193267624127D-11 .000000000000D+00
+ .630000000000D+02 .112750000000D+03 .425553440295D-08 -.291605435972D+01
+ .586546957493D-05 .632628449239D-02 .357814133167D-05 .515367875481D+04
+ .194400000000D+06 .154599547386D-06 -.171538734177D+01 .484287738800D-07
+ .986362375461D+00 .323406250000D+03 -.171094881175D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .575000000000D+03
+ .187206000000D+06 .400000000000D+01
+15 06 1 31 6 0 0.0 .558348838240D-03 .591171556152D-11 .000000000000D+00
+ .174000000000D+03 -.489062500000D+02 .484555897984D-08 .200969128199D+01
+ -.245310366154D-05 .935331289656D-02 .662170350552D-05 .515371031952D+04
+ .194400000000D+06 .633299350739D-07 .251227486146D+01 .763684511185D-07
+ .958198744732D+00 .249906250000D+03 .254596378017D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .686000000000D+03
+ .187206000000D+06 .400000000000D+01
+32 06 1 31 6 0 0.0 .212104059756D-04 .341060513165D-11 .000000000000D+00
+ .182000000000D+03 -.865312500000D+02 .466233706220D-08 -.135935973227D+00
+ -.446103513241D-05 .870950485114D-02 .123213976622D-04 .515360359001D+04
+ .194400000000D+06 -.968575477600D-07 .307451597542D+00 .109896063805D-06
+ .944622209570D+00 .133937500000D+03 .129508259801D+01 -.818676958324D-08
+ .142863093678D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .438000000000D+03
+ .187206000000D+06 .400000000000D+01
+ 1 06 1 31 5 59 44.0 .341548584402D-04 .181898940355D-11 .000000000000D+00
+ .890000000000D+02 .112750000000D+03 .425553440295D-08 -.291838707330D+01
+ .586546957493D-05 .632628635503D-02 .357814133167D-05 .515367874336D+04
+ .194384000000D+06 .154599547386D-06 -.171538720133D+01 .484287738800D-07
+ .986362373998D+00 .323406250000D+03 -.171094975533D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .601000000000D+03
+ .192216000000D+06 .400000000000D+01
+15 06 1 31 5 59 44.0 .558349303901D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.489062500000D+02 .484555897984D-08 .200735802421D+01
+ -.245310366154D-05 .935331149958D-02 .662170350552D-05 .515371031570D+04
+ .194384000000D+06 .633299350739D-07 .251227499751D+01 .763684511185D-07
+ .958198768139D+00 .249906250000D+03 .254596332667D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .708000000000D+03
+ .193626000000D+06 .400000000000D+01
+ 1 06 1 31 7 59 44.0 .341683626175D-04 .181898940355D-11 .000000000000D+00
+ .900000000000D+02 .106562500000D+03 .414945855589D-08 -.186812836407D+01
+ .571832060814D-05 .632504827809D-02 .402703881264D-05 .515368111992D+04
+ .201584000000D+06 .279396772385D-07 -.171544585411D+01 .987201929092D-07
+ .986365820633D+00 .313812500000D+03 -.171103396675D+01 -.806569311135D-08
+ .489306095849D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .346000000000D+03
+ .194406000000D+06 .400000000000D+01
+15 06 1 31 7 59 44.0 .558392144740D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.434375000000D+02 .485734518507D-08 .305759167950D+01
+ -.215694308281D-05 .935426482465D-02 .629760324955D-05 .515370812416D+04
+ .201584000000D+06 -.223517417908D-07 .251221588100D+01 .104308128357D-06
+ .958194787539D+00 .256125000000D+03 .254589149446D+01 -.814212486647D-08
+ -.532522181686D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .453000000000D+03
+ .194406000000D+06 .400000000000D+01
+32 06 1 31 8 0 0.0 .212350860238D-04 .341060513165D-11 .000000000000D+00
+ .183000000000D+03 -.100750000000D+03 .460804908660D-08 .914109252365D+00
+ -.517070293427D-05 .871139601804D-02 .131167471409D-04 .515360806274D+04
+ .201600000000D+06 -.134110450745D-06 .307393064726D+00 -.111758708954D-07
+ .944621931615D+00 .120312500000D+03 .129526134611D+01 -.817498337801D-08
+ -.639312344211D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .439000000000D+03
+ .194406000000D+06 .400000000000D+01
+ 1 06 1 31 10 0 0.0 .341818667948D-04 .181898940355D-11 .000000000000D+00
+ .910000000000D+02 .106437500000D+03 .425303429881D-08 -.816009861720D+00
+ .566430389881D-05 .632467505056D-02 .520423054695D-05 .515367639923D+04
+ .208800000000D+06 -.135973095894D-06 -.171550476728D+01 .335276126862D-07
+ .986368607492D+00 .295875000000D+03 -.171064293460D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .347000000000D+03
+ .201606000000D+06 .400000000000D+01
+15 06 1 31 10 0 0.0 .558434985578D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.403125000000D+02 .491627621121D-08 -.217313467942D+01
+ -.199861824512D-05 .935517495964D-02 .675022602081D-05 .515370630646D+04
+ .208800000000D+06 -.150874257088D-06 .251215686981D+01 .894069671631D-07
+ .958190482171D+00 .249781250000D+03 .254592935625D+01 -.824570060939D-08
+ -.529307762079D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .454000000000D+03
+ .201606000000D+06 .400000000000D+01
+32 06 1 31 10 0 0.0 .212597660720D-04 .341060513165D-11 .000000000000D+00
+ .184000000000D+03 -.100281250000D+03 .461126350621D-08 .196454132616D+01
+ -.529922544956D-05 .871198589448D-02 .137276947498D-04 .515360478783D+04
+ .208800000000D+06 .558793544769D-08 .307334398786D+00 -.212341547012D-06
+ .944622565059D+00 .102875000000D+03 .129505117306D+01 -.796354599937D-08
+ -.464305054455D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .440000000000D+03
+ .201606000000D+06 .400000000000D+01
+ 1 06 1 31 9 59 44.0 .341916456819D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .106437500000D+03 .425303429881D-08 -.818341978428D+00
+ .566430389881D-05 .632467807736D-02 .520423054695D-05 .515367637444D+04
+ .208784000000D+06 -.135973095894D-06 -.171550464586D+01 .335276126862D-07
+ .986368594325D+00 .295875000000D+03 -.171064445164D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .115000000000D+03
+ .208446000000D+06 .400000000000D+01
+ 1 06 1 31 11 59 44.0 .342056155205D-04 .193267624127D-11 .000000000000D+00
+ .116000000000D+03 .113406250000D+03 .415874465698D-08 .231892822330D+00
+ .578165054321D-05 .632588984445D-02 .529363751411D-05 .515367877960D+04
+ .215984000000D+06 -.745058059692D-07 -.171556435925D+01 -.279396772385D-07
+ .986372320378D+00 .290062500000D+03 -.171070282354D+01 -.827605901679D-08
+ .533236497155D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .372000000000D+03
+ .208806000000D+06 .400000000000D+01
+15 06 1 31 12 0 0.0 .558477826416D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.394062500000D+02 .489556106263D-08 -.112295671303D+01
+ -.219792127609D-05 .935519312043D-02 .676140189171D-05 .515370655060D+04
+ .216000000000D+06 -.134110450745D-06 .251209679215D+01 -.465661287308D-07
+ .958186633234D+00 .249156250000D+03 .254591534295D+01 -.832106089130D-08
+ -.494663461862D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .455000000000D+03
+ .208806000000D+06 .400000000000D+01
+32 06 1 31 12 0 0.0 .212844461203D-04 .341060513165D-11 .000000000000D+00
+ .185000000000D+03 -.842187500000D+02 .455768984608D-08 .301468049889D+01
+ -.437162816525D-05 .871008832473D-02 .138413161039D-04 .515360840988D+04
+ .216000000000D+06 .115483999252D-06 .307277460551D+00 -.130385160446D-06
+ .944622686481D+00 .985625000000D+02 .129513504508D+01 -.791318675885D-08
+ .357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .441000000000D+03
+ .208806000000D+06 .400000000000D+01
+ 1 06 1 31 14 0 0.0 .342191196978D-04 .193267624127D-11 .000000000000D+00
+ .117000000000D+03 .120250000000D+03 .414195824347D-08 .128450940586D+01
+ .622309744358D-05 .632508727722D-02 .504590570927D-05 .515367679787D+04
+ .223200000000D+06 -.763684511185D-07 -.171562415603D+01 -.111758708954D-06
+ .986376251239D+00 .293375000000D+03 -.171080977163D+01 -.823998608564D-08
+ .543236913712D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .373000000000D+03
+ .216006000000D+06 .400000000000D+01
+15 06 1 31 14 0 0.0 .558520667255D-03 .591171556152D-11 .000000000000D+00
+ .200000000000D+03 -.421875000000D+02 .494806324955D-08 -.727814120722D-01
+ -.241957604885D-05 .935553596355D-02 .681355595589D-05 .515370721245D+04
+ .223200000000D+06 .651925802231D-07 .251203754543D+01 -.137835741043D-06
+ .958182251794D+00 .248468750000D+03 .254590310711D+01 -.840392148563D-08
+ -.662527596934D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .456000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 14 0 0.0 .213091261685D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.714375000000D+02 .470841040991D-08 -.221848770144D+01
+ -.376813113689D-05 .871319556609D-02 .128187239170D-04 .515360179138D+04
+ .223200000000D+06 .128522515297D-06 .307219891799D+00 .167638063431D-07
+ .944623208743D+00 .122156250000D+03 .129534134872D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .692000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 13 59 44.0 .213137827814D-04 .341060513165D-11 .000000000000D+00
+ .206000000000D+03 -.714375000000D+02 .470841040991D-08 -.222082139957D+01
+ -.376813113689D-05 .871319742873D-02 .128187239170D-04 .515360178947D+04
+ .223184000000D+06 .128522515297D-06 .307220032239D+00 .167638063431D-07
+ .944623207280D+00 .122156250000D+03 .129534120242D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .206000000000D+03
+ .219786000000D+06 .400000000000D+01
+32 06 1 31 15 59 44.0 .213384628296D-04 .341060513165D-11 .000000000000D+00
+ .207000000000D+03 -.765312500000D+02 .471126767178D-08 -.117036120409D+01
+ -.385381281376D-05 .871346553322D-02 .122822821140D-04 .515360552979D+04
+ .230384000000D+06 -.186264514923D-07 .307162874567D+00 .223517417908D-06
+ .944622831310D+00 .137875000000D+03 .129510646405D+01 -.814748223248D-08
+ .507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .207000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 16 0 0.0 .342330895364D-04 .193267624127D-11 .000000000000D+00
+ .118000000000D+03 .119093750000D+03 .395159317115D-08 .233457122826D+01
+ .614114105701D-05 .632507458795D-02 .485964119434D-05 .515367810249D+04
+ .230400000000D+06 .173225998878D-06 -.171568232750D+01 .000000000000D+00
+ .986381295380D+00 .298875000000D+03 -.171069670561D+01 -.797497504686D-08
+ .513592821774D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .374000000000D+03
+ .223206000000D+06 .400000000000D+01
+15 06 1 31 16 0 0.0 .558563508093D-03 .591171556152D-11 .000000000000D+00
+ .201000000000D+03 -.454375000000D+02 .496199240119D-08 .977276156160D+00
+ -.264123082161D-05 .935740733985D-02 .570528209209D-05 .515371125984D+04
+ .230400000000D+06 .119209289551D-06 .251197710643D+01 -.540167093277D-07
+ .958177516328D+00 .262937500000D+03 .254600790909D+01 -.837927760197D-08
+ -.683242745517D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .201000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 18 0 0.0 .342465937138D-04 .193267624127D-11 .000000000000D+00
+ .119000000000D+03 .114312500000D+03 .394552148966D-08 -.289838036803D+01
+ .597164034843D-05 .632530450821D-02 .505894422531D-05 .515367750549D+04
+ .237600000000D+06 -.111758708954D-07 -.171573859426D+01 -.372529029846D-08
+ .986384717146D+00 .297218750000D+03 -.171075624345D+01 -.788925719066D-08
+ .383230248792D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .375000000000D+03
+ .230406000000D+06 .400000000000D+01
+15 06 1 31 18 0 0.0 .558606348932D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.435625000000D+02 .509914097112D-08 .202742773297D+01
+ -.202842056751D-05 .935770059004D-02 .563822686672D-05 .515371146965D+04
+ .237600000000D+06 .199303030968D-06 .251191656064D+01 .242143869400D-07
+ .958172631645D+00 .267000000000D+03 .254601763457D+01 -.839249243814D-08
+ -.630740558590D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .964000000000D+03
+ .230406000000D+06 .400000000000D+01
+32 06 1 31 18 0 0.0 .213631428778D-04 .341060513165D-11 .000000000000D+00
+ .208000000000D+03 -.890312500000D+02 .472555398115D-08 -.117860252530D+00
+ -.479258596897D-05 .871195329819D-02 .121705234051D-04 .515360266304D+04
+ .237600000000D+06 -.104308128357D-06 .307103412798D+00 .987201929092D-07
+ .944622996619D+00 .142281250000D+03 .129516376363D+01 -.823248577322D-08
+ .657170230921D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .208000000000D+03
+ .230406000000D+06 .400000000000D+01
+ 1 06 1 31 20 0 0.0 .342600978911D-04 .193267624127D-11 .000000000000D+00
+ .120000000000D+03 .101968750000D+03 .394802159380D-08 -.184801896196D+01
+ .529736280441D-05 .632367632352D-02 .553019344807D-05 .515368125343D+04
+ .244800000000D+06 .109896063805D-06 -.171579509654D+01 .633299350739D-07
+ .986386905671D+00 .288843750000D+03 -.171094499207D+01 -.797426073140D-08
+ .296440919383D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .376000000000D+03
+ .237606000000D+06 .400000000000D+01
+15 06 1 31 20 0 0.0 .558649189770D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.360000000000D+02 .513557106001D-08 .307768773981D+01
+ -.172853469849D-05 .935899640899D-02 .540725886822D-05 .515370851135D+04
+ .244800000000D+06 -.707805156708D-07 .251185522049D+01 .163912773132D-06
+ .958169255230D+00 .275468750000D+03 .254592151939D+01 -.828748806429D-08
+ -.405016870578D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .709000000000D+03
+ .237606000000D+06 .400000000000D+01
+32 06 1 31 20 0 0.0 .213873572648D-04 .341060513165D-11 .000000000000D+00
+ .209000000000D+03 -.102281250000D+03 .458126225653D-08 .932201625459D+00
+ -.536069273949D-05 .871358159930D-02 .124275684357D-04 .515360659790D+04
+ .244800000000D+06 -.987201929092D-07 .307044717599D+00 -.577419996262D-07
+ .944622946880D+00 .130906250000D+03 .129532648986D+01 -.823534303509D-08
+ -.507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .209000000000D+03
+ .237666000000D+06 .400000000000D+01
+ 1 06 1 31 22 0 0.0 .342740677297D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .987812500000D+02 .416945938901D-08 -.798228821000D+00
+ .518187880516D-05 .632309354842D-02 .631809234619D-05 .515367652702D+04
+ .252000000000D+06 -.987201929092D-07 -.171585342747D+01 .745058059692D-08
+ .986388093561D+00 .271312500000D+03 -.171056064545D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .371000000000D+03
+ .244806000000D+06 .400000000000D+01
+15 06 1 31 22 0 0.0 .558691564947D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.337500000000D+02 .516735809835D-08 -.215538154240D+01
+ -.159814953804D-05 .935994752217D-02 .596605241299D-05 .515370653725D+04
+ .252000000000D+06 -.197440385818D-06 .251179533886D+01 .856816768646D-07
+ .958166042662D+00 .268281250000D+03 .254597027406D+01 -.836856286995D-08
+ -.385730352932D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .710000000000D+03
+ .244806000000D+06 .400000000000D+01
+32 06 1 31 22 0 0.0 .214120373130D-04 .341060513165D-11 .000000000000D+00
+ .210000000000D+03 -.102875000000D+03 .450054460860D-08 .198260220117D+01
+ -.529922544956D-05 .871415599249D-02 .131297856569D-04 .515360381126D+04
+ .252000000000D+06 .763684511185D-07 .306985642041D+00 -.229105353355D-06
+ .944623628600D+00 .115656250000D+03 .129514812211D+01 -.802461997192D-08
+ -.357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .210000000000D+03
+ .244806000000D+06 .400000000000D+01
+ 1 06 1 31 21 59 44.0 .342894345522D-04 .193267624127D-11 .000000000000D+00
+ .141000000000D+03 .987812500000D+02 .416945938901D-08 -.800563293006D+00
+ .518187880516D-05 .632309168577D-02 .631809234619D-05 .515367653465D+04
+ .251984000000D+06 -.987201929092D-07 -.171585326802D+01 .745058059692D-08
+ .986388127208D+00 .271312500000D+03 -.171055998422D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .141000000000D+03
+ .250056000000D+06 .400000000000D+01
+ 1 06 1 31 23 59 44.0 .343038700521D-04 .193267624127D-11 .000000000000D+00
+ .142000000000D+03 .106718750000D+03 .416553065393D-08 .249668416606D+00
+ .565685331821D-05 .632479728665D-02 .687316060066D-05 .515367983246D+04
+ .259184000000D+06 -.745058059692D-08 -.171591281756D+01 -.372529029846D-08
+ .986390524930D+00 .261562500000D+03 -.171061566288D+01 -.823534303509D-08
+ .376444251843D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .142000000000D+03
+ .252006000000D+06 .400000000000D+01
+15 06 2 1 0 0 0.0 .558734405786D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.357187500000D+02 .514592863430D-08 -.110524072535D+01
+ -.213272869587D-05 .936006801203D-02 .589340925217D-05 .515370607948D+04
+ .259200000000D+06 -.596046447754D-07 .251173363883D+01 -.800937414169D-07
+ .958163270432D+00 .267156250000D+03 .254599570982D+01 -.851249743683D-08
+ -.269296931584D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .711000000000D+03
+ .252006000000D+06 .400000000000D+01
+32 06 2 1 0 0 0.0 .214362516999D-04 .341060513165D-11 .000000000000D+00
+ .211000000000D+03 -.873125000000D+02 .435768151493D-08 .303274718753D+01
+ -.445544719696D-05 .871229276527D-02 .133030116558D-04 .515360733604D+04
+ .259200000000D+06 .763684511185D-07 .306929331399D+00 -.372529029846D-08
+ .944623928498D+00 .110812500000D+03 .129522530274D+01 -.784746973576D-08
+ -.882179603464D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .211000000000D+03
+ .252006000000D+06 .400000000000D+01
diff --git a/dev/tests/BCEphemerisStore/xRinexEphemerisStore.cpp b/dev/tests/BCEphemerisStore/xRinexEphemerisStore.cpp
new file mode 100644
index 0000000..fb411f5
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/xRinexEphemerisStore.cpp
@@ -0,0 +1,658 @@
+// file: xRinexEphemerisStore.cpp
+
+#include "xRinexEphemerisStore.hpp"
+
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xRinexEphemerisStore);
+
+
+void xRinexEphemerisStore :: setUp (void)
+{
+}
+
+/*
+**** General test for the RinexEphemerisStore (RES) class
+**** Test to assure the that RES throws its exceptions in the right place and
+**** that it loads the RINEX Nav file correctly
+
+**** To further check this data, please view DumpData.txt for the dumped information
+*/
+
+void xRinexEphemerisStore :: RESTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/DumpData.txt");
+
+ CPPUNIT_ASSERT_NO_THROW(gpstk::RinexEphemerisStore Store);
+ gpstk::RinexEphemerisStore Store;
+ try
+ {
+ CPPUNIT_ASSERT_THROW(Store.loadFile("NotaFILE"),gpstk::Exception);
+ }
+ catch (gpstk::Exception& e)
+ {
+ }
+
+ CPPUNIT_ASSERT_NO_THROW(Store.loadFile("TestRinex06.031"));
+ Store.loadFile("TestRinex06.031");
+ Store.dump(1,DumpData);
+ DumpData.close();
+
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member findEph()
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test finds an Ephemeris for a given
+**** DayTime Time and PRN.
+
+**** To see the ephemeris information for the selected Time and PRN please see
+**** findEph.txt
+*/
+void xRinexEphemerisStore :: BCESfindEphTest (void)
+{
+ ofstream fPRN1;
+ ofstream fPRN15;
+ ofstream fPRN32;
+ fPRN1.open ("Logs/findEph1.txt");
+ fPRN15.open ("Logs/findEph15.txt");
+ fPRN32.open ("Logs/findEph32.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+
+ try
+ {
+ gpstk::DayTime crazy(200000,1,31,2,0,0);
+ CPPUNIT_ASSERT_NO_THROW(Store.findEphemeris(PRN1,Time));
+
+ fPRN1 << Store.findEphemeris(PRN1,Time);
+ fPRN15 << Store.findEphemeris(PRN15,Time);
+ fPRN32 << Store.findEphemeris(PRN32,Time);
+
+ CPPUNIT_ASSERT_THROW(Store.findEphemeris(PRN0,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findEphemeris(PRN33,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findEphemeris(PRN32,crazy),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findEph1.txt","Checks/findEph1.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findEph15.txt","Checks/findEph15.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findEph32.txt","Checks/findEph32.chk"));
+
+}
+
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member getPrnXvt()
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test finds an Xvt for a given
+**** DayTime Time and PRN.
+
+**** To see the Xvt information for the selected Time and PRN please see
+**** getPrnXvt.txt
+*/
+
+void xRinexEphemerisStore :: BCESgetPrnXvtTest (void)
+{
+ ofstream fPRN1;
+ ofstream fPRN15;
+ ofstream fPRN32;
+
+ fPRN1.open ("Logs/getPrnXvt1.txt");
+ fPRN15.open ("Logs/getPrnXvt15.txt");
+ fPRN32.open ("Logs/getPrnXvt32.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.getPrnXvt(PRN1,Time));
+
+ fPRN1 << Store.getPrnXvt(PRN1,Time) << endl;
+ fPRN15 << Store.getPrnXvt(PRN15,Time) << endl;
+ fPRN32 << Store.getPrnXvt(PRN32,Time) << endl;
+
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN0,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN33,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt1.txt","Checks/getPrnXvt1.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt15.txt","Checks/getPrnXvt15.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt32.txt","Checks/getPrnXvt32.chk"));
+}
+
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member getPrnXvt()
+**** This test differs from the previous in that this getPrnXvt() has another parameter
+**** for the IODC
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test finds an Xvt for a given
+**** DayTime Time and PRN and IODC.
+
+**** To see the Xvt information for the selected Time and PRN please see
+**** getPrnXvt2.txt
+*/
+void xRinexEphemerisStore :: BCESgetPrnXvt2Test (void)
+{
+
+ ofstream fPRN1;
+ ofstream fPRN15;
+ ofstream fPRN32;
+
+ fPRN1.open ("Logs/getPrnXvt2_1.txt");
+ fPRN15.open ("Logs/getPrnXvt2_15.txt");
+ fPRN32.open ("Logs/getPrnXvt2_32.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ short IODC0 = 89;
+ short IODC1 = 372;
+ short IODC15 = 455;
+ short IODC32 = 441;
+ short IODC33 = 392;
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+ try
+ {
+ fPRN1 << Store.getPrnXvt(PRN1,Time,IODC1) << endl;
+ fPRN15 << Store.getPrnXvt(PRN15,Time,IODC15) << endl;
+ fPRN32 << Store.getPrnXvt(PRN32,Time,IODC32) << endl;
+
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN0,bTime,IODC0),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN33,bTime,IODC33),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt2_1.txt","Checks/getPrnXvt1.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt2_15.txt","Checks/getPrnXvt15.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt2_32.txt","Checks/getPrnXvt32.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member getPrnHealth()
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test assures that for a specific PRN
+**** and Time, that SV is as we expect it, health (0).
+*/
+
+void xRinexEphemerisStore :: BCESgetPrnHealthTest (void)
+{
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+ try
+ {
+
+
+ CPPUNIT_ASSERT_NO_THROW(Store.getPrnHealth(PRN1,Time));
+
+ CPPUNIT_ASSERT_EQUAL((short) 0,Store.getPrnHealth(PRN1,Time));
+ CPPUNIT_ASSERT_EQUAL((short) 0,Store.getPrnHealth(PRN15,Time));
+ CPPUNIT_ASSERT_EQUAL((short) 0,Store.getPrnHealth(PRN32,Time));
+
+ CPPUNIT_ASSERT_THROW(Store.getPrnHealth(PRN0,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.getPrnHealth(PRN33,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member dump()
+
+**** This test makes sure that dump() behaves as expected. With paramters from
+**** 0-2 with each giving more and more respective information, this information is
+**** then put into txt files.
+
+**** To see the dump with paramter 0, please view DumpData0.txt
+**** To see the dump with paramter 1, pleave view DumpData1.txt
+**** To see the dump with paramter 2, please uncomment the test and view the command
+**** line output (cout).
+*/
+
+void xRinexEphemerisStore :: BCESdumpTest (void)
+{
+ ofstream DumpData0;
+ ofstream DumpData1;
+ ofstream DumpData2;
+ DumpData0.open ("Logs/DumpData0.txt");
+ DumpData1.open ("Logs/DumpData1.txt");
+ DumpData2.open ("Logs/DumpData2.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.dump(0,DumpData0));
+ CPPUNIT_ASSERT_NO_THROW(Store.dump(1,DumpData1));
+ //Code outputs to cout but does pass, just dont want to run that every time
+ //CPPUNIT_ASSERT_NO_THROW(Store.dump(2,DumpData2));
+ //Store.dump(2,DumpData2);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/DumpData0.txt","Checks/DumpData0.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/DumpData1.txt","Checks/DumpData1.chk"));
+ //CPPUNIT_ASSERT(fileEqualTest("Logs/DumpData2.txt","Checks/DumpData2.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member addEphemeris()
+
+**** This test assures that no exceptions are thrown when a an ephemeris, taken from Store
+**** is added to a blank BCES Object. Then the test makes sure that only that Ephemeris
+**** is in the object by checking the start and end times of the Object
+
+**** Question: Why does this eph data begin two hours earlier than it does on the output?
+*/
+
+void xRinexEphemerisStore :: BCESaddEphemerisTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/addEphemerisTest.txt");
+
+
+ gpstk::BCEphemerisStore Blank;
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+ short PRN = 1;
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime TimeB(2006,1,31,9,59,44);
+ const gpstk::EngEphemeris& eph = Store.findEphemeris(PRN,Time);
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Blank.addEphemeris(eph));
+ Blank.addEphemeris(eph);
+
+ CPPUNIT_ASSERT_EQUAL(TimeB,Blank.getInitialTime());
+ CPPUNIT_ASSERT_EQUAL(TimeB,Blank.getFinalTime());
+
+ Blank.dump(1,DumpData);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/addEphemerisTest.txt","Checks/addEphemerisTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member edit()
+
+**** This test assures that no exceptions are thrown when we edit a RES object
+**** then after we edit the RES Object, we test to make sure that our edit time
+**** parameters are now the time endpoints of the object.
+
+**** For further inspection of the edit, please view editTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESeditTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/editTest.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime TimeMax(2006,1,31,15,45,0);
+ gpstk::DayTime TimeMin(2006,1,31,3,0,0);
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.edit(TimeMin, TimeMax));
+ Store.edit(TimeMin, TimeMax);
+ CPPUNIT_ASSERT_EQUAL(TimeMin,Store.getInitialTime());
+ CPPUNIT_ASSERT_EQUAL(TimeMax,Store.getFinalTime());
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/editTest.txt","Checks/editTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member wiper()
+
+**** This test assures that no exceptions are thrown when we wiper a RES object
+**** then after we wiper the RES Object, we test to make sure that our wiper time
+**** parameter in now the time endpoint of the object.
+
+**** For further inspection of the edit, please view wiperTest.txt
+
+**** Please note that this test also indirectly tests size
+*/
+
+void xRinexEphemerisStore :: BCESwiperTest (void)
+{
+ ofstream DumpData1;
+ ofstream DumpData2;
+ DumpData1.open ("Logs/wiperTest.txt");
+ DumpData2.open ("Logs/wiperTest2.txt");
+
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+
+ try
+ {
+ //Make sure it doesn't fail but dont wipe anything
+ CPPUNIT_ASSERT_NO_THROW(Store.wiper(gpstk::DayTime::BEGINNING_OF_TIME));
+ //Wipe everything and make sure that we did wipe all the data
+ Store.wiper(Time);
+ Store.dump(1,DumpData1);
+
+ CPPUNIT_ASSERT_EQUAL(Time,Store.getInitialTime());
+
+ unsigned int Num = Store.ubeSize();
+
+ CPPUNIT_ASSERT_EQUAL(Num,Store.wiper(gpstk::DayTime::END_OF_TIME));
+
+ Store.dump(1,DumpData2);
+
+ CPPUNIT_ASSERT_EQUAL(gpstk::DayTime::END_OF_TIME,Store.getInitialTime());
+
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/wiperTest.txt","Checks/wiperTest.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/wiperTest.txt","Checks/wiperTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member clear()
+
+**** This test assures that no exceptions are thrown when we clear a RES object
+**** then after we clear the RES Object, we test to make sure that END_OF_TIME is our
+**** initial time and BEGINNING_OF_TIME is our final time
+
+**** For further inspection of the edit, please view clearTest.txt
+*/
+void xRinexEphemerisStore :: BCESclearTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Checks/clearTest.chk");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.clear());
+
+ CPPUNIT_ASSERT_EQUAL(gpstk::DayTime::END_OF_TIME,Store.getInitialTime());
+ CPPUNIT_ASSERT_EQUAL(gpstk::DayTime::BEGINNING_OF_TIME,Store.getFinalTime());
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/clearTest.txt","Checks/clearTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member findUserEphemeris()
+
+**** findUserEphemeris find the ephemeris which a) is within the fit tinterval for the
+**** given time of interest and 2) is the last ephemeris transmitted before the time of
+**** interest (i.e. min(toi-HOW time))
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Store is then cleared and the ephemeris data is readded
+**** for output purposes.
+
+**** For further inspection of the find, please view findUserTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESfindUserTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/findUserTest.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,13,0,1);
+
+ short PRN0 = 0;
+ short PRN1 = 1;
+ short PRN15 = 15;
+ short PRN32 = 32;
+ short PRN33 = 33;
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(Store.findUserEphemeris(PRN0,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findUserEphemeris(PRN33,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findUserEphemeris(PRN1,gpstk::DayTime::END_OF_TIME),
+ gpstk::EphemerisStore::NoEphemerisFound);
+
+ CPPUNIT_ASSERT_NO_THROW(Store.findUserEphemeris(PRN1, Time));
+
+ const gpstk::EngEphemeris& Eph1 = Store.findUserEphemeris(PRN1, Time);
+ const gpstk::EngEphemeris& Eph15 = Store.findUserEphemeris(PRN15, Time);
+ const gpstk::EngEphemeris& Eph32 = Store.findUserEphemeris(PRN32, Time);
+
+ Store.clear();
+
+ Store.addEphemeris(Eph1);
+ Store.addEphemeris(Eph15);
+ Store.addEphemeris(Eph32);
+
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findUserTest.txt","Checks/findUserTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member findNearEphemeris()
+**** findNearEphemeris finds the ephemeris with the HOW time closest to the time t, i.e
+**** with the smalles fabs(t-HOW), but still within the fit interval
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Store is then cleared and the epeheris data is readded
+**** for output purposes.
+
+**** For further inspection of the find, please view findNearTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESfindNearTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/findNearTest.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,13,0,1);
+
+ short PRN0 = 0;
+ short PRN1 = 1;
+ short PRN15 = 15;
+ short PRN32 = 32;
+ short PRN33 = 33;
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(Store.findNearEphemeris(PRN0,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findNearEphemeris(PRN33,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findNearEphemeris(PRN1,gpstk::DayTime::END_OF_TIME),
+ gpstk::EphemerisStore::NoEphemerisFound);
+
+ CPPUNIT_ASSERT_NO_THROW(Store.findNearEphemeris(PRN1, Time));
+
+ const gpstk::EngEphemeris& Eph1 = Store.findNearEphemeris(PRN1, Time);
+ const gpstk::EngEphemeris& Eph15 = Store.findNearEphemeris(PRN15, Time);
+ const gpstk::EngEphemeris& Eph32 = Store.findNearEphemeris(PRN32, Time);
+
+ Store.clear();
+
+ Store.addEphemeris(Eph1);
+ Store.addEphemeris(Eph15);
+ Store.addEphemeris(Eph32);
+
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findNearTest.txt","Checks/findNearTest.chk"));
+}
+
+
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member addToList()
+
+**** This test creats a list of EngEphemeris and then adds all of the ephemeris
+**** members to that list. After that of the List and Store are checked to be
+**** equal.
+
+**** For further inspection of the add, please view addToListTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESaddToListTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/addToListTest.txt");
+
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ try
+ {
+ std::list<gpstk::EngEphemeris> EphList; // Empty Ephemeris List
+
+ //Assert that the number of added members equals the size of Store (all members added)
+ CPPUNIT_ASSERT_EQUAL(Store.ubeSize(),(unsigned) Store.addToList(EphList));
+ CPPUNIT_ASSERT_EQUAL((unsigned) EphList.size(),Store.ubeSize());
+
+ typedef list<gpstk::EngEphemeris>::const_iterator LI;
+ for (LI i = EphList.begin();i!=EphList.end();i++)
+ {
+ const gpstk::EngEphemeris& e = *i;
+ DumpData << e;
+ }
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/addToListTest.txt","Checks/addToListTest.chk"));
+}
+
+
+bool xRinexEphemerisStore :: fileEqualTest (char* handle1, char* handle2)
+{
+ bool isEqual = false;
+
+ ifstream File1;
+ ifstream File2;
+
+ std::string File1Line;
+ std::string File2Line;
+
+ File1.open(handle1);
+ File2.open(handle2);
+
+ while (!File1.eof())
+ {
+ if (File2.eof())
+ return isEqual;
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ if (File1Line != File2Line)
+ return isEqual;
+ }
+ if (!File2.eof())
+ return isEqual;
+ else
+ return isEqual = true;
+}
diff --git a/dev/tests/BCEphemerisStore/xRinexEphemerisStore.hpp b/dev/tests/BCEphemerisStore/xRinexEphemerisStore.hpp
new file mode 100644
index 0000000..d3c00c4
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/xRinexEphemerisStore.hpp
@@ -0,0 +1,57 @@
+// file: xRinexEphemerisStore.hpp
+
+#ifndef XRINEXEPHEMERISSTORE_HPP
+#define XRINEXEPHEMERISSTORE_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "RinexEphemerisStore.hpp"
+#include <fstream>
+
+
+using namespace std;
+
+
+class xRinexEphemerisStore: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xRinexEphemerisStore);
+ CPPUNIT_TEST (RESTest);
+ CPPUNIT_TEST (BCESfindEphTest);
+ CPPUNIT_TEST (BCESgetPrnXvtTest);
+ CPPUNIT_TEST (BCESgetPrnXvt2Test);
+ CPPUNIT_TEST (BCESgetPrnHealthTest);
+ CPPUNIT_TEST (BCESdumpTest);
+ CPPUNIT_TEST (BCESaddEphemerisTest);
+ CPPUNIT_TEST (BCESeditTest);
+ CPPUNIT_TEST (BCESwiperTest);
+ CPPUNIT_TEST (BCESclearTest);
+ CPPUNIT_TEST (BCESfindUserTest);
+ CPPUNIT_TEST (BCESfindNearTest);
+ CPPUNIT_TEST (BCESaddToListTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void RESTest (void);
+ void BCESfindEphTest (void);
+ void BCESgetPrnXvtTest (void);
+ void BCESgetPrnXvt2Test (void);
+ void BCESgetPrnHealthTest (void);
+ void BCESdumpTest (void);
+ void BCESaddEphemerisTest (void);
+ void BCESeditTest (void);
+ void BCESwiperTest (void);
+ void BCESclearTest (void);
+ void BCESfindUserTest (void);
+ void BCESfindNearTest (void);
+ void BCESaddToListTest (void);
+ bool fileEqualTest (char[], char[]);
+
+ private:
+
+};
+#endif
diff --git a/dev/tests/BCEphemerisStore/xRinexEphemerisStoreM.cpp b/dev/tests/BCEphemerisStore/xRinexEphemerisStoreM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/BCEphemerisStore/xRinexEphemerisStoreM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/BinUtils/BinUtils.cpp b/dev/tests/BinUtils/BinUtils.cpp
new file mode 120000
index 0000000..2a157cb
--- /dev/null
+++ b/dev/tests/BinUtils/BinUtils.cpp
@@ -0,0 +1 @@
+../../src/BinUtils.cpp
\ No newline at end of file
diff --git a/dev/tests/BinUtils/BinUtils.hpp b/dev/tests/BinUtils/BinUtils.hpp
new file mode 120000
index 0000000..13d201b
--- /dev/null
+++ b/dev/tests/BinUtils/BinUtils.hpp
@@ -0,0 +1 @@
+../../src/BinUtils.hpp
\ No newline at end of file
diff --git a/dev/tests/BinUtils/Jamfile b/dev/tests/BinUtils/Jamfile
new file mode 100644
index 0000000..f0a0455
--- /dev/null
+++ b/dev/tests/BinUtils/Jamfile
@@ -0,0 +1,3 @@
+SubDir TOP BinUtils ;
+
+TestMain BinUtils/xBinUtils.tst : BinUtils/xBinUtilsM.cpp BinUtils/xBinUtils.cpp BinUtils/BinUtils.cpp ;
diff --git a/dev/tests/BinUtils/makefile b/dev/tests/BinUtils/makefile
new file mode 100644
index 0000000..39665e1
--- /dev/null
+++ b/dev/tests/BinUtils/makefile
@@ -0,0 +1,20 @@
+# file: makefile
+
+CPPUNIT_PATH=/home/ehagen
+
+xBinUtils.tst: xBinUtilsM.o xBinUtils.o BinUtils.o
+ g++ -o xBinUtils.tst xBinUtilsM.o xBinUtils.o BinUtils.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+BinUtils.o: /home/ehagen/gpstk/src/BinUtils.cpp /home/ehagen/gpstk/src/BinUtils.hpp
+ g++ -c /home/ehagen/gpstk/src/BinUtils.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xBinUtils.o: xBinUtils.cpp xBinUtils.hpp
+ g++ -c xBinUtils.cpp -I${CPPUNIT_PATH}/include -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xBinUtilsM.o: xBinUtilsM.cpp
+ g++ -c xBinUtilsM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+clean:
+ rm -f *.o
+ rm -f *.g*
+ rm -f *.*.g*
diff --git a/dev/tests/BinUtils/xBinUtils.cpp b/dev/tests/BinUtils/xBinUtils.cpp
new file mode 100644
index 0000000..53cfaeb
--- /dev/null
+++ b/dev/tests/BinUtils/xBinUtils.cpp
@@ -0,0 +1,146 @@
+// file: xBinUtils.cpp
+
+#include "xBinUtils.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xBinUtils);
+
+
+void xBinUtils :: setUp (void)
+{
+}
+
+void xBinUtils :: firstTest (void)
+{
+ cout.setf(ios_base::hex,ios_base::basefield);
+
+ unsigned char Store[12] = {0x11,0x33,0x77,0xFF,0xBB,0x22,0xDD,0x44,0x66,0xEE,0x99,0x66};
+
+ char a;
+ unsigned char *ptra = (unsigned char *)& a;
+ for (int i = sizeof(char)-1;i>=0;i--)
+ {
+ *ptra = Store[i];
+ *ptra++;
+ }
+
+ short b;
+ unsigned char *ptrb = (unsigned char *)& b;
+ for (int i = sizeof(short)-1;i>=0;i--)
+ {
+ *ptrb = Store[i];
+ *ptrb++;
+ }
+
+ int c;
+ unsigned char *ptrc = (unsigned char *)& c;
+ for (int i = sizeof(int)-1;i>=0;i--)
+ {
+ *ptrc = Store[i];
+ *ptrc++;
+ }
+
+ long d;
+ unsigned char *ptrd = (unsigned char *)& d;
+ for (int i = sizeof(long)-1;i>=0;i--)
+ {
+ *ptrd = Store[i];
+ *ptrd++;
+ }
+
+ float e;
+ unsigned char *ptre = (unsigned char *)& e;
+ for (int i = sizeof(float)-1;i>=0;i--)
+ {
+ *ptre = Store[i];
+ *ptre++;
+ }
+
+ double f;
+ unsigned char *ptrf = (unsigned char *)& f;
+ for (int i = sizeof(double)-1;i>=0;i--)
+ {
+ *ptrf = Store[i];
+ *ptrf++;
+ }
+
+ long double g;
+ unsigned char *ptrg = (unsigned char *)& g;
+ for (int i = sizeof(long double)-1;i>=0;i--)
+ {
+ *ptrg = Store[i];
+ *ptrg++;
+ }
+
+ char a1;
+ unsigned char *ptra1 = (unsigned char *)& a1;
+ for (int i =0;i<sizeof(char);i++)
+ {
+ *ptra1 = Store[i];
+ *ptra1++;
+ }
+
+ short b1;
+ unsigned char *ptrb1 = (unsigned char *)& b1;
+ for (int i =0;i<sizeof(short);i++)
+ {
+ *ptrb1 = Store[i];
+ *ptrb1++;
+ }
+
+ int c1;
+ unsigned char *ptrc1 = (unsigned char *)& c1;
+ for (int i =0;i<sizeof(int);i++)
+ {
+ *ptrc1 = Store[i];
+ *ptrc1++;
+ }
+
+ long d1;
+ unsigned char *ptrd1 = (unsigned char *)& d1;
+ for (int i =0;i<sizeof(long);i++)
+ {
+ *ptrd1 = Store[i];
+ *ptrd1++;
+ }
+
+ float e1;
+ unsigned char *ptre1 = (unsigned char *)& e1;
+ for (int i =0;i<sizeof(float);i++)
+ {
+ *ptre1 = Store[i];
+ *ptre1++;
+ }
+
+ double f1;
+ unsigned char *ptrf1 = (unsigned char *)& f1;
+ for (int i =0;i<sizeof(double);i++)
+ {
+ *ptrf1 = Store[i];
+ *ptrf1++;
+ }
+
+ long double g1;
+ unsigned char *ptrg1 = (unsigned char *)& g1;
+ for (int i =0;i<sizeof(long double);i++)
+ {
+ *ptrg1 = Store[i];
+ *ptrg1++;
+ }
+
+ gpstk::BinUtils::twiddle(a);
+ gpstk::BinUtils::twiddle(b);
+ gpstk::BinUtils::twiddle(c);
+ gpstk::BinUtils::twiddle(d);
+ gpstk::BinUtils::twiddle(e);
+ gpstk::BinUtils::twiddle(f);
+ gpstk::BinUtils::twiddle(g);
+
+ CPPUNIT_ASSERT_EQUAL(a1,a);
+ CPPUNIT_ASSERT_EQUAL(b1,b);
+ CPPUNIT_ASSERT_EQUAL(c1,c);
+ CPPUNIT_ASSERT_EQUAL(d1,d);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(e1,e,1e-50);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(f1,f,1e-50);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(g1,g,1e-50);
+
+}
diff --git a/dev/tests/BinUtils/xBinUtils.hpp b/dev/tests/BinUtils/xBinUtils.hpp
new file mode 100644
index 0000000..a8b311a
--- /dev/null
+++ b/dev/tests/BinUtils/xBinUtils.hpp
@@ -0,0 +1,30 @@
+// file: xBinUtils.hpp
+
+#ifndef XBINUTILS_HPP
+#define XBINUTILS_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "BinUtils.hpp"
+
+using namespace std;
+
+
+class xBinUtils: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xBinUtils);
+ CPPUNIT_TEST (firstTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void firstTest (void); // Test constructors
+
+ private:
+};
+
+#endif
diff --git a/dev/tests/BinUtils/xBinUtilsM.cpp b/dev/tests/BinUtils/xBinUtilsM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/BinUtils/xBinUtilsM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/Binex/binex_read_write.cpp b/dev/tests/Binex/binex_read_write.cpp
new file mode 100644
index 0000000..273a1e9
--- /dev/null
+++ b/dev/tests/Binex/binex_read_write.cpp
@@ -0,0 +1,539 @@
+#pragma ident "$Id: //depot/msn/r5.3/code/shared/gpstk/test/binex_read_write.cpp#1 $"
+
+#include <stdlib.h> // For lrand48()
+#include "BinexData.hpp"
+#include "BinexStream.hpp"
+#include "BasicFramework.hpp"
+
+/**
+ * @file BinexReadWriteTest.cpp
+ *
+ * Tests gpstk::BinexData
+ */
+
+using namespace std;
+using namespace gpstk;
+
+/**
+ *
+ */
+class BinexReadWriteTest : public BasicFramework
+{
+public:
+
+ /**
+ *
+ */
+ BinexReadWriteTest(char* arg0);
+
+ /**
+ *
+ */
+ virtual ~BinexReadWriteTest() {};
+
+protected:
+
+ enum TestDataType
+ {
+ eChar,
+ eShort,
+ eLong,
+ eUBNXI,
+ eMGFZI
+ };
+
+ typedef pair<TestDataType, void*> TestData;
+ typedef vector<TestData> TestDataList;
+ typedef vector<TestDataList> TestDataListList;
+ typedef vector<BinexData> RecordList;
+
+ /**
+ *
+ */
+ void process()
+ throw();
+
+ /**
+ *
+ */
+ void report(string description,
+ bool pass);
+
+ /**
+ *
+ */
+ void report(string description,
+ const unsigned long expectedValue,
+ const size_t expectedSize,
+ const BinexData::UBNXI& actual,
+ const bool littleEndian = false);
+
+ /**
+ *
+ */
+ void report(string description,
+ const long long expectedValue,
+ const size_t expectedSize,
+ const BinexData::MGFZI& actual,
+ const bool littleEndian = false);
+
+ /**
+ *
+ */
+ void dumpBuffer(const unsigned char* buffer, size_t size);
+
+ TestDataListList testData;
+
+ RecordList testRecords;
+
+}; // class BinexReadWriteTest
+
+
+//---------------------------------------------------------------------------
+BinexReadWriteTest::BinexReadWriteTest(char* arg0) :
+ BasicFramework (arg0, "Tests Binex record reading and writing")
+{
+ // Intentionally empty
+}
+
+
+//---------------------------------------------------------------------------
+void BinexReadWriteTest::process()
+ throw()
+{
+ if (verboseLevel > 0)
+ {
+ cout << "Creating BINEX records . . ." << endl;
+ }
+
+ for (short recNum = 0; recNum < 10; recNum++)
+ {
+ BinexData record(recNum);
+ TestDataList recordData;
+ size_t offset = 0;
+
+ for (short dataNum = 0; dataNum < 80; dataNum++)
+ {
+ TestDataType whichType = (TestDataType)(rand() % (eMGFZI + 1) );
+ void *value = NULL;
+
+ switch (whichType)
+ {
+ case eChar:
+ {
+ char c = (char)(rand() % 0x100);
+ record.updateMessageData(offset, c, sizeof(c) );
+ value = new char(c);
+ break;
+ }
+ case eShort:
+ {
+ short s = (short)(rand() % 10000);
+ record.updateMessageData(offset, s, sizeof(s) );
+ value = new short(s);
+ break;
+ }
+ case eLong:
+ {
+ long l = (long)(lrand48() );
+ record.updateMessageData(offset, l, sizeof(l) );
+ value = new long(l);
+ break;
+ }
+ case eUBNXI:
+ {
+ BinexData::UBNXI u( (unsigned long)(abs(lrand48() ) ) % BinexData::UBNXI::MAX_VALUE);
+ record.updateMessageData(offset, u);
+ value = new BinexData::UBNXI(u);
+ break;
+ }
+ case eMGFZI:
+ {
+ BinexData::MGFZI m( (long long)(lrand48() ) );
+ record.updateMessageData(offset, m);
+ value = new BinexData::MGFZI(m);
+ break;
+ }
+ default:
+ // Internal error
+ exit(1);
+ }
+ if (value != NULL)
+ {
+ recordData.push_back(TestData(whichType, value) );
+ }
+ }
+ testData.push_back(recordData);
+ testRecords.push_back(record);
+ }
+
+ if (verboseLevel > 0)
+ {
+ cout << "Verifying BINEX records . . ." << endl;
+ }
+ TestDataListList::iterator dataListIter = testData.begin();
+ RecordList::iterator recordIter = testRecords.begin();
+ bool more = true;
+ while ( (dataListIter != testData.end() )
+ && (recordIter != testRecords.end() ) )
+ {
+ TestDataList dataList = *dataListIter;
+ BinexData record = *recordIter;
+ try
+ {
+ size_t offset = 0;
+ TestDataList::iterator dataIter = (*dataListIter).begin();
+ while (dataIter != (*dataListIter).end() )
+ {
+ switch ( (*dataIter).first)
+ {
+ case eChar:
+ {
+ string desc = "Comparing character record message data";
+ char c;
+ record.extractMessageData(offset, c, sizeof(c) );
+ if (memcmp( (void*)&c, (*dataIter).second, sizeof(c) ) )
+ {
+ report(desc, false);
+ cout << " Actual: " << c << endl;
+ cout << " Expected: " << *( (char*)(*dataIter).second) << endl;
+ }
+ else
+ {
+ report(desc, true);
+ }
+ break;
+ }
+ case eShort:
+ {
+ string desc = "Comparing short record message data";
+ short s;
+ record.extractMessageData(offset, s, sizeof(s) );
+ if (memcmp( (void*)&s, (*dataIter).second, sizeof(s) ) )
+ {
+ report(desc, false);
+ cout << " Actual: " << s << endl;
+ cout << " Expected: " << *( (char*)(*dataIter).second) << endl;
+ }
+ else
+ {
+ report(desc, true);
+ }
+ break;
+ }
+ case eLong:
+ {
+ string desc = "Comparing long record message data";
+ long l;
+ record.extractMessageData(offset, l, sizeof(l) );
+ if (memcmp( (void*)&l, (*dataIter).second, sizeof(l) ) )
+ {
+ report(desc, false);
+ cout << " Actual: " << l << endl;
+ cout << " Expected: " << *( (char*)(*dataIter).second) << endl;
+ }
+ else
+ {
+ report(desc, true);
+ }
+ break;
+ }
+ case eUBNXI:
+ {
+ string desc = "Comparing UBNXI record message data";
+ BinexData::UBNXI u;
+ record.extractMessageData(offset, u);
+ if (u == *( (BinexData::UBNXI*)(*dataIter).second) )
+ {
+ report(desc, true);
+ }
+ else
+ {
+ report(desc, false);
+ cout << " Actual: " << (unsigned long)u << endl;
+ cout << " Expected: " << (unsigned long)*( (BinexData::UBNXI*)(*dataIter).second) << endl;
+ }
+ break;
+ }
+ case eMGFZI:
+ {
+ string desc = "Comparing MGFZI record message data";
+ BinexData::MGFZI m;
+ record.extractMessageData(offset, m);
+ if (m == *( (BinexData::MGFZI*)(*dataIter).second) )
+ {
+ report(desc, true);
+ }
+ else
+ {
+ report(desc, false);
+ cout << " Actual: " << (long long)m << endl;
+ cout << " Expected: " << (long long)*( (BinexData::MGFZI*)(*dataIter).second) << endl;
+ }
+ break;
+ }
+ default:
+ // Internal error
+ exit(1);
+ }
+ dataIter++;
+ }
+ }
+ catch (FFStreamError e)
+ {
+ cout << " FFStreamError reading record." << endl;
+ }
+ catch (...)
+ {
+ cout << " Unknown error reading record." << endl;
+ }
+ dataListIter++;
+ recordIter++;
+
+ }
+
+ if (verboseLevel > 0)
+ {
+ cout << "Writing BINEX file . . ." << endl;
+ }
+ BinexStream outStream("test.out", std::ios::out | std::ios::binary);
+ outStream.exceptions(ios_base::failbit | ios_base::badbit);
+ recordIter = testRecords.begin();
+ while (recordIter != testRecords.end() )
+ {
+ try
+ {
+ (*recordIter).putRecord(outStream);
+ }
+ catch(...)
+ {
+ cout << " Error writing record." << endl;
+ }
+ recordIter++;
+ }
+ outStream.close();
+
+ if (verboseLevel > 0)
+ {
+ cout << "Reading BINEX file . . ." << endl;
+ }
+ BinexStream inStream("test.out", std::ios::in | std::ios::binary);
+ inStream.exceptions(ios_base::failbit);
+ recordIter = testRecords.begin();
+ while (inStream.good() && (EOF != inStream.peek() ) )
+ {
+ if (recordIter == testRecords.end() )
+ {
+ cout << "Stored records exhausted before file records - exiting." << endl;
+ break;
+ }
+ BinexData record;
+ try
+ {
+ record.getRecord(inStream);
+ if (record == *recordIter)
+ {
+ report("Reading and comparing BINEX record", true);
+ }
+ else
+ {
+ report("Reading and comparing BINEX record", false);
+ cout << "Actual record:" << endl;
+ (*recordIter).dump(cout);
+ cout << "Expected record:" << endl;
+ record.dump(cout);
+ }
+ }
+ catch (FFStreamError e)
+ {
+ cout << e << endl;
+ }
+ catch (...)
+ {
+ cout << " Unknown error reading record." << endl;
+ }
+ recordIter++;
+ }
+ inStream.close();
+
+}
+
+
+//---------------------------------------------------------------------------
+void BinexReadWriteTest::report(string description,
+ bool pass)
+{
+ if (pass)
+ {
+ if (verboseLevel > 1)
+ {
+ cout << " PASS - " << description << endl;
+ }
+ }
+ else
+ {
+ cout << " FAIL - " << description << endl;
+ }
+}
+
+/*
+//---------------------------------------------------------------------------
+void BinexReadWriteTest::report(string description,
+ const unsigned long expectedValue,
+ const unsigned short expectedSize,
+ const BinexData::UBNXI& actual,
+ const bool littleEndian)
+{
+ unsigned long actualValue = (unsigned long)actual;
+ unsigned short actualSize = actual.getSize();
+
+ if ( (expectedValue != (unsigned long)actualValue)
+ || (expectedSize != actualSize) )
+ {
+ cout << " FAIL - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ cout << " Expected Value = " << expectedValue << endl;
+ cout << " Actual Value = " << actualValue << endl;
+ cout << " Expected Size = " << expectedSize << endl;
+ cout << " Actual Size = " << actualSize << endl;
+
+ unsigned char bytes[8];
+ unsigned char byteCount;
+ actual.encode(bytes, byteCount); //, littleEndian);
+ cout << " Raw Hex Bytes =";
+ for (unsigned char i = 0; i < byteCount; i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ else
+ {
+ if (verboseLevel > 1)
+ {
+ cout << " PASS - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ unsigned char bytes[8];
+ unsigned char byteCount;
+ actual.encode(bytes, byteCount); //, littleEndian);
+ cout << " Value = " << (unsigned long)actual << " Raw Hex Bytes =";
+ for (unsigned char i = 0; i < byteCount; i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void BinexReadWriteTest::report(string description,
+ const long long expectedValue,
+ const unsigned short expectedSize,
+ const BinexData::MGFZI& actual,
+ const bool littleEndian)
+{
+ long long actualValue = (long long)actual;
+ unsigned short actualSize = actual.getSize();
+
+ if ( (expectedValue != (long long)actualValue)
+ || (expectedSize != actualSize) )
+ {
+ cout << " FAIL - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ cout << " Expected Value = " << expectedValue << endl;
+ cout << " Actual Value = " << actualValue << endl;
+ cout << " Expected Size = " << expectedSize << endl;
+ cout << " Actual Size = " << actualSize << endl;
+
+ unsigned char bytes[8];
+ unsigned char byteCount;
+ actual.encode(bytes, byteCount); //, littleEndian);
+ cout << " Raw Hex Bytes =";
+ for (unsigned char i = 0; i < byteCount; i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ else
+ {
+ if (verboseLevel > 1)
+ {
+ cout << " PASS - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ unsigned char bytes[8];
+ unsigned char byteCount;
+ actual.encode(bytes, byteCount); //, littleEndian);
+ cout << " Value = " << actualValue << " Raw Hex Bytes =";
+ for (unsigned char i = 0; i < byteCount; i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ }
+}
+*/
+
+//---------------------------------------------------------------------------
+void BinexReadWriteTest::dumpBuffer(const unsigned char* buffer, size_t size)
+{
+ cout << " Raw Hex Bytes =";
+ for (size_t i = 0; i < size; i++)
+ {
+ cout << " " << hex << (unsigned short)buffer[i];
+ }
+ cout << dec << endl;
+}
+
+
+/**
+ * Returns 0 if successful.
+ */
+main(int argc, char *argv[])
+{
+ BinexReadWriteTest app(argv[0]);
+
+ if (!app.initialize(argc, argv) )
+ {
+ return 0;
+ }
+
+ if (!app.run() )
+ {
+ return 1;
+ }
+
+ exit(0);
+
+} // main()
diff --git a/dev/tests/Binex/binex_types_test.cpp b/dev/tests/Binex/binex_types_test.cpp
new file mode 100644
index 0000000..72f382a
--- /dev/null
+++ b/dev/tests/Binex/binex_types_test.cpp
@@ -0,0 +1,813 @@
+#pragma ident "$Id: //depot/msn/main/shared/gpstk/tests/binex_types_test.cpp#1 $"
+
+#include <stdlib.h> // For lrand48()
+#include "BinexData.hpp"
+#include "BasicFramework.hpp"
+
+/**
+ * @file binex_types_test.cpp
+ *
+ * Tests gpstk::BinexData::UBNXI, gpstk::BinexData::MGFZI
+ */
+
+using namespace std;
+using namespace gpstk;
+
+/**
+ *
+ */
+class BinexTypesTest : public BasicFramework
+{
+public:
+
+ /**
+ *
+ */
+ BinexTypesTest(char* arg0);
+
+ /**
+ *
+ */
+ virtual ~BinexTypesTest() {};
+
+protected:
+
+ /**
+ *
+ */
+ void process()
+ throw();
+
+ /**
+ *
+ */
+ void report(string description,
+ bool pass);
+
+ /**
+ *
+ */
+ void report(string description,
+ const unsigned long expectedValue,
+ const size_t expectedSize,
+ const BinexData::UBNXI& actual,
+ const bool littleEndian = false);
+
+ /**
+ *
+ */
+ void report(string description,
+ const long long expectedValue,
+ const size_t expectedSize,
+ const BinexData::MGFZI& actual,
+ const bool littleEndian = false);
+
+ /**
+ *
+ */
+ void dumpBuffer(const unsigned char* buffer, size_t size);
+
+}; // class BinexTypesTest
+
+
+//---------------------------------------------------------------------------
+BinexTypesTest::BinexTypesTest(char* arg0) :
+ BasicFramework (arg0, "Tests Binex types UBNXI and MGFZI")
+{
+ // Intentionally empty
+}
+
+
+//---------------------------------------------------------------------------
+void BinexTypesTest::process()
+ throw()
+{
+ // Test UBNXI class
+ if (verboseLevel > 0)
+ {
+ cout << "Testing UBNXI initialization . . ." << endl;
+ }
+ {
+ BinexData::UBNXI u;
+ report("UBNXI: Uninitialized", 0, 1, u);
+ }
+ {
+ BinexData::UBNXI u(0);
+ report("UBNXI: Initialize boundary condition", 0, 1, u);
+ }
+ {
+ BinexData::UBNXI u(127);
+ report("UBNXI: Initialize boundary condition", 127, 1, u);
+ }
+ {
+ BinexData::UBNXI u(128);
+ report("UBNXI: Initialize boundary condition", 128, 2, u);
+ }
+ {
+ BinexData::UBNXI u(16383);
+ report("UBNXI: Initialize boundary condition", 16383, 2, u);
+ }
+ {
+ BinexData::UBNXI u(16384);
+ report("UBNXI: Initialize boundary condition", 16384, 3, u);
+ }
+ {
+ BinexData::UBNXI u(2097151);
+ report("UBNXI: Initialize boundary condition", 2097151, 3, u);
+ }
+ {
+ BinexData::UBNXI u(2097152);
+ report("UBNXI: Initialize boundary condition", 2097152, 4, u);
+ }
+ {
+ BinexData::UBNXI u(536870911);
+ report("UBNXI: Initialize boundary condition", 536870911, 4, u);
+ }
+ try
+ {
+ BinexData::UBNXI u(536870912);
+ report("UBNXI: Overflow exception not generated for 536870912", false);
+ }
+ catch (Exception e)
+ {
+ report("UBNXI: Overflow exception correctly generated for 536870912", true);
+ }
+
+ if (verboseLevel > 0)
+ {
+ cout << "Testing UBNXI encoding/decoding . . ." << endl;
+ }
+ for (unsigned short littleEndian = 0; littleEndian <= 1; littleEndian++)
+ {
+ BinexData::UBNXI u2;
+ //unsigned char buffer[4];
+ std::string buffer;
+ size_t offset = 0;
+ size_t len;
+ string descB = "UBNXI: Encode/decode, boundary condition";
+ string descR = "UBNXI: Encode/decode, random";
+
+ {
+ BinexData::UBNXI u1(0);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 0, 1, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(127);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 127, 1, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(128);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 128, 2, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(506);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 506, 2, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(15619);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 15619, 2, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(16383);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 16383, 2, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(16384);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 16384, 3, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(2097151);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 2097151, 3, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(2097152);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 2097152, 4, u2, (bool)littleEndian);
+ }
+ {
+ BinexData::UBNXI u1(536870911);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 536870911, 4, u2, (bool)littleEndian);
+ }
+
+ for (unsigned long i = 1000; i < BinexData::UBNXI::MAX_VALUE; i <<= 3)
+ {
+ for (unsigned long j = 0; j < 50; j++)
+ {
+ unsigned long v = (unsigned long)lrand48() % i;
+ BinexData::UBNXI u1(v);
+ u1.encode(buffer, offset, (bool)littleEndian);
+ u2.decode(buffer, offset, (bool)littleEndian);
+ report(descR, v, u1.getSize(), u2, (bool)littleEndian);
+ }
+ }
+
+ }
+
+ // Test MGFZI class
+ if (verboseLevel > 0)
+ {
+ cout << "Testing MGFZI initialization . . ." << endl;
+ }
+ {
+ BinexData::MGFZI m;
+ report("MGFZI: Uninitialized", 0, 1, m);
+ }
+ {
+ BinexData::MGFZI m(0);
+ report("MGFZI: Initialize boundary condition", 0, 1, m);
+ }
+ {
+ BinexData::MGFZI m(15);
+ report("MGFZI: Initialize boundary condition", 15, 1, m);
+ }
+ {
+ BinexData::MGFZI m(-15);
+ report("MGFZI: Initialize boundary condition", -15, 1, m);
+ }
+ {
+ BinexData::MGFZI m(16);
+ report("MGFZI: Initialize boundary condition", 16, 2, m);
+ }
+ {
+ BinexData::MGFZI m(-16);
+ report("MGFZI: Initialize boundary condition", -16, 2, m);
+ }
+ {
+ BinexData::MGFZI m(4109);
+ report("MGFZI: Initialize boundary condition", 4109, 2, m);
+ }
+ {
+ BinexData::MGFZI m(-4109);
+ report("MGFZI: Initialize boundary condition", -4109, 2, m);
+ }
+ {
+ BinexData::MGFZI m(4110);
+ report("MGFZI: Initialize boundary condition", 4110, 3, m);
+ }
+ {
+ BinexData::MGFZI m(-4110);
+ report("MGFZI: Initialize boundary condition", -4110, 3, m);
+ }
+ {
+ BinexData::MGFZI m(1052684);
+ report("MGFZI: Initialize boundary condition", 1052684, 3, m);
+ }
+ {
+ BinexData::MGFZI m(-1052684);
+ report("MGFZI: Initialize boundary condition", -1052684, 3, m);
+ }
+ {
+ BinexData::MGFZI m(1052685);
+ report("MGFZI: Initialize boundary condition", 1052685, 4, m);
+ }
+ {
+ BinexData::MGFZI m(-1052685);
+ report("MGFZI: Initialize boundary condition", -1052685, 4, m);
+ }
+ {
+ BinexData::MGFZI m(269488139);
+ report("MGFZI: Initialize boundary condition", 269488139, 4, m);
+ }
+ {
+ BinexData::MGFZI m(-269488139);
+ report("MGFZI: Initialize boundary condition", -269488139, 4, m);
+ }
+ {
+ BinexData::MGFZI m(269488140);
+ report("MGFZI: Initialize boundary condition", 269488140, 5, m);
+ }
+ {
+ BinexData::MGFZI m(-269488140);
+ report("MGFZI: Initialize boundary condition", -269488140, 5, m);
+ }
+ {
+ BinexData::MGFZI m(68988964874LL);
+ report("MGFZI: Initialize boundary condition", 68988964874LL, 5, m);
+ }
+ {
+ BinexData::MGFZI m(-68988964874LL);
+ report("MGFZI: Initialize boundary condition", -68988964874LL, 5, m);
+ }
+ {
+ BinexData::MGFZI m(68988964875LL);
+ report("MGFZI: Initialize boundary condition", 68988964875LL, 6, m);
+ }
+ {
+ BinexData::MGFZI m(-68988964875LL);
+ report("MGFZI: Initialize boundary condition", -68988964875LL, 6, m);
+ }
+ {
+ BinexData::MGFZI m(17661175009289LL);
+ report("MGFZI: Initialize boundary condition", 17661175009289LL, 6, m);
+ }
+ {
+ BinexData::MGFZI m(-17661175009289LL);
+ report("MGFZI: Initialize boundary condition", -17661175009289LL, 6, m);
+ }
+ {
+ BinexData::MGFZI m(17661175009290LL);
+ report("MGFZI: Initialize boundary condition", 17661175009290LL, 7, m);
+ }
+ {
+ BinexData::MGFZI m(-17661175009290LL);
+ report("MGFZI: Initialize boundary condition", -17661175009290LL, 7, m);
+ }
+ {
+ BinexData::MGFZI m(4521260802379784LL);
+ report("MGFZI: Initialize boundary condition", 4521260802379784LL, 7, m);
+ }
+ {
+ BinexData::MGFZI m(-4521260802379784LL);
+ report("MGFZI: Initialize boundary condition", -4521260802379784LL, 7, m);
+ }
+ {
+ BinexData::MGFZI m(4521260802379785LL);
+ report("MGFZI: Initialize boundary condition", 4521260802379785LL, 8, m);
+ }
+ {
+ BinexData::MGFZI m(-4521260802379785LL);
+ report("MGFZI: Initialize boundary condition", -4521260802379785LL, 8, m);
+ }
+ {
+ BinexData::MGFZI m(BinexData::MGFZI::MAX_VALUE);
+ report("MGFZI: Initialize boundary condition", BinexData::MGFZI::MAX_VALUE, 8, m);
+ }
+ {
+ BinexData::MGFZI m(BinexData::MGFZI::MIN_VALUE);
+ report("MGFZI: Initialize boundary condition", BinexData::MGFZI::MIN_VALUE, 8, m);
+ }
+ try
+ {
+ BinexData::MGFZI m(BinexData::MGFZI::MAX_VALUE + 1);
+ report("MGFZI: Overflow exception not generated for BinexData::MGFZI::MAX_VALUE + 1", false);
+ }
+ catch (Exception e)
+ {
+ report("MGFZI: Overflow exception correctly generated for BinexData::MGFZI::MAX_VALUE + 1", true);
+ }
+ try
+ {
+ BinexData::MGFZI m(BinexData::MGFZI::MIN_VALUE - 1);
+ report("MGFZI: Underflow exception not generated for BinexData::MGFZI::MIN_VALUE - 1", false);
+ }
+ catch (Exception e)
+ {
+ report("MGFZI: Underflow exception correctly generated for BinexData::MGFZI::MIN_VALUE - 1", true);
+ }
+
+ if (verboseLevel > 0)
+ {
+ cout << "Testing MGFZI encoding/decoding . . ." << endl;
+ }
+ for (unsigned short littleEndian = 0; littleEndian <= 1; littleEndian++)
+ {
+ BinexData::MGFZI m2;
+ //unsigned char buffer[8];
+ std::string buffer;
+ size_t offset = 0;
+ size_t len;
+ string descB = "MGFZI: Encode/decode, boundary condition";
+ string descR = "MGFZI: Encode/decode, random";
+
+ {
+ BinexData::MGFZI m1(0);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 0, 1, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(15);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 15, 1, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-15);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -15, 1, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(16);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 16, 2, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-16);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -16, 2, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(4109);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 4109, 2, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-4109);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -4109, 2, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(4110);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 4110, 3, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-4110);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -4110, 3, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(1052684);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 1052684, 3, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-1052684);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -1052684, 3, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(1052685);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 1052685, 4, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-1052685);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -1052685, 4, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(269488139);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 269488139, 4, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-269488139);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -269488139, 4, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(269488140);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 269488140, 5, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-269488140);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -269488140, 5, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(68988964874LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 68988964874LL, 5, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-68988964874LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -68988964874LL, 5, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(68988964875LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 68988964875LL, 6, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-68988964875LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -68988964875LL, 6, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(17661175009289LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 17661175009289LL, 6, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-17661175009289LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -17661175009289LL, 6, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(17661175009290LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 17661175009290LL, 7, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-17661175009290LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -17661175009290LL, 7, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(4521260802379784LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 4521260802379784LL, 7, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-4521260802379784LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -4521260802379784LL, 7, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(4521260802379785LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, 4521260802379785LL, 8, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(-4521260802379785LL);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, -4521260802379785LL, 8, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(BinexData::MGFZI::MAX_VALUE);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, BinexData::MGFZI::MAX_VALUE, 8, m2, (bool)littleEndian);
+ }
+ {
+ BinexData::MGFZI m1(BinexData::MGFZI::MIN_VALUE);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ //dumpBuffer(buffer, len);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descB, BinexData::MGFZI::MIN_VALUE, 8, m2, (bool)littleEndian);
+ }
+
+ for (long long i = 1000; i < BinexData::MGFZI::MAX_VALUE; i <<= 3)
+ {
+ for (unsigned long j = 0; j < 50; j++)
+ {
+ long long v = ( (long long)lrand48() | ( (long long)lrand48() ) << 32) % i;
+ BinexData::MGFZI m1(v);
+ m1.encode(buffer, offset, (bool)littleEndian);
+ m2.decode(buffer, offset, (bool)littleEndian);
+ report(descR, v, m1.getSize(), m2, (bool)littleEndian);
+ }
+ }
+
+ }
+
+}
+
+
+//---------------------------------------------------------------------------
+void BinexTypesTest::report(string description,
+ bool pass)
+{
+ if (pass)
+ {
+ if (verboseLevel > 1)
+ {
+ cout << " PASS - " << description << endl;
+ }
+ }
+ else
+ {
+ cout << " FAIL - " << description << endl;
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void BinexTypesTest::report(string description,
+ const unsigned long expectedValue,
+ const size_t expectedSize,
+ const BinexData::UBNXI& actual,
+ const bool littleEndian)
+{
+ unsigned long actualValue = (unsigned long)actual;
+ size_t actualSize = actual.getSize();
+
+ if ( (expectedValue != (unsigned long)actualValue)
+ || (expectedSize != actualSize) )
+ {
+ cout << " FAIL - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ cout << " Expected Value = " << expectedValue << endl;
+ cout << " Actual Value = " << actualValue << endl;
+ cout << " Expected Size = " << expectedSize << endl;
+ cout << " Actual Size = " << actualSize << endl;
+
+ std::string bytes;
+ size_t offset = 0;
+ actual.encode(bytes, offset); //, littleEndian);
+ cout << " Raw Hex Bytes =";
+ for (size_t i = 0; i < bytes.size(); i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ else
+ {
+ if (verboseLevel > 1)
+ {
+ cout << " PASS - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ std::string bytes;
+ size_t offset = 0;
+ actual.encode(bytes, offset); //, littleEndian);
+ cout << " Value = " << (unsigned long)actual << " Raw Hex Bytes =";
+ for (size_t i = 0; i < bytes.size(); i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void BinexTypesTest::report(string description,
+ const long long expectedValue,
+ const size_t expectedSize,
+ const BinexData::MGFZI& actual,
+ const bool littleEndian)
+{
+ long long actualValue = (long long)actual;
+ size_t actualSize = actual.getSize();
+
+ if ( (expectedValue != (long long)actualValue)
+ || (expectedSize != actualSize) )
+ {
+ cout << " FAIL - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ cout << " Expected Value = " << expectedValue << endl;
+ cout << " Actual Value = " << actualValue << endl;
+ cout << " Expected Size = " << expectedSize << endl;
+ cout << " Actual Size = " << actualSize << endl;
+
+ std::string bytes;
+ size_t offset = 0;
+ actual.encode(bytes, offset); //, littleEndian);
+ cout << " Raw Hex Bytes =";
+ for (size_t i = 0; i < bytes.size(); i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ else
+ {
+ if (verboseLevel > 1)
+ {
+ cout << " PASS - " << description;
+ if (littleEndian)
+ {
+ cout << " (Little Endian)" << endl;
+ }
+ else
+ {
+ cout << " (Big Endian)" << endl;
+ }
+ std::string bytes;
+ size_t offset = 0;
+ actual.encode(bytes, offset); //, littleEndian);
+ cout << " Value = " << actualValue << " Raw Hex Bytes =";
+ for (size_t i = 0; i < bytes.size(); i++)
+ {
+ cout << " " << hex << (unsigned short)bytes[i];
+ }
+ cout << dec << endl;
+ }
+ }
+}
+
+
+//---------------------------------------------------------------------------
+void BinexTypesTest::dumpBuffer(const unsigned char* buffer, size_t size)
+{
+ cout << " Raw Hex Bytes =";
+ for (size_t i = 0; i < size; i++)
+ {
+ cout << " " << hex << (unsigned short)buffer[i];
+ }
+ cout << dec << endl;
+}
+
+
+/**
+ * Returns 0 if successful.
+ */
+main(int argc, char *argv[])
+{
+ BinexTypesTest app(argv[0]);
+
+ if (!app.initialize(argc, argv) )
+ {
+ return 0;
+ }
+
+ if (!app.run() )
+ {
+ return 1;
+ }
+
+ exit(0);
+
+} // main()
diff --git a/dev/tests/CivilTime/CivilTime.cpp b/dev/tests/CivilTime/CivilTime.cpp
new file mode 120000
index 0000000..0682790
--- /dev/null
+++ b/dev/tests/CivilTime/CivilTime.cpp
@@ -0,0 +1 @@
+../../src/CivilTime.cpp
\ No newline at end of file
diff --git a/dev/tests/CivilTime/CivilTime.hpp b/dev/tests/CivilTime/CivilTime.hpp
new file mode 120000
index 0000000..afd19ea
--- /dev/null
+++ b/dev/tests/CivilTime/CivilTime.hpp
@@ -0,0 +1 @@
+../../src/CivilTime.hpp
\ No newline at end of file
diff --git a/dev/tests/CivilTime/Jamfile b/dev/tests/CivilTime/Jamfile
new file mode 100644
index 0000000..03677c9
--- /dev/null
+++ b/dev/tests/CivilTime/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP CivilTime ;
+TestMain CivilTime/xCivilTime.tst : CivilTime/xCivilTimeM.cpp CivilTime/xCivilTime.cpp CivilTime/CivilTime.cpp ;
diff --git a/dev/tests/CivilTime/Logs/printfOutput b/dev/tests/CivilTime/Logs/printfOutput
new file mode 100644
index 0000000..644744e
--- /dev/null
+++ b/dev/tests/CivilTime/Logs/printfOutput
@@ -0,0 +1,4 @@
+12/31/2006 12:00:0.000000000
+12/31/2006 12:00:0.000000000
+12/31/1106 12:00:0.000000000
+00/00/0000 00:00:0.000000000
diff --git a/dev/tests/CivilTime/xCivilTime.cpp b/dev/tests/CivilTime/xCivilTime.cpp
new file mode 100644
index 0000000..07154f5
--- /dev/null
+++ b/dev/tests/CivilTime/xCivilTime.cpp
@@ -0,0 +1,94 @@
+#include "xCivilTime.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xCivilTime);
+
+using namespace gpstk;
+
+void xCivilTime :: setUp (void)
+{
+}
+
+void xCivilTime :: setFromInfoTest (void)
+{
+ gpstk::CivilTime setFromInfo1;
+ gpstk::CivilTime setFromInfo2;
+ gpstk::CivilTime setFromInfo3;
+ gpstk::CivilTime setFromInfo4;
+ gpstk::CivilTime setFromInfo5;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('b',"Dec"));
+ Id.insert(make_pair('d',"31"));
+ Id.insert(make_pair('Y',"2006"));
+ Id.insert(make_pair('H',"12"));
+ Id.insert(make_pair('M',"00"));
+ Id.insert(make_pair('S',"00"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('b');
+ Id.erase('Y');
+ Id.insert(make_pair('m',"12"));
+ Id.insert(make_pair('y',"06"));
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ Id.erase('y');
+ Id.insert(make_pair('y',"006"));
+ CPPUNIT_ASSERT(setFromInfo3.setFromInfo(Id));
+ Id.erase('y');
+ CPPUNIT_ASSERT(setFromInfo4.setFromInfo(Id));
+ Id.erase('m');
+ Id.insert(make_pair('b',"AAA"));
+ CPPUNIT_ASSERT(!(setFromInfo5.setFromInfo(Id)));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+ out << setFromInfo3 << endl;
+ out << setFromInfo4 << endl;
+}
+
+void xCivilTime :: operatorTest (void)
+{
+ gpstk::CivilTime Zero;
+
+ gpstk::CivilTime Aug21(2006,8,21,13,30,15.);
+ gpstk::CivilTime LessThanYear(2005,8,21,13,30,15.);
+ gpstk::CivilTime LessThanMonth(2006,7,21,13,30,15.);
+ gpstk::CivilTime LessThanDay(2006,8,20,13,30,15.);
+ gpstk::CivilTime LessThanHour(2006,8,21,12,30,15.);
+ gpstk::CivilTime LessThanMinute(2006,8,21,13,20,15.);
+ gpstk::CivilTime LessThanSecond(2006,8,21,13,30,0.);
+
+ gpstk::CivilTime Aug21Copy(Aug21);
+
+ gpstk::CivilTime Aug21Copy2 = Aug21Copy;
+ Aug21Copy2 = Aug21Copy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Aug21,Aug21Copy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Aug21 != LessThanYear);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanYear < Aug21);
+ CPPUNIT_ASSERT(!(Aug21 < LessThanYear));
+ CPPUNIT_ASSERT(LessThanMonth < Aug21);
+ CPPUNIT_ASSERT(!(Aug21 < LessThanMonth));
+ CPPUNIT_ASSERT(LessThanDay < Aug21);
+ CPPUNIT_ASSERT(!(Aug21 < LessThanDay));
+ CPPUNIT_ASSERT(LessThanHour < Aug21);
+ CPPUNIT_ASSERT(!(Aug21 < LessThanHour));
+ CPPUNIT_ASSERT(LessThanMinute < Aug21);
+ CPPUNIT_ASSERT(!(Aug21 < LessThanMinute));
+ CPPUNIT_ASSERT(LessThanSecond < Aug21);
+ CPPUNIT_ASSERT(!(Aug21 < LessThanSecond));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Aug21 > LessThanYear);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanYear <= Aug21);
+ CPPUNIT_ASSERT(Aug21Copy <= Aug21);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Aug21 >= LessThanYear);
+ CPPUNIT_ASSERT(Aug21 >= Aug21Copy);
+
+ CPPUNIT_ASSERT(Aug21.isValid());
+ CPPUNIT_ASSERT(!Zero.isValid());
+}
diff --git a/dev/tests/CivilTime/xCivilTime.hpp b/dev/tests/CivilTime/xCivilTime.hpp
new file mode 100644
index 0000000..684b48a
--- /dev/null
+++ b/dev/tests/CivilTime/xCivilTime.hpp
@@ -0,0 +1,28 @@
+#ifndef XCIVILTIME_HPP
+#define XCIVILTIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "CivilTime.hpp"
+
+using namespace std;
+
+class xCivilTime: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xCivilTime);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/CivilTime/xCivilTimeM.cpp b/dev/tests/CivilTime/xCivilTimeM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/CivilTime/xCivilTimeM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/CommonTime/CommonTime.cpp b/dev/tests/CommonTime/CommonTime.cpp
new file mode 120000
index 0000000..4193aa9
--- /dev/null
+++ b/dev/tests/CommonTime/CommonTime.cpp
@@ -0,0 +1 @@
+../../src/CommonTime.cpp
\ No newline at end of file
diff --git a/dev/tests/CommonTime/CommonTime.hpp b/dev/tests/CommonTime/CommonTime.hpp
new file mode 120000
index 0000000..62f0a97
--- /dev/null
+++ b/dev/tests/CommonTime/CommonTime.hpp
@@ -0,0 +1 @@
+../../src/CommonTime.hpp
\ No newline at end of file
diff --git a/dev/tests/CommonTime/Jamfile b/dev/tests/CommonTime/Jamfile
new file mode 100644
index 0000000..588bd35
--- /dev/null
+++ b/dev/tests/CommonTime/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP CommonTime ;
+TestMain CommonTime/xCommonTime.tst : CommonTime/xCommonTimeM.cpp CommonTime/xCommonTime.cpp CommonTime/CommonTime.cpp ;
diff --git a/dev/tests/CommonTime/xCommonTime.cpp b/dev/tests/CommonTime/xCommonTime.cpp
new file mode 100644
index 0000000..6dd37ec
--- /dev/null
+++ b/dev/tests/CommonTime/xCommonTime.cpp
@@ -0,0 +1,128 @@
+#include "xCommonTime.hpp"
+#include "TimeConstants.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xCommonTime);
+
+using namespace gpstk;
+
+void xCommonTime :: setUp (void)
+{
+}
+
+void xCommonTime :: setTest (void)
+{
+ try
+ {
+ CommonTime Zero;
+ CommonTime Test1(700000,0,0.);
+ //Copy-Constructer
+ CommonTime Test2(Test1);
+ CommonTime Test3 = Test1;
+ CommonTime Test4;
+ //Assignment
+ Test4 = Test1;
+ //Set Exceptions
+ CPPUNIT_ASSERT_THROW(Test1.set(-1,0,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test1.set(3442449,0,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test1.set(700000,-1,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test1.set(700000,24*60*60+1,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test1.set(700000,0,-1.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test1.set(700000,0,2.),gpstk::Exception);
+
+ Test1.set(700001,1,.1);
+ Test2.set(700001,1.1);
+ double dec = 1.1/SEC_PER_DAY;
+ Test3.set(700001 + dec);
+
+ long day, day2;
+ long sod, sod2;
+ double fsod, fsod2;
+ //Load up compare variables
+ Test1.get(day,sod,fsod);
+ Test2.get(day2,sod2,fsod2);
+ //Compare different sets
+ CPPUNIT_ASSERT_EQUAL(day,day2);
+ CPPUNIT_ASSERT_EQUAL(sod,sod2);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(fsod,fsod2,1e-6);
+ //Load up compare variables
+ Test3.get(day2,sod2,fsod2);
+ //Compare different sets
+ CPPUNIT_ASSERT_EQUAL(day,day2);
+ CPPUNIT_ASSERT_EQUAL(sod,sod2);
+ //CPPUNIT_ASSERT_DOUBLES_EQUAL(fsod,fsod2,1e-6);
+
+ //Check to make sure that the proper exceptions are thrown for setInterval
+ CPPUNIT_ASSERT_THROW(Test4.setInternal(-1,0,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test4.setInternal(700001,-1,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test4.setInternal(700001,86400001,0.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test4.setInternal(700001,1001,-1.),gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(Test4.setInternal(700001,1001,1001.),gpstk::Exception);
+ //Load up compare variables
+ Test4.setInternal(700001,1100,0.);
+ Test4.get(day2,sod2,fsod2);
+ //Compare setInternal
+ CPPUNIT_ASSERT_EQUAL(day,day2);
+ CPPUNIT_ASSERT_EQUAL(sod,sod2);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(fsod,fsod2,1e-6);
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+void xCommonTime :: arithmiticTest (void)
+{
+ CommonTime Arith1(700000,1,0.);
+ CommonTime Arith2(700000,0,0.);
+ double day;
+ long day2;
+ double sod;
+ double fsod;
+ //- between two CommonTimes
+ CPPUNIT_ASSERT_EQUAL(1.,Arith1-Arith2);
+
+ //Add Seconds with +
+ Arith2 = Arith2 + 1;
+ CPPUNIT_ASSERT_EQUAL(0.,Arith1-Arith2);
+
+ //Subtract seconds with -
+ Arith2 = Arith2 - 1;
+ CPPUNIT_ASSERT_EQUAL(1.,Arith1-Arith2);
+
+ //Add seconds with +=
+ Arith2 += 1;
+ CPPUNIT_ASSERT_EQUAL(0.,Arith1-Arith2);
+
+ //Subtract seconds with -=
+ Arith2 -= 1;
+ CPPUNIT_ASSERT_EQUAL(1.,Arith1-Arith2);
+
+ //Add days with addDays
+ Arith2.addDays((long)1);
+ day = Arith2.getDays();
+ CPPUNIT_ASSERT_EQUAL(700001.,day);
+ Arith2.addDays((long)-1);
+
+ //Add seconds with addSeconds(double)
+ Arith2.addSeconds(86400000.+1000.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(86401000.,Arith2-Arith1,10e-3);
+
+ //Add seconds with addSeconds(long)
+ Arith2.addSeconds((long)-86401000);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,Arith2-Arith1,10e-3);
+
+ Arith2.get(day2,sod);
+ CPPUNIT_ASSERT_EQUAL((long)700000,day2);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL((double).001,sod,1e-6);
+ //Check seconds using getSecondOfDay()
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sod,Arith2.getSecondOfDay(),1e-6);
+
+ //Add milliseconds with addMilliseconds(long)
+ Arith2.addMilliseconds((long)1);
+ Arith2.addMilliseconds((long)-1);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sod,Arith2.getSecondOfDay(),1e-6);
+
+
+}
+
diff --git a/dev/tests/CommonTime/xCommonTime.hpp b/dev/tests/CommonTime/xCommonTime.hpp
new file mode 100644
index 0000000..5f4a746
--- /dev/null
+++ b/dev/tests/CommonTime/xCommonTime.hpp
@@ -0,0 +1,28 @@
+#ifndef XCOMMONTIME_HPP
+#define XCOMMONTIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "CommonTime.hpp"
+
+using namespace std;
+
+class xCommonTime: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xCommonTime);
+ CPPUNIT_TEST (setTest);
+ CPPUNIT_TEST (arithmiticTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void setTest (void);
+ void arithmiticTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/CommonTime/xCommonTimeM.cpp b/dev/tests/CommonTime/xCommonTimeM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/CommonTime/xCommonTimeM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/DayTime/DayTime.cpp b/dev/tests/DayTime/DayTime.cpp
new file mode 120000
index 0000000..e3daa22
--- /dev/null
+++ b/dev/tests/DayTime/DayTime.cpp
@@ -0,0 +1 @@
+../../src/DayTime.cpp
\ No newline at end of file
diff --git a/dev/tests/DayTime/DayTime.hpp b/dev/tests/DayTime/DayTime.hpp
new file mode 120000
index 0000000..4c790a1
--- /dev/null
+++ b/dev/tests/DayTime/DayTime.hpp
@@ -0,0 +1 @@
+../../src/DayTime.hpp
\ No newline at end of file
diff --git a/dev/tests/DayTime/DayTimeConvTest.hpp b/dev/tests/DayTime/DayTimeConvTest.hpp
new file mode 100644
index 0000000..98f206f
--- /dev/null
+++ b/dev/tests/DayTime/DayTimeConvTest.hpp
@@ -0,0 +1,56 @@
+// file: DayTimeConvTest.hpp
+
+// This test provides the same functionality as DayTimeConversionTest.cpp
+// but uses the CppUnit unit testing framework.
+
+// This test evaluates the user defined comparision tolerance feature of DayTime
+
+#ifndef DAYTIMECONVTEST_HPP
+#define DAYTIMECONVTEST_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+
+using namespace std;
+using gpstk::DayTime;
+
+class DayTimeConvTest: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (DayTimeConvTest);
+ CPPUNIT_TEST (constrTest);
+ CPPUNIT_TEST (mutatTest);
+ CPPUNIT_TEST (randTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void constrTest (void); // Test constructors
+ void mutatTest (void); // Test mutators
+ void randTest (void); // Test frandom dates
+
+
+
+ private:
+
+ // Functions that help set up the tests
+ gpstk::DayTime** constrSetup(short,short,short,short,short,double,short,
+ double,long,short,double);
+ gpstk::DayTime** mutatSetup(short,short,short,short,short,double,short,
+ double,short,double,long,short,double);
+
+ //Definitions for objects used in the test
+ gpstk::DayTime ccase[4];
+ gpstk::DayTime mcase[6];
+ gpstk::DayTime rcase[6];
+ gpstk::DayTime** ccases;
+ gpstk::DayTime** mcases;
+ gpstk::DayTime** rcases;
+};
+
+#endif
diff --git a/dev/tests/DayTime/Jamfile b/dev/tests/DayTime/Jamfile
new file mode 100644
index 0000000..b3b8fa9
--- /dev/null
+++ b/dev/tests/DayTime/Jamfile
@@ -0,0 +1,5 @@
+SubDir TOP DayTime ;
+
+#TestMain DayTime/xDayTimeConv.tst : DayTime/xDayTimeM.cpp DayTime/xDayTimeConv.cpp DayTime/DayTime.cpp ;
+#TestMain DayTime/xDayTimeInc.tst : DayTime/xDayTimeM.cpp DayTime/xDayTimeInc.cpp DayTime/DayTime.cpp ;
+TestMain DayTime/xDayTime.tst : DayTime/xDayTimeM.cpp DayTime/xDayTime.cpp DayTime/DayTime.cpp ;
diff --git a/dev/tests/DayTime/Logs/DayTimeDump b/dev/tests/DayTime/Logs/DayTimeDump
new file mode 100644
index 0000000..7b413f8
--- /dev/null
+++ b/dev/tests/DayTime/Logs/DayTimeDump
@@ -0,0 +1,58 @@
+ double JD(): 2453969.062500
+ double MJD(): 53968.562500
+ short year(): 2006
+ short month(): 8
+ short day(): 21
+ short dayOfWeek(): 1
+ void getYMD(int& yy, int& mm, int& dd): 2006 8 21
+ short hour(): 13
+ short minute(): 30
+ double second(): 0.000000
+ double secOfDay(): 48600.000000
+ short GPS10bitweek(): 365
+ long GPSzcount(): 90000
+ long GPSzcountFloor(): 90000
+ double GPSsecond(): 135000.000000
+ double GPSsow(): 135000.000000
+ short GPSday(): 1
+ short GPSfullweek(): 1389
+ short GPSyear(): 2006
+ short DOYyear(): 2006
+ short DOYday(): 233
+ short DOY(): 233
+ double DOYsecond(): 48600.000000
+ double MJDdate(): 53968.562500
+ long double getMJDasLongDouble(): 53968.562500
+ struct timeval unixTime(): 1156167000 0
+ unsigned long fullZcount(): 191455120
+ unsigned long fullZcountFloor(): 191455120
+ double JD(): 2453969.062500
+ double MJD(): 53968.562500
+ short year(): 2006
+ short month(): 8
+ short day(): 21
+ short dayOfWeek(): 1
+ void getYMD(int& yy, int& mm, int& dd): 2006 8 21
+ short hour(): 13
+ short minute(): 30
+ double second(): 0.000000
+ double secOfDay(): 48600.000000
+ short GPS10bitweek(): 365
+ long GPSzcount(): 90000
+ long GPSzcountFloor(): 90000
+ double GPSsecond(): 135000.000000
+ double GPSsow(): 135000.000000
+ short GPSday(): 1
+ short GPSfullweek(): 1389
+ short GPSyear(): 2006
+ short DOYyear(): 2006
+ short DOYday(): 233
+ short DOY(): 233
+ double DOYsecond(): 48600.000000
+ double MJDdate(): 53968.562500
+ long double getMJDasLongDouble(): 53968.562500
+ struct timeval unixTime(): 1156167000 0
+ unsigned long fullZcount(): 191455120
+ unsigned long fullZcountFloor(): 191455120
+08/21/2006 13:30:00
+08/21/2006 13:30:00
diff --git a/dev/tests/DayTime/makefile b/dev/tests/DayTime/makefile
new file mode 100644
index 0000000..a79e455
--- /dev/null
+++ b/dev/tests/DayTime/makefile
@@ -0,0 +1,34 @@
+# CppUnit-Tutorial
+# file: makefile
+# next line has to be changed to the installation-path of CppUnit
+CPPUNIT_PATH=/home/ehagen
+
+all: xDayTime.tst
+
+xDayTime.tst: xDayTimeConv.tst xDayTimeInc.tst
+
+xDayTimeConv.tst: xDayTimeConvM.o xDayTimeConv.o DayTime.o
+ g++ -o xDayTimeConv.tst xDayTimeConvM.o xDayTimeConv.o DayTime.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+xDayTimeInc.tst: xDayTimeIncM.o xDayTimeInc.o DayTime.o
+ g++ -o xDayTimeInc.tst xDayTimeIncM.o xDayTimeInc.o DayTime.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+xDayTimeInc.o: xDayTimeInc.cpp
+ g++ -c xDayTimeInc.cpp -I${CPPUNIT_PATH}/include -lgpstk -fprofile-arcs -ftest-coverage
+
+xDayTimeIncM.o: xDayTimeIncM.cpp
+ g++ -c xDayTimeIncM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+DayTime.o: DayTime.cpp DayTime.hpp
+ g++ -c DayTime.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -lgpstk -fprofile-arcs -ftest-coverage
+
+xDayTimeConv.o: xDayTimeConv.cpp
+ g++ -c xDayTimeConv.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+xDayTimeConvM.o: xDayTimeConvM.cpp
+ g++ -c xDayTimeConvM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+clean:
+ rm -f *.o
+ rm -f *.g*
+ rm -f *.*.g*
diff --git a/dev/tests/DayTime/xDayTime.cpp b/dev/tests/DayTime/xDayTime.cpp
new file mode 100644
index 0000000..3aaab3d
--- /dev/null
+++ b/dev/tests/DayTime/xDayTime.cpp
@@ -0,0 +1,299 @@
+#include "xDayTime.hpp"
+#include "RinexMetStream.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xDayTime);
+
+using namespace gpstk;
+
+void xDayTime :: setUp (void)
+{
+}
+
+void xDayTime :: constrTest (void)
+{
+ gpstk::DayTime CurrentTime(2006,8,21,13,30,0);
+ double JD = CurrentTime.JD();
+ double MJD = CurrentTime.MJD();
+ short year = CurrentTime.year();
+ short month = CurrentTime.month();
+ short day = CurrentTime.day();
+ short dayOfWeek = CurrentTime.dayOfWeek();
+ short hour = CurrentTime.hour();
+ short minute = CurrentTime.minute();
+ double second = CurrentTime.second();
+ short GPS10bitweek = CurrentTime.GPS10bitweek();
+ long GPSzcount = CurrentTime.GPSzcount();
+ long GPSzcountFloor = CurrentTime.GPSzcountFloor();
+ double GPSsow = CurrentTime.GPSsow();
+ short GPSfullweek = CurrentTime.GPSfullweek();
+ short DOY = CurrentTime.DOY();
+ double secOfDay = CurrentTime.secOfDay();
+ long double MJDasLongDouble = CurrentTime.getMJDasLongDouble();
+ gpstk::DayTime unixTime = CurrentTime.unixTime();
+ unsigned long fullZcount = CurrentTime.fullZcount();
+ unsigned long fullZcountFloor = CurrentTime.fullZcountFloor();
+ gpstk::GPSZcount fullZcountOperator = GPSZcount(CurrentTime);
+ gpstk::CommonTime commonTimeTime = CommonTime(CurrentTime);
+
+ gpstk::DayTime GPSTimeFullWeek(GPSfullweek,GPSsow);
+ gpstk::DayTime GPStime(GPS10bitweek,GPSsow,year);
+ gpstk::DayTime GPStime2(GPS10bitweek,GPSzcount,year);
+ gpstk::DayTime GPStimeZcount(fullZcount);
+ gpstk::DayTime GPStimeZcount2(fullZcountOperator);
+ gpstk::DayTime commonTime(commonTimeTime);
+ gpstk::DayTime calenderTime(year,month,day,hour,minute,second);
+ gpstk::DayTime LongModJD(MJDasLongDouble);
+ gpstk::DayTime ModJD(MJD);
+ gpstk::DayTime DayofYear(year,DOY,secOfDay);
+ gpstk::DayTime Unix(unixTime);
+
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,GPStime);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,GPStime2);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,GPStimeZcount);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,GPStimeZcount2);
+ //CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,commonTime);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,calenderTime);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,LongModJD);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,ModJD);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,DayofYear);
+ CPPUNIT_ASSERT_EQUAL(GPSTimeFullWeek,Unix);
+}
+
+void xDayTime :: arithmeticTest (void)
+{
+ gpstk::DayTime CurrentTime(2006,8,21,13,30,0);
+ gpstk::DayTime Guess(2006,8,21,13,30,30);
+ gpstk::DayTime Guess2(2006,8,21,13,30,0);
+ gpstk::DayTime Guess3(2006,8,21,13,31,0);
+ gpstk::DayTime GuessMilli(2006,8,21,13,31,30);
+ gpstk::DayTime GuessMicro(2006,8,21,13,32,0);
+
+ CurrentTime+=30;
+ CPPUNIT_ASSERT_EQUAL(Guess,CurrentTime);
+ CurrentTime-=30;
+ CPPUNIT_ASSERT_EQUAL(Guess2,CurrentTime);
+ CPPUNIT_ASSERT_EQUAL(30.,Guess-CurrentTime);
+ CurrentTime = CurrentTime + 30;
+ CPPUNIT_ASSERT_EQUAL(Guess,CurrentTime);
+ CurrentTime = CurrentTime - 30;
+ CPPUNIT_ASSERT_EQUAL(Guess2,CurrentTime);
+ CurrentTime.addSeconds(30.);
+ CPPUNIT_ASSERT_EQUAL(Guess,CurrentTime);
+ CurrentTime.addSeconds((long) 30);
+ CPPUNIT_ASSERT_EQUAL(Guess3,CurrentTime);
+ CurrentTime.addMilliSeconds((long) 30000);
+ CPPUNIT_ASSERT_EQUAL(GuessMilli,CurrentTime);
+ CurrentTime.addMicroSeconds((long) 30e6);
+ CPPUNIT_ASSERT_EQUAL(GuessMicro,CurrentTime);
+}
+
+void xDayTime :: comparisonTest (void)
+{
+ gpstk::DayTime Time1(2006,8,21,13,30,0);
+ gpstk::DayTime Time2(2006,8,21,13,30,0);
+ gpstk::DayTime Time3(2006,8,23,13,30,0);
+
+ CPPUNIT_ASSERT(Time1 == Time2);
+ CPPUNIT_ASSERT(Time1 != Time3);
+ CPPUNIT_ASSERT(Time1 < Time3);
+ CPPUNIT_ASSERT(Time3 > Time1);
+ CPPUNIT_ASSERT(Time1 <= Time2);
+ CPPUNIT_ASSERT(Time1 <= Time3);
+ CPPUNIT_ASSERT(Time3 >= Time1);
+ CPPUNIT_ASSERT(Time2 >= Time1);
+
+}
+
+void xDayTime :: setTest (void)
+{
+ gpstk::DayTime setTest1;
+ gpstk::DayTime setTest2;
+ gpstk::DayTime setTest3;
+ gpstk::DayTime setTest4;
+ gpstk::DayTime setTest5;
+ gpstk::DayTime setTest6;
+ gpstk::DayTime setTest7;
+ gpstk::DayTime setTest8;
+ gpstk::DayTime setTest9;
+ gpstk::DayTime setTest10;
+ gpstk::DayTime setTest11;
+ gpstk::DayTime setTest12;
+ gpstk::DayTime setTest13;
+ gpstk::DayTime setTest14;
+ gpstk::DayTime setTest15;
+ gpstk::DayTime setTest16;
+ gpstk::DayTime setTest17;
+ gpstk::DayTime setTest18;
+
+ setTest1.setYMDHMS(2006,8,21,13,30,0);
+ setTest2.setGPS(setTest1.GPS10bitweek(),setTest1.GPSsow());
+ setTest3.setGPS(setTest2.GPS10bitweek(),setTest2.GPSzcount());
+ setTest4.setGPS(setTest3.GPS10bitweek(),setTest3.GPSzcount(),2006);
+ setTest5.setGPS(setTest4.GPS10bitweek(),setTest3.GPSsow(),2006);
+ setTest6.setGPS(setTest5.fullZcount());
+ setTest7.setGPS(setTest6.GPSfullweek(),setTest6.GPSsow());
+
+ setTest8.setGPSZcount(setTest7.GPSzcount());
+ gpstk::CommonTime commonTime = CommonTime(setTest7);
+ setTest9.setCommonTime(commonTime);
+
+ setTest10.setYDoySod(setTest7.year(),setTest7.DOY(),setTest7.secOfDay());
+ setTest11.setMJD(setTest10.MJD());
+ setTest12.setUnix(setTest11.unixTime());
+ setTest18.setAllButTimeFrame(setTest12);
+
+ time_t t;
+ time(&t);
+ struct tm *ltod;
+ ltod = localtime(&t);
+ //Just setting this to the local time becasue Im not sure how time_t works
+ //Won't be able to do any equality assertions
+ setTest13.setANSI(t);
+
+ setTest14.setSystemTime();
+ setTest15.setLocalTime();
+ setTest16.setYMD(2006,8,21);
+ setTest16.setHMS(13,30,0);
+ setTest17.setSecOfDay((double) 13*60*60+30*60);
+ setTest17.setYDoy(2006,setTest15.DOY());
+
+
+ CPPUNIT_ASSERT_EQUAL(setTest1,setTest2);
+ CPPUNIT_ASSERT_EQUAL(setTest2,setTest3);
+ CPPUNIT_ASSERT_EQUAL(setTest3,setTest4);
+ CPPUNIT_ASSERT_EQUAL(setTest4,setTest5);
+ CPPUNIT_ASSERT_EQUAL(setTest5,setTest6);
+ CPPUNIT_ASSERT_EQUAL(setTest6,setTest7);
+ //CPPUNIT_ASSERT_EQUAL(setTest7,setTest8);
+ //CPPUNIT_ASSERT_EQUAL(setTest8,setTest9);
+ CPPUNIT_ASSERT_EQUAL(setTest7,setTest10);
+ CPPUNIT_ASSERT_EQUAL(setTest10,setTest11);
+ CPPUNIT_ASSERT_EQUAL(setTest11,setTest12);
+ //CPPUNIT_ASSERT_EQUAL(setTest14,setTest15+60*60*5);
+ //CPPUNIT_ASSERT_EQUAL(setTest16,setTest17);
+ CPPUNIT_ASSERT_EQUAL(setTest1,setTest18);
+}
+
+void xDayTime :: stringTest (void)
+{
+ std::fstream out("Logs/DayTimeDump",ios::out);
+
+ gpstk::DayTime stringTest1;
+ gpstk::DayTime stringTest2;
+ gpstk::DayTime stringTest3;
+ gpstk::DayTime stringTest4;
+ gpstk::DayTime stringTest5;
+ gpstk::DayTime stringTest6;
+ gpstk::DayTime stringTest7;
+ gpstk::DayTime stringTest8;
+ gpstk::DayTime stringTest9;
+ gpstk::DayTime stringTest10;
+ gpstk::DayTime stringTest11;
+ gpstk::DayTime stringTest12;
+ gpstk::DayTime stringTest13;
+ gpstk::DayTime stringTest14;
+
+ gpstk::DayTime CurrentTime(2006,8,21,13,30,0);
+ stringTest1.setToString("Aug 21, 2006 13:30:00", "%b %d, %Y %H:%M:%S");
+ stringTest2.setToString("53968.5625","%Q");
+ stringTest3.setToString("365 135000 2006","%G %g %Y");
+ stringTest4.setToString("365 90000 2006","%G %Z %Y");
+ stringTest5.setToString("2006 233 48600","%Y %j %s");
+ stringTest6.setToString("1389 135000","%F %g");
+ stringTest7.setToString("1389 1 48600","%F %w %s");
+ stringTest8.setToString("1389 Mon 48600","%F %a %s");
+ stringTest9.setToString("8/21/2006 13:30:00", "%m/%d/%Y %H:%M:%f");
+ stringTest10.setToString("1156166999 1000000","%U %u");
+ stringTest11.setToString("191455120","%C");
+ stringTest12.setToString("8 21 2006 13:30:0.0", "%m %d %Y %H:%M:%f");
+ stringTest13.setToString("2006 233 13: 30: 0.0", "%Y %j %H:%M:%f");
+
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest1);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest2);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest3);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest4);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest5);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest6);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest7);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest8);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest9);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest10);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest11);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest12);
+ CPPUNIT_ASSERT_EQUAL(CurrentTime,stringTest13);
+
+ CurrentTime.dump(out);
+ stringTest10.dump(out);
+ out << stringTest10 << endl;
+ out << stringTest10.asString() << endl;
+}
+
+
+//Exceptions and Weird Cases
+void xDayTime :: exceptionTest (void)
+{
+ try
+ {
+ gpstk::DayTime GenericException;
+ gpstk::DayTime WeirdCase1(1999,1,1,0,0,0);
+ gpstk::DayTime WeirdCase2(1999,10,1,0,0,0);
+ //10 bit rollover during 1999, before Aug rollover
+ WeirdCase1.setGPS(WeirdCase1.GPS10bitweek(),WeirdCase1.GPSsow(),WeirdCase1.year());
+ //10 bit rollover during 1999, after Aug rollover
+ WeirdCase2.setGPS(WeirdCase2.GPS10bitweek(),WeirdCase2.GPSsow(),WeirdCase2.year());
+ //Make sure a set throw is thrown for year < 1980 in setGPS (line 836)
+ CPPUNIT_ASSERT_THROW(WeirdCase2.setGPS(WeirdCase2.GPS10bitweek(),WeirdCase2.GPSsow(),0),
+ gpstk::Exception);
+ //Check to see if setGPS for fullZcount is thrown for zcount of -1
+ CPPUNIT_ASSERT_THROW(GenericException.setGPS((unsigned long) -1),gpstk::Exception);
+ //Throw for setGPSfullweek with a fullweek of -1
+ CPPUNIT_ASSERT_THROW(GenericException.setGPSfullweek((short) -1,0.),gpstk::Exception);
+ //Throw for very very low MJD which should not exist
+ CPPUNIT_ASSERT_THROW(GenericException.setMJD((long double) -10000000),gpstk::Exception);
+ //Bad YMD
+ CPPUNIT_ASSERT_THROW(GenericException.setYMD(-5000,-5000,-5000),gpstk::Exception);
+ //Bad Sec of Day
+ CPPUNIT_ASSERT_THROW(GenericException.setSecOfDay(-1.),gpstk::Exception);
+ //Bad Day of Year
+ CPPUNIT_ASSERT_THROW(GenericException.setYDoy(2006,-100),gpstk::Exception);
+ //Bad HMS
+ CPPUNIT_ASSERT_THROW(GenericException.setHMS(-5000,-5000,-5000),gpstk::Exception);
+ //Go through all of the elseif statments for Jan-Nov
+ GenericException.setToString("Dec 21, 2006 13:30:00", "%b %d, %Y %H:%M:%S");
+ //Not a real Jan-Dec abbreviation
+ CPPUNIT_ASSERT_THROW(GenericException.setToString("AAA 21, 2006 13:30:00", "%b %d, %Y %H:%M:%S"),
+ gpstk::Exception);
+ //2 digit %y check
+ GenericException.setToString("Dec 21, 06 13:30:00", "%b %d, %y %H:%M:%S");
+ //3 digit %y check
+ GenericException.setToString("Dec 21, 006 13:30:00", "%b %d, %y %H:%M:%S");
+ //4 digit %y check
+ GenericException.setToString("Dec 21, 2006 13:30:00", "%b %d, %y %H:%M:%S");
+ //Go through all of the else statments for Sun-Fri to get to Sat
+ GenericException.setToString("1389 Sat 48600","%F %a %s");
+ //Not a real Sun-Sat abbreviation
+ CPPUNIT_ASSERT_THROW(GenericException.setToString("1389 AAA 48600","%F %a %s"),
+ gpstk::Exception);
+ //Too much format info
+ CPPUNIT_ASSERT_THROW(GenericException.setToString("1389 Mon 48600","%F %a %s %s"),
+ gpstk::Exception);
+ //Too much string info
+ //CPPUNIT_ASSERT_THROW(GenericException.setToString("1389 Mon 48600 48600","%F %a %s"),
+ // gpstk::Exception);
+ //Not enough info to form a complete DayTime
+ CPPUNIT_ASSERT_THROW(GenericException.setToString("",""),
+ gpstk::Exception);
+ //Century/non-400 non-leap check
+ GenericException.setToString("Feb 29, 1700 13:30:00", "%b %d, %Y %H:%M:%S");
+ //There is no year 0 (turn to 1)
+ GenericException.setToString("Feb 29, 0 13:30:00", "%b %d, %Y %H:%M:%S");
+
+ GenericException.setToString("1389 Sat 48600","%%03F %a %s");
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+}
diff --git a/dev/tests/DayTime/xDayTime.hpp b/dev/tests/DayTime/xDayTime.hpp
new file mode 100644
index 0000000..6a90727
--- /dev/null
+++ b/dev/tests/DayTime/xDayTime.hpp
@@ -0,0 +1,36 @@
+#ifndef XDAYTIME_HPP
+#define XDAYTIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "DayTime.hpp"
+
+using namespace std;
+
+class xDayTime: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xDayTime);
+ CPPUNIT_TEST (constrTest);
+ CPPUNIT_TEST (arithmeticTest);
+ CPPUNIT_TEST (comparisonTest);
+ CPPUNIT_TEST (setTest);
+ CPPUNIT_TEST (stringTest);
+ CPPUNIT_TEST (exceptionTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void constrTest (void);
+ void arithmeticTest (void);
+ void comparisonTest (void);
+ void setTest (void);
+ void stringTest (void);
+ void exceptionTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/DayTime/xDayTimeConv.cpp b/dev/tests/DayTime/xDayTimeConv.cpp
new file mode 100644
index 0000000..cf0db66
--- /dev/null
+++ b/dev/tests/DayTime/xDayTimeConv.cpp
@@ -0,0 +1,196 @@
+// file: DayTimeConvTest.cpp
+
+#include "DayTimeConvTest.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (DayTimeConvTest);
+
+
+void DayTimeConvTest :: setUp (void)
+{
+ //Set microsecond tolerance
+ gpstk::DayTime::setDayTimeTolerance(DayTime::DAYTIME_TOLERANCE);
+}
+
+//Tests DayTime using different constructers and then tests equality
+
+void DayTimeConvTest :: constrTest (void)
+{
+ for (int z=1;z<=3;z++){
+ switch (z) {
+ case 1:
+ //Directly from ICD-GPS-200
+ //Beginning of GPS Time, as defined by ICD-GPS-200
+ ccases = constrSetup(1980,1,6,0,0,0,0,0.,0,1981,44244.);
+ break;
+ case 2:
+ //From GPS Signals and Performan, Misra and Enge, p. 91
+ //GPS 10 bit week rollover epoch
+ ccases = constrSetup(1999,8,22,0,0,0,0,0.,0,2000,51412.);
+ break;
+ case 3:
+ //From Hoffman-Wellenhof, et al.
+ //The J200 standard epoch
+ ccases = constrSetup(2000,1,1,12,0,0,1042,561600.,
+ 374400,2000,2451545-2400000.5);
+ break;
+
+ }
+
+ //Assign values that will be tested from pointers to constrSetup
+ for (int j = 0;j<=3;j++)
+ {
+ ccase[j] = *ccases[j];
+ }
+
+ //Test to make sure there is no difference between different constructers
+ for (int k = 0;k <= 3;k++)
+ {
+ CPPUNIT_ASSERT_EQUAL (ccase[0], ccase[k]);
+ }
+ }
+}
+
+//Function that takes in constructer parameters and outputs a reference to the
+//newly constructed DayTime objects
+
+gpstk::DayTime** DayTimeConvTest :: constrSetup (short year,short month,short dom,
+ short hour,short minute,double seconds,short week,double sow,long zcount,
+ short hintYear,double MJD)
+{
+ //Construct objects
+ gpstk::DayTime constr1(year,month,dom,hour,minute,seconds); //Calendar constructer
+ gpstk::DayTime constr2(week%1024, sow, hintYear); //10 bit GPS+SOW wk w/hint
+ gpstk::DayTime constr3(week%1024,zcount,hintYear); //10 bit GPS+Z count w/hint
+ gpstk::DayTime constr4(MJD); //JD converted to MJD incline
+ cout << constr1.printf("%-9B %02d, %Y %02H:%02M:%018.15f \n");
+
+ //Create an array of references to the constructed objects
+ gpstk::DayTime* constrs[4];
+ constrs[0] = &constr1;
+ constrs[1] = &constr2;
+ constrs[2] = &constr3;
+ constrs[3] = &constr4;
+ return constrs;
+
+}
+
+//Tests DayTime using different mutators and makes sure that they are equal
+
+void DayTimeConvTest :: mutatTest (void)
+{
+ for (int i=1;i<=3;i++){
+ switch (i) {
+ case 1:
+ //Directly from ICD-GPS-200
+ //Beginning of GPS Time, as defined by ICD-GPS-200
+ mcases = mutatSetup(1980,1,6,0,0,0,6,0.,0,0.,0,1981,44244);
+ break;
+ case 2:
+ //From GPS Signals and Performan, Misra and Enge, p. 91
+ //GPS 10 bit week rollover epoch
+ mcases = mutatSetup(1999,8,22,0,0,0,234,0.,0,0.,0,2000,51412);
+ break;
+ case 3:
+ //From Hoffman-Wellenhof, et al.
+ //The J200 standard epoch
+ mcases = mutatSetup(2000,1,1,12,0,0,1,43200.,1042,
+ 561600.,374400,2000,2451545-2400000.5);
+ break;
+ }
+
+ //Assign values that will be tested from pointers to mutatSetup
+ for (int j=0;j<=5;j++)
+ {
+ mcase[j] = *mcases[j];
+ }
+
+ //Test to make sure there is no difference between different mutators
+ for (int k = 1;k<=3;k++)
+ {
+ CPPUNIT_ASSERT_EQUAL (mcase[0], mcase[k]);
+ }
+ CPPUNIT_ASSERT_EQUAL (mcase[0].GPSzcount(),mcase[4].GPSzcount());
+ CPPUNIT_ASSERT (fabs(mcase[0].MJD() - mcase[5].MJD())<.001/DayTime::SEC_DAY);
+ }
+}
+
+//Function that takes in mutator parameters and outputs a reference to the
+//newly mutated DayTime objects
+
+gpstk::DayTime** DayTimeConvTest :: mutatSetup (short year,short month,short dom,
+ short hour,short minute,double seconds,short doy,
+ double sod,short week,double sow,long zcount,
+ short hintYear,double MJD)
+{
+ gpstk::DayTime msetup[6];
+
+ //Mutate the objects
+ msetup[0].setYMD(year,month,dom);
+ msetup[0].setHMS(hour,minute,seconds);
+ msetup[1].setYMDHMS(year,month,dom,hour,minute,seconds);
+ msetup[2].setYDoy(year,doy);
+ msetup[2].setSecOfDay(sod);
+ msetup[3].setGPS(week%1024, sow, hintYear);
+ msetup[4].setGPS(week%1024,zcount,hintYear);
+ msetup[5].setMJD(MJD);
+ cout << msetup[5].printf("%-9B %02d, %Y %02H:%02M:%018.15f \n");
+
+ //Create an array of references to the mutated objects
+ gpstk::DayTime* mutats[6];
+ for (int i =0;i<=5;i++)
+ {
+ mutats[i] = &msetup[i];
+ }
+ return mutats;
+
+}
+
+//This test tests accessors and mutators using randomly generated dates
+
+void DayTimeConvTest :: randTest (void)
+{
+ //Beginning and ending dates for the random date generation
+ gpstk::DayTime dtBegin(1995,1,1,0,0,0), dtEnd(2015,1,1,0,0,0), dt;
+ long ndates = 20; // Number of dates that will be generated
+
+ //Set up componets to randomly generate date
+ unsigned int seed = (unsigned int) dt.GPSsow();
+ srand(seed);
+ unsigned long dayDiff = (unsigned long) ceil(dtEnd.MJD() -dtBegin.MJD());
+
+ //Loop over number of dates
+ for (int j=0;j<ndates;++j)
+ {
+ //Randomly generate a date
+ double dayDelta = floor( rand()*1./RAND_MAX *dayDiff);
+ double sodDelta = rand()*1./RAND_MAX;
+
+ //Create a DayTime object and set it to the random day
+ gpstk::DayTime testDate;
+ testDate.setMJD(dtBegin.MJD()+dayDelta+sodDelta);
+
+ //Setup the mutators using mutatSetup
+ rcases = mutatSetup(testDate.year(),testDate.month(),testDate.day(),
+ testDate.hour(),testDate.minute(),testDate.second(),
+ testDate.DOY(),testDate.DOYsecond(),testDate.GPSfullweek()%1024,
+ testDate.GPSsow(),testDate.GPSzcount(),testDate.year(),
+ testDate.MJD());
+
+ //Assign values that will be tested from pointers to mutatSetup
+ for (int i = 0;i<=5;i++)
+ {
+ rcase[i] = *rcases[i];
+ }
+
+ //Test to make sure there is no difference between different mutators for the
+ //randomly generated dates
+ for (int i=1;i<=3;i++)
+ {
+ CPPUNIT_ASSERT_EQUAL (rcase[0], rcase[i]);
+ }
+ CPPUNIT_ASSERT_EQUAL (rcase[0].GPSzcount(),rcase[4].GPSzcount());
+ CPPUNIT_ASSERT (fabs(rcase[0].MJD() - rcase[5].MJD())<.001/DayTime::SEC_DAY);
+ }
+
+}
+
diff --git a/dev/tests/DayTime/xDayTimeInc.cpp b/dev/tests/DayTime/xDayTimeInc.cpp
new file mode 100644
index 0000000..ee149f5
--- /dev/null
+++ b/dev/tests/DayTime/xDayTimeInc.cpp
@@ -0,0 +1,98 @@
+#include "xDayTimeInc.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xINCDayTime);
+
+void xINCDayTime :: setUp (void)
+{
+ totalIncrements=0;
+ gpstk::DayTime dtorig(2000,12,1,0,0,0.);
+}
+
+void xINCDayTime :: StartUp (void)
+{
+
+ cout << endl << "Testing DayTime increment safety." << endl << endl;
+ cout << setw(18) << "Increment operator";
+ cout << setw(18) << "# of increments";
+ cout << setw(22) << "Difference (seconds)";
+ cout << setw(21) << "Difference (meters)";
+ cout << setw(23) << "Acceptable Diff (sec)";
+ cout << endl;
+
+ cout << setw(18) << "------------------";
+ cout << setw(18) << "---------------";
+ cout << setw(22) << "--------------------";
+ cout << setw(21) << "-------------------";
+ cout << setw(23) << "--------------------";
+ cout << endl;
+}
+void xINCDayTime :: plusEqualsTest (void)
+{
+ StartUp();
+
+ TEST_METHOD(operator+=, 60, 1, 1e-15);
+ TEST_METHOD(operator+=, 3600, 1, 1e-15);
+ TEST_METHOD(operator+=, 86400, 1, 1e-15);
+ TEST_METHOD(operator+=, 7*86400, 1, 1e-15);
+ cout << endl;
+
+}
+
+void xINCDayTime :: addMilliSecTest (void)
+{
+
+ TEST_METHOD(addMilliSeconds, 1000, 1, 1e-15);
+ TEST_METHOD(addMilliSeconds, 60*1000, 1, 1e-15);
+ TEST_METHOD(addMilliSeconds, 3600*1000, 1, 1e-15);
+ TEST_METHOD(addMilliSeconds, 86400*1000, 1, 1e-15);
+ TEST_METHOD(addMilliSeconds, 86400*2*1000, 1, 1e-15);
+ TEST_METHOD(addMilliSeconds, 86400*7*1000, 1, 1e-15);
+ cout << endl;
+
+}
+void xINCDayTime :: addMicroSecTest (void)
+{
+
+ TEST_METHOD(addMicroSeconds, 1000*1000, 1, 1e-3);
+ TEST_METHOD(addMicroSeconds, 60*1000*1000, 1, 1e-3);
+ TEST_METHOD(addMicroSeconds, 5*60*1000*1000, 1, 1e-3);
+ cout << endl;
+
+}
+
+void xINCDayTime :: addSecondsTest (void)
+{
+ TEST_METHOD(addSeconds, 60, 1., 1e-12);
+ TEST_METHOD(addSeconds, 3600, 1., 1e-12);
+ TEST_METHOD(addSeconds, 86400, 1., 1e-12);
+ TEST_METHOD(addSeconds, 7*86400, 1., 1e-12);
+ cout << endl;
+ TEST_METHOD(addSeconds, 1000, 1e-3, 1e-12);
+ TEST_METHOD(addSeconds, 60*1000, 1e-3, 1e-12);
+ TEST_METHOD(addSeconds, 3600*1000, 1e-3, 1e-12);
+ TEST_METHOD(addSeconds, 86400*1000, 1e-3, 1e-12);
+ TEST_METHOD(addSeconds, 86400*2*1000, 1e-3, 1e-12);
+ TEST_METHOD(addSeconds, 86400*7*1000, 1e-3, 1e-12);
+ cout << endl;
+ TEST_METHOD(addSeconds, 1000*1000, 1e-6, 1e-12);
+ TEST_METHOD(addSeconds, 60*1000*1000, 1e-6, 1e-12);
+ TEST_METHOD(addSeconds, 5*60*1000*1000, 1e-6, 1e-12);
+ cout << endl;
+ TEST_METHOD(addSeconds, (1000*1000), 1e-9, 1e-12);
+ TEST_METHOD(addSeconds, (100*1000*1000), 1e-9, 1e-12);
+ cout << endl;
+ TEST_METHOD(addSeconds, (1000*1000), 1e-11, 1e-12);
+ TEST_METHOD(addSeconds, (100*1000*1000), 1e-11, 1e-12);
+ cout << endl;
+ FinishUp();
+}
+
+void xINCDayTime :: FinishUp (void)
+{
+ gpstk::DayTime dtorig(2000,12,1,0,0,0.);
+ DayTime endTime;
+ cout << endl << setprecision(4);
+ cout << endTime.printf("Completed on %B %d, %Y %H:%02M:%02S") << endl;
+ cout << "Processing time " << endTime-startTime << " seconds." << endl;
+ cout << endl;
+}
diff --git a/dev/tests/DayTime/xDayTimeInc.hpp b/dev/tests/DayTime/xDayTimeInc.hpp
new file mode 100644
index 0000000..2e3c99d
--- /dev/null
+++ b/dev/tests/DayTime/xDayTimeInc.hpp
@@ -0,0 +1,77 @@
+// file: xINCDayTime.hpp
+
+// This test provides the same functionality as DayTimeConversionTest.cpp
+// but uses the CppUnit unit testing framework.
+
+// This test evaluates the user defined comparision tolerance feature of DayTime
+
+#ifndef XINCDAYTIME_HPP
+#define XINCDAYTIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "StringUtils.hpp"
+#include "DayTime.hpp"
+#include "icd_200_constants.hpp"
+
+using namespace std;
+using namespace gpstk;
+using gpstk::DayTime;
+
+class xINCDayTime: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xINCDayTime);
+ CPPUNIT_TEST (plusEqualsTest);
+ CPPUNIT_TEST (addMilliSecTest);
+ CPPUNIT_TEST (addMicroSecTest);
+ CPPUNIT_TEST (addSecondsTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void StartUp (void);
+ void plusEqualsTest (void);
+ void addMilliSecTest (void);
+ void addMicroSecTest (void);
+ void addSecondsTest (void);
+ void FinishUp (void);
+
+ private:
+ double tdiff;
+ long totalIncrements;
+ long incCountUse;
+ gpstk::DayTime dtorig;
+ gpstk::DayTime dtcopy;
+ gpstk::DayTime startTime;
+};
+
+#endif
+
+//NOTE: MACRO BELOW!
+
+#define TEST_METHOD(method, incCount, incValue, diffTolerance) \
+ dtcopy = dtorig; \
+ totalIncrements=0; \
+ incCountUse = incCount/2; \
+ for (long j=0; j<incCountUse; ++j) \
+ { \
+ dtcopy.method(incValue); \
+ totalIncrements++; \
+ } \
+ for (long j=0; j<incCountUse; ++j) \
+ { \
+ dtcopy.method(-incValue); \
+ totalIncrements++; \
+ } \
+ tdiff = dtcopy-dtorig; \
+ cout << setw(18) << #method; \
+ cout << setw(18) << totalIncrements; \
+ cout << setw(22) << setprecision(10) << tdiff; \
+ cout << setw(21) << setprecision(8) << tdiff * C_GPS_M; \
+ cout << setw(23) << setprecision(5) << diffTolerance; \
+ cout << endl; \
+ CPPUNIT_ASSERT(tdiff<diffTolerance);
diff --git a/dev/tests/DayTime/xDayTimeM.cpp b/dev/tests/DayTime/xDayTimeM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/DayTime/xDayTimeM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/trunk/src/Makefile.am b/dev/tests/Example_Classname/Example_ClassName.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Example_Classname/Example_ClassName.cpp
diff --git a/trunk/src/Makefile.am b/dev/tests/Example_Classname/Example_ClassName.hpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Example_Classname/Example_ClassName.hpp
diff --git a/trunk/src/Makefile.am b/dev/tests/Example_Classname/Example_Jamfile
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Example_Classname/Example_Jamfile
diff --git a/trunk/src/Makefile.am b/dev/tests/Example_Classname/Example_xClassName.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Example_Classname/Example_xClassName.cpp
diff --git a/trunk/src/Makefile.am b/dev/tests/Example_Classname/Example_xClassName.hpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Example_Classname/Example_xClassName.hpp
diff --git a/trunk/src/Makefile.am b/dev/tests/Example_Classname/Example_xClassNameM.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Example_Classname/Example_xClassNameM.cpp
diff --git a/dev/tests/GPSEpochWeekSecond/GPSEpochWeekSecond.cpp b/dev/tests/GPSEpochWeekSecond/GPSEpochWeekSecond.cpp
new file mode 120000
index 0000000..871162e
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/GPSEpochWeekSecond.cpp
@@ -0,0 +1 @@
+../../src/GPSEpochWeekSecond.cpp
\ No newline at end of file
diff --git a/dev/tests/GPSEpochWeekSecond/GPSEpochWeekSecond.hpp b/dev/tests/GPSEpochWeekSecond/GPSEpochWeekSecond.hpp
new file mode 120000
index 0000000..b49bc88
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/GPSEpochWeekSecond.hpp
@@ -0,0 +1 @@
+../../src/GPSEpochWeekSecond.hpp
\ No newline at end of file
diff --git a/dev/tests/GPSEpochWeekSecond/Jamfile b/dev/tests/GPSEpochWeekSecond/Jamfile
new file mode 100644
index 0000000..5aa002e
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP GPSEpochWeekSecond ;
+TestMain GPSEpochWeekSecond/xGPSEpochWeekSecond.tst : GPSEpochWeekSecond/xGPSEpochWeekSecondM.cpp GPSEpochWeekSecond/xGPSEpochWeekSecond.cpp GPSEpochWeekSecond/GPSEpochWeekSecond.cpp ;
diff --git a/dev/tests/GPSEpochWeekSecond/Logs/printfOutput b/dev/tests/GPSEpochWeekSecond/Logs/printfOutput
new file mode 100644
index 0000000..32e9440
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/Logs/printfOutput
@@ -0,0 +1,2 @@
+6 0001 0.000000
+0 0000 0.000000
diff --git a/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecond.cpp b/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecond.cpp
new file mode 100644
index 0000000..73420f9
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecond.cpp
@@ -0,0 +1,82 @@
+#include "xGPSEpochWeekSecond.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xGPSEpochWeekSecond);
+
+using namespace gpstk;
+
+void xGPSEpochWeekSecond :: setUp (void)
+{
+}
+
+void xGPSEpochWeekSecond :: setFromInfoTest (void)
+{
+ try
+ {
+ gpstk::GPSEpochWeekSecond setFromInfo1;
+ gpstk::GPSEpochWeekSecond setFromInfo2;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('E',"6"));
+ Id.insert(make_pair('F',"1"));
+ Id.insert(make_pair('g',"0"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('E');
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+void xGPSEpochWeekSecond :: operatorTest (void)
+{
+ try
+ {
+ gpstk::GPSEpochWeekSecond Compare(6,2,1);
+ gpstk::GPSEpochWeekSecond LessThanEpoch(5,2,1);
+ gpstk::GPSEpochWeekSecond LessThanWeek(6,1,1);
+ gpstk::GPSEpochWeekSecond LessThanSOW(6,2,0);
+
+ gpstk::GPSEpochWeekSecond CompareCopy(Compare);
+
+ gpstk::GPSEpochWeekSecond CompareCopy2;
+ //Assignment
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanEpoch);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanEpoch < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanEpoch));
+ CPPUNIT_ASSERT(LessThanWeek < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanWeek));
+ CPPUNIT_ASSERT(LessThanSOW < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanSOW));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanEpoch);
+ CPPUNIT_ASSERT(Compare > LessThanWeek);
+ CPPUNIT_ASSERT(Compare > LessThanSOW);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanEpoch <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanEpoch);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+
diff --git a/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecond.hpp b/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecond.hpp
new file mode 100644
index 0000000..cd080cf
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecond.hpp
@@ -0,0 +1,28 @@
+#ifndef XGPSEPOCHWEEKSECOND_HPP
+#define XGPSEPOCHWEEKSECOND_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "GPSEpochWeekSecond.hpp"
+
+using namespace std;
+
+class xGPSEpochWeekSecond: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xGPSEpochWeekSecond);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecondM.cpp b/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecondM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/GPSEpochWeekSecond/xGPSEpochWeekSecondM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/GPSWeekSecond/GPSWeekSecond.cpp b/dev/tests/GPSWeekSecond/GPSWeekSecond.cpp
new file mode 120000
index 0000000..e7e0802
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/GPSWeekSecond.cpp
@@ -0,0 +1 @@
+../../src/GPSWeekSecond.cpp
\ No newline at end of file
diff --git a/dev/tests/GPSWeekSecond/GPSWeekSecond.hpp b/dev/tests/GPSWeekSecond/GPSWeekSecond.hpp
new file mode 120000
index 0000000..b9544c3
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/GPSWeekSecond.hpp
@@ -0,0 +1 @@
+../../src/GPSWeekSecond.hpp
\ No newline at end of file
diff --git a/dev/tests/GPSWeekSecond/Jamfile b/dev/tests/GPSWeekSecond/Jamfile
new file mode 100644
index 0000000..c5d7b00
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP GPSWeekSecond ;
+TestMain GPSWeekSecond/xGPSWeekSecond.tst : GPSWeekSecond/xGPSWeekSecondM.cpp GPSWeekSecond/xGPSWeekSecond.cpp GPSWeekSecond/GPSWeekSecond.cpp ;
diff --git a/dev/tests/GPSWeekSecond/Logs/printfOutput b/dev/tests/GPSWeekSecond/Logs/printfOutput
new file mode 100644
index 0000000..cc1459c
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/Logs/printfOutput
@@ -0,0 +1,2 @@
+1300 13500.000000
+0000 0.000000
diff --git a/dev/tests/GPSWeekSecond/xGPSWeekSecond.cpp b/dev/tests/GPSWeekSecond/xGPSWeekSecond.cpp
new file mode 100644
index 0000000..57748ad
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/xGPSWeekSecond.cpp
@@ -0,0 +1,62 @@
+#include "xGPSWeekSecond.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xGPSWeekSecond);
+
+using namespace gpstk;
+
+void xGPSWeekSecond :: setUp (void)
+{
+}
+
+void xGPSWeekSecond :: setFromInfoTest (void)
+{
+ gpstk::GPSWeekSecond setFromInfo1;
+ gpstk::GPSWeekSecond setFromInfo2;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('F',"1300"));
+ Id.insert(make_pair('g',"13500"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('F');
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+}
+
+void xGPSWeekSecond :: operatorTest (void)
+{
+ gpstk::GPSWeekSecond Zero;
+
+ gpstk::GPSWeekSecond Compare(1300,13500.);
+ gpstk::GPSWeekSecond LessThanWeek(1299,13500.);
+ gpstk::GPSWeekSecond LessThanSecond(1300,13400.);
+
+ gpstk::GPSWeekSecond CompareCopy(Compare);
+
+ gpstk::GPSWeekSecond CompareCopy2;
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanWeek);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanWeek < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanWeek));
+ CPPUNIT_ASSERT(LessThanSecond < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanSecond));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanWeek);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanWeek <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanWeek);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+ //CPPUNIT_ASSERT(!Zero.isValid());
+}
diff --git a/dev/tests/GPSWeekSecond/xGPSWeekSecond.hpp b/dev/tests/GPSWeekSecond/xGPSWeekSecond.hpp
new file mode 100644
index 0000000..8b12b1f
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/xGPSWeekSecond.hpp
@@ -0,0 +1,28 @@
+#ifndef XGPSWEEKSECOND_HPP
+#define XGPSWEEKSECOND_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "GPSWeekSecond.hpp"
+
+using namespace std;
+
+class xGPSWeekSecond: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xGPSWeekSecond);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/GPSWeekSecond/xGPSWeekSecondM.cpp b/dev/tests/GPSWeekSecond/xGPSWeekSecondM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/GPSWeekSecond/xGPSWeekSecondM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/GPSWeekZcount/GPSWeekZcount.cpp b/dev/tests/GPSWeekZcount/GPSWeekZcount.cpp
new file mode 120000
index 0000000..16b6f74
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/GPSWeekZcount.cpp
@@ -0,0 +1 @@
+../../src/GPSWeekZcount.cpp
\ No newline at end of file
diff --git a/dev/tests/GPSWeekZcount/GPSWeekZcount.hpp b/dev/tests/GPSWeekZcount/GPSWeekZcount.hpp
new file mode 120000
index 0000000..789f781
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/GPSWeekZcount.hpp
@@ -0,0 +1 @@
+../../src/GPSWeekZcount.hpp
\ No newline at end of file
diff --git a/dev/tests/GPSWeekZcount/Jamfile b/dev/tests/GPSWeekZcount/Jamfile
new file mode 100644
index 0000000..8ff1af3
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP GPSWeekZcount ;
+TestMain GPSWeekZcount/xGPSWeekZcount.tst : GPSWeekZcount/xGPSWeekZcountM.cpp GPSWeekZcount/xGPSWeekZcount.cpp GPSWeekZcount/GPSWeekZcount.cpp ;
diff --git a/dev/tests/GPSWeekZcount/Logs/printfOutput b/dev/tests/GPSWeekZcount/Logs/printfOutput
new file mode 100644
index 0000000..4251060
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/Logs/printfOutput
@@ -0,0 +1,2 @@
+1300 013500
+0000 000000
diff --git a/dev/tests/GPSWeekZcount/xGPSWeekZcount.cpp b/dev/tests/GPSWeekZcount/xGPSWeekZcount.cpp
new file mode 100644
index 0000000..e51c639
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/xGPSWeekZcount.cpp
@@ -0,0 +1,63 @@
+#include "xGPSWeekZcount.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xGPSWeekZcount);
+
+using namespace gpstk;
+
+void xGPSWeekZcount :: setUp (void)
+{
+}
+
+void xGPSWeekZcount :: setFromInfoTest (void)
+{
+ gpstk::GPSWeekZcount setFromInfo1;
+ gpstk::GPSWeekZcount setFromInfo2;
+ gpstk::GPSWeekZcount setFromInfo3;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('F',"1300"));
+ Id.insert(make_pair('z',"13500"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('z');
+ Id.insert(make_pair('w',"3"));
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ Id.erase('F');
+ CPPUNIT_ASSERT(setFromInfo3.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+}
+
+void xGPSWeekZcount :: operatorTest (void)
+{
+ gpstk::GPSWeekZcount Compare(1300,13500);
+ gpstk::GPSWeekZcount LessThanWeek(1299,13500);
+ gpstk::GPSWeekZcount LessThanZcount(1300,13400);
+
+ gpstk::GPSWeekZcount CompareCopy(Compare);
+
+ gpstk::GPSWeekZcount CompareCopy2;
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanWeek);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanWeek < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanWeek));
+ CPPUNIT_ASSERT(LessThanZcount < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanZcount));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanWeek);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanWeek <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanWeek);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+}
diff --git a/dev/tests/GPSWeekZcount/xGPSWeekZcount.hpp b/dev/tests/GPSWeekZcount/xGPSWeekZcount.hpp
new file mode 100644
index 0000000..a9171a8
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/xGPSWeekZcount.hpp
@@ -0,0 +1,28 @@
+#ifndef XGPSWEEKZCOUNT_HPP
+#define XGPSWEEKZCOUNT_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "GPSWeekZcount.hpp"
+
+using namespace std;
+
+class xGPSWeekZcount: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xGPSWeekZcount);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/GPSWeekZcount/xGPSWeekZcountM.cpp b/dev/tests/GPSWeekZcount/xGPSWeekZcountM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/GPSWeekZcount/xGPSWeekZcountM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/IonoModel/IonoModel.cpp b/dev/tests/IonoModel/IonoModel.cpp
new file mode 120000
index 0000000..727e7ce
--- /dev/null
+++ b/dev/tests/IonoModel/IonoModel.cpp
@@ -0,0 +1 @@
+../../src/IonoModel.cpp
\ No newline at end of file
diff --git a/dev/tests/IonoModel/IonoModel.hpp b/dev/tests/IonoModel/IonoModel.hpp
new file mode 120000
index 0000000..6676019
--- /dev/null
+++ b/dev/tests/IonoModel/IonoModel.hpp
@@ -0,0 +1 @@
+../../src/IonoModel.hpp
\ No newline at end of file
diff --git a/dev/tests/IonoModel/Jamfile b/dev/tests/IonoModel/Jamfile
new file mode 100644
index 0000000..c87740c
--- /dev/null
+++ b/dev/tests/IonoModel/Jamfile
@@ -0,0 +1,3 @@
+SubDir TOP IonoModel ;
+
+TestMain IonoModel/xIonoModel.tst : IonoModel/xIonoModelM.cpp IonoModel/xIonoModel.cpp IonoModel/IonoModel.cpp ;
diff --git a/dev/tests/IonoModel/makefile b/dev/tests/IonoModel/makefile
new file mode 100644
index 0000000..9c12062
--- /dev/null
+++ b/dev/tests/IonoModel/makefile
@@ -0,0 +1,22 @@
+# CppUnit-Tutorial
+# file: makefile
+# next line has to be changed to the installation-path of CppUnit
+CPPUNIT_PATH=/home/ehagen
+
+xIonoModel.tst: xIonoModelM.o xIonoModel.o IonoModel.o
+ g++ -o xIonoModel.tst xIonoModelM.o xIonoModel.o IonoModel.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -l gpstk -ftest-coverage -fprofile-arcs
+
+
+IonoModel.o: IonoModel.cpp IonoModel.hpp
+ g++ -c IonoModel.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -ftest-coverage -fprofile-arcs
+
+xIonoModel.o: xIonoModel.cpp xIonoModel.hpp
+ g++ -c xIonoModel.cpp -I${CPPUNIT_PATH}/include -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -ftest-coverage -fprofile-arcs
+
+xIonoModelM.o: xIonoModelM.cpp
+ g++ -c xIonoModelM.cpp -I${CPPUNIT_PATH}/include -ftest-coverage -fprofile-arcs
+
+clean:
+ rm -f *.o
+ rm -f *.g*
+ rm -f *.*.g*
diff --git a/dev/tests/IonoModel/xIonoModel.cpp b/dev/tests/IonoModel/xIonoModel.cpp
new file mode 100644
index 0000000..6e88c45
--- /dev/null
+++ b/dev/tests/IonoModel/xIonoModel.cpp
@@ -0,0 +1,113 @@
+// file: xIonoModel.cpp
+
+#include "xIonoModel.hpp"
+#include "EngAlmanac.hpp"
+#include "DayTime.hpp"
+#include "Geodetic.hpp"
+
+
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xIonoModel);
+
+void xIonoModel :: setUp (void)
+{
+}
+
+/*
+****Test to assert the quality of the == operator of the IonoModel class
+*/
+void xIonoModel :: equalityTest (void)
+{
+ //Create many alpha and beta arrays which deine the Ionospheric model
+ double a[4] = {1.,2.,3.,4.};
+ double b[4] = {4.,3.,2.,1.};
+ double c[4] = {1.,2.,3.,4.};
+ double d[4] = {4.,3.,2.,1.};
+ double e[4] = {0.,0.,0.,0.};
+ gpstk::IonoModel Model1(a,b);
+ gpstk::IonoModel Model2(c,d);
+ gpstk::IonoModel Model3(a,e);
+ CPPUNIT_ASSERT(Model1 == Model2);
+ CPPUNIT_ASSERT(!(Model1 == Model3));
+
+}
+
+/*
+****Test to assert the quality of the != operator of the IonoModel class
+*/
+void xIonoModel :: nonEqualityTest (void)
+{
+ //Create many alpha and beta arrays which deine the Ionospheric model
+ double a[4] = {1.,2.,3.,4.};
+ double b[4] = {4.,3.,2.,1.};
+ double c[4] = {1.,2.,3.,4.};
+ double d[4] = {4.,3.,2.,1.};
+ double e[4] = {0.,0.,0.,0.};
+ gpstk::IonoModel Model1(a,b);
+ gpstk::IonoModel Model2(c,d);
+ gpstk::IonoModel Model3(a,e);
+ CPPUNIT_ASSERT(!(Model1 != Model2));
+ CPPUNIT_ASSERT((Model1 != Model3));
+}
+
+/*
+****Test to assert the quality of the isValid() member of the IonoModel
+****class.
+*/
+void xIonoModel :: validTest (void)
+{
+ //Instantiate a blank almanac
+ gpstk::EngAlmanac blankAlmanac;
+
+ //Create an alpha and a beta array which define the Ionospheric model
+ double a[4] = {1.,2.,3.,4.};
+ double b[4] = {4.,3.,2.,1.};
+
+ //Test to see if various IonoModel instantiations are valid
+ gpstk::IonoModel noParam;
+ gpstk::IonoModel withArray(a,b);
+ gpstk::IonoModel wblankAlm(blankAlmanac);
+ CPPUNIT_ASSERT(!noParam.isValid());
+ CPPUNIT_ASSERT(!wblankAlm.isValid());
+ CPPUNIT_ASSERT(withArray.isValid());
+}
+
+/*
+****Test to check and make sure that all of the execptions in the Ionomodel
+****class are thrown where and as they are expected to
+
+**** Please note: As of June 29,2006 I have not found a way to get the blankAlmanac
+**** exception to throw the way I wanted it to. I have set it to assert fail so I can
+**** come back at a later date to fix it.
+*/
+void xIonoModel :: exceptionTest (void)
+{
+ //Default constructer for Almanac will give a blank almanac
+ gpstk::EngAlmanac blankAlmanac;
+ //Set DayTime to the current system time
+ gpstk::DayTime dayTime;
+ //Use the default Geodetic constructer
+ gpstk::Geodetic rxgeo;
+ //Set el and az to 0 for ease of testing
+ double svel = 0;
+ double svaz = 0;
+ //Easy alpha and beta for Ionospheric testing
+ double a[4] = {1.,2.,3.,4.};
+ double b[4] = {4.,3.,2.,1.};
+ gpstk::IonoModel Model(blankAlmanac);
+ gpstk::IonoModel goodModel(a,b);
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(blankAlmanac.getIon(a,b),gpstk::InvalidRequest);
+ //Questioning why this isnt failing auto fail for now
+ CPPUNIT_ASSERT_ASSERTION_FAIL(CPPUNIT_ASSERT_THROW(gpstk::IonoModel Model(blankAlmanac),gpstk::Exception));
+ CPPUNIT_ASSERT_THROW(Model.getCorrection(dayTime,rxgeo,svel,svaz,Model.L1),gpstk::IonoModel::InvalidIonoModel);
+ CPPUNIT_ASSERT_NO_THROW(goodModel.getCorrection(dayTime,rxgeo,svel,svaz,Model.L1));
+ CPPUNIT_ASSERT_NO_THROW(goodModel.getCorrection(dayTime,rxgeo,svel,svaz,Model.L2));
+ CPPUNIT_ASSERT_NO_THROW(goodModel.getCorrection(dayTime,rxgeo,72.,45.,Model.L1));
+ }
+ catch(gpstk::Exception& e)
+ {
+ }
+}
diff --git a/dev/tests/IonoModel/xIonoModel.hpp b/dev/tests/IonoModel/xIonoModel.hpp
new file mode 100644
index 0000000..ac4128a
--- /dev/null
+++ b/dev/tests/IonoModel/xIonoModel.hpp
@@ -0,0 +1,36 @@
+// file:
+
+#ifndef XIONOMODEL_HPP
+#define XIONOMODEL_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "IonoModel.hpp"
+
+using namespace std;
+
+
+class xIonoModel: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xIonoModel);
+ CPPUNIT_TEST (equalityTest);
+ CPPUNIT_TEST (nonEqualityTest);
+ CPPUNIT_TEST (validTest);
+ CPPUNIT_TEST (exceptionTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void equalityTest (void);
+ void nonEqualityTest (void);
+ void validTest (void);
+ void exceptionTest (void);
+
+ private:
+
+};
+#endif
diff --git a/dev/tests/IonoModel/xIonoModelM.cpp b/dev/tests/IonoModel/xIonoModelM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/IonoModel/xIonoModelM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/Jamfile b/dev/tests/Jamfile
new file mode 100644
index 0000000..d55ee0c
--- /dev/null
+++ b/dev/tests/Jamfile
@@ -0,0 +1,27 @@
+SubDir TOP ;
+SubInclude TOP ANSITime ;
+SubInclude TOP BCEphemerisStore ;
+SubInclude TOP BinUtils ;
+SubInclude TOP CivilTime ;
+SubInclude TOP CommonTime ;
+SubInclude TOP DayTime ;
+SubInclude TOP GPSEpochWeekSecond ;
+SubInclude TOP GPSWeekSecond ;
+SubInclude TOP GPSWeekZcount ;
+SubInclude TOP IonoModel ;
+SubInclude TOP JulianDate ;
+SubInclude TOP MJD ;
+SubInclude TOP MSC ;
+SubInclude TOP PolyFit ;
+SubInclude TOP RACRotation ;
+SubInclude TOP RinexEphemerisStore ;
+SubInclude TOP RinexMet ;
+SubInclude TOP RinexNav ;
+SubInclude TOP RinexObs ;
+SubInclude TOP RungeKutta4 ;
+SubInclude TOP Stats ;
+SubInclude TOP TimeConverters ;
+SubInclude TOP UnixTime ;
+SubInclude TOP YDSTime ;
+SubInclude TOP Yuma ;
+SubInclude TOP SEM ;
\ No newline at end of file
diff --git a/dev/tests/Jamrules b/dev/tests/Jamrules
new file mode 100755
index 0000000..1aa9977
--- /dev/null
+++ b/dev/tests/Jamrules
@@ -0,0 +1,22 @@
+#PATH_TO_CURRENT = /home/user/Cpptests/GoodTests ; #Current directory; Main testing directory
+#CPPUNIT_LIB = /home/user/lib ; #Directory which holds the CppUnit Libraries
+#CPPUNIT_INC = /home/user/include ; #Directory which holds the CppUnit
+
+STD_LINK_LIBS = -ldl -lstdc++ ;
+LINKFLAGS = -fprofile-arcs -ftest-coverage ; #Gcov required flags
+SEARCH = $(CPPUNIT_LIB) $(PATH_TO_CURRENT)/../src ;
+
+rule Clean
+{
+ RM = rm *.g* */*.g* ;
+}
+
+rule TestMain
+{
+ Main $(PATH_TO_CURRENT)/$(<) : $(PATH_TO_CURRENT)/$(>) ;
+ ObjectHdrs $(PATH_TO_CURRENT)/$(<) $(PATH_TO_CURRENT)/$(>) : $(CPPUNIT_INC) $(PATH_TO_CURRENT)/../src ;
+ ObjectC++Flags $(PATH_TO_CURRENT)/$(>) : -fprofile-arcs -ftest-coverage ;
+ LINKLIBS on $(PATH_TO_CURRENT)/$(<) = $(STD_LINK_LIBS) ;
+ LinkLibraries $(PATH_TO_CURRENT)/$(<) : libcppunit $(PATH_TO_CURRENT)/../src/libgpstk ;
+
+}
diff --git a/dev/tests/JulianDate/Jamfile b/dev/tests/JulianDate/Jamfile
new file mode 100644
index 0000000..817127c
--- /dev/null
+++ b/dev/tests/JulianDate/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP JulianDate ;
+TestMain JulianDate/xJulianDate.tst : JulianDate/xJulianDateM.cpp JulianDate/xJulianDate.cpp JulianDate/JulianDate.cpp ;
diff --git a/dev/tests/JulianDate/JulianDate.cpp b/dev/tests/JulianDate/JulianDate.cpp
new file mode 120000
index 0000000..7aba2bf
--- /dev/null
+++ b/dev/tests/JulianDate/JulianDate.cpp
@@ -0,0 +1 @@
+../../src/JulianDate.cpp
\ No newline at end of file
diff --git a/dev/tests/JulianDate/JulianDate.hpp b/dev/tests/JulianDate/JulianDate.hpp
new file mode 120000
index 0000000..f898d12
--- /dev/null
+++ b/dev/tests/JulianDate/JulianDate.hpp
@@ -0,0 +1 @@
+../../src/JulianDate.hpp
\ No newline at end of file
diff --git a/dev/tests/JulianDate/Logs/printfOutput b/dev/tests/JulianDate/Logs/printfOutput
new file mode 100644
index 0000000..63d0f43
--- /dev/null
+++ b/dev/tests/JulianDate/Logs/printfOutput
@@ -0,0 +1,2 @@
+1350000.000000
+0.000000
diff --git a/dev/tests/JulianDate/xJulianDate.cpp b/dev/tests/JulianDate/xJulianDate.cpp
new file mode 100644
index 0000000..19e8f19
--- /dev/null
+++ b/dev/tests/JulianDate/xJulianDate.cpp
@@ -0,0 +1,56 @@
+#include "xJulianDate.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xJulianDate);
+
+using namespace gpstk;
+
+void xJulianDate :: setUp (void)
+{
+}
+
+void xJulianDate :: setFromInfoTest (void)
+{
+ gpstk::JulianDate setFromInfo1;
+ gpstk::JulianDate setFromInfo2;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('J',"1350000"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('J');
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+}
+
+void xJulianDate :: operatorTest (void)
+{
+
+ gpstk::JulianDate Compare(1350000);
+ gpstk::JulianDate LessThanJD(1340000);
+
+ gpstk::JulianDate CompareCopy(Compare);
+
+ gpstk::JulianDate CompareCopy2;
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanJD);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanJD < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanJD));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanJD);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanJD <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanJD);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+}
diff --git a/dev/tests/JulianDate/xJulianDate.hpp b/dev/tests/JulianDate/xJulianDate.hpp
new file mode 100644
index 0000000..5c36e35
--- /dev/null
+++ b/dev/tests/JulianDate/xJulianDate.hpp
@@ -0,0 +1,28 @@
+#ifndef XJULIANDATE_HPP
+#define XJULIANDATE_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "JulianDate.hpp"
+
+using namespace std;
+
+class xJulianDate: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xJulianDate);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/JulianDate/xJulianDateM.cpp b/dev/tests/JulianDate/xJulianDateM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/JulianDate/xJulianDateM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/MJD/Jamfile b/dev/tests/MJD/Jamfile
new file mode 100644
index 0000000..04a5174
--- /dev/null
+++ b/dev/tests/MJD/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP MJD ;
+TestMain MJD/xMJD.tst : MJD/xMJDM.cpp MJD/xMJD.cpp MJD/MJD.cpp ;
diff --git a/dev/tests/MJD/Logs/printfOutput b/dev/tests/MJD/Logs/printfOutput
new file mode 100644
index 0000000..6f37697
--- /dev/null
+++ b/dev/tests/MJD/Logs/printfOutput
@@ -0,0 +1,2 @@
+135000.000000000
+0.000000000
diff --git a/dev/tests/MJD/MJD.cpp b/dev/tests/MJD/MJD.cpp
new file mode 120000
index 0000000..f9501e7
--- /dev/null
+++ b/dev/tests/MJD/MJD.cpp
@@ -0,0 +1 @@
+../../src/MJD.cpp
\ No newline at end of file
diff --git a/dev/tests/MJD/MJD.hpp b/dev/tests/MJD/MJD.hpp
new file mode 120000
index 0000000..1174419
--- /dev/null
+++ b/dev/tests/MJD/MJD.hpp
@@ -0,0 +1 @@
+../../src/MJD.hpp
\ No newline at end of file
diff --git a/dev/tests/MJD/xMJD.cpp b/dev/tests/MJD/xMJD.cpp
new file mode 100644
index 0000000..58dfddc
--- /dev/null
+++ b/dev/tests/MJD/xMJD.cpp
@@ -0,0 +1,57 @@
+#include "xMJD.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xMJD);
+
+using namespace gpstk;
+
+void xMJD :: setUp (void)
+{
+}
+
+void xMJD :: setFromInfoTest (void)
+{
+ gpstk::MJD setFromInfo1;
+ gpstk::MJD setFromInfo2;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('Q',"135000"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('Q');
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+}
+
+void xMJD :: operatorTest (void)
+{
+
+ gpstk::MJD Compare(135000);
+ gpstk::MJD LessThanJD(134000);
+
+ gpstk::MJD CompareCopy(Compare);
+
+ gpstk::MJD CompareCopy2;
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanJD);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanJD < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanJD));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanJD);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanJD <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanJD);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+}
+
diff --git a/dev/tests/MJD/xMJD.hpp b/dev/tests/MJD/xMJD.hpp
new file mode 100644
index 0000000..65aa82f
--- /dev/null
+++ b/dev/tests/MJD/xMJD.hpp
@@ -0,0 +1,27 @@
+#ifndef XMJD_HPP
+#define XMJD_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "MJD.hpp"
+
+using namespace std;
+
+class xMJD: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xMJD);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+};
+
+#endif
diff --git a/dev/tests/MJD/xMJDM.cpp b/dev/tests/MJD/xMJDM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/MJD/xMJDM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/MSC/Jamfile b/dev/tests/MSC/Jamfile
new file mode 100644
index 0000000..219c5aa
--- /dev/null
+++ b/dev/tests/MSC/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP MSC ;
+TestMain MSC/xMSC.tst : MSC/xMSCM.cpp MSC/xMSC.cpp MSC/MSCData.cpp MSC/MSCStream.cpp ;
diff --git a/dev/tests/MSC/Logs/CoordFile b/dev/tests/MSC/Logs/CoordFile
new file mode 100644
index 0000000..adad0ed
--- /dev/null
+++ b/dev/tests/MSC/Logs/CoordFile
@@ -0,0 +1,5 @@
+200136011111AAA 2001.002001.00-1111111.295-2222222.239 3333333.175 -.0111 .0222 -.0333
+200136022222BBB 2001.002001.00 2222222.122-3333333.853 -444444.990 -.0000 -.0000 .0112
+200136033333CCC 2001.002001.00 3333333.142 2727272.007 -0.366 -.0000 .0000 .0227
+200136044444DDD 2001.002001.00-4444444.370 3434343.965 111111.071 .0000 .0000 .0110
+200136055555EEE 2001.002001.00 -0.484 -0.093 0.952 -.0000 .0000 .0000
diff --git a/dev/tests/MSC/Logs/Output b/dev/tests/MSC/Logs/Output
new file mode 100644
index 0000000..adad0ed
--- /dev/null
+++ b/dev/tests/MSC/Logs/Output
@@ -0,0 +1,5 @@
+200136011111AAA 2001.002001.00-1111111.295-2222222.239 3333333.175 -.0111 .0222 -.0333
+200136022222BBB 2001.002001.00 2222222.122-3333333.853 -444444.990 -.0000 -.0000 .0112
+200136033333CCC 2001.002001.00 3333333.142 2727272.007 -0.366 -.0000 .0000 .0227
+200136044444DDD 2001.002001.00-4444444.370 3434343.965 111111.071 .0000 .0000 .0110
+200136055555EEE 2001.002001.00 -0.484 -0.093 0.952 -.0000 .0000 .0000
diff --git a/dev/tests/MSC/Logs/Output2 b/dev/tests/MSC/Logs/Output2
new file mode 100644
index 0000000..adad0ed
--- /dev/null
+++ b/dev/tests/MSC/Logs/Output2
@@ -0,0 +1,5 @@
+200136011111AAA 2001.002001.00-1111111.295-2222222.239 3333333.175 -.0111 .0222 -.0333
+200136022222BBB 2001.002001.00 2222222.122-3333333.853 -444444.990 -.0000 -.0000 .0112
+200136033333CCC 2001.002001.00 3333333.142 2727272.007 -0.366 -.0000 .0000 .0227
+200136044444DDD 2001.002001.00-4444444.370 3434343.965 111111.071 .0000 .0000 .0110
+200136055555EEE 2001.002001.00 -0.484 -0.093 0.952 -.0000 .0000 .0000
diff --git a/dev/tests/MSC/MSCData.cpp b/dev/tests/MSC/MSCData.cpp
new file mode 120000
index 0000000..2fc4c37
--- /dev/null
+++ b/dev/tests/MSC/MSCData.cpp
@@ -0,0 +1 @@
+../../src/MSCData.cpp
\ No newline at end of file
diff --git a/dev/tests/MSC/MSCData.hpp b/dev/tests/MSC/MSCData.hpp
new file mode 120000
index 0000000..d90f9d8
--- /dev/null
+++ b/dev/tests/MSC/MSCData.hpp
@@ -0,0 +1 @@
+../../src/MSCData.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/MSC/MSCStream.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/MSC/MSCStream.cpp
diff --git a/dev/tests/MSC/MSCStream.hpp b/dev/tests/MSC/MSCStream.hpp
new file mode 120000
index 0000000..c647d33
--- /dev/null
+++ b/dev/tests/MSC/MSCStream.hpp
@@ -0,0 +1 @@
+../../src/MSCStream.hpp
\ No newline at end of file
diff --git a/dev/tests/MSC/xMSC.cpp b/dev/tests/MSC/xMSC.cpp
new file mode 100644
index 0000000..ece80cd
--- /dev/null
+++ b/dev/tests/MSC/xMSC.cpp
@@ -0,0 +1,67 @@
+#include "xMSC.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xMSC);
+
+using namespace gpstk;
+
+void xMSC :: setUp (void)
+{
+}
+
+void xMSC :: firstTest (void)
+{
+ MSCStream Input("Logs/CoordFile");
+ MSCStream Out("Logs/Output",ios::out);
+ MSCData Data;
+
+ Input >> Data;
+ gpstk::DayTime Time(2001,360,0.0);
+ CPPUNIT_ASSERT_EQUAL(Time,Data.time);
+ CPPUNIT_ASSERT_EQUAL((long unsigned) 11111,Data.station);
+ CPPUNIT_ASSERT_EQUAL((string)"AAA " ,Data.mnemonic);
+
+ Out << Data;
+ while (Input >> Data)
+ {
+ Out << Data;
+ }
+
+ MSCStream Input2("Logs/Output");
+ MSCStream Out2("Logs/Output2",ios::out);
+ MSCData Data2;
+ while (Input2 >> Data2)
+ {
+ Out2 << Data2;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/CoordFile","Logs/Output"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/CoordFile","Logs/Output2"));
+}
+
+bool xMSC :: fileEqualTest (char* handle1, char* handle2)
+{
+ bool isEqual = false;
+
+ ifstream File1;
+ ifstream File2;
+
+ std::string File1Line;
+ std::string File2Line;
+
+ File1.open(handle1);
+ File2.open(handle2);
+
+ while (!File1.eof())
+ {
+ if (File2.eof())
+ return isEqual;
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ if (File1Line != File2Line)
+ return isEqual;
+ }
+ if (!File2.eof())
+ return isEqual;
+ else
+ return isEqual = true;
+}
diff --git a/dev/tests/MSC/xMSC.hpp b/dev/tests/MSC/xMSC.hpp
new file mode 100644
index 0000000..b79871f
--- /dev/null
+++ b/dev/tests/MSC/xMSC.hpp
@@ -0,0 +1,28 @@
+#ifndef XMSC_HPP
+#define XMSC_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "MSCData.hpp"
+#include "MSCStream.hpp"
+
+using namespace std;
+
+class xMSC: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xMSC);
+ CPPUNIT_TEST (firstTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void firstTest (void);
+ bool fileEqualTest (char*, char*);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/MSC/xMSCM.cpp b/dev/tests/MSC/xMSCM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/MSC/xMSCM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/Makefile.am b/dev/tests/Makefile.am
new file mode 100644
index 0000000..82774ca
--- /dev/null
+++ b/dev/tests/Makefile.am
@@ -0,0 +1,3 @@
+# $Id$
+SUBDIRS = RungeKutta4 Stats BCEphemerisStore BinUtils DayTime IonoModel PolyFit RinexEphemerisStore RinexMet RinexObs RinexNav
+
diff --git a/dev/tests/PolyFit/Jamfile b/dev/tests/PolyFit/Jamfile
new file mode 100644
index 0000000..09edde8
--- /dev/null
+++ b/dev/tests/PolyFit/Jamfile
@@ -0,0 +1,4 @@
+SubDir TOP PolyFit ;
+
+TestMain PolyFit/xPolyFit.tst : PolyFit/xPolyFitM.cpp PolyFit/xPolyFit.cpp PolyFit/PolyFit.cpp ;
+
diff --git a/trunk/src/Makefile.am b/dev/tests/PolyFit/PolyFit.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/PolyFit/PolyFit.cpp
diff --git a/dev/tests/PolyFit/PolyFit.hpp b/dev/tests/PolyFit/PolyFit.hpp
new file mode 120000
index 0000000..0f0cec3
--- /dev/null
+++ b/dev/tests/PolyFit/PolyFit.hpp
@@ -0,0 +1 @@
+../../src/PolyFit.hpp
\ No newline at end of file
diff --git a/dev/tests/PolyFit/makefile b/dev/tests/PolyFit/makefile
new file mode 100644
index 0000000..9c42f65
--- /dev/null
+++ b/dev/tests/PolyFit/makefile
@@ -0,0 +1,22 @@
+# CppUnit-Tutorial
+# file: makefile
+# next line has to be changed to the installation-path of CppUnit
+CPPUNIT_PATH=/home/ehagen
+
+xPolyFit.tst: xPolyFitM.o xPolyFit.o PolyFit.o
+ g++ -o xPolyFit.tst xPolyFitM.o xPolyFit.o PolyFit.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+
+PolyFit.o: PolyFit.cpp PolyFit.hpp
+ g++ -c PolyFit.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xPolyFit.o: xPolyFit.cpp xPolyFit.hpp
+ g++ -c xPolyFit.cpp -I${CPPUNIT_PATH}/include -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xPolyFitM.o: xPolyFitM.cpp
+ g++ -c xPolyFitM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+clean:
+ rm -f *.o
+ rm -f *.g*
+ rm -f *.*.g*
diff --git a/dev/tests/PolyFit/xPolyFit.cpp b/dev/tests/PolyFit/xPolyFit.cpp
new file mode 100644
index 0000000..6b28f9b
--- /dev/null
+++ b/dev/tests/PolyFit/xPolyFit.cpp
@@ -0,0 +1,280 @@
+// file:
+
+#include "xPolyFit.hpp"
+
+//Note to self Find out what covariance is and then add that to the test cases
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xPolyFit);
+
+
+void xPolyFit :: setUp (void)
+{
+}
+
+/*
+**** This test is designed to test the validity of the PolyFit constructors
+**** Both of the two constructors are tested to make sure they don't throw
+**** a random exceptions.
+
+**** Also this test makes sure that the constructer set up everything as we
+**** expected it to (e.g. N to 0)
+
+*/
+
+void xPolyFit :: constrTest (void)
+{
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(gpstk::PolyFit<double> PolyCheck);
+ CPPUNIT_ASSERT_NO_THROW(gpstk::PolyFit<double> PolyNumCheck(4));
+
+ gpstk::PolyFit<double> Poly;
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, Poly.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, Poly.Degree());
+ CPPUNIT_ASSERT_EQUAL(true, Poly.isSingular());
+ gpstk::PolyFit<double> Poly4((unsigned) 4);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, Poly4.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, Poly4.Degree());
+ CPPUNIT_ASSERT_EQUAL(true, Poly4.isSingular());
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+/*
+**** This test is designed to test the validity of the three add members of the PolyFit class
+**** Addition to the PolyFit object is tested with individual datum, gpstk::Vectors of data and
+**** std::vectors of data.
+
+**** These are tested against a least squares polynomial fit that was done by hand
+
+**** Please note isSingular, Solution, Degreem N and Solve were tested inderectly
+**** Please note, I don't know enough about Covariance to test it for the example by hand
+
+*/
+void xPolyFit :: addTest (void)
+{
+ gpstk::PolyFit<double> AddSingle(2);
+ gpstk::PolyFit<double> AddGVect(2);
+ gpstk::PolyFit<double> AddSVect(2);
+
+ double data[4] = {0.,2.,4.,-1.};
+ double time[4] = {3.,3.,4.,2.,};
+
+ gpstk::Vector<double> gData(4,0.);
+ gData[0] = 0.;
+ gData[1] = 2.;
+ gData[2] = 4.;
+ gData[3] = -1.;
+ gpstk::Vector<double> gTime(4,0.);
+ gTime[0] = 3.;
+ gTime[1] = 3.;
+ gTime[2] = 4.;
+ gTime[3] = 2.;
+
+ std::vector<double> vData(4,0.);
+ vData[0] = 0.;
+ vData[1] = 2.;
+ vData[2] = 4.;
+ vData[3] = -1.;
+ std::vector<double> vTime(4,0.);
+ vTime[0] = 3.;
+ vTime[1] = 3.;
+ vTime[2] = 4.;
+ vTime[3] = 2.;
+
+ //Done by hand
+ gpstk::Vector<double> ExpSolution(2,0.);
+ ExpSolution[0] = 152./59;
+ ExpSolution[1] = 20./59;
+
+ for (int i =0;i<4;i++)
+ {
+ AddSingle.Add(time[i],data[i]);
+ }
+ gpstk::Vector<double> SingleSolution = AddSingle.Solution();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[0],SingleSolution[0],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[1],SingleSolution[1],1e-6);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, AddSingle.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, AddSingle.Degree());
+ CPPUNIT_ASSERT_EQUAL(false, AddSingle.isSingular());
+
+ //Add on an unweighted sample, N should increase but everything else should be the same
+ AddSingle.Add(7.,20.,0);
+
+ gpstk::Vector<double> SingleSolution2 = AddSingle.Solution();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[0],SingleSolution2[0],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[1],SingleSolution2[1],1e-6);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 5, AddSingle.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, AddSingle.Degree());
+ CPPUNIT_ASSERT_EQUAL(false, AddSingle.isSingular());
+
+
+ AddGVect.Add(gTime,gData);
+ gpstk::Vector<double> gVectSolution = AddGVect.Solution();
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[0],gVectSolution[0],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[1],gVectSolution[1],1e-6);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, AddGVect.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, AddGVect.Degree());
+ CPPUNIT_ASSERT_EQUAL(false, AddGVect.isSingular());
+
+ AddSVect.Add(vTime,vData);
+ gpstk::Vector<double> sVectSolution = AddSVect.Solution();
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[0],sVectSolution[0],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ExpSolution[1],sVectSolution[1],1e-6);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, AddSVect.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, AddSVect.Degree());
+ CPPUNIT_ASSERT_EQUAL(false, AddSVect.isSingular());
+
+}
+
+/*
+**** This test is designed to test the validity of the reset member of the PolyFit class
+**** Reset is tested by first adding data to a blank PolyFit object and then clearing
+**** that data (Please note this dad was already tested in the previous test)
+
+**** Please note isSingular, Solution, Degreem N and Solve were tested inderectly here
+
+*/
+void xPolyFit :: resetTest (void)
+{
+ //Polynomial will be reset without user inputed parameter
+ gpstk::PolyFit<double> resetPolyD(2);
+
+ //Poly will be reset with a parameter
+ gpstk::PolyFit<double> resetPolyP(2);
+
+
+ double data[4] = {0.,2.,4.,-1.};
+ double time[4] = {3.,3.,4.,2.,};
+
+ for (int i =0;i<4;i++)
+ {
+ resetPolyD.Add(time[i],data[i]);
+ resetPolyP.Add(time[i],data[i]);
+ }
+
+ resetPolyD.Reset();
+
+ gpstk::Matrix<double> Blank(2,2,0.);
+ gpstk::Vector<double> Zero(2,0.);
+
+ gpstk::Vector<double> resetPolyDSolution = resetPolyD.Solution();
+ gpstk::Matrix<double> resetPolyDCov = resetPolyD.Covariance();
+
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, resetPolyD.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, resetPolyD.Degree());
+ CPPUNIT_ASSERT_EQUAL(true, resetPolyD.isSingular());
+ CPPUNIT_ASSERT_EQUAL(Blank[0][0],resetPolyDCov[0][0]);
+ CPPUNIT_ASSERT_EQUAL(Blank[0][1],resetPolyDCov[0][1]);
+ CPPUNIT_ASSERT_EQUAL(Blank[1][0],resetPolyDCov[1][0]);
+ CPPUNIT_ASSERT_EQUAL(Blank[1][1],resetPolyDCov[1][1]);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(Zero[0],resetPolyDSolution[0],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(Zero[1],resetPolyDSolution[1],1e-6);
+
+ resetPolyP.Reset((unsigned) 3);
+
+ gpstk::Matrix<double> BlankP(3,3,0.);
+ gpstk::Vector<double> ZeroP(3,0.);
+
+ gpstk::Vector<double> resetPolyPSolution = resetPolyP.Solution();
+ gpstk::Matrix<double> resetPolyPCov = resetPolyP.Covariance();
+
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, resetPolyP.N());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 3, resetPolyP.Degree());
+ CPPUNIT_ASSERT_EQUAL(true, resetPolyP.isSingular());
+ CPPUNIT_ASSERT_EQUAL(BlankP[0][0],resetPolyPCov[0][0]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[0][1],resetPolyPCov[0][1]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[0][2],resetPolyPCov[0][2]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[1][0],resetPolyPCov[1][0]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[1][1],resetPolyPCov[1][1]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[1][2],resetPolyPCov[1][2]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[2][0],resetPolyPCov[2][0]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[2][1],resetPolyPCov[2][1]);
+ CPPUNIT_ASSERT_EQUAL(BlankP[2][2],resetPolyPCov[2][2]);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ZeroP[0],resetPolyPSolution[0],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ZeroP[1],resetPolyPSolution[1],1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(ZeroP[2],resetPolyPSolution[2],1e-6);
+
+}
+
+/*
+**** This test is designed to test the validity of the Evaluate member of the PolyFit class
+**** This particular test only involves using Evaluate for a single datum and a blank, singular
+**** and a normal PolyFit.
+
+**** The Evaluate is tested by using the solution to a + b*x = d
+
+*/
+void xPolyFit :: evalTestSingle (void)
+{
+ gpstk::PolyFit<double> Blank;
+ gpstk::PolyFit<double> Single(2);
+ gpstk::PolyFit<double> Eval(2);
+
+ double data[4] = {0.,2.,4.,-1.};
+ double time[4] = {3.,3.,4.,2.,};
+ double dataS[4] = {1.,1.,1.,1.};
+ double timeS[4] = {0.,0.,0.,1.,};
+
+ for (int i =0;i<4;i++)
+ {
+ Eval.Add(time[i],data[i]);
+ Single.Add(timeS[i],dataS[i]);
+ }
+
+ gpstk::Vector<double> EvalSolution = Eval.Solution();
+
+ CPPUNIT_ASSERT_EQUAL(0.,Blank.Evaluate(3.));
+ CPPUNIT_ASSERT_EQUAL(0.,Single.Evaluate(10.));
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(EvalSolution[0]+3.*EvalSolution[1], Eval.Evaluate(3.),1e-6);
+}
+
+/*
+**** This test is designed to test the validity of the Evaluate member of the PolyFit class
+**** This particular test only involves using Evaluate for a gpstk::Vectors of data with
+**** a blank, singular, and a normal PolyFit.
+
+**** The Evaluate is tested by using the solution to a + b*x = d
+
+*/
+void xPolyFit :: evalTestVector (void)
+{
+ gpstk::PolyFit<double> Blank;
+ gpstk::PolyFit<double> Single(2);
+ gpstk::PolyFit<double> Eval(2);
+
+ gpstk::Vector<double> SData(4,0.);
+ SData[0] = 1.;
+ SData[1] = 1.;
+ SData[2] = 1.;
+ SData[3] = 1.;
+ gpstk::Vector<double> STime(4,0.);
+ STime[0] = 0.;
+ STime[1] = 0.;
+ STime[2] = 0.;
+ STime[3] = 1.;
+
+ gpstk::Vector<double> EData(4,0.);
+ EData[0] = 0.;
+ EData[1] = 2.;
+ EData[2] = 4.;
+ EData[3] = -1.;
+ gpstk::Vector<double> ETime(4,0.);
+ ETime[0] = 3.;
+ ETime[1] = 3.;
+ ETime[2] = 4.;
+ ETime[3] = 2.;
+
+ Single.Add(STime,SData);
+ Eval.Add(ETime,EData);
+
+ gpstk::Vector<double> EvalSolution = Eval.Solution();
+
+ CPPUNIT_ASSERT_EQUAL(0.,Blank.Evaluate(3.));
+ CPPUNIT_ASSERT_EQUAL(0.,Single.Evaluate(10.));
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(EvalSolution[0]+3.*EvalSolution[1], Eval.Evaluate(3.),1e-6);
+}
diff --git a/dev/tests/PolyFit/xPolyFit.hpp b/dev/tests/PolyFit/xPolyFit.hpp
new file mode 100644
index 0000000..557c166
--- /dev/null
+++ b/dev/tests/PolyFit/xPolyFit.hpp
@@ -0,0 +1,41 @@
+// file: xPolyFit.hpp
+
+#ifndef XPOLYFIT_HPP
+#define XPOLYFIT_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "PolyFit.hpp"
+
+
+using namespace std;
+
+
+class xPolyFit: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xPolyFit);
+ CPPUNIT_TEST (constrTest);
+ CPPUNIT_TEST (addTest);
+ CPPUNIT_TEST (resetTest);
+ CPPUNIT_TEST (evalTestSingle);
+ CPPUNIT_TEST (evalTestVector);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void constrTest (void);
+ void addTest (void);
+ void resetTest (void);
+ void evalTestSingle (void);
+ void evalTestVector (void);
+
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/PolyFit/xPolyFitM.cpp b/dev/tests/PolyFit/xPolyFitM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/PolyFit/xPolyFitM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/RACRotation/Jamfile b/dev/tests/RACRotation/Jamfile
new file mode 100644
index 0000000..56cbff2
--- /dev/null
+++ b/dev/tests/RACRotation/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP RACRotation ;
+TestMain RACRotation/xRACRotation.tst : RACRotation/xRACRotationM.cpp RACRotation/xRACRotation.cpp RACRotation/RACRotation.cpp ;
diff --git a/dev/tests/RACRotation/RACRotation.cpp b/dev/tests/RACRotation/RACRotation.cpp
new file mode 120000
index 0000000..862a319
--- /dev/null
+++ b/dev/tests/RACRotation/RACRotation.cpp
@@ -0,0 +1 @@
+../../src/RACRotation.cpp
\ No newline at end of file
diff --git a/dev/tests/RACRotation/RACRotation.hpp b/dev/tests/RACRotation/RACRotation.hpp
new file mode 120000
index 0000000..0d43890
--- /dev/null
+++ b/dev/tests/RACRotation/RACRotation.hpp
@@ -0,0 +1 @@
+../../src/RACRotation.hpp
\ No newline at end of file
diff --git a/dev/tests/RACRotation/xRACRotation.cpp b/dev/tests/RACRotation/xRACRotation.cpp
new file mode 100644
index 0000000..925fde4
--- /dev/null
+++ b/dev/tests/RACRotation/xRACRotation.cpp
@@ -0,0 +1,224 @@
+#include "xRACRotation.hpp"
+#include <stdio.h>
+
+#include "math.h"
+
+#include "RACRotation.hpp"
+#include "icd_200_constants.hpp"
+#include "Xvt.hpp"
+
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xRACRotation);
+
+using namespace std;
+using namespace gpstk;
+
+void xRACRotation :: setUp (void)
+{
+ GPSAlt = 26000000.0; // 26 million meters
+}
+
+// First test case. SV at GPS orbit altitude at 0 deg N, 0 deg E
+// Heading due N at 4 km/sec (Not realistic, but we want something
+// simple to start with;
+void xRACRotation :: firstTest (void)
+{
+ Triple testSVPos( GPSAlt, 0, 0);
+ Triple testSVVel( 0, 0, 4000 );
+ RACRotation rot( testSVPos, testSVVel );
+
+ // OK, now give it an "error vector" that 1 m in each component
+ testErrXYZ = Triple( 1.0, 1.0, 1.0);
+ testErrRAC = rot.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(1,1,-1),testErrRAC);
+
+ testErrXYZ = Triple( -1.0, -1.0, -1.0);
+ testErrRAC = rot.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(-1,-1,1),testErrRAC);
+
+ testErrXYZ = Triple( 0.0, 0.0, -1.0);
+ testErrRAC = rot.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(0,-1,0),testErrRAC);
+
+ testErrXYZ = Triple( 0.0, -1.0, 0.0);
+ testErrRAC = rot.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(0,0,1),testErrRAC);
+}
+
+// Second test case. SV at GPS orbit altitude at 0 deg N, 90 deg E
+// Heading due S at 4 km/sec (Not realistic, but we want something
+// simple to start with;
+void xRACRotation :: secondTest (void)
+{
+ Triple testSVPos2( 0, GPSAlt, 0);
+ Triple testSVVel2( 0, 0, -4000 );
+
+ RACRotation rot2( testSVPos2, testSVVel2 );
+
+ // OK, now give it an "error vector" that 1 m in each component
+ testErrXYZ = Triple( 1.0, 1.0, 1.0);
+ testErrRAC = rot2.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(1,-1,-1),testErrRAC);
+
+ testErrXYZ = Triple( -1.0, -1.0, -1.0);
+ testErrRAC = rot2.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(-1,1,1),testErrRAC);
+
+ testErrXYZ = Triple( 0.0, 0.0, -1.0);
+ testErrRAC = rot2.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(0,1,0),testErrRAC);
+
+ testErrXYZ = Triple( 0.0, -1.0, 0.0);
+ testErrRAC = rot2.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(-1,0,0),testErrRAC);
+}
+
+// Third test case. SV at GPS orbit altitude at 90 deg N, X deg E
+// Heading parallel to the Y axis at 4 km/sec
+// (Not realistic, but I want to see degenerate cases in all axes)
+void xRACRotation :: thirdTest (void)
+{
+
+ Triple testSVPos3( 0, 0, GPSAlt);
+ Triple testSVVel3( 0, 4000, 0 );
+
+ RACRotation rot3( testSVPos3, testSVVel3 );
+
+ // OK, now give it an "error vector" that 1 m in each component
+ testErrXYZ = Triple( 1.0, 1.0, 1.0);
+ testErrRAC = rot3.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(1,1,-1),testErrRAC);
+
+ testErrXYZ = Triple( -1.0, -1.0, -1.0);
+ testErrRAC = rot3.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(-1,-1,1),testErrRAC);
+
+ testErrXYZ = Triple( 0.0, 0.0, -1.0);
+ testErrRAC = rot3.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(-1,0,0),testErrRAC);
+
+ testErrXYZ = Triple( 0.0, -1.0, 0.0);
+ testErrRAC = rot3.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_EQUAL(Triple(0,-1,0),testErrRAC);
+}
+
+// Fourth test case. SV at GPS orbit altitude at 45 deg N, 45 deg E
+// Heading 4 km/sec
+// (Not realistic, but I want to see degenerate cases in all axes)
+void xRACRotation :: fourthTest (void)
+{
+ // A little Spherical to Cartesian slight of hand to make sure
+ // I know where the SV vectors are.
+ // Position
+ // Spherical: R = 26M m, phi = 45 deg N, theta = 45 deg E
+ // x = r sin phi cos theta
+ // y = r sin phi sin theta
+ // z = r cos phi
+ double thetaphi = 45.0 * ( PI / 180.0 );
+ double x4 = GPSAlt * sin(thetaphi) * cos(thetaphi);
+ double y4 = GPSAlt * sin(thetaphi) * sin(thetaphi);
+ double z4 = GPSAlt * cos(thetaphi);
+ Triple testSVPos4( x4, y4, z4 );
+
+ // Velocity
+ // Spherical: R = 4000 m/sec, phi = 45 deg E, theta = 135 deg E
+ // This rotates the radius vector 90 degrees about Z so the
+ // velocity should be perpendicular to the radius.
+ // Should make the end result roughly local E
+ // x = r sin phi cos theta
+ // y = r sin phi sin theta
+ // z = r cos phi
+ double theta = 135.0 * (PI/180.0);
+ double phi = 45.0 * (PI/180.0);
+ double xv4 = GPSAlt * sin(phi) * cos(theta);
+ double yv4 = GPSAlt * sin(phi) * sin(theta);
+ double zv4 = GPSAlt * cos(phi);
+ Triple testSVVel4( xv4, yv4, zv4 );
+
+ RACRotation rot4( testSVPos4, testSVVel4 );
+
+ // OK, now give it an "error vector" that 1 m in each component
+ testErrXYZ = Triple( 1.0, 1.0, 1.0);
+ testErrRAC = rot4.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.70711,testErrRAC[0],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-0.169102,testErrRAC[1],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-.239146,testErrRAC[2],1e-4);
+
+ testErrXYZ = Triple( -1.0, -1.0, -1.0);
+ testErrRAC = rot4.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-1.70711,testErrRAC[0],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.169102,testErrRAC[1],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(.239146,testErrRAC[2],1e-4);
+
+ testErrXYZ = Triple( 0.0, 0.0, -1.0);
+ testErrRAC = rot4.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-.70711,testErrRAC[0],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-.408248,testErrRAC[1],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-.57735,testErrRAC[2],1e-4);
+
+ testErrXYZ = Triple( 0.0, -1.0, 0.0);
+ testErrRAC = rot4.convertToRAC( testErrXYZ );
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-.5,testErrRAC[0],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-.288675,testErrRAC[1],1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(.816497,testErrRAC[2],1e-4);
+}
+
+ // Repeat first test case using the Xvt signatures of
+ // the RACRotation class
+void xRACRotation :: fifthTest (void)
+{
+
+ Xvt rotxvt;
+ rotxvt.x = ECEF( GPSAlt, 0, 0 );
+ rotxvt.v = Triple( 0, 0, 4000 );
+ rotxvt.dtime = 0.0;
+ rotxvt.ddtime = 0.0;
+
+ RACRotation rot5( rotxvt );
+
+ // OK, now set up a unit vector in the original radius and the
+ // orignial velocity and see that the results align properly.
+ Xvt testxvt1;
+ testxvt1.x = ECEF( 1.0, 0.0, 0.0 );
+ testxvt1.v = Triple( 0.0, 0.0, 1.0 );
+ testxvt1.dtime = 0.0;
+ testxvt1.ddtime = 0.0;
+ Xvt testxvtRAC1 = rot5.convertToRAC( testxvt1 );
+
+ CPPUNIT_ASSERT_EQUAL(ECEF(1,0,0),testxvtRAC1.x);
+ CPPUNIT_ASSERT_EQUAL(Triple(0,1,0),testxvtRAC1.v);
+ CPPUNIT_ASSERT_EQUAL(0.0,testxvtRAC1.dtime);
+ CPPUNIT_ASSERT_EQUAL(0.0,testxvtRAC1.ddtime);
+
+ // Reverse the two vectors and observe the results
+ testxvt1.x = ECEF( -1.0, 0.0, 0.0);
+ testxvt1.v = Triple( 0.0, 0.0,-1.0);
+ testxvt1.dtime = 0.0;
+ testxvt1.ddtime = 0.0;
+ testxvtRAC1 = rot5.convertToRAC( testxvt1 );
+
+ CPPUNIT_ASSERT_EQUAL(ECEF(-1,0,0),testxvtRAC1.x);
+ CPPUNIT_ASSERT_EQUAL(Triple(0,-1,0),testxvtRAC1.v);
+ CPPUNIT_ASSERT_EQUAL(0.0,testxvtRAC1.dtime);
+ CPPUNIT_ASSERT_EQUAL(0.0,testxvtRAC1.ddtime);
+
+ testErrXYZ = Triple( 0.0, 0.0, -1.0);
+ testErrRAC = rot5.convertToRAC( testErrXYZ );
+}
+
diff --git a/dev/tests/RACRotation/xRACRotation.hpp b/dev/tests/RACRotation/xRACRotation.hpp
new file mode 100644
index 0000000..2d1dd7c
--- /dev/null
+++ b/dev/tests/RACRotation/xRACRotation.hpp
@@ -0,0 +1,35 @@
+#ifndef XRACROTATION_HPP
+#define XRACROTATION_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "RACRotation.hpp"
+
+using namespace std;
+
+class xRACRotation: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xRACRotation);
+ CPPUNIT_TEST (firstTest);
+ CPPUNIT_TEST (secondTest);
+ CPPUNIT_TEST (thirdTest);
+ CPPUNIT_TEST (fourthTest);
+ CPPUNIT_TEST (fifthTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void firstTest (void);
+ void secondTest (void);
+ void thirdTest (void);
+ void fourthTest (void);
+ void fifthTest (void);
+
+ private:
+ double GPSAlt; // 26 million meters
+ gpstk::Triple testErrXYZ, testErrRAC;
+};
+
+#endif
diff --git a/dev/tests/RACRotation/xRACRotationM.cpp b/dev/tests/RACRotation/xRACRotationM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/RACRotation/xRACRotationM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/RinexEphemerisStore/Checks/DumpData0.chk b/dev/tests/RinexEphemerisStore/Checks/DumpData0.chk
new file mode 100644
index 0000000..7138230
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/DumpData0.chk
@@ -0,0 +1,4 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ Span is 01/31/2006 00:00:00 to 01/31/2006 22:00:00 with 41 entries.
diff --git a/dev/tests/RinexEphemerisStore/Checks/DumpData1.chk b/dev/tests/RinexEphemerisStore/Checks/DumpData1.chk
new file mode 100644
index 0000000..c59b097
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/DumpData1.chk
@@ -0,0 +1,49 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 15 entries.
+PRN 1 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 13 entries.
+PRN 15 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 13 entries.
+PRN 32 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexEphemerisStore/Checks/DumpData2.chk
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexEphemerisStore/Checks/DumpData2.chk
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexEphemerisStore/Checks/TestRinexDump.dmp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexEphemerisStore/Checks/TestRinexDump.dmp
diff --git a/dev/tests/RinexEphemerisStore/Checks/addEphemerisTest.chk b/dev/tests/RinexEphemerisStore/Checks/addEphemerisTest.chk
new file mode 100644
index 0000000..dfcb5e5
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/addEphemerisTest.chk
@@ -0,0 +1,5 @@
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/addToListTest.chk b/dev/tests/RinexEphemerisStore/Checks/addToListTest.chk
new file mode 100644
index 0000000..76f8863
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/addToListTest.chk
@@ -0,0 +1,1886 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x043 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+
+ CLOCK
+
+Bias T0: 3.41343693E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367689E+03 m**.5
+Motion correction: 4.34053794E-09 rad/sec
+Eccentricity: 6.32685330E-03
+Arg of perigee: -1.71098328E+00 rad
+Mean anomaly at epoch: 1.26681178E+00 rad
+Right ascension: -1.71526968E+00 rad -8.34177604E-09 rad/sec
+Inclination: 9.86356141E-01 rad 3.65729520E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.15968750E+02 m Cosine: 3.27531250E+02 m
+Inclination Sine: -1.17346644E-07 rad Cosine: -1.02445483E-07 rad
+In-track Sine: 3.52226198E-06 rad Cosine: 5.89340925E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 181806 Tue-2:02:30:06 0x044 0 off
+SF2 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+SF3 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+
+ CLOCK
+
+Bias T0: 3.41478735E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367755E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32700860E-03
+Arg of perigee: -1.71092165E+00 rad
+Mean anomaly at epoch: 2.31692691E+00 rad
+Right ascension: -1.71532878E+00 rad -8.11605235E-09 rad/sec
+Inclination: 9.86359782E-01 rad 3.52514684E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12937500E+02 m Cosine: 3.30625000E+02 m
+Inclination Sine: -6.70552254E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 3.17767262E-06 rad Cosine: 5.77233732E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 192216 Tue-2:05:23:36 0x259 0 off
+SF2 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+SF3 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+
+ CLOCK
+
+Bias T0: 3.41548584E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367874E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628636E-03
+Arg of perigee: -1.71094976E+00 rad
+Mean anomaly at epoch: -2.91838707E+00 rad
+Right ascension: -1.71538720E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362374E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x23F 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+
+ CLOCK
+
+Bias T0: 3.41618434E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367875E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628449E-03
+Arg of perigee: -1.71094881E+00 rad
+Mean anomaly at epoch: -2.91605436E+00 rad
+Right ascension: -1.71538734E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362375E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x15A 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+
+ CLOCK
+
+Bias T0: 3.41683626E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368112E+03 m**.5
+Motion correction: 4.14945856E-09 rad/sec
+Eccentricity: 6.32504828E-03
+Arg of perigee: -1.71103397E+00 rad
+Mean anomaly at epoch: -1.86812836E+00 rad
+Right ascension: -1.71544585E+00 rad -8.06569311E-09 rad/sec
+Inclination: 9.86365821E-01 rad 4.89306096E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06562500E+02 m Cosine: 3.13812500E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: 2.79396772E-08 rad
+In-track Sine: 4.02703881E-06 rad Cosine: 5.71832061E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Eph Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208446 Tue-2:09:54:06 0x073 0 off
+SF2 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+SF3 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.41916457E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367637E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467808E-03
+Arg of perigee: -1.71064445E+00 rad
+Mean anomaly at epoch: -8.18341978E-01 rad
+Right ascension: -1.71550465E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368594E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x15B 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+
+ CLOCK
+
+Bias T0: 3.41818668E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367640E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467505E-03
+Arg of perigee: -1.71064293E+00 rad
+Mean anomaly at epoch: -8.16009862E-01 rad
+Right ascension: -1.71550477E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368607E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x175 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+
+ CLOCK
+
+Bias T0: 3.42191197E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367680E+03 m**.5
+Motion correction: 4.14195824E-09 rad/sec
+Eccentricity: 6.32508728E-03
+Arg of perigee: -1.71080977E+00 rad
+Mean anomaly at epoch: 1.28450941E+00 rad
+Right ascension: -1.71562416E+00 rad -8.23998609E-09 rad/sec
+Inclination: 9.86376251E-01 rad 5.43236914E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.20250000E+02 m Cosine: 2.93375000E+02 m
+Inclination Sine: -1.11758709E-07 rad Cosine: -7.63684511E-08 rad
+In-track Sine: 5.04590571E-06 rad Cosine: 6.22309744E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x176 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+
+ CLOCK
+
+Bias T0: 3.42330895E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367810E+03 m**.5
+Motion correction: 3.95159317E-09 rad/sec
+Eccentricity: 6.32507459E-03
+Arg of perigee: -1.71069671E+00 rad
+Mean anomaly at epoch: 2.33457123E+00 rad
+Right ascension: -1.71568233E+00 rad -7.97497505E-09 rad/sec
+Inclination: 9.86381295E-01 rad 5.13592822E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.19093750E+02 m Cosine: 2.98875000E+02 m
+Inclination Sine: 0.00000000E+00 rad Cosine: 1.73225999E-07 rad
+In-track Sine: 4.85964119E-06 rad Cosine: 6.14114106E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x177 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+
+ CLOCK
+
+Bias T0: 3.42465937E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367751E+03 m**.5
+Motion correction: 3.94552149E-09 rad/sec
+Eccentricity: 6.32530451E-03
+Arg of perigee: -1.71075624E+00 rad
+Mean anomaly at epoch: -2.89838037E+00 rad
+Right ascension: -1.71573859E+00 rad -7.88925719E-09 rad/sec
+Inclination: 9.86384717E-01 rad 3.83230249E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.14312500E+02 m Cosine: 2.97218750E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -1.11758709E-08 rad
+In-track Sine: 5.05894423E-06 rad Cosine: 5.97164035E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x178 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+
+ CLOCK
+
+Bias T0: 3.42600979E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368125E+03 m**.5
+Motion correction: 3.94802159E-09 rad/sec
+Eccentricity: 6.32367632E-03
+Arg of perigee: -1.71094499E+00 rad
+Mean anomaly at epoch: -1.84801896E+00 rad
+Right ascension: -1.71579510E+00 rad -7.97426073E-09 rad/sec
+Inclination: 9.86386906E-01 rad 2.96440919E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.01968750E+02 m Cosine: 2.88843750E+02 m
+Inclination Sine: 6.33299351E-08 rad Cosine: 1.09896064E-07 rad
+In-track Sine: 5.53019345E-06 rad Cosine: 5.29736280E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Eph Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 250056 Tue-2:21:27:36 0x08D 0 off
+SF2 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+SF3 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+
+ CLOCK
+
+Bias T0: 3.42894346E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309169E-03
+Arg of perigee: -1.71055998E+00 rad
+Mean anomaly at epoch: -8.00563293E-01 rad
+Right ascension: -1.71585327E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388127E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x173 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.42740677E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309355E-03
+Arg of perigee: -1.71056065E+00 rad
+Mean anomaly at epoch: -7.98228821E-01 rad
+Right ascension: -1.71585343E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388094E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Eph Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x08E 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+
+ CLOCK
+
+Bias T0: 3.43038701E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367983E+03 m**.5
+Motion correction: 4.16553065E-09 rad/sec
+Eccentricity: 6.32479729E-03
+Arg of perigee: -1.71061566E+00 rad
+Mean anomaly at epoch: 2.49668417E-01 rad
+Right ascension: -1.71591282E+00 rad -8.23534304E-09 rad/sec
+Inclination: 9.86390525E-01 rad 3.76444252E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06718750E+02 m Cosine: 2.61562500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 6.87316060E-06 rad Cosine: 5.65685332E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x2AC 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+
+ CLOCK
+
+Bias T0: 5.58263157E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370760E+03 m**.5
+Motion correction: 4.95913514E-09 rad/sec
+Eccentricity: 9.35129554E-03
+Arg of perigee: 2.54594306E+00 rad
+Mean anomaly at epoch: -9.06095983E-02 rad
+Right ascension: 2.51239340E+00 rad -8.35570519E-09 rad/sec
+Inclination: 9.58205830E-01 rad -5.09306929E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.05000000E+01 m Cosine: 2.32312500E+02 m
+Inclination Sine: -8.19563866E-08 rad Cosine: 5.21540642E-08 rad
+In-track Sine: 7.47665763E-06 rad Cosine: -2.24076211E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x2AD 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+
+ CLOCK
+
+Bias T0: 5.58305997E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371153E+03 m**.5
+Motion correction: 4.84091593E-09 rad/sec
+Eccentricity: 9.35316086E-03
+Arg of perigee: 2.54603428E+00 rad
+Mean anomaly at epoch: 9.59460895E-01 rad
+Right ascension: 2.51233346E+00 rad -8.27070165E-09 rad/sec
+Inclination: 9.58202504E-01 rad -5.20021661E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.51562500E+01 m Cosine: 2.45906250E+02 m
+Inclination Sine: -3.53902578E-08 rad Cosine: 1.60187483E-07 rad
+In-track Sine: 6.79865479E-06 rad Cosine: -2.42330134E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 193626 Tue-2:05:47:06 0x2C4 0 off
+SF2 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+SF3 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58349304E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331150E-03
+Arg of perigee: 2.54596333E+00 rad
+Mean anomaly at epoch: 2.00735802E+00 rad
+Right ascension: 2.51227500E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198768E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x2AE 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+
+ CLOCK
+
+Bias T0: 5.58348838E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331290E-03
+Arg of perigee: 2.54596378E+00 rad
+Mean anomaly at epoch: 2.00969128E+00 rad
+Right ascension: 2.51227486E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198745E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1C5 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58392145E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370812E+03 m**.5
+Motion correction: 4.85734519E-09 rad/sec
+Eccentricity: 9.35426482E-03
+Arg of perigee: 2.54589149E+00 rad
+Mean anomaly at epoch: 3.05759168E+00 rad
+Right ascension: 2.51221588E+00 rad -8.14212487E-09 rad/sec
+Inclination: 9.58194788E-01 rad -5.32522182E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.34375000E+01 m Cosine: 2.56125000E+02 m
+Inclination Sine: 1.04308128E-07 rad Cosine: -2.23517418E-08 rad
+In-track Sine: 6.29760325E-06 rad Cosine: -2.15694308E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1C6 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58434986E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370631E+03 m**.5
+Motion correction: 4.91627621E-09 rad/sec
+Eccentricity: 9.35517496E-03
+Arg of perigee: 2.54592936E+00 rad
+Mean anomaly at epoch: -2.17313468E+00 rad
+Right ascension: 2.51215687E+00 rad -8.24570061E-09 rad/sec
+Inclination: 9.58190482E-01 rad -5.29307762E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.03125000E+01 m Cosine: 2.49781250E+02 m
+Inclination Sine: 8.94069672E-08 rad Cosine: -1.50874257E-07 rad
+In-track Sine: 6.75022602E-06 rad Cosine: -1.99861825E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x1C8 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+
+ CLOCK
+
+Bias T0: 5.58520667E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370721E+03 m**.5
+Motion correction: 4.94806325E-09 rad/sec
+Eccentricity: 9.35553596E-03
+Arg of perigee: 2.54590311E+00 rad
+Mean anomaly at epoch: -7.27814121E-02 rad
+Right ascension: 2.51203755E+00 rad -8.40392149E-09 rad/sec
+Inclination: 9.58182252E-01 rad -6.62527597E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.21875000E+01 m Cosine: 2.48468750E+02 m
+Inclination Sine: -1.37835741E-07 rad Cosine: 6.51925802E-08 rad
+In-track Sine: 6.81355596E-06 rad Cosine: -2.41957605E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0C9 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+
+ CLOCK
+
+Bias T0: 5.58563508E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371126E+03 m**.5
+Motion correction: 4.96199240E-09 rad/sec
+Eccentricity: 9.35740734E-03
+Arg of perigee: 2.54600791E+00 rad
+Mean anomaly at epoch: 9.77276156E-01 rad
+Right ascension: 2.51197711E+00 rad -8.37927760E-09 rad/sec
+Inclination: 9.58177516E-01 rad -6.83242746E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.54375000E+01 m Cosine: 2.62937500E+02 m
+Inclination Sine: -5.40167093E-08 rad Cosine: 1.19209290E-07 rad
+In-track Sine: 5.70528209E-06 rad Cosine: -2.64123082E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x3C4 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58606349E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371147E+03 m**.5
+Motion correction: 5.09914097E-09 rad/sec
+Eccentricity: 9.35770059E-03
+Arg of perigee: 2.54601763E+00 rad
+Mean anomaly at epoch: 2.02742773E+00 rad
+Right ascension: 2.51191656E+00 rad -8.39249244E-09 rad/sec
+Inclination: 9.58172632E-01 rad -6.30740559E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.35625000E+01 m Cosine: 2.67000000E+02 m
+Inclination Sine: 2.42143869E-08 rad Cosine: 1.99303031E-07 rad
+In-track Sine: 5.63822687E-06 rad Cosine: -2.02842057E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x2C5 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58649190E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370851E+03 m**.5
+Motion correction: 5.13557106E-09 rad/sec
+Eccentricity: 9.35899641E-03
+Arg of perigee: 2.54592152E+00 rad
+Mean anomaly at epoch: 3.07768774E+00 rad
+Right ascension: 2.51185522E+00 rad -8.28748806E-09 rad/sec
+Inclination: 9.58169255E-01 rad -4.05016871E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.60000000E+01 m Cosine: 2.75468750E+02 m
+Inclination Sine: 1.63912773E-07 rad Cosine: -7.07805157E-08 rad
+In-track Sine: 5.40725887E-06 rad Cosine: -1.72853470E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x2C6 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58691565E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370654E+03 m**.5
+Motion correction: 5.16735810E-09 rad/sec
+Eccentricity: 9.35994752E-03
+Arg of perigee: 2.54597027E+00 rad
+Mean anomaly at epoch: -2.15538154E+00 rad
+Right ascension: 2.51179534E+00 rad -8.36856287E-09 rad/sec
+Inclination: 9.58166043E-01 rad -3.85730353E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.37500000E+01 m Cosine: 2.68281250E+02 m
+Inclination Sine: 8.56816769E-08 rad Cosine: -1.97440386E-07 rad
+In-track Sine: 5.96605241E-06 rad Cosine: -1.59814954E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x2C7 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58734406E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370608E+03 m**.5
+Motion correction: 5.14592863E-09 rad/sec
+Eccentricity: 9.36006801E-03
+Arg of perigee: 2.54599571E+00 rad
+Mean anomaly at epoch: -1.10524073E+00 rad
+Right ascension: 2.51173364E+00 rad -8.51249744E-09 rad/sec
+Inclination: 9.58163270E-01 rad -2.69296932E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.57187500E+01 m Cosine: 2.67156250E+02 m
+Inclination Sine: -8.00937414E-08 rad Cosine: -5.96046448E-08 rad
+In-track Sine: 5.89340925E-06 rad Cosine: -2.13272870E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x1B4 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.11610459E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360316E+03 m**.5
+Motion correction: 4.39589739E-09 rad/sec
+Eccentricity: 8.71090021E-03
+Arg of perigee: 1.29523927E+00 rad
+Mean anomaly at epoch: -2.23653823E+00 rad
+Right ascension: 3.07566662E-01 rad -7.75710883E-09 rad/sec
+Inclination: 9.44623504E-01 rad 1.08933109E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -6.76875000E+01 m Cosine: 1.15000000E+02 m
+Inclination Sine: -9.31322575E-08 rad Cosine: 1.21071935E-07 rad
+In-track Sine: 1.32359564E-05 rad Cosine: -3.53716314E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x1B5 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+
+ CLOCK
+
+Bias T0: 2.11857259E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360674E+03 m**.5
+Motion correction: 4.54197491E-09 rad/sec
+Eccentricity: 8.71113362E-03
+Arg of perigee: 1.29501397E+00 rad
+Mean anomaly at epoch: -1.18609024E+00 rad
+Right ascension: 3.07510597E-01 rad -8.09319426E-09 rad/sec
+Inclination: 9.44622470E-01 rad -5.00020828E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.28750000E+01 m Cosine: 1.30031250E+02 m
+Inclination Sine: 2.40281224E-07 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 1.24983490E-05 rad Cosine: -3.84636223E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x1B6 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+
+ CLOCK
+
+Bias T0: 2.12104060E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360359E+03 m**.5
+Motion correction: 4.66233706E-09 rad/sec
+Eccentricity: 8.70950485E-03
+Arg of perigee: 1.29508260E+00 rad
+Mean anomaly at epoch: -1.35935973E-01 rad
+Right ascension: 3.07451598E-01 rad -8.18676958E-09 rad/sec
+Inclination: 9.44622210E-01 rad 1.42863094E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.65312500E+01 m Cosine: 1.33937500E+02 m
+Inclination Sine: 1.09896064E-07 rad Cosine: -9.68575478E-08 rad
+In-track Sine: 1.23213977E-05 rad Cosine: -4.46103513E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Eph Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1B7 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+
+ CLOCK
+
+Bias T0: 2.12350860E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360806E+03 m**.5
+Motion correction: 4.60804909E-09 rad/sec
+Eccentricity: 8.71139602E-03
+Arg of perigee: 1.29526135E+00 rad
+Mean anomaly at epoch: 9.14109252E-01 rad
+Right ascension: 3.07393065E-01 rad -8.17498338E-09 rad/sec
+Inclination: 9.44621932E-01 rad -6.39312344E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00750000E+02 m Cosine: 1.20312500E+02 m
+Inclination Sine: -1.11758709E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 1.31167471E-05 rad Cosine: -5.17070293E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1B8 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+
+ CLOCK
+
+Bias T0: 2.12597661E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360479E+03 m**.5
+Motion correction: 4.61126351E-09 rad/sec
+Eccentricity: 8.71198589E-03
+Arg of perigee: 1.29505117E+00 rad
+Mean anomaly at epoch: 1.96454133E+00 rad
+Right ascension: 3.07334399E-01 rad -7.96354600E-09 rad/sec
+Inclination: 9.44622565E-01 rad -4.64305054E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00281250E+02 m Cosine: 1.02875000E+02 m
+Inclination Sine: -2.12341547E-07 rad Cosine: 5.58793545E-09 rad
+In-track Sine: 1.37276947E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Eph Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 219786 Tue-2:13:03:06 0x0CE 0 off
+SF2 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+SF3 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+
+ CLOCK
+
+Bias T0: 2.13137828E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319743E-03
+Arg of perigee: 1.29534120E+00 rad
+Mean anomaly at epoch: -2.22082140E+00 rad
+Right ascension: 3.07220032E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623207E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x2B4 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.13091262E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319557E-03
+Arg of perigee: 1.29534135E+00 rad
+Mean anomaly at epoch: -2.21848770E+00 rad
+Right ascension: 3.07219892E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623209E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Eph Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0CF 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+
+ CLOCK
+
+Bias T0: 2.13384628E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360553E+03 m**.5
+Motion correction: 4.71126767E-09 rad/sec
+Eccentricity: 8.71346553E-03
+Arg of perigee: 1.29510646E+00 rad
+Mean anomaly at epoch: -1.17036120E+00 rad
+Right ascension: 3.07162875E-01 rad -8.14748223E-09 rad/sec
+Inclination: 9.44622831E-01 rad 5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.65312500E+01 m Cosine: 1.37875000E+02 m
+Inclination Sine: 2.23517418E-07 rad Cosine: -1.86264515E-08 rad
+In-track Sine: 1.22822821E-05 rad Cosine: -3.85381281E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x0D0 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+
+ CLOCK
+
+Bias T0: 2.13631429E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360266E+03 m**.5
+Motion correction: 4.72555398E-09 rad/sec
+Eccentricity: 8.71195330E-03
+Arg of perigee: 1.29516376E+00 rad
+Mean anomaly at epoch: -1.17860253E-01 rad
+Right ascension: 3.07103413E-01 rad -8.23248577E-09 rad/sec
+Inclination: 9.44622997E-01 rad 6.57170231E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.90312500E+01 m Cosine: 1.42281250E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: -1.04308128E-07 rad
+In-track Sine: 1.21705234E-05 rad Cosine: -4.79258597E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237666 Tue-2:18:01:06 0x0D1 0 off
+SF2 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+SF3 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+
+ CLOCK
+
+Bias T0: 2.13873573E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360660E+03 m**.5
+Motion correction: 4.58126226E-09 rad/sec
+Eccentricity: 8.71358160E-03
+Arg of perigee: 1.29532649E+00 rad
+Mean anomaly at epoch: 9.32201625E-01 rad
+Right ascension: 3.07044718E-01 rad -8.23534304E-09 rad/sec
+Inclination: 9.44622947E-01 rad -5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02281250E+02 m Cosine: 1.30906250E+02 m
+Inclination Sine: -5.77419996E-08 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 1.24275684E-05 rad Cosine: -5.36069274E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x0D2 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+
+ CLOCK
+
+Bias T0: 2.14120373E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360381E+03 m**.5
+Motion correction: 4.50054461E-09 rad/sec
+Eccentricity: 8.71415599E-03
+Arg of perigee: 1.29514812E+00 rad
+Mean anomaly at epoch: 1.98260220E+00 rad
+Right ascension: 3.06985642E-01 rad -8.02461997E-09 rad/sec
+Inclination: 9.44623629E-01 rad -3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02875000E+02 m Cosine: 1.15656250E+02 m
+Inclination Sine: -2.29105353E-07 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.31297857E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x0D3 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+
+ CLOCK
+
+Bias T0: 2.14362517E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360734E+03 m**.5
+Motion correction: 4.35768151E-09 rad/sec
+Eccentricity: 8.71229277E-03
+Arg of perigee: 1.29522530E+00 rad
+Mean anomaly at epoch: 3.03274719E+00 rad
+Right ascension: 3.06929331E-01 rad -7.84746974E-09 rad/sec
+Inclination: 9.44623928E-01 rad -8.82179603E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.73125000E+01 m Cosine: 1.10812500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.33030117E-05 rad Cosine: -4.45544720E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/clearTest.chk b/dev/tests/RinexEphemerisStore/Checks/clearTest.chk
new file mode 100644
index 0000000..e1dcfc7
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/clearTest.chk
@@ -0,0 +1,5 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/editTest.chk b/dev/tests/RinexEphemerisStore/Checks/editTest.chk
new file mode 100644
index 0000000..87b4198
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/editTest.chk
@@ -0,0 +1,33 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 9 entries.
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 15 has 8 entries.
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/findEph1.chk b/dev/tests/RinexEphemerisStore/Checks/findEph1.chk
new file mode 100644
index 0000000..e5b77d1
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/findEph1.chk
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/findEph15.chk b/dev/tests/RinexEphemerisStore/Checks/findEph15.chk
new file mode 100644
index 0000000..8ca404a
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/findEph15.chk
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/findEph32.chk b/dev/tests/RinexEphemerisStore/Checks/findEph32.chk
new file mode 100644
index 0000000..071d04c
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/findEph32.chk
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/findNearTest.chk b/dev/tests/RinexEphemerisStore/Checks/findNearTest.chk
new file mode 100644
index 0000000..c2311e3
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/findNearTest.chk
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/findUserTest.chk b/dev/tests/RinexEphemerisStore/Checks/findUserTest.chk
new file mode 100644
index 0000000..ff4a2dd
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/findUserTest.chk
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/getPrnXvt1.chk b/dev/tests/RinexEphemerisStore/Checks/getPrnXvt1.chk
new file mode 100644
index 0000000..e4c3bff
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/getPrnXvt1.chk
@@ -0,0 +1 @@
+x:(1.43293e+07, -2.70658e+06, -2.19986e+07), v:(354.696, 2812.26, -117.977), clk bias:3.42024e-05, clk drift:1.93268e-12
diff --git a/dev/tests/RinexEphemerisStore/Checks/getPrnXvt15.chk b/dev/tests/RinexEphemerisStore/Checks/getPrnXvt15.chk
new file mode 100644
index 0000000..ab2097d
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/getPrnXvt15.chk
@@ -0,0 +1 @@
+x:(1.46708e+07, 7.54272e+06, 2.07205e+07), v:(-2147.79, 1575.58, 902.848), clk bias:0.000558493, clk drift:5.91172e-12
diff --git a/dev/tests/RinexEphemerisStore/Checks/getPrnXvt32.chk b/dev/tests/RinexEphemerisStore/Checks/getPrnXvt32.chk
new file mode 100644
index 0000000..0b3c565
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/getPrnXvt32.chk
@@ -0,0 +1 @@
+x:(8.40859e+06, 1.71989e+07, -1.87307e+07), v:(-2248.12, -606.201, -1577.94), clk bias:2.12763e-05, clk drift:3.41061e-12
diff --git a/dev/tests/RinexEphemerisStore/Checks/wiperTest.chk b/dev/tests/RinexEphemerisStore/Checks/wiperTest.chk
new file mode 100644
index 0000000..31aca91
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/wiperTest.chk
@@ -0,0 +1,31 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 8 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 7 entries.
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Checks/wiperTest2.chk b/dev/tests/RinexEphemerisStore/Checks/wiperTest2.chk
new file mode 100644
index 0000000..f90c2f7
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Checks/wiperTest2.chk
@@ -0,0 +1,8 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for prn 1 has 0 entries.
+ BCE map for prn 15 has 0 entries.
+ BCE map for prn 32 has 0 entries.
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/DumpData.txt b/dev/tests/RinexEphemerisStore/DumpData.txt
new file mode 100644
index 0000000..c59b097
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/DumpData.txt
@@ -0,0 +1,49 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 15 entries.
+PRN 1 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 13 entries.
+PRN 15 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 13 entries.
+PRN 32 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Jamfile b/dev/tests/RinexEphemerisStore/Jamfile
new file mode 100644
index 0000000..66bcf31
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Jamfile
@@ -0,0 +1,5 @@
+SubDir TOP RinexEphemerisStore ;
+
+
+
+TestMain RinexEphemerisStore/xRinexEphemerisStore.tst : RinexEphemerisStore/xRinexEphemerisStoreM.cpp RinexEphemerisStore/xRinexEphemerisStore.cpp RinexEphemerisStore/RinexEphemerisStore.cpp ;
diff --git a/dev/tests/RinexEphemerisStore/Logs/DumpData0.txt b/dev/tests/RinexEphemerisStore/Logs/DumpData0.txt
new file mode 100644
index 0000000..7138230
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/DumpData0.txt
@@ -0,0 +1,4 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ Span is 01/31/2006 00:00:00 to 01/31/2006 22:00:00 with 41 entries.
diff --git a/dev/tests/RinexEphemerisStore/Logs/DumpData1.txt b/dev/tests/RinexEphemerisStore/Logs/DumpData1.txt
new file mode 100644
index 0000000..c59b097
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/DumpData1.txt
@@ -0,0 +1,49 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 15 entries.
+PRN 1 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 13 entries.
+PRN 15 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 13 entries.
+PRN 32 TOE 01/31/2006 02:00:00 TOC 180000.000 HOW 172806.000 KEY 01/31/2006 00:00:00
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexEphemerisStore/Logs/DumpData2.txt
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexEphemerisStore/Logs/DumpData2.txt
diff --git a/dev/tests/RinexEphemerisStore/Logs/TestRinex06.031NEW b/dev/tests/RinexEphemerisStore/Logs/TestRinex06.031NEW
new file mode 100644
index 0000000..bac0a39
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/TestRinex06.031NEW
@@ -0,0 +1,347 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+fic2rin 07/10/2006 09:16:03 PGM / RUN BY / DATE
+ END OF HEADER
+ 1 06 1 31 2 0 0.0 .341343693435D-04 .193267624127D-11 .000000000000D+00
+ .670000000000D+02 .115968750000D+03 .434053794369D-08 .126681177927D+01
+ .589340925217D-05 .632685329765D-02 .352226197720D-05 .515367689323D+04
+ .180000000000D+06 -.102445483208D-06 -.171526967635D+01 -.117346644402D-06
+ .986356140504D+00 .327531250000D+03 -.171098328249D+01 -.834177603988D-08
+ .365729519817D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .670000000000D+02
+ .172806000000D+06 .400000000000D+01
+15 06 1 31 2 0 0.0 .558263156563D-03 .591171556152D-11 .000000000000D+00
+ .172000000000D+03 -.405000000000D+02 .495913513931D-08 -.906095982535D-01
+ -.224076211452D-05 .935129553545D-02 .747665762901D-05 .515370759583D+04
+ .180000000000D+06 .521540641785D-07 .251239340464D+01 -.819563865662D-07
+ .958205829645D+00 .232312500000D+03 .254594306232D+01 -.835570519152D-08
+ -.509306928964D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .684000000000D+03
+ .172806000000D+06 .400000000000D+01
+32 06 1 31 2 0 0.0 .211610458791D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.676875000000D+02 .439589739249D-08 -.223653823215D+01
+ -.353716313839D-05 .871090020519D-02 .132359564304D-04 .515360315704D+04
+ .180000000000D+06 .121071934700D-06 .307566661900D+00 -.931322574615D-07
+ .944623504252D+00 .115000000000D+03 .129523926775D+01 -.775710882900D-08
+ .108933108930D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .436000000000D+03
+ .172806000000D+06 .400000000000D+01
+ 0 06 1 31 2 0 0.0 .134724657983D-03 .115960574476D-10 .000000000000D+00
+ .890000000000D+02 -.476250000000D+02 .517342977983D-08 -.123175874797D+01
+ -.269524753094D-05 .745224312413D-02 .590272247791D-05 .515377070999D+04
+ .180000000000D+06 .614672899246D-07 .245581236493D+01 -.113621354103D-06
+ .951089754306D+00 .254656250000D+03 .135575912515D+00 -.841499337539D-08
+ -.359300680601D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.605359673500D-08 .890000000000D+02
+ .172806000000D+06 .400000000000D+01
+33 06 1 31 2 0 0.0 .492035411298D-03 .989075488178D-11 .000000000000D+00
+ .136000000000D+03 -.743437500000D+02 .465197948790D-08 -.152972249815D+01
+ -.396370887756D-05 .679594022222D-02 .129826366901D-04 .515367445946D+04
+ .180000000000D+06 .208616256714D-06 .261910760240D+00 .409781932831D-07
+ .937992873408D+00 .116843750000D+03 .104088405222D+01 -.799854745732D-08
+ .142863093678D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.419095158577D-08 .392000000000D+03
+ .172806000000D+06 .400000000000D+01
+ 1 06 1 31 4 0 0.0 .341478735209D-04 .193267624127D-11 .000000000000D+00
+ .680000000000D+02 .112937500000D+03 .425303429881D-08 .231692690748D+01
+ .577233731747D-05 .632700859569D-02 .317767262459D-05 .515367754555D+04
+ .187200000000D+06 .128522515297D-06 -.171532877970D+01 -.670552253723D-07
+ .986359781707D+00 .330625000000D+03 -.171092164536D+01 -.811605235187D-08
+ .352514683652D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .680000000000D+02
+ .180006000000D+06 .400000000000D+01
+15 06 1 31 4 0 0.0 .558305997401D-03 .591171556152D-11 .000000000000D+00
+ .173000000000D+03 -.451562500000D+02 .484091592929D-08 .959460894860D+00
+ -.242330133915D-05 .935316085815D-02 .679865479469D-05 .515371152878D+04
+ .187200000000D+06 .160187482834D-06 .251233346304D+01 -.353902578354D-07
+ .958202504432D+00 .245906250000D+03 .254603427966D+01 -.827070165078D-08
+ -.520021660989D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .685000000000D+03
+ .180006000000D+06 .400000000000D+01
+32 06 1 31 4 0 0.0 .211857259274D-04 .341060513165D-11 .000000000000D+00
+ .181000000000D+03 -.728750000000D+02 .454197490577D-08 -.118609023742D+01
+ -.384636223316D-05 .871113361791D-02 .124983489513D-04 .515360673523D+04
+ .187200000000D+06 -.745058059692D-08 .307510597028D+00 .240281224251D-06
+ .944622469969D+00 .130031250000D+03 .129501396667D+01 -.809319425688D-08
+ -.500020827875D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .437000000000D+03
+ .180006000000D+06 .400000000000D+01
+ 1 06 1 31 6 0 0.0 .341618433595D-04 .193267624127D-11 .000000000000D+00
+ .630000000000D+02 .112750000000D+03 .425553440295D-08 -.291605435972D+01
+ .586546957493D-05 .632628449239D-02 .357814133167D-05 .515367875481D+04
+ .194400000000D+06 .154599547386D-06 -.171538734177D+01 .484287738800D-07
+ .986362375461D+00 .323406250000D+03 -.171094881175D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .575000000000D+03
+ .187206000000D+06 .400000000000D+01
+15 06 1 31 6 0 0.0 .558348838240D-03 .591171556152D-11 .000000000000D+00
+ .174000000000D+03 -.489062500000D+02 .484555897984D-08 .200969128199D+01
+ -.245310366154D-05 .935331289656D-02 .662170350552D-05 .515371031952D+04
+ .194400000000D+06 .633299350739D-07 .251227486146D+01 .763684511185D-07
+ .958198744732D+00 .249906250000D+03 .254596378017D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .686000000000D+03
+ .187206000000D+06 .400000000000D+01
+32 06 1 31 6 0 0.0 .212104059756D-04 .341060513165D-11 .000000000000D+00
+ .182000000000D+03 -.865312500000D+02 .466233706220D-08 -.135935973227D+00
+ -.446103513241D-05 .870950485114D-02 .123213976622D-04 .515360359001D+04
+ .194400000000D+06 -.968575477600D-07 .307451597542D+00 .109896063805D-06
+ .944622209570D+00 .133937500000D+03 .129508259801D+01 -.818676958324D-08
+ .142863093678D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .438000000000D+03
+ .187206000000D+06 .400000000000D+01
+ 1 06 1 31 5 59 44.0 .341548584402D-04 .181898940355D-11 .000000000000D+00
+ .890000000000D+02 .112750000000D+03 .425553440295D-08 -.291838707330D+01
+ .586546957493D-05 .632628635503D-02 .357814133167D-05 .515367874336D+04
+ .194384000000D+06 .154599547386D-06 -.171538720133D+01 .484287738800D-07
+ .986362373998D+00 .323406250000D+03 -.171094975533D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .601000000000D+03
+ .192216000000D+06 .400000000000D+01
+15 06 1 31 5 59 44.0 .558349303901D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.489062500000D+02 .484555897984D-08 .200735802421D+01
+ -.245310366154D-05 .935331149958D-02 .662170350552D-05 .515371031570D+04
+ .194384000000D+06 .633299350739D-07 .251227499751D+01 .763684511185D-07
+ .958198768139D+00 .249906250000D+03 .254596332667D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .708000000000D+03
+ .193626000000D+06 .400000000000D+01
+ 1 06 1 31 7 59 44.0 .341683626175D-04 .181898940355D-11 .000000000000D+00
+ .900000000000D+02 .106562500000D+03 .414945855589D-08 -.186812836407D+01
+ .571832060814D-05 .632504827809D-02 .402703881264D-05 .515368111992D+04
+ .201584000000D+06 .279396772385D-07 -.171544585411D+01 .987201929092D-07
+ .986365820633D+00 .313812500000D+03 -.171103396675D+01 -.806569311135D-08
+ .489306095849D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .346000000000D+03
+ .194406000000D+06 .400000000000D+01
+15 06 1 31 7 59 44.0 .558392144740D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.434375000000D+02 .485734518507D-08 .305759167950D+01
+ -.215694308281D-05 .935426482465D-02 .629760324955D-05 .515370812416D+04
+ .201584000000D+06 -.223517417908D-07 .251221588100D+01 .104308128357D-06
+ .958194787539D+00 .256125000000D+03 .254589149446D+01 -.814212486647D-08
+ -.532522181686D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .453000000000D+03
+ .194406000000D+06 .400000000000D+01
+32 06 1 31 8 0 0.0 .212350860238D-04 .341060513165D-11 .000000000000D+00
+ .183000000000D+03 -.100750000000D+03 .460804908660D-08 .914109252365D+00
+ -.517070293427D-05 .871139601804D-02 .131167471409D-04 .515360806274D+04
+ .201600000000D+06 -.134110450745D-06 .307393064726D+00 -.111758708954D-07
+ .944621931615D+00 .120312500000D+03 .129526134611D+01 -.817498337801D-08
+ -.639312344211D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .439000000000D+03
+ .194406000000D+06 .400000000000D+01
+ 1 06 1 31 10 0 0.0 .341818667948D-04 .181898940355D-11 .000000000000D+00
+ .910000000000D+02 .106437500000D+03 .425303429881D-08 -.816009861720D+00
+ .566430389881D-05 .632467505056D-02 .520423054695D-05 .515367639923D+04
+ .208800000000D+06 -.135973095894D-06 -.171550476728D+01 .335276126862D-07
+ .986368607492D+00 .295875000000D+03 -.171064293460D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .347000000000D+03
+ .201606000000D+06 .400000000000D+01
+15 06 1 31 10 0 0.0 .558434985578D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.403125000000D+02 .491627621121D-08 -.217313467942D+01
+ -.199861824512D-05 .935517495964D-02 .675022602081D-05 .515370630646D+04
+ .208800000000D+06 -.150874257088D-06 .251215686981D+01 .894069671631D-07
+ .958190482171D+00 .249781250000D+03 .254592935625D+01 -.824570060939D-08
+ -.529307762079D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .454000000000D+03
+ .201606000000D+06 .400000000000D+01
+32 06 1 31 10 0 0.0 .212597660720D-04 .341060513165D-11 .000000000000D+00
+ .184000000000D+03 -.100281250000D+03 .461126350621D-08 .196454132616D+01
+ -.529922544956D-05 .871198589448D-02 .137276947498D-04 .515360478783D+04
+ .208800000000D+06 .558793544769D-08 .307334398786D+00 -.212341547012D-06
+ .944622565059D+00 .102875000000D+03 .129505117306D+01 -.796354599937D-08
+ -.464305054455D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .440000000000D+03
+ .201606000000D+06 .400000000000D+01
+ 1 06 1 31 9 59 44.0 .341916456819D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .106437500000D+03 .425303429881D-08 -.818341978428D+00
+ .566430389881D-05 .632467807736D-02 .520423054695D-05 .515367637444D+04
+ .208784000000D+06 -.135973095894D-06 -.171550464586D+01 .335276126862D-07
+ .986368594325D+00 .295875000000D+03 -.171064445164D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .115000000000D+03
+ .208446000000D+06 .400000000000D+01
+ 1 06 1 31 11 59 44.0 .342056155205D-04 .193267624127D-11 .000000000000D+00
+ .116000000000D+03 .113406250000D+03 .415874465698D-08 .231892822330D+00
+ .578165054321D-05 .632588984445D-02 .529363751411D-05 .515367877960D+04
+ .215984000000D+06 -.745058059692D-07 -.171556435925D+01 -.279396772385D-07
+ .986372320378D+00 .290062500000D+03 -.171070282354D+01 -.827605901679D-08
+ .533236497155D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .372000000000D+03
+ .208806000000D+06 .400000000000D+01
+15 06 1 31 12 0 0.0 .558477826416D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.394062500000D+02 .489556106263D-08 -.112295671303D+01
+ -.219792127609D-05 .935519312043D-02 .676140189171D-05 .515370655060D+04
+ .216000000000D+06 -.134110450745D-06 .251209679215D+01 -.465661287308D-07
+ .958186633234D+00 .249156250000D+03 .254591534295D+01 -.832106089130D-08
+ -.494663461862D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .455000000000D+03
+ .208806000000D+06 .400000000000D+01
+32 06 1 31 12 0 0.0 .212844461203D-04 .341060513165D-11 .000000000000D+00
+ .185000000000D+03 -.842187500000D+02 .455768984608D-08 .301468049889D+01
+ -.437162816525D-05 .871008832473D-02 .138413161039D-04 .515360840988D+04
+ .216000000000D+06 .115483999252D-06 .307277460551D+00 -.130385160446D-06
+ .944622686481D+00 .985625000000D+02 .129513504508D+01 -.791318675885D-08
+ .357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .441000000000D+03
+ .208806000000D+06 .400000000000D+01
+ 1 06 1 31 14 0 0.0 .342191196978D-04 .193267624127D-11 .000000000000D+00
+ .117000000000D+03 .120250000000D+03 .414195824347D-08 .128450940586D+01
+ .622309744358D-05 .632508727722D-02 .504590570927D-05 .515367679787D+04
+ .223200000000D+06 -.763684511185D-07 -.171562415603D+01 -.111758708954D-06
+ .986376251239D+00 .293375000000D+03 -.171080977163D+01 -.823998608564D-08
+ .543236913712D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .373000000000D+03
+ .216006000000D+06 .400000000000D+01
+15 06 1 31 14 0 0.0 .558520667255D-03 .591171556152D-11 .000000000000D+00
+ .200000000000D+03 -.421875000000D+02 .494806324955D-08 -.727814120722D-01
+ -.241957604885D-05 .935553596355D-02 .681355595589D-05 .515370721245D+04
+ .223200000000D+06 .651925802231D-07 .251203754543D+01 -.137835741043D-06
+ .958182251794D+00 .248468750000D+03 .254590310711D+01 -.840392148563D-08
+ -.662527596934D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .456000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 14 0 0.0 .213091261685D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.714375000000D+02 .470841040991D-08 -.221848770144D+01
+ -.376813113689D-05 .871319556609D-02 .128187239170D-04 .515360179138D+04
+ .223200000000D+06 .128522515297D-06 .307219891799D+00 .167638063431D-07
+ .944623208743D+00 .122156250000D+03 .129534134872D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .692000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 13 59 44.0 .213137827814D-04 .341060513165D-11 .000000000000D+00
+ .206000000000D+03 -.714375000000D+02 .470841040991D-08 -.222082139957D+01
+ -.376813113689D-05 .871319742873D-02 .128187239170D-04 .515360178947D+04
+ .223184000000D+06 .128522515297D-06 .307220032239D+00 .167638063431D-07
+ .944623207280D+00 .122156250000D+03 .129534120242D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .206000000000D+03
+ .219786000000D+06 .400000000000D+01
+32 06 1 31 15 59 44.0 .213384628296D-04 .341060513165D-11 .000000000000D+00
+ .207000000000D+03 -.765312500000D+02 .471126767178D-08 -.117036120409D+01
+ -.385381281376D-05 .871346553322D-02 .122822821140D-04 .515360552979D+04
+ .230384000000D+06 -.186264514923D-07 .307162874567D+00 .223517417908D-06
+ .944622831310D+00 .137875000000D+03 .129510646405D+01 -.814748223248D-08
+ .507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .207000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 16 0 0.0 .342330895364D-04 .193267624127D-11 .000000000000D+00
+ .118000000000D+03 .119093750000D+03 .395159317115D-08 .233457122826D+01
+ .614114105701D-05 .632507458795D-02 .485964119434D-05 .515367810249D+04
+ .230400000000D+06 .173225998878D-06 -.171568232750D+01 .000000000000D+00
+ .986381295380D+00 .298875000000D+03 -.171069670561D+01 -.797497504686D-08
+ .513592821774D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .374000000000D+03
+ .223206000000D+06 .400000000000D+01
+15 06 1 31 16 0 0.0 .558563508093D-03 .591171556152D-11 .000000000000D+00
+ .201000000000D+03 -.454375000000D+02 .496199240119D-08 .977276156160D+00
+ -.264123082161D-05 .935740733985D-02 .570528209209D-05 .515371125984D+04
+ .230400000000D+06 .119209289551D-06 .251197710643D+01 -.540167093277D-07
+ .958177516328D+00 .262937500000D+03 .254600790909D+01 -.837927760197D-08
+ -.683242745517D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .201000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 18 0 0.0 .342465937138D-04 .193267624127D-11 .000000000000D+00
+ .119000000000D+03 .114312500000D+03 .394552148966D-08 -.289838036803D+01
+ .597164034843D-05 .632530450821D-02 .505894422531D-05 .515367750549D+04
+ .237600000000D+06 -.111758708954D-07 -.171573859426D+01 -.372529029846D-08
+ .986384717146D+00 .297218750000D+03 -.171075624345D+01 -.788925719066D-08
+ .383230248792D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .375000000000D+03
+ .230406000000D+06 .400000000000D+01
+15 06 1 31 18 0 0.0 .558606348932D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.435625000000D+02 .509914097112D-08 .202742773297D+01
+ -.202842056751D-05 .935770059004D-02 .563822686672D-05 .515371146965D+04
+ .237600000000D+06 .199303030968D-06 .251191656064D+01 .242143869400D-07
+ .958172631645D+00 .267000000000D+03 .254601763457D+01 -.839249243814D-08
+ -.630740558590D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .964000000000D+03
+ .230406000000D+06 .400000000000D+01
+32 06 1 31 18 0 0.0 .213631428778D-04 .341060513165D-11 .000000000000D+00
+ .208000000000D+03 -.890312500000D+02 .472555398115D-08 -.117860252530D+00
+ -.479258596897D-05 .871195329819D-02 .121705234051D-04 .515360266304D+04
+ .237600000000D+06 -.104308128357D-06 .307103412798D+00 .987201929092D-07
+ .944622996619D+00 .142281250000D+03 .129516376363D+01 -.823248577322D-08
+ .657170230921D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .208000000000D+03
+ .230406000000D+06 .400000000000D+01
+ 1 06 1 31 20 0 0.0 .342600978911D-04 .193267624127D-11 .000000000000D+00
+ .120000000000D+03 .101968750000D+03 .394802159380D-08 -.184801896196D+01
+ .529736280441D-05 .632367632352D-02 .553019344807D-05 .515368125343D+04
+ .244800000000D+06 .109896063805D-06 -.171579509654D+01 .633299350739D-07
+ .986386905671D+00 .288843750000D+03 -.171094499207D+01 -.797426073140D-08
+ .296440919383D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .376000000000D+03
+ .237606000000D+06 .400000000000D+01
+15 06 1 31 20 0 0.0 .558649189770D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.360000000000D+02 .513557106001D-08 .307768773981D+01
+ -.172853469849D-05 .935899640899D-02 .540725886822D-05 .515370851135D+04
+ .244800000000D+06 -.707805156708D-07 .251185522049D+01 .163912773132D-06
+ .958169255230D+00 .275468750000D+03 .254592151939D+01 -.828748806429D-08
+ -.405016870578D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .709000000000D+03
+ .237606000000D+06 .400000000000D+01
+32 06 1 31 20 0 0.0 .213873572648D-04 .341060513165D-11 .000000000000D+00
+ .209000000000D+03 -.102281250000D+03 .458126225653D-08 .932201625459D+00
+ -.536069273949D-05 .871358159930D-02 .124275684357D-04 .515360659790D+04
+ .244800000000D+06 -.987201929092D-07 .307044717599D+00 -.577419996262D-07
+ .944622946880D+00 .130906250000D+03 .129532648986D+01 -.823534303509D-08
+ -.507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .209000000000D+03
+ .237666000000D+06 .400000000000D+01
+ 1 06 1 31 22 0 0.0 .342740677297D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .987812500000D+02 .416945938901D-08 -.798228821000D+00
+ .518187880516D-05 .632309354842D-02 .631809234619D-05 .515367652702D+04
+ .252000000000D+06 -.987201929092D-07 -.171585342747D+01 .745058059692D-08
+ .986388093561D+00 .271312500000D+03 -.171056064545D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .371000000000D+03
+ .244806000000D+06 .400000000000D+01
+15 06 1 31 22 0 0.0 .558691564947D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.337500000000D+02 .516735809835D-08 -.215538154240D+01
+ -.159814953804D-05 .935994752217D-02 .596605241299D-05 .515370653725D+04
+ .252000000000D+06 -.197440385818D-06 .251179533886D+01 .856816768646D-07
+ .958166042662D+00 .268281250000D+03 .254597027406D+01 -.836856286995D-08
+ -.385730352932D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .710000000000D+03
+ .244806000000D+06 .400000000000D+01
+32 06 1 31 22 0 0.0 .214120373130D-04 .341060513165D-11 .000000000000D+00
+ .210000000000D+03 -.102875000000D+03 .450054460860D-08 .198260220117D+01
+ -.529922544956D-05 .871415599249D-02 .131297856569D-04 .515360381126D+04
+ .252000000000D+06 .763684511185D-07 .306985642041D+00 -.229105353355D-06
+ .944623628600D+00 .115656250000D+03 .129514812211D+01 -.802461997192D-08
+ -.357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .210000000000D+03
+ .244806000000D+06 .400000000000D+01
+ 1 06 1 31 21 59 44.0 .342894345522D-04 .193267624127D-11 .000000000000D+00
+ .141000000000D+03 .987812500000D+02 .416945938901D-08 -.800563293006D+00
+ .518187880516D-05 .632309168577D-02 .631809234619D-05 .515367653465D+04
+ .251984000000D+06 -.987201929092D-07 -.171585326802D+01 .745058059692D-08
+ .986388127208D+00 .271312500000D+03 -.171055998422D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .141000000000D+03
+ .250056000000D+06 .400000000000D+01
+ 1 06 1 31 23 59 44.0 .343038700521D-04 .193267624127D-11 .000000000000D+00
+ .142000000000D+03 .106718750000D+03 .416553065393D-08 .249668416606D+00
+ .565685331821D-05 .632479728665D-02 .687316060066D-05 .515367983246D+04
+ .259184000000D+06 -.745058059692D-08 -.171591281756D+01 -.372529029846D-08
+ .986390524930D+00 .261562500000D+03 -.171061566288D+01 -.823534303509D-08
+ .376444251843D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .142000000000D+03
+ .252006000000D+06 .400000000000D+01
+15 06 2 1 0 0 0.0 .558734405786D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.357187500000D+02 .514592863430D-08 -.110524072535D+01
+ -.213272869587D-05 .936006801203D-02 .589340925217D-05 .515370607948D+04
+ .259200000000D+06 -.596046447754D-07 .251173363883D+01 -.800937414169D-07
+ .958163270432D+00 .267156250000D+03 .254599570982D+01 -.851249743683D-08
+ -.269296931584D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .711000000000D+03
+ .252006000000D+06 .400000000000D+01
+32 06 2 1 0 0 0.0 .214362516999D-04 .341060513165D-11 .000000000000D+00
+ .211000000000D+03 -.873125000000D+02 .435768151493D-08 .303274718753D+01
+ -.445544719696D-05 .871229276527D-02 .133030116558D-04 .515360733604D+04
+ .259200000000D+06 .763684511185D-07 .306929331399D+00 -.372529029846D-08
+ .944623928498D+00 .110812500000D+03 .129522530274D+01 -.784746973576D-08
+ -.882179603464D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .211000000000D+03
+ .252006000000D+06 .400000000000D+01
diff --git a/dev/tests/RinexEphemerisStore/Logs/addEphemerisTest.txt b/dev/tests/RinexEphemerisStore/Logs/addEphemerisTest.txt
new file mode 100644
index 0000000..dfcb5e5
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/addEphemerisTest.txt
@@ -0,0 +1,5 @@
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/addToListTest.txt b/dev/tests/RinexEphemerisStore/Logs/addToListTest.txt
new file mode 100644
index 0000000..76f8863
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/addToListTest.txt
@@ -0,0 +1,1886 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x043 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0x43 0 off
+
+ CLOCK
+
+Bias T0: 3.41343693E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367689E+03 m**.5
+Motion correction: 4.34053794E-09 rad/sec
+Eccentricity: 6.32685330E-03
+Arg of perigee: -1.71098328E+00 rad
+Mean anomaly at epoch: 1.26681178E+00 rad
+Right ascension: -1.71526968E+00 rad -8.34177604E-09 rad/sec
+Inclination: 9.86356141E-01 rad 3.65729520E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.15968750E+02 m Cosine: 3.27531250E+02 m
+Inclination Sine: -1.17346644E-07 rad Cosine: -1.02445483E-07 rad
+In-track Sine: 3.52226198E-06 rad Cosine: 5.89340925E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 181806 Tue-2:02:30:06 0x044 0 off
+SF2 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+SF3 HOW: 181806 Tue-2:02:30:06 0x44 0 off
+
+ CLOCK
+
+Bias T0: 3.41478735E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367755E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32700860E-03
+Arg of perigee: -1.71092165E+00 rad
+Mean anomaly at epoch: 2.31692691E+00 rad
+Right ascension: -1.71532878E+00 rad -8.11605235E-09 rad/sec
+Inclination: 9.86359782E-01 rad 3.52514684E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12937500E+02 m Cosine: 3.30625000E+02 m
+Inclination Sine: -6.70552254E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 3.17767262E-06 rad Cosine: 5.77233732E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 192216 Tue-2:05:23:36 0x259 0 off
+SF2 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+SF3 HOW: 192216 Tue-2:05:23:36 0x59 0 off
+
+ CLOCK
+
+Bias T0: 3.41548584E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367874E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628636E-03
+Arg of perigee: -1.71094976E+00 rad
+Mean anomaly at epoch: -2.91838707E+00 rad
+Right ascension: -1.71538720E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362374E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x23F 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0x3F 0 off
+
+ CLOCK
+
+Bias T0: 3.41618434E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367875E+03 m**.5
+Motion correction: 4.25553440E-09 rad/sec
+Eccentricity: 6.32628449E-03
+Arg of perigee: -1.71094881E+00 rad
+Mean anomaly at epoch: -2.91605436E+00 rad
+Right ascension: -1.71538734E+00 rad -8.11176646E-09 rad/sec
+Inclination: 9.86362375E-01 rad 4.02516766E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.12750000E+02 m Cosine: 3.23406250E+02 m
+Inclination Sine: 4.84287739E-08 rad Cosine: 1.54599547E-07 rad
+In-track Sine: 3.57814133E-06 rad Cosine: 5.86546957E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x15A 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0x5A 0 off
+
+ CLOCK
+
+Bias T0: 3.41683626E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368112E+03 m**.5
+Motion correction: 4.14945856E-09 rad/sec
+Eccentricity: 6.32504828E-03
+Arg of perigee: -1.71103397E+00 rad
+Mean anomaly at epoch: -1.86812836E+00 rad
+Right ascension: -1.71544585E+00 rad -8.06569311E-09 rad/sec
+Inclination: 9.86365821E-01 rad 4.89306096E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06562500E+02 m Cosine: 3.13812500E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: 2.79396772E-08 rad
+In-track Sine: 4.02703881E-06 rad Cosine: 5.71832061E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Eph Epoch: 1360( 336) 208784 Tue-2 31 35984 01/31/2006 09:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208446 Tue-2:09:54:06 0x073 0 off
+SF2 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+SF3 HOW: 208446 Tue-2:09:54:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.41916457E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367637E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467808E-03
+Arg of perigee: -1.71064445E+00 rad
+Mean anomaly at epoch: -8.18341978E-01 rad
+Right ascension: -1.71550465E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368594E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x15B 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0x5B 0 off
+
+ CLOCK
+
+Bias T0: 3.41818668E-05 sec
+Drift: 1.81898940E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367640E+03 m**.5
+Motion correction: 4.25303430E-09 rad/sec
+Eccentricity: 6.32467505E-03
+Arg of perigee: -1.71064293E+00 rad
+Mean anomaly at epoch: -8.16009862E-01 rad
+Right ascension: -1.71550477E+00 rad -8.23784314E-09 rad/sec
+Inclination: 9.86368607E-01 rad 5.06806825E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06437500E+02 m Cosine: 2.95875000E+02 m
+Inclination Sine: 3.35276127E-08 rad Cosine: -1.35973096E-07 rad
+In-track Sine: 5.20423055E-06 rad Cosine: 5.66430390E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x175 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0x75 0 off
+
+ CLOCK
+
+Bias T0: 3.42191197E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367680E+03 m**.5
+Motion correction: 4.14195824E-09 rad/sec
+Eccentricity: 6.32508728E-03
+Arg of perigee: -1.71080977E+00 rad
+Mean anomaly at epoch: 1.28450941E+00 rad
+Right ascension: -1.71562416E+00 rad -8.23998609E-09 rad/sec
+Inclination: 9.86376251E-01 rad 5.43236914E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.20250000E+02 m Cosine: 2.93375000E+02 m
+Inclination Sine: -1.11758709E-07 rad Cosine: -7.63684511E-08 rad
+In-track Sine: 5.04590571E-06 rad Cosine: 6.22309744E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x176 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0x76 0 off
+
+ CLOCK
+
+Bias T0: 3.42330895E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367810E+03 m**.5
+Motion correction: 3.95159317E-09 rad/sec
+Eccentricity: 6.32507459E-03
+Arg of perigee: -1.71069671E+00 rad
+Mean anomaly at epoch: 2.33457123E+00 rad
+Right ascension: -1.71568233E+00 rad -7.97497505E-09 rad/sec
+Inclination: 9.86381295E-01 rad 5.13592822E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.19093750E+02 m Cosine: 2.98875000E+02 m
+Inclination Sine: 0.00000000E+00 rad Cosine: 1.73225999E-07 rad
+In-track Sine: 4.85964119E-06 rad Cosine: 6.14114106E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x177 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0x77 0 off
+
+ CLOCK
+
+Bias T0: 3.42465937E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367751E+03 m**.5
+Motion correction: 3.94552149E-09 rad/sec
+Eccentricity: 6.32530451E-03
+Arg of perigee: -1.71075624E+00 rad
+Mean anomaly at epoch: -2.89838037E+00 rad
+Right ascension: -1.71573859E+00 rad -7.88925719E-09 rad/sec
+Inclination: 9.86384717E-01 rad 3.83230249E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.14312500E+02 m Cosine: 2.97218750E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -1.11758709E-08 rad
+In-track Sine: 5.05894423E-06 rad Cosine: 5.97164035E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x178 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0x78 0 off
+
+ CLOCK
+
+Bias T0: 3.42600979E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15368125E+03 m**.5
+Motion correction: 3.94802159E-09 rad/sec
+Eccentricity: 6.32367632E-03
+Arg of perigee: -1.71094499E+00 rad
+Mean anomaly at epoch: -1.84801896E+00 rad
+Right ascension: -1.71579510E+00 rad -7.97426073E-09 rad/sec
+Inclination: 9.86386906E-01 rad 2.96440919E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.01968750E+02 m Cosine: 2.88843750E+02 m
+Inclination Sine: 6.33299351E-08 rad Cosine: 1.09896064E-07 rad
+In-track Sine: 5.53019345E-06 rad Cosine: 5.29736280E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Eph Epoch: 1360( 336) 251984 Tue-2 31 79184 01/31/2006 21:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 250056 Tue-2:21:27:36 0x08D 0 off
+SF2 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+SF3 HOW: 250056 Tue-2:21:27:36 0x8D 0 off
+
+ CLOCK
+
+Bias T0: 3.42894346E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309169E-03
+Arg of perigee: -1.71055998E+00 rad
+Mean anomaly at epoch: -8.00563293E-01 rad
+Right ascension: -1.71585327E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388127E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x173 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0x73 0 off
+
+ CLOCK
+
+Bias T0: 3.42740677E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367653E+03 m**.5
+Motion correction: 4.16945939E-09 rad/sec
+Eccentricity: 6.32309355E-03
+Arg of perigee: -1.71056065E+00 rad
+Mean anomaly at epoch: -7.98228821E-01 rad
+Right ascension: -1.71585343E+00 rad -8.18998400E-09 rad/sec
+Inclination: 9.86388094E-01 rad 3.13584491E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 9.87812500E+01 m Cosine: 2.71312500E+02 m
+Inclination Sine: 7.45058060E-09 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 6.31809235E-06 rad Cosine: 5.18187881E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Eph Epoch: 1360( 336) 259184 Tue-2 31 86384 01/31/2006 23:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x08E 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0x8E 0 off
+
+ CLOCK
+
+Bias T0: 3.43038701E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367983E+03 m**.5
+Motion correction: 4.16553065E-09 rad/sec
+Eccentricity: 6.32479729E-03
+Arg of perigee: -1.71061566E+00 rad
+Mean anomaly at epoch: 2.49668417E-01 rad
+Right ascension: -1.71591282E+00 rad -8.23534304E-09 rad/sec
+Inclination: 9.86390525E-01 rad 3.76444252E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.06718750E+02 m Cosine: 2.61562500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 6.87316060E-06 rad Cosine: 5.65685332E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x2AC 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xAC 0 off
+
+ CLOCK
+
+Bias T0: 5.58263157E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370760E+03 m**.5
+Motion correction: 4.95913514E-09 rad/sec
+Eccentricity: 9.35129554E-03
+Arg of perigee: 2.54594306E+00 rad
+Mean anomaly at epoch: -9.06095983E-02 rad
+Right ascension: 2.51239340E+00 rad -8.35570519E-09 rad/sec
+Inclination: 9.58205830E-01 rad -5.09306929E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.05000000E+01 m Cosine: 2.32312500E+02 m
+Inclination Sine: -8.19563866E-08 rad Cosine: 5.21540642E-08 rad
+In-track Sine: 7.47665763E-06 rad Cosine: -2.24076211E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x2AD 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xAD 0 off
+
+ CLOCK
+
+Bias T0: 5.58305997E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371153E+03 m**.5
+Motion correction: 4.84091593E-09 rad/sec
+Eccentricity: 9.35316086E-03
+Arg of perigee: 2.54603428E+00 rad
+Mean anomaly at epoch: 9.59460895E-01 rad
+Right ascension: 2.51233346E+00 rad -8.27070165E-09 rad/sec
+Inclination: 9.58202504E-01 rad -5.20021661E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.51562500E+01 m Cosine: 2.45906250E+02 m
+Inclination Sine: -3.53902578E-08 rad Cosine: 1.60187483E-07 rad
+In-track Sine: 6.79865479E-06 rad Cosine: -2.42330134E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Eph Epoch: 1360( 336) 194384 Tue-2 31 21584 01/31/2006 05:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 193626 Tue-2:05:47:06 0x2C4 0 off
+SF2 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+SF3 HOW: 193626 Tue-2:05:47:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58349304E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331150E-03
+Arg of perigee: 2.54596333E+00 rad
+Mean anomaly at epoch: 2.00735802E+00 rad
+Right ascension: 2.51227500E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198768E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x2AE 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xAE 0 off
+
+ CLOCK
+
+Bias T0: 5.58348838E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371032E+03 m**.5
+Motion correction: 4.84555898E-09 rad/sec
+Eccentricity: 9.35331290E-03
+Arg of perigee: 2.54596378E+00 rad
+Mean anomaly at epoch: 2.00969128E+00 rad
+Right ascension: 2.51227486E+00 rad -8.17534054E-09 rad/sec
+Inclination: 9.58198745E-01 rad -5.95024785E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.89062500E+01 m Cosine: 2.49906250E+02 m
+Inclination Sine: 7.63684511E-08 rad Cosine: 6.33299351E-08 rad
+In-track Sine: 6.62170351E-06 rad Cosine: -2.45310366E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Eph Epoch: 1360( 336) 201584 Tue-2 31 28784 01/31/2006 07:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1C5 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58392145E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370812E+03 m**.5
+Motion correction: 4.85734519E-09 rad/sec
+Eccentricity: 9.35426482E-03
+Arg of perigee: 2.54589149E+00 rad
+Mean anomaly at epoch: 3.05759168E+00 rad
+Right ascension: 2.51221588E+00 rad -8.14212487E-09 rad/sec
+Inclination: 9.58194788E-01 rad -5.32522182E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.34375000E+01 m Cosine: 2.56125000E+02 m
+Inclination Sine: 1.04308128E-07 rad Cosine: -2.23517418E-08 rad
+In-track Sine: 6.29760325E-06 rad Cosine: -2.15694308E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1C6 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58434986E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370631E+03 m**.5
+Motion correction: 4.91627621E-09 rad/sec
+Eccentricity: 9.35517496E-03
+Arg of perigee: 2.54592936E+00 rad
+Mean anomaly at epoch: -2.17313468E+00 rad
+Right ascension: 2.51215687E+00 rad -8.24570061E-09 rad/sec
+Inclination: 9.58190482E-01 rad -5.29307762E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.03125000E+01 m Cosine: 2.49781250E+02 m
+Inclination Sine: 8.94069672E-08 rad Cosine: -1.50874257E-07 rad
+In-track Sine: 6.75022602E-06 rad Cosine: -1.99861825E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x1C8 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xC8 0 off
+
+ CLOCK
+
+Bias T0: 5.58520667E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370721E+03 m**.5
+Motion correction: 4.94806325E-09 rad/sec
+Eccentricity: 9.35553596E-03
+Arg of perigee: 2.54590311E+00 rad
+Mean anomaly at epoch: -7.27814121E-02 rad
+Right ascension: 2.51203755E+00 rad -8.40392149E-09 rad/sec
+Inclination: 9.58182252E-01 rad -6.62527597E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.21875000E+01 m Cosine: 2.48468750E+02 m
+Inclination Sine: -1.37835741E-07 rad Cosine: 6.51925802E-08 rad
+In-track Sine: 6.81355596E-06 rad Cosine: -2.41957605E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Eph Epoch: 1360( 336) 230400 Tue-2 31 57600 01/31/2006 16:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0C9 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xC9 0 off
+
+ CLOCK
+
+Bias T0: 5.58563508E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371126E+03 m**.5
+Motion correction: 4.96199240E-09 rad/sec
+Eccentricity: 9.35740734E-03
+Arg of perigee: 2.54600791E+00 rad
+Mean anomaly at epoch: 9.77276156E-01 rad
+Right ascension: 2.51197711E+00 rad -8.37927760E-09 rad/sec
+Inclination: 9.58177516E-01 rad -6.83242746E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.54375000E+01 m Cosine: 2.62937500E+02 m
+Inclination Sine: -5.40167093E-08 rad Cosine: 1.19209290E-07 rad
+In-track Sine: 5.70528209E-06 rad Cosine: -2.64123082E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x3C4 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xC4 0 off
+
+ CLOCK
+
+Bias T0: 5.58606349E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15371147E+03 m**.5
+Motion correction: 5.09914097E-09 rad/sec
+Eccentricity: 9.35770059E-03
+Arg of perigee: 2.54601763E+00 rad
+Mean anomaly at epoch: 2.02742773E+00 rad
+Right ascension: 2.51191656E+00 rad -8.39249244E-09 rad/sec
+Inclination: 9.58172632E-01 rad -6.30740559E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -4.35625000E+01 m Cosine: 2.67000000E+02 m
+Inclination Sine: 2.42143869E-08 rad Cosine: 1.99303031E-07 rad
+In-track Sine: 5.63822687E-06 rad Cosine: -2.02842057E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237606 Tue-2:18:00:06 0x2C5 0 off
+SF2 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+SF3 HOW: 237606 Tue-2:18:00:06 0xC5 0 off
+
+ CLOCK
+
+Bias T0: 5.58649190E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370851E+03 m**.5
+Motion correction: 5.13557106E-09 rad/sec
+Eccentricity: 9.35899641E-03
+Arg of perigee: 2.54592152E+00 rad
+Mean anomaly at epoch: 3.07768774E+00 rad
+Right ascension: 2.51185522E+00 rad -8.28748806E-09 rad/sec
+Inclination: 9.58169255E-01 rad -4.05016871E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.60000000E+01 m Cosine: 2.75468750E+02 m
+Inclination Sine: 1.63912773E-07 rad Cosine: -7.07805157E-08 rad
+In-track Sine: 5.40725887E-06 rad Cosine: -1.72853470E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x2C6 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xC6 0 off
+
+ CLOCK
+
+Bias T0: 5.58691565E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370654E+03 m**.5
+Motion correction: 5.16735810E-09 rad/sec
+Eccentricity: 9.35994752E-03
+Arg of perigee: 2.54597027E+00 rad
+Mean anomaly at epoch: -2.15538154E+00 rad
+Right ascension: 2.51179534E+00 rad -8.36856287E-09 rad/sec
+Inclination: 9.58166043E-01 rad -3.85730353E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.37500000E+01 m Cosine: 2.68281250E+02 m
+Inclination Sine: 8.56816769E-08 rad Cosine: -1.97440386E-07 rad
+In-track Sine: 5.96605241E-06 rad Cosine: -1.59814954E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x2C7 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58734406E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370608E+03 m**.5
+Motion correction: 5.14592863E-09 rad/sec
+Eccentricity: 9.36006801E-03
+Arg of perigee: 2.54599571E+00 rad
+Mean anomaly at epoch: -1.10524073E+00 rad
+Right ascension: 2.51173364E+00 rad -8.51249744E-09 rad/sec
+Inclination: 9.58163270E-01 rad -2.69296932E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.57187500E+01 m Cosine: 2.67156250E+02 m
+Inclination Sine: -8.00937414E-08 rad Cosine: -5.96046448E-08 rad
+In-track Sine: 5.89340925E-06 rad Cosine: -2.13272870E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 2
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Eph Epoch: 1360( 336) 180000 Tue-2 31 7200 01/31/2006 02:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 172806 Tue-2:00:00:06 0x1B4 0 off
+SF2 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+SF3 HOW: 172806 Tue-2:00:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.11610459E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360316E+03 m**.5
+Motion correction: 4.39589739E-09 rad/sec
+Eccentricity: 8.71090021E-03
+Arg of perigee: 1.29523927E+00 rad
+Mean anomaly at epoch: -2.23653823E+00 rad
+Right ascension: 3.07566662E-01 rad -7.75710883E-09 rad/sec
+Inclination: 9.44623504E-01 rad 1.08933109E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -6.76875000E+01 m Cosine: 1.15000000E+02 m
+Inclination Sine: -9.31322575E-08 rad Cosine: 1.21071935E-07 rad
+In-track Sine: 1.32359564E-05 rad Cosine: -3.53716314E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Eph Epoch: 1360( 336) 187200 Tue-2 31 14400 01/31/2006 04:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 180006 Tue-2:02:00:06 0x1B5 0 off
+SF2 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+SF3 HOW: 180006 Tue-2:02:00:06 0xB5 0 off
+
+ CLOCK
+
+Bias T0: 2.11857259E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360674E+03 m**.5
+Motion correction: 4.54197491E-09 rad/sec
+Eccentricity: 8.71113362E-03
+Arg of perigee: 1.29501397E+00 rad
+Mean anomaly at epoch: -1.18609024E+00 rad
+Right ascension: 3.07510597E-01 rad -8.09319426E-09 rad/sec
+Inclination: 9.44622470E-01 rad -5.00020828E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.28750000E+01 m Cosine: 1.30031250E+02 m
+Inclination Sine: 2.40281224E-07 rad Cosine: -7.45058060E-09 rad
+In-track Sine: 1.24983490E-05 rad Cosine: -3.84636223E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Eph Epoch: 1360( 336) 194400 Tue-2 31 21600 01/31/2006 06:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 187206 Tue-2:04:00:06 0x1B6 0 off
+SF2 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+SF3 HOW: 187206 Tue-2:04:00:06 0xB6 0 off
+
+ CLOCK
+
+Bias T0: 2.12104060E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360359E+03 m**.5
+Motion correction: 4.66233706E-09 rad/sec
+Eccentricity: 8.70950485E-03
+Arg of perigee: 1.29508260E+00 rad
+Mean anomaly at epoch: -1.35935973E-01 rad
+Right ascension: 3.07451598E-01 rad -8.18676958E-09 rad/sec
+Inclination: 9.44622210E-01 rad 1.42863094E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.65312500E+01 m Cosine: 1.33937500E+02 m
+Inclination Sine: 1.09896064E-07 rad Cosine: -9.68575478E-08 rad
+In-track Sine: 1.23213977E-05 rad Cosine: -4.46103513E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Eph Epoch: 1360( 336) 201600 Tue-2 31 28800 01/31/2006 08:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 194406 Tue-2:06:00:06 0x1B7 0 off
+SF2 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+SF3 HOW: 194406 Tue-2:06:00:06 0xB7 0 off
+
+ CLOCK
+
+Bias T0: 2.12350860E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360806E+03 m**.5
+Motion correction: 4.60804909E-09 rad/sec
+Eccentricity: 8.71139602E-03
+Arg of perigee: 1.29526135E+00 rad
+Mean anomaly at epoch: 9.14109252E-01 rad
+Right ascension: 3.07393065E-01 rad -8.17498338E-09 rad/sec
+Inclination: 9.44621932E-01 rad -6.39312344E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00750000E+02 m Cosine: 1.20312500E+02 m
+Inclination Sine: -1.11758709E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 1.31167471E-05 rad Cosine: -5.17070293E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Eph Epoch: 1360( 336) 208800 Tue-2 31 36000 01/31/2006 10:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 201606 Tue-2:08:00:06 0x1B8 0 off
+SF2 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+SF3 HOW: 201606 Tue-2:08:00:06 0xB8 0 off
+
+ CLOCK
+
+Bias T0: 2.12597661E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360479E+03 m**.5
+Motion correction: 4.61126351E-09 rad/sec
+Eccentricity: 8.71198589E-03
+Arg of perigee: 1.29505117E+00 rad
+Mean anomaly at epoch: 1.96454133E+00 rad
+Right ascension: 3.07334399E-01 rad -7.96354600E-09 rad/sec
+Inclination: 9.44622565E-01 rad -4.64305054E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.00281250E+02 m Cosine: 1.02875000E+02 m
+Inclination Sine: -2.12341547E-07 rad Cosine: 5.58793545E-09 rad
+In-track Sine: 1.37276947E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Eph Epoch: 1360( 336) 223184 Tue-2 31 50384 01/31/2006 13:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 219786 Tue-2:13:03:06 0x0CE 0 off
+SF2 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+SF3 HOW: 219786 Tue-2:13:03:06 0xCE 0 off
+
+ CLOCK
+
+Bias T0: 2.13137828E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319743E-03
+Arg of perigee: 1.29534120E+00 rad
+Mean anomaly at epoch: -2.22082140E+00 rad
+Right ascension: 3.07220032E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623207E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Eph Epoch: 1360( 336) 223200 Tue-2 31 50400 01/31/2006 14:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 216006 Tue-2:12:00:06 0x2B4 0 off
+SF2 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+SF3 HOW: 216006 Tue-2:12:00:06 0xB4 0 off
+
+ CLOCK
+
+Bias T0: 2.13091262E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360179E+03 m**.5
+Motion correction: 4.70841041E-09 rad/sec
+Eccentricity: 8.71319557E-03
+Arg of perigee: 1.29534135E+00 rad
+Mean anomaly at epoch: -2.21848770E+00 rad
+Right ascension: 3.07219892E-01 rad -7.91461539E-09 rad/sec
+Inclination: 9.44623209E-01 rad 1.13219002E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.14375000E+01 m Cosine: 1.22156250E+02 m
+Inclination Sine: 1.67638063E-08 rad Cosine: 1.28522515E-07 rad
+In-track Sine: 1.28187239E-05 rad Cosine: -3.76813114E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Eph Epoch: 1360( 336) 230384 Tue-2 31 57584 01/31/2006 15:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 223206 Tue-2:14:00:06 0x0CF 0 off
+SF2 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+SF3 HOW: 223206 Tue-2:14:00:06 0xCF 0 off
+
+ CLOCK
+
+Bias T0: 2.13384628E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360553E+03 m**.5
+Motion correction: 4.71126767E-09 rad/sec
+Eccentricity: 8.71346553E-03
+Arg of perigee: 1.29510646E+00 rad
+Mean anomaly at epoch: -1.17036120E+00 rad
+Right ascension: 3.07162875E-01 rad -8.14748223E-09 rad/sec
+Inclination: 9.44622831E-01 rad 5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -7.65312500E+01 m Cosine: 1.37875000E+02 m
+Inclination Sine: 2.23517418E-07 rad Cosine: -1.86264515E-08 rad
+In-track Sine: 1.22822821E-05 rad Cosine: -3.85381281E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Eph Epoch: 1360( 336) 237600 Tue-2 31 64800 01/31/2006 18:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 230406 Tue-2:16:00:06 0x0D0 0 off
+SF2 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+SF3 HOW: 230406 Tue-2:16:00:06 0xD0 0 off
+
+ CLOCK
+
+Bias T0: 2.13631429E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360266E+03 m**.5
+Motion correction: 4.72555398E-09 rad/sec
+Eccentricity: 8.71195330E-03
+Arg of perigee: 1.29516376E+00 rad
+Mean anomaly at epoch: -1.17860253E-01 rad
+Right ascension: 3.07103413E-01 rad -8.23248577E-09 rad/sec
+Inclination: 9.44622997E-01 rad 6.57170231E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.90312500E+01 m Cosine: 1.42281250E+02 m
+Inclination Sine: 9.87201929E-08 rad Cosine: -1.04308128E-07 rad
+In-track Sine: 1.21705234E-05 rad Cosine: -4.79258597E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Eph Epoch: 1360( 336) 244800 Tue-2 31 72000 01/31/2006 20:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 237666 Tue-2:18:01:06 0x0D1 0 off
+SF2 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+SF3 HOW: 237666 Tue-2:18:01:06 0xD1 0 off
+
+ CLOCK
+
+Bias T0: 2.13873573E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360660E+03 m**.5
+Motion correction: 4.58126226E-09 rad/sec
+Eccentricity: 8.71358160E-03
+Arg of perigee: 1.29532649E+00 rad
+Mean anomaly at epoch: 9.32201625E-01 rad
+Right ascension: 3.07044718E-01 rad -8.23534304E-09 rad/sec
+Inclination: 9.44622947E-01 rad -5.07163983E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02281250E+02 m Cosine: 1.30906250E+02 m
+Inclination Sine: -5.77419996E-08 rad Cosine: -9.87201929E-08 rad
+In-track Sine: 1.24275684E-05 rad Cosine: -5.36069274E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Eph Epoch: 1360( 336) 252000 Tue-2 31 79200 01/31/2006 22:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 244806 Tue-2:20:00:06 0x0D2 0 off
+SF2 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+SF3 HOW: 244806 Tue-2:20:00:06 0xD2 0 off
+
+ CLOCK
+
+Bias T0: 2.14120373E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360381E+03 m**.5
+Motion correction: 4.50054461E-09 rad/sec
+Eccentricity: 8.71415599E-03
+Arg of perigee: 1.29514812E+00 rad
+Mean anomaly at epoch: 1.98260220E+00 rad
+Right ascension: 3.06985642E-01 rad -8.02461997E-09 rad/sec
+Inclination: 9.44623629E-01 rad -3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -1.02875000E+02 m Cosine: 1.15656250E+02 m
+Inclination Sine: -2.29105353E-07 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.31297857E-05 rad Cosine: -5.29922545E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Eph Epoch: 1360( 336) 259200 Wed-3 32 0 02/01/2006 00:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 252006 Tue-2:22:00:06 0x0D3 0 off
+SF2 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+SF3 HOW: 252006 Tue-2:22:00:06 0xD3 0 off
+
+ CLOCK
+
+Bias T0: 2.14362517E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360734E+03 m**.5
+Motion correction: 4.35768151E-09 rad/sec
+Eccentricity: 8.71229277E-03
+Arg of perigee: 1.29522530E+00 rad
+Mean anomaly at epoch: 3.03274719E+00 rad
+Right ascension: 3.06929331E-01 rad -7.84746974E-09 rad/sec
+Inclination: 9.44623928E-01 rad -8.82179603E-11 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.73125000E+01 m Cosine: 1.10812500E+02 m
+Inclination Sine: -3.72529030E-09 rad Cosine: 7.63684511E-08 rad
+In-track Sine: 1.33030117E-05 rad Cosine: -4.45544720E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/clearTest.txt b/dev/tests/RinexEphemerisStore/Logs/clearTest.txt
new file mode 100644
index 0000000..e1dcfc7
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/clearTest.txt
@@ -0,0 +1,5 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/editTest.txt b/dev/tests/RinexEphemerisStore/Logs/editTest.txt
new file mode 100644
index 0000000..87b4198
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/editTest.txt
@@ -0,0 +1,33 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 9 entries.
+PRN 1 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 181806.000 KEY 01/31/2006 02:00:00
+PRN 1 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 192216.000 KEY 01/31/2006 03:59:44
+PRN 1 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 1 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 1 TOE 01/31/2006 09:59:44 TOC 208784.000 HOW 208446.000 KEY 01/31/2006 07:59:44
+PRN 1 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 15 has 8 entries.
+PRN 15 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 15 TOE 01/31/2006 05:59:44 TOC 194384.000 HOW 193626.000 KEY 01/31/2006 03:59:44
+PRN 15 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 15 TOE 01/31/2006 07:59:44 TOC 201584.000 HOW 194406.000 KEY 01/31/2006 05:59:44
+PRN 15 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 04:00:00 TOC 187200.000 HOW 180006.000 KEY 01/31/2006 02:00:00
+PRN 32 TOE 01/31/2006 06:00:00 TOC 194400.000 HOW 187206.000 KEY 01/31/2006 04:00:00
+PRN 32 TOE 01/31/2006 08:00:00 TOC 201600.000 HOW 194406.000 KEY 01/31/2006 06:00:00
+PRN 32 TOE 01/31/2006 10:00:00 TOC 208800.000 HOW 201606.000 KEY 01/31/2006 08:00:00
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/findEph1.txt b/dev/tests/RinexEphemerisStore/Logs/findEph1.txt
new file mode 100644
index 0000000..e5b77d1
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/findEph1.txt
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 1
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Eph Epoch: 1360( 336) 215984 Tue-2 31 43184 01/31/2006 11:59:44
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x174 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0x74 0 off
+
+ CLOCK
+
+Bias T0: 3.42056155E-05 sec
+Drift: 1.93267624E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -3.25962901E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15367878E+03 m**.5
+Motion correction: 4.15874466E-09 rad/sec
+Eccentricity: 6.32588984E-03
+Arg of perigee: -1.71070282E+00 rad
+Mean anomaly at epoch: 2.31892822E-01 rad
+Right ascension: -1.71556436E+00 rad -8.27605902E-09 rad/sec
+Inclination: 9.86372320E-01 rad 5.33236497E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: 1.13406250E+02 m Cosine: 2.90062500E+02 m
+Inclination Sine: -2.79396772E-08 rad Cosine: -7.45058060E-08 rad
+In-track Sine: 5.29363751E-06 rad Cosine: 5.78165054E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/findEph15.txt b/dev/tests/RinexEphemerisStore/Logs/findEph15.txt
new file mode 100644
index 0000000..8ca404a
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/findEph15.txt
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 15
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1C7 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xC7 0 off
+
+ CLOCK
+
+Bias T0: 5.58477826E-04 sec
+Drift: 5.91171556E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -2.32830644E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15370655E+03 m**.5
+Motion correction: 4.89556106E-09 rad/sec
+Eccentricity: 9.35519312E-03
+Arg of perigee: 2.54591534E+00 rad
+Mean anomaly at epoch: -1.12295671E+00 rad
+Right ascension: 2.51209679E+00 rad -8.32106089E-09 rad/sec
+Inclination: 9.58186633E-01 rad -4.94663462E-10 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -3.94062500E+01 m Cosine: 2.49156250E+02 m
+Inclination Sine: -4.65661287E-08 rad Cosine: -1.34110451E-07 rad
+In-track Sine: 6.76140189E-06 rad Cosine: -2.19792128E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 0
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/findEph32.txt b/dev/tests/RinexEphemerisStore/Logs/findEph32.txt
new file mode 100644
index 0000000..071d04c
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/findEph32.txt
@@ -0,0 +1,46 @@
+****************************************************************************
+Broadcast Ephemeris (Engineering Units)
+
+PRN : 32
+
+ Week(10bt) SOW DOW UTD SOD MM/DD/YYYY HH:MM:SS
+Clock Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Eph Epoch: 1360( 336) 216000 Tue-2 31 43200 01/31/2006 12:00:00
+Transmit Week:1360
+Fit interval flag : 0
+
+ SUBFRAME OVERHEAD
+
+ SOW DOW:HH:MM:SS IOD ALERT A-S
+SF1 HOW: 208806 Tue-2:10:00:06 0x1B9 0 off
+SF2 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+SF3 HOW: 208806 Tue-2:10:00:06 0xB9 0 off
+
+ CLOCK
+
+Bias T0: 2.12844461E-05 sec
+Drift: 3.41060513E-12 sec/sec
+Drift rate: 0.00000000E+00 sec/(sec**2)
+Group delay: -8.38190317E-09 sec
+
+ ORBIT PARAMETERS
+
+Semi-major axis: 5.15360841E+03 m**.5
+Motion correction: 4.55768985E-09 rad/sec
+Eccentricity: 8.71008832E-03
+Arg of perigee: 1.29513505E+00 rad
+Mean anomaly at epoch: 3.01468050E+00 rad
+Right ascension: 3.07277461E-01 rad -7.91318676E-09 rad/sec
+Inclination: 9.44622686E-01 rad 3.57157734E-12 rad/sec
+
+ HARMONIC CORRECTIONS
+
+Radial Sine: -8.42187500E+01 m Cosine: 9.85625000E+01 m
+Inclination Sine: -1.30385160E-07 rad Cosine: 1.15483999E-07 rad
+In-track Sine: 1.38413161E-05 rad Cosine: -4.37162817E-06 rad
+
+ SV STATUS
+
+Health bits: 0x00 URA index: 1
+Code on L2: P only L2 P Nav data: on
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/findNearTest.txt b/dev/tests/RinexEphemerisStore/Logs/findNearTest.txt
new file mode 100644
index 0000000..c2311e3
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/findNearTest.txt
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/findUserTest.txt b/dev/tests/RinexEphemerisStore/Logs/findUserTest.txt
new file mode 100644
index 0000000..ff4a2dd
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/findUserTest.txt
@@ -0,0 +1,11 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 1 entries.
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 15 has 1 entries.
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ BCE map for satellite 32 has 1 entries.
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/getPrnXvt1.txt b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt1.txt
new file mode 100644
index 0000000..e4c3bff
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt1.txt
@@ -0,0 +1 @@
+x:(1.43293e+07, -2.70658e+06, -2.19986e+07), v:(354.696, 2812.26, -117.977), clk bias:3.42024e-05, clk drift:1.93268e-12
diff --git a/dev/tests/RinexEphemerisStore/Logs/getPrnXvt15.txt b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt15.txt
new file mode 100644
index 0000000..ab2097d
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt15.txt
@@ -0,0 +1 @@
+x:(1.46708e+07, 7.54272e+06, 2.07205e+07), v:(-2147.79, 1575.58, 902.848), clk bias:0.000558493, clk drift:5.91172e-12
diff --git a/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_1.txt b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_1.txt
new file mode 100644
index 0000000..e4c3bff
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_1.txt
@@ -0,0 +1 @@
+x:(1.43293e+07, -2.70658e+06, -2.19986e+07), v:(354.696, 2812.26, -117.977), clk bias:3.42024e-05, clk drift:1.93268e-12
diff --git a/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_15.txt b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_15.txt
new file mode 100644
index 0000000..ab2097d
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_15.txt
@@ -0,0 +1 @@
+x:(1.46708e+07, 7.54272e+06, 2.07205e+07), v:(-2147.79, 1575.58, 902.848), clk bias:0.000558493, clk drift:5.91172e-12
diff --git a/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_32.txt b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_32.txt
new file mode 100644
index 0000000..0b3c565
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt2_32.txt
@@ -0,0 +1 @@
+x:(8.40859e+06, 1.71989e+07, -1.87307e+07), v:(-2248.12, -606.201, -1577.94), clk bias:2.12763e-05, clk drift:3.41061e-12
diff --git a/dev/tests/RinexEphemerisStore/Logs/getPrnXvt32.txt b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt32.txt
new file mode 100644
index 0000000..0b3c565
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/getPrnXvt32.txt
@@ -0,0 +1 @@
+x:(8.40859e+06, 1.71989e+07, -1.87307e+07), v:(-2248.12, -606.201, -1577.94), clk bias:2.12763e-05, clk drift:3.41061e-12
diff --git a/dev/tests/RinexEphemerisStore/Logs/s011100a.00nEdit b/dev/tests/RinexEphemerisStore/Logs/s011100a.00nEdit
new file mode 100644
index 0000000..3ad7715
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/s011100a.00nEdit
@@ -0,0 +1,233 @@
+ 2.10 Navigation RINEX VERSION / TYPE
+RinexNavWriter NIMA 11-07-01 22:11:07 PGM / RUN BY / DATE
+ END OF HEADER
+ 6 00 4 9 2 0 0.0 .163633376360D-05 .000000000000D+01 .000000000000D+01
+ .139000000000D+03 .110968750000D+03 .479127100424D-08 -.271185537978D+00
+ .587105751038D-05 .666063290555D-02 .486150383949D-05 .515376547623D+04
+ .720000000000D+04 .100582838059D-06 .166945390407D+01 .108033418655D-06
+ .948998078425D+00 .280656250000D+03 -.241616685489D+01 -.853356974315D-08
+ .295369446180D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .139000000000D+03
+ .600000000000D+01 .400000000000D+01
+10 00 4 9 2 0 0.0 .492976978421D-04 .454747350886D-12 .000000000000D+01
+ .148000000000D+03 -.748750000000D+02 .415231581776D-08 .295979226314D+01
+ -.385195016861D-05 .409659452271D-02 .105686485767D-04 .515359637451D+04
+ .720000000000D+04 -.838190317154D-07 -.252978665650D+01 .242143869400D-07
+ .974400053365D+00 .183781250000D+03 -.997736974607D-01 -.774067957323D-08
+ .113219001740D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .148000000000D+03
+ .600000000000D+01 .400000000000D+01
+22 00 4 9 2 0 0.0 .359528698027D-03 -.110276232590D-10 .000000000000D+01
+ .860000000000D+02 .381562500000D+02 .488556064607D-08 .251560405486D+01
+ .183284282684D-05 .130287357606D-01 .117607414722D-04 .515384888840D+04
+ .720000000000D+04 -.149011611938D-06 .559738517550D+00 -.223517417908D-06
+ .934327413664D+00 .138250000000D+03 .561874429148D+00 -.802712007606D-08
+ -.385016037463D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.372529029846D-08 .342000000000D+03
+ .600000000000D+01 .400000000000D+01
+17 00 4 9 1 59 44.0 -.250394456089D-03 -.170530256582D-11 .000000000000D+01
+ .177000000000D+03 -.726875000000D+02 .421874715632D-08 -.621796324633D+00
+ -.385381281376D-05 .114934575977D-01 .392086803913D-05 .515353078079D+04
+ .718400000000D+04 .670552253723D-07 .281169049785D+01 -.141561031342D-06
+ .984505588632D+00 .313687500000D+03 .294499385637D+01 -.827463038586D-08
+ -.825034365993D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .177000000000D+03
+ .600000000000D+01 .400000000000D+01
+23 00 4 9 2 0 0.0 .889180228114D-05 .454747350886D-12 .000000000000D+01
+ .200000000000D+03 -.905937500000D+02 .392694928749D-08 .305905949251D+01
+ -.464916229248D-05 .146467217710D-01 .111218541861D-04 .515359329224D+04
+ .720000000000D+04 .180676579475D-06 -.248304348633D+01 -.191852450371D-06
+ .976962943937D+00 .168750000000D+03 -.189609092403D+01 -.753995692661D-08
+ .764317551180D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.279396772385D-08 .968000000000D+03
+ .600000000000D+01 .400000000000D+01
+26 00 4 9 2 0 0.0 .343976076692D-03 .263753463514D-10 .000000000000D+01
+ .173000000000D+03 .148750000000D+02 .477341311753D-08 .135384298481D+01
+ .107474625111D-05 .119682099903D-01 .796280801296D-05 .515373517036D+04
+ .720000000000D+04 .931322574616D-08 -.147654535428D+01 .175088644028D-06
+ .962793555370D+00 .224375000000D+03 .621537159918D-01 -.815426822943D-08
+ .222866426138D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.651925802231D-08 .685000000000D+03
+ .600000000000D+01 .400000000000D+01
+13 00 4 9 2 0 0.0 -.673008617014D-03 -.229647412198D-10 .000000000000D+01
+ .160000000000D+02 .900000000000D+01 .462912139291D-08 -.309947591942D+01
+ .473111867905D-06 .261789024807D-02 .811740756035D-05 .515380358505D+04
+ .720000000000D+04 -.968575477600D-07 -.148223452858D+01 .260770320892D-07
+ .963936182165D+00 .223125000000D+03 -.561096161119D+00 -.801140513575D-08
+ .414660129402D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.121071934700D-07 .784000000000D+03
+ .600000000000D+01 .400000000000D+01
+24 00 4 9 2 0 0.0 .692430417985D-03 .112549969344D-10 .000000000000D+01
+ .195000000000D+03 -.573750000000D+02 .421553273672D-08 -.633580562785D+00
+ -.297091901302D-05 .885261967778D-02 .400282442570D-05 .515374859238D+04
+ .720000000000D+04 -.100582838059D-06 .274167786744D+01 .931322574616D-08
+ .986917451930D+00 .320187500000D+03 -.170110306440D+01 -.827034449305D-08
+ -.101075638777D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.931322574616D-09 .195000000000D+03
+ .600000000000D+01 .400000000000D+01
+30 00 4 9 2 0 0.0 -.164322555065D-04 -.147792889038D-11 .000000000000D+01
+ .610000000000D+02 .528125000000D+02 .453733185523D-08 -.312710684023D+01
+ .279955565929D-05 .554548786022D-02 .110473483801D-04 .515369513321D+04
+ .720000000000D+04 .633299350738D-07 .596010813534D+00 -.931322574616D-08
+ .944875031072D+00 .157375000000D+03 .147830475026D+01 -.786711341114D-08
+ -.322156276245D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.791624188423D-08 .610000000000D+02
+ .600000000000D+01 .400000000000D+01
+ 8 00 4 9 2 0 0.0 .708011910319D-03 .454747350886D-12 .000000000000D+01
+ .232000000000D+03 -.217812500000D+02 .486484549748D-08 .597655036903D-01
+ -.123865902424D-05 .756750302389D-02 .695511698723D-05 .515371695519D+04
+ .720000000000D+04 -.104308128357D-06 -.405562428206D+00 -.800937414169D-07
+ .958074393770D+00 .246218750000D+03 .184743763488D+01 -.829641700764D-08
+ -.356086260993D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.419095158577D-08 .232000000000D+03
+ .846000000000D+03 .400000000000D+01
+ 9 00 4 9 2 0 0.0 -.395360402763D-04 -.170530256582D-11 .000000000000D+01
+ .109000000000D+03 -.230000000000D+02 .529914930227D-08 -.490580358572D+00
+ -.124052166939D-05 .100804441608D-01 .655837357044D-05 .515368806839D+04
+ .720000000000D+04 .856816768646D-07 -.451021166545D+00 .165775418282D-06
+ .943999932495D+00 .242593750000D+03 .581628308525D+00 -.852464079979D-08
+ -.414660129402D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.558793544769D-08 .365000000000D+03
+ .174600000000D+04 .400000000000D+01
+21 00 4 9 2 0 0.0 .628270208836D-05 .795807864051D-12 .000000000000D+01
+ .123000000000D+03 -.109781250000D+03 .404481133977D-08 .312679520065D+01
+ -.562146306038D-05 .160276150564D-01 .110547989607D-04 .515369010544D+04
+ .720000000000D+04 -.111758708954D-06 -.252378090819D+01 -.204890966415D-06
+ .973901231947D+00 .172062500000D+03 -.255745275172D+01 -.756531512574D-08
+ .750031241812D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.232830643654D-08 .123000000000D+03
+ .324600000000D+04 .400000000000D+01
+ .
+ .
+ .
+ .
+ .
+ .
+ 6 00 4 9 23 59 44.0 .163167715073D-05 .000000000000D+01 .000000000000D+01
+ .163000000000D+03 .115156250000D+03 .469662420468D-08 -.128848168781D+01
+ .595301389694D-05 .665864639450D-02 .708550214768D-05 .515376416969D+04
+ .863840000000D+05 .173225998878D-06 .166879520765D+01 .372529029846D-08
+ .949008522197D+00 .231875000000D+03 -.241617757223D+01 -.825355807954D-08
+ .179293182566D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .163000000000D+03
+ .792060000000D+05 .400000000000D+01
+18 00 4 10 0 0 0.0 .337287783623D-04 .341060513165D-12 .000000000000D+01
+ .190000000000D+02 -.160937500000D+02 .482805825086D-08 .564503290011D+00
+ -.992789864540D-06 .736587739084D-02 .931695103645D-05 .515377211189D+04
+ .864000000000D+05 -.912696123123D-07 -.152826194122D+01 -.108033418655D-06
+ .949671014890D+00 .195406250000D+03 .187279612020D+01 -.824641492485D-08
+ .268225458381D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .275000000000D+03
+ .792060000000D+05 .400000000000D+01
+30 00 4 9 23 59 44.0 -.165509991348D-04 -.147792889038D-11 .000000000000D+01
+ .830000000000D+02 .279062500000D+02 .470483883257D-08 .213944673940D+01
+ .141561031342D-05 .554110133089D-02 .978074967861D-05 .515368985939D+04
+ .863840000000D+05 .141561031342D-06 .595369255199D+00 -.745058059692D-07
+ .944846866973D+00 .180531250000D+03 .147811569005D+01 -.798997567170D-08
+ -.344657213499D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.791624188423D-08 .830000000000D+02
+ .792060000000D+05 .400000000000D+01
+17 00 4 10 0 0 0.0 -.250512734056D-03 -.159161572810D-11 .000000000000D+01
+ .205000000000D+03 -.232187500000D+02 .429625038464D-08 -.163301242893D+01
+ -.136345624924D-05 .114995198091D-01 .324659049511D-05 .515352962303D+04
+ .864000000000D+05 -.577419996262D-07 .281104428159D+01 -.169500708580D-06
+ .984493902843D+00 .332593750000D+03 .294509301588D+01 -.825748681461D-08
+ .124648049234D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .205000000000D+03
+ .792360000000D+05 .400000000000D+01
+23 00 4 10 0 0 0.0 .892858952284D-05 .454747350886D-12 .000000000000D+01
+ .226000000000D+03 -.111000000000D+03 .402838208400D-08 .204480412470D+01
+ -.595673918724D-05 .146519975970D-01 .812299549580D-05 .515359183311D+04
+ .864000000000D+05 .428408384323D-07 -.248366336275D+01 -.322237610817D-06
+ .976965435286D+00 .231937500000D+03 -.189569348868D+01 -.777353808478D-08
+ -.564309220030D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.279396772385D-08 .738000000000D+03
+ .829860000000D+05 .400000000000D+01
+22 00 4 10 0 0 0.0 .358670484275D-03 -.110276232590D-10 .000000000000D+01
+ .111000000000D+03 .133750000000D+02 .506949687918D-08 .149993500641D+01
+ .840052962303D-06 .130276182899D-01 .984407961369D-05 .515384736824D+04
+ .864000000000D+05 -.175088644028D-06 .559088876593D+00 .521540641785D-07
+ .934297400437D+00 .179093750000D+03 .562029747161D+00 -.833784730481D-08
+ -.520378818724D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.372529029846D-08 .367000000000D+03
+ .858060000000D+05 .400000000000D+01
+ 8 00 4 10 0 0 0.0 .708049628884D-03 .227373675443D-12 .000000000000D+01
+ .190000000000D+02 -.515625000000D+01 .487127433670D-08 -.954908384499D+00
+ -.301748514175D-06 .756483781151D-02 .716187059879D-05 .515371685982D+04
+ .864000000000D+05 -.117346644402D-06 -.406210024004D+00 .223517417908D-07
+ .958061239211D+00 .243375000000D+03 .184747522164D+01 -.826927301984D-08
+ -.835749098019D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.419095158577D-08 .190000000000D+02
+ .863160000000D+05 .400000000000D+01
+17 00 4 10 0 0 0.0 -.250512734056D-03 -.159161572810D-11 .000000000000D+01
+ .205000000000D+03 -.232187500000D+02 .429625038464D-08 -.163301242893D+01
+ -.136345624924D-05 .114995198091D-01 .324659049511D-05 .515352962303D+04
+ .864000000000D+05 -.577419996262D-07 .281104428159D+01 -.169500708580D-06
+ .984493902843D+00 .332593750000D+03 .294509301588D+01 -.825748681461D-08
+ .124648049234D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .205000000000D+03
+ .863760000000D+05 .400000000000D+01
+10 00 4 9 23 59 44.0 .493335537612D-04 .454747350886D-12 .000000000000D+01
+ .170000000000D+03 -.993750000000D+02 .422803325741D-08 .194280654160D+01
+ -.489130616188D-05 .409883516841D-02 .867061316967D-05 .515359880066D+04
+ .863840000000D+05 .633299350738D-07 -.253040833085D+01 .145286321640D-06
+ .974400072383D+00 .219281250000D+03 -.990254880091D-01 -.799211861811D-08
+ -.992898501065D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.186264514923D-08 .170000000000D+03
+ .863460000000D+05 .400000000000D+01
+26 00 4 10 0 0 0.0 .346053857356D-03 .262616595137D-10 .000000000000D+01
+ .203000000000D+03 -.236250000000D+02 .462054960730D-08 .338511381821D+00
+ -.128895044327D-05 .119717431953D-01 .913441181183D-05 .515373644257D+04
+ .864000000000D+05 .160187482834D-06 -.147717802978D+01 .949949026108D-07
+ .962829629467D+00 .200281250000D+03 .626838672632D-01 -.814855370568D-08
+ .285726187357D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.651925802231D-08 .459000000000D+03
+ .863460000000D+05 .400000000000D+01
+22 00 4 10 0 0 0.0 .358670484275D-03 -.110276232590D-10 .000000000000D+01
+ .111000000000D+03 .133750000000D+02 .506949687918D-08 .149993500641D+01
+ .840052962303D-06 .130276182899D-01 .984407961369D-05 .515384736824D+04
+ .864000000000D+05 -.175088644028D-06 .559088876593D+00 .521540641785D-07
+ .934297400437D+00 .179093750000D+03 .562029747161D+00 -.833784730481D-08
+ -.520378818724D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.372529029846D-08 .367000000000D+03
+ .863460000000D+05 .400000000000D+01
+23 00 4 10 0 0 0.0 .892858952284D-05 .454747350886D-12 .000000000000D+01
+ .226000000000D+03 -.111000000000D+03 .402838208400D-08 .204480412470D+01
+ -.595673918724D-05 .146519975970D-01 .812299549580D-05 .515359183311D+04
+ .864000000000D+05 .428408384323D-07 -.248366336275D+01 -.322237610817D-06
+ .976965435286D+00 .231937500000D+03 -.189569348868D+01 -.777353808478D-08
+ -.564309220030D-10 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.279396772385D-08 .738000000000D+03
+ .863460000000D+05 .400000000000D+01
+24 00 4 10 0 0 0.0 .693322159350D-03 .112549969344D-10 .000000000000D+01
+ .219000000000D+03 -.207187500000D+02 .421874715632D-08 -.164834618179D+01
+ -.802800059319D-06 .885061838199D-02 .303238630295D-05 .515374885559D+04
+ .864000000000D+05 .651925802231D-07 .274103252161D+01 .132247805595D-06
+ .986908675885D+00 .334156250000D+03 -.170124785525D+01 -.811462372093D-08
+ .500020827874D-11 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.931322574616D-09 .219000000000D+03
+ .863460000000D+05 .400000000000D+01
+13 00 4 10 0 0 0.0 -.674818176776D-03 -.227373675443D-10 .000000000000D+01
+ .600000000000D+01 -.130625000000D+02 .451661670664D-08 .216653066637D+01
+ -.642612576485D-06 .262047967408D-02 .928342342377D-05 .515380464745D+04
+ .864000000000D+05 -.745058059692D-08 -.148286537397D+01 .465661287308D-07
+ .963972361592D+00 .199656250000D+03 -.559161763560D+00 -.795568852922D-08
+ .300012496725D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.121071934700D-07 .262000000000D+03
+ .863460000000D+05 .400000000000D+01
+30 00 4 9 23 59 44.0 -.165509991348D-04 -.147792889038D-11 .000000000000D+01
+ .830000000000D+02 .279062500000D+02 .470483883257D-08 .213944673940D+01
+ .141561031342D-05 .554110133089D-02 .978074967861D-05 .515368985939D+04
+ .863840000000D+05 .141561031342D-06 .595369255199D+00 -.745058059692D-07
+ .944846866973D+00 .180531250000D+03 .147811569005D+01 -.798997567170D-08
+ -.344657213499D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.791624188423D-08 .830000000000D+02
+ .863460000000D+05 .400000000000D+01
+ 6 00 4 9 23 59 44.0 .163167715073D-05 .000000000000D+01 .000000000000D+01
+ .163000000000D+03 .115156250000D+03 .469662420468D-08 -.128848168781D+01
+ .595301389694D-05 .665864639450D-02 .708550214768D-05 .515376416969D+04
+ .863840000000D+05 .173225998878D-06 .166879520765D+01 .372529029846D-08
+ .949008522197D+00 .231875000000D+03 -.241617757223D+01 -.825355807954D-08
+ .179293182566D-09 .100000000000D+01 .105700000000D+04 .000000000000D+01
+ .480000000000D+02 .000000000000D+01 -.512227416039D-08 .163000000000D+03
+ .863460000000D+05 .400000000000D+01
diff --git a/dev/tests/RinexEphemerisStore/Logs/wiperTest.txt b/dev/tests/RinexEphemerisStore/Logs/wiperTest.txt
new file mode 100644
index 0000000..31aca91
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/wiperTest.txt
@@ -0,0 +1,31 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 8 entries.
+PRN 1 TOE 01/31/2006 11:59:44 TOC 215984.000 HOW 208806.000 KEY 01/31/2006 09:59:44
+PRN 1 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 1 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 1 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 1 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 1 TOE 01/31/2006 21:59:44 TOC 251984.000 HOW 250056.000 KEY 01/31/2006 19:59:44
+PRN 1 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 1 TOE 01/31/2006 23:59:44 TOC 259184.000 HOW 252006.000 KEY 01/31/2006 21:59:44
+ BCE map for satellite 15 has 7 entries.
+PRN 15 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 15 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 15 TOE 01/31/2006 16:00:00 TOC 230400.000 HOW 223206.000 KEY 01/31/2006 14:00:00
+PRN 15 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 15 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237606.000 KEY 01/31/2006 18:00:00
+PRN 15 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 15 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ BCE map for satellite 32 has 8 entries.
+PRN 32 TOE 01/31/2006 12:00:00 TOC 216000.000 HOW 208806.000 KEY 01/31/2006 10:00:00
+PRN 32 TOE 01/31/2006 13:59:44 TOC 223184.000 HOW 219786.000 KEY 01/31/2006 11:59:44
+PRN 32 TOE 01/31/2006 14:00:00 TOC 223200.000 HOW 216006.000 KEY 01/31/2006 12:00:00
+PRN 32 TOE 01/31/2006 15:59:44 TOC 230384.000 HOW 223206.000 KEY 01/31/2006 13:59:44
+PRN 32 TOE 01/31/2006 18:00:00 TOC 237600.000 HOW 230406.000 KEY 01/31/2006 16:00:00
+PRN 32 TOE 01/31/2006 20:00:00 TOC 244800.000 HOW 237666.000 KEY 01/31/2006 18:00:00
+PRN 32 TOE 01/31/2006 22:00:00 TOC 252000.000 HOW 244806.000 KEY 01/31/2006 20:00:00
+PRN 32 TOE 02/01/2006 00:00:00 TOC 259200.000 HOW 252006.000 KEY 01/31/2006 22:00:00
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/Logs/wiperTest2.txt b/dev/tests/RinexEphemerisStore/Logs/wiperTest2.txt
new file mode 100644
index 0000000..23380d9
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/Logs/wiperTest2.txt
@@ -0,0 +1,8 @@
+Dump of RinexEphemerisStore:
+TestRinex06.031
+Dump of BCEphemerisStore:
+ BCE map for satellite 1 has 0 entries.
+ BCE map for satellite 15 has 0 entries.
+ BCE map for satellite 32 has 0 entries.
+ End of BCE maps.
+
diff --git a/dev/tests/RinexEphemerisStore/RinexEphemerisStore.cpp b/dev/tests/RinexEphemerisStore/RinexEphemerisStore.cpp
new file mode 120000
index 0000000..865c12c
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/RinexEphemerisStore.cpp
@@ -0,0 +1 @@
+../../src/RinexEphemerisStore.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexEphemerisStore/RinexEphemerisStore.hpp b/dev/tests/RinexEphemerisStore/RinexEphemerisStore.hpp
new file mode 120000
index 0000000..d17be57
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/RinexEphemerisStore.hpp
@@ -0,0 +1 @@
+../../src/RinexEphemerisStore.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexEphemerisStore/TestRinex06.031 b/dev/tests/RinexEphemerisStore/TestRinex06.031
new file mode 100644
index 0000000..5d88357
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/TestRinex06.031
@@ -0,0 +1,339 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+fic2rin 07/10/2006 09:16:03 PGM / RUN BY / DATE
+ END OF HEADER
+ 1 06 1 31 2 0 0.0 .341343693435D-04 .193267624127D-11 .000000000000D+00
+ .670000000000D+02 .115968750000D+03 .434053794369D-08 .126681177927D+01
+ .589340925217D-05 .632685329765D-02 .352226197720D-05 .515367689323D+04
+ .180000000000D+06 -.102445483208D-06 -.171526967635D+01 -.117346644402D-06
+ .986356140504D+00 .327531250000D+03 -.171098328249D+01 -.834177603988D-08
+ .365729519817D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .670000000000D+02
+ .172806000000D+06 .400000000000D+01
+15 06 1 31 2 0 0.0 .558263156563D-03 .591171556152D-11 .000000000000D+00
+ .172000000000D+03 -.405000000000D+02 .495913513931D-08 -.906095982535D-01
+ -.224076211452D-05 .935129553545D-02 .747665762901D-05 .515370759583D+04
+ .180000000000D+06 .521540641785D-07 .251239340464D+01 -.819563865662D-07
+ .958205829645D+00 .232312500000D+03 .254594306232D+01 -.835570519152D-08
+ -.509306928964D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .684000000000D+03
+ .172806000000D+06 .400000000000D+01
+32 06 1 31 2 0 0.0 .211610458791D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.676875000000D+02 .439589739249D-08 -.223653823215D+01
+ -.353716313839D-05 .871090020519D-02 .132359564304D-04 .515360315704D+04
+ .180000000000D+06 .121071934700D-06 .307566661900D+00 -.931322574615D-07
+ .944623504252D+00 .115000000000D+03 .129523926775D+01 -.775710882900D-08
+ .108933108930D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .436000000000D+03
+ .172806000000D+06 .400000000000D+01
+ 1 06 1 31 4 0 0.0 .341478735209D-04 .193267624127D-11 .000000000000D+00
+ .680000000000D+02 .112937500000D+03 .425303429881D-08 .231692690748D+01
+ .577233731747D-05 .632700859569D-02 .317767262459D-05 .515367754555D+04
+ .187200000000D+06 .128522515297D-06 -.171532877970D+01 -.670552253723D-07
+ .986359781707D+00 .330625000000D+03 -.171092164536D+01 -.811605235187D-08
+ .352514683652D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .680000000000D+02
+ .180006000000D+06 .400000000000D+01
+ 1 06 1 31 4 0 0.0 .341478735209D-04 .193267624127D-11 .000000000000D+00
+ .680000000000D+02 .112937500000D+03 .425303429881D-08 .231692690748D+01
+ .577233731747D-05 .632700859569D-02 .317767262459D-05 .515367754555D+04
+ .187200000000D+06 .128522515297D-06 -.171532877970D+01 -.670552253723D-07
+ .986359781707D+00 .330625000000D+03 -.171092164536D+01 -.811605235187D-08
+ .352514683652D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .680000000000D+02
+ .181806000000D+06 .400000000000D+01
+15 06 1 31 4 0 0.0 .558305997401D-03 .591171556152D-11 .000000000000D+00
+ .173000000000D+03 -.451562500000D+02 .484091592929D-08 .959460894860D+00
+ -.242330133915D-05 .935316085815D-02 .679865479469D-05 .515371152878D+04
+ .187200000000D+06 .160187482834D-06 .251233346304D+01 -.353902578354D-07
+ .958202504432D+00 .245906250000D+03 .254603427966D+01 -.827070165078D-08
+ -.520021660989D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .685000000000D+03
+ .180006000000D+06 .400000000000D+01
+32 06 1 31 4 0 0.0 .211857259274D-04 .341060513165D-11 .000000000000D+00
+ .181000000000D+03 -.728750000000D+02 .454197490577D-08 -.118609023742D+01
+ -.384636223316D-05 .871113361791D-02 .124983489513D-04 .515360673523D+04
+ .187200000000D+06 -.745058059692D-08 .307510597028D+00 .240281224251D-06
+ .944622469969D+00 .130031250000D+03 .129501396667D+01 -.809319425688D-08
+ -.500020827875D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .437000000000D+03
+ .180006000000D+06 .400000000000D+01
+ 1 06 1 31 6 0 0.0 .341618433595D-04 .193267624127D-11 .000000000000D+00
+ .630000000000D+02 .112750000000D+03 .425553440295D-08 -.291605435972D+01
+ .586546957493D-05 .632628449239D-02 .357814133167D-05 .515367875481D+04
+ .194400000000D+06 .154599547386D-06 -.171538734177D+01 .484287738800D-07
+ .986362375461D+00 .323406250000D+03 -.171094881175D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .575000000000D+03
+ .187206000000D+06 .400000000000D+01
+15 06 1 31 6 0 0.0 .558348838240D-03 .591171556152D-11 .000000000000D+00
+ .174000000000D+03 -.489062500000D+02 .484555897984D-08 .200969128199D+01
+ -.245310366154D-05 .935331289656D-02 .662170350552D-05 .515371031952D+04
+ .194400000000D+06 .633299350739D-07 .251227486146D+01 .763684511185D-07
+ .958198744732D+00 .249906250000D+03 .254596378017D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .686000000000D+03
+ .187206000000D+06 .400000000000D+01
+32 06 1 31 6 0 0.0 .212104059756D-04 .341060513165D-11 .000000000000D+00
+ .182000000000D+03 -.865312500000D+02 .466233706220D-08 -.135935973227D+00
+ -.446103513241D-05 .870950485114D-02 .123213976622D-04 .515360359001D+04
+ .194400000000D+06 -.968575477600D-07 .307451597542D+00 .109896063805D-06
+ .944622209570D+00 .133937500000D+03 .129508259801D+01 -.818676958324D-08
+ .142863093678D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .438000000000D+03
+ .187206000000D+06 .400000000000D+01
+ 1 06 1 31 5 59 44.0 .341548584402D-04 .181898940355D-11 .000000000000D+00
+ .890000000000D+02 .112750000000D+03 .425553440295D-08 -.291838707330D+01
+ .586546957493D-05 .632628635503D-02 .357814133167D-05 .515367874336D+04
+ .194384000000D+06 .154599547386D-06 -.171538720133D+01 .484287738800D-07
+ .986362373998D+00 .323406250000D+03 -.171094975533D+01 -.811176645906D-08
+ .402516766439D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .601000000000D+03
+ .192216000000D+06 .400000000000D+01
+15 06 1 31 5 59 44.0 .558349303901D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.489062500000D+02 .484555897984D-08 .200735802421D+01
+ -.245310366154D-05 .935331149958D-02 .662170350552D-05 .515371031570D+04
+ .194384000000D+06 .633299350739D-07 .251227499751D+01 .763684511185D-07
+ .958198768139D+00 .249906250000D+03 .254596332667D+01 -.817534053575D-08
+ -.595024785171D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .708000000000D+03
+ .193626000000D+06 .400000000000D+01
+ 1 06 1 31 7 59 44.0 .341683626175D-04 .181898940355D-11 .000000000000D+00
+ .900000000000D+02 .106562500000D+03 .414945855589D-08 -.186812836407D+01
+ .571832060814D-05 .632504827809D-02 .402703881264D-05 .515368111992D+04
+ .201584000000D+06 .279396772385D-07 -.171544585411D+01 .987201929092D-07
+ .986365820633D+00 .313812500000D+03 -.171103396675D+01 -.806569311135D-08
+ .489306095849D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .346000000000D+03
+ .194406000000D+06 .400000000000D+01
+15 06 1 31 7 59 44.0 .558392144740D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.434375000000D+02 .485734518507D-08 .305759167950D+01
+ -.215694308281D-05 .935426482465D-02 .629760324955D-05 .515370812416D+04
+ .201584000000D+06 -.223517417908D-07 .251221588100D+01 .104308128357D-06
+ .958194787539D+00 .256125000000D+03 .254589149446D+01 -.814212486647D-08
+ -.532522181686D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .453000000000D+03
+ .194406000000D+06 .400000000000D+01
+32 06 1 31 8 0 0.0 .212350860238D-04 .341060513165D-11 .000000000000D+00
+ .183000000000D+03 -.100750000000D+03 .460804908660D-08 .914109252365D+00
+ -.517070293427D-05 .871139601804D-02 .131167471409D-04 .515360806274D+04
+ .201600000000D+06 -.134110450745D-06 .307393064726D+00 -.111758708954D-07
+ .944621931615D+00 .120312500000D+03 .129526134611D+01 -.817498337801D-08
+ -.639312344211D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .439000000000D+03
+ .194406000000D+06 .400000000000D+01
+ 1 06 1 31 10 0 0.0 .341818667948D-04 .181898940355D-11 .000000000000D+00
+ .910000000000D+02 .106437500000D+03 .425303429881D-08 -.816009861720D+00
+ .566430389881D-05 .632467505056D-02 .520423054695D-05 .515367639923D+04
+ .208800000000D+06 -.135973095894D-06 -.171550476728D+01 .335276126862D-07
+ .986368607492D+00 .295875000000D+03 -.171064293460D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .347000000000D+03
+ .201606000000D+06 .400000000000D+01
+15 06 1 31 10 0 0.0 .558434985578D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.403125000000D+02 .491627621121D-08 -.217313467942D+01
+ -.199861824512D-05 .935517495964D-02 .675022602081D-05 .515370630646D+04
+ .208800000000D+06 -.150874257088D-06 .251215686981D+01 .894069671631D-07
+ .958190482171D+00 .249781250000D+03 .254592935625D+01 -.824570060939D-08
+ -.529307762079D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .454000000000D+03
+ .201606000000D+06 .400000000000D+01
+32 06 1 31 10 0 0.0 .212597660720D-04 .341060513165D-11 .000000000000D+00
+ .184000000000D+03 -.100281250000D+03 .461126350621D-08 .196454132616D+01
+ -.529922544956D-05 .871198589448D-02 .137276947498D-04 .515360478783D+04
+ .208800000000D+06 .558793544769D-08 .307334398786D+00 -.212341547012D-06
+ .944622565059D+00 .102875000000D+03 .129505117306D+01 -.796354599937D-08
+ -.464305054455D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .440000000000D+03
+ .201606000000D+06 .400000000000D+01
+ 1 06 1 31 9 59 44.0 .341916456819D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .106437500000D+03 .425303429881D-08 -.818341978428D+00
+ .566430389881D-05 .632467807736D-02 .520423054695D-05 .515367637444D+04
+ .208784000000D+06 -.135973095894D-06 -.171550464586D+01 .335276126862D-07
+ .986368594325D+00 .295875000000D+03 -.171064445164D+01 -.823784313923D-08
+ .506806824824D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .115000000000D+03
+ .208446000000D+06 .400000000000D+01
+ 1 06 1 31 11 59 44.0 .342056155205D-04 .193267624127D-11 .000000000000D+00
+ .116000000000D+03 .113406250000D+03 .415874465698D-08 .231892822330D+00
+ .578165054321D-05 .632588984445D-02 .529363751411D-05 .515367877960D+04
+ .215984000000D+06 -.745058059692D-07 -.171556435925D+01 -.279396772385D-07
+ .986372320378D+00 .290062500000D+03 -.171070282354D+01 -.827605901679D-08
+ .533236497155D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .372000000000D+03
+ .208806000000D+06 .400000000000D+01
+15 06 1 31 12 0 0.0 .558477826416D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.394062500000D+02 .489556106263D-08 -.112295671303D+01
+ -.219792127609D-05 .935519312043D-02 .676140189171D-05 .515370655060D+04
+ .216000000000D+06 -.134110450745D-06 .251209679215D+01 -.465661287308D-07
+ .958186633234D+00 .249156250000D+03 .254591534295D+01 -.832106089130D-08
+ -.494663461862D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.232830643654D-08 .455000000000D+03
+ .208806000000D+06 .400000000000D+01
+32 06 1 31 12 0 0.0 .212844461203D-04 .341060513165D-11 .000000000000D+00
+ .185000000000D+03 -.842187500000D+02 .455768984608D-08 .301468049889D+01
+ -.437162816525D-05 .871008832473D-02 .138413161039D-04 .515360840988D+04
+ .216000000000D+06 .115483999252D-06 .307277460551D+00 -.130385160446D-06
+ .944622686481D+00 .985625000000D+02 .129513504508D+01 -.791318675885D-08
+ .357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .441000000000D+03
+ .208806000000D+06 .400000000000D+01
+ 1 06 1 31 14 0 0.0 .342191196978D-04 .193267624127D-11 .000000000000D+00
+ .117000000000D+03 .120250000000D+03 .414195824347D-08 .128450940586D+01
+ .622309744358D-05 .632508727722D-02 .504590570927D-05 .515367679787D+04
+ .223200000000D+06 -.763684511185D-07 -.171562415603D+01 -.111758708954D-06
+ .986376251239D+00 .293375000000D+03 -.171080977163D+01 -.823998608564D-08
+ .543236913712D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .373000000000D+03
+ .216006000000D+06 .400000000000D+01
+15 06 1 31 14 0 0.0 .558520667255D-03 .591171556152D-11 .000000000000D+00
+ .200000000000D+03 -.421875000000D+02 .494806324955D-08 -.727814120722D-01
+ -.241957604885D-05 .935553596355D-02 .681355595589D-05 .515370721245D+04
+ .223200000000D+06 .651925802231D-07 .251203754543D+01 -.137835741043D-06
+ .958182251794D+00 .248468750000D+03 .254590310711D+01 -.840392148563D-08
+ -.662527596934D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .456000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 14 0 0.0 .213091261685D-04 .341060513165D-11 .000000000000D+00
+ .180000000000D+03 -.714375000000D+02 .470841040991D-08 -.221848770144D+01
+ -.376813113689D-05 .871319556609D-02 .128187239170D-04 .515360179138D+04
+ .223200000000D+06 .128522515297D-06 .307219891799D+00 .167638063431D-07
+ .944623208743D+00 .122156250000D+03 .129534134872D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.838190317154D-08 .692000000000D+03
+ .216006000000D+06 .400000000000D+01
+32 06 1 31 13 59 44.0 .213137827814D-04 .341060513165D-11 .000000000000D+00
+ .206000000000D+03 -.714375000000D+02 .470841040991D-08 -.222082139957D+01
+ -.376813113689D-05 .871319742873D-02 .128187239170D-04 .515360178947D+04
+ .223184000000D+06 .128522515297D-06 .307220032239D+00 .167638063431D-07
+ .944623207280D+00 .122156250000D+03 .129534120242D+01 -.791461538979D-08
+ .113219001740D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .206000000000D+03
+ .219786000000D+06 .400000000000D+01
+32 06 1 31 15 59 44.0 .213384628296D-04 .341060513165D-11 .000000000000D+00
+ .207000000000D+03 -.765312500000D+02 .471126767178D-08 -.117036120409D+01
+ -.385381281376D-05 .871346553322D-02 .122822821140D-04 .515360552979D+04
+ .230384000000D+06 -.186264514923D-07 .307162874567D+00 .223517417908D-06
+ .944622831310D+00 .137875000000D+03 .129510646405D+01 -.814748223248D-08
+ .507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .207000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 16 0 0.0 .342330895364D-04 .193267624127D-11 .000000000000D+00
+ .118000000000D+03 .119093750000D+03 .395159317115D-08 .233457122826D+01
+ .614114105701D-05 .632507458795D-02 .485964119434D-05 .515367810249D+04
+ .230400000000D+06 .173225998878D-06 -.171568232750D+01 .000000000000D+00
+ .986381295380D+00 .298875000000D+03 -.171069670561D+01 -.797497504686D-08
+ .513592821774D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .374000000000D+03
+ .223206000000D+06 .400000000000D+01
+15 06 1 31 16 0 0.0 .558563508093D-03 .591171556152D-11 .000000000000D+00
+ .201000000000D+03 -.454375000000D+02 .496199240119D-08 .977276156160D+00
+ -.264123082161D-05 .935740733985D-02 .570528209209D-05 .515371125984D+04
+ .230400000000D+06 .119209289551D-06 .251197710643D+01 -.540167093277D-07
+ .958177516328D+00 .262937500000D+03 .254600790909D+01 -.837927760197D-08
+ -.683242745517D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .201000000000D+03
+ .223206000000D+06 .400000000000D+01
+ 1 06 1 31 18 0 0.0 .342465937138D-04 .193267624127D-11 .000000000000D+00
+ .119000000000D+03 .114312500000D+03 .394552148966D-08 -.289838036803D+01
+ .597164034843D-05 .632530450821D-02 .505894422531D-05 .515367750549D+04
+ .237600000000D+06 -.111758708954D-07 -.171573859426D+01 -.372529029846D-08
+ .986384717146D+00 .297218750000D+03 -.171075624345D+01 -.788925719066D-08
+ .383230248792D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .375000000000D+03
+ .230406000000D+06 .400000000000D+01
+15 06 1 31 18 0 0.0 .558606348932D-03 .591171556152D-11 .000000000000D+00
+ .196000000000D+03 -.435625000000D+02 .509914097112D-08 .202742773297D+01
+ -.202842056751D-05 .935770059004D-02 .563822686672D-05 .515371146965D+04
+ .237600000000D+06 .199303030968D-06 .251191656064D+01 .242143869400D-07
+ .958172631645D+00 .267000000000D+03 .254601763457D+01 -.839249243814D-08
+ -.630740558590D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .964000000000D+03
+ .230406000000D+06 .400000000000D+01
+32 06 1 31 18 0 0.0 .213631428778D-04 .341060513165D-11 .000000000000D+00
+ .208000000000D+03 -.890312500000D+02 .472555398115D-08 -.117860252530D+00
+ -.479258596897D-05 .871195329819D-02 .121705234051D-04 .515360266304D+04
+ .237600000000D+06 -.104308128357D-06 .307103412798D+00 .987201929092D-07
+ .944622996619D+00 .142281250000D+03 .129516376363D+01 -.823248577322D-08
+ .657170230921D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .208000000000D+03
+ .230406000000D+06 .400000000000D+01
+ 1 06 1 31 20 0 0.0 .342600978911D-04 .193267624127D-11 .000000000000D+00
+ .120000000000D+03 .101968750000D+03 .394802159380D-08 -.184801896196D+01
+ .529736280441D-05 .632367632352D-02 .553019344807D-05 .515368125343D+04
+ .244800000000D+06 .109896063805D-06 -.171579509654D+01 .633299350739D-07
+ .986386905671D+00 .288843750000D+03 -.171094499207D+01 -.797426073140D-08
+ .296440919383D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .376000000000D+03
+ .237606000000D+06 .400000000000D+01
+15 06 1 31 20 0 0.0 .558649189770D-03 .591171556152D-11 .000000000000D+00
+ .197000000000D+03 -.360000000000D+02 .513557106001D-08 .307768773981D+01
+ -.172853469849D-05 .935899640899D-02 .540725886822D-05 .515370851135D+04
+ .244800000000D+06 -.707805156708D-07 .251185522049D+01 .163912773132D-06
+ .958169255230D+00 .275468750000D+03 .254592151939D+01 -.828748806429D-08
+ -.405016870578D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .709000000000D+03
+ .237606000000D+06 .400000000000D+01
+32 06 1 31 20 0 0.0 .213873572648D-04 .341060513165D-11 .000000000000D+00
+ .209000000000D+03 -.102281250000D+03 .458126225653D-08 .932201625459D+00
+ -.536069273949D-05 .871358159930D-02 .124275684357D-04 .515360659790D+04
+ .244800000000D+06 -.987201929092D-07 .307044717599D+00 -.577419996262D-07
+ .944622946880D+00 .130906250000D+03 .129532648986D+01 -.823534303509D-08
+ -.507163982558D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .209000000000D+03
+ .237666000000D+06 .400000000000D+01
+ 1 06 1 31 22 0 0.0 .342740677297D-04 .193267624127D-11 .000000000000D+00
+ .115000000000D+03 .987812500000D+02 .416945938901D-08 -.798228821000D+00
+ .518187880516D-05 .632309354842D-02 .631809234619D-05 .515367652702D+04
+ .252000000000D+06 -.987201929092D-07 -.171585342747D+01 .745058059692D-08
+ .986388093561D+00 .271312500000D+03 -.171056064545D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.325962901115D-08 .371000000000D+03
+ .244806000000D+06 .400000000000D+01
+15 06 1 31 22 0 0.0 .558691564947D-03 .591171556152D-11 .000000000000D+00
+ .198000000000D+03 -.337500000000D+02 .516735809835D-08 -.215538154240D+01
+ -.159814953804D-05 .935994752217D-02 .596605241299D-05 .515370653725D+04
+ .252000000000D+06 -.197440385818D-06 .251179533886D+01 .856816768646D-07
+ .958166042662D+00 .268281250000D+03 .254597027406D+01 -.836856286995D-08
+ -.385730352932D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .340000000000D+01 .000000000000D+00 -.232830643654D-08 .710000000000D+03
+ .244806000000D+06 .400000000000D+01
+32 06 1 31 22 0 0.0 .214120373130D-04 .341060513165D-11 .000000000000D+00
+ .210000000000D+03 -.102875000000D+03 .450054460860D-08 .198260220117D+01
+ -.529922544956D-05 .871415599249D-02 .131297856569D-04 .515360381126D+04
+ .252000000000D+06 .763684511185D-07 .306985642041D+00 -.229105353355D-06
+ .944623628600D+00 .115656250000D+03 .129514812211D+01 -.802461997192D-08
+ -.357157734196D-11 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .210000000000D+03
+ .244806000000D+06 .400000000000D+01
+ 1 06 1 31 21 59 44.0 .342894345522D-04 .193267624127D-11 .000000000000D+00
+ .141000000000D+03 .987812500000D+02 .416945938901D-08 -.800563293006D+00
+ .518187880516D-05 .632309168577D-02 .631809234619D-05 .515367653465D+04
+ .251984000000D+06 -.987201929092D-07 -.171585326802D+01 .745058059692D-08
+ .986388127208D+00 .271312500000D+03 -.171055998422D+01 -.818998400285D-08
+ .313584490624D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .141000000000D+03
+ .250056000000D+06 .400000000000D+01
+ 1 06 1 31 23 59 44.0 .343038700521D-04 .193267624127D-11 .000000000000D+00
+ .142000000000D+03 .106718750000D+03 .416553065393D-08 .249668416606D+00
+ .565685331821D-05 .632479728665D-02 .687316060066D-05 .515367983246D+04
+ .259184000000D+06 -.745058059692D-08 -.171591281756D+01 -.372529029846D-08
+ .986390524930D+00 .261562500000D+03 -.171061566288D+01 -.823534303509D-08
+ .376444251843D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.325962901115D-08 .142000000000D+03
+ .252006000000D+06 .400000000000D+01
+15 06 2 1 0 0 0.0 .558734405786D-03 .591171556152D-11 .000000000000D+00
+ .199000000000D+03 -.357187500000D+02 .514592863430D-08 -.110524072535D+01
+ -.213272869587D-05 .936006801203D-02 .589340925217D-05 .515370607948D+04
+ .259200000000D+06 -.596046447754D-07 .251173363883D+01 -.800937414169D-07
+ .958163270432D+00 .267156250000D+03 .254599570982D+01 -.851249743683D-08
+ -.269296931584D-09 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .485000000000D+01 .000000000000D+00 -.232830643654D-08 .711000000000D+03
+ .252006000000D+06 .400000000000D+01
+32 06 2 1 0 0 0.0 .214362516999D-04 .341060513165D-11 .000000000000D+00
+ .211000000000D+03 -.873125000000D+02 .435768151493D-08 .303274718753D+01
+ -.445544719696D-05 .871229276527D-02 .133030116558D-04 .515360733604D+04
+ .259200000000D+06 .763684511185D-07 .306929331399D+00 -.372529029846D-08
+ .944623928498D+00 .110812500000D+03 .129522530274D+01 -.784746973576D-08
+ -.882179603464D-10 .100000000000D+01 .136000000000D+04 .000000000000D+00
+ .240000000000D+01 .000000000000D+00 -.838190317154D-08 .211000000000D+03
+ .252006000000D+06 .400000000000D+01
diff --git a/dev/tests/RinexEphemerisStore/makefile b/dev/tests/RinexEphemerisStore/makefile
new file mode 100644
index 0000000..5fe34d2
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/makefile
@@ -0,0 +1,24 @@
+# file: makefile
+# next line has to be changed to the installation-path of CppUnit
+CPPUNIT_PATH=/home/ehagen
+
+xRinexEphemerisStore.tst: xRinexEphemerisStoreM.o xRinexEphemerisStore.o RinexEphemerisStore.o BCEphemerisStore.o
+ g++ -o xRinexEphemerisStore.tst xRinexEphemerisStoreM.o xRinexEphemerisStore.o RinexEphemerisStore.o BCEphemerisStore.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+RinexEphemerisStore.o: RinexEphemerisStore.cpp RinexEphemerisStore.hpp
+ g++ -c RinexEphemerisStore.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -lgpstk -fprofile-arcs -ftest-coverage
+xRinexEphemerisStore.o: xRinexEphemerisStore.cpp xRinexEphemerisStore.hpp
+ g++ -c xRinexEphemerisStore.cpp -I${CPPUNIT_PATH}/include -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xRinexEphemerisStoreM.o: xRinexEphemerisStoreM.cpp
+ g++ -c xRinexEphemerisStoreM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+BCEphemerisStore.o: BCEphemerisStore.cpp BCEphemerisStore.hpp
+ g++ -c BCEphemerisStore.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -lgpstk -fprofile-arcs -ftest-coverage
+
+
+clean:
+ rm -f *.o
+ rm -f *.txt
+ rm -f *.g*
+ rm -f *.*.g*
\ No newline at end of file
diff --git a/dev/tests/RinexEphemerisStore/xRinexEphemerisStore.cpp b/dev/tests/RinexEphemerisStore/xRinexEphemerisStore.cpp
new file mode 100644
index 0000000..1ca328f
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/xRinexEphemerisStore.cpp
@@ -0,0 +1,658 @@
+// file: xRinexEphemerisStore.cpp
+
+#include "xRinexEphemerisStore.hpp"
+
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xRinexEphemerisStore);
+
+
+void xRinexEphemerisStore :: setUp (void)
+{
+}
+
+/*
+**** General test for the RinexEphemerisStore (RES) class
+**** Test to assure the that RES throws its exceptions in the right place and
+**** that it loads the RINEX Nav file correctly
+
+**** To further check this data, please view DumpData.txt for the dumped information
+*/
+
+void xRinexEphemerisStore :: RESTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("DumpData.txt");
+
+ CPPUNIT_ASSERT_NO_THROW(gpstk::RinexEphemerisStore Store);
+ gpstk::RinexEphemerisStore Store;
+ try
+ {
+ CPPUNIT_ASSERT_THROW(Store.loadFile("NotaFILE"),gpstk::Exception);
+ }
+ catch (gpstk::Exception& e)
+ {
+ }
+
+ CPPUNIT_ASSERT_NO_THROW(Store.loadFile("TestRinex06.031"));
+ Store.loadFile("TestRinex06.031");
+ Store.dump(1,DumpData);
+ DumpData.close();
+
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member findEph()
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test finds an Ephemeris for a given
+**** DayTime Time and PRN.
+
+**** To see the ephemeris information for the selected Time and PRN please see
+**** findEph.txt
+*/
+void xRinexEphemerisStore :: BCESfindEphTest (void)
+{
+ ofstream fPRN1;
+ ofstream fPRN15;
+ ofstream fPRN32;
+ fPRN1.open ("Logs/findEph1.txt");
+ fPRN15.open ("Logs/findEph15.txt");
+ fPRN32.open ("Logs/findEph32.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+
+ try
+ {
+ gpstk::DayTime crazy(200000,1,31,2,0,0);
+ CPPUNIT_ASSERT_NO_THROW(Store.findEphemeris(PRN1,Time));
+
+ fPRN1 << Store.findEphemeris(PRN1,Time);
+ fPRN15 << Store.findEphemeris(PRN15,Time);
+ fPRN32 << Store.findEphemeris(PRN32,Time);
+
+ CPPUNIT_ASSERT_THROW(Store.findEphemeris(PRN0,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findEphemeris(PRN33,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findEphemeris(PRN32,crazy),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findEph1.txt","Checks/findEph1.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findEph15.txt","Checks/findEph15.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findEph32.txt","Checks/findEph32.chk"));
+
+}
+
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member getPrnXvt()
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test finds an Xvt for a given
+**** DayTime Time and PRN.
+
+**** To see the Xvt information for the selected Time and PRN please see
+**** getPrnXvt.txt
+*/
+
+void xRinexEphemerisStore :: BCESgetPrnXvtTest (void)
+{
+ ofstream fPRN1;
+ ofstream fPRN15;
+ ofstream fPRN32;
+
+ fPRN1.open ("Logs/getPrnXvt1.txt");
+ fPRN15.open ("Logs/getPrnXvt15.txt");
+ fPRN32.open ("Logs/getPrnXvt32.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.getPrnXvt(PRN1,Time));
+
+ fPRN1 << Store.getPrnXvt(PRN1,Time) << endl;
+ fPRN15 << Store.getPrnXvt(PRN15,Time) << endl;
+ fPRN32 << Store.getPrnXvt(PRN32,Time) << endl;
+
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN0,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN33,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt1.txt","Checks/getPrnXvt1.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt15.txt","Checks/getPrnXvt15.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt32.txt","Checks/getPrnXvt32.chk"));
+}
+
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member getPrnXvt()
+**** This test differs from the previous in that this getPrnXvt() has another parameter
+**** for the IODC
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test finds an Xvt for a given
+**** DayTime Time and PRN and IODC.
+
+**** To see the Xvt information for the selected Time and PRN please see
+**** getPrnXvt2.txt
+*/
+void xRinexEphemerisStore :: BCESgetPrnXvt2Test (void)
+{
+
+ ofstream fPRN1;
+ ofstream fPRN15;
+ ofstream fPRN32;
+
+ fPRN1.open ("Logs/getPrnXvt2_1.txt");
+ fPRN15.open ("Logs/getPrnXvt2_15.txt");
+ fPRN32.open ("Logs/getPrnXvt2_32.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ short IODC0 = 89;
+ short IODC1 = 372;
+ short IODC15 = 455;
+ short IODC32 = 441;
+ short IODC33 = 392;
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+ try
+ {
+ fPRN1 << Store.getPrnXvt(PRN1,Time,IODC1) << endl;
+ fPRN15 << Store.getPrnXvt(PRN15,Time,IODC15) << endl;
+ fPRN32 << Store.getPrnXvt(PRN32,Time,IODC32) << endl;
+
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN0,bTime,IODC0),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.getPrnXvt(PRN33,bTime,IODC33),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt2_1.txt","Checks/getPrnXvt1.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt2_15.txt","Checks/getPrnXvt15.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/getPrnXvt2_32.txt","Checks/getPrnXvt32.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member getPrnHealth()
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Furthermore, this test assures that for a specific PRN
+**** and Time, that SV is as we expect it, health (0).
+*/
+
+void xRinexEphemerisStore :: BCESgetPrnHealthTest (void)
+{
+ const short PRN0 = 0; // Zero PRN (Border test case)
+ const short PRN1 = 1;
+ const short PRN15 = 15;
+ const short PRN32 = 32;
+ const short PRN33 = 33; //Top PRN (33) (Border test case);
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime bTime(2006,1,31,2,0,0); //Border Time (Time of Border test cases)
+
+ try
+ {
+
+
+ CPPUNIT_ASSERT_NO_THROW(Store.getPrnHealth(PRN1,Time));
+
+ CPPUNIT_ASSERT_EQUAL((short) 0,Store.getPrnHealth(PRN1,Time));
+ CPPUNIT_ASSERT_EQUAL((short) 0,Store.getPrnHealth(PRN15,Time));
+ CPPUNIT_ASSERT_EQUAL((short) 0,Store.getPrnHealth(PRN32,Time));
+
+ CPPUNIT_ASSERT_THROW(Store.getPrnHealth(PRN0,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.getPrnHealth(PRN33,bTime),gpstk::EphemerisStore::NoEphemerisFound);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member dump()
+
+**** This test makes sure that dump() behaves as expected. With paramters from
+**** 0-2 with each giving more and more respective information, this information is
+**** then put into txt files.
+
+**** To see the dump with paramter 0, please view DumpData0.txt
+**** To see the dump with paramter 1, pleave view DumpData1.txt
+**** To see the dump with paramter 2, please uncomment the test and view the command
+**** line output (cout).
+*/
+
+void xRinexEphemerisStore :: BCESdumpTest (void)
+{
+ ofstream DumpData0;
+ ofstream DumpData1;
+ ofstream DumpData2;
+ DumpData0.open ("Logs/DumpData0.txt");
+ DumpData1.open ("Logs/DumpData1.txt");
+ DumpData2.open ("Logs/DumpData2.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.dump(0,DumpData0));
+ CPPUNIT_ASSERT_NO_THROW(Store.dump(1,DumpData1));
+ //Code outputs to cout but does pass, just dont want to run that every time
+ //CPPUNIT_ASSERT_NO_THROW(Store.dump(2,DumpData2));
+ //Store.dump(2,DumpData2);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/DumpData0.txt","Checks/DumpData0.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/DumpData1.txt","Checks/DumpData1.chk"));
+ //CPPUNIT_ASSERT(fileEqualTest("Logs/DumpData2.txt","Checks/DumpData2.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member addEphemeris()
+
+**** This test assures that no exceptions are thrown when a an ephemeris, taken from Store
+**** is added to a blank BCES Object. Then the test makes sure that only that Ephemeris
+**** is in the object by checking the start and end times of the Object
+
+**** Question: Why does this eph data begin two hours earlier than it does on the output?
+*/
+
+void xRinexEphemerisStore :: BCESaddEphemerisTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/addEphemerisTest.txt");
+
+
+ gpstk::BCEphemerisStore Blank;
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+ short PRN = 1;
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+ gpstk::DayTime TimeB(2006,1,31,9,59,44);
+ const gpstk::EngEphemeris& eph = Store.findEphemeris(PRN,Time);
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Blank.addEphemeris(eph));
+ Blank.addEphemeris(eph);
+
+ CPPUNIT_ASSERT_EQUAL(TimeB,Blank.getInitialTime());
+ CPPUNIT_ASSERT_EQUAL(TimeB,Blank.getFinalTime());
+
+ Blank.dump(1,DumpData);
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/addEphemerisTest.txt","Checks/addEphemerisTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member edit()
+
+**** This test assures that no exceptions are thrown when we edit a RES object
+**** then after we edit the RES Object, we test to make sure that our edit time
+**** parameters are now the time endpoints of the object.
+
+**** For further inspection of the edit, please view editTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESeditTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/editTest.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime TimeMax(2006,1,31,15,45,0);
+ gpstk::DayTime TimeMin(2006,1,31,3,0,0);
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.edit(TimeMin, TimeMax));
+ Store.edit(TimeMin, TimeMax);
+ CPPUNIT_ASSERT_EQUAL(TimeMin,Store.getInitialTime());
+ CPPUNIT_ASSERT_EQUAL(TimeMax,Store.getFinalTime());
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/editTest.txt","Checks/editTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member wiper()
+
+**** This test assures that no exceptions are thrown when we wiper a RES object
+**** then after we wiper the RES Object, we test to make sure that our wiper time
+**** parameter in now the time endpoint of the object.
+
+**** For further inspection of the edit, please view wiperTest.txt
+
+**** Please note that this test also indirectly tests size
+*/
+
+void xRinexEphemerisStore :: BCESwiperTest (void)
+{
+ ofstream DumpData1;
+ ofstream DumpData2;
+ DumpData1.open ("Logs/wiperTest.txt");
+ DumpData2.open ("Logs/wiperTest2.txt");
+
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,11,45,0);
+
+ try
+ {
+ //Make sure it doesn't fail but dont wipe anything
+ CPPUNIT_ASSERT_NO_THROW(Store.wiper(gpstk::DayTime::BEGINNING_OF_TIME));
+ //Wipe everything and make sure that we did wipe all the data
+ Store.wiper(Time);
+ Store.dump(1,DumpData1);
+
+ CPPUNIT_ASSERT_EQUAL(Time,Store.getInitialTime());
+
+ unsigned int Num = Store.ubeSize();
+
+ CPPUNIT_ASSERT_EQUAL(Num,Store.wiper(gpstk::DayTime::END_OF_TIME));
+
+ Store.dump(1,DumpData2);
+
+ CPPUNIT_ASSERT_EQUAL(gpstk::DayTime::END_OF_TIME,Store.getInitialTime());
+
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/wiperTest.txt","Checks/wiperTest.chk"));
+ CPPUNIT_ASSERT(fileEqualTest("Logs/wiperTest.txt","Checks/wiperTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member clear()
+
+**** This test assures that no exceptions are thrown when we clear a RES object
+**** then after we clear the RES Object, we test to make sure that END_OF_TIME is our
+**** initial time and BEGINNING_OF_TIME is our final time
+
+**** For further inspection of the edit, please view clearTest.txt
+*/
+void xRinexEphemerisStore :: BCESclearTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Checks/clearTest.chk");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ try
+ {
+ CPPUNIT_ASSERT_NO_THROW(Store.clear());
+
+ CPPUNIT_ASSERT_EQUAL(gpstk::DayTime::END_OF_TIME,Store.getInitialTime());
+ CPPUNIT_ASSERT_EQUAL(gpstk::DayTime::BEGINNING_OF_TIME,Store.getFinalTime());
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/clearTest.txt","Checks/clearTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member findUserEphemeris()
+
+**** findUserEphemeris find the ephemeris which a) is within the fit tinterval for the
+**** given time of interest and 2) is the last ephemeris transmitted before the time of
+**** interest (i.e. min(toi-HOW time))
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Store is then cleared and the ephemeris data is readded
+**** for output purposes.
+
+**** For further inspection of the find, please view findUserTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESfindUserTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/findUserTest.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,13,0,1);
+
+ short PRN0 = 0;
+ short PRN1 = 1;
+ short PRN15 = 15;
+ short PRN32 = 32;
+ short PRN33 = 33;
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(Store.findUserEphemeris(PRN0,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findUserEphemeris(PRN33,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findUserEphemeris(PRN1,gpstk::DayTime::END_OF_TIME),
+ gpstk::EphemerisStore::NoEphemerisFound);
+
+ CPPUNIT_ASSERT_NO_THROW(Store.findUserEphemeris(PRN1, Time));
+
+ const gpstk::EngEphemeris& Eph1 = Store.findUserEphemeris(PRN1, Time);
+ const gpstk::EngEphemeris& Eph15 = Store.findUserEphemeris(PRN15, Time);
+ const gpstk::EngEphemeris& Eph32 = Store.findUserEphemeris(PRN32, Time);
+
+ Store.clear();
+
+ Store.addEphemeris(Eph1);
+ Store.addEphemeris(Eph15);
+ Store.addEphemeris(Eph32);
+
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findUserTest.txt","Checks/findUserTest.chk"));
+}
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member findNearEphemeris()
+**** findNearEphemeris finds the ephemeris with the HOW time closest to the time t, i.e
+**** with the smalles fabs(t-HOW), but still within the fit interval
+
+**** This test makes sure that exceptions are thrown if there is no ephemeris data
+**** for the given PRN and also that an exception is thrown if there is no data for
+**** the PRN at the given time. Store is then cleared and the epeheris data is readded
+**** for output purposes.
+
+**** For further inspection of the find, please view findNearTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESfindNearTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/findNearTest.txt");
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ gpstk::DayTime Time(2006,1,31,13,0,1);
+
+ short PRN0 = 0;
+ short PRN1 = 1;
+ short PRN15 = 15;
+ short PRN32 = 32;
+ short PRN33 = 33;
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(Store.findNearEphemeris(PRN0,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findNearEphemeris(PRN33,Time),gpstk::EphemerisStore::NoEphemerisFound);
+ CPPUNIT_ASSERT_THROW(Store.findNearEphemeris(PRN1,gpstk::DayTime::END_OF_TIME),
+ gpstk::EphemerisStore::NoEphemerisFound);
+
+ CPPUNIT_ASSERT_NO_THROW(Store.findNearEphemeris(PRN1, Time));
+
+ const gpstk::EngEphemeris& Eph1 = Store.findNearEphemeris(PRN1, Time);
+ const gpstk::EngEphemeris& Eph15 = Store.findNearEphemeris(PRN15, Time);
+ const gpstk::EngEphemeris& Eph32 = Store.findNearEphemeris(PRN32, Time);
+
+ Store.clear();
+
+ Store.addEphemeris(Eph1);
+ Store.addEphemeris(Eph15);
+ Store.addEphemeris(Eph32);
+
+ Store.dump(1,DumpData);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/findNearTest.txt","Checks/findNearTest.chk"));
+}
+
+
+
+/*
+**** Test to assure the quality of BCEphemerisStore class member addToList()
+
+**** This test creats a list of EngEphemeris and then adds all of the ephemeris
+**** members to that list. After that of the List and Store are checked to be
+**** equal.
+
+**** For further inspection of the add, please view addToListTest.txt
+*/
+
+void xRinexEphemerisStore :: BCESaddToListTest (void)
+{
+ ofstream DumpData;
+ DumpData.open ("Logs/addToListTest.txt");
+
+
+ gpstk::RinexEphemerisStore Store;
+ Store.loadFile("TestRinex06.031");
+
+ try
+ {
+ std::list<gpstk::EngEphemeris> EphList; // Empty Ephemeris List
+
+ //Assert that the number of added members equals the size of Store (all members added)
+ CPPUNIT_ASSERT_EQUAL(Store.ubeSize(),(unsigned) Store.addToList(EphList));
+ CPPUNIT_ASSERT_EQUAL((unsigned) EphList.size(),Store.ubeSize());
+
+ typedef list<gpstk::EngEphemeris>::const_iterator LI;
+ for (LI i = EphList.begin();i!=EphList.end();i++)
+ {
+ const gpstk::EngEphemeris& e = *i;
+ DumpData << e;
+ }
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/addToListTest.txt","Checks/addToListTest.chk"));
+}
+
+
+bool xRinexEphemerisStore :: fileEqualTest (char* handle1, char* handle2)
+{
+ bool isEqual = false;
+
+ ifstream File1;
+ ifstream File2;
+
+ std::string File1Line;
+ std::string File2Line;
+
+ File1.open(handle1);
+ File2.open(handle2);
+
+ while (!File1.eof())
+ {
+ if (File2.eof())
+ return isEqual;
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ if (File1Line != File2Line)
+ return isEqual;
+ }
+ if (!File2.eof())
+ return isEqual;
+ else
+ return isEqual = true;
+}
diff --git a/dev/tests/RinexEphemerisStore/xRinexEphemerisStore.hpp b/dev/tests/RinexEphemerisStore/xRinexEphemerisStore.hpp
new file mode 100644
index 0000000..d3c00c4
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/xRinexEphemerisStore.hpp
@@ -0,0 +1,57 @@
+// file: xRinexEphemerisStore.hpp
+
+#ifndef XRINEXEPHEMERISSTORE_HPP
+#define XRINEXEPHEMERISSTORE_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "RinexEphemerisStore.hpp"
+#include <fstream>
+
+
+using namespace std;
+
+
+class xRinexEphemerisStore: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xRinexEphemerisStore);
+ CPPUNIT_TEST (RESTest);
+ CPPUNIT_TEST (BCESfindEphTest);
+ CPPUNIT_TEST (BCESgetPrnXvtTest);
+ CPPUNIT_TEST (BCESgetPrnXvt2Test);
+ CPPUNIT_TEST (BCESgetPrnHealthTest);
+ CPPUNIT_TEST (BCESdumpTest);
+ CPPUNIT_TEST (BCESaddEphemerisTest);
+ CPPUNIT_TEST (BCESeditTest);
+ CPPUNIT_TEST (BCESwiperTest);
+ CPPUNIT_TEST (BCESclearTest);
+ CPPUNIT_TEST (BCESfindUserTest);
+ CPPUNIT_TEST (BCESfindNearTest);
+ CPPUNIT_TEST (BCESaddToListTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void RESTest (void);
+ void BCESfindEphTest (void);
+ void BCESgetPrnXvtTest (void);
+ void BCESgetPrnXvt2Test (void);
+ void BCESgetPrnHealthTest (void);
+ void BCESdumpTest (void);
+ void BCESaddEphemerisTest (void);
+ void BCESeditTest (void);
+ void BCESwiperTest (void);
+ void BCESclearTest (void);
+ void BCESfindUserTest (void);
+ void BCESfindNearTest (void);
+ void BCESaddToListTest (void);
+ bool fileEqualTest (char[], char[]);
+
+ private:
+
+};
+#endif
diff --git a/dev/tests/RinexEphemerisStore/xRinexEphemerisStoreM.cpp b/dev/tests/RinexEphemerisStore/xRinexEphemerisStoreM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/RinexEphemerisStore/xRinexEphemerisStoreM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/RinexMet/Jamfile b/dev/tests/RinexMet/Jamfile
new file mode 100644
index 0000000..089e195
--- /dev/null
+++ b/dev/tests/RinexMet/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP RinexMet ;
+TestMain RinexMet/xRinexMet.tst : RinexMet/xRinexMetM.cpp RinexMet/xRinexMet.cpp RinexMet/RinexMetBase.cpp RinexMet/RinexMetData.cpp RinexMet/RinexMetHeader.cpp RinexMet/RinexMetFilterOperators.cpp RinexMet/RinexMetStream.cpp ;
diff --git a/dev/tests/RinexMet/Logs/408_110a.04m b/dev/tests/RinexMet/Logs/408_110a.04m
new file mode 100644
index 0000000..1131022
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/408_110a.04m
@@ -0,0 +1,108 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
+ 04 4 19 0 30 0 992.8 23.4 60.9
+ 04 4 19 0 45 0 992.7 23.0 61.3
+ 04 4 19 1 0 0 992.6 22.7 63.0
+ 04 4 19 1 15 0 992.9 22.2 65.0
+ 04 4 19 1 30 0 993.0 21.8 66.5
+ 04 4 19 1 45 0 993.1 21.5 67.4
+ 04 4 19 2 0 0 993.1 21.2 67.8
+ 04 4 19 2 15 0 992.9 21.0 67.4
+ 04 4 19 2 30 0 993.1 20.8 67.4
+ 04 4 19 2 45 0 993.5 20.3 69.8
+ 04 4 19 3 0 0 993.6 20.0 72.0
+ 04 4 19 3 15 0 993.7 19.8 74.3
+ 04 4 19 3 30 0 993.8 19.6 75.8
+ 04 4 19 3 45 0 993.7 19.3 78.2
+ 04 4 19 4 0 0 993.4 19.0 80.7
+ 04 4 19 4 15 0 994.0 18.8 81.1
+ 04 4 19 4 30 0 994.3 18.7 83.8
+ 04 4 19 4 45 0 994.3 18.6 85.7
+ 04 4 19 5 0 0 994.5 18.5 87.5
+ 04 4 19 5 15 0 994.7 18.5 89.3
+ 04 4 19 5 30 0 994.5 18.5 90.7
+ 04 4 19 5 45 0 994.6 18.6 91.7
+ 04 4 19 6 0 0 994.8 18.7 92.3
+ 04 4 19 6 15 0 994.6 18.7 92.8
+ 04 4 19 6 30 0 994.5 18.8 93.2
+ 04 4 19 6 45 0 994.8 18.7 93.4
+ 04 4 19 7 0 0 994.7 18.8 93.6
+ 04 4 19 7 15 0 994.4 18.9 93.3
+ 04 4 19 7 30 0 994.1 18.9 93.3
+ 04 4 19 7 45 0 993.8 18.9 93.3
+ 04 4 19 8 0 0 993.9 18.9 93.6
+ 04 4 19 8 15 0 993.8 19.0 93.5
+ 04 4 19 8 30 0 993.6 19.0 93.2
+ 04 4 19 8 45 0 993.5 19.0 93.2
+ 04 4 19 9 0 0 993.4 19.1 92.7
+ 04 4 19 9 15 0 993.3 19.1 93.0
+ 04 4 19 9 30 0 993.2 19.0 93.0
+ 04 4 19 9 45 0 993.1 19.1 92.8
+ 04 4 19 10 0 0 993.1 19.2 92.5
+ 04 4 19 10 15 0 992.9 19.2 92.0
+ 04 4 19 10 30 0 992.9 19.3 91.2
+ 04 4 19 10 45 0 992.9 19.3 91.3
+ 04 4 19 11 0 0 992.8 19.3 91.3
+ 04 4 19 11 15 0 992.9 19.3 91.7
+ 04 4 19 11 30 0 992.9 19.3 92.0
+ 04 4 19 11 45 0 993.1 19.3 92.1
+ 04 4 19 12 0 0 993.2 19.3 92.1
+ 04 4 19 12 15 0 993.4 19.4 92.7
+ 04 4 19 12 30 0 993.6 19.4 92.9
+ 04 4 19 12 45 0 993.7 19.5 92.9
+ 04 4 19 13 0 0 993.7 19.5 92.9
+ 04 4 19 13 15 0 994.0 19.4 94.2
+ 04 4 19 13 30 0 994.0 19.6 93.2
+ 04 4 19 13 45 0 994.1 19.6 91.8
+ 04 4 19 14 0 0 994.4 19.8 91.6
+ 04 4 19 14 15 0 994.4 19.9 90.5
+ 04 4 19 14 30 0 994.7 19.8 90.5
+ 04 4 19 14 45 0 994.6 19.9 89.9
+ 04 4 19 15 0 0 994.5 20.1 89.1
+ 04 4 19 15 15 0 994.4 20.3 86.3
+ 04 4 19 15 30 0 994.4 20.5 85.3
+ 04 4 19 15 45 0 994.4 21.0 84.2
+ 04 4 19 16 0 0 994.4 21.0 84.2
+ 04 4 19 16 15 0 994.3 21.0 84.6
+ 04 4 19 16 30 0 994.4 22.0 77.4
+ 04 4 19 16 45 0 994.2 22.9 71.5
+ 04 4 19 17 0 0 994.0 23.2 67.9
+ 04 4 19 17 15 0 994.2 24.2 65.7
+ 04 4 19 17 30 0 994.2 23.9 63.5
+ 04 4 19 17 45 0 994.3 24.3 60.7
+ 04 4 19 18 0 0 993.9 23.9 61.6
+ 04 4 19 18 15 0 993.6 23.9 61.8
+ 04 4 19 18 30 0 993.3 24.7 59.6
+ 04 4 19 18 45 0 993.2 26.4 55.1
+ 04 4 19 19 0 0 993.0 27.6 50.0
+ 04 4 19 19 15 0 992.6 26.8 52.5
+ 04 4 19 19 30 0 992.4 27.1 50.9
+ 04 4 19 19 45 0 992.2 26.5 55.1
+ 04 4 19 20 0 0 992.4 27.0 52.2
+ 04 4 19 20 15 0 992.3 26.7 53.0
+ 04 4 19 20 30 0 992.2 26.9 52.2
+ 04 4 19 20 45 0 992.0 26.7 52.8
+ 04 4 19 21 0 0 991.8 26.8 53.6
+ 04 4 19 21 15 0 992.0 26.4 53.9
+ 04 4 19 21 30 0 991.8 26.0 55.9
+ 04 4 19 21 45 0 991.6 26.8 51.2
+ 04 4 19 22 0 0 991.6 26.6 51.2
+ 04 4 19 22 15 0 991.6 26.2 52.7
+ 04 4 19 22 30 0 991.4 26.2 53.1
+ 04 4 19 22 45 0 991.4 26.2 53.4
+ 04 4 19 23 0 0 991.2 26.3 53.3
+ 04 4 19 23 15 0 991.1 25.9 54.7
+ 04 4 19 23 30 0 991.0 25.7 55.8
+ 04 4 19 23 45 0 990.9 25.3 56.3
diff --git a/dev/tests/RinexMet/Logs/BLL.04m b/dev/tests/RinexMet/Logs/BLL.04m
new file mode 100644
index 0000000..31bb7f9
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/BLL.04m
@@ -0,0 +1,15 @@
+ 2.10 Meteorological RINEX VERSION / TYPE zzzzzzzzzzzzzzzzzzzzzzzzzzzzz
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
+
diff --git a/dev/tests/RinexMet/Logs/BOL.04m b/dev/tests/RinexMet/Logs/BOL.04m
new file mode 100644
index 0000000..b4a044a
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/BOL.04m
@@ -0,0 +1,14 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR z TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/dev/tests/RinexMet/Logs/ContLines10.04m b/dev/tests/RinexMet/Logs/ContLines10.04m
new file mode 100644
index 0000000..e389793
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/ContLines10.04m
@@ -0,0 +1,212 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 10 PR TD HR ZW ZD ZT WD WS RI# / TYPES OF OBSERV
+ HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 WD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 WS SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 RI SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.7
+ 04 4 19 0 15 0 992.8 23.6 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 0 30 0 992.8 23.4 60.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.4
+ 04 4 19 0 45 0 992.7 23.0 61.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.5
+ 04 4 19 1 0 0 992.6 22.7 63.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.6
+ 04 4 19 1 15 0 992.9 22.2 65.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 1 30 0 993.0 21.8 66.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 1 45 0 993.1 21.5 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 0 0 993.1 21.2 67.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 15 0 992.9 21.0 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 30 0 993.1 20.8 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 45 0 993.5 20.3 69.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 0 0 993.6 20.0 72.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 15 0 993.7 19.8 74.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 30 0 993.8 19.6 75.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 45 0 993.7 19.3 78.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 0 0 993.4 19.0 80.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 15 0 994.0 18.8 81.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 30 0 994.3 18.7 83.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 45 0 994.3 18.6 85.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 0 0 994.5 18.5 87.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 15 0 994.7 18.5 89.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 30 0 994.5 18.5 90.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 45 0 994.6 18.6 91.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 0 0 994.8 18.7 92.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 15 0 994.6 18.7 92.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 30 0 994.5 18.8 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 45 0 994.8 18.7 93.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 0 0 994.7 18.8 93.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 15 0 994.4 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 30 0 994.1 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 45 0 993.8 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 0 0 993.9 18.9 93.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 15 0 993.8 19.0 93.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 30 0 993.6 19.0 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 45 0 993.5 19.0 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 0 0 993.4 19.1 92.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 15 0 993.3 19.1 93.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 30 0 993.2 19.0 93.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 45 0 993.1 19.1 92.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 0 0 993.1 19.2 92.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 15 0 992.9 19.2 92.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 30 0 992.9 19.3 91.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 45 0 992.9 19.3 91.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 0 0 992.8 19.3 91.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 15 0 992.9 19.3 91.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 30 0 992.9 19.3 92.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 45 0 993.1 19.3 92.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 0 0 993.2 19.3 92.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 15 0 993.4 19.4 92.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 30 0 993.6 19.4 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 45 0 993.7 19.5 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 0 0 993.7 19.5 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 15 0 994.0 19.4 94.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 30 0 994.0 19.6 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 45 0 994.1 19.6 91.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 0 0 994.4 19.8 91.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 15 0 994.4 19.9 90.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 30 0 994.7 19.8 90.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 45 0 994.6 19.9 89.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 0 0 994.5 20.1 89.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 15 0 994.4 20.3 86.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 30 0 994.4 20.5 85.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 45 0 994.4 21.0 84.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 0 0 994.4 21.0 84.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 15 0 994.3 21.0 84.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 30 0 994.4 22.0 77.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 45 0 994.2 22.9 71.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 0 0 994.0 23.2 67.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 15 0 994.2 24.2 65.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 30 0 994.2 23.9 63.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 45 0 994.3 24.3 60.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 0 0 993.9 23.9 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 15 0 993.6 23.9 61.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 30 0 993.3 24.7 59.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 45 0 993.2 26.4 55.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 0 0 993.0 27.6 50.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 15 0 992.6 26.8 52.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 30 0 992.4 27.1 50.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 45 0 992.2 26.5 55.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 0 0 992.4 27.0 52.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 15 0 992.3 26.7 53.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 30 0 992.2 26.9 52.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 45 0 992.0 26.7 52.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 0 0 991.8 26.8 53.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 15 0 992.0 26.4 53.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 30 0 991.8 26.0 55.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 45 0 991.6 26.8 51.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 0 0 991.6 26.6 51.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 15 0 991.6 26.2 52.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 30 0 991.4 26.2 53.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 45 0 991.4 26.2 53.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 0 0 991.2 26.3 53.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 15 0 991.1 25.9 54.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 30 0 991.0 25.7 55.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 45 0 990.9 25.3 56.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
diff --git a/dev/tests/RinexMet/Logs/ContinuationLines.04m b/dev/tests/RinexMet/Logs/ContinuationLines.04m
new file mode 100644
index 0000000..ce176db
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/ContinuationLines.04m
@@ -0,0 +1,210 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 9 PR TD HR ZW ZD ZT WD WS RI# / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 WD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 WS SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 RI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 0 15 0 992.8 23.6 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 0 30 0 992.8 23.4 60.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 0 45 0 992.7 23.0 61.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 1 0 0 992.6 22.7 63.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 1 15 0 992.9 22.2 65.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 1 30 0 993.0 21.8 66.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 1 45 0 993.1 21.5 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 2 0 0 993.1 21.2 67.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 2 15 0 992.9 21.0 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 2 30 0 993.1 20.8 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 2 45 0 993.5 20.3 69.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 3 0 0 993.6 20.0 72.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 3 15 0 993.7 19.8 74.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 3 30 0 993.8 19.6 75.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 3 45 0 993.7 19.3 78.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 4 0 0 993.4 19.0 80.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 4 15 0 994.0 18.8 81.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 4 30 0 994.3 18.7 83.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 4 45 0 994.3 18.6 85.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 5 0 0 994.5 18.5 87.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 5 15 0 994.7 18.5 89.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 5 30 0 994.5 18.5 90.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 5 45 0 994.6 18.6 91.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 6 0 0 994.8 18.7 92.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 6 15 0 994.6 18.7 92.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 6 30 0 994.5 18.8 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 6 45 0 994.8 18.7 93.4 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 7 0 0 994.7 18.8 93.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 7 15 0 994.4 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 7 30 0 994.1 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 7 45 0 993.8 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 8 0 0 993.9 18.9 93.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 8 15 0 993.8 19.0 93.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 8 30 0 993.6 19.0 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 8 45 0 993.5 19.0 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 9 0 0 993.4 19.1 92.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 9 15 0 993.3 19.1 93.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 9 30 0 993.2 19.0 93.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 9 45 0 993.1 19.1 92.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 10 0 0 993.1 19.2 92.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 10 15 0 992.9 19.2 92.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 10 30 0 992.9 19.3 91.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 10 45 0 992.9 19.3 91.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 11 0 0 992.8 19.3 91.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 11 15 0 992.9 19.3 91.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 11 30 0 992.9 19.3 92.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 11 45 0 993.1 19.3 92.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 12 0 0 993.2 19.3 92.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 12 15 0 993.4 19.4 92.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 12 30 0 993.6 19.4 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 12 45 0 993.7 19.5 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 13 0 0 993.7 19.5 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 13 15 0 994.0 19.4 94.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 13 30 0 994.0 19.6 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 13 45 0 994.1 19.6 91.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 14 0 0 994.4 19.8 91.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 14 15 0 994.4 19.9 90.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 14 30 0 994.7 19.8 90.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 14 45 0 994.6 19.9 89.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 15 0 0 994.5 20.1 89.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 15 15 0 994.4 20.3 86.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 15 30 0 994.4 20.5 85.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 15 45 0 994.4 21.0 84.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 16 0 0 994.4 21.0 84.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 16 15 0 994.3 21.0 84.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 16 30 0 994.4 22.0 77.4 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 16 45 0 994.2 22.9 71.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 17 0 0 994.0 23.2 67.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 17 15 0 994.2 24.2 65.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 17 30 0 994.2 23.9 63.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 17 45 0 994.3 24.3 60.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 18 0 0 993.9 23.9 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 18 15 0 993.6 23.9 61.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 18 30 0 993.3 24.7 59.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 18 45 0 993.2 26.4 55.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 19 0 0 993.0 27.6 50.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 19 15 0 992.6 26.8 52.5 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 19 30 0 992.4 27.1 50.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 19 45 0 992.2 26.5 55.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 20 0 0 992.4 27.0 52.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 20 15 0 992.3 26.7 53.0 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 20 30 0 992.2 26.9 52.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 20 45 0 992.0 26.7 52.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 21 0 0 991.8 26.8 53.6 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 21 15 0 992.0 26.4 53.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 21 30 0 991.8 26.0 55.9 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 21 45 0 991.6 26.8 51.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 22 0 0 991.6 26.6 51.2 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 22 15 0 991.6 26.2 52.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 22 30 0 991.4 26.2 53.1 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 22 45 0 991.4 26.2 53.4 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 23 0 0 991.2 26.3 53.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 23 15 0 991.1 25.9 54.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 23 30 0 991.0 25.7 55.8 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 23 45 0 990.9 25.3 56.3 50.0 40.0 30.0 20.0 15.0
+ 10.0
diff --git a/dev/tests/RinexMet/Logs/ContinuationLines.04mBKUP b/dev/tests/RinexMet/Logs/ContinuationLines.04mBKUP
new file mode 100644
index 0000000..1043d3e
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/ContinuationLines.04mBKUP
@@ -0,0 +1,205 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 10 PR TD HR ZW ZD ZT WD WS RI# / TYPES OF OBSERV
+ HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 0 15 0 992.8 23.6 61.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 0 30 0 992.8 23.4 60.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 0 45 0 992.7 23.0 61.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 1 0 0 992.6 22.7 63.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 1 15 0 992.9 22.2 65.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 1 30 0 993.0 21.8 66.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 1 45 0 993.1 21.5 67.4 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 2 0 0 993.1 21.2 67.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 2 15 0 992.9 21.0 67.4 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 2 30 0 993.1 20.8 67.4 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 2 45 0 993.5 20.3 69.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 3 0 0 993.6 20.0 72.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 3 15 0 993.7 19.8 74.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 3 30 0 993.8 19.6 75.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 3 45 0 993.7 19.3 78.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 4 0 0 993.4 19.0 80.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 4 15 0 994.0 18.8 81.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 4 30 0 994.3 18.7 83.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 4 45 0 994.3 18.6 85.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 5 0 0 994.5 18.5 87.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 5 15 0 994.7 18.5 89.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 5 30 0 994.5 18.5 90.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 5 45 0 994.6 18.6 91.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 6 0 0 994.8 18.7 92.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 6 15 0 994.6 18.7 92.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 6 30 0 994.5 18.8 93.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 6 45 0 994.8 18.7 93.4 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 7 0 0 994.7 18.8 93.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 7 15 0 994.4 18.9 93.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 7 30 0 994.1 18.9 93.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 7 45 0 993.8 18.9 93.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 8 0 0 993.9 18.9 93.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 8 15 0 993.8 19.0 93.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 8 30 0 993.6 19.0 93.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 8 45 0 993.5 19.0 93.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 9 0 0 993.4 19.1 92.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 9 15 0 993.3 19.1 93.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 9 30 0 993.2 19.0 93.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 9 45 0 993.1 19.1 92.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 10 0 0 993.1 19.2 92.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 10 15 0 992.9 19.2 92.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 10 30 0 992.9 19.3 91.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 10 45 0 992.9 19.3 91.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 11 0 0 992.8 19.3 91.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 11 15 0 992.9 19.3 91.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 11 30 0 992.9 19.3 92.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 11 45 0 993.1 19.3 92.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 12 0 0 993.2 19.3 92.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 12 15 0 993.4 19.4 92.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 12 30 0 993.6 19.4 92.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 12 45 0 993.7 19.5 92.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 13 0 0 993.7 19.5 92.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 13 15 0 994.0 19.4 94.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 13 30 0 994.0 19.6 93.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 13 45 0 994.1 19.6 91.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 14 0 0 994.4 19.8 91.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 14 15 0 994.4 19.9 90.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 14 30 0 994.7 19.8 90.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 14 45 0 994.6 19.9 89.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 15 0 0 994.5 20.1 89.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 15 15 0 994.4 20.3 86.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 15 30 0 994.4 20.5 85.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 15 45 0 994.4 21.0 84.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 16 0 0 994.4 21.0 84.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 16 15 0 994.3 21.0 84.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 16 30 0 994.4 22.0 77.4 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 16 45 0 994.2 22.9 71.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 17 0 0 994.0 23.2 67.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 17 15 0 994.2 24.2 65.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 17 30 0 994.2 23.9 63.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 17 45 0 994.3 24.3 60.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 18 0 0 993.9 23.9 61.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 18 15 0 993.6 23.9 61.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 18 30 0 993.3 24.7 59.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 18 45 0 993.2 26.4 55.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 19 0 0 993.0 27.6 50.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 19 15 0 992.6 26.8 52.5 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 19 30 0 992.4 27.1 50.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 19 45 0 992.2 26.5 55.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 20 0 0 992.4 27.0 52.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 20 15 0 992.3 26.7 53.0 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 20 30 0 992.2 26.9 52.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 20 45 0 992.0 26.7 52.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 21 0 0 991.8 26.8 53.6 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 21 15 0 992.0 26.4 53.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 21 30 0 991.8 26.0 55.9 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 21 45 0 991.6 26.8 51.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 22 0 0 991.6 26.6 51.2 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 22 15 0 991.6 26.2 52.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 22 30 0 991.4 26.2 53.1 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 22 45 0 991.4 26.2 53.4 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 23 0 0 991.2 26.3 53.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 23 15 0 991.1 25.9 54.7 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 23 30 0 991.0 25.7 55.8 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
+ 04 4 19 23 45 0 990.9 25.3 56.3 70.0 60.0 40.0 30.0 20.0
+ 10.0 15.0
diff --git a/dev/tests/RinexMet/Logs/ExtraH.04m b/dev/tests/RinexMet/Logs/ExtraH.04m
new file mode 100644
index 0000000..842e069
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/ExtraH.04m
@@ -0,0 +1,17 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+ EXTRAHEADER
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ EXTRAHEADER
+ END OF HEADER
+ EXTRAHEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexMet/Logs/ExtraOutput.txt
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexMet/Logs/ExtraOutput.txt
diff --git a/dev/tests/RinexMet/Logs/FER.04m b/dev/tests/RinexMet/Logs/FER.04m
new file mode 100644
index 0000000..1ac6207
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/FER.04m
@@ -0,0 +1,14 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 z 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexMet/Logs/FilterOutput.txt
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexMet/Logs/FilterOutput.txt
diff --git a/dev/tests/RinexMet/Logs/FilterTest1.04m b/dev/tests/RinexMet/Logs/FilterTest1.04m
new file mode 100644
index 0000000..18442c8
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/FilterTest1.04m
@@ -0,0 +1,18 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+THIS IS A COOL COMMENT COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HR ZW ZD ZT # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 49.7 992.6 23.9 49.7
+ 04 4 19 0 15 0 992.8 23.6 51.6 992.8 23.6 51.6
diff --git a/dev/tests/RinexMet/Logs/FilterTest2.04m b/dev/tests/RinexMet/Logs/FilterTest2.04m
new file mode 100644
index 0000000..2b0a238
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/FilterTest2.04m
@@ -0,0 +1,18 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+THIS IS AN EVEN COOLER COMMENT COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HR ZW ZD ZT # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 49.7 992.6 23.9 49.7
+ 04 4 19 0 15 0 992.8 23.6 51.6 992.8 23.6 61.6
diff --git a/dev/tests/RinexMet/Logs/FilterTest3.04m b/dev/tests/RinexMet/Logs/FilterTest3.04m
new file mode 100644
index 0000000..36b32e6
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/FilterTest3.04m
@@ -0,0 +1,14 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 05/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 5 19 0 0 0 992.6 23.9 59.7
+ 04 5 19 0 15 0 992.8 23.6 61.6
diff --git a/dev/tests/RinexMet/Logs/InvalidTimeFormat.04m b/dev/tests/RinexMet/Logs/InvalidTimeFormat.04m
new file mode 100644
index 0000000..c5dc17e
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/InvalidTimeFormat.04m
@@ -0,0 +1,14 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+04419000
+ 04 4 19 0 15 0
diff --git a/dev/tests/RinexMet/Logs/MetDumps b/dev/tests/RinexMet/Logs/MetDumps
new file mode 100644
index 0000000..27f0eed
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/MetDumps
@@ -0,0 +1,13 @@
+Marker 85408
+01/01/-4713 00:00:00
+04/19/2004 00:00:00
+PR 992.6
+TD 23.9
+HR 59.7
+ZW 50
+ZD 40
+ZT 30
+WD 20
+WS 15
+RI 10
+HI 27.7
diff --git a/dev/tests/RinexMet/Logs/MissingEOH.04m b/dev/tests/RinexMet/Logs/MissingEOH.04m
new file mode 100644
index 0000000..27415b1
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/MissingEOH.04m
@@ -0,0 +1,13 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/dev/tests/RinexMet/Logs/MissingMarkerName b/dev/tests/RinexMet/Logs/MissingMarkerName
new file mode 100644
index 0000000..2d150b3
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/MissingMarkerName
@@ -0,0 +1,16 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
+ 04 4 19 0 30 0 992.8 23.4 60.9
+ 04 4 19 0 45 0 992.7 23.0 61.3
+ 04 4 19 1 0 0 992.6 22.7 63.0
diff --git a/dev/tests/RinexMet/Logs/NoObsData.04m b/dev/tests/RinexMet/Logs/NoObsData.04m
new file mode 100644
index 0000000..7cbeb16
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/NoObsData.04m
@@ -0,0 +1,13 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 13 1 1 0 0 0 1.1 2.1 3.1 4.1 5.1 6.1
\ No newline at end of file
diff --git a/dev/tests/RinexMet/Logs/NoObsDataCont.04m b/dev/tests/RinexMet/Logs/NoObsDataCont.04m
new file mode 100644
index 0000000..6dcde3e
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/NoObsDataCont.04m
@@ -0,0 +1,27 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 10 PR TD HR ZW ZD ZT WD WS RI# / TYPES OF OBSERV
+ zzzHIzzz # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 WD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 WS SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 RI SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7 50.0 40.0 30.0 20.0 15.0
+ 10.0
+ 04 4 19 0 15 0 992.8 23.6 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 0 30 0 992.8 23.4 60.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+
diff --git a/dev/tests/RinexMet/Logs/NotMetFile.04m b/dev/tests/RinexMet/Logs/NotMetFile.04m
new file mode 100644
index 0000000..8334883
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/NotMetFile.04m
@@ -0,0 +1,14 @@
+ 2.10 Neteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/dev/tests/RinexMet/Logs/ObsHeaderStringError.04m b/dev/tests/RinexMet/Logs/ObsHeaderStringError.04m
new file mode 100644
index 0000000..cae25bd
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/ObsHeaderStringError.04m
@@ -0,0 +1,27 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 10 PR TD HR ZW ZD ZT WD WS RI# / TYPES OF OBSERV
+ zzzHIzzz # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 WD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 WS SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 RI SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.7
+ 04 4 19 0 15 0 992.8 23.6 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 0 30 0 992.8 23.4 60.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+
diff --git a/dev/tests/RinexMet/Logs/Output.txt b/dev/tests/RinexMet/Logs/Output.txt
new file mode 100644
index 0000000..536ea3e
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/Output.txt
@@ -0,0 +1,108 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 10/05/2006 12:29:21 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
+ 04 4 19 0 30 0 992.8 23.4 60.9
+ 04 4 19 0 45 0 992.7 23.0 61.3
+ 04 4 19 1 0 0 992.6 22.7 63.0
+ 04 4 19 1 15 0 992.9 22.2 65.0
+ 04 4 19 1 30 0 993.0 21.8 66.5
+ 04 4 19 1 45 0 993.1 21.5 67.4
+ 04 4 19 2 0 0 993.1 21.2 67.8
+ 04 4 19 2 15 0 992.9 21.0 67.4
+ 04 4 19 2 30 0 993.1 20.8 67.4
+ 04 4 19 2 45 0 993.5 20.3 69.8
+ 04 4 19 3 0 0 993.6 20.0 72.0
+ 04 4 19 3 15 0 993.7 19.8 74.3
+ 04 4 19 3 30 0 993.8 19.6 75.8
+ 04 4 19 3 45 0 993.7 19.3 78.2
+ 04 4 19 4 0 0 993.4 19.0 80.7
+ 04 4 19 4 15 0 994.0 18.8 81.1
+ 04 4 19 4 30 0 994.3 18.7 83.8
+ 04 4 19 4 45 0 994.3 18.6 85.7
+ 04 4 19 5 0 0 994.5 18.5 87.5
+ 04 4 19 5 15 0 994.7 18.5 89.3
+ 04 4 19 5 30 0 994.5 18.5 90.7
+ 04 4 19 5 45 0 994.6 18.6 91.7
+ 04 4 19 6 0 0 994.8 18.7 92.3
+ 04 4 19 6 15 0 994.6 18.7 92.8
+ 04 4 19 6 30 0 994.5 18.8 93.2
+ 04 4 19 6 45 0 994.8 18.7 93.4
+ 04 4 19 7 0 0 994.7 18.8 93.6
+ 04 4 19 7 15 0 994.4 18.9 93.3
+ 04 4 19 7 30 0 994.1 18.9 93.3
+ 04 4 19 7 45 0 993.8 18.9 93.3
+ 04 4 19 8 0 0 993.9 18.9 93.6
+ 04 4 19 8 15 0 993.8 19.0 93.5
+ 04 4 19 8 30 0 993.6 19.0 93.2
+ 04 4 19 8 45 0 993.5 19.0 93.2
+ 04 4 19 9 0 0 993.4 19.1 92.7
+ 04 4 19 9 15 0 993.3 19.1 93.0
+ 04 4 19 9 30 0 993.2 19.0 93.0
+ 04 4 19 9 45 0 993.1 19.1 92.8
+ 04 4 19 10 0 0 993.1 19.2 92.5
+ 04 4 19 10 15 0 992.9 19.2 92.0
+ 04 4 19 10 30 0 992.9 19.3 91.2
+ 04 4 19 10 45 0 992.9 19.3 91.3
+ 04 4 19 11 0 0 992.8 19.3 91.3
+ 04 4 19 11 15 0 992.9 19.3 91.7
+ 04 4 19 11 30 0 992.9 19.3 92.0
+ 04 4 19 11 45 0 993.1 19.3 92.1
+ 04 4 19 12 0 0 993.2 19.3 92.1
+ 04 4 19 12 15 0 993.4 19.4 92.7
+ 04 4 19 12 30 0 993.6 19.4 92.9
+ 04 4 19 12 45 0 993.7 19.5 92.9
+ 04 4 19 13 0 0 993.7 19.5 92.9
+ 04 4 19 13 15 0 994.0 19.4 94.2
+ 04 4 19 13 30 0 994.0 19.6 93.2
+ 04 4 19 13 45 0 994.1 19.6 91.8
+ 04 4 19 14 0 0 994.4 19.8 91.6
+ 04 4 19 14 15 0 994.4 19.9 90.5
+ 04 4 19 14 30 0 994.7 19.8 90.5
+ 04 4 19 14 45 0 994.6 19.9 89.9
+ 04 4 19 15 0 0 994.5 20.1 89.1
+ 04 4 19 15 15 0 994.4 20.3 86.3
+ 04 4 19 15 30 0 994.4 20.5 85.3
+ 04 4 19 15 45 0 994.4 21.0 84.2
+ 04 4 19 16 0 0 994.4 21.0 84.2
+ 04 4 19 16 15 0 994.3 21.0 84.6
+ 04 4 19 16 30 0 994.4 22.0 77.4
+ 04 4 19 16 45 0 994.2 22.9 71.5
+ 04 4 19 17 0 0 994.0 23.2 67.9
+ 04 4 19 17 15 0 994.2 24.2 65.7
+ 04 4 19 17 30 0 994.2 23.9 63.5
+ 04 4 19 17 45 0 994.3 24.3 60.7
+ 04 4 19 18 0 0 993.9 23.9 61.6
+ 04 4 19 18 15 0 993.6 23.9 61.8
+ 04 4 19 18 30 0 993.3 24.7 59.6
+ 04 4 19 18 45 0 993.2 26.4 55.1
+ 04 4 19 19 0 0 993.0 27.6 50.0
+ 04 4 19 19 15 0 992.6 26.8 52.5
+ 04 4 19 19 30 0 992.4 27.1 50.9
+ 04 4 19 19 45 0 992.2 26.5 55.1
+ 04 4 19 20 0 0 992.4 27.0 52.2
+ 04 4 19 20 15 0 992.3 26.7 53.0
+ 04 4 19 20 30 0 992.2 26.9 52.2
+ 04 4 19 20 45 0 992.0 26.7 52.8
+ 04 4 19 21 0 0 991.8 26.8 53.6
+ 04 4 19 21 15 0 992.0 26.4 53.9
+ 04 4 19 21 30 0 991.8 26.0 55.9
+ 04 4 19 21 45 0 991.6 26.8 51.2
+ 04 4 19 22 0 0 991.6 26.6 51.2
+ 04 4 19 22 15 0 991.6 26.2 52.7
+ 04 4 19 22 30 0 991.4 26.2 53.1
+ 04 4 19 22 45 0 991.4 26.2 53.4
+ 04 4 19 23 0 0 991.2 26.3 53.3
+ 04 4 19 23 15 0 991.1 25.9 54.7
+ 04 4 19 23 30 0 991.0 25.7 55.8
+ 04 4 19 23 45 0 990.9 25.3 56.3
diff --git a/dev/tests/RinexMet/Logs/OutputCont.txt b/dev/tests/RinexMet/Logs/OutputCont.txt
new file mode 100644
index 0000000..45a6f51
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/OutputCont.txt
@@ -0,0 +1,212 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 10/05/2006 12:29:21 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 10 PR TD HR ZW ZD ZT WD WS RI# / TYPES OF OBSERV
+ HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HR SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 ZW SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 ZT SENSOR MOD/TYPE/ACC
+Vaisala PTB220 0.1 WD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 WS SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 RI SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.7
+ 04 4 19 0 15 0 992.8 23.6 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 0 30 0 992.8 23.4 60.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.4
+ 04 4 19 0 45 0 992.7 23.0 61.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.5
+ 04 4 19 1 0 0 992.6 22.7 63.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.6
+ 04 4 19 1 15 0 992.9 22.2 65.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 1 30 0 993.0 21.8 66.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 1 45 0 993.1 21.5 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 0 0 993.1 21.2 67.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 15 0 992.9 21.0 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 30 0 993.1 20.8 67.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 2 45 0 993.5 20.3 69.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 0 0 993.6 20.0 72.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 15 0 993.7 19.8 74.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 30 0 993.8 19.6 75.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 3 45 0 993.7 19.3 78.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 0 0 993.4 19.0 80.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 15 0 994.0 18.8 81.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 30 0 994.3 18.7 83.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 4 45 0 994.3 18.6 85.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 0 0 994.5 18.5 87.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 15 0 994.7 18.5 89.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 30 0 994.5 18.5 90.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 5 45 0 994.6 18.6 91.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 0 0 994.8 18.7 92.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 15 0 994.6 18.7 92.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 30 0 994.5 18.8 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 6 45 0 994.8 18.7 93.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 0 0 994.7 18.8 93.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 15 0 994.4 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 30 0 994.1 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 7 45 0 993.8 18.9 93.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 0 0 993.9 18.9 93.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 15 0 993.8 19.0 93.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 30 0 993.6 19.0 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 8 45 0 993.5 19.0 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 0 0 993.4 19.1 92.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 15 0 993.3 19.1 93.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 30 0 993.2 19.0 93.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 9 45 0 993.1 19.1 92.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 0 0 993.1 19.2 92.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 15 0 992.9 19.2 92.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 30 0 992.9 19.3 91.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 10 45 0 992.9 19.3 91.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 0 0 992.8 19.3 91.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 15 0 992.9 19.3 91.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 30 0 992.9 19.3 92.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 11 45 0 993.1 19.3 92.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 0 0 993.2 19.3 92.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 15 0 993.4 19.4 92.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 30 0 993.6 19.4 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 12 45 0 993.7 19.5 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 0 0 993.7 19.5 92.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 15 0 994.0 19.4 94.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 30 0 994.0 19.6 93.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 13 45 0 994.1 19.6 91.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 0 0 994.4 19.8 91.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 15 0 994.4 19.9 90.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 30 0 994.7 19.8 90.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 14 45 0 994.6 19.9 89.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 0 0 994.5 20.1 89.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 15 0 994.4 20.3 86.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 30 0 994.4 20.5 85.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 15 45 0 994.4 21.0 84.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 0 0 994.4 21.0 84.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 15 0 994.3 21.0 84.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 30 0 994.4 22.0 77.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 16 45 0 994.2 22.9 71.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 0 0 994.0 23.2 67.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 15 0 994.2 24.2 65.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 30 0 994.2 23.9 63.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 17 45 0 994.3 24.3 60.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 0 0 993.9 23.9 61.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 15 0 993.6 23.9 61.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 30 0 993.3 24.7 59.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 18 45 0 993.2 26.4 55.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 0 0 993.0 27.6 50.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 15 0 992.6 26.8 52.5 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 30 0 992.4 27.1 50.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 19 45 0 992.2 26.5 55.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 0 0 992.4 27.0 52.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 15 0 992.3 26.7 53.0 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 30 0 992.2 26.9 52.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 20 45 0 992.0 26.7 52.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 0 0 991.8 26.8 53.6 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 15 0 992.0 26.4 53.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 30 0 991.8 26.0 55.9 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 21 45 0 991.6 26.8 51.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 0 0 991.6 26.6 51.2 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 15 0 991.6 26.2 52.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 30 0 991.4 26.2 53.1 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 22 45 0 991.4 26.2 53.4 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 0 0 991.2 26.3 53.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 15 0 991.1 25.9 54.7 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 30 0 991.0 25.7 55.8 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
+ 04 4 19 23 45 0 990.9 25.3 56.3 50.0 40.0 30.0 20.0 15.0
+ 10.0 27.3
diff --git a/dev/tests/RinexMet/Logs/OutputDataExceptions.txt b/dev/tests/RinexMet/Logs/OutputDataExceptions.txt
new file mode 100644
index 0000000..e7175a3
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/OutputDataExceptions.txt
@@ -0,0 +1,14 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 10/05/2006 12:29:21 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 13 1 1 0 0 0 1.1 2.1 3.1
+ 13 1 1 0 0 0 0.0 0.0 0.0
diff --git a/dev/tests/RinexMet/Logs/SensorTypeError.04m b/dev/tests/RinexMet/Logs/SensorTypeError.04m
new file mode 100644
index 0000000..829df0b
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/SensorTypeError.04m
@@ -0,0 +1,14 @@
+ 2.10 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220zzzzzzzzzzzzzzzzzzzz 0.1 zzzPR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/dev/tests/RinexMet/Logs/UnSupRinex.04m b/dev/tests/RinexMet/Logs/UnSupRinex.04m
new file mode 100644
index 0000000..88ab774
--- /dev/null
+++ b/dev/tests/RinexMet/Logs/UnSupRinex.04m
@@ -0,0 +1,14 @@
+ 3.30 Meteorological RINEX VERSION / TYPE
+GFW - RMW NIMA 04/18/2004 23:58:50 PGM / RUN BY / DATE
+Some weather data may have corrected values COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+ 3 PR TD HI # / TYPES OF OBSERV
+Vaisala PTB220 0.1 PR SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 TD SENSOR MOD/TYPE/ACC
+Vaisala HMP230 0.1 HI SENSOR MOD/TYPE/ACC
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 PR SENSOR POS XYZ/H
+ -740289.8363 -5457071.7414 3207245.6207 0.0000 TD SENSOR POS XYZ/H
+ END OF HEADER
+ 04 4 19 0 0 0 992.6 23.9 59.7
+ 04 4 19 0 15 0 992.8 23.6 61.6
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexMet/RinexMetBase.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexMet/RinexMetBase.cpp
diff --git a/dev/tests/RinexMet/RinexMetBase.hpp b/dev/tests/RinexMet/RinexMetBase.hpp
new file mode 120000
index 0000000..4420809
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetBase.hpp
@@ -0,0 +1 @@
+../../src/RinexMetBase.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexMet/RinexMetData.cpp b/dev/tests/RinexMet/RinexMetData.cpp
new file mode 120000
index 0000000..e4ef581
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetData.cpp
@@ -0,0 +1 @@
+../../src/RinexMetData.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexMet/RinexMetData.hpp b/dev/tests/RinexMet/RinexMetData.hpp
new file mode 120000
index 0000000..488ceb9
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetData.hpp
@@ -0,0 +1 @@
+../../src/RinexMetData.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexMet/RinexMetFilterOperators.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexMet/RinexMetFilterOperators.cpp
diff --git a/dev/tests/RinexMet/RinexMetFilterOperators.hpp b/dev/tests/RinexMet/RinexMetFilterOperators.hpp
new file mode 120000
index 0000000..8447294
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetFilterOperators.hpp
@@ -0,0 +1 @@
+../../src/RinexMetFilterOperators.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexMet/RinexMetHeader.cpp b/dev/tests/RinexMet/RinexMetHeader.cpp
new file mode 120000
index 0000000..ae77cf6
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetHeader.cpp
@@ -0,0 +1 @@
+../../src/RinexMetHeader.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexMet/RinexMetHeader.hpp b/dev/tests/RinexMet/RinexMetHeader.hpp
new file mode 120000
index 0000000..29b5215
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetHeader.hpp
@@ -0,0 +1 @@
+../../src/RinexMetHeader.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexMet/RinexMetStream.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexMet/RinexMetStream.cpp
diff --git a/dev/tests/RinexMet/RinexMetStream.hpp b/dev/tests/RinexMet/RinexMetStream.hpp
new file mode 120000
index 0000000..85653be
--- /dev/null
+++ b/dev/tests/RinexMet/RinexMetStream.hpp
@@ -0,0 +1 @@
+../../src/RinexMetStream.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexMet/xRinexMet.cpp b/dev/tests/RinexMet/xRinexMet.cpp
new file mode 100644
index 0000000..d3135bc
--- /dev/null
+++ b/dev/tests/RinexMet/xRinexMet.cpp
@@ -0,0 +1,516 @@
+#include "xRinexMet.hpp"
+#include "StringUtils.hpp"
+
+using namespace gpstk;
+
+using namespace std;
+CPPUNIT_TEST_SUITE_REGISTRATION (xRinexMet);
+
+void xRinexMet :: setUp (void)
+{
+}
+
+/*
+**** A test to assure that the bistAsString function works as intended
+*/
+
+void xRinexMet :: bitsAsStringTest (void)
+{
+
+ gpstk::RinexMetHeader RinexMetHeader;
+
+ string a = "RINEX VERSION / TYPE";
+ string b = "PGM / RUN BY / DATE";
+ string c = "COMMENT";
+ string d = "MARKER NAME";
+ string e = "MARKER NUMBER";
+ string f = "# / TYPES OF OBSERV";
+ string g = "SENSOR MOD/TYPE/ACC";
+ string h = "SENSOR POS XYZ/H";
+ string i = "END OF HEADER";
+ string z = "*UNKNOWN/INVALID BITS*";
+ CPPUNIT_ASSERT_EQUAL(a,RinexMetHeader.bitsAsString(RinexMetHeader.versionValid));
+ CPPUNIT_ASSERT_EQUAL(b,RinexMetHeader.bitsAsString(RinexMetHeader.runByValid));
+ CPPUNIT_ASSERT_EQUAL(c,RinexMetHeader.bitsAsString(RinexMetHeader.commentValid));
+ CPPUNIT_ASSERT_EQUAL(d,RinexMetHeader.bitsAsString(RinexMetHeader.markerNameValid));
+ CPPUNIT_ASSERT_EQUAL(e,RinexMetHeader.bitsAsString(RinexMetHeader.markerNumberValid));
+ CPPUNIT_ASSERT_EQUAL(f,RinexMetHeader.bitsAsString(RinexMetHeader.obsTypeValid));
+ CPPUNIT_ASSERT_EQUAL(g,RinexMetHeader.bitsAsString(RinexMetHeader.sensorTypeValid));
+ CPPUNIT_ASSERT_EQUAL(h,RinexMetHeader.bitsAsString(RinexMetHeader.sensorPosValid));
+ CPPUNIT_ASSERT_EQUAL(i,RinexMetHeader.bitsAsString(RinexMetHeader.endValid));
+ //Defult Case
+ CPPUNIT_ASSERT_EQUAL(z,RinexMetHeader.bitsAsString(RinexMetHeader.allValid21));
+
+}
+
+/*
+**** A test to assure that the version validity bits are what we expect them to be
+*/
+void xRinexMet :: bitStringTest(void)
+{
+
+ gpstk::RinexMetHeader RinexMetHeader;
+ string sep=", ";
+ string a = "\"RINEX VERSION / TYPE\"";
+ string b = "\"RINEX VERSION / TYPE\", \"PGM / RUN BY / DATE\", \"MARKER NAME\", \"# / TYPES OF OBSERV\", \"SENSOR MOD/TYPE/ACC\", \"SENSOR POS XYZ/H\", \"END OF HEADER\"";
+ CPPUNIT_ASSERT_EQUAL(a, RinexMetHeader.bitString(RinexMetHeader.versionValid,'\"',sep));
+ CPPUNIT_ASSERT_EQUAL(b, RinexMetHeader.bitString(RinexMetHeader.allValid21,'\"',sep));
+ CPPUNIT_ASSERT_EQUAL(b, RinexMetHeader.bitString(RinexMetHeader.allValid20,'\"',sep));
+ //CPPUNIT_ASSERT_EQUAL(b, RinexMetHeader.bitString(RinexMetHeader.allValid20,' ',sep));
+
+}
+
+/*
+**** A small test of the reallyPutRecord member of the RinexMetHeader with a few execptions such as
+**** an Unsupported Rinex version (e.g. 3.33) and a Missing Marker Name
+*/
+void xRinexMet :: reallyPutRecordTest(void)
+{
+
+ gpstk::RinexMetHeader RinexMetHeader;
+ gpstk::RinexMetStream UnSupRinex("Logs/UnSupRinex.04m");
+ gpstk::RinexMetStream MissingMarkerName("Logs/MissingMarkerName");
+ gpstk::RinexMetStream output("Logs/ExtraOutput.txt", ios::out);
+ output.exceptions(fstream::failbit);
+ try
+ {
+ UnSupRinex >> RinexMetHeader;
+ CPPUNIT_ASSERT_THROW(output << RinexMetHeader, gpstk::Exception);
+ MissingMarkerName >> RinexMetHeader;
+ CPPUNIT_ASSERT_THROW(output << RinexMetHeader, gpstk::Exception);
+
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << (e);
+ }
+
+}
+
+// This function reads the RINEX MET header from the given FFStream.
+// If an error is encountered in reading form the stream, the stream
+// is reset to its original position and its fail-bit is set.
+void xRinexMet :: reallyGetRecordTest(void)
+{
+
+ //Header file we will be testing on
+ gpstk::RinexMetHeader RinexMetHeader;
+
+ //Normal Met File (No changes, straight from the archive)
+ gpstk::RinexMetStream Normal("Logs/408_110a.04m");
+
+ //Bad Line Length Met file (Add a space characacter to the end of the first line)
+ gpstk::RinexMetStream BLL("Logs/BLL.04m");
+
+ //Not a Met File (Change Met to zet in first line)
+ gpstk::RinexMetStream NMF("Logs/NotMetFile.04m");
+
+ //Bad Obs line (Add in something between the MET obs besides space)
+ gpstk::RinexMetStream BOL("Logs/BOL.04m");
+
+ //Bad Sesor Type line, Format Error
+ gpstk::RinexMetStream FER("Logs/FER.04m");
+
+ //Extra header line with HEADERLINE2
+ gpstk::RinexMetStream ExtraH("Logs/ExtraH.04m");
+
+ //Unsupported Rinex Version (3.30)
+ gpstk::RinexMetStream UnSupRinex("Logs/UnSupRinex.04m");
+
+ //Missing SensorPos
+ gpstk::RinexMetStream MissingSPos("Logs/MissingEOH.04m");
+
+ //Error in the part of the header which holds the list of observations within the Met file
+ gpstk::RinexMetStream ObsHeaderStringError("Logs/ObsHeaderStringError.04m");
+
+ //Error in the sensor type
+ gpstk::RinexMetStream SensorType("Logs/SensorTypeError.04m");
+
+ Normal.exceptions(fstream::failbit);
+ BLL.exceptions(fstream::failbit);
+ NMF.exceptions(fstream::failbit);
+ BOL.exceptions(fstream::failbit);
+ FER.exceptions(fstream::failbit);
+ ExtraH.exceptions(fstream::failbit);
+ UnSupRinex.exceptions(fstream::failbit);
+ MissingSPos.exceptions(fstream::failbit);
+ ObsHeaderStringError.exceptions(fstream::failbit);
+ SensorType.exceptions(fstream::failbit);
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(ExtraH >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(UnSupRinex >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(MissingSPos >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(ObsHeaderStringError >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(SensorType >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(BLL >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(NMF >> RinexMetHeader, gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(BOL >> RinexMetHeader, gpstk::Exception);
+
+ CPPUNIT_ASSERT_NO_THROW(Normal >> RinexMetHeader);
+ }
+ catch(gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+}
+
+/*
+**** This test tests the convertObsType member of RinexMetHeader
+**** This particular test asserts if two Met Types are equal
+*/
+void xRinexMet :: convertObsTypeSTRTest (void)
+{
+
+ gpstk::RinexMetHeader RinexMetHeader;
+ gpstk::RinexMetStream Normal("Logs/408_110a.04m");
+ Normal >> RinexMetHeader;
+ gpstk::RinexMetHeader::RinexMetType PR = RinexMetHeader.convertObsType("PR");
+ gpstk::RinexMetHeader::RinexMetType TD = RinexMetHeader.convertObsType("TD");
+ gpstk::RinexMetHeader::RinexMetType HR = RinexMetHeader.convertObsType("HR");
+ gpstk::RinexMetHeader::RinexMetType ZW = RinexMetHeader.convertObsType("ZW");
+ gpstk::RinexMetHeader::RinexMetType ZD = RinexMetHeader.convertObsType("ZD");
+ gpstk::RinexMetHeader::RinexMetType ZT = RinexMetHeader.convertObsType("ZT");
+ gpstk::RinexMetHeader::RinexMetType HI = RinexMetHeader.convertObsType("HI");
+ gpstk::RinexMetHeader::RinexMetType KE = RinexMetHeader.convertObsType("HI");
+
+ string PRS = "PR";
+ string TDS = "TD";
+ string HRS = "HR";
+ string ZWS = "ZW";
+ string ZDS = "ZD";
+ string ZTS = "ZT";
+ string HIS = "HI";
+ CPPUNIT_ASSERT_EQUAL(PR,RinexMetHeader.convertObsType(PRS));
+ CPPUNIT_ASSERT_EQUAL(TD,RinexMetHeader.convertObsType(TDS));
+ CPPUNIT_ASSERT_EQUAL(HR,RinexMetHeader.convertObsType(HRS));
+ CPPUNIT_ASSERT_EQUAL(ZW,RinexMetHeader.convertObsType(ZWS));
+ CPPUNIT_ASSERT_EQUAL(ZD,RinexMetHeader.convertObsType(ZDS));
+ CPPUNIT_ASSERT_EQUAL(ZT,RinexMetHeader.convertObsType(ZTS));
+ CPPUNIT_ASSERT_EQUAL(HI,RinexMetHeader.convertObsType(HIS));
+
+}
+
+/*
+**** This test tests the convertObsType member of RinexMetHeader
+**** This particular test asserts if two strings are equal
+*/
+void xRinexMet :: convertObsTypeHeaderTest (void)
+{
+
+ gpstk::RinexMetHeader RinexMetHeader;
+ gpstk::RinexMetStream Normal("Logs/408_110a.04m");
+ Normal >> RinexMetHeader;
+ gpstk::RinexMetHeader::RinexMetType PR = RinexMetHeader.convertObsType("PR");
+ gpstk::RinexMetHeader::RinexMetType TD = RinexMetHeader.convertObsType("TD");
+ gpstk::RinexMetHeader::RinexMetType HR = RinexMetHeader.convertObsType("HR");
+ gpstk::RinexMetHeader::RinexMetType ZW = RinexMetHeader.convertObsType("ZW");
+ gpstk::RinexMetHeader::RinexMetType ZD = RinexMetHeader.convertObsType("ZD");
+ gpstk::RinexMetHeader::RinexMetType ZT = RinexMetHeader.convertObsType("ZT");
+ gpstk::RinexMetHeader::RinexMetType KE = RinexMetHeader.convertObsType("ZT");
+ string PRS = "PR";
+ string TDS = "TD";
+ string HRS = "HR";
+ string ZWS = "ZW";
+ string ZDS = "ZD";
+ string ZTS = "ZT";
+ CPPUNIT_ASSERT_EQUAL(PRS,RinexMetHeader.convertObsType(PR));
+ CPPUNIT_ASSERT_EQUAL(TDS,RinexMetHeader.convertObsType(TD));
+ CPPUNIT_ASSERT_EQUAL(HRS,RinexMetHeader.convertObsType(HR));
+ CPPUNIT_ASSERT_EQUAL(ZWS,RinexMetHeader.convertObsType(ZW));
+ CPPUNIT_ASSERT_EQUAL(ZDS,RinexMetHeader.convertObsType(ZD));
+ CPPUNIT_ASSERT_EQUAL(ZTS,RinexMetHeader.convertObsType(ZT));
+ try
+ {
+ CPPUNIT_ASSERT_THROW(RinexMetHeader.convertObsType("KE"),gpstk::FFStreamError);
+ }
+ catch (gpstk::Exception& e)
+ {
+ }
+
+}
+
+/*
+**** This test checks to make sure that the internal members of the RinexMetHeader are as we think they
+**** should be. Also at the end of this test, we check and make sure our output file is equal to our input
+*/
+void xRinexMet :: hardCodeTest (void)
+{
+
+ gpstk::RinexMetStream RinexMetStream("Logs/408_110a.04m");
+ gpstk::RinexMetStream out("Logs/Output.txt",ios::out);
+ gpstk::RinexMetHeader RinexMetHeader;
+ RinexMetStream >> RinexMetHeader;
+
+ //Start of RinexMetHeader member check to assure that what we want is whats in there
+ CPPUNIT_ASSERT_EQUAL(2.1,RinexMetHeader.version);
+ CPPUNIT_ASSERT_EQUAL((string)"Meteorological",RinexMetHeader.fileType);
+ CPPUNIT_ASSERT_EQUAL((string)"GFW - RMW",RinexMetHeader.fileProgram);
+ CPPUNIT_ASSERT_EQUAL((string)"NIMA", RinexMetHeader.fileAgency);
+ CPPUNIT_ASSERT_EQUAL((string)"04/18/2004 23:58:50",RinexMetHeader.date);
+
+ vector<string>::const_iterator itr1 = RinexMetHeader.commentList.begin();
+ while (itr1 != RinexMetHeader.commentList.end())
+ {
+ CPPUNIT_ASSERT_EQUAL((string)"Some weather data may have corrected values",(*itr1));
+ itr1++;
+ }
+
+ CPPUNIT_ASSERT_EQUAL((string)"85408", RinexMetHeader.markerName);
+ CPPUNIT_ASSERT_EQUAL((string)"85408", RinexMetHeader.markerNumber);
+
+ vector<RinexMetHeader::RinexMetType>::const_iterator itr2 = RinexMetHeader.obsTypeList.begin();
+ CPPUNIT_ASSERT_EQUAL((string)"PR",RinexMetHeader.convertObsType(*itr2));
+ itr2++;
+ CPPUNIT_ASSERT_EQUAL((string)"TD",RinexMetHeader.convertObsType(*itr2));
+ itr2++;
+ CPPUNIT_ASSERT_EQUAL((string)"HI",RinexMetHeader.convertObsType(*itr2));
+
+ vector<RinexMetHeader::sensorType>::const_iterator itr3 = RinexMetHeader.sensorTypeList.begin();
+ CPPUNIT_ASSERT_EQUAL((string)"Vaisala",(*itr3).model);
+ CPPUNIT_ASSERT_EQUAL((string)"PTB220",(*itr3).type);
+ CPPUNIT_ASSERT_EQUAL(0.1, (*itr3).accuracy);
+ CPPUNIT_ASSERT_EQUAL((string)"PR",RinexMetHeader.convertObsType((*itr3).obsType));
+ itr3++;
+
+ CPPUNIT_ASSERT_EQUAL((string)"Vaisala",(*itr3).model);
+ CPPUNIT_ASSERT_EQUAL((string)"HMP230",(*itr3).type);
+ CPPUNIT_ASSERT_EQUAL(0.1, (*itr3).accuracy);
+ CPPUNIT_ASSERT_EQUAL((string)"TD",RinexMetHeader.convertObsType((*itr3).obsType));
+ itr3++;
+ CPPUNIT_ASSERT_EQUAL((string)"Vaisala",(*itr3).model);
+ CPPUNIT_ASSERT_EQUAL((string)"HMP230",(*itr3).type);
+ CPPUNIT_ASSERT_EQUAL(0.1, (*itr3).accuracy);
+ CPPUNIT_ASSERT_EQUAL((string)"HI",RinexMetHeader.convertObsType((*itr3).obsType));
+ itr3++;
+
+ vector<RinexMetHeader::sensorPosType>::const_iterator itr4 = RinexMetHeader.sensorPosList.begin();
+ CPPUNIT_ASSERT_EQUAL(-740289.8363,(*itr4).position[0]);
+ CPPUNIT_ASSERT_EQUAL(-5457071.7414,(*itr4).position[1]);
+ CPPUNIT_ASSERT_EQUAL(3207245.6207,(*itr4).position[2]);
+ CPPUNIT_ASSERT_EQUAL(0.0000,(*itr4).height);
+ CPPUNIT_ASSERT_EQUAL((string) "PR",RinexMetHeader.convertObsType((*itr4).obsType));
+ itr4++;
+ CPPUNIT_ASSERT_EQUAL(-740289.8363,(*itr4).position[0]);
+ CPPUNIT_ASSERT_EQUAL(-5457071.7414,(*itr4).position[1]);
+ CPPUNIT_ASSERT_EQUAL(3207245.6207,(*itr4).position[2]);
+ CPPUNIT_ASSERT_EQUAL(0.0000,(*itr4).height);
+ CPPUNIT_ASSERT_EQUAL((string) "TD",RinexMetHeader.convertObsType((*itr4).obsType));
+ //End of Header
+
+ out << RinexMetHeader;
+
+ gpstk::RinexMetData RinexMetData;
+
+ RinexMetStream >> RinexMetData;
+ gpstk::DayTime TimeGuess(2004,4,19,0,0,0);
+ CPPUNIT_ASSERT_EQUAL(TimeGuess,RinexMetData.time);
+ CPPUNIT_ASSERT_EQUAL(992.6,RinexMetData.data[RinexMetHeader.convertObsType("PR")]);
+ CPPUNIT_ASSERT_EQUAL(23.9,RinexMetData.data[RinexMetHeader.convertObsType("TD")]);
+ CPPUNIT_ASSERT_EQUAL(59.7,RinexMetData.data[RinexMetHeader.convertObsType("HI")]);
+ out << RinexMetData;
+ RinexMetStream >> RinexMetData;
+ gpstk::DayTime TimeGuess2(2004,4,19,0,15,0);
+ CPPUNIT_ASSERT_EQUAL(TimeGuess2,RinexMetData.time);
+ CPPUNIT_ASSERT_EQUAL(992.8,RinexMetData.data[RinexMetHeader.convertObsType("PR")]);
+ CPPUNIT_ASSERT_EQUAL(23.6,RinexMetData.data[RinexMetHeader.convertObsType("TD")]);
+ CPPUNIT_ASSERT_EQUAL(61.6,RinexMetData.data[RinexMetHeader.convertObsType("HI")]);
+ out << RinexMetData;
+ while (RinexMetStream >> RinexMetData)
+ {
+ out << RinexMetData;
+ }
+ CPPUNIT_ASSERT(fileEqualTest("Logs/408_110a.04m","Logs/Output.txt"));
+
+ gpstk::RinexMetStream MetDumps("Logs/MetDumps",ios::out);
+ RinexMetHeader.dump(MetDumps);
+ RinexMetData.dump(MetDumps);
+}
+
+/*
+**** This test covers are of the RinexMetHeader and Data which deal with continuation lines
+**** for the observations
+*/
+void xRinexMet :: continuationTest (void)
+{
+
+ gpstk::RinexMetStream RinexMetStream("Logs/ContLines10.04m");
+ gpstk::RinexMetStream out("Logs/OutputCont.txt",ios::out);
+ gpstk::RinexMetStream MetDumps("Logs/MetDumps",ios::out);
+ gpstk::RinexMetHeader RinexMetHeader;
+ gpstk::RinexMetData RinexMetData;
+ try
+ {
+ RinexMetStream >> RinexMetHeader;
+ out << RinexMetHeader;
+
+ RinexMetHeader.dump(MetDumps);
+ RinexMetData.dump(MetDumps);
+ RinexMetStream >> RinexMetData;
+ RinexMetData.dump(MetDumps);
+ out << RinexMetData;
+ while (RinexMetStream >> RinexMetData)
+ {
+ out << RinexMetData;
+ }
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/ContLines10.04m","Logs/OutputCont.txt"));
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+/*
+**** This test coveres several RinexMetData exceptions including a test with no observations data for the
+**** listed header Obs and an invalid time format
+*/
+void xRinexMet :: dataExceptionsTest (void)
+{
+ gpstk::RinexMetStream NoObs("Logs/NoObsData.04m");
+ gpstk::RinexMetStream InvalidTimeFormat("Logs/InvalidTimeFormat.04m");
+ gpstk::RinexMetStream out("Logs/OutputDataExceptions.txt",ios::out);
+ gpstk::RinexMetHeader rmh;
+ gpstk::RinexMetData rme;
+ try{
+ NoObs >> rmh;
+ out << rmh;
+
+ while (NoObs >> rme)
+ {
+ out << rme;
+ }
+ InvalidTimeFormat >> rme;
+ out << rme;
+ InvalidTimeFormat >> rme;
+ out << rme;
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+/*
+**** Test for several of the members within RinexMetFilterOperators including merge, LessThanSimple, EqualsSimple,
+**** and LessThanFull.
+*/
+void xRinexMet :: filterOperatorsTest (void)
+{
+ try
+ {
+
+
+ gpstk::RinexMetStream FilterStream1("Logs/FilterTest1.04m");
+ FilterStream1.open("Logs/FilterTest1.04m",std::ios::in);
+ gpstk::RinexMetStream FilterStream2("Logs/FilterTest2.04m");
+ gpstk::RinexMetStream FilterStream3("Logs/FilterTest3.04m");
+ gpstk::RinexMetStream FilterStream4("Logs/FilterTest4.04m");
+ gpstk::RinexMetStream out("Logs/FilterOutput.txt",ios::out);
+
+ gpstk::RinexMetHeader FilterHeader1;
+ gpstk::RinexMetHeader FilterHeader2;
+ gpstk::RinexMetHeader FilterHeader3;
+ gpstk::RinexMetHeader FilterHeader4;
+
+ gpstk::RinexMetData FilterData1;
+ gpstk::RinexMetData FilterData2;
+ gpstk::RinexMetData FilterData3;
+ gpstk::RinexMetData FilterData4;
+
+
+ FilterStream1 >> FilterHeader1;
+ FilterStream2 >> FilterHeader2;
+ FilterStream3 >> FilterHeader3;
+ FilterStream4 >> FilterHeader4;
+
+ while (FilterStream1 >> FilterData1)
+ {
+ }
+ while (FilterStream2 >> FilterData2)
+ {
+ }
+ while (FilterStream3 >> FilterData3)
+ {
+ }
+ while (FilterStream4 >> FilterData4)
+ {
+ }
+
+ gpstk::RinexMetHeaderTouchHeaderMerge merged;
+ merged(FilterHeader1);
+ merged(FilterHeader2);
+ gpstk::RinexMetDataOperatorLessThanFull(merged.obsSet);
+ out << merged.theHeader;
+
+ gpstk::RinexMetDataOperatorEqualsSimple EqualsSimple;
+ CPPUNIT_ASSERT_EQUAL(true,EqualsSimple(FilterData1, FilterData2));
+ CPPUNIT_ASSERT_EQUAL(false,EqualsSimple(FilterData1, FilterData3));
+
+ gpstk::RinexMetDataOperatorLessThanSimple LessThanSimple;
+ CPPUNIT_ASSERT_EQUAL(false,LessThanSimple(FilterData1, FilterData2));
+ CPPUNIT_ASSERT_EQUAL(true,LessThanSimple(FilterData1, FilterData3));
+
+ gpstk::RinexMetDataOperatorLessThanFull LessThanFull(merged.obsSet);
+ CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData1, FilterData2));
+ CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData2, FilterData1));
+ CPPUNIT_ASSERT_EQUAL(true,LessThanFull(FilterData1, FilterData3));
+ CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData3, FilterData1));
+
+ gpstk::DayTime Start = gpstk::DayTime::END_OF_TIME;
+ gpstk::DayTime End = gpstk::DayTime::BEGINNING_OF_TIME;
+ gpstk::DayTime Start2 = gpstk::DayTime::BEGINNING_OF_TIME;
+ gpstk::DayTime End2 = gpstk::DayTime::END_OF_TIME;
+ gpstk::RinexMetDataFilterTime FilterTime(Start,End);
+ gpstk::RinexMetDataFilterTime FilterTime2(Start2,End2);
+ CPPUNIT_ASSERT_EQUAL(true,FilterTime(FilterData1));
+ CPPUNIT_ASSERT_EQUAL(false,FilterTime2(FilterData1));
+ }
+ catch(gpstk::Exception& e)
+ {
+
+ }
+
+
+}
+
+/*
+**** A helper function for xRinexMet to line by line, check if the two files given are the same.
+**** Takes in two file names within double quotes "FILEONE.TXT" "FILETWO.TXT". Returns true if
+**** the files are equal. Skips the first two lines becasue dates are often writen as the current
+**** data and thus very hard to pin down a specific time for.
+*/
+bool xRinexMet :: fileEqualTest (char* handle1, char* handle2)
+{
+ bool isEqual = false;
+ int counter = 0;
+ ifstream File1;
+ ifstream File2;
+
+ std::string File1Line;
+ std::string File2Line;
+
+ File1.open(handle1);
+ File2.open(handle2);
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ while (!File1.eof())
+ {
+ if (File2.eof())
+ return isEqual;
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+ if (File1Line != File2Line)
+ return isEqual;
+ }
+ if (!File2.eof())
+ return isEqual;
+ else
+ return isEqual = true;
+}
diff --git a/dev/tests/RinexMet/xRinexMet.hpp b/dev/tests/RinexMet/xRinexMet.hpp
new file mode 100644
index 0000000..12646a2
--- /dev/null
+++ b/dev/tests/RinexMet/xRinexMet.hpp
@@ -0,0 +1,54 @@
+#ifndef XRINEXMET_HPP
+#define XRINEXMET_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "RinexMetBase.hpp"
+#include "RinexMetData.hpp"
+#include "RinexMetHeader.hpp"
+#include "RinexMetFilterOperators.hpp"
+#include "RinexMetStream.hpp"
+#include "Exception.hpp"
+#include <fstream>
+
+/*
+**** This test covers the RinexMet*.[ch]pp files for Rinex I/O Manipulation
+*/
+
+using namespace std;
+
+class xRinexMet: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xRinexMet);
+ CPPUNIT_TEST (bitsAsStringTest);
+ CPPUNIT_TEST (bitStringTest);
+ CPPUNIT_TEST (reallyPutRecordTest);
+ CPPUNIT_TEST (reallyGetRecordTest);
+ CPPUNIT_TEST (convertObsTypeSTRTest);
+ CPPUNIT_TEST (convertObsTypeHeaderTest);
+ CPPUNIT_TEST (hardCodeTest);
+ CPPUNIT_TEST (continuationTest);
+ CPPUNIT_TEST (dataExceptionsTest);
+ CPPUNIT_TEST (filterOperatorsTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void bitsAsStringTest (void);
+ void bitStringTest (void);
+ void reallyPutRecordTest (void);
+ void reallyGetRecordTest (void);
+ void convertObsTypeSTRTest (void);
+ void convertObsTypeHeaderTest (void);
+ void hardCodeTest (void);
+ void continuationTest (void);
+ void dataExceptionsTest (void);
+ void filterOperatorsTest (void);
+ bool fileEqualTest (char* handle1, char* handle2);
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/RinexMet/xRinexMetM.cpp b/dev/tests/RinexMet/xRinexMetM.cpp
new file mode 100644
index 0000000..34e6efc
--- /dev/null
+++ b/dev/tests/RinexMet/xRinexMetM.cpp
@@ -0,0 +1,28 @@
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/RinexNav/Jamfile b/dev/tests/RinexNav/Jamfile
new file mode 100644
index 0000000..8187483
--- /dev/null
+++ b/dev/tests/RinexNav/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP RinexNav ;
+TestMain RinexNav/xRinexNav.tst : RinexNav/xRinexNavM.cpp RinexNav/xRinexNav.cpp RinexNav/RinexNavBase.cpp RinexNav/RinexNavData.cpp RinexNav/RinexNavFilterOperators.cpp RinexNav/RinexNavHeader.cpp RinexNav/RinexNavStream.cpp ;
diff --git a/dev/tests/RinexNav/Logs/BACKUP b/dev/tests/RinexNav/Logs/BACKUP
new file mode 100644
index 0000000..cfc32db
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/BACKUP
@@ -0,0 +1,24 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 09/02/1999 19:22:36 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
diff --git a/dev/tests/RinexNav/Logs/BadHeader.99n b/dev/tests/RinexNav/Logs/BadHeader.99n
new file mode 100644
index 0000000..88bdf58
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/BadHeader.99n
@@ -0,0 +1,8 @@
+ 3.33 N : GPS NAV DATA DATARINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
diff --git a/dev/tests/RinexNav/Logs/FilterOutput.txt b/dev/tests/RinexNav/Logs/FilterOutput.txt
new file mode 100644
index 0000000..042a341
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/FilterOutput.txt
@@ -0,0 +1,9 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 10/05/2006 12:29:20 PGM / RUN BY / DATE
+THIS IS A DIFFERENT COMMENT COMMENT
+THIS IS ONE COMMENT COMMENT
+ .167600D-07 .223500D-07-.119200D-06-.119200D-06 ION ALPHA
+ .120800D+06 .131000D+06-.131000D+06-.196600D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
diff --git a/dev/tests/RinexNav/Logs/FilterTest1.99n b/dev/tests/RinexNav/Logs/FilterTest1.99n
new file mode 100644
index 0000000..dec360e
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/FilterTest1.99n
@@ -0,0 +1,24 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/FilterTest2.99n b/dev/tests/RinexNav/Logs/FilterTest2.99n
new file mode 100644
index 0000000..a30cd6d
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/FilterTest2.99n
@@ -0,0 +1,24 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+THIS IS A DIFFERENT COMMENT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/FilterTest3.99n b/dev/tests/RinexNav/Logs/FilterTest3.99n
new file mode 100644
index 0000000..7211d9a
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/FilterTest3.99n
@@ -0,0 +1,24 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 00 19 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 00 00 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/IncompleteHeader.99n b/dev/tests/RinexNav/Logs/IncompleteHeader.99n
new file mode 100644
index 0000000..68c97cf
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/IncompleteHeader.99n
@@ -0,0 +1,7 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/InvalidLineLength.99n b/dev/tests/RinexNav/Logs/InvalidLineLength.99n
new file mode 100644
index 0000000..7de843d
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/InvalidLineLength.99n
@@ -0,0 +1,8 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPEEEEEE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/NotaNavFile.99n b/dev/tests/RinexNav/Logs/NotaNavFile.99n
new file mode 100644
index 0000000..1bd1b7c
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/NotaNavFile.99n
@@ -0,0 +1,8 @@
+ 2.10 Z : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/RinexDump b/dev/tests/RinexNav/Logs/RinexDump
new file mode 100644
index 0000000..65aecd7
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/RinexDump
@@ -0,0 +1,13 @@
+---------------------------------- REQUIRED ----------------------------------
+Rinex Version 2.10, File type NAVIGATION.
+Prgm: XXRINEXN V3, Run: 09/02/1999 19:22:36, By: AIUB
+(This header is VALID 2.1 Rinex.)
+---------------------------------- OPTIONAL ----------------------------------
+Ion alpha: 1.6760e-08 2.2350e-08 -1.1920e-07 -1.1920e-07
+Ion beta: 1.2080e+05 1.3100e+05 -1.3100e+05 -1.9660e+05
+Delta UTC: A0=1.331791281700e-07, A1=1.074695887800e-13, UTC ref = (1025,552960)
+Leap seconds: 13
+Comments (1) :
+THIS IS ONE COMMENT
+-------------------------------- END OF HEADER -------------------------------
+PRN: 13 TOE: 09/02/1999 19:00:00 TOC: 1025 414000.000 IODE: 133 HOWtime: 410400
diff --git a/dev/tests/RinexNav/Logs/RinexNavExample.99n b/dev/tests/RinexNav/Logs/RinexNavExample.99n
new file mode 100644
index 0000000..2df5b7f
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/RinexNavExample.99n
@@ -0,0 +1,24 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 09/02/1999 19:22:36 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .167600D-07 .223500D-07-.119200D-06-.119200D-06 ION ALPHA
+ .120800D+06 .131000D+06-.131000D+06-.196600D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
diff --git a/dev/tests/RinexNav/Logs/RinexNavHeaderNorm.99n b/dev/tests/RinexNav/Logs/RinexNavHeaderNorm.99n
new file mode 100644
index 0000000..38aae6d
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/RinexNavHeaderNorm.99n
@@ -0,0 +1,8 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
diff --git a/dev/tests/RinexNav/Logs/TestOutput.99n b/dev/tests/RinexNav/Logs/TestOutput.99n
new file mode 100644
index 0000000..a0c0552
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/TestOutput.99n
@@ -0,0 +1,24 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 10/05/2006 12:29:20 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .167600D-07 .223500D-07-.119200D-06-.119200D-06 ION ALPHA
+ .120800D+06 .131000D+06-.131000D+06-.196600D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
diff --git a/dev/tests/RinexNav/Logs/TestOutput2.99n b/dev/tests/RinexNav/Logs/TestOutput2.99n
new file mode 100644
index 0000000..a0c0552
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/TestOutput2.99n
@@ -0,0 +1,24 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 10/05/2006 12:29:20 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .167600D-07 .223500D-07-.119200D-06-.119200D-06 ION ALPHA
+ .120800D+06 .131000D+06-.131000D+06-.196600D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
diff --git a/dev/tests/RinexNav/Logs/TestOutput3.99n b/dev/tests/RinexNav/Logs/TestOutput3.99n
new file mode 100644
index 0000000..a0c0552
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/TestOutput3.99n
@@ -0,0 +1,24 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 10/05/2006 12:29:20 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .167600D-07 .223500D-07-.119200D-06-.119200D-06 ION ALPHA
+ .120800D+06 .131000D+06-.131000D+06-.196600D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
diff --git a/dev/tests/RinexNav/Logs/TestOutputEric.99n b/dev/tests/RinexNav/Logs/TestOutputEric.99n
new file mode 100644
index 0000000..82f8cbd
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/TestOutputEric.99n
@@ -0,0 +1,24 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 08/14/2006 14:17:58 PGM / RUN BY / DATE
+THIS IS ONE COMMENT COMMENT
+ .167600D-07 .223500D-07-.119200D-06-.119200D-06 ION ALPHA
+ .120800D+06 .131000D+06-.131000D+06-.196600D+06 ION BETA
+ .1331791281700D-06 .1074695887800D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
+ 6 99 9 2 17 51 44.0 -.839701388031D-03 -.165982783074D-10 .000000000000D+00
+ .910000000000D+02 .934062500000D+02 .116040547840D-08 .162092304801D+00
+ .484101474285D-05 .626740418375D-02 .652112066746D-05 .515365489006D+04
+ .409904000000D+06 -.242143869400D-07 .329237003460D+00 -.596046447754D-07
+ .111541663136D+01 .326593750000D+03 .206958726335D+01 -.638312302555D-08
+ .307155651409D-09 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .910000000000D+02
+ .406800000000D+06 .000000000000D+00
+13 99 9 2 19 0 0.0 .490025617182D-03 .204636307899D-11 .000000000000D+00
+ .133000000000D+03 -.963125000000D+02 .146970407622D-08 .292961152146D+01
+ -.498816370964D-05 .200239347760D-02 .928156077862D-05 .515328476143D+04
+ .414000000000D+06 -.279396772385D-07 .243031939942D+01 -.558793544769D-07
+ .110192796930D+01 .271187500000D+03 -.232757915425D+01 -.619632953057D-08
+ -.785747015231D-11 .000000000000D+00 .102500000000D+04 .000000000000D+00
+ .000000000000D+00 .000000000000D+00 .000000000000D+00 .389000000000D+03
+ .410400000000D+06 .000000000000D+00
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexNav/Logs/TestOutputHeader.99n
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexNav/Logs/TestOutputHeader.99n
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexNav/Logs/TestOutputHeader2.99n
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexNav/Logs/TestOutputHeader2.99n
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexNav/Logs/TestOutputHeader3.99n
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexNav/Logs/TestOutputHeader3.99n
diff --git a/dev/tests/RinexNav/Logs/UnknownHeaderLabel.99n b/dev/tests/RinexNav/Logs/UnknownHeaderLabel.99n
new file mode 100644
index 0000000..fbef794
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/UnknownHeaderLabel.99n
@@ -0,0 +1,9 @@
+ 2.10 N : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ UNKNOWN LABEL
+ END OF HEADER
\ No newline at end of file
diff --git a/dev/tests/RinexNav/Logs/UnsupportedRinex.99n b/dev/tests/RinexNav/Logs/UnsupportedRinex.99n
new file mode 100644
index 0000000..fcdb7d0
--- /dev/null
+++ b/dev/tests/RinexNav/Logs/UnsupportedRinex.99n
@@ -0,0 +1,8 @@
+ 3.33 N : GPS NAV DATA RINEX VERSION / TYPE
+XXRINEXN V3 AIUB 1999-09-02 19:22:36 PGM / RUN BY / DATE
+EXAMPLE OF VERSION 2.10 FORMAT COMMENT
+ .1676D-07 .2235D-07 -.1192D-06 -.1192D-06 ION ALPHA
+ .1208D+06 .1310D+06 -.1310D+06 -.1966D+06 ION BETA
+ .133179128170D-06 .107469588780D-12 552960 1025 DELTA-UTC: A0,A1,T,W
+ 13 LEAP SECONDS
+ END OF HEADER
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexNav/RinexNavBase.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexNav/RinexNavBase.cpp
diff --git a/dev/tests/RinexNav/RinexNavBase.hpp b/dev/tests/RinexNav/RinexNavBase.hpp
new file mode 120000
index 0000000..058930f
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavBase.hpp
@@ -0,0 +1 @@
+../../src/RinexNavBase.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexNav/RinexNavData.cpp b/dev/tests/RinexNav/RinexNavData.cpp
new file mode 120000
index 0000000..95e5280
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavData.cpp
@@ -0,0 +1 @@
+../../src/RinexNavData.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexNav/RinexNavData.hpp b/dev/tests/RinexNav/RinexNavData.hpp
new file mode 120000
index 0000000..facc636
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavData.hpp
@@ -0,0 +1 @@
+../../src/RinexNavData.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexNav/RinexNavFilterOperators.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexNav/RinexNavFilterOperators.cpp
diff --git a/dev/tests/RinexNav/RinexNavFilterOperators.hpp b/dev/tests/RinexNav/RinexNavFilterOperators.hpp
new file mode 120000
index 0000000..40ad292
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavFilterOperators.hpp
@@ -0,0 +1 @@
+../../src/RinexNavFilterOperators.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexNav/RinexNavHeader.cpp b/dev/tests/RinexNav/RinexNavHeader.cpp
new file mode 120000
index 0000000..7571667
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavHeader.cpp
@@ -0,0 +1 @@
+../../src/RinexNavHeader.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexNav/RinexNavHeader.hpp b/dev/tests/RinexNav/RinexNavHeader.hpp
new file mode 120000
index 0000000..7cffa75
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavHeader.hpp
@@ -0,0 +1 @@
+../../src/RinexNavHeader.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexNav/RinexNavStream.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexNav/RinexNavStream.cpp
diff --git a/dev/tests/RinexNav/RinexNavStream.hpp b/dev/tests/RinexNav/RinexNavStream.hpp
new file mode 120000
index 0000000..e95553a
--- /dev/null
+++ b/dev/tests/RinexNav/RinexNavStream.hpp
@@ -0,0 +1 @@
+../../src/RinexNavStream.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexNav/xRinexNav.cpp b/dev/tests/RinexNav/xRinexNav.cpp
new file mode 100644
index 0000000..121d6d9
--- /dev/null
+++ b/dev/tests/RinexNav/xRinexNav.cpp
@@ -0,0 +1,271 @@
+#include "xRinexNav.hpp"
+#include "Exception.hpp"
+#include "RinexEphemerisStore.hpp"
+#include <string>
+#include "StringUtils.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xRinexNav);
+
+using namespace gpstk;
+
+void xRinexNav :: setUp (void)
+{
+}
+/*
+**** This test checks to make sure that the internal members of the RinexNavHeader are as we think they
+**** should be. Also at the end of this test, we check and make sure our output file is equal to our input
+**** This assures that if any changes happen, the test will fail and the user will know. Also, output was put
+**** into input three times over to make sure there were no small errors which blow up into big errors
+*/
+void xRinexNav :: hardCodeTest (void)
+{
+ try{
+ gpstk::RinexNavStream RinexNavStream("Logs/RinexNavExample.99n");
+ gpstk::RinexNavStream out("Logs/TestOutput.99n",ios::out);
+ gpstk::RinexNavStream dmp("Logs/RinexDump",ios::out);
+ gpstk::RinexNavHeader RinexNavHeader;
+ gpstk::RinexNavData RinexNavData;
+ RinexNavStream >> RinexNavHeader;
+ out << RinexNavHeader;
+
+ while (RinexNavStream >> RinexNavData)
+ {
+ out << RinexNavData;
+ }
+
+
+ CPPUNIT_ASSERT_EQUAL(2.1,RinexNavHeader.version);
+
+ CPPUNIT_ASSERT_EQUAL((string)"XXRINEXN V3",RinexNavHeader.fileProgram);
+ CPPUNIT_ASSERT_EQUAL((string)"AIUB", RinexNavHeader.fileAgency);
+ CPPUNIT_ASSERT_EQUAL((string)"09/02/1999 19:22:36",RinexNavHeader.date);
+
+ vector<string>::const_iterator itr1 = RinexNavHeader.commentList.begin();
+ CPPUNIT_ASSERT_EQUAL((string)"THIS IS ONE COMMENT",(*itr1));
+
+ CPPUNIT_ASSERT(fileEqualTest("Logs/RinexNavExample.99n","Logs/TestOutput.99n"));
+
+ gpstk::RinexNavStream RinexNavStream2("Logs/TestOutput.99n");
+ gpstk::RinexNavStream out2("Logs/TestOutput2.99n",ios::out);
+ gpstk::RinexNavHeader RinexNavHeader2;
+ gpstk::RinexNavData RinexNavData2;
+ RinexNavStream2 >> RinexNavHeader2;
+ out2 << RinexNavHeader2;
+
+ while (RinexNavStream2 >> RinexNavData2)
+ {
+ out2 << RinexNavData2;
+ }
+
+ gpstk::RinexNavStream RinexNavStream3("Logs/TestOutput2.99n");
+ gpstk::RinexNavStream out3("Logs/TestOutput3.99n",ios::out);
+ gpstk::RinexNavHeader RinexNavHeader3;
+ gpstk::RinexNavData RinexNavData3;
+ RinexNavStream3 >> RinexNavHeader3;
+ out3 << RinexNavHeader3;
+
+ while (RinexNavStream3 >> RinexNavData3)
+ {
+ out3 << RinexNavData3;
+ }
+ RinexNavHeader.dump(dmp);
+ RinexNavData.dump(dmp);
+ CPPUNIT_ASSERT(fileEqualTest("Logs/RinexNavExample.99n","Logs/TestOutput3.99n"));
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+/*
+**** This test check that Rinex Header exceptions are thrown
+*/
+void xRinexNav :: headerExceptionTest (void)
+{
+ try{
+ gpstk::RinexNavStream InvalidLineLength("Logs/InvalidLineLength.99n");
+ gpstk::RinexNavStream NotaNavFile("Logs/NotaNavFile.99n");
+ gpstk::RinexNavStream UnknownHeaderLabel("Logs/UnknownHeaderLabel.99n");
+ gpstk::RinexNavStream IncompleteHeader("Logs/IncompleteHeader.99n");
+ gpstk::RinexNavStream UnsupportedRinex("Logs/UnsupportedRinex.99n");
+ gpstk::RinexNavStream BadHeader("Logs/BadHeader.99n");
+ gpstk::RinexNavStream out("Logs/TestOutputHeader.99n",ios::out);
+ gpstk::RinexNavHeader Header;
+
+ InvalidLineLength.exceptions(fstream::failbit);
+ NotaNavFile.exceptions(fstream::failbit);
+ UnknownHeaderLabel.exceptions(fstream::failbit);
+ IncompleteHeader.exceptions(fstream::failbit);
+ UnsupportedRinex.exceptions(fstream::failbit);
+ BadHeader.exceptions(fstream::failbit);
+
+ CPPUNIT_ASSERT_THROW(InvalidLineLength >> Header,gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(NotaNavFile >> Header,gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(UnknownHeaderLabel >> Header,gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(IncompleteHeader >> Header,gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(UnsupportedRinex >> Header,gpstk::Exception);
+ CPPUNIT_ASSERT_THROW(BadHeader >> Header,gpstk::Exception);
+
+ IncompleteHeader >> Header;
+ out << Header;
+
+ UnsupportedRinex >> Header;
+ out << Header;
+
+ Header.dump(out);
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ //cout << e;
+ }
+
+
+}
+
+/*
+**** Test for RinexNavData methods
+*/
+void xRinexNav :: dataTest (void)
+{
+ try
+ {
+ gpstk::RinexEphemerisStore Store;
+ gpstk::DayTime Time(1999,9,2,17,51,44);
+ Store.loadFile("Logs/RinexNavExample.99n");
+ const gpstk::EngEphemeris& Eph6 = Store.findUserEphemeris((short) 6, Time);
+ gpstk::RinexNavData Data(Eph6);
+ list<double> NavDataList = Data.toList();
+
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+
+}
+/*
+**** test for several of the members within RinexNavFilterOperators including merge, EqualsFull, LessThanSimple
+**** LessThanFull, and FilterPRN
+*/
+void xRinexNav :: filterOperatorsTest (void)
+{
+ try
+ {
+
+
+ gpstk::RinexNavStream FilterStream1("Logs/FilterTest1.99n");
+ FilterStream1.open("Logs/FilterTest1.99n",std::ios::in);
+ gpstk::RinexNavStream FilterStream2("Logs/FilterTest2.99n");
+ gpstk::RinexNavStream FilterStream3("Logs/FilterTest3.99n");
+ gpstk::RinexNavStream out("Logs/FilterOutput.txt",ios::out);
+
+ gpstk::RinexNavHeader FilterHeader1;
+ gpstk::RinexNavHeader FilterHeader2;
+ gpstk::RinexNavHeader FilterHeader3;
+
+
+ gpstk::RinexNavData FilterData1;
+ gpstk::RinexNavData FilterData2;
+ gpstk::RinexNavData FilterData3;
+
+
+
+ FilterStream1 >> FilterHeader1;
+ FilterStream2 >> FilterHeader2;
+ FilterStream3 >> FilterHeader3;
+
+
+ while (FilterStream1 >> FilterData1)
+ {
+ }
+ while (FilterStream2 >> FilterData2)
+ {
+ }
+ while (FilterStream3 >> FilterData3)
+ {
+ }
+
+
+ gpstk::RinexNavHeaderTouchHeaderMerge merged;
+ merged(FilterHeader1);
+ merged(FilterHeader2);
+ out << merged.theHeader;
+
+ gpstk::RinexNavDataOperatorEqualsFull EqualsFull;
+ CPPUNIT_ASSERT_EQUAL(true,EqualsFull(FilterData1, FilterData2));
+ CPPUNIT_ASSERT_EQUAL(false,EqualsFull(FilterData1, FilterData3));
+
+ gpstk::RinexNavDataOperatorLessThanSimple LessThanSimple;
+ CPPUNIT_ASSERT_EQUAL(false,LessThanSimple(FilterData1, FilterData2));
+ //CPPUNIT_ASSERT_EQUAL(true,LessThanSimple(FilterData1, FilterData3));
+
+ gpstk::RinexNavDataOperatorLessThanFull LessThanFull;
+ //CPPUNIT_ASSERT_EQUAL(true,LessThanFull(FilterData1, FilterData3));
+ //CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData3, FilterData1));
+ CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData1, FilterData1));
+
+ std::list<long> list;
+ list.push_front(6);
+ gpstk::RinexNavDataFilterPRN FilterPRN(list);
+ CPPUNIT_ASSERT_EQUAL(true,FilterPRN(FilterData3));
+ //cout << FilterPRN(FilterData3) << endl;
+ }
+ catch(gpstk::Exception& e)
+ {
+
+ }
+
+
+}
+
+/*
+**** A helper function for xRinexNav to line by line, check if the two files given are the same.
+**** Takes in two file names within double quotes "FILEONE.TXT" "FILETWO.TXT". Returns true if
+**** the files are equal. Skips the first two lines becasue dates are often writen as the current
+**** data and thus very hard to pin down a specific time for.
+*/
+bool xRinexNav :: fileEqualTest (char* handle1, char* handle2)
+{
+ bool isEqual = false;
+ int counter = 0;
+ ifstream File1;
+ ifstream File2;
+
+ std::string File1Line;
+ std::string File2Line;
+
+ File1.open(handle1);
+ File2.open(handle2);
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ while (!File1.eof())
+ {
+ if (File2.eof())
+ {
+ cout << "ONE" << counter << endl;
+
+ return isEqual;
+ }
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ if (File1Line != File2Line)
+ {
+ cout << "TWO" << counter << endl;
+ cout << File1Line << endl;
+ cout << File2Line << endl;
+ return isEqual;
+ }
+ }
+ if (!File2.eof()){
+ cout << "THREE" << counter << endl;
+ return isEqual;
+ }
+ else
+ return isEqual = true;
+}
diff --git a/dev/tests/RinexNav/xRinexNav.hpp b/dev/tests/RinexNav/xRinexNav.hpp
new file mode 100644
index 0000000..922da76
--- /dev/null
+++ b/dev/tests/RinexNav/xRinexNav.hpp
@@ -0,0 +1,37 @@
+#ifndef XRINEXNAV_HPP
+#define XRINEXNAV_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "RinexNavHeader.hpp"
+#include "RinexNavData.hpp"
+#include "RinexNavStream.hpp"
+#include "RinexNavFilterOperators.hpp"
+#include "StringUtils.hpp"
+
+using namespace std;
+
+class xRinexNav: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xRinexNav);
+ CPPUNIT_TEST (hardCodeTest);
+ CPPUNIT_TEST (headerExceptionTest);
+ CPPUNIT_TEST (dataTest);
+ CPPUNIT_TEST (filterOperatorsTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void hardCodeTest (void);
+ void headerExceptionTest (void);
+ void dataTest (void);
+ void filterOperatorsTest (void);
+ bool fileEqualTest (char*, char*);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/RinexNav/xRinexNavM.cpp b/dev/tests/RinexNav/xRinexNavM.cpp
new file mode 100644
index 0000000..34e6efc
--- /dev/null
+++ b/dev/tests/RinexNav/xRinexNavM.cpp
@@ -0,0 +1,28 @@
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/RinexObs/Jamfile b/dev/tests/RinexObs/Jamfile
new file mode 100644
index 0000000..d4629c3
--- /dev/null
+++ b/dev/tests/RinexObs/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP RinexObs ;
+TestMain RinexObs/xRinexObs.tst : RinexObs/xRinexObsM.cpp RinexObs/xRinexObs.cpp RinexObs/RinexObsBase.cpp RinexObs/RinexObsData.cpp RinexObs/RinexObsFilterOperators.cpp RinexObs/RinexObsHeader.cpp RinexObs/RinexObsStream.cpp ;
diff --git a/dev/tests/RinexObs/Logs/BACKUP.06o b/dev/tests/RinexObs/Logs/BACKUP.06o
new file mode 100644
index 0000000..46f872a
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/BACKUP.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/BadEpochFlag.06o b/dev/tests/RinexObs/Logs/BadEpochFlag.06o
new file mode 100644
index 0000000..c366f0d
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/BadEpochFlag.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 9 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/BadEpochLine.06o b/dev/tests/RinexObs/Logs/BadEpochLine.06o
new file mode 100644
index 0000000..145f3ed
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/BadEpochLine.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/BadLineSize.06o b/dev/tests/RinexObs/Logs/BadLineSize.06o
new file mode 100644
index 0000000..91eaf25
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/BadLineSize.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250 zzzzzzz
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexObs/Logs/DataExceptionOutput.06o
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexObs/Logs/DataExceptionOutput.06o
diff --git a/dev/tests/RinexObs/Logs/FilterOutput.txt b/dev/tests/RinexObs/Logs/FilterOutput.txt
new file mode 100644
index 0000000..f9b9d16
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/FilterOutput.txt
@@ -0,0 +1,41 @@
+ 2.10 Observation S (Geosync) RINEX VERSION / TYPE
+row Dataflow Processing 10/05/2006 12:29:23 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 C1 C2 D1 D2 L1 L2 P1 P2 S1# / TYPES OF OBSERV
+ S2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 11 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 11 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS A SECOND COMMENT COMMENT
+THIS IS A SINGULAR COMMENT COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
diff --git a/dev/tests/RinexObs/Logs/FilterTest1.06o b/dev/tests/RinexObs/Logs/FilterTest1.06o
new file mode 100644
index 0000000..5f3aa9c
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/FilterTest1.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/10/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 11 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 11 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS A SINGULAR COMMENT COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 11 1 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 11 1 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 11 1 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 11 1 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 11 1 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 11 1 2 31.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/FilterTest2.06o b/dev/tests/RinexObs/Logs/FilterTest2.06o
new file mode 100644
index 0000000..2c759fe
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/FilterTest2.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/10/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 11 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 11 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS A SECOND COMMENT COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 11 1 0 0.0000000 1 9G 1G 5G11G14G15G18G22G25G30 0.999999999
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 11 1 0 35.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 11 1 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 11 1 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 11 1 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 11 1 2 31.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/FilterTest3.06o b/dev/tests/RinexObs/Logs/FilterTest3.06o
new file mode 100644
index 0000000..5f3aa9c
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/FilterTest3.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/10/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 11 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 11 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS A SINGULAR COMMENT COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 11 1 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 11 1 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 11 1 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 11 1 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 11 1 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 11 1 2 31.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/FilterTest4.06o b/dev/tests/RinexObs/Logs/FilterTest4.06o
new file mode 100644
index 0000000..5f3aa9c
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/FilterTest4.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/10/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 11 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 11 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS A SINGULAR COMMENT COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 11 1 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 11 1 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 11 1 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 11 1 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 11 1 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 11 1 2 31.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/IncompleteHeader.06o b/dev/tests/RinexObs/Logs/IncompleteHeader.06o
new file mode 100644
index 0000000..a62861e
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/IncompleteHeader.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation G (GPS) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+THIS IS MISSING A MARKER NAME COMMENT
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/InvalidLineLength.06o b/dev/tests/RinexObs/Logs/InvalidLineLength.06o
new file mode 100644
index 0000000..86a3c64
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/InvalidLineLength.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation G (GPS) RINEX VERSION / TYPEzzzzzzzzzzzzzzzzzzz
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/InvalidNumPRNWaveFact.06o b/dev/tests/RinexObs/Logs/InvalidNumPRNWaveFact.06o
new file mode 100644
index 0000000..ff1df1e
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/InvalidNumPRNWaveFact.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation G (GPS) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 9 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/InvalidTimeFormat.06o b/dev/tests/RinexObs/Logs/InvalidTimeFormat.06o
new file mode 100644
index 0000000..17c8965
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/InvalidTimeFormat.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12000.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/NotObs.06o b/dev/tests/RinexObs/Logs/NotObs.06o
new file mode 100644
index 0000000..fa964b2
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/NotObs.06o
@@ -0,0 +1,155 @@
+ 2.10 Dbservation G (GPS) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/ObsDump b/dev/tests/RinexObs/Logs/ObsDump
new file mode 100644
index 0000000..5649e1f
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/ObsDump
@@ -0,0 +1,45 @@
+---------------------------------- REQUIRED ----------------------------------
+Rinex Version 2.10, File type Observation, System S (Geosync).
+Prgm: row, Run: 04/11/2006 23:59:18, By: Dataflow Processing
+Marker name: 85408.
+Obs'r : Monitor Station, Agency: NGA
+Rec#: 1, Type: ZY12, Vers:
+Antenna # : 85408, Type : AshTech Geodetic 3
+Position (XYZ,m) : (-740289.8540, -5457071.7398, 3207245.6036).
+Antenna offset (ENU,m) : (0.0000, 0.0000, 0.0000).
+Wavelength factors (default) L1:1, L2: 1.
+Wavelength factors (extra) L1:1, L2: 1, for PRNs GPS 1 GPS 5 GPS 11 GPS 14 GPS 15 GPS 18 GPS 22
+Wavelength factors (extra) L1:1, L2: 1, for PRNs GPS 25 GPS 30
+Observation types (10) :
+ Type #0 = L1 L1 Carrier Phase (L1 cycles).
+ Type #1 = L2 L2 Carrier Phase (L2 cycles).
+ Type #2 = C1 C/A-code pseudorange (meters).
+ Type #3 = P1 Pcode L1 pseudorange (meters).
+ Type #4 = P2 Pcode L2 pseudorange (meters).
+ Type #5 = D1 Doppler Frequency L1 (Hz).
+ Type #6 = D2 Doppler Frequency L2 (Hz).
+ Type #7 = S1 Signal-to-Noise L1 (dB-Hz).
+ Type #8 = S2 Signal-to-Noise L2 (dB-Hz).
+ Type #9 = C2 L2C-code pseudorange (meters).
+Time of first obs 2006/04/12 00:00:00.0000000 GPS
+(This header is VALID 2.11 Rinex.)
+---------------------------------- OPTIONAL ----------------------------------
+Marker number : 85408
+Interval = 30.000
+Time of last obs 2006/04/12 00:02:30.0000000 GPS
+Leap seconds: 0
+Clock offset record is present and offsets are NOT applied.
+Number of Satellites with data : 9
+SAT L1 L2 C1 P1 P2 D1 D2 S1 S2 C2
+ GPS 1 6 6 6 6 6 6 6 6 6 6
+ GPS 5 6 6 6 6 6 6 6 6 6 6
+ GPS 11 6 6 6 6 6 6 6 6 6 6
+ GPS 14 6 6 6 6 6 6 6 6 6 6
+ GPS 15 6 6 6 6 6 6 6 6 6 6
+ GPS 18 6 6 6 6 6 6 6 6 6 6
+ GPS 22 6 6 6 6 6 6 6 6 6 6
+ GPS 25 6 6 6 6 6 6 6 6 6 6
+ GPS 30 6 6 6 6 6 6 6 6 6 6
+Comments (1) :
+THIS IS AN EXAMPLE RINEX OBS FILE
+-------------------------------- END OF HEADER -------------------------------
diff --git a/dev/tests/RinexObs/Logs/RinexContData.06o b/dev/tests/RinexObs/Logs/RinexContData.06o
new file mode 100644
index 0000000..b578e7b
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/RinexContData.06o
@@ -0,0 +1,187 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 3 0.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+TEST COMMENT
+ 9 # OF SATELLITES
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 13G 1G 2G 3G 4G 5G 6G 7G 8G 9G10G11G12 .00001
+ G15
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+ 3 1
+85408 MARKER NAME
+85408 MARKER NUMBER
+THIS IS THE START OF A NEW SITE COMMENT
+ 06 4 12 0 3 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+THIS IS THE START OF A COMMENT COMMENT
\ No newline at end of file
diff --git a/dev/tests/RinexObs/Logs/RinexObsFile.06o b/dev/tests/RinexObs/Logs/RinexObsFile.06o
new file mode 100644
index 0000000..cdb8c4d
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/RinexObsFile.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (Geosync) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/SystemGeosync.06o b/dev/tests/RinexObs/Logs/SystemGeosync.06o
new file mode 100644
index 0000000..9c4c0c1
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/SystemGeosync.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation S (GEOSYNC) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/SystemGlonass.06o b/dev/tests/RinexObs/Logs/SystemGlonass.06o
new file mode 100644
index 0000000..b566f35
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/SystemGlonass.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation R (GLONASS) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/SystemMixed.06o b/dev/tests/RinexObs/Logs/SystemMixed.06o
new file mode 100644
index 0000000..cef672f
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/SystemMixed.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation M (MIXED) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/SystemTransit.06o b/dev/tests/RinexObs/Logs/SystemTransit.06o
new file mode 100644
index 0000000..a3981ed
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/SystemTransit.06o
@@ -0,0 +1,155 @@
+ 2.10 Observation T (TRANSIT) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/dev/tests/RinexObs/Logs/TestOutput.06o b/dev/tests/RinexObs/Logs/TestOutput.06o
new file mode 100644
index 0000000..5ad3626
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/TestOutput.06o
@@ -0,0 +1,215 @@
+ 2.10 Observation S (Geosync) RINEX VERSION / TYPE
+row Dataflow Processing 10/05/2006 12:29:23 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 2.10 Observation S (Geosync) RINEX VERSION / TYPE
+row Dataflow Processing 10/05/2006 12:29:23 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 2.10 Observation M (Mixed) RINEX VERSION / TYPE
+row Dataflow Processing 10/05/2006 12:29:23 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/TestOutput2.06o b/dev/tests/RinexObs/Logs/TestOutput2.06o
new file mode 100644
index 0000000..5164083
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/TestOutput2.06o
@@ -0,0 +1,154 @@
+ 2.10 Observation S (Geosync) RINEX VERSION / TYPE
+row Dataflow Processing 10/05/2006 12:29:23 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
diff --git a/dev/tests/RinexObs/Logs/TestOutput3.06o b/dev/tests/RinexObs/Logs/TestOutput3.06o
new file mode 100644
index 0000000..2d324df
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/TestOutput3.06o
@@ -0,0 +1,165 @@
+ 2.10 Observation S (Geosync) RINEX VERSION / TYPE
+row Dataflow Processing 10/05/2006 12:29:23 PGM / RUN BY / DATE
+85408 MARKER NAME
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G01 G05 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 GPS TIME OF FIRST OBS
+ 2006 4 12 0 3 0.0000000 GPS TIME OF LAST OBS
+85408 MARKER NUMBER
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+TEST COMMENT
+ 9 # OF SATELLITES
+ G01 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G05 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 13G01G02G03G04G05G06G07G08G09G10G11G12 0.000010000
+ G15
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G01G05G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+ 3 1
+85408 MARKER NAME
diff --git a/dev/tests/RinexObs/Logs/UnSupVersion.06o b/dev/tests/RinexObs/Logs/UnSupVersion.06o
new file mode 100644
index 0000000..021432e
--- /dev/null
+++ b/dev/tests/RinexObs/Logs/UnSupVersion.06o
@@ -0,0 +1,155 @@
+ 3.33 Observation G (GPS) RINEX VERSION / TYPE
+row Dataflow Processing 04/11/2006 23:59:18 PGM / RUN BY / DATE
+THIS IS AN EXAMPLE RINEX OBS FILE COMMENT
+85408 MARKER NAME
+85408 MARKER NUMBER
+Monitor Station NGA OBSERVER / AGENCY
+1 ZY12 REC # / TYPE / VERS
+85408 AshTech Geodetic 3 ANT # / TYPE
+ -740289.8540 -5457071.7398 3207245.6036 APPROX POSITION XYZ
+ 0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 1 1 7 G 1 G 5 G11 G14 G15 G18 G22WAVELENGTH FACT L1/2
+ 1 1 2 G25 G30 WAVELENGTH FACT L1/2
+ 10 L1 L2 C1 P1 P2 D1 D2 S1 S2# / TYPES OF OBSERV
+ C2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 4 12 0 0 0.0000000 TIME OF FIRST OBS
+ 2006 4 12 0 2 30.0000000 TIME OF LAST OBS
+ 0 RCV CLOCK OFFS APPL
+ 0 LEAP SECONDS
+ G 1 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G 5 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G11 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G14 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G15 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G18 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G22 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G25 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ G30 6 6 6 6 6 6 6 6 6PRN / # OF OBS
+ 6 PRN / # OF OBS
+ 9 # OF SATELLITES
+ END OF HEADER
+ 06 4 12 0 0 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20513506.842 8 -15969234.484 8 21665483.802 21665483.747 21665487.640
+ 515.647 401.788 47.700 46.660 21665483.802
+ -3691532.645 7 -2863805.580 7 24634539.994 24634539.174 24634543.837
+ -1216.308 -947.775 36.590 36.930 24634539.994
+ -7057436.241 8 -4901768.167 7 23694610.336 23694609.550 23694613.033
+ 1217.015 948.313 40.760 39.710 23694610.336
+ -16343346.682 8 -12699359.265 8 21708740.245 21708739.454 21708742.382
+ -1151.786 -897.508 47.010 45.970 21708740.245
+ -1602460.157 7 -1232616.532 7 25004772.834 25004773.533 25004782.498
+ -3880.782 -3024.013 33.110 34.850 25004772.834
+ -4088479.235 7 -3162287.536 7 24665341.073 24665339.854 24665345.025
+ -2893.118 -2254.398 39.020 37.980 24665341.073
+ -17124342.986 8 -13331159.394 8 21681948.619 21681948.968 21681950.410
+ -1459.891 -1137.590 47.360 46.660 21681948.619
+ -22955985.940 8 -17859781.456 8 21053362.259 21053362.337 21053366.250
+ 1391.814 1084.512 49.790 49.440 21053362.259
+ -2546302.283 8 -1978515.606 7 23330767.487 23330767.964 23330771.128
+ 540.480 421.120 41.450 39.020 23330767.487
+ 06 4 12 0 0 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20528906.247 8 -15981234.023 8 21662553.649 21662553.318 21662557.419
+ 510.757 397.957 48.050 46.660 21662553.649
+ -3654799.189 7 -2835182.134 7 24641529.882 24641528.795 24641534.784
+ -1232.999 -960.818 36.590 37.980 24641529.882
+ -7093714.565 8 -4930036.987 8 23687705.910 23687706.091 23687710.145
+ 1201.272 936.026 40.760 40.060 23687705.910
+ -16308749.700 8 -12672400.596 8 21715323.570 21715323.076 21715326.263
+ -1154.895 -899.946 47.010 45.970 21715323.570
+ -1486070.551 7 -1141923.487 7 25026922.306 25026922.303 25026930.890
+ -3878.640 -3022.334 33.110 35.200 25026922.306
+ -4001584.245 7 -3094577.243 7 24681876.142 24681875.352 24681880.668
+ -2900.093 -2259.850 38.670 37.980 24681876.142
+ -17080375.343 8 -13296898.924 8 21690315.746 21690315.856 21690317.259
+ -1471.516 -1146.672 47.360 46.660 21690315.746
+ -22997506.359 8 -17892135.009 8 21045461.079 21045461.050 21045465.088
+ 1375.958 1072.138 49.440 49.090 21045461.079
+ -2562267.423 8 -1990955.948 7 23327728.381 23327729.439 23327732.813
+ 523.500 407.881 41.450 39.020 23327728.381
+ 06 4 12 0 1 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20544158.920 8 -15993119.225 8 21659651.382 21659650.826 21659655.019
+ 505.903 394.202 47.700 46.660 21659651.382
+ -3617561.441 7 -2806165.708 7 24648614.555 24648614.710 24648621.002
+ -1249.821 -973.902 36.240 38.320 24648614.555
+ -7129519.808 8 -4957937.178 8 23680892.696 23680892.535 23680896.704
+ 1185.538 923.786 40.760 40.060 23680892.696
+ -16274058.039 8 -12645368.153 8 21721925.004 21721924.643 21721927.820
+ -1158.031 -902.369 47.010 45.620 21721925.004
+ -1369745.199 7 -1051280.465 7 25049059.530 25049058.774 25049067.448
+ -3876.428 -3020.616 33.110 34.150 25049059.530
+ -3914479.816 7 -3026703.725 7 24698451.409 24698450.045 24698456.546
+ -2907.025 -2265.234 38.320 36.930 24698451.409
+ -17036057.604 8 -13262365.655 8 21698749.582 21698749.410 21698750.877
+ -1483.193 -1155.742 47.360 46.310 21698749.582
+ -23038550.108 8 -17924117.135 8 21037650.766 21037650.887 21037654.749
+ 1360.109 1059.812 49.440 49.090 21037650.766
+ -2577720.487 8 -2002997.295 7 23324786.889 23324787.896 23324792.026
+ 506.394 394.588 41.100 39.370 23324786.889
+ 06 4 12 0 1 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20559266.011 8 -16004890.977 8 21656776.269 21656776.043 21656780.241
+ 501.124 390.481 47.700 47.010 21656776.269
+ -3579820.440 7 -2776757.146 7 24655796.630 24655796.085 24655802.794
+ -1266.574 -986.938 36.240 37.280 24655796.630
+ -7164851.352 8 -4985468.239 7 23674168.806 23674168.943 23674172.803
+ 1169.740 911.479 40.760 39.710 23674168.806
+ -16239272.837 8 -12618262.809 8 21728544.230 21728543.570 21728547.028
+ -1161.091 -904.753 46.660 45.620 21728544.230
+ -1253486.654 7 -960689.528 7 25071183.787 25071182.159 25071190.255
+ -3874.170 -3018.822 32.760 34.500 25071183.787
+ -3827166.892 7 -2958667.741 7 24715066.181 24715065.656 24715071.041
+ -2913.944 -2270.614 37.980 36.930 24715066.181
+ -16991389.684 8 -13227559.510 8 21707249.089 21707249.340 21707251.192
+ -1494.849 -1164.823 47.360 46.310 21707249.089
+ -23079117.223 8 -17955727.848 8 21029931.273 21029931.370 21029934.650
+ 1344.238 1047.451 49.440 49.090 21029931.273
+ -2592660.701 8 -2014639.005 7 23321945.296 23321945.420 23321949.502
+ 489.309 381.262 41.100 39.370 23321945.296
+ 06 4 12 0 2 0.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20574228.477 8 -16016550.042 8 21653929.251 21653928.898 21653933.057
+ 496.342 386.787 47.700 47.010 21653929.251
+ -3541576.978 7 -2746957.029 7 24663074.532 24663073.983 24663080.434
+ -1283.188 -999.854 36.930 37.280 24663074.532
+ -7199708.599 8 -5012629.719 8 23667536.169 23667536.012 23667540.075
+ 1154.015 899.256 41.100 40.060 23667536.169
+ -16204394.833 8 -12591085.158 8 21735181.389 21735180.796 21735184.068
+ -1164.149 -907.104 46.660 45.620 21735181.389
+ -1137297.716 7 -870152.831 7 25093291.702 25093290.810 25093301.091
+ -3871.651 -3016.857 32.760 33.810 25093291.702
+ -3739646.561 7 -2890470.164 7 24731720.038 24731720.235 24731725.819
+ -2920.754 -2275.892 36.930 35.890 24731720.038
+ -16946371.781 8 -13192480.667 8 21715815.749 21715815.880 21715817.425
+ -1506.436 -1173.822 47.360 46.310 21715815.749
+ -23119207.429 8 -17986966.948 8 21022301.955 21022302.206 21022306.100
+ 1328.361 1035.115 49.440 49.090 21022301.955
+ -2607086.229 8 -2025879.658 7 23319200.070 23319200.218 23319205.231
+ 472.200 367.974 41.450 39.710 23319200.070
+ 06 4 12 0 2 30.0000000 0 9G 1G 5G11G14G15G18G22G25G30
+ -20589046.539 8 -16028096.570 8 21651109.307 21651109.020 21651113.522
+ 491.614 383.071 47.700 47.010 21651109.307
+ -3502831.312 7 -2716765.608 7 24670448.169 24670447.826 24670453.727
+ -1299.896 -1012.912 37.280 37.280 24670448.169
+ -7234090.432 8 -5039420.751 8 23660993.890 23660993.628 23660997.651
+ 1138.213 886.917 41.450 40.060 23660993.890
+ -16169423.829 8 -12563835.033 8 21741835.771 21741835.937 21741838.437
+ -1167.164 -909.479 46.660 45.620 21741835.771
+ -1021180.696 7 -779672.124 7 25115389.226 25115387.725 25115396.334
+ -3869.292 -3015.039 32.070 31.720 25115389.226
+ -3651919.231 7 -2822111.265 7 24748412.491 24748413.252 24748420.069
+ -2927.520 -2281.178 35.200 34.500 24748412.491
+ -16901003.086 8 -13157128.449 8 21724449.614 21724449.481 21724451.284
+ -1518.061 -1182.907 47.360 46.310 21724449.614
+ -23158819.964 8 -18017833.826 8 21014764.059 21014763.996 21014767.782
+ 1312.522 1022.742 49.440 49.090 21014764.059
+ -2620995.320 8 -2036717.878 7 23316553.121 23316552.816 23316557.199
+ 455.015 354.529 41.450 39.370 23316553.121
+
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexObs/RinexObsBase.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexObs/RinexObsBase.cpp
diff --git a/dev/tests/RinexObs/RinexObsBase.hpp b/dev/tests/RinexObs/RinexObsBase.hpp
new file mode 120000
index 0000000..3bd24bb
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsBase.hpp
@@ -0,0 +1 @@
+../../src/RinexObsBase.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexObs/RinexObsData.cpp b/dev/tests/RinexObs/RinexObsData.cpp
new file mode 120000
index 0000000..e81f623
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsData.cpp
@@ -0,0 +1 @@
+../../src/RinexObsData.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexObs/RinexObsData.hpp b/dev/tests/RinexObs/RinexObsData.hpp
new file mode 120000
index 0000000..3598474
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsData.hpp
@@ -0,0 +1 @@
+../../src/RinexObsData.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexObs/RinexObsFilterOperators.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexObs/RinexObsFilterOperators.cpp
diff --git a/dev/tests/RinexObs/RinexObsFilterOperators.hpp b/dev/tests/RinexObs/RinexObsFilterOperators.hpp
new file mode 120000
index 0000000..2e5f9cc
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsFilterOperators.hpp
@@ -0,0 +1 @@
+../../src/RinexObsFilterOperators.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexObs/RinexObsHeader.cpp b/dev/tests/RinexObs/RinexObsHeader.cpp
new file mode 120000
index 0000000..0671097
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsHeader.cpp
@@ -0,0 +1 @@
+../../src/RinexObsHeader.cpp
\ No newline at end of file
diff --git a/dev/tests/RinexObs/RinexObsHeader.hpp b/dev/tests/RinexObs/RinexObsHeader.hpp
new file mode 120000
index 0000000..4ba78dc
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsHeader.hpp
@@ -0,0 +1 @@
+../../src/RinexObsHeader.hpp
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/RinexObs/RinexObsStream.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/RinexObs/RinexObsStream.cpp
diff --git a/dev/tests/RinexObs/RinexObsStream.hpp b/dev/tests/RinexObs/RinexObsStream.hpp
new file mode 120000
index 0000000..69883a8
--- /dev/null
+++ b/dev/tests/RinexObs/RinexObsStream.hpp
@@ -0,0 +1 @@
+../../src/RinexObsStream.hpp
\ No newline at end of file
diff --git a/dev/tests/RinexObs/xRinexObs.cpp b/dev/tests/RinexObs/xRinexObs.cpp
new file mode 100644
index 0000000..953338c
--- /dev/null
+++ b/dev/tests/RinexObs/xRinexObs.cpp
@@ -0,0 +1,277 @@
+#include "xRinexObs.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xRinexObs);
+
+using namespace gpstk;
+
+void xRinexObs :: setUp (void)
+{
+}
+/*
+**** This tests throws many GPSTK RinexObsHeader exceptions including Incomplete headers, invalid line lengths etc
+**** Also an extended obs type is used and dumped within this test.
+*/
+void xRinexObs :: headerExceptionTest (void)
+{
+ try{
+ gpstk::RinexObsStream RinexObsFile("Logs/RinexObsFile.06o");
+ gpstk::RinexObsStream ih("Logs/IncompleteHeader.06o");
+ gpstk::RinexObsStream il("Logs/InvalidLineLength.06o");
+ gpstk::RinexObsStream inpwf("Logs/InvalidNumPRNWaveFact.06o");
+ gpstk::RinexObsStream no("Logs/NotObs.06o");
+ gpstk::RinexObsStream ss("Logs/SystemGeosync.06o");
+ gpstk::RinexObsStream sr("Logs/SystemGlonass.06o");
+ gpstk::RinexObsStream sm("Logs/SystemMixed.06o");
+ gpstk::RinexObsStream st("Logs/SystemTransit.06o");
+ gpstk::RinexObsStream unsupv("Logs/UnSupVersion.06o");
+ gpstk::RinexObsStream contdata("Logs/RinexContData.06o");
+
+ gpstk::RinexObsStream out("Logs/TestOutput.06o",ios::out);
+ gpstk::RinexObsStream out2("Logs/TestOutput3.06o",ios::out);
+ gpstk::RinexObsStream dump("Logs/ObsDump",ios::out);
+
+ gpstk::RinexObsHeader RinexObsFileh;
+ gpstk::RinexObsHeader ihh;
+ gpstk::RinexObsHeader ilh;
+ gpstk::RinexObsHeader inpwfh;
+ gpstk::RinexObsHeader noh;
+ gpstk::RinexObsHeader ssh;
+ gpstk::RinexObsHeader srh;
+ gpstk::RinexObsHeader smh;
+ gpstk::RinexObsHeader sth;
+ gpstk::RinexObsHeader unsupvh;
+ gpstk::RinexObsHeader contdatah;
+
+ gpstk::RegisterExtendedRinexObsType("ER","Testing Type", "Candela", (unsigned) 2);
+ gpstk::RinexObsData RinexObsFiled;
+ gpstk::RinexObsData contdatad;
+
+ RinexObsFile >> RinexObsFileh;
+ ih >> ihh;
+ il >> ilh;
+ inpwf >> inpwfh;
+ no >> noh;
+ ss >> ssh;
+ sr >> srh;
+ sm >> smh;
+ unsupv >> unsupvh;
+ contdata >> contdatah;
+
+ out << RinexObsFileh;
+ out << ihh;
+ out << ilh;
+ out << inpwfh;
+ out << noh;
+ out << ssh;
+ out << srh;
+ out << smh;
+ out << unsupvh;
+ out2 << contdatah;
+ RinexObsFile >> RinexObsFiled;
+ RinexObsFiled.dump(dump);
+ while (RinexObsFile >> RinexObsFiled)
+ {
+ out << RinexObsFiled;
+ }
+ while (contdata >> contdatad)
+ {
+ out2 << contdatad;
+ }
+ RinexObsFileh.dump(dump);
+ contdatah.dump(dump);
+ ilh.dump(dump);
+ gpstk::DisplayExtendedRinexObsTypes(dump);
+ //RinexObsFiled.dump(cout);
+ CPPUNIT_ASSERT_EQUAL(39,RinexObsFileh.NumberHeaderRecordsToBeWritten());
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+/*
+**** This test checks to make sure that the output from a read in RinexObsFile matches the input.
+*/
+void xRinexObs :: hardCodeTest (void)
+{
+ try
+ {
+ gpstk::RinexObsStream RinexObsFile("Logs/RinexObsFile.06o");
+ gpstk::RinexObsStream out("Logs/TestOutput2.06o",ios::out);
+ gpstk::RinexObsStream dump("Logs/ObsDump",ios::out);
+ gpstk::RinexObsHeader RinexObsFileh;
+ gpstk::RinexObsData RinexObsFiled;
+ RinexObsFile >> RinexObsFileh;
+ out << RinexObsFileh;
+ while (RinexObsFile >> RinexObsFiled)
+ {
+ out << RinexObsFiled;
+ }
+ RinexObsFiled.dump(dump);
+ RinexObsFileh.dump(dump);
+ CPPUNIT_ASSERT(fileEqualTest("Logs/RinexObsFile.06o","Logs/TestOutput2.06o"));
+ }
+ catch (gpstk::Exception& e)
+ {
+ cout << e;
+ }
+}
+
+/*
+**** This test throws many GPSTK exceptions within the RinexObsData including BadEpochLine and BadEpochFlag
+*/
+void xRinexObs :: dataExceptionsTest (void)
+{
+ gpstk::RinexObsStream BadEpochLine("Logs/BadEpochLine.");
+ gpstk::RinexObsStream BadEpochFlag("Logs/BadEpochFlag.06o");
+ gpstk::RinexObsStream BadLineSize("Logs/BadLineSize.06o");
+ gpstk::RinexObsStream InvalidTimeFormat("Logs/InvalidTimeFormat.06o");
+ gpstk::RinexObsStream out("Logs/DataExceptionOutput.06o",ios::out);
+ gpstk::RinexObsData BadEpochLined;
+ gpstk::RinexObsData BadEpochFlagd;
+ gpstk::RinexObsData BadLineSized;
+ gpstk::RinexObsData InvalidTimeFormatd;
+ while (BadEpochLine >> BadEpochLined)
+ {
+ out << BadEpochLined;
+ }
+ while (BadEpochFlag >> BadEpochFlagd)
+ {
+ out << BadEpochFlagd;
+ }
+ while (BadLineSize >> BadLineSized)
+ {
+ out << BadLineSized;
+ }
+ while (InvalidTimeFormat >> InvalidTimeFormatd)
+ {
+ out << InvalidTimeFormatd;
+ }
+
+}
+
+/*
+**** This is the test for several of the members within RinexObsFilterOperators including merge, LessThanSimple,
+**** EqualsSimple, and LessThanFull
+
+**** This is still under development
+*/
+void xRinexObs :: filterOperatorsTest (void)
+{
+ try
+ {
+
+
+ gpstk::RinexObsStream FilterStream1("Logs/FilterTest1.06o");
+ FilterStream1.open("Logs/FilterTest1.06o",std::ios::in);
+ gpstk::RinexObsStream FilterStream2("Logs/FilterTest2.06o");
+ gpstk::RinexObsStream FilterStream3("Logs/FilterTest3.06o");
+ gpstk::RinexObsStream FilterStream4("Logs/FilterTest4.06o");
+ gpstk::RinexObsStream out("Logs/FilterOutput.txt",ios::out);
+
+ gpstk::RinexObsHeader FilterHeader1;
+ gpstk::RinexObsHeader FilterHeader2;
+ gpstk::RinexObsHeader FilterHeader3;
+ gpstk::RinexObsHeader FilterHeader4;
+
+ gpstk::RinexObsData FilterData1;
+ gpstk::RinexObsData FilterData2;
+ gpstk::RinexObsData FilterData3;
+ gpstk::RinexObsData FilterData4;
+
+
+ FilterStream1 >> FilterHeader1;
+ FilterStream2 >> FilterHeader2;
+ FilterStream3 >> FilterHeader3;
+ FilterStream4 >> FilterHeader4;
+
+ while (FilterStream1 >> FilterData1)
+ {
+ }
+ while (FilterStream2 >> FilterData2)
+ {
+ }
+ while (FilterStream3 >> FilterData3)
+ {
+ }
+ while (FilterStream4 >> FilterData4)
+ {
+ }
+
+ gpstk::RinexObsHeaderTouchHeaderMerge merged;
+ merged(FilterHeader1);
+ merged(FilterHeader2);
+ gpstk::RinexObsDataOperatorLessThanFull(merged.obsSet);
+ out << merged.theHeader;
+
+ gpstk::RinexObsDataOperatorEqualsSimple EqualsSimple;
+ CPPUNIT_ASSERT_EQUAL(true,EqualsSimple(FilterData1, FilterData1));
+ //CPPUNIT_ASSERT_EQUAL(false,EqualsSimple(FilterData1, FilterData3));
+
+ gpstk::RinexObsDataOperatorLessThanSimple LessThanSimple;
+ CPPUNIT_ASSERT_EQUAL(false,LessThanSimple(FilterData1, FilterData1));
+ //CPPUNIT_ASSERT_EQUAL(true,LessThanSimple(FilterData3, FilterData1));
+
+ gpstk::RinexObsDataOperatorLessThanFull LessThanFull(merged.obsSet);
+ CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData1, FilterData1));
+ CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData1, FilterData2));
+ //CPPUNIT_ASSERT_EQUAL(false,LessThanFull(FilterData1, FilterData1));
+ //CPPUNIT_ASSERT_EQUAL(true,LessThanFull(FilterData4, FilterData2));
+
+ }
+ catch(gpstk::Exception& e)
+ {
+
+ }
+
+
+}
+
+/*
+**** A helper function for xRinexObs to line by line, check if the two files given are the same.
+**** Takes in two file names within double quotes "FILEONE.TXT" "FILETWO.TXT". Returns true if
+**** the files are equal. Skips the first two lines becasue dates are often writen as the current
+**** data and thus very hard to pin down a specific time for.
+*/
+bool xRinexObs :: fileEqualTest (char* handle1, char* handle2)
+{
+ bool isEqual = false;
+ int counter = 2;
+ ifstream File1;
+ ifstream File2;
+
+ std::string File1Line;
+ std::string File2Line;
+
+ File1.open(handle1);
+ File2.open(handle2);
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+
+ while (!File1.eof())
+ {
+ if (File2.eof())
+ {
+ cout << counter << "ONE" << endl;
+ return isEqual;
+ }
+ getline (File1, File1Line);
+ getline (File2, File2Line);
+ counter++;
+ if (File1Line != File2Line)
+ {
+ cout << counter << "TWO" << endl;
+ return isEqual;
+ }
+ }
+ if (!File2.eof())
+ {
+ cout << counter << "THREE" << endl;
+ return isEqual;
+ }
+ else
+ return isEqual = true;
+}
diff --git a/dev/tests/RinexObs/xRinexObs.hpp b/dev/tests/RinexObs/xRinexObs.hpp
new file mode 100644
index 0000000..77a54b5
--- /dev/null
+++ b/dev/tests/RinexObs/xRinexObs.hpp
@@ -0,0 +1,37 @@
+#ifndef XRINEXOBS_HPP
+#define XRINEXOBS_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "RinexObsBase.hpp"
+#include "RinexObsData.hpp"
+#include "RinexObsStream.hpp"
+#include "RinexObsHeader.hpp"
+#include "RinexObsFilterOperators.hpp"
+
+using namespace std;
+
+class xRinexObs: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xRinexObs);
+ CPPUNIT_TEST (headerExceptionTest);
+ CPPUNIT_TEST (hardCodeTest);
+ CPPUNIT_TEST (filterOperatorsTest);
+ CPPUNIT_TEST (dataExceptionsTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void headerExceptionTest (void);
+ void hardCodeTest (void);
+ void filterOperatorsTest (void);
+ void dataExceptionsTest (void);
+ bool fileEqualTest (char*, char*);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/RinexObs/xRinexObsM.cpp b/dev/tests/RinexObs/xRinexObsM.cpp
new file mode 100644
index 0000000..34e6efc
--- /dev/null
+++ b/dev/tests/RinexObs/xRinexObsM.cpp
@@ -0,0 +1,28 @@
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/RungeKutta4/Jamfile b/dev/tests/RungeKutta4/Jamfile
new file mode 100644
index 0000000..781d0f4
--- /dev/null
+++ b/dev/tests/RungeKutta4/Jamfile
@@ -0,0 +1,3 @@
+SubDir TOP RungeKutta4 ;
+
+TestMain RungeKutta4/xRungeKutta4.tst : RungeKutta4/xRungeKutta4M.cpp RungeKutta4/xRungeKutta4.cpp RungeKutta4/RungeKutta4.cpp ;
diff --git a/dev/tests/RungeKutta4/RungeKutta4.cpp b/dev/tests/RungeKutta4/RungeKutta4.cpp
new file mode 120000
index 0000000..9ff0658
--- /dev/null
+++ b/dev/tests/RungeKutta4/RungeKutta4.cpp
@@ -0,0 +1 @@
+../../src/RungeKutta4.cpp
\ No newline at end of file
diff --git a/dev/tests/RungeKutta4/RungeKutta4.hpp b/dev/tests/RungeKutta4/RungeKutta4.hpp
new file mode 120000
index 0000000..352614c
--- /dev/null
+++ b/dev/tests/RungeKutta4/RungeKutta4.hpp
@@ -0,0 +1 @@
+../../src/RungeKutta4.hpp
\ No newline at end of file
diff --git a/dev/tests/RungeKutta4/makefile b/dev/tests/RungeKutta4/makefile
new file mode 100644
index 0000000..1bb38c5
--- /dev/null
+++ b/dev/tests/RungeKutta4/makefile
@@ -0,0 +1,22 @@
+# CppUnit-Tutorial
+# file: makefile
+# next line has to be changed to the installation-path of CppUnit
+CPPUNIT_PATH=/home/ehagen
+
+xRungeKutta4.tst: xRungeKutta4M.o xRungeKutta4.o RungeKutta4.o
+ g++ -o xRungeKutta4.tst xRungeKutta4M.o xRungeKutta4.o RungeKutta4.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+
+RungeKutta4.o: RungeKutta4.cpp RungeKutta4.hpp
+ g++ -c RungeKutta4.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xRungeKutta4.o: xRungeKutta4.cpp xRungeKutta4.hpp
+ g++ -c xRungeKutta4.cpp -I${CPPUNIT_PATH}/include -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -fprofile-arcs -ftest-coverage
+
+xRungeKutta4M.o: xRungeKutta4M.cpp
+ g++ -c xRungeKutta4M.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+clean:
+ rm -f *.o
+ rm -f *.g*
+ rm -f *.*.g*
\ No newline at end of file
diff --git a/dev/tests/RungeKutta4/pendulum.hpp b/dev/tests/RungeKutta4/pendulum.hpp
new file mode 100644
index 0000000..2073539
--- /dev/null
+++ b/dev/tests/RungeKutta4/pendulum.hpp
@@ -0,0 +1,43 @@
+//file: pendulum.hpp
+
+#include <math.h>
+#include "RungeKutta4.hpp"
+
+using namespace gpstk;
+using namespace std;
+
+//A pendulum is of the equation d^2x/dt^2 + (g/L)*sin(x) = 0
+
+// The full, nonlinear equation of motion for a simple pendulum
+class PendulumIntegrator : public RungeKutta4
+{
+ public:
+
+ PendulumIntegrator(const Matrix<double>& initialState,
+ double initialTime=0)
+ : RungeKutta4(initialState, initialTime)
+ {};
+
+ virtual gpstk::Matrix<double>&
+ derivative(long double time,
+ const gpstk::Matrix<double>& inState,
+ gpstk::Matrix<double>& inStateDot);
+
+ void setPhysics(double accGrav, double length)
+ { g = accGrav; L = length; };
+
+ private:
+
+ double g; //< the acceleration due to gravity
+ double L; //< the length of the pendulum (in meters?)
+};
+
+gpstk::Matrix<double>&
+PendulumIntegrator::derivative(long double time,
+ const gpstk::Matrix<double>& inState,
+ gpstk::Matrix<double>& inStateDot)
+{
+ inStateDot(0,0) = inState(1,0); // velocity along x
+ inStateDot(1,0) = -g/L * sin(inState(0,0));
+ return inStateDot;
+}
diff --git a/dev/tests/RungeKutta4/xRungeKutta4.cpp b/dev/tests/RungeKutta4/xRungeKutta4.cpp
new file mode 100644
index 0000000..e430ad1
--- /dev/null
+++ b/dev/tests/RungeKutta4/xRungeKutta4.cpp
@@ -0,0 +1,110 @@
+// file: xRungeKutta4.cpp
+
+#include "xRungeKutta4.hpp"
+#include "pendulum.hpp"
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xRungeKutta4);
+
+
+void xRungeKutta4 :: setUp (void)
+{
+}
+
+void xRungeKutta4 :: quarterTest (void)
+{
+ gpstk::Matrix<double> x0(2,1), truncError(2,1);
+ x0(0,0) = 0.001; // Initial angle in radians
+ x0(1,0) = 0.0; // Initial angular velocity in radians/second
+
+ PendulumIntegrator pModel(x0,0.);
+
+ double g = 9.81, L = 1.0;
+ pModel.setPhysics(g,L);
+
+ double deltaT = .00001; // Step size in seconds for integrator
+
+ double time = 0;
+ double Nper = 2.25; // number of periods
+
+ double addError = 0; //Total Error for angle
+ double addDotError = 0; //Total Error for rate of change in angle
+
+ long count = 0;
+
+ while (pModel.getTime() < Nper * (2*3.14159265/sqrt(g/L)))
+ {
+ pModel.integrateTo((count++)*deltaT,truncError);
+ addError += fabs(truncError(0,0));
+ addDotError += fabs(truncError(1,0));
+ }
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,pModel.getState()(0,0),addError*4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-sqrt(2*g*(1-cos(.001))),pModel.getState()(1,0),addDotError*2);
+
+}
+
+void xRungeKutta4 :: halfTest (void)
+{
+ gpstk::Matrix<double> x0(2,1), truncError(2,1);
+ x0(0,0) = 0.001; // Initial angle in radians
+ x0(1,0) = 0.0; // Initial angular velocity in radians/second
+
+ PendulumIntegrator pModel(x0,0.);
+
+ double g = 9.81, L = 1.0;
+ pModel.setPhysics(g,L);
+
+ double deltaT = .00001; // Step size in seconds for integrator
+
+ double time = 0;
+ double Nper = 2.5; // number of periods
+
+ double addError = 0; //Total Error for angle
+ double addDotError = 0; //Total Error for rate of change in angle
+
+ long count = 0;
+
+ while (pModel.getTime() < Nper * (2*3.14159265/sqrt(g/L)))
+ {
+ pModel.integrateTo((count++)*deltaT,truncError);
+ addError += fabs(truncError(0,0));
+ addDotError += fabs(truncError(1,0));
+ }
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(-x0(0,0),pModel.getState()(0,0),addError*2);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(x0(1,0),pModel.getState()(1,0),addDotError*2);
+
+}
+
+void xRungeKutta4 :: fullTest (void)
+{
+ gpstk::Matrix<double> x0(2,1), truncError(2,1);
+ x0(0,0) = 0.001; // Initial angle in radians
+ x0(1,0) = 0.0; // Initial angular velocity in radians/second
+
+ PendulumIntegrator pModel(x0,0.);
+
+ double g = 9.81, L = 1.0;
+ pModel.setPhysics(g,L);
+
+ double deltaT = .00001; // Step size in seconds for integrator
+
+ double time = 0;
+ double Nper = 2; // number of periods
+
+ double addError = 0; //Total Error for angle
+ double addDotError = 0; //Total Error for rate of change in angle
+
+ long count = 0;
+
+ while (pModel.getTime() < Nper * (2*3.14159265/sqrt(g/L)))
+ {
+ pModel.integrateTo((count++)*deltaT,truncError);
+ addError += fabs(truncError(0,0));
+ addDotError += fabs(truncError(1,0));
+ }
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(x0(0,0),pModel.getState()(0,0),addError*2);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(x0(1,0),pModel.getState()(1,0),addDotError*2);
+
+}
diff --git a/dev/tests/RungeKutta4/xRungeKutta4.hpp b/dev/tests/RungeKutta4/xRungeKutta4.hpp
new file mode 100644
index 0000000..6daf85e
--- /dev/null
+++ b/dev/tests/RungeKutta4/xRungeKutta4.hpp
@@ -0,0 +1,35 @@
+// file: xRungeKutta4.hpp
+
+#ifndef XRUNGEKUTTA4_HPP
+#define XRUNGEKUTTA4_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+
+
+using namespace std;
+
+
+class xRungeKutta4: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xRungeKutta4);
+ CPPUNIT_TEST (quarterTest);
+ CPPUNIT_TEST (halfTest);
+ CPPUNIT_TEST (fullTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+ protected:
+
+ void quarterTest (void); // Test constructors
+ void halfTest (void);
+ void fullTest (void);
+
+
+ private:
+
+};
+#endif
diff --git a/dev/tests/RungeKutta4/xRungeKutta4M.cpp b/dev/tests/RungeKutta4/xRungeKutta4M.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/RungeKutta4/xRungeKutta4M.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/SEM/Jamfile b/dev/tests/SEM/Jamfile
new file mode 100644
index 0000000..7aa1142
--- /dev/null
+++ b/dev/tests/SEM/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP SEM ;
+TestMain SEM/xSEM.tst : SEM/xSEM.cpp SEM/SEMBase.cpp SEM/SEMData.cpp SEM/SEMStream.cpp SEM/StringUtils.cpp ;
diff --git a/trunk/src/Makefile.am b/dev/tests/SEM/SEMBase.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/SEM/SEMBase.cpp
diff --git a/dev/tests/SEM/SEMBase.hpp b/dev/tests/SEM/SEMBase.hpp
new file mode 100644
index 0000000..78ab8fd
--- /dev/null
+++ b/dev/tests/SEM/SEMBase.hpp
@@ -0,0 +1,78 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file SEMBase.hpp
+ * gpstk::SEMBase - base class for SEM FFData.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef SEMBASE_HPP
+#define SEMBASE_HPP
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+
+ /** @defgroup SEM SEM Almanac files */
+ //@{
+
+ /**
+ * This is a base class for all SEM-related classes.
+ */
+ class SEMBase : public FFData
+ {
+
+ public:
+
+ /// in deference to our coding standards, this is declared virtual
+ virtual ~SEMBase() {}
+
+ };
+
+ //@}
+}
+
+#endif
diff --git a/dev/tests/SEM/SEMData.cpp b/dev/tests/SEM/SEMData.cpp
new file mode 100644
index 0000000..4915a4c
--- /dev/null
+++ b/dev/tests/SEM/SEMData.cpp
@@ -0,0 +1,198 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMData.cpp
+ * Encapsulate SEM almanac file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "SEMData.hpp"
+#include "SEMStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ void SEMData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ //First output blank line to mark between records
+ strm << std::endl;
+
+ //PRN output
+ strm << asString<short>(PRN) << endl;
+
+ //SVNnum
+ strm << asString<short>(SVNnum) << endl;
+
+ //URAnum
+ strm << asString<short>(URAnum) << endl;
+
+ //Ecc, i_offset, OMEGAdot
+ line += rightJustify(asString(doub2for(ecc,22,4,false)),23);
+ line += rightJustify(asString(doub2for(i_offset/gpstk::PI,22,4,false)),24);
+ line += rightJustify(asString(doub2for((OMEGAdot/gpstk::PI),22,4,false)),24);
+ strm << line << endl;
+ line.erase();
+
+ //Ahalf, OMEGA0, w
+ line += rightJustify(asString(doub2for(Ahalf,22,4,false)),23);
+ line += rightJustify(asString(doub2for((OMEGA0/gpstk::PI),22,4,false)),24);
+ line += rightJustify(asString(doub2for((w/gpstk::PI),22,4,false)),24);
+ strm << line << endl;
+ line.erase();
+
+ //M0, AF0, AF1
+ line += rightJustify(asString(doub2for((M0/gpstk::PI),22,4,false)),23);
+ line += rightJustify(asString(doub2for(AF0,22,4,false)),24);
+ line += rightJustify(asString(doub2for(AF1,22,4,false)),24);
+ strm << line << endl;
+ line.erase();
+
+ //SV_health
+ strm << asString<short>(SV_health) << endl;
+
+ //satConfig
+ strm << asString<short>(satConfig) << endl;
+
+
+ } // end SEMData::reallyPutRecord
+
+
+ void SEMData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ //if(!strm.headerRead)
+ // strm >> strm.header;
+
+ SEMHeader& hdr = strm.header;
+
+ //Don't need first line - empty space
+ strm.formattedGetLine(line, true);
+
+ // Second line - PRN
+ strm.formattedGetLine(line, true);
+ PRN = asInt(line);
+
+ // Third line - SVN Number
+ // HACKHACKHACK This information might not be here??? Find out more info
+ strm.formattedGetLine(line, true);
+ SVNnum = (short) asInt(line);
+
+ // Fourth line - Average URA Number as defined in ICD-GPS-200
+ strm.formattedGetLine(line, true);
+ URAnum = (short) asInt(line);
+
+
+ // Fifth line - Eccentricity, Inclinatin Offset, and Rate of Right Ascension
+ strm.formattedGetLine(line, true);
+ ecc = asDouble(line.substr(0,23));
+ i_offset = asDouble(line.substr(24,47));
+ OMEGAdot = asDouble(line.substr(48,72));
+ i_offset *= gpstk::PI;
+ OMEGAdot *= gpstk::PI;
+
+
+ // Sixth line - Sqrt of A, Omega0, and Arg of Perigee
+ strm.formattedGetLine(line, true);
+ Ahalf = asDouble(line.substr(0,23));
+ OMEGA0 = asDouble(line.substr(24,47));
+ OMEGA0 *= gpstk::PI;
+ w = asDouble(line.substr(48,72));
+ w *= gpstk::PI;
+
+ // Seventh Line - M0, AF0, AF1
+ strm.formattedGetLine(line, true);
+ M0 = asDouble(line.substr(0,23));
+ M0 *= gpstk::PI;
+ AF0 = asDouble(line.substr(24,47));
+ AF1 = asDouble(line.substr(48,72));
+
+ // Eigth line - Satellite Health
+ strm.formattedGetLine(line, true);
+ SV_health = (short) asInt(line);
+
+ // Ninth line - Satellite Config
+ strm.formattedGetLine(line, true);
+ satConfig = (short) asInt(line);
+
+
+ //week = strm.header.week + 1024; // Need a way to set epoch Hmmm really?
+
+
+ week = hdr.week;
+ Toa = hdr.Toa;
+
+
+ xmit_time = 0;
+
+ } // end of reallyGetRecord()
+
+ void SEMData::dump(ostream& s) const
+ {
+ std::cout << "PRN =" << PRN << std::endl;
+ std::cout << "SVNnum =" << SVNnum << std::endl;
+ std::cout << "URAnum =" << URAnum << std::endl;
+ std::cout << "ecc =" << ecc << std::endl;
+ std::cout << "i_offset =" << i_offset << std::endl;
+ std::cout << "OMEGAdot =" << OMEGAdot << std::endl;
+ std::cout << "Ahalf =" << Ahalf << std::endl;
+ std::cout << "OMEGA0 =" << OMEGA0 << std::endl;
+ std::cout << "w =" << w << std::endl;
+ std::cout << "M0 =" << M0 << std::endl;
+ std::cout << "AF0 =" << AF0 << std::endl;
+ std::cout << "AF1 =" << AF1 << std::endl;
+ std::cout << "SV_health =" << SV_health << std::endl;
+ std::cout << "satConfig =" << satConfig << std::endl;
+ std::cout << "xmit_time =" << xmit_time << std::endl;
+ std::cout << "week" << week << std::endl;
+ std::cout << "toa" << Toa << std::endl;
+ }
+
+ SEMData::operator AlmOrbit() const
+ {
+
+ AlmOrbit ao(PRN, ecc,i_offset, OMEGAdot, Ahalf, OMEGA0,
+ w, M0, AF0, AF1, Toa, xmit_time, week, SV_health);
+
+ return ao;
+
+ }
+
+} // namespace
diff --git a/dev/tests/SEM/SEMData.hpp b/dev/tests/SEM/SEMData.hpp
new file mode 100644
index 0000000..332c222
--- /dev/null
+++ b/dev/tests/SEM/SEMData.hpp
@@ -0,0 +1,135 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMData.hpp
+ * Encapsulate SEM Almanac file data, including I/O
+ */
+
+#ifndef SEMDATA_HPP
+#define SEMDATA_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "SEMBase.hpp"
+#include "StringUtils.hpp"
+#include "SEMHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SEM */
+ //@{
+
+ /**
+ * This class stores, reads, and writes SEM records.
+ * @warning The SEM header information and data information don't
+ * correctly talk to each other at the time of completion of this file.
+ * The current fix is in SEMAlamanacStore.hpp.
+ *
+ * @sa tests/SEM for examples
+ * @sa SEMStream.
+ * @sa SEMHeader for information on writing SEM files.
+ */
+ class SEMData : public SEMBase
+ {
+ public:
+
+ /// Constructor.
+ SEMData() {}
+
+ /// Destructor
+ virtual ~SEMData() {}
+
+
+ short PRN;
+ short SVNnum;
+ short URAnum;
+ double ecc;
+ double i_offset;
+ double OMEGAdot;
+ double Ahalf;
+ double OMEGA0;
+ double w;
+ double M0;
+ double AF0;
+ double AF1;
+ short SV_health;
+ short satConfig;
+
+ long xmit_time;
+
+ long Toa;
+ short week;
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the SEM class to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /**
+ * cast *this into an AlmOrbit
+ * @return the constructed AlmOrbit object
+ */
+ operator AlmOrbit() const;
+
+
+ protected:
+
+ /**
+ * Writes a correctly formatted record from this data to stream \a s.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a SEM almanac record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class SEMData
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/dev/tests/SEM/SEMHeader.cpp b/dev/tests/SEM/SEMHeader.cpp
new file mode 100644
index 0000000..2126f43
--- /dev/null
+++ b/dev/tests/SEM/SEMHeader.cpp
@@ -0,0 +1,94 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMHeader.cpp
+ * Encapsulate header of SEM file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "SEMHeader.hpp"
+#include "SEMStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ void SEMHeader::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ line = leftJustify(asString<short>(numRecords),2);
+ line += " ";
+ line += Title;
+ strm << line << endl;
+ line.erase();
+
+ line = rightJustify(asString<short>(week),4);
+ line += " ";
+ line += asString<long>(Toa);
+ strm << line << endl;
+ line.erase();
+
+ } // end SEMAHeader::reallyPutRecord
+
+
+ void SEMHeader::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ SEMStream& strm = dynamic_cast<SEMStream&>(ffs);
+
+ //Grab the first line
+ strm.formattedGetLine(line);
+
+ numRecords = (short) asInt(line.substr(0,2));
+ Title = line.substr(3,24);
+
+ //Grab the second line
+ strm.formattedGetLine(line);
+ week = (short) asInt(line.substr(0,4));
+ Toa = asInt(line.substr(5,6));
+
+ } // end of reallyGetRecord()
+
+ void SEMHeader::dump(ostream& s) const
+ {
+ std::cout << "numRecords = " << numRecords << std::endl;
+ std::cout << "Title = " << Title << std::endl;
+ std::cout << "week = " << week << std::endl;
+ std::cout << "Toa = " << Toa << std::endl;
+ }
+
+} // namespace
diff --git a/dev/tests/SEM/SEMHeader.hpp b/dev/tests/SEM/SEMHeader.hpp
new file mode 100644
index 0000000..ff5ead6
--- /dev/null
+++ b/dev/tests/SEM/SEMHeader.hpp
@@ -0,0 +1,112 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file SEMHeader.hpp
+ * Encapsulate SEM Almanac header data, including I/O
+ */
+
+#ifndef SEMHEADER_HPP
+#define SEMHEADER_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "SEMBase.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SEM */
+ //@{
+
+ /**
+ * This class stores, reads, and writes SEM records.
+ * @warning The SEM header information and data information don't
+ * correctly talk to each other at the time of completion of this file.
+ * The current fix is in SEMAlamanacStore.hpp.
+ *
+ * @sa tests/SEM for examples
+ * @sa SEMStream.
+ * @sa SEMHeader for information on writing SEM files.
+ */
+ class SEMHeader : public SEMBase
+ {
+ public:
+ /// Constructor.
+ SEMHeader() {}
+
+ /// Destructor
+ virtual ~SEMHeader() {}
+
+ short numRecords;
+ std::string Title;
+ short week;
+ long Toa;
+
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the SEM header to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is a "header" so this function always returns "true".
+ virtual bool isHeader() const {return true;}
+
+
+
+ protected:
+ /**
+ * Writes a correctly formatted record from this header to stream \a s.
+ */
+ virtual void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a SEM header record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class SEMHeader
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/trunk/src/Makefile.am b/dev/tests/SEM/SEMStream.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/SEM/SEMStream.cpp
diff --git a/dev/tests/SEM/SEMStream.hpp b/dev/tests/SEM/SEMStream.hpp
new file mode 100644
index 0000000..59e1096
--- /dev/null
+++ b/dev/tests/SEM/SEMStream.hpp
@@ -0,0 +1,114 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file SEMStream.hpp
+ * gpstk::SEMStream - ASCII SEM file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef SEMSTREAM_HPP
+#define SEMSTREAM_HPP
+
+
+#include "FFTextStream.hpp"
+#include "SEMHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup SEM */
+ //@{
+
+ /**
+ * This class performs file i/o on a SEM file for the
+ * SEMHeader and SEMData classes.
+ *
+ * @sa tests/SEM for examples.
+ * @sa SEMData.
+ * @sa SEMHeader for information on writing SEM files.
+ *
+ * @warning The SEM header information and data information don't
+ * correctly talk to each other at the time of completion of this file.
+ * The current fix is in SEMAlamanacStore.hpp.
+ */
+ class SEMStream : public FFTextStream
+ {
+ public:
+
+ /// Default constructor
+ SEMStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the ascii SEM file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ SEMStream(const char* fn,
+ std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {};
+
+ /// destructor per the coding standards
+ virtual ~SEMStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = SEMHeader();
+ }
+
+ ///SEMHeader for this file
+ SEMHeader header;
+
+ /// Flag showing whether or not the header has been read.
+ bool headerRead;
+
+ }; // class SEMStream
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/trunk/src/Makefile.am b/dev/tests/SEM/StringUtils.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/SEM/StringUtils.cpp
diff --git a/dev/tests/SEM/StringUtils.hpp b/dev/tests/SEM/StringUtils.hpp
new file mode 100644
index 0000000..e372824
--- /dev/null
+++ b/dev/tests/SEM/StringUtils.hpp
@@ -0,0 +1,2603 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file StringUtils.hpp
+ * StringUtils namespace and GPSTK string utility functions
+ */
+
+#ifndef GPSTK_STRINGUTILS_HPP
+#define GPSTK_STRINGUTILS_HPP
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+#include <string>
+#include <sstream>
+#include <iomanip>
+#include <iostream>
+#include <list>
+
+/// @todo Get rid of the stdio.h dependency if possible.
+#include <cstdio>
+
+#include <regex.h>
+#include <cctype>
+
+#include <limits>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /**
+ * Stuff to make the C++ string class a little easier to use. All the
+ * functionality here is inlined since they are farily small
+ * functions.
+ *
+ * All functions here will throw gpstk::StringUtils::StringException
+ * on an error. Any std::exception is converted to a
+ * gpstk::StringUtils::StringException so
+ * that's the only exception a user of this class needs to catch.
+ *
+ * For any function that modifies a string, make sure there is a
+ * non-const (std::string&) version and a const (const std::string&)
+ * version. The convention for writing the functions is the non-const
+ * version fully implements the function and the const version calls
+ * the non-const version.
+ *
+ * @sa stringutiltest.cpp for some examples.
+ */
+ namespace StringUtils
+ {
+ /** @defgroup stringutilsgroup Text String Manipulation Tools */
+ //@{
+
+ /// This is thrown instread of a std::exception when a
+ /// gpstk::StringUtils function fails.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(StringException, Exception);
+
+ /// Class for configuring the appearance of hexDumpData() output
+ class HexDumpDataConfig
+ {
+ public:
+ HexDumpDataConfig()
+ : showIndex(true), hexIndex(true), upperHex(false),
+ idxDigits(4), indexWS(1), groupBy(1), groupWS(1),
+ group2By(8), group2WS(2), bytesPerLine(16), showText(true),
+ separator(0), textWS(4)
+ {}
+ HexDumpDataConfig(bool ashowIndex, bool ahexIndex, bool aupperHex,
+ unsigned aidxDigits, unsigned aindexWS,
+ unsigned agroupBy, unsigned agroupWS,
+ unsigned agroup2By, unsigned agroup2WS,
+ unsigned abytesPerLine, bool ashowText,
+ char aseparator, unsigned atextWS)
+ : showIndex(ashowIndex), hexIndex(ahexIndex),
+ upperHex(aupperHex), idxDigits(aidxDigits),
+ indexWS(aindexWS), groupBy(agroupBy), groupWS(agroupWS),
+ group2By(agroup2By), group2WS(agroup2WS),
+ bytesPerLine(abytesPerLine), showText(ashowText),
+ separator(aseparator), textWS(atextWS)
+ {}
+ bool showIndex; ///< display index into string on each line.
+ bool hexIndex; ///< if true, use hex index numbers (else decimal).
+ bool upperHex; ///< if true, use upper-case hex digits.
+ unsigned idxDigits; ///< number of positions to use for index.
+ unsigned indexWS; ///< number of whitespace charaters between index and data.
+ unsigned groupBy; ///< number of bytes of data to show between spaces.
+ unsigned groupWS; ///< number of whitespace charaters between groups of hex data.
+ unsigned group2By; ///< number of groups to show per 2nd layer group (0=none, must be multiple of groupBy).
+ unsigned group2WS; ///< number of whitespace charaters between 2nd layer groups.
+ unsigned bytesPerLine; ///< number of bytes to display on a line of output (must be evenly divisible by both groupBy and group2By).
+ bool showText; ///< if true, show text of message (unprintable characters become '.'.
+ char separator; ///< character to offset text with (0 = none).
+ unsigned textWS; ///< number of whitespace characters between hex and text.
+ };
+
+ /**
+ * Perform a formatted hex-dump of the (potentially) binary
+ * data to the given stream.
+ * @param s stream to dump data to.
+ * @param data data to hex-dump.
+ * @param indent indents the string by that many spaces.
+ * @param cfg formatting configuration.
+ */
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ unsigned indent = 0,
+ HexDumpDataConfig cfg = HexDumpDataConfig());
+
+ /**
+ * Perform a formatted hex-dump of the (potentially) binary
+ * data to the given stream.
+ * @param s stream to dump data to.
+ * @param data data to hex-dump.
+ * @param tag string to put at the beginning of each line of output.
+ * @param cfg formatting configuration.
+ */
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ const std::string& tag,
+ HexDumpDataConfig cfg = HexDumpDataConfig());
+
+ /**
+ * Remove a string from the beginning of another string.
+ * Occurrences of the string \a aString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline
+ std::string& stripLeading(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+ /**
+ * Remove a string from the beginning of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, aString, num); return t; }
+
+ /**
+ * Remove a string from the beginning of another string.
+ * Occurrences of the string \a pString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the beginning of another string const version.
+ * Occurrences of the string \a pString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the beginning of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the beginning of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, std::string(1,aCharacter), num); return t; }
+
+ /**
+ * Strip blanks from the beginning of a string.
+ * Occurrences of the space character appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s,std::string(1,' '),num); }
+
+ /**
+ * Strip blanks from the beginning of a string const version.
+ * Occurrences of the space character appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t,std::string(1,' '),num); return t; }
+
+ /**
+ * Remove a string from the end of another string.
+ * Occurrences of the string \a aString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+ /**
+ * Remove a string from the end of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, aString, num); return t;}
+
+ /**
+ * Remove a string from the end of another string.
+ * Occurrences of the string \a pString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the end of another string const version.
+ * Occurrences of the string \a pString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the end of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the end of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(1,aCharacter), num); return t; }
+
+ /**
+ * Strip blanks from the end of a string.
+ * Occurrences of the space character appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(1,' '), num); }
+
+ /**
+ * Strip blanks from the end of a string const version.
+ * Occurrences of the space character appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(1,' '), num); return t;}
+
+ /**
+ * Remove a string from the beginning and end of another string.
+ * Occurrences of the string \a aString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+
+ /**
+ * Remove a string from the beginning and end of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, aString, num); return t; }
+
+
+ /**
+ * Remove a string from the beginning and end of another string.
+ * Occurrences of the string \a pString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the beginning and end of another string cosnt version.
+ * Occurrences of the string \a pString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the beginning and end of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the beginning and end of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(1,aCharacter), num); return t;}
+
+ /**
+ * Strip blanks from the beginning and end of a string.
+ * Occurrences of the space character appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(1, ' '), num); }
+
+ /**
+ * Strip blanks from the beginning and end of a string const version.
+ * Occurrences of the space character appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(1, ' '), num); return t;}
+
+ /**
+ * Converts all of the receiver's characters that are in the
+ * first specified string to the corresponding character in
+ * the second specified string.
+ * @param aString string to perform translation on.
+ * @param inputChars characters in \a aString to translate from.
+ * @param outputChars characters to translate to.
+ * @param pad pad character in the event inputChars and
+ * outputChars are not equal length. The pad character will
+ * become the translated character.
+ */
+ inline std::string translate(const std::string& aString,
+ const std::string& inputChars,
+ const std::string& outputChars,
+ const char pad = ' ');
+
+ /**
+ * Changes occurrences of a specified pattern to a specified
+ * replacement string. You can specify the number of changes
+ * to perform. The default is to change all occurrences of
+ * the pattern. You can also specify the position in the
+ * receiver at which to begin.
+ * @param aString string to perform translation on.
+ * @param inputString The pattern string as a reference to an
+ * object of type string. The library searches for the
+ * pattern string within the receiver's data.
+ * @param outputString The replacement string as a reference
+ * to an object of type string. It replaces the occurrences
+ * of the pattern string in the receiver's data.
+ * @param startPos The position to start the search at within
+ * the receiver's data. The default is 0.
+ * @param numChanges the number of patterns to search for and
+ * change. The default is to change all occurrences of the
+ * pattern.
+ */
+ inline std::string change(const std::string& aString,
+ const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos = 0,
+ unsigned numChanges = std::numeric_limits<unsigned>::max());
+
+ /**
+ * Changes occurrences of a specified pattern to a specified
+ * replacement string. You can specify the number of changes
+ * to perform. The default is to change all occurrences of
+ * the pattern. You can also specify the position in the
+ * receiver at which to begin.
+ * @param aString string to perform translation on.
+ * @param inputString The pattern string as a reference to an
+ * object of type string. The library searches for the
+ * pattern string within the receiver's data.
+ * @param outputString The replacement string as a reference
+ * to an object of type string. It replaces the occurrences
+ * of the pattern string in the receiver's data.
+ * @param startPos The position to start the search at within
+ * the receiver's data. The default is 0.
+ * @param numChanges the number of patterns to search for and
+ * change. The default is to change all occurrences of the
+ * pattern.
+ */
+ inline std::string& change(std::string& aString,
+ const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos = 0,
+ unsigned numChanges = std::numeric_limits<unsigned>::max());
+
+ /**
+ * Right-justifies the receiver in a string of the specified
+ * length. If the receiver's data is shorter than the
+ * requested length (\a length), it is padded on the left with
+ * the pad character (\a pad). The default pad
+ * character is a blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string& rightJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Right-justifies the receiver in a string of the specified
+ * length (const version). If the receiver's data is shorter than the
+ * requested length (\a length), it is padded on the left with
+ * the pad character (\a pad). The default pad
+ * character is a blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string rightJustify(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return rightJustify(t, length, pad); }
+
+ /**
+ * Left-justifies the receiver in a string of the specified
+ * length. If the new length (\a length) is larger than the
+ * current length, the string is extended by the pad
+ * character (\a pad). The default pad character is a
+ * blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string& leftJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Left-justifies the receiver in a string of the specified
+ * length (const version). If the new length (\a length) is larger
+ * than the current length, the string is extended by the pad
+ * character (\a pad). The default pad character is a
+ * blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string leftJustify(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return leftJustify(t, length, pad); }
+
+ /**
+ * Change the length of a string by adding to the beginning and end.
+ * The string \a s is modified to the specified
+ * length. If the string is shorter than
+ * \a length, then the string is truncated with the
+ * left-most \a length characters remaining.
+ * Otherwise, characters are added to the beginning and end of the
+ * string until the string is the specified length, where the
+ * number of characters added to the beginning and the end
+ * does not differ by more than one so the original string
+ * is centered.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& center(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Change the length of a string by adding to the beginning and end
+ * (const version).
+ * The string \a s is modified to the specified
+ * length. If the string is shorter than
+ * \a length, then the string is truncated with the
+ * left-most \a length characters remaining.
+ * Otherwise, characters are added to the beginning and end of the
+ * string until the string is the specified length, where the
+ * number of characters added to the beginning and the end
+ * does not differ by more than one so the original string
+ * is centered.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string center(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return center(t, length, pad); }
+
+ /**
+ * Convert a string to a double precision floating point number.
+ * @param s string containing a number.
+ * @return double representation of string.
+ */
+ inline double asDouble(const std::string& s)
+ { return strtod(s.c_str(), 0); }
+
+ /**
+ * Convert a string to an integer.
+ * @param s string containing a number.
+ * @return long integer representation of string.
+ */
+ inline long asInt(const std::string& s)
+ { return strtol(s.c_str(), 0, 10); }
+
+ /**
+ * Convert a string to an unsigned integer.
+ * @param s string containing a number.
+ * @return unsigned long integer representation of string.
+ */
+ inline unsigned long asUnsigned(const std::string& s)
+ { return strtoul(s.c_str(), 0, 10); }
+
+ /**
+ * Convert a string to a single precision floating point number.
+ * @param s string containing a number.
+ * @return single representation of string.
+ */
+ inline float asFloat(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a string to a big precision floating point number.
+ * @param s string containing a number.
+ * @return long double representation of string.
+ */
+ inline long double asLongDouble(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a value in a string to a type specified by the template
+ * class. The template class type must have stream operators
+ * defined.
+ * @param x object to turn into the templatized type.
+ * @return the template object of \a x.
+ */
+ template <class X>
+ inline X asData(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a long double to a string in fixed notation.
+ * @param x long double.
+ * @param precision the number of decimal places you want displayed.
+ * @return string representation of \a x.
+ */
+ inline std::string asString(const long double x,
+ const std::string::size_type precision = 21);
+
+ /**
+ * Convert a double to a string in fixed notation.
+ * @param x double.
+ * @param precision the number of decimal places you want displayed.
+ * @return string representation of \a x.
+ */
+ inline std::string asString(const double x,
+ const std::string::size_type precision = 17);
+
+ /**
+ * Convert any old object to a string.
+ * The class must have stream operators defined.
+ * @param x object to turn into a string.
+ * @return string representation of \a x.
+ */
+ template <class X>
+ inline std::string asString(const X x);
+
+ /**
+ * Convert a decimal string to a hexadecimal string.
+ * Modify the string such that the decimal integer is now
+ * represented as hexadecimal. Only the first decimal encountered is
+ * changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return reference to modified \a s.
+ */
+ inline std::string& d2x(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a decimal string to a hexadecimal string.
+ * Given a string containing a decimal integer, convert the
+ * integer from base 10 to base 16 and return the result. No
+ * prefix is added. Only the first decimal encountered is
+ * changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return string containing a hexadecimal number.
+ */
+ inline std::string d2x(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return d2x(t); }
+
+ /**
+ * Convert a hexadecimal string to a decimal string.
+ * Modify the string such that the hexadecimal number is now
+ * represented as decimal. Only the first hex number encountered
+ * is changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return reference to modified \a s.
+ */
+ inline std::string& x2d(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a hexadecimal string to a decimal string.
+ * Given a string containing a hexadecimal number, convert the
+ * integer from base 16 to base 10 and return the result.
+ * Only the first hex number encountered
+ * is changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return string containing a hexadecimal number.
+ */
+ inline std::string x2d(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return x2d(t); }
+
+ /**
+ * Convert a character string to a hexadecimal string.
+ * Modify the string such that the character string is now
+ * represented as series of hexadecimal digits.
+ * @param s string to convert.
+ * @return reference to modified \a s.
+ */
+ inline std::string& c2x(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a character string to a hexadecimal string.
+ * @param s string containing an integer.
+ * @return string containing a sequence of hexadecimal numbers.
+ */
+ inline std::string c2x(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return c2x(t); }
+
+ /**
+ * Convert a hexadecimal string to an int.
+ * Only the first hex number encountered is converted.
+ * @param s string containing a hex integer.
+ * @return a long holding the value of \a s.
+ */
+ inline unsigned int x2int(const std::string& s)
+ throw(StringException);
+
+
+ /**
+ * Convert an int to a string.
+ * @param i the integer to convert
+ * @return a string with the hex equivalent of i
+ */
+ inline std::string int2x(const unsigned int& i)
+ throw(StringException);
+
+ /**
+ * Replace all instances of \a oldString with \a newString in \a s.
+ * @param s the string whose contents will be modified.
+ * @param oldString the string to search for in \a s.
+ * @param newString the string to replace \a oldString in \a s.
+ * @return a reference to the modified string.
+ */
+ inline std::string& replaceAll(std::string& s,
+ const std::string& oldString,
+ const std::string& newString )
+ throw(StringException);
+
+ /**
+ * isDigitString is exactly like the C function isDigit
+ * except it checks all the characters of string \a s to see if
+ * they are all digits.
+ * @param s the string to check the digits in.
+ * @return true if \a s is all digits, false otherwise.
+ */
+ inline bool isDigitString(const std::string& s);
+
+ /**
+ * isDecimalString is like isDigitString() except it allows a
+ * single period ('.') character in the string.
+ * @param s the string to check.
+ * @return true if \a s is a valid fixed-point number.
+ */
+ inline bool isDecimalString(const std::string& s);
+
+ /**
+ * isAlphaString is exactly like the C function isAlpha
+ * except it checks all the characters of string \a s to see if
+ * they are all alphabet characters.
+ * @param s the string to check the characters in.
+ * @return true if \a s is all digits, false otherwise.
+ */
+ inline bool isAlphaString(const std::string& s);
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param aPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return string representing the first match of \a aPattern in
+ * \a s. Returns a null string if no match is found.
+ */
+ inline std::string matches(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException);
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param aPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return t if a match is found, f if not.
+ */
+ inline bool isLike(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException)
+ { return matches(s, aPattern, zeroOrMore, oneOrMore, anyChar) !=
+ std::string(); }
+
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param pPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return t if a match is found, f if not.
+ */
+ inline bool isLike(const std::string& s,
+ const char* pPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException)
+ { return matches(s, std::string(pPattern), zeroOrMore, oneOrMore, anyChar) !=
+ std::string(); }
+
+
+ /**
+ * Work-horse method for printf. Substitutes patterns
+ * matching \a pat with \a rep. Use only one pattern/token
+ * at a time! This used to be DayTime::iprint().
+ * @param fmt format to use for this time.
+ * @param pat regular expression pattern to match.
+ * @param rep sprintf token replacement. First character is
+ * token character used in fmt, remainder is sprintf token to
+ * use. For example, with fmt="%15S", pat="%[ 0-]?[[:digit:]]*S",
+ * and rep="Sd", the fmt will be translated to "%15d" before
+ * using it in a sprintf call like printf("%15d"), \a to.
+ * @param to the value to stuff into the string.
+ * @return \a fmt with \a pat replaced by \a to. If there is no
+ * match, \a fmt is returned unchanged.
+ */
+ template <class T>
+ std::string formattedPrint(const std::string& fmt,
+ const std::string& pat,
+ const std::string& rep,
+ T to)
+ throw(StringException);
+
+ /**
+ * Get a substring of a string.
+ * Try to avoid using this, use the stl string's substr
+ * method instead (and ::leftJustify if needed).
+ */
+ inline std::string subString(const std::string& s,
+ const std::string::size_type startPos = 0,
+ const std::string::size_type length = std::string::npos,
+ const char pad = ' ' )
+ throw(StringException);
+
+ /**
+ * Change all upper-case letters in a string to lower-case.
+ * \a s is modified as a result.
+ * @param s string to change to lower case.
+ * @return a copy of the original string, all in lower-case.
+ */
+ inline std::string& lowerCase(std::string& s);
+
+ /**
+ * Change all upper-case letters in a string to lower-case.
+ * Does not modify the original string.
+ * @param s a string containing upper-case characters.
+ * @return a copy of the original string, all in lower-case.
+ */
+ inline std::string lowerCase(const std::string& s)
+ { std::string t(s); return lowerCase(t); }
+
+ /**
+ * Change all lower-case letters in a string to upper-case.
+ * \a s is modified as a result.
+ * @param s string to change to upper case.
+ * @return a copy of the original string, all in upper-case.
+ */
+ inline std::string& upperCase(std::string& s);
+
+ /**
+ * Change all lower-case letters in a string to upper-case.
+ * Does not modify the original string.
+ * @param s a string containing lower-case characters.
+ * @return a copy of the original string, all in upper-case.
+ */
+ inline std::string upperCase(const std::string& s)
+ { std::string t(s); return upperCase(t); }
+
+ /**
+ * Make a string from a void pointer.
+ * This function should not be used. Instead, use the string
+ * constructor as follows:
+ * \code string((char*)p, size); \endcode
+ * @param p pointer to memory.
+ * @param size length of the data to turn into a string.
+ * @return string object containing the contents of \a p.
+ */
+ inline std::string memToString(const void* p,
+ const std::string::size_type size);
+
+ /**
+ * Returns the first word in string \a s without modifying the string.
+ * @param s the string to count the words from.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s;
+ */
+ inline std::string firstWord(const std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Counts the number of words in \a s and returns it.
+ * @param s the string to count the words from.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the number of words in \a s.
+ */
+ inline int numWords(const std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Returns \a numWords words starting with \a firstWord from
+ * \a s (if any).
+ * @param s a string with the word you want removed.
+ * @param firstWord the number of the first word you want from \a s.
+ * The first word is word 0.
+ * @param numWords number of words to get from \a s.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s or an empty string if there is
+ * no \a wordNum'th word.
+ */
+ inline std::string words(const std::string& s,
+ const std::string::size_type firstWord = 0,
+ const std::string::size_type numWords = std::string::npos,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Returns word number \a wordNum from \a s (if any).
+ * @param s a string with the word you want removed.
+ * @param wordNum the number of the word you want from \a s.
+ * The first word is word 0.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s or an empty string if there is
+ * no \a wordNum'th word.
+ */
+ inline std::string word(const std::string& s,
+ const std::string::size_type wordNum = 0,
+ const char delimiter = ' ')
+ throw(StringException)
+ { return words(s, wordNum, 1, delimiter); }
+
+ /**
+ * Removes the first word off string \a s and returns it.
+ * \a s is modified as a result.
+ * @param s a string with the word you want removed.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s
+ */
+ inline std::string stripFirstWord(std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Removes indicated words from the string \a s.
+ * \a s is modified as a result.
+ * @param s a string with the words you want removed.
+ * @param first the first word to be removed (the first word is 0).
+ * @param wordsToReplace the number of words you want removed.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return a reference to string \a s with the words removed.
+ */
+ inline std::string& removeWords(std::string& s,
+ const std::string::size_type first = 0,
+ const std::string::size_type wordsToReplace = std::string::npos,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Convert a double to a scientific notation number.
+ * @param d the double to convert
+ * @param length length (in characters) of output, including exponent
+ * @param expLen length (in characters) of the exponent, with sign
+ * @param showSign if true, reserves 1 character for +/- sign
+ * @param checkSwitch if true, keeps the exponential sanity check for
+ * exponentials above three characters in length. If false, it removes
+ * that check.
+ */
+ inline std::string doub2sci(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool showSign = true,
+ const bool checkSwitch = true);
+
+ /**
+ * Convert scientific notation to FORTRAN notation.
+ * As an example, the string "1.5636E5" becomes " .15636D6".
+ * Note that the first character of the string will be '-' if
+ * the number is negative or ' ' if the first character is positive.
+ * @param aStr string with number to convert
+ * @param length length (in characters) of number, including exponent.
+ * @param expLen length (in characters of exponent, not including sign.
+ * @param startPos start position of number in string
+ * @param checkSwitch will keep the method running as orignially programed
+ * when set to true. If false, the method will always resize exponentials,
+ * produce an exponential with an E instead of a D, and always have a leading
+ * zero. For example -> 0.87654E-0004 or -0.1234E00005.
+ * @throws Exception if the string is not a number in
+ * scientific notation
+ */
+ inline std::string& sci2for(std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos = 0,
+ const std::string::size_type expLen = 3,
+ const bool checkSwitch = true)
+ throw(StringException);
+
+ /**
+ * Convert double precision floating point to a string
+ * containing the number in FORTRAN notation.
+ * As an example, the number 156360 becomes ".15636D6".
+ * @param d number to convert.
+ * @param length length (in characters) of number, including exponent.
+ * @param expLen length (in characters of exponent, including sign.
+ * @param checkSwitch if true, keeps the exponential sanity check for
+ * exponentials above three characters in length. If false, it removes
+ * that check.
+ * @return a string containing \a d in FORTRAN notation.
+ */
+ inline std::string doub2for(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool checkSwitch = true)
+ throw(StringException);
+
+ /**
+ * Convert FORTRAN representation of a double precision
+ * floating point in a string to a number.
+ * As an example, the number ".15636D6" becomes 156360.
+ * @param aStr string containing FORTRAN representation of number.
+ * @param length length (in characters) of number, including exponent.
+ * @param startPos beginning of number in string.
+ * @return value of the number.
+ */
+ inline double for2doub(const std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos = 0);
+
+ /**
+ * Change a string into printable characters. Control
+ * characters (0-26) are changed to ^@, ^A, etc. Other
+ * non-printable characters are changed to hex sequences
+ * enclosed in <>.
+ * @param aStr the string to make printable.
+ */
+ inline std::string printable(const std::string& aStr)
+ throw(StringException);
+
+ /**
+ * Nicely expands the input string into several lines, non-const
+ * version.
+ * @param aStr the string to be modified.
+ * @param lineDelim a string to put between every line.
+ * @param indent an indentataion string used on all but the first line
+ * @param firstIndent is the indentation used on the first line.
+ * @param len the maximum length of string to put on a line.
+ * @param wordDelim the character that separates each word.
+ * @return the string nicely formatted.
+ */
+ inline std::string& prettyPrint(std::string& aStr,
+ const std::string& lineDelim = "\n",
+ const std::string& indent = "",
+ const std::string& firstIndent = " ",
+ const std::string::size_type len = 80,
+ const char wordDelim = ' ')
+ throw(StringException);
+
+ /**
+ * Const version of prettyPrint, which nicely expands the
+ * input string into several lines.
+ * @param aStr the string to be modified.
+ * @param lineDelim a string to put between every line.
+ * @param indent an indentataion string used on all but the first line
+ * @param firstIndent is the indentation used on the first line.
+ * @param len the maximum length of string to put on a line.
+ * @param wordDelim the character that separates each word.
+ * @return the string nicely formatted.
+ */
+ inline std::string prettyPrint(const std::string& aStr,
+ const std::string& lineDelim = "\n",
+ const std::string& indent = "",
+ const std::string& firstIndent = " ",
+ const std::string::size_type len = 80,
+ const char wordDelim = ' ')
+ throw(StringException)
+ {
+ std::string temp(aStr);
+ prettyPrint(temp, lineDelim, indent, firstIndent, len, wordDelim);
+ return temp;
+ }
+
+ } // namespace StringUtils
+
+} // namespace gpstk
+
+// ################################################
+// Implementations of inline functions follow
+// ################################################
+
+namespace gpstk
+{
+
+ namespace StringUtils
+ {
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ unsigned indent, HexDumpDataConfig cfg)
+ {
+ std::string instr(indent, ' ');
+ hexDumpData(s, data, instr, cfg);
+ }
+
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ const std::string& tag, HexDumpDataConfig cfg)
+ {
+ std::string ascii="";
+ unsigned indent = tag.length();
+ int col = 0;
+ int datasize=data.size();
+ std::string groupws(cfg.groupWS, ' ');
+ std::string group2ws(cfg.group2WS, ' ');
+ std::string indexws(cfg.indexWS, ' ');
+ std::string textws(cfg.textWS, ' ');
+ unsigned linesize;
+
+ if (cfg.groupBy && ((cfg.bytesPerLine % cfg.groupBy) != 0))
+ {
+ s << "hexDumpData: cfg.bytesPerLine % cfg.groupBy != 0"
+ << std::endl;
+ return;
+ }
+ if (cfg.group2By && ((cfg.bytesPerLine % cfg.group2By) != 0))
+ {
+ s << "hexDumpData: cfg.bytesPerLine % cfg.group2By != 0"
+ << std::endl;
+ return;
+ }
+ if (cfg.groupBy && ((cfg.group2By % cfg.groupBy) != 0))
+ {
+ s << "hexDumpData: cfg.group2By % cfg.groupBy != 0"
+ << std::endl;
+ return;
+ }
+
+ // line format:
+ // <tag><index>:<indexws><group1byte1>...<group1byte[groupBy]><groupws>...<group[group2By]byte1>...<group[group2By]byte[groupBy]><group2ws>....<byte[bytesPerLine]><textws><separator><text><separator>\n
+ linesize = indent;
+ if (cfg.showIndex)
+ linesize += cfg.idxDigits + 1 + cfg.indexWS;
+ linesize += cfg.bytesPerLine * 2;
+ unsigned w2 = 0;
+ unsigned w1 = 0;
+ if (cfg.group2By)
+ w2 = (cfg.bytesPerLine / cfg.group2By) - 1;
+ if (cfg.groupBy)
+ w1 = (cfg.bytesPerLine / cfg.groupBy) - w2 - 1;
+ if (cfg.groupBy > 0)
+ linesize += cfg.groupWS * w1;
+ if (cfg.group2By > 0)
+ linesize += cfg.group2WS * w2;
+ /*
+ linesize doesn't include text stuff
+ if (cfg.showText)
+ linesize += cfg.textWS + cfg.bytesPerLine;
+ if (cfg.separator)
+ linesize += 2;
+ */
+
+ for (int i=0; i<datasize; i++)
+ {
+ if (i%cfg.bytesPerLine==0)
+ {
+ s << tag;
+ col = indent;
+ if (cfg.showIndex)
+ {
+ if (cfg.hexIndex)
+ {
+ s << std::hex;
+ if (cfg.upperHex)
+ s << std::uppercase;
+ else
+ s << std::nouppercase;
+ }
+ else
+ s << std::dec;
+ s << std::setfill('0');
+ s << std::setw(cfg.idxDigits) << i << ":" << indexws;
+ s << std::dec << std::nouppercase;
+ }
+ col += cfg.idxDigits + 1 + cfg.indexWS;
+ }
+ unsigned char c=data[i];
+ if (isprint(c))
+ ascii += c;
+ else
+ ascii += '.';
+ if (cfg.upperHex)
+ s << std::uppercase;
+ else
+ s << std::nouppercase;
+ s << std::hex << std::setw(2) << (int)c << std::dec
+ << std::nouppercase;
+ col += 2;
+ if (((i % cfg.bytesPerLine) == (cfg.bytesPerLine-1)) ||
+ (i == (datasize-1)))
+ {
+ if (cfg.showText)
+ {
+ int extra = linesize-col;
+ std::string space(extra, ' ');
+ s << space << textws;
+ if (cfg.separator)
+ s << cfg.separator;
+ s << ascii;
+ if (cfg.separator)
+ s << cfg.separator;
+ s << std::endl;
+ }
+ // this *should* be updated at the beginning of the loop
+ //col=indent+6;
+ ascii.erase();
+ }
+ else if (cfg.group2By && ((i % cfg.group2By) == (cfg.group2By-1)))
+ {
+ s << group2ws;
+ col += cfg.group2WS;
+ }
+ else if (cfg.groupBy && ((i % cfg.groupBy) == (cfg.groupBy-1)))
+ {
+ s << groupws;
+ col += cfg.groupWS;
+ }
+ }
+ }
+
+ // Keep searching for aString at the start of s
+ // until num == 0 or aString is not found at the start of s
+ inline std::string& stripLeading(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ try
+ {
+ if (aString == "")
+ return s;
+
+ while((num > 0) &&
+ (s.find(aString,0) == 0) &&
+ (s.length() > 0))
+ {
+ s.erase(0,aString.length());
+ --num;
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // keep searching for aString at the end of s
+ // until aString isn't found there or num == 0
+ inline std::string& stripTrailing(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ try
+ {
+ std::string::size_type pos = s.length() - aString.length();
+
+ // empty string, etc.
+ if ((pos > s.length()) || (aString == ""))
+ return s;
+
+ while((num > 0) &&
+ (s.rfind(aString,pos) == pos) &&
+ (s.length() > 0))
+ {
+ s.erase(pos, std::string::npos);
+ --num;
+ pos = s.length() - aString.length();
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& strip(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ stripLeading(s, aString, num);
+ stripTrailing(s, aString, num);
+ return s;
+ }
+
+ inline std::string translate(const std::string& aString,
+ const std::string& inputChars,
+ const std::string& outputChars,
+ const char pad)
+ {
+ std::string rv = aString;
+ std::string::size_type aspos = 0;
+ std::string::size_type inpos = std::string::npos;
+ char toc = pad;
+
+ // By starting at the last position, we avoid infinite
+ // loops in case someone did something dumb, like, for
+ // example, setting inputChars=outputChars.
+ while ((aspos = rv.find_first_of(inputChars, aspos))
+ != std::string::npos)
+ {
+ // figure out which char we found;
+ inpos = inputChars.find(rv[aspos]);
+ if (outputChars.length() < inpos)
+ toc = pad;
+ else
+ toc = outputChars[inpos];
+ rv[aspos] = toc;
+
+ aspos++; // try to guarantee no infinite loops
+ }
+
+ return rv;
+ }
+
+ inline std::string change(const std::string& aString, const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos, unsigned numChanges)
+ {
+ std::string rv(aString);
+ change(rv, inputString, outputString, startPos, numChanges);
+ return rv;
+ }
+
+ inline std::string& change(std::string& aString, const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos, unsigned numChanges)
+ {
+ unsigned count = 0;
+ std::string::size_type opos = startPos;
+
+ while (count < numChanges)
+ {
+ std::string::size_type pos = aString.find(inputString, opos);
+ if (pos != std::string::npos)
+ {
+ count++;
+ aString.replace(pos, inputString.length(), outputString);
+ opos = pos + outputString.length();
+ }
+ else
+ break;
+ }
+
+ return aString;
+ }
+
+ // if the string is bigger than length, truncate it from the left.
+ // otherwise, add pad characters to it's left.
+ inline std::string& rightJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ s = s.substr(s.length()-length, std::string::npos);
+ }
+ else
+ {
+ s.insert((std::string::size_type)0, length-s.length(), pad);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // if the string is bigger than length, truncate it from the right.
+ // otherwise, add pad characters to it's right.
+ inline std::string& leftJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ s = s.substr(0, length);
+ }
+ else
+ {
+ s.append(length-s.length(), pad);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // leftJustify if s is bigger than length.
+ // otherwise, add pad to the left and right of s.
+ inline std::string& center(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ leftJustify(s, length, pad);
+ }
+ else {
+ std::string::size_type leftOff = s.length() + (length - s.length()) / 2;
+ leftJustify(s, leftOff, pad);
+ rightJustify(s, length, pad);
+ }
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+
+ inline float asFloat(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ float f;
+ is >> f;
+ return f;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline long double asLongDouble(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ long double x;
+ is >> x;
+ return x;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ template <class X>
+ inline X asData(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ X x;
+ is >> x;
+ return x;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string asString(const long double x, const std::string::size_type precision)
+ {
+ std::ostringstream ss;
+ ss << std::fixed << std::setprecision(precision) << x ;
+ return ss.str();
+ }
+
+ inline std::string asString(const double x, const std::string::size_type precision)
+ {
+ std::ostringstream ss;
+ ss << std::fixed << std::setprecision(precision) << x;
+ return ss.str();
+ }
+
+ template<class X>
+ inline std::string asString(const X x)
+ {
+ std::ostringstream ss;
+ ss << x;
+ return ss.str();
+ }
+
+ // decimal to hex...
+ inline std::string& d2x(std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ // remove the integer from s, including
+ // leading spaces and 0's
+ long l = asInt(s);
+ stripLeading(s);
+ stripLeading(s, "0");
+ stripLeading(s, asString<long>(l));
+
+ // put the int in a stringstream to convert it
+ std::ostringstream st;
+ st << std::hex << l << std::dec;
+
+ // add the new hex to s
+ s.insert(0, upperCase(st.str()) );
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // character to hex...
+ inline std::string& c2x(std::string& s)
+ throw(StringException)
+ {
+ const char hexDigits[] = "0123456789ABCDEF";
+ try
+ {
+ std::string old(s);
+ const unsigned char *pSource = (unsigned char *)old.c_str();
+ unsigned n = old.length();
+
+ s.resize(n * 2, 0);
+
+ for (int i = 0; i < (int)n * 2;)
+ {
+ unsigned char c = *pSource++;
+ s[i++] = hexDigits[ c / 16 ];
+ s[i++] = hexDigits[ c % 16 ];
+ }
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ /// @todo Need to find a way to combine this with x2d.
+ // hex to a long.
+ inline unsigned int x2int(const std::string& s)
+ throw (StringException)
+ {
+ try
+ {
+ std::string t(s);
+ // remove the "0x" part, leading zeros and spaces from the
+ // string
+ // ex. ' 0x003' -> '3'
+ stripLeading(t);
+ stripLeading(t, "0x", 1);
+ stripLeading(t, "0");
+
+ // if it's empty, it was 0
+ if (t.empty())
+ {
+ return 0;
+ }
+
+ // make the stringstream, get the integer, and
+ // remove it from the string
+ std::istringstream strstr(t);
+ int i;
+ strstr >> std::hex >> i;
+ return i;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ /// @todo detecting 0 isn't quite right...
+ // hex to decimal
+ inline std::string& x2d(std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ // remove the "0x" part, leading zeros and spaces from the
+ // string
+ // ex. ' 0x003' -> '3'
+ stripLeading(s);
+ stripLeading(s, "0x", 1);
+ stripLeading(s, "0");
+
+ // make the stringstream, get the integer, and
+ // remove it from the string
+ std::istringstream strstr(s);
+ int i = 0;
+ strstr >> std::hex >> i;
+ stripLeading(s, asString<int>(asInt(s)), 1);
+
+ // append the decimal to the existing string
+ s.insert(0,asString<int>(i));
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string int2x(const unsigned int& i)
+ throw(StringException)
+ {
+ try
+ {
+ std::ostringstream ss;
+ ss << std::hex << i;
+ return ss.str();
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& replaceAll(std::string& s,
+ const std::string& oldString,
+ const std::string& newString)
+ throw(StringException)
+ {
+ try
+ {
+ int spot = s.find(oldString, 0);
+ while (spot != (int)std::string::npos)
+ {
+ s.replace(spot, oldString.length(), newString);
+ spot += newString.length();
+ spot = s.find(oldString, spot);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline bool isDigitString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index = 0;
+ if((s[0] == '-') || (s[0] == '+'))
+ index++;
+ for( ; index < s.size(); index++)
+ if (!isdigit(s[index]))
+ return false;
+ return true;
+ }
+
+ inline bool isDecimalString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index = 0;
+ bool sawdot = false;
+ if((s[0] == '-') || (s[0] == '+'))
+ index++;
+ for( ; index < s.size(); index++)
+ {
+ if (s[index] == '.')
+ {
+ if (sawdot)
+ return false;
+ else sawdot = true;
+ }
+ else if (!isdigit(s[index]))
+ return false;
+ }
+ return true;
+ }
+
+ inline bool isAlphaString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index;
+ for(index = 0; index < s.size(); index++)
+ if (!isalpha(s[index]))
+ return false;
+ return true;
+ }
+
+ inline std::string matches(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore,
+ const char oneOrMore,
+ const char anyChar)
+ throw(StringException)
+ {
+ const std::string::size_type regErrorBufSize = 512;
+
+ std::string thisPattern(aPattern);
+ std::string thisStr(s);
+
+ // check if something other than the regex standard
+ // characters (*,+,.) is used for those variables
+ if (zeroOrMore != '*')
+ {
+ replaceAll(thisPattern, "*", "\\*");
+ replaceAll(thisPattern, std::string(1, zeroOrMore), "*");
+ }
+ if (oneOrMore != '+')
+ {
+ replaceAll(thisPattern, "+", "\\+");
+ replaceAll(thisPattern, std::string(1, oneOrMore), "+");
+ }
+ if (anyChar != '.')
+ {
+ replaceAll(thisPattern, ".", "\\.");
+ replaceAll(thisPattern, std::string(1, anyChar), ".");
+ }
+ regmatch_t matches;
+ regex_t regExp;
+ char errorMsg[regErrorBufSize];
+ int rc;
+
+ if ((rc = regcomp(®Exp, thisPattern.c_str(), REG_EXTENDED)) != 0)
+ {
+ regerror(rc, ®Exp, errorMsg, regErrorBufSize - 1);
+ regfree(®Exp);
+ StringException strerr("Regexp error: " + std::string(errorMsg));
+ GPSTK_THROW(strerr);
+ }
+ rc = regexec(®Exp, thisStr.c_str(), 1, &matches,
+ REG_NOTBOL | REG_NOTEOL);
+ if ( (rc != 0) && (rc != REG_NOMATCH) )
+ {
+ regerror(rc, ®Exp, errorMsg, regErrorBufSize - 1);
+ regfree(®Exp);
+ StringException strerr("Regexp error: " + std::string(errorMsg));
+ GPSTK_THROW(strerr);
+ }
+
+ regfree(®Exp);
+ if (rc == REG_NOMATCH)
+ return std::string();
+ else
+ return thisStr.substr(matches.rm_so, matches.rm_eo - matches.rm_so);
+ }
+
+ template <class T>
+ inline std::string formattedPrint(const std::string& fmt, const std::string& pat,
+ const std::string& rep, T to)
+ throw(StringException)
+ {
+ regex_t re;
+ regmatch_t r;
+ std::string rv = fmt;
+ int rc;
+ char buffer[513];
+
+ // if the regex doesnt compile, toast =)
+ if ((rc = regcomp(&re, pat.c_str(), REG_EXTENDED)) != 0)
+ {
+ StringException se("Bad regular expression: regcomp() rc = " +
+ asString(rc));
+ GPSTK_THROW(se);
+ }
+
+ int len = rv.length();
+ for (int i = 0; i < len; i++)
+ {
+ if ((rc = regexec(&re, rv.c_str(), 1, &r, 0)) != 0)
+ break;
+ else
+ {
+ std::string mac = rv.substr(r.rm_so, r.rm_eo - r.rm_so);
+ mac = replaceAll(mac, rep.substr(0,1), rep.substr(1));
+ sprintf(buffer, mac.c_str(), to);
+ rv = rv.substr(0, r.rm_so) + std::string(buffer) +
+ rv.substr(r.rm_eo);
+ i = r.rm_eo;
+ }
+ }
+
+ regfree(&re);
+
+ return rv;
+ }
+
+ inline std::string subString(const std::string& s,
+ const std::string::size_type startPos,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(startPos >= s.length())
+ {
+ return std::string(length, pad);
+ }
+ std::string temp = s.substr(startPos, length);
+ return leftJustify(temp, length, pad);
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& lowerCase(std::string& s)
+ {
+ for(std::string::size_type i = 0; i < s.length(); i++)
+ {
+ s[i] = tolower(s[i]);
+ }
+ return s;
+ }
+
+ inline std::string& upperCase(std::string& s)
+ {
+ for(std::string::size_type i = 0; i < s.length(); i++)
+ {
+ s[i] = toupper(s[i]);
+ }
+ return s;
+ }
+
+ inline std::string memToString(const void* p,
+ const std::string::size_type size)
+ {
+ unsigned char* q = (unsigned char*)p;
+ std::string s(size,'\0');
+ for (int i=0; i<(int)size; i++)
+ {
+ s[i] = (unsigned char)(*q++);
+ }
+ return s;
+ }
+
+ inline std::string firstWord(const std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ // return s if there are no delimiters
+ std::string::size_type pos = s.find_first_not_of(delimiter);
+ if (pos == std::string::npos)
+ {
+ return s;
+ }
+ // find the end delimiter (if any) and return the string
+ std::string::size_type endPos = s.find(delimiter, pos);
+ if (endPos == std::string::npos)
+ {
+ return std::string(s, pos, endPos);
+ }
+ else
+ {
+ return std::string(s, pos, endPos - pos);
+ }
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline int numWords(const std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ std::string t(s);
+ stripTrailing(t, delimiter);
+
+ int words = 0;
+ while(t.length())
+ {
+ stripLeading(t, delimiter);
+ stripLeading(t, firstWord(t, delimiter));
+ words++;
+ }
+ return words;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string words(const std::string& s,
+ const std::string::size_type firstWord,
+ const std::string::size_type numWords,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ if ((firstWord == 0) && (numWords == 1))
+ return StringUtils::firstWord(s, delimiter);
+ if (numWords == 0)
+ return "";
+ std::string::size_type wordNum = 0;
+ std::string::size_type pos = 0, startPos = 0;
+
+ std::string toReturn;
+
+ // get position of word wordNum
+ pos = s.find_first_not_of(delimiter, pos);
+ while ((pos != std::string::npos) && (pos <= s.length()))
+ {
+ if (wordNum == firstWord)
+ startPos = pos;
+ // get first delimter after word wordNum
+ pos = s.find(delimiter, pos);
+ if (((int)numWords != -1) && ((int)wordNum == (int)(firstWord + (numWords-1))))
+ break;
+ pos = s.find_first_not_of(delimiter, pos);
+ wordNum++;
+ }
+
+ if (pos == std::string::npos)
+ return s.substr(startPos);
+ return s.substr(startPos, pos-startPos);
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string stripFirstWord(std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ stripLeading(s, delimiter);
+ std::string toReturn = firstWord(s, delimiter);
+ stripLeading(s, toReturn);
+ stripLeading(s, delimiter);
+ return toReturn;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& removeWords(std::string& s,
+ const std::string::size_type first,
+ const std::string::size_type wordsToReplace,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ std::string temp(s);
+ std::string::size_type thisWord;
+
+ // empty out s. add the new parts of s as they are parsed
+ s.erase(0, std::string::npos);
+
+ // copy the part of the string through word 'first'
+ // by appending any delimiters then appending
+ // a word for however many words we're keeping.
+ for(thisWord = 0; thisWord < first; thisWord++)
+ {
+ s.append(temp.find_first_not_of(delimiter),delimiter);
+ stripLeading(temp, delimiter);
+ s.append(firstWord(temp));
+ stripLeading(temp, firstWord(temp));
+ }
+
+ // skip over the number of words to replace, making
+ // sure to stop when there's no more string left
+ // to skip
+ for(thisWord = 0;
+ (thisWord < wordsToReplace) &&
+ (temp.length() != 0);
+ thisWord++)
+ {
+ stripLeading(temp, delimiter);
+ stripLeading(temp, firstWord(temp));
+ }
+
+ // add on any extra words at the end
+ s.append(temp);
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string doub2sci(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool showSign,
+ const bool checkSwitch)
+ {
+ std::string toReturn;
+ short exponentLength = expLen;
+
+ /* Validate the assumptions regarding the input arguments */
+ if (exponentLength < 0) exponentLength = 1;
+ if (exponentLength > 3 && checkSwitch) exponentLength = 3;
+
+ std::stringstream c;
+ c.setf(std::ios::scientific, std::ios::floatfield);
+
+ // length - 3 for special characters ('.', 'e', '+' or '-')
+ // - exponentlength (e04)
+ // - 1 for the digit before the decimal (2.)
+ // and if showSign == true,
+ // an extra -1 for '-' or ' ' if it's positive or negative
+ int expSize = 0;
+ if (showSign)
+ expSize = 1;
+ c.precision(length - 3 - exponentLength - 1 - expSize);
+
+
+ c << d;
+
+ c >> toReturn;
+
+ return toReturn;
+ }
+
+ inline std::string& sci2for(std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos,
+ const std::string::size_type expLen,
+ const bool checkSwitch)
+ throw(StringException)
+ {
+ try
+ {
+ std::string::size_type idx = aStr.find('.', startPos);
+ int expAdd = 0;
+ std::string exp;
+ long iexp;
+ //If checkSwitch is false, always redo the exponential. Otherwise,
+ //set it to false.
+ bool redoexp=!checkSwitch;
+
+ // Check for decimal place within specified boundaries
+ if ((idx == 0) || (idx >= (startPos + length - expLen - 1)))
+ {
+ StringException e("sci2for: no decimal point in string");
+ GPSTK_THROW(e);
+ }
+
+ // Here, account for the possibility that there are
+ // no numbers to the left of the decimal, but do not
+ // account for the possibility of non-scientific
+ // notation (more than one digit to the left of the
+ // decimal)
+ if (idx > startPos)
+ {
+ redoexp = true;
+ // Swap digit and decimal.
+ aStr[idx] = aStr[idx-1];
+ aStr[idx-1] = '.';
+ // Only add one to the exponent if the number is non-zero
+ if (asDouble(aStr.substr(startPos, length)) != 0.0)
+ expAdd = 1;
+ }
+
+ idx = aStr.find('e', startPos);
+ if (idx == std::string::npos)
+ {
+ idx = aStr.find('E', startPos);
+ if (idx == std::string::npos)
+ {
+ StringException e("sci2for:no 'e' or 'E' in string");
+ GPSTK_THROW(e);
+ }
+ }
+ // Change the exponent character to D normally, or E of checkSwitch is false.
+ if (checkSwitch)
+ aStr[idx] = 'D';
+ else
+ aStr[idx] = 'E';
+
+ // Change the exponent itself
+ if (redoexp)
+ {
+ exp = aStr.substr(idx + 1, std::string::npos);
+ iexp = asInt(exp);
+ iexp += expAdd;
+
+ aStr.erase(idx + 1);
+ if (iexp < 0)
+ {
+ aStr += "-";
+ iexp -= iexp*2;
+ }
+ else
+ aStr += "+";
+ aStr += rightJustify(asString(iexp),expLen,'0');
+
+ }
+
+ // if the number is positive, append a space
+ // (if it's negative, there's a leading '-'
+ if (aStr[0] == '.')
+ {
+ aStr.insert((std::string::size_type)0, 1, ' ');
+ }
+
+ //If checkSwitch is false, add on one leading zero to the string
+ if (!checkSwitch)
+ {
+ aStr.insert((std::string::size_type)1, 1, '0');
+ }
+
+
+ return aStr;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ } // end sci2for
+
+
+ inline std::string doub2for(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool checkSwitch)
+ throw(StringException)
+ {
+ try
+ {
+ short exponentLength = expLen;
+
+ /* Validate the assumptions regarding the input arguments */
+ if (exponentLength < 0) exponentLength = 1;
+ if (exponentLength > 3 && checkSwitch) exponentLength = 3;
+
+ std::string toReturn = doub2sci(d, length, exponentLength, true, checkSwitch);
+ sci2for(toReturn, length, 0, exponentLength, checkSwitch);
+
+ return toReturn;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+
+ inline double for2doub(const std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos)
+ {
+ std::string s(aStr);
+ strip(s);
+ std::string::size_type pos;
+
+ // you can blame Rinex for these special checks
+ if (s.empty())
+ {
+ return 0;
+ }
+
+ if ( ((pos = s.find('E', startPos)) != std::string::npos) ||
+ ((pos = s.find('d', startPos)) != std::string::npos) ||
+ ((pos = s.find('D', startPos)) != std::string::npos))
+ {
+ s[pos] = 'e';
+ }
+ // just treat it like a double
+ else
+ {
+ return asDouble(aStr.substr(length, startPos));
+ }
+
+ std::stringstream st;
+ st << s;
+
+ double d;
+ st >> d;
+
+ return d;
+ }
+
+ inline std::string printable(const std::string& aStr)
+ throw(StringException)
+ {
+ try
+ {
+ std::string rv(aStr);
+
+ for (int i = 0; i < (int)rv.length(); i++)
+ {
+ char c = rv[i];
+ if (!isprint(c))
+ {
+ if (iscntrl(c))
+ {
+ rv.replace(i,1,2,'^');
+ rv.replace(i+1,1,1, 64+(c));
+ }
+ else
+ {
+ std::string mess(c2x(rv.substr(i,1)));
+ rv.replace(i,1,"<"+mess+">");
+ }
+ }
+ }
+
+ return rv;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& prettyPrint(std::string& aStr,
+ const std::string& lineDelim,
+ const std::string& indent,
+ const std::string& firstIndent,
+ const std::string::size_type len,
+ const char wordDelim)
+ throw(StringException)
+ {
+ try
+ {
+ // chop aStr up into words based on wordDelim
+ std::list<std::string> wordList;
+ std::string tempStr(aStr);
+ stripLeading(tempStr, wordDelim);
+ while (!tempStr.empty())
+ {
+ std::string theFirstWord = firstWord(tempStr,wordDelim);
+ wordList.push_back(theFirstWord);
+ stripLeading(tempStr, theFirstWord);
+ stripLeading(tempStr, wordDelim);
+ }
+
+ // now reassemble the words into sentences
+ std::string toReturn;
+ std::string thisLine = firstIndent, lastLine;
+ while (!wordList.empty())
+ {
+ lastLine = thisLine;
+ if (!lastLine.empty())
+ thisLine += wordDelim;
+ thisLine += wordList.front();
+
+ if (thisLine.length() > len)
+ {
+ // if the first word is longer than a line, just add it.
+ // if this is the first line, remember to add the indent.
+ if (lastLine.empty())
+ {
+ if (toReturn.empty())
+ lastLine += firstIndent;
+ lastLine = wordList.front();
+ }
+
+ toReturn += lastLine + lineDelim;
+
+ thisLine.erase();
+ lastLine.erase();
+
+ thisLine = indent;
+ }
+ else
+ wordList.erase(wordList.begin());
+ }
+ if (!thisLine.empty())
+ toReturn += (thisLine + lineDelim);
+
+ aStr = toReturn;
+ return aStr;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ //@}
+
+ } // namespace StringUtils
+
+} // namespace gpstk
+#endif // GPSTK_STRINGUTILS_HPP
+
+
+
diff --git a/dev/tests/SEM/sem.txt b/dev/tests/SEM/sem.txt
new file mode 100644
index 0000000..fbe4e65
--- /dev/null
+++ b/dev/tests/SEM/sem.txt
@@ -0,0 +1,272 @@
+30 CURRENT.ALM
+ 385 405504
+
+1
+32
+0
+ 0.67038536071777E-0002 0.14900207519531E-0001 -0.24301698431373E-0008
+ 0.51536850585938E+0004 -0.49867236614227E+0000 -0.56126058101654E+0000
+ 0.76654481887817E+0000 0.10108947753906E-0003 0.36379788070917E-0011
+0
+9
+
+2
+61
+0
+ 0.88553428649902E-0002 0.16784667968750E-0002 -0.25647750589997E-0008
+ 0.51537119140625E+0004 0.81902885437012E+0000 0.69743275642395E+0000
+-0.84581649303436E+0000 0.72479248046875E-0004 0.36379788070917E-0011
+0
+9
+
+3
+33
+0
+ 0.90756416320801E-0002 -0.53710937500000E-0002 -0.25866029318422E-0008
+ 0.51536596679688E+0004 0.45644414424896E+0000 0.23231720924377E+0000
+ 0.94063425064087E+0000 -0.38146972656250E-0005 0.72759576141834E-0011
+0
+9
+
+4
+34
+0
+ 0.78010559082031E-0002 0.15125274658203E-0002 -0.25720510166138E-0008
+ 0.51536777343750E+0004 0.82521224021912E+0000 0.74723124504089E-0001
+-0.30969858169556E-0001 0.35381317138672E-0003 0.36379788070917E-0011
+0
+9
+
+5
+35
+0
+ 0.76551437377930E-0002 -0.99182128906250E-0003 -0.25829649530351E-0008
+ 0.51538046875000E+0004 0.12661850452423E+0000 0.36652064323425E+0000
+-0.14539170265198E+0000 0.47683715820312E-0005 0.14551915228367E-0010
+63
+9
+
+6
+36
+0
+ 0.57139396667480E-0002 -0.29754638671875E-0002 -0.25574991013855E-0008
+ 0.51535400390625E+0004 0.47566592693329E+0000 -0.56101095676422E+0000
+ 0.27724540233612E+0000 0.46157836914063E-0003 -0.21827872842550E-0010
+0
+9
+
+7
+37
+0
+ 0.10815620422363E-0001 -0.24757385253906E-0002 -0.25574991013855E-0008
+ 0.51520151367188E+0004 0.46743047237396E+0000 -0.54058778285980E+0000
+ 0.22307705879211E+0000 0.44918060302734E-0003 -0.10913936421275E-0010
+0
+9
+
+8
+38
+1
+ 0.98152160644531E-0002 0.10807037353516E-0001 -0.24665496312082E-0008
+ 0.51536972656250E+0004 -0.16550469398499E+0000 0.87344968318939E+0000
+ 0.31100463867187E+0000 -0.92506408691406E-0004 0.00000000000000E+0000
+0
+9
+
+9
+39
+0
+ 0.18538475036621E-0001 0.68836212158203E-0002 -0.25138433557004E-0008
+ 0.51536704101563E+0004 -0.19180119037628E+0000 0.41454303264618E+0000
+ 0.19268262386322E+0000 0.52452087402344E-0004 0.00000000000000E+0000
+0
+9
+
+10
+40
+0
+ 0.74410438537598E-0002 0.91400146484375E-0002 -0.25247572921216E-0008
+ 0.51537006835938E+0004 -0.83891713619232E+0000 0.14173650741577E+0000
+-0.67241775989532E+0000 0.95367431640625E-0004 0.00000000000000E+0000
+0
+9
+
+11
+46
+0
+ 0.65050125122070E-0002 -0.15144348144531E-0001 -0.27139321900904E-0008
+ 0.51536362304688E+0004 0.76930892467499E+0000 0.14489603042603E+0000
+ 0.44563150405884E+0000 0.28610229492187E-0005 0.00000000000000E+0000
+0
+9
+
+12
+58
+0
+ 0.33402442932129E-0002 0.59700012207031E-0002 -0.25065673980862E-0008
+ 0.51536645507813E+0004 0.15260112285614E+0000 -0.42307770252228E+0000
+ 0.64653563499451E+0000 -0.65803527832031E-0004 0.72759576141834E-0011
+0
+10
+
+13
+43
+1
+ 0.29625892639160E-0002 0.16227722167969E-0001 -0.24119799491018E-0008
+ 0.51536284179688E+0004 -0.50298094749451E+0000 0.39808130264282E+0000
+-0.72440588474274E+0000 0.13160705566406E-0003 0.36379788070917E-0011
+0
+9
+
+14
+41
+0
+ 0.30126571655273E-0002 0.14331817626953E-0001 -0.24338078219444E-0008
+ 0.51536835937500E+0004 -0.50757467746735E+0000 -0.65731775760651E+0000
+-0.91119909286499E+0000 0.47683715820312E-0005 0.00000000000000E+0000
+0
+9
+
+16
+56
+0
+ 0.36144256591797E-0002 0.66089630126953E-0002 -0.24956534616649E-0008
+ 0.51535249023438E+0004 0.15749907493591E+0000 -0.24021399021149E+0000
+-0.20789635181427E+0000 0.11157989501953E-0003 0.36379788070917E-0011
+0
+9
+
+17
+53
+0
+ 0.24352073669434E-0002 0.54054260253906E-0002 -0.24665496312082E-0008
+ 0.51537167968750E+0004 0.48830509185791E+0000 0.97779166698456E+0000
+-0.54652905464172E+0000 0.82969665527344E-0004 0.00000000000000E+0000
+0
+10
+
+18
+54
+0
+ 0.77824592590332E-0002 0.40702819824219E-0002 -0.25793269742280E-0008
+ 0.51536914062500E+0004 -0.83306336402893E+0000 -0.82546520233154E+0000
+-0.22451901435852E+0000 -0.25367736816406E-0003 0.00000000000000E+0000
+0
+9
+
+19
+59
+0
+ 0.34990310668945E-0002 0.47359466552734E-0002 -0.24847395252436E-0008
+ 0.51536401367188E+0004 0.50699055194855E+0000 -0.31308043003082E+0000
+-0.67960107326508E+0000 0.55313110351562E-0004 0.36379788070917E-0011
+0
+9
+
+20
+51
+0
+ 0.29749870300293E-0002 0.39196014404297E-0002 -0.25829649530351E-0008
+ 0.51535625000000E+0004 -0.84997045993805E+0000 0.40420997142792E+0000
+-0.21727800369263E+0000 -0.21934509277344E-0004 0.00000000000000E+0000
+0
+9
+
+21
+45
+0
+ 0.11873722076416E-0001 -0.53596496582031E-0003 -0.25902409106493E-0008
+ 0.51536088867188E+0004 0.83119165897369E+0000 -0.92206990718842E+0000
+ 0.20166552066803E+0000 0.67710876464844E-0004 0.00000000000000E+0000
+0
+9
+
+22
+47
+2
+ 0.49099922180176E-0002 0.32978057861328E-0002 -0.25829649530351E-0008
+ 0.51536313476563E+0004 -0.83064651489258E+0000 -0.52365982532501E+0000
+-0.70154070854187E+0000 0.16117095947266E-0003 0.36379788070917E-0011
+0
+9
+
+23
+60
+0
+ 0.46696662902832E-0002 0.86803436279297E-0002 -0.24920154828578E-0008
+ 0.51536513671875E+0004 -0.51314103603363E+0000 0.82464516162872E+0000
+-0.98566889762878E+0000 0.14591217041016E-0003 0.00000000000000E+0000
+0
+9
+
+24
+24
+2
+ 0.86789131164551E-0002 0.47664642333984E-0002 -0.25283952709287E-0008
+ 0.51553798828125E+0004 0.83673608303070E+0000 -0.24268770217896E+0000
+-0.81150889396667E-0001 0.67710876464844E-0004 0.36379788070917E-0011
+0
+9
+
+25
+25
+3
+ 0.12979030609131E-0001 0.47626495361328E-0002 -0.25283952709287E-0008
+ 0.51536772460938E+0004 -0.20960330963135E+0000 -0.41412544250488E+0000
+ 0.38186419010162E+0000 0.38528442382813E-0003 -0.10913936421275E-0010
+0
+9
+
+26
+26
+1
+ 0.17683982849121E-0001 0.15617370605469E-0001 -0.24192559067160E-0008
+ 0.51535742187500E+0004 -0.50293219089508E+0000 0.26316368579865E+0000
+ 0.76646673679352E+0000 -0.89645385742187E-0004 -0.18189894035459E-0010
+0
+9
+
+27
+27
+0
+ 0.20479202270508E-0001 0.62236785888672E-0002 -0.25138433557004E-0008
+ 0.51537319335938E+0004 -0.19914591312408E+0000 -0.59132480621338E+0000
+-0.75718998908997E-0001 0.87738037109375E-0004 0.36379788070917E-0011
+0
+9
+
+28
+44
+0
+ 0.12090206146240E-0001 0.60005187988281E-0002 -0.24992914404720E-0008
+ 0.51536308593750E+0004 0.16045653820038E+0000 -0.70813608169556E+0000
+-0.45677959918976E+0000 0.95367431640625E-0005 0.00000000000000E+0000
+0
+9
+
+29
+29
+0
+ 0.10016918182373E-0001 0.14514923095703E-0001 -0.24301698431373E-0008
+ 0.51535732421875E+0004 -0.51417589187622E+0000 -0.25179719924927E+0000
+-0.65265858173370E+0000 0.30899047851563E-0003 0.18189894035459E-0010
+0
+9
+
+30
+30
+1
+ 0.95634460449219E-0002 0.10528564453125E-0002 -0.25611370801926E-0008
+ 0.51535927734375E+0004 0.14193272590637E+0000 0.42258286476135E+0000
+-0.36251735687256E+0000 0.21934509277344E-0004 0.00000000000000E+0000
+0
+9
+
+31
+52
+0
+ 0.62179565429688E-0002 0.58002471923828E-0002 -0.25211193133146E-0008
+ 0.51535732421875E+0004 -0.18096995353699E+0000 -0.44851577281952E+0000
+ 0.45056200027466E+0000 -0.57220458984375E-0005 0.72759576141834E-0011
+0
+10
diff --git a/dev/tests/SEM/sem387.txt b/dev/tests/SEM/sem387.txt
new file mode 100644
index 0000000..9fe28c8
--- /dev/null
+++ b/dev/tests/SEM/sem387.txt
@@ -0,0 +1,274 @@
+30 CURRENT.ALM
+ 387 589824
+
+1
+32
+0
+ 0.67005157470703E-0002 0.14945983886719E-0001 -0.24774635676295E-0008
+ 0.51536845703125E+0004 -0.57885289192200E+0000 -0.55991351604462E+0000
+-0.51991939544678E+0000 0.10395050048828E-0003 0.36379788070917E-0011
+0
+9
+
+2
+61
+0
+ 0.89001655578613E-0002 0.15640258789063E-0002 -0.25102053768933E-0008
+ 0.51537207031250E+0004 0.73873114585876E+0000 0.70046401023865E+0000
+-0.13500189781189E+0000 0.77247619628906E-0004 0.36379788070917E-0011
+0
+9
+
+3
+33
+1
+ 0.91009140014648E-0002 -0.53329467773438E-0002 -0.26011548470706E-0008
+ 0.51536552734375E+0004 0.37605512142181E+0000 0.23319959640503E+0000
+-0.34429013729095E+0000 0.47683715820312E-0005 0.72759576141834E-0011
+0
+9
+
+4
+34
+15
+ 0.78029632568359E-0002 0.13942718505859E-0002 -0.25102053768933E-0008
+ 0.51536923828125E+0004 0.74491012096405E+0000 0.78417301177979E-0001
+ 0.68036389350891E+0000 0.35762786865234E-0003 0.36379788070917E-0011
+63
+9
+
+5
+35
+0
+ 0.76518058776855E-0002 -0.92315673828125E-0003 -0.25502231437713E-0008
+ 0.51537954101563E+0004 0.46328783035278E-0001 0.36627578735352E+0000
+ 0.56515562534332E+0000 0.21934509277344E-0004 0.10913936421275E-0010
+0
+9
+
+6
+36
+0
+ 0.57239532470703E-0002 -0.29430389404297E-0002 -0.25720510166138E-0008
+ 0.51535209960938E+0004 0.39531636238098E+0000 -0.56053268909454E+0000
+ 0.99751710891724E+0000 0.42819976806641E-0003 -0.25465851649642E-0010
+0
+9
+
+7
+37
+0
+ 0.10375976562500E-0001 -0.24414062500000E-0002 -0.25647750589997E-0008
+ 0.51537163085938E+0004 0.38709414005280E+0000 -0.55436062812805E+0000
+ 0.95126903057098E+0000 0.43392181396484E-0003 -0.10913936421275E-0010
+0
+9
+
+8
+38
+1
+ 0.97775459289551E-0002 0.10831832885742E-0001 -0.24265318643302E-0008
+ 0.51536987304688E+0004 -0.24569666385651E+0000 0.87499558925629E+0000
+-0.97619712352753E+0000 -0.94413757324219E-0004 0.00000000000000E+0000
+0
+9
+
+9
+39
+0
+ 0.18588066101074E-0001 0.69103240966797E-0002 -0.24701876100153E-0008
+ 0.51536733398438E+0004 -0.27207076549530E+0000 0.41513419151306E+0000
+ 0.90744209289551E+0000 0.55313110351562E-0004 0.00000000000000E+0000
+0
+9
+
+10
+40
+0
+ 0.74930191040039E-0002 0.90885162353516E-0002 -0.25320332497358E-0008
+ 0.51537128906250E+0004 -0.91911435127258E+0000 0.14390671253204E+0000
+ 0.39323925971985E-0001 0.96321105957031E-0004 0.00000000000000E+0000
+0
+9
+
+11
+46
+0
+ 0.65479278564453E-0002 -0.15251159667969E-0001 -0.26666384655982E-0008
+ 0.51536381835938E+0004 0.68873393535614E+0000 0.14896690845490E+0000
+-0.84154081344604E+0000 0.47683715820312E-0005 0.00000000000000E+0000
+0
+9
+
+12
+58
+0
+ 0.33946037292480E-0002 0.60405731201172E-0002 -0.24738255888224E-0008
+ 0.51536508789063E+0004 0.72428584098816E-0001 -0.42014324665070E+0000
+-0.64073598384857E+0000 -0.57220458984375E-0004 0.36379788070917E-0011
+0
+10
+
+13
+43
+0
+ 0.29964447021484E-0002 0.16273498535156E-0001 -0.24701876100153E-0008
+ 0.51536196289063E+0004 -0.58314192295074E+0000 0.39619541168213E+0000
+-0.53554773330688E-0002 0.13732910156250E-0003 0.36379788070917E-0011
+0
+9
+
+14
+41
+0
+ 0.30097961425781E-0002 0.14375686645508E-0001 -0.24883775040507E-0008
+ 0.51536879882813E+0004 -0.58776342868805E+0000 -0.65452909469604E+0000
+-0.19914317131042E+0000 0.57220458984375E-0005 0.00000000000000E+0000
+0
+9
+
+16
+56
+1
+ 0.36859512329102E-0002 0.66795349121094E-0002 -0.24629116524011E-0008
+ 0.51535332031250E+0004 0.77336430549622E-0001 -0.24046373367310E+0000
+ 0.51286470890045E+0000 0.11634826660156E-0003 0.36379788070917E-0011
+0
+9
+
+17
+53
+0
+ 0.24299621582031E-0002 0.54321289062500E-0002 -0.24774635676295E-0008
+ 0.51535224609375E+0004 0.40809631347656E+0000 0.98931324481964E+0000
+ 0.15934145450592E+0000 0.81062316894531E-0004 0.00000000000000E+0000
+0
+10
+
+18
+54
+0
+ 0.78048706054688E-0002 0.40206909179688E-0002 -0.25866029318422E-0008
+ 0.51536972656250E+0004 -0.91333699226379E+0000 -0.82545483112335E+0000
+ 0.48985850811005E+0000 -0.25367736816406E-0003 0.00000000000000E+0000
+0
+9
+
+19
+59
+0
+ 0.35223960876465E-0002 0.47531127929688E-0002 -0.24883775040507E-0008
+ 0.51536376953125E+0004 0.42676329612732E+0000 -0.31013143062592E+0000
+ 0.34148454666138E-0001 0.61988830566406E-0004 0.36379788070917E-0011
+0
+9
+
+20
+51
+0
+ 0.30341148376465E-0002 0.38623809814453E-0002 -0.25829649530351E-0008
+ 0.51535551757813E+0004 -0.93024647235870E+0000 0.40390944480896E+0000
+ 0.50251674652100E+0000 -0.21934509277344E-0004 0.00000000000000E+0000
+0
+9
+
+21
+45
+0
+ 0.11942386627197E-0001 -0.65231323242188E-0003 -0.25247572921216E-0008
+ 0.51536088867188E+0004 0.75085806846619E+0000 -0.92150270938873E+0000
+ 0.91898667812347E+0000 0.69618225097656E-0004 0.00000000000000E+0000
+0
+9
+
+22
+47
+0
+ 0.48656463623047E-0002 0.32482147216797E-0002 -0.25938788894564E-0008
+ 0.51536337890625E+0004 -0.91093218326569E+0000 -0.52439773082733E+0000
+ 0.15912652015686E-0001 0.16403198242188E-0003 0.36379788070917E-0011
+0
+9
+
+23
+60
+0
+ 0.46639442443848E-0002 0.87261199951172E-0002 -0.25502231437713E-0008
+ 0.51536450195313E+0004 -0.59341776371002E+0000 0.82483780384064E+0000
+-0.26960051059723E+0000 0.14781951904297E-0003 0.00000000000000E+0000
+0
+9
+
+24
+24
+2
+ 0.85926055908203E-0002 0.46482086181641E-0002 -0.24738255888224E-0008
+ 0.51553891601563E+0004 0.75649809837341E+0000 -0.24107766151428E+0000
+ 0.56826078891754E+0000 0.72479248046875E-0004 0.36379788070917E-0011
+0
+9
+
+25
+25
+4
+ 0.12529373168945E-0001 0.47912597656250E-0002 -0.24883775040507E-0008
+ 0.51552163085938E+0004 -0.28990578651428E+0000 -0.41991484165192E+0000
+-0.93816947937012E+0000 0.36907196044922E-0003 -0.14551915228367E-0010
+0
+9
+
+26
+26
+1
+ 0.17739295959473E-0001 0.15663146972656E-0001 -0.24774635676295E-0008
+ 0.51535761718750E+0004 -0.58310794830322E+0000 0.26371097564697E+0000
+-0.51505935192108E+0000 -0.15258789062500E-0004 -0.18189894035459E-0010
+0
+9
+
+27
+27
+0
+ 0.20522594451904E-0001 0.62522888183594E-0002 -0.24665496312082E-0008
+ 0.51537304687500E+0004 -0.27942478656769E+0000 -0.58884072303772E+0000
+ 0.63492798805237E+0000 0.90599060058594E-0004 0.36379788070917E-0011
+0
+9
+
+28
+44
+0
+ 0.12191772460937E-0001 0.60710906982422E-0002 -0.24701876100153E-0008
+ 0.51536303710938E+0004 0.80287694931030E-0001 -0.70595049858093E+0000
+ 0.25772619247437E+0000 0.85830688476562E-0005 0.00000000000000E+0000
+0
+9
+
+29
+29
+0
+ 0.10082244873047E-0001 0.14558792114258E-0001 -0.24883775040507E-0008
+ 0.51535747070313E+0004 -0.59436583518982E+0000 -0.24781954288483E+0000
+ 0.62420010566711E-0001 0.33092498779297E-0003 0.14551915228367E-0010
+0
+9
+
+30
+30
+0
+ 0.95524787902832E-0002 0.11234283447266E-0002 -0.25320332497358E-0008
+ 0.51535854492188E+0004 0.61676383018494E-0001 0.42214357852936E+0000
+ 0.35616266727448E+0000 0.23841857910156E-0004 0.00000000000000E+0000
+0
+9
+
+31
+52
+0
+ 0.62699317932129E-0002 0.58269500732422E-0002 -0.24811015464365E-0008
+ 0.51535903320313E+0004 -0.26124894618988E+0000 -0.44464492797852E+0000
+-0.83456635475159E+0000 0.19073486328125E-0005 0.36379788070917E-0011
+0
+10
+
+
diff --git a/dev/tests/SEM/xSEM.cpp b/dev/tests/SEM/xSEM.cpp
new file mode 100644
index 0000000..839edc3
--- /dev/null
+++ b/dev/tests/SEM/xSEM.cpp
@@ -0,0 +1,49 @@
+/*********************************************************************
+* $Id$
+*
+* Test program from November 2006. Written to test the SEMAlmRecord.cpp
+* module..
+*
+// *********************************************************************/
+
+#include "SEMData.hpp"
+#include "SEMStream.hpp"
+#include "SEMHeader.hpp"
+#include "SEMBase.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main( int argc, char * argv[] )
+{
+ // Read an existing SEM almanac file and write it back out.
+ try
+ {
+ SEMStream In("sem387.txt");
+ SEMStream Out("sem.dbg", ios::out);
+ SEMHeader Header;
+ SEMData Data;
+
+ In >> Header;
+ Out << Header;
+ while (In >> Data)
+ {
+ Out << Data;
+ }
+
+
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+
+ return(0);
+}
diff --git a/dev/tests/SetVariables b/dev/tests/SetVariables
new file mode 100755
index 0000000..d1c2d75
--- /dev/null
+++ b/dev/tests/SetVariables
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+echo "This script will help you set up the variables to compile and run the GPSTk"
+echo "test suite."
+
+export PATH_TO_CURRENT=`pwd`
+
+echo "Please enter the directory which holds the CppUnit Libraries"
+echo "e.g. /home/user/lib"
+
+read CppLib
+echo ""
+
+export CPPUNIT_LIB=$CppLib
+
+echo "Please enter the directory which holds the CppUnit Includes"
+echo "e.g. /home/user/include"
+
+read CppInc
+echo ""
+
+export CPPUNIT_INC=$CppInc
+
+
+
+
+
diff --git a/dev/tests/Stats/Jamfile b/dev/tests/Stats/Jamfile
new file mode 100644
index 0000000..7bb2a6c
--- /dev/null
+++ b/dev/tests/Stats/Jamfile
@@ -0,0 +1,3 @@
+SubDir TOP Stats ;
+
+TestMain Stats/xStats.tst : Stats/xStatsM.cpp Stats/xStats.cpp Stats/Stats.cpp ;
diff --git a/trunk/src/Makefile.am b/dev/tests/Stats/Stats.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Stats/Stats.cpp
diff --git a/dev/tests/Stats/Stats.hpp b/dev/tests/Stats/Stats.hpp
new file mode 120000
index 0000000..5a3e2f6
--- /dev/null
+++ b/dev/tests/Stats/Stats.hpp
@@ -0,0 +1 @@
+../../src/Stats.hpp
\ No newline at end of file
diff --git a/dev/tests/Stats/makefile b/dev/tests/Stats/makefile
new file mode 100644
index 0000000..33e8f73
--- /dev/null
+++ b/dev/tests/Stats/makefile
@@ -0,0 +1,18 @@
+CPPUNIT_PATH=/home/ehagen
+
+xStats.tst: xStatsM.o xStats.o Stats.o
+ g++ -o xStats.tst xStatsM.o xStats.o Stats.o -L${CPPUNIT_PATH}/lib -lstdc++ -lcppunit -ldl -lgpstk -fprofile-arcs -ftest-coverage
+
+Stats.o: Stats.cpp
+ g++ -c Stats.cpp -I/home/ehagen/gpstk/src -L/home/ehagen/gpstk/src -lgpstk -fprofile-arcs -ftest-coverage
+
+xStats.o: xStats.cpp xStats.hpp
+ g++ -c xStats.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+xStatsM.o: xStatsM.cpp
+ g++ -c xStatsM.cpp -I${CPPUNIT_PATH}/include -fprofile-arcs -ftest-coverage
+
+clean:
+ rm -f *.o
+ rm -f *.*.g*
+ rm -f *.g*
diff --git a/dev/tests/Stats/xStats.cpp b/dev/tests/Stats/xStats.cpp
new file mode 100644
index 0000000..8af01bf
--- /dev/null
+++ b/dev/tests/Stats/xStats.cpp
@@ -0,0 +1,454 @@
+// file: xStats.cpp
+
+#include "xStats.hpp"
+
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xStats);
+
+void xStats :: setUp (void)
+{
+}
+
+/*
+****Test to assess the quality of the Add member of the Stats
+****class which is designed to add a gpstk::Vector or an individual
+****sample to an instance of Stats
+
+**** This test partially indirectly tests Minimum, Maximum
+**** Average,Variance,StdDev which are all memebers of the
+**** Stats class
+*/
+void xStats :: addTest (void)
+{
+ gpstk::Stats<double> addTest;
+ CPPUNIT_ASSERT_NO_THROW(addTest.Add(10.,1));
+
+ addTest.Add(20.,1);
+ addTest.Add(30.,1);
+ //Create a vector of 1 member with a value of 40.0
+ gpstk::Vector<double> one(1,40.);
+ //Create a vector with one member with a value of 1
+ gpstk::Vector<double> weight(1,1);
+
+
+ CPPUNIT_ASSERT_NO_THROW(addTest.Add(one,weight));
+
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, addTest.N());
+ CPPUNIT_ASSERT_EQUAL(10., addTest.Minimum());
+ CPPUNIT_ASSERT_EQUAL(40., addTest.Maximum());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(25., addTest.Average(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(166.66667, addTest.Variance(),1E-3);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(12.9099445, addTest.StdDev(),1E-6);
+ CPPUNIT_ASSERT_EQUAL(4., addTest.Normalization());
+ CPPUNIT_ASSERT_EQUAL(true, addTest.Weighted());
+
+ gpstk::Stats<double> addTest0;
+ gpstk::Vector<double> weight0(0,1);
+ addTest0.Add(10.,0);
+ addTest0.Add(20.,0);
+ addTest0.Add(30.,0);
+ addTest0.Add(one,weight0);
+
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, addTest0.N());
+ CPPUNIT_ASSERT_EQUAL(10., addTest0.Minimum());
+ CPPUNIT_ASSERT_EQUAL(40., addTest0.Maximum());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(25., addTest0.Average(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(166.66667, addTest0.Variance(),1E-3);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(12.9099445, addTest0.StdDev(),1E-6);
+ CPPUNIT_ASSERT_EQUAL(0., addTest0.Normalization());
+ CPPUNIT_ASSERT_EQUAL(false, addTest0.Weighted());
+
+
+ gpstk::Vector<double> two(4,20.);
+ gpstk::Vector<double> weight2(1,0);
+ try
+ {
+ CPPUNIT_ASSERT_THROW(addTest.Add(two,weight2),gpstk::Exception);
+ }
+ catch(gpstk::Exception& e)
+ {
+ }
+
+}
+
+/*
+**** Test to assess the quality of the Reset member of the Stats
+**** class which is designed to reset a Stats instance to an unmodified
+**** state
+
+**** This test finishes the indirect testing of Minimum, Maximum
+**** Average,Variance and StdDev which are all memebers of the
+**** Stats class
+*/
+
+
+void xStats :: resetTest (void)
+{
+ gpstk::Stats<double> resetTest;
+ resetTest.Add(10.,1);
+ resetTest.Add(20.,1);
+ resetTest.Add(30.,1);
+ gpstk::Vector<double> one(1,40.);
+ gpstk::Vector<double> weight(1,1);
+ resetTest.Add(one,weight);
+
+ CPPUNIT_ASSERT_NO_THROW(resetTest.Reset());
+
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, resetTest.N());
+ CPPUNIT_ASSERT_EQUAL(0., resetTest.Minimum());
+ CPPUNIT_ASSERT_EQUAL(0., resetTest.Maximum());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest.Average(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest.Variance(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest.StdDev(),1E-6);
+ CPPUNIT_ASSERT_EQUAL(0., resetTest.Normalization());
+ CPPUNIT_ASSERT_EQUAL(false, resetTest.Weighted());
+ resetTest.Add(10.,1);
+ CPPUNIT_ASSERT_EQUAL(1., resetTest.Normalization());
+}
+
+/*
+**** Test to assess the quality of the Subtract member of the Stats
+**** class which, according to comments by the coder, is designed to
+**** "remove a sample from the computation of statistics"
+
+**** Note: Removed average tests from suite. Averages make little sense
+**** without a weight within the subtract method.
+*/
+void xStats :: subtractTest (void)
+{
+ gpstk::Stats<double> subTest;
+ subTest.Add(30.,1);
+ subTest.Add(40.,1);
+ subTest.Add(10.,1);
+ subTest.Add(20.,1);
+ //CPPUNIT_ASSERT_DOUBLES_EQUAL(25,subTest.Average(),1e-4);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4,subTest.N());
+ subTest.Subtract(30);
+ //CPPUNIT_ASSERT_EQUAL((40+10+20)/3.,subTest.Average());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 3,subTest.N());
+
+ gpstk::Stats<double> subTest2;
+ subTest2.Add(30.,1);
+ subTest2.Add(40.,1);
+ subTest2.Subtract(30);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,subTest2.Variance(),1e-4);
+ //CPPUNIT_ASSERT_EQUAL(40.,subTest2.Average());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 1,subTest2.N());
+ subTest2.Subtract(40);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0,subTest2.N());
+ //CPPUNIT_ASSERT_EQUAL(0.,subTest2.Average());
+}
+
+/*
+**** Test to assess the quality of the LoadTest member of the Stats
+**** class which, according to comments by the coder, is designed to
+**** "define private members directly"
+*/
+void xStats :: loadTest (void)
+{
+ gpstk::Stats<int> loadTest;
+ loadTest.Load((unsigned) 4, 0,20,1,2,true,4);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, loadTest.N());
+ CPPUNIT_ASSERT_EQUAL(0, loadTest.Minimum());
+ CPPUNIT_ASSERT_EQUAL(20, loadTest.Maximum());
+ CPPUNIT_ASSERT_EQUAL(true, loadTest.Weighted());
+ CPPUNIT_ASSERT_EQUAL(4, loadTest.Normalization());
+ //30*10/2
+ CPPUNIT_ASSERT_EQUAL(1, loadTest.Average());
+ //var*10^4/2^4
+ CPPUNIT_ASSERT_EQUAL(2, loadTest.Variance());
+
+
+}
+
+/*
+**** Test to assess the quality of the overloaded += operator of the Stats
+**** class which is designed to add data from one Stats instance onto another
+**** Stats instance with the operator +=
+*/
+void xStats :: addEqualsTest (void)
+{
+ gpstk::Stats<int> addEquals1;
+ addEquals1.Add(10,1);
+ addEquals1.Add(20,1);
+
+ gpstk::Stats<int> addEquals2;
+ addEquals2.Add(30,0);
+ addEquals2.Add(40,0);
+
+ try
+ {
+ CPPUNIT_ASSERT_THROW(addEquals1+=addEquals2,gpstk::Exception);
+ }
+ catch(gpstk::Exception& e)
+ {
+ }
+ gpstk::Stats<int> addEquals3;
+ addEquals3.Add(30,1);
+ addEquals3.Add(40,1);
+ CPPUNIT_ASSERT_NO_THROW(addEquals1+=addEquals3);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4, addEquals1.N());
+ CPPUNIT_ASSERT_EQUAL(10, addEquals1.Minimum());
+ CPPUNIT_ASSERT_EQUAL(40, addEquals1.Maximum());
+ CPPUNIT_ASSERT_EQUAL(166, addEquals1.Variance());
+ CPPUNIT_ASSERT_EQUAL(25, addEquals1.Average());
+ CPPUNIT_ASSERT_EQUAL(true,addEquals1.Weighted());
+ CPPUNIT_ASSERT_EQUAL(4,addEquals1.Normalization());
+
+ gpstk::Stats<int> addEquals4;
+ gpstk::Stats<int> addEquals5;
+
+ CPPUNIT_ASSERT_NO_THROW(addEquals4+=addEquals5);
+ addEquals5.Add(30,0);
+
+ addEquals4+=addEquals5;
+ addEquals4.Add(10,0);
+
+
+ addEquals5+=addEquals4;
+ //CPPUNIT_ASSERT_EQUAL((unsigned) 2, addEquals1.N());
+ CPPUNIT_ASSERT_EQUAL(10, addEquals5.Minimum());
+ CPPUNIT_ASSERT_EQUAL(30, addEquals5.Maximum());
+ CPPUNIT_ASSERT_EQUAL(156, addEquals5.Variance());
+ CPPUNIT_ASSERT_EQUAL((30+30+10)/3, addEquals5.Average());
+ CPPUNIT_ASSERT_EQUAL(false,addEquals5.Weighted());
+ CPPUNIT_ASSERT_EQUAL(0,addEquals5.Normalization());
+}
+
+
+/*
+**** Test to assess the quality of the Add member of the TwoSampleStats
+**** class which is designed to add a gpstk::Vector or a sample to an
+**** instance of TwoSampleStats
+
+**** This test partially indirectly tests MinX, MaxX
+**** MinY, MaxY,AverageX,AverageY,VarianceX,VarianceY,StdDevX,StdDevY
+**** which are all memeber of the TwoSampleStats class
+*/
+void xStats :: add2Test (void)
+{
+ gpstk::TwoSampleStats<double> add2Test1;
+ CPPUNIT_ASSERT_NO_THROW(add2Test1.Add(10.,20.));
+ gpstk::Vector<double> addVectx(1,20.);
+ gpstk::Vector<double> addVecty(1,30.);
+
+ CPPUNIT_ASSERT_NO_THROW(add2Test1.Add(addVectx,addVecty));
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, add2Test1.N());
+ CPPUNIT_ASSERT_EQUAL(10., add2Test1.MinimumX());
+ CPPUNIT_ASSERT_EQUAL(20., add2Test1.MaximumX());
+ CPPUNIT_ASSERT_EQUAL(20., add2Test1.MinimumY());
+ CPPUNIT_ASSERT_EQUAL(30., add2Test1.MaximumY());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(15.0, add2Test1.AverageX(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(25.0, add2Test1.AverageY(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(50.0, add2Test1.VarianceX(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(50.0, add2Test1.VarianceY(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sqrt(50.0), add2Test1.StdDevX(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sqrt(50.0), add2Test1.StdDevY(),1E-6);
+
+}
+
+/*
+**** Test to assess the quality of the Reset member of the TwoSampleStats
+**** class which is designed to return a TwoSampleStats intance to an
+**** unmodified state
+
+**** This test finishes indirectly testing the rest of MinX, MaxX
+**** MinY, MaxY,AverageX,AverageY,VarianceX,VarianceY,StdDevX,StdDevY
+**** which are all members of the TwoSampleStats class.
+*/
+void xStats :: reset2Test (void)
+{
+ gpstk::TwoSampleStats<double> resetTest1;
+ resetTest1.Add(10.,20.);
+ gpstk::Vector<double> resetx(1,20.);
+ gpstk::Vector<double> resety(1,30.);
+ resetTest1.Add(resetx,resety);
+
+ CPPUNIT_ASSERT_NO_THROW(resetTest1.Reset());
+ CPPUNIT_ASSERT_EQUAL((unsigned) 0, resetTest1.N());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.MinimumX(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.MaximumX(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.MinimumY(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.MaximumY(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.AverageX(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.AverageY(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.VarianceX(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.VarianceY(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.StdDevX(), 1e-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0., resetTest1.StdDevY(), 1e-6);
+
+}
+
+void xStats :: subtract2Test (void)
+{
+ gpstk::TwoSampleStats<double> sub2Test;
+ sub2Test.Add(30.,0.);
+ sub2Test.Add(40.,10.);
+ sub2Test.Add(10.,20.);
+ sub2Test.Add(20.,30.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(25,sub2Test.AverageX(),1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(15,sub2Test.AverageY(),1e-4);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 4,sub2Test.N());
+ sub2Test.Subtract(20,30);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL((30+40+10)/3.,sub2Test.AverageX(),1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL((0+10+20)/3.,sub2Test.AverageY(),1e-4);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 3,sub2Test.N());
+
+ sub2Test.Add(20.,30.);
+ gpstk::Vector<double> subVectorX(1,20);
+ gpstk::Vector<double> subVectorY(1,30);
+ sub2Test.Subtract(subVectorX,subVectorY);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL((30+40+10)/3.,sub2Test.AverageX(),1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL((0+10+20)/3.,sub2Test.AverageY(),1e-4);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 3,sub2Test.N());
+
+ sub2Test.Subtract(10.,20.);
+ sub2Test.Subtract(40.,10.);
+ sub2Test.Subtract(30.,0.);
+
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0,sub2Test.AverageX(),1e-4);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0,sub2Test.AverageY(),1e-4);
+}
+
+/*
+****Test to assess the quality of the Slope member of the TwoSampleStats
+****class which is designed to return the slope of the best fit line
+****Y=slope*X + intercept
+*/
+void xStats :: slopeTest (void)
+{
+ gpstk::TwoSampleStats<double> slopeTest;
+ CPPUNIT_ASSERT_NO_THROW(slopeTest.Slope());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,slopeTest.Slope(),1e-6);
+ slopeTest.Add(0.,0.);
+ slopeTest.Add(10.,10.);
+ slopeTest.Add(20.,20.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.,slopeTest.Slope(),1e-6);
+
+ gpstk::TwoSampleStats<double> slopeTest2;
+ slopeTest2.Add(0.,0.);
+ slopeTest2.Add(10.,5.);
+ slopeTest2.Add(20.,10.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(.5,slopeTest2.Slope(),1e-6);
+}
+
+/*
+****Test to assess the quality of the Intercept member of the TwoSampleStats
+****class which is designed to return the intercept with the Y axis of the best
+****fit line Y=slope*X + intercept
+*/
+void xStats :: interceptTest (void)
+{
+ gpstk::TwoSampleStats<double> interceptTest;
+ CPPUNIT_ASSERT_NO_THROW(interceptTest.Intercept());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,interceptTest.Intercept(),1e-6);
+ interceptTest.Add(0.,0.);
+ interceptTest.Add(10.,10.);
+ interceptTest.Add(20.,20.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,interceptTest.Intercept(),1e-6);
+
+ gpstk::TwoSampleStats<double> interceptTest2;
+ interceptTest2.Add(10.,10.);
+ interceptTest2.Add(20.,15.);
+ interceptTest2.Add(30.,20.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(5.,interceptTest2.Intercept(),1e-6);
+}
+
+/*
+****Test to assess the quality of the SigmaSlop member of the TwoSampleStats
+****class which is designed to return the slope of the best fit line
+****Y=slope*X + intercept
+
+****This test has not been checked throughly by hand, as I do not have the correct
+****tools at the moment.
+*/
+void xStats :: sigmaSlopeTest (void)
+{
+ gpstk::TwoSampleStats<double> sigmaSlopeTest;
+ CPPUNIT_ASSERT_NO_THROW(sigmaSlopeTest.SigmaSlope());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,sigmaSlopeTest.SigmaSlope(),1e-6);
+ sigmaSlopeTest.Add(0.,0.);
+ sigmaSlopeTest.Add(10.,10.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,sigmaSlopeTest.SigmaSlope(),1e-6);
+ sigmaSlopeTest.Add(20.,21.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(.0288675,sigmaSlopeTest.SigmaSlope(),1e-6);
+
+}
+
+/*
+****Test to assess the quality of the Correlation member of the TwoSampleStats
+****class which is designed to return the correlation between X and Y
+*/
+void xStats :: correlationTest (void)
+{
+ gpstk::TwoSampleStats<double> correlationTest;
+ CPPUNIT_ASSERT_NO_THROW(correlationTest.Correlation());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,correlationTest.Correlation(),1e-6);
+ correlationTest.Add(0.,0.);
+ correlationTest.Add(10.,10.);
+ correlationTest.Add(20.,20.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.,correlationTest.Correlation(),1e-6);
+}
+
+/*
+****Test to assess the quality of the SigmaYX member of the TwoSampleStats
+****class which is designed to return the conditional uncertainty of y given x
+*/
+void xStats :: sigmayxTest (void)
+{
+ gpstk::TwoSampleStats<double> sigmayxTest;
+ CPPUNIT_ASSERT_NO_THROW(sigmayxTest.SigmaYX());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,sigmayxTest.SigmaYX(),1e-6);
+ sigmayxTest.Add(0.,0.);
+ sigmayxTest.Add(10.,10.);
+ sigmayxTest.Add(20.,20.);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(0.,sigmayxTest.SigmaYX(),1e-6);
+}
+
+/*
+****Test to assess the quality of the += operator of the TwoSampleStats
+****class which is designed to overload the += operator to add on data to
+****TwoSampleStats instantiantions
+*/
+void xStats :: addEquals2Test (void)
+{
+ gpstk::TwoSampleStats<double> addEquals2Test1;
+ addEquals2Test1.Add(10.,20.);
+ gpstk::Vector<double> addVectx(1,20.);
+ gpstk::Vector<double> addVecty(1,30.);
+ gpstk::TwoSampleStats<double> addEquals2Test2;
+ addEquals2Test2.Add(addVectx,addVecty);
+ CPPUNIT_ASSERT_NO_THROW(addEquals2Test1+=addEquals2Test2);
+ CPPUNIT_ASSERT_EQUAL((unsigned) 2, addEquals2Test1.N());
+ CPPUNIT_ASSERT_EQUAL(10., addEquals2Test1.MinimumX());
+ CPPUNIT_ASSERT_EQUAL(20., addEquals2Test1.MaximumX());
+ CPPUNIT_ASSERT_EQUAL(20., addEquals2Test1.MinimumY());
+ CPPUNIT_ASSERT_EQUAL(30., addEquals2Test1.MaximumY());
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(15.0, addEquals2Test1.AverageX(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(25.0, addEquals2Test1.AverageY(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(50.0, addEquals2Test1.VarianceX(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(50.0, addEquals2Test1.VarianceY(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sqrt(50.0), addEquals2Test1.StdDevX(),1E-6);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(sqrt(50.0), addEquals2Test1.StdDevY(),1E-6);
+}
+
+/*
+**** Test to assess the quality of the median function for finding the median
+**** of a gpstk::Vector
+*/
+void xStats :: medianTest (void)
+{
+ /*
+ gpstk::Vector<double> medianTest(10,10.);
+ cout << gpstk::median(medianTest);
+ CPPUNIT_ASSERT_EQUAL(0.,gpstk::median(medianTest));
+ for (int i =0;i<11;i++)
+ {
+ medianTest(i) = i;
+ }
+ //CPPUNIT_ASSERT_EQUAL(5.,gpstk::median(medianTest));
+ medianTest[0] = 20;
+ CPPUNIT_ASSERT_EQUAL(5.5,gpstk::median(medianTest));
+ */
+
+}
diff --git a/dev/tests/Stats/xStats.hpp b/dev/tests/Stats/xStats.hpp
new file mode 100644
index 0000000..87fbab2
--- /dev/null
+++ b/dev/tests/Stats/xStats.hpp
@@ -0,0 +1,64 @@
+// file: xStats.hpp
+
+#ifndef XSTATS_HPP
+#define XSTATS_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "Stats.hpp"
+
+using namespace std;
+
+
+class xStats: public CPPUNIT_NS :: TestFixture
+{
+ //Test Fixture information, e.g. what tests will be run
+ CPPUNIT_TEST_SUITE (xStats);
+ CPPUNIT_TEST (addTest);
+ CPPUNIT_TEST (resetTest);
+ CPPUNIT_TEST (subtractTest);
+ CPPUNIT_TEST (loadTest);
+ CPPUNIT_TEST (addEqualsTest);
+
+ CPPUNIT_TEST (add2Test);
+ CPPUNIT_TEST (subtract2Test);
+ CPPUNIT_TEST (reset2Test);
+ CPPUNIT_TEST (slopeTest);
+ CPPUNIT_TEST (interceptTest);
+ CPPUNIT_TEST (sigmaSlopeTest);
+ CPPUNIT_TEST (correlationTest);
+ CPPUNIT_TEST (sigmayxTest);
+ CPPUNIT_TEST (addEquals2Test);
+
+ CPPUNIT_TEST (medianTest);
+
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void); //Sets up test enviornment
+
+
+ protected:
+ void addTest (void);
+ void resetTest (void);
+ void subtractTest (void);
+ void loadTest (void);
+ void addEqualsTest (void);
+
+ void add2Test (void);
+ void subtract2Test (void);
+ void reset2Test (void);
+ void slopeTest (void);
+ void interceptTest (void);
+ void sigmaSlopeTest (void);
+ void correlationTest (void);
+ void sigmayxTest (void);
+ void addEquals2Test (void);
+
+ void medianTest (void);
+ private:
+
+};
+
+#endif
+
diff --git a/dev/tests/Stats/xStatsM.cpp b/dev/tests/Stats/xStatsM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/Stats/xStatsM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/TimeConverters/Jamfile b/dev/tests/TimeConverters/Jamfile
new file mode 100644
index 0000000..c7c466f
--- /dev/null
+++ b/dev/tests/TimeConverters/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP TimeConverters ;
+TestMain TimeConverters/xTimeConverters.tst : TimeConverters/xTimeConvertersM.cpp TimeConverters/xTimeConverters.cpp TimeConverters/TimeConverters.cpp ;
diff --git a/dev/tests/TimeConverters/TimeConverters.cpp b/dev/tests/TimeConverters/TimeConverters.cpp
new file mode 120000
index 0000000..c89ad77
--- /dev/null
+++ b/dev/tests/TimeConverters/TimeConverters.cpp
@@ -0,0 +1 @@
+../../src/TimeConverters.cpp
\ No newline at end of file
diff --git a/dev/tests/TimeConverters/TimeConverters.hpp b/dev/tests/TimeConverters/TimeConverters.hpp
new file mode 120000
index 0000000..059a601
--- /dev/null
+++ b/dev/tests/TimeConverters/TimeConverters.hpp
@@ -0,0 +1 @@
+../../src/TimeConverters.hpp
\ No newline at end of file
diff --git a/dev/tests/TimeConverters/xTimeConverters.cpp b/dev/tests/TimeConverters/xTimeConverters.cpp
new file mode 100644
index 0000000..1573d04
--- /dev/null
+++ b/dev/tests/TimeConverters/xTimeConverters.cpp
@@ -0,0 +1,89 @@
+#include "xTimeConverters.hpp"
+#include <iostream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xTimeConverters);
+
+using namespace gpstk;
+
+void xTimeConverters :: setUp (void)
+{
+}
+
+//I am testing these conversions against the U.S. Naval Observatory's Julian Date
+//Converter found at http://aa.usno.navy.mil/data/docs/JulianDate.html
+
+void xTimeConverters :: convertTest (void)
+{
+ int year;
+ int month;
+ int day;
+
+ gpstk::convertJDtoCalendar(2453971,year,month,day);
+ CPPUNIT_ASSERT_EQUAL(2006,year);
+ CPPUNIT_ASSERT_EQUAL(8,month);
+ CPPUNIT_ASSERT_EQUAL(23,day);
+ gpstk::convertJDtoCalendar(2299159,year,month,day);
+ CPPUNIT_ASSERT_EQUAL(1582,year);
+ CPPUNIT_ASSERT_EQUAL(10,month);
+ CPPUNIT_ASSERT_EQUAL(3,day);
+ gpstk::convertJDtoCalendar(2342032,year,month,day);
+ CPPUNIT_ASSERT_EQUAL(1700,year);
+ CPPUNIT_ASSERT_EQUAL(3,month);
+ CPPUNIT_ASSERT_EQUAL(1,day);
+ gpstk::convertJDtoCalendar(2377095,year,month,day);
+ CPPUNIT_ASSERT_EQUAL(1796,year);
+ CPPUNIT_ASSERT_EQUAL(2,month);
+ CPPUNIT_ASSERT_EQUAL(29,day);
+ gpstk::convertJDtoCalendar(1721118,year,month,day);
+ CPPUNIT_ASSERT_EQUAL(-1,year);
+ CPPUNIT_ASSERT_EQUAL(3,month);
+ CPPUNIT_ASSERT_EQUAL(1,day);
+
+ long JD;
+ year = 2006;
+ month = 8;
+ day = 23;
+ JD = gpstk::convertCalendarToJD(year,month,day);
+ CPPUNIT_ASSERT_EQUAL((long int)2453971,JD);
+ year = 1582;
+ month = 10;
+ day = 3;
+ JD = gpstk::convertCalendarToJD(year,month,day);
+
+ CPPUNIT_ASSERT_EQUAL((long int)2299159,JD);
+ year = 1700;
+ month = 3;
+ day = 1;
+ JD = gpstk::convertCalendarToJD(year,month,day);
+
+ CPPUNIT_ASSERT_EQUAL((long int)2342032,JD);
+ year = 0;
+ month = 3;
+ day = 1;
+ JD = gpstk::convertCalendarToJD(year,month,day);
+
+ CPPUNIT_ASSERT_EQUAL((long int)1721118,JD);
+ year = -5;
+ month = 3;
+ day = 1;
+ JD = gpstk::convertCalendarToJD(year,month,day);
+ CPPUNIT_ASSERT_EQUAL((long int)1719657,JD);
+
+ int hour;
+ int minute;
+ double second;
+ gpstk::convertSODtoTime(-.01,hour,minute,second);
+ CPPUNIT_ASSERT_EQUAL(23,hour);
+ CPPUNIT_ASSERT_EQUAL(59,minute);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(59.99,second,1e-6);
+ gpstk::convertSODtoTime(24*60*60+1.11,hour,minute,second);
+ CPPUNIT_ASSERT_EQUAL(0,hour);
+ CPPUNIT_ASSERT_EQUAL(0,minute);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(1.11,second,1e-6);
+
+ hour = 1;
+ minute = 10;
+ second = 30.5;
+ double SOD = gpstk::convertTimeToSOD(hour,minute,second);
+ CPPUNIT_ASSERT_DOUBLES_EQUAL(60*60+600+30.5,SOD,1e-6);
+}
diff --git a/dev/tests/TimeConverters/xTimeConverters.hpp b/dev/tests/TimeConverters/xTimeConverters.hpp
new file mode 100644
index 0000000..f31d07a
--- /dev/null
+++ b/dev/tests/TimeConverters/xTimeConverters.hpp
@@ -0,0 +1,26 @@
+#ifndef XTIMECONVERTERS_HPP
+#define XTIMECONVERTERS_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "TimeConverters.hpp"
+
+using namespace std;
+
+class xTimeConverters: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xTimeConverters);
+ CPPUNIT_TEST (convertTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void convertTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/TimeConverters/xTimeConvertersM.cpp b/dev/tests/TimeConverters/xTimeConvertersM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/TimeConverters/xTimeConvertersM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/TotalTest.pl b/dev/tests/TotalTest.pl
new file mode 100755
index 0000000..cdf3708
--- /dev/null
+++ b/dev/tests/TotalTest.pl
@@ -0,0 +1,72 @@
+#!/usr/bin/perl
+#This script is the fully automated tool to test all of the tests within the test suite.
+
+use strict;
+use warnings;
+
+
+my $dirn = $ENV{PATH_TO_CURRENT};
+
+print "\n\n\n\n\n\n\nPLEASE WAIT THIS MAY TAKE SOME TIME\n\n\n\n\n\n\n\n";
+
+system("rm $dirn/TestResults.log"); #Results of the tests
+system("rm $dirn/CovResults.log"); #Gcov results
+open (DATA,">>CovResults.log"); #Open file to which the output will go
+chdir "$dirn";
+system("jam clean");
+print ("Jamming!\n\n");
+
+system("jam");
+dirz("$dirn","Nothing"); #Start Subroutine
+chdir "$dirn";
+system("rm GcovStuff");
+close(DATA); #Close the output file
+
+
+sub dirz {
+ my($dir, $oldFname) = @_;
+ chdir $dir;
+ opendir D, $dir or die "Unable to open $dir: $!"; #Open the directory or throw exception
+
+ foreach my $fname (readdir D) { #Loop over available files/directories
+ next if "$fname" =~ /^\./; #As long as the file is not a . or .. file
+ next if "$dir/$fname" =~ /Checks/;
+ next if "$dir/$fname" =~ /Logs/;
+ next if "$dir/$fname" =~ /Examples/;
+ dirz("$dir/$fname",$fname) if -d "$dir/$fname"; #Recursion to find the files in sub directories
+ opendir D, "$dir/$fname" if -d "$dir/$fname"; #Reopen the old directory from before recursion
+ if ($fname =~ /x(.*)\.tst$/) {
+ print "Executing $fname\n\n";
+ system "echo $fname >>$dirn/TestResults.log 2>&1" ;
+ system "echo >>$dirn/TestResults.log 2>&1";
+ system("./$fname >>$dirn/TestResults.log 2>&1");
+ system "echo >>$dirn/TestResults.log 2>&1";
+ gcov($dir , $oldFname);
+ }
+
+ }
+ closedir D; #Close the directory
+}
+
+#Subroutine to gather gcov results.
+sub gcov {
+ my($dirn2, $filename) = @_;
+ opendir D, $dirn2;
+ foreach my $fname (readdir D) {
+ next if "$fname" =~ /^\./;
+ next unless $fname =~ /^(x?.*$filename.*)\.gcda$/;
+ system("gcov $1.gcda >$dirn/GcovStuff");
+ print ("gcov $1.gcda >$dirn/GcovStuff\n\n");
+ open FILE, "<$dirn/GcovStuff";
+ while(defined(my $linez = <FILE>)) {
+ if ($linez =~ /$filename\/[^x].*\.[ch]pp\b/) {
+ print DATA "$filename\n";
+ print DATA "\t$linez";
+ $linez = <FILE>;
+ print DATA "\t$linez";
+ $linez = <FILE>;
+ print DATA "\t$linez";
+ }
+ }
+ }
+}
diff --git a/dev/tests/UnixTime/Jamfile b/dev/tests/UnixTime/Jamfile
new file mode 100644
index 0000000..1fa4c7d
--- /dev/null
+++ b/dev/tests/UnixTime/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP UnixTime ;
+TestMain UnixTime/xUnixTime.tst : UnixTime/xUnixTimeM.cpp UnixTime/xUnixTime.cpp UnixTime/UnixTime.cpp ;
diff --git a/dev/tests/UnixTime/Logs/printfOutput b/dev/tests/UnixTime/Logs/printfOutput
new file mode 100644
index 0000000..c32d967
--- /dev/null
+++ b/dev/tests/UnixTime/Logs/printfOutput
@@ -0,0 +1,2 @@
+1350000 0
+0 0
diff --git a/dev/tests/UnixTime/UnixTime.cpp b/dev/tests/UnixTime/UnixTime.cpp
new file mode 120000
index 0000000..bd07a3d
--- /dev/null
+++ b/dev/tests/UnixTime/UnixTime.cpp
@@ -0,0 +1 @@
+../../src/UnixTime.cpp
\ No newline at end of file
diff --git a/dev/tests/UnixTime/UnixTime.hpp b/dev/tests/UnixTime/UnixTime.hpp
new file mode 120000
index 0000000..a1287ee
--- /dev/null
+++ b/dev/tests/UnixTime/UnixTime.hpp
@@ -0,0 +1 @@
+../../src/UnixTime.hpp
\ No newline at end of file
diff --git a/dev/tests/UnixTime/xUnixTime.cpp b/dev/tests/UnixTime/xUnixTime.cpp
new file mode 100644
index 0000000..a96c84e
--- /dev/null
+++ b/dev/tests/UnixTime/xUnixTime.cpp
@@ -0,0 +1,64 @@
+#include "xUnixTime.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xUnixTime);
+
+using namespace gpstk;
+
+void xUnixTime :: setUp (void)
+{
+}
+
+void xUnixTime :: setFromInfoTest (void)
+{
+ gpstk::UnixTime setFromInfo1;
+ gpstk::UnixTime setFromInfo2;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('U',"1350000"));
+ Id.insert(make_pair('u',"0"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('U');
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+}
+
+void xUnixTime :: operatorTest (void)
+{
+
+ gpstk::UnixTime Compare(1350000, 100);
+ gpstk::UnixTime LessThanSec(1340000, 100);
+ gpstk::UnixTime LessThanMicroSec(1350000,0);
+
+ gpstk::UnixTime CompareCopy(Compare);
+
+ gpstk::UnixTime CompareCopy2;
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanSec);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanSec < Compare);
+ CPPUNIT_ASSERT(LessThanMicroSec < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanSec));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanSec);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanSec <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanSec);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ gpstk::CommonTime Rollover(1,1,.9999999999999);
+ gpstk::UnixTime Temp;
+ Temp.convertFromCommonTime(Rollover);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+}
+
diff --git a/dev/tests/UnixTime/xUnixTime.hpp b/dev/tests/UnixTime/xUnixTime.hpp
new file mode 100644
index 0000000..6e47780
--- /dev/null
+++ b/dev/tests/UnixTime/xUnixTime.hpp
@@ -0,0 +1,28 @@
+#ifndef XUNIXTIME_HPP
+#define XUNIXTIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "UnixTime.hpp"
+
+using namespace std;
+
+class xUnixTime: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xUnixTime);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/UnixTime/xUnixTimeM.cpp b/dev/tests/UnixTime/xUnixTimeM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/UnixTime/xUnixTimeM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/YDSTime/Jamfile b/dev/tests/YDSTime/Jamfile
new file mode 100644
index 0000000..09f368e
--- /dev/null
+++ b/dev/tests/YDSTime/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP YDSTime ;
+TestMain YDSTime/xYDSTime.tst : YDSTime/xYDSTimeM.cpp YDSTime/xYDSTime.cpp YDSTime/YDSTime.cpp ;
diff --git a/dev/tests/YDSTime/Logs/printfOutput b/dev/tests/YDSTime/Logs/printfOutput
new file mode 100644
index 0000000..433f850
--- /dev/null
+++ b/dev/tests/YDSTime/Logs/printfOutput
@@ -0,0 +1,4 @@
+2006/001 0.000000
+2006/001 0.000000
+1106/001 0.000000
+2006/001 0.000000
diff --git a/dev/tests/YDSTime/YDSTime.cpp b/dev/tests/YDSTime/YDSTime.cpp
new file mode 120000
index 0000000..e0d627b
--- /dev/null
+++ b/dev/tests/YDSTime/YDSTime.cpp
@@ -0,0 +1 @@
+../../src/YDSTime.cpp
\ No newline at end of file
diff --git a/dev/tests/YDSTime/YDSTime.hpp b/dev/tests/YDSTime/YDSTime.hpp
new file mode 120000
index 0000000..124cba0
--- /dev/null
+++ b/dev/tests/YDSTime/YDSTime.hpp
@@ -0,0 +1 @@
+../../src/YDSTime.hpp
\ No newline at end of file
diff --git a/dev/tests/YDSTime/xYDSTime.cpp b/dev/tests/YDSTime/xYDSTime.cpp
new file mode 100644
index 0000000..fdda2e4
--- /dev/null
+++ b/dev/tests/YDSTime/xYDSTime.cpp
@@ -0,0 +1,82 @@
+#include "xYDSTime.hpp"
+#include <iostream>
+#include <fstream>
+
+CPPUNIT_TEST_SUITE_REGISTRATION (xYDSTime);
+
+using namespace gpstk;
+
+void xYDSTime :: setUp (void)
+{
+}
+
+void xYDSTime :: setFromInfoTest (void)
+{
+ gpstk::YDSTime setFromInfo1;
+ gpstk::YDSTime setFromInfo2;
+ gpstk::YDSTime setFromInfo3;
+ gpstk::YDSTime setFromInfo4;
+ gpstk::YDSTime setFromInfo5;
+
+ gpstk::TimeTag::IdToValue Id;
+ Id.insert(make_pair('Y',"2006"));
+ Id.insert(make_pair('j',"1"));
+ Id.insert(make_pair('s',"0"));
+ CPPUNIT_ASSERT(setFromInfo1.setFromInfo(Id));
+ Id.erase('Y');
+ Id.insert(make_pair('y',"06"));
+ CPPUNIT_ASSERT(setFromInfo2.setFromInfo(Id));
+ Id.erase('y');
+ Id.insert(make_pair('y',"006"));
+ CPPUNIT_ASSERT(setFromInfo3.setFromInfo(Id));
+ Id.erase('y');
+ Id.insert(make_pair('y',"2006"));
+ CPPUNIT_ASSERT(setFromInfo4.setFromInfo(Id));
+ Id.erase('y');
+ CPPUNIT_ASSERT(setFromInfo5.setFromInfo(Id));
+ ofstream out("Logs/printfOutput");
+
+ out << setFromInfo1 << endl;
+ out << setFromInfo2 << endl;
+ out << setFromInfo3 << endl;
+ out << setFromInfo4 << endl;
+}
+
+void xYDSTime :: operatorTest (void)
+{
+
+ gpstk::YDSTime Compare(2006,2,1);
+ gpstk::YDSTime LessThanYear(2005,2,1);
+ gpstk::YDSTime LessThanDOY(2006,1,1);
+ gpstk::YDSTime LessThanSOD(2006,2,0);
+
+ gpstk::YDSTime CompareCopy(Compare);
+
+ gpstk::YDSTime CompareCopy2;
+ //Assignment
+ CompareCopy2 = CompareCopy;
+ //Equality Assertion
+ CPPUNIT_ASSERT_EQUAL(Compare,CompareCopy);
+ //Non-equality Assertion
+ CPPUNIT_ASSERT(Compare != LessThanYear);
+ //Less than assertions
+ CPPUNIT_ASSERT(LessThanYear < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanYear));
+ CPPUNIT_ASSERT(LessThanDOY < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanDOY));
+ CPPUNIT_ASSERT(LessThanSOD < Compare);
+ CPPUNIT_ASSERT(!(Compare < LessThanSOD));
+ //Greater than assertions
+ CPPUNIT_ASSERT(Compare > LessThanYear);
+ CPPUNIT_ASSERT(Compare > LessThanDOY);
+ CPPUNIT_ASSERT(Compare > LessThanSOD);
+ //Less than equals assertion
+ CPPUNIT_ASSERT(LessThanYear <= Compare);
+ CPPUNIT_ASSERT(CompareCopy <= Compare);
+ //Greater than equals assertion
+ CPPUNIT_ASSERT(Compare >= LessThanYear);
+ CPPUNIT_ASSERT(Compare >= CompareCopy);
+
+ CPPUNIT_ASSERT(Compare.isValid());
+}
+
diff --git a/dev/tests/YDSTime/xYDSTime.hpp b/dev/tests/YDSTime/xYDSTime.hpp
new file mode 100644
index 0000000..d057e05
--- /dev/null
+++ b/dev/tests/YDSTime/xYDSTime.hpp
@@ -0,0 +1,28 @@
+#ifndef XYDSTIME_HPP
+#define XYDSTIME_HPP
+
+#include <cppunit/TestFixture.h>
+#include <cppunit/extensions/HelperMacros.h>
+#include "YDSTime.hpp"
+
+using namespace std;
+
+class xYDSTime: public CPPUNIT_NS :: TestFixture
+{
+ CPPUNIT_TEST_SUITE (xYDSTime);
+ CPPUNIT_TEST (setFromInfoTest);
+ CPPUNIT_TEST (operatorTest);
+ CPPUNIT_TEST_SUITE_END ();
+
+ public:
+ void setUp (void);
+
+ protected:
+ void operatorTest (void);
+ void setFromInfoTest (void);
+
+ private:
+
+};
+
+#endif
diff --git a/dev/tests/YDSTime/xYDSTimeM.cpp b/dev/tests/YDSTime/xYDSTimeM.cpp
new file mode 100644
index 0000000..99b49bc
--- /dev/null
+++ b/dev/tests/YDSTime/xYDSTimeM.cpp
@@ -0,0 +1,30 @@
+// CppUnit-Tutorial
+// file: ftest.cc
+#include <cppunit/CompilerOutputter.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestResult.h>
+#include <cppunit/TestResultCollector.h>
+#include <cppunit/TestRunner.h>
+
+int main (int argc, char* argv[])
+{
+
+ // informs test-listener about testresults
+ CPPUNIT_NS :: TestResult testresult;
+
+ // register listener for collecting the test-results
+ CPPUNIT_NS :: TestResultCollector collectedresults;
+ testresult.addListener (&collectedresults);
+
+ // insert test-suite at test-runner by registry
+ CPPUNIT_NS :: TestRunner testrunner;
+ testrunner.addTest (CPPUNIT_NS :: TestFactoryRegistry :: getRegistry ().makeTest ());
+ testrunner.run (testresult);
+
+ // output results in compiler-format
+ CPPUNIT_NS :: CompilerOutputter compileroutputter (&collectedresults, std::cerr);
+ compileroutputter.write ();
+
+ // return 0 if tests were successful
+ return collectedresults.wasSuccessful () ? 0 : 1;
+}
diff --git a/dev/tests/Yuma/Jamfile b/dev/tests/Yuma/Jamfile
new file mode 100644
index 0000000..b27493b
--- /dev/null
+++ b/dev/tests/Yuma/Jamfile
@@ -0,0 +1,2 @@
+SubDir TOP Yuma ;
+TestMain Yuma/xYuma.tst : Yuma/xYuma.cpp Yuma/YumaBase.cpp Yuma/YumaData.cpp Yuma/YumaStream.cpp Yuma/StringUtils.cpp ;
\ No newline at end of file
diff --git a/trunk/src/Makefile.am b/dev/tests/Yuma/StringUtils.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Yuma/StringUtils.cpp
diff --git a/dev/tests/Yuma/StringUtils.hpp b/dev/tests/Yuma/StringUtils.hpp
new file mode 100644
index 0000000..e372824
--- /dev/null
+++ b/dev/tests/Yuma/StringUtils.hpp
@@ -0,0 +1,2603 @@
+#pragma ident "$Id$"
+
+
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+/**
+ * @file StringUtils.hpp
+ * StringUtils namespace and GPSTK string utility functions
+ */
+
+#ifndef GPSTK_STRINGUTILS_HPP
+#define GPSTK_STRINGUTILS_HPP
+
+//lgpl-license START
+//lgpl-license END
+
+//dod-release-statement START
+//dod-release-statement END
+
+#include <string>
+#include <sstream>
+#include <iomanip>
+#include <iostream>
+#include <list>
+
+/// @todo Get rid of the stdio.h dependency if possible.
+#include <cstdio>
+
+#include <regex.h>
+#include <cctype>
+
+#include <limits>
+
+#include "Exception.hpp"
+
+namespace gpstk
+{
+ /**
+ * Stuff to make the C++ string class a little easier to use. All the
+ * functionality here is inlined since they are farily small
+ * functions.
+ *
+ * All functions here will throw gpstk::StringUtils::StringException
+ * on an error. Any std::exception is converted to a
+ * gpstk::StringUtils::StringException so
+ * that's the only exception a user of this class needs to catch.
+ *
+ * For any function that modifies a string, make sure there is a
+ * non-const (std::string&) version and a const (const std::string&)
+ * version. The convention for writing the functions is the non-const
+ * version fully implements the function and the const version calls
+ * the non-const version.
+ *
+ * @sa stringutiltest.cpp for some examples.
+ */
+ namespace StringUtils
+ {
+ /** @defgroup stringutilsgroup Text String Manipulation Tools */
+ //@{
+
+ /// This is thrown instread of a std::exception when a
+ /// gpstk::StringUtils function fails.
+ /// @ingroup exceptiongroup
+ NEW_EXCEPTION_CLASS(StringException, Exception);
+
+ /// Class for configuring the appearance of hexDumpData() output
+ class HexDumpDataConfig
+ {
+ public:
+ HexDumpDataConfig()
+ : showIndex(true), hexIndex(true), upperHex(false),
+ idxDigits(4), indexWS(1), groupBy(1), groupWS(1),
+ group2By(8), group2WS(2), bytesPerLine(16), showText(true),
+ separator(0), textWS(4)
+ {}
+ HexDumpDataConfig(bool ashowIndex, bool ahexIndex, bool aupperHex,
+ unsigned aidxDigits, unsigned aindexWS,
+ unsigned agroupBy, unsigned agroupWS,
+ unsigned agroup2By, unsigned agroup2WS,
+ unsigned abytesPerLine, bool ashowText,
+ char aseparator, unsigned atextWS)
+ : showIndex(ashowIndex), hexIndex(ahexIndex),
+ upperHex(aupperHex), idxDigits(aidxDigits),
+ indexWS(aindexWS), groupBy(agroupBy), groupWS(agroupWS),
+ group2By(agroup2By), group2WS(agroup2WS),
+ bytesPerLine(abytesPerLine), showText(ashowText),
+ separator(aseparator), textWS(atextWS)
+ {}
+ bool showIndex; ///< display index into string on each line.
+ bool hexIndex; ///< if true, use hex index numbers (else decimal).
+ bool upperHex; ///< if true, use upper-case hex digits.
+ unsigned idxDigits; ///< number of positions to use for index.
+ unsigned indexWS; ///< number of whitespace charaters between index and data.
+ unsigned groupBy; ///< number of bytes of data to show between spaces.
+ unsigned groupWS; ///< number of whitespace charaters between groups of hex data.
+ unsigned group2By; ///< number of groups to show per 2nd layer group (0=none, must be multiple of groupBy).
+ unsigned group2WS; ///< number of whitespace charaters between 2nd layer groups.
+ unsigned bytesPerLine; ///< number of bytes to display on a line of output (must be evenly divisible by both groupBy and group2By).
+ bool showText; ///< if true, show text of message (unprintable characters become '.'.
+ char separator; ///< character to offset text with (0 = none).
+ unsigned textWS; ///< number of whitespace characters between hex and text.
+ };
+
+ /**
+ * Perform a formatted hex-dump of the (potentially) binary
+ * data to the given stream.
+ * @param s stream to dump data to.
+ * @param data data to hex-dump.
+ * @param indent indents the string by that many spaces.
+ * @param cfg formatting configuration.
+ */
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ unsigned indent = 0,
+ HexDumpDataConfig cfg = HexDumpDataConfig());
+
+ /**
+ * Perform a formatted hex-dump of the (potentially) binary
+ * data to the given stream.
+ * @param s stream to dump data to.
+ * @param data data to hex-dump.
+ * @param tag string to put at the beginning of each line of output.
+ * @param cfg formatting configuration.
+ */
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ const std::string& tag,
+ HexDumpDataConfig cfg = HexDumpDataConfig());
+
+ /**
+ * Remove a string from the beginning of another string.
+ * Occurrences of the string \a aString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline
+ std::string& stripLeading(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+ /**
+ * Remove a string from the beginning of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, aString, num); return t; }
+
+ /**
+ * Remove a string from the beginning of another string.
+ * Occurrences of the string \a pString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the beginning of another string const version.
+ * Occurrences of the string \a pString appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the beginning of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the beginning of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t, std::string(1,aCharacter), num); return t; }
+
+ /**
+ * Strip blanks from the beginning of a string.
+ * Occurrences of the space character appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripLeading(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripLeading(s,std::string(1,' '),num); }
+
+ /**
+ * Strip blanks from the beginning of a string const version.
+ * Occurrences of the space character appearing
+ * at the beginning of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripLeading(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripLeading(t,std::string(1,' '),num); return t; }
+
+ /**
+ * Remove a string from the end of another string.
+ * Occurrences of the string \a aString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+ /**
+ * Remove a string from the end of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, aString, num); return t;}
+
+ /**
+ * Remove a string from the end of another string.
+ * Occurrences of the string \a pString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the end of another string const version.
+ * Occurrences of the string \a pString appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the end of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the end of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(1,aCharacter), num); return t; }
+
+ /**
+ * Strip blanks from the end of a string.
+ * Occurrences of the space character appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& stripTrailing(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return stripTrailing(s, std::string(1,' '), num); }
+
+ /**
+ * Strip blanks from the end of a string const version.
+ * Occurrences of the space character appearing
+ * at the end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string stripTrailing(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); stripTrailing(t, std::string(1,' '), num); return t;}
+
+ /**
+ * Remove a string from the beginning and end of another string.
+ * Occurrences of the string \a aString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException);
+
+
+ /**
+ * Remove a string from the beginning and end of another string const version.
+ * Occurrences of the string \a aString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const std::string& aString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, aString, num); return t; }
+
+
+ /**
+ * Remove a string from the beginning and end of another string.
+ * Occurrences of the string \a pString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(pString), num); }
+
+ /**
+ * Remove a string from the beginning and end of another string cosnt version.
+ * Occurrences of the string \a pString appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param pString string to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const char* pString,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(pString), num); return t; }
+
+ /**
+ * Strip character(s) from the beginning and end of a string.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(1,aCharacter), num); }
+
+ /**
+ * Strip character(s) from the beginning and end of a string const version.
+ * Occurrences of the character \a aCharacter appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param aCharacter character to remove.
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ const char aCharacter,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(1,aCharacter), num); return t;}
+
+ /**
+ * Strip blanks from the beginning and end of a string.
+ * Occurrences of the space character appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& strip(std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { return strip(s, std::string(1, ' '), num); }
+
+ /**
+ * Strip blanks from the beginning and end of a string const version.
+ * Occurrences of the space character appearing
+ * at the beginning and end of the string \a s are removed.
+ * @param s string to be stripped (modified).
+ * @param num maximum number of occurrences to remove.
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string strip(const std::string& s,
+ std::string::size_type num = std::string::npos)
+ throw(StringException)
+ { std::string t(s); strip(t, std::string(1, ' '), num); return t;}
+
+ /**
+ * Converts all of the receiver's characters that are in the
+ * first specified string to the corresponding character in
+ * the second specified string.
+ * @param aString string to perform translation on.
+ * @param inputChars characters in \a aString to translate from.
+ * @param outputChars characters to translate to.
+ * @param pad pad character in the event inputChars and
+ * outputChars are not equal length. The pad character will
+ * become the translated character.
+ */
+ inline std::string translate(const std::string& aString,
+ const std::string& inputChars,
+ const std::string& outputChars,
+ const char pad = ' ');
+
+ /**
+ * Changes occurrences of a specified pattern to a specified
+ * replacement string. You can specify the number of changes
+ * to perform. The default is to change all occurrences of
+ * the pattern. You can also specify the position in the
+ * receiver at which to begin.
+ * @param aString string to perform translation on.
+ * @param inputString The pattern string as a reference to an
+ * object of type string. The library searches for the
+ * pattern string within the receiver's data.
+ * @param outputString The replacement string as a reference
+ * to an object of type string. It replaces the occurrences
+ * of the pattern string in the receiver's data.
+ * @param startPos The position to start the search at within
+ * the receiver's data. The default is 0.
+ * @param numChanges the number of patterns to search for and
+ * change. The default is to change all occurrences of the
+ * pattern.
+ */
+ inline std::string change(const std::string& aString,
+ const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos = 0,
+ unsigned numChanges = std::numeric_limits<unsigned>::max());
+
+ /**
+ * Changes occurrences of a specified pattern to a specified
+ * replacement string. You can specify the number of changes
+ * to perform. The default is to change all occurrences of
+ * the pattern. You can also specify the position in the
+ * receiver at which to begin.
+ * @param aString string to perform translation on.
+ * @param inputString The pattern string as a reference to an
+ * object of type string. The library searches for the
+ * pattern string within the receiver's data.
+ * @param outputString The replacement string as a reference
+ * to an object of type string. It replaces the occurrences
+ * of the pattern string in the receiver's data.
+ * @param startPos The position to start the search at within
+ * the receiver's data. The default is 0.
+ * @param numChanges the number of patterns to search for and
+ * change. The default is to change all occurrences of the
+ * pattern.
+ */
+ inline std::string& change(std::string& aString,
+ const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos = 0,
+ unsigned numChanges = std::numeric_limits<unsigned>::max());
+
+ /**
+ * Right-justifies the receiver in a string of the specified
+ * length. If the receiver's data is shorter than the
+ * requested length (\a length), it is padded on the left with
+ * the pad character (\a pad). The default pad
+ * character is a blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string& rightJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Right-justifies the receiver in a string of the specified
+ * length (const version). If the receiver's data is shorter than the
+ * requested length (\a length), it is padded on the left with
+ * the pad character (\a pad). The default pad
+ * character is a blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string rightJustify(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return rightJustify(t, length, pad); }
+
+ /**
+ * Left-justifies the receiver in a string of the specified
+ * length. If the new length (\a length) is larger than the
+ * current length, the string is extended by the pad
+ * character (\a pad). The default pad character is a
+ * blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string& leftJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Left-justifies the receiver in a string of the specified
+ * length (const version). If the new length (\a length) is larger
+ * than the current length, the string is extended by the pad
+ * character (\a pad). The default pad character is a
+ * blank.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s. */
+ inline std::string leftJustify(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return leftJustify(t, length, pad); }
+
+ /**
+ * Change the length of a string by adding to the beginning and end.
+ * The string \a s is modified to the specified
+ * length. If the string is shorter than
+ * \a length, then the string is truncated with the
+ * left-most \a length characters remaining.
+ * Otherwise, characters are added to the beginning and end of the
+ * string until the string is the specified length, where the
+ * number of characters added to the beginning and the end
+ * does not differ by more than one so the original string
+ * is centered.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string& center(std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException);
+
+ /**
+ * Change the length of a string by adding to the beginning and end
+ * (const version).
+ * The string \a s is modified to the specified
+ * length. If the string is shorter than
+ * \a length, then the string is truncated with the
+ * left-most \a length characters remaining.
+ * Otherwise, characters are added to the beginning and end of the
+ * string until the string is the specified length, where the
+ * number of characters added to the beginning and the end
+ * does not differ by more than one so the original string
+ * is centered.
+ * @param s string to be modified.
+ * @param length new desired length of string.
+ * @param pad character to pad string with (blank by default).
+ * @throws StringException if there's a std::exception thrown.
+ * @return a reference to \a s.
+ */
+ inline std::string center(const std::string& s,
+ const std::string::size_type length,
+ const char pad = ' ')
+ throw(StringException)
+ { std::string t(s); return center(t, length, pad); }
+
+ /**
+ * Convert a string to a double precision floating point number.
+ * @param s string containing a number.
+ * @return double representation of string.
+ */
+ inline double asDouble(const std::string& s)
+ { return strtod(s.c_str(), 0); }
+
+ /**
+ * Convert a string to an integer.
+ * @param s string containing a number.
+ * @return long integer representation of string.
+ */
+ inline long asInt(const std::string& s)
+ { return strtol(s.c_str(), 0, 10); }
+
+ /**
+ * Convert a string to an unsigned integer.
+ * @param s string containing a number.
+ * @return unsigned long integer representation of string.
+ */
+ inline unsigned long asUnsigned(const std::string& s)
+ { return strtoul(s.c_str(), 0, 10); }
+
+ /**
+ * Convert a string to a single precision floating point number.
+ * @param s string containing a number.
+ * @return single representation of string.
+ */
+ inline float asFloat(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a string to a big precision floating point number.
+ * @param s string containing a number.
+ * @return long double representation of string.
+ */
+ inline long double asLongDouble(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a value in a string to a type specified by the template
+ * class. The template class type must have stream operators
+ * defined.
+ * @param x object to turn into the templatized type.
+ * @return the template object of \a x.
+ */
+ template <class X>
+ inline X asData(const std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a long double to a string in fixed notation.
+ * @param x long double.
+ * @param precision the number of decimal places you want displayed.
+ * @return string representation of \a x.
+ */
+ inline std::string asString(const long double x,
+ const std::string::size_type precision = 21);
+
+ /**
+ * Convert a double to a string in fixed notation.
+ * @param x double.
+ * @param precision the number of decimal places you want displayed.
+ * @return string representation of \a x.
+ */
+ inline std::string asString(const double x,
+ const std::string::size_type precision = 17);
+
+ /**
+ * Convert any old object to a string.
+ * The class must have stream operators defined.
+ * @param x object to turn into a string.
+ * @return string representation of \a x.
+ */
+ template <class X>
+ inline std::string asString(const X x);
+
+ /**
+ * Convert a decimal string to a hexadecimal string.
+ * Modify the string such that the decimal integer is now
+ * represented as hexadecimal. Only the first decimal encountered is
+ * changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return reference to modified \a s.
+ */
+ inline std::string& d2x(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a decimal string to a hexadecimal string.
+ * Given a string containing a decimal integer, convert the
+ * integer from base 10 to base 16 and return the result. No
+ * prefix is added. Only the first decimal encountered is
+ * changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return string containing a hexadecimal number.
+ */
+ inline std::string d2x(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return d2x(t); }
+
+ /**
+ * Convert a hexadecimal string to a decimal string.
+ * Modify the string such that the hexadecimal number is now
+ * represented as decimal. Only the first hex number encountered
+ * is changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return reference to modified \a s.
+ */
+ inline std::string& x2d(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a hexadecimal string to a decimal string.
+ * Given a string containing a hexadecimal number, convert the
+ * integer from base 16 to base 10 and return the result.
+ * Only the first hex number encountered
+ * is changed; the rest of the string is unmodified.
+ * @param s string containing an integer.
+ * @return string containing a hexadecimal number.
+ */
+ inline std::string x2d(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return x2d(t); }
+
+ /**
+ * Convert a character string to a hexadecimal string.
+ * Modify the string such that the character string is now
+ * represented as series of hexadecimal digits.
+ * @param s string to convert.
+ * @return reference to modified \a s.
+ */
+ inline std::string& c2x(std::string& s)
+ throw(StringException);
+
+ /**
+ * Convert a character string to a hexadecimal string.
+ * @param s string containing an integer.
+ * @return string containing a sequence of hexadecimal numbers.
+ */
+ inline std::string c2x(const std::string& s)
+ throw(StringException)
+ { std::string t(s); return c2x(t); }
+
+ /**
+ * Convert a hexadecimal string to an int.
+ * Only the first hex number encountered is converted.
+ * @param s string containing a hex integer.
+ * @return a long holding the value of \a s.
+ */
+ inline unsigned int x2int(const std::string& s)
+ throw(StringException);
+
+
+ /**
+ * Convert an int to a string.
+ * @param i the integer to convert
+ * @return a string with the hex equivalent of i
+ */
+ inline std::string int2x(const unsigned int& i)
+ throw(StringException);
+
+ /**
+ * Replace all instances of \a oldString with \a newString in \a s.
+ * @param s the string whose contents will be modified.
+ * @param oldString the string to search for in \a s.
+ * @param newString the string to replace \a oldString in \a s.
+ * @return a reference to the modified string.
+ */
+ inline std::string& replaceAll(std::string& s,
+ const std::string& oldString,
+ const std::string& newString )
+ throw(StringException);
+
+ /**
+ * isDigitString is exactly like the C function isDigit
+ * except it checks all the characters of string \a s to see if
+ * they are all digits.
+ * @param s the string to check the digits in.
+ * @return true if \a s is all digits, false otherwise.
+ */
+ inline bool isDigitString(const std::string& s);
+
+ /**
+ * isDecimalString is like isDigitString() except it allows a
+ * single period ('.') character in the string.
+ * @param s the string to check.
+ * @return true if \a s is a valid fixed-point number.
+ */
+ inline bool isDecimalString(const std::string& s);
+
+ /**
+ * isAlphaString is exactly like the C function isAlpha
+ * except it checks all the characters of string \a s to see if
+ * they are all alphabet characters.
+ * @param s the string to check the characters in.
+ * @return true if \a s is all digits, false otherwise.
+ */
+ inline bool isAlphaString(const std::string& s);
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param aPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return string representing the first match of \a aPattern in
+ * \a s. Returns a null string if no match is found.
+ */
+ inline std::string matches(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException);
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param aPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return t if a match is found, f if not.
+ */
+ inline bool isLike(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException)
+ { return matches(s, aPattern, zeroOrMore, oneOrMore, anyChar) !=
+ std::string(); }
+
+
+ /**
+ * Perform pattern matching on strings.
+ * Looks for a pattern in a string. Wildcards are allowed.
+ * Uses POSIX regular expressions.
+ * @param s string to search.
+ * @param pPattern pattern to search for. This is a POSIX
+ * regular expression.
+ * @param zeroOrMore character representing wildcards
+ * matching strings of zero or more characters (default '*').
+ * @param oneOrMore character representing plus sign
+ * matching strings of one or more characters (default '+').
+ * @param anyChar character representing wildcards matching a
+ * single arbitrary character (default '.').
+ * @return t if a match is found, f if not.
+ */
+ inline bool isLike(const std::string& s,
+ const char* pPattern,
+ const char zeroOrMore = '*',
+ const char oneOrMore = '+',
+ const char anyChar = '.' )
+ throw(StringException)
+ { return matches(s, std::string(pPattern), zeroOrMore, oneOrMore, anyChar) !=
+ std::string(); }
+
+
+ /**
+ * Work-horse method for printf. Substitutes patterns
+ * matching \a pat with \a rep. Use only one pattern/token
+ * at a time! This used to be DayTime::iprint().
+ * @param fmt format to use for this time.
+ * @param pat regular expression pattern to match.
+ * @param rep sprintf token replacement. First character is
+ * token character used in fmt, remainder is sprintf token to
+ * use. For example, with fmt="%15S", pat="%[ 0-]?[[:digit:]]*S",
+ * and rep="Sd", the fmt will be translated to "%15d" before
+ * using it in a sprintf call like printf("%15d"), \a to.
+ * @param to the value to stuff into the string.
+ * @return \a fmt with \a pat replaced by \a to. If there is no
+ * match, \a fmt is returned unchanged.
+ */
+ template <class T>
+ std::string formattedPrint(const std::string& fmt,
+ const std::string& pat,
+ const std::string& rep,
+ T to)
+ throw(StringException);
+
+ /**
+ * Get a substring of a string.
+ * Try to avoid using this, use the stl string's substr
+ * method instead (and ::leftJustify if needed).
+ */
+ inline std::string subString(const std::string& s,
+ const std::string::size_type startPos = 0,
+ const std::string::size_type length = std::string::npos,
+ const char pad = ' ' )
+ throw(StringException);
+
+ /**
+ * Change all upper-case letters in a string to lower-case.
+ * \a s is modified as a result.
+ * @param s string to change to lower case.
+ * @return a copy of the original string, all in lower-case.
+ */
+ inline std::string& lowerCase(std::string& s);
+
+ /**
+ * Change all upper-case letters in a string to lower-case.
+ * Does not modify the original string.
+ * @param s a string containing upper-case characters.
+ * @return a copy of the original string, all in lower-case.
+ */
+ inline std::string lowerCase(const std::string& s)
+ { std::string t(s); return lowerCase(t); }
+
+ /**
+ * Change all lower-case letters in a string to upper-case.
+ * \a s is modified as a result.
+ * @param s string to change to upper case.
+ * @return a copy of the original string, all in upper-case.
+ */
+ inline std::string& upperCase(std::string& s);
+
+ /**
+ * Change all lower-case letters in a string to upper-case.
+ * Does not modify the original string.
+ * @param s a string containing lower-case characters.
+ * @return a copy of the original string, all in upper-case.
+ */
+ inline std::string upperCase(const std::string& s)
+ { std::string t(s); return upperCase(t); }
+
+ /**
+ * Make a string from a void pointer.
+ * This function should not be used. Instead, use the string
+ * constructor as follows:
+ * \code string((char*)p, size); \endcode
+ * @param p pointer to memory.
+ * @param size length of the data to turn into a string.
+ * @return string object containing the contents of \a p.
+ */
+ inline std::string memToString(const void* p,
+ const std::string::size_type size);
+
+ /**
+ * Returns the first word in string \a s without modifying the string.
+ * @param s the string to count the words from.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s;
+ */
+ inline std::string firstWord(const std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Counts the number of words in \a s and returns it.
+ * @param s the string to count the words from.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the number of words in \a s.
+ */
+ inline int numWords(const std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Returns \a numWords words starting with \a firstWord from
+ * \a s (if any).
+ * @param s a string with the word you want removed.
+ * @param firstWord the number of the first word you want from \a s.
+ * The first word is word 0.
+ * @param numWords number of words to get from \a s.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s or an empty string if there is
+ * no \a wordNum'th word.
+ */
+ inline std::string words(const std::string& s,
+ const std::string::size_type firstWord = 0,
+ const std::string::size_type numWords = std::string::npos,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Returns word number \a wordNum from \a s (if any).
+ * @param s a string with the word you want removed.
+ * @param wordNum the number of the word you want from \a s.
+ * The first word is word 0.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s or an empty string if there is
+ * no \a wordNum'th word.
+ */
+ inline std::string word(const std::string& s,
+ const std::string::size_type wordNum = 0,
+ const char delimiter = ' ')
+ throw(StringException)
+ { return words(s, wordNum, 1, delimiter); }
+
+ /**
+ * Removes the first word off string \a s and returns it.
+ * \a s is modified as a result.
+ * @param s a string with the word you want removed.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return the first word from \a s
+ */
+ inline std::string stripFirstWord(std::string& s,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Removes indicated words from the string \a s.
+ * \a s is modified as a result.
+ * @param s a string with the words you want removed.
+ * @param first the first word to be removed (the first word is 0).
+ * @param wordsToReplace the number of words you want removed.
+ * @param delimiter the character that marks the start and
+ * end of a word.
+ * @return a reference to string \a s with the words removed.
+ */
+ inline std::string& removeWords(std::string& s,
+ const std::string::size_type first = 0,
+ const std::string::size_type wordsToReplace = std::string::npos,
+ const char delimiter = ' ')
+ throw(StringException);
+
+ /**
+ * Convert a double to a scientific notation number.
+ * @param d the double to convert
+ * @param length length (in characters) of output, including exponent
+ * @param expLen length (in characters) of the exponent, with sign
+ * @param showSign if true, reserves 1 character for +/- sign
+ * @param checkSwitch if true, keeps the exponential sanity check for
+ * exponentials above three characters in length. If false, it removes
+ * that check.
+ */
+ inline std::string doub2sci(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool showSign = true,
+ const bool checkSwitch = true);
+
+ /**
+ * Convert scientific notation to FORTRAN notation.
+ * As an example, the string "1.5636E5" becomes " .15636D6".
+ * Note that the first character of the string will be '-' if
+ * the number is negative or ' ' if the first character is positive.
+ * @param aStr string with number to convert
+ * @param length length (in characters) of number, including exponent.
+ * @param expLen length (in characters of exponent, not including sign.
+ * @param startPos start position of number in string
+ * @param checkSwitch will keep the method running as orignially programed
+ * when set to true. If false, the method will always resize exponentials,
+ * produce an exponential with an E instead of a D, and always have a leading
+ * zero. For example -> 0.87654E-0004 or -0.1234E00005.
+ * @throws Exception if the string is not a number in
+ * scientific notation
+ */
+ inline std::string& sci2for(std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos = 0,
+ const std::string::size_type expLen = 3,
+ const bool checkSwitch = true)
+ throw(StringException);
+
+ /**
+ * Convert double precision floating point to a string
+ * containing the number in FORTRAN notation.
+ * As an example, the number 156360 becomes ".15636D6".
+ * @param d number to convert.
+ * @param length length (in characters) of number, including exponent.
+ * @param expLen length (in characters of exponent, including sign.
+ * @param checkSwitch if true, keeps the exponential sanity check for
+ * exponentials above three characters in length. If false, it removes
+ * that check.
+ * @return a string containing \a d in FORTRAN notation.
+ */
+ inline std::string doub2for(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool checkSwitch = true)
+ throw(StringException);
+
+ /**
+ * Convert FORTRAN representation of a double precision
+ * floating point in a string to a number.
+ * As an example, the number ".15636D6" becomes 156360.
+ * @param aStr string containing FORTRAN representation of number.
+ * @param length length (in characters) of number, including exponent.
+ * @param startPos beginning of number in string.
+ * @return value of the number.
+ */
+ inline double for2doub(const std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos = 0);
+
+ /**
+ * Change a string into printable characters. Control
+ * characters (0-26) are changed to ^@, ^A, etc. Other
+ * non-printable characters are changed to hex sequences
+ * enclosed in <>.
+ * @param aStr the string to make printable.
+ */
+ inline std::string printable(const std::string& aStr)
+ throw(StringException);
+
+ /**
+ * Nicely expands the input string into several lines, non-const
+ * version.
+ * @param aStr the string to be modified.
+ * @param lineDelim a string to put between every line.
+ * @param indent an indentataion string used on all but the first line
+ * @param firstIndent is the indentation used on the first line.
+ * @param len the maximum length of string to put on a line.
+ * @param wordDelim the character that separates each word.
+ * @return the string nicely formatted.
+ */
+ inline std::string& prettyPrint(std::string& aStr,
+ const std::string& lineDelim = "\n",
+ const std::string& indent = "",
+ const std::string& firstIndent = " ",
+ const std::string::size_type len = 80,
+ const char wordDelim = ' ')
+ throw(StringException);
+
+ /**
+ * Const version of prettyPrint, which nicely expands the
+ * input string into several lines.
+ * @param aStr the string to be modified.
+ * @param lineDelim a string to put between every line.
+ * @param indent an indentataion string used on all but the first line
+ * @param firstIndent is the indentation used on the first line.
+ * @param len the maximum length of string to put on a line.
+ * @param wordDelim the character that separates each word.
+ * @return the string nicely formatted.
+ */
+ inline std::string prettyPrint(const std::string& aStr,
+ const std::string& lineDelim = "\n",
+ const std::string& indent = "",
+ const std::string& firstIndent = " ",
+ const std::string::size_type len = 80,
+ const char wordDelim = ' ')
+ throw(StringException)
+ {
+ std::string temp(aStr);
+ prettyPrint(temp, lineDelim, indent, firstIndent, len, wordDelim);
+ return temp;
+ }
+
+ } // namespace StringUtils
+
+} // namespace gpstk
+
+// ################################################
+// Implementations of inline functions follow
+// ################################################
+
+namespace gpstk
+{
+
+ namespace StringUtils
+ {
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ unsigned indent, HexDumpDataConfig cfg)
+ {
+ std::string instr(indent, ' ');
+ hexDumpData(s, data, instr, cfg);
+ }
+
+ inline void hexDumpData(std::ostream& s, const std::string& data,
+ const std::string& tag, HexDumpDataConfig cfg)
+ {
+ std::string ascii="";
+ unsigned indent = tag.length();
+ int col = 0;
+ int datasize=data.size();
+ std::string groupws(cfg.groupWS, ' ');
+ std::string group2ws(cfg.group2WS, ' ');
+ std::string indexws(cfg.indexWS, ' ');
+ std::string textws(cfg.textWS, ' ');
+ unsigned linesize;
+
+ if (cfg.groupBy && ((cfg.bytesPerLine % cfg.groupBy) != 0))
+ {
+ s << "hexDumpData: cfg.bytesPerLine % cfg.groupBy != 0"
+ << std::endl;
+ return;
+ }
+ if (cfg.group2By && ((cfg.bytesPerLine % cfg.group2By) != 0))
+ {
+ s << "hexDumpData: cfg.bytesPerLine % cfg.group2By != 0"
+ << std::endl;
+ return;
+ }
+ if (cfg.groupBy && ((cfg.group2By % cfg.groupBy) != 0))
+ {
+ s << "hexDumpData: cfg.group2By % cfg.groupBy != 0"
+ << std::endl;
+ return;
+ }
+
+ // line format:
+ // <tag><index>:<indexws><group1byte1>...<group1byte[groupBy]><groupws>...<group[group2By]byte1>...<group[group2By]byte[groupBy]><group2ws>....<byte[bytesPerLine]><textws><separator><text><separator>\n
+ linesize = indent;
+ if (cfg.showIndex)
+ linesize += cfg.idxDigits + 1 + cfg.indexWS;
+ linesize += cfg.bytesPerLine * 2;
+ unsigned w2 = 0;
+ unsigned w1 = 0;
+ if (cfg.group2By)
+ w2 = (cfg.bytesPerLine / cfg.group2By) - 1;
+ if (cfg.groupBy)
+ w1 = (cfg.bytesPerLine / cfg.groupBy) - w2 - 1;
+ if (cfg.groupBy > 0)
+ linesize += cfg.groupWS * w1;
+ if (cfg.group2By > 0)
+ linesize += cfg.group2WS * w2;
+ /*
+ linesize doesn't include text stuff
+ if (cfg.showText)
+ linesize += cfg.textWS + cfg.bytesPerLine;
+ if (cfg.separator)
+ linesize += 2;
+ */
+
+ for (int i=0; i<datasize; i++)
+ {
+ if (i%cfg.bytesPerLine==0)
+ {
+ s << tag;
+ col = indent;
+ if (cfg.showIndex)
+ {
+ if (cfg.hexIndex)
+ {
+ s << std::hex;
+ if (cfg.upperHex)
+ s << std::uppercase;
+ else
+ s << std::nouppercase;
+ }
+ else
+ s << std::dec;
+ s << std::setfill('0');
+ s << std::setw(cfg.idxDigits) << i << ":" << indexws;
+ s << std::dec << std::nouppercase;
+ }
+ col += cfg.idxDigits + 1 + cfg.indexWS;
+ }
+ unsigned char c=data[i];
+ if (isprint(c))
+ ascii += c;
+ else
+ ascii += '.';
+ if (cfg.upperHex)
+ s << std::uppercase;
+ else
+ s << std::nouppercase;
+ s << std::hex << std::setw(2) << (int)c << std::dec
+ << std::nouppercase;
+ col += 2;
+ if (((i % cfg.bytesPerLine) == (cfg.bytesPerLine-1)) ||
+ (i == (datasize-1)))
+ {
+ if (cfg.showText)
+ {
+ int extra = linesize-col;
+ std::string space(extra, ' ');
+ s << space << textws;
+ if (cfg.separator)
+ s << cfg.separator;
+ s << ascii;
+ if (cfg.separator)
+ s << cfg.separator;
+ s << std::endl;
+ }
+ // this *should* be updated at the beginning of the loop
+ //col=indent+6;
+ ascii.erase();
+ }
+ else if (cfg.group2By && ((i % cfg.group2By) == (cfg.group2By-1)))
+ {
+ s << group2ws;
+ col += cfg.group2WS;
+ }
+ else if (cfg.groupBy && ((i % cfg.groupBy) == (cfg.groupBy-1)))
+ {
+ s << groupws;
+ col += cfg.groupWS;
+ }
+ }
+ }
+
+ // Keep searching for aString at the start of s
+ // until num == 0 or aString is not found at the start of s
+ inline std::string& stripLeading(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ try
+ {
+ if (aString == "")
+ return s;
+
+ while((num > 0) &&
+ (s.find(aString,0) == 0) &&
+ (s.length() > 0))
+ {
+ s.erase(0,aString.length());
+ --num;
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // keep searching for aString at the end of s
+ // until aString isn't found there or num == 0
+ inline std::string& stripTrailing(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ try
+ {
+ std::string::size_type pos = s.length() - aString.length();
+
+ // empty string, etc.
+ if ((pos > s.length()) || (aString == ""))
+ return s;
+
+ while((num > 0) &&
+ (s.rfind(aString,pos) == pos) &&
+ (s.length() > 0))
+ {
+ s.erase(pos, std::string::npos);
+ --num;
+ pos = s.length() - aString.length();
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& strip(std::string& s,
+ const std::string& aString,
+ std::string::size_type num)
+ throw(StringException)
+ {
+ stripLeading(s, aString, num);
+ stripTrailing(s, aString, num);
+ return s;
+ }
+
+ inline std::string translate(const std::string& aString,
+ const std::string& inputChars,
+ const std::string& outputChars,
+ const char pad)
+ {
+ std::string rv = aString;
+ std::string::size_type aspos = 0;
+ std::string::size_type inpos = std::string::npos;
+ char toc = pad;
+
+ // By starting at the last position, we avoid infinite
+ // loops in case someone did something dumb, like, for
+ // example, setting inputChars=outputChars.
+ while ((aspos = rv.find_first_of(inputChars, aspos))
+ != std::string::npos)
+ {
+ // figure out which char we found;
+ inpos = inputChars.find(rv[aspos]);
+ if (outputChars.length() < inpos)
+ toc = pad;
+ else
+ toc = outputChars[inpos];
+ rv[aspos] = toc;
+
+ aspos++; // try to guarantee no infinite loops
+ }
+
+ return rv;
+ }
+
+ inline std::string change(const std::string& aString, const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos, unsigned numChanges)
+ {
+ std::string rv(aString);
+ change(rv, inputString, outputString, startPos, numChanges);
+ return rv;
+ }
+
+ inline std::string& change(std::string& aString, const std::string& inputString,
+ const std::string& outputString,
+ std::string::size_type startPos, unsigned numChanges)
+ {
+ unsigned count = 0;
+ std::string::size_type opos = startPos;
+
+ while (count < numChanges)
+ {
+ std::string::size_type pos = aString.find(inputString, opos);
+ if (pos != std::string::npos)
+ {
+ count++;
+ aString.replace(pos, inputString.length(), outputString);
+ opos = pos + outputString.length();
+ }
+ else
+ break;
+ }
+
+ return aString;
+ }
+
+ // if the string is bigger than length, truncate it from the left.
+ // otherwise, add pad characters to it's left.
+ inline std::string& rightJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ s = s.substr(s.length()-length, std::string::npos);
+ }
+ else
+ {
+ s.insert((std::string::size_type)0, length-s.length(), pad);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // if the string is bigger than length, truncate it from the right.
+ // otherwise, add pad characters to it's right.
+ inline std::string& leftJustify(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ s = s.substr(0, length);
+ }
+ else
+ {
+ s.append(length-s.length(), pad);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // leftJustify if s is bigger than length.
+ // otherwise, add pad to the left and right of s.
+ inline std::string& center(std::string& s,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(length < s.length())
+ {
+ leftJustify(s, length, pad);
+ }
+ else {
+ std::string::size_type leftOff = s.length() + (length - s.length()) / 2;
+ leftJustify(s, leftOff, pad);
+ rightJustify(s, length, pad);
+ }
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+
+ inline float asFloat(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ float f;
+ is >> f;
+ return f;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline long double asLongDouble(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ long double x;
+ is >> x;
+ return x;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ template <class X>
+ inline X asData(const std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ std::istringstream is(s);
+ X x;
+ is >> x;
+ return x;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string asString(const long double x, const std::string::size_type precision)
+ {
+ std::ostringstream ss;
+ ss << std::fixed << std::setprecision(precision) << x ;
+ return ss.str();
+ }
+
+ inline std::string asString(const double x, const std::string::size_type precision)
+ {
+ std::ostringstream ss;
+ ss << std::fixed << std::setprecision(precision) << x;
+ return ss.str();
+ }
+
+ template<class X>
+ inline std::string asString(const X x)
+ {
+ std::ostringstream ss;
+ ss << x;
+ return ss.str();
+ }
+
+ // decimal to hex...
+ inline std::string& d2x(std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ // remove the integer from s, including
+ // leading spaces and 0's
+ long l = asInt(s);
+ stripLeading(s);
+ stripLeading(s, "0");
+ stripLeading(s, asString<long>(l));
+
+ // put the int in a stringstream to convert it
+ std::ostringstream st;
+ st << std::hex << l << std::dec;
+
+ // add the new hex to s
+ s.insert(0, upperCase(st.str()) );
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ // character to hex...
+ inline std::string& c2x(std::string& s)
+ throw(StringException)
+ {
+ const char hexDigits[] = "0123456789ABCDEF";
+ try
+ {
+ std::string old(s);
+ const unsigned char *pSource = (unsigned char *)old.c_str();
+ unsigned n = old.length();
+
+ s.resize(n * 2, 0);
+
+ for (int i = 0; i < (int)n * 2;)
+ {
+ unsigned char c = *pSource++;
+ s[i++] = hexDigits[ c / 16 ];
+ s[i++] = hexDigits[ c % 16 ];
+ }
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ /// @todo Need to find a way to combine this with x2d.
+ // hex to a long.
+ inline unsigned int x2int(const std::string& s)
+ throw (StringException)
+ {
+ try
+ {
+ std::string t(s);
+ // remove the "0x" part, leading zeros and spaces from the
+ // string
+ // ex. ' 0x003' -> '3'
+ stripLeading(t);
+ stripLeading(t, "0x", 1);
+ stripLeading(t, "0");
+
+ // if it's empty, it was 0
+ if (t.empty())
+ {
+ return 0;
+ }
+
+ // make the stringstream, get the integer, and
+ // remove it from the string
+ std::istringstream strstr(t);
+ int i;
+ strstr >> std::hex >> i;
+ return i;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ /// @todo detecting 0 isn't quite right...
+ // hex to decimal
+ inline std::string& x2d(std::string& s)
+ throw(StringException)
+ {
+ try
+ {
+ // remove the "0x" part, leading zeros and spaces from the
+ // string
+ // ex. ' 0x003' -> '3'
+ stripLeading(s);
+ stripLeading(s, "0x", 1);
+ stripLeading(s, "0");
+
+ // make the stringstream, get the integer, and
+ // remove it from the string
+ std::istringstream strstr(s);
+ int i = 0;
+ strstr >> std::hex >> i;
+ stripLeading(s, asString<int>(asInt(s)), 1);
+
+ // append the decimal to the existing string
+ s.insert(0,asString<int>(i));
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string int2x(const unsigned int& i)
+ throw(StringException)
+ {
+ try
+ {
+ std::ostringstream ss;
+ ss << std::hex << i;
+ return ss.str();
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& replaceAll(std::string& s,
+ const std::string& oldString,
+ const std::string& newString)
+ throw(StringException)
+ {
+ try
+ {
+ int spot = s.find(oldString, 0);
+ while (spot != (int)std::string::npos)
+ {
+ s.replace(spot, oldString.length(), newString);
+ spot += newString.length();
+ spot = s.find(oldString, spot);
+ }
+ return s;
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline bool isDigitString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index = 0;
+ if((s[0] == '-') || (s[0] == '+'))
+ index++;
+ for( ; index < s.size(); index++)
+ if (!isdigit(s[index]))
+ return false;
+ return true;
+ }
+
+ inline bool isDecimalString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index = 0;
+ bool sawdot = false;
+ if((s[0] == '-') || (s[0] == '+'))
+ index++;
+ for( ; index < s.size(); index++)
+ {
+ if (s[index] == '.')
+ {
+ if (sawdot)
+ return false;
+ else sawdot = true;
+ }
+ else if (!isdigit(s[index]))
+ return false;
+ }
+ return true;
+ }
+
+ inline bool isAlphaString(const std::string& s)
+ {
+ if (s.size() == 0)
+ return false;
+
+ std::string::size_type index;
+ for(index = 0; index < s.size(); index++)
+ if (!isalpha(s[index]))
+ return false;
+ return true;
+ }
+
+ inline std::string matches(const std::string& s,
+ const std::string& aPattern,
+ const char zeroOrMore,
+ const char oneOrMore,
+ const char anyChar)
+ throw(StringException)
+ {
+ const std::string::size_type regErrorBufSize = 512;
+
+ std::string thisPattern(aPattern);
+ std::string thisStr(s);
+
+ // check if something other than the regex standard
+ // characters (*,+,.) is used for those variables
+ if (zeroOrMore != '*')
+ {
+ replaceAll(thisPattern, "*", "\\*");
+ replaceAll(thisPattern, std::string(1, zeroOrMore), "*");
+ }
+ if (oneOrMore != '+')
+ {
+ replaceAll(thisPattern, "+", "\\+");
+ replaceAll(thisPattern, std::string(1, oneOrMore), "+");
+ }
+ if (anyChar != '.')
+ {
+ replaceAll(thisPattern, ".", "\\.");
+ replaceAll(thisPattern, std::string(1, anyChar), ".");
+ }
+ regmatch_t matches;
+ regex_t regExp;
+ char errorMsg[regErrorBufSize];
+ int rc;
+
+ if ((rc = regcomp(®Exp, thisPattern.c_str(), REG_EXTENDED)) != 0)
+ {
+ regerror(rc, ®Exp, errorMsg, regErrorBufSize - 1);
+ regfree(®Exp);
+ StringException strerr("Regexp error: " + std::string(errorMsg));
+ GPSTK_THROW(strerr);
+ }
+ rc = regexec(®Exp, thisStr.c_str(), 1, &matches,
+ REG_NOTBOL | REG_NOTEOL);
+ if ( (rc != 0) && (rc != REG_NOMATCH) )
+ {
+ regerror(rc, ®Exp, errorMsg, regErrorBufSize - 1);
+ regfree(®Exp);
+ StringException strerr("Regexp error: " + std::string(errorMsg));
+ GPSTK_THROW(strerr);
+ }
+
+ regfree(®Exp);
+ if (rc == REG_NOMATCH)
+ return std::string();
+ else
+ return thisStr.substr(matches.rm_so, matches.rm_eo - matches.rm_so);
+ }
+
+ template <class T>
+ inline std::string formattedPrint(const std::string& fmt, const std::string& pat,
+ const std::string& rep, T to)
+ throw(StringException)
+ {
+ regex_t re;
+ regmatch_t r;
+ std::string rv = fmt;
+ int rc;
+ char buffer[513];
+
+ // if the regex doesnt compile, toast =)
+ if ((rc = regcomp(&re, pat.c_str(), REG_EXTENDED)) != 0)
+ {
+ StringException se("Bad regular expression: regcomp() rc = " +
+ asString(rc));
+ GPSTK_THROW(se);
+ }
+
+ int len = rv.length();
+ for (int i = 0; i < len; i++)
+ {
+ if ((rc = regexec(&re, rv.c_str(), 1, &r, 0)) != 0)
+ break;
+ else
+ {
+ std::string mac = rv.substr(r.rm_so, r.rm_eo - r.rm_so);
+ mac = replaceAll(mac, rep.substr(0,1), rep.substr(1));
+ sprintf(buffer, mac.c_str(), to);
+ rv = rv.substr(0, r.rm_so) + std::string(buffer) +
+ rv.substr(r.rm_eo);
+ i = r.rm_eo;
+ }
+ }
+
+ regfree(&re);
+
+ return rv;
+ }
+
+ inline std::string subString(const std::string& s,
+ const std::string::size_type startPos,
+ const std::string::size_type length,
+ const char pad)
+ throw(StringException)
+ {
+ try
+ {
+ if(startPos >= s.length())
+ {
+ return std::string(length, pad);
+ }
+ std::string temp = s.substr(startPos, length);
+ return leftJustify(temp, length, pad);
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& lowerCase(std::string& s)
+ {
+ for(std::string::size_type i = 0; i < s.length(); i++)
+ {
+ s[i] = tolower(s[i]);
+ }
+ return s;
+ }
+
+ inline std::string& upperCase(std::string& s)
+ {
+ for(std::string::size_type i = 0; i < s.length(); i++)
+ {
+ s[i] = toupper(s[i]);
+ }
+ return s;
+ }
+
+ inline std::string memToString(const void* p,
+ const std::string::size_type size)
+ {
+ unsigned char* q = (unsigned char*)p;
+ std::string s(size,'\0');
+ for (int i=0; i<(int)size; i++)
+ {
+ s[i] = (unsigned char)(*q++);
+ }
+ return s;
+ }
+
+ inline std::string firstWord(const std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ // return s if there are no delimiters
+ std::string::size_type pos = s.find_first_not_of(delimiter);
+ if (pos == std::string::npos)
+ {
+ return s;
+ }
+ // find the end delimiter (if any) and return the string
+ std::string::size_type endPos = s.find(delimiter, pos);
+ if (endPos == std::string::npos)
+ {
+ return std::string(s, pos, endPos);
+ }
+ else
+ {
+ return std::string(s, pos, endPos - pos);
+ }
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline int numWords(const std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ std::string t(s);
+ stripTrailing(t, delimiter);
+
+ int words = 0;
+ while(t.length())
+ {
+ stripLeading(t, delimiter);
+ stripLeading(t, firstWord(t, delimiter));
+ words++;
+ }
+ return words;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string words(const std::string& s,
+ const std::string::size_type firstWord,
+ const std::string::size_type numWords,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ if ((firstWord == 0) && (numWords == 1))
+ return StringUtils::firstWord(s, delimiter);
+ if (numWords == 0)
+ return "";
+ std::string::size_type wordNum = 0;
+ std::string::size_type pos = 0, startPos = 0;
+
+ std::string toReturn;
+
+ // get position of word wordNum
+ pos = s.find_first_not_of(delimiter, pos);
+ while ((pos != std::string::npos) && (pos <= s.length()))
+ {
+ if (wordNum == firstWord)
+ startPos = pos;
+ // get first delimter after word wordNum
+ pos = s.find(delimiter, pos);
+ if (((int)numWords != -1) && ((int)wordNum == (int)(firstWord + (numWords-1))))
+ break;
+ pos = s.find_first_not_of(delimiter, pos);
+ wordNum++;
+ }
+
+ if (pos == std::string::npos)
+ return s.substr(startPos);
+ return s.substr(startPos, pos-startPos);
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string stripFirstWord(std::string& s,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ stripLeading(s, delimiter);
+ std::string toReturn = firstWord(s, delimiter);
+ stripLeading(s, toReturn);
+ stripLeading(s, delimiter);
+ return toReturn;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& removeWords(std::string& s,
+ const std::string::size_type first,
+ const std::string::size_type wordsToReplace,
+ const char delimiter)
+ throw(StringException)
+ {
+ try
+ {
+ std::string temp(s);
+ std::string::size_type thisWord;
+
+ // empty out s. add the new parts of s as they are parsed
+ s.erase(0, std::string::npos);
+
+ // copy the part of the string through word 'first'
+ // by appending any delimiters then appending
+ // a word for however many words we're keeping.
+ for(thisWord = 0; thisWord < first; thisWord++)
+ {
+ s.append(temp.find_first_not_of(delimiter),delimiter);
+ stripLeading(temp, delimiter);
+ s.append(firstWord(temp));
+ stripLeading(temp, firstWord(temp));
+ }
+
+ // skip over the number of words to replace, making
+ // sure to stop when there's no more string left
+ // to skip
+ for(thisWord = 0;
+ (thisWord < wordsToReplace) &&
+ (temp.length() != 0);
+ thisWord++)
+ {
+ stripLeading(temp, delimiter);
+ stripLeading(temp, firstWord(temp));
+ }
+
+ // add on any extra words at the end
+ s.append(temp);
+
+ return s;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string doub2sci(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool showSign,
+ const bool checkSwitch)
+ {
+ std::string toReturn;
+ short exponentLength = expLen;
+
+ /* Validate the assumptions regarding the input arguments */
+ if (exponentLength < 0) exponentLength = 1;
+ if (exponentLength > 3 && checkSwitch) exponentLength = 3;
+
+ std::stringstream c;
+ c.setf(std::ios::scientific, std::ios::floatfield);
+
+ // length - 3 for special characters ('.', 'e', '+' or '-')
+ // - exponentlength (e04)
+ // - 1 for the digit before the decimal (2.)
+ // and if showSign == true,
+ // an extra -1 for '-' or ' ' if it's positive or negative
+ int expSize = 0;
+ if (showSign)
+ expSize = 1;
+ c.precision(length - 3 - exponentLength - 1 - expSize);
+
+
+ c << d;
+
+ c >> toReturn;
+
+ return toReturn;
+ }
+
+ inline std::string& sci2for(std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos,
+ const std::string::size_type expLen,
+ const bool checkSwitch)
+ throw(StringException)
+ {
+ try
+ {
+ std::string::size_type idx = aStr.find('.', startPos);
+ int expAdd = 0;
+ std::string exp;
+ long iexp;
+ //If checkSwitch is false, always redo the exponential. Otherwise,
+ //set it to false.
+ bool redoexp=!checkSwitch;
+
+ // Check for decimal place within specified boundaries
+ if ((idx == 0) || (idx >= (startPos + length - expLen - 1)))
+ {
+ StringException e("sci2for: no decimal point in string");
+ GPSTK_THROW(e);
+ }
+
+ // Here, account for the possibility that there are
+ // no numbers to the left of the decimal, but do not
+ // account for the possibility of non-scientific
+ // notation (more than one digit to the left of the
+ // decimal)
+ if (idx > startPos)
+ {
+ redoexp = true;
+ // Swap digit and decimal.
+ aStr[idx] = aStr[idx-1];
+ aStr[idx-1] = '.';
+ // Only add one to the exponent if the number is non-zero
+ if (asDouble(aStr.substr(startPos, length)) != 0.0)
+ expAdd = 1;
+ }
+
+ idx = aStr.find('e', startPos);
+ if (idx == std::string::npos)
+ {
+ idx = aStr.find('E', startPos);
+ if (idx == std::string::npos)
+ {
+ StringException e("sci2for:no 'e' or 'E' in string");
+ GPSTK_THROW(e);
+ }
+ }
+ // Change the exponent character to D normally, or E of checkSwitch is false.
+ if (checkSwitch)
+ aStr[idx] = 'D';
+ else
+ aStr[idx] = 'E';
+
+ // Change the exponent itself
+ if (redoexp)
+ {
+ exp = aStr.substr(idx + 1, std::string::npos);
+ iexp = asInt(exp);
+ iexp += expAdd;
+
+ aStr.erase(idx + 1);
+ if (iexp < 0)
+ {
+ aStr += "-";
+ iexp -= iexp*2;
+ }
+ else
+ aStr += "+";
+ aStr += rightJustify(asString(iexp),expLen,'0');
+
+ }
+
+ // if the number is positive, append a space
+ // (if it's negative, there's a leading '-'
+ if (aStr[0] == '.')
+ {
+ aStr.insert((std::string::size_type)0, 1, ' ');
+ }
+
+ //If checkSwitch is false, add on one leading zero to the string
+ if (!checkSwitch)
+ {
+ aStr.insert((std::string::size_type)1, 1, '0');
+ }
+
+
+ return aStr;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ } // end sci2for
+
+
+ inline std::string doub2for(const double& d,
+ const std::string::size_type length,
+ const std::string::size_type expLen,
+ const bool checkSwitch)
+ throw(StringException)
+ {
+ try
+ {
+ short exponentLength = expLen;
+
+ /* Validate the assumptions regarding the input arguments */
+ if (exponentLength < 0) exponentLength = 1;
+ if (exponentLength > 3 && checkSwitch) exponentLength = 3;
+
+ std::string toReturn = doub2sci(d, length, exponentLength, true, checkSwitch);
+ sci2for(toReturn, length, 0, exponentLength, checkSwitch);
+
+ return toReturn;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+
+ inline double for2doub(const std::string& aStr,
+ const std::string::size_type length,
+ const std::string::size_type startPos)
+ {
+ std::string s(aStr);
+ strip(s);
+ std::string::size_type pos;
+
+ // you can blame Rinex for these special checks
+ if (s.empty())
+ {
+ return 0;
+ }
+
+ if ( ((pos = s.find('E', startPos)) != std::string::npos) ||
+ ((pos = s.find('d', startPos)) != std::string::npos) ||
+ ((pos = s.find('D', startPos)) != std::string::npos))
+ {
+ s[pos] = 'e';
+ }
+ // just treat it like a double
+ else
+ {
+ return asDouble(aStr.substr(length, startPos));
+ }
+
+ std::stringstream st;
+ st << s;
+
+ double d;
+ st >> d;
+
+ return d;
+ }
+
+ inline std::string printable(const std::string& aStr)
+ throw(StringException)
+ {
+ try
+ {
+ std::string rv(aStr);
+
+ for (int i = 0; i < (int)rv.length(); i++)
+ {
+ char c = rv[i];
+ if (!isprint(c))
+ {
+ if (iscntrl(c))
+ {
+ rv.replace(i,1,2,'^');
+ rv.replace(i+1,1,1, 64+(c));
+ }
+ else
+ {
+ std::string mess(c2x(rv.substr(i,1)));
+ rv.replace(i,1,"<"+mess+">");
+ }
+ }
+ }
+
+ return rv;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ inline std::string& prettyPrint(std::string& aStr,
+ const std::string& lineDelim,
+ const std::string& indent,
+ const std::string& firstIndent,
+ const std::string::size_type len,
+ const char wordDelim)
+ throw(StringException)
+ {
+ try
+ {
+ // chop aStr up into words based on wordDelim
+ std::list<std::string> wordList;
+ std::string tempStr(aStr);
+ stripLeading(tempStr, wordDelim);
+ while (!tempStr.empty())
+ {
+ std::string theFirstWord = firstWord(tempStr,wordDelim);
+ wordList.push_back(theFirstWord);
+ stripLeading(tempStr, theFirstWord);
+ stripLeading(tempStr, wordDelim);
+ }
+
+ // now reassemble the words into sentences
+ std::string toReturn;
+ std::string thisLine = firstIndent, lastLine;
+ while (!wordList.empty())
+ {
+ lastLine = thisLine;
+ if (!lastLine.empty())
+ thisLine += wordDelim;
+ thisLine += wordList.front();
+
+ if (thisLine.length() > len)
+ {
+ // if the first word is longer than a line, just add it.
+ // if this is the first line, remember to add the indent.
+ if (lastLine.empty())
+ {
+ if (toReturn.empty())
+ lastLine += firstIndent;
+ lastLine = wordList.front();
+ }
+
+ toReturn += lastLine + lineDelim;
+
+ thisLine.erase();
+ lastLine.erase();
+
+ thisLine = indent;
+ }
+ else
+ wordList.erase(wordList.begin());
+ }
+ if (!thisLine.empty())
+ toReturn += (thisLine + lineDelim);
+
+ aStr = toReturn;
+ return aStr;
+ }
+ catch(StringException &e)
+ {
+ GPSTK_RETHROW(e);
+ }
+ catch(std::exception &e)
+ {
+ StringException strexc("Exception thrown: " + std::string(e.what()));
+ GPSTK_THROW(strexc);
+ }
+ }
+
+ //@}
+
+ } // namespace StringUtils
+
+} // namespace gpstk
+#endif // GPSTK_STRINGUTILS_HPP
+
+
+
diff --git a/trunk/src/Makefile.am b/dev/tests/Yuma/YumaBase.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Yuma/YumaBase.cpp
diff --git a/dev/tests/Yuma/YumaBase.hpp b/dev/tests/Yuma/YumaBase.hpp
new file mode 100644
index 0000000..87f0dbd
--- /dev/null
+++ b/dev/tests/Yuma/YumaBase.hpp
@@ -0,0 +1,77 @@
+#pragma ident "$Id$"
+
+
+
+/**
+ * @file YumaBase.hpp
+ * gpstk::YumaBase - base class for Yuma FFData.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+
+
+
+
+#ifndef YUMABASE_HPP
+#define YUMABASE_HPP
+
+#include "FFData.hpp"
+
+namespace gpstk
+{
+ /** @defgroup Yuma Yuma almanac files */
+ //@{
+
+ /**
+ * This is a base class for all Yuma-related classes.
+ */
+ class YumaBase : public FFData
+ {
+
+ public:
+
+ /// in deference to our coding standards, this is declared virtual
+ virtual ~YumaBase() {}
+
+ };
+
+ //@}
+}
+
+#endif
diff --git a/dev/tests/Yuma/YumaData.cpp b/dev/tests/Yuma/YumaData.cpp
new file mode 100644
index 0000000..5b693d1
--- /dev/null
+++ b/dev/tests/Yuma/YumaData.cpp
@@ -0,0 +1,273 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file YumaData.cpp
+ * Encapsulate Yuma almanac file data, including I/O
+ */
+
+#include "StringUtils.hpp"
+#include "icd_200_constants.hpp"
+
+#include "YumaData.hpp"
+#include "YumaStream.hpp"
+
+
+using namespace gpstk::StringUtils;
+using namespace std;
+
+namespace gpstk
+{
+ const std::string YumaData::sID = "ID: ";
+ const std::string YumaData::sHlth = "Health: ";
+ const std::string YumaData::sEcc = "Eccentricity: ";
+ const std::string YumaData::sTOA = "Time of Applicability(s): ";
+ const std::string YumaData::sOrbI = "Orbital Inclination(rad): ";
+ const std::string YumaData::sRRA = "Rate of Right Ascen(r/s): ";
+ const std::string YumaData::sSqrA = "SQRT(A) (m 1/2): ";
+ const std::string YumaData::sRtAs = "Right Ascen at Week(rad): ";
+ const std::string YumaData::sArgP = "Argument of Perigee(rad): ";
+ const std::string YumaData::sMnAn = "Mean Anom(rad): ";
+ const std::string YumaData::sAf0 = "Af0(s): ";
+ const std::string YumaData::sAf1 = "Af1(s/s): ";
+ const std::string YumaData::sweek = "week: ";
+
+ void YumaData::reallyPutRecord(FFStream& ffs) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ string line;
+
+ YumaStream& strm = dynamic_cast<YumaStream&>(ffs);
+
+ // first the epoch line to 'line'
+ line = "******** Week";
+ int epochWeek = week % 1024;
+ line += rightJustify(asString<short>(epochWeek), 5);
+ line += " almanac for PRN-";
+ line += rightJustify(asString<short>(PRN), 2, '0');
+ line += " ********";
+
+ // write the header line
+ strm << line << endl;
+ line.erase();
+
+ // Write the ID line
+ line = sID;
+ line += rightJustify(asString<short>(PRN),2,'0');
+ strm << line << endl;
+ line.erase();
+
+ // Write the Health line
+ line = sHlth;
+ line += rightJustify(asString<short>(SV_health),3,'0'); // should be hex
+ strm << line << endl;
+ line.erase();
+
+ // Write the Ecc line
+ line = sEcc;
+ line += leftJustify(asString(doub2for(ecc,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Toa line
+ line = sTOA;
+ line += leftJustify(asString((double)Toa,4),11);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Orbital Inc line
+ line = sOrbI;
+ double i_total = i_offset + 54.0 * (gpstk::PI / 180.0 );
+ if (i_total >=0) line += " ";
+ line += leftJustify(asString(i_total,10),17);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Rate of Right Ascen line
+ line = sRRA;
+ line += leftJustify(asString(doub2for(OMEGAdot,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the SqrtA line
+ line = sSqrA;
+ line += " ";
+ line += leftJustify(asString(Ahalf,6),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Right Ascen at Week line
+ line = sRtAs;
+ line += leftJustify(asString(doub2for(OMEGA0,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Argument of Perigee line
+ line = sArgP;
+ if (w>=0) line += " ";
+ line += leftJustify(asString(w,9),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write Mean Anomaly line
+ line = sMnAn;
+ line += leftJustify(asString(doub2for(M0,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the Af0 line
+ line = sAf0;
+ line += leftJustify(asString(doub2for(AF0,17,3,false)),18);
+ strm << line << endl;
+ line.erase();
+
+ // Write the AF1 line
+ line = sAf1;
+ line += leftJustify(asString(doub2for(AF1,17,3,false)),18); // should be hex
+ strm << line << endl;
+ line.erase();
+
+ // Write the week line
+ line = sweek;
+ line += rightJustify(asString<short>(epochWeek),5); // should be hex
+ strm << line << endl;
+ line.erase();
+ strm << endl;
+
+ } // end YumaData::reallyPutRecord
+
+
+ void YumaData::reallyGetRecord(FFStream& ffs)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException)
+ {
+ YumaStream& strm = dynamic_cast<YumaStream&>(ffs);
+
+ string line;
+
+ // We don't need first line as we will get all the information from the others
+ strm.formattedGetLine(line, true);
+
+ //Second Line - PRN
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sID );
+ PRN = asInt(line);
+
+ //Third Line - Satellite Health
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sHlth );
+ SV_health = asInt(line);
+
+ //Fourth Line - Eccentricity
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sEcc );
+ ecc = asDouble(line);
+
+ //Fifth Line - Time of Applicability
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sTOA );
+ double dToa = asDouble(line);
+ Toa = (long) dToa;
+
+ //Sixth Line - Orbital Inclination
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sOrbI );
+ double i_total = asDouble(line);
+ i_offset = i_total - 54.0 * (gpstk::PI / 180.0);
+
+ //Seventh Line - Rate of Right Ascen
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sRRA );
+ OMEGAdot = asDouble(line);
+
+ //Eigth Line - SqrtA
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sSqrA );
+ Ahalf = asDouble(line);
+
+ //Ninth Line - Right Ascen at Week
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sRtAs );
+ OMEGA0 = asDouble(line);
+
+ //Tenth Line - Argument of Perigee
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sArgP );
+ w = asDouble(line);
+
+ //Eleventh Line - Mean Anomaly
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sMnAn );
+ M0 = asDouble(line);
+
+ //Twelfth Line - Af0
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sAf0 );
+ AF0 = asDouble(line);
+
+ //Thirteenth Line - Af1
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sAf1 );
+ AF1 = asDouble(line);
+
+ //Fourteenth Line - week
+ strm.formattedGetLine(line, true);
+ stripLeading( line, sweek );
+ int epoch_week = asInt(line);
+ week = epoch_week + 1024; // Need a way to set epoch Do we??
+
+ xmit_time = 0;
+ strm.formattedGetLine(line,true);
+
+ } // end of reallyGetRecord()
+
+ void YumaData::dump(ostream& s) const
+ {
+ cout << "PRN = " << PRN << endl;
+ cout << "week = " << week << endl;
+ cout << "SV_health = " << SV_health << endl;
+ cout << "ecc = " << ecc << endl;
+ cout << "Toa = " << Toa << endl;
+ cout << "i_offset = " << i_offset << endl;
+ cout << "OMEGAdot = " << OMEGAdot << endl;
+ cout << "Ahalf = " << Ahalf << endl;
+ cout << "OMEGA0 = " << OMEGA0 << endl;
+ cout << "w = " << w << endl;
+ cout << "M0 = " << M0 << endl;
+ cout << "AF0 = " << AF0 << endl;
+ cout << "AF1 = " << AF1 << endl;
+ cout << "xmit_time = " << xmit_time << endl;
+
+ } // end of dump()
+
+ YumaData::operator AlmOrbit() const
+ {
+ AlmOrbit ao(PRN, ecc,i_offset, OMEGAdot, Ahalf, OMEGA0,
+ w, M0, AF0, AF1, Toa, xmit_time, week, SV_health);
+
+ return ao;
+
+ } // end of AlmOrbit()
+} // namespace
diff --git a/dev/tests/Yuma/YumaData.hpp b/dev/tests/Yuma/YumaData.hpp
new file mode 100644
index 0000000..7a9bd0a
--- /dev/null
+++ b/dev/tests/Yuma/YumaData.hpp
@@ -0,0 +1,141 @@
+#pragma ident "$Id$"
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+/**
+ * @file YumaData.hpp
+ * Encapsulate Yuma Almanac file data, including I/O
+ */
+
+#ifndef YUMADATA_HPP
+#define YUMADATA_HPP
+
+#include <vector>
+#include <list>
+#include <map>
+
+#include "FFStream.hpp"
+#include "AlmOrbit.hpp"
+#include "YumaBase.hpp"
+#include "YumaHeader.hpp"
+#include "StringUtils.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Yuma */
+ //@{
+
+ /**
+ * This class stores, reads, and writes Yuma records.
+ *
+ * @sa tests/Yuma for examples
+ * @sa YumaStream.
+ * @sa YumaHeader for information on writing Yuma files.
+ */
+ class YumaData : public YumaBase
+ {
+ public:
+ /// Constructor.
+ YumaData() {}
+
+ /// Destructor
+ virtual ~YumaData() {}
+
+ static const std::string sID; // ID label string
+ static const std::string sHlth; // Satellite Health string
+ static const std::string sEcc; // Eccentricity string
+ static const std::string sTOA;
+ static const std::string sOrbI;
+ static const std::string sRRA;
+ static const std::string sSqrA;
+ static const std::string sRtAs;
+ static const std::string sArgP;
+ static const std::string sMnAn;
+ static const std::string sAf0;
+ static const std::string sAf1;
+ static const std::string sweek;
+
+
+ short PRN;
+ short week;
+ short SV_health;
+ double ecc;
+ long Toa;
+ double i_offset;
+ double OMEGAdot;
+ double Ahalf;
+ double OMEGA0;
+ double w;
+ double M0;
+ double AF0;
+ double AF1;
+ long xmit_time;
+
+
+ /**
+ * Debug output function.
+ * Dump the contents of each of the Yuma class to a
+ * given ostream \c s.
+ */
+ virtual void dump(std::ostream& s) const;
+
+ //! This class is "data" so this function always returns "true".
+ virtual bool isData() const {return true;}
+
+ /**
+ * cast *this into an AlmOrbit
+ * @return the constructed AlmOrbit object
+ */
+ operator AlmOrbit() const;
+
+
+
+ protected:
+ /**
+ * Writes a correctly formatted record from this data to stream \a s.
+ */
+ void reallyPutRecord(FFStream& s) const
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ /**
+ * This functions obtains a Yuma almanac record from the given
+ * FFStream.
+ * If there is an error in reading from the stream, it is reset
+ * to its original position and its fail-bit is set.
+ * @throws StringException when a StringUtils function fails
+ * @throws FFStreamError when exceptions(failbit) is set and
+ * a read or formatting error occurs. This also resets the
+ * stream to its pre-read position.
+ */
+ virtual void reallyGetRecord(FFStream& s)
+ throw(std::exception, FFStreamError,
+ gpstk::StringUtils::StringException);
+
+ }; // class YumaData
+
+ //@}
+
+} // namespace
+
+#endif
diff --git a/trunk/src/Makefile.am b/dev/tests/Yuma/YumaStream.cpp
similarity index 100%
copy from trunk/src/Makefile.am
copy to dev/tests/Yuma/YumaStream.cpp
diff --git a/dev/tests/Yuma/YumaStream.hpp b/dev/tests/Yuma/YumaStream.hpp
new file mode 100644
index 0000000..03b48bd
--- /dev/null
+++ b/dev/tests/Yuma/YumaStream.hpp
@@ -0,0 +1,104 @@
+#pragma ident "$Id$"
+
+
+/**
+ * @file YumaStream.hpp
+ * gpstk::YumaStream - ASCII FIC file stream container.
+ */
+
+//============================================================================
+//
+// This file is part of GPSTk, the GPS Toolkit.
+//
+// The GPSTk is free software; you can redistribute it and/or modify
+// it under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// any later version.
+//
+// The GPSTk is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with GPSTk; if not, write to the Free Software Foundation,
+// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// Copyright 2004, The University of Texas at Austin
+//
+//============================================================================
+
+//============================================================================
+//
+//This software developed by Applied Research Laboratories at the University of
+//Texas at Austin, under contract to an agency or agencies within the U.S.
+//Department of Defense. The U.S. Government retains all rights to use,
+//duplicate, distribute, disclose, or release this software.
+//
+//Pursuant to DoD Directive 523024
+//
+// DISTRIBUTION STATEMENT A: This software has been approved for public
+// release, distribution is unlimited.
+//
+//=============================================================================
+
+
+#ifndef YUMASTREAM_HPP
+#define YUMASTREAM_HPP
+
+
+#include "FFTextStream.hpp"
+#include "YumaHeader.hpp"
+
+namespace gpstk
+{
+ /** @addtogroup Yuma */
+ //@{
+
+ /**
+ * This class performs file i/o on a Yuma file for the
+ * YumaHeader and YumaData classes.
+ *
+ * @sa tests/Yuma for examples.
+ * @sa YumaData.
+ * @sa YumaHeader for information on writing Yuma files.
+ *
+ */
+ class YumaStream : public FFTextStream
+ {
+ public:
+ /// Default constructor
+ YumaStream() {}
+
+ /**
+ * Constructor
+ * @param fn the name of the ascuu FIC file to be opened
+ * @param mode the ios::openmode to be used on \a fn
+ */
+ YumaStream(const char* fn,
+ std::ios::openmode mode=std::ios::in)
+ : FFTextStream(fn, mode), headerRead(false) {};
+
+ /// destructor per the coding standards
+ virtual ~YumaStream() {}
+
+ /// overrides open to reset the header
+ virtual void open(const char* fn, std::ios::openmode mode)
+ {
+ FFTextStream::open(fn, mode);
+ headerRead = false;
+ header = YumaHeader();
+ }
+ /// YumaHeader for this file
+ YumaHeader header;
+
+ /// Flag showing whether or not the header has been read.
+ bool headerRead;
+
+ }; // class YumaStream
+
+ //@}
+
+} // namespace gpstk
+
+#endif
diff --git a/dev/tests/Yuma/xYuma.cpp b/dev/tests/Yuma/xYuma.cpp
new file mode 100644
index 0000000..8d45822
--- /dev/null
+++ b/dev/tests/Yuma/xYuma.cpp
@@ -0,0 +1,53 @@
+/*********************************************************************
+* $Id$
+*
+* Test program from November 2006. Written to test the YumaAlmRecord.cpp
+* module..
+*
+// *********************************************************************/
+
+#include "YumaData.hpp"
+#include "YumaStream.hpp"
+#include "YumaBase.hpp"
+#include "SMODFData.hpp"
+
+using namespace std;
+using namespace gpstk;
+
+int main( int argc, char * argv[] )
+{
+ // Read an existing Yuma almanac file and write it back out.
+ try
+ {
+ YumaStream In("yuma377.txt");
+ YumaStream Out("yuma377.dbg", ios::out);
+ YumaData Data;
+
+ while (In >> Data)
+ {
+ Out << Data;
+ }
+
+ YumaStream In2("yuma377.dbg");
+ YumaStream Out2("yuma377_2.dbg", ios::out);
+
+ while (In2 >> Data)
+ {
+ Out2 << Data;
+ }
+
+ }
+ catch(gpstk::Exception& e)
+ {
+ cout << e;
+ exit(1);
+ }
+ catch (...)
+ {
+ cout << "unknown error. Done." << endl;
+ exit(1);
+ }
+
+
+ return(0);
+}
diff --git a/dev/tests/Yuma/yuma377.txt b/dev/tests/Yuma/yuma377.txt
new file mode 100644
index 0000000..b9fc124
--- /dev/null
+++ b/dev/tests/Yuma/yuma377.txt
@@ -0,0 +1,450 @@
+******** Week 377 almanac for PRN-01 ********
+ID: 01
+Health: 000
+Eccentricity: 0.6597995758E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9893061549
+Rate of Right Ascen(r/s): -0.7508884204E-008
+SQRT(A) (m 1/2): 5153.683594
+Right Ascen at Week(rad): -0.5644326501E+000
+Argument of Perigee(rad): -1.781409342
+Mean Anom(rad): 0.4668447322E+000
+Af0(s): 0.8964538574E-004
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-02 ********
+ID: 02
+Health: 000
+Eccentricity: 0.8788585663E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9486556640
+Rate of Right Ascen(r/s): -0.8194627053E-008
+SQRT(A) (m 1/2): 5153.689453
+Right Ascen at Week(rad): -0.2706789619E+001
+Argument of Perigee(rad): 2.168846226
+Mean Anom(rad): 0.1697055754E+001
+Af0(s): 0.5531311035E-004
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-03 ********
+ID: 03
+Health: 000
+Eccentricity: 0.8888721466E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9261013527
+Rate of Right Ascen(r/s): -0.8046049436E-008
+SQRT(A) (m 1/2): 5153.652832
+Right Ascen at Week(rad): 0.2438618993E+001
+Argument of Perigee(rad): 0.711806034
+Mean Anom(rad): 0.9986211184E+000
+Af0(s): 0.3986358643E-003
+Af1(s/s): 0.3274180926E-010
+week: 377
+
+******** Week 377 almanac for PRN-04 ********
+ID: 04
+Health: 000
+Eccentricity: 0.7640361786E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9481283581
+Rate of Right Ascen(r/s): -0.8194627053E-008
+SQRT(A) (m 1/2): 5153.637695
+Right Ascen at Week(rad): -0.2687302895E+001
+Argument of Perigee(rad): 0.195425258
+Mean Anom(rad): -0.2027215907E+001
+Af0(s): 0.3366470337E-003
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-05 ********
+ID: 05
+Health: 063
+Eccentricity: 0.7648944855E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9383612148
+Rate of Right Ascen(r/s): -0.8206056101E-008
+SQRT(A) (m 1/2): 5153.694336
+Right Ascen at Week(rad): 0.1401713145E+001
+Argument of Perigee(rad): 1.135486959
+Mean Anom(rad): -0.2373708311E+001
+Af0(s): 0.3604888916E-003
+Af1(s/s): -0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-06 ********
+ID: 06
+Health: 000
+Eccentricity: 0.5786418915E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9336873671
+Rate of Right Ascen(r/s): -0.8000333246E-008
+SQRT(A) (m 1/2): 5153.585449
+Right Ascen at Week(rad): 0.2498518022E+001
+Argument of Perigee(rad): -1.772147035
+Mean Anom(rad): -0.1132766914E+001
+Af0(s): 0.5493164062E-003
+Af1(s/s): -0.1455191523E-010
+week: 377
+
+******** Week 377 almanac for PRN-07 ********
+ID: 07
+Health: 000
+Eccentricity: 0.1089382172E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9352213479
+Rate of Right Ascen(r/s): -0.7977475151E-008
+SQRT(A) (m 1/2): 5152.062988
+Right Ascen at Week(rad): 0.2472658686E+001
+Argument of Perigee(rad): -1.719578232
+Mean Anom(rad): -0.1928668502E+001
+Af0(s): 0.4949569702E-003
+Af1(s/s): -0.7275957614E-011
+week: 377
+
+******** Week 377 almanac for PRN-08 ********
+ID: 08
+Health: 000
+Eccentricity: 0.9947299957E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9755422726
+Rate of Right Ascen(r/s): -0.7863184676E-008
+SQRT(A) (m 1/2): 5153.538086
+Right Ascen at Week(rad): 0.4820411039E+000
+Argument of Perigee(rad): 2.708419848
+Mean Anom(rad): -0.9777550848E+000
+Af0(s): -0.8583068848E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-09 ********
+ID: 09
+Health: 000
+Eccentricity: 0.1846265793E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9632764184
+Rate of Right Ascen(r/s): -0.7966046104E-008
+SQRT(A) (m 1/2): 5153.673340
+Right Ascen at Week(rad): 0.4002379082E+000
+Argument of Perigee(rad): 1.295024331
+Mean Anom(rad): -0.1348972443E+001
+Af0(s): 0.4482269287E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-10 ********
+ID: 10
+Health: 000
+Eccentricity: 0.7205486298E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9714376756
+Rate of Right Ascen(r/s): -0.7988904198E-008
+SQRT(A) (m 1/2): 5153.667480
+Right Ascen at Week(rad): -0.1632406478E+001
+Argument of Perigee(rad): 0.433487766
+Mean Anom(rad): 0.2224699080E+001
+Af0(s): 0.9250640869E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-11 ********
+ID: 11
+Health: 000
+Eccentricity: 0.6191730499E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.8959310665
+Rate of Right Ascen(r/s): -0.8640359906E-008
+SQRT(A) (m 1/2): 5153.632324
+Right Ascen at Week(rad): -0.2860074597E+001
+Argument of Perigee(rad): 0.412382048
+Mean Anom(rad): -0.5374164621E+000
+Af0(s): 0.3595352173E-003
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-13 ********
+ID: 13
+Health: 000
+Eccentricity: 0.2932548523E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9934706730
+Rate of Right Ascen(r/s): -0.7474597061E-008
+SQRT(A) (m 1/2): 5153.656738
+Right Ascen at Week(rad): -0.5781676953E+000
+Argument of Perigee(rad): 1.279112651
+Mean Anom(rad): 0.2001802983E+001
+Af0(s): 0.1134872437E-003
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-14 ********
+ID: 14
+Health: 000
+Eccentricity: 0.2929687500E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9875324896
+Rate of Right Ascen(r/s): -0.7520313251E-008
+SQRT(A) (m 1/2): 5153.665039
+Right Ascen at Week(rad): -0.5922750006E+000
+Argument of Perigee(rad): -2.115729519
+Mean Anom(rad): 0.1507391163E+001
+Af0(s): -0.9536743164E-006
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-15 ********
+ID: 15
+Health: 063
+Eccentricity: 0.9917736053E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9551151612
+Rate of Right Ascen(r/s): -0.8148910863E-008
+SQRT(A) (m 1/2): 5153.578125
+Right Ascen at Week(rad): -0.2628770443E+001
+Argument of Perigee(rad): 2.717787393
+Mean Anom(rad): -0.1064126143E+001
+Af0(s): 0.9632110596E-004
+Af1(s/s): 0.4001776688E-010
+week: 377
+
+******** Week 377 almanac for PRN-16 ********
+ID: 16
+Health: 000
+Eccentricity: 0.3469944000E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9623716094
+Rate of Right Ascen(r/s): -0.7954617056E-008
+SQRT(A) (m 1/2): 5153.486816
+Right Ascen at Week(rad): 0.1497336399E+001
+Argument of Perigee(rad): -0.763012006
+Mean Anom(rad): -0.2678242072E+001
+Af0(s): 0.9250640869E-004
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-17 ********
+ID: 17
+Health: 000
+Eccentricity: 0.2281188965E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9600826225
+Rate of Right Ascen(r/s): -0.7714607059E-008
+SQRT(A) (m 1/2): 5153.707031
+Right Ascen at Week(rad): 0.2536622988E+001
+Argument of Perigee(rad): 3.054354612
+Mean Anom(rad): 0.2632875040E+001
+Af0(s): 0.8964538574E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-18 ********
+ID: 18
+Health: 000
+Eccentricity: 0.7791519165E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9555226249
+Rate of Right Ascen(r/s): -0.8103194673E-008
+SQRT(A) (m 1/2): 5153.674805
+Right Ascen at Week(rad): -0.1613166928E+001
+Argument of Perigee(rad): -2.603686336
+Mean Anom(rad): -0.2653196165E+001
+Af0(s): -0.2527236938E-003
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-19 ********
+ID: 19
+Health: 000
+Eccentricity: 0.3495693207E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9580453042
+Rate of Right Ascen(r/s): -0.7748894201E-008
+SQRT(A) (m 1/2): 5153.627930
+Right Ascen at Week(rad): 0.2595480513E+001
+Argument of Perigee(rad): -1.045645344
+Mean Anom(rad): 0.2226834894E+001
+Af0(s): 0.3433227539E-004
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-20 ********
+ID: 20
+Health: 000
+Eccentricity: 0.2786636353E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9550372638
+Rate of Right Ascen(r/s): -0.8148910863E-008
+SQRT(A) (m 1/2): 5153.593750
+Right Ascen at Week(rad): -0.1666267156E+001
+Argument of Perigee(rad): 1.314164637
+Mean Anom(rad): -0.2728643228E+001
+Af0(s): -0.2193450928E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-21 ********
+ID: 21
+Health: 000
+Eccentricity: 0.1173782349E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9416808451
+Rate of Right Ascen(r/s): -0.8251772291E-008
+SQRT(A) (m 1/2): 5153.619629
+Right Ascen at Week(rad): -0.2668159219E+001
+Argument of Perigee(rad): -2.905931484
+Mean Anom(rad): -0.1344352150E+001
+Af0(s): 0.6103515625E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-22 ********
+ID: 22
+Health: 000
+Eccentricity: 0.5032062531E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9530838351
+Rate of Right Ascen(r/s): -0.8148910863E-008
+SQRT(A) (m 1/2): 5153.627930
+Right Ascen at Week(rad): -0.1605437478E+001
+Argument of Perigee(rad): -1.661783558
+Mean Anom(rad): 0.2115357634E+001
+Af0(s): 0.1497268677E-003
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-23 ********
+ID: 23
+Health: 000
+Eccentricity: 0.4751205444E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9697658762
+Rate of Right Ascen(r/s): -0.7714607059E-008
+SQRT(A) (m 1/2): 5153.672363
+Right Ascen at Week(rad): -0.6087709117E+000
+Argument of Perigee(rad): 2.573718284
+Mean Anom(rad): 0.1234485270E+001
+Af0(s): 0.1401901245E-003
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-24 ********
+ID: 24
+Health: 000
+Eccentricity: 0.8847713470E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9583149493
+Rate of Right Ascen(r/s): -0.8080336578E-008
+SQRT(A) (m 1/2): 5155.348633
+Right Ascen at Week(rad): -0.2651758433E+001
+Argument of Perigee(rad): -0.797973735
+Mean Anom(rad): -0.1474707186E+001
+Af0(s): 0.5245208740E-004
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-25 ********
+ID: 25
+Health: 000
+Eccentricity: 0.1273775101E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9566731105
+Rate of Right Ascen(r/s): -0.8068907531E-008
+SQRT(A) (m 1/2): 5153.632812
+Right Ascen at Week(rad): 0.3446767945E+000
+Argument of Perigee(rad): -1.316009458
+Mean Anom(rad): -0.7540773916E+000
+Af0(s): 0.4053115845E-003
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-26 ********
+ID: 26
+Health: 000
+Eccentricity: 0.1753950119E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9915711734
+Rate of Right Ascen(r/s): -0.7508884204E-008
+SQRT(A) (m 1/2): 5153.563965
+Right Ascen at Week(rad): -0.5778542330E+000
+Argument of Perigee(rad): 0.819809742
+Mean Anom(rad): 0.4070752830E+000
+Af0(s): -0.5722045898E-005
+Af1(s/s): -0.1455191523E-010
+week: 377
+
+******** Week 377 almanac for PRN-27 ********
+ID: 27
+Health: 000
+Eccentricity: 0.2011394501E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9612211238
+Rate of Right Ascen(r/s): -0.7977475151E-008
+SQRT(A) (m 1/2): 5153.523926
+Right Ascen at Week(rad): 0.3772570334E+000
+Argument of Perigee(rad): -1.882197797
+Mean Anom(rad): -0.2183613038E+001
+Af0(s): 0.7820129395E-004
+Af1(s/s): 0.3637978807E-011
+week: 377
+
+******** Week 377 almanac for PRN-28 ********
+ID: 28
+Health: 000
+Eccentricity: 0.1181697845E-001
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9604541334
+Rate of Right Ascen(r/s): -0.7954617056E-008
+SQRT(A) (m 1/2): 5153.626465
+Right Ascen at Week(rad): 0.1506702070E+001
+Argument of Perigee(rad): -2.238082838
+Mean Anom(rad): 0.2879402530E+001
+Af0(s): 0.1430511475E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-29 ********
+ID: 29
+Health: 000
+Eccentricity: 0.9733200073E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9881137245
+Rate of Right Ascen(r/s): -0.7520313251E-008
+SQRT(A) (m 1/2): 5153.563477
+Right Ascen at Week(rad): -0.6129770001E+000
+Argument of Perigee(rad): -0.826235908
+Mean Anom(rad): 0.2259862294E+001
+Af0(s): 0.1964569092E-003
+Af1(s/s): 0.2910383046E-010
+week: 377
+
+******** Week 377 almanac for PRN-30 ********
+ID: 30
+Health: 000
+Eccentricity: 0.9547710419E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9448386884
+Rate of Right Ascen(r/s): -0.8126052768E-008
+SQRT(A) (m 1/2): 5153.611328
+Right Ascen at Week(rad): 0.1449469157E+001
+Argument of Perigee(rad): 1.324386431
+Mean Anom(rad): -0.3128663173E+001
+Af0(s): 0.1621246338E-004
+Af1(s/s): 0.0000000000E+000
+week: 377
+
+******** Week 377 almanac for PRN-31 ********
+ID: 31
+Health: 000
+Eccentricity: 0.5969047546E-002
+Time of Applicability(s): 319488.0000
+Orbital Inclination(rad): 0.9598549222
+Rate of Right Ascen(r/s): -0.8057478483E-008
+SQRT(A) (m 1/2): 5153.530762
+Right Ascen at Week(rad): 0.4343877061E+000
+Argument of Perigee(rad): -1.431907774
+Mean Anom(rad): -0.5736043272E+000
+Af0(s): -0.4386901855E-004
+Af1(s/s): 0.1091393642E-010
+week: 377
+
diff --git a/dev/tests/a.txt b/dev/tests/a.txt
new file mode 100644
index 0000000..42812b7
--- /dev/null
+++ b/dev/tests/a.txt
@@ -0,0 +1,3 @@
+$Id$
+
+This is a test
diff --git a/ref/build/gpstk.aip b/ref/build/gpstk.aip
new file mode 100644
index 0000000..06e8504
--- /dev/null
+++ b/ref/build/gpstk.aip
@@ -0,0 +1,431 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<DOCUMENT type="Advanced Installer" CreateVersion="5.1.1" version="5.1.1" modules="freeware" RootPath="." Language="en">
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
+ <ROW Property="ALLUSERS" Value="2"/>
+ <ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
+ <ROW Property="ARPCONTACT" Value="gpstk at arlut.utexas.edu"/>
+ <ROW Property="ARPHELPLINK" Value="http://www.gpstk.org/"/>
+ <ROW Property="ARPURLINFOABOUT" Value="http://www.gpstk.org/"/>
+ <ROW Property="BannerBitmap" Value="default_banner.bmp" Type="1"/>
+ <ROW Property="DialogBitmap" Value="default_dialog.bmp" Type="1"/>
+ <ROW Property="Manufacturer" Value="Applied Research Laboratories, The University of Texas at Austin" ValueLocId="*"/>
+ <ROW Property="ProductCode" Value="1033:{DD7ACB95-0DB8-4F83-87C4-B8D401826F58} "/>
+ <ROW Property="ProductLanguage" Value="1033"/>
+ <ROW Property="ProductName" Value="GPS Toolkit" ValueLocId="*"/>
+ <ROW Property="ProductVersion" Value="1.3"/>
+ <ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND"/>
+ <ROW Property="UpgradeCode" Value="{9F409322-AF3A-476F-B2CF-A0E349ACA55A}"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
+ <ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
+ <ROW Directory="DDBase_DIR" Directory_Parent="SHORTCUTDIR" DefaultDir="DDBase"/>
+ <ROW Directory="SHORTCUTDIR" Directory_Parent="TARGETDIR" DefaultDir="SHORTC~1|SHORTCUTDIR" IsPseudoRoot="1"/>
+ <ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
+ <ROW Directory="bin_DIR" Directory_Parent="APPDIR" DefaultDir="bin"/>
+ <ROW Directory="include_DIR" Directory_Parent="APPDIR" DefaultDir="include"/>
+ <ROW Directory="lib_DIR" Directory_Parent="APPDIR" DefaultDir="lib"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
+ <ROW Component="APPDIR" ComponentId="{1403A03C-AA0C-4D01-8F19-B7C8F006372E}" Directory_="APPDIR" Attributes="0"/>
+ <ROW Component="AlmanacStore.hpp" ComponentId="{31E7644B-6038-4D3E-8CC1-2BC96B451487}" Directory_="include_DIR" Attributes="0" KeyPath="AlmanacStore.hpp" FullKeyPath="APPDIR\include"/>
+ <ROW Component="DDBase.exe" ComponentId="{34CFCAA4-AB17-4C2D-9D57-E07E965227C5}" Directory_="bin_DIR" Attributes="0" KeyPath="DDBase.exe" FullKeyPath="APPDIR\bin\DDBase.exe"/>
+ <ROW Component="DDBaseDoc.pdf" ComponentId="{F3213EF2-3140-439E-B5F9-E7A749EC5C67}" Directory_="DDBase_DIR" Attributes="0" KeyPath="DDBaseDoc.pdf" FullKeyPath="SHORTCUTDIR\DDBase"/>
+ <ROW Component="DiscFix.exe" ComponentId="{C18E72F2-DB33-4AE0-87F7-B018984D12AA}" Directory_="bin_DIR" Attributes="0" KeyPath="DiscFix.exe" FullKeyPath="APPDIR\bin\DiscFix.exe"/>
+ <ROW Component="EditRinex.exe" ComponentId="{36A83182-B17F-4D4C-88C2-86373E477E4B}" Directory_="bin_DIR" Attributes="0" KeyPath="EditRinex.exe" FullKeyPath="APPDIR\bin\EditRinex.exe"/>
+ <ROW Component="IonoBias.exe" ComponentId="{6290C754-497D-4656-9B50-B34A2261CF39}" Directory_="bin_DIR" Attributes="0" KeyPath="IonoBias.exe" FullKeyPath="APPDIR\bin\IonoBias.exe"/>
+ <ROW Component="NavMerge.exe" ComponentId="{6CDA2B1D-A7C1-4F28-BBE8-26D6F9675CDE}" Directory_="bin_DIR" Attributes="0" KeyPath="NavMerge.exe" FullKeyPath="APPDIR\bin\NavMerge.exe"/>
+ <ROW Component="PRSolve.exe" ComponentId="{52D2914E-FF97-4CBB-B483-2E53F3D15380}" Directory_="bin_DIR" Attributes="0" KeyPath="PRSolve.exe" FullKeyPath="APPDIR\bin\PRSolve.exe"/>
+ <ROW Component="ResCor.exe" ComponentId="{C7E96632-2CC7-4423-B97E-271FC95327AB}" Directory_="bin_DIR" Attributes="0" KeyPath="ResCor.exe" FullKeyPath="APPDIR\bin\ResCor.exe"/>
+ <ROW Component="RinSum.exe" ComponentId="{ACBFE622-8111-4F21-B0D9-F065FCB0A6A5}" Directory_="bin_DIR" Attributes="0" KeyPath="RinSum.exe" FullKeyPath="APPDIR\bin\RinSum.exe"/>
+ <ROW Component="RinexDump.exe" ComponentId="{42244EEF-8501-4E13-B3E7-291F1183997F}" Directory_="bin_DIR" Attributes="0" KeyPath="RinexDump.exe" FullKeyPath="APPDIR\bin\RinexDump.exe"/>
+ <ROW Component="TECMaps.exe" ComponentId="{357A76AB-0B9F-4CA7-A066-BEA0940C7012}" Directory_="bin_DIR" Attributes="0" KeyPath="TECMaps.exe" FullKeyPath="APPDIR\bin\TECMaps.exe"/>
+ <ROW Component="bc2sp3.exe" ComponentId="{FCD06097-8D49-49A6-A438-6ABCB0C025E7}" Directory_="bin_DIR" Attributes="0" KeyPath="bc2sp3.exe" FullKeyPath="APPDIR\bin\bc2sp3.exe"/>
+ <ROW Component="calgps.exe" ComponentId="{E8572896-07F4-4E5C-BA49-CD953EE08736}" Directory_="bin_DIR" Attributes="0" KeyPath="calgps.exe" FullKeyPath="APPDIR\bin\calgps.exe"/>
+ <ROW Component="ddmerge.exe" ComponentId="{486CC858-95CB-4253-9C62-4E5614AD35EF}" Directory_="bin_DIR" Attributes="0" KeyPath="ddmerge.exe" FullKeyPath="APPDIR\bin\ddmerge.exe"/>
+ <ROW Component="ephdiff.exe" ComponentId="{0D3D23F9-156B-4407-9C09-EEB2A8FFF389}" Directory_="bin_DIR" Attributes="0" KeyPath="ephdiff.exe" FullKeyPath="APPDIR\bin\ephdiff.exe"/>
+ <ROW Component="fic2rin.exe" ComponentId="{45639FBC-32EA-4AA5-86EF-7D9C56037DA8}" Directory_="bin_DIR" Attributes="0" KeyPath="fic2rin.exe" FullKeyPath="APPDIR\bin\fic2rin.exe"/>
+ <ROW Component="ficacheck.exe" ComponentId="{A7D7E4A6-D078-4F24-B4F5-2D1C74CDF063}" Directory_="bin_DIR" Attributes="0" KeyPath="ficacheck.exe" FullKeyPath="APPDIR\bin\ficacheck.exe"/>
+ <ROW Component="ficafic.exe" ComponentId="{312E9BE2-D51A-437B-9E12-393351C5DA86}" Directory_="bin_DIR" Attributes="0" KeyPath="ficafic.exe" FullKeyPath="APPDIR\bin\ficafic.exe"/>
+ <ROW Component="ficcheck.exe" ComponentId="{E6454D10-BCC6-449E-ACEE-CD48F152FA6A}" Directory_="bin_DIR" Attributes="0" KeyPath="ficcheck.exe" FullKeyPath="APPDIR\bin\ficcheck.exe"/>
+ <ROW Component="ficdiff.exe" ComponentId="{0FE26648-66CB-4C2A-8462-41FBA7D75B7A}" Directory_="bin_DIR" Attributes="0" KeyPath="ficdiff.exe" FullKeyPath="APPDIR\bin\ficdiff.exe"/>
+ <ROW Component="ficfica.exe" ComponentId="{A50FA514-F2BF-440D-9A43-A47E9780975F}" Directory_="bin_DIR" Attributes="0" KeyPath="ficfica.exe" FullKeyPath="APPDIR\bin\ficfica.exe"/>
+ <ROW Component="gpstk.lib" ComponentId="{92E69E2C-0E65-4284-BDEE-6722BACB1FA7}" Directory_="lib_DIR" Attributes="0" KeyPath="gpstk.lib" FullKeyPath="APPDIR\lib"/>
+ <ROW Component="gpstk_user_reference.pdf_1" ComponentId="{FA0A4E59-6949-449B-BB63-DE6E0E7E05A1}" Directory_="SHORTCUTDIR" Attributes="0" KeyPath="gpstk_user_reference.pdf" FullKeyPath="SHORTCUTDIR"/>
+ <ROW Component="mergeFIC.exe" ComponentId="{EFDDE139-F69F-4C20-8CFF-8685DB973820}" Directory_="bin_DIR" Attributes="0" KeyPath="mergeFIC.exe" FullKeyPath="APPDIR\bin\mergeFIC.exe"/>
+ <ROW Component="mergeRinMet.exe" ComponentId="{231A13CB-6C7D-4296-AB60-78FD040F4023}" Directory_="bin_DIR" Attributes="0" KeyPath="mergeRinMet.exe" FullKeyPath="APPDIR\bin\mergeRinMet.exe"/>
+ <ROW Component="mergeRinNav.exe" ComponentId="{66D0EAE1-A262-48CB-9F4E-35920EB4EF0E}" Directory_="bin_DIR" Attributes="0" KeyPath="mergeRinNav.exe" FullKeyPath="APPDIR\bin\mergeRinNav.exe"/>
+ <ROW Component="mergeRinObs.exe" ComponentId="{167F6DB6-315B-48C1-B0D2-BBA3BEEC389B}" Directory_="bin_DIR" Attributes="0" KeyPath="mergeRinObs.exe" FullKeyPath="APPDIR\bin\mergeRinObs.exe"/>
+ <ROW Component="mergeSRI.exe" ComponentId="{2566B8B9-3429-4BBF-BA2C-68E9CF24D08C}" Directory_="bin_DIR" Attributes="0" KeyPath="mergeSRI.exe" FullKeyPath="APPDIR\bin\mergeSRI.exe"/>
+ <ROW Component="mpsolve.exe" ComponentId="{4515D68C-01C0-4B53-9C72-3BF45AD253B4}" Directory_="bin_DIR" Attributes="0" KeyPath="mpsolve.exe" FullKeyPath="APPDIR\bin\mpsolve.exe"/>
+ <ROW Component="navdmp.exe" ComponentId="{67EF2C9E-D17E-402C-8164-A200BE9C1BF0}" Directory_="bin_DIR" Attributes="0" KeyPath="navdmp.exe" FullKeyPath="APPDIR\bin\navdmp.exe"/>
+ <ROW Component="novaRinex.exe" ComponentId="{C2159EC6-8E9F-4C50-BA19-C044712DA73F}" Directory_="bin_DIR" Attributes="0" KeyPath="novaRinex.exe" FullKeyPath="APPDIR\bin\novaRinex.exe"/>
+ <ROW Component="posInterp.exe" ComponentId="{DF80F91D-6FBA-48AF-A8B3-40DAF65CB578}" Directory_="bin_DIR" Attributes="0" KeyPath="posInterp.exe" FullKeyPath="APPDIR\bin\posInterp.exe"/>
+ <ROW Component="poscvt.exe" ComponentId="{7D440995-7E4C-4E72-AD48-AD748C0B6096}" Directory_="bin_DIR" Attributes="0" KeyPath="poscvt.exe" FullKeyPath="APPDIR\bin\poscvt.exe"/>
+ <ROW Component="rinexpvt.exe" ComponentId="{53FB158D-5710-4DF1-911F-A52A0CF4E927}" Directory_="bin_DIR" Attributes="0" KeyPath="rinexpvt.exe" FullKeyPath="APPDIR\bin\rinexpvt.exe"/>
+ <ROW Component="rinexthin.exe" ComponentId="{E70DD697-2250-4564-9924-1C346F3C2B58}" Directory_="bin_DIR" Attributes="0" KeyPath="rinexthin.exe" FullKeyPath="APPDIR\bin\rinexthin.exe"/>
+ <ROW Component="rmwcheck.exe" ComponentId="{63C834F5-A340-4FC0-B85E-EFFE4C1013F0}" Directory_="bin_DIR" Attributes="0" KeyPath="rmwcheck.exe" FullKeyPath="APPDIR\bin\rmwcheck.exe"/>
+ <ROW Component="rmwdiff.exe" ComponentId="{023DC1D4-6DBA-488C-B814-DAF786B95320}" Directory_="bin_DIR" Attributes="0" KeyPath="rmwdiff.exe" FullKeyPath="APPDIR\bin\rmwdiff.exe"/>
+ <ROW Component="rnwcheck.exe" ComponentId="{14BF220D-865D-427D-BF77-3A67A871EDB2}" Directory_="bin_DIR" Attributes="0" KeyPath="rnwcheck.exe" FullKeyPath="APPDIR\bin\rnwcheck.exe"/>
+ <ROW Component="rnwdiff.exe" ComponentId="{603C6DD7-FFC3-4F91-9FA1-FDFD7C2B2B70}" Directory_="bin_DIR" Attributes="0" KeyPath="rnwdiff.exe" FullKeyPath="APPDIR\bin\rnwdiff.exe"/>
+ <ROW Component="rowcheck.exe" ComponentId="{D56AA307-2140-46F4-AC17-C5E64C6A4A65}" Directory_="bin_DIR" Attributes="0" KeyPath="rowcheck.exe" FullKeyPath="APPDIR\bin\rowcheck.exe"/>
+ <ROW Component="rowdiff.exe" ComponentId="{07991397-61A1-4BE3-A205-C96D98F61E00}" Directory_="bin_DIR" Attributes="0" KeyPath="rowdiff.exe" FullKeyPath="APPDIR\bin\rowdiff.exe"/>
+ <ROW Component="rstats.exe" ComponentId="{107D4FB8-CE7A-49D7-8103-262C91E26CC5}" Directory_="bin_DIR" Attributes="0" KeyPath="rstats.exe" FullKeyPath="APPDIR\bin\rstats.exe"/>
+ <ROW Component="sp3version.exe" ComponentId="{6B47BD50-B3DC-4369-9BA4-9A753DF24888}" Directory_="bin_DIR" Attributes="0" KeyPath="sp3version.exe" FullKeyPath="APPDIR\bin\sp3version.exe"/>
+ <ROW Component="timeconvert.exe" ComponentId="{A6C5459B-A15C-4B8A-A4F7-516AB67E15BC}" Directory_="bin_DIR" Attributes="0" KeyPath="timeconvert.exe" FullKeyPath="APPDIR\bin\timeconvert.exe"/>
+ <ROW Component="tnl.exe" ComponentId="{76E3434F-94DA-4ACD-AA71-DFB6810E0E21}" Directory_="bin_DIR" Attributes="0" KeyPath="tnl.exe" FullKeyPath="APPDIR\bin\tnl.exe"/>
+ <ROW Component="tsrif.exe" ComponentId="{F1B95E0F-D908-4A2E-959C-49059EC63149}" Directory_="bin_DIR" Attributes="0" KeyPath="tsrif.exe" FullKeyPath="APPDIR\bin\tsrif.exe"/>
+ <ROW Component="tsrifsu.exe" ComponentId="{39094244-CE40-4682-A93D-3505D46D8CEA}" Directory_="bin_DIR" Attributes="0" KeyPath="tsrifsu.exe" FullKeyPath="APPDIR\bin\tsrifsu.exe"/>
+ <ROW Component="tsriftu.exe" ComponentId="{54041AAC-90E1-4574-8BDF-650B72396C4A}" Directory_="bin_DIR" Attributes="0" KeyPath="tsriftu.exe" FullKeyPath="APPDIR\bin\tsriftu.exe"/>
+ <ROW Component="vecsol.exe" ComponentId="{B89FA2AC-87B8-4488-BF06-0D8CE70FBDBE}" Directory_="bin_DIR" Attributes="0" KeyPath="vecsol.exe" FullKeyPath="APPDIR\bin\vecsol.exe"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
+ <ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0" Components="APPDIR bc2sp3.exe calgps.exe DDBase.exe ddmerge.exe DiscFix.exe EditRinex.exe ephdiff.exe fic2rin.exe ficacheck.exe ficafic.exe ficcheck.exe ficdiff.exe ficfica.exe IonoBias.exe mergeFIC.exe mergeRinMet.exe mergeRinNav.exe mergeRinObs.exe mergeSRI.exe mpsolve.exe navdmp.exe NavMerge.exe novaRinex.exe poscvt.exe posInterp.exe PRSolve.exe ResCor. [...]
+ <ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
+ <ROW File="ANSITime.hpp" Component_="AlmanacStore.hpp" FileName="ANSITime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ANSITime.hpp" SelfReg="false" Sequence="49"/>
+ <ROW File="AlmOrbit.hpp" Component_="AlmanacStore.hpp" FileName="AlmOrbit.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AlmOrbit.hpp" SelfReg="false" Sequence="48"/>
+ <ROW File="AlmanacStore.hpp" Component_="AlmanacStore.hpp" FileName="Almana~1.hpp|AlmanacStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AlmanacStore.hpp" SelfReg="false" Sequence="47"/>
+ <ROW File="AshtechALB.hpp" Component_="AlmanacStore.hpp" FileName="Ashtec~1.hpp|AshtechALB.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AshtechALB.hpp" SelfReg="false" Sequence="50"/>
+ <ROW File="AshtechData.hpp" Component_="AlmanacStore.hpp" FileName="Ashtec~2.hpp|AshtechData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AshtechData.hpp" SelfReg="false" Sequence="51"/>
+ <ROW File="AshtechEPB.hpp" Component_="AlmanacStore.hpp" FileName="Ashtec~3.hpp|AshtechEPB.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AshtechEPB.hpp" SelfReg="false" Sequence="52"/>
+ <ROW File="AshtechMBEN.hpp" Component_="AlmanacStore.hpp" FileName="Ashtec~4.hpp|AshtechMBEN.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AshtechMBEN.hpp" SelfReg="false" Sequence="53"/>
+ <ROW File="AshtechPBEN.hpp" Component_="AlmanacStore.hpp" FileName="Ashtec~5.hpp|AshtechPBEN.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AshtechPBEN.hpp" SelfReg="false" Sequence="54"/>
+ <ROW File="AshtechStream.hpp" Component_="AlmanacStore.hpp" FileName="Ashtec~6.hpp|AshtechStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\AshtechStream.hpp" SelfReg="false" Sequence="55"/>
+ <ROW File="BCEphemerisStore.hpp" Component_="AlmanacStore.hpp" FileName="BCEphe~1.hpp|BCEphemerisStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BCEphemerisStore.hpp" SelfReg="false" Sequence="58"/>
+ <ROW File="Bancroft.hpp" Component_="AlmanacStore.hpp" FileName="Bancroft.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Bancroft.hpp" SelfReg="false" Sequence="56"/>
+ <ROW File="BasicFramework.hpp" Component_="AlmanacStore.hpp" FileName="BasicF~1.hpp|BasicFramework.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BasicFramework.hpp" SelfReg="false" Sequence="57"/>
+ <ROW File="BinUtils.hpp" Component_="AlmanacStore.hpp" FileName="BinUtils.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BinUtils.hpp" SelfReg="false" Sequence="62"/>
+ <ROW File="BinexData.hpp" Component_="AlmanacStore.hpp" FileName="BinexD~1.hpp|BinexData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BinexData.hpp" SelfReg="false" Sequence="59"/>
+ <ROW File="BinexFilterOperators.hpp" Component_="AlmanacStore.hpp" FileName="BinexF~1.hpp|BinexFilterOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BinexFilterOperators.hpp" SelfReg="false" Sequence="60"/>
+ <ROW File="BinexStream.hpp" Component_="AlmanacStore.hpp" FileName="BinexS~1.hpp|BinexStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BinexStream.hpp" SelfReg="false" Sequence="61"/>
+ <ROW File="BivarStats.hpp" Component_="AlmanacStore.hpp" FileName="BivarS~1.hpp|BivarStats.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\BivarStats.hpp" SelfReg="false" Sequence="63"/>
+ <ROW File="CheckPRData.hpp" Component_="AlmanacStore.hpp" FileName="CheckP~1.hpp|CheckPRData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CheckPRData.hpp" SelfReg="false" Sequence="64"/>
+ <ROW File="CivilTime.hpp" Component_="AlmanacStore.hpp" FileName="CivilT~1.hpp|CivilTime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CivilTime.hpp" SelfReg="false" Sequence="65"/>
+ <ROW File="ClockModel.hpp" Component_="AlmanacStore.hpp" FileName="ClockM~1.hpp|ClockModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ClockModel.hpp" SelfReg="false" Sequence="66"/>
+ <ROW File="CodeBuffer.hpp" Component_="AlmanacStore.hpp" FileName="CodeBu~1.hpp|CodeBuffer.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CodeBuffer.hpp" SelfReg="false" Sequence="67"/>
+ <ROW File="CodeSmoother.hpp" Component_="AlmanacStore.hpp" FileName="CodeSm~1.hpp|CodeSmoother.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CodeSmoother.hpp" SelfReg="false" Sequence="68"/>
+ <ROW File="CommandOption.hpp" Component_="AlmanacStore.hpp" FileName="Comman~1.hpp|CommandOption.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CommandOption.hpp" SelfReg="false" Sequence="69"/>
+ <ROW File="CommandOptionParser.hpp" Component_="AlmanacStore.hpp" FileName="Comman~2.hpp|CommandOptionParser.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CommandOptionParser.hpp" SelfReg="false" Sequence="70"/>
+ <ROW File="CommandOptionWithCommonTimeArg.hpp" Component_="AlmanacStore.hpp" FileName="Comman~3.hpp|CommandOptionWithCommonTimeArg.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CommandOptionWithCommonTimeArg.hpp" SelfReg="false" Sequence="71"/>
+ <ROW File="CommandOptionWithPositionArg.hpp" Component_="AlmanacStore.hpp" FileName="Comman~4.hpp|CommandOptionWithPositionArg.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CommandOptionWithPositionArg.hpp" SelfReg="false" Sequence="72"/>
+ <ROW File="CommandOptionWithTimeArg.hpp" Component_="AlmanacStore.hpp" FileName="Comman~5.hpp|CommandOptionWithTimeArg.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CommandOptionWithTimeArg.hpp" SelfReg="false" Sequence="73"/>
+ <ROW File="CommonTime.hpp" Component_="AlmanacStore.hpp" FileName="Common~1.hpp|CommonTime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\CommonTime.hpp" SelfReg="false" Sequence="74"/>
+ <ROW File="ComputeCombination.hpp" Component_="AlmanacStore.hpp" FileName="Comput~1.hpp|ComputeCombination.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeCombination.hpp" SelfReg="false" Sequence="75"/>
+ <ROW File="ComputeIURAWeights.hpp" Component_="AlmanacStore.hpp" FileName="Comput~2.hpp|ComputeIURAWeights.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeIURAWeights.hpp" SelfReg="false" Sequence="76"/>
+ <ROW File="ComputeLC.hpp" Component_="AlmanacStore.hpp" FileName="Comput~3.hpp|ComputeLC.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeLC.hpp" SelfReg="false" Sequence="77"/>
+ <ROW File="ComputeLI.hpp" Component_="AlmanacStore.hpp" FileName="Comput~5.hpp|ComputeLI.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeLI.hpp" SelfReg="false" Sequence="79"/>
+ <ROW File="ComputeLdelta.hpp" Component_="AlmanacStore.hpp" FileName="Comput~4.hpp|ComputeLdelta.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeLdelta.hpp" SelfReg="false" Sequence="78"/>
+ <ROW File="ComputeMOPSWeights.hpp" Component_="AlmanacStore.hpp" FileName="Comput~7.hpp|ComputeMOPSWeights.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeMOPSWeights.hpp" SelfReg="false" Sequence="81"/>
+ <ROW File="ComputeMelbourneWubbena.hpp" Component_="AlmanacStore.hpp" FileName="Comput~6.hpp|ComputeMelbourneWubbena.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputeMelbourneWubbena.hpp" SelfReg="false" Sequence="80"/>
+ <ROW File="ComputePC.hpp" Component_="AlmanacStore.hpp" FileName="Comput~8.hpp|ComputePC.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputePC.hpp" SelfReg="false" Sequence="82"/>
+ <ROW File="ComputePI.hpp" Component_="AlmanacStore.hpp" FileName="Compu~10.hpp|ComputePI.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputePI.hpp" SelfReg="false" Sequence="84"/>
+ <ROW File="ComputePdelta.hpp" Component_="AlmanacStore.hpp" FileName="Comput~9.hpp|ComputePdelta.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ComputePdelta.hpp" SelfReg="false" Sequence="83"/>
+ <ROW File="DDBase.exe" Component_="DDBase.exe" FileName="DDBase.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\DDBase.exe" SelfReg="false" Sequence="3"/>
+ <ROW File="DDBaseCmdLineRef.pdf" Component_="DDBaseDoc.pdf" FileName="DDBase~2.pdf|DDBaseCmdLineRef.pdf" Attributes="0" SourcePath="..\..\dev\apps\geomatics\relposition\doc\DDBaseCmdLineRef.pdf" SelfReg="false" Sequence="281"/>
+ <ROW File="DDBaseDoc.pdf" Component_="DDBaseDoc.pdf" FileName="DDBase~1.pdf|DDBaseDoc.pdf" Attributes="0" SourcePath="..\..\dev\apps\geomatics\relposition\doc\DDBaseDoc.pdf" SelfReg="false" Sequence="280"/>
+ <ROW File="DOP.hpp" Component_="AlmanacStore.hpp" FileName="DOP.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DOP.hpp" SelfReg="false" Sequence="92"/>
+ <ROW File="DataHeaders.hpp" Component_="AlmanacStore.hpp" FileName="DataHe~1.hpp|DataHeaders.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DataHeaders.hpp" SelfReg="false" Sequence="86"/>
+ <ROW File="DataStatus.hpp" Component_="AlmanacStore.hpp" FileName="DataSt~1.hpp|DataStatus.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DataStatus.hpp" SelfReg="false" Sequence="87"/>
+ <ROW File="DataStructures.hpp" Component_="AlmanacStore.hpp" FileName="DataSt~2.hpp|DataStructures.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DataStructures.hpp" SelfReg="false" Sequence="88"/>
+ <ROW File="DayTime.hpp" Component_="AlmanacStore.hpp" FileName="DayTime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DayTime.hpp" SelfReg="false" Sequence="89"/>
+ <ROW File="DeltaOp.hpp" Component_="AlmanacStore.hpp" FileName="DeltaOp.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DeltaOp.hpp" SelfReg="false" Sequence="90"/>
+ <ROW File="DeviceStream.hpp" Component_="AlmanacStore.hpp" FileName="Device~1.hpp|DeviceStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\DeviceStream.hpp" SelfReg="false" Sequence="91"/>
+ <ROW File="DiscFix.exe" Component_="DiscFix.exe" FileName="DiscFix.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\DiscFix.exe" SelfReg="false" Sequence="5"/>
+ <ROW File="ECEF.hpp" Component_="AlmanacStore.hpp" FileName="ECEF.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ECEF.hpp" SelfReg="false" Sequence="93"/>
+ <ROW File="EditRinex.exe" Component_="EditRinex.exe" FileName="EditRi~1.exe|EditRinex.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\EditRinex.exe" SelfReg="false" Sequence="6"/>
+ <ROW File="EngAlmanac.hpp" Component_="AlmanacStore.hpp" FileName="EngAlm~1.hpp|EngAlmanac.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EngAlmanac.hpp" SelfReg="false" Sequence="94"/>
+ <ROW File="EngEphemeris.hpp" Component_="AlmanacStore.hpp" FileName="EngEph~1.hpp|EngEphemeris.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EngEphemeris.hpp" SelfReg="false" Sequence="95"/>
+ <ROW File="EngNav.hpp" Component_="AlmanacStore.hpp" FileName="EngNav.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EngNav.hpp" SelfReg="false" Sequence="96"/>
+ <ROW File="EphReader.hpp" Component_="AlmanacStore.hpp" FileName="EphRea~1.hpp|EphReader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EphReader.hpp" SelfReg="false" Sequence="99"/>
+ <ROW File="EphemerisRange.hpp" Component_="AlmanacStore.hpp" FileName="Epheme~1.hpp|EphemerisRange.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EphemerisRange.hpp" SelfReg="false" Sequence="97"/>
+ <ROW File="EphemerisStore.hpp" Component_="AlmanacStore.hpp" FileName="Epheme~2.hpp|EphemerisStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EphemerisStore.hpp" SelfReg="false" Sequence="98"/>
+ <ROW File="EpochClockModel.hpp" Component_="AlmanacStore.hpp" FileName="EpochC~1.hpp|EpochClockModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\EpochClockModel.hpp" SelfReg="false" Sequence="100"/>
+ <ROW File="Exception.hpp" Component_="AlmanacStore.hpp" FileName="Except~1.hpp|Exception.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Exception.hpp" SelfReg="false" Sequence="101"/>
+ <ROW File="Expression.hpp" Component_="AlmanacStore.hpp" FileName="Expres~1.hpp|Expression.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Expression.hpp" SelfReg="false" Sequence="102"/>
+ <ROW File="ExtractC1.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~1.hpp|ExtractC1.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractC1.hpp" SelfReg="false" Sequence="103"/>
+ <ROW File="ExtractCombinationData.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~2.hpp|ExtractCombinationData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractCombinationData.hpp" SelfReg="false" Sequence="104"/>
+ <ROW File="ExtractD1.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~3.hpp|ExtractD1.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractD1.hpp" SelfReg="false" Sequence="105"/>
+ <ROW File="ExtractD2.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~4.hpp|ExtractD2.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractD2.hpp" SelfReg="false" Sequence="106"/>
+ <ROW File="ExtractData.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~5.hpp|ExtractData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractData.hpp" SelfReg="false" Sequence="107"/>
+ <ROW File="ExtractL1.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~6.hpp|ExtractL1.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractL1.hpp" SelfReg="false" Sequence="108"/>
+ <ROW File="ExtractL2.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~7.hpp|ExtractL2.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractL2.hpp" SelfReg="false" Sequence="109"/>
+ <ROW File="ExtractLC.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~8.hpp|ExtractLC.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractLC.hpp" SelfReg="false" Sequence="110"/>
+ <ROW File="ExtractP1.hpp" Component_="AlmanacStore.hpp" FileName="Extrac~9.hpp|ExtractP1.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractP1.hpp" SelfReg="false" Sequence="111"/>
+ <ROW File="ExtractP2.hpp" Component_="AlmanacStore.hpp" FileName="Extra~10.hpp|ExtractP2.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractP2.hpp" SelfReg="false" Sequence="112"/>
+ <ROW File="ExtractPC.hpp" Component_="AlmanacStore.hpp" FileName="Extra~11.hpp|ExtractPC.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ExtractPC.hpp" SelfReg="false" Sequence="113"/>
+ <ROW File="FDStreamBuff.hpp" Component_="AlmanacStore.hpp" FileName="FDStre~1.hpp|FDStreamBuff.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FDStreamBuff.hpp" SelfReg="false" Sequence="114"/>
+ <ROW File="FFBinaryStream.hpp" Component_="AlmanacStore.hpp" FileName="FFBina~1.hpp|FFBinaryStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FFBinaryStream.hpp" SelfReg="false" Sequence="115"/>
+ <ROW File="FFData.hpp" Component_="AlmanacStore.hpp" FileName="FFData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FFData.hpp" SelfReg="false" Sequence="116"/>
+ <ROW File="FFIdentifier.hpp" Component_="AlmanacStore.hpp" FileName="FFIden~1.hpp|FFIdentifier.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FFIdentifier.hpp" SelfReg="false" Sequence="117"/>
+ <ROW File="FFStream.hpp" Component_="AlmanacStore.hpp" FileName="FFStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FFStream.hpp" SelfReg="false" Sequence="118"/>
+ <ROW File="FFStreamError.hpp" Component_="AlmanacStore.hpp" FileName="FFStre~1.hpp|FFStreamError.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FFStreamError.hpp" SelfReg="false" Sequence="119"/>
+ <ROW File="FFTextStream.hpp" Component_="AlmanacStore.hpp" FileName="FFText~1.hpp|FFTextStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FFTextStream.hpp" SelfReg="false" Sequence="120"/>
+ <ROW File="FICAStream.hpp" Component_="AlmanacStore.hpp" FileName="FICASt~1.hpp|FICAStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICAStream.hpp" SelfReg="false" Sequence="121"/>
+ <ROW File="FICBase.hpp" Component_="AlmanacStore.hpp" FileName="FICBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICBase.hpp" SelfReg="false" Sequence="122"/>
+ <ROW File="FICData.hpp" Component_="AlmanacStore.hpp" FileName="FICData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICData.hpp" SelfReg="false" Sequence="123"/>
+ <ROW File="FICData109.hpp" Component_="AlmanacStore.hpp" FileName="FICDat~1.hpp|FICData109.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICData109.hpp" SelfReg="false" Sequence="124"/>
+ <ROW File="FICData162.hpp" Component_="AlmanacStore.hpp" FileName="FICDat~2.hpp|FICData162.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICData162.hpp" SelfReg="false" Sequence="125"/>
+ <ROW File="FICData62.hpp" Component_="AlmanacStore.hpp" FileName="FICDat~3.hpp|FICData62.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICData62.hpp" SelfReg="false" Sequence="126"/>
+ <ROW File="FICData9.hpp" Component_="AlmanacStore.hpp" FileName="FICData9.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICData9.hpp" SelfReg="false" Sequence="127"/>
+ <ROW File="FICFilterOperators.hpp" Component_="AlmanacStore.hpp" FileName="FICFil~1.hpp|FICFilterOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICFilterOperators.hpp" SelfReg="false" Sequence="128"/>
+ <ROW File="FICHeader.hpp" Component_="AlmanacStore.hpp" FileName="FICHea~1.hpp|FICHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICHeader.hpp" SelfReg="false" Sequence="129"/>
+ <ROW File="FICStream.hpp" Component_="AlmanacStore.hpp" FileName="FICStr~1.hpp|FICStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICStream.hpp" SelfReg="false" Sequence="130"/>
+ <ROW File="FICStreamBase.hpp" Component_="AlmanacStore.hpp" FileName="FICStr~2.hpp|FICStreamBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FICStreamBase.hpp" SelfReg="false" Sequence="131"/>
+ <ROW File="FileFilter.hpp" Component_="AlmanacStore.hpp" FileName="FileFi~1.hpp|FileFilter.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileFilter.hpp" SelfReg="false" Sequence="132"/>
+ <ROW File="FileFilterFrame.hpp" Component_="AlmanacStore.hpp" FileName="FileFi~2.hpp|FileFilterFrame.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileFilterFrame.hpp" SelfReg="false" Sequence="133"/>
+ <ROW File="FileFilterFrameWithHeader.hpp" Component_="AlmanacStore.hpp" FileName="FileFi~3.hpp|FileFilterFrameWithHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileFilterFrameWithHeader.hpp" SelfReg="false" Sequence="134"/>
+ <ROW File="FileHunter.hpp" Component_="AlmanacStore.hpp" FileName="FileHu~1.hpp|FileHunter.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileHunter.hpp" SelfReg="false" Sequence="135"/>
+ <ROW File="FileSpec.hpp" Component_="AlmanacStore.hpp" FileName="FileSpec.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileSpec.hpp" SelfReg="false" Sequence="136"/>
+ <ROW File="FileStore.hpp" Component_="AlmanacStore.hpp" FileName="FileSt~1.hpp|FileStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileStore.hpp" SelfReg="false" Sequence="137"/>
+ <ROW File="FileUtils.hpp" Component_="AlmanacStore.hpp" FileName="FileUt~1.hpp|FileUtils.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\FileUtils.hpp" SelfReg="false" Sequence="138"/>
+ <ROW File="GPSEpochWeekSecond.hpp" Component_="AlmanacStore.hpp" FileName="GPSEpo~1.hpp|GPSEpochWeekSecond.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSEpochWeekSecond.hpp" SelfReg="false" Sequence="144"/>
+ <ROW File="GPSGeoid.hpp" Component_="AlmanacStore.hpp" FileName="GPSGeoid.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSGeoid.hpp" SelfReg="false" Sequence="145"/>
+ <ROW File="GPSWeekSecond.hpp" Component_="AlmanacStore.hpp" FileName="GPSWee~1.hpp|GPSWeekSecond.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSWeekSecond.hpp" SelfReg="false" Sequence="147"/>
+ <ROW File="GPSWeekZcount.hpp" Component_="AlmanacStore.hpp" FileName="GPSWee~2.hpp|GPSWeekZcount.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSWeekZcount.hpp" SelfReg="false" Sequence="148"/>
+ <ROW File="GPSZcount.hpp" Component_="AlmanacStore.hpp" FileName="GPSZco~1.hpp|GPSZcount.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSZcount.hpp" SelfReg="false" Sequence="149"/>
+ <ROW File="GPSZcount29.hpp" Component_="AlmanacStore.hpp" FileName="GPSZco~2.hpp|GPSZcount29.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSZcount29.hpp" SelfReg="false" Sequence="150"/>
+ <ROW File="GPSZcount32.hpp" Component_="AlmanacStore.hpp" FileName="GPSZco~3.hpp|GPSZcount32.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GPSZcount32.hpp" SelfReg="false" Sequence="151"/>
+ <ROW File="GenXSequence.hpp" Component_="AlmanacStore.hpp" FileName="GenXSe~1.hpp|GenXSequence.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GenXSequence.hpp" SelfReg="false" Sequence="139"/>
+ <ROW File="Geodetic.hpp" Component_="AlmanacStore.hpp" FileName="Geodetic.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Geodetic.hpp" SelfReg="false" Sequence="140"/>
+ <ROW File="GeoidModel.hpp" Component_="AlmanacStore.hpp" FileName="GeoidM~1.hpp|GeoidModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\GeoidModel.hpp" SelfReg="false" Sequence="141"/>
+ <ROW File="IonoBias.exe" Component_="IonoBias.exe" FileName="IonoBias.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\IonoBias.exe" SelfReg="false" Sequence="14"/>
+ <ROW File="IonoModel.hpp" Component_="AlmanacStore.hpp" FileName="IonoMo~1.hpp|IonoModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\IonoModel.hpp" SelfReg="false" Sequence="154"/>
+ <ROW File="IonoModelStore.hpp" Component_="AlmanacStore.hpp" FileName="IonoMo~2.hpp|IonoModelStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\IonoModelStore.hpp" SelfReg="false" Sequence="155"/>
+ <ROW File="JulianDate.hpp" Component_="AlmanacStore.hpp" FileName="Julian~1.hpp|JulianDate.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\JulianDate.hpp" SelfReg="false" Sequence="156"/>
+ <ROW File="LICSDetector.hpp" Component_="AlmanacStore.hpp" FileName="LICSDe~1.hpp|LICSDetector.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\LICSDetector.hpp" SelfReg="false" Sequence="157"/>
+ <ROW File="LinearClockModel.hpp" Component_="AlmanacStore.hpp" FileName="Linear~1.hpp|LinearClockModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\LinearClockModel.hpp" SelfReg="false" Sequence="158"/>
+ <ROW File="LoopedFramework.hpp" Component_="AlmanacStore.hpp" FileName="Looped~1.hpp|LoopedFramework.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\LoopedFramework.hpp" SelfReg="false" Sequence="159"/>
+ <ROW File="MDPHeader.hpp" Component_="AlmanacStore.hpp" FileName="MDPHea~1.hpp|MDPHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MDPHeader.hpp" SelfReg="false" Sequence="167"/>
+ <ROW File="MDPNavSubframe.hpp" Component_="AlmanacStore.hpp" FileName="MDPNav~1.hpp|MDPNavSubframe.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MDPNavSubframe.hpp" SelfReg="false" Sequence="168"/>
+ <ROW File="MDPObsEpoch.hpp" Component_="AlmanacStore.hpp" FileName="MDPObs~1.hpp|MDPObsEpoch.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MDPObsEpoch.hpp" SelfReg="false" Sequence="169"/>
+ <ROW File="MDPPVTSolution.hpp" Component_="AlmanacStore.hpp" FileName="MDPPVT~1.hpp|MDPPVTSolution.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MDPPVTSolution.hpp" SelfReg="false" Sequence="170"/>
+ <ROW File="MDPSelftestStatus.hpp" Component_="AlmanacStore.hpp" FileName="MDPSel~1.hpp|MDPSelftestStatus.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MDPSelftestStatus.hpp" SelfReg="false" Sequence="171"/>
+ <ROW File="MJD.hpp" Component_="AlmanacStore.hpp" FileName="MJD.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MJD.hpp" SelfReg="false" Sequence="176"/>
+ <ROW File="MOPSWeight.hpp" Component_="AlmanacStore.hpp" FileName="MOPSWe~1.hpp|MOPSWeight.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MOPSWeight.hpp" SelfReg="false" Sequence="180"/>
+ <ROW File="MSCData.hpp" Component_="AlmanacStore.hpp" FileName="MSCData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MSCData.hpp" SelfReg="false" Sequence="181"/>
+ <ROW File="MSCStream.hpp" Component_="AlmanacStore.hpp" FileName="MSCStr~1.hpp|MSCStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MSCStream.hpp" SelfReg="false" Sequence="182"/>
+ <ROW File="MWCSDetector.hpp" Component_="AlmanacStore.hpp" FileName="MWCSDe~1.hpp|MWCSDetector.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MWCSDetector.hpp" SelfReg="false" Sequence="183"/>
+ <ROW File="MathBase.hpp" Component_="AlmanacStore.hpp" FileName="MathBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MathBase.hpp" SelfReg="false" Sequence="160"/>
+ <ROW File="Matrix.hpp" Component_="AlmanacStore.hpp" FileName="Matrix.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Matrix.hpp" SelfReg="false" Sequence="161"/>
+ <ROW File="MatrixBase.hpp" Component_="AlmanacStore.hpp" FileName="Matrix~1.hpp|MatrixBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MatrixBase.hpp" SelfReg="false" Sequence="162"/>
+ <ROW File="MatrixBaseOperators.hpp" Component_="AlmanacStore.hpp" FileName="Matrix~2.hpp|MatrixBaseOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MatrixBaseOperators.hpp" SelfReg="false" Sequence="163"/>
+ <ROW File="MatrixFunctors.hpp" Component_="AlmanacStore.hpp" FileName="Matrix~3.hpp|MatrixFunctors.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MatrixFunctors.hpp" SelfReg="false" Sequence="164"/>
+ <ROW File="MatrixImplementation.hpp" Component_="AlmanacStore.hpp" FileName="Matrix~4.hpp|MatrixImplementation.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MatrixImplementation.hpp" SelfReg="false" Sequence="165"/>
+ <ROW File="MatrixOperators.hpp" Component_="AlmanacStore.hpp" FileName="Matrix~5.hpp|MatrixOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MatrixOperators.hpp" SelfReg="false" Sequence="166"/>
+ <ROW File="MetReader.hpp" Component_="AlmanacStore.hpp" FileName="MetRea~1.hpp|MetReader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MetReader.hpp" SelfReg="false" Sequence="173"/>
+ <ROW File="MiscMath.hpp" Component_="AlmanacStore.hpp" FileName="MiscMath.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\MiscMath.hpp" SelfReg="false" Sequence="175"/>
+ <ROW File="ModeledPR.hpp" Component_="AlmanacStore.hpp" FileName="Modele~1.hpp|ModeledPR.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ModeledPR.hpp" SelfReg="false" Sequence="177"/>
+ <ROW File="ModeledPseudorangeBase.hpp" Component_="AlmanacStore.hpp" FileName="Modele~2.hpp|ModeledPseudorangeBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ModeledPseudorangeBase.hpp" SelfReg="false" Sequence="178"/>
+ <ROW File="ModeledReferencePR.hpp" Component_="AlmanacStore.hpp" FileName="Modele~3.hpp|ModeledReferencePR.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ModeledReferencePR.hpp" SelfReg="false" Sequence="179"/>
+ <ROW File="NavMerge.exe" Component_="NavMerge.exe" FileName="NavMerge.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\NavMerge.exe" SelfReg="false" Sequence="22"/>
+ <ROW File="ORDEpoch.hpp" Component_="AlmanacStore.hpp" FileName="ORDEpoch.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ORDEpoch.hpp" SelfReg="false" Sequence="191"/>
+ <ROW File="ObsClockModel.hpp" Component_="AlmanacStore.hpp" FileName="ObsClo~1.hpp|ObsClockModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ObsClockModel.hpp" SelfReg="false" Sequence="184"/>
+ <ROW File="ObsEpochMap.hpp" Component_="AlmanacStore.hpp" FileName="ObsEpo~1.hpp|ObsEpochMap.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ObsEpochMap.hpp" SelfReg="false" Sequence="185"/>
+ <ROW File="ObsID.hpp" Component_="AlmanacStore.hpp" FileName="ObsID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ObsID.hpp" SelfReg="false" Sequence="186"/>
+ <ROW File="ObsReader.hpp" Component_="AlmanacStore.hpp" FileName="ObsRea~1.hpp|ObsReader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ObsReader.hpp" SelfReg="false" Sequence="187"/>
+ <ROW File="ObsRngDev.hpp" Component_="AlmanacStore.hpp" FileName="ObsRng~1.hpp|ObsRngDev.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ObsRngDev.hpp" SelfReg="false" Sequence="188"/>
+ <ROW File="ObsUtils.hpp" Component_="AlmanacStore.hpp" FileName="ObsUtils.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ObsUtils.hpp" SelfReg="false" Sequence="189"/>
+ <ROW File="OneFreqCSDetector.hpp" Component_="AlmanacStore.hpp" FileName="OneFre~1.hpp|OneFreqCSDetector.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\OneFreqCSDetector.hpp" SelfReg="false" Sequence="190"/>
+ <ROW File="PCSmoother.hpp" Component_="AlmanacStore.hpp" FileName="PCSmoo~1.hpp|PCSmoother.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\PCSmoother.hpp" SelfReg="false" Sequence="193"/>
+ <ROW File="PCodeConst.hpp" Component_="AlmanacStore.hpp" FileName="PCodeC~1.hpp|PCodeConst.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\PCodeConst.hpp" SelfReg="false" Sequence="192"/>
+ <ROW File="PRSolution.hpp" Component_="AlmanacStore.hpp" FileName="PRSolu~1.hpp|PRSolution.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\PRSolution.hpp" SelfReg="false" Sequence="196"/>
+ <ROW File="PRSolve.exe" Component_="PRSolve.exe" FileName="PRSolve.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\PRSolve.exe" SelfReg="false" Sequence="26"/>
+ <ROW File="PolyFit.hpp" Component_="AlmanacStore.hpp" FileName="PolyFit.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\PolyFit.hpp" SelfReg="false" Sequence="194"/>
+ <ROW File="Position.hpp" Component_="AlmanacStore.hpp" FileName="Position.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Position.hpp" SelfReg="false" Sequence="195"/>
+ <ROW File="RACRotation.hpp" Component_="AlmanacStore.hpp" FileName="RACRot~1.hpp|RACRotation.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RACRotation.hpp" SelfReg="false" Sequence="197"/>
+ <ROW File="RTFileFrame.hpp" Component_="AlmanacStore.hpp" FileName="RTFile~1.hpp|RTFileFrame.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RTFileFrame.hpp" SelfReg="false" Sequence="219"/>
+ <ROW File="ResCor.exe" Component_="ResCor.exe" FileName="ResCor.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ResCor.exe" SelfReg="false" Sequence="27"/>
+ <ROW File="RinSum.exe" Component_="RinSum.exe" FileName="RinSum.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\RinSum.exe" SelfReg="false" Sequence="31"/>
+ <ROW File="RinexConverters.hpp" Component_="AlmanacStore.hpp" FileName="RinexC~1.hpp|RinexConverters.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexConverters.hpp" SelfReg="false" Sequence="199"/>
+ <ROW File="RinexDump.exe" Component_="RinexDump.exe" FileName="RinexD~1.exe|RinexDump.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\RinexDump.exe" SelfReg="false" Sequence="28"/>
+ <ROW File="RinexEphemerisStore.hpp" Component_="AlmanacStore.hpp" FileName="RinexE~1.hpp|RinexEphemerisStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexEphemerisStore.hpp" SelfReg="false" Sequence="200"/>
+ <ROW File="RinexMetBase.hpp" Component_="AlmanacStore.hpp" FileName="RinexM~1.hpp|RinexMetBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexMetBase.hpp" SelfReg="false" Sequence="201"/>
+ <ROW File="RinexMetData.hpp" Component_="AlmanacStore.hpp" FileName="RinexM~2.hpp|RinexMetData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexMetData.hpp" SelfReg="false" Sequence="202"/>
+ <ROW File="RinexMetFilterOperators.hpp" Component_="AlmanacStore.hpp" FileName="RinexM~3.hpp|RinexMetFilterOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexMetFilterOperators.hpp" SelfReg="false" Sequence="203"/>
+ <ROW File="RinexMetHeader.hpp" Component_="AlmanacStore.hpp" FileName="RinexM~4.hpp|RinexMetHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexMetHeader.hpp" SelfReg="false" Sequence="204"/>
+ <ROW File="RinexMetStream.hpp" Component_="AlmanacStore.hpp" FileName="RinexM~5.hpp|RinexMetStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexMetStream.hpp" SelfReg="false" Sequence="205"/>
+ <ROW File="RinexNavBase.hpp" Component_="AlmanacStore.hpp" FileName="RinexN~1.hpp|RinexNavBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexNavBase.hpp" SelfReg="false" Sequence="206"/>
+ <ROW File="RinexNavData.hpp" Component_="AlmanacStore.hpp" FileName="RinexN~2.hpp|RinexNavData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexNavData.hpp" SelfReg="false" Sequence="207"/>
+ <ROW File="RinexNavFilterOperators.hpp" Component_="AlmanacStore.hpp" FileName="RinexN~3.hpp|RinexNavFilterOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexNavFilterOperators.hpp" SelfReg="false" Sequence="208"/>
+ <ROW File="RinexNavHeader.hpp" Component_="AlmanacStore.hpp" FileName="RinexN~4.hpp|RinexNavHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexNavHeader.hpp" SelfReg="false" Sequence="209"/>
+ <ROW File="RinexNavStream.hpp" Component_="AlmanacStore.hpp" FileName="RinexN~5.hpp|RinexNavStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexNavStream.hpp" SelfReg="false" Sequence="210"/>
+ <ROW File="RinexObsBase.hpp" Component_="AlmanacStore.hpp" FileName="RinexO~1.hpp|RinexObsBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexObsBase.hpp" SelfReg="false" Sequence="211"/>
+ <ROW File="RinexObsData.hpp" Component_="AlmanacStore.hpp" FileName="RinexO~2.hpp|RinexObsData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexObsData.hpp" SelfReg="false" Sequence="212"/>
+ <ROW File="RinexObsFilterOperators.hpp" Component_="AlmanacStore.hpp" FileName="RinexO~3.hpp|RinexObsFilterOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexObsFilterOperators.hpp" SelfReg="false" Sequence="213"/>
+ <ROW File="RinexObsHeader.hpp" Component_="AlmanacStore.hpp" FileName="RinexO~4.hpp|RinexObsHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexObsHeader.hpp" SelfReg="false" Sequence="214"/>
+ <ROW File="RinexObsID.hpp" Component_="AlmanacStore.hpp" FileName="RinexO~5.hpp|RinexObsID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexObsID.hpp" SelfReg="false" Sequence="215"/>
+ <ROW File="RinexObsStream.hpp" Component_="AlmanacStore.hpp" FileName="RinexO~6.hpp|RinexObsStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexObsStream.hpp" SelfReg="false" Sequence="216"/>
+ <ROW File="RinexSatID.hpp" Component_="AlmanacStore.hpp" FileName="RinexS~1.hpp|RinexSatID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexSatID.hpp" SelfReg="false" Sequence="217"/>
+ <ROW File="RinexUtilities.hpp" Component_="AlmanacStore.hpp" FileName="RinexU~1.hpp|RinexUtilities.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RinexUtilities.hpp" SelfReg="false" Sequence="218"/>
+ <ROW File="RungeKutta4.hpp" Component_="AlmanacStore.hpp" FileName="RungeK~1.hpp|RungeKutta4.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\RungeKutta4.hpp" SelfReg="false" Sequence="220"/>
+ <ROW File="SEMAlmanacStore.hpp" Component_="AlmanacStore.hpp" FileName="SEMAlm~1.hpp|SEMAlmanacStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SEMAlmanacStore.hpp" SelfReg="false" Sequence="222"/>
+ <ROW File="SEMBase.hpp" Component_="AlmanacStore.hpp" FileName="SEMBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SEMBase.hpp" SelfReg="false" Sequence="223"/>
+ <ROW File="SEMData.hpp" Component_="AlmanacStore.hpp" FileName="SEMData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SEMData.hpp" SelfReg="false" Sequence="224"/>
+ <ROW File="SEMHeader.hpp" Component_="AlmanacStore.hpp" FileName="SEMHea~1.hpp|SEMHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SEMHeader.hpp" SelfReg="false" Sequence="225"/>
+ <ROW File="SEMStream.hpp" Component_="AlmanacStore.hpp" FileName="SEMStr~1.hpp|SEMStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SEMStream.hpp" SelfReg="false" Sequence="226"/>
+ <ROW File="SMODFData.hpp" Component_="AlmanacStore.hpp" FileName="SMODFD~1.hpp|SMODFData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SMODFData.hpp" SelfReg="false" Sequence="229"/>
+ <ROW File="SMODFStream.hpp" Component_="AlmanacStore.hpp" FileName="SMODFS~1.hpp|SMODFStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SMODFStream.hpp" SelfReg="false" Sequence="230"/>
+ <ROW File="SP3Base.hpp" Component_="AlmanacStore.hpp" FileName="SP3Base.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SP3Base.hpp" SelfReg="false" Sequence="235"/>
+ <ROW File="SP3Data.hpp" Component_="AlmanacStore.hpp" FileName="SP3Data.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SP3Data.hpp" SelfReg="false" Sequence="236"/>
+ <ROW File="SP3EphemerisStore.hpp" Component_="AlmanacStore.hpp" FileName="SP3Eph~1.hpp|SP3EphemerisStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SP3EphemerisStore.hpp" SelfReg="false" Sequence="237"/>
+ <ROW File="SP3Header.hpp" Component_="AlmanacStore.hpp" FileName="SP3Hea~1.hpp|SP3Header.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SP3Header.hpp" SelfReg="false" Sequence="238"/>
+ <ROW File="SP3SatID.hpp" Component_="AlmanacStore.hpp" FileName="SP3SatID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SP3SatID.hpp" SelfReg="false" Sequence="239"/>
+ <ROW File="SP3Stream.hpp" Component_="AlmanacStore.hpp" FileName="SP3Str~1.hpp|SP3Stream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SP3Stream.hpp" SelfReg="false" Sequence="240"/>
+ <ROW File="SVExclusionList.hpp" Component_="AlmanacStore.hpp" FileName="SVExcl~1.hpp|SVExclusionList.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SVExclusionList.hpp" SelfReg="false" Sequence="244"/>
+ <ROW File="SVPCodeGen.hpp" Component_="AlmanacStore.hpp" FileName="SVPCod~1.hpp|SVPCodeGen.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SVPCodeGen.hpp" SelfReg="false" Sequence="245"/>
+ <ROW File="SatID.hpp" Component_="AlmanacStore.hpp" FileName="SatID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SatID.hpp" SelfReg="false" Sequence="221"/>
+ <ROW File="SimpleFilter.hpp" Component_="AlmanacStore.hpp" FileName="Simple~1.hpp|SimpleFilter.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SimpleFilter.hpp" SelfReg="false" Sequence="227"/>
+ <ROW File="SimpleIURAWeight.hpp" Component_="AlmanacStore.hpp" FileName="Simple~2.hpp|SimpleIURAWeight.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SimpleIURAWeight.hpp" SelfReg="false" Sequence="228"/>
+ <ROW File="SolverBase.hpp" Component_="AlmanacStore.hpp" FileName="Solver~1.hpp|SolverBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SolverBase.hpp" SelfReg="false" Sequence="231"/>
+ <ROW File="SolverLMS.hpp" Component_="AlmanacStore.hpp" FileName="Solver~2.hpp|SolverLMS.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SolverLMS.hpp" SelfReg="false" Sequence="232"/>
+ <ROW File="SolverWMS.hpp" Component_="AlmanacStore.hpp" FileName="Solver~3.hpp|SolverWMS.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SolverWMS.hpp" SelfReg="false" Sequence="233"/>
+ <ROW File="SourceID.hpp" Component_="AlmanacStore.hpp" FileName="SourceID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SourceID.hpp" SelfReg="false" Sequence="234"/>
+ <ROW File="Stats.hpp" Component_="AlmanacStore.hpp" FileName="Stats.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Stats.hpp" SelfReg="false" Sequence="241"/>
+ <ROW File="StringUtils.hpp" Component_="AlmanacStore.hpp" FileName="String~1.hpp|StringUtils.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\StringUtils.hpp" SelfReg="false" Sequence="243"/>
+ <ROW File="SystemTime.hpp" Component_="AlmanacStore.hpp" FileName="System~1.hpp|SystemTime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\SystemTime.hpp" SelfReg="false" Sequence="246"/>
+ <ROW File="TCPStream.hpp" Component_="AlmanacStore.hpp" FileName="TCPStr~1.hpp|TCPStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TCPStream.hpp" SelfReg="false" Sequence="248"/>
+ <ROW File="TCPStreamBuff.hpp" Component_="AlmanacStore.hpp" FileName="TCPStr~2.hpp|TCPStreamBuff.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TCPStreamBuff.hpp" SelfReg="false" Sequence="249"/>
+ <ROW File="TECMaps.exe" Component_="TECMaps.exe" FileName="TECMaps.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\TECMaps.exe" SelfReg="false" Sequence="40"/>
+ <ROW File="TabularEphemerisStore.hpp" Component_="AlmanacStore.hpp" FileName="Tabula~1.hpp|TabularEphemerisStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TabularEphemerisStore.hpp" SelfReg="false" Sequence="247"/>
+ <ROW File="TimeConstants.hpp" Component_="AlmanacStore.hpp" FileName="TimeCo~1.hpp|TimeConstants.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TimeConstants.hpp" SelfReg="false" Sequence="250"/>
+ <ROW File="TimeConverters.hpp" Component_="AlmanacStore.hpp" FileName="TimeCo~2.hpp|TimeConverters.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TimeConverters.hpp" SelfReg="false" Sequence="251"/>
+ <ROW File="TimeNamedFileStream.hpp" Component_="AlmanacStore.hpp" FileName="TimeNa~1.hpp|TimeNamedFileStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TimeNamedFileStream.hpp" SelfReg="false" Sequence="252"/>
+ <ROW File="TimeString.hpp" Component_="AlmanacStore.hpp" FileName="TimeSt~1.hpp|TimeString.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TimeString.hpp" SelfReg="false" Sequence="253"/>
+ <ROW File="TimeTag.hpp" Component_="AlmanacStore.hpp" FileName="TimeTag.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TimeTag.hpp" SelfReg="false" Sequence="254"/>
+ <ROW File="Triple.hpp" Component_="AlmanacStore.hpp" FileName="Triple.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Triple.hpp" SelfReg="false" Sequence="255"/>
+ <ROW File="TropModel.hpp" Component_="AlmanacStore.hpp" FileName="TropMo~1.hpp|TropModel.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TropModel.hpp" SelfReg="false" Sequence="256"/>
+ <ROW File="TypeID.hpp" Component_="AlmanacStore.hpp" FileName="TypeID.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\TypeID.hpp" SelfReg="false" Sequence="257"/>
+ <ROW File="UnixTime.hpp" Component_="AlmanacStore.hpp" FileName="UnixTime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\UnixTime.hpp" SelfReg="false" Sequence="258"/>
+ <ROW File="ValidType.hpp" Component_="AlmanacStore.hpp" FileName="ValidT~1.hpp|ValidType.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\ValidType.hpp" SelfReg="false" Sequence="259"/>
+ <ROW File="Vector.hpp" Component_="AlmanacStore.hpp" FileName="Vector.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Vector.hpp" SelfReg="false" Sequence="260"/>
+ <ROW File="VectorBase.hpp" Component_="AlmanacStore.hpp" FileName="Vector~1.hpp|VectorBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\VectorBase.hpp" SelfReg="false" Sequence="261"/>
+ <ROW File="VectorBaseOperators.hpp" Component_="AlmanacStore.hpp" FileName="Vector~2.hpp|VectorBaseOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\VectorBaseOperators.hpp" SelfReg="false" Sequence="262"/>
+ <ROW File="VectorOperators.hpp" Component_="AlmanacStore.hpp" FileName="Vector~3.hpp|VectorOperators.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\VectorOperators.hpp" SelfReg="false" Sequence="263"/>
+ <ROW File="WGS84Geoid.hpp" Component_="AlmanacStore.hpp" FileName="WGS84G~1.hpp|WGS84Geoid.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\WGS84Geoid.hpp" SelfReg="false" Sequence="265"/>
+ <ROW File="WeightBase.hpp" Component_="AlmanacStore.hpp" FileName="Weight~1.hpp|WeightBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\WeightBase.hpp" SelfReg="false" Sequence="264"/>
+ <ROW File="WxObsMap.hpp" Component_="AlmanacStore.hpp" FileName="WxObsMap.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\WxObsMap.hpp" SelfReg="false" Sequence="266"/>
+ <ROW File="X1Sequence.hpp" Component_="AlmanacStore.hpp" FileName="X1Sequ~1.hpp|X1Sequence.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\X1Sequence.hpp" SelfReg="false" Sequence="267"/>
+ <ROW File="X2Sequence.hpp" Component_="AlmanacStore.hpp" FileName="X2Sequ~1.hpp|X2Sequence.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\X2Sequence.hpp" SelfReg="false" Sequence="268"/>
+ <ROW File="XYZ2NED.hpp" Component_="AlmanacStore.hpp" FileName="XYZ2NED.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\XYZ2NED.hpp" SelfReg="false" Sequence="270"/>
+ <ROW File="XYZ2NEU.hpp" Component_="AlmanacStore.hpp" FileName="XYZ2NEU.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\XYZ2NEU.hpp" SelfReg="false" Sequence="271"/>
+ <ROW File="Xvt.hpp" Component_="AlmanacStore.hpp" FileName="Xvt.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\Xvt.hpp" SelfReg="false" Sequence="269"/>
+ <ROW File="YDSTime.hpp" Component_="AlmanacStore.hpp" FileName="YDSTime.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\YDSTime.hpp" SelfReg="false" Sequence="272"/>
+ <ROW File="YumaAlmanacStore.hpp" Component_="AlmanacStore.hpp" FileName="YumaAl~1.hpp|YumaAlmanacStore.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\YumaAlmanacStore.hpp" SelfReg="false" Sequence="273"/>
+ <ROW File="YumaBase.hpp" Component_="AlmanacStore.hpp" FileName="YumaBase.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\YumaBase.hpp" SelfReg="false" Sequence="274"/>
+ <ROW File="YumaData.hpp" Component_="AlmanacStore.hpp" FileName="YumaData.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\YumaData.hpp" SelfReg="false" Sequence="275"/>
+ <ROW File="YumaHeader.hpp" Component_="AlmanacStore.hpp" FileName="YumaHe~1.hpp|YumaHeader.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\YumaHeader.hpp" SelfReg="false" Sequence="276"/>
+ <ROW File="YumaStream.hpp" Component_="AlmanacStore.hpp" FileName="YumaSt~1.hpp|YumaStream.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\YumaStream.hpp" SelfReg="false" Sequence="277"/>
+ <ROW File="bc2sp3.exe" Component_="bc2sp3.exe" FileName="bc2sp3.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\bc2sp3.exe" SelfReg="false" Sequence="1"/>
+ <ROW File="calgps.exe" Component_="calgps.exe" FileName="calgps.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\calgps.exe" SelfReg="false" Sequence="2"/>
+ <ROW File="convhelp.hpp" Component_="AlmanacStore.hpp" FileName="convhelp.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\convhelp.hpp" SelfReg="false" Sequence="85"/>
+ <ROW File="ddmerge.exe" Component_="ddmerge.exe" FileName="ddmerge.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ddmerge.exe" SelfReg="false" Sequence="4"/>
+ <ROW File="ephdiff.exe" Component_="ephdiff.exe" FileName="ephdiff.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ephdiff.exe" SelfReg="false" Sequence="7"/>
+ <ROW File="fic2rin.exe" Component_="fic2rin.exe" FileName="fic2rin.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\fic2rin.exe" SelfReg="false" Sequence="8"/>
+ <ROW File="ficacheck.exe" Component_="ficacheck.exe" FileName="ficach~1.exe|ficacheck.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ficacheck.exe" SelfReg="false" Sequence="9"/>
+ <ROW File="ficafic.exe" Component_="ficafic.exe" FileName="ficafic.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ficafic.exe" SelfReg="false" Sequence="10"/>
+ <ROW File="ficcheck.exe" Component_="ficcheck.exe" FileName="ficcheck.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ficcheck.exe" SelfReg="false" Sequence="11"/>
+ <ROW File="ficdiff.exe" Component_="ficdiff.exe" FileName="ficdiff.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ficdiff.exe" SelfReg="false" Sequence="12"/>
+ <ROW File="ficfica.exe" Component_="ficfica.exe" FileName="ficfica.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\ficfica.exe" SelfReg="false" Sequence="13"/>
+ <ROW File="geometry.hpp" Component_="AlmanacStore.hpp" FileName="geometry.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\geometry.hpp" SelfReg="false" Sequence="142"/>
+ <ROW File="getopt.h" Component_="AlmanacStore.hpp" FileName="getopt.h" Attributes="0" SourcePath="..\..\..\Test\install\include\getopt.h" SelfReg="false" Sequence="143"/>
+ <ROW File="gps_constants.hpp" Component_="AlmanacStore.hpp" FileName="gps_co~1.hpp|gps_constants.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\gps_constants.hpp" SelfReg="false" Sequence="152"/>
+ <ROW File="gpstk.lib" Component_="gpstk.lib" FileName="gpstk.lib" Attributes="0" SourcePath="..\..\..\Test\install\lib\gpstk.lib" SelfReg="false" Sequence="278"/>
+ <ROW File="gpstk_user_reference.pdf" Component_="gpstk_user_reference.pdf_1" FileName="gpstk-~1.pdf|gpstk-user-reference.pdf" Attributes="0" SourcePath="..\usersguide\gpstk-user-reference.pdf" SelfReg="false" Sequence="279"/>
+ <ROW File="gpstkplatform.h" Component_="AlmanacStore.hpp" FileName="gpstkp~1.h|gpstkplatform.h" Attributes="0" SourcePath="..\..\..\Test\install\include\gpstkplatform.h" SelfReg="false" Sequence="146"/>
+ <ROW File="icd_200_constants.hpp" Component_="AlmanacStore.hpp" FileName="icd_20~1.hpp|icd_200_constants.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\icd_200_constants.hpp" SelfReg="false" Sequence="153"/>
+ <ROW File="mergeFIC.exe" Component_="mergeFIC.exe" FileName="mergeFIC.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\mergeFIC.exe" SelfReg="false" Sequence="15"/>
+ <ROW File="mergePCodeWords.h" Component_="AlmanacStore.hpp" FileName="mergeP~1.h|mergePCodeWords.h" Attributes="0" SourcePath="..\..\..\Test\install\include\mergePCodeWords.h" SelfReg="false" Sequence="172"/>
+ <ROW File="mergeRinMet.exe" Component_="mergeRinMet.exe" FileName="mergeR~1.exe|mergeRinMet.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\mergeRinMet.exe" SelfReg="false" Sequence="16"/>
+ <ROW File="mergeRinNav.exe" Component_="mergeRinNav.exe" FileName="mergeR~2.exe|mergeRinNav.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\mergeRinNav.exe" SelfReg="false" Sequence="17"/>
+ <ROW File="mergeRinObs.exe" Component_="mergeRinObs.exe" FileName="mergeR~3.exe|mergeRinObs.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\mergeRinObs.exe" SelfReg="false" Sequence="18"/>
+ <ROW File="mergeSRI.exe" Component_="mergeSRI.exe" FileName="mergeSRI.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\mergeSRI.exe" SelfReg="false" Sequence="19"/>
+ <ROW File="miscenum.hpp" Component_="AlmanacStore.hpp" FileName="miscenum.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\miscenum.hpp" SelfReg="false" Sequence="174"/>
+ <ROW File="mpsolve.exe" Component_="mpsolve.exe" FileName="mpsolve.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\mpsolve.exe" SelfReg="false" Sequence="20"/>
+ <ROW File="navdmp.exe" Component_="navdmp.exe" FileName="navdmp.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\navdmp.exe" SelfReg="false" Sequence="21"/>
+ <ROW File="novaRinex.exe" Component_="novaRinex.exe" FileName="novaRi~1.exe|novaRinex.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\novaRinex.exe" SelfReg="false" Sequence="23"/>
+ <ROW File="posInterp.exe" Component_="posInterp.exe" FileName="posInt~1.exe|posInterp.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\posInterp.exe" SelfReg="false" Sequence="25"/>
+ <ROW File="poscvt.exe" Component_="poscvt.exe" FileName="poscvt.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\poscvt.exe" SelfReg="false" Sequence="24"/>
+ <ROW File="regex.h" Component_="AlmanacStore.hpp" FileName="regex.h" Attributes="0" SourcePath="..\..\..\Test\install\include\regex.h" SelfReg="false" Sequence="198"/>
+ <ROW File="rinexpvt.exe" Component_="rinexpvt.exe" FileName="rinexpvt.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rinexpvt.exe" SelfReg="false" Sequence="29"/>
+ <ROW File="rinexthin.exe" Component_="rinexthin.exe" FileName="rinext~1.exe|rinexthin.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rinexthin.exe" SelfReg="false" Sequence="30"/>
+ <ROW File="rmwcheck.exe" Component_="rmwcheck.exe" FileName="rmwcheck.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rmwcheck.exe" SelfReg="false" Sequence="32"/>
+ <ROW File="rmwdiff.exe" Component_="rmwdiff.exe" FileName="rmwdiff.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rmwdiff.exe" SelfReg="false" Sequence="33"/>
+ <ROW File="rnwcheck.exe" Component_="rnwcheck.exe" FileName="rnwcheck.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rnwcheck.exe" SelfReg="false" Sequence="34"/>
+ <ROW File="rnwdiff.exe" Component_="rnwdiff.exe" FileName="rnwdiff.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rnwdiff.exe" SelfReg="false" Sequence="35"/>
+ <ROW File="rowcheck.exe" Component_="rowcheck.exe" FileName="rowcheck.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rowcheck.exe" SelfReg="false" Sequence="36"/>
+ <ROW File="rowdiff.exe" Component_="rowdiff.exe" FileName="rowdiff.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rowdiff.exe" SelfReg="false" Sequence="37"/>
+ <ROW File="rstats.exe" Component_="rstats.exe" FileName="rstats.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\rstats.exe" SelfReg="false" Sequence="38"/>
+ <ROW File="sp3version.exe" Component_="sp3version.exe" FileName="sp3ver~1.exe|sp3version.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\sp3version.exe" SelfReg="false" Sequence="39"/>
+ <ROW File="stl_helpers.hpp" Component_="AlmanacStore.hpp" FileName="stl_he~1.hpp|stl_helpers.hpp" Attributes="0" SourcePath="..\..\..\Test\install\include\stl_helpers.hpp" SelfReg="false" Sequence="242"/>
+ <ROW File="timeconvert.exe" Component_="timeconvert.exe" FileName="timeco~1.exe|timeconvert.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\timeconvert.exe" SelfReg="false" Sequence="41"/>
+ <ROW File="tnl.exe" Component_="tnl.exe" FileName="tnl.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\tnl.exe" SelfReg="false" Sequence="42"/>
+ <ROW File="tsrif.exe" Component_="tsrif.exe" FileName="tsrif.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\tsrif.exe" SelfReg="false" Sequence="43"/>
+ <ROW File="tsrifsu.exe" Component_="tsrifsu.exe" FileName="tsrifsu.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\tsrifsu.exe" SelfReg="false" Sequence="44"/>
+ <ROW File="tsriftu.exe" Component_="tsriftu.exe" FileName="tsriftu.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\tsriftu.exe" SelfReg="false" Sequence="45"/>
+ <ROW File="vecsol.exe" Component_="vecsol.exe" FileName="vecsol.exe" Attributes="0" SourcePath="..\..\..\Test\install\bin\vecsol.exe" SelfReg="false" Sequence="46"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
+ <ROW BuildName="DefaultBuild" BuildOrder="1" BuildType="0" InstallationType="4"/>
+ <ATTRIBUTE name="CurrentBuild" value="DefaultBuild"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
+ <ROW Path="<ui.ail>"/>
+ <ROW Path="<ui_en.ail>"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
+ <ROW Fragment="FolderDlg.aip" Path="<FolderDlg.aip>"/>
+ <ROW Fragment="StaticUIStrings.aip" Path="<StaticUIStrings.aip>"/>
+ <ROW Fragment="UI.aip" Path="<UI.aip>"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
+ <ROW Name="aicustact.dll" SourcePath="<aicustact.dll>"/>
+ <ROW Name="default_banner.bmp" SourcePath="<default-banner.bmp>"/>
+ <ROW Name="default_dialog.bmp" SourcePath="<default-dialog.bmp>"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiControlComponent">
+ <ATTRIBUTE name="FixedSizeBitmaps" value="0"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
+ <ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
+ <ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
+ <ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="3"/>
+ <ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
+ <ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="2"/>
+ <ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="1"/>
+ <ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="3"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
+ <ROW Directory_="APPDIR" Component_="APPDIR"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
+ <ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
+ <ROW Action="AI_PREPARE_UPGRADE" Type="1" Source="aicustact.dll" Target="PrepareUpgrade"/>
+ <ROW Action="AI_RESTORE_LOCATION" Type="1" Source="aicustact.dll" Target="RestoreLocation"/>
+ <ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
+ <ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[ProgramFilesFolder]\[ProductName]"/>
+ <ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
+ <ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiEnvComponent">
+ <ROW Environment="PATH" Name="+*PATH" Value="[~];[ProgramFilesFolder][ProductName]\bin" Component_="PRSolve.exe"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiIniFileComponent">
+ <ROW IniFile="URL" FileName="GPSTkW~1.url|GPSTk Website.url" DirProperty="SHORTCUTDIR" Section="InternetShortcut" Key="URL" Value="http://www.gpstk.org/" Action="0" Component_="PRSolve.exe"/>
+ <ROW IniFile="WorkingDirectory" FileName="GPSTkW~1.url|GPSTk Website.url" DirProperty="SHORTCUTDIR" Section="InternetShortcut" Key="WorkingDirectory" Value="[SHORTCUTDIR]" Action="0" Component_="PRSolve.exe"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
+ <ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
+ <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
+ <ROW Action="AI_STORE_LOCATION" Condition="Not Installed" Sequence="1545"/>
+ <ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1300"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
+ <ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="740"/>
+ </COMPONENT>
+ <COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
+ <ROW UpgradeCode="[|UpgradeCode]" VersionMax="[|ProductVersion]" Attributes="1025" ActionProperty="OLDPRODUCTS"/>
+ <ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
+ </COMPONENT>
+</DOCUMENT>
diff --git a/ref/glance/colortbl.dtx b/ref/glance/colortbl.dtx
new file mode 100644
index 0000000..b5a5a22
--- /dev/null
+++ b/ref/glance/colortbl.dtx
@@ -0,0 +1,1296 @@
+% \iffalse
+%%
+%% Source File: `colortbl.dtx'.
+%% Copyright 1996 1998 1999 David Carlisle
+%%
+%% This file may be distributed under the terms of the LPPL.
+%% See 00readme.txt for details.
+%%
+%
+%<*dtx>
+ \ProvidesFile{colortbl.dtx}
+%</dtx>
+%<package>\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+%<package>\ProvidesPackage{colortbl}
+%<driver>\ProvidesFile{colortbl.drv}
+% \fi
+% \ProvidesFile{colortbl.dtx}
+ [2001/02/13 v0.1j Color table columns (DPC)]
+%
+% \iffalse
+%<*driver>
+\documentclass{ltxdoc}
+\usepackage
+% [debugshow]
+ {colortbl}
+\usepackage{dcolumn,longtable,hhline}
+\setlongtables% in case an old copy of longtable is being used.
+\begin{document}
+\DeleteShortVerb{\|}
+\MakeShortVerb{\"}
+\DocInput{colortbl.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \GetFileInfo{colortbl.dtx}
+% \title{The \textsf{colortbl} package\thanks{This file
+% has version number \fileversion, last
+% revised \filedate.}}
+% \author{David Carlisle}
+% \date{\filedate}
+%
+% \maketitle
+%
+% \CheckSum{941}
+%
+%
+% \begin{abstract}
+% This package implements a flexibable mechanism for giving colured
+% `panels' behind specified columns in a table.
+% This package requires the \textsf{array} and \textsf{color} packages.
+% \end{abstract}
+%
+% \changes{v0.1}{1996/09/20}{First draft}
+% \changes{v0.1a}{1996/09/21}{Started documentation in doc format}
+% \changes{v0.1b}{1996/09/22}
+% {New scheme: redefine \cs{@classz} rather than just
+% simple \cs{newcolumntype} definition.}
+% \changes{v0.1c}{1996/09/24}
+% {Make overhang arguments optional (suggestion of S. Rahtz).}
+% \changes{v0.1d}{1996/10/05}
+% {\cs{rowcolor} added to make S. Rahtz happy.}
+% \changes{v0.1d}{1996/10/05}
+% {Add \cs{hline} \cs{hhline} and \cs{longtable} support
+% to make S. Rahtz even happier.}
+% \changes{v0.1e}{1996/10/06}
+% {Minor cleanup.}
+% \changes{v0.1f}{1996/10/10}
+% {Better \cs{hhline} and support nested constructs}
+% \changes{v0.1f}{1996/10/12}
+% {0.1f, first public version, had a missing percent....}
+% \changes{v0.1i}{1999/03/24}
+% {LPPL}
+% \changes{v0.1j}{2001/02/13}{\cs{cellcolor} (Donald Arseneau)}
+%
+% \section{Introduction}
+%
+% This package is for colouring tables (i.e., giving coloured panels
+% behind column entries). In that it has many similarities with
+% Timothy Van Zandt's \textsf{colortab} package. The internal
+% implementation is quite different though, also \textsf{colortab}
+% works with the table constructs of other formats besides \LaTeX.
+% This package requires \LaTeX\ (and its \textsf{color} and
+% \textsf{array} packages).
+%
+% First, a standard \textsf{tabular}, for comparison.
+% \begin{center}
+%\begin{minipage}{.75\textwidth}
+%\begin{verbatim}
+% \begin{tabular}{|l|c|}
+% one&two\\
+% three&four
+% \end{tabular}
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular}{|l|c|}
+% one&two\\
+% three&four
+% \end{tabular}}
+% \end{center}
+%
+% \section{ The \cs{columncolor} command}
+%
+% The examples below demonstrate various possibilities of the
+% "\columncolor" command introduced by this package. The vertical rules
+% specified by "|" are kept in all the examples, to make the column
+% positioning clearer, although possibly you would not want coloured
+% panels \emph{and} vertical rules in practice.
+%
+% The package supplies a "\columncolor" command, that should (only) be
+% used in the argument of a ">" column specifier, to add a coloured
+% panel behind the specified column. It can be used in the main
+% `preamble' argument of \textsf{array} or \textsf{tabular}, and also in
+% "\multicolumn" specifiers.
+%
+% The basic format is:\\
+% "\columncolor"\oarg{color model}\marg{colour}
+% \oarg{left overhang}\oarg{right overhang}
+%
+% The first argument (or first two if the optional argument is used)
+% are standard \textsf{color} package arguments, as used by "\color".
+%
+% The last two arguments control how far the panel overlaps past the
+% widest entry in the column.
+% If the \emph{right overhang} argument is omitted then it defaults to
+% \emph{left overhang}. If they are both omitted they default to
+% "\tabcolsep" (in \textsf{tabular}) or "\arraycolsep"
+% (in \textsf{array}).
+%
+% If the overhangs are both set to "0pt" then the effect is:
+% \begin{center}
+%\begin{minipage}{.75\textwidth}
+%\begin{verbatim}
+%|>{\columncolor[gray]{.8}[0pt]}l|
+%>{\color{white}%
+% \columncolor[gray]{.2}[0pt]}l|
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular}{%
+% |>{\columncolor[gray]{.8}[0pt]}l|
+% >{\color{white}%
+% \columncolor[gray]{.2}[0pt]}l|
+% }
+% one&two\\
+% three&four
+% \end{tabular}}
+% \end{center}
+% The default overhang of "\tabcolsep" produces:
+%\begin{center}
+%\begin{minipage}{.75\textwidth}
+%\begin{verbatim}
+%|>{\columncolor[gray]{.8}}l|
+%>{\color{white}%
+% \columncolor[gray]{.2}}l|
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular}{%
+% |>{\columncolor[gray]{.8}}l|
+% >{\color{white}%
+% \columncolor[gray]{.2}}l|
+% }
+% one&two\\
+% three&four
+% \end{tabular}}
+% \end{center}
+% You might want something between these two extremes.
+% A value of ".5\tabcolsep" produces the following effect
+% \begin{center}
+%\begin{minipage}{.75\textwidth}
+%\begin{verbatim}
+%|>{\columncolor[gray]{.8}[.5\tabcolsep]}l|
+% >{\color{white}%
+% \columncolor[gray]{.2}[.5\tabcolsep]}l|
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular}{%
+% |>{\columncolor[gray]{.8}[.5\tabcolsep]}l|
+% >{\color{white}\columncolor[gray]{.2}[.5\tabcolsep]}l|
+% }
+% one&two\\
+% three&four
+% \end{tabular}}
+% \end{center}
+%
+%
+% This package should work with most other packages that are
+% compatible with the \textsf{array} package syntax. In particular it
+% works with \textsf{longtable} and \textsf{dcolumn}
+% as the following example shows.
+%\errorcontextlines10
+% \newcolumntype{A}{%^^A
+% >{\color{white}\columncolor{red}[.5\tabcolsep]%^^A
+% \raggedright}%
+% p{2cm}}
+% \newcolumntype{B}{%^^A
+% >{\columncolor{blue}[.5\tabcolsep]%^^A
+% \color{yellow}\raggedright}
+% p{3cm}}
+% \newcolumntype{E}{%^^A
+% >{\large\bfseries
+% \columncolor{cyan}[.5\tabcolsep]}c}
+% \newcolumntype{F}{%^^A
+% >{\color{white}
+% \columncolor{magenta}[.5\tabcolsep]}c}
+% \newcolumntype{G}{%^^A
+% >{\columncolor[gray]{0.8}[.5\tabcolsep][\tabcolsep]}l}
+% \newcolumntype{H}{>{\columncolor[gray]{0.8}}l}
+%
+%
+%^^A 3.3 (as used in the verbatim text below) is best but
+%^^A needs a June 96 version of dcolumn, so use -1 here.
+% \newcolumntype{C}{%
+% >{\columncolor{yellow}[.5\tabcolsep]}%
+% D{.}{\cdot}{-1}}
+% \newcolumntype{I}{%^^A
+% >{\columncolor[gray]{0.8}[\tabcolsep][.5\tabcolsep]}%^^A
+% D{.}{\cdot}{-1}}
+%
+% \setlength\minrowclearance{2pt}
+% Before starting give a little space: "\setlength\minrowclearance{2pt}"
+%
+% \begin{longtable}{ABC}
+% \multicolumn{3}{E}{A long table example}\\
+% \multicolumn{2}{F}{First two columns}&
+% \multicolumn{1}{F}{Third column}\\
+% \multicolumn{2}{F}{p-type}&
+% \multicolumn{1}{F}{D-type (\textsf{dcolumn})}\endfirsthead
+% \multicolumn{3}{E}{A long table example (continued)}\\
+% \multicolumn{2}{F}{First two columns}&
+% \multicolumn{1}{F}{Third column}\\
+% \multicolumn{2}{F}{p-type}&
+% \multicolumn{1}{F}{D-type (\textsf{dcolumn})}\endhead
+% \multicolumn{3}{E}{Continued\ldots}\endfoot
+% \multicolumn{3}{E}{The End}\endlastfoot
+% P-column&and another one&12.34\\
+% \multicolumn{1}{G}{Total}&
+% \multicolumn{1}{H}{(wrong)}&
+% \multicolumn{1}{I}{100.6}\\
+% Some long text in the first column&bbb&1.2\\
+% aaa&and some long text in the second column&1.345\\
+% \multicolumn{1}{G}{Total}&
+% \multicolumn{1}{H}{(wrong)}&
+% \multicolumn{1}{I}{100.6}\\
+% aaa&bbb&1.345\\
+% Note that the coloured rules in all columns stretch to accomodate
+% large entries in one column. &bbb&1.345\\
+% aaa&bbb&100\\
+% aaa&Depending on your driver you may get unsightly gaps or lines
+% where the `screens' used to produce different shapes interact
+% badly. You may want to cause adjacent panels of the same colour by
+% specifying a larger overhang
+% or by adding some negative space (in a "\noalign" between rows.&12.4\\
+% aaa&bbb&45.3\\
+% \end{longtable}
+%
+% This
+% example shows rather poor taste but is quite colourful!
+% Inspect the source file, "colortbl.dtx", to see the full code for
+% the example, but it uses the following column types.
+%\begin{verbatim}
+% \newcolumntype{A}{%
+% >{\color{white}\columncolor{red}[.5\tabcolsep]%
+% \raggedright}%
+% p{2cm}}
+% \newcolumntype{B}{%
+% >{\columncolor{blue}[.5\tabcolsep]%
+% \color{yellow}\raggedright}
+% p{3cm}}
+% \newcolumntype{C}{%
+% >{\columncolor{yellow}[.5\tabcolsep]}%
+% D{.}{\cdot}{3.3}}
+% \newcolumntype{E}{%
+% >{\large\bfseries
+% \columncolor{cyan}[.5\tabcolsep]}c}
+% \newcolumntype{F}{%
+% >{\color{white}
+% \columncolor{magenta}[.5\tabcolsep]}c}
+% \newcolumntype{G}{%
+% >{\columncolor[gray]{0.8}[.5\tabcolsep][\tabcolsep]}l}
+% \newcolumntype{H}{>{\columncolor[gray]{0.8}}l}
+% \newcolumntype{I}{%
+% >{\columncolor[gray]{0.8}[\tabcolsep][.5\tabcolsep]}%
+% D{.}{\cdot}{3.3}}
+%\end{verbatim}
+%
+% \section{Using the `overhang' arguments for \textsf{tabular*}}
+%
+% The above is all very well for \textsf{tabular}, but what about
+% \textsf{tabular*}?
+%
+% Here the problem is rather harder. Although \TeX's "\leader" mechanism
+% which is used by this package to insert the `stretchy' coloured panels
+% is rather like \emph{glue}, the "\tabskip" glue that is inserted
+% between columns of \textsf{tabular*} (and \textsf{longtable} for that
+% matter) has to be `real glue' and not `leaders'.
+%
+% Within limits the overhang options may be used here. Consider the
+% first table example above. If we use \textsf{tabular*} set to 3\,cm
+% with a preamble setting of
+% \begin{center}
+%\begin{minipage}{.6\textwidth}
+%\begin{verbatim}
+%\begin{tabular*}{3cm}{%
+%@{\extracolsep{\fill}}
+%>{\columncolor[gray]{.8}[0pt][20mm]}l
+%>{\columncolor[gray]{.8}[5mm][0pt]}l
+%@{}}
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular*}{3cm}{%
+% @{\extracolsep{\fill}}
+% >{\columncolor[gray]{.8}[0pt][20mm]}l
+% >{\columncolor[gray]{.8}[5mm][0pt]}l
+% @{}%
+% }
+% one&two\\
+% three&four
+% \end{tabular*}}
+% \end{center}
+%
+% Changing the specified width to 4\,cm works, but don't push your
+% luck to 5\,cm\ldots
+% \begin{center}
+% \bfseries
+% \begin{tabular*}{4cm}{%
+% @{\extracolsep{\fill}}
+% >{\columncolor[gray]{.8}[0pt][20mm]}l
+% >{\columncolor[gray]{.8}[5mm][0pt]}l
+% @{}%
+% }
+% one&two\\
+% three&four
+% \end{tabular*}\hfill
+% \begin{tabular*}{5cm}{%
+% @{\extracolsep{\fill}}
+% >{\columncolor[gray]{.8}[0pt][20mm]}l
+% >{\columncolor[gray]{.8}[5mm][0pt]}l
+% @{}%
+% }
+% one&two\\
+% three&four
+% \end{tabular*}
+% \end{center}
+%
+% \section{The \cs{rowcolor} command}
+%
+% As demonstrated above, one may change the colour of specified rows
+% of a table by the use of "\multicolumn" commands in each entry of
+% the row. However if your table is to be marked principally by
+% \emph{rows}, you may find this rather inconvenient. For this reason
+% a new mechanism, "\rowcolor", has been introduced\footnote{At some
+% cost to the internal complexity of this package}.
+%
+% "\rowcolor" takes the same argument forms as "\columncolor". It must
+% be used at the \emph{start} of a row. If the optional overhang
+% arguments are not used the overhangs will default to the overhangs
+% specified in any "\columncolor" comands for that column, or
+% "\tabcolsep" ("\arraycolsep" in \textsf{array}).
+%
+% If a table entry is in the scope of a "\columncolor" specified in the
+% table preamble, and also a "\rowcolor" at the start of the current
+% row, the colour specified by "\rowcolor" will take effect. A
+% "\multicolumn" command may contain ">{\rowcolor"\ldots\ which will
+% override the default colours for both the current row and column.
+% \begin{center}
+%\begin{minipage}{.75\textwidth}
+%\begin{verbatim}
+% \begin{tabular}{|l|c|}
+% \rowcolor[gray]{.9}
+% one&two\\
+% \rowcolor[gray]{.5}
+% three&four
+% \end{tabular}
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular}{|l|c|}
+% \rowcolor[gray]{.9}
+% one&two\\
+% \rowcolor[gray]{.5}
+% three&four
+% \end{tabular}}
+% \end{center}
+%
+% \section{The \cs{cellcolor} command}
+%
+% A background colour can be applied to a single cell of a table by
+% beginning it with
+% "\multicolumn"\nolinebreak[3]"{1}"\nolinebreak[3]"{>{\rowcolor"\ldots,
+% (or "\columncolor" if no row-colour is in effect) but this has some
+% deficiencies:
+% 1)~It prevents data within the cell from triggering the colouration; \
+% 2)~The alignment specification must be copied from the top of the tabular,
+% which is prone to errors, especially for "p{}" columns; \
+% 3)~"\multicolumn{1}" is just silly. \
+% Therefore, there is the \cs{cellcolor} command, which works like
+% \cs{columncolor} and \cs{rowcolor}, but over-rides both of them;
+% \cs{cellcolor} can be placed anywhere in the tabular cell to which
+% it applies.
+%
+% \section{Colouring rules.}
+%
+% So you want coloured rules as well?
+%
+% One could do vertical rules without any special commands, just use
+% something like "!{\color{green}\vline}" where you'd
+% normally use "|". The space between "||" will normally be left white.
+% If you want to colour that as well, either increase the overhang of
+% the previous column (to
+% "\tabcolsep" + "\arrayrulewidth" + "\doublerulesep")
+% Or remove the inter rule glue, and replace by a coloured rule of the
+% required thickness. So
+%\begin{verbatim}
+%!{\color{green}\vline}
+%@{\color{yellow}\vrule width \doublerulesep}
+%!{\color{green}\vline}
+%\end{verbatim}
+% Should give the same spacing as "||" but more colour.
+%
+% However colouring "\hline" and "\cline" is a bit more tricky, so
+% extra commands are provided (which then apply to vertical rules as
+% well).
+%
+% \section{\cs{arrayrulecolor}}
+% "\arrayrulecolor" takes the same arguments as "\color", and is a
+% global declaration which affects all following horizontal and
+% vertical rules in tables. It may be given outside any table, or at
+% the start of a row, or in a ">" specification in a table preamble.
+% You should note however that if given mid-table it only affects
+% rules that are specified after this point, any vertical rules
+% specified in the preamble will keep their original colours.
+%
+% \section{\cs{doublerulesepcolor}}
+% Having coloured your rules, you'll probably want something other
+% than white to go in the gaps made by "||" or "\hline\hline".
+% "\doublerulesepcolor" works just the same way as "\arrayrulecolor".
+% The main thing to note that if this command is used, then
+% \textsf{longtable} will not `discard' the space between
+% "\hline\hline" at a page break. (\TeX\ has a built-in ability to
+% discard space, but the coloured `space' which is used once
+% "\doublerulesep" is in effect is really a third rule of a different
+% colour to the two outer rules, and rules are rather harder to
+% discard.)
+%
+% \begin{center}
+% \setlength\arrayrulewidth{2pt}\arrayrulecolor{blue}
+% \setlength\doublerulesep{2pt}\doublerulesepcolor{yellow}
+%
+%\begin{minipage}{.75\textwidth}
+%\begin{verbatim}
+%\setlength\arrayrulewidth{2pt}\arrayrulecolor{blue}
+%\setlength\doublerulesep{2pt}\doublerulesepcolor{yellow}
+% \begin{tabular}{||l||c||}
+% \hline\hline
+% one&two\\
+% three&four\\
+% \hline\hline
+% \end{tabular}
+%\end{verbatim}
+%\end{minipage}
+% {\bfseries
+% \begin{tabular}{|l||c||}
+% \hline\hline
+% one&two\\
+% three&four\\
+% \hline\hline
+% \end{tabular}}
+% \end{center}
+%
+% \section{More fun with \cs{hhline}}
+% The above commands work with "\hhline" from the \textsf{hhline}
+% package, however if \textsf{hhline} is loaded in addition to this
+% package, a new possibility is added. You may use ">{"\ldots"}" to add
+% declarations that apply to the following "-" or "=" column rule.
+% In particular you may give "\arrayrulecolor" and
+% "\doublerulesepcolor" declarations in this argument.
+%
+% Most manuals of style warn against over use of rules in tables.
+% I hate to think what they would make of the following rainbow
+% example:
+% \begin{center}
+% \setlength\arrayrulewidth{5pt}
+% \setlength\doublerulesep{5pt}
+% \renewcommand{\arraystretch}{2}
+% \definecolor{orange}{cmyk}{0,0.61,0.87,0}
+% \definecolor{indigo}{cmyk}{0.8,0.9,0,0}
+% \definecolor{violet}{cmyk}{0.6,0.9,0,0}
+% \newcommand\rainbowline[1]{%^^A
+% \hhline{%^^A
+% >{\arrayrulecolor {red}\doublerulesepcolor[rgb]{.3,.3,1}}%^^A
+% |#1:=%^^A
+% >{\arrayrulecolor{orange}\doublerulesepcolor[rgb]{.4,.4,1}}%^^A
+% =%^^A
+% >{\arrayrulecolor{yellow}\doublerulesepcolor[rgb]{.5,.5,1}}%^^A
+% =%^^A
+% >{\arrayrulecolor {green}\doublerulesepcolor[rgb]{.6,.6,1}}%^^A
+% =%^^A
+% >{\arrayrulecolor {blue}\doublerulesepcolor[rgb]{.7,.7,1}}%^^A
+% =%^^A
+% >{\arrayrulecolor{indigo}\doublerulesepcolor[rgb]{.8,.8,1}}%^^A
+% =%^^A
+% >{\arrayrulecolor{violet}\doublerulesepcolor[rgb]{.9,.9,1}}%^^A
+% =:#1|%^^A
+% }}
+% \arrayrulecolor{red}
+% \doublerulesepcolor[rgb]{.3,.3,1}
+% \begin{tabular}{||*7{>{\columncolor[gray]{.9}}c}||}
+% \rainbowline{t}%^^A
+% \arrayrulecolor{violet}\doublerulesepcolor[rgb]{.9,.9,1}
+% Richard&of&York&gave&battle&in&
+% \multicolumn{1}{>{\columncolor[gray]{.9}}c||}{vain}\\
+% \rainbowline{}%^^A
+% 1&2&3&4&5&6&
+% \multicolumn{1}{>{\columncolor[gray]{.9}}c||}{7}\\
+% \rainbowline{b}%^^A
+% \end{tabular}
+% \end{center}
+%\begin{verbatim}
+% \newcommand\rainbowline[1]{%
+% \hhline{%
+% >{\arrayrulecolor {red}\doublerulesepcolor[rgb]{.3,.3,1}}%
+% |#1:=%
+% >{\arrayrulecolor{orange}\doublerulesepcolor[rgb]{.4,.4,1}}%
+% =%
+% >{\arrayrulecolor{yellow}\doublerulesepcolor[rgb]{.5,.5,1}}%
+% =%
+% >{\arrayrulecolor {green}\doublerulesepcolor[rgb]{.6,.6,1}}%
+% =%
+% >{\arrayrulecolor {blue}\doublerulesepcolor[rgb]{.7,.7,1}}%
+% =%
+% >{\arrayrulecolor{indigo}\doublerulesepcolor[rgb]{.8,.8,1}}%
+% =%
+% >{\arrayrulecolor{violet}\doublerulesepcolor[rgb]{.9,.9,1}}%
+% =:#1|%
+% }}
+% \arrayrulecolor{red}
+% \doublerulesepcolor[rgb]{.3,.3,1}%
+% \begin{tabular}{||*7{>{\columncolor[gray]{.9}}c}||}
+% \rainbowline{t}%
+% \arrayrulecolor{violet}\doublerulesepcolor[rgb]{.9,.9,1}
+% Richard&of&York&gave&battle&in&
+% \multicolumn{1}{>{\columncolor[gray]{.9}}c||}{vain}\\
+% \rainbowline{}%
+% 1&2&3&4&5&6&
+% \multicolumn{1}{>{\columncolor[gray]{.9}}c||}{7}\\
+% \rainbowline{b}%
+% \end{tabular}
+%\end{verbatim}
+%
+% \section{Less fun with \cs{cline}}
+% Lines produced by "\cline" are coloured if you use
+% "\arrayrulecolor" but you may not notice as they are covered up by
+% any colour pannels in the following row. This is a `feature' of
+% "\cline". If using this package you would probably better using the
+% "-" rule type in a "\hhline" argument, rather than "\cline".
+%
+% \section{The \cs{minrowclearance} command}
+%
+% As this package has to box and measure every entry to figure out
+% how wide to make the rules, I thought I may as well add the
+% following feature. `Large' entries in tables may touch a preceding
+% "\hline" or the top of a colour panel defined by this style.
+% It is best to increase "\extrarowsep" or "\arraystretch"
+% sufficiently to ensure this doesn't happen, as that will keep the
+% line spacing in the table regular. Sometimes however, you just want
+% to \LaTeX\ to insert a bit of extra space above a large entry.
+% You can set the length "\minrowclearance" to a small value.
+% (The height of a capital letter plus this value should not be
+% greater than the normal height of table rows, else a very uneven
+% table spacing will result.)
+%
+% Donald Arseneau's \textsf{tabls} packages provides a similar
+% "\tablinesep". I was going to give this the same name for
+% compatibility with \textsf{tabls}, but that is implemented quite
+% differently and probably has different behaviour. So I'll keep a new
+% name for now.
+%
+% \StopEventually{}
+%
+% \section{The Code}
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% Nasty hacky way used by all the graphics packages to include debugging
+% code.
+% \begin{macrocode}
+\edef\@tempa{%
+ \noexpand\AtEndOfPackage{%
+ \catcode`\noexpand\^^A\the\catcode`\^^A\relax}}
+\@tempa
+\catcode`\^^A=\catcode`\%
+\DeclareOption{debugshow}{\catcode`\^^A=9 }
+% \end{macrocode}
+%
+% All the other options are handled by the \textsf{color} package.
+% \begin{macrocode}
+\DeclareOption*{\PassOptionsToPackage\CurrentOption{color}}
+\ProcessOptions
+% \end{macrocode}
+%
+% I need these so load them now. Actually Mark Wooding's
+% \textsf{mdwtab} package could probably work instead of \textsf{array},
+% but currently I assume \textsf{array} package internals so\ldots
+% \begin{macrocode}
+\RequirePackage{array,color}
+% \end{macrocode}
+%
+%
+% \begin{macro}{\@classz}
+% "\@classz" is the main function in the \textsf{array} package handling
+% of primitive column types: It inserts the code for each of the column
+% specifiers, `"clrpmb"'. The other classes deal with the other preamble
+% tokens such as `"@" 'or `">"'.
+% \begin{macrocode}
+\def\@classz{\@classx
+ \@tempcnta \count@
+ \prepnext at tok
+% \end{macrocode}
+% At this point the colour specification for the background panel will
+% be in the code for the `">"' specification of this column. This is
+% saved in "\toks\@temptokena" but \textsf{array} will insert it too
+% late (well it would work for "c", but not for "p") so fish the colour
+% stuff out of that token register by hand, and then insert it around
+% the entry.
+%
+% Of course this is a terrible hack. What is really needed is a new
+% column type that inserts stuff in the right place (rather like "!"
+% but without the spacing that that does). The "\newcolumntype"
+% command of \textsf{array} only adds `second class' column types.
+% The re-implementations of "\newcolumntype" in my \textsf{blkarray} or
+% Mark Wooding's \textsf{mdwtab} allow new `first class' column types
+% to be declared, but stick with \textsf{array} for now. This means we
+% have to lift the stuff out of the register before the register gets
+% emptied in the wrong place.
+% \begin{macrocode}
+\expandafter\CT at extract\the\toks\@tempcnta\columncolor!\@nil
+% \end{macrocode}
+% Save the entry into a box (using a double group for colour safety as
+% usual).
+% \begin{macrocode}
+ \@addtopreamble{%
+ \setbox\z@\hbox\bgroup\bgroup
+ \ifcase \@chnum
+% \end{macrocode}
+% "c" code: This used to use twice as much glue as "l" and "r" (1fil
+% on each side). Now modify it to use 1fill total. Also increase the
+% order from 1fil to 1fill to dissuade people from putting stretch glue
+% in table entries.
+% \begin{macrocode}
+ \hskip\stretch{.5}\kern\z@
+ \d at llarbegin
+ \insert at column
+ \d at llarend\hskip\stretch{.5}\or
+% \end{macrocode}
+% "l" and "r" as before, but using fill glue.
+% \begin{macrocode}
+ \d at llarbegin \insert at column \d at llarend \hfill \or
+ \hfill\kern\z@ \d at llarbegin \insert at column \d at llarend \or
+% \end{macrocode}
+% "m", "p" and "b" as before.
+% \begin{macrocode}
+ $\vcenter
+ \@startpbox{\@nextchar}\insert at column \@endpbox $\or
+ \vtop \@startpbox{\@nextchar}\insert at column \@endpbox \or
+ \vbox \@startpbox{\@nextchar}\insert at column \@endpbox
+ \fi
+% \end{macrocode}
+% Close the box register assignment.
+% \begin{macrocode}
+ \egroup\egroup
+% \end{macrocode}
+% \changes{v0.1d}{1996/10/05}
+% {add \cs{CT at row@color} to support \cs{rowcolor}}
+% The main new stuff.
+% \begin{macrocode}
+\begingroup
+% \end{macrocode}
+% Initalise colour command and overhands.
+% \begin{macrocode}
+ \CT at setup
+% \end{macrocode}
+% Run any code resulting from "\columncolor" commands.
+% \begin{macrocode}
+ \CT at column@color
+% \end{macrocode}
+% Run code from "\rowcolor" (so this takes precedence over
+% "\columncolor").
+% \begin{macrocode}
+ \CT at row@color
+% \end{macrocode}
+% Run code from "\cellcolor" (so this takes precedence over
+% both "\columncolor" and "\rowcolor").
+% \begin{macrocode}
+ \CT at cell@color
+% \end{macrocode}
+% This is "\relax" unless one of the three previous commands has requested
+% a colour, in which case it will be "\CT@@do at color" which will insert
+% "\leaders" of appropriate colour.
+% \begin{macrocode}
+ \CT at do@color
+\endgroup
+% \end{macrocode}
+% Nothing to do with colour this bit, since we are boxing and measuring
+% the entry anyway may as well check the height, so that large entries
+% don't bump into horizontal rules (or the top of the colour panels).
+% \begin{macrocode}
+ \@tempdima\ht\z@
+ \advance\@tempdima\minrowclearance
+ \vrule\@height\@tempdima\@width\z@
+% \end{macrocode}
+% It would be safer to leave this boxed, but unboxing allows some
+% flexibilty. However the total glue stretch should either be finite
+% or fil (which will be ignored). There may be fill glue (which will not
+% be ignored) but it should \emph{total 0fill}. If this box contributes
+% fill glue, then the leaders will not reach the full width of the
+% entry. In the case of "\multicolumn" entries it is actually possible
+% for this box to contribute \emph{shrink} glue, in which case the
+% coloured panel for that entry will be too wide. Tough luck.
+% \begin{macrocode}
+ \unhbox\z@}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \prepnext at tok}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at setup}
+% Initialise the overhang lengths and the colour command.
+% \begin{macrocode}
+\def\CT at setup{%
+ \@tempdimb\col at sep
+ \@tempdimc\col at sep
+ \def\CT at color{%
+ \global\let\CT at do@color\CT@@do at color
+ \color}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT@@do at color}
+% The main point of the package: Add the colour panels.
+%
+% Add a leader of the specified colour, with natural width the
+% width of the entry plus the specified overhangs and 1fill stretch.
+% Surround by negative kerns so total natural width is not affected by
+% overhang.
+% \begin{macrocode}
+\def\CT@@do at color{%
+ \global\let\CT at do@color\relax
+ \@tempdima\wd\z@
+ \advance\@tempdima\@tempdimb
+ \advance\@tempdima\@tempdimc
+ \kern-\@tempdimb
+ \leaders\vrule
+% \end{macrocode}
+% For quick debugging with xdvi (which can't do colours). Limit the size
+% of the rule, so I can see the text as well.
+% \begin{macrocode}
+^^A \@height\p@\@depth\p@
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \hskip\@tempdima\@plus 1fill
+ \kern-\@tempdimc
+% \end{macrocode}
+% Now glue to exactly compensate for the leaders.
+% \begin{macrocode}
+ \hskip-\wd\z@ \@plus -1fill }
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at extract}
+% Now the code to extract the "\columncolor" commands.
+% \begin{macrocode}
+\def\CT at extract#1\columncolor#2#3\@nil{%
+ \if!#2%
+% \end{macrocode}
+% "!" is a fake token inserted at the end.
+% \begin{macrocode}
+ \let\CT at column@color\@empty
+ \else
+% \end{macrocode}
+% If there was an optional argument
+% \begin{macrocode}
+ \if[#2%
+ \CT at extractb{#1}#3\@nil
+ \else
+% \end{macrocode}
+% No optional argument
+% \begin{macrocode}
+ \def\CT at column@color{%
+ \CT at color{#2}}%
+ \CT at extractd{#1}#3\@nil
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at extractb}
+% Define "\CT at column@color" to add the right colour, and save the
+% overhang lengths. Finally reconstitute the saved `">"' tokens,
+% without the colour specification.
+% First grab the colour spec, with optional arg.
+% \begin{macrocode}
+\def\CT at extractb#1#2]#3{%
+ \def\CT at column@color{%
+ \CT at color[#2]{#3}}%
+ \CT at extractd{#1}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at extractd}
+% Now look for left-overhang (default to "\col at sep").
+% \begin{macrocode}
+\def\CT at extractd#1{\@testopt{\CT at extracte{#1}}\col at sep}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at extracte}
+% Same for right-overhang (default to left-overhang).
+% \begin{macrocode}
+\def\CT at extracte#1[#2]{\@testopt{\CT at extractf{#1}[#2]}{#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at extractf}
+% Add the overhang info to "\CT at do@color", for excuting later.
+% \begin{macrocode}
+\def\CT at extractf#1[#2][#3]#4\columncolor#5\@nil{%
+ \@tempdimb#2\relax
+ \@tempdimc#3\relax
+ \edef\CT at column@color{%
+ \CT at column@color
+ \@tempdimb\the\@tempdimb\@tempdimc\the\@tempdimc\relax}%
+ \toks\@tempcnta{#1#4}}%
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\CT at everycr}
+% Steal "\everypar" to initialise row colours
+% \begin{macrocode}
+\let\CT at everycr\everycr
+\newtoks\everycr
+\CT at everycr{\noalign{\global\let\CT at row@color\relax}\the\everycr}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at start}
+% \changes{v0.1f}{1996/10/10}
+% {Nested support for \cs{rowcolor} (prompted by Denis Girou)}
+%
+% \begin{macrocode}
+\def\CT at start{%
+ \let\CT at arc@save\CT at arc@
+ \let\CT at drsc@save\CT at drsc@
+ \let\CT at row@color at save\CT at row@color
+ \let\CT at cell@color at save\CT at cell@color
+ \global\let\CT at cell@color\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at end}
+% \begin{macrocode}
+\def\CT at end{%
+ \global\let\CT at arc@\CT at arc@save
+ \global\let\CT at drsc@\CT at drsc@save
+ \global\let\CT at row@color\CT at row@color at save
+ \global\let\CT at cell@color\CT at cell@color at save}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\shortstack}
+% "\shortstack"
+% \begin{macrocode}
+\gdef\@ishortstack#1{%
+ \CT at start\ialign{\mb at l {##}\unskip\mb at r\cr #1\crcr}\CT at end\egroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@tabarray}
+% \textsf{array} and \textsf{tabular} (delayed for \textsf{delarray})
+% \begin{macrocode}
+\AtBeginDocument{%
+ \expandafter\def\expandafter\@tabarray\expandafter{%
+ \expandafter\CT at start\@tabarray}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\endarray}
+% \begin{macrocode}
+\def\endarray{\crcr \egroup \egroup \gdef\@preamble{}\CT at end}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\multicolumn}
+% "\multicolumn"
+% \begin{macrocode}
+\def\multicolumn#1#2#3{%
+ \multispan{#1}\begingroup
+ \def\@addamp{\if at firstamp \@firstampfalse \else
+ \@preamerr 5\fi}%
+ \@mkpream{#2}\@addtopreamble\@empty
+ \endgroup
+ \def\@sharp{#3}%
+ \let\CT at cell@color\relax
+ \let\CT at row@color\relax
+ \let\CT at column@color\relax
+ \let\CT at do@color\relax
+ \@arstrut \@preamble
+ \null
+ \ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\@classvi}
+% Coloured rules and rule separations.
+% \begin{macrocode}
+\def\@classvi{\ifcase \@lastchclass
+ \@acol \or
+ \ifx\CT at drsc@\relax
+ \@addtopreamble{\hskip\doublerulesep}%
+ \else
+ \@addtopreamble{{\CT at drsc@\vrule\@width\doublerulesep}}%
+ \fi\or
+ \@acol \or
+ \@classvii
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\doublerulesepcolor}
+% \begin{macrocode}
+\def\doublerulesepcolor#1#{\CT at drs{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at drs}
+% \begin{macrocode}
+\def\CT at drs#1#2{%
+ \ifdim\baselineskip=\z@\noalign\fi
+ {\gdef\CT at drsc@{\color#1{#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at drsc@}
+% \begin{macrocode}
+\let\CT at drsc@\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\arrayrulecolor}
+% \begin{macrocode}
+\def\arrayrulecolor#1#{\CT at arc{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at arc}
+% \begin{macrocode}
+\def\CT at arc#1#2{%
+ \ifdim\baselineskip=\z@\noalign\fi
+ {\gdef\CT at arc@{\color#1{#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at arc@}
+% \begin{macrocode}
+\let\CT at arc@\relax
+% \end{macrocode}
+% \end{macro}
+%
+% hline
+%
+% \begin{macro}{\@arrayrule}
+% \begin{macrocode}
+\def\@arrayrule{\@addtopreamble {{\CT at arc@\vline}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\hline}
+% \begin{macrocode}
+\def\hline{%
+ \noalign{\ifnum0=`}\fi
+ \let\hskip\vskip
+ \let\vrule\hrule
+ \let\@width\@height
+ {\CT at arc@\vline}%
+ \futurelet
+ \reserved at a\@xhline}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@xhline}
+% \begin{macrocode}
+\def\@xhline{\ifx\reserved at a\hline
+ {\ifx\CT at drsc@\relax
+ \vskip
+ \else
+ \CT at drsc@\hrule\@height
+ \fi
+ \doublerulesep}%
+ \fi
+ \ifnum0=`{\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cline}
+% "\cline" doesn't really work, as it comes behind the coloured panels,
+% but at least make it the right colour (the bits you can see, anyway).
+% \begin{macrocode}
+\def\@cline#1-#2\@nil{%
+ \omit
+ \@multicnt#1%
+ \advance\@multispan\m at ne
+ \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
+ \@multicnt#2%
+ \advance\@multicnt-#1%
+ \advance\@multispan\@ne
+ {\CT at arc@\leaders\hrule\@height\arrayrulewidth\hfill}%
+ \cr
+ \noalign{\vskip-\arrayrulewidth}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\minrowclearance}
+% The row height fudge length.
+% \begin{macrocode}
+\newlength\minrowclearance
+\minrowclearance=0pt
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@mkpream}
+% While expanding the preamble \textsf{array} passes tokens through an
+% "\edef". It doesn't use "\protect"ion as it thinks it has full control
+% at that point. As the redefinition above adds "\color", I need to add
+% that to the list of commands made safe.
+% \begin{macrocode}
+\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1%
+ \expandafter{%
+ \expandafter\let\expandafter\CT at setup\expandafter\relax
+ \expandafter\let\expandafter\CT at color\expandafter\relax
+ \expandafter\let\expandafter\CT at do@color\expandafter\relax
+ \expandafter\let\expandafter\color\expandafter\relax
+ \expandafter\let\expandafter\CT at column@color\expandafter\relax
+ \expandafter\let\expandafter\CT at row@color\expandafter\relax
+ \expandafter\let\expandafter\CT at cell@color\expandafter\relax
+ \@mkpream{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at do@color}
+% For similar reasons, need to make this non-expandable
+% \begin{macrocode}
+\let\CT at do@color\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\rowcolor}
+% \changes{v0.1f}{1996/10/10}
+% {Add \cs{noalign} (Denis Girou)}
+% \begin{macrocode}
+\def\rowcolor{%
+ \noalign{\ifnum0=`}\fi
+ \global\let\CT at do@color\CT@@do at color
+ \@ifnextchar[\CT at rowa\CT at rowb}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at rowa}
+% \begin{macrocode}
+\def\CT at rowa[#1]#2{%
+ \gdef\CT at row@color{\CT at color[#1]{#2}}%
+ \CT at rowc}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at rowb}
+% \begin{macrocode}
+\def\CT at rowb#1{%
+ \gdef\CT at row@color{\CT at color{#1}}%
+ \CT at rowc}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at rowc}
+% \begin{macrocode}
+\def\CT at rowc{%
+ \@ifnextchar[\CT at rowd{\ifnum`{=0\fi}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at rowd}
+% \begin{macrocode}
+\def\CT at rowd[#1]{\@testopt{\CT at rowe[#1]}{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at rowe}
+% \changes{v0.1h}{1998/05/06}
+% {Fix typo in \cs{ifnum} (Robin F.)}
+% \begin{macrocode}
+\def\CT at rowe[#1][#2]{%
+ \@tempdimb#1%
+ \@tempdimc#2%
+ \xdef\CT at row@color{%
+ \expandafter\noexpand\CT at row@color
+ \@tempdimb\the\@tempdimb
+ \@tempdimc\the\@tempdimc
+ \relax}%
+ \ifnum0=`{\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\cellcolor}
+% "\cellcolor" applies the specified colour to just its own tabular cell.
+% It is defined robust, but without using "\DeclareRobustCommand" or
+% "\newcommand{}[][]" because those forms are not used elsewhere, and
+% would not work in \emph{very} old \LaTeX.
+% \begin{macrocode}
+\edef\cellcolor{\noexpand\protect
+ \expandafter\noexpand\csname cellcolor \endcsname}
+\@namedef{cellcolor }{%
+ \@ifnextchar[{\CT at cellc\@firstofone}{\CT at cellc\@gobble[]}%
+}
+\def\CT at cellc#1[#2]#3{%
+ \expandafter\gdef\expandafter\CT at cell@color\expandafter{%
+ \expandafter\CT at color#1{[#2]}{#3}%
+ \global\let\CT at cell@color\relax
+}}
+\global\let\CT at cell@color\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DC at endright}
+% \textsf{dcolumn} support. the "D" column sometimes internally converts
+% a "c" column to an "r" one by squashing the supplied glue. This is bad
+% news for this package, so redefine it to add negative glue to one
+% side and positive to the other to keep the total added zero.
+% \begin{macrocode}
+\AtBeginDocument{%
+ \def\@tempa{$\hfil\egroup\box\z@\box\tw@}%
+ \ifx\@tempa\DC at endright
+% \end{macrocode}
+%
+% New version of \textsf{dcolumn}, only want to fudge it
+% in the "D{.}{.}{3}" case, not the new "D{.}{.}{3.3}" possibility.
+% "\hfill" has already been inserted, so need to remove 1fill's worth
+% of stretch.
+% \begin{macrocode}
+ \def\DC at endright{%
+ $\hfil\egroup
+ \ifx\DC at rl\bgroup
+ \hskip\stretch{-.5}\box\z@\box\tw@\hskip\stretch{-.5}%
+ \else
+ \box\z@\box\tw@
+ \fi}%
+ \else
+ \def\@tempa{$\hfil\egroup\hfill\box\z@\box\tw@}%
+ \ifx\@tempa\DC at endright
+% \end{macrocode}
+%
+% Old \textsf{dcolumn} code.
+% \begin{macrocode}
+ \def\DC at endright{%
+ $\hfil\egroup%
+ \hskip\stretch{.5}\box\z@\box\tw@\hskip\stretch{-.5}}%
+ \fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% hhline support (almost the whole package, repeated, sigh).
+% \begin{macrocode}
+\AtBeginDocument{%
+ \ifx\hhline\@undefined\else
+\def\HH at box#1#2{\vbox{{%
+ {\CT at drsc@\dimen@\tw@\arrayrulewidth
+ \advance\dimen@\doublerulesep
+ \hrule \@height\dimen@
+ \vskip-\dimen@}%
+ \CT at arc@
+ \hrule \@height \arrayrulewidth \@width #1
+ \vskip\doublerulesep
+ \hrule \@height \arrayrulewidth \@width #2}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\HH at loop{%
+ \ifx\@tempb`\def\next##1{\the\toks@\cr}\else\let\next\HH at let
+ \ifx\@tempb|\if at tempswa
+ \ifx\CT at drsc@\relax
+ \HH at add{\hskip\doublerulesep}%
+ \else
+ \HH at add{{\CT at drsc@\vrule\@width\doublerulesep}}%
+ \fi
+ \fi\@tempswatrue
+ \HH at add{{\CT at arc@\vline}}\else
+ \ifx\@tempb:\if at tempswa
+ \ifx\CT at drsc@\relax
+ \HH at add{\hskip\doublerulesep}%
+ \else
+ \HH at add{{\CT at drsc@\vrule\@width\doublerulesep}}%
+ \fi
+ \fi\@tempswatrue
+ \HH at add{\@tempc\HH at box\arrayrulewidth\arrayrulewidth\@tempc}\else
+ \ifx\@tempb##\if at tempswa\HH at add{\hskip\doublerulesep}\fi\@tempswatrue
+ \HH at add{{\CT at arc@\vline\copy\@ne\@tempc\vline}}\else
+ \ifx\@tempb~\@tempswafalse
+ \if at firstamp\@firstampfalse\else\HH at add{&\omit}\fi
+ \ifx\CT at drsc@\relax
+ \HH at add{\hfil}\else
+ \HH at add{{%
+\CT at drsc@\leaders\hrule\@height\doublerulesep\hfil}}%
+ \fi
+ \else
+ \ifx\@tempb-\@tempswafalse
+ \if at firstamp\@firstampfalse\else\HH at add{&\omit}\fi
+ \HH at add{{%
+ \CT at arc@\leaders\hrule\@height\arrayrulewidth\hfil}}%
+ \else
+ \ifx\@tempb=\@tempswafalse
+ \if at firstamp\@firstampfalse\else\HH at add{&\omit}\fi
+ \HH at add
+ {\rlap{\copy\@ne}\leaders\copy\@ne\hfil\llap{\copy\@ne}}\else
+% \end{macrocode}
+% \changes{v0.1f}{1996/10/10}
+% {Remove backspacing for t and b in \cs{hhline}}
+% Stop the backspacing for "t" and "b", it messes up the underlying
+% colour.
+% \begin{macrocode}
+ \ifx\@tempb t\HH at add{\HH at box\doublerulesep\z@}\@tempswafalse\else
+ \ifx\@tempb b\HH at add{\HH at box\z@\doublerulesep}\@tempswafalse\else
+ \ifx\@tempb>\def\next##1##2{%
+ \HH at add{%
+ {\baselineskip\p@\relax
+ ##2%
+ \global\setbox\@ne\HH at box\doublerulesep\doublerulesep}}%
+ \HH at let!}\else
+ \PackageWarning{hhline}%
+ {\meaning\@tempb\space ignored in \noexpand\hhline argument%
+ \MessageBreak}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi}
+% \end{macrocode}
+%
+%
+% longtable support.
+% \begin{macrocode}
+\AtBeginDocument{
+ \ifx\longtable\@undefined\else
+ \def\LT@@hline{%
+ \ifx\LT at next\hline
+ \global\let\LT at next\@gobble
+ \ifx\CT at drsc@\relax
+ \gdef\CT at LT@sep{%
+ \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
+ \else
+ \gdef\CT at LT@sep{%
+ \multispan\LT at cols{%
+ \CT at drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
+ \fi
+ \else
+ \global\let\LT at next\empty
+ \gdef\CT at LT@sep{%
+ \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
+ \fi
+ \ifnum0=`{\fi}%
+ \multispan\LT at cols
+ {\CT at arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+ \CT at LT@sep
+ \multispan\LT at cols
+ {\CT at arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+ \noalign{\penalty\@M}%
+ \LT at next}
+ \fi}
+% \end{macrocode}
+%
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \Finale
+%
diff --git a/ref/glance/colortbl.ins b/ref/glance/colortbl.ins
new file mode 100644
index 0000000..6a2a99c
--- /dev/null
+++ b/ref/glance/colortbl.ins
@@ -0,0 +1,5 @@
+\def\batchfile{colortbl.ins}
+\input docstrip
+\preamble
+\endpreamble
+\generate{\file{colortbl.sty}{\from{colortbl.dtx}{package}}}
diff --git a/ref/glance/colortbl.sty b/ref/glance/colortbl.sty
new file mode 100644
index 0000000..ef4fe21
--- /dev/null
+++ b/ref/glance/colortbl.sty
@@ -0,0 +1,339 @@
+%%
+%% This is file `colortbl.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% colortbl.dtx (with options: `package')
+%%
+%%
+%% Source File: `colortbl.dtx'.
+%% Copyright 1996 1998 1999 David Carlisle
+%%
+%% This file may be distributed under the terms of the LPPL.
+%% See 00readme.txt for details.
+%%
+\NeedsTeXFormat{LaTeX2e}[1995/06/01]
+\ProvidesPackage{colortbl}
+ [2001/02/13 v0.1j Color table columns (DPC)]
+\edef\@tempa{%
+ \noexpand\AtEndOfPackage{%
+ \catcode`\noexpand\^^A\the\catcode`\^^A\relax}}
+\@tempa
+\catcode`\^^A=\catcode`\%
+\DeclareOption{debugshow}{\catcode`\^^A=9 }
+\DeclareOption*{\PassOptionsToPackage\CurrentOption{color}}
+\ProcessOptions
+\RequirePackage{array,color}
+\def\@classz{\@classx
+ \@tempcnta \count@
+ \prepnext at tok
+\expandafter\CT at extract\the\toks\@tempcnta\columncolor!\@nil
+ \@addtopreamble{%
+ \setbox\z@\hbox\bgroup\bgroup
+ \ifcase \@chnum
+ \hskip\stretch{.5}\kern\z@
+ \d at llarbegin
+ \insert at column
+ \d at llarend\hskip\stretch{.5}\or
+ \d at llarbegin \insert at column \d at llarend \hfill \or
+ \hfill\kern\z@ \d at llarbegin \insert at column \d at llarend \or
+ $\vcenter
+ \@startpbox{\@nextchar}\insert at column \@endpbox $\or
+ \vtop \@startpbox{\@nextchar}\insert at column \@endpbox \or
+ \vbox \@startpbox{\@nextchar}\insert at column \@endpbox
+ \fi
+ \egroup\egroup
+\begingroup
+ \CT at setup
+ \CT at column@color
+ \CT at row@color
+ \CT at cell@color
+ \CT at do@color
+\endgroup
+ \@tempdima\ht\z@
+ \advance\@tempdima\minrowclearance
+ \vrule\@height\@tempdima\@width\z@
+ \unhbox\z@}%
+ \prepnext at tok}
+\def\CT at setup{%
+ \@tempdimb\col at sep
+ \@tempdimc\col at sep
+ \def\CT at color{%
+ \global\let\CT at do@color\CT@@do at color
+ \color}}
+\def\CT@@do at color{%
+ \global\let\CT at do@color\relax
+ \@tempdima\wd\z@
+ \advance\@tempdima\@tempdimb
+ \advance\@tempdima\@tempdimc
+ \kern-\@tempdimb
+ \leaders\vrule
+^^A \@height\p@\@depth\p@
+ \hskip\@tempdima\@plus 1fill
+ \kern-\@tempdimc
+ \hskip-\wd\z@ \@plus -1fill }
+\def\CT at extract#1\columncolor#2#3\@nil{%
+ \if!#2%
+ \let\CT at column@color\@empty
+ \else
+ \if[#2%
+ \CT at extractb{#1}#3\@nil
+ \else
+ \def\CT at column@color{%
+ \CT at color{#2}}%
+ \CT at extractd{#1}#3\@nil
+ \fi
+ \fi}
+\def\CT at extractb#1#2]#3{%
+ \def\CT at column@color{%
+ \CT at color[#2]{#3}}%
+ \CT at extractd{#1}}%
+\def\CT at extractd#1{\@testopt{\CT at extracte{#1}}\col at sep}
+\def\CT at extracte#1[#2]{\@testopt{\CT at extractf{#1}[#2]}{#2}}
+\def\CT at extractf#1[#2][#3]#4\columncolor#5\@nil{%
+ \@tempdimb#2\relax
+ \@tempdimc#3\relax
+ \edef\CT at column@color{%
+ \CT at column@color
+ \@tempdimb\the\@tempdimb\@tempdimc\the\@tempdimc\relax}%
+ \toks\@tempcnta{#1#4}}%
+\let\CT at everycr\everycr
+\newtoks\everycr
+\CT at everycr{\noalign{\global\let\CT at row@color\relax}\the\everycr}
+\def\CT at start{%
+ \let\CT at arc@save\CT at arc@
+ \let\CT at drsc@save\CT at drsc@
+ \let\CT at row@color at save\CT at row@color
+ \let\CT at cell@color at save\CT at cell@color
+ \global\let\CT at cell@color\relax}
+\def\CT at end{%
+ \global\let\CT at arc@\CT at arc@save
+ \global\let\CT at drsc@\CT at drsc@save
+ \global\let\CT at row@color\CT at row@color at save
+ \global\let\CT at cell@color\CT at cell@color at save}
+\gdef\@ishortstack#1{%
+ \CT at start\ialign{\mb at l {##}\unskip\mb at r\cr #1\crcr}\CT at end\egroup}
+\AtBeginDocument{%
+ \expandafter\def\expandafter\@tabarray\expandafter{%
+ \expandafter\CT at start\@tabarray}}
+\def\endarray{\crcr \egroup \egroup \gdef\@preamble{}\CT at end}
+\def\multicolumn#1#2#3{%
+ \multispan{#1}\begingroup
+ \def\@addamp{\if at firstamp \@firstampfalse \else
+ \@preamerr 5\fi}%
+ \@mkpream{#2}\@addtopreamble\@empty
+ \endgroup
+ \def\@sharp{#3}%
+ \let\CT at cell@color\relax
+ \let\CT at row@color\relax
+ \let\CT at column@color\relax
+ \let\CT at do@color\relax
+ \@arstrut \@preamble
+ \null
+ \ignorespaces}
+\def\@classvi{\ifcase \@lastchclass
+ \@acol \or
+ \ifx\CT at drsc@\relax
+ \@addtopreamble{\hskip\doublerulesep}%
+ \else
+ \@addtopreamble{{\CT at drsc@\vrule\@width\doublerulesep}}%
+ \fi\or
+ \@acol \or
+ \@classvii
+ \fi}
+\def\doublerulesepcolor#1#{\CT at drs{#1}}
+\def\CT at drs#1#2{%
+ \ifdim\baselineskip=\z@\noalign\fi
+ {\gdef\CT at drsc@{\color#1{#2}}}}
+\let\CT at drsc@\relax
+\def\arrayrulecolor#1#{\CT at arc{#1}}
+\def\CT at arc#1#2{%
+ \ifdim\baselineskip=\z@\noalign\fi
+ {\gdef\CT at arc@{\color#1{#2}}}}
+\let\CT at arc@\relax
+\def\@arrayrule{\@addtopreamble {{\CT at arc@\vline}}}
+\def\hline{%
+ \noalign{\ifnum0=`}\fi
+ \let\hskip\vskip
+ \let\vrule\hrule
+ \let\@width\@height
+ {\CT at arc@\vline}%
+ \futurelet
+ \reserved at a\@xhline}
+\def\@xhline{\ifx\reserved at a\hline
+ {\ifx\CT at drsc@\relax
+ \vskip
+ \else
+ \CT at drsc@\hrule\@height
+ \fi
+ \doublerulesep}%
+ \fi
+ \ifnum0=`{\fi}}
+\def\@cline#1-#2\@nil{%
+ \omit
+ \@multicnt#1%
+ \advance\@multispan\m at ne
+ \ifnum\@multicnt=\@ne\@firstofone{&\omit}\fi
+ \@multicnt#2%
+ \advance\@multicnt-#1%
+ \advance\@multispan\@ne
+ {\CT at arc@\leaders\hrule\@height\arrayrulewidth\hfill}%
+ \cr
+ \noalign{\vskip-\arrayrulewidth}}
+\newlength\minrowclearance
+\minrowclearance=0pt
+\expandafter\def\expandafter\@mkpream\expandafter#\expandafter1%
+ \expandafter{%
+ \expandafter\let\expandafter\CT at setup\expandafter\relax
+ \expandafter\let\expandafter\CT at color\expandafter\relax
+ \expandafter\let\expandafter\CT at do@color\expandafter\relax
+ \expandafter\let\expandafter\color\expandafter\relax
+ \expandafter\let\expandafter\CT at column@color\expandafter\relax
+ \expandafter\let\expandafter\CT at row@color\expandafter\relax
+ \expandafter\let\expandafter\CT at cell@color\expandafter\relax
+ \@mkpream{#1}}
+\let\CT at do@color\relax
+\def\rowcolor{%
+ \noalign{\ifnum0=`}\fi
+ \global\let\CT at do@color\CT@@do at color
+ \@ifnextchar[\CT at rowa\CT at rowb}
+\def\CT at rowa[#1]#2{%
+ \gdef\CT at row@color{\CT at color[#1]{#2}}%
+ \CT at rowc}
+\def\CT at rowb#1{%
+ \gdef\CT at row@color{\CT at color{#1}}%
+ \CT at rowc}
+\def\CT at rowc{%
+ \@ifnextchar[\CT at rowd{\ifnum`{=0\fi}}}
+\def\CT at rowd[#1]{\@testopt{\CT at rowe[#1]}{#1}}
+\def\CT at rowe[#1][#2]{%
+ \@tempdimb#1%
+ \@tempdimc#2%
+ \xdef\CT at row@color{%
+ \expandafter\noexpand\CT at row@color
+ \@tempdimb\the\@tempdimb
+ \@tempdimc\the\@tempdimc
+ \relax}%
+ \ifnum0=`{\fi}}
+\edef\cellcolor{\noexpand\protect
+ \expandafter\noexpand\csname cellcolor \endcsname}
+\@namedef{cellcolor }{%
+ \@ifnextchar[{\CT at cellc\@firstofone}{\CT at cellc\@gobble[]}%
+}
+\def\CT at cellc#1[#2]#3{%
+ \expandafter\gdef\expandafter\CT at cell@color\expandafter{%
+ \expandafter\CT at color#1{[#2]}{#3}%
+ \global\let\CT at cell@color\relax
+}}
+\global\let\CT at cell@color\relax
+\AtBeginDocument{%
+ \def\@tempa{$\hfil\egroup\box\z@\box\tw@}%
+ \ifx\@tempa\DC at endright
+ \def\DC at endright{%
+ $\hfil\egroup
+ \ifx\DC at rl\bgroup
+ \hskip\stretch{-.5}\box\z@\box\tw@\hskip\stretch{-.5}%
+ \else
+ \box\z@\box\tw@
+ \fi}%
+ \else
+ \def\@tempa{$\hfil\egroup\hfill\box\z@\box\tw@}%
+ \ifx\@tempa\DC at endright
+ \def\DC at endright{%
+ $\hfil\egroup%
+ \hskip\stretch{.5}\box\z@\box\tw@\hskip\stretch{-.5}}%
+ \fi
+ \fi}
+\AtBeginDocument{%
+ \ifx\hhline\@undefined\else
+\def\HH at box#1#2{\vbox{{%
+ {\CT at drsc@\dimen@\tw@\arrayrulewidth
+ \advance\dimen@\doublerulesep
+ \hrule \@height\dimen@
+ \vskip-\dimen@}%
+ \CT at arc@
+ \hrule \@height \arrayrulewidth \@width #1
+ \vskip\doublerulesep
+ \hrule \@height \arrayrulewidth \@width #2}}}
+\def\HH at loop{%
+ \ifx\@tempb`\def\next##1{\the\toks@\cr}\else\let\next\HH at let
+ \ifx\@tempb|\if at tempswa
+ \ifx\CT at drsc@\relax
+ \HH at add{\hskip\doublerulesep}%
+ \else
+ \HH at add{{\CT at drsc@\vrule\@width\doublerulesep}}%
+ \fi
+ \fi\@tempswatrue
+ \HH at add{{\CT at arc@\vline}}\else
+ \ifx\@tempb:\if at tempswa
+ \ifx\CT at drsc@\relax
+ \HH at add{\hskip\doublerulesep}%
+ \else
+ \HH at add{{\CT at drsc@\vrule\@width\doublerulesep}}%
+ \fi
+ \fi\@tempswatrue
+ \HH at add{\@tempc\HH at box\arrayrulewidth\arrayrulewidth\@tempc}\else
+ \ifx\@tempb##\if at tempswa\HH at add{\hskip\doublerulesep}\fi\@tempswatrue
+ \HH at add{{\CT at arc@\vline\copy\@ne\@tempc\vline}}\else
+ \ifx\@tempb~\@tempswafalse
+ \if at firstamp\@firstampfalse\else\HH at add{&\omit}\fi
+ \ifx\CT at drsc@\relax
+ \HH at add{\hfil}\else
+ \HH at add{{%
+\CT at drsc@\leaders\hrule\@height\doublerulesep\hfil}}%
+ \fi
+ \else
+ \ifx\@tempb-\@tempswafalse
+ \if at firstamp\@firstampfalse\else\HH at add{&\omit}\fi
+ \HH at add{{%
+ \CT at arc@\leaders\hrule\@height\arrayrulewidth\hfil}}%
+ \else
+ \ifx\@tempb=\@tempswafalse
+ \if at firstamp\@firstampfalse\else\HH at add{&\omit}\fi
+ \HH at add
+ {\rlap{\copy\@ne}\leaders\copy\@ne\hfil\llap{\copy\@ne}}\else
+ \ifx\@tempb t\HH at add{\HH at box\doublerulesep\z@}\@tempswafalse\else
+ \ifx\@tempb b\HH at add{\HH at box\z@\doublerulesep}\@tempswafalse\else
+ \ifx\@tempb>\def\next##1##2{%
+ \HH at add{%
+ {\baselineskip\p@\relax
+ ##2%
+ \global\setbox\@ne\HH at box\doublerulesep\doublerulesep}}%
+ \HH at let!}\else
+ \PackageWarning{hhline}%
+ {\meaning\@tempb\space ignored in \noexpand\hhline argument%
+ \MessageBreak}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next}
+\fi}
+\AtBeginDocument{
+ \ifx\longtable\@undefined\else
+ \def\LT@@hline{%
+ \ifx\LT at next\hline
+ \global\let\LT at next\@gobble
+ \ifx\CT at drsc@\relax
+ \gdef\CT at LT@sep{%
+ \noalign{\penalty-\@medpenalty\vskip\doublerulesep}}%
+ \else
+ \gdef\CT at LT@sep{%
+ \multispan\LT at cols{%
+ \CT at drsc@\leaders\hrule\@height\doublerulesep\hfill}\cr}%
+ \fi
+ \else
+ \global\let\LT at next\empty
+ \gdef\CT at LT@sep{%
+ \noalign{\penalty-\@lowpenalty\vskip-\arrayrulewidth}}%
+ \fi
+ \ifnum0=`{\fi}%
+ \multispan\LT at cols
+ {\CT at arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+ \CT at LT@sep
+ \multispan\LT at cols
+ {\CT at arc@\leaders\hrule\@height\arrayrulewidth\hfill}\cr
+ \noalign{\penalty\@M}%
+ \LT at next}
+ \fi}
+\endinput
+%%
+%% End of file `colortbl.sty'.
diff --git a/ref/glance/svgnam.def b/ref/glance/svgnam.def
new file mode 100644
index 0000000..0d748d9
--- /dev/null
+++ b/ref/glance/svgnam.def
@@ -0,0 +1,186 @@
+%%
+%% This is file `svgnam.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `svgnames')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from svgnam.def.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesFile{svgnam.def}
+ [2005/12/21 v2.09 Predefined colors according to SVG 1.1 (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\colornameprefix{XC@}
+\preparecolorset{rgb}{}{}{%
+AliceBlue,.94,.972,1;%
+AntiqueWhite,.98,.92,.844;%
+Aqua,0,1,1;%
+Aquamarine,.498,1,.83;%
+Azure,.94,1,1;%
+Beige,.96,.96,.864;%
+Bisque,1,.894,.77;%
+Black,0,0,0;%
+BlanchedAlmond,1,.92,.804;%
+Blue,0,0,1;%
+BlueViolet,.54,.17,.888;%
+Brown,.648,.165,.165;%
+BurlyWood,.87,.72,.53;%
+CadetBlue,.372,.62,.628;%
+Chartreuse,.498,1,0;%
+Chocolate,.824,.41,.116;%
+Coral,1,.498,.312;%
+CornflowerBlue,.392,.585,.93;%
+Cornsilk,1,.972,.864;%
+Crimson,.864,.08,.235;%
+Cyan,0,1,1;%
+DarkBlue,0,0,.545;%
+DarkCyan,0,.545,.545;%
+DarkGoldenrod,.72,.525,.044;%
+DarkGray,.664,.664,.664;%
+DarkGreen,0,.392,0;%
+DarkGrey,.664,.664,.664;%
+DarkKhaki,.74,.716,.42;%
+DarkMagenta,.545,0,.545;%
+DarkOliveGreen,.332,.42,.185;%
+DarkOrange,1,.55,0;%
+DarkOrchid,.6,.196,.8;%
+DarkRed,.545,0,0;%
+DarkSalmon,.912,.59,.48;%
+DarkSeaGreen,.56,.736,.56;%
+DarkSlateBlue,.284,.24,.545;%
+DarkSlateGray,.185,.31,.31;%
+DarkSlateGrey,.185,.31,.31;%
+DarkTurquoise,0,.808,.82;%
+DarkViolet,.58,0,.828;%
+DeepPink,1,.08,.576;%
+DeepSkyBlue,0,.75,1;%
+DimGray,.41,.41,.41;%
+DimGrey,.41,.41,.41;%
+DodgerBlue,.116,.565,1;%
+FireBrick,.698,.132,.132;%
+FloralWhite,1,.98,.94;%
+ForestGreen,.132,.545,.132;%
+Fuchsia,1,0,1;%
+Gainsboro,.864,.864,.864;%
+GhostWhite,.972,.972,1;%
+Gold,1,.844,0;%
+Goldenrod,.855,.648,.125;%
+Gray,.5,.5,.5;%
+Green,0,.5,0;%
+GreenYellow,.68,1,.185;%
+Grey,.5,.5,.5;%
+Honeydew,.94,1,.94;%
+HotPink,1,.41,.705;%
+IndianRed,.804,.36,.36;%
+Indigo,.294,0,.51;%
+Ivory,1,1,.94;%
+Khaki,.94,.9,.55;%
+Lavender,.9,.9,.98;%
+LavenderBlush,1,.94,.96;%
+LawnGreen,.488,.99,0;%
+LemonChiffon,1,.98,.804;%
+LightBlue,.68,.848,.9;%
+LightCoral,.94,.5,.5;%
+LightCyan,.88,1,1;%
+LightGoldenrod,.933,.867,.51;%
+LightGoldenrodYellow,.98,.98,.824;%
+LightGray,.828,.828,.828;%
+LightGreen,.565,.932,.565;%
+LightGrey,.828,.828,.828;%
+LightPink,1,.712,.756;%
+LightSalmon,1,.628,.48;%
+LightSeaGreen,.125,.698,.668;%
+LightSkyBlue,.53,.808,.98;%
+LightSlateBlue,.518,.44,1;%
+LightSlateGray,.468,.532,.6;%
+LightSlateGrey,.468,.532,.6;%
+LightSteelBlue,.69,.77,.87;%
+LightYellow,1,1,.88;%
+Lime,0,1,0;%
+LimeGreen,.196,.804,.196;%
+Linen,.98,.94,.9;%
+Magenta,1,0,1;%
+Maroon,.5,0,0;%
+MediumAquamarine,.4,.804,.668;%
+MediumBlue,0,0,.804;%
+MediumOrchid,.73,.332,.828;%
+MediumPurple,.576,.44,.86;%
+MediumSeaGreen,.235,.7,.444;%
+MediumSlateBlue,.484,.408,.932;%
+MediumSpringGreen,0,.98,.604;%
+MediumTurquoise,.284,.82,.8;%
+MediumVioletRed,.78,.084,.52;%
+MidnightBlue,.098,.098,.44;%
+MintCream,.96,1,.98;%
+MistyRose,1,.894,.884;%
+Moccasin,1,.894,.71;%
+NavajoWhite,1,.87,.68;%
+Navy,0,0,.5;%
+NavyBlue,0,0,.5;%
+OldLace,.992,.96,.9;%
+Olive,.5,.5,0;%
+OliveDrab,.42,.556,.136;%
+Orange,1,.648,0;%
+OrangeRed,1,.27,0;%
+Orchid,.855,.44,.84;%
+PaleGoldenrod,.932,.91,.668;%
+PaleGreen,.596,.985,.596;%
+PaleTurquoise,.688,.932,.932;%
+PaleVioletRed,.86,.44,.576;%
+PapayaWhip,1,.936,.835;%
+PeachPuff,1,.855,.725;%
+Peru,.804,.52,.248;%
+Pink,1,.752,.796;%
+Plum,.868,.628,.868;%
+PowderBlue,.69,.88,.9;%
+Purple,.5,0,.5;%
+Red,1,0,0;%
+RosyBrown,.736,.56,.56;%
+RoyalBlue,.255,.41,.884;%
+SaddleBrown,.545,.27,.075;%
+Salmon,.98,.5,.448;%
+SandyBrown,.956,.644,.376;%
+SeaGreen,.18,.545,.34;%
+Seashell,1,.96,.932;%
+Sienna,.628,.32,.176;%
+Silver,.752,.752,.752;%
+SkyBlue,.53,.808,.92;%
+SlateBlue,.415,.352,.804;%
+SlateGray,.44,.5,.565;%
+SlateGrey,.44,.5,.565;%
+Snow,1,.98,.98;%
+SpringGreen,0,1,.498;%
+SteelBlue,.275,.51,.705;%
+Tan,.824,.705,.55;%
+Teal,0,.5,.5;%
+Thistle,.848,.75,.848;%
+Tomato,1,.39,.28;%
+Turquoise,.25,.88,.815;%
+Violet,.932,.51,.932;%
+VioletRed,.816,.125,.565;%
+Wheat,.96,.87,.7;%
+White,1,1,1;%
+WhiteSmoke,.96,.96,.96;%
+Yellow,1,1,0;%
+YellowGreen,.604,.804,.196}
+\endinput
+%%
+%% End of file `svgnam.def'.
diff --git a/ref/glance/toolkitlandscape.tex b/ref/glance/toolkitlandscape.tex
new file mode 100644
index 0000000..f2594a7
--- /dev/null
+++ b/ref/glance/toolkitlandscape.tex
@@ -0,0 +1,118 @@
+\documentclass{article}
+\usepackage{multirow}
+\usepackage{rotating}
+\usepackage{colortbl}
+\usepackage{xcolor}
+\usepackage[total={8.5in,11in},top=0.5cm,left=5mm,landscape=true]{geometry}
+
+\newcommand{\sideco}{gray}
+\newcommand{\sideso}{1.0}
+\newcommand{\sidect}{gray}
+\newcommand{\sidest}{1.0}
+\newcommand{\sidewidth}{0.15in}
+\newcommand{\entco}{gray}
+\newcommand{\entso}{1.00}
+\newcommand{\entct}{gray}
+\newcommand{\entst}{0.95}
+
+\newcommand{\twidth}{1.5in}
+\newcommand{\dwidth}{4.025in}
+\newcommand{\ewidth}{4.275in}
+
+\pagestyle{empty}
+
+\begin{document}
+
+\begin{tabular}{clll}
+
+\multicolumn{4}{c}{GPSTk Apps at a Glance} \\
+& \textbf{Tool} & \textbf{Description} & \textbf{Execution Example} \\
+\hline
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{calgps} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{generates a GPS calendar}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{calgps -Y 2004}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{poscvt} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{converts a given input position to other position formats}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{poscvt --geodetic="30.28 262.26700 167.64" }}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{timeconvert} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{converts given input time to other time formats}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{timeconvert --calendar="07 04 2006"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{WhereSat} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{outputs expected location of a satellite}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{WhereSat -b arl2100.06n -p 3}}} \\
+\hline
+
+\multirow{-5}{\sidewidth}{\rotatebox{90}{\tiny{\hspace{3mm}Transforms}}}
+
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{rtAshtech} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{records observations from an Ashtech receiver}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{rtAshtech -p /dev/ttyS1 -o "minute\%03j\%02H\%02m.\%06yo}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{ficfica ficafic fic2rin} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{convert fic files between ASCII, binary, and Rinex formats}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{fic2rin fic2100.06 rin121.06n}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{mdp2fic mdp2rinex} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{convert MDP files to fic or rinex files}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{mdp2rinex -i mdpfile -o arl2100.06o }}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{novaRinex} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{convert Novatel files to Rinex files}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{novaRinex --input nova2100.06 --obstype L1}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{navdmp} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{dumps information from nav files to human readable formats}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{navdmp -i arl2100.06n -o arl2100.06.dmp}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{RinexDump} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{dumps observation data for specified satellites from a Rinex file}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{RinexDump arl2100.06o 3 4 L1 L2}}} \\
+\hline
+
+\multirow{-7}{\sidewidth}{\rotatebox{90}{\tiny{\hspace{2mm} Collecting/Converting}}}
+
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{ephdiff} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{compares the satellite positions from two ephemeris sources}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{ephdiff arl2100.06n fic2100.06}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{ficdiff} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{compares contents of two FIC files}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{ficidff fic12100.06 fic22100.06}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{ficcheck ficacheck} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{reads a FIC file and checks it for errors reporting the first found}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{ficcheck fic2100.06 -t "07/20/2006 11:00:00"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{rmwdiff, rnwdiff, rowdiff} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{compares contents of two RINEX files}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{rowdiff arl1210.06o arl22100.06o}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{row/rnw/rmwcheck} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{read Rinex files and checks it for errors reporting the first found}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{rnwcheck arl210.06n -e "07/20/2006 11:00:00"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{navsum RinSum} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{summarizes the contents of nav/Rinex files}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{RinSum -i arl2100.06o --EpochBeg 2006,07,20,13,20,00}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{mdptool} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{manipulates MDP data streams}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{mdptool -i mdpfile --pvt --obs}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{reszilla} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{computes various residuals from GPS data}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{reszilla -o arl210.06o -e arl2100.06n}}} \\
+\hline
+
+\multirow{-9}{\sidewidth}{\rotatebox{90}{\tiny{Comparing \& Validating}}}
+
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{mergeFIC} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{sorts and merges input FIC files into a single file}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{mergeFIC -i fic12100.06 -i fic22100.06 -o ficmerge2100.06}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{mergeRinObs/Nav/Met} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{sorts and merges RINEX files}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{mergeRinNav -i arl2100.06n -i arl2110.06n arl210-211.06n}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{NavMerge} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{merges Rinex nav files into a single file}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{NavMerge -oarlnavs.06n arl2100.06n arl2110.06n}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{rinexthin} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{decimates an input Rinex observation files to desired data rate}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{rinexthin -f arl2100.06o -s 30 -o arl2100thin.06n}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{ResCor} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{edits Rinex files and computes corrections}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{ResCor -IFalr2100.06o -OFarl2100mod.06o -DS12,12:00:00 }}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{DiscFix} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{cycle slip corrector}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{DiscFix -i arl2100.06o --DT 1.5}}} \\
+\hline
+
+\multirow{-7}{\sidewidth}{\rotatebox{90}{\tiny{Editing Data}}}
+
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{IonoBias} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{solves interfrequency biases and a simple ionosphere model}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{IonoBias --input arl2100.06o --nav arl2100.06n --XSat 3}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{TECMaps} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{creates maps of Total Electron Content (TEC)}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{TECMaps --input arl2100.06o --nav arl2100.06n --LinearFit}}} \\
+\hline
+
+\multirow{-3}{\sidewidth}{\rotatebox{90}{\tiny{\hspace{3mm}Iono}}}
+
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{PRSolve} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{generates autonomous position solution}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{PRSolve -o alr2100.06o -n arl2100.06nn --XPRN 12}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{rinexpvt} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{generates autonous position solution}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{rinexpvt -o alr2100.06o -n arl2100.06n}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{1}{\twidth}{DDBase} & \cellcolor[\entct]{\entst} \multirow{1}{\dwidth}{\footnotesize{computes a network solution using carrier phase}} & \cellcolor[\entct]{\entst} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{DDBase ... --ObsFile arl2100.06o --PosXYZ x,y,z,1 --Fix ...}}} \\
+
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{1}{\twidth}{vecsol} & \cellcolor[\entco]{\entso} \multirow{1}{\dwidth}{\footnotesize{estimates short baseline using range or carrier phase}} & \cellcolor[\entco]{\entso} \multirow{1}{\ewidth}{\ttfamily{\footnotesize{vecsol station12100.06o station22100.06o}}} \\
+\hline
+
+\multirow{-5}{\sidewidth}{\rotatebox{90}{\tiny{\hspace{3mm}Positioning}}}
+
+
+\end{tabular}
+
+\end{document}
diff --git a/ref/glance/toolkitportrait.tex b/ref/glance/toolkitportrait.tex
new file mode 100644
index 0000000..b360d20
--- /dev/null
+++ b/ref/glance/toolkitportrait.tex
@@ -0,0 +1,158 @@
+\documentclass[8pt]{article}
+\usepackage{multirow}
+\usepackage{rotating}
+\usepackage{colortbl}
+\usepackage{xcolor}
+
+\newcommand{\sideco}{gray}
+\newcommand{\sideso}{1.0}
+\newcommand{\sidect}{gray}
+\newcommand{\sidest}{1.0}
+\newcommand{\sidewidth}{.05in}
+\newcommand{\entco}{gray}
+\newcommand{\entso}{1.00}
+\newcommand{\entct}{gray}
+\newcommand{\entst}{0.95}
+
+\newcommand{\twidth}{1.15in}
+\newcommand{\dwidth}{2.0in}
+\newcommand{\ewidth}{3.0in}
+\newcommand{\bkup}{-2}
+\newcommand{\execsize}{\scriptsize}
+\newcommand{\sidesize}{\small}
+
+\pagestyle{empty}
+
+\paperwidth = 8.5in
+\paperheight = 11in
+
+\oddsidemargin = -.25in
+\evensidemargin = -.25in
+\topmargin = -.25in
+\headsep = 0in
+\headheight = 0in
+
+\begin{document}
+\begin{table}
+\begin{footnotesize}
+\begin{tabular}{clll}
+
+& \textbf{Tool} & \textbf{Description} & \textbf{Execution Example} \\
+\hline
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{calgps} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{generates a GPS calendar}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{calgps -Y 2004}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{poscvt} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{converts a given input position to other position formats}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{poscvt --geodetic="30.28 262.26700 167.64" }}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{timeconvert} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{converts given input time to other time formats}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{timeconvert --calendar="07 04 2006"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{WhereSat} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{outputs expected location of a satellite}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{WhereSat -b arl2100.06n -p 3}}} \\
+\hline
+
+\multirow{-9}{\sidewidth}{\rotatebox{90}{\sidesize{\hspace{3mm}Transforms}}}
+
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{rtAshtech} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{records observations from an Ashtech receiver}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{rtAshtech -p /dev/ttyS1 -o "minute\%03j\%02H\%02m.\%06yo"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{ficfica ficafic fic2rin} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{convert fic files between ASCII, binary, and Rinex formats}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{fic2rin fic2100.06 rin121.06n}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{mdp2fic mdp2rinex} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{convert MDP files to fic or rinex files}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{mdp2rinex -i mdpfile -o arl2100.06o }}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{novaRinex} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{convert Novatel files to Rinex files}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{novaRinex --input nova2100.06 --obstype L1}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{navdmp} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{dumps information from nav files to human readable formats}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{navdmp -i arl2100.06n -o arl2100.06.dmp}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{RinexDump} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{dumps observation data for specified satellites from a Rinex file}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{RinexDump arl2100.06o 3 4 L1 L2}}} \\
+\hline
+
+\multirow{-13}{\sidewidth}{\rotatebox{90}{\sidesize{\hspace{2mm} Collecting \& Converting}}}
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{ephdiff} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{compares the satellite positions from two ephemeris sources}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{ephdiff arl2100.06n fic2100.06}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{ficdiff} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{compares contents of two FIC files}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{ficidff fic12100.06 fic22100.06}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{ficcheck ficacheck} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{reads a FIC file and checks it for errors reporting the first found}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{ficcheck fic2100.06 -t "07/20/2006 11:00:00"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{row/rnw/rmwdiff} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{compares contents of two RINEX files}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{rowdiff arl1210.06o arl22100.06o}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{row/rnw/rmwcheck} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{read Rinex files and checks it for errors reporting the first found}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{rnwcheck arl210.06n -e "07/20/2006 11:00:00"}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{navsum RinSum} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{summarizes the contents of nav/Rinex files}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{RinSum -i arl2100.06o --EpochBeg 2006,07,20,13,20,00}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{mdptool} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{manipulates MDP data streams}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{mdptool -i mdpfile --pvt --obs}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{reszilla} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{computes various residuals from GPS data}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{reszilla -o arl210.06o -e arl2100.06n}}} \\
+\hline
+
+\multirow{-17}{\sidewidth}{\rotatebox{90}{\sidesize{Comparing \& Validating}}}
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{mergeFIC} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{sorts and merges input FIC files into a single file}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{mergeFIC -i fic12100.06 -i fic22100.06 -o ficmerge2100.06}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{mergeRinObs/Nav/Met} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{sorts and merges RINEX files}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{mergeRinNav -i arl2100.06n -i arl2110.06n arl210-211.06n}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{NavMerge} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{merges Rinex nav files into a single file}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{NavMerge -oarlnavs.06n arl2100.06n arl2110.06n}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{rinexthin} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{decimates an input Rinex observation files to desired data rate}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{rinexthin -f arl2100.06o -s 30 -o arl2100thin.06n}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{ResCor} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{edits Rinex files and computes corrections}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{ResCor -IFalr2100.06o -OFarl2100mod.06o -DS12,12:00:00 }}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{DiscFix} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{cycle slip corrector}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{DiscFix -i arl2100.06o --DT 1.5}}} \\
+\hline
+
+\multirow{-13}{\sidewidth}{\rotatebox{90}{\sidesize{Editing Data}}}
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{IonoBias} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{solves interfrequency biases and a simple ionosphere model}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{IonoBias --input arl2100.06o --nav arl2100.06n --XSat 3}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{TECMaps} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{creates maps of Total Electron Content (TEC)}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{TECMaps --input arl2100.06o --nav arl2100.06n --LinearFit}}} \\
+\hline
+
+\multirow{-5}{\sidewidth}{\rotatebox{90}{\sidesize{\hspace{3mm}Iono}}}
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{PRSolve} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{generates autonomous position solution}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{PRSolve -o alr2100.06o -n arl2100.06nn --XPRN 12}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{rinexpvt} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{generates autonous position solution}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{rinexpvt -o alr2100.06o -n arl2100.06n}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} & \cellcolor[\entct]{\entst} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\twidth}{DDBase} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\dwidth}{\footnotesize{computes a network solution using carrier phase}} & \cellcolor[\entct]{\entst} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{DDBase ... --ObsFile arl2100.06o --PosXYZ x,y,z,1 --Fix}}} \\
+
+\cellcolor[\sideco]{\sideso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} & \cellcolor[\entco]{\entso} \\
+\cellcolor[\sidect]{\sidest} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\twidth}{vecsol} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\dwidth}{\footnotesize{estimates short baseline using range or carrier phase}} & \cellcolor[\entco]{\entso} \multirow{\bkup}{\ewidth}{\ttfamily{\execsize{vecsol station12100.06o station22100.06o}}} \\
+\hline
+
+\multirow{-9}{\sidewidth}{\rotatebox{90}{\sidesize{\hspace{3mm}Positioning}}} \\
+
+\multicolumn{4}{c}{Table \thetable: Awsome Table}
+
+\end{tabular}
+\end{footnotesize}
+\end{table}
+
+\end{document}
diff --git a/ref/glance/x11nam.def b/ref/glance/x11nam.def
new file mode 100644
index 0000000..ff73886
--- /dev/null
+++ b/ref/glance/x11nam.def
@@ -0,0 +1,352 @@
+%%
+%% This is file `x11nam.def',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `x11names')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from x11nam.def.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesFile{x11nam.def}
+ [2005/12/21 v2.09 Predefined colors according to Unix/X11 (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\colornameprefix{XC@}
+\preparecolorset{rgb}{}{}{%
+AntiqueWhite1,1,.936,.86;%
+AntiqueWhite2,.932,.875,.8;%
+AntiqueWhite3,.804,.752,.69;%
+AntiqueWhite4,.545,.512,.47;%
+Aquamarine1,.498,1,.83;%
+Aquamarine2,.464,.932,.776;%
+Aquamarine3,.4,.804,.668;%
+Aquamarine4,.27,.545,.455;%
+Azure1,.94,1,1;%
+Azure2,.88,.932,.932;%
+Azure3,.756,.804,.804;%
+Azure4,.512,.545,.545;%
+Bisque1,1,.894,.77;%
+Bisque2,.932,.835,.716;%
+Bisque3,.804,.716,.62;%
+Bisque4,.545,.49,.42;%
+Blue1,0,0,1;%
+Blue2,0,0,.932;%
+Blue3,0,0,.804;%
+Blue4,0,0,.545;%
+Brown1,1,.25,.25;%
+Brown2,.932,.23,.23;%
+Brown3,.804,.2,.2;%
+Brown4,.545,.136,.136;%
+Burlywood1,1,.828,.608;%
+Burlywood2,.932,.772,.57;%
+Burlywood3,.804,.668,.49;%
+Burlywood4,.545,.45,.332;%
+CadetBlue1,.596,.96,1;%
+CadetBlue2,.556,.898,.932;%
+CadetBlue3,.48,.772,.804;%
+CadetBlue4,.325,.525,.545;%
+Chartreuse1,.498,1,0;%
+Chartreuse2,.464,.932,0;%
+Chartreuse3,.4,.804,0;%
+Chartreuse4,.27,.545,0;%
+Chocolate1,1,.498,.14;%
+Chocolate2,.932,.464,.13;%
+Chocolate3,.804,.4,.112;%
+Chocolate4,.545,.27,.075;%
+Coral1,1,.448,.336;%
+Coral2,.932,.415,.312;%
+Coral3,.804,.356,.27;%
+Coral4,.545,.244,.185;%
+Cornsilk1,1,.972,.864;%
+Cornsilk2,.932,.91,.804;%
+Cornsilk3,.804,.785,.694;%
+Cornsilk4,.545,.532,.47;%
+Cyan1,0,1,1;%
+Cyan2,0,.932,.932;%
+Cyan3,0,.804,.804;%
+Cyan4,0,.545,.545;%
+DarkGoldenrod1,1,.725,.06;%
+DarkGoldenrod2,.932,.68,.055;%
+DarkGoldenrod3,.804,.585,.048;%
+DarkGoldenrod4,.545,.396,.03;%
+DarkOliveGreen1,.792,1,.44;%
+DarkOliveGreen2,.736,.932,.408;%
+DarkOliveGreen3,.635,.804,.352;%
+DarkOliveGreen4,.43,.545,.24;%
+DarkOrange1,1,.498,0;%
+DarkOrange2,.932,.464,0;%
+DarkOrange3,.804,.4,0;%
+DarkOrange4,.545,.27,0;%
+DarkOrchid1,.75,.244,1;%
+DarkOrchid2,.698,.228,.932;%
+DarkOrchid3,.604,.196,.804;%
+DarkOrchid4,.408,.132,.545;%
+DarkSeaGreen1,.756,1,.756;%
+DarkSeaGreen2,.705,.932,.705;%
+DarkSeaGreen3,.608,.804,.608;%
+DarkSeaGreen4,.41,.545,.41;%
+DarkSlateGray1,.592,1,1;%
+DarkSlateGray2,.552,.932,.932;%
+DarkSlateGray3,.475,.804,.804;%
+DarkSlateGray4,.32,.545,.545;%
+DeepPink1,1,.08,.576;%
+DeepPink2,.932,.07,.536;%
+DeepPink3,.804,.064,.464;%
+DeepPink4,.545,.04,.312;%
+DeepSkyBlue1,0,.75,1;%
+DeepSkyBlue2,0,.698,.932;%
+DeepSkyBlue3,0,.604,.804;%
+DeepSkyBlue4,0,.408,.545;%
+DodgerBlue1,.116,.565,1;%
+DodgerBlue2,.11,.525,.932;%
+DodgerBlue3,.094,.455,.804;%
+DodgerBlue4,.064,.305,.545;%
+Firebrick1,1,.19,.19;%
+Firebrick2,.932,.172,.172;%
+Firebrick3,.804,.15,.15;%
+Firebrick4,.545,.1,.1;%
+Gold1,1,.844,0;%
+Gold2,.932,.79,0;%
+Gold3,.804,.68,0;%
+Gold4,.545,.46,0;%
+Goldenrod1,1,.756,.145;%
+Goldenrod2,.932,.705,.132;%
+Goldenrod3,.804,.608,.112;%
+Goldenrod4,.545,.41,.08;%
+Green1,0,1,0;%
+Green2,0,.932,0;%
+Green3,0,.804,0;%
+Green4,0,.545,0;%
+Honeydew1,.94,1,.94;%
+Honeydew2,.88,.932,.88;%
+Honeydew3,.756,.804,.756;%
+Honeydew4,.512,.545,.512;%
+HotPink1,1,.43,.705;%
+HotPink2,.932,.415,.655;%
+HotPink3,.804,.376,.565;%
+HotPink4,.545,.228,.385;%
+IndianRed1,1,.415,.415;%
+IndianRed2,.932,.39,.39;%
+IndianRed3,.804,.332,.332;%
+IndianRed4,.545,.228,.228;%
+Ivory1,1,1,.94;%
+Ivory2,.932,.932,.88;%
+Ivory3,.804,.804,.756;%
+Ivory4,.545,.545,.512;%
+Khaki1,1,.965,.56;%
+Khaki2,.932,.9,.52;%
+Khaki3,.804,.776,.45;%
+Khaki4,.545,.525,.305;%
+LavenderBlush1,1,.94,.96;%
+LavenderBlush2,.932,.88,.898;%
+LavenderBlush3,.804,.756,.772;%
+LavenderBlush4,.545,.512,.525;%
+LemonChiffon1,1,.98,.804;%
+LemonChiffon2,.932,.912,.75;%
+LemonChiffon3,.804,.79,.648;%
+LemonChiffon4,.545,.536,.44;%
+LightBlue1,.75,.936,1;%
+LightBlue2,.698,.875,.932;%
+LightBlue3,.604,.752,.804;%
+LightBlue4,.408,.512,.545;%
+LightCyan1,.88,1,1;%
+LightCyan2,.82,.932,.932;%
+LightCyan3,.705,.804,.804;%
+LightCyan4,.48,.545,.545;%
+LightGoldenrod1,1,.925,.545;%
+LightGoldenrod2,.932,.864,.51;%
+LightGoldenrod3,.804,.745,.44;%
+LightGoldenrod4,.545,.505,.298;%
+LightPink1,1,.684,.725;%
+LightPink2,.932,.635,.68;%
+LightPink3,.804,.55,.585;%
+LightPink4,.545,.372,.396;%
+LightSalmon1,1,.628,.48;%
+LightSalmon2,.932,.585,.448;%
+LightSalmon3,.804,.505,.385;%
+LightSalmon4,.545,.34,.26;%
+LightSkyBlue1,.69,.888,1;%
+LightSkyBlue2,.644,.828,.932;%
+LightSkyBlue3,.552,.712,.804;%
+LightSkyBlue4,.376,.484,.545;%
+LightSteelBlue1,.792,.884,1;%
+LightSteelBlue2,.736,.824,.932;%
+LightSteelBlue3,.635,.71,.804;%
+LightSteelBlue4,.43,.484,.545;%
+LightYellow1,1,1,.88;%
+LightYellow2,.932,.932,.82;%
+LightYellow3,.804,.804,.705;%
+LightYellow4,.545,.545,.48;%
+Magenta1,1,0,1;%
+Magenta2,.932,0,.932;%
+Magenta3,.804,0,.804;%
+Magenta4,.545,0,.545;%
+Maroon1,1,.204,.7;%
+Maroon2,.932,.19,.655;%
+Maroon3,.804,.16,.565;%
+Maroon4,.545,.11,.385;%
+MediumOrchid1,.88,.4,1;%
+MediumOrchid2,.82,.372,.932;%
+MediumOrchid3,.705,.32,.804;%
+MediumOrchid4,.48,.215,.545;%
+MediumPurple1,.67,.51,1;%
+MediumPurple2,.624,.475,.932;%
+MediumPurple3,.536,.408,.804;%
+MediumPurple4,.365,.28,.545;%
+MistyRose1,1,.894,.884;%
+MistyRose2,.932,.835,.824;%
+MistyRose3,.804,.716,.71;%
+MistyRose4,.545,.49,.484;%
+NavajoWhite1,1,.87,.68;%
+NavajoWhite2,.932,.81,.63;%
+NavajoWhite3,.804,.7,.545;%
+NavajoWhite4,.545,.475,.37;%
+OliveDrab1,.752,1,.244;%
+OliveDrab2,.7,.932,.228;%
+OliveDrab3,.604,.804,.196;%
+OliveDrab4,.41,.545,.132;%
+Orange1,1,.648,0;%
+Orange2,.932,.604,0;%
+Orange3,.804,.52,0;%
+Orange4,.545,.352,0;%
+OrangeRed1,1,.27,0;%
+OrangeRed2,.932,.25,0;%
+OrangeRed3,.804,.215,0;%
+OrangeRed4,.545,.145,0;%
+Orchid1,1,.512,.98;%
+Orchid2,.932,.48,.912;%
+Orchid3,.804,.41,.79;%
+Orchid4,.545,.28,.536;%
+PaleGreen1,.604,1,.604;%
+PaleGreen2,.565,.932,.565;%
+PaleGreen3,.488,.804,.488;%
+PaleGreen4,.33,.545,.33;%
+PaleTurquoise1,.732,1,1;%
+PaleTurquoise2,.684,.932,.932;%
+PaleTurquoise3,.59,.804,.804;%
+PaleTurquoise4,.4,.545,.545;%
+PaleVioletRed1,1,.51,.67;%
+PaleVioletRed2,.932,.475,.624;%
+PaleVioletRed3,.804,.408,.536;%
+PaleVioletRed4,.545,.28,.365;%
+PeachPuff1,1,.855,.725;%
+PeachPuff2,.932,.796,.68;%
+PeachPuff3,.804,.688,.585;%
+PeachPuff4,.545,.468,.396;%
+Pink1,1,.71,.772;%
+Pink2,.932,.664,.72;%
+Pink3,.804,.57,.62;%
+Pink4,.545,.39,.424;%
+Plum1,1,.732,1;%
+Plum2,.932,.684,.932;%
+Plum3,.804,.59,.804;%
+Plum4,.545,.4,.545;%
+Purple1,.608,.19,1;%
+Purple2,.57,.172,.932;%
+Purple3,.49,.15,.804;%
+Purple4,.332,.1,.545;%
+Red1,1,0,0;%
+Red2,.932,0,0;%
+Red3,.804,0,0;%
+Red4,.545,0,0;%
+RosyBrown1,1,.756,.756;%
+RosyBrown2,.932,.705,.705;%
+RosyBrown3,.804,.608,.608;%
+RosyBrown4,.545,.41,.41;%
+RoyalBlue1,.284,.464,1;%
+RoyalBlue2,.264,.43,.932;%
+RoyalBlue3,.228,.372,.804;%
+RoyalBlue4,.152,.25,.545;%
+Salmon1,1,.55,.41;%
+Salmon2,.932,.51,.385;%
+Salmon3,.804,.44,.33;%
+Salmon4,.545,.298,.224;%
+SeaGreen1,.33,1,.624;%
+SeaGreen2,.305,.932,.58;%
+SeaGreen3,.264,.804,.5;%
+SeaGreen4,.18,.545,.34;%
+Seashell1,1,.96,.932;%
+Seashell2,.932,.898,.87;%
+Seashell3,.804,.772,.75;%
+Seashell4,.545,.525,.51;%
+Sienna1,1,.51,.28;%
+Sienna2,.932,.475,.26;%
+Sienna3,.804,.408,.224;%
+Sienna4,.545,.28,.15;%
+SkyBlue1,.53,.808,1;%
+SkyBlue2,.494,.752,.932;%
+SkyBlue3,.424,.65,.804;%
+SkyBlue4,.29,.44,.545;%
+SlateBlue1,.512,.435,1;%
+SlateBlue2,.48,.404,.932;%
+SlateBlue3,.41,.35,.804;%
+SlateBlue4,.28,.235,.545;%
+SlateGray1,.776,.888,1;%
+SlateGray2,.725,.828,.932;%
+SlateGray3,.624,.712,.804;%
+SlateGray4,.424,.484,.545;%
+Snow1,1,.98,.98;%
+Snow2,.932,.912,.912;%
+Snow3,.804,.79,.79;%
+Snow4,.545,.536,.536;%
+SpringGreen1,0,1,.498;%
+SpringGreen2,0,.932,.464;%
+SpringGreen3,0,.804,.4;%
+SpringGreen4,0,.545,.27;%
+SteelBlue1,.39,.72,1;%
+SteelBlue2,.36,.675,.932;%
+SteelBlue3,.31,.58,.804;%
+SteelBlue4,.21,.392,.545;%
+Tan1,1,.648,.31;%
+Tan2,.932,.604,.288;%
+Tan3,.804,.52,.248;%
+Tan4,.545,.352,.17;%
+Thistle1,1,.884,1;%
+Thistle2,.932,.824,.932;%
+Thistle3,.804,.71,.804;%
+Thistle4,.545,.484,.545;%
+Tomato1,1,.39,.28;%
+Tomato2,.932,.36,.26;%
+Tomato3,.804,.31,.224;%
+Tomato4,.545,.21,.15;%
+Turquoise1,0,.96,1;%
+Turquoise2,0,.898,.932;%
+Turquoise3,0,.772,.804;%
+Turquoise4,0,.525,.545;%
+VioletRed1,1,.244,.59;%
+VioletRed2,.932,.228,.55;%
+VioletRed3,.804,.196,.47;%
+VioletRed4,.545,.132,.32;%
+Wheat1,1,.905,.73;%
+Wheat2,.932,.848,.684;%
+Wheat3,.804,.73,.59;%
+Wheat4,.545,.494,.4;%
+Yellow1,1,1,0;%
+Yellow2,.932,.932,0;%
+Yellow3,.804,.804,0;%
+Yellow4,.545,.545,0;%
+Gray0,.745,.745,.745;%
+Green0,0,1,0;%
+Grey0,.745,.745,.745;%
+Maroon0,.69,.19,.376;%
+Purple0,.628,.125,.94}
+\endinput
+%%
+%% End of file `x11nam.def'.
diff --git a/ref/glance/xcolor.dtx b/ref/glance/xcolor.dtx
new file mode 100644
index 0000000..92b4ea5
--- /dev/null
+++ b/ref/glance/xcolor.dtx
@@ -0,0 +1,8231 @@
+% \iffalse meta-comment
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+%<*package>
+%% Please send error reports and suggestions for
+%% improvements to the above email address.
+%%
+%% This package contains code copied from
+%%
+%% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)]
+%% Copyright (C) 1994--1999 David Carlisle
+%%
+%% which is part of the Standard LaTeX `Graphics Bundle'.
+%%
+%</package>
+%<*extract|driver|test1|test2|test3|test4>
+\def\XCfileversion{v2.09}%
+\def\XCfiledate{2005/12/21}%
+%</extract|driver|test1|test2|test3|test4>
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in:
+%
+% http://www.latex-project.org/lppl.txt
+%
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% \fi
+%
+% \CheckSum{4875}
+%
+% \DoNotIndex{\def,\gdef,\edef,\xdef,\long,\let}
+% \DoNotIndex{\ifnum,\ifdim,\iftrue,\iffalse,\ifx,\ifcase,\else,\or,\fi}
+% \DoNotIndex{\bgroup,\egroup,\begingroup,\endgroup,\begin,\end}
+% \DoNotIndex{\relax,\endinput}
+% \DoNotIndex{\csname,\endcsname,\string,\the,\noexpand,\expandafter}
+% \DoNotIndex{\advance,\count,\dimen}
+% \DoNotIndex{\m at ne,\z@,\@ne,\tw@,\p@,\@@tmp}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+%
+% \iffalse
+%<*batchfile>
+\IfFileExists{xcolor.ins}{\let\uknext=\relax}{\let\uknext=\stop}
+\begin{filecontents*}{xcolor.ins}
+%% Package `xcolor' by Dr. Uwe Kern
+%%
+%% Extract all package files:
+%% `latex xcolor.ins'
+%%
+%% Put the generated files to their respective locations
+%% within the TeX installation:
+%% *.sty -> /tex/latex/xcolor/
+%% *.def -> /tex/latex/xcolor/
+%% *.pro -> /dvips/xcolor/
+%%
+%% Create the documentation:
+%% `latex xcolor.dtx'
+%% `latex xcolor.dtx'
+%% `makeindex -s gind.ist xcolor.idx'
+%% `latex xcolor.dtx'
+%% `latex xcolor.dtx'
+%%
+%% Run the test files (N=1,2,...):
+%% `latex xcolorN.tex'
+%% `latex xcolorN.tex'
+%%
+\def\batchfile{xcolor.ins}
+\input docstrip.tex
+\askforoverwritefalse
+\generate{\file{xcolor.lox}{\from{xcolor.dtx}{extract}}}
+\batchinput{xcolor.lox}
+\endbatchfile
+\end{filecontents*}
+%</batchfile>
+%
+%<*driver>
+\listfiles
+\ProvidesFile{xcolor.dtx}[\XCfiledate\space\XCfileversion\space
+ `xcolor' source and documentation (UK)]
+\documentclass{ltxdoc}
+\usepackage[table,showerrors,dvipsnames,hyperref]{xcolor}[2005/06/06]
+\usepackage{chngpage,varioref,tabularx,amsmath,amsthm}
+\usepackage
+ [\GinDriver,hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,%
+ pdftitle={xcolor \XCfileversion{} (\XCfiledate)},pdfauthor={Dr. Uwe Kern},%
+ pdfsubject={Color extensions for LaTeX and pdfLaTeX},%
+ pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,%
+ conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}]{hyperref}
+\OnlyDescription
+\EnableCrossrefs
+\CodelineIndex
+\makeatletter
+\def\Meaning#1{\texttt{\expandafter\expandafter\expandafter\strip at prefix\expandafter\meaning\csname #1\endcsname}}
+\makeatother
+\pagestyle{myheadings}
+\markright{\hskip-2.5cm xcolor \XCfileversion\space(\XCfiledate)}
+\begin{document}
+ \DocInput{xcolor.dtx}
+ \let\Section\section\def\section*#1{\Section*{#1}\addcontentsline{toc}{section}{#1}}
+ \begin{adjustwidth}{-2.5cm}{}
+ \def\markboth#1#2{}\PrintIndex
+ \end{adjustwidth}
+\end{document}
+%</driver>
+%
+%<*extract>
+\def\ukfile#1#2#3#4%
+ {\def\ukhead
+ {\ifnum#1>2 \perCent!^^J\fi
+ \defaultpreamble^^J\MetaPrefix^^J%
+ \ifcase#1
+ \string\ProvidesPackage{#2}^^J\or
+ \string\ProvidesFile{#2}^^J\or
+ \string\ProvidesFile{#2.def}^^J\or
+ \MetaPrefix\space #2.pro (PostScript/dvips header file)^^J\MetaPrefix\space
+ \fi
+ \space[\XCfiledate\space\XCfileversion\space#4\space(UK)]}
+ \usepreamble\ukhead
+ \file{#2.\ifcase#1sty\or tex\or def\or pro\fi}{\from{xcolor.dtx}{#3}}}
+\generate{
+\ukfile0{xcolor}{package}{LaTeX color extensions}
+\ukfile2{svgnam}{svgnames}{Predefined colors according to SVG 1.1}
+\ukfile2{x11nam}{x11names}{Predefined colors according to Unix/X11}
+\ukfile1{xcolor1}{test1}{Color conversion test}
+\ukfile1{xcolor2}{test2}{Pstricks color test}
+\ukfile1{xcolor3}{test3}{Color logging test}
+\ukfile1{xcolor4}{test4}{Color driver test}
+\def\PStail{\MetaPrefix\space End of file `\outFileName'.}
+\usepostamble\PStail
+\ukfile3{xcolor}{dvips}{LaTeX color extensions}
+}
+%</extract>
+% \fi
+%
+%
+%
+% \iffalse
+%-------------------------------------------------------------------------------
+% \fi
+%
+%
+% \makeatletter
+%
+% \def\testclr#1#{\@testclr{#1}}
+% \def\@testclr#1#2{{\fboxsep\z@\fbox{\colorbox#1{#2}{\phantom{XX}}}}}
+% \def\Testclr#1#{\@Testclr{#1}}
+% \def\@Testclr#1#2#3{\testclr#1{#2}~\rlap{\Color[-]{#3}}\\}
+% \def\TestClr#1#{\@TestClr{#1}}
+% \def\@TestClr#1#2#3{\testclr#1{#2}~\rlap{\Color[+]{#3}}\\}
+% \newif\if at Meta
+% \DeclareRobustCommand*\Meta{\@ifstar{\@Metatrue\@Meta}{\@Metafalse\@Meta}}
+% \newcommand*\@Meta[2][]{\meta{#2}\@ifxempty{#1}{}{\ensuremath{\mskip-1mu\rule[-.4ex]{0pt}{1ex}_{#1}}}\if at Meta\index{arguments\levelchar\meta{#2}\string|usage}\fi}
+% \def\DescribeArg#1{\leavevmode\@bsphack\marginpar{\raggedleft\Meta*{#1}}\@esphack\ignorespaces}
+% \def\DescribeFunc#1{\leavevmode\@bsphack\marginpar{\raggedleft\Function{#1}\strut}\@esphack\ignorespaces}
+%
+% \makeatother
+%
+% \def\Index#1{#1\index{#1\string|usage}}
+% \def\Package#1{\textsf{#1}\index{packages\levelchar\textsf{#1}\string|usage}}
+% \def\Program#1{\textsf{\itshape#1}\index{programs\levelchar\textsf{\itshape#1}\string|usage}}
+% \def\Model#1{\textsf{\bfseries#1}\index{color models\levelchar\textsf{\bfseries#1}\string|usage}}
+% \def\nModel#1{`#1'\index{color models\levelchar`#1'\string|usage}}
+% \def\pModel#1{\textbf{\itshape #1}}
+% \def\People#1#2{#1 #2\index{people\levelchar#2, #1\string|usage}}
+% \newcommand*\Color[2][+]{\textsl{#2}\ifx#1+\index{color names\levelchar\textsl{#2}\string|usage}\fi}
+% \def\Option#1{\texttt{#1}\index{package options\levelchar\texttt{#1}\string|usage}}
+% \def\Key#1{\textit{#1}\index{keys\levelchar\textit{#1}\string|usage}}
+% \def\File#1{\texttt{#1}\index{files\levelchar\texttt{#1}\string|usage}}
+% \def\Function#1{\textit{#1}\index{color functions\levelchar\textit{#1}\string|usage}}
+% \def\Op#1#2{#1\nolimits_{\,\Model{#2}}}
+% \def\med{\mathop{\textrm{med}}}
+% \def\mix{\mathop{\textrm{mix}}}
+% \def\rd{\mathop{\textrm{round}}}
+% \def\tint{\mathop{\textrm{tint}}}
+% \def\shade{\mathop{\textrm{shade}}}
+% \def\tone{\mathop{\textrm{tone}}}
+% \def\LC{\Package{color}}
+% \def\LCP{\Package{color} package}
+% \def\XC{\Package{xcolor}}
+% \def\XCP{\Package{xcolor} package}
+% \def\XCW{\texttt{\href{http://www.ukern.de/tex/xcolor.html}{www.ukern.de/tex/xcolor.html}}}
+% \def\URL#1{\texttt{\url{#1}}}
+% \def\CTAN#1#2{\texttt{\href{http://www.ctan.org/tex-archive/#1}{CTAN/#1#2}}}
+% \newtheorem{lemma}{Lemma}
+% \def\RtoI#1{\Gamma_{\!#1}}
+% \def\ItoR#1{\Delta_{#1}}
+% \def\bbbN{\textrm{I\kern-.333ex N}}
+% \def\bbbR{\textrm{I\kern-.333ex R}}
+% \def\Circ{\textsuperscript{$\circ$}}
+%
+% \newdimen\XCdim
+%
+% \parindent0pt
+% \extrarowheight1pt
+% \def\textfraction{0.01}
+% \def\topfraction{0.99}
+% \def\bottomfraction{0.99}
+% \def\floatpagefraction{0.70}
+% \setlength\abovecaptionskip{12pt}
+% \setlength\belowcaptionskip{10pt}
+% \colorlet{tableheadcolor}{gray!25}
+% \colorlet{tablerowcolor}{gray!12.5}
+%
+%
+%
+% \title{Extending \LaTeX's color facilities: the \XCP}
+% \author{\href{mailto:xcolor at ukern.de}{\fboxrule0pt\fboxsep2pt\fbox{Dr. Uwe Kern}}}
+% \date{\XCfileversion{} (\XCfiledate)
+% \thanks{This package can be downloaded from \CTAN{macros/latex/contrib/xcolor/}{}.
+% There is also an \textsf{xcolor} homepage: \XCW.
+% Please send error reports and suggestions for improvements to the author:
+% \texttt{\href{mailto:xcolor at ukern.de}{xcolor at ukern.de}}.}}
+% \maketitle
+%
+% \begin{abstract}
+% \noindent
+% \XC{} provides easy driver-independent access to several kinds of colors, tints, shades, tones, and mixes of arbitrary colors by means of color expressions like |\color{red!50!green!20!blue}|.
+% It allows to select a document-wide target color model and offers tools for automatic color schemes, conversion between twelve color models, alternating table row colors, color blending and masking, color separation, and color wheel calculations.
+% \end{abstract}
+%
+% \phantomsection\pdfbookmark[1]{\contentsname}{toc}
+% \tableofcontents\listoftables\listoffigures\newpage
+%
+%
+%
+%
+% \clearpage
+% \section{Introduction}
+%
+% \subsection{Purpose of this package}
+%
+% The \LCP{} provides a powerful and stable tool for handling colors within (pdf)\LaTeX{} in a consistent and driver-independent way, supporting several color models (slightly less driver-independent).
+%
+% Nevertheless, it is sometimes a bit clumsy to use, especially in cases where slight color variations, color mixes or color conversions are involved:
+% this usually implies the usage of another program that calculates the necessary parameters, which are then copied into a |\definecolor| command in \LaTeX.
+% Quite often, also a pocket calculator is involved in the treatment of issues like the following:
+% \begin{itemize}
+% \item My company has defined a corporate color, and the printing office tells me how expensive it is to use more than two colors in our new brochure, whereas all kinds of tints (e.g., a 75\% version) of our color can be used at no extra cost.
+% But how to access these color variations in \LaTeX?\\
+% (Answer: |\color{CorporateColor!75}| etc.)
+% \item My friend uses a nice color which I would like to apply in my own documents; unfortunately, it is defined in the \Model{hsb} model which is not supported in my favorite application pdf\LaTeX.
+% What to do now?\\
+% (Answer: just use the \Model{hsb} definitions, \XC{} will do the necessary calculations)
+% \item How does a mixture of 40\% \Color{green} and 60\% \Color{yellow} look like?\\
+% (Answer: 40\% \testclr{green} $+$ 60\% \testclr{yellow} $=$ \testclr{green!40!yellow}, e.g., |\color{green!40!yellow}|)
+% \item And how does its complementary color look like?\\
+% (Answer: \testclr{-green!40!yellow}, accessible via |\color{-green!40!yellow}|)
+% \item Now I want to mix three parts of the last color with two parts of its complement and one part of \Color{red}.
+% How does that look?\\
+% (Answer: $3\times$ \testclr{-green!40!yellow} $+ 2\times$ \testclr{green!40!yellow} $+ 1\times$ \testclr{red} $=$ \testclr{rgb:-green!40!yellow,3;green!40!yellow,2;red,1}, the last color being accessible via |\color{rgb:-green!40!yellow,3;green!40!yellow,2;red,1}|)
+% \item I know that light waves of 485nm are within the visible range. But which color do they represent?\\
+% (Answer: approximately \testclr[wave]{485}, via |\color[wave]{485}|)
+% \item My printing office wants all color definitions in my document to be transformed into the \Model{cmyk} model.
+% How can I do the calculations efficiently?\\
+% (Answer: |\usepackage[cmyk]{xcolor}| or |\selectcolormodel{cmyk}|)
+% \item I have a table with 50 rows.
+% How can I get alternating colors for entire rows without copying 50 |\rowcolor| commands? The alternating scheme should start in the 3rd row.\\
+% (Answer: something like |\rowcolors{3}{OddColor}{EvenColor}|)
+% \end{itemize}
+% These are some of the issues solved by the \XCP.
+% Its purpose can be summarized as to maintain the characteristics of \LC, while providing additional features and flexibility with (hopefully) easy-to-use interfaces.
+%
+%
+%
+% \subsection{Color tints, shades, tones, and complements}
+%
+% According to \cite{smith} we define the terms
+% \begin{itemize}
+% \item \textbf{\Index{tint}}: a color with \Color{white} added,
+% \item \textbf{\Index{shade}}: a color with \Color{black} added,
+% \item \textbf{\Index{tone}}: a color with \Color{gray} added.
+% \end{itemize}
+% These are special cases of a general function
+% $\mix(C,C',p)$ which constructs a new color, consisting of $p$ parts of color $C$ and $1-p$ parts of color $C'$, where $0\le p\le1$.
+% Thus, we set
+% \begin{align}
+% \tint(C,p) &:= \mix(C,|white|,p)\\
+% \shade(C,p) &:= \mix(C,|black|,p)\\
+% \tone(C,p) &:= \mix(C,|gray|,p)
+% \end{align}
+% where |white|, |black|, and |gray| are model-specific constants, see table \vref{tab.const}.
+% Further we define the term
+% \begin{itemize}
+% \item \textbf{complement}: a color $C^*$ that yields \Color{white} if superposed with the original color $C$,
+% \end{itemize}
+% knowing that there are also different concepts of complementarity in place (e.g., opposite colors on \emph{color wheels}).
+% See section \vref{sec.cnv} for calculation details and section \vref{sec.harmony} for some remarks on color wheels.
+%
+%
+%
+% \subsection{Color models}
+%
+% A color model is a tool to describe or represent a certain set of colors in a way that is suitable for the desired target device, e.g., a screen or a printer.
+% There are proprietary models (like \Index{Pantone} or \Index{HKS}) that provide finite sets of colors (often called \emph{\Index{spot color}s}), where the user has to choose from without caring about parametrisations; on the other hand, there are parameter-driven models like \Model{gray}, \Model{rgb}, and \Model{cmyk}, that aim to represent large finite or even (theoretically) infinite sets of colors, built on very small subsets of base colors and rules, how to construct other colors f [...]
+% For example, a large range of colors can be constructed by linear combinations of the base colors \Color{red}, \Color{green}, and \Color{blue}.
+% On the other hand, usually \Index{spot color}s can only be \emph{approximated} by parameter values in models like \Model{cmyk} or \Model{rgb}; the original colors are being physically mixed even dependent on the targeted kind of paper.
+% Finally, there are certain colors like \Color{gold} and \Color{silver} that are hardly reproducable by any parameter-driven color model on standard ink or laser printers.
+%
+%
+%
+% \subsection{Color wheels and color harmony}\label{sec.harmony}
+%
+% There has been a long history of placing colors (hues) on wheels in order to discuss theoretical or practical color issues (e.g., \People{Isaac}{Newton}, \People{Johann Wolfgang von}{Goethe}).
+% One reason may be that the circle itself is a natural tool to demonstrate common relationships as well as opposite properties.
+%
+% Nowadays, there exists some confusion about notions, since both major areas related to color --- art and graphics design on one hand, scientific color theory on the other hand --- tend to use the same words to describe color properties, however meaning sometimes very different facts!
+% Thus, the appearance of color wheels differs as well as the meaning of concepts like `primary' or `complementary' colors.
+%
+%
+% \paragraph{Typical color wheel construction}
+% First, three \emph{primary colors} are placed at 0\Circ, 120\Circ, 240\Circ (artists often choose \Color{red}, \Color{yellow}, \Color{blue}, whereas color scientists might prefer \Color{red}, \Color{green}, \Color{blue}).
+% Next, three \emph{secondary colors} are put at 60\Circ, 180\Circ, 300\Circ.
+% Then, six \emph{tertiary colors} may be placed in between (30\Circ, 90\Circ, \dots).
+% This is why color wheels are frequently described to consist of twelve equidistant colors, although the algorithm can be repeated arbitrarily often.
+%
+%
+% \paragraph{Color harmonies derived from a wheel}
+% We start with an arbitrary color wheel:
+% \begin{itemize}
+% \item \textbf{complementary colors} have a distance of 180\Circ{} on the wheel,
+% \item \textbf{color triads} consist of three colors in 120\Circ{} steps,
+% \item \textbf{color tetrads} consist of four colors in 90\Circ{} steps.
+% \end{itemize}
+% We assume now that the wheel is partitioned into $2n$ sectors of equal size:
+% \begin{itemize}
+% \item \textbf{split complementary colors} of a given color are the two immediate neighbours of its complementary color, characterised by the positions $\frac{n\pm1}{2n}\cdot360^\circ$,
+% \item \textbf{analogous colors} to a given color are its two or four neighbours, characterised by the positions $\pm\frac{1}{2n}\cdot360^\circ$ and $\pm\frac{2}{2n}\cdot360^\circ$.
+% \end{itemize}
+% Given these methods to generate `color harmonies', we conclude that the results depend heavily on how we constructed the wheel!
+% Moreover, the choice of $n$ will affect the visual results as well.
+% Examples are shown in figure \vref{fig.harmony}.
+%
+%
+%
+%
+% \clearpage
+% \section{The User Interface}
+%
+% \subsection{Preparation}
+%
+% \subsubsection{Package installation}
+%
+% First of all, put \File{xcolor.sty} and all the \File{.def} files to some place where (pdf)\LaTeX{} finds them.
+% A typical place according to the \emph{\TeX\ Directory Structure} (TDS) would be the directory |texmf/tex/latex/xcolor|, where |texmf| denotes the main directory of your \TeX\ installation.
+% Additionally, put \File{xcolor.pro} to a place where \Program{dvips} finds it, typically |texmf/dvips/xcolor|.
+% Usually, you will have to run some kind of filename database update in order to make the files known and quickly searchable to the \TeX\ system.
+% Then simply use \XC{} (instead of \LC) in your document.
+% Thus, the general command is |\usepackage|\oarg{options}|{xcolor}| in the document preamble.
+% Table \vref{tab.package} shows what has to be taken into account with respect to the package loading order.
+%
+%
+% \subsubsection{Package options}
+%
+% In general, there are several types of options:
+% \begin{itemize}
+% \item options that determine the color driver as explained in \cite{dpc} and \cite{color}, currently: \Option{dvips}, \Option{xdvi}, \Option{dvipdf}, \Option{dvipdfm}, \Option{dvipdfmx}, \Option{pdftex}, \Option{dvipsone}, \Option{dviwindo}, \Option{emtex}, \Option{dviwin}, \Option{oztex}, \Option{textures}, \Option{pctexps}, \Option{pctexwin}, \Option{pctexhp}, \Option{pctex32}, \Option{truetex}, \Option{tcidvi}, \Option{vtex}, \Option{xetex},
+% \item options that determine the target color model\footnote{Section \vref{sec.tgt} explains how this setting can be overridden at any point in a document.} (\Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}) or disable colored output (\Option{monochrome}),
+% \item options that control whether and how certain sets of predefined colors are being loaded: \Option{dvipsnames}, \Option{dvipsnames*}, \Option{svgnames}, \Option{svgnames*}, \Option{x11names}, \Option{x11names*},
+% \item options that determine which other packages are to be loaded (\Option{table}, \Option{fixpdftex}, \Option{pst}\footnote{\label{fnt.pst}This option will soon become obsolete, since recent \File{pstricks.sty} versions do load \XC, whereas \Package{pstcol} is no longer needed.}) or supported (\Option{hyperref}),
+% \item options that determine the behaviour of other commands: \Option{prologue}, \Option{kernelfbox}, \Option{xcdraw}, \Option{noxcdraw}, \Option{showerrors}, \Option{hideerrors},
+% \item obsolete options: \Option{override}, \Option{usenames}, \Option{nodvipsnames}.
+% \end{itemize}
+% All available package options (except driver selection and obsolete options) are listed in table \vref{tab.opt}.
+% \DescribeMacro\GetGinDriver
+% \DescribeMacro\GinDriver
+% In order to facilitate the co-operation with the \Package{hyperref} package, there is a command |\GetGinDriver|\footnote{This command is executed automatically if the package option \Option{hyperref} is used.} that grabs the driver actually used and puts it into the command |\GinDriver|.
+% The latter can then be used within \Package{hyperref} (or other packages), see the code example on page \pageref{ex.range}.
+% If there is no corresponding \Package{hyperref} option, \Option{hypertex} will be taken as default.
+%
+% Warning: there is a substantial difference between \XC{} and \LC{} regarding how the \Option{dvips} option is being handled.
+% The \LCP{} implicitly invokes the \Option{dvipsnames} option, whenever one of the |dvips|, |oztex|, |xdvi| drivers is selected.
+% This makes documents less portable, since whenever one of these colors is used without explicit \Option{dvipsnames} option, other drivers like |pdftex| will issue error messages because of unknown colors.
+% Therefore, \XC{} always requires an explicit \Option{dvipsnames} option to use these names --- which then works for all drivers.
+%
+%
+% \begin{table}[p]\caption{Package options}\label{tab.opt}
+% \extrarowheight2pt
+% \begin{adjustwidth}{-2.5cm}{}
+% \advance\textwidth2.5cm
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabularx}{\linewidth}{lX}
+% \hline
+% \rowcolor{tableheadcolor}
+% \em Option & \em Description\\
+% \Option{natural}& (Default.) Keep all colors in their model, except \Model{RGB} (converted to \Model{rgb}), \Model{HSB} (converted to \Model{hsb}), and \Model{Gray} (converted to \Model{gray}).\\
+% \Option{rgb}& Convert all colors to the \Model{rgb} model.\\
+% \Option{cmy}& Convert all colors to the \Model{cmy} model.\\
+% \Option{cmyk}& Convert all colors to the \Model{cmyk} model.\\
+% \Option{hsb}& Convert all colors to the \Model{hsb} model.\\
+% \Option{gray}& Convert all colors to the \Model{gray} model. Especially useful to simulate how a black \& white printer will output the document.\\
+% \Option{RGB}& Convert all colors to the \Model{RGB} model (and afterwards to \Model{rgb}).\\
+% \Option{HTML}& Convert all colors to the \Model{HTML} model (and afterwards to \Model{rgb}).\\
+% \Option{HSB}& Convert all colors to the \Model{HSB} model (and afterwards to \Model{hsb}).\\
+% \Option{Gray}& Convert all colors to the \Model{Gray} model (and afterwards to \Model{gray}).\\
+% \hline
+% \Option{dvipsnames}, \Option{dvipsnames*}& Load a set of predefined colors.\footnotemark[1]\\
+% \Option{svgnames}, \Option{svgnames*}& Load a set of predefined colors according to \Index{SVG} 1.1.\footnotemark[1]\\
+% \Option{x11names}, \Option{x11names*}& Load a set of predefined colors according to \Index{Unix}/\Index{X11}.\footnotemark[1]\\
+% \hline
+% \Option{table}& Load the \Package{colortbl} package, in order to use the tools for coloring rows, columns, and cells within tables.\\
+% \Option{fixpdftex}& Load the \Package{pdfcolmk} package, in order to improve |pdftex|'s color behaviour (see section \vref{sec.fixpdftex}).\\
+% \Option{pst}& Load the \Package{pstcol} package, in order to use `normal' color definitions within \Package{pstricks} macros (see footnote \vref{fnt.pst}).\\
+% \Option{hyperref}& Support the \Package{hyperref} package in terms of color expressions by defining additional keys (see section \vref{sec.hyperref}).\\
+% \hline
+% \Option{prologue}& Write prologue information to \File{.xcp} file for every color definition (as described in section \vref{sec.prologue}).\\
+% \hline
+% \Option{kernelfbox}& Use \LaTeX{} kernel method to draw \texttt{\string\f(rame)box} frames\footnotemark[2].\\
+% \Option{xcdraw}& Use driver-specific commands to draw frames and color boxes.\footnotemark[2]\\
+% \Option{noxcdraw}& (Default.) Use generic code to draw frames and color boxes.\footnotemark[2]\\
+% \hline
+% \Option{showerrors}& (Default.) Display an error message if an undefined color is being used (same behaviour as in the original \LCP).\\
+% \Option{hideerrors}& Display only a warning if an undefined color is being used, and replace this color by \Color{black}.\\
+% \hline\hline
+% \multicolumn2{c}{\footnotemark[1]\,See section \vref{sec.additionalcolors}.\quad \footnotemark[2]\,See section \vref{sec.fbox}.}\\
+% \hline
+% \end{tabularx}
+% \end{adjustwidth}
+% \end{table}
+%
+%
+% \begin{table}[htbp]\caption{Package loading order}\label{tab.package}
+% \centering
+% \extrarowheight2pt
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabular}{lccccc}
+% \hline
+% \rowcolor{tableheadcolor}
+% \em Action/Package & \LC & \Package{colortbl}& \Package{pdfcolmk}& \Package{pstcol}& \Package{hyperref}\\
+% load before \XC & no & no & no & no & allowed \\
+% load with \XC{} option& --- & \Option{table} & \Option{fixpdftex} & \Option{pst}\footnotemark[1] & ---\\
+% load after \XC & no & no & allowed & no & allowed \\
+% \hline\hline
+% \multicolumn5{c}{\footnotemark[1]\,not recommended, better use recent \File{pstricks.sty}}\\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+%
+% \begin{table}[htbp]\caption{Supported color models}\label{tab.mod}
+% \centering
+% \extrarowheight2pt
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabular}{l>{\em}l>{$}l<{$}rl}
+% \hline
+% \rowcolor{tableheadcolor}
+% \emph{Name} & Base colors/notions & \emph{Parameter range}& \multicolumn2{>{\columncolor{tableheadcolor}}l}{\emph{Default}}\\
+% \Model{rgb} & red, green, blue & \left[0,1\right]^3&& \\
+% \Model{cmy} & cyan, magenta, yellow & \left[0,1\right]^3&& \\
+% \Model{cmyk} & cyan, magenta, yellow, black & \left[0,1\right]^4&& \\
+% \Model{hsb} & hue, saturation, brightness & \left[0,1\right]^3&& \\
+% \Model{Hsb} & hue\Circ\!, saturation, brightness & \left[0,H\right]\times\left[0,1\right]^2&$H=$& $\mkern-15mu\rangeHsb$\\
+% \Model{tHsb} & hue\Circ\!, saturation, brightness & \left[0,H\right]\times\left[0,1\right]^2&$H=$& $\mkern-15mu\rangeHsb$\\
+% \Model{gray} & gray & \left[0,1\right]&& \\
+% \Model{RGB} & Red, Green, Blue & \{0,1,\dots,L\}^3& $L\,=$& $\mkern-15mu\rangeRGB$\\
+% \Model{HTML} & RRGGBB & \{\texttt{000000},\dots,\texttt{FFFFFF}\}&& \\
+% \Model{HSB} & Hue, Saturation, Brightness & \{0,1,\dots,M\}^3& $M=$& $\mkern-15mu\rangeHSB$\\
+% \Model{Gray} & Gray & \{0,1,\dots,N\}& $N\,=$& $\mkern-15mu\rangeGray$\\
+% \Model{wave} & lambda \emph{(nm)}& \left[363,814\right]&& \\
+% \hline\hline
+% \multicolumn5{c}{$L,M,N$ are positive integers; $H$ is a positive real number}\\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+%
+% \subsubsection{Executing additional initialisation commands}
+%
+% \DescribeMacro\xcolorcmd
+% Here is a simple interface to pass commands that should be executed at the end of the \XCP{} (immediately before the initialising |\color{black}| is executed).
+% Just say |\def\xcolorcmd|\marg{commands} at some point before \XC{} is loaded.
+%
+% Example: assuming that |a.tex| is a complete \LaTeX{} document, a command like
+% `|latex \def\xcolorcmd{\colorlet{black}{red}}\input{a}|'
+% at the console generates a file |a.dvi| with all occurences of \Color{black} being replaced by \Color{red}, without the necessity to change the source file itself.
+% (The exact spelling of the console command might vary across operating systems and \TeX{} distributions.)
+%
+%
+%
+% \subsection{Color models}
+%
+% \subsubsection{Supported color models}
+%
+% The list of supported color models and their parameter ranges is given in table \vref{tab.mod}.
+% We emphasize that this color support is independent of the chosen driver.
+%
+% `Color model support' also means that it is possible to specify colors directly with their parameters, e.g., by saying |\textcolor[cmy]{0.7,0.5,0.3}{foo}| (\textcolor[cmy]{0.7,0.5,0.3}{foo}) or |\textcolor[HTML]{AFFE90}{foo}| (\textcolor[HTML]{AFFE90}{foo}).
+%
+% \paragraph{\Model{rgb}, \Model{cmyk}, \Model{hsb}, \Model{gray}}
+% These are the models supported by \Index{PostScript} directly.
+% We therefore refer to \cite{plrm} for a description of their properties and relations.
+% There is a special command
+% \DescribeMacro\adjustUCRBG
+% to fine-tune the mechanisms of \emph{undercolor-removal} and \emph{black-generation} during conversion to the \Model{cmyk} model, see section \vref{sec.cmy2cmyk} for details.
+%
+% \paragraph{\Model{cmy}}
+% This is mainly a model for intermediary calculation steps.
+% With respect to that, it is a simple complement of \Model{rgb}.
+% As far as visualisation is concerned, \Model{cmy} is treated as \Model{cmyk} with $k=0$.
+%
+% \paragraph{\Model{HTML}}
+% This is a model derived from \Model{rgb} in order to enable input of color parameters from web pages or CSS files.
+% Therefore, it is not really a color model of its own right, but rather a user interface for convenience.
+% It is worth mentioning that \Model{HTML} accepts any combination of the characters |0|--|9|, |A|--|F|, |a|--|f|, as long as the string has a length of exactly 6~characters.
+% However, outputs of conversions to \Model{HTML} will always consist of numbers and \emph{uppercase} letters.
+%
+% \paragraph{\Model{Hsb}, \Model{tHsb}}
+% Firstly, \Model{Hsb} is a `user interface' model, mapping $\emph{hue}\in[0,1]$ onto $\emph{hue\Circ}\in[0,H]$, where $H$ is given by |\def\rangeHsb|\marg{H}.
+% \DescribeMacro\rangeHsb
+% Thus, if $H=360$, we can think of a circle or wheel to specify the \emph{hue\Circ} parameter.
+% Secondly, \Model{Hsb} is the basis for \Model{tHsb}, also named \pModel{tuned} \Model{Hsb}, which enables the user to apply a piecewise linear transformation on \emph{hue\Circ} by shifting selected \emph{hue\Circ} values forward or backward on the circle.
+% This transformation is defined by |\def\rangetHsb{|$x_1,y_1;x_2,y_2;\dots$|}|
+% \DescribeMacro\rangetHsb
+% which specifies that $\emph{hue\Circ}=x_1$ in \Model{tHsb} means $\emph{hue\Circ}=y_1$ in \Model{Hsb}, etc.
+% For example, \Color{yellow} is at 60\Circ{} in the \Model{Hsb} circle (\Color{red} being at 0\Circ), however, in most color wheels used by artists, \Color{yellow} is at 120\Circ.
+% Therefore, a `|120,60|' entry would make sense if we planned to replicate an artist's color wheel via \Model{tHsb}.
+% See section \vref{sec.tHsb2Hsb} for the exact transformation formula and further restrictions, and section \vref{sec.harmony} for color wheels and color harmonies.
+% Figure \vref{fig.tHsb} may serve for comparison purposes.
+%
+% Example: `|\def\rangetHsb{|\texttt{\rangetHsb}|}|' is in fact \XC's default setting.
+%
+% \paragraph{\Model{wave}}
+% With this model we try to make wavelengths transformable to standard color models, in order to approximate the visual appearance of light waves.
+% While the visible spectrum covers a range of approximately 400--750\,nm, the implementation in \XC{} generally allows for all real `wavelengths' $\lambda$ that have an absolute value less than \csname strip at pt\endcsname\maxdimen{} (the biggest number \TeX{} can represent as a dimension).
+% However, the probability of getting any non-black color outside the range of $\lambda\in[363,814]$ is exactly zero.
+% Therefore, figure \vref{fig.spectrum} illustrates only the mentioned wavelength interval.
+% Note that it is not possible to convert other models to \Model{wave} in a sensible way, since the latter covers only a limited range of colors.
+%
+% \paragraph{\Model{RGB}, \Model{HSB}, \Model{Gray}}
+% These are derived models, turning the continuous $[0,1]$ parameter ranges of \Model{rgb}, \Model{hsb}, and \Model{gray} to finite sets of integers; we therefore use the term \emph{integer models}.
+% The constants $L, M, N$ of table \ref{tab.mod} are defined via the commands |\def\rangeRGB|\marg{L},
+% \DescribeMacro\rangeRGB
+% |\def\rangeHSB|\marg{M},
+% \DescribeMacro\rangeHSB
+% and |\def\rangeGray|\marg{N}.
+% \DescribeMacro\rangeGray
+% Changes of these constants can be done \emph{before} or \emph{after} the \XCP{} is loaded, e.g.,
+% \label{ex.range}\begin{verbatim}
+% \documentclass{article}
+% ...
+% \def\rangeRGB{15}
+% \usepackage[dvips]{xcolor}
+% ...
+% \GetGinDriver
+% \usepackage[\GinDriver]{hyperref}
+% ...
+% \begin{document}
+% ...
+% \def\rangeRGB{63}
+% ...
+% \end{verbatim}
+%
+%
+% \subsubsection{Substituting individual color models}\label{sec.subst}
+%
+% \DescribeMacro\substitutecolormodel
+% \marg{source model}\marg{target model-list}\\
+% Substitute \Meta{source model} by the first actually present model that occurs in \Meta{target model-list}.
+% Only color models of type \Meta{num model} are allowed;
+% all changes are local to the current group, but a prepended |\xglobal| is obeyed.
+%
+% Example: assume the actual driver has an incorrect implementation of \Model{hsb} whereas \Model{rgb} looks well.
+% Then |\substitutecolormodel{hsb}{rgb}| could be a good choice, since it converts --- from that point onwards --- all definitions of \Model{hsb} colors by \XC's algorithms into \Model{rgb} specifications, without touching other models.
+%
+%
+% \subsubsection{Changing the target color model within a document}\label{sec.tgt}
+%
+% \DescribeMacro\selectcolormodel
+% \marg{num model}\\
+% Sets the target model to \Meta{num model}, where the latter is one of the model names allowed as package option (i.e., \Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}), see figure \vref{fig.tgt} for an example.
+% There are two possible hooks, where the conversion to the target model can take place:
+% \begin{itemize}
+% \item \DescribeMacro\ifconvertcolorsD at color \emph{definition} time\footnote{This means that all \emph{newly} defined colors will be first converted to the target model, then saved.} (i.e., within |\definecolor| and friends); this is controlled by the switch |\ifconvertcolorsD|;
+% \item \DescribeMacro\ifconvertcolorsU at time of color \emph{usage} (immediately before a color is displayed, therefore covering colors that have been defined in other models or that are being specified directly like |\color[rgb]{.1,.2,.3}|); this is controlled by the switch |\ifconvertcolorsU|.
+% \end{itemize}
+% Both switches are set to `true' by selecting any of the models, except \Option{natural}, which sets them to `false'.
+% This applies for selection via a package option as well as via |\selectcolormodel|.
+% Why don't we simply convert all colors at time of usage?
+% If many colors are involved, it can save some processing time when all conversions are already done during color definitions.
+% Best performance can be achieved by saying |\usepackage[rgb,...]{xcolor}\convertcolorsUfalse|, which is actually the way how \XC{} worked up to version 1.07.
+%
+%
+% \begin{table}[p]\caption{Arguments and terminology}\label{tab.term}
+% \def\RS{\ensuremath{\to}\space}
+% \footnotesize\raggedleft
+% \extrarowheight2pt
+% \begin{adjustwidth}{-2.5cm}{}
+% \advance\textwidth2.5cm
+% \tabcolsep.25em
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabularx}{\textwidth}{lX}
+% \hline
+% \rowcolor{tableheadcolor}
+% \em Element & \em Replacement string\\
+% \Meta*{empty}& \RS empty string `'\\
+% \Meta*{minus}& \RS non-empty string consisting of one or more minus signs `|-|'\\
+% \Meta*{plus}& \RS non-empty string consisting of one or more plus signs `|+|'\\
+% \hline
+% \Meta*{int}& \RS integer number\hfill(\emph{integer})\\
+% \Meta*{num}& \RS non-negative integer number\hfill(\emph{number})\\
+% \Meta*{dec}& \RS real number\hfill(\emph{decimal})\\
+% \Meta*{div}& \RS non-zero real number\hfill(\emph{divisor})\\
+% \Meta*{pct}& \RS real number from the interval $[0,100]$\hfill(\emph{percentage})\\
+% \hline
+% \Meta*{id}& \RS non-empty string consisting of letters and digits\hfill(\emph{identifier})\\
+% \Meta*{ext id}& \RS \Meta{id}\newline
+% \RS \Meta[1]{id}|=|\Meta[2]{id}\\
+% \Meta*{id-list}& \RS \Meta[1]{ext id}|,|\Meta[2]{ext id}|,...,|\Meta[l]{ext id}\\
+% \Meta*{name}& \RS \Meta{id}\hfill(\emph{explicit name})\newline
+% \RS `|.|'\hfill(\emph{implicit name})\\
+% \Meta*{core model}& \RS `|rgb|', `|cmy|', `|cmyk|', `|hsb|', `|gray|'\hfill(\emph{core models})\\
+% \Meta*{num model}& \RS \Meta{core model}\newline
+% \RS `|RGB|', `|HTML|', `|HSB|', `|Gray|'\hfill(\emph{integer models})\newline
+% \RS `|Hsb|', `|tHsb|', `|wave|'\hfill(\emph{decimal models})\\
+% \Meta*{model}& \RS \Meta{num model}\hfill(\emph{numerical models})\newline
+% \RS `|named|'\hfill(\emph{pseudo model})\\
+% \Meta*{model-list}& \RS \Meta[1]{model}|/|\Meta[2]{model}|/.../|\Meta[m]{model} \hfill(\emph{multiple models})\newline
+% \RS \Meta{core model}|:|\Meta[1]{model}|/|\Meta[2]{model}|/.../|\Meta[m]{model}\\
+% \Meta*{spec}& \RS comma-separated list of numerical values\hfill(\emph{explicit specification})\newline
+% \RS space-separated list of numerical values\hfill(\emph{explicit specification})\newline
+% \RS name of a `named' color\hfill(\emph{implicit specification})\\
+% \Meta*{spec-list}& \RS \Meta[1]{spec}|/|\Meta[2]{spec}|/.../|\Meta[m]{spec} \hfill(\emph{multiple specifications})\\
+% \Meta*{type}& \RS \Meta{empty}\newline
+% \RS `|named|', `|ps|'\\
+% \hline
+% \Meta*{expr}& \RS \Meta{prefix}\Meta{name}\Meta{mix expr}\Meta{postfix}\hfill(\emph{standard color expression})\\
+% \Meta*{prefix}& \RS \Meta{empty}\newline
+% \RS \Meta{minus}\hfill(\emph{complement indicator})\\
+% \Meta*{mix expr}& \RS |!|\Meta[1]{pct}|!|\Meta[1]{name}|!|\Meta[2]{pct}|!|\Meta[2]{name}|!...!|\Meta[n]{pct}|!|\Meta[n]{name} \hfill(\emph{complete mix expr.})\newline
+% \RS |!|\Meta[1]{pct}|!|\Meta[1]{name}|!|\Meta[2]{pct}|!|\Meta[2]{name}|!...!|\Meta[n]{pct} \hfill(\emph{incomplete mix expr.})\\
+% \Meta*{postfix}& \RS \Meta{empty}\newline
+% \RS |!!|\Meta{plus}\hfill(\emph{series step})\newline
+% \RS |!![|\Meta{num}|]|\hfill(\emph{series access})\\
+% \hline
+% \Meta*{ext expr}& \RS \Meta{core model}|,|\Meta{div}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec}\newline
+% \RS \Meta{core model}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec}\\
+% \hline
+% \Meta*{func expr}& \RS |>|\Meta{function}|,|\Meta[1]{arg}|,|\Meta[2]{arg}|,...,|\Meta[j]{arg}\hfill(\emph{color function expression})\\
+% \Meta*{function}& \RS `|wheel|', `|twheel|'\hfill(\emph{color functions})\\
+% \hline
+% \Meta*{color}& \RS \Meta{color expr}\Meta[1]{func expr}\Meta[2]{func expr}|...|\Meta[i]{func expr}\\
+% \Meta*{color expr}& \RS \Meta{name}\newline
+% \RS \Meta{expr}\newline
+% \RS \Meta{ext expr}\\
+% \hline\hline
+% \rowcolor{white}
+% Remarks:& Each \RS denotes a possible replacement string for the element in the left column;
+% however, further context-dependent restrictions may apply.
+% See main text for details.
+% A string `|foo|' is always to be understood without the quotes.
+% $i,j,k,l,m,n$ denote non-negative integers, $k,l,m,n>0$, $m\le8$.\\
+% \hline
+% \end{tabularx}
+% \end{adjustwidth}
+% \end{table}
+%
+%
+%
+% \subsection{Arguments and terminology}\label{sec.term}
+%
+% Before we describe \XC's color-related commands in detail, we define several elements or identifiers that appear repeatedly within arguments of those commands.
+% A general syntax overview is given in table \vref{tab.term}.
+%
+%
+% \subsubsection{Additional remarks and restrictions on arguments}
+%
+% \paragraph{Basic strings and numbers}
+% \DescribeArg{empty}
+% \DescribeArg{minus}
+% \DescribeArg{plus}
+% \DescribeArg{int}
+% \DescribeArg{num}
+% \DescribeArg{dec}
+% \DescribeArg{pct}
+% \DescribeArg{div}
+% These arguments do not need much explanation.
+% However, as far as numerical values are concerned, it is noteworthy that real numbers in (La)\TeX{} are --- as long as they are to be used in the context of lengths, dimensions, or skips --- are restricted to a maximum absolute value $<16384$.
+% Certainly, in a chain of numerical calculations, this constraint has also to be obeyed for every single interim result, which usually implies further range restrictions.
+% Since \XC{} makes extensive use of \TeX's internal dimension registers for most types of calculations, this should be kept in mind whenever \Meta{ext expr} expressions are to be used.
+%
+%
+% \paragraph{Color names}
+% \DescribeArg{name}
+% A \Meta{name} denotes the declared name (or the name to be declared) of a \emph{color} or a \emph{color series};
+% it may be declared \emph{explicitly} by one of the following commands: |\definecolor|, |\providecolor|, |\colorlet|, |\definecolorset|, |\providecolorset|, |\definecolorseries|, |\definecolors|, |\providecolors|.
+% On the other hand, the reserved color name `|.|' is declared \emph{implicitly} and denotes the \emph{current color}.
+% Actually, besides letters and digits, certain other characters do also work for \Meta{name} declarations, but the given restriction avoids misunderstandings and ensures compatibility with future extensions of \XC.
+%
+% Examples: `|red|', `|MySpecialGreen1980|', `|.|'.
+%
+%
+% \paragraph{Color models}
+% \DescribeArg{core model}
+% \DescribeArg{num model}
+% \DescribeArg{model}
+% The differentiation between \emph{core models} (\Model{rgb}, \Model{cmy}, \Model{cmyk}, \Model{hsb}, \Model{gray}), \emph{integer models} (\Model{RGB}, \Model{HTML}, \Model{HSB}, \Model{Gray}), \emph{decimal models} (\Model{Hsb}, \Model{tHsb}, \Model{wave}) and \emph{pseudo models} (currently \nModel{named}, \nModel{ps}) has a simple reason: core models with their parameter ranges based on the unit interval $[0,1]$ are best suited for all kinds of calculations, whereas the purpose of t [...]
+% Finally, the decimal models \Model{Hsb} and \Model{tHsb} are special-purpose versions of \Model{hsb}, whereas \Model{wave} and the pseudo model \nModel{named} have a special status, since they are `calculation-averse': it is usually only possible to convert such a color into one of the other models, but not the other way round.
+% Even worse for the pseudo model \nModel{ps}: since such colors contain \Index{PostScript} code, they are absolutely intransparent for \TeX.
+%
+%
+% \paragraph{Color specifications}
+% \DescribeArg{spec}
+% The \Meta{spec} argument --- which specifies the parameters of a color --- obviously depends on the underlying color model.
+% We differentiate between \emph{explicit} and \emph{implicit} specification, the former referring to numerical parameters as explained in table \vref{tab.mod}, the latter --- ideally --- referring to driver-provided names.
+%
+% Examples: `|.1,.2,.3|', `|.1 .2 .3|', `|0.56789|', `|89ABCD|', `|ForestGreen|'.
+%
+%
+% \paragraph{Multiple models and specifications}
+% \DescribeArg{model-list}
+% \DescribeArg{spec-list}
+% These arguments always appear in (explicit or implicit) pairs within the following color definition commands:
+% |\definecolor|, |\providecolor|, |\definecolorset|, |\providecolorset|.
+% First, \Meta{model-spec} is being reconciled with the current target model (as set by a package option or the |\selectcolormodel| command); in case there is no exact match, the first model of the list is chosen.
+% Then, the corresponding color specification will be selected from \Meta{spec-list}, such that we arrive at a proper $(\Meta{model}, \Meta{spec})$ pair.
+% Therefore, in the actual executed color definition there is no ambiguity anymore.
+% The extended form \Meta{core model}|:|\Meta[1]{model}|/|\Meta[2]{model}|/.../|\Meta[m]{model} causes an immediate conversion of the relevant \Meta{spec} to \Meta{core model}; an unknown target model will be silently ignored here.
+%
+% Examples: `|rgb/cmyk/named/gray|', `|0,0,0/0,0,0,1/Black/0|', `|rgb:cmy/hsb|'.
+%
+%
+% \paragraph{The type argument}
+% \DescribeArg{type}
+% This is used only in the context of color defining commands, see the description of |\definecolor| and friends.
+%
+%
+% \paragraph{Standard color expressions}
+% \DescribeArg{expr}
+% \DescribeArg{prefix}
+% \DescribeArg{mix expr}
+% \DescribeArg{postfix}
+% These expressions serve as a tool to easily specify a certain form of cascaded color mixing which is described in detail in section~\ref{sec.expr-meaning}.
+% The \Meta{prefix} argument controls whether the color following thereafter or its complement will be relevant:
+% an odd number of minus signs indicates that the color resulting from the remaining expression has to be converted into its complementary color.
+% An \emph{incomplete mix expression} is just an abbreviation for a \emph{complete mix expression} with $\Meta[n]{name} = |white|$, in order to save some keystrokes in the case of tints.
+% The \Meta{postfix} string is usually empty, but it offers some additional functionality in the case of a \emph{color series}:
+% the non-empty cases require that
+% \begin{itemize}
+% \item \Meta{name} denotes the name of a \emph{color series},
+% \item \Meta{mix expr} is a \emph{complete} mix expression.
+% \end{itemize}
+% Examples: `|red|', `|-red|', `|--red!50!green!12.345|', `|red!50!green!20!blue|', `|foo!!+|', `|foo!![7]|', `|foo!25!red!!+++|', `|foo!25!red!70!green!![7]|'.
+%
+%
+% \paragraph{Extended color expressions}
+% \DescribeArg{ext expr}
+% These expressions provide another method of color mixing, see section \vref{sec.extexpr-meaning} for details.
+% The shorter form
+% \begin{align*}
+% \Meta{core model}&|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|!|\Meta[k]{dec}\\
+% \intertext{is an abbreviation for the special (and probably most used) case}
+% \Meta{core model}|,|\Meta{div}&|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|!|\Meta[k]{dec}\\
+% \intertext{with the following definition (requiring a non-zero sum of all \Meta[\kappa]{dec} coefficients):}
+% \Meta{div} &:= \Meta[1]{dec} + \Meta[2]{dec} + \dots + \Meta[k]{dec} \neq0.
+% \end{align*}
+% Examples: `|rgb:red,1|', `|cmyk:red,1;-green!25!blue!60,11.25;blue,-2|'.
+%
+%
+% \paragraph{Function expressions}
+% \DescribeArg{func expression}
+% \DescribeArg{function}
+% These expressions extend the functionality of \emph{standard} or \emph{extended} expressions by taking the result of such an expression to perform additional calculations.
+% The number of arguments may vary between different functions, see section \vref{sec.functions} for details.
+%
+% Examples: `|>wheel,30|', `|>wheel,30,|', `|>twheel,1,12|', `|>twheel,-11,12|'.
+%
+%
+%
+% \paragraph{Colors}
+% \DescribeArg{color}
+% \DescribeArg{color expr}
+% Finally, \Meta{color} is the `umbrella' argument, covering the different concepts of specifying colors.
+% This means, whenever there is a \Meta{color} argument, the full range of names and expressions, as explained above, may be used.
+%
+%
+% \subsubsection{Meaning of standard color expressions}\label{sec.expr-meaning}
+%
+% We explain now how an expression
+% \begin{gather*}
+% \Meta{prefix}\Meta{name}|!|\Meta[1]{pct}|!|\Meta[1]{name}|!|\Meta[2]{pct}|!|\dots|!|\Meta[n]{pct}|!|\Meta[n]{name}\Meta{postfix}
+% \end{gather*}
+% is being interpreted and processed:
+% \begin{enumerate}
+% \item First of all, the model and color parameters of \Meta{name} are extracted to define a temporary color \Meta{temp}.
+% If \Meta{postfix} has the form `|!![|\Meta{num}|]|', then \Meta{temp} will be the corresponding (direct-accessed) color \Meta{num} from the series \Meta{name}.
+% \item Then a color mix, consisting of \Meta[1]{pct}\% of color \Meta{temp} and $(100-\Meta[1]{pct})$\% of color \Meta[1]{name} is computed; this is the new temporary color \Meta{temp}.
+% \item The previous step is being repeated for all remaining parameter pairs (\Meta[2]{pct},\Meta[2]{name}), \dots, (\Meta[n]{pct},\Meta[n]{name}).
+% \item If \Meta{prefix} consists of an odd number of minus signs `-', then \Meta{temp} will be changed into its complementary color.
+% \item If \Meta{postfix} has the form `|!!+|', `|!!++|', `|!!+++|', etc., a number of step commands (=~number of `|+|' signs) are performed on the underlying color series \Meta{name}.
+% This has no consequences for the color \Meta{temp}.
+% \item Now the color \Meta{temp} is being displayed or serves as an input for other operations, depending on the invoking command.
+% \end{enumerate}
+% Note that in a typical step 2 expression \Meta{temp}|!|\Meta[\nu]{pct}|!|\Meta[\nu]{name}, if \Meta[\nu]{pct}=100 resp.{} \Meta[\nu]{pct}=0, the color \Meta{temp} resp.{} \Meta[\nu]{name} is used without further transformations.
+% In the true mix case, $0<$\Meta[\nu]{pct}$<100$, the two involved colors may have been defined in different color models, e.g., |\definecolor{foo}{rgb}{...}| and |\definecolor{bar}{cmyk}{...}|.
+% In general, the second color, \Meta[\nu]{name}, is transformed into the model of the first color, \Meta{temp}, then the mix is calculated within that model.\,\footnote{Exception: in order to avoid strange results, this rule is being reversed if \Meta{temp} origins from the \Model{gray} model; in this case it is converted into the underlying model of \Meta[\nu]{name}.}
+% Thus, \Meta{temp}|!|\Meta[\nu]{pct}|!|\Meta[\nu]{name} and \Meta[\nu]{name}|!|\Meta[\nu]{$100-$pct}|!|\Meta{temp}, which should be equivalent theoretically, will not necessarily yield identical visual results.
+%
+% Figures \vrefrange{fig.expr}{fig.ex} show some first applications of colors and expressions.
+% More examples are given in figure \vref{fig.progress}.
+% Over and above that, a large set of color examples can be found in \cite{chroma}.
+%
+%
+% \subsubsection{Meaning of extended color expressions}\label{sec.extexpr-meaning}
+%
+% An \emph{extended color expression}
+% \begin{gather*}
+% \Meta{core model}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec}
+% \end{gather*}
+% mimes color mixing as painters do it: specify a list of colors, each with a \Meta{dec} factor attached to.
+% For such an \Meta{ext expr}, each standard color expression \Meta[\kappa]{expr} will be converted to \Meta{core model}, then the resulting vector is multiplied by $\Meta[\kappa]{dec}/\Meta{div}$, where
+% \begin{gather*}
+% \Meta{div} := \Meta[1]{dec} + \Meta[2]{dec} + \dots + \Meta[k]{dec}.
+% \end{gather*}
+% Afterwards the sum of all of these vectors is calculated.
+%
+% Example: mixing 4~parts of \testclr{red} \Color{red}, 2~parts of \testclr{green} \Color{green}, and 1~part of \testclr{yellow} \Color{yellow}, we get \testclr{rgb:red,4;green,2;yellow,1} by saying |\color{rgb:red,4;green,2;yellow,1}|.
+% Trying the same with $-1$ parts of \Color{yellow} instead, we get \testclr{rgb:red,4;green,2;yellow,-1}.
+% Note that this mechanism can also be used to display an individual color (expression) in a certain color model: |\color{rgb:yellow,1}| results in such a conversion.
+% The general form
+% \begin{gather*}
+% \Meta{core model}|,|\Meta{div}|:|\Meta[1]{expr}|,|\Meta[1]{dec}|;|\Meta[2]{expr}|,|\Meta[2]{dec}|;...;|\Meta[k]{expr}|,|\Meta[k]{dec}
+% \end{gather*}
+% does the same operation with the only difference that the divisor \Meta{div} is being specified instead of calculated.
+% In the above example, we get a shaded version \testclr{rgb,9:red,4;green,2;yellow,1} by saying |\color{rgb,9:red,4;green,2;yellow,1}|.
+% Note that it is not forbidden to specify a \Meta{div} argument which is smaller than the sum of all \Meta[\kappa]{dec}, such that one or more of the final color specification parameters could be outside the interval $[0,1]$.
+% However, the mapping of equation (\ref{eq.U}) takes care of such cases.
+%
+%
+% \subsubsection{Color functions}\label{sec.functions}
+%
+% Color functions take a comma-separated list of arguments, and they serve to transform the \emph{given color} (i.e., the result of all calculations prior to the function call) into a new color.
+%
+% \paragraph{Color wheel calculations}
+% \DescribeFunc{wheel}
+% \DescribeFunc{twheel}
+% Arguments: \Meta{angle} or \Meta{angle}|,|\Meta{full circle}, the former being an abbreviataion of \Meta{angle}|,\rangeHsb|.
+% These functions allow to calculate related colors by harmonic relations based on color wheels (cf.~section \vref{sec.harmony}).
+% The second argument \Meta{full circle} declares how many units a full circle consists of, the first argument states by how many units the given color has to be rotated.
+% To this end, the given color is first converted to \Model{Hsb} (in case of \Function{wheel}), yielding \emph{hue\Circ}, \emph{saturation}, and \emph{brightness}, respectively.
+% Then
+% \begin{gather}
+% \displaystyle\emph{hue\Circ} := \emph{hue\Circ} + \frac{\Meta{angle}}{\Meta{full circle}}\cdot H, \qquad \emph{hue} := u\Bigl( \frac{\emph{hue\Circ}}{H} \Bigr)
+% \end{gather}
+% where $u$ is the range-reduction function of equation~(\ref{eq.U}) and $H = \texttt{\string\rangeHsb}$.
+% With \emph{saturation} and \emph{brightness} left untouched, the final model is \Model{hsb}.
+% The \Function{twheel} function works similarly, but its arguments refer to \Model{tHsb} instead of \Model{Hsb}.
+% Examples are shown in figure \vref{fig.harmony}.
+%
+%
+% \subsection{Predefined colors}
+%
+% \subsubsection{Colors that are always available}
+%
+% \def\test#1{\testclr{#1}~\Color{#1}}
+% Within \File{xcolor.sty}, the following color names are defined:
+% \test{red}, \test{green}, \test{blue}, \test{cyan}, \test{magenta}, \test{yellow}, \test{orange}, \test{violet}, \test{purple}, \test{brown}, \test{pink}, \test{olive}, \test{black}, \test{darkgray}, \test{gray}, \test{lightgray}, \test{white}.
+%
+% This base set of colors can be used without restrictions in all kinds of color expressions, as explained in section \vref{sec.term}.
+%
+%
+% \subsubsection{Additional sets of colors}\label{sec.additionalcolors}
+%
+% There are also sets of color names that may be loaded by \XC{} via package options, available in two variants:
+% a `normal' version (e.g., \Option{dvipsnames}) and a `starred' version (e.g., \Option{dvipsnames*}).
+% The first variant simply defines all the colors \emph{immediately}, whereas the second applies the mechanism of \emph{deferred} definition.
+% In the latter case, individual color names have to be activated by |\definecolors| or |\providecolors| commands, as described in section \vref{sec.deferred}, before they can be applied in a document.
+% \begin{itemize}
+% \item \Option{dvipsnames}/\Option{dvipsnames*} loads a set of 68 \Model{cmyk} colors as defined in the |dvips| driver. However, these colors may be used in all supported drivers.
+% \item \Option{svgnames}/\Option{svgnames*} loads a set of 151 \Model{rgb} color names\footnote{In fact, these names represent 141 different colors.} according to the \Index{SVG}~1.1 specification \cite{svg}\footnote{Actually, the cited specification lists only lowercase names, and the original definitions are given in \Model{RGB} parameters, converted to \Model{rgb} by the author.}, enhanced by~4 names taken from the file \File{rgb.txt} which is part of \Index{Unix}/\Index{X11} distributions.
+% \item \Option{x11names}/\Option{x11names*} loads a set of 317 \Model{rgb} color names\footnote{These names represent 315 different colors.} that are basically variations of a subset of the \Index{SVG} set mentioned before, according to the file \File{rgb.txt} which is part of \Index{Unix}/\Index{X11} distributions\footnote{Again, the original definitions are given in \Model{RGB} parameters, converted to \Model{rgb} by the author.}.
+% We describe now how to access all 752 color names of \File{rgb.txt} without much effort:
+% \begin{itemize}
+% \item Load \Option{x11namees} as well as \Option{svgnames}.
+% \item Capitalise initials and skip blanks: \Color[-]{DarkSlateGray} instead of \Color[-]{dark slate gray}.
+% \item \Index{X11} names without numbers are identical to the corresponding \Index{SVG} colors, except in 5~cases:
+% use \Color{Gray0}, \Color{Grey0}, \Color{Green0}, \Color{Maroon0}, \Color{Purple0} instead of \Color[-]{Gray}, \Color[-]{Grey}, \Color[-]{Green}, \Color[-]{Maroon}, \Color[-]{Purple} to obtain the original \Index{X11} colors.
+% \item For $N=0,1,\dots,100$ use `|[gray]{|$N/100$|}|' or `|black!|$100-N$' instead of \Color[-]{grayN} or \Color[-]{greyN}.
+% \end{itemize}
+% \end{itemize}
+% The color names and corresponding displays are listed in section \vref{sec.names}.
+% Section \vref{sec.clash} describes how to deal with name clashs while using both \Option{svgnames} and \Option{dvipsnames} in the same document.
+% See also \cite{chroma} for a systematic set of color and mix examples.
+%
+%
+% \subsection{Color definition}\label{sec.def}
+%
+% \subsubsection{Ordinary and named colors}\label{sec.prologue}
+%
+% In the \LCP{} there is a distinction between `colors' (defined by the command |\definecolor|) and `named colors' (defined by |\DefineNamedColor|, which is allowed only in the preamble).
+% Whenever an ordinary color is being used in a document, it will be translated into a |\special| command that contains a --- driver-specific --- numerical description of the color which is written to the \File{.dvi} file.
+% On the other hand, named colors offer the opportunity to store numerical values at a central place whereas during usage, colors may be identified by their names, thus enabling post-processing if required by the output device.
+%
+% All drivers delivered with the standard \Package{graphics} package support the \emph{formalism} of defining and invoking `named colors'.
+% However, real support for the \emph{concept} behind that, i.e.~employing names instead of parameters, ranges from `none' to `complete'.
+% We demonstrate the current situation for three different drivers:
+% \begin{itemize}
+% \item \Option{dvips} has very good support for the `named' concept; the \Index{PostScript} equivalents to the color names defined by \Option{dvipsnames} are being loaded -- unless switched off -- by \Program{dvips} automatically.
+% However, additional names have to be made known to the \Index{PostScript} interpreter by some kind of header file.
+% Since version 2.01, \XC{} offers an integrated solution for this task: by invoking the package option \Option{prologue}, a \Index{PostScript} header file \File{xcolor.pro} is loaded by \Program{dvips}.
+% Additionally, under this option every color definition command\footnote{This is not only true for the document preamble, but for the document body as well.} (|\definecolor|, |\colorlet|, etc.) will generate some \Index{PostScript} code that is written to an auxiliary file with the extension \File{.xcp} (shortcut for \textbf{xc}olor \textbf prologue).
+% This file is as well loaded by \Program{dvips} as a prologue, thus making all color names available to the \Index{PostScript} interpreter.
+% Of course, the \File{.xcp} file may be edited before \Program{dvips} is applied, making it easy to change device-specific color parameters at a central place.
+% Note that the \Index{PostScript} code is designed similar to \File{color.pro}: only \emph{new} names are defined.
+% This allows to preload other prologue files with color definitions that are not being destroyed by \XC.
+% On the other hand, it requires the user to take care about redefining color names.\\
+% Example: |\colorlet{foo}{red}\colorlet{foo}{blue}\color{foo}| will switch to \Color{blue} in the usual \XC{} logic, however the \File{.ps} file would display \Color{red} (unless \Color{foo} had been defined differently before).\\
+% It should be stressed that this mechanism is only employed by the \Option{prologue} option.
+% Without that, the predefined `named' colors activated by the \Option{dvipsnames} option (without employing any tints, shades, color expressions, etc.) may be used in this way, all other `named' colors are unknown to \Index{PostScript}.
+% \item \Option{dvipdfm} supports only the standard \Option{dvipsnames} colors since these are hard-coded in the \Program{dvipdfm} program itself; there seems to be no way to load any user-defined prologue files.
+% \item \Option{pdftex} does not offer conceptual support, all `named' colors are converted immediately to their numerical representation. It therefore allows unrestricted definition and usage of named colors (although offering no added value through this).
+% \end{itemize}
+%
+% Typically, a \File{.dvi} viewer will have difficulties to display user-defined `named' colors.
+% For example, \Index{MiK\TeX}'s viewer \Program{Yap} currently displays only `named' colors from the \Option{dvipsnames} set.
+% Thus, whenever the \Option{prologue} option is invoked together with \Option{dvips}, \emph{all} other colors will appear black.
+% However, after employing \Program{dvips}, a \Index{PostScript} viewer should display the correct colors.
+%
+%
+% \subsubsection{Color definition in \XC}
+%
+% \DescribeMacro\definecolor
+% \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\footnote{Prior to version 2.00, this command was called \cs{xdefinecolor}, the latter name still being available for compatibility reasons.}\\
+% This is one of the commands that may be used to assign a \Meta{name} to a specific color.
+% Afterwards, this color is known to the system (in the current group) and may be used in \emph{\Index{color expression}s}, as explained in section \vref{sec.term}.
+% It replaces both \LC's |\DefineNamedColor| and |\definecolor|.
+% Note that an already existing color \Meta{name} will be overwritten.
+% The variable |\tracingcolors| controls whether such an overwriting will be logged or not (see section \vref{sec.info} for details).
+% The arguments are described in section \vref{sec.term}.
+% Hence, valid expressions for color definitions are
+% \begin{itemize}
+% \item |\definecolor{red}{rgb}{1,0,0}|,
+% \item |\definecolor{red}{rgb/cmyk}{1,0,0/0,1,1,0}|,
+% \item |\definecolor{red}{hsb:rgb/cmyk}{1,0,0/0,1,1,0}|,
+% \item |\definecolor[named]{Black}{cmyk}{0,0,0,1}|,
+% \item |\definecolor{myblack}{named}{Black}|,
+% \end{itemize}
+% where the last command is equivalent to |\colorlet{myblack}{Black}| (see below); the second command defines \Color{red} in the \Model{rgb} or \Model{cmyk} model, depending on the current setting of the \emph{target model}, whereas the third will additionally transform the color to \Model{hsb} prior to saving.
+% Note that there is a special \Package{pstricks} version as described in section \vref{sec.pstricks}.
+%
+% \medskip
+%
+% \DescribeMacro\providecolor
+% \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\\
+% Similar to |\definecolor|, but the color \Meta{name} is only defined if it does not exist already.
+%
+% \medskip
+%
+% \DescribeMacro\colorlet
+% \oarg{type}\marg{name}\oarg{num model}\marg{color}\\
+% Copies the actual color which results from \Meta{color} to \Meta{name}.
+% If \Meta{num model} is non-empty, \Meta{color} is first transformed to the specified model, before \Meta{name} is being defined.
+% The pseudo model \nModel{named} is \emph{not} allowed here, it may, however, be specified in the \Meta{type} argument.
+% Note that an already existing color \Meta{name} will be overwritten.
+%
+% Example: we said |\colorlet{tableheadcolor}{gray!25}| in the preamble of this document.
+% In most of the tables we then formatted the first row by using the command |\rowcolor{tableheadcolor}|.
+%
+%
+% \subsubsection{Defining sets of colors}
+%
+% \DescribeMacro\definecolorset
+% \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}\\
+% This command facilitates the construction of \emph{\Index{color set}s}, i.e.~(possibly large) sets of individual colors with common underlying \Meta{model-list} and \Meta{type}.
+% Here, \Meta{set spec} = \Meta[1]{name},\Meta[1]{spec-list};\dots;\Meta[l]{name},\Meta[l]{spec-list} ($l\ge1$ name/specification-list pairs).
+% Individual colors are being constructed by single
+% \begin{center}
+% |\definecolor|\oarg{type}|{|\Meta{head}\Meta[\lambda]{name}\Meta{tail}|}|\marg{model-list}|{|\Meta[\lambda]{spec-list}|}|
+% \end{center}
+% commands, $\lambda=1,\dots,l$.
+% For example,
+% \begin{itemize}
+% \item |\definecolorset{rgb}{}{}{red,1,0,0;green,0,1,0;blue,0,0,1}|\\
+% could be used to define the basic colors \Color{red}, \Color{green}, and \Color{blue};\footnote{Actually, \XC{} uses a more complicated variant to provide the basic colors for different underlying models (see the source code for the full command):\\
+% \cs{definecolorset\string{rgb/hsb/cmyk/gray\string}\string{\string}\string{\string}\string{red,1,0,0/0,1,1/0,1,1,0/.3;green,...\string}}.}
+% \item |\definecolorset{rgb}{x}{10}{red,1,0,0;green,0,1,0;blue,0,0,1}|\\
+% would define the colors \Color[-]{xred10}, \Color[-]{xgreen10}, and \Color[-]{xblue10}.
+% \end{itemize}
+%
+% \DescribeMacro\providecolorset
+% \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}\\
+% Similar to |\definecolorset|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already.
+%
+%
+% \subsubsection{Immediate and deferred definitions}\label{sec.deferred}
+%
+% Traditionally, the definition of a color as described above leads to the immediate construction of a command that holds at least the information needed by the driver to display the desired color.
+% Thus, defining 300 colors, e.g., by loading a huge set of predefined colors, will result in 300 new commands, although most of them --- except for the purpose of displaying lists of colors --- will hardly ever be used within a document.
+% Along the development of computer memory --- increasing in size, decreasing in price --- recent \TeX{} implementations have increased their provisions for internal memory stacks that are available for strings, control sequences, etc.
+% However, as memory continues to be finite, it may still be useful (or occasionally necessary) to have a method at hand that allows to reduce memory requirements a bit.
+% This is the point where \emph{deferred color definition} comes into play.
+% Its principle is simple: for every definition of this type (e.g., via |\preparecolor|), all necessary information is saved on a specific global \emph{\Index{definition stack}}, where it can be taken from later (e.g., via |\definecolors|) in order to construct the actual color command.
+%
+% Note that the following commands are only to be used in the document preamble, since the definition stack of colors for deferred definitions is deleted at the begin of the document body --- in order to save memory.
+%
+% \medskip
+%
+% \DescribeMacro\preparecolor
+% \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\\
+% Similar to |\definecolor|, but the color \Meta{name} is not yet being defined: the arguments \Meta{model-list} and \Meta{spec-list} are evaluated immediately, then all necessary parameters (i.e.~\Meta{type}, \Meta{name}, \Meta{model}, \Meta{spec}) are put onto the \emph{\Index{definition stack}} for later usage.
+%
+% \medskip
+%
+% \DescribeMacro\preparecolorset
+% \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}
+% \DescribeMacro\ifdefinecolors\\
+% Similar to |\definecolorset|, but depending on the |\ifdefinecolors| switch: if set to `true', to each element of the set the command |\definecolor| (i.e.~immediate definition) is applied; if set to `false', |\preparecolor| (i.e.~deferred definition) is applied.
+% For example, the package option \Option{svgnames} performs something like |\definecolorstrue\preparecolorset|, whereas \Option{svgnames*} acts like |\definecolorsfalse\preparecolorset|.
+% Both options set |\definecolorstrue| at the end, in order to have a proper starting point for other color sets.
+%
+% \medskip
+%
+% \DescribeMacro\DefineNamedColor
+% \marg{type}\marg{name}\marg{model-list}\marg{spec-list}
+% is provided mainly for compatibility reasons, especially to support the predefined colors in \File{dvipsnam.def}.
+% It is the same as \Meta{cmd}\oarg{type}\marg{name}\marg{model}\marg{spec}, where \Meta{cmd} is either |\definecolor| or |\preparecolor|, depending on the state of |\ifdefinecolors|.
+% Note that \LC's restriction to allow |\DefineNamedColor| only in the document preamble has been abolished in \XC.
+%
+% \medskip
+%
+% \DescribeMacro\definecolors
+% \marg{id-list}\\
+% Recall that \Meta{id-list} has the form \Meta[1]{ext id}|,...,|\Meta[l]{ext id} where each \Meta[\lambda]{ext id} is either an identifier \Meta[\lambda]{id} or an assignment \Meta[\lambda']{id}|=|\Meta[\lambda]{id}.
+% We consider the first case to be an abbreviation for \Meta[\lambda]{id}|=|\Meta[\lambda]{id} and describe the general case:
+% the \Index{definition stack} is searched for the name \Meta[\lambda]{id} and its corresponding color parameters; if there is no match, nothing happens; if the name \Meta[\lambda]{id} is on the stack and its color parameters are \Meta[\lambda]{type}, \Meta[\lambda]{model}, and \Meta[\lambda]{spec}, then the command |\definecolor[|\Meta[\lambda]{type}|]{|\Meta[\lambda']{id}|}{|\Meta[\lambda]{model}|}{|\Meta[\lambda]{spec}|}| is executed.
+% Thus, the user may control by which names the \emph{prepared} colors are to be used in the document.
+% Note that the entry \Meta[\lambda]{id} is not removed from the stack, such that it can be used several times (even within the same |\definecolors| command).
+%
+% \medskip
+%
+% \DescribeMacro\providecolors
+% \marg{id-list}\\
+% Similar to |\definecolors|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already.
+%
+%
+% \subsubsection{Global color definitions}
+%
+% \DescribeMacro\ifglobalcolors
+% By default, definitions via |\definecolor|, |\providecolor|, \dots{} are available only within the current group.
+% By setting |\globalcolorstrue|, all such definitions are being made globally available --- until the current group ends.\footnote{The switch may also be set in the preamble in order to control the whole document.}
+% \DescribeMacro\xglobal
+% Another method to specify that an individual color definition is to be made global is to prefix it by |\xglobal|, e.g., |\xglobal\definecolor{foo}...|.
+%
+%
+%
+% \subsection{Color application}
+%
+% \subsubsection{Standard color commands}
+%
+% Here is the list of user-level color commands, as known from the \LCP, but with an extended syntax for the colors, allowing for expressions etc.:\\
+% \DescribeMacro\color\marg{color}\\
+% \oarg{model-list}\marg{spec-list}\\
+% Switches to the color given either by name/expression or by model/specification.
+% This color will stay in effect until the end of the current \TeX\ group.\\
+% \DescribeMacro\textcolor\marg{color}\marg{text}\\
+% \oarg{model-list}\marg{spec-list}\marg{text}\\
+% are just alternative syntax for |\color|, in which the groups are added implicitly.
+% Thus \meta{text} appears in the specified color, but then the color reverts to its previous value.
+% Additionally, it calls |\leavevmode| to ensure the start of horizontal mode.\\
+% \DescribeMacro\pagecolor\marg{color}\\
+% \oarg{model-list}\marg{spec-list}\\
+% Specifies the background color for the current, and all following, pages.
+% It is a global declaration which does not respect \TeX\ groups.
+%
+% Remark: all of these commands except |\color| require that the \Meta{color} resp.\ \Meta{spec} arguments are put into curly braces |{}|, even if they are buried in macros.
+%
+% For example, after |\def\foo{red}|, one may say |\color\foo|, but one should always write |\textcolor{\foo}{bar}| instead of |\textcolor\foo{bar}| in order to avoid strange results.
+%
+% Note that color-specific commands from other packages may give unexpected results if directly confronted with color expressions (e.g., \Package{soul}'s |\sethlcolor| and friends).
+% However, one can turn the expression into a name via |\colorlet| and try to use that name instead.
+%
+%
+% \subsubsection{Colored boxes}\label{sec.fbox}
+%
+% \DescribeMacro\colorbox\marg{color}\marg{text}\\
+% \oarg{model-list}\marg{spec-list}\marg{text}\\
+% Takes the same argument forms as |\textcolor|, but the color specifies the \emph{background} color of the box.\\
+% \DescribeMacro\fcolorbox\marg{frame color}\marg{background color}\marg{text}\\
+% \oarg{model-list}\marg{frame spec-list}\marg{background spec-list}\marg{text}\\
+% \oarg{fr.~model-list}\marg{fr.~spec-list}\oarg{backgr.~model-list}\marg{backgr.~spec-list}\marg{text}\\
+% \marg{frame color}\oarg{background model-list}\marg{background spec-list}\marg{text}\\
+% Puts a frame of the first color around a box with a background specified by the second color.
+% If only the first optional argument is given, it specifies the color model for both colors.
+% Besides the possibility to specify color \emph{expressions} as arguments, |\fcolorbox| now offers more flexibility for its arguments than the \LC{} version:
+% \begin{itemize}
+% \item \fcolorbox{gray}{yellow}{test} |\fcolorbox{gray}{yellow}{test}|,
+% \item \fcolorbox[cmyk]{0,0,0,0.5}{0,0,1,0}{test} |\fcolorbox[cmyk]{0,0,0,0.5}{0,0,1,0}{test}|,
+% \item \fcolorbox[gray]{0.5}[wave]{580}{test} |\fcolorbox[gray]{0.5}[wave]{580}{test}|,
+% \item \fcolorbox{gray}[wave]{580}{test} |\fcolorbox{gray}[wave]{580}{test}|.
+% \end{itemize}
+% Additionally, |\fcolorbox| uses a new approach to frame drawing, which is an extension of \People{Donald}{Arseneau}'s suggestion in bug report latex/3655 \cite{fbox}.
+% The main difference to \LaTeX's implementation is that box construction and frame drawing are split into separate operations, such that the frame is drawn \emph{after} the box contents has been constructed.
+% This ensures that the frame is always on top of the box.
+% \People{Donald}{Arseneau} improved speed as well as memory requirements of this approach.
+% Furthermore, a new macro is introduced:
+%
+% \DescribeMacro\boxframe\marg{width}\marg{height}\marg{depth}\\
+% Draws a frame with a linewidth of |\fboxrule|.
+% Returns a |\hbox| with outer dimensions \meta{width}, \meta{height}, \meta{depth}.
+% By this approach, a frame-primitive may also be provided by a driver file, in order to exploit driver-specific drawing facilities (see below).
+% Again, this macro was optimised by \People{Donald}{Arseneau}.
+%
+% The new frame approach is used for |\fcolorbox| as well as \LaTeX's |\fbox| and |\framebox| commands, unless the \Option{kernelfbox} option is specified, which returns to \LaTeX's original definitions of |\f(rame)box|.
+%
+% Option \Option{xcdraw} uses \Index{PostScript} commands to draw frames and color boxes in case of the \Option{dvips} driver and \Index{PDF} code to draw frames in case of the \Option{pdftex} and \Option{dvipdfm} drivers.
+% This is still experimental code that may confuse \File{.dvi} viewers.
+% The opposite option \Option{noxcdraw} forces usage of the generic (driver-independent) code.
+%
+%
+% \subsubsection{Using the current color}
+%
+% Within a color expression, `.' serves as a placeholder for the current color.
+% See figure \vref{fig.cc} for an example.
+%
+% It is also possible to save the current color for later use, e.g., via the command |\colorlet{foo}{.}|.
+%
+% Note that in some cases the current color is of rather limited use, e.g., the construction of an |\fcolorbox| implies that at the time when the \Meta{background color} is evaluated, the current color equals the \Meta{frame color}; in this case `|.|' does not refer to the current color \emph{outside} the box.
+%
+%
+% \subsubsection{Color testing}
+%
+% \DescribeEnv{testcolors}
+% \oarg{num models}\\
+% This is a simple tabular environment in order to test (display) colors in different models, showing both the visual result and the model-specific parameters.
+% The optional \Meta{num models} argument is a comma-separated list of \emph{numerical} color models (as usual without spaces) which form the table columns; the default list is
+% {\makeatletter\ttfamily\let\@protected at testopt\@gobbletwo\edef\tmp{\testcolors}\expandafter\@firstofone\tmp}.
+%
+% \DescribeMacro\testcolor
+% \marg{color}\\
+% \oarg{model-list}\marg{spec-list}\\
+% Each |\testcolor| command generates a table row, containing a display sample plus the respective parameters for each of the models.
+% If the column-model matches the model of the color in question, its parameters are underlined.
+% Note that this command is only available within the |testcolors| environment.
+%
+% For applications see figure \vref{fig.testcolors} and figures \ref{fig.tHsb}, \ref{fig.harmony}.
+%
+%
+%
+% \subsection{Color blending}
+%
+% The purpose of \emph{color blending} is to add some mixing color (expression) to all subsequent explicit color commands.
+% Thus, it is possible to perform such a mix (or blend) operation for many colors without touching the individual commands.
+%
+% \medskip
+%
+% \DescribeMacro\blendcolors
+% \marg{mix expr}\\
+% \DescribeMacro{\blendcolors*}
+% \marg{mix expr}\\
+% Initialises all necessary parameters for color blending.
+% The actual (completed) color blend expression is stored in |\colorblend|.
+% In the starred version, the argument will be appended to a previously defined blend expression.
+% An empty \Meta{mix expr} argument will switch blending off.
+%
+% Example: after |\blendcolors{!50!yellow}|, the colors \testclr{red} \testclr{green} \testclr{blue} are transformed into {\blendcolors{!50!yellow}\testclr{red} \testclr{green} \testclr{blue}, an additional |\blendcolors*{!50}| yields \blendcolors*{!50}\testclr{red} \testclr{green} \testclr{blue}}.
+% \DescribeMacro\xglobal
+% In order to achieve global scope, |\blendcolors| may be prefixed by |\xglobal|.
+%
+% Remark: color blending is applied only to \emph{explicit} color commands, i.e.~|\color|, |\fcolorbox| and the like.
+% In the previous example the frames are not being blended because their color is set by an driver-internal command (switching back to the `current color').
+% Thus, to influence these \emph{implicit} colors as well, we have to set the current color \emph{after} the blending:
+% |\blendcolors{!50!yellow}\color{black}| results in {\blendcolors{!50!yellow}\color{black}\testclr{red} \testclr{green} \testclr{blue}, an additional |\blendcolors*{!50}\color{black}| yields \blendcolors*{!50}\color{black}\testclr{red} \testclr{green} \testclr{blue}}.
+%
+%
+%
+% \subsection{Color masks and separation}
+%
+% The purpose of \emph{color separation} is to represent all colors that appear in the document as a combination of a finite subset of base colors and their tints.
+% Most prominent is \Model{cmyk} separation, where the base colors are \Color{cyan}, \Color{magenta}, \Color{yellow}, and \Color{black}, as required by the printers.
+% This can be done by choosing the package option \Option{cmyk}, such that all colors will be converted in this model, and post-processing the output file.
+% We describe now another --- and more general --- solution: \emph{color masking}.
+% How does it work?
+% Color masking is based on a specified color model \Meta{m-model} and a parameter vector \Meta{m-spec}.
+% Whenever a color is to be displayed in the document, it will first be converted to \Meta{m-model}, afterwards each component of the resulting color vector will be multiplied by the corresponding component of \Meta{m-spec}.
+% For example, let's assume that \Meta{m-model} equals |cmyk|, and \Meta{m-spec} equals $(\mu_c,\mu_m,\mu_y,\mu_k)$.
+% Then an arbitrary color \Color{foo} will be transformed according to
+% \begin{gather}
+% \Color{foo} \mapsto (c,m,y,k) \mapsto (\mu_c\cdot c,\mu_m\cdot m,\mu_y\cdot y,\mu_k\cdot k)
+% \end{gather}
+% Obviously, color separation is a special case of masking by the vectors $(1,0,0,0)$, $(0,1,0,0)$, etc.
+% An interesting application is to shade or tint all colors by masking them with $(x,x,x)$ in the \Model{rgb} or \Model{cmy} model, see the last two rows in figure \vref{fig.mask}.
+%
+% \medskip
+%
+% \DescribeMacro\maskcolors
+% \oarg{num model}\marg{color}\\
+% Initialises all necessary parameters for color masking:
+% if \Meta{num model} is not specified (or empty), \Meta{m-model} will be set to the natural model of \Meta{color}, otherwise to \Meta{num model};
+% the color specification of \Meta{color} is extracted to define \Meta{m-spec}.
+% Additionally, |\maskcolorstrue| is performed.
+% \DescribeMacro\ifmaskcolors
+% Color masking can be switched off temporarily by |\maskcolorsfalse|, or --- in a more radical way --- by |\maskcolors{}|, which in addition clears the initialisation parameters.
+% \DescribeMacro\xglobal
+% In general, the scope of |\maskcolors| is the current group (unless it is prefixed by the |\xglobal| command), but it may be used in the document preamble as well.
+% The final remark of the color blending section applies here similarly.
+%
+% Now it is easy to separate a complete document without touching the source code:
+% |latex| |\def\xcolorcmd{\maskcolors[cmyk]{cyan}}\input{a}| will do the \Color{cyan} part of the job for |a.tex|.
+%
+% \DescribeMacro\colormask
+% Caution: \XC{} has no idea about colors in files that are included via the command |\includegraphics|, e.g., images of type \File{.eps}, \File{.pdf}, \File{.jpg}, or \File{.png}.
+% Such files have to be separated separately.
+% Nevertheless, \XC{} offers some basic support by storing the mask color in |\colormask|, which can be used to decide which file is to be included:
+% \begin{verbatim}
+% \def\temp{cyan}\ifx\colormask\temp \includegraphics{foo_c}\else
+% \def\temp{magenta}\ifx\colormask\temp \includegraphics{foo_m}\else
+% ...
+% \fi\fi
+% \end{verbatim}
+%
+%
+%
+% \subsection{Color series}\label{sec.series}
+%
+% Automatic coloring may be useful in graphics or chart applications, where a --- potentially large and unspecified --- number of colors are needed, and the user does not want or is not able to specify each individual color.
+% Therefore, we introduce the term \emph{color series}, which consists of a base color and a scheme, how the next color is being constructed from the current color.
+%
+% The practical application consists of three parts:
+% definition of a color series (usually once in the document), initialisation of the series (potentially several times), and application --- with or without stepping --- of the current color of the series (potentially many times).
+%
+%
+% \subsubsection{Definition of a color series}
+%
+% \DescribeMacro\definecolorseries
+% \marg{name}\marg{core model}\marg{method}\oarg{b-model}\marg{b-spec}\oarg{s-model}\marg{s-spec}\\
+% Defines a color series called \Meta{name}, whose calculations are performed within the color model \Meta{core model}, where \Meta{method} selects the algorithm (one of |step|, |grad|, |last|, see below).
+% The method details are determined by the remaining arguments:
+% \begin{itemize}
+% \item \oarg{b-model}\marg{b-spec} specifies the \emph{base} (= first) color in the algorithm, either directly, e.g., |[rgb]{1,0.5,0.5}|, or as a \Meta{color}, e.g., |{-yellow!50}|, if the optional argument is missing.
+% \item \oarg{s-model}\marg{s-spec} specifies how the \emph{step} vector is calculated in the algorithm, according to the chosen \Meta{method}:
+% \begin{itemize}
+% \item |step|,\ |grad|:\ the optional argument is meaningless, and \Meta{s-spec} is a parameter vector whose dimension is determined by \Meta{core model}, e.g., |{0.1,-0.2,0.3}| in case of |rgb|, |cmy|, or |hsb|.
+% \item |last|:\ the last color is specified either directly, e.g., |[rgb]{1,0.5,0.5}|, or as a \Meta{color}, e.g., |{-yellow!50}|, if the optional argument is missing.
+% \end{itemize}
+% \end{itemize}
+% This is the general scheme:
+% \begin{gather}
+% \emph{color}_1 := \emph{base},\qquad
+% \emph{color}_{n+1} := U\bigl(\emph{color}_{n} + \emph{step}\bigr)
+% \end{gather}
+% for $n=1,2,\dots$, where $U$ maps arbitrary real $m$-vectors into the unit $m$-cube:
+% \begin{gather}
+% U(x_1,\dots,x_m) = (u(x_1),\dots,u(x_m)),\qquad
+% u(x) =
+% \begin{cases}
+% 1 & \text{if $x=1$}\\
+% x-[x]& \text{if $x\neq1$}\\
+% \end{cases}\label{eq.U}
+% \end{gather}
+% Thus, every step of the algorithm yields a valid color with parameters from the interval $[0,1]$.
+%
+% \medskip
+% Now, the different methods use different schemes to calculate the \emph{step} vector:
+% \begin{itemize}
+% \item |step|,\ |grad|:\ the last argument, \marg{s-spec}, defines the directional vector \emph{grad}.
+% \item |last|:\ \marg{s-spec} resp.\ \oarg{s-model}\marg{s-spec} defines the color parameter vector \emph{last}.
+% \end{itemize}
+% Then, during |\resetcolorseries|, the actual \emph{step} vector is calculated:
+% \begin{gather}
+% \emph{step} :=
+% \begin{cases}
+% \emph{grad} & \text{if $\Meta{method} = |step|$}\\
+% \frac1{\Meta{div}}\cdot\emph{grad} & \text{if $\Meta{method} = |grad|$}\\
+% \frac1{\Meta{div}}\cdot(\emph{last}-\emph{base}) & \text{if $\Meta{method} = |last|$}\\
+% \end{cases}\label{eq.cs}
+% \end{gather}
+% Please note that it is also possible to use the current color placeholder `.' within the definition of color series.
+% Thus, |\definecolorseries{foo}{rgb}{last}{.}{-.}| will set up a series that starts with the current color and ends with its complement.
+% Of course, similar to \TeX's |\let| primitive, the \emph{current} definition of the current color at the time of execution is used, there is no relation to current colors in any later stage of the document.
+%
+%
+% \subsubsection{Initialisation of a color series}
+%
+% \DescribeMacro\resetcolorseries
+% \oarg{div}\marg{name}\\
+% This command has to be applied at least once, in order to make use of the color series \Meta{name}.
+% It resets the current color of the series to the base color and calculates the actual step vector according to the chosen \Meta{div}, a non-zero real number, for the methods |grad| and |last|, see equation (\ref{eq.cs}).
+% \DescribeMacro\colorseriescycle
+% If the optional argument is empty, the value stored in the macro |\colorseriescycle| is applied.
+% Its default value is \colorseriescycle, which can be changed by |\def\colorseriescycle|\marg{div}, applied \emph{before} the \XCP{} is loaded (similar to |\rangeRGB| and friends).
+% The optional argument is ignored in case of the |step| method.
+%
+%
+% \subsubsection{Application of a color series}
+%
+% There are two ways to display the current color of a color series:
+% any of the \emph{color expressions} in section \vref{sec.term} used within a |\color|, |\textcolor|, \dots{} command will display this color according to the usual syntax of such expressions.
+% However, in the cases when \Meta{postfix} equals `|!!+|', |\color{|\Meta{name}|!!+}| etc., will not only display the color, but it will also perform a step operation.
+% Thus, the current color of the series will be changed in that case.
+% An expression |\color{|\Meta{name}|!![|\Meta{num}|]}| enables direct access to an element of a series, where \Meta{num} = $0,1,2,\dots$, starting with~0 for the base color.
+% See figure \vref{fig.csx} for a demonstration of different methods.
+%
+%
+% \subsubsection{Differences between colors and color series}
+%
+% Although they behave similar if applied within color expressions, the objects defined by |\definecolor| and |\definecolorseries| are fundamentally different with respect to their scope/availability:
+% like \LC's original |\definecolor| command, |\definecolor| generates \emph{local} colors, whereas |\definecolorseries| generates \emph{global} objects (otherwise it would not be possible to use the stepping mechanism within tables or graphics conveniently).
+% E.g., if we assume that |bar| is an undefined color, then after saying
+% \begin{verbatim}
+% \begingroup
+% \definecolorseries{foo}{rgb}{last}{red}{blue}
+% \resetcolorseries[10]{foo}
+% \definecolor{bar}{rgb}{.6,.5,.4}
+% \endgroup
+% \end{verbatim}
+% commands like |\color{foo}| or |\color{foo!!+}| may be used without restrictions, whereas |\color{bar}| will give an error message.
+% However, it is possible to say |\colorlet{bar}{foo}| or |\colorlet{bar}{foo!!+}| in order to save the current color of a series locally --- with or without stepping.
+%
+%
+%
+%
+% \subsection{Border colors for hyperlinks}\label{sec.hyperref}
+%
+% The \Package{hyperref} package offers all kinds of support for hyperlinks, pdfmarks etc.
+% There are two standard ways to make hyperlinks visible (see the package documentation \cite{hyperref} for additional information on how to set up these features):
+% \begin{itemize}
+% \item print hyperlinks in a different color than normal text, using the keys \Key{citecolor}, \Key{filecolor}, \Key{linkcolor}, \Key{menucolor}, \Key{pagecolor}, \Key{runcolor}, \Key{urlcolor} with color expressions, e.g., |\hypersetup{urlcolor=-green!50}|;
+% \item display a colored border around hyperlinks, using the keys \Key{citebordercolor}, \Key{filebordercolor}, \Key{linkbordercolor}, \Key{menubordercolor}, \Key{pagebordercolor}, \Key{runbordercolor}, \Key{urlbordercolor} with explicit numerical \Model{rgb} parameter specification, e.g., |\hypersetup{urlbordercolor={1 0.5 0.25}}|.
+% \end{itemize}
+% Obviously, the second method is somewhat inconvenient since it does not allow for color names or even color expressions.
+% Therefore, \XC{} provides --- via the package option \Option{hyperref} --- a set of extended keys \Key{xcitebordercolor}, \Key{xfilebordercolor}, \Key{xlinkbordercolor}, \Key{xmenubordercolor}, \Key{xpagebordercolor}, \Key{xrunbordercolor}, \Key{xurlbordercolor} which are being used in conjunction with color expressions, e.g., |\hypersetup{xurlbordercolor=-green!50}|.
+%
+% Another new key, \Key{xpdfborder}, provides a way to deal with a \Program{dvips}-related problem:
+% for most of the drivers, a setting like |pdfborder={0 0 1}| will determine the width of the border that is drawn around hyperlinks in points.
+% However, in the \Program{dvips} case, the numerical parameters are interpreted in relation to the chosen output resolution for processing the \File{.dvi} file into a \File{.ps} file.
+% Unfortunately, at the time when the \File{.dvi} is constructed, nobody knows if and at which resolution a transformation into \File{.ps} will take place afterwards.
+% Consequently, any default value for \Key{pdfborder} may be useful or not.
+% Within \Package{hyperref}, the default for \Program{dvips} is |pdfborder={0 0 12}|, which works fine for a resolution of 600 or 1200 dpi, but which produces an invisible border for a resolution of 8000 dpi, as determined by the command-line switch |-Ppdf|.
+% On the other hand, setting |pdfborder={0 0 80}| works fine for \Program{dvips} at 8000 dpi, but makes a document unportable, since other drivers (or even |dvips| in a low resolution) will draw very thick boxes in that case.
+% This is were the \Key{xpdfborder} key comes in handy: it rescales its arguments for the |dvips| case by a factor 80 (ready for 8000 dpi) and leaves everything unchanged for other drivers.
+% Thus one can say |xpdfborder={0 0 1}| in a driver-independent way.
+%
+%
+%
+% \subsection{Additional color specification in the \Package{pstricks} world}\label{sec.pstricks}
+%
+% For \Package{pstricks} users, there are different ways of invoking colors within command option keys:
+% \begin{itemize}
+% \item |\psset{linecolor=green!50}|
+% \item |\psset{linecolor=[rgb]{0.5,1,0.5}}|
+% \item |\psframebox[linecolor={[rgb]{0.5,1,0.5}}]{foo}|
+% \end{itemize}
+% Note the additional curly braces in the last case; without them, the optional argument of |\psframebox| would be terminated too early.
+%
+% \DescribeMacro\definecolor
+% |[ps]|\marg{name}\marg{core model-list}\marg{code}\\
+% Stores \Index{PostScript} \Meta{code} --- that should not contain slash~`|/|' characters --- within a color.
+% Example:
+% after |\definecolor[ps]{foo}{rgb}{bar}|, the \Package{pstricks} command |\psline[linecolor=foo]...| inserts `|bar setrgbcolor|' where the linecolor information is required --- at least in case of the \Option{dvips} driver.
+% See also \href{xcolor2.pdf}{\File{xcolor2.tex}} for an illustrative application.
+%
+%
+%
+% \subsection{Color in tables}
+%
+% \DescribeMacro\rowcolors
+% \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\
+% \DescribeMacro{\rowcolors*}
+% \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\
+% One of these commands has to be executed \emph{before} a table starts.
+% \Meta{row} tells the number of the first row which should be colored according to the \Meta{odd-row color} and \Meta{even-row color} scheme.
+% Each of the color arguments may also be left empty (= no color).
+% In the starred version, \Meta{commands} are ignored in rows with inactive \emph{rowcolors status} (see below), whereas in the non-starred version, \Meta{commands} are applied to every row of the table.
+% Such optional commands may be |\hline| or |\noalign|\marg{stuff}.
+%
+% \DescribeMacro\showrowcolors
+% \DescribeMacro\hiderowcolors
+% The \emph{rowcolors status} is activated (i.e., use coloring scheme) by default and/or |\showrowcolors|, it is inactivated (i.e., ignore coloring scheme) by the command |\hiderowcolors|.
+% \DescribeMacro\rownum
+% The counter |\rownum| may be used within such a table to access the current row number.
+% An example is given in figure \vref{fig.row}.
+% These commands require the \Option{table} option (which loads the \Package{colortbl} package).
+%
+% Note that table coloring may be combined with color series.
+% This method was used to construct the examples in figure \vref{fig.csx}.
+%
+%
+%
+% \subsection{Color information}\label{sec.info}
+%
+% \DescribeMacro\extractcolorspec
+% \marg{color}\marg{cmd}\\
+% Extracts the color specification of \Meta{color} and puts it into \Meta{cmd}; equivalent to |\def\cmd{|\marg{model}\marg{spec}|}|.
+%
+% \DescribeMacro\extractcolorspecs
+% \marg{color}\marg{model-cmd}\marg{color-cmd}\\
+% Extracts the color specification of \Meta{color} and puts it into \Meta{model-cmd} and \Meta{color-cmd}, respectively.
+%
+% \medskip
+% \DescribeMacro\tracingcolors
+% |=|\Meta{int}\\
+% Controls the amount of information that is written into the |log| file:
+% \begin{itemize}
+% \item \mbox{$\Meta{int}\le0$:}~no specific color logging.
+% \item \mbox{$\Meta{int}\ge1$:}~ignored color definitions due to |\providecolor| are logged.
+% \item \mbox{$\Meta{int}\ge2$:}~multiple (i.e.~overwritten) color definitions are logged.
+% \item \mbox{$\Meta{int}\ge3$:}~every command that defines a color will be logged.
+% \item \mbox{$\Meta{int}\ge4$:}~every command that sets a color will be logged.
+% \end{itemize}
+% Like \TeX's |\tracing...| commands, this command may be used globally (in the document preamble) or locally/block-wise.
+% The package sets |\tracingcolors=0| as default.
+% Remark: since registers are limited and valuable, no counter is wasted for this issue.
+%
+% Note that whenever a color is used that has been defined via \LC's |\definecolor| command rather than \XC's new |\definecolor| and friends, a warning message `Incompatible color definition' will be issued.\footnote{This should not happen since usually there is no reason to load \LC{} in parallel to \XC{}.}
+%
+%
+%
+% \subsection{Color conversion}
+%
+% \DescribeMacro\convertcolorspec
+% \marg{model}\marg{spec}\marg{target model}\marg{cmd}\\
+% Converts a color, given by the \Meta{spec} in model \Meta{model}, into \Meta{target model} and stores the new color specification in |\cmd|.
+% \Meta{target model} must be of type \Meta{num model}, whereas \Meta{model} may also be `named', in which case \Meta{spec} is simply the name of the color.
+%
+% Example: |\convertcolorspec{cmyk}{0.81,1,0,0.07}{HTML}\tmp| acts like |\def| |\tmp{1F00ED}|.
+%
+%
+%
+% \subsection{Problems and solutions}
+%
+% \subsubsection{Name clashs between \Option{dvipsnames} and \Option{svgnames}}\label{sec.clash}
+%
+% Due to the fixed option processing order (which does not depend on the order how the options were specified in the |\usepackage| command), the \Option{svgnames} colors will always overrule \Option{dvipsnames} colors with identical names.
+% This can lead to undesired results if both options are used together.
+% For instance, \Color{Fuchsia} yields \testclr[cmyk]{0.47,0.91,0,0.08} under the regime of \Option{dvipsnames} and \testclr[rgb]{1,0,1} with respect to \Option{svgnames}.
+% However, there is a simple trick --- based on \emph{deferred color definition} --- that allows us to use colors from both sets in the desired way:
+% \begin{verbatim}
+% \usepackage[dvipsnames*,svgnames]{xcolor}
+% \definecolors{Fuchsia}
+% \end{verbatim}
+% Now all colors from the \Index{SVG} set are available (except \Color{Fuchsia}) plus \Color{Fuchsia} from the other set.
+%
+% \subsubsection{Page breaks and pdf\TeX}\label{sec.fixpdftex}
+%
+% Since pdf\TeX{} does not maintain a \emph{\Index{color stack}} --- in contrast to \Program{dvips} --- a typical problem is the behaviour of colors in the case of page breaks, as illustrated by the following example:
+% \begin{verbatim}
+% \documentclass{minimal}
+% \usepackage{xcolor}
+% \begin{document}
+% black\color{red}red1\newpage red2\color{black}black
+% \end{document}
+% \end{verbatim}
+% This works as expected with |dvips|, i.e., `red1' and `red2' being \Color{red}, however, with |pdftex|, `red2' is displayed in \Color{black}.
+% The problem may be solved by using the \Option{fixpdftex} option which simply loads Heiko Oberdiek's \Package{pdfcolmk} package \cite{pdfcolmk}.
+% However, its author also lists some limitations:
+% \begin{itemize}
+% \item Mark limitations: page breaks in math.
+% \item LaTeX's output routine is redefinded.
+% \begin{itemize}
+% \item Changes in the output routine of newer versions of LaTeX are not detected.
+% \item Packages that change the output routine are not supported.
+% \end{itemize}
+% \item It does not support several independent text streams like footnotes.
+% \end{itemize}
+%
+%
+%
+%
+% \clearpage
+% \begin{adjustwidth}{-2.5cm}{}
+% \section{Examples}
+%
+%
+% \begin{figure}[htbp]\caption{Color spectrum}\label{fig.spectrum}
+% \small
+% \newcount\WL \unitlength.75pt
+% \begin{picture}(460,60)(355,-10)
+% \sffamily \tiny \linethickness{1.25\unitlength} \WL=360
+% \multiput(360,0)(1,0){456}%
+% {{\color[wave]{\the\WL}\line(0,1){50}}\global\advance\WL1}
+% \linethickness{0.25\unitlength}\WL=360
+% \multiput(360,0)(20,0){23}%
+% {\picture(0,0)
+% \line(0,-1){5} \multiput(5,0)(5,0){3}{\line(0,-1){2.5}}
+% \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20
+% \endpicture}
+% \end{picture}
+% \vspace*{3ex}
+% \begin{verbatim}
+% \newcount\WL \unitlength.75pt
+% \begin{picture}(460,60)(355,-10)
+% \sffamily \tiny \linethickness{1.25\unitlength} \WL=360
+% \multiput(360,0)(1,0){456}%
+% {{\color[wave]{\the\WL}\line(0,1){50}}\global\advance\WL1}
+% \linethickness{0.25\unitlength}\WL=360
+% \multiput(360,0)(20,0){23}%
+% {\picture(0,0)
+% \line(0,-1){5} \multiput(5,0)(5,0){3}{\line(0,-1){2.5}}
+% \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20
+% \endpicture}
+% \end{picture}
+% \end{verbatim}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Color testing}\label{fig.testcolors}
+% \small
+% \begin{adjustwidth}{-2.5cm}{}
+% \raggedleft
+% \sffamily
+% \begin{testcolors}[rgb,cmyk,hsb,HTML,gray]
+% \testcolor{olive}
+% \testcolor{red!50!green}
+% \testcolor{-cyan!50!magenta}
+% \testcolor[cmyk]{0,0,1,0.5}
+% \testcolor[cmyk]{0,0,.5,.5}
+% \testcolor[rgb:cmyk]{0,0,.5,.5}
+% \end{testcolors}
+% \end{adjustwidth}
+% \vspace*{3ex}
+% \begin{adjustwidth}{2.5cm}{}
+% \begin{verbatim}
+% \sffamily
+% \begin{testcolors}[rgb,cmyk,hsb,HTML,gray]
+% \testcolor{olive}
+% \testcolor{red!50!green}
+% \testcolor{-cyan!50!magenta}
+% \testcolor[cmyk]{0,0,1,0.5}
+% \testcolor[cmyk]{0,0,.5,.5}
+% \testcolor[rgb:cmyk]{0,0,.5,.5}
+% \end{testcolors}
+% \end{verbatim}
+% \end{adjustwidth}
+% \end{figure}
+%
+%
+% \def\ukColor{MyGreen}
+% \definecolor{\ukColor}{cmyk}{0.92,0,0.87,0.09}
+% \colorlet{\ukColor-rgb}[rgb]{\ukColor}
+% \colorlet{\ukColor-cmy}[cmy]{\ukColor}
+% \colorlet{\ukColor-hsb}[hsb]{\ukColor}
+% \colorlet{\ukColor-gray}[gray]{\ukColor}
+%
+% \begin{figure}[htbp]\caption{Progressing from one to another color}\label{fig.progress}
+% \small
+% \begin{adjustwidth}{-2.5cm}{}
+% \makeatletter
+% \def\ColorLoop#1#2{\@tfor\@@tmp:={}{-rgb}{-cmy}{-hsb}{-gray}\do
+% {\ifcase#1
+% \expandafter\Colorloop\expandafter{\expandafter\ukColor\@@tmp}{#2}\or
+% \expandafter\Colorshow\expandafter{\expandafter\ukColor\@@tmp}\fi}\\[-2ex]\ignorespaces}
+% \def\Colorloop#1#2{\@ifxempty{#1}{}{\texttt{#1!}}&
+% \count at 105 \@whilenum\count@>\z@\do
+% {\advance\count at -5
+% \@ifxempty{#1}{\hb at xt@\XCdim{\hss\textsf{\the\count@}\hss}}{\testclr{#1!\the\count@!#2}}\hskip-\fboxrule}\hskip\fboxrule&
+% \@ifxempty{#1}{}{\texttt{!#2}}\\}
+% \def\Colorshow#1{\texttt{#1}&
+% \multicolumn2{l@{}}{\expandafter\let\expandafter\@@tmp\csname\string\color@#1\endcsname
+% \edef\@@tmp{\expandafter\@gobbletwo\@@tmp}\Meaning{@@tmp}}\\}
+% \makeatother
+% \sbox0{\testclr{red}}\XCdim\wd0
+% \begin{tabular}{@{}lll@{}}
+% \Colorloop{}{}\\[-2ex]
+% \ColorLoop0{white}
+% \ColorLoop0{gray}
+% \ColorLoop0{black}
+% \ColorLoop0{red}
+% \ColorLoop0{blue}
+% \ColorLoop0{yellow}
+% \\\noalign{\vspace*{-2.5ex}}\hline\noalign{\vspace*{1.5ex}}
+% \itshape Color&\itshape Definition/representation (\textup{\Option{\csname XC@@drv\endcsname}} driver)\\
+% \ColorLoop1{}
+% \end{tabular}
+% \end{adjustwidth}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Target color model}\label{fig.tgt}
+% \small
+% \begin{adjustwidth}{-2.5cm}{}
+% \raggedleft
+% \extrarowheight2pt
+% \makeatletter
+% \def\X#1%
+% {\def\tmp{{#1}}\dots\Meaning{tmp}&
+% \selectcolormodel{#1}\testclr{red} \testclr{green} \testclr{blue} \testclr{cyan} \testclr{magenta} \testclr{yellow} \testclr{orange} \testclr{violet} \testclr{purple} \testclr{brown} \testclr{pink} \testclr{olive} \testclr{black} \testclr{darkgray} \testclr{gray} \testclr{lightgray} \testclr{white}\\}
+% \makeatother
+% \begin{tabular}{@{}>{\ttfamily}l@{ }l@{}}
+% \string\selectcolormodel&\\
+% \X{natural}
+% \X{rgb}
+% \X{cmy}
+% \X{cmyk}
+% \X{hsb}
+% \X{gray}
+% \end{tabular}
+% \end{adjustwidth}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Standard color expressions}\label{fig.expr}
+% \centering\small
+% \def\test#1{\testclr{#1}& \texttt{#1}}
+% \def\X#1{\test{#1}& \test{-#1}}
+% \begin{tabular}{@{}l@{ \ }ll@{ \ }l@{}}
+% \X{red}\\
+% \X{red!75}\\
+% \X{red!75!green}\\
+% \X{red!75!green!50}\\
+% \X{red!75!green!50!blue}\\
+% \X{red!75!green!50!blue!25}\\
+% \X{red!75!green!50!blue!25!gray}\\
+% \end{tabular}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Standard color expressions}\label{fig.ex}
+% \begin{minipage}{\textwidth}\small
+% \begin{verbatim}
+% \fboxrule6pt
+% \fcolorbox
+% {red!70!green}% outer frame
+% {yellow!30!blue}% outer background
+% {\fcolorbox
+% {-yellow!30!blue}% inner frame
+% {-red!70!green}% inner background
+% {Test\textcolor{red!72.75}{Test}\color{-green}Test}}
+% \end{verbatim}
+% \end{minipage}\relax
+% \llap{\fboxrule6pt \fcolorbox
+% {red!70!green}{yellow!30!blue}{\fcolorbox
+% {-yellow!30!blue}{-red!70!green}{Test\textcolor{red!72.75}{Test}\color{-green}Test}}}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Current color}\label{fig.cc}
+% \begin{minipage}{\textwidth}\small
+% \begin{verbatim}
+% \def\test{current, \textcolor{.!50}{50\%},
+% \textcolor{-.}{complement},
+% \textcolor{yellow!50!.}{mix}}
+% \textcolor{blue}{\test}\\
+% and \textcolor{red}{\test}\\
+% \def\Test{\color{.!80}Test}
+% \textcolor{blue}{\Test\Test\Test\Test\Test}\\
+% and \textcolor{red}{\Test\Test\Test\Test\Test}
+% \end{verbatim}
+% \end{minipage}\relax
+% \llap{\begin{minipage}{.5\textwidth}\small\raggedleft
+% \def\test{current, \textcolor{.!50}{50\%},
+% \textcolor{-.}{complement},
+% \textcolor{yellow!50!.}{mix}}
+% \textcolor{blue}{\test}\\
+% and \textcolor{red}{\test}\\
+% \def\Test{\color{.!80}Test}
+% \textcolor{blue}{\Test\Test\Test\Test\Test}\\
+% and \textcolor{red}{\Test\Test\Test\Test\Test}
+% \end{minipage}}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Color series}\label{fig.csx}
+% \centering
+% \def\tabulartest#1{\definecolorseries{test}#1\resetcolorseries[12]{test}%
+% \rowcolors[\hline]{1}{test!!+}{test!!+}%
+% \begin{tabular}{c}
+% \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\
+% \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\
+% \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\
+% \number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\
+% \end{tabular}}
+%
+% \begin{tabular}{@{}*{9}{c}@{}}
+% $S_1$ & $S_2$ & $G_1$ & $G_2$ & $L_1$ & $L_2$ & $L_3$ & $L_4$ & $L_5$ \\[3pt]
+% \tabulartest{{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}}&
+% \tabulartest{{hsb}{step}[hsb]{.575,1,1}{.11,-.05,0}}&
+% \tabulartest{{rgb}{grad}[rgb]{.95,.85,.55}{3,11,17}}&
+% \tabulartest{{hsb}{grad}[hsb]{.575,1,1}{.987,-.234,0}}&
+% \tabulartest{{rgb}{last}[rgb]{.95,.85,.55}[rgb]{.05,.15,.55}}&
+% \tabulartest{{hsb}{last}[hsb]{.575,1,1}[hsb]{-.425,.15,1}}&
+% \tabulartest{{rgb}{last}{yellow!50}{blue}}&
+% \tabulartest{{hsb}{last}{yellow!50}{blue}}&
+% \tabulartest{{cmy}{last}{yellow!50}{blue}}\\
+% \end{tabular}
+%
+% \bigskip
+%
+% \footnotesize
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabular}{>{$}l<{$}l}
+% \hline
+% \multicolumn2{>{\columncolor{tableheadcolor}}c}{\em Individual definitions}\\
+% S_1& |\definecolorseries{test}{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}|\\
+% S_2& |\definecolorseries{test}{hsb}{step}[hsb]{.575,1,1}{.11,-.05,0}|\\
+% G_1& |\definecolorseries{test}{rgb}{grad}[rgb]{.95,.85,.55}{3,11,17}|\\
+% G_2& |\definecolorseries{test}{hsb}{grad}[hsb]{.575,1,1}{.987,-.234,0}|\\
+% L_1& |\definecolorseries{test}{rgb}{last}[rgb]{.95,.85,.55}[rgb]{.05,.15,.55}|\\
+% L_2& |\definecolorseries{test}{hsb}{last}[hsb]{.575,1,1}[hsb]{-.425,.15,1}|\\
+% L_3& |\definecolorseries{test}{rgb}{last}{yellow!50}{blue}|\\
+% L_4& |\definecolorseries{test}{hsb}{last}{yellow!50}{blue}|\\
+% L_5& |\definecolorseries{test}{cmy}{last}{yellow!50}{blue}|\\
+% \hline
+% \multicolumn2{>{\columncolor{tableheadcolor}}c}{\em Common definitions}\\
+% \hiderowcolors
+% &|\resetcolorseries[12]{test}|\\
+% &|\rowcolors[\hline]{1}{test!!+}{test!!+}|\\
+% &|\begin{tabular}{c}|\\
+% &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\
+% &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\
+% &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\
+% &|\number\rownum\\ \number\rownum\\ \number\rownum\\ \number\rownum\\|\\
+% &|\end{tabular}|\\
+% \hline
+% \end{tabular}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Color masking}\label{fig.mask}
+% \begin{adjustwidth}{-2.5cm}{}
+% \small\raggedleft
+% \extrarowheight2pt
+% \makeatletter
+% \def\X#1#2{\edef\tmp{\@ifxempty{#1}{}{[#1]}{#2}}\dots\Meaning{tmp}&
+% \maskcolors[#1]{#2}\testclr{red} \testclr{green} \testclr{blue} \testclr{cyan} \testclr{magenta}
+% \testclr{yellow} \testclr{orange} \testclr{violet} \testclr{purple} \testclr{brown} \testclr{pink}
+% \testclr{olive} \testclr{black} \testclr{darkgray} \testclr{gray} \testclr{lightgray} \testclr{white}\\}\relax
+% \makeatother
+% \begin{tabular}{@{}>{\ttfamily}l@{ }l@{}}
+% \string\maskcolors&\\
+% \hline
+% \X{}{}
+% \hline
+% \X{cmyk}{cyan}
+% \X{cmyk}{magenta}
+% \X{cmyk}{yellow}
+% \X{cmyk}{black}
+% \hline
+% \X{cmyk}{red}
+% \X{cmyk}{green}
+% \X{cmyk}{blue}
+% \hline
+% \X{rgb}{red}
+% \X{rgb}{green}
+% \X{rgb}{blue}
+% \hline
+% \X{hsb}{red}
+% \X{hsb}{green}
+% \X{hsb}{blue}
+% \hline
+% \X{rgb}{gray}
+% \X{cmy}{gray}
+% \end{tabular}
+% \end{adjustwidth}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Alternating row colors in tables: \cmd\rowcolors{} vs. \cmd\rowcolors\texttt*}\label{fig.row}
+% \centering
+% \begin{minipage}{\textwidth}
+% \begin{verbatim}
+% \rowcolors[\hline]{3}{green!25}{yellow!50} \arrayrulecolor{red!75!gray}
+% \begin{tabular}{ll}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \arrayrulecolor{black}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \rowcolor{blue!25}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \hiderowcolors
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \showrowcolors
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \multicolumn{1}%
+% {>{\columncolor{red!12}}l}{test} & row \number\rownum\\
+% \end{tabular}
+% \end{verbatim}
+% \end{minipage}
+% \hskip-.5\textwidth
+% \rowcolors[\hline]{3}{green!25}{yellow!50} \arrayrulecolor{red!75!gray}
+% \begin{tabular}{ll}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \arrayrulecolor{black}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \rowcolor{blue!25}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \hiderowcolors
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \showrowcolors
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \multicolumn{1}%
+% {>{\columncolor{red!12}}l}{test} & row \number\rownum\\
+% \end{tabular}
+% \qquad
+% \rowcolors*[\hline]{3}{green!25}{yellow!50}\arrayrulecolor{red!75!gray}
+% \begin{tabular}{ll}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \arrayrulecolor{black}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \rowcolor{blue!25}
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \hiderowcolors
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \showrowcolors
+% test & row \number\rownum\\
+% test & row \number\rownum\\
+% \multicolumn{1}%
+% {>{\columncolor{red!12}}l}{test} & row \number\rownum\\
+% \end{tabular}
+% \arrayrulecolor{black}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{\Model{Hsb} and \Model{tHsb}: \emph{hue\Circ} in $15^\circ$ steps}\label{fig.tHsb}
+% \begin{adjustwidth}{-2.5cm}{}
+% \footnotesize\sffamily\raggedleft
+% \extrarowheight.5pt
+% \begin{testcolors}[rgb,cmyk,hsb,Hsb,tHsb]
+% \testcolor[Hsb]{0,1,1}
+% \testcolor[Hsb]{15,1,1}
+% \testcolor[Hsb]{30,1,1}
+% \testcolor[Hsb]{45,1,1}
+% \testcolor[Hsb]{60,1,1}
+% \testcolor[Hsb]{75,1,1}
+% \testcolor[Hsb]{90,1,1}
+% \testcolor[Hsb]{105,1,1}
+% \testcolor[Hsb]{120,1,1}
+% \testcolor[Hsb]{135,1,1}
+% \testcolor[Hsb]{150,1,1}
+% \testcolor[Hsb]{165,1,1}
+% \testcolor[Hsb]{180,1,1}
+% \testcolor[Hsb]{195,1,1}
+% \testcolor[Hsb]{210,1,1}
+% \testcolor[Hsb]{225,1,1}
+% \testcolor[Hsb]{240,1,1}
+% \testcolor[Hsb]{255,1,1}
+% \testcolor[Hsb]{270,1,1}
+% \testcolor[Hsb]{285,1,1}
+% \testcolor[Hsb]{300,1,1}
+% \testcolor[Hsb]{315,1,1}
+% \testcolor[Hsb]{330,1,1}
+% \testcolor[Hsb]{345,1,1}
+% \testcolor[Hsb]{360,1,1}
+% \noalign{\medskip}
+% \testcolor[tHsb]{0,1,1}
+% \testcolor[tHsb]{15,1,1}
+% \testcolor[tHsb]{30,1,1}
+% \testcolor[tHsb]{45,1,1}
+% \testcolor[tHsb]{60,1,1}
+% \testcolor[tHsb]{75,1,1}
+% \testcolor[tHsb]{90,1,1}
+% \testcolor[tHsb]{105,1,1}
+% \testcolor[tHsb]{120,1,1}
+% \testcolor[tHsb]{135,1,1}
+% \testcolor[tHsb]{150,1,1}
+% \testcolor[tHsb]{165,1,1}
+% \testcolor[tHsb]{180,1,1}
+% \testcolor[tHsb]{195,1,1}
+% \testcolor[tHsb]{210,1,1}
+% \testcolor[tHsb]{225,1,1}
+% \testcolor[tHsb]{240,1,1}
+% \testcolor[tHsb]{255,1,1}
+% \testcolor[tHsb]{270,1,1}
+% \testcolor[tHsb]{285,1,1}
+% \testcolor[tHsb]{300,1,1}
+% \testcolor[tHsb]{315,1,1}
+% \testcolor[tHsb]{330,1,1}
+% \testcolor[tHsb]{345,1,1}
+% \testcolor[tHsb]{360,1,1}
+% \end{testcolors}
+% \end{adjustwidth}
+% \end{figure}
+%
+%
+% \begin{figure}[htbp]\caption{Color harmony}\label{fig.harmony}
+% \begin{adjustwidth}{-2.5cm}{}
+% \small\sffamily\raggedleft
+% \extrarowheight1.5pt
+% \begin{testcolors}[rgb,cmyk,Hsb,tHsb]
+% \noalign{\smallskip}
+% \rlap{\em complementary colors (two-color harmony):}\\
+% \testcolor{yellow>wheel,1,2}
+% \testcolor{yellow}
+% \testcolor{yellow>twheel,1,2}
+% \noalign{\medskip}
+% \rlap{\em color triad (three-color harmony):}\\
+% \testcolor{yellow>wheel,2,3}
+% \testcolor{yellow>wheel,1,3}
+% \testcolor{yellow}
+% \testcolor{yellow>twheel,1,3}
+% \testcolor{yellow>twheel,2,3}
+% \noalign{\medskip}
+% \rlap{\em color tetrad (four-color harmony):}\\
+% \testcolor{yellow>wheel,3,4}
+% \testcolor{yellow>wheel,2,4}
+% \testcolor{yellow>wheel,1,4}
+% \testcolor{yellow}
+% \testcolor{yellow>twheel,1,4}
+% \testcolor{yellow>twheel,2,4}
+% \testcolor{yellow>twheel,3,4}
+% \noalign{\medskip}
+% \rlap{\em split complementary colors:}\\
+% \testcolor{yellow>wheel,7,12}
+% \testcolor{yellow>wheel,5,12}
+% \testcolor{yellow}
+% \testcolor{yellow>twheel,5,12}
+% \testcolor{yellow>twheel,7,12}
+% \noalign{\medskip}
+% \rlap{\em analogous (adjacent) colors:}\\
+% \testcolor{yellow>wheel,11,12}
+% \testcolor{yellow>wheel,10,12}
+% \testcolor{yellow>wheel,2,12}
+% \testcolor{yellow>wheel,1,12}
+% \testcolor{yellow}
+% \testcolor{yellow>twheel,1,12}
+% \testcolor{yellow>twheel,2,12}
+% \testcolor{yellow>twheel,10,12}
+% \testcolor{yellow>twheel,11,12}
+% \end{testcolors}
+% \end{adjustwidth}
+% \end{figure}
+%
+% \end{adjustwidth}
+%
+%
+% \clearpage
+%
+% \begin{adjustwidth}{-2.5cm}{}
+% \raggedcolumns\columnsep2.5em
+%
+% \section{Colors by Name}\label{sec.names}
+%
+% \begin{multicols}{5}[\subsection{Base Colors}\label{sec.basenam}]
+% \footnotesize\def\0#1{\Testclr{#1}{#1}}
+% \0{black}
+% \0{blue}
+% \0{brown}
+% \0{cyan}
+% \0{darkgray}
+% \0{gray}
+% \0{green}
+% \0{lightgray}
+% \0{magenta}
+% \0{olive}
+% \0{orange}
+% \0{pink}
+% \0{purple}
+% \0{red}
+% \0{violet}
+% \0{white}
+% \0{yellow}
+% \end{multicols}
+%
+%
+% \begin{multicols}{5}[\subsection{Colors via \Option{dvipsnames}}\label{sec.dvipsnam}]
+% \footnotesize\def\0#1{\Testclr{#1}{#1}}
+% \0{Apricot}
+% \0{Aquamarine}
+% \0{Bittersweet}
+% \0{Black}
+% \0{Blue}
+% \0{BlueGreen}
+% \0{BlueViolet}
+% \0{BrickRed}
+% \0{Brown}
+% \0{BurntOrange}
+% \0{CadetBlue}
+% \0{CarnationPink}
+% \0{Cerulean}
+% \0{CornflowerBlue}
+% \0{Cyan}
+% \0{Dandelion}
+% \0{DarkOrchid}
+% \0{Emerald}
+% \0{ForestGreen}
+% \0{Fuchsia}
+% \0{Goldenrod}
+% \0{Gray}
+% \0{Green}
+% \0{GreenYellow}
+% \0{JungleGreen}
+% \0{Lavender}
+% \0{LimeGreen}
+% \0{Magenta}
+% \0{Mahogany}
+% \0{Maroon}
+% \0{Melon}
+% \0{MidnightBlue}
+% \0{Mulberry}
+% \0{NavyBlue}
+% \0{OliveGreen}
+% \0{Orange}
+% \0{OrangeRed}
+% \0{Orchid}
+% \0{Peach}
+% \0{Periwinkle}
+% \0{PineGreen}
+% \0{Plum}
+% \0{ProcessBlue}
+% \0{Purple}
+% \0{RawSienna}
+% \0{Red}
+% \0{RedOrange}
+% \0{RedViolet}
+% \0{Rhodamine}
+% \0{RoyalBlue}
+% \0{RoyalPurple}
+% \0{RubineRed}
+% \0{Salmon}
+% \0{SeaGreen}
+% \0{Sepia}
+% \0{SkyBlue}
+% \0{SpringGreen}
+% \0{Tan}
+% \0{TealBlue}
+% \0{Thistle}
+% \0{Turquoise}
+% \0{Violet}
+% \0{VioletRed}
+% \0{White}
+% \0{WildStrawberry}
+% \0{Yellow}
+% \0{YellowGreen}
+% \0{YellowOrange}
+% \end{multicols}
+%
+%
+% \makeatletter
+% \def\ColorList#1#2#3#4{\begin{multicols}{#1}[\subsection{Colors via \Option{#2names}}\label{sec.#2nam}]
+% \footnotesize
+% \def\preparecolorset
+% {\def\XC@@cmd[####1]####2####3####4{\definecolor[####1]{@test}{####3}{####4}#4{@test}{####2}}\@testopt{\XC at definecolorset}{}}
+% \edef\restore{\catcode`\noexpand\%\the\catcode`\%\relax}
+% \catcode`\%14\relax\input{#3nam.def}\restore
+% \end{multicols}}
+% \makeatother
+%
+% \ColorList4{svg}{svg}\Testclr
+% \medskip
+% \begin{adjustwidth}{1cm}{1cm}
+% \footnotesize\raggedright Duplicate colors:
+% \Color[-]{Aqua} = \Color[-]{Cyan},
+% \Color[-]{Fuchsia} = \Color[-]{Magenta};
+% \Color[-]{Navy} = \Color[-]{NavyBlue};
+% \Color[-]{Gray} = \Color[-]{Grey},
+% \Color[-]{DarkGray} = \Color[-]{DarkGrey},
+% \Color[-]{LightGray} = \Color[-]{LightGrey},
+% \Color[-]{SlateGray} = \Color[-]{SlateGrey},
+% \Color[-]{DarkSlateGray} = \Color[-]{DarkSlateGrey},
+% \Color[-]{LightSlateGray} = \Color[-]{LightSlateGrey},
+% \Color[-]{DimGray} = \Color[-]{DimGrey}.
+% \par
+% Colors taken from \Index{Unix}/\Index{X11}:
+% \Color[-]{LightGoldenrod},
+% \Color[-]{LightSlateBlue},
+% \Color[-]{NavyBlue},
+% \Color[-]{VioletRed}.
+% \end{adjustwidth}
+%
+% \ColorList4{x11}{x11}\Testclr
+% \medskip
+% \begin{adjustwidth}{1cm}{1cm}
+% \footnotesize\raggedright Duplicate colors:
+% \Color[-]{Gray0} = \Color[-]{Grey0},
+% \Color[-]{Green0} = \Color[-]{Green1}.
+% \end{adjustwidth}
+%
+% \end{adjustwidth}
+%
+%
+%
+%
+% \clearpage
+% \section{Technical Supplement}
+%
+% \subsection{Color models supported by drivers}
+%
+% Since some of the drivers only pretend to support the \Model{hsb} model, we included some code to bypass this behaviour.
+% The models actually added by \XC{} are shown in the log file.
+% Table \vref{tab.drv} lists mainly the drivers that are part of current MiK\TeX{} \cite{mik} distributions and their color model support.
+% Probably, other distributions behave similarly.
+%
+% \begin{table}[htbp]\caption{Drivers and color models}\label{tab.drv}
+% \centering\small
+% \extrarowheight1pt
+% \tabcolsep3pt
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabular}{ll*{9}{c}}
+% \rowcolor{tableheadcolor}
+% \hline
+% \em Driver&\em Version&\Model{rgb}&\Model{cmy}&\Model{cmyk}&\Model{hsb}&\Model{gray}&\Model{RGB}&\Model{HTML}&\Model{HSB}&\Model{Gray}\\
+% \Option{dvipdf}&1999/02/16 v3.0i&d&n&d&n&d&i&n&n&n\\
+% \Option{dvips}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\
+% \Option{dvipsone}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\
+% \Option{pctex32}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\
+% \Option{pctexps}&1999/02/16 v3.0i&d&n&d&d&d&i&n&n&n\\
+% \hline
+% \Option{pdftex}&2002/06/19 v0.03k&d&n&d&n&d&i&n&n&n\\
+% \hline
+% \Option{dvipdfm}&1998/11/24 vx.x\,\footnotemark[1]&d&n&d&a&d&i&n&n&n\\
+% \Option{dvipdfm}&1999/9/6 vx.x\,\footnotemark[2]&d&n&d&a&d&i&n&n&n\\
+% \hline
+% \Option{dvipdfmx}&?&d&n&d&f&d&i&n&n&n\\
+% \hline
+% \Option{textures}&1997/5/28 v0.3&d&n&d&a&i&n&n&n&n\\
+% \hline
+% \Option{vtex}&1999/01/14 v6.3&d&n&d&n&i&i&n&n&n\\
+% \hline
+% \Option{xetex}&2004/05/09 v0.7&i&n&i&i&i&i&d&n&n\\
+% \hline
+% \Option{tcidvi}&1999/02/16 v3.0i&i&n&i&n&i&d&n&n&n\\
+% \Option{truetex}&1999/02/16 v3.0i&i&n&i&n&i&d&n&n&n\\
+% \hline
+% \Option{dviwin}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\
+% \Option{emtex}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\
+% \Option{pctexhp}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\
+% \Option{pctexwin}&1999/02/16 v3.0i&n&n&n&n&n&n&n&n&n\\
+% \hline\hline
+% \multicolumn{11}c{\Option{dviwindo} = \Option{dvipsone}; \Option{oztex} = \Option{dvips}; \Option{xdvi} = \Option{dvips} + \Option{monochrome}}\\
+% \multicolumn{11}c{\footnotemark[1]\,part of \Package{graphics} package\quad \footnotemark[2]\,additionally distributed with MiK\TeX}\\
+% \hline
+% \multicolumn{11}c{Driver's color model support: d\,=\,direct, i\,=\,indirect, a\,=\,alleged, n\,=\,none, f\,=\,faulty}\\
+% \hline
+% \end{tabular}
+% \end{table}
+%
+%
+%
+% \subsection{How \XC{} handles driver-specific color models}
+%
+% Although there is a variety of drivers that implement different approaches to color visualisation, they all have some features in common, as defined by the original \LCP.
+% One of these features is that any color model `foo' requires a |\color at foo|\marg{cmd}\marg{spec} command in order to translate the `foo'-dependent color \Meta{spec} into some driver-specific code that is stored in \Meta{cmd}.
+% Therefore, \XC{} in general detects driver-support for the `foo' model via the existence of |\color at foo|.
+%
+% By this mechanism, \XC{} can also change the behaviour of certain models without touching the driver file itself.
+% A good example is the |\substitutecolormodel| command which is used during the package initialisation process to provide support for models that are not covered by the actual driver (like \Model{hsb} for \Option{pdftex}) or that have incorrect implementations (like \Model{hsb} for \Option{dvipdfm}).
+%
+%
+% \subsection{Behind the scenes: internal color representation}
+%
+% Every definition of a color in order to access it by its name requires an internal representation of the color, i.e.~a macro that contains some bits of information required by the driver to display the color properly.
+%
+% \LC's |\definecolor{foo}{...}{...}| generates a command |\\color at foo|\footnote{The double backslash is intentional.} which contains the color definition in a driver-dependent way; therefore it is possible but non-trivial to access the color model and parameters afterwards (see the \Package{colorinfo} package \cite{colorinfo} for a solution).
+%
+% \LC's |\DefineNamedColor{named}{foo}{...}{...}| generates |\col at foo|\footnote{The single backslash is intentional.} which again contains some driver-dependent information.
+% In this case, an additional |\\color at foo| will only be defined if the package option \Option{usecolors} is active.
+%
+% \XC's |\definecolor{foo}{...}{...}| generates\footnote{This was introduced in version 1.10; prior to that, a command \cs{\string\xcolor at foo} with a different syntax was generated.} a command |\\color at foo| as well, which combines the features of the former commands and contains both the driver-dependent and driver-independent information, thus making it possible to access the relevant parameters in a standardised way.
+% Although it has now a different syntax, |\\color at foo| expands to the same expression as the original command.
+% On the other hand, |\col at foo| commands are no longer needed and therefore not generated in the `named' case: \XC{} works with a single color data structure (as described).
+%
+% Table \vref{tab.internal} shows some examples for the two most prominent drivers.
+% See also figure \vref{fig.progress} which displays the definitions with respect to the driver that was used to process this document.
+%
+%
+% \begin{table}[htb]\caption{Driver-dependent internal color representation}\label{tab.internal}
+% \centering\small
+% \def\X{\hspace*{-.845\textwidth}\\}
+% \extrarowheight1pt
+% \tabcolsep8pt
+% \begin{tabular}{l>{\color{blue}(}r<{)}l}
+% \hline
+% \multicolumn3{>{\columncolor{tableheadcolor}}l}{\Option{dvips} driver}\\
+% \hline
+% |\\color at Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}| & \LC\\
+% |->rgb .5 0 1.|\X
+% \hline
+% |\\color at Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}|& \XC\\
+% |->\xcolor@ {}{rgb 0.5 0 1}{rgb}{0.5,0,1}.|\X
+% \hline
+% |\col at Plum=macro:| & |\DefineNamedColor{Plum}{rgb}{.5,0,1}|& \LC\\
+% |->\@nil .|\X
+% |\\color at Plum=macro:| & with option \Option{usenames}\\
+% |-> Plum.|\X
+% \hline
+% |\\color at Plum=macro:| & |\definecolor[named]{Plum}{rgb}{.5,0,1}|& \XC\\
+% |->\xcolor@ {named}{ Plum}{rgb}{0.5,0,1}.|\X
+% \hline
+% \multicolumn3{>{\columncolor{tableheadcolor}}l}{\Option{pdftex} driver}\\
+% \hline
+% |\\color at Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}|& \LC\\
+% |->.5 0 1 rg .5 0 1 RG.|\X
+% \hline
+% |\\color at Plum=macro:| & |\definecolor{Plum}{rgb}{.5,0,1}|& \XC\\
+% |->\xcolor@ {}{0.5 0 1 rg 0.5 0 1 RG}{rgb}{0.5,0,1}.|\X
+% \hline
+% |\col at Plum=macro:| & |\DefineNamedColor{Plum}{rgb}{.5,0,1}|& \LC\\
+% |->.5 0 1 rg .5 0 1 RG.|\X
+% |\\color at Plum=macro:| & with option \Option{usenames}\\
+% |->.5 0 1 rg .5 0 1 RG.|\X
+% \hline
+% |\\color at Plum=macro:| & |\definecolor[named]{Plum}{rgb}{.5,0,1}|& \XC\\
+% |->\xcolor@ {}{0.5 0 1 rg 0.5 0 1 RG}{rgb}{0.5,0,1}.|\X
+% \hline
+% \end{tabular}
+% \end{table}
+%
+%
+%
+% \subsection{A remark on accuracy}
+%
+% Since the macros presented here require some computation, special efforts were made to ensure a maximum of accuracy for conversion and mixing formulas --- all within \TeX's limited numerical capabilities.\footnote{For example, applying the `transformation' \cs{dimen0=0.}\Meta{int}\texttt{pt} \cs{the\string\dimen0} to all 5-digit numbers \Meta{int} of the range 00000\dots 99999, exactly 34464 of these 100000 numbers don't survive unchanged. We are not talking about gobbled final zeros h [...]
+% We decided to develop and include a small set of commands to improve the quality of division and multiplication results, instead of loading one of the packages that provide multi-digit arithmetic and a lot more, like \Package{realcalc} or \Package{fp}.
+% The marginal contribution of the latter packages seems not to justify their usage for our purposes.
+% Thus, we stay within a sort of fixed-point arithmetic framework, providing at most 5~decimal digits via \TeX's dimension registers.
+%
+%
+%
+%
+% \clearpage
+% \section{The Formulas}
+%
+% \subsection{Color mixing}
+%
+% In general, we use linear interpolation for color mixing:
+% \begin{align}
+% \mix(C, C', p) = p \cdot C + (1-p) \cdot C'\label{eq.mix}
+% \end{align}
+% Note that there is a special situation in the \Model{hsb} case:
+% if $\emph{saturation}=0$ then the color equals a gray color of level \emph{brightness}, independently of the \emph{hue} value.
+% Therefore, to achieve smooth transitions of an arbitrary color to a specific gray (like white or black), we actually use the formulas
+% \begin{align}
+% \Op\tint{hsb}(C, p) &= p \cdot C + (1-p) \cdot \bigl(\emph{hue},0,1\bigr)\\
+% \Op\shade{hsb}(C, p) &= p \cdot C + (1-p) \cdot \bigl(\emph{hue},0,0\bigr)\\
+% \Op\tone{hsb}(C, p) &\textstyle= p \cdot C + (1-p) \cdot \bigl(\emph{hue},0,\frac12\bigr)
+% \end{align}
+% where $C=(\emph{hue},\emph{saturation},\emph{brightness})$.
+%
+% From equation (\ref{eq.mix}) and the way how color expressions are being interpreted, as described in section \vref{sec.term}, it is an easy proof by induction to verify that a color expression
+% \begin{gather}
+% C_0!P_1!C_1!P_2!\dots!P_n!C_n
+% \end{gather}
+% with $n\in\{0,1,2,\dots\}$, colors $C_0,C_1,\dots,C_n$, and percentages $P_1,\dots,P_n\in [0,100]$ will result in a parameter vector
+% \begin{equation}
+% \begin{split}
+% C &= \sum_{\nu=0}^n \Biggl(\prod_{\mu=\nu+1}^n p_\mu \Biggr) (1-p_\nu)\cdot C_\nu\\
+% &= p_n\cdots p_1\cdot C_0\\
+% &\quad + p_n\cdots p_2(1-p_1)\cdot C_1\\
+% &\quad + p_n\cdots p_3(1-p_2)\cdot C_2\\
+% &\quad + \dots\\
+% &\quad + p_n(1-p_{n-1})\cdot C_{n-1}\\
+% &\quad + (1-p_n)\cdot C_n
+% \end{split}
+% \end{equation}
+% where $p_0 := 0$ and $p_\nu := P_\nu/100$ for $\nu=1,\dots,n$.
+% We note also a split formula:
+% \begin{equation}
+% \begin{split}
+% C_0!P_1!C_1!\dots!P_{n+k}!C_{n+k}
+% &= p_{n+k}\cdots p_{n+1}\cdot C_0!P_1!C_1!\dots!P_n!C_n\\
+% &\quad - p_{n+k}\cdots p_{n+1}\cdot C_n\\
+% &\quad + C_n!P_{n+1}!C_{n+1}!\dots!P_{n+k}!C_{n+k}
+% \end{split}
+% \end{equation}
+%
+%
+% \begin{table}[p]\caption{Color constants}\label{tab.const}
+% \centering
+% \extrarowheight2pt
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabular}{*4{c}}
+% \hline
+% \rowcolor{tableheadcolor}
+% \emph{model/constant} &
+% \ttfamily white & \ttfamily black & \ttfamily gray\\[2pt]
+% \Model{rgb}& $(1,1,1)$ & $(0,0,0)$ & $(\frac12,\frac12,\frac12)$ \\[2pt]
+% \Model{cmy}& $(0,0,0)$ & $(1,1,1)$ & $(\frac12,\frac12,\frac12)$ \\[2pt]
+% \Model{cmyk}& $(0,0,0,0)$ & $(0,0,0,1)$ & $(0,0,0,\frac12)$ \\[2pt]
+% \Model{hsb}& $(h,0,1)$ & $(h,0,0)$ & $(h,0,\frac12)$ \\[2pt]
+% \Model{Hsb}& $(h^\circ,0,1)$ & $(h^\circ,0,0)$ & $(h^\circ,0,\frac12)$ \\[2pt]
+% \Model{tHsb}& $(h^\circ,0,1)$ & $(h^\circ,0,0)$ & $(h^\circ,0,\frac12)$ \\[2pt]
+% \Model{gray}& $1$ & $0$ & $\frac12$ \\[2pt]
+% \Model{RGB}& $(L,L,L)$ & $(0,0,0)$ & $(\lfloor\frac {L+1}2\rfloor,\lfloor\frac {L+1}2\rfloor,\lfloor\frac {L+1}2\rfloor)$ \\[2pt]
+% \Model{HTML}& \texttt{FFFFFF}& \texttt{000000}& \texttt{808080}\\[2pt]
+% \Model{HSB}& $(H,0,M)$ & $(H,0,0)$ & $(H,0,\lfloor\frac {M+1}2\rfloor)$ \\[2pt]
+% \Model{Gray}& $N$ & $0$ & $\lfloor\frac {N+1}2\rfloor$ \\[2pt]
+% \hline
+% \end{tabular}
+% \end{table}
+%
+%
+% \begin{table}[p]\caption{Color conversion pairs}\label{tab.cnv}
+% \begin{adjustwidth}{-2.5cm}{}
+% \small\raggedleft
+% \def\Em#1{\Model{#1}}
+% \def\sp{\hbox to3em{\hfil$\ast$\hfil}}
+% \def\id{\textrm{id}}
+% \extrarowheight1pt
+% \tabcolsep3pt
+% \rowcolors{3}{tablerowcolor}{}
+% \begin{tabular}{c*{11}{>{\sffamily}c}}
+% \rowcolor{tableheadcolor}
+% \hline
+% \emph{from/to}&
+% \Em{rgb}& \Em{cmy}& \Em{cmyk}& \Em{hsb}& \Em{Hsb} & \Em{tHsb} & \Em{gray}& \Em{RGB}& \Em{HTML}& \Em{HSB}& \Em{Gray}\\
+% \Em{rgb}& \id & \sp & (cmy) & \sp & (hsb) & (hsb) & \sp & \sp & \sp & (hsb) & (gray)\\
+% \Em{cmy}& \sp & \id & \sp & (rgb) & (rgb) & (rgb) & \sp & (rgb) & (rgb) & (rgb) & (gray)\\
+% \Em{cmyk}& (cmy) & \sp & \id & (cmy) & (cmy) & (cmy) & \sp & (cmy) & (cmy) & (cmy) & (gray)\\
+% \Em{hsb}& \sp & (rgb) & (rgb) & \id & \sp & (Hsb) & (rgb) & (rgb) & (rgb) & \sp & (rgb)\\
+% \Em{Hsb}& (hsb) & (hsb) & (hsb) & \sp & \id & \sp & (hsb) & (hsb) & (hsb) & (hsb) & (hsb)\\
+% \Em{tHsb}& (Hsb) & (Hsb) & (Hsb) & (Hsb) & \sp & \id & (Hsb) & (Hsb) & (Hsb) & (Hsb) & (Hsb)\\
+% \Em{gray}& \sp & \sp & \sp & \sp & \sp & \sp & \id & \sp & \sp & \sp & \sp\\
+% \Em{RGB}& \sp & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & \id & (rgb) & (rgb) & (rgb)\\
+% \Em{HTML}& \sp & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & (rgb) & \id & (rgb) & (rgb)\\
+% \Em{HSB}& (hsb) & (hsb) & (hsb) & \sp & (hsb) & (hsb) & (hsb) & (hsb) & (hsb) & \id & (hsb)\\
+% \Em{Gray}& (gray) & (gray) & (gray) & (gray) & (gray) & (gray) & \sp & (gray) & (gray) & (gray) & \id\\
+% \Em{wave}& (hsb) & (hsb) & (hsb) & \sp & (hsb) & (hsb) & (hsb) & (hsb) & (hsb) & (hsb) & (hsb)\\
+% \hline\hline
+% \multicolumn{12}{c}{\id{} = identity function; $\ast$ = specific conversion function;}\\
+% \multicolumn{12}{c}{\textsf{(model)} = conversion via specified model}\\
+% \hline
+% \end{tabular}
+% \end{adjustwidth}
+% \end{table}
+%
+%
+%
+% \subsection{Conversion between integer and real models}
+%
+% We fix a positive integer $n$ and define the sets $\mathcal I_n:=\{0,1,\dots,n\}$ and $\mathcal R:= [0,1]$.
+% The complement of $\nu\in\mathcal I_n$ is $n-\nu$, the complement of $x\in\mathcal R$ is $1-x$.
+%
+% \subsubsection{Real to integer conversion}\label{sec.real2int}
+%
+% The straightforward mapping for this case is
+% \begin{gather}
+% \textstyle\RtoI n : \mathcal R \to \mathcal I_n,\ x \mapsto \rd(n\cdot x,0) = \left\lfloor \frac12+n\cdot x\right\rfloor
+% \end{gather}
+% where $\rd(r,d)$ rounds the real number $r$ to $d\ge0$ decimal digits.
+% This mapping nearly always preserves complements, as shown in the next lemma.
+% \begin{lemma}[Preservation of complements]
+% For $x\in\mathcal R$,
+% \begin{gather}
+% \textstyle\RtoI n(x) + \RtoI n(1-x) = n \iff x \notin \mathcal R_n^\circ := \left\{ \frac1n\bigl(\nu - \frac12\bigr) \bigm\vert \nu=1,2,\dots,n\right\}.
+% \end{gather}
+% \end{lemma}
+% \begin{proof}
+% Let $\nu:=\RtoI n(x)$, then from $-\frac12 \le \eta := n\cdot x - \nu < \frac12$ we conclude
+% \begin{gather*}
+% \textstyle \RtoI n(1-x) = \rd(n(1-x),0) = \rd(n-\nu-\eta,0) =
+% \begin{cases}
+% n-\nu & \text{if $\eta\neq-\frac12$}\\
+% n-\nu+1 & \text{if $\eta=-\frac12$}
+% \end{cases}
+% \end{gather*}
+% Now, $\eta = -\frac12 \iff x = \frac1n\bigl(\nu-\frac12\bigr) \iff x\in\mathcal I_n'$.
+% \end{proof}
+% Remark: the set $\mathcal R_n^\circ$ is obviously identical to the set of points where $\RtoI n$ is not continuous.
+%
+%
+% \subsubsection{Integer to real conversion}\label{sec.int2real}
+%
+% The straightforward way in this case is the function
+% \begin{gather}
+% \ItoR n^*: \mathcal I_n \to \mathcal R,\ \nu \mapsto \frac \nu n.
+% \end{gather}
+% This is, however, only one out of a variety of solutions: every function $\ItoR n:\mathcal I_n\to\mathcal R$ that obeys the condition
+% \begin{gather}
+% \nu\in\mathcal I_n \Rightarrow \Gamma_n\bigl(\ItoR n(\nu)\bigr) = \nu
+% \end{gather}
+% which is equivalent to
+% \begin{gather}
+% \nu\in\mathcal I_n \Rightarrow \nu + \frac12 > n\cdot\ItoR n(\nu) \ge \nu - \frac12\label{eq.round}
+% \end{gather}
+% does at least guarantee that all integers $\nu$ may be reconstructed from $\ItoR n(\nu)$ via multiplication by $n$ and rounding to the nearest integer.
+% Preservation of complements means now
+% \begin{gather}
+% \nu\in\mathcal I_n \Rightarrow \ItoR n(\nu) + \ItoR n(n-\nu) = 1
+% \end{gather}
+% which is obviously the case for $\ItoR n = \ItoR n^*$.
+% If we consider, more generally, a transformation
+% \begin{gather}
+% \ItoR n(\nu) = \frac{\nu + \alpha}{n + \beta}
+% \end{gather}
+% with $\beta\neq-n$, then the magic inequality (\ref{eq.round}) is equivalent to
+% \begin{gather}
+% \frac12 > \frac{\alpha n - \beta\nu}{n + \beta} \ge -\frac12
+% \end{gather}
+% which is obeyed by the function
+% \begin{gather}
+% \ItoR n':\mathcal I_n\to\mathcal R,\ \nu \mapsto
+% \begin{cases}
+% \frac\nu{n+1}& \text{if $\nu\le\frac{n+1}2$}\\[0.25ex]
+% \frac{\nu+1}{n+1}& \text{if $\nu>\frac{n+1}2$}
+% \end{cases}
+% \end{gather}
+% that has the nice feature $\ItoR n'\bigl(\frac{n+1}2\bigr) = \frac12$ for odd $n$.
+% \begin{lemma}[Preservation of complements]
+% For odd $n$ and each $\nu\in\mathcal I_n$,
+% \begin{gather}
+% \textstyle\ItoR n'(\nu) + \ItoR n'(n-\nu) = 1 \iff \nu \notin \mathcal I_n^\circ := \left\{ \frac{n-1}2, \frac{n+1}2 \right\}.
+% \end{gather}
+% \end{lemma}
+% \begin{proof}
+% The assertion is a consequence of the following arguments:
+% \begin{itemize}
+% \item $\nu<\frac{n-1}2 \iff n-\nu>\frac{n+1}2$ \ and \ $\frac{n-1}2 + \frac{n+1}2 = n$;
+% \item $\nu<\frac{n-1}2 \,\Rightarrow\, \ItoR n'(\nu) + \ItoR n'(n-\nu) = \frac\nu{n+1} + \frac{n-\nu+1}{n+1} = 1$;
+% \item $\nu=\frac{n-1}2 \,\Rightarrow\, \ItoR n'(\nu) + \ItoR n'(n-\nu) = \frac{n-1}{2(n+1)} + \frac12 = \frac n{n+1} \neq1$.\qedhere
+% \end{itemize}
+% \end{proof}
+%
+% For the time being, we choose \fbox{$\ItoR n := \ItoR n^*$} as default transformation function.
+%
+% \medskip
+% Another variant --- which is probably too slow for large-scale on-the-fly calculations --- may be used for constructing sets of predefined colors.
+% The basic idea is to minimize the number of decimal digits in the representation while keeping some invariance with respect to the original resolution:
+% \begin{gather}
+% \textstyle\ItoR n'':\mathcal I_n\to\mathcal R,\ \nu \mapsto \rd\bigl(\frac\nu n, d_n(\frac\nu n)\bigr)
+% \end{gather}
+% where
+% \begin{gather}
+% d_n:[0,1]\to\bbbN,\ x \mapsto \min\bigl\{ d\in\bbbN \bigm\vert \RtoI n\bigl(\rd(\ItoR n^*(\RtoI n(x)),d)\bigr) = \RtoI n(x)\bigr\}
+% \end{gather}
+% In the most common case $n=255$ it turns out that we end up with at most 3 decimal digits; preservation of complements is only violated for $\nu\in\{25,26,76,77,127,128,178,179,229,230\}$ where the corresponding set of decimal numbers is $\{0.098,0.1,0.298,0.3,0.498,0.5,0.698,0.7,0.898,0.9\}$.
+%
+%
+%
+% \subsection{Color conversion and complements}\label{sec.cnv}
+%
+% We collect here the specific conversion formulas between the supported color models.
+% Table \vref{tab.cnv} gives an overwiew of how each conversion pair is handled.
+% In general, PostScript (as described in \cite{plrm}) is used as a basis for most of the calculations, since it supports the color models \Model{rgb}, \Model{cmyk}, \Model{hsb}, and \Model{gray} natively.
+% Furthermore, \People{Alvy Ray}{Smith}'s paper \cite{smith} is cited in \cite{plrm} as reference for \Model{hsb}-related formulas.
+%
+% First, we define a constant which is being used throughout the conversion formulas:
+% \begin{gather}
+% E := (1,1,1)
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{rgb} model}
+%
+% \paragraph{Conversion \Model{rgb} to \Model{cmy}}\label{sec.rgb2cmy}
+% Source: \cite{plrm}, p. 475.
+% \begin{gather}
+% (\emph{cyan}, \emph{magenta}, \emph{yellow}) := E-(\emph{red}, \emph{green}, \emph{blue})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{rgb} to \Model{hsb} (1)}
+% We set
+% \begin{align}
+% x & := \max\{\emph{red}, \emph{green}, \emph{blue}\}\\
+% y & := \med\{\emph{red}, \emph{green}, \emph{blue}\}\\
+% z & := \min\{\emph{red}, \emph{green}, \emph{blue}\}%\\
+% \end{align}
+% where `$\med$' denotes the median of the values.
+% Then,
+% \begin{align}
+% \emph{brightness} & := x\\
+% \intertext{Case $x=z$:}
+% \emph{saturation} & := 0\\
+% \emph{hue} & := 0\\
+% \intertext{Case $x\neq z$:}
+% \emph{saturation} & := \frac{x - z}x\\
+% f & := \frac{x - y}{x - z}
+% \end{align}
+% \begin{gather}
+% \emph{hue} := \frac 16\cdot
+% \begin{cases}
+% 1-f & \text{if $x=\emph{red}\ge\emph{green}\ge\emph{blue}=z$}\\
+% 1+f & \text{if $x=\emph{green}\ge\emph{red}\ge\emph{blue}=z$}\\
+% 3-f & \text{if $x=\emph{green}\ge\emph{blue}\ge\emph{red}=z$}\\
+% 3+f & \text{if $x=\emph{blue}\ge\emph{green}\ge\emph{red}=z$}\\
+% 5-f & \text{if $x=\emph{blue}\ge\emph{red}\ge\emph{green}=z$}\\
+% 5+f & \text{if $x=\emph{red}\ge\emph{blue}>\emph{green}=z$}
+% \end{cases}\label{eq.rgb2hsb1}
+% \end{gather}
+%
+% \medskip
+%
+% This is based on \cite{smith}, \emph{RGB to HSV Algorithm (Hexcone Model)}, which reads (slightly reformulated):
+% \begin{gather}
+% r := \frac{x - \emph{red}}{x - z},\qquad
+% g := \frac{x - \emph{green}}{x - z},\qquad
+% b := \frac{x - \emph{blue}}{x - z}\\
+% \emph{hue} := \frac 16\cdot
+% \begin{cases}
+% 5+b & \text{if $\emph{red}=x$ and $\emph{green}=z$}\\
+% 1-g & \text{if $\emph{red}=x$ and $\emph{green}>z$}\\
+% 1+r & \text{if $\emph{green}=x$ and $\emph{blue}=z$}\\
+% 3-b & \text{if $\emph{green}=x$ and $\emph{blue}>z$}\\
+% 3+g & \text{if $\emph{blue}=x$ and $\emph{red}=z$}\\
+% 5-r & \text{if $\emph{blue}=x$ and $\emph{red}>z$}
+% \end{cases}
+% \end{gather}
+% Note that the singular case $x=z$ is not covered completely in Smith's original algorithm; we stick here to PostScript's behaviour in real life.
+%
+% Because we need to sort three numbers in order to calculate $x,y,z$, several comparisons are involved in the algorithm.
+% We present now a second method which is more suited for \TeX.
+%
+%
+% \paragraph{Conversion \Model{rgb} to \Model{hsb} (2)}
+% Let $\beta$ be a function that takes a Boolean expression as argument and returns 1 if the expression is true, 0 otherwise; set
+% \begin{gather}
+% i := 4\cdot\beta(\emph{red}\ge\emph{green}) + 2\cdot\beta(\emph{green}\ge\emph{blue}) + \beta(\emph{blue}\ge\emph{red}),
+% \intertext{and}
+% (\emph{hue},\emph{saturation},\emph{brightness}) :=
+% \begin{cases}
+% \Phi(\emph{blue},\emph{green},\emph{red},3,1) & \text{if $i=1$}\\
+% \Phi(\emph{green},\emph{red},\emph{blue},1,1) & \text{if $i=2$}\\
+% \Phi(\emph{green},\emph{blue},\emph{red},3,-1) & \text{if $i=3$}\\
+% \Phi(\emph{red},\emph{blue},\emph{green},5,1) & \text{if $i=4$}\\
+% \Phi(\emph{blue},\emph{red},\emph{green},5,-1) & \text{if $i=5$}\\
+% \Phi(\emph{red},\emph{green},\emph{blue},1,-1) & \text{if $i=6$}\\
+% (0,0,\emph{blue}) & \text{if $i=7$}
+% \end{cases}\label{eq.rgb2hsb2}
+% \intertext{where}
+% \Phi(x,y,z,u,v) := \Bigl( \frac{u\cdot(x-z)+v\cdot(x-y)}{6(x-z)}, \frac{x-z}x, x\Bigr)
+% \end{gather}
+%
+% The singular case $x=z$, which is equivalent to $\emph{red}=\emph{green}=\emph{blue}$, is covered here by $i=7$.
+%
+% \medskip
+%
+% It is not difficult to see that this algorithm is a reformulation of the previous method.
+% The following table explains how the transition from equation (\ref{eq.rgb2hsb1}) to equation (\ref{eq.rgb2hsb2}) works:
+%
+% \medskip
+%
+% \begin{tabular*}{\textwidth}{@{\extracolsep\fill}*5{>{$}c<{$}}l@{}}
+% 6\cdot\emph{hue}& \emph{Condition}& \emph{red}\ge\emph{green}& \emph{green}\ge\emph{blue}& \emph{blue}\ge\emph{red}& $i$\\\hline
+% 1-f & \emph{red}\ge\emph{green}\ge\emph{blue}& 1& 1& *& \textbf6/7\\
+% 1+f & \emph{green}\ge\emph{red}\ge\emph{blue}& *& 1& *& \textbf2/3/6/7\\
+% 3-f & \emph{green}\ge\emph{blue}\ge\emph{red}& *& 1& 1& \textbf3/7\\
+% 3+f & \emph{blue}\ge\emph{green}\ge\emph{red}& *& *& 1& \textbf1/3/5/7\\
+% 5-f & \emph{blue}\ge\emph{red}\ge\emph{green}& 1& *& 1& \textbf5/7\\
+% 5+f & \emph{red}\ge\emph{blue}\ge\emph{green}& 1& *& *& \textbf4/5/6/7\\
+% \end{tabular*}
+%
+% \medskip
+%
+% Here, $*$ denotes possible 0 or 1 values.
+% Bold $i$~values mark the main cases where all $*$~values of a row are zero.
+% The slight difference to equation (\ref{eq.rgb2hsb1}) in the last inequality is intentional and does no harm.
+%
+%
+% \paragraph{Conversion \Model{rgb} to \Model{gray}}
+% Source: \cite{plrm}, p. 474.
+% \begin{align}
+% \emph{gray} & := 0.3\cdot\emph{red} + 0.59\cdot\emph{green} + 0.11\cdot\emph{blue}
+% \end{align}
+%
+%
+% \paragraph{Conversion \Model{rgb} to \Model{RGB}}
+% As described in section \vref{sec.real2int}.
+% \begin{gather}
+% (\emph{Red},\emph{Green},\emph{Blue}) := \bigl(\RtoI L(\emph{red}), \RtoI L(\emph{green}), \RtoI L(\emph{blue})\bigr)
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{rgb} to \Model{HTML}}
+% As described in section \vref{sec.real2int}.
+% Convert to 6-digit hexadecimal afterwards.
+% Certainly, multiplication and summation can be replaced by simple text concatenation of 2-digit hexadecimals.
+% \begin{gather}
+% \emph{RRGGBB} := \bigl( 65536\cdot\RtoI L(\emph{red}) + 256\cdot \RtoI L(\emph{green}) + \RtoI L(\emph{blue}) \bigr)_{\emph{hex}}
+% \end{gather}
+%
+%
+% \paragraph{Complement of \Model{rgb} color}
+% We simply take the complementary vector:
+% \begin{gather}
+% (\emph{red}^*, \emph{green}^*, \emph{blue}^*) := E - (\emph{red}, \emph{green}, \emph{blue})
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{cmy} model}
+%
+% \paragraph{Conversion \Model{cmy} to \Model{rgb}}
+% This is simply a reversion of the $\Model{rgb}\to\Model{cmy}$ case, cf. section \vref{sec.rgb2cmy}.
+% \begin{gather}
+% (\emph{red}, \emph{green}, \emph{blue}) := E - (\emph{cyan}, \emph{magenta}, \emph{yellow})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{cmy} to \Model{cmyk}}\label{sec.cmy2cmyk}
+% This is probably the hardest of our conversion tasks: many sources emphasize that there does not exist any universal conversion algorithm for this case because of device-dependence.
+% The following algorithm is an extended version of the one given in \cite{plrm}, p. 476.
+% \begin{align}
+% k & := \min\{\emph{cyan},\emph{magenta},\emph{yellow}\}\\
+% \emph{cyan} & := \min\{1,\max\{0,\emph{cyan} - \emph{UCR}_c(k)\}\}\\
+% \emph{magenta} & := \min\{1,\max\{0,\emph{magenta} - \emph{UCR}_m(k)\}\}\\
+% \emph{yellow} & := \min\{1,\max\{0,\emph{yellow} - \emph{UCR}_y(k)\}\}\\
+% \emph{black} & := \emph{BG}(k)
+% \end{align}
+% Here, four additional functions are required:
+% \begin{align}
+% \emph{UCR}_c, \emph{UCR}_m, \emph{UCR}_y & : [0,1] \to [-1,1]\tag*{\em undercolor-removal}\\
+% \emph{BG} & : [0,1] \to [0,1]\tag*{\em black-generation}
+% \end{align}
+% These functions are device-dependent, see the remarks in \cite{plrm}.
+% Although there are some indications that they should be chosen as nonlinear functions, as long as we have no further knowledge about the target device we define them linearly:
+% \begin{align}
+% \emph{UCR}_c(k) &:= \beta_c\cdot k\\
+% \emph{UCR}_m(k) &:= \beta_m\cdot k\\
+% \emph{UCR}_y(k) &:= \beta_y\cdot k\\
+% \emph{BG}(k) &:= \beta_k\cdot k
+% \end{align}
+% \DescribeMacro\adjustUCRBG
+% where the parameters are given by |\def\adjustUCRBG{|\Meta{$\beta_c$},\Meta{$\beta_m$},\Meta{$\beta_y$},\Meta{$\beta_k$}|}| at any point in a document, defaulting to |{|$\adjustUCRBG$|}|.
+%
+%
+% \paragraph{Conversion \Model{cmy} to \Model{gray}}
+% This is derived from the conversion chain $\Model{cmy}\to\Model{rgb}\to\Model{gray}$.
+% \begin{align}
+% \emph{gray} & := 1 - (0.3\cdot\emph{cyan} + 0.59\cdot\emph{magenta} + 0.11\cdot\emph{yellow})
+% \end{align}
+%
+%
+% \paragraph{Complement of \Model{cmy} color}
+% We simply take the complementary vector:
+% \begin{gather}
+% (\emph{cyan}^*, \emph{magenta}^*, \emph{yellow}^*) := E - (\emph{cyan}, \emph{magenta}, \emph{yellow})
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{cmyk} model}
+%
+% \paragraph{Conversion \Model{cmyk} to \Model{cmy}}\label{sec.cmyk2cmy}
+% Based on \cite{plrm}, p. 477, in connection with $\Model{rgb}\to\Model{cmy}$ conversion.
+% \begin{align}
+% \emph{cyan} & := \min\{1,\emph{cyan} + \emph{black}\}\\
+% \emph{magenta} & := \min\{1,\emph{magenta} + \emph{black}\}\\
+% \emph{yellow} & := \min\{1,\emph{yellow} + \emph{black}\}
+% \end{align}
+%
+%
+% \paragraph{Conversion \Model{cmyk} to \Model{gray}}
+% Source: \cite{plrm}, p. 475.
+% \begin{align}
+% \emph{gray} & := 1 - \min\{1,0.3\cdot\emph{cyan} + 0.59\cdot\emph{magenta} + 0.11\cdot\emph{yellow} + black\}
+% \end{align}
+%
+%
+% \paragraph{Complement of \Model{cmyk} color}
+% The simple vector complement does not yield useful results.
+% Therefore, we first convert %$C=(\emph{cyan}, \emph{magenta}, \emph{yellow}, \emph{black})$
+% to the \Model{cmy} model, calculate the complement there, and convert back to \Model{cmyk}.
+%
+%
+% \subsubsection{The \Model{hsb} model}
+%
+% \paragraph{Conversion \Model{hsb} to \Model{rgb}}
+% \begin{gather}
+% (\emph{red},\emph{green},\emph{blue}) :=
+% \emph{brightness}\cdot( E - \emph{saturation}\cdot F)\\
+% \intertext{with}
+% i := \left\lfloor 6\cdot\emph{hue}\right\rfloor,\qquad f := 6\cdot\emph{hue} - i\\
+% \intertext{and}
+% F :=
+% \begin{cases}
+% (0,1-f,1) & \text{if $i=0$}\\
+% (f,0,1) & \text{if $i=1$}\\
+% (1,0,1-f) & \text{if $i=2$}\\
+% (1,f,0) & \text{if $i=3$}\\
+% (1-f,1,0) & \text{if $i=4$}\\
+% (0,1,f) & \text{if $i=5$}\\
+% (0,1,1) & \text{if $i=6$}
+% \end{cases}\label{eq.hsb2rgb2}
+% \end{gather}
+%
+% \medskip
+%
+% This is based on \cite{smith}, \emph{HSV to RGB Algorithm (Hexcone Model)}, which reads (slightly reformulated):
+% \begin{align}
+% m & := 1-\emph{saturation}\\
+% n & := 1-f\cdot\emph{saturation}\\
+% k & := 1-(1-f)\cdot\emph{saturation}\\
+% (\emph{red},\emph{green},\emph{blue}) & := \emph{brightness}\cdot
+% \begin{cases}
+% (1,k,m) & \text{if $i=0,6$}\\
+% (n,1,m) & \text{if $i=1$}\\
+% (m,1,k) & \text{if $i=2$}\\
+% (m,n,1) & \text{if $i=3$}\\
+% (k,m,1) & \text{if $i=4$}\\
+% (1,m,n) & \text{if $i=5$}
+% \end{cases}\label{eq.hsb2rgb1}
+% \end{align}
+% Note that the case $i=6$ (which results from $\emph{hue}=1$) is missing in Smith's algorithm.
+% Because of
+% \begin{align}
+% \lim_{f\to1} (0,1,f) = (0,1,1) = \lim_{f\to0} (0,1-f,1)
+% \end{align}
+% it is clear that there is only one way to define $F$ for $i=6$ in order to get a continuous function, as shown in equation (\ref{eq.hsb2rgb2}).
+% This has been transformed back to equation (\ref{eq.hsb2rgb1}).
+% A similar argument shows that $F$ indeed is a continuous function of \emph{hue} over the whole range $[0,1]$.
+%
+%
+% \paragraph{Conversion \Model{hsb} to \Model{Hsb}}
+% Only the first component has to be changed.
+% \begin{gather}
+% (\emph{hue\Circ}, \emph{saturation}, \emph{brightness}) := (H\cdot\emph{hue}, \emph{saturation}, \emph{brightness})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{hsb} to \Model{HSB}}
+% As described in section \vref{sec.real2int}.
+% \begin{gather}
+% (\emph{Hue}, \emph{Saturation}, \emph{Brightness}) := \bigl(\RtoI M(\emph{hue}), \RtoI M(\emph{saturation}), \RtoI M(\emph{brightness})\bigr)
+% \end{gather}
+%
+%
+% \paragraph{Complement of \Model{hsb} color}
+% We have not found a formula in the literature, therefore we give a short proof afterwards.
+% \begin{lemma}
+% The \textup{\Model{hsb}}-complement can be calculated by the following formulas:\em
+% \begin{align}
+% \emph{hue}^* & :=
+% \begin{cases}
+% \emph{hue} + \frac12 & \text{if $\emph{hue}<\frac12$}\\[1ex]
+% \emph{hue} - \frac12 & \text{if $\emph{hue}\ge\frac12$}\\
+% \end{cases}\\[1ex]
+% \emph{brightness}^* & := 1 - \emph{brightness}\cdot(1-\emph{saturation})\\[1ex]
+% \emph{saturation}^* & :=
+% \begin{cases}
+% 0 & \text{if $\emph{brightness}^*=0$}\\[1ex]
+% \displaystyle\frac{\emph{brightness}\cdot\emph{saturation}}{\emph{brightness}^*} & \text{if $\emph{brightness}^*\ne0$}
+% \end{cases}
+% \end{align}
+% \end{lemma}
+%
+% \begin{proof}
+% Starting with the original color $C=(h,s,b)$, we define color $C^*=(h^*,s^*,b^*)$ by the given formulas, convert both $C$ and $C^*$ to the \Model{rgb} model and show that
+% \begin{gather}
+% C_{\Model{rgb}} + C_{\Model{rgb}}^* = b\cdot(E - s\cdot F) + b^*\cdot(E - s'\cdot F^*) \stackrel!= E,\label{eq.hsbcompl1}
+% \end{gather}
+% which means that $C_{\Model{rgb}}$ is the complement of $C_{\Model{rgb}}^*$.
+% First we note that the parameters of $C^*$ are in the legal range $[0,1]$.
+% This is obvious for $h^*,b^*$.
+% From
+% $b^* = 1-b\cdot(1-s) = 1 - b + b\cdot s$
+% we derive $b\cdot s = b^* - (1-b) \le b^*$, therefore $s^*\in[0,1]$, and
+% \begin{gather*}
+% b^* = 0 \Leftrightarrow s=0 \text{ and } b=1.
+% \end{gather*}
+% Thus, equation (\ref{eq.hsbcompl1}) holds in the case $b^*=0$.
+% Now we assume $b^*\ne0$, hence
+% \begin{align*}
+% C_{\Model{rgb}} + C_{\Model{rgb}}^*
+% &= b\cdot(E - s\cdot F) + b^*\cdot\Bigl(E - \frac{b\cdot s}{b^*}\cdot F^*\Bigr) \\
+% &= b\cdot E - b\cdot s\cdot F + b^*\cdot E - b\cdot s\cdot F^*\\[1ex]
+% &= E - b\cdot s\cdot(F+F^*-E)
+% \end{align*}
+% since $b^*=1-b+bs$.
+% Therefore, it is sufficient to show that
+% \begin{gather}
+% F+F^*=E.\label{eq.hsbcompl2}
+% \end{gather}
+% From
+% \begin{gather*}\textstyle
+% h<\frac12 \Rightarrow h^*=h+\frac12 \Rightarrow 6h^* = 6h+3 \Rightarrow i^*=i+3 \text{ and } f^*=f
+% \end{gather*}
+% it is easy to see from (\ref{eq.hsb2rgb2}) that equation (\ref{eq.hsbcompl2}) holds for the cases $i=0,1,2$.
+% Similarly,
+% \begin{gather*}\textstyle
+% h\ge\frac12 \Rightarrow h^*=h-\frac12 \Rightarrow 6h^* = 6h-3 \Rightarrow i^*=i-3 \text{ and } f^*=f
+% \end{gather*}
+% and again from (\ref{eq.hsb2rgb2}) we derive (\ref{eq.hsbcompl2}) for the cases $i=3,4,5$.
+% Finally, if $i=6$ then $f=0$ and $F+F^* = (0,1,1) + (1,0,0) = E$.
+% \end{proof}
+%
+%
+% \subsubsection{The \Model{Hsb} model}
+%
+% \paragraph{Conversion \Model{Hsb} to \Model{hsb}}
+% Only the first component has to be changed.
+% \begin{gather}
+% (\emph{hue}, \emph{saturation}, \emph{brightness}) := (\emph{hue\Circ}/H, \emph{saturation}, \emph{brightness})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{Hsb} to \Model{tHsb}}
+% Under the settings of (\ref{eq.tHsb1})--(\ref{eq.tHsb3}) we simply have to exchange the letters $x$ and $y$ in equation (\ref{eq.tHsb4}) to get the inverse transformation:
+% \begin{gather}
+% \displaystyle \emph{hue\Circ}\in\left[y_{\eta-1},y_\eta\right] \Rightarrow
+% \emph{hue\Circ} := x_{\eta-1} + \frac{x_\eta - x_{\eta-1}}{y_\eta - y_{\eta-1}}\cdot(\emph{hue\Circ} - y_{\eta-1})
+% \end{gather}
+% while \emph{saturation} and \emph{brightness} are left unchanged.
+%
+%
+% \subsubsection{The \Model{tHsb} model}
+%
+% \paragraph{Conversion \Model{tHsb} to \Model{Hsb}}\label{sec.tHsb2Hsb}
+% \DescribeMacro\rangeHsb
+% \DescribeMacro\rangetHsb
+% We assume that $\texttt{\string\rangeHsb}=H$ and |\rangetHsb| expands to
+% \begin{gather}
+% x_1,y_1;x_2,y_2;\dots;x_{h-1},y_{h-1}\label{eq.tHsb1}
+% \intertext{where}
+% x_0:=0<x_1<x_2<\dots<x_{h-1}<x_h:=H\label{eq.tHsb2}\\
+% y_0:=0<y_1<y_2<\dots<y_{h-1}<y_h:=H\label{eq.tHsb3}
+% \end{gather}
+% with an integer $h>0$.
+% Now the $x$ and $y$ values determine a piecewise linear transformation:
+% \begin{gather}
+% \displaystyle \emph{hue\Circ}\in\left[x_{\eta-1},x_\eta\right] \Rightarrow
+% \emph{hue\Circ} := y_{\eta-1} + \frac{y_\eta - y_{\eta-1}}{x_\eta - x_{\eta-1}}\cdot(\emph{hue\Circ} - x_{\eta-1})
+% \label{eq.tHsb4}
+% \end{gather}
+% while \emph{saturation} and \emph{brightness} are left unchanged.
+%
+%
+% \subsubsection{The \Model{gray} model}
+%
+% \paragraph{Conversion \Model{gray} to \Model{rgb}}
+% Source: \cite{plrm}, p. 474.
+% \begin{gather}
+% (\emph{red}, \emph{green}, \emph{blue}) := \emph{gray}\cdot E
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{gray} to \Model{cmy}}
+% This is derived from the conversion chain $\Model{gray}\to\Model{rgb}\to\Model{cmy}$.
+% \begin{gather}
+% (\emph{cyan}, \emph{magenta}, \emph{yellow}) := (1-\emph{gray})\cdot E
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{gray} to \Model{cmyk}}
+% Source: \cite{plrm}, p. 475.
+% \begin{gather}
+% (\emph{cyan}, \emph{magenta}, \emph{yellow}, \emph{black}) := (0,0,0,1-\emph{gray})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{gray} to \Model{hsb}}
+% This is derived from the conversion chain $\Model{gray}\to\Model{rgb}\to\Model{hsb}$.
+% \begin{gather}
+% (\emph{hue}, \emph{saturation}, \emph{brightness}) := (0,0,\emph{gray})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{gray} to \Model{Hsb}/\Model{tHsb}}
+% This is derived from the conversion chain $\Model{gray}\to\Model{hsb}\to\Model{Hsb}$, followed by $\Model{Hsb}\to\Model{tHsb}$ if applicable.
+% \begin{gather}
+% (\emph{hue\Circ}, \emph{saturation}, \emph{brightness}) := (0,0,\emph{gray})
+% \end{gather}
+%
+%
+% \paragraph{Conversion \Model{gray} to \Model{Gray}}
+% As described in section \vref{sec.real2int}.
+% \begin{gather}
+% \emph{Gray} := \RtoI N(\emph{gray})
+% \end{gather}
+%
+%
+% \paragraph{Complement of \Model{gray} color}
+% This is similar to the \Model{rgb} case:
+% \begin{gather}
+% \emph{gray}^* := 1 - \emph{gray}
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{RGB} model}
+%
+% \paragraph{Conversion \Model{RGB} to \Model{rgb}}
+% As described in section \vref{sec.int2real}.
+% \begin{gather}
+% (\emph{red}, \emph{green}, \emph{blue}) := \bigl(\ItoR L(\emph{Red}), \ItoR L(\emph{Green}), \ItoR L(\emph{Blue})\bigr)
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{HTML} model}
+%
+% \paragraph{Conversion \Model{HTML} to \Model{rgb}}
+% As described in section \vref{sec.int2real}: starting with \emph{RRGGBB} set
+% \begin{gather}
+% (\emph{red}, \emph{green}, \emph{blue}) := \bigl(\ItoR{255}(\emph{RR}_{\emph{dec}}), \ItoR{255}(\emph{GG}_{\emph{dec}}), \ItoR{255}(\emph{BB}_{\emph{dec}})\bigr)
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{HSB} model}
+%
+% \paragraph{Conversion \Model{HSB} to \Model{hsb}}
+% As described in section \vref{sec.int2real}.
+% \begin{gather}
+% (\emph{hue}, \emph{saturation}, \emph{brightness}) := \bigl(\ItoR M(\emph{Hue}), \ItoR M(\emph{Saturation}), \ItoR M(\emph{Brightness})\bigr)
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{Gray} model}
+%
+% \paragraph{Conversion \Model{Gray} to \Model{gray}}
+% As described in section \vref{sec.int2real}.
+% \begin{gather}
+% \emph{gray} := \ItoR N(\emph{Gray})
+% \end{gather}
+%
+%
+% \subsubsection{The \Model{wave} model}
+%
+% \paragraph{Conversion \Model{wave} to \Model{rgb}}
+% Source: based on \People{Dan}{Bruton}'s algorithm \cite{Bruton}.
+% Let $\lambda$ be a visible wavelength, given in nanometers (nm), i.e., $\lambda\in\left[380,780\right]$.
+% We assume further that $\gamma>0$ is a fixed number ($\gamma=0.8$ in \cite{Bruton}).
+% First set
+% \begin{align}
+% (r,g,b) & :=
+% \begin{cases}
+% \displaystyle \Bigl(\frac{440-\lambda}{440-380},0,1\Bigr) & \text{if $\lambda\in[380,440[$}\\[1.75ex]
+% \displaystyle \Bigl(0,\frac{\lambda-440}{490-440},1\Bigr) & \text{if $\lambda\in[440,490[$}\\[1.75ex]
+% \displaystyle \Bigl(0,1,\frac{510-\lambda}{510-490}\Bigr) & \text{if $\lambda\in[490,510[$}\\[1.75ex]
+% \displaystyle \Bigl(\frac{\lambda-510}{580-510},1,0\Bigr) & \text{if $\lambda\in[510,580[$}\\[1.75ex]
+% \displaystyle \Bigl(1,\frac{645-\lambda}{645-580},0\Bigr) & \text{if $\lambda\in[580,645[$}\\[2.5ex]
+% \displaystyle (1,0,0) & \text{if $\lambda\in[645,780]$}\\
+% \end{cases}\label{eq.gamma2rgb1}\\
+% \intertext{then, in order to let the intensity fall off near the vision limits,}
+% f & :=
+% \begin{cases}
+% \displaystyle 0.3 + 0.7\cdot\frac{\lambda-380}{420-380} & \text{if $\lambda\in\left[380,420\right[$}\\[1.25ex]
+% \displaystyle 1 & \text{if $\lambda\in[420,700]$}\\[1ex]
+% \displaystyle 0.3 + 0.7\cdot\frac{780-\lambda}{780-700} & \text{if $\lambda\in\left]700,780\right]$}\\
+% \end{cases}\label{eq.gamma2rgb2}\\
+% \intertext{and finally}
+% (\emph{red},\emph{green},\emph{blue}) & := \bigl((f\cdot r)^\gamma, (f\cdot g)^\gamma, (f\cdot b)^\gamma\bigr)
+% \end{align}
+% The intermediate colors $(r,g,b)$ at the interval borders of equation (\ref{eq.gamma2rgb1}) are well-known:
+% for $\lambda=380,440,490,510,580,645$ we get \Color{magenta}, \Color{blue}, \Color{cyan}, \Color{green}, \Color{yellow}, \Color{red}, respectively.
+% These turn out to be represented in the \Model{hsb} model by $\emph{hue}=\frac56,\frac46,\frac36,\frac26,\frac16,\frac06$, whereas $\emph{saturation}=\emph{brightness}=1$ throughout the 6~colors.
+% Furthermore, these \Model{hsb} representations are independent of the actual $\gamma$ value.
+% Staying within this model framework, we observe that the intensity fall off near the vision limits --- as represented by equation (\ref{eq.gamma2rgb2}) --- translates into decreasing \emph{brightness} parameters towards the margins.
+% A simple calculation shows that the edges $\lambda=380,780$ of the algorithm yield the colors |magenta!|$0.3^\gamma$|!black|, |red!|$0.3^\gamma$|!black|, respectively.
+% We see no reason why we should not extend these edges in a similar fashion to end-up with true \Color{black} on either side.
+% Now we are prepared to translate everything into another, more natural algorithm.
+%
+%
+% \paragraph{Conversion \Model{wave} to \Model{hsb}}
+% Let $\lambda>0$ be a wavelength, given in nanometers (nm), and let
+% \begin{gather}
+% \varrho : \bbbR \to \left[0,1\right],\ x \mapsto \bigl( \min\{ 1, \max\{ 0,x\} \} )^\gamma
+% \end{gather}
+% with a fixed correction number $\gamma>0$.
+% Then
+% \begin{align}
+% \emph{hue} & := \displaystyle \frac16\cdot
+% \begin{cases}
+% \displaystyle 4 + \varrho\Bigl(\frac{\lambda-440}{380-440}\Bigr) & \text{if $\lambda<440$}\\[1.75ex]
+% \displaystyle 4 - \varrho\Bigl(\frac{\lambda-440}{490-440}\Bigr) & \text{if $\lambda\in[440,490[$}\\[1.75ex]
+% \displaystyle 2 + \varrho\Bigl(\frac{\lambda-510}{490-510}\Bigr) & \text{if $\lambda\in[490,510[$}\\[1.75ex]
+% \displaystyle 2 - \varrho\Bigl(\frac{\lambda-510}{580-510}\Bigr) & \text{if $\lambda\in[510,580[$}\\[1.75ex]
+% \displaystyle 0 + \varrho\Bigl(\frac{\lambda-645}{580-645}\Bigr) & \text{if $\lambda\in[580,645[$}\\[2.5ex]
+% \displaystyle 0 & \text{if $\lambda\ge645$}\\
+% \end{cases}\label{eq.gamma2hsb1}\\[1ex]
+% \emph{saturation} & := 1\\[1ex]
+% \emph{brightness} & :=
+% \begin{cases}
+% \displaystyle \varrho\Bigl(0.3 + 0.7\cdot\frac{\lambda-380}{420-380}\Bigr) & \text{if $\lambda<420$}\\[1.5ex]
+% \displaystyle 1 & \text{if $\lambda\in[420,700]$}\\[1ex]
+% \displaystyle \varrho\Bigl(0.3 + 0.7\cdot\frac{\lambda-780}{700-780}\Bigr) & \text{if $\lambda>700$}\\
+% \end{cases}\label{eq.gamma2hsb2}
+% \end{align}
+% For the sake of completeness we note that, independent of $\gamma$,
+% \begin{gather*}
+% (\emph{hue},\emph{saturation},\emph{brightness}) =
+% \begin{cases}
+% \bigl(\frac56,1,0\bigr) & \text{if $\lambda\le 380 - \frac{3\cdot(420-380)}7 = 362.857\dots$}\\[1.5ex]
+% \bigl(0,1,0\bigr) & \text{if $\lambda\ge 780 + \frac{3\cdot(780-700)}7 = 814.285\dots$}\\
+% \end{cases}\label{eq.gamma2hsb3}
+% \end{gather*}
+% What is the best (or, at least, a good) value for $\gamma$?
+% In the original algorithm \cite{Bruton}, $\gamma=0.8$ is chosen.
+% However, we could not detect significant visible difference between the cases $\gamma=0.8$ and $\gamma=1$.
+% Thus, for the time being, \XC's implementation uses the latter value which implies a pure linear approach.
+% In the \Package{pstricks} examples file \href{xcolor2.pdf}{\File{xcolor2.tex}}, there is a demonstration of different $\gamma$ values.
+%
+% \clearpage
+%
+%
+%
+% \begin{adjustwidth}{-2.5cm}{}
+% \begingroup\raggedright
+% \begin{thebibliography}{00}
+% \addcontentsline{toc}{section}{References}
+%
+% \bibitem{plrm}%
+% {Adobe Systems Incorporated: ``PostScript Language Reference Manual''. Addison-Wesley, third edition, 1999.
+% \URL{http://www.adobe.com/products/postscript/pdfs/PLRM.pdf}}
+%
+% \bibitem{fbox}%
+% {\People{Donald}{Arseneau}: ``Patch so \cmd\fbox{} draws frame on top of text''. \LaTeX{} bug report, latex/3655, 2004/03/18.
+% \URL{http://www.latex-project.org/cgi-bin/ltxbugs2html?pr=latex/3655}}
+%
+% \bibitem{url}%
+% {\People{Donald}{Arseneau}: \Package{url} package, ``2005/06/27 ver 3.2 Verb mode for urls, etc.''.
+% \CTAN{macros/latex/contrib/misc/}{url.sty}}
+%
+% \bibitem{Bruton}%
+% {\People{Dan}{Bruton}: ``Approximate RGB values for Visible Wavelengths'', 1996.
+% \URL{http://www.physics.sfasu.edu/astro/color/spectra.html}}
+%
+% \bibitem{dpc}%
+% {\People{David P.}{Carlisle}: ``Packages in the `graphics' bundle'', 1999.
+% \CTAN{macros/latex/required/graphics/}{grfguide.*}}
+%
+% \bibitem{color}%
+% {\People{David P.}{Carlisle}: \LCP, ``1999/02/16 v1.0i Standard \LaTeX{} Color''.
+% \CTAN{macros/latex/required/graphics/}{color.*}}
+%
+% \bibitem{colortbl}%
+% {\People{David P.}{Carlisle}: \Package{colortbl} package, ``2001/02/13 v0.1j Color table columns''.
+% \CTAN{macros/latex/contrib/carlisle/}{colortbl.*}}
+%
+% \bibitem{pstcol}%
+% {\People{David P.}{Carlisle}: \Package{pstcol} package, ``2001/06/20 v1.1 PSTricks color compatibility''.
+% \CTAN{macros/latex/required/graphics/}{pstcol.*}}
+%
+% \bibitem{chroma}%
+% {\People{Uwe}{Kern}: ``Chroma: a reference book of \LaTeX{} colors''.
+% \CTAN{info/colour/chroma/}{} and
+% \URL{http://www.ukern.de/tex/chroma.html}}
+%
+% \bibitem{xcolor}%
+% {\People{Uwe}{Kern}: \Package{xcolor} package, ``\LaTeX{} color extensions''.
+% \CTAN{macros/latex/contrib/xcolor/}{} and
+% \URL{http://www.ukern.de/tex/xcolor.html}}
+%
+% \bibitem{mik}%
+% {MiK\TeX{} Project:
+% \URL{http://www.miktex.org/}}
+%
+% \bibitem{colorinfo}%
+% {\People{Rolf}{Niepraschk}: \Package{colorinfo} package, ``2003/05/04 v0.3c Info from defined colors''.
+% \CTAN{macros/latex/contrib/colorinfo/}{}}
+%
+% \bibitem{pdfcolmk}%
+% {\People{Heiko}{Oberdiek}: \Package{pdfcolmk} package, ``2005/07/09 v0.7''.
+% \CTAN{macros/latex/contrib/oberdiek/pdfcolmk.sty}{}}
+%
+% \bibitem{hyperref}%
+% {\People{Sebastian}{Rahtz}: \Package{hyperref} package, ``2003/11/30 v6.74m Hypertext links for \LaTeX''.
+% \CTAN{macros/latex/contrib/hyperref/}{}}
+%
+% \bibitem{smith}%
+% {\People{Alvy Ray}{Smith}: ``Color Gamut Transform Pairs''. \emph{Computer Graphics} (ACM SIGGRAPH), Volume 12, Number 3, August 1978.
+% \URL{http://alvyray.com/Papers/PapersCG.htm}}
+%
+% \bibitem{svg}%
+% {World Wide Web Consortium: ``Scalable Vector Graphics (\Index{SVG}) 1.1 Specification --- Basic Data Types and Interfaces''.
+% \URL{http://www.w3.org/TR/SVG11/types.html\#ColorKeywords}}
+%
+% \end{thebibliography}
+% \endgroup
+% \clearpage
+%
+% \columnsep2.25em
+% \begin{multicols}{2}[\section*{Appendix}%
+% \addcontentsline{toc}{section}{Appendix}]
+%
+% \subsection*{Acknowledgement}
+% \addcontentsline{toc}{subsection}{Acknowledgement}
+% This package is based on and contains code copied from \cite{color} (Copyright (C) 1994--1999 \People{David P.}{Carlisle}), which is part of the Standard \LaTeX{} `Graphics Bundle'.
+% Although many commands and features have been added and most of the original \LC{} commands have been rewritten or adapted within \XC, the latter package would not exist without \LC.
+% Thus, the author is grateful to \People{David P.}{Carlisle} for having created \LC{} and its accompanying files.
+%
+% \subsection*{Trademarks}
+% \addcontentsline{toc}{subsection}{Trademarks}
+% Trademarks appear throughout this documentation without any trademark symbol; they are the property of their respective trademark owner.
+% There is no intention of infringement; the usage is to the benefit of the trademark owner.
+%
+% \raggedright
+% \leftmargini1em
+% \leftmarginii1em
+% \leftmarginiii1em
+%
+% \subsection*{Known Issues}
+% \addcontentsline{toc}{subsection}{Known Issues}
+% \begin{itemize}
+% \item |\rowcolors[\hline]...| does not work with \Package{longtable}.
+% \end{itemize}
+%
+% \subsection*{History}
+% \addcontentsline{toc}{subsection}{History}
+%
+% \subsubsection*{2005/12/21 v2.09}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item |\definecolor| and |\color| now accept space-separated color specifications, e.g., |\color| |[rgb]{1 .5 0}|;
+% \item experimental \Option{xcdraw} option extended to \Option{pdftex} and \Option{dvipdfm} drivers.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item test file \File{xcolor2.tex} made compatible with recent changes in \Package{pstricks};
+% \item test file \File{xcolor3.tex} extended;
+% \item driver test file \File{xcolor4.tex} extended to demonstrate the different frame drawing approaches;
+% \item more efficient implementation of driver-specific code.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/11/25 v2.08}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item more flexibility for |\fcolorbox| arguments, e.g., |\fcolorbox| |[gray]{0.5}[wave]{580}{test}|;
+% \item |\boxframe| returns a frame of given dimensions;
+% \item new implementation of |\f(rame)box| and |\fcolorbox| as an extension of bug report latex/3655 to reduce pixel positioning errors in output devices;
+% \item \Option{kernelfbox} option for those who prefer the previous |\f(rame)box| approach;
+% \item experimental \Option{xcdraw} option uses \Index{PostScript} commands to draw frames and color boxes in case of \Option{dvips}.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item insufficient expression type detection within |\colorlet|;
+% \item wrong calculation in the unit interval reduction for negative integers (affecting color series and extended color expressions).
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/11/12 v2.07}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item color model \Model{Hsb} allows to specify \emph{hue} in degrees;
+% \item color model \Model{tHsb} (\pModel{tuned} \Model{Hsb}) for user-defined \emph{hue} configuration on color wheels;
+% \item easy generation of color harmonies derived from \Model{Hsb} or \Model{tHsb} color wheels, e.g., |\color{red>wheel,1,12}| yields an `analogous' color to \Color{red} on a 12-spoke wheel;
+% \item additional 317 predefined color names according to \File{rgb.txt}, which is part of \Index{Unix}/\Index{X11} distributions;
+% \item \Option{svgnames} option extended by~4~colors taken from \File{rgb.txt};
+% \item enhanced syntax for immediate conversion, e.g., |\definecolor| |{foo}{rgb:gray}{0.3}| or |\color| |[rgb:wave]{478}|;
+% \item |\@ifundefinedcolor| and |\@ifundefinedmodel| commands;
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item enhanced documentation;
+% \item several changes to internal macros.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item wrong calculation of color series components in some cases of negative step parameters.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/10/15 v2.06}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item color model \Model{wave} for (approximate) visualisation of light wavelengths, still somewhat experimental;
+% \item pseudo-model \nModel{ps} for colors defined by literal \Index{PostScript} code in conjunction with \Package{pstricks} and \Option{dvips}; an illustrative example for a $\gamma$-correction approach is given in \href{xcolor2.pdf}{\File{xcolor2.tex}};
+% \item |\substitutecolormodel| command for replacement of missing or faulty driver-specific color models;
+% \item improved detection and handling of driver-specific color models;
+% \item \Option{dvipdfmx} and \Option{xetex} options to support these drivers;
+% \item generic driver test file \File{xcolor4.tex}.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item |\XC at strip@comma| doesn't generate a trailing space anymore, which improves also the output of the |testcolors| environment.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/09/30 v2.05}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item |testcolors| environment helps to test colors in different models, showing both the visual result and the model-specific parameters;
+% \item |\extractcolorspecs| puts model/color specification into two separate commands, as opposed to |\extractcolorspec|;
+% \item color names \Color{pink} and \Color{olive} added to the set of predefined colors.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item |\definecolor{foo}{named}{bar}| did not work in v2.04.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/09/23 v2.04}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item preparation for usage of additional -- driver-provided -- color models;
+% \item \Package{pstricks} users may now specify explicit color parameters within |\psset| and related commands, e.g., |\psset{linecolor=[rgb]{1,0,0}}|; an illustrative example is given in \href{xcolor2.pdf}{\File{xcolor2.tex}}.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item color model names sanitized (i.e., turned to catcode~12) throughout the package;
+% \item |\@namelet| command deprecated because of name clash with \Package{memoir} --- please use |\XC at let@cc| instead (more |\XC at let@..| commands are available as well);
+% \item simplified color conversion code by using the new |\XC at ifxcase| command;
+% \item some minor changes to internal macros.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/06/06 v2.03}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item \Option{fixpdftex} option loads \Package{pdfcolmk} package in order to improve pdf\TeX's color behaviour during page breaks.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item some minor changes to internal macros.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item due to an incorrect |\if| statement within |\XC at info|, |\colorlet| caused trouble whenever its second argument started with two identical letters, e.g., |\colorlet{rab}{oof}|;
+% \item argument processing of |\XC at getcolor| caused incompatibility with \Package{msc} package;
+% \item \Option{prologue} option caused incompatibility with \Package{preview} package.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/03/24 v2.02}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item |\aftergroupedef| command to reproduce |\aftergroupdef|'s behaviour prior to v2.01;
+% \item \XC's homepage \XCW{} now provides also a ready-to-run TDS-compliant archive containing all required files.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item |\rowcolors| and friends are solely enabled by the \Option{table} option;
+% \item |\@ifxempty| changed back to more robust variant of v2.00.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item |\psset{linecolor=\ifcase\foo| |red\or green\or blue\fi}| did not work with \Package{pstricks} (error introduced in v2.01).
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2005/03/15 v2.01}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item \Option{prologue} option for comprehensive `named' color support in conjunction with \Option{dvips}: on-the-fly generation of \Index{PostScript} prologue files with all color definitions, ready for \Program{dvips} inclusion and/or post-processing with device-specific parameters (e.g., spot colors);
+% \item \Program{dvips} prologue file \File{xcolor.pro} to support additional `named' colors;
+% \item |\colorlet| may now also be used to create named colors from arbitrary color expressions;
+% \item enhanced color definition syntax to allow for target-model specific color parameters, e.g., |\definecolor| |{red}{rgb/cmyk}{1,0,0/0,1,1,0}|, facilitating the usage of tailor-made colors both for displays and printers;
+% \item `deferred definition' of colors: |\preparecolor| and |\definecolors| enable decoupling of color specification and control sequence generation, especially useful (= memory saving) for large lists of colors, of which only a few names are actually used;
+% \item \Option{dvipsnames*} and \Option{svgnames*} options to support deferred definition.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item higher accuracy: most complement calculations are now exact for all 5-digit decimals;
+% \item |\rangeRGB| and similar variables may now be changed at any point in a document;
+% \item |\aftergroupdef| now performs only a first-level expansion of its code argument;
+% \item |\XCfileversion| and similar internal constants removed from \File{.sty} and \File{.def} files;
+% \item improved memory management (reduced generation of `multiletter control sequences' by |\@ifundefined| tests);
+% \item several internal macros improved and/or renamed.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item |\XC at getcolor| could cause unwanted spaces when |\psset| was used inside |pspicture| environments (\Package{pstricks});
+% \item arithmetic overflow could happen when too many decimal digits were used within color parameters, e.g., as a result of \Package{fp} calculations.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2004/07/04 v2.00}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item extended functionality for color expressions: mix colors like a painter;
+% \item support for color blending: specify color mix expressions that are being blended with every displayed color;
+% \item |\xglobal| command for selective control of globality for color definitions, blends, and masks;
+% \item multiple step operations (e.g., |\color{foo!!+++}|) and access to individual members (e.g., |\color{foo!![7]}|) in color series;
+% \item |\providecolor| command to define only non-existent colors;
+% \item |\definecolorset| and |\providecolorset| commands to facilitate the construction of color sets with common underlying color model;
+% \item additional 147 predefined color names according to \Index{SVG}~1.1 specification;
+% \item \Key{xpdfborder} key for setting the width of hyperlink borders in a more driver-independent way if \Program{dvips} is used.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item \LCP{} now completely integrated within \XC;
+% \item \Option{override}, \Option{usenames}, \Option{nodvipsnames} options and |\xdefinecolor| command no longer needed;
+% \item \Option{dvips} and \Option{dvipsnames} options now independent of each other;
+% \item |\tracingcolors|'s behaviour changed to make it more versatile and reduce log file size in standard cases;
+% \item |\rdivide|'s syntax made more flexible (divide by numbers and/or dimensions);
+% \item code restructured, some internal commands renamed;
+% \item documentation rearranged and enhanced.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item |\definecolor{foo}{named}{bar}| did not work (error introduced in v1.11);
+% \item more robust behaviour of conditionals within \Package{pstricks} key-values.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2004/05/09 v1.11}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item switch |\ifglobalcolors| to control whether color definitions are global or local;
+% \item option \Option{hyperref} provides color expression support for the border colors of hyperlinks, e.g., |\hypersetup| |{xurlbordercolor=red!50!yellow}|;
+% \item internal hooks |\XC at bcolor|, |\XC at mcolor|, and |\XC at ecolor| for additional code that has to be executed immediately before/after the current color is being displayed.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item |\XC at logcolor| renamed to |\XC at display|, which is now the core color display command;
+% \item improved interface to \Package{pstricks}.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2004/03/27 v1.10}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item support for \nModel{named} model;
+% \item support for \Program{dvips} colors (may now be used within color expressions);
+% \item internal representation of `ordinary' and `named' colors merged into unified data structure;
+% \item allow multiple `-' signs at the beginning of color expressions.
+% \end{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item commands like |\color[named]{foo}| caused errors when color masking or target model conversion were active;
+% \item incompatibility with \Package{soul} package: commands |\hl|, |\ul|, etc. could yield unexpected results.
+% \end{itemize}
+% \item Documentation:
+% \begin{itemize}
+% \item added formula for general color expressions;
+% \item enhanced text and index;
+% \item removed dependence of index generation on local configuration file.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2004/02/16 v1.09}
+% \begin{itemize}
+% \item New features:
+% \begin{itemize}
+% \item color model \Model{HTML}, a 24-bit hexadecimal \Model{RGB} variant; allows to specify colors like |\color[HTML]{AFFE90}|;
+% \item color names \Color{orange}, \Color{violet}, \Color{purple}, and \Color{brown} added to the set of predefined colors.
+% \end{itemize}
+% \item New \XC{} homepage: \XCW
+% \item Bugfix: |\xdefinecolor| sometimes did not normalise its parameters.
+% \item Changes:
+% \begin{itemize}
+% \item slight improvements of the documentation;
+% \item example file |xcolor1.tex| reorganised and abridged.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2004/02/04 v1.08}
+% \begin{itemize}
+% \item New commands:
+% \begin{itemize}
+% \item |\selectcolormodel| to change the target model within a document;
+% \item |\adjustUCRBG| to fine-tune undercolor-removal and black-generation during conversion to \Model{cmyk}.
+% \end{itemize}
+% \item Bugfix: color expressions did not work correctly in connection with active `!' character, e.g., in case of |\usepackage[frenchb]babel}|.
+% \item Code re-organisation:
+% \begin{itemize}
+% \item |\XC at xdefinecolor| merged into |\xdefinecolor|, making the first command obsolete;
+% \item several internal commands improved/streamlined.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2004/01/20 v1.07}
+% \begin{itemize}
+% \item New feature: support for color masking and color separation.
+% \item New commands:
+% \begin{itemize}
+% \item |\rmultiply| to multiply a dimension register by a real number;
+% \item |\xcolorcmd| to pass commands that are to be executed at the end of the package.
+% \end{itemize}
+% \item Changes:
+% \begin{itemize}
+% \item more consistent color handling: extended colors now always take precedence over standard colors;
+% \item several commands improved by using code from the \LaTeX{} kernel.
+% \end{itemize}
+% \item Documentation: some minor changes.
+% \item Example files: additional \Package{pstricks} examples (file \href{xcolor2.pdf}{\File{xcolor2.tex}}).
+% \end{itemize}
+%
+% \subsubsection*{2003/12/15 v1.06}
+% \begin{itemize}
+% \item New feature: extended color expressions, allowing for cascaded mix operations, e.g., |\color{red!30!green!40!blue}|.
+% \item Documentation: new section on color expressions.
+% \item Bugfix:~color series stepping did not work correctly within non-displaying commands like |\extractcolorspec{foo!!+}| (this bug was introduced in v1.05).
+% \item Renamed~commands:~|\ukfileversion| and similar internal constants renamed to |\XCfileversion| etc.
+% \item Removed~commands:~|\ifXCpst| and |\ifXCtable| made obsolete by a simple trick.
+% \end{itemize}
+%
+% \subsubsection*{2003/11/21 v1.05}
+% \begin{itemize}
+% \item Bugfixes:
+% \begin{itemize}
+% \item package option \Option{hideerrors} should now work as expected;
+% \item usage of `.' in the first color expression in a document caused an error due to incorrect initialisation.
+% \end{itemize}
+% \item Code re-organisation: |\extractcolorspec| now uses |\XC at splitcolor|, making |\XC at extract| obsolete.
+% \end{itemize}
+%
+% \subsubsection*{2003/11/09 v1.04}
+% \begin{itemize}
+% \item New feature: easy access to current color within color expressions.
+% \item New option: \Option{override} to replace |\definecolor| by |\xdefinecolor|.
+% \item New command: |\tracingcolors| for logging color-specific information.
+% \end{itemize}
+%
+% \subsubsection*{2003/09/21 v1.03}
+% \begin{itemize}
+% \item Change: bypass strange behaviour of some drivers.
+% \item New feature: driver-sharing with \Package{hyperref}.
+% \end{itemize}
+%
+% \subsubsection*{2003/09/19 v1.02}
+% \begin{itemize}
+% \item Change: |\extractcolorspec| and |\colorlet| now also accept color series as arguments.
+% \end{itemize}
+%
+% \subsubsection*{2003/09/15 v1.01}
+% \begin{itemize}
+% \item New feature: |\definecolorseries| and friends.
+% \item Documentation: removed some \Package{doc}-related side-effects.
+% \item Code re-organisation: all calculation-related tools put to one place.
+% \item Bugfixes:
+% \begin{itemize}
+% \item |\@rdivide|: added |\relax| to fix problem with negative numerators;
+% \item |\rowc at l@rs|: replaced |\@ifempty| by |\@ifxempty|.
+% \end{itemize}
+% \end{itemize}
+%
+% \subsubsection*{2003/09/09 v1.00}
+% \begin{itemize}
+% \item First published release.
+% \end{itemize}
+%
+% \end{multicols}
+% \end{adjustwidth}
+%
+% \StopEventually{}
+% \clearpage
+%
+% \section{The Implementation}
+%
+% Some commands have been copied unchanged from \cite{color} (Copyright (C) 1994--1999 \People{David P.}{Carlisle}), which is part of the Standard \LaTeX{} `Graphics Bundle'.
+% Additionally, also some parts of the code documentation were copied from \cite{color}.
+%
+%
+%
+% \subsection{Preparation}
+%
+% \subsubsection{File identification}
+%
+% \renewcommand*\MacroFont{\footnotesize\ttfamily}
+% \renewcommand*\AltMacroFont{\footnotesize\ttfamily\slshape}
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \fbox{\MacroFont\string\ProvidesPackage\string{xcolor\string}[\XCfiledate\space\XCfileversion\space LaTeX color extensions (UK)]}
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}
+% \end{macrocode}
+%
+%
+% \subsubsection{Safety first}
+%
+% \begin{macro}{\XC at catcodes}
+% Save catcodes for later restore:
+% \begin{macrocode}
+\expandafter\edef\csname XC at catcodes\endcsname
+ {\catcode`\noexpand\@\the\catcode`\@\relax
+ \catcode`\noexpand\!\the\catcode`\!\relax
+ \catcode`\noexpand\:\the\catcode`\:\relax
+ \catcode`\noexpand\-\the\catcode`\-\relax
+ \catcode`\noexpand\+\the\catcode`\+\relax
+ \catcode`\noexpand\;\the\catcode`\;\relax
+ \catcode`\noexpand\/\the\catcode`\/\relax
+ \catcode`\noexpand\"\the\catcode`\"\relax
+ \catcode`\noexpand\>\the\catcode`\>\relax
+ \catcode`\noexpand\^^A\the\catcode`\^^A\relax}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\catcode`\@=11
+\catcode`\!=12
+\catcode`\:=12
+\catcode`\-=12
+\catcode`\+=12
+\catcode`\;=12
+\catcode`\/=12
+\catcode`\"=12
+\catcode`\>=12
+\catcode`\^^A=\catcode`\%
+% \end{macrocode}
+%
+%
+% \subsubsection{Constants}
+%
+% \begin{macro}{\XC@@}
+% Macro consisting of the macro |\\XC@@|, serves as a delimiter.
+% \begin{macrocode}
+\edef\XC@@{\expandafter\noexpand\csname\string\XC@@\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Switches}
+%
+% \begin{macro}{\ifcolors@}
+% This boolean can be tested by higher level macros that may want to alter their behaviour if a monochrome driver is being used.
+% \begin{macrocode}
+\newif\ifcolors@ \colors at true
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifcolorerrors@}
+% Controls whether missing color models/names result in error or warning messages.
+% \begin{macrocode}
+\newif\ifcolorerrors@
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifglobalcolors}
+% Controls whether |\definecolor| and |\colorlet| generate global or local color definitions.
+% \begin{macrocode}
+\newif\ifglobalcolors \globalcolorsfalse
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifdefinecolors}
+% Controls whether |\definecolorset| should \emph{define} or \emph{prepare} colors.
+% \begin{macrocode}
+\newif\ifdefinecolors \definecolorstrue
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifconvertcolorsD}
+% \begin{macro}{\ifconvertcolorsU}
+% Control whether conversion to target models take place at \emph{definition} time (|\ifconvertcolorsD|) and/or \emph{usage} (|\ifconvertcolorsU|).
+% \begin{macrocode}
+\newif\ifconvertcolorsD
+\newif\ifconvertcolorsU
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifblendcolors}
+% \begin{macro}{\ifmaskcolors}
+% Control whether colors are to be blended and/or masked at display time.
+% \begin{macrocode}
+\newif\ifblendcolors
+\newif\ifmaskcolors
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\ifXC@@fbox}
+% \begin{macro}{\ifXC@@tst}
+% Auxiliary test variables.
+% \begin{macrocode}
+\newif\ifXC@@fbox \XC@@fboxtrue
+\newif\ifXC@@tst
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Error handling}
+%
+% \begin{macro}{\c at lor@error}
+% Multi-purpose error handler (issues warnings instead of errors if the \Option{hideerrors} option is used).
+% This command is used already in the options section.
+% \begin{macrocode}
+\def\c at lor@error#1%
+ {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc
+ \else\PackageWarning{xcolor}{Undefined color #1}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Macro concatenation}
+%
+% \begin{macro}{\XC at append}
+% \marg{cmd}\marg{token list}\\
+% Append \Meta{token list} to the definition of \Meta{cmd}.
+% This command is used already in the options section.
+% \begin{macrocode}
+\def\XC at append#1#2%
+ {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else
+ \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Macro definition}
+%
+% The following |\XC at let@..| commands mimic \LaTeX3's coding syntax for the type of arguments used:
+% the `c' type is for brace delimited arguments which turn into a control sequence inside |\csname ... \endcsname|, whereas `N' is just a single token.
+% Thanks to \People{Morten}{H\o gholm} for pointing me to that.
+%
+% \begin{macro}{\XC at let@cc}
+% \marg{target character string}\marg{source character string}\\
+% Performs |\let\|\Meta{target character string}|=\|\Meta{source character string}.
+% \begin{macrocode}
+\def\XC at let@cc#1{\expandafter\XC at let@Nc\csname#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@namelet}
+% This is provided for compatibility reasons only, although deprecated because of a name clash with \Package{memoir}.
+% \begin{macrocode}
+\providecommand*\@namelet[1]{\expandafter\XC at let@Nc\csname#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at let@Nc}
+% \marg{target name}\marg{source character string}\\
+% Performs |\let|\Meta{target name}|=\|\Meta{source character string}.
+% Formerly called |\@@namelet|.
+% \begin{macrocode}
+\def\XC at let@Nc#1#2{\expandafter\let\expandafter#1\csname#2\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at let@cN}
+% \marg{target character string}\marg{source name}\\
+% Performs |\let\|\Meta{target character string}|=|\Meta{source name}.
+% \begin{macrocode}
+\def\XC at let@cN#1{\expandafter\let\csname#1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@namexdef}
+% \marg{character string}\marg{code}\\
+% Performs |\xdef\|\Meta{character string}|{|\Meta{code}|}|.
+% Similar to the \LaTeX{} internal |\@namedef| command.
+% \begin{macrocode}
+\def\@namexdef#1{\expandafter\xdef\csname #1\endcsname}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\aftergroupdef}
+% \begin{macro}{\aftergroupedef}
+% \marg{cmd}\marg{code}\\
+% Defines \meta{cmd} with the first-level or complete expansion of \meta{code} after the end of the current group.
+% \begin{macrocode}
+\def\aftergroupdef#1#2%
+ {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#2}}
+\def\aftergroupedef#1#2%
+ {\edef\@@tmp{\def\noexpand#1{#2}}\expandafter\endgroup\@@tmp}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XC at edef}
+% \begin{macro}{\XC at mdef}
+% \begin{macro}{\XC at sdef}
+% \marg{cmd}\marg{code}\\
+% Defines \Meta{cmd} as a safe expansion of \Meta{code}; needed for color expressions in certain languages.
+% The second form is a streamlined version that takes only care of active `|/|' and `|:|' characters that may occur in \Meta{model-list} and \Meta{spec-list} arguments.
+% The third form defines a sanitized expansion without considering active characters.
+% It is faster since it needs no grouping operation.
+% \begin{macrocode}
+\begingroup
+\catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13
+\catcode`\;=13 \catcode`\/=13 \catcode`\"=13 \catcode`\>=13
+\gdef\XC at edef#1#2%
+ {\begingroup
+ \ifnum\catcode`\!=13 \edef!{\string!}\fi
+ \ifnum\catcode`\:=13 \edef:{\string:}\fi
+ \ifnum\catcode`\-=13 \edef-{\string-}\fi
+ \ifnum\catcode`\+=13 \edef+{\string+}\fi
+ \ifnum\catcode`\;=13 \edef;{\string;}\fi
+ \ifnum\catcode`\"=13 \edef"{\string"}\fi
+ \ifnum\catcode`\>=13 \edef>{\string>}\fi
+ \edef#1{#2}\@onelevel at sanitize#1\aftergroupdef#1#1}
+\gdef\XC at mdef#1#2%
+ {\begingroup
+ \ifnum\catcode`\/=13 \edef/{\string/}\fi
+ \ifnum\catcode`\:=13 \edef:{\string:}\fi
+ \edef#1{#2}\@onelevel at sanitize#1\aftergroupdef#1#1}
+\endgroup
+\def\XC at sdef#1#2{\edef#1{#2}\@onelevel at sanitize#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Conditional processing}
+%
+% \begin{macro}{\@ifxempty}
+% \marg{arg}\marg{empty}\marg{non-empty}\\
+% Tests without expanding, whether the argument \Meta{arg} is empty and executes the following code accordingly; \Meta{arg} must not start with the token |\XC@@|.
+% Can also be used within |\edef|.
+% \begin{macrocode}
+\def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@}
+\def\@@ifxempty#1#2\XC@@
+ {\ifx#1\@@ifxempty
+ \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at ifxcase}
+% \marg{cmd}|{{|\Meta[1]{cmd}|}{|\Meta[1]{code}|}...{|\Meta[n]{cmd}|}{|\Meta[n]{code}|}}|\marg{default code}\\
+% Performs the test |\ifx|\Meta{cmd}\Meta[k]{cmd} for $k=1,\dots,n$.
+% If for some $k$ the test is `true', then the attached code \Meta[k]{code} is executed.
+% If all tests are `false', then \Meta{default code} is executed.
+% \begin{macrocode}
+\long\def\XC at ifxcase#1#2#3%
+ {\long\def\@@tmp##1##2%
+ {\ifx#1##1%
+ \toks@{##2}\expandafter\remove at to@nnil\else\expandafter\@@tmp\fi}%
+ \@@tmp#2#1{#3}\@nnil\the\toks@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at ifcase}
+% \marg{str}|{{|\Meta[1]{str-list}|}{|\Meta[1]{code}|}...{|\Meta[n]{str-list}|}{|\Meta[n]{code}|}}|\marg{default code}\\
+% Tests whether \Meta{str} appears in one of the comma-separated lists \Meta[k]{str-list}.
+% Performs the test |\if|\Meta{str}\Meta[kl]{str} for $k=1,\dots,n$ and $l=1,\ldots,m_n$.
+% If for some $k,l$ the test is `true', then the attached code \Meta[k]{code} is executed.
+% If all tests are `false', then \Meta{default code} is executed.
+% \begin{macrocode}
+\long\def\XC at ifcase#1#2#3%
+ {\long\def\@@tmp##1##2%
+ {\@expandtwoargs\in@{,#1,}{,##1,}\ifin@
+ \toks@{##2}\expandafter\remove at to@nnil\else\expandafter\@@tmp\fi}%
+ \@@tmp#2{#1}{#3}\@nnil\the\toks@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Package options}
+%
+% \begin{macro}{\XC@@opt}
+% Initialise the macro to hold the names of \emph{executed} \XCP{} options.
+% \begin{macrocode}
+\def\XC@@opt{,}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ifXCopt}
+% \marg{option}\marg{executed}\marg{not executed}\\
+% Performs action dependent on whether a specific \XCP{} option has been executed or not.
+% \begin{macrocode}
+\def\@ifXCopt#1%
+ {\@expandtwoargs\in@{,#1,}{\XC@@opt}%
+ \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC@@pkg}
+% Initialise the macro to hold the names of packages that are to be loaded by \XC.
+% \begin{macrocode}
+\let\XC@@pkg\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DeclareOption}
+% |\DeclareOption| has to be redefined in order to collect every executed package option in |\XC@@opt|.
+% This is being restored immediately before |\ProcessOptions|; thus, other packages use the original definition.
+% \begin{macrocode}
+\let\XC at declareoption\@declareoption
+\long\def\@declareoption#1#2%
+ {\XC at declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Color model selection}
+%
+% \begin{macro}{\selectcolormodel}
+% \marg{num model}\\
+% Determines the target model for color definitions with |\definecolor| and friends.
+% \begin{macrocode}
+\def\selectcolormodel#1%
+ {\@ifundefined{XC at mod@#1}%
+ {\c at lor@error{target model `#1'}}%
+ {\expandafter\ifx\csname XC at mod@#1\endcsname\XC at mod@natural
+ \def\XC at tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse
+ \else\expandafter\ifx\csname XC at mod@#1\endcsname\XC at mod@named
+ \c at lor@error{target model `#1'}
+ \else
+ \edef\XC at tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue
+ \fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at mod@Hsb}
+% \begin{macro}{\XC at mod@tHsb}
+% \begin{macro}{\XC at mod@ignore}
+% \begin{macro}{\XC at mod@named}
+% \begin{macro}{\XC at mod@ps}
+% \begin{macro}{\XC at mod@wave}
+% \begin{macro}{\XC at mod@natural}
+% \begin{macro}{\XC at mod@rgb}
+% \begin{macro}{\XC at mod@cmy}
+% \begin{macro}{\XC at mod@cmyk}
+% \begin{macro}{\XC at mod@hsb}
+% \begin{macro}{\XC at mod@gray}
+% \begin{macro}{\XC at mod@RGB}
+% \begin{macro}{\XC at mod@HTML}
+% \begin{macro}{\XC at mod@HSB}
+% \begin{macro}{\XC at mod@Gray}
+% Put model names into commands and define package options
+% \Option{natural}, \Option{rgb}, \Option{cmy}, \Option{cmyk}, \Option{hsb}, \Option{gray}, \Option{RGB}, \Option{HTML}, \Option{HSB}, \Option{Gray}.
+% \begin{macrocode}
+\@tfor\@@tmp:={Hsb}{tHsb}{ignore}{named}{ps}{wave}\do
+ {\expandafter\XC at sdef\csname XC at mod@\@@tmp\endcsname{\@@tmp}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do
+ {\expandafter\XC at sdef\csname XC at mod@\@@tmp\endcsname{\@@tmp}%
+ \edef\@@tmp
+ {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}%
+ \@@tmp}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% The \Option{monochrome} option should be used \emph{in addition} to one of the standard driver options.
+% \begin{macrocode}
+\DeclareOption{monochrome}
+ {\ExecuteOptions{hideerrors}%
+ \AtEndOfPackage
+ {\colors at false
+ \def\set at color{\c at lor@special\m at ne
+ {color push \current at color}\aftergroup\reset at color}%
+ \def\reset at color{\c at lor@special\m at ne{color pop}}%
+ \def\set at page@color{\c at lor@special\m at ne{background \current at color}}}}
+% \end{macrocode}
+%
+%
+% \subsubsection{Sets of predefined colors}
+%
+% \begin{macro}{\XC@@names}
+% Initialise the macro to hold the names of files that contain predefined colors; these files are loaded near to the end of this package.
+% \begin{macrocode}
+\let\XC@@names\relax
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\colornameprefix}
+% \begin{macro}{\XC@@nameprefix}
+% Initialise the macro to hold the string that is prefixed to driver-specific color names.
+% Save the value for later restore.
+% \begin{macrocode}
+\providecommand*\colornameprefix{XC@}
+\let\XC@@nameprefix\colornameprefix
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XC at declarenames}
+% \marg{base name}\marg{file name}\marg{initial commands}\\
+% Construct package options for color names.
+% \begin{macrocode}
+\def\XC at declarenames#1#2#3%
+ {\DeclareOption{#1}{\XC at append\XC@@names
+ {#3\definecolorstrue\input{#2.def}\definecolorstrue
+ \let\colornameprefix\XC@@nameprefix}}
+ \DeclareOption{#1*}{\XC at append\XC@@names
+ {#3\definecolorsfalse\input{#2.def}\definecolorstrue
+ \let\colornameprefix\XC@@nameprefix}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+\XC at declarenames{dvipsnames}{dvipsnam}{\let\colornameprefix\@empty}
+\XC at declarenames{svgnames}{svgnam}{}
+\XC at declarenames{x11names}{x11nam}{}
+\XC at declarenames{hksnames}%
+ {hks\ifcase\paperquality k\or n\or k\or z\else n\fi nam}{}
+\XC at declarenames{pmsnames}{pmsnam}{}
+\XC at declarenames{ralnames}{ralnam}{}
+% \end{macrocode}
+%
+%
+% \subsubsection{Support for other packages}
+%
+% Use this option to load \People{David P.}{Carlisle}'s \Package{colortbl} package:
+% \begin{macrocode}
+\DeclareOption{table}{\XC at append\XC@@pkg{\RequirePackage{colortbl}}}
+% \end{macrocode}
+%
+% Use this option to load \People{Heiko}{Oberdiek}'s \Package{pdfcolmk} package:
+% \begin{macrocode}
+\DeclareOption{fixpdftex}{\XC at append\XC@@pkg{\RequirePackage{pdfcolmk}}}
+% \end{macrocode}
+%
+% Use this option to load \People{David P.}{Carlisle}'s \Package{pstcol} package in order to make standard color definitions available within \Package{pstricks}.
+% Warning: this option is neither needed nor useful with recent \Package{pstricks} versions.
+% \begin{macrocode}
+\DeclareOption{pst}{\def\XC at pst{\RequirePackage{pstcol}}}
+% \end{macrocode}
+%
+% \begin{macro}{\KV at Hyp@xcitebordercolor}
+% \begin{macro}{\KV at Hyp@xfilebordercolor}
+% \begin{macro}{\KV at Hyp@xlinkbordercolor}
+% \begin{macro}{\KV at Hyp@xmenubordercolor}
+% \begin{macro}{\KV at Hyp@xpagebordercolor}
+% \begin{macro}{\KV at Hyp@xrunbordercolor}
+% \begin{macro}{\KV at Hyp@xurlbordercolor}
+% \begin{macro}{\KV at Hyp@xpdfborder}
+% Use this option to define the extended keys for the \Package{hyperref} package.
+% \begin{macrocode}
+\DeclareOption{hyperref}
+ {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do
+ {\expandafter\edef\csname KV at Hyp@x\@@tmp bordercolor\endcsname #1%
+ {\noexpand\XC at bordercolor{\@@tmp}{#1}}}%
+ \AtEndOfPackage
+ {\GetGinDriver\def\KV at Hyp@xpdfborder#1{\edef\@pdfborder{#1}}%
+ \@tfor\@@tmp:={dvips}\do
+ {\ifx\GinDriver\@@tmp
+ \def\KV at Hyp@xpdfborder#1%
+ {\edef\@pdfborder{#1}\expandafter\XC at pdfborder\@pdfborder\relax}%
+ \@break at tfor\fi}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Driver options}
+%
+% \begin{macro}{\Gin at driver}
+% Initialise the macro to hold the driver file name.
+% \begin{macrocode}
+\providecommand*\Gin at driver{}
+% \end{macrocode}
+%
+% Drivers that come with their individual definition files:
+% \begin{macrocode}
+\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}%
+ {emtex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}%
+ {tcidvi}{textures}{truetex}{vtex}{xetex}\do
+ {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}%
+ {\def\noexpand\Gin at driver{\@@tmp.def}}}%
+ \@@tmp}
+% \end{macrocode}
+%
+% Drivers that are derivatives of others:
+% \begin{macrocode}
+\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}}
+\DeclareOption{oztex}{\ExecuteOptions{dvips}}
+\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}}
+% \end{macrocode}
+%
+% Options used by (some) drivers.
+% \begin{macrocode}
+\DeclareOption{xcdraw}{\def\XC@@xcd@{1}}
+\DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}}
+\DeclareOption{prologue}{\def\XC@@xcp@{1}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Other options}
+%
+% Switch to original kernel |\fbox| command instead of new \XC{} version.
+% \begin{macrocode}
+\DeclareOption{kernelfbox}{\XC@@fboxfalse}
+% \end{macrocode}
+%
+% These options control how non-existing colors are treated:
+% \begin{macrocode}
+\DeclareOption{showerrors}{\colorerrors at true}
+\DeclareOption{hideerrors}{\colorerrors at false}
+% \end{macrocode}
+%
+% The \Option{debugshow} option turns on debugging info (perhaps).
+% \begin{macrocode}
+\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout}
+% \end{macrocode}
+%
+% All other options (including \LC's \Option{usenames}, \Option{nodvipsnames}) are being ignored.
+% \begin{macrocode}
+\DeclareOption*%
+ {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}}
+% \end{macrocode}
+%
+% Choose default options:
+% \begin{macrocode}
+\def\XC@@xcd@{-1}
+\def\XC@@xcp@{-1}
+\ExecuteOptions{natural,showerrors}
+% \end{macrocode}
+%
+%
+% \subsubsection{Processing options}
+%
+% A local configuration file may declare more options.
+% It should also make one driver option the default, by calling |\ExecuteOptions| with the appropriate option.
+% \begin{macrocode}
+\InputIfFileExists{color.cfg}{}{}
+% \end{macrocode}
+%
+% After the options are processed, load the appropriate driver file.
+% If a site wants a default driver (e.g., \Option{dvips}) it just needs to put |\ExecuteOptions{dvips}| in a \File{color.cfg} file.
+% \begin{macrocode}
+\let\@declareoption\XC at declareoption
+\ProcessOptions\relax
+% \end{macrocode}
+%
+% \begin{macro}{\XC@@drv}
+% Holds the name of the loaded driver (without \File{.def} extension).
+% \begin{macrocode}
+\edef\Gin at driver{\Gin at driver}
+\if!\Gin at driver!
+ \PackageError{xcolor}
+ {No driver specified}
+ {You should make a default driver option in a file \MessageBreak
+ color.cfg\MessageBreak
+ eg: \protect\ExecuteOptions{dvips}}
+\else
+ \PackageInfo{xcolor}{Driver file: \Gin at driver}
+ \@ifundefined{ver@\Gin at driver}{\input{\Gin at driver}}{}
+ \def\@@tmp#1.def{\def\XC@@drv{#1}}
+ \expandafter\@@tmp\Gin at driver
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC@@xcd@}
+% \begin{macro}{\XC@@xcp@}
+% These are used firstly by the \Option{xcdraw} and \Option{prologue} options, indicating whether either option is swithed on or off.
+% Secondly, the macros serve as test variables for |\ifcase| expressions, storing the intended type of output: $-1=\text{dvi}, 0=\text{ps}, 1=\text{pdf}$.
+% \begin{macrocode}
+\count@\XC@@xcd@ \advance\count@\XC@@xcp@\relax
+\ifnum\count@>-2
+% \end{macrocode}
+%
+% \begin{macro}{\XC at special}
+% \meta{code}\\
+% Driver-specific variant of |\special|.
+% Even if the intended type of output is the same (e.g., pdf), the |\special| commands may differ.
+% \begin{macrocode}
+ \XC at ifcase\XC@@drv
+ {{dvips,pctex32}%
+ {\def\@tempa{0}
+ \def\XC at special#1{\special{ps:XC!b}\special{"#1}\special{ps:XC!e}}}%
+ {pdftex}%
+ {\def\@tempa{1}
+ \def\XC at special#1{\pdfliteral{ q #1 Q }}}%
+ {dvipdfm}%
+ {\def\@tempa{1}
+ \def\XC at special#1{\special{pdf: content #1}}}%
+ }{\def\@tempa{-1}}
+% \end{macrocode}
+%
+% Since the options are independent of each other, we have to adjust the affiliated test variables independently as well.
+% \begin{macrocode}
+ \ifnum\XC@@xcd@>\m at ne\let\XC@@xcd@\@tempa\fi
+ \ifnum\XC@@xcp@>\m at ne\let\XC@@xcp@\@tempa\fi
+% \end{macrocode}
+% \end{macro}
+%
+% File variable for prologue output.
+% \begin{macrocode}
+ \ifnum\@tempa=0 \AtBeginDvi{\special{header=xcolor.pro}}\fi
+ \ifcase\XC@@xcp@
+ \AtBeginDvi{\special{header=\jobname.xcp}}
+ \newwrite\XC@@xcp\immediate\openout\XC@@xcp=\jobname.xcp
+ \immediate\write\XC@@xcp{\@percentchar!}
+ \immediate\write\XC@@xcp{TeXDict begin}
+ \AtEndDocument
+ {\immediate\write\XC@@xcp{end}\immediate\closeout\XC@@xcp}
+ \fi
+% \end{macrocode}
+%
+% End of driver-specific part.
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Required packages}
+%
+% The --- obsolete --- package \Package{pstcol} needs the real \LCP; all other packages receive a pretended \LC.
+% \begin{macrocode}
+\@nameuse{XC at pst}
+\@namedef{ver at color.sty}{1999/02/16}
+\XC@@pkg
+% \end{macrocode}
+%
+%
+% \subsection{Macro tools}
+%
+% \subsubsection{General tools}
+%
+% \begin{macro}{\@secondoffive}
+% \begin{macro}{\@thirdoffive}
+% Argument grabbing, similar to \LaTeX{} kernel.
+% \begin{macrocode}
+\long\def\@secondoffive#1#2#3#4#5{#2}
+\long\def\@thirdoffive#1#2#3#4#5{#3}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\xglobal}
+% \begin{macro}{\xglobal at test}
+% If |\foo| occurs in the token list |\xglobal@@|, then the command |\xglobal\foo| will set the switch |\xglobal at true| which can be used inside |\foo| to determine whether certain definitions are to be made explicitely global.
+% |\foo| is responsible for resetting |\xglobal at false| in order to avoid side effects.
+% To include |\foo| in the magic list, simply say |\XC at append\xglobal at list{\foo}|.
+% If |\foo| is not in the list, |\xglobal\foo| will behave like |\global\foo|, thus |\xglobal\let| will be like |\global\let| etc.
+% \begin{macrocode}
+\def\xglobal{\xglobal at stop\begingroup\futurelet\@@tok\xglobal at test}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\xglobal at test
+ {\expandafter\@tfor\expandafter\@@tmp
+ \expandafter:\expandafter=\xglobal at list\do
+ {\expandafter\ifx\@@tmp\@@tok
+ \aftergroup\let\aftergroup\xglobal@\@break at tfor\fi}%
+ \endgroup\global}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\xglobal at stop}
+% Resetting |\xglobal@|.
+% \begin{macrocode}
+\def\xglobal at stop{\let\xglobal@\@empty}
+\xglobal at stop
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xglobal at list}
+% Initial list of commands that may be prefixed by |\xglobal|.
+% \begin{macrocode}
+\def\xglobal at list
+ {\definecolor\definecolors\definecolorset\colorlet\providecolor
+ \providecolors\providecolorset\blendcolors\maskcolors
+ \substitutecolormodel}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xglobalize@}
+% Globalisation command: makes a local definition global.
+% \begin{macrocode}
+\def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\GetGinDriver}
+% Transforms the chosen driver option ready for \Package{hyperref}.
+% \begin{macrocode}
+\def\GetGinDriver
+ {\@tempswafalse
+ \@tfor\@@tmp:={dvips}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}%
+ \do{\ifx\XC@@drv\@@tmp\@tempswatrue\@break at tfor\fi}%
+ \edef\GinDriver{\if at tempswa\XC@@drv\else hypertex\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{String manipulation}
+%
+% \begin{macro}{\@hex at Hex}
+% \Meta{hex-string}|\relax|\\
+% Converts \Meta{hex-string} to a string where all letters a--f are changed into their uppercase variants.
+% All other letters are left unchanged.
+% May be used inside |\edef|.
+% \begin{macrocode}
+\def\@hex at Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi}
+\def\@hex@@Hex#1%
+ {\if a#1A\else \if b#1B\else \if c#1C\else \if d#1D\else
+ \if e#1E\else \if f#1f\else #1\fi\fi\fi\fi\fi\fi \@hex at Hex}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at strip@comma}
+% \Meta[1]{string}|,|\Meta[2]{string}|,...,|\Meta[n]{string}|,,\@nnil|\\
+% Converts a comma-separated list into a space-separated list.
+% The evaluation stops at the first empty argument, skipping all remaining tokens until (and including) |\@nnil|.
+% Thus, the list to be converted should always contain at least one |,,| sequence.
+% May be used inside |\edef|.
+% \begin{macrocode}
+\def\XC at strip@comma#1,#2%
+ {\ifx,#2%
+ #1\expandafter\remove at to@nnil\else#1 \expandafter\XC at strip@comma\fi
+ #2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at replace}
+% \marg{cmd}\marg{search}\marg{replace}\\
+% Replace all occurences of \meta{search} within the first-level expansion of \meta{cmd} by \meta{replace} and save the result in \meta{cmd}.
+% The replacement is recursive, so don't put the search pattern into the replacement text!
+% Note that this macro is incapable of seeing `into' braces.
+% The code and its explanation is taken from \People{Donald}{Arseneau}'s \Package{url} package \cite{url}, with only minor changes and renamings applied.
+% The original name of the game is |\Url at Edit|.
+% Thanks to \People{Donald}{Arseneau} for giving me valuable hints.
+% \begin{macrocode}
+{\catcode`Q=3
+ \gdef\XC at replace#1#2#3%
+ {\begingroup
+% \end{macrocode}
+%
+% If finished, then remove |\@empty|'s and redefine macro else, re-iterate.
+% \begin{macrocode}
+ \def\XC at repl@ce##1#2##2Q##3%
+ {\@ifxempty{##2}{\XC at r@pl at ce##1Q}{\XC at repl@ce##1##3##2Q{##3}}}%
+ \def\XC at r@pl at ce##1\@empty Q%
+ {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{##1}}%
+% \end{macrocode}
+%
+% The leading |\@empty| preserves braces, as does the trailing pattern.
+% \begin{macrocode}
+ \expandafter\XC at repl@ce\expandafter\@empty #1\@empty#2Q{#3}}
+}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at clean}
+% \marg{cmd}\\
+% Makes a proper comma-separated list from \meta{cmd}'s contents and stores it again in \meta{cmd}.
+% Firstly, all commas are changed into spaces, secondly, spaces are turned into commas (using a technique similar to \LaTeX's |\zap at space|).
+% Thirdly, the two leading commas are gobbled.
+% For example, `| 1 2 , 3 |' is mapped to `|1,2,3|'.
+% \begin{macrocode}
+\def\XC at clean#1%
+ {\edef#1{ #1 }\edef#1{\expandafter\XC at strip@comma#1,,\@nnil}%
+ \edef#1{\expandafter\XC at cle@n#1\@empty}%
+ \edef#1{\expandafter\@gobbletwo#1}}
+\def\XC at cle@n#1 #2{,#1\ifx#2\@empty\else\expandafter\XC at cle@n\fi#2}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Scalar arithmetic}
+%
+% \begin{macro}{\rdivide}
+% \marg{dimension register}\marg{div}\\
+% Divides \Meta{dimension register} by a real number \Meta{div}, which may also be buried in a dimension (register), and stores the resulting rounded dimension in \Meta{dimension register}.
+% The denominator \Meta{div} is assumed to be non-zero.
+% \begin{macrocode}
+\def\rdivide#1#2%
+ {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}%
+ \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax
+ \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else
+ \def\@sign{}\fi
+ \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi
+ \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen
+ \lshift\@tempdima \lshift\@tempdimb \fi\fi
+ \@tempcnta=\@tempdima \@tempcntb=\@tempdimb
+ \count@=\@tempcnta \divide\count@\@tempcntb
+ \edef\@@tmp{\number\count at .}%
+ \@tempswatrue \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide
+ \@tempswafalse \@rdivide
+ \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen at 1sp\fi
+ \dimen@\@sign\dimen@
+ \edef\@@tmp{\the\toks@\the\dimen@}%
+ \expandafter\endgroup\@@tmp}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@rdivide
+ {\multiply\count@\@tempcntb \advance\@tempcnta-\count@
+ \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb
+ \if at tempswa\edef\@@tmp{\@@tmp\number\count@}\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\rmultiply}
+% \marg{dimension register}\marg{dec}\\
+% Multiplies \Meta{dimension register} by \Meta{dec} and stores the resulting dimension in \Meta{dimension register}.
+% \begin{macrocode}
+\def\rmultiply#1#2%
+ {\begingroup
+ \edef\@@mul{#2}\@tempdima\the#1\relax
+ \afterassignment\@tempdimb\@tempcntb=\@@mul\p@
+ \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else
+ \def\@sign{}\fi
+ \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi
+ \lshift\@tempdima \dimen@\z@
+ \expandafter\@rmultiply\@@mul.0.\@nil
+ \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@
+ \dimen@\@sign\dimen@
+ \edef\@@tmp{#1\the\dimen@}%
+ \expandafter\endgroup\@@tmp}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@rmultiply#1.#2.#3\@nil
+ {\def\@@tmp{}%
+ \@tfor\@@mul:=#2\do
+ {\edef\@@tmp
+ {\advance\dimen@\@@mul\@tempdima \divide\dimen at 10 \@@tmp}}%
+ \@@tmp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\lshift}
+% \begin{macro}{\llshift}
+% \marg{dimension register}\\
+% Multiplies \Meta{dimension register} safely by 10 resp. 100.
+% \begin{macrocode}
+\def\lshift#1{#1\expandafter\lshift@\the#1}
+\def\llshift#1{\lshift#1\lshift#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lshiftnum}
+% \begin{macro}{\llshiftnum}
+% \marg{decimal number}\\
+% Multiplies \Meta{decimal number} by 10 resp. 100.
+% \begin{macrocode}
+\def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:}
+\def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z at .#3\fi}
+\def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:}
+\def\llshiftnum@#1.#2#3#4.#5:%
+ {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z at .#4\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lshiftset}
+% \begin{macro}{\llshiftset}
+% \marg{dimension register}\marg{decimal number}\\
+% Multiplies \Meta{decimal number} by 10 resp. 100 and puts it into \Meta{dimension register}.
+% \begin{macrocode}
+\def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@}
+\def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rshift}
+% \begin{macro}{\rrshift}
+% \marg{dimension register}\\
+% Divides \Meta{dimension register} safely by 10 resp. 100.
+% \begin{macrocode}
+\def\rshift#1{#1\expandafter\rshift@\the#1}
+\def\rrshift#1{\rshift#1\rshift#1}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\lshift}
+% \begin{macro}{\llshift}
+% \marg{dec}\\
+% Multiplies \Meta{dec}, which may be either a number or something like |\the\dimen@|, safely by 10 resp. 100.
+% The following definitions are similar to the way how |\strip at pt| is defined in the \LaTeX{} kernel.
+% \begin{macrocode}
+\begingroup
+\catcode`P=12
+\catcode`T=12
+\lowercase
+ {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z at .##3\fi\p@}
+ \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}}
+\expandafter\endgroup\@@tmp
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macrocode}
+\def\rshift@@#1#2%
+ {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi}
+% \end{macrocode}
+%
+%
+% \subsubsection{Vector arithmetic}
+%
+% \begin{macro}{\XC at inflate}
+% \marg{core model}\marg{first}\marg{second}\marg{cmd}\\
+% Constructs an 8-dimensional vector based on two vectors \Meta{first}, \Meta{second} (of common dimension $1,3,4$) and an underlying color model (stored in the macro \Meta{core model}).
+% The resulting vector is stored in \Meta{cmd}.
+% \begin{macrocode}
+\def\XC at inflate#1#2#3#4%
+ {\edef#4{#2,\ifx#1\XC at mod@cmyk #3\else
+ \ifx#1\XC at mod@gray ,,,#3,,,\else ,#3,\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at vec}
+% \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\
+% Generic vector calculation for two vectors (of common dimension $1,3,4$), puts the result into \Meta{cmd}.
+% \begin{macrocode}
+\def\XC at vec#1,#2,#3,#4,#5,#6,#7,#8,#9%
+ {\def\@@tmp{}%
+ \XC at vec@{#1}{#5}%
+ \ifx,#2,\else
+ \XC at vec@{#2}{#6}\XC at vec@{#3}{#7}\ifx,#4,\else\XC at vec@{#4}{#8}\fi\fi
+ \aftergroupdef#9\@@tmp}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at vec@@{\edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip at pt\dimen@}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at add}
+% \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\
+% Calculates the sum of two vectors (of common dimension $1,3,4$) and puts it into \Meta{cmd}.
+% \begin{macrocode}
+\def\XC at add{\begingroup \let\XC at vec@\XC at add@ \XC at vec}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at add@#1#2%
+ {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}%
+ \advance\dimen@\@tempdima \rrshift\dimen@ \XC at vec@@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at sub}
+% \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\
+% Calculates the difference of two vectors (of common dimension $1,3,4$) and puts it into \Meta{cmd}.
+% \begin{macrocode}
+\def\XC at sub{\begingroup \let\XC at vec@\XC at sub@ \XC at vec}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at sub@#1#2{\XC at add@{#1}{-#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at mul}
+% \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\
+% Calculates the (component-wise) product of two vectors (of common dimension $1,3,4$) and puts it into \Meta{cmd}.
+% \begin{macrocode}
+\def\XC at mul{\begingroup \let\XC at vec@\XC at mul@ \XC at vec}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at mul@#1#2%
+ {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@ \XC at vec@@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at mix}
+% \Meta{a}|,|\Meta{b}|,|\Meta{c}|,|\Meta{d}|,|\Meta{a'}|,|\Meta{b'}|,|\Meta{c'}|,|\Meta{d'}|,|\marg{cmd}\\
+% Calculates the linear interpolation of two color parameter vectors and puts it into \Meta{cmd}.
+% The percentage parameter $p$ is input via register |\dimen@|.
+% \begin{macrocode}
+\def\XC at mix%
+ {\begingroup
+ \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima
+ \let\XC at vec@\XC at mix@ \XC at vec}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at mix@#1#2%
+ {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@ \XC at vec@@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at calc@}
+% \Meta{x}|,|\Meta{y}|,|\Meta{z}|,|\Meta{w}|,|\Meta{dummy}|:|\marg{function}\\
+% Performs, dependent on the number of non-empty parameters, |\edef\@@tmp{|$f(x)$|}| or |\edef\@@tmp{|$f(x),f(y),f(z)$|}| or |\edef\@@tmp{|$f(x),f(y),f(z),f(w)$|}|, where the function $f$ is determined by the parameter \Meta{function}.
+% \begin{macrocode}
+\def\XC at calc@#1,#2,#3,#4,#5:#6%
+ {\XC at let@Nc\@@cmd{XC at calc#6}\@@cmd{#1}\@@tmp
+ \ifx,#2,\else
+ \@@cmd{#2}\@tempa\@@cmd{#3}\@tempb
+ \ifx,#4,%
+ \edef\@@tmp{\@@tmp,\@tempa,\@tempb}\else
+ \@@cmd{#4}\@tempc\edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcC}
+% \marg{x}\marg{cmd}\\
+% \textbf Complement of $x$: performs |\def|\Meta{cmd}|{|$1-x$|}|.
+% Yields exact results for all numbers within $[0,1]$ with 5 decimal digits.
+% \begin{macrocode}
+\def\XC at calcC#1#2%
+ {\llshiftset\dimen@{-#1}\advance\dimen at 100\p@
+ \rrshift\dimen@ \XC at calcN{\strip at pt\dimen@}#2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcD}
+% \marg{x}\marg{cmd}\\
+% \textbf Division of $x$ by $s$: performs |\def|\Meta{cmd}|{|$x/s$|}|.
+% The parameter $s$ is input via |\@@scl|.
+% \begin{macrocode}
+\def\XC at calcD{\XC at c@lcD\@@scl{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at c@lcD}
+% \marg{s}\marg{string}\marg{x}\marg{cmd}\\
+% \textbf Division of $x$ by $s$, appending \Meta{string}: performs |\def|\Meta{cmd}|{|$x/s$\Meta{string}|}|.
+% \begin{macrocode}
+\def\XC at c@lcD#1#2#3#4%
+ {\dimen@#3\p@ \rdivide\dimen@{#1}\edef#4{\strip at pt\dimen@#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcF}
+% \marg{x}\marg{cmd}\\
+% \textbf Format $x$ with 5 decimals, no range checks.
+% \begin{macrocode}
+\def\XC at calcF#1#2%
+ {\edef#2{#1}\expandafter\XC at c@lcF#2.0.:#2}
+% \end{macrocode}
+%
+% Special treatment of integer part because of so many possible variations ($---.0$, $7$, \dots).
+% \begin{macrocode}
+\def\XC at c@lcF#1.#2.#3:#4%
+ {\edef#4{\XC at c@@cR#200000:}%
+ \dimen@#1.5\p@ \afterassignment\dimen@\count@=\the\dimen@
+ \edef#4%
+ {\ifnum#4>0 \ifnum\count@=0 \ifdim#1.5\p@<\z@ -\fi\fi\fi
+ \number\count at .#4}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcH}
+% \marg{x}\marg{cmd}\\
+% \textbf Hexadecimal transformation of $x\in\{0,1,\dots,255\}$: performs |\def|\Meta{cmd}|{|$x_{16}$|}|.
+% \begin{macrocode}
+\def\XC at calcH#1#2%
+ {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}%
+ \multiply\count at -\sixt@@n \advance\count@#1
+ \edef#2{\XC@@tmp\hexnumber@\count@}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcM}
+% \marg{x}\marg{cmd}\\
+% \textbf Multiplication of $x$ by $s$ plus rounding: performs |\def|\Meta{cmd}|{|$[s\cdot x+0.5]$|}|.
+% The parameter $s$ is input via |\@@scl|.
+% \begin{macrocode}
+\def\XC at calcM#1#2%
+ {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen at .5\p@
+ \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcN}
+% \marg{x}\marg{cmd}\\
+% \textbf Normalisation of $x$: similar to |\XC at calcR|, but trailing zeros are eliminated.
+% \begin{macrocode}
+\def\XC at calcN#1#2%
+ {\XC at calcR{#1}#2\edef#2{\expandafter\XC at c@lcN#200000:}}
+% \end{macrocode}
+%
+% Gobble trailing zeros.
+% \begin{macrocode}
+\def\XC at c@lcN#1.#200000#3:{#1\ifnum0#2=0 \else.#2\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcR}
+% \marg{x}\marg{cmd}\\
+% \textbf Reduction of $x$ to the unit interval: performs |\def|\Meta{cmd}|{|$\min\{1,\max\{0,x\}\}$|}|.
+% Numbers are output with 5 decimals.
+% This could also be done using |\XC at calcF|, followed by a range check, but perhaps less efficiently.
+% \begin{macrocode}
+\def\XC at calcR#1#2{\edef#2{#1}\edef#2{\expandafter\XC at c@lcR#2.0.:}}
+% \end{macrocode}
+%
+% Check interval.
+% \begin{macrocode}
+\def\XC at c@lcR#1.#2.#3:%
+ {\ifnum#10>0 1.00000\else 0.\ifnum#11<0 00000\else
+ \XC at c@@cR#200000:\fi\fi}
+% \end{macrocode}
+%
+% Normalize to 5 digits.
+% \begin{macrocode}
+\def\XC at c@@cR#1#2#3#4#5#6:{#1#2#3#4#5}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcS}
+% \marg{x}\marg{cmd}\\
+% \textbf Scaling of $x$ by $s$: performs |\def|\Meta{cmd}|{|$s\cdot x$|}|.
+% The parameter $s$ is input via |\@@scl|.
+% \begin{macrocode}
+\def\XC at calcS{\XC at c@lcS\@@scl{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at c@lcS}
+% \marg{s}\marg{string}\marg{x}\marg{cmd}\\
+% \textbf Scaling of $x$ by $s$, appending \Meta{string}: performs |\def|\Meta{cmd}|{|$s\cdot x$\Meta{string}|}|.
+% \begin{macrocode}
+\def\XC at c@lcS#1#2#3#4%
+ {\lshiftset\dimen@{#3}%
+ \ifdim#1\p@<100\p@
+ \dimen@\lshiftnum#1\dimen@ \rrshift\dimen@ \else
+ \dimen@#1\dimen@ \rshift\dimen@ \fi
+ \edef#4{\strip at pt\dimen@#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcT}
+% \marg{x}\marg{cmd}\\
+% \textbf Translate $x$ by $a$ and cut to unit interval: performs |\def|\Meta{cmd}|{|$\min\{1,\max\{0,x+a\}\}$|}|.
+% The parameter $a$ is input via |\@@arg|.
+% \begin{macrocode}
+\def\XC at calcT#1#2%
+ {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@
+ \edef#2%
+ {\ifdim\dimen@>\p at 1\else\ifdim\dimen@<\z at 0\else\strip at pt\dimen@\fi\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at calcU}
+% \marg{x}\marg{cmd}\\
+% \textbf Unit interval mapping of $x$: performs |\def|\Meta{cmd}|{|$x-[x]$|}| if $x\neq1$, $1$ otherwise.
+% \begin{macrocode}
+\def\XC at calcU#1#2%
+ {\dimen@#1\p@
+ \ifdim\dimen@=\p@\else
+ \afterassignment\dimen@\count@=\the\dimen@
+ \relax\ifdim\dimen@=\z@\else
+ \ifdim#1\p@<\z@ \dimen at -\dimen@ \advance\dimen@\p@ \fi
+ \fi
+ \fi
+ \edef#2{\strip at pt\dimen@}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsection{Color definition}
+%
+% \subsubsection{Constants}
+%
+% \begin{macro}{\rangeRGB}
+% \begin{macro}{\rangeHSB}
+% \begin{macro}{\rangeHsb}
+% \begin{macro}{\rangetHsb}
+% \begin{macro}{\rangeGray}
+% Scaling ranges for `integer' and other special models:
+% \begin{macrocode}
+\providecommand*\rangeRGB{255}
+\providecommand*\rangeHSB{240}
+\providecommand*\rangeHsb{360}
+\providecommand*\rangetHsb{60,30;120,60;180,120;210,180;240,240}
+\providecommand*\rangeGray{15}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\adjustUCRBG}
+% Parameters for undercolor-removal (UCR) and black-generation (BG) during \Model{cmy} to \Model{cmyk} conversion:
+% \begin{macrocode}
+\providecommand*\adjustUCRBG{1,1,1,1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\paperquality}
+% Parameter for choosing different color sets according to the paper quality; yet supported only for the HKS colors.
+% \begin{macrocode}
+\providecommand*\paperquality{1}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\colorseriescycle}
+% Default cycle length for color series:
+% \begin{macrocode}
+\providecommand*\colorseriescycle{16}
+% \end{macrocode}
+% \end{macro}
+%
+% Model-dependent base colors:
+% \begin{macrocode}
+\def\XC at clr@rgb at white{1,1,1}
+\def\XC at clr@cmy at white{0,0,0}
+\def\XC at clr@cmyk at white{0,0,0,0}
+\def\XC at clr@hsb at white{\@@hue,0,1}
+\def\XC at clr@hsb at gray{\@@hue,0,0.5}
+\def\XC at clr@hsb at black{\@@hue,0,0}
+\def\XC at clr@gray at white{1}
+% \end{macrocode}
+%
+% \begin{macro}{\XC at met@grad}
+% \begin{macro}{\XC at met@last}
+% \begin{macro}{\XC at met@step}
+% Methods for color series:
+% \begin{macrocode}
+\@tfor\@@tmp:={grad}{last}{step}\do
+ {\XC at let@cN{XC at met@\@@tmp}\@@tmp}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Colors}\label{sec.definition}
+%
+% \begin{macro}{\definecolor}
+% \oarg{type}\marg{name}\oarg{prefix}\marg{model-list}\marg{spec-list}\\
+% Extends the facilities of \LC's |\definecolor|.
+% The optional argument \Meta{type} has currently to be either empty (= normal color definition) or `named' or `ps'.
+% \Meta{prefix} is an argument used for the internal driver-dependent representation.
+% |\definecolor| creates a new command |\\color@|\Meta{name} that contains the \emph{internal representation}
+% |\xcolor@|\marg{type-spec}\marg{driver-spec}\marg{n-model}\marg{n-color-spec} of the color, where
+% \begin{itemize}
+% \item \Meta{type-spec} is either empty (if \Meta{type} was empty), or a driver-dependent macro or expression (if \Meta{type} was `named', `ps');
+% \item \Meta{driver-spec} is a driver-dependent representation of the color, which also depends on \Meta{type};
+% \item \Meta{n-model} is either \Meta{model} or the name of another color model, dependent on the desired transformation(s) at definition time;
+% \item \Meta{n-color-spec} are the comma-separated normalised parameter values of the color with respect to \Meta{n-model}.
+% \end{itemize}
+% See table \vref{tab.internal} for some examples.
+% \begin{macrocode}
+\def\definecolor{\@testopt{\XC at definecolor}{}}
+\def\XC at definecolor[#1]#2%
+ {\@testopt{\XC at definec@lor[#1]{#2}}\colornameprefix}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definec@lor[#1]#2[#3]#4#5%
+ {\begingroup
+ \XC at sdef\@@cls{#1}\XC at edef\@@nam{#2}\edef\colornameprefix{#3}%
+ \XC at logdef\@@nam
+ \XC at getmodclr02{#4}{#5}{\let\@@tmp\relax}%
+ {\ifx\@@mod\XC at mod@named
+ \XC at c@l at rlet\@@nam\@@clr
+ \else
+ \ifx\@@cls\XC at mod@ps
+ \edef\@@drv{\@@mod\space\@@clr}\def\@@hue{0}%
+ \edef\@@clr{\@nameuse{XC at clr@\@@mod @white}}%
+ \else
+ \ifconvertcolorsD
+ \let\@@tmp\@@mod\XC at sdef\@@mod{\XC at tgt@mod\@@tmp}%
+ \convertcolorspec\@@tmp\@@clr\@@mod\@@clr
+ \fi
+ \XC at coremodel\@@mod\@@clr
+% \end{macrocode}
+%
+% Determine driver-dependent color definition:
+% \begin{macrocode}
+ \csname color@\@@mod\expandafter\endcsname
+ \expandafter\@@drv\expandafter{\@@clr}%
+% \end{macrocode}
+%
+% Handle prologue and `named' colors:
+% \begin{macrocode}
+ \ifcase\XC@@xcp@
+ \immediate\write\XC@@xcp{/\colornameprefix\@@nam{\expandafter
+ \XC at strip@comma\@@clr,,\@nnil}XC\@@mod}%
+ \let\@@cls\XC at mod@named
+ \fi
+ \ifx\@@cls\@empty\else
+ \let\@@tmp\@@cls
+ \@nameuse{define at color@\@@cls}\@@nam\@@drv
+ \csname color@\@@tmp\expandafter\endcsname
+ \expandafter\@@drv\expandafter{\@@nam}%
+ \fi
+ \fi
+% \end{macrocode}
+%
+% Finally write all information into macro |\\color@|\Meta{name}:
+% \begin{macrocode}
+ \toks@\expandafter{\@@drv}%
+ \edef\@@tmp
+ {\ifglobalcolors\global\else\xglobal@\fi
+ \noexpand\@namedef{\string\color@\@@nam}%
+ {\noexpand\xcolor@{\@@cls}{\the\toks@}{\@@mod}{\@@clr}}}%
+ \fi}%
+ \expandafter\endgroup\@@tmp\xglobal at stop}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at getmodclr}
+% \marg{mod-opt}\marg{clr-opt}\marg{model-list}\marg{spec-list}\marg{undefined}\marg{defined}\\
+% Depending on \Meta{mod-opt}, different tasks are performed:
+% \begin{itemize}
+% \item[0:] Retrieve color model and target model from \Meta{model-list} if |\XC@@getmod| is `true'.
+% \item[1:] Retrieve color model and target model from \Meta{model-list} always.
+% \end{itemize}
+% The color model is stored in |\@@mod|, its position in |\XC@@pos|, a possible target model in |\@@Mod|.
+% Depending on \Meta{clr-opt}, different tasks are performed:
+% \begin{itemize}
+% \item[0:] Don't pick color specification from \Meta{spec-list}.
+% \item[1:] Pick color specification from \Meta{spec-list}, convert it from model |\@@mod| to |\@@Mod|, unless the latter is `ignore' or |\@@cls| is `ps'.
+% \item[2:] Like the former case, additionally |\let\@@mod\@@Mod|.
+% \end{itemize}
+% The color specification is stored in |\@@clr|.
+% Color specification picking relies on the position |\XC@@pos|, conversion relies on the model |\@@mod|, and the target model |\@@Mod|.
+% If |\@@mod| represents an undefined color model, then \Meta{undefined} is executed at the end of the macro, else \Meta{defined}.
+% \begin{macrocode}
+\def\XC at getmodclr#1#2#3#4%
+ {\ifnum\ifcase#1 \ifXC@@getmod1\else0 \fi \or1 \fi>0
+ \XC at mdef\@@mod{#3}\expandafter\XC at getmod\@@mod////////\XC@@
+ \@ifundefinedmodel\@@Mod{\let\@@Mod\XC at mod@ignore}{}\fi
+ \@ifundefined{XC at mod@\@@mod}%
+ {\c at lor@error{model `\@@mod'}\@firstoftwo}%
+ {\ifcase#2\else
+ \XC at mdef\@@clr{#4}%
+ \edef\@@clr{\expandafter\XC at getclr\@@clr////////\XC@@}%
+ \ifx\@@cls\XC at mod@ps\else\XC at clean\@@clr\fi
+ \ifx\@@Mod\XC at mod@ignore\else
+ \convertcolorspec\@@mod\@@clr\@@Mod\@@clr
+ \ifnum#2>1 \let\@@mod\@@Mod\fi
+ \fi
+ \fi \@secondoftwo}}
+% \end{macrocode}
+%
+% \begin{macro}{\XC at getmod}
+% Retrieve model position |\XC@@pos|, model |\@@mod|, and target model |\@@Mod| from multiple definitions (up to~8), separated by `|/|'.
+% \begin{macrocode}
+\def\XC at getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@
+ {\XC at g@tm at d0#1::\XC@@ \XC at getm@d1{#2}\XC at getm@d2{#3}%
+ \XC at getm@d3{#4}\XC at getm@d4{#5}\XC at getm@d5{#6}\XC at getm@d6{#7}%
+ \XC at getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at getm@d#1#2%
+ {\edef\XC@@pos{#2}\XC at sdef\@@mod{\XC at tgt@mod\XC@@pos}%
+ \ifx\XC@@pos\@@mod\def\XC@@pos{#1}\expandafter\remove at to@nnil\fi}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at g@tm at d#1#2:#3:#4\XC@@
+ {\@ifxempty{#3}{\let\@@Mod\XC at mod@ignore\XC at getm@d0{#2}}%
+ {\def\@@Mod{#2}\XC at getm@d0{#3}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at getclr}
+% Pick color specification on position |\XC@@pos| from multiple definitions (up to~8), separated by `|/|'.
+% Expandable.
+% \begin{macrocode}
+\def\XC at getclr#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@
+ {\ifcase\XC@@pos\space #1\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\ifXC@@getmod}
+% Switch used to determine whether the model has to be retrieved (e.g., ordinary |\definecolor|) or not (e.g., |\definecolor| acting as subroutine to |\definecolorset|).
+% \begin{macrocode}
+\newif\ifXC@@getmod \XC@@getmodtrue
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\xdefinecolor}
+% This command is identical with |\definecolor|, it is kept only for compatibility reasons.
+% \begin{macrocode}
+\let\xdefinecolor\definecolor
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\providecolor}
+% \oarg{type}\marg{name}\marg{model-list}\marg{spec-list}\\
+% Similar to |\definecolor|, but the color \Meta{name} is only defined if it does not exist already.
+% \begin{macrocode}
+\def\providecolor{\@testopt{\XC at providecolor}{}}
+\def\XC at providecolor[#1]#2%
+ {\@testopt{\XC at providec@lor[#1]{#2}}\colornameprefix}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at providec@lor[#1]#2[#3]%
+ {\XC at edef\XC@@tmp{#2}%
+ \@ifundefinedcolor\XC@@tmp{\XC at definecolor[#1]{#2}[#3]}%
+ {\ifnum\XC at tracing>0
+ \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi
+ \@gobbletwo}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\xcolor@}
+% \marg{type-spec}\marg{driver-spec}\marg{model}\marg{spec}\\
+% Simply grabs the driver-specific part of the color definition.
+% Therefore, the command |\\color@|\Meta{name} behaves like in the original case, when first-level expanded.
+% \begin{macrocode}
+\def\xcolor@#1#2#3#4{#2}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\colorlet}
+% \oarg{type}\marg{name}\oarg{num model}\marg{color}\\
+% Create a color `name' consisting of \Meta{color}, converted to \Meta{num model} if non-empty.
+% \begin{macrocode}
+\def\colorlet{\@testopt{\XC at colorlet}{}}
+\def\XC at colorlet[#1]#2{\@testopt{\XC at col@rlet[#1]{#2}}{}}
+\def\XC at col@rlet[#1]#2[#3]#4%
+ {\begingroup
+ \edef\@@cls{#1}\XC at edef\@@nam{#2}\XC at sdef\@@mod{#3}\XC at edef\@@clr{#4}%
+% \end{macrocode}
+%
+% Check whether |#4| is an explicit name, |#3| is empty and |#1| is either empty or equal to the corresponding parameter of |#4|: in this case, a simple |\let| command will do the job.
+% \begin{macrocode}
+ \XC at info\@@clr\@@tmp\XC@@tstfalse
+ \ifnum\@@tmp=\@ne\ifx\@@mod\@empty
+ \ifx\@@cls\@empty
+ \XC@@tsttrue
+ \else
+ \edef\@@tmp
+ {\expandafter\expandafter\expandafter\@secondoffive
+ \csname\string\color@\@@clr\endcsname}%
+ \ifx\@@cls\@@tmp\XC@@tsttrue\fi
+ \fi
+ \fi\fi
+ \ifXC@@tst
+ \XC at logdef\@@nam\XC at c@l at rlet\@@nam\@@clr
+ \else
+ \extractcolorspec\@@clr\@@clr
+ \ifx\@@mod\@empty\else
+ \expandafter\convertcolorspec\@@clr\@@mod\@@clr
+ \edef\@@clr{{\@@mod}{\@@clr}}\fi
+ \edef\@@tmp{\noexpand\XC at definecolor[\@@cls]{\@@nam}\@@clr}%
+ \fi
+ \expandafter\endgroup\@@tmp\xglobal at stop}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at c@l at rlet#1#2%
+ {\@ifundefinedcolor{#2}%
+ {\c at lor@error{`#2'}\let\@@tmp\@empty}%
+ {\edef\@@tmp
+ {\ifglobalcolors\global\else\xglobal@\fi
+ \noexpand\XC at let@cc{\string\color@#1}{\string\color@#2}}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\DefineNamedColor}
+% \marg{type}\marg{name}\marg{model-list}\marg{spec-list}
+% \begin{macrocode}
+\def\DefineNamedColor#1%
+ {\@nameuse{XC@\ifdefinecolors defin\else prepar\fi ecolor}[#1]}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Deferred definition}
+%
+% \begin{macro}{\preparecolor}
+% \oarg{type}\marg{name}\oarg{prefix}\marg{model-list}\marg{spec-list}\\
+% \begin{macrocode}
+\def\preparecolor{\@testopt{\XC at preparecolor}{}}
+\def\XC at preparecolor[#1]#2%
+ {\@testopt{\XC at preparec@lor[#1]{#2}}\colornameprefix}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at preparec@lor[#1]#2[#3]#4#5%
+ {\XC at sdef\@@cls{#1}\XC at edef\@@nam{#2}%
+ \XC at getmodclr01{#4}{#5}{}%
+ {\xdef\XC@@stack
+ {\ifx\XC@@stack\@empty\else\XC@@stack,\fi{#1}{\@@nam}{#3}%
+ {\ifx\@@Mod\XC at mod@ignore\@@mod\else\@@Mod\fi}{\@@clr}}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\let\XC@@stack\@empty
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\definecolors}
+% \marg{id-list}
+% \begin{macrocode}
+\def\definecolors#1%
+ {\let\XC@@cmd\definecolor\let\XC@@glb\xglobal@
+ \expandafter\XC at definecolors#1,,}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definecolors#1,%
+ {\@ifxempty{#1}{}{\expandafter\XC at definec@lors#1=#1=:\XC at definecolors}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definec@lors#1=#2=#3:%
+ {\XC at edef\@@nam{#1}\XC at edef\@@arg{#2}%
+ \let\next\XC at definec@l at rs\expandafter\next\XC@@stack,,\@nnil}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definec@l at rs#1,%
+ {\ifx,#1,\let\next\remove at to@nnil\else\XC at defin@c at l@rs#1\fi\next}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at defin@c at l@rs#1#2#3#4#5%
+ {\def\@@tmp{#2}%
+ \ifx\@@tmp\@@arg
+ \let\xglobal@\XC@@glb\XC@@cmd[#1]{\@@nam}[#3]{#4}{#5}%
+ \let\next\remove at to@nnil
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\providecolors}
+% \marg{id-list}\\
+% Similar to |\definecolor|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already.
+% \begin{macrocode}
+\def\providecolors#1%
+ {\let\XC@@cmd\providecolor\let\XC@@glb\xglobal@
+ \expandafter\XC at definecolors#1,,}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Sets of colors}
+%
+% \begin{macro}{\definecolorset}
+% \oarg{type}\marg{model-list}\marg{head}\marg{tail}\marg{set spec}\\
+% This command facilitates the construction of \emph{color sets} with common underlying \Meta{model-list} and \Meta{type}.
+% Here, \Meta{set spec} = \Meta[1]{name},\Meta[1]{spec-list};\dots;\Meta[k]{name},\Meta[k]{spec-list} ($k\ge1$ name/specification-list pairs).
+% Individual colors are being constructed by |\definecolor|\oarg{type}|{|\Meta{head}\Meta[1]{name}\Meta{tail}|}|\marg{model-list}|{|\Meta[1]{spec-list}|}| etc.
+% \begin{macrocode}
+\def\definecolorset
+ {\let\XC@@cmd\definecolor\@testopt{\XC at definecolorset}{}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definecolorset[#1]#2#3#4#5%
+ {\XC at getmodclr10{#2}{}{}%
+ {\XC@@getmodfalse\XC at edef\XC@@tmp{#5}\let\XC@@glb\xglobal@
+ \def\XC at definec@lorset##1,##2;%
+ {\@ifxempty{##1}{}%
+ {\let\xglobal@\XC@@glb
+ \XC@@cmd[#1]{#3##1#4}{\@@mod}{##2}\XC at definec@lorset}}%
+ \expandafter\XC at definec@lorset\XC@@tmp;,;\XC@@getmodtrue}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\providecolorset}
+% \oarg{type}\marg{model-list}\marg{name-prefix}\marg{name-postfix}\marg{set spec}\\
+% Similar to |\definecolorset|, but based on |\providecolor|, thus the individual colors are defined only if they do not exist already.
+% \begin{macrocode}
+\def\providecolorset
+ {\let\XC@@cmd\providecolor\@testopt{\XC at definecolorset}{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\preparecolorset}
+% \oarg{type}\marg{model-list}\marg{name-prefix}\marg{name-postfix}\marg{set spec}\\
+% Similar to |\definecolorset|, but dependent on |\ifdefinecolors|, either a |\definecolor| or a |\preparecolor| command will be executed for each single set member.
+% \begin{macrocode}
+\def\preparecolorset
+ {\ifdefinecolors\let\XC@@cmd\definecolor\else\let\XC@@cmd\preparecolor\fi
+ \@testopt{\XC at definecolorset}{}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Color series}
+%
+% \begin{macro}{\definecolorseries}
+% \marg{name}\marg{core model}\marg{method}\oarg{b-model}\marg{base color}\oarg{l-model}\marg{delta}
+% \begin{macrocode}
+\def\definecolorseries#1#2#3%
+ {\@testopt{\XC at definecolorseries{#1}{#2}{#3}}{}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definecolorseries#1#2#3[#4]#5%
+ {\@testopt{\XC at definec@lorseries{#1}{#2}{#3}[#4]{#5}}{}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at definec@lorseries#1#2#3[#4]#5[#6]#7%
+ {\begingroup
+ \XC at sdef\@@mod{#2}%
+ \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}%
+ \expandafter\convertcolorspec\@@clr\@@mod\@@clr
+ \@namexdef{\string\colorB@#1}{{\@@mod}{\@@clr}}%
+ \edef\@@met{#3}%
+ \ifx\@@met\XC at met@last
+ \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}%
+ \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
+ \XC at inflate\@@mod\@@tmp\@@clr\@@tmp
+ \expandafter\XC at sub\@@tmp,\@@tmp
+ \else
+ \edef\@@tmp{#7}%
+ \fi
+ \@namexdef{\string\colorD@#1}{{\@@met}{\@@tmp}}%
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\resetcolorseries}
+% \oarg{div}\marg{name}
+% \begin{macrocode}
+\def\resetcolorseries{\@testopt{\XC at resetcolorseries}{}}
+\def\XC at resetcolorseries[#1]#2%
+ {\begingroup
+ \@namexdef
+ {\string\color@#2}{\noexpand\xcolor@{}{}\@nameuse{\string\colorB@#2}}%
+ \XC at let@Nc\@@tmp{\string\colorD@#2}%
+ \edef\@@met{\expandafter\@firstoftwo\@@tmp}%
+ \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
+ \ifx\@@met\XC at met@step\else
+ \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}%
+ \expandafter\XC at calc@\@@tmp,,,,:D%
+ \fi
+ \@namexdef{\string\colorS@#2}{\@@tmp}%
+ \endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at step}
+% \begin{macro}{\XC at stepabs}
+% \marg{name}\\
+% Perform a relative or absolute (= direct access) step within a color series \Meta{name}.
+% In the relative case, the (non-negative) number of single steps is supposed to be stored in |\@tempcnta|.
+% \begin{macrocode}
+\def\XC at step#1%
+ {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\string\color@#1}}%
+ \expandafter\XC at st@p\@@tmp{#1}%
+ \@namexdef{\string\color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at st@p#1#2#3%
+ {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\string\colorS@#3}}%
+ \@whilenum\@tempcnta>\z@\do
+ {\XC at inflate\@@mod\@@tmp\@@vec\@@tmp
+ \expandafter\XC at add\@@tmp,\@@tmp \expandafter\XC at calc@\@@tmp,,,,:U%
+ \advance\@tempcnta\m at ne}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at stepabs#1%
+ {\edef\@@tmp{\@nameuse{\string\colorB@#1}}%
+ \expandafter\XC at st@p\@@tmp{#1}%
+ \edef\@@tmp
+ {\def\noexpand\@@mod{\@@mod}\def\noexpand\@@clr{\@@tmp}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Color blending}
+%
+% \begin{macro}{\blendcolors}
+% \begin{macro}{\blendcolors*}
+% \marg{mix expr}\\
+% Initialises all necessary parameters for color blending.
+% The actual (completed) color blend expression is stored in |\colorblend|.
+% In the starred version, the argument will be appended to a previously defined blend expression.
+% An empty \Meta{mix expr} argument will switch blending off.
+% \begin{macrocode}
+\def\blendcolors{\@ifstar{\XC at blendcolors\colorblend}{\XC at blendcolors{}}}
+\def\XC at blendcolors#1#2%
+ {\edef\colorblend{#1}\XC at edef\XC@@tmp{#2}%
+ \ifx\XC@@tmp\@empty
+ \xglobal@\blendcolorsfalse
+ \else
+ \xglobal@\blendcolorstrue
+ \expandafter\XC at blendc@lors\XC@@tmp!!\@nil
+ \fi
+ \xglobalize@\colorblend \xglobal at stop}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at blendc@lors!#1!#2!#3\@nil
+ {\@ifxempty{#1}{}%
+ {\@ifxempty{#2}%
+ {\edef\colorblend{\colorblend!#1!white}}%
+ {\edef\colorblend{\colorblend!#1!#2}\XC at blendc@lors!#3!\@nil}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\blendcolors{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Color masks and separation}
+%
+% \begin{macro}{\maskcolors}
+% \oarg{core model}\marg{color}\\
+% Initialises all necessary parameters for color masking.
+% The actual color mask expression is stored in |\colormask|.
+% An empty \Meta{color} argument will switch masking off.
+% The optional \Meta{core model} argument may be used to determine the underlying color model.
+% \begin{macrocode}
+\def\maskcolors{\@testopt{\XC at maskcolors}{}}
+\def\XC at maskcolors[#1]#2%
+ {\XC at edef\colormask{#2}%
+ \ifx\colormask\@empty
+ \xglobal@\maskcolorsfalse \def\XC at mmod{}\def\XC at mclr{}%
+ \else
+ \xglobal@\maskcolorstrue \extractcolorspecs\colormask\XC at mmod\XC at mclr
+ \@ifxempty{#1}{}%
+ {\convertcolorspec\XC at mmod\XC at mclr{#1}\XC at mclr \XC at sdef\XC at mmod{#1}}%
+ \XC at coremodel\XC at mmod\XC at mclr
+ \fi
+ \xglobalize@\colormask \xglobalize@\XC at mmod \xglobalize@\XC at mclr
+ \xglobal at stop}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\maskcolors{}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Color application}
+%
+% \subsubsection{Standard color commands}
+%
+% \begin{macro}{\color}
+% \marg{color}\\
+% \oarg{model-list}\marg{spec-list}\\
+% Switches to the color given either by name/expression or by model/specification.
+% This color will stay in effect until the end of the current \TeX\ group.
+% \begin{macrocode}
+\DeclareRobustCommand\color
+ {\@ifnextchar[\@undeclaredcolor\@declaredcolor}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@undeclaredcolor}
+% \oarg{model-list}\marg{spec-list}\\
+% Display a color that is given by \Meta{model} name and numerical \Meta{spec}.
+% \begin{macrocode}
+\def\@undeclaredcolor[#1]#2%
+ {\begingroup
+ \let\@@cls\@empty
+ \XC at getmodclr12{#1}{#2}{}%
+ {\ifblendcolors
+ \ifx\colorblend\@empty\else
+ \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse
+ \XC at coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr
+ \fi
+ \fi
+ \ifconvertcolorsU
+ \edef\@@tmp{\XC at tgt@mod{\@@mod}}%
+ \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp
+ \fi
+ \ifmaskcolors
+ \convertcolorspec\@@mod\@@clr\XC at mmod\@@clr
+ \let\@@mod\XC at mmod
+ \XC at inflate\@@mod\XC at mclr\@@clr\@@tmp
+ \expandafter\XC at mul\@@tmp,\@@clr
+ \fi
+ \edef\@@tmp{\noexpand\XC at undeclaredcolor{\@@mod}{\@@clr}}%
+ \expandafter\endgroup\@@tmp}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at undeclaredcolor#1#2%
+ {\@ifundefinedmodel{#1}%
+ {\c at lor@error{model `#1'}}%
+ {\@nameuse{color@#1}\current at color{#2}%
+ \edef\XC at current@color{\noexpand\xcolor@{}{\current at color}{#1}{#2}}%
+ \XC at display}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@declaredcolor}
+% \marg{color}\\
+% Display a color that is given by an arbitrary \Meta{color}.
+% \begin{macrocode}
+\def\@declaredcolor#1%
+ {\XC at edef\XC@@tmp{#1}\XC@@tstfalse
+ \ifcase\XC at type\XC@@tmp\relax \XC@@tsttrue\or \relax\else
+ \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi
+ \ifconvertcolorsU\XC@@tsttrue\fi
+ \fi
+ \ifXC@@tst
+ \expandafter\XC at declaredcolor\else
+ \expandafter\XC at declaredc@lor\fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at declaredcolor
+ {\XC at split\XC@@tmp
+ \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}%
+ \expandafter\endgroup\@@tmp}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at declaredc@lor
+ {\XC at let@Nc\XC at current@color{\string\color@\XC@@tmp}%
+ \edef\current at color{\XC at current@color}%
+ \XC at display}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\textcolor}
+% \marg{color}\marg{text}\\
+% \oarg{model-list}\marg{spec-list}\marg{text}\\
+% are just alternative syntax for |\color|, in which the groups are added implicitly.
+% Thus \emph{text} appears in the specified color, but then the color reverts to its previous value.
+% The naming is by analogy with |\textrm| (as opposed to |\rm| and |\rmfamily|) although it is slightly a misnomer as the command also works in math-mode.
+% Additionally, it calls |\leavevmode| to ensure the start of horizontal mode.
+% \begin{macrocode}
+\def\textcolor#1#{\@textcolor{#1}}
+\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\pagecolor}
+% \marg{color}\\
+% \oarg{model-list}\marg{spec-list}\\
+% Specifies the background color for the current, and all following, pages.
+% It is a global declaration which does not respect \TeX\ groups.
+% \begin{macrocode}
+\def\pagecolor
+ {\begingroup
+ \let\ignorespaces\endgroup \let\set at color\set at page@color
+ \color}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Colored boxes}
+%
+% \begin{macro}{\colorbox}
+% \marg{color}\marg{text}\\
+% \oarg{model}\marg{spec}\marg{text}\\
+% Takes the same argument forms as |\textcolor|, but the color specifies the \emph{background} color of the box.
+% \begin{macrocode}
+\def\colorbox#1#{\color at box{#1}}
+\def\color at box#1#2{\color at b@x\relax{\color#1{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\fcolorbox}
+% \marg{frame color}\marg{background color}\marg{text}\\
+% \oarg{model}\marg{frame spec}\marg{background spec}\marg{text}\\
+% \oarg{frame model}\marg{frame spec}\oarg{background model}\marg{background spec}\marg{text}\\
+% \marg{frame color}\oarg{background model}\marg{background spec}\marg{text}\\
+% Puts a frame of the first color around a box with a background specified by the second color.
+% If only the first optional argument is given, it specifies the color model for both colors.
+% \begin{macrocode}
+\def\fcolorbox#1#{\color at fbox{#1}}
+\def\color at fbox#1#2#3#{\color at fb@x{#1}{#2}{#3}}
+\def\color at fb@x#1#2#3#4%
+ {\color at b@x{\fboxsep\z@\color#1{#2}\XC at fbox}%
+ {\@ifxempty{#3}{\color#1}{\color#3}{#4}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at b@x}
+% Internal macro for |\colorbox| and |\fcolorbox|.
+% \begin{macrocode}
+\long\def\color at b@x#1#2#3%
+ {\leavevmode
+ \setbox\z@\hbox{\kern\fboxsep{\set at color#3}\kern\fboxsep}%
+ \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@
+ \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@
+ {#1{#2\color at block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at frameb@x}
+% Common part of |\framebox| and |\fbox|.
+% |#1| is a negative kern in the |\framebox| case so that the vertical rules do not add to the width of the box.
+% Optimised by \People{Donald}{Arseneau}.
+% \begin{macrocode}
+\def\XC at frameb@x#1%
+ {\hbox
+ {\@tempdima\fboxrule \advance\@tempdima\fboxsep
+ \advance\@tempdima\dp\@tempboxa
+ \setbox\@tempboxa\hbox
+ {\lower\@tempdima\hbox
+ {\vbox
+ {\kern\fboxrule
+ \hbox
+ {\kern\fboxrule#1%
+ \vbox{\kern\fboxsep\box\@tempboxa\kern\fboxsep}%
+ #1\kern\fboxrule}%
+ \kern\fboxrule}}}%
+ \@tempdima\wd\@tempboxa
+ \edef\@tempa{{\the\@tempdima}{\the\ht\@tempboxa}{\the\dp\@tempboxa}}%
+ \box\@tempboxa\kern-\@tempdima\expandafter\boxframe\@tempa}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at fbox}
+% \begin{macro}{\@frameb at x}
+% If no \Option{kernelfbox} option was specified, switch to the new method in general, else only for |\fcolorbox|.
+% \begin{macrocode}
+\ifXC@@fbox
+ \let\@frameb at x\XC at frameb@x \let\XC at fbox\fbox
+\else
+ \def\XC at fbox{\let\@frameb at x\XC at frameb@x\fbox}
+\fi
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Driver-specific and generic drawing}
+%
+% \begin{macro}{\color at block}
+% \marg{width}\marg{height}\marg{depth}\\
+% Should take up no space for \TeX, but produce a block in the current color of the specified size.
+% It is mainly used for producing box backgrounds.
+% \begin{macro}{\boxframe}
+% \marg{width}\marg{height}\marg{depth}\\
+% Draw a frame with a linewidth of |\fboxrule|.
+% Return a |\hbox| with outer dimensions \meta{width}, \meta{height}, \meta{depth}.
+
+% \begin{macro}{\XC at boxframe}
+% \marg{width}\marg{height}\marg{depth}\marg{frame construction}\\
+% Wrapper for |\boxframe| commands that return zero-dimension frames.
+% \begin{macrocode}
+\ifnum\XC@@xcd@>\m at ne
+\def\XC at boxframe#1#2#3#4%
+ {\hbox{\sbox\z@{\ifdim\fboxrule>\z@ #4\fi}%
+ \wd\z@#1\relax\ht\z@#2\relax\dp\z@#3\relax\box\z@}}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \textbf{\Option{dvips}-optimised code}
+% \begin{macrocode}
+\ifcase\XC@@xcd@
+% \end{macrocode}
+%
+% \begin{macrocode}
+\providecommand*\color at block[3]%
+ {{\set at color\hbox
+ {\dimen@#3\edef\@tempa{ \number\dimen@\space}%
+ \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}%
+ \dimen@#1\relax
+ \XC at special{\number\dimen@\@tempa XCcolorblock}}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\providecommand*\boxframe[3]%
+ {\XC at boxframe{#1}{#2}{#3}%
+ {\dimen@#3\edef\@tempa{ \number\dimen@\space}%
+ \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}%
+ \dimen@#1\relax
+ \XC at special{\number\fboxrule\space\number\dimen@\@tempa XCboxframe}}}
+% \end{macrocode}
+%
+% \textbf{\Option{pdftex}-optimised code }
+% There seems to be no improvement by adding a specific |\color at block| command, since the PDF format doesn't offer higher accuracy than \TeX.
+% For |\boxframe| we want to achieve this PDF pseudo-code (besides initial scaling):\\[1ex]
+% \centerline{\ttfamily $l$ w [] $0$ d $2$ J $0$ j $4$ M
+% $1$ $0$ $0$ $1$ $\frac12\,l$ $\frac12\,l$ cm
+% $0$ $-d$ $(w-l)$ $(h+d-l)$ re s}
+% \begin{macrocode}
+\or
+% \end{macrocode}
+%
+% \begin{macrocode}
+\providecommand*\boxframe[3]%
+ {\XC at boxframe{#1}{#2}{#3}%
+ {\dimen@#3\edef\@tempa{ 0 -\strip at pt\dimen@\space}%
+ \edef\@tempb{\advance\dimen@\the\dimen@}%
+ \dimen@#2\advance\dimen at -\fboxrule\@tempb
+ \edef\@tempb{ \strip at pt\dimen@\space re s}%
+ \dimen@#1\advance\dimen at -\fboxrule
+ \edef\@tempb{ cm\@tempa\strip at pt\dimen@\@tempb}%
+ \dimen at .5\fboxrule\edef\@tempa{ \strip at pt\dimen@}%
+ \XC at special
+ {0.996264 0 0 0.996264 0 0 cm
+ \strip at pt\fboxrule\space w [] 0 d 2 J 0 j 4 M
+ 1 0 0 1\@tempa\@tempa\@tempb}}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+%
+% \textbf{Generic code }
+% The definition here works by selecting a color, and then drawing a \TeX\ rule (unless |\ifcolors at false|).
+% \begin{macrocode}
+\providecommand*\color at block[3]%
+ {{\set at color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}}
+% \end{macrocode}
+%
+% The following definition was optimised by \People{Donald}{Arseneau}.
+% \begin{macrocode}
+\providecommand*\boxframe[3]%
+ {\hbox
+ {\dimen@#2\advance\dimen@#3\relax
+ \lower#3\vbox
+ {\hrule\@height\fboxrule
+ \@tempdima-0.5\fboxrule \ifodd\fboxrule\advance\@tempdima\m at ne sp\fi
+ \kern\@tempdima
+ \hbox
+ {\advance\dimen at -\fboxrule
+ \vrule\@width\fboxrule\@height\dimen@\@depth\z@
+ \@tempdima#1\advance\@tempdima-\tw@\fboxrule \kern\@tempdima
+ \vrule\@width\fboxrule\@height\dimen@\@depth\z@}%
+ \kern-0.5\fboxrule
+ \hrule\@height\fboxrule}}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Color argument processing}
+%
+% \begin{macro}{\@xcolor@}
+% \marg{type-spec}\marg{driver-spec}\marg{model}\marg{spec}\\
+% This is the `work-horse' that does all necessary conversions and calculations if a color (expression) has to be displayed.
+% \Meta{type-spec} and \Meta{driver-spec} are ignored.
+% |\@@mix| may contain a mix expression without leading `!'.
+% \begin{macrocode}
+\def\@xcolor@#1#2#3#4%
+ {\edef\@@mod{#3}\edef\@@clr{#4}%
+ \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi
+ \if at tempswa
+ \XC at let@Nc\@@tmp{XC at cnv@\@@mod @compl}%
+ \ifx\@@tmp\relax \expandafter\XC at calc@\@@clr,,,,:C\else
+ \expandafter\@@tmp\@@clr,\fi
+ \let\@@clr\@@tmp
+ \fi}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\@xcolor@@#1!#2!#3!#4!#5\@nil
+ {\dimen@\@ifxempty{#1}{100}{#1}\p@
+ \edef\@@mix{\@ifxempty{#2}{white}{#2}}%
+ \ifdim\dimen@=100\p@
+ \expandafter\XC at postfix\@@mix]\relax
+ \else\ifdim\dimen@=\z@
+ \extractcolorspecs\@@mix\@@mod\@@clr
+ \else
+ \XC at let@Nc\@@tmp{XC at clr@\@@mod @\@@mix}%
+ \ifx\@@tmp\relax
+ \extractcolorspec\@@mix\@@tmp
+ \ifx\@@mod\XC at mod@gray
+ \edef\@@mod{\expandafter\@firstoftwo\@@tmp}%
+ \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
+ \convertcolorspec\XC at mod@gray\@@clr\@@mod\@@clr
+ \else
+ \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
+ \fi
+ \else
+ \ifx\@@mod\XC at mod@hsb\expandafter\XC at extract@hue\@@clr:\@@hue\fi
+ \fi
+ \XC at inflate\@@mod\@@clr\@@tmp\@@tmp
+ \expandafter\XC at mix\@@tmp,\@@clr
+ \fi\fi
+ \@ifxempty{#3}%
+ {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}%
+ {\@xcolor@@#3!#4!#5\@nil}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split}
+% \marg{ext expr}\\
+% Split \Meta{ext expr} into all of its components, do the necessary calculations, and save the model of the resulting color in |\@@mod| and the parameters in |\@@clr|.
+% Note: |\XC at split| opens a group which has to be closed afterwards by |\endgroup|.
+% \begin{macrocode}
+\def\XC at split#1%
+ {\begingroup\XC at edef\@@tmp{#1}\expandafter\XC at split@i\@@tmp>>\@nnil}
+% \end{macrocode}
+%
+% \begin{macro}{\XC at split@i}
+% Separate first part of expression chain and apply function(s) afterwards as requested.
+% \begin{macrocode}
+\def\XC at split@i#1>%
+ {\def\@@tmp{#1}\XC at split@ii#1:\@nil \XC at func}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@ii}
+% Check whether it is an \emph{extended} or \emph{standard} color expression.
+% \begin{macrocode}
+\def\XC at split@ii#1:#2\@nil
+ {\@ifxempty{#2}{\XC at split@vi}{\XC at split@iii#1,,:#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@iii}
+% Initialisation for extended color expressions.
+% The magic \Meta{div} is either given as second argument, or calculated as the sum of all weights.
+% \begin{macrocode}
+\def\XC at split@iii#1,#2,#3:#4:%
+ {\edef\XC@@mod{#1}\let\@tempa\@empty
+ \ifx,#2,\XC@@tsttrue\@tempdima\z@\else\XC@@tstfalse\@tempdima#2\p@\fi
+ \XC at split@iv#4;,;}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@iv}
+% \marg{expr}\marg{dec}\\
+% Step through the list of \Meta{expr},\Meta{dec} pairs.
+% Add \Meta{dec} to the sum of weights (in order to calculate the ultimate \Meta{div}) and append pair information to |\@tempa| command.
+% At the end of the list, execute |\@tempa| and map resulting parameter vector into unit cube.
+% Finally, |\@@mod| and |\@@clr| contain the desired information about color model and parameters.
+% \begin{macrocode}
+\def\XC at split@iv#1,#2;%
+ {\@ifxempty{#1}%
+ {\let\XC@@clr\@empty \@tempa \expandafter\XC at calc@\XC@@clr,,,,:U%
+ \let\@@mod\XC@@mod \let\@@clr\@@tmp}
+ {\XC at append\@tempa{\XC at split@v{#1}{#2}}%
+ \ifXC@@tst\advance\@tempdima#2\p@\fi
+ \XC at split@iv}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@v}
+% \marg{expr}\marg{dec}\\
+% Extract color specification from \Meta{expr}, convert to target model, multiply the resulting vector by the quotient of \Meta{dec} and \Meta{div}, add that vector to the overall parameter vector.
+% \begin{macrocode}
+\def\XC at split@v#1#2%
+ {\def\@@tmp{#1}\XC at split@vi
+ \ifx\@@mod\XC@@mod\else
+ \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr
+ \fi
+ \dimen@#2\p@ \rdivide\dimen@\@tempdima
+ \edef\@@scl{\strip at pt\dimen@}%
+ \expandafter\XC at calc@\@@clr,,,,:S%
+ \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else
+ \XC at inflate\XC@@mod\XC@@clr\@@tmp\@@tmp
+ \expandafter\XC at add\@@tmp,\XC@@clr
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@vi}
+% Start splitting process for standard color expression.
+% \begin{macrocode}
+\def\XC at split@vi{\count@\z@ \expandafter\XC at split@vii\@@tmp!\@nil}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@vii}
+% Count number of `-' signs at the beginning of the string.
+% \begin{macrocode}
+\def\XC at split@vii#1%
+ {\ifx#1-\advance\count@\@ne\expandafter\XC at split@vii
+ \else\expandafter\XC at split@viii\expandafter#1\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at split@viii}
+% Extract \Meta{name} and \Meta{mix expr} part of color expression.
+% Delegate control to |\@xcolor@|.
+% \begin{macrocode}
+\def\XC at split@viii#1!#2\@nil
+ {\edef\@@nam{#1}\edef\@@mix{#2}%
+ \ifodd\count@\@tempswatrue\else\@tempswafalse\fi
+ \@ifundefinedcolor\@@nam
+ {\c at lor@error{`\@@nam'}\def\@@nam{black}}{}%
+ \let\xcolor@\@xcolor@\@nameuse{\string\color@\@@nam}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XC at postfix}
+% Examine the postfix of a color expression and derive the actions to be taken for color series.
+% \begin{macrocode}
+\def\XC at postfix#1#2]#3\relax
+ {\begingroup
+ \if[#1\@tempcnta#2\relax\XC at stepabs\@@nam
+ \else\@tempcnta\z@
+ \@tfor\@@tok:=#1#2\do
+ {\if+\@@tok\advance\@tempcnta\@ne
+ \else\if-\@@tok\advance\@tempcnta\m at ne
+ \else\@tempcnta\z@\expandafter\@break at tfor\fi\fi}%
+ \ifnum\@tempcnta=\z@\relax\else\XC at step\@@nam\fi
+ \let\@@tmp\@empty
+ \fi\expandafter\endgroup\@@tmp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at func}
+% \marg{function}|,{|\Meta[1]{arg}|,...,{|\Meta[n]{arg}|}>...\@nnil>|\\
+% General macro to handle color functions.
+% The number of arguments depends on the function.
+% Multiple consecutive functions may be applied.
+% Color model and specifications are input and output via |\@@mod| and |\@@clr|.
+% \begin{macrocode}
+\def\XC at func#1>{\@ifxempty{#1}{\remove at to@nnil}{\XC at fun@#1,>\XC at func}}
+\def\XC at fun@#1,#2>{\@nameuse{XC at func@#1}#2,,>}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at func@wheel}
+% \begin{macro}{\XC at func@twheel}
+% \marg{angle}|,|\marg{full circle}|,>|\\
+% Calculate color wheel position according to \Model{Hsb} or \Model{tHsb} model: \emph{hue} is rotated by \meta{angle} relative to \meta{full circle}.
+% The latter value is taken from |\rangeHsb| if left empty.
+% Finally, |\@@mod| is changed to \Model{hsb}.
+% \begin{macrocode}
+\def\XC at func@wheel#1,#2,#3>{\XC at func@wh at el{#1}{#2}0}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at func@twheel#1,#2,#3>{\XC at func@wh at el{#1}{#2}1}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at func@wh at el#1#2#3%
+ {\convertcolorspec\@@mod\@@clr
+ {\ifcase#3 \XC at mod@Hsb\or\XC at mod@tHsb\fi}\@@clr
+ \expandafter\XC at extract@hue\@@clr:\@@hue \dimen@#1\p@
+ \@ifxempty{#2}{}%
+ {\rdivide\dimen@{#2}\lshift\dimen@
+ \dimen@\rangeHsb\dimen@\rshift\dimen@}%
+ \advance\dimen@\@@hue\p@ \rdivide\dimen@\rangeHsb
+ \edef\@@hue{\strip at pt\dimen@}\XC at calcU\@@hue\@@hue
+ \ifcase#3
+ \expandafter\XC at replace@hue\@@clr:\@@hue,\@@clr
+ \or
+ \XC at c@lcS\rangeHsb{}\@@hue\@@hue
+ \expandafter\XC at replace@hue\@@clr:\@@hue,\@@clr
+ \convertcolorspec\XC at mod@tHsb\@@clr\XC at mod@hsb\@@clr
+ \fi
+ \let\@@mod\XC at mod@hsb}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XC at display}
+% Write information to log file and display the current color.
+% \begin{macrocode}
+\def\XC at display
+ {\XC at bcolor\XC at let@cN{\string\color at .}\XC at current@color
+ \ifnum\XC at type{.}=1
+ \PackageWarning{xcolor}{Incompatible color definition}\else
+ \ifnum\XC at tracing>2
+ \begingroup \let\xcolor@\@empty \def\@nil{\string\@nil}%
+ \PackageInfo{xcolor}{Setting color `\XC at current@color'}%
+ \endgroup
+ \fi\fi
+ \XC at mcolor\set at color\XC at ecolor\ignorespaces}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at bcolor}
+% \begin{macro}{\XC at mcolor}
+% \begin{macro}{\XC at ecolor}
+% Hooks that may be used to execute additional code within |\XC at display| immediately before/after a color is being displayed.
+% Note that |\XC at bcolor| can use the current color information given by |\current at color| and |\XC at current@color| if further manipulation of the color is necessary.
+% These hooks are intended for class/package writers and not used by \XC{} itself.
+% In order to prevent unwanted side effects, please make sure that all internal \XC{} variables are restored properly at the end of |\XC at display|.
+% \begin{macrocode}
+\let\XC at bcolor\relax
+\let\XC at mcolor\relax
+\let\XC at ecolor\relax
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Border colors for hyperlinks}
+%
+% \begin{macro}{\XC at bordercolor}
+% \marg{type}\marg{color}\\
+% Basic macro to transform \Meta{color} into the format required by \Package{hyperref}.
+% Here, \Meta{type} corresponds to the key `x\Meta{type}bordercolor'.
+% \begin{macrocode}
+\def\XC at bordercolor#1#2%
+ {\extractcolorspec{#2}\XC@@tmp
+ \expandafter\convertcolorspec\XC@@tmp\XC at mod@rgb\XC@@tmp
+ \expandafter\edef\csname @#1bordercolor\endcsname
+ {\expandafter\XC at strip@comma\XC@@tmp,\@nnil}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at pdfborder}
+% \Meta[1]{number}| |\Meta[2]{number}| |\Meta[3]{number}|\relax|\\
+% Basic macro to transform a pdfborder expression into a suitable format for \Program{dvips} with a resolution of 8000~dpi.
+% \begin{macrocode}
+\def\XC at pdfborder#1 #2 #3\relax
+ {\def\@@scl{80}\XC at calc@#1,#2,#3,,:S%
+ \edef\@pdfborder{\expandafter\XC at strip@comma\@@tmp,\@nnil}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Colored rows in tables}
+%
+% The following definitions make only sense if the \Package{colortbl} package has been loaded by the \Option{table} option.
+% \begin{macrocode}
+\@ifXCopt{table}{%
+% \end{macrocode}
+%
+% \begin{macro}{\rowcolors}
+% \begin{macro}{\rowcolors*}
+% \oarg{commands}\marg{row}\marg{odd-row color}\marg{even-row color}\\
+% Defines alternating colors for the next tabular environment.
+% Starting with row \Meta{row}, odd and even rows get their respective colors.
+% The color arguments may also be left empty (= no color).
+% Optional commands may be |\hline| or |\noalign|\marg{stuff}.
+% \begin{macrocode}
+ \def\rowcolors
+ {\@ifstar{\@rowcmdfalse\rowc at lors}{\@rowcmdtrue\rowc at lors}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \def\rowc at lors{\@testopt{\rowc at l@rs}{}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \def\rowc at l@rs[#1]#2#3#4%
+ {\global\rownum=\z@
+ \global\@rowcolorstrue
+ \@ifxempty{#3}%
+ {\def\@oddrowcolor{\@norowcolor}}%
+ {\def\@oddrowcolor{\gdef\CT at row@color{\CT at color{#3}}}}%
+ \@ifxempty{#4}%
+ {\def\@evenrowcolor{\@norowcolor}}%
+ {\def\@evenrowcolor{\gdef\CT at row@color{\CT at color{#4}}}}%
+ \if at rowcmd
+ \def\@rowcolors
+ {#1\if at rowcolors
+ \noalign{\relax\ifnum\rownum<#2\@norowcolor\else
+ \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}%
+ \fi}%
+ \else
+ \def\@rowcolors
+ {\if at rowcolors
+ \ifnum\rownum<#2\noalign{\@norowcolor}\else
+ #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi
+ \fi}%
+ \fi
+ \CT at everycr{\@rowc at lors\the\everycr}%
+ \ignorespaces}
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \def\@rowc at lors{\noalign{\global\advance\rownum\@ne}\@rowcolors}
+ \let\@rowcolors\@empty
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\showrowcolors}
+% \begin{macro}{\hiderowcolors}
+% Switch coloring mode on/off.
+% \begin{macrocode}
+ \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors}
+ \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}}
+ \def\@norowcolor{\global\let\CT at row@color\relax}
+ \@norowcolor
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\if at rowcolors}
+% \begin{macro}{\if at rowcmd}
+% \begin{macrocode}
+ \newif\if at rowcolors
+ \newif\if at rowcmd
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\rownum}
+% Reserve a counter register.
+% \begin{macrocode}
+ \@ifundefined{rownum}{\newcount\rownum}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\CT at extract}
+% This is a fix for active `!' character to enable color expressions; it is apparently only necessary for |\columncolor| commands within |\multicolumn|.
+% \begin{macrocode}
+ \def\CT at extract#1\columncolor#2#3\@nil
+ {\if!#2%
+ \let\CT at column@color\@empty
+ \else
+ \if[#2%
+ \expandafter\CT at extractb
+ \else
+ \XC at edef\XC@@tmp{#2}%
+ \edef\CT at column@color{\noexpand\CT at color{\XC@@tmp}}%
+ \expandafter\CT at extractd
+ \fi
+ {#1}#3\@nil
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% End of conditional code for colored tables.
+% \begin{macrocode}
+}{}
+% \end{macrocode}
+%
+%
+% \subsubsection{Color information}
+%
+% \begin{macro}{\extractcolorspec}
+% \marg{color}\marg{cmd}\\
+% Extracts the color specification of \Meta{color} and puts it into \Meta{cmd}; equivalent to
+% |\def|\Meta{cmd}|{|\marg{model}\marg{spec}|}|.
+% \begin{macrocode}
+\def\extractcolorspec#1#2%
+ {\XC at split{#1}\edef\@@tmp{{\@@mod}{\@@clr}}\aftergroupdef#2\@@tmp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\extractcolorspecs}
+% \marg{color}\marg{model-cmd}\marg{color-cmd}\\
+% Extracts the color specification of \Meta{color} and puts it into \Meta{model-cmd} and \Meta{color-cmd}, respectively.
+% \begin{macrocode}
+\def\extractcolorspecs#1#2#3%
+ {\extractcolorspec{#1}#3%
+ \edef#2{\expandafter\@firstoftwo#3}%
+ \edef#3{\expandafter\@secondoftwo#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at extract@hue}
+% Extract first entry of comma-separated value list.
+% \begin{macrocode}
+\def\XC at extract@hue#1,#2:#3{\edef#3{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at extract@hue}
+% Change first entry of comma-separated value list.
+% \begin{macrocode}
+\def\XC at replace@hue#1,#2:#3,#4{\edef#4{#3,#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ifundefinedcolor}
+% \marg{name}\marg{undefined}\marg{defined}\\
+% Checks whether \Meta{name} is a defined color name and executes the respective code.
+% \begin{macrocode}
+\def\@ifundefinedcolor#1{\@ifundefined{\string\color@#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\@ifundefinedmodel}
+% \marg{model}\marg{undefined}\marg{defined}\\
+% Checks whether \Meta{model} is a defined color model and executes the respective code.
+% \begin{macrocode}
+\def\@ifundefinedmodel#1{\@ifundefined{color@#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at type}
+% \marg{name}\\
+% Determines the \emph{type} of color \Meta{name}, expressed as a natural number (here, $t_1,t_2,\dots$ denote the tokens of |\\color@|\Meta{name}):
+% \begin{center}
+% \begin{tabular}{cll}
+% \em type& \em description& \em conditions\\
+% 0 & undefined\\
+% 1 & unidentified& $t_1\neq|\xcolor@|$\\
+% 2 & named & $t_1=|\xcolor@|\quad t_2\neq\emptyset$\\
+% 3 & declared & $t_1=|\xcolor@|\quad t_2=\emptyset\quad t_3\neq\emptyset$\\
+% 4 & undeclared & $t_1=|\xcolor@|\quad t_2=\emptyset\quad t_3=\emptyset$\\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+\def\XC at type#1%
+ {\expandafter\expandafter\expandafter\XC at typ@
+ \csname\string\color@#1\endcsname\@empty\@empty\@empty\XC@@}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at typ@#1#2#3#4\XC@@
+ {\ifx#1\relax 0\else
+ \ifx#1\xcolor@
+ \ifx$#2$%
+ \ifx$#3$4\else3\fi\@gobbletwo
+ \else2\fi\@gobbletwo
+ \else1\fi
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at info}
+% \marg{color}\marg{cmd}\\
+% Determines the \emph{type} of color \Meta{color}, expressed as a natural number; the result is stored in \Meta{cmd}.
+% \begin{center}
+% \begin{tabular}{cll}
+% \em type& \em description& \em examples\\
+% 0 & implicit name& `|.|'\\
+% 1 & explicit name& `|red|', `|green|'\\
+% 2 & standard color expression& `|-red|', `|green!50|'\\
+% 3 & extended color expression& `|rgb:-red,1;green!50,2|'\\
+% 4 & color function expression& `|rgb:-red,1;green!50,2>wheel,30|'\\
+% \end{tabular}
+% \end{center}
+% \begin{macrocode}
+\def\XC at info#1#2%
+ {\XC at edef#2{#1}%
+ \if.#2\def#2{0}\else\expandafter\in@\expandafter>\expandafter{#2}%
+ \ifin@\def#2{4}\else\expandafter\in@\expandafter:\expandafter{#2}%
+ \ifin@\def#2{3}\else\expandafter\in@\expandafter!\expandafter{#2}%
+ \ifin@\def#2{2}\else\edef#2{\noexpand\in@{/-}{/#2}}#2%
+ \edef#2{\ifin at 2\else1\fi}\fi\fi\fi\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\tracingcolors}
+% Put the integer following |\tracingcolors| into the macro |\XC at tracing|.
+% \begin{macrocode}
+\def\tracingcolors{\begingroup\afterassignment\XC at tracingcolors\count@}
+\def\XC at tracingcolors{\aftergroupdef\XC at tracing{\the\count@}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\tracingcolors=0
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at logdef}
+% \marg{name}\\
+% Issue a log file information if color \Meta{name} is being (re)defined.
+% \begin{macrocode}
+\def\XC at logdef#1%
+ {\ifnum\XC at tracing>1
+ \@ifundefinedcolor{#1}%
+ {\ifnum\XC at tracing>2
+ \PackageInfo{xcolor}{Defining color `#1'}%
+ \fi}%
+ {\PackageInfo{xcolor}{Redefining color `#1'}}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Color testing}
+%
+% \begin{environment}{testcolors}
+% \oarg{num models}\\
+% This is a simple tabular environment in order to test (display) colors in different models, showing both the visual result and the model-specific parameters.
+% The optional \Meta{num models} argument is a comma-separated list of \emph{numerical} color models.
+% \begin{macrocode}
+\newenvironment*{testcolors}[1][rgb,cmyk,hsb,HTML]%
+ {\let\@@nam\@empty\count@\z@
+ \@for\@@tmp:=#1\do
+ {\advance\count@\@ne
+ \XC at sdef\@@tmp{\@@tmp}\edef\@@nam{\@@nam{\@@tmp}}}%
+ \edef\@@num{\the\count@}%
+% \end{macrocode}
+%
+% Check whether the actual font belongs to a set of OT1-encoded monospaced fonts in order to display |>| instead of |\textgreater|.
+% \begin{macro}{\XC@@gt}
+% \begin{macrocode}
+ \def\XC@@gt{\textgreater}\def\@@tmp{OT1}%
+ \ifx\f at encoding\@@tmp
+ \@expandtwoargs\in@{,\f at family,}{,cmtt,pcr,}%
+ \ifin@\def\XC@@gt{>}\fi
+ \fi
+% \end{macrocode}
+% \end{macro}
+%
+% Disable prologue and tracing commands for temporary color definitions.
+% \begin{macrocode}
+% \XC@@xcpfalse \ifnum\XC at tracing>1 \def\XC at tracing{1}\fi
+ \def\XC@@xcp@{-1}\ifnum\XC at tracing>1 \def\XC at tracing{1}\fi
+% \end{macrocode}
+%
+% \begin{macro}{\testcolor}
+% \marg{color}\\
+% \oarg{model-list}\marg{spec-list}\\
+% Each |\testcolor| command generates a table row.
+% If the column-model matches the model of the color in question, its parameters are underlined.
+% \begin{macrocode}
+ \def\testcolor{\@testopt{\@testcolor}{}}%
+ \def\@testcolor[##1]##2%
+ {\XC at mdef\@@mod{##1}\XC at edef\@@clr{##2}%
+ \ifx\@@mod\@empty
+ \let\@@arg\@@clr\XC at replace\@@arg>\XC@@gt\else
+ \edef\@@arg{[\@@mod]{\@@clr}}\XC at definecolor[]{*}\@@mod\@@clr
+ \def\@@clr{*}\fi
+ \XC at append\@@arg{&}\extractcolorspecs\@@clr\@@mod\@@clr
+ \@testc at lor}%
+% \end{macrocode}
+% \end{macro}
+%
+% Common loop macro for table head and |\testcolor| rows.
+% Note that this command is only available within the |testcolors| environment.
+% \begin{macrocode}
+ \def\@testc at lor
+ {\count@\z@
+ \expandafter\@tfor\expandafter\@@tmp\expandafter:\expandafter=\@@nam\do
+ {\ifx\@@clr\@empty
+ \edef\@@cmd{\noexpand\textbf{\@@tmp}}%
+ \else
+ \convertcolorspec\@@mod\@@clr\@@tmp\@@cmd
+ \edef\@@cmd
+ {\noexpand\@testc at l@r{\@@tmp}{\@@cmd}%
+ \ifx\@@mod\@@tmp\noexpand\underline\fi
+ {\expandafter\XC at strip@comma\@@cmd,,\@nnil}}%
+ \fi
+ \expandafter\XC at append\expandafter\@@arg\expandafter{\@@cmd}%
+ \advance\count@\@ne
+ \ifnum\count@=\@@num\XC at append\@@arg{\\}\else\XC at append\@@arg{&}\fi}%
+ \@@arg}%
+% \end{macrocode}
+%
+% Display color sample box:
+% \begin{macrocode}
+ \def\@testc at l@r##1##2%
+ {\fboxsep\z@\fbox{\colorbox[##1]{##2}{\phantom{XX}}} }%
+% \end{macrocode}
+%
+% Now start the table:
+% \begin{macrocode}
+ \tabular{@{}l*{\@@num}{l}@{}}%
+ \def\@@arg{\textbf{color}& }\let\@@clr\@empty\@testc at lor}%
+% \end{macrocode}
+%
+% End of environment:
+% \begin{macrocode}
+ {\endtabular\ignorespacesafterend}
+% \end{macrocode}
+% \end{environment}
+%
+%
+% \subsubsection{Extra groups}
+% Turning on extra groups in the standard \LaTeX\ commands, so that color commands are scoped corectly.
+%
+% Like |\normalcolor|, the following five commands are defined in the kernel, with empty definitions (|\relax|).
+% This means that they can be used to make macros in packages `color safe'.
+% The commands will not have any effect unless a user also uses a color package, when the `active definitions' here will take effect and keep color commands correctly scoped.
+%
+% \begin{macro}{\color at setgroup}
+% This is to be used in contexts (e.g., `lrbox') where text is to be saved and used after some other, unknown, text that may contain color commands.
+% A matching |\color at endgroup| should be used at the end of the text.
+% \begin{macrocode}
+\def\color at setgroup{\begingroup\set at color}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at begingroup}
+% This is to be used at the start of contexts that may contain color commands, but where it is not necessary to save the current color.
+% Examples of this are in the box commands of \File{ltboxes.dtx} where user-supplied text is saved internally in a box between |\color at begingroup|, |\color at endgroup|, but the box is used before any other color commands could intervene.
+% A matching |\color at endgroup| should be used at the end of the text.
+% \begin{macrocode}
+\let\color at begingroup\begingroup
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at endgroup}
+% To be used to close the `group' started by one of the above two commands.
+% The |\endgraf| in its definition is required in the case of groups of text in vertical `par' mode, but doesn't do any harm in horizontal `LR' contexts.
+% \begin{macrocode}
+\def\color at endgroup{\endgraf\endgroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at hbox}
+% To be used to open a `colored hbox'
+% \begin{macrocode}
+\def\color at hbox{\hbox\bgroup\color at begingroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at vbox}
+% To be used to open a `colored hbox'
+% \begin{macrocode}
+\def\color at vbox{\vbox\bgroup\color at begingroup}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at endbox}
+% To be used to close a `colored (h/v)box'
+% \begin{macrocode}
+\def\color at endbox{\color at endgroup\egroup}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Color calculation}
+%
+% \subsubsection{Color conversion}
+%
+% \begin{macro}{\convertcolorspec}
+% \marg{source model}\marg{spec}\marg{target model}\marg{cmd}\\
+% General color conversion command.
+% \begin{macrocode}
+\def\convertcolorspec#1#2#3#4%
+ {\begingroup
+ \XC at sdef\sm{#1}\XC at sdef\tm{#3}\edef\@@tmp{#2}%
+ \ifx\sm\XC at mod@named\extractcolorspecs\@@tmp\sm\@@tmp\fi
+ \ifx\sm\tm\else\csname XC at cnv@\sm\expandafter\endcsname\@@tmp,\fi
+ \aftergroupdef#4\@@tmp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at coremodel}
+% \marg{model-cmd}\marg{color-cmd}\\
+% Convert color, given by \marg{model-cmd} and \marg{color-cmd}, into parametrisation in one of the \emph{core} models.
+% The result is again saved in \marg{model-cmd} and \marg{color-cmd}.
+% \begin{macrocode}
+\def\XC at coremodel#1#2%
+ {\XC at ifxcase#1%
+ {\XC at mod@RGB {\convertcolorspec#1#2\XC at mod@rgb#2\let#1\XC at mod@rgb}%
+ \XC at mod@HTML{\convertcolorspec#1#2\XC at mod@rgb#2\let#1\XC at mod@rgb}%
+ \XC at mod@Hsb {\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@tHsb{\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@HSB {\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@Gray{\convertcolorspec#1#2\XC at mod@gray#2\let#1\XC at mod@gray}%
+ \XC at mod@wave{\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@named{}%
+ \XC at mod@ps{}}%
+ {\expandafter\XC at calc@#2,,,,:N\let#2\@@tmp}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@rgb}
+% \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,|
+% \begin{macrocode}
+\def\XC at cnv@rgb#1,#2,#3,%
+ {\XC at ifxcase\tm
+ {\XC at mod@cmy {\XC at calc@#1,#2,#3,,:C}%
+ \XC at mod@cmyk
+ {\XC at calc@#1,#2,#3,,:C\expandafter\XC at cnv@cmy at cmyk\@@tmp,}%
+ \XC at mod@RGB {\edef\@@scl{\rangeRGB}\XC at calc@#1,#2,#3,,:M}%
+ \XC at mod@HTML{\edef\@@scl{\@cclv}\XC at calc@#1,#2,#3,,:M%
+ \expandafter\XC at calc@\@@tmp,,:H%
+ \expandafter\XC at cnv@rgb at HTML\@@tmp,}%
+ \XC at mod@gray{\XC at cnv@rgb at gray#1,#2,#3,}%
+ \XC at mod@Gray{\XC at cnv@rgb at gray#1,#2,#3,\XC at cnv@gray\@@tmp,}}%
+ {\XC at cnv@rgb at hsb#1,#2,#3,\XC at cnv@hsb@}}
+% \end{macrocode}
+%
+% \begin{macro}{\XC at cnv@rgb@}
+% \begin{macrocode}
+\def\XC at cnv@rgb@
+ {\ifx\tm\XC at mod@rgb\else\expandafter\XC at cnv@rgb\@@tmp,\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@rgb at hsb}
+% \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,|
+% \begin{macrocode}
+\def\XC at cnv@rgb at hsb#1,#2,#3,%
+ {\count@\z@
+ \ifdim#2\p@>#1\p@ \else\advance\count at 4 \fi
+ \ifdim#3\p@>#2\p@ \else\advance\count at 2 \fi
+ \ifdim#1\p@>#3\p@ \else\advance\count at 1 \fi
+ \ifcase\count@\or
+ \XC at c@v at rgb@hsb{#3}{#2}{#1}3{}\or
+ \XC at c@v at rgb@hsb{#2}{#1}{#3}1{}\or
+ \XC at c@v at rgb@hsb{#2}{#3}{#1}3-\or
+ \XC at c@v at rgb@hsb{#1}{#3}{#2}5{}\or
+ \XC at c@v at rgb@hsb{#3}{#1}{#2}5-\or
+ \XC at c@v at rgb@hsb{#1}{#2}{#3}1-\or
+ \def\@tempa{0}\def\@tempb{0}\XC at calcN{#3}\@tempc
+ \fi
+ \edef\@@tmp{\@tempa,\@tempb,\@tempc}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at c@v at rgb@hsb}
+% \marg{max}\marg{med}\marg{min}\marg{const}\marg{sign}
+% \begin{macrocode}
+\def\XC at c@v at rgb@hsb#1#2#3#4#5%
+ {\XC at calcN{#1}\@tempc \llshiftset\dimen@{#1}%
+ \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@
+ \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@
+ \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}%
+ \edef\@tempa{\ifdim\@tempdima>\p at 1\else\strip at pt\@tempdima\fi}%
+ \rdivide\@tempdimb\dimen@
+ \edef\@tempb{\strip at pt\@tempdimb}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@rgb at gray}
+% \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,|
+% \begin{macrocode}
+\def\XC at cnv@rgb at gray#1,#2,#3,%
+ {\llshiftset\dimen@{#1}\@tempdima30\dimen@
+ \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@
+ \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@
+ \rrshift\@tempdima \rdivide\@tempdima{100}%
+ \edef\@@tmp{\strip at pt\@tempdima}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@rgb at HTML}
+% \Meta{red}|,|\Meta{green}|,|\Meta{blue}|,|
+% \begin{macrocode}
+\def\XC at cnv@rgb at HTML#1,#2,#3,%
+ {\edef\@@tmp{#1#2#3}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@cmy}
+% \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|
+% \begin{macrocode}
+\def\XC at cnv@cmy#1,#2,#3,%
+ {\XC at ifxcase\tm
+ {\XC at mod@cmyk{\XC at cnv@cmy at cmyk#1,#2,#3,}%
+ \XC at mod@gray{\XC at cnv@rgb at gray#1,#2,#3,\XC at calcC\@@tmp\@@tmp}%
+ \XC at mod@Gray{\XC at cnv@rgb at gray#1,#2,#3,\XC at calcC\@@tmp\@@tmp
+ \XC at cnv@gray\@@tmp,}}%
+ {\XC at calc@#1,#2,#3,,:C\XC at cnv@rgb@}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@cmy at cmyk}
+% \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\\
+% This transformation includes linear \emph{undercolor-removal} and \emph{black-generation}, as specified by the 4-dimensional parameter vector |\adjustUCRBG|.
+% \begin{macrocode}
+\def\XC at cnv@cmy at cmyk#1,#2,#3,%
+ {\edef\@@scl
+ {\ifdim#1\p@<#2\p@
+ \ifdim#1\p@<#3\p@ #1\else #3\fi \else
+ \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}%
+ \expandafter\XC at calc@\adjustUCRBG,:S%
+ \expandafter\XC at c@v at cmy@cmyk\@@tmp,#1,#2,#3,}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at c@v at cmy@cmyk#1,#2,#3,#4,#5,#6,#7,%
+ {\XC at add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}%
+ \expandafter\XC at calc@\@@tmp,:N}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@cmyk}
+% \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\Meta{black}|,|
+% \begin{macrocode}
+\def\XC at cnv@cmyk#1,#2,#3,#4,%
+ {\XC at ifxcase\tm
+ {\XC at mod@gray{\XC at cnv@rgb at gray#1,#2,#3,\edef\@@arg{#4}%
+ \XC at calcT\@@tmp\@@tmp \XC at calcC\@@tmp\@@tmp}%
+ \XC at mod@Gray{\XC at cnv@rgb at gray#1,#2,#3,\edef\@@arg{#4}%
+ \XC at calcT\@@tmp\@@tmp \XC at calcC\@@tmp\@@tmp \XC at cnv@gray\@@tmp,}}%
+ {\XC at cnv@cmyk at cmy#1,#2,#3,#4,%
+ \ifx\tm\XC at mod@cmy\else\expandafter\XC at cnv@cmy\@@tmp,\fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@cmyk at cmy}
+% \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\Meta{black}|,|
+% \begin{macrocode}
+\def\XC at cnv@cmyk at cmy#1,#2,#3,#4,%
+ {\edef\@@arg{#4}\XC at calc@#1,#2,#3,,:T}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@hsb}
+% \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@hsb#1,#2,#3,%
+ {\XC at ifxcase\tm
+ {\XC at mod@Hsb {\XC at cnv@hsb at Hsb#1,#2,#3,}%
+ \XC at mod@tHsb{\XC at cnv@hsb at Hsb#1,#2,#3,\expandafter\XC at cnv@Hsb\@@tmp,}%
+ \XC at mod@HSB {\edef\@@scl{\rangeHSB}\XC at calc@#1,#2,#3,,:M}}%
+ {\XC at cnv@hsb at rgb#1,#2,#3,\XC at cnv@rgb@}}
+% \end{macrocode}
+%
+% \begin{macro}{\XC at cnv@hsb@}
+% \begin{macrocode}
+\def\XC at cnv@hsb@
+ {\ifx\tm\XC at mod@hsb\else\expandafter\XC at cnv@hsb\@@tmp,\fi}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@hsb at rgb}
+% \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@hsb at rgb#1,#2,#3,%
+ {\llshiftset\dimen@{#1}\dimen at 6\dimen@ \rrshift\dimen@
+ \afterassignment\dimen@\count@=\the\dimen@
+ \edef\@@tmp{\strip at pt\dimen@}%
+ \ifodd\count@\else\XC at calcC\@@tmp\@@tmp\fi
+ \edef\@@tmp
+ {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or
+ 1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}%
+ \edef\@@scl{#2}\expandafter\XC at calc@\@@tmp,,:S%
+ \expandafter\XC at calc@\@@tmp,,:C%
+ \edef\@@scl{#3}\expandafter\XC at calc@\@@tmp,,:S%
+ \expandafter\XC at calc@\@@tmp,,:N}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@hsb at Hsb}
+% \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@hsb at Hsb#1,#2,#3,%
+ {\XC at c@lcS\rangeHsb{,#2,#3}{#1}\@@tmp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@gray}
+% \Meta{gray}|,|
+% \begin{macrocode}
+\def\XC at cnv@gray#1,%
+ {\XC at ifxcase\tm
+ {\XC at mod@rgb {\XC at calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}%
+ \XC at mod@cmy {\XC at calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}%
+ \XC at mod@cmyk{\XC at calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}%
+ \XC at mod@RGB {\edef\@@scl{\rangeRGB}\XC at calcM{#1}\@@tmp
+ \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}%
+ \XC at mod@HTML{\edef\@@scl{\@cclv}\XC at calcM{#1}\@@tmp
+ \XC at calcH\@@tmp\@@tmp \edef\@@tmp{\@@tmp\@@tmp\@@tmp}}%
+ \XC at mod@HSB {\edef\@@scl{\rangeHSB}\XC at calcM{#1}\@@tmp
+ \edef\@@tmp{0,0,\@@tmp}}%
+ \XC at mod@Gray{\edef\@@scl{\rangeGray}\XC at calcM{#1}\@@tmp}}%
+ {\XC at calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@RGB}
+% \Meta{Red}|,|\Meta{Green}|,|\Meta{Blue}|,|
+% \begin{macrocode}
+\def\XC at cnv@RGB#1,#2,#3,%
+ {\edef\@@scl{\rangeRGB}\XC at calc@#1,#2,#3,,:D\XC at cnv@rgb@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@HTML}
+% \Meta{RRGGBB}|,|
+% \begin{macrocode}
+\def\XC at cnv@HTML#1,%
+ {\edef\@@tmp{\expandafter\@hex at Hex#1\relax}\expandafter\XC at cnv@HTML@\@@tmp
+ \edef\@@scl{\@cclv}\expandafter\XC at calc@\@@tmp,,:D\XC at cnv@rgb@}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at cnv@HTML@#1#2#3#4#5#6%
+ {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@Hsb}
+% \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@Hsb#1,#2,#3,%
+ {\ifx\tm\XC at mod@tHsb\XC at cnv@@Hsb#1,#2,#3,\XC at cnv@Hsb@
+ \else\XC at cnv@Hsb at hsb#1,#2,#3,\XC at cnv@hsb@\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@Hsb at hsb}
+% \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@Hsb at hsb#1,#2,#3,%
+ {\XC at c@lcD\rangeHsb{,#2,#3}{#1}\@@tmp}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@@Hsb}
+% \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,|\marg{cmd}
+% \begin{macrocode}
+\def\XC at cnv@@Hsb#1,#2,#3,#4%
+ {\dimen@\rangeHsb\p@ \advance\dimen@\p@ \edef\@@tmp{\strip at pt\dimen@}%
+ \edef\@@tmp{0,0;\rangetHsb;\rangeHsb,\rangeHsb;\@@tmp,\@@tmp;}%
+ \dimen@#1\p@ \expandafter#4\@@tmp\@nnil
+ \edef\@@tmp{\strip at pt\dimen@,#2,#3}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@Hsb@}
+% \Meta{x}|,|\Meta{y}|;|\Meta{x'}|,|\Meta{y'}|;|
+% \begin{macrocode}
+\def\XC at cnv@Hsb@#1,#2;#3,#4;%
+ {\ifdim\dimen@<#4\p@
+ \@tempdima#3\p@ \advance\@tempdima-#1\p@
+ \@tempdimb#4\p@ \advance\@tempdimb-#2\p@
+ \rdivide\@tempdima\@tempdimb
+ \advance\dimen at -#2\p@ \rmultiply\dimen@{\strip at pt\@tempdima}%
+ \advance\dimen@#1\p@ \expandafter\remove at to@nnil
+ \else
+ \def\@@tmp{\XC at cnv@Hsb@#3,#4;}\expandafter\@@tmp
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@tHsb}
+% \Meta{hue\Circ}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@tHsb#1,#2,#3,%
+ {\XC at cnv@@Hsb#1,#2,#3,\XC at cnv@tHsb@
+ \ifx\tm\XC at mod@Hsb\else\expandafter\XC at cnv@Hsb\@@tmp,\fi}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@tHsb@}
+% \Meta{x}|,|\Meta{y}|;|\Meta{x'}|,|\Meta{y'}|;|
+% \begin{macrocode}
+\def\XC at cnv@tHsb@#1,#2;#3,#4;%
+ {\ifdim\dimen@<#3\p@
+ \@tempdima#4\p@ \advance\@tempdima-#2\p@
+ \@tempdimb#3\p@ \advance\@tempdimb-#1\p@
+ \rdivide\@tempdima\@tempdimb
+ \advance\dimen at -#1\p@ \rmultiply\dimen@{\strip at pt\@tempdima}%
+ \advance\dimen@#2\p@ \expandafter\remove at to@nnil
+ \else
+ \def\@@tmp{\XC at cnv@tHsb@#3,#4;}\expandafter\@@tmp
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@HSB}
+% \Meta{Hue}|,|\Meta{Saturation}|,|\Meta{Brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@HSB#1,#2,#3,%
+ {\edef\@@scl{\rangeHSB}\XC at calc@#1,#2,#3,,:D\XC at cnv@hsb@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@Gray}
+% \Meta{Gray}|,|
+% \begin{macrocode}
+\def\XC at cnv@Gray#1,%
+ {\XC at c@lcD\rangeGray{}{#1}\@@tmp \XC at cnv@gray\@@tmp,}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \begin{macro}{\XC at cnv@wave}
+% \Meta{lambda}|,|
+% \begin{macrocode}
+\def\XC at cnv@wave#1,%
+ {\XC at cnv@wave at hsb#1,\XC at cnv@hsb@}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@wave at hsb}
+% \Meta{lambda}|,|
+% \begin{macrocode}
+\def\XC at cnv@wave at hsb#1,%
+ {\@tempdima#1\p@
+% \end{macrocode}
+%
+% Calculate hue:
+% \begin{macrocode}
+ \ifdim\@tempdima<440\p@
+ \XC at c@v at wave@hsb{-.0166667}{7.33333}4{}\else
+ \ifdim\@tempdima<490\p@
+ \XC at c@v at wave@hsb{.02}{-8.8}4-\else
+ \ifdim\@tempdima<510\p@
+ \XC at c@v at wave@hsb{-.05}{25.5}2{}\else
+ \ifdim\@tempdima<580\p@
+ \XC at c@v at wave@hsb{.0142857}{-7.28571}2-\else
+ \ifdim\@tempdima<645\p@
+ \XC at c@v at wave@hsb{-.0153846}{9.92308}0{}\else
+ \dimen@\z@ \fi\fi\fi\fi\fi
+ \divide\dimen at 6\relax
+ \edef\@@tmp{\strip at pt\dimen@,1,}%
+% \end{macrocode}
+%
+% Calculate brightness:
+% \begin{macrocode}
+ \ifdim\@tempdima<420\p@
+ \XC at c@v at wave@hsb{.0175}{-6.35}0{}\else
+ \ifdim\@tempdima>700\p@
+ \XC at c@v at wave@hsb{-.00875}{7.125}0{}\else
+ \dimen@\p@ \fi\fi
+ \edef\@@tmp{\@@tmp\strip at pt\dimen@}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at c@v at wave@hsb}
+% \marg{factor}\marg{const}\marg{offset}\marg{sign}\\
+% Calculates $\Meta{offset} + \Meta{sign}\cdot\varrho\bigl(\Meta{const} + \Meta{factor}\cdot\lambda\bigr)$, where $\varrho$ is the reduction function.
+% The result is stored in |\dimen@|.
+% \begin{macrocode}
+\def\XC at c@v at wave@hsb#1#2#3#4%
+ {\dimen@#1\@tempdima \advance\dimen@#2\p@
+ \XC at calcR{\strip at pt\dimen@}\@tempa
+ \dimen@#4\@tempa\p@ \advance\dimen@#3\p@}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Color complement}
+%
+% \begin{macro}{\XC at cnv@cmyk at compl}
+% \Meta{cyan}|,|\Meta{magenta}|,|\Meta{yellow}|,|\Meta{black}|,|
+% \begin{macrocode}
+\def\XC at cnv@cmyk at compl#1,#2,#3,#4,%
+ {\XC at cnv@cmyk at cmy#1,#2,#3,#4,%
+ \expandafter\XC at calc@\@@tmp,,:C\expandafter\XC at cnv@cmy at cmyk\@@tmp,}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\XC at cnv@hsb at compl}
+% \Meta{hue}|,|\Meta{saturation}|,|\Meta{brightness}|,|
+% \begin{macrocode}
+\def\XC at cnv@hsb at compl#1,#2,#3,%
+ {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p at -\fi-5\p@
+ \rshift\dimen@ \edef\@@tmp{\strip at pt\dimen@}%
+ \lshiftset\dimen@{#3}\@tempdima#2\dimen@
+ \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@
+ \ifdim\@tempdimb=\z@
+ \edef\@@tmp{\@@tmp,0,0}%
+ \else
+ \rdivide\@tempdima\@tempdimb \rshift\@tempdimb
+ \edef\@@tmp{\@@tmp,\strip at pt\@tempdima,\strip at pt\@tempdimb}%
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+%
+%
+% \subsection{Color initialisation}
+%
+% \subsubsection{Support for missing color models}
+%
+% These macros provide generic support for missing color models in specific drivers.
+% For example, \File{pdftex.def} does not support the \Model{hsb} model.
+% It is assumed that at least one of the models \Model{rgb}, \Model{RGB}, \Model{HTML}, \Model{hsb}, \Model{Hsb}, \Model{HSB}, \Model{cmy}, \Model{cmyk}, \Model{gray}, \Model{Gray} exists.
+%
+% \begin{macro}{\substitutecolormodel}
+% \marg{source model}\marg{target model-list}\\
+% Substitute \Meta{source model} by the first actually present model from \Meta{target model-list}:
+% each reference to the driver-specific command |\color@|\Meta{source model} is replaced by a color model conversion, followed by the driver-specific command |\color@|\Meta{target model}.
+% \begin{macrocode}
+\def\substitutecolormodel#1#2%
+ {\XC at sdef\XC@@tmp{\expandafter\XC at substitutecolormodel#2/ignore/\@nnil}%
+ \ifx\XC@@tmp\XC at mod@ignore
+ \XC at let@cN{color@#1}\color at ignore
+ \else
+ \expandafter\edef\csname color@#1\endcsname##1##2%
+ {\noexpand\convertcolorspec
+ \expandafter\noexpand\csname XC at mod@#1\endcsname{##2}%
+ \expandafter\noexpand\csname XC at mod@\XC@@tmp\endcsname
+ \noexpand\XC@@tmp\noexpand\expandafter
+ \expandafter\noexpand\csname color@\XC@@tmp\endcsname
+ \noexpand\expandafter##1\noexpand\expandafter{\noexpand\XC@@tmp}}%
+ \fi
+ \expandafter\xglobalize@\csname color@#1\endcsname \xglobal at stop
+ \PackageInfo{xcolor}{Model `#1' substituted by `\XC@@tmp'}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\XC at substitutecolormodel#1/%
+ {\@ifundefinedmodel{#1}{\XC at substitutecolormodel}{#1\remove at to@nnil}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at ignore}
+% \marg{cmd}\marg{spec}\\
+% Empty color model: no driver-specific representation at all.
+% \begin{macrocode}
+\def\color at ignore#1#2{\def#1{}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at rgb}
+% \marg{cmd}\marg{spec}\\
+% Takes the color specification \Meta{spec}, turns it into a driver-specific representation and puts the result into the macro \Meta{cmd}.
+% For example, if \File{dvips.def} is loaded, then |\color at rgb\foo{1,0,0}| will be equivalent to |\def\foo{rgb 1 0 0}|.
+% In the case of \File{pdftex.def}, it will act like |\def\foo{1 0 0 rg 1 0 0 RG}| instead.
+% \begin{macrocode}
+\@ifundefinedmodel{rgb}%
+ {\substitutecolormodel{rgb}{RGB/HTML/hsb/Hsb/HSB/cmy/cmyk/gray/Gray}}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at cmyk}
+% \marg{cmd}\marg{spec}
+% \begin{macrocode}
+\@ifundefinedmodel{cmyk}{\substitutecolormodel{cmyk}{cmy/rgb}}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at cmy}
+% \marg{cmd}\marg{spec}
+% \begin{macrocode}
+\@ifundefinedmodel{cmy}%
+ {\PackageInfo{xcolor}{Model `cmy' substituted by `cmy0'}
+ \def\color at cmy#1#2{\color at cmyk#1{#2,0}}}{}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at hsb}
+% \marg{cmd}\marg{spec}\\
+% Since the \Option{dvipdfm} and \Option{textures} drivers only pretend to support \Model{hsb}, we have to check for these drivers.
+% \begin{macrocode}
+\@ifundefinedmodel{hsb}{\@tempswatrue}%
+ {\XC at ifcase\XC@@drv{{dvipdfm,textures}\@tempswatrue}\@tempswafalse}
+\if at tempswa
+ \substitutecolormodel{hsb}{Hsb/HSB/rgb}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at RGB}
+% \marg{cmd}\marg{spec}\\
+% If the model is supported and |\rangeRGB| equals 255, we stick to the algorithm provided by the driver.
+% \begin{macrocode}
+\@ifundefinedmodel{RGB}%
+ {\substitutecolormodel{RGB}{HTML/rgb}}
+ {\PackageInfo{xcolor}{Model `RGB' extended}
+ \let\XC at color@RGB\color at RGB
+ \def\color at RGB#1#2%
+ {\relax\ifnum\rangeRGB=255
+ \XC at color@RGB#1{#2}%
+ \else
+ \convertcolorspec\XC at mod@RGB{#2}\XC at mod@rgb\XC@@tmp
+ \expandafter\color at rgb\expandafter#1\expandafter{\XC@@tmp}%
+ \fi}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\color at gray}
+% \begin{macro}{\color at HTML}
+% \begin{macro}{\color at Hsb}
+% \begin{macro}{\color at tHsb}
+% \begin{macro}{\color at HSB}
+% \begin{macro}{\color at Gray}
+% \begin{macro}{\color at wave}
+% \marg{cmd}\marg{spec}
+% \begin{macrocode}
+\@ifundefinedmodel{gray}{\substitutecolormodel{gray}{Gray/rgb}}{}
+\@ifundefinedmodel{HTML}{\substitutecolormodel{HTML}{rgb}}{}
+\@ifundefinedmodel{Hsb}{\substitutecolormodel{Hsb}{hsb}}{}
+\@ifundefinedmodel{tHsb}{\substitutecolormodel{tHsb}{hsb}}{}
+\@ifundefinedmodel{HSB}{\substitutecolormodel{HSB}{hsb}}{}
+\@ifundefinedmodel{Gray}{\substitutecolormodel{Gray}{gray}}{}
+\@ifundefinedmodel{wave}{\substitutecolormodel{wave}{hsb}}{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{PostScript-related stuff}
+%
+% \begin{macrocode}
+\@ifundefined{XC at pst}{%
+% \end{macrocode}
+%
+% \begin{macro}{\XC at getcolor}
+% \marg{color}\marg{cmd}\\
+% \marg{color command}\marg{cmd}\\
+% |{|\oarg{model}\marg{spec}|}|\marg{cmd}\\
+% Transformation of a color, given by the first argument, especially needed for \Package{pstricks}.
+% The result will always be an internal color representation (as described in section \vref{sec.definition}) and is stored in \Meta{cmd}.
+% There are different ways of specifying the color:
+% \begin{itemize}
+% \item \Meta{color} is a color name, expression, etc., e.g., |\XC at getcolor{green!50}\foo|;
+% \item \Meta{color command} is a macro whose \emph{first level} expansion is an internal color representation, e.g., |\XC at getcolor\pslinecolor\foo|;
+% \item \Meta{model} and \Meta{spec} provide, as usual, explicit parameter specifications.
+% \end{itemize}
+% \begin{macrocode}
+\def\XC at getcolor#1#2%
+ {\begingroup\toks@{#1}\XC at getc@lor#1\XC@@\aftergroupdef#2{\@@tmp}}
+% \end{macrocode}
+%
+% Check whether the argument consists of one or more tokens.
+% In the first case, expand by one level and go to next check.
+% In the second case, assume it's a \Meta{color} and simulate its display, but without performing the real |\set at color| command (which would insert |\special|s, possibly causing trouble with blank spaces).
+% This simulation ensures that we get exactly the same color --- including all blending, masking --- as if we had executed an explicit |\color| command at that point.
+% \begin{macrocode}
+\def\XC at getc@lor#1#2\XC@@
+ {\@ifxempty{#2}%
+ {\expandafter\XC at getc@l at r#1\XC@@}%
+ {\let\set at color\relax
+ \ifx#1[%
+ \expandafter\@undeclaredcolor\the\toks@\else
+ \expandafter\@declaredcolor\expandafter{\the\toks@}\fi
+ \let\@@tmp\XC at current@color}}
+% \end{macrocode}
+%
+% Check whether the first token is |\xcolor@|.
+% In that case, |#1#2| is assumed to be a complete internal color representation.
+% Otherwise, perform a simulation as described before.
+% \begin{macrocode}
+\def\XC at getc@l at r#1#2\XC@@
+ {\ifx#1\xcolor@
+ \def\@@tmp{\xcolor@#2}%
+ \else
+ \let\set at color\relax
+ \expandafter\@declaredcolor\expandafter{\the\toks@}%
+ \let\@@tmp\XC at current@color
+ \fi}
+% \end{macrocode}
+% \end{macro}
+%
+% This alternative code is temporarily needed for compatibility reasons if \Package{pstricks} is loaded via the \Option{pst} option:
+% \begin{macrocode}
+}{% compatibility code begin
+\def\XC at getcolor#1#2%
+ {\@ifundefinedcolor{#1}%
+ {\begingroup\color{#1}%
+ \edef\@@tmp
+ {\edef\noexpand#2{\noexpand\expandafter\noexpand\c at lor@to at ps
+ \current at color\noexpand\@@}}%
+ \expandafter\endgroup\@@tmp}%
+ {\edef#2{\XC at usecolor{#1}}}}
+}% compatibility code end
+% \end{macrocode}
+%
+% \begin{macro}{\XC at usecolor}
+% \marg{name}\\
+% \marg{color command}\\
+% Transformation of a color into \Index{PostScript} code.
+% The argument may be either a command whose \emph{first-level} expansion is an internal color representation (e.g., the outcome of an |\XC at getcolor| command: |\XC at usecolor\pslinecolor|), or a \Meta{name} (e.g., |\XC at usecolor{green}|).
+% Note that non-trivial color expressions like |green!50| are forbidden and that |\XC at usecolor| is fully expandable, for example, |\edef\foo{\XC at usecolor{green}}| is valid.
+% \begin{macrocode}
+\def\XC at usecolor#1{\expandafter\XC at usec@lor#1\XC@@}
+\def\XC at usec@lor#1#2\XC@@
+ {\ifx#1\xcolor@
+ \expandafter\expandafter\expandafter\c at lor@to at ps#1#2\@@
+ \else
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\c at lor@to at ps\csname\string\color@#1#2\endcsname\@@
+ \fi
+ \space}
+% \end{macrocode}
+%
+% For compatibility reasons, we need the following command temporarily; however, |\XC at c@lor at to@ps| will disappear!
+% \begin{macrocode}
+\let\XC at c@lor at to@ps\XC at usecolor
+% \end{macrocode}
+% \end{macro}
+%
+% If \Package{pstcol} has been loaded, we have to redefine two macros from this package.
+% The conditional code is needed temporarily, until nobody uses old \Package{pstricks} versions anymore.
+% \begin{macrocode}
+\let\pst at getcolor\XC at getcolor
+\@ifundefined{XC at pst}{%
+ \let\pst at usecolor\XC at usecolor
+}{}
+% \end{macrocode}
+%
+%
+% \subsubsection{Whatsit \ldots}
+%
+% \begin{macro}{\c at lor@special}
+% Some drivers do not support all the features of this package.
+% They should always put a \Meta{whatsit} in the current list though.
+% The following macro has most of the features of |\special|, but does not put anything into the \File{.dvi} file.
+% It does write to the |log| file or the terminal (depending on the value of |#1|).
+% \begin{macrocode}
+\def\c at lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa}
+% \end{macrocode}
+% \end{macro}
+%
+%
+% \subsubsection{Default color}
+%
+% \begin{macro}{\normalcolor}
+% |\normalcolor| is defined (to |\relax|) in the \LaTeX\ kernel, so it is safe to use this in macros that may possibly be used in conjunction with color.
+% It will have no effect until the \XCP{} is also loaded.
+% \begin{macrocode}
+\def\normalcolor{\let\current at color\default at color\set at color}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\default at color}
+% Internal macro to store the `default' color used by |\normalcolor|.
+% \begin{macrocode}
+\AtBeginDocument{\let\default at color\current at color}
+% \end{macrocode}
+% \end{macro}
+% |\current at color| (which is the expansion of |\XC at current@color|) contains an internal representation of the color at this point in the document.
+% This can only be an approximation to the truth as the `macro layer' of \TeX\ does not know where the output routine is going to re-insert floats.
+% This is why drivers must maintain their own stack of colors in order to fully support these commands.
+%
+%
+% \subsubsection{Driver-specific definitions for named colors}
+%
+% \begin{macro}{\c at lor@@named}
+% \begin{macro}{\define at color@named}
+% We have to modify a few driver-specific commands in order to avoid generation of superfluous macros.
+% \begin{macrocode}
+\XC at ifcase\XC@@drv
+ {{dvipdf,dvipdfm,dvipdfmx,dvips,pctex32}%
+ {\def\c at lor@@named#1,#2,#3\@@#4%
+ {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive
+ \csname\string\color@#1\endcsname}}
+ \def\define at color@named#1#2%
+ {\@namedef{\string\color@#1}{{}{}{ \colornameprefix#1}{}{}}}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ {dvipsone,pctexps,pdftex,tcidvi,truetex,vtex,xetex}%
+ {\def\c at lor@@named#1,#2,#3\@@#4%
+ {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive
+ \csname\string\color@#1\endcsname}}
+ \def\define at color@named#1#2%
+ {\let\@@cls\@empty\@namedef{\string\color@#1}{{}{}{#2}{}{}}}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ {textures}%
+ {\def\c at lor@@named#1,#2,#3\@@#4%
+ {\edef\@tempa{\color at P@custom{#1}{\if!#2!1\else#2\fi}}%
+ \expandafter\def\expandafter#4\@tempa}
+ \def\define at color@named#1#2%
+ {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa}
+ \def\c at lor@ps@#1 #2\@@
+ {\expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\c at lor@to at ps@
+ \csname\string\color@#1\expandafter\endcsname\space
+ #2. \@@{#1}}}%
+% \end{macrocode}
+%
+% \begin{macrocode}
+ }{}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+%
+% \subsubsection{Basic color definitions}
+%
+% \Model{rgb}-minded colors.\footnote{Generic definitions:
+% \Color{orange} = \Color{red}|!|50|!|\Color{yellow},
+% \Color{violet} = \Color{blue}|!|50|!|\Color{red},
+% \Color{purple} = \Color{violet}|!|50|!|\Color{red},
+% \Color{brown} = \Color{violet}|!|50|!|\Color{yellow},
+% \Color{pink} = \Color{red}|!|25.}
+% \begin{macrocode}
+\definecolorset{rgb/hsb/cmyk/gray}{}{}%
+ {red,1,0,0/0,1,1/0,1,1,0/.3;%
+ green,0,1,0/.33333,1,1/1,0,1,0/.59;%
+ blue,0,0,1/.66667,1,1/1,1,0,0/.11;%
+ orange,1,.5,0/.083333,1,1/0,.5,1,0/.595;%
+ violet,.5,0,.5/.83333,1,.5/0,.5,0,.5/.205;%
+ purple,.75,0,.25/.94444,1,.75/0,.75,.5,.25/.2525;%
+ brown,.75,.5,.25/.083333,.66667,.75/0,.25,.5,.25/.5475;%
+ pink,1,.75,.75/0,.25,1/0,.25,.25,0/.825}%
+% \end{macrocode}
+%
+% \Model{cmyk}-minded colors.\footnote{Generic definitions:
+% \Color{olive} = \Color{red}|!|50|!|\Color{green}.}
+% \begin{macrocode}
+\definecolorset{cmyk/rgb/hsb/gray}{}{}%
+ {cyan,1,0,0,0/0,1,1/.5,1,1/.7;%
+ magenta,0,1,0,0/1,0,1/.83333,1,1/.41;%
+ yellow,0,0,1,0/1,1,0/.16667,1,1/.89;%
+ olive,0,0,1,.5/.5,.5,0/.16667,1,.5/.39}
+% \end{macrocode}
+%
+% \Model{gray}-minded colors.
+% \begin{macrocode}
+\definecolorset{gray/rgb/hsb/cmyk}{}{}%
+ {black,0/0,0,0/0,0,0/0,0,0,1;%
+ darkgray,.25/.25,.25,.25/0,0,.25/0,0,0,.75;%
+ gray,.5/.5,.5,.5/0,0,.5/0,0,0,.5;%
+ lightgray,.75/.75,.75,.75/0,0,.75/0,0,0,.25;%
+ white,1/1,1,1/0,0,1/0,0,0,0}
+% \end{macrocode}
+%
+% Load predefined sets of colors (e.g., \File{dvipsnam.def}).
+% \begin{macrocode}
+\XC@@names
+% \end{macrocode}
+%
+%
+% \subsubsection{Finale}
+%
+% Clear color stack and restore catcodes.
+% \begin{macrocode}
+\AtBeginDocument{\let\XC@@stack\@empty}
+\let\colornameprefix\XC@@nameprefix
+\XC at catcodes
+% \end{macrocode}
+%
+% \begin{macrocode}
+\csname xcolorcmd\endcsname
+\color{black}
+%</package>
+% \end{macrocode}
+%
+%
+% \iffalse
+%-------------------------------------------------------------------------------
+% \fi
+%
+% \subsection{Auxiliary definitions}
+%
+% \subsubsection{\Index{PostScript} prologue file \File{xcolor.pro}}
+%
+% \begin{macrocode}
+%<*dvips>
+userdict begin
+/setcmycolor{0 setcmykcolor}def
+/XCbd{bind def}bind def
+/XCed{exch def}XCbd
+% \end{macrocode}
+%
+% \Index{PostScript} version of |\providecommand|.
+% \begin{macrocode}
+/XCdef{exch dup TeXDict exch known{pop pop}{XCed}ifelse}XCbd
+% \end{macrocode}
+%
+% \Index{PostScript} version of |\providecolor|.
+% \begin{macrocode}
+/XCsetcolor{cvx counttomark array astore cvx exch pop XCdef}XCbd
+% \end{macrocode}
+%
+% Now define model-dependent color definition commands.
+% \begin{macrocode}
+/XCcmy{mark exch exec/setcmycolor XCsetcolor}XCbd
+/XCcmyk{mark exch exec/setcmykcolor XCsetcolor}XCbd
+/XCgray{mark exch exec/setgray XCsetcolor}XCbd
+/XChsb{mark exch exec/sethsbcolor XCsetcolor}XCbd
+/XCrgb{mark exch exec/setrgbcolor XCsetcolor}XCbd
+% \end{macrocode}
+%
+% Grouping operators.
+% We have to disable the |setgray| operator which is invoked by |normalscale| as part of |@beginspecial| as defined by \File{special.pro}.
+% \begin{macrocode}
+/XC!b{save/setgray{pop}def}XCbd
+/XC!e{restore}XCbd
+% \end{macrocode}
+%
+% Scale `sp' coordinates back to `bp' units.
+% \begin{macrocode}
+/XCsp2bp{1 65781.76 div dup scale}XCbd
+% \end{macrocode}
+%
+% \begin{macro}{XCsetline}
+% \meta{linewidth} |XCsetline|\\
+% Common line definition.
+% \begin{macrocode}
+/XCsetline
+ {setlinewidth [] 0 setdash 2 setlinecap 0 setlinejoin 4 setmiterlimit}XCbd
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{XCboxframe}
+% \meta{linewidth} \meta{width} \meta{height} \meta{depth} |XCboxframe|\\
+% Draw a frame in `sp' coordinates using LanguageLevel~2.
+% \begin{macrocode}
+/XCboxframe{/d XCed/h XCed/w XCed/l XCed w 0 gt{h d neg gt{l 0 gt
+ {XCsp2bp l XCsetline
+ l 2 div dup translate
+ 0 d neg w l sub h l sub d add rectstroke}if}if}if}XCbd
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{XCcolorblock}
+% \meta{width} \meta{height} \meta{depth} |XCcolorblock|\\
+% Draw a colored box in `sp' coordinates using LanguageLevel~2.
+% \begin{macrocode}
+/XCcolorblock{/d XCed/h XCed/w XCed w 0 gt{h d neg gt
+ {XCsp2bp 0 XCsetline
+ 0 d neg w h d add rectfill}if}if}XCbd
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macrocode}
+end
+%</dvips>
+% \end{macrocode}
+%
+%
+% \clearpage
+% \Finale
+% \endinput
+%
+%
+% \iffalse
+%-------------------------------------------------------------------------------
+%<*svgnames|x11names|hksknames|hksnnames|hksznames|pmsnames|ralnames>
+\def\colornameprefix{XC@}
+%</svgnames|x11names|hksknames|hksnnames|hksznames|pmsnames|ralnames>
+%
+%<*svgnames>
+\preparecolorset{rgb}{}{}{%
+AliceBlue,.94,.972,1;%
+AntiqueWhite,.98,.92,.844;%
+Aqua,0,1,1;%
+Aquamarine,.498,1,.83;%
+Azure,.94,1,1;%
+Beige,.96,.96,.864;%
+Bisque,1,.894,.77;%
+Black,0,0,0;%
+BlanchedAlmond,1,.92,.804;%
+Blue,0,0,1;%
+BlueViolet,.54,.17,.888;%
+Brown,.648,.165,.165;%
+BurlyWood,.87,.72,.53;%
+CadetBlue,.372,.62,.628;%
+Chartreuse,.498,1,0;%
+Chocolate,.824,.41,.116;%
+Coral,1,.498,.312;%
+CornflowerBlue,.392,.585,.93;%
+Cornsilk,1,.972,.864;%
+Crimson,.864,.08,.235;%
+Cyan,0,1,1;%
+DarkBlue,0,0,.545;%
+DarkCyan,0,.545,.545;%
+DarkGoldenrod,.72,.525,.044;%
+DarkGray,.664,.664,.664;%
+DarkGreen,0,.392,0;%
+DarkGrey,.664,.664,.664;%
+DarkKhaki,.74,.716,.42;%
+DarkMagenta,.545,0,.545;%
+DarkOliveGreen,.332,.42,.185;%
+DarkOrange,1,.55,0;%
+DarkOrchid,.6,.196,.8;%
+DarkRed,.545,0,0;%
+DarkSalmon,.912,.59,.48;%
+DarkSeaGreen,.56,.736,.56;%
+DarkSlateBlue,.284,.24,.545;%
+DarkSlateGray,.185,.31,.31;%
+DarkSlateGrey,.185,.31,.31;%
+DarkTurquoise,0,.808,.82;%
+DarkViolet,.58,0,.828;%
+DeepPink,1,.08,.576;%
+DeepSkyBlue,0,.75,1;%
+DimGray,.41,.41,.41;%
+DimGrey,.41,.41,.41;%
+DodgerBlue,.116,.565,1;%
+FireBrick,.698,.132,.132;%
+FloralWhite,1,.98,.94;%
+ForestGreen,.132,.545,.132;%
+Fuchsia,1,0,1;%
+Gainsboro,.864,.864,.864;%
+GhostWhite,.972,.972,1;%
+Gold,1,.844,0;%
+Goldenrod,.855,.648,.125;%
+Gray,.5,.5,.5;%
+Green,0,.5,0;%
+GreenYellow,.68,1,.185;%
+Grey,.5,.5,.5;%
+Honeydew,.94,1,.94;%
+HotPink,1,.41,.705;%
+IndianRed,.804,.36,.36;%
+Indigo,.294,0,.51;%
+Ivory,1,1,.94;%
+Khaki,.94,.9,.55;%
+Lavender,.9,.9,.98;%
+LavenderBlush,1,.94,.96;%
+LawnGreen,.488,.99,0;%
+LemonChiffon,1,.98,.804;%
+LightBlue,.68,.848,.9;%
+LightCoral,.94,.5,.5;%
+LightCyan,.88,1,1;%
+LightGoldenrod,.933,.867,.51;%
+LightGoldenrodYellow,.98,.98,.824;%
+LightGray,.828,.828,.828;%
+LightGreen,.565,.932,.565;%
+LightGrey,.828,.828,.828;%
+LightPink,1,.712,.756;%
+LightSalmon,1,.628,.48;%
+LightSeaGreen,.125,.698,.668;%
+LightSkyBlue,.53,.808,.98;%
+LightSlateBlue,.518,.44,1;%
+LightSlateGray,.468,.532,.6;%
+LightSlateGrey,.468,.532,.6;%
+LightSteelBlue,.69,.77,.87;%
+LightYellow,1,1,.88;%
+Lime,0,1,0;%
+LimeGreen,.196,.804,.196;%
+Linen,.98,.94,.9;%
+Magenta,1,0,1;%
+Maroon,.5,0,0;%
+MediumAquamarine,.4,.804,.668;%
+MediumBlue,0,0,.804;%
+MediumOrchid,.73,.332,.828;%
+MediumPurple,.576,.44,.86;%
+MediumSeaGreen,.235,.7,.444;%
+MediumSlateBlue,.484,.408,.932;%
+MediumSpringGreen,0,.98,.604;%
+MediumTurquoise,.284,.82,.8;%
+MediumVioletRed,.78,.084,.52;%
+MidnightBlue,.098,.098,.44;%
+MintCream,.96,1,.98;%
+MistyRose,1,.894,.884;%
+Moccasin,1,.894,.71;%
+NavajoWhite,1,.87,.68;%
+Navy,0,0,.5;%
+NavyBlue,0,0,.5;%
+OldLace,.992,.96,.9;%
+Olive,.5,.5,0;%
+OliveDrab,.42,.556,.136;%
+Orange,1,.648,0;%
+OrangeRed,1,.27,0;%
+Orchid,.855,.44,.84;%
+PaleGoldenrod,.932,.91,.668;%
+PaleGreen,.596,.985,.596;%
+PaleTurquoise,.688,.932,.932;%
+PaleVioletRed,.86,.44,.576;%
+PapayaWhip,1,.936,.835;%
+PeachPuff,1,.855,.725;%
+Peru,.804,.52,.248;%
+Pink,1,.752,.796;%
+Plum,.868,.628,.868;%
+PowderBlue,.69,.88,.9;%
+Purple,.5,0,.5;%
+Red,1,0,0;%
+RosyBrown,.736,.56,.56;%
+RoyalBlue,.255,.41,.884;%
+SaddleBrown,.545,.27,.075;%
+Salmon,.98,.5,.448;%
+SandyBrown,.956,.644,.376;%
+SeaGreen,.18,.545,.34;%
+Seashell,1,.96,.932;%
+Sienna,.628,.32,.176;%
+Silver,.752,.752,.752;%
+SkyBlue,.53,.808,.92;%
+SlateBlue,.415,.352,.804;%
+SlateGray,.44,.5,.565;%
+SlateGrey,.44,.5,.565;%
+Snow,1,.98,.98;%
+SpringGreen,0,1,.498;%
+SteelBlue,.275,.51,.705;%
+Tan,.824,.705,.55;%
+Teal,0,.5,.5;%
+Thistle,.848,.75,.848;%
+Tomato,1,.39,.28;%
+Turquoise,.25,.88,.815;%
+Violet,.932,.51,.932;%
+VioletRed,.816,.125,.565;%
+Wheat,.96,.87,.7;%
+White,1,1,1;%
+WhiteSmoke,.96,.96,.96;%
+Yellow,1,1,0;%
+YellowGreen,.604,.804,.196}
+%</svgnames>
+%
+%<*x11names>
+\preparecolorset{rgb}{}{}{%
+AntiqueWhite1,1,.936,.86;%
+AntiqueWhite2,.932,.875,.8;%
+AntiqueWhite3,.804,.752,.69;%
+AntiqueWhite4,.545,.512,.47;%
+Aquamarine1,.498,1,.83;%
+Aquamarine2,.464,.932,.776;%
+Aquamarine3,.4,.804,.668;%
+Aquamarine4,.27,.545,.455;%
+Azure1,.94,1,1;%
+Azure2,.88,.932,.932;%
+Azure3,.756,.804,.804;%
+Azure4,.512,.545,.545;%
+Bisque1,1,.894,.77;%
+Bisque2,.932,.835,.716;%
+Bisque3,.804,.716,.62;%
+Bisque4,.545,.49,.42;%
+Blue1,0,0,1;%
+Blue2,0,0,.932;%
+Blue3,0,0,.804;%
+Blue4,0,0,.545;%
+Brown1,1,.25,.25;%
+Brown2,.932,.23,.23;%
+Brown3,.804,.2,.2;%
+Brown4,.545,.136,.136;%
+Burlywood1,1,.828,.608;%
+Burlywood2,.932,.772,.57;%
+Burlywood3,.804,.668,.49;%
+Burlywood4,.545,.45,.332;%
+CadetBlue1,.596,.96,1;%
+CadetBlue2,.556,.898,.932;%
+CadetBlue3,.48,.772,.804;%
+CadetBlue4,.325,.525,.545;%
+Chartreuse1,.498,1,0;%
+Chartreuse2,.464,.932,0;%
+Chartreuse3,.4,.804,0;%
+Chartreuse4,.27,.545,0;%
+Chocolate1,1,.498,.14;%
+Chocolate2,.932,.464,.13;%
+Chocolate3,.804,.4,.112;%
+Chocolate4,.545,.27,.075;%
+Coral1,1,.448,.336;%
+Coral2,.932,.415,.312;%
+Coral3,.804,.356,.27;%
+Coral4,.545,.244,.185;%
+Cornsilk1,1,.972,.864;%
+Cornsilk2,.932,.91,.804;%
+Cornsilk3,.804,.785,.694;%
+Cornsilk4,.545,.532,.47;%
+Cyan1,0,1,1;%
+Cyan2,0,.932,.932;%
+Cyan3,0,.804,.804;%
+Cyan4,0,.545,.545;%
+DarkGoldenrod1,1,.725,.06;%
+DarkGoldenrod2,.932,.68,.055;%
+DarkGoldenrod3,.804,.585,.048;%
+DarkGoldenrod4,.545,.396,.03;%
+DarkOliveGreen1,.792,1,.44;%
+DarkOliveGreen2,.736,.932,.408;%
+DarkOliveGreen3,.635,.804,.352;%
+DarkOliveGreen4,.43,.545,.24;%
+DarkOrange1,1,.498,0;%
+DarkOrange2,.932,.464,0;%
+DarkOrange3,.804,.4,0;%
+DarkOrange4,.545,.27,0;%
+DarkOrchid1,.75,.244,1;%
+DarkOrchid2,.698,.228,.932;%
+DarkOrchid3,.604,.196,.804;%
+DarkOrchid4,.408,.132,.545;%
+DarkSeaGreen1,.756,1,.756;%
+DarkSeaGreen2,.705,.932,.705;%
+DarkSeaGreen3,.608,.804,.608;%
+DarkSeaGreen4,.41,.545,.41;%
+DarkSlateGray1,.592,1,1;%
+DarkSlateGray2,.552,.932,.932;%
+DarkSlateGray3,.475,.804,.804;%
+DarkSlateGray4,.32,.545,.545;%
+DeepPink1,1,.08,.576;%
+DeepPink2,.932,.07,.536;%
+DeepPink3,.804,.064,.464;%
+DeepPink4,.545,.04,.312;%
+DeepSkyBlue1,0,.75,1;%
+DeepSkyBlue2,0,.698,.932;%
+DeepSkyBlue3,0,.604,.804;%
+DeepSkyBlue4,0,.408,.545;%
+DodgerBlue1,.116,.565,1;%
+DodgerBlue2,.11,.525,.932;%
+DodgerBlue3,.094,.455,.804;%
+DodgerBlue4,.064,.305,.545;%
+Firebrick1,1,.19,.19;%
+Firebrick2,.932,.172,.172;%
+Firebrick3,.804,.15,.15;%
+Firebrick4,.545,.1,.1;%
+Gold1,1,.844,0;%
+Gold2,.932,.79,0;%
+Gold3,.804,.68,0;%
+Gold4,.545,.46,0;%
+Goldenrod1,1,.756,.145;%
+Goldenrod2,.932,.705,.132;%
+Goldenrod3,.804,.608,.112;%
+Goldenrod4,.545,.41,.08;%
+Green1,0,1,0;%
+Green2,0,.932,0;%
+Green3,0,.804,0;%
+Green4,0,.545,0;%
+Honeydew1,.94,1,.94;%
+Honeydew2,.88,.932,.88;%
+Honeydew3,.756,.804,.756;%
+Honeydew4,.512,.545,.512;%
+HotPink1,1,.43,.705;%
+HotPink2,.932,.415,.655;%
+HotPink3,.804,.376,.565;%
+HotPink4,.545,.228,.385;%
+IndianRed1,1,.415,.415;%
+IndianRed2,.932,.39,.39;%
+IndianRed3,.804,.332,.332;%
+IndianRed4,.545,.228,.228;%
+Ivory1,1,1,.94;%
+Ivory2,.932,.932,.88;%
+Ivory3,.804,.804,.756;%
+Ivory4,.545,.545,.512;%
+Khaki1,1,.965,.56;%
+Khaki2,.932,.9,.52;%
+Khaki3,.804,.776,.45;%
+Khaki4,.545,.525,.305;%
+LavenderBlush1,1,.94,.96;%
+LavenderBlush2,.932,.88,.898;%
+LavenderBlush3,.804,.756,.772;%
+LavenderBlush4,.545,.512,.525;%
+LemonChiffon1,1,.98,.804;%
+LemonChiffon2,.932,.912,.75;%
+LemonChiffon3,.804,.79,.648;%
+LemonChiffon4,.545,.536,.44;%
+LightBlue1,.75,.936,1;%
+LightBlue2,.698,.875,.932;%
+LightBlue3,.604,.752,.804;%
+LightBlue4,.408,.512,.545;%
+LightCyan1,.88,1,1;%
+LightCyan2,.82,.932,.932;%
+LightCyan3,.705,.804,.804;%
+LightCyan4,.48,.545,.545;%
+LightGoldenrod1,1,.925,.545;%
+LightGoldenrod2,.932,.864,.51;%
+LightGoldenrod3,.804,.745,.44;%
+LightGoldenrod4,.545,.505,.298;%
+LightPink1,1,.684,.725;%
+LightPink2,.932,.635,.68;%
+LightPink3,.804,.55,.585;%
+LightPink4,.545,.372,.396;%
+LightSalmon1,1,.628,.48;%
+LightSalmon2,.932,.585,.448;%
+LightSalmon3,.804,.505,.385;%
+LightSalmon4,.545,.34,.26;%
+LightSkyBlue1,.69,.888,1;%
+LightSkyBlue2,.644,.828,.932;%
+LightSkyBlue3,.552,.712,.804;%
+LightSkyBlue4,.376,.484,.545;%
+LightSteelBlue1,.792,.884,1;%
+LightSteelBlue2,.736,.824,.932;%
+LightSteelBlue3,.635,.71,.804;%
+LightSteelBlue4,.43,.484,.545;%
+LightYellow1,1,1,.88;%
+LightYellow2,.932,.932,.82;%
+LightYellow3,.804,.804,.705;%
+LightYellow4,.545,.545,.48;%
+Magenta1,1,0,1;%
+Magenta2,.932,0,.932;%
+Magenta3,.804,0,.804;%
+Magenta4,.545,0,.545;%
+Maroon1,1,.204,.7;%
+Maroon2,.932,.19,.655;%
+Maroon3,.804,.16,.565;%
+Maroon4,.545,.11,.385;%
+MediumOrchid1,.88,.4,1;%
+MediumOrchid2,.82,.372,.932;%
+MediumOrchid3,.705,.32,.804;%
+MediumOrchid4,.48,.215,.545;%
+MediumPurple1,.67,.51,1;%
+MediumPurple2,.624,.475,.932;%
+MediumPurple3,.536,.408,.804;%
+MediumPurple4,.365,.28,.545;%
+MistyRose1,1,.894,.884;%
+MistyRose2,.932,.835,.824;%
+MistyRose3,.804,.716,.71;%
+MistyRose4,.545,.49,.484;%
+NavajoWhite1,1,.87,.68;%
+NavajoWhite2,.932,.81,.63;%
+NavajoWhite3,.804,.7,.545;%
+NavajoWhite4,.545,.475,.37;%
+OliveDrab1,.752,1,.244;%
+OliveDrab2,.7,.932,.228;%
+OliveDrab3,.604,.804,.196;%
+OliveDrab4,.41,.545,.132;%
+Orange1,1,.648,0;%
+Orange2,.932,.604,0;%
+Orange3,.804,.52,0;%
+Orange4,.545,.352,0;%
+OrangeRed1,1,.27,0;%
+OrangeRed2,.932,.25,0;%
+OrangeRed3,.804,.215,0;%
+OrangeRed4,.545,.145,0;%
+Orchid1,1,.512,.98;%
+Orchid2,.932,.48,.912;%
+Orchid3,.804,.41,.79;%
+Orchid4,.545,.28,.536;%
+PaleGreen1,.604,1,.604;%
+PaleGreen2,.565,.932,.565;%
+PaleGreen3,.488,.804,.488;%
+PaleGreen4,.33,.545,.33;%
+PaleTurquoise1,.732,1,1;%
+PaleTurquoise2,.684,.932,.932;%
+PaleTurquoise3,.59,.804,.804;%
+PaleTurquoise4,.4,.545,.545;%
+PaleVioletRed1,1,.51,.67;%
+PaleVioletRed2,.932,.475,.624;%
+PaleVioletRed3,.804,.408,.536;%
+PaleVioletRed4,.545,.28,.365;%
+PeachPuff1,1,.855,.725;%
+PeachPuff2,.932,.796,.68;%
+PeachPuff3,.804,.688,.585;%
+PeachPuff4,.545,.468,.396;%
+Pink1,1,.71,.772;%
+Pink2,.932,.664,.72;%
+Pink3,.804,.57,.62;%
+Pink4,.545,.39,.424;%
+Plum1,1,.732,1;%
+Plum2,.932,.684,.932;%
+Plum3,.804,.59,.804;%
+Plum4,.545,.4,.545;%
+Purple1,.608,.19,1;%
+Purple2,.57,.172,.932;%
+Purple3,.49,.15,.804;%
+Purple4,.332,.1,.545;%
+Red1,1,0,0;%
+Red2,.932,0,0;%
+Red3,.804,0,0;%
+Red4,.545,0,0;%
+RosyBrown1,1,.756,.756;%
+RosyBrown2,.932,.705,.705;%
+RosyBrown3,.804,.608,.608;%
+RosyBrown4,.545,.41,.41;%
+RoyalBlue1,.284,.464,1;%
+RoyalBlue2,.264,.43,.932;%
+RoyalBlue3,.228,.372,.804;%
+RoyalBlue4,.152,.25,.545;%
+Salmon1,1,.55,.41;%
+Salmon2,.932,.51,.385;%
+Salmon3,.804,.44,.33;%
+Salmon4,.545,.298,.224;%
+SeaGreen1,.33,1,.624;%
+SeaGreen2,.305,.932,.58;%
+SeaGreen3,.264,.804,.5;%
+SeaGreen4,.18,.545,.34;%
+Seashell1,1,.96,.932;%
+Seashell2,.932,.898,.87;%
+Seashell3,.804,.772,.75;%
+Seashell4,.545,.525,.51;%
+Sienna1,1,.51,.28;%
+Sienna2,.932,.475,.26;%
+Sienna3,.804,.408,.224;%
+Sienna4,.545,.28,.15;%
+SkyBlue1,.53,.808,1;%
+SkyBlue2,.494,.752,.932;%
+SkyBlue3,.424,.65,.804;%
+SkyBlue4,.29,.44,.545;%
+SlateBlue1,.512,.435,1;%
+SlateBlue2,.48,.404,.932;%
+SlateBlue3,.41,.35,.804;%
+SlateBlue4,.28,.235,.545;%
+SlateGray1,.776,.888,1;%
+SlateGray2,.725,.828,.932;%
+SlateGray3,.624,.712,.804;%
+SlateGray4,.424,.484,.545;%
+Snow1,1,.98,.98;%
+Snow2,.932,.912,.912;%
+Snow3,.804,.79,.79;%
+Snow4,.545,.536,.536;%
+SpringGreen1,0,1,.498;%
+SpringGreen2,0,.932,.464;%
+SpringGreen3,0,.804,.4;%
+SpringGreen4,0,.545,.27;%
+SteelBlue1,.39,.72,1;%
+SteelBlue2,.36,.675,.932;%
+SteelBlue3,.31,.58,.804;%
+SteelBlue4,.21,.392,.545;%
+Tan1,1,.648,.31;%
+Tan2,.932,.604,.288;%
+Tan3,.804,.52,.248;%
+Tan4,.545,.352,.17;%
+Thistle1,1,.884,1;%
+Thistle2,.932,.824,.932;%
+Thistle3,.804,.71,.804;%
+Thistle4,.545,.484,.545;%
+Tomato1,1,.39,.28;%
+Tomato2,.932,.36,.26;%
+Tomato3,.804,.31,.224;%
+Tomato4,.545,.21,.15;%
+Turquoise1,0,.96,1;%
+Turquoise2,0,.898,.932;%
+Turquoise3,0,.772,.804;%
+Turquoise4,0,.525,.545;%
+VioletRed1,1,.244,.59;%
+VioletRed2,.932,.228,.55;%
+VioletRed3,.804,.196,.47;%
+VioletRed4,.545,.132,.32;%
+Wheat1,1,.905,.73;%
+Wheat2,.932,.848,.684;%
+Wheat3,.804,.73,.59;%
+Wheat4,.545,.494,.4;%
+Yellow1,1,1,0;%
+Yellow2,.932,.932,0;%
+Yellow3,.804,.804,0;%
+Yellow4,.545,.545,0;%
+Gray0,.745,.745,.745;%
+Green0,0,1,0;%
+Grey0,.745,.745,.745;%
+Maroon0,.69,.19,.376;%
+Purple0,.628,.125,.94}
+%</x11names>
+%
+%<*test1>
+\documentclass[a4paper]{article}
+
+\usepackage{array,multicol,multido,textcomp}
+\usepackage{xcolor}[2005/03/24]
+\usepackage[hmargin={1.25cm,.75cm},vmargin=1.25cm,footskip=.5cm,nohead]{geometry}
+
+\newdimen\Argwd
+\newdimen\Errsum
+\newdimen\Errmax
+\newcount\Colors
+\newcount\Errors
+\newcount\Loops
+\newif\ifColor
+
+\makeatletter
+
+\def\DisplayColor#1#2#3%
+ {\global\advance\Loops\@ne
+ \@tempdima=#1\p@ \edef\@tempa{\the\@tempdima}%
+ \edef\Colori{\strip at pt\@tempdima}%
+ \ifColor
+ \@tempdimb=#2\p@ \edef\@tempb{\the\@tempdimb}%
+ \@tempdimc=#3\p@ \edef\@tempc{\the\@tempdimc}%
+ \edef\Colori{\Colori,\strip at pt\@tempdimb,\strip at pt\@tempdimc}%
+ \fi
+ \Make12\Make23\Make34\Make45\Make56\Make67%
+ \begin{tabular}{@{}ll*4{@{ }p{\Argwd}}@{}}
+ \Row1\Row2\Row3\Row4\Row5\Row6\noalign{\medskip}
+ \end{tabular}
+ \global\advance\Colors1 \relax\ifnum\Colors=30 \newpage\global\Colors=0 \fi}
+
+\def\Make#1#2%
+ {\edef\@@tmp
+ {\noexpand\definecolor{Color\romannumeral#1}%
+ {\@nameuse{Model\romannumeral#1}}{\@nameuse{Color\romannumeral#1}}%
+ }\@@tmp
+ \relax\ifnum#1<6
+ \convertcolorspec
+ {\@nameuse{Model\romannumeral#1}}{\@nameuse{Color\romannumeral#1}}%
+ {\@nameuse{Model\romannumeral#2}}\@@tmp
+ \XC at let@cN{Color\romannumeral#2}\@@tmp
+ \fi}
+\def\Row#1%
+ {\edef\@@tmp{\@nameuse{Color\romannumeral#1}\@nameuse{Row\romannumeral#1}}%
+ \expandafter\@Row\@@tmp}
+
+\def\@Row#1,#2,#3,#4,#5#6%
+ {\fcolorbox{black}{Color\romannumeral#5}{\phantom{000}}&
+ \csname Model\romannumeral#5\endcsname &
+ \ifodd#6 \@Error{#1}\@tempa \else #1\fi &
+ \ifColor\ifodd#6 \@Error{#2}\@tempb \else #2\fi\else #2\fi &
+ \ifColor\ifodd#6 \@Error{#3}\@tempc \else #3\fi\else #3\fi &
+ #4\\}
+
+\def\defModel#1#2#3#4% number, name, commas, check
+ {\@namedef{Model\romannumeral#1}{#2}\@namedef{Row\romannumeral#1}{#3#1#4}}
+
+\def\@Error#1#2%
+ {\ifdim#1\p@=#2\relax #1\else
+ \textcolor{red}{#1}\global\advance\Errors\@ne
+ \dimen@#2\advance\dimen at -#1\p@ \ifdim\dimen@<\z@\dimen at -\dimen@\fi
+ \global\advance\Errsum\dimen@
+ \ifdim\dimen@>\Errmax \global\Errmax\dimen@
+ \dimen@\@tempa \edef\@@tempa{\strip at pt\dimen@}%
+ \ifColor
+ \dimen@\@tempb \edef\@@tempb{\strip at pt\dimen@}%
+ \dimen@\@tempc \edef\@@tempc{\strip at pt\dimen@}%
+ \xdef\Errcase{\@@tempa\noexpand~\@@tempb\noexpand~\@@tempc}%
+ \else
+ \xdef\Errcase{\@@tempa}%
+ \fi
+ \fi
+ \fi}
+
+\newenvironment{ColorTest}[1]%
+ {\addcontentsline{toc}{section}{Color conversion chain: #1}
+ \Colors\z@ \Errors\z@ \Loops\z@ \Errsum\z@ \Errmax\z@
+ \begin{multicols}{3}\centering}%
+ {\end{multicols}\bigskip
+ \begin{tabular}{@{}l@{ = }l@{}}
+ \multicolumn2{@{}l@{}}{Rounding error statistics of color conversion test}\\
+ \multicolumn2{@{}l@{}}%
+ {$\textbf\Modeli\rightarrow \textbf\Modelii\rightarrow \textbf\Modeliii\rightarrow
+ \textbf\Modeliv\rightarrow \textbf\Modelv\rightarrow \textbf\Modelvi$:}\\[1ex]
+ number of examples& \number\Loops\\
+ number of errors& \number\Errors\\
+ sum of absolute errors& \strip at pt\Errsum\\
+ \ifnum\Errors>\z@
+ average error& \Errsum100\Errsum \dimen@\Errors\p@ \divide\dimen@\@m
+ \rdivide\Errsum\dimen@ \strip at pt\Errsum\textperiodcentered10\textsuperscript{-5}\\
+ maximum error& \strip at pt\Errmax{} @ \Modeli~\Errcase\\
+ \fi
+ \end{tabular}\newpage}
+
+\def\thepage{\sffamily\footnotesize\@nameuse{@arabic}\c at page}
+
+\makeatother
+
+\parindent0pt
+\setcounter{secnumdepth}{-1}
+
+\begin{document}
+
+\title{Color conversion with the \textsf{xcolor} package --- Examples}
+\author{Dr. Uwe Kern\thanks{This file is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors (\texttt{macros/latex/contrib/xcolor/}) or the homepage \texttt{www.ukern.de/tex/xcolor.html}. Please send error reports and suggestions for improvements to \texttt{xcolor at ukern.de}.}}
+\date{\XCfileversion{} (\XCfiledate)}
+\maketitle
+
+\begin{center}
+\begin{minipage}{.75\textwidth}
+\tableofcontents
+\end{minipage}
+\end{center}
+\newpage
+
+\sffamily\footnotesize
+\fboxrule.25pt
+\settowidth\Argwd{0.00000}
+
+\defModel1{rgb}{,,}0
+\defModel2{cmy}{,,}0
+\defModel3{cmyk}{,}0
+\defModel4{hsb}{,,}0
+\defModel5{rgb}{,,}1
+\defModel6{gray}{,,,,}0
+\Colortrue
+
+\begin{ColorTest}{rgb, cmy, cmyk, hsb, rgb, gray}
+\multido{\nR=1+-.1}{11}%
+ {\multido{\nG=1+-.1}{11}%
+ {\multido{\nB=1+-.1}{11}%
+ {\DisplayColor{\nR}{\nG}{\nB}}}}%
+\end{ColorTest}
+
+\defModel1{gray}{,,,,}0
+\defModel2{rgb}{,,}0
+\defModel3{cmy}{,,}0
+\defModel4{cmyk}{,}0
+\defModel5{hsb}{,,}0
+\defModel6{gray}{,,,,}1
+\Colorfalse
+
+\begin{ColorTest}{gray, rgb, cmy, cmyk, hsb, gray}
+\multido{\nG=1+-.01}{101}{\DisplayColor{\nG}{}{}}%
+\end{ColorTest}
+
+\end{document}
+%</test1>
+%
+%<*test2>
+\listfiles
+\documentclass{article}
+
+\usepackage{pstricks,pst-tree,pst-slpe,multido}
+\makeatletter
+\@ifpackagelater{pstricks}{2004/05/12}{}{\usepackage[pst]{xcolor}}
+\makeatother
+\usepackage{fvrb-ex}
+
+\def\textfraction{0.01}
+\def\topfraction{0.99}
+\def\bottomfraction{0.99}
+\def\floatpagefraction{0.70}
+\setlength\abovecaptionskip{12pt}
+\setlength\belowcaptionskip{10pt}
+\parindent0pt
+
+\begin{document}
+\title{Color extensions with the \textsf{xcolor} package --- \textsf{pstricks} examples}
+\author{Dr. Uwe Kern\thanks{This file is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors (\texttt{macros/latex/contrib/xcolor/}) or the homepage \texttt{www.ukern.de/tex/xcolor.html}. Please send error reports and suggestions for improvements to \texttt{xcolor at ukern.de}.}}
+\date{\XCfileversion{} (\XCfiledate)}
+\maketitle
+
+\centerline{\fcolorbox{red}{yellow!50}{This document is not suitable for pdf\LaTeX! Please use \LaTeX{} + \texttt{dvips} etc.}}
+
+\begin{figure}[htb]\caption{Modified version of an example from the \textsf{pstricks} manual; requires \textsf{pst-tree}}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \begin{pspicture}(-0.5,-2)(3,2)
+ \cnode(0,0){.5cm}{root}
+ \cnode*[linecolor=red](3,1.5){4pt}{A}
+ \cnode*[linecolor=red!72.5375!blue](3,0){4pt}{B}
+ \cnode*[linecolor=-red](3,-1.5){4pt}{C}
+ \psset{nodesep=3pt}
+ \ncline[linecolor=green!50!red]{root}{A}
+ \ncline[linecolor=blue]{root}{B}
+ \ncline[linecolor=-green!50!red]{root}{C}
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Moving from one color to its complement; requires \textsf{pst-slpe}}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \begin{pspicture}(4,1)
+ \psframe[fillstyle=slope,
+ slopeangle=30,
+ slopebegin=red!72.5375!blue,
+ slopeend=-red!72.5375!blue](4,1)
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Explicit color specification via a loop command; requires \textsf{multido}}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \psset{unit=1.75}%
+ \begin{pspicture}(0,-1)(2,1)
+ \multido{\rHue=0.00+0.01}{100}%
+ {\pscircle[linewidth=0.01,
+ linecolor={[hsb]{\rHue,1,1}}](1,0){\rHue}}
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Color series --- modified version of an example from the \textsf{pst-fill} manual; note that the \texttt{\string\multirput} command does not give the desired result here}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \newcommand*\Sheep
+ {\begin{pspicture}(3,1.5)
+ \pscustom[liftpen=2,fillstyle=solid,fillcolor=sheep!!+]%
+ {\pscurve(0.5,-0.2)(0.6,0.5)(0.2,1.3)(0,1.5)(0,1.5)
+ (0.4,1.3)(0.8,1.5)(2.2,1.9)(3,1.5)(3,1.5)(3.2,1.3)
+ (3.6,0.5)(3.4,-0.3)(3,0)(2.2,0.4)(0.5,-0.2)}
+ \pscircle*(2.65,1.25){0.12\psunit}% Eye
+ \psccurve*(3.5,0.3)(3.35,0.45)(3.5,0.6)(3.6,0.4)% Muzzle
+ \pscurve(3,0.35)(3.3,0.1)(3.6,0.05)% Mouth
+ \pscurve(2.3,1.3)(2.1,1.5)(2.15,1.7)
+ \pscurve(2.1,1.7)(2.35,1.6)(2.45,1.4)% Ear
+ \end{pspicture}}
+ \definecolorseries
+ {sheep}{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}
+ \resetcolorseries{sheep}
+ \psset{unit=0.4}
+ \begin{pspicture}(-3,-6)(0,7.5)
+ \Multido{\ry=6.0+-1.5}{5}%
+ {\rput(0,\ry){\Multido{}{5}{\Sheep}}}
+ \resetcolorseries{sheep}%
+ \multirput(-6,-6)(3,0)5{\Sheep}
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Interaction with native PostScript code --- $\gamma$-corrected wavelengths}
+\begin{Example}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \newcount\WL \unitlength.75pt
+ \def\WaveToPS#1%
+ {\definecolor{tmp}{rgb:wave}{#1}\extractcolorspecs{tmp}\tmpm\tmpc
+ \expandafter\WaveToPSi\tmpc,}
+ \def\WaveToPSi#1,#2,#3,{\pstVerb{/Red{#1}def /Green{#2}def /Blue{#3}def}}
+ \def\DisplayBar#1#2%
+ {\linethickness{1.25\unitlength}\WL=360
+ \pstVerb{/Gamma{#1}def}%
+ \multiput(360,#2)(1,0){456}%
+ {\WaveToPS{\the\WL}{\color{lambda}\line(0,1){50}}\global\advance\WL1}%
+ \linethickness{0.25\unitlength}\WL=360
+ \multiput(360,#2)(20,0){23}%
+ {\picture(0,0)
+ \line(0,-1){5}\multiput(5,0)(5,0){3}{\line(0,-1){2.5}}%
+ \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20
+ \endpicture}%
+ \put(350,#2){\makebox(0,50)[r]{\small$\gamma$\,=\,#1}}}
+ \pstVerb{/Corr{dup 0 gt {Gamma exp}if}def}
+ \definecolor[ps]{lambda}{rgb}{Red Corr Green Corr Blue Corr}%
+ \begin{picture}(510,345)(310,-10)
+ \sffamily\tiny
+ \DisplayBar{0.4}{0}%
+ \DisplayBar{0.6}{70}%
+ \DisplayBar{0.8}{140}%
+ \DisplayBar{1.0}{210}%
+ \DisplayBar{1.2}{280}%
+ \end{picture}
+\end{Example}
+\end{figure}
+
+\end{document}
+%</test2>
+%
+%<*test3>
+\listfiles
+\documentclass[a4paper]{article}
+\usepackage[showerrors,table,dvipsnames*,hyperref]{xcolor}[2005/12/21]
+\usepackage[margin=2.25cm]{geometry}
+\usepackage
+ [\GinDriver,hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,%
+ pdftitle={xcolor3 \XCfileversion{} (\XCfiledate)},pdfauthor={Dr. Uwe Kern},%
+ pdfsubject={Color extensions for LaTeX and pdfLaTeX},%
+ pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,%
+ conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}]{hyperref}
+
+\tracingcolors=4
+%%\tracingcolors=3
+%%\tracingcolors=2
+%%\tracingcolors=1
+%%\tracingcolors=0
+
+\parindent0pt
+\pagecolor{gray!25}
+
+\definecolors{JungleGreen,DarkOrchid}
+
+\begin{document}
+\title{Color extensions with the \textsf{xcolor} package --- various examples}
+\author{\href{mailto:xcolor at ukern.de}{\fboxrule0pt\fboxsep2pt\fbox{Dr. Uwe Kern}}}
+\date{\XCfileversion{} (\XCfiledate)
+\thanks{This file (\texttt{\jobname.tex}) is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors \texttt{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor/}{CTAN/macros/latex/contrib/xcolor/}} or the homepage \texttt{\href{http://www.ukern.de/tex/xcolor.html}{www.ukern.de/tex/xcolor.html}}. Please send error reports and suggestions for improvements to \texttt{\href{mailto:xcolor at ukern.de}{xcolor at ukern.de}}.}}
+\maketitle
+
+The purpose of this file is to demonstrate a variety of capabilities including the logging facilities of the \textsf{xcolor} package.
+By playing around with different values of \texttt{\string\tracingcolors}, one can observe the different behavior in the \texttt{log} file.
+
+\section{Predefined colors}
+
+\begingroup
+\small\sffamily
+\rowcolors1{}{}
+\begin{testcolors}[rgb,cmyk,hsb,HTML,gray]
+\testcolor{red}
+\testcolor{green}
+\testcolor{blue}
+\testcolor{cyan}
+\testcolor{magenta}
+\testcolor{yellow}
+\testcolor{orange}
+\testcolor{violet}
+\testcolor{purple}
+\testcolor{brown}
+\testcolor{pink}
+\testcolor{olive}
+\testcolor{black}
+\testcolor{darkgray}
+\testcolor{gray}
+\testcolor{lightgray}
+\testcolor{white}
+\noalign{\medskip}\hline\noalign{\medskip}
+\testcolor{-red}
+\testcolor{-green}
+\testcolor{-blue}
+\testcolor{-cyan}
+\testcolor{-magenta}
+\testcolor{-yellow}
+\testcolor{-orange}
+\testcolor{-violet}
+\testcolor{-purple}
+\testcolor{-brown}
+\testcolor{-pink}
+\testcolor{-olive}
+\testcolor{-black}
+\testcolor{-darkgray}
+\testcolor{-gray}
+\testcolor{-lightgray}
+\testcolor{-white}
+\noalign{\medskip}\hline\noalign{\medskip}
+\testcolor{JungleGreen}
+\testcolor{DarkOrchid}
+\noalign{\medskip}\hline\noalign{\medskip}
+\testcolor{-JungleGreen}
+\testcolor{-DarkOrchid}
+\end{testcolors}
+\endgroup
+
+\vfill
+
+\clearpage
+\pagecolor{white}
+
+\section{Color definition and application}
+
+\providecolor{dummy}{rgb}{.6,.5,.4}
+\definecolor{dummy}{rgb}{.6,.5,.4}
+\providecolor{dummy}{rgb}{.6,.5,.4}
+\hbox{\textcolor{dummy}{Test with \texttt{\string\definecolor}}}
+
+\bigskip
+
+Comma-separated and space-separated definitions:
+
+\definecolor{c1}{rgb}{.7,.6,.5}
+\definecolor{c2}{rgb}{.7 .6 .5}
+\colorlet{c1a}{c1}
+\colorlet{c2a}{c2}
+
+\textcolor{c1}{identical} =
+\textcolor{c2}{identical} =
+\textcolor{c1a}{identical} =
+\textcolor{c2a}{identical} =
+\textcolor[rgb]{.7,.6,.5}{identical} =
+\textcolor[rgb]{.7 .6 .5}{identical} =
+\textcolor{rgb,10:red,7;green,6;blue,5}{identical}
+\textcolor{rgb,15:red,10.5;green,9;blue,7.5}{identical}
+
+\medskip
+
+\begingroup
+\sffamily
+\begin{testcolors}
+\testcolor{c1}
+\testcolor{c2}
+\testcolor{c1a}
+\testcolor{c2a}
+\testcolor[rgb]{.7,.6,.5}
+\testcolor[rgb]{.7 .6 .5}
+\testcolor{rgb,10:red,7;green,6;blue,5}
+\testcolor{rgb,15:red,10.5;green,9;blue,7.5}
+\end{testcolors}
+\endgroup
+
+\bigskip
+
+\textcolor{rgb:red!50,4;green!25,2}{Another extended color expression (rgb:red!50,4;green!25,2)}.
+
+\bigskip
+
+\begingroup
+\color{black}
+Test with named colors:\par
+\color{blue}
+Test: \textcolor[named]{JungleGreen}{JungleGreen};
+Test: \textcolor{JungleGreen}{JungleGreen};
+Test: \textcolor{JungleGreen!50!DarkOrchid}{JungleGreen!50!DarkOrchid};
+Test: \textcolor{green!50!red}{green!50!red}.
+\endgroup
+
+\bigskip
+
+{\color[rgb]{.4,.5,.6}Test with \texttt{\string\color}}
+
+\bigskip
+Current color application:\par
+\def\test{current, \textcolor{.!50}{50\%}, \textcolor{-.}{complement},
+ \textcolor{yellow!50!.}{mix}}
+\textcolor{blue}{\test} and \textcolor{red}{\test},\par
+\def\Test{\color{.!80}Test}
+\textcolor{blue}{\Test\Test\Test\Test\Test} and
+\textcolor{red}{\Test\Test\Test\Test\Test}.
+
+\bigskip
+Current color test with \texttt{\string\definecolorseries}:\par
+\begingroup
+\color{blue}
+\definecolorseries{foo}{rgb}{last}{.}{-.}
+\resetcolorseries[5]{foo}
+\def\test{\hbox to 1em{{\color{foo!!+}\vrule width 1em height 1.5ex}}}
+Test\test\test\test\test\test\test Test
+
+\resetcolorseries[5]{foo}
+\def\test{\hbox to 1em{{\color{foo!!++}\vrule width 1em height 1.5ex}}}
+Test\test\test\test\test\test\test Test
+
+\resetcolorseries[5]{foo}
+\def\test{\hbox to 1em{{\color{foo!![2]}\vrule width 1em height 1.5ex}}}
+Test\test\test\test\test\test\test Test
+
+\endgroup
+
+\section{Color in tables}
+
+\rowcolors[\hline]{1}{green!25}{yellow!50}
+\begin{tabular}{ll}
+test & row \number\rownum\\
+test & row \number\rownum\\
+\rowcolor{blue!25}
+test & row \number\rownum\\
+test & row \number\rownum\\
+\hiderowcolors
+test & row \number\rownum\\
+test & row \number\rownum\\
+\showrowcolors
+test & row \number\rownum\\
+test & row \number\rownum\\
+\multicolumn{1}%
+ {>{\columncolor{red!12}}l}{test} & row \number\rownum\\
+\end{tabular}
+
+\section{Color information}
+
+Type test:
+\makeatletter
+\@namedef{\string\color at foo1}{foo1{}{}{}{}}\edef\tempa{\XC at type{foo1}}\tempa
+\@namedef{\string\color at foo2}{\xcolor@{foo2}{}{}{}}\edef\tempb{\XC at type{foo2}}\tempb
+\@namedef{\string\color at foo3}{\xcolor@{}{foo3}{}{}}\edef\tempc{\XC at type{foo3}}\tempc
+\@namedef{\string\color at foo4}{\xcolor@{}{}{foo4}{}}\edef\tempd{\XC at type{foo4}}\tempd
+\makeatother
+
+\end{document}
+%</test3>
+%
+%<*test4>
+\listfiles
+\documentclass[a4paper]{article}
+%%\PassOptionsToPackage{dvipdf}{xcolor}
+%%\PassOptionsToPackage{dvipdfm}{xcolor}
+%%\PassOptionsToPackage{dvipdfmx}{xcolor}
+%%\PassOptionsToPackage{dvips}{xcolor}
+%%\PassOptionsToPackage{dvipsone}{xcolor}
+%%\PassOptionsToPackage{dviwin}{xcolor}
+%%\PassOptionsToPackage{dviwindo}{xcolor}
+%%\PassOptionsToPackage{emtex}{xcolor}
+%%\PassOptionsToPackage{oztex}{xcolor}
+%%\PassOptionsToPackage{pctex32}{xcolor}
+%%\PassOptionsToPackage{pctexhp}{xcolor}
+%%\PassOptionsToPackage{pctexps}{xcolor}
+%%\PassOptionsToPackage{pctexwin}{xcolor}
+%%\PassOptionsToPackage{pdftex}{xcolor}
+%%\PassOptionsToPackage{tcidvi}{xcolor}
+%%\PassOptionsToPackage{textures}{xcolor}
+%%\PassOptionsToPackage{truetex}{xcolor}
+%%\PassOptionsToPackage{vtex}{xcolor}
+%%\PassOptionsToPackage{xdvi}{xcolor}
+%%\PassOptionsToPackage{xetex}{xcolor}
+%%\PassOptionsToPackage{prologue}{xcolor}
+%%\PassOptionsToPackage{kernelfbox}{xcolor}
+%%\PassOptionsToPackage{xcdraw}{xcolor}
+\usepackage[emtex]{graphics}
+\usepackage{xcolor}
+\usepackage[margin=1.25cm,noheadfoot]{geometry}
+\pagestyle{empty}
+\parindent0pt
+\nofiles
+\let\familydefault\sfdefault
+\makeatletter
+%% special code for driver list construction via
+%% latex \def\xcdriverlist{1}\input{xcolor4}
+%% writes list in file xcolor4.tmp
+\@ifundefined{xcdriverlist}{}{%
+%% optional * (skips test whether #1.def exists)
+%% #1 = driver
+%% #2 = additional options (stored in \options@#2)
+%% #3 = processor 1
+%% #4 = output format 1
+%% #5 = processor 2
+%% #6 = output format 2
+%% #7 = processor 3
+%% #8 = output format 3
+\def\0{\@ifstar
+ {\def\@@tmp####1{\@firstoftwo}\1}{\def\@@tmp####1{\IfFileExists{####1.def}}\1}}
+\def\1#1#2#3#4#5#6#7#8{\@@tmp{#1}%
+ {\XC at let@Nc\@@tmp{options@#2}
+ \ifx\@@tmp\@empty\else
+ \edef\@@tmp{,\@@tmp}\XC at replace\@@tmp,{;#1-}\XC at replace\@@tmp;,
+ \fi
+ \edef\@@tmp{:=#1\@@tmp}
+ \expandafter\@for\expandafter\@tempa\@@tmp\do
+ {\let\@@tmp\@tempa\XC at replace\@@tmp-,
+ \edef\@@tmp{\@tempa\space\string\PassOptionsToPackage{\@@tmp}{xcolor}}
+ \@namexdef{list@#4}{\@nameuse{list@#4},#3 \@@tmp}
+ \@namexdef{list@#6}{\@nameuse{list@#6},#5 \@@tmp}
+ \@namexdef{list@#8}{\@nameuse{list@#8},#7 \@@tmp}}}%
+ {\typeout{No file `#1.def' found.}}}
+\def\list@{}
+\def\list at dvi{}
+\def\list at ps{}
+\def\list at pdf{}
+\@namedef{options at 0}{}
+\@namedef{options at 1}{kernelfbox,prologue,xcdraw,kernelfbox-xcdraw,prologue-xcdraw}
+\0{dvips}1{latex}{dvi}{dvips}{ps}{ps2pdf}{pdf}
+\0{pctex32}0{latex}{dvi}{dvips}{ps}{ps2pdf}{pdf}
+\0{dvipdf}0{latex}{dvi}{dvipdf}{pdf}{}{}
+\0{dvipdfm}1{latex}{dvi}{dvipdfm}{pdf}{}{}
+\0{dvipdfmx}0{latex}{dvi}{dvipdfmx}{pdf}{}{}
+\0{dvipsone}0{latex}{dvi}{}{}{}{}
+\0{dviwin}0{latex}{dvi}{}{}{}{}
+\0*{dviwindo}0{latex}{dvi}{}{}{}{}
+\0{emtex}0{latex}{dvi}{}{}{}{}
+\0*{oztex}0{latex}{dvi}{}{}{}{}
+\0{pctexhp}0{latex}{dvi}{}{}{}{}
+\0{pctexps}0{latex}{dvi}{}{}{}{}
+\0{pctexwin}0{latex}{dvi}{}{}{}{}
+\0{tcidvi}0{latex}{dvi}{}{}{}{}
+\0{textures}0{latex}{dvi}{}{}{}{}
+\0{truetex}0{latex}{dvi}{}{}{}{}
+\0*{xdvi}0{latex}{dvi}{}{}{}{}
+\0{pdftex}1{pdflatex}{pdf}{}{}{}{}
+\0{vtex}0{vlatex}{pdf}{}{}{}{}
+\0{xetex}0{xelatex}{pdf}{}{}{}{}
+\newwrite\@tempa\immediate\openout\@tempa=\jobname.tmp
+\@tfor\@tempb:={dvi}{ps}{pdf}\do
+ {\edef\@@tmp{\@nameuse{list@\@tempb}}\edef\@@tmp{:=\expandafter\@gobble\@@tmp}
+ \expandafter\@for\expandafter\@@tmp\@@tmp\do
+ {\immediate\write\@tempa{\@@tmp}}}
+\immediate\closeout\@tempa
+\@@end}% end of driver list construction code
+\edef\Options{\expandafter\@gobble\XC@@opt}
+\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}{dviwindo}%
+ {emtex}{oztex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}%
+ {tcidvi}{textures}{truetex}{vtex}{xdvi}{xetex}%
+ {natural}{table}{fixpdftex}{hyperref}{showerrors}{hideerrors}%
+ {override}{usenames}{nodvipsnames}{debugshow}\do
+ {\expandafter\XC at replace\expandafter\Options\expandafter{\@@tmp,}{}}
+\edef\Options{\XC@@drv,\Options}
+\def\@@tmp#1,#2%
+ {\ifx,#2#1\expandafter\remove at to@nnil\else#1', `\expandafter\@@tmp\fi#2}
+\edef\Options{`\expandafter\@@tmp\Options,,\@nnil'}
+\makeatother
+\begin{document}
+\vbox to\textheight{\vss\centering
+{\Large\textbf{xcolor} driver test: \Options}
+\vskip0.5cm
+\begin{testcolors}[rgb,hsb,cmyk,gray,HTML]
+\testcolor{magenta}
+\testcolor[rgb]{1,0,1}
+\testcolor[hsb]{0.83333,1,1}
+\testcolor[cmyk]{0,1,0,0}
+\testcolor[gray]{0.41}
+\noalign{\medskip}
+\testcolor{blue}
+\testcolor[rgb]{0,0,1}
+\testcolor[hsb]{0.66667,1,1}
+\testcolor[cmyk]{1,1,0,0}
+\testcolor[gray]{0.11}
+\noalign{\medskip}
+\testcolor{cyan}
+\testcolor[rgb]{0,1,1}
+\testcolor[hsb]{0.5,1,1}
+\testcolor[cmyk]{1,0,0,0}
+\testcolor[gray]{0.7}
+\noalign{\medskip}
+\testcolor{green}
+\testcolor[rgb]{0,1,0}
+\testcolor[hsb]{0.33333,1,1}
+\testcolor[cmyk]{1,0,1,0}
+\testcolor[gray]{0.59}
+\noalign{\medskip}
+\testcolor{yellow}
+\testcolor[rgb]{1,1,0}
+\testcolor[hsb]{0.16667,1,1}
+\testcolor[cmyk]{0,0,1,0}
+\testcolor[gray]{0.89}
+\noalign{\medskip}
+\testcolor{red}
+\testcolor[rgb]{1,0,0}
+\testcolor[hsb]{0,1,1}
+\testcolor[cmyk]{0,1,1,0}
+\testcolor[gray]{0.3}
+\noalign{\medskip}
+\testcolor{black}
+\testcolor[rgb]{0,0,0}
+\testcolor[hsb]{0,0,0}
+\testcolor[cmyk]{0,0,0,1}
+\testcolor[gray]{0}
+\noalign{\medskip}
+\testcolor{gray}
+\testcolor[rgb]{0.5,0.5,0.5}
+\testcolor[hsb]{0,0,0.5}
+\testcolor[cmyk]{0,0,0,0.5}
+\testcolor[gray]{0.5}
+\noalign{\medskip}
+\testcolor{white}
+\testcolor[rgb]{1,1,1}
+\testcolor[hsb]{0,0,1}
+\testcolor[cmyk]{0,0,0,0}
+\testcolor[gray]{1}
+\noalign{\medskip\smallskip}
+f(color)box &
+\multicolumn5{c}{\def\i{\fbox{\a}}\def\ii{\fcolorbox{red}{yellow}{\a}}\def\iii{\scalebox{3}}%
+\def\a{{\setbox0=\hbox to3ex{\hss\textcolor{blue}{\vrule width .75ex height1.5ex depth1.5ex}\hss}\ht0=0pt\dp0=0pt\box0}}%
+\fboxsep0.333ex \i\quad\ii\quad\iii\i\quad\iii\ii\quad\fboxrule.75ex \iii\i\quad\iii\ii}
+\end{testcolors}
+\vskip0.5cm
+{\footnotesize This table was generated with \textbf{xcolor4.tex} which is part of the \textbf{xcolor} package \XCfileversion{} (\XCfiledate) by Uwe Kern.}
+\vss}
+\end{document}
+%</test4>
+%
+% \fi
+\endinput
+%%
+%% End of file `xcolor.dtx'.
diff --git a/ref/glance/xcolor.ins b/ref/glance/xcolor.ins
new file mode 100644
index 0000000..9941813
--- /dev/null
+++ b/ref/glance/xcolor.ins
@@ -0,0 +1,28 @@
+%% Package `xcolor' by Dr. Uwe Kern
+%%
+%% Extract all package files:
+%% `latex xcolor.ins'
+%%
+%% Put the generated files to their respective locations
+%% within the TeX installation:
+%% *.sty -> /tex/latex/xcolor/
+%% *.def -> /tex/latex/xcolor/
+%% *.pro -> /dvips/xcolor/
+%%
+%% Create the documentation:
+%% `latex xcolor.dtx'
+%% `latex xcolor.dtx'
+%% `makeindex -s gind.ist xcolor.idx'
+%% `latex xcolor.dtx'
+%% `latex xcolor.dtx'
+%%
+%% Run the test files (N=1,2,...):
+%% `latex xcolorN.tex'
+%% `latex xcolorN.tex'
+%%
+\def\batchfile{xcolor.ins}
+\input docstrip.tex
+\askforoverwritefalse
+\generate{\file{xcolor.lox}{\from{xcolor.dtx}{extract}}}
+\batchinput{xcolor.lox}
+\endbatchfile
diff --git a/ref/glance/xcolor.lox b/ref/glance/xcolor.lox
new file mode 100644
index 0000000..0323304
--- /dev/null
+++ b/ref/glance/xcolor.lox
@@ -0,0 +1,57 @@
+%%
+%% This is file `xcolor.lox',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `extract')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor.lox.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\XCfileversion{v2.09}%
+\def\XCfiledate{2005/12/21}%
+\def\ukfile#1#2#3#4%
+ {\def\ukhead
+ {\ifnum#1>2 \perCent!^^J\fi
+ \defaultpreamble^^J\MetaPrefix^^J%
+ \ifcase#1
+ \string\ProvidesPackage{#2}^^J\or
+ \string\ProvidesFile{#2}^^J\or
+ \string\ProvidesFile{#2.def}^^J\or
+ \MetaPrefix\space #2.pro (PostScript/dvips header file)^^J\MetaPrefix\space
+ \fi
+ \space[\XCfiledate\space\XCfileversion\space#4\space(UK)]}
+ \usepreamble\ukhead
+ \file{#2.\ifcase#1sty\or tex\or def\or pro\fi}{\from{xcolor.dtx}{#3}}}
+\generate{
+\ukfile0{xcolor}{package}{LaTeX color extensions}
+\ukfile2{svgnam}{svgnames}{Predefined colors according to SVG 1.1}
+\ukfile2{x11nam}{x11names}{Predefined colors according to Unix/X11}
+\ukfile1{xcolor1}{test1}{Color conversion test}
+\ukfile1{xcolor2}{test2}{Pstricks color test}
+\ukfile1{xcolor3}{test3}{Color logging test}
+\ukfile1{xcolor4}{test4}{Color driver test}
+\def\PStail{\MetaPrefix\space End of file `\outFileName'.}
+\usepostamble\PStail
+\ukfile3{xcolor}{dvips}{LaTeX color extensions}
+}
+\endinput
+%%
+%% End of file `xcolor.lox'.
diff --git a/ref/glance/xcolor.pro b/ref/glance/xcolor.pro
new file mode 100644
index 0000000..ced9a1e
--- /dev/null
+++ b/ref/glance/xcolor.pro
@@ -0,0 +1,56 @@
+%!
+%%
+%% This is file `xcolor.pro',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `dvips')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor.pro.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%% xcolor.pro (PostScript/dvips header file)
+%% [2005/12/21 v2.09 LaTeX color extensions (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+userdict begin
+/setcmycolor{0 setcmykcolor}def
+/XCbd{bind def}bind def
+/XCed{exch def}XCbd
+/XCdef{exch dup TeXDict exch known{pop pop}{XCed}ifelse}XCbd
+/XCsetcolor{cvx counttomark array astore cvx exch pop XCdef}XCbd
+/XCcmy{mark exch exec/setcmycolor XCsetcolor}XCbd
+/XCcmyk{mark exch exec/setcmykcolor XCsetcolor}XCbd
+/XCgray{mark exch exec/setgray XCsetcolor}XCbd
+/XChsb{mark exch exec/sethsbcolor XCsetcolor}XCbd
+/XCrgb{mark exch exec/setrgbcolor XCsetcolor}XCbd
+/XC!b{save/setgray{pop}def}XCbd
+/XC!e{restore}XCbd
+/XCsp2bp{1 65781.76 div dup scale}XCbd
+/XCsetline
+ {setlinewidth [] 0 setdash 2 setlinecap 0 setlinejoin 4 setmiterlimit}XCbd
+/XCboxframe{/d XCed/h XCed/w XCed/l XCed w 0 gt{h d neg gt{l 0 gt
+ {XCsp2bp l XCsetline
+ l 2 div dup translate
+ 0 d neg w l sub h l sub d add rectstroke}if}if}if}XCbd
+/XCcolorblock{/d XCed/h XCed/w XCed w 0 gt{h d neg gt
+ {XCsp2bp 0 XCsetline
+ 0 d neg w h d add rectfill}if}if}XCbd
+end
+%% End of file `xcolor.pro'.
diff --git a/ref/glance/xcolor.sty b/ref/glance/xcolor.sty
new file mode 100644
index 0000000..23d6d61
--- /dev/null
+++ b/ref/glance/xcolor.sty
@@ -0,0 +1,1451 @@
+%%
+%% This is file `xcolor.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor.sty.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesPackage{xcolor}
+ [2005/12/21 v2.09 LaTeX color extensions (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+%% Please send error reports and suggestions for
+%% improvements to the above email address.
+%%
+%% This package contains code copied from
+%%
+%% color.dtx [1999/02/16 v1.0i Standard LaTeX Color (DPC)]
+%% Copyright (C) 1994--1999 David Carlisle
+%%
+%% which is part of the Standard LaTeX `Graphics Bundle'.
+%%
+\NeedsTeXFormat{LaTeX2e}
+\expandafter\edef\csname XC at catcodes\endcsname
+ {\catcode`\noexpand\@\the\catcode`\@\relax
+ \catcode`\noexpand\!\the\catcode`\!\relax
+ \catcode`\noexpand\:\the\catcode`\:\relax
+ \catcode`\noexpand\-\the\catcode`\-\relax
+ \catcode`\noexpand\+\the\catcode`\+\relax
+ \catcode`\noexpand\;\the\catcode`\;\relax
+ \catcode`\noexpand\/\the\catcode`\/\relax
+ \catcode`\noexpand\"\the\catcode`\"\relax
+ \catcode`\noexpand\>\the\catcode`\>\relax
+ \catcode`\noexpand\^^A\the\catcode`\^^A\relax}
+\catcode`\@=11
+\catcode`\!=12
+\catcode`\:=12
+\catcode`\-=12
+\catcode`\+=12
+\catcode`\;=12
+\catcode`\/=12
+\catcode`\"=12
+\catcode`\>=12
+\catcode`\^^A=\catcode`\%
+\edef\XC@@{\expandafter\noexpand\csname\string\XC@@\endcsname}
+\newif\ifcolors@ \colors at true
+\newif\ifcolorerrors@
+\newif\ifglobalcolors \globalcolorsfalse
+\newif\ifdefinecolors \definecolorstrue
+\newif\ifconvertcolorsD
+\newif\ifconvertcolorsU
+\newif\ifblendcolors
+\newif\ifmaskcolors
+\newif\ifXC@@fbox \XC@@fboxtrue
+\newif\ifXC@@tst
+\def\c at lor@error#1%
+ {\ifcolorerrors@\PackageError{xcolor}{Undefined color #1}\@ehc
+ \else\PackageWarning{xcolor}{Undefined color #1}\fi}
+\def\XC at append#1#2%
+ {\ifx#1\@undefined\def#1{#2}\else\ifx#1\relax\def#1{#2}\else
+ \toks@\expandafter{#1#2}\edef#1{\the\toks@}\fi\fi}
+\def\XC at let@cc#1{\expandafter\XC at let@Nc\csname#1\endcsname}
+\providecommand*\@namelet[1]{\expandafter\XC at let@Nc\csname#1\endcsname}
+\def\XC at let@Nc#1#2{\expandafter\let\expandafter#1\csname#2\endcsname}
+\def\XC at let@cN#1{\expandafter\let\csname#1\endcsname}
+\def\@namexdef#1{\expandafter\xdef\csname #1\endcsname}
+\def\aftergroupdef#1#2%
+ {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{#2}}
+\def\aftergroupedef#1#2%
+ {\edef\@@tmp{\def\noexpand#1{#2}}\expandafter\endgroup\@@tmp}
+\begingroup
+\catcode`\!=13 \catcode`\:=13 \catcode`\-=13 \catcode`\+=13
+\catcode`\;=13 \catcode`\/=13 \catcode`\"=13 \catcode`\>=13
+\gdef\XC at edef#1#2%
+ {\begingroup
+ \ifnum\catcode`\!=13 \edef!{\string!}\fi
+ \ifnum\catcode`\:=13 \edef:{\string:}\fi
+ \ifnum\catcode`\-=13 \edef-{\string-}\fi
+ \ifnum\catcode`\+=13 \edef+{\string+}\fi
+ \ifnum\catcode`\;=13 \edef;{\string;}\fi
+ \ifnum\catcode`\"=13 \edef"{\string"}\fi
+ \ifnum\catcode`\>=13 \edef>{\string>}\fi
+ \edef#1{#2}\@onelevel at sanitize#1\aftergroupdef#1#1}
+\gdef\XC at mdef#1#2%
+ {\begingroup
+ \ifnum\catcode`\/=13 \edef/{\string/}\fi
+ \ifnum\catcode`\:=13 \edef:{\string:}\fi
+ \edef#1{#2}\@onelevel at sanitize#1\aftergroupdef#1#1}
+\endgroup
+\def\XC at sdef#1#2{\edef#1{#2}\@onelevel at sanitize#1}
+\def\@ifxempty#1{\@@ifxempty#1\@@ifxempty\XC@@}
+\def\@@ifxempty#1#2\XC@@
+ {\ifx#1\@@ifxempty
+ \expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+\long\def\XC at ifxcase#1#2#3%
+ {\long\def\@@tmp##1##2%
+ {\ifx#1##1%
+ \toks@{##2}\expandafter\remove at to@nnil\else\expandafter\@@tmp\fi}%
+ \@@tmp#2#1{#3}\@nnil\the\toks@}
+\long\def\XC at ifcase#1#2#3%
+ {\long\def\@@tmp##1##2%
+ {\@expandtwoargs\in@{,#1,}{,##1,}\ifin@
+ \toks@{##2}\expandafter\remove at to@nnil\else\expandafter\@@tmp\fi}%
+ \@@tmp#2{#1}{#3}\@nnil\the\toks@}
+\def\XC@@opt{,}
+\def\@ifXCopt#1%
+ {\@expandtwoargs\in@{,#1,}{\XC@@opt}%
+ \ifin@\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi}
+\let\XC@@pkg\relax
+\let\XC at declareoption\@declareoption
+\long\def\@declareoption#1#2%
+ {\XC at declareoption{#1}{\edef\XC@@opt{\XC@@opt#1,}#2}}
+\def\selectcolormodel#1%
+ {\@ifundefined{XC at mod@#1}%
+ {\c at lor@error{target model `#1'}}%
+ {\expandafter\ifx\csname XC at mod@#1\endcsname\XC at mod@natural
+ \def\XC at tgt@mod##1{##1}\convertcolorsDfalse\convertcolorsUfalse
+ \else\expandafter\ifx\csname XC at mod@#1\endcsname\XC at mod@named
+ \c at lor@error{target model `#1'}
+ \else
+ \edef\XC at tgt@mod##1{#1}\convertcolorsDtrue\convertcolorsUtrue
+ \fi\fi}}
+\@tfor\@@tmp:={Hsb}{tHsb}{ignore}{named}{ps}{wave}\do
+ {\expandafter\XC at sdef\csname XC at mod@\@@tmp\endcsname{\@@tmp}}
+\@tfor\@@tmp:={natural}{rgb}{cmy}{cmyk}{hsb}{gray}{RGB}{HTML}{HSB}{Gray}\do
+ {\expandafter\XC at sdef\csname XC at mod@\@@tmp\endcsname{\@@tmp}%
+ \edef\@@tmp
+ {\noexpand\DeclareOption{\@@tmp}{\noexpand\selectcolormodel{\@@tmp}}}%
+ \@@tmp}
+\DeclareOption{monochrome}
+ {\ExecuteOptions{hideerrors}%
+ \AtEndOfPackage
+ {\colors at false
+ \def\set at color{\c at lor@special\m at ne
+ {color push \current at color}\aftergroup\reset at color}%
+ \def\reset at color{\c at lor@special\m at ne{color pop}}%
+ \def\set at page@color{\c at lor@special\m at ne{background \current at color}}}}
+\let\XC@@names\relax
+\providecommand*\colornameprefix{XC@}
+\let\XC@@nameprefix\colornameprefix
+\def\XC at declarenames#1#2#3%
+ {\DeclareOption{#1}{\XC at append\XC@@names
+ {#3\definecolorstrue\input{#2.def}\definecolorstrue
+ \let\colornameprefix\XC@@nameprefix}}
+ \DeclareOption{#1*}{\XC at append\XC@@names
+ {#3\definecolorsfalse\input{#2.def}\definecolorstrue
+ \let\colornameprefix\XC@@nameprefix}}}
+\XC at declarenames{dvipsnames}{dvipsnam}{\let\colornameprefix\@empty}
+\XC at declarenames{svgnames}{svgnam}{}
+\XC at declarenames{x11names}{x11nam}{}
+\XC at declarenames{hksnames}%
+ {hks\ifcase\paperquality k\or n\or k\or z\else n\fi nam}{}
+\XC at declarenames{pmsnames}{pmsnam}{}
+\XC at declarenames{ralnames}{ralnam}{}
+\DeclareOption{table}{\XC at append\XC@@pkg{\RequirePackage{colortbl}}}
+\DeclareOption{fixpdftex}{\XC at append\XC@@pkg{\RequirePackage{pdfcolmk}}}
+\DeclareOption{pst}{\def\XC at pst{\RequirePackage{pstcol}}}
+\DeclareOption{hyperref}
+ {\@tfor\@@tmp:={cite}{file}{link}{menu}{page}{run}{url}\do
+ {\expandafter\edef\csname KV at Hyp@x\@@tmp bordercolor\endcsname #1%
+ {\noexpand\XC at bordercolor{\@@tmp}{#1}}}%
+ \AtEndOfPackage
+ {\GetGinDriver\def\KV at Hyp@xpdfborder#1{\edef\@pdfborder{#1}}%
+ \@tfor\@@tmp:={dvips}\do
+ {\ifx\GinDriver\@@tmp
+ \def\KV at Hyp@xpdfborder#1%
+ {\edef\@pdfborder{#1}\expandafter\XC at pdfborder\@pdfborder\relax}%
+ \@break at tfor\fi}}}
+\providecommand*\Gin at driver{}
+\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}%
+ {emtex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}%
+ {tcidvi}{textures}{truetex}{vtex}{xetex}\do
+ {\edef\@@tmp{\noexpand\DeclareOption{\@@tmp}%
+ {\def\noexpand\Gin at driver{\@@tmp.def}}}%
+ \@@tmp}
+\DeclareOption{dviwindo}{\ExecuteOptions{dvipsone}}
+\DeclareOption{oztex}{\ExecuteOptions{dvips}}
+\DeclareOption{xdvi}{\ExecuteOptions{dvips,monochrome}}
+\DeclareOption{xcdraw}{\def\XC@@xcd@{1}}
+\DeclareOption{noxcdraw}{\def\XC@@xcd@{-1}}
+\DeclareOption{prologue}{\def\XC@@xcp@{1}}
+\DeclareOption{kernelfbox}{\XC@@fboxfalse}
+\DeclareOption{showerrors}{\colorerrors at true}
+\DeclareOption{hideerrors}{\colorerrors at false}
+\DeclareOption{debugshow}{\catcode`\^^A=9 \let\GDebug\typeout}
+\DeclareOption*%
+ {\PackageInfo{xcolor}{Package option `\CurrentOption' ignored}}
+\def\XC@@xcd@{-1}
+\def\XC@@xcp@{-1}
+\ExecuteOptions{natural,showerrors}
+\InputIfFileExists{color.cfg}{}{}
+\let\@declareoption\XC at declareoption
+\ProcessOptions\relax
+\edef\Gin at driver{\Gin at driver}
+\if!\Gin at driver!
+ \PackageError{xcolor}
+ {No driver specified}
+ {You should make a default driver option in a file \MessageBreak
+ color.cfg\MessageBreak
+ eg: \protect\ExecuteOptions{dvips}}
+\else
+ \PackageInfo{xcolor}{Driver file: \Gin at driver}
+ \@ifundefined{ver@\Gin at driver}{\input{\Gin at driver}}{}
+ \def\@@tmp#1.def{\def\XC@@drv{#1}}
+ \expandafter\@@tmp\Gin at driver
+\fi
+\count@\XC@@xcd@ \advance\count@\XC@@xcp@\relax
+\ifnum\count@>-2
+ \XC at ifcase\XC@@drv
+ {{dvips,pctex32}%
+ {\def\@tempa{0}
+ \def\XC at special#1{\special{ps:XC!b}\special{"#1}\special{ps:XC!e}}}%
+ {pdftex}%
+ {\def\@tempa{1}
+ \def\XC at special#1{\pdfliteral{ q #1 Q }}}%
+ {dvipdfm}%
+ {\def\@tempa{1}
+ \def\XC at special#1{\special{pdf: content #1}}}%
+ }{\def\@tempa{-1}}
+ \ifnum\XC@@xcd@>\m at ne\let\XC@@xcd@\@tempa\fi
+ \ifnum\XC@@xcp@>\m at ne\let\XC@@xcp@\@tempa\fi
+ \ifnum\@tempa=0 \AtBeginDvi{\special{header=xcolor.pro}}\fi
+ \ifcase\XC@@xcp@
+ \AtBeginDvi{\special{header=\jobname.xcp}}
+ \newwrite\XC@@xcp\immediate\openout\XC@@xcp=\jobname.xcp
+ \immediate\write\XC@@xcp{\@percentchar!}
+ \immediate\write\XC@@xcp{TeXDict begin}
+ \AtEndDocument
+ {\immediate\write\XC@@xcp{end}\immediate\closeout\XC@@xcp}
+ \fi
+\fi
+\@nameuse{XC at pst}
+\@namedef{ver at color.sty}{1999/02/16}
+\XC@@pkg
+\long\def\@secondoffive#1#2#3#4#5{#2}
+\long\def\@thirdoffive#1#2#3#4#5{#3}
+\def\xglobal{\xglobal at stop\begingroup\futurelet\@@tok\xglobal at test}
+\def\xglobal at test
+ {\expandafter\@tfor\expandafter\@@tmp
+ \expandafter:\expandafter=\xglobal at list\do
+ {\expandafter\ifx\@@tmp\@@tok
+ \aftergroup\let\aftergroup\xglobal@\@break at tfor\fi}%
+ \endgroup\global}
+\def\xglobal at stop{\let\xglobal@\@empty}
+\xglobal at stop
+\def\xglobal at list
+ {\definecolor\definecolors\definecolorset\colorlet\providecolor
+ \providecolors\providecolorset\blendcolors\maskcolors
+ \substitutecolormodel}
+\def\xglobalize@#1{\ifx\xglobal@\global\global\let#1#1\fi}
+\def\GetGinDriver
+ {\@tempswafalse
+ \@tfor\@@tmp:={dvips}{pdftex}{dvipdf}{dvipdfm}{dvipsone}{vtex}{textures}%
+ \do{\ifx\XC@@drv\@@tmp\@tempswatrue\@break at tfor\fi}%
+ \edef\GinDriver{\if at tempswa\XC@@drv\else hypertex\fi}}
+\def\@hex at Hex#1{\ifx#1\relax\else\expandafter\@hex@@Hex\expandafter#1\fi}
+\def\@hex@@Hex#1%
+ {\if a#1A\else \if b#1B\else \if c#1C\else \if d#1D\else
+ \if e#1E\else \if f#1f\else #1\fi\fi\fi\fi\fi\fi \@hex at Hex}
+\def\XC at strip@comma#1,#2%
+ {\ifx,#2%
+ #1\expandafter\remove at to@nnil\else#1 \expandafter\XC at strip@comma\fi
+ #2}
+{\catcode`Q=3
+ \gdef\XC at replace#1#2#3%
+ {\begingroup
+ \def\XC at repl@ce##1#2##2Q##3%
+ {\@ifxempty{##2}{\XC at r@pl at ce##1Q}{\XC at repl@ce##1##3##2Q{##3}}}%
+ \def\XC at r@pl at ce##1\@empty Q%
+ {\expandafter\endgroup\expandafter\def\expandafter#1\expandafter{##1}}%
+ \expandafter\XC at repl@ce\expandafter\@empty #1\@empty#2Q{#3}}
+}
+\def\XC at clean#1%
+ {\edef#1{ #1 }\edef#1{\expandafter\XC at strip@comma#1,,\@nnil}%
+ \edef#1{\expandafter\XC at cle@n#1\@empty}%
+ \edef#1{\expandafter\@gobbletwo#1}}
+\def\XC at cle@n#1 #2{,#1\ifx#2\@empty\else\expandafter\XC at cle@n\fi#2}
+\def\rdivide#1#2%
+ {\begingroup\toks@{#1}\edef\@@tmp{\noexpand\@tempdima\the#1}%
+ \@defaultunits\@tempdimb=#2pt\relax\@nnil \@@tmp\relax
+ \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else
+ \def\@sign{}\fi
+ \ifdim\@tempdimb<\z@ \@tempdimb-\@tempdimb\edef\@sign{\@sign-}\fi
+ \ifdim\@tempdima<.1\maxdimen \ifdim\@tempdimb<.01\maxdimen
+ \lshift\@tempdima \lshift\@tempdimb \fi\fi
+ \@tempcnta=\@tempdima \@tempcntb=\@tempdimb
+ \count@=\@tempcnta \divide\count@\@tempcntb
+ \edef\@@tmp{\number\count at .}%
+ \@tempswatrue \@rdivide \@rdivide \@rdivide \@rdivide \@rdivide
+ \@tempswafalse \@rdivide
+ \dimen@\@@tmp\p@ \ifnum\count@>4\advance\dimen at 1sp\fi
+ \dimen@\@sign\dimen@
+ \edef\@@tmp{\the\toks@\the\dimen@}%
+ \expandafter\endgroup\@@tmp}
+\def\@rdivide
+ {\multiply\count@\@tempcntb \advance\@tempcnta-\count@
+ \multiply\@tempcnta10 \count@=\@tempcnta \divide\count@\@tempcntb
+ \if at tempswa\edef\@@tmp{\@@tmp\number\count@}\fi}
+\def\rmultiply#1#2%
+ {\begingroup
+ \edef\@@mul{#2}\@tempdima\the#1\relax
+ \afterassignment\@tempdimb\@tempcntb=\@@mul\p@
+ \ifdim\@tempdima<\z@ \@tempdima-\@tempdima\def\@sign{-}\else
+ \def\@sign{}\fi
+ \ifnum\@tempcntb<\z@ \@tempcntb-\@tempcntb\edef\@sign{\@sign-}\fi
+ \lshift\@tempdima \dimen@\z@
+ \expandafter\@rmultiply\@@mul.0.\@nil
+ \advance\dimen@\@tempcntb\@tempdima \rshift\dimen@
+ \dimen@\@sign\dimen@
+ \edef\@@tmp{#1\the\dimen@}%
+ \expandafter\endgroup\@@tmp}
+\def\@rmultiply#1.#2.#3\@nil
+ {\def\@@tmp{}%
+ \@tfor\@@mul:=#2\do
+ {\edef\@@tmp
+ {\advance\dimen@\@@mul\@tempdima \divide\dimen at 10 \@@tmp}}%
+ \@@tmp}
+\def\lshift#1{#1\expandafter\lshift@\the#1}
+\def\llshift#1{\lshift#1\lshift#1}
+\def\lshiftnum#1{\expandafter\lshiftnum@#1.00.:}
+\def\lshiftnum@#1.#2#3.#4:{#1#2\ifnum0#3>\z at .#3\fi}
+\def\llshiftnum#1{\expandafter\llshiftnum@#1\@empty.00.:}
+\def\llshiftnum@#1.#2#3#4.#5:%
+ {#1#2\ifnum0#3>\z@#3\else0\fi\ifnum0#4>\z at .#4\fi}
+\def\lshiftset#1#2{\edef\@@XC{\noexpand\lshiftnum{#2}}#1\@@XC\p@}
+\def\llshiftset#1#2{\edef\@@XC{\noexpand\llshiftnum{#2}}#1\@@XC\p@}
+\def\rshift#1{#1\expandafter\rshift@\the#1}
+\def\rrshift#1{\rshift#1\rshift#1}
+\begingroup
+\catcode`P=12
+\catcode`T=12
+\lowercase
+ {\def\@@tmp{\def\lshift@##1.##2##3PT{##1##2\ifnum0##3>\z at .##3\fi\p@}
+ \def\rshift@##1.##2PT{\rshift@@##1\relax##2\p@}}}
+\expandafter\endgroup\@@tmp
+\def\rshift@@#1#2%
+ {\ifx#2\relax.#1\else#1\expandafter\rshift@@\expandafter#2\fi}
+\def\XC at inflate#1#2#3#4%
+ {\edef#4{#2,\ifx#1\XC at mod@cmyk #3\else
+ \ifx#1\XC at mod@gray ,,,#3,,,\else ,#3,\fi\fi}}
+\def\XC at vec#1,#2,#3,#4,#5,#6,#7,#8,#9%
+ {\def\@@tmp{}%
+ \XC at vec@{#1}{#5}%
+ \ifx,#2,\else
+ \XC at vec@{#2}{#6}\XC at vec@{#3}{#7}\ifx,#4,\else\XC at vec@{#4}{#8}\fi\fi
+ \aftergroupdef#9\@@tmp}
+\def\XC at vec@@{\edef\@@tmp{\ifx\@@tmp\@empty\else\@@tmp,\fi\strip at pt\dimen@}}
+\def\XC at add{\begingroup \let\XC at vec@\XC at add@ \XC at vec}
+\def\XC at add@#1#2%
+ {\llshiftset\dimen@{#1}\llshiftset\@tempdima{#2}%
+ \advance\dimen@\@tempdima \rrshift\dimen@ \XC at vec@@}
+\def\XC at sub{\begingroup \let\XC at vec@\XC at sub@ \XC at vec}
+\def\XC at sub@#1#2{\XC at add@{#1}{-#2}}
+\def\XC at mul{\begingroup \let\XC at vec@\XC at mul@ \XC at vec}
+\def\XC at mul@#1#2%
+ {\llshiftset\dimen@{#1}\rmultiply\dimen@{#2}\rrshift\dimen@ \XC at vec@@}
+\def\XC at mix%
+ {\begingroup
+ \@tempdima\dimen@ \@tempdimb100\p@ \advance\@tempdimb-\@tempdima
+ \let\XC at vec@\XC at mix@ \XC at vec}
+\def\XC at mix@#1#2%
+ {\dimen@#1\@tempdima \advance\dimen@#2\@tempdimb \rrshift\dimen@ \XC at vec@@}
+\def\XC at calc@#1,#2,#3,#4,#5:#6%
+ {\XC at let@Nc\@@cmd{XC at calc#6}\@@cmd{#1}\@@tmp
+ \ifx,#2,\else
+ \@@cmd{#2}\@tempa\@@cmd{#3}\@tempb
+ \ifx,#4,%
+ \edef\@@tmp{\@@tmp,\@tempa,\@tempb}\else
+ \@@cmd{#4}\@tempc\edef\@@tmp{\@@tmp,\@tempa,\@tempb,\@tempc}\fi\fi}
+\def\XC at calcC#1#2%
+ {\llshiftset\dimen@{-#1}\advance\dimen at 100\p@
+ \rrshift\dimen@ \XC at calcN{\strip at pt\dimen@}#2}
+\def\XC at calcD{\XC at c@lcD\@@scl{}}
+\def\XC at c@lcD#1#2#3#4%
+ {\dimen@#3\p@ \rdivide\dimen@{#1}\edef#4{\strip at pt\dimen@#2}}
+\def\XC at calcF#1#2%
+ {\edef#2{#1}\expandafter\XC at c@lcF#2.0.:#2}
+\def\XC at c@lcF#1.#2.#3:#4%
+ {\edef#4{\XC at c@@cR#200000:}%
+ \dimen@#1.5\p@ \afterassignment\dimen@\count@=\the\dimen@
+ \edef#4%
+ {\ifnum#4>0 \ifnum\count@=0 \ifdim#1.5\p@<\z@ -\fi\fi\fi
+ \number\count at .#4}}
+\def\XC at calcH#1#2%
+ {\count@#1 \divide\count@\sixt@@n \edef\XC@@tmp{\hexnumber@\count@}%
+ \multiply\count at -\sixt@@n \advance\count@#1
+ \edef#2{\XC@@tmp\hexnumber@\count@}}
+\def\XC at calcM#1#2%
+ {\dimen@#1\p@ \dimen@\@@scl\dimen@ \advance\dimen at .5\p@
+ \afterassignment\dimen@\count@=\the\dimen@ \edef#2{\number\count@}}
+\def\XC at calcN#1#2%
+ {\XC at calcR{#1}#2\edef#2{\expandafter\XC at c@lcN#200000:}}
+\def\XC at c@lcN#1.#200000#3:{#1\ifnum0#2=0 \else.#2\fi}
+\def\XC at calcR#1#2{\edef#2{#1}\edef#2{\expandafter\XC at c@lcR#2.0.:}}
+\def\XC at c@lcR#1.#2.#3:%
+ {\ifnum#10>0 1.00000\else 0.\ifnum#11<0 00000\else
+ \XC at c@@cR#200000:\fi\fi}
+\def\XC at c@@cR#1#2#3#4#5#6:{#1#2#3#4#5}
+\def\XC at calcS{\XC at c@lcS\@@scl{}}
+\def\XC at c@lcS#1#2#3#4%
+ {\lshiftset\dimen@{#3}%
+ \ifdim#1\p@<100\p@
+ \dimen@\lshiftnum#1\dimen@ \rrshift\dimen@ \else
+ \dimen@#1\dimen@ \rshift\dimen@ \fi
+ \edef#4{\strip at pt\dimen@#2}}
+\def\XC at calcT#1#2%
+ {\lshiftset\dimen@{#1}\advance\dimen@\lshiftnum\@@arg\p@ \rshift\dimen@
+ \edef#2%
+ {\ifdim\dimen@>\p at 1\else\ifdim\dimen@<\z at 0\else\strip at pt\dimen@\fi\fi}}
+\def\XC at calcU#1#2%
+ {\dimen@#1\p@
+ \ifdim\dimen@=\p@\else
+ \afterassignment\dimen@\count@=\the\dimen@
+ \relax\ifdim\dimen@=\z@\else
+ \ifdim#1\p@<\z@ \dimen at -\dimen@ \advance\dimen@\p@ \fi
+ \fi
+ \fi
+ \edef#2{\strip at pt\dimen@}}
+\providecommand*\rangeRGB{255}
+\providecommand*\rangeHSB{240}
+\providecommand*\rangeHsb{360}
+\providecommand*\rangetHsb{60,30;120,60;180,120;210,180;240,240}
+\providecommand*\rangeGray{15}
+\providecommand*\adjustUCRBG{1,1,1,1}
+\providecommand*\paperquality{1}
+\providecommand*\colorseriescycle{16}
+\def\XC at clr@rgb at white{1,1,1}
+\def\XC at clr@cmy at white{0,0,0}
+\def\XC at clr@cmyk at white{0,0,0,0}
+\def\XC at clr@hsb at white{\@@hue,0,1}
+\def\XC at clr@hsb at gray{\@@hue,0,0.5}
+\def\XC at clr@hsb at black{\@@hue,0,0}
+\def\XC at clr@gray at white{1}
+\@tfor\@@tmp:={grad}{last}{step}\do
+ {\XC at let@cN{XC at met@\@@tmp}\@@tmp}
+\def\definecolor{\@testopt{\XC at definecolor}{}}
+\def\XC at definecolor[#1]#2%
+ {\@testopt{\XC at definec@lor[#1]{#2}}\colornameprefix}
+\def\XC at definec@lor[#1]#2[#3]#4#5%
+ {\begingroup
+ \XC at sdef\@@cls{#1}\XC at edef\@@nam{#2}\edef\colornameprefix{#3}%
+ \XC at logdef\@@nam
+ \XC at getmodclr02{#4}{#5}{\let\@@tmp\relax}%
+ {\ifx\@@mod\XC at mod@named
+ \XC at c@l at rlet\@@nam\@@clr
+ \else
+ \ifx\@@cls\XC at mod@ps
+ \edef\@@drv{\@@mod\space\@@clr}\def\@@hue{0}%
+ \edef\@@clr{\@nameuse{XC at clr@\@@mod @white}}%
+ \else
+ \ifconvertcolorsD
+ \let\@@tmp\@@mod\XC at sdef\@@mod{\XC at tgt@mod\@@tmp}%
+ \convertcolorspec\@@tmp\@@clr\@@mod\@@clr
+ \fi
+ \XC at coremodel\@@mod\@@clr
+ \csname color@\@@mod\expandafter\endcsname
+ \expandafter\@@drv\expandafter{\@@clr}%
+ \ifcase\XC@@xcp@
+ \immediate\write\XC@@xcp{/\colornameprefix\@@nam{\expandafter
+ \XC at strip@comma\@@clr,,\@nnil}XC\@@mod}%
+ \let\@@cls\XC at mod@named
+ \fi
+ \ifx\@@cls\@empty\else
+ \let\@@tmp\@@cls
+ \@nameuse{define at color@\@@cls}\@@nam\@@drv
+ \csname color@\@@tmp\expandafter\endcsname
+ \expandafter\@@drv\expandafter{\@@nam}%
+ \fi
+ \fi
+ \toks@\expandafter{\@@drv}%
+ \edef\@@tmp
+ {\ifglobalcolors\global\else\xglobal@\fi
+ \noexpand\@namedef{\string\color@\@@nam}%
+ {\noexpand\xcolor@{\@@cls}{\the\toks@}{\@@mod}{\@@clr}}}%
+ \fi}%
+ \expandafter\endgroup\@@tmp\xglobal at stop}
+\def\XC at getmodclr#1#2#3#4%
+ {\ifnum\ifcase#1 \ifXC@@getmod1\else0 \fi \or1 \fi>0
+ \XC at mdef\@@mod{#3}\expandafter\XC at getmod\@@mod////////\XC@@
+ \@ifundefinedmodel\@@Mod{\let\@@Mod\XC at mod@ignore}{}\fi
+ \@ifundefined{XC at mod@\@@mod}%
+ {\c at lor@error{model `\@@mod'}\@firstoftwo}%
+ {\ifcase#2\else
+ \XC at mdef\@@clr{#4}%
+ \edef\@@clr{\expandafter\XC at getclr\@@clr////////\XC@@}%
+ \ifx\@@cls\XC at mod@ps\else\XC at clean\@@clr\fi
+ \ifx\@@Mod\XC at mod@ignore\else
+ \convertcolorspec\@@mod\@@clr\@@Mod\@@clr
+ \ifnum#2>1 \let\@@mod\@@Mod\fi
+ \fi
+ \fi \@secondoftwo}}
+\def\XC at getmod#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@
+ {\XC at g@tm at d0#1::\XC@@ \XC at getm@d1{#2}\XC at getm@d2{#3}%
+ \XC at getm@d3{#4}\XC at getm@d4{#5}\XC at getm@d5{#6}\XC at getm@d6{#7}%
+ \XC at getm@d7{#8}\def\XC@@pos{0}\def\@@mod{#1}\@gobble\@nnil}%
+\def\XC at getm@d#1#2%
+ {\edef\XC@@pos{#2}\XC at sdef\@@mod{\XC at tgt@mod\XC@@pos}%
+ \ifx\XC@@pos\@@mod\def\XC@@pos{#1}\expandafter\remove at to@nnil\fi}%
+\def\XC at g@tm at d#1#2:#3:#4\XC@@
+ {\@ifxempty{#3}{\let\@@Mod\XC at mod@ignore\XC at getm@d0{#2}}%
+ {\def\@@Mod{#2}\XC at getm@d0{#3}}}%
+\def\XC at getclr#1/#2/#3/#4/#5/#6/#7/#8/#9\XC@@
+ {\ifcase\XC@@pos\space #1\or#2\or#3\or#4\or#5\or#6\or#7\or#8\fi}
+\newif\ifXC@@getmod \XC@@getmodtrue
+\let\xdefinecolor\definecolor
+\def\providecolor{\@testopt{\XC at providecolor}{}}
+\def\XC at providecolor[#1]#2%
+ {\@testopt{\XC at providec@lor[#1]{#2}}\colornameprefix}
+\def\XC at providec@lor[#1]#2[#3]%
+ {\XC at edef\XC@@tmp{#2}%
+ \@ifundefinedcolor\XC@@tmp{\XC at definecolor[#1]{#2}[#3]}%
+ {\ifnum\XC at tracing>0
+ \PackageInfo{xcolor}{Ignoring color definition `\XC@@tmp'}\fi
+ \@gobbletwo}}
+\def\xcolor@#1#2#3#4{#2}
+\def\colorlet{\@testopt{\XC at colorlet}{}}
+\def\XC at colorlet[#1]#2{\@testopt{\XC at col@rlet[#1]{#2}}{}}
+\def\XC at col@rlet[#1]#2[#3]#4%
+ {\begingroup
+ \edef\@@cls{#1}\XC at edef\@@nam{#2}\XC at sdef\@@mod{#3}\XC at edef\@@clr{#4}%
+ \XC at info\@@clr\@@tmp\XC@@tstfalse
+ \ifnum\@@tmp=\@ne\ifx\@@mod\@empty
+ \ifx\@@cls\@empty
+ \XC@@tsttrue
+ \else
+ \edef\@@tmp
+ {\expandafter\expandafter\expandafter\@secondoffive
+ \csname\string\color@\@@clr\endcsname}%
+ \ifx\@@cls\@@tmp\XC@@tsttrue\fi
+ \fi
+ \fi\fi
+ \ifXC@@tst
+ \XC at logdef\@@nam\XC at c@l at rlet\@@nam\@@clr
+ \else
+ \extractcolorspec\@@clr\@@clr
+ \ifx\@@mod\@empty\else
+ \expandafter\convertcolorspec\@@clr\@@mod\@@clr
+ \edef\@@clr{{\@@mod}{\@@clr}}\fi
+ \edef\@@tmp{\noexpand\XC at definecolor[\@@cls]{\@@nam}\@@clr}%
+ \fi
+ \expandafter\endgroup\@@tmp\xglobal at stop}
+\def\XC at c@l at rlet#1#2%
+ {\@ifundefinedcolor{#2}%
+ {\c at lor@error{`#2'}\let\@@tmp\@empty}%
+ {\edef\@@tmp
+ {\ifglobalcolors\global\else\xglobal@\fi
+ \noexpand\XC at let@cc{\string\color@#1}{\string\color@#2}}}}
+\def\DefineNamedColor#1%
+ {\@nameuse{XC@\ifdefinecolors defin\else prepar\fi ecolor}[#1]}
+\def\preparecolor{\@testopt{\XC at preparecolor}{}}
+\def\XC at preparecolor[#1]#2%
+ {\@testopt{\XC at preparec@lor[#1]{#2}}\colornameprefix}
+\def\XC at preparec@lor[#1]#2[#3]#4#5%
+ {\XC at sdef\@@cls{#1}\XC at edef\@@nam{#2}%
+ \XC at getmodclr01{#4}{#5}{}%
+ {\xdef\XC@@stack
+ {\ifx\XC@@stack\@empty\else\XC@@stack,\fi{#1}{\@@nam}{#3}%
+ {\ifx\@@Mod\XC at mod@ignore\@@mod\else\@@Mod\fi}{\@@clr}}}}
+\let\XC@@stack\@empty
+\def\definecolors#1%
+ {\let\XC@@cmd\definecolor\let\XC@@glb\xglobal@
+ \expandafter\XC at definecolors#1,,}
+\def\XC at definecolors#1,%
+ {\@ifxempty{#1}{}{\expandafter\XC at definec@lors#1=#1=:\XC at definecolors}}
+\def\XC at definec@lors#1=#2=#3:%
+ {\XC at edef\@@nam{#1}\XC at edef\@@arg{#2}%
+ \let\next\XC at definec@l at rs\expandafter\next\XC@@stack,,\@nnil}
+\def\XC at definec@l at rs#1,%
+ {\ifx,#1,\let\next\remove at to@nnil\else\XC at defin@c at l@rs#1\fi\next}
+\def\XC at defin@c at l@rs#1#2#3#4#5%
+ {\def\@@tmp{#2}%
+ \ifx\@@tmp\@@arg
+ \let\xglobal@\XC@@glb\XC@@cmd[#1]{\@@nam}[#3]{#4}{#5}%
+ \let\next\remove at to@nnil
+ \fi}
+\def\providecolors#1%
+ {\let\XC@@cmd\providecolor\let\XC@@glb\xglobal@
+ \expandafter\XC at definecolors#1,,}
+\def\definecolorset
+ {\let\XC@@cmd\definecolor\@testopt{\XC at definecolorset}{}}
+\def\XC at definecolorset[#1]#2#3#4#5%
+ {\XC at getmodclr10{#2}{}{}%
+ {\XC@@getmodfalse\XC at edef\XC@@tmp{#5}\let\XC@@glb\xglobal@
+ \def\XC at definec@lorset##1,##2;%
+ {\@ifxempty{##1}{}%
+ {\let\xglobal@\XC@@glb
+ \XC@@cmd[#1]{#3##1#4}{\@@mod}{##2}\XC at definec@lorset}}%
+ \expandafter\XC at definec@lorset\XC@@tmp;,;\XC@@getmodtrue}}
+\def\providecolorset
+ {\let\XC@@cmd\providecolor\@testopt{\XC at definecolorset}{}}
+\def\preparecolorset
+ {\ifdefinecolors\let\XC@@cmd\definecolor\else\let\XC@@cmd\preparecolor\fi
+ \@testopt{\XC at definecolorset}{}}
+\def\definecolorseries#1#2#3%
+ {\@testopt{\XC at definecolorseries{#1}{#2}{#3}}{}}
+\def\XC at definecolorseries#1#2#3[#4]#5%
+ {\@testopt{\XC at definec@lorseries{#1}{#2}{#3}[#4]{#5}}{}}
+\def\XC at definec@lorseries#1#2#3[#4]#5[#6]#7%
+ {\begingroup
+ \XC at sdef\@@mod{#2}%
+ \@ifxempty{#4}{\extractcolorspec{#5}\@@clr}{\edef\@@clr{{#4}{#5}}}%
+ \expandafter\convertcolorspec\@@clr\@@mod\@@clr
+ \@namexdef{\string\colorB@#1}{{\@@mod}{\@@clr}}%
+ \edef\@@met{#3}%
+ \ifx\@@met\XC at met@last
+ \@ifxempty{#6}{\extractcolorspec{#7}\@@tmp}{\edef\@@tmp{{#6}{#7}}}%
+ \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
+ \XC at inflate\@@mod\@@tmp\@@clr\@@tmp
+ \expandafter\XC at sub\@@tmp,\@@tmp
+ \else
+ \edef\@@tmp{#7}%
+ \fi
+ \@namexdef{\string\colorD@#1}{{\@@met}{\@@tmp}}%
+ \endgroup}
+\def\resetcolorseries{\@testopt{\XC at resetcolorseries}{}}
+\def\XC at resetcolorseries[#1]#2%
+ {\begingroup
+ \@namexdef
+ {\string\color@#2}{\noexpand\xcolor@{}{}\@nameuse{\string\colorB@#2}}%
+ \XC at let@Nc\@@tmp{\string\colorD@#2}%
+ \edef\@@met{\expandafter\@firstoftwo\@@tmp}%
+ \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
+ \ifx\@@met\XC at met@step\else
+ \edef\@@scl{\@ifxempty{#1}\colorseriescycle{#1}}%
+ \expandafter\XC at calc@\@@tmp,,,,:D%
+ \fi
+ \@namexdef{\string\colorS@#2}{\@@tmp}%
+ \endgroup}
+\def\XC at step#1%
+ {\let\xcolor@\@gobbletwo\edef\@@tmp{\@nameuse{\string\color@#1}}%
+ \expandafter\XC at st@p\@@tmp{#1}%
+ \@namexdef{\string\color@#1}{\noexpand\xcolor@{}{}{\@@mod}{\@@tmp}}}
+\def\XC at st@p#1#2#3%
+ {\def\@@mod{#1}\def\@@tmp{#2}\edef\@@vec{\@nameuse{\string\colorS@#3}}%
+ \@whilenum\@tempcnta>\z@\do
+ {\XC at inflate\@@mod\@@tmp\@@vec\@@tmp
+ \expandafter\XC at add\@@tmp,\@@tmp \expandafter\XC at calc@\@@tmp,,,,:U%
+ \advance\@tempcnta\m at ne}}
+\def\XC at stepabs#1%
+ {\edef\@@tmp{\@nameuse{\string\colorB@#1}}%
+ \expandafter\XC at st@p\@@tmp{#1}%
+ \edef\@@tmp
+ {\def\noexpand\@@mod{\@@mod}\def\noexpand\@@clr{\@@tmp}}}
+\def\blendcolors{\@ifstar{\XC at blendcolors\colorblend}{\XC at blendcolors{}}}
+\def\XC at blendcolors#1#2%
+ {\edef\colorblend{#1}\XC at edef\XC@@tmp{#2}%
+ \ifx\XC@@tmp\@empty
+ \xglobal@\blendcolorsfalse
+ \else
+ \xglobal@\blendcolorstrue
+ \expandafter\XC at blendc@lors\XC@@tmp!!\@nil
+ \fi
+ \xglobalize@\colorblend \xglobal at stop}
+\def\XC at blendc@lors!#1!#2!#3\@nil
+ {\@ifxempty{#1}{}%
+ {\@ifxempty{#2}%
+ {\edef\colorblend{\colorblend!#1!white}}%
+ {\edef\colorblend{\colorblend!#1!#2}\XC at blendc@lors!#3!\@nil}}}
+\blendcolors{}
+\def\maskcolors{\@testopt{\XC at maskcolors}{}}
+\def\XC at maskcolors[#1]#2%
+ {\XC at edef\colormask{#2}%
+ \ifx\colormask\@empty
+ \xglobal@\maskcolorsfalse \def\XC at mmod{}\def\XC at mclr{}%
+ \else
+ \xglobal@\maskcolorstrue \extractcolorspecs\colormask\XC at mmod\XC at mclr
+ \@ifxempty{#1}{}%
+ {\convertcolorspec\XC at mmod\XC at mclr{#1}\XC at mclr \XC at sdef\XC at mmod{#1}}%
+ \XC at coremodel\XC at mmod\XC at mclr
+ \fi
+ \xglobalize@\colormask \xglobalize@\XC at mmod \xglobalize@\XC at mclr
+ \xglobal at stop}
+\maskcolors{}
+\DeclareRobustCommand\color
+ {\@ifnextchar[\@undeclaredcolor\@declaredcolor}
+\def\@undeclaredcolor[#1]#2%
+ {\begingroup
+ \let\@@cls\@empty
+ \XC at getmodclr12{#1}{#2}{}%
+ {\ifblendcolors
+ \ifx\colorblend\@empty\else
+ \edef\@@mix{\expandafter\@gobble\colorblend}\@tempswafalse
+ \XC at coremodel\@@mod\@@clr\@xcolor@{}{}\@@mod\@@clr
+ \fi
+ \fi
+ \ifconvertcolorsU
+ \edef\@@tmp{\XC at tgt@mod{\@@mod}}%
+ \convertcolorspec\@@mod\@@clr\@@tmp\@@clr \let\@@mod\@@tmp
+ \fi
+ \ifmaskcolors
+ \convertcolorspec\@@mod\@@clr\XC at mmod\@@clr
+ \let\@@mod\XC at mmod
+ \XC at inflate\@@mod\XC at mclr\@@clr\@@tmp
+ \expandafter\XC at mul\@@tmp,\@@clr
+ \fi
+ \edef\@@tmp{\noexpand\XC at undeclaredcolor{\@@mod}{\@@clr}}%
+ \expandafter\endgroup\@@tmp}}
+\def\XC at undeclaredcolor#1#2%
+ {\@ifundefinedmodel{#1}%
+ {\c at lor@error{model `#1'}}%
+ {\@nameuse{color@#1}\current at color{#2}%
+ \edef\XC at current@color{\noexpand\xcolor@{}{\current at color}{#1}{#2}}%
+ \XC at display}}
+\def\@declaredcolor#1%
+ {\XC at edef\XC@@tmp{#1}\XC@@tstfalse
+ \ifcase\XC at type\XC@@tmp\relax \XC@@tsttrue\or \relax\else
+ \ifblendcolors\XC@@tsttrue\fi \ifmaskcolors\XC@@tsttrue\fi
+ \ifconvertcolorsU\XC@@tsttrue\fi
+ \fi
+ \ifXC@@tst
+ \expandafter\XC at declaredcolor\else
+ \expandafter\XC at declaredc@lor\fi}
+\def\XC at declaredcolor
+ {\XC at split\XC@@tmp
+ \edef\@@tmp{\noexpand\@undeclaredcolor[\@@mod]{\@@clr}}%
+ \expandafter\endgroup\@@tmp}
+\def\XC at declaredc@lor
+ {\XC at let@Nc\XC at current@color{\string\color@\XC@@tmp}%
+ \edef\current at color{\XC at current@color}%
+ \XC at display}
+\def\textcolor#1#{\@textcolor{#1}}
+\def\@textcolor#1#2#3{\protect\leavevmode{\color#1{#2}#3}}
+\def\pagecolor
+ {\begingroup
+ \let\ignorespaces\endgroup \let\set at color\set at page@color
+ \color}
+\def\colorbox#1#{\color at box{#1}}
+\def\color at box#1#2{\color at b@x\relax{\color#1{#2}}}
+\def\fcolorbox#1#{\color at fbox{#1}}
+\def\color at fbox#1#2#3#{\color at fb@x{#1}{#2}{#3}}
+\def\color at fb@x#1#2#3#4%
+ {\color at b@x{\fboxsep\z@\color#1{#2}\XC at fbox}%
+ {\@ifxempty{#3}{\color#1}{\color#3}{#4}}}
+\long\def\color at b@x#1#2#3%
+ {\leavevmode
+ \setbox\z@\hbox{\kern\fboxsep{\set at color#3}\kern\fboxsep}%
+ \dimen@\ht\z@\advance\dimen@\fboxsep\ht\z@\dimen@
+ \dimen@\dp\z@\advance\dimen@\fboxsep\dp\z@\dimen@
+ {#1{#2\color at block{\wd\z@}{\ht\z@}{\dp\z@}\box\z@}}}
+\def\XC at frameb@x#1%
+ {\hbox
+ {\@tempdima\fboxrule \advance\@tempdima\fboxsep
+ \advance\@tempdima\dp\@tempboxa
+ \setbox\@tempboxa\hbox
+ {\lower\@tempdima\hbox
+ {\vbox
+ {\kern\fboxrule
+ \hbox
+ {\kern\fboxrule#1%
+ \vbox{\kern\fboxsep\box\@tempboxa\kern\fboxsep}%
+ #1\kern\fboxrule}%
+ \kern\fboxrule}}}%
+ \@tempdima\wd\@tempboxa
+ \edef\@tempa{{\the\@tempdima}{\the\ht\@tempboxa}{\the\dp\@tempboxa}}%
+ \box\@tempboxa\kern-\@tempdima\expandafter\boxframe\@tempa}}
+\ifXC@@fbox
+ \let\@frameb at x\XC at frameb@x \let\XC at fbox\fbox
+\else
+ \def\XC at fbox{\let\@frameb at x\XC at frameb@x\fbox}
+\fi
+
+\ifnum\XC@@xcd@>\m at ne
+\def\XC at boxframe#1#2#3#4%
+ {\hbox{\sbox\z@{\ifdim\fboxrule>\z@ #4\fi}%
+ \wd\z@#1\relax\ht\z@#2\relax\dp\z@#3\relax\box\z@}}
+\fi
+\ifcase\XC@@xcd@
+\providecommand*\color at block[3]%
+ {{\set at color\hbox
+ {\dimen@#3\edef\@tempa{ \number\dimen@\space}%
+ \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}%
+ \dimen@#1\relax
+ \XC at special{\number\dimen@\@tempa XCcolorblock}}}}
+\providecommand*\boxframe[3]%
+ {\XC at boxframe{#1}{#2}{#3}%
+ {\dimen@#3\edef\@tempa{ \number\dimen@\space}%
+ \dimen@#2\edef\@tempa{ \number\dimen@\@tempa}%
+ \dimen@#1\relax
+ \XC at special{\number\fboxrule\space\number\dimen@\@tempa XCboxframe}}}
+\or
+\providecommand*\boxframe[3]%
+ {\XC at boxframe{#1}{#2}{#3}%
+ {\dimen@#3\edef\@tempa{ 0 -\strip at pt\dimen@\space}%
+ \edef\@tempb{\advance\dimen@\the\dimen@}%
+ \dimen@#2\advance\dimen at -\fboxrule\@tempb
+ \edef\@tempb{ \strip at pt\dimen@\space re s}%
+ \dimen@#1\advance\dimen at -\fboxrule
+ \edef\@tempb{ cm\@tempa\strip at pt\dimen@\@tempb}%
+ \dimen at .5\fboxrule\edef\@tempa{ \strip at pt\dimen@}%
+ \XC at special
+ {0.996264 0 0 0.996264 0 0 cm
+ \strip at pt\fboxrule\space w [] 0 d 2 J 0 j 4 M
+ 1 0 0 1\@tempa\@tempa\@tempb}}}
+\fi
+\providecommand*\color at block[3]%
+ {{\set at color\rlap{\ifcolors@\vrule\@width#1\@height#2\@depth#3\fi}}}
+\providecommand*\boxframe[3]%
+ {\hbox
+ {\dimen@#2\advance\dimen@#3\relax
+ \lower#3\vbox
+ {\hrule\@height\fboxrule
+ \@tempdima-0.5\fboxrule \ifodd\fboxrule\advance\@tempdima\m at ne sp\fi
+ \kern\@tempdima
+ \hbox
+ {\advance\dimen at -\fboxrule
+ \vrule\@width\fboxrule\@height\dimen@\@depth\z@
+ \@tempdima#1\advance\@tempdima-\tw@\fboxrule \kern\@tempdima
+ \vrule\@width\fboxrule\@height\dimen@\@depth\z@}%
+ \kern-0.5\fboxrule
+ \hrule\@height\fboxrule}}}
+\def\@xcolor@#1#2#3#4%
+ {\edef\@@mod{#3}\edef\@@clr{#4}%
+ \ifx\@@mix\@empty\else\expandafter\@xcolor@@\@@mix!!!!\@nil\fi
+ \if at tempswa
+ \XC at let@Nc\@@tmp{XC at cnv@\@@mod @compl}%
+ \ifx\@@tmp\relax \expandafter\XC at calc@\@@clr,,,,:C\else
+ \expandafter\@@tmp\@@clr,\fi
+ \let\@@clr\@@tmp
+ \fi}
+\def\@xcolor@@#1!#2!#3!#4!#5\@nil
+ {\dimen@\@ifxempty{#1}{100}{#1}\p@
+ \edef\@@mix{\@ifxempty{#2}{white}{#2}}%
+ \ifdim\dimen@=100\p@
+ \expandafter\XC at postfix\@@mix]\relax
+ \else\ifdim\dimen@=\z@
+ \extractcolorspecs\@@mix\@@mod\@@clr
+ \else
+ \XC at let@Nc\@@tmp{XC at clr@\@@mod @\@@mix}%
+ \ifx\@@tmp\relax
+ \extractcolorspec\@@mix\@@tmp
+ \ifx\@@mod\XC at mod@gray
+ \edef\@@mod{\expandafter\@firstoftwo\@@tmp}%
+ \edef\@@tmp{\expandafter\@secondoftwo\@@tmp}%
+ \convertcolorspec\XC at mod@gray\@@clr\@@mod\@@clr
+ \else
+ \expandafter\convertcolorspec\@@tmp\@@mod\@@tmp
+ \fi
+ \else
+ \ifx\@@mod\XC at mod@hsb\expandafter\XC at extract@hue\@@clr:\@@hue\fi
+ \fi
+ \XC at inflate\@@mod\@@clr\@@tmp\@@tmp
+ \expandafter\XC at mix\@@tmp,\@@clr
+ \fi\fi
+ \@ifxempty{#3}%
+ {\@ifxempty{#4}{}{\@xcolor@@!#4!#5\@nil}}%
+ {\@xcolor@@#3!#4!#5\@nil}}
+\def\XC at split#1%
+ {\begingroup\XC at edef\@@tmp{#1}\expandafter\XC at split@i\@@tmp>>\@nnil}
+\def\XC at split@i#1>%
+ {\def\@@tmp{#1}\XC at split@ii#1:\@nil \XC at func}
+\def\XC at split@ii#1:#2\@nil
+ {\@ifxempty{#2}{\XC at split@vi}{\XC at split@iii#1,,:#2}}
+\def\XC at split@iii#1,#2,#3:#4:%
+ {\edef\XC@@mod{#1}\let\@tempa\@empty
+ \ifx,#2,\XC@@tsttrue\@tempdima\z@\else\XC@@tstfalse\@tempdima#2\p@\fi
+ \XC at split@iv#4;,;}
+\def\XC at split@iv#1,#2;%
+ {\@ifxempty{#1}%
+ {\let\XC@@clr\@empty \@tempa \expandafter\XC at calc@\XC@@clr,,,,:U%
+ \let\@@mod\XC@@mod \let\@@clr\@@tmp}
+ {\XC at append\@tempa{\XC at split@v{#1}{#2}}%
+ \ifXC@@tst\advance\@tempdima#2\p@\fi
+ \XC at split@iv}}
+\def\XC at split@v#1#2%
+ {\def\@@tmp{#1}\XC at split@vi
+ \ifx\@@mod\XC@@mod\else
+ \convertcolorspec\@@mod\@@clr\XC@@mod\@@clr
+ \fi
+ \dimen@#2\p@ \rdivide\dimen@\@tempdima
+ \edef\@@scl{\strip at pt\dimen@}%
+ \expandafter\XC at calc@\@@clr,,,,:S%
+ \ifx\XC@@clr\@empty\let\XC@@clr\@@tmp\else
+ \XC at inflate\XC@@mod\XC@@clr\@@tmp\@@tmp
+ \expandafter\XC at add\@@tmp,\XC@@clr
+ \fi}
+\def\XC at split@vi{\count@\z@ \expandafter\XC at split@vii\@@tmp!\@nil}
+\def\XC at split@vii#1%
+ {\ifx#1-\advance\count@\@ne\expandafter\XC at split@vii
+ \else\expandafter\XC at split@viii\expandafter#1\fi}
+\def\XC at split@viii#1!#2\@nil
+ {\edef\@@nam{#1}\edef\@@mix{#2}%
+ \ifodd\count@\@tempswatrue\else\@tempswafalse\fi
+ \@ifundefinedcolor\@@nam
+ {\c at lor@error{`\@@nam'}\def\@@nam{black}}{}%
+ \let\xcolor@\@xcolor@\@nameuse{\string\color@\@@nam}}
+\def\XC at postfix#1#2]#3\relax
+ {\begingroup
+ \if[#1\@tempcnta#2\relax\XC at stepabs\@@nam
+ \else\@tempcnta\z@
+ \@tfor\@@tok:=#1#2\do
+ {\if+\@@tok\advance\@tempcnta\@ne
+ \else\if-\@@tok\advance\@tempcnta\m at ne
+ \else\@tempcnta\z@\expandafter\@break at tfor\fi\fi}%
+ \ifnum\@tempcnta=\z@\relax\else\XC at step\@@nam\fi
+ \let\@@tmp\@empty
+ \fi\expandafter\endgroup\@@tmp}
+\def\XC at func#1>{\@ifxempty{#1}{\remove at to@nnil}{\XC at fun@#1,>\XC at func}}
+\def\XC at fun@#1,#2>{\@nameuse{XC at func@#1}#2,,>}
+\def\XC at func@wheel#1,#2,#3>{\XC at func@wh at el{#1}{#2}0}
+\def\XC at func@twheel#1,#2,#3>{\XC at func@wh at el{#1}{#2}1}
+\def\XC at func@wh at el#1#2#3%
+ {\convertcolorspec\@@mod\@@clr
+ {\ifcase#3 \XC at mod@Hsb\or\XC at mod@tHsb\fi}\@@clr
+ \expandafter\XC at extract@hue\@@clr:\@@hue \dimen@#1\p@
+ \@ifxempty{#2}{}%
+ {\rdivide\dimen@{#2}\lshift\dimen@
+ \dimen@\rangeHsb\dimen@\rshift\dimen@}%
+ \advance\dimen@\@@hue\p@ \rdivide\dimen@\rangeHsb
+ \edef\@@hue{\strip at pt\dimen@}\XC at calcU\@@hue\@@hue
+ \ifcase#3
+ \expandafter\XC at replace@hue\@@clr:\@@hue,\@@clr
+ \or
+ \XC at c@lcS\rangeHsb{}\@@hue\@@hue
+ \expandafter\XC at replace@hue\@@clr:\@@hue,\@@clr
+ \convertcolorspec\XC at mod@tHsb\@@clr\XC at mod@hsb\@@clr
+ \fi
+ \let\@@mod\XC at mod@hsb}
+\def\XC at display
+ {\XC at bcolor\XC at let@cN{\string\color at .}\XC at current@color
+ \ifnum\XC at type{.}=1
+ \PackageWarning{xcolor}{Incompatible color definition}\else
+ \ifnum\XC at tracing>2
+ \begingroup \let\xcolor@\@empty \def\@nil{\string\@nil}%
+ \PackageInfo{xcolor}{Setting color `\XC at current@color'}%
+ \endgroup
+ \fi\fi
+ \XC at mcolor\set at color\XC at ecolor\ignorespaces}
+\let\XC at bcolor\relax
+\let\XC at mcolor\relax
+\let\XC at ecolor\relax
+\def\XC at bordercolor#1#2%
+ {\extractcolorspec{#2}\XC@@tmp
+ \expandafter\convertcolorspec\XC@@tmp\XC at mod@rgb\XC@@tmp
+ \expandafter\edef\csname @#1bordercolor\endcsname
+ {\expandafter\XC at strip@comma\XC@@tmp,\@nnil}}
+\def\XC at pdfborder#1 #2 #3\relax
+ {\def\@@scl{80}\XC at calc@#1,#2,#3,,:S%
+ \edef\@pdfborder{\expandafter\XC at strip@comma\@@tmp,\@nnil}}
+\@ifXCopt{table}{%
+ \def\rowcolors
+ {\@ifstar{\@rowcmdfalse\rowc at lors}{\@rowcmdtrue\rowc at lors}}
+ \def\rowc at lors{\@testopt{\rowc at l@rs}{}}
+ \def\rowc at l@rs[#1]#2#3#4%
+ {\global\rownum=\z@
+ \global\@rowcolorstrue
+ \@ifxempty{#3}%
+ {\def\@oddrowcolor{\@norowcolor}}%
+ {\def\@oddrowcolor{\gdef\CT at row@color{\CT at color{#3}}}}%
+ \@ifxempty{#4}%
+ {\def\@evenrowcolor{\@norowcolor}}%
+ {\def\@evenrowcolor{\gdef\CT at row@color{\CT at color{#4}}}}%
+ \if at rowcmd
+ \def\@rowcolors
+ {#1\if at rowcolors
+ \noalign{\relax\ifnum\rownum<#2\@norowcolor\else
+ \ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi\fi}%
+ \fi}%
+ \else
+ \def\@rowcolors
+ {\if at rowcolors
+ \ifnum\rownum<#2\noalign{\@norowcolor}\else
+ #1\noalign{\ifodd\rownum\@oddrowcolor\else\@evenrowcolor\fi}\fi
+ \fi}%
+ \fi
+ \CT at everycr{\@rowc at lors\the\everycr}%
+ \ignorespaces}
+ \def\@rowc at lors{\noalign{\global\advance\rownum\@ne}\@rowcolors}
+ \let\@rowcolors\@empty
+ \def\showrowcolors{\noalign{\global\@rowcolorstrue}\@rowcolors}
+ \def\hiderowcolors{\noalign{\global\@rowcolorsfalse\@norowcolor}}
+ \def\@norowcolor{\global\let\CT at row@color\relax}
+ \@norowcolor
+ \newif\if at rowcolors
+ \newif\if at rowcmd
+ \@ifundefined{rownum}{\newcount\rownum}{}
+ \def\CT at extract#1\columncolor#2#3\@nil
+ {\if!#2%
+ \let\CT at column@color\@empty
+ \else
+ \if[#2%
+ \expandafter\CT at extractb
+ \else
+ \XC at edef\XC@@tmp{#2}%
+ \edef\CT at column@color{\noexpand\CT at color{\XC@@tmp}}%
+ \expandafter\CT at extractd
+ \fi
+ {#1}#3\@nil
+ \fi}
+}{}
+\def\extractcolorspec#1#2%
+ {\XC at split{#1}\edef\@@tmp{{\@@mod}{\@@clr}}\aftergroupdef#2\@@tmp}
+\def\extractcolorspecs#1#2#3%
+ {\extractcolorspec{#1}#3%
+ \edef#2{\expandafter\@firstoftwo#3}%
+ \edef#3{\expandafter\@secondoftwo#3}}
+\def\XC at extract@hue#1,#2:#3{\edef#3{#1}}
+\def\XC at replace@hue#1,#2:#3,#4{\edef#4{#3,#2}}
+\def\@ifundefinedcolor#1{\@ifundefined{\string\color@#1}}
+\def\@ifundefinedmodel#1{\@ifundefined{color@#1}}
+\def\XC at type#1%
+ {\expandafter\expandafter\expandafter\XC at typ@
+ \csname\string\color@#1\endcsname\@empty\@empty\@empty\XC@@}
+\def\XC at typ@#1#2#3#4\XC@@
+ {\ifx#1\relax 0\else
+ \ifx#1\xcolor@
+ \ifx$#2$%
+ \ifx$#3$4\else3\fi\@gobbletwo
+ \else2\fi\@gobbletwo
+ \else1\fi
+ \fi}
+\def\XC at info#1#2%
+ {\XC at edef#2{#1}%
+ \if.#2\def#2{0}\else\expandafter\in@\expandafter>\expandafter{#2}%
+ \ifin@\def#2{4}\else\expandafter\in@\expandafter:\expandafter{#2}%
+ \ifin@\def#2{3}\else\expandafter\in@\expandafter!\expandafter{#2}%
+ \ifin@\def#2{2}\else\edef#2{\noexpand\in@{/-}{/#2}}#2%
+ \edef#2{\ifin at 2\else1\fi}\fi\fi\fi\fi}
+\def\tracingcolors{\begingroup\afterassignment\XC at tracingcolors\count@}
+\def\XC at tracingcolors{\aftergroupdef\XC at tracing{\the\count@}}
+\tracingcolors=0
+\def\XC at logdef#1%
+ {\ifnum\XC at tracing>1
+ \@ifundefinedcolor{#1}%
+ {\ifnum\XC at tracing>2
+ \PackageInfo{xcolor}{Defining color `#1'}%
+ \fi}%
+ {\PackageInfo{xcolor}{Redefining color `#1'}}%
+ \fi}
+\newenvironment*{testcolors}[1][rgb,cmyk,hsb,HTML]%
+ {\let\@@nam\@empty\count@\z@
+ \@for\@@tmp:=#1\do
+ {\advance\count@\@ne
+ \XC at sdef\@@tmp{\@@tmp}\edef\@@nam{\@@nam{\@@tmp}}}%
+ \edef\@@num{\the\count@}%
+ \def\XC@@gt{\textgreater}\def\@@tmp{OT1}%
+ \ifx\f at encoding\@@tmp
+ \@expandtwoargs\in@{,\f at family,}{,cmtt,pcr,}%
+ \ifin@\def\XC@@gt{>}\fi
+ \fi
+ \def\XC@@xcp@{-1}\ifnum\XC at tracing>1 \def\XC at tracing{1}\fi
+ \def\testcolor{\@testopt{\@testcolor}{}}%
+ \def\@testcolor[##1]##2%
+ {\XC at mdef\@@mod{##1}\XC at edef\@@clr{##2}%
+ \ifx\@@mod\@empty
+ \let\@@arg\@@clr\XC at replace\@@arg>\XC@@gt\else
+ \edef\@@arg{[\@@mod]{\@@clr}}\XC at definecolor[]{*}\@@mod\@@clr
+ \def\@@clr{*}\fi
+ \XC at append\@@arg{&}\extractcolorspecs\@@clr\@@mod\@@clr
+ \@testc at lor}%
+ \def\@testc at lor
+ {\count@\z@
+ \expandafter\@tfor\expandafter\@@tmp\expandafter:\expandafter=\@@nam\do
+ {\ifx\@@clr\@empty
+ \edef\@@cmd{\noexpand\textbf{\@@tmp}}%
+ \else
+ \convertcolorspec\@@mod\@@clr\@@tmp\@@cmd
+ \edef\@@cmd
+ {\noexpand\@testc at l@r{\@@tmp}{\@@cmd}%
+ \ifx\@@mod\@@tmp\noexpand\underline\fi
+ {\expandafter\XC at strip@comma\@@cmd,,\@nnil}}%
+ \fi
+ \expandafter\XC at append\expandafter\@@arg\expandafter{\@@cmd}%
+ \advance\count@\@ne
+ \ifnum\count@=\@@num\XC at append\@@arg{\\}\else\XC at append\@@arg{&}\fi}%
+ \@@arg}%
+ \def\@testc at l@r##1##2%
+ {\fboxsep\z@\fbox{\colorbox[##1]{##2}{\phantom{XX}}} }%
+ \tabular{@{}l*{\@@num}{l}@{}}%
+ \def\@@arg{\textbf{color}& }\let\@@clr\@empty\@testc at lor}%
+ {\endtabular\ignorespacesafterend}
+\def\color at setgroup{\begingroup\set at color}
+\let\color at begingroup\begingroup
+\def\color at endgroup{\endgraf\endgroup}
+\def\color at hbox{\hbox\bgroup\color at begingroup}
+\def\color at vbox{\vbox\bgroup\color at begingroup}
+\def\color at endbox{\color at endgroup\egroup}
+\def\convertcolorspec#1#2#3#4%
+ {\begingroup
+ \XC at sdef\sm{#1}\XC at sdef\tm{#3}\edef\@@tmp{#2}%
+ \ifx\sm\XC at mod@named\extractcolorspecs\@@tmp\sm\@@tmp\fi
+ \ifx\sm\tm\else\csname XC at cnv@\sm\expandafter\endcsname\@@tmp,\fi
+ \aftergroupdef#4\@@tmp}
+\def\XC at coremodel#1#2%
+ {\XC at ifxcase#1%
+ {\XC at mod@RGB {\convertcolorspec#1#2\XC at mod@rgb#2\let#1\XC at mod@rgb}%
+ \XC at mod@HTML{\convertcolorspec#1#2\XC at mod@rgb#2\let#1\XC at mod@rgb}%
+ \XC at mod@Hsb {\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@tHsb{\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@HSB {\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@Gray{\convertcolorspec#1#2\XC at mod@gray#2\let#1\XC at mod@gray}%
+ \XC at mod@wave{\convertcolorspec#1#2\XC at mod@hsb#2\let#1\XC at mod@hsb}%
+ \XC at mod@named{}%
+ \XC at mod@ps{}}%
+ {\expandafter\XC at calc@#2,,,,:N\let#2\@@tmp}}
+\def\XC at cnv@rgb#1,#2,#3,%
+ {\XC at ifxcase\tm
+ {\XC at mod@cmy {\XC at calc@#1,#2,#3,,:C}%
+ \XC at mod@cmyk
+ {\XC at calc@#1,#2,#3,,:C\expandafter\XC at cnv@cmy at cmyk\@@tmp,}%
+ \XC at mod@RGB {\edef\@@scl{\rangeRGB}\XC at calc@#1,#2,#3,,:M}%
+ \XC at mod@HTML{\edef\@@scl{\@cclv}\XC at calc@#1,#2,#3,,:M%
+ \expandafter\XC at calc@\@@tmp,,:H%
+ \expandafter\XC at cnv@rgb at HTML\@@tmp,}%
+ \XC at mod@gray{\XC at cnv@rgb at gray#1,#2,#3,}%
+ \XC at mod@Gray{\XC at cnv@rgb at gray#1,#2,#3,\XC at cnv@gray\@@tmp,}}%
+ {\XC at cnv@rgb at hsb#1,#2,#3,\XC at cnv@hsb@}}
+\def\XC at cnv@rgb@
+ {\ifx\tm\XC at mod@rgb\else\expandafter\XC at cnv@rgb\@@tmp,\fi}
+\def\XC at cnv@rgb at hsb#1,#2,#3,%
+ {\count@\z@
+ \ifdim#2\p@>#1\p@ \else\advance\count at 4 \fi
+ \ifdim#3\p@>#2\p@ \else\advance\count at 2 \fi
+ \ifdim#1\p@>#3\p@ \else\advance\count at 1 \fi
+ \ifcase\count@\or
+ \XC at c@v at rgb@hsb{#3}{#2}{#1}3{}\or
+ \XC at c@v at rgb@hsb{#2}{#1}{#3}1{}\or
+ \XC at c@v at rgb@hsb{#2}{#3}{#1}3-\or
+ \XC at c@v at rgb@hsb{#1}{#3}{#2}5{}\or
+ \XC at c@v at rgb@hsb{#3}{#1}{#2}5-\or
+ \XC at c@v at rgb@hsb{#1}{#2}{#3}1-\or
+ \def\@tempa{0}\def\@tempb{0}\XC at calcN{#3}\@tempc
+ \fi
+ \edef\@@tmp{\@tempa,\@tempb,\@tempc}}
+\def\XC at c@v at rgb@hsb#1#2#3#4#5%
+ {\XC at calcN{#1}\@tempc \llshiftset\dimen@{#1}%
+ \llshiftset\@tempdimb{-#3}\advance\@tempdimb\dimen@
+ \llshiftset\@tempdima{-#5#2}\advance\@tempdima#5\dimen@
+ \advance\@tempdima#4\@tempdimb \rdivide\@tempdima{6\@tempdimb}%
+ \edef\@tempa{\ifdim\@tempdima>\p at 1\else\strip at pt\@tempdima\fi}%
+ \rdivide\@tempdimb\dimen@
+ \edef\@tempb{\strip at pt\@tempdimb}}
+\def\XC at cnv@rgb at gray#1,#2,#3,%
+ {\llshiftset\dimen@{#1}\@tempdima30\dimen@
+ \llshiftset\dimen@{#2}\advance\@tempdima59\dimen@
+ \llshiftset\dimen@{#3}\advance\@tempdima11\dimen@
+ \rrshift\@tempdima \rdivide\@tempdima{100}%
+ \edef\@@tmp{\strip at pt\@tempdima}}
+\def\XC at cnv@rgb at HTML#1,#2,#3,%
+ {\edef\@@tmp{#1#2#3}}
+\def\XC at cnv@cmy#1,#2,#3,%
+ {\XC at ifxcase\tm
+ {\XC at mod@cmyk{\XC at cnv@cmy at cmyk#1,#2,#3,}%
+ \XC at mod@gray{\XC at cnv@rgb at gray#1,#2,#3,\XC at calcC\@@tmp\@@tmp}%
+ \XC at mod@Gray{\XC at cnv@rgb at gray#1,#2,#3,\XC at calcC\@@tmp\@@tmp
+ \XC at cnv@gray\@@tmp,}}%
+ {\XC at calc@#1,#2,#3,,:C\XC at cnv@rgb@}}
+\def\XC at cnv@cmy at cmyk#1,#2,#3,%
+ {\edef\@@scl
+ {\ifdim#1\p@<#2\p@
+ \ifdim#1\p@<#3\p@ #1\else #3\fi \else
+ \ifdim#2\p@<#3\p@ #2\else #3\fi \fi}%
+ \expandafter\XC at calc@\adjustUCRBG,:S%
+ \expandafter\XC at c@v at cmy@cmyk\@@tmp,#1,#2,#3,}
+\def\XC at c@v at cmy@cmyk#1,#2,#3,#4,#5,#6,#7,%
+ {\XC at add#5,#6,#7,,-#1,-#2,-#3,,\@@tmp \edef\@@tmp{\@@tmp,#4}%
+ \expandafter\XC at calc@\@@tmp,:N}
+\def\XC at cnv@cmyk#1,#2,#3,#4,%
+ {\XC at ifxcase\tm
+ {\XC at mod@gray{\XC at cnv@rgb at gray#1,#2,#3,\edef\@@arg{#4}%
+ \XC at calcT\@@tmp\@@tmp \XC at calcC\@@tmp\@@tmp}%
+ \XC at mod@Gray{\XC at cnv@rgb at gray#1,#2,#3,\edef\@@arg{#4}%
+ \XC at calcT\@@tmp\@@tmp \XC at calcC\@@tmp\@@tmp \XC at cnv@gray\@@tmp,}}%
+ {\XC at cnv@cmyk at cmy#1,#2,#3,#4,%
+ \ifx\tm\XC at mod@cmy\else\expandafter\XC at cnv@cmy\@@tmp,\fi}}
+\def\XC at cnv@cmyk at cmy#1,#2,#3,#4,%
+ {\edef\@@arg{#4}\XC at calc@#1,#2,#3,,:T}
+\def\XC at cnv@hsb#1,#2,#3,%
+ {\XC at ifxcase\tm
+ {\XC at mod@Hsb {\XC at cnv@hsb at Hsb#1,#2,#3,}%
+ \XC at mod@tHsb{\XC at cnv@hsb at Hsb#1,#2,#3,\expandafter\XC at cnv@Hsb\@@tmp,}%
+ \XC at mod@HSB {\edef\@@scl{\rangeHSB}\XC at calc@#1,#2,#3,,:M}}%
+ {\XC at cnv@hsb at rgb#1,#2,#3,\XC at cnv@rgb@}}
+\def\XC at cnv@hsb@
+ {\ifx\tm\XC at mod@hsb\else\expandafter\XC at cnv@hsb\@@tmp,\fi}
+\def\XC at cnv@hsb at rgb#1,#2,#3,%
+ {\llshiftset\dimen@{#1}\dimen at 6\dimen@ \rrshift\dimen@
+ \afterassignment\dimen@\count@=\the\dimen@
+ \edef\@@tmp{\strip at pt\dimen@}%
+ \ifodd\count@\else\XC at calcC\@@tmp\@@tmp\fi
+ \edef\@@tmp
+ {\ifcase\count@ 0,\@@tmp,1\or \@@tmp,0,1\or 1,0,\@@tmp\or
+ 1,\@@tmp,0\or \@@tmp,1,0\or 0,1,\@@tmp\or 0,\@@tmp,1\fi}%
+ \edef\@@scl{#2}\expandafter\XC at calc@\@@tmp,,:S%
+ \expandafter\XC at calc@\@@tmp,,:C%
+ \edef\@@scl{#3}\expandafter\XC at calc@\@@tmp,,:S%
+ \expandafter\XC at calc@\@@tmp,,:N}
+\def\XC at cnv@hsb at Hsb#1,#2,#3,%
+ {\XC at c@lcS\rangeHsb{,#2,#3}{#1}\@@tmp}
+\def\XC at cnv@gray#1,%
+ {\XC at ifxcase\tm
+ {\XC at mod@rgb {\XC at calcN{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}%
+ \XC at mod@cmy {\XC at calcC{#1}\@@tmp \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}%
+ \XC at mod@cmyk{\XC at calcC{#1}\@@tmp \edef\@@tmp{0,0,0,\@@tmp}}%
+ \XC at mod@RGB {\edef\@@scl{\rangeRGB}\XC at calcM{#1}\@@tmp
+ \edef\@@tmp{\@@tmp,\@@tmp,\@@tmp}}%
+ \XC at mod@HTML{\edef\@@scl{\@cclv}\XC at calcM{#1}\@@tmp
+ \XC at calcH\@@tmp\@@tmp \edef\@@tmp{\@@tmp\@@tmp\@@tmp}}%
+ \XC at mod@HSB {\edef\@@scl{\rangeHSB}\XC at calcM{#1}\@@tmp
+ \edef\@@tmp{0,0,\@@tmp}}%
+ \XC at mod@Gray{\edef\@@scl{\rangeGray}\XC at calcM{#1}\@@tmp}}%
+ {\XC at calcN{#1}\@@tmp \edef\@@tmp{0,0,\@@tmp}}}
+\def\XC at cnv@RGB#1,#2,#3,%
+ {\edef\@@scl{\rangeRGB}\XC at calc@#1,#2,#3,,:D\XC at cnv@rgb@}
+\def\XC at cnv@HTML#1,%
+ {\edef\@@tmp{\expandafter\@hex at Hex#1\relax}\expandafter\XC at cnv@HTML@\@@tmp
+ \edef\@@scl{\@cclv}\expandafter\XC at calc@\@@tmp,,:D\XC at cnv@rgb@}
+\def\XC at cnv@HTML@#1#2#3#4#5#6%
+ {\edef\@@tmp{\number"#1#2,\number"#3#4,\number"#5#6}}
+\def\XC at cnv@Hsb#1,#2,#3,%
+ {\ifx\tm\XC at mod@tHsb\XC at cnv@@Hsb#1,#2,#3,\XC at cnv@Hsb@
+ \else\XC at cnv@Hsb at hsb#1,#2,#3,\XC at cnv@hsb@\fi}
+\def\XC at cnv@Hsb at hsb#1,#2,#3,%
+ {\XC at c@lcD\rangeHsb{,#2,#3}{#1}\@@tmp}
+\def\XC at cnv@@Hsb#1,#2,#3,#4%
+ {\dimen@\rangeHsb\p@ \advance\dimen@\p@ \edef\@@tmp{\strip at pt\dimen@}%
+ \edef\@@tmp{0,0;\rangetHsb;\rangeHsb,\rangeHsb;\@@tmp,\@@tmp;}%
+ \dimen@#1\p@ \expandafter#4\@@tmp\@nnil
+ \edef\@@tmp{\strip at pt\dimen@,#2,#3}}
+\def\XC at cnv@Hsb@#1,#2;#3,#4;%
+ {\ifdim\dimen@<#4\p@
+ \@tempdima#3\p@ \advance\@tempdima-#1\p@
+ \@tempdimb#4\p@ \advance\@tempdimb-#2\p@
+ \rdivide\@tempdima\@tempdimb
+ \advance\dimen at -#2\p@ \rmultiply\dimen@{\strip at pt\@tempdima}%
+ \advance\dimen@#1\p@ \expandafter\remove at to@nnil
+ \else
+ \def\@@tmp{\XC at cnv@Hsb@#3,#4;}\expandafter\@@tmp
+ \fi}
+\def\XC at cnv@tHsb#1,#2,#3,%
+ {\XC at cnv@@Hsb#1,#2,#3,\XC at cnv@tHsb@
+ \ifx\tm\XC at mod@Hsb\else\expandafter\XC at cnv@Hsb\@@tmp,\fi}
+\def\XC at cnv@tHsb@#1,#2;#3,#4;%
+ {\ifdim\dimen@<#3\p@
+ \@tempdima#4\p@ \advance\@tempdima-#2\p@
+ \@tempdimb#3\p@ \advance\@tempdimb-#1\p@
+ \rdivide\@tempdima\@tempdimb
+ \advance\dimen at -#1\p@ \rmultiply\dimen@{\strip at pt\@tempdima}%
+ \advance\dimen@#2\p@ \expandafter\remove at to@nnil
+ \else
+ \def\@@tmp{\XC at cnv@tHsb@#3,#4;}\expandafter\@@tmp
+ \fi}
+\def\XC at cnv@HSB#1,#2,#3,%
+ {\edef\@@scl{\rangeHSB}\XC at calc@#1,#2,#3,,:D\XC at cnv@hsb@}
+\def\XC at cnv@Gray#1,%
+ {\XC at c@lcD\rangeGray{}{#1}\@@tmp \XC at cnv@gray\@@tmp,}
+\def\XC at cnv@wave#1,%
+ {\XC at cnv@wave at hsb#1,\XC at cnv@hsb@}
+\def\XC at cnv@wave at hsb#1,%
+ {\@tempdima#1\p@
+ \ifdim\@tempdima<440\p@
+ \XC at c@v at wave@hsb{-.0166667}{7.33333}4{}\else
+ \ifdim\@tempdima<490\p@
+ \XC at c@v at wave@hsb{.02}{-8.8}4-\else
+ \ifdim\@tempdima<510\p@
+ \XC at c@v at wave@hsb{-.05}{25.5}2{}\else
+ \ifdim\@tempdima<580\p@
+ \XC at c@v at wave@hsb{.0142857}{-7.28571}2-\else
+ \ifdim\@tempdima<645\p@
+ \XC at c@v at wave@hsb{-.0153846}{9.92308}0{}\else
+ \dimen@\z@ \fi\fi\fi\fi\fi
+ \divide\dimen at 6\relax
+ \edef\@@tmp{\strip at pt\dimen@,1,}%
+ \ifdim\@tempdima<420\p@
+ \XC at c@v at wave@hsb{.0175}{-6.35}0{}\else
+ \ifdim\@tempdima>700\p@
+ \XC at c@v at wave@hsb{-.00875}{7.125}0{}\else
+ \dimen@\p@ \fi\fi
+ \edef\@@tmp{\@@tmp\strip at pt\dimen@}}
+\def\XC at c@v at wave@hsb#1#2#3#4%
+ {\dimen@#1\@tempdima \advance\dimen@#2\p@
+ \XC at calcR{\strip at pt\dimen@}\@tempa
+ \dimen@#4\@tempa\p@ \advance\dimen@#3\p@}
+\def\XC at cnv@cmyk at compl#1,#2,#3,#4,%
+ {\XC at cnv@cmyk at cmy#1,#2,#3,#4,%
+ \expandafter\XC at calc@\@@tmp,,:C\expandafter\XC at cnv@cmy at cmyk\@@tmp,}
+\def\XC at cnv@hsb at compl#1,#2,#3,%
+ {\lshiftset\dimen@{#1}\advance\dimen@\ifdim\dimen@<5\p at -\fi-5\p@
+ \rshift\dimen@ \edef\@@tmp{\strip at pt\dimen@}%
+ \lshiftset\dimen@{#3}\@tempdima#2\dimen@
+ \@tempdimb\@tempdima \advance\@tempdimb10\p@ \advance\@tempdimb-\dimen@
+ \ifdim\@tempdimb=\z@
+ \edef\@@tmp{\@@tmp,0,0}%
+ \else
+ \rdivide\@tempdima\@tempdimb \rshift\@tempdimb
+ \edef\@@tmp{\@@tmp,\strip at pt\@tempdima,\strip at pt\@tempdimb}%
+ \fi}
+\def\substitutecolormodel#1#2%
+ {\XC at sdef\XC@@tmp{\expandafter\XC at substitutecolormodel#2/ignore/\@nnil}%
+ \ifx\XC@@tmp\XC at mod@ignore
+ \XC at let@cN{color@#1}\color at ignore
+ \else
+ \expandafter\edef\csname color@#1\endcsname##1##2%
+ {\noexpand\convertcolorspec
+ \expandafter\noexpand\csname XC at mod@#1\endcsname{##2}%
+ \expandafter\noexpand\csname XC at mod@\XC@@tmp\endcsname
+ \noexpand\XC@@tmp\noexpand\expandafter
+ \expandafter\noexpand\csname color@\XC@@tmp\endcsname
+ \noexpand\expandafter##1\noexpand\expandafter{\noexpand\XC@@tmp}}%
+ \fi
+ \expandafter\xglobalize@\csname color@#1\endcsname \xglobal at stop
+ \PackageInfo{xcolor}{Model `#1' substituted by `\XC@@tmp'}}
+\def\XC at substitutecolormodel#1/%
+ {\@ifundefinedmodel{#1}{\XC at substitutecolormodel}{#1\remove at to@nnil}}
+\def\color at ignore#1#2{\def#1{}}
+\@ifundefinedmodel{rgb}%
+ {\substitutecolormodel{rgb}{RGB/HTML/hsb/Hsb/HSB/cmy/cmyk/gray/Gray}}{}
+\@ifundefinedmodel{cmyk}{\substitutecolormodel{cmyk}{cmy/rgb}}{}
+\@ifundefinedmodel{cmy}%
+ {\PackageInfo{xcolor}{Model `cmy' substituted by `cmy0'}
+ \def\color at cmy#1#2{\color at cmyk#1{#2,0}}}{}
+\@ifundefinedmodel{hsb}{\@tempswatrue}%
+ {\XC at ifcase\XC@@drv{{dvipdfm,textures}\@tempswatrue}\@tempswafalse}
+\if at tempswa
+ \substitutecolormodel{hsb}{Hsb/HSB/rgb}
+\fi
+\@ifundefinedmodel{RGB}%
+ {\substitutecolormodel{RGB}{HTML/rgb}}
+ {\PackageInfo{xcolor}{Model `RGB' extended}
+ \let\XC at color@RGB\color at RGB
+ \def\color at RGB#1#2%
+ {\relax\ifnum\rangeRGB=255
+ \XC at color@RGB#1{#2}%
+ \else
+ \convertcolorspec\XC at mod@RGB{#2}\XC at mod@rgb\XC@@tmp
+ \expandafter\color at rgb\expandafter#1\expandafter{\XC@@tmp}%
+ \fi}}
+\@ifundefinedmodel{gray}{\substitutecolormodel{gray}{Gray/rgb}}{}
+\@ifundefinedmodel{HTML}{\substitutecolormodel{HTML}{rgb}}{}
+\@ifundefinedmodel{Hsb}{\substitutecolormodel{Hsb}{hsb}}{}
+\@ifundefinedmodel{tHsb}{\substitutecolormodel{tHsb}{hsb}}{}
+\@ifundefinedmodel{HSB}{\substitutecolormodel{HSB}{hsb}}{}
+\@ifundefinedmodel{Gray}{\substitutecolormodel{Gray}{gray}}{}
+\@ifundefinedmodel{wave}{\substitutecolormodel{wave}{hsb}}{}
+\@ifundefined{XC at pst}{%
+\def\XC at getcolor#1#2%
+ {\begingroup\toks@{#1}\XC at getc@lor#1\XC@@\aftergroupdef#2{\@@tmp}}
+\def\XC at getc@lor#1#2\XC@@
+ {\@ifxempty{#2}%
+ {\expandafter\XC at getc@l at r#1\XC@@}%
+ {\let\set at color\relax
+ \ifx#1[%
+ \expandafter\@undeclaredcolor\the\toks@\else
+ \expandafter\@declaredcolor\expandafter{\the\toks@}\fi
+ \let\@@tmp\XC at current@color}}
+\def\XC at getc@l at r#1#2\XC@@
+ {\ifx#1\xcolor@
+ \def\@@tmp{\xcolor@#2}%
+ \else
+ \let\set at color\relax
+ \expandafter\@declaredcolor\expandafter{\the\toks@}%
+ \let\@@tmp\XC at current@color
+ \fi}
+}{% compatibility code begin
+\def\XC at getcolor#1#2%
+ {\@ifundefinedcolor{#1}%
+ {\begingroup\color{#1}%
+ \edef\@@tmp
+ {\edef\noexpand#2{\noexpand\expandafter\noexpand\c at lor@to at ps
+ \current at color\noexpand\@@}}%
+ \expandafter\endgroup\@@tmp}%
+ {\edef#2{\XC at usecolor{#1}}}}
+}% compatibility code end
+\def\XC at usecolor#1{\expandafter\XC at usec@lor#1\XC@@}
+\def\XC at usec@lor#1#2\XC@@
+ {\ifx#1\xcolor@
+ \expandafter\expandafter\expandafter\c at lor@to at ps#1#2\@@
+ \else
+ \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\c at lor@to at ps\csname\string\color@#1#2\endcsname\@@
+ \fi
+ \space}
+\let\XC at c@lor at to@ps\XC at usecolor
+\let\pst at getcolor\XC at getcolor
+\@ifundefined{XC at pst}{%
+ \let\pst at usecolor\XC at usecolor
+}{}
+\def\c at lor@special#1#2{\edef\@tempa{\write#1{#2}}\@tempa}
+\def\normalcolor{\let\current at color\default at color\set at color}
+\AtBeginDocument{\let\default at color\current at color}
+\XC at ifcase\XC@@drv
+ {{dvipdf,dvipdfm,dvipdfmx,dvips,pctex32}%
+ {\def\c at lor@@named#1,#2,#3\@@#4%
+ {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive
+ \csname\string\color@#1\endcsname}}
+ \def\define at color@named#1#2%
+ {\@namedef{\string\color@#1}{{}{}{ \colornameprefix#1}{}{}}}}%
+ {dvipsone,pctexps,pdftex,tcidvi,truetex,vtex,xetex}%
+ {\def\c at lor@@named#1,#2,#3\@@#4%
+ {\edef#4{\expandafter\expandafter\expandafter\@thirdoffive
+ \csname\string\color@#1\endcsname}}
+ \def\define at color@named#1#2%
+ {\let\@@cls\@empty\@namedef{\string\color@#1}{{}{}{#2}{}{}}}}%
+ {textures}%
+ {\def\c at lor@@named#1,#2,#3\@@#4%
+ {\edef\@tempa{\color at P@custom{#1}{\if!#2!1\else#2\fi}}%
+ \expandafter\def\expandafter#4\@tempa}
+ \def\define at color@named#1#2%
+ {\edef\@tempa{{#1}{#2}}\expandafter\AddCustomColor\@tempa}
+ \def\c at lor@ps@#1 #2\@@
+ {\expandafter\expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\c at lor@to at ps@
+ \csname\string\color@#1\expandafter\endcsname\space
+ #2. \@@{#1}}}%
+ }{}
+\definecolorset{rgb/hsb/cmyk/gray}{}{}%
+ {red,1,0,0/0,1,1/0,1,1,0/.3;%
+ green,0,1,0/.33333,1,1/1,0,1,0/.59;%
+ blue,0,0,1/.66667,1,1/1,1,0,0/.11;%
+ orange,1,.5,0/.083333,1,1/0,.5,1,0/.595;%
+ violet,.5,0,.5/.83333,1,.5/0,.5,0,.5/.205;%
+ purple,.75,0,.25/.94444,1,.75/0,.75,.5,.25/.2525;%
+ brown,.75,.5,.25/.083333,.66667,.75/0,.25,.5,.25/.5475;%
+ pink,1,.75,.75/0,.25,1/0,.25,.25,0/.825}%
+\definecolorset{cmyk/rgb/hsb/gray}{}{}%
+ {cyan,1,0,0,0/0,1,1/.5,1,1/.7;%
+ magenta,0,1,0,0/1,0,1/.83333,1,1/.41;%
+ yellow,0,0,1,0/1,1,0/.16667,1,1/.89;%
+ olive,0,0,1,.5/.5,.5,0/.16667,1,.5/.39}
+\definecolorset{gray/rgb/hsb/cmyk}{}{}%
+ {black,0/0,0,0/0,0,0/0,0,0,1;%
+ darkgray,.25/.25,.25,.25/0,0,.25/0,0,0,.75;%
+ gray,.5/.5,.5,.5/0,0,.5/0,0,0,.5;%
+ lightgray,.75/.75,.75,.75/0,0,.75/0,0,0,.25;%
+ white,1/1,1,1/0,0,1/0,0,0,0}
+\XC@@names
+\AtBeginDocument{\let\XC@@stack\@empty}
+\let\colornameprefix\XC@@nameprefix
+\XC at catcodes
+\csname xcolorcmd\endcsname
+\color{black}
+\endinput
+%%
+%% End of file `xcolor.sty'.
diff --git a/ref/glance/xcolor1.tex b/ref/glance/xcolor1.tex
new file mode 100644
index 0000000..5beeb03
--- /dev/null
+++ b/ref/glance/xcolor1.tex
@@ -0,0 +1,182 @@
+%%
+%% This is file `xcolor1.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `test1')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor1.tex.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesFile{xcolor1}
+ [2005/12/21 v2.09 Color conversion test (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\XCfileversion{v2.09}%
+\def\XCfiledate{2005/12/21}%
+\documentclass[a4paper]{article}
+
+\usepackage{array,multicol,multido,textcomp}
+\usepackage{xcolor}[2005/03/24]
+\usepackage[hmargin={1.25cm,.75cm},vmargin=1.25cm,footskip=.5cm,nohead]{geometry}
+
+\newdimen\Argwd
+\newdimen\Errsum
+\newdimen\Errmax
+\newcount\Colors
+\newcount\Errors
+\newcount\Loops
+\newif\ifColor
+
+\makeatletter
+
+\def\DisplayColor#1#2#3%
+ {\global\advance\Loops\@ne
+ \@tempdima=#1\p@ \edef\@tempa{\the\@tempdima}%
+ \edef\Colori{\strip at pt\@tempdima}%
+ \ifColor
+ \@tempdimb=#2\p@ \edef\@tempb{\the\@tempdimb}%
+ \@tempdimc=#3\p@ \edef\@tempc{\the\@tempdimc}%
+ \edef\Colori{\Colori,\strip at pt\@tempdimb,\strip at pt\@tempdimc}%
+ \fi
+ \Make12\Make23\Make34\Make45\Make56\Make67%
+ \begin{tabular}{@{}ll*4{@{ }p{\Argwd}}@{}}
+ \Row1\Row2\Row3\Row4\Row5\Row6\noalign{\medskip}
+ \end{tabular}
+ \global\advance\Colors1 \relax\ifnum\Colors=30 \newpage\global\Colors=0 \fi}
+
+\def\Make#1#2%
+ {\edef\@@tmp
+ {\noexpand\definecolor{Color\romannumeral#1}%
+ {\@nameuse{Model\romannumeral#1}}{\@nameuse{Color\romannumeral#1}}%
+ }\@@tmp
+ \relax\ifnum#1<6
+ \convertcolorspec
+ {\@nameuse{Model\romannumeral#1}}{\@nameuse{Color\romannumeral#1}}%
+ {\@nameuse{Model\romannumeral#2}}\@@tmp
+ \XC at let@cN{Color\romannumeral#2}\@@tmp
+ \fi}
+\def\Row#1%
+ {\edef\@@tmp{\@nameuse{Color\romannumeral#1}\@nameuse{Row\romannumeral#1}}%
+ \expandafter\@Row\@@tmp}
+
+\def\@Row#1,#2,#3,#4,#5#6%
+ {\fcolorbox{black}{Color\romannumeral#5}{\phantom{000}}&
+ \csname Model\romannumeral#5\endcsname &
+ \ifodd#6 \@Error{#1}\@tempa \else #1\fi &
+ \ifColor\ifodd#6 \@Error{#2}\@tempb \else #2\fi\else #2\fi &
+ \ifColor\ifodd#6 \@Error{#3}\@tempc \else #3\fi\else #3\fi &
+ #4\\}
+
+\def\defModel#1#2#3#4% number, name, commas, check
+ {\@namedef{Model\romannumeral#1}{#2}\@namedef{Row\romannumeral#1}{#3#1#4}}
+
+\def\@Error#1#2%
+ {\ifdim#1\p@=#2\relax #1\else
+ \textcolor{red}{#1}\global\advance\Errors\@ne
+ \dimen@#2\advance\dimen at -#1\p@ \ifdim\dimen@<\z@\dimen at -\dimen@\fi
+ \global\advance\Errsum\dimen@
+ \ifdim\dimen@>\Errmax \global\Errmax\dimen@
+ \dimen@\@tempa \edef\@@tempa{\strip at pt\dimen@}%
+ \ifColor
+ \dimen@\@tempb \edef\@@tempb{\strip at pt\dimen@}%
+ \dimen@\@tempc \edef\@@tempc{\strip at pt\dimen@}%
+ \xdef\Errcase{\@@tempa\noexpand~\@@tempb\noexpand~\@@tempc}%
+ \else
+ \xdef\Errcase{\@@tempa}%
+ \fi
+ \fi
+ \fi}
+
+\newenvironment{ColorTest}[1]%
+ {\addcontentsline{toc}{section}{Color conversion chain: #1}
+ \Colors\z@ \Errors\z@ \Loops\z@ \Errsum\z@ \Errmax\z@
+ \begin{multicols}{3}\centering}%
+ {\end{multicols}\bigskip
+ \begin{tabular}{@{}l@{ = }l@{}}
+ \multicolumn2{@{}l@{}}{Rounding error statistics of color conversion test}\\
+ \multicolumn2{@{}l@{}}%
+ {$\textbf\Modeli\rightarrow \textbf\Modelii\rightarrow \textbf\Modeliii\rightarrow
+ \textbf\Modeliv\rightarrow \textbf\Modelv\rightarrow \textbf\Modelvi$:}\\[1ex]
+ number of examples& \number\Loops\\
+ number of errors& \number\Errors\\
+ sum of absolute errors& \strip at pt\Errsum\\
+ \ifnum\Errors>\z@
+ average error& \Errsum100\Errsum \dimen@\Errors\p@ \divide\dimen@\@m
+ \rdivide\Errsum\dimen@ \strip at pt\Errsum\textperiodcentered10\textsuperscript{-5}\\
+ maximum error& \strip at pt\Errmax{} @ \Modeli~\Errcase\\
+ \fi
+ \end{tabular}\newpage}
+
+\def\thepage{\sffamily\footnotesize\@nameuse{@arabic}\c at page}
+
+\makeatother
+
+\parindent0pt
+\setcounter{secnumdepth}{-1}
+
+\begin{document}
+
+\title{Color conversion with the \textsf{xcolor} package --- Examples}
+\author{Dr. Uwe Kern\thanks{This file is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors (\texttt{macros/latex/contrib/xcolor/}) or the homepage \texttt{www.ukern.de/tex/xcolor.html}. Please send error reports and suggestions for improvements to \texttt{xcolor at ukern.de}.}}
+\date{\XCfileversion{} (\XCfiledate)}
+\maketitle
+
+\begin{center}
+\begin{minipage}{.75\textwidth}
+\tableofcontents
+\end{minipage}
+\end{center}
+\newpage
+
+\sffamily\footnotesize
+\fboxrule.25pt
+\settowidth\Argwd{0.00000}
+
+\defModel1{rgb}{,,}0
+\defModel2{cmy}{,,}0
+\defModel3{cmyk}{,}0
+\defModel4{hsb}{,,}0
+\defModel5{rgb}{,,}1
+\defModel6{gray}{,,,,}0
+\Colortrue
+
+\begin{ColorTest}{rgb, cmy, cmyk, hsb, rgb, gray}
+\multido{\nR=1+-.1}{11}%
+ {\multido{\nG=1+-.1}{11}%
+ {\multido{\nB=1+-.1}{11}%
+ {\DisplayColor{\nR}{\nG}{\nB}}}}%
+\end{ColorTest}
+
+\defModel1{gray}{,,,,}0
+\defModel2{rgb}{,,}0
+\defModel3{cmy}{,,}0
+\defModel4{cmyk}{,}0
+\defModel5{hsb}{,,}0
+\defModel6{gray}{,,,,}1
+\Colorfalse
+
+\begin{ColorTest}{gray, rgb, cmy, cmyk, hsb, gray}
+\multido{\nG=1+-.01}{101}{\DisplayColor{\nG}{}{}}%
+\end{ColorTest}
+
+\end{document}
+\endinput
+%%
+%% End of file `xcolor1.tex'.
diff --git a/ref/glance/xcolor2.tex b/ref/glance/xcolor2.tex
new file mode 100644
index 0000000..e369af1
--- /dev/null
+++ b/ref/glance/xcolor2.tex
@@ -0,0 +1,157 @@
+%%
+%% This is file `xcolor2.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `test2')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor2.tex.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesFile{xcolor2}
+ [2005/12/21 v2.09 Pstricks color test (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\XCfileversion{v2.09}%
+\def\XCfiledate{2005/12/21}%
+\listfiles
+\documentclass{article}
+
+\usepackage{pstricks,pst-tree,pst-slpe,multido}
+\makeatletter
+\@ifpackagelater{pstricks}{2004/05/12}{}{\usepackage[pst]{xcolor}}
+\makeatother
+\usepackage{fvrb-ex}
+
+\def\textfraction{0.01}
+\def\topfraction{0.99}
+\def\bottomfraction{0.99}
+\def\floatpagefraction{0.70}
+\setlength\abovecaptionskip{12pt}
+\setlength\belowcaptionskip{10pt}
+\parindent0pt
+
+\begin{document}
+\title{Color extensions with the \textsf{xcolor} package --- \textsf{pstricks} examples}
+\author{Dr. Uwe Kern\thanks{This file is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors (\texttt{macros/latex/contrib/xcolor/}) or the homepage \texttt{www.ukern.de/tex/xcolor.html}. Please send error reports and suggestions for improvements to \texttt{xcolor at ukern.de}.}}
+\date{\XCfileversion{} (\XCfiledate)}
+\maketitle
+
+\centerline{\fcolorbox{red}{yellow!50}{This document is not suitable for pdf\LaTeX! Please use \LaTeX{} + \texttt{dvips} etc.}}
+
+\begin{figure}[htb]\caption{Modified version of an example from the \textsf{pstricks} manual; requires \textsf{pst-tree}}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \begin{pspicture}(-0.5,-2)(3,2)
+ \cnode(0,0){.5cm}{root}
+ \cnode*[linecolor=red](3,1.5){4pt}{A}
+ \cnode*[linecolor=red!72.5375!blue](3,0){4pt}{B}
+ \cnode*[linecolor=-red](3,-1.5){4pt}{C}
+ \psset{nodesep=3pt}
+ \ncline[linecolor=green!50!red]{root}{A}
+ \ncline[linecolor=blue]{root}{B}
+ \ncline[linecolor=-green!50!red]{root}{C}
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Moving from one color to its complement; requires \textsf{pst-slpe}}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \begin{pspicture}(4,1)
+ \psframe[fillstyle=slope,
+ slopeangle=30,
+ slopebegin=red!72.5375!blue,
+ slopeend=-red!72.5375!blue](4,1)
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Explicit color specification via a loop command; requires \textsf{multido}}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \psset{unit=1.75}%
+ \begin{pspicture}(0,-1)(2,1)
+ \multido{\rHue=0.00+0.01}{100}%
+ {\pscircle[linewidth=0.01,
+ linecolor={[hsb]{\rHue,1,1}}](1,0){\rHue}}
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Color series --- modified version of an example from the \textsf{pst-fill} manual; note that the \texttt{\string\multirput} command does not give the desired result here}
+\begin{SideBySideExample}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \newcommand*\Sheep
+ {\begin{pspicture}(3,1.5)
+ \pscustom[liftpen=2,fillstyle=solid,fillcolor=sheep!!+]%
+ {\pscurve(0.5,-0.2)(0.6,0.5)(0.2,1.3)(0,1.5)(0,1.5)
+ (0.4,1.3)(0.8,1.5)(2.2,1.9)(3,1.5)(3,1.5)(3.2,1.3)
+ (3.6,0.5)(3.4,-0.3)(3,0)(2.2,0.4)(0.5,-0.2)}
+ \pscircle*(2.65,1.25){0.12\psunit}% Eye
+ \psccurve*(3.5,0.3)(3.35,0.45)(3.5,0.6)(3.6,0.4)% Muzzle
+ \pscurve(3,0.35)(3.3,0.1)(3.6,0.05)% Mouth
+ \pscurve(2.3,1.3)(2.1,1.5)(2.15,1.7)
+ \pscurve(2.1,1.7)(2.35,1.6)(2.45,1.4)% Ear
+ \end{pspicture}}
+ \definecolorseries
+ {sheep}{rgb}{step}[rgb]{.95,.85,.55}{.17,.47,.37}
+ \resetcolorseries{sheep}
+ \psset{unit=0.4}
+ \begin{pspicture}(-3,-6)(0,7.5)
+ \Multido{\ry=6.0+-1.5}{5}%
+ {\rput(0,\ry){\Multido{}{5}{\Sheep}}}
+ \resetcolorseries{sheep}%
+ \multirput(-6,-6)(3,0)5{\Sheep}
+ \end{pspicture}
+\end{SideBySideExample}
+\end{figure}
+
+\begin{figure}[htb]\caption{Interaction with native PostScript code --- $\gamma$-corrected wavelengths}
+\begin{Example}[fontsize=\footnotesize,xrightmargin=.45\textwidth]
+ \newcount\WL \unitlength.75pt
+ \def\WaveToPS#1%
+ {\definecolor{tmp}{rgb:wave}{#1}\extractcolorspecs{tmp}\tmpm\tmpc
+ \expandafter\WaveToPSi\tmpc,}
+ \def\WaveToPSi#1,#2,#3,{\pstVerb{/Red{#1}def /Green{#2}def /Blue{#3}def}}
+ \def\DisplayBar#1#2%
+ {\linethickness{1.25\unitlength}\WL=360
+ \pstVerb{/Gamma{#1}def}%
+ \multiput(360,#2)(1,0){456}%
+ {\WaveToPS{\the\WL}{\color{lambda}\line(0,1){50}}\global\advance\WL1}%
+ \linethickness{0.25\unitlength}\WL=360
+ \multiput(360,#2)(20,0){23}%
+ {\picture(0,0)
+ \line(0,-1){5}\multiput(5,0)(5,0){3}{\line(0,-1){2.5}}%
+ \put(0,-10){\makebox(0,0){\the\WL}}\global\advance\WL20
+ \endpicture}%
+ \put(350,#2){\makebox(0,50)[r]{\small$\gamma$\,=\,#1}}}
+ \pstVerb{/Corr{dup 0 gt {Gamma exp}if}def}
+ \definecolor[ps]{lambda}{rgb}{Red Corr Green Corr Blue Corr}%
+ \begin{picture}(510,345)(310,-10)
+ \sffamily\tiny
+ \DisplayBar{0.4}{0}%
+ \DisplayBar{0.6}{70}%
+ \DisplayBar{0.8}{140}%
+ \DisplayBar{1.0}{210}%
+ \DisplayBar{1.2}{280}%
+ \end{picture}
+\end{Example}
+\end{figure}
+
+\end{document}
+\endinput
+%%
+%% End of file `xcolor2.tex'.
diff --git a/ref/glance/xcolor3.tex b/ref/glance/xcolor3.tex
new file mode 100644
index 0000000..4956e60
--- /dev/null
+++ b/ref/glance/xcolor3.tex
@@ -0,0 +1,241 @@
+%%
+%% This is file `xcolor3.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `test3')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor3.tex.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesFile{xcolor3}
+ [2005/12/21 v2.09 Color logging test (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\XCfileversion{v2.09}%
+\def\XCfiledate{2005/12/21}%
+\listfiles
+\documentclass[a4paper]{article}
+\usepackage[showerrors,table,dvipsnames*,hyperref]{xcolor}[2005/12/21]
+\usepackage[margin=2.25cm]{geometry}
+\usepackage
+ [\GinDriver,hyperindex=false,bookmarks,bookmarksopen,bookmarksopenlevel=1,%
+ pdftitle={xcolor3 \XCfileversion{} (\XCfiledate)},pdfauthor={Dr. Uwe Kern},%
+ pdfsubject={Color extensions for LaTeX and pdfLaTeX},%
+ pdfkeywords={xcolor,color,colour,model,tint,tone,shade,harmony,spot,latex,pdftex,dvips,%
+ conversion,blend,mix,mask,separation,rgb,cmy,cmyk,hsb,gray,html,wave,thsb,wheel}]{hyperref}
+
+\tracingcolors=4
+%%\tracingcolors=3
+%%\tracingcolors=2
+%%\tracingcolors=1
+%%\tracingcolors=0
+
+\parindent0pt
+\pagecolor{gray!25}
+
+\definecolors{JungleGreen,DarkOrchid}
+
+\begin{document}
+\title{Color extensions with the \textsf{xcolor} package --- various examples}
+\author{\href{mailto:xcolor at ukern.de}{\fboxrule0pt\fboxsep2pt\fbox{Dr. Uwe Kern}}}
+\date{\XCfileversion{} (\XCfiledate)
+\thanks{This file (\texttt{\jobname.tex}) is part of the \textsf{xcolor} distribution which can be downloaded from the CTAN mirrors \texttt{\href{http://www.ctan.org/tex-archive/macros/latex/contrib/xcolor/}{CTAN/macros/latex/contrib/xcolor/}} or the homepage \texttt{\href{http://www.ukern.de/tex/xcolor.html}{www.ukern.de/tex/xcolor.html}}. Please send error reports and suggestions for improvements to \texttt{\href{mailto:xcolor at ukern.de}{xcolor at ukern.de}}.}}
+\maketitle
+
+The purpose of this file is to demonstrate a variety of capabilities including the logging facilities of the \textsf{xcolor} package.
+By playing around with different values of \texttt{\string\tracingcolors}, one can observe the different behavior in the \texttt{log} file.
+
+\section{Predefined colors}
+
+\begingroup
+\small\sffamily
+\rowcolors1{}{}
+\begin{testcolors}[rgb,cmyk,hsb,HTML,gray]
+\testcolor{red}
+\testcolor{green}
+\testcolor{blue}
+\testcolor{cyan}
+\testcolor{magenta}
+\testcolor{yellow}
+\testcolor{orange}
+\testcolor{violet}
+\testcolor{purple}
+\testcolor{brown}
+\testcolor{pink}
+\testcolor{olive}
+\testcolor{black}
+\testcolor{darkgray}
+\testcolor{gray}
+\testcolor{lightgray}
+\testcolor{white}
+\noalign{\medskip}\hline\noalign{\medskip}
+\testcolor{-red}
+\testcolor{-green}
+\testcolor{-blue}
+\testcolor{-cyan}
+\testcolor{-magenta}
+\testcolor{-yellow}
+\testcolor{-orange}
+\testcolor{-violet}
+\testcolor{-purple}
+\testcolor{-brown}
+\testcolor{-pink}
+\testcolor{-olive}
+\testcolor{-black}
+\testcolor{-darkgray}
+\testcolor{-gray}
+\testcolor{-lightgray}
+\testcolor{-white}
+\noalign{\medskip}\hline\noalign{\medskip}
+\testcolor{JungleGreen}
+\testcolor{DarkOrchid}
+\noalign{\medskip}\hline\noalign{\medskip}
+\testcolor{-JungleGreen}
+\testcolor{-DarkOrchid}
+\end{testcolors}
+\endgroup
+
+\vfill
+
+\clearpage
+\pagecolor{white}
+
+\section{Color definition and application}
+
+\providecolor{dummy}{rgb}{.6,.5,.4}
+\definecolor{dummy}{rgb}{.6,.5,.4}
+\providecolor{dummy}{rgb}{.6,.5,.4}
+\hbox{\textcolor{dummy}{Test with \texttt{\string\definecolor}}}
+
+\bigskip
+
+Comma-separated and space-separated definitions:
+
+\definecolor{c1}{rgb}{.7,.6,.5}
+\definecolor{c2}{rgb}{.7 .6 .5}
+\colorlet{c1a}{c1}
+\colorlet{c2a}{c2}
+
+\textcolor{c1}{identical} =
+\textcolor{c2}{identical} =
+\textcolor{c1a}{identical} =
+\textcolor{c2a}{identical} =
+\textcolor[rgb]{.7,.6,.5}{identical} =
+\textcolor[rgb]{.7 .6 .5}{identical} =
+\textcolor{rgb,10:red,7;green,6;blue,5}{identical}
+\textcolor{rgb,15:red,10.5;green,9;blue,7.5}{identical}
+
+\medskip
+
+\begingroup
+\sffamily
+\begin{testcolors}
+\testcolor{c1}
+\testcolor{c2}
+\testcolor{c1a}
+\testcolor{c2a}
+\testcolor[rgb]{.7,.6,.5}
+\testcolor[rgb]{.7 .6 .5}
+\testcolor{rgb,10:red,7;green,6;blue,5}
+\testcolor{rgb,15:red,10.5;green,9;blue,7.5}
+\end{testcolors}
+\endgroup
+
+\bigskip
+
+\textcolor{rgb:red!50,4;green!25,2}{Another extended color expression (rgb:red!50,4;green!25,2)}.
+
+\bigskip
+
+\begingroup
+\color{black}
+Test with named colors:\par
+\color{blue}
+Test: \textcolor[named]{JungleGreen}{JungleGreen};
+Test: \textcolor{JungleGreen}{JungleGreen};
+Test: \textcolor{JungleGreen!50!DarkOrchid}{JungleGreen!50!DarkOrchid};
+Test: \textcolor{green!50!red}{green!50!red}.
+\endgroup
+
+\bigskip
+
+{\color[rgb]{.4,.5,.6}Test with \texttt{\string\color}}
+
+\bigskip
+Current color application:\par
+\def\test{current, \textcolor{.!50}{50\%}, \textcolor{-.}{complement},
+ \textcolor{yellow!50!.}{mix}}
+\textcolor{blue}{\test} and \textcolor{red}{\test},\par
+\def\Test{\color{.!80}Test}
+\textcolor{blue}{\Test\Test\Test\Test\Test} and
+\textcolor{red}{\Test\Test\Test\Test\Test}.
+
+\bigskip
+Current color test with \texttt{\string\definecolorseries}:\par
+\begingroup
+\color{blue}
+\definecolorseries{foo}{rgb}{last}{.}{-.}
+\resetcolorseries[5]{foo}
+\def\test{\hbox to 1em{{\color{foo!!+}\vrule width 1em height 1.5ex}}}
+Test\test\test\test\test\test\test Test
+
+\resetcolorseries[5]{foo}
+\def\test{\hbox to 1em{{\color{foo!!++}\vrule width 1em height 1.5ex}}}
+Test\test\test\test\test\test\test Test
+
+\resetcolorseries[5]{foo}
+\def\test{\hbox to 1em{{\color{foo!![2]}\vrule width 1em height 1.5ex}}}
+Test\test\test\test\test\test\test Test
+
+\endgroup
+
+\section{Color in tables}
+
+\rowcolors[\hline]{1}{green!25}{yellow!50}
+\begin{tabular}{ll}
+test & row \number\rownum\\
+test & row \number\rownum\\
+\rowcolor{blue!25}
+test & row \number\rownum\\
+test & row \number\rownum\\
+\hiderowcolors
+test & row \number\rownum\\
+test & row \number\rownum\\
+\showrowcolors
+test & row \number\rownum\\
+test & row \number\rownum\\
+\multicolumn{1}%
+ {>{\columncolor{red!12}}l}{test} & row \number\rownum\\
+\end{tabular}
+
+\section{Color information}
+
+Type test:
+\makeatletter
+\@namedef{\string\color at foo1}{foo1{}{}{}{}}\edef\tempa{\XC at type{foo1}}\tempa
+\@namedef{\string\color at foo2}{\xcolor@{foo2}{}{}{}}\edef\tempb{\XC at type{foo2}}\tempb
+\@namedef{\string\color at foo3}{\xcolor@{}{foo3}{}{}}\edef\tempc{\XC at type{foo3}}\tempc
+\@namedef{\string\color at foo4}{\xcolor@{}{}{foo4}{}}\edef\tempd{\XC at type{foo4}}\tempd
+\makeatother
+
+\end{document}
+\endinput
+%%
+%% End of file `xcolor3.tex'.
diff --git a/ref/glance/xcolor4.tex b/ref/glance/xcolor4.tex
new file mode 100644
index 0000000..a922f2b
--- /dev/null
+++ b/ref/glance/xcolor4.tex
@@ -0,0 +1,209 @@
+%%
+%% This is file `xcolor4.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xcolor.dtx (with options: `test4')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from xcolor4.tex.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file xcolor.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+\ProvidesFile{xcolor4}
+ [2005/12/21 v2.09 Color driver test (UK)]
+%%
+%% ----------------------------------------------------------------
+%% Copyright (C) 2003-2005 by Dr. Uwe Kern <xcolor at ukern dot de>
+%% ----------------------------------------------------------------
+%%
+\def\XCfileversion{v2.09}%
+\def\XCfiledate{2005/12/21}%
+\listfiles
+\documentclass[a4paper]{article}
+%%\PassOptionsToPackage{dvipdf}{xcolor}
+%%\PassOptionsToPackage{dvipdfm}{xcolor}
+%%\PassOptionsToPackage{dvipdfmx}{xcolor}
+%%\PassOptionsToPackage{dvips}{xcolor}
+%%\PassOptionsToPackage{dvipsone}{xcolor}
+%%\PassOptionsToPackage{dviwin}{xcolor}
+%%\PassOptionsToPackage{dviwindo}{xcolor}
+%%\PassOptionsToPackage{emtex}{xcolor}
+%%\PassOptionsToPackage{oztex}{xcolor}
+%%\PassOptionsToPackage{pctex32}{xcolor}
+%%\PassOptionsToPackage{pctexhp}{xcolor}
+%%\PassOptionsToPackage{pctexps}{xcolor}
+%%\PassOptionsToPackage{pctexwin}{xcolor}
+%%\PassOptionsToPackage{pdftex}{xcolor}
+%%\PassOptionsToPackage{tcidvi}{xcolor}
+%%\PassOptionsToPackage{textures}{xcolor}
+%%\PassOptionsToPackage{truetex}{xcolor}
+%%\PassOptionsToPackage{vtex}{xcolor}
+%%\PassOptionsToPackage{xdvi}{xcolor}
+%%\PassOptionsToPackage{xetex}{xcolor}
+%%\PassOptionsToPackage{prologue}{xcolor}
+%%\PassOptionsToPackage{kernelfbox}{xcolor}
+%%\PassOptionsToPackage{xcdraw}{xcolor}
+\usepackage[emtex]{graphics}
+\usepackage{xcolor}
+\usepackage[margin=1.25cm,noheadfoot]{geometry}
+\pagestyle{empty}
+\parindent0pt
+\nofiles
+\let\familydefault\sfdefault
+\makeatletter
+%% special code for driver list construction via
+%% latex \def\xcdriverlist{1}\input{xcolor4}
+%% writes list in file xcolor4.tmp
+\@ifundefined{xcdriverlist}{}{%
+%% optional * (skips test whether #1.def exists)
+%% #1 = driver
+%% #2 = additional options (stored in \options@#2)
+%% #3 = processor 1
+%% #4 = output format 1
+%% #5 = processor 2
+%% #6 = output format 2
+%% #7 = processor 3
+%% #8 = output format 3
+\def\0{\@ifstar
+ {\def\@@tmp####1{\@firstoftwo}\1}{\def\@@tmp####1{\IfFileExists{####1.def}}\1}}
+\def\1#1#2#3#4#5#6#7#8{\@@tmp{#1}%
+ {\XC at let@Nc\@@tmp{options@#2}
+ \ifx\@@tmp\@empty\else
+ \edef\@@tmp{,\@@tmp}\XC at replace\@@tmp,{;#1-}\XC at replace\@@tmp;,
+ \fi
+ \edef\@@tmp{:=#1\@@tmp}
+ \expandafter\@for\expandafter\@tempa\@@tmp\do
+ {\let\@@tmp\@tempa\XC at replace\@@tmp-,
+ \edef\@@tmp{\@tempa\space\string\PassOptionsToPackage{\@@tmp}{xcolor}}
+ \@namexdef{list@#4}{\@nameuse{list@#4},#3 \@@tmp}
+ \@namexdef{list@#6}{\@nameuse{list@#6},#5 \@@tmp}
+ \@namexdef{list@#8}{\@nameuse{list@#8},#7 \@@tmp}}}%
+ {\typeout{No file `#1.def' found.}}}
+\def\list@{}
+\def\list at dvi{}
+\def\list at ps{}
+\def\list at pdf{}
+\@namedef{options at 0}{}
+\@namedef{options at 1}{kernelfbox,prologue,xcdraw,kernelfbox-xcdraw,prologue-xcdraw}
+\0{dvips}1{latex}{dvi}{dvips}{ps}{ps2pdf}{pdf}
+\0{pctex32}0{latex}{dvi}{dvips}{ps}{ps2pdf}{pdf}
+\0{dvipdf}0{latex}{dvi}{dvipdf}{pdf}{}{}
+\0{dvipdfm}1{latex}{dvi}{dvipdfm}{pdf}{}{}
+\0{dvipdfmx}0{latex}{dvi}{dvipdfmx}{pdf}{}{}
+\0{dvipsone}0{latex}{dvi}{}{}{}{}
+\0{dviwin}0{latex}{dvi}{}{}{}{}
+\0*{dviwindo}0{latex}{dvi}{}{}{}{}
+\0{emtex}0{latex}{dvi}{}{}{}{}
+\0*{oztex}0{latex}{dvi}{}{}{}{}
+\0{pctexhp}0{latex}{dvi}{}{}{}{}
+\0{pctexps}0{latex}{dvi}{}{}{}{}
+\0{pctexwin}0{latex}{dvi}{}{}{}{}
+\0{tcidvi}0{latex}{dvi}{}{}{}{}
+\0{textures}0{latex}{dvi}{}{}{}{}
+\0{truetex}0{latex}{dvi}{}{}{}{}
+\0*{xdvi}0{latex}{dvi}{}{}{}{}
+\0{pdftex}1{pdflatex}{pdf}{}{}{}{}
+\0{vtex}0{vlatex}{pdf}{}{}{}{}
+\0{xetex}0{xelatex}{pdf}{}{}{}{}
+\newwrite\@tempa\immediate\openout\@tempa=\jobname.tmp
+\@tfor\@tempb:={dvi}{ps}{pdf}\do
+ {\edef\@@tmp{\@nameuse{list@\@tempb}}\edef\@@tmp{:=\expandafter\@gobble\@@tmp}
+ \expandafter\@for\expandafter\@@tmp\@@tmp\do
+ {\immediate\write\@tempa{\@@tmp}}}
+\immediate\closeout\@tempa
+\@@end}% end of driver list construction code
+\edef\Options{\expandafter\@gobble\XC@@opt}
+\@tfor\@@tmp:={dvipdf}{dvipdfm}{dvipdfmx}{dvips}{dvipsone}{dviwin}{dviwindo}%
+ {emtex}{oztex}{pctex32}{pctexhp}{pctexps}{pctexwin}{pdftex}%
+ {tcidvi}{textures}{truetex}{vtex}{xdvi}{xetex}%
+ {natural}{table}{fixpdftex}{hyperref}{showerrors}{hideerrors}%
+ {override}{usenames}{nodvipsnames}{debugshow}\do
+ {\expandafter\XC at replace\expandafter\Options\expandafter{\@@tmp,}{}}
+\edef\Options{\XC@@drv,\Options}
+\def\@@tmp#1,#2%
+ {\ifx,#2#1\expandafter\remove at to@nnil\else#1', `\expandafter\@@tmp\fi#2}
+\edef\Options{`\expandafter\@@tmp\Options,,\@nnil'}
+\makeatother
+\begin{document}
+\vbox to\textheight{\vss\centering
+{\Large\textbf{xcolor} driver test: \Options}
+\vskip0.5cm
+\begin{testcolors}[rgb,hsb,cmyk,gray,HTML]
+\testcolor{magenta}
+\testcolor[rgb]{1,0,1}
+\testcolor[hsb]{0.83333,1,1}
+\testcolor[cmyk]{0,1,0,0}
+\testcolor[gray]{0.41}
+\noalign{\medskip}
+\testcolor{blue}
+\testcolor[rgb]{0,0,1}
+\testcolor[hsb]{0.66667,1,1}
+\testcolor[cmyk]{1,1,0,0}
+\testcolor[gray]{0.11}
+\noalign{\medskip}
+\testcolor{cyan}
+\testcolor[rgb]{0,1,1}
+\testcolor[hsb]{0.5,1,1}
+\testcolor[cmyk]{1,0,0,0}
+\testcolor[gray]{0.7}
+\noalign{\medskip}
+\testcolor{green}
+\testcolor[rgb]{0,1,0}
+\testcolor[hsb]{0.33333,1,1}
+\testcolor[cmyk]{1,0,1,0}
+\testcolor[gray]{0.59}
+\noalign{\medskip}
+\testcolor{yellow}
+\testcolor[rgb]{1,1,0}
+\testcolor[hsb]{0.16667,1,1}
+\testcolor[cmyk]{0,0,1,0}
+\testcolor[gray]{0.89}
+\noalign{\medskip}
+\testcolor{red}
+\testcolor[rgb]{1,0,0}
+\testcolor[hsb]{0,1,1}
+\testcolor[cmyk]{0,1,1,0}
+\testcolor[gray]{0.3}
+\noalign{\medskip}
+\testcolor{black}
+\testcolor[rgb]{0,0,0}
+\testcolor[hsb]{0,0,0}
+\testcolor[cmyk]{0,0,0,1}
+\testcolor[gray]{0}
+\noalign{\medskip}
+\testcolor{gray}
+\testcolor[rgb]{0.5,0.5,0.5}
+\testcolor[hsb]{0,0,0.5}
+\testcolor[cmyk]{0,0,0,0.5}
+\testcolor[gray]{0.5}
+\noalign{\medskip}
+\testcolor{white}
+\testcolor[rgb]{1,1,1}
+\testcolor[hsb]{0,0,1}
+\testcolor[cmyk]{0,0,0,0}
+\testcolor[gray]{1}
+\noalign{\medskip\smallskip}
+f(color)box &
+\multicolumn5{c}{\def\i{\fbox{\a}}\def\ii{\fcolorbox{red}{yellow}{\a}}\def\iii{\scalebox{3}}%
+\def\a{{\setbox0=\hbox to3ex{\hss\textcolor{blue}{\vrule width .75ex height1.5ex depth1.5ex}\hss}\ht0=0pt\dp0=0pt\box0}}%
+\fboxsep0.333ex \i\quad\ii\quad\iii\i\quad\iii\ii\quad\fboxrule.75ex \iii\i\quad\iii\ii}
+\end{testcolors}
+\vskip0.5cm
+{\footnotesize This table was generated with \textbf{xcolor4.tex} which is part of the \textbf{xcolor} package \XCfileversion{} (\XCfiledate) by Uwe Kern.}
+\vss}
+\end{document}
+\endinput
+%%
+%% End of file `xcolor4.tex'.
diff --git a/ref/usersguide/DiscFix.tex b/ref/usersguide/DiscFix.tex
new file mode 100644
index 0000000..bef9d19
--- /dev/null
+++ b/ref/usersguide/DiscFix.tex
@@ -0,0 +1,67 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\ussepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{DiscFix!application writeup}
+
+\section{\emph{DiscFix}}
+\subsection{Overview}
+The application reads a data file containing dual-frequency pseudorange and phase
+ measurements and finds and fixes discontinuities in the phase; output is
+ a list of editing commands (for use with PRGM RinexEdit); the program will
+ also (optional) write out the raw (uncorrected) data to a RINEX file.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{DiscFix}} \\
+\multicolumn{3}{l}{\textbf{Required Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-i}{--inputfile}{Input (Rinex obs) file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{-f}{}{file containing more options}{1}
+\entry{-d}{--directory}{Directory of input file(s)}{1}
+\entry{}{--decimate}{Decimate data to time interval dt}{1}
+\entry{}{--EpochBeg}{Start time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--GPSBeg}{Start time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--EpochEnd}{End time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--GPSEnd}{End time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--CA}{Use C/A code pseudorange if P1 is not available}{1}
+\entry{}{--DT}{Time interval (s) of data points (needed for -Ps only)}{2}
+\entry{}{--Gap}{Time (s) of largest allowed gap within pass}{1}
+\entry{}{--Points}{Minimum number of points needed to process a pass}{2}
+\entry{}{--XPRN}{Exclude this satellite (prn may be only $<$system$>$)}{2}
+\entry{}{--SVonly}{Process this satellite ONLY}{1}
+\entry{}{--Log}{Output log file name (df.log)}{1}
+\entry{}{--Err}{Output error file name (df.err)}{1}
+\entry{}{--Out}{Output (editing commands) file name (df.out)}{1}
+\entry{}{--RinexFile}{Output Rinex obs file name}{1}
+\entry{}{--RunBy}{Output Rinex header 'RUN BY' string}{1}
+\entry{}{--Observer}{Output Rinex header 'OBSERVER' string}{1}
+\entry{}{--Agency}{Output Rinex header 'AGENCY' string}{1}
+\entry{}{--Marker}{Output Rinex header 'MARKER' string}{1}
+\entry{}{--Number}{Output Rinex header 'NUMBER' string}{1}
+\entry{}{--Smooth}{Smooth pseudorange and debias phase and output both in place of raw}{2}
+\entry{}{--SmoothPR}{Smooth pseudorange and debias phase but replace only raw pseudorange}{2}
+\entry{}{--SmoothPH}{Smooth pseudorange and debias phase but replace only raw phase}{2}
+\entry{}{--CAOut}{Output C/A code in Rinex}{1}
+\entry{}{--DOut}{Output Doppler in Rinex}{1}
+\entry{}{--verbose}{print extended output (NB --DCDebug,7 => all debugging output)}{2}
+\entry{-h}{--help}{print syntax and quit.}{1}
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+\getuse{DiscFix --dt 1.5 --inputfile arl2800.06o}
+
+%\subsection{Notes}
+
+
+
diff --git a/ref/usersguide/FICcheck.tex b/ref/usersguide/FICcheck.tex
new file mode 100644
index 0000000..1d48e83
--- /dev/null
+++ b/ref/usersguide/FICcheck.tex
@@ -0,0 +1,45 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{ficacheck!application writeup}
+\index{ficcheck!application writeup}
+
+\section{\emph{ficacheck ficcheck}}
+\subsection{Overview}
+These applications read input ASCII or binary FIC and check them for errors. \application{ficcheck} checks binary files
+and \application{ficacheck} checks ASCII files.
+
+\subsection{Usage}
+\begin{\outputsize}
+
+\begin{longtable}{lll}
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-d}{--debug}{Increase debug level}{1}
+\entry{-v}{--verbose}{Increase verbosity}{1}
+\entry{-h}{--help}{Print help usage}{1}
+\entry{-t}{--time=TIME}{Time of first record to count (default = "beginning of time")}{2}
+\entry{-e}{--end-time=TIME}{End of time range to compare (default = "end of time")}{2}
+& & \\
+\multicolumn{3}{c}{ficacheck usage: ficacheck [options] <FICA file>} \\
+\multicolumn{3}{c}{ficcheck usage: ficcheck [options] <FIC file} \\
+
+\end{longtable}
+
+\end{\outputsize}
+
+\subsection{Examples}
+\getuse{ficcheck fic06.187}
+\getuse{ficacheck brokenfica}
+
+\subsection{Notes}
+Only the first error in each file is reported. The entire file is always checked regardless of time options.
+
+%\end{document}
diff --git a/ref/usersguide/IonoBias.tex b/ref/usersguide/IonoBias.tex
new file mode 100644
index 0000000..1c58488
--- /dev/null
+++ b/ref/usersguide/IonoBias.tex
@@ -0,0 +1,110 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{IonoBias!application writeup}
+
+\section{\emph{IonoBias}}
+\subsection{Overview}
+The application will open and read several preprocessed RINEX obs files
+ (containing obs types EL,LA,LO,SR or SS) and use the data to estimate
+ satellite and receiver biases and to compute a simple ionospheric model
+ using least squares and the slant TEC values.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{IonoBias}} \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{}{--input}{Input Rinex obs file name(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-f}{}{file containing more options}{1}
+\entry{}{--inputdir}{Path for input file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Ephemeris input}} \\
+\entry{}{--navdir}{Path of navigation file(s)}{1}
+\entry{}{--nav}{Navigation (Rinex Nav OR SP3) file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Output}} \\
+\entry{}{--datafile}{Data (AT) file name, for output and/or input}{1}
+\entry{}{--log}{Output log file name}{1}
+\entry{}{--biasout}{Output satellite+receiver biases file name}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Time limits}} \\
+\entry{}{--BeginTime}{Start time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--BeginGPSTime}{Start time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--EndTime}{End time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--EndGPSTime}{End time, arg is of the form GPSweek,GPSsow}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Processing}} \\
+\entry{}{--NoEstimation}{Do NOT perform the estimation (default=false).}{1}
+\entry{}{--NoPreprocess}{Skip preprocessing; read (existing) AT file (false).}{2}
+\entry{}{--NoSatBiases}{Compute Receiver biases ONLY (not Rx+Sat biases) (false).}{2}
+\entry{}{--Model}{Ionospheric model: type is linear, quadratic or cubic}{2}
+\entry{}{--MinPoints}{Minimum points per satellite required}{1}
+\entry{}{--MinTimeSpan}{Minimum timespan per satellite required (minutes)}{2}
+\entry{}{--MinElevation}{Minimum elevation angle (degrees)}{1}
+\entry{}{--MinLatitude}{Minimum latitude (degrees)}{1}
+\entry{}{--MaxLatitude}{Maximum latitude (degrees)}{1}
+\entry{}{--MinLongitude}{Minimum longitude (degrees)}{1}
+\entry{}{--MaxLongitude}{Maximum longitude (degrees)}{1}
+\entry{}{--TimeSector}{Time sector (day | night | both)}{1}
+\entry{}{--TerminOffset}{Terminator offset (minutes)}{1}
+\entry{}{--IonoHeight}{Ionosphere height (km)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Other options}} \\
+\entry{}{--XSat}{Exclude this satellite (<sat> may be <system> only)}{2}
+\entry{-v}{--verbose}{print extended output info.}{1}
+\entry{-d}{--debug}{print extended output info.}{1}
+\entry{-h}{--help}{print syntax and quit.}{1}
+
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+\begin{\outputsize}
+\begin{lstlisting}
+> IonoBias --inputdir data_set --navdir data_set --input s081213a.99o --input s081214a.99o
+--input s081215a.99o --nav s081213a.99n --nav s081214a.99n --nav s081215a.99n --datafile output}
+IonoBias, built on the GPSTK ToolKit, Ver 1.0 6/25/04, Run 2006/08/17 09:50:59
+IonoBias output directed to log file IonoBias.log
+IonoBias timing: 6.210 seconds.
+\end{lstlisting}
+
+\begin{verbatim}
+Output File Snippet
+
+ 3 3 Number (max, good) stations in this file
+010101101100001111110111011101110
+010101101100001111110111011101110
+010100101100001111110111011101110
+Npt 9737 Sta 85408 LLH 30.2160 262.2746 163.4226
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 1 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 14 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 15 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 21 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 22 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 25 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 29 1
+1021 0.0 0.00000 -463513.64930 0.32 0.000 1 30 1
+1021 30.0 0.00000 -463513.52430 0.32 0.000 1 1 1
+1021 30.0 0.00000 -463513.52430 0.32 0.000 1 14 1
+
+\end{verbatim}
+
+\end{\outputsize}
+
+\subsection{Notes}
+Input can be either on the command line or put in a file and then input using the -f option. The file is formatted just as if
+it were the command line.
+
+%\end{document}
+
diff --git a/ref/usersguide/NavMerge.tex b/ref/usersguide/NavMerge.tex
new file mode 100644
index 0000000..d30f29e
--- /dev/null
+++ b/ref/usersguide/NavMerge.tex
@@ -0,0 +1,39 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{NavMerge!application writeup}
+
+\section{\emph{NavMerge}}
+\subsection{Overview}
+The application merges RINEX Nav files into a single file.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{NavMerge}} \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-o}{}{Write all data to an output Rinex nav file. If omitted, a data summary is written to the screen.}{3}
+\entry{-tb}{}{Output only if epoch is within 4 hours of the interval (tb,te).}{2}
+\entry{-te}{}{If te or tb is missing, they are made equal. Timetags have the form year,mon,day,HH,min,sec OR GPSweek,sow}{3}
+& & \\
+\multicolumn{3}{c}{NavMerge usage: NavMerge [options] $<$RINEX nav file$>$ $<$RINEX nav file$>$} \\
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+\getuse{NavMerge -os081213-214.99n s081213a.99n s081214a.99n}
+
+
+\subsection{Notes}
+NavMerge will also correct the output data when the GPS full week number is inconsistent with the epoch time.
+
+%\end{document}
+
diff --git a/ref/usersguide/PRSolve.tex b/ref/usersguide/PRSolve.tex
new file mode 100644
index 0000000..085122e
--- /dev/null
+++ b/ref/usersguide/PRSolve.tex
@@ -0,0 +1,82 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{PRSolve!application writeup}
+\section{\emph{PRSolve}}
+\subsection{Overview}
+The application reads one or more RINEX observation files, plus one or more
+ navigation (ephemeris) files, and computes an autonomous pseudorange
+ position solution, using a RAIM-like algorithm to eliminate outliers.
+ Output is to the log file, and also optionally to a RINEX obs file with
+ the position solutions in auxiliary header blocks.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{navdmp}} \\
+\multicolumn{3}{l}{\textbf{Required Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-o}{--obs}{Input Rinex observation file(s)}{1}
+\entry{-n}{--nav}{Input navigation (ephemeris) file(s) (Rinex or SP3)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments: Input}} \\
+\entry{-f}{}{File containing more options}{1}
+\entry{}{--obsdir}{Directory of input observation file(s)}{1}
+\entry{}{--navdir}{Directory of input navigation file(s)}{1}
+\entry{}{--decimate}{Decimate data to time interval dt}{1}
+\entry{}{--EpochBeg}{Start time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--GPSBeg}{Start time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--EpochEnd}{End time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--GPSEnd}{End time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--CA}{Use C/A code pseudorange if P1 is not available}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments: Configuration}} \\
+\entry{}{--RMSlimit}{Upper limit on RMS post-fit residuals (m) for a good solution}{2}
+\entry{}{--SlopeLimit}{Upper limit on RAIM 'slope' for a good solution}{1}
+\entry{}{--Algebra}{Use algebraic algorithm (otherwise linearized LS)}{2}
+\entry{}{--DistanceCriterion}{Use distance from a priori as convergence criterion (else RMS)}{2}
+\entry{}{--ReturnAtOnce}{Return as soon as a good solution is found}{1}
+\entry{}{--NReject}{Maximum number of satellites to reject}{1}
+\entry{}{--NIter}{Maximum iteration count (linearized LS algorithm)}{2}
+\entry{}{--Conv}{Minimum convergence criterion (m) (LLS algorithm)}{2}
+\entry{}{--MinElev}{Minimum elevation angle (deg) (only if --PosXYZ)}{2}
+\entry{}{--XPRN}{Exclude this satellite.}{1}
+\entry{}{--Trop $<$model,T,P,H$>$}{Trop model (one of BL,SA,NB,GG,GGH (cf.GPSTk)), with OPTIONAL weather Temp(C),Press(mb),RH(\%)}{2}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments: Output}} \\
+\entry{}{--Log}{Output log file name (prs.log).}{1}
+\entry{}{--PosXYZ $<$X,Y,Z$>$}{Known position (ECEF,m), used to compute output residuals.}{2}
+\entry{}{--APSout}{Output autonomous pseudorange solution (APS - no RAIM)}{2}
+\entry{}{--TimeFormat}{Output time format (ala DayTime) (default: \%4F \%10.3g)}{2}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments: RINEX Output}} \\
+\entry{}{--RinexFile}{Output Rinex obs file name}{1}
+\entry{}{--RunBy}{Output Rinex header 'RUN BY' string}{1}
+\entry{}{--Observer}{Output Rinex header 'OBSERVER' string}{1}
+\entry{}{--Agency}{Output Rinex header 'AGENCY' string}{1}
+\entry{}{--Marker}{Output Rinex header 'MARKER' string}{1}
+\entry{}{--Number}{Output Rinex header 'NUMBER' string}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments: Help}} \\
+\entry{}{--verbose}{Print extended output.}{1}
+\entry{}{--debug}{Print very extended output.}{1}
+\entry{-h}{--help}{Print syntax and quit.}{1}
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+\getuse{PRSolve -o arl2800.06o -n arl2800.06n}
+
+\getuse{PRSolve -o arl2800.06o -n arl2800.06n --EpochBeg 2006,1,1,00,00,00 --EpochEnd 2006,1,1,12,00,00}
+
+\subsection{Notes}
+
+%\end{document}
+
diff --git a/ref/usersguide/RINcheck.tex b/ref/usersguide/RINcheck.tex
new file mode 100644
index 0000000..46d7852
--- /dev/null
+++ b/ref/usersguide/RINcheck.tex
@@ -0,0 +1,44 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{rmwcheck!application writeup}
+\index{rnwcheck!application writeup}
+\index{rowcheck!application writeup}
+
+\section{\emph{rmwcheck rnwcheck rowcheck}}
+\subsection{Overview}
+The applications read a RINEX observation (\application{rowcheck}), navigation(\application{rnwcheck}), or meteorological (\application{rmwcheck}) data file and check it for errors.
+
+\subsection{Usage}
+\begin{\outputsize}
+
+\begin{longtable}{lll}
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-d}{--debug}{Increase debug level}{1}
+\entry{-v}{--verbose}{Increase verbosity}{1}
+\entry{-h}{--help}{Print help usage}{1}
+\entry{-t}{--time=TIME}{Time of first record to count (default = "beginning of time")}{2}
+\entry{-e}{--end-time=TIME}{End of time range to compare (default = "end of time")}{2}
+& & \\
+\multicolumn{3}{l}{rmwcheck usage: rmwcheck [options] $<$RINEX Met file$>$} \\
+\multicolumn{3}{l}{rnwcheck usage: rnwcheck [options] $<$RINEX Nav file$>$} \\
+\multicolumn{3}{l}{rowcheck usage: rowcheck [options] $<$RINEX Obs file$>$} \\
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+\getuse{rnwcheck -t "08/01/2006 12:00:00" -e "08/01/2006 15:00:00" s081213a.99n}
+
+\subsection{Notes}
+Only the first error in each file is reported. The entire file is always checked regardless of time options.
+
+%\end{document}
+
diff --git a/ref/usersguide/RINdiff.tex b/ref/usersguide/RINdiff.tex
new file mode 100644
index 0000000..a9d8f24
--- /dev/null
+++ b/ref/usersguide/RINdiff.tex
@@ -0,0 +1,44 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{rmwdiff!application writeup}
+\index{rnwdiff!application writeup}
+\index{rowdiff!application writeup}
+
+\section{\emph{rmwdiff rnwdiff rowdiff}}
+\subsection{Overview}
+The applications difference RINEX observation, navigation, and meteorological data files.
+
+\subsection{Usage}
+\begin{\outputsize}
+
+\begin{longtable}{lll}
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-d}{--debug}{Increase debug level}{1}
+\entry{-v}{--verbose}{Increase verbosity}{1}
+\entry{-h}{--help}{Print help usage}{1}
+\entry{-t}{--time=TIME}{Start of time range to compare (default = "beginning of time")}{2}
+\entry{-e}{--end-time=TIME}{End of time range to compare (default = "end of time")}{2}
+& & \\
+\multicolumn{3}{l}{rmwdiff usage: rmwdiff [options] $<$RINEX Met file$>$ $<$RINEX Met file$>$} \\
+\multicolumn{3}{l}{rnwdiff usage: rnwdiff [options] $<$RINEX Nav file$>$ $<$RINEX Nav file$>$} \\
+\multicolumn{3}{l}{rowdiff usage: rowdiff [options] $<$RINEX Obs file$>$ $<$RINEX Obs file$>$} \\
+
+\end{longtable}
+
+\end{\outputsize}
+
+\subsection{Examples}
+
+\subsection{Notes}
+
+%\end{document}
+
diff --git a/ref/usersguide/ResCor.tex b/ref/usersguide/ResCor.tex
new file mode 100644
index 0000000..fcfe2f2
--- /dev/null
+++ b/ref/usersguide/ResCor.tex
@@ -0,0 +1,189 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{multirow}
+%\usepackage{longtable}
+%\input{src/cmd}
+%\begin{document}
+
+\index{ResCor!application writeup}
+\section{\emph{ResCor}}
+\subsection{Overview}
+The application will open and read a single RINEX observation file, apply editing commands
+ using the RinexEditor package, compute any of several residuals and corrections and
+ register extended RINEX observation types for them, and then write the edited data,
+ along with the new extended observation types, to an output RINEX observation file.
+
+\subsection{Usage}
+%Required arguments:
+% -IF and -OF (RinexEditor commands, see below) are required argument
+\begin{\outputsize}
+
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{ResCor}} \\
+\multicolumn{3}{l}{\textbf{Configuration Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-f$<$file$>$}{}{File containing more options}{1}
+\entry{}{--nav $<$file$>$}{Navigation (Rinex Nav OR SP3) file(s)}{1}
+\entry{}{--navdir $<$dir$>$}{Directory of navigation file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Reference position input}} \\
+\entry{}{--RxLLH $<$l,l,h$>$}{1.Receiver position (static) in geodetic lat, lon(E), ht (deg,deg,m)}{2}
+\entry{}{--RxXYZ $<$x,y,z$>$}{2.Receiver position (static) in ECEF coordinates (m)}{2}
+\entry{}{--Rxhere}{3.Reference site positions(time) from this file (i.e. -IF$<$RinexFile$>$)}{2}
+\entry{}{--RxRinex $<$fn$>$}{4.Reference site positions(time) from another Rinex file named $<$fn$>$}{2}
+\entry{}{--RxFlat $<$fn$>$}{5.Reference site positions and times given in a flat file named $<$fn$>$}{2}
+\entry{}{--Rxhelp}{(Enter --Rxhelp for a description of the -RxFlat file format)}{2}
+\entry{}{--RAIM}{6.Reference site positions computed via RAIM (requires P1,P2,EP)}{2}
+\entry{}{}{NB the following two options apply only if --RAIM is found)}{2}
+\entry{}{--noRAIMedit}{Do not edit data based on RAIM solution}{1}
+\entry{}{--RAIMhead}{Output average RAIM solution to Rinex header (if -HDf also appears)}{2}
+\entry{}{--noRefout}{Do not output reference solution to Rinex}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Residual/Correction computation}} \\
+\entry{}{--debias $<$OT,l$>$}{Debias new output type $<$OT$>$; trigger a bias reset with limit $<$l$>$}{2}
+\entry{}{--Callow}{Allow C1 to replace P1 when P1 is not available}{1}
+\entry{}{--Cforce}{Force C/A code pseudorange C1 to replace P1}{1}
+\entry{}{--IonoHt $<$ht$>$}{Height of ionosphere in km (default 400) (needed for LA,LO,VR,VP)}{2}
+\entry{}{--SVonly $<$prn$>$}{Process this satellite ONLY}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Output files}} \\
+\entry{}{--Log $<$file$>$}{Output log file name (rc.log)}{1}
+\entry{}{--Err $<$file$>$}{Output error file name (rc.err)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Help}} \\
+\entry{}{--verbose}{Print extended output}{1}
+\entry{}{--debug}{Print debugging information.}{1}
+\entry{-h}{--help}{Print syntax and quit.}{1}
+\end{longtable}
+
+\begin{verbatim}
+Rinex Editor commands:
+ ==============================================================================
+ Commands begin with a '-' or '/', followed by an identifier, then data fields.
+ Fields beyond the initial 2- or 3-character identifier are comma delimited.
+ <SV> gives a satellite; SV=<PRN><System(optional)> eg. 19G or 19 = PRN 19 GPS.
+ <System> is a single character (G=GPS, R=GLONASS, T=Transit, S=Geosynchronous).
+ <OT> gives a Rinex observation type, e.g. L1 or P2 (case sensitive).
+ <time> gives a time; time=<week,sow> OR time=<year,mon,day,hour,min,second>.
+\end{verbatim}
+
+\begin{longtable}{lll}
+\multicolumn{3}{l}{\textbf{File I/O}} \\
+\entry{-IF$<$file$>$}{}{Input Rinex observation file name (required)}{1}
+\entry{-ID$<$dir$>$}{}{Directory in which to find input file}{1}
+\entry{-OF$<$file$>$}{}{Output Rinex file name (required, or -OF$<$file$>$,$<$time$>$)}{2}
+\entry{-OF$<$f$>$,$<$time$>$}{}{At time=$<$time$>$, close output file and open another named $<$f$>$}{2}
+\entry{-OD$<$dir$>$}{}{Directory in which to put output file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Output Rinex header fields}} \\
+\entry{-HDf}{}{If present, fill optional records in the output Rinex header (NB EditObs() and EditFile() will do this, but NOT EditHeader().)}{3}
+\entry{-HDp$<$program$>$}{}{Set output Rinex header 'program' field}{1}
+%\entry{-HDr<run_by>}{}{Set output Rinex header 'run by' field}{2}
+\entry{-HDo$<$observer$>$}{}{Set output Rinex header 'observer' field}{1}
+\entry{-HDa$<$agency$>$}{}{Set output Rinex header 'agency' field}{1}
+\entry{-HDm$<$marker$>$}{}{Set output Rinex header 'marker' field}{1}
+\entry{-HDn$<$number$>$}{}{Set output Rinex header 'number' field}{1}
+\entry{-HDc$<$comment$>$}{}{Add comment to output Rinex header (more than one allowed).}{2}
+\entry{-HDdc}{}{Delete all comments in output Rinex header}{1}
+\entry{}{}{(NB -HDdc cannot delete comments created by *subsequent* -HDc commands)}{2}
+\entry{-AO$<$OT$>$}{}{Add observation type OT to header and observation data}{2}
+& & \\
+\multicolumn{3}{l}{\textbf{General edit commands}} \\
+\entry{-TB$<$time$>$}{}{Begin time: reject data before this time (also used for decimation)}{2}
+\entry{-TE$<$time$>$}{}{End time: reject data after this time}{1}
+\entry{-TT$<$dt$>$}{}{Tolerance in comparing times, in seconds (default=1ms)}{2}
+\entry{-TN$<$dt$>$}{}{Decimate data to epochs = Begin + integer*dt (within tolerance)}{2}
+\end{longtable}
+\begin{verbatim}
+ Specific edit commands:
+ =======================
+ (Generally each '+' command (e.g DA+,<time>) has a corresponding '-' command,
+ and vice-versa; if not, End-of-file or Begin-of-file is assumed.
+ Note commands at one time are applied AFTER other commands of the same type.)
+\end{verbatim}
+
+\begin{longtable}{lll}
+\multicolumn{3}{l}{\textbf{Delete Command}} \\
+\entry{-DA+$<$time$>$}{}{Delete all data beginning at this time}{1}
+\entry{-DA-$<$time$>$}{}{Stop deleting data at this time}{1}
+\entry{-DO$<$OT$>$}{}{Delete observation type OT entirely (including in header)}{3}
+\entry{-DS$<$SV$>$}{}{Delete all data for satellite SV entirely (SV may be system only)}{2}
+\entry{-DS$<$SV$>$,$<$time$>$}{}{Delete all data for satellite SV at this single time (only)}{2}
+\entry{-DA-$<$time$>$}{}{Stop deleting data at this time}{1}
+\entry{-DO$<$OT$>$}{}{Delete observation type OT entirely (including in header)}{1}
+\entry{-DS$<$SV$>$}{}{Delete all data for satellite SV entirely (SV may be system only)}{2}
+\entry{-DS$<$SV$>$,$<$time$>$}{}{Delete all data for satellite SV at this single time (only)}{2}
+\entry{-DS+$<$SV$>$,$<$time$>$}{}{Delete all data for satellite SV beginning at this time}{2}
+\entry{-DS-$<$SV$>$,$<$time$>$}{}{Stop deleting all data for satellite SV at this time}{2}
+\entry{}{}{(NB DS commands with SV=system (only) delete all satellites of that system.)}{2}
+\entry{-DD$<$SV,OT,t$>$}{}{Delete a single Rinex data(SV,OT,t) at time $<$t$>$}{2}
+\entry{-DD+$<$SV,OT,t$>$}{}{Delete all (SV,OT) data, beginning at time $<$t$>$}{1}
+\entry{-DD-$<$SV,OT,t$>$}{}{Stop deleting all (SV,OT) data at time $<$t$>$}{1}
+\entry{}{}{(NB deleting data for one OT means setting it to zero - here and in Rinex)}{2}
+& & \\
+\multicolumn{3}{l}{\textbf{Set Commands}} \\
+\entry{-SD$<$SV,OT,t,d$>$}{}{Set data(SV,OT,t) to $<$d$>$ at time $<$t$>$}{1}
+\entry{-SS$<$SV,OT,t,s$>$}{}{Set ssi(SV,OT,t) to $<$s$>$ at time $<$t$>$}{1}
+\entry{-SL+$<$SV,OT,t,l$>$}{}{Set all lli(SV,OT,t) to $<$l$>$ at time $<$t$>$}{1}
+\entry{-SL-$<$SV,OT,t,l$>$}{}{Stop setting lli(SV,OT,t) to $<$l$>$ at time $<$t$>$ (',$<$l$>$' is optional)}{2}
+\entry{-SL$<$SV,OT,t,l$>$}{}{Set lli(SV,OT,t) to $<$l$>$ at the single time $<$t$>$ (only)}{2}
+\entry{}{}{(NB SL commands with SV=system (only) modify all satellites of that system.)}{2}
+& & \\
+\multicolumn{3}{l}{\textbf{Bias Commands}} \\
+\entry{}{}{(NB. BD commands apply only when data is non-zero, unless -BZ appears)}{2}
+\entry{-BZ}{}{Apply bias data commands (BD) even when data is zero}{2}
+\entry{-BD$<$SV,OT,t,d$>$}{}{Add the value of $<$d$>$ to data(SV,OT,t) at time $<$t$>$}{2}
+\entry{-BD+$<$SV,OT,t,d$>$}{}{Add value of $<$d$>$ to data(SV,OT) beginning at time $<$t$>$}{2}
+\entry{-BD-$<$SV,OT,t,d$>$}{}{Stop adding $<$d$>$ to data(SV,OT) at time $<$t$>$ (',$<$d$>$' optional)}{2}
+\entry{-BS$<$SV,OT,t,s$>$}{}{Add the value of $<$s$>$ to ssi(SV,OT,t) at time $<$t$>$}{2}
+\entry{-BL$<$SV,OT,t,l$>$}{}{Add the value of $<$l$>$ to lli(SV,OT,t) at time $<$t$>$}{2}
+\end{longtable}
+
+\begin{verbatim}
+The list of available extended Rinex obs types:
+ OT Description Units Required input (EP=ephemeris,PS=Rx Position)
+ ER Ephemeris range meters EP PS
+ RI Iono Delay, Range meters P1
+ PI Iono Delay, Phase meters L1 L2
+ TR Tropospheric Delay meters EP PS
+ RL Relativity Correct. meters EP
+ SC SV Clock Bias meters EP
+ EL Elevation Angle degrees EP PS
+ AZ Azimuth Angle degrees EP PS
+ SR Slant TEC (PR) TECU P1
+ SP Slant TEC (Ph) TECU L1 L2
+ VR Vertical TEC (PR) TECU P1 EP PS
+ VP Vertical TEC (Ph) TECU L1 L2 EP PS
+ LA Lat Iono Intercept degrees EP PS
+ LO Lon Iono Intercept degrees EP PS
+ P3 TFC(IF) Pseudorange meters P1
+ L3 TFC(IF) Phase meters L1 L2
+ P4 GeoFree Pseudorange meters P1
+ L4 GeoFree Phase meters L1 L2
+ P5 WideLane Pseudorange meters P1
+ L5 WideLane Phase meters L1 L2
+ MP Multipath (=M3) meters L1 L2 P1
+ M1 L1 Range minus Phase meters L1 P1
+ M2 L2 Range minus Phase meters L2
+ M3 IF Range minus Phase meters L1 L2 P1
+ M4 GF Range minus Phase meters L1 L2 P1
+ M5 WL Range minus Phase meters L1 L2 P1
+ XR Non-dispersive Range meters L1 L2 P1
+ XI Ionospheric delay meters L1 L2 P1
+ X1 Range Error L1 meters L1 L2 P1
+ X2 Range Error L2 meters L1 L2 P1
+ SX Satellite ECEF-X meters EP
+ SY Satellite ECEF-Y meters EP
+ SZ Satellite ECEF-Z meters EP
+\end{verbatim}
+
+\end{\outputsize}
+
+\subsection{Examples}
+
+\subsection{Notes}
+
+%\end{document}
diff --git a/ref/usersguide/RinSum.tex b/ref/usersguide/RinSum.tex
new file mode 100644
index 0000000..c44d226
--- /dev/null
+++ b/ref/usersguide/RinSum.tex
@@ -0,0 +1,104 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{RinSum!application writeup}
+
+\section{\emph{RinSum}}
+\subsection{Overview}
+The application reads a RINEX file and summarizes it content.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{RinSum}} \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{Short Arg.}{Long Arg.}{Description}{1}
+\entry{-i}{--input}{Input file name(s)}{1}
+\entry{-f}{}{file containing more options}{1}
+\entry{-o}{--output}{Output file name}{1}
+\entry{-p}{--path}{Path for input file(s)}{1}
+\entry{-R}{--Replace}{Replace header with full one.}{1}
+\entry{-s}{--sort}{Sort the PRN/Obs table on begin time.}{1}
+\entry{-g}{--gps}{Print times in the PRN/Obs table as GPS times.}{2}
+\entry{}{--EpochBeg}{Start time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--GPSBeg}{Start time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--EpochEnd}{End time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--GPSEnd}{End time, arg is of the form GPSweek,GPSsow}{1}
+\entry{-h}{--help}{print syntax and quit.}{1}
+\entry{-d}{--debug}{print debugging info.}{1}
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+\begin{\outputsize}
+\begin{lstlisting}
+> RinSum -i data_set/s081213a.99o --EpochBeg 2006,08,1,12,0,0'
+
++++++++++++++ RinSum summary of Rinex obs file data_set/s081213a.99o +++++++++++++
+Rinex header:
+---------------------------------- REQUIRED ----------------------------------
+Rinex Version 2.10, File type Observation, System G (GPS).
+Prgm: RinexObsWriter, Run: 11-14-01 10:04:27, By: NIMA
+Marker name: 85408.
+Obs'r : Monitor Station, Agency: NIMA
+Rec#: 1, Type: ZY12, Vers:
+Antenna # : 85408, Type : AshTech Geodetic 3
+Position (XYZ,m) : (-740289.7851, -5457071.6555, 3207245.8294).
+Antenna offset (ENU,m) : (0.0000, 0.0000, 0.0000).
+Wavelength factors (default) L1:1, L2: 1.
+Observation types (7) :
+ Type #0 = L1 L1 Carrier Phase (L1 cycles).
+ Type #1 = L2 L2 Carrier Phase (L2 cycles).
+ Type #2 = C1 C/A-code pseudorange (meters).
+ Type #3 = P1 Pcode L1 pseudorange (meters).
+ Type #4 = P2 Pcode L2 pseudorange (meters).
+ Type #5 = D1 Doppler Frequency L1 (Hz).
+ Type #6 = D2 Doppler Frequency L2 (Hz).
+Time of first obs 1999/08/01 00:00:00.0000000 GPS
+(This header is VALID 2.1 Rinex.)
+---------------------------------- OPTIONAL ----------------------------------
+Comments (3) :
+The AS bit flag is set if receiver is in Z mode
+Signal to Noise ratio information is omitted
+This file contains SMOOTHED obs data
+-------------------------------- END OF HEADER -------------------------------
+
+ WARNING: Computed first time does not agree with header
+
+ Computed interval is 0.00
+ Computed first epoch is -4713/01/01 00:00:00.0000000
+ Computed last epoch is 1999/08/01 23:59:30.0000000
+ There were 0 epochs (-0.00% of -2147483647 possible epochs in this timespan) and 0 inline header blocks.
+
+ Summary of data available in this file: (Totals are based on times and interval)
+PRN/OT: L1 L2 C1 P1 P2 D1 D2 Total Begin - End time
+TOTAL 0 0 0 0 0 0 0
+
+ WARNING: ObsType L1 should be deleted from header.
+
+ WARNING: ObsType L2 should be deleted from header.
+
+ WARNING: ObsType C1 should be deleted from header.
+
+ WARNING: ObsType P1 should be deleted from header.
+
+ WARNING: ObsType P2 should be deleted from header.
+
+ WARNING: ObsType D1 should be deleted from header.
+
+ WARNING: ObsType D2 should be deleted from header.
+
++++++++++++++ End of RinSum summary of data_set/s081213a.99o +++++++++++++
+\end{lstlisting}
+\end{\outputsize}
+
+\subsection{Notes}
+
+%\end{document}
diff --git a/ref/usersguide/RinexDump.tex b/ref/usersguide/RinexDump.tex
new file mode 100644
index 0000000..5b2b6ee
--- /dev/null
+++ b/ref/usersguide/RinexDump.tex
@@ -0,0 +1,56 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{RinexDump!application writeup}
+\section{\emph{RinexDump}}
+\subsection{Overview}
+The application reads a RINEX file and dumps the obervation data for the given satellite(s) to the standard output.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{verbatim}
+RinexDump usage: RinexDump [-n] <rinex obs file> [<satellite(s)> <obstype(s)>]
+
+The optional argument -n tells RinexDump its output should be purely numeric.
+\end{verbatim}
+\end{\outputsize}
+
+\subsection{Examples}
+\begin{\outputsize}
+\begin{lstlisting}
+> RinexDump algo1580.06o 3 4 5
+
+# Rinexdump file: algo1580.06o Satellites: G03 G04 G05 Observations: ALL
+# Week GPS_sow Sat L1 L S L2 L S C1 L S
+1378 259200.000 G03 -3843024.647 0 3 -2994560.443 0 1 23796436.087 0 0
+1378 259230.000 G03 -3954052.735 0 3 -3081075.654 0 2 23775308.750 0 0
+1378 259260.000 G03 -4064994.465 0 2 -3167523.561 0 3 23754197.617 0 0
+1378 259290.000 G03 -4175846.973 0 3 -3253901.944 0 3 23733104.211 0 0
+1378 259320.000 G03 -4286607.460 0 4 -3340208.647 0 3 23712026.249 0 0
+1378 259350.000 G03 -4397272.869 0 4 -3426441.227 0 3 23690967.159 0 0
+
+ . . .
+
+ P2 L S P1 L S S1 L S S2 L S
+23796439.457 0 0 23796436.350 0 0 21.100 0 0 11.000 0 0
+23775311.168 0 0 23775308.182 0 0 22.100 0 0 17.800 0 0
+23754199.648 0 0 23754196.550 0 0 17.000 0 0 18.600 0 0
+23733104.928 0 0 23733102.480 0 0 19.900 0 0 21.600 0 0
+23712027.682 0 0 23712024.790 0 0 24.200 0 0 19.300 0 0
+23690968.861 0 0 23690965.837 0 0 25.600 0 0 19.900 0 0
+
+ . . .
+\end{lstlisting}
+\end{\outputsize}
+
+\subsection{Notes}
+MATLAB and Octave can read the purely numeric output.
+
+%\end{document}
diff --git a/ref/usersguide/TECMaps.tex b/ref/usersguide/TECMaps.tex
new file mode 100644
index 0000000..3b39732
--- /dev/null
+++ b/ref/usersguide/TECMaps.tex
@@ -0,0 +1,92 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{longtable}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{TECMaps!application writeup}
+
+\section{\emph{TECMaps}}
+\subsection{Overview}
+ The application will open and read several preprocessed RINEX obs files
+ (containing obs types EL,AZ,VR|SR) and use the data to create maps of
+ the Total Electron Content (TEC).
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{longtable}{lll}
+\multicolumn{3}{c}{\application{TECMaps}} \\
+\multicolumn{3}{l}{\textbf{Required Arguments}} \\
+\entry{}{--input}{Input Rinex obs file name(s)}{1}
+
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+\entry{}{-f}{file containing more options}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Reference station position (one required)}} \\
+\entry{}{--RxLLH $<$l,l,h$>$}{Reference site position in geodetic lat, lon (E), ht (deg,deg,m)}{2}
+\entry{}{--RxXYZ $<$x,y,z$>$}{Reference site position in ECEF coordinates (m)}{1}
+\entry{}{--inputdir}{Path for input file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Ephemeris input}} \\
+\entry{}{--navdir}{Path of navigation file(s)}{1}
+\entry{}{--nav}{Navigation (Rinex Nav OR SP3) file(s)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Output}} \\
+\entry{}{--log}{Output log file name}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Time limits}} \\
+\entry{}{--BeginTime}{Start time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--BeginGPSTime}{Start time, arg is of the form GPSweek,GPSsow}{1}
+\entry{}{--EndTime}{End time, arg is of the form YYYY,MM,DD,HH,Min,Sec}{2}
+\entry{}{--EndGPSTime}{End time, arg is of the form GPSweek,GPSsow}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Processing}} \\
+\entry{}{--noVTECmap}{Do NOT create the VTEC map.}{1}
+\entry{}{--MUFmap}{Create MUF map as well as VTEC map.}{1}
+\entry{}{--F0F2map}{Create F0F2 map as well as VTEC map}{1}
+\entry{}{--Title1}{Title information}{1}
+\entry{}{--Title2}{Second title information}{1}
+\entry{}{--BaseName}{Base name for output files (a)}{1}
+\entry{}{--DecorrError}{Decorrelation error rate in TECU/1000km (3)}{1}
+\entry{}{--Biases}{File containing estimated sat+rx biases (Prgm IonoBias)}{2}
+\entry{}{--ElevThresh}{Minimum elevation (6 deg)}{1}
+\entry{}{--MinAcqTime}{Minimum acquisition time (0 sec)}{1}
+\entry{}{--FlatFit}{Flat fit type (default)}{1}
+\entry{}{--LinearFit}{Linear fit type}{1}
+\entry{}{--IonoHeight}{Ionosphere height (km)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Grid}} \\
+\entry{}{--UniformSpacing}{Grid uniform in space (XYZ) (default)}{1}
+\entry{}{--UniformGrid}{Grid uniform in Lat and Lon}{1}
+\entry{}{--OutputGrid}{Output the grid to file $<$basename.LL$>$}{1}
+\entry{}{--GnuplotOutput}{Write the grid file for gnuplot (default: for Matlab)}{2}
+\entry{}{--NumLat}{Number of latitude grid points (40)}{1}
+\entry{}{--NumLon}{Number of longitude grid points (40)}{1}
+\entry{}{--BeginLat}{Beginning latitude (21 deg)}{1}
+\entry{}{--BeginLon}{Beginning longitude (230 deg E)}{1}
+\entry{}{--DeltaLat}{Grid spacing in latitude (0.25 deg)}{1}
+\entry{}{--DeltaLon}{Grid spacing in longitude (1.0 deg)}{1}
+& & \\
+\multicolumn{3}{l}{\textbf{Other options}} \\
+\entry{}{--XSat}{Exclude this satellite (<sat> may be <system> only)}{2}
+& & \\
+\multicolumn{3}{l}{\textbf{Help}} \\
+\entry{-v}{--verbose}{print extended output info.}{1}
+\entry{-d}{--debug}{print extended output info.}{1}
+\entry{-h}{--help}{print syntax and summary of input, then quit.}{1}
+
+\end{longtable}
+\end{\outputsize}
+
+\subsection{Examples}
+
+\subsection{Notes}
+Input is on the command line, or of the same format in a file (-f$<$file$>$).
+
+%\end{document}
+
diff --git a/ref/usersguide/WhereSat.tex b/ref/usersguide/WhereSat.tex
new file mode 100644
index 0000000..562b641
--- /dev/null
+++ b/ref/usersguide/WhereSat.tex
@@ -0,0 +1,99 @@
+%\documentclass{article}
+%\usepackage{fancyvrb}
+%\usepackage{src/perltex}
+%\usepackage{src/xcolor}
+%\usepackage{listings}
+%\usepackage{multirow}
+%\input{src/cmd}
+%\begin{document}
+
+\index{WhereSat!application writeup}
+\section{\emph{WhereSat}}
+\subsection{Overview}
+This application uses input ephemeris to compute the predicted location of a
+satellite. The Earth-centered, Earth-fixed (ECEF) position of the satellite is
+reported. Optionally, the topocentric coordinates--azimuth, elevation, and
+range--can be generated. The user can specify the time interval between
+successive predictions. Also the output can generated in a format easily
+imported into numerical packages.
+
+\subsection{Usage}
+\begin{\outputsize}
+\begin{tabular}{lll}
+\multicolumn{3}{l}{\textbf{Required Arguments}} \\
+Short Arg. & Long Arg. & Description \\
+-b & --broadcast=ARG & \multirow{2}{2.5in}{Specify a RINEX navigation file. The user may enter multiple files.} \\
+& & \\
+-p & --prn=NUM & Specify which SV to analuze. \\
+& & \\
+\multicolumn{3}{l}{\textbf{Optional Arguments}} \\
+Short Arg. & Long Arg. & Description \\
+-h & --help & Generates help and usage. \\
+-u & --position=ARG & \multirow{4}{2.5in}{Specify antenna position in ECEF (x,y,z) coordinates as "X Y Z". Used to give user-centered data (SV range, azimuth \& elevation).} \\
+& & \\
+& & \\
+& & \\
+-s & --start=ARG & \multirow{3}{2.5in}{Specify time to begin analysis as "MO/DD/YYYY HH:MM:SS". The default is the end of the file.} \\
+& & \\
+& & \\
+-e & --end=ARG & \multirow{3}{2.5in}{Specify time to end analysis as "MO/DD/YYYY HH:MM:SS". The default is the beggning of the file.} \\
+& & \\
+& & \\
+-o & --output-filename=ARG & Outputs results to a MATLAB readable file. \\
+-t & --time=NUM & \multirow{3}{2.5in}{Specify time increment for ephemeris calculation in seconds. Default is 900 (15 min.)} \\
+& & \\
+& & \\
+\end{tabular}
+\end{\outputsize}
+
+\subsection{Examples}
+\begin{\outputsize}
+\begin{lstlisting}
+> WhereSat -b aira1720.06n -p 2 -u "918129.01 -4346070.45 803.18"
+ -s "06/21/2006 17:00:00" -e "06/21/2006 20:00:00" -t 1800
+
+ Antenna Position: 918129 -4.34607e+06 803.18
+ Navigation File: aira1720.06n
+ Start Time: 06/21/2006 17:00:00
+ End Time: 06/21/2006 20:00:00
+ PRN: 2
+
+ Prn 2 Earth-fixed position and clock information:
+
+ Date Time(UTC) X (meters) Y (meters) Z (meters)
+ ===============================================================================
+ 06/21/2006 18:00:00 12758891.971859 18901201.616227 -14049016.596144
+ 06/21/2006 18:30:00 12847888.097031 21541501.416411 -9315422.851798
+ 06/21/2006 19:00:00 12843576.989405 23087218.618683 -3957280.515764
+ 06/21/2006 19:30:00 12450313.769289 23516935.034029 1667186.089065
+
+ . . .
+
+ Clock Correc (s)
+==================
+ 0.000007
+ 0.000007
+ 0.000007
+ 0.000007
+
+
+
+ Data for user reference frame:
+
+ Date Time(UTC) Azimuth Elevation Range to SV (m)
+ =====================================================================
+ 06/21/2006 18:00:00 130.596202 -43.242769 29627531.177821
+ 06/21/2006 18:30:00 118.680085 -49.681012 29983796.522429
+ 06/21/2006 19:00:00 102.845663 -53.888528 30169796.433699
+ 06/21/2006 19:30:00 84.400419 -55.459042 30197072.648367
+
+ Calculated 4 increments for prn 2 .
+
+
+\end{lstlisting}
+\end{\outputsize}
+
+\subsection{Notes}
+
+%\end{document}
+
diff --git a/ref/usersguide/arl280-10.06m b/ref/usersguide/arl280-10.06m
new file mode 100644
index 0000000..f64b0eb
--- /dev/null
+++ b/ref/usersguide/arl280-10.06m
@@ -0,0 +1,299 @@
+ 2.00 METEOROLOGICAL DATA RINEX VERSION / TYPE
+mergeRinMet gpstk 01/04/2007 15:36:46 PGM / RUN BY / DATE
+ COMMENT
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+40104M002 MARKER NUMBER
+ 3 PR TD HR # / TYPES OF OBSERV
+VAISALA PTB-100A 0.1 PR SENSOR MOD/TYPE/ACC
+YSI 44212 0.2 TD SENSOR MOD/TYPE/ACC
+VAISALA HMP-35A 3.0 HR SENSOR MOD/TYPE/ACC
+ 0.0000 0.0000 0.0000 200.9000 PR SENSOR POS XYZ/H
+ END OF HEADER
+ 06 1 2 0 0 34 991.4 -7.3 91.8
+ 06 1 2 0 5 22 991.5 -7.2 91.4
+ 06 1 2 0 10 21 991.6 -7.2 90.9
+ 06 1 2 0 15 35 991.6 -7.2 90.9
+ 06 1 2 0 20 22 991.6 -7.1 90.8
+ 06 1 2 0 25 19 991.7 -7.1 90.7
+ 06 1 2 0 30 33 991.8 -7.1 90.9
+ 06 1 2 0 35 20 991.7 -7.1 91.0
+ 06 1 2 0 40 22 991.8 -7.0 90.9
+ 06 1 2 0 45 31 991.8 -7.0 91.0
+ 06 1 2 0 50 21 991.9 -7.0 91.4
+ 06 1 2 0 55 24 992.0 -7.0 91.6
+ 06 1 2 1 0 32 992.0 -7.0 92.0
+ 06 1 2 1 5 21 991.9 -7.0 92.5
+ 06 1 2 1 10 23 992.0 -7.0 92.8
+ 06 1 2 1 15 27 992.1 -7.0 92.8
+ 06 1 2 1 20 21 992.0 -7.0 92.9
+ 06 1 2 1 25 21 991.9 -7.0 93.0
+ 06 1 2 1 30 30 991.9 -7.0 92.9
+ 06 1 2 1 35 23 991.9 -7.0 92.9
+ 06 1 2 1 40 21 991.9 -7.0 92.9
+ 06 1 2 1 45 32 991.8 -6.9 92.9
+ 06 1 2 1 50 19 991.9 -7.0 93.1
+ 06 1 2 1 55 19 992.0 -7.0 93.1
+ 06 1 2 2 0 46 991.9 -6.9 93.2
+ 06 1 2 2 5 20 992.0 -6.9 92.9
+ 06 1 2 2 10 19 992.0 -6.9 92.7
+ 06 1 2 2 15 33 992.1 -6.8 92.6
+ 06 1 2 2 20 18 992.0 -6.8 92.6
+ 06 1 2 2 25 20 992.1 -6.8 92.6
+ 06 1 2 2 30 32 992.0 -6.8 92.8
+ 06 1 2 2 35 19 992.1 -6.8 92.7
+ 06 1 2 2 40 19 992.1 -6.7 92.6
+ 06 1 2 2 45 28 992.2 -6.8 93.0
+ 06 1 2 2 50 19 992.2 -6.8 93.3
+ 06 1 2 2 55 21 992.1 -6.8 93.1
+ 06 1 2 3 0 29 992.1 -6.8 92.9
+ 06 1 2 3 5 20 992.2 -6.7 92.8
+ 06 1 2 3 10 21 992.1 -6.7 92.7
+ 06 1 2 3 15 32 992.2 -6.7 92.6
+ 06 1 2 3 20 19 992.1 -6.7 92.5
+ 06 1 2 3 25 19 992.3 -6.7 92.4
+ 06 1 2 3 30 32 992.3 -6.7 92.7
+ 06 1 2 3 35 22 992.4 -6.7 92.5
+ 06 1 2 3 40 19 992.4 -6.7 92.5
+ 06 1 2 3 45 32 992.3 -6.7 92.3
+ 06 1 2 3 50 23 992.4 -6.6 92.4
+ 06 1 2 3 55 20 992.4 -6.6 92.2
+ 06 1 2 4 0 35 992.4 -6.6 91.7
+ 06 1 2 4 5 20 992.4 -6.6 92.0
+ 06 1 2 4 10 19 992.4 -6.6 92.1
+ 06 1 2 4 15 31 992.4 -6.6 92.3
+ 06 1 2 4 20 19 992.3 -6.6 92.3
+ 06 1 2 4 25 23 992.4 -6.6 92.5
+ 06 1 2 4 30 32 992.6 -6.7 92.5
+ 06 1 2 4 35 22 992.5 -6.6 92.5
+ 06 1 2 4 40 20 992.4 -6.5 92.1
+ 06 1 2 4 45 34 992.4 -6.6 92.6
+ 06 1 2 4 50 21 992.4 -6.6 92.8
+ 06 1 2 4 55 21 992.5 -6.6 92.8
+ 06 1 2 5 0 30 992.5 -6.6 93.0
+ 06 1 2 5 5 21 992.4 -6.6 93.1
+ 06 1 2 5 10 19 992.5 -6.6 93.0
+ 06 1 2 5 15 34 992.5 -6.6 93.0
+ 06 1 2 5 20 19 992.6 -6.6 92.9
+ 06 1 2 5 25 20 992.6 -6.7 93.1
+ 06 1 2 5 30 28 992.6 -6.7 93.0
+ 06 1 2 5 35 24 992.7 -6.6 92.7
+ 06 1 2 5 40 21 992.8 -6.5 92.7
+ 06 1 2 5 45 38 992.8 -6.5 93.0
+ 06 1 2 5 50 21 992.9 -6.5 92.8
+ 06 1 2 5 55 20 992.9 -6.5 92.8
+ 06 1 2 6 0 37 992.9 -6.5 93.0
+ 06 1 2 6 5 24 992.9 -6.5 92.8
+ 06 1 2 6 10 19 993.0 -6.5 92.9
+ 06 1 2 6 15 38 993.1 -6.5 93.0
+ 06 1 2 6 20 24 993.1 -6.6 93.2
+ 06 1 2 6 25 22 993.2 -6.5 93.1
+ 06 1 2 6 30 34 993.2 -6.5 92.9
+ 06 1 2 6 35 22 993.2 -6.4 92.9
+ 06 1 2 6 40 20 993.4 -6.5 93.0
+ 06 1 2 6 45 31 993.5 -6.5 93.3
+ 06 1 2 6 50 20 993.6 -6.4 93.2
+ 06 1 2 6 55 22 993.7 -6.4 93.0
+ 06 1 2 7 0 34 993.7 -6.3 92.8
+ 06 1 2 7 5 19 993.7 -6.3 92.8
+ 06 1 2 7 10 22 993.8 -6.4 93.1
+ 06 1 2 7 15 30 993.9 -6.3 92.5
+ 06 1 2 7 20 19 994.0 -6.2 92.0
+ 06 1 2 7 25 20 994.0 -6.2 91.8
+ 06 1 2 7 30 38 994.1 -6.2 92.1
+ 06 1 2 7 35 20 994.1 -6.2 92.7
+ 06 1 2 7 40 21 994.1 -6.3 93.1
+ 06 1 2 7 45 37 994.1 -6.2 93.1
+ 06 1 2 7 50 23 994.1 -6.2 93.0
+ 06 1 2 7 55 24 994.2 -6.3 92.9
+ 06 1 2 8 0 39 994.2 -6.4 93.4
+ 06 1 2 8 5 18 994.2 -6.3 93.4
+ 06 1 2 8 10 18 994.2 -6.4 93.5
+ 06 1 2 8 15 40 994.2 -6.4 93.5
+ 06 1 2 8 20 18 994.3 -6.4 93.2
+ 06 1 2 8 25 23 994.3 -6.4 93.2
+ 06 1 2 8 30 31 994.2 -6.5 93.3
+ 06 1 2 8 35 21 994.2 -6.6 93.6
+ 06 1 2 8 40 20 994.3 -6.6 93.6
+ 06 1 2 8 45 30 994.3 -6.6 93.5
+ 06 1 2 8 50 20 994.4 -6.6 93.7
+ 06 1 2 8 55 18 994.3 -6.7 93.9
+ 06 1 2 9 0 27 994.3 -6.6 94.0
+ 06 1 2 9 5 19 994.4 -6.7 93.8
+ 06 1 2 9 10 23 994.3 -6.7 93.8
+ 06 1 2 9 15 28 994.3 -6.7 94.3
+ 06 1 2 9 20 19 994.3 -6.7 94.0
+ 06 1 2 9 25 19 994.4 -6.7 93.6
+ 06 1 2 9 30 28 994.4 -6.8 93.5
+ 06 1 2 9 35 21 994.3 -6.9 93.2
+ 06 1 2 9 40 18 994.3 -7.0 94.0
+ 06 1 2 9 45 27 994.4 -7.2 93.6
+ 06 1 2 9 50 22 994.3 -7.3 94.1
+ 06 1 2 9 55 19 994.3 -7.4 93.5
+ 06 1 2 10 0 30 994.2 -7.6 93.1
+ 06 1 2 10 5 18 994.2 -7.6 93.5
+ 06 1 2 10 10 19 994.3 -7.6 93.6
+ 06 1 2 10 15 30 994.3 -7.7 93.5
+ 06 1 2 10 20 19 994.4 -7.6 94.5
+ 06 1 2 10 25 19 994.4 -7.6 93.7
+ 06 1 2 10 30 28 994.5 -7.6 93.4
+ 06 1 2 10 35 19 994.6 -7.6 93.6
+ 06 1 2 10 40 19 994.6 -7.5 93.9
+ 06 1 2 10 45 28 994.6 -7.5 93.3
+ 06 1 2 10 50 19 994.7 -7.5 93.4
+ 06 1 2 10 55 19 994.7 -7.4 93.7
+ 06 1 2 11 0 28 994.7 -7.4 92.9
+ 06 1 2 11 5 21 994.6 -7.4 93.7
+ 06 1 2 11 10 19 994.7 -7.3 94.3
+ 06 1 2 11 15 27 994.8 -7.2 93.8
+ 06 1 2 11 20 21 994.9 -7.2 93.6
+ 06 1 2 11 25 19 994.8 -7.1 93.9
+ 06 1 2 11 30 29 994.9 -7.0 93.4
+ 06 1 2 11 35 19 994.9 -7.1 92.9
+ 06 1 2 11 40 18 994.9 -7.2 92.5
+ 06 1 2 11 45 32 994.9 -7.3 92.9
+ 06 1 2 11 50 19 994.8 -7.3 93.3
+ 06 1 2 11 55 19 994.9 -7.3 93.4
+ 06 1 2 12 0 28 994.8 -7.3 93.2
+ 06 1 2 12 5 18 994.8 -7.3 93.3
+ 06 1 2 12 10 18 994.8 -7.3 93.8
+ 06 1 2 12 15 28 994.7 -7.3 93.7
+ 06 1 2 12 20 18 994.8 -7.3 94.2
+ 06 1 2 12 25 18 994.9 -7.3 94.4
+ 06 1 2 12 30 26 994.9 -7.3 95.0
+ 06 1 2 12 35 19 995.0 -7.3 95.4
+ 06 1 2 12 40 19 995.0 -7.3 95.7
+ 06 1 2 12 45 27 994.9 -7.2 96.1
+ 06 1 2 12 50 21 995.0 -7.2 96.4
+ 06 1 2 12 55 18 994.9 -7.2 96.6
+ 06 1 2 13 0 30 995.0 -7.2 96.6
+ 06 1 2 13 5 19 995.1 -7.2 96.5
+ 06 1 2 13 10 19 995.1 -7.1 96.3
+ 06 1 2 13 15 30 995.2 -7.1 96.3
+ 06 1 2 13 20 19 995.2 -7.1 96.8
+ 06 1 2 13 25 18 995.3 -7.1 96.8
+ 06 1 2 13 30 30 995.3 -7.1 96.8
+ 06 1 2 13 35 19 995.3 -7.1 96.9
+ 06 1 2 13 40 19 995.3 -7.1 96.9
+ 06 1 2 13 45 28 995.4 -7.0 96.5
+ 06 1 2 13 50 19 995.4 -6.9 96.2
+ 06 1 2 13 55 21 995.5 -6.9 95.9
+ 06 1 2 14 0 29 995.7 -6.8 95.8
+ 06 1 2 14 5 19 995.8 -6.6 95.6
+ 06 1 2 14 10 18 995.9 -6.5 95.1
+ 06 1 2 14 15 28 996.0 -6.4 95.1
+ 06 1 2 14 20 22 996.2 -6.4 94.7
+ 06 1 2 14 25 20 996.3 -6.5 95.3
+ 06 1 2 14 30 41 996.4 -6.4 95.2
+ 06 1 2 14 35 20 996.4 -6.2 95.2
+ 06 1 2 14 40 19 996.4 -6.0 95.2
+ 06 1 2 14 45 32 996.3 -5.6 95.6
+ 06 1 2 14 50 23 996.2 -5.3 94.9
+ 06 1 2 14 55 19 996.2 -5.4 94.0
+ 06 1 2 15 0 31 996.2 -5.5 94.0
+ 06 1 2 15 5 19 996.2 -5.7 94.1
+ 06 1 2 15 10 19 996.2 -5.7 95.0
+ 06 1 2 15 15 29 996.2 -5.5 95.2
+ 06 1 2 15 20 21 996.3 -5.5 94.7
+ 06 1 2 15 25 24 996.2 -5.6 95.0
+ 06 1 2 15 30 37 996.1 -5.5 95.7
+ 06 1 2 15 35 25 996.2 -5.4 95.2
+ 06 1 2 15 40 21 996.2 -5.4 94.6
+ 06 1 2 15 45 36 996.3 -5.2 94.8
+ 06 1 2 15 50 20 996.3 -4.8 95.6
+ 06 1 2 15 55 21 996.3 -4.9 93.7
+ 06 1 2 16 0 29 996.1 -5.1 94.2
+ 06 1 2 16 5 19 996.2 -5.2 94.6
+ 06 1 2 16 10 19 996.1 -5.2 95.2
+ 06 1 2 16 15 32 996.0 -5.1 94.8
+ 06 1 2 16 20 25 995.9 -5.0 95.5
+ 06 1 2 16 25 24 996.0 -4.8 94.8
+ 06 1 2 16 30 29 995.9 -4.8 94.6
+ 06 1 2 16 35 24 995.9 -4.6 94.6
+ 06 1 2 16 40 20 995.9 -4.6 94.3
+ 06 1 2 16 45 27 995.9 -4.5 94.4
+ 06 1 2 16 50 20 995.9 -4.6 94.4
+ 06 1 2 16 55 19 995.8 -4.6 95.0
+ 06 1 2 17 0 32 995.7 -4.5 95.0
+ 06 1 2 17 5 19 995.7 -4.6 95.0
+ 06 1 2 17 10 22 995.7 -4.6 94.9
+ 06 1 2 17 15 28 995.6 -4.5 95.2
+ 06 1 2 17 20 20 995.5 -4.4 94.7
+ 06 1 2 17 25 19 995.4 -4.4 95.1
+ 06 1 2 17 30 31 995.4 -4.3 94.7
+ 06 1 2 17 35 20 995.4 -4.3 94.9
+ 06 1 2 17 40 20 995.5 -4.3 94.6
+ 06 1 2 17 45 34 995.5 -4.2 94.7
+ 06 1 2 17 50 18 995.5 -4.2 94.6
+ 06 1 2 17 55 20 995.3 -4.3 94.9
+ 06 1 2 18 0 28 995.0 -4.2 95.0
+ 06 1 2 18 5 21 994.9 -4.2 94.5
+ 06 1 2 18 10 19 995.0 -4.2 94.9
+ 06 1 2 18 15 30 995.1 -4.1 95.2
+ 06 1 2 18 20 23 995.0 -4.2 94.8
+ 06 1 2 18 25 20 994.9 -4.2 95.0
+ 06 1 2 18 30 27 995.1 -4.1 95.0
+ 06 1 2 18 35 19 995.1 -4.1 94.8
+ 06 1 2 18 40 19 995.0 -4.0 94.8
+ 06 1 2 18 45 32 994.9 -4.1 94.7
+ 06 1 2 18 50 19 994.8 -4.0 94.8
+ 06 1 2 18 55 20 994.8 -4.0 94.3
+ 06 1 2 19 0 32 994.9 -3.9 94.4
+ 06 1 2 19 5 20 994.9 -3.9 94.2
+ 06 1 2 19 10 19 994.8 -3.9 94.4
+ 06 1 2 19 15 29 995.0 -3.9 94.4
+ 06 1 2 19 20 19 995.0 -4.0 94.3
+ 06 1 2 19 25 19 995.0 -4.1 94.6
+ 06 1 2 19 30 29 995.0 -4.1 94.9
+ 06 1 2 19 35 20 995.0 -4.0 94.6
+ 06 1 2 19 40 19 995.0 -4.0 94.5
+ 06 1 2 19 45 27 995.0 -3.9 94.7
+ 06 1 2 19 50 19 994.8 -3.9 94.5
+ 06 1 2 19 55 19 994.8 -3.9 94.4
+ 06 1 2 20 0 28 994.7 -4.0 94.8
+ 06 1 2 20 5 22 994.6 -4.1 94.7
+ 06 1 2 20 10 19 994.6 -4.1 95.0
+ 06 1 2 20 15 29 994.6 -4.1 95.3
+ 06 1 2 20 20 19 994.5 -4.1 94.9
+ 06 1 2 20 25 19 994.3 -4.2 95.1
+ 06 1 2 20 30 33 994.4 -4.3 94.9
+ 06 1 2 20 35 19 994.5 -4.3 95.4
+ 06 1 2 20 40 19 994.3 -4.4 95.5
+ 06 1 2 20 45 33 994.1 -4.4 95.4
+ 06 1 2 20 50 18 994.2 -4.5 95.3
+ 06 1 2 20 55 22 994.1 -4.5 95.3
+ 06 1 2 21 0 30 994.2 -4.5 95.6
+ 06 1 2 21 5 19 994.0 -4.6 95.5
+ 06 1 2 21 10 18 994.0 -4.7 95.8
+ 06 1 2 21 15 32 994.1 -4.7 95.7
+ 06 1 2 21 20 19 993.9 -4.8 96.0
+ 06 1 2 21 25 18 993.9 -4.8 96.1
+ 06 1 2 21 30 32 993.9 -4.8 96.1
+ 06 1 2 21 35 19 994.1 -4.8 96.1
+ 06 1 2 21 40 19 994.4 -4.8 96.1
+ 06 1 2 21 45 29 994.5 -4.7 96.0
+ 06 1 2 21 50 18 994.4 -4.8 96.0
+ 06 1 2 21 55 18 994.4 -4.8 96.2
+ 06 1 2 22 0 29 994.5 -4.8 96.2
+ 06 1 2 22 5 19 994.5 -4.8 96.2
+ 06 1 2 22 10 19 994.5 -4.8 96.2
+ 06 1 2 22 15 28 994.4 -4.8 96.2
+ 06 1 2 22 20 19 994.5 -4.8 96.3
+ 06 1 2 22 25 21 994.8 -4.8 96.3
+ 06 1 2 22 30 28 994.9 -4.8 96.2
+ 06 1 2 22 35 18 994.9 -4.8 96.1
+ 06 1 2 22 40 19 994.8 -4.9 96.2
+ 06 1 2 22 45 28 994.9 -4.9 96.3
+ 06 1 2 22 50 19 995.0 -4.9 96.3
+ 06 1 2 22 55 19 994.9 -4.9 96.5
+ 06 1 2 23 0 28 994.9 -5.0 96.6
+ 06 1 2 23 5 21 994.8 -5.0 96.7
+ 06 1 2 23 10 19 994.6 -5.0 96.7
+ 06 1 2 23 15 28 994.4 -5.0 96.7
+ 06 1 2 23 20 19 994.6 -5.0 96.7
+ 06 1 2 23 25 19 994.8 -5.0 96.6
+ 06 1 2 23 30 32 994.8 -5.0 96.5
+ 06 1 2 23 35 19 994.7 -5.0 96.5
+ 06 1 2 23 40 18 994.7 -5.1 96.4
+ 06 1 2 23 45 27 994.7 -5.1 96.4
+ 06 1 2 23 50 18 994.7 -5.1 96.4
+ 06 1 2 23 55 18 994.7 -5.1 96.4
diff --git a/ref/usersguide/arl280-10.06n b/ref/usersguide/arl280-10.06n
new file mode 100644
index 0000000..28e2612
--- /dev/null
+++ b/ref/usersguide/arl280-10.06n
@@ -0,0 +1,1285 @@
+ 2.10 NAVIGATION RINEX VERSION / TYPE
+mergeRinNav gpstk 01/04/2007 15:36:46 PGM / RUN BY / DATE
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+teqc 2005Sep1 20060102 01:18:13UTCCOMMENT
+ END OF HEADER
+ 2 06 1 2 0 0 0.0 -.231787562370D-04 .102318153950D-11 .000000000000D+00
+ .214000000000D+03 .834375000000D+01 .481520057243D-08 .644377417546D+00
+ .379979610443D-06 .906153733376D-02 .105854123831D-04 .515363423920D+04
+ .864000000000D+05 -.596046447754D-07 .293809152360D+01 -.912696123123D-07
+ .952299428099D+00 .175250000000D+03 .195619747781D+01 -.806426448041D-08
+ -.620740142033D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.172294676304D-07 .214000000000D+03
+ .792180000000D+05 .400000000000D+01
+ 4 06 1 2 0 0 0.0 .104762613773D-03 .122781784739D-10 .000000000000D+00
+ .420000000000D+02 .130312500000D+02 .469805283562D-08 .300537209598D+01
+ .694766640663D-06 .741690595169D-02 .106375664473D-04 .515376259995D+04
+ .864000000000D+05 -.134110450745D-06 .295787889356D+01 .372529029846D-07
+ .951893355688D+00 .171156250000D+03 .113060923018D+00 -.779139597149D-08
+ -.631812031793D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.605359673500D-08 .298000000000D+03
+ .792180000000D+05 .400000000000D+01
+ 5 06 1 2 0 0 0.0 .449912156910D-03 .239879227593D-10 .000000000000D+00
+ .810000000000D+02 -.453125000000D+02 .467662337156D-08 .266568455290D+01
+ -.229850411415D-05 .678558263462D-02 .119972974062D-04 .515368592262D+04
+ .864000000000D+05 .279396772385D-07 .764098503335D+00 -.204890966415D-07
+ .937435620116D+00 .133531250000D+03 .103943730378D+01 -.784568394708D-08
+ .726815989089D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .810000000000D+02
+ .792180000000D+05 .400000000000D+01
+ 7 06 1 2 0 0 0.0 .460495240986D-03 .102318153950D-10 .000000000000D+00
+ .163000000000D+03 .104062500000D+02 .577381193101D-08 -.242695821347D+00
+ .478699803352D-06 .132325546583D-01 .522471964359D-05 .515380368996D+04
+ .864000000000D+05 -.145286321640D-06 .183430237433D+01 .912696123123D-07
+ .935006166691D+00 .269781250000D+03 -.176759161732D+01 -.880715256754D-08
+ .235009789101D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.186264514923D-08 .419000000000D+03
+ .792180000000D+05 .400000000000D+01
+10 06 1 2 0 0 0.0 .764117576182D-04 .682121026330D-12 .000000000000D+00
+ .440000000000D+02 .152812500000D+03 .409838499990D-08 .940069375903D+00
+ .823289155960D-05 .680295575876D-02 .770017504692D-05 .515379232216D+04
+ .864000000000D+05 .204890966415D-07 -.227708168278D+01 .875443220139D-07
+ .975647477759D+00 .236656250000D+03 .358337179713D+00 -.790997233924D-08
+ -.225009372544D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.232830643654D-08 .300000000000D+03
+ .792180000000D+05 .400000000000D+01
+13 06 1 2 0 0 0.0 .325227156281D-04 .227373675443D-11 .000000000000D+00
+ .350000000000D+02 .965625000000D+01 .404766860164D-08 .893761668167D+00
+ .460073351860D-06 .257215183228D-02 .335276126862D-07 .515360996819D+04
+ .864000000000D+05 -.223517417908D-07 -.122840945262D+01 .558793544769D-07
+ .990325796507D+00 .393625000000D+03 .109553485784D+01 -.825177229087D-08
+ -.800033324599D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .350000000000D+02
+ .792180000000D+05 .400000000000D+01
+23 06 1 2 0 0 0.0 .156403053552D-03 -.170530256582D-11 .000000000000D+00
+ .100000000000D+01 .228125000000D+02 .460733477113D-08 .111026772002D+00
+ .101514160633D-05 .417847745121D-02 -.314787030220D-06 .515360579872D+04
+ .864000000000D+05 .204890966415D-07 -.125180702059D+01 -.372529029846D-07
+ .966779145478D+00 .388875000000D+03 .242395725354D+01 -.851571185644D-08
+ -.671456540289D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.214204192162D-07 .100000000000D+01
+ .792180000000D+05 .400000000000D+01
+30 06 1 2 0 0 0.0 .957399606705D-05 .579802872380D-11 .000000000000D+00
+ .141000000000D+03 -.407812500000D+02 .460019161645D-08 .194106874268D+01
+ -.209920108318D-05 .871421990450D-02 .118799507618D-04 .515360866547D+04
+ .864000000000D+05 .372529029846D-08 .809569419004D+00 -.165775418282D-06
+ .944054895790D+00 .139718750000D+03 .129612988789D+01 -.786961351528D-08
+ .757174396496D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.838190317154D-08 .141000000000D+03
+ .792180000000D+05 .400000000000D+01
+ 6 06 1 2 0 0 0.0 .174713321030D-03 .443378667114D-10 .000000000000D+00
+ .200000000000D+02 .587500000000D+01 .562987736413D-08 -.233769396149D+01
+ .152736902237D-06 .597032601945D-02 .478513538837D-05 .515361807251D+04
+ .864000000000D+05 .102445483208D-06 .186102794927D+01 .186264514923D-07
+ .933477616255D+00 .267437500000D+03 -.186140496082D+01 -.837820612877D-08
+ .262510934634D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .276000000000D+03
+ .792480000000D+05 .400000000000D+01
+29 06 1 2 0 0 0.0 .482642091811D-03 .147792889038D-10 .000000000000D+00
+ .108000000000D+03 .815625000000D+01 .427732102473D-08 .121121930353D+01
+ .856816768646D-07 .927549030166D-02 -.748783349991D-06 .515368518639D+04
+ .864000000000D+05 .176951289177D-06 -.126144119342D+01 -.208616256714D-06
+ .985252737468D+00 .402406250000D+03 -.101276604113D+01 -.835570519152D-08
+ -.103932900651D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .108000000000D+03
+ .821580000000D+05 .400000000000D+01
+26 06 1 2 0 0 0.0 -.754697248340D-05 -.727595761418D-11 .000000000000D+00
+ .510000000000D+02 .365625000000D+01 .427160650098D-08 -.755171679200D+00
+ .365078449249D-06 .167628820054D-01 -.478699803352D-06 .515364880371D+04
+ .864000000000D+05 .199303030968D-06 -.122723007293D+01 .227242708206D-06
+ .988515555343D+00 .400406250000D+03 .747106943912D+00 -.850142554707D-08
+ -.115004790411D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .510000000000D+02
+ .838080000000D+05 .400000000000D+01
+21 06 1 2 0 0 0.0 .163991004229D-03 .386535248253D-11 .000000000000D+00
+ .205000000000D+03 .236875000000D+02 .483663003648D-08 -.244242053781D+01
+ .108964741230D-05 .105164286215D-01 .110175460577D-04 .515374243927D+04
+ .864000000000D+05 -.132247805595D-06 .297901018346D+01 -.234693288803D-06
+ .945486944835D+00 .162437500000D+03 -.302854858339D+01 -.789782897628D-08
+ -.640026659679D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.116415321827D-07 .461000000000D+03
+ .852180000000D+05 .400000000000D+01
+ 2 06 1 2 2 0 0.0 -.231717713177D-04 .102318153950D-11 .000000000000D+00
+ .215000000000D+03 .281250000000D+01 .475984112363D-08 .169455035004D+01
+ .800937414169D-07 .906206236687D-02 .101607292891D-04 .515363516235D+04
+ .936000000000D+05 .126659870148D-06 .293803411285D+01 -.651925802231D-07
+ .952295757638D+00 .178531250000D+03 .195623076212D+01 -.788354266691D-08
+ -.625740350312D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.172294676304D-07 .215000000000D+03
+ .864180000000D+05 .400000000000D+01
+ 6 06 1 2 2 0 0.0 .175032299012D-03 .443378667114D-10 .000000000000D+00
+ .150000000000D+02 .762500000000D+01 .561451958156D-08 -.128749852054D+01
+ .629574060440D-06 .597045186441D-02 .496953725815D-05 .515361771011D+04
+ .936000000000D+05 .465661287308D-07 .186096764633D+01 .180676579475D-06
+ .933478751480D+00 .267875000000D+03 -.186137765984D+01 -.852606943073D-08
+ .209651589973D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.465661287308D-08 .527000000000D+03
+ .864180000000D+05 .400000000000D+01
+10 06 1 2 2 0 0.0 .764168798924D-04 .682121026330D-12 .000000000000D+00
+ .450000000000D+02 .141843750000D+03 .406552648835D-08 .198981651438D+01
+ .751204788685D-05 .680301792454D-02 .866688787937D-05 .515379689598D+04
+ .936000000000D+05 -.158324837685D-06 -.227713914035D+01 .108033418655D-06
+ .975647760102D+00 .223000000000D+03 .358694538416D+00 -.784104089654D-08
+ .925038531568D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.232830643654D-08 .301000000000D+03
+ .864180000000D+05 .400000000000D+01
+21 06 1 2 2 0 0.0 .164018478245D-03 .386535248253D-11 .000000000000D+00
+ .206000000000D+03 .203125000000D+02 .486591697069D-08 -.139243154679D+01
+ .774860382080D-06 .105168446898D-01 .101756304503D-04 .515373933601D+04
+ .936000000000D+05 .109896063805D-06 .297895180864D+01 -.108033418655D-06
+ .945482945217D+00 .174156250000D+03 -.302839487166D+01 -.798461830569D-08
+ -.441804117201D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.116415321827D-07 .462000000000D+03
+ .864180000000D+05 .400000000000D+01
+26 06 1 2 2 0 0.0 -.759959220886D-05 -.727595761418D-11 .000000000000D+00
+ .520000000000D+02 .126562500000D+02 .429267880730D-08 .294989310026D+00
+ .873580574989D-06 .167636024999D-01 -.184401869774D-06 .515364990425D+04
+ .936000000000D+05 -.931322574616D-08 -.122729154329D+01 .242143869400D-06
+ .988514483025D+00 .393406250000D+03 .747141062087D+00 -.853821279369D-08
+ -.155006456641D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .520000000000D+02
+ .864180000000D+05 .400000000000D+01
+29 06 1 2 2 0 0.0 .482748262584D-03 .147792889038D-10 .000000000000D+00
+ .109000000000D+03 .231562500000D+02 .428124975981D-08 .226117346540D+01
+ .138767063618D-05 .927490065806D-02 -.735744833946D-06 .515368912315D+04
+ .936000000000D+05 .203028321266D-06 -.126150030993D+01 -.130385160446D-07
+ .985252174245D+00 .400437500000D+03 -.101254925715D+01 -.823427156189D-08
+ -.152149194767D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .109000000000D+03
+ .864180000000D+05 .400000000000D+01
+27 06 1 2 2 0 0.0 .297576189041D-04 .159161572810D-11 .000000000000D+00
+ .123000000000D+03 -.165093750000D+03 .423231915022D-08 -.241248092453D+01
+ -.858120620251D-05 .196306462167D-01 .539608299732D-05 .515372286797D+04
+ .936000000000D+05 .208616256714D-06 -.262665514787D+00 -.115483999252D-06
+ .956889699303D+00 .267687500000D+03 -.197983339171D+01 -.775318009393D-08
+ -.143577409147D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .123000000000D+03
+ .867480000000D+05 .400000000000D+01
+21 06 1 2 1 59 44.0 .164018943906D-03 .386535248253D-11 .000000000000D+00
+ .226000000000D+03 .203125000000D+02 .486591697069D-08 -.139476514689D+01
+ .774860382080D-06 .105168451555D-01 .101756304503D-04 .515373934364D+04
+ .935840000000D+05 .109896063805D-06 .297895193884D+01 -.108033418655D-06
+ .945482956920D+00 .174156250000D+03 -.302839500186D+01 -.798461830569D-08
+ -.441804117201D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .226000000000D+03
+ .874380000000D+05 .400000000000D+01
+10 06 1 2 1 59 44.0 .764159485698D-04 .682121026330D-12 .000000000000D+00
+ .650000000000D+02 .141843750000D+03 .406552648835D-08 .198748280017D+01
+ .751204788685D-05 .680302700494D-02 .866688787937D-05 .515379689407D+04
+ .935840000000D+05 -.158324837685D-06 -.227713901161D+01 .108033418655D-06
+ .975647760102D+00 .223000000000D+03 .358694678856D+00 -.784104089654D-08
+ .925038531568D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .650000000000D+02
+ .875280000000D+05 .400000000000D+01
+ 8 06 1 2 2 0 0.0 -.520679168403D-04 -.136424205266D-11 .000000000000D+00
+ .215000000000D+03 -.150687500000D+03 .398588031363D-08 -.123642235672D+01
+ -.801868736744D-05 .958893448114D-02 .751949846744D-05 .515368445206D+04
+ .936000000000D+05 -.137835741043D-06 -.162895176187D+00 -.782310962677D-07
+ .971641576498D+00 .240937500000D+03 .262175404608D+01 -.793104464556D-08
+ -.950039572962D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.372529029846D-08 .471000000000D+03
+ .877380000000D+05 .400000000000D+01
+15 06 1 2 2 0 0.0 .543466769159D-03 .579802872380D-11 .000000000000D+00
+ .380000000000D+02 .251875000000D+02 .457447625958D-08 -.111185161850D+01
+ .100955367088D-05 .926154712215D-02 .108778476715D-04 .515372133827D+04
+ .936000000000D+05 .931322574616D-08 .301417819719D+01 -.132247805595D-06
+ .958987599900D+00 .172531250000D+03 .253867632983D+01 -.793175896103D-08
+ -.494306304127D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .400000000000D+01 .000000000000D+00 -.232830643654D-08 .294000000000D+03
+ .894780000000D+05 .400000000000D+01
+18 06 1 2 2 0 0.0 -.212281011045D-03 -.238742359215D-11 .000000000000D+00
+ .610000000000D+02 .167593750000D+03 .432303721471D-08 -.276588925382D+01
+ .858865678310D-05 .669208273757D-02 .819005072117D-05 .515365977859D+04
+ .936000000000D+05 -.521540641785D-07 -.225322313908D+01 -.132247805595D-06
+ .959627265219D+00 .221125000000D+03 -.269165492856D+01 -.792283001767D-08
+ .111790370803D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.102445483208D-07 .317000000000D+03
+ .904980000000D+05 .400000000000D+01
+ 6 06 1 2 1 59 44.0 .175031833351D-03 .443378667114D-10 .000000000000D+00
+ .410000000000D+02 .762500000000D+01 .561451958156D-08 -.128983360698D+01
+ .629574060440D-06 .597044685855D-02 .496953725815D-05 .515361769104D+04
+ .935840000000D+05 .465661287308D-07 .186096777799D+01 .180676579475D-06
+ .933478719296D+00 .267875000000D+03 -.186137622033D+01 -.852606943073D-08
+ .209651589973D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .410000000000D+02
+ .916080000000D+05 .400000000000D+01
+ 6 06 1 2 3 59 44.0 .175350811332D-03 .443378667114D-10 .000000000000D+00
+ .420000000000D+02 .116875000000D+02 .559737601032D-08 -.239545299989D+00
+ .679865479469D-06 .597092276439D-02 .504776835442D-05 .515361886406D+04
+ .100784000000D+06 -.651925802231D-07 .186090572393D+01 .100582838059D-06
+ .933479927666D+00 .269500000000D+03 -.186144170054D+01 -.862035907256D-08
+ .223223583873D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .420000000000D+02
+ .936180000000D+05 .400000000000D+01
+10 06 1 2 3 59 44.0 .764206051826D-04 .682121026330D-12 .000000000000D+00
+ .660000000000D+02 .143031250000D+03 .405588322953D-08 .303769513489D+01
+ .745430588722D-05 .680480420124D-02 .938028097153D-05 .515379337883D+04
+ .100784000000D+06 -.875443220139D-07 -.227719518182D+01 -.670552253723D-07
+ .975649351757D+00 .208093750000D+03 .358585382783D+00 -.768246286256D-08
+ .145363197818D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .660000000000D+02
+ .936180000000D+05 .400000000000D+01
+21 06 1 2 3 59 44.0 .164046417922D-03 .386535248253D-11 .000000000000D+00
+ .227000000000D+03 .925000000000D+01 .483270130141D-08 -.344526684451D+00
+ .521540641785D-06 .105181076797D-01 .991672277451D-05 .515374236107D+04
+ .100784000000D+06 .188127160072D-06 .297889471680D+01 .838190317154D-07
+ .945478913415D+00 .179406250000D+03 -.302849129259D+01 -.814176770873D-08
+ -.540736809573D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .227000000000D+03
+ .936180000000D+05 .400000000000D+01
+ 8 06 1 2 4 0 0.0 -.520781613886D-04 -.136424205266D-11 .000000000000D+00
+ .216000000000D+03 -.151656250000D+03 .410802825872D-08 -.186397609054D+00
+ -.812113285065D-05 .958824297413D-02 .685267150402D-05 .515368168259D+04
+ .100800000000D+06 .143423676491D-06 -.162951320057D+00 -.204890966415D-06
+ .971639806367D+00 .254625000000D+03 .262190106934D+01 -.804533512050D-08
+ -.330370904131D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.372529029846D-08 .472000000000D+03
+ .936180000000D+05 .400000000000D+01
+15 06 1 2 4 0 0.0 .543508678675D-03 .579802872380D-11 .000000000000D+00
+ .390000000000D+02 .186250000000D+02 .450947355196D-08 -.617228500445D-01
+ .866129994392D-06 .926206540316D-02 .104904174805D-04 .515372193527D+04
+ .100800000000D+06 .800937414169D-07 .301412116972D+01 -.968575477600D-07
+ .958983970400D+00 .175687500000D+03 .253869981698D+01 -.796283168390D-08
+ -.517521556850D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .400000000000D+01 .000000000000D+00 -.232830643654D-08 .295000000000D+03
+ .936180000000D+05 .400000000000D+01
+18 06 1 2 4 0 0.0 -.212297774851D-03 -.238742359215D-11 .000000000000D+00
+ .620000000000D+02 .151343750000D+03 .442875590403D-08 -.171586537952D+01
+ .784918665886D-05 .669391232077D-02 .781938433647D-05 .515365601158D+04
+ .100800000000D+06 .745058059692D-07 -.225328098432D+01 -.502914190292D-07
+ .959628417998D+00 .229312500000D+03 -.269148791598D+01 -.796711757671D-08
+ .221080637467D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.102445483208D-07 .318000000000D+03
+ .936180000000D+05 .400000000000D+01
+26 06 1 2 4 0 0.0 -.765221193433D-05 -.727595761418D-11 .000000000000D+00
+ .530000000000D+02 .223437500000D+02 .435232414891D-08 .134517841654D+01
+ .124983489513D-05 .167645449983D-01 .514090061188D-06 .515365122032D+04
+ .100800000000D+06 -.201165676117D-06 -.122735307508D+01 .271946191788D-06
+ .988513336097D+00 .388281250000D+03 .747144807157D+00 -.848463913356D-08
+ -.113219001740D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .530000000000D+02
+ .936180000000D+05 .400000000000D+01
+29 06 1 2 4 0 0.0 .482854899019D-03 .147792889038D-10 .000000000000D+00
+ .110000000000D+03 .299062500000D+02 .430089343519D-08 -.297189002365D+01
+ .170245766640D-05 .927509728354D-02 -.363215804100D-06 .515368906593D+04
+ .100800000000D+06 .372529029846D-08 -.126156075625D+01 .236555933952D-06
+ .985252156690D+00 .397718750000D+03 -.101250100572D+01 -.816676875013D-08
+ .100361323309D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .110000000000D+03
+ .936180000000D+05 .400000000000D+01
+ 9 06 1 2 3 59 44.0 .192597508431D-05 .147792889038D-11 .000000000000D+00
+ .340000000000D+02 -.131406250000D+03 .454483216764D-08 -.526167722163D+00
+ -.685267150402D-05 .174433491193D-01 .636093318462D-05 .515366285133D+04
+ .100784000000D+06 -.165775418282D-06 -.240269993032D+00 .176951289177D-06
+ .959055248158D+00 .255500000000D+03 .121142373609D+01 -.850071123160D-08
+ -.288940606965D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.558793544769D-08 .290000000000D+03
+ .937380000000D+05 .400000000000D+01
+22 06 1 2 4 0 0.0 .594398006797D-04 .227373675443D-11 .000000000000D+00
+ .450000000000D+02 .155281250000D+03 .446232873105D-08 .284837948703D+01
+ .799074769020D-05 .499739299994D-02 .783428549767D-05 .515369018745D+04
+ .100800000000D+06 .949949026108D-07 -.224482993041D+01 -.335276126862D-07
+ .957123810083D+00 .226781250000D+03 -.156303410395D+01 -.794997400547D-08
+ .117862052285D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.181607902050D-07 .450000000000D+02
+ .943980000000D+05 .400000000000D+01
+ 3 06 1 2 4 0 0.0 .633285380900D-04 .306954461848D-11 .000000000000D+00
+ .120000000000D+03 .136875000000D+02 .578202655890D-08 .186287648817D+01
+ .683590769768D-06 .778003013693D-02 .528059899807D-05 .515364880753D+04
+ .100800000000D+06 -.128522515297D-06 .180342800614D+01 .130385160446D-07
+ .925952819160D+00 .258968750000D+03 .656563962559D+00 -.860321550132D-08
+ .250724729406D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .400000000000D+01 .000000000000D+00 -.419095158577D-08 .376000000000D+03
+ .952080000000D+05 .400000000000D+01
+15 06 1 2 3 59 44.0 .543497502804D-03 .579802872380D-11 .000000000000D+00
+ .600000000000D+02 .186250000000D+02 .450947355196D-08 -.640555914182D-01
+ .866129994392D-06 .926206703298D-02 .104904174805D-04 .515372196007D+04
+ .100784000000D+06 .800937414169D-07 .301412125603D+01 -.968575477600D-07
+ .958983992344D+00 .175687500000D+03 .253869875051D+01 -.796283168390D-08
+ -.517521556850D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .600000000000D+02
+ .963480000000D+05 .400000000000D+01
+14 06 1 2 4 0 0.0 -.216038897634D-04 .568434188608D-12 .000000000000D+00
+ .199000000000D+03 .161562500000D+02 .432232289924D-08 .217504963626D+01
+ .771135091782D-06 .238363340031D-02 -.383704900742D-06 .515359884644D+04
+ .100800000000D+06 .149011611938D-07 -.124089713639D+01 -.115483999252D-06
+ .984549113371D+00 .399218750000D+03 -.200141297968D+01 -.831213194795D-08
+ -.250010413937D-11 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-08 .455000000000D+03
+ .990480000000D+05 .400000000000D+01
+15 06 1 2 5 59 44.0 .543538946658D-03 .579802872380D-11 .000000000000D+00
+ .610000000000D+02 .106875000000D+02 .443982779379D-08 .986085894184D+00
+ .534579157829D-06 .926316191908D-02 .102035701275D-04 .515372390366D+04
+ .107984000000D+06 .178813934326D-06 .301406411153D+01 -.130385160446D-07
+ .958980507673D+00 .180875000000D+03 .253870718716D+01 -.789354308347D-08
+ -.537165232231D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .610000000000D+02
+ .100818000000D+06 .400000000000D+01
+ 3 06 1 2 6 0 0.0 .633504241705D-04 .306954461848D-11 .000000000000D+00
+ .115000000000D+03 .143125000000D+02 .567130766130D-08 .291305333543D+01
+ .728294253349D-06 .777969043702D-02 .518560409546D-05 .515364954376D+04
+ .108000000000D+06 -.745058059692D-08 .180336647581D+01 -.633299350738D-07
+ .925955323676D+00 .262031250000D+03 .656591844314D+00 -.846535261592D-08
+ .270725562521D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .400000000000D+01 .000000000000D+00 -.419095158577D-08 .627000000000D+03
+ .100818000000D+06 .400000000000D+01
+ 9 06 1 2 6 0 0.0 .193668529391D-05 .147792889038D-11 .000000000000D+00
+ .350000000000D+02 -.137781250000D+03 .466662295501D-08 .526379045069D+00
+ -.709295272827D-05 .174409555038D-01 .574812293053D-05 .515365821266D+04
+ .108000000000D+06 -.225380063057D-06 -.240330847499D+00 .186264514923D-07
+ .959052976246D+00 .272156250000D+03 .121139943995D+01 -.848678207997D-08
+ -.393944980818D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.558793544769D-08 .350000000000D+02
+ .100818000000D+06 .400000000000D+01
+14 06 1 2 6 0 0.0 -.216001644731D-04 .568434188608D-12 .000000000000D+00
+ .200000000000D+03 .218437500000D+02 .434696678290D-08 -.305787456544D+01
+ .125542283058D-05 .238285062369D-02 -.175088644028D-06 .515360011673D+04
+ .108000000000D+06 .968575477600D-07 -.124095692147D+01 -.782310962677D-07
+ .984549152870D+00 .393937500000D+03 -.200144860759D+01 -.830320300459D-08
+ .182150444440D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-08 .456000000000D+03
+ .100818000000D+06 .400000000000D+01
+18 06 1 2 6 0 0.0 -.212315004319D-03 -.238742359215D-11 .000000000000D+00
+ .630000000000D+02 .134718750000D+03 .436946772016D-08 -.665334213498D+00
+ .716187059879D-05 .669423851650D-02 .816211104393D-05 .515366026688D+04
+ .108000000000D+06 .106170773506D-06 -.225333822099D+01 .614672899246D-07
+ .959629575167D+00 .222531250000D+03 -.269183046849D+01 -.804962101331D-08
+ .173221501085D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.102445483208D-07 .319000000000D+03
+ .100818000000D+06 .400000000000D+01
+21 06 1 2 6 0 0.0 .164073891938D-03 .386535248253D-11 .000000000000D+00
+ .228000000000D+03 .112500000000D+01 .483055835500D-08 .708000585009D+00
+ .145286321640D-06 .105174829951D-01 .100135803223D-04 .515374099541D+04
+ .108000000000D+06 .100582838059D-06 .297883611376D+01 .206753611565D-06
+ .945474989868D+00 .178781250000D+03 -.302854395033D+01 -.811498087867D-08
+ -.583238579942D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .228000000000D+03
+ .100818000000D+06 .400000000000D+01
+22 06 1 2 6 0 0.0 .594556331635D-04 .227373675443D-11 .000000000000D+00
+ .460000000000D+02 .142687500000D+03 .437089635109D-08 -.238445729799D+01
+ .743567943573D-05 .499567633960D-02 .820308923721D-05 .515369369507D+04
+ .108000000000D+06 .484287738800D-07 -.224488755036D+01 .707805156708D-07
+ .957125050637D+00 .218000000000D+03 -.156321271454D+01 -.793461622290D-08
+ .201794119821D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.181607902050D-07 .460000000000D+02
+ .100818000000D+06 .400000000000D+01
+26 06 1 2 6 0 0.0 -.770483165979D-05 -.727595761418D-11 .000000000000D+00
+ .480000000000D+02 .350312500000D+02 .425446292974D-08 .239546686689D+01
+ .153481960297D-05 .167646190384D-01 .404193997383D-06 .515364835739D+04
+ .108000000000D+06 -.195577740669D-06 -.122741409632D+01 -.234693288803D-06
+ .988515125246D+00 .387875000000D+03 .747051730457D+00 -.805890711440D-08
+ .950039572962D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .304000000000D+03
+ .100818000000D+06 .400000000000D+01
+29 06 1 2 6 0 0.0 .482961535454D-03 .147792889038D-10 .000000000000D+00
+ .105000000000D+03 .448750000000D+02 .438625413366D-08 -.192190548575D+01
+ .256672501564D-05 .927749020048D-02 .629574060440D-06 .515368354034D+04
+ .108000000000D+06 -.199303030968D-06 -.126161968698D+01 .221654772759D-06
+ .985252510716D+00 .382531250000D+03 -.101231346840D+01 -.826677291570D-08
+ .115361948145D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .361000000000D+03
+ .100818000000D+06 .400000000000D+01
+19 06 1 2 6 0 0.0 -.244113616645D-04 .682121026330D-12 .000000000000D+00
+ .161000000000D+03 .621875000000D+01 .502163774280D-08 -.199317728925D+01
+ .469386577606D-06 .311319215689D-02 .523030757904D-05 .515376325607D+04
+ .108000000000D+06 .726431608200D-07 .195031265869D+01 .968575477600D-07
+ .958006694310D+00 .276593750000D+03 -.136278821538D+01 -.817569769348D-08
+ .835749098019D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.144354999065D-07 .673000000000D+03
+ .101328000000D+06 .400000000000D+01
+ 5 06 1 2 6 0 0.0 .450429972261D-03 .238742359215D-10 .000000000000D+00
+ .780000000000D+02 -.391562500000D+02 .484627329531D-08 -.466946176765D+00
+ -.206567347050D-05 .678542675450D-02 .111162662506D-04 .515368849945D+04
+ .108000000000D+06 .223517417908D-07 .763929126680D+00 .987201929092D-07
+ .937446521782D+00 .153031250000D+03 .103940317243D+01 -.815319675623D-08
+ .429660754238D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .334000000000D+03
+ .103278000000D+06 .400000000000D+01
+30 06 1 2 6 0 0.0 .969925895333D-05 .579802872380D-11 .000000000000D+00
+ .138000000000D+03 -.319062500000D+02 .468376652625D-08 -.119139631736D+01
+ -.167638063431D-05 .871389149688D-02 .109765678644D-04 .515361259842D+04
+ .108000000000D+06 .223517417908D-07 .809403437782D+00 .199303030968D-06
+ .944067150655D+00 .159156250000D+03 .129606818640D+01 -.805140680198D-08
+ .416088760338D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.838190317154D-08 .394000000000D+03
+ .105588000000D+06 .400000000000D+01
+ 1 06 1 2 6 0 0.0 .283555127680D-04 .250111042988D-11 .000000000000D+00
+ .194000000000D+03 .109375000000D+02 .430303638159D-08 .234119574703D+01
+ .512227416038D-06 .631711527239D-02 -.353902578354D-06 .515367572975D+04
+ .108000000000D+06 .949949026108D-07 -.121364948695D+01 -.100582838059D-06
+ .986143743817D+00 .398437500000D+03 -.172090525957D+01 -.819569852660D-08
+ -.321441960777D-11 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.325962901115D-08 .450000000000D+03
+ .105708000000D+06 .400000000000D+01
+25 06 1 2 6 0 0.0 -.918647274375D-04 -.123350218928D-09 .277555756156D-16
+ .310000000000D+02 -.151750000000D+03 .466233706220D-08 .125115982125D+01
+ -.826828181744D-05 .123826952186D-01 .596046447754D-05 .515367542839D+04
+ .108000000000D+06 -.614672899246D-07 -.293925347262D+00 -.311061739922D-06
+ .952337567837D+00 .262437500000D+03 -.140869021936D+01 -.832320383771D-08
+ -.332513850537D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .630000000000D+02 -.745058059692D-08 .310000000000D+02
+ .107208000000D+06 .400000000000D+01
+11 06 1 2 5 59 44.0 .295898877084D-03 .306954461848D-11 .000000000000D+00
+ .147000000000D+03 -.703125000000D+01 .603953728526D-08 .142370463915D+01
+ -.435858964920D-06 .516475480981D-02 .860169529915D-05 .515369126320D+04
+ .107984000000D+06 .242143869400D-07 .280093860442D+01 .838190317154D-07
+ .899170313298D+00 .179500000000D+03 .314686646156D+00 -.867000399761D-08
+ -.657527388655D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .147000000000D+03
+ .107508000000D+06 .400000000000D+01
+ 1 06 1 2 8 0 0.0 .283732078969D-04 .250111042988D-11 .000000000000D+00
+ .195000000000D+03 .203437500000D+02 .427660670926D-08 -.289187927273D+01
+ .107660889625D-05 .631519965828D-02 .189989805222D-06 .515367939568D+04
+ .115200000000D+06 .199303030968D-06 -.121370910232D+01 .502914190292D-07
+ .986143897423D+00 .387843750000D+03 -.172083819063D+01 -.822319967213D-08
+ .110361739867D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.325962901115D-08 .195000000000D+03
+ .108018000000D+06 .400000000000D+01
+ 5 06 1 2 8 0 0.0 .450601801276D-03 .238742359215D-10 .000000000000D+00
+ .790000000000D+02 -.504062500000D+02 .487806033365D-08 .583159733595D+00
+ -.256858766079D-05 .678427296225D-02 .112429261208D-04 .515368636704D+04
+ .115200000000D+06 -.651925802231D-07 .763870899615D+00 .763684511185D-07
+ .937449504672D+00 .151250000000D+03 .103947274443D+01 -.811748098281D-08
+ .368229623956D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .335000000000D+03
+ .108018000000D+06 .400000000000D+01
+ 9 06 1 2 8 0 0.0 .194739550352D-05 .147792889038D-11 .000000000000D+00
+ .360000000000D+02 -.161031250000D+03 .454483216764D-08 .157639287059D+01
+ -.860914587975D-05 .174418528331D-01 .549107789993D-05 .515366417122D+04
+ .115200000000D+06 -.249594449997D-06 -.240392367593D+00 -.290572643280D-06
+ .959051002769D+00 .279343750000D+03 .121157638135D+01 -.829034532616D-08
+ -.295012288446D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.558793544769D-08 .360000000000D+02
+ .108018000000D+06 .400000000000D+01
+11 06 1 2 8 0 0.0 .295920763165D-03 .306954461848D-11 .000000000000D+00
+ .148000000000D+03 -.150625000000D+02 .592917554539D-08 .247602228708D+01
+ -.739470124245D-06 .516426912509D-02 .860914587975D-05 .515369338036D+04
+ .115200000000D+06 -.782310962677D-07 .280087581305D+01 .186264514923D-07
+ .899166103020D+00 .179250000000D+03 .314883225773D+00 -.858857203421D-08
+ -.583238579942D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .148000000000D+03
+ .108018000000D+06 .400000000000D+01
+14 06 1 2 8 0 0.0 -.215964391828D-04 .568434188608D-12 .000000000000D+00
+ .201000000000D+03 .267812500000D+02 .432089426830D-08 -.200764371309D+01
+ .150129199028D-05 .238199008163D-02 .244006514549D-06 .515360146141D+04
+ .115200000000D+06 .130385160446D-07 -.124101740874D+01 .894069671631D-07
+ .984549925291D+00 .386656250000D+03 -.200145547599D+01 -.827463038586D-08
+ .168935608275D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-08 .457000000000D+03
+ .108018000000D+06 .400000000000D+01
+15 06 1 2 8 0 0.0 .543580856174D-03 .579802872380D-11 .000000000000D+00
+ .620000000000D+02 .125000000000D+00 .442375569575D-08 .203872305220D+01
+ .109896063805D-06 .926290557254D-02 .101979821920D-04 .515372120476D+04
+ .115200000000D+06 -.167638063431D-07 .301400870789D+01 .106170773506D-06
+ .958976568035D+00 .180906250000D+03 .253855379289D+01 -.774389399284D-08
+ -.680742641378D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .620000000000D+02
+ .108018000000D+06 .400000000000D+01
+18 06 1 2 8 0 0.0 -.212331768125D-03 -.238742359215D-11 .000000000000D+00
+ .640000000000D+02 .128437500000D+03 .442161274935D-08 .384747751820D+00
+ .676326453686D-05 .669171824120D-02 .916421413422D-05 .515365532684D+04
+ .115200000000D+06 .391155481338D-07 -.225339618034D+01 .126659870148D-06
+ .959630745501D+00 .204312500000D+03 -.269172221255D+01 -.804997817105D-08
+ .150006248362D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.102445483208D-07 .320000000000D+03
+ .108018000000D+06 .400000000000D+01
+22 06 1 2 8 0 0.0 .594719313085D-04 .227373675443D-11 .000000000000D+00
+ .410000000000D+02 .138343750000D+03 .438839708007D-08 -.133451009961D+01
+ .735744833946D-05 .499533768743D-02 .896677374840D-05 .515369189072D+04
+ .115200000000D+06 -.447034835815D-07 -.224494482214D+01 .122934579849D-06
+ .957126070291D+00 .207031250000D+03 -.156299261998D+01 -.802426281418D-08
+ .188936441390D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.181607902050D-07 .297000000000D+03
+ .108018000000D+06 .400000000000D+01
+25 06 1 2 8 0 0.0 -.927518121898D-04 -.123009158415D-09 .277555756156D-16
+ .320000000000D+02 -.146375000000D+03 .462769276198D-08 .230118818232D+01
+ -.752881169319D-05 .123826419003D-01 .487454235554D-05 .515367889023D+04
+ .115200000000D+06 .139698386192D-06 -.293983814246D+00 -.122934579849D-06
+ .952335965941D+00 .275531250000D+03 -.140853972752D+01 -.809140846821D-08
+ -.380730144653D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .630000000000D+02 -.745058059692D-08 .320000000000D+02
+ .108018000000D+06 .400000000000D+01
+30 06 1 2 8 0 0.0 .974116846919D-05 .579802872380D-11 .000000000000D+00
+ .139000000000D+03 -.457812500000D+02 .479984278986D-08 -.141284071106D+00
+ -.231899321079D-05 .871225737501D-02 .110063701868D-04 .515360904121D+04
+ .115200000000D+06 -.596046447754D-07 .809344847913D+00 .987201929092D-07
+ .944069941903D+00 .158781250000D+03 .129617669688D+01 -.813105297671D-08
+ .432160858377D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.838190317154D-08 .395000000000D+03
+ .108018000000D+06 .400000000000D+01
+20 06 1 2 8 0 0.0 -.363956205547D-04 .102318153950D-11 .000000000000D+00
+ .191000000000D+03 .143906250000D+03 .435911014586D-08 .195480222262D+00
+ .723078846932D-05 .252444553189D-02 .865757465363D-05 .515357708931D+04
+ .115200000000D+06 -.931322574616D-08 -.230616783696D+01 .130385160446D-07
+ .959293128878D+00 .213562500000D+03 .135269821045D+01 -.800783355841D-08
+ .125719522437D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .191000000000D+03
+ .112908000000D+06 .400000000000D+01
+ 1 06 1 2 7 59 44.0 .283713452518D-04 .238742359215D-11 .000000000000D+00
+ .216000000000D+03 .203437500000D+02 .427660670926D-08 -.289421514183D+01
+ .107660889625D-05 .631519313902D-02 .189989805222D-06 .515367937660D+04
+ .115184000000D+06 .199303030968D-06 -.121370897798D+01 .502914190292D-07
+ .986143904738D+00 .387843750000D+03 -.172083594798D+01 -.822319967213D-08
+ .110361739867D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.325962901115D-08 .216000000000D+03
+ .113778000000D+06 .400000000000D+01
+ 1 06 1 2 9 59 44.0 .283890403807D-04 .238742359215D-11 .000000000000D+00
+ .217000000000D+03 .333750000000D+02 .425839166482D-08 -.184426559839D+01
+ .191852450371D-05 .631606590468D-02 .249594449997D-06 .515367632675D+04
+ .122384000000D+06 .707805156708D-07 -.121376840756D+01 .124797224999D-06
+ .986145237456D+00 .385687500000D+03 -.172060927321D+01 -.818676958324D-08
+ .195365280605D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.325962901115D-08 .217000000000D+03
+ .115218000000D+06 .400000000000D+01
+ 5 06 1 2 10 0 0.0 .450773630291D-03 .238742359215D-10 .000000000000D+00
+ .800000000000D+02 -.642500000000D+02 .477162732886D-08 .163302759207D+01
+ -.337511301041D-05 .678589532618D-02 .119768083096D-04 .515369124603D+04
+ .122400000000D+06 -.176951289177D-06 .763812159065D+00 -.223517417908D-07
+ .937452629465D+00 .136656250000D+03 .103977837874D+01 -.802926302246D-08
+ .444661379074D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .336000000000D+03
+ .115218000000D+06 .400000000000D+01
+14 06 1 2 10 0 0.0 -.215927138925D-04 .568434188608D-12 .000000000000D+00
+ .202000000000D+03 .401875000000D+02 .439911181209D-08 -.958359431654D+00
+ .219605863094D-05 .238208309747D-02 .799074769020D-06 .515359725761D+04
+ .122400000000D+06 -.745058059692D-07 -.124107704606D+01 .912696123123D-07
+ .984550949333D+00 .377125000000D+03 -.200051422426D+01 -.832427531091D-08
+ .173221501085D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.931322574616D-08 .458000000000D+03
+ .115218000000D+06 .400000000000D+01
+20 06 1 2 10 0 0.0 -.363877043128D-04 .102318153950D-11 .000000000000D+00
+ .192000000000D+03 .128250000000D+03 .418874590665D-08 .124504247715D+01
+ .669434666634D-05 .252633506898D-02 .892952084541D-05 .515358189774D+04
+ .122400000000D+06 -.428408384323D-07 -.230622557834D+01 -.149011611938D-07
+ .959294141217D+00 .204281250000D+03 .135337279270D+01 -.798533262116D-08
+ .145363197818D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .192000000000D+03
+ .115218000000D+06 .400000000000D+01
+22 06 1 2 10 0 0.0 .594877637923D-04 .227373675443D-11 .000000000000D+00
+ .420000000000D+02 .136750000000D+03 .436696761602D-08 -.284483101977D+00
+ .706501305103D-05 .499566842336D-02 .951066613197D-05 .515369134331D+04
+ .122400000000D+06 -.100582838059D-06 -.224500291901D+01 .465661287308D-07
+ .957127345956D+00 .196062500000D+03 -.156284961389D+01 -.806212153401D-08
+ .188222125921D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.181607902050D-07 .298000000000D+03
+ .115218000000D+06 .400000000000D+01
+25 06 1 2 10 0 0.0 -.936365686357D-04 -.122668097902D-09 .277555756156D-16
+ .330000000000D+02 -.149593750000D+03 .473876881731D-08 -.293177731901D+01
+ -.753439962864D-05 .123842477333D-01 .442564487457D-05 .515367577362D+04
+ .122400000000D+06 .206753611565D-06 -.294043186776D+00 .111758708954D-06
+ .952333778879D+00 .287281250000D+03 -.140857900687D+01 -.811533803640D-08
+ -.191793703263D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .630000000000D+02 -.745058059692D-08 .330000000000D+02
+ .115218000000D+06 .400000000000D+01
+30 06 1 2 10 0 0.0 .978307798505D-05 .579802872380D-11 .000000000000D+00
+ .140000000000D+03 -.568125000000D+02 .473091134716D-08 .908775687115D+00
+ -.288523733616D-05 .871444318909D-02 .119190663099D-04 .515361391830D+04
+ .122400000000D+06 -.141561031342D-06 .809286322412D+00 .651925802231D-07
+ .944072986235D+00 .142781250000D+03 .129633833031D+01 -.810462330438D-08
+ .435375277985D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.838190317154D-08 .396000000000D+03
+ .115218000000D+06 .400000000000D+01
+16 06 1 2 10 0 0.0 .201538205147D-04 .159161572810D-11 .000000000000D+00
+ .610000000000D+02 -.401250000000D+02 .432053711057D-08 .154792028765D+01
+ -.209361314774D-05 .299536529928D-02 .110045075417D-04 .515363593102D+04
+ .122400000000D+06 .800937414169D-07 .851153596867D+00 -.372529029846D-07
+ .961882963475D+00 .163593750000D+03 -.950622047693D+00 -.775139430526D-08
+ .389659088008D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.977888703346D-08 .573000000000D+03
+ .115428000000D+06 .400000000000D+01
+16 06 1 2 9 59 44.0 .201547518372D-04 .159161572810D-11 .000000000000D+00
+ .850000000000D+02 -.401250000000D+02 .432053711057D-08 .154558789592D+01
+ -.209361314774D-05 .299536529928D-02 .110045075417D-04 .515363592148D+04
+ .122384000000D+06 .800937414169D-07 .851153703660D+00 -.372529029846D-07
+ .961882959086D+00 .163593750000D+03 -.950623371633D+00 -.775139430526D-08
+ .389659088008D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .850000000000D+02
+ .116088000000D+06 .400000000000D+01
+ 6 06 1 2 10 0 0.0 .176307745278D-03 .442241798737D-10 .000000000000D+00
+ .450000000000D+02 .131562500000D+02 .553701635324D-08 .291349471390D+01
+ .614672899246D-06 .597203441430D-02 .543147325516D-05 .515361996079D+04
+ .122400000000D+06 .596046447754D-07 .186072203847D+01 -.540167093277D-07
+ .933484726037D+00 .257656250000D+03 -.186148467522D+01 -.833320425426D-08
+ .160006664920D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .450000000000D+02
+ .116478000000D+06 .400000000000D+01
+23 06 1 2 10 0 0.0 .156342517585D-03 -.170530256582D-11 .000000000000D+00
+ .000000000000D+00 .324062500000D+02 .471305346045D-08 -.921121279119D+00
+ .148266553879D-05 .417950109113D-02 .325962901115D-06 .515360724068D+04
+ .122400000000D+06 .372529029846D-07 -.125211671450D+01 -.223517417908D-07
+ .966780839537D+00 .377500000000D+03 .242404217593D+01 -.856499962376D-08
+ .192508018732D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.214204192162D-07 .256000000000D+03
+ .117948000000D+06 .400000000000D+01
+16 06 1 2 11 59 44.0 .201659277081D-04 .159161572810D-11 .000000000000D+00
+ .860000000000D+02 -.474687500000D+02 .441768401427D-08 .259599058262D+01
+ -.219047069550D-05 .299506692681D-02 .113975256681D-04 .515363521957D+04
+ .129584000000D+06 .139698386192D-06 .851097551012D+00 .614672899246D-07
+ .961885860053D+00 .158968750000D+03 -.950822011039D+00 -.776532345689D-08
+ .458947688442D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .860000000000D+02
+ .122418000000D+06 .400000000000D+01
+ 1 06 1 2 12 0 0.0 .284067355096D-04 .238742359215D-11 .000000000000D+00
+ .218000000000D+03 .387500000000D+02 .434268089009D-08 -.791884031183D+00
+ .211782753468D-05 .631629966665D-02 .841915607452D-06 .515367491150D+04
+ .129600000000D+06 -.156462192535D-06 -.121382848668D+01 .540167093277D-07
+ .986145607574D+00 .379406250000D+03 -.172047830254D+01 -.842427947648D-08
+ .215723271454D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.325962901115D-08 .218000000000D+03
+ .122418000000D+06 .400000000000D+01
+ 6 06 1 2 12 0 0.0 .176626257598D-03 .442241798737D-10 .000000000000D+00
+ .460000000000D+02 .144687500000D+02 .554487382339D-08 -.231949123902D+01
+ .696629285812D-06 .597216573078D-02 .536628067493D-05 .515361965370D+04
+ .129600000000D+06 .856816768646D-07 .186066188036D+01 -.204890966415D-07
+ .933485994387D+00 .258812500000D+03 -.186146284117D+01 -.834070456668D-08
+ .185007706314D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .460000000000D+02
+ .122418000000D+06 .400000000000D+01
+14 06 1 2 12 0 0.0 -.215889886022D-04 .568434188608D-12 .000000000000D+00
+ .203000000000D+03 .476250000000D+02 .435232414891D-08 .921027665528D-01
+ .231899321079D-05 .238301919308D-02 .679865479469D-06 .515359930611D+04
+ .129600000000D+06 -.521540641785D-07 -.124113774107D+01 -.223517417908D-07
+ .984552061151D+00 .380093750000D+03 -.200075034509D+01 -.841392190219D-08
+ .224295057075D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.931322574616D-08 .459000000000D+03
+ .122418000000D+06 .400000000000D+01
+20 06 1 2 12 0 0.0 -.363802537322D-04 .102318153950D-11 .000000000000D+00
+ .193000000000D+03 .123906250000D+03 .416374486526D-08 .229629940561D+01
+ .651553273201D-05 .252719898708D-02 .100545585156D-04 .515357680321D+04
+ .129600000000D+06 .819563865662D-07 -.230628263361D+01 -.186264514923D-08
+ .959295753353D+00 .184843750000D+03 .135235153544D+01 -.786068457192D-08
+ .142863093678D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .193000000000D+03
+ .122418000000D+06 .400000000000D+01
+23 06 1 2 12 0 0.0 .156330410391D-03 -.170530256582D-11 .000000000000D+00
+ .100000000000D+01 .422812500000D+02 .465340811884D-08 .129156701129D+00
+ .217184424400D-05 .417853822000D-02 .273808836937D-06 .515360572624D+04
+ .129600000000D+06 -.149011611938D-07 -.125217854180D+01 .000000000000D+00
+ .966782463376D+00 .374062500000D+03 .242398670208D+01 -.854285584424D-08
+ .235366946835D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.214204192162D-07 .257000000000D+03
+ .122418000000D+06 .400000000000D+01
+25 06 1 2 12 0 0.0 -.945185311139D-04 -.122327037389D-09 .277555756156D-16
+ .340000000000D+02 -.144187500000D+03 .480770026001D-08 -.188163582756D+01
+ -.712834298611D-05 .123848350486D-01 .452809035778D-05 .515367432785D+04
+ .129600000000D+06 .124797224999D-06 -.294101465044D+00 .318512320519D-06
+ .952331840512D+00 .286468750000D+03 -.140853891560D+01 -.825070081766D-08
+ -.231081054025D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .630000000000D+02 -.745058059692D-08 .340000000000D+02
+ .122418000000D+06 .400000000000D+01
+13 06 1 2 12 0 0.0 .326191075146D-04 .227373675443D-11 .000000000000D+00
+ .350000000000D+02 .298437500000D+02 .409767068443D-08 .912262224663D+00
+ .139698386192D-05 .257323856931D-02 .631436705589D-06 .515360926247D+04
+ .129600000000D+06 .745058059692D-08 -.122876912712D+01 .968575477600D-07
+ .990328669678D+00 .379718750000D+03 .109516888255D+01 -.828427364468D-08
+ .182864759908D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .291000000000D+03
+ .122958000000D+06 .400000000000D+01
+ 3 06 1 2 12 0 0.0 .634044408798D-04 .295585778076D-11 .000000000000D+00
+ .144000000000D+03 .173437500000D+02 .584845789746D-08 -.219508258189D+00
+ .918284058571D-06 .777813117020D-02 .555999577045D-05 .515364999580D+04
+ .129600000000D+06 .223517417908D-07 .180318261919D+01 .763684511185D-07
+ .925959503233D+00 .250093750000D+03 .656577795912D+00 -.872679207735D-08
+ .173935816554D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .144000000000D+03
+ .123738000000D+06 .400000000000D+01
+19 06 1 2 12 0 0.0 -.243992544711D-04 .682121026330D-12 .000000000000D+00
+ .189000000000D+03 .906250000000D+01 .502199490053D-08 .115740646763D+01
+ .271946191788D-06 .311399856582D-02 .559166073799D-05 .515376514053D+04
+ .129600000000D+06 -.353902578354D-07 .195013459962D+01 -.819563865662D-07
+ .958007740296D+00 .271031250000D+03 -.136298508466D+01 -.822105672573D-08
+ .350014579512D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.144354999065D-07 .189000000000D+03
+ .127998000000D+06 .400000000000D+01
+27 06 1 2 12 0 0.0 .298162922263D-04 .159161572810D-11 .000000000000D+00
+ .122000000000D+03 -.152125000000D+03 .452233123039D-08 .283803702779D+01
+ -.794418156147D-05 .196319792885D-01 .540353357792D-05 .515372489548D+04
+ .129600000000D+06 .968575477600D-07 -.262964200235D+00 -.301748514175D-06
+ .956877624377D+00 .273312500000D+03 -.197958785408D+01 -.789318592573D-08
+ -.239295681911D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.465661287308D-08 .890000000000D+03
+ .128358000000D+06 .400000000000D+01
+ 3 06 1 2 14 0 0.0 .634258612990D-04 .295585778076D-11 .000000000000D+00
+ .145000000000D+03 .189062500000D+02 .590024576892D-08 .830667143706D+00
+ .124424695969D-05 .777840788942D-02 .579096376896D-05 .515365062714D+04
+ .136800000000D+06 .372529029846D-08 .180311985415D+01 .745058059692D-07
+ .925960739399D+00 .247375000000D+03 .656607506315D+00 -.872072039587D-08
+ .164292557730D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .145000000000D+03
+ .129618000000D+06 .400000000000D+01
+13 06 1 2 14 0 0.0 .326354056597D-04 .227373675443D-11 .000000000000D+00
+ .360000000000D+02 .467812500000D+02 .406802659249D-08 .196345768715D+01
+ .246800482273D-05 .257290655281D-02 .102072954178D-05 .515360447121D+04
+ .136800000000D+06 -.521540641785D-07 -.122882883173D+01 -.149011611938D-07
+ .990330605119D+00 .373406250000D+03 .109419225306D+01 -.819069831832D-08
+ .246081678861D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .292000000000D+03
+ .129618000000D+06 .400000000000D+01
+16 06 1 2 14 0 0.0 .201771035790D-04 .159161572810D-11 .000000000000D+00
+ .870000000000D+02 -.517500000000D+02 .438232539859D-08 -.263487147073D+01
+ -.254064798355D-05 .299395364709D-02 .120401382446D-04 .515363732529D+04
+ .136800000000D+06 -.130385160446D-07 .851041199408D+00 .875443220139D-07
+ .961889824561D+00 .147437500000D+03 -.950609023333D+00 -.769924927606D-08
+ .562523431359D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .870000000000D+02
+ .129618000000D+06 .400000000000D+01
+19 06 1 2 14 0 0.0 -.243945978582D-04 .682121026330D-12 .000000000000D+00
+ .190000000000D+03 .896875000000D+01 .511092717635D-08 .220761869117D+01
+ .530853867531D-06 .311394094024D-02 .534392893314D-05 .515376466942D+04
+ .136800000000D+06 .353902578354D-07 .195007570400D+01 -.689178705216D-07
+ .958008202578D+00 .268812500000D+03 -.136306815792D+01 -.817034032747D-08
+ .335728270144D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.144354999065D-07 .190000000000D+03
+ .129618000000D+06 .400000000000D+01
+23 06 1 2 14 0 0.0 .156318303198D-03 -.170530256582D-11 .000000000000D+00
+ .200000000000D+01 .510625000000D+02 .461876381862D-08 .117939579116D+01
+ .263378024101D-05 .417756440584D-02 .622123479843D-06 .515360418701D+04
+ .136800000000D+06 .372529029846D-07 -.125223986879D+01 .000000000000D+00
+ .966784423686D+00 .369343750000D+03 .242397209630D+01 -.848642492223D-08
+ .236438420038D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.214204192162D-07 .258000000000D+03
+ .129618000000D+06 .400000000000D+01
+25 06 1 2 14 0 0.0 -.953981652856D-04 -.121985976875D-09 .277555756156D-16
+ .290000000000D+02 -.145687500000D+03 .492770525870D-08 -.831520807608D+00
+ -.758282840252D-05 .123848683434D-01 .519864261150D-05 .515367276382D+04
+ .136800000000D+06 -.197440385819D-06 -.294163162151D+00 .670552253723D-07
+ .952328822512D+00 .279968750000D+03 -.140846958645D+01 -.863178812005D-08
+ -.153220667970D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .630000000000D+02 -.745058059692D-08 .285000000000D+03
+ .129618000000D+06 .400000000000D+01
+27 06 1 2 14 0 0.0 .298283994198D-04 .159161572810D-11 .000000000000D+00
+ .123000000000D+03 -.153093750000D+03 .449483008486D-08 -.239502546062D+01
+ -.805966556072D-05 .196334037464D-01 .438466668129D-05 .515372209930D+04
+ .136800000000D+06 .294297933578D-06 -.263022734513D+00 -.242143869400D-07
+ .956876669091D+00 .284437500000D+03 -.197955962415D+01 -.795747431789D-08
+ .189293599124D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.465661287308D-08 .379000000000D+03
+ .129618000000D+06 .400000000000D+01
+15 06 1 2 14 0 0.0 .543707516044D-03 .579802872380D-11 .000000000000D+00
+ .880000000000D+02 .106562500000D+02 .447375777854D-08 -.109399061321D+01
+ .391155481339D-06 .926354620606D-02 .101886689663D-04 .515371965027D+04
+ .136800000000D+06 -.894069671631D-07 .301383981693D+01 -.838190317154D-07
+ .958961511682D+00 .184125000000D+03 .253853824792D+01 -.791461538978D-08
+ -.611811198678D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .880000000000D+02
+ .131358000000D+06 .400000000000D+01
+ 8 06 1 2 13 59 44.0 -.521265901625D-04 -.136424205266D-11 .000000000000D+00
+ .200000000000D+01 -.143187500000D+03 .424767693279D-08 -.122105682050D+01
+ -.776723027229D-05 .958898570389D-02 .682286918163D-05 .515368349266D+04
+ .136784000000D+06 -.465661287308D-07 -.163241160701D+00 -.132247805595D-06
+ .971629611290D+00 .256031250000D+03 .262190592331D+01 -.811605235187D-08
+ -.121433629627D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.372529029846D-08 .200000000000D+01
+ .133188000000D+06 .400000000000D+01
+28 06 1 2 14 0 0.0 .358745455742D-04 -.682121026330D-12 .000000000000D+00
+ .206000000000D+03 -.387812500000D+02 .432910889619D-08 .270790543659D+01
+ -.205822288990D-05 .107730849413D-01 .116061419249D-04 .515366469002D+04
+ .136800000000D+06 .111758708954D-07 .860832365283D+00 -.186264514923D-06
+ .959924162980D+00 .155468750000D+03 -.230410147249D+01 -.759710216409D-08
+ .505735351622D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.102445483208D-07 .206000000000D+03
+ .136098000000D+06 .400000000000D+01
+11 06 1 2 14 0 0.0 .295986421406D-03 .306954461848D-11 .000000000000D+00
+ .151000000000D+03 -.225625000000D+02 .614775607872D-08 -.657285674175D+00
+ -.128895044327D-05 .516542093828D-02 .763125717640D-05 .515368672752D+04
+ .136800000000D+06 .154599547386D-06 .280069012924D+01 .111758708954D-07
+ .899152473013D+00 .199937500000D+03 .315547703646D+00 -.879500920458D-08
+ -.736816405647D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .151000000000D+03
+ .136248000000D+06 .400000000000D+01
+ 3 06 1 2 16 0 0.0 .634477473795D-04 .295585778076D-11 .000000000000D+00
+ .146000000000D+03 .218437500000D+02 .593274712273D-08 .188091416276D+01
+ .113062560558D-05 .777847087011D-02 .600144267082D-05 .515365005302D+04
+ .144000000000D+06 -.182539224625D-06 .180305655661D+01 .372529029846D-07
+ .925962566583D+00 .247218750000D+03 .656566086716D+00 -.862250201896D-08
+ .287869133762D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.419095158577D-08 .146000000000D+03
+ .136818000000D+06 .400000000000D+01
+ 8 06 1 2 16 0 0.0 -.521368347108D-04 -.136424205266D-11 .000000000000D+00
+ .300000000000D+01 -.138875000000D+03 .428053544434D-08 -.168729956189D+00
+ -.737980008125D-05 .958765391260D-02 .574067234993D-05 .515367940903D+04
+ .144000000000D+06 .141561031342D-06 -.163299237086D+00 -.147148966789D-06
+ .971628986625D+00 .272156250000D+03 .262208725639D+01 -.819534136886D-08
+ -.134291308058D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.372529029846D-08 .300000000000D+01
+ .136818000000D+06 .400000000000D+01
+11 06 1 2 16 0 0.0 .296008307487D-03 .306954461848D-11 .000000000000D+00
+ .146000000000D+03 -.204062500000D+02 .625347476804D-08 .392886478579D+00
+ -.104308128357D-05 .516571011394D-02 .725686550140D-05 .515368725777D+04
+ .144000000000D+06 .745058059692D-07 .280062656838D+01 .633299350738D-07
+ .899146912461D+00 .201187500000D+03 .315560594880D+00 -.884429697190D-08
+ -.750388399546D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .402000000000D+03
+ .136818000000D+06 .400000000000D+01
+13 06 1 2 16 0 0.0 .326517038047D-04 .227373675443D-11 .000000000000D+00
+ .370000000000D+02 .527500000000D+02 .402231040252D-08 .301352172880D+01
+ .273995101452D-05 .257216522004D-02 .985339283943D-06 .515360602570D+04
+ .144000000000D+06 -.353902578354D-07 -.122888776978D+01 -.204890966415D-07
+ .990332407434D+00 .375718750000D+03 .109434767495D+01 -.818569811004D-08
+ .248581783001D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.116415321827D-07 .293000000000D+03
+ .136818000000D+06 .400000000000D+01
+15 06 1 2 16 0 0.0 .543749425560D-03 .579802872380D-11 .000000000000D+00
+ .890000000000D+02 .412500000000D+01 .452197407266D-08 -.438482908230D-01
+ .000000000000D+00 .926414236892D-02 .101234763861D-04 .515372050858D+04
+ .144000000000D+06 .931322574615D-07 .301378337169D+01 -.137835741043D-06
+ .958956423653D+00 .186187500000D+03 .253854836692D+01 -.799211861811D-08
+ -.751102715014D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.232830643654D-08 .890000000000D+02
+ .136818000000D+06 .400000000000D+01
+19 06 1 2 16 0 0.0 -.243899412453D-04 .682121026330D-12 .000000000000D+00
+ .191000000000D+03 .105312500000D+02 .519378777068D-08 -.302547733902D+01
+ .743195414543D-06 .311388226692D-02 .561401247978D-05 .515376486588D+04
+ .144000000000D+06 .968575477600D-07 .195001616762D+01 .633299350738D-07
+ .958008765802D+00 .268687500000D+03 -.136302737908D+01 -.819284126472D-08
+ .150006248362D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.144354999065D-07 .191000000000D+03
+ .136818000000D+06 .400000000000D+01
+27 06 1 2 16 0 0.0 .298400409520D-04 .159161572810D-11 .000000000000D+00
+ .124000000000D+03 -.132031250000D+03 .463590738986D-08 -.134501029360D+01
+ -.643171370029D-05 .196345120203D-01 .441819429398D-05 .515371661568D+04
+ .144000000000D+06 .389292836189D-06 -.263079522067D+00 .424683094025D-06
+ .956875096454D+00 .285500000000D+03 -.197942215374D+01 -.828748806429D-08
+ -.159649507186D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.465661287308D-08 .380000000000D+03
+ .136818000000D+06 .400000000000D+01
+28 06 1 2 16 0 0.0 .358698889613D-04 -.682121026330D-12 .000000000000D+00
+ .207000000000D+03 -.513750000000D+02 .438411118726D-08 -.252508003503D+01
+ -.277161598206D-05 .107747344300D-01 .115651637316D-04 .515366166305D+04
+ .144000000000D+06 .184401869774D-06 .860777031870D+00 -.126659870148D-06
+ .959927889033D+00 .154562500000D+03 -.230411445735D+01 -.764889003554D-08
+ .607882463602D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.102445483208D-07 .207000000000D+03
+ .136818000000D+06 .400000000000D+01
+29 06 1 2 16 0 0.0 .483493320644D-03 .147792889038D-10 .000000000000D+00
+ .110000000000D+03 .489062500000D+02 .408088427092D-08 -.295463248524D+01
+ .257603824139D-05 .927764910739D-02 .441446900368D-06 .515369010544D+04
+ .144000000000D+06 .298023223877D-07 -.126192125437D+01 .169500708580D-06
+ .985259655608D+00 .379781250000D+03 -.101191010532D+01 -.810748056625D-08
+ .247153152064D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.651925802231D-08 .366000000000D+03
+ .139158000000D+06 .400000000000D+01
+26 06 1 2 16 0 0.0 -.796886160970D-05 -.738964445190D-11 .000000000000D+00
+ .530000000000D+02 .409062500000D+02 .412981488051D-08 .136316801525D+01
+ .206008553505D-05 .167656581616D-01 .122934579849D-05 .515365254211D+04
+ .144000000000D+06 -.201165676117D-06 -.122771270277D+01 .193715095520D-06
+ .988519957264D+00 .372250000000D+03 .747132294819D+00 -.841213611352D-08
+ .417874549009D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.605359673500D-08 .309000000000D+03
+ .140868000000D+06 .400000000000D+01
+17 06 1 2 16 0 0.0 .168634578586D-04 .103455022327D-10 .000000000000D+00
+ .380000000000D+02 .176562500000D+02 .502378068920D-08 -.240658863576D+01
+ .923871994019D-06 .175957055762D-02 .601634383202D-05 .515362870789D+04
+ .144000000000D+06 -.577419996262D-07 .189005158565D+01 -.167638063431D-07
+ .959955078828D+00 .262593750000D+03 .268163244169D+01 -.813248160764D-08
+ .198579700213D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .380000000000D+02
+ .141438000000D+06 .400000000000D+01
+24 06 1 2 15 59 44.0 .742301344871D-04 .295585778076D-11 .000000000000D+00
+ .220000000000D+02 -.825000000000D+01 .456911889357D-08 .578005048116D+00
+ -.642612576485D-06 .902573240455D-02 .960566103458D-05 .515375520897D+04
+ .143984000000D+06 .745058059692D-08 .298974355342D+01 -.160187482834D-06
+ .962141638113D+00 .198750000000D+03 -.996135548907D+00 -.807176479283D-08
+ -.801461955536D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-09 .534000000000D+03
+ .143898000000D+06 .400000000000D+01
+ 8 06 1 2 18 0 0.0 -.521466135979D-04 -.136424205266D-11 .000000000000D+00
+ .400000000000D+01 -.146218750000D+03 .420588947789D-08 .881453516626D+00
+ -.763125717640D-05 .958854367491D-02 .565499067307D-05 .515368094254D+04
+ .151200000000D+06 .255182385445D-06 -.163358164889D+00 -.931322574616D-08
+ .971628005006D+00 .275781250000D+03 .262207818337D+01 -.816426864599D-08
+ -.172507185617D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.372529029846D-08 .400000000000D+01
+ .144018000000D+06 .400000000000D+01
+11 06 1 2 18 0 0.0 .296030193567D-03 .306954461848D-11 .000000000000D+00
+ .147000000000D+03 -.147812500000D+02 .627919012490D-08 .144287523553D+01
+ -.560656189918D-06 .516648590565D-02 .784173607826D-05 .515368968010D+04
+ .151200000000D+06 .409781932831D-07 .280056293291D+01 .126659870148D-06
+ .899141496738D+00 .194187500000D+03 .315756306986D+00 -.882822487386D-08
+ -.735387774710D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .403000000000D+03
+ .144018000000D+06 .400000000000D+01
+17 06 1 2 18 0 0.0 .169374980032D-04 .102318153950D-10 .000000000000D+00
+ .390000000000D+02 .140937500000D+02 .510485549487D-08 -.135662387505D+01
+ .841915607452D-06 .175983447116D-02 .609830021858D-05 .515362776756D+04
+ .151200000000D+06 .391155481338D-07 .188999234771D+01 -.745058059692D-07
+ .959956478840D+00 .260906250000D+03 .268188069889D+01 -.820498462769D-08
+ .267153985179D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .390000000000D+02
+ .144018000000D+06 .400000000000D+01
+19 06 1 2 18 0 0.0 -.243852846324D-04 .682121026330D-12 .000000000000D+00
+ .186000000000D+03 .146875000000D+02 .522771775543D-08 -.197544180965D+01
+ .888481736183D-06 .311437260825D-02 .564940273762D-05 .515376379394D+04
+ .151200000000D+06 .223517417908D-07 .194995717106D+01 .968575477600D-07
+ .958009961006D+00 .269000000000D+03 -.136293230989D+01 -.819712715753D-08
+ .172150027882D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.144354999065D-07 .442000000000D+03
+ .144018000000D+06 .400000000000D+01
+24 06 1 2 18 0 0.0 .742515549064D-04 .295585778076D-11 .000000000000D+00
+ .230000000000D+02 -.543750000000D+01 .458733393801D-08 .163043680951D+01
+ -.327825546265D-06 .902569363825D-02 .893883407116D-05 .515375570106D+04
+ .151200000000D+06 .206753611565D-06 .298968633870D+01 -.409781932831D-07
+ .962136797317D+00 .199750000000D+03 -.996102236799D+00 -.783996942334D-08
+ -.833248993879D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-09 .535000000000D+03
+ .144018000000D+06 .400000000000D+01
+26 06 1 2 18 0 0.0 -.802194699645D-05 -.738964445190D-11 .000000000000D+00
+ .480000000000D+02 .546250000000D+02 .400909556635D-08 .241347348665D+01
+ .262074172497D-05 .167660377920D-01 .141561031342D-05 .515364892960D+04
+ .151200000000D+06 -.147148966789D-06 -.122777316225D+01 -.245869159698D-06
+ .988522530537D+00 .367906250000D+03 .747019587221D+00 -.803247744207D-08
+ .213223167315D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.605359673500D-08 .560000000000D+03
+ .144018000000D+06 .400000000000D+01
+27 06 1 2 18 0 0.0 .298516824842D-04 .159161572810D-11 .000000000000D+00
+ .125000000000D+03 -.132468750000D+03 .472483966568D-08 -.294878027311D+00
+ -.680424273014D-05 .196342568379D-01 .518560409546D-05 .515371559525D+04
+ .151200000000D+06 -.108033418655D-06 -.263141573200D+00 .322237610817D-06
+ .956872278874D+00 .281531250000D+03 -.197939765278D+01 -.870500545556D-08
+ -.130362572982D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .400000000000D+01 .000000000000D+00 -.465661287308D-08 .381000000000D+03
+ .144018000000D+06 .400000000000D+01
+28 06 1 2 18 0 0.0 .358652323484D-04 -.682121026330D-12 .000000000000D+00
+ .208000000000D+03 -.528125000000D+02 .432482300338D-08 -.147483786117D+01
+ -.268034636974D-05 .107741820393D-01 .117383897304D-04 .515366310692D+04
+ .151200000000D+06 .242143869400D-06 .860721907654D+00 .186264514923D-07
+ .959932447485D+00 .147906250000D+03 -.230417035399D+01 -.768639159763D-08
+ .627168981248D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.102445483208D-07 .208000000000D+03
+ .144018000000D+06 .400000000000D+01
+29 06 1 2 18 0 0.0 .483599957079D-03 .147792889038D-10 .000000000000D+00
+ .105000000000D+03 .625937500000D+02 .412731477637D-08 -.190467211328D+01
+ .353343784809D-05 .928004493471D-02 .170245766640D-05 .515368433380D+04
+ .151200000000D+06 -.139698386192D-06 -.126197980328D+01 .206753611565D-06
+ .985260878608D+00 .362437500000D+03 -.101170086853D+01 -.823034282682D-08
+ .242152943785D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.651925802231D-08 .617000000000D+03
+ .144018000000D+06 .400000000000D+01
+ 7 06 1 2 18 0 0.0 .461155083030D-03 .102318153950D-10 .000000000000D+00
+ .190000000000D+03 .186562500000D+02 .557630370400D-08 .292515223702D+01
+ .996515154839D-06 .132364525925D-01 .584498047829D-05 .515380697060D+04
+ .151200000000D+06 .195577740669D-06 .183375157397D+01 -.206753611565D-06
+ .935022162238D+00 .248906250000D+03 -.176765204900D+01 -.824927218673D-08
+ .270725562521D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.186264514923D-08 .190000000000D+03
+ .145428000000D+06 .400000000000D+01
+20 06 1 2 18 0 0.0 -.363569706678D-04 .102318153950D-11 .000000000000D+00
+ .190000000000D+03 .139906250000D+03 .420874673977D-08 -.835766683026D+00
+ .713765621185D-05 .252631632611D-02 .100601464510D-04 .515358198357D+04
+ .151200000000D+06 -.149011611938D-07 -.230645066438D+01 .316649675369D-07
+ .959294877065D+00 .183500000000D+03 .135193964793D+01 -.796426031484D-08
+ -.107147320259D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .446000000000D+03
+ .147078000000D+06 .400000000000D+01
+ 4 06 1 2 18 0 0.0 .105560757220D-03 .122781784739D-10 .000000000000D+00
+ .640000000000D+02 -.806250000000D+01 .489913263997D-08 -.110988904368D+00
+ -.525265932083D-06 .741885707248D-02 .892579555512D-05 .515375332642D+04
+ .151200000000D+06 .119209289551D-06 .295736258588D+01 .186264514923D-08
+ .951851144649D+00 .201843750000D+03 .114229267913D+00 -.818784105644D-08
+ -.756817238761D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .320000000000D+03
+ .148968000000D+06 .400000000000D+01
+ 9 06 1 2 18 0 0.0 .199023634195D-05 .147792889038D-11 .000000000000D+00
+ .630000000000D+02 -.125437500000D+03 .462876423518D-08 .544147611487D+00
+ -.672601163387D-05 .174430874176D-01 .501982867718D-05 .515365776825D+04
+ .151200000000D+06 -.230967998505D-06 -.240687874119D+00 -.204890966415D-07
+ .959043101549D+00 .285656250000D+03 .121158134064D+01 -.853821279369D-08
+ -.265011038773D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.558793544769D-08 .630000000000D+02
+ .149418000000D+06 .400000000000D+01
+ 4 06 1 2 20 0 0.0 .105649698526D-03 .122781784739D-10 .000000000000D+00
+ .650000000000D+02 -.303125000000D+01 .493270546698D-08 .939093005359D+00
+ .596046447754D-07 .741941144224D-02 .873580574989D-05 .515375459862D+04
+ .158400000000D+06 .726431608200D-07 .295730409696D+01 .819563865662D-07
+ .951845813776D+00 .202343750000D+03 .114282085108D+00 -.812390982202D-08
+ -.798961851397D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .321000000000D+03
+ .151218000000D+06 .400000000000D+01
+ 7 06 1 2 20 0 0.0 .461228191853D-03 .102318153950D-10 .000000000000D+00
+ .191000000000D+03 .214375000000D+02 .558308970095D-08 -.230794534387D+01
+ .119209289551D-05 .132367745973D-01 .572763383388D-05 .515380625534D+04
+ .158400000000D+06 .201165676117D-06 .183369111449D+01 .577419996262D-07
+ .935024969577D+00 .251156250000D+03 -.176763199093D+01 -.824784355579D-08
+ .467519474063D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.186264514923D-08 .191000000000D+03
+ .151218000000D+06 .400000000000D+01
+ 8 06 1 2 20 0 0.0 -.521568581462D-04 -.136424205266D-11 .000000000000D+00
+ .500000000000D+01 -.148000000000D+03 .415517307964D-08 .193161534849D+01
+ -.750273466110D-05 .958800280932D-02 .609271228313D-05 .515368101692D+04
+ .158400000000D+06 .186264514923D-07 -.163415111901D+00 .160187482834D-06
+ .971626705935D+00 .267687500000D+03 .262209043824D+01 -.798140388608D-08
+ -.338942689752D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.372529029846D-08 .500000000000D+01
+ .151218000000D+06 .400000000000D+01
+ 9 06 1 2 20 0 0.0 .200094655156D-05 .147792889038D-11 .000000000000D+00
+ .640000000000D+02 -.142375000000D+03 .447018620120D-08 .159420428734D+01
+ -.758841633797D-05 .174435361987D-01 .461749732494D-05 .515366209984D+04
+ .158400000000D+06 -.189989805222D-06 -.240749648761D+00 -.296160578728D-06
+ .959041786386D+00 .294343750000D+03 .121171561897D+01 -.837999191744D-08
+ -.206794328100D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.558793544769D-08 .640000000000D+02
+ .151218000000D+06 .400000000000D+01
+11 06 1 2 20 0 0.0 .296052079648D-03 .306954461848D-11 .000000000000D+00
+ .148000000000D+03 -.210625000000D+02 .621990194102D-08 .249290107893D+01
+ -.110082328320D-05 .516611791682D-02 .792369246483D-05 .515369136810D+04
+ .158400000000D+06 -.134110450745D-06 .280049899314D+01 .130385160446D-07
+ .899137140168D+00 .193718750000D+03 .315914142681D+00 -.868679041112D-08
+ -.607168148133D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .404000000000D+03
+ .151218000000D+06 .400000000000D+01
+17 06 1 2 20 0 0.0 .170115381479D-04 .102318153950D-10 .000000000000D+00
+ .400000000000D+02 .153750000000D+02 .513021369399D-08 -.306473796264D+00
+ .860542058945D-06 .175967451651D-02 .612996518612D-05 .515362740898D+04
+ .158400000000D+06 .298023223877D-07 .188993306881D+01 -.558793544769D-08
+ .959958642496D+00 .261718750000D+03 .268194408713D+01 -.820177020808D-08
+ .312513017422D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .400000000000D+02
+ .151218000000D+06 .400000000000D+01
+20 06 1 2 20 0 0.0 -.363495200872D-04 .102318153950D-11 .000000000000D+00
+ .191000000000D+03 .125406250000D+03 .431017953628D-08 .214212047089D+00
+ .651367008686D-05 .252397649456D-02 .961311161518D-05 .515357739830D+04
+ .158400000000D+06 -.279396772385D-07 -.230650796396D+01 .167638063431D-07
+ .959294092941D+00 .193250000000D+03 .135219728682D+01 -.796211736843D-08
+ -.117147736816D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .447000000000D+03
+ .151218000000D+06 .400000000000D+01
+24 06 1 2 20 0 0.0 .742729753256D-04 .295585778076D-11 .000000000000D+00
+ .240000000000D+02 .387500000000D+01 .464519349095D-08 .268041593461D+01
+ .476837158203D-06 .902492122259D-02 .952370464802D-05 .515375864220D+04
+ .158400000000D+06 .240281224251D-06 .298962953652D+01 .132247805595D-06
+ .962130906146D+00 .193375000000D+03 -.995950700430D+00 -.784211236974D-08
+ -.743245244862D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-09 .280000000000D+03
+ .151218000000D+06 .400000000000D+01
+28 06 1 2 20 0 0.0 .358605757356D-04 -.682121026330D-12 .000000000000D+00
+ .203000000000D+03 -.457187500000D+02 .444018495153D-08 -.424738696323D+00
+ -.223889946938D-05 .107739770319D-01 .123418867588D-04 .515366140747D+04
+ .158400000000D+06 -.242143869400D-07 .860665700878D+00 .197440385819D-06
+ .959935352841D+00 .143156250000D+03 -.230408226730D+01 -.800390482333D-08
+ .580024160334D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.102445483208D-07 .459000000000D+03
+ .151218000000D+06 .400000000000D+01
+ 2 06 1 2 20 0 0.0 -.231084413826D-04 .102318153950D-11 .000000000000D+00
+ .212000000000D+03 -.515625000000D+01 .494163441034D-08 -.141995206995D+01
+ -.195577740669D-06 .906724657398D-02 .901706516743D-05 .515362877846D+04
+ .158400000000D+06 -.197440385819D-06 .293751864781D+01 .428408384323D-07
+ .952251644806D+00 .201875000000D+03 .195623625099D+01 -.817534053575D-08
+ -.696100423948D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.172294676304D-07 .724000000000D+03
+ .153558000000D+06 .400000000000D+01
+ 5 06 1 2 20 0 0.0 .451629050076D-03 .236468622461D-10 .000000000000D+00
+ .105000000000D+03 -.596250000000D+02 .487806033365D-08 .600841734761D+00
+ -.330433249474D-05 .678599812090D-02 .113938003778D-04 .515368656349D+04
+ .158400000000D+06 -.614672899246D-07 .763522890422D+00 .577419996262D-07
+ .937469796808D+00 .149500000000D+03 .103965313101D+01 -.815748264904D-08
+ .427874965567D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .105000000000D+03
+ .155658000000D+06 .400000000000D+01
+ 2 06 1 2 22 0 0.0 -.231014564633D-04 .102318153950D-11 .000000000000D+00
+ .213000000000D+03 -.446875000000D+01 .501413743038D-08 -.369733440288D+00
+ -.121071934700D-06 .906719523482D-02 .903941690922D-05 .515362881088D+04
+ .165600000000D+06 -.502914190292D-07 .293745868426D+01 -.428408384323D-07
+ .952246786455D+00 .202812500000D+03 .195622957862D+01 -.827355891265D-08
+ -.596810573842D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.172294676304D-07 .725000000000D+03
+ .158418000000D+06 .400000000000D+01
+ 4 06 1 2 22 0 0.0 .105738174170D-03 .122781784739D-10 .000000000000D+00
+ .660000000000D+02 -.300000000000D+01 .495984945478D-08 .198905411463D+01
+ .540167093277D-07 .741955963895D-02 .954046845436D-05 .515375704765D+04
+ .165600000000D+06 -.409781932831D-07 .295724507260D+01 .210478901863D-06
+ .951840384887D+00 .193281250000D+03 .114455116132D+00 -.809140846821D-08
+ -.682528430049D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .322000000000D+03
+ .158418000000D+06 .400000000000D+01
+ 5 06 1 2 22 0 0.0 .451799016446D-03 .235331754084D-10 .000000000000D+00
+ .106000000000D+03 -.761562500000D+02 .467019453235D-08 .165066068789D+01
+ -.387430191040D-05 .678773643449D-02 .119898468256D-04 .515369208145D+04
+ .165600000000D+06 -.143423676491D-06 .763463930434D+00 -.372529029846D-07
+ .937473243444D+00 .134437500000D+03 .104000688947D+01 -.808355099806D-08
+ .485377360773D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .106000000000D+03
+ .158418000000D+06 .400000000000D+01
+ 7 06 1 2 22 0 0.0 .461301766336D-03 .102318153950D-10 .000000000000D+00
+ .186000000000D+03 .240937500000D+02 .569523722949D-08 -.125784936380D+01
+ .160932540894D-05 .132369709900D-01 .598654150963D-05 .515380587769D+04
+ .165600000000D+06 -.167638063431D-07 .183363151814D+01 .376254320145D-06
+ .935026570010D+00 .252093750000D+03 -.176762029929D+01 -.859607234663D-08
+ .372872674501D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.186264514923D-08 .442000000000D+03
+ .158418000000D+06 .400000000000D+01
+ 9 06 1 2 22 0 0.0 .201119109988D-05 .147792889038D-11 .000000000000D+00
+ .590000000000D+02 -.155968750000D+03 .439946896983D-08 .264443791484D+01
+ -.799633562565D-05 .174448693870D-01 .451318919659D-05 .515365952683D+04
+ .165600000000D+06 .176951289177D-06 -.240808017729D+00 -.875443220139D-07
+ .959041849291D+00 .289312500000D+03 .121166884801D+01 -.799604735318D-08
+ -.259296515026D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.558793544769D-08 .827000000000D+03
+ .158418000000D+06 .400000000000D+01
+17 06 1 2 22 0 0.0 .170855782926D-04 .102318153950D-10 .000000000000D+00
+ .410000000000D+02 .155625000000D+02 .513199948266D-08 .743589544644D+00
+ .840052962303D-06 .176017615013D-02 .591762363911D-05 .515362844849D+04
+ .165600000000D+06 .558793544769D-08 .188987395375D+01 .167638063431D-07
+ .959960728618D+00 .266156250000D+03 .268209422495D+01 -.823355724642D-08
+ .305727020472D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.977888703346D-08 .410000000000D+02
+ .158418000000D+06 .400000000000D+01
+20 06 1 2 22 0 0.0 -.363416038454D-04 .102318153950D-11 .000000000000D+00
+ .192000000000D+03 .110093750000D+03 .425160566787D-08 .126379491450D+01
+ .565126538277D-05 .252549990546D-02 .992976129055D-05 .515358162689D+04
+ .165600000000D+06 -.596046447754D-07 -.230656537764D+01 -.149011611938D-07
+ .959293361482D+00 .187687500000D+03 .135285152427D+01 -.793711632704D-08
+ -.971469037013D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .448000000000D+03
+ .158418000000D+06 .400000000000D+01
+24 06 1 2 22 0 0.0 .742943957448D-04 .295585778076D-11 .000000000000D+00
+ .250000000000D+02 .781250000000D+00 .462304971143D-08 -.255262444180D+01
+ .175088644028D-06 .902453809977D-02 .960193574429D-05 .515375938034D+04
+ .165600000000D+06 .372529029846D-08 .298957266704D+01 .173225998878D-06
+ .962126495448D+00 .194218750000D+03 -.995965423238D+00 -.775067998979D-08
+ -.597167731576D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.931322574616D-09 .250000000000D+02
+ .158418000000D+06 .400000000000D+01
+ 2 06 1 2 21 59 44.0 -.231023877859D-04 .102318153950D-11 .000000000000D+00
+ .237000000000D+03 -.446875000000D+01 .501413743038D-08 -.372067066727D+00
+ -.121071934700D-06 .906720035709D-02 .903941690922D-05 .515362880516D+04
+ .165584000000D+06 -.502914190292D-07 .293745883201D+01 -.428408384323D-07
+ .952246811325D+00 .202812500000D+03 .195622940161D+01 -.827355891265D-08
+ -.596810573842D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.172294676304D-07 .237000000000D+03
+ .158958000000D+06 .400000000000D+01
+23 06 1 2 22 0 0.0 .156268011779D-03 -.170530256582D-11 .000000000000D+00
+ .250000000000D+02 .511562500000D+02 .452840291187D-08 -.903036548308D+00
+ .261142849922D-05 .417841027957D-02 .120885670185D-05 .515360639763D+04
+ .165600000000D+06 -.726431608200D-07 -.125248286973D+01 .000000000000D+00
+ .966789660933D+00 .360062500000D+03 .242411136025D+01 -.843320841984D-08
+ .109647424398D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.214204192162D-07 .250000000000D+02
+ .158958000000D+06 .400000000000D+01
+30 06 1 2 22 0 0.0 .100261531770D-04 .568434188608D-11 .000000000000D+00
+ .166000000000D+03 -.671875000000D+02 .461162066394D-08 .926870216551D+00
+ -.352784991264D-05 .871621759143D-02 .119917094708D-04 .515361507606D+04
+ .165600000000D+06 -.113621354103D-06 .808941244907D+00 .167638063431D-07
+ .944094937321D+00 .138687500000D+03 .129638147616D+01 -.812748139937D-08
+ .462162108050D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.838190317154D-08 .166000000000D+03
+ .159708000000D+06 .400000000000D+01
+13 06 1 2 21 59 44.0 .327010639012D-04 .227373675443D-11 .000000000000D+00
+ .590000000000D+02 .424687500000D+02 .409588489576D-08 -.121293314571D+00
+ .220909714699D-05 .257202133071D-02 .102818012237D-05 .515360539627D+04
+ .165584000000D+06 .316649675369D-07 -.122906444493D+01 .931322574615D-07
+ .990335637557D+00 .374843750000D+03 .109430078988D+01 -.822284251440D-08
+ .746459664470D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .590000000000D+02
+ .160188000000D+06 .400000000000D+01
+10 06 1 2 22 0 0.0 .764648430049D-04 .682121026330D-12 .000000000000D+00
+ .690000000000D+02 .127500000000D+03 .394016412365D-08 -.752112751144D-01
+ .652670860290D-05 .680710899178D-02 .102315098047D-04 .515379557991D+04
+ .165600000000D+06 .558793544769D-07 -.227769569144D+01 .447034835815D-07
+ .975653345524D+00 .187750000000D+03 .358376312772D+00 -.786247036059D-08
+ -.146077513286D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.232830643654D-08 .325000000000D+03
+ .161118000000D+06 .400000000000D+01
+10 06 1 2 21 59 44.0 .764541327953D-04 .682121026330D-12 .000000000000D+00
+ .910000000000D+02 .127500000000D+03 .394016412365D-08 -.775450361420D-01
+ .652670860290D-05 .680710666347D-02 .102315098047D-04 .515379560471D+04
+ .165584000000D+06 .558793544769D-07 -.227769555832D+01 .447034835815D-07
+ .975653339672D+00 .187750000000D+03 .358376385918D+00 -.786247036059D-08
+ -.146077513286D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .910000000000D+02
+ .161568000000D+06 .400000000000D+01
+ 6 06 1 2 22 0 0.0 .178216956556D-03 .441104930360D-10 .000000000000D+00
+ .450000000000D+02 .203125000000D+02 .564059209616D-08 .293172238936D+01
+ .892207026482D-06 .597400765400D-02 .618025660515D-05 .515362095261D+04
+ .165600000000D+06 .856816768646D-07 .186035217914D+01 -.117346644402D-06
+ .933494549532D+00 .248093750000D+03 -.186156657084D+01 -.839249243814D-08
+ .372515516766D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .301000000000D+03
+ .165378000000D+06 .400000000000D+01
+ 2 06 1 2 23 59 44.0 -.230954028666D-04 .102318153950D-11 .000000000000D+00
+ .238000000000D+03 -.133750000000D+02 .501020869530D-08 .678100154530D+00
+ -.774860382080D-06 .906834972557D-02 .918097794056D-05 .515363110352D+04
+ .172784000000D+06 -.819563865662D-07 .293739913764D+01 -.968575477600D-07
+ .952242674192D+00 .201750000000D+03 .195627379825D+01 -.823641450830D-08
+ -.570738059245D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.172294676304D-07 .238000000000D+03
+ .165618000000D+06 .400000000000D+01
+10 06 1 2 23 59 44.0 .764587894082D-04 .682121026330D-12 .000000000000D+00
+ .920000000000D+02 .119968750000D+03 .405588322953D-08 .972675185174D+00
+ .651553273201D-05 .680627475958D-02 .995770096779D-05 .515379351997D+04
+ .172784000000D+06 .335276126862D-07 -.227775200940D+01 .670552253723D-07
+ .975652287834D+00 .193437500000D+03 .358258929688D+00 -.784496963162D-08
+ -.160363822654D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.232830643654D-08 .920000000000D+02
+ .165618000000D+06 .400000000000D+01
+ 4 06 1 3 0 0 0.0 .105826649815D-03 .122781784739D-10 .000000000000D+00
+ .670000000000D+02 -.115625000000D+02 .488734643474D-08 .303907517427D+01
+ -.577419996262D-06 .741836987436D-02 .918656587601D-05 .515375976181D+04
+ .172800000000D+06 -.150874257088D-06 .295718682652D+01 .279396772385D-07
+ .951836394046D+00 .199093750000D+03 .114566439809D+00 -.795783147562D-08
+ -.590024576892D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.605359673500D-08 .323000000000D+03
+ .165618000000D+06 .400000000000D+01
+ 5 06 1 3 0 0 0.0 .451968517155D-03 .235331754084D-10 .000000000000D+00
+ .107000000000D+03 -.698750000000D+02 .461626371448D-08 .270109490047D+01
+ -.355206429958D-05 .678829173558D-02 .126603990793D-04 .515368875885D+04
+ .172800000000D+06 .465661287308D-07 .763406556250D+00 -.279396772385D-07
+ .937477629272D+00 .120281250000D+03 .103974491595D+01 -.788568561331D-08
+ .481448625696D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.419095158577D-08 .107000000000D+03
+ .165618000000D+06 .400000000000D+01
+ 6 06 1 3 0 0 0.0 .178535003215D-03 .441104930360D-10 .000000000000D+00
+ .460000000000D+02 .229687500000D+02 .554844540074D-08 -.230127672544D+01
+ .105053186417D-05 .597408285830D-02 .573322176933D-05 .515362068749D+04
+ .172800000000D+06 .119209289551D-06 .186029113742D+01 .186264514923D-07
+ .933497662622D+00 .248843750000D+03 -.186153165830D+01 -.840106422376D-08
+ .478948521557D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.465661287308D-08 .302000000000D+03
+ .165618000000D+06 .400000000000D+01
+ 7 06 1 3 0 0 0.0 .461374875158D-03 .102318153950D-10 .000000000000D+00
+ .187000000000D+03 .280937500000D+02 .568059376239D-08 -.207711468199D+00
+ .139139592648D-05 .132374184905D-01 .609643757343D-05 .515380702400D+04
+ .172800000000D+06 -.163912773132D-06 .183356807138D+01 .137835741043D-06
+ .935028781942D+00 .253187500000D+03 -.176764952547D+01 -.879500920458D-08
+ .427874965567D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.186264514923D-08 .443000000000D+03
+ .165618000000D+06 .400000000000D+01
+13 06 1 3 0 0 0.0 .327173620462D-04 .227373675443D-11 .000000000000D+00
+ .600000000000D+02 .465937500000D+02 .401873882517D-08 .930959414905D+00
+ .239722430706D-05 .257413531654D-02 .183284282684D-05 .515360964966D+04
+ .172800000000D+06 -.428408384323D-07 -.122912351317D+01 .651925802231D-07
+ .990335997435D+00 .359281250000D+03 .109459962308D+01 -.820105589261D-08
+ .410731394325D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.116415321827D-07 .600000000000D+02
+ .165618000000D+06 .400000000000D+01
+30 06 1 3 0 0 0.0 .100671313703D-04 .568434188608D-11 .000000000000D+00
+ .167000000000D+03 -.649687500000D+02 .452947438508D-08 .197729781967D+01
+ -.333599746227D-05 .871663889848D-02 .127255916595D-04 .515361174583D+04
+ .172800000000D+06 .316649675369D-07 .808882957862D+00 -.180676579475D-06
+ .944099444571D+00 .123093750000D+03 .129617146549D+01 -.790175771135D-08
+ .523950396066D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.838190317154D-08 .167000000000D+03
+ .165618000000D+06 .400000000000D+01
+29 06 1 3 0 0 0.0 .483917538077D-03 .147792889038D-10 .000000000000D+00
+ .133000000000D+03 .524687500000D+02 .424374819772D-08 .124569862371D+01
+ .240281224251D-05 .928107940126D-02 .977888703346D-06 .515368588638D+04
+ .172800000000D+06 .208616256714D-06 -.126215982120D+01 -.184401869774D-06
+ .985264394000D+00 .368812500000D+03 -.101155537987D+01 -.830141721592D-08
+ .435732435719D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.651925802231D-08 .133000000000D+03
+ .168318000000D+06 .400000000000D+01
+26 06 1 3 0 0 0.0 -.817421823740D-05 -.727595761418D-11 .000000000000D+00
+ .760000000000D+02 .477500000000D+02 .424160525131D-08 -.719132243202D+00
+ .264495611191D-05 .167656675912D-01 .107660889625D-05 .515364994430D+04
+ .172800000000D+06 .197440385819D-06 -.122794674772D+01 .240281224251D-06
+ .988525374450D+00 .371718750000D+03 .747015621251D+00 -.848178187169D-08
+ .357157734196D-10 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .200000000000D+01 .000000000000D+00 -.605359673500D-08 .760000000000D+02
+ .169968000000D+06 .400000000000D+01
+21 06 1 3 0 0 0.0 .164320692420D-03 .386535248253D-11 .000000000000D+00
+ .231000000000D+03 -.662500000000D+01 .506735393277D-08 -.240681998162D+01
+ -.454485416412D-06 .105190559989D-01 .932067632675D-05 .515373802376D+04
+ .172800000000D+06 -.108033418655D-06 .297831241396D+01 -.212341547012D-06
+ .945430283092D+00 .195250000000D+03 -.302880227094D+01 -.810533761985D-08
+ -.566452166435D-09 .100000000000D+01 .135600000000D+04 .000000000000D+00
+ .280000000000D+01 .000000000000D+00 -.116415321827D-07 .487000000000D+03
+ .171348000000D+06 .400000000000D+01
diff --git a/ref/usersguide/arl280-10.06o b/ref/usersguide/arl280-10.06o
new file mode 100644
index 0000000..bb79019
--- /dev/null
+++ b/ref/usersguide/arl280-10.06o
@@ -0,0 +1,48828 @@
+ 2.10 Observation G (GPS) RINEX VERSION / TYPE
+mergeRinObs gpstk 01/04/2007 15:36:44 PGM / RUN BY / DATE
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+-Unknown- GEOD. SURVEY, NATURAL RESOURCES CANADA OBSERVER / AGENCY
+1103 AOA BENCHMARK ACT 3.3.32.2N REC # / TYPE / VERS
+386 AOAD/M_T NONE ANT # / TYPE
+ 918129.4000 -4346071.2000 4561977.8000 APPROX POSITION XYZ
+ 0.1000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 7 L1 L2 C1 P2 P1 S1 S2 # / TYPES OF OBSERV
+ 30.000 INTERVAL
+ 2006 1 2 0 0 0.0000000 GPS TIME OF FIRST OBS
+40104M002 MARKER NUMBER
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+L1 PHASE CENTRE .110m ABOVE ARP COMMENT
+L2 PHASE CENTRE .128m ABOVE ARP COMMENT
+where ARP is the Antenna Reference Point for HI measurement COMMENT
+P1 = P1 TurboRogue; = Y1 Benchmark COMMENT
+L1 = L1(CA) COMMENT
+P2 = P2 TurboRogue; = Y2 Benchmark COMMENT
+L2 = L2(P2) TurboRogue; = L2(Y2) Benchmark COMMENT
+SNR is mapped to RINEX snr flag value [0-9] COMMENT
+L1 & L2: min(max(int(snr_dBHz/6), 0), 9) COMMENT
+ END OF HEADER
+ 06 1 2 0 0 0.0000000 0 6G02G06G10G21G26G29
+ -14057059.327 6 -10953538.160 6 22148477.678 22148474.326 22148476.848
+ 40.900 36.100
+ -18141248.465 7 -14136026.526 6 21356549.412 21356548.478 21356548.655
+ 44.800 40.700
+ -22603792.668 7 -17613328.758 7 20200275.771 20200274.402 20200274.572
+ 45.500 46.200
+ -3922915.233 4 -3056813.649 3 24158475.904 24158474.477 24158475.393
+ 26.200 23.000
+ -10724372.090 5 -8356648.452 5 22441493.796 22441493.207 22441493.391
+ 33.600 30.800
+ -14401966.278 6 -11222303.412 6 21576507.476 21576505.887 21576506.782
+ 39.800 36.400
+ 06 1 2 0 0 30.0000000 0 6G02G06G10G21G26G29
+ -13974626.777 6 -10889305.011 5 22164163.781 22164160.395 22164163.305
+ 41.000 35.500
+ -18169976.048 7 -14158411.645 6 21351082.891 21351081.704 21351082.037
+ 44.800 40.700
+ -22575594.158 7 -17591355.887 7 20205641.815 20205640.320 20205640.611
+ 45.800 46.100
+ -4018153.626 3 -3131025.321 3 24140353.626 24140350.975 24140352.297
+ 23.800 23.800
+ -10838065.873 5 -8445240.963 5 22419858.497 22419857.826 22419857.973
+ 34.600 30.800
+ -14481285.336 6 -11284110.438 6 21561413.408 21561411.871 21561412.634
+ 39.500 36.300
+ 06 1 2 0 1 0.0000000 0 6G02G06G10G21G26G29
+ -13891939.041 6 -10824873.018 6 22179899.766 22179895.649 22179898.460
+ 40.600 36.100
+ -18198161.312 7 -14180374.175 6 21345719.482 21345718.156 21345718.727
+ 44.900 40.700
+ -22546978.168 7 -17569057.704 7 20211087.376 20211085.772 20211086.173
+ 45.800 46.200
+ -4113372.453 4 -3205221.708 4 24122234.084 24122231.463 24122232.973
+ 28.400 24.200
+ -10951466.777 5 -8533605.211 5 22398278.907 22398278.415 22398278.595
+ 34.100 31.500
+ -14560171.155 6 -11345579.865 6 21546401.626 21546400.543 21546401.120
+ 39.600 36.700
+ 06 1 2 0 1 30.0000000 0 6G02G06G10G21G26G29
+ -13808996.902 6 -10760242.799 5 22195682.405 22195678.740 22195681.807
+ 41.200 34.900
+ -18225803.489 7 -14201913.525 6 21340459.385 21340457.813 21340458.597
+ 45.000 40.400
+ -22517946.238 7 -17546435.413 7 20216611.835 20216610.427 20216610.685
+ 46.000 46.100
+ -4208570.886 4 -3279402.254 3 24104117.409 24104114.963 24104116.949
+ 28.800 22.100
+ -11064571.507 5 -8621738.733 5 22376756.226 22376755.411 22376755.519
+ 35.300 31.100
+ -14638621.233 6 -11406709.758 6 21531473.098 21531471.916 21531472.441
+ 39.100 36.400
+ 06 1 2 0 2 0.0000000 0 6G02G06G10G21G26G29
+ -13725801.313 6 -10695415.084 6 22211514.111 22211510.720 22211513.403
+ 41.000 36.000
+ -18252901.160 7 -14223028.581 6 21335302.659 21335301.297 21335301.950
+ 45.000 40.500
+ -22488499.834 7 -17523490.154 7 20222215.465 20222213.917 20222214.271
+ 46.100 46.200
+ -4303748.251 4 -3353566.388 3 24086005.904 24086003.441 24086004.913
+ 28.400 21.100
+ -11177376.618 5 -8709638.757 5 22355290.564 22355289.064 22355289.509
+ 34.500 31.300
+ -14716633.246 6 -11467498.302 6 21516628.657 21516626.705 21516627.570
+ 39.700 36.500
+ 06 1 2 0 2 30.0000000 0 6G02G06G10G21G26G29
+ -13642353.267 6 -10630390.664 6 22227394.019 22227390.447 22227393.206
+ 40.800 36.100
+ -18279453.145 7 -14243718.425 6 21330250.065 21330248.738 21330249.330
+ 45.000 40.700
+ -22458640.351 7 -17500223.019 7 20227897.565 20227895.960 20227896.397
+ 46.100 46.100
+ -4398903.286 5 -3427713.114 3 24067898.221 24067896.083 24067897.404
+ 30.100 19.900
+ -11289878.846 5 -8797302.776 5 22333881.822 22333880.677 22333880.833
+ 34.000 31.100
+ -14794204.716 6 -11527943.580 6 21501866.582 21501865.136 21501866.073
+ 40.100 36.500
+ 06 1 2 0 3 0.0000000 0 6G02G06G10G21G26G29
+ -13558653.372 6 -10565169.969 5 22243320.970 22243317.624 22243320.511
+ 40.600 35.100
+ -18305457.976 7 -14263981.914 6 21325301.609 21325300.084 21325300.758
+ 44.700 40.600
+ -22428369.513 7 -17476635.346 7 20233657.724 20233656.298 20233656.587
+ 46.000 46.000
+ -4494035.054 5 -3501841.718 3 24049796.484 24049793.493 24049795.190
+ 30.600 19.900
+ -11402074.933 5 -8884728.216 5 22312531.556 22312530.347 22312530.615
+ 35.500 31.600
+ -14871333.236 6 -11588043.696 6 21487189.856 21487188.136 21487188.887
+ 39.800 36.600
+ 06 1 2 0 3 30.0000000 0 6G02G06G10G21G26G29
+ -13474702.424 6 -10499753.667 5 22259297.027 22259293.101 22259295.917
+ 40.200 35.300
+ -18330914.986 7 -14283818.529 6 21320457.154 21320455.803 21320456.365
+ 44.800 40.600
+ -22397688.619 7 -17452728.148 7 20239496.256 20239494.689 20239494.989
+ 45.900 46.000
+ -4589142.544 4 -3575951.410 3 24031698.061 24031695.461 24031697.084
+ 29.700 19.300
+ -11513961.176 5 -8971912.254 5 22291240.769 22291238.853 22291239.467
+ 35.200 31.800
+ -14948016.322 6 -11647796.723 6 21472597.162 21472595.796 21472596.345
+ 39.600 36.900
+ 06 1 2 0 4 0.0000000 0 6G02G06G10G21G26G29
+ -13390501.602 6 -10434142.649 5 22275319.488 22275316.010 22275318.824
+ 40.300 34.900
+ -18355822.903 7 -14303227.285 6 21315717.058 21315716.004 21315716.395
+ 44.600 40.700
+ -22366599.135 7 -17428502.572 7 20245412.222 20245410.823 20245411.101
+ 46.000 46.100
+ -4684224.848 4 -3650041.464 2 24013604.547 24013601.152 24013603.173
+ 28.600 17.800
+ -11625534.599 5 -9058852.542 5 22270008.620 22270007.193 22270007.453
+ 35.100 31.800
+ -15024251.648 6 -11707200.833 6 21458090.013 21458088.669 21458089.400
+ 40.000 37.000
+ 06 1 2 0 4 30.0000000 0 6G02G06G10G21G26G29
+ -13306051.898 6 -10368337.688 5 22291390.163 22291386.200 22291389.203
+ 40.000 34.800
+ -18380180.755 7 -14322207.423 6 21311081.884 21311080.951 21311081.114
+ 44.200 40.700
+ -22335102.681 7 -17403959.873 7 20251405.738 20251404.313 20251404.628
+ 46.000 45.900
+ -4779280.934 4 -3724111.066 3 23995514.640 23995512.420 23995513.755
+ 26.800 20.500
+ -11736791.766 5 -9145546.372 5 22248837.018 22248835.711 22248835.938
+ 34.900 32.300
+ -15100037.033 6 -11766254.363 6 21443668.463 21443667.072 21443667.822
+ 40.000 36.800
+ 06 1 2 0 5 0.0000000 0 6G02G06G10G21G26G29
+ -13221353.834 6 -10302339.211 5 22307507.342 22307503.786 22307506.560
+ 40.100 34.600
+ -18403987.454 7 -14340758.080 6 21306551.571 21306550.634 21306550.879
+ 44.300 40.800
+ -22303200.985 7 -17379101.405 7 20257476.506 20257475.023 20257475.344
+ 45.900 46.000
+ -4874309.495 4 -3798159.239 3 23977431.602 23977429.297 23977430.453
+ 27.100 21.600
+ -11847729.153 5 -9231991.040 5 22227726.922 22227724.954 22227725.523
+ 34.700 32.000
+ -15175370.005 6 -11824955.345 6 21429332.639 21429331.731 21429332.424
+ 40.500 36.900
+ 06 1 2 0 5 30.0000000 0 7G02G06G10G21G26G27G29
+ -13136408.313 6 -10236147.912 5 22323672.088 22323668.476 22323671.337
+ 40.200 34.800
+ -18427241.829 7 -14358878.355 6 21302126.491 21302125.452 21302125.774
+ 44.500 40.600
+ -22270895.250 7 -17353928.101 7 20263624.141 20263622.639 20263622.967
+ 45.900 46.000
+ -4969309.683 4 -3872185.282 3 23959353.918 23959350.550 23959352.754
+ 28.100 20.500
+ -11958343.431 5 -9318183.929 5 22206677.530 22206675.564 22206676.336
+ 35.900 31.500
+ -27690.532 3 -21576.432 3 25214084.418 25214083.945 25214083.293
+ 21.600 19.300
+ -15250248.239 6 -11883301.994 6 21415084.682 21415082.793 21415083.619
+ 39.700 36.800
+ 06 1 2 0 6 0.0000000 0 7G02G06G10G21G26G27G29
+ -13051216.554 6 -10169764.752 5 22339883.941 22339879.578 22339882.878
+ 39.800 33.800
+ -18449943.034 7 -14376567.593 6 21297806.890 21297805.450 21297805.971
+ 44.500 40.700
+ -22238187.151 7 -17328441.266 7 20269848.358 20269846.801 20269847.142
+ 46.100 46.000
+ -5064280.381 4 -3946188.365 3 23941281.695 23941278.682 23941280.597
+ 28.600 23.400
+ -12068631.299 6 -9404122.491 5 22185690.327 22185688.347 22185689.146
+ 36.500 31.800
+ -47962.985 3 -37373.123 3 25210227.008 25210225.992 25210226.417
+ 23.800 20.500
+ -15324669.292 6 -11941292.396 6 21400922.407 21400921.037 21400921.769
+ 40.100 37.400
+ 06 1 2 0 6 30.0000000 0 7G02G06G10G21G26G27G29
+ -12965779.267 6 -10103190.254 5 22356141.561 22356138.007 22356140.878
+ 39.500 34.600
+ -18472089.907 7 -14393824.891 6 21293592.091 21293591.040 21293591.402
+ 44.400 40.800
+ -22205078.519 7 -17302642.325 7 20276148.656 20276147.106 20276147.487
+ 46.100 45.700
+ -5159220.703 4 -4020167.771 3 23923214.453 23923212.411 23923213.520
+ 28.400 23.400
+ -12178589.480 5 -9489804.135 5 22164765.621 22164764.341 22164764.505
+ 35.600 32.800
+ -67809.842 4 -52838.177 3 25206450.486 25206449.939 25206449.534
+ 24.900 22.600
+ -15398631.093 6 -11998924.933 6 21386848.294 21386846.340 21386847.373
+ 40.500 37.000
+ 06 1 2 0 7 0.0000000 0 7G02G06G10G21G26G27G29
+ -12880097.305 6 -10036425.098 5 22372446.019 22372442.895 22372445.533
+ 39.100 34.700
+ -18493681.626 7 -14410649.591 6 21289483.216 21289482.344 21289482.462
+ 44.300 40.700
+ -22171570.641 7 -17276532.287 7 20282525.091 20282523.475 20282523.902
+ 46.400 45.800
+ -5254129.372 4 -4094122.515 3 23905154.381 23905151.548 23905153.029
+ 28.600 23.000
+ -12288214.520 6 -9575226.186 5 22143904.952 22143903.059 22143903.825
+ 36.000 32.600
+ -87230.027 3 -67970.758 3 25202754.622 25202753.887 25202753.806
+ 23.000 19.900
+ -15472131.440 6 -12056197.911 6 21372861.355 21372859.742 21372860.667
+ 40.500 37.600
+ 06 1 2 0 7 30.0000000 0 7G02G06G10G21G26G27G29
+ -12794171.681 6 -9969470.098 5 22388797.734 22388793.924 22388796.701
+ 39.100 34.500
+ -18514717.109 7 -14427040.860 6 21285480.465 21285479.384 21285479.688
+ 44.500 40.800
+ -22137664.819 7 -17250112.163 7 20288977.036 20288975.539 20288975.907
+ 46.600 45.700
+ -5349005.482 4 -4168051.870 4 23887099.278 23887097.757 23887098.502
+ 29.900 26.500
+ -12397503.154 6 -9660386.120 5 22123107.647 22123106.204 22123106.580
+ 36.000 33.100
+ -106222.202 3 -82769.845 3 25199141.378 25199139.852 25199140.417
+ 22.100 19.300
+ -15545167.751 6 -12113109.286 6 21358962.675 21358961.519 21358962.004
+ 40.300 38.100
+ 06 1 2 0 8 0.0000000 0 7G02G06G10G21G26G27G29
+ -12708003.030 6 -9902325.734 5 22405194.974 22405191.720 22405194.102
+ 38.900 35.400
+ -18535195.635 7 -14442998.142 6 21281583.679 21281582.327 21281582.930
+ 44.600 40.800
+ -22103362.838 7 -17223383.341 7 20295504.446 20295502.940 20295503.306
+ 46.500 45.700
+ -5443847.801 5 -4241954.907 4 23869052.024 23869050.167 23869051.054
+ 30.100 25.600
+ -12506452.074 6 -9745281.327 5 22102375.263 22102373.929 22102374.305
+ 36.600 33.200
+ -124785.746 3 -97234.910 2 25195608.190 25195607.097 25195607.381
+ 23.000 17.800
+ -15617737.867 6 -12169657.391 6 21345152.938 21345151.836 21345152.394
+ 40.900 37.800
+ 06 1 2 0 8 30.0000000 0 7G02G06G10G21G26G27G29
+ -12621592.506 6 -9834992.883 5 22421638.401 22421634.816 22421637.625
+ 39.200 34.700
+ -18555115.803 7 -14458520.339 6 21277792.983 21277791.703 21277792.243
+ 44.700 40.800
+ -22068666.261 7 -17196347.044 7 20302106.963 20302105.445 20302105.846
+ 46.400 45.600
+ -5538655.440 4 -4315830.901 4 23851010.444 23851008.885 23851009.389
+ 29.200 24.200
+ -12615057.961 6 -9829909.231 5 22081707.855 22081706.667 22081707.184
+ 37.200 32.800
+ -142919.337 4 -111364.933 3 25192157.924 25192156.485 25192157.004
+ 25.900 21.100
+ -15689839.676 6 -12225840.589 6 21331432.700 21331431.050 21331431.955
+ 40.800 37.500
+ 06 1 2 0 9 0.0000000 0 7G02G06G10G21G26G27G29
+ -12534940.911 6 -9767472.196 5 22438127.822 22438123.997 22438126.779
+ 38.900 34.300
+ -18574476.656 7 -14473606.702 6 21274108.599 21274107.547 21274107.884
+ 44.800 40.900
+ -22033576.648 7 -17169004.481 7 20308784.338 20308782.793 20308783.192
+ 46.600 45.600
+ -5633427.179 4 -4389678.965 3 23832976.177 23832973.934 23832974.897
+ 28.800 22.600
+ -12723317.509 6 -9914267.263 5 22061105.830 22061105.505 22061105.701
+ 36.700 32.800
+ -160621.718 3 -125159.004 3 25188788.691 25188788.068 25188787.634
+ 23.400 19.900
+ -15761470.942 6 -12281657.140 6 21317801.905 21317800.076 21317801.052
+ 41.000 37.500
+ 06 1 2 0 9 30.0000000 0 7G02G06G10G21G26G27G29
+ -12448049.140 6 -9699764.338 5 22454662.186 22454659.176 22454661.820
+ 39.400 34.600
+ -18593278.027 7 -14488257.110 6 21270530.984 21270529.646 21270530.257
+ 45.000 40.700
+ -21998095.550 7 -17141356.873 7 20315536.324 20315534.606 20315535.098
+ 46.400 45.500
+ -5728162.006 4 -4463498.274 3 23814948.530 23814946.219 23814947.300
+ 28.800 23.800
+ -12831227.365 6 -9998352.803 5 22040571.099 22040571.040 22040571.262
+ 37.400 33.200
+ -177891.811 3 -138616.209 2 25185502.235 25185500.902 25185500.989
+ 22.100 17.000
+ -15832629.471 6 -12337105.311 6 21304260.595 21304259.002 21304259.833
+ 40.900 37.800
+ 06 1 2 0 10 0.0000000 0 7G02G06G10G21G26G27G29
+ -12360918.040 6 -9631869.996 5 22471243.217 22471239.522 22471242.312
+ 39.100 34.500
+ -18611518.566 7 -14502470.506 6 21267060.122 21267058.541 21267059.387
+ 45.000 40.700
+ -21962224.485 7 -17113405.393 7 20322362.254 20322360.614 20322361.049
+ 46.500 45.400
+ -5822858.996 5 -4537288.087 3 23796929.057 23796926.027 23796927.942
+ 31.100 23.000
+ -12938784.117 6 -10082163.216 5 22020103.915 22020103.357 22020103.926
+ 37.100 33.000
+ -194728.656 4 -151735.797 2 25182298.458 25182297.017 25182297.760
+ 24.900 17.000
+ -15903312.799 6 -12392183.206 6 21290809.861 21290808.537 21290809.328
+ 41.400 37.900
+ 06 1 2 0 10 30.0000000 0 7G02G06G10G21G26G27G29
+ -12273548.764 6 -9563790.052 5 22487868.607 22487865.205 22487867.946
+ 38.200 33.900
+ -18629197.456 7 -14516246.253 6 21263695.654 21263694.443 21263694.902
+ 44.700 40.700
+ -21925964.910 7 -17085151.176 7 20329262.234 20329260.573 20329260.994
+ 46.400 45.300
+ -5917516.695 5 -4611047.294 4 23778915.974 23778913.503 23778914.720
+ 31.100 24.200
+ -13045984.725 6 -10165696.117 5 21999704.343 21999703.722 21999704.269
+ 37.200 32.800
+ -211131.092 3 -164516.876 2 25179177.189 25179175.883 25179175.967
+ 22.100 17.000
+ -15973519.091 6 -12446889.374 6 21277450.344 21277448.546 21277449.649
+ 41.100 37.700
+ 06 1 2 0 11 0.0000000 0 7G02G06G10G21G26G27G29
+ -12185942.175 6 -9495525.195 5 22504539.769 22504536.257 22504539.127
+ 38.100 33.900
+ -18646313.944 7 -14529583.764 6 21260438.303 21260437.269 21260437.619
+ 44.500 40.900
+ -21889318.541 7 -17056595.563 7 20336235.879 20336234.172 20336234.629
+ 46.400 45.300
+ -6012133.994 5 -4684775.028 3 23760910.668 23760908.048 23760909.492
+ 31.600 23.000
+ -13152825.708 6 -10248948.795 5 21979373.850 21979372.862 21979373.269
+ 37.900 34.000
+ -227098.147 4 -176958.722 3 25176138.188 25176137.457 25176137.985
+ 24.200 18.600
+ -16043245.944 6 -12501221.967 6 21264181.400 21264180.071 21264180.815
+ 41.100 38.100
+ 06 1 2 0 11 30.0000000 0 7G02G06G10G21G26G27G29
+ -12098099.368 6 -9427076.275 5 22521256.104 22521252.399 22521255.218
+ 38.100 34.100
+ -18662867.553 7 -14542482.667 6 21257288.421 21257287.035 21257287.621
+ 44.600 40.600
+ -21852287.066 7 -17027739.865 7 20343282.463 20343281.097 20343281.398
+ 46.600 45.300
+ -6106709.871 5 -4758470.477 4 23742912.990 23742910.445 23742911.984
+ 30.200 24.600
+ -13259303.672 6 -10331918.578 5 21959111.807 21959110.727 21959111.026
+ 37.600 34.500
+ -242628.740 3 -189060.473 3 25173183.761 25173182.272 25173182.159
+ 23.000 19.300
+ -16112491.364 6 -12555179.403 6 21251004.730 21251003.093 21251003.787
+ 40.700 38.100
+ 06 1 2 0 12 0.0000000 0 7G02G06G10G21G26G27G29
+ -12010020.987 6 -9358443.805 5 22538016.426 22538013.072 22538015.718
+ 38.100 33.600
+ -18678856.948 7 -14554941.925 6 21254245.693 21254244.271 21254244.952
+ 44.500 40.600
+ -21814871.987 7 -16998585.255 7 20350402.428 20350400.916 20350401.227
+ 46.700 45.300
+ -6201243.405 5 -4832132.928 3 23724924.533 23724921.290 23724923.425
+ 30.600 23.800
+ -13365415.535 6 -10414603.087 5 21938919.456 21938918.081 21938918.577
+ 37.200 34.400
+ -257721.898 3 -200821.366 3 25170310.356 25170310.274 25170309.931
+ 22.600 19.300
+ -16181253.159 6 -12608760.002 6 21237919.243 21237918.044 21237918.990
+ 41.600 37.900
+ 06 1 2 0 12 30.0000000 0 7G02G06G10G21G26G27G29
+ -11921708.098 6 -9289628.581 5 22554821.536 22554818.473 22554821.007
+ 37.700 33.200
+ -18694281.668 7 -14566961.177 6 21251310.475 21251309.139 21251309.790
+ 44.500 40.900
+ -21777074.744 7 -16969132.853 7 20357594.941 20357593.472 20357593.792
+ 46.800 45.300
+ -6295733.116 4 -4905761.219 3 23706942.890 23706940.423 23706941.909
+ 28.100 22.100
+ -13471157.823 6 -10496999.628 5 21918797.375 21918795.851 21918796.403
+ 37.300 33.900
+ -272376.610 4 -212240.587 2 25167522.829 25167520.475 25167521.677
+ 25.300 13.900
+ -16249529.465 6 -12661962.293 6 21224927.515 21224925.329 21224926.535
+ 41.300 37.700
+ 06 1 2 0 13 0.0000000 0 7G02G06G10G21G26G27G29
+ -11833161.437 6 -9220631.198 5 22571671.767 22571668.161 22571671.028
+ 37.600 32.800
+ -18709141.026 7 -14578539.883 6 21248482.736 21248481.691 21248481.972
+ 44.500 40.800
+ -21738897.183 7 -16939384.100 7 20364860.009 20364858.418 20364858.845
+ 46.700 45.300
+ -6390177.900 4 -4979354.512 3 23688971.229 23688968.448 23688969.970
+ 29.200 23.400
+ -13576527.364 6 -10579105.719 5 21898746.218 21898744.653 21898745.420
+ 38.100 34.000
+ -286591.847 3 -223317.333 2 25164817.211 25164816.012 25164816.459
+ 23.000 16.100
+ -16317317.911 6 -12714784.438 6 21212027.015 21212025.723 21212026.581
+ 41.400 38.100
+ 06 1 2 0 13 30.0000000 0 7G02G06G10G21G26G27G29
+ -11744382.129 6 -9151452.536 5 22588566.340 22588562.673 22588565.374
+ 37.600 33.600
+ -18723434.280 7 -14589677.474 6 21245763.087 21245761.803 21245762.306
+ 44.700 41.200
+ -21700340.637 7 -16909340.036 7 20372197.047 20372195.436 20372195.899
+ 46.600 45.100
+ -6484576.707 5 -5052911.992 3 23671007.492 23671004.461 23671006.627
+ 30.200 21.600
+ -13681520.995 6 -10660918.913 5 21878766.089 21878764.990 21878765.574
+ 38.400 33.900
+ -300366.723 3 -234051.006 2 25162196.020 25162194.649 25162194.836
+ 21.100 17.000
+ -16384616.538 6 -12767224.895 6 21199221.363 21199219.396 21199220.362
+ 41.800 38.700
+ 06 1 2 0 14 0.0000000 0 7G02G06G10G21G26G27G29
+ -11655371.192 6 -9082093.393 5 22605504.473 22605500.597 22605503.618
+ 37.700 32.600
+ -18737160.484 7 -14600373.207 6 21243151.132 21243149.739 21243150.358
+ 44.700 41.200
+ -21661406.863 7 -16879002.028 7 20379605.800 20379604.282 20379604.639
+ 46.600 45.000
+ -6578928.199 5 -5126432.593 3 23653053.317 23653050.060 23653052.144
+ 31.100 22.600
+ -13786135.182 6 -10742436.438 5 21858858.160 21858857.591 21858858.115
+ 38.400 34.400
+ -313699.904 3 -244440.512 3 25159658.001 25159657.753 25159657.995
+ 23.800 18.600
+ -16451423.117 6 -12819281.942 6 21186507.916 21186506.418 21186507.374
+ 41.900 38.600
+ 06 1 2 0 14 30.0000000 0 7G02G06G10G21G26G27G29
+ -11566129.589 6 -9012554.483 5 22622486.323 22622482.603 22622485.719
+ 37.500 32.600
+ -18750318.903 7 -14610626.512 6 21240647.085 21240645.680 21240646.288
+ 44.700 41.200
+ -21622097.310 7 -16848371.203 7 20387086.140 20387084.591 20387085.023
+ 46.700 45.100
+ -6673231.545 5 -5199915.710 3 23635107.335 23635104.454 23635106.574
+ 31.800 22.100
+ -13890366.827 6 -10823655.846 5 21839022.376 21839023.132 21839023.339
+ 38.600 35.200
+ -326590.957 3 -254485.470 2 25157205.983 25157204.454 25157205.048
+ 23.800 17.000
+ -16517735.816 7 -12870954.154 6 21173889.336 21173887.443 21173888.519
+ 42.100 38.300
+ 06 1 2 0 15 0.0000000 0 7G02G06G10G21G26G27G29
+ -11476658.256 6 -8942836.565 5 22639512.131 22639508.342 22639511.353
+ 36.800 32.100
+ -18762909.372 7 -14620437.262 6 21238251.131 21238249.770 21238250.381
+ 44.700 40.900
+ -21582413.831 7 -16817449.008 7 20394637.895 20394636.172 20394636.686
+ 46.700 44.900
+ -6767485.301 5 -5273360.158 4 23617171.821 23617169.157 23617170.693
+ 31.000 24.200
+ -13994212.468 6 -10904574.475 5 21819262.452 21819261.646 21819262.218
+ 38.600 34.600
+ -339038.802 4 -264185.086 3 25154837.157 25154835.919 25154836.110
+ 26.200 18.600
+ -16583552.618 7 -12922239.948 6 21161364.738 21161362.895 21161363.917
+ 42.200 38.600
+ 06 1 2 0 15 30.0000000 0 7G02G06G10G21G26G27G29
+ -11386958.007 6 -8872940.284 5 22656581.557 22656578.032 22656580.711
+ 36.700 32.700
+ -18774930.850 7 -14629804.643 6 21235963.676 21235962.192 21235962.852
+ 44.800 41.100
+ -21542357.939 7 -16786236.624 7 20402260.257 20402258.521 20402259.053
+ 46.900 44.900
+ -6861688.297 4 -5346765.055 4 23599245.384 23599242.771 23599244.293
+ 29.200 25.600
+ -14097669.055 6 -10985189.974 5 21799576.048 21799574.404 21799575.077
+ 38.400 34.100
+ -351042.311 3 -273538.471 3 25152552.692 25152551.403 25152551.378
+ 22.600 18.600
+ -16648871.490 7 -12973137.743 6 21148934.643 21148933.190 21148933.929
+ 42.100 38.800
+ 06 1 2 0 16 0.0000000 0 7G02G06G10G21G26G27G29
+ -11297029.774 6 -8802866.354 5 22673694.137 22673691.019 22673693.556
+ 36.500 33.200
+ -18786383.015 7 -14638728.399 6 21233784.287 21233782.944 21233783.396
+ 44.400 41.200
+ -21501931.121 7 -16754735.205 7 20409953.235 20409951.564 20409952.034
+ 46.900 44.800
+ -6955839.315 5 -5420129.449 4 23581328.889 23581326.622 23581327.939
+ 31.600 27.100
+ -14200733.429 6 -11065499.835 5 21779963.955 21779962.078 21779962.683
+ 38.600 35.100
+ -362601.056 3 -282545.238 2 25150353.171 25150352.248 25150352.158
+ 22.600 17.800
+ -16713690.270 7 -13023645.856 6 21136600.215 21136598.570 21136599.402
+ 42.000 39.100
+ 06 1 2 0 16 30.0000000 0 7G02G06G10G21G26G27G29
+ -11206874.481 6 -8732615.506 5 22690849.750 22690846.728 22690849.343
+ 36.500 32.600
+ -18797265.167 7 -14647207.989 6 21231713.276 21231712.173 21231712.584
+ 44.400 41.200
+ -21461135.173 7 -16722946.152 7 20417716.281 20417714.722 20417715.190
+ 47.000 44.800
+ -7049937.268 5 -5493452.475 4 23563422.994 23563420.522 23563421.935
+ 33.200 28.400
+ -14303402.157 6 -11145501.411 5 21760426.002 21760424.706 21760425.250
+ 38.800 34.700
+ -373713.856 3 -291204.566 2 25148238.383 25148237.107 25148237.419
+ 23.400 15.100
+ -16778007.162 7 -13073762.894 6 21124360.986 21124359.536 21124360.277
+ 42.100 39.100
+ 06 1 2 0 17 0.0000000 0 7G02G06G10G21G26G27G29
+ -11116493.377 6 -8662188.705 5 22708049.827 22708045.973 22708048.582
+ 36.400 33.200
+ -18807576.523 7 -14655242.805 6 21229751.093 21229749.973 21229750.314
+ 44.300 41.100
+ -21419971.342 7 -16690870.436 7 20425549.620 20425547.941 20425548.373
+ 46.800 44.700
+ -7143980.758 5 -5566733.076 4 23545526.868 23545524.689 23545525.739
+ 33.100 28.600
+ -14405672.126 6 -11225192.251 5 21740963.929 21740963.386 21740963.845
+ 38.900 34.600
+ -384379.848 4 -299515.686 3 25146208.535 25146208.024 25146207.908
+ 24.900 19.300
+ -16841820.136 7 -13123487.265 6 21112217.547 21112216.112 21112217.044
+ 42.200 39.000
+ 06 1 2 0 17 30.0000000 0 7G02G06G10G21G26G27G29
+ -11025887.096 6 -8591586.447 5 22725291.850 22725287.653 22725290.643
+ 36.300 33.000
+ -18817316.950 7 -14662832.743 6 21227897.586 21227896.404 21227896.831
+ 44.300 41.100
+ -21378441.307 7 -16658509.365 7 20433452.579 20433450.821 20433451.309
+ 46.800 44.800
+ -7237968.724 5 -5639970.428 4 23527641.391 23527638.695 23527640.484
+ 32.600 26.500
+ -14507540.178 6 -11304569.905 5 21721578.718 21721578.474 21721578.792
+ 38.900 34.600
+ -394598.445 4 -307478.203 3 25144264.764 25144262.951 25144263.494
+ 26.200 19.900
+ -16905127.357 7 -13172817.537 6 21100171.021 21100169.130 21100170.139
+ 42.200 38.800
+ 06 1 2 0 18 0.0000000 0 7G02G06G10G21G26G27G29
+ -10935056.821 6 -8520809.644 5 22742575.248 22742572.245 22742574.695
+ 36.000 32.600
+ -18826485.603 7 -14669977.139 6 21226152.921 21226151.651 21226152.122
+ 44.600 41.100
+ -21336546.799 7 -16625864.290 7 20441424.478 20441423.095 20441423.407
+ 46.700 44.600
+ -7331899.819 5 -5713163.465 4 23509766.678 23509764.676 23509765.688
+ 31.800 27.100
+ -14609003.059 6 -11383631.847 5 21702271.902 21702270.496 21702271.193
+ 39.000 34.700
+ -404368.582 4 -315091.296 1 25142404.975 25142403.242 25142404.199
+ 25.300 11.000
+ -16967926.924 7 -13221752.242 6 21088220.285 21088218.517 21088219.687
+ 42.500 38.900
+ 06 1 2 0 18 30.0000000 0 7G02G06G10G21G26G27G29
+ -10844003.572 5 -8449859.081 5 22759901.420 22759898.907 22759901.389
+ 35.800 31.800
+ -18835082.186 7 -14676675.770 6 21224516.922 21224515.712 21224516.209
+ 44.500 41.200
+ -21294289.454 7 -16592936.484 7 20449465.787 20449464.430 20449464.664
+ 46.800 44.600
+ -7425772.842 5 -5786311.250 4 23491902.920 23491900.638 23491901.914
+ 31.500 25.300
+ -14710057.320 6 -11462375.386 5 21683042.295 21683040.664 21683041.257
+ 38.900 35.400
+ -413689.738 3 -322354.527 3 25140631.514 25140630.123 25140630.648
+ 21.100 18.600
+ -17030216.701 7 -13270289.711 6 21076366.985 21076365.283 21076366.326
+ 42.300 38.900
+ 06 1 2 0 19 0.0000000 0 7G02G06G10G21G26G27G29
+ -10752728.294 6 -8378735.508 5 22777272.465 22777267.960 22777271.226
+ 36.500 31.100
+ -18843105.967 7 -14682928.061 6 21222990.040 21222988.758 21222989.301
+ 44.500 41.000
+ -21251670.913 7 -16559727.228 7 20457575.912 20457574.426 20457574.783
+ 46.800 44.600
+ -7519586.761 5 -5859412.965 4 23474050.986 23474048.812 23474050.100
+ 32.000 25.600
+ -14810699.975 6 -11540798.196 5 21663889.973 21663888.952 21663889.489
+ 39.300 35.600
+ -422560.786 3 -329267.018 3 25138943.052 25138942.059 25138942.115
+ 23.000 18.600
+ -17091994.934 7 -13318428.569 6 21064611.132 21064609.453 21064610.295
+ 42.400 39.500
+ 06 1 2 0 19 30.0000000 0 7G02G06G10G21G26G27G29
+ -10661231.846 5 -8307439.598 5 22794683.161 22794679.496 22794682.123
+ 35.600 31.600
+ -18850556.941 7 -14688734.011 6 21221572.323 21221570.843 21221571.565
+ 44.400 40.900
+ -21208692.899 7 -16526237.865 7 20465754.171 20465752.915 20465753.100
+ 46.800 44.300
+ -7613340.206 5 -5932467.581 4 23456210.977 23456207.938 23456209.839
+ 31.600 25.300
+ -14910927.889 6 -11618897.825 5 21644816.960 21644816.125 21644816.622
+ 39.200 35.700
+ -430981.322 3 -335828.459 3 25137340.912 25137339.746 25137339.634
+ 23.000 20.500
+ -17153260.007 7 -13366167.562 6 21052952.396 21052951.168 21052951.864
+ 42.700 39.700
+ 06 1 2 0 20 0.0000000 0 7G02G06G10G21G26G27G29
+ -10569515.436 5 -8235972.304 5 22812135.073 22812132.609 22812134.809
+ 35.100 31.500
+ -18857434.360 7 -14694093.036 6 21220263.687 21220262.202 21220262.857
+ 44.400 40.800
+ -21165356.769 7 -16492469.446 7 20474000.970 20473999.448 20473999.859
+ 46.800 44.300
+ -7707031.938 5 -6005474.102 4 23438381.794 23438378.889 23438380.675
+ 33.000 25.300
+ -15010737.875 6 -11696671.798 5 21625823.615 21625822.885 21625823.284
+ 39.400 35.400
+ -438950.700 3 -342038.364 2 25135823.778 25135823.147 25135822.866
+ 22.100 17.800
+ -17214009.689 7 -13413504.950 6 21041392.414 21041390.762 21041391.653
+ 42.700 39.500
+ 06 1 2 0 20 30.0000000 0 7G02G06G10G21G26G27G29
+ -10477579.851 5 -8164334.225 5 22829629.973 22829627.042 22829629.822
+ 35.200 30.600
+ -18863737.813 7 -14699004.810 6 21219063.894 21219062.820 21219063.242
+ 44.200 41.100
+ -21121664.101 7 -16458423.211 7 20482315.551 20482313.904 20482314.403
+ 46.800 44.300
+ -7800660.471 5 -6078431.394 4 23420564.991 23420561.896 23420563.858
+ 33.800 24.900
+ -15110126.622 6 -11774117.541 6 21606911.314 21606910.033 21606910.443
+ 39.800 36.100
+ -446468.155 4 -347896.082 2 25134393.896 25134392.286 25134392.947
+ 24.600 17.000
+ -17274242.377 7 -13460439.481 6 21029930.491 21029928.698 21029929.695
+ 42.600 39.600
+ 06 1 2 0 21 0.0000000 0 7G02G06G10G21G26G27G29
+ -10385426.212 5 -8092526.219 5 22847167.358 22847163.621 22847166.549
+ 35.600 31.100
+ -18869466.836 7 -14703468.978 6 21217973.684 21217972.481 21217972.990
+ 44.300 40.800
+ -21077616.744 7 -16424100.594 7 20490697.523 20490695.761 20490696.319
+ 46.800 44.100
+ -7894224.595 5 -6151338.478 4 23402760.520 23402757.401 23402759.335
+ 33.100 25.600
+ -15209090.989 6 -11851232.594 6 21588078.656 21588077.605 21588078.083
+ 40.000 36.000
+ -453532.524 3 -353400.771 3 25133048.945 25133048.572 25133048.085
+ 23.400 19.900
+ -17333956.348 7 -13506969.824 6 21018567.225 21018565.657 21018566.528
+ 42.900 39.700
+ 06 1 2 0 21 30.0000000 0 7G02G06G10G21G26G27G29
+ -10293055.395 5 -8020548.965 5 22864745.083 22864741.053 22864744.068
+ 35.600 31.600
+ -18874621.271 7 -14707485.414 6 21216993.024 21216991.491 21216992.235
+ 44.400 40.800
+ -21033216.262 7 -16389502.810 7 20499146.505 20499144.929 20499145.343
+ 46.800 44.200
+ -7987723.251 5 -6224194.535 4 23384967.638 23384965.063 23384966.695
+ 32.800 25.900
+ -15307627.887 6 -11928014.556 5 21569327.262 21569326.553 21569327.076
+ 40.100 35.900
+ -460143.445 4 -358552.108 3 25131791.634 25131789.951 25131790.763
+ 27.100 19.300
+ -17393149.506 7 -13553094.340 6 21007303.144 21007301.571 21007302.453
+ 42.800 40.000
+ 06 1 2 0 22 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -10200468.543 5 -7948403.394 5 22882363.789 22882359.835 22882362.734
+ 35.200 31.800
+ -18879200.626 7 -14711053.741 6 21216121.467 21216120.159 21216120.818
+ 44.300 40.900
+ -83869.123 4 -65352.671 2 24836575.451 24836574.153 24836574.863
+ 27.600 13.900
+ -20988464.351 7 -16354631.192 7 20507662.641 20507660.957 20507661.475
+ 46.700 44.100
+ -8081155.119 5 -6296998.564 4 23367188.397 23367185.666 23367187.380
+ 33.600 26.800
+ -15405734.070 6 -12004460.910 5 21550658.868 21550657.442 21550658.210
+ 40.500 35.600
+ -466299.977 4 -363349.382 3 25130620.201 25130618.194 25130619.470
+ 26.800 18.600
+ -17451820.414 7 -13598811.897 6 20996138.761 20996136.803 20996137.832
+ 42.700 39.800
+ 06 1 2 0 22 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -10107666.799 5 -7876090.370 5 22900022.399 22900019.550 22900022.128
+ 34.700 31.500
+ -18883204.676 7 -14714173.778 6 21215359.719 21215358.213 21215358.885
+ 44.200 40.800
+ -146363.965 4 -114049.935 1 24824682.593 24824681.928 24824681.926
+ 25.600 11.000
+ -20943362.433 7 -16319486.835 7 20516245.272 20516243.622 20516244.131
+ 47.000 44.100
+ -8174518.670 5 -6369749.359 4 23349422.207 23349419.051 23349420.786
+ 33.500 27.100
+ -15503406.483 6 -12080569.259 6 21532072.357 21532071.194 21532071.801
+ 40.600 36.300
+ -472001.870 3 -367792.399 3 25129534.500 25129533.686 25129533.706
+ 22.600 19.900
+ -17509967.046 7 -13644120.929 6 20985073.455 20985071.789 20985072.772
+ 43.000 40.100
+ 06 1 2 0 23 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -10014650.916 5 -7803610.481 5 22917723.636 22917719.830 22917722.612
+ 34.300 31.100
+ -18886633.196 7 -14716845.347 6 21214707.250 21214705.694 21214706.386
+ 44.100 40.800
+ -208506.477 4 -162472.647 2 24812858.038 24812857.027 24812856.745
+ 25.900 13.900
+ -20897912.090 7 -16284070.979 7 20524894.131 20524892.404 20524892.993
+ 47.100 44.100
+ -8267812.909 5 -6442446.141 4 23331668.840 23331665.848 23331667.701
+ 32.800 27.100
+ -15600642.088 6 -12156337.229 6 21513568.574 21513567.986 21513568.316
+ 40.600 36.800
+ -477248.458 4 -371880.594 3 25128536.206 25128535.177 25128535.219
+ 24.600 18.600
+ -17567587.818 7 -13689020.207 6 20974108.003 20974106.857 20974107.583
+ 42.600 40.100
+ 06 1 2 0 23 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -9921421.890 5 -7730964.512 5 22935464.732 22935460.615 22935463.510
+ 34.000 30.800
+ -18889485.721 7 -14719068.090 6 21214164.163 21214162.991 21214163.440
+ 44.000 40.800
+ -270294.050 3 -210618.767 2 24801100.615 24801098.779 24801099.174
+ 21.600 13.900
+ -20852115.158 7 -16248385.055 7 20533608.996 20533607.277 20533607.812
+ 46.900 44.100
+ -8361036.256 5 -6515087.660 4 23313928.811 23313925.898 23313927.809
+ 32.800 27.100
+ -15697437.750 6 -12231762.386 6 21495149.497 21495148.219 21495148.742
+ 40.400 36.600
+ -482038.873 3 -375613.405 3 25127624.688 25127623.549 25127623.479
+ 23.400 18.600
+ -17624681.149 7 -13733508.485 6 20963244.135 20963242.285 20963243.208
+ 42.700 39.900
+ 06 1 2 0 24 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9827980.750 5 -7658153.237 5 22953245.610 22953242.052 22953244.620
+ 34.000 31.500
+ -18891761.773 7 -14720841.631 6 21213731.292 21213729.975 21213730.430
+ 44.100 41.000
+ -331723.898 3 -258486.129 3 24789409.392 24789409.466 24789408.157
+ 21.600 18.600
+ -20805973.239 7 -16212430.311 7 20542389.633 20542387.770 20542388.420
+ 47.000 44.100
+ -8454187.318 5 -6587672.868 4 23296202.314 23296200.061 23296201.403
+ 33.100 27.900
+ -15793790.237 6 -12306842.220 6 21476814.382 21476812.880 21476813.675
+ 40.800 37.000
+ -486372.837 4 -378990.502 3 25126800.352 25126798.297 25126799.340
+ 24.600 18.600
+ -17681245.254 7 -13777584.385 6 20952480.278 20952478.342 20952479.432
+ 42.700 39.700
+ 06 1 2 0 24 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -9734328.658 5 -7585177.616 5 22971067.875 22971063.544 22971066.399
+ 33.800 31.300
+ -18893461.752 7 -14722166.289 6 21213407.672 21213406.298 21213406.908
+ 44.000 40.800
+ -392793.324 3 -306072.672 3 24777787.859 24777788.210 24777787.333
+ 19.900 19.900
+ -20759487.771 7 -16176207.868 7 20551235.419 20551233.670 20551234.203
+ 46.800 43.900
+ -8547265.041 5 -6660200.921 4 23278489.575 23278487.711 23278488.805
+ 32.300 27.400
+ -15889696.443 6 -12381574.304 6 21458563.417 21458562.320 21458563.146
+ 41.100 36.100
+ -490249.353 3 -382011.157 2 25126062.516 25126060.861 25126061.455
+ 19.900 17.000
+ -17737278.250 7 -13821246.433 6 20941817.169 20941815.737 20941816.592
+ 42.800 40.100
+ 06 1 2 0 25 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9640466.549 5 -7512038.337 5 22988928.155 22988925.058 22988927.411
+ 34.300 31.500
+ -18894585.428 7 -14723041.870 6 21213193.963 21213192.386 21213193.117
+ 44.000 40.500
+ -453499.416 3 -353376.055 3 24766235.892 24766236.335 24766234.989
+ 18.600 19.300
+ -20712660.385 7 -16139718.994 7 20560146.336 20560144.746 20560145.115
+ 46.800 44.000
+ -8640267.996 5 -6732670.715 4 23260792.687 23260789.737 23260791.713
+ 34.100 27.100
+ -15985153.440 6 -12455956.349 6 21440398.735 21440397.638 21440398.270
+ 41.200 37.100
+ -493668.052 3 -384675.064 2 25125411.538 25125410.025 25125410.730
+ 22.100 17.800
+ -17792778.861 7 -13864493.641 6 20931255.909 20931254.289 20931255.234
+ 42.900 40.300
+ 06 1 2 0 25 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -9546395.544 5 -7438736.278 5 23006828.685 23006825.888 23006828.383
+ 33.500 30.600
+ -18895132.294 7 -14723468.001 6 21213089.936 21213088.355 21213089.137
+ 44.200 40.700
+ -513839.554 3 -400394.264 2 24754754.164 24754753.931 24754753.302
+ 22.600 17.800
+ -20665492.861 7 -16102965.075 7 20569121.782 20569120.471 20569120.699
+ 46.700 44.000
+ -8733194.460 5 -6805080.914 4 23243108.724 23243106.465 23243108.013
+ 34.300 28.800
+ -16080157.989 6 -12529985.834 6 21422320.177 21422318.755 21422319.448
+ 41.000 37.200
+ -496628.382 3 -386981.760 2 25124848.395 25124847.106 25124847.436
+ 22.600 17.800
+ -17847745.265 7 -13907324.579 6 20920796.352 20920794.544 20920795.510
+ 42.900 40.500
+ 06 1 2 0 26 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9452116.518 5 -7365272.119 5 23024768.590 23024766.521 23024769.186
+ 33.600 30.100
+ -18895101.984 7 -14723444.386 6 21213095.657 21213094.202 21213094.916
+ 44.300 40.500
+ -573810.974 3 -447125.237 2 24743341.968 24743341.097 24743341.096
+ 21.600 13.900
+ -20617986.721 7 -16065947.302 7 20578161.815 20578160.668 20578160.721
+ 46.600 44.100
+ -8826043.477 5 -6877430.759 4 23225440.649 23225438.010 23225439.769
+ 34.100 28.100
+ -16174707.156 6 -12603660.475 6 21404327.412 21404326.635 21404327.270
+ 41.400 37.200
+ -499129.849 3 -388930.980 2 25124372.497 25124371.158 25124371.821
+ 21.600 15.100
+ -17902175.959 7 -13949738.078 6 20910438.607 20910436.662 20910437.777
+ 43.200 40.400
+ 06 1 2 0 26 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -9357630.440 5 -7291646.624 4 23042749.585 23042746.645 23042749.482
+ 34.400 28.600
+ -18894494.520 7 -14722971.033 6 21213211.246 21213209.824 21213210.480
+ 44.200 40.800
+ -633411.278 3 -493567.019 2 24731999.844 24731999.331 24731998.703
+ 22.100 17.800
+ -20570143.539 7 -16028666.899 7 20587266.205 20587264.830 20587265.074
+ 46.400 43.900
+ -8918813.905 5 -6949719.366 4 23207786.937 23207783.787 23207785.762
+ 32.800 28.100
+ -16268797.705 6 -12676977.750 6 21386422.845 21386421.793 21386422.249
+ 41.200 37.000
+ -501172.189 3 -390522.366 2 25123982.976 25123981.999 25123982.435
+ 20.500 15.100
+ -17956069.098 7 -13991732.705 6 20900183.248 20900181.145 20900182.297
+ 43.300 40.500
+ 06 1 2 0 27 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9262938.692 5 -7217860.874 4 23060770.700 23060766.238 23060769.401
+ 34.900 29.700
+ -18893310.064 7 -14722048.080 6 21213436.484 21213435.333 21213435.718
+ 43.800 41.000
+ -692637.364 3 -539717.153 3 24720730.162 24720729.407 24720729.155
+ 23.400 20.500
+ -20521965.067 7 -15991125.234 7 20596434.384 20596432.900 20596433.179
+ 46.300 43.900
+ -9011504.194 5 -7021945.505 4 23190148.597 23190145.917 23190147.366
+ 34.100 28.100
+ -16362426.879 6 -12749935.521 6 21368606.278 21368604.809 21368605.422
+ 41.300 37.600
+ -502754.740 3 -391755.514 3 25123682.062 25123681.339 25123681.461
+ 23.800 19.300
+ -18009423.413 7 -14033307.475 6 20890030.048 20890028.112 20890029.336
+ 43.400 40.500
+ 06 1 2 0 27 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -9168042.196 5 -7143915.568 4 23078828.703 23078824.075 23078827.345
+ 33.800 28.800
+ -18891548.360 7 -14720675.318 6 21213771.698 21213770.693 21213770.877
+ 43.800 41.000
+ -751486.800 4 -585573.822 3 24709531.208 24709530.581 24709530.648
+ 25.900 19.900
+ -20473452.974 7 -15953323.602 7 20605665.961 20605664.476 20605664.721
+ 46.500 43.900
+ -9104112.695 5 -7094107.956 4 23172525.453 23172522.553 23172524.492
+ 34.400 28.100
+ -16455591.438 6 -12822531.260 6 21350877.056 21350876.147 21350876.629
+ 41.400 37.500
+ -503877.210 3 -392630.115 3 25123469.033 25123467.981 25123468.042
+ 22.100 20.500
+ -18062237.277 7 -14074461.119 6 20879979.826 20879978.018 20879979.157
+ 43.600 40.400
+ 06 1 2 0 28 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9072941.845 5 -7069811.415 5 23096924.853 23096921.259 23096924.063
+ 33.600 30.100
+ -18889209.328 7 -14718852.696 6 21214216.646 21214215.635 21214215.885
+ 43.600 40.900
+ -809956.809 3 -631134.782 3 24698404.719 24698404.432 24698403.913
+ 23.400 23.000
+ -20424608.708 7 -15915263.132 7 20614960.651 20614959.158 20614959.482
+ 46.600 43.800
+ -9196638.167 5 -7166205.683 4 23154918.955 23154915.384 23154917.749
+ 33.200 26.200
+ -16548288.496 6 -12894762.704 6 21333237.597 21333236.380 21333237.130
+ 41.500 37.800
+ -504539.026 4 -393145.818 3 25123343.243 25123341.570 25123342.216
+ 24.200 18.600
+ -18114509.007 7 -14115192.313 6 20870032.894 20870031.013 20870032.070
+ 43.200 40.800
+ 06 1 2 0 28 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -8977638.752 5 -6995549.298 4 23115059.094 23115056.744 23115059.517
+ 34.000 29.900
+ -18886293.004 7 -14716580.234 6 21214771.782 21214770.553 21214771.005
+ 43.700 41.000
+ -868044.722 4 -676398.046 3 24687351.544 24687350.662 24687350.387
+ 25.300 23.800
+ -20375434.189 7 -15876945.324 7 20624318.080 20624316.726 20624317.040
+ 46.800 43.600
+ -9289079.289 5 -7238237.713 4 23137327.489 23137324.742 23137326.300
+ 34.400 27.400
+ -16640514.865 6 -12966627.383 6 21315687.408 21315686.267 21315686.912
+ 41.900 37.900
+ -504739.858 4 -393302.273 3 25123304.395 25123303.618 25123303.709
+ 24.900 20.500
+ -18166237.323 7 -14155500.069 6 20860189.179 20860187.432 20860188.433
+ 43.100 40.800
+ 06 1 2 0 29 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8882133.744 5 -6921129.839 4 23133234.022 23133230.726 23133233.488
+ 32.000 28.800
+ -18882799.167 7 -14713857.765 6 21215436.556 21215435.401 21215435.836
+ 43.600 40.600
+ -925748.227 4 -721361.771 3 24676370.954 24676369.307 24676369.773
+ 25.600 18.600
+ -20325930.899 7 -15838371.329 7 20633738.374 20633736.829 20633737.224
+ 46.800 43.600
+ -9381434.557 5 -7310202.816 4 23119753.681 23119750.368 23119752.447
+ 35.300 29.000
+ -16732267.684 6 -13038123.046 6 21298226.981 21298226.225 21298226.814
+ 41.800 37.600
+ -504478.839 4 -393098.877 3 25123354.174 25123353.524 25123353.378
+ 24.900 22.100
+ -18217420.604 7 -14195383.118 6 20850449.298 20850447.419 20850448.611
+ 43.200 40.600
+ 06 1 2 0 29 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -8786428.304 5 -6846554.202 4 23151446.698 23151443.277 23151445.683
+ 32.300 28.600
+ -18878728.046 7 -14710685.460 6 21216211.376 21216210.176 21216210.605
+ 43.600 41.000
+ -983063.867 4 -766023.275 3 24665463.512 24665462.830 24665462.081
+ 24.200 21.100
+ -20276100.370 7 -15799542.343 7 20643220.761 20643219.324 20643219.607
+ 46.800 43.500
+ -9473702.628 5 -7382099.982 4 23102195.202 23102192.286 23102194.051
+ 34.800 28.400
+ -16823543.993 6 -13109247.407 6 21280858.236 21280856.936 21280857.524
+ 41.900 37.600
+ -503756.022 3 -392535.635 3 25123491.317 25123490.902 25123490.700
+ 23.000 20.500
+ -18268057.347 7 -14234840.306 6 20840813.384 20840811.493 20840812.634
+ 43.300 40.700
+ 06 1 2 0 30 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8690523.536 5 -6771823.245 5 23169696.918 23169693.530 23169695.597
+ 32.300 30.200
+ -18874079.465 7 -14707063.195 6 21217095.915 21217094.892 21217095.117
+ 43.400 41.000
+ -1039989.179 4 -810380.641 3 24654631.010 24654630.655 24654630.045
+ 24.900 21.100
+ -20225944.191 7 -15760459.603 7 20652765.364 20652763.729 20652764.197
+ 47.000 43.300
+ -9565882.210 5 -7453928.193 4 23084653.699 23084650.956 23084652.618
+ 34.700 27.900
+ -16914340.670 7 -13179998.033 6 21263579.936 21263578.743 21263579.539
+ 42.300 37.700
+ -502571.004 3 -391612.227 3 25123717.553 25123716.110 25123716.522
+ 22.100 18.600
+ -18318146.253 7 -14273870.600 6 20831281.671 20831279.959 20831281.037
+ 43.200 41.100
+ 06 1 2 0 30 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -8594420.157 5 -6696937.511 4 23187984.671 23187981.155 23187983.576
+ 32.100 29.000
+ -18868853.676 7 -14702991.150 6 21218090.186 21218089.192 21218089.371
+ 43.500 40.800
+ -1096522.171 4 -854432.252 3 24643873.644 24643873.053 24643872.292
+ 25.900 23.400
+ -20175464.155 7 -15721124.510 7 20662371.200 20662369.813 20662370.157
+ 47.100 43.400
+ -9657971.811 5 -7525686.298 4 23067130.048 23067126.776 23067128.744
+ 35.400 27.600
+ -17004654.938 6 -13250372.759 6 21246393.765 21246392.404 21246393.122
+ 41.800 37.700
+ -500923.428 4 -390328.416 3 25124031.245 25124029.997 25124030.361
+ 24.900 21.600
+ -18367685.867 7 -14312472.875 6 20821854.662 20821852.951 20821853.984
+ 43.400 41.000
+ 06 1 2 0 31 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8498119.187 5 -6621897.833 4 23206310.072 23206306.514 23206309.121
+ 32.100 29.000
+ -18863050.861 7 -14698469.470 6 21219194.616 21219193.392 21219193.867
+ 43.600 40.700
+ -1152659.955 4 -898175.936 2 24633191.295 24633189.071 24633190.180
+ 28.400 17.000
+ -20124661.788 7 -15681538.242 7 20672038.550 20672037.153 20672037.511
+ 47.100 43.200
+ -9749970.026 5 -7597373.174 4 23049622.551 23049619.753 23049621.611
+ 34.800 27.400
+ -17094483.834 7 -13320369.280 6 21229299.780 21229298.636 21229299.237
+ 42.000 38.200
+ -498812.736 3 -388683.698 3 25124432.866 25124431.258 25124431.906
+ 23.400 22.600
+ -18416674.762 7 -14350646.017 6 20812532.490 20812530.655 20812531.720
+ 43.400 41.300
+ 06 1 2 0 31 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -8401621.950 5 -6546705.205 4 23224672.564 23224669.302 23224672.073
+ 31.800 28.100
+ -18856670.682 7 -14693497.900 6 21220408.810 21220407.504 21220408.018
+ 43.600 40.700
+ -1208399.879 4 -941609.649 2 24622584.476 24622582.353 24622582.945
+ 26.200 15.100
+ -20073538.567 7 -15641701.961 7 20681767.054 20681765.493 20681765.930
+ 46.800 43.000
+ -9841875.250 5 -7668987.609 4 23032134.114 23032130.676 23032132.973
+ 35.700 27.100
+ -17183824.218 7 -13389985.129 6 21212298.491 21212297.749 21212298.175
+ 42.000 38.300
+ -496238.648 4 -386677.907 3 25124922.604 25124921.396 25124921.589
+ 24.200 22.100
+ -18465111.422 7 -14388388.851 6 20803315.235 20803313.432 20803314.514
+ 43.400 41.300
+ 06 1 2 0 32 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8304929.301 5 -6471360.289 4 23243071.914 23243069.597 23243071.711
+ 31.600 28.600
+ -18849713.572 7 -14688076.781 6 21221732.753 21221731.471 21221731.981
+ 43.800 40.900
+ -1263739.241 4 -984731.177 2 24612052.964 24612051.530 24612051.910
+ 25.300 15.100
+ -20022096.261 7 -15601617.049 7 20691556.298 20691554.557 20691555.095
+ 46.800 42.800
+ -9933686.048 6 -7740528.468 4 23014663.133 23014659.744 23014662.130
+ 36.300 28.800
+ -17272673.527 7 -13459218.331 6 21195391.651 21195390.175 21195390.834
+ 42.000 38.300
+ -493200.932 4 -384310.871 3 25125500.300 25125499.526 25125499.319
+ 24.600 22.100
+ -18512994.707 7 -14425700.483 6 20794203.375 20794201.481 20794202.623
+ 43.300 41.100
+ 06 1 2 0 32 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -8208042.406 5 -6395864.054 4 23261509.060 23261506.294 23261508.737
+ 32.100 27.900
+ -18842179.327 7 -14682205.938 6 21223166.478 21223164.988 21223165.781
+ 44.000 40.300
+ -1318675.414 4 -1027538.550 2 24601598.935 24601598.024 24601597.855
+ 27.900 17.000
+ -19970336.465 7 -15561284.735 7 20701405.852 20701404.138 20701404.654
+ 46.800 42.700
+ -10025400.893 6 -7811994.557 4 22997209.778 22997207.122 22997208.927
+ 36.300 29.200
+ -17361028.615 7 -13528066.418 6 21178577.457 21178576.590 21178577.281
+ 42.200 38.000
+ -489699.392 3 -381582.374 3 25126167.005 25126165.410 25126165.886
+ 23.400 19.900
+ -18560323.314 7 -14462579.898 6 20785196.872 20785195.119 20785196.158
+ 43.400 41.200
+ 06 1 2 0 33 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8110962.407 5 -6320217.315 4 23279983.366 23279980.053 23279982.522
+ 31.100 27.600
+ -18834068.677 7 -14675885.948 6 21224709.912 21224708.525 21224709.138
+ 44.100 40.500
+ -1373206.195 4 -1070030.032 2 24591222.152 24591220.860 24591221.138
+ 27.100 17.000
+ -19918260.852 7 -15520706.333 7 20711315.469 20711313.890 20711314.264
+ 46.700 42.800
+ -10117018.496 6 -7883384.869 5 22979775.996 22979773.082 22979774.968
+ 36.500 30.200
+ -17448886.490 7 -13596527.074 6 21161859.427 21161857.656 21161858.667
+ 42.500 37.700
+ -485733.619 4 -378492.142 3 25126921.493 25126920.308 25126920.768
+ 24.600 21.100
+ -18607095.833 7 -14499025.996 6 20776296.003 20776294.663 20776295.430
+ 43.600 41.300
+ 06 1 2 0 33 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -8013690.394 5 -6244420.958 4 23298494.748 23298490.090 23298493.398
+ 31.600 27.600
+ -18825381.487 7 -14669116.707 6 21226363.313 21226361.589 21226362.529
+ 44.100 40.600
+ -1427328.754 4 -1112203.422 2 24580922.467 24580921.706 24580921.733
+ 24.200 17.000
+ -19865870.851 7 -15479882.955 7 20721284.890 20721283.390 20721283.754
+ 46.500 42.800
+ -10208537.191 5 -7954698.109 4 22962360.649 22962357.673 22962359.460
+ 35.600 29.700
+ -17536244.507 7 -13664598.236 6 21145235.512 21145234.076 21145234.984
+ 42.700 38.000
+ -481303.543 3 -375040.119 3 25127764.594 25127762.785 25127763.322
+ 22.100 20.500
+ -18653310.796 7 -14535037.637 6 20767501.932 20767500.186 20767501.209
+ 43.400 41.400
+ 06 1 2 0 34 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7916227.420 5 -6168475.793 4 23317040.539 23317037.259 23317039.844
+ 32.000 29.200
+ -18816117.989 7 -14661898.396 6 21228125.754 21228124.469 21228124.978
+ 43.700 40.500
+ -1481040.798 4 -1154056.909 2 24570700.532 24570700.703 24570699.894
+ 24.200 17.000
+ -19813168.197 7 -15438815.953 7 20731313.950 20731312.322 20731312.743
+ 46.600 42.700
+ -10299955.855 6 -8025933.399 4 22944963.940 22944961.260 22944963.004
+ 36.300 29.900
+ -17623099.739 7 -13732277.608 6 21128707.502 21128706.295 21128706.922
+ 42.600 38.900
+ -476409.132 3 -371226.262 3 25128695.855 25128694.908 25128694.991
+ 23.000 21.600
+ -18698967.356 7 -14570614.157 6 20758813.712 20758811.961 20758813.120
+ 43.700 41.200
+ 06 1 2 0 34 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -7818574.558 4 -6092382.685 4 23335622.900 23335619.848 23335622.066
+ 29.700 28.800
+ -18806278.214 7 -14654231.038 6 21229998.212 21229996.919 21229997.426
+ 43.800 40.600
+ -1534339.657 4 -1195588.470 3 24560558.914 24560557.798 24560557.870
+ 24.900 19.300
+ -19760154.556 7 -15397506.626 7 20741402.268 20741400.567 20741400.996
+ 46.500 42.800
+ -10391273.027 6 -8097089.608 4 22927587.048 22927584.016 22927586.037
+ 37.000 29.900
+ -17709449.339 7 -13799562.982 6 21112275.289 21112274.466 21112275.049
+ 42.700 38.500
+ -471049.767 3 -367050.123 2 25129715.711 25129714.571 25129714.916
+ 21.600 17.000
+ -18744063.873 7 -14605754.285 6 20750232.062 20750230.350 20750231.423
+ 43.600 41.400
+ 06 1 2 0 35 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7720732.793 5 -6016142.391 4 23354241.702 23354238.798 23354240.952
+ 31.000 28.400
+ -18795862.638 7 -14646115.000 6 21231980.111 21231978.957 21231979.413
+ 43.600 40.700
+ -1587222.934 4 -1236796.186 2 24550495.629 24550494.949 24550494.377
+ 24.200 17.800
+ -19706831.337 7 -15355956.066 7 20751548.931 20751547.549 20751547.926
+ 46.600 42.700
+ -10482486.801 6 -8168165.258 4 22910229.798 22910226.545 22910228.577
+ 36.500 29.900
+ -17795290.453 7 -13866452.128 6 21095940.532 21095939.372 21095940.112
+ 43.000 38.800
+ -465225.273 3 -362511.532 3 25130824.175 25130822.540 25130823.304
+ 23.000 19.300
+ -18788599.324 7 -14640457.216 6 20741757.279 20741755.538 20741756.616
+ 43.600 41.600
+ 06 1 2 0 35 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -7622703.329 5 -5939755.822 4 23372896.389 23372892.508 23372895.369
+ 30.800 25.900
+ -18784871.678 7 -14637550.619 6 21234071.795 21234070.439 21234071.000
+ 43.600 40.500
+ -1639687.806 4 -1277677.874 2 24540512.168 24540511.029 24540510.993
+ 24.200 16.100
+ -19653200.378 7 -15314165.711 7 20761754.793 20761753.193 20761753.609
+ 46.600 42.500
+ -10573595.882 6 -8239159.323 4 22892892.304 22892888.830 22892891.177
+ 36.500 28.100
+ -17880620.272 7 -13932942.868 6 21079702.983 21079701.466 21079702.315
+ 42.500 38.600
+ -458935.654 3 -357610.530 3 25132020.673 25132019.666 25132019.942
+ 23.400 21.100
+ -18832572.516 7 -14674722.029 6 20733389.637 20733387.738 20733388.853
+ 43.500 41.900
+ 06 1 2 0 36 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7524487.258 5 -5863223.838 4 23391585.807 23391582.609 23391585.066
+ 30.600 26.800
+ -18773305.465 7 -14628537.983 6 21236272.745 21236271.499 21236271.955
+ 43.700 40.500
+ -1691732.177 4 -1318231.890 3 24530608.698 24530606.854 24530607.544
+ 26.800 18.600
+ -19599263.141 7 -15272136.693 7 20772018.824 20772017.119 20772017.612
+ 46.700 42.400
+ -10664598.645 6 -8310070.548 4 22875575.156 22875571.336 22875573.962
+ 37.300 27.400
+ -17965435.929 7 -13999032.959 6 21063562.719 21063561.746 21063562.286
+ 42.800 39.300
+ -452181.260 3 -352347.359 2 25133305.829 25133304.473 25133304.759
+ 19.300 17.000
+ -18875982.048 7 -14708547.619 6 20725128.954 20725127.161 20725128.248
+ 43.500 41.900
+ 06 1 2 0 36 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -7426085.784 4 -5786547.395 4 23410310.467 23410308.271 23410310.011
+ 29.000 28.100
+ -18761164.342 7 -14619077.369 6 21238583.066 21238581.893 21238582.261
+ 43.600 40.300
+ -1743353.468 4 -1358456.266 2 24520785.279 24520783.590 24520783.962
+ 27.600 17.000
+ -19545021.326 7 -15229870.343 7 20782340.766 20782339.056 20782339.490
+ 46.700 42.300
+ -10755493.358 6 -8380897.592 4 22858278.128 22858274.889 22858277.133
+ 36.500 29.000
+ -18049734.705 7 -14064720.281 6 21047521.374 21047520.098 21047520.816
+ 43.000 38.900
+ -444961.322 3 -346721.418 3 25134680.148 25134678.724 25134679.349
+ 23.800 20.500
+ -18918826.865 7 -14741933.170 6 20716975.878 20716974.059 20716975.125
+ 43.600 41.900
+ 06 1 2 0 37 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7327499.909 5 -5709727.274 4 23429071.194 23429068.514 23429070.688
+ 30.200 28.100
+ -18748448.798 7 -14609169.151 6 21241002.890 21241001.432 21241002.101
+ 43.600 40.300
+ -1794549.238 4 -1398349.042 3 24511042.883 24511041.974 24511041.962
+ 26.500 21.100
+ -19490476.387 7 -15187367.794 7 20792720.227 20792718.463 20792718.983
+ 46.800 42.400
+ -10846279.234 6 -8451639.806 5 22841002.187 22840999.154 22841001.053
+ 36.400 30.200
+ -18133513.839 7 -14130002.699 6 21031578.429 21031577.568 21031578.045
+ 43.000 39.300
+ -437275.821 3 -340732.717 3 25136142.321 25136141.351 25136141.055
+ 21.600 20.500
+ -18961105.985 7 -14774877.919 6 20708930.549 20708928.565 20708929.737
+ 43.700 41.800
+ 06 1 2 0 37 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -7228730.669 5 -5632764.240 4 23447867.569 23447863.447 23447866.245
+ 31.100 27.400
+ -18735159.126 7 -14598813.562 6 21243531.504 21243530.375 21243530.797
+ 43.300 40.300
+ -1845316.526 4 -1437907.909 3 24501381.700 24501381.061 24501381.052
+ 24.900 22.600
+ -19435629.835 7 -15144630.216 7 20803157.009 20803155.530 20803155.875
+ 46.800 42.200
+ -10936954.388 6 -8522295.749 5 22823746.998 22823744.328 22823746.144
+ 37.700 31.500
+ -18216770.669 7 -14194878.121 6 21015735.948 21015734.167 21015735.154
+ 43.500 39.100
+ -429124.649 3 -334381.125 3 25137693.163 25137692.680 25137692.290
+ 19.900 19.900
+ -19002818.208 7 -14807380.932 6 20700992.762 20700990.949 20700992.053
+ 43.900 41.800
+ 06 1 2 0 38 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7129779.190 4 -5555659.184 4 23466696.576 23466693.602 23466695.468
+ 28.800 27.900
+ -18721295.518 7 -14588010.750 6 21246169.752 21246168.455 21246169.000
+ 43.400 40.300
+ -1895653.112 4 -1477131.208 3 24491803.474 24491802.515 24491802.568
+ 27.900 23.400
+ -19380483.513 7 -15101659.058 7 20813651.246 20813649.464 20813649.987
+ 46.600 42.200
+ -11027517.127 6 -8592864.096 5 22806513.595 22806510.423 22806512.591
+ 37.200 30.600
+ -18299502.216 7 -14259344.236 6 20999991.777 20999990.879 20999991.608
+ 43.600 39.300
+ -420507.798 3 -327666.679 3 25139332.620 25139332.083 25139332.235
+ 21.100 18.600
+ -19043962.438 7 -14839441.350 7 20693163.374 20693161.352 20693162.625
+ 44.000 42.000
+ 06 1 2 0 38 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -7030646.681 4 -5478413.123 4 23485560.406 23485557.650 23485559.764
+ 29.500 27.600
+ -18706858.646 7 -14576761.241 6 21248916.868 21248915.795 21248916.171
+ 43.300 40.400
+ -1945556.594 4 -1516017.020 3 24482307.483 24482306.456 24482306.252
+ 26.800 22.600
+ -19325039.070 7 -15058455.591 7 20824201.822 20824200.301 20824200.563
+ 46.500 42.100
+ -11117965.943 6 -8663343.679 5 22789302.101 22789298.564 22789300.792
+ 37.200 30.800
+ -18381705.936 7 -14323399.058 6 20984349.384 20984347.983 20984348.835
+ 43.600 39.300
+ -411425.079 3 -320589.215 3 25141061.814 25141060.158 25141061.102
+ 23.800 18.600
+ -19084537.818 7 -14871058.511 7 20685442.062 20685440.188 20685441.405
+ 43.900 42.000
+ 06 1 2 0 39 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6931334.363 4 -5401026.921 4 23504460.056 23504456.392 23504458.977
+ 29.000 26.800
+ -18691848.940 7 -14565065.366 6 21251773.391 21251772.062 21251772.559
+ 43.400 40.300
+ -1995024.871 4 -1554563.701 3 24472893.330 24472892.453 24472892.461
+ 25.900 21.100
+ -19269298.163 7 -15015021.121 7 20834808.926 20834807.311 20834807.688
+ 46.500 42.000
+ -11208299.171 6 -8733733.198 5 22772112.146 22772108.813 22772110.915
+ 37.100 30.400
+ -18463379.292 7 -14387040.596 6 20968807.176 20968806.007 20968806.795
+ 43.600 39.300
+ -401876.657 3 -313148.853 3 25142878.430 25142877.613 25142877.495
+ 21.600 21.100
+ -19124542.880 7 -14902231.270 7 20677829.220 20677827.557 20677828.563
+ 43.900 42.200
+ 06 1 2 0 39 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -6831843.164 5 -5323501.328 4 23523392.660 23523388.944 23523391.853
+ 31.300 27.100
+ -18676266.853 7 -14552923.479 6 21254738.634 21254737.144 21254737.859
+ 43.400 40.300
+ -2044055.363 4 -1592769.235 3 24463563.718 24463562.124 24463562.463
+ 25.600 18.600
+ -19213262.081 7 -14971356.642 6 20845472.277 20845470.602 20845471.136
+ 46.400 41.800
+ -11298514.542 6 -8804030.871 5 22754944.058 22754941.625 22754943.072
+ 36.900 30.800
+ -18544519.290 7 -14450266.551 6 20953366.813 20953365.580 20953366.344
+ 43.700 39.400
+ -391862.309 4 -305345.473 3 25144784.273 25144783.049 25144783.221
+ 24.200 18.600
+ -19163977.106 7 -14932959.222 7 20670325.233 20670323.400 20670324.505
+ 43.900 42.200
+ 06 1 2 0 40 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6732174.360 4 -5245837.352 4 23542358.283 23542355.295 23542357.424
+ 29.900 27.400
+ -18660112.760 7 -14540335.873 6 21257812.410 21257810.932 21257811.740
+ 43.300 39.700
+ -2092645.821 4 -1630631.924 2 24454316.106 24454314.943 24454314.938
+ 25.300 17.000
+ -19156932.474 7 -14927463.440 6 20856191.341 20856189.789 20856190.212
+ 46.400 41.900
+ -11388612.280 6 -8874236.875 5 22737799.098 22737796.484 22737798.130
+ 36.900 30.800
+ -18625123.305 7 -14513074.846 6 20938028.638 20938027.059 20938027.899
+ 43.500 39.300
+ -381382.330 3 -297179.246 2 25146779.198 25146776.781 25146778.094
+ 22.100 13.900
+ -19202839.031 7 -14963241.222 7 20662930.091 20662928.142 20662929.444
+ 44.300 42.100
+ 06 1 2 0 40 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -6632328.842 5 -5168035.661 4 23561357.716 23561354.764 23561357.505
+ 30.200 24.200
+ -18643387.437 7 -14527303.149 6 21260995.287 21260993.874 21260994.525
+ 43.300 40.000
+ -2140794.088 4 -1668150.055 2 24445153.923 24445152.957 24445153.205
+ 24.900 17.000
+ -19100311.127 7 -14883342.909 6 20866966.000 20866964.524 20866964.792
+ 46.500 41.900
+ -11478589.853 6 -8944349.260 5 22720677.243 22720674.173 22720676.189
+ 37.600 30.200
+ -18705188.675 7 -14575463.421 6 20922792.420 20922791.080 20922791.904
+ 43.700 39.700
+ -370436.542 3 -288650.047 3 25148861.244 25148860.550 25148859.873
+ 18.600 19.300
+ -19241127.875 7 -14993076.673 7 20655643.945 20655641.977 20655643.280
+ 44.300 42.100
+ 06 1 2 0 41 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6532307.773 4 -5090097.197 4 23580390.786 23580388.525 23580390.635
+ 28.400 25.900
+ -18626091.156 7 -14513825.529 6 21264286.608 21264285.325 21264285.750
+ 43.100 39.900
+ -2188497.479 4 -1705321.491 3 24436077.347 24436075.545 24436075.642
+ 26.200 19.300
+ -19043399.431 7 -14838996.131 6 20877796.051 20877794.376 20877794.796
+ 46.500 41.800
+ -11568445.706 6 -9014366.790 4 22703577.762 22703575.061 22703576.976
+ 37.800 29.500
+ -18784712.916 7 -14637430.335 6 20907659.632 20907658.026 20907659.081
+ 44.000 39.300
+ -359024.832 3 -279757.819 2 25151032.916 25151031.813 25151032.017
+ 19.900 17.800
+ -19278842.704 7 -15022464.837 7 20648467.187 20648464.995 20648466.402
+ 44.100 42.100
+ 06 1 2 0 41 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -6432112.678 4 -5012023.103 4 23599457.841 23599455.349 23599457.479
+ 29.700 27.400
+ -18608224.787 7 -14499903.679 6 21267686.129 21267685.051 21267685.507
+ 42.900 40.000
+ -2235753.789 4 -1742144.561 3 24427084.086 24427083.061 24427083.245
+ 24.900 18.600
+ -18986198.955 7 -14794424.330 6 20888681.150 20888679.218 20888679.963
+ 46.700 41.700
+ -11658178.135 6 -9084288.153 4 22686503.066 22686499.604 22686502.034
+ 38.400 29.900
+ -18863693.356 7 -14698973.506 6 20892630.094 20892628.707 20892629.502
+ 44.000 39.800
+ -347147.659 3 -270502.857 3 25153292.947 25153292.318 25153291.848
+ 19.900 19.300
+ -19315982.580 7 -15051404.981 7 20641399.623 20641397.662 20641398.931
+ 44.200 42.500
+ 06 1 2 0 42 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6331744.422 4 -4933814.119 4 23618556.642 23618554.771 23618556.607
+ 27.600 27.400
+ -18589788.412 7 -14485537.676 6 21271194.948 21271193.429 21271194.150
+ 43.400 40.100
+ -2282560.531 4 -1778617.313 3 24418176.733 24418176.400 24418176.039
+ 24.900 21.600
+ -18928711.403 7 -14749628.830 6 20899620.539 20899618.791 20899619.423
+ 46.700 41.600
+ -11747785.411 6 -9154112.007 4 22669450.879 22669447.724 22669449.937
+ 38.000 29.900
+ -18942127.228 7 -14760090.779 6 20877704.839 20877703.121 20877704.187
+ 44.100 39.700
+ -334804.800 4 -260885.056 3 25155642.103 25155640.645 25155641.302
+ 24.600 19.300
+ -19352546.571 7 -15079896.388 7 20634441.671 20634439.757 20634440.943
+ 44.100 42.500
+ 06 1 2 0 42 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -6231204.133 4 -4855471.085 4 23637689.068 23637686.959 23637688.767
+ 27.600 26.800
+ -18570783.124 7 -14470728.361 6 21274811.457 21274809.973 21274810.652
+ 43.200 39.800
+ -2328915.194 4 -1814737.818 2 24409356.015 24409354.365 24409355.022
+ 24.900 17.800
+ -18870938.127 7 -14704610.691 6 20910614.611 20910612.790 20910613.386
+ 46.600 41.700
+ -11837265.952 6 -9223837.085 5 22652422.948 22652420.790 22652422.095
+ 37.500 31.600
+ -19020012.146 7 -14820780.301 6 20862883.476 20862882.082 20862882.963
+ 43.900 39.800
+ -321996.472 3 -250904.484 2 25158079.911 25158077.755 25158078.728
+ 22.100 13.900
+ -19388533.919 7 -15107938.454 7 20627593.391 20627591.677 20627592.726
+ 44.000 42.600
+ 06 1 2 0 43 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6130492.790 4 -4776994.718 3 23656853.387 23656851.420 23656853.705
+ 29.000 23.800
+ -18551209.491 7 -14455476.176 6 21278536.009 21278535.095 21278535.289
+ 42.900 40.300
+ -2374815.716 4 -1850504.421 3 24400621.514 24400619.752 24400620.646
+ 27.100 19.300
+ -18812880.988 7 -14659371.361 6 20921662.459 20921660.558 20921661.321
+ 46.500 41.800
+ -11926618.293 6 -9293462.257 5 22635420.549 22635417.185 22635419.304
+ 38.700 31.500
+ -19097345.521 7 -14881040.041 6 20848167.486 20848165.985 20848166.845
+ 43.900 39.900
+ -308722.786 3 -240561.355 2 25160605.355 25160603.735 25160604.388
+ 22.100 16.100
+ -19423943.712 7 -15135530.485 7 20620855.045 20620853.252 20620854.445
+ 44.000 42.700
+ 06 1 2 0 43 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -6029611.822 5 -4698386.189 4 23676051.268 23676048.791 23676050.679
+ 30.200 25.600
+ -18531067.716 7 -14439781.284 6 21282368.888 21282367.758 21282368.100
+ 42.900 40.200
+ -2420260.124 4 -1885915.642 3 24391973.595 24391972.875 24391972.650
+ 25.900 21.100
+ -18754541.362 7 -14613911.911 6 20932764.144 20932762.226 20932762.915
+ 46.600 41.500
+ -12015841.024 6 -9362986.446 5 22618441.972 22618438.658 22618440.855
+ 39.100 31.800
+ -19174124.577 7 -14940867.838 6 20833556.621 20833555.357 20833556.219
+ 44.300 40.000
+ -294983.790 3 -229855.633 3 25163219.787 25163218.455 25163218.759
+ 23.400 19.900
+ -19458775.046 7 -15162671.770 7 20614227.105 20614225.057 20614226.301
+ 44.000 42.500
+ 06 1 2 0 44 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5928562.343 4 -4619646.353 4 23695280.013 23695278.105 23695279.688
+ 28.400 27.100
+ -18510358.994 7 -14423644.616 6 21286309.676 21286308.278 21286308.856
+ 43.000 40.000
+ -2465245.870 4 -1920969.438 3 24383412.806 24383412.381 24383412.052
+ 26.500 22.100
+ -18695920.803 7 -14568233.549 6 20943919.201 20943917.413 20943917.991
+ 46.400 41.400
+ -12104932.202 6 -9432408.131 5 22601488.318 22601485.159 22601487.226
+ 38.800 31.800
+ -19250347.143 7 -15000262.017 6 20819052.242 20819050.675 20819051.723
+ 44.600 40.200
+ -280779.679 3 -218787.493 3 25165922.631 25165921.524 25165921.645
+ 22.600 18.600
+ -19493027.005 7 -15189361.594 7 20607708.984 20607707.117 20607708.374
+ 44.000 42.600
+ 06 1 2 0 44 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -5827345.375 4 -4540776.074 4 23714540.843 23714538.585 23714540.606
+ 27.900 24.600
+ -18489083.738 7 -14407066.493 6 21290358.473 21290356.848 21290357.659
+ 43.100 39.900
+ -2509771.362 4 -1955664.611 3 24374940.421 24374939.003 24374939.682
+ 28.100 20.500
+ -18637021.201 7 -14522337.754 6 20955127.345 20955125.546 20955126.152
+ 46.300 41.400
+ -12193890.196 6 -9501726.026 5 22584560.162 22584557.055 22584559.144
+ 39.300 31.800
+ -19326010.556 7 -15059220.488 6 20804653.813 20804652.377 20804653.349
+ 44.500 40.400
+ -266110.551 4 -207356.990 3 25168714.285 25168712.960 25168713.337
+ 26.800 19.300
+ -19526699.073 7 -15215599.555 7 20601301.485 20601299.544 20601300.806
+ 44.200 42.700
+ 06 1 2 0 45 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5725962.294 4 -4461776.244 4 23733834.793 23733831.357 23733833.742
+ 28.400 24.200
+ -18467242.920 7 -14390047.672 6 21294514.420 21294513.255 21294513.637
+ 43.100 39.800
+ -2553833.285 4 -1989998.540 3 24366555.292 24366555.099 24366554.498
+ 26.500 21.100
+ -18577843.881 7 -14476225.553 6 20966388.558 20966386.746 20966387.382
+ 46.300 41.200
+ -12282713.323 6 -9570938.839 5 22567657.544 22567654.320 22567656.593
+ 38.900 31.500
+ -19401112.256 7 -15117741.256 6 20790362.428 20790361.025 20790361.938
+ 44.400 40.600
+ -250976.776 4 -195564.437 2 25171594.460 25171592.417 25171593.346
+ 24.200 16.100
+ -19559790.335 7 -15241384.939 7 20595004.392 20595002.388 20595003.683
+ 44.300 42.700
+ 06 1 2 0 45 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -5624413.840 4 -4382647.631 3 23753160.175 23753155.014 23753158.433
+ 28.400 23.000
+ -18444837.067 7 -14372588.567 6 21298778.063 21298776.754 21298777.282
+ 43.100 39.600
+ -2597429.642 4 -2023969.697 3 24358259.409 24358258.136 24358258.299
+ 26.500 18.600
+ -18518390.387 7 -14429898.155 6 20977702.039 20977700.270 20977700.858
+ 46.100 40.900
+ -12371400.061 6 -9640045.377 5 22550780.940 22550777.715 22550779.988
+ 38.400 31.000
+ -19475649.780 7 -15175822.407 6 20776178.315 20776176.963 20776177.915
+ 44.500 40.700
+ -235378.380 3 -183409.827 2 25174561.899 25174561.204 25174561.188
+ 23.000 17.000
+ -19592300.084 7 -15266717.198 7 20588818.029 20588815.977 20588817.297
+ 44.300 42.700
+ 06 1 2 0 46 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5522701.590 4 -4303391.354 4 23772514.488 23772510.432 23772513.257
+ 28.800 25.600
+ -18421867.108 7 -14354689.899 6 21303149.332 21303147.533 21303148.517
+ 43.000 39.400
+ -2640558.933 4 -2057576.912 3 24350051.784 24350051.119 24350050.931
+ 25.300 19.900
+ -18458662.322 7 -14383356.808 6 20989067.784 20989066.113 20989066.650
+ 45.900 40.600
+ -12459948.684 6 -9709044.289 5 22533931.015 22533927.834 22533929.966
+ 39.200 32.300
+ -19549620.769 7 -15233462.107 6 20762102.263 20762100.793 20762101.806
+ 44.800 40.700
+ -219315.723 3 -170893.478 3 25177618.642 25177617.388 25177617.400
+ 23.000 19.300
+ -19624227.593 7 -15291595.764 7 20582742.408 20582740.379 20582741.687
+ 44.300 42.700
+ 06 1 2 0 46 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -5420826.545 4 -4224008.226 4 23791900.027 23791896.619 23791899.174
+ 29.000 24.600
+ -18398333.875 7 -14336352.311 6 21307627.210 21307625.856 21307626.523
+ 43.000 39.500
+ -2683218.450 4 -2090818.088 2 24341934.870 24341932.725 24341933.450
+ 25.600 17.800
+ -18398661.189 7 -14336602.680 6 21000485.665 21000483.916 21000484.452
+ 45.800 40.600
+ -12548357.442 6 -9777934.211 5 22517107.152 22517104.082 22517106.166
+ 39.100 32.400
+ -19623022.750 7 -15290658.421 6 20748134.458 20748132.645 20748133.765
+ 44.600 40.900
+ -202788.846 4 -158015.399 3 25180763.828 25180762.763 25180763.169
+ 24.900 20.500
+ -19655572.198 7 -15316020.116 7 20576777.995 20576775.729 20576777.138
+ 44.500 42.800
+ 06 1 2 0 47 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5318789.984 4 -4144499.281 4 23811317.415 23811314.044 23811316.028
+ 27.900 26.200
+ -18374237.962 7 -14317576.270 6 21312212.731 21312211.501 21312211.864
+ 43.000 39.600
+ -2725406.631 4 -2123691.983 2 24333905.717 24333904.280 24333904.748
+ 24.200 17.000
+ -18338388.639 7 -14289637.054 6 21011955.075 21011953.538 21011953.927
+ 45.800 40.800
+ -12636624.656 6 -9846713.837 5 22500310.186 22500307.324 22500309.269
+ 38.900 32.100
+ -19695853.222 7 -15347409.413 6 20734274.844 20734273.430 20734274.467
+ 44.800 40.800
+ -185798.355 3 -144776.039 3 25183997.021 25183995.599 25183996.002
+ 21.100 18.600
+ -19686333.279 7 -15339989.775 7 20570924.214 20570922.042 20570923.497
+ 44.400 42.800
+ 06 1 2 0 47 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -5216592.949 4 -4064865.246 3 23830764.951 23830760.294 23830763.411
+ 27.600 21.600
+ -18349580.284 7 -14298362.497 6 21316904.865 21316903.596 21316904.112
+ 42.800 39.400
+ -2767120.909 4 -2156196.571 2 24325967.734 24325966.123 24325966.765
+ 25.300 17.000
+ -18277846.056 7 -14242461.019 6 21023475.944 21023474.409 21023474.715
+ 45.800 40.800
+ -12724748.919 6 -9915382.082 5 22483540.966 22483537.614 22483539.873
+ 39.200 31.500
+ -19768109.939 7 -15403713.336 6 20720524.879 20720523.520 20720524.455
+ 44.800 40.900
+ -168344.309 3 -131175.481 2 25187318.108 25187316.625 25187317.171
+ 22.600 17.000
+ -19716509.885 7 -15363504.005 7 20565181.905 20565179.642 20565181.108
+ 44.500 43.100
+ 06 1 2 0 48 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5114236.705 4 -3985107.166 4 23850242.581 23850239.226 23850241.213
+ 27.100 24.600
+ -18324361.778 7 -14278711.712 6 21321703.763 21321702.316 21321703.007
+ 42.800 39.400
+ -2808359.069 4 -2188330.186 2 24318120.842 24318118.865 24318119.928
+ 25.900 17.000
+ -18217034.899 7 -14195075.700 6 21035048.010 21035046.363 21035046.843
+ 45.900 40.800
+ -12812728.303 6 -9983937.431 5 22466798.858 22466795.583 22466797.744
+ 38.700 31.600
+ -19839790.385 7 -15459568.202 6 20706884.485 20706883.233 20706884.071
+ 44.900 41.000
+ -150427.033 3 -117213.960 2 25190727.518 25190726.737 25190726.764
+ 21.100 17.800
+ -19746101.818 7 -15386562.643 7 20559550.637 20559548.534 20559549.901
+ 44.400 43.100
+ 06 1 2 0 48 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -5011722.230 4 -3905225.771 3 23869750.321 23869746.694 23869749.299
+ 25.600 23.800
+ -18298583.210 7 -14258624.519 6 21326609.472 21326607.856 21326608.562
+ 42.700 39.300
+ -2849119.486 4 -2220091.519 2 24310364.162 24310362.902 24310362.923
+ 24.600 16.100
+ -18155956.868 7 -14147482.433 6 21046670.752 21046669.109 21046669.564
+ 45.900 40.600
+ -12900561.183 6 -10052378.618 5 22450085.048 22450081.801 22450083.867
+ 39.200 32.600
+ -19910892.259 7 -15514972.240 6 20693354.423 20693352.930 20693353.883
+ 44.800 40.900
+ -132046.774 4 -102891.671 3 25194226.099 25194224.141 25194224.977
+ 24.600 18.600
+ -19775108.290 7 -15409165.077 7 20554030.718 20554028.787 20554029.983
+ 44.300 43.100
+ 06 1 2 0 49 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -4909050.923 4 -3825222.226 3 23889288.062 23889284.031 23889287.132
+ 27.100 21.600
+ -18272245.629 7 -14238101.729 6 21331621.171 21331619.793 21331620.509
+ 42.500 39.100
+ -2889399.454 4 -2251478.525 2 24302699.441 24302697.907 24302698.614
+ 27.900 17.000
+ -18094613.471 7 -14099682.388 6 21058344.016 21058342.466 21058342.914
+ 45.900 40.700
+ -12988245.804 6 -10120704.280 5 22433399.219 22433395.943 22433397.948
+ 39.400 32.800
+ -19981413.309 7 -15569923.687 6 20679934.862 20679933.145 20679934.264
+ 44.900 40.900
+ -113203.749 3 -88208.797 2 25197811.129 25197809.574 25197810.323
+ 21.100 13.900
+ -19803528.707 7 -15431310.843 7 20548622.619 20548620.486 20548621.864
+ 44.200 43.400
+ 06 1 2 0 49 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -4806223.965 4 -3745097.303 4 23908854.892 23908851.563 23908854.100
+ 26.800 24.200
+ -18245349.827 7 -14217143.961 6 21336739.078 21336737.828 21336738.314
+ 42.600 38.900
+ -2929197.080 4 -2282489.609 2 24295126.075 24295124.604 24295125.084
+ 28.100 17.800
+ -18033006.266 7 -14051676.781 6 21070067.443 21070065.938 21070066.345
+ 46.300 40.700
+ -13075780.628 6 -10188913.207 5 22416741.469 22416738.921 22416740.394
+ 39.100 33.900
+ -20051351.113 7 -15624420.654 6 20666625.784 20666624.320 20666625.448
+ 45.200 40.900
+ -93898.432 4 -73165.687 3 25201485.377 25201483.318 25201484.023
+ 24.600 18.600
+ -19831362.486 7 -15452999.493 7 20543325.991 20543323.840 20543325.209
+ 44.100 43.200
+ 06 1 2 0 50 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -4703242.540 4 -3664852.104 3 23928452.331 23928448.666 23928451.157
+ 25.900 22.600
+ -18217896.807 7 -14195752.008 6 21341963.312 21341962.097 21341962.555
+ 42.500 39.500
+ -2968510.034 4 -2313123.081 3 24287645.087 24287644.267 24287644.482
+ 27.900 21.100
+ -17971136.881 7 -14003466.873 6 21081841.058 21081839.204 21081839.841
+ 46.200 40.500
+ -13163163.447 6 -10257003.679 5 22400113.092 22400110.299 22400112.137
+ 39.800 33.600
+ -20120703.495 7 -15678461.448 6 20653428.701 20653426.869 20653428.152
+ 45.100 40.800
+ -74131.147 4 -57762.604 2 25205246.634 25205245.269 25205246.077
+ 24.200 17.800
+ -19858609.255 7 -15474230.729 7 20538140.998 20538138.936 20538140.308
+ 44.000 43.400
+ 06 1 2 0 50 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -4600107.522 4 -3584487.172 3 23948077.534 23948074.179 23948076.950
+ 27.400 23.000
+ -18189887.824 7 -14173926.826 6 21347293.374 21347292.083 21347292.653
+ 42.700 39.100
+ -3007336.696 4 -2343377.583 3 24280257.206 24280255.900 24280255.967
+ 28.100 20.500
+ -17909006.501 7 -13955053.593 6 21093664.083 21093662.265 21093662.791
+ 46.100 40.500
+ -13250392.759 6 -10324974.562 5 22383514.264 22383510.835 22383513.205
+ 40.200 32.400
+ -20189468.136 7 -15732044.259 6 20640343.298 20640341.422 20640342.768
+ 45.300 40.700
+ -53902.476 4 -42000.017 2 25209096.270 25209094.513 25209095.327
+ 24.900 17.000
+ -19885268.365 7 -15495004.050 7 20533067.760 20533065.969 20533067.099
+ 44.000 43.500
+ 06 1 2 0 51 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -4496820.513 3 -3504003.799 3 23967731.060 23967729.388 23967731.046
+ 23.800 23.400
+ -18161323.231 7 -14151668.705 6 21352729.044 21352727.511 21352728.267
+ 42.900 38.900
+ -3045674.979 4 -2373251.537 3 24272960.746 24272959.916 24272959.760
+ 27.100 22.100
+ -17846616.834 7 -13906438.267 6 21105536.344 21105534.679 21105535.136
+ 46.000 40.200
+ -13337467.045 6 -10392824.642 5 22366944.306 22366941.010 22366943.502
+ 41.100 32.400
+ -20257642.712 7 -15785167.281 6 20627369.861 20627368.322 20627369.395
+ 45.200 41.100
+ -33212.623 3 -25878.065 2 25213032.917 25213031.475 25213031.874
+ 21.600 17.000
+ -19911339.377 7 -15515319.113 7 20528106.413 20528104.878 20528105.788
+ 43.900 43.600
+ 06 1 2 0 51 30.0000000 0 8G02G06G08G10G21G26G27G29
+ -4393382.665 4 -3423402.937 4 23987416.142 23987413.227 23987415.285
+ 26.800 25.300
+ -18132204.489 7 -14128978.779 6 21358269.915 21358268.766 21358269.259
+ 42.500 38.900
+ -3083523.113 4 -2402743.581 3 24265758.433 24265757.549 24265757.484
+ 27.400 19.300
+ -17783969.578 7 -13857622.228 6 21117457.597 21117456.083 21117456.462
+ 45.800 40.500
+ -13424384.208 6 -10460552.297 5 22350404.564 22350401.398 22350403.602
+ 41.000 32.700
+ -20325225.164 7 -15837828.906 6 20614509.493 20614507.696 20614508.884
+ 45.100 41.100
+ -12062.274 3 -9397.288 2 25217057.453 25217056.257 25217056.808
+ 21.100 17.800
+ -19936821.838 7 -15535175.565 7 20523257.445 20523255.627 20523256.746
+ 44.000 43.500
+ 06 1 2 0 52 0.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -4289795.168 5 -3342685.425 3 24007129.183 24007125.030 24007128.275
+ 30.100 23.800
+ -18102532.669 7 -14105857.884 6 21363916.605 21363915.015 21363915.776
+ 42.700 39.100
+ -3120878.965 4 -2431852.015 3 24258650.038 24258648.457 24258649.175
+ 25.900 19.900
+ -17721066.177 7 -13808606.595 6 21129427.624 21129426.369 21129426.495
+ 45.700 40.600
+ -222934.368 3 -173714.714 4 24537686.295 24537686.392 24537685.409
+ 20.500 24.900
+ -13511142.844 6 -10528156.413 5 22333895.129 22333891.666 22333894.012
+ 40.400 33.000
+ -20392213.202 7 -15890027.353 6 20601762.133 20601760.208 20601761.484
+ 45.200 41.100
+ 9548.219 3 7442.060 2 25221170.352 25221169.034 25221169.362
+ 23.400 17.000
+ -19961715.380 7 -15554573.119 7 20518520.333 20518518.527 20518519.676
+ 43.800 43.500
+ 06 1 2 0 52 30.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -4186059.121 4 -3261852.197 4 24026868.485 24026866.030 24026867.700
+ 27.100 25.300
+ -18072308.930 7 -14082306.919 6 21369668.029 21369666.367 21369667.291
+ 42.700 39.000
+ -3157740.672 4 -2460575.402 3 24251634.944 24251634.254 24251633.876
+ 24.600 19.900
+ -17657908.007 7 -13759392.439 6 21141446.222 21141444.834 21141445.096
+ 45.600 40.100
+ -327440.002 3 -255147.609 4 24517798.647 24517799.428 24517797.807
+ 19.300 25.300
+ -13597740.979 6 -10595635.460 5 22317415.662 22317412.708 22317414.818
+ 40.600 33.100
+ -20458604.527 7 -15941760.837 6 20589128.263 20589126.378 20589127.712
+ 45.500 41.200
+ 31618.606 3 24639.816 2 25225369.817 25225368.846 25225368.967
+ 21.100 17.000
+ -19986019.562 7 -15573511.434 7 20513895.212 20513893.579 20513894.623
+ 43.800 43.500
+ 06 1 2 0 53 0.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -4082175.756 4 -3180904.167 3 24046636.593 24046633.580 24046635.728
+ 24.600 21.100
+ -18041533.923 7 -14058326.400 6 21375524.233 21375522.979 21375523.401
+ 42.500 39.100
+ -3194106.227 4 -2488912.177 3 24244715.538 24244714.073 24244714.483
+ 24.900 21.600
+ -17594496.591 7 -13709980.946 6 21153513.145 21153511.448 21153511.987
+ 45.400 40.100
+ -431947.482 3 -336581.964 4 24497912.322 24497912.587 24497911.285
+ 23.400 26.500
+ -13684176.771 6 -10662988.013 5 22300967.711 22300964.523 22300966.681
+ 40.800 33.500
+ -20524397.220 7 -15993027.850 6 20576608.173 20576606.519 20576607.676
+ 45.600 41.400
+ 54148.134 3 42195.269 2 25229657.935 25229656.373 25229656.716
+ 21.600 17.800
+ -20009733.928 7 -15591990.151 7 20509382.590 20509380.864 20509381.955
+ 44.000 43.500
+ 06 1 2 0 53 30.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -3978146.180 4 -3099842.191 3 24066432.010 24066429.828 24066432.063
+ 24.900 21.100
+ -18010209.137 7 -14033917.479 6 21381485.000 21381484.009 21381484.245
+ 42.600 39.300
+ -3229973.425 4 -2516860.624 3 24237889.195 24237888.576 24237888.446
+ 24.200 20.500
+ -17530833.532 7 -13660373.369 6 21165627.413 21165626.203 21165626.480
+ 45.600 40.000
+ -536455.517 3 -418016.723 3 24478026.192 24478024.460 24478024.818
+ 23.400 23.800
+ -13770448.684 6 -10730212.867 5 22284550.520 22284547.470 22284549.518
+ 41.100 33.400
+ -20589589.027 7 -16043826.644 6 20564202.398 20564200.986 20564201.925
+ 45.400 41.700
+ 77136.829 3 60108.529 2 25234031.878 25234029.889 25234030.991
+ 20.500 13.900
+ -20032858.268 7 -15610009.104 7 20504982.445 20504980.431 20504981.649
+ 44.300 43.600
+ 06 1 2 0 54 0.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -3873971.701 4 -3018667.321 3 24086255.907 24086253.821 24086255.713
+ 26.200 19.900
+ -17978335.553 7 -14009080.924 6 21387550.354 21387549.108 21387549.617
+ 42.100 38.900
+ -3265340.437 3 -2544419.318 3 24231159.025 24231158.246 24231157.672
+ 23.800 21.100
+ -17466920.300 7 -13610570.851 6 21177790.259 21177788.467 21177788.992
+ 45.300 39.800
+ -640962.799 4 -499450.942 3 24458138.915 24458137.209 24458138.108
+ 24.900 21.600
+ -13856554.890 6 -10797308.603 5 22268165.245 22268161.837 22268164.279
+ 41.100 33.800
+ -20654177.750 7 -16094155.494 6 20551911.630 20551910.205 20551911.116
+ 45.400 41.800
+ 100583.600 3 78378.709 2 25238493.427 25238492.403 25238492.430
+ 22.600 17.800
+ -20055392.055 7 -15627567.888 7 20500694.563 20500692.434 20500693.782
+ 44.300 43.700
+ 06 1 2 0 54 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -3769653.655 4 -2937380.516 3 24106106.954 24106104.783 24106106.968
+ 26.800 21.600
+ -17945914.386 7 -13983817.685 6 21393719.875 21393718.520 21393719.080
+ 42.200 38.600
+ -3300205.900 3 -2571587.175 3 24224524.915 24224524.718 24224523.864
+ 23.800 23.800
+ -17402758.278 7 -13560574.467 6 21189999.877 21189998.148 21189998.582
+ 45.300 39.800
+ -745467.870 4 -580883.452 3 24438251.786 24438251.130 24438250.652
+ 24.600 21.100
+ -13942493.438 6 -10864273.691 5 22251811.479 22251808.665 22251810.515
+ 40.800 34.700
+ -20718161.439 7 -16144012.890 6 20539735.862 20539734.519 20539735.431
+ 45.400 41.900
+ -20077335.099 7 -15644666.355 7 20496518.838 20496516.796 20496518.085
+ 44.400 43.800
+ 06 1 2 0 55 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3665193.111 4 -2855982.717 3 24125984.317 24125983.058 24125984.734
+ 24.900 22.100
+ -17912946.794 7 -13958128.650 6 21399993.373 21399992.138 21399992.663
+ 42.400 38.600
+ -3334567.517 3 -2598362.440 3 24217985.976 24217985.535 24217984.657
+ 21.600 23.000
+ -17338348.956 7 -13510385.383 6 21202256.343 21202254.851 21202255.130
+ 45.300 39.700
+ -849969.529 4 -662313.271 3 24418365.080 24418364.731 24418364.403
+ 24.600 21.600
+ -14028262.447 6 -10931106.661 5 22235490.408 22235487.086 22235489.306
+ 41.300 34.000
+ -20781537.976 7 -16193397.203 6 20527675.822 20527674.163 20527675.279
+ 45.400 41.700
+ -20098687.070 7 -15661304.241 7 20492455.580 20492453.545 20492454.915
+ 44.500 43.800
+ 06 1 2 0 55 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -3560591.187 3 -2774474.757 4 24145890.631 24145888.675 24145890.214
+ 23.800 25.300
+ -17879433.958 6 -13932014.752 6 21406370.683 21406369.269 21406369.920
+ 41.900 38.100
+ -3368423.170 4 -2624743.435 3 24211543.432 24211542.849 24211542.394
+ 25.300 22.600
+ -17273693.772 7 -13460004.719 6 21214559.766 21214558.278 21214558.582
+ 45.300 39.700
+ -954466.570 3 -743739.493 3 24398480.230 24398479.327 24398479.396
+ 23.000 23.000
+ -14113860.524 6 -10997806.450 5 22219201.343 22219198.211 22219200.426
+ 41.400 33.400
+ -20844305.218 7 -16242306.732 6 20515731.699 20515729.889 20515731.152
+ 45.600 41.600
+ -20119447.937 7 -15677481.527 7 20488504.885 20488502.856 20488504.244
+ 44.400 43.600
+ 06 1 2 0 56 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3455849.296 4 -2692857.719 3 24165822.533 24165820.404 24165822.016
+ 27.400 23.400
+ -17845376.964 6 -13905476.844 6 21412851.521 21412850.019 21412850.789
+ 41.900 38.200
+ -3401771.439 4 -2650729.059 3 24205197.433 24205196.797 24205196.649
+ 24.600 23.000
+ -17208794.451 7 -13409433.816 6 21226909.790 21226908.121 21226908.631
+ 45.300 39.700
+ -1058957.492 3 -825160.945 3 24378596.684 24378596.126 24378595.896
+ 23.400 23.000
+ -14199285.581 6 -11064371.430 5 22202945.901 22202942.384 22202944.688
+ 41.400 33.500
+ -20906461.338 7 -16290740.050 6 20503903.922 20503902.048 20503903.274
+ 45.600 41.800
+ -20139617.218 7 -15693197.844 7 20484666.792 20484664.840 20484666.090
+ 44.400 43.700
+ 06 1 2 0 56 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -3350968.436 4 -2611132.418 3 24185780.899 24185778.680 24185780.662
+ 26.500 23.000
+ -17810777.139 7 -13878515.941 6 21419435.712 21419434.437 21419434.994
+ 42.200 38.700
+ -3434609.990 4 -2676317.511 3 24198949.093 24198947.682 24198947.855
+ 26.500 21.100
+ -17143652.520 7 -13358673.872 6 21239305.901 21239304.451 21239304.685
+ 45.300 39.900
+ -1163441.109 3 -906576.711 3 24358715.162 24358712.930 24358713.830
+ 23.400 21.600
+ -14284535.625 6 -11130800.017 5 22186723.193 22186720.031 22186722.142
+ 41.600 33.800
+ -20968004.156 7 -16338695.475 6 20492192.347 20492190.783 20492191.955
+ 45.600 41.900
+ -20159194.764 7 -15708453.059 7 20480941.446 20480939.356 20480940.670
+ 44.400 44.000
+ 06 1 2 0 57 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3245950.153 4 -2529300.024 4 24205765.780 24205762.992 24205765.188
+ 24.600 24.600
+ -17775635.926 6 -13851133.184 6 21426122.830 21426121.735 21426121.977
+ 41.900 38.600
+ -3466937.520 4 -2701507.809 3 24192796.641 24192796.017 24192795.981
+ 24.200 21.100
+ -17078269.292 7 -13307725.901 6 21251747.933 21251746.338 21251746.756
+ 45.200 39.500
+ -1267916.029 3 -987985.725 2 24338832.609 24338831.590 24338831.348
+ 23.400 17.000
+ -14369609.147 6 -11197091.070 5 22170534.187 22170530.937 22170533.135
+ 41.500 34.400
+ -21028931.768 7 -16386171.512 6 20480598.244 20480596.600 20480597.650
+ 45.500 41.900
+ -20178180.454 7 -15723247.089 7 20477328.464 20477326.479 20477327.752
+ 44.400 43.800
+ 06 1 2 0 57 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -3140795.618 4 -2447361.443 3 24225776.245 24225772.517 24225775.331
+ 24.200 19.300
+ -17739954.273 7 -13823329.308 6 21432912.984 21432911.434 21432912.156
+ 42.000 38.100
+ -3498752.377 4 -2726298.571 3 24186743.924 24186741.840 24186742.661
+ 27.600 22.600
+ -17012646.163 7 -13256590.994 6 21264235.365 21264233.926 21264234.246
+ 44.900 39.300
+ -1372380.976 3 -1069386.919 3 24318952.926 24318953.114 24318951.969
+ 21.100 20.500
+ -14454504.241 7 -11263243.076 5 22154379.121 22154376.132 22154378.131
+ 42.000 34.600
+ -21089242.202 7 -16433166.634 7 20469121.387 20469119.930 20469120.955
+ 45.400 42.100
+ -20196573.994 7 -15737579.713 7 20473828.263 20473826.252 20473827.558
+ 44.300 43.900
+ 06 1 2 0 58 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3035505.985 3 -2365317.604 3 24245812.631 24245808.654 24245811.335
+ 23.000 22.600
+ -17703733.728 7 -13795105.507 6 21439805.642 21439803.836 21439804.830
+ 42.300 38.000
+ -3530052.467 4 -2750688.236 3 24180786.840 24180784.993 24180785.201
+ 26.200 19.900
+ -16946784.350 7 -13205270.099 6 21276768.756 21276766.927 21276767.503
+ 45.000 39.200
+ -1476834.376 3 -1150779.132 3 24299076.848 24299075.979 24299075.732
+ 20.500 23.800
+ -14539218.913 6 -11329254.492 5 22138258.750 22138255.437 22138257.496
+ 41.700 34.600
+ -21148933.608 7 -16479679.398 7 20457762.472 20457761.095 20457762.119
+ 45.700 42.200
+ -20214375.263 7 -15751450.817 7 20470440.845 20470438.756 20470440.082
+ 44.300 43.900
+ 06 1 2 0 58 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -2930082.386 4 -2283169.373 3 24265873.093 24265870.133 24265872.411
+ 25.300 23.800
+ -17666975.435 7 -13766462.686 6 21446800.544 21446798.845 21446799.661
+ 42.000 38.100
+ -3560836.121 4 -2774675.469 3 24174928.569 24174927.747 24174927.844
+ 28.400 21.600
+ -16880685.604 7 -13153764.583 6 21289346.911 21289345.296 21289345.759
+ 45.000 39.600
+ -1581274.980 3 -1232161.332 3 24279201.832 24279201.553 24279201.087
+ 23.400 19.900
+ -14623751.458 6 -11395123.996 5 22122172.357 22122169.158 22122171.295
+ 41.900 34.100
+ -21208004.083 7 -16525708.324 7 20446521.719 20446520.174 20446521.330
+ 45.600 42.000
+ -20231584.239 7 -15764860.397 7 20467165.912 20467164.014 20467165.261
+ 44.300 43.800
+ 06 1 2 0 59 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2824526.149 3 -2200917.817 3 24285959.366 24285957.114 24285958.803
+ 23.800 23.800
+ -17629680.937 7 -13737402.050 6 21453897.173 21453895.489 21453896.515
+ 42.200 37.700
+ -3591101.978 4 -2798259.230 3 24169169.179 24169168.055 24169168.439
+ 25.300 21.600
+ -16814351.300 7 -13102075.515 6 21301969.842 21301968.391 21301968.667
+ 44.900 39.700
+ -1685701.368 3 -1313532.551 2 24259330.567 24259329.400 24259329.716
+ 23.000 17.800
+ -14708099.684 7 -11460849.878 5 22106121.668 22106118.496 22106120.589
+ 42.300 34.900
+ -21266451.657 7 -16571251.873 7 20435399.591 20435397.922 20435399.058
+ 45.600 42.000
+ -20248200.705 7 -15777808.286 7 20464004.017 20464002.047 20464003.309
+ 44.300 44.000
+ 06 1 2 0 59 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -2718838.695 4 -2118564.032 3 24306071.344 24306069.293 24306071.021
+ 26.200 22.600
+ -17591851.356 7 -13707924.449 6 21461096.080 21461094.421 21461095.308
+ 42.100 38.300
+ -3620848.343 4 -2821438.203 3 24163508.714 24163507.606 24163508.078
+ 28.400 21.600
+ -16747782.955 7 -13050204.070 6 21314637.573 21314635.819 21314636.285
+ 44.700 39.500
+ -1790112.173 4 -1394891.601 2 24239462.568 24239460.333 24239461.483
+ 24.200 17.000
+ -14792262.006 7 -11526430.894 5 22090105.863 22090102.832 22090104.820
+ 42.100 34.800
+ -21324274.575 7 -16616308.679 7 20424396.339 20424394.673 20424395.830
+ 45.600 42.400
+ -20264224.659 7 -15790294.471 7 20460954.886 20460952.726 20460954.055
+ 44.400 44.000
+ 06 1 2 1 0 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2613020.926 4 -2036108.583 2 24326207.833 24326204.593 24326207.071
+ 24.900 16.100
+ -17553488.361 7 -13678031.216 6 21468396.338 21468394.915 21468395.539
+ 42.100 38.100
+ -3650072.975 4 -2844210.630 3 24157947.981 24157945.707 24157947.036
+ 28.100 19.300
+ -16680982.117 7 -12998151.466 6 21327349.154 21327347.592 21327347.955
+ 44.700 39.100
+ -1894505.898 4 -1476237.373 3 24219596.733 24219595.697 24219595.590
+ 24.900 22.600
+ -14876236.701 7 -11591865.710 5 22074125.924 22074123.092 22074124.986
+ 42.400 35.300
+ -21381470.925 7 -16660877.249 7 20413512.189 20413510.695 20413511.720
+ 45.500 42.500
+ -20279656.126 7 -15802318.982 7 20458018.224 20458016.213 20458017.555
+ 44.300 43.900
+ 06 1 2 1 0 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -2507074.369 4 -1953552.837 3 24346368.951 24346365.474 24346368.220
+ 24.900 19.900
+ -17514593.137 7 -13647723.253 6 21475797.841 21475796.197 21475797.124
+ 42.100 37.800
+ -3678774.413 4 -2866575.372 3 24152485.717 24152484.285 24152484.976
+ 27.900 22.100
+ -16613950.073 7 -12945918.697 6 21340104.962 21340103.241 21340103.773
+ 44.700 38.900
+ -1998881.231 4 -1557568.741 4 24199735.080 24199733.983 24199734.104
+ 24.900 24.900
+ -14960021.911 7 -11657152.879 5 22058182.203 22058179.152 22058181.160
+ 42.200 34.900
+ -21438039.049 7 -16704956.293 7 20402747.710 20402746.092 20402747.169
+ 45.600 42.600
+ -20294494.938 7 -15813881.686 7 20455194.556 20455192.488 20455193.865
+ 44.500 44.100
+ 06 1 2 1 1 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2401000.331 3 -1870897.748 3 24366555.324 24366551.259 24366554.022
+ 23.800 18.600
+ -17475167.445 6 -13617001.939 6 21483300.118 21483298.617 21483299.319
+ 41.500 37.700
+ -3706951.300 4 -2888531.374 3 24147124.041 24147122.459 24147122.987
+ 27.400 21.600
+ -16546688.451 7 -12893507.048 6 21352904.237 21352902.921 21352903.089
+ 44.400 39.100
+ -2103236.706 4 -1638884.660 4 24179877.358 24179875.663 24179876.286
+ 28.600 24.600
+ -15043615.562 7 -11722290.776 5 22042275.134 22042271.646 22042273.909
+ 42.300 34.700
+ -21493976.938 7 -16748544.240 7 20392103.005 20392101.492 20392102.487
+ 45.800 42.700
+ -20308741.352 7 -15824982.779 7 20452483.373 20452481.443 20452482.745
+ 44.300 44.000
+ 06 1 2 1 1 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -2294799.887 3 -1788144.160 3 24386763.211 24386761.183 24386762.251
+ 21.600 23.800
+ -17435212.379 6 -13585868.134 6 21490903.413 21490901.945 21490902.522
+ 41.400 38.000
+ -3734602.082 4 -2910077.415 3 24141862.660 24141860.525 24141861.529
+ 28.600 20.500
+ -16479198.456 7 -12840917.449 6 21365747.172 21365745.700 21365746.045
+ 44.400 38.500
+ -2207571.054 4 -1720184.140 3 24160022.703 24160021.040 24160021.548
+ 28.600 23.400
+ -15127015.718 7 -11787277.904 5 22026404.690 22026400.956 22026403.463
+ 42.200 34.600
+ -21549283.025 7 -16791639.873 7 20381578.746 20381576.994 20381578.106
+ 45.800 42.600
+ -20322395.099 7 -15835622.057 7 20449885.160 20449883.207 20449884.485
+ 44.100 44.000
+ 06 1 2 1 2 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2188474.130 3 -1705293.007 4 24406996.736 24406994.188 24406995.933
+ 22.600 24.600
+ -17394729.365 6 -13554322.936 6 21498606.763 21498605.586 21498606.079
+ 41.500 37.800
+ -3761725.374 4 -2931212.454 3 24136700.485 24136698.847 24136699.618
+ 27.900 18.600
+ -16411481.427 7 -12788150.929 6 21378633.136 21378631.782 21378632.047
+ 44.600 38.600
+ -2311882.754 3 -1801465.988 3 24140172.035 24140171.339 24140170.934
+ 23.000 23.400
+ -15210220.583 7 -11852112.855 5 22010571.044 22010567.828 22010569.983
+ 42.700 35.100
+ -21603955.482 7 -16834241.775 7 20371174.915 20371173.180 20371174.348
+ 46.000 42.800
+ -20335456.534 7 -15845799.789 7 20447399.707 20447397.717 20447398.987
+ 44.400 44.100
+ 06 1 2 1 2 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -2082024.623 4 -1622345.375 3 24427254.351 24427250.636 24427253.392
+ 28.400 18.600
+ -17353720.127 6 -13522367.687 6 21506410.800 21506409.470 21506410.041
+ 41.800 37.700
+ -3788318.951 4 -2951934.706 3 24131640.913 24131639.212 24131639.742
+ 29.900 21.100
+ -16343538.914 7 -12735208.709 6 21391562.533 21391560.791 21391561.327
+ 44.500 38.600
+ -2416170.540 3 -1882729.141 4 24120326.746 24120326.204 24120325.641
+ 21.100 25.600
+ -15293228.274 7 -11916794.165 5 21994775.124 21994772.147 21994774.223
+ 43.000 35.800
+ -21657992.727 7 -16876348.701 7 20360891.980 20360890.177 20360891.350
+ 46.000 42.700
+ -20347925.352 7 -15855515.745 7 20445026.728 20445024.927 20445026.061
+ 44.100 44.100
+ 06 1 2 1 3 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1975452.629 3 -1539302.253 2 24447533.822 24447530.156 24447532.805
+ 22.100 16.100
+ -17312186.026 6 -13490003.457 6 21514314.735 21514313.266 21514313.936
+ 41.600 37.700
+ -3814381.482 4 -2972243.180 3 24126680.989 24126679.060 24126679.808
+ 27.900 18.600
+ -16275372.321 7 -12682091.875 6 21404534.399 21404532.419 21404533.182
+ 44.400 38.600
+ -2520432.860 3 -1963972.484 4 24100486.591 24100485.450 24100485.468
+ 23.000 24.900
+ -15376036.956 7 -11981320.396 5 21979017.205 21979013.936 21979016.126
+ 42.800 35.300
+ -21711392.991 7 -16917959.279 7 20350729.951 20350728.477 20350729.449
+ 45.600 42.700
+ -20359801.887 7 -15864770.183 7 20442766.862 20442764.835 20442766.052
+ 44.000 44.200
+ 06 1 2 1 3 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -1868759.164 3 -1456164.531 2 24467836.513 24467833.546 24467835.631
+ 22.600 17.000
+ -17270128.645 6 -13457231.482 6 21522317.586 21522316.546 21522316.890
+ 41.200 38.000
+ -3839910.747 4 -2992136.074 3 24121822.712 24121821.189 24121821.915
+ 29.200 22.100
+ -16206983.059 7 -12628801.538 6 21417548.141 21417546.592 21417546.919
+ 44.200 38.500
+ -2624667.994 3 -2045194.627 3 24080652.147 24080649.673 24080650.987
+ 22.100 23.400
+ -15458644.524 7 -12045689.924 5 21963297.245 21963294.267 21963296.504
+ 43.200 35.700
+ -21764154.650 7 -16959072.246 7 20340689.778 20340688.199 20340689.214
+ 45.600 42.700
+ -20371086.319 7 -15873563.240 7 20440619.485 20440617.584 20440618.766
+ 44.300 44.300
+ 06 1 2 1 4 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1761945.832 3 -1372933.417 3 24488161.428 24488159.351 24488161.164
+ 19.300 18.600
+ -17227549.352 6 -13424052.820 6 21530420.449 21530419.050 21530419.629
+ 41.400 37.800
+ -3864906.510 4 -3011613.290 3 24117066.013 24117064.885 24117065.133
+ 28.400 22.600
+ -16138372.709 7 -12575338.930 6 21430604.082 21430602.648 21430602.877
+ 44.200 38.600
+ -2728874.487 4 -2126394.461 3 24060822.366 24060819.981 24060821.345
+ 24.600 23.000
+ -15541049.144 7 -12109901.313 5 21947616.526 21947613.224 21947615.456
+ 43.100 35.500
+ -21816276.117 7 -16999686.363 7 20330771.190 20330769.836 20330770.776
+ 45.800 43.000
+ -20381778.748 7 -15881894.995 7 20438585.028 20438582.964 20438584.189
+ 44.600 44.300
+ 06 1 2 1 4 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -1655013.645 3 -1289609.659 2 24508511.093 24508507.653 24508510.002
+ 19.300 17.800
+ -17184450.006 6 -13390468.918 6 21538621.971 21538620.439 21538621.299
+ 41.400 37.500
+ -3889367.054 4 -3030673.439 3 24112410.878 24112410.072 24112409.645
+ 25.300 22.600
+ -16069542.667 7 -12521705.131 6 21443702.097 21443700.541 21443700.908
+ 44.200 38.300
+ -2833051.073 4 -2207571.003 3 24040998.025 24040996.058 24040996.825
+ 24.900 22.100
+ -15623248.898 7 -12173953.066 5 21931974.229 21931971.204 21931973.310
+ 43.000 35.600
+ -21867755.783 7 -17039800.376 7 20320975.091 20320973.568 20320974.610
+ 45.700 42.800
+ -20391879.211 7 -15889765.478 7 20436662.773 20436660.842 20436662.116
+ 44.600 44.400
+ 06 1 2 1 5 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1547963.851 4 -1206194.256 3 24528882.488 24528878.713 24528881.443
+ 26.500 18.600
+ -17140832.254 6 -13356481.069 6 21546922.081 21546920.690 21546921.229
+ 40.700 37.600
+ -3913290.769 4 -3049315.265 3 24107859.099 24107857.596 24107857.933
+ 27.900 22.600
+ -16000494.218 7 -12467901.145 6 21456841.979 21456840.062 21456840.605
+ 44.200 38.300
+ -2937196.306 3 -2288723.116 3 24021179.812 24021177.927 24021178.355
+ 23.800 21.600
+ -15705241.756 7 -12237843.591 6 21916371.361 21916368.532 21916370.287
+ 42.600 36.300
+ -21918592.001 7 -17079412.996 7 20311301.298 20311299.699 20311300.744
+ 45.800 43.000
+ -20401388.105 7 -15897175.004 7 20434853.336 20434851.239 20434852.640
+ 44.800 44.300
+ 06 1 2 1 5 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -1440798.011 4 -1122688.336 3 24549275.367 24549271.282 24549273.943
+ 25.300 18.600
+ -17096697.418 6 -13322090.298 6 21555320.703 21555319.357 21555319.912
+ 41.000 37.700
+ -3936675.807 4 -3067537.341 3 24103408.263 24103407.474 24103407.322
+ 25.900 21.100
+ -15931228.885 7 -12413928.162 6 21470022.471 21470020.778 21470021.327
+ 44.300 38.000
+ -3041308.494 4 -2369849.469 3 24001367.275 24001365.465 24001366.258
+ 25.300 21.100
+ -15787026.035 7 -12301571.586 6 21900808.531 21900805.462 21900807.503
+ 43.300 36.300
+ -21968783.235 7 -17118523.035 7 20301750.051 20301748.517 20301749.581
+ 45.600 42.900
+ -20410305.576 7 -15904123.669 7 20433156.501 20433154.259 20433155.759
+ 44.600 44.200
+ 06 1 2 1 6 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1333516.936 3 -1039092.759 3 24569690.933 24569687.002 24569689.090
+ 21.100 22.600
+ -17052047.229 6 -13287297.949 6 21563817.206 21563816.016 21563816.479
+ 41.400 37.400
+ -3959521.078 4 -3085338.850 3 24099061.639 24099060.255 24099060.601
+ 26.800 21.100
+ -15861747.906 7 -12359787.138 6 21483243.963 21483242.570 21483242.915
+ 44.200 37.900
+ -3145386.294 4 -2450949.029 3 23981562.039 23981560.661 23981560.795
+ 27.600 21.600
+ -15868599.611 7 -12365135.407 5 21885285.537 21885282.370 21885284.546
+ 43.200 35.900
+ -22018328.098 7 -17157129.405 7 20292322.183 20292320.418 20292321.593
+ 45.900 42.900
+ -20418631.854 7 -15910611.675 7 20431572.075 20431569.854 20431571.316
+ 44.800 44.400
+ 06 1 2 1 6 30.0000000 0 8G02G06G08G10G15G21G26G29
+ -1226122.173 3 -955408.547 3 24590126.615 24590123.624 24590125.082
+ 21.100 20.500
+ -17006883.161 6 -13252105.175 6 21572411.685 21572410.148 21572411.034
+ 41.300 36.700
+ -3981825.233 4 -3102718.711 3 24094817.384 24094815.810 24094816.439
+ 28.400 21.600
+ -15792052.547 7 -12305479.068 6 21496507.200 21496505.092 21496505.921
+ 44.100 37.700
+ -3249428.079 4 -2532020.534 4 23961763.503 23961762.393 23961762.252
+ 28.400 24.200
+ -15949960.350 7 -12428533.379 6 21869803.218 21869800.023 21869802.205
+ 43.400 36.100
+ -22067225.029 7 -17195230.897 7 20283017.189 20283015.643 20283016.754
+ 45.700 43.000
+ -20426367.169 7 -15916639.180 7 20430100.155 20430097.926 20430099.402
+ 44.700 44.400
+ 06 1 2 1 7 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1118614.951 3 -871636.744 3 24610585.320 24610581.317 24610583.737
+ 19.900 22.600
+ -16961207.141 6 -13216513.480 6 21581103.647 21581102.056 21581102.915
+ 41.100 36.800
+ -4003587.045 4 -3119675.983 3 24090676.087 24090674.814 24090674.926
+ 26.800 23.000
+ -15722144.223 7 -12251005.051 6 21509810.115 21509808.199 21509808.919
+ 43.900 37.700
+ -3353432.395 4 -2613062.871 3 23941971.323 23941970.693 23941970.710
+ 28.400 22.600
+ -16031106.513 7 -12491764.147 6 21854361.490 21854358.309 21854360.535
+ 43.300 36.100
+ -22115472.570 7 -17232826.375 7 20273836.174 20273834.530 20273835.663
+ 45.900 43.100
+ -20433511.751 7 -15922206.385 7 20428740.282 20428738.404 20428739.709
+ 44.700 44.500
+ 06 1 2 1 7 30.0000000 0 7G06G08G10G15G21G26G29
+ -16915020.629 6 -13180524.000 6 21589892.755 21589891.263 21589891.889
+ 41.100 36.700
+ -4024804.891 4 -3136209.349 3 24086638.802 24086637.321 24086637.607
+ 27.900 23.400
+ -15652024.174 7 -12196366.055 6 21523153.524 21523151.627 21523152.267
+ 44.000 37.700
+ -3457397.730 4 -2694074.784 4 23922189.419 23922187.195 23922187.787
+ 26.200 26.800
+ -16112036.135 7 -12554826.181 6 21838961.174 21838957.981 21838960.111
+ 43.500 36.800
+ -22163069.284 7 -17269914.712 7 20264778.971 20264777.205 20264778.418
+ 46.400 43.500
+ -20440066.043 7 -15927313.613 7 20427493.367 20427491.136 20427492.517
+ 44.400 44.500
+ 06 1 2 1 8 0.0000000 0 7G06G08G10G15G21G26G29
+ -16868325.366 6 -13144138.091 6 21598778.473 21598777.167 21598777.751
+ 41.100 37.200
+ -4045477.556 4 -3152317.869 3 24082704.858 24082703.362 24082703.821
+ 28.600 22.600
+ -15581693.986 7 -12141563.315 6 21536536.445 21536535.017 21536535.437
+ 43.700 37.700
+ -3561322.377 3 -2775054.986 4 23902412.066 23902410.806 23902410.784
+ 23.000 27.100
+ -16192747.463 7 -12617718.120 6 21823602.205 21823599.160 21823601.343
+ 44.100 36.400
+ -22210013.715 7 -17306494.775 7 20255845.826 20255844.092 20255845.218
+ 46.200 43.800
+ -20446030.179 7 -15931960.990 7 20426358.248 20426356.164 20426357.486
+ 44.300 44.500
+ 06 1 2 1 8 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16821123.251 6 -13107357.237 6 21607760.879 21607759.346 21607760.151
+ 41.200 37.100
+ -4065603.711 4 -3168000.589 3 24078873.883 24078873.552 24078873.395
+ 28.600 23.400
+ -15511155.054 7 -12086597.918 6 21549959.846 21549958.327 21549958.661
+ 43.700 37.900
+ -3665205.030 4 -2856002.461 4 23882642.789 23882642.705 23882641.998
+ 24.200 27.600
+ -164892.002 2 0.000 23660718.605 0.000 23660716.666
+ 15.100 0.000
+ -16273238.251 7 -12680438.205 6 21808285.254 21808282.068 21808284.368
+ 44.000 36.200
+ -22256304.510 7 -17342565.506 7 20247036.771 20247035.114 20247036.270
+ 46.100 43.600
+ -20451404.804 7 -15936148.996 7 20425335.537 20425333.365 20425334.797
+ 44.400 44.700
+ 06 1 2 1 9 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16773416.008 6 -13070182.766 6 21616839.442 21616837.906 21616838.716
+ 41.500 37.200
+ -4085182.288 4 -3183256.609 3 24075149.800 24075147.765 24075148.486
+ 27.400 22.600
+ -15440408.537 7 -12031470.760 6 21563422.637 21563420.696 21563421.417
+ 43.800 37.500
+ -3769044.120 3 -2936915.993 4 23862882.835 23862882.972 23862881.671
+ 23.800 28.400
+ -249979.334 2 -194788.587 9 23644527.116 23644525.233 23644525.702
+ 12.600 -3.000
+ -16353506.592 7 -12742984.958 6 21793010.824 21793007.637 21793009.793
+ 43.800 36.800
+ -22301940.428 7 -17378125.950 7 20238352.395 20238350.887 20238351.932
+ 46.100 43.600
+ -20456190.116 7 -15939877.808 7 20424424.965 20424422.825 20424424.145
+ 44.400 44.600
+ 06 1 2 1 9 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16725205.300 6 -13032615.994 6 21626013.384 21626012.274 21626012.713
+ 41.100 37.700
+ -4104211.833 4 -3198084.821 3 24071527.533 24071526.521 24071526.614
+ 27.900 21.600
+ -15369455.779 7 -11976182.897 6 21576923.952 21576922.377 21576922.971
+ 44.000 37.300
+ -3872837.973 4 -3017794.272 4 23843132.180 23843131.191 23843131.078
+ 25.600 28.400
+ -334928.825 2 -260982.976 9 23628362.057 23628360.058 23628361.048
+ 17.000 -3.000
+ -16433550.426 7 -12805356.765 6 21777779.101 21777776.034 21777778.007
+ 44.000 37.200
+ -22346920.001 7 -17413174.961 7 20229793.070 20229791.555 20229792.550
+ 46.100 43.400
+ -20460386.674 7 -15943147.841 7 20423626.199 20423624.237 20423625.544
+ 44.200 44.700
+ 06 1 2 1 10 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16676493.091 6 -12994658.448 6 21635283.235 21635281.941 21635282.367
+ 41.000 37.600
+ -4122691.178 4 -3212484.307 3 24068011.060 24068009.786 24068009.760
+ 28.100 22.100
+ -15298298.254 7 -11920735.474 6 21590464.898 21590463.710 21590463.929
+ 43.700 37.700
+ -3976584.984 4 -3098636.067 4 23823390.360 23823388.955 23823389.230
+ 28.100 28.800
+ -419739.750 3 -327069.400 1 23612222.398 23612220.664 23612221.790
+ 18.600 6.500
+ -16513367.723 7 -12867552.048 6 21762590.408 21762586.998 21762589.460
+ 44.400 36.700
+ -22391241.883 7 -17447711.481 7 20221359.112 20221357.309 20221358.552
+ 46.300 43.600
+ -20463994.738 7 -15945959.323 7 20422939.693 20422937.556 20422938.925
+ 44.300 44.500
+ 06 1 2 1 10 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16627280.908 6 -12956311.302 6 21644647.694 21644646.485 21644647.010
+ 40.600 37.100
+ -4140619.611 4 -3226454.501 3 24064599.159 24064597.900 24064598.253
+ 28.400 21.100
+ -15226937.347 7 -11865129.576 6 21604044.691 21604043.128 21604043.529
+ 43.400 37.200
+ -4080283.565 4 -3179440.125 4 23803656.127 23803655.834 23803655.492
+ 26.200 28.100
+ -504411.490 3 -393047.335 2 23596109.813 23596108.247 23596108.942
+ 21.100 15.100
+ -16592956.613 7 -12929569.359 6 21747445.086 21747441.863 21747443.976
+ 44.200 36.900
+ -22434905.004 7 -17481734.676 7 20213050.233 20213048.470 20213049.721
+ 46.100 43.600
+ -20467014.731 7 -15948312.551 7 20422364.856 20422362.760 20422364.187
+ 44.300 44.700
+ 06 1 2 1 11 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16577570.619 6 -12917576.021 6 21654107.095 21654106.089 21654106.362
+ 40.200 37.200
+ -4157995.149 4 -3239993.860 3 24061292.944 24061291.580 24061291.712
+ 25.900 20.500
+ -15155374.319 7 -11809366.187 6 21617662.450 21617661.004 21617661.394
+ 43.300 37.500
+ -4183932.039 4 -3260205.116 4 23783933.129 23783932.052 23783932.106
+ 26.800 25.900
+ -588943.736 2 -458916.595 2 23580024.401 23580021.986 23580022.847
+ 17.800 16.100
+ -16672315.114 7 -12991407.140 6 21732343.569 21732340.263 21732342.562
+ 44.300 36.900
+ -22477907.990 7 -17515243.489 7 20204866.848 20204865.266 20204866.414
+ 46.200 43.800
+ -20469447.264 7 -15950208.027 7 20421902.038 20421899.943 20421901.196
+ 44.200 44.800
+ 06 1 2 1 11 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16527364.205 6 -12878454.158 6 21663661.418 21663660.080 21663660.640
+ 40.500 36.900
+ -4174816.454 4 -3253101.361 3 24058091.203 24058090.266 24058090.806
+ 27.900 20.500
+ -15083610.495 7 -11753446.327 6 21631318.799 21631317.171 21631317.745
+ 43.300 37.200
+ -4287528.846 4 -3340929.914 4 23764219.087 23764217.943 23764218.091
+ 28.600 24.200
+ -673336.347 3 -524677.020 2 23563964.424 23563962.481 23563963.785
+ 22.600 17.000
+ -16751441.049 7 -13053063.702 6 21717286.211 21717283.163 21717285.238
+ 44.200 37.000
+ -22520249.776 7 -17548237.074 7 20196809.418 20196807.817 20196808.942
+ 46.100 43.800
+ -20471292.705 7 -15951646.023 7 20421550.614 20421548.894 20421549.983
+ 44.100 44.800
+ 06 1 2 1 12 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16476663.294 6 -12838946.971 6 21673309.577 21673308.088 21673308.841
+ 40.600 36.800
+ -4191082.217 4 -3265775.946 3 24054996.896 24054995.209 24054995.794
+ 26.500 22.600
+ -15011647.066 7 -11697370.930 6 21645012.973 21645011.365 21645011.895
+ 43.200 37.100
+ -4391072.568 4 -3421613.297 3 23744515.401 23744513.368 23744514.451
+ 28.600 19.900
+ -757588.144 4 -590327.736 3 23547932.221 23547929.809 23547931.396
+ 25.600 19.300
+ -16830332.494 7 -13114537.544 6 21702273.768 21702270.820 21702272.831
+ 44.600 37.500
+ -22561928.893 7 -17580714.296 7 20188878.290 20188876.563 20188877.790
+ 46.100 43.700
+ -20472551.758 7 -15952627.094 7 20421311.165 20421309.296 20421310.453
+ 44.200 44.800
+ 06 1 2 1 12 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16425469.986 6 -12799056.100 6 21683051.093 21683049.773 21683050.374
+ 40.200 36.300
+ -4206791.937 4 -3278017.313 3 24052007.542 24052005.702 24052006.314
+ 28.400 19.900
+ -14939485.564 7 -11641141.188 6 21658744.957 21658743.355 21658743.801
+ 43.000 37.100
+ -4494561.343 4 -3502253.873 3 23724822.485 23724819.989 23724821.195
+ 26.500 22.600
+ -841699.156 4 -655868.754 3 23531925.770 23531923.769 23531925.155
+ 26.800 21.600
+ -16908987.717 7 -13175827.319 6 21687306.393 21687303.001 21687305.184
+ 44.300 37.500
+ -22602944.327 7 -17612674.362 7 20181073.178 20181071.552 20181072.722
+ 45.900 43.700
+ -20473224.903 7 -15953151.622 7 20421183.088 20421181.159 20421182.364
+ 44.100 44.800
+ 06 1 2 1 13 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16373785.932 6 -12758782.822 6 21692886.151 21692884.849 21692885.386
+ 40.300 36.400
+ -4221944.883 4 -3289824.798 3 24049123.716 24049122.003 24049122.714
+ 29.200 21.100
+ -14867127.086 7 -11584757.966 6 21672514.331 21672512.630 21672513.134
+ 43.100 36.500
+ -4597993.670 4 -3582850.506 3 23705139.931 23705137.611 23705139.271
+ 27.900 19.900
+ -925668.471 4 -721299.339 3 23515946.786 23515945.227 23515946.091
+ 28.100 23.400
+ -16987404.407 7 -13236931.223 6 21672383.851 21672380.830 21672383.003
+ 44.600 37.300
+ -22643295.116 7 -17644116.523 7 20173394.647 20173393.127 20173394.205
+ 46.100 44.000
+ -20473312.580 7 -15953219.930 7 20421166.517 20421164.490 20421165.736
+ 44.400 44.600
+ 06 1 2 1 13 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16321613.168 6 -12718128.734 6 21702814.004 21702813.156 21702813.404
+ 39.800 36.200
+ -4236539.818 4 -3301197.450 3 24046346.341 24046344.914 24046345.404
+ 28.600 22.100
+ -14794573.314 7 -11528222.559 6 21686320.630 21686319.139 21686319.643
+ 42.900 36.700
+ -4701367.850 4 -3663401.790 4 23685467.946 23685466.920 23685467.228
+ 27.600 24.600
+ -1009495.227 5 -786618.841 4 23499995.351 23499993.669 23499994.650
+ 30.200 24.900
+ -17065580.503 7 -13297847.650 6 21657507.481 21657504.382 21657506.538
+ 44.700 37.300
+ -22682979.854 7 -17675039.680 7 20165843.143 20165841.396 20165842.497
+ 46.100 44.200
+ -20472815.488 7 -15952832.580 7 20421261.175 20421258.975 20421260.420
+ 44.600 44.800
+ 06 1 2 1 14 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16268953.513 6 -12677095.261 6 21712834.937 21712834.114 21712834.205
+ 39.200 36.600
+ -4250575.839 4 -3312134.603 3 24043675.343 24043673.417 24043674.404
+ 29.500 21.100
+ -14721825.358 7 -11471535.842 6 21700164.273 21700162.629 21700163.173
+ 42.700 36.400
+ -4804682.539 4 -3743906.711 4 23665806.849 23665806.810 23665805.882
+ 25.600 24.600
+ -1093179.452 5 -851827.297 4 23484071.007 23484068.956 23484070.299
+ 32.400 26.800
+ -17143514.099 7 -13358575.120 6 21642677.586 21642674.062 21642676.480
+ 44.700 37.600
+ -22721997.770 7 -17705443.238 7 20158418.185 20158416.478 20158417.660
+ 46.100 44.100
+ -20471734.161 7 -15951989.979 7 20421466.922 20421464.759 20421466.242
+ 44.600 44.600
+ 06 1 2 1 14 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16215809.042 6 -12635684.010 6 21722948.496 21722946.951 21722947.662
+ 39.800 36.100
+ -4264051.193 4 -3322634.881 3 24041111.253 24041109.538 24041109.942
+ 27.900 21.100
+ -14648884.174 7 -11414698.559 6 21714044.653 21714042.485 21714043.536
+ 42.700 36.000
+ -4907935.698 4 -3824363.695 3 23646160.326 23646158.151 23646158.855
+ 26.500 23.800
+ -1176720.504 5 -916924.181 4 23468173.558 23468171.302 23468172.742
+ 32.000 26.800
+ -17221203.076 7 -13419111.972 6 21627893.479 21627890.480 21627892.476
+ 44.600 38.400
+ -22760347.570 7 -17735326.188 7 20151120.512 20151118.732 20151119.875
+ 46.100 44.300
+ -20470069.178 7 -15950692.580 7 20421783.767 20421781.663 20421783.026
+ 44.500 44.800
+ 06 1 2 1 15 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16162181.540 6 -12593896.354 5 21733153.211 21733151.804 21733152.590
+ 39.700 35.700
+ -4276965.276 4 -3332697.789 3 24038653.885 24038652.176 24038652.809
+ 27.600 21.100
+ -14575751.364 7 -11357711.955 6 21727961.488 21727959.467 21727960.174
+ 42.600 36.500
+ -5011125.776 4 -3904771.525 4 23626522.765 23626521.958 23626521.840
+ 26.500 26.500
+ -1260117.691 5 -981908.971 4 23452303.443 23452301.187 23452302.641
+ 32.000 26.800
+ -17298645.151 7 -13479456.434 6 21613156.807 21613153.618 21613155.974
+ 45.200 37.700
+ -22798028.503 7 -17764687.939 7 20143949.814 20143948.266 20143949.290
+ 45.900 44.400
+ -20467821.443 7 -15948941.094 7 20422211.413 20422209.316 20422210.681
+ 44.800 44.700
+ 06 1 2 1 15 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -16108073.355 6 -12551734.146 5 21743449.887 21743448.474 21743449.034
+ 39.700 35.800
+ -4289316.990 4 -3342322.490 3 24036303.294 24036301.742 24036302.412
+ 28.100 22.100
+ -14502428.097 7 -11300576.949 6 21741914.164 21741912.521 21741913.028
+ 42.600 36.400
+ -5114250.959 4 -3985128.791 4 23606898.851 23606897.928 23606897.790
+ 28.600 29.900
+ -1343370.957 5 -1046781.610 4 23436461.115 23436458.619 23436460.398
+ 32.600 27.600
+ -17375838.334 7 -13539606.965 6 21598467.669 21598464.180 21598466.560
+ 45.200 37.900
+ -22835039.361 7 -17793527.561 7 20136906.814 20136905.442 20136906.311
+ 45.800 44.500
+ -20464991.484 7 -15946735.922 7 20422749.775 20422747.758 20422749.124
+ 44.500 44.800
+ 06 1 2 1 16 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16053485.925 6 -12509198.511 6 21753837.278 21753836.308 21753836.686
+ 40.100 36.700
+ -4301105.465 4 -3351508.310 3 24034060.037 24034058.704 24034058.795
+ 25.600 22.100
+ -14428915.715 7 -11243294.569 6 21755903.022 21755901.341 21755901.964
+ 42.600 36.000
+ -5217309.846 4 -4065434.382 5 23587287.322 23587286.882 23587286.304
+ 28.100 31.500
+ -1426479.637 5 -1111541.595 4 23420646.501 23420643.792 23420645.443
+ 32.600 27.900
+ -17452780.995 7 -13599562.278 6 21583825.944 21583822.613 21583824.832
+ 45.100 38.100
+ -22871379.235 7 -17821844.332 7 20129991.761 20129990.208 20129991.203
+ 46.000 44.500
+ -20461580.015 7 -15944077.628 7 20423399.068 20423396.995 20423398.354
+ 44.700 44.600
+ 06 1 2 1 16 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15998421.573 6 -12466291.237 6 21764316.100 21764314.687 21764315.256
+ 39.900 36.100
+ -4312329.937 4 -3360254.639 3 24031924.263 24031922.588 24031923.285
+ 29.200 22.600
+ -14355215.458 7 -11185865.802 6 21769928.109 21769926.224 21769926.814
+ 42.500 36.000
+ -5320300.584 4 -4145686.867 5 23567689.533 23567688.069 23567688.174
+ 28.400 30.600
+ -1509443.306 5 -1176188.567 4 23404858.839 23404856.406 23404857.665
+ 30.600 28.400
+ -17529470.871 7 -13659320.612 6 21569231.923 21569229.017 21569230.970
+ 45.000 38.000
+ -22907047.207 7 -17849637.545 7 20123204.275 20123202.791 20123203.805
+ 46.100 44.600
+ -20457587.636 7 -15940966.680 7 20424158.649 20424156.624 20424158.044
+ 44.700 44.700
+ 06 1 2 1 17 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15942882.177 6 -12423013.798 5 21774884.423 21774883.402 21774883.776
+ 39.500 35.600
+ -4322989.535 4 -3368560.805 3 24029895.397 24029894.562 24029894.246
+ 27.600 23.000
+ -14281328.568 7 -11128291.603 5 21783988.140 21783986.221 21783986.991
+ 42.600 35.800
+ -5423221.485 4 -4225884.941 4 23548103.290 23548102.168 23548102.393
+ 27.100 27.600
+ -1592261.141 4 -1240721.890 4 23389099.063 23389096.320 23389097.725
+ 28.600 25.900
+ -17605905.774 7 -13718880.264 6 21554687.147 21554684.035 21554686.191
+ 45.500 38.600
+ -22942042.428 7 -17876906.540 7 20116544.859 20116543.343 20116544.405
+ 46.100 44.500
+ -20453015.264 7 -15937403.783 7 20425028.691 20425026.761 20425028.054
+ 44.600 44.700
+ 06 1 2 1 17 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15886870.132 6 -12379368.070 6 21785543.356 21785542.307 21785542.562
+ 39.100 36.100
+ -4333083.245 4 -3376426.026 3 24027974.708 24027972.949 24027973.855
+ 27.600 19.300
+ -14207256.501 7 -11070573.110 6 21798083.810 21798081.845 21798082.519
+ 42.500 36.000
+ -5526070.898 5 -4306027.342 4 23528532.584 23528530.802 23528531.500
+ 30.600 27.900
+ -1674932.570 4 -1305141.167 3 23373366.990 23373364.245 23373366.079
+ 29.900 22.100
+ -17682083.583 7 -13778239.588 6 21540191.112 21540187.754 21540190.107
+ 45.600 38.400
+ -22976364.016 7 -17903650.619 7 20110013.850 20110012.078 20110013.364
+ 46.100 44.600
+ -20447863.535 7 -15933389.446 7 20426009.151 20426007.178 20426008.458
+ 44.700 44.700
+ 06 1 2 1 18 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15830387.056 6 -12335355.310 6 21796292.029 21796290.800 21796291.204
+ 39.400 36.000
+ -4342609.777 4 -3383849.284 3 24026161.856 24026160.440 24026160.972
+ 28.400 21.100
+ -14133000.486 7 -11012711.283 6 21812214.091 21812212.440 21812212.990
+ 42.400 36.000
+ -5628847.069 4 -4386112.653 4 23508975.043 23508973.616 23508973.925
+ 29.000 28.800
+ -1757457.111 5 -1369446.001 3 23357663.023 23357660.468 23357662.023
+ 30.100 23.000
+ -17758002.567 7 -13837397.235 6 21525744.054 21525740.754 21525743.080
+ 45.500 38.200
+ -23010011.178 7 -17929869.183 7 20103610.868 20103609.280 20103610.454
+ 46.300 44.700
+ -20442133.301 7 -15928924.318 7 20427099.739 20427097.473 20427098.988
+ 44.700 44.700
+ 06 1 2 1 18 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15773435.310 6 -12290977.347 5 21807129.523 21807128.135 21807128.839
+ 39.500 35.600
+ -4351568.935 4 -3390830.442 3 24024457.160 24024455.854 24024456.232
+ 28.100 23.000
+ -14058561.708 7 -10954707.045 5 21826379.060 21826377.635 21826378.041
+ 42.000 35.800
+ -5731548.204 5 -4466139.506 4 23489431.492 23489429.781 23489430.376
+ 30.100 27.900
+ -1839834.233 5 -1433635.939 4 23341987.073 23341985.026 23341986.191
+ 31.000 25.300
+ -17833660.599 7 -13896351.536 6 21511346.783 21511343.605 21511345.695
+ 45.300 38.600
+ -23042982.970 7 -17955561.476 7 20097336.602 20097334.991 20097336.082
+ 46.500 44.800
+ -20435825.331 7 -15924009.011 7 20428300.049 20428297.850 20428299.374
+ 44.800 44.600
+ 06 1 2 1 19 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15716016.853 6 -12246235.705 5 21818055.832 21818054.297 21818054.969
+ 39.000 35.200
+ -4359959.757 4 -3397368.720 3 24022860.318 24022858.951 24022859.236
+ 27.600 21.100
+ -13983941.488 6 -10896561.415 5 21840578.836 21840577.312 21840577.734
+ 41.800 35.700
+ -5834172.684 4 -4546106.621 4 23469901.943 23469900.658 23469901.020
+ 29.200 27.400
+ -1922063.145 5 -1497710.398 4 23326339.694 23326337.317 23326338.739
+ 33.400 25.300
+ -17909055.594 7 -13955100.879 6 21496999.737 21496996.321 21496998.755
+ 45.700 38.400
+ -23075278.761 7 -17980727.019 7 20091190.982 20091189.239 20091190.513
+ 46.200 44.600
+ -20428940.579 7 -15918644.264 7 20429610.285 20429607.971 20429609.497
+ 44.800 44.600
+ 06 1 2 1 19 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15658133.756 6 -12201132.016 5 21829070.402 21829069.307 21829069.670
+ 38.800 35.500
+ -4367781.432 4 -3403463.502 3 24021371.857 24021370.677 24021370.698
+ 28.100 21.600
+ -13909140.944 6 -10838275.283 5 21854813.401 21854811.231 21854812.255
+ 41.900 35.500
+ -5936718.685 4 -4626012.592 4 23450388.803 23450386.880 23450387.616
+ 29.700 25.900
+ -2004144.096 5 -1561669.580 4 23310720.573 23310717.442 23310719.409
+ 33.200 25.900
+ -17984185.467 7 -14013643.629 6 21482703.118 21482699.607 21482702.030
+ 45.700 38.800
+ -23106897.673 7 -18005365.124 7 20085174.340 20085172.298 20085173.688
+ 46.400 44.700
+ -20421479.796 7 -15912830.661 7 20431029.947 20431027.628 20431029.245
+ 44.700 44.600
+ 06 1 2 1 20 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15599788.253 6 -12155668.010 5 21840173.454 21840172.144 21840172.690
+ 38.900 35.600
+ -4375033.153 4 -3409114.199 3 24019991.920 24019990.201 24019990.987
+ 27.900 21.600
+ -13834161.203 6 -10779849.510 5 21869081.252 21869078.998 21869080.151
+ 41.800 34.800
+ -6039184.277 4 -4705855.906 4 23430890.082 23430888.322 23430888.952
+ 29.700 27.100
+ -2086076.440 5 -1625512.960 4 23295129.100 23295126.269 23295127.969
+ 32.700 27.900
+ -18059047.892 7 -14071977.977 6 21468457.117 21468453.839 21468456.089
+ 45.700 39.000
+ -23137839.047 7 -18029475.273 7 20079286.027 20079284.306 20079285.685
+ 46.500 44.700
+ -20413443.660 7 -15906568.730 7 20432559.276 20432556.945 20432558.482
+ 44.800 44.600
+ 06 1 2 1 20 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15540982.365 6 -12109845.257 5 21851363.499 21851362.373 21851362.838
+ 38.600 34.800
+ -4381714.406 4 -3414320.389 3 24018720.531 24018718.452 24018719.417
+ 26.500 21.600
+ -13759003.640 6 -10721285.173 5 21883383.249 21883381.592 21883382.115
+ 41.400 35.500
+ -6141567.706 4 -4785635.188 4 23411406.853 23411405.458 23411405.695
+ 29.200 27.600
+ -2167859.420 5 -1689239.919 4 23279566.321 23279563.968 23279565.349
+ 32.300 29.200
+ -18133640.917 7 -14130102.409 6 21454262.455 21454259.114 21454261.439
+ 45.600 38.600
+ -23168102.231 7 -18053056.970 7 20073527.305 20073525.485 20073526.768
+ 46.800 44.800
+ -20404833.274 7 -15899859.335 7 20434197.571 20434195.458 20434196.837
+ 44.900 44.700
+ 06 1 2 1 21 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15481718.309 6 -12063665.489 5 21862641.114 21862639.856 21862640.340
+ 38.100 34.700
+ -4387823.876 4 -3419080.990 3 24017557.923 24017556.465 24017557.014
+ 28.800 22.100
+ -13683669.287 6 -10662583.092 5 21897718.599 21897717.169 21897717.573
+ 41.400 35.200
+ -6243867.335 4 -4865349.161 4 23391940.254 23391938.243 23391939.221
+ 27.100 25.300
+ -2249492.311 5 -1752849.931 4 23264032.061 23264029.841 23264031.127
+ 31.500 28.800
+ -18207962.413 7 -14188015.253 6 21440119.477 21440116.322 21440118.594
+ 46.100 39.100
+ -23197686.504 7 -18076109.636 7 20067897.468 20067895.766 20067897.061
+ 46.500 44.700
+ -20395649.700 7 -15892703.296 7 20435945.190 20435943.047 20435944.444
+ 44.900 44.800
+ 06 1 2 1 21 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15421998.250 6 -12017130.405 5 21874005.700 21874004.686 21874004.865
+ 38.500 35.500
+ -4393361.523 4 -3423396.029 3 24016504.909 24016502.661 24016503.584
+ 27.600 21.100
+ -13608159.283 6 -10603744.118 5 21912088.220 21912086.141 21912086.973
+ 41.300 35.100
+ -6346081.323 4 -4944996.429 4 23372489.303 23372487.287 23372488.195
+ 28.600 25.300
+ -2330974.840 5 -1816342.780 4 23248526.370 23248523.759 23248525.346
+ 32.000 26.200
+ -18282010.283 7 -14245714.884 6 21426028.948 21426025.342 21426027.836
+ 46.100 39.100
+ -23226591.348 7 -18098632.889 7 20062397.171 20062395.366 20062396.655
+ 46.500 44.800
+ -20385893.563 7 -15885101.106 7 20437801.672 20437799.633 20437801.018
+ 44.800 44.700
+ 06 1 2 1 22 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15361824.319 6 -11970241.650 5 21885456.485 21885455.495 21885455.740
+ 39.100 35.700
+ -4398326.252 4 -3427264.627 3 24015559.144 24015557.889 24015558.229
+ 28.100 21.100
+ -13532475.329 6 -10544769.617 5 21926489.929 21926488.595 21926488.844
+ 41.100 34.700
+ -6448207.925 4 -5024575.581 4 23353054.915 23353053.650 23353053.660
+ 28.600 25.600
+ -2412306.386 5 -1879718.015 4 23233049.418 23233046.404 23233048.495
+ 32.400 24.200
+ -18355782.531 7 -14303199.747 6 21411990.164 21411987.050 21411989.163
+ 45.900 39.500
+ -23254815.930 7 -18120626.055 7 20057026.197 20057024.440 20057025.725
+ 46.500 44.800
+ -20375565.954 7 -15877053.617 7 20439767.026 20439764.852 20439766.292
+ 44.900 44.700
+ 06 1 2 1 22 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15301198.801 6 -11923001.010 5 21896993.281 21896992.050 21896992.424
+ 38.900 35.600
+ -4402717.748 5 -3430686.579 3 24014724.406 24014722.465 24014723.449
+ 30.200 23.400
+ -13456618.338 6 -10485660.282 5 21940925.067 21940923.599 21940923.989
+ 41.100 34.900
+ -6550245.271 4 -5104085.197 4 23333638.184 23333636.748 23333637.280
+ 29.900 26.500
+ -2493486.738 5 -1942975.455 4 23217601.324 23217598.450 23217600.330
+ 32.100 24.600
+ -18429276.788 7 -14360467.992 6 21398004.858 21398001.535 21398003.753
+ 46.100 39.400
+ -23282359.634 7 -18142088.679 7 20051784.891 20051783.041 20051784.314
+ 46.600 44.900
+ -20364667.841 7 -15868561.577 7 20441840.839 20441838.736 20441840.090
+ 44.800 44.800
+ 06 1 2 1 23 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15240123.690 6 -11875410.031 5 21908615.316 21908613.895 21908614.573
+ 38.600 34.500
+ -4406535.296 4 -3433661.289 3 24013997.563 24013995.685 24013996.285
+ 27.900 22.100
+ -13380589.450 6 -10426416.995 5 21955393.116 21955391.378 21955391.878
+ 40.900 34.900
+ -6652191.717 5 -5183524.003 4 23314238.892 23314236.838 23314237.712
+ 30.200 26.200
+ -2574515.328 5 -2006114.594 4 23202181.900 23202179.826 23202180.944
+ 31.100 27.400
+ -18502491.162 7 -14417518.148 6 21384072.584 21384069.360 21384071.674
+ 46.300 39.800
+ -23309222.300 7 -18163020.616 7 20046672.947 20046671.174 20046672.498
+ 46.500 44.800
+ -20353200.405 7 -15859625.905 7 20444022.837 20444020.918 20444022.171
+ 44.700 44.800
+ 06 1 2 1 23 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15178601.387 6 -11827470.594 5 21920322.366 21920321.130 21920321.625
+ 38.200 34.100
+ -4409778.309 4 -3436188.309 3 24013379.841 24013378.252 24013379.240
+ 26.500 19.300
+ -13304389.914 6 -10367040.734 5 21969893.383 21969891.941 21969892.177
+ 41.100 35.500
+ -6754045.259 5 -5262890.403 4 23294856.635 23294855.100 23294855.482
+ 30.200 27.400
+ -2655391.268 5 -2069134.766 4 23186791.746 23186789.577 23186790.871
+ 31.800 28.600
+ -18575423.469 7 -14474348.508 6 21370194.003 21370190.929 21370192.976
+ 46.100 40.100
+ -23335403.214 7 -18183421.321 7 20041690.963 20041689.151 20041690.322
+ 46.500 44.800
+ -20341164.468 7 -15850247.249 7 20446313.215 20446311.197 20446312.553
+ 44.900 44.800
+ 06 1 2 1 24 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15116634.189 6 -11779184.484 5 21932114.578 21932113.307 21932113.758
+ 38.000 34.500
+ -4412446.490 4 -3438267.387 3 24012872.879 24012871.116 24012871.592
+ 27.900 22.100
+ -13228020.970 6 -10307532.472 5 21984425.921 21984424.081 21984424.782
+ 41.100 34.900
+ -6855804.103 5 -5342182.974 4 23275492.704 23275491.169 23275491.658
+ 31.600 29.900
+ -2736114.505 5 -2132035.969 4 23171430.579 23171428.002 23171429.718
+ 33.100 27.600
+ -18648071.739 7 -14530957.541 6 21356369.412 21356366.233 21356368.332
+ 45.700 39.700
+ -23360901.792 7 -18203290.330 7 20036838.416 20036836.891 20036838.000
+ 46.300 44.800
+ -20328561.066 7 -15840426.411 7 20448711.585 20448709.596 20448710.943
+ 44.900 44.800
+ 06 1 2 1 24 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -15054224.247 6 -11730553.382 5 21943990.787 21943989.554 21943990.018
+ 37.900 34.600
+ -4414538.654 4 -3439897.652 3 24012473.612 24012473.049 24012472.876
+ 25.900 23.000
+ -13151483.649 6 -10247893.007 5 21998990.385 21998988.776 21998989.347
+ 41.300 34.800
+ -6957466.340 5 -5421400.294 5 23256146.858 23256145.316 23256145.795
+ 30.800 30.800
+ -2816684.005 5 -2194817.400 4 23156098.751 23156095.971 23156097.774
+ 34.100 26.200
+ -18720433.894 7 -14587343.629 6 21342599.064 21342596.235 21342598.152
+ 45.900 39.900
+ -23385717.893 7 -18222627.540 7 20032116.422 20032114.467 20032115.808
+ 46.500 44.900
+ -20315391.199 7 -15830164.172 7 20451217.858 20451215.713 20451217.140
+ 45.100 44.900
+ 06 1 2 1 25 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14991373.798 6 -11681579.033 5 21955950.806 21955949.736 21955950.001
+ 38.100 34.600
+ -4416054.285 4 -3441078.674 3 24012185.928 24012184.491 24012184.609
+ 26.800 23.400
+ -13074779.136 6 -10188123.255 5 22013586.895 22013585.187 22013585.699
+ 41.000 34.600
+ -7059030.370 5 -5500541.075 5 23236819.787 23236818.289 23236818.731
+ 30.800 31.300
+ -2897099.417 5 -2257478.755 4 23140796.278 23140793.969 23140795.260
+ 32.600 28.400
+ -18792507.702 7 -14643505.029 6 21328884.309 21328880.970 21328883.209
+ 46.100 40.000
+ -23409850.788 7 -18241432.388 7 20027523.873 20027522.098 20027523.548
+ 46.700 44.800
+ -20301656.102 7 -15819461.492 7 20453831.543 20453829.478 20453830.828
+ 44.900 44.900
+ 06 1 2 1 25 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14928085.138 6 -11632263.216 5 21967994.468 21967993.214 21967993.733
+ 38.300 34.400
+ -4416992.740 4 -3441809.932 3 24012006.642 24012005.921 24012006.055
+ 28.100 21.600
+ -12997908.734 6 -10128224.257 5 22028214.874 22028213.063 22028213.668
+ 40.500 34.500
+ -7160494.117 5 -5579603.728 5 23217511.811 23217510.666 23217510.787
+ 31.100 31.500
+ -2977360.851 5 -2320020.100 4 23125522.923 23125520.950 23125522.021
+ 31.800 28.400
+ -18864290.723 7 -14699439.843 6 21315224.299 21315221.109 21315223.327
+ 46.000 39.900
+ -23433300.142 7 -18259704.597 7 20023061.887 20023059.880 20023061.328
+ 46.800 44.800
+ -20287356.765 7 -15808319.151 7 20456552.641 20456550.493 20456551.916
+ 44.900 44.900
+ 06 1 2 1 26 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14864360.635 6 -11582607.779 5 21980120.693 21980119.661 21980119.965
+ 37.700 34.400
+ -4417354.436 4 -3442091.761 3 24011937.912 24011936.811 24011936.555
+ 25.600 21.100
+ -12920873.511 6 -10068196.813 5 22042874.005 22042872.491 22042872.854
+ 40.500 34.600
+ -7261855.851 5 -5658586.876 4 23198224.344 23198222.043 23198222.784
+ 30.600 29.700
+ -3057467.406 5 -2382440.747 4 23110279.047 23110276.652 23110278.036
+ 32.100 28.100
+ -18935781.344 7 -14755146.816 6 21301620.392 21301616.886 21301619.198
+ 46.200 39.900
+ -23456065.618 7 -18277443.925 7 20018729.651 20018727.808 20018729.163
+ 46.800 45.100
+ -20272494.344 7 -15796738.035 7 20459380.904 20459378.688 20459380.135
+ 45.000 44.900
+ 06 1 2 1 26 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14800202.534 6 -11532614.473 5 21992329.603 21992328.348 21992328.824
+ 37.700 34.000
+ -4417139.093 4 -3441923.913 3 24011979.831 24011977.796 24011978.779
+ 27.900 21.600
+ -12843674.745 6 -10008041.933 5 22057564.549 22057562.768 22057563.432
+ 40.500 34.100
+ -7363113.555 4 -5737488.990 4 23178953.977 23178953.594 23178953.447
+ 29.900 29.200
+ -3137418.970 5 -2444740.660 4 23095064.739 23095062.070 23095063.873
+ 33.200 26.500
+ -19006977.161 7 -14810624.072 6 21288071.957 21288068.639 21288070.906
+ 46.100 39.700
+ -23478146.905 7 -18294650.109 7 20014527.720 20014525.816 20014527.275
+ 46.700 45.100
+ -20257070.054 7 -15784719.106 7 20462315.913 20462313.915 20462315.220
+ 44.900 44.900
+ 06 1 2 1 27 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14735613.178 6 -11482285.120 5 22004620.537 22004619.277 22004619.741
+ 37.300 34.300
+ -4416345.674 4 -3441305.707 3 24012130.116 24012129.086 24012129.305
+ 27.600 22.600
+ -12766313.617 6 -9947760.537 5 22072285.718 22072284.253 22072284.665
+ 40.500 34.300
+ -7464265.501 4 -5816308.673 4 23159706.385 23159704.123 23159704.929
+ 29.500 27.400
+ -3217214.638 5 -2506919.085 4 23079880.404 23079877.716 23079879.665
+ 34.000 28.400
+ -19077875.975 7 -14865869.897 6 21274580.424 21274577.156 21274579.400
+ 46.500 40.100
+ -23499543.779 7 -18311322.994 7 20010456.045 20010454.194 20010455.461
+ 46.800 45.300
+ -20241084.956 7 -15772263.180 7 20465357.541 20465355.752 20465356.925
+ 45.100 44.800
+ 06 1 2 1 27 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14670594.952 6 -11431621.591 5 22016993.279 22016991.812 22016992.458
+ 37.200 33.600
+ -4414974.197 4 -3440237.030 3 24012391.221 24012389.379 24012390.226
+ 26.500 20.500
+ -12688791.269 6 -9887353.517 5 22087037.749 22087036.234 22087036.643
+ 40.100 34.300
+ -7565309.789 5 -5895044.485 4 23140477.782 23140476.269 23140476.854
+ 32.000 28.600
+ -3296853.553 5 -2568975.357 4 23064725.600 23064723.142 23064724.595
+ 33.900 27.600
+ -19148475.677 7 -14920882.647 6 21261145.585 21261142.426 21261144.595
+ 46.600 40.000
+ -23520255.800 7 -18327462.225 7 20006514.459 20006512.857 20006513.949
+ 46.400 45.300
+ -20224540.134 7 -15759371.106 7 20468506.293 20468504.147 20468505.508
+ 45.200 45.000
+ 06 1 2 1 28 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14605150.098 6 -11380625.622 5 22029446.915 22029445.700 22029446.049
+ 37.100 33.100
+ -4413023.683 4 -3438717.163 3 24012762.015 24012760.990 24012761.027
+ 27.100 21.100
+ -12611108.722 6 -9826821.674 5 22101820.418 22101818.702 22101819.283
+ 40.500 33.900
+ -7666244.479 5 -5973694.910 4 23121270.966 23121269.001 23121269.835
+ 33.100 27.900
+ -3376335.679 5 -2630909.460 4 23049599.992 23049597.546 23049599.415
+ 34.000 27.400
+ -19218774.366 7 -14975660.841 6 21247768.106 21247765.023 21247767.110
+ 46.300 40.100
+ -23540282.855 7 -18343067.711 7 20002703.523 20002701.770 20002703.010
+ 46.500 45.300
+ -20207436.992 7 -15746043.978 7 20471760.805 20471758.776 20471760.061
+ 45.000 45.000
+ 06 1 2 1 28 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14539281.063 6 -11329299.119 5 22041981.249 22041980.202 22041980.440
+ 37.400 33.500
+ -4410493.447 4 -3436745.527 3 24013243.599 24013242.389 24013242.635
+ 25.600 19.900
+ -12533267.244 6 -9766165.968 5 22116633.156 22116631.410 22116631.940
+ 40.000 33.900
+ -7767067.494 5 -6052258.293 4 23102084.570 23102083.243 23102083.348
+ 31.500 29.000
+ -3455660.523 5 -2692721.028 4 23034505.582 23034502.108 23034504.664
+ 34.000 27.400
+ -19288769.925 7 -15030202.832 6 21234448.454 21234445.319 21234447.451
+ 46.200 40.200
+ -23559624.757 7 -18358139.320 7 19999022.939 19999021.027 19999022.445
+ 46.800 45.300
+ -20189776.608 7 -15732282.634 7 20475121.309 20475119.453 20475120.626
+ 44.900 44.900
+ 06 1 2 1 29 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14472990.221 6 -11277643.930 5 22054595.860 22054594.930 22054595.277
+ 37.700 33.200
+ -4407384.254 4 -3434322.763 3 24013834.714 24013833.810 24013834.039
+ 26.200 20.500
+ -12455267.822 6 -9705387.209 5 22131476.372 22131474.434 22131475.144
+ 40.200 34.000
+ -7867776.892 5 -6130733.130 5 23082920.517 23082918.873 23082919.566
+ 32.000 30.200
+ -3534827.554 5 -2754409.610 4 23019440.062 23019437.846 23019439.399
+ 32.800 28.100
+ -19358460.105 7 -15084506.856 6 21221186.933 21221183.771 21221185.935
+ 46.300 40.500
+ -23578281.245 7 -18372676.838 7 19995472.518 19995470.861 19995472.149
+ 46.600 45.500
+ -20171560.059 7 -15718087.917 7 20478587.645 20478585.882 20478586.999
+ 44.800 44.900
+ 06 1 2 1 29 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14406279.690 6 -11225661.720 5 22067290.903 22067289.770 22067290.073
+ 37.800 34.100
+ -4403695.529 4 -3431448.415 3 24014537.774 24014535.918 24014536.786
+ 27.900 22.100
+ -12377111.640 6 -9644486.291 5 22146348.441 22146346.918 22146347.433
+ 40.100 33.500
+ -7968370.900 5 -6209118.070 5 23063778.529 23063776.501 23063777.110
+ 32.000 30.600
+ -3613836.167 5 -2815974.728 4 23004405.449 23004403.677 23004404.467
+ 33.900 29.700
+ -19427842.419 7 -15138570.994 6 21207983.850 21207980.605 21207982.874
+ 46.600 40.600
+ -23596252.095 7 -18386680.086 7 19992052.740 19992051.075 19992052.358
+ 46.500 45.500
+ -20152789.059 7 -15703461.158 7 20482159.893 20482157.809 20482159.142
+ 45.100 44.800
+ 06 1 2 1 30 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14339152.237 6 -11173354.629 5 22080064.976 22080063.663 22080064.221
+ 38.000 33.600
+ -4399426.907 4 -3428122.214 3 24015349.071 24015348.600 24015348.231
+ 26.500 21.600
+ -12298799.568 6 -9583463.902 5 22161250.577 22161249.133 22161249.453
+ 39.700 33.100
+ -8068847.515 5 -6287411.522 4 23044657.771 23044656.133 23044656.487
+ 32.000 29.700
+ -3692685.495 5 -2877415.722 5 22989401.180 22989398.938 22989400.271
+ 34.600 30.400
+ -19496914.958 7 -15192393.747 6 21194840.022 21194836.513 21194838.832
+ 46.600 40.600
+ -23613537.365 7 -18400149.128 7 19988763.630 19988761.808 19988763.090
+ 46.600 45.500
+ -20133464.454 7 -15688403.023 7 20485837.146 20485835.173 20485836.514
+ 45.200 44.700
+ 06 1 2 1 30 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14271610.148 6 -11120724.447 5 22092917.649 22092916.441 22092916.843
+ 37.200 33.500
+ -4394578.029 4 -3424343.879 3 24016273.107 24016271.110 24016272.049
+ 28.600 20.500
+ -12220332.970 6 -9522321.099 5 22176182.415 22176180.884 22176181.323
+ 39.600 33.000
+ -8169204.929 5 -6365612.079 5 23025560.218 23025558.857 23025559.067
+ 31.800 30.400
+ -3771375.568 5 -2938732.631 4 22974426.505 22974423.914 22974425.595
+ 33.800 28.600
+ -19565675.609 7 -15245973.470 6 21181755.139 21181751.824 21181754.075
+ 46.600 40.700
+ -23630136.826 7 -18413083.762 7 19985604.765 19985603.071 19985604.431
+ 46.700 45.600
+ -20113587.759 7 -15672914.679 7 20489619.756 20489617.582 20489619.047
+ 45.200 44.700
+ 06 1 2 1 31 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14203655.798 6 -11067773.014 5 22105848.815 22105847.831 22105848.013
+ 37.000 34.000
+ -4389148.846 4 -3420113.338 3 24017306.205 24017304.154 24017305.097
+ 27.900 22.600
+ -12141712.798 6 -9461058.635 5 22191143.372 22191141.857 22191142.084
+ 39.500 33.000
+ -8269441.167 5 -6443718.230 5 23006485.561 23006484.726 23006484.911
+ 32.300 30.600
+ -3849905.917 5 -2999925.098 4 22959482.482 22959479.907 22959481.709
+ 33.900 27.400
+ -19634122.408 7 -15299308.634 6 21168730.351 21168726.858 21168729.249
+ 46.700 40.700
+ -23646050.501 7 -18425484.019 7 19982576.832 19982574.857 19982576.286
+ 46.900 45.700
+ -20093160.114 7 -15656997.032 7 20493506.928 20493504.884 20493506.244
+ 45.100 44.800
+ 06 1 2 1 31 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -14135291.663 6 -11014502.269 5 22118858.137 22118856.961 22118857.406
+ 37.100 33.200
+ -4383139.146 4 -3415430.465 3 24018448.863 24018448.207 24018448.247
+ 28.800 23.400
+ -12062940.053 6 -9399677.281 5 22206133.011 22206131.649 22206131.949
+ 39.300 33.200
+ -8369554.024 5 -6521728.238 5 22987435.168 22987433.979 22987434.073
+ 32.800 31.600
+ -3928276.179 5 -3060992.828 4 22944570.249 22944567.264 22944569.274
+ 35.300 29.200
+ -19702253.051 7 -15352397.435 6 21155765.336 21155762.073 21155764.242
+ 46.400 40.900
+ -23661278.328 7 -18437349.856 7 19979679.169 19979677.064 19979678.525
+ 46.800 45.800
+ -20072182.903 7 -15640651.152 7 20497498.880 20497496.730 20497498.139
+ 45.300 44.600
+ 06 1 2 1 32 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14066520.265 6 -10960914.181 5 22131944.713 22131943.936 22131943.953
+ 36.200 33.800
+ -4376548.892 4 -3410295.177 3 24019703.704 24019701.555 24019702.411
+ 27.600 20.500
+ -11984016.074 6 -9338178.075 5 22221152.134 22221150.305 22221150.913
+ 39.100 33.600
+ -8469541.706 5 -6599640.696 5 22968408.038 22968406.751 22968407.189
+ 32.600 30.600
+ -4006485.472 5 -3121935.110 4 22929687.249 22929684.573 22929686.092
+ 34.400 29.900
+ -19770065.034 7 -15405237.939 6 21142861.213 21142857.874 21142860.206
+ 46.700 41.000
+ -23675820.316 7 -18448681.268 7 19976911.625 19976909.820 19976911.143
+ 46.700 45.900
+ -20050657.600 7 -15623878.185 7 20501595.110 20501592.838 20501594.292
+ 45.300 44.700
+ 06 1 2 1 32 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13997344.091 5 -10907010.705 5 22145108.683 22145107.539 22145107.743
+ 35.900 33.200
+ -4369377.703 4 -3404707.221 3 24021067.752 24021066.261 24021067.034
+ 27.600 20.500
+ -11904942.103 6 -9276561.999 5 22236199.684 22236197.755 22236198.519
+ 39.700 33.400
+ -8569402.230 5 -6677454.070 5 22949406.090 22949404.146 22949404.707
+ 33.200 31.000
+ -4084533.439 5 -3182751.654 4 22914834.184 22914831.870 22914833.178
+ 33.400 28.800
+ -19837556.779 7 -15457828.904 6 21130017.952 21130014.592 21130016.884
+ 46.700 41.000
+ -23689676.499 7 -18459478.283 7 19974274.958 19974273.056 19974274.381
+ 46.700 45.900
+ -20028585.419 7 -15606679.080 7 20505795.110 20505793.015 20505794.348
+ 45.200 44.700
+ 06 1 2 1 33 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13927765.398 6 -10852793.561 5 22158349.287 22158348.005 22158348.588
+ 36.900 33.000
+ -4361625.121 4 -3398666.259 3 24022543.466 24022541.988 24022542.233
+ 27.600 21.600
+ -11825718.937 6 -9214829.662 5 22251275.177 22251273.521 22251274.016
+ 38.800 33.200
+ -8669133.582 5 -6755166.802 5 22930427.133 22930425.271 22930426.106
+ 33.000 30.600
+ -4162419.406 5 -3243442.016 4 22900013.194 22900010.218 22900012.401
+ 35.100 26.800
+ -19904725.907 7 -15510168.479 6 21117236.121 21117232.667 21117235.014
+ 46.900 41.000
+ -23702846.862 7 -18469740.898 7 19971768.661 19971766.768 19971768.061
+ 46.700 45.900
+ -20005967.670 7 -15589054.860 7 20510099.188 20510096.957 20510098.371
+ 45.300 44.600
+ 06 1 2 1 33 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13857786.870 6 -10798264.859 5 22171665.737 22171664.429 22171665.049
+ 37.200 32.700
+ -4353291.687 4 -3392172.643 3 24024128.372 24024127.572 24024127.514
+ 24.200 22.100
+ -11746347.790 6 -9152982.021 5 22266378.864 22266377.463 22266377.752
+ 38.700 33.100
+ -8768733.753 5 -6832777.302 5 22911474.005 22911472.518 22911472.945
+ 32.700 30.600
+ -4240143.220 6 -3304006.014 4 22885222.920 22885220.678 22885222.233
+ 36.000 29.700
+ -19971570.166 7 -15562254.912 6 21104516.006 21104512.593 21104514.949
+ 46.800 41.100
+ -23715331.610 7 -18479469.267 7 19969392.781 19969391.081 19969392.279
+ 46.600 45.900
+ -19982806.031 7 -15571006.827 7 20514506.565 20514504.478 20514505.885
+ 45.200 44.400
+ 06 1 2 1 34 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13787410.946 6 -10743426.497 5 22185057.990 22185056.492 22185057.007
+ 36.600 32.400
+ -4344377.309 4 -3385226.385 3 24025826.207 24025823.557 24025824.956
+ 29.200 20.500
+ -11666829.895 6 -9091020.030 5 22281510.335 22281509.034 22281509.231
+ 38.800 32.100
+ -8868200.798 5 -6910284.074 5 22892545.511 22892544.260 22892544.510
+ 33.200 30.400
+ -4317703.902 5 -3364442.877 5 22870463.617 22870461.654 22870462.636
+ 34.800 30.200
+ -20038087.433 7 -15614086.543 6 21091858.302 21091854.851 21091857.198
+ 46.800 41.100
+ -23727130.654 7 -18488663.316 7 19967147.521 19967145.789 19967147.034
+ 46.600 46.000
+ -19959101.695 7 -15552535.913 7 20519017.214 20519015.173 20519016.624
+ 45.400 44.200
+ 06 1 2 1 34 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13716639.976 6 -10688280.318 5 22198525.307 22198523.748 22198524.583
+ 37.200 32.300
+ -4334881.317 4 -3377826.915 3 24027631.290 24027630.751 24027630.533
+ 25.300 20.500
+ -11587166.118 6 -9028944.358 5 22296670.064 22296668.612 22296668.932
+ 38.400 32.700
+ -8967532.754 5 -6987685.584 4 22873643.813 22873641.808 22873642.765
+ 34.000 29.900
+ -4395101.238 5 -3424752.442 4 22855735.665 22855732.710 22855734.671
+ 34.400 27.900
+ -20104275.498 7 -15665661.655 6 21079263.140 21079259.827 21079262.093
+ 46.800 41.500
+ -23738244.384 7 -18497323.361 7 19965032.630 19965030.838 19965032.153
+ 46.800 46.000
+ -19934856.221 7 -15533643.339 7 20523631.040 20523628.926 20523630.405
+ 45.400 44.100
+ 06 1 2 1 35 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13645476.713 6 -10632828.427 5 22212067.349 22212065.713 22212066.708
+ 37.200 32.600
+ -4324804.578 4 -3369974.905 3 24029550.391 24029548.528 24029549.343
+ 28.800 21.100
+ -11507357.608 6 -8966755.916 5 22311857.675 22311855.878 22311856.422
+ 38.900 33.200
+ -9066727.477 5 -7064980.160 5 22854767.507 22854765.689 22854766.449
+ 33.000 31.000
+ -4472334.763 5 -3484934.425 4 22841038.381 22841035.361 22841037.682
+ 35.600 27.600
+ -20170132.260 7 -15716978.609 6 21066731.153 21066727.525 21066729.971
+ 46.800 41.200
+ -23748672.853 7 -18505449.435 7 19963048.183 19963046.360 19963047.655
+ 46.600 45.900
+ -19910071.060 7 -15514330.222 7 20528347.673 20528345.379 20528346.963
+ 45.500 44.400
+ 06 1 2 1 35 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13573923.495 6 -10577072.684 5 22225683.333 22225682.113 22225682.456
+ 36.100 33.400
+ -4314146.571 4 -3361669.950 3 24031578.058 24031576.625 24031576.615
+ 24.900 20.500
+ -11427405.253 6 -8904455.382 5 22327071.370 22327070.143 22327070.311
+ 38.600 32.800
+ -9165783.053 5 -7142166.308 5 22835917.665 22835916.334 22835916.727
+ 34.100 31.800
+ -4549404.100 5 -3544988.434 5 22826372.224 22826370.335 22826371.446
+ 34.600 30.600
+ -20235655.664 7 -15768035.801 6 21054262.087 21054258.803 21054261.061
+ 46.800 41.300
+ -23758416.396 7 -18513041.802 7 19961194.086 19961192.258 19961193.467
+ 46.600 46.000
+ -19884747.367 7 -15494597.479 7 20533166.619 20533164.374 20533165.947
+ 45.700 44.300
+ 06 1 2 1 36 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13501982.951 5 -10521015.152 5 22239372.715 22239372.003 22239372.085
+ 35.800 33.200
+ -4302907.782 4 -3352912.441 3 24033716.885 24033714.878 24033715.911
+ 28.400 19.300
+ -11347309.990 6 -8842043.491 5 22342313.017 22342311.748 22342311.997
+ 38.700 32.800
+ -9264697.386 5 -7219242.400 5 22817094.990 22817093.534 22817093.913
+ 33.600 31.800
+ -4626308.701 5 -3604914.057 5 22811738.266 22811736.075 22811737.416
+ 35.800 31.100
+ -20300843.394 7 -15818831.432 6 21041857.253 21041854.020 21041856.303
+ 46.900 41.400
+ -23767475.125 7 -18520100.542 7 19959470.103 19959468.486 19959469.588
+ 46.400 46.100
+ -19858887.071 7 -15474446.598 7 20538087.604 20538085.434 20538086.897
+ 45.600 44.300
+ 06 1 2 1 36 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13429657.594 6 -10464657.735 5 22253135.920 22253135.003 22253135.255
+ 36.500 33.100
+ -4291087.897 3 -3343702.142 3 24035965.231 24035964.366 24035964.339
+ 23.400 19.900
+ -11267072.792 6 -8779521.001 5 22357581.899 22357580.563 22357580.751
+ 38.000 32.800
+ -9363468.360 5 -7296206.760 5 22798299.331 22798298.070 22798298.198
+ 33.500 33.000
+ -4703047.899 6 -3664710.821 5 22797135.674 22797132.442 22797134.735
+ 36.600 30.100
+ -20365693.476 7 -15869363.963 6 21029516.546 21029513.559 21029515.566
+ 46.600 41.900
+ -23775849.415 7 -18526625.959 7 19957876.561 19957874.911 19957876.036
+ 46.600 46.100
+ -19832491.321 7 -15453878.481 7 20543110.696 20543108.307 20543109.928
+ 45.700 44.300
+ 06 1 2 1 37 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13356950.000 6 -10408002.470 5 22266971.914 22266970.726 22266971.172
+ 36.200 33.000
+ -4278686.871 4 -3334038.992 3 24038325.583 24038323.997 24038324.517
+ 25.600 19.300
+ -11186694.893 6 -8716888.891 5 22372877.246 22372875.988 22372876.125
+ 38.300 33.100
+ -9462093.894 5 -7373057.805 5 22779531.525 22779530.383 22779530.595
+ 33.800 32.700
+ -4779621.509 6 -3724378.556 5 22782564.094 22782560.892 22782563.073
+ 36.400 30.200
+ -20430203.715 7 -15919631.673 6 21017240.697 21017237.580 21017239.638
+ 46.600 41.900
+ -23783539.462 7 -18532618.198 7 19956413.382 19956411.483 19956412.801
+ 46.600 46.200
+ -19805561.779 7 -15432894.423 7 20548235.086 20548232.937 20548234.417
+ 45.800 44.400
+ 06 1 2 1 37 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13283862.732 5 -10351051.368 5 22280879.674 22280878.609 22280878.906
+ 35.100 32.000
+ -4265705.207 4 -3323923.432 3 24040796.237 24040794.746 24040795.179
+ 26.500 21.100
+ -11106177.438 6 -8654148.021 5 22388199.316 22388197.741 22388198.211
+ 38.200 32.600
+ -9560571.970 5 -7449793.954 5 22760791.680 22760790.623 22760790.685
+ 33.000 32.400
+ -4856028.840 6 -3783916.722 5 22768024.364 22768021.758 22768023.319
+ 36.700 31.600
+ -20494371.787 7 -15969632.764 6 21005029.978 21005026.687 21005029.005
+ 46.500 41.600
+ -23790545.697 7 -18538077.597 7 19955080.121 19955078.254 19955079.543
+ 46.700 46.100
+ -19778099.868 7 -15411495.529 7 20553461.187 20553458.786 20553460.410
+ 45.600 44.300
+ 06 1 2 1 38 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13210398.362 6 -10293806.421 5 22294859.605 22294858.516 22294858.859
+ 36.200 32.400
+ -4252142.988 4 -3313355.417 3 24043376.449 24043375.570 24043375.665
+ 24.600 21.600
+ -11025521.435 6 -8591299.190 5 22403547.596 22403546.187 22403546.449
+ 38.100 32.300
+ -9658900.395 5 -7526413.496 5 22742080.383 22742079.061 22742079.502
+ 34.400 31.800
+ -4932269.801 6 -3843325.234 5 22753515.697 22753513.848 22753514.846
+ 36.400 32.400
+ -20558195.562 7 -16019365.571 6 20992884.863 20992881.443 20992883.866
+ 46.900 41.600
+ -23796868.282 7 -18543004.281 7 19953876.740 19953875.028 19953876.316
+ 46.500 46.100
+ -19750107.368 7 -15389683.193 7 20558787.699 20558785.622 20558787.087
+ 45.600 44.300
+ 06 1 2 1 38 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -13136559.573 6 -10236269.704 5 22308911.039 22308909.661 22308910.194
+ 36.000 32.400
+ -4238000.152 4 -3302335.054 4 24046067.984 24046067.247 24046067.010
+ 24.900 24.600
+ -10944727.873 6 -8528343.175 5 22418921.823 22418921.045 22418920.776
+ 38.400 32.600
+ -9757077.348 5 -7602915.020 5 22723398.351 22723396.487 22723397.418
+ 34.600 31.100
+ -5008343.361 6 -3902603.305 5 22739039.345 22739036.612 22739038.387
+ 36.600 30.400
+ -20621673.107 7 -16068828.590 6 20980805.639 20980802.032 20980804.565
+ 47.000 41.600
+ -23802507.837 7 -18547398.737 7 19952803.547 19952801.830 19952803.025
+ 46.300 46.000
+ -19721585.576 7 -15367458.419 7 20564215.186 20564213.118 20564214.515
+ 45.600 44.300
+ 06 1 2 1 39 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13062348.934 5 -10178443.244 5 22323032.214 22323031.541 22323031.596
+ 34.900 32.100
+ -4223277.078 4 -3290862.546 3 24048869.931 24048868.544 24048869.005
+ 27.400 23.000
+ -10863797.958 6 -8465280.909 5 22434322.679 22434321.260 22434321.541
+ 38.100 32.300
+ -9855100.759 5 -7679296.892 5 22704745.164 22704743.398 22704743.976
+ 34.400 32.100
+ -5084249.152 6 -3961750.679 4 22724594.636 22724591.900 22724593.824
+ 36.400 29.500
+ -20684801.922 7 -16118019.873 6 20968792.520 20968789.051 20968791.645
+ 47.300 41.800
+ -23807464.435 7 -18551261.011 7 19951860.324 19951858.673 19951859.832
+ 46.400 46.100
+ -19692536.350 7 -15344822.661 7 20569743.269 20569741.047 20569742.424
+ 45.500 44.400
+ 06 1 2 1 39 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12987769.024 5 -10120329.054 5 22337224.330 22337223.595 22337223.518
+ 34.400 31.500
+ -4207973.763 4 -3278937.849 4 24051781.817 24051781.281 24051781.020
+ 26.200 25.600
+ -10782732.597 6 -8402113.098 5 22449749.100 22449747.499 22449747.851
+ 37.500 32.000
+ -9952968.690 5 -7755557.596 5 22686121.262 22686119.846 22686120.161
+ 33.900 32.700
+ -5159986.854 6 -4020767.060 5 22710182.420 22710180.438 22710181.618
+ 37.100 32.000
+ -20747580.240 7 -16166938.039 6 20956846.369 20956842.791 20956845.189
+ 46.900 41.900
+ -23811738.931 7 -18554591.786 7 19951047.089 19951045.274 19951046.593
+ 46.600 46.300
+ -19662960.994 7 -15321776.931 7 20575371.111 20575369.078 20575370.343
+ 45.300 44.400
+ 06 1 2 1 40 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12912822.539 5 -10061929.207 5 22351486.665 22351485.248 22351485.838
+ 35.700 31.100
+ -4192090.601 4 -3266561.380 3 24054804.724 24054803.052 24054803.558
+ 27.100 21.600
+ -10701532.650 6 -8338840.423 5 22465200.748 22465199.472 22465199.577
+ 37.700 32.000
+ -10050678.707 5 -7831695.248 5 22667527.351 22667526.201 22667526.401
+ 34.100 33.000
+ -5235555.531 5 -4079651.691 5 22695801.643 22695800.352 22695800.826
+ 35.800 32.400
+ -20810005.526 7 -16215581.116 7 20944966.916 20944963.720 20944965.841
+ 46.900 42.200
+ -23815331.566 7 -18557391.237 7 19950363.209 19950361.639 19950362.783
+ 46.400 46.100
+ -19632861.360 7 -15298322.668 7 20581099.057 20581096.820 20581098.236
+ 45.400 44.300
+ 06 1 2 1 40 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12837511.985 5 -10003245.655 5 22365817.639 22365816.563 22365816.983
+ 35.600 31.300
+ -4175627.739 4 -3253733.172 4 24057937.374 24057936.414 24057936.517
+ 27.400 24.200
+ -10620199.105 6 -8275463.647 5 22480678.269 22480676.443 22480677.042
+ 37.500 31.500
+ -10148228.725 5 -7907708.229 5 22648964.474 22648963.059 22648963.347
+ 34.700 32.300
+ -5310954.750 6 -4138404.304 4 22681454.256 22681451.312 22681453.527
+ 37.300 29.700
+ -20872075.777 7 -16263947.539 7 20933155.183 20933152.059 20933154.257
+ 46.900 42.100
+ -23818243.008 7 -18559659.891 7 19949809.226 19949807.576 19949808.706
+ 46.200 46.200
+ -19602239.091 7 -15274461.158 7 20586925.907 20586924.111 20586925.229
+ 45.200 44.400
+ 06 1 2 1 41 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12761840.073 5 -9944280.550 5 22380217.729 22380216.311 22380216.827
+ 34.700 31.500
+ -4158585.694 4 -3240453.657 3 24061180.435 24061178.907 24061179.337
+ 26.500 21.600
+ -10538732.882 6 -8211983.476 5 22496179.935 22496178.753 22496178.935
+ 36.900 31.100
+ -10245616.544 5 -7983594.845 5 22630432.225 22630430.465 22630431.117
+ 35.500 31.500
+ -5386184.771 6 -4197025.113 4 22667139.114 22667135.465 22667138.129
+ 37.800 29.200
+ -20933788.920 7 -16312035.699 7 20921411.829 20921408.561 20921410.818
+ 47.200 42.500
+ -23820473.683 7 -18561398.079 7 19949384.709 19949383.131 19949384.201
+ 46.400 46.100
+ -19571095.669 7 -15250193.559 7 20592852.292 20592850.478 20592851.557
+ 44.900 44.300
+ 06 1 2 1 41 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12685809.353 5 -9885035.844 5 22394685.555 22394684.510 22394684.928
+ 34.500 31.100
+ -4140964.694 4 -3226722.995 3 24064533.173 24064532.182 24064532.232
+ 26.500 21.600
+ -10457135.120 6 -8148400.811 5 22511708.051 22511706.310 22511706.842
+ 37.300 30.800
+ -10342840.271 5 -8059353.588 5 22611930.823 22611929.415 22611929.867
+ 34.600 32.300
+ -5461244.437 6 -4255513.158 5 22652855.141 22652852.647 22652854.098
+ 36.400 31.300
+ -20995142.652 7 -16359843.803 7 20909736.868 20909733.313 20909735.756
+ 47.400 42.500
+ -23822024.126 7 -18562606.211 7 19949089.794 19949088.050 19949089.214
+ 46.400 46.100
+ -19539432.826 7 -15225521.213 7 20598877.624 20598875.759 20598876.876
+ 45.100 44.300
+ 06 1 2 1 42 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12609422.640 5 -9825513.736 5 22409221.577 22409220.350 22409220.773
+ 34.900 31.000
+ -4122765.244 4 -3212541.630 3 24067996.828 24067994.883 24067995.584
+ 26.500 19.300
+ -10375406.629 6 -8084716.269 5 22527260.196 22527258.845 22527259.048
+ 36.700 31.300
+ -10439897.574 5 -8134982.637 5 22593461.996 22593460.287 22593460.820
+ 35.500 33.200
+ -5536133.400 6 -4313868.150 5 22638603.803 22638601.754 22638602.947
+ 36.000 31.100
+ -21056134.864 7 -16407370.204 7 20898130.148 20898126.763 20898129.160
+ 47.200 42.500
+ -23822895.007 7 -18563284.817 7 19948924.153 19948922.272 19948923.504
+ 46.400 46.100
+ -19507252.211 7 -15200445.412 7 20605001.513 20604999.448 20605000.740
+ 45.400 44.300
+ 06 1 2 1 42 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12532682.536 5 -9765716.256 5 22423824.777 22423823.460 22423824.059
+ 33.600 30.400
+ -4103987.295 4 -3197909.443 3 24071570.075 24071568.616 24071569.037
+ 28.100 21.600
+ -10293548.604 6 -8020930.799 5 22542837.167 22542835.671 22542835.961
+ 36.600 30.600
+ -10536786.195 5 -8210480.253 5 22575024.413 22575022.983 22575023.513
+ 35.900 33.400
+ -5610850.781 6 -4372089.478 4 22624386.421 22624382.749 22624385.557
+ 38.300 29.900
+ -21116763.343 7 -16454613.172 7 20886592.891 20886589.540 20886591.854
+ 46.900 42.500
+ -23823086.844 7 -18563434.300 7 19948887.662 19948885.821 19948887.115
+ 46.400 46.200
+ -19474555.436 7 -15174967.404 7 20611223.615 20611221.405 20611222.867
+ 45.700 44.100
+ 06 1 2 1 43 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12455591.710 5 -9705645.506 5 22438494.502 22438493.501 22438493.782
+ 34.000 31.300
+ -4084631.092 4 -3182826.711 3 24075253.394 24075251.985 24075252.390
+ 26.200 21.100
+ -10211562.049 6 -7957045.177 5 22558438.780 22558437.321 22558437.742
+ 36.900 31.000
+ -10633504.277 5 -8285844.994 5 22556619.475 22556618.215 22556618.549
+ 35.700 33.800
+ -5685396.686 6 -4430177.200 5 22610200.315 22610197.045 22610199.411
+ 37.400 30.200
+ -21177025.895 7 -16501571.002 7 20875125.240 20875122.007 20875124.203
+ 46.900 42.600
+ -23822600.317 7 -18563055.185 7 19948980.108 19948978.392 19948979.623
+ 46.500 46.300
+ -19441344.203 7 -15149088.518 7 20617543.474 20617541.255 20617542.755
+ 45.800 44.000
+ 06 1 2 1 43 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12378152.869 5 -9645303.569 5 22453230.977 22453229.887 22453230.328
+ 34.600 31.300
+ -4064697.254 4 -3167293.837 3 24079046.507 24079044.786 24079045.461
+ 27.100 19.300
+ -10129447.776 6 -7893060.027 5 22574064.933 22574063.164 22574063.762
+ 36.900 30.800
+ -10730049.515 6 -8361075.033 5 22538247.668 22538246.524 22538246.634
+ 36.000 34.700
+ -5759770.784 6 -4488131.015 5 22596047.269 22596045.196 22596046.396
+ 37.800 32.300
+ -21236920.493 7 -16548242.114 7 20863727.861 20863724.506 20863726.822
+ 47.000 42.800
+ -23821436.101 7 -18562148.002 7 19949201.693 19949200.072 19949201.183
+ 46.600 46.400
+ -19407620.508 7 -15122810.305 7 20623960.825 20623958.672 20623960.125
+ 45.600 44.000
+ 06 1 2 1 44 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12300368.614 5 -9584692.478 5 22468032.957 22468031.737 22468032.125
+ 35.300 30.800
+ -4044186.489 4 -3151311.414 3 24082949.727 24082948.153 24082948.631
+ 25.600 19.900
+ -10047206.634 6 -7828976.021 5 22589714.852 22589713.306 22589713.769
+ 37.000 31.000
+ -10826419.567 6 -8436168.564 5 22519909.065 22519907.598 22519908.056
+ 36.400 34.300
+ -5833971.985 6 -4545950.100 5 22581927.619 22581925.196 22581926.805
+ 38.300 33.000
+ -21296444.980 7 -16594624.831 7 20852400.467 20852397.235 20852399.578
+ 46.900 42.800
+ -23819595.004 7 -18560713.379 7 19949551.959 19949550.413 19949551.484
+ 46.500 46.400
+ -19373385.744 7 -15096133.867 7 20630475.557 20630473.380 20630474.808
+ 45.700 44.000
+ 06 1 2 1 44 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12222241.935 5 -9523814.565 4 22482899.860 22482898.502 22482899.236
+ 35.100 29.900
+ -4023099.227 4 -3134879.785 2 24086962.186 24086960.458 24086961.075
+ 25.300 17.800
+ -9964839.608 6 -7764793.917 5 22605388.863 22605387.258 22605387.619
+ 36.500 30.800
+ -10922612.418 6 -8511124.026 5 22501604.215 22501602.429 22501603.040
+ 36.000 33.000
+ -5907999.991 6 -4603634.246 5 22567839.953 22567837.502 22567839.322
+ 37.700 32.000
+ -21355597.145 7 -16640717.427 7 20841144.363 20841141.018 20841143.343
+ 47.100 43.000
+ -23817077.658 7 -18558751.806 7 19950031.007 19950029.432 19950030.500
+ 46.600 46.400
+ -19338641.751 7 -15069060.619 7 20637086.960 20637084.905 20637086.278
+ 45.800 44.100
+ 06 1 2 1 45 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12143775.100 5 -9462671.579 5 22497831.539 22497830.275 22497830.890
+ 34.600 30.400
+ -4001435.588 4 -3117999.028 2 24091084.584 24091083.005 24091083.898
+ 24.900 16.100
+ -9882347.710 6 -7700514.528 5 22621086.364 22621084.700 22621085.248
+ 36.700 30.100
+ -11018625.911 6 -8585939.738 5 22483333.652 22483331.683 22483332.480
+ 36.300 33.400
+ -5981854.490 6 -4661183.182 5 22553786.153 22553783.290 22553785.335
+ 37.800 31.600
+ -21414374.839 7 -16686518.222 7 20829959.387 20829955.920 20829958.239
+ 46.900 43.000
+ -23813884.852 7 -18556263.904 7 19950638.649 19950636.875 19950638.105
+ 46.400 46.200
+ -19303390.398 7 -15041592.032 7 20643794.949 20643793.004 20643794.327
+ 45.800 43.800
+ 06 1 2 1 45 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -12064971.018 5 -9401265.811 5 22512827.357 22512826.518 22512826.631
+ 34.000 31.300
+ -3979196.258 4 -3100669.672 2 24095317.188 24095315.087 24095316.241
+ 25.900 17.800
+ -9799731.979 6 -7636138.626 5 22636808.049 22636806.064 22636806.939
+ 36.500 30.100
+ -11114457.852 6 -8660613.968 5 22465097.061 22465095.639 22465096.101
+ 36.900 34.300
+ -6055534.616 6 -4718596.255 5 22539765.664 22539762.744 22539764.787
+ 38.400 32.100
+ -21472776.194 7 -16732025.775 7 20818845.814 20818842.516 20818844.858
+ 47.000 43.000
+ -23810017.332 7 -18553250.250 7 19951374.539 19951372.790 19951374.016
+ 46.600 46.300
+ -19267633.300 7 -15013729.357 7 20650599.439 20650597.407 20650598.738
+ 45.800 44.000
+ 06 1 2 1 46 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11985832.594 5 -9339599.524 5 22527887.172 22527886.001 22527886.327
+ 33.800 31.000
+ -3956381.713 4 -3082892.102 2 24099658.413 24099656.400 24099657.198
+ 26.200 17.000
+ -9716993.335 6 -7571666.950 5 22652552.274 22652550.882 22652551.102
+ 36.400 31.300
+ -11210106.167 6 -8735145.118 5 22446896.143 22446894.421 22446894.955
+ 36.400 34.300
+ -6129040.294 6 -4775873.386 5 22525777.745 22525774.996 22525776.775
+ 38.100 32.000
+ -21530798.968 7 -16777238.321 7 20807804.547 20807801.227 20807803.506
+ 47.100 43.100
+ -23805475.950 7 -18549711.509 7 19952238.759 19952237.005 19952238.210
+ 46.600 46.200
+ -19231372.401 7 -14985474.104 7 20657499.728 20657497.689 20657499.027
+ 45.800 44.000
+ 06 1 2 1 46 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -11906362.349 5 -9277674.664 5 22543009.181 22543008.619 22543008.700
+ 32.600 30.600
+ -3932992.764 4 -3064666.948 3 24104108.787 24104106.902 24104107.840
+ 24.900 20.500
+ -9634132.729 6 -7507100.254 5 22668320.216 22668318.931 22668319.033
+ 36.200 31.100
+ -11305568.572 6 -8809531.397 5 22428729.676 22428728.382 22428728.672
+ 36.000 34.100
+ -6202370.860 6 -4833014.062 5 22511822.567 22511820.180 22511821.825
+ 37.400 31.000
+ -21588440.773 7 -16822154.014 7 20796835.762 20796832.359 20796834.787
+ 47.100 43.400
+ -23800261.580 7 -18545648.361 7 19953231.075 19953229.305 19953230.487
+ 46.700 46.200
+ -19194609.399 7 -14956827.606 7 20664495.520 20664493.388 20664494.792
+ 45.800 44.100
+ 06 1 2 1 47 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11826562.813 5 -9215493.243 4 22558194.571 22558193.873 22558193.893
+ 32.400 29.700
+ -3909029.790 4 -3045994.496 3 24108669.331 24108667.285 24108668.303
+ 27.100 19.300
+ -9551151.011 6 -7442439.180 5 22684111.195 22684109.463 22684109.948
+ 36.200 30.600
+ -11400842.913 5 -8883771.139 5 22410599.557 22410598.551 22410598.582
+ 35.700 34.600
+ -6275525.611 6 -4890017.761 5 22497902.793 22497899.222 22497901.906
+ 39.300 31.500
+ -21645699.485 7 -16866771.189 7 20785939.804 20785936.405 20785938.803
+ 47.100 43.400
+ -23794375.119 7 -18541061.502 7 19954351.279 19954349.508 19954350.759
+ 46.800 46.400
+ -19157346.006 7 -14927791.193 7 20671586.405 20671584.366 20671585.711
+ 45.700 44.100
+ 06 1 2 1 47 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -11746437.337 5 -9153057.827 4 22573442.725 22573441.290 22573441.825
+ 33.200 29.900
+ -3884493.740 4 -3026875.503 3 24113338.123 24113337.407 24113337.102
+ 26.500 23.000
+ -9468049.284 6 -7377684.583 4 22699924.906 22699923.041 22699923.799
+ 36.600 29.700
+ -11495926.792 6 -8957862.456 5 22392506.156 22392504.547 22392504.909
+ 36.500 34.500
+ -6348504.452 6 -4946884.389 5 22484014.995 22484012.747 22484014.114
+ 38.700 33.000
+ -21702572.916 7 -16911088.149 7 20775117.208 20775113.714 20775116.086
+ 46.800 43.400
+ -23787817.375 7 -18535951.568 7 19955599.380 19955597.402 19955598.762
+ 47.000 46.400
+ -19119584.192 7 -14898366.402 7 20678772.145 20678770.134 20678771.458
+ 45.600 43.900
+ 06 1 2 1 48 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11665988.018 5 -9090370.057 5 22588751.826 22588750.361 22588751.052
+ 34.100 30.100
+ -3859385.099 4 -3007310.339 3 24118116.262 24118114.703 24118115.244
+ 27.600 21.100
+ -9384828.129 6 -7312836.931 5 22715761.804 22715759.685 22715760.512
+ 36.500 30.200
+ -11590817.956 6 -9031803.629 5 22374448.410 22374446.994 22374447.575
+ 37.400 33.500
+ -6421306.644 6 -5003613.307 5 22470160.843 22470159.160 22470159.778
+ 37.200 34.100
+ -21759058.806 7 -16955103.122 7 20764368.150 20764364.834 20764367.095
+ 46.800 43.600
+ -23780589.307 7 -18530319.303 7 19956974.658 19956972.881 19956974.135
+ 46.900 46.300
+ -19081325.776 7 -14868554.647 7 20686052.487 20686050.531 20686051.788
+ 45.600 44.000
+ 06 1 2 1 48 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -11585218.229 5 -9027432.576 5 22604121.238 22604120.685 22604120.624
+ 34.000 30.600
+ -3833703.901 4 -2987299.039 3 24123003.583 24123001.723 24123002.371
+ 27.400 21.100
+ -9301488.577 6 -7247897.021 5 22731620.020 22731618.766 22731618.945
+ 36.100 30.400
+ -11685514.367 6 -9105593.045 5 22356428.673 22356427.132 22356427.538
+ 37.200 34.800
+ -6493931.716 6 -5060204.249 5 22456341.484 22456338.119 22456340.705
+ 40.000 32.300
+ -21815155.536 7 -16998814.852 7 20753693.021 20753689.967 20753692.149
+ 46.800 43.700
+ -23772691.984 7 -18524165.539 7 19958477.426 19958475.621 19958476.782
+ 46.700 46.300
+ -19042572.602 7 -14838357.365 7 20693426.959 20693424.927 20693426.292
+ 45.800 43.800
+ 06 1 2 1 49 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11504130.469 5 -8964247.329 4 22619551.744 22619551.076 22619550.972
+ 32.800 29.900
+ -3807451.781 4 -2966842.827 3 24127998.630 24127997.876 24127997.793
+ 27.600 21.600
+ -9218031.777 6 -7182865.759 4 22747501.641 22747499.883 22747500.498
+ 36.200 29.900
+ -11780013.730 6 -9179228.916 5 22338445.470 22338444.515 22338444.744
+ 36.900 34.700
+ -6566379.003 6 -5116656.691 5 22442554.741 22442551.472 22442553.920
+ 39.300 31.100
+ -21870860.923 7 -17042221.639 7 20743092.918 20743089.604 20743091.823
+ 47.000 43.700
+ -23764126.195 7 -18517490.894 7 19960107.114 19960105.620 19960106.679
+ 46.800 46.100
+ -19003326.551 7 -14807776.025 7 20700895.343 20700893.225 20700894.602
+ 45.700 43.800
+ 06 1 2 1 49 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -11422727.230 5 -8900816.246 4 22635042.579 22635041.245 22635041.685
+ 33.400 29.500
+ -3780628.932 4 -2945941.914 3 24133102.792 24133101.601 24133101.711
+ 25.300 19.300
+ -9134458.485 5 -7117743.715 5 22763405.304 22763403.409 22763404.076
+ 35.900 30.100
+ -11874313.584 6 -9252709.306 5 22320501.103 22320499.837 22320500.139
+ 36.900 34.700
+ -6638648.418 6 -5172970.496 5 22428802.261 22428800.013 22428801.424
+ 38.300 33.200
+ -21926172.762 7 -17085321.770 7 20732567.452 20732563.920 20732566.441
+ 47.000 43.500
+ -23754893.074 7 -18510296.251 7 19961864.493 19961862.574 19961863.892
+ 47.000 46.100
+ -18963589.333 7 -14776811.954 7 20708456.801 20708454.957 20708456.206
+ 45.800 43.600
+ 06 1 2 1 50 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11341011.610 5 -8837141.740 4 22650591.991 22650591.357 22650591.514
+ 33.900 29.000
+ -3753236.281 3 -2924596.968 3 24138315.680 24138314.616 24138314.618
+ 23.400 19.900
+ -9050769.294 5 -7052531.365 5 22779330.360 22779328.996 22779329.242
+ 35.300 30.100
+ -11968411.801 6 -9326032.592 5 22302594.909 22302593.536 22302593.821
+ 37.100 34.800
+ -6710738.933 6 -5229144.896 5 22415084.497 22415081.222 22415083.584
+ 39.900 32.600
+ -21981088.647 7 -17128113.370 7 20722117.165 20722113.858 20722116.186
+ 46.900 43.700
+ -23744993.643 7 -18502582.403 7 19963748.185 19963746.326 19963747.685
+ 46.900 46.000
+ -18923363.059 7 -14745466.805 7 20716111.965 20716109.734 20716111.173
+ 45.900 43.700
+ 06 1 2 1 50 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -11258986.509 5 -8773226.079 4 22666201.061 22666200.381 22666200.303
+ 32.000 28.800
+ -3725274.117 4 -2902808.274 3 24143637.071 24143634.889 24143635.904
+ 27.600 19.300
+ -8966965.297 5 -6987229.565 5 22795278.011 22795276.402 22795276.849
+ 35.700 30.200
+ -12062306.153 6 -9399197.020 5 22284727.777 22284726.190 22284726.530
+ 37.100 35.200
+ -6782650.463 6 -5285179.860 5 22401399.604 22401396.476 22401398.629
+ 38.400 32.100
+ -22035606.669 7 -17170594.937 7 20711742.856 20711739.482 20711741.756
+ 46.600 43.900
+ -23734428.956 7 -18494350.177 7 19965758.541 19965756.694 19965758.032
+ 47.000 46.000
+ -18882649.556 7 -14713741.994 7 20723859.420 20723857.167 20723858.730
+ 46.000 43.600
+ 06 1 2 1 51 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11176654.216 5 -8709071.084 4 22681868.612 22681867.445 22681867.903
+ 32.600 28.800
+ -3696743.602 4 -2880576.705 3 24149066.046 24149064.677 24149065.228
+ 27.600 19.900
+ -8883047.461 5 -6921839.044 4 22811246.609 22811245.450 22811245.650
+ 35.500 29.500
+ -12155994.339 6 -9472200.798 5 22266899.216 22266897.639 22266898.126
+ 37.700 34.400
+ -6854382.174 6 -5341074.678 5 22387749.472 22387747.130 22387748.678
+ 38.900 33.900
+ -22089724.704 7 -17212764.827 7 20701444.217 20701441.152 20701443.285
+ 46.600 43.900
+ -23723200.067 7 -18485600.387 7 19967895.321 19967893.587 19967894.875
+ 47.200 46.100
+ -18841450.776 7 -14681639.050 7 20731699.254 20731697.096 20731698.567
+ 45.900 43.600
+ 06 1 2 1 51 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -11094017.867 5 -8644679.137 4 22697593.994 22697592.520 22697593.248
+ 31.500 28.600
+ -3667645.416 4 -2857902.790 2 24154602.859 24154601.547 24154602.061
+ 26.800 17.800
+ -8799016.521 5 -6856360.397 4 22827236.831 22827236.164 22827235.880
+ 34.700 29.200
+ -12249474.007 6 -9545042.100 5 22249110.346 22249108.925 22249109.223
+ 36.900 34.000
+ -6925933.935 6 -5396829.276 5 22374134.100 22374131.446 22374133.145
+ 39.900 34.800
+ -22143440.563 7 -17254621.332 7 20691222.562 20691219.346 20691221.519
+ 46.500 44.000
+ -23711308.242 7 -18476334.026 7 19970158.348 19970156.471 19970157.883
+ 47.100 46.100
+ -18799768.543 7 -14649159.384 7 20739631.262 20739628.944 20739630.498
+ 45.700 43.500
+ 06 1 2 1 52 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11011080.233 5 -8580052.431 4 22713376.511 22713375.381 22713375.773
+ 32.800 28.800
+ -3637980.305 4 -2834787.104 2 24160248.743 24160246.604 24160247.647
+ 27.400 12.600
+ -8714873.427 5 -6790794.359 4 22843249.525 22843248.133 22843248.314
+ 35.100 28.800
+ -12342743.163 6 -9617719.357 5 22231362.008 22231360.611 22231360.987
+ 37.600 34.900
+ -6997305.079 6 -5452443.135 5 22360552.194 22360549.254 22360551.235
+ 39.200 33.200
+ -22196752.114 7 -17296162.800 7 20681077.871 20681074.463 20681076.718
+ 46.500 44.000
+ -23698754.455 7 -18466551.846 7 19972547.380 19972545.388 19972546.867
+ 47.300 46.000
+ -18757604.774 7 -14616304.497 7 20747654.617 20747652.590 20747653.834
+ 45.600 43.600
+ 06 1 2 1 52 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -10927844.106 5 -8515193.117 4 22729215.993 22729214.752 22729215.315
+ 32.800 28.600
+ -3607749.368 4 -2811230.526 2 24166001.231 24165999.536 24166000.334
+ 27.400 17.800
+ -8630619.118 5 -6725141.662 4 22859282.777 22859281.028 22859281.591
+ 35.200 28.600
+ -12435799.404 6 -9690230.716 5 22213654.279 22213652.771 22213653.073
+ 37.700 35.500
+ -7068495.138 6 -5507915.909 5 22347005.108 22347002.321 22347004.232
+ 39.600 33.200
+ -22249657.234 7 -17337387.563 7 20671010.194 20671006.974 20671009.206
+ 46.600 44.000
+ -23685539.932 7 -18456254.810 7 19975062.018 19975059.952 19975061.457
+ 47.200 46.100
+ -18714961.455 7 -14583075.933 7 20755769.383 20755767.290 20755768.653
+ 45.800 43.600
+ 06 1 2 1 53 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10844312.395 5 -8450103.486 4 22745111.382 22745110.345 22745110.711
+ 31.800 29.900
+ -3576953.480 4 -2787233.735 3 24171861.263 24171859.545 24171860.179
+ 26.200 18.600
+ -8546254.380 5 -6659402.916 4 22875336.340 22875334.975 22875335.217
+ 34.600 29.000
+ -12528640.453 6 -9762574.370 5 22195987.602 22195985.476 22195986.313
+ 38.200 35.500
+ -7139503.398 6 -5563247.010 5 22333492.692 22333490.076 22333491.875
+ 39.700 33.100
+ -22302154.091 7 -17378294.200 7 20661020.589 20661017.111 20661019.521
+ 46.500 44.000
+ -23671665.911 7 -18445443.879 7 19977702.051 19977700.221 19977701.521
+ 47.100 46.100
+ -18671840.583 7 -14549475.257 7 20763974.927 20763973.013 20763974.248
+ 45.800 43.600
+ 06 1 2 1 53 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -10760487.888 5 -8384785.722 4 22761062.330 22761061.656 22761061.531
+ 32.000 29.700
+ -3545593.300 4 -2762797.207 2 24177828.535 24177827.772 24177827.566
+ 24.600 17.000
+ -8461780.002 5 -6593578.737 4 22891411.623 22891410.196 22891410.517
+ 34.900 29.500
+ -12621263.751 6 -9834748.373 5 22178361.404 22178360.090 22178360.507
+ 38.800 35.600
+ -7210329.578 6 -5618436.236 5 22320014.944 22320012.170 22320014.021
+ 39.700 33.400
+ -22354240.200 7 -17418880.773 7 20651108.920 20651105.357 20651107.851
+ 46.600 44.000
+ -23657133.535 7 -18434119.946 7 19980467.329 19980465.667 19980466.843
+ 47.100 46.200
+ -18628244.126 7 -14515503.982 7 20772271.160 20772269.092 20772270.379
+ 45.800 43.500
+ 06 1 2 1 54 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10676373.338 5 -8319241.939 4 22777069.229 22777067.963 22777068.390
+ 33.000 28.800
+ -3513669.731 4 -2737921.675 2 24183903.872 24183902.043 24183902.794
+ 26.200 17.000
+ -8377196.897 5 -6527669.831 4 22907506.886 22907505.688 22907505.876
+ 34.700 29.500
+ -12713667.163 6 -9906751.014 5 22160777.506 22160776.266 22160776.570
+ 38.000 35.800
+ -7280973.076 6 -5673483.120 5 22306571.677 22306569.125 22306570.954
+ 39.500 32.700
+ -22405913.592 7 -17459145.749 7 20641275.582 20641272.294 20641274.588
+ 46.500 44.200
+ -23641944.182 7 -18422284.082 7 19983357.833 19983356.155 19983357.366
+ 47.200 46.200
+ -18584173.914 7 -14481163.557 7 20780657.246 20780655.393 20780656.617
+ 45.600 43.700
+ 06 1 2 1 54 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -10591971.536 5 -8253474.316 4 22793130.284 22793128.840 22793129.520
+ 32.600 27.600
+ -3481184.009 4 -2712608.146 3 24190085.488 24190084.496 24190084.486
+ 26.200 21.100
+ -8292506.001 5 -6461676.944 4 22923623.324 22923622.078 22923622.186
+ 34.700 28.800
+ -12805848.432 6 -9978580.562 5 22143236.158 22143234.560 22143235.055
+ 38.400 35.700
+ -7351433.492 6 -5728387.332 5 22293163.789 22293161.281 22293162.951
+ 40.100 34.000
+ -22457172.607 7 -17499087.837 7 20631521.618 20631517.923 20631520.488
+ 46.500 44.200
+ -23626099.071 7 -18409937.239 7 19986373.180 19986371.302 19986372.658
+ 47.400 46.200
+ -18539632.034 7 -14446455.599 7 20789133.270 20789131.345 20789132.654
+ 45.800 43.400
+ 06 1 2 1 55 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10507285.482 5 -8187485.181 4 22809245.372 22809244.032 22809244.831
+ 32.300 27.400
+ -3448137.353 4 -2686857.514 3 24196373.956 24196372.849 24196372.948
+ 25.600 19.900
+ -8207708.098 5 -6395600.651 4 22939759.946 22939758.026 22939758.859
+ 34.600 27.600
+ -12897805.204 6 -10050235.181 5 22125737.019 22125735.671 22125736.196
+ 38.300 35.600
+ -7421710.311 6 -5783148.484 5 22279790.456 22279787.985 22279789.671
+ 40.200 34.000
+ -22508014.744 7 -17538705.085 7 20621846.624 20621842.993 20621845.531
+ 46.600 44.300
+ -23609599.358 7 -18397080.313 7 19989513.033 19989511.047 19989512.458
+ 47.300 46.000
+ -18494620.497 7 -14411381.671 7 20797698.824 20797696.834 20797698.091
+ 45.700 43.400
+ 06 1 2 1 55 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -10422317.883 5 -8121276.688 4 22825414.175 22825413.386 22825413.478
+ 32.400 28.800
+ -3414530.149 4 -2660670.065 3 24202769.356 24202768.367 24202768.435
+ 25.300 22.600
+ -8122804.092 5 -6329441.682 4 22955916.618 22955915.137 22955915.485
+ 33.600 29.000
+ -12989535.145 6 -10121713.027 5 22108281.382 22108280.052 22108280.321
+ 37.700 35.500
+ -7491802.840 6 -5837766.027 5 22266452.373 22266449.681 22266451.476
+ 39.900 34.500
+ -22558438.058 7 -17577995.971 7 20612251.271 20612247.892 20612250.251
+ 46.700 44.400
+ -23592446.549 7 -18383714.490 7 19992776.989 19992775.037 19992776.479
+ 47.400 46.000
+ -18449141.316 7 -14375943.345 7 20806353.290 20806351.194 20806352.591
+ 45.600 43.400
+ 06 1 2 1 56 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10337071.809 5 -8054851.200 4 22841636.112 22841634.994 22841635.430
+ 31.500 29.000
+ -3380363.408 3 -2634046.636 3 24209270.452 24209269.668 24209269.574
+ 22.600 20.500
+ -8037794.849 5 -6263200.732 4 22972092.897 22972091.739 22972091.797
+ 33.500 28.100
+ -13081035.875 6 -10193012.278 5 22090869.980 22090867.944 22090868.904
+ 38.600 35.300
+ -7561710.651 6 -5892239.640 5 22253149.324 22253146.495 22253148.348
+ 39.800 34.000
+ -22608440.403 7 -17616958.837 7 20602736.175 20602732.787 20602735.139
+ 46.600 44.600
+ -23574641.859 7 -18369840.700 7 19996165.072 19996163.221 19996164.554
+ 47.400 46.000
+ -18403196.622 7 -14340142.281 7 20815095.946 20815094.241 20815095.313
+ 45.600 43.400
+ 06 1 2 1 56 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -10251549.774 5 -7988210.674 4 22857910.660 22857909.124 22857909.736
+ 31.300 28.400
+ -3345638.060 4 -2606987.933 3 24215879.099 24215877.387 24215878.381
+ 26.500 20.500
+ -7952681.184 5 -6196878.399 4 22988289.455 22988288.186 22988288.506
+ 34.600 27.100
+ -13172305.183 6 -10264131.211 5 22073501.066 22073499.830 22073500.377
+ 38.600 35.200
+ -7631433.313 6 -5946568.978 5 22239881.389 22239878.628 22239880.599
+ 40.200 33.500
+ -22658020.027 7 -17655592.306 7 20593301.324 20593298.140 20593300.448
+ 46.700 44.800
+ -23556186.746 7 -18355460.090 7 19999677.018 19999675.082 19999676.486
+ 47.500 46.000
+ -18356788.261 7 -14303979.921 7 20823927.449 20823925.399 20823926.651
+ 45.600 43.500
+ 06 1 2 1 57 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10165754.757 5 -7921357.444 4 22874236.611 22874235.534 22874235.973
+ 30.600 27.900
+ -3310355.439 4 -2579494.994 3 24222593.766 24222592.010 24222592.581
+ 26.800 19.300
+ -7867463.703 5 -6130475.173 4 23004506.632 23004504.482 23004505.343
+ 34.300 26.800
+ -13263340.541 6 -10335067.839 5 22056178.523 22056176.708 22056177.402
+ 39.200 35.900
+ -7700970.267 6 -6000753.612 5 22226648.852 22226646.116 22226648.036
+ 40.000 33.600
+ -22707174.637 7 -17693894.596 7 20583947.702 20583944.275 20583946.713
+ 46.600 44.700
+ -23537082.530 7 -18340573.688 7 20003312.359 20003310.563 20003311.826
+ 47.200 46.000
+ -18309918.327 7 -14267457.893 7 20832846.527 20832844.543 20832845.757
+ 45.600 43.400
+ 06 1 2 1 57 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -10079689.673 5 -7854293.761 4 22890614.139 22890613.277 22890613.536
+ 30.800 27.900
+ -3274516.927 4 -2551568.892 3 24229412.939 24229411.689 24229411.946
+ 25.300 20.500
+ -7782143.193 5 -6063991.666 4 23020742.551 23020740.699 23020741.239
+ 34.000 28.600
+ -13354139.634 6 -10405820.363 6 22038899.872 22038898.296 22038898.785
+ 39.300 36.700
+ -7770320.969 6 -6054793.111 5 22213451.941 22213449.305 22213451.124
+ 40.500 34.300
+ -22755902.023 7 -17731863.987 7 20574675.243 20574671.684 20574674.126
+ 46.200 44.600
+ -23517330.782 7 -18325182.712 7 20007070.865 20007069.102 20007070.322
+ 47.300 45.900
+ -18262588.879 7 -14230577.802 7 20841853.015 20841850.952 20841852.334
+ 45.700 43.400
+ 06 1 2 1 58 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9993357.436 5 -7787021.913 4 22907042.894 22907041.720 22907041.905
+ 30.400 27.600
+ -3238123.124 4 -2523210.084 2 24236338.645 24236336.813 24236337.535
+ 24.900 17.000
+ -7696720.568 5 -5997428.582 4 23036996.935 23036995.888 23036995.962
+ 33.000 28.100
+ -13444700.170 6 -10476386.992 6 22021666.520 22021665.340 22021665.368
+ 38.600 37.100
+ -7839484.889 6 -6108687.055 5 22200290.758 22200288.149 22200289.770
+ 40.500 35.100
+ -22804200.090 7 -17769498.843 7 20565484.255 20565480.923 20565483.137
+ 46.100 44.800
+ -23496932.795 7 -18309288.176 7 20010952.527 20010950.747 20010951.974
+ 47.300 45.800
+ -18214801.976 7 -14193341.250 7 20850946.587 20850944.510 20850945.897
+ 45.800 43.400
+ 06 1 2 1 58 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -9906760.821 5 -7719544.038 4 22923522.090 22923520.278 22923521.396
+ 32.700 27.100
+ -3201175.086 4 -2494419.421 2 24243369.742 24243368.109 24243368.646
+ 25.600 17.800
+ -7611196.555 5 -5930786.499 4 23053272.319 23053270.115 23053271.078
+ 32.800 26.500
+ -13535019.861 6 -10546765.956 6 22004479.364 22004477.927 22004478.284
+ 39.300 37.000
+ -7908461.602 6 -6162435.127 5 22187164.827 22187161.995 22187163.896
+ 40.800 34.400
+ -22852066.810 7 -17806797.581 7 20556375.212 20556372.133 20556374.254
+ 45.900 44.700
+ -23475890.089 7 -18292891.255 7 20014956.939 20014955.020 20014956.424
+ 47.400 45.800
+ -18166559.630 7 -14155749.809 7 20860126.611 20860124.704 20860125.938
+ 45.800 43.400
+ 06 1 2 1 59 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9819902.787 5 -7651862.471 4 22940050.411 22940048.835 22940049.481
+ 30.200 25.300
+ -3163674.086 4 -2465197.847 2 24250505.321 24250504.222 24250504.389
+ 24.900 16.100
+ -7525572.203 5 -5864066.236 4 23069566.228 23069564.781 23069564.949
+ 33.800 28.600
+ -13625096.246 6 -10616955.324 6 21987338.276 21987336.893 21987337.236
+ 39.100 37.100
+ -7977250.209 6 -6216036.637 5 22174074.962 22174071.903 22174074.059
+ 41.200 34.000
+ -22899500.548 7 -17843758.929 7 20547349.029 20547345.806 20547347.997
+ 45.900 44.700
+ -23454204.179 7 -18275993.144 7 20019083.763 20019081.736 20019083.178
+ 47.600 45.700
+ -18117863.883 7 -14117805.070 7 20869393.186 20869391.253 20869392.440
+ 45.500 43.200
+ 06 1 2 1 59 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -9732786.015 4 -7583979.304 4 22956627.703 22956626.764 22956626.990
+ 28.800 26.500
+ -3125621.439 4 -2435546.480 3 24257746.964 24257745.309 24257745.965
+ 27.400 18.600
+ -7439848.164 5 -5797268.278 4 23085878.770 23085877.343 23085877.762
+ 33.200 27.900
+ -13714926.922 6 -10686953.238 6 21970243.887 21970242.609 21970242.997
+ 39.600 36.600
+ -8045850.831 6 -6269491.659 5 22161020.526 22161017.811 22161019.637
+ 41.200 34.600
+ -22946498.960 7 -17880381.063 7 20538405.713 20538402.283 20538404.695
+ 46.100 44.900
+ -23431876.685 7 -18258595.095 7 20023332.477 20023330.509 20023331.923
+ 47.500 45.900
+ -18068716.977 7 -14079508.778 7 20878745.388 20878743.609 20878744.730
+ 45.600 43.200
+ 06 1 2 2 0 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9645413.609 4 -7515896.936 4 22973253.951 22973253.219 22973253.204
+ 28.800 25.900
+ -3087018.398 4 -2405466.167 2 24265092.605 24265090.752 24265091.584
+ 25.900 17.800
+ -7354025.236 5 -5730393.299 4 23102210.118 23102208.899 23102209.040
+ 32.100 26.800
+ -13804509.587 6 -10756757.912 6 21953197.413 21953195.296 21953196.121
+ 39.700 36.500
+ -8114262.726 6 -6322799.616 5 22148002.269 22147999.318 22148001.378
+ 41.400 34.500
+ -22993060.136 7 -17916662.499 7 20529545.565 20529542.005 20529544.466
+ 46.200 45.200
+ -23408909.019 7 -18240698.210 7 20027703.023 20027701.129 20027702.474
+ 47.600 45.800
+ -18019120.812 7 -14040862.413 7 20888183.310 20888181.431 20888182.570
+ 45.600 43.200
+ 06 1 2 2 0 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -9557788.336 4 -7447617.512 4 22989928.429 22989927.676 22989927.546
+ 29.900 25.600
+ -3047866.151 3 -2374957.905 3 24272543.113 24272542.263 24272541.945
+ 23.800 21.600
+ -7268104.171 5 -5663441.824 4 23118560.264 23118558.557 23118559.241
+ 32.600 27.100
+ -13893841.776 6 -10826367.388 6 21936197.883 21936196.326 21936196.679
+ 39.600 37.100
+ -8182485.161 6 -6375959.946 5 22135020.148 22135017.031 22135019.168
+ 41.200 34.300
+ -23039182.047 7 -17952601.644 7 20520768.848 20520765.308 20520767.770
+ 46.100 45.100
+ -23385302.804 7 -18222303.750 7 20032195.134 20032193.195 20032194.678
+ 47.600 45.700
+ -17969077.619 7 -14001867.716 7 20897706.273 20897704.263 20897705.569
+ 45.600 42.900
+ 06 1 2 2 1 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9469913.002 5 -7379143.234 4 23006650.362 23006649.883 23006649.858
+ 30.100 25.300
+ -3008165.691 4 -2344022.501 3 24280098.468 24280096.558 24280097.627
+ 29.200 19.900
+ -7182085.870 5 -5596414.572 4 23134929.410 23134927.675 23134928.158
+ 33.100 27.600
+ -13982921.106 6 -10895779.839 6 21919246.891 21919245.016 21919245.608
+ 39.800 37.100
+ -8250517.756 6 -6428972.338 5 22122073.726 22122071.034 22122072.929
+ 41.300 35.200
+ -23084862.532 7 -17988196.821 7 20512076.230 20512072.579 20512075.134
+ 46.000 45.300
+ -23361059.510 7 -18203412.869 7 20036808.453 20036806.556 20036807.971
+ 47.500 45.900
+ -17918589.475 7 -13962526.299 7 20907313.935 20907311.867 20907313.195
+ 45.700 42.800
+ 06 1 2 2 1 30.0000000 0 8G06G08G10G15G18G21G26G29
+ -9381790.695 4 -7310476.525 4 23023419.545 23023419.043 23023418.717
+ 28.600 26.200
+ -2967918.106 4 -2312660.736 3 24287756.844 24287755.205 24287755.628
+ 24.200 18.600
+ -7095971.165 5 -5529312.220 4 23151316.582 23151315.104 23151315.395
+ 32.800 27.900
+ -14071745.165 6 -10964993.391 6 21902344.033 21902342.179 21902342.926
+ 40.300 36.600
+ -8318359.823 6 -6481836.279 5 22109163.939 22109161.090 22109163.006
+ 41.300 35.400
+ -23130099.762 7 -18023446.611 7 20503467.679 20503464.175 20503466.640
+ 46.100 45.200
+ -23336180.838 7 -18184026.887 7 20041542.639 20041540.910 20041542.129
+ 47.500 45.800
+ -17867658.569 7 -13922839.881 7 20917005.881 20917003.674 20917005.118
+ 45.800 42.800
+ 06 1 2 2 2 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9293424.280 4 -7241619.617 4 23040235.125 23040234.686 23040234.401
+ 28.100 26.800
+ -2927124.833 4 -2280873.752 3 24295519.362 24295518.040 24295518.561
+ 26.500 19.300
+ -7009760.600 5 -5462135.165 4 23167721.478 23167720.560 23167720.556
+ 32.300 28.100
+ -14160311.695 6 -11034006.263 6 21885490.577 21885488.437 21885489.416
+ 40.700 36.500
+ -8386011.279 6 -6534551.685 5 22096290.253 22096287.495 22096289.313
+ 41.500 35.600
+ -23174891.509 7 -18058349.268 7 20494943.970 20494940.641 20494943.007
+ 46.100 45.200
+ -23310668.424 7 -18164147.081 7 20046397.435 20046395.767 20046396.910
+ 47.400 45.800
+ -17816286.836 7 -13882809.958 7 20926781.535 20926779.423 20926780.832
+ 45.800 42.800
+ 06 1 2 2 2 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -9204816.610 4 -7172574.714 4 23057096.473 23057096.066 23057095.926
+ 28.800 26.800
+ -2885787.302 4 -2248662.699 3 24303385.436 24303384.537 24303384.804
+ 25.600 20.500
+ -155466.940 2 -121142.740 9 24638445.168 24638443.528 24638443.480
+ 16.100 -3.000
+ -6923454.950 5 -5394884.030 4 23184145.606 23184143.598 23184144.445
+ 33.200 27.100
+ -14248618.059 6 -11102816.423 6 21868686.147 21868684.428 21868685.071
+ 40.300 37.200
+ -8453471.071 6 -6587117.738 5 22083452.950 22083450.302 22083452.007
+ 41.500 35.900
+ -23219236.053 7 -18092903.452 7 20486505.506 20486502.109 20486504.511
+ 45.800 45.200
+ -23284524.035 7 -18143774.827 7 20051372.664 20051370.895 20051372.092
+ 47.400 46.000
+ -17764476.456 7 -13842438.231 7 20936640.646 20936638.630 20936639.931
+ 45.700 42.700
+ 06 1 2 2 3 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -9115970.479 5 -7103343.981 4 23074003.795 23074002.739 23074003.093
+ 30.200 26.500
+ -2843906.950 3 -2216028.655 2 24311354.870 24311353.997 24311353.802
+ 22.100 15.100
+ -272093.133 3 -212020.322 1 24616250.207 24616249.834 24616249.698
+ 19.300 6.500
+ -6837055.000 5 -5327559.397 4 23200586.550 23200585.274 23200585.449
+ 32.100 28.600
+ -14336662.087 6 -11171422.151 6 21851931.943 21851930.371 21851930.799
+ 40.500 37.800
+ -8520738.996 6 -6639534.292 5 22070652.143 22070649.460 22070651.350
+ 41.900 35.400
+ -23263131.357 7 -18127107.579 7 20478152.437 20478149.101 20478151.417
+ 45.800 45.300
+ -23257749.190 7 -18122911.309 7 20056467.614 20056465.917 20056467.085
+ 47.400 45.600
+ -17712229.716 7 -13801726.482 7 20946582.766 20946580.787 20946582.084
+ 45.800 42.700
+ 06 1 2 2 3 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -9026888.936 5 -7033929.798 4 23090955.437 23090954.640 23090954.910
+ 30.200 26.200
+ -2801485.125 4 -2182972.643 3 24319428.146 24319426.996 24319427.077
+ 25.900 18.600
+ -388738.947 3 -302913.155 1 24594054.436 24594053.356 24594053.237
+ 22.100 11.000
+ -6750561.569 5 -5260161.928 4 23217045.891 23217044.440 23217044.674
+ 32.600 27.900
+ -14424441.420 6 -11239821.624 6 21835227.995 21835226.612 21835226.896
+ 40.400 38.300
+ -8587814.176 6 -6691800.654 5 22057888.492 22057885.336 22057887.357
+ 41.800 35.300
+ -23306575.436 7 -18160960.104 7 20469885.439 20469881.945 20469884.380
+ 45.700 45.300
+ -23230345.671 7 -18101557.911 7 20061682.291 20061680.581 20061681.770
+ 47.400 45.500
+ -17659548.646 7 -13760676.297 7 20956607.876 20956605.677 20956607.053
+ 45.600 42.500
+ 06 1 2 2 4 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8937574.926 4 -6964334.474 4 23107951.733 23107950.575 23107950.833
+ 28.800 24.900
+ -2758522.818 4 -2149495.564 2 24327603.506 24327601.983 24327602.530
+ 24.200 17.000
+ -505401.280 3 -393818.862 2 24571853.851 24571853.266 24571852.751
+ 23.000 17.000
+ -6663975.528 5 -5192692.301 4 23233522.319 23233521.091 23233521.165
+ 32.600 26.800
+ -14511953.510 6 -11308012.851 6 21818574.959 21818573.546 21818573.865
+ 40.300 38.200
+ -8654696.561 6 -6743916.790 5 22045160.903 22045158.058 22045160.026
+ 41.800 35.700
+ -23349566.431 7 -18194459.581 7 20461704.592 20461701.033 20461703.502
+ 45.500 45.400
+ -23202315.088 7 -18079715.894 7 20067016.446 20067014.536 20067015.865
+ 47.300 45.500
+ -17606435.479 7 -13719289.410 7 20966714.890 20966712.707 20966714.176
+ 45.700 42.500
+ 06 1 2 2 4 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8848031.184 4 -6894560.153 4 23124990.302 23124990.444 23124990.002
+ 27.600 26.800
+ -2715021.450 4 -2115598.423 3 24335881.946 24335880.072 24335880.815
+ 26.500 19.900
+ -622076.950 3 -484734.922 3 24549652.343 24549651.193 24549651.201
+ 23.800 19.900
+ -6577297.344 5 -5125150.862 4 23250016.989 23250015.328 23250015.732
+ 32.100 25.900
+ -14599195.970 6 -11375993.989 6 21801973.465 21801971.581 21801972.412
+ 40.800 37.800
+ -8721385.503 6 -6795882.187 5 22032470.128 22032467.572 22032469.202
+ 41.100 35.800
+ -23392102.136 7 -18227604.276 7 20453610.162 20453606.638 20453609.106
+ 45.600 45.200
+ -23173659.415 7 -18057386.793 7 20072469.329 20072467.561 20072468.770
+ 47.100 45.400
+ -17552892.280 7 -13677567.438 7 20976903.870 20976901.677 20976903.157
+ 45.600 42.400
+ 06 1 2 2 5 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8758260.582 4 -6824609.091 4 23142073.968 23142072.941 23142073.058
+ 28.600 26.800
+ -2670982.624 4 -2081282.455 2 24344261.550 24344259.977 24344260.641
+ 25.600 17.000
+ -738763.368 2 -575659.340 3 24527448.132 24527445.973 24527446.184
+ 17.000 19.300
+ -6490527.749 5 -5057538.201 4 23266528.425 23266527.007 23266527.266
+ 31.500 26.800
+ -14686166.204 6 -11443763.000 6 21785423.573 21785421.817 21785422.438
+ 41.000 38.300
+ -8787880.371 6 -6847696.354 6 22019816.670 22019814.230 22019815.744
+ 41.100 36.100
+ -23434180.882 7 -18260392.903 7 20445602.650 20445599.372 20445601.757
+ 45.600 45.300
+ -23144380.204 7 -18034571.821 7 20078040.859 20078039.165 20078040.364
+ 47.200 45.300
+ -17498921.258 7 -13635512.095 7 20987174.153 20987171.967 20987173.433
+ 45.600 42.400
+ 06 1 2 2 5 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8668266.221 4 -6754483.640 4 23159199.325 23159198.532 23159198.558
+ 29.200 26.800
+ -2626407.570 4 -2046548.653 2 24352744.101 24352742.298 24352743.178
+ 24.200 16.100
+ -855457.260 3 -666589.573 3 24505241.046 24505240.111 24505239.180
+ 19.300 21.100
+ -6403667.624 5 -4989854.993 4 23283056.616 23283056.244 23283055.805
+ 32.000 27.100
+ -14772861.886 6 -11511318.076 6 21768925.938 21768924.069 21768924.747
+ 40.700 37.700
+ -8854180.674 6 -6899358.911 6 22007200.270 22007197.672 22007199.287
+ 41.500 36.000
+ -23475800.597 7 -18292823.850 7 20437682.913 20437679.403 20437681.925
+ 45.700 45.500
+ -23114479.435 7 -18011272.516 7 20083730.906 20083729.118 20083730.386
+ 47.100 45.300
+ -17444524.536 7 -13593125.037 7 20997525.459 20997523.466 20997524.748
+ 45.600 42.600
+ 06 1 2 2 6 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8578051.027 4 -6684186.096 4 23176366.954 23176366.175 23176366.244
+ 29.500 27.100
+ -2581297.990 4 -2011398.333 3 24361328.090 24361326.985 24361326.963
+ 25.300 18.600
+ -972155.908 3 -757523.543 3 24483034.627 24483033.126 24483032.377
+ 21.600 20.500
+ -6316717.810 5 -4922101.920 4 23299603.233 23299602.362 23299602.066
+ 31.600 26.200
+ -14859280.477 6 -11578657.237 6 21752480.656 21752479.078 21752479.648
+ 40.600 37.700
+ -8920285.811 7 -6950869.403 6 21994620.804 21994618.185 21994620.002
+ 42.000 36.300
+ -23516959.343 7 -18324895.592 7 20429850.723 20429847.216 20429849.681
+ 45.600 45.700
+ -23083958.742 7 -17987490.154 7 20089538.722 20089537.045 20089538.219
+ 47.000 45.300
+ -17389704.300 7 -13550407.973 7 21007957.370 21007955.382 21007956.655
+ 45.600 42.500
+ 06 1 2 2 6 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8487617.770 4 -6613718.661 4 23193575.801 23193574.936 23193574.900
+ 27.400 26.200
+ -2535655.167 4 -1975832.507 2 24370013.341 24370012.012 24370012.611
+ 25.600 17.800
+ -1088855.875 3 -848458.551 2 24460827.906 24460825.820 24460825.367
+ 19.900 17.800
+ -6229679.126 5 -4854279.569 4 23316166.272 23316164.645 23316165.177
+ 32.400 24.900
+ -14945419.751 6 -11645778.748 6 21736088.930 21736087.399 21736087.898
+ 41.200 38.100
+ -8986195.492 7 -7002227.584 6 21982078.577 21982075.999 21982077.781
+ 42.000 36.200
+ -23557655.263 7 -18356606.692 7 20422106.736 20422103.071 20422105.590
+ 45.800 45.800
+ -23052820.088 7 -17963226.266 7 20095464.133 20095462.567 20095463.612
+ 47.200 45.100
+ -17334462.983 7 -13507362.793 7 21018469.536 21018467.550 21018468.719
+ 45.500 42.500
+ 06 1 2 2 7 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8396969.387 4 -6543083.601 3 23210825.427 23210824.616 23210824.499
+ 27.400 23.800
+ -2489480.410 4 -1939852.175 2 24378800.874 24378799.266 24378799.913
+ 26.200 17.800
+ -1205554.396 3 -939392.410 3 24438619.537 24438618.935 24438617.890
+ 23.000 19.900
+ -6142552.016 5 -4786388.324 4 23332746.175 23332744.674 23332745.052
+ 31.500 25.900
+ -15031277.095 6 -11712680.573 6 21719751.204 21719749.297 21719750.066
+ 41.500 38.000
+ -9051908.767 6 -7053432.732 5 21969573.568 21969571.019 21969572.821
+ 41.900 35.700
+ -23597886.207 7 -18387955.475 7 20414450.782 20414447.415 20414449.753
+ 45.600 45.800
+ -23021065.286 7 -17938482.258 7 20101506.818 20101505.294 20101506.314
+ 47.100 45.300
+ -17278802.409 7 -13463990.918 7 21029061.400 21029059.261 21029060.648
+ 45.600 42.200
+ 06 1 2 2 7 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8306108.794 4 -6472283.146 3 23228115.795 23228114.846 23228115.396
+ 28.400 23.400
+ -2442775.891 4 -1903459.048 2 24387688.733 24387686.217 24387687.238
+ 26.500 16.100
+ -1322247.636 3 -1030322.218 3 24416413.758 24416412.543 24416412.168
+ 20.500 21.100
+ -6055337.443 5 -4718428.919 4 23349342.705 23349341.355 23349341.533
+ 32.000 26.500
+ -15116850.043 6 -11779360.797 6 21703466.774 21703465.396 21703465.796
+ 41.300 38.100
+ -9117424.953 7 -7104484.293 6 21957106.457 21957103.877 21957105.624
+ 42.200 36.500
+ -23637650.373 7 -18418940.535 7 20406883.830 20406880.551 20406882.824
+ 45.600 45.900
+ -22988696.198 7 -17913259.589 7 20107666.545 20107664.858 20107666.052
+ 47.000 45.100
+ -17222724.960 7 -13420294.206 7 21039732.333 21039730.526 21039731.761
+ 45.400 42.100
+ 06 1 2 2 8 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8215038.996 4 -6401319.705 4 23245446.172 23245444.898 23245445.149
+ 27.900 25.300
+ -2395542.606 4 -1866653.871 3 24396675.991 24396675.123 24396675.138
+ 24.600 19.900
+ -1438932.531 3 -1121245.445 3 24394209.589 24394207.852 24394207.513
+ 20.500 21.600
+ -5968036.010 5 -4650401.841 4 23365955.479 23365954.366 23365954.374
+ 30.600 25.600
+ -15202136.301 6 -11845817.614 6 21687237.606 21687236.150 21687236.548
+ 41.300 38.600
+ -9182743.904 7 -7155382.166 6 21944676.944 21944674.134 21944676.000
+ 42.500 36.700
+ -23676945.994 7 -18449560.492 7 20399406.135 20399402.903 20399405.149
+ 45.400 46.000
+ -22955714.728 7 -17887559.742 7 20113942.810 20113940.954 20113942.279
+ 47.200 44.900
+ -17166232.713 7 -13376274.275 6 21050482.563 21050480.626 21050481.832
+ 45.100 41.900
+ 06 1 2 2 8 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8123762.930 4 -6330195.528 4 23262815.227 23262814.216 23262814.566
+ 28.400 24.900
+ -2347781.996 4 -1829437.832 3 24405764.763 24405763.398 24405763.801
+ 24.600 18.600
+ -1555606.932 3 -1212160.556 3 24372006.840 24372005.665 24372005.457
+ 21.600 21.100
+ -5880648.426 5 -4582307.655 4 23382584.838 23382583.248 23382583.571
+ 31.000 25.900
+ -15287133.393 6 -11912049.097 6 21671063.022 21671061.575 21671062.033
+ 41.400 38.900
+ -9247865.144 7 -7206125.978 6 21932284.824 21932282.006 21932283.823
+ 42.500 36.600
+ -23715771.154 7 -18479813.859 7 20392017.946 20392014.706 20392016.947
+ 45.300 46.100
+ -22922122.750 7 -17861384.172 7 20120335.226 20120333.310 20120334.682
+ 47.300 45.200
+ -17109328.050 7 -13331932.980 6 21061311.054 21061309.225 21061310.364
+ 45.300 41.800
+ 06 1 2 2 9 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8032283.457 4 -6258912.843 3 23280223.139 23280221.660 23280222.380
+ 27.900 22.600
+ -2299495.527 3 -1791812.006 3 24414952.705 24414952.002 24414951.532
+ 20.500 19.900
+ -1672267.072 3 -1303064.473 3 24349806.748 24349806.109 24349805.301
+ 19.900 21.100
+ -5793175.449 5 -4514146.890 4 23399230.161 23399228.999 23399229.193
+ 31.300 26.200
+ -15371838.745 7 -11978053.261 6 21654944.539 21654942.639 21654943.382
+ 42.000 38.900
+ -9312787.909 7 -7256715.136 6 21919930.510 21919927.305 21919929.581
+ 43.200 36.300
+ -23754123.959 7 -18509699.157 7 20384719.567 20384716.331 20384718.623
+ 45.400 46.100
+ -22887922.332 7 -17834734.496 7 20126843.454 20126841.508 20126842.902
+ 47.700 45.000
+ -17052013.181 7 -13287272.043 6 21072217.744 21072215.804 21072217.035
+ 45.100 41.600
+ 06 1 2 2 9 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7940603.467 4 -6187473.918 3 23297669.841 23297668.049 23297668.589
+ 26.200 23.000
+ -2250684.862 4 -1753777.759 3 24424241.640 24424240.653 24424240.631
+ 24.900 19.300
+ -1788910.080 3 -1393955.120 3 24327611.848 24327609.752 24327609.697
+ 22.100 18.600
+ -5705617.743 4 -4445920.138 4 23415892.292 23415890.659 23415891.151
+ 29.500 26.800
+ -15456249.869 6 -12043828.155 6 21638881.507 21638879.784 21638880.373
+ 41.900 39.000
+ -9377511.665 7 -7307149.225 6 21907614.071 21907610.848 21907613.094
+ 43.100 36.500
+ -23792002.547 7 -18539214.932 7 20377511.660 20377508.249 20377510.639
+ 45.200 46.100
+ -22853115.201 7 -17807612.054 7 20133467.075 20133465.111 20133466.520
+ 47.700 45.100
+ -16994290.192 7 -13242293.091 6 21083202.191 21083200.059 21083201.405
+ 45.100 41.700
+ 06 1 2 2 10 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7848725.942 4 -6115881.080 3 23315152.218 23315152.115 23315151.882
+ 27.100 23.800
+ -2201351.518 3 -1715336.199 3 24433629.818 24433628.408 24433628.585
+ 23.400 19.300
+ -1905532.826 2 -1484829.939 2 24305418.643 24305416.303 24305416.354
+ 17.800 13.900
+ -5617976.110 5 -4377627.960 4 23432569.392 23432568.316 23432568.435
+ 30.100 25.300
+ -15540364.328 7 -12109371.886 6 21622875.112 21622873.035 21622874.055
+ 42.100 38.400
+ -9442036.044 7 -7357427.951 6 21895335.043 21895332.327 21895334.151
+ 42.700 37.100
+ -23829405.027 7 -18568359.717 7 20370394.173 20370390.760 20370393.145
+ 45.400 46.100
+ -22817703.576 7 -17780018.575 7 20140205.675 20140203.747 20140205.179
+ 47.600 45.200
+ -16936161.357 7 -13196997.892 6 21094263.821 21094261.633 21094263.061
+ 45.100 41.300
+ 06 1 2 2 10 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7756653.828 4 -6044136.581 4 23332673.845 23332672.734 23332673.176
+ 27.900 24.200
+ -2151497.657 4 -1676489.009 2 24443116.580 24443115.057 24443115.962
+ 26.500 17.800
+ -2022132.231 3 -1575686.632 3 24283229.764 24283229.103 24283228.520
+ 23.800 18.600
+ -5530251.053 5 -4309270.812 4 23449263.977 23449262.224 23449262.832
+ 30.200 26.200
+ -15624179.666 6 -12174682.535 6 21606925.405 21606923.656 21606924.343
+ 41.500 38.800
+ -9506360.559 7 -7407550.937 6 21883094.384 21883091.699 21883093.594
+ 42.800 36.600
+ -23866329.483 7 -18597132.017 7 20363367.625 20363364.248 20363366.615
+ 45.200 46.200
+ -22781689.199 7 -17751955.424 7 20147059.007 20147057.051 20147058.466
+ 47.600 45.200
+ -16877628.987 7 -13151388.254 6 21105401.986 21105399.882 21105401.335
+ 45.100 41.300
+ 06 1 2 2 11 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7664390.035 4 -5972242.755 4 23350231.042 23350229.988 23350230.277
+ 28.100 24.200
+ -2101124.554 3 -1637237.238 3 24452701.774 24452700.882 24452700.794
+ 23.800 18.600
+ -2138704.840 4 -1666522.444 2 24261047.231 24261045.641 24261045.628
+ 24.600 16.100
+ -5442443.302 4 -4240849.198 4 23465972.399 23465971.287 23465971.202
+ 29.500 24.600
+ -15707693.320 7 -12239758.094 6 21591033.591 21591031.659 21591032.386
+ 42.200 39.100
+ -9570484.364 7 -7457517.528 6 21870891.858 21870889.267 21870891.002
+ 42.600 36.700
+ -23902774.187 7 -18625530.481 7 20356432.605 20356429.046 20356431.469
+ 45.000 46.200
+ -22745074.234 7 -17723424.281 7 20154026.340 20154024.621 20154025.814
+ 47.300 45.200
+ -16818695.202 7 -13105465.820 6 21116616.926 21116614.650 21116616.191
+ 45.100 41.300
+ 06 1 2 2 11 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7571937.353 4 -5900201.750 4 23367823.840 23367823.177 23367823.286
+ 28.800 25.300
+ -2050233.862 4 -1597582.167 3 24462386.363 24462385.063 24462385.466
+ 25.600 18.600
+ -2255247.794 3 -1757335.137 2 24238869.256 24238868.433 24238867.738
+ 23.800 17.000
+ -5354553.433 5 -4172363.592 3 23482697.211 23482696.257 23482696.077
+ 30.600 23.800
+ -15790902.930 7 -12304596.740 6 21575199.358 21575197.374 21575198.149
+ 42.200 39.100
+ -9634406.931 7 -7507327.309 6 21858728.071 21858725.336 21858727.203
+ 42.900 36.900
+ -23938737.140 7 -18653553.554 7 20349588.827 20349585.484 20349587.824
+ 45.100 46.400
+ -22707860.556 7 -17694426.610 7 20161107.840 20161106.123 20161107.321
+ 47.300 45.100
+ -16759362.274 7 -13059232.368 6 21127907.370 21127905.296 21127906.729
+ 45.200 41.200
+ 06 1 2 2 12 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7479298.885 4 -5828015.973 4 23385452.434 23385451.948 23385451.826
+ 26.800 24.600
+ -1998827.286 3 -1557525.072 3 24472168.066 24472167.256 24472167.526
+ 21.600 18.600
+ -2371758.066 3 -1848122.353 3 24216698.731 24216697.664 24216697.332
+ 21.600 21.100
+ -5266582.406 4 -4103814.770 4 23499437.467 23499436.788 23499436.141
+ 29.500 25.600
+ -15873806.320 7 -12369196.771 6 21559422.910 21559421.278 21559421.842
+ 42.000 39.000
+ -9698128.112 7 -7556980.168 6 21846602.342 21846599.445 21846601.526
+ 43.200 36.700
+ -23974216.697 7 -18681199.959 7 20342837.373 20342833.965 20342836.411
+ 45.100 46.300
+ -22670050.457 7 -17664964.194 7 20168302.940 20168301.152 20168302.407
+ 47.200 44.900
+ -16699632.504 7 -13012689.692 6 21139273.774 21139271.577 21139272.959
+ 45.100 41.300
+ 06 1 2 2 12 30.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7386477.450 4 -5755687.642 3 23403115.983 23403115.017 23403115.235
+ 25.900 23.000
+ -1946906.874 3 -1517067.602 3 24482048.599 24482047.144 24482047.676
+ 22.600 19.300
+ -2488232.375 3 -1938881.504 3 24194533.318 24194532.952 24194532.510
+ 22.600 18.600
+ -5178530.766 4 -4035203.132 3 23516193.276 23516191.834 23516192.016
+ 29.900 23.800
+ -15956400.719 7 -12433556.033 6 21543705.869 21543704.175 21543704.797
+ 42.400 39.300
+ -9761646.972 7 -7606475.375 6 21834515.390 21834512.242 21834514.379
+ 43.200 36.800
+ -24009211.200 7 -18708468.399 7 20336178.233 20336174.782 20336177.229
+ 45.200 46.400
+ -22631645.831 7 -17635038.515 7 20175611.192 20175609.314 20175610.608
+ 47.200 45.000
+ -16639508.069 7 -12965839.481 6 21150714.894 21150712.957 21150714.280
+ 45.400 41.500
+ 06 1 2 2 13 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7293476.071 4 -5683219.060 3 23420813.540 23420812.945 23420812.836
+ 25.900 23.400
+ -1894473.748 4 -1476210.611 2 24492026.667 24492024.865 24492025.503
+ 24.200 13.900
+ -2604667.126 3 -2029609.844 3 24172376.002 24172375.978 24172375.431
+ 23.000 22.100
+ -5090399.141 5 -3966529.129 4 23532964.295 23532963.354 23532963.108
+ 30.400 25.600
+ -16038683.644 7 -12497672.588 6 21528047.551 21528046.100 21528046.657
+ 42.300 38.900
+ -9824963.008 7 -7655812.535 6 21822466.496 21822463.699 21822465.659
+ 43.200 37.200
+ -24043718.704 7 -18735357.358 7 20329611.685 20329608.132 20329610.643
+ 45.100 46.500
+ -22592648.854 7 -17604651.260 7 20183031.873 20183030.259 20183031.424
+ 47.300 45.000
+ -16578991.179 7 -12918683.463 6 21162230.992 21162228.970 21162230.261
+ 45.200 41.300
+ 06 1 2 2 13 30.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -7200297.705 4 -5610612.592 3 23438544.635 23438543.820 23438543.826
+ 25.900 23.000
+ -1841529.652 4 -1434955.446 3 24502101.567 24502100.354 24502100.653
+ 26.200 19.900
+ -2721059.528 4 -2120305.182 3 24150227.282 24150227.188 24150226.859
+ 24.900 23.000
+ -5002188.313 4 -3897793.439 4 23549750.275 23549749.090 23549749.205
+ 29.500 24.600
+ -16120652.650 7 -12561544.532 6 21512449.581 21512448.035 21512448.534
+ 42.200 39.400
+ -9888075.424 7 -7704991.027 6 21810456.883 21810453.805 21810455.938
+ 43.600 37.400
+ -24077737.117 7 -18761865.213 7 20323138.148 20323134.724 20323137.170
+ 45.200 46.400
+ -153335.498 4 -119482.291 1 24693702.484 24693699.365 24693701.908
+ 26.200 9.000
+ -22553061.547 7 -17573804.004 7 20190565.232 20190563.424 20190564.665
+ 47.200 44.800
+ -16518084.364 7 -12871223.607 6 21173821.076 21173819.009 21173820.390
+ 45.100 41.000
+ 06 1 2 2 14 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -7106945.140 4 -5537870.356 3 23456309.625 23456308.349 23456308.825
+ 27.600 23.000
+ -1788076.481 4 -1393303.634 3 24512273.258 24512271.828 24512272.180
+ 24.200 19.300
+ -2837406.474 4 -2210965.127 3 24128086.498 24128086.730 24128086.698
+ 24.200 22.600
+ -4913898.912 4 -3828996.526 4 23566551.033 23566549.968 23566549.794
+ 28.600 24.200
+ -16202305.248 7 -12625169.919 6 21496911.342 21496909.916 21496910.380
+ 42.100 39.300
+ -9950983.967 7 -7754010.659 6 21798485.495 21798482.685 21798484.592
+ 43.200 37.700
+ -24111265.048 7 -18787990.872 7 20316758.122 20316754.573 20316757.081
+ 45.000 46.600
+ -241718.673 4 -188352.305 2 24676884.529 24676879.650 24676883.936
+ 26.200 15.100
+ -22512886.049 7 -17542498.420 7 20198210.487 20198208.587 20198209.935
+ 47.400 44.800
+ -16456789.587 7 -12823461.440 6 21185485.155 21185483.055 21185484.488
+ 45.100 41.000
+ 06 1 2 2 14 30.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -7013421.491 4 -5464994.823 3 23474105.807 23474105.460 23474105.038
+ 24.900 20.500
+ -1734116.029 3 -1351256.552 2 24522541.063 24522539.870 24522540.167
+ 19.300 12.600
+ -2953704.840 3 -2301587.180 3 24105954.050 24105955.778 24105955.403
+ 23.000 20.500
+ -4825531.490 5 -3760138.816 3 23583367.219 23583365.622 23583366.202
+ 30.100 23.000
+ -16283638.847 7 -12688546.736 6 21481434.502 21481432.845 21481433.347
+ 42.700 39.900
+ -10013688.072 7 -7802870.985 6 21786553.218 21786550.408 21786552.376
+ 43.500 37.400
+ -24144300.723 7 -18813732.951 7 20310471.434 20310468.072 20310470.483
+ 44.800 46.700
+ -330043.087 3 -257176.503 3 24660075.937 24660072.991 24660075.719
+ 23.400 18.600
+ -22472124.473 7 -17510736.152 7 20205967.178 20205965.123 20205966.591
+ 47.600 44.600
+ -16395109.251 7 -12775398.841 6 21197222.643 21197220.447 21197221.936
+ 45.200 41.000
+ 06 1 2 2 15 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6919729.473 4 -5391988.102 3 23491935.291 23491934.210 23491934.664
+ 25.600 23.400
+ -1679650.150 3 -1308815.617 2 24532906.049 24532904.953 24532905.161
+ 23.400 16.100
+ -3069951.396 3 -2392168.918 2 24083832.391 24083834.573 24083834.675
+ 20.500 16.100
+ -4737086.865 4 -3691220.935 3 23600197.780 23600195.876 23600196.413
+ 29.200 23.800
+ -16364651.072 7 -12751673.128 6 21466018.316 21466016.833 21466017.127
+ 42.700 40.200
+ -10076187.115 7 -7851571.521 6 21774660.110 21774657.171 21774659.327
+ 44.000 37.500
+ -24176842.095 7 -18839089.861 7 20304278.789 20304275.631 20304277.873
+ 44.700 46.700
+ -418308.644 3 -325954.828 3 24643279.947 24643275.974 24643279.401
+ 23.800 21.600
+ -22430779.158 7 -17478519.024 7 20213834.802 20213832.882 20213834.321
+ 47.700 44.500
+ -16333045.543 7 -12727037.509 6 21209032.815 21209030.828 21209032.175
+ 45.100 40.900
+ 06 1 2 2 15 30.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6825872.209 4 -5318852.610 4 23509795.764 23509795.150 23509795.160
+ 27.100 24.200
+ -1624680.528 3 -1265982.077 2 24543365.817 24543364.956 24543364.953
+ 21.600 16.100
+ -3186142.372 4 -2482707.306 3 24061723.693 24061724.635 24061724.435
+ 24.600 22.100
+ -4648565.445 4 -3622243.208 4 23617042.395 23617040.926 23617041.348
+ 29.500 24.200
+ -16445339.301 7 -12814547.057 6 21450663.774 21450662.252 21450662.775
+ 43.000 40.000
+ -10138480.552 7 -7900111.856 6 21762806.261 21762802.918 21762805.357
+ 44.000 37.200
+ -24208888.009 7 -18864060.702 7 20298180.856 20298177.509 20298179.874
+ 44.700 46.700
+ -506514.636 3 -394686.725 3 24626494.434 24626491.097 24626493.867
+ 19.300 23.000
+ -22388852.097 7 -17445848.580 7 20221813.257 20221811.319 20221812.773
+ 47.600 44.400
+ -16270600.856 7 -12678379.315 6 21220915.863 21220913.561 21220915.098
+ 44.800 40.800
+ 06 1 2 2 16 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6731852.609 4 -5245590.617 4 23527687.423 23527686.256 23527686.599
+ 26.800 24.200
+ -1569209.171 3 -1222757.680 3 24553922.333 24553921.127 24553920.954
+ 23.000 19.300
+ -3302274.907 4 -2573200.196 3 24039624.686 24039625.819 24039624.768
+ 24.600 23.800
+ -4559968.075 4 -3553206.344 4 23633902.276 23633900.624 23633901.263
+ 29.200 24.900
+ -16525701.147 7 -12877166.665 6 21435371.443 21435369.779 21435370.298
+ 42.500 40.000
+ -10200567.859 7 -7948491.562 6 21750991.277 21750988.371 21750990.496
+ 44.100 37.800
+ -24240436.165 7 -18888643.675 7 20292177.596 20292174.217 20292176.574
+ 44.900 46.900
+ -594660.576 2 -463371.794 3 24609720.225 24609718.180 24609719.460
+ 15.100 23.000
+ -22346345.535 7 -17412726.582 7 20229902.057 20229900.042 20229901.449
+ 47.500 44.300
+ -16207777.352 7 -12629425.933 6 21232870.567 21232868.562 21232869.864
+ 44.700 40.900
+ 06 1 2 2 16 30.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6637673.555 4 -5172204.389 3 23545608.516 23545608.086 23545608.208
+ 27.900 23.400
+ -1513237.769 3 -1179143.601 2 24564573.296 24564571.796 24564572.317
+ 23.000 17.800
+ -3418345.939 4 -2663645.083 3 24017539.087 24017537.714 24017537.903
+ 24.200 23.400
+ -4471295.364 4 -3484110.720 3 23650776.628 23650774.560 23650775.177
+ 29.900 23.800
+ -16605733.965 7 -12939529.884 6 21420141.620 21420139.939 21420140.606
+ 43.000 39.800
+ -10262448.471 7 -7996710.206 6 21739215.494 21739212.871 21739214.716
+ 43.600 38.100
+ -24271485.370 7 -18912837.861 7 20286269.151 20286265.582 20286268.085
+ 44.700 46.800
+ -682746.063 2 -532009.803 3 24592959.127 24592955.725 24592958.561
+ 13.900 23.000
+ -22303261.624 7 -17379154.702 7 20238100.419 20238098.674 20238099.946
+ 47.300 44.400
+ -16144577.294 7 -12580179.135 6 21244897.197 21244895.116 21244896.436
+ 44.800 40.700
+ 06 1 2 2 17 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6543337.916 4 -5098696.133 4 23563560.929 23563560.107 23563560.129
+ 26.800 24.200
+ -1456768.051 3 -1135141.299 3 24575318.663 24575317.975 24575317.925
+ 23.000 19.300
+ -3534352.139 3 -2754039.512 3 23995463.742 23995462.006 23995462.261
+ 23.400 21.100
+ -4382547.960 5 -3414956.930 4 23667664.183 23667663.015 23667663.157
+ 30.400 24.900
+ -16685435.387 7 -13001634.883 6 21404975.233 21404973.124 21404974.036
+ 43.300 39.300
+ -10324121.022 7 -8044766.727 6 21727479.823 21727476.972 21727478.917
+ 43.600 38.000
+ -24302033.337 7 -18936641.475 7 20280456.022 20280452.507 20280454.938
+ 44.700 46.800
+ -770770.848 3 -600600.457 3 24576207.969 24576204.858 24576207.702
+ 18.600 23.800
+ -22259602.575 7 -17345134.662 7 20246408.529 20246406.804 20246408.017
+ 47.400 44.600
+ -16081003.094 7 -12530640.799 6 21256994.693 21256992.883 21256994.197
+ 44.700 40.600
+ 06 1 2 2 17 30.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6448848.684 4 -5025068.207 3 23581540.558 23581540.222 23581539.947
+ 24.900 21.600
+ -1399801.964 3 -1090752.143 2 24586159.412 24586158.006 24586158.316
+ 22.600 16.100
+ -3650290.262 3 -2844380.869 3 23973401.068 23973400.341 23973400.341
+ 22.600 23.000
+ -4293726.706 4 -3345745.606 4 23684567.036 23684565.380 23684565.461
+ 29.900 24.900
+ -16764803.006 7 -13063479.769 6 21389871.704 21389870.075 21389870.772
+ 43.400 39.800
+ -10385586.077 7 -8092661.566 6 21715783.413 21715780.467 21715782.669
+ 44.000 37.900
+ -24332078.582 7 -18960053.350 7 20274738.565 20274735.132 20274737.497
+ 44.400 46.900
+ -858734.120 3 -669143.268 4 24559469.264 24559466.173 24559468.570
+ 22.600 24.200
+ -22215370.730 7 -17310668.291 7 20254825.551 20254823.889 20254825.020
+ 47.100 44.600
+ -16017056.802 7 -12480812.518 6 21269163.446 21269161.336 21269162.742
+ 44.600 40.300
+ 06 1 2 2 18 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6354208.775 3 -4951322.864 3 23599550.452 23599550.192 23599549.588
+ 23.800 21.100
+ -1342341.740 3 -1045977.927 3 24597093.580 24597092.773 24597092.267
+ 19.900 19.300
+ -3766157.105 3 -2934666.658 3 23951352.445 23951351.197 23951351.245
+ 21.100 19.300
+ -4204832.026 5 -3276477.020 3 23701483.019 23701480.911 23701481.737
+ 30.400 23.400
+ -16843834.251 7 -13125062.547 6 21374832.564 21374830.995 21374831.465
+ 43.300 40.200
+ -10446842.650 7 -8140393.952 6 21704126.726 21704123.878 21704125.807
+ 44.000 38.300
+ -24361619.700 7 -18983072.398 7 20269117.222 20269113.647 20269116.134
+ 44.700 47.000
+ -946635.683 4 -737637.962 3 24542742.705 24542738.678 24542742.150
+ 25.600 22.100
+ -22170568.327 7 -17275757.328 7 20263351.194 20263349.478 20263350.636
+ 47.100 44.500
+ -15952740.750 7 -12430696.113 6 21281402.380 21281400.318 21281401.654
+ 44.500 40.400
+ 06 1 2 2 18 30.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6259421.097 4 -4877462.365 2 23617587.760 23617586.632 23617586.870
+ 24.600 16.100
+ -1284388.765 3 -1000819.742 2 24608122.015 24608120.391 24608120.969
+ 23.000 13.900
+ -3881949.612 3 -3024894.580 3 23929318.884 23929316.439 23929317.416
+ 23.800 22.100
+ -4115864.649 5 -3207151.811 4 23718412.551 23718411.308 23718411.440
+ 30.400 24.600
+ -16922526.556 7 -13186381.209 6 21359857.900 21359856.296 21359856.885
+ 43.400 40.200
+ -10507890.297 7 -8187963.539 6 21692509.825 21692506.840 21692508.897
+ 44.000 38.300
+ -24390655.005 7 -19005697.314 7 20263591.958 20263588.425 20263590.780
+ 44.400 47.000
+ -1034475.158 4 -806084.284 3 24526027.335 24526023.190 24526026.632
+ 26.500 21.600
+ -22125197.558 7 -17240403.481 7 20271984.769 20271983.313 20271984.321
+ 47.100 44.600
+ -15888057.538 7 -12380293.613 6 21293711.326 21293709.095 21293710.556
+ 44.500 40.300
+ 06 1 2 2 19 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -6164488.746 3 -4803489.100 3 23635651.997 23635651.961 23635651.807
+ 23.400 19.300
+ -3997664.425 4 -3115061.941 3 23907298.529 23907296.548 23907297.474
+ 27.400 23.400
+ -4026825.242 4 -3137770.481 4 23735356.166 23735354.743 23735355.021
+ 28.600 24.600
+ -17000877.355 7 -13247433.777 6 21344948.290 21344946.625 21344947.173
+ 43.100 40.300
+ -10568728.477 7 -8235369.902 6 21680932.528 21680929.688 21680931.618
+ 43.800 38.100
+ -24419182.464 7 -19027926.500 7 20258163.300 20258159.849 20258162.162
+ 44.400 47.000
+ -1122252.151 4 -874481.933 3 24509323.815 24509319.936 24509323.092
+ 25.300 20.500
+ -22079260.721 7 -17204608.541 7 20280726.435 20280724.745 20280725.914
+ 47.300 44.500
+ -15823009.136 7 -12329606.542 6 21306089.617 21306087.454 21306088.829
+ 44.300 40.000
+ 06 1 2 2 19 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -6069414.388 3 -4729405.236 3 23653745.406 23653743.984 23653744.601
+ 23.400 19.300
+ -4113297.938 4 -3205165.913 4 23885293.702 23885292.920 23885292.410
+ 24.600 24.200
+ -3937714.137 4 -3068333.291 4 23752312.837 23752312.241 23752311.773
+ 27.100 24.600
+ -17078884.213 7 -13308218.325 6 21330104.035 21330102.488 21330102.973
+ 43.500 40.500
+ -10629356.052 7 -8282612.155 6 21669395.374 21669392.562 21669394.570
+ 44.000 38.500
+ -24447200.698 7 -19049758.886 7 20252831.531 20252828.115 20252830.513
+ 44.300 47.100
+ -1209966.073 4 -942830.449 3 24492631.989 24492628.663 24492631.570
+ 25.900 21.100
+ -22032760.071 7 -17168374.268 7 20289575.213 20289573.616 20289574.762
+ 47.400 44.400
+ -15757597.998 7 -12278636.828 6 21318536.671 21318534.734 21318536.067
+ 44.600 40.100
+ 06 1 2 2 20 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5974201.063 4 -4655213.042 3 23671863.517 23671863.072 23671863.098
+ 26.800 20.500
+ -4228847.397 3 -3295204.411 3 23863304.762 23863303.797 23863304.019
+ 22.100 19.900
+ -3848532.179 4 -2998840.881 4 23769283.971 23769282.869 23769282.689
+ 29.000 24.200
+ -17156544.659 7 -13368732.951 6 21315325.605 21315324.119 21315324.541
+ 43.200 40.600
+ -10689772.764 7 -8329690.111 6 21657898.598 21657895.749 21657897.662
+ 44.000 38.300
+ -24474708.100 7 -19071193.221 7 20247597.041 20247593.583 20247596.103
+ 44.500 47.000
+ -1297616.528 4 -1011129.495 3 24475953.419 24475949.128 24475952.688
+ 25.600 21.100
+ -21985698.012 7 -17131702.531 7 20298530.995 20298529.127 20298530.407
+ 47.200 44.400
+ -15691826.307 7 -12227386.158 6 21331052.881 21331050.631 21331052.136
+ 44.800 40.000
+ 06 1 2 2 20 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5878851.728 4 -4580914.880 3 23690008.488 23690007.553 23690007.684
+ 26.800 23.000
+ -4344309.184 4 -3385174.600 3 23841333.367 23841332.453 23841332.280
+ 25.900 21.600
+ -3759279.926 4 -2929293.676 4 23786267.779 23786267.395 23786266.772
+ 27.600 24.900
+ -17233856.225 7 -13428975.711 6 21300613.821 21300612.231 21300612.679
+ 43.100 40.700
+ -10749978.276 7 -8376603.486 6 21646441.684 21646438.917 21646440.863
+ 44.200 38.600
+ -24501703.112 7 -19092228.297 7 20242460.145 20242456.643 20242459.192
+ 44.400 47.000
+ -1385203.076 3 -1079378.743 3 24459285.578 24459282.362 24459284.862
+ 22.600 19.900
+ -21938076.872 7 -17094595.151 7 20307593.041 20307591.113 20307592.448
+ 47.500 44.300
+ -15625696.500 7 -12175856.435 6 21343636.839 21343634.792 21343636.112
+ 44.700 40.000
+ 06 1 2 2 21 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5783369.343 4 -4506513.082 3 23708177.917 23708177.129 23708177.263
+ 25.600 23.000
+ -4459679.881 4 -3475073.776 3 23819378.958 23819378.764 23819378.137
+ 26.500 23.400
+ -3669958.092 4 -2859692.290 3 23803265.317 23803263.991 23803264.301
+ 27.900 23.800
+ -17310816.410 7 -13488944.679 6 21285968.678 21285967.084 21285967.655
+ 43.600 40.500
+ -10809971.746 7 -8423351.638 6 21635025.467 21635022.589 21635024.451
+ 44.100 38.900
+ -24528183.892 7 -19112862.664 7 20237420.956 20237417.470 20237419.945
+ 44.400 47.100
+ -1472724.917 4 -1147577.578 3 24442630.808 24442627.354 24442630.234
+ 25.300 22.100
+ -21889898.856 7 -17057053.840 7 20316760.947 20316759.038 20316760.394
+ 47.500 44.000
+ -15559210.702 7 -12124049.319 6 21356288.871 21356286.585 21356288.201
+ 44.700 39.700
+ 06 1 2 2 21 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5687756.690 4 -4432009.773 4 23726372.722 23726371.777 23726371.849
+ 24.200 24.200
+ -4574956.582 4 -3564899.747 3 23797441.169 23797441.607 23797441.415
+ 25.300 23.000
+ -3580567.253 4 -2790037.096 3 23820276.360 23820274.843 23820275.065
+ 28.100 22.100
+ -17387422.774 7 -13548637.943 6 21271391.135 21271389.437 21271390.045
+ 43.600 40.700
+ -10869752.513 7 -8469934.045 6 21623649.888 21623646.633 21623648.651
+ 44.200 38.500
+ -24554148.987 7 -19133095.208 7 20232480.058 20232476.477 20232478.992
+ 44.300 47.100
+ -1560182.004 4 -1215725.947 3 24425988.689 24425984.917 24425988.056
+ 25.600 22.100
+ -21841166.536 7 -17019080.601 7 20326034.384 20326032.504 20326033.858
+ 47.400 43.900
+ -15492371.326 7 -12071966.688 6 21369007.993 21369005.682 21369007.251
+ 44.400 39.800
+ 06 1 2 2 22 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5592016.821 3 -4357407.300 3 23744590.939 23744590.715 23744589.929
+ 22.100 23.000
+ -4690135.671 3 -3654649.625 3 23775522.869 23775523.433 23775523.271
+ 23.000 22.600
+ -3491107.948 4 -2720328.569 4 23837299.055 23837298.618 23837298.402
+ 27.400 24.200
+ -17463672.569 7 -13608053.365 6 21256881.314 21256879.613 21256880.197
+ 43.800 41.000
+ -10929320.195 7 -8516350.415 6 21612314.247 21612311.308 21612313.447
+ 44.800 38.800
+ -24579596.994 7 -19152924.824 7 20227637.284 20227633.922 20227636.279
+ 44.300 47.200
+ -1647573.962 3 -1283823.549 3 24409356.928 24409354.751 24409356.874
+ 22.100 23.800
+ -21791882.050 7 -16980677.101 7 20335413.046 20335410.953 20335412.419
+ 47.500 43.800
+ -15425180.632 7 -12019610.299 6 21381793.737 21381791.646 21381793.108
+ 44.100 39.700
+ 06 1 2 2 22 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5496152.539 3 -4282707.927 3 23762832.669 23762832.818 23762832.070
+ 20.500 23.400
+ -4805214.399 4 -3744321.313 4 23753625.141 23753624.983 23753625.058
+ 26.200 24.200
+ -3401580.847 4 -2650567.220 3 23854335.906 23854334.519 23854334.403
+ 27.100 21.100
+ -17539563.500 7 -13667189.149 6 21242439.527 21242438.106 21242438.546
+ 44.000 41.000
+ -10988673.943 7 -8562600.082 6 21601019.586 21601016.411 21601018.698
+ 44.500 38.400
+ -24604525.654 7 -19172349.751 7 20222893.624 20222890.198 20222892.529
+ 44.000 47.300
+ -1734900.224 4 -1351869.963 3 24392740.568 24392736.981 24392740.171
+ 24.600 20.500
+ -21742047.949 7 -16941845.332 7 20344896.046 20344894.126 20344895.422
+ 47.500 44.000
+ -15357640.854 7 -11966981.906 6 21394646.215 21394644.193 21394645.445
+ 44.200 40.000
+ 06 1 2 2 23 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5400166.750 3 -4207913.872 3 23781099.281 23781098.081 23781098.462
+ 23.400 19.900
+ -4920188.960 4 -3833911.836 3 23731746.818 23731746.054 23731746.075
+ 27.100 23.800
+ -3311986.609 4 -2580753.538 3 23871384.372 23871384.170 23871383.487
+ 26.500 21.600
+ -17615093.151 7 -13726043.418 6 21228067.115 21228065.287 21228065.950
+ 44.100 41.100
+ -11047813.314 7 -8608682.703 6 21589765.786 21589762.573 21589764.885
+ 44.600 38.400
+ -24628934.118 7 -19191369.330 7 20218248.833 20218245.307 20218247.786
+ 44.000 47.300
+ -1822160.425 4 -1419864.915 3 24376135.416 24376131.655 24376134.933
+ 24.200 22.100
+ -21691666.589 7 -16902587.126 7 20354483.329 20354481.399 20354482.720
+ 47.300 44.000
+ -15289754.433 7 -11914083.398 6 21407564.564 21407562.474 21407563.866
+ 44.100 39.700
+ 06 1 2 2 23 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5304062.573 4 -4133027.521 3 23799387.329 23799385.846 23799386.451
+ 25.300 18.600
+ -5035056.177 4 -3923418.702 3 23709888.922 23709887.578 23709887.844
+ 25.600 23.400
+ -3222325.743 4 -2510887.952 3 23888447.579 23888446.110 23888445.994
+ 26.500 19.300
+ -17690258.847 7 -13784614.089 6 21213763.249 21213761.627 21213762.178
+ 43.900 41.000
+ -11106737.630 7 -8654597.752 6 21578552.751 21578549.875 21578551.859
+ 44.400 39.000
+ -24652820.472 7 -19209982.073 7 20213703.376 20213699.834 20213702.367
+ 44.000 47.200
+ -1909353.925 3 -1487807.870 3 24359542.473 24359539.531 24359541.848
+ 22.100 22.100
+ -21640740.490 7 -16862904.454 7 20364174.041 20364172.325 20364173.560
+ 47.300 43.800
+ -15221523.620 7 -11860916.526 6 21420548.542 21420546.418 21420547.862
+ 44.300 39.700
+ 06 1 2 2 24 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5207842.819 4 -4058051.102 3 23817697.586 23817696.392 23817696.596
+ 25.300 21.100
+ -5149812.581 4 -4012839.245 4 23688052.364 23688049.884 23688050.670
+ 25.300 24.600
+ -3132598.792 4 -2440970.867 3 23905520.737 23905520.048 23905520.564
+ 26.800 20.500
+ -17765057.990 7 -13842899.135 6 21199529.648 21199527.892 21199528.576
+ 44.200 41.200
+ -11165446.680 7 -8700345.050 6 21567380.770 21567378.125 21567379.919
+ 44.500 39.800
+ -24676183.749 7 -19228187.222 7 20209257.394 20209254.012 20209256.403
+ 43.900 47.200
+ -1996480.330 3 -1555698.575 3 24342962.987 24342959.526 24342962.253
+ 23.000 22.100
+ -21589271.865 7 -16822799.029 7 20373968.307 20373966.517 20373967.781
+ 47.400 43.800
+ -15152950.769 7 -11807483.137 6 21433597.632 21433595.342 21433596.842
+ 44.400 39.700
+ 06 1 2 2 24 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5111510.374 4 -3982986.862 3 23836028.083 23836027.633 23836027.592
+ 25.300 19.900
+ -5264455.484 4 -4102171.348 3 23666236.533 23666233.813 23666234.761
+ 25.900 23.800
+ -3042806.265 4 -2371002.692 3 23922609.427 23922607.696 23922607.708
+ 27.400 22.600
+ -17839488.069 7 -13900896.596 6 21185366.161 21185364.386 21185364.952
+ 44.000 41.500
+ -11223939.238 7 -8745923.657 6 21556250.009 21556247.113 21556249.152
+ 44.700 39.300
+ -24699022.368 7 -19245983.546 7 20204911.277 20204908.022 20204910.345
+ 43.700 47.300
+ -2083539.505 3 -1623536.874 3 24326396.970 24326392.648 24326396.268
+ 23.400 21.600
+ -21537263.195 7 -16782272.792 7 20383865.246 20383863.465 20383864.702
+ 47.400 43.900
+ -15084038.070 7 -11753784.924 6 21446711.087 21446709.023 21446710.437
+ 44.200 39.600
+ 06 1 2 2 25 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5015068.084 4 -3907837.064 2 23854381.180 23854379.531 23854380.499
+ 26.500 17.000
+ -5378980.949 4 -4191411.945 3 23644443.069 23644440.681 23644441.148
+ 26.500 23.400
+ -2952948.929 4 -2300984.023 3 23939707.417 23939706.712 23939706.535
+ 27.900 22.600
+ -17913546.666 7 -13958604.588 6 21171273.136 21171271.435 21171271.997
+ 44.100 41.500
+ -11282215.071 7 -8791333.392 6 21545160.345 21545157.551 21545159.540
+ 44.800 39.100
+ -24721334.372 7 -19263369.519 7 20200665.406 20200662.195 20200664.528
+ 43.800 47.400
+ -2170530.466 4 -1691322.035 3 24309843.348 24309839.516 24309842.791
+ 25.900 21.600
+ -21484716.874 7 -16741327.605 7 20393864.269 20393862.712 20393863.839
+ 47.400 43.700
+ -15014787.849 7 -11699823.714 6 21459889.100 21459886.928 21459888.355
+ 44.100 39.300
+ 06 1 2 2 25 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -4918518.764 3 -3832603.846 3 23872754.066 23872753.300 23872753.272
+ 23.800 20.500
+ -5493385.823 4 -4280558.540 3 23622671.529 23622669.832 23622670.092
+ 24.600 23.400
+ -2863027.369 4 -2230915.283 3 23956820.401 23956818.302 23956818.877
+ 27.600 21.100
+ -17987231.329 7 -14016021.207 6 21157251.347 21157249.764 21157250.181
+ 44.000 41.700
+ -11340273.555 7 -8836573.767 6 21534112.576 21534109.429 21534111.691
+ 45.300 39.300
+ -24743118.521 7 -19280344.176 7 20196520.184 20196516.795 20196519.214
+ 43.500 47.400
+ -2257453.181 4 -1759054.011 3 24293302.049 24293298.123 24293301.601
+ 27.400 21.600
+ -21431635.494 7 -16699965.492 7 20403965.201 20403963.667 20403964.802
+ 47.300 43.600
+ -14945202.489 7 -11645601.354 6 21473130.480 21473128.472 21473129.872
+ 43.800 39.100
+ 06 1 2 2 26 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -4821865.564 4 -3757289.681 3 23891146.310 23891145.829 23891145.492
+ 25.900 19.900
+ -5607667.219 4 -4369608.966 4 23600923.688 23600923.270 23600923.305
+ 27.100 24.200
+ -2773042.052 4 -2160796.874 3 23973942.806 23973941.587 23973942.082
+ 26.500 21.600
+ -18060539.458 7 -14073144.419 6 21143301.327 21143299.657 21143300.274
+ 44.400 41.400
+ -11398113.950 7 -8881644.200 6 21523105.938 21523102.750 21523105.077
+ 45.300 39.500
+ -24764373.435 7 -19296906.445 7 20192475.467 20192472.156 20192474.482
+ 43.400 47.500
+ -2344306.859 4 -1826732.207 3 24276774.148 24276770.443 24276773.517
+ 25.600 22.100
+ -21378021.550 7 -16658188.389 7 20414167.714 20414166.039 20414167.259
+ 47.200 43.500
+ -14875284.173 7 -11591119.547 6 21486435.580 21486433.539 21486434.875
+ 43.600 39.100
+ 06 1 2 2 26 30.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -4725111.294 4 -3681896.804 2 23909558.235 23909557.180 23909557.769
+ 24.200 16.100
+ -5721821.173 4 -4458560.061 3 23579200.766 23579199.366 23579200.373
+ 27.100 21.600
+ -2682993.469 4 -2090629.163 3 23991079.063 23991077.818 23991077.610
+ 25.600 22.100
+ -18133468.488 7 -14129972.236 6 21129423.479 21129421.574 21129422.363
+ 44.700 41.500
+ -11455735.610 7 -8926544.194 6 21512140.974 21512137.744 21512139.947
+ 45.200 39.400
+ -24785097.704 7 -19313055.222 7 20188531.821 20188528.378 20188530.778
+ 43.300 47.400
+ -2431091.246 4 -1894356.385 3 24260258.805 24260256.558 24260258.221
+ 24.900 23.000
+ -21323877.426 7 -16615998.162 7 20424471.156 20424469.305 20424470.633
+ 47.300 43.600
+ -14805035.328 7 -11536380.184 6 21499803.542 21499801.352 21499802.812
+ 43.400 39.100
+ 06 1 2 2 27 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -88689.614 3 -69107.805 3 24574259.817 24574259.122 24574259.387
+ 20.500 21.600
+ -4628258.798 3 -3606427.313 2 23927988.146 23927987.295 23927987.733
+ 23.000 17.800
+ -5835843.843 4 -4547408.870 4 23557502.751 23557502.091 23557502.488
+ 25.300 24.200
+ -2592882.571 4 -2020412.933 3 24008226.167 24008224.665 24008225.404
+ 26.800 18.600
+ -18206015.954 7 -14186502.728 6 21115618.236 21115616.341 21115617.055
+ 44.700 41.600
+ -11513138.149 7 -8971273.443 6 21501217.438 21501214.302 21501216.363
+ 44.800 39.500
+ -24805289.866 7 -19328789.372 7 20184689.471 20184685.922 20184688.359
+ 43.400 47.400
+ -2517805.833 4 -1961926.187 4 24243758.894 24243754.981 24243758.108
+ 25.900 24.600
+ -21269205.670 7 -16573396.794 7 20434874.855 20434873.014 20434874.362
+ 47.300 43.500
+ -14734458.218 7 -11481385.036 6 21513233.801 21513231.889 21513233.096
+ 43.300 39.100
+ 06 1 2 2 27 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -133830.482 3 -104282.495 3 24565670.854 24565668.206 24565669.730
+ 21.100 19.300
+ -4531311.024 3 -3530883.604 3 23946436.841 23946436.722 23946436.231
+ 22.600 22.100
+ -5949732.488 4 -4636153.226 4 23535830.289 23535830.565 23535830.042
+ 27.100 25.300
+ -2502709.880 4 -1950148.504 3 24025386.258 24025384.552 24025385.017
+ 26.200 21.600
+ -18278179.438 7 -14242734.011 6 21101886.010 21101884.042 21101884.901
+ 45.100 41.700
+ -11570320.882 7 -9015831.410 6 21490335.640 21490332.909 21490334.893
+ 44.900 39.600
+ -24824948.319 7 -19344107.645 7 20180948.514 20180945.091 20180947.464
+ 43.300 47.600
+ -2604450.371 4 -2029441.388 3 24227270.856 24227266.910 24227270.343
+ 27.100 23.800
+ -21214008.820 7 -16530386.261 7 20445378.454 20445376.695 20445377.916
+ 47.300 43.600
+ -14663555.062 7 -11426135.823 6 21526726.288 21526724.269 21526725.536
+ 43.200 39.100
+ 06 1 2 2 28 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -178470.011 2 -139066.505 2 24557174.795 24557174.193 24557174.017
+ 17.000 17.000
+ -4434270.920 3 -3455268.004 4 23964903.602 23964902.805 23964902.694
+ 19.900 24.200
+ -6063484.157 4 -4724790.849 3 23514185.819 23514183.603 23514184.452
+ 28.600 23.800
+ -2412475.674 4 -1879836.157 3 24042556.739 24042555.580 24042555.526
+ 26.800 21.600
+ -18349956.503 7 -14298664.192 6 21088227.288 21088225.366 21088226.145
+ 45.000 41.800
+ -11627283.179 7 -9060217.609 6 21479496.320 21479493.358 21479495.412
+ 45.300 39.600
+ -24844072.005 7 -19359009.215 7 20177309.381 20177306.044 20177308.323
+ 43.600 47.700
+ -2691023.955 4 -2096901.339 3 24210796.277 24210793.036 24210795.665
+ 27.400 23.800
+ -21158289.307 7 -16486968.459 7 20455981.501 20455979.767 20455981.001
+ 47.300 43.500
+ -14592328.254 7 -11370634.414 6 21540280.219 21540278.327 21540279.489
+ 43.400 39.100
+ 06 1 2 2 28 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -222606.802 3 -173458.805 3 24548776.866 24548775.265 24548775.681
+ 21.100 23.400
+ -4337141.330 3 -3379582.688 3 23983385.766 23983385.962 23983385.160
+ 19.900 22.100
+ -6177095.234 4 -4813318.968 4 23492566.617 23492564.778 23492565.036
+ 27.600 24.900
+ -2322180.482 4 -1809476.306 3 24059739.095 24059738.369 24059738.070
+ 27.400 21.600
+ -18421344.660 7 -14354291.319 6 21074642.352 21074640.551 21074641.283
+ 44.800 41.700
+ -11684024.334 7 -9104431.491 6 21468698.849 21468695.832 21468698.017
+ 45.500 39.900
+ -24862659.459 7 -19373492.938 7 20173772.388 20173768.889 20173771.305
+ 43.400 47.600
+ -2777526.429 4 -2164305.865 4 24194335.547 24194331.795 24194334.786
+ 26.200 24.600
+ -21102049.705 7 -16443145.385 7 20466683.562 20466681.836 20466683.080
+ 47.300 43.300
+ -14520780.215 7 -11314882.703 6 21553895.375 21553893.481 21553894.628
+ 43.500 38.600
+ 06 1 2 2 29 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -266239.787 3 -207458.542 3 24540473.328 24540472.153 24540472.755
+ 21.600 21.100
+ -4239925.133 3 -3303829.847 3 24001885.918 24001885.309 24001885.191
+ 19.900 23.000
+ -6290562.143 4 -4901734.718 3 23470974.424 23470972.194 23470972.619
+ 26.200 23.400
+ -2231825.117 4 -1739069.538 3 24076933.516 24076932.173 24076932.272
+ 24.900 21.600
+ -18492341.392 7 -14409613.449 7 21061132.147 21061130.465 21061131.043
+ 44.900 42.000
+ -11740543.265 7 -9148472.213 6 21457943.593 21457940.504 21457942.711
+ 45.300 39.800
+ -24880708.634 7 -19387557.230 7 20170337.737 20170334.246 20170336.657
+ 43.300 47.600
+ -2863957.368 4 -2231654.633 4 24177887.984 24177884.192 24177887.222
+ 25.600 24.200
+ -21045292.499 7 -16398918.994 7 20477484.091 20477482.351 20477483.598
+ 47.100 43.200
+ -14448913.105 7 -11258882.357 6 21567571.514 21567569.177 21567570.672
+ 43.400 38.900
+ 06 1 2 2 29 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -309367.606 2 -241064.583 4 24532266.931 24532265.671 24532266.164
+ 16.100 25.300
+ -4142625.197 3 -3228011.747 3 24020401.042 24020401.082 24020400.167
+ 22.600 22.600
+ -6403881.182 4 -4990035.236 4 23449409.678 23449408.435 23449408.302
+ 27.100 25.600
+ -2141410.093 4 -1668616.311 3 24094139.152 24094138.342 24094138.160
+ 24.900 22.600
+ -18562944.247 7 -14464628.653 7 21047696.876 21047695.255 21047695.825
+ 45.200 42.200
+ -11796839.949 7 -9192339.752 6 21447230.432 21447227.696 21447229.649
+ 45.300 39.900
+ -24898219.255 7 -19401201.866 7 20167005.401 20167002.135 20167004.299
+ 43.200 47.800
+ -2950316.051 4 -2298947.113 3 24161454.595 24161451.111 24161453.891
+ 26.200 23.400
+ -20988020.341 7 -16354291.341 7 20488382.698 20488380.877 20488382.122
+ 47.200 43.100
+ -14376729.216 7 -11202635.175 6 21581307.284 21581305.358 21581306.714
+ 43.800 38.800
+ 06 1 2 2 30 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -351988.787 3 -274275.903 3 24524156.389 24524154.622 24524155.657
+ 22.100 23.800
+ -4045244.514 3 -3152130.747 3 24038932.336 24038932.509 24038931.626
+ 22.100 22.100
+ -6517049.632 4 -5078218.413 4 23427873.654 23427873.097 23427873.344
+ 28.100 24.900
+ -2050935.680 4 -1598116.812 3 24111355.942 24111355.339 24111354.365
+ 24.600 23.400
+ -18633150.532 7 -14519334.844 7 21034336.999 21034335.363 21034336.044
+ 45.000 42.200
+ -11852914.040 7 -9236033.845 6 21436560.251 21436557.235 21436559.313
+ 45.500 40.000
+ -24915189.619 7 -19414425.519 7 20163776.052 20163772.708 20163775.030
+ 43.100 47.700
+ -3036602.105 4 -2366183.013 4 24145034.768 24145031.620 24145034.177
+ 25.600 24.200
+ -20930235.612 7 -16309264.277 7 20499378.564 20499376.909 20499378.054
+ 46.900 43.000
+ -14304230.948 7 -11146143.015 6 21595103.512 21595101.199 21595102.783
+ 43.700 38.100
+ 06 1 2 2 30 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -394102.264 3 -307091.607 3 24516142.407 24516140.253 24516141.411
+ 23.000 21.100
+ -3947785.795 4 -3076188.921 3 24057478.105 24057478.163 24057477.735
+ 25.600 22.100
+ -6630063.987 4 -5166281.511 3 23406366.834 23406366.957 23406366.886
+ 26.500 23.800
+ -1960402.629 4 -1527571.614 3 24128583.091 24128582.624 24128582.697
+ 24.200 19.900
+ -18702957.881 7 -14573730.176 7 21021053.267 21021051.593 21021052.092
+ 45.400 42.500
+ -11908764.564 7 -9279553.728 6 21425931.962 21425929.110 21425931.056
+ 45.300 40.000
+ -24931618.080 7 -19427226.915 7 20160649.823 20160646.374 20160648.847
+ 43.100 47.500
+ -3122815.144 4 -2433361.975 4 24128628.643 24128625.797 24128628.037
+ 24.200 24.900
+ -20871941.108 7 -16263839.988 7 20510471.682 20510469.976 20510471.176
+ 47.000 43.000
+ -14231420.554 7 -11089407.643 6 21608958.929 21608956.706 21608958.232
+ 43.600 38.500
+ 06 1 2 2 31 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -435706.711 4 -339510.633 4 24508224.798 24508223.837 24508224.098
+ 24.200 24.900
+ -3850252.024 4 -3000188.622 2 24076039.002 24076038.098 24076038.059
+ 26.500 17.000
+ -6742920.781 4 -5254221.835 4 23384891.034 23384891.241 23384891.358
+ 27.400 26.500
+ -1869811.626 4 -1456981.214 3 24145822.770 24145821.322 24145821.333
+ 24.600 21.600
+ -18772363.886 7 -14627812.768 7 21007845.535 21007843.978 21007844.452
+ 45.400 42.500
+ -11964390.585 7 -9322898.673 6 21415346.763 21415343.698 21415345.870
+ 45.500 40.100
+ -24947503.597 7 -19439605.235 7 20157626.955 20157623.530 20157625.878
+ 42.700 47.700
+ -3208954.838 4 -2500483.772 4 24112236.680 24112233.759 24112236.465
+ 25.300 26.200
+ -20813139.216 7 -16218020.333 7 20521661.453 20521659.582 20521660.849
+ 46.900 42.700
+ -14158300.358 7 -11032430.870 6 21622873.205 21622870.991 21622872.487
+ 43.500 38.200
+ 06 1 2 2 31 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -476800.759 4 -371531.941 4 24500405.288 24500404.017 24500404.250
+ 26.500 25.900
+ -3752646.063 4 -2924132.038 2 24094612.471 24094610.996 24094611.523
+ 25.900 13.900
+ -6855616.654 4 -5342036.749 4 23363447.705 23363446.273 23363446.430
+ 27.600 28.600
+ -1779163.137 4 -1386346.064 3 24163071.786 24163071.334 24163070.803
+ 25.900 21.600
+ -18841366.027 7 -14681580.663 7 20994714.820 20994713.410 20994713.729
+ 45.000 42.600
+ -12019792.040 7 -9366068.636 6 21404804.292 21404801.259 21404803.408
+ 45.600 40.100
+ -24962845.029 7 -19451559.593 7 20154707.338 20154704.179 20154706.377
+ 42.800 47.600
+ -3295020.493 4 -2567547.889 4 24095859.140 24095855.621 24095858.632
+ 27.400 24.200
+ -20753832.706 7 -16171807.468 7 20532946.925 20532945.297 20532946.510
+ 47.100 42.800
+ -14084872.726 7 -10975214.531 6 21636845.973 21636843.907 21636845.186
+ 43.200 38.400
+ 06 1 2 2 32 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -517383.211 4 -403154.627 3 24492682.554 24492681.515 24492681.551
+ 24.600 23.400
+ -3654970.663 4 -2848021.305 2 24113199.930 24113197.573 24113199.221
+ 25.600 13.900
+ -6968147.947 4 -5429723.447 4 23342033.851 23342031.968 23342032.642
+ 28.600 27.900
+ -1688457.620 4 -1315666.463 3 24180332.855 24180331.965 24180331.585
+ 25.600 20.500
+ -18909961.791 7 -14735031.892 7 20981661.479 20981659.797 20981660.374
+ 44.900 42.200
+ -12074967.701 7 -9409062.653 6 21394304.616 21394301.620 21394303.696
+ 45.400 40.200
+ -24977640.910 7 -19463088.848 7 20151891.843 20151888.544 20151890.834
+ 42.700 47.700
+ -3381011.648 4 -2634553.975 3 24079495.969 24079491.681 24079495.211
+ 27.900 23.000
+ -20694023.977 7 -16125203.265 7 20544328.484 20544326.326 20544327.812
+ 47.100 42.400
+ -14011139.886 7 -10917760.372 6 21650876.701 21650874.750 21650876.043
+ 43.000 38.100
+ 06 1 2 2 32 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -557452.900 4 -434377.796 3 24485058.215 24485055.757 24485057.044
+ 25.300 21.100
+ -3557228.767 3 -2771858.809 2 24131798.691 24131798.894 24131798.158
+ 22.100 17.000
+ -7080511.712 4 -5517279.610 4 23320651.405 23320649.679 23320649.923
+ 27.400 25.600
+ -1597695.666 3 -1244942.890 3 24197605.728 24197603.146 24197604.107
+ 23.800 18.600
+ -18978148.818 7 -14788164.639 7 20968686.174 20968684.281 20968685.058
+ 45.100 42.200
+ -12129917.318 7 -9451880.531 6 21383848.035 21383845.086 21383847.165
+ 45.500 40.500
+ -24991890.334 7 -19474192.294 7 20149180.374 20149176.960 20149179.346
+ 42.900 47.700
+ -3466927.840 4 -2701501.638 3 24063146.478 24063142.335 24063146.062
+ 27.600 21.600
+ -20633715.694 7 -16078209.799 7 20555804.450 20555802.607 20555803.936
+ 47.000 42.500
+ -13937103.818 7 -10860069.928 6 21664965.340 21664963.231 21664964.643
+ 42.800 38.100
+ 06 1 2 2 33 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -597008.796 3 -465200.524 4 24477530.222 24477529.144 24477529.340
+ 23.000 26.500
+ -3459423.232 3 -2695646.763 3 24150411.050 24150410.515 24150410.080
+ 20.500 18.600
+ -7192704.434 4 -5604702.476 4 23299301.305 23299299.621 23299299.772
+ 28.100 24.200
+ -1506877.954 4 -1174175.847 3 24214885.393 24214885.419 24214884.924
+ 25.900 20.500
+ -19045924.577 7 -14840976.910 7 20955788.789 20955787.017 20955787.611
+ 45.600 42.300
+ -12184639.880 7 -9494521.484 6 21373434.758 21373431.771 21373433.846
+ 45.600 40.400
+ -25005591.946 7 -19484868.875 7 20146573.154 20146569.732 20146572.126
+ 42.900 47.800
+ -3552768.464 4 -2768390.429 2 24046811.386 24046807.214 24046810.953
+ 26.200 17.000
+ -20572910.508 7 -16030829.132 7 20567375.417 20567373.483 20567374.825
+ 47.000 42.400
+ -13862767.173 7 -10802145.273 6 21679111.159 21679109.038 21679110.461
+ 42.700 38.100
+ 06 1 2 2 33 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -636049.734 4 -495622.062 4 24470101.296 24470099.656 24470100.515
+ 26.500 26.500
+ -3361557.000 3 -2619387.400 2 24169034.632 24169033.823 24169033.688
+ 21.100 15.100
+ -7304722.672 4 -5691989.402 4 23277985.089 23277983.659 23277984.259
+ 29.500 25.300
+ -1416004.876 4 -1103365.688 3 24232178.708 24232178.145 24232177.377
+ 24.200 19.900
+ -19113286.531 7 -14893466.742 7 20942970.165 20942968.463 20942969.045
+ 45.400 42.500
+ -12239135.125 7 -9536985.310 6 21363064.824 21363061.613 21363063.898
+ 45.600 40.500
+ -25018744.276 7 -19495117.443 7 20144070.448 20144066.903 20144069.327
+ 42.700 47.700
+ -3638533.183 4 -2835220.060 3 24030490.274 24030486.706 24030489.861
+ 26.500 19.300
+ -20511611.017 7 -15983063.296 7 20579040.355 20579038.454 20579039.857
+ 47.100 42.400
+ -13788132.223 7 -10743988.173 6 21693313.530 21693311.557 21693313.049
+ 42.800 37.700
+ 06 1 2 2 34 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -674574.492 4 -525641.334 3 24462769.971 24462768.649 24462769.083
+ 24.600 23.400
+ -3263633.014 2 -2543082.983 2 24187668.400 24187668.523 24187667.702
+ 17.000 16.100
+ -7416562.900 4 -5779137.615 3 23256701.476 23256700.436 23256701.534
+ 29.900 23.800
+ -1325076.886 4 -1032512.778 3 24249482.197 24249480.964 24249481.075
+ 26.200 19.300
+ -19180232.326 7 -14945632.288 7 20930230.571 20930229.013 20930229.542
+ 45.300 42.300
+ -12293401.821 7 -9579271.037 6 21352737.966 21352735.174 21352737.040
+ 45.400 40.900
+ -25031346.422 7 -19504937.294 7 20141672.345 20141668.773 20141671.239
+ 43.000 47.800
+ -3724221.281 4 -2901989.980 3 24014185.584 24014181.328 24014184.725
+ 27.100 21.600
+ -20449820.024 7 -15934914.471 7 20590798.890 20590796.838 20590798.304
+ 47.300 42.300
+ -13713201.033 7 -10685600.238 6 21707572.723 21707570.473 21707572.023
+ 43.000 37.700
+ 06 1 2 2 34 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -712581.862 4 -555257.458 3 24455537.715 24455535.628 24455536.914
+ 26.200 22.600
+ -3165653.848 2 -2466735.647 2 24206313.534 24206313.078 24206312.656
+ 17.800 17.000
+ -7528221.648 4 -5866144.399 4 23235453.444 23235453.133 23235453.168
+ 28.100 25.300
+ -1234094.612 4 -961617.475 3 24266795.634 24266794.456 24266794.368
+ 24.900 19.300
+ -19246759.479 7 -14997471.621 7 20917571.009 20917569.343 20917569.922
+ 45.200 42.500
+ -12347440.013 7 -9621378.712 6 21342454.899 21342451.970 21342453.943
+ 45.500 40.700
+ -25043397.027 7 -19514327.373 7 20139379.327 20139375.675 20139378.221
+ 42.800 47.800
+ -3809832.827 4 -2968700.238 3 23997893.621 23997889.947 23997893.193
+ 27.600 23.800
+ -20387539.944 7 -15886384.537 7 20602650.376 20602648.440 20602649.832
+ 47.200 42.200
+ -13637976.414 7 -10626983.652 6 21721887.414 21721885.136 21721886.759
+ 42.900 37.200
+ 06 1 2 2 35 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -750070.969 4 -584469.734 4 24448403.977 24448401.921 24448403.006
+ 26.200 24.600
+ -3067622.509 3 -2390347.658 2 24224969.019 24224967.642 24224967.904
+ 21.600 15.100
+ -7639695.532 4 -5953007.131 4 23214241.446 23214240.431 23214240.713
+ 29.500 26.800
+ -1143058.515 3 -890680.291 3 24284118.604 24284118.326 24284117.208
+ 23.000 19.900
+ -19312865.416 7 -15048982.731 7 20904991.471 20904989.751 20904990.440
+ 45.500 42.800
+ -12401248.794 7 -9663307.627 6 21332215.438 21332212.541 21332214.494
+ 45.500 40.900
+ -25054894.786 7 -19523286.665 7 20137191.146 20137187.745 20137190.095
+ 42.700 47.800
+ -3895366.952 4 -3035350.175 4 23981616.791 23981613.519 23981616.421
+ 25.900 25.600
+ -20324773.367 7 -15837475.514 7 20614594.384 20614592.613 20614593.903
+ 47.000 42.300
+ -13562460.232 7 -10568139.869 6 21736257.727 21736255.444 21736257.070
+ 42.700 37.300
+ 06 1 2 2 35 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -787040.611 3 -613277.209 3 24441368.930 24441367.285 24441367.828
+ 23.800 22.600
+ -2969541.804 4 -2313921.085 2 24243632.865 24243631.013 24243632.085
+ 24.900 15.100
+ -7750981.559 4 -6039723.486 4 23193065.428 23193063.472 23193063.664
+ 29.200 26.500
+ -1051969.091 3 -819701.561 3 24301452.816 24301452.065 24301451.961
+ 23.400 22.100
+ -19378547.704 7 -15100163.731 7 20892492.592 20892490.791 20892491.500
+ 45.600 42.800
+ -12454827.551 7 -9705057.299 6 21322019.929 21322016.988 21322018.997
+ 45.800 41.200
+ -25065838.685 7 -19531814.378 7 20135108.538 20135105.115 20135107.444
+ 42.400 47.700
+ -3980823.127 4 -3101939.351 4 23965354.845 23965351.987 23965354.391
+ 26.500 26.800
+ -20261523.093 7 -15788189.593 7 20626630.512 20626628.663 20626629.934
+ 46.800 42.100
+ -13486654.845 7 -10509070.744 6 21750683.036 21750680.845 21750682.302
+ 42.700 37.200
+ 06 1 2 2 36 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -823489.703 4 -641679.142 3 24434432.567 24434430.740 24434431.441
+ 25.300 21.100
+ -2871414.636 3 -2237458.393 3 24262305.006 24262304.470 24262304.443
+ 23.000 18.600
+ -7862075.915 4 -6126290.472 4 23171924.860 23171922.723 23171923.038
+ 28.400 28.100
+ -960826.919 4 -748681.682 3 24318796.477 24318795.530 24318795.750
+ 24.900 21.100
+ -19443804.098 7 -15151012.863 7 20880074.777 20880072.964 20880073.685
+ 45.800 43.000
+ -12508175.690 7 -9746627.270 6 21311868.020 21311865.002 21311866.995
+ 45.600 41.100
+ -25076227.496 7 -19539909.555 7 20133131.693 20133128.206 20133130.544
+ 42.300 47.700
+ -4066200.966 4 -3168467.489 4 23949108.280 23949104.948 23949107.777
+ 28.400 27.400
+ -20197791.741 7 -15738528.795 6 20638758.180 20638756.260 20638757.657
+ 46.900 41.900
+ -13410562.624 7 -10449778.107 6 21765162.966 21765160.842 21765162.328
+ 42.800 37.400
+ 06 1 2 2 36 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -859417.230 3 -669674.601 3 24427595.500 24427593.985 24427594.856
+ 23.400 22.100
+ -2773243.697 4 -2160961.595 3 24280986.560 24280986.304 24280985.676
+ 24.200 22.100
+ -7972975.298 4 -6212705.555 4 23150820.775 23150819.375 23150819.702
+ 29.700 28.100
+ -869632.660 4 -677621.258 3 24336149.891 24336149.084 24336148.989
+ 24.600 18.600
+ -19508631.912 7 -15201528.036 7 20867738.567 20867736.655 20867737.378
+ 45.800 43.100
+ -12561292.420 7 -9788016.921 6 21301760.310 21301757.066 21301759.258
+ 45.400 41.000
+ -25086060.924 7 -19547571.965 7 20131260.342 20131257.011 20131259.286
+ 42.400 47.800
+ -4151499.832 4 -3234934.115 4 23932876.642 23932873.034 23932876.049
+ 29.500 26.800
+ -20133582.012 7 -15688495.241 6 20650976.860 20650974.915 20650976.340
+ 46.800 41.900
+ -13334185.676 7 -10390263.607 6 21779696.947 21779694.864 21779696.400
+ 42.700 37.300
+ 06 1 2 2 37 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -894822.220 3 -697262.891 2 24420858.156 24420856.266 24420857.187
+ 20.500 13.900
+ -2675031.973 3 -2084432.969 3 24299675.100 24299675.292 24299674.487
+ 21.100 21.100
+ -8083676.299 5 -6298966.041 4 23129754.306 23129753.664 23129753.680
+ 30.100 27.100
+ -778386.789 4 -606520.592 2 24353512.553 24353512.202 24353511.944
+ 24.900 17.000
+ -19573028.774 7 -15251707.400 7 20855484.311 20855482.307 20855483.139
+ 45.800 43.100
+ -12614177.200 7 -9829225.834 6 21291696.362 21291693.539 21291695.459
+ 45.500 41.000
+ -25095336.922 7 -19554800.014 7 20129495.329 20129491.862 20129494.184
+ 42.300 47.800
+ -4236719.469 4 -3301338.997 4 23916660.086 23916656.054 23916659.558
+ 28.800 26.500
+ -20068896.608 7 -15638091.031 6 20663286.304 20663284.231 20663285.701
+ 46.700 41.900
+ -13257526.395 7 -10330529.105 6 21794285.221 21794282.620 21794284.353
+ 42.700 37.100
+ 06 1 2 2 37 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -929703.675 3 -724443.236 2 24414220.638 24414218.784 24414219.730
+ 23.800 17.800
+ -2576782.277 3 -2007874.831 3 24318372.260 24318371.650 24318371.175
+ 23.000 20.500
+ -8194175.060 4 -6385068.922 4 23108727.055 23108726.112 23108726.360
+ 29.500 26.500
+ -687089.931 4 -535380.189 2 24370886.938 24370885.820 24370886.009
+ 26.200 17.800
+ -19636992.334 7 -15301549.130 7 20843312.327 20843310.299 20843311.206
+ 45.800 42.900
+ -12666829.005 7 -9870253.205 6 21281676.994 21281674.135 21281676.196
+ 45.700 41.100
+ -25104054.900 7 -19561593.242 7 20127836.262 20127832.808 20127835.176
+ 42.400 47.700
+ -4321859.242 4 -3367681.649 4 23900458.277 23900454.254 23900457.647
+ 28.600 25.900
+ -20003738.170 7 -15587318.222 6 20675685.214 20675683.371 20675684.706
+ 46.600 41.500
+ -13180587.135 7 -10270576.434 6 21808925.576 21808923.768 21808925.037
+ 42.600 37.200
+ 06 1 2 2 38 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -964060.624 3 -751214.866 3 24407682.265 24407681.354 24407681.338
+ 19.900 18.600
+ -2478497.374 3 -1931289.242 3 24337075.087 24337074.696 24337074.335
+ 23.000 22.100
+ -8304468.773 5 -6471012.041 4 23087739.253 23087738.311 23087738.571
+ 31.300 26.500
+ -595742.494 4 -464200.371 2 24388271.195 24388268.006 24388269.565
+ 24.900 17.800
+ -19700520.171 7 -15351051.337 7 20831223.334 20831221.392 20831222.235
+ 45.600 43.000
+ -12719247.403 7 -9911098.702 6 21271702.301 21271699.289 21271701.453
+ 45.500 41.300
+ -25112213.432 7 -19567950.540 7 20126283.602 20126280.265 20126282.548
+ 42.100 47.800
+ -4406918.668 4 -3433961.705 4 23884272.181 23884268.156 23884271.482
+ 27.400 25.600
+ -19938109.290 7 -15536178.837 6 20688173.881 20688172.237 20688173.401
+ 46.200 41.500
+ -13103370.095 7 -10210407.312 6 21823619.855 21823617.578 21823619.099
+ 42.400 37.200
+ 06 1 2 2 38 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -997892.260 3 -777577.143 3 24401244.729 24401243.000 24401243.655
+ 18.600 19.900
+ -2380180.082 3 -1854678.372 2 24355785.240 24355783.063 24355784.281
+ 22.100 15.100
+ -8414553.525 5 -6556792.351 4 23066791.115 23066789.483 23066789.900
+ 30.800 27.100
+ -504344.864 3 -392981.459 2 24405662.346 24405661.051 24405660.979
+ 21.100 17.800
+ -19763609.722 7 -15400212.019 7 20819217.605 20819216.018 20819216.557
+ 45.900 43.200
+ -12771431.739 7 -9951761.811 6 21261771.722 21261768.972 21261770.909
+ 45.800 41.400
+ -25119811.818 7 -19573871.359 7 20124837.743 20124834.402 20124836.608
+ 42.200 47.700
+ -4491897.223 4 -3500178.734 4 23868100.477 23868097.268 23868100.024
+ 26.500 26.200
+ -19872012.776 7 -15484675.063 6 20700751.756 20700749.955 20700751.164
+ 46.400 41.200
+ -13025877.476 7 -10150023.455 6 21838366.208 21838364.081 21838365.483
+ 42.500 36.900
+ 06 1 2 2 39 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1031197.341 3 -803529.160 2 24394906.675 24394905.602 24394905.789
+ 23.800 13.900
+ -2281833.232 3 -1778044.467 2 24374500.078 24374498.102 24374499.133
+ 22.100 13.900
+ -8524426.074 5 -6642407.294 4 23045882.854 23045881.218 23045882.123
+ 30.800 26.800
+ -412897.488 3 -321723.806 3 24423064.022 24423063.529 24423063.200
+ 23.800 19.300
+ -19826258.559 7 -15449029.292 7 20807296.111 20807294.214 20807295.037
+ 46.100 43.100
+ -12823381.479 7 -9992242.122 6 21251886.041 21251883.167 21251885.268
+ 46.100 41.300
+ -25126848.924 7 -19579354.817 7 20123498.508 20123495.280 20123497.452
+ 42.000 47.700
+ -4576794.443 4 -3566332.382 4 23851945.649 23851941.868 23851944.962
+ 27.100 26.200
+ -19805451.274 7 -15432808.955 6 20713418.083 20713416.265 20713417.561
+ 46.500 41.200
+ -12948111.683 7 -10089426.742 6 21853164.491 21853162.185 21853163.750
+ 42.100 36.500
+ 06 1 2 2 39 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1063975.182 3 -829070.349 24388669.704 24388667.579 24388668.654
+ 23.400 3.000
+ -2183459.687 2 -1701389.816 2 24393218.051 24393218.403 24393217.187
+ 17.800 16.100
+ -8634083.259 5 -6727854.431 4 23025014.790 23025014.066 23025014.773
+ 30.800 26.200
+ -321400.959 3 -250427.835 3 24440475.869 24440474.995 24440474.489
+ 23.800 23.400
+ -19888464.454 7 -15497501.411 7 20795458.585 20795456.861 20795457.526
+ 45.900 43.200
+ -12875095.823 7 -10032539.010 6 21242045.190 21242042.363 21242044.356
+ 46.000 41.600
+ -25133323.824 7 -19584400.195 7 20122266.447 20122263.167 20122265.344
+ 42.100 47.700
+ -4661609.554 4 -3632422.039 4 23835805.906 23835801.900 23835805.328
+ 28.400 24.900
+ -19738427.435 7 -15380582.592 6 20726172.285 20726170.527 20726171.759
+ 46.500 41.400
+ -12870074.795 7 -10028618.774 6 21868014.668 21868012.314 21868013.740
+ 42.000 36.600
+ 06 1 2 2 40 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1096224.841 3 -854199.920 2 24382532.343 24382530.778 24382531.706
+ 21.100 13.900
+ -2085062.157 3 -1624716.476 3 24411943.038 24411943.219 24411942.051
+ 18.600 19.900
+ -8743520.999 5 -6813130.567 4 23004189.485 23004189.343 23004189.304
+ 30.400 27.400
+ -229855.897 3 -179094.042 3 24457895.125 24457894.654 24457893.691
+ 18.600 22.600
+ -19950225.013 7 -15545626.517 7 20783706.017 20783704.057 20783704.957
+ 45.900 43.100
+ -12926574.078 7 -10072651.928 6 21232249.235 21232246.242 21232248.332
+ 45.900 41.400
+ -25139235.436 6 -19589006.645 7 20121141.280 20121138.247 20121140.325
+ 41.900 47.700
+ -4746342.210 4 -3698447.480 4 23819681.993 23819677.742 23819681.185
+ 28.400 24.200
+ -19670944.142 7 -15327998.208 6 20739013.993 20739012.156 20739013.440
+ 46.500 41.200
+ -12791769.300 6 -9967601.508 6 21882915.253 21882913.245 21882914.666
+ 41.900 36.700
+ 06 1 2 2 40 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1127945.291 3 -878917.145 1 24376496.611 24376494.246 24376495.590
+ 22.100 9.000
+ -1986643.468 3 -1548026.686 2 24430671.666 24430671.605 24430671.191
+ 21.100 13.900
+ -8852735.825 5 -6898232.989 4 22983407.439 22983406.259 22983406.623
+ 30.800 27.900
+ -138262.733 3 -107722.787 3 24475324.293 24475324.072 24475323.650
+ 22.100 18.600
+ -20011537.963 7 -15593402.835 7 20772038.514 20772036.747 20772037.395
+ 45.800 43.400
+ -12977815.501 7 -10112580.304 6 21222498.338 21222495.360 21222497.464
+ 46.100 41.500
+ -25144583.168 7 -19593173.709 7 20120123.813 20120120.591 20120122.838
+ 42.400 47.700
+ -4830991.996 4 -3764408.315 4 23803573.264 23803569.535 23803572.790
+ 28.600 26.500
+ -19603004.069 7 -15275057.888 6 20751942.345 20751940.677 20751941.839
+ 46.500 41.300
+ -12713197.402 6 -9906376.651 6 21897867.179 21897865.063 21897866.402
+ 41.800 36.500
+ 06 1 2 2 41 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1159135.724 3 -903221.431 1 24370561.255 24370559.143 24370560.314
+ 22.100 9.000
+ -1888206.461 3 -1471322.494 24449403.967 24449403.207 24449403.296
+ 19.300 3.000
+ -8961725.249 4 -6983159.784 4 22962668.339 22962666.220 22962666.684
+ 29.000 28.600
+ -46621.962 3 -36314.415 2 24492764.495 24492762.472 24492763.668
+ 23.800 17.000
+ -20072400.679 7 -15640828.317 7 20760456.566 20760454.898 20760455.495
+ 45.800 43.400
+ -13028819.561 7 -10152323.723 6 21212792.515 21212789.576 21212791.624
+ 45.800 41.500
+ -25149365.982 7 -19596900.575 7 20119213.926 20119210.427 20119212.928
+ 42.500 47.700
+ -4915558.172 4 -3830303.999 4 23787480.798 23787477.111 23787480.072
+ 29.200 27.100
+ -19534609.804 7 -15221763.662 6 20764957.567 20764955.714 20764956.967
+ 46.500 41.200
+ -12634361.173 6 -9844945.822 6 21912869.048 21912867.063 21912868.345
+ 41.500 36.100
+ 06 1 2 2 41 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1189795.496 4 -927112.152 2 24364727.136 24364724.808 24364726.127
+ 24.900 13.900
+ -1789753.796 3 -1394606.133 24468138.465 24468137.534 24468137.428
+ 20.500 3.000
+ -9070485.628 5 -7067908.090 4 22941971.853 22941969.815 22941970.437
+ 31.300 29.000
+ 45065.843 4 35130.650 3 24510213.092 24510210.672 24510211.596
+ 24.200 19.300
+ -20132811.021 7 -15687901.301 7 20748960.700 20748959.175 20748959.684
+ 45.700 43.400
+ -13079585.439 7 -10191881.548 6 21203131.997 21203129.042 21203131.206
+ 45.800 41.700
+ -25153582.550 7 -19600186.214 7 20118411.350 20118408.027 20118410.382
+ 42.500 47.700
+ -5000040.534 4 -3896134.362 4 23771404.173 23771400.869 23771403.561
+ 29.900 27.600
+ -19465764.221 7 -15168117.754 6 20778058.350 20778056.533 20778057.834
+ 46.700 40.900
+ -12555262.938 6 -9783310.824 6 21927921.104 21927918.725 21927920.359
+ 41.500 36.000
+ 06 1 2 2 42 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1219923.689 4 -950588.644 2 24358993.529 24358991.621 24358992.704
+ 26.200 15.100
+ -1691288.485 2 -1317879.909 1 24486875.031 24486875.225 24486874.162
+ 15.100 11.000
+ -9179012.920 5 -7152474.791 4 22921319.072 22921317.579 22921318.099
+ 30.200 27.900
+ 136800.291 3 106612.020 3 24527668.673 24527667.403 24527667.446
+ 23.400 19.900
+ -20192766.480 7 -15734619.834 7 20737551.739 20737550.059 20737550.678
+ 45.800 43.500
+ -13130112.601 7 -10231253.356 7 21193517.215 21193514.324 21193516.254
+ 46.000 42.100
+ -25157232.312 7 -19603030.184 7 20117716.811 20117713.528 20117715.866
+ 42.600 47.600
+ -5084438.163 5 -3961898.690 4 23755344.631 23755340.255 23755343.905
+ 30.400 28.600
+ -19396469.947 7 -15114122.216 6 20791244.573 20791242.865 20791244.133
+ 46.600 41.100
+ -12475905.117 6 -9721473.565 6 21943022.246 21943020.259 21943021.545
+ 41.300 36.400
+ 06 1 2 2 42 30.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1249519.608 4 -973650.417 2 24353361.748 24353359.209 24353360.808
+ 25.300 13.900
+ -1592813.131 2 -1241145.892 2 24505614.142 24505615.548 24505612.872
+ 13.900 12.600
+ -9287303.883 5 -7236857.311 4 22900710.613 22900710.553 22900710.570
+ 30.600 29.500
+ 228580.802 3 178129.262 2 24545132.820 24545132.262 24545133.034
+ 23.800 17.000
+ -20252264.609 7 -15780982.008 7 20726229.652 20726227.893 20726228.617
+ 46.000 43.600
+ -13180400.443 7 -10270438.683 7 21183947.559 21183944.732 21183946.723
+ 45.800 42.000
+ -25160314.384 7 -19605431.797 7 20117130.316 20117127.085 20117129.330
+ 42.500 47.600
+ -5168751.136 5 -4027597.069 4 23739300.243 23739295.938 23739299.673
+ 31.300 28.600
+ -19326729.621 7 -15059779.101 6 20804516.013 20804513.853 20804515.355
+ 46.400 41.000
+ -12396289.826 6 -9659435.678 6 21958172.430 21958170.398 21958171.743
+ 41.200 36.200
+ 06 1 2 2 43 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1278582.359 4 -996296.695 2 24347831.059 24347828.880 24347829.998
+ 25.300 17.000
+ -1494330.497 3 -1164406.275 2 24524355.977 24524355.391 24524354.737
+ 18.600 13.900
+ -9395355.169 5 -7321053.076 4 22880149.295 22880148.837 22880149.179
+ 31.100 27.900
+ 320406.995 3 249682.163 2 24562606.543 24562605.347 24562606.230
+ 23.400 15.100
+ -20311303.023 7 -15826985.958 7 20714995.101 20714993.305 20714993.952
+ 46.000 43.500
+ -13230447.875 7 -10309436.675 7 21174423.984 21174420.946 21174423.125
+ 45.900 42.000
+ -25162828.126 7 -19607390.556 7 20116651.952 20116648.655 20116650.973
+ 42.200 47.600
+ -5252978.570 4 -4093228.800 4 23723271.861 23723268.214 23723271.237
+ 29.900 28.400
+ -19256546.134 7 -15005090.669 6 20817871.184 20817869.368 20817870.711
+ 46.400 40.900
+ -12316419.306 6 -9597198.906 5 21973371.253 21973369.313 21973370.555
+ 41.100 35.900
+ 06 1 2 2 43 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1307111.345 4 -1018527.078 3 24342402.244 24342400.466 24342401.356
+ 26.200 18.600
+ -9503163.014 5 -7405059.175 4 22859634.849 22859633.652 22859633.833
+ 31.000 28.600
+ 412278.411 3 321270.270 2 24580090.698 24580088.120 24580089.416
+ 21.600 13.900
+ -20369879.357 7 -15872629.849 7 20703848.631 20703846.600 20703847.575
+ 46.400 43.500
+ -13280254.582 7 -10348247.095 7 21164946.225 21164943.089 21164945.263
+ 46.000 42.100
+ -25164772.829 7 -19608905.909 7 20116281.788 20116278.536 20116280.892
+ 42.100 47.600
+ -5337119.827 4 -4158793.384 4 23707259.666 23707256.296 23707259.329
+ 29.000 25.900
+ -19185922.229 7 -14950059.058 6 20831310.446 20831308.666 20831309.888
+ 45.900 40.600
+ -12236295.766 6 -9534764.978 5 21988618.205 21988616.472 21988617.690
+ 41.500 35.700
+ 06 1 2 2 44 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1335105.793 4 -1040340.965 2 24337074.860 24337073.134 24337074.044
+ 27.100 17.000
+ -9610723.857 5 -7488872.767 4 22839167.245 22839165.827 22839166.121
+ 32.300 28.100
+ 504194.601 3 392893.195 2 24597581.969 24597579.934 24597580.345
+ 23.800 16.100
+ -20427991.335 7 -15917911.909 7 20692790.281 20692788.265 20692789.188
+ 46.500 43.600
+ -13329819.459 7 -10386869.074 7 21155514.170 21155511.271 21155513.288
+ 45.800 42.300
+ -25166147.038 7 -19609976.724 7 20116020.487 20116017.060 20116019.498
+ 42.200 47.500
+ -5421174.293 4 -4224290.354 4 23691265.305 23691260.893 23691264.393
+ 27.400 25.600
+ -19114860.610 7 -14894686.367 6 20844833.094 20844831.268 20844832.572
+ 45.900 40.800
+ -12155921.424 6 -9472135.620 5 22003913.148 22003910.975 22003912.384
+ 40.900 35.700
+ 06 1 2 2 44 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1362565.022 4 -1061737.748 3 24331849.914 24331848.408 24331848.929
+ 25.900 19.900
+ -9718034.749 5 -7572491.605 4 22818746.108 22818744.723 22818745.614
+ 32.400 27.600
+ 596154.796 3 464550.480 2 24615079.404 24615078.754 24615078.757
+ 23.000 12.600
+ -20485636.614 7 -15962830.300 7 20681820.672 20681818.707 20681819.554
+ 46.400 43.800
+ -13379141.975 7 -10425302.197 7 21146128.420 21146125.496 21146127.514
+ 45.900 42.400
+ -25166950.193 7 -19610602.561 7 20115867.463 20115864.244 20115866.608
+ 42.300 47.600
+ -5505141.867 4 -4289719.598 4 23675286.779 23675282.670 23675286.212
+ 28.800 24.900
+ -19043364.004 7 -14838974.725 6 20858438.285 20858436.571 20858437.875
+ 46.000 40.500
+ -12075298.460 6 -9409312.535 5 22019255.212 22019253.223 22019254.496
+ 41.000 35.800
+ 06 1 2 2 45 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1389488.324 4 -1082716.910 3 24326726.796 24326724.994 24326725.706
+ 27.100 22.600
+ -9825092.147 5 -7655912.939 4 22798374.312 22798372.275 22798373.397
+ 32.400 28.100
+ 688158.731 4 536241.901 2 24632588.239 24632586.889 24632587.427
+ 24.600 12.600
+ -20542812.896 7 -16007383.244 7 20670940.222 20670938.476 20670939.154
+ 46.400 43.800
+ -13428221.806 7 -10463546.219 7 21136789.074 21136785.814 21136788.079
+ 46.100 42.400
+ -25167181.660 7 -19610782.927 7 20115823.486 20115820.222 20115822.511
+ 42.300 47.600
+ -5589021.763 4 -4355080.516 4 23659324.893 23659320.871 23659324.149
+ 29.200 25.600
+ -18971435.211 7 -14782926.315 6 20872126.047 20872124.138 20872125.504
+ 45.700 40.400
+ -11994429.432 6 -9346297.710 5 22034643.913 22034642.017 22034643.334
+ 40.900 35.700
+ 06 1 2 2 45 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1415874.888 4 -1103277.877 4 24321704.993 24321704.075 24321704.146
+ 24.200 26.500
+ -9931893.001 5 -7739134.345 4 22778050.849 22778049.178 22778049.600
+ 32.100 29.000
+ 780205.810 3 607966.920 2 24650105.340 24650103.081 24650103.399
+ 21.600 15.100
+ -20599517.861 7 -16051568.926 7 20660149.796 20660147.902 20660148.694
+ 46.600 43.900
+ -13477058.052 7 -10501600.434 7 21127495.551 21127492.631 21127494.707
+ 45.900 42.400
+ -25166840.792 7 -19610517.317 7 20115888.331 20115885.048 20115887.399
+ 42.300 47.400
+ -5672813.239 5 -4420372.533 4 23643380.283 23643376.041 23643379.619
+ 31.600 28.400
+ -18899076.991 7 -14726543.289 6 20885895.274 20885893.479 20885894.824
+ 45.800 40.500
+ -11913316.307 6 -9283092.676 5 22050079.399 22050077.353 22050078.593
+ 40.700 35.800
+ 06 1 2 2 46 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1441724.225 4 -1123420.196 4 24316786.589 24316785.011 24316785.585
+ 26.200 26.500
+ -10038433.392 5 -7822152.804 4 22757776.709 22757775.020 22757775.655
+ 31.300 29.500
+ 872295.447 3 679724.993 2 24667628.474 24667627.090 24667626.724
+ 19.900 17.000
+ -20655749.236 7 -16095385.579 7 20649449.438 20649447.282 20649448.298
+ 46.500 43.800
+ -13525649.583 7 -10539463.962 7 21118249.091 21118246.034 21118248.147
+ 46.100 42.600
+ -25165926.680 7 -19609805.022 7 20116062.352 20116058.957 20116061.401
+ 42.100 47.500
+ -5756515.990 5 -4485595.425 4 23627451.718 23627447.385 23627451.125
+ 31.600 27.900
+ -18826292.056 7 -14669827.758 6 20899745.939 20899744.124 20899745.421
+ 45.900 40.400
+ -11831961.284 6 -9219699.158 5 22065561.022 22065558.647 22065560.108
+ 40.400 35.400
+ 06 1 2 2 46 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1467035.663 4 -1143143.360 4 24311969.450 24311967.880 24311968.614
+ 25.600 25.600
+ -10144709.879 5 -7904965.607 5 22737552.208 22737551.463 22737551.698
+ 32.400 30.400
+ 964427.434 3 751516.140 2 24685160.695 24685159.068 24685159.202
+ 22.100 12.600
+ -20711504.731 7 -16138831.416 7 20638839.542 20638837.372 20638838.473
+ 46.700 43.900
+ -13573995.974 7 -10577136.468 7 21109048.821 21109045.936 21109048.011
+ 46.000 42.500
+ -25164438.599 7 -19608645.479 7 20116345.458 20116342.207 20116344.463
+ 42.300 47.500
+ -5840129.383 5 -4550748.677 4 23611541.070 23611536.724 23611540.445
+ 31.100 29.000
+ -18753083.219 7 -14612781.912 6 20913677.109 20913675.156 20913676.557
+ 45.900 40.100
+ -11750366.556 6 -9156118.849 5 22081087.745 22081085.626 22081087.077
+ 40.800 35.400
+ 06 1 2 2 47 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1491808.505 4 -1162446.862 4 24307255.407 24307253.924 24307254.702
+ 27.900 26.200
+ -10250718.840 5 -7987569.943 5 22717379.414 22717378.411 22717378.926
+ 32.100 30.200
+ 1056601.115 3 823339.804 2 24702700.883 24702699.772 24702699.944
+ 22.600 17.000
+ -20766782.018 7 -16181904.625 7 20628320.588 20628318.503 20628319.423
+ 46.500 44.200
+ -13622096.664 7 -10614617.523 7 21099895.815 21099892.707 21099894.870
+ 46.000 42.700
+ -25162375.450 7 -19607037.829 7 20116737.829 20116734.911 20116736.976
+ 42.000 47.600
+ -5923652.952 5 -4615831.939 4 23595646.684 23595642.729 23595646.230
+ 31.100 27.900
+ -18679453.187 7 -14555407.860 6 20927688.390 20927686.491 20927687.888
+ 46.000 40.300
+ -11668534.457 6 -9092353.571 5 22096659.533 22096657.742 22096658.965
+ 40.300 35.100
+ 06 1 2 2 47 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1516042.426 4 -1181330.418 4 24302644.074 24302642.806 24302643.181
+ 27.400 26.800
+ -10356456.837 5 -8069963.149 4 22697258.497 22697256.980 22697257.610
+ 33.500 29.900
+ 1148816.255 3 895195.724 2 24720249.495 24720247.939 24720247.816
+ 20.500 12.600
+ -20821578.747 7 -16224603.374 7 20617893.025 20617890.996 20617891.888
+ 46.400 44.100
+ -13669951.137 7 -10651906.718 7 21090789.136 21090786.329 21090788.369
+ 46.000 42.600
+ -25159737.124 7 -19604981.992 7 20117240.178 20117236.964 20117239.221
+ 42.100 47.600
+ -6007086.108 5 -4680844.767 4 23579769.696 23579765.729 23579769.021
+ 30.200 28.400
+ -18605404.762 7 -14497707.786 6 20941779.275 20941777.467 20941778.752
+ 45.700 40.200
+ -11586467.167 6 -9028405.031 5 22112276.837 22112274.473 22112276.021
+ 40.300 34.700
+ 06 1 2 2 48 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1539736.769 4 -1199793.561 4 24298134.987 24298133.546 24298134.118
+ 27.400 26.500
+ -10461920.766 5 -8152142.814 4 22677189.869 22677187.847 22677188.535
+ 32.300 29.700
+ 1241072.329 3 967083.571 2 24737804.430 24737803.327 24737803.101
+ 21.100 13.900
+ -20875892.635 7 -16266925.875 7 20607557.001 20607555.454 20607555.948
+ 46.100 44.000
+ -13717558.267 7 -10689003.179 7 21081729.887 21081727.036 21081729.039
+ 46.000 42.800
+ -25156523.048 7 -19602477.520 7 20117851.776 20117848.557 20117850.821
+ 42.200 47.600
+ -6090428.321 5 -4745786.730 4 23563910.500 23563906.297 23563910.088
+ 31.600 29.000
+ -18530940.733 7 -14439683.864 6 20955949.325 20955947.544 20955948.844
+ 45.700 40.000
+ -11504166.794 6 -8964274.872 5 22127938.161 22127936.118 22127937.302
+ 40.200 35.100
+ 06 1 2 2 48 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1562891.173 4 -1217835.915 4 24293729.125 24293727.319 24293728.182
+ 27.600 24.900
+ -10567106.835 5 -8234105.957 4 22657172.834 22657171.267 22657171.967
+ 32.000 28.100
+ 1333368.629 3 1039002.776 2 24755368.770 24755366.729 24755367.235
+ 20.500 17.800
+ -20929721.512 7 -16308870.454 7 20597314.022 20597312.197 20597312.904
+ 46.400 44.200
+ -13764917.353 7 -10725906.359 7 21072717.789 21072714.648 21072716.889
+ 46.000 42.600
+ -25152732.528 7 -19599523.867 7 20118573.238 20118569.816 20118572.181
+ 42.500 47.500
+ -6173679.000 5 -4810657.364 4 23548068.834 23548063.968 23548068.090
+ 31.600 27.400
+ -18456063.825 7 -14381338.225 6 20970197.714 20970196.216 20970197.239
+ 45.500 40.100
+ -11421635.649 6 -8899964.895 5 22143642.791 22143641.081 22143642.155
+ 40.100 35.100
+ 06 1 2 2 49 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1585505.058 4 -1235457.107 4 24289425.366 24289423.861 24289424.299
+ 24.200 24.200
+ -10672011.628 5 -8315849.937 4 22637210.463 22637208.506 22637209.784
+ 33.800 28.400
+ 1425704.750 3 1110952.955 3 24772939.751 24772938.721 24772938.175
+ 21.100 20.500
+ -20983063.130 7 -16350435.347 7 20587163.143 20587161.622 20587162.110
+ 46.400 44.300
+ -13812027.573 7 -10762615.621 7 21063752.991 21063749.866 21063752.103
+ 46.100 42.600
+ -25148364.589 7 -19596120.280 7 20119404.433 20119401.049 20119403.405
+ 42.400 47.400
+ -6256837.580 5 -4875456.241 4 23532243.429 23532239.645 23532242.825
+ 30.100 27.600
+ -18380776.910 7 -14322673.097 6 20984524.386 20984522.887 20984523.982
+ 45.600 40.000
+ -11338875.822 6 -8835476.714 5 22159392.015 22159389.714 22159391.196
+ 39.800 34.800
+ 06 1 2 2 49 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1607578.028 3 -1252656.806 4 24285225.158 24285223.609 24285224.204
+ 22.600 25.300
+ -10776632.040 5 -8397372.313 4 22617302.261 22617300.144 22617300.886
+ 32.300 29.900
+ 1518080.030 2 1182933.617 3 24790517.206 24790516.561 24790515.598
+ 13.900 19.900
+ -21035915.252 7 -16391618.817 7 20577105.812 20577104.140 20577104.733
+ 46.400 44.300
+ -13858888.611 7 -10799130.717 7 21054835.387 21054832.651 21054834.626
+ 45.900 42.900
+ -25143418.953 7 -19592266.539 7 20120345.558 20120342.144 20120344.531
+ 42.300 47.300
+ -6339903.434 4 -4940182.863 4 23516436.557 23516433.114 23516435.827
+ 29.900 27.400
+ -18305082.629 7 -14263690.543 6 20998928.621 20998927.031 20998928.127
+ 45.600 40.100
+ -11255889.465 6 -8770812.032 5 22175183.354 22175181.754 22175182.814
+ 40.000 35.300
+ 06 1 2 2 50 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1629109.704 3 -1269434.727 4 24281127.919 24281126.494 24281126.952
+ 23.000 26.800
+ -10880963.867 5 -8478669.808 5 22597448.360 22597446.411 22597447.387
+ 34.300 30.100
+ 1610494.204 3 1254944.617 1 24808103.486 24808101.624 24808102.327
+ 19.900 9.000
+ -21088275.619 7 -16432419.102 7 20567142.038 20567140.122 20567140.907
+ 46.400 44.100
+ -13905499.707 7 -10835451.046 7 21045965.660 21045962.966 21045964.823
+ 45.900 43.100
+ -25137895.025 7 -19587962.181 7 20121396.731 20121393.226 20121395.703
+ 42.400 47.300
+ -6422875.850 5 -5004836.685 4 23500647.628 23500643.638 23500647.058
+ 30.800 27.900
+ -18228983.793 7 -14204392.744 6 21013409.950 21013408.197 21013409.375
+ 45.400 39.800
+ -11172678.923 6 -8705972.650 5 22191018.076 22191016.260 22191017.375
+ 40.000 34.900
+ 06 1 2 2 50 30.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1650099.477 3 -1285790.346 4 24277132.858 24277132.311 24277131.681
+ 23.000 29.000
+ -10985004.538 5 -8559740.442 5 22577649.744 22577648.293 22577649.025
+ 33.400 31.000
+ 1702947.084 3 1326985.887 1 24825696.471 24825695.162 24825695.057
+ 19.300 6.500
+ -21140141.981 7 -16472834.444 7 20557272.148 20557270.306 20557271.055
+ 46.300 44.100
+ -13951859.959 7 -10871575.914 7 21037143.730 21037140.827 21037142.762
+ 45.800 43.100
+ -25131792.178 7 -19583206.717 7 20122558.023 20122554.562 20122556.915
+ 42.400 47.200
+ -6505754.685 5 -5069417.578 4 23484876.282 23484872.258 23484875.574
+ 32.000 28.400
+ -18152483.194 7 -14144781.892 6 21027967.607 21027965.747 21027967.054
+ 45.600 40.000
+ -11089246.332 6 -8640960.237 5 22206894.417 22206892.862 22206893.864
+ 40.200 34.600
+ 06 1 2 2 51 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1670546.798 3 -1301723.343 4 24273242.730 24273241.010 24273241.772
+ 23.800 27.400
+ -11088750.398 5 -8640581.330 5 22557906.859 22557905.997 22557906.630
+ 34.300 31.100
+ 1795438.053 3 1399056.752 2 24843297.596 24843295.936 24843295.854
+ 19.900 16.100
+ -21191511.979 7 -16512863.016 7 20547496.826 20547494.986 20547495.705
+ 46.400 44.400
+ -13997968.282 7 -10907504.472 7 21028369.554 21028366.719 21028368.665
+ 46.100 43.300
+ -25125109.962 7 -19577999.797 7 20123829.432 20123826.189 20123828.405
+ 42.400 47.100
+ -6588539.051 5 -5133924.866 4 23469122.894 23469119.210 23469122.430
+ 32.100 29.900
+ -18075583.622 7 -14084860.149 6 21042600.925 21042599.138 21042600.517
+ 45.600 39.700
+ -11005593.709 6 -8575776.376 5 22222813.273 22222811.314 22222812.653
+ 40.000 34.700
+ 06 1 2 2 51 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1690451.552 4 -1317233.504 4 24269454.886 24269453.148 24269454.252
+ 24.600 26.500
+ -11192197.466 5 -8721189.403 5 22538222.269 22538220.745 22538221.352
+ 34.600 31.000
+ -21242383.531 7 -16552503.180 7 20537816.317 20537814.633 20537815.251
+ 46.400 44.700
+ -14043824.271 7 -10943236.408 7 21019643.366 21019640.564 21019642.594
+ 45.900 43.100
+ -25117848.015 7 -19572341.139 7 20125211.269 20125207.976 20125210.277
+ 42.300 46.900
+ -6671228.557 5 -5198358.217 5 23453387.911 23453383.546 23453387.161
+ 31.800 30.400
+ -17998287.947 7 -14024629.756 6 21057309.839 21057307.980 21057309.253
+ 45.300 39.600
+ -10921723.378 6 -8510422.868 5 22238773.319 22238771.344 22238772.584
+ 39.700 34.600
+ 06 1 2 2 52 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1709813.236 3 -1332320.521 4 24265770.159 24265769.052 24265769.232
+ 20.500 25.900
+ -11295342.881 5 -8801562.438 4 22518594.340 22518592.472 22518593.184
+ 34.000 29.700
+ -21292754.403 7 -16591753.203 7 20528231.197 20528229.232 20528230.092
+ 46.700 44.500
+ -14089427.480 7 -10978771.375 7 21010965.446 21010962.518 21010964.569
+ 45.900 43.300
+ -25110005.672 7 -19566230.218 7 20126703.687 20126700.306 20126702.663
+ 42.300 46.900
+ -6753822.373 5 -5262717.022 5 23437670.456 23437666.688 23437669.909
+ 32.700 30.600
+ -17920598.697 7 -13964092.680 6 21072093.422 21072091.669 21072092.976
+ 45.100 39.500
+ -10837637.443 6 -8444901.360 5 22254774.537 22254772.585 22254773.626
+ 39.300 34.600
+ 06 1 2 2 52 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1728631.395 3 -1346984.020 4 24262189.051 24262187.954 24262188.169
+ 21.100 26.200
+ -11398182.525 5 -8881697.206 5 22499023.633 22499022.982 22499023.387
+ 34.700 30.200
+ -21342622.387 7 -16630611.372 7 20518741.604 20518739.657 20518740.447
+ 46.600 44.400
+ -14134777.109 7 -11014108.745 7 21002335.700 21002332.719 21002334.831
+ 45.800 43.300
+ -25101582.607 7 -19559666.795 7 20128306.708 20128303.261 20128305.694
+ 42.600 47.000
+ -6836320.032 5 -5327000.895 5 23421971.380 23421967.929 23421970.968
+ 31.600 30.800
+ -17842518.901 7 -13903251.281 6 21086951.627 21086949.823 21086951.108
+ 45.100 39.400
+ -10753337.852 6 -8379213.365 5 22270815.594 22270814.056 22270815.097
+ 39.300 34.700
+ 06 1 2 2 53 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1746905.719 3 -1361223.726 4 24258712.192 24258710.444 24258710.965
+ 22.600 24.200
+ -11500713.412 5 -8961591.376 5 22479512.851 22479511.867 22479512.229
+ 35.100 30.800
+ -21391985.268 7 -16669075.951 7 20509348.087 20509346.207 20509346.981
+ 46.600 44.600
+ -14179871.835 7 -11049247.491 7 20993754.571 20993751.508 20993753.610
+ 45.800 43.300
+ -25092578.361 7 -19552650.500 7 20130020.166 20130016.801 20130019.183
+ 42.600 47.000
+ -6918720.902 5 -5391209.348 5 23406291.580 23406287.609 23406290.869
+ 33.100 31.000
+ -17764051.352 7 -13842107.731 6 21101883.302 21101881.677 21101882.884
+ 45.100 39.200
+ -10668827.134 6 -8313360.865 5 22286897.968 22286896.074 22286897.112
+ 39.100 34.900
+ 06 1 2 2 53 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1764635.928 3 -1375039.428 4 24255337.482 24255336.365 24255336.723
+ 18.600 25.900
+ -11602932.067 5 -9041242.245 5 22460061.370 22460060.497 22460060.635
+ 34.500 31.300
+ -21440840.907 7 -16707145.278 7 20500051.045 20500049.389 20500049.997
+ 46.600 44.700
+ -14224711.313 7 -11084187.341 7 20985221.840 20985218.899 20985221.009
+ 46.200 43.700
+ -25082992.420 7 -19545180.938 7 20131844.213 20131840.910 20131843.261
+ 42.700 47.000
+ -7001024.397 5 -5455341.933 5 23390629.740 23390625.855 23390628.950
+ 32.000 30.400
+ -17685198.652 7 -13780664.070 6 21116888.643 21116886.874 21116888.149
+ 44.800 39.100
+ -10584107.300 6 -8247345.406 5 22303019.447 22303017.645 22303018.624
+ 38.700 34.500
+ 06 1 2 2 54 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1781821.773 4 -1388430.980 4 24252067.517 24252065.949 24252066.651
+ 26.800 24.900
+ -11704835.266 5 -9120647.298 5 22440669.591 22440668.732 22440669.342
+ 34.800 31.600
+ -21489187.257 7 -16744817.753 7 20490850.865 20490849.315 20490849.866
+ 46.600 44.800
+ -14269294.967 7 -11118927.847 7 20976737.801 20976734.980 20976736.968
+ 45.900 43.700
+ -25072824.227 7 -19537257.673 7 20133779.129 20133775.878 20133778.184
+ 42.700 47.000
+ -7083230.209 5 -5519398.392 4 23374986.438 23374982.638 23374985.859
+ 32.400 29.900
+ -17605963.590 7 -13718922.462 6 21131966.673 21131964.827 21131966.126
+ 44.800 39.200
+ -10499180.297 6 -8181168.530 5 22319180.267 22319178.355 22319179.693
+ 38.500 34.000
+ 06 1 2 2 54 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1798463.080 3 -1401398.271 4 24248901.093 24248899.461 24248900.051
+ 23.800 25.900
+ -11806418.910 5 -9199803.353 5 22421338.791 22421337.901 22421338.411
+ 34.300 31.000
+ -21537022.213 7 -16782091.740 7 20481748.414 20481746.551 20481747.341
+ 46.600 44.600
+ -14313621.894 7 -11153468.305 7 20968302.774 20968299.744 20968301.880
+ 45.800 43.600
+ -25062073.692 7 -19528880.631 7 20135824.899 20135821.659 20135823.883
+ 42.600 47.100
+ -7165337.514 5 -5583378.097 4 23359361.572 23359357.618 23359361.022
+ 32.600 28.600
+ -17526349.047 7 -13656885.155 6 21147116.713 21147115.004 21147116.175
+ 44.400 39.000
+ -10414048.392 6 -8114831.976 5 22335380.510 22335378.696 22335379.749
+ 38.900 33.900
+ 06 1 2 2 55 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1814559.796 3 -1413941.135 3 24245837.749 24245835.937 24245836.861
+ 23.800 22.600
+ -11907680.467 5 -9278708.431 5 22402069.809 22402068.344 22402068.815
+ 34.100 31.000
+ -21584343.597 7 -16818965.547 7 20472743.512 20472741.644 20472742.432
+ 46.700 44.800
+ -14357691.480 7 -11187808.241 7 20959916.627 20959913.571 20959915.725
+ 45.900 43.600
+ -25050740.703 7 -19520049.731 7 20137981.571 20137978.274 20137980.460
+ 42.700 47.000
+ -7247345.639 5 -5647280.533 4 23343755.911 23343751.518 23343755.212
+ 32.400 26.800
+ -17446357.858 7 -13594554.356 6 21162338.613 21162336.747 21162338.022
+ 44.600 39.000
+ -10328713.737 6 -8048337.443 5 22351618.898 22351617.509 22351618.377
+ 38.700 34.400
+ 06 1 2 2 55 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1830111.509 3 -1426059.331 4 24242877.337 24242876.947 24242876.426
+ 22.100 24.900
+ -12008615.831 5 -9357359.345 5 22382863.133 22382861.509 22382861.871
+ 35.400 32.100
+ -21631149.231 7 -16855437.466 7 20463836.647 20463834.950 20463835.569
+ 46.600 44.800
+ -14401502.711 7 -11221946.862 7 20951579.466 20951576.715 20951578.576
+ 45.900 43.800
+ -25038824.549 7 -19510764.418 7 20140249.216 20140245.875 20140248.093
+ 42.500 46.900
+ -7329254.143 5 -5711105.336 4 23328168.997 23328164.857 23328168.544
+ 32.400 27.100
+ -17365992.505 7 -13531932.007 6 21177631.545 21177629.884 21177631.030
+ 44.600 38.800
+ -10243178.358 6 -7981686.496 5 22367895.954 22367893.942 22367895.320
+ 38.900 33.600
+ 06 1 2 2 56 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1845117.956 4 -1437752.633 4 24240023.039 24240021.518 24240022.287
+ 25.300 26.500
+ -12109222.102 5 -9435753.798 5 22363717.981 22363716.692 22363717.073
+ 35.400 33.000
+ -21677437.037 7 -16891505.883 7 20455028.355 20455026.616 20455027.242
+ 46.500 44.900
+ -14445055.056 7 -11255883.747 7 20943291.630 20943288.966 20943290.781
+ 45.900 44.000
+ -25026325.076 7 -19501024.572 7 20142627.670 20142624.419 20142626.662
+ 42.700 46.900
+ -7411062.147 5 -5774851.846 4 23312601.534 23312597.550 23312601.126
+ 33.100 27.100
+ -17285255.990 7 -13469020.435 6 21192995.411 21192993.604 21192994.810
+ 44.700 39.100
+ -10157444.429 6 -7914880.843 5 22384210.425 22384208.858 22384209.836
+ 38.700 33.500
+ 06 1 2 2 56 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1859579.029 3 -1449021.015 3 24237270.525 24237269.234 24237269.631
+ 23.000 23.000
+ -12209495.350 5 -9513888.778 5 22344636.665 22344635.263 22344635.553
+ 34.900 32.300
+ -21723204.875 7 -16927169.128 7 20446318.930 20446317.198 20446317.847
+ 46.500 44.700
+ -14488347.550 7 -11289618.156 7 20935053.534 20935050.505 20935052.525
+ 45.800 44.000
+ -25013241.980 7 -19490829.952 7 20145117.475 20145114.050 20145116.354
+ 42.800 47.000
+ -7492769.172 5 -5838519.645 5 23297053.750 23297049.661 23297052.834
+ 32.700 30.200
+ -17204151.115 7 -13405821.833 6 21208429.289 21208427.307 21208428.619
+ 44.700 38.800
+ -10071513.980 6 -7847922.048 5 22400562.539 22400560.574 22400561.868
+ 38.600 33.100
+ 06 1 2 2 57 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1873494.637 3 -1459864.318 3 24234622.453 24234621.116 24234621.289
+ 22.600 23.000
+ -12309432.044 5 -9591761.503 5 22325618.936 22325617.596 22325618.214
+ 35.100 31.800
+ -21768450.577 7 -16962425.522 7 20437709.106 20437707.234 20437707.998
+ 46.400 44.800
+ -14531379.371 7 -11323149.446 7 20926864.699 20926861.829 20926863.832
+ 45.700 44.100
+ -24999574.897 7 -19480180.279 7 20147718.185 20147714.715 20147717.150
+ 42.900 46.700
+ -7574374.694 5 -5902108.327 5 23281524.373 23281520.663 23281523.899
+ 33.400 30.800
+ -17122680.615 7 -13342338.327 6 21223932.362 21223930.474 21223931.865
+ 44.900 38.400
+ -9985389.372 6 -7780811.963 5 22416951.776 22416949.768 22416950.865
+ 38.100 33.600
+ 06 1 2 2 57 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1886864.546 3 -1470282.451 3 24232078.245 24232076.800 24232077.251
+ 18.600 19.300
+ -12409029.107 6 -9669369.584 5 22306666.097 22306665.110 22306665.818
+ 36.500 32.700
+ -21813172.301 7 -16997273.614 7 20429198.857 20429197.084 20429197.741
+ 46.700 45.100
+ -14574150.017 7 -11356477.220 7 20918725.832 20918722.826 20918724.977
+ 45.900 44.100
+ -24985323.336 7 -19469075.169 7 20150430.230 20150426.603 20150429.186
+ 42.900 46.500
+ -7655878.024 5 -5965617.408 5 23266014.867 23266010.943 23266014.316
+ 34.400 31.100
+ -17040847.201 7 -13278572.028 6 21239504.795 21239502.903 21239504.287
+ 44.700 38.300
+ -9899072.541 6 -7713552.095 5 22433377.154 22433375.616 22433376.509
+ 38.700 34.000
+ 06 1 2 2 58 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1899688.790 4 -1480275.327 3 24229638.493 24229636.456 24229637.309
+ 24.200 22.600
+ -12508282.594 6 -9746709.924 5 22287779.394 22287777.602 22287778.277
+ 36.000 32.700
+ -21857367.947 7 -17031711.779 7 20420788.551 20420786.922 20420787.518
+ 46.700 45.200
+ -14616658.792 7 -11389600.937 7 20910636.627 20910633.568 20910635.790
+ 45.900 44.000
+ -24970487.808 7 -19457515.020 7 20153253.243 20153249.664 20153252.253
+ 43.000 46.300
+ -7737278.543 5 -6029046.362 5 23250524.477 23250520.934 23250524.007
+ 32.800 31.000
+ -16958653.788 7 -13214525.212 6 21255145.539 21255143.863 21255145.079
+ 44.300 38.400
+ -9812565.415 6 -7646143.963 5 22449838.979 22449837.035 22449838.328
+ 38.300 33.000
+ 06 1 2 2 58 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1911967.209 3 -1489842.933 3 24227301.487 24227299.718 24227300.802
+ 23.800 21.100
+ -12607189.555 6 -9823780.252 5 22268958.001 22268956.192 22268957.219
+ 36.500 32.600
+ -21901035.448 7 -17065738.397 7 20412479.053 20412477.289 20412477.918
+ 46.500 45.300
+ -14658904.616 7 -11422519.757 7 20902597.528 20902594.500 20902596.589
+ 45.700 44.000
+ -24955067.822 7 -19445499.448 7 20156187.497 20156184.108 20156186.446
+ 42.700 46.400
+ -7818575.269 5 -6092394.438 5 23235054.306 23235050.404 23235053.687
+ 32.400 30.800
+ -16876102.979 7 -13150199.911 6 21270854.297 21270852.799 21270853.903
+ 44.200 38.100
+ -9725870.233 6 -7578589.275 5 22466336.703 22466334.733 22466335.961
+ 38.100 33.200
+ 06 1 2 2 59 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1923699.773 3 -1498985.165 3 24225068.593 24225067.519 24225067.763
+ 23.800 23.400
+ -12705746.698 6 -9900577.978 5 22250203.203 22250201.459 22250202.105
+ 36.500 33.000
+ -21944172.796 7 -17099351.914 7 20404270.298 20404268.427 20404269.186
+ 46.600 45.200
+ -14700887.044 7 -11455233.337 7 20894608.523 20894605.663 20894607.666
+ 45.700 44.200
+ -24939063.265 7 -19433028.365 7 20159233.098 20159229.745 20159232.027
+ 42.800 46.400
+ -7899768.344 5 -6155661.747 5 23219603.545 23219600.037 23219603.199
+ 33.100 30.400
+ -16793197.692 7 -13085598.389 6 21286631.024 21286629.014 21286630.346
+ 43.900 38.000
+ -9638989.097 6 -7510889.692 5 22482869.449 22482867.671 22482868.817
+ 38.100 33.000
+ 06 1 2 2 59 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1934886.399 4 -1507702.084 4 24222940.472 24222939.033 24222939.357
+ 25.300 25.300
+ -12803950.821 5 -9977100.631 5 22231515.497 22231513.730 22231514.397
+ 35.800 32.700
+ -21986778.006 7 -17132550.777 7 20396162.884 20396161.060 20396161.685
+ 46.500 45.400
+ -14742604.876 7 -11487740.733 7 20886669.794 20886667.156 20886668.978
+ 45.800 44.500
+ -24922473.648 7 -19420101.394 7 20162389.936 20162386.664 20162388.911
+ 43.100 46.500
+ -7980856.705 5 -6218847.470 5 23204173.672 23204169.265 23204173.000
+ 34.400 30.600
+ -16709940.657 7 -13020722.780 6 21302474.339 21302472.356 21302473.699
+ 43.800 38.000
+ -9551923.919 6 -7443046.694 5 22499437.589 22499435.411 22499436.868
+ 37.700 32.800
+ 06 1 2 3 0 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1945527.370 4 -1515993.718 4 24220915.662 24220914.172 24220914.734
+ 25.300 25.900
+ -12901798.030 6 -10053345.178 5 22212895.616 22212893.978 22212894.751
+ 36.900 33.100
+ -22028848.960 7 -17165333.337 7 20388156.862 20388155.180 20388155.796
+ 46.400 45.400
+ -14784058.034 7 -11520041.893 7 20878781.721 20878778.720 20878780.757
+ 45.700 44.400
+ -24905299.138 7 -19406718.661 7 20165658.164 20165654.791 20165657.213
+ 43.300 46.300
+ -8061839.936 5 -6281951.270 5 23188762.994 23188758.796 23188762.411
+ 34.800 30.800
+ -16626334.538 7 -12955575.161 6 21318384.027 21318381.973 21318383.405
+ 44.000 37.800
+ -9464676.806 6 -7375061.936 5 22516040.408 22516038.081 22516039.532
+ 37.500 32.600
+ 06 1 2 3 0 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1955622.475 3 -1523860.037 4 24218993.979 24218992.926 24218993.409
+ 21.600 25.300
+ -12999285.217 6 -10129309.193 5 22194343.939 22194342.884 22194343.141
+ 36.000 33.000
+ -22070383.713 7 -17197698.079 7 20380252.772 20380251.483 20380251.806
+ 46.500 45.600
+ -14825245.506 7 -11552136.024 7 20870943.858 20870940.874 20870942.969
+ 45.600 44.200
+ -24887539.517 7 -19392879.996 7 20169037.904 20169034.363 20169036.879
+ 43.300 46.200
+ -8142717.259 5 -6344972.543 5 23173372.094 23173368.458 23173371.585
+ 34.500 31.500
+ -16542382.121 7 -12890157.691 6 21334359.651 21334357.656 21334358.953
+ 43.800 37.500
+ -9377250.104 6 -7306937.238 5 22532676.862 22532674.776 22532676.175
+ 37.500 32.600
+ 06 1 2 3 1 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1965171.733 3 -1531300.987 3 24217177.401 24217175.548 24217176.627
+ 22.100 22.600
+ -13096408.766 6 -10204989.847 5 22175862.293 22175860.885 22175861.507
+ 36.500 33.100
+ -22111380.180 7 -17229643.374 7 20372451.493 20372450.016 20372450.526
+ 46.400 45.500
+ -14866166.094 7 -11584022.197 7 20863157.034 20863154.035 20863156.070
+ 45.600 44.500
+ -24869195.061 7 -19378585.617 7 20172528.530 20172525.261 20172527.584
+ 43.100 46.400
+ -8223487.887 5 -6407910.669 5 23158002.248 23157998.112 23158001.565
+ 34.100 30.600
+ -16458086.300 7 -12824472.640 6 21350400.448 21350398.487 21350399.971
+ 43.900 37.300
+ -9289645.495 6 -7238673.911 5 22549347.183 22549345.311 22549346.606
+ 37.700 32.300
+ 06 1 2 3 1 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1974175.298 3 -1538316.783 3 24215462.613 24215462.660 24215461.755
+ 21.600 23.400
+ -13193165.260 6 -10280384.502 5 22157449.846 22157448.453 22157449.287
+ 36.700 32.100
+ -22151836.442 7 -17261167.732 7 20364752.861 20364751.511 20364751.900
+ 46.500 45.600
+ -14906818.960 7 -11615699.749 7 20855420.976 20855418.185 20855420.113
+ 45.600 44.700
+ -24850265.243 7 -19363835.112 7 20176130.679 20176127.416 20176129.701
+ 43.100 46.200
+ -8304150.795 5 -6470764.870 5 23142652.641 23142648.652 23142652.070
+ 34.000 32.000
+ -16373449.667 7 -12758522.013 6 21366506.204 21366504.194 21366505.725
+ 43.900 37.100
+ -9201865.279 6 -7170273.743 5 22566051.703 22566049.291 22566050.878
+ 37.200 31.600
+ 06 1 2 3 2 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1982633.408 3 -1544907.526 4 24213854.126 24213853.156 24213853.309
+ 23.400 24.900
+ -13289551.604 6 -10355490.726 5 22139107.931 22139106.440 22139107.450
+ 36.700 31.500
+ -22191750.932 7 -17292269.926 7 20357157.661 20357155.950 20357156.591
+ 46.600 45.600
+ -14947203.732 7 -11647168.400 7 20847736.084 20847733.176 20847735.075
+ 45.600 44.800
+ -24830750.266 7 -19348628.635 7 20179844.289 20179841.030 20179843.260
+ 43.200 46.100
+ -8384706.007 5 -6533535.145 5 23127323.553 23127319.255 23127322.865
+ 34.100 31.100
+ -16288475.032 7 -12692308.014 6 21382676.191 21382674.513 21382675.742
+ 43.600 36.900
+ -9113911.359 6 -7101738.226 5 22582788.309 22582786.316 22582787.711
+ 37.600 31.600
+ 06 1 2 3 2 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1990546.244 3 -1551073.332 4 24212348.558 24212347.320 24212347.838
+ 23.800 26.500
+ -13385564.505 6 -10430305.953 5 22120837.882 22120836.135 22120836.859
+ 36.700 33.000
+ -22231121.516 7 -17322948.300 7 20349665.708 20349663.874 20349664.539
+ 46.500 45.500
+ -14987319.739 7 -11678427.620 7 20840102.300 20840099.322 20840101.339
+ 45.600 44.800
+ -24810649.933 7 -19332966.041 7 20183669.466 20183666.045 20183668.331
+ 43.100 46.100
+ -8465152.602 5 -6596220.777 5 23112014.902 23112010.699 23112014.290
+ 33.500 30.400
+ -16203165.162 7 -12625832.789 6 21398910.472 21398908.464 21398909.941
+ 43.800 37.100
+ -9025785.860 6 -7033068.996 5 22599557.906 22599556.232 22599557.234
+ 36.800 32.100
+ 06 1 2 3 3 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1997913.520 3 -1556814.083 4 24210945.955 24210945.703 24210945.252
+ 23.000 25.900
+ -13481200.146 6 -10504827.204 5 22102638.229 22102637.356 22102638.010
+ 36.800 33.600
+ -22269946.192 7 -17353201.291 7 20342277.637 20342275.748 20342276.511
+ 46.400 45.300
+ -15027166.315 7 -11709476.900 7 20832519.879 20832516.786 20832518.886
+ 45.400 44.800
+ -24789964.247 7 -19316847.330 7 20187605.525 20187602.341 20187604.591
+ 42.900 46.000
+ -8545490.014 6 -6658821.346 5 23096728.008 23096723.191 23096727.278
+ 36.100 32.000
+ -16117522.966 7 -12559098.614 6 21415207.914 21415205.737 21415207.228
+ 43.700 37.500
+ -8937490.715 6 -6964267.600 5 22616360.102 22616358.318 22616359.520
+ 37.000 32.100
+ 06 1 2 3 3 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2004735.598 3 -1562129.971 3 24209647.960 24209646.536 24209646.591
+ 21.100 22.600
+ -13576455.339 6 -10579051.994 5 22084512.770 22084510.777 22084511.558
+ 36.500 33.900
+ -22308223.039 7 -17383027.404 7 20334993.859 20334991.865 20334992.715
+ 46.600 45.300
+ -15066741.957 7 -11740315.058 7 20824988.467 20824985.791 20824987.691
+ 45.500 45.000
+ -24768693.262 7 -19300272.538 7 20191653.429 20191650.064 20191652.391
+ 43.000 45.700
+ -8625717.542 5 -6721336.301 5 23081460.650 23081456.197 23081459.958
+ 35.500 31.100
+ -16031550.967 7 -12492107.453 6 21431567.858 21431565.594 21431567.187
+ 43.400 36.900
+ -8849027.989 6 -6895335.612 5 22633193.612 22633192.398 22633193.160
+ 36.900 32.600
+ 06 1 2 3 4 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2011012.398 3 -1567020.954 3 24208454.188 24208452.327 24208453.338
+ 22.100 23.000
+ -13671326.216 6 -10652977.326 5 22066459.693 22066457.434 22066458.547
+ 37.700 33.800
+ -22345950.326 7 -17412425.287 7 20327814.596 20327812.658 20327813.530
+ 46.800 45.400
+ -15106046.040 7 -11770941.619 7 20817509.284 20817506.409 20817508.453
+ 45.600 45.000
+ -24746837.065 7 -19283241.742 7 20195812.423 20195809.185 20195811.376
+ 43.000 45.900
+ -8705834.255 5 -6783764.901 5 23066214.299 23066210.742 23066213.908
+ 34.900 32.600
+ -15945252.063 7 -12424861.557 6 21447989.511 21447987.790 21447989.069
+ 43.500 37.000
+ -8760399.568 6 -6826274.505 5 22650060.327 22650057.362 22650059.310
+ 37.300 31.300
+ 06 1 2 3 4 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2016744.353 3 -1571487.455 3 24207362.707 24207361.436 24207362.020
+ 22.100 19.900
+ -13765810.393 6 -10726601.322 5 22048478.768 22048477.586 22048478.239
+ 37.200 33.900
+ -22383126.145 7 -17441393.456 7 20320740.178 20320738.483 20320739.110
+ 46.600 45.600
+ -15145078.345 7 -11801356.400 7 20810081.741 20810078.801 20810080.795
+ 45.500 45.000
+ -24724396.215 7 -19265755.370 7 20200082.646 20200079.477 20200081.650
+ 43.100 45.600
+ -8785840.039 5 -6846107.040 5 23050990.231 23050986.301 23050989.514
+ 34.800 32.400
+ -15858628.775 7 -12357362.887 6 21464473.397 21464471.631 21464472.982
+ 43.600 37.100
+ -8671607.595 6 -6757085.958 5 22666956.253 22666953.855 22666955.445
+ 36.700 30.800
+ 06 1 2 3 5 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2021931.758 3 -1575529.581 3 24206376.644 24206374.329 24206375.494
+ 22.100 23.400
+ -13859904.092 6 -10799921.058 5 22030574.391 22030572.223 22030572.937
+ 37.000 33.900
+ -22419748.581 7 -17469930.416 7 20313771.109 20313769.488 20313770.049
+ 46.600 45.700
+ -15183837.748 7 -11831558.528 7 20802705.888 20802703.166 20802705.049
+ 45.400 45.000
+ -24701370.492 7 -19247813.250 7 20204464.202 20204461.088 20204463.257
+ 43.000 45.400
+ -8865733.709 5 -6908361.831 5 23035786.739 23035782.636 23035786.160
+ 34.600 32.400
+ -15771684.043 7 -12289613.745 6 21481018.616 21481016.802 21481018.052
+ 43.200 36.800
+ -8582654.091 6 -6687771.536 5 22683883.485 22683881.575 22683882.666
+ 36.600 31.300
+ 06 1 2 3 5 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2026574.954 3 -1579147.636 3 24205492.086 24205491.324 24205491.237
+ 22.600 23.000
+ -13953604.104 6 -10872934.030 5 22012742.054 22012741.933 22012742.206
+ 37.800 34.600
+ -22455815.881 7 -17498034.803 7 20306907.987 20306905.937 20306906.828
+ 46.500 45.600
+ -15222323.679 7 -11861547.562 7 20795382.414 20795379.558 20795381.526
+ 45.500 45.200
+ -24677759.747 7 -19229415.270 7 20208957.125 20208954.142 20208956.226
+ 43.000 45.500
+ -8945514.830 5 -6970528.932 5 23020604.547 23020600.872 23020604.019
+ 34.400 31.800
+ -15684420.610 7 -12221616.268 6 21497624.191 21497622.256 21497623.672
+ 43.100 36.900
+ -8493541.056 6 -6618332.816 5 22700840.888 22700839.126 22700840.181
+ 36.400 31.500
+ 06 1 2 3 6 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2030674.104 3 -1582341.811 3 24204712.182 24204710.679 24204711.431
+ 23.000 19.900
+ -14046906.997 6 -10945637.555 5 21994988.694 21994986.907 21994987.565
+ 38.200 34.800
+ -22491326.029 7 -17525705.041 7 20300150.564 20300148.598 20300149.407
+ 46.600 45.500
+ -15260535.100 7 -11891322.694 7 20788110.981 20788108.092 20788110.052
+ 45.500 45.200
+ -24653564.512 7 -19210561.844 7 20213561.527 20213558.390 20213560.527
+ 43.100 45.400
+ -9025182.720 5 -7032607.793 5 23005444.210 23005440.407 23005443.797
+ 34.800 31.000
+ -15596841.063 7 -12153372.465 6 21514289.923 21514288.220 21514289.482
+ 42.900 36.700
+ -8404270.401 6 -6548771.270 5 22717828.642 22717826.726 22717828.037
+ 36.600 31.000
+ 06 1 2 3 6 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2034229.560 4 -1585112.275 3 24204036.338 24204034.273 24204035.510
+ 26.200 19.900
+ -14139809.257 6 -11018028.905 5 21977309.595 21977307.990 21977308.720
+ 38.300 34.700
+ -22526277.198 7 -17552939.717 7 20293499.408 20293497.555 20293498.337
+ 46.700 45.500
+ -15298471.164 7 -11920883.261 7 20780891.970 20780889.099 20780891.082
+ 45.200 45.200
+ -24628784.835 7 -19191253.005 7 20218277.087 20218273.805 20218276.001
+ 43.100 45.400
+ -9104736.755 5 -7094597.948 5 22990306.038 22990301.960 22990305.469
+ 35.700 31.800
+ -15508948.167 7 -12084884.495 6 21531015.614 21531013.598 21531014.945
+ 42.600 36.100
+ -8314844.006 6 -6479088.364 5 22734845.843 22734843.875 22734845.130
+ 36.000 30.600
+ 06 1 2 3 7 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2037241.450 3 -1587459.180 3 24203462.613 24203460.506 24203461.535
+ 22.600 20.500
+ -14232307.589 6 -11090105.495 5 21959707.061 21959706.057 21959706.617
+ 38.100 34.700
+ -22560667.827 7 -17579737.609 7 20286955.049 20286953.265 20286954.051
+ 46.700 45.400
+ -15336131.360 7 -11950228.867 7 20773725.616 20773722.651 20773724.630
+ 45.500 45.300
+ -24603420.677 7 -19171488.725 7 20223103.448 20223100.466 20223102.501
+ 43.200 45.300
+ -9184176.175 5 -7156498.782 5 22975189.125 22975185.352 22975188.389
+ 34.900 32.300
+ -15420744.709 7 -12016154.529 6 21547799.926 21547798.296 21547799.504
+ 42.700 36.500
+ -8225263.974 5 -6409285.741 5 22751892.216 22751890.486 22751891.691
+ 35.800 30.600
+ 06 1 2 3 7 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2039710.208 4 -1589382.851 3 24202992.926 24202991.006 24202992.398
+ 24.600 22.100
+ -14324398.999 6 -11161865.015 5 21942183.075 21942181.770 21942182.171
+ 38.200 34.800
+ -22594496.211 7 -17606097.389 7 20280517.925 20280516.009 20280516.880
+ 46.800 45.700
+ -15373514.556 7 -11979358.624 7 20766611.743 20766608.809 20766610.842
+ 45.200 45.400
+ -24577472.506 7 -19151269.374 7 20228041.494 20228038.194 20228040.458
+ 43.300 45.300
+ -9263500.165 5 -7218309.665 5 22960094.191 22960090.542 22960093.569
+ 34.900 33.000
+ -15332233.301 7 -11947184.602 6 21564643.101 21564641.359 21564642.576
+ 42.500 36.000
+ -8135532.188 6 -6339364.874 4 22768967.913 22768965.483 22768967.153
+ 36.100 29.900
+ 06 1 2 3 8 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2041636.218 4 -1590883.634 3 24202626.791 24202625.085 24202625.912
+ 24.900 22.600
+ -14416079.735 6 -11233304.514 5 21924736.048 21924735.612 21924735.901
+ 38.100 35.100
+ -22627760.538 7 -17632017.642 7 20274187.919 20274185.926 20274186.743
+ 46.800 45.600
+ -15410620.020 7 -12008271.971 7 20759550.689 20759547.909 20759549.847
+ 45.200 45.500
+ -24550940.694 7 -19130595.238 7 20233090.287 20233086.903 20233089.332
+ 43.400 45.000
+ -9342708.022 5 -7280030.061 5 22945021.111 22945017.512 22945020.741
+ 35.800 33.200
+ -15243416.684 7 -11877976.850 6 21581544.388 21581542.493 21581543.849
+ 42.400 36.100
+ -8045650.736 5 -6269327.377 5 22786071.714 22786069.487 22786070.893
+ 35.500 30.400
+ 06 1 2 3 8 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2043019.927 3 -1591961.880 3 24202362.690 24202361.398 24202361.988
+ 22.100 21.600
+ -14507346.912 6 -11304421.778 5 21907369.257 21907367.583 21907368.076
+ 37.800 34.300
+ -22660459.196 7 -17657497.112 7 20267965.372 20267963.630 20267964.319
+ 46.400 45.600
+ -15447446.846 7 -12036968.197 7 20752542.800 20752540.031 20752542.021
+ 45.300 45.600
+ -24523825.315 7 -19109466.377 7 20238250.339 20238246.818 20238249.233
+ 43.400 44.900
+ -9421799.246 5 -7341659.579 5 22929970.869 22929967.319 22929970.337
+ 35.600 34.000
+ -15154297.597 7 -11808533.402 6 21598503.106 21598501.436 21598502.595
+ 42.300 36.300
+ -7955621.397 6 -6199174.643 4 22803203.656 22803201.605 22803203.193
+ 36.000 29.900
+ 06 1 2 3 9 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2043861.904 3 -1592617.945 3 24202201.941 24202201.047 24202200.774
+ 21.100 19.300
+ -14598197.140 6 -11375214.138 5 21890080.460 21890079.499 21890080.231
+ 38.600 34.500
+ -22692590.287 7 -17682534.324 7 20261850.999 20261849.228 20261849.887
+ 46.300 45.500
+ -15483994.626 7 -12065446.983 7 20745587.904 20745585.170 20745587.140
+ 45.300 45.500
+ -24496126.891 7 -19087883.192 7 20243521.104 20243517.744 20243520.081
+ 43.700 44.900
+ -9500773.226 5 -7403197.711 5 22914942.834 22914938.887 22914942.080
+ 35.600 33.500
+ -15064878.767 7 -11738856.390 5 21615519.043 21615517.124 21615518.459
+ 42.200 35.900
+ -7865446.196 5 -6128908.256 5 22820363.656 22820361.424 22820362.822
+ 35.400 30.100
+ 06 1 2 3 9 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2044162.349 3 -1592852.050 3 24202145.747 24202144.206 24202144.674
+ 23.000 23.800
+ -14688627.076 6 -11445679.006 5 21872873.397 21872871.293 21872872.089
+ 38.200 34.800
+ -22724152.191 7 -17707128.014 7 20255844.945 20255843.239 20255843.850
+ 46.400 45.600
+ -15520262.523 7 -12093707.682 7 20738686.737 20738683.609 20738685.738
+ 45.300 45.600
+ -24467845.397 7 -19065845.670 7 20248902.747 20248899.521 20248901.867
+ 43.800 44.800
+ -9579628.798 6 -7464643.606 5 22899937.310 22899933.003 22899936.628
+ 36.100 32.100
+ -14975162.885 7 -11668947.915 6 21632591.458 21632589.722 21632590.822
+ 42.100 36.100
+ -7775127.049 5 -6058529.704 5 22837550.503 22837548.709 22837549.920
+ 35.100 30.200
+ 06 1 2 3 10 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2043921.679 4 -1592664.509 3 24202191.730 24202189.825 24202190.600
+ 24.600 20.500
+ -14778633.680 6 -11515813.992 5 21855744.646 21855743.608 21855744.292
+ 38.800 35.100
+ -22755143.130 7 -17731276.797 7 20249947.580 20249945.858 20249946.473
+ 46.300 45.600
+ -15556249.631 7 -12121749.583 7 20731838.440 20731835.510 20731837.582
+ 45.300 45.700
+ -24438981.121 7 -19043354.029 7 20254395.403 20254392.177 20254394.579
+ 43.900 44.700
+ -9658365.534 6 -7525996.904 5 22884954.122 22884949.651 22884953.398
+ 36.800 31.300
+ -14885152.621 7 -11598810.045 5 21649719.749 21649717.934 21649719.233
+ 42.200 35.800
+ -7684665.755 5 -5988040.391 5 22854764.338 22854762.645 22854764.013
+ 35.300 30.100
+ 06 1 2 3 10 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2043140.511 3 -1592055.798 2 24202339.912 24202337.777 24202338.890
+ 23.000 17.800
+ -14868213.421 6 -11585616.355 5 21838698.513 21838697.144 21838697.743
+ 38.800 35.900
+ -22785561.584 7 -17754979.484 7 20244159.205 20244157.434 20244158.153
+ 46.600 45.800
+ -15591954.988 7 -12149571.938 7 20725043.869 20725041.018 20725043.032
+ 45.300 45.700
+ -24409534.517 7 -19020408.626 7 20259999.165 20259995.728 20259998.140
+ 43.800 44.800
+ -9736982.618 6 -7587256.969 5 22869993.767 22869989.313 22869992.948
+ 36.300 32.000
+ -14794850.719 6 -11528444.927 5 21666903.909 21666901.833 21666903.231
+ 41.900 35.900
+ -7594064.399 5 -5917441.932 4 22872006.048 22872003.580 22872005.514
+ 35.500 29.500
+ 06 1 2 3 11 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2041819.429 4 -1591026.403 3 24202591.690 24202589.579 24202590.729
+ 24.600 19.900
+ -14957363.082 6 -11655083.606 5 21821734.339 21821732.348 21821733.213
+ 38.900 35.500
+ -22815405.606 7 -17778234.565 7 20238480.253 20238478.348 20238479.106
+ 46.600 45.800
+ -15627377.648 7 -12177174.010 7 20718303.309 20718300.273 20718302.360
+ 44.900 45.800
+ -24379506.229 7 -18997009.965 7 20265713.325 20265710.006 20265712.361
+ 43.900 44.700
+ -9815479.204 5 -7648423.131 5 22855055.754 22855052.171 22855055.257
+ 35.700 32.700
+ -14704259.752 6 -11457854.564 5 21684142.561 21684140.745 21684142.004
+ 41.800 35.900
+ -7503325.021 5 -5846735.921 5 22889273.179 22889271.008 22889272.148
+ 34.700 30.600
+ 06 1 2 3 11 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2039958.749 3 -1589576.444 3 24202945.511 24202944.184 24202944.795
+ 22.600 23.400
+ -15046079.401 6 -11724213.189 5 21804851.783 21804850.144 21804851.019
+ 39.200 34.900
+ -22844673.670 7 -17801040.845 7 20232910.415 20232908.829 20232909.403
+ 46.500 45.800
+ -15662517.158 7 -12204555.443 7 20711616.219 20711613.518 20711615.380
+ 45.100 45.900
+ -24348896.465 7 -18973158.203 7 20271538.103 20271534.810 20271537.136
+ 43.900 44.600
+ -9893855.024 6 -7709495.184 5 22840142.044 22840137.501 22840141.191
+ 36.600 33.100
+ -14613382.447 6 -11387041.082 5 21701435.780 21701434.203 21701435.286
+ 41.300 35.700
+ -7412449.130 5 -5775923.556 5 22906565.954 22906564.532 22906565.197
+ 34.400 31.600
+ 06 1 2 3 12 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2037559.101 3 -1587706.604 3 24203402.218 24203400.643 24203401.115
+ 22.600 23.800
+ -15134358.743 6 -11793002.283 5 21788053.283 21788051.237 21788052.175
+ 39.700 35.600
+ -22873364.425 7 -17823397.278 7 20227450.985 20227449.168 20227449.922
+ 46.600 45.800
+ -15697372.518 7 -12231715.459 7 20704983.534 20704980.732 20704982.637
+ 44.900 45.900
+ -24317705.444 7 -18948853.517 7 20277473.499 20277470.180 20277472.556
+ 43.600 44.400
+ -9972108.927 6 -7770472.239 5 22825250.108 22825246.354 22825249.748
+ 36.300 33.000
+ -14522221.489 6 -11316006.579 5 21718783.310 21718781.598 21718782.673
+ 41.300 35.600
+ -7321439.018 5 -5705006.593 4 22923884.769 22923882.462 22923884.049
+ 34.300 29.900
+ 06 1 2 3 12 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2034620.931 4 -1585417.133 3 24203961.455 24203959.768 24203960.325
+ 24.900 22.600
+ -15222198.606 6 -11861448.910 5 21771337.242 21771335.933 21771336.623
+ 39.800 35.700
+ -22901476.118 7 -17845302.491 7 20222101.498 20222099.642 20222100.376
+ 46.500 45.700
+ -15731942.876 7 -12258653.400 7 20698405.108 20698402.166 20698404.218
+ 45.100 46.000
+ -24285933.739 7 -18924096.347 7 20283519.569 20283516.088 20283518.508
+ 43.800 44.300
+ -10050240.314 5 -7831353.829 5 22810381.943 22810378.273 22810381.519
+ 35.900 33.200
+ -14430779.540 6 -11244753.112 5 21736184.223 21736182.309 21736183.551
+ 41.100 35.100
+ -7230296.280 5 -5633986.269 5 22941228.702 22941226.937 22941227.885
+ 34.600 31.000
+ 06 1 2 3 13 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2031145.153 3 -1582708.710 3 24204622.212 24204620.815 24204621.682
+ 22.100 21.100
+ -15309595.274 6 -11929550.189 5 21754706.233 21754705.024 21754705.532
+ 39.800 35.900
+ -22929007.226 7 -17866755.304 7 20216862.472 20216860.537 20216861.413
+ 46.400 45.600
+ -15766227.617 7 -12285368.781 7 20691880.774 20691877.983 20691879.984
+ 45.100 45.900
+ -24253582.078 7 -18898887.264 7 20289675.677 20289672.436 20289674.744
+ 43.900 44.300
+ -10128248.146 6 -7892139.130 5 22795537.976 22795534.221 22795537.468
+ 36.400 34.100
+ -14339059.316 6 -11173282.808 5 21753637.943 21753636.082 21753637.261
+ 41.100 34.800
+ -7139022.901 5 -5562864.165 5 22958597.171 22958595.469 22958596.484
+ 33.900 30.100
+ 06 1 2 3 13 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2027132.289 3 -1579581.828 4 24205386.794 24205384.784 24205385.414
+ 23.800 24.600
+ -15396545.846 6 -11997303.866 5 21738160.255 21738158.654 21738159.398
+ 39.500 35.900
+ -22955956.131 7 -17887754.449 7 20211734.197 20211732.386 20211733.128
+ 46.200 45.700
+ -15800225.859 7 -12311860.917 7 20685411.176 20685408.368 20685410.334
+ 45.000 46.000
+ -24220650.956 7 -18873226.650 7 20295942.440 20295939.079 20295941.392
+ 44.000 44.200
+ -10206132.335 6 -7952828.094 5 22780717.374 22780713.412 22780716.773
+ 37.700 34.500
+ -14247063.363 6 -11101597.647 5 21771143.967 21771142.305 21771143.548
+ 41.200 34.900
+ -7047620.794 5 -5491641.757 4 22975989.710 22975988.606 22975989.251
+ 33.800 29.000
+ 06 1 2 3 14 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2022582.968 4 -1576036.903 3 24206252.243 24206250.617 24206251.255
+ 24.600 23.400
+ -15483046.846 6 -12064707.227 6 21721699.795 21721698.043 21721698.789
+ 40.100 36.200
+ -22982321.441 7 -17908298.847 7 20206716.972 20206715.229 20206715.946
+ 46.200 45.600
+ -15833936.722 7 -12338129.119 7 20678996.405 20678993.444 20678995.523
+ 45.100 46.100
+ -24187140.650 7 -18847114.733 7 20302319.087 20302315.917 20302318.099
+ 43.800 44.200
+ -10283891.923 6 -8013419.970 5 22765920.257 22765916.094 22765919.676
+ 37.900 33.800
+ -14154794.292 6 -11029699.679 5 21788702.519 21788700.590 21788701.856
+ 41.000 35.300
+ -6956091.830 5 -5420320.475 4 22993407.932 22993406.325 22993407.253
+ 34.500 29.700
+ 06 1 2 3 14 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2017497.793 3 -1572074.405 3 24207220.113 24207217.853 24207219.273
+ 23.000 21.600
+ -15569095.619 6 -12131758.202 6 21705324.845 21705323.603 21705324.231
+ 40.400 36.300
+ -23008101.512 7 -17928387.212 7 20201811.043 20201809.342 20201810.035
+ 46.100 45.600
+ -15867359.486 7 -12364172.830 7 20672636.054 20672633.313 20672635.159
+ 44.900 46.100
+ -24153051.415 7 -18820551.697 7 20308805.941 20308802.841 20308805.015
+ 43.800 44.100
+ -10361525.700 6 -8073913.812 5 22751147.341 22751142.695 22751146.592
+ 38.100 33.800
+ -14062254.971 6 -10957591.116 5 21806311.831 21806310.180 21806311.360
+ 40.900 34.700
+ -6864437.858 5 -5348901.807 4 23010848.921 23010847.494 23010848.257
+ 33.800 29.700
+ 06 1 2 3 15 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2011877.219 3 -1567694.716 3 24208288.345 24208287.721 24208287.641
+ 20.500 23.000
+ -15654688.163 6 -12198453.659 6 21689037.589 21689035.849 21689036.612
+ 39.900 36.500
+ -23033294.740 7 -17948018.299 7 20197016.998 20197015.234 20197015.915
+ 46.100 45.600
+ -15900493.267 7 -12389991.361 7 20666331.043 20666328.083 20666330.100
+ 44.900 46.200
+ -24118384.306 7 -18793538.370 7 20315403.068 20315399.799 20315401.952
+ 44.000 44.000
+ -10439033.046 6 -8134309.148 5 22736397.725 22736393.810 22736397.179
+ 37.700 34.500
+ -13969447.927 6 -10885273.935 5 21823972.516 21823970.917 21823972.071
+ 40.900 34.800
+ -6772660.724 5 -5277387.180 4 23028313.185 23028312.012 23028312.542
+ 33.500 29.900
+ 06 1 2 3 15 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -2005722.012 3 -1562898.478 3 24209460.736 24209459.018 24209459.585
+ 23.000 21.100
+ -15739821.980 6 -12264791.687 6 21672836.600 21672835.403 21672835.999
+ 40.100 36.100
+ -23057899.729 7 -17967191.015 7 20192334.739 20192333.127 20192333.738
+ 45.900 45.700
+ -15933337.066 7 -12415583.930 7 20660081.073 20660078.096 20660080.128
+ 45.000 46.100
+ -24083139.933 7 -18766075.223 7 20322109.850 20322106.674 20322108.802
+ 44.100 44.000
+ -10516413.523 6 -8194605.603 5 22721673.033 22721668.749 22721672.222
+ 37.100 34.300
+ -13876375.695 6 -10812750.130 5 21841683.695 21841681.902 21841683.223
+ 40.800 34.900
+ -6680762.035 5 -5205777.804 4 23045801.708 23045799.355 23045800.935
+ 33.900 29.500
+ 06 1 2 3 16 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1999032.981 3 -1557686.237 3 24210733.400 24210731.629 24210732.197
+ 23.800 19.900
+ -15824493.671 6 -12330769.598 6 21656724.851 21656722.953 21656723.689
+ 40.500 36.300
+ -23081915.115 7 -17985904.301 7 20187764.786 20187763.113 20187763.771
+ 46.100 45.700
+ -15965890.017 7 -12440949.863 7 20653886.437 20653883.505 20653885.548
+ 45.200 46.400
+ -24047318.797 7 -18738162.657 7 20328926.440 20328923.161 20328925.461
+ 44.200 43.800
+ -10593666.309 6 -8254802.562 5 22706972.285 22706967.481 22706971.644
+ 37.800 33.000
+ -13783040.854 6 -10740021.677 5 21859444.574 21859442.877 21859444.264
+ 40.700 34.600
+ -6588743.980 5 -5134075.421 4 23063311.452 23063309.991 23063310.744
+ 33.100 28.100
+ 06 1 2 3 16 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1991810.997 3 -1552058.703 3 24212107.377 24212105.796 24212106.293
+ 23.400 21.100
+ -15908699.923 6 -12396384.852 6 21640700.713 21640698.876 21640699.786
+ 41.200 36.100
+ -23105339.570 7 -18004157.127 7 20183307.302 20183305.659 20183306.178
+ 45.900 45.800
+ -15998151.630 7 -12466088.782 7 20647747.393 20647744.321 20647746.558
+ 45.400 46.300
+ -24010921.424 7 -18709801.076 7 20335852.460 20335849.279 20335851.594
+ 44.300 43.600
+ -10670790.524 6 -8314899.353 5 22692295.832 22692291.330 22692295.205
+ 37.200 33.500
+ -13689446.241 6 -10667090.816 5 21877255.126 21877253.479 21877254.696
+ 40.700 34.400
+ -6496608.057 5 -5062281.232 4 23080844.498 23080842.926 23080843.679
+ 33.200 28.100
+ 06 1 2 3 17 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1984056.842 4 -1546016.498 3 24213583.103 24213581.675 24213582.300
+ 24.200 23.400
+ -15992437.685 6 -12461635.043 5 21624765.410 21624764.168 21624764.638
+ 41.200 35.900
+ -23128171.596 7 -18021948.313 7 20178962.416 20178960.923 20178961.340
+ 45.900 45.800
+ -16030121.020 7 -12490999.994 7 20641663.864 20641660.738 20641662.960
+ 45.100 46.400
+ -23973948.485 7 -18680990.998 7 20342888.392 20342885.066 20342887.256
+ 44.400 43.600
+ -10747785.309 6 -8374895.280 5 22677644.209 22677639.889 22677643.475
+ 37.800 33.500
+ -13595594.336 6 -10593959.469 5 21895114.627 21895112.769 21895114.190
+ 40.600 34.500
+ -6404356.357 5 -4990396.774 4 23098400.035 23098397.423 23098399.087
+ 33.200 27.600
+ 06 1 2 3 17 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1975771.358 4 -1539560.289 3 24215159.757 24215158.196 24215159.034
+ 24.900 23.000
+ -16075704.107 6 -12526517.946 6 21608920.566 21608918.876 21608919.657
+ 41.400 36.000
+ -23150409.722 7 -18039276.722 7 20174730.872 20174729.143 20174729.746
+ 46.100 45.800
+ -16061797.229 7 -12515682.753 7 20635635.870 20635632.979 20635635.009
+ 44.900 46.500
+ -23936400.655 7 -18651732.954 7 20350033.400 20350030.197 20350032.397
+ 44.300 43.500
+ -10824650.045 6 -8434789.878 5 22663017.163 22663012.842 22663016.642
+ 38.400 33.900
+ -13501487.713 6 -10520629.633 5 21913022.239 21913020.690 21913021.866
+ 40.500 34.100
+ -6311990.616 5 -4918423.466 4 23115976.983 23115974.262 23115975.857
+ 32.700 27.100
+ 06 1 2 3 18 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1966955.190 3 -1532690.582 3 24216837.628 24216835.158 24216836.484
+ 23.800 19.300
+ -16158495.823 6 -12591030.951 6 21593165.245 21593164.125 21593164.958
+ 41.800 36.000
+ -23172052.826 7 -18056141.477 7 20170612.470 20170610.598 20170611.370
+ 46.100 45.800
+ -16093179.314 7 -12540136.324 7 20629664.004 20629661.124 20629663.213
+ 44.900 46.500
+ -23898278.570 7 -18622027.437 7 20357287.752 20357284.543 20357286.874
+ 44.600 43.500
+ -10901383.847 6 -8494582.447 5 22648415.237 22648411.243 22648414.713
+ 38.900 34.700
+ -13407129.039 6 -10447103.404 5 21930978.153 21930976.721 21930977.774
+ 40.600 34.500
+ -6219512.588 5 -4846362.673 4 23133574.166 23133572.767 23133573.456
+ 33.100 28.400
+ 06 1 2 3 18 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1957609.182 4 -1525407.968 3 24218616.288 24218614.521 24218615.299
+ 24.200 23.400
+ -16240809.720 6 -12655171.635 6 21577502.272 21577500.372 21577501.353
+ 41.900 36.300
+ -23193099.366 7 -18072541.380 7 20166607.437 20166605.555 20166606.353
+ 46.000 45.700
+ -16124266.702 7 -12564360.263 7 20623748.316 20623745.332 20623747.488
+ 44.800 46.500
+ -23859583.096 7 -18591875.128 7 20364651.436 20364648.021 20364650.523
+ 44.800 43.300
+ -10977985.979 6 -8554272.416 5 22633838.377 22633834.316 22633837.819
+ 38.600 34.900
+ -13312520.781 6 -10373382.680 5 21948981.488 21948980.009 21948981.065
+ 40.000 34.100
+ -6126924.090 5 -4774215.812 4 23151192.724 23151191.630 23151192.079
+ 32.400 28.800
+ 06 1 2 3 19 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1947734.179 3 -1517713.185 3 24220495.118 24220493.848 24220494.319
+ 23.000 23.400
+ -16322643.070 7 -12718937.875 6 21561929.336 21561928.002 21561928.766
+ 42.200 36.700
+ -23213548.011 7 -18088475.386 7 20162716.101 20162714.323 20162715.011
+ 46.100 45.800
+ -16155058.460 7 -12588353.840 7 20617888.878 20617885.938 20617888.013
+ 44.900 46.700
+ -23820314.782 7 -18561276.442 7 20372124.077 20372120.583 20372123.000
+ 44.800 43.200
+ -11054455.508 6 -8613859.044 5 22619286.827 22619282.750 22619286.178
+ 38.600 35.100
+ -13217665.661 6 -10299469.601 5 21967032.167 21967030.496 21967031.613
+ 39.700 34.300
+ -6034226.861 5 -4701984.198 4 23168832.507 23168831.335 23168832.286
+ 33.200 28.400
+ 06 1 2 3 19 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1937331.372 4 -1509607.071 3 24222474.941 24222473.204 24222474.116
+ 24.200 23.000
+ -16403992.452 7 -12782326.994 6 21546449.402 21546447.701 21546448.536
+ 42.100 36.500
+ -23233397.424 7 -18103942.459 7 20158938.753 20158937.108 20158937.695
+ 46.100 45.800
+ -16185553.646 7 -12612116.319 7 20612085.838 20612082.909 20612084.971
+ 44.800 46.800
+ -23780474.441 7 -18530232.028 7 20379705.173 20379701.928 20379704.306
+ 44.900 43.100
+ -11130791.735 6 -8673341.805 5 22604760.226 22604756.175 22604759.633
+ 38.600 35.300
+ -13122566.093 6 -10225366.061 5 21985129.067 21985127.051 21985128.341
+ 39.400 33.200
+ -5941422.674 5 -4629669.256 4 23186493.383 23186491.222 23186492.565
+ 32.400 28.600
+ 06 1 2 3 20 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1926401.491 4 -1501090.284 3 24224554.753 24224552.658 24224553.830
+ 24.600 21.100
+ -16484855.230 6 -12845336.935 6 21531061.744 21531059.963 21531060.850
+ 41.900 36.600
+ -23252646.371 7 -18118941.639 7 20155276.100 20155274.205 20155274.997
+ 46.100 46.000
+ -16215751.667 7 -12635647.244 7 20606339.421 20606336.320 20606338.541
+ 44.800 46.800
+ -23740062.912 7 -18498742.534 7 20387395.547 20387391.994 20387394.500
+ 44.900 43.100
+ -11206993.894 6 -8732720.114 5 22590259.650 22590255.211 22590259.063
+ 38.900 34.000
+ -13027224.983 6 -10151074.289 5 22003271.845 22003270.225 22003271.363
+ 39.700 33.800
+ -5848513.289 5 -4557272.327 4 23204172.779 23204171.194 23204172.012
+ 31.600 28.100
+ 06 1 2 3 20 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1914945.394 3 -1492163.481 3 24226734.738 24226733.250 24226733.678
+ 22.100 21.100
+ -16565227.836 7 -12907964.934 6 21515767.075 21515765.599 21515766.503
+ 42.300 37.100
+ -23271293.607 7 -18133471.952 7 20151727.553 20151725.660 20151726.460
+ 46.100 45.900
+ -16245651.522 7 -12658945.831 7 20600649.658 20600646.643 20600648.816
+ 44.800 46.900
+ -23699081.255 7 -18466808.776 7 20395194.402 20395190.564 20395193.113
+ 44.800 43.100
+ -11283061.057 6 -8791993.213 5 22575784.447 22575780.375 22575783.817
+ 39.000 34.600
+ -12931644.604 6 -10076596.069 5 22021459.933 22021458.281 22021459.281
+ 39.100 33.500
+ -5755500.635 5 -4484794.938 4 23221872.736 23221870.602 23221872.022
+ 31.500 26.500
+ 06 1 2 3 21 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1902963.977 3 -1482827.311 3 24229014.836 24229012.923 24229013.835
+ 21.600 20.500
+ -16645107.219 7 -12970208.595 6 21500567.076 21500565.178 21500566.040
+ 42.500 37.200
+ -23289337.900 7 -18147532.438 7 20148293.412 20148291.997 20148292.440
+ 45.900 46.000
+ -16275252.654 7 -12682011.647 7 20595016.706 20595013.800 20595015.838
+ 44.600 47.000
+ -23657530.069 7 -18434431.231 7 20403100.925 20403097.501 20403099.874
+ 44.900 42.900
+ -11358992.524 6 -8851160.595 5 22561334.919 22561330.758 22561334.440
+ 38.600 34.100
+ -12835827.585 6 -10001933.458 5 22039693.405 22039691.882 22039692.798
+ 39.300 33.500
+ -5662386.339 5 -4412238.359 4 23239592.366 23239589.944 23239591.396
+ 32.300 27.400
+ 06 1 2 3 21 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1890458.282 3 -1473082.615 4 24231394.792 24231393.376 24231393.498
+ 22.100 24.200
+ -16724490.829 7 -13032065.935 6 21485460.652 21485458.887 21485459.787
+ 42.200 37.600
+ -23306777.989 7 -18161122.118 7 20144974.812 20144973.325 20144973.819
+ 46.000 46.100
+ -16304553.944 7 -12704843.819 7 20589440.850 20589437.788 20589439.921
+ 44.600 46.800
+ -23615410.190 7 -18401610.557 7 20411115.804 20411112.668 20411115.002
+ 44.900 42.700
+ -11434787.463 6 -8910221.571 5 22546911.594 22546907.637 22546911.069
+ 38.100 34.400
+ -12739776.471 6 -9927088.436 5 22057970.988 22057969.586 22057970.688
+ 39.400 33.200
+ -5569172.190 5 -4339603.944 4 23257330.303 23257328.046 23257329.627
+ 32.100 27.600
+ 06 1 2 3 22 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1877429.166 3 -1462930.061 3 24233873.790 24233872.032 24233872.790
+ 22.100 22.100
+ -16803375.243 7 -13093534.293 6 21470449.531 21470447.552 21470448.634
+ 42.400 37.600
+ -23323612.789 7 -18174240.140 7 20141771.604 20141769.630 20141770.483
+ 45.900 46.100
+ -16333554.611 7 -12727441.738 7 20583922.340 20583919.158 20583921.362
+ 44.200 46.800
+ -23572722.567 7 -18368347.477 7 20419239.504 20419235.836 20419238.291
+ 44.700 42.700
+ -11510445.067 6 -8969175.544 5 22532514.670 22532510.375 22532514.030
+ 38.700 34.700
+ -12643493.801 6 -9852062.982 5 22076293.308 22076291.605 22076292.727
+ 39.400 32.800
+ -5475859.840 5 -4266893.039 4 23275086.389 23275084.988 23275085.955
+ 32.700 27.400
+ 06 1 2 3 22 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1863877.905 3 -1452370.656 3 24236453.030 24236450.882 24236451.948
+ 23.400 23.000
+ -16881757.456 7 -13154611.321 6 21455533.853 21455532.030 21455532.878
+ 42.400 37.700
+ -23339840.944 7 -18186885.455 7 20138683.253 20138681.534 20138682.220
+ 45.900 45.900
+ -16362253.766 7 -12749804.713 7 20578461.020 20578458.016 20578460.117
+ 44.400 47.100
+ -23529468.278 7 -18334642.839 7 20427470.513 20427466.821 20427469.144
+ 44.600 42.500
+ -11585964.555 6 -9028021.886 5 22518143.752 22518139.684 22518143.142
+ 39.100 35.300
+ -12546982.122 6 -9776859.076 5 22094658.507 22094657.080 22094658.058
+ 38.900 32.700
+ -5382451.007 5 -4194106.930 4 23292861.641 23292860.092 23292861.026
+ 31.800 27.400
+ 06 1 2 3 23 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1849805.476 3 -1441405.113 3 24239130.172 24239128.776 24239129.410
+ 22.600 22.600
+ -16959635.124 7 -13215295.204 6 21440713.873 21440712.533 21440713.247
+ 42.800 38.100
+ -23355461.278 7 -18199057.143 7 20135710.886 20135709.098 20135709.777
+ 45.800 45.900
+ -16390650.764 7 -12771932.242 7 20573057.089 20573054.168 20573056.232
+ 44.400 47.000
+ -23485647.651 7 -18300496.904 7 20435808.688 20435805.671 20435807.928
+ 44.800 42.400
+ -11661345.130 6 -9086759.984 5 22503799.415 22503795.204 22503799.000
+ 40.200 35.600
+ -12450243.850 6 -9701478.604 5 22113067.343 22113065.895 22113066.955
+ 38.900 33.400
+ -5288947.524 5 -4121247.081 4 23310654.447 23310653.221 23310654.205
+ 32.400 27.100
+ 06 1 2 3 23 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1835212.811 3 -1430034.224 4 24241907.763 24241906.188 24241906.557
+ 23.000 24.900
+ -17037004.543 7 -13275583.047 6 21425991.302 21425989.460 21425990.355
+ 43.100 37.700
+ -23370472.705 7 -18210754.355 7 20132854.256 20132852.524 20132853.181
+ 45.600 45.900
+ -16418744.555 7 -12793823.507 7 20567711.204 20567707.999 20567710.276
+ 44.400 47.000
+ -23441262.241 7 -18265910.882 7 20444255.040 20444252.036 20444254.203
+ 44.900 42.600
+ -11736585.654 6 -9145388.962 5 22489481.584 22489477.173 22489481.021
+ 39.500 35.300
+ -12353281.620 6 -9625923.629 5 22131518.946 22131517.324 22131518.340
+ 38.800 33.200
+ -5195351.015 5 -4048314.761 4 23328465.589 23328463.569 23328464.636
+ 30.400 25.600
+ 06 1 2 3 24 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1820101.093 4 -1418258.880 3 24244783.510 24244781.608 24244782.407
+ 24.600 23.800
+ -17113863.130 7 -13335472.839 6 21411365.247 21411363.680 21411364.603
+ 42.900 37.400
+ -23384874.347 7 -18221976.416 7 20130113.737 20130111.976 20130112.637
+ 45.700 45.900
+ -16446534.301 7 -12815477.856 7 20562422.879 20562419.898 20562421.913
+ 44.200 47.000
+ -23396312.813 7 -18230885.359 7 20452809.370 20452805.579 20452808.012
+ 45.100 42.500
+ -11811685.462 6 -9203908.287 5 22475190.464 22475186.229 22475189.878
+ 39.700 35.100
+ -12256097.935 6 -9550196.087 5 22150012.194 22150010.508 22150011.690
+ 38.600 32.700
+ -5101663.112 5 -3975311.191 4 23346294.187 23346291.929 23346293.394
+ 31.300 25.300
+ 06 1 2 3 24 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1804471.293 4 -1406079.784 4 24247757.109 24247756.071 24247756.396
+ 24.200 24.900
+ -17190207.680 7 -13394962.080 6 21396838.042 21396835.865 21396836.829
+ 43.000 37.600
+ -23398665.013 7 -18232722.390 7 20127489.344 20127487.689 20127488.294
+ 45.700 45.900
+ -16474019.494 7 -12836894.887 7 20557192.468 20557189.659 20557191.571
+ 43.800 47.100
+ -23350800.174 7 -18195420.965 7 20461470.077 20461466.283 20461468.880
+ 45.100 42.300
+ -11886643.722 6 -9262317.318 5 22460927.274 22460922.441 22460926.341
+ 40.000 35.800
+ -12158695.209 6 -9474297.858 5 22168547.066 22168545.675 22168546.701
+ 38.200 32.300
+ -5007885.616 4 -3902237.819 4 23364139.171 23364137.148 23364138.314
+ 29.500 25.300
+ 06 1 2 3 25 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1788324.703 3 -1393498.050 3 24250829.918 24250828.485 24250828.866
+ 23.000 23.800
+ -17266035.622 7 -13454048.776 6 21382407.740 21382406.212 21382407.178
+ 43.600 37.600
+ -23411843.531 7 -18242991.364 7 20124981.600 20124979.881 20124980.560
+ 45.900 45.700
+ -16501198.959 7 -12858073.689 7 20552020.478 20552017.535 20552019.562
+ 44.100 47.100
+ -23304725.325 7 -18159518.491 7 20470237.145 20470234.041 20470236.426
+ 45.300 42.300
+ -11961459.797 6 -9320615.539 6 22446689.695 22446685.378 22446688.967
+ 39.700 36.200
+ -12061076.163 6 -9398231.070 5 22187123.877 22187121.942 22187123.254
+ 38.600 32.100
+ -4914020.298 5 -3829096.011 4 23382001.164 23381999.421 23382000.644
+ 31.500 26.800
+ 06 1 2 3 25 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1771662.362 4 -1380514.402 3 24254000.511 24253999.108 24253999.397
+ 24.200 22.100
+ -17341343.811 7 -13512730.468 6 21368077.211 21368075.635 21368076.461
+ 43.500 37.800
+ -23424409.092 7 -18252782.710 7 20122590.512 20122588.658 20122589.452
+ 45.800 45.600
+ -16528071.779 7 -12879013.548 7 20546906.747 20546903.784 20546905.827
+ 44.000 47.200
+ -23258089.496 7 -18123178.899 7 20479111.670 20479108.634 20479110.859
+ 45.100 42.200
+ -12036132.624 6 -9378802.150 6 22432479.464 22432475.615 22432478.943
+ 40.200 36.200
+ -11963243.137 6 -9321997.546 5 22205741.086 22205739.044 22205740.345
+ 38.300 32.300
+ -4820068.561 5 -3755886.879 4 23399879.503 23399877.573 23399878.794
+ 31.000 26.200
+ 06 1 2 3 26 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1754485.518 4 -1367129.863 3 24257269.949 24257267.662 24257268.932
+ 24.600 22.600
+ -17416129.528 7 -13571005.032 6 21353846.299 21353844.122 21353845.233
+ 43.500 37.200
+ -23436360.502 7 -18262095.497 7 20120316.442 20120314.457 20120315.284
+ 45.700 45.800
+ -16554637.072 7 -12899713.769 7 20541851.605 20541848.656 20541850.629
+ 43.800 47.300
+ -23210893.932 7 -18086403.144 7 20488093.429 20488089.705 20488092.118
+ 45.200 42.300
+ -12110661.285 6 -9436876.428 5 22418297.431 22418292.993 22418296.731
+ 39.800 35.800
+ -11865198.594 6 -9245599.209 5 22224397.701 22224396.313 22224397.213
+ 37.700 32.600
+ -4726032.373 5 -3682611.929 4 23417774.665 23417772.646 23417773.853
+ 30.600 27.600
+ 06 1 2 3 26 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1736795.420 4 -1353345.377 4 24260635.718 24260634.072 24260634.796
+ 24.900 24.200
+ -17490389.925 7 -13628870.265 6 21339714.493 21339712.921 21339713.920
+ 44.100 37.400
+ -23447696.700 7 -18270928.898 7 20118158.935 20118157.324 20118157.868
+ 45.600 45.700
+ -16580894.368 7 -12920174.004 7 20536854.841 20536851.954 20536853.992
+ 43.900 47.200
+ -23163139.436 7 -18049191.849 7 20497180.717 20497176.986 20497179.357
+ 44.900 42.000
+ -12185045.052 6 -9494837.795 6 22404142.375 22404138.406 22404141.937
+ 40.000 36.100
+ -11766944.961 6 -9169037.947 5 22243095.258 22243093.440 22243094.648
+ 37.900 32.700
+ -4631913.281 5 -3609272.383 4 23435684.647 23435682.403 23435683.907
+ 30.800 25.600
+ 06 1 2 3 27 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1718592.830 4 -1339161.567 3 24264099.533 24264097.665 24264098.507
+ 25.300 22.100
+ -17564122.093 7 -13686323.898 6 21325683.657 21325682.296 21325683.152
+ 44.100 37.500
+ -23458416.721 7 -18279282.158 7 20116119.034 20116117.312 20116117.915
+ 45.500 45.800
+ -16606842.474 7 -12940393.303 7 20531917.017 20531914.182 20531916.141
+ 43.600 47.200
+ -23114826.948 7 -18011545.764 6 20506373.464 20506370.581 20506372.731
+ 45.100 41.900
+ -12259283.002 6 -9552685.546 6 22390015.348 22390011.547 22390014.809
+ 40.100 36.400
+ -11668484.717 6 -9092315.680 5 22261831.479 22261829.654 22261830.798
+ 38.000 32.300
+ -4537712.809 5 -3535869.430 4 23453610.001 23453608.583 23453609.390
+ 30.600 25.900
+ 06 1 2 3 27 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1699879.263 3 -1324579.537 4 24267660.333 24267659.286 24267659.529
+ 23.400 24.600
+ -17637323.026 7 -13743363.567 6 21311754.871 21311752.448 21311753.662
+ 44.000 37.200
+ -23468519.647 7 -18287154.567 7 20114196.499 20114194.672 20114195.418
+ 45.300 45.600
+ -16632480.971 7 -12960371.352 7 20527038.312 20527035.416 20527037.435
+ 43.700 47.400
+ -23065957.788 7 -17973465.906 7 20515673.042 20515670.157 20515672.327
+ 45.300 42.000
+ -12333374.142 6 -9610418.896 5 22375916.394 22375912.215 22375915.719
+ 39.700 35.900
+ -11569820.277 6 -9015434.304 5 22280606.679 22280604.900 22280606.185
+ 37.900 32.300
+ -4443432.755 5 -3462404.454 4 23471550.431 23471549.654 23471550.040
+ 30.100 25.900
+ 06 1 2 3 28 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1680655.971 4 -1309600.390 3 24271319.013 24271317.048 24271318.068
+ 26.800 23.000
+ -17709989.972 7 -13799987.144 6 21297926.167 21297924.388 21297925.458
+ 44.200 37.400
+ -23478004.510 7 -18294545.370 7 20112391.428 20112389.750 20112390.327
+ 45.200 45.500
+ -16657808.783 7 -12980107.308 7 20522218.593 20522215.753 20522217.671
+ 43.600 47.600
+ -23016533.233 7 -17934953.276 6 20525078.374 20525075.208 20525077.452
+ 45.100 41.500
+ -12407317.791 6 -9668037.318 5 22361845.354 22361841.188 22361844.740
+ 39.800 35.800
+ -11470954.215 6 -8938395.817 5 22299420.770 22299418.568 22299420.015
+ 37.600 32.300
+ -4349074.775 5 -3388878.766 3 23489506.737 23489504.791 23489505.991
+ 30.200 23.800
+ 06 1 2 3 28 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1660924.269 4 -1294225.040 4 24275073.864 24275072.109 24275072.634
+ 25.300 25.900
+ -17782119.996 7 -13856192.350 6 21284199.818 21284198.584 21284199.423
+ 44.500 37.500
+ -23486870.515 7 -18301453.941 7 20110704.374 20110702.529 20110703.302
+ 45.500 45.500
+ -16682825.253 7 -12999600.659 7 20517458.137 20517455.248 20517457.223
+ 43.400 47.500
+ -22966554.157 7 -17896008.546 6 20534589.481 20534585.863 20534588.276
+ 45.100 41.500
+ -12481112.928 6 -9725540.017 6 22347802.757 22347798.624 22347802.014
+ 39.900 36.500
+ -11371888.839 6 -8861202.016 5 22318271.923 22318270.098 22318271.430
+ 38.100 32.400
+ -4254640.342 5 -3315293.475 3 23507476.824 23507474.544 23507476.072
+ 30.800 23.000
+ 06 1 2 3 29 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1640685.550 4 -1278454.609 4 24278924.697 24278923.270 24278924.012
+ 25.300 24.600
+ -17853710.665 7 -13911977.278 6 21270577.062 21270575.184 21270576.131
+ 44.300 37.300
+ -23495116.620 7 -18307879.481 7 20109135.275 20109133.382 20109134.264
+ 45.600 45.400
+ -16707528.955 7 -13018850.296 7 20512757.289 20512754.323 20512756.275
+ 43.300 47.700
+ -22916021.717 7 -17856632.623 6 20544205.490 20544201.832 20544204.331
+ 45.300 41.300
+ -12554758.762 6 -9782926.380 6 22333788.334 22333784.168 22333787.634
+ 40.200 36.300
+ -11272626.589 6 -8783854.825 5 22337160.381 22337159.167 22337159.959
+ 37.200 32.000
+ -4160131.257 5 -3241650.023 3 23525461.659 23525459.504 23525460.991
+ 31.100 23.400
+ 06 1 2 3 29 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1619941.242 4 -1262290.197 3 24282872.058 24282870.733 24282871.389
+ 26.500 23.000
+ -17924759.164 7 -13967339.731 6 21257056.894 21257054.999 21257056.036
+ 44.300 37.300
+ -23502741.951 7 -18313821.297 7 20107684.422 20107682.377 20107683.320
+ 45.500 45.600
+ -16731919.364 7 -13037855.809 7 20508115.997 20508113.042 20508114.963
+ 43.400 47.800
+ -22864937.263 7 -17816826.564 6 20553926.153 20553922.940 20553925.142
+ 44.800 41.400
+ -12628254.443 6 -9840195.741 6 22319802.562 22319798.351 22319801.969
+ 40.600 36.000
+ -11173169.981 6 -8706356.167 5 22356086.866 22356084.949 22356086.234
+ 37.500 31.300
+ -4065549.114 5 -3167949.656 4 23543459.977 23543458.205 23543459.209
+ 31.000 25.900
+ 06 1 2 3 30 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1598692.227 4 -1245732.555 3 24286916.047 24286914.318 24286915.293
+ 27.400 23.000
+ -17995262.581 7 -14022277.447 6 21243640.963 21243638.686 21243639.950
+ 44.600 37.400
+ -23509745.780 7 -18319278.825 7 20106351.553 20106349.746 20106350.485
+ 45.500 45.900
+ -16755995.807 7 -13056616.674 7 20503534.265 20503531.347 20503533.378
+ 43.400 47.800
+ -22813302.078 7 -17776591.364 6 20563751.948 20563748.823 20563751.068
+ 45.200 41.000
+ -12701599.064 6 -9897347.389 6 22305845.704 22305841.625 22305845.200
+ 41.300 36.700
+ -11073521.431 6 -8628707.948 5 22375049.096 22375047.464 22375048.716
+ 37.200 31.300
+ -3970895.406 4 -3094193.540 4 23561471.754 23561470.004 23561470.886
+ 28.400 24.600
+ 06 1 2 3 30 30.0000000 0 8G03G09G15G18G21G22G26G29
+ -1576940.214 4 -1228782.933 4 24291055.353 24291054.148 24291054.034
+ 27.100 25.600
+ -18065218.326 7 -14076788.403 6 21230328.712 21230326.589 21230327.725
+ 44.600 37.500
+ -23516127.317 7 -18324251.453 7 20105137.138 20105135.396 20105136.047
+ 45.400 45.800
+ -16779757.401 7 -13075132.200 7 20499012.591 20499009.644 20499011.691
+ 43.300 47.800
+ -22761117.407 7 -17735927.986 6 20573682.552 20573679.267 20573681.636
+ 45.300 41.100
+ -12774791.821 6 -9954380.701 6 22291917.525 22291913.475 22291916.992
+ 41.200 37.200
+ -10973683.253 6 -8550911.969 5 22394047.847 22394046.067 22394047.193
+ 36.900 31.600
+ -3876171.821 5 -3020382.944 4 23579497.381 23579495.137 23579496.592
+ 30.200 24.200
+ 06 1 2 3 31 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1554686.370 4 -1211442.267 4 24295290.067 24295288.490 24295289.120
+ 27.600 24.600
+ -18134623.330 7 -14130870.206 6 21217120.948 21217119.397 21217120.253
+ 44.600 38.400
+ -174726.599 3 -136150.537 1 24679827.400 24679825.557 24679826.451
+ 21.100 11.000
+ -23521885.845 7 -18328738.623 7 20104041.549 20104039.636 20104040.353
+ 45.400 46.000
+ -16803203.227 7 -13093401.675 7 20494550.908 20494548.108 20494550.032
+ 43.200 47.800
+ -22708384.625 7 -17694837.516 6 20583717.478 20583713.998 20583716.405
+ 45.100 41.000
+ -12847831.433 6 -10011294.683 6 22278018.865 22278014.413 22278018.252
+ 41.400 36.900
+ -10873657.863 6 -8472970.110 5 22413082.308 22413080.318 22413081.750
+ 37.600 31.500
+ -3781379.733 4 -2946518.985 3 23597535.645 23597533.111 23597534.764
+ 29.500 22.100
+ 06 1 2 3 31 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1531932.243 4 -1193711.782 3 24299620.257 24299618.304 24299619.313
+ 27.400 22.100
+ -18203475.050 7 -14184520.883 6 21204018.817 21204017.268 21204018.183
+ 44.800 37.800
+ -275359.260 3 -214565.592 2 24660677.911 24660675.769 24660676.916
+ 18.600 16.100
+ -23527020.603 7 -18332739.730 7 20103064.254 20103062.502 20103063.143
+ 45.500 45.800
+ -16826332.642 7 -13111424.595 7 20490149.512 20490146.760 20490148.617
+ 43.000 47.900
+ -22655104.702 7 -17653320.702 6 20593856.201 20593852.874 20593855.184
+ 45.300 41.100
+ -12920716.734 6 -10068088.426 6 22264148.948 22264144.810 22264148.278
+ 40.900 37.100
+ -10773447.585 6 -8394884.193 5 22432150.765 22432149.745 22432150.470
+ 36.600 31.300
+ -3686520.959 4 -2872603.063 4 23615586.522 23615584.448 23615586.121
+ 29.700 24.600
+ 06 1 2 3 32 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1508679.198 4 -1175592.532 3 24304044.621 24304043.146 24304043.704
+ 24.600 22.100
+ -18271770.793 7 -14237738.325 6 21191022.637 21191020.950 21191021.958
+ 44.600 37.800
+ -375865.507 3 -292882.101 2 24641552.064 24641550.269 24641550.704
+ 19.900 17.000
+ -23531530.816 7 -18336254.185 7 20102205.813 20102204.245 20102204.791
+ 45.500 45.900
+ -16849144.923 7 -13129200.400 7 20485808.592 20485805.657 20485807.576
+ 42.900 47.800
+ -22601279.038 7 -17611378.636 6 20604098.700 20604095.518 20604097.888
+ 45.500 40.800
+ -12993447.579 6 -10124761.793 6 22250308.508 22250304.648 22250307.937
+ 40.800 37.200
+ -10673054.895 6 -8316656.122 5 22451255.793 22451253.657 22451255.202
+ 36.900 30.400
+ -3591597.088 4 -2798636.408 3 23633650.188 23633647.646 23633649.397
+ 28.800 23.800
+ 06 1 2 3 32 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1484928.499 4 -1157085.509 3 24308564.434 24308562.946 24308563.711
+ 25.600 20.500
+ -18339507.876 7 -14290520.453 6 21178133.127 21178130.989 21178132.138
+ 44.600 38.100
+ -476244.350 3 -371099.357 2 24622450.480 24622448.221 24622449.502
+ 20.500 16.100
+ -23535415.686 7 -18339281.357 7 20101466.794 20101464.946 20101465.689
+ 45.600 45.800
+ -16871639.013 7 -13146728.261 7 20481527.999 20481525.200 20481527.047
+ 43.000 47.900
+ -22546909.529 7 -17569012.796 6 20614445.029 20614441.850 20614444.043
+ 45.300 41.000
+ -13066023.194 6 -10181314.216 6 22236498.138 22236493.669 22236497.513
+ 41.500 36.600
+ -10572482.144 6 -8238287.749 5 22470393.614 22470391.755 22470393.057
+ 36.000 30.100
+ -3496609.483 4 -2724620.093 4 23651725.116 23651723.906 23651724.612
+ 28.100 24.600
+ 06 1 2 3 33 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1460681.696 4 -1138191.910 2 24313178.529 24313176.324 24313177.494
+ 25.900 17.000
+ -18406683.392 7 -14342864.988 6 21165349.980 21165347.957 21165349.170
+ 44.900 38.400
+ -576494.508 2 -449216.342 2 24603373.813 24603371.440 24603372.657
+ 17.000 17.000
+ -23538674.655 7 -18341820.813 7 20100846.521 20100844.741 20100845.456
+ 45.400 45.700
+ -16893813.745 7 -13164007.271 8 20477308.213 20477305.514 20477307.365
+ 42.900 48.100
+ -22491996.684 7 -17526223.577 6 20624894.864 20624891.438 20624893.605
+ 45.100 40.700
+ -13138442.150 6 -10237744.580 6 22222717.346 22222712.780 22222716.606
+ 41.400 36.500
+ -10471731.566 6 -8159780.810 5 22489566.510 22489564.272 22489565.573
+ 36.000 30.100
+ -3401559.842 4 -2650555.422 4 23669813.442 23669811.576 23669812.609
+ 28.100 25.900
+ 06 1 2 3 33 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1435940.117 3 -1118912.735 3 24317886.664 24317885.254 24317885.705
+ 23.400 20.500
+ -18473295.792 7 -14394770.742 6 21152673.750 21152672.054 21152673.063
+ 44.800 38.400
+ -676614.679 2 -527232.015 3 24584321.411 24584319.140 24584320.339
+ 17.000 19.300
+ -23541307.116 7 -18343872.082 7 20100345.499 20100343.790 20100344.341
+ 45.000 45.700
+ -16915668.011 7 -13181036.569 8 20473149.841 20473146.725 20473148.796
+ 43.100 48.000
+ -22436541.172 7 -17483011.496 6 20635447.490 20635444.189 20635446.456
+ 45.200 40.700
+ -13210703.192 6 -10294051.882 6 22208966.447 22208962.250 22208965.858
+ 41.300 37.200
+ -10370805.682 6 -8081137.254 4 22508771.960 22508769.517 22508771.261
+ 36.200 29.700
+ -3306449.593 4 -2576443.559 4 23687912.106 23687910.285 23687911.233
+ 27.600 26.200
+ 06 1 2 3 34 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1410705.399 3 -1099249.310 3 24322688.858 24322686.819 24322687.671
+ 23.400 19.900
+ -18539341.719 7 -14446235.088 6 21140105.943 21140103.792 21140104.898
+ 44.900 38.600
+ -776603.932 3 -605145.675 2 24565293.509 24565291.336 24565292.536
+ 20.500 16.100
+ -23543312.310 7 -18345434.571 7 20099964.004 20099962.238 20099962.841
+ 45.300 45.700
+ -16937201.167 7 -13197815.651 8 20469052.191 20469049.129 20469051.154
+ 42.900 48.000
+ -22380545.715 7 -17439378.680 6 20646102.920 20646099.764 20646102.014
+ 45.200 40.500
+ -13282805.939 6 -10350235.833 6 22195245.773 22195241.672 22195245.076
+ 41.400 37.500
+ -10269706.741 6 -8002358.863 5 22528009.965 22528008.463 22528009.310
+ 36.000 30.100
+ -3211280.406 4 -2502285.763 4 23706021.568 23706020.252 23706020.706
+ 27.600 24.900
+ 06 1 2 3 34 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1384978.997 4 -1079202.775 2 24327584.409 24327582.249 24327583.232
+ 24.900 16.100
+ -18604818.470 7 -14497255.917 6 21127645.887 21127643.999 21127645.102
+ 45.000 38.600
+ -876461.152 3 -682956.459 3 24546291.760 24546289.835 24546291.112
+ 21.100 18.600
+ -23544689.754 7 -18346507.904 7 20099701.941 20099700.192 20099700.860
+ 45.500 45.800
+ -16958413.089 7 -13214344.416 8 20465015.468 20465012.669 20465014.561
+ 42.900 48.100
+ -22324011.645 7 -17395326.171 6 20656860.569 20656857.910 20656859.876
+ 45.200 40.600
+ -13354749.181 6 -10406295.491 6 22181555.290 22181551.172 22181554.628
+ 41.300 37.500
+ -10168437.105 6 -7923447.470 5 22547280.981 22547279.364 22547280.420
+ 36.000 30.100
+ -3116053.744 4 -2428083.190 4 23724142.997 23724141.161 23724142.002
+ 26.800 24.600
+ 06 1 2 3 35 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1358762.404 4 -1058774.252 3 24332573.058 24332571.693 24332572.268
+ 25.900 18.600
+ -18669723.662 7 -14547831.380 6 21115295.138 21115292.907 21115294.105
+ 45.200 38.900
+ -976185.222 3 -760663.530 2 24527315.014 24527312.840 24527314.297
+ 20.500 17.000
+ -23545438.896 7 -18347091.651 7 20099559.485 20099557.558 20099558.411
+ 45.500 45.800
+ -16979302.778 7 -13230622.098 8 20461040.115 20461037.455 20461039.370
+ 42.900 48.000
+ -22266940.301 7 -17350855.006 6 20667720.808 20667718.221 20667720.245
+ 45.100 40.300
+ -13426531.936 6 -10462230.102 6 22167895.326 22167891.242 22167894.779
+ 41.600 37.400
+ -10066998.970 6 -7844404.772 4 22566584.462 22566582.400 22566583.744
+ 36.000 29.900
+ -3020771.081 4 -2353836.957 4 23742274.743 23742273.102 23742274.002
+ 29.500 24.900
+ 06 1 2 3 35 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1332057.117 4 -1037964.937 3 24337655.031 24337653.003 24337653.989
+ 25.600 18.600
+ -18734054.681 7 -14597959.435 6 21103052.965 21103051.305 21103052.264
+ 45.400 39.200
+ -1075775.052 3 -838265.949 2 24508363.271 24508361.388 24508362.641
+ 23.400 16.100
+ -23545559.026 7 -18347185.262 7 20099536.647 20099534.744 20099535.481
+ 45.500 45.900
+ -16999868.962 7 -13246647.695 8 20457126.707 20457123.805 20457125.838
+ 42.900 48.000
+ -22209332.857 7 -17305966.098 6 20678683.363 20678680.515 20678682.646
+ 45.300 40.200
+ -13498153.575 7 -10518039.163 6 22154266.348 22154262.056 22154265.735
+ 42.000 37.700
+ -9965394.775 5 -7765232.669 4 22585918.801 22585917.221 22585918.180
+ 35.500 29.700
+ -2925434.001 4 -2279548.329 3 23760415.906 23760414.927 23760415.416
+ 28.100 23.800
+ 06 1 2 3 36 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1304864.839 4 -1016776.161 3 24342829.406 24342827.799 24342828.607
+ 24.200 19.900
+ -18797808.950 7 -14647638.073 6 21090920.913 21090919.292 21090920.118
+ 44.900 39.200
+ -1175229.594 3 -915762.954 2 24489438.204 24489435.822 24489437.303
+ 19.900 12.600
+ -23545049.407 7 -18346788.155 7 20099633.493 20099631.711 20099632.373
+ 45.500 45.800
+ -17020111.197 7 -13262420.865 8 20453274.727 20453271.883 20453273.861
+ 42.800 48.200
+ -22151190.816 7 -17260660.624 6 20689747.722 20689744.721 20689746.815
+ 45.500 40.500
+ -13569613.043 6 -10573721.860 6 22140668.058 22140663.682 22140667.628
+ 41.900 37.400
+ -9863626.812 5 -7685932.953 4 22605284.134 22605282.824 22605283.954
+ 35.400 29.900
+ -2830043.972 4 -2205218.454 3 23778568.068 23778566.771 23778567.519
+ 27.400 23.000
+ 06 1 2 3 36 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1277187.286 3 -995209.217 2 24348096.004 24348094.319 24348095.049
+ 23.800 17.800
+ -18860983.911 7 -14696865.299 6 21078899.417 21078897.415 21078898.465
+ 44.900 39.300
+ -1274547.832 2 -993153.768 2 24470538.151 24470536.158 24470536.957
+ 15.100 12.600
+ -23543909.637 7 -18345900.022 7 20099850.397 20099848.588 20099849.269
+ 45.400 45.900
+ -17040028.301 7 -13277940.685 8 20449484.683 20449481.770 20449483.813
+ 43.000 48.200
+ -22092515.638 7 -17214939.721 6 20700913.515 20700910.193 20700912.444
+ 45.500 40.100
+ -13640909.216 6 -10629277.312 6 22127100.756 22127096.768 22127100.154
+ 41.500 38.000
+ -9761697.386 5 -7606507.450 5 22624680.475 22624679.445 22624680.143
+ 35.300 30.200
+ -2734602.475 4 -2130848.454 3 23796730.241 23796728.595 23796729.730
+ 29.000 23.400
+ 06 1 2 3 37 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1249025.847 3 -973265.249 2 24353455.567 24353453.334 24353454.631
+ 23.800 15.100
+ -18923577.434 7 -14745639.459 6 21066988.136 21066986.206 21066987.251
+ 44.700 39.200
+ -1373728.329 3 -1070437.203 1 24451664.876 24451662.813 24451664.295
+ 21.100 11.000
+ -23542139.462 7 -18344520.666 7 20100187.212 20100185.374 20100186.115
+ 45.300 45.700
+ -17059619.713 7 -13293206.717 8 20445756.384 20445753.670 20445755.571
+ 42.800 48.200
+ -22033308.967 7 -17168804.658 6 20712180.353 20712176.919 20712179.160
+ 45.600 40.200
+ -13712041.419 7 -10684705.002 6 22113564.725 22113560.634 22113564.167
+ 42.000 38.100
+ -9659608.743 5 -7526957.847 4 22644108.066 22644106.222 22644107.363
+ 34.800 29.900
+ -2639111.018 4 -2056439.517 3 23814901.933 23814900.100 23814901.163
+ 27.100 23.400
+ 06 1 2 3 37 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1220382.293 4 -950945.598 2 24358905.739 24358903.684 24358904.861
+ 24.900 16.100
+ -18985586.575 7 -14793958.261 6 21055188.010 21055186.220 21055187.227
+ 44.600 39.300
+ -1472770.176 3 -1147612.650 2 24432818.066 24432816.294 24432816.723
+ 19.900 12.600
+ -23539738.394 7 -18342649.707 7 20100644.070 20100642.298 20100642.981
+ 45.300 45.800
+ -17078884.372 7 -13308218.142 8 20442090.492 20442087.742 20442089.522
+ 42.700 48.300
+ -21973572.032 7 -17122256.402 6 20723548.118 20723544.416 20723546.795
+ 45.400 39.900
+ -13783008.322 7 -10740003.879 6 22100060.411 22100056.225 22100059.694
+ 42.400 38.100
+ -9557363.194 5 -7447286.002 4 22663564.739 22663562.997 22663564.065
+ 34.300 29.200
+ -2543570.958 4 -1981992.728 3 23833082.935 23833081.212 23833082.142
+ 27.400 23.400
+ 06 1 2 3 38 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1191258.218 4 -928251.495 2 24364448.362 24364445.606 24364447.189
+ 24.900 15.100
+ -19047009.300 7 -14841820.115 6 21043499.587 21043497.858 21043498.794
+ 44.600 39.300
+ -1571672.372 2 -1224679.294 1 24413997.033 24413995.212 24413996.051
+ 15.100 9.000
+ -23536705.933 7 -18340286.749 7 20101221.251 20101219.478 20101220.169
+ 45.300 45.900
+ -17097821.504 7 -13322974.349 8 20438487.001 20438484.100 20438486.090
+ 42.700 48.300
+ -21913306.796 7 -17075296.485 6 20735015.927 20735012.410 20735014.771
+ 45.300 39.800
+ -13853809.141 6 -10795173.342 6 22086587.007 22086582.990 22086586.507
+ 41.600 37.700
+ -9454962.866 5 -7367493.549 5 22683050.733 22683049.044 22683050.285
+ 35.300 30.100
+ -2447983.876 4 -1907509.306 4 23851272.295 23851270.724 23851271.736
+ 28.100 24.200
+ 06 1 2 3 38 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1161655.223 3 -905184.239 3 24370080.938 24370079.511 24370080.014
+ 23.400 19.900
+ -19107843.280 7 -14889223.212 6 21031923.108 21031921.373 21031922.346
+ 44.300 39.100
+ -1670433.879 3 -1301636.313 1 24395204.058 24395201.470 24395202.909
+ 19.300 11.000
+ -23533041.573 7 -18337431.407 7 20101918.388 20101916.801 20101917.354
+ 45.400 45.900
+ -17116430.289 7 -13337474.703 8 20434945.863 20434942.903 20434944.954
+ 42.600 48.300
+ -21852514.695 7 -17027926.027 6 20746584.229 20746580.817 20746583.110
+ 45.300 39.500
+ -13924442.955 7 -10850212.669 6 22073146.065 22073141.899 22073145.434
+ 42.100 37.900
+ -9352410.127 5 -7287582.339 4 22702565.885 22702564.363 22702565.329
+ 35.100 29.900
+ -2352351.332 4 -1832990.462 3 23869471.286 23869469.159 23869470.592
+ 28.400 23.800
+ 06 1 2 3 39 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1131575.130 4 -881745.227 3 24375805.002 24375803.666 24375804.139
+ 24.600 18.600
+ -19168085.723 7 -14936165.364 6 21020459.463 21020457.635 21020458.525
+ 44.000 39.400
+ -1769053.513 3 -1378482.742 1 24376436.680 24376434.901 24376435.806
+ 19.300 11.000
+ -23528744.979 7 -18334083.411 7 20102735.962 20102734.400 20102734.915
+ 45.400 45.900
+ -17134709.863 7 -13351718.526 8 20431467.193 20431464.460 20431466.330
+ 42.700 48.300
+ -21791197.310 7 -16980146.254 6 20758251.929 20758249.160 20758251.202
+ 45.300 39.400
+ -13994908.806 7 -10905121.119 6 22059736.749 22059732.579 22059736.232
+ 42.400 37.600
+ -9249707.275 5 -7207554.124 4 22722109.880 22722107.911 22722109.386
+ 35.300 29.200
+ -2256674.702 4 -1758437.218 3 23887677.689 23887674.814 23887677.180
+ 28.400 19.300
+ 06 1 2 3 39 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1101019.462 3 -857935.639 3 24381620.158 24381618.447 24381618.896
+ 23.400 20.500
+ -19227734.276 7 -14982644.743 6 21009108.826 21009106.954 21009107.944
+ 44.500 39.500
+ -1867530.042 2 -1455217.652 1 24357696.934 24357695.223 24357696.063
+ 17.000 11.000
+ -23523815.938 7 -18330242.604 7 20103674.231 20103672.383 20103673.116
+ 45.500 45.900
+ -17152659.554 7 -13365705.297 8 20428051.549 20428048.813 20428050.647
+ 42.700 48.300
+ -21729356.121 7 -16931958.331 6 20770019.762 20770017.151 20770019.190
+ 45.300 39.600
+ -14065205.623 7 -10959897.860 6 22046359.719 22046355.500 22046359.144
+ 42.300 38.100
+ -9146856.339 5 -7127410.545 4 22741681.315 22741679.842 22741680.853
+ 35.300 28.400
+ -2160955.352 4 -1683850.704 3 23905891.330 23905890.132 23905890.666
+ 24.200 19.900
+ 06 1 2 3 40 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1069989.977 4 -833756.802 3 24387524.790 24387523.005 24387523.939
+ 26.500 18.600
+ -19286786.704 7 -15028659.607 6 20997871.523 20997869.655 20997870.660
+ 44.500 39.500
+ -1965862.688 2 -1531840.454 2 24338985.306 24338983.256 24338984.710
+ 12.600 12.600
+ -23518254.121 7 -18325908.720 7 20104732.522 20104730.770 20104731.426
+ 45.400 45.800
+ -17170278.128 7 -13379434.053 8 20424698.865 20424696.039 20424697.990
+ 42.700 48.400
+ -21666992.667 7 -16883363.447 6 20781887.297 20781884.589 20781886.736
+ 45.500 39.600
+ -14135332.354 6 -11014542.058 6 22033015.122 22033011.006 22033014.510
+ 41.900 38.400
+ -9043859.640 5 -7047153.380 4 22761280.910 22761279.577 22761280.382
+ 34.300 29.200
+ -2065194.758 4 -1609232.092 3 23924114.525 23924112.800 23924114.028
+ 27.400 21.100
+ 06 1 2 3 40 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1038488.424 4 -809210.099 3 24393518.699 24393517.696 24393517.962
+ 25.300 18.600
+ -19345240.385 7 -15074207.920 6 20986748.041 20986746.308 20986747.285
+ 45.000 39.700
+ -2064050.345 2 -1608350.272 9 24320300.395 24320298.245 24320299.638
+ 13.900 -3.000
+ -23512059.071 7 -18321081.410 7 20105911.174 20105909.499 20105910.081
+ 45.200 45.600
+ -17187564.940 7 -13392904.295 8 20421409.305 20421406.509 20421408.461
+ 42.700 48.500
+ -21604108.934 7 -16834363.153 6 20793853.844 20793850.920 20793853.093
+ 45.500 39.300
+ -14205288.069 7 -11069052.998 6 22019703.207 22019698.869 22019702.462
+ 42.200 38.100
+ -8940719.466 5 -6966784.419 4 22780908.160 22780906.273 22780907.548
+ 34.600 28.800
+ -1969394.375 4 -1534582.438 3 23942345.143 23942342.963 23942344.277
+ 27.400 22.100
+ 06 1 2 3 41 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1006516.387 4 -784296.852 3 24399603.419 24399601.491 24399602.392
+ 24.900 19.300
+ -19403093.097 7 -15119287.948 6 20975739.177 20975737.258 20975738.320
+ 44.800 39.800
+ -2162091.892 2 -1684746.255 1 24301643.650 24301642.575 24301643.273
+ 17.800 6.500
+ -23505230.564 7 -18315760.499 7 20107210.759 20107208.836 20107209.657
+ 45.300 45.600
+ -17204519.312 7 -13406115.493 8 20418183.051 20418180.220 20418182.110
+ 42.300 48.500
+ -21540706.388 7 -16784958.582 6 20805919.641 20805916.010 20805918.461
+ 45.400 39.000
+ -14275071.734 7 -11123429.873 6 22006423.836 22006419.552 22006423.164
+ 42.600 38.400
+ -8837437.998 5 -6886305.357 4 22800561.242 22800559.936 22800560.957
+ 33.200 28.600
+ -1873555.390 4 -1459902.702 3 23960581.987 23960580.425 23960581.807
+ 26.500 22.100
+ 06 1 2 3 41 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -974075.874 4 -759018.537 3 24405776.398 24405774.369 24405775.646
+ 25.900 18.600
+ -19460342.572 7 -15163897.917 6 20964845.174 20964843.081 20964844.263
+ 45.300 39.600
+ -2259986.357 2 -1761027.659 9 24283016.170 24283014.183 24283013.932
+ 13.900 -3.000
+ -23497768.356 7 -18309945.792 7 20108630.969 20108628.905 20108629.838
+ 45.400 45.500
+ -17221140.716 7 -13419067.237 8 20415020.184 20415017.216 20415019.218
+ 42.400 48.500
+ -21476786.518 7 -16735150.899 6 20818083.260 20818079.588 20818082.101
+ 45.400 38.900
+ -14344682.454 7 -11177671.992 6 21993177.351 21993173.009 21993176.672
+ 42.900 38.600
+ -8734017.397 5 -6805717.880 4 22820241.887 22820240.769 22820241.631
+ 34.100 29.000
+ -1777679.426 4 -1385194.165 3 23978827.291 23978825.144 23978826.565
+ 26.800 22.100
+ 06 1 2 3 42 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -941168.704 4 -733376.584 3 24412038.964 24412037.216 24412038.013
+ 24.200 21.100
+ -19516986.843 7 -15208036.297 6 20954066.214 20954064.020 20954065.329
+ 45.700 39.700
+ -2357732.358 1 -1837193.327 9 24264414.629 24264412.529 24264413.261
+ 9.000 -3.000
+ -23489672.126 7 -18303637.046 7 20110171.483 20110169.718 20110170.403
+ 45.300 45.600
+ -17237427.681 7 -13431758.378 8 20411920.846 20411917.887 20411919.916
+ 42.500 48.400
+ -21412351.064 7 -16684941.468 6 20830344.779 20830341.362 20830343.653
+ 45.300 39.000
+ -14414119.017 7 -11231778.395 6 21979963.801 21979959.699 21979963.181
+ 42.900 38.600
+ -8630459.923 5 -6725023.758 4 22839948.307 22839946.584 22839947.861
+ 33.600 27.400
+ -1681767.952 4 -1310457.963 4 23997079.138 23997077.191 23997078.542
+ 27.400 24.600
+ 06 1 2 3 42 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -907796.434 4 -707372.221 3 24418388.923 24418387.518 24418388.087
+ 24.600 22.600
+ -19573023.712 7 -15251701.380 6 20943402.711 20943400.517 20943401.753
+ 45.500 39.500
+ -2455329.021 2 -1913242.646 1 24245843.051 24245841.205 24245841.908
+ 17.800 6.500
+ -23480941.689 7 -18296834.111 7 20111832.719 20111831.069 20111831.646
+ 45.200 45.700
+ -17253379.797 7 -13444188.599 8 20408885.330 20408882.364 20408884.321
+ 42.400 48.400
+ -21347402.093 7 -16634331.895 6 20842704.131 20842700.723 20842703.009
+ 45.100 39.000
+ -14483380.590 7 -11285748.442 6 21966783.726 21966779.456 21966783.251
+ 43.100 38.400
+ -8526767.680 5 -6644224.593 4 22859680.300 22859678.632 22859679.704
+ 32.800 27.600
+ -1585822.212 4 -1235695.041 3 24015336.936 24015334.656 24015336.285
+ 26.500 22.600
+ 06 1 2 3 43 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -873960.953 3 -681006.940 3 24424827.850 24424826.156 24424826.833
+ 23.000 22.600
+ -19628450.789 7 -15294891.296 6 20932854.870 20932853.116 20932854.137
+ 45.400 39.700
+ -2552775.783 2 -1989175.154 1 24227298.953 24227297.381 24227298.079
+ 17.000 6.500
+ -23471576.920 7 -18289536.891 7 20113614.821 20113613.069 20113613.760
+ 45.200 45.600
+ -17268995.927 7 -13456357.012 8 20405913.378 20405910.672 20405912.560
+ 42.200 48.300
+ -21281941.164 7 -16583323.390 6 20855161.370 20855157.419 20855160.001
+ 45.100 38.700
+ -14552465.918 7 -11339581.174 6 21953637.378 21953633.004 21953636.672
+ 43.000 38.400
+ -8422942.706 5 -6563322.016 4 22879437.258 22879435.898 22879436.930
+ 33.500 28.100
+ -1489843.691 4 -1160906.610 3 24033600.696 24033598.905 24033600.158
+ 25.600 22.600
+ 06 1 2 3 43 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -839663.955 3 -654282.022 3 24431353.725 24431352.702 24431352.995
+ 21.600 20.500
+ -19683265.705 7 -15337604.205 6 20922424.291 20922422.161 20922423.233
+ 45.600 39.500
+ -2650070.856 2 -2064989.521 24208784.530 24208782.413 24208783.747
+ 15.100 3.000
+ -23461577.733 7 -18281745.316 7 20115517.623 20115515.957 20115516.524
+ 45.300 45.600
+ -17284275.192 7 -13468262.935 8 20403006.020 20403003.086 20403005.123
+ 42.500 48.400
+ -21215969.881 7 -16531917.209 6 20867715.299 20867711.469 20867713.799
+ 44.800 38.900
+ -14621374.148 7 -11393275.885 6 21940524.179 21940520.366 21940523.759
+ 43.100 38.600
+ -8318987.410 5 -6482317.903 4 22899219.573 22899218.065 22899219.005
+ 33.400 27.400
+ -1393833.626 3 -1086093.573 3 24051870.960 24051869.004 24051869.985
+ 23.800 22.100
+ 06 1 2 3 44 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -804907.478 3 -627199.055 3 24437968.783 24437966.492 24437967.499
+ 22.100 18.600
+ -19737466.303 7 -15379838.421 6 20912109.757 20912108.153 20912109.158
+ 45.500 39.600
+ -2747213.697 2 -2140685.189 24190299.079 24190296.383 24190298.434
+ 15.100 3.000
+ -23450943.861 7 -18273459.187 7 20117541.264 20117539.535 20117540.162
+ 45.300 45.700
+ -17299216.992 7 -13479905.896 8 20400162.706 20400159.775 20400161.780
+ 42.500 48.500
+ -21149490.089 7 -16480114.786 6 20880365.681 20880362.095 20880364.378
+ 45.000 38.400
+ -14690104.083 7 -11446831.680 6 21927445.764 21927441.516 21927445.155
+ 43.500 38.900
+ -8214903.826 5 -6401213.806 4 22919025.926 22919024.528 22919025.342
+ 32.800 27.900
+ -1297793.393 4 -1011257.025 3 24070146.736 24070144.999 24070146.205
+ 28.600 20.500
+ 06 1 2 3 44 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -769693.477 3 -599759.575 3 24444669.567 24444667.078 24444668.205
+ 23.400 19.300
+ -19791050.436 7 -15421592.287 6 20901913.596 20901911.409 20901912.677
+ 45.700 39.500
+ -2844203.185 2 -2216261.373 9 24171842.826 24171840.893 24171841.642
+ 12.600 -3.000
+ -23439675.086 7 -18264678.326 7 20119685.623 20119683.886 20119684.549
+ 45.200 45.600
+ -17313820.799 7 -13491285.484 8 20397383.827 20397380.704 20397382.791
+ 42.300 48.300
+ -21082503.600 7 -16427917.531 6 20893112.721 20893109.231 20893111.562
+ 45.100 38.500
+ -14758655.135 7 -11500248.083 6 21914400.774 21914396.797 21914400.170
+ 43.200 39.300
+ -8110694.115 5 -6320011.456 4 22938855.837 22938854.842 22938855.433
+ 32.600 28.400
+ -1201724.461 4 -936398.112 3 24088428.339 24088426.255 24088427.633
+ 28.400 22.600
+ 06 1 2 3 45 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -734023.624 3 -571964.890 2 24451456.463 24451455.225 24451455.525
+ 22.600 17.800
+ -19844016.199 7 -15462864.303 6 20891834.321 20891832.437 20891833.472
+ 45.600 39.600
+ -2941038.139 1 -2291717.171 9 24153414.672 24153413.444 24153413.866
+ 11.000 -3.000
+ -23427771.606 7 -18255402.889 7 20121950.566 20121948.990 20121949.487
+ 45.000 45.400
+ -17328085.592 7 -13502400.909 8 20394669.082 20394666.198 20394668.295
+ 42.400 48.200
+ -21015012.076 7 -16375326.745 6 20905955.903 20905952.468 20905954.689
+ 44.700 38.200
+ -14827026.003 7 -11553524.072 6 21901390.187 21901386.166 21901389.525
+ 43.600 39.400
+ -8006360.277 5 -6238712.373 4 22958711.006 22958709.212 22958710.418
+ 33.600 28.800
+ -1105628.172 4 -861517.881 3 24106714.373 24106712.835 24106713.725
+ 24.900 22.600
+ 06 1 2 3 45 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -697899.820 3 -543816.471 3 24458331.370 24458329.595 24458330.456
+ 23.800 19.900
+ -19896361.492 7 -15503652.830 6 20881873.258 20881871.355 20881872.413
+ 45.300 39.700
+ -3037717.764 1 -2367051.921 1 24135016.981 24135016.544 24135015.776
+ 11.000 6.500
+ -23415233.364 7 -18245632.832 7 20124336.368 20124334.849 20124335.341
+ 45.100 45.300
+ -17342010.300 7 -13513251.330 8 20392019.333 20392016.468 20392018.456
+ 42.400 48.400
+ -20947017.598 7 -16322344.051 6 20918894.717 20918891.448 20918893.669
+ 44.800 38.400
+ -14895215.654 7 -11606658.856 6 21888414.047 21888409.930 21888413.332
+ 43.100 38.900
+ -7901904.502 5 -6157318.262 4 22978588.060 22978585.999 22978587.501
+ 33.400 27.100
+ -1009505.824 4 -786617.365 3 24125006.223 24125003.999 24125005.178
+ 24.200 22.100
+ 06 1 2 3 46 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -661324.029 3 -515315.886 3 24465291.571 24465289.664 24465290.414
+ 22.600 19.300
+ -19948083.668 7 -15543955.818 6 20872030.799 20872028.865 20872030.024
+ 45.100 39.500
+ -3134241.025 2 0.000 24116650.662 0.000 24116649.744
+ 12.600 0.000
+ -23402060.297 7 -18235368.106 7 20126843.245 20126841.585 20126842.177
+ 44.800 45.000
+ -17355594.380 7 -13523836.325 8 20389434.461 20389431.471 20389433.572
+ 42.100 48.200
+ -20878521.931 7 -16268970.819 6 20931929.368 20931925.685 20931928.097
+ 44.700 38.100
+ -14963222.995 7 -11659651.585 6 21875472.982 21875468.533 21875472.330
+ 43.400 38.600
+ -7797328.871 5 -6075830.754 4 22998487.170 22998486.407 22998487.116
+ 32.000 27.600
+ -913358.670 4 -711697.528 3 24143302.321 24143300.481 24143301.701
+ 26.800 22.100
+ 06 1 2 3 46 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -624298.248 2 -486464.675 3 24472336.975 24472335.526 24472335.775
+ 17.000 20.500
+ -19999181.466 7 -15583772.275 6 20862307.440 20862305.256 20862306.573
+ 45.400 39.800
+ -3230606.873 1 -2517355.057 9 24098312.749 24098310.345 24098311.015
+ 6.500 -3.000
+ -23388252.389 7 -18224608.700 7 20129470.650 20129469.166 20129469.639
+ 45.100 45.300
+ -17368836.676 7 -13534155.000 8 20386914.245 20386911.553 20386913.482
+ 42.600 48.400
+ -20809526.826 7 -16215208.413 6 20945058.241 20945054.970 20945057.171
+ 44.800 37.900
+ -15031046.755 7 -11712501.272 6 21862566.464 21862562.107 21862565.802
+ 43.800 39.000
+ -7692635.551 5 -5994251.572 4 23018409.458 23018409.135 23018409.252
+ 31.600 28.100
+ -817188.155 4 -636759.448 3 24161602.485 24161600.804 24161602.207
+ 25.900 21.600
+ 06 1 2 3 47 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -586824.421 3 -457264.322 3 24479467.674 24479466.672 24479467.074
+ 18.600 19.900
+ -20049652.516 7 -15623100.358 6 20852702.759 20852701.029 20852702.005
+ 45.000 40.100
+ -3326814.281 -2592321.852 9 24080004.197 24080002.959 24080002.701
+ 3.000 -3.000
+ -23373809.803 7 -18213354.737 7 20132219.189 20132217.557 20132218.127
+ 45.100 45.200
+ -17381736.620 7 -13544206.908 8 20384459.688 20384456.836 20384458.785
+ 42.200 48.400
+ -20740034.302 7 -16161058.401 6 20958282.199 20958279.017 20958281.146
+ 44.600 37.700
+ -15098686.272 7 -11765207.387 6 21849695.231 21849690.820 21849694.565
+ 44.000 39.400
+ -7587826.681 5 -5912582.311 4 23038354.742 23038353.297 23038354.265
+ 32.600 27.400
+ -720995.572 4 -561804.221 3 24179907.652 24179905.786 24179906.646
+ 24.600 22.100
+ 06 1 2 3 47 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -548904.677 3 -427716.460 3 24486683.891 24486682.910 24486683.158
+ 21.100 19.900
+ -20099494.661 7 -15661938.385 6 20843218.256 20843216.269 20843217.384
+ 45.200 40.000
+ -3422862.330 2 -2667164.485 9 24061727.008 24061725.297 24061724.841
+ 12.600 -3.000
+ -23358732.715 7 -18201606.363 7 20135088.366 20135086.609 20135087.304
+ 45.300 45.200
+ -17394293.404 7 -13553991.412 8 20382070.184 20382067.332 20382069.311
+ 42.400 48.400
+ -20670046.084 7 -16106522.147 6 20971600.647 20971597.362 20971599.571
+ 44.600 37.900
+ -15166140.198 7 -11817768.885 6 21836859.019 21836854.969 21836858.326
+ 43.700 39.800
+ -7482904.098 5 -5830824.459 4 23058320.750 23058319.893 23058320.381
+ 31.500 27.600
+ -624782.176 4 -486832.731 3 24198216.144 24198214.152 24198215.693
+ 24.600 19.900
+ 06 1 2 3 48 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -510540.841 3 -397822.598 3 24493984.887 24493982.616 24493983.429
+ 21.600 20.500
+ -20148706.243 7 -15700285.062 6 20833853.359 20833851.597 20833852.691
+ 45.300 40.000
+ -3518749.976 1 -2741882.112 9 24043480.867 24043478.906 24043479.611
+ 6.500 -3.000
+ -23343021.051 7 -18189363.511 7 20138078.203 20138076.418 20138077.153
+ 45.300 45.200
+ -17406506.313 7 -13563507.966 8 20379746.191 20379743.264 20379745.315
+ 42.500 48.400
+ -20599564.133 7 -16051601.164 6 20985012.350 20985009.671 20985011.607
+ 44.700 37.700
+ -15233407.620 7 -11870185.040 6 21824058.292 21824054.310 21824057.706
+ 43.800 39.700
+ -7377869.959 5 -5748979.700 4 23078308.602 23078306.921 23078307.911
+ 32.100 28.400
+ -528549.377 4 -411846.140 3 24216528.460 24216527.189 24216527.760
+ 24.200 23.000
+ 06 1 2 3 48 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -471734.910 3 -367584.223 2 24501369.212 24501367.225 24501368.159
+ 22.100 17.000
+ -20197284.853 7 -15738138.519 6 20824609.358 20824607.418 20824608.556
+ 45.400 40.200
+ -3614476.195 1 -2816473.910 9 24025264.477 24025262.516 24025262.412
+ 9.000 -3.000
+ -23326674.983 7 -18176626.317 7 20141188.669 20141186.936 20141187.617
+ 45.300 45.100
+ -17418374.391 7 -13572755.820 8 20377487.942 20377484.870 20377487.011
+ 42.400 48.400
+ -20528590.151 7 -15996296.775 6 20998518.446 20998515.596 20998517.645
+ 44.600 37.700
+ -15300487.515 7 -11922455.087 6 21811293.304 21811289.186 21811292.792
+ 44.000 39.400
+ -7272726.460 5 -5667049.699 4 23098317.114 23098314.295 23098316.496
+ 32.300 25.600
+ -432298.302 4 -336845.325 3 24234844.818 24234843.559 24234844.105
+ 25.600 23.000
+ 06 1 2 3 49 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -432489.017 3 -337002.992 2 24508837.194 24508835.404 24508836.050
+ 22.100 16.100
+ -20245228.955 7 -15775497.554 6 20815485.891 20815484.069 20815485.019
+ 45.100 40.200
+ -3710039.871 1 -2890939.124 9 24007078.597 24007077.364 24007078.299
+ 6.500 -3.000
+ -23309694.537 7 -18163394.805 7 20144420.032 20144418.315 20144418.938
+ 45.200 45.300
+ -17429896.726 7 -13581734.262 8 20375295.153 20375292.211 20375294.194
+ 42.300 48.500
+ -20457126.451 7 -15940610.792 6 21012117.857 21012114.809 21012116.838
+ 44.500 38.000
+ -15367378.772 7 -11974578.139 6 21798564.627 21798560.230 21798563.865
+ 43.800 39.600
+ -7167475.657 5 -5585036.076 4 23118345.386 23118343.497 23118344.717
+ 31.600 25.900
+ -336030.353 4 -261831.345 2 24253164.244 24253161.646 24253163.552
+ 26.500 16.100
+ 06 1 2 3 49 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -392805.140 3 -306080.487 1 24516389.206 24516386.816 24516387.970
+ 23.800 6.500
+ -20292536.296 7 -15812360.410 6 20806483.859 20806481.750 20806482.877
+ 45.500 40.200
+ -3805440.187 1 -2965276.997 9 23988925.885 23988922.166 23988925.450
+ 11.000 -3.000
+ -23292079.855 7 -18149669.078 7 20147772.180 20147770.306 20147771.063
+ 45.400 45.200
+ -17441072.893 7 -13590442.961 8 20373168.223 20373165.491 20373167.427
+ 42.300 48.400
+ -20385174.772 7 -15884544.562 6 21025809.621 21025806.657 21025808.679
+ 44.500 37.600
+ -15434080.163 7 -12026553.249 6 21785871.855 21785867.346 21785871.087
+ 44.200 39.700
+ -7062119.399 5 -5502940.303 4 23138394.306 23138392.554 23138393.501
+ 31.500 26.200
+ -239746.682 4 -186805.079 2 24271485.388 24271483.182 24271484.940
+ 24.600 12.600
+ 06 1 2 3 50 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -352685.213 3 -274818.236 1 24524023.045 24524020.836 24524022.335
+ 22.100 11.000
+ -20339205.520 7 -15848726.029 6 20797602.676 20797600.932 20797601.963
+ 45.700 40.600
+ -3900676.005 1 -3039486.754 9 23970801.773 23970799.843 23970800.756
+ 9.000 -3.000
+ -23273831.178 7 -18135449.334 7 20151244.720 20151242.905 20151243.676
+ 45.500 45.200
+ -17451901.751 7 -13598881.028 8 20371107.887 20371104.800 20371106.889
+ 42.300 48.500
+ -20312737.047 7 -15828099.596 6 21039594.186 21039591.119 21039593.121
+ 44.100 37.300
+ -15500590.715 7 -12078379.644 6 21773214.980 21773210.944 21773214.393
+ 44.100 40.000
+ -6956659.802 5 -5420763.993 4 23158462.696 23158460.486 23158461.991
+ 32.000 26.500
+ -143448.741 3 -111767.717 2 24289810.379 24289808.677 24289809.716
+ 22.100 17.800
+ 06 1 2 3 50 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -312131.380 3 -243217.836 2 24531740.705 24531738.637 24531739.649
+ 21.100 12.600
+ -20385234.277 7 -15884592.589 6 20788843.654 20788841.893 20788842.865
+ 45.800 40.600
+ -3995746.909 1 -3113567.974 9 23952709.642 23952707.936 23952708.895
+ 11.000 -3.000
+ -23254948.799 7 -18120735.797 7 20154837.899 20154836.068 20154836.819
+ 45.500 45.200
+ -17462382.513 7 -13607047.851 8 20369113.293 20369110.309 20369112.451
+ 42.500 48.400
+ -20239815.609 7 -15771277.715 6 21053470.485 21053467.653 21053469.618
+ 44.200 37.300
+ -15566909.463 7 -12130056.586 6 21760595.172 21760590.778 21760594.510
+ 44.400 39.500
+ -6851098.803 5 -5338508.684 4 23178549.731 23178548.044 23178549.197
+ 30.600 27.100
+ -47137.507 3 -36720.031 3 24308137.746 24308136.797 24308137.465
+ 23.800 19.300
+ 06 1 2 3 51 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -271145.574 3 -211280.823 2 24539539.650 24539538.123 24539538.784
+ 22.100 16.100
+ -20430621.275 7 -15919959.071 6 20780206.585 20780205.048 20780205.856
+ 45.600 40.800
+ -4090651.377 2 -3187519.427 1 23934651.401 23934650.011 23934649.999
+ 15.100 6.500
+ -23235432.724 7 -18105528.469 7 20158551.649 20158549.790 20158550.575
+ 45.400 45.100
+ -17472514.362 7 -13614942.801 8 20367185.261 20367182.250 20367184.432
+ 42.500 48.300
+ -20166412.209 7 -15714080.276 6 21067438.518 21067436.019 21067437.753
+ 44.300 37.200
+ -15633034.989 7 -12181582.969 6 21748011.755 21748007.366 21748011.189
+ 44.400 39.600
+ -6745438.472 5 -5256175.980 4 23198656.232 23198654.622 23198655.678
+ 31.100 26.500
+ 49185.441 4 38336.835 2 24326468.519 24326466.304 24326467.498
+ 24.200 17.800
+ 06 1 2 3 51 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -229730.102 4 -179009.012 3 24547420.812 24547419.681 24547420.154
+ 24.900 18.600
+ -20475363.850 7 -15954823.407 6 20771692.718 20771690.708 20771691.737
+ 45.600 40.900
+ -4185388.550 2 -3261340.591 9 23916624.052 23916622.314 23916623.285
+ 15.100 -3.000
+ -23215283.208 7 -18089827.549 7 20162385.984 20162384.171 20162384.883
+ 45.300 45.000
+ -17482296.639 7 -13622565.354 8 20365323.702 20365320.771 20365322.819
+ 42.300 48.300
+ -20092528.923 7 -15656508.899 6 21081498.299 21081495.480 21081497.503
+ 44.300 37.300
+ -15698966.337 7 -12232958.045 6 21735465.636 21735461.247 21735465.047
+ 44.600 40.100
+ -6639680.812 5 -5173767.422 4 23218781.210 23218779.260 23218780.594
+ 30.800 26.200
+ 145519.254 4 113402.117 3 24344799.068 24344797.612 24344798.556
+ 25.600 20.500
+ 06 1 2 3 52 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -187886.932 4 -146403.982 3 24555383.392 24555381.903 24555382.779
+ 25.600 19.300
+ -20519461.036 7 -15989184.843 6 20763301.258 20763299.253 20763300.364
+ 45.900 40.900
+ -4279957.470 2 -3335030.645 9 23898627.024 23898626.527 23898626.840
+ 13.900 -3.000
+ -23194500.685 7 -18073633.378 7 20166340.892 20166339.013 20166339.803
+ 45.500 45.000
+ -17491728.363 7 -13629914.747 8 20363528.939 20363525.995 20363528.051
+ 42.300 48.300
+ -20018167.694 7 -15598565.098 6 21095649.200 21095645.976 21095648.095
+ 44.600 36.800
+ -15764702.468 7 -12284181.002 6 21722956.119 21722952.347 21722955.605
+ 44.000 40.800
+ -6533827.753 5 -5091284.518 4 23238924.124 23238922.296 23238923.824
+ 30.200 25.300
+ 241862.369 3 188474.685 3 24363133.571 24363131.098 24363132.470
+ 23.400 19.900
+ 06 1 2 3 52 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -145618.250 4 -113467.372 3 24563427.092 24563425.437 24563426.161
+ 25.300 21.600
+ -20562910.826 7 -16023041.822 6 20755033.046 20755031.030 20755032.253
+ 46.300 40.700
+ -4374357.168 1 0.000 23880663.242 0.000 23880663.366
+ 9.000 0.000
+ -23173085.531 7 -18056946.247 7 20170415.870 20170414.216 20170414.819
+ 45.400 45.300
+ -17500808.977 7 -13636990.550 8 20361801.000 20361798.034 20361800.107
+ 42.400 48.300
+ -19943330.534 7 -15540250.439 6 21109890.241 21109886.922 21109889.054
+ 44.300 36.500
+ -15830242.359 7 -12335251.035 6 21710484.417 21710480.198 21710483.885
+ 44.500 40.000
+ -6427881.396 5 -5008728.926 4 23259084.731 23259083.476 23259084.158
+ 30.400 25.600
+ 338213.875 3 263553.774 2 24381467.816 24381465.845 24381467.070
+ 23.400 17.800
+ 06 1 2 3 53 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -102926.169 4 -80200.830 3 24571550.779 24571549.678 24571549.788
+ 24.900 23.000
+ -20605711.284 7 -16056392.820 6 20746888.387 20746886.491 20746887.649
+ 46.400 41.100
+ -4468586.795 1 -3482014.473 9 23862733.094 23862731.593 23862732.926
+ 9.000 -3.000
+ -23151038.075 7 -18039766.419 7 20174611.272 20174609.632 20174610.208
+ 45.100 45.000
+ -17509537.504 7 -13643791.999 8 20360139.979 20360137.050 20360139.047
+ 42.100 48.300
+ -19868019.690 7 -15481566.683 6 21124222.064 21124218.118 21124220.470
+ 44.000 36.600
+ -15895584.749 7 -12386167.186 6 21698050.382 21698045.944 21698049.755
+ 44.300 40.300
+ -6321843.544 5 -4926102.037 4 23279262.978 23279261.759 23279262.478
+ 30.800 24.900
+ 434572.058 3 338638.097 3 24399804.955 24399802.884 24399803.869
+ 22.100 21.100
+ 06 1 2 3 53 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -59812.806 4 -46606.033 3 24579755.147 24579753.669 24579754.319
+ 25.300 22.600
+ -20647860.791 7 -16089236.586 6 20738867.464 20738865.837 20738866.775
+ 46.200 41.500
+ -4562645.409 2 -3555306.870 9 23844833.897 23844832.471 23844832.128
+ 15.100 -3.000
+ -23128358.709 7 -18022094.188 7 20178927.194 20178925.448 20178926.078
+ 45.300 45.200
+ -17517913.451 7 -13650318.709 8 20358546.098 20358543.120 20358545.160
+ 42.100 48.300
+ -19792237.180 7 -15422515.395 6 21138642.813 21138639.045 21138641.372
+ 43.900 36.700
+ -15960728.548 7 -12436928.580 6 21685653.896 21685649.532 21685653.298
+ 44.400 40.300
+ -6215716.264 5 -4843405.462 4 23299458.538 23299457.555 23299458.180
+ 30.800 24.900
+ 530936.110 3 413726.954 3 24418141.902 24418140.524 24418141.359
+ 23.000 22.100
+ 06 1 2 3 54 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -16280.294 4 -12684.607 3 24588039.245 24588037.474 24588038.437
+ 25.600 20.500
+ -20689357.577 7 -16121571.742 6 20730970.873 20730969.293 20730970.041
+ 46.100 41.500
+ -4656532.252 2 -3628465.452 9 23826968.174 23826967.189 23826966.736
+ 13.900 -3.000
+ -23105047.848 7 -18003929.886 7 20183363.261 20183361.345 20183362.157
+ 45.600 45.100
+ -17525935.839 7 -13656569.921 8 20357019.533 20357016.566 20357018.623
+ 42.300 48.300
+ -19715984.870 7 -15363098.029 6 21153152.996 21153149.283 21153151.584
+ 43.800 36.400
+ -16025672.554 7 -12487534.296 6 21673295.282 21673291.137 21673294.736
+ 44.400 40.500
+ -6109501.468 5 -4760640.682 4 23319670.762 23319669.457 23319670.161
+ 31.000 24.900
+ 627304.653 3 488819.338 3 24436480.968 24436478.712 24436480.101
+ 23.400 20.500
+ 06 1 2 3 54 30.0000000 0 8G03G09G15G18G21G22G26G29
+ 27668.962 4 21561.544 3 24596402.392 24596400.937 24596401.769
+ 25.900 21.600
+ -20730200.572 7 -16153397.447 6 20723198.802 20723196.937 20723197.968
+ 46.300 41.500
+ -23081106.051 7 -17985273.943 7 20187919.195 20187917.349 20187918.102
+ 45.300 44.900
+ -17533603.976 7 -13662545.092 8 20355560.365 20355557.370 20355559.459
+ 42.300 48.400
+ -19639264.768 7 -15303316.146 6 21167751.929 21167748.703 21167750.839
+ 43.800 36.400
+ -16090415.947 7 -12537983.689 6 21660975.335 21660971.032 21660974.672
+ 44.900 40.700
+ -6003201.035 5 -4677809.182 4 23339899.492 23339897.662 23339898.875
+ 30.600 25.600
+ 723676.705 3 563914.413 3 24454819.394 24454817.679 24454818.744
+ 21.600 19.900
+ 06 1 2 3 55 0.0000000 0 8G03G09G15G18G21G22G26G29
+ 72032.893 4 56130.818 3 24604844.549 24604843.135 24604843.753
+ 24.900 20.500
+ -20770387.801 7 -16184712.157 6 20715551.406 20715549.514 20715550.531
+ 46.200 41.600
+ -23056533.577 7 -17966126.564 7 20192595.015 20192593.351 20192594.004
+ 45.300 45.100
+ -17540917.198 7 -13668243.703 8 20354168.680 20354165.708 20354167.772
+ 42.400 48.400
+ -19562079.731 7 -15243171.975 6 21182439.652 21182436.517 21182438.846
+ 44.000 36.000
+ -16154957.292 7 -12588275.639 6 21648693.547 21648688.957 21648692.848
+ 45.100 40.300
+ -5896816.987 5 -4594912.518 4 23360143.746 23360141.822 23360143.197
+ 30.400 25.600
+ 820050.824 3 639011.114 2 24473159.371 24473156.405 24473158.518
+ 23.000 13.900
+ 06 1 2 3 55 30.0000000 0 8G03G09G15G18G21G22G26G29
+ 116809.326 3 91021.532 3 24613365.322 24613364.119 24613364.321
+ 23.000 20.500
+ -20809917.418 7 -16215514.448 6 20708029.184 20708027.164 20708028.348
+ 46.600 41.600
+ -23031330.938 7 -17946488.147 7 20197391.020 20197389.240 20197389.931
+ 45.200 45.000
+ -17547874.362 7 -13673664.874 8 20352844.727 20352841.790 20352843.878
+ 42.500 48.400
+ -19484431.473 7 -15182666.848 6 21197215.654 21197212.575 21197214.836
+ 44.000 36.300
+ -16219295.456 7 -12638409.276 6 21636450.220 21636445.684 21636449.548
+ 44.900 40.100
+ -5790351.099 4 -4511952.095 3 23380403.111 23380401.367 23380402.743
+ 29.700 23.400
+ 916426.139 3 714108.792 2 24491497.786 24491496.115 24491497.596
+ 21.100 17.800
+ 06 1 2 3 56 0.0000000 0 8G03G09G15G18G21G22G26G29
+ 161996.180 3 126232.071 3 24621963.820 24621962.367 24621962.865
+ 21.600 19.900
+ -20848788.426 7 -16245803.540 6 20700632.238 20700630.295 20700631.399
+ 46.700 41.700
+ -23005498.683 7 -17926359.123 7 20202306.540 20202304.906 20202305.536
+ 45.100 44.900
+ -17554474.948 7 -13678808.186 8 20351588.890 20351585.769 20351587.975
+ 42.600 48.400
+ -19406322.017 7 -15121802.355 6 21212079.285 21212076.355 21212078.514
+ 43.900 36.100
+ -16283429.480 7 -12688383.840 6 21624245.478 21624241.611 21624245.055
+ 45.100 40.700
+ -5683805.356 5 -4428929.429 4 23400678.209 23400676.448 23400677.884
+ 30.400 24.600
+ 1012801.340 3 789206.347 3 24509838.212 24509835.836 24509837.295
+ 23.000 19.300
+ 06 1 2 3 56 30.0000000 0 8G03G09G15G18G21G22G26G29
+ 207591.251 3 161760.666 3 24630640.542 24630639.288 24630639.482
+ 19.900 19.900
+ -20886998.824 7 -16275577.866 6 20693361.388 20693359.111 20693360.381
+ 46.700 41.600
+ -22979037.206 7 -17905739.798 7 20207342.200 20207340.349 20207341.028
+ 45.100 44.900
+ -17560717.907 7 -13683672.836 8 20350400.801 20350397.782 20350399.938
+ 42.600 48.400
+ -19327753.758 7 -15060580.344 5 21227030.127 21227027.411 21227029.478
+ 43.800 35.700
+ -16347357.806 7 -12738198.118 6 21612080.681 21612076.486 21612079.940
+ 44.800 40.800
+ -5577181.545 4 -4345845.943 4 23420968.164 23420966.668 23420967.593
+ 29.900 24.900
+ 1109175.342 3 864302.943 3 24528177.737 24528174.894 24528176.948
+ 23.800 18.600
+ 06 1 2 3 57 0.0000000 0 8G03G09G15G18G21G22G26G29
+ 253591.989 3 197605.386 3 24639394.573 24639392.720 24639393.426
+ 19.900 19.900
+ -20924547.263 7 -16304836.386 6 20686216.027 20686213.854 20686215.138
+ 47.100 41.700
+ -22951947.159 7 -17884630.673 7 20212497.167 20212495.347 20212496.174
+ 45.400 44.700
+ -17566602.656 7 -13688258.354 8 20349280.886 20349277.913 20349280.021
+ 42.600 48.400
+ -19248728.713 7 -14999002.396 6 21242067.884 21242065.444 21242067.398
+ 43.700 36.100
+ -16411079.762 7 -12787851.589 6 21599954.693 21599950.587 21599954.126
+ 45.000 40.900
+ -5470481.674 4 -4262703.191 4 23441271.814 23441271.125 23441271.528
+ 28.400 24.900
+ 1205546.810 3 939397.574 2 24546516.345 24546514.063 24546515.593
+ 23.000 17.800
+ 06 1 2 3 57 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 299996.209 3 233764.502 2 24648224.764 24648222.970 24648223.801
+ 20.500 17.800
+ -20961432.266 7 -16333577.943 6 20679196.765 20679194.845 20679195.977
+ 47.100 41.700
+ -86474.514 1 -67383.357 9 23702836.080 23702833.474 23702834.945
+ 9.000 -3.000
+ -22924229.278 7 -17863032.331 7 20217771.686 20217769.868 20217770.608
+ 45.100 44.400
+ -17572128.753 7 -13692564.407 8 20348229.401 20348226.330 20348228.449
+ 42.400 48.400
+ -19169249.109 7 -14937070.245 6 21257192.908 21257189.936 21257192.050
+ 43.600 36.100
+ -16474594.337 7 -12837343.461 6 21587868.300 21587864.113 21587867.597
+ 44.700 40.900
+ -5363707.511 5 -4179502.557 4 23461591.141 23461589.474 23461590.403
+ 30.200 24.900
+ 1301914.682 3 1014489.447 3 24564854.143 24564852.898 24564853.462
+ 22.100 19.900
+ 06 1 2 3 58 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 346801.645 3 270236.234 2 24657131.638 24657129.908 24657131.030
+ 20.500 17.800
+ -20997652.460 7 -16361801.463 6 20672304.324 20672302.438 20672303.428
+ 47.000 41.800
+ -178952.334 1 -139443.978 1 23685238.346 23685235.502 23685237.318
+ 9.000 6.500
+ -22895884.130 7 -17840945.203 7 20223165.697 20223163.809 20223164.568
+ 45.100 44.700
+ -17577295.118 7 -13696590.147 8 20347246.202 20347243.211 20347245.268
+ 42.300 48.400
+ -19089317.513 7 -14874785.898 5 21272403.574 21272400.357 21272402.547
+ 43.400 35.800
+ -16537899.993 7 -12886672.539 6 21575821.648 21575817.223 21575821.041
+ 45.200 40.700
+ -5256861.093 4 -4096245.596 4 23481922.622 23481921.894 23481922.531
+ 28.600 26.200
+ 1398277.896 3 1089577.621 3 24583191.716 24583190.570 24583190.934
+ 22.100 20.500
+ 06 1 2 3 58 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 394006.141 3 307018.926 3 24666113.978 24666112.824 24666112.295
+ 18.600 20.500
+ -21033206.778 7 -16389506.120 6 20665538.756 20665536.658 20665537.769
+ 47.300 41.900
+ -271249.845 2 -211364.071 9 23667674.328 23667672.506 23667673.926
+ 12.600 -3.000
+ -22866912.372 7 -17818369.813 7 20228678.746 20228677.064 20228677.637
+ 45.200 44.600
+ -17582101.065 7 -13700335.042 8 20346331.668 20346328.695 20346330.730
+ 42.200 48.400
+ -19008935.862 7 -14812150.858 6 21287699.867 21287696.666 21287698.734
+ 43.400 36.100
+ -16600995.558 7 -12935837.911 6 21563814.893 21563810.743 21563814.336
+ 44.900 41.000
+ -5149943.990 4 -4012933.603 4 23502268.400 23502266.891 23502267.983
+ 27.900 24.600
+ 1494635.282 4 1164661.319 3 24601528.045 24601526.474 24601527.080
+ 24.600 19.300
+ 06 1 2 3 59 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 441607.302 3 344110.773 3 24675171.929 24675170.827 24675171.265
+ 19.900 18.600
+ -21068093.135 7 -16416690.290 6 20658900.097 20658897.883 20658899.245
+ 47.400 41.600
+ -363365.929 1 -283142.838 9 23650145.835 23650143.400 23650143.591
+ 9.000 -3.000
+ -22837314.642 7 -17795306.655 7 20234310.961 20234309.374 20234309.860
+ 45.100 44.600
+ -17586545.700 7 -13703798.391 8 20345485.952 20345482.882 20345485.028
+ 42.400 48.400
+ -18928106.169 7 -14749166.703 5 21303081.443 21303077.880 21303080.153
+ 43.200 35.700
+ -16663879.898 7 -12984838.692 6 21551848.532 21551844.307 21551847.964
+ 45.200 41.100
+ -5042958.240 4 -3929568.066 3 23522627.785 23522625.603 23522627.121
+ 28.600 23.800
+ 1590985.806 3 1239739.649 2 24619863.215 24619860.943 24619862.666
+ 21.600 13.900
+ 06 1 2 3 59 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 489602.807 2 381509.797 3 24684305.744 24684304.353 24684304.661
+ 17.000 19.300
+ -21102310.415 7 -16443353.108 6 20652388.682 20652386.544 20652387.854
+ 47.400 41.900
+ -455300.353 2 -354780.064 23632650.521 23632648.482 23632649.861
+ 13.900 3.000
+ -22807091.520 7 -17771756.175 7 20240062.384 20240060.637 20240061.300
+ 45.300 44.600
+ -17590628.328 7 -13706979.659 8 20344709.205 20344705.961 20344708.185
+ 42.500 48.500
+ -18846830.924 7 -14685835.365 5 21318547.551 21318544.094 21318546.365
+ 43.100 35.300
+ -16726551.968 7 -13033674.073 6 21539922.635 21539918.057 21539921.884
+ 45.100 40.800
+ -4935905.615 4 -3846150.439 4 23542999.419 23542997.214 23542998.821
+ 29.900 24.900
+ 1687328.338 3 1314811.775 2 24638196.287 24638194.280 24638195.446
+ 20.500 13.900
+ 06 1 2 4 0 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 537990.201 3 419214.270 2 24693513.390 24693511.729 24693512.281
+ 20.500 17.000
+ -21135857.336 7 -16469493.565 6 20646004.818 20646002.843 20646003.987
+ 47.600 41.800
+ -547051.812 2 -426274.678 1 23615190.222 23615189.369 23615190.138
+ 16.100 6.500
+ -22776243.775 7 -17747718.975 7 20245932.610 20245930.727 20245931.455
+ 45.000 44.300
+ -17594348.319 7 -13709878.354 8 20344001.049 20343998.085 20344000.193
+ 42.400 48.400
+ -18765112.372 7 -14622158.585 5 21334098.002 21334094.463 21334096.946
+ 43.100 35.100
+ -16789010.495 7 -13082343.052 6 21528036.849 21528032.639 21528036.319
+ 45.000 41.200
+ -4828788.081 4 -3762682.243 3 23563382.526 23563380.734 23563382.185
+ 27.600 23.400
+ 1783661.513 2 1389876.584 24656527.176 24656525.502 24656526.620
+ 15.100 3.000
+ 06 1 2 4 0 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 586767.313 3 457222.383 3 24702794.929 24702794.319 24702793.971
+ 19.900 18.600
+ -21168732.211 7 -16495110.339 6 20639748.899 20639746.893 20639748.117
+ 47.600 41.800
+ -638619.517 1 -497626.130 23597766.383 23597764.620 23597764.986
+ 9.000 3.000
+ -22744772.203 7 -17723195.678 7 20251921.079 20251919.584 20251920.089
+ 45.300 44.300
+ -17597704.880 7 -13712493.859 8 20343362.297 20343359.386 20343361.401
+ 42.500 48.500
+ -18682952.722 7 -14558138.091 5 21349732.302 21349728.887 21349731.285
+ 43.200 34.600
+ -16851254.450 7 -13130844.826 6 21516192.271 21516188.019 21516191.647
+ 44.900 41.500
+ -4721607.117 4 -3679164.612 3 23583778.611 23583777.166 23583777.947
+ 28.600 23.800
+ 1879984.531 3 1464933.525 2 24674857.469 24674855.942 24674856.780
+ 21.100 15.100
+ 06 1 2 4 1 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 635931.927 3 495532.443 2 24712150.987 24712149.720 24712150.048
+ 18.600 16.100
+ -21200934.706 7 -16520203.185 7 20633621.059 20633619.082 20633620.209
+ 47.900 42.000
+ -730002.673 2 -568833.755 23580376.463 23580374.593 23580375.896
+ 17.800 3.000
+ -22712677.699 7 -17698186.980 7 20258028.861 20258026.957 20258027.723
+ 45.100 44.400
+ -17600697.286 7 -13714825.605 8 20342792.719 20342789.988 20342791.931
+ 42.300 48.500
+ -18600354.368 7 -14493775.753 5 21365449.921 21365447.118 21365449.183
+ 43.000 35.400
+ -16913282.352 7 -13179178.252 6 21504388.752 21504384.585 21504388.231
+ 45.200 41.400
+ -4614364.792 4 -3595599.155 3 23604185.744 23604184.250 23604185.269
+ 28.400 21.600
+ 1976296.283 3 1539981.621 2 24693185.698 24693182.165 24693185.073
+ 22.100 12.600
+ 06 1 2 4 1 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 685481.661 3 534142.622 2 24721580.189 24721578.481 24721579.430
+ 20.500 15.100
+ -21232462.820 8 -16544770.537 7 20627621.308 20627619.515 20627620.563
+ 48.000 42.100
+ -821200.339 2 -639896.864 2 23563021.505 23563020.186 23563020.858
+ 15.100 12.600
+ -22679960.844 7 -17672693.329 7 20264254.365 20264252.824 20264253.353
+ 45.100 44.200
+ -17603324.915 7 -13716873.109 8 20342292.892 20342290.017 20342291.988
+ 42.600 48.500
+ -18517319.548 7 -14429073.310 5 21381250.686 21381248.039 21381250.096
+ 42.800 34.800
+ -16975093.317 7 -13227342.638 6 21492626.752 21492622.119 21492626.066
+ 45.500 40.900
+ -4507062.756 4 -3511987.179 4 23624604.185 23624603.489 23624604.130
+ 28.100 24.600
+ 2072595.624 4 1615020.044 2 24711510.815 24711508.880 24711510.120
+ 24.600 17.000
+ 06 1 2 4 2 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 735414.175 3 573051.023 3 24731082.069 24731080.709 24731080.844
+ 19.900 18.600
+ -21263315.481 7 -16568811.568 7 20621750.258 20621748.447 20621749.508
+ 47.900 42.200
+ -912211.587 2 -710814.693 1 23545703.874 23545701.032 23545702.768
+ 15.100 9.000
+ -22646622.488 7 -17646715.396 7 20270598.580 20270596.883 20270597.411
+ 44.900 44.200
+ -17605586.896 7 -13718635.698 8 20341862.538 20341859.481 20341861.554
+ 42.400 48.400
+ -18433850.717 7 -14364032.681 5 21397134.774 21397131.695 21397133.789
+ 42.400 34.600
+ -17036685.996 7 -13275336.939 6 21480905.935 21480901.376 21480905.345
+ 45.700 41.100
+ -4399702.785 4 -3428330.071 4 23645034.742 23645033.710 23645034.303
+ 27.900 24.600
+ 2168881.510 3 1690048.016 3 24729833.196 24729831.145 24729832.117
+ 20.500 18.600
+ 06 1 2 4 2 30.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 785726.724 3 612255.601 3 24740656.526 24740654.436 24740655.222
+ 21.100 19.300
+ -21293492.003 8 -16592325.744 7 20616008.013 20616005.952 20616007.127
+ 48.100 42.100
+ -1003035.395 2 -781586.481 2 23528419.904 23528417.866 23528419.557
+ 12.600 13.900
+ -22612663.638 7 -17620253.957 7 20277060.803 20277059.064 20277059.695
+ 45.000 44.200
+ -17607482.527 7 -13720112.813 8 20341501.799 20341498.680 20341500.933
+ 42.300 48.300
+ -18349950.115 7 -14298655.603 5 21413100.554 21413097.404 21413099.547
+ 42.300 34.600
+ -17098059.296 7 -13323160.289 6 21469226.965 21469222.466 21469226.425
+ 45.700 41.200
+ -4292286.690 4 -3344629.217 4 23665475.486 23665473.817 23665474.794
+ 27.100 24.200
+ 2265152.974 2 1765064.702 2 24748152.279 24748150.767 24748151.580
+ 17.000 15.100
+ 06 1 2 4 3 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 836417.026 3 651754.532 2 24750302.382 24750300.699 24750300.974
+ 20.500 17.000
+ -21322990.618 8 -16615311.679 7 20610394.598 20610392.613 20610393.808
+ 48.000 42.300
+ -1093671.404 2 -852211.917 1 23511172.299 23511170.502 23511171.442
+ 15.100 11.000
+ -22578085.068 7 -17593309.623 7 20283640.756 20283639.017 20283639.708
+ 45.000 44.000
+ -17609010.917 7 -13721303.770 8 20341211.118 20341207.903 20341210.090
+ 42.200 48.300
+ -18265620.133 7 -14232943.943 5 21429148.553 21429144.739 21429147.243
+ 42.400 34.000
+ -17159211.981 7 -13370811.728 6 21457590.278 21457585.665 21457589.544
+ 45.700 41.400
+ -4184816.259 4 -3260886.027 3 23685926.849 23685924.268 23685926.300
+ 29.000 21.600
+ 2361408.919 3 1840069.337 2 24766470.881 24766467.149 24766469.616
+ 19.900 16.100
+ 06 1 2 4 3 30.0000000 0 8G09G14G15G18G21G22G26G29
+ -21351810.494 8 -16637768.727 7 20604910.434 20604908.419 20604909.571
+ 48.100 42.400
+ -1184118.506 3 -922690.162 2 23493961.175 23493958.815 23493960.385
+ 19.900 12.600
+ -22542887.648 7 -17565883.069 7 20290338.782 20290336.760 20290337.694
+ 45.200 44.000
+ -17610171.394 7 -13722208.038 8 20340990.020 20340987.104 20340989.139
+ 42.400 48.300
+ -18180863.141 6 -14166899.556 5 21445276.091 21445273.749 21445275.502
+ 41.800 34.600
+ -17220142.546 7 -13418290.088 6 21445995.414 21445991.057 21445994.750
+ 45.700 41.600
+ -4077293.205 4 -3177101.833 3 23706388.253 23706385.837 23706387.714
+ 28.800 22.100
+ 2457648.287 3 1915061.051 2 24784783.323 24784781.793 24784782.818
+ 21.600 17.000
+ 06 1 2 4 4 0.0000000 0 8G09G14G15G18G21G22G26G29
+ -21379950.815 7 -16659696.243 7 20599555.526 20599553.448 20599554.535
+ 47.900 42.600
+ -1274375.877 3 -993020.565 2 23476785.448 23476783.617 23476784.585
+ 19.900 12.600
+ -22507072.294 7 -17537975.009 7 20297154.217 20297152.324 20297153.161
+ 45.100 44.100
+ -17610963.489 7 -13722825.255 8 20340839.245 20340836.342 20340838.410
+ 42.400 48.400
+ -18095681.440 7 -14100524.222 5 21461485.678 21461483.234 21461485.145
+ 42.100 34.500
+ -17280850.337 7 -13465594.859 6 21434443.085 21434438.607 21434442.376
+ 45.500 41.400
+ -3969719.212 4 -3093277.952 3 23726858.637 23726856.212 23726858.102
+ 27.100 21.100
+ 2553869.899 3 1990038.951 3 24803093.300 24803092.003 24803092.859
+ 21.100 18.600
+ 06 1 2 4 4 30.0000000 0 7G09G14G15G18G21G22G26
+ -21407409.724 7 -16681092.792 7 20594330.175 20594328.221 20594329.307
+ 47.900 42.800
+ -1364442.788 3 -1063202.578 2 23459646.556 23459644.811 23459645.538
+ 22.100 15.100
+ -22470640.029 7 -17509586.236 7 20304087.142 20304085.328 20304085.941
+ 45.100 44.100
+ -17611386.706 7 -13723155.034 8 20340758.546 20340755.828 20340757.815
+ 42.400 48.300
+ -18010077.376 6 -14033819.770 5 21477775.996 21477772.940 21477775.055
+ 41.900 33.800
+ -17341333.886 7 -13512724.896 6 21422933.498 21422928.903 21422932.777
+ 45.400 41.600
+ -3862095.988 4 -3009415.687 3 23747338.558 23747336.609 23747337.961
+ 26.800 21.100
+ 06 1 2 4 5 0.0000000 0 7G09G14G15G18G21G22G26
+ -21434186.549 8 -16701957.846 7 20589234.583 20589232.798 20589233.838
+ 48.200 42.800
+ -1454318.089 3 -1133235.259 2 23442543.438 23442541.668 23442543.065
+ 22.100 17.000
+ -22433591.696 7 -17480717.415 7 20311136.991 20311135.369 20311136.030
+ 45.400 44.100
+ -17611439.901 7 -13723196.485 8 20340748.752 20340745.771 20340747.834
+ 42.500 48.300
+ -17924053.532 6 -13966788.220 5 21494146.120 21494142.925 21494144.918
+ 41.600 34.000
+ -17401591.752 7 -13559679.072 6 21411466.735 21411462.361 21411466.044
+ 45.600 41.900
+ -3754425.344 4 -2925516.497 3 23767827.108 23767825.431 23767826.639
+ 26.800 20.500
+ 06 1 2 4 5 30.0000000 0 7G09G14G15G18G21G22G26
+ -21460280.339 8 -16722290.672 7 20584269.293 20584267.259 20584268.419
+ 48.200 42.900
+ -1544001.089 3 -1203118.092 3 23425478.194 23425475.618 23425477.088
+ 21.100 19.900
+ -22395928.318 7 -17451369.336 7 20318304.219 20318302.357 20318303.171
+ 45.400 44.000
+ -17611122.291 7 -13722948.996 8 20340809.223 20340806.178 20340808.259
+ 42.700 48.300
+ -17837612.063 6 -13899431.254 5 21510595.187 21510592.242 21510594.116
+ 41.400 33.600
+ -17461623.086 7 -13606456.725 6 21400043.019 21400038.734 21400042.354
+ 45.300 41.900
+ -3646708.898 4 -2841581.603 3 23788324.862 23788323.025 23788324.232
+ 27.600 20.500
+ 06 1 2 4 6 0.0000000 0 7G09G14G15G18G21G22G26
+ -21485689.986 8 -16742090.391 7 20579434.042 20579431.908 20579433.162
+ 48.300 42.900
+ -1633491.057 4 -1272850.514 2 23408448.540 23408445.861 23408447.667
+ 24.200 17.000
+ -22357651.004 7 -17421542.862 7 20325588.203 20325586.295 20325587.128
+ 45.500 43.900
+ -17610433.226 7 -13722412.061 8 20340940.455 20340937.269 20340939.440
+ 42.600 48.300
+ -17750755.568 6 -13831750.885 5 21527122.629 21527120.571 21527122.232
+ 41.200 34.300
+ -17521426.258 7 -13653056.598 6 21388663.030 21388658.374 21388662.318
+ 45.600 41.500
+ -3538948.423 4 -2757612.369 3 23808830.893 23808829.441 23808830.442
+ 26.800 21.100
+ 06 1 2 4 6 30.0000000 0 7G09G14G15G18G21G22G26
+ -21510415.236 8 -16761356.816 7 20574729.069 20574726.875 20574728.153
+ 48.400 42.800
+ -1722786.934 3 -1342431.704 2 23391456.071 23391453.924 23391455.062
+ 22.600 17.000
+ -22318760.912 7 -17391238.907 7 20332988.796 20332986.945 20332987.644
+ 45.200 43.900
+ -17609372.310 7 -13721585.374 8 20341142.156 20341139.168 20341141.321
+ 42.700 48.200
+ -17663486.170 6 -13763748.769 5 21543729.792 21543727.395 21543729.046
+ 40.800 33.800
+ -17581000.470 7 -13699478.061 6 21377326.375 21377321.782 21377325.740
+ 45.800 41.600
+ -3431145.481 4 -2673610.121 3 23829344.089 23829343.752 23829343.746
+ 24.900 22.100
+ 06 1 2 4 7 0.0000000 0 7G09G14G15G18G21G22G26
+ -21534454.173 8 -16780088.447 7 20570154.522 20570152.420 20570153.606
+ 48.100 42.700
+ -1811888.074 4 -1411861.135 3 23374500.379 23374498.288 23374499.407
+ 24.200 21.100
+ -22279258.924 7 -17360458.139 7 20340505.821 20340503.957 20340504.654
+ 45.200 43.800
+ -17607938.865 7 -13720468.408 8 20341414.919 20341411.843 20341414.040
+ 42.600 48.200
+ -17575806.765 6 -13695427.179 5 21560415.500 21560412.252 21560414.141
+ 40.900 33.900
+ -17640344.346 7 -13745720.046 7 21366033.461 21366029.221 21366032.827
+ 45.700 42.100
+ -3323301.821 4 -2589576.116 3 23849866.598 23849865.998 23849866.447
+ 26.800 23.800
+ 06 1 2 4 7 30.0000000 0 7G09G14G15G18G21G22G26
+ -21557806.081 8 -16798284.738 7 20565710.682 20565708.633 20565709.889
+ 48.200 42.700
+ -1900793.909 4 -1481138.396 3 23357582.607 23357580.274 23357581.474
+ 25.300 21.100
+ -22239146.083 7 -17329201.387 7 20348138.780 20348137.154 20348137.802
+ 45.200 43.600
+ -17606132.140 7 -13719060.574 8 20341758.819 20341755.669 20341757.922
+ 42.700 48.200
+ -17487719.566 6 -13626787.829 5 21577177.633 21577174.605 21577176.500
+ 40.800 33.500
+ -17699456.517 7 -13791781.469 7 21354784.826 21354780.589 21354784.085
+ 45.500 42.300
+ -3215419.039 4 -2505511.604 3 23870397.086 23870394.985 23870396.428
+ 27.100 22.600
+ 06 1 2 4 8 0.0000000 0 7G09G14G15G18G21G22G26
+ -21580470.750 8 -16815945.520 7 20561397.671 20561395.635 20561396.846
+ 48.200 42.600
+ -1989503.261 4 -1550262.541 3 23340701.542 23340699.218 23340700.548
+ 26.200 18.600
+ -22198423.734 7 -17297469.696 7 20355888.265 20355886.292 20355887.066
+ 44.900 43.600
+ -17603951.177 7 -13717361.120 8 20342173.821 20342170.775 20342172.954
+ 42.700 48.300
+ -17399226.983 6 -13557832.584 5 21594016.788 21594014.246 21594016.069
+ 40.900 33.500
+ -17758335.793 7 -13837661.419 6 21343580.727 21343576.052 21343579.960
+ 45.800 41.900
+ -3107498.920 4 -2421418.009 3 23890933.171 23890931.242 23890932.986
+ 26.800 21.600
+ 06 1 2 4 8 30.0000000 0 7G09G14G15G18G21G22G26
+ -21602447.244 8 -16833070.056 7 20557215.963 20557213.693 20557214.947
+ 48.400 42.600
+ -2078015.660 4 -1619233.233 3 23323858.153 23323855.688 23323857.149
+ 26.800 20.500
+ -22157093.105 7 -17265264.016 7 20363752.931 20363751.221 20363751.809
+ 45.000 43.600
+ -17601395.549 7 -13715369.723 8 20342660.156 20342657.110 20342659.276
+ 42.800 48.300
+ -17310331.491 6 -13488563.384 5 21610933.037 21610930.299 21610932.313
+ 40.900 33.100
+ -17816980.977 7 -13883358.963 6 21332420.593 21332416.103 21332420.097
+ 46.000 41.800
+ -2999543.006 4 -2337296.536 3 23911476.739 23911474.405 23911476.236
+ 26.800 19.900
+ 06 1 2 4 9 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21623734.282 8 -16849657.358 7 20553165.053 20553162.957 20553164.229
+ 48.400 42.600
+ -2166329.986 4 -1688049.583 3 23307052.628 23307049.939 23307051.626
+ 27.100 23.000
+ -22115155.040 7 -17232585.010 7 20371733.103 20371731.702 20371732.171
+ 44.800 43.300
+ -17598464.397 7 -13713085.707 8 20343217.992 20343214.902 20343217.070
+ 42.800 48.200
+ -24720.651 4 -19262.512 3 24805595.162 24805590.163 24805593.320
+ 25.300 21.600
+ -17221035.818 6 -13418982.362 5 21627926.276 21627922.807 21627925.027
+ 40.500 33.100
+ -17875390.931 7 -13928873.211 7 21321305.443 21321301.223 21321304.850
+ 45.700 42.300
+ -2891552.938 4 -2253148.400 3 23932026.310 23932023.719 23932025.798
+ 27.400 20.500
+ 06 1 2 4 9 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21644331.856 8 -16865707.408 7 20549245.399 20549243.376 20549244.573
+ 48.300 42.600
+ -2254445.718 4 -1756711.173 3 23290284.333 23290281.878 23290283.477
+ 27.600 22.100
+ -22072611.028 7 -17199433.838 7 20379829.485 20379827.568 20379828.340
+ 44.900 43.400
+ -17595157.338 7 -13710508.777 8 20343847.274 20343844.197 20343846.346
+ 42.700 48.200
+ -35473.723 4 -27641.558 3 24803548.253 24803543.971 24803546.719
+ 24.600 20.500
+ -17131342.213 6 -13349091.270 5 21644994.084 21644990.909 21644993.059
+ 40.000 32.600
+ -17933564.161 7 -13974202.999 7 21310235.625 21310231.262 21310235.030
+ 46.100 42.400
+ -2783530.335 4 -2168974.929 3 23952582.156 23952580.087 23952581.804
+ 26.500 19.300
+ 06 1 2 4 10 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21664238.667 8 -16881219.210 7 20545457.054 20545455.208 20545456.349
+ 48.400 42.400
+ -2342361.723 4 -1825217.129 4 23273554.325 23273552.268 23273553.456
+ 27.900 24.200
+ -22029462.286 7 -17165811.445 7 20388040.278 20388038.580 20388039.318
+ 45.300 43.500
+ -17591473.523 7 -13707638.276 8 20344548.275 20344545.107 20344547.323
+ 42.700 48.000
+ -45693.960 4 -35605.404 3 24801603.658 24801599.506 24801601.863
+ 24.600 22.100
+ -17041253.214 6 -13278892.066 5 21662137.053 21662134.465 21662136.310
+ 40.400 32.700
+ -17991499.615 7 -14019347.506 7 21299211.094 21299206.539 21299210.371
+ 46.100 42.400
+ -2675476.779 4 -2084777.374 3 23973144.394 23973143.193 23973143.901
+ 25.600 22.600
+ 06 1 2 4 10 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21683453.935 8 -16896192.145 7 20541800.678 20541798.649 20541799.893
+ 48.600 42.200
+ -2430077.448 4 -1893567.013 4 23256863.005 23256860.425 23256862.036
+ 29.700 25.300
+ -21985710.119 7 -17131718.856 7 20396366.205 20396364.475 20396365.028
+ 44.900 43.600
+ -17587412.493 7 -13704473.837 8 20345320.860 20345317.865 20345320.000
+ 42.600 48.000
+ -55381.404 4 -43154.014 3 24799760.200 24799755.436 24799758.636
+ 26.500 18.600
+ -16950771.407 6 -13208386.780 5 21679355.696 21679352.486 21679354.478
+ 40.000 32.300
+ -18049195.994 7 -14064305.726 7 21288231.780 21288227.142 21288230.992
+ 46.000 42.400
+ -2567393.729 4 -2000556.836 3 23993711.368 23993710.128 23993710.946
+ 24.200 21.100
+ 06 1 2 4 11 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21701976.730 8 -16910625.493 7 20538275.910 20538273.820 20538275.076
+ 48.500 42.400
+ -2517592.074 4 -1961760.212 4 23240209.539 23240206.771 23240208.515
+ 29.500 24.600
+ -21941355.617 7 -17097156.915 7 20404806.562 20404804.830 20404805.463
+ 44.900 43.500
+ -17582973.331 7 -13701014.748 8 20346165.641 20346162.596 20346164.733
+ 42.700 48.000
+ -64536.375 4 -50287.749 2 24798017.926 24798013.801 24798016.171
+ 25.900 17.800
+ -16859899.066 6 -13137577.195 5 21696648.030 21696644.942 21696646.787
+ 39.300 31.800
+ -18106652.019 7 -14109076.649 7 21277298.042 21277293.794 21277297.426
+ 45.900 42.600
+ -2459283.068 4 -1916314.748 3 24014284.175 24014282.740 24014283.822
+ 26.200 20.500
+ 06 1 2 4 11 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21719807.366 8 -16924519.489 7 20534882.924 20534880.862 20534882.089
+ 48.500 42.400
+ -2604904.961 5 -2029796.206 4 23223594.468 23223591.720 23223593.529
+ 30.600 24.900
+ -21896400.026 7 -17062126.595 7 20413361.140 20413359.602 20413360.207
+ 45.200 43.400
+ -17578155.191 7 -13697260.359 7 20347082.614 20347079.437 20347081.695
+ 42.700 47.900
+ -73158.656 4 -57006.432 3 24796377.196 24796372.936 24796375.460
+ 25.900 19.300
+ -16768638.987 6 -13066465.459 5 21714013.797 21714011.068 21714013.013
+ 39.300 32.100
+ -18163866.351 7 -14153659.244 7 21266410.609 21266406.193 21266409.935
+ 45.800 42.500
+ -2351146.274 4 -1832052.311 3 24034862.109 24034860.327 24034861.374
+ 26.200 19.900
+ 06 1 2 4 12 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21736944.722 8 -16937873.271 7 20531621.851 20531619.773 20531620.901
+ 48.400 42.400
+ -2692014.936 5 -2097674.095 4 23207017.939 23207015.298 23207016.865
+ 30.600 26.500
+ -21850844.629 7 -17026628.890 7 20422030.360 20422028.557 20422029.140
+ 44.900 43.300
+ -17572958.076 7 -13693210.659 8 20348071.505 20348068.476 20348070.666
+ 42.900 48.000
+ -81248.401 4 -63310.078 3 24794838.131 24794833.632 24794836.228
+ 29.000 20.500
+ -16676993.771 6 -12995053.617 5 21731452.894 21731450.520 21731452.520
+ 39.400 31.300
+ -18220837.910 7 -14198052.665 7 21255569.138 21255564.861 21255568.624
+ 46.100 42.600
+ -2242984.921 4 -1747770.735 3 24055443.949 24055443.186 24055443.498
+ 24.600 23.000
+ 06 1 2 4 12 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21753388.271 8 -16950686.424 7 20528492.565 20528490.578 20528491.746
+ 48.400 42.300
+ -2778921.656 5 -2165393.601 4 23190479.719 23190477.408 23190478.968
+ 30.400 26.800
+ -21804691.012 7 -16990665.044 7 20430812.734 20430811.247 20430811.810
+ 45.000 43.400
+ -17567381.237 7 -13688865.073 7 20349132.776 20349129.803 20349131.952
+ 42.700 47.900
+ -88805.557 4 -69198.781 2 24793400.041 24793394.756 24793398.144
+ 27.400 17.800
+ -16584965.956 6 -12923343.649 5 21748966.606 21748963.017 21748965.195
+ 39.400 31.800
+ -18277565.259 7 -14242255.795 7 21244774.164 21244769.936 21244773.629
+ 45.700 42.700
+ -2134800.495 3 -1663471.207 3 24076031.060 24076030.081 24076030.624
+ 23.800 22.100
+ 06 1 2 4 13 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21769137.359 8 -16962958.440 7 20525495.683 20525493.656 20525494.881
+ 48.500 42.200
+ -2865624.266 5 -2232954.040 4 23173980.890 23173978.632 23173979.960
+ 30.100 27.400
+ -21757940.355 7 -16954235.970 7 20439709.469 20439707.586 20439708.306
+ 45.100 43.300
+ -17561423.419 7 -13684222.615 8 20350266.552 20350263.552 20350265.630
+ 42.700 48.000
+ -95830.404 4 -74672.679 3 24792063.172 24792058.985 24792061.249
+ 25.900 22.100
+ -16492557.828 6 -12851337.345 5 21766551.654 21766547.482 21766550.014
+ 38.900 31.000
+ -18334047.255 7 -14286267.739 7 21234026.059 21234021.852 21234025.471
+ 45.700 42.700
+ -2026594.586 4 -1579154.936 3 24096622.021 24096621.024 24096621.548
+ 27.100 20.500
+ 06 1 2 4 13 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21784191.430 8 -16974688.881 7 20522631.164 20522629.023 20522630.257
+ 48.600 42.300
+ -2952121.959 5 -2300354.822 4 23157520.844 23157518.675 23157519.972
+ 30.400 27.600
+ -21710594.230 7 -16917342.891 7 20448719.063 20448717.247 20448717.995
+ 44.900 43.300
+ -17555084.595 7 -13679283.272 8 20351472.612 20351469.752 20351471.799
+ 42.800 48.000
+ -102323.035 4 -79731.895 3 24790827.692 24790822.849 24790826.016
+ 25.900 21.100
+ -16399772.294 6 -12779036.940 5 21784206.586 21784204.190 21784206.207
+ 39.700 31.100
+ -18390282.499 7 -14330087.406 7 21223325.012 21223320.735 21223324.337
+ 46.000 43.100
+ -1918368.772 4 -1494823.133 3 24117217.443 24117215.990 24117216.956
+ 26.500 19.300
+ 06 1 2 4 14 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21798549.909 8 -16985877.307 7 20519898.619 20519896.760 20519897.870
+ 48.500 42.400
+ -3038413.970 4 -2367595.331 4 23141100.245 23141097.730 23141099.124
+ 29.200 27.100
+ -21662654.103 7 -16879986.958 7 20457841.515 20457839.980 20457840.588
+ 45.000 43.200
+ -17548364.060 7 -13674046.495 7 20352751.786 20352748.646 20352750.827
+ 42.800 47.900
+ -108283.683 4 -84376.548 3 24789693.109 24789688.385 24789691.352
+ 24.900 18.600
+ -16306611.923 6 -12706444.456 5 21801935.030 21801932.103 21801934.138
+ 39.400 31.300
+ -18446269.685 7 -14373713.779 7 21212670.806 21212666.614 21212670.263
+ 45.800 42.800
+ -1810124.536 3 -1410476.969 2 24137814.760 24137812.926 24137814.300
+ 22.600 16.100
+ 06 1 2 4 14 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21812212.687 8 -16996523.625 7 20517298.629 20517296.750 20517297.905
+ 48.300 42.400
+ -3124499.497 4 -2434674.948 4 23124718.991 23124716.182 23124717.883
+ 29.700 26.200
+ -21614121.180 7 -16842169.106 7 20467077.247 20467075.398 20467076.095
+ 44.700 43.100
+ -17541261.210 7 -13668511.807 7 20354103.280 20354100.278 20354102.326
+ 42.800 47.800
+ -113712.557 4 -88606.823 3 24788660.217 24788656.170 24788658.260
+ 24.600 19.900
+ -16213079.099 6 -12633561.761 5 21819734.694 21819730.913 21819733.131
+ 38.900 31.300
+ -18502007.719 7 -14417146.016 7 21202064.404 21202059.962 21202063.782
+ 46.000 42.900
+ -1701863.267 3 -1326117.549 2 24158416.349 24158413.675 24158415.914
+ 23.400 13.900
+ 06 1 2 4 15 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21825179.095 8 -17006627.318 7 20514831.334 20514829.243 20514830.505
+ 48.300 42.500
+ -3210377.956 4 -2501593.202 4 23108376.599 23108374.208 23108375.869
+ 29.700 27.600
+ -21564996.998 7 -16803890.535 7 20476425.266 20476423.480 20476424.158
+ 44.800 43.000
+ -17533775.200 7 -13662678.555 7 20355527.901 20355524.761 20355526.957
+ 42.800 47.800
+ -118609.761 4 -92422.827 3 24787728.114 24787724.021 24787726.358
+ 24.600 21.600
+ -16119176.477 6 -12560390.909 5 21837602.249 21837599.934 21837601.812
+ 38.900 31.500
+ -18557494.955 7 -14460382.824 7 21191505.461 21191501.142 21191504.936
+ 46.100 43.000
+ -1593586.630 3 -1241746.126 2 24179021.367 24179018.623 24179020.711
+ 23.800 15.100
+ 06 1 2 4 15 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21837449.258 8 -17016188.477 7 20512496.334 20512494.386 20512495.464
+ 48.200 42.400
+ -3296048.310 4 -2568349.296 4 23092073.936 23092071.777 23092073.322
+ 29.700 27.600
+ -21515283.009 7 -16765152.371 7 20485885.509 20485883.906 20485884.425
+ 44.900 43.000
+ -17525905.330 7 -13656546.195 7 20357025.565 20357022.429 20357024.587
+ 42.800 47.800
+ -122975.251 4 -95824.543 3 24786897.839 24786893.249 24786895.734
+ 27.100 22.600
+ -16024906.629 6 -12486933.901 5 21855541.791 21855539.109 21855540.805
+ 38.000 31.300
+ -18612730.426 7 -14503423.449 7 21180994.322 21180990.260 21180993.762
+ 45.800 43.200
+ -1485296.187 4 -1157363.965 3 24199628.405 24199626.387 24199627.694
+ 24.900 19.300
+ 06 1 2 4 16 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21849022.531 8 -17025206.613 7 20510293.881 20510292.108 20510293.072
+ 48.000 42.300
+ -3381510.109 4 -2634942.879 4 23075810.779 23075808.991 23075810.325
+ 28.100 27.100
+ -21464980.746 7 -16725955.817 7 20495457.850 20495456.112 20495456.628
+ 44.700 43.000
+ -17517651.517 7 -13650114.658 7 20358596.137 20358593.072 20358595.192
+ 42.900 47.800
+ -126809.628 4 -98812.289 3 24786167.931 24786163.465 24786166.121
+ 26.800 19.900
+ -15930272.405 6 -12413192.982 5 21873551.782 21873546.936 21873549.805
+ 38.100 30.400
+ -18667712.812 7 -14546266.861 7 21170531.613 21170527.414 21170530.900
+ 45.700 43.100
+ -1376993.119 4 -1072971.984 2 24220237.774 24220235.433 24220237.274
+ 25.300 17.800
+ 06 1 2 4 16 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21859898.304 8 -17033681.243 7 20508224.511 20508222.446 20508223.629
+ 48.100 42.500
+ -3466762.616 4 -2701373.363 4 23059588.031 23059586.066 23059587.364
+ 27.900 27.400
+ -21414091.912 7 -16686302.193 7 20505141.461 20505139.858 20505140.448
+ 45.000 42.700
+ -17509012.813 7 -13643383.197 7 20360239.716 20360236.896 20360238.935
+ 42.800 47.700
+ -130113.246 4 -101386.578 3 24785539.343 24785535.159 24785537.566
+ 25.300 22.600
+ -15835276.052 6 -12339169.872 5 21891626.906 21891624.387 21891626.535
+ 38.400 30.800
+ -18722440.873 7 -14588912.102 7 21160117.144 21160112.936 21160116.613
+ 46.200 43.000
+ -1268679.252 4 -988571.575 3 24240848.550 24240846.910 24240847.920
+ 24.200 18.600
+ 06 1 2 4 17 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21870076.312 7 -17041612.156 7 20506287.511 20506285.613 20506286.784
+ 47.800 42.700
+ -3551804.948 4 -2767640.082 4 23043405.013 23043402.645 23043404.216
+ 27.600 25.900
+ -21362618.004 7 -16646192.662 7 20514936.852 20514935.047 20514935.732
+ 44.800 42.700
+ -17499988.704 7 -13636351.426 7 20361957.134 20361954.151 20361956.194
+ 42.800 47.800
+ -132886.306 4 -103547.396 3 24785011.437 24785007.146 24785009.801
+ 25.900 19.900
+ -15739920.363 6 -12264866.748 5 21909773.485 21909770.053 21909772.214
+ 38.100 30.800
+ -18776913.277 7 -14631358.130 7 21149751.309 21149747.194 21149750.785
+ 46.000 43.100
+ -1160355.813 4 -904163.674 1 24261462.873 24261459.610 24261462.125
+ 26.800 11.000
+ 06 1 2 4 17 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21879556.933 7 -17048999.654 7 20504483.510 20504481.506 20504482.678
+ 47.700 42.700
+ -3636636.477 4 -2833742.556 4 23027262.193 23027259.847 23027261.407
+ 28.600 24.600
+ -21310560.509 7 -16605628.397 7 20524842.919 20524841.301 20524841.888
+ 44.800 42.800
+ -17490578.660 7 -13629018.925 7 20363747.748 20363744.853 20363746.834
+ 42.700 47.700
+ -135129.074 4 -105295.015 3 24784584.883 24784580.120 24784583.071
+ 29.000 21.100
+ -15644208.160 6 -12190285.862 5 21927986.897 21927983.374 21927985.681
+ 37.800 30.600
+ -18831128.656 7 -14673603.880 7 21139434.771 21139430.323 21139433.995
+ 45.800 43.100
+ -1052024.444 3 -819749.619 2 24282076.856 24282075.055 24282076.259
+ 23.800 17.000
+ 06 1 2 4 18 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21888339.464 7 -17055843.184 7 20502812.328 20502810.254 20502811.434
+ 47.700 42.700
+ -3721256.642 4 -2899680.336 4 23011159.525 23011157.050 23011158.627
+ 29.500 24.200
+ -21257921.072 7 -16564610.667 7 20534859.710 20534858.273 20534858.772
+ 45.000 42.700
+ -17480782.067 7 -13621385.214 7 20365611.969 20365609.079 20365611.163
+ 43.000 47.700
+ -136841.625 4 -106629.458 3 24784258.426 24784254.542 24784256.699
+ 26.800 19.900
+ -15548142.101 6 -12115429.198 4 21946266.371 21946264.071 21946266.080
+ 37.500 29.700
+ -18885085.369 7 -14715648.067 7 21129167.152 21129162.597 21129166.415
+ 46.000 43.200
+ -943686.448 4 -735330.387 3 24302693.671 24302691.766 24302693.126
+ 24.200 22.100
+ 06 1 2 4 18 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21896423.612 7 -17062142.522 7 20501273.997 20501271.889 20501273.163
+ 47.600 42.700
+ -3805664.621 5 -2965452.779 3 22995097.290 22995094.419 22995096.329
+ 30.600 22.600
+ -21204701.369 7 -16523140.785 7 20544987.302 20544985.637 20544986.145
+ 44.600 42.700
+ -17470598.224 7 -13613449.756 7 20367549.960 20367547.055 20367549.044
+ 42.900 47.800
+ -138024.703 4 -107551.352 3 24784033.957 24784029.184 24784032.194
+ 28.100 18.600
+ -15451724.752 6 -12040298.819 4 21964615.832 21964611.750 21964614.098
+ 37.600 29.900
+ -18938782.738 7 -14757490.176 7 21118948.728 21118944.393 21118948.142
+ 46.100 43.200
+ -835343.179 4 -650907.128 3 24323310.533 24323308.457 24323309.907
+ 24.200 21.600
+ 06 1 2 4 19 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21903809.147 7 -17067897.485 7 20499868.549 20499866.505 20499867.683
+ 47.400 42.900
+ -3889859.647 5 -3031059.297 3 22979075.511 22979072.564 22979074.624
+ 32.300 23.400
+ -21150903.041 7 -16481220.026 7 20555224.650 20555223.148 20555223.599
+ 44.700 42.600
+ -17460026.702 7 -13605212.211 7 20369561.619 20369558.794 20369560.734
+ 42.900 47.800
+ -138678.693 3 -108060.950 2 24783908.942 24783905.023 24783907.552
+ 22.600 17.000
+ -15354958.536 6 -11964896.604 4 21983028.683 21983025.771 21983027.921
+ 37.700 29.700
+ -18992219.138 7 -14799128.927 7 21108780.102 21108775.875 21108779.545
+ 46.200 43.400
+ -726996.378 3 -566481.063 2 24343927.601 24343926.800 24343927.036
+ 21.100 17.000
+ 06 1 2 4 19 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21910495.982 7 -17073108.002 7 20498595.925 20498594.135 20498595.139
+ 47.300 42.800
+ -3973841.011 5 -3096499.307 4 22963094.592 22963091.419 22963093.656
+ 31.600 25.600
+ -21096527.645 7 -16438849.601 7 20565572.080 20565570.414 20565571.039
+ 44.700 42.300
+ -17449067.040 7 -13596672.215 7 20371647.158 20371644.279 20371646.244
+ 42.800 47.700
+ -138803.889 4 -108158.533 3 24783885.180 24783880.935 24783883.195
+ 24.900 19.300
+ -15257846.409 6 -11889224.826 5 22001508.903 22001505.655 22001507.890
+ 37.600 30.200
+ -19045393.183 7 -14840563.246 7 21098661.673 21098657.145 21098661.017
+ 46.400 43.600
+ -618647.235 3 -482053.150 2 24364546.353 24364544.591 24364545.637
+ 22.100 17.800
+ 06 1 2 4 20 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21916484.431 7 -17077774.333 7 20497456.269 20497454.569 20497455.531
+ 47.300 42.900
+ -4057607.991 5 -3161772.259 4 22947154.213 22947151.170 22947153.351
+ 32.000 25.900
+ -21041576.849 7 -16396030.811 7 20576028.732 20576027.204 20576027.741
+ 44.600 42.200
+ -17437718.897 7 -13587829.507 7 20373806.822 20373803.728 20373805.808
+ 43.200 47.600
+ -138400.896 4 -107844.504 3 24783962.201 24783957.990 24783960.563
+ 29.000 20.500
+ -15160390.839 6 -11813285.464 5 22020054.919 22020050.991 22020053.294
+ 37.200 30.400
+ -19098303.766 7 -14881792.272 7 21088592.919 21088588.578 21088592.312
+ 46.100 43.600
+ -510297.175 3 -397624.557 2 24385164.102 24385162.161 24385163.967
+ 23.800 16.100
+ 06 1 2 4 20 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21921774.425 7 -17081896.405 7 20496449.420 20496447.788 20496448.725
+ 47.200 42.700
+ -4141159.761 5 -3226877.525 4 22931254.507 22931251.859 22931253.654
+ 32.700 26.500
+ -20986052.419 7 -16352765.042 7 20586594.881 20586593.175 20586593.809
+ 44.600 42.200
+ -17425981.551 7 -13578683.526 7 20376040.180 20376037.324 20376039.335
+ 43.300 47.700
+ -137469.813 4 -107118.954 3 24784138.825 24784134.487 24784136.866
+ 26.200 18.600
+ -15062594.840 6 -11737080.810 4 22038663.062 22038660.842 22038662.802
+ 36.800 29.500
+ -19150949.374 7 -14922814.824 7 21078574.800 21078570.492 21078574.185
+ 46.300 43.800
+ -401947.659 4 -313196.338 2 24405782.626 24405779.458 24405782.119
+ 24.600 13.900
+ 06 1 2 4 21 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21926365.459 7 -17085473.833 7 20495575.969 20495574.146 20495575.170
+ 47.000 42.800
+ -4224495.934 5 -3291814.770 4 22915395.988 22915393.542 22915395.097
+ 30.200 28.100
+ -20929956.127 7 -16309053.654 7 20597269.679 20597267.926 20597268.596
+ 44.900 42.200
+ -17413854.142 7 -13569233.594 7 20378347.949 20378345.031 20378347.063
+ 43.100 47.500
+ -136011.283 4 -105982.424 3 24784417.066 24784412.303 24784415.198
+ 26.800 19.900
+ -14964460.884 6 -11660612.811 4 22057338.676 22057335.290 22057337.478
+ 36.600 29.200
+ -19203328.763 7 -14963629.929 7 21068607.692 21068603.145 21068606.963
+ 46.300 44.000
+ -293600.054 4 -228769.621 2 24426400.850 24426398.333 24426400.239
+ 25.300 15.100
+ 06 1 2 4 21 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21930257.343 7 -17088506.469 7 20494835.352 20494833.513 20494834.583
+ 47.100 42.700
+ -4307615.857 4 -3356583.512 4 22899578.795 22899576.421 22899577.799
+ 29.200 27.900
+ -20873289.686 7 -16264897.997 7 20608052.497 20608051.250 20608051.626
+ 44.400 42.100
+ -17401336.482 7 -13559479.578 7 20380730.103 20380727.036 20380729.244
+ 43.400 47.300
+ -134025.793 3 -104435.332 3 24784794.516 24784790.115 24784792.626
+ 23.400 21.600
+ -14865991.577 6 -11583883.517 4 22076076.532 22076073.403 22076075.497
+ 37.100 29.500
+ -19255440.633 7 -15004236.580 7 21058690.847 21058686.521 21058690.181
+ 46.600 44.000
+ -185255.672 3 -144345.452 3 24447018.156 24447016.544 24447017.392
+ 23.400 20.500
+ 06 1 2 4 22 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21933450.722 7 -17090994.818 7 20494227.618 20494225.872 20494226.970
+ 47.200 42.600
+ -4390518.505 4 -3421182.943 4 22883802.938 22883800.613 22883801.989
+ 29.500 29.000
+ -20816054.803 7 -16220299.402 6 20618944.267 20618942.680 20618943.176
+ 44.500 41.900
+ -17388428.039 7 -13549421.053 7 20383186.529 20383183.506 20383185.687
+ 43.200 47.400
+ -131513.905 3 -102477.951 3 24785272.934 24785268.459 24785270.860
+ 23.000 23.000
+ -14767189.831 6 -11506895.153 4 22094877.378 22094874.707 22094876.798
+ 37.100 29.000
+ -19307283.464 7 -15044633.589 7 21048825.661 21048821.156 21048824.859
+ 46.300 44.000
+ -76915.902 3 -59924.888 3 24467633.016 24467632.311 24467632.757
+ 23.800 20.500
+ 06 1 2 4 22 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21935945.458 7 -17092938.770 7 20493753.138 20493751.145 20493752.203
+ 47.000 42.700
+ -4473203.495 4 -3485612.773 4 22868068.380 22868065.997 22868067.547
+ 29.900 27.900
+ -20758253.382 7 -16175259.341 6 20629943.685 20629941.910 20629942.487
+ 44.300 41.900
+ -17375128.100 7 -13539057.465 7 20385717.423 20385714.399 20385716.466
+ 43.400 47.400
+ -128476.200 4 -100110.906 4 24785850.544 24785846.643 24785849.044
+ 27.400 25.300
+ -14668058.292 6 -11429649.840 4 22113742.760 22113738.995 22113741.180
+ 36.500 29.500
+ -19358856.189 7 -15084820.127 7 21039011.697 21039007.199 21039010.997
+ 46.500 44.100
+ 31417.918 4 24491.087 3 24488250.098 24488247.702 24488249.374
+ 25.900 18.600
+ 06 1 2 4 23 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21937741.294 7 -17094338.120 7 20493411.054 20493409.382 20493410.345
+ 46.800 42.700
+ -4555670.026 5 -3549872.396 4 22852375.802 22852373.218 22852374.896
+ 31.600 27.600
+ -20699887.379 7 -16129779.347 6 20641050.358 20641048.495 20641049.269
+ 44.400 41.600
+ -17361436.177 7 -13528388.436 7 20388322.757 20388319.881 20388321.948
+ 43.600 47.400
+ -124913.129 4 -97334.473 3 24786529.087 24786524.318 24786527.026
+ 26.200 22.100
+ -14568599.748 6 -11352149.691 4 22132667.547 22132665.183 22132667.194
+ 36.200 28.800
+ -19410157.506 7 -15124795.181 7 21029249.321 21029244.804 21029248.697
+ 46.800 44.000
+ 139744.439 4 108901.326 2 24508863.895 24508861.514 24508863.449
+ 26.800 17.800
+ 06 1 2 4 23 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21938838.919 7 -17095193.415 7 20493202.202 20493200.452 20493201.463
+ 47.000 42.600
+ -4637917.578 5 -3613961.385 4 22836724.237 22836722.012 22836723.392
+ 32.300 27.400
+ -20640958.632 7 -16083860.849 6 20652264.245 20652262.365 20652263.033
+ 44.500 41.800
+ -17347351.947 7 -13517413.713 7 20391003.168 20390999.999 20391002.273
+ 43.700 47.300
+ -120825.383 4 -94149.254 3 24787306.540 24787302.294 24787304.689
+ 24.900 20.500
+ -14468816.653 5 -11274396.667 4 22151656.850 22151653.257 22151655.346
+ 35.800 28.400
+ -19461185.860 7 -15164557.535 7 21019538.814 21019534.501 21019538.236
+ 46.600 44.300
+ 248062.204 3 193304.776 2 24529474.861 24529473.182 24529474.662
+ 19.900 15.100
+ 06 1 2 4 24 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21939238.319 7 -17095504.631 7 20493126.356 20493124.405 20493125.550
+ 47.000 42.400
+ -4719945.315 5 -3677879.084 4 22821114.715 22821112.628 22821114.000
+ 31.300 27.400
+ -20581468.973 7 -16037505.280 6 20663584.569 20663582.975 20663583.426
+ 44.000 41.900
+ -17332874.737 7 -13506132.774 7 20393758.001 20393754.904 20393757.092
+ 43.600 47.200
+ -116213.472 4 -90555.564 3 24788184.300 24788179.684 24788182.506
+ 26.800 19.900
+ -14368712.035 6 -11196393.099 4 22170704.158 22170702.464 22170704.331
+ 36.500 28.600
+ -19511940.014 7 -15204106.227 7 21009880.800 21009876.423 21009880.170
+ 46.700 44.400
+ 356369.971 3 277700.449 1 24550085.258 24550083.649 24550084.766
+ 22.100 6.500
+ 06 1 2 4 24 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21938939.623 7 -17095271.882 7 20493183.187 20493181.298 20493182.416
+ 47.100 42.400
+ -4801752.551 5 -3741624.967 4 22805547.914 22805545.262 22805546.827
+ 31.800 27.600
+ -20521420.253 7 -15990714.080 6 20675011.395 20675009.838 20675010.261
+ 44.000 41.800
+ -17318004.193 7 -13494545.337 7 20396587.738 20396584.631 20396586.739
+ 43.500 47.000
+ -111078.259 4 -86554.096 3 24789161.663 24789157.127 24789159.816
+ 25.900 21.600
+ -14268288.733 6 -11118141.192 4 22189816.801 22189812.750 22189815.101
+ 36.200 28.800
+ -19562418.541 7 -15243440.142 7 21000274.947 21000270.554 21000274.427
+ 46.600 44.300
+ 464666.421 2 362087.307 1 24570693.813 24570691.490 24570692.932
+ 17.800 11.000
+ 06 1 2 4 25 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21937943.055 7 -17094495.326 7 20493372.799 20493370.870 20493371.993
+ 47.100 42.400
+ -4883338.901 5 -3805198.728 4 22790022.401 22790019.939 22790021.462
+ 31.600 29.000
+ -20460814.502 7 -15943488.832 6 20686544.100 20686542.670 20686543.157
+ 44.300 41.600
+ -17302739.722 7 -13482650.950 7 20399492.371 20399489.373 20399491.524
+ 43.800 47.000
+ -105420.080 4 -82145.118 2 24790238.403 24790233.634 24790236.630
+ 27.400 17.000
+ -14167549.306 6 -11039642.978 4 22208984.732 22208982.865 22208984.728
+ 36.000 29.500
+ -19612620.400 7 -15282558.473 7 20990721.926 20990717.461 20990721.267
+ 46.400 44.400
+ 572950.291 3 446464.340 2 24591299.555 24591298.116 24591299.075
+ 21.100 15.100
+ 06 1 2 4 25 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21936248.934 7 -17093175.234 7 20493695.205 20493693.381 20493694.435
+ 47.300 42.300
+ -4964703.488 5 -3868599.678 4 22774539.335 22774536.816 22774538.536
+ 31.500 28.600
+ -20399653.262 7 -15895830.737 6 20698183.134 20698181.297 20698181.935
+ 44.300 41.500
+ -17287080.877 7 -13470449.254 7 20402472.468 20402469.230 20402471.433
+ 43.800 47.000
+ -99239.923 4 -77329.407 3 24791414.400 24791409.894 24791412.619
+ 24.600 21.100
+ -14066496.270 5 -10960900.368 4 22228216.595 22228212.665 22228214.869
+ 34.800 28.400
+ -19662544.013 7 -15321459.985 7 20981221.673 20981217.254 20981221.041
+ 46.400 44.500
+ 681220.275 3 530830.560 1 24611902.909 24611900.689 24611902.141
+ 21.600 9.000
+ 06 1 2 4 26 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21933857.194 7 -17091311.534 7 20494150.629 20494148.555 20494149.830
+ 47.400 42.500
+ -5045845.666 5 -3931827.335 4 22759098.207 22759095.948 22759097.338
+ 32.100 28.600
+ -20337938.521 7 -15847741.336 6 20709927.156 20709925.240 20709925.905
+ 44.100 41.300
+ -17271027.104 7 -13457939.819 7 20405527.269 20405524.125 20405526.361
+ 43.900 46.800
+ -92538.239 4 -72107.374 2 24792689.510 24792684.458 24792687.838
+ 27.900 15.100
+ -13965132.541 5 -10881915.681 4 22247504.011 22247501.433 22247503.586
+ 35.600 27.900
+ -19712187.858 7 -15360143.502 7 20971774.814 20971770.379 20971774.190
+ 46.600 44.700
+ 789474.949 3 615184.830 2 24632502.634 24632500.514 24632502.122
+ 23.000 15.100
+ 06 1 2 4 26 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21930768.463 7 -17088904.727 7 20494738.183 20494736.165 20494737.394
+ 47.300 42.400
+ -5126764.893 5 -3994881.253 4 22743699.746 22743697.342 22743698.898
+ 33.000 27.900
+ -20275672.407 7 -15799222.292 6 20721775.229 20721774.062 20721774.446
+ 44.000 41.100
+ -17254578.213 7 -13445122.501 7 20408657.244 20408654.194 20408656.369
+ 43.900 46.800
+ -85315.996 4 -66479.575 2 24794063.709 24794059.108 24794062.105
+ 24.900 17.800
+ -13863461.181 5 -10802691.247 4 22266852.033 22266848.760 22266850.980
+ 35.300 28.100
+ -19761551.017 7 -15398608.298 7 20962381.083 20962376.830 20962380.552
+ 46.600 44.500
+ 897713.204 3 699526.341 9 24653099.912 24653097.367 24653099.613
+ 22.100 -3.000
+ 06 1 2 4 27 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21926982.925 7 -17085954.951 7 20495458.574 20495456.502 20495457.667
+ 47.300 42.300
+ -5207460.437 5 -4057760.886 4 22728344.127 22728341.263 22728343.178
+ 33.200 26.200
+ -20212856.884 7 -15750275.146 6 20733728.944 20733727.472 20733727.912
+ 44.100 41.200
+ -17237733.701 7 -13431996.908 7 20411862.778 20411859.608 20411861.807
+ 44.100 46.700
+ -77573.808 4 -60446.722 3 24795537.092 24795532.943 24795535.377
+ 25.300 22.600
+ -13761484.822 5 -10723229.181 4 22286256.675 22286254.288 22286256.328
+ 35.600 27.900
+ -19810631.932 7 -15436853.166 7 20953041.400 20953037.100 20953040.806
+ 46.600 44.600
+ 1005933.628 3 783853.953 2 24673693.039 24673691.573 24673692.337
+ 21.600 12.600
+ 06 1 2 4 27 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21922500.938 7 -17082462.491 7 20496311.463 20496309.489 20496310.595
+ 47.400 42.200
+ -5287931.748 5 -4120465.796 4 22713030.940 22713028.099 22713029.721
+ 32.800 26.200
+ -20149494.007 7 -15700901.478 6 20745786.947 20745784.953 20745785.636
+ 44.100 41.300
+ -17220492.984 7 -13418562.584 7 20415143.473 20415140.395 20415142.617
+ 44.000 46.600
+ -69312.419 4 -54009.228 3 24797109.598 24797104.648 24797108.016
+ 27.900 19.900
+ -13659206.006 5 -10643531.421 4 22305720.983 22305717.239 22305719.403
+ 33.800 26.500
+ -19859429.330 7 -15474877.118 7 20943755.518 20943751.236 20943754.970
+ 46.500 44.700
+ 1114134.985 3 868166.669 3 24694283.476 24694281.814 24694282.795
+ 19.900 18.600
+ 06 1 2 4 28 0.0000000 0 8G09G14G15G18G19G21G22G26
+ -21917323.178 7 -17078427.871 7 20497296.592 20497294.767 20497295.927
+ 47.500 42.300
+ -5368178.131 5 -4182995.422 4 22697760.196 22697757.732 22697759.208
+ 32.100 27.400
+ -20085585.694 7 -15651102.804 6 20757947.828 20757946.382 20757946.883
+ 44.100 41.000
+ -17202855.656 7 -13404819.214 7 20418499.983 20418496.715 20418499.052
+ 44.400 46.500
+ -60532.874 3 -47168.072 3 24798779.997 24798775.701 24798778.262
+ 22.100 21.600
+ -13556627.777 5 -10563600.377 4 22325239.469 22325237.537 22325239.021
+ 34.500 28.600
+ -19907941.944 7 -15512679.151 7 20934524.062 20934519.626 20934523.320
+ 46.400 44.900
+ 1222316.115 3 952463.665 2 24714869.681 24714867.768 24714868.982
+ 21.100 17.000
+ 06 1 2 4 28 30.0000000 0 8G09G14G15G18G19G21G22G26
+ -21911449.335 7 -17073850.854 7 20498414.571 20498412.414 20498413.797
+ 47.800 42.000
+ -5448198.792 5 -4245349.156 4 22682532.966 22682530.195 22682532.020
+ 33.100 28.100
+ -20021134.026 7 -15600880.745 6 20770212.687 20770211.126 20770211.686
+ 43.900 41.200
+ -17184821.365 7 -13390766.525 7 20421931.725 20421928.560 20421930.851
+ 44.400 46.600
+ -51235.228 3 -39923.167 3 24800549.431 24800544.329 24800547.039
+ 21.600 19.300
+ -13453752.957 5 -10483438.200 4 22344817.520 22344813.893 22344815.984
+ 33.900 27.400
+ -19956168.249 7 -15550258.086 7 20925346.819 20925342.433 20925346.131
+ 46.300 44.900
+ 1330475.792 3 1036743.895 2 24735452.252 24735450.259 24735451.805
+ 21.600 17.800
+ 06 1 2 4 29 0.0000000 0 7G09G14G15G18G19G21G22
+ -21904880.646 7 -17068732.390 7 20499664.752 20499662.436 20499663.857
+ 47.600 42.100
+ -5527993.636 5 -4307526.935 4 22667348.844 22667345.854 22667347.941
+ 33.800 29.000
+ -19956141.149 7 -15550236.947 6 20782581.157 20782578.968 20782579.754
+ 43.800 41.300
+ -17166389.684 7 -13376404.177 7 20425439.157 20425435.844 20425438.168
+ 44.300 46.300
+ -41420.916 3 -32275.593 3 24802416.218 24802412.403 24802415.142
+ 20.500 19.300
+ -13350584.229 5 -10403047.016 4 22364448.727 22364446.283 22364448.149
+ 34.500 27.100
+ -20004106.762 7 -15587612.771 7 20916224.473 20916220.141 20916223.780
+ 46.400 45.200
+ 06 1 2 4 29 30.0000000 0 7G09G14G15G18G19G21G22
+ -21897616.993 7 -17063072.400 7 20501046.924 20501044.657 20501046.105
+ 47.900 42.000
+ -5607561.795 5 -4369528.072 4 22652207.280 22652204.606 22652206.325
+ 33.100 28.600
+ -19890609.114 7 -15499173.034 6 20795050.695 20795049.236 20795049.824
+ 43.800 41.000
+ -17147560.125 7 -13361731.799 7 20429022.055 20429018.926 20429021.256
+ 44.400 46.200
+ -31090.791 3 -24226.166 2 24804381.877 24804377.758 24804380.265
+ 19.300 17.800
+ -13247124.440 5 -10322429.005 4 22384136.855 22384133.811 22384135.842
+ 33.000 26.500
+ -20051756.271 7 -15624742.255 7 20907157.080 20907152.749 20907156.433
+ 46.400 45.200
+ 06 1 2 4 30 0.0000000 0 6G09G14G15G18G21G22
+ -21889659.193 7 -17056871.513 6 20502561.391 20502558.953 20502560.542
+ 47.900 41.900
+ -5686902.518 5 -4431351.983 5 22637108.946 22637106.825 22637107.947
+ 32.600 30.100
+ -19824540.134 7 -15447690.728 6 20807623.116 20807621.782 20807622.286
+ 43.800 41.100
+ -17128332.200 7 -13346749.003 7 20432681.195 20432677.986 20432680.319
+ 44.400 46.300
+ -13143376.087 5 -10241586.173 4 22403878.715 22403876.653 22403878.262
+ 33.200 25.900
+ -20099115.469 7 -15661645.521 7 20898145.059 20898140.552 20898144.373
+ 46.500 45.100
+ 06 1 2 4 30 30.0000000 0 6G09G14G15G18G21G22
+ -21881007.941 7 -17050130.271 7 20504207.724 20504205.278 20504206.812
+ 47.700 42.100
+ -5766015.267 5 -4492998.253 5 22622054.782 22622052.115 22622053.873
+ 34.400 30.200
+ -19757936.315 7 -15395791.663 6 20820298.054 20820295.999 20820296.833
+ 43.700 40.600
+ -17108705.653 7 -13331455.593 7 20436415.876 20436412.867 20436414.979
+ 44.200 46.100
+ -13039342.192 5 -10160520.833 4 22423676.877 22423673.664 22423675.437
+ 32.800 27.400
+ -20146183.014 7 -15698321.536 7 20889188.389 20889183.818 20889187.706
+ 46.600 45.100
+ 06 1 2 4 31 0.0000000 0 6G09G14G15G18G21G22
+ -21871663.875 7 -17042849.176 7 20505985.320 20505983.449 20505984.643
+ 47.500 42.000
+ -5844899.311 5 -4554466.337 5 22607043.719 22607040.764 22607042.698
+ 34.400 30.200
+ -19690799.614 7 -15343477.354 6 20833073.847 20833071.642 20833072.477
+ 43.400 40.500
+ -17088679.914 7 -13315851.119 7 20440226.804 20440223.667 20440225.889
+ 44.400 46.100
+ -12935025.633 5 -10079235.233 4 22443526.167 22443524.539 22443526.027
+ 33.500 26.800
+ -20192957.172 7 -15734768.929 7 20880287.461 20880282.984 20880286.745
+ 46.400 45.200
+ 06 1 2 4 31 30.0000000 0 6G09G14G15G18G21G22
+ -21861627.200 7 -17035028.387 6 20507895.500 20507893.301 20507894.602
+ 47.700 41.900
+ -5923554.401 5 -4615755.994 5 22592075.492 22592073.243 22592074.577
+ 32.800 30.200
+ -19623132.218 7 -15290749.518 6 20845949.797 20845948.381 20845948.925
+ 43.700 40.500
+ -17068254.743 7 -13299935.403 7 20444113.528 20444110.424 20444112.610
+ 44.500 46.300
+ -12830429.415 5 -9997731.715 4 22463432.172 22463428.552 22463430.432
+ 32.800 26.800
+ -20239437.113 7 -15770987.065 7 20871442.387 20871438.144 20871441.820
+ 46.500 45.300
+ 06 1 2 4 32 0.0000000 0 6G09G14G15G18G21G22
+ -21850898.716 7 -17026668.524 6 20509936.808 20509934.707 20509936.093
+ 47.400 41.900
+ -6001979.821 5 -4676866.674 4 22577152.076 22577149.434 22577151.181
+ 33.600 29.700
+ -19554936.299 7 -15237609.853 6 20858926.938 20858925.669 20858926.150
+ 43.600 40.500
+ -17047429.714 7 -13283708.106 7 20448076.350 20448073.251 20448075.391
+ 44.400 46.200
+ -12725556.018 5 -9916012.205 4 22483386.898 22483385.360 22483386.935
+ 33.000 27.100
+ -20285621.425 7 -15806974.841 7 20862653.845 20862649.564 20862653.319
+ 46.700 45.400
+ 06 1 2 4 32 30.0000000 0 6G09G14G15G18G21G22
+ -21839479.460 7 -17017770.396 6 20512109.992 20512107.794 20512109.194
+ 47.600 41.900
+ -6080174.931 5 -4737797.925 4 22562272.387 22562269.319 22562271.349
+ 34.900 29.700
+ -19486214.292 7 -15184060.251 6 20872004.947 20872003.179 20872003.791
+ 43.600 40.600
+ -17026204.564 7 -13267169.034 7 20452115.645 20452112.331 20452114.655
+ 44.400 46.200
+ -12620408.189 5 -9834078.875 4 22503397.735 22503394.264 22503396.207
+ 32.400 26.500
+ -20331508.699 7 -15842731.155 7 20853921.646 20853917.503 20853921.162
+ 46.400 45.300
+ 06 1 2 4 33 0.0000000 0 6G09G14G15G18G21G22
+ -21827369.706 7 -17008334.224 6 20514414.230 20514412.269 20514413.505
+ 47.400 41.800
+ -6158139.085 5 -4798549.195 4 22547435.441 22547432.856 22547434.545
+ 33.400 29.700
+ -19416968.225 7 -15130102.281 6 20885182.198 20885180.243 20885180.912
+ 43.400 40.500
+ -17004578.956 7 -13250317.913 7 20456230.650 20456227.571 20456229.764
+ 44.700 46.100
+ -12514988.918 5 -9751934.006 4 22523457.446 22523455.019 22523456.864
+ 33.400 27.100
+ -20377097.249 7 -15878254.701 7 20845246.573 20845242.353 20845245.956
+ 46.400 45.500
+ 06 1 2 4 33 30.0000000 0 6G09G14G15G18G21G22
+ -21814570.267 7 -16998360.629 6 20516849.854 20516847.843 20516849.082
+ 47.300 41.900
+ -6235871.715 5 -4859120.049 5 22532643.664 22532640.932 22532642.828
+ 34.000 30.400
+ -19347200.150 7 -15075737.558 6 20898458.023 20898456.686 20898457.083
+ 43.500 40.600
+ -16982552.451 7 -13233154.409 7 20460422.096 20460419.075 20460421.244
+ 44.800 46.100
+ -12409301.121 5 -9669579.925 4 22543569.008 22543566.731 22543568.622
+ 33.500 24.600
+ -20422385.863 7 -15913544.527 7 20836628.700 20836624.165 20836627.995
+ 46.500 45.600
+ 06 1 2 4 34 0.0000000 0 6G09G14G15G18G21G22
+ -21801082.043 7 -16987850.325 6 20519416.854 20519414.625 20519415.981
+ 47.500 41.900
+ -6313372.218 5 -4919510.029 5 22517895.993 22517893.462 22517895.093
+ 34.400 30.600
+ -19276912.328 7 -15020967.844 6 20911833.149 20911832.081 20911832.345
+ 43.400 40.400
+ -16960124.512 7 -13215678.097 7 20464690.030 20464686.988 20464689.092
+ 44.700 46.100
+ -12303347.558 5 -9587018.706 3 22563732.728 22563728.786 22563731.295
+ 31.800 23.800
+ -20467373.405 7 -15948599.753 7 20828067.663 20828063.170 20828067.089
+ 46.400 45.400
+ 06 1 2 4 34 30.0000000 0 6G09G14G15G18G21G22
+ -21786905.687 7 -16976803.810 7 20522114.221 20522112.421 20522113.521
+ 47.500 42.100
+ -6390640.201 5 -4979718.818 4 22503191.662 22503189.641 22503190.579
+ 33.200 29.700
+ -19206107.248 7 -14965795.078 6 20925307.382 20925305.860 20925306.347
+ 43.400 40.300
+ -16937294.993 7 -13197888.858 7 20469034.381 20469031.332 20469033.396
+ 44.600 46.100
+ -12197130.996 5 -9504252.602 4 22583943.122 22583941.229 22583942.960
+ 32.100 25.600
+ -20512058.371 7 -15983419.207 7 20819564.473 20819559.988 20819563.833
+ 46.500 45.500
+ 06 1 2 4 35 0.0000000 0 6G09G14G15G18G21G22
+ -21772042.370 7 -16965222.004 7 20524942.823 20524940.711 20524942.027
+ 47.600 42.000
+ -6467674.603 5 -5039745.612 4 22488532.887 22488529.860 22488531.850
+ 33.500 29.200
+ -19134787.373 7 -14910221.161 6 20938879.721 20938877.440 20938878.356
+ 43.200 39.800
+ -16914063.862 7 -13179786.677 7 20473455.035 20473452.042 20473454.132
+ 44.700 45.900
+ -12090654.352 5 -9421283.837 4 22604206.926 22604203.166 22604205.436
+ 31.600 24.900
+ -20556439.322 7 -16018001.767 7 20811119.057 20811114.625 20811118.468
+ 46.600 45.600
+ 06 1 2 4 35 30.0000000 0 6G09G14G15G18G21G22
+ -21756492.602 7 -16953105.299 7 20527901.985 20527899.709 20527901.124
+ 47.600 42.100
+ -6544475.746 5 -5099590.646 5 22473918.314 22473915.385 22473917.397
+ 34.500 30.100
+ -19062954.764 7 -14854247.705 6 20952548.604 20952546.684 20952547.440
+ 43.300 39.700
+ -16890430.351 7 -13161370.953 7 20477952.343 20477949.303 20477951.476
+ 44.700 45.700
+ -11983920.315 5 -9338114.463 4 22624516.020 22624514.169 22624515.870
+ 32.300 25.600
+ -20600514.783 7 -16052346.280 7 20802731.741 20802727.282 20802731.164
+ 46.700 45.600
+ 06 1 2 4 36 0.0000000 0 6G09G14G15G18G21G22
+ -21740256.658 7 -16940453.912 7 20530991.367 20530989.416 20530990.637
+ 47.700 42.000
+ -6621042.279 5 -5159252.859 5 22459347.885 22459345.838 22459347.004
+ 34.500 30.800
+ -18990611.585 7 -14797876.413 6 20966314.659 20966313.218 20966313.747
+ 43.400 40.000
+ -16866394.320 7 -13142641.580 7 20482526.231 20482523.162 20482525.409
+ 44.600 45.600
+ -11876931.908 5 -9254746.904 4 22644875.826 22644873.134 22644875.270
+ 31.800 24.600
+ -20644283.670 7 -16086451.907 7 20794402.797 20794398.290 20794402.141
+ 46.400 45.700
+ 06 1 2 4 36 30.0000000 0 6G09G14G15G18G21G22
+ -21723336.831 7 -16927269.625 6 20534211.314 20534209.095 20534210.380
+ 47.500 41.900
+ -6697373.939 5 -5218732.047 5 22444822.181 22444820.055 22444821.479
+ 34.500 30.100
+ -18917760.314 7 -14741109.200 6 20980177.548 20980176.378 20980176.798
+ 43.200 39.700
+ -16841955.443 7 -13123598.301 7 20487176.981 20487173.691 20487176.044
+ 44.900 45.600
+ -11769692.076 5 -9171183.412 4 22665283.780 22665280.375 22665282.334
+ 31.800 26.200
+ -20687744.483 7 -16120317.475 7 20786132.544 20786128.046 20786131.847
+ 46.400 45.800
+ 06 1 2 4 37 0.0000000 0 6G09G14G15G18G21G22
+ -21705733.460 7 -16913552.713 6 20537560.998 20537558.900 20537560.137
+ 47.400 41.900
+ -6773470.153 5 -5278027.791 5 22430342.167 22430339.147 22430341.213
+ 34.700 30.200
+ -18844403.475 7 -14683948.041 6 20994137.226 20994135.659 20994136.209
+ 42.900 39.700
+ -16817113.185 7 -13104240.696 7 20491904.290 20491901.082 20491903.345
+ 44.700 45.400
+ -11662203.621 5 -9087426.208 4 22685737.444 22685735.026 22685736.530
+ 31.300 26.500
+ -20730895.799 7 -16153941.873 7 20777920.941 20777916.680 20777920.403
+ 46.500 46.000
+ 06 1 2 4 37 30.0000000 0 6G09G14G15G18G21G22
+ -21687447.258 7 -16899303.720 6 20541040.986 20541038.811 20541039.991
+ 47.500 41.900
+ -6849330.470 5 -5337139.710 5 22415906.439 22415903.680 22415905.375
+ 35.700 31.300
+ -18770543.331 7 -14626394.698 6 21008192.750 21008190.795 21008191.461
+ 42.700 39.500
+ -16791867.818 7 -13084568.985 7 20496708.336 20496705.177 20496707.360
+ 44.800 45.500
+ -11554469.200 5 -9003477.341 4 22706239.145 22706235.906 22706238.318
+ 31.000 26.200
+ -20773736.455 7 -16187324.199 7 20769768.845 20769764.370 20769768.158
+ 46.400 46.100
+ 06 1 2 4 38 0.0000000 0 6G09G14G15G18G21G22
+ -21668479.206 7 -16884523.417 7 20544650.133 20544648.293 20544649.302
+ 47.500 42.000
+ -6924954.250 5 -5396067.302 5 22401515.023 22401512.926 22401514.311
+ 34.400 31.000
+ -18696182.164 7 -14568450.941 6 21022343.190 21022341.425 21022341.991
+ 42.700 39.800
+ -16766218.830 7 -13064582.764 7 20501588.929 20501585.966 20501588.084
+ 44.800 45.300
+ -11446491.788 5 -8919339.143 4 22726786.161 22726783.735 22726785.236
+ 31.300 27.400
+ -20816264.940 7 -16220463.278 7 20761675.701 20761671.417 20761675.096
+ 46.400 46.100
+ 06 1 2 4 38 30.0000000 0 6G09G14G15G18G21G22
+ -21648830.527 7 -16869212.760 7 20548389.172 20548387.213 20548388.362
+ 47.500 42.000
+ -7000340.753 5 -5454810.010 4 22387170.045 22387167.117 22387169.165
+ 35.400 29.700
+ -18621322.452 7 -14510118.712 6 21036588.090 21036586.783 21036587.018
+ 42.400 39.800
+ -16740165.645 7 -13044281.588 7 20506546.928 20506543.649 20506545.944
+ 44.900 45.000
+ -11338274.192 5 -8835013.791 4 22747378.853 22747376.659 22747378.338
+ 31.500 27.100
+ -20858479.751 7 -16253357.936 7 20753642.590 20753638.232 20753641.923
+ 46.600 46.100
+ 06 1 2 4 39 0.0000000 0 6G09G14G15G18G21G22
+ -21628502.162 7 -16853372.472 6 20552257.597 20552255.475 20552256.724
+ 47.500 41.800
+ -7075489.621 5 -5513367.570 5 22372869.605 22372866.791 22372868.649
+ 35.600 31.100
+ -18545966.530 7 -14451399.823 6 21050927.266 21050926.552 21050926.725
+ 42.300 39.400
+ -16713708.355 7 -13023665.528 7 20511581.543 20511578.290 20511580.669
+ 44.900 44.900
+ -11229819.277 5 -8750503.508 4 22768018.585 22768014.946 22768017.259
+ 30.800 24.900
+ -20900379.419 7 -16286007.028 7 20745669.352 20745665.066 20745668.710
+ 46.600 46.300
+ 06 1 2 4 39 30.0000000 0 6G09G14G15G18G21G22
+ -21607495.214 7 -16837003.420 6 20556254.911 20556252.884 20556254.168
+ 47.300 41.600
+ -7150400.579 5 -5571739.718 5 22358614.176 22358611.575 22358613.219
+ 35.300 31.000
+ -18470116.779 7 -14392296.133 6 21065360.787 21065360.396 21065360.396
+ 42.500 39.700
+ -16686846.328 7 -13002734.080 7 20516693.242 20516690.014 20516692.292
+ 45.100 44.900
+ -11121129.734 5 -8665810.400 4 22788700.793 22788697.749 22788699.868
+ 31.500 24.200
+ -20941962.996 7 -16318409.814 7 20737756.347 20737751.913 20737755.673
+ 46.700 46.200
+ 06 1 2 4 40 0.0000000 0 6G09G14G15G18G21G22
+ -21585810.674 7 -16820106.374 6 20560381.499 20560379.402 20560380.634
+ 47.300 41.800
+ -7225072.882 6 -5629925.919 5 22344405.078 22344401.935 22344404.138
+ 36.500 31.000
+ -18393775.554 7 -14332809.481 6 21079888.506 21079887.609 21079887.770
+ 42.200 39.500
+ -16659579.669 7 -12981487.331 7 20521881.860 20521878.647 20521880.966
+ 45.200 44.700
+ -11012208.716 5 -8580936.921 3 22809427.163 22809424.739 22809426.638
+ 31.300 23.800
+ -20983229.139 7 -16350565.253 7 20729903.574 20729899.150 20729902.945
+ 46.500 46.200
+ 06 1 2 4 40 30.0000000 0 6G09G14G15G18G21G22
+ -21563450.191 7 -16802682.625 6 20564636.416 20564634.507 20564635.564
+ 47.500 41.700
+ -7299505.908 5 -5687925.669 5 22330240.830 22330238.036 22330239.682
+ 35.400 32.000
+ -18316945.552 7 -14272941.964 6 21094508.911 21094507.781 21094508.138
+ 42.300 39.200
+ -16631908.303 7 -12959925.230 7 20527147.634 20527144.272 20527146.692
+ 45.200 44.700
+ -10903059.170 5 -8495885.362 3 22830198.672 22830195.292 22830197.418
+ 30.100 23.800
+ -21024176.165 7 -16382472.021 7 20722111.762 20722107.186 20722111.063
+ 46.600 46.200
+ 06 1 2 4 41 0.0000000 0 6G09G14G15G18G21G22
+ -21540414.386 7 -16784732.645 6 20569020.225 20569018.031 20569019.313
+ 47.500 41.600
+ -7373699.344 5 -5745738.696 5 22316122.022 22316119.307 22316120.949
+ 35.800 31.000
+ -18239629.292 7 -14212695.541 6 21109221.815 21109220.529 21109220.990
+ 42.200 39.000
+ -16603831.581 7 -12938047.266 7 20532490.522 20532487.210 20532489.472
+ 45.200 44.700
+ -10793683.893 4 -8410657.882 3 22851011.852 22851008.476 22851010.809
+ 29.900 23.000
+ -21064802.778 7 -16414129.124 7 20714380.803 20714376.258 20714380.182
+ 46.700 46.300
+ 06 1 2 4 41 30.0000000 0 7G05G09G14G15G18G21G22
+ -161180.522 2 -125595.381 3 24445016.335 24445014.644 24445014.074
+ 17.800 20.500
+ -21516704.729 7 -16766257.585 6 20573531.874 20573529.744 20573531.054
+ 47.500 41.400
+ -7447652.584 5 -5803364.600 5 22302049.304 22302046.211 22302048.479
+ 35.800 30.800
+ -18161829.116 7 -14152072.032 6 21124026.964 21124025.432 21124025.962
+ 42.000 38.700
+ -16575349.272 7 -12915853.265 7 20537910.112 20537907.274 20537909.412
+ 45.300 44.700
+ -10684085.516 5 -8325256.596 3 22871866.981 22871864.767 22871866.576
+ 30.400 21.600
+ -21105107.807 7 -16445535.639 7 20706710.901 20706706.443 20706710.212
+ 46.500 46.500
+ 06 1 2 4 42 0.0000000 0 7G05G09G14G15G18G21G22
+ -254057.528 3 -197966.998 3 24427338.701 24427340.204 24427339.288
+ 19.300 18.600
+ -21492322.375 7 -16747258.347 6 20578171.791 20578169.555 20578170.947
+ 47.400 41.300
+ -7521365.083 6 -5860802.888 5 22288022.444 22288019.630 22288021.309
+ 36.200 31.800
+ -18083547.566 7 -14091073.434 6 21138923.660 21138921.832 21138922.411
+ 42.000 38.600
+ -16546461.384 7 -12893343.226 7 20543407.664 20543404.387 20543406.725
+ 45.300 44.600
+ -10574266.877 4 -8239683.673 3 22892765.208 22892762.255 22892764.483
+ 29.000 21.600
+ -21145089.528 7 -16476690.225 7 20699102.534 20699098.174 20699101.902
+ 46.400 46.400
+ 06 1 2 4 42 30.0000000 0 7G05G09G14G15G18G21G22
+ -346849.067 3 -270272.047 3 24409684.203 24409682.779 24409682.543
+ 22.100 19.300
+ -21467268.164 7 -16727735.585 6 20582939.406 20582937.174 20582938.518
+ 47.300 41.400
+ -7594836.299 6 -5918053.164 5 22274041.167 22274038.510 22274040.047
+ 36.000 32.300
+ -18004787.154 6 -14029701.696 6 21153911.529 21153909.441 21153910.167
+ 41.900 38.400
+ -16517167.858 7 -12870517.105 7 20548981.987 20548978.719 20548981.084
+ 45.400 44.600
+ -10464231.182 4 -8153941.592 4 22913705.152 22913701.894 22913703.772
+ 29.000 24.900
+ -21184746.734 7 -16507591.944 7 20691556.031 20691551.615 20691555.391
+ 46.500 46.500
+ 06 1 2 4 43 0.0000000 0 7G05G09G14G15G18G21G22
+ -439551.940 3 -342508.042 1 24392042.669 24392041.646 24392041.449
+ 23.800 11.000
+ -21441544.052 7 -16707690.822 6 20587834.453 20587832.350 20587833.650
+ 47.400 41.300
+ -7668065.713 6 -5975115.039 5 22260105.759 22260103.025 22260104.961
+ 36.300 31.100
+ -17925550.431 7 -13967958.803 6 21168989.958 21168987.750 21168988.549
+ 42.100 38.600
+ -16487468.232 7 -12847374.544 7 20554633.504 20554630.460 20554632.620
+ 45.100 44.500
+ -10353981.210 4 -8068032.550 4 22934684.554 22934681.891 22934683.252
+ 27.100 24.600
+ -21224078.231 7 -16538239.863 7 20684071.437 20684067.118 20684070.874
+ 46.600 46.600
+ 06 1 2 4 43 30.0000000 0 7G05G09G14G15G18G21G22
+ -532163.131 2 -414672.613 2 24374419.122 24374417.961 24374417.737
+ 15.100 12.600
+ -21415150.789 7 -16687124.645 6 20592856.834 20592854.860 20592856.065
+ 47.300 41.200
+ -7741052.916 6 -6031988.168 5 22246216.937 22246214.257 22246215.842
+ 36.800 32.000
+ -17845840.125 6 -13905846.887 6 21184158.390 21184156.111 21184156.966
+ 41.900 38.400
+ -16457362.263 7 -12823915.348 7 20560362.438 20560359.420 20560361.621
+ 45.200 44.400
+ -10243519.982 5 -7981958.943 3 22955703.924 22955701.542 22955703.537
+ 30.200 23.000
+ -21263082.368 7 -16568632.698 7 20676649.200 20676644.857 20676648.680
+ 46.600 46.600
+ 06 1 2 4 44 0.0000000 0 7G05G09G14G15G18G21G22
+ -624679.534 3 -486763.280 2 24356813.164 24356813.596 24356812.510
+ 23.000 17.000
+ -21388089.953 7 -16666038.277 6 20598006.573 20598004.288 20598005.707
+ 47.500 41.100
+ -7813797.276 6 -6088672.065 5 22232374.070 22232371.577 22232373.084
+ 36.500 32.000
+ -17765658.642 6 -13843367.821 6 21199416.199 21199414.217 21199414.794
+ 41.700 38.200
+ -16426850.133 7 -12800139.669 7 20566168.794 20566165.564 20566167.891
+ 45.300 44.300
+ -10132850.675 4 -7895723.163 4 22976764.244 22976761.481 22976763.082
+ 29.500 25.300
+ -21301757.944 7 -16598769.503 7 20669289.555 20669285.184 20669288.843
+ 46.300 46.800
+ 06 1 2 4 44 30.0000000 0 7G05G09G14G15G18G21G22
+ -717097.875 3 -558777.546 3 24339226.166 24339226.523 24339225.764
+ 22.600 18.600
+ -21360362.947 7 -16644432.818 6 20603282.805 20603280.567 20603282.011
+ 47.500 40.900
+ -7886298.318 6 -6145166.372 5 22218577.243 22218574.989 22218576.469
+ 36.300 32.100
+ -17685008.591 6 -13780523.643 6 21214763.547 21214761.303 21214762.051
+ 41.300 38.200
+ -16395931.366 7 -12776047.124 7 20572052.505 20572049.278 20572051.568
+ 45.300 44.400
+ -10021975.319 4 -7809326.799 4 22997863.392 22997860.528 22997862.113
+ 29.000 24.600
+ -21340103.671 7 -16628649.291 7 20661992.498 20661988.242 20661991.969
+ 46.400 46.900
+ 06 1 2 4 45 0.0000000 0 7G05G09G14G15G18G21G22
+ -809415.220 2 -630713.071 2 24321659.478 24321658.836 24321658.433
+ 16.100 15.100
+ -21331970.874 7 -16622309.122 6 20608685.679 20608683.424 20608684.872
+ 47.400 41.000
+ -7958555.565 6 -6201470.699 5 22204827.621 22204824.646 22204826.590
+ 36.300 32.300
+ -17603892.459 6 -13717316.279 6 21230199.550 21230197.298 21230198.090
+ 41.400 38.300
+ -16364605.816 7 -12751637.607 7 20578013.406 20578010.511 20578012.545
+ 45.200 44.400
+ -9910896.913 4 -7722772.271 4 23019000.227 23018998.075 23018999.664
+ 29.700 24.900
+ -21378117.943 7 -16658270.802 7 20654758.791 20654754.363 20654758.111
+ 46.600 46.900
+ 06 1 2 4 45 30.0000000 0 7G05G09G14G15G18G21G22
+ -901628.291 3 -702567.387 3 24304112.016 24304111.996 24304110.952
+ 19.300 21.600
+ -21302915.359 7 -16599668.463 6 20614214.686 20614212.459 20614213.835
+ 47.400 41.200
+ -8030568.698 6 -6257584.810 5 22191123.851 22191120.803 22191122.853
+ 36.700 31.500
+ -17522312.868 6 -13653747.784 6 21245723.501 21245721.478 21245722.075
+ 41.500 38.400
+ -16332873.417 7 -12726911.064 7 20584051.903 20584049.028 20584051.096
+ 45.400 44.400
+ -9799618.673 5 -7636061.999 3 23040176.108 23040173.645 23040175.224
+ 30.100 23.400
+ -21415799.403 7 -16687632.977 7 20647588.173 20647583.815 20647587.520
+ 46.400 46.900
+ 06 1 2 4 46 0.0000000 0 7G05G09G14G15G18G21G22
+ -993733.877 3 -774337.911 3 24286585.258 24286584.615 24286583.675
+ 18.600 18.600
+ -21273198.205 7 -16576512.241 6 20619869.629 20619867.590 20619868.791
+ 47.300 41.200
+ -8102337.162 6 -6313508.281 5 22177466.723 22177464.081 22177465.737
+ 37.000 33.000
+ -17440272.475 6 -13589820.225 6 21261334.863 21261333.171 21261333.579
+ 41.200 38.300
+ -16300734.315 7 -12701867.614 7 20590167.872 20590164.712 20590166.982
+ 45.300 44.100
+ -9688143.257 4 -7549198.054 3 23061389.871 23061386.451 23061388.365
+ 27.600 21.600
+ -21453146.960 7 -16716734.972 7 20640481.128 20640476.808 20640480.523
+ 46.400 47.000
+ 06 1 2 4 46 30.0000000 0 7G05G09G14G15G18G21G22
+ -1085729.025 3 -846022.401 3 24269077.498 24269078.598 24269077.053
+ 21.600 20.500
+ -21242820.845 7 -16552841.566 6 20625650.194 20625648.239 20625649.438
+ 47.300 41.200
+ -8173860.451 6 -6369240.696 5 22163856.353 22163853.741 22163855.282
+ 37.400 32.600
+ -17357773.907 6 -13525535.639 6 21277033.786 21277032.249 21277032.556
+ 41.100 37.800
+ -16268187.939 7 -12676506.805 7 20596361.245 20596358.010 20596360.330
+ 45.400 44.000
+ -9576473.999 4 -7462183.099 3 23082639.136 23082637.151 23082638.023
+ 26.500 23.800
+ -21490159.174 7 -16745575.655 7 20633437.901 20633433.717 20633437.319
+ 46.600 47.300
+ 06 1 2 4 47 0.0000000 0 7G05G09G14G15G18G21G22
+ -1177610.518 3 -917618.317 1 24251594.615 24251592.987 24251593.327
+ 23.400 9.000
+ -21211784.125 7 -16528657.114 6 20631556.406 20631554.317 20631555.626
+ 47.400 41.200
+ -8245138.081 6 -6424781.703 5 22150292.916 22150289.912 22150291.876
+ 37.600 33.000
+ -17274819.978 6 -13460896.224 6 21292819.679 21292817.843 21292818.391
+ 41.000 37.800
+ -16235234.431 7 -12650828.754 7 20602632.015 20602628.991 20602631.058
+ 45.300 44.000
+ -9464613.506 4 -7375019.127 3 23103925.347 23103923.041 23103924.539
+ 27.400 23.000
+ -21526834.355 7 -16774153.718 7 20626458.952 20626454.622 20626458.327
+ 46.600 47.300
+ 06 1 2 4 47 30.0000000 0 7G05G09G14G15G18G21G22
+ -1269375.174 3 -989123.225 2 24234131.842 24234131.049 24234130.728
+ 23.400 16.100
+ -21180090.039 7 -16503960.423 6 20637587.550 20637585.528 20637586.781
+ 47.300 41.100
+ -8316169.688 6 -6480131.000 5 22136775.957 22136772.890 22136774.883
+ 37.600 33.000
+ -17191413.201 6 -13395903.947 6 21308691.412 21308689.798 21308690.096
+ 40.800 38.200
+ -16201873.528 7 -12624833.249 7 20608980.345 20608977.330 20608979.444
+ 45.400 43.800
+ -9352564.611 4 -7287708.369 3 23125247.659 23125245.004 23125246.896
+ 27.100 21.100
+ -21563171.632 7 -16802468.485 7 20619544.225 20619539.643 20619543.608
+ 46.700 47.100
+ 06 1 2 4 48 0.0000000 0 7G05G09G14G15G18G21G22
+ -1361019.962 3 -1060534.721 1 24216692.437 24216691.494 24216691.630
+ 23.800 11.000
+ -21147739.500 7 -16478752.208 6 20643743.559 20643741.660 20643742.788
+ 47.300 41.100
+ -8386954.511 6 -6535287.984 5 22123305.928 22123303.239 22123304.954
+ 37.600 32.800
+ -17107556.282 6 -13330560.910 6 21324648.898 21324647.165 21324647.573
+ 40.900 38.100
+ -16168105.265 7 -12598520.327 7 20615406.193 20615403.200 20615405.404
+ 45.500 43.800
+ -9240329.999 4 -7200252.846 3 23146604.733 23146602.708 23146604.774
+ 28.100 20.500
+ -21599169.492 7 -16830518.764 7 20612694.111 20612689.567 20612693.457
+ 46.800 47.200
+ 06 1 2 4 48 30.0000000 0 7G05G09G14G15G18G21G22
+ -1452541.578 3 -1131850.277 3 24199277.196 24199275.898 24199275.728
+ 21.600 19.300
+ -21114734.785 7 -16453034.247 6 20650024.226 20650022.230 20650023.479
+ 47.300 41.300
+ -8457492.352 6 -6590252.526 5 22109883.199 22109880.331 22109882.257
+ 37.400 33.200
+ -17023251.851 6 -13264869.157 6 21340691.510 21340689.763 21340690.223
+ 40.800 37.400
+ -16133929.458 7 -12571889.829 7 20621909.677 20621906.696 20621908.820
+ 45.300 43.800
+ -9127913.014 4 -7112655.233 3 23167998.013 23167994.935 23167996.826
+ 26.800 18.600
+ -21634826.371 7 -16858303.344 7 20605908.751 20605904.376 20605908.173
+ 47.100 47.400
+ 06 1 2 4 49 0.0000000 0 7G05G09G14G15G18G21G22
+ -1543936.959 3 -1203067.391 3 24181883.941 24181883.767 24181883.371
+ 23.400 18.600
+ -21081077.546 7 -16426807.824 6 20656428.912 20656426.953 20656428.207
+ 47.300 41.000
+ -8527782.785 6 -6645024.277 5 22096507.252 22096504.245 22096506.312
+ 37.800 32.600
+ -16938502.389 6 -13198830.633 6 21356818.629 21356816.973 21356817.363
+ 40.600 37.600
+ -16099346.092 7 -12544941.762 7 20628490.626 20628487.793 20628489.747
+ 45.200 43.800
+ -9015316.124 4 -7024917.404 3 23189424.883 23189421.319 23189423.583
+ 27.900 18.600
+ -21670141.233 7 -16885821.417 7 20599188.633 20599184.073 20599188.056
+ 47.100 47.300
+ 06 1 2 4 49 30.0000000 0 7G05G09G14G15G18G21G22
+ -1635202.887 3 -1274183.624 2 24164517.916 24164516.456 24164516.223
+ 21.600 17.800
+ -21046768.535 7 -16400073.527 6 20662957.724 20662955.645 20662956.939
+ 47.100 41.000
+ -8597825.143 6 -6699602.733 5 22083178.507 22083175.765 22083177.564
+ 37.400 33.400
+ -16853310.662 6 -13132447.482 6 21373030.240 21373028.522 21373028.914
+ 40.900 37.500
+ -16064355.332 7 -12517676.232 7 20635149.182 20635146.302 20635148.322
+ 45.500 43.600
+ -8902542.670 4 -6937042.026 3 23210883.824 23210881.851 23210883.380
+ 27.100 21.100
+ -21705112.811 7 -16913072.000 7 20592533.954 20592529.223 20592533.238
+ 47.100 47.400
+ 06 1 2 4 50 0.0000000 0 7G05G09G14G15G18G21G22
+ -1726336.222 3 -1345196.556 3 24147174.735 24147174.196 24147173.916
+ 21.600 18.600
+ -21011810.490 7 -16372833.492 6 20669610.105 20669608.039 20669609.283
+ 47.100 41.100
+ -8667619.170 6 -6753987.672 5 22069897.199 22069894.582 22069896.189
+ 37.800 33.900
+ -16767679.532 6 -13065721.946 6 21389325.048 21389323.630 21389323.867
+ 40.600 37.200
+ -16028956.588 7 -12490092.799 7 20641885.632 20641882.478 20641884.591
+ 45.600 43.600
+ -8789595.280 4 -6849031.142 3 23232377.466 23232375.070 23232376.795
+ 26.800 21.600
+ -21739739.228 7 -16940053.622 7 20585944.620 20585940.159 20585943.954
+ 47.100 47.600
+ 06 1 2 4 50 30.0000000 0 7G05G09G14G15G18G21G22
+ -1817333.774 3 -1416103.690 3 24129858.719 24129857.981 24129857.625
+ 23.400 18.600
+ -20976204.452 7 -16345088.526 6 20676385.597 20676383.681 20676384.820
+ 47.100 41.000
+ -8737164.313 6 -6808178.673 5 22056662.875 22056660.404 22056662.075
+ 37.500 33.200
+ -16681611.819 6 -12998656.209 6 21405702.516 21405701.552 21405701.729
+ 40.500 36.700
+ -15993150.104 7 -12462191.638 7 20648699.221 20648696.258 20648698.269
+ 45.700 43.700
+ -8676476.637 4 -6760886.789 3 23253903.384 23253900.637 23253902.460
+ 25.600 21.600
+ -21774019.226 7 -16966765.307 7 20579421.293 20579416.874 20579420.653
+ 47.100 47.700
+ 06 1 2 4 51 0.0000000 0 7G05G09G14G15G18G21G22
+ -1908192.452 3 -1486902.639 3 24112568.857 24112567.884 24112567.612
+ 22.100 18.600
+ -20939952.259 7 -16316840.065 6 20683284.080 20683282.216 20683283.292
+ 47.100 40.900
+ -8806460.136 6 -6862175.411 5 22043476.939 22043473.542 22043475.822
+ 38.100 33.200
+ -16595110.244 6 -12931252.401 6 21422163.724 21422162.400 21422162.721
+ 40.400 37.000
+ -15956935.735 7 -12433972.639 7 20655590.676 20655587.467 20655589.783
+ 46.100 43.300
+ -8563189.869 4 -6672611.419 3 23275461.758 23275458.977 23275460.587
+ 25.600 22.100
+ -21807951.651 7 -16993206.156 7 20572964.221 20572959.661 20572963.570
+ 47.200 47.700
+ 06 1 2 4 51 30.0000000 0 7G05G09G14G15G18G21G22
+ -1998909.066 3 -1557590.846 2 24095305.175 24095305.127 24095304.668
+ 20.500 17.800
+ -20903055.364 7 -16288089.233 6 20690305.470 20690303.384 20690304.606
+ 46.900 40.600
+ -8875505.892 6 -6915977.291 5 22030337.682 22030334.778 22030336.672
+ 37.700 33.400
+ -16508177.560 6 -12863512.664 6 21438706.611 21438705.432 21438705.553
+ 40.200 37.700
+ -15920313.569 7 -12405435.895 7 20662559.801 20662556.341 20662558.788
+ 46.000 43.100
+ -8449737.850 4 -6584207.293 4 23297050.249 23297048.133 23297049.454
+ 27.400 24.900
+ -21841535.265 7 -17019375.206 7 20566573.345 20566568.996 20566572.787
+ 47.100 47.800
+ 06 1 2 4 52 0.0000000 0 7G05G09G14G15G18G21G22
+ -2089480.364 3 -1628165.810 3 24078071.032 24078070.479 24078069.722
+ 20.500 20.500
+ -20865515.366 7 -16258837.290 6 20697448.967 20697447.006 20697448.154
+ 47.000 40.800
+ -8944301.717 6 -6969584.412 5 22017246.375 22017243.591 22017245.140
+ 37.700 34.000
+ -16420816.530 6 -12795439.154 6 21455331.021 21455329.614 21455329.981
+ 40.600 37.200
+ -15883283.677 7 -12376581.450 7 20669606.067 20669602.995 20669605.201
+ 46.000 43.100
+ -8336123.332 4 -6495676.565 3 23318670.652 23318668.378 23318669.760
+ 27.400 23.400
+ -21874768.548 7 -17045271.271 7 20560249.232 20560244.899 20560248.668
+ 47.100 47.900
+ 06 1 2 4 52 30.0000000 0 7G05G09G14G15G18G21G22
+ -2179903.266 4 -1698625.135 3 24060863.430 24060862.814 24060862.828
+ 24.200 21.100
+ -20827334.678 7 -16229086.099 6 20704714.808 20704712.485 20704713.944
+ 47.200 40.700
+ -9012847.077 6 -7022996.370 5 22004202.129 22004199.549 22004201.271
+ 38.200 33.900
+ -16333029.804 6 -12727033.933 6 21472035.956 21472034.742 21472035.085
+ 40.300 36.200
+ -15845846.139 7 -12347409.335 7 20676730.091 20676727.198 20676729.245
+ 45.900 43.200
+ -8222349.024 4 -6407021.331 3 23340321.547 23340318.796 23340320.299
+ 26.800 23.000
+ -21907650.376 7 -17070893.475 7 20553992.168 20553987.724 20553991.525
+ 47.000 47.800
+ 06 1 2 4 53 0.0000000 0 7G05G09G14G15G18G21G22
+ -2270174.535 3 -1768966.300 3 24043686.107 24043684.870 24043684.907
+ 23.800 21.600
+ -20788514.641 7 -16198836.717 6 20712101.834 20712099.732 20712101.006
+ 47.100 40.700
+ -9081141.253 6 -7076212.609 5 21991206.568 21991203.467 21991205.600
+ 38.400 34.100
+ -16244820.187 6 -12658299.172 5 21488821.884 21488820.250 21488820.797
+ 40.200 35.600
+ -15808000.422 7 -12317919.153 7 20683931.985 20683928.973 20683931.035
+ 45.700 43.100
+ -8108418.123 4 -6318244.073 3 23362001.487 23361998.827 23362000.544
+ 24.200 19.300
+ -21940179.030 7 -17096240.479 8 20547802.123 20547797.724 20547801.479
+ 47.100 48.000
+ 06 1 2 4 53 30.0000000 0 7G05G09G14G15G18G21G22
+ -2360290.985 4 -1839186.830 3 24026537.134 24026536.012 24026536.400
+ 25.600 22.600
+ -20749057.259 7 -16168090.708 6 20719610.568 20719608.373 20719609.662
+ 47.300 40.700
+ -9149183.864 6 -7129232.816 5 21978258.471 21978255.656 21978257.473
+ 38.600 34.000
+ -16156190.324 6 -12589236.954 6 21505688.062 21505686.061 21505686.776
+ 39.900 36.400
+ -15769746.897 7 -12288111.203 7 20691211.005 20691208.370 20691210.340
+ 45.700 43.100
+ -7994333.598 4 -6229347.060 3 23383710.785 23383709.052 23383709.755
+ 24.600 21.100
+ -21972353.384 7 -17121311.401 8 20541679.334 20541675.048 20541678.778
+ 46.900 48.000
+ 06 1 2 4 54 0.0000000 0 7G05G09G14G15G18G21G22
+ -2450249.453 4 -1909284.295 3 24009419.082 24009417.331 24009417.631
+ 25.600 18.600
+ -20708964.353 7 -16136849.482 6 20727239.887 20727237.702 20727238.995
+ 47.300 40.500
+ -9216974.423 6 -7182056.611 5 21965358.576 21965355.635 21965357.464
+ 38.800 34.300
+ -16067143.419 6 -12519849.783 6 21522633.083 21522631.367 21522631.884
+ 40.000 36.600
+ -15731085.516 7 -12257985.462 7 20698568.642 20698565.377 20698567.530
+ 45.800 42.900
+ -7880097.974 3 -6140332.317 2 23405449.475 23405446.620 23405448.455
+ 23.800 17.800
+ -22004172.272 7 -17146105.341 8 20535624.444 20535620.118 20535623.872
+ 46.800 48.000
+ 06 1 2 4 54 30.0000000 0 7G05G09G14G15G18G21G22
+ -2540046.772 3 -1979256.167 4 23992330.018 23992330.680 23992329.252
+ 23.800 25.300
+ -20668237.416 7 -16105114.207 6 20734989.893 20734987.718 20734989.069
+ 47.400 40.500
+ -9284512.619 6 -7234683.766 5 21952506.296 21952503.093 21952505.241
+ 38.800 33.500
+ -15977682.162 6 -12450139.730 6 21539656.630 21539655.154 21539655.590
+ 39.800 36.100
+ -15692016.366 7 -12227541.979 7 20706002.928 20705999.954 20706002.081
+ 45.800 42.800
+ -7765714.722 4 -6051202.523 3 23427216.065 23427213.761 23427214.890
+ 24.200 23.400
+ -22035634.162 7 -17170621.101 8 20529637.392 20529633.258 20529636.815
+ 46.600 48.200
+ 06 1 2 4 55 0.0000000 0 7G05G09G14G15G18G21G22
+ -2629679.767 4 -2049099.971 3 23975274.478 23975273.668 23975273.036
+ 26.200 22.100
+ -20626878.749 7 -16072886.668 6 20742860.019 20742857.864 20742859.326
+ 47.300 40.100
+ -9351798.232 6 -7287114.106 5 21939702.068 21939699.259 21939701.242
+ 39.200 34.300
+ -15887809.282 6 -12380108.924 5 21556758.632 21556757.293 21556757.776
+ 39.700 35.700
+ -15652539.319 7 -12196780.651 7 20713515.299 20713512.072 20713514.371
+ 46.100 42.500
+ -7651186.039 4 -5961959.448 2 23449009.961 23449007.423 23449009.168
+ 27.400 17.800
+ -22066737.699 7 -17194857.622 8 20523718.683 20523714.481 20523717.996
+ 46.700 48.400
+ 06 1 2 4 55 30.0000000 0 7G05G09G14G15G18G21G22
+ -2719145.242 3 -2118813.248 3 23958249.537 23958248.809 23958248.180
+ 23.800 22.100
+ -20584890.129 7 -16040168.261 6 20750850.195 20750848.139 20750849.469
+ 47.100 40.400
+ -9418830.511 6 -7339347.046 5 21926946.136 21926943.541 21926945.246
+ 39.400 34.400
+ -15797527.570 6 -12309759.552 6 21573938.787 21573937.534 21573937.858
+ 39.800 36.100
+ -15612654.588 7 -12165701.639 7 20721104.792 20721101.996 20721104.101
+ 46.000 42.600
+ -7536515.103 4 -5872605.508 2 23470830.832 23470828.522 23470830.065
+ 27.600 17.000
+ -22097481.604 7 -17218813.910 8 20517868.258 20517863.962 20517867.624
+ 46.800 48.300
+ 06 1 2 4 56 0.0000000 0 7G05G09G14G15G18G21G22
+ -2808439.936 3 -2188393.475 3 23941256.625 23941256.243 23941255.471
+ 23.800 18.600
+ -20542273.464 7 -16006960.474 6 20758959.994 20758957.901 20758959.141
+ 47.000 40.300
+ -9485609.413 6 -7391382.539 5 21914238.438 21914235.727 21914237.414
+ 39.000 34.400
+ -15706839.948 6 -12239093.892 6 21591196.551 21591194.992 21591195.218
+ 39.500 36.200
+ -15572362.302 7 -12134305.051 7 20728772.687 20728769.448 20728771.610
+ 46.100 42.600
+ -7421704.738 4 -5783142.929 2 23492679.172 23492676.554 23492677.883
+ 26.200 17.000
+ -22127864.584 7 -17242488.960 8 20512086.485 20512082.272 20512085.960
+ 46.900 48.300
+ 06 1 2 4 56 30.0000000 0 7G05G09G14G15G18G21G22
+ -2897560.828 3 -2257838.280 2 23924297.386 23924296.769 23924296.646
+ 21.100 17.000
+ -20499030.906 7 -15973264.973 6 20767188.847 20767186.677 20767187.964
+ 47.000 40.500
+ -9552134.218 6 -7443220.042 5 21901579.332 21901576.583 21901578.325
+ 39.100 34.500
+ -15615749.226 6 -12168114.133 6 21608530.829 21608529.016 21608529.475
+ 39.400 36.000
+ -15531662.315 7 -12102590.777 7 20736517.353 20736514.394 20736516.625
+ 46.200 42.600
+ -7306757.907 3 -5693573.945 2 23514552.338 23514549.779 23514551.057
+ 23.400 15.100
+ -22157885.435 7 -17265881.831 8 20506373.998 20506369.573 20506373.331
+ 47.000 48.500
+ 06 1 2 4 57 0.0000000 0 7G05G09G14G15G18G21G22
+ -2986504.572 4 -2327145.082 3 23907372.617 23907371.506 23907371.601
+ 26.200 19.900
+ -20455164.033 7 -15939082.994 6 20775536.477 20775534.389 20775535.556
+ 46.800 40.400
+ -9618404.431 6 -7494859.160 5 21888968.707 21888966.014 21888967.811
+ 39.800 35.200
+ -15524258.302 6 -12096822.526 5 21625940.388 21625938.975 21625939.488
+ 39.400 35.300
+ -15490554.982 7 -12070559.095 7 20744340.293 20744336.899 20744339.145
+ 46.100 42.700
+ -7191677.755 4 -5603901.190 2 23536451.220 23536448.899 23536450.445
+ 25.300 17.000
+ -22187542.806 7 -17288991.473 8 20500730.380 20500725.818 20500729.723
+ 46.900 48.300
+ 06 1 2 4 57 30.0000000 0 7G05G09G14G15G18G21G22
+ -3075268.006 4 -2396311.368 3 23890480.988 23890480.164 23890479.641
+ 24.900 19.900
+ -20410675.043 7 -15904416.252 6 20784002.334 20784000.202 20784001.513
+ 46.800 40.200
+ -9684419.779 6 -7546299.679 5 21876406.387 21876403.693 21876405.320
+ 39.300 35.300
+ -15432370.217 6 -12025221.429 5 21643425.813 21643424.730 21643425.092
+ 39.700 35.500
+ -15449040.349 7 -12038210.022 7 20752239.420 20752236.924 20752238.857
+ 46.200 42.700
+ -7076466.485 3 -5514126.182 3 23558376.293 23558373.425 23558374.890
+ 23.400 19.900
+ -22216835.275 7 -17311816.768 8 20495155.962 20495151.614 20495155.439
+ 46.900 48.400
+ 06 1 2 4 58 0.0000000 0 7G05G09G14G15G18G21G22
+ -3163848.108 3 -2465334.789 3 23873624.020 23873624.641 23873623.368
+ 21.600 22.100
+ -20365566.079 7 -15869266.409 6 20792586.174 20792584.167 20792585.394
+ 46.800 40.200
+ -9750180.145 6 -7597541.514 5 21863892.331 21863889.550 21863891.421
+ 38.900 34.900
+ -15340087.724 6 -11953313.002 5 21660987.119 21660985.519 21660986.035
+ 39.000 35.200
+ -15407118.426 7 -12005543.591 7 20760217.570 20760214.393 20760216.491
+ 46.200 42.500
+ -6961127.363 4 -5424251.608 3 23580323.984 23580321.266 23580323.117
+ 27.100 19.300
+ -22245761.627 7 -17334356.784 8 20489651.580 20489647.203 20489650.948
+ 47.000 48.600
+ 06 1 2 4 58 30.0000000 0 7G05G09G14G15G18G21G22
+ -3252241.476 3 -2534212.664 3 23856805.004 23856803.204 23856802.907
+ 22.100 20.500
+ -20319838.927 7 -15833634.862 6 20801287.789 20801285.842 20801287.074
+ 46.500 40.200
+ -9815684.789 6 -7648584.081 5 21851427.117 21851424.512 21851426.214
+ 39.300 35.100
+ -15247413.600 6 -11881099.430 5 21678623.269 21678620.783 21678621.558
+ 38.100 35.100
+ -15364789.093 7 -11972559.704 7 20768272.155 20768269.372 20768271.380
+ 45.900 42.400
+ -6845663.262 4 -5334279.597 3 23602295.514 23602294.142 23602295.286
+ 26.800 23.400
+ -22274320.324 7 -17356610.312 8 20484217.168 20484212.708 20484216.523
+ 47.000 48.700
+ 06 1 2 4 59 0.0000000 0 7G05G09G14G15G18G21G22
+ -3340444.787 4 -2602942.503 3 23840019.832 23840018.342 23840018.727
+ 24.200 19.300
+ -20273495.807 7 -15797523.341 6 20810106.513 20810104.457 20810105.748
+ 46.600 40.000
+ -9880933.174 6 -7699426.975 5 21839010.917 21839008.254 21839009.948
+ 39.500 35.500
+ -15154350.716 6 -11808582.921 5 21696330.920 21696330.042 21696330.374
+ 38.200 34.400
+ -15322052.608 7 -11939258.546 7 20776404.833 20776401.819 20776403.848
+ 46.100 42.300
+ -6730077.058 3 -5244212.501 3 23624292.481 23624289.340 23624290.769
+ 22.100 19.900
+ -22302510.332 7 -17378576.550 8 20478852.830 20478848.305 20478852.193
+ 47.200 48.700
+ 06 1 2 4 59 30.0000000 0 7G05G09G14G15G18G21G22
+ -3428455.088 4 -2671521.893 3 23823272.008 23823271.087 23823270.872
+ 26.500 21.100
+ -20226538.825 7 -15760933.485 6 20819042.397 20819040.312 20819041.498
+ 46.600 40.000
+ -9945925.212 6 -7750070.106 5 21826643.140 21826640.633 21826642.204
+ 39.300 35.100
+ -15060902.011 6 -11735765.745 5 21714113.572 21714112.498 21714112.939
+ 38.600 34.000
+ -15278909.252 7 -11905640.339 7 20784614.738 20784611.798 20784613.778
+ 46.100 42.400
+ -6614371.765 3 -5154052.556 3 23646309.029 23646306.954 23646308.467
+ 23.400 18.600
+ -22330330.300 7 -17400254.446 8 20473558.835 20473554.318 20473558.198
+ 47.200 48.800
+ 06 1 2 5 0 0.0000000 0 7G05G09G14G15G18G21G22
+ -3516269.127 4 -2739948.394 3 23806561.595 23806560.072 23806560.136
+ 24.600 20.500
+ -20178969.679 7 -15723866.617 6 20828094.415 20828092.308 20828093.564
+ 46.500 39.800
+ -10010660.402 6 -7800513.101 5 21814324.473 21814321.863 21814323.541
+ 39.200 35.800
+ -14967070.459 6 -11662650.267 5 21731971.011 21731968.183 21731969.292
+ 38.200 34.800
+ -15235359.033 7 -11871705.094 6 20792901.704 20792899.135 20792901.008
+ 46.000 41.900
+ -6498549.917 3 -5063801.836 3 23668349.052 23668347.585 23668348.784
+ 23.800 21.100
+ -22357778.699 7 -17421642.806 8 20468335.295 20468331.111 20468334.733
+ 47.200 48.800
+ 06 1 2 5 0 30.0000000 0 7G05G09G14G15G18G21G22
+ -3603883.727 4 -2808219.459 3 23789888.233 23789887.730 23789887.446
+ 25.900 23.000
+ -20130790.697 7 -15686324.551 6 20837262.458 20837260.473 20837261.667
+ 46.500 39.800
+ -10075138.674 6 -7850755.900 5 21802054.836 21802052.186 21802053.890
+ 39.900 35.400
+ -14872859.132 6 -11589238.877 5 21749897.722 21749896.267 21749896.764
+ 38.400 35.200
+ -15191402.165 7 -11837452.992 6 20801267.002 20801263.778 20801265.919
+ 46.100 41.900
+ -6382614.459 4 -4973462.559 3 23690411.757 23690409.068 23690410.876
+ 25.300 19.300
+ -22384854.483 7 -17442740.819 8 20463183.109 20463178.740 20463182.477
+ 47.000 48.900
+ 06 1 2 5 1 0.0000000 0 7G05G09G14G15G18G21G22
+ -3691295.720 4 -2876332.608 3 23773255.253 23773253.624 23773253.779
+ 25.300 23.000
+ -20082003.999 7 -15648308.944 6 20846546.305 20846544.366 20846545.467
+ 46.500 39.800
+ -10139359.400 6 -7900798.014 5 21789834.130 21789831.385 21789833.158
+ 40.200 35.700
+ -14778271.008 6 -11515533.846 5 21767896.032 21767895.683 21767895.834
+ 38.400 34.600
+ -15147038.529 7 -11802883.921 7 20809708.804 20809705.939 20809707.993
+ 46.200 42.000
+ -6266568.137 3 -4883036.919 3 23712493.184 23712492.259 23712493.155
+ 22.600 18.600
+ -22411556.364 7 -17463547.480 8 20458101.864 20458097.537 20458101.277
+ 47.000 49.000
+ 06 1 2 5 1 30.0000000 0 7G05G09G14G15G18G21G22
+ -3778501.737 4 -2944285.334 3 23756660.911 23756658.828 23756659.925
+ 27.600 21.600
+ -20032611.663 7 -15609821.405 6 20855945.491 20855943.298 20855944.570
+ 46.500 39.700
+ -10203321.853 6 -7950638.885 5 21777662.275 21777659.444 21777661.451
+ 40.100 35.400
+ -14683308.775 6 -11441537.317 5 21785967.904 21785966.398 21785966.620
+ 37.300 34.300
+ -15102268.629 7 -11767998.274 6 20818228.303 20818225.209 20818227.294
+ 45.900 41.500
+ -6150414.120 3 -4792527.357 2 23734598.738 23734595.371 23734597.151
+ 23.800 17.000
+ -22437882.914 7 -17484061.672 8 20453092.209 20453087.837 20453091.543
+ 47.100 49.000
+ 06 1 2 5 2 0.0000000 0 7G05G09G14G15G18G21G22
+ -3865498.753 4 -3012075.161 3 23740104.986 23740103.778 23740103.689
+ 25.300 20.500
+ -19982616.059 7 -15570863.790 6 20865459.253 20865457.283 20865458.387
+ 46.500 39.800
+ -10267025.934 6 -8000278.425 5 21765540.186 21765537.048 21765539.086
+ 40.300 35.500
+ -14587975.332 6 -11367251.553 5 21804109.463 21804107.775 21804108.152
+ 37.500 34.300
+ -15057092.648 7 -11732796.212 6 20826824.527 20826821.994 20826823.864
+ 45.900 41.600
+ -6034155.138 4 -4701935.968 2 23756720.707 23756718.989 23756720.053
+ 24.200 17.800
+ -22463832.944 7 -17504282.475 8 20448153.964 20448149.671 20448153.374
+ 47.200 48.900
+ 06 1 2 5 2 30.0000000 0 7G05G09G14G15G18G21G22
+ -3952283.628 4 -3079699.695 3 23723589.508 23723588.963 23723588.926
+ 25.300 20.500
+ -19932019.122 7 -15531437.605 6 20875087.476 20875085.473 20875086.685
+ 46.500 39.700
+ -10330471.566 6 -8049716.568 6 21753466.737 21753463.877 21753465.629
+ 40.200 36.200
+ -14492273.945 6 -11292679.056 5 21822320.074 21822319.245 21822319.347
+ 37.500 34.000
+ -15011510.605 7 -11697277.743 6 20835498.907 20835495.994 20835497.887
+ 45.900 41.500
+ -5917793.832 4 -4611264.849 2 23778864.297 23778861.951 23778863.400
+ 25.600 16.100
+ -22489405.301 7 -17524208.988 8 20443287.889 20443283.351 20443287.204
+ 47.100 49.100
+ 06 1 2 5 3 0.0000000 0 7G05G09G14G15G18G21G22
+ -4038853.041 4 -3147156.329 3 23707116.706 23707116.126 23707115.729
+ 27.400 21.600
+ -19880823.557 7 -15491544.954 6 20884829.755 20884827.709 20884828.956
+ 46.300 39.600
+ -10393658.159 6 -8098952.864 5 21741442.497 21741439.706 21741441.729
+ 40.700 35.700
+ -14396207.464 6 -11217822.070 5 21840601.332 21840600.107 21840600.332
+ 38.100 34.000
+ -14965523.038 7 -11661443.290 6 20844250.173 20844247.131 20844249.179
+ 45.800 41.400
+ -5801333.178 3 -4520516.362 2 23801024.204 23801023.466 23801024.028
+ 21.600 16.100
+ -22514598.460 7 -17543840.022 8 20438493.674 20438489.300 20438493.061
+ 47.100 49.100
+ 06 1 2 5 3 30.0000000 0 7G05G09G14G15G18G21G22
+ -4125203.730 4 -3214442.572 3 23690685.459 23690683.089 23690684.194
+ 28.800 19.900
+ -19829030.674 7 -15451186.863 6 20894685.444 20894683.626 20894684.596
+ 45.900 39.800
+ -10456585.227 6 -8147986.937 6 21729468.190 21729465.117 21729467.120
+ 40.900 36.000
+ -14299778.641 6 -11142682.752 5 21858952.100 21858949.767 21858950.567
+ 37.400 33.600
+ -14919129.935 7 -11625292.817 6 20853078.297 20853075.447 20853077.532
+ 46.100 41.200
+ -5684776.294 3 -4429692.823 1 23823206.389 23823203.151 23823205.187
+ 23.800 11.000
+ -22539411.322 7 -17563174.721 8 20433771.887 20433767.663 20433771.310
+ 47.300 49.300
+ 06 1 2 5 4 0.0000000 0 7G05G09G14G15G18G21G22
+ -4211332.648 4 -3281555.959 3 23674293.929 23674293.856 23674293.627
+ 26.500 23.400
+ -19776643.996 7 -15410366.076 6 20904654.364 20904652.390 20904653.494
+ 45.900 39.500
+ -10519252.689 6 -8196818.720 6 21717543.064 21717539.942 21717542.097
+ 41.300 36.200
+ -14202990.545 6 -11067263.480 5 21877368.799 21877367.902 21877368.109
+ 37.300 33.000
+ -14872331.514 7 -11588826.517 6 20861984.105 20861980.866 20861983.022
+ 46.100 41.200
+ -5568125.595 3 -4338796.244 3 23845403.212 23845402.405 23845402.604
+ 23.400 19.900
+ -22563842.592 7 -17582212.069 8 20429122.935 20429118.484 20429122.304
+ 47.300 49.300
+ 06 1 2 5 4 30.0000000 0 7G05G09G14G15G18G21G22
+ -4297236.534 4 -3348494.026 3 23657948.765 23657947.010 23657946.885
+ 26.500 23.000
+ -19723664.570 7 -15369083.406 6 20914736.111 20914734.123 20914735.255
+ 45.800 39.600
+ -10581659.749 6 -8245447.591 6 21705667.359 21705664.404 21705666.414
+ 41.400 36.400
+ -14105846.295 6 -10991566.657 5 21895855.390 21895854.038 21895854.364
+ 36.800 33.800
+ -14825128.000 7 -11552044.564 6 20870966.337 20870963.511 20870965.538
+ 46.300 41.300
+ -5451384.059 3 -4247828.881 2 23867618.762 23867616.806 23867617.879
+ 22.100 17.000
+ -22587891.116 7 -17600951.177 8 20424546.596 20424542.076 20424545.949
+ 47.200 49.200
+ 06 1 2 5 5 0.0000000 0 7G05G09G14G15G18G21G22
+ -4382912.241 4 -3415254.275 4 23641643.633 23641643.939 23641643.379
+ 26.500 25.300
+ -19670095.223 7 -15327341.060 6 20924929.946 20924927.931 20924929.065
+ 45.600 39.300
+ -10643806.218 6 -8293873.406 6 21693841.108 21693838.121 21693840.094
+ 40.800 36.200
+ -14008348.881 6 -10915594.692 5 21914409.673 21914407.311 21914407.994
+ 36.300 34.500
+ -14777519.697 7 -11514947.191 6 20880026.237 20880023.081 20880025.223
+ 46.300 41.200
+ -5334554.332 3 -4156792.766 3 23889851.651 23889849.173 23889850.116
+ 19.900 19.900
+ -22611555.570 7 -17619391.008 8 20420043.325 20420038.899 20420042.691
+ 47.100 49.200
+ 06 1 2 5 5 30.0000000 0 7G05G09G14G15G18G21G22
+ -4468356.577 4 -3481834.252 3 23625385.896 23625383.819 23625383.935
+ 24.900 21.600
+ -19615938.266 7 -15285140.839 6 20935235.578 20935233.584 20935234.733
+ 45.800 39.300
+ -10705691.914 6 -8342096.014 6 21682064.554 21682061.731 21682063.611
+ 40.900 36.500
+ -13910501.215 6 -10839349.786 5 21933027.171 21933027.096 21933027.025
+ 37.500 34.000
+ -14729507.241 7 -11477534.897 6 20889162.773 20889159.398 20889161.709
+ 46.200 41.000
+ -5217639.425 3 -4065690.345 2 23912098.618 23912097.080 23912097.749
+ 23.000 16.100
+ -22634834.545 7 -17637530.469 8 20415613.485 20415609.057 20415612.819
+ 47.100 49.300
+ 06 1 2 5 6 0.0000000 0 7G05G09G14G15G18G21G22
+ -4553566.251 4 -3548231.352 3 23609169.526 23609168.991 23609168.723
+ 25.600 22.100
+ -19561196.108 7 -15242484.612 6 20945652.942 20945650.702 20945651.944
+ 45.800 39.200
+ -10767316.383 6 -8390115.076 6 21670337.778 21670335.085 21670336.797
+ 40.700 36.600
+ -13812306.387 6 -10762834.352 5 21951715.149 21951712.641 21951713.478
+ 36.800 33.000
+ -14681090.102 7 -11439807.262 6 20898375.753 20898372.928 20898375.151
+ 46.400 41.000
+ -5100642.743 3 -3974524.103 1 23934362.361 23934360.606 23934361.384
+ 21.600 11.000
+ -22657726.992 7 -17655368.737 8 20411257.177 20411252.730 20411256.574
+ 47.100 49.200
+ 06 1 2 5 6 30.0000000 0 7G05G09G14G15G18G21G22
+ -4638538.173 4 -3614443.218 3 23593000.508 23592998.772 23592999.332
+ 25.600 19.900
+ -19505871.143 7 -15199374.245 6 20956180.573 20956178.548 20956179.750
+ 45.800 39.000
+ -10828679.196 6 -8437930.243 6 21658660.599 21658658.164 21658659.792
+ 40.600 36.600
+ -13713767.335 6 -10686050.704 5 21970464.972 21970463.965 21970464.470
+ 37.200 32.000
+ -14632268.746 7 -11401764.649 6 20907666.648 20907663.382 20907665.588
+ 46.300 40.700
+ -4983566.384 4 -3883295.827 3 23956643.011 23956640.040 23956641.578
+ 25.600 18.600
+ -22680231.453 7 -17672904.685 8 20406974.689 20406970.331 20406974.041
+ 47.200 49.400
+ 06 1 2 5 7 0.0000000 0 7G05G09G14G15G18G21G22
+ -4723269.104 4 -3680467.280 3 23576877.109 23576875.235 23576875.495
+ 28.100 23.800
+ -19449965.439 7 -15155811.359 6 20966819.270 20966817.217 20966818.390
+ 45.600 39.100
+ -10889780.012 6 -8485541.264 6 21647033.960 21647030.887 21647032.995
+ 41.300 36.300
+ -13614887.116 6 -10609001.171 5 21989281.632 21989280.488 21989280.747
+ 36.400 33.100
+ -14583043.748 7 -11363407.512 6 20917033.318 20917030.531 20917032.660
+ 46.500 40.700
+ -4866413.283 3 -3792007.779 2 23978935.814 23978933.817 23978934.488
+ 23.000 16.100
+ -22702347.008 7 -17690137.583 8 20402766.280 20402761.893 20402765.589
+ 47.100 49.400
+ 06 1 2 5 7 30.0000000 0 7G05G09G14G15G18G21G22
+ -4807755.897 4 -3746301.110 4 23560799.729 23560798.144 23560798.454
+ 28.600 25.900
+ -19393481.627 7 -15111797.995 6 20977567.753 20977565.742 20977566.991
+ 45.600 39.000
+ -10950618.526 6 -8532947.897 6 21635456.417 21635453.618 21635455.504
+ 41.100 36.400
+ -13515668.607 6 -10531688.085 5 22008163.657 22008161.660 22008162.036
+ 36.300 34.000
+ -14533415.242 7 -11324735.947 6 20926477.533 20926474.471 20926476.638
+ 46.300 40.600
+ -4749186.496 3 -3700662.254 1 24001243.627 24001240.603 24001242.286
+ 23.400 11.000
+ -22724072.159 7 -17707066.275 8 20398632.220 20398627.659 20398631.551
+ 47.100 49.400
+ 06 1 2 5 8 0.0000000 0 7G05G09G14G15G18G21G22
+ -4891995.395 4 -3811942.224 4 23544769.369 23544767.916 23544768.373
+ 27.900 24.600
+ -19336421.321 7 -15067335.423 6 20988425.837 20988424.079 20988425.105
+ 45.800 39.100
+ -11011194.517 6 -8580149.956 6 21623929.241 21623926.627 21623928.351
+ 41.100 37.100
+ -13416114.885 6 -10454113.784 5 22027105.844 22027105.800 22027105.821
+ 36.300 33.400
+ -14483383.753 7 -11285750.373 6 20935998.609 20935995.084 20935997.423
+ 46.300 40.400
+ -4631888.791 3 -3609261.496 2 24023564.601 24023562.451 24023563.235
+ 19.300 13.900
+ -22745405.842 7 -17723689.923 8 20394572.477 20394568.030 20394571.825
+ 47.300 49.200
+ 06 1 2 5 8 30.0000000 0 7G05G09G14G15G18G21G22
+ -4975984.341 4 -3877388.128 3 23528785.766 23528784.441 23528785.052
+ 27.100 23.800
+ -19278788.054 7 -15022426.385 6 20999393.360 20999391.046 20999392.444
+ 45.600 38.500
+ -11071507.502 6 -8627147.081 6 21612452.107 21612449.582 21612451.218
+ 41.300 37.200
+ -13316229.049 5 -10376280.681 5 22046115.567 22046113.462 22046113.870
+ 35.200 32.400
+ -14432949.286 7 -11246450.789 6 20945595.303 20945592.569 20945594.641
+ 46.300 40.600
+ -4514522.953 3 -3517807.663 2 24045897.719 24045896.481 24045896.521
+ 19.900 13.900
+ -22766346.802 7 -17740007.555 8 20390587.536 20390583.132 20390586.904
+ 47.400 49.500
+ 06 1 2 5 9 0.0000000 0 7G05G09G14G15G18G21G22
+ -5059719.629 4 -3942636.362 3 23512852.852 23512850.390 23512851.305
+ 27.400 23.000
+ -19220583.530 7 -14977072.210 6 21010469.174 21010467.049 21010468.335
+ 45.600 38.600
+ -11131557.112 6 -8673938.976 6 21601025.199 21601022.328 21601024.088
+ 41.300 37.200
+ -13216014.010 5 -10298191.078 5 22065184.231 22065183.577 22065183.852
+ 35.800 32.600
+ -14382112.614 7 -11206837.797 6 20955269.579 20955266.365 20955268.532
+ 46.100 40.200
+ -4397091.664 3 -3426302.808 2 24068243.667 24068242.396 24068242.360
+ 21.600 12.600
+ -22786893.755 7 -17756018.169 8 20386677.765 20386673.149 20386677.080
+ 47.500 49.500
+ 06 1 2 5 9 30.0000000 0 7G05G09G14G15G18G21G22
+ -5143197.986 4 -4007684.413 4 23496966.134 23496965.488 23496965.050
+ 27.100 25.300
+ -19161810.505 7 -14931275.048 6 21021653.342 21021651.403 21021652.463
+ 45.600 38.900
+ -11191343.165 6 -8720525.500 6 21589648.150 21589645.404 21589647.152
+ 41.300 37.700
+ -13115472.769 5 -10219847.261 5 22084318.221 22084316.119 22084316.765
+ 35.700 32.700
+ -14330873.478 7 -11166911.207 6 20965019.826 20965016.843 20965019.033
+ 46.000 40.100
+ -4279597.764 3 -3334749.214 3 24090601.970 24090601.411 24090601.784
+ 21.600 18.600
+ -22807045.552 7 -17771720.870 8 20382842.715 20382838.411 20382842.128
+ 47.400 49.500
+ 06 1 2 5 10 0.0000000 0 7G05G09G14G15G18G21G22
+ -5226416.249 4 -4072529.749 3 23481130.221 23481129.169 23481129.743
+ 28.400 23.000
+ -19102470.909 7 -14885036.404 6 21032945.365 21032943.251 21032944.478
+ 45.700 38.400
+ -11250865.095 6 -8766906.215 6 21578321.495 21578318.795 21578320.541
+ 41.400 37.500
+ -13014608.357 6 -10141251.657 5 22103511.045 22103510.042 22103510.332
+ 36.500 32.600
+ -14279232.425 7 -11126671.426 6 20974846.765 20974843.784 20974845.985
+ 46.200 40.100
+ -4162044.141 3 -3243149.070 3 24112972.779 24112970.653 24112971.870
+ 21.100 19.300
+ -22826801.041 7 -17787114.755 8 20379083.287 20379079.044 20379082.648
+ 47.300 49.500
+ 06 1 2 5 10 30.0000000 0 7G05G09G14G15G18G21G22
+ -5309371.279 4 -4137170.008 3 23465345.137 23465343.263 23465343.754
+ 27.600 23.400
+ -19042567.693 7 -14838358.570 6 21044344.354 21044342.444 21044343.638
+ 45.900 38.500
+ -11310122.661 6 -8813080.944 6 21567045.357 21567042.242 21567044.308
+ 41.800 37.200
+ -12913424.194 5 -10062406.858 5 22122765.977 22122764.962 22122764.872
+ 35.600 32.800
+ -14227189.796 7 -11086118.735 6 20984750.595 20984747.158 20984749.421
+ 46.000 40.000
+ -4044433.674 3 -3151504.617 2 24135353.530 24135352.116 24135352.250
+ 19.900 17.800
+ -22846159.144 7 -17802198.994 8 20375399.558 20375395.316 20375398.956
+ 47.400 49.600
+ 06 1 2 5 11 0.0000000 0 7G05G09G14G15G18G21G22
+ -5392059.941 4 -4201602.709 3 23449608.335 23449608.112 23449607.657
+ 27.100 22.600
+ -18982102.593 7 -14791242.909 6 21055850.616 21055848.426 21055849.821
+ 45.500 38.400
+ -11369115.573 6 -8859049.443 6 21555819.135 21555816.421 21555818.144
+ 41.300 37.600
+ -12811923.357 5 -9983315.341 5 22142080.939 22142079.624 22142080.060
+ 35.900 32.100
+ -14174746.263 7 -11045253.650 6 20994729.708 20994726.890 20994729.075
+ 46.300 39.900
+ -3926768.654 3 -3059817.663 1 24157744.642 24157742.521 24157743.324
+ 22.600 11.000
+ -22865118.437 7 -17816972.470 8 20371791.895 20371787.519 20371791.250
+ 47.600 49.700
+ 06 1 2 5 11 30.0000000 0 7G05G09G14G15G18G21G22
+ -5474479.024 4 -4265825.322 4 23433927.086 23433924.588 23433925.266
+ 29.000 24.900
+ -18921079.011 7 -14743692.062 6 21067462.785 21067460.911 21067461.992
+ 45.100 38.600
+ -11427843.519 6 -8904811.472 6 21544643.585 21544640.844 21544642.615
+ 41.200 37.500
+ -12710108.694 5 -9903979.247 5 22161456.175 22161454.192 22161454.847
+ 34.700 30.200
+ -14121902.539 7 -11004076.719 6 21004786.077 21004782.798 21004785.071
+ 46.300 39.700
+ -3809052.290 3 -2968090.651 2 24180144.398 24180142.944 24180144.211
+ 22.100 17.000
+ -22883677.756 7 -17831434.281 8 20368260.140 20368255.805 20368259.511
+ 47.700 49.600
+ 06 1 2 5 12 0.0000000 0 7G05G09G14G15G18G21G22
+ -5556625.395 4 -4329835.459 4 23418293.459 23418292.358 23418292.962
+ 28.800 24.200
+ -18859499.524 7 -14695708.053 6 21079181.085 21079179.178 21079180.276
+ 45.100 38.500
+ -11486306.105 6 -8950366.721 6 21533518.318 21533515.911 21533517.388
+ 41.500 38.100
+ -12607983.173 5 -9824400.970 5 22180889.782 22180888.271 22180888.772
+ 35.400 32.100
+ -14068658.274 7 -10962587.695 6 21014917.869 21014914.901 21014917.012
+ 46.300 39.800
+ -3691287.530 3 -2876325.986 2 24202553.936 24202553.148 24202553.567
+ 19.300 13.900
+ -22901836.119 7 -17845583.651 8 20364804.850 20364800.335 20364804.195
+ 47.600 49.700
+ 06 1 2 5 12 30.0000000 0 7G05G09G14G15G18G21G22
+ -5638495.949 4 -4393630.632 4 23402714.486 23402712.859 23402713.241
+ 26.800 24.900
+ -18797366.423 7 -14647292.652 6 21091004.506 21091002.724 21091003.649
+ 45.000 38.500
+ -11544503.128 6 -8995715.043 6 21522443.967 21522441.159 21522442.899
+ 41.700 37.800
+ -12505550.001 5 -9744582.943 5 22200381.818 22200380.757 22200380.766
+ 35.200 32.600
+ -14015014.181 7 -10920787.105 6 21025125.607 21025122.961 21025125.052
+ 46.400 39.500
+ -3573476.832 2 -2784525.528 1 24224973.342 24224971.943 24224971.686
+ 17.800 11.000
+ -22919592.131 7 -17859419.510 8 20361426.056 20361421.506 20361425.430
+ 47.800 49.700
+ 06 1 2 5 13 0.0000000 0 7G05G09G14G15G18G21G22
+ -5720087.390 4 -4457208.349 4 23387187.974 23387186.617 23387186.785
+ 27.100 24.200
+ -18734682.394 7 -14598447.954 6 21102932.954 21102931.209 21102932.193
+ 45.100 38.500
+ -11602434.298 6 -9040856.217 6 21511420.195 21511416.981 21511419.097
+ 41.800 37.300
+ -12402812.102 5 -9664527.482 5 22219932.231 22219931.084 22219931.380
+ 35.300 32.000
+ -13960970.478 7 -10878675.128 6 21035410.452 21035407.175 21035409.288
+ 46.000 39.700
+ -3455622.959 3 -2692691.456 2 24247401.184 24247399.135 24247399.952
+ 20.500 13.900
+ -22936944.525 7 -17872940.855 8 20358124.006 20358119.452 20358123.296
+ 47.700 49.700
+ 06 1 2 5 13 30.0000000 0 7G05G09G14G15G18G21G22
+ -5801396.693 4 -4520566.211 3 23371715.583 23371713.748 23371714.283
+ 29.000 23.400
+ -18671449.514 7 -14549175.577 6 21114966.002 21114963.794 21114965.212
+ 45.200 38.200
+ -11660099.048 6 -9085789.782 6 21500446.827 21500443.909 21500445.832
+ 41.900 37.900
+ -12299772.646 5 -9584237.025 5 22239540.391 22239538.932 22239539.218
+ 34.300 31.500
+ -13906528.038 7 -10836252.451 6 21045770.169 21045767.235 21045769.173
+ 45.800 39.500
+ -3337728.777 3 -2600825.926 2 24269835.346 24269832.954 24269834.420
+ 23.000 12.600
+ -22953892.463 7 -17886147.039 8 20354898.745 20354894.315 20354898.097
+ 47.700 49.700
+ 06 1 2 5 14 0.0000000 0 7G05G09G14G15G18G21G22
+ -5882420.609 5 -4583701.699 4 23356296.762 23356295.654 23356295.871
+ 30.100 24.600
+ -18607670.535 7 -14499477.673 6 21127102.770 21127100.756 21127101.872
+ 45.300 38.600
+ -11717497.281 7 -9130515.674 6 21489524.321 21489521.575 21489523.381
+ 42.100 38.100
+ -12196434.760 5 -9503714.047 5 22259204.347 22259203.314 22259203.562
+ 34.300 31.000
+ -13851686.911 7 -10793519.110 6 21056205.565 21056203.217 21056205.018
+ 45.800 39.600
+ -3219797.127 3 -2508931.164 2 24292277.227 24292274.681 24292276.385
+ 22.600 15.100
+ -22970434.801 7 -17899037.172 8 20351750.800 20351746.433 20351750.164
+ 47.700 49.700
+ 06 1 2 5 14 30.0000000 0 7G05G09G14G15G18G21G22
+ -5963156.047 4 -4646612.394 4 23340932.917 23340932.167 23340932.139
+ 28.800 24.600
+ -18543347.988 7 -14449356.209 6 21139342.876 21139340.740 21139342.042
+ 45.300 37.700
+ -11774628.472 7 -9175033.481 6 21478652.585 21478649.827 21478651.549
+ 42.000 38.100
+ -12092801.491 5 -9422960.874 5 22278925.682 22278924.227 22278924.577
+ 34.500 30.600
+ -13796447.404 7 -10750475.349 6 21066718.035 21066714.941 21066716.993
+ 45.900 39.300
+ -3101830.874 3 -2417009.450 2 24314725.059 24314723.498 24314724.389
+ 19.900 15.100
+ -22986570.165 7 -17911610.183 8 20348680.398 20348675.987 20348679.761
+ 47.700 49.700
+ 06 1 2 5 15 0.0000000 0 7G05G09G14G15G18G21G22
+ -6043599.883 4 -4709295.848 3 23325624.806 23325623.675 23325623.860
+ 27.100 21.100
+ -18478484.689 7 -14398813.376 6 21151685.812 21151683.870 21151685.059
+ 45.100 37.800
+ -11831492.553 7 -9219343.149 6 21467831.776 21467828.844 21467830.794
+ 42.300 38.400
+ -11988875.888 5 -9341979.919 5 22298701.721 22298700.633 22298700.907
+ 34.500 30.800
+ -13740810.340 7 -10707121.805 6 21077305.586 21077302.349 21077304.435
+ 45.900 39.300
+ -2983832.610 2 -2325062.867 2 24337179.101 24337177.947 24337178.184
+ 16.100 15.100
+ -23002297.393 7 -17923865.168 8 20345687.485 20345683.197 20345686.851
+ 47.700 49.800
+ 06 1 2 5 15 30.0000000 0 6G05G09G14G15G18G22
+ -6123748.904 4 -4771749.613 4 23310373.130 23310372.039 23310372.346
+ 29.900 24.200
+ -18413083.289 7 -14347851.247 6 21164131.466 21164129.408 21164130.592
+ 45.000 38.100
+ -11888089.111 7 -9263444.358 6 21457061.905 21457058.951 21457060.920
+ 42.700 38.300
+ -11884660.988 5 -9260773.558 5 22318534.059 22318532.329 22318532.652
+ 33.500 31.300
+ -13684776.257 7 -10663458.892 6 21087967.855 21087965.406 21087967.217
+ 45.800 39.500
+ -23017615.565 7 -17935801.407 8 20342772.687 20342768.247 20342772.017
+ 47.600 49.800
+ 06 1 2 5 16 0.0000000 0 6G05G09G14G15G18G22
+ -6203600.014 5 -4833971.237 4 23295179.050 23295177.071 23295177.802
+ 30.600 24.600
+ -18347145.849 7 -14296471.424 6 21176678.886 21176676.883 21176677.957
+ 44.800 38.100
+ -11944417.841 7 -9307336.872 6 21446342.965 21446340.006 21446341.872
+ 42.400 38.700
+ -11780160.095 5 -9179344.312 5 22338419.064 22338418.141 22338418.337
+ 34.600 31.300
+ -13628345.459 7 -10619486.857 6 21098706.611 21098703.889 21098705.699
+ 45.700 39.300
+ -23032523.607 7 -17947418.064 8 20339935.750 20339931.325 20339935.151
+ 47.800 49.700
+ 06 1 2 5 16 30.0000000 0 6G05G09G14G15G18G22
+ -6283150.102 4 -4895958.276 4 23280040.580 23280039.350 23280039.599
+ 29.900 26.500
+ -18280675.448 7 -14244676.310 6 21189327.605 21189325.871 21189326.826
+ 44.600 38.100
+ -12000478.446 7 -9351020.452 6 21435674.742 21435671.966 21435673.814
+ 42.300 38.400
+ -11675376.239 5 -9097694.589 5 22358359.397 22358357.971 22358358.244
+ 34.000 31.300
+ -13571518.278 7 -10575205.951 6 21109520.753 21109517.578 21109519.635
+ 45.900 39.100
+ -23047020.150 7 -17958714.074 8 20337177.311 20337172.730 20337176.671
+ 47.800 49.800
+ 06 1 2 5 17 0.0000000 0 6G05G09G14G15G18G22
+ -6362396.049 4 -4957708.330 4 23264960.831 23264959.081 23264959.154
+ 28.100 24.900
+ -18213674.506 7 -14192467.787 6 21202077.431 21202075.626 21202076.672
+ 44.500 38.100
+ -12056270.525 6 -9394494.794 6 21425057.654 21425055.107 21425056.709
+ 41.900 38.900
+ -11570312.390 5 -9015826.671 5 22378351.993 22378351.070 22378350.964
+ 33.900 31.000
+ -13514295.307 7 -10530616.628 6 21120409.762 21120406.723 21120408.845
+ 46.000 38.900
+ -23061104.244 7 -17969688.694 8 20334497.010 20334492.560 20334496.473
+ 47.800 49.700
+ 06 1 2 5 17 30.0000000 0 6G05G09G14G15G18G22
+ -6441334.691 4 -5019218.918 4 23249939.072 23249937.435 23249937.821
+ 28.600 25.300
+ -18146145.955 7 -14139848.134 6 21214927.941 21214925.954 21214927.142
+ 44.600 37.900
+ -12111793.871 7 -9437759.734 6 21414492.095 21414489.489 21414491.101
+ 42.400 39.300
+ -11464971.732 5 -8933743.076 5 22398397.556 22398396.819 22398396.698
+ 34.300 31.300
+ -13456677.215 7 -10485719.420 6 21131374.045 21131371.004 21131373.163
+ 45.700 38.700
+ -23074774.764 7 -17980341.052 8 20331895.690 20331891.052 20331895.045
+ 47.900 49.700
+ 06 1 2 5 18 0.0000000 0 6G05G09G14G15G18G22
+ -6519962.991 5 -5080487.689 3 23234976.415 23234974.875 23234975.267
+ 30.600 23.000
+ -18078092.028 7 -14086819.107 6 21227877.854 21227876.278 21227877.107
+ 44.400 38.000
+ -12167048.179 7 -9480815.044 6 21403977.568 21403974.784 21403976.571
+ 42.500 39.000
+ -11359357.342 5 -8851446.182 5 22418495.802 22418494.524 22418494.595
+ 33.500 30.800
+ -13398664.579 7 -10440514.787 6 21142413.684 21142410.482 21142412.696
+ 45.900 38.900
+ -23088030.552 8 -17990670.239 8 20329373.284 20329368.620 20329372.611
+ 48.000 49.700
+ 06 1 2 5 18 30.0000000 0 6G05G09G14G15G18G22
+ -6598277.737 5 -5141512.159 4 23220073.565 23220071.983 23220072.617
+ 30.200 24.200
+ -18009516.045 7 -14033383.276 6 21240927.718 21240925.756 21240926.895
+ 44.400 37.800
+ -12222033.165 7 -9523660.482 6 21393514.311 21393511.460 21393513.280
+ 42.600 38.900
+ -11253472.529 5 -8768938.581 5 22438644.846 22438643.860 22438643.812
+ 33.600 30.600
+ -13340257.470 7 -10395002.756 6 21153527.996 21153524.974 21153527.143
+ 45.700 38.600
+ -23100870.435 7 -18000675.345 8 20326929.879 20326925.423 20326929.203
+ 47.800 49.900
+ 06 1 2 5 19 0.0000000 0 6G05G09G14G15G18G22
+ -6676275.864 4 -5202289.890 4 23205230.576 23205230.094 23205229.519
+ 29.200 25.900
+ -17940420.265 7 -13979542.410 6 21254076.145 21254074.305 21254075.333
+ 44.600 37.700
+ -12276748.537 7 -9566295.833 6 21383102.429 21383099.401 21383101.358
+ 42.700 38.900
+ -11147320.328 5 -8686222.618 4 22458844.936 22458843.744 22458843.995
+ 33.200 29.000
+ -13281456.694 7 -10349183.969 6 21164717.629 21164714.470 21164716.476
+ 45.500 38.600
+ -23113293.540 7 -18010355.688 8 20324565.803 20324561.367 20324565.153
+ 47.900 49.800
+ 06 1 2 5 19 30.0000000 0 6G05G09G14G15G18G22
+ -6753954.306 4 -5262818.508 4 23190449.680 23190447.985 23190448.030
+ 29.700 26.500
+ -17870807.364 7 -13925298.591 6 21267323.081 21267321.095 21267322.352
+ 44.700 37.100
+ -12331194.022 7 -9608720.881 6 21372741.767 21372738.809 21372740.776
+ 43.000 38.900
+ -11040903.661 5 -8603300.585 4 22479096.055 22479094.199 22479094.559
+ 31.500 29.200
+ -13222262.903 7 -10303058.941 6 21175981.842 21175978.624 21175980.762
+ 45.600 38.100
+ -23125299.043 8 -18019710.627 8 20322281.179 20322276.733 20322280.558
+ 48.100 49.800
+ 06 1 2 5 20 0.0000000 0 7G05G09G14G15G18G22G30
+ -6831309.920 5 -5323095.562 4 23175729.209 23175727.214 23175727.828
+ 30.200 25.900
+ -17800680.116 7 -13870653.982 6 21280667.714 21280665.802 21280667.009
+ 44.700 37.200
+ -12385369.399 7 -9650935.459 6 21362432.509 21362429.559 21362431.488
+ 42.800 38.900
+ -10934225.704 5 -8520174.913 4 22499395.971 22499394.457 22499394.859
+ 33.200 29.500
+ -13162676.853 7 -10256628.262 6 21187320.143 21187317.484 21187319.563
+ 45.600 38.100
+ -23136885.455 8 -18028739.002 8 20320076.457 20320071.986 20320075.805
+ 48.000 49.900
+ -217909.700 3 -169799.458 1 24617054.169 24617055.005 24617055.024
+ 18.600 11.000
+ 06 1 2 5 20 30.0000000 0 7G05G09G14G15G18G22G30
+ -6908339.627 5 -5383118.694 4 23161071.108 23161069.016 23161069.839
+ 30.600 25.900
+ -17730041.354 7 -13815610.791 6 21294110.248 21294107.802 21294109.343
+ 44.700 37.000
+ -12439274.211 7 -9692939.202 6 21352174.802 21352171.813 21352173.787
+ 42.900 39.200
+ -10827289.535 5 -8436848.039 4 22519744.665 22519743.408 22519743.731
+ 32.800 28.800
+ -13102698.954 7 -10209892.240 6 21198733.978 21198730.825 21198733.003
+ 45.600 38.100
+ -23148051.671 8 -18037439.948 8 20317951.348 20317947.108 20317950.806
+ 48.100 49.900
+ -320024.971 3 -249369.678 3 24597624.327 24597622.991 24597623.896
+ 21.100 20.500
+ 06 1 2 5 21 0.0000000 0 7G05G09G14G15G18G22G30
+ -6985040.412 5 -5442885.516 3 23146474.976 23146472.953 23146474.199
+ 31.100 23.400
+ -17658893.907 7 -13760171.215 6 21307648.968 21307646.690 21307648.095
+ 44.300 37.000
+ -12492908.156 7 -9734731.886 6 21341968.600 21341965.596 21341967.581
+ 43.000 39.300
+ -10720098.302 5 -8353322.442 5 22540142.791 22540141.781 22540141.634
+ 32.600 30.400
+ -13042329.727 7 -10162851.301 6 21210222.135 21210218.644 21210220.980
+ 45.700 38.000
+ -23158796.754 8 -18045812.742 8 20315906.765 20315902.277 20315906.083
+ 48.000 49.800
+ -422117.024 3 -328921.839 3 24578196.909 24578195.988 24578195.915
+ 22.600 22.600
+ 06 1 2 5 21 30.0000000 0 7G05G09G14G15G18G22G30
+ -7061409.133 5 -5502393.587 4 23131942.160 23131940.997 23131941.434
+ 30.200 26.200
+ -17587240.341 7 -13704337.267 6 21321283.887 21321282.109 21321283.192
+ 43.800 37.100
+ -12546271.104 7 -9776313.397 6 21331813.646 21331811.072 21331812.874
+ 43.000 39.300
+ -10612655.215 5 -8269600.586 5 22560588.059 22560587.596 22560587.257
+ 32.400 31.000
+ -12981569.731 7 -10115505.869 6 21221784.006 21221781.017 21221783.053
+ 45.500 38.200
+ -23169119.891 8 -18053856.746 8 20313942.248 20313937.870 20313941.668
+ 48.000 49.800
+ -524182.932 3 -408453.640 3 24558772.897 24558773.647 24558773.330
+ 20.500 22.100
+ 06 1 2 5 22 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -132143.175 1 -102969.198 9 24237196.205 24237195.377 24237195.970
+ 11.000 -3.000
+ -7137442.754 5 -5561640.531 4 23117473.742 23117472.433 23117472.697
+ 30.600 26.800
+ -17515083.260 7 -13648110.985 6 21335015.184 21335013.097 21335014.365
+ 44.100 37.100
+ -12599362.720 7 -9817683.487 6 21321711.148 21321707.991 21321709.951
+ 43.000 39.600
+ -10504963.245 5 -8185684.825 5 22581081.502 22581080.359 22581080.477
+ 31.600 30.200
+ -12920419.593 7 -10067856.429 6 21233420.398 21233417.692 21233419.649
+ 45.600 38.300
+ -23179019.678 8 -18061570.869 8 20312058.353 20312054.095 20312057.822
+ 48.100 49.900
+ -626219.632 3 -487962.673 3 24539355.587 24539356.423 24539356.489
+ 19.300 19.900
+ 06 1 2 5 22 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -218183.971 1 -170013.937 24220823.726 24220822.803 24220823.082
+ 9.000 3.000
+ -7213138.197 5 -5620623.965 4 23103069.025 23103067.534 23103068.198
+ 31.000 25.600
+ -17442425.788 7 -13591494.766 6 21348841.363 21348839.333 21348840.620
+ 43.800 36.900
+ -12652182.583 7 -9858841.822 6 21311659.480 21311656.797 21311658.594
+ 43.000 39.500
+ -10397025.554 5 -8101577.570 4 22601621.439 22601620.297 22601620.275
+ 31.800 29.500
+ -12858879.621 7 -10019903.229 6 21245131.189 21245128.426 21245130.342
+ 45.700 38.100
+ -23188495.461 8 -18068954.594 8 20310255.227 20310250.871 20310254.590
+ 48.100 49.900
+ -728223.990 3 -567446.538 2 24519946.629 24519945.771 24519945.216
+ 18.600 17.800
+ 06 1 2 5 23 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -304113.862 1 -236972.289 1 24204471.761 24204470.088 24204470.368
+ 11.000 9.000
+ -7288492.407 5 -5679341.498 4 23088729.684 23088728.312 23088728.403
+ 30.600 25.900
+ -17369270.617 7 -13534490.742 6 21362762.303 21362760.272 21362761.548
+ 43.800 36.600
+ -12704730.304 7 -9899788.094 6 21301660.196 21301657.246 21301659.248
+ 43.200 39.500
+ -10288845.370 5 -8017281.359 4 22622207.727 22622206.278 22622206.668
+ 32.700 29.200
+ -12796951.055 7 -9971647.217 6 21256915.769 21256912.893 21256914.957
+ 45.700 37.700
+ -23197546.164 8 -18076007.093 8 20308533.185 20308528.527 20308532.516
+ 48.200 49.800
+ -830193.053 2 -646902.902 3 24500541.686 24500541.352 24500541.470
+ 17.000 19.300
+ 06 1 2 5 23 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -389932.504 2 -303843.891 1 24188141.417 24188139.702 24188139.505
+ 13.900 6.500
+ -7363502.332 5 -5737790.758 4 23074455.709 23074454.523 23074454.800
+ 31.600 26.800
+ -17295619.925 7 -13477100.587 6 21376777.262 21376775.541 21376776.468
+ 43.300 36.500
+ -12757005.818 7 -9940522.260 6 21291712.403 21291709.511 21291711.352
+ 42.800 39.700
+ -10180425.884 5 -7932798.659 4 22642839.524 22642837.857 22642838.314
+ 32.700 28.800
+ -12734634.146 7 -9923088.584 6 21268774.180 21268771.377 21268773.485
+ 45.600 37.700
+ -23206170.454 8 -18082727.322 8 20306891.884 20306887.404 20306891.306
+ 48.500 49.800
+ -932123.820 3 -726329.348 2 24481145.164 24481144.121 24481144.911
+ 19.300 17.800
+ 06 1 2 5 24 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -475639.377 2 -370628.420 1 24171830.582 24171829.301 24171830.215
+ 12.600 6.500
+ -7438164.934 5 -5795969.388 4 23060248.689 23060246.592 23060247.168
+ 31.100 26.200
+ -17221477.122 7 -13419326.978 6 21390886.298 21390884.587 21390885.574
+ 43.300 36.800
+ -12809009.029 7 -9981044.236 6 21281816.594 21281813.613 21281815.549
+ 43.000 39.800
+ -10071770.122 5 -7848131.878 4 22663515.549 22663514.400 22663514.548
+ 31.000 28.800
+ -12671929.797 7 -9874228.058 6 21280706.951 21280703.568 21280705.886
+ 45.600 37.600
+ -23214367.531 8 -18089114.656 8 20305332.301 20305327.539 20305331.565
+ 48.400 49.800
+ -1034013.069 3 -805723.513 2 24461757.574 24461755.323 24461756.584
+ 21.600 17.000
+ 06 1 2 5 24 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -561234.121 2 -437325.622 1 24155542.588 24155541.570 24155541.696
+ 12.600 9.000
+ -7512477.176 5 -5853875.010 4 23046106.186 23046105.592 23046105.602
+ 31.000 26.500
+ -17146844.789 7 -13361171.916 6 21405088.679 21405086.456 21405087.662
+ 43.400 36.600
+ -12860739.564 7 -10021353.741 6 21271972.429 21271969.492 21271971.477
+ 42.700 39.700
+ -9962881.249 5 -7763283.430 4 22684236.642 22684235.504 22684235.511
+ 32.300 29.500
+ -12608838.565 7 -9825066.066 6 21292712.522 21292709.509 21292711.612
+ 45.600 37.700
+ -23222136.226 8 -18095168.187 8 20303853.912 20303849.214 20303853.296
+ 48.600 49.800
+ -1135857.834 4 -885083.038 2 24442374.734 24442374.657 24442375.280
+ 24.200 16.100
+ 06 1 2 5 25 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -646716.359 2 -503935.115 24139275.723 24139275.330 24139274.702
+ 13.900 3.000
+ -7586436.067 4 -5911505.268 4 23032033.433 23032031.600 23032031.849
+ 29.500 26.800
+ -17071725.610 7 -13302637.487 6 21419383.271 21419381.168 21419382.421
+ 43.500 36.500
+ -12912196.973 7 -10061450.424 6 21262180.495 21262177.635 21262179.562
+ 43.300 40.100
+ -9853762.271 5 -7678255.692 4 22705001.190 22704999.948 22705000.382
+ 31.800 29.500
+ -12545361.126 7 -9775603.126 6 21304791.655 21304788.761 21304790.928
+ 45.300 37.100
+ -23229475.903 8 -18100887.417 8 20302457.193 20302452.517 20302456.616
+ 48.500 49.800
+ -1237654.960 3 -964405.441 1 24423004.230 24423003.503 24423003.825
+ 21.600 6.500
+ 06 1 2 5 25 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -732085.602 2 -570456.573 1 24123030.864 24123029.378 24123029.819
+ 15.100 6.500
+ -7660038.512 5 -5968857.823 4 23018027.350 23018025.196 23018026.397
+ 32.300 26.500
+ -16996123.022 7 -13243726.375 6 21433769.817 21433767.953 21433769.045
+ 43.200 36.300
+ -12963381.000 7 -10101334.076 6 21252440.578 21252437.603 21252439.508
+ 43.100 40.200
+ -9744416.412 5 -7593051.167 4 22725809.408 22725807.769 22725808.160
+ 32.700 28.800
+ -12481498.260 7 -9725839.866 6 21316944.647 21316941.495 21316943.699
+ 45.100 37.000
+ -23236385.670 8 -18106271.654 8 20301142.312 20301137.643 20301141.604
+ 48.400 49.800
+ -1339401.570 3 -1043688.480 1 24403642.752 24403641.435 24403641.761
+ 21.100 11.000
+ 06 1 2 5 26 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -817341.449 3 -636889.728 1 24106807.004 24106806.496 24106806.325
+ 20.500 6.500
+ -7733281.691 5 -6025930.403 4 23004089.854 23004087.780 23004088.402
+ 32.400 27.600
+ -16920039.329 7 -13184440.387 6 21448248.213 21448246.192 21448247.324
+ 43.200 36.500
+ -13014291.678 7 -10141004.732 6 21242752.363 21242749.716 21242751.407
+ 42.900 40.400
+ -9634846.874 5 -7507672.314 4 22746659.572 22746658.110 22746658.532
+ 30.800 26.800
+ -12417250.537 7 -9675776.709 6 21329170.579 21329167.509 21329169.568
+ 45.000 37.200
+ -23242864.241 8 -18111319.891 8 20299909.344 20299904.796 20299908.763
+ 48.500 49.800
+ -1441094.390 3 -1122929.629 1 24384290.859 24384289.721 24384290.757
+ 22.100 6.500
+ 06 1 2 5 26 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -902483.492 3 -703234.177 1 24090605.798 24090604.166 24090604.786
+ 19.300 9.000
+ -7806162.334 5 -6082720.480 4 22990220.681 22990219.201 22990219.277
+ 31.800 28.600
+ -16843477.456 7 -13124781.781 6 21462817.385 21462815.369 21462816.555
+ 43.000 36.000
+ -13064928.385 7 -10180461.900 6 21233116.673 21233113.782 21233115.592
+ 43.100 40.200
+ -9525056.650 4 -7422121.526 4 22767551.585 22767550.575 22767550.730
+ 29.700 26.200
+ -12352618.740 7 -9625414.291 6 21341469.600 21341466.511 21341468.638
+ 44.900 37.100
+ -23248910.641 8 -18116031.372 8 20298758.782 20298754.193 20298758.188
+ 48.500 49.800
+ -1542730.437 3 -1202126.524 1 24364949.790 24364948.227 24364949.784
+ 23.800 6.500
+ 06 1 2 5 27 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -987511.266 3 -769489.568 2 24074425.236 24074423.864 24074424.419
+ 22.100 12.600
+ -7878677.571 5 -6139225.838 4 22976421.212 22976419.842 22976420.209
+ 32.700 27.900
+ -16766439.982 7 -13064752.587 5 21477477.200 21477474.973 21477476.375
+ 43.000 35.600
+ -13115290.914 7 -10219705.427 6 21223532.915 21223530.436 21223531.960
+ 43.100 40.900
+ -9415048.833 4 -7336401.171 4 22788485.840 22788484.584 22788484.506
+ 29.900 27.900
+ -12287603.804 7 -9574753.334 6 21353841.437 21353838.470 21353840.570
+ 44.800 36.800
+ -23254524.053 8 -18120405.462 8 20297690.616 20297686.004 20297690.034
+ 48.700 49.800
+ -1644306.586 3 -1281276.772 3 24345621.849 24345620.325 24345620.894
+ 23.400 19.900
+ 06 1 2 5 27 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -1072424.376 3 -835655.596 2 24058266.234 24058265.129 24058265.479
+ 23.400 12.600
+ -7950824.416 5 -6195444.152 4 22962692.944 22962690.654 22962691.385
+ 33.100 26.800
+ -16688930.694 7 -13004355.737 6 21492226.776 21492224.774 21492225.953
+ 43.000 36.100
+ -13165378.642 7 -10258734.825 6 21214001.649 21213998.725 21214000.592
+ 43.100 40.600
+ -9304826.585 5 -7250513.782 4 22809460.022 22809459.214 22809459.034
+ 30.100 27.900
+ -12222206.160 7 -9523794.150 6 21366286.247 21366283.416 21366285.389
+ 44.600 37.100
+ -23259703.678 8 -18124441.536 8 20296704.986 20296700.367 20296704.351
+ 48.400 49.700
+ -1745819.701 3 -1360377.853 3 24326303.948 24326303.046 24326303.210
+ 21.600 19.300
+ 06 1 2 5 28 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1157222.423 4 -901731.981 3 24042129.889 24042128.746 24042129.075
+ 25.300 18.600
+ -8022599.896 5 -6251373.084 4 22949033.499 22949032.191 22949032.561
+ 32.700 27.100
+ -16610950.955 7 -12943592.310 6 21507065.836 21507063.796 21507065.045
+ 43.400 36.000
+ -13215192.128 7 -10297550.525 6 21204522.506 21204519.610 21204521.423
+ 43.400 40.500
+ -9194393.280 5 -7164461.860 4 22830475.151 22830474.158 22830474.169
+ 31.800 28.800
+ -12156426.511 7 -9472537.291 6 21378803.546 21378800.829 21378802.785
+ 44.800 37.000
+ -23264448.233 8 -18128138.592 8 20295802.139 20295797.509 20295801.454
+ 48.400 49.700
+ -1847266.735 3 -1439427.414 3 24306998.853 24306997.385 24306998.223
+ 20.500 20.500
+ 06 1 2 5 28 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -1241905.021 4 -967718.409 3 24026015.471 24026014.567 24026014.674
+ 25.600 19.300
+ -8094001.022 5 -6307010.309 4 22935446.845 22935445.072 22935445.548
+ 32.400 27.400
+ -16532504.918 7 -12882465.521 6 21521993.459 21521991.631 21521992.724
+ 42.700 36.100
+ -13264730.805 7 -10336152.091 6 21195095.507 21195092.611 21195094.523
+ 43.300 40.700
+ -9083751.977 4 -7078247.897 4 22851528.791 22851528.118 22851528.035
+ 29.900 26.500
+ -12090265.944 7 -9420983.623 6 21391393.904 21391390.786 21391392.889
+ 44.800 36.600
+ -23268756.885 8 -18131495.985 8 20294982.245 20294977.625 20294981.589
+ 48.400 49.800
+ -1948644.523 3 -1518423.081 2 24287706.855 24287706.054 24287706.471
+ 20.500 17.000
+ 06 1 2 5 29 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1326471.712 4 -1033614.533 3 24009922.752 24009921.867 24009921.716
+ 25.300 20.500
+ -8165024.804 5 -6362353.501 4 22921931.046 22921929.552 22921929.987
+ 32.600 26.500
+ -16453594.762 7 -12820977.094 5 21537009.748 21537007.570 21537008.882
+ 42.700 35.600
+ -13313994.276 7 -10374539.210 6 21185720.935 21185718.092 21185720.092
+ 43.600 40.700
+ -8972905.472 5 -6991874.028 4 22872622.983 22872621.948 22872621.639
+ 30.200 27.900
+ -12023724.594 7 -9369133.234 6 21404055.779 21404053.082 21404055.191
+ 44.900 36.500
+ -23272629.088 8 -18134513.286 8 20294245.291 20294240.796 20294244.660
+ 48.300 49.800
+ -2049949.975 3 -1597362.354 3 24268428.578 24268428.956 24268429.012
+ 21.600 21.600
+ 06 1 2 5 29 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -1410922.075 4 -1099419.991 3 23993852.846 23993851.438 23993851.825
+ 26.200 21.100
+ -8235668.388 5 -6417400.418 4 22908487.828 22908486.878 22908486.877
+ 33.000 27.400
+ -16374223.349 7 -12759129.239 5 21552113.540 21552111.550 21552112.645
+ 42.600 35.900
+ -13362982.328 7 -10412711.717 6 21176398.799 21176395.952 21176397.889
+ 43.500 40.600
+ -8861856.958 4 -6905342.756 4 22893753.968 22893753.504 22893753.377
+ 29.500 27.400
+ -11956803.695 7 -9316987.103 6 21416790.551 21416787.711 21416789.876
+ 44.900 36.200
+ -23276063.717 8 -18137189.622 8 20293591.757 20293587.163 20293591.091
+ 48.300 49.800
+ -2151179.953 3 -1676242.802 3 24249167.234 24249165.035 24249166.363
+ 22.100 21.600
+ 06 1 2 5 30 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1495255.808 4 -1165134.568 3 23977803.805 23977803.073 23977803.156
+ 25.900 23.400
+ -8305928.767 5 -6472148.735 4 22895118.473 22895116.582 22895117.082
+ 32.700 27.900
+ -16294394.083 7 -12696924.616 5 21567304.419 21567302.484 21567303.533
+ 42.300 35.600
+ -13411694.658 7 -10450669.374 6 21167129.244 21167126.454 21167128.243
+ 43.400 41.000
+ -8750609.681 4 -6818656.602 4 22914924.446 22914923.268 22914923.490
+ 29.900 26.800
+ -11889503.860 7 -9264545.707 6 21429597.556 21429594.629 21429596.493
+ 44.600 36.400
+ -23279059.988 8 -18139524.377 8 20293021.444 20293017.009 20293020.860
+ 48.400 49.800
+ -2252331.269 2 -1755061.942 3 24229917.920 24229916.496 24229917.533
+ 17.800 19.900
+ 06 1 2 5 30 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -1579472.445 4 -1230757.889 4 23961778.149 23961777.495 23961777.484
+ 27.100 24.600
+ -8375802.965 5 -6526596.152 4 22881820.809 22881820.037 22881820.402
+ 32.600 27.600
+ -16214109.451 7 -12634365.162 5 21582581.991 21582580.205 21582581.311
+ 42.100 35.200
+ -13460131.058 7 -10488412.022 6 21157911.908 21157908.972 21157911.020
+ 43.400 40.600
+ -8639166.820 5 -6731818.044 4 22936131.632 22936130.322 22936130.493
+ 30.600 27.600
+ -11821825.873 7 -9211809.621 5 21442476.543 21442473.221 21442475.270
+ 44.400 35.900
+ -23281616.709 8 -18141516.628 8 20292535.036 20292530.542 20292534.370
+ 48.300 49.800
+ -2353400.902 4 -1833817.462 2 24210685.158 24210683.920 24210685.049
+ 24.200 17.800
+ 06 1 2 5 31 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1663571.436 4 -1296289.536 4 23945774.935 23945774.041 23945773.899
+ 26.800 27.100
+ -8445288.118 5 -6580740.388 4 22868599.215 22868597.528 22868597.761
+ 33.000 27.900
+ -16133372.570 6 -12571453.312 5 21597945.623 21597943.919 21597944.883
+ 41.900 35.500
+ -13508291.242 7 -10525939.439 6 21148747.381 21148744.571 21148746.495
+ 43.600 40.700
+ -8527531.404 4 -6644829.454 4 22957374.341 22957374.105 22957373.555
+ 29.700 27.900
+ -11753770.779 7 -9158779.701 6 21455426.840 21455423.683 21455425.669
+ 44.400 36.100
+ -23283733.196 8 -18143165.840 8 20292132.092 20292127.783 20292131.546
+ 48.400 49.800
+ -2454385.613 3 -1912506.842 3 24191468.057 24191467.577 24191467.811
+ 23.400 19.300
+ 06 1 2 5 31 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -1747552.421 4 -1361729.229 4 23929794.080 23929792.849 23929792.919
+ 27.900 27.600
+ -8514381.288 5 -6634579.178 4 22855451.077 22855449.217 22855449.846
+ 33.000 28.400
+ -16052185.938 7 -12508191.004 5 21613395.194 21613393.113 21613394.324
+ 42.100 35.200
+ -13556174.966 7 -10563251.435 6 21139635.283 21139632.674 21139634.279
+ 43.100 40.900
+ -8415706.752 4 -6557693.404 4 22978654.205 22978653.420 22978653.238
+ 28.600 27.100
+ -11685339.061 7 -9105456.286 6 21468448.318 21468446.011 21468447.723
+ 44.600 36.200
+ -23285408.790 8 -18144471.502 8 20291813.268 20291808.854 20291812.706
+ 48.200 49.700
+ -2555282.398 3 -1991127.648 3 24172268.854 24172267.788 24172268.022
+ 22.600 21.100
+ 06 1 2 5 32 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1831415.021 4 -1427076.674 4 23913835.561 23913834.228 23913834.527
+ 29.500 27.400
+ -8583079.612 5 -6688110.303 4 22842378.425 22842376.262 22842376.843
+ 33.100 28.400
+ -15970552.840 6 -12444580.793 5 21628929.418 21628927.376 21628928.618
+ 41.900 35.100
+ -13603781.932 7 -10600347.766 6 21130576.076 21130573.374 21130575.101
+ 43.200 41.100
+ -8303695.901 4 -6470412.274 4 22999969.534 22999968.616 22999968.190
+ 29.700 27.600
+ -11616531.816 7 -9051840.277 6 21481542.287 21481539.638 21481541.446
+ 44.300 36.100
+ -23286642.399 8 -18145432.753 8 20291578.655 20291574.081 20291577.965
+ 48.200 49.600
+ -2656087.919 3 -2069677.402 3 24153085.315 24153084.636 24153084.819
+ 23.400 20.500
+ 06 1 2 5 32 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -1915158.846 4 -1492331.580 4 23897899.901 23897898.150 23897898.804
+ 28.800 26.800
+ -8651380.173 5 -6741331.484 4 22829381.157 22829379.169 22829379.983
+ 33.900 28.600
+ -15888475.722 6 -12380624.599 5 21644548.225 21644546.356 21644547.412
+ 41.800 35.200
+ -13651111.558 7 -10637227.986 6 21121569.580 21121566.859 21121568.562
+ 43.300 41.200
+ -8191501.873 5 -6382988.384 4 23021319.115 23021318.254 23021318.169
+ 30.200 25.900
+ -11547350.179 7 -8997932.523 6 21494707.288 21494704.343 21494706.255
+ 44.000 36.200
+ -23287433.275 8 -18146049.021 8 20291428.138 20291423.628 20291427.521
+ 48.200 49.600
+ -2756799.259 3 -2148153.728 2 24133919.259 24133918.856 24133919.774
+ 23.000 15.100
+ 06 1 2 5 33 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1998783.572 4 -1557493.677 4 23881986.833 23881984.936 23881985.547
+ 29.500 25.300
+ -8719280.096 5 -6794240.493 4 22816459.500 22816458.186 22816458.679
+ 33.400 28.100
+ -15805958.101 7 -12316325.155 5 21660250.842 21660248.866 21660250.073
+ 42.300 35.200
+ -13698164.061 7 -10673892.276 6 21112615.827 21112613.114 21112614.855
+ 43.500 41.400
+ -8079127.721 4 -6295424.124 3 23042702.964 23042702.084 23042702.130
+ 29.200 23.800
+ -11477794.229 7 -8943733.094 5 21507943.399 21507940.298 21507942.284
+ 43.700 35.500
+ -23287780.606 8 -18146319.672 8 20291361.998 20291357.499 20291361.414
+ 48.200 49.600
+ -2857413.232 3 -2226554.200 3 24114774.130 24114773.182 24114773.202
+ 22.100 19.300
+ 06 1 2 5 33 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -2082288.766 4 -1622562.649 3 23866096.065 23866094.309 23866094.878
+ 27.400 23.800
+ -8786776.440 5 -6846835.014 4 22803615.502 22803613.999 22803614.399
+ 33.000 28.400
+ -15723002.278 7 -12251684.257 5 21676036.731 21676034.918 21676035.829
+ 42.000 35.100
+ -13744939.242 7 -10710340.466 6 21103714.728 21103711.999 21103713.799
+ 43.700 41.400
+ -7966576.756 4 -6207722.104 4 23064120.817 23064120.303 23064119.809
+ 27.900 26.200
+ -11407865.164 7 -8889242.913 6 21521250.477 21521247.533 21521249.437
+ 43.700 36.000
+ -23287683.581 8 -18146244.072 8 20291380.624 20291375.993 20291379.974
+ 48.500 49.500
+ -2957926.481 3 -2304876.191 3 24095646.235 24095645.998 24095646.030
+ 23.000 18.600
+ 06 1 2 5 34 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2165673.992 4 -1687538.127 4 23850228.387 23850226.600 23850227.101
+ 26.500 25.300
+ -8853866.473 5 -6899112.932 4 22790849.529 22790847.226 22790847.779
+ 33.000 28.800
+ -15639611.975 7 -12186704.800 5 21691905.357 21691903.413 21691904.650
+ 42.000 34.800
+ -13791436.782 7 -10746572.312 6 21094866.738 21094863.847 21094865.743
+ 43.600 41.500
+ -7853851.964 4 -6119884.638 4 23085571.446 23085570.681 23085570.484
+ 28.600 25.600
+ -11337564.222 7 -8834462.976 6 21534627.883 21534625.480 21534627.132
+ 43.700 36.000
+ -23287141.339 8 -18145821.550 8 20291483.848 20291479.231 20291483.176
+ 48.400 49.600
+ -3058336.067 4 -2383117.384 3 24076538.738 24076538.413 24076538.842
+ 25.300 18.600
+ 06 1 2 5 34 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -2248938.877 4 -1752419.836 4 23834383.711 23834382.092 23834382.396
+ 25.900 24.900
+ -8920547.259 5 -6951071.951 4 22778159.226 22778158.186 22778158.442
+ 33.900 28.800
+ -15555789.361 6 -12121388.475 5 21707856.253 21707854.281 21707855.366
+ 41.900 34.700
+ -13837656.442 7 -10782587.632 6 21086071.175 21086068.486 21086070.275
+ 43.600 41.400
+ -7740956.442 4 -6031914.166 4 23107054.707 23107054.203 23107053.978
+ 29.000 26.200
+ -11266891.701 7 -8779393.497 5 21548076.631 21548073.972 21548075.745
+ 43.600 35.900
+ -23286153.002 8 -18145051.416 8 20291671.609 20291667.311 20291671.043
+ 48.300 49.700
+ -3158638.650 4 -2461275.221 2 24057452.792 24057451.590 24057452.155
+ 25.300 17.800
+ 06 1 2 5 35 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2332083.070 4 -1817207.484 3 23818561.698 23818560.071 23818560.374
+ 25.300 23.800
+ -8986815.893 5 -7002709.813 4 22765549.790 22765547.996 22765548.194
+ 33.900 29.900
+ -15471537.476 6 -12055737.654 5 21723889.082 21723886.951 21723888.298
+ 41.700 35.100
+ -13883597.555 7 -10818385.900 6 21077328.976 21077326.190 21077328.003
+ 43.600 41.400
+ -7627893.378 4 -5943813.096 4 23128570.247 23128569.388 23128569.273
+ 28.100 24.900
+ -11195848.545 7 -8724035.202 5 21561595.292 21561592.892 21561594.595
+ 43.400 35.600
+ -23284717.985 8 -18143933.221 8 20291944.764 20291940.296 20291944.154
+ 48.300 49.500
+ -3258831.189 4 -2539347.292 3 24038386.784 24038385.814 24038386.552
+ 25.600 21.100
+ 06 1 2 5 35 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -2415106.136 4 -1881900.750 3 23802762.420 23802761.307 23802761.596
+ 24.600 23.400
+ -9052669.636 5 -7054024.383 4 22753017.233 22753016.432 22753016.436
+ 34.300 28.800
+ -15386859.491 6 -11989754.805 5 21740002.437 21740000.749 21740001.771
+ 41.200 34.900
+ -13929260.317 7 -10853967.273 6 21068639.933 21068636.943 21068638.799
+ 43.700 41.700
+ -7514665.794 4 -5855583.864 4 23150117.175 23150116.057 23150115.983
+ 27.400 25.600
+ -11124435.984 7 -8668389.066 5 21575185.396 21575182.248 21575184.161
+ 43.100 35.200
+ -23282835.339 8 -18142466.224 8 20292303.079 20292298.541 20292302.461
+ 48.200 49.600
+ -3358910.451 3 -2617331.126 2 24019341.751 24019341.019 24019341.720
+ 23.000 17.800
+ 06 1 2 5 36 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2498007.809 4 -1946499.431 3 23786986.579 23786985.627 23786985.857
+ 26.800 23.000
+ -9118105.757 5 -7105013.539 4 22740565.652 22740564.225 22740564.353
+ 33.500 29.500
+ -15301758.394 6 -11923442.271 5 21756197.348 21756194.830 21756196.244
+ 41.100 35.100
+ -13974644.353 7 -10889331.452 6 21060003.485 21060000.770 21060002.506
+ 43.800 41.900
+ -7401276.968 5 -5767228.951 4 23171693.932 23171693.027 23171693.165
+ 30.100 24.600
+ -11052655.197 7 -8612455.997 5 21588844.784 21588841.641 21588843.539
+ 43.100 35.100
+ -23280504.428 8 -18140649.931 8 20292746.631 20292742.199 20292746.057
+ 48.200 49.600
+ -3458873.247 4 -2695224.144 3 24000319.117 24000319.104 24000319.343
+ 26.200 18.600
+ 06 1 2 5 36 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -2580787.653 4 -2011003.203 3 23771234.370 23771233.331 23771233.758
+ 27.900 23.400
+ -9183121.187 5 -7155674.891 4 22728192.868 22728191.680 22728192.304
+ 33.900 28.400
+ -15216236.864 6 -11856802.120 5 21772471.019 21772469.305 21772470.094
+ 40.900 34.700
+ -14019749.415 7 -10924478.254 6 21051420.157 21051417.395 21051419.335
+ 43.900 41.900
+ -7287729.937 4 -5678750.813 4 23193301.681 23193300.415 23193300.331
+ 27.900 25.300
+ -10980506.487 7 -8556236.217 5 21602573.965 21602571.171 21602572.943
+ 43.000 34.900
+ -23277724.543 8 -18138483.790 8 20293275.684 20293271.207 20293275.076
+ 48.100 49.600
+ -3558716.289 4 -2773023.905 3 23981320.954 23981319.650 23981320.392
+ 26.800 21.100
+ 06 1 2 5 37 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2663445.297 4 -2075411.746 4 23755505.141 23755503.978 23755504.292
+ 29.000 25.600
+ -9247713.372 5 -7206006.446 4 22715902.369 22715900.435 22715900.789
+ 33.800 28.800
+ -15130298.236 6 -11789836.951 5 21788824.493 21788822.563 21788823.666
+ 41.100 34.300
+ -14064575.290 7 -10959407.503 7 21042890.328 21042887.465 21042889.321
+ 44.100 42.100
+ -7174028.001 4 -5590151.917 4 23214937.434 23214937.756 23214936.966
+ 27.600 26.800
+ -10907990.822 7 -8499730.505 5 21616372.538 21616370.434 21616372.157
+ 43.300 35.100
+ -23274494.765 8 -18135967.085 8 20293890.224 20293885.726 20293889.571
+ 48.000 49.400
+ -3658436.621 3 -2850727.997 3 23962343.507 23962343.737 23962343.346
+ 23.000 21.100
+ 06 1 2 5 37 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -2745980.175 4 -2139724.615 4 23739798.820 23739798.024 23739798.144
+ 29.200 25.900
+ -9311879.500 5 -7256005.996 4 22703690.582 22703689.741 22703690.080
+ 34.300 28.100
+ -15043944.910 6 -11722548.639 5 21805257.134 21805255.080 21805256.256
+ 41.100 33.900
+ -14109121.662 7 -10994118.962 7 21034413.494 21034410.559 21034412.447
+ 44.000 42.200
+ -7060173.819 4 -5501434.438 3 23236604.196 23236602.875 23236602.724
+ 27.100 23.800
+ -10835109.471 7 -8442939.850 5 21630242.035 21630239.338 21630241.032
+ 43.000 34.700
+ -23270814.485 8 -18133099.333 8 20294590.492 20294586.078 20294589.906
+ 48.100 49.400
+ -3758030.854 4 -2928333.883 3 23943391.333 23943391.208 23943391.478
+ 25.600 19.300
+ 06 1 2 5 38 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2828391.959 4 -2203941.567 4 23724116.884 23724115.551 23724116.069
+ 29.900 24.900
+ -9375616.773 5 -7305671.392 4 22691562.913 22691561.137 22691561.645
+ 33.900 28.800
+ -14957180.214 6 -11654939.793 5 21821767.781 21821765.970 21821766.965
+ 40.700 34.100
+ -14153388.466 7 -11028612.574 7 21025989.568 21025986.832 21025988.526
+ 43.700 42.400
+ -6946170.543 4 -5412600.782 4 23258298.372 23258297.436 23258297.066
+ 26.800 25.600
+ -10761863.172 7 -8385864.833 5 21644181.015 21644177.471 21644179.585
+ 42.800 34.300
+ -23266682.964 7 -18129879.966 8 20295376.963 20295372.315 20295376.235
+ 47.900 49.400
+ -3857495.839 3 -3005839.072 3 23924464.607 23924463.682 23924463.967
+ 23.800 20.500
+ 06 1 2 5 38 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -2910680.283 4 -2268062.327 4 23708457.847 23708456.436 23708457.139
+ 29.700 24.900
+ -9438922.463 5 -7355000.477 4 22679515.666 22679514.365 22679514.865
+ 34.100 28.600
+ -14870007.004 6 -11587012.616 5 21838356.395 21838354.518 21838355.646
+ 41.200 34.100
+ -14197375.307 7 -11062888.028 7 21017619.079 21017616.378 21017618.319
+ 44.000 42.300
+ -6832021.388 4 -5323653.420 3 23280019.610 23280018.824 23280018.642
+ 27.100 23.800
+ -10688252.953 7 -8328506.253 5 21658188.001 21658185.319 21658187.091
+ 42.900 34.900
+ -23262099.453 8 -18126308.397 8 20296249.095 20296244.530 20296248.466
+ 48.200 49.500
+ -3956828.466 3 -3083241.071 3 23905561.342 23905561.142 23905561.566
+ 23.000 21.600
+ 06 1 2 5 39 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2992844.712 4 -2332086.543 4 23692822.402 23692821.244 23692821.762
+ 29.000 24.200
+ -9501793.747 5 -7403991.069 4 22667551.911 22667550.037 22667550.791
+ 33.600 28.600
+ -14782428.427 6 -11518769.571 5 21855021.956 21855020.017 21855021.068
+ 40.600 33.000
+ -14241081.952 7 -11096945.153 7 21009302.301 21009299.127 21009301.261
+ 44.000 42.100
+ -6717729.496 4 -5234594.845 4 23301768.801 23301768.400 23301767.913
+ 27.900 24.900
+ -10614279.904 7 -8270864.927 5 21672264.167 21672261.987 21672263.746
+ 43.000 34.600
+ -23257063.126 8 -18122383.986 8 20297207.327 20297202.930 20297206.727
+ 48.100 49.400
+ -4056025.498 3 -3160537.445 3 23886685.875 23886684.037 23886685.325
+ 23.800 20.500
+ 06 1 2 5 39 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -3074884.822 4 -2396013.889 4 23677210.499 23677209.525 23677209.938
+ 28.600 24.900
+ -9564227.879 5 -7452641.025 5 22655670.615 22655669.771 22655669.632
+ 33.500 30.400
+ -14694447.291 6 -11450212.834 5 21871764.421 21871762.130 21871763.523
+ 40.500 33.400
+ -14284508.035 7 -11130783.659 7 21001038.326 21001035.501 21001037.203
+ 43.600 42.400
+ -6603298.066 4 -5145427.541 4 23323544.726 23323543.710 23323543.696
+ 28.600 24.200
+ -10539944.967 7 -8212941.617 5 21686410.100 21686407.397 21686409.363
+ 42.700 34.600
+ -23251573.734 8 -18118106.535 8 20298251.873 20298247.534 20298251.322
+ 48.000 49.500
+ -4155083.677 4 -3237725.607 3 23867834.700 23867834.579 23867834.862
+ 24.200 22.100
+ 06 1 2 5 40 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3156800.332 4 -2459844.135 4 23661622.569 23661621.387 23661621.763
+ 27.100 24.200
+ -9626222.242 5 -7500948.272 5 22643873.955 22643872.517 22643872.586
+ 33.600 30.100
+ -14606066.513 6 -11381344.689 5 21888582.560 21888580.811 21888581.735
+ 40.600 34.000
+ -14327653.486 7 -11164403.489 7 20992827.976 20992825.013 20992826.998
+ 43.800 42.000
+ -6488729.914 4 -5056153.735 3 23345346.310 23345345.518 23345345.331
+ 28.100 22.600
+ -10465248.981 7 -8154736.975 5 21700624.724 21700621.546 21700623.582
+ 42.600 34.400
+ -23245630.258 8 -18113475.253 8 20299383.012 20299378.525 20299382.346
+ 48.000 49.400
+ -4253999.729 4 -3314803.011 3 23849011.830 23849011.589 23849011.860
+ 25.900 22.600
+ 06 1 2 5 40 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -3238590.865 4 -2523576.989 4 23646058.271 23646056.936 23646057.622
+ 29.700 24.200
+ -9687774.037 5 -7548910.693 5 22632160.571 22632159.667 22632159.834
+ 34.400 30.600
+ -14517288.783 6 -11312167.244 5 21905476.467 21905474.620 21905475.619
+ 40.700 33.900
+ -14370518.202 7 -11197804.560 7 20984670.842 20984668.224 20984669.958
+ 43.500 42.400
+ -6374028.322 4 -4966775.877 3 23367173.331 23367172.488 23367172.217
+ 27.400 23.000
+ -10390192.829 7 -8096251.698 5 21714907.856 21714904.280 21714906.408
+ 42.600 34.500
+ -23239232.082 7 -18108489.664 8 20300600.594 20300596.061 20300599.956
+ 47.900 49.400
+ -4352770.587 4 -3391767.284 3 23830217.245 23830215.884 23830216.478
+ 26.200 21.600
+ 06 1 2 5 41 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3320255.921 4 -2587212.088 4 23630518.296 23630516.657 23630517.426
+ 29.500 24.200
+ -9748880.603 5 -7596526.157 4 22620533.242 22620531.238 22620532.127
+ 35.500 29.900
+ -14428117.401 6 -11242683.055 5 21922445.082 21922443.312 21922444.407
+ 40.600 33.800
+ -14413101.534 7 -11230986.374 7 20976567.898 20976564.844 20976566.820
+ 43.600 42.200
+ -6259196.303 4 -4877296.403 3 23389024.595 23389024.189 23389023.979
+ 26.200 22.600
+ -10314777.696 7 -8037486.682 5 21729258.141 21729255.400 21729257.221
+ 42.300 34.400
+ -23232378.620 7 -18103149.305 8 20301904.670 20301900.248 20301904.100
+ 47.900 49.300
+ -4451392.954 4 -3468615.857 3 23811449.580 23811448.735 23811448.930
+ 24.600 23.800
+ 06 1 2 5 41 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -3401795.110 4 -2650749.108 4 23615001.878 23615000.131 23615000.711
+ 29.200 24.600
+ -9809539.252 5 -7643792.616 4 22608989.798 22608988.356 22608988.793
+ 34.500 29.500
+ -14338555.464 6 -11172894.535 5 21939488.338 21939486.477 21939487.480
+ 40.100 33.500
+ -14455403.579 7 -11263949.005 7 20968518.123 20968515.014 20968517.075
+ 43.800 42.300
+ -6144236.959 4 -4787717.726 4 23410901.321 23410900.661 23410900.189
+ 26.200 24.200
+ -10239004.685 7 -7978442.797 5 21743676.327 21743674.538 21743676.181
+ 42.300 34.000
+ -23225069.234 8 -18097453.683 8 20303295.604 20303291.123 20303295.036
+ 48.000 49.300
+ -4549863.654 3 -3545346.197 3 23792709.464 23792710.249 23792709.733
+ 21.100 21.600
+ 06 1 2 5 42 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3483208.042 4 -2714187.743 3 23599509.427 23599507.578 23599508.353
+ 28.400 23.800
+ -9869747.383 5 -7690708.005 5 22597532.836 22597530.923 22597531.729
+ 34.800 30.100
+ -14248605.705 6 -11102803.819 5 21956604.923 21956603.204 21956604.219
+ 40.300 33.000
+ -14497424.129 7 -11296692.293 7 20960521.747 20960518.856 20960520.762
+ 43.800 42.500
+ -6029153.390 4 -4698042.256 3 23432800.664 23432800.068 23432799.859
+ 24.900 23.000
+ -10162874.726 6 -7919120.781 5 21758163.676 21758161.440 21758163.134
+ 41.900 33.800
+ -23217303.354 7 -18091402.353 8 20304773.424 20304768.883 20304772.849
+ 47.900 49.300
+ -4648179.386 4 -3621955.832 3 23774002.980 23774000.737 23774002.152
+ 28.100 20.500
+ 06 1 2 5 42 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -3564494.455 4 -2777527.788 4 23584041.040 23584039.525 23584039.991
+ 27.400 25.300
+ -9929502.211 5 -7737270.195 4 22586162.225 22586159.842 22586160.898
+ 35.500 29.700
+ -14158271.202 6 -11032413.295 5 21973795.178 21973793.295 21973794.298
+ 40.200 32.800
+ -14539162.986 7 -11329216.073 7 20952579.138 20952576.137 20952578.165
+ 43.900 42.300
+ -5913948.706 4 -4608272.409 4 23454723.720 23454723.091 23454722.902
+ 26.800 24.900
+ -10086388.986 6 -7859521.534 5 21772719.414 21772716.334 21772718.179
+ 41.800 33.800
+ -23209080.186 7 -18084994.697 8 20306338.405 20306333.743 20306337.694
+ 47.800 49.300
+ -4746337.056 4 -3698442.313 3 23755323.436 23755322.403 23755323.108
+ 25.600 23.000
+ 06 1 2 5 43 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3645653.960 4 -2840768.921 4 23568597.095 23568595.605 23568596.040
+ 29.500 27.900
+ -9988801.249 5 -7783477.224 4 22574877.832 22574875.543 22574876.637
+ 35.900 29.200
+ -14067554.627 6 -10961725.055 5 21991058.116 21991056.059 21991057.299
+ 40.200 33.200
+ -14580619.475 7 -11361519.832 7 20944690.285 20944687.375 20944689.269
+ 43.800 42.600
+ -5798626.014 4 -4518410.621 4 23476669.609 23476668.567 23476667.930
+ 24.200 24.900
+ -10009548.677 6 -7799646.003 5 21787342.549 21787338.504 21787340.783
+ 41.900 33.600
+ -23200399.216 7 -18078230.310 8 20307990.043 20307985.754 20307989.503
+ 47.600 49.200
+ -4844333.422 4 -3774803.039 3 23736675.073 23736674.257 23736675.058
+ 27.100 19.900
+ 06 1 2 5 43 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -3726686.038 5 -2903910.776 4 23553177.370 23553175.716 23553176.339
+ 30.600 28.100
+ -10047641.829 5 -7829327.029 5 22563680.595 22563678.740 22563679.437
+ 35.500 30.200
+ -13976458.862 6 -10890741.343 5 22008392.982 22008391.086 22008392.120
+ 40.200 33.200
+ -14621793.909 7 -11393603.804 7 20936855.189 20936852.137 20936854.081
+ 44.000 42.800
+ -5683188.588 4 -4428459.440 3 23498636.023 23498635.257 23498634.605
+ 24.200 23.000
+ -9932354.626 7 -7739494.821 5 21802030.868 21802028.120 21802030.156
+ 42.200 33.500
+ -23191259.807 7 -18071108.698 8 20309729.314 20309724.905 20309728.725
+ 47.500 49.100
+ -4942165.145 4 -3851035.554 3 23718059.553 23718057.870 23718058.468
+ 26.800 22.100
+ 06 1 2 5 44 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3807590.385 5 -2966953.108 4 23537781.120 23537779.820 23537780.347
+ 30.800 26.200
+ -10106021.279 5 -7874817.493 5 22552571.085 22552569.747 22552570.041
+ 35.200 30.100
+ -13884987.321 6 -10819464.823 5 22025799.428 22025797.221 22025798.598
+ 40.000 32.000
+ -14662685.867 7 -11425467.669 7 20929073.590 20929070.579 20929072.637
+ 44.100 42.700
+ -5567639.156 4 -4338420.969 3 23520623.590 23520623.450 23520622.816
+ 24.600 23.000
+ -9854807.761 7 -7679068.705 5 21816787.265 21816784.726 21816786.841
+ 42.400 33.200
+ -23181661.583 7 -18063629.568 8 20311555.703 20311551.287 20311555.110
+ 47.400 49.100
+ -5039829.115 4 -3927137.280 3 23699473.118 23699472.606 23699473.402
+ 26.500 23.800
+ 06 1 2 5 44 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -3888366.582 5 -3029895.590 4 23522410.161 23522408.542 23522409.184
+ 30.100 24.900
+ -10163937.137 5 -7919946.729 4 22541550.639 22541548.545 22541549.249
+ 34.900 29.700
+ -13793142.942 6 -10747897.780 5 22043276.954 22043274.958 22043276.121
+ 39.700 32.800
+ -14703294.662 7 -11457110.882 7 20921345.870 20921343.055 20921344.936
+ 44.000 43.100
+ -5451980.800 4 -4248297.630 3 23542633.908 23542632.766 23542632.630
+ 25.300 23.400
+ -9776908.793 7 -7618368.229 5 21831610.886 21831608.744 21831610.439
+ 42.200 33.500
+ -23171603.733 7 -18055792.287 8 20313469.776 20313465.280 20313469.137
+ 47.500 49.000
+ -5137321.954 4 -4003105.696 3 23680921.269 23680919.984 23680921.389
+ 27.900 22.100
+ 06 1 2 5 45 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3969014.228 4 -3092737.904 4 23507063.347 23507061.757 23507062.539
+ 28.800 24.900
+ -10221386.678 5 -7964712.584 5 22530617.975 22530616.266 22530616.944
+ 35.600 30.200
+ -13700928.517 6 -10676042.385 5 22060824.691 22060822.656 22060823.849
+ 38.700 32.700
+ -14743620.747 7 -11488533.803 7 20913672.175 20913669.121 20913671.246
+ 44.300 42.900
+ -5336216.684 3 -4158091.872 4 23564662.731 23564662.293 23564661.458
+ 23.400 24.600
+ -9698659.677 7 -7557394.918 5 21846502.479 21846498.672 21846501.073
+ 42.000 33.000
+ -23161085.830 7 -18047596.521 8 20315471.117 20315466.815 20315470.611
+ 47.500 49.100
+ -5234640.611 4 -4078938.379 3 23662402.434 23662400.919 23662401.332
+ 24.600 23.000
+ 06 1 2 5 45 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -4049532.976 5 -3155479.770 4 23491741.222 23491739.744 23491740.425
+ 30.200 25.300
+ -10278367.347 6 -8009113.111 4 22519774.697 22519773.021 22519773.850
+ 36.400 29.700
+ -13608346.775 6 -10603900.774 5 22078442.704 22078440.347 22078441.760
+ 38.900 32.300
+ -14783663.461 7 -11519735.915 7 20906052.253 20906049.248 20906051.232
+ 44.000 42.800
+ -5220350.051 4 -4067806.223 3 23586710.927 23586710.571 23586710.299
+ 26.800 20.500
+ -9620060.998 6 -7496149.235 5 21861459.630 21861455.552 21861458.020
+ 41.600 32.700
+ -23150107.283 7 -18039041.816 8 20317560.433 20317555.961 20317559.763
+ 47.300 49.000
+ -5331781.735 4 -4154632.718 4 23643914.722 23643915.857 23643916.122
+ 24.900 24.200
+ 06 1 2 5 46 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4129922.477 5 -3218120.915 4 23476443.648 23476442.531 23476442.658
+ 30.400 28.400
+ -10334876.725 6 -8053146.379 5 22509021.386 22509019.841 22509020.574
+ 36.500 30.200
+ -13515401.061 6 -10531475.544 5 22096129.826 22096127.636 22096128.769
+ 39.400 33.100
+ -14823422.581 7 -11550717.045 7 20898486.257 20898483.308 20898485.378
+ 44.300 42.900
+ -5104383.492 4 -3977442.703 3 23608779.120 23608778.318 23608778.090
+ 27.400 20.500
+ -9541114.003 6 -7434632.109 5 21876481.804 21876478.681 21876480.772
+ 41.600 32.800
+ -23138667.727 7 -18030127.881 8 20319737.229 20319732.837 20319736.646
+ 47.300 48.900
+ -5428742.078 4 -4230186.179 3 23625465.961 23625464.637 23625465.310
+ 28.100 23.400
+ 06 1 2 5 46 30.0000000 0 8G01G05G09G14G15G18G22G30
+ -4210182.377 4 -3280661.062 4 23461170.417 23461169.451 23461169.466
+ 29.700 27.100
+ -10390912.181 6 -8096810.363 5 22498358.038 22498356.559 22498357.218
+ 36.500 31.000
+ -13422093.912 6 -10458768.676 5 22113885.101 22113883.092 22113884.315
+ 39.100 31.800
+ -14862898.154 7 -11581477.232 7 20890974.534 20890971.373 20890973.404
+ 44.200 43.100
+ -4988320.305 4 -3887003.916 3 23630865.367 23630864.319 23630864.080
+ 24.600 20.500
+ -9461820.301 6 -7372844.833 5 21891570.484 21891567.662 21891569.835
+ 41.200 32.600
+ -23126766.480 7 -18020854.186 8 20322002.269 20321997.612 20322001.535
+ 47.300 48.900
+ -5525518.451 4 -4305596.330 3 23607051.135 23607048.902 23607050.142
+ 28.400 22.600
+ 06 1 2 5 47 0.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4290312.325 4 -3343099.965 4 23445922.160 23445920.970 23445921.322
+ 29.500 26.200
+ -10446471.218 6 -8140103.104 5 22487785.864 22487784.107 22487784.677
+ 36.500 30.400
+ -13328428.975 6 -10385783.013 5 22131709.298 22131706.800 22131708.377
+ 39.600 32.000
+ -14902089.853 7 -11612016.215 7 20883516.564 20883513.556 20883515.568
+ 44.300 43.300
+ -4872163.221 4 -3796491.931 3 23652968.330 23652968.672 23652967.951
+ 26.500 22.100
+ -9382180.346 6 -7310787.751 5 21906724.486 21906723.015 21906724.597
+ 41.000 33.000
+ -23114403.055 7 -18011220.352 8 20324354.633 20324350.277 20324354.038
+ 47.300 48.800
+ -182514.640 2 -142219.048 2 24504324.795 24504324.788 24504323.958
+ 17.000 13.900
+ -5622107.673 4 -4380860.578 3 23588668.391 23588668.644 23588668.901
+ 24.900 23.000
+ 06 1 2 5 47 30.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4370311.669 5 -3405437.117 4 23430698.911 23430697.579 23430698.062
+ 30.800 25.300
+ -10501551.343 6 -8183022.661 5 22477304.332 22477302.776 22477303.108
+ 36.200 30.800
+ -13234408.792 6 -10312520.529 5 22149600.328 22149598.685 22149599.471
+ 39.400 32.400
+ -14940997.418 7 -11642333.795 7 20876112.470 20876109.672 20876111.610
+ 44.300 43.400
+ -4755915.497 4 -3705909.347 3 23675090.276 23675089.986 23675089.146
+ 26.500 22.600
+ -9302195.530 6 -7248461.954 5 21921945.258 21921943.377 21921945.237
+ 41.200 32.400
+ -23101576.856 7 -18001225.913 8 20326795.223 20326790.971 20326794.696
+ 47.100 48.800
+ -287635.002 2 -224130.928 1 24484320.730 24484320.643 24484320.082
+ 17.800 11.000
+ -5718506.399 4 -4455976.442 3 23570326.791 23570323.519 23570325.584
+ 28.100 21.100
+ 06 1 2 5 48 0.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4450180.128 5 -3467672.270 4 23415500.463 23415499.355 23415499.654
+ 31.000 27.900
+ -10556150.103 5 -8225567.124 5 22466914.070 22466912.665 22466913.121
+ 35.800 30.400
+ -13140036.086 6 -10238983.351 5 22167558.971 22167556.770 22167558.266
+ 38.900 31.600
+ -14979620.561 7 -11672429.750 7 20868762.898 20868759.951 20868761.960
+ 44.300 43.400
+ -4639580.294 3 -3615258.572 3 23697228.678 23697227.579 23697227.201
+ 22.600 23.000
+ -9221866.840 6 -7185868.178 5 21937232.212 21937229.733 21937231.377
+ 41.100 33.000
+ -23088287.598 7 -17990870.644 8 20329324.251 20329319.880 20329323.590
+ 47.100 48.800
+ -392624.170 3 -305940.615 2 24464342.482 24464341.555 24464341.842
+ 23.000 17.800
+ -5814711.389 4 -4530941.357 3 23552017.731 23552016.813 23552017.723
+ 26.200 23.000
+ 06 1 2 5 48 30.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4529917.312 5 -3529805.104 4 23400326.548 23400326.196 23400325.775
+ 30.200 29.700
+ -10610264.925 6 -8267734.509 5 22456616.631 22456614.857 22456615.646
+ 36.700 30.100
+ -13045314.251 6 -10165174.133 5 22185584.008 22185581.894 22185583.251
+ 38.400 32.300
+ -15017958.988 7 -11702303.848 7 20861467.469 20861464.341 20861466.293
+ 44.000 43.400
+ -4523160.765 4 -3524542.127 3 23719381.872 23719381.815 23719381.338
+ 24.900 22.600
+ -9141195.892 6 -7123007.719 5 21952584.708 21952580.685 21952582.894
+ 40.600 32.300
+ -23074534.776 7 -17980154.162 8 20331941.524 20331936.908 20331940.884
+ 47.200 48.700
+ -497480.402 3 -387646.676 2 24444389.200 24444388.870 24444388.682
+ 21.600 13.900
+ -5910719.479 4 -4605752.791 3 23533747.825 23533747.234 23533748.401
+ 28.600 23.800
+ 06 1 2 5 49 0.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4609522.931 5 -3591835.409 4 23385178.054 23385177.471 23385177.356
+ 30.400 28.800
+ -10663893.477 6 -8309522.969 5 22446411.256 22446409.711 22446410.131
+ 36.000 30.800
+ -12950246.358 6 -10091095.260 5 22203674.622 22203672.712 22203673.912
+ 38.400 31.500
+ -15056012.582 7 -11731955.998 7 20854225.897 20854222.988 20854225.011
+ 44.100 43.500
+ -4406659.693 4 -3433762.084 3 23741550.757 23741551.247 23741550.273
+ 24.200 21.100
+ -9060183.140 6 -7059880.919 5 21968000.403 21967996.990 21967999.014
+ 40.500 32.400
+ -23060317.775 7 -17969075.985 8 20334647.062 20334642.354 20334646.376
+ 47.200 48.600
+ -602201.920 3 -469247.838 2 24424462.373 24424460.614 24424461.251
+ 23.800 16.100
+ -6006527.335 4 -4680408.220 4 23515517.105 23515515.628 23515516.366
+ 27.400 25.300
+ 06 1 2 5 49 30.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4688996.570 5 -3653762.898 4 23370055.246 23370053.532 23370054.414
+ 32.000 26.500
+ -10717033.284 6 -8350930.590 5 22436299.354 22436297.787 22436298.200
+ 36.000 31.600
+ -12854834.872 6 -10016748.642 5 22221830.709 22221828.630 22221829.874
+ 38.100 30.800
+ -15093781.136 7 -11761386.043 7 20847039.055 20847035.990 20847038.022
+ 44.200 43.700
+ -4290080.007 4 -3342920.861 3 23763736.820 23763735.318 23763735.442
+ 25.900 18.600
+ -8978830.184 6 -6996489.026 5 21983480.372 21983478.033 21983479.672
+ 40.700 32.600
+ -23045636.323 7 -17957635.896 8 20337440.698 20337436.183 20337440.054
+ 47.300 48.600
+ -706787.104 4 -550742.722 3 24404559.676 24404558.903 24404559.189
+ 24.200 18.600
+ -6102131.749 4 -4754905.137 4 23497324.022 23497323.148 23497323.726
+ 28.600 25.600
+ 06 1 2 5 50 0.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4768337.965 5 -3715587.368 4 23354956.935 23354955.035 23354956.058
+ 31.500 26.200
+ -10769681.915 5 -8391955.465 5 22426281.168 22426279.368 22426279.727
+ 35.700 31.500
+ -12759082.984 6 -9942136.777 5 22240051.631 22240049.701 22240051.029
+ 38.500 30.600
+ -15131264.399 7 -11790593.782 7 20839906.022 20839903.138 20839904.994
+ 44.100 43.800
+ -4173424.932 3 -3252020.788 3 23785934.218 23785934.379 23785933.570
+ 22.100 21.100
+ -8897138.358 6 -6932833.072 5 21999025.427 21999023.545 21999025.186
+ 40.600 32.300
+ -23030490.081 7 -17945833.635 8 20340322.766 20340318.397 20340322.221
+ 47.200 48.700
+ -811234.088 4 -632129.967 2 24384684.315 24384683.184 24384683.438
+ 26.500 17.000
+ -6197529.474 4 -4829240.975 3 23479169.941 23479168.618 23479169.985
+ 28.400 22.100
+ 06 1 2 5 50 30.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4847546.611 5 -3777308.380 4 23339884.045 23339882.474 23339883.215
+ 31.300 27.100
+ -10821836.904 6 -8432595.715 5 22416356.256 22416354.250 22416355.195
+ 37.000 31.000
+ -12662993.605 6 -9867261.939 5 22258336.939 22258335.490 22258335.974
+ 37.200 31.800
+ -15168462.046 7 -11819578.957 7 20832827.404 20832824.571 20832826.362
+ 43.700 43.700
+ -4056697.456 3 -3161064.406 3 23808147.496 23808146.711 23808146.138
+ 21.100 20.500
+ -8815108.474 6 -6868913.704 5 22014635.450 22014633.443 22014635.032
+ 40.300 32.400
+ -23014878.399 7 -17933668.690 8 20343293.805 20343289.266 20343293.148
+ 47.100 48.700
+ -915541.312 3 -713408.252 3 24364834.351 24364834.431 24364834.030
+ 23.400 21.600
+ -6292717.221 4 -4903413.233 3 23461058.125 23461055.170 23461056.448
+ 27.600 23.400
+ 06 1 2 5 51 0.0000000 0 9G01G05G09G14G15G18G22G25G30
+ -4926622.075 5 -3838925.580 4 23324836.422 23324835.082 23324835.578
+ 30.200 28.400
+ -10873495.947 6 -8472849.496 5 22406525.520 22406523.697 22406524.390
+ 36.200 30.200
+ -12566569.837 6 -9792126.531 5 22276685.647 22276683.835 22276684.962
+ 37.900 30.600
+ -15205374.000 7 -11848341.513 7 20825803.436 20825800.432 20825802.450
+ 43.800 43.900
+ -3939900.519 4 -3070053.855 3 23830373.297 23830372.606 23830372.342
+ 24.600 20.500
+ -8732742.135 6 -6804732.190 5 22030310.416 22030306.941 22030309.209
+ 40.700 31.500
+ -22998801.245 7 -17921141.042 8 20346353.075 20346348.706 20346352.457
+ 47.000 48.700
+ -1019706.995 3 -794576.258 3 24345012.819 24345012.352 24345012.435
+ 22.100 23.800
+ -6387691.851 4 -4977419.387 3 23442981.700 23442981.813 23442982.751
+ 27.400 23.400
+ 06 1 2 5 51 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5005563.864 5 -3900438.641 4 23309814.539 23309812.830 23309813.608
+ 32.000 28.100
+ -10924656.664 6 -8512714.977 5 22396789.636 22396787.772 22396788.748
+ 36.200 30.200
+ -12469814.261 6 -9716732.578 5 22295097.431 22295095.876 22295096.993
+ 38.000 30.600
+ -71599.116 3 -55791.896 2 24584265.245 24584262.973 24584264.753
+ 21.600 16.100
+ -15242000.075 7 -11876881.316 7 20818833.721 20818830.900 20818832.754
+ 44.000 44.100
+ -3823036.968 3 -2978991.406 3 23852612.461 23852611.105 23852611.007
+ 22.100 19.900
+ -8650040.432 6 -6740289.325 5 22046048.229 22046044.528 22046046.870
+ 40.400 31.100
+ -22982258.075 7 -17908250.271 8 20349501.134 20349496.733 20349500.457
+ 47.000 48.700
+ -1123729.459 3 -875632.650 3 24325218.450 24325217.085 24325217.500
+ 21.100 20.500
+ -6482449.911 4 -5051256.793 3 23424951.901 23424950.131 23424951.435
+ 29.200 23.800
+ 06 1 2 5 52 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5084371.714 5 -3961847.351 4 23294818.070 23294816.093 23294817.007
+ 32.000 27.400
+ -10975316.691 6 -8552190.310 5 22387150.227 22387147.442 22387148.624
+ 36.500 30.100
+ -12372730.251 6 -9641082.717 5 22313572.580 22313570.355 22313571.614
+ 38.300 30.800
+ -124774.166 3 -97227.003 1 24574147.336 24574144.366 24574146.508
+ 20.500 11.000
+ -15278339.830 7 -11905198.004 7 20811918.266 20811915.554 20811917.279
+ 43.800 44.100
+ -3706109.864 4 -2887879.400 3 23874862.610 23874861.306 23874861.403
+ 25.300 21.600
+ -8567004.464 6 -6675585.987 5 22061848.923 22061845.930 22061847.930
+ 39.600 31.500
+ -22965248.310 7 -17894995.918 8 20352738.158 20352733.541 20352737.437
+ 46.800 48.500
+ -1227606.854 3 -956576.024 3 24305450.815 24305450.351 24305450.545
+ 23.800 21.600
+ -6576988.248 4 -5124923.019 4 23406961.701 23406959.806 23406961.123
+ 29.500 24.200
+ 06 1 2 5 52 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5163045.314 4 -4023151.448 4 23279846.759 23279844.875 23279845.663
+ 29.900 27.100
+ -11025473.667 6 -8591273.645 5 22377605.012 22377603.095 22377603.906
+ 37.200 30.400
+ -12275320.620 6 -9565179.099 5 22332108.501 22332106.688 22332107.684
+ 37.700 30.400
+ -177497.765 2 -138310.297 2 24564113.317 24564110.944 24564112.627
+ 17.800 13.900
+ -15314393.174 7 -11933291.511 7 20805057.619 20805054.692 20805056.656
+ 44.000 43.800
+ -3589122.308 3 -2796720.335 3 23897125.041 23897123.395 23897123.153
+ 22.600 23.400
+ -8483635.698 6 -6610623.345 5 22077713.036 22077710.480 22077712.249
+ 39.700 31.000
+ -22947771.690 7 -17881377.774 8 20356063.613 20356059.236 20356063.055
+ 47.000 48.500
+ -1331337.666 3 -1037405.178 2 24285710.912 24285710.333 24285710.607
+ 23.000 17.000
+ -6671303.663 4 -5198415.528 4 23389013.043 23389012.739 23389013.201
+ 29.900 25.600
+ 06 1 2 5 53 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5241584.210 5 -4084350.551 4 23264901.016 23264899.387 23264900.037
+ 31.000 27.900
+ -11075125.252 6 -8629963.180 5 22368157.097 22368154.963 22368155.612
+ 36.700 31.300
+ -12177588.312 6 -9489024.059 5 22350706.508 22350704.436 22350705.618
+ 37.700 30.800
+ -229768.535 4 -179040.776 2 24554167.555 24554164.344 24554166.657
+ 24.200 15.100
+ -15350159.824 7 -11961161.627 7 20798251.790 20798248.574 20798250.757
+ 44.300 44.000
+ -3472077.154 3 -2705516.375 3 23919397.347 23919396.612 23919396.426
+ 23.800 19.900
+ -8399934.833 6 -6545401.927 5 22093640.911 22093638.435 22093640.189
+ 39.800 31.500
+ -22929827.825 7 -17867395.546 8 20359478.371 20359473.842 20359477.653
+ 46.800 48.500
+ -1434920.177 3 -1118118.747 2 24266000.223 24265998.679 24265999.351
+ 19.300 13.900
+ -6765393.019 4 -5271731.828 4 23371110.044 23371108.110 23371109.081
+ 28.800 25.900
+ 06 1 2 5 53 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5319988.019 5 -4145444.409 4 23249981.298 23249979.867 23249980.601
+ 32.400 28.600
+ -11124269.285 6 -8668257.201 5 22358804.525 22358802.707 22358803.788
+ 36.900 30.400
+ -12079536.231 6 -9412619.850 5 22369365.101 22369363.548 22369364.414
+ 37.600 31.000
+ -281585.050 3 -219417.225 2 24544305.976 24544303.671 24544305.730
+ 18.600 17.800
+ -15385639.528 7 -11988808.151 7 20791500.147 20791496.985 20791499.101
+ 44.000 44.000
+ -3354977.524 4 -2614269.939 3 23941680.368 23941680.379 23941679.585
+ 25.900 20.500
+ -8315903.661 6 -6479923.117 5 22109631.813 22109628.843 22109630.723
+ 39.600 31.100
+ -22911416.699 7 -17853049.220 8 20362981.861 20362977.371 20362981.224
+ 46.800 48.400
+ -1538352.723 3 -1198715.540 2 24246317.185 24246316.801 24246317.338
+ 18.600 17.800
+ -6859252.729 4 -5344869.265 4 23353247.519 23353247.013 23353247.821
+ 28.800 25.600
+ 06 1 2 5 54 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5398256.408 5 -4206432.739 4 23235087.589 23235085.795 23235086.550
+ 32.100 28.100
+ -11172903.395 6 -8706153.897 5 22349550.479 22349548.005 22349549.277
+ 37.400 30.800
+ -11981166.793 6 -9335968.346 5 22388084.370 22388082.409 22388083.494
+ 37.200 30.200
+ -332945.806 4 -259438.565 2 24534533.242 24534530.492 24534532.767
+ 24.900 17.800
+ -15420832.217 7 -12016231.019 7 20784802.916 20784800.123 20784801.999
+ 44.000 44.100
+ -3237826.312 3 -2522983.324 3 23963973.971 23963973.361 23963972.862
+ 23.000 19.300
+ -8231543.443 6 -6414187.898 5 22125684.941 22125682.254 22125683.981
+ 39.200 31.100
+ -22892537.602 7 -17838338.238 8 20366574.239 20366569.946 20366573.660
+ 46.600 48.300
+ -1641633.576 3 -1279194.076 1 24226663.630 24226662.737 24226662.768
+ 21.600 11.000
+ -6952879.850 4 -5417825.401 4 23335430.070 23335430.329 23335430.333
+ 27.400 25.300
+ 06 1 2 5 54 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5476388.860 5 -4267315.147 4 23220218.953 23220217.690 23220218.301
+ 32.000 28.400
+ -11221025.383 6 -8743651.540 5 22340392.826 22340390.580 22340391.899
+ 37.700 30.400
+ -11882483.747 6 -9259072.468 5 22406863.406 22406861.395 22406862.525
+ 37.200 30.600
+ -383849.228 4 -299103.586 3 24524846.631 24524843.469 24524845.903
+ 24.600 20.500
+ -15455737.649 7 -12043430.058 7 20778160.926 20778157.806 20778159.830
+ 44.000 44.100
+ -3120626.556 3 -2431658.859 2 23986277.076 23986275.449 23986275.749
+ 20.500 17.800
+ -8146855.141 6 -6348197.044 5 22141800.705 22141797.809 22141799.804
+ 39.700 31.000
+ -22873190.360 7 -17823262.471 8 20370255.729 20370251.547 20370255.179
+ 46.500 48.200
+ -1744760.973 4 -1359553.085 2 24207039.424 24207038.700 24207039.028
+ 25.900 13.900
+ -7046270.995 4 -5490597.687 3 23317659.367 23317657.627 23317658.991
+ 27.100 23.400
+ 06 1 2 5 55 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5554385.178 5 -4328091.490 4 23205377.166 23205375.333 23205376.424
+ 33.400 27.600
+ -11268632.907 6 -8780748.309 5 22331333.215 22331331.718 22331332.147
+ 37.700 31.600
+ -11783489.633 6 -9181934.213 5 22425701.126 22425699.344 22425700.259
+ 37.200 31.300
+ -434293.726 4 -338410.970 3 24515247.624 24515243.780 24515246.820
+ 24.200 18.600
+ -15490355.519 7 -12070405.023 7 20771572.993 20771570.287 20771572.076
+ 43.800 44.300
+ -3003381.323 3 -2340298.999 3 24008588.066 24008586.861 24008587.030
+ 23.400 19.900
+ -8061840.285 6 -6281951.737 5 22157978.079 22157975.592 22157977.310
+ 39.100 30.400
+ -22853374.498 7 -17807821.545 8 20374026.729 20374022.395 20374026.076
+ 46.400 48.200
+ -1847733.389 4 -1439791.281 1 24187444.526 24187443.320 24187443.619
+ 25.300 11.000
+ -7139422.973 4 -5563183.605 3 23299932.505 23299931.802 23299933.036
+ 29.900 23.000
+ 06 1 2 5 55 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5632244.920 5 -4388761.409 4 23190561.168 23190559.138 23190560.305
+ 33.500 27.600
+ -11315723.786 6 -8817442.483 5 22322371.894 22322370.575 22322371.075
+ 37.200 31.500
+ -11684187.874 6 -9104556.220 5 22444597.821 22444595.709 22444596.919
+ 36.900 30.400
+ -484277.888 3 -377359.639 3 24505735.944 24505732.827 24505735.169
+ 23.400 21.600
+ -15524685.691 7 -12097155.799 7 20765040.364 20765037.535 20765039.413
+ 44.000 44.300
+ -2886093.619 3 -2248906.042 3 24030906.308 24030905.486 24030905.541
+ 22.100 18.600
+ -7976499.700 6 -6215452.614 5 22174218.772 22174215.258 22174217.591
+ 39.700 30.200
+ -22833090.010 7 -17792015.458 8 20377886.772 20377882.503 20377886.158
+ 46.400 48.200
+ -1950549.068 4 -1519907.397 2 24167879.087 24167878.089 24167878.264
+ 25.300 17.000
+ -7232332.464 4 -5635580.572 3 23282253.466 23282252.123 23282252.804
+ 29.200 23.800
+ 06 1 2 5 56 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5709967.658 5 -4449324.582 4 23175770.974 23175769.165 23175769.987
+ 33.900 27.900
+ -11362295.802 6 -8853732.351 5 22313510.157 22313508.200 22313509.003
+ 37.900 32.000
+ -11584580.908 6 -9026940.396 5 22463552.041 22463550.446 22463551.461
+ 37.200 30.600
+ -533800.263 4 -415948.464 3 24496312.235 24496308.458 24496311.520
+ 27.100 19.300
+ -15558727.786 7 -12123682.109 7 20758562.513 20758559.352 20758561.458
+ 43.800 44.200
+ -2768766.141 3 -2157482.098 3 24053234.140 24053232.771 24053232.559
+ 21.600 20.500
+ -7890835.220 6 -6148701.102 5 22190520.569 22190516.870 22190519.125
+ 39.500 31.000
+ -22812336.653 7 -17775844.016 8 20381835.894 20381831.762 20381835.425
+ 46.600 48.200
+ -2053206.406 4 -1599900.074 3 24148344.014 24148342.692 24148343.260
+ 26.800 21.100
+ -7324996.371 5 -5707786.179 4 23264619.949 23264618.933 23264619.599
+ 30.400 24.600
+ 06 1 2 5 56 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5787553.048 5 -4509780.709 4 23161006.584 23161005.280 23161005.784
+ 32.300 29.700
+ -11408346.792 6 -8889616.217 5 22304746.876 22304744.889 22304745.657
+ 37.900 32.100
+ -11484671.364 6 -8949088.813 4 22482564.442 22482562.589 22482563.373
+ 36.200 29.700
+ -582859.448 4 -454176.425 3 24486975.931 24486972.997 24486975.362
+ 25.900 21.100
+ -15592481.513 7 -12149983.715 7 20752139.394 20752136.290 20752138.342
+ 43.800 44.400
+ -2651401.887 3 -2066029.453 2 24075566.132 24075566.302 24075565.286
+ 21.600 17.800
+ -7804847.949 6 -6081698.078 5 22206882.920 22206880.129 22206881.863
+ 39.700 31.500
+ -22791114.130 7 -17759306.991 8 20385874.663 20385870.255 20385873.990
+ 46.400 48.100
+ -2155703.695 4 -1679768.046 3 24128839.663 24128838.478 24128839.022
+ 27.100 23.000
+ -7417411.363 4 -5779797.808 4 23247034.185 23247032.618 23247033.915
+ 29.200 24.900
+ 06 1 2 5 57 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5865000.657 5 -4570129.469 4 23146268.787 23146267.415 23146267.977
+ 32.600 29.000
+ -11453874.652 6 -8925092.457 5 22296082.860 22296081.176 22296081.859
+ 37.900 31.600
+ -11384462.781 6 -8871004.212 4 22501633.884 22501631.370 22501632.847
+ 36.800 29.000
+ -631454.110 4 -492042.403 2 24477728.772 24477725.577 24477728.218
+ 25.600 17.800
+ -15625946.827 7 -12176060.580 7 20745771.003 20745768.153 20745770.091
+ 43.700 44.700
+ -2534003.849 3 -1974550.550 3 24097906.504 24097906.536 24097905.688
+ 21.600 19.900
+ -7718539.440 6 -6014444.726 5 22223305.801 22223303.991 22223305.568
+ 39.300 30.600
+ -22769422.104 7 -17742404.120 8 20390002.243 20389998.057 20390001.685
+ 46.400 48.000
+ -2258039.308 4 -1759510.028 4 24109365.843 24109364.540 24109364.968
+ 26.800 24.200
+ -7509574.270 4 -5851613.021 4 23229497.179 23229494.465 23229496.221
+ 29.200 24.600
+ 06 1 2 5 57 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5942310.056 5 -4630370.550 4 23131557.402 23131555.989 23131556.579
+ 33.200 29.500
+ -11498877.140 6 -8960159.315 5 22287519.449 22287517.281 22287518.195
+ 37.700 31.800
+ -11283957.984 6 -8792688.782 4 22520758.733 22520756.887 22520758.105
+ 36.400 29.000
+ -679582.617 3 -529545.095 4 24468570.149 24468567.424 24468569.662
+ 23.800 24.200
+ -15659123.282 7 -12201912.360 7 20739457.904 20739454.858 20739456.861
+ 43.900 44.600
+ -2416575.082 3 -1883047.615 3 24120253.451 24120252.910 24120252.062
+ 23.800 18.600
+ -7631910.651 6 -5946941.806 5 22239790.680 22239788.791 22239790.518
+ 39.300 30.400
+ -22747260.398 7 -17725135.259 7 20394219.660 20394215.306 20394218.961
+ 46.400 47.900
+ -2360211.607 4 -1839124.757 3 24089922.716 24089921.609 24089922.059
+ 25.600 23.400
+ -7601481.609 4 -5923229.086 4 23212005.541 23212005.286 23212005.782
+ 28.800 24.900
+ 06 1 2 5 58 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6019480.855 5 -4690503.619 5 23116872.335 23116870.934 23116871.356
+ 32.600 31.000
+ -11543352.094 6 -8994815.108 5 22279055.950 22279053.983 22279055.098
+ 38.400 31.600
+ -11183159.641 6 -8714144.627 4 22539939.808 22539937.906 22539939.312
+ 36.700 28.100
+ -727243.709 4 -566683.615 3 24459500.154 24459497.626 24459499.513
+ 24.600 18.600
+ -15692010.740 7 -12227538.951 7 20733199.263 20733196.537 20733198.397
+ 43.500 44.400
+ -2299118.526 3 -1791523.082 3 24142604.398 24142604.161 24142602.913
+ 22.600 19.300
+ -7544962.926 6 -5879190.351 5 22256336.790 22256334.592 22256336.144
+ 38.800 30.200
+ -22724629.021 7 -17707500.425 7 20398526.403 20398521.936 20398525.729
+ 46.500 47.900
+ -2462218.951 3 -1918610.958 3 24070510.954 24070510.331 24070510.827
+ 22.100 23.400
+ -7693130.300 4 -5994643.608 4 23194566.713 23194564.921 23194565.779
+ 29.700 24.600
+ 06 1 2 5 58 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6096512.720 5 -4750528.424 5 23102213.731 23102212.133 23102212.673
+ 33.400 30.800
+ -11587297.548 6 -9029058.303 5 22270693.984 22270691.583 22270692.687
+ 38.700 32.000
+ -11082070.760 6 -8635374.078 4 22559176.509 22559174.639 22559175.695
+ 36.300 28.800
+ -774435.880 4 -603456.736 3 24450520.369 24450517.301 24450519.789
+ 24.600 21.100
+ -15724609.265 7 -12252940.394 7 20726996.032 20726993.235 20726995.098
+ 43.500 44.500
+ -2181636.783 3 -1699978.951 3 24164959.824 24164960.376 24164958.475
+ 19.900 20.500
+ -7457697.809 6 -5811191.591 5 22272943.872 22272940.291 22272942.392
+ 38.300 30.100
+ -22701527.535 7 -17689499.274 7 20402922.233 20402918.080 20402921.688
+ 46.500 47.900
+ -2564059.668 3 -1997967.293 3 24051131.347 24051130.682 24051130.590
+ 19.300 21.600
+ -7784517.170 5 -6065854.117 3 23177174.897 23177174.252 23177175.385
+ 30.100 23.800
+ 06 1 2 5 59 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6173405.278 5 -4810444.688 5 23087580.820 23087580.119 23087580.115
+ 32.800 30.600
+ -11630711.299 6 -9062887.177 5 22262432.085 22262430.084 22262431.018
+ 38.100 32.300
+ -10980693.928 6 -8556379.125 4 22578468.106 22578465.679 22578467.443
+ 36.300 28.100
+ -821158.000 4 -639863.548 3 24441630.051 24441626.337 24441629.167
+ 24.600 18.600
+ -15756918.640 7 -12278116.532 7 20720847.782 20720844.928 20720846.811
+ 43.500 44.500
+ -2064132.823 3 -1608417.476 3 24187321.205 24187321.161 24187319.900
+ 22.600 21.100
+ -7370116.803 6 -5742946.692 4 22289610.433 22289606.594 22289608.625
+ 38.100 29.500
+ -22677955.621 7 -17671131.548 7 20407407.914 20407403.752 20407407.259
+ 46.400 47.800
+ -2665732.167 3 -2077192.510 3 24031783.862 24031782.311 24031783.110
+ 19.300 20.500
+ -7875638.898 5 -6136858.044 4 23159836.039 23159834.474 23159835.643
+ 31.100 25.600
+ 06 1 2 5 59 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6250158.158 5 -4870252.102 5 23072975.611 23072974.544 23072974.753
+ 33.600 31.000
+ -11673591.310 6 -9096300.151 5 22254272.439 22254270.280 22254271.089
+ 38.100 31.600
+ -10879032.423 6 -8477162.389 4 22597813.806 22597811.380 22597812.911
+ 36.200 27.900
+ -867408.411 3 -675902.828 3 24432828.128 24432825.051 24432827.467
+ 23.800 18.600
+ -15788938.412 7 -12303067.000 7 20714754.783 20714751.767 20714753.691
+ 43.400 44.600
+ -1946609.745 3 -1516841.108 2 24209683.402 24209684.079 24209682.893
+ 18.600 17.000
+ -7282221.225 6 -5674456.671 4 22306336.485 22306332.234 22306334.597
+ 37.900 28.400
+ -22653913.403 7 -17652397.367 7 20411982.983 20411978.771 20411982.369
+ 46.500 47.700
+ -2767234.832 3 -2156285.440 3 24012468.694 24012467.586 24012467.982
+ 20.500 20.500
+ -7966492.249 5 -6207652.827 4 23142546.691 23142545.715 23142546.632
+ 30.100 26.500
+ 06 1 2 6 0 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6326770.847 5 -4929950.281 5 23058397.070 23058395.612 23058396.157
+ 34.000 30.200
+ -11715935.530 6 -9129295.622 5 22246214.772 22246212.445 22246213.764
+ 38.900 31.800
+ -10777089.040 5 -8397725.982 4 22617212.780 22617210.874 22617211.968
+ 35.800 29.200
+ -913185.903 3 -711573.614 3 24424116.715 24424114.012 24424116.051
+ 22.100 19.300
+ -15820668.030 7 -12327791.377 7 20708716.589 20708713.824 20708715.645
+ 43.400 44.600
+ -1829070.522 3 -1425252.156 2 24232051.480 24232051.655 24232049.935
+ 21.100 17.800
+ -7194012.295 6 -5605722.459 4 22323120.798 22323118.146 22323119.930
+ 37.500 29.000
+ -22629400.735 7 -17633296.595 7 20416647.585 20416643.345 20416646.979
+ 46.400 47.700
+ -2868566.050 4 -2235244.809 2 23993186.132 23993184.341 23993185.494
+ 24.600 17.000
+ -8057074.060 5 -6278236.026 4 23125310.038 23125309.180 23125309.870
+ 30.600 27.900
+ 06 1 2 6 0 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6403243.026 5 -4989538.984 4 23043844.877 23043843.052 23043843.895
+ 33.000 27.900
+ -11757741.932 6 -9161872.035 5 22238259.164 22238256.731 22238257.982
+ 38.700 31.600
+ -10674867.000 5 -8318072.444 4 22636665.181 22636662.877 22636664.116
+ 34.700 27.600
+ -958489.201 3 -746874.867 2 24415496.158 24415492.996 24415495.574
+ 23.000 17.800
+ -15852107.930 7 -12352289.999 7 20702734.070 20702730.999 20702733.091
+ 43.700 44.600
+ -1711517.973 3 -1333652.831 2 24254421.761 24254420.490 24254420.275
+ 19.900 16.100
+ -7105491.231 6 -5536745.027 4 22339964.752 22339963.249 22339964.923
+ 37.700 29.500
+ -22604417.302 7 -17613828.987 7 20421401.827 20421397.520 20421401.231
+ 46.500 47.500
+ -2969724.106 4 -2314069.254 2 23973936.605 23973934.986 23973935.774
+ 28.100 17.000
+ -8147380.919 5 -6348604.975 4 23108126.046 23108123.803 23108125.105
+ 30.200 26.800
+ 06 1 2 6 1 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6479574.317 5 -5049017.914 4 23029319.308 23029317.310 23029318.309
+ 33.400 27.400
+ -11799008.533 6 -9194027.806 5 22230406.008 22230404.013 22230404.823
+ 38.000 31.500
+ -10572368.590 5 -8238203.553 4 22656169.654 22656167.793 22656169.134
+ 35.500 29.000
+ -1003316.998 3 -781805.599 3 24406965.037 24406962.776 24406964.346
+ 21.600 18.600
+ -15883257.464 7 -12376562.364 7 20696806.283 20696803.513 20696805.395
+ 43.500 44.700
+ -1593955.152 3 -1242045.519 2 24276792.943 24276792.458 24276791.901
+ 23.000 17.000
+ -7016659.630 6 -5467525.620 5 22356869.641 22356867.624 22356868.893
+ 37.700 30.100
+ -22578962.985 7 -17593994.458 7 20426245.650 20426241.310 20426245.112
+ 46.600 47.500
+ -3070707.444 4 -2392757.537 2 23954719.866 23954718.165 23954719.270
+ 28.400 17.000
+ -8237409.750 5 -6418757.260 4 23090991.366 23090992.462 23090992.505
+ 30.800 27.400
+ 06 1 2 6 1 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6555764.256 5 -5108386.683 4 23014821.373 23014819.014 23014820.407
+ 34.500 28.100
+ -11839733.392 6 -9225761.440 5 22222656.290 22222654.682 22222655.131
+ 38.300 32.600
+ -10469596.693 5 -8158121.571 4 22675726.432 22675724.946 22675725.579
+ 34.400 29.200
+ -1047668.045 3 -816364.853 1 24398525.389 24398522.392 24398525.099
+ 20.500 11.000
+ -15914116.576 7 -12400608.422 7 20690934.078 20690931.199 20690933.170
+ 43.500 44.800
+ -1476384.856 3 -1150432.365 2 24299165.749 24299165.040 24299164.462
+ 22.600 17.000
+ -6927518.626 6 -5398065.136 5 22373833.469 22373830.697 22373832.312
+ 37.800 30.200
+ -22553037.839 7 -17573793.056 7 20431179.131 20431174.682 20431178.496
+ 46.500 47.400
+ -3171514.453 4 -2471308.423 2 23935537.150 23935535.601 23935536.381
+ 28.800 17.000
+ -8327157.321 5 -6488690.407 4 23073915.257 23073913.762 23073914.659
+ 31.600 26.200
+ 06 1 2 6 2 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6631812.531 5 -5167645.076 5 23000349.542 23000348.012 23000348.804
+ 35.300 30.800
+ -11879914.488 6 -9257071.358 5 22215010.514 22215008.679 22215009.195
+ 38.700 33.100
+ -10366554.855 5 -8077829.243 4 22695335.381 22695332.623 22695334.366
+ 35.500 28.100
+ -1091541.142 3 -850551.655 1 24390177.521 24390173.572 24390176.828
+ 23.800 9.000
+ -15944684.973 7 -12424427.953 7 20685116.988 20685114.129 20685116.147
+ 43.500 44.800
+ -1358809.830 3 -1058815.537 3 24321539.423 24321539.187 24321538.096
+ 21.100 19.300
+ -6838069.555 6 -5328364.599 4 22390855.610 22390851.892 22390854.017
+ 37.700 29.000
+ -22526641.551 7 -17553224.526 7 20436202.145 20436197.775 20436201.529
+ 46.500 47.400
+ -3272143.475 4 -2549720.642 2 23916387.314 23916386.448 23916386.537
+ 27.400 17.800
+ -8416620.349 5 -6558401.830 4 23056890.146 23056889.378 23056890.412
+ 31.600 27.600
+ 06 1 2 6 2 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6707718.793 5 -5226792.785 5 22985904.903 22985903.395 22985903.897
+ 33.600 30.400
+ -11919549.872 6 -9287956.047 5 22207467.331 22207466.246 22207466.583
+ 38.800 32.600
+ -10263245.258 5 -7997328.264 4 22714993.726 22714992.270 22714993.116
+ 34.800 29.700
+ -1134934.826 3 -884364.914 2 24381919.358 24381916.123 24381918.767
+ 19.900 15.100
+ -15974962.190 7 -12448020.588 7 20679355.422 20679352.590 20679354.503
+ 43.500 44.900
+ -1241232.965 3 -967197.295 3 24343913.175 24343913.517 24343912.583
+ 22.600 20.500
+ -6748314.465 6 -5258425.585 4 22407935.228 22407932.015 22407933.625
+ 37.100 29.700
+ -22499774.040 7 -17532288.807 7 20441314.937 20441310.519 20441314.276
+ 46.600 47.400
+ -3372592.857 4 -2627992.851 3 23897272.299 23897271.668 23897271.783
+ 26.800 20.500
+ -8505795.709 5 -6627889.087 4 23039921.683 23039919.391 23039920.799
+ 30.600 25.900
+ 06 1 2 6 3 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6783482.595 5 -5285829.486 5 22971487.391 22971485.703 22971486.486
+ 34.300 30.100
+ -11958637.611 6 -9318414.002 5 22200029.936 22200027.773 22200028.609
+ 38.600 32.700
+ -10159671.300 5 -7916621.284 4 22734703.419 22734701.302 22734702.695
+ 34.500 28.100
+ -1177848.171 3 -917803.874 1 24373753.044 24373749.792 24373752.609
+ 22.600 9.000
+ -16004948.337 7 -12471386.419 7 20673649.362 20673646.380 20673648.505
+ 43.600 44.900
+ -1123657.122 3 -875579.814 3 24366287.958 24366287.512 24366286.985
+ 22.100 19.900
+ -6658254.692 6 -5188249.187 4 22425072.764 22425069.732 22425071.501
+ 37.500 29.900
+ -22472435.478 7 -17510986.032 7 20446517.386 20446512.849 20446516.654
+ 46.500 47.200
+ -3472861.239 4 -2706124.002 3 23878191.888 23878191.248 23878191.269
+ 25.900 23.400
+ -8594680.065 5 -6697149.606 4 23023007.251 23023005.477 23023006.929
+ 31.800 27.100
+ 06 1 2 6 3 30.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6859103.447 5 -5344754.827 4 22957097.518 22957095.275 22957096.698
+ 34.500 29.700
+ -11997175.814 6 -9348443.753 5 22192695.879 22192693.995 22192695.071
+ 39.100 32.700
+ -10055835.467 6 -7835710.257 4 22754463.179 22754460.771 22754462.304
+ 36.400 27.600
+ -1220279.590 4 -950867.370 1 24365679.340 24365676.017 24365678.453
+ 24.600 11.000
+ -16034643.199 7 -12494525.275 7 20667998.929 20667995.700 20667997.792
+ 43.400 45.100
+ -1006085.256 3 -783965.458 2 24388661.029 24388660.128 24388659.616
+ 19.300 16.100
+ -6567891.271 6 -5117836.160 4 22442267.197 22442265.195 22442266.805
+ 36.600 28.800
+ -22444625.761 7 -17489316.130 7 20451809.265 20451804.838 20451808.652
+ 46.400 47.000
+ -3572946.920 4 -2784112.796 3 23859146.359 23859145.368 23859145.716
+ 24.900 22.100
+ -8683270.279 5 -6766180.893 4 23006148.140 23006146.907 23006148.234
+ 31.300 26.500
+ 06 1 2 6 4 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6934581.025 5 -5403568.523 5 22942734.215 22942732.710 22942733.416
+ 34.600 31.500
+ -12035162.590 6 -9378043.825 5 22185467.928 22185465.215 22185466.457
+ 38.400 31.600
+ -9951740.594 5 -7754597.369 4 22774270.790 22774269.580 22774270.494
+ 35.700 28.100
+ -1262228.096 3 -983554.495 2 24357696.761 24357693.641 24357695.897
+ 23.800 13.900
+ -16064046.471 7 -12517436.912 7 20662403.452 20662400.578 20662402.482
+ 43.600 45.100
+ -888520.193 3 -692356.379 1 24411032.960 24411032.265 24411031.976
+ 21.100 6.500
+ -6477225.494 6 -5047187.511 4 22459520.588 22459518.400 22459520.218
+ 36.800 28.800
+ -22416344.863 7 -17467279.071 7 20457190.832 20457186.570 20457190.264
+ 46.400 46.900
+ -3672848.258 4 -2861957.926 3 23840135.364 23840134.603 23840134.710
+ 25.300 23.000
+ -8771563.086 5 -6834980.454 4 22989347.943 22989345.665 22989347.300
+ 31.600 26.200
+ 06 1 2 6 4 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7009914.938 5 -5462270.242 5 22928398.929 22928397.652 22928397.999
+ 34.000 33.100
+ -12072596.077 6 -9407212.763 5 22178344.247 22178342.107 22178343.004
+ 39.100 32.300
+ -9847389.535 5 -7673284.860 4 22794129.045 22794127.200 22794128.212
+ 35.400 29.000
+ -1303692.617 4 -1015864.540 2 24349806.123 24349803.050 24349805.622
+ 27.400 15.100
+ -16093157.849 7 -12540121.104 7 20656863.736 20656860.885 20656862.785
+ 43.600 45.300
+ -6386259.352 6 -4976304.829 4 22476831.905 22476828.760 22476830.401
+ 36.300 27.900
+ -22387592.585 7 -17444874.703 7 20462661.962 20462657.955 20462661.483
+ 46.300 46.900
+ -3772563.823 4 -2939658.313 4 23821160.747 23821159.551 23821159.660
+ 24.600 24.600
+ -8859555.295 5 -6903545.780 4 22972601.657 22972601.219 22972602.041
+ 31.100 27.100
+ 06 1 2 6 5 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7085104.781 5 -5520859.701 5 22914090.849 22914089.397 22914089.979
+ 35.700 32.700
+ -12109474.416 6 -9435949.123 5 22171326.168 22171324.079 22171325.154
+ 38.900 31.600
+ -9742785.290 5 -7591775.065 4 22814034.974 22814032.312 22814034.133
+ 35.800 27.600
+ -1344671.917 4 -1047796.483 1 24342007.443 24342004.446 24342006.856
+ 24.200 11.000
+ -16121977.316 7 -12562577.831 7 20651379.648 20651376.670 20651378.610
+ 43.400 45.400
+ -6294993.785 6 -4905188.841 4 22494199.428 22494195.874 22494197.775
+ 36.200 27.600
+ -22358369.089 7 -17422103.149 7 20468223.399 20468218.960 20468222.715
+ 46.100 46.800
+ -3872091.939 4 -3017212.599 4 23802220.052 23802219.843 23802219.936
+ 24.200 25.600
+ -8947243.761 5 -6971874.427 4 22955917.319 22955914.213 22955915.959
+ 31.500 24.200
+ 06 1 2 6 5 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7160150.062 5 -5579336.538 5 22899810.176 22899808.118 22899809.146
+ 34.900 30.200
+ -12145795.966 6 -9464251.614 5 22164414.614 22164412.227 22164413.175
+ 38.600 31.800
+ -9637930.682 5 -7510070.181 4 22833987.584 22833985.469 22833986.764
+ 34.300 27.600
+ -1385164.765 4 -1079349.343 2 24334302.664 24334298.959 24334301.817
+ 26.800 17.800
+ -16150504.427 7 -12584806.747 7 20645951.110 20645948.129 20645950.182
+ 43.600 45.500
+ -6203430.733 6 -4833841.035 4 22511623.929 22511619.822 22511622.048
+ 36.600 27.400
+ -22328674.110 7 -17398964.206 7 20473874.039 20473869.802 20473873.423
+ 46.100 46.800
+ -3971431.026 4 -3094619.655 4 23783316.999 23783316.441 23783316.261
+ 24.200 24.900
+ -9034625.155 5 -7039963.811 4 22939286.240 22939286.151 22939287.170
+ 31.100 26.500
+ 06 1 2 6 6 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7235050.531 5 -5637700.539 5 22885556.250 22885554.690 22885555.519
+ 34.400 30.100
+ -12181558.724 6 -9492118.681 5 22157608.615 22157606.691 22157607.766
+ 38.800 32.000
+ -9532828.333 5 -7428172.246 4 22853988.222 22853986.100 22853987.182
+ 34.600 27.400
+ -1425170.042 4 -1110522.270 2 24326689.691 24326686.550 24326689.066
+ 25.900 17.000
+ -16178739.069 7 -12606807.770 7 20640578.252 20640575.303 20640577.274
+ 43.600 45.600
+ -6111571.611 6 -4762262.527 4 22529103.116 22529100.143 22529102.025
+ 36.500 28.600
+ -22298507.883 7 -17375458.056 7 20479614.422 20479610.318 20479613.902
+ 46.200 46.900
+ -4070579.586 4 -3171878.206 3 23764449.865 23764448.913 23764449.245
+ 27.100 23.800
+ -9121696.441 5 -7107811.517 4 22922718.750 22922717.107 22922718.426
+ 32.600 26.500
+ 06 1 2 6 6 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7309805.720 5 -5695951.317 5 22871331.000 22871329.831 22871330.173
+ 33.900 32.100
+ -12216760.960 6 -9519548.978 5 22150910.321 22150908.091 22150909.093
+ 38.900 32.400
+ -9427481.783 5 -7346084.021 4 22874034.937 22874032.241 22874033.894
+ 34.100 27.100
+ -1464686.718 4 -1141314.497 3 24319169.506 24319167.146 24319169.069
+ 24.200 23.800
+ -16206680.973 7 -12628580.680 7 20635260.855 20635258.082 20635260.000
+ 43.500 45.600
+ -6019417.366 5 -4690454.049 4 22546639.029 22546636.373 22546638.207
+ 35.900 27.100
+ -22267870.624 7 -17351584.868 7 20485444.440 20485440.335 20485443.965
+ 46.200 46.600
+ -4169535.924 4 -3248987.014 3 23745619.617 23745618.121 23745618.738
+ 29.700 22.600
+ -9208454.280 5 -7175415.014 4 22906209.544 22906207.485 22906209.235
+ 32.800 26.500
+ 06 1 2 6 7 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7384415.172 5 -5754088.533 5 22857133.803 22857132.445 22857132.986
+ 35.900 32.600
+ -12251400.954 6 -9546541.161 5 22144318.339 22144316.473 22144317.341
+ 38.900 32.700
+ -9321893.157 5 -7263807.164 4 22894127.833 22894125.660 22894126.721
+ 33.500 26.800
+ -1503713.580 4 -1171725.046 4 24311743.563 24311740.573 24311742.962
+ 26.500 24.900
+ -16234329.724 7 -12650125.164 7 20629999.843 20629996.761 20629998.791
+ 43.400 45.600
+ -5926969.867 5 -4618417.068 4 22564230.847 22564228.869 22564230.151
+ 35.400 27.900
+ -22236762.088 7 -17327344.456 7 20491364.206 20491360.010 20491363.697
+ 46.000 46.600
+ -4268298.572 4 -3325944.900 3 23726825.111 23726824.000 23726824.425
+ 28.800 22.100
+ -9294895.720 5 -7242771.933 4 22889759.732 22889758.512 22889759.882
+ 33.600 27.900
+ 06 1 2 6 7 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7458878.430 5 -5812111.829 5 22842963.876 22842962.287 22842962.762
+ 34.600 32.100
+ -12285477.009 6 -9573093.914 5 22137834.023 22137832.099 22137833.022
+ 39.200 33.100
+ -9216064.840 5 -7181343.560 4 22914266.074 22914264.366 22914265.415
+ 34.600 27.100
+ -1542249.864 4 -1201753.302 4 24304410.336 24304407.207 24304409.657
+ 27.600 24.600
+ -16261685.461 7 -12671441.317 7 20624794.213 20624791.119 20624793.110
+ 43.300 45.700
+ -5834230.466 6 -4546152.608 4 22581878.769 22581876.581 22581878.225
+ 36.200 28.100
+ -22205182.325 7 -17302736.855 7 20497373.572 20497369.454 20497373.145
+ 46.100 46.400
+ -4366866.104 4 -3402750.749 3 23708068.335 23708067.006 23708067.538
+ 28.400 20.500
+ -9381017.248 5 -7309879.593 4 22873372.578 22873370.336 22873371.794
+ 33.900 28.800
+ 06 1 2 6 8 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7533195.068 5 -5870020.899 5 22828821.960 22828819.978 22828820.917
+ 35.100 30.400
+ -12318987.440 6 -9599205.937 5 22131457.661 22131455.284 22131456.385
+ 39.600 32.700
+ -9110000.320 5 -7098695.869 4 22934449.499 22934447.001 22934448.427
+ 33.000 25.600
+ -1580294.172 4 -1231398.132 3 24297170.262 24297167.020 24297169.718
+ 25.300 23.800
+ -16288747.599 7 -12692528.693 7 20619644.228 20619641.317 20619643.260
+ 43.000 45.600
+ -5741200.778 6 -4473661.962 4 22599582.185 22599579.417 22599581.154
+ 36.400 27.100
+ -22173131.527 7 -17277762.218 7 20503472.825 20503468.491 20503472.263
+ 46.100 46.300
+ -4465236.832 4 -3479403.259 2 23689348.811 23689347.290 23689348.402
+ 27.400 15.100
+ -9466815.952 5 -7376735.690 4 22857043.197 22857043.539 22857044.281
+ 33.000 29.200
+ 06 1 2 6 8 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7607364.675 5 -5927815.399 5 22814707.707 22814706.219 22814707.004
+ 35.700 31.800
+ -12351930.502 6 -9624875.844 5 22125187.929 22125186.462 22125187.219
+ 39.500 32.700
+ -9003702.514 5 -7015866.418 4 22954677.186 22954675.358 22954676.128
+ 32.300 26.800
+ -1617845.479 4 -1260658.913 4 24290024.634 24290021.852 24290023.964
+ 25.300 24.200
+ -16315516.264 7 -12713387.392 7 20614550.333 20614547.377 20614549.342
+ 43.100 45.600
+ -5647882.298 5 -4400946.297 4 22617340.652 22617337.538 22617339.009
+ 35.800 28.100
+ -22140609.878 7 -17252420.678 7 20509661.629 20509657.158 20509660.930
+ 46.100 46.100
+ -4563409.363 4 -3555901.319 2 23670667.466 23670665.867 23670666.870
+ 29.000 17.800
+ -9552288.550 5 -7443337.691 4 22840780.856 22840778.033 22840779.759
+ 32.700 27.900
+ 06 1 2 6 9 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7681386.892 5 -5985495.038 5 22800621.483 22800620.799 22800620.680
+ 35.200 32.700
+ -12384304.606 6 -9650102.406 5 22119027.857 22119025.760 22119026.525
+ 39.200 32.800
+ -8897173.860 5 -6932857.087 4 22974948.850 22974946.539 22974948.324
+ 33.900 24.900
+ -1654902.933 4 -1289534.847 4 24282972.819 24282970.248 24282972.295
+ 24.900 25.600
+ -16341991.041 7 -12734017.087 7 20609512.378 20609509.422 20609511.397
+ 43.100 45.600
+ -5554276.625 5 -4328006.851 4 22635153.019 22635150.175 22635151.562
+ 34.800 28.100
+ -22107617.518 7 -17226712.351 7 20515940.120 20515935.443 20515939.252
+ 45.900 46.100
+ -4661382.044 4 -3632243.631 3 23652024.057 23652022.633 23652023.291
+ 27.900 22.600
+ -9637431.835 5 -7509683.093 4 22824576.217 22824576.219 22824577.196
+ 33.500 28.400
+ 06 1 2 6 9 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7755261.370 5 -6043059.551 5 22786563.959 22786562.437 22786562.982
+ 35.100 32.000
+ -12416108.084 6 -9674884.320 5 22112975.596 22112973.705 22112974.590
+ 39.300 33.400
+ -8790417.418 5 -6849670.265 4 22995263.680 22995262.459 22995262.993
+ 33.500 26.800
+ -1691465.464 3 -1318025.139 3 24276014.610 24276012.214 24276014.014
+ 21.100 23.400
+ -16368171.544 7 -12754417.481 7 20604530.293 20604527.422 20604529.314
+ 43.100 45.800
+ -5460385.115 5 -4254844.681 4 22653019.989 22653016.814 22653018.385
+ 34.100 27.600
+ -22074154.526 7 -17200637.300 7 20522307.750 20522303.241 20522306.932
+ 45.900 46.100
+ -4759153.349 4 -3708429.043 3 23633418.564 23633417.284 23633417.966
+ 29.700 23.800
+ -9722242.692 5 -7575769.447 4 22808439.536 22808436.868 22808438.483
+ 32.700 28.400
+ 06 1 2 6 10 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7828987.632 5 -6100508.590 5 22772534.158 22772532.654 22772533.357
+ 35.800 31.300
+ -12447339.234 6 -9699220.272 5 22107032.817 22107030.660 22107031.876
+ 39.600 33.000
+ -8683435.583 5 -6766307.783 4 23015621.709 23015619.971 23015621.078
+ 33.000 25.300
+ -1727531.985 3 -1346128.923 4 24269151.784 24269149.480 24269151.015
+ 23.000 25.600
+ -16394057.793 7 -12774588.583 7 20599604.272 20599601.344 20599603.271
+ 43.100 45.700
+ -5366209.290 5 -4181460.944 4 22670940.713 22670938.274 22670939.741
+ 34.700 28.100
+ -22040220.953 7 -17174195.558 7 20528764.948 20528760.623 20528764.237
+ 46.000 46.100
+ -4856721.787 4 -3784456.350 4 23614851.612 23614850.401 23614851.041
+ 27.600 24.200
+ -9806717.908 5 -7641594.267 4 22792362.652 22792361.965 22792363.084
+ 33.600 28.400
+ 06 1 2 6 10 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7902565.288 5 -6157841.834 5 22758533.050 22758531.396 22758532.103
+ 35.600 31.300
+ -12477996.579 6 -9723109.103 5 22101198.830 22101196.621 22101197.590
+ 39.300 32.800
+ -8576231.390 5 -6682772.063 4 23036022.280 23036020.474 23036021.625
+ 34.300 25.600
+ -1763101.844 3 -1373845.681 4 24262383.530 24262380.395 24262383.057
+ 23.000 24.200
+ -16419649.468 7 -12794530.150 7 20594734.444 20594731.363 20594733.425
+ 43.100 45.600
+ -5271750.918 5 -4107857.049 4 22688914.537 22688912.897 22688914.608
+ 35.100 25.600
+ -22005816.860 7 -17147387.180 7 20535311.972 20535307.499 20535311.217
+ 45.800 45.900
+ -4954085.889 4 -3860324.432 3 23596324.100 23596322.632 23596323.130
+ 24.600 23.400
+ -9890854.373 5 -7707155.104 4 22776353.519 22776351.528 22776352.697
+ 33.400 28.600
+ 06 1 2 6 11 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7975993.958 5 -6215058.964 5 22744559.846 22744558.729 22744558.956
+ 35.600 32.600
+ -12508078.514 6 -9746549.542 5 22095474.064 22095472.214 22095473.093
+ 39.500 33.100
+ -8468807.323 5 -6599064.989 4 23056464.077 23056462.543 23056463.330
+ 33.100 26.200
+ -1798173.856 3 -1401174.476 3 24255709.284 24255706.093 24255708.655
+ 23.800 23.400
+ -16444946.368 7 -12814242.016 7 20589920.732 20589917.477 20589919.655
+ 43.200 45.600
+ -5177011.426 5 -4034034.088 4 22706942.652 22706941.015 22706942.980
+ 34.600 25.300
+ -21970942.642 7 -17120212.472 7 20541948.376 20541943.878 20541947.589
+ 45.800 45.900
+ -5051244.132 4 -3936032.114 3 23577835.124 23577833.806 23577834.625
+ 24.600 23.400
+ -9974648.948 5 -7772449.570 4 22760406.777 22760405.754 22760406.886
+ 33.400 27.900
+ 06 1 2 6 11 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8049273.107 6 -6272159.597 5 22730615.003 22730613.856 22730614.311
+ 36.200 32.800
+ -12537583.555 6 -9769540.470 5 22089859.436 22089857.529 22089858.471
+ 39.400 32.600
+ -8361166.377 5 -6515188.952 4 23076947.525 23076946.009 23076946.682
+ 32.100 26.800
+ -1832747.328 4 -1428114.780 4 24249130.680 24249127.432 24249129.988
+ 25.900 24.600
+ -16469948.277 7 -12833724.023 7 20585162.850 20585159.816 20585161.977
+ 43.200 45.700
+ -5081992.173 5 -3959993.125 4 22725024.657 22725023.132 22725024.439
+ 34.500 26.800
+ -21935598.271 7 -17092671.409 7 20548674.283 20548669.661 20548673.387
+ 45.700 45.700
+ -5148195.088 4 -4011578.275 3 23559385.830 23559384.280 23559385.262
+ 26.500 23.800
+ -10058098.477 5 -7837475.150 4 22744527.730 22744525.799 22744527.176
+ 34.300 28.600
+ 06 1 2 6 12 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8122402.322 5 -6329143.378 5 22716699.065 22716698.154 22716698.217
+ 35.600 33.600
+ -12566510.159 6 -9792080.670 5 22084355.397 22084352.943 22084354.071
+ 39.300 32.700
+ -8253311.242 5 -6431145.988 4 23097472.707 23097470.352 23097471.613
+ 34.300 26.500
+ -1866821.103 4 -1454665.763 3 24242645.985 24242643.066 24242645.389
+ 24.200 22.100
+ -16494654.970 7 -12852975.992 7 20580461.170 20580458.345 20580460.226
+ 43.200 45.700
+ -4986694.977 5 -3885735.585 4 22743159.911 22743157.424 22743158.740
+ 33.900 26.800
+ -21899784.106 7 -17064764.273 7 20555489.528 20555484.907 20555488.715
+ 45.800 45.800
+ -5244937.243 4 -4086961.761 3 23540976.961 23540975.124 23540976.379
+ 28.100 23.400
+ -10141199.791 5 -7902229.405 4 22728713.170 22728711.919 22728713.112
+ 33.400 28.100
+ 06 1 2 6 12 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8195381.314 6 -6386010.109 5 22702811.893 22702810.518 22702811.134
+ 36.400 33.500
+ -12594856.773 6 -9814168.935 5 22078960.675 22078958.539 22078959.788
+ 39.500 32.000
+ -8145244.630 5 -6346938.248 4 23118035.855 23118034.304 23118035.321
+ 32.400 24.900
+ -1900394.295 3 -1480826.697 3 24236257.062 24236254.018 24236256.527
+ 22.600 21.100
+ -16519066.343 7 -12871997.842 7 20575816.206 20575812.977 20575815.118
+ 43.200 45.800
+ -4891121.159 5 -3811262.520 4 22761347.962 22761344.480 22761346.110
+ 34.000 26.200
+ -21863500.260 7 -17036491.144 7 20562393.985 20562389.500 20562393.187
+ 45.800 45.600
+ -5341469.005 5 -4162181.310 3 23522607.665 23522606.133 23522606.904
+ 30.400 23.400
+ -10223949.915 5 -7966709.998 4 22712967.194 22712965.262 22712966.624
+ 33.900 29.200
+ 06 1 2 6 13 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8268209.619 6 -6442759.433 5 22688953.378 22688951.733 22688952.480
+ 37.100 33.500
+ -12622621.970 6 -9835804.143 5 22073677.189 22073675.248 22073676.131
+ 39.700 32.700
+ -8036969.466 5 -6262567.975 4 23138639.733 23138638.406 23138638.864
+ 31.600 24.900
+ -1933466.259 3 -1506597.034 3 24229963.435 24229961.232 24229963.072
+ 22.100 23.800
+ -16543181.972 7 -12890789.242 7 20571226.969 20571223.858 20571226.031
+ 43.400 45.700
+ -4795272.614 5 -3736575.375 4 22779587.781 22779583.852 22779585.926
+ 33.900 26.500
+ -21826746.900 7 -17007852.163 7 20569387.903 20569383.436 20569387.137
+ 45.600 45.400
+ -5437789.066 4 -4237235.872 4 23504278.213 23504276.941 23504277.667
+ 29.000 24.200
+ -10306345.615 5 -8030914.426 4 22697287.005 22697285.839 22697286.900
+ 33.600 29.000
+ 06 1 2 6 13 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8340886.738 6 -6499390.944 5 22675123.321 22675121.439 22675122.214
+ 36.500 32.700
+ -12649804.360 6 -9856985.209 5 22068504.749 22068502.967 22068503.744
+ 40.000 33.100
+ -7928488.706 5 -6178037.527 4 23159283.598 23159281.959 23159282.738
+ 33.100 25.600
+ -1966035.943 3 -1531975.977 3 24223766.061 24223762.959 24223765.114
+ 21.100 21.100
+ -16567001.668 7 -12909350.046 7 20566694.324 20566691.234 20566693.331
+ 43.100 45.900
+ -4699150.941 5 -3661675.420 4 22797877.614 22797875.325 22797876.848
+ 34.500 26.800
+ -21789524.373 7 -16978847.606 7 20576471.245 20576466.563 20576470.388
+ 45.700 45.300
+ -5533895.861 5 -4312124.262 4 23485990.087 23485988.536 23485989.408
+ 30.600 25.300
+ -10388383.768 5 -8094840.236 4 22681675.898 22681674.800 22681675.511
+ 34.300 29.200
+ 06 1 2 6 14 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8413412.265 6 -6555904.335 5 22661321.957 22661320.445 22661321.107
+ 36.900 33.200
+ -12676402.448 6 -9877710.980 5 22063443.189 22063441.185 22063442.311
+ 40.300 33.100
+ -7819804.443 5 -6093348.492 4 23179965.709 23179964.000 23179964.817
+ 30.600 26.800
+ -1998102.713 3 -1556963.053 3 24217664.376 24217660.836 24217663.426
+ 23.800 23.400
+ -16590525.128 7 -12927680.018 7 20562218.184 20562215.002 20562217.131
+ 43.400 46.000
+ -4602757.498 5 -3586563.662 4 22816219.098 22816218.378 22816219.960
+ 33.800 26.200
+ -21751833.020 7 -16949477.728 7 20583643.688 20583638.978 20583642.744
+ 45.500 45.200
+ -5629787.842 4 -4386845.268 4 23467742.284 23467741.039 23467741.474
+ 29.700 25.600
+ -10470061.279 5 -8158485.014 4 22666132.472 22666132.010 22666132.425
+ 33.600 29.000
+ 06 1 2 6 14 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8485785.891 6 -6612299.359 5 22647549.541 22647548.101 22647548.756
+ 36.800 32.800
+ -12702414.846 6 -9897980.378 5 22058493.301 22058491.048 22058492.119
+ 40.000 33.200
+ -7710919.526 5 -6008503.099 4 23200685.601 23200683.627 23200684.706
+ 31.300 24.200
+ -2029665.554 4 -1581557.388 3 24211657.674 24211654.733 24211657.247
+ 26.800 23.400
+ -16613752.215 7 -12945779.048 7 20557798.175 20557794.896 20557797.047
+ 43.300 46.000
+ -4506093.866 5 -3511241.367 4 22834612.930 22834612.680 22834614.372
+ 34.100 24.900
+ -21713673.038 7 -16919742.686 7 20590905.207 20590900.585 20590904.304
+ 45.400 45.100
+ -5725463.611 5 -4461397.779 4 23449535.828 23449534.358 23449535.197
+ 30.200 25.300
+ -10551374.978 5 -8221846.325 4 22650659.910 22650658.061 22650659.204
+ 34.600 29.200
+ 06 1 2 6 15 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8558007.053 6 -6668575.581 5 22633806.418 22633804.979 22633805.469
+ 36.200 33.000
+ -12727840.236 6 -9917792.362 5 22053655.153 22053653.085 22053654.032
+ 40.300 33.800
+ -7601837.125 5 -5923503.841 4 23221443.514 23221441.696 23221442.575
+ 31.800 26.800
+ -2060723.756 4 -1605758.587 2 24205747.553 24205744.228 24205746.978
+ 26.200 17.800
+ -16636682.608 7 -12963646.888 7 20553434.559 20553431.276 20553433.556
+ 43.400 46.000
+ -4409161.579 5 -3435709.737 4 22853060.662 22853058.839 22853059.879
+ 32.800 27.100
+ -21675044.784 7 -16889642.757 7 20598255.898 20598251.350 20598255.033
+ 45.400 45.000
+ -5820921.759 5 -4535780.760 3 23431370.353 23431369.262 23431369.991
+ 30.100 23.800
+ -10632321.793 5 -8284921.739 4 22635255.766 22635254.559 22635255.530
+ 34.600 29.500
+ 06 1 2 6 15 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8630075.365 6 -6724732.695 5 22620092.222 22620090.838 22620091.265
+ 36.600 32.600
+ -12752677.243 6 -9937145.852 5 22048928.533 22048926.822 22048927.561
+ 40.300 33.500
+ -7492559.138 5 -5838352.170 4 23242238.119 23242236.355 23242237.302
+ 32.600 24.200
+ -2091276.632 4 -1629566.025 3 24199933.777 24199930.058 24199933.077
+ 24.600 19.300
+ -16659316.215 7 -12981283.467 7 20549127.398 20549124.398 20549126.466
+ 43.200 46.100
+ -4311962.164 5 -3359969.986 4 22871559.153 22871554.672 22871556.971
+ 33.100 25.600
+ -21635948.379 7 -16859178.032 7 20605695.646 20605691.197 20605694.857
+ 45.300 45.100
+ -5916160.972 4 -4609993.095 3 23413246.844 23413245.733 23413246.339
+ 29.900 23.000
+ -10712898.688 5 -8347708.903 4 22619923.415 22619921.004 22619922.551
+ 34.000 29.500
+ 06 1 2 6 16 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8701990.353 6 -6780770.345 5 22606407.396 22606405.759 22606406.597
+ 37.200 33.100
+ -12776924.499 6 -9956039.816 5 22044314.907 22044312.566 22044313.520
+ 40.100 33.400
+ -7383088.717 5 -5753050.548 4 23263069.155 23263067.571 23263068.380
+ 30.600 24.200
+ -2121323.375 4 -1652979.036 3 24194215.633 24194212.739 24194215.159
+ 24.600 20.500
+ -16681652.892 7 -12998688.668 7 20544877.067 20544873.927 20544875.999
+ 43.200 46.300
+ -4214497.567 5 -3284023.580 4 22890105.530 22890102.078 22890103.618
+ 33.000 26.200
+ -21596384.246 7 -16828348.847 7 20613224.621 20613220.019 20613223.695
+ 45.300 45.000
+ -6011179.491 4 -4684033.488 3 23395165.994 23395164.008 23395164.917
+ 28.800 23.400
+ -10793102.581 5 -8410205.432 4 22604660.051 22604658.880 22604660.041
+ 34.800 29.700
+ 06 1 2 6 16 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8773751.636 6 -6836688.232 5 22592751.666 22592749.987 22592750.824
+ 37.200 32.400
+ -12800580.776 6 -9974473.258 5 22039812.484 22039810.930 22039811.677
+ 39.900 33.400
+ -7273428.600 5 -5667601.126 3 23283937.010 23283935.322 23283936.728
+ 31.500 23.000
+ -2150863.208 3 -1675997.102 3 24188594.526 24188590.993 24188593.682
+ 23.400 19.300
+ -16703692.208 7 -13015862.158 7 20540682.825 20540679.847 20540681.953
+ 43.300 46.200
+ -4116769.544 5 -3207871.917 4 22908701.404 22908699.238 22908700.605
+ 33.100 25.900
+ -21556352.689 7 -16797155.428 7 20620842.339 20620837.764 20620841.523
+ 45.300 44.900
+ -6105976.139 4 -4757900.986 4 23377125.982 23377124.603 23377125.470
+ 27.900 24.600
+ -10872930.440 5 -8472408.924 4 22589470.028 22589468.054 22589469.547
+ 35.500 29.900
+ 06 1 2 6 17 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8845358.788 6 -6892485.991 5 22579124.847 22579123.404 22579124.027
+ 36.800 32.700
+ -12823644.756 6 -9992445.190 5 22035424.307 22035421.911 22035422.945
+ 39.900 33.200
+ -7163581.373 5 -5582005.876 3 23304839.877 23304838.574 23304839.592
+ 31.800 23.000
+ -2179895.566 4 -1698619.703 2 24183069.652 24183066.529 24183069.159
+ 24.600 16.100
+ -16725433.802 7 -13032803.664 7 20536545.623 20536542.588 20536544.658
+ 43.300 46.200
+ -4018779.324 5 -3131515.954 4 22927348.134 22927346.117 22927347.620
+ 33.600 25.300
+ -21515854.219 7 -16765598.174 7 20628548.734 20628544.384 20628548.029
+ 45.200 44.800
+ -6200549.419 5 -4831594.427 4 23359129.890 23359128.258 23359129.092
+ 30.400 25.300
+ -10952379.104 5 -8534316.956 5 22574350.448 22574349.499 22574350.580
+ 35.300 30.200
+ 06 1 2 6 17 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8916811.262 6 -6948163.247 5 22565528.198 22565526.280 22565527.307
+ 37.200 32.100
+ -12846115.217 6 -10009954.630 5 22031147.738 22031145.796 22031146.800
+ 40.000 33.400
+ -7053549.597 5 -5496266.844 3 23325779.089 23325776.778 23325778.082
+ 31.000 23.000
+ -2208419.282 3 -1720846.014 2 24177641.407 24177637.942 24177640.924
+ 23.800 13.900
+ -16746877.631 7 -13049513.137 7 20532465.102 20532462.039 20532464.050
+ 43.000 46.400
+ -3920528.801 5 -3054957.121 4 22946044.225 22946042.722 22946043.896
+ 32.800 25.600
+ -21474889.027 7 -16733677.247 7 20636344.170 20636339.799 20636343.448
+ 45.200 44.700
+ -6294897.845 4 -4905112.662 4 23341175.887 23341174.235 23341175.235
+ 29.700 24.600
+ -11031445.608 5 -8595927.200 4 22559305.921 22559303.684 22559304.926
+ 34.700 29.500
+ 06 1 2 6 18 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8988108.578 6 -7003719.598 5 22551960.632 22551959.073 22551959.896
+ 37.400 33.200
+ -12867990.930 6 -10027000.633 5 22026985.312 22026983.118 22026983.941
+ 39.700 33.600
+ -6943336.437 5 -5410386.464 3 23346752.862 23346749.620 23346751.815
+ 31.600 23.800
+ -2236434.480 3 -1742676.011 3 24172311.178 24172307.769 24172310.186
+ 23.800 19.300
+ -16768023.420 7 -13065990.377 7 20528441.239 20528438.106 20528440.168
+ 43.100 46.300
+ -3822019.702 5 -2978196.848 3 22964790.189 22964788.088 22964789.578
+ 32.000 23.400
+ -21433457.663 7 -16701393.075 7 20644228.381 20644223.918 20644227.661
+ 45.400 44.600
+ -6389020.160 4 -4978454.700 3 23323264.702 23323263.177 23323264.225
+ 29.200 23.800
+ -11110126.877 5 -8657237.254 4 22544332.170 22544330.694 22544332.122
+ 34.400 28.100
+ 06 1 2 6 18 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9059250.363 6 -7059154.751 5 22538422.872 22538421.306 22538422.061
+ 37.900 33.200
+ -12889270.680 6 -10043582.247 5 22022935.466 22022933.942 22022934.519
+ 40.000 33.800
+ -6832944.051 5 -5324366.424 4 23367759.372 23367757.152 23367758.484
+ 30.400 25.300
+ -2263939.964 4 -1764108.885 3 24167076.167 24167073.644 24167075.694
+ 24.200 19.300
+ -16788871.037 7 -13082235.274 7 20524474.012 20524470.933 20524473.014
+ 43.100 46.400
+ -3723253.244 5 -2901235.986 3 22983585.688 22983582.578 22983584.611
+ 32.300 23.000
+ -21391560.237 7 -16668745.726 7 20652201.031 20652196.655 20652200.336
+ 45.300 44.500
+ -6482914.782 5 -5051619.325 4 23305397.870 23305395.779 23305397.105
+ 31.000 25.600
+ -11188419.735 5 -8718244.658 4 22529435.019 22529432.376 22529434.047
+ 35.500 29.200
+ 06 1 2 6 19 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9130236.213 6 -7114468.391 5 22524914.684 22524912.967 22524913.932
+ 37.800 32.800
+ -12909953.253 6 -10059698.536 5 22019000.515 22018998.074 22018998.955
+ 40.200 34.300
+ -6722375.105 5 -5238208.816 3 23388799.312 23388797.158 23388798.382
+ 30.800 22.600
+ -2290935.464 4 -1785144.297 2 24161940.367 24161936.217 24161939.489
+ 26.500 16.100
+ -16809420.129 7 -13098247.556 7 20520563.597 20520560.696 20520562.678
+ 43.100 46.600
+ -3624231.197 5 -2824076.008 3 23002428.826 23002425.732 23002427.502
+ 31.600 23.000
+ -21349197.229 7 -16635735.596 7 20660262.724 20660258.170 20660261.937
+ 45.200 44.500
+ -6576580.449 5 -5124605.545 4 23287573.740 23287571.969 23287572.916
+ 31.000 26.500
+ -11266321.283 6 -8778947.135 4 22514608.914 22514608.075 22514609.497
+ 36.000 29.500
+ 06 1 2 6 19 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9201065.583 6 -7169660.109 5 22511436.559 22511434.819 22511435.731
+ 38.100 34.000
+ -12930037.585 6 -10075348.660 5 22015178.286 22015175.972 22015177.157
+ 40.300 33.600
+ -6611631.957 4 -5151915.429 3 23409873.256 23409870.619 23409872.123
+ 29.900 20.500
+ -2317419.865 4 -1805781.472 2 24156900.059 24156896.997 24156899.507
+ 26.800 17.800
+ -16829670.646 7 -13114027.182 7 20516710.071 20516707.054 20516709.095
+ 43.100 46.500
+ -3524955.592 5 -2746718.433 4 23021320.431 23021317.610 23021319.434
+ 31.600 24.600
+ -21306369.251 7 -16602363.147 7 20668412.336 20668408.047 20668411.668
+ 45.300 44.300
+ -6670015.624 5 -5197412.169 4 23269793.179 23269791.773 23269792.671
+ 32.800 26.800
+ -11343828.527 5 -8839342.357 4 22499860.924 22499858.838 22499860.345
+ 35.300 29.500
+ 06 1 2 6 20 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9271738.060 6 -7224729.553 5 22497988.115 22497986.368 22497987.051
+ 37.700 34.600
+ -12949522.558 6 -10090531.752 5 22011469.701 22011468.217 22011468.947
+ 40.500 34.000
+ -6500717.500 5 -5065488.606 4 23430980.000 23430977.869 23430978.753
+ 31.000 24.200
+ -2343392.976 4 -1826020.315 3 24151957.796 24151954.169 24151957.147
+ 28.600 18.600
+ -16849622.377 7 -13129573.985 7 20512913.114 20512910.233 20512912.243
+ 42.700 46.400
+ -3425427.861 5 -2669164.380 4 23040259.958 23040257.458 23040258.987
+ 32.300 25.600
+ -21263076.441 7 -16568628.496 7 20676650.738 20676646.416 20676649.991
+ 45.100 44.300
+ -6763219.055 5 -5270038.203 4 23252057.202 23252055.892 23252056.487
+ 30.800 28.800
+ -11420938.436 5 -8899427.977 4 22485186.729 22485185.356 22485186.699
+ 35.500 29.700
+ 06 1 2 6 20 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9342253.247 6 -7279676.442 5 22484569.188 22484567.770 22484568.421
+ 38.000 34.500
+ -12968407.022 6 -10105246.909 5 22007877.018 22007874.722 22007875.590
+ 40.200 34.000
+ -6389634.424 5 -4978930.371 3 23452118.405 23452116.221 23452117.413
+ 30.100 23.400
+ -2368854.170 3 -1845860.197 3 24147112.007 24147108.791 24147111.400
+ 22.600 19.300
+ -16869274.538 7 -13144887.355 7 20509173.448 20509170.572 20509172.559
+ 42.800 46.500
+ -3325649.531 5 -2591415.107 4 23059246.490 23059244.783 23059245.819
+ 32.300 26.200
+ -21219319.676 7 -16534532.320 7 20684977.338 20684972.975 20684976.653
+ 45.200 44.000
+ -6856189.265 5 -5342482.505 4 23234365.218 23234364.269 23234364.719
+ 30.200 27.100
+ -11497647.933 5 -8959201.583 4 22470589.721 22470587.880 22470589.164
+ 35.300 29.900
+ 06 1 2 6 21 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9412610.754 6 -7334500.464 5 22471181.217 22471178.984 22471180.192
+ 38.700 34.700
+ -12986689.943 6 -10119493.325 5 22004397.606 22004395.477 22004396.498
+ 40.400 33.900
+ -6278385.298 4 -4892242.741 3 23473287.516 23473285.815 23473286.838
+ 29.200 21.600
+ -2393802.909 4 -1865300.752 2 24142364.912 24142361.476 24142364.246
+ 27.400 16.100
+ -16888627.295 7 -13159967.427 7 20505490.950 20505487.924 20505489.969
+ 42.700 46.500
+ -3225622.648 5 -2513472.102 4 23078281.721 23078278.994 23078280.462
+ 31.000 24.200
+ -21175099.193 7 -16500074.812 7 20693392.207 20693387.847 20693391.587
+ 45.300 44.100
+ -6948924.896 5 -5414744.007 4 23216718.109 23216717.244 23216717.343
+ 30.100 27.600
+ -11573953.991 5 -9018660.817 5 22456069.193 22456067.566 22456068.741
+ 35.600 30.200
+ 06 1 2 6 21 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9482810.124 6 -7389201.265 5 22457822.094 22457820.691 22457821.336
+ 38.400 34.600
+ -13004370.278 6 -10133270.202 5 22001032.893 22001031.160 22001031.977
+ 40.400 33.900
+ -6166972.539 4 -4805427.607 3 23494488.212 23494486.916 23494487.673
+ 29.000 23.000
+ -2418238.536 4 -1884341.491 2 24137714.810 24137711.224 24137714.282
+ 27.600 15.100
+ -16907680.371 7 -13174813.978 7 20501865.382 20501862.226 20501864.327
+ 42.700 46.500
+ -3125348.695 5 -2435336.587 4 23097363.207 23097360.858 23097361.804
+ 30.200 24.900
+ -21130415.271 7 -16465256.177 7 20701895.228 20701890.934 20701894.536
+ 45.200 43.900
+ -7041424.703 5 -5486821.737 4 23199116.173 23199115.393 23199115.630
+ 31.100 28.100
+ -11649853.856 6 -9077803.522 5 22441626.044 22441624.331 22441625.540
+ 36.000 30.400
+ 06 1 2 6 22 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9552850.801 6 -7443778.412 5 22444494.190 22444492.221 22444493.309
+ 38.600 34.500
+ -13021446.932 6 -10146576.673 5 21997783.597 21997781.627 21997782.407
+ 40.500 33.900
+ -6055399.108 4 -4718487.290 4 23515720.329 23515718.504 23515719.464
+ 28.100 24.200
+ -2442160.604 4 -1902982.069 2 24133162.362 24133159.016 24133161.697
+ 24.200 16.100
+ -16926433.573 7 -13189426.864 7 20498296.581 20498293.630 20498295.691
+ 42.700 46.500
+ -3024829.541 5 -2357010.028 3 23116491.987 23116488.415 23116490.326
+ 30.200 22.600
+ -21085268.764 7 -16430077.091 7 20710486.681 20710482.074 20710485.754
+ 45.300 44.000
+ -7133687.176 5 -5558714.559 4 23181559.377 23181558.070 23181558.757
+ 31.500 28.100
+ -11725344.423 6 -9136627.313 5 22427260.495 22427259.013 22427260.092
+ 36.100 31.000
+ 06 1 2 6 22 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9622732.236 6 -7498231.466 5 22431196.051 22431194.362 22431195.147
+ 38.500 34.400
+ -13037918.993 6 -10159412.041 5 21994648.991 21994646.878 21994647.851
+ 40.600 34.000
+ -5943667.079 4 -4631423.372 3 23536982.323 23536980.616 23536981.621
+ 29.200 23.000
+ -2465568.699 4 -1921222.143 2 24128708.233 24128704.768 24128707.476
+ 27.900 12.600
+ -16944886.740 7 -13203805.957 7 20494785.163 20494782.072 20494784.155
+ 42.600 46.600
+ -2924066.513 4 -2278493.423 4 23135665.188 23135663.298 23135664.386
+ 29.700 24.200
+ -21039660.191 7 -16394537.956 7 20719165.601 20719161.066 20719164.757
+ 45.200 43.800
+ -7225711.068 5 -5630421.460 4 23164048.116 23164046.420 23164047.102
+ 32.000 27.900
+ -11800422.686 6 -9195129.813 5 22412973.279 22412971.915 22412973.006
+ 36.100 31.100
+ 06 1 2 6 23 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9692454.038 6 -7552560.140 5 22417928.126 22417926.627 22417927.342
+ 38.400 34.400
+ -13053785.510 6 -10171775.555 5 21991629.575 21991627.289 21991628.604
+ 40.300 33.400
+ -5831779.125 5 -4544237.962 4 23558274.631 23558272.665 23558273.817
+ 30.100 24.200
+ -2488462.203 4 -1939061.250 2 24124351.669 24124347.898 24124351.125
+ 27.900 16.100
+ -16963039.578 7 -13217951.028 7 20491330.810 20491327.750 20491329.772
+ 42.700 46.600
+ -2823061.553 5 -2199788.311 4 23154885.569 23154884.164 23154885.348
+ 32.300 24.200
+ -20993589.799 7 -16358638.949 7 20727932.496 20727928.010 20727931.686
+ 45.200 43.800
+ -7317494.979 5 -5701941.360 4 23146581.535 23146580.309 23146580.991
+ 30.800 26.500
+ -11875085.847 6 -9253308.869 5 22398765.251 22398763.880 22398764.908
+ 36.200 30.600
+ 06 1 2 6 23 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9762015.631 6 -7606763.967 5 22404691.361 22404689.498 22404690.299
+ 38.400 34.100
+ -13069045.535 6 -10183666.484 5 21988725.820 21988723.344 21988724.688
+ 40.500 33.000
+ -5719738.326 5 -4456933.451 3 23579595.303 23579592.810 23579594.485
+ 30.200 21.100
+ -2510840.655 4 -1956499.007 2 24120093.289 24120089.703 24120092.561
+ 25.600 17.000
+ -16980891.866 7 -13231861.902 7 20487933.554 20487930.615 20487932.558
+ 42.800 46.800
+ -2721816.138 5 -2120895.800 3 23174151.957 23174150.369 23174151.625
+ 31.100 22.600
+ -20947058.091 7 -16322380.487 7 20736787.410 20736782.812 20736786.498
+ 45.100 43.900
+ -7409037.579 5 -5773273.236 4 23129161.563 23129159.573 23129161.068
+ 31.300 24.600
+ -11949330.676 6 -9311161.956 5 22384637.095 22384635.747 22384636.845
+ 37.000 31.800
+ 06 1 2 6 24 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9831416.649 6 -7660842.675 5 22391484.714 22391482.956 22391483.779
+ 38.800 34.900
+ -13083698.085 6 -10195084.044 5 21985937.546 21985935.097 21985936.370
+ 40.300 33.100
+ -5607547.139 5 -4369511.720 2 23600943.555 23600941.819 23600943.262
+ 30.600 17.800
+ -2532703.688 3 -1973535.108 2 24115932.109 24115928.781 24115931.460
+ 23.400 15.100
+ -16998443.384 7 -13245538.410 7 20484593.630 20484590.679 20484592.674
+ 42.700 46.900
+ -2620332.356 4 -2041817.573 3 23193464.455 23193462.096 23193463.065
+ 29.700 23.400
+ -20900065.933 7 -16285763.244 7 20745729.613 20745725.086 20745728.798
+ 45.200 43.600
+ -7500337.527 5 -5844416.065 4 23111787.931 23111786.338 23111787.289
+ 32.000 24.600
+ -12023154.396 6 -9368686.913 5 22370589.553 22370587.692 22370588.655
+ 36.700 32.000
+ 06 1 2 6 24 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9900656.650 6 -7714795.925 5 22378308.617 22378306.855 22378307.700
+ 38.600 34.500
+ -13097742.376 6 -10206027.641 5 21983264.621 21983262.685 21983263.717
+ 40.600 33.100
+ -5495207.700 5 -4281974.498 3 23622320.973 23622319.226 23622320.811
+ 30.200 20.500
+ -2554050.826 4 -1990169.234 2 24111870.359 24111866.929 24111869.735
+ 26.500 13.900
+ -17015693.828 7 -13258980.312 7 20481311.185 20481307.966 20481310.091
+ 42.400 46.900
+ -2518612.114 5 -1962555.105 3 23212822.875 23212818.780 23212820.794
+ 30.400 22.600
+ -20852613.728 7 -16248787.517 7 20754759.404 20754754.939 20754758.521
+ 45.200 43.700
+ -7591393.524 5 -5915368.784 4 23094460.344 23094459.162 23094459.686
+ 30.800 25.900
+ -12096554.078 6 -9425881.429 5 22356620.904 22356620.070 22356620.908
+ 36.600 31.800
+ 06 1 2 6 25 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9969735.289 6 -7768623.428 5 22365163.268 22365161.960 22365162.419
+ 38.500 35.100
+ -13111177.451 6 -10216496.531 5 21980708.249 21980706.204 21980707.134
+ 40.600 33.600
+ -5382722.659 4 -4194323.800 3 23643726.595 23643724.803 23643725.648
+ 29.700 23.400
+ -2574881.871 4 -2006401.239 2 24107906.847 24107902.879 24107906.122
+ 25.300 17.800
+ -17032642.858 7 -13272187.349 7 20478085.484 20478082.693 20478084.571
+ 42.300 46.700
+ -2416656.538 4 -1883109.249 3 23232223.248 23232220.163 23232221.866
+ 29.000 21.100
+ -20804702.125 7 -16211453.805 7 20763876.685 20763872.275 20763875.832
+ 45.300 43.700
+ -7682204.331 5 -5986130.431 4 23077179.883 23077178.569 23077179.253
+ 31.300 27.400
+ -12169526.760 6 -9482743.226 5 22342735.028 22342733.459 22342734.879
+ 36.800 31.000
+ 06 1 2 6 25 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10038652.031 6 -7822324.773 5 22352048.912 22352047.467 22352047.899
+ 38.400 35.300
+ -13124002.534 6 -10226490.090 5 21978267.555 21978265.510 21978266.501
+ 40.700 32.800
+ -5270094.145 4 -4106561.358 3 23665158.583 23665157.405 23665157.366
+ 27.400 20.500
+ -2595196.712 4 -2022230.930 1 24104040.629 24104037.007 24104039.972
+ 27.400 11.000
+ -17049290.298 7 -13285159.381 7 20474917.654 20474914.795 20474916.745
+ 42.400 46.800
+ -2314467.794 4 -1803481.707 3 23251666.399 23251666.388 23251667.488
+ 29.500 23.000
+ -20756331.826 7 -16173762.677 7 20773081.427 20773076.865 20773080.489
+ 45.500 43.600
+ -7772768.537 5 -6056699.900 4 23059945.758 23059944.807 23059945.298
+ 31.500 28.600
+ -12242069.663 6 -9539270.139 5 22328930.944 22328929.137 22328930.530
+ 37.200 31.000
+ 06 1 2 6 26 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10107406.373 6 -7875899.577 5 22338965.419 22338963.984 22338964.548
+ 38.700 35.400
+ -13136216.758 6 -10236007.665 5 21975943.310 21975940.724 21975942.108
+ 40.300 32.700
+ -5157325.490 4 -4018689.690 3 23686617.686 23686616.609 23686617.205
+ 28.800 22.100
+ -2614994.699 4 -2037657.967 2 24100273.732 24100269.467 24100272.905
+ 28.800 17.800
+ -17065635.890 7 -13297896.206 7 20471807.563 20471804.330 20471806.500
+ 42.600 46.900
+ -2212047.445 5 -1723673.685 3 23271156.233 23271156.379 23271157.614
+ 30.200 23.800
+ -20707503.163 7 -16135714.372 7 20782373.284 20782368.629 20782372.384
+ 45.300 43.300
+ -7863084.824 5 -6127076.207 4 23042759.883 23042757.845 23042759.014
+ 33.100 27.100
+ -12314179.791 6 -9595459.819 5 22315208.301 22315206.880 22315208.312
+ 37.000 31.000
+ 06 1 2 6 26 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10175997.748 6 -7929347.400 5 22325913.094 22325911.344 22325912.238
+ 39.300 35.500
+ -13147819.384 6 -10245048.672 5 21973735.334 21973733.067 21973734.317
+ 40.500 33.200
+ -5044418.790 4 -3930710.402 3 23708103.241 23708101.890 23708102.470
+ 27.900 19.900
+ -2634275.163 4 -2052681.743 3 24096604.262 24096601.170 24096603.642
+ 28.100 18.600
+ -17081679.595 7 -13310397.797 7 20468754.371 20468751.279 20468753.311
+ 42.300 46.800
+ -2109397.010 4 -1643686.381 3 23290691.732 23290690.209 23290691.125
+ 29.900 22.600
+ -20658216.902 7 -16097309.491 7 20791751.997 20791747.451 20791751.246
+ 45.400 43.300
+ -7953151.934 5 -6197258.362 4 23025620.212 23025618.362 23025619.495
+ 32.400 27.600
+ -12385854.367 6 -9651310.121 5 22301569.711 22301567.431 22301568.989
+ 36.500 31.100
+ 06 1 2 6 27 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10244425.699 6 -7982667.881 5 22312891.668 22312889.956 22312890.755
+ 38.900 35.900
+ -13158809.614 6 -10253612.475 5 21971643.865 21971641.992 21971642.926
+ 40.500 33.600
+ -4931376.511 4 -3842625.533 3 23729613.383 23729613.745 23729613.370
+ 25.900 23.800
+ -2653038.093 4 -2067302.211 2 24093034.224 24093030.490 24093033.719
+ 29.200 15.100
+ -17097420.925 7 -13322663.770 7 20465758.716 20465755.851 20465757.741
+ 42.200 47.000
+ -2006518.717 4 -1563521.530 3 23310270.241 23310267.213 23310268.478
+ 29.000 22.600
+ -20608473.719 7 -16058548.577 7 20801218.000 20801213.251 20801217.129
+ 45.500 43.100
+ -8042968.593 5 -6267245.348 4 23008528.787 23008527.218 23008527.984
+ 32.100 27.600
+ -12457090.499 6 -9706818.756 5 22288012.801 22288011.823 22288013.028
+ 37.100 31.000
+ 06 1 2 6 27 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10312689.893 6 -8035860.742 5 22299901.116 22299899.874 22299900.222
+ 38.400 35.900
+ -13169186.784 6 -10261698.575 5 21969669.911 21969667.310 21969668.593
+ 41.000 33.600
+ -4818201.289 4 -3754437.083 3 23751151.243 23751150.210 23751149.990
+ 25.600 20.500
+ -2671283.264 4 -2081519.207 2 24089562.255 24089558.320 24089561.454
+ 26.800 17.000
+ -17112859.540 7 -13334693.861 7 20462820.795 20462817.991 20462819.881
+ 42.300 46.900
+ -1903414.180 4 -1483180.411 3 23329890.925 23329887.077 23329889.119
+ 28.800 19.300
+ -20558274.224 7 -16019432.108 7 20810770.364 20810765.974 20810769.591
+ 45.200 43.100
+ -8132533.487 5 -6337036.151 4 22991484.406 22991483.557 22991483.949
+ 32.400 28.100
+ -12527885.212 6 -9761983.455 5 22274542.120 22274540.130 22274541.556
+ 37.000 31.100
+ 06 1 2 6 28 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10380789.756 6 -8088925.565 5 22286942.643 22286940.784 22286941.733
+ 39.400 35.800
+ -13178950.165 6 -10269306.399 5 21967811.489 21967809.503 21967810.551
+ 40.800 33.400
+ -4704895.192 4 -3666146.614 3 23772713.901 23772711.247 23772712.663
+ 28.800 19.900
+ -2689010.477 4 -2095332.606 3 24086188.998 24086184.969 24086188.111
+ 28.400 19.300
+ -17127995.521 7 -13346488.131 7 20459940.539 20459937.565 20459939.546
+ 42.200 46.800
+ -1800085.032 4 -1402664.229 3 23349552.611 23349550.291 23349551.636
+ 29.900 21.100
+ -20507619.142 7 -15979960.629 7 20820410.081 20820405.270 20820409.129
+ 45.200 42.900
+ -8221845.320 5 -6406629.763 4 22974489.269 22974488.058 22974488.767
+ 33.500 28.100
+ -12598235.811 6 -9816802.080 5 22261154.215 22261152.862 22261154.170
+ 36.800 31.500
+ 06 1 2 6 28 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10448724.684 6 -8141861.871 5 22274014.928 22274013.147 22274013.926
+ 39.800 35.800
+ -13188099.021 6 -10276435.386 5 21966070.297 21966068.380 21966069.425
+ 40.900 33.600
+ -4591461.155 4 -3577756.447 3 23794298.753 23794296.742 23794298.362
+ 27.900 20.500
+ -2706219.468 4 -2108742.222 2 24082913.704 24082910.325 24082913.200
+ 28.400 12.600
+ -17142828.590 7 -13358046.367 7 20457118.192 20457114.938 20457117.192
+ 42.100 46.800
+ -1696533.203 4 -1321974.535 3 23369257.674 23369256.031 23369257.129
+ 29.200 22.100
+ -20456509.145 7 -15940134.669 7 20830135.721 20830131.215 20830134.918
+ 45.200 42.800
+ -8310902.912 5 -6476025.275 4 22957541.886 22957540.959 22957541.486
+ 32.300 28.800
+ -12668139.365 6 -9871272.362 5 22247852.811 22247850.605 22247852.248
+ 37.000 32.000
+ 06 1 2 6 29 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10516494.172 6 -8194669.261 5 22261118.550 22261117.130 22261117.646
+ 39.300 35.900
+ -13196632.811 6 -10283085.086 5 21964446.768 21964444.571 21964445.351
+ 41.000 33.400
+ -4477901.307 4 -3489268.247 3 23815908.620 23815906.378 23815907.789
+ 27.600 19.900
+ -2722909.992 4 -2121747.837 3 24079737.979 24079734.416 24079737.316
+ 28.600 18.600
+ -17157358.456 7 -13369368.345 7 20454353.343 20454350.173 20454352.264
+ 42.300 47.000
+ -1592759.947 4 -1241112.314 3 23389005.271 23389002.867 23389004.587
+ 29.000 22.600
+ -20404944.870 7 -15899954.734 7 20839947.663 20839943.597 20839947.156
+ 45.300 42.700
+ -8399705.057 5 -6545221.707 4 22940644.142 22940642.286 22940643.109
+ 32.700 27.400
+ -12737593.108 6 -9925392.127 5 22234635.647 22234634.021 22234635.173
+ 37.200 32.000
+ 06 1 2 6 29 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10584097.841 6 -8247347.440 6 22248254.089 22248252.540 22248253.193
+ 39.600 36.400
+ -13204550.820 6 -10289254.954 5 21962939.742 21962937.932 21962938.624
+ 40.900 33.600
+ -4364218.163 4 -3400683.967 3 23837541.012 23837539.995 23837540.363
+ 27.100 20.500
+ -2739081.831 4 -2134349.239 2 24076660.487 24076655.933 24076659.854
+ 29.200 12.600
+ -17171584.468 7 -13380453.548 7 20451646.112 20451643.048 20451644.996
+ 42.100 47.200
+ -1488767.821 4 -1160079.536 3 23408794.869 23408792.235 23408793.879
+ 29.700 23.800
+ -20352927.174 7 -15859421.480 7 20849846.313 20849842.341 20849845.821
+ 45.400 42.800
+ -8488250.426 5 -6614218.091 4 22923794.020 22923792.479 22923793.402
+ 32.400 27.400
+ -12806594.264 6 -9979159.240 5 22221504.783 22221503.580 22221504.705
+ 37.500 32.600
+ 06 1 2 6 30 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10651535.066 6 -8299895.918 6 22235421.152 22235419.626 22235420.166
+ 39.300 36.100
+ -13211852.520 6 -10294944.576 5 21961549.834 21961548.292 21961549.237
+ 41.300 34.000
+ -4250414.377 4 -3312005.738 4 23859197.620 23859196.396 23859196.734
+ 27.600 24.600
+ -2754734.657 4 -2146546.261 2 24073681.870 24073677.556 24073681.120
+ 27.900 13.900
+ -17185507.246 7 -13391302.466 7 20448996.764 20448993.559 20448995.759
+ 42.300 47.200
+ -1384558.325 4 -1078877.385 3 23428625.196 23428622.779 23428623.805
+ 28.100 23.400
+ -20300456.801 7 -15818535.490 7 20859831.245 20859827.085 20859830.689
+ 45.500 42.700
+ -8576537.696 5 -6683013.350 4 22906993.399 22906992.397 22906992.970
+ 33.500 29.000
+ -12875140.051 6 -10032571.510 5 22208460.921 22208459.675 22208460.727
+ 37.200 32.700
+ 06 1 2 6 30 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10718805.380 6 -8352314.334 5 22222619.946 22222618.356 22222619.203
+ 40.000 35.900
+ -13218537.291 6 -10300153.490 5 21960278.239 21960276.046 21960277.228
+ 41.100 33.900
+ -4136491.996 4 -3223235.059 3 23880876.049 23880874.819 23880875.767
+ 28.800 22.100
+ -2769868.425 4 -2158338.839 2 24070801.706 24070798.098 24070801.040
+ 27.400 17.800
+ -17199126.073 7 -13401914.538 7 20446404.901 20446402.061 20446403.971
+ 42.000 47.300
+ -1280133.269 4 -997507.281 3 23448496.751 23448494.130 23448495.414
+ 27.900 22.600
+ -20247534.182 7 -15777297.100 7 20869902.261 20869897.961 20869901.614
+ 45.600 42.500
+ -8664565.772 5 -6751606.630 4 22890242.118 22890241.035 22890241.514
+ 32.100 28.600
+ -12943227.581 6 -10085626.696 5 22195504.245 22195503.151 22195504.175
+ 37.700 32.600
+ 06 1 2 6 31 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10785908.270 6 -8404602.306 6 22209851.166 22209849.183 22209850.168
+ 40.000 36.400
+ -13224604.624 6 -10304881.275 5 21959123.797 21959121.377 21959122.614
+ 41.000 33.800
+ -4022453.584 4 -3134373.980 3 23902576.046 23902575.369 23902575.822
+ 25.900 20.500
+ -2784483.109 4 -2169726.884 2 24068020.725 24068016.801 24068019.892
+ 27.900 15.100
+ -17212440.490 7 -13412289.406 7 20443871.222 20443868.363 20443870.323
+ 42.100 47.100
+ -1175494.184 4 -915970.395 3 23468408.741 23468406.379 23468407.679
+ 28.600 22.600
+ -20194160.461 7 -15735707.191 7 20880059.038 20880054.676 20880058.355
+ 45.500 42.400
+ -8752333.341 5 -6819996.912 4 22873540.950 22873539.172 22873540.257
+ 33.100 27.400
+ -13010854.163 6 -10138322.702 5 22182636.173 22182633.995 22182635.516
+ 38.100 32.100
+ 06 1 2 6 31 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10852843.297 6 -8456759.462 6 22197113.503 22197111.955 22197112.633
+ 39.800 36.500
+ -13230053.982 6 -10309127.525 5 21958086.780 21958084.740 21958085.519
+ 41.000 34.100
+ -3908301.823 4 -3045424.510 3 23924299.351 23924296.763 23924298.584
+ 27.600 18.600
+ -2798578.514 4 -2180710.308 2 24065338.581 24065334.378 24065337.894
+ 28.100 15.100
+ -17225450.629 7 -13422427.177 7 20441395.593 20441392.508 20441394.638
+ 42.200 47.000
+ -1070642.836 4 -834268.061 3 23488361.022 23488358.380 23488360.099
+ 28.800 18.600
+ -20140336.383 7 -15693766.341 7 20890301.410 20890297.001 20890300.713
+ 45.300 42.400
+ -8839839.241 5 -6888183.323 4 22856889.010 22856887.093 22856888.349
+ 34.500 27.400
+ -13078016.981 6 -10190657.364 5 22169854.591 22169853.264 22169854.656
+ 38.400 31.800
+ 06 1 2 6 32 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10919609.941 6 -8508785.408 6 22184408.275 22184406.752 22184407.313
+ 39.400 36.800
+ -13234884.869 6 -10312891.846 5 21957167.302 21957165.792 21957166.312
+ 41.000 34.500
+ -3794038.368 4 -2956388.068 2 23946044.371 23946040.832 23946043.059
+ 28.800 17.000
+ -2812154.596 4 -2191289.081 3 24062754.856 24062751.772 24062754.335
+ 27.900 20.500
+ -17238156.022 7 -13432327.486 7 20438977.733 20438974.753 20438976.853
+ 42.200 47.100
+ -965581.353 4 -752401.991 3 23508353.472 23508351.508 23508352.624
+ 28.100 19.900
+ -20086062.884 7 -15651475.298 7 20900629.146 20900624.905 20900628.497
+ 45.400 42.300
+ -8927082.216 5 -6956164.874 4 22840287.732 22840285.437 22840286.848
+ 35.100 28.400
+ -13144713.466 6 -10242628.632 5 22157163.357 22157161.380 22157162.865
+ 38.600 32.100
+ 06 1 2 6 32 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10986207.725 6 -8560679.775 6 22171735.286 22171733.613 22171734.221
+ 39.600 37.000
+ -13239096.804 6 -10316173.869 5 21956365.683 21956363.950 21956364.972
+ 41.100 34.300
+ -3679666.013 4 -2867266.748 3 23967808.093 23967806.041 23967807.300
+ 28.100 22.600
+ -2825211.291 5 -2201463.134 3 24060270.740 24060267.327 24060270.152
+ 30.100 19.300
+ -17250556.352 7 -13441990.080 7 20436618.235 20436615.079 20436617.224
+ 42.300 47.100
+ -860311.756 4 -670373.777 3 23528385.539 23528383.381 23528384.829
+ 27.100 19.300
+ -20031340.308 7 -15608834.332 7 20911042.492 20911038.227 20911041.862
+ 45.400 42.200
+ -9014061.103 5 -7023940.616 4 22823735.668 22823734.072 22823735.059
+ 34.000 28.100
+ -13210940.713 6 -10294234.264 5 22144559.812 22144558.618 22144560.013
+ 38.200 32.000
+ 06 1 2 6 33 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11052636.082 6 -8612442.124 6 22159094.072 22159092.774 22159093.195
+ 40.300 37.100
+ -13242689.420 6 -10318973.309 5 21955682.440 21955679.898 21955681.198
+ 41.000 33.600
+ -3565187.579 4 -2778062.790 3 23989592.670 23989590.250 23989592.022
+ 25.900 19.300
+ -2837748.528 4 -2211232.405 3 24057884.829 24057881.209 24057884.130
+ 28.600 18.600
+ -17262651.523 7 -13451414.892 7 20434316.562 20434313.543 20434315.566
+ 42.000 47.200
+ -754835.139 4 -588184.242 3 23548457.631 23548455.491 23548456.461
+ 26.200 21.600
+ -19976169.548 7 -15565844.141 7 20921540.895 20921536.902 20921540.388
+ 45.300 42.200
+ -9100774.681 5 -7091509.619 4 22807234.313 22807233.153 22807233.828
+ 33.100 29.500
+ -13276696.114 6 -10345472.215 5 22132048.104 22132045.503 22132047.534
+ 38.800 31.600
+ 06 1 2 6 33 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11118894.394 6 -8664071.976 6 22146485.799 22146484.025 22146484.816
+ 40.800 36.600
+ -13245662.305 6 -10321289.837 5 21955117.067 21955114.088 21955115.602
+ 41.100 33.800
+ -3450605.526 4 -2688778.058 3 24011397.321 24011394.493 24011395.993
+ 26.800 19.300
+ -2849766.142 4 -2220596.785 3 24055597.858 24055594.706 24055597.188
+ 26.200 20.500
+ -17274441.180 6 -13460601.640 7 20432072.988 20432070.091 20432071.932
+ 41.800 47.300
+ -649153.913 4 -505835.301 3 23568568.227 23568565.803 23568567.030
+ 26.200 21.600
+ -19920551.481 7 -15522505.399 7 20932124.644 20932120.656 20932124.114
+ 45.100 42.000
+ -9187221.679 5 -7158870.877 5 22790783.815 22790782.938 22790783.352
+ 33.400 30.100
+ -13341976.869 6 -10396340.314 5 22119624.379 22119623.066 22119624.516
+ 38.800 32.100
+ 06 1 2 6 34 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11184982.244 6 -8715569.005 6 22133909.743 22133907.959 22133908.740
+ 40.700 36.400
+ -13248015.054 6 -10323123.143 5 21954668.955 21954666.687 21954667.944
+ 41.500 34.100
+ -3335921.608 4 -2599413.950 3 24033221.060 24033218.288 24033220.136
+ 28.800 18.600
+ -2861264.425 4 -2229556.489 3 24053410.106 24053406.260 24053409.548
+ 28.100 19.300
+ -17285925.191 6 -13469550.218 7 20429887.631 20429884.721 20429886.714
+ 41.900 47.300
+ -543269.982 4 -423328.372 3 23588718.009 23588714.867 23588716.426
+ 28.600 20.500
+ -19864487.200 7 -15478818.960 7 20942793.506 20942789.418 20942792.915
+ 45.100 42.000
+ -9273401.043 5 -7226023.611 4 22774384.705 22774383.392 22774384.144
+ 34.300 29.700
+ -13406780.451 6 -10446836.589 5 22107293.040 22107291.546 22107292.931
+ 38.700 33.000
+ 06 1 2 6 34 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11250899.106 6 -8766932.789 6 22121365.825 22121364.173 22121364.919
+ 40.000 36.200
+ -13249747.330 6 -10324472.967 5 21954339.102 21954337.049 21954338.074
+ 41.300 34.000
+ -3221138.034 4 -2509972.200 3 24055063.451 24055060.924 24055062.685
+ 27.400 19.900
+ -2872243.170 4 -2238111.349 3 24051320.400 24051317.732 24051319.720
+ 26.500 21.600
+ -17297103.392 7 -13478260.509 7 20427760.463 20427757.472 20427759.444
+ 42.000 47.200
+ -437185.012 4 -340664.801 3 23608905.238 23608902.217 23608903.890
+ 25.900 21.100
+ -19807977.449 7 -15434785.407 6 20953547.165 20953542.824 20953546.444
+ 45.200 41.900
+ -9359311.541 5 -7292966.833 5 22758036.490 22758035.390 22758035.855
+ 33.600 30.200
+ -13471104.157 6 -10496958.928 5 22095052.740 22095051.231 22095052.521
+ 39.100 32.700
+ 06 1 2 6 35 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11316644.499 6 -8818162.968 6 22108855.094 22108853.353 22108854.254
+ 40.900 36.500
+ -13250858.732 6 -10325338.993 5 21954127.833 21954125.486 21954126.566
+ 40.900 34.000
+ -3106257.501 4 -2420454.919 3 24076924.909 24076922.173 24076923.823
+ 27.400 21.100
+ -2882702.521 4 -2246261.540 3 24049330.035 24049326.414 24049329.385
+ 26.200 19.300
+ -17307975.489 7 -13486732.276 7 20425691.534 20425688.613 20425690.573
+ 42.000 47.100
+ -330900.862 4 -257846.044 2 23629129.889 23629127.385 23629128.727
+ 27.900 17.800
+ -19751023.047 7 -15390405.378 6 20964384.848 20964380.932 20964384.350
+ 45.100 41.800
+ -9444952.075 5 -7359699.686 5 22741739.280 22741738.590 22741738.843
+ 33.500 31.000
+ -13534945.272 6 -10546705.238 5 22082903.897 22082902.594 22082903.859
+ 38.800 33.200
+ 06 1 2 6 35 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11382217.869 6 -8869259.094 6 22096377.037 22096375.108 22096376.042
+ 40.500 36.500
+ -13251349.043 6 -10325721.052 5 21954034.545 21954032.005 21954033.391
+ 41.100 34.000
+ -2991282.469 4 -2330863.987 2 24098803.193 24098800.947 24098802.437
+ 26.800 15.100
+ -2892642.404 4 -2254006.888 3 24047438.532 24047435.653 24047437.833
+ 25.900 20.500
+ -17318541.257 6 -13494965.340 7 20423681.303 20423678.025 20423680.141
+ 41.700 47.200
+ -224418.976 4 -174873.185 3 23649391.952 23649390.549 23649391.703
+ 27.600 19.900
+ -19693625.089 7 -15345679.714 6 20975307.357 20975303.478 20975306.923
+ 45.200 41.600
+ -9530321.440 5 -7426221.235 5 22725494.209 22725493.194 22725493.692
+ 34.500 30.200
+ -13598301.198 6 -10596073.476 5 22070848.349 22070846.262 22070847.870
+ 39.500 32.800
+ 06 1 2 6 36 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11447618.695 6 -8920220.776 6 22083931.538 22083929.724 22083930.628
+ 40.700 37.200
+ -13251217.938 6 -10325618.893 5 21954059.804 21954056.880 21954058.510
+ 41.100 33.400
+ -2876214.410 3 -2241200.567 2 24120699.946 24120697.824 24120698.868
+ 23.000 16.100
+ -2902062.826 4 -2261347.464 3 24045646.052 24045642.563 24045645.464
+ 26.800 21.100
+ -17328799.917 6 -13502959.101 7 20421728.923 20421725.763 20421727.871
+ 41.900 47.200
+ -117741.387 4 -91747.835 3 23669692.417 23669690.450 23669691.783
+ 27.600 19.300
+ -19635784.392 7 -15300609.054 6 20986314.184 20986310.054 20986313.756
+ 45.100 41.400
+ -9615418.522 5 -7492530.627 5 22709301.210 22709299.565 22709300.484
+ 35.600 31.100
+ -13661169.243 6 -10645061.553 5 22058884.356 22058882.862 22058884.119
+ 39.000 32.700
+ 06 1 2 6 36 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11512846.467 6 -8971047.600 6 22071519.207 22071517.343 22071518.324
+ 41.200 36.900
+ -13250465.243 6 -10325032.375 5 21954202.662 21954200.277 21954201.629
+ 41.300 34.300
+ -2761056.983 4 -2151467.515 3 24142613.741 24142611.600 24142612.466
+ 24.200 19.300
+ -2910964.004 4 -2268283.446 3 24043952.221 24043948.804 24043951.509
+ 26.500 21.600
+ -17338752.010 6 -13510713.982 7 20419835.124 20419831.936 20419834.157
+ 41.900 47.100
+ -10870.549 4 -8471.898 3 23690029.686 23690026.936 23690028.392
+ 25.600 19.300
+ -19577501.799 7 -15255194.063 6 20997405.065 20997400.873 20997404.572
+ 45.100 41.400
+ -9700242.105 5 -7558626.908 5 22693159.510 22693158.046 22693158.773
+ 34.500 30.100
+ -13723546.798 6 -10693667.415 5 22047014.693 22047013.182 22047014.301
+ 39.200 33.400
+ 06 1 2 6 37 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11577900.538 6 -9021739.086 6 22059139.510 22059137.798 22059138.663
+ 41.000 36.800
+ -13249090.691 6 -10323961.293 5 21954464.299 21954462.046 21954463.153
+ 41.200 34.100
+ -2645811.656 3 -2061665.954 2 24164543.075 24164541.632 24164542.692
+ 22.600 17.800
+ -2919346.244 4 -2274815.064 3 24042357.706 24042353.675 24042356.889
+ 28.800 20.500
+ -17348397.005 7 -13518229.566 7 20417999.594 20417996.679 20417998.724
+ 42.100 47.300
+ 96192.432 4 74953.746 3 23710404.477 23710400.700 23710402.516
+ 25.900 19.900
+ -19518778.417 7 -15209435.592 6 21008579.490 21008575.571 21008579.208
+ 45.200 41.200
+ -9784791.145 5 -7624509.267 4 22677070.427 22677068.984 22677069.748
+ 35.300 29.700
+ -13785431.413 6 -10741889.158 5 22035237.870 22035236.887 22035237.897
+ 38.800 33.500
+ 06 1 2 6 37 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11642780.485 6 -9072294.887 6 22046793.052 22046791.669 22046792.413
+ 41.200 37.000
+ -13247094.126 6 -10322405.515 5 21954844.141 21954842.161 21954843.009
+ 41.000 34.600
+ -2530480.965 4 -1971797.889 2 24186489.573 24186488.235 24186489.422
+ 25.600 15.100
+ -2927209.588 4 -2280942.334 3 24040860.253 24040857.693 24040859.631
+ 24.200 20.500
+ -17357734.616 7 -13525505.626 7 20416222.608 20416219.881 20416221.757
+ 42.100 47.400
+ 203445.355 4 158527.407 3 23730812.377 23730810.707 23730811.671
+ 28.400 19.300
+ -19459614.942 7 -15163334.196 6 21019837.888 21019834.039 21019837.585
+ 45.200 41.100
+ -9869064.462 5 -7690176.771 5 22661033.513 22661032.428 22661033.046
+ 35.600 31.100
+ -13846820.394 6 -10789724.713 5 22023556.235 22023554.689 22023556.143
+ 39.500 33.100
+ 06 1 2 6 38 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11707485.771 6 -9122714.584 6 22034480.407 22034478.574 22034479.592
+ 41.400 37.200
+ -13244475.325 6 -10320364.889 5 21955342.633 21955340.648 21955341.409
+ 41.000 34.800
+ -2415066.974 4 -1881864.871 1 24208452.846 24208450.825 24208452.182
+ 26.200 11.000
+ -2934554.007 4 -2286665.243 3 24039462.907 24039460.355 24039462.288
+ 25.900 22.600
+ -17366764.715 7 -13532542.066 7 20414504.545 20414501.489 20414503.531
+ 42.000 47.300
+ 310886.413 4 242247.678 3 23751255.784 23751255.292 23751256.644
+ 26.800 19.300
+ -19400012.436 7 -15116890.700 6 21031179.920 21031176.036 21031179.658
+ 45.300 41.100
+ -9953060.920 5 -7755628.519 5 22645049.840 22645048.300 22645049.029
+ 34.900 31.000
+ -13907711.257 6 -10837172.117 5 22011969.454 22011967.291 22011968.849
+ 39.100 32.400
+ 06 1 2 6 38 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11772015.676 6 -9172997.621 6 22022201.432 22022199.188 22022200.298
+ 41.500 37.700
+ -13241234.209 6 -10317839.346 5 21955958.904 21955957.383 21955957.826
+ 40.800 34.800
+ -2299571.802 4 -1791868.623 3 24230430.798 24230429.282 24230429.949
+ 27.600 20.500
+ -2941379.993 4 -2291984.214 3 24038164.551 24038160.890 24038163.799
+ 27.100 21.600
+ -17375486.708 6 -13539338.425 7 20412844.622 20412841.704 20412843.694
+ 41.900 47.300
+ 418513.835 4 326113.160 3 23771736.820 23771736.839 23771737.208
+ 24.900 18.600
+ -19339972.083 7 -15070106.031 6 21042605.704 21042601.408 21042605.091
+ 45.200 41.100
+ -10036779.475 5 -7820863.742 5 22629118.590 22629116.948 22629117.930
+ 34.900 30.200
+ -13968101.383 6 -10884229.362 5 22000477.120 22000475.087 22000476.995
+ 39.700 32.600
+ 06 1 2 6 39 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11836369.725 6 -9223143.636 6 22009954.990 22009952.719 22009954.021
+ 41.900 36.800
+ -13237370.591 6 -10314828.727 5 21956693.876 21956692.372 21956692.870
+ 40.800 34.800
+ -2183997.732 4 -1701810.920 3 24252424.056 24252422.306 24252422.838
+ 26.200 19.300
+ -2947687.563 4 -2296899.212 3 24036964.370 24036961.004 24036963.737
+ 28.600 23.800
+ -17383900.466 6 -13545894.601 7 20411243.692 20411240.589 20411242.630
+ 41.900 47.400
+ 526325.687 4 410122.344 2 23792255.180 23792252.502 23792253.661
+ 25.300 17.800
+ -19279494.525 7 -15022980.691 6 21054113.963 21054110.037 21054113.550
+ 45.200 41.200
+ -10120218.969 5 -7885881.499 5 22613240.170 22613238.953 22613239.742
+ 34.800 30.400
+ -14027988.309 6 -10930894.494 5 21989081.418 21989079.190 21989080.896
+ 39.700 32.700
+ 06 1 2 6 39 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11900547.395 6 -9273152.209 6 21997742.083 21997740.161 21997741.096
+ 41.200 37.300
+ -13232884.449 6 -10311333.033 5 21957547.497 21957546.183 21957546.680
+ 41.100 34.400
+ -2068347.399 3 -1611693.766 3 24274431.802 24274429.841 24274430.699
+ 23.800 19.900
+ -2953476.807 4 -2301410.310 3 24035861.904 24035859.044 24035861.373
+ 26.800 21.600
+ -17392005.943 6 -13552210.556 7 20409701.139 20409698.228 20409700.177
+ 41.900 47.400
+ 634320.094 4 494273.759 3 23812806.556 23812803.327 23812804.851
+ 26.800 19.300
+ -19218580.896 7 -14975515.543 6 21065705.751 21065701.427 21065705.167
+ 45.500 40.900
+ -10203378.336 5 -7950680.984 5 22597415.619 22597414.457 22597415.089
+ 35.400 31.600
+ -14087369.573 6 -10977165.583 5 21977781.447 21977779.313 21977781.200
+ 40.000 32.800
+ 06 1 2 6 40 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11964548.148 6 -9323022.925 6 21985563.204 21985561.291 21985562.268
+ 41.600 37.200
+ -13227775.761 6 -10307352.240 5 21958520.377 21958518.241 21958519.178
+ 41.200 34.500
+ -1952622.765 3 -1521518.744 2 24296452.341 24296450.521 24296451.882
+ 23.000 13.900
+ -2958748.403 4 -2305518.043 3 24034859.276 24034856.005 24034858.679
+ 25.600 21.600
+ -17399802.849 6 -13558286.066 7 20408217.392 20408214.488 20408216.414
+ 41.900 47.300
+ 742495.228 4 578566.017 3 23833388.865 23833388.676 23833389.308
+ 27.100 19.300
+ -19157232.326 7 -14927711.489 6 21077379.599 21077375.596 21077379.205
+ 45.100 40.900
+ -10286256.512 5 -8015261.355 5 22581644.929 22581643.186 22581643.922
+ 35.500 31.800
+ -14146242.583 6 -11023040.643 5 21966577.609 21966576.262 21966577.641
+ 39.500 32.800
+ 06 1 2 6 40 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12028371.464 6 -9372755.370 6 21973418.042 21973416.234 21973417.029
+ 41.600 37.800
+ -13222044.475 6 -10302886.300 5 21959610.936 21959608.694 21959609.789
+ 41.000 34.100
+ -1836826.420 3 -1431287.836 3 24318488.169 24318486.489 24318487.350
+ 23.400 19.300
+ -2963502.265 4 -2309222.343 3 24033954.157 24033951.458 24033953.656
+ 24.900 22.100
+ -17407290.886 6 -13564120.903 7 20406792.461 20406789.537 20406791.516
+ 41.900 47.300
+ 850848.847 4 662997.356 2 23854008.368 23854007.557 23854008.207
+ 24.600 17.800
+ -19095449.747 7 -14879569.237 6 21089136.506 21089132.556 21089136.089
+ 45.200 41.000
+ -10368852.428 5 -8079621.772 5 22565927.247 22565925.563 22565926.525
+ 35.800 31.600
+ -14204605.029 6 -11068517.862 5 21955472.565 21955470.306 21955472.018
+ 39.800 33.400
+ 06 1 2 6 41 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12092016.685 6 -9422349.045 6 21961306.485 21961304.977 21961305.649
+ 41.400 38.200
+ -13215690.547 6 -10297935.183 5 21960820.174 21960817.782 21960818.912
+ 41.300 34.400
+ -1720960.352 3 -1341002.599 2 24340536.884 24340534.808 24340535.581
+ 23.400 15.100
+ -2967738.788 3 -2312523.513 3 24033148.188 24033144.643 24033147.188
+ 23.400 19.300
+ -17414469.705 6 -13569714.789 7 20405426.460 20405423.480 20405425.436
+ 41.800 47.300
+ 959379.569 4 747566.712 3 23874661.743 23874660.308 23874661.707
+ 26.800 19.300
+ -19033234.168 7 -14831089.580 6 21100976.015 21100971.732 21100975.468
+ 45.400 40.600
+ -10451164.973 6 -8143761.398 5 22550263.349 22550261.925 22550262.814
+ 36.200 31.300
+ -14262454.244 6 -11113595.163 5 21944463.412 21944461.946 21944463.441
+ 39.800 33.100
+ 06 1 2 6 41 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12155483.372 7 -9471803.597 6 21949229.503 21949227.728 21949228.578
+ 42.000 38.100
+ -13208713.948 6 -10292498.865 5 21962147.414 21962145.472 21962146.489
+ 41.300 34.300
+ -1605026.634 4 -1250664.605 3 24362597.670 24362596.519 24362597.101
+ 24.200 19.300
+ -2971458.223 4 -2315421.780 3 24032440.739 24032437.497 24032440.286
+ 29.000 22.100
+ -17421339.235 6 -13575067.669 7 20404119.275 20404116.237 20404118.230
+ 41.700 47.300
+ 1068085.267 4 832272.409 3 23895349.605 23895346.901 23895347.635
+ 25.600 21.100
+ -18970586.674 7 -14782273.374 6 21112897.135 21112893.144 21112896.835
+ 45.000 40.300
+ -10533193.077 6 -8207679.383 5 22534654.162 22534652.598 22534653.535
+ 36.200 31.800
+ -14319787.778 6 -11158270.635 5 21933553.874 21933551.701 21933553.443
+ 40.000 33.800
+ 06 1 2 6 42 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12218770.822 6 -9521118.495 6 21937186.149 21937184.357 21937185.318
+ 41.900 38.000
+ -13201114.838 6 -10286577.484 5 21963593.464 21963591.594 21963592.485
+ 41.000 34.600
+ -1489027.169 3 -1160275.417 2 24384673.165 24384670.441 24384671.972
+ 23.400 16.100
+ -2974660.840 4 -2317917.322 3 24031831.431 24031828.019 24031830.574
+ 27.400 19.900
+ -17427899.193 6 -13580179.328 7 20402870.686 20402867.967 20402869.854
+ 41.800 47.400
+ 1176964.187 4 917113.055 2 23916068.538 23916065.266 23916066.942
+ 24.600 13.900
+ -18907508.342 7 -14733121.448 6 21124900.741 21124896.461 21124900.283
+ 45.200 40.500
+ -10614935.677 5 -8271374.888 5 22519098.776 22519097.544 22519098.221
+ 35.700 32.300
+ -14376603.383 6 -11202542.519 5 21922742.107 21922740.083 21922741.667
+ 39.800 33.600
+ 06 1 2 6 42 30.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12281878.544 6 -9570293.341 6 21925177.222 21925175.329 21925176.305
+ 41.900 38.100
+ -13192893.290 6 -10280171.084 5 21965158.013 21965155.936 21965156.955
+ 41.100 33.800
+ -1372964.755 4 -1069837.194 3 24406758.683 24406756.686 24406757.712
+ 25.600 18.600
+ -2977347.240 4 -2320010.636 3 24031320.027 24031316.553 24031319.503
+ 26.800 21.100
+ -17434149.072 6 -13585049.364 7 20401681.534 20401678.693 20401680.516
+ 41.600 47.400
+ 1286013.894 3 1002086.809 3 23936817.994 23936817.160 23936817.525
+ 21.600 18.600
+ -18844000.677 7 -14683634.972 6 21136985.797 21136981.704 21136985.408
+ 45.100 40.400
+ -10696391.764 6 -8334847.126 5 22503598.364 22503596.931 22503597.553
+ 36.000 32.100
+ -14432898.600 6 -11246408.915 5 21912029.274 21912027.751 21912028.996
+ 40.100 34.400
+ 06 1 2 6 43 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12344805.846 7 -9619327.601 6 21913202.350 21913200.738 21913201.560
+ 42.300 38.200
+ -13184049.369 6 -10273279.709 5 21966840.679 21966838.778 21966839.777
+ 40.900 34.100
+ -2979517.710 4 -2321701.898 3 24030906.765 24030903.993 24030905.949
+ 25.600 21.600
+ -17440089.138 6 -13589677.992 7 20400551.350 20400548.301 20400550.350
+ 41.900 47.400
+ 1395233.171 4 1087192.691 2 23957601.830 23957600.947 23957601.313
+ 24.900 13.900
+ -18780064.276 7 -14633814.421 6 21149152.367 21149148.449 21149152.025
+ 45.000 40.300
+ -10777560.372 6 -8398095.366 5 22488152.672 22488150.769 22488152.025
+ 37.200 31.500
+ -14488671.004 6 -11289867.908 5 21901416.243 21901414.474 21901415.849
+ 40.100 34.400
+ 06 1 2 6 43 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -12407552.342 7 -9668220.974 6 21901262.236 21901260.589 21901261.281
+ 42.200 38.100
+ -13174583.205 6 -10265903.475 5 21968642.892 21968640.497 21968641.485
+ 40.800 34.000
+ -2981172.536 4 -2322991.386 3 24030591.656 24030588.637 24030591.031
+ 24.900 20.500
+ -17445718.632 6 -13594064.614 7 20399480.046 20399476.961 20399479.059
+ 41.900 47.400
+ 1504619.357 4 1172428.672 2 23978417.799 23978416.049 23978417.011
+ 25.600 15.100
+ -18715700.322 7 -14583660.711 6 21161400.529 21161396.469 21161400.117
+ 45.000 39.700
+ -10858440.435 6 -8461118.778 5 22472761.703 22472759.677 22472760.924
+ 36.500 31.500
+ -14543918.272 6 -11332917.718 5 21890902.533 21890901.293 21890902.634
+ 40.500 34.300
+ 06 1 2 6 44 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12470117.282 7 -9716972.874 6 21889356.446 21889354.764 21889355.592
+ 42.200 38.400
+ -13164495.025 6 -10258042.565 5 21970562.129 21970560.324 21970560.883
+ 40.900 34.100
+ -2982312.384 4 -2323879.543 4 24030375.608 24030372.213 24030374.649
+ 26.500 24.900
+ -17451037.584 6 -13598209.253 7 20398467.718 20398464.829 20398466.829
+ 41.900 47.400
+ 1614171.242 4 1257793.710 2 23999266.189 23999263.263 23999264.669
+ 24.600 13.900
+ -18650910.086 7 -14533174.835 6 21173729.596 21173725.877 21173729.162
+ 44.700 40.200
+ -10939030.866 6 -8523916.485 5 22457425.425 22457423.901 22457424.796
+ 36.300 31.800
+ -14598637.932 6 -11375556.404 5 21880489.875 21880488.500 21880489.745
+ 40.600 34.500
+ 06 1 2 6 44 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -12532500.058 7 -9765582.832 6 21877485.480 21877483.737 21877484.533
+ 42.300 38.400
+ -13153784.984 6 -10249697.072 5 21972599.787 21972598.314 21972598.734
+ 40.600 34.300
+ -2982937.378 4 -2324366.597 3 24030255.720 24030252.855 24030255.071
+ 25.600 21.600
+ -17456045.716 6 -13602111.699 7 20397514.893 20397511.919 20397513.847
+ 41.900 47.400
+ 1723886.639 4 1343286.168 2 24020145.004 24020142.090 24020142.601
+ 24.200 17.800
+ -18585694.578 7 -14482357.583 6 21186139.791 21186135.965 21186139.197
+ 44.400 40.200
+ -11019330.708 6 -8586487.758 5 22442145.064 22442143.485 22442144.353
+ 36.900 32.600
+ -14652827.940 6 -11417782.365 5 21870178.327 21870176.312 21870177.790
+ 40.400 34.600
+ 06 1 2 6 45 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12594700.130 7 -9814050.413 6 21865649.023 21865647.497 21865648.355
+ 42.600 38.800
+ -13142453.254 6 -10240867.149 5 21974756.528 21974754.411 21974755.373
+ 40.600 33.900
+ -2983048.060 4 -2324452.838 3 24030235.059 24030232.136 24030234.291
+ 24.600 22.100
+ -17460742.778 6 -13605771.744 7 20396620.930 20396618.039 20396619.955
+ 41.900 47.400
+ 1833763.791 4 1428904.660 1 24041053.153 24041049.754 24041051.783
+ 24.600 9.000
+ -18520055.118 7 -14431209.979 6 21198631.024 21198626.860 21198630.298
+ 44.700 40.100
+ -11099339.047 6 -8648831.898 5 22426920.389 22426918.465 22426919.563
+ 36.900 32.600
+ -14706485.675 6 -11459593.579 5 21859967.291 21859965.764 21859967.044
+ 40.300 34.700
+ 06 1 2 6 45 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -12656716.837 7 -9862375.116 6 21853848.045 21853846.017 21853847.091
+ 42.900 38.600
+ -13130500.092 6 -10231552.998 5 21977031.155 21977028.907 21977030.063
+ 41.000 33.900
+ -2982645.162 4 -2324138.880 3 24030311.324 24030308.313 24030311.046
+ 25.300 20.500
+ -17465128.481 7 -13609189.180 7 20395786.318 20395783.339 20395785.422
+ 42.000 47.200
+ 1943800.671 3 1514647.691 3 24061990.532 24061989.689 24061990.794
+ 23.400 18.600
+ -18453992.896 7 -14379732.934 6 21211202.316 21211197.933 21211201.508
+ 44.800 39.900
+ -11179054.791 6 -8710948.039 5 22411750.728 22411748.951 22411749.921
+ 36.700 32.100
+ -14759608.976 6 -11500988.348 5 21849858.236 21849856.449 21849858.011
+ 40.300 34.100
+ 06 1 2 6 46 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12718549.721 7 -9910556.583 6 21842081.237 21842079.525 21842080.445
+ 42.500 38.600
+ -13117925.805 6 -10221754.849 5 21979424.446 21979421.653 21979423.126
+ 40.700 33.800
+ -2981729.007 4 -2323424.990 3 24030486.251 24030482.921 24030485.361
+ 25.900 22.600
+ -17469202.342 6 -13612363.623 7 20395011.177 20395008.213 20395010.193
+ 41.800 47.400
+ 2053995.165 3 1600513.448 2 24082960.516 24082959.129 24082959.997
+ 21.100 12.600
+ -18387509.003 7 -14327927.302 6 21223853.621 21223849.383 21223852.854
+ 44.500 39.900
+ -11258477.014 6 -8772835.473 5 22396637.066 22396635.532 22396636.419
+ 37.100 32.600
+ -14812195.544 6 -11541964.885 5 21839851.587 21839849.594 21839851.161
+ 40.700 34.300
+ 06 1 2 6 46 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -12780198.146 7 -9958594.313 6 21830350.342 21830348.492 21830349.301
+ 42.500 39.100
+ -13104730.668 6 -10211472.922 5 21981934.598 21981932.715 21981933.681
+ 40.700 34.000
+ -2980300.004 4 -2322311.495 3 24030758.170 24030754.608 24030757.325
+ 25.300 21.100
+ -17472964.552 6 -13615295.216 7 20394295.229 20394292.319 20394294.193
+ 41.800 47.400
+ 2164345.681 4 1686500.810 2 24103961.235 24103958.120 24103959.517
+ 24.200 16.100
+ -18320604.488 7 -14275793.913 6 21236584.955 21236580.950 21236584.339
+ 44.600 39.900
+ -11337604.638 6 -8834493.337 5 22381579.340 22381578.090 22381578.724
+ 37.100 33.100
+ -14864243.156 6 -11582521.450 5 21829947.217 21829945.336 21829946.864
+ 40.700 34.700
+ 06 1 2 6 47 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12841661.570 7 -10006487.878 6 21818654.093 21818652.232 21818653.219
+ 42.700 39.000
+ -13090914.944 6 -10200707.410 5 21984564.054 21984561.657 21984562.817
+ 40.600 33.500
+ -2978358.869 4 -2320798.941 3 24031127.323 24031124.480 24031126.666
+ 27.400 23.400
+ -17476414.829 6 -13617983.746 7 20393638.613 20393635.759 20393637.645
+ 41.600 47.400
+ 2274850.271 3 1772608.204 3 24124989.368 24124986.188 24124987.469
+ 22.600 18.600
+ -18253280.744 7 -14223333.862 6 21249396.245 21249392.114 21249395.623
+ 44.600 39.700
+ -11416436.743 6 -8895920.918 5 22366577.962 22366576.489 22366577.425
+ 37.200 32.100
+ -14915749.535 6 -11622656.272 5 21820145.754 21820144.085 21820145.490
+ 40.500 34.700
+ 06 1 2 6 47 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -12902939.361 7 -10054236.807 6 21806993.408 21806991.242 21806992.335
+ 42.500 38.700
+ -13076479.039 6 -10189458.661 5 21987310.894 21987308.490 21987309.767
+ 40.500 33.200
+ -2975906.138 4 -2318887.715 3 24031594.375 24031590.864 24031593.608
+ 26.800 19.900
+ -17479552.651 6 -13620428.803 7 20393041.506 20393038.679 20393040.535
+ 41.400 47.400
+ 2385506.379 3 1858833.670 2 24146045.638 24146043.935 24146045.149
+ 23.800 17.000
+ -18185538.879 7 -14170548.020 6 21262287.275 21262283.053 21262286.541
+ 44.600 39.800
+ -11494972.432 6 -8957117.548 5 22351633.324 22351631.705 22351632.674
+ 38.200 33.000
+ -14966712.499 6 -11662367.656 5 21810447.901 21810446.147 21810447.542
+ 40.500 34.700
+ 06 1 2 6 48 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12964030.891 7 -10101840.595 6 21795367.865 21795366.143 21795366.957
+ 42.800 39.400
+ -13061423.327 6 -10177726.938 5 21990176.104 21990173.668 21990174.944
+ 40.900 33.100
+ -2972942.405 4 -2316578.311 3 24032158.080 24032154.052 24032157.400
+ 26.500 19.900
+ -17482377.800 6 -13622630.217 7 20392504.012 20392501.077 20392502.993
+ 41.400 47.400
+ 2496312.704 3 1945176.215 2 24167130.474 24167129.802 24167130.925
+ 20.500 12.600
+ -18117380.430 7 -14117437.559 6 21275257.394 21275253.304 21275256.684
+ 44.400 39.900
+ -11573210.669 6 -9018082.373 5 22336745.183 22336743.717 22336744.527
+ 38.300 33.400
+ -15017129.896 6 -11701653.921 5 21800853.503 21800851.841 21800853.250
+ 40.500 34.700
+ 06 1 2 6 48 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13024935.532 7 -10149298.750 6 21783778.379 21783776.411 21783777.284
+ 42.900 39.700
+ -13045748.259 6 -10165512.590 5 21993158.835 21993156.716 21993157.865
+ 41.100 34.000
+ -2969468.335 3 -2313871.242 3 24032818.766 24032816.020 24032817.900
+ 23.400 19.300
+ -17484890.139 6 -13624587.886 7 20392025.981 20392022.943 20392024.923
+ 41.500 47.400
+ 2607266.922 3 2031633.981 2 24188246.121 24188243.612 24188244.752
+ 22.100 17.000
+ -18048806.242 7 -14064003.155 6 21288306.649 21288302.521 21288305.873
+ 44.400 39.600
+ -11651150.571 6 -9078814.736 5 22321913.818 22321912.136 22321912.859
+ 37.800 33.600
+ -15066999.543 6 -11740513.384 5 21791363.791 21791362.015 21791363.522
+ 40.700 34.900
+ 06 1 2 6 49 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13085652.696 7 -10196610.826 6 21772224.226 21772222.191 21772223.297
+ 43.300 39.400
+ -13029454.127 6 -10152815.866 5 21996259.449 21996257.358 21996258.362
+ 40.900 33.800
+ -2965484.420 4 -2310766.885 3 24033577.315 24033573.907 24033576.640
+ 26.800 21.600
+ -17487089.338 6 -13626301.548 7 20391607.418 20391604.516 20391606.382
+ 41.500 47.300
+ 2718367.570 3 2118205.815 2 24209387.830 24209385.955 24209386.090
+ 23.000 17.800
+ -17979817.728 7 -14010245.889 6 21301434.545 21301430.513 21301433.976
+ 44.300 39.300
+ -11728791.171 6 -9139313.874 5 22307138.932 22307137.233 22307138.388
+ 38.200 32.600
+ -15116319.142 6 -11778944.229 5 21781978.895 21781977.000 21781978.364
+ 41.000 35.200
+ 06 1 2 6 49 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13146181.711 7 -10243776.292 6 21760705.657 21760704.123 21760704.724
+ 42.800 39.500
+ -13012541.480 6 -10139637.181 5 21999477.769 21999475.785 21999476.838
+ 41.100 34.000
+ -2960991.344 4 -2307265.798 3 24034432.046 24034429.247 24034431.543
+ 26.500 22.100
+ -17488975.355 6 -13627771.173 7 20391248.489 20391245.627 20391247.455
+ 41.600 47.400
+ 2829612.404 3 2204890.009 3 24230556.391 24230554.861 24230555.371
+ 23.800 18.600
+ -17910416.152 7 -13956166.762 6 21314641.338 21314637.195 21314640.671
+ 44.100 39.300
+ -11806131.553 6 -9199579.101 5 22292422.152 22292419.882 22292421.331
+ 38.500 32.800
+ -15165086.778 6 -11816944.972 5 21772698.466 21772696.841 21772698.256
+ 41.200 35.400
+ 06 1 2 6 50 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13206521.988 7 -10290794.683 6 21749223.131 21749221.710 21749222.344
+ 43.100 39.400
+ -12995010.743 6 -10125976.863 5 22002814.306 22002811.820 22002813.075
+ 40.900 33.900
+ -2955989.969 4 -2303368.616 3 24035383.998 24035380.798 24035383.422
+ 26.500 19.900
+ -17490547.776 6 -13628996.434 7 20390949.264 20390946.222 20390948.200
+ 41.500 47.100
+ 2940999.570 4 2291685.144 1 24251751.909 24251750.439 24251752.077
+ 25.900 9.000
+ -17840603.051 7 -13901766.959 6 21327926.402 21327922.341 21327925.661
+ 44.000 39.100
+ -11883170.812 6 -9259609.661 5 22277761.730 22277760.055 22277761.019
+ 37.600 33.500
+ -15213300.130 6 -11854513.808 5 21763523.746 21763522.011 21763523.403
+ 41.300 35.200
+ 06 1 2 6 50 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13266672.983 7 -10337665.587 6 21737776.982 21737775.321 21737776.235
+ 43.600 39.600
+ -12976862.443 6 -10111835.333 5 22006267.623 22006265.117 22006266.458
+ 40.800 34.100
+ -2950480.995 4 -2299075.926 3 24036432.552 24036429.357 24036431.839
+ 28.100 20.500
+ -17491806.395 6 -13629977.175 7 20390709.804 20390706.631 20390708.786
+ 41.700 47.100
+ 3052527.044 3 2378589.674 1 24272975.820 24272973.756 24272974.532
+ 22.600 11.000
+ -17770379.592 7 -13847047.409 6 21341289.501 21341285.388 21341288.891
+ 44.300 39.100
+ -11959908.142 6 -9319404.961 5 22263159.245 22263157.134 22263158.627
+ 39.000 33.500
+ -15260957.173 6 -11891649.151 5 21754454.935 21754453.071 21754454.611
+ 41.100 34.700
+ 06 1 2 6 51 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13326634.075 7 -10384388.516 6 21726366.592 21726365.317 21726365.724
+ 43.100 40.000
+ -12958097.197 6 -10097213.063 5 22009838.160 22009836.053 22009837.057
+ 40.800 34.000
+ -2944464.574 4 -2294387.825 2 24037576.967 24037573.507 24037576.334
+ 25.600 17.800
+ -17492750.902 6 -13630713.159 7 20390530.037 20390526.978 20390529.022
+ 41.800 47.000
+ 3164192.947 3 2465601.994 1 24294226.104 24294223.200 24294224.705
+ 22.100 6.500
+ -17699746.939 7 -13792009.002 6 21354730.226 21354726.347 21354729.777
+ 44.200 39.100
+ -12036342.555 6 -9378964.234 5 22248614.197 22248612.304 22248613.572
+ 39.400 34.300
+ -15308055.891 6 -11928349.432 5 21745492.419 21745490.252 21745491.981
+ 41.100 34.600
+ 06 1 2 6 51 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13386404.553 7 -10430962.906 6 21714992.751 21714991.118 21714991.876
+ 43.100 39.500
+ -12938715.420 6 -10082110.375 5 22013526.274 22013524.493 22013525.214
+ 40.500 34.700
+ -2937941.850 4 -2289305.164 3 24038818.555 24038815.108 24038817.983
+ 26.200 19.900
+ -17493380.971 6 -13631204.121 7 20390410.194 20390407.121 20390409.218
+ 41.800 47.100
+ 3275994.922 3 2552720.364 2 24315500.337 24315498.800 24315499.528
+ 23.400 15.100
+ -17628706.539 7 -13736652.867 6 21368248.706 21368245.049 21368248.309
+ 44.000 39.400
+ -12112473.179 6 -9438286.780 5 22234126.615 22234125.112 22234126.086
+ 38.900 34.300
+ -15354594.242 6 -11964613.068 5 21736636.177 21736634.265 21736636.008
+ 41.200 34.500
+ 06 1 2 6 52 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13445983.667 7 -10477388.192 6 21703655.443 21703653.493 21703654.410
+ 43.400 39.700
+ -12918717.793 6 -10066527.804 5 22017332.104 22017330.132 22017330.929
+ 40.700 34.400
+ -2930913.560 4 -2283828.613 3 24040156.148 24040152.709 24040155.266
+ 25.300 19.900
+ -17493696.312 6 -13631449.843 7 20390350.367 20390347.126 20390349.306
+ 41.900 47.100
+ 3387931.151 3 2639943.378 2 24336800.310 24336800.080 24336800.382
+ 22.100 12.600
+ -17557259.709 7 -13680980.027 6 21381844.716 21381840.851 21381844.230
+ 44.200 39.300
+ -12188299.072 6 -9497371.874 5 22219697.740 22219695.504 22219697.022
+ 38.400 33.900
+ -15400570.183 6 -12000438.457 5 21727887.651 21727885.351 21727887.183
+ 41.400 34.600
+ 06 1 2 6 52 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13505370.902 7 -10523663.960 6 21692354.100 21692352.589 21692353.225
+ 43.200 40.000
+ -12898104.930 6 -10050465.835 5 22021254.497 22021252.578 22021253.336
+ 40.300 34.400
+ -2923380.609 4 -2277958.777 3 24041589.013 24041586.360 24041588.411
+ 26.200 19.900
+ -17493697.067 6 -13631450.434 7 20390349.978 20390347.057 20390348.981
+ 41.700 47.200
+ 3500000.066 3 2727269.761 2 24358127.529 24358126.401 24358126.686
+ 21.600 15.100
+ -17485407.540 7 -13624991.348 6 21395517.515 21395513.900 21395517.183
+ 44.000 39.100
+ -12263819.434 6 -9556218.906 5 22205326.929 22205324.673 22205326.098
+ 39.000 34.000
+ -15445981.649 6 -12035823.998 5 21719246.159 21719243.784 21719245.732
+ 41.800 34.700
+ 06 1 2 6 53 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13564565.574 7 -10569789.674 6 21681089.747 21681088.370 21681088.961
+ 43.400 40.200
+ -12876877.400 6 -10033924.901 5 22025293.466 22025292.088 22025292.524
+ 40.300 34.400
+ -2915343.533 4 -2271696.130 2 24043118.850 24043115.592 24043118.263
+ 27.600 17.800
+ -17493382.746 6 -13631205.503 7 20390409.854 20390406.790 20390408.856
+ 41.900 47.300
+ 3612199.400 3 2814697.721 3 24379478.845 24379477.189 24379476.691
+ 18.600 18.600
+ -17413151.945 7 -13568688.294 6 21409266.949 21409263.550 21409266.761
+ 43.800 38.800
+ -12339033.371 6 -9614827.147 5 22191013.794 22191012.092 22191013.162
+ 39.000 34.700
+ -15490826.626 6 -12070768.118 5 21710712.002 21710710.177 21710711.955
+ 41.800 34.600
+ 06 1 2 6 53 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13623567.018 7 -10615764.820 6 21669862.321 21669860.655 21669861.483
+ 43.600 40.300
+ -12855035.875 6 -10016905.535 5 22029450.125 22029448.323 22029448.935
+ 40.400 34.100
+ -2906803.326 4 -2265041.421 2 24044743.586 24044740.266 24044743.051
+ 27.100 16.100
+ -17492753.120 6 -13630714.885 7 20390529.684 20390526.532 20390528.668
+ 41.600 47.100
+ 3724527.191 2 2902225.797 2 24400852.018 24400852.113 24400851.700
+ 16.100 16.100
+ -17340494.031 7 -13512071.757 6 21423093.721 21423089.980 21423093.313
+ 43.700 38.600
+ -12413939.990 6 -9673195.928 5 22176759.695 22176757.870 22176759.024
+ 39.200 35.400
+ -15535103.160 7 -12105269.304 5 21702286.601 21702284.587 21702286.405
+ 42.100 34.400
+ 06 1 2 6 54 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13682374.470 7 -10661588.802 6 21658671.739 21658669.818 21658670.837
+ 43.700 40.200
+ -12832581.133 6 -9999408.326 5 22033723.007 22033721.176 22033722.101
+ 40.800 34.000
+ -2897760.874 4 -2257995.344 3 24046464.771 24046461.505 24046464.122
+ 26.500 20.500
+ -17491808.124 6 -13629978.525 7 20390709.570 20390706.467 20390708.479
+ 41.700 47.200
+ 3836981.745 3 2989852.598 2 24422252.352 24422251.645 24422251.464
+ 21.100 15.100
+ -17267434.979 7 -13455142.639 6 21436996.166 21436992.693 21436995.964
+ 43.700 38.600
+ -12488538.488 6 -9731324.619 5 22162564.082 22162562.247 22162563.278
+ 39.600 35.200
+ -15578809.425 7 -12139326.119 5 21693969.707 21693967.553 21693969.406
+ 42.100 34.600
+ 06 1 2 6 54 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13740987.299 7 -10707261.131 6 21647518.131 21647516.015 21647517.147
+ 43.500 39.800
+ -12809513.757 6 -9981433.746 5 22038112.916 22038110.770 22038111.867
+ 40.800 34.100
+ -2888217.053 4 -2250558.626 2 24048281.352 24048277.494 24048280.575
+ 27.900 13.900
+ -17490547.220 6 -13628996.000 7 20390949.354 20390946.528 20390948.370
+ 41.800 47.300
+ 3949560.925 3 3077576.584 3 24443676.815 24443674.651 24443675.378
+ 21.100 18.600
+ -17193976.349 7 -13397902.169 6 21450974.629 21450971.271 21450974.505
+ 43.200 38.400
+ -12562827.865 6 -9789212.431 5 22148427.152 22148425.371 22148426.356
+ 39.100 35.300
+ -15621943.368 6 -12172936.978 5 21685761.651 21685759.555 21685761.117
+ 41.700 35.200
+ 06 1 2 6 55 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13799404.938 7 -10752781.371 6 21636401.654 21636399.543 21636400.713
+ 43.800 39.800
+ -12785834.500 6 -9962982.374 5 22042619.217 22042616.712 22042617.968
+ 40.600 34.100
+ -2878172.584 4 -2242731.766 2 24050192.231 24050188.550 24050191.445
+ 25.900 17.000
+ -17488970.186 6 -13627767.137 7 20391249.422 20391246.505 20391248.519
+ 41.700 47.200
+ 4062262.671 3 3165396.051 2 24465122.973 24465120.578 24465121.585
+ 19.900 13.900
+ -17120119.507 7 -13340351.404 6 21465029.242 21465025.810 21465029.032
+ 43.400 38.000
+ -12636807.622 6 -9846858.976 5 22134349.301 22134347.544 22134348.615
+ 39.500 35.500
+ -15664503.190 6 -12206100.482 5 21677662.686 21677660.838 21677662.238
+ 41.800 35.200
+ 06 1 2 6 55 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13857626.767 7 -10798149.024 6 21625322.232 21625320.535 21625321.274
+ 43.600 40.600
+ -12761544.159 6 -9944054.838 5 22047241.144 22047239.036 22047240.052
+ 40.700 34.400
+ -2867628.401 4 -2234515.537 2 24052198.749 24052195.460 24052198.176
+ 27.900 17.000
+ -17487076.732 6 -13626291.718 7 20391609.913 20391606.812 20391608.928
+ 41.900 47.300
+ 4175085.043 3 3253309.595 1 24486591.123 24486590.322 24486591.021
+ 22.600 11.000
+ -17045866.064 7 -13282491.593 6 21479159.891 21479155.950 21479159.227
+ 43.400 38.400
+ -12710476.769 6 -9904263.493 5 22120330.672 22120328.576 22120330.065
+ 40.000 35.500
+ -15706486.929 6 -12238815.070 5 21669673.094 21669671.753 21669672.819
+ 41.600 35.500
+ 06 1 2 6 56 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13915652.025 7 -10843363.509 6 21614280.434 21614278.565 21614279.561
+ 44.100 40.000
+ -12736643.509 6 -9924651.732 5 22051979.326 22051977.333 22051978.283
+ 40.600 33.800
+ -2856585.456 4 -2225910.626 2 24054299.843 24054296.447 24054299.168
+ 27.100 17.000
+ -17484866.931 6 -13624569.791 7 20392030.339 20392027.434 20392029.369
+ 41.900 47.300
+ 4288026.044 3 3341315.513 1 24508083.650 24508082.733 24508083.284
+ 22.600 9.000
+ -16971217.398 7 -13224323.821 6 21493365.039 21493361.136 21493364.331
+ 43.100 38.100
+ -12783834.499 6 -9961425.347 6 22106371.404 22106369.076 22106370.634
+ 40.200 36.000
+ -15747892.851 7 -12271079.409 5 21661793.875 21661792.301 21661793.727
+ 42.100 35.400
+ 06 1 2 6 56 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -13973480.152 7 -10888424.388 6 21603275.849 21603274.078 21603274.958
+ 43.900 40.000
+ -12711133.386 6 -9904773.713 5 22056834.046 22056831.754 22056832.861
+ 40.500 33.500
+ -2845044.596 4 -2216917.722 2 24056496.368 24056492.796 24056495.776
+ 29.200 17.800
+ -17482340.167 6 -13622600.877 7 20392511.091 20392508.253 20392510.105
+ 41.900 47.300
+ 4401083.615 3 3429412.309 2 24529600.616 24529596.878 24529598.380
+ 18.600 12.600
+ -16896174.960 7 -13165849.211 6 21507645.361 21507640.997 21507644.461
+ 42.900 37.700
+ -12856879.979 6 -10018343.877 6 22092470.957 22092469.264 22092470.366
+ 40.300 36.700
+ -15788719.007 7 -12302891.974 5 21654024.920 21654023.122 21654024.670
+ 42.100 35.400
+ 06 1 2 6 57 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -14031110.469 7 -10933331.123 6 21592309.062 21592307.563 21592308.301
+ 43.900 40.200
+ -12685014.673 6 -9884421.470 5 22061804.543 22061802.299 22061803.275
+ 40.400 34.000
+ -2833006.886 4 -2207537.694 2 24058787.499 24058783.464 24058786.753
+ 28.600 17.000
+ -17479496.577 7 -13620385.091 7 20393052.291 20393049.310 20393051.342
+ 42.000 47.300
+ 4514255.696 2 3517598.219 2 24551134.617 24551132.387 24551133.389
+ 17.800 16.100
+ -16820740.274 7 -13107068.947 6 21522000.328 21521995.878 21521999.490
+ 43.200 37.700
+ -12929612.498 6 -10075018.528 6 22078630.365 22078628.554 22078629.762
+ 40.300 36.500
+ -15828963.620 6 -12334251.400 5 21646366.580 21646364.613 21646366.397
+ 41.900 35.100
+ 06 1 2 6 57 30.0000000 0 8G01G05G11G14G18G22G25G30
+ -14088542.255 7 -10978083.165 6 21581380.577 21581378.749 21581379.620
+ 44.100 40.600
+ -12658288.139 6 -9863595.605 5 22066890.284 22066888.108 22066889.062
+ 40.600 34.000
+ -2820473.041 4 -2197771.080 3 24061172.369 24061168.872 24061171.490
+ 28.600 18.600
+ -17476335.763 6 -13617922.120 7 20393653.749 20393650.777 20393652.735
+ 41.900 47.200
+ 4627540.469 3 3605871.997 2 24572690.292 24572690.602 24572690.386
+ 19.300 15.100
+ -16744914.626 7 -13047984.043 6 21536429.559 21536425.141 21536428.636
+ 43.100 38.200
+ -13002031.153 6 -10131448.639 6 22064849.609 22064847.641 22064848.866
+ 39.800 36.100
+ -15868624.858 7 -12365156.254 5 21638819.674 21638817.456 21638819.367
+ 42.100 35.200
+ 06 1 2 6 58 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -14145774.851 7 -11022679.993 6 21570489.574 21570487.837 21570488.605
+ 44.300 41.000
+ -12630954.672 6 -9842296.798 5 22072091.560 22072089.474 22072090.438
+ 40.600 34.100
+ -2807444.512 4 -2187618.993 2 24063651.288 24063647.906 24063650.577
+ 26.800 17.800
+ -17472857.329 6 -13615211.657 7 20394315.566 20394312.705 20394314.607
+ 41.900 47.200
+ 4740936.011 2 3694232.086 2 24594268.475 24594268.362 24594268.196
+ 17.800 12.600
+ -16668699.587 7 -12988595.733 6 21550932.535 21550928.471 21550931.789
+ 43.100 38.300
+ -13074135.301 6 -10187633.674 6 22051128.346 22051126.771 22051127.599
+ 39.800 36.500
+ -15907701.180 7 -12395605.324 5 21631383.347 21631381.472 21631383.141
+ 42.100 35.400
+ 06 1 2 6 58 30.0000000 0 7G01G05G11G14G22G25G30
+ -14202807.470 7 -11067120.991 6 21559636.114 21559634.769 21559635.472
+ 44.100 40.700
+ -12603015.305 6 -9820525.860 5 22077407.891 22077406.001 22077406.800
+ 40.200 33.600
+ -2793922.199 4 -2177082.122 2 24066224.783 24066221.135 24066224.136
+ 29.200 15.100
+ -17469061.318 6 -13612253.723 7 20395038.041 20395035.095 20395036.974
+ 41.600 47.200
+ -16592096.864 7 -12928905.323 6 21565509.408 21565505.346 21565508.766
+ 43.100 37.600
+ -13145924.054 6 -10243572.938 6 22037467.512 22037465.780 22037466.828
+ 40.200 36.400
+ -15946190.613 7 -12425597.067 5 21624059.164 21624057.264 21624058.885
+ 42.100 35.200
+ 06 1 2 6 59 0.0000000 0 7G01G05G11G14G22G25G30
+ -14259639.522 7 -11111405.706 6 21548821.603 21548820.000 21548820.784
+ 44.100 40.700
+ -12574470.854 6 -9798283.431 5 22082840.027 22082837.867 22082838.908
+ 40.300 33.800
+ -2779906.866 4 -2166161.111 2 24068891.795 24068887.647 24068891.121
+ 29.200 16.100
+ -17464947.246 6 -13609047.953 7 20395821.085 20395818.021 20395819.977
+ 41.800 47.200
+ -16515107.405 7 -12868913.548 6 21580159.874 21580155.945 21580159.350
+ 43.200 37.600
+ -13217396.689 6 -10299265.882 6 22023866.880 22023864.832 22023866.081
+ 40.500 36.200
+ -15984091.569 7 -12455130.267 5 21616846.923 21616844.770 21616846.607
+ 42.100 34.800
+ 06 1 2 6 59 30.0000000 0 7G01G05G11G14G22G25G30
+ -14316270.363 7 -11155533.632 6 21538045.035 21538043.741 21538044.272
+ 44.100 41.200
+ -12545322.342 6 -9775570.302 5 22088386.397 22088384.664 22088385.494
+ 40.100 33.600
+ -2765399.802 4 -2154856.881 2 24071652.237 24071649.011 24071651.687
+ 28.600 16.100
+ -17460514.808 6 -13605594.108 7 20396664.214 20396661.419 20396663.303
+ 41.700 47.100
+ -16437732.973 7 -12808621.804 6 21594883.957 21594879.983 21594883.324
+ 43.100 37.700
+ -13288552.721 6 -10354712.130 6 22010326.211 22010324.496 22010325.564
+ 40.700 37.200
+ -16021402.257 7 -12484203.521 5 21609746.822 21609744.809 21609746.523
+ 42.100 35.300
+ 06 1 2 7 0 0.0000000 0 7G01G05G11G14G22G25G30
+ -14372699.253 7 -11199504.191 6 21527307.251 21527305.448 21527306.391
+ 44.300 40.900
+ -12515570.694 6 -9752387.201 5 22094048.630 22094046.210 22094047.376
+ 40.400 33.500
+ -2750401.915 4 -2143170.221 2 24074506.527 24074502.526 24074505.763
+ 28.800 15.100
+ -17455764.041 6 -13601892.209 7 20397568.418 20397565.394 20397567.378
+ 41.600 47.000
+ -16359975.267 7 -12748031.401 6 21609680.805 21609676.777 21609680.041
+ 42.600 37.700
+ -13359390.938 6 -10409910.728 6 21996846.186 21996844.519 21996845.594
+ 40.900 37.300
+ -16058120.995 7 -12512815.512 5 21602759.506 21602757.469 21602759.069
+ 42.200 35.200
+ 06 1 2 7 0 30.0000000 0 7G01G05G11G14G22G25G30
+ -14428925.477 7 -11243316.831 6 21516607.492 21516605.808 21516606.682
+ 44.300 40.700
+ -12485216.991 6 -9728734.964 5 22099824.598 22099822.562 22099823.451
+ 40.200 33.400
+ -2734914.408 4 -2131102.026 3 24077453.728 24077449.813 24077453.127
+ 28.400 18.600
+ -17450694.665 6 -13597942.039 7 20398533.190 20398530.123 20398532.099
+ 41.800 47.100
+ -16281836.022 7 -12687143.699 6 21624550.453 21624545.961 21624549.536
+ 42.700 37.200
+ -13429910.943 6 -10464861.366 6 21983426.479 21983424.753 21983425.898
+ 40.900 36.700
+ -16094246.244 7 -12540965.042 5 21595884.805 21595882.883 21595884.596
+ 42.100 35.200
+ 06 1 2 7 1 0.0000000 0 7G01G05G11G14G22G25G30
+ -14484948.272 7 -11286970.958 6 21505946.503 21505944.979 21505945.757
+ 44.100 40.500
+ -12454262.120 6 -9704614.290 5 22105715.303 22105712.799 22105713.947
+ 40.100 32.800
+ -2718938.397 4 -2118653.209 2 24080493.388 24080490.119 24080493.002
+ 26.800 16.100
+ -17445306.230 6 -13593743.253 7 20399558.404 20399555.380 20399557.452
+ 41.900 46.900
+ -16203316.492 7 -12625959.675 6 21639492.104 21639487.774 21639491.419
+ 42.900 37.400
+ -13500111.963 6 -10519563.448 6 21970067.681 21970065.793 21970067.194
+ 41.400 36.600
+ -16129776.364 7 -12568650.839 5 21589123.618 21589121.919 21589123.370
+ 42.200 35.300
+ 06 1 2 7 1 30.0000000 0 7G01G05G11G14G22G25G30
+ -14540766.986 7 -11330466.058 6 21495324.703 21495323.017 21495323.851
+ 44.300 40.600
+ -12422707.296 6 -9680026.121 5 22111719.844 22111717.574 22111718.689
+ 40.000 32.800
+ -2702475.232 4 -2105824.755 2 24083626.468 24083623.016 24083625.663
+ 25.600 17.800
+ -17439598.712 7 -13589295.832 7 20400644.565 20400641.473 20400643.498
+ 42.100 47.000
+ -16124418.246 7 -12564480.548 6 21654505.839 21654501.786 21654505.305
+ 42.900 37.300
+ -13569993.223 6 -10574016.373 6 21956770.014 21956767.961 21956769.266
+ 41.400 36.800
+ -16164709.662 7 -12595871.577 5 21582476.102 21582474.430 21582475.876
+ 42.400 35.800
+ 06 1 2 7 2 0.0000000 0 7G01G05G11G14G22G25G30
+ -14596380.951 7 -11373801.614 6 21484741.780 21484739.984 21484740.914
+ 44.400 40.600
+ -12390553.590 6 -9654971.277 5 22117838.267 22117835.896 22117837.055
+ 40.000 32.700
+ -2685525.715 4 -2092617.360 3 24086852.172 24086848.859 24086851.096
+ 25.600 19.300
+ -17433571.802 6 -13584599.533 7 20401791.496 20401788.468 20401790.483
+ 41.900 47.000
+ -16045142.778 7 -12502707.491 6 21669591.651 21669587.584 21669590.847
+ 42.600 37.700
+ -13639554.125 6 -10628219.656 6 21943532.990 21943530.791 21943532.169
+ 41.200 36.800
+ -16199044.725 7 -12622626.157 6 21575942.356 21575940.797 21575942.161
+ 42.700 36.000
+ 06 1 2 7 2 30.0000000 0 7G01G05G11G14G22G25G30
+ -14651789.462 7 -11416977.078 6 21474198.154 21474196.198 21474197.292
+ 44.600 41.100
+ -12357801.983 6 -9629450.537 5 22124070.656 22124068.354 22124069.680
+ 40.000 33.000
+ -2668091.092 4 -2079031.944 3 24090169.459 24090166.576 24090169.019
+ 26.200 19.300
+ -17427225.221 6 -13579654.142 7 20402999.149 20402996.218 20402998.212
+ 41.900 46.900
+ -15965491.892 7 -12440641.897 6 21684748.423 21684744.451 21684747.832
+ 42.400 36.800
+ -13708793.753 6 -10682172.601 6 21930357.201 21930354.907 21930356.468
+ 41.600 37.600
+ -16232779.953 7 -12648913.342 5 21569523.016 21569521.071 21569522.676
+ 42.700 35.900
+ 06 1 2 7 3 0.0000000 0 7G01G05G11G14G22G25G30
+ -14706991.696 7 -11459991.809 6 21463693.260 21463691.705 21463692.439
+ 44.700 41.100
+ -12324453.714 6 -9603464.875 5 22130416.641 22130414.608 22130415.537
+ 40.000 33.100
+ -2650172.688 4 -2065069.534 3 24093579.040 24093576.571 24093578.602
+ 25.600 20.500
+ -17420558.762 7 -13574459.495 7 20404267.747 20404264.656 20404266.797
+ 42.000 46.900
+ -15885467.459 7 -12378285.223 6 21699976.871 21699972.671 21699976.082
+ 42.200 37.000
+ -13777711.562 6 -10735874.769 6 21917242.217 21917240.482 21917241.451
+ 41.400 37.400
+ -16265913.874 7 -12674731.969 5 21563217.854 21563215.845 21563217.402
+ 42.700 35.900
+ 06 1 2 7 3 30.0000000 0 7G01G05G11G14G22G25G30
+ -14761986.913 7 -11502845.223 6 21453227.985 21453226.555 21453227.128
+ 44.500 41.500
+ -12290509.921 6 -9577015.166 5 22136876.007 22136873.565 22136874.867
+ 40.200 32.400
+ -2631771.621 4 -2050731.049 3 24097080.978 24097077.915 24097080.331
+ 25.600 21.100
+ -17413572.179 6 -13569015.406 7 20405597.297 20405594.140 20405596.229
+ 41.900 46.700
+ -15805070.552 7 -12315638.317 6 21715275.788 21715271.769 21715275.039
+ 42.100 37.200
+ -13846306.985 7 -10789325.734 6 21904189.089 21904186.795 21904188.360
+ 42.000 36.500
+ -16298444.946 7 -12700080.848 6 21557027.236 21557025.272 21557026.938
+ 42.500 36.100
+ 06 1 2 7 4 0.0000000 0 7G01G05G11G14G22G25G30
+ -14816774.646 7 -11545536.956 6 21442802.133 21442800.706 21442801.299
+ 44.600 41.300
+ -12255971.728 6 -9550102.289 5 22143448.345 22143446.363 22143447.271
+ 40.100 33.200
+ -2612889.175 4 -2036017.478 3 24100674.209 24100671.229 24100673.451
+ 24.900 22.100
+ -17406265.248 6 -13563321.693 7 20406987.625 20406984.678 20406986.687
+ 41.900 46.700
+ -15724302.689 7 -12252702.354 6 21730645.170 21730641.395 21730644.653
+ 42.000 37.000
+ -13914579.215 6 -10842524.877 6 21891196.977 21891194.967 21891196.358
+ 41.500 36.500
+ -16330371.530 7 -12724958.701 6 21550951.747 21550949.962 21550951.570
+ 42.800 36.000
+ 06 1 2 7 4 30.0000000 0 7G01G05G11G14G22G25G30
+ -14871354.040 7 -11588066.354 6 21432416.206 21432414.407 21432415.436
+ 45.000 40.900
+ -12220840.389 6 -9522727.219 5 22150133.478 22150131.677 22150132.583
+ 40.300 33.400
+ -2593526.527 4 -2020929.738 3 24104357.999 24104355.437 24104357.688
+ 24.200 22.100
+ -17398637.749 7 -13557378.191 7 20408439.091 20408436.148 20408438.160
+ 42.100 46.600
+ -15643165.960 6 -12189478.965 6 21746084.689 21746081.271 21746084.421
+ 41.900 36.700
+ -13982527.651 6 -10895471.693 6 21878266.857 21878265.255 21878266.263
+ 41.600 37.500
+ -16361692.350 7 -12749364.520 6 21544991.302 21544989.782 21544991.265
+ 42.800 36.200
+ 06 1 2 7 5 0.0000000 0 7G01G05G11G14G22G25G30
+ -14925724.322 7 -11630432.815 6 21422069.960 21422068.085 21422069.096
+ 45.100 41.100
+ -12185117.169 6 -9494890.944 5 22156931.624 22156929.482 22156930.445
+ 40.000 33.400
+ -2573685.029 3 -2005468.810 3 24108134.065 24108131.620 24108133.202
+ 23.000 22.600
+ -17390689.614 7 -13551184.839 7 20409951.481 20409948.583 20409950.591
+ 42.200 46.600
+ -15561661.792 7 -12125969.259 6 21761594.465 21761590.920 21761594.268
+ 42.000 36.500
+ -14050151.520 6 -10948165.599 6 21865398.437 21865396.862 21865397.651
+ 41.100 37.700
+ -16392405.966 7 -12773297.200 6 21539147.039 21539145.129 21539146.643
+ 42.800 36.500
+ 06 1 2 7 5 30.0000000 0 7G01G05G11G14G22G25G30
+ -14979884.788 7 -11672635.776 6 21411763.586 21411761.758 21411762.728
+ 44.900 41.500
+ -12148803.234 6 -9466594.365 5 22163841.530 22163839.625 22163840.631
+ 39.700 32.700
+ -2553366.004 4 -1989635.835 3 24112000.765 24111998.183 24112000.089
+ 24.200 21.100
+ -17382420.377 7 -13544741.278 7 20411525.437 20411522.191 20411524.431
+ 42.200 46.600
+ -15479791.762 6 -12062174.453 6 21777173.783 21777170.526 21777173.555
+ 41.900 36.700
+ -14117450.347 7 -11000606.228 6 21852592.101 21852590.194 21852591.370
+ 42.100 37.500
+ -16422510.974 7 -12796755.632 6 21533418.400 21533416.464 21533417.970
+ 42.400 36.000
+ 06 1 2 7 6 0.0000000 0 7G01G05G11G14G22G25G30
+ -15033834.788 7 -11714674.739 6 21401497.234 21401495.609 21401496.319
+ 44.800 41.700
+ -12111899.859 6 -9437838.499 5 22170864.534 22170862.106 22170863.088
+ 39.500 33.100
+ -2532570.531 4 -1973431.561 3 24115958.596 24115955.301 24115957.786
+ 25.300 22.100
+ -17373829.754 7 -13538047.284 7 20413160.200 20413156.978 20413159.128
+ 42.200 46.700
+ -15397557.746 6 -11998096.032 6 21792823.145 21792819.195 21792822.410
+ 41.900 36.600
+ -14184423.378 7 -11052792.984 6 21839847.393 21839845.771 21839846.828
+ 42.300 37.900
+ -16452005.964 7 -12819738.740 6 21527805.677 21527803.612 21527805.416
+ 42.700 36.200
+ 06 1 2 7 6 30.0000000 0 7G01G05G11G14G22G25G30
+ -15087573.590 7 -11756549.124 6 21391271.119 21391269.473 21391270.208
+ 45.100 41.900
+ -12074408.373 6 -9408624.351 5 22177998.523 22177996.699 22177997.520
+ 39.700 33.200
+ -2511300.200 3 -1956857.305 3 24120005.587 24120002.844 24120004.537
+ 22.100 22.600
+ -17364917.566 7 -13531102.724 7 20414856.035 20414852.912 20414854.936
+ 42.200 46.600
+ -15314961.468 6 -11933735.316 6 21808540.886 21808536.578 21808540.142
+ 41.900 36.400
+ -14251070.100 7 -11104725.478 6 21827165.278 21827162.954 21827164.530
+ 42.400 37.100
+ -16480889.627 7 -12842245.473 6 21522309.161 21522307.246 21522308.871
+ 42.900 36.200
+ 06 1 2 7 7 0.0000000 0 7G01G05G11G14G22G25G30
+ -15141100.316 7 -11798258.262 6 21381085.209 21381083.435 21381084.433
+ 45.100 41.400
+ -12036330.020 6 -9378952.908 5 22185244.990 22185242.911 22185243.969
+ 40.200 33.000
+ -2489556.192 3 -1939913.902 3 24124143.722 24124140.660 24124142.670
+ 23.400 22.100
+ -17355683.692 6 -13523907.495 7 20416612.965 20416609.975 20416611.960
+ 41.900 46.500
+ -15232004.361 7 -11869093.437 5 21824327.041 21824322.796 21824326.407
+ 42.100 35.800
+ -14317389.861 7 -11156403.209 6 21814544.642 21814542.705 21814544.016
+ 42.300 37.100
+ -16509160.650 7 -12864274.829 5 21516928.958 21516927.311 21516928.906
+ 43.000 35.900
+ 06 1 2 7 7 30.0000000 0 7G01G05G11G14G22G25G30
+ -15194414.118 7 -11839801.487 6 21370940.159 21370938.093 21370939.194
+ 45.100 41.200
+ -11997666.192 6 -9348825.246 5 22192602.298 22192600.141 22192601.221
+ 39.700 32.800
+ -2467339.928 3 -1922602.582 3 24128371.516 24128368.027 24128370.694
+ 23.800 21.600
+ -17346127.990 7 -13516461.489 7 20418431.526 20418428.416 20418430.435
+ 42.000 46.500
+ -15148688.040 6 -11804171.652 5 21840181.687 21840177.231 21840180.908
+ 41.900 35.600
+ -14383382.060 7 -11207825.686 6 21801986.675 21801985.026 21801985.947
+ 42.200 37.600
+ -16536817.675 7 -12885825.751 6 21511666.642 21511664.439 21511666.201
+ 43.200 36.100
+ 06 1 2 7 8 0.0000000 0 7G01G05G11G14G22G25G30
+ -15247514.276 7 -11881178.231 6 21360835.335 21360833.690 21360834.551
+ 45.300 41.700
+ -11958418.261 6 -9318242.447 5 22200071.053 22200068.923 22200069.814
+ 39.400 33.000
+ -2444652.967 3 -1904924.427 3 24132687.757 24132685.529 24132687.482
+ 22.100 22.600
+ -17336250.157 7 -13508764.476 7 20420311.134 20420308.164 20420310.042
+ 42.100 46.500
+ -15065014.493 7 -11738971.512 5 21856103.708 21856100.029 21856103.371
+ 42.000 35.800
+ -14449046.041 7 -11258992.423 6 21789491.322 21789489.648 21789490.724
+ 42.400 37.700
+ -16563859.519 7 -12906897.316 6 21506520.783 21506518.643 21506520.547
+ 43.400 36.200
+ 06 1 2 7 8 30.0000000 0 7G01G05G11G14G22G25G30
+ -15300400.066 7 -11922387.939 6 21350771.627 21350769.837 21350770.709
+ 45.200 41.900
+ -11918587.520 6 -9287205.504 5 22207650.148 22207648.360 22207649.127
+ 39.400 32.800
+ -2421496.601 4 -1886880.520 3 24137094.813 24137091.978 24137094.187
+ 24.200 23.000
+ -17326049.952 7 -13500816.263 7 20422252.006 20422249.181 20422251.130
+ 42.000 46.600
+ -14980985.425 6 -11673494.337 6 21872094.098 21872090.302 21872093.550
+ 41.400 36.400
+ -14514381.230 7 -11309902.962 6 21777058.927 21777056.841 21777058.183
+ 43.200 38.100
+ -16590284.947 7 -12927488.554 6 21501492.033 21501489.949 21501491.765
+ 43.100 36.200
+ 06 1 2 7 9 0.0000000 0 7G01G05G11G14G22G25G30
+ -15353070.621 7 -11963429.927 6 21340748.770 21340746.914 21340747.992
+ 45.600 41.700
+ -11878175.384 6 -9255715.525 5 22215340.650 22215338.441 22215339.609
+ 39.700 33.200
+ -2397871.967 3 -1868471.714 4 24141590.850 24141587.832 24141589.990
+ 23.800 24.200
+ -17315527.065 7 -13492616.612 7 20424254.623 20424251.564 20424253.678
+ 42.000 46.500
+ -14896602.254 6 -11607741.246 5 21888151.487 21888147.611 21888150.982
+ 41.400 35.600
+ -14579387.035 7 -11360556.829 6 21764688.501 21764686.683 21764687.713
+ 42.900 38.100
+ -16616092.692 7 -12947598.468 6 21496580.747 21496578.870 21496580.463
+ 42.800 36.500
+ 06 1 2 7 9 30.0000000 0 7G01G05G11G14G22G25G30
+ -15405525.238 7 -12004303.658 6 21330767.133 21330764.988 21330766.215
+ 45.500 41.400
+ -11837183.375 6 -9223773.708 5 22223141.431 22223139.115 22223140.095
+ 39.700 32.800
+ -2373780.772 4 -1849699.381 3 24146174.849 24146172.099 24146174.437
+ 24.200 23.400
+ -17304681.309 6 -13484165.382 7 20426318.281 20426315.461 20426317.365
+ 41.900 46.500
+ -14811867.099 6 -11541713.875 5 21904276.468 21904272.315 21904275.722
+ 41.100 35.800
+ -14644062.995 7 -11410953.661 6 21752380.813 21752379.245 21752380.141
+ 42.700 38.100
+ -16641281.660 7 -12967226.229 6 21491787.604 21491785.714 21491787.192
+ 42.900 36.600
+ 06 1 2 7 10 0.0000000 0 7G01G05G11G14G22G25G30
+ -15457763.148 7 -12045008.526 6 21320826.472 21320824.533 21320825.594
+ 45.700 41.600
+ -11795612.835 6 -9191381.088 5 22231051.778 22231049.721 22231050.485
+ 39.100 33.100
+ -2349224.512 4 -1830564.639 4 24150847.667 24150845.140 24150847.439
+ 24.600 24.600
+ -17293512.556 6 -13475462.468 7 20428443.782 20428440.870 20428442.777
+ 41.800 46.400
+ -14726781.609 6 -11475413.525 5 21920467.478 21920463.580 21920466.895
+ 41.100 35.500
+ -14708408.502 7 -11461093.010 6 21740136.292 21740134.478 21740135.733
+ 43.000 37.700
+ -16665850.534 7 -12986370.803 6 21487112.012 21487110.508 21487111.831
+ 42.900 36.800
+ 06 1 2 7 10 30.0000000 0 7G01G05G11G14G22G25G30
+ -15509783.697 7 -12085544.017 7 21310927.171 21310925.527 21310926.364
+ 45.600 42.000
+ -11753465.323 6 -9158538.862 5 22239072.304 22239070.412 22239071.128
+ 39.100 33.200
+ -2324204.669 4 -1811068.661 4 24155609.115 24155606.172 24155608.484
+ 24.200 24.600
+ -17282020.590 7 -13466507.703 7 20430630.584 20430627.701 20430629.621
+ 42.000 46.400
+ -14641347.488 6 -11408841.520 5 21936725.238 21936721.270 21936724.521
+ 40.900 35.800
+ -14772422.977 7 -11510974.428 6 21727955.180 21727952.839 21727954.339
+ 43.400 38.000
+ -16689798.248 7 -13005031.356 6 21482555.210 21482553.372 21482554.805
+ 42.800 36.600
+ 06 1 2 7 11 0.0000000 0 7G01G05G11G14G22G25G30
+ -15561586.134 7 -12125909.552 6 21301069.766 21301067.702 21301068.774
+ 45.500 41.800
+ -11710742.269 6 -9125248.178 5 22247202.093 22247199.957 22247200.898
+ 38.900 32.700
+ -2298722.447 4 -1791212.435 3 24160458.568 24160455.230 24160457.587
+ 25.300 23.400
+ -17270205.041 7 -13457300.783 7 20432879.115 20432876.147 20432878.002
+ 42.000 46.300
+ -14555566.429 6 -11341999.164 5 21953049.126 21953044.912 21953048.163
+ 40.600 35.600
+ -14836105.887 7 -11560597.477 6 21715836.531 21715834.283 21715835.736
+ 43.300 38.600
+ -16713123.633 7 -13023206.961 6 21478116.457 21478114.629 21478116.042
+ 43.100 37.000
+ 06 1 2 7 11 30.0000000 0 7G01G05G11G14G22G25G30
+ -15613169.713 7 -12166104.548 6 21291253.264 21291251.600 21291252.562
+ 45.500 41.700
+ -11667445.220 6 -9091510.215 5 22255440.924 22255438.993 22255440.014
+ 39.300 32.100
+ -2272779.506 4 -1770997.160 4 24165395.054 24165392.392 24165394.638
+ 26.200 24.200
+ -17258065.726 7 -13447841.572 7 20435189.170 20435186.206 20435188.111
+ 42.000 46.300
+ -14469440.173 6 -11274887.822 5 21969438.637 21969434.083 21969437.652
+ 40.900 35.300
+ -14899456.650 7 -11609961.704 6 21703781.068 21703779.056 21703780.291
+ 42.800 38.100
+ -16735825.701 7 -13040896.873 6 21473796.150 21473794.461 21473796.015
+ 43.100 36.600
+ 06 1 2 7 12 0.0000000 0 7G01G05G11G14G22G25G30
+ -15664533.581 7 -12206128.342 6 21281479.159 21281477.323 21281478.318
+ 45.300 41.500
+ -11623575.666 6 -9057326.144 5 22263789.501 22263787.085 22263788.321
+ 39.000 32.100
+ -2246377.398 4 -1750424.092 3 24170419.270 24170416.425 24170418.617
+ 25.600 23.400
+ -17245602.470 7 -13438129.943 7 20437560.774 20437557.865 20437559.823
+ 42.100 46.300
+ -14382970.708 6 -11207509.053 5 21985893.225 21985888.851 21985892.140
+ 40.200 35.800
+ -14962474.946 7 -11659066.856 6 21691789.260 21691787.146 21691788.599
+ 43.300 38.600
+ -16757903.427 7 -13058100.291 6 21469595.165 21469593.213 21469594.875
+ 43.100 36.800
+ 06 1 2 7 12 30.0000000 0 7G01G05G11G14G22G25G30
+ -15715676.886 7 -12245980.268 7 21271746.989 21271745.153 21271746.152
+ 45.500 42.000
+ -11579135.146 6 -9022697.168 5 22272245.939 22272243.790 22272244.868
+ 39.200 31.800
+ -2219517.624 4 -1729494.399 3 24175530.318 24175527.415 24175529.503
+ 25.300 21.600
+ -17232815.253 7 -13428165.874 7 20439994.192 20439991.200 20439993.184
+ 42.400 46.300
+ -14296159.515 6 -11139864.002 5 22002412.373 22002408.493 22002411.663
+ 40.400 35.400
+ -15025160.089 7 -11707912.412 6 21679860.629 21679858.771 21679859.910
+ 43.700 38.700
+ -16779355.614 7 -13074816.279 6 21465513.231 21465511.007 21465512.856
+ 43.300 36.500
+ 06 1 2 7 13 0.0000000 0 7G01G05G11G14G22G25G30
+ -15766598.930 7 -12285659.782 7 21262056.819 21262055.160 21262055.985
+ 45.600 42.200
+ -11534125.215 6 -8987624.500 5 22280811.178 22280808.842 22280810.054
+ 39.300 31.600
+ -2192201.927 3 -1708209.466 3 24180728.017 24180725.423 24180727.380
+ 23.800 21.100
+ -17219703.700 7 -13417949.075 7 20442489.102 20442486.153 20442488.161
+ 42.400 46.100
+ -14209008.733 6 -11071954.328 5 22018996.392 22018992.645 22018995.870
+ 40.600 34.700
+ -15087511.454 7 -11756497.874 6 21667995.458 21667993.608 21667994.827
+ 43.600 38.700
+ -16800181.402 7 -13091044.153 6 21461550.101 21461547.914 21461549.704
+ 43.100 36.200
+ 06 1 2 7 13 30.0000000 0 7G01G05G11G14G22G25G30
+ -15817298.929 7 -12325166.273 7 21252408.978 21252407.264 21252408.112
+ 45.500 42.200
+ -11488547.508 6 -8952109.395 5 22289484.885 22289482.086 22289483.568
+ 39.600 31.800
+ -2164431.565 4 -1686570.237 3 24186012.682 24186009.463 24186012.241
+ 24.900 18.600
+ -17206267.483 7 -13407479.291 7 20445045.898 20445042.943 20445045.014
+ 42.400 46.100
+ -14121519.949 6 -11003781.268 5 22035644.821 22035641.200 22035644.514
+ 40.600 34.600
+ -15149528.740 7 -11804823.022 6 21656194.110 21656191.973 21656193.338
+ 43.500 38.700
+ -16820379.749 7 -13106783.117 6 21457706.387 21457704.188 21457705.900
+ 42.800 36.500
+ 06 1 2 7 14 0.0000000 0 7G01G05G11G14G22G25G30
+ -15867776.017 7 -12364499.068 7 21242803.426 21242801.814 21242802.584
+ 45.500 42.200
+ -11442403.681 6 -8916153.166 5 22298265.254 22298263.311 22298264.055
+ 39.000 32.100
+ -2136208.300 4 -1664578.100 3 24191383.792 24191380.375 24191383.004
+ 24.900 20.500
+ -17192506.462 7 -13396756.418 7 20447664.715 20447661.682 20447663.671
+ 42.500 46.100
+ -14033695.080 6 -10935346.322 5 22052357.098 22052353.827 22052357.017
+ 40.500 34.000
+ -15211211.362 7 -11852887.392 6 21644455.951 21644453.913 21644455.193
+ 43.200 38.600
+ -16839949.725 7 -13122032.443 6 21453982.201 21453980.178 21453981.878
+ 43.100 36.600
+ 06 1 2 7 14 30.0000000 0 7G01G05G11G14G22G25G30
+ -15918029.441 7 -12403657.579 7 21233240.633 21233238.768 21233239.664
+ 45.700 42.100
+ -11395695.318 6 -8879757.038 5 22307153.408 22307151.774 22307152.410
+ 39.000 32.400
+ -2107534.006 4 -1642234.523 3 24196840.377 24196837.431 24196839.577
+ 25.300 22.100
+ -17178420.582 7 -13385780.409 7 20450344.981 20450342.075 20450344.031
+ 42.300 46.000
+ -13945536.033 6 -10866650.986 5 22069133.427 22069130.017 22069133.104
+ 40.000 34.500
+ -15272558.887 7 -11900690.645 6 21632782.015 21632780.037 21632781.340
+ 43.200 38.900
+ -16858890.364 7 -13136791.371 6 21450377.942 21450375.687 21450377.593
+ 43.200 36.500
+ 06 1 2 7 15 0.0000000 0 7G01G05G11G14G22G25G30
+ -15968058.333 7 -12442641.133 6 21223720.201 21223718.537 21223719.420
+ 45.500 41.900
+ -11348424.006 6 -8842922.260 5 22316149.065 22316146.846 22316148.014
+ 39.300 32.000
+ -2078410.169 3 -1619540.617 3 24202382.310 24202379.254 24202381.427
+ 20.500 19.900
+ -17164009.605 7 -13374551.079 7 20453087.522 20453084.412 20453086.434
+ 42.500 45.900
+ -13857044.476 6 -10797696.562 5 22085973.314 22085969.540 22085972.642
+ 39.700 34.700
+ -15333570.898 7 -11948232.470 6 21621171.862 21621170.065 21621171.195
+ 43.700 39.400
+ -16877200.828 7 -13151059.260 6 21446893.504 21446891.374 21446893.258
+ 43.500 36.400
+ 06 1 2 7 15 30.0000000 0 7G01G05G11G14G22G25G30
+ -16017861.976 7 -12481449.164 7 21214243.098 21214241.240 21214242.307
+ 46.000 42.200
+ -11300591.543 6 -8805650.217 5 22325251.420 22325249.053 22325250.059
+ 38.300 31.800
+ -2048838.085 3 -1596497.469 3 24208009.576 24208007.003 24208009.026
+ 23.800 22.100
+ -17149273.151 7 -13363068.130 7 20455891.652 20455888.758 20455890.680
+ 42.400 46.000
+ -13768222.335 6 -10728484.540 5 22102875.909 22102871.595 22102875.071
+ 39.700 33.600
+ -15394246.851 7 -11995512.412 6 21609625.658 21609623.775 21609624.999
+ 43.800 39.500
+ -16894880.273 7 -13164835.443 6 21443529.378 21443527.200 21443529.034
+ 43.600 36.500
+ 06 1 2 7 16 0.0000000 0 7G01G05G11G14G22G25G30
+ -16067439.481 7 -12520080.992 7 21204808.815 21204806.927 21204807.965
+ 45.900 42.200
+ -11252199.471 6 -8767942.106 5 22334459.970 22334457.906 22334458.739
+ 38.300 32.100
+ -2018819.460 3 -1573106.361 3 24213721.479 24213718.998 24213720.895
+ 23.000 20.500
+ -17134211.098 7 -13351331.462 7 20458757.732 20458754.912 20458756.815
+ 42.500 45.800
+ -13679071.505 6 -10659016.366 5 22119840.258 22119836.384 22119839.664
+ 39.300 33.900
+ -15454586.306 7 -12042530.162 6 21598143.421 21598141.332 21598142.742
+ 43.700 39.300
+ -16911927.812 7 -13178119.231 6 21440285.387 21440283.223 21440285.065
+ 43.600 36.600
+ 06 1 2 7 16 30.0000000 0 7G01G05G11G14G22G25G30
+ -16116789.968 7 -12558535.914 7 21195417.689 21195415.953 21195416.778
+ 45.700 42.500
+ -11203249.678 6 -8729799.411 5 22343774.469 22343772.337 22343773.432
+ 38.400 31.300
+ -1988356.214 4 -1549368.761 3 24219519.001 24219516.127 24219518.285
+ 24.600 21.100
+ -17118823.388 7 -13339341.033 7 20461686.059 20461683.014 20461685.113
+ 42.800 45.800
+ -13589593.700 6 -10589293.434 5 22136867.232 22136863.782 22136866.777
+ 39.500 34.600
+ -15514588.878 7 -12089285.405 6 21586725.255 21586723.171 21586724.536
+ 43.700 39.000
+ -16928342.523 7 -13190909.906 6 21437161.566 21437159.464 21437161.318
+ 43.700 36.500
+ 06 1 2 7 17 0.0000000 0 7G01G05G11G14G22G25G30
+ -16165912.799 7 -12596813.442 7 21186070.065 21186068.279 21186069.156
+ 45.800 42.600
+ -11153743.815 6 -8691223.412 5 22353195.348 22353193.784 22353194.277
+ 38.400 32.300
+ -1957449.938 4 -1525285.947 2 24225400.100 24225397.215 24225399.446
+ 24.900 17.800
+ -17103109.608 7 -13327096.528 7 20464676.464 20464673.269 20464675.408
+ 42.700 45.700
+ -13499790.902 6 -10519317.258 5 22153956.054 22153952.782 22153955.684
+ 39.100 34.800
+ -15574254.035 7 -12135777.728 6 21575371.456 21575369.359 21575370.774
+ 43.900 39.400
+ -16944123.750 7 -13203206.964 6 21434158.354 21434156.453 21434158.138
+ 43.600 36.600
+ 06 1 2 7 17 30.0000000 0 7G01G05G11G14G22G25G30
+ -16214807.076 7 -12634912.877 7 21176765.634 21176763.933 21176764.798
+ 45.900 42.500
+ -11103683.584 6 -8652215.438 5 22362721.191 22362719.679 22362720.225
+ 38.300 31.600
+ -1926102.261 3 -1500859.224 2 24231364.790 24231361.533 24231364.268
+ 23.400 15.100
+ -17087069.697 7 -13314597.897 7 20467728.544 20467725.556 20467727.603
+ 42.700 45.600
+ -13409664.904 6 -10449089.238 5 22171107.418 22171103.134 22171106.438
+ 39.600 34.000
+ -15633581.411 7 -12182006.843 6 21564081.952 21564079.700 21564081.110
+ 43.700 39.600
+ -16959270.719 7 -13215009.784 6 21431276.266 21431274.288 21431275.817
+ 43.400 37.000
+ 06 1 2 7 18 0.0000000 0 7G01G05G11G14G22G25G30
+ -16263471.894 7 -12672833.517 7 21167505.010 21167503.301 21167504.112
+ 45.900 42.500
+ -11053070.708 6 -8612776.855 5 22372353.199 22372350.556 22372351.839
+ 38.200 30.800
+ -1894315.321 3 -1476090.201 3 24237413.739 24237411.778 24237413.444
+ 23.000 20.500
+ -17070703.408 7 -13301844.944 7 20470843.078 20470839.961 20470842.076
+ 42.900 45.600
+ -13319217.709 6 -10378610.938 5 22188318.966 22188314.665 22188317.856
+ 38.400 33.800
+ -15692570.594 7 -12227972.431 6 21552856.636 21552854.534 21552855.910
+ 43.900 39.900
+ -16973782.753 7 -13226317.859 6 21428514.863 21428512.743 21428514.467
+ 43.500 36.800
+ 06 1 2 7 18 30.0000000 0 7G01G05G11G14G22G25G30
+ -16311906.440 7 -12710574.722 7 21158288.407 21158286.465 21158287.494
+ 46.000 42.500
+ -11001907.157 6 -8572909.144 5 22382089.268 22382086.731 22382087.908
+ 38.400 30.800
+ -1862090.416 4 -1450979.899 3 24243546.500 24243543.913 24243546.037
+ 25.300 21.100
+ -17054010.479 7 -13288837.473 7 20474019.498 20474016.563 20474018.612
+ 43.000 45.600
+ -13228451.414 6 -10307883.979 5 22205590.555 22205586.793 22205589.998
+ 38.900 33.900
+ -15751221.229 7 -12273674.215 6 21541695.485 21541693.754 21541694.894
+ 43.800 39.900
+ -16987659.089 7 -13237130.577 6 21425874.115 21425872.052 21425873.749
+ 43.600 37.200
+ 06 1 2 7 19 0.0000000 0 7G01G05G11G14G22G25G30
+ -16360109.907 7 -12748135.864 7 21149115.180 21149113.767 21149114.455
+ 45.900 42.700
+ -10950194.624 6 -8532613.662 5 22391929.544 22391927.301 22391928.479
+ 38.300 30.600
+ -1829429.645 4 -1425529.942 3 24249761.963 24249758.602 24249761.178
+ 24.200 19.300
+ -17036990.818 7 -13275575.398 7 20477258.331 20477255.352 20477257.444
+ 43.100 45.700
+ -13137367.560 6 -10236909.571 5 22222922.862 22222919.624 22222922.719
+ 39.600 34.400
+ -15809532.778 7 -12319111.776 6 21530599.425 21530597.381 21530598.687
+ 44.000 40.000
+ -17000899.003 7 -13247447.385 6 21423354.272 21423352.570 21423354.222
+ 43.800 37.000
+ 06 1 2 7 19 30.0000000 0 7G01G05G11G14G22G25G30
+ -16408081.407 7 -12785516.249 7 21139986.713 21139984.992 21139985.895
+ 46.100 42.700
+ -10897934.977 6 -8491891.854 5 22401873.769 22401871.960 22401872.931
+ 37.700 31.300
+ -1796334.620 3 -1399741.663 2 24256059.595 24256056.099 24256058.820
+ 23.400 17.800
+ -17019644.261 7 -13262058.596 7 20480559.290 20480556.262 20480558.221
+ 43.000 45.500
+ -13045968.091 6 -10165689.230 5 22240316.051 22240312.667 22240315.561
+ 39.000 34.800
+ -15867504.992 7 -12364284.925 6 21519567.759 21519565.622 21519567.000
+ 44.100 40.000
+ -17013501.923 7 -13257267.835 6 21420956.126 21420954.368 21420955.948
+ 43.700 37.000
+ 06 1 2 7 20 0.0000000 0 7G01G05G11G14G22G25G30
+ -16455820.144 7 -12822715.268 7 21130902.659 21130900.590 21130901.711
+ 46.300 42.500
+ -10845129.963 6 -8450745.100 5 22411922.247 22411920.700 22411921.296
+ 38.000 31.300
+ -1762807.088 4 -1373616.296 2 24262439.909 24262436.662 24262439.062
+ 26.200 17.000
+ -17001970.511 7 -13248286.845 7 20483922.400 20483919.479 20483921.438
+ 42.900 45.600
+ -12954255.039 6 -10094224.553 5 22257769.101 22257764.932 22257768.214
+ 39.100 33.600
+ -15925137.330 7 -12409193.233 6 21508600.184 21508598.548 21508599.644
+ 44.100 40.200
+ -17025467.150 7 -13266591.385 6 21418679.370 21418677.351 21418679.032
+ 43.500 36.600
+ 06 1 2 7 20 30.0000000 0 7G01G05G11G14G22G25G30
+ -16503325.194 7 -12859732.191 7 21121862.652 21121860.741 21121861.705
+ 46.200 42.800
+ -10791781.517 6 -8409174.886 5 22422074.852 22422071.970 22422073.607
+ 38.600 30.800
+ -1728848.807 4 -1347155.319 3 24268901.527 24268898.753 24268900.821
+ 24.900 20.500
+ -16983969.491 7 -13234260.081 7 20487347.965 20487344.900 20487346.973
+ 43.100 45.400
+ -12862230.404 6 -10022517.067 5 22275281.008 22275276.412 22275279.865
+ 38.500 33.100
+ -15982429.461 7 -12453836.440 6 21497697.990 21497696.242 21497697.369
+ 44.100 40.200
+ -17036794.107 7 -13275417.572 6 21416524.002 21416521.867 21416523.602
+ 43.400 37.000
+ 06 1 2 7 21 0.0000000 0 7G01G05G11G14G22G25G30
+ -16550595.874 7 -12896566.484 7 21112867.318 21112865.432 21112866.459
+ 46.300 42.900
+ -10737891.515 6 -8367182.675 5 22432330.000 22432327.242 22432328.680
+ 38.600 30.800
+ -1694461.596 4 -1320360.095 2 24275445.620 24275442.308 24275444.843
+ 26.200 17.800
+ -16965640.841 7 -13219978.020 7 20490835.701 20490832.646 20490834.779
+ 43.000 45.400
+ -12769896.141 6 -9950568.325 5 22292850.908 22292847.361 22292850.372
+ 38.200 33.500
+ -16039381.103 7 -12498214.335 6 21486860.459 21486858.542 21486859.818
+ 44.100 39.800
+ -17047482.347 7 -13283746.063 6 21414490.079 21414487.992 21414489.722
+ 43.600 37.100
+ 06 1 2 7 21 30.0000000 0 7G01G05G11G14G22G25G30
+ -16597631.300 7 -12933217.466 7 21103916.773 21103914.903 21103915.938
+ 46.500 42.900
+ -10683461.795 6 -8324769.905 5 22442686.965 22442684.934 22442685.869
+ 38.200 31.300
+ -1659646.987 4 -1293231.869 2 24282070.603 24282067.266 24282069.943
+ 26.200 17.800
+ -16946984.716 7 -13205440.781 7 20494385.833 20494382.855 20494384.845
+ 43.200 45.400
+ -12677254.014 6 -9878379.680 5 22310479.519 22310476.463 22310479.318
+ 37.600 33.600
+ -16095991.866 7 -12542326.613 6 21476087.698 21476086.064 21476087.111
+ 44.100 40.100
+ -17057531.139 7 -13291576.285 6 21412577.904 21412575.792 21412577.570
+ 43.600 37.300
+ 06 1 2 7 22 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16644430.578 7 -12969684.437 7 21095010.927 21095009.265 21095010.149
+ 46.400 42.900
+ -10628494.361 6 -8281938.139 5 22453146.865 22453144.854 22453145.902
+ 37.900 30.800
+ -1624407.419 3 -1265772.441 3 24288775.865 24288773.509 24288775.306
+ 23.400 19.900
+ -16928000.819 7 -13190648.137 7 20497998.403 20497995.469 20497997.489
+ 43.100 45.400
+ -140267.552 3 -109299.810 2 24617305.217 24617302.795 24617303.912
+ 19.300 13.900
+ -12584306.386 6 -9805952.995 5 22328166.883 22328164.062 22328166.769
+ 38.100 33.600
+ -16152261.387 7 -12586172.979 6 21465380.190 21465378.171 21465379.445
+ 44.200 40.000
+ -17066940.170 7 -13298907.994 6 21410787.329 21410785.201 21410787.056
+ 43.600 36.900
+ 06 1 2 7 22 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -16690992.861 7 -13005966.733 7 21086150.224 21086148.752 21086149.490
+ 46.000 43.100
+ -10572991.108 6 -8238688.852 4 22463708.964 22463706.661 22463707.839
+ 37.900 29.900
+ -1588744.601 4 -1237983.253 2 24295562.569 24295559.714 24295561.774
+ 25.900 17.000
+ -16908688.737 7 -13175599.771 7 20501673.616 20501670.396 20501672.536
+ 43.100 45.300
+ -245278.832 2 -191126.744 2 24597320.836 24597319.971 24597319.778
+ 16.100 16.100
+ -12491054.743 6 -9733289.407 5 22345912.985 22345909.032 22345912.164
+ 38.200 32.400
+ -16208189.304 7 -12629753.170 6 21454737.672 21454735.404 21454736.922
+ 44.600 40.300
+ -17075708.858 7 -13305740.733 6 21409118.858 21409116.702 21409118.478
+ 43.600 37.100
+ 06 1 2 7 23 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16737317.349 7 -13042063.735 7 21077335.450 21077333.462 21077334.559
+ 46.300 43.100
+ -10516953.948 6 -8195023.520 5 22474372.699 22474369.898 22474371.476
+ 37.500 30.100
+ -1552660.335 3 -1209865.660 3 24302429.493 24302426.035 24302428.651
+ 23.400 18.600
+ -16889048.523 7 -13160295.713 7 20505410.790 20505407.740 20505409.807
+ 42.900 45.200
+ -350125.292 3 -272825.222 3 24577370.963 24577367.984 24577369.879
+ 21.100 18.600
+ -12397501.235 6 -9660390.600 5 22363716.035 22363711.566 22363714.962
+ 37.600 32.400
+ -16263775.351 7 -12673066.972 6 21444159.726 21444157.892 21444159.085
+ 44.400 40.500
+ -17083836.720 7 -13312074.130 6 21407572.217 21407570.050 21407571.741
+ 43.300 37.000
+ 06 1 2 7 23 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -16783403.021 7 -13077974.651 7 21068565.485 21068563.654 21068564.651
+ 46.400 43.100
+ -10460384.937 6 -8150943.786 5 22485137.468 22485135.037 22485136.312
+ 37.700 30.800
+ -1516156.739 4 -1181421.295 3 24309375.624 24309373.009 24309374.900
+ 24.200 21.100
+ -16869079.752 7 -13144735.634 7 20509210.721 20509207.675 20509209.712
+ 43.200 45.000
+ -454804.688 3 -354393.573 3 24557451.596 24557447.724 24557450.343
+ 23.000 18.600
+ -12303647.653 6 -9587257.974 5 22381574.789 22381571.409 22381574.415
+ 37.200 32.300
+ -16319019.220 7 -12716114.135 6 21433647.430 21433645.276 21433646.611
+ 44.600 40.300
+ -17091323.353 7 -13317907.863 6 21406147.247 21406145.231 21406147.006
+ 43.500 36.900
+ 06 1 2 7 24 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16829249.131 7 -13113698.892 7 21059841.335 21059839.524 21059840.463
+ 46.400 43.400
+ -10403285.939 6 -8106451.060 5 22496002.644 22496000.576 22496001.729
+ 37.500 30.800
+ -1479235.492 4 -1152651.507 3 24316401.775 24316398.645 24316401.090
+ 24.900 19.300
+ -16848782.474 7 -13128919.577 7 20513073.112 20513070.123 20513072.162
+ 43.100 45.000
+ -559314.534 4 -435829.816 3 24537563.981 24537561.087 24537562.900
+ 24.200 21.100
+ -12209496.289 6 -9513893.295 5 22399491.329 22399487.979 22399490.989
+ 38.000 33.100
+ -16373920.532 7 -12758894.372 6 21423199.773 21423197.696 21423199.141
+ 44.600 39.900
+ -17098168.337 7 -13323241.612 6 21404844.794 21404842.653 21404844.396
+ 43.400 37.100
+ 06 1 2 7 24 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -16874854.875 7 -13149235.832 7 21051163.004 21051161.097 21051162.130
+ 46.600 43.400
+ -10345659.092 6 -8061547.025 5 22506968.979 22506966.573 22506967.782
+ 37.200 30.400
+ -1441898.514 4 -1123557.773 3 24323506.965 24323503.130 24323506.116
+ 24.200 18.600
+ -16828156.591 7 -13112847.464 7 20516998.170 20516995.138 20516997.160
+ 43.100 45.000
+ -663652.316 4 -517131.934 3 24517708.881 24517706.777 24517707.495
+ 25.600 21.600
+ -12115049.180 6 -9440298.172 5 22417463.886 22417460.880 22417463.537
+ 37.700 33.500
+ -16428478.957 7 -12801407.411 6 21412817.616 21412815.873 21412816.969
+ 44.600 40.500
+ -17104371.436 7 -13328075.198 6 21403664.147 21403662.121 21403663.989
+ 43.500 36.500
+ 06 1 2 7 25 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16920219.197 7 -13184584.656 7 21042530.268 21042528.420 21042529.408
+ 46.300 43.300
+ -10287506.283 6 -8016233.157 5 22518035.314 22518033.026 22518033.951
+ 36.700 31.500
+ -1404147.540 3 -1094141.461 3 24330690.198 24330687.229 24330689.539
+ 23.800 18.600
+ -16807201.607 7 -13096518.902 7 20520985.661 20520982.713 20520984.671
+ 43.200 44.900
+ -767814.965 4 -598297.622 3 24497887.883 24497884.532 24497886.413
+ 27.900 19.300
+ -12020308.006 6 -9366473.917 5 22435493.675 22435489.543 22435492.743
+ 38.100 33.100
+ -16482694.391 7 -12843653.192 6 21402500.952 21402498.771 21402500.270
+ 45.200 40.000
+ -17109932.186 7 -13332408.249 6 21402606.305 21402604.106 21402605.943
+ 43.700 37.000
+ 06 1 2 7 25 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -16965341.240 7 -13219744.687 7 21033943.706 21033941.954 21033942.878
+ 46.200 43.400
+ -10228829.636 6 -7970511.088 5 22529201.275 22529198.637 22529199.827
+ 36.800 31.100
+ -1365984.881 3 -1064404.331 2 24337952.523 24337949.209 24337951.747
+ 22.600 17.800
+ -16785917.520 7 -13079933.898 7 20525036.119 20525032.963 20525035.065
+ 43.200 44.900
+ -871800.719 3 -679325.507 2 24478098.439 24478095.978 24478096.995
+ 22.600 16.100
+ -11925274.820 6 -9292422.116 5 22453578.046 22453573.630 22453576.926
+ 37.200 32.600
+ -16536566.376 7 -12885631.358 6 21392249.409 21392247.169 21392248.836
+ 45.400 40.100
+ -17114850.231 7 -13336240.486 6 21401670.259 21401668.272 21401669.955
+ 43.600 37.000
+ 06 1 2 7 26 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17010220.300 7 -13254715.380 7 21025403.810 21025401.731 21025402.864
+ 46.400 43.400
+ -10169631.110 6 -7924382.375 5 22540465.806 22540464.073 22540464.797
+ 36.700 31.300
+ -1327412.327 3 -1034347.837 2 24345292.374 24345289.341 24345291.605
+ 23.400 13.900
+ -16764304.504 7 -13063092.582 7 20529148.755 20529145.792 20529147.808
+ 43.200 44.800
+ -975606.972 3 -760213.412 2 24458344.237 24458343.419 24458344.027
+ 19.900 17.800
+ -11829951.769 6 -9218144.451 5 22471716.097 22471712.949 22471715.810
+ 36.800 32.400
+ -16590094.595 7 -12927341.659 6 21382063.683 21382061.187 21382062.881
+ 45.500 40.500
+ -17119125.418 7 -13339571.794 6 21400856.573 21400854.760 21400856.344
+ 43.800 37.100
+ 06 1 2 7 26 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17054855.455 7 -13289496.022 7 21016909.889 21016908.035 21016908.985
+ 46.600 43.500
+ -10109912.843 6 -7877848.666 5 22551829.712 22551828.340 22551828.633
+ 37.100 31.800
+ -1288432.034 3 -1003973.587 2 24352710.507 24352707.221 24352709.448
+ 23.000 16.100
+ -16742362.272 7 -13045994.739 7 20533324.075 20533321.227 20533323.158
+ 43.100 44.700
+ -1079230.874 3 -840959.276 2 24438626.674 24438624.002 24438625.963
+ 22.100 12.600
+ -11734341.021 6 -9143642.607 5 22489910.318 22489907.303 22489909.943
+ 37.000 32.800
+ -16643278.862 7 -12968783.936 6 21371942.387 21371940.490 21371941.896
+ 44.800 40.300
+ -17122757.365 7 -13342401.877 6 21400165.852 21400163.493 21400165.388
+ 43.800 37.000
+ 06 1 2 7 27 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17099245.865 7 -13324085.949 7 21008462.506 21008460.780 21008461.752
+ 46.700 43.500
+ -10049676.912 6 -7830911.576 5 22563292.550 22563290.458 22563291.373
+ 36.700 31.000
+ -1249045.789 3 -973283.044 2 24360205.673 24360202.276 24360204.587
+ 20.500 15.100
+ -16720090.330 7 -13028639.980 7 20537562.484 20537559.336 20537561.531
+ 43.300 44.700
+ -1182669.792 4 -921561.048 1 24418943.028 24418941.374 24418942.004
+ 24.600 9.000
+ -11638444.713 6 -9068918.248 5 22508160.167 22508155.890 22508159.050
+ 37.100 33.200
+ -16696118.875 7 -13009957.964 6 21361887.442 21361885.448 21361886.806
+ 45.000 40.300
+ -17125745.902 7 -13344730.610 6 21399597.040 21399594.817 21399596.693
+ 43.800 36.900
+ 06 1 2 7 27 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17143390.613 7 -13358484.456 7 21000062.228 21000060.288 21000061.333
+ 46.500 43.500
+ -9988925.365 6 -7783572.715 5 22574853.373 22574850.969 22574852.151
+ 36.900 30.600
+ -1209255.665 3 -942277.758 2 24367777.100 24367773.663 24367776.221
+ 22.600 13.900
+ -16697488.539 7 -13011028.197 7 20541863.580 20541860.470 20541862.538
+ 43.200 44.600
+ -1285921.485 4 -1002017.021 9 24399295.174 24399292.831 24399293.898
+ 27.400 -3.000
+ -11542264.252 6 -8993972.485 5 22526461.947 22526458.164 22526461.307
+ 37.300 32.300
+ -16748614.479 7 -13050863.618 6 21351897.915 21351895.942 21351897.242
+ 44.700 40.600
+ -17128090.829 7 -13346557.822 6 21399150.753 21399148.721 21399150.366
+ 43.500 37.000
+ 06 1 2 7 28 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17187288.783 7 -13392690.818 7 20991708.631 20991706.710 20991707.686
+ 46.400 43.500
+ -9927660.304 6 -7735833.703 4 22586511.404 22586509.359 22586510.385
+ 37.600 29.700
+ -1169063.698 3 -910959.367 2 24375425.430 24375422.693 24375424.749
+ 21.600 17.800
+ -16674556.957 7 -12993159.441 7 20546227.118 20546224.293 20546226.185
+ 43.400 44.600
+ -1388983.171 4 -1082324.819 3 24379682.593 24379679.842 24379681.343
+ 26.800 18.600
+ -11445801.961 5 -8918807.082 5 22544817.451 22544814.088 22544817.204
+ 35.800 31.600
+ -16800765.325 7 -13091500.633 6 21341974.136 21341971.804 21341973.413
+ 44.900 40.200
+ -17129791.870 7 -13347883.301 6 21398827.046 21398825.029 21398826.708
+ 43.600 37.200
+ 06 1 2 7 28 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17230939.364 7 -13426704.259 7 20983402.067 20983400.360 20983401.244
+ 46.400 43.700
+ -9865883.914 6 -7687696.259 5 22598267.062 22598265.091 22598265.756
+ 36.300 30.200
+ -1128472.024 2 -879329.522 2 24383149.677 24383146.848 24383148.960
+ 17.800 17.800
+ -16651295.463 7 -12975033.608 7 20550653.722 20550650.709 20550652.796
+ 43.400 44.400
+ -1491852.565 4 -1162482.766 3 24360106.686 24360104.765 24360105.896
+ 28.800 21.100
+ -11349060.412 6 -8843424.088 5 22563225.896 22563223.472 22563226.346
+ 36.500 31.500
+ -16852571.237 7 -13131868.873 6 21332115.520 21332113.601 21332114.833
+ 44.700 40.600
+ -17130849.070 7 -13348707.089 6 21398626.007 21398623.691 21398625.633
+ 44.000 37.000
+ 06 1 2 7 29 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17274341.449 7 -13460524.064 7 20975142.972 20975141.281 20975142.121
+ 46.500 43.900
+ -9803598.286 6 -7639162.002 5 22610119.440 22610117.809 22610118.356
+ 36.100 31.000
+ -1087482.430 3 -847389.571 3 24390949.776 24390947.061 24390949.457
+ 19.900 19.900
+ -16627703.749 7 -12956650.457 7 20555143.154 20555140.029 20555142.113
+ 43.500 44.400
+ -1594526.849 4 -1242488.697 4 24340568.594 24340566.893 24340567.783
+ 27.400 26.800
+ -11252040.952 5 -8767824.527 5 22581689.844 22581685.801 22581688.981
+ 35.500 31.600
+ -16904031.975 7 -13171968.139 6 21322322.911 21322320.874 21322322.270
+ 44.900 40.700
+ -17131262.160 7 -13349028.971 6 21398547.574 21398544.894 21398547.170
+ 44.000 36.700
+ 06 1 2 7 29 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17317494.380 7 -13494149.722 7 20966931.457 20966929.549 20966930.555
+ 46.600 43.800
+ -9740805.595 6 -7590232.634 5 22622068.961 22622066.601 22622067.604
+ 36.500 30.200
+ -1046097.063 3 -815141.281 3 24398825.135 24398822.595 24398824.492
+ 21.600 19.300
+ -16603781.933 7 -12938010.085 7 20559695.102 20559692.235 20559694.148
+ 43.200 44.200
+ -1697003.581 3 -1322340.643 4 24321068.330 24321066.116 24321067.056
+ 23.800 26.200
+ -11154745.703 5 -8692010.107 5 22600205.484 22600200.589 22600204.091
+ 35.600 31.800
+ -16955147.323 7 -13211798.271 6 21312596.052 21312593.876 21312595.355
+ 44.900 40.600
+ -17131031.064 7 -13348848.891 6 21398591.372 21398588.869 21398591.012
+ 43.900 36.800
+ 06 1 2 7 30 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17360397.112 7 -13527580.422 7 20958767.206 20958765.329 20958766.364
+ 46.600 43.800
+ -9677508.030 6 -7540909.870 5 22634113.858 22634111.668 22634112.675
+ 36.800 30.100
+ -1004318.310 3 -782586.404 3 24406775.296 24406772.600 24406774.947
+ 20.500 21.100
+ -16579529.629 7 -12919112.187 7 20564310.333 20564307.220 20564309.277
+ 43.400 44.100
+ -1799280.077 3 -1402036.596 4 24301606.728 24301603.226 24301605.149
+ 23.400 24.200
+ -11057177.090 5 -8615982.649 5 22618770.173 22618767.443 22618770.347
+ 35.900 31.100
+ -17005917.100 7 -13251359.127 6 21302934.906 21302932.831 21302934.252
+ 45.100 40.900
+ -17130155.857 7 -13348166.909 6 21398757.366 21398755.665 21398757.226
+ 43.900 37.200
+ 06 1 2 7 30 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17403048.734 7 -13560815.452 7 20950650.631 20950649.047 20950649.835
+ 46.500 43.800
+ -9613707.735 5 -7491195.347 4 22646254.244 22646252.313 22646253.313
+ 35.900 29.200
+ -962147.951 3 -749726.412 3 24414799.606 24414797.360 24414799.315
+ 22.600 19.900
+ -16554946.897 7 -12899956.809 7 20568988.288 20568985.126 20568987.168
+ 43.400 44.100
+ -1901353.941 2 -1481574.653 4 24282180.379 24282180.156 24282178.972
+ 17.800 24.600
+ -10959337.478 6 -8539744.013 5 22637388.953 22637385.620 22637388.788
+ 36.700 31.000
+ -17056340.968 7 -13290650.452 6 21293339.531 21293337.403 21293338.898
+ 45.100 40.700
+ -17128636.362 7 -13346982.877 6 21399046.862 21399044.936 21399046.491
+ 43.700 37.500
+ 06 1 2 7 31 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17445448.366 7 -13593854.123 7 20942582.364 20942580.688 20942581.474
+ 46.400 44.000
+ -9549406.934 6 -7441090.834 5 22658491.025 22658488.690 22658489.610
+ 36.800 30.100
+ -919588.169 3 -716562.967 3 24422898.341 24422896.172 24422898.117
+ 21.100 20.500
+ -16530033.461 7 -12880543.740 7 20573728.854 20573726.041 20573727.990
+ 43.300 44.000
+ -2003222.627 3 -1560952.752 3 24262796.444 24262794.374 24262795.251
+ 20.500 23.000
+ -10861228.163 6 -8463295.221 5 22656059.738 22656055.315 22656058.656
+ 36.000 31.600
+ -17106418.866 7 -13329672.179 6 21283809.862 21283807.857 21283809.245
+ 44.900 40.900
+ -17126472.649 7 -13345296.863 6 21399458.589 21399456.703 21399458.261
+ 43.700 37.500
+ 06 1 2 7 31 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17487594.990 7 -13626695.650 7 20934562.240 20934560.336 20934561.368
+ 46.600 43.700
+ -9484607.846 6 -7390598.040 4 22670821.463 22670819.308 22670820.452
+ 36.800 29.200
+ -876641.192 3 -683097.803 3 24431071.345 24431068.581 24431071.046
+ 23.800 19.300
+ -16504789.008 7 -12860872.743 7 20578532.888 20578529.912 20578531.884
+ 43.400 44.000
+ -2104883.462 4 -1640168.959 3 24243451.323 24243448.587 24243450.126
+ 24.600 18.600
+ -10762851.437 6 -8386638.066 5 22674779.630 22674775.694 22674778.899
+ 36.400 30.600
+ -17156150.582 7 -13368424.156 6 21274346.318 21274344.388 21274345.638
+ 44.800 41.300
+ -17123664.695 7 -13343108.844 6 21399992.819 21399990.906 21399992.569
+ 43.700 37.400
+ 06 1 2 7 32 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17529487.695 7 -13659339.317 7 20926590.181 20926588.447 20926589.287
+ 46.500 43.800
+ -9419312.594 6 -7339718.612 4 22683246.285 22683244.171 22683245.268
+ 36.200 28.400
+ -833308.937 3 -649332.435 3 24439317.425 24439314.958 24439317.013
+ 23.800 21.100
+ -16479213.650 7 -12840943.890 7 20583399.740 20583396.792 20583398.777
+ 43.400 44.100
+ -2206333.780 4 -1719221.146 2 24224146.139 24224142.822 24224144.812
+ 25.300 17.800
+ -10664209.513 5 -8309774.254 5 22693549.318 22693546.837 22693549.557
+ 35.800 31.300
+ -17205536.002 7 -13406906.293 6 21264948.703 21264946.634 21264947.992
+ 45.100 41.300
+ -17120212.520 7 -13340418.840 6 21400649.858 21400647.830 21400649.541
+ 43.800 37.200
+ 06 1 2 7 32 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17571125.602 7 -13691784.437 7 20918666.759 20918665.078 20918665.890
+ 46.400 43.800
+ -9353523.537 5 -7288454.417 4 22695765.852 22695763.589 22695764.781
+ 35.900 28.100
+ -789593.645 4 -615268.584 3 24447636.089 24447633.468 24447635.703
+ 24.200 22.100
+ -16453307.257 7 -12820757.088 7 20588329.658 20588326.611 20588328.613
+ 43.600 44.100
+ -2307570.973 4 -1798107.255 2 24204881.873 24204878.670 24204880.866
+ 28.400 13.900
+ -10565304.532 5 -8232705.471 5 22712371.712 22712368.002 22712370.923
+ 34.700 31.100
+ -17254574.835 7 -13445118.368 6 21255616.972 21255614.809 21255616.223
+ 45.100 41.400
+ -17116116.284 7 -13337226.973 6 21401429.068 21401427.393 21401428.909
+ 43.600 37.200
+ 06 1 2 7 33 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17612507.906 7 -13724030.388 7 20910792.150 20910790.264 20910791.227
+ 46.500 44.000
+ -9287242.915 5 -7236807.169 4 22708378.790 22708376.383 22708377.608
+ 35.600 28.400
+ -745497.610 3 -580908.055 3 24456027.811 24456024.808 24456027.298
+ 23.800 21.100
+ -16427069.727 7 -12800312.254 7 20593322.515 20593319.465 20593321.510
+ 43.600 44.100
+ -2408592.424 4 -1876825.346 1 24185657.124 24185654.016 24185656.090
+ 29.200 6.500
+ -10466138.684 5 -8155433.418 4 22731242.562 22731238.401 22731241.568
+ 34.700 29.500
+ -17303267.038 7 -13483060.338 6 21246351.106 21246348.976 21246350.407
+ 45.100 41.300
+ -17111376.052 7 -13333533.284 6 21402331.413 21402329.406 21402330.989
+ 43.400 37.500
+ 06 1 2 7 33 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17653633.609 7 -13756076.390 7 20902966.094 20902964.337 20902965.214
+ 46.500 44.100
+ -9220473.011 5 -7184778.691 4 22721084.671 22721082.563 22721083.200
+ 35.600 29.000
+ -701022.724 3 -546252.340 3 24464490.482 24464488.192 24464489.845
+ 23.800 21.600
+ -16400500.857 7 -12779609.232 7 20598378.562 20598375.304 20598377.439
+ 43.600 44.000
+ -2509395.707 5 -1955373.366 2 24166475.644 24166471.903 24166474.351
+ 30.200 15.100
+ -10366713.994 5 -8077959.666 4 22750161.904 22750158.189 22750161.244
+ 34.100 29.900
+ -17351612.332 7 -13520731.988 6 21237151.370 21237149.077 21237150.685
+ 45.300 41.500
+ -17105991.975 7 -13329337.893 6 21403355.933 21403353.968 21403355.654
+ 43.900 37.200
+ 06 1 2 7 34 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17694501.728 7 -13787921.672 7 20895189.288 20895187.411 20895188.269
+ 46.500 44.100
+ -9153216.000 5 -7132370.625 4 22733883.082 22733880.682 22733881.979
+ 35.600 28.400
+ -656171.540 4 -511303.355 3 24473025.105 24473022.969 24473024.506
+ 24.900 21.100
+ -16373600.507 7 -12758647.918 7 20603497.199 20603494.233 20603496.235
+ 43.600 43.800
+ -2609978.047 5 -2033749.258 2 24147335.429 24147331.747 24147334.367
+ 30.200 15.100
+ -10267032.609 5 -8000285.883 5 22769129.867 22769127.172 22769129.816
+ 34.500 31.000
+ -17399610.690 7 -13558133.300 6 21228017.597 21228015.385 21228016.890
+ 45.300 41.600
+ -17099964.165 7 -13324640.891 6 21404503.226 21404501.041 21404502.855
+ 43.800 37.100
+ 06 1 2 7 34 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17735111.351 7 -13819565.534 7 20887461.418 20887459.673 20887460.577
+ 46.800 44.200
+ -9085474.299 6 -7079584.895 4 22746773.349 22746771.991 22746772.634
+ 36.000 28.600
+ -610945.956 4 -476062.665 3 24481632.187 24481629.187 24481631.417
+ 25.300 19.900
+ -16346368.591 7 -12737428.246 7 20608679.366 20608676.397 20608678.334
+ 43.800 43.800
+ -2710336.737 4 -2111950.821 2 24128237.691 24128234.424 24128236.314
+ 26.200 17.800
+ -10167096.550 5 -7922413.663 5 22788148.482 22788144.372 22788147.527
+ 34.300 30.400
+ -17447261.949 7 -13595264.139 6 21218949.748 21218947.662 21218949.081
+ 45.200 41.700
+ -17093292.791 7 -13319442.413 6 21405772.664 21405770.498 21405772.279
+ 43.800 36.800
+ 06 1 2 7 35 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17775461.529 7 -13851007.235 7 20879783.108 20879781.302 20879782.184
+ 46.800 44.300
+ -9017250.094 6 -7026423.167 4 22759756.792 22759754.281 22759755.597
+ 36.000 28.600
+ -565348.134 4 -440531.884 3 24490309.294 24490305.996 24490308.449
+ 24.900 19.900
+ -16318804.902 7 -12715950.043 7 20613924.579 20613921.456 20613923.515
+ 43.800 43.700
+ -2810469.427 4 -2189976.296 3 24109182.320 24109180.201 24109181.508
+ 27.100 21.100
+ -10066907.986 5 -7844344.696 5 22807214.203 22807209.626 22807213.227
+ 35.300 30.600
+ -17494565.868 7 -13632124.321 6 21209947.911 21209945.929 21209947.219
+ 44.800 41.800
+ -17085978.205 7 -13313742.731 6 21407164.469 21407162.414 21407164.103
+ 43.900 37.300
+ 06 1 2 7 35 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17815551.376 7 -13882246.075 7 20872154.264 20872152.425 20872153.298
+ 46.800 44.200
+ -8948545.774 5 -6972887.336 5 22772830.787 22772828.903 22772829.623
+ 35.200 30.100
+ -519380.409 4 -404712.900 3 24499056.256 24499053.415 24499055.384
+ 25.300 19.900
+ -16290909.618 7 -12694213.458 7 20619232.675 20619229.747 20619231.727
+ 43.700 43.500
+ -2910373.516 3 -2267823.598 3 24090171.161 24090168.910 24090170.225
+ 22.600 23.000
+ -9966468.978 5 -7766080.561 5 22826325.620 22826322.490 22826325.443
+ 35.200 30.400
+ -17541522.478 7 -13668713.879 6 21201012.503 21201010.442 21201011.814
+ 45.100 41.900
+ -17078020.484 7 -13307541.903 6 21408678.677 21408676.747 21408678.419
+ 43.800 37.200
+ 06 1 2 7 36 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17855380.075 7 -13913281.420 7 20864575.082 20864573.110 20864574.121
+ 46.700 44.000
+ -8879363.688 5 -6918979.231 4 22785995.323 22785993.320 22785994.194
+ 34.400 29.200
+ -473044.881 4 -368607.309 3 24507873.940 24507871.148 24507873.182
+ 24.600 21.100
+ -16262682.568 7 -12672218.358 7 20624604.284 20624601.268 20624603.340
+ 43.800 43.400
+ -3010046.261 4 -2345490.644 3 24071204.129 24071201.331 24071202.914
+ 25.300 23.800
+ -9865781.829 5 -7687623.073 4 22845486.944 22845482.453 22845486.031
+ 34.600 29.500
+ -17588131.598 7 -13705032.668 6 21192143.059 21192140.980 21192142.294
+ 45.000 41.800
+ -17069419.996 7 -13300840.222 6 21410315.191 21410313.304 21410315.003
+ 43.900 37.200
+ 06 1 2 7 36 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17894946.655 7 -13944112.519 7 20857045.818 20857043.828 20857044.950
+ 46.800 44.200
+ -8809706.150 5 -6864700.632 4 22799250.570 22799248.968 22799249.577
+ 34.300 28.600
+ -426343.999 3 -332217.014 2 24516760.146 24516757.543 24516759.470
+ 23.800 16.100
+ -16234123.557 7 -12649964.583 7 20630039.031 20630035.886 20630038.017
+ 44.000 43.500
+ -3109484.970 4 -2422975.317 3 24052281.203 24052279.426 24052280.536
+ 24.900 23.800
+ -9764848.876 5 -7608974.044 4 22864693.127 22864689.699 22864692.230
+ 33.800 29.500
+ -17634393.067 7 -13741080.563 6 21183339.756 21183337.641 21183339.136
+ 45.100 41.900
+ -17060177.026 7 -13293637.906 6 21412073.951 21412072.239 21412073.819
+ 43.800 37.300
+ 06 1 2 7 37 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17934250.151 7 -13974738.619 7 20849566.631 20849564.719 20849565.738
+ 46.800 44.200
+ -8739575.468 5 -6810053.336 4 22812595.774 22812594.323 22812594.899
+ 34.500 29.000
+ -379279.796 4 -295543.637 2 24525717.198 24525713.388 24525716.251
+ 24.200 17.800
+ -16205232.393 7 -12627451.991 7 20635536.774 20635533.626 20635535.792
+ 44.000 43.400
+ -3208687.167 4 -2500275.724 3 24033405.329 24033401.970 24033403.952
+ 28.100 22.100
+ -9663671.763 5 -7530134.786 4 22883946.285 22883943.031 22883945.888
+ 34.400 28.800
+ -17680306.939 7 -13776857.604 7 21174602.581 21174600.494 21174601.911
+ 44.800 42.100
+ -17050292.018 7 -13285935.299 6 21413955.254 21413953.219 21413954.868
+ 43.600 37.000
+ 06 1 2 7 37 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -17973289.558 7 -14005158.937 7 20842137.732 20842135.738 20842136.785
+ 46.900 44.300
+ -8668974.073 5 -6755039.290 4 22826031.420 22826029.465 22826030.181
+ 34.900 29.900
+ -331854.619 3 -258588.969 3 24534741.288 24534738.309 24534740.473
+ 23.000 18.600
+ -16176009.127 7 -12604680.615 7 20641097.991 20641094.636 20641096.891
+ 44.000 43.200
+ -3307650.065 4 -2577389.654 4 24014571.624 24014569.742 24014570.680
+ 26.500 24.200
+ -9562252.821 5 -7451107.045 4 22903245.908 22903242.436 22903245.489
+ 34.800 29.200
+ -17725873.042 7 -13812363.651 7 21165931.559 21165929.703 21165930.911
+ 44.700 42.400
+ -17039765.169 7 -13277732.560 6 21415958.490 21415956.407 21415958.122
+ 43.700 36.900
+ 06 1 2 7 38 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18012063.836 7 -14035372.656 7 20834759.027 20834757.198 20834758.214
+ 46.800 44.300
+ -8597904.293 5 -6699660.241 4 22839555.435 22839553.751 22839554.212
+ 34.700 29.000
+ -284070.904 3 -221354.907 3 24543835.238 24543831.378 24543834.205
+ 23.800 18.600
+ -16146453.451 7 -12581650.220 7 20646722.024 20646718.903 20646721.011
+ 44.000 43.400
+ -3406371.269 4 -2654315.246 3 23995786.452 23995783.422 23995785.331
+ 28.600 23.800
+ -9460594.093 5 -7371892.502 4 22922591.291 22922587.568 22922590.433
+ 34.400 29.500
+ -17771091.289 7 -13847598.635 7 21157326.774 21157325.042 21157326.162
+ 44.700 42.700
+ -17028596.888 7 -13269030.003 6 21418083.492 21418081.544 21418083.163
+ 43.600 37.000
+ 06 1 2 7 38 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18050572.101 7 -14065379.096 7 20827431.049 20827429.346 20827430.216
+ 46.600 44.100
+ -8526368.587 5 -6643918.121 4 22853168.703 22853166.023 22853167.553
+ 35.900 28.400
+ -235930.546 4 -183842.936 3 24552994.916 24552992.421 24552994.408
+ 24.600 18.600
+ -16116565.462 7 -12558360.878 7 20652409.339 20652406.430 20652408.371
+ 43.800 43.200
+ -3504848.157 4 -2731050.481 3 23977046.405 23977043.612 23977045.254
+ 26.500 21.100
+ -9358698.178 5 -7292493.104 4 22941980.651 22941977.709 22941980.475
+ 34.100 29.000
+ -17815961.617 7 -13882562.515 7 21148788.355 21148786.375 21148787.708
+ 44.700 42.500
+ -17016787.632 7 -13259827.984 6 21420330.806 21420328.718 21420330.548
+ 43.700 37.100
+ 06 1 2 7 39 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18088813.357 7 -14095177.476 7 20820154.059 20820152.327 20820153.270
+ 46.800 44.300
+ -8454369.230 5 -6587814.735 4 22866869.262 22866866.915 22866868.172
+ 34.900 28.100
+ -187436.158 3 -146055.147 3 24562222.511 24562220.611 24562221.977
+ 21.100 18.600
+ -16086344.958 7 -12534812.431 7 20658160.075 20658157.219 20658159.168
+ 43.900 43.200
+ -3603077.873 4 -2807593.111 3 23958354.510 23958351.922 23958353.427
+ 29.000 23.800
+ -9256566.897 5 -7212910.315 4 22961415.780 22961412.742 22961415.220
+ 33.200 28.800
+ -17860483.975 7 -13917255.259 7 21140315.996 21140314.019 21140315.288
+ 44.700 42.500
+ -17004337.781 7 -13250126.803 6 21422700.064 21422697.928 21422699.755
+ 44.000 36.500
+ 06 1 2 7 39 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18126786.604 7 -14124767.020 7 20812928.124 20812926.202 20812927.287
+ 46.700 44.200
+ -8381908.758 5 -6531352.020 4 22880658.003 22880656.305 22880656.893
+ 34.600 29.500
+ -138590.111 3 -107993.302 2 24571518.073 24571515.285 24571517.688
+ 22.600 16.100
+ -16055792.053 7 -12511004.970 7 20663974.336 20663971.254 20663973.256
+ 43.800 43.100
+ -3701057.838 4 -2883941.135 3 23939709.360 23939706.516 23939708.130
+ 29.000 21.600
+ -9154202.536 5 -7133145.922 4 22980895.540 22980891.932 22980894.846
+ 33.000 28.600
+ -17904658.246 7 -13951676.764 7 21131910.128 21131908.191 21131909.429
+ 45.100 43.100
+ -16991247.829 7 -13239926.835 6 21425191.002 21425188.870 21425190.687
+ 43.700 36.500
+ 06 1 2 7 40 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18164490.958 7 -14154147.034 7 20805753.235 20805751.237 20805752.253
+ 46.600 44.200
+ -8308989.459 5 -6474531.802 4 22894534.274 22894532.257 22894533.117
+ 35.200 28.800
+ -89394.655 3 -69659.198 3 24580879.812 24580876.844 24580879.269
+ 22.100 18.600
+ -16024906.576 7 -12486938.361 7 20669851.384 20669848.639 20669850.415
+ 43.700 43.200
+ -3798785.415 4 -2960092.501 3 23921112.274 23921108.992 23921111.289
+ 27.900 18.600
+ -9051607.341 5 -7053201.651 4 23000418.304 23000415.172 23000418.066
+ 33.600 27.900
+ -17948484.482 7 -13985827.072 7 21123570.006 21123568.328 21123569.390
+ 45.000 43.300
+ -16977518.266 7 -13229228.468 6 21427803.632 21427801.489 21427803.196
+ 43.600 36.700
+ 06 1 2 7 40 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18201925.479 7 -14183316.788 7 20798629.416 20798627.772 20798628.606
+ 46.400 44.400
+ -8235613.848 5 -6417356.014 4 22908497.322 22908495.476 22908496.219
+ 35.800 29.700
+ -39851.863 3 -31054.475 2 24590308.077 24590304.579 24590306.922
+ 20.500 17.000
+ -15993688.495 7 -12462612.580 7 20675792.114 20675789.082 20675791.135
+ 43.900 43.100
+ -3896258.019 4 -3036045.165 3 23902564.775 23902561.510 23902563.033
+ 25.900 21.100
+ -8948783.361 5 -6973079.081 4 23019985.268 23019981.992 23019985.068
+ 34.000 28.400
+ -17991962.648 7 -14019706.155 7 21115296.302 21115294.328 21115295.730
+ 45.000 42.800
+ -16963149.639 7 -13218032.134 6 21430537.624 21430535.910 21430537.387
+ 43.700 36.800
+ 06 1 2 7 41 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18239089.193 7 -14212275.525 7 20791557.534 20791555.696 20791556.609
+ 46.500 44.300
+ -8161784.370 5 -6359826.556 4 22922546.612 22922544.292 22922545.361
+ 34.500 27.600
+ 10035.848 3 7819.049 2 24599801.442 24599798.070 24599800.418
+ 20.500 17.000
+ -15962137.563 7 -12438027.438 7 20681795.955 20681792.921 20681795.057
+ 43.800 43.000
+ -3993472.895 4 -3111796.985 3 23884064.381 23884061.129 23884063.090
+ 26.800 18.600
+ -8845732.913 5 -6892780.062 4 23039595.290 23039591.906 23039594.748
+ 31.100 29.700
+ -18035092.581 7 -14053313.896 7 21107089.059 21107087.085 21107088.289
+ 44.800 43.000
+ -16948142.449 7 -13206338.219 6 21433393.690 21433391.678 21433393.451
+ 43.800 37.100
+ 06 1 2 7 41 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18275981.250 7 -14241022.580 7 20784537.066 20784535.388 20784536.245
+ 46.500 44.400
+ -8087503.582 5 -6301945.417 4 22936682.124 22936678.885 22936680.725
+ 34.400 26.800
+ 60266.080 3 46959.447 2 24609359.924 24609356.797 24609359.151
+ 21.100 15.100
+ -15930253.898 7 -12413183.029 7 20687863.360 20687860.313 20687862.292
+ 44.000 42.900
+ -4090427.578 4 -3187346.114 2 23865614.951 23865611.315 23865613.755
+ 28.100 17.000
+ -8742458.061 5 -6812306.202 4 23059247.281 23059244.550 23059247.035
+ 31.600 29.500
+ -18077874.413 7 -14086650.384 7 21098948.041 21098945.986 21098947.292
+ 44.900 43.200
+ -16932497.243 7 -13194147.140 6 21436371.073 21436368.841 21436370.670
+ 44.000 37.000
+ 06 1 2 7 42 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18312600.566 7 -14269557.112 7 20777568.649 20777567.030 20777567.872
+ 46.800 44.600
+ -8012773.710 5 -6243714.349 4 22950902.150 22950900.358 22950901.141
+ 34.500 27.400
+ 110836.491 3 86364.949 1 24618982.692 24618979.839 24618981.744
+ 21.600 9.000
+ -15898037.482 7 -12388079.331 7 20693993.898 20693990.949 20693992.871
+ 43.800 42.900
+ -4187119.277 5 -3262690.276 3 23847214.851 23847212.440 23847213.997
+ 30.600 22.600
+ -8638961.057 5 -6731659.220 4 23078943.236 23078939.288 23078942.417
+ 33.000 29.000
+ -18120308.036 7 -14119715.538 7 21090873.144 21090871.175 21090872.425
+ 44.800 43.400
+ -16916214.776 7 -13181459.503 6 21439469.283 21439467.197 21439468.945
+ 43.800 36.700
+ 06 1 2 7 42 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18348946.131 7 -14297878.329 7 20770652.387 20770650.701 20770651.555
+ 46.600 44.500
+ -7937597.358 5 -6185135.383 4 22965207.554 22965205.893 22965206.647
+ 34.000 28.100
+ 161744.723 3 126033.695 2 24628670.112 24628667.374 24628669.430
+ 19.900 12.600
+ -15865488.181 7 -12362716.240 7 20700187.805 20700184.818 20700186.853
+ 44.000 42.800
+ -4283545.248 4 -3337827.434 3 23828865.187 23828862.331 23828864.292
+ 29.700 19.900
+ -8535243.964 5 -6650840.752 4 23098680.145 23098676.134 23098679.163
+ 32.800 29.000
+ -18162393.394 7 -14152509.313 7 21082864.577 21082862.600 21082863.829
+ 44.900 43.400
+ -16899295.487 7 -13168275.637 6 21442688.743 21442686.883 21442688.524
+ 43.700 36.700
+ 06 1 2 7 43 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18385017.037 7 -14325985.526 7 20763788.397 20763786.599 20763787.522
+ 46.600 44.600
+ -7861976.959 5 -6126210.395 4 22979597.720 22979596.195 22979596.379
+ 32.600 28.100
+ 212988.164 3 165963.639 2 24638421.095 24638418.935 24638420.504
+ 21.100 16.100
+ -15832605.613 7 -12337093.466 7 20706445.289 20706442.195 20706444.228
+ 44.100 42.700
+ -4379702.979 4 -3412755.527 4 23810567.157 23810565.346 23810565.774
+ 28.600 25.900
+ -8431309.161 5 -6569852.626 4 23118457.233 23118454.159 23118457.175
+ 33.100 28.400
+ -18204130.595 7 -14185031.803 7 21074922.351 21074920.110 21074921.608
+ 45.200 43.300
+ -16881740.167 7 -13154596.167 6 21446029.440 21446027.642 21446029.165
+ 43.600 36.800
+ 06 1 2 7 43 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18420812.289 7 -14353877.929 7 20756976.823 20756974.948 20756975.966
+ 46.700 44.700
+ -7785915.079 5 -6066941.412 4 22994072.006 22994069.460 22994070.807
+ 33.100 26.800
+ 264564.622 3 206153.068 1 24648236.400 24648232.890 24648235.776
+ 21.100 9.000
+ -15799390.222 7 -12311211.340 7 20712765.855 20712762.968 20712764.886
+ 44.100 42.900
+ -4475589.894 4 -3487472.565 3 23792320.405 23792317.589 23792319.346
+ 27.400 21.600
+ -8327159.144 5 -6488696.783 4 23138277.383 23138273.204 23138276.374
+ 33.400 28.100
+ -18245519.650 7 -14217283.012 7 21067046.130 21067044.036 21067045.421
+ 45.100 43.200
+ -16863549.406 7 -13140421.547 6 21449490.746 21449489.144 21449490.596
+ 43.500 36.800
+ 06 1 2 7 44 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18456331.066 7 -14381554.898 7 20750217.824 20750215.959 20750216.944
+ 46.900 44.700
+ -7709414.105 5 -6007330.251 4 23008628.918 23008627.882 23008628.042
+ 33.400 28.100
+ 316471.667 3 246600.114 2 24658113.928 24658110.957 24658113.006
+ 20.500 15.100
+ -15765841.765 7 -12285069.685 7 20719149.908 20719146.991 20719148.957
+ 44.300 42.800
+ -4571202.906 4 -3561976.215 4 23774125.630 23774123.879 23774124.710
+ 27.900 25.900
+ -8222795.749 5 -6407374.701 4 23158137.007 23158133.130 23158135.876
+ 31.000 28.100
+ -18286560.459 7 -14249262.854 7 21059236.351 21059234.341 21059235.667
+ 45.100 43.400
+ -16844723.884 7 -13125752.311 6 21453073.283 21453071.408 21453073.042
+ 43.700 36.700
+ 06 1 2 7 44 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18491572.208 7 -14409015.527 7 20743511.477 20743509.853 20743510.626
+ 46.700 44.700
+ -7632476.688 5 -5947379.032 4 23023270.182 23023268.393 23023268.859
+ 33.000 27.100
+ 368707.138 3 287303.036 2 24668053.474 24668050.755 24668052.887
+ 19.300 12.600
+ -15731960.188 7 -12258668.458 7 20725597.259 20725594.427 20725596.335
+ 44.100 42.700
+ -4666540.129 4 -3636264.931 3 23755983.435 23755981.060 23755982.555
+ 29.000 22.600
+ -8118221.024 5 -6325887.968 4 23178036.141 23178033.045 23178035.891
+ 31.500 28.400
+ -18327253.021 7 -14280971.337 7 21051492.916 21051490.703 21051492.164
+ 45.100 43.300
+ -16825264.350 7 -13110589.035 6 21456776.686 21456774.467 21456776.335
+ 43.900 36.700
+ 06 1 2 7 45 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18526534.788 7 -14436259.093 7 20736858.468 20736856.629 20736857.573
+ 46.700 44.600
+ -7555105.184 5 -5887089.569 4 23037993.353 23037991.672 23037992.182
+ 32.700 27.400
+ 421268.559 3 328259.992 2 24678056.429 24678052.655 24678055.491
+ 23.000 12.600
+ -15697745.511 7 -12232007.673 7 20732108.107 20732105.263 20732107.108
+ 44.300 42.700
+ -4761598.280 4 -3710336.203 3 23737894.631 23737892.032 23737893.444
+ 29.200 23.000
+ -8013437.367 5 -6244238.391 4 23197975.908 23197972.539 23197975.252
+ 31.800 27.100
+ -18367597.502 7 -14312408.588 7 21043815.389 21043813.388 21043814.721
+ 44.800 43.400
+ -16805171.689 7 -13094932.417 6 21460600.339 21460597.811 21460599.911
+ 44.100 36.500
+ 06 1 2 7 45 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18561217.750 7 -14463284.777 7 20730258.519 20730256.634 20730257.708
+ 46.800 44.800
+ -7477302.265 5 -5826463.919 4 23052798.392 23052796.877 23052797.549
+ 32.300 24.200
+ 474153.423 3 369468.959 2 24688119.540 24688116.822 24688118.767
+ 19.300 13.900
+ -15663197.528 7 -12205087.166 7 20738682.333 20738679.572 20738681.387
+ 44.000 42.500
+ -4856374.930 5 -3784188.159 3 23719860.210 23719856.832 23719858.802
+ 30.200 22.600
+ -7908447.290 5 -6162427.966 4 23217954.686 23217951.735 23217954.352
+ 30.600 27.100
+ -18407593.863 7 -14343574.576 7 21036204.483 21036202.386 21036203.722
+ 44.900 43.400
+ -16784446.572 7 -13078782.971 6 21464544.299 21464541.551 21464543.761
+ 43.900 36.500
+ 06 1 2 7 46 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18595620.167 7 -14490091.855 7 20723712.013 20723710.162 20723711.123
+ 46.800 44.900
+ -7399070.342 5 -5765503.974 4 23067686.384 23067683.878 23067685.095
+ 33.100 26.500
+ 527359.170 3 410927.960 2 24698243.772 24698241.690 24698243.184
+ 22.100 17.800
+ -15628316.213 7 -12177906.924 7 20745320.168 20745317.194 20745319.185
+ 44.300 42.500
+ -4950867.369 4 -3857818.605 4 23701878.208 23701875.215 23701876.940
+ 27.600 24.600
+ -7803252.827 5 -6080458.312 4 23237972.415 23237969.630 23237972.068
+ 30.200 27.400
+ -18447242.156 7 -14374469.343 7 21028659.450 21028657.558 21028658.863
+ 44.900 43.500
+ -16763089.732 7 -13062141.274 6 21468608.103 21468605.651 21468607.763
+ 44.000 36.400
+ 06 1 2 7 46 30.0000000 0 8G01G05G11G14G20G22G25G30
+ -18629741.142 7 -14516679.623 7 20717218.890 20717217.284 20717218.059
+ 46.600 44.900
+ -7320412.061 5 -5704211.796 4 23082654.700 23082652.179 23082653.420
+ 33.600 25.600
+ 580883.571 3 452635.266 2 24708429.882 24708426.960 24708429.323
+ 23.800 15.100
+ -15593101.676 7 -12150467.026 7 20752021.185 20752018.307 20752020.154
+ 44.100 42.400
+ -5045072.937 4 -3931225.543 4 23683951.389 23683948.891 23683950.417
+ 29.900 24.200
+ -7697855.979 5 -5998330.947 4 23258029.257 23258026.167 23258028.378
+ 30.200 27.400
+ -18486542.467 7 -14405092.958 7 21021180.982 21021179.046 21021180.360
+ 45.300 43.600
+ -16741102.163 7 -13045008.103 6 21472791.923 21472789.943 21472791.797
+ 44.000 36.500
+ 06 1 2 7 47 0.0000000 0 7G01G05G14G20G22G25G30
+ -18663579.668 7 -14543047.304 7 20710779.628 20710777.897 20710778.850
+ 46.800 44.900
+ -7241329.874 5 -5642589.335 4 23097702.859 23097701.376 23097701.493
+ 32.300 27.400
+ -15557553.897 7 -12122767.456 7 20758785.790 20758782.944 20758784.695
+ 44.300 42.500
+ -5138988.889 4 -4004406.777 3 23666079.889 23666076.999 23666078.636
+ 28.400 21.600
+ -7592259.272 5 -5916047.854 4 23278122.826 23278120.536 23278122.740
+ 30.200 26.200
+ -18525494.887 7 -14435445.491 7 21013768.727 21013766.609 21013767.959
+ 45.300 43.500
+ -16718484.717 7 -13027384.115 6 21477095.915 21477094.040 21477095.636
+ 43.600 36.900
+ 06 1 2 7 47 30.0000000 0 7G01G05G14G20G22G25G30
+ -18697134.686 7 -14569194.070 7 20704394.346 20704392.460 20704393.446
+ 46.700 44.800
+ -7161826.415 5 -5580638.579 4 23112832.049 23112829.994 23112830.941
+ 33.600 27.400
+ -15521672.659 7 -12094808.051 7 20765613.675 20765610.896 20765612.683
+ 44.400 42.300
+ -5232612.679 4 -4077360.386 3 23648263.900 23648260.761 23648262.796
+ 29.000 22.100
+ -7486464.821 4 -5833610.664 4 23298256.610 23298252.633 23298255.275
+ 29.700 27.400
+ -18564099.331 7 -14465526.871 7 21006422.561 21006420.422 21006421.798
+ 45.300 43.700
+ -16695238.235 7 -13009269.969 6 21481519.348 21481517.791 21481519.058
+ 43.300 37.000
+ 06 1 2 7 48 0.0000000 0 7G01G05G14G20G22G25G30
+ -18730405.193 7 -14595119.139 7 20698063.211 20698061.347 20698062.314
+ 46.700 44.900
+ -7081904.185 5 -5518361.518 4 23128040.554 23128038.570 23128039.504
+ 33.100 25.900
+ -15485458.164 7 -12066588.962 7 20772505.170 20772502.267 20772504.118
+ 44.300 42.500
+ -5325941.555 5 -4150084.190 3 23630504.142 23630501.153 23630502.956
+ 30.400 22.100
+ -7380475.059 4 -5751021.280 4 23318424.791 23318421.771 23318424.393
+ 29.500 27.100
+ -18602355.996 7 -14495337.251 7 20999142.443 20999140.385 20999141.824
+ 45.400 43.600
+ -16671363.586 7 -12990666.345 6 21486063.086 21486060.929 21486062.624
+ 43.600 36.800
+ 06 1 2 7 48 30.0000000 0 7G01G05G14G20G22G25G30
+ -18763390.245 7 -14620821.776 7 20691786.445 20691784.704 20691785.561
+ 46.800 45.200
+ -7001565.831 5 -5455760.193 4 23143329.045 23143326.879 23143327.742
+ 32.600 27.900
+ -15448910.236 7 -12038110.061 7 20779459.978 20779457.067 20779459.032
+ 44.400 42.300
+ -5418972.940 5 -4222576.211 3 23612801.267 23612797.889 23612800.047
+ 31.500 23.800
+ -7274291.990 4 -5668281.271 4 23338630.807 23338627.574 23338630.258
+ 29.700 24.900
+ -18640264.921 7 -14524876.670 7 20991928.692 20991926.520 20991927.978
+ 45.200 43.400
+ -16646861.803 7 -12971574.044 6 21490725.758 21490723.391 21490725.326
+ 43.600 36.700
+ 06 1 2 7 49 0.0000000 0 7G01G05G14G20G22G25G30
+ -18796088.932 7 -14646301.269 7 20685564.198 20685562.294 20685563.302
+ 46.800 45.200
+ -6920813.834 5 -5392836.570 4 23158695.558 23158693.058 23158694.593
+ 33.800 25.900
+ -15412029.041 7 -12009371.472 7 20786478.574 20786475.338 20786477.451
+ 44.400 42.300
+ -5511704.370 5 -4294834.443 3 23595154.203 23595151.587 23595153.248
+ 31.100 21.600
+ -7167917.985 4 -5585392.464 4 23358873.369 23358870.067 23358872.763
+ 29.700 26.200
+ -18677826.129 7 -14554145.134 7 20984780.781 20984778.853 20984780.158
+ 45.200 43.500
+ -16621733.812 7 -12951993.795 6 21495507.102 21495505.252 21495506.858
+ 43.800 36.700
+ 06 1 2 7 49 30.0000000 0 7G01G05G14G20G22G25G30
+ -18828500.107 7 -14671556.730 7 20679396.460 20679394.554 20679395.660
+ 46.900 45.000
+ -6839650.886 5 -5329592.696 4 23174140.704 23174138.128 23174139.382
+ 33.200 27.900
+ -15374814.618 7 -11980373.222 7 20793560.226 20793557.011 20793559.103
+ 44.600 42.100
+ -5604132.858 5 -4366856.681 4 23577566.206 23577563.470 23577565.149
+ 32.700 24.900
+ -7061355.252 5 -5502356.601 4 23379150.783 23379148.446 23379150.665
+ 31.000 27.400
+ -18715039.870 7 -14583142.851 7 20977699.448 20977697.280 20977698.721
+ 45.200 43.500
+ -16595980.564 7 -12931926.323 6 21500407.504 21500405.928 21500407.314
+ 43.200 36.700
+ 06 1 2 7 50 0.0000000 0 7G01G05G14G20G22G25G30
+ -18860622.952 7 -14696587.520 7 20673283.536 20673281.791 20673282.704
+ 46.700 45.200
+ -6758079.488 5 -5266030.583 4 23189663.076 23189660.549 23189661.678
+ 33.100 26.800
+ -15337266.908 7 -11951115.265 7 20800705.009 20800702.100 20800704.043
+ 44.400 42.000
+ -5696255.700 5 -4438640.706 4 23560035.281 23560033.286 23560034.083
+ 30.100 25.600
+ -6954606.035 5 -5419175.429 4 23399465.657 23399462.248 23399464.866
+ 30.100 27.900
+ -18751906.083 7 -14611869.767 7 20970684.112 20970681.902 20970683.326
+ 45.400 43.700
+ -16569603.078 7 -12911372.439 6 21505427.356 21505425.116 21505427.009
+ 43.600 36.500
+ 06 1 2 7 50 30.0000000 0 7G01G05G14G20G22G25G30
+ -18892456.397 7 -14721392.799 7 20667225.938 20667224.140 20667225.043
+ 46.800 45.200
+ -6676102.372 5 -5202152.292 4 23205262.142 23205259.611 23205260.807
+ 31.500 24.200
+ -15299385.735 7 -11921597.473 6 20807913.492 20807910.635 20807912.523
+ 44.400 41.900
+ -5788070.460 4 -4510184.672 3 23542563.389 23542560.917 23542562.379
+ 29.000 22.100
+ -6847672.746 5 -5335850.815 4 23419812.887 23419810.752 23419813.118
+ 30.100 26.800
+ -18788424.947 7 -14640326.018 7 20963734.693 20963732.537 20963733.943
+ 45.600 43.600
+ -16542602.494 7 -12890333.017 6 21510565.462 21510563.155 21510565.104
+ 43.600 36.500
+ 06 1 2 7 51 0.0000000 0 7G01G05G14G20G22G25G30
+ -18923999.421 7 -14745971.775 7 20661223.383 20661221.709 20661222.592
+ 46.700 45.300
+ -6593721.995 5 -5137959.795 4 23220938.695 23220936.402 23220937.822
+ 32.600 24.900
+ -15261171.247 7 -11891819.944 6 20815185.570 20815182.593 20815184.571
+ 44.300 41.800
+ -5879574.460 4 -4581486.473 4 23525150.280 23525149.157 23525149.144
+ 28.600 26.800
+ -6740557.355 4 -5252384.329 4 23440198.282 23440194.349 23440196.909
+ 29.500 26.800
+ -18824596.619 7 -14668511.735 7 20956851.462 20956849.281 20956850.714
+ 45.400 43.600
+ -16514979.713 7 -12868808.773 6 21515821.408 21515819.566 21515821.173
+ 43.400 36.200
+ 06 1 2 7 51 30.0000000 0 7G01G05G14G20G22G25G30
+ -18955251.078 7 -14770323.715 7 20655276.403 20655274.711 20655275.537
+ 46.700 45.300
+ -6510941.063 5 -5073455.171 4 23236691.729 23236689.248 23236690.748
+ 32.700 25.600
+ -15222623.620 7 -11861782.838 6 20822520.748 20822517.842 20822519.850
+ 44.400 41.500
+ -5970765.009 5 -4652544.008 4 23507798.231 23507795.675 23507797.206
+ 31.500 26.200
+ -6633262.331 4 -5168777.875 4 23460614.943 23460612.181 23460614.484
+ 29.700 27.400
+ -18860421.100 7 -14696426.908 7 20950034.188 20950032.206 20950033.481
+ 45.300 43.800
+ -16486735.901 7 -12846800.604 6 21521196.382 21521194.188 21521196.029
+ 43.400 36.500
+ 06 1 2 7 52 0.0000000 0 7G01G05G14G20G22G25G30
+ -18986210.365 7 -14794447.835 7 20649384.812 20649383.269 20649384.112
+ 46.700 45.400
+ -6427762.229 5 -5008640.497 4 23252519.611 23252517.865 23252518.570
+ 30.600 25.300
+ -15183742.509 7 -11831485.871 6 20829919.516 20829916.658 20829918.676
+ 44.500 41.500
+ -6061638.935 5 -4723354.870 4 23490505.621 23490503.260 23490504.578
+ 32.700 26.500
+ -6525789.873 4 -5085033.137 4 23481067.004 23481063.340 23481065.833
+ 29.000 26.200
+ -18895898.638 7 -14724071.738 7 20943283.010 20943280.946 20943282.373
+ 45.500 43.800
+ -16457872.232 7 -12824309.433 6 21526688.731 21526686.836 21526688.566
+ 43.600 36.200
+ 06 1 2 7 52 30.0000000 0 7G01G05G14G20G22G25G30
+ -19016876.287 7 -14818343.359 7 20643549.342 20643547.771 20643548.585
+ 46.800 45.500
+ -6344188.001 5 -4943517.723 4 23268423.570 23268421.349 23268422.502
+ 32.000 25.600
+ -15144528.166 7 -11800929.239 6 20837382.142 20837379.015 20837381.125
+ 44.500 41.200
+ -6152194.463 5 -4793917.612 4 23473274.015 23473270.662 23473272.558
+ 33.000 24.200
+ -6418142.276 5 -5001151.941 4 23501550.525 23501548.182 23501550.527
+ 30.600 26.200
+ -18931029.331 7 -14751446.304 7 20936597.645 20936595.820 20936597.085
+ 45.500 43.800
+ -16428389.780 7 -12801336.093 6 21532299.339 21532297.065 21532298.979
+ 43.400 36.000
+ 06 1 2 7 53 0.0000000 0 7G01G05G14G20G22G25G30
+ -19047247.784 7 -14842009.461 7 20637770.065 20637768.283 20637769.334
+ 47.100 45.400
+ -6260221.057 4 -4878088.950 4 23284401.405 23284399.756 23284400.057
+ 29.500 25.600
+ -15104980.477 7 -11770112.862 6 20844907.637 20844904.666 20844906.699
+ 44.700 41.200
+ -6242428.313 5 -4864229.692 3 23456101.750 23456099.386 23456100.872
+ 31.600 23.000
+ -6310321.921 5 -4917136.097 4 23522068.816 23522065.657 23522068.470
+ 31.100 26.800
+ -18965813.295 7 -14778550.685 7 20929978.531 20929976.658 20929977.863
+ 45.400 44.000
+ -16398289.657 7 -12777881.450 6 21538027.202 21538024.838 21538026.937
+ 43.600 36.100
+ 06 1 2 7 53 30.0000000 0 7G01G05G14G20G22G25G30
+ -19077323.742 7 -14865445.274 7 20632046.936 20632044.924 20632046.128
+ 47.000 45.200
+ -6175864.022 5 -4812356.183 4 23300455.078 23300452.615 23300453.950
+ 34.000 26.200
+ -15065099.411 7 -11739036.710 6 20852496.890 20852493.756 20852495.954
+ 44.700 41.100
+ -6332337.898 5 -4934289.132 4 23438993.389 23438990.828 23438992.164
+ 32.000 25.300
+ -6202330.977 4 -4832987.369 3 23542618.586 23542615.358 23542618.147
+ 29.200 23.400
+ -19000250.712 7 -14805385.025 7 20923425.646 20923423.454 20923424.908
+ 45.500 44.100
+ -16367573.181 7 -12753946.531 6 21543872.414 21543870.124 21543872.126
+ 43.600 36.200
+ 06 1 2 7 54 0.0000000 0 7G01G05G14G20G22G25G30
+ -19107103.221 7 -14888650.062 7 20626379.915 20626378.162 20626379.118
+ 46.900 45.500
+ -6091119.644 5 -4746321.587 4 23316581.484 23316578.655 23316580.004
+ 30.400 26.200
+ -15024885.236 7 -11707700.995 6 20860149.270 20860146.275 20860148.437
+ 44.800 41.200
+ -6421920.866 5 -5004094.030 3 23421946.118 23421943.207 23421945.050
+ 32.600 23.800
+ -6094171.803 4 -4748707.539 3 23563201.555 23563197.544 23563200.242
+ 26.200 22.600
+ -19034341.718 7 -14831949.434 7 20916938.411 20916936.191 20916937.684
+ 45.800 44.200
+ -16336241.441 7 -12729532.187 6 21549834.480 21549832.453 21549834.195
+ 43.400 36.400
+ 06 1 2 7 54 30.0000000 0 7G01G05G14G20G22G25G30
+ -19136585.291 7 -14911623.102 7 20620769.704 20620767.953 20620768.944
+ 47.000 45.400
+ -6005990.451 5 -4679987.183 4 23332780.505 23332779.078 23332779.350
+ 31.600 26.800
+ -14984338.045 7 -11676105.785 6 20867865.409 20867862.086 20867864.395
+ 44.800 41.100
+ -6511174.413 5 -5073642.230 4 23404961.586 23404959.559 23404960.319
+ 31.100 27.600
+ -5985846.998 4 -4664298.650 3 23583814.778 23583810.598 23583814.004
+ 28.100 22.600
+ -19068086.479 7 -14858244.046 7 20910516.801 20910514.854 20910516.158
+ 45.600 44.300
+ -16304295.745 7 -12704639.437 6 21555913.426 21555911.579 21555913.096
+ 43.400 36.200
+ 06 1 2 7 55 0.0000000 0 7G01G05G14G20G22G25G30
+ -19165768.916 7 -14934363.592 7 20615216.300 20615214.440 20615215.455
+ 46.800 45.400
+ -5920479.148 5 -4613355.004 4 23349052.029 23349050.201 23349051.058
+ 31.500 24.200
+ -14943457.972 7 -11644251.180 6 20875644.601 20875641.322 20875643.567
+ 44.700 41.100
+ -6600095.561 5 -5142931.443 4 23388039.873 23388038.065 23388038.867
+ 31.500 25.600
+ -5877357.988 4 -4579761.791 3 23604459.088 23604455.737 23604458.669
+ 29.900 23.800
+ -19101485.170 7 -14884268.991 7 20904161.482 20904159.248 20904160.798
+ 45.800 44.300
+ -16271737.371 7 -12679269.270 6 21562109.323 21562107.188 21562108.983
+ 43.700 36.300
+ 06 1 2 7 55 30.0000000 0 7G01G05G14G20G22G25G30
+ -19194653.163 7 -14956870.796 7 20609719.680 20609717.932 20609718.889
+ 46.900 45.400
+ -5834588.431 5 -4546427.134 3 23365396.616 23365394.671 23365395.659
+ 30.600 21.600
+ -14902244.733 7 -11612136.969 6 20883486.845 20883483.994 20883485.981
+ 44.600 41.200
+ -6688682.060 5 -5211959.861 4 23371183.695 23371180.587 23371182.346
+ 32.400 26.200
+ -5768707.520 4 -4495099.129 4 23625135.050 23625131.637 23625134.448
+ 28.100 25.900
+ -19134537.859 7 -14910024.333 7 20897871.526 20897869.422 20897870.839
+ 45.900 44.100
+ -16238567.573 7 -12653422.670 6 21568421.271 21568419.159 21568420.971
+ 43.400 36.400
+ 06 1 2 7 56 0.0000000 0 7G01G05G14G20G22G25G30
+ -19223236.999 7 -14979143.915 7 20604280.477 20604278.611 20604279.619
+ 47.000 45.600
+ -5748320.870 5 -4479205.661 4 23381813.330 23381811.156 23381812.168
+ 31.800 24.900
+ -14860698.215 7 -11579763.064 6 20891392.847 20891389.974 20891392.080
+ 44.600 40.800
+ -6776931.205 5 -5280725.408 4 23354390.038 23354387.644 23354388.831
+ 32.300 27.400
+ -5659898.038 4 -4410312.562 4 23645839.991 23645837.295 23645839.872
+ 28.600 25.600
+ -19167244.880 7 -14935510.314 7 20891647.659 20891645.404 20891646.995
+ 46.000 44.300
+ -16204787.659 7 -12627100.657 6 21574849.286 21574847.449 21574849.016
+ 43.300 36.700
+ 06 1 2 7 56 30.0000000 0 7G01G05G14G20G22G25G30
+ -19251519.328 7 -15001182.095 7 20598898.637 20598896.586 20598897.784
+ 47.100 45.400
+ -5661679.176 4 -4411692.661 4 23398300.070 23398299.107 23398299.010
+ 29.000 24.900
+ -14818818.894 7 -11547129.823 6 20899362.462 20899359.337 20899361.425
+ 44.500 40.800
+ -6864840.277 5 -5349225.990 4 23337661.236 23337658.231 23337660.185
+ 32.800 24.900
+ -5550931.592 4 -4325403.717 4 23666576.659 23666572.878 23666575.898
+ 28.100 25.600
+ -19199606.320 7 -14960727.020 7 20885489.417 20885487.222 20885488.801
+ 46.100 44.400
+ -16170398.995 7 -12600304.297 6 21581393.212 21581391.222 21581392.916
+ 43.400 36.400
+ 06 1 2 7 57 0.0000000 0 7G01G05G14G20G22G25G30
+ -19279499.128 7 -15022984.537 7 20593574.215 20593572.284 20593573.360
+ 47.100 45.500
+ -5574666.062 5 -4343890.242 4 23414858.886 23414856.350 23414857.621
+ 31.500 24.200
+ -14776606.742 7 -11514237.236 6 20907395.170 20907392.148 20907394.247
+ 44.400 40.800
+ -6952406.604 5 -5417459.467 4 23320997.769 23320995.335 23320996.530
+ 31.600 25.900
+ -5441810.590 4 -4240374.380 4 23687341.704 23687338.273 23687340.936
+ 29.200 25.300
+ -19231622.393 7 -14985674.602 7 20879396.928 20879394.729 20879396.193
+ 45.800 44.400
+ -16135402.749 7 -12573034.494 6 21588052.696 21588050.658 21588052.466
+ 43.400 36.400
+ 06 1 2 7 57 30.0000000 0 7G01G05G14G20G22G25G30
+ -19307175.486 7 -15044550.531 7 20588307.388 20588305.719 20588306.589
+ 46.700 45.800
+ -5487284.140 5 -4275800.419 4 23431487.112 23431484.789 23431486.035
+ 32.300 24.200
+ -14734061.815 7 -11481085.351 6 20915491.002 20915488.179 20915490.180
+ 44.400 40.800
+ -7039627.666 5 -5485423.946 4 23304400.348 23304397.540 23304399.176
+ 33.400 25.300
+ -5332537.704 4 -4155226.754 4 23708134.843 23708131.919 23708134.549
+ 28.400 25.900
+ -19263293.332 7 -15010353.249 7 20873370.337 20873367.901 20873369.634
+ 46.300 44.300
+ -16099800.490 7 -12545292.473 6 21594827.577 21594825.633 21594827.297
+ 43.300 36.500
+ 06 1 2 7 58 0.0000000 0 7G01G05G14G20G22G25G30
+ -19334547.404 7 -15065879.296 7 20583098.878 20583097.007 20583098.016
+ 46.800 45.700
+ -5399536.146 5 -4207425.363 3 23448184.549 23448182.577 23448183.527
+ 31.000 23.000
+ -14691184.021 7 -11447674.086 6 20923650.529 20923647.559 20923649.491
+ 44.400 40.900
+ -7126500.358 5 -5553116.959 4 23287869.334 23287866.151 23287868.162
+ 33.500 25.300
+ -5223114.475 4 -4069961.944 4 23728958.014 23728955.263 23728957.443
+ 27.900 27.100
+ -19294619.295 7 -15034763.086 7 20867409.170 20867406.698 20867408.448
+ 46.300 44.400
+ -16063593.603 7 -12517079.321 6 21601717.643 21601715.689 21601717.310
+ 43.200 36.100
+ 06 1 2 7 58 30.0000000 0 7G01G05G14G20G22G25G30
+ -19361613.901 7 -15086970.071 7 20577948.498 20577946.463 20577947.569
+ 46.900 45.800
+ -5311424.739 4 -4138767.117 4 23464951.634 23464949.768 23464950.431
+ 29.500 24.200
+ -14647973.715 7 -11414003.723 6 20931873.391 20931870.271 20931872.251
+ 44.300 40.800
+ -7213022.456 5 -5620536.755 4 23271404.225 23271401.292 23271403.164
+ 32.400 24.900
+ -5113543.662 4 -3984582.144 3 23749808.175 23749805.180 23749807.758
+ 27.100 23.800
+ -19325600.571 7 -15058904.332 7 20861513.691 20861511.173 20861512.909
+ 46.000 44.300
+ -16026783.546 7 -12488396.157 6 21608722.625 21608720.301 21608722.239
+ 43.500 36.200
+ 06 1 2 7 59 0.0000000 0 7G01G05G14G20G22G25G30
+ -19388374.018 7 -15107822.107 7 20572855.837 20572854.181 20572855.010
+ 46.600 45.900
+ -5222952.614 5 -4069827.820 4 23481787.986 23481785.402 23481786.573
+ 30.100 24.200
+ -14604430.643 7 -11380074.062 6 20940158.742 20940156.408 20940158.062
+ 44.400 40.900
+ -7299191.384 5 -5687681.368 4 23255006.602 23255004.854 23255005.714
+ 32.800 27.900
+ -5003827.400 4 -3899089.024 3 23770687.925 23770683.607 23770686.594
+ 25.300 23.400
+ -19356237.289 7 -15082777.096 7 20855683.631 20855681.328 20855682.921
+ 46.000 44.400
+ -15989371.670 7 -12459244.037 5 21615841.658 21615839.315 21615841.307
+ 43.400 35.500
+ 06 1 2 7 59 30.0000000 0 7G01G05G14G20G22G25G30
+ -19414826.547 7 -15128434.465 7 20567822.088 20567820.309 20567821.252
+ 46.600 45.700
+ -5134122.458 5 -4000609.525 4 23498691.793 23498689.448 23498690.649
+ 31.300 24.200
+ -14560555.242 7 -11345885.448 6 20948508.424 20948505.462 20948507.356
+ 44.200 40.600
+ -7385004.327 5 -5754548.594 4 23238677.405 23238674.680 23238676.357
+ 32.800 25.900
+ -4893968.113 4 -3813484.439 3 23791591.840 23791589.453 23791591.814
+ 27.400 23.400
+ -19386529.797 7 -15106381.643 7 20849919.519 20849916.830 20849918.681
+ 46.300 44.500
+ -15951359.417 7 -12429624.097 5 21623074.989 21623072.860 21623074.710
+ 43.100 35.700
+ 06 1 2 8 0 0.0000000 0 7G01G05G14G20G22G25G30
+ -19440970.406 7 -15148806.302 7 20562847.065 20562845.235 20562846.237
+ 46.400 45.600
+ -5044936.958 4 -3931114.315 3 23515662.317 23515660.286 23515661.089
+ 29.000 23.800
+ -14516347.508 7 -11311437.864 6 20956920.878 20956917.807 20956919.919
+ 44.300 40.300
+ -7470458.620 5 -5821136.354 4 23222416.292 23222413.185 23222415.046
+ 35.100 27.400
+ -4783968.259 4 -3727770.300 3 23812525.983 23812521.154 23812524.689
+ 27.100 19.900
+ -19416478.197 7 -15129718.056 7 20844220.100 20844217.842 20844219.449
+ 46.100 44.600
+ -15912748.369 7 -12399537.560 6 21630422.505 21630420.570 21630422.308
+ 43.000 36.100
+ 06 1 2 8 0 30.0000000 0 7G01G05G14G20G22G25G30
+ -19466804.775 7 -15168936.979 7 20557930.990 20557929.209 20557930.176
+ 46.600 45.800
+ -4955398.846 4 -3861344.359 3 23532700.985 23532698.956 23532699.841
+ 29.000 22.600
+ -14471807.682 7 -11276731.511 6 20965396.425 20965393.455 20965395.405
+ 44.300 40.600
+ -7555552.020 5 -5887442.896 4 23206223.133 23206220.806 23206221.931
+ 34.100 27.600
+ -4673830.034 4 -3641948.357 3 23833482.330 23833480.104 23833482.504
+ 25.600 21.100
+ -19446082.776 7 -15152786.553 7 20838586.488 20838584.292 20838585.790
+ 46.000 44.600
+ -15873539.877 7 -12368985.489 5 21637883.708 21637881.538 21637883.416
+ 42.700 35.600
+ 06 1 2 8 1 0.0000000 0 7G01G05G14G20G22G25G30
+ -19492328.609 7 -15188825.681 7 20553073.893 20553072.169 20553073.072
+ 46.600 45.800
+ -4865510.846 4 -3791301.753 3 23549806.222 23549804.659 23549804.958
+ 28.800 23.400
+ -14426935.315 7 -11241766.037 6 20973935.260 20973932.420 20973934.286
+ 44.000 40.300
+ -7640281.585 5 -5953465.922 4 23190099.378 23190097.295 23190098.271
+ 32.800 28.400
+ -4563555.283 4 -3556020.013 3 23854468.889 23854464.236 23854467.630
+ 27.600 19.300
+ -19475343.714 7 -15175587.278 7 20833018.423 20833016.123 20833017.666
+ 46.000 44.800
+ -15833735.697 7 -12337969.247 5 21645458.037 21645455.881 21645457.825
+ 43.100 35.500
+ 06 1 2 8 1 30.0000000 0 7G01G05G14G20G22G25G30
+ -19517540.823 7 -15208471.558 7 20548276.111 20548274.354 20548275.305
+ 46.400 45.600
+ -4775275.665 5 -3720988.621 3 23566977.056 23566975.567 23566976.410
+ 30.800 22.600
+ -14381731.174 7 -11206542.038 6 20982537.358 20982534.482 20982536.312
+ 44.300 40.100
+ -7724644.684 5 -6019203.370 4 23174045.628 23174043.247 23174044.630
+ 34.100 27.400
+ -4453146.772 4 -3469987.481 3 23875478.263 23875475.281 23875477.880
+ 29.000 23.800
+ -19504261.440 7 -15198120.570 7 20827515.341 20827513.187 20827514.706
+ 45.800 44.700
+ -15793337.248 7 -12306489.928 5 21653145.619 21653143.582 21653145.345
+ 43.000 35.700
+ 06 1 2 8 2 0.0000000 0 7G01G05G14G20G22G25G30
+ -19542440.469 7 -15227873.877 7 20543538.071 20543536.114 20543537.261
+ 46.700 45.700
+ -4684695.917 4 -3650407.003 4 23584214.169 23584212.845 23584212.954
+ 29.900 24.600
+ -14336194.932 7 -11171059.255 6 20991202.600 20991199.762 20991201.605
+ 44.100 39.800
+ -7808638.670 5 -6084653.241 4 23158062.489 23158059.558 23158061.321
+ 34.600 26.200
+ -4342606.794 4 -3383852.472 4 23896514.349 23896510.106 23896513.152
+ 28.600 24.200
+ -19532836.020 7 -15220386.469 7 20822077.787 20822075.719 20822077.151
+ 45.700 44.800
+ -15752346.078 7 -12274548.759 5 21660945.745 21660944.013 21660945.614
+ 42.800 35.600
+ 06 1 2 8 2 30.0000000 0 7G01G05G14G20G22G25G30
+ -19567026.409 7 -15247031.749 7 20538859.519 20538857.765 20538858.658
+ 46.500 45.900
+ -4593774.335 4 -3579559.035 4 23601515.621 23601514.426 23601514.663
+ 29.900 24.200
+ -14290326.824 7 -11135317.881 6 20999930.962 20999928.191 20999930.074
+ 44.300 40.000
+ -7892261.049 5 -6149813.539 4 23142149.858 23142146.860 23142148.494
+ 33.500 26.800
+ -4231937.580 4 -3297616.757 4 23917573.188 23917569.932 23917572.690
+ 27.100 24.200
+ -19561067.810 7 -15242385.260 7 20816705.536 20816703.372 20816704.872
+ 45.900 44.900
+ -15710763.890 7 -12242147.056 5 21668858.998 21668856.519 21668858.529
+ 42.700 35.100
+ 06 1 2 8 3 0.0000000 0 7G01G05G14G20G22G25G30
+ -19591297.793 7 -15265944.516 7 20534240.729 20534239.077 20534239.853
+ 46.500 46.000
+ -4502513.621 4 -3508446.806 3 23618882.201 23618880.419 23618880.808
+ 28.600 22.100
+ -14244127.045 7 -11099318.055 6 21008722.826 21008719.661 21008721.632
+ 44.400 39.800
+ -7975509.055 5 -6214682.115 4 23126307.584 23126305.564 23126306.459
+ 32.800 27.100
+ -4121141.393 4 -3211282.146 3 23938656.997 23938653.403 23938656.541
+ 25.300 22.100
+ -19588957.058 7 -15264117.137 7 20811398.408 20811396.114 20811397.711
+ 46.100 44.900
+ -15668592.234 7 -12209286.019 5 21676883.621 21676881.428 21676883.462
+ 42.700 34.800
+ 06 1 2 8 3 30.0000000 0 7G01G05G14G20G22G25G30
+ -19615253.588 7 -15284611.369 7 20529681.998 20529680.358 20529681.213
+ 46.400 46.000
+ -4410916.568 4 -3437072.459 3 23636312.470 23636310.488 23636311.591
+ 29.500 21.100
+ -14197595.859 7 -11063059.985 6 21017577.178 21017574.219 21017576.303
+ 44.600 39.800
+ -8058380.203 5 -6279257.008 4 23110537.904 23110535.705 23110536.882
+ 33.900 27.100
+ -4010220.784 4 -3124850.535 3 23959764.569 23959761.158 23959763.752
+ 25.300 22.100
+ -19616503.903 7 -15285582.214 7 20806156.433 20806154.159 20806155.732
+ 46.000 44.800
+ -15625832.772 7 -12175966.954 5 21685020.757 21685018.806 21685020.414
+ 42.500 35.500
+ 06 1 2 8 4 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19638892.779 7 -15303031.514 7 20525183.693 20525181.991 20525182.946
+ 46.600 46.000
+ -4318985.910 5 -3365438.159 3 23653806.405 23653804.899 23653805.548
+ 30.400 23.000
+ -14150733.014 7 -11026543.489 6 21026494.775 21026491.943 21026493.904
+ 44.600 39.500
+ -200612.751 3 -156322.013 2 24555836.039 24555835.470 24555835.024
+ 23.400 13.900
+ -8140871.825 6 -6343536.208 4 23094841.400 23094837.656 23094840.022
+ 36.100 25.900
+ -3899177.815 3 -3038323.617 3 23980895.846 23980892.130 23980894.645
+ 23.000 23.400
+ -19643708.850 7 -15306780.869 7 20800979.365 20800977.307 20800978.726
+ 45.700 44.900
+ -15582487.086 7 -12142191.102 5 21693269.367 21693267.357 21693268.868
+ 42.500 35.400
+ 06 1 2 8 4 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19662214.353 7 -15321204.169 7 20520745.752 20520744.079 20520744.942
+ 46.400 46.100
+ -4226724.235 4 -3293545.940 3 23671363.342 23671361.031 23671362.085
+ 28.400 21.600
+ -14103538.792 7 -10989768.769 6 21035476.079 21035472.672 21035474.846
+ 44.700 39.400
+ -316304.367 3 -246471.241 3 24533820.845 24533819.670 24533819.729
+ 19.900 18.600
+ -8222981.261 5 -6407517.600 4 23079215.831 23079212.656 23079214.633
+ 35.800 25.600
+ -3788014.827 4 -2951703.221 4 24002048.783 24002046.083 24002048.152
+ 24.600 24.200
+ -19670572.054 7 -15327713.231 7 20795867.560 20795865.367 20795866.860
+ 45.800 45.100
+ -15538557.076 7 -12107959.923 5 21701628.472 21701626.605 21701628.238
+ 42.200 35.500
+ 06 1 2 8 5 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19685217.345 7 -15339128.577 7 20516368.459 20516366.667 20516367.603
+ 46.500 45.900
+ -4134134.248 4 -3221397.897 3 23688982.665 23688981.008 23688981.959
+ 29.200 23.000
+ -14056013.511 7 -10952736.086 6 21044519.475 21044516.492 21044518.651
+ 44.600 39.300
+ -431958.508 3 -336591.281 2 24511812.156 24511810.769 24511811.225
+ 18.600 17.000
+ -8304706.014 5 -6471199.235 4 23063663.354 23063661.260 23063662.265
+ 33.600 27.100
+ -3676734.068 3 -2864990.994 3 24023224.882 24023221.567 24023224.106
+ 22.600 19.300
+ -19697093.826 7 -15348379.544 7 20790820.619 20790818.446 20790819.955
+ 45.900 45.200
+ -15494044.277 7 -12073274.624 5 21710099.273 21710097.076 21710098.927
+ 42.600 35.300
+ 06 1 2 8 5 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19707900.617 7 -15356803.855 7 20512052.000 20512050.183 20512051.168
+ 46.500 46.000
+ -4041218.845 4 -3148996.306 3 23706663.252 23706662.213 23706662.302
+ 27.400 23.000
+ -14008157.187 7 -10915445.449 6 21053626.343 21053623.170 21053625.256
+ 44.300 39.300
+ -547572.985 3 -426680.376 2 24489811.874 24489810.530 24489810.439
+ 20.500 13.900
+ -8386043.736 5 -6534579.258 4 23048185.840 23048183.346 23048184.741
+ 34.000 27.600
+ -3565338.046 4 -2778188.926 3 24044423.110 24044419.862 24044422.534
+ 28.100 18.600
+ -19723274.485 7 -15368780.051 7 20785838.714 20785836.431 20785837.963
+ 45.900 45.100
+ -15448950.351 7 -12038136.501 5 21718680.285 21718678.318 21718679.989
+ 42.700 35.700
+ 06 1 2 8 6 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19730263.238 7 -15374229.273 7 20507796.669 20507794.754 20507795.794
+ 46.400 45.900
+ -3947980.871 4 -3076343.332 4 23724405.464 23724405.221 23724404.981
+ 28.600 24.200
+ -13959969.918 7 -10877896.930 6 21062796.147 21062792.922 21062794.963
+ 44.300 39.100
+ -663145.059 3 -516736.512 2 24467819.123 24467817.948 24467818.088
+ 21.600 12.600
+ -8466991.536 5 -6597655.450 4 23032781.951 23032779.652 23032781.025
+ 35.900 28.600
+ -3453829.251 4 -2691299.010 3 24065641.608 24065639.165 24065641.120
+ 24.900 19.300
+ -19749114.253 7 -15388914.929 7 20780921.655 20780919.368 20780920.862
+ 45.800 45.200
+ -15403277.192 7 -12002547.025 5 21727371.754 21727369.612 21727371.324
+ 42.400 35.500
+ 06 1 2 8 6 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19752304.182 7 -15391404.037 7 20503602.430 20503600.439 20503601.473
+ 46.500 46.100
+ -3854422.736 4 -3003440.879 3 23742210.326 23742207.788 23742209.238
+ 27.900 21.100
+ -13911451.942 7 -10840090.718 6 21072028.443 21072025.635 21072027.636
+ 44.400 39.200
+ -778672.089 3 -606757.518 2 24445834.162 24445833.907 24445833.110
+ 21.600 16.100
+ -8547546.737 5 -6660425.732 4 23017452.680 23017450.268 23017451.420
+ 34.400 27.900
+ -3342209.780 4 -2604322.877 3 24086882.422 24086880.215 24086882.167
+ 25.600 23.800
+ -19774613.441 7 -15408784.427 7 20776068.972 20776066.974 20776068.348
+ 45.700 45.300
+ -15357026.447 7 -11966507.485 5 21736172.863 21736170.504 21736172.424
+ 42.100 35.100
+ 06 1 2 8 7 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19774022.445 7 -15408327.358 7 20499469.376 20499467.691 20499468.548
+ 46.400 46.200
+ -3760547.286 4 -2930291.174 4 23760074.257 23760072.186 23760072.817
+ 26.800 24.200
+ -13862603.649 7 -10802027.118 6 21081324.042 21081321.196 21081323.093
+ 44.000 39.100
+ -894151.574 3 -696741.444 2 24423860.833 24423858.495 24423858.982
+ 23.800 12.600
+ -8627706.988 5 -6722888.270 4 23002199.164 23002196.409 23002197.822
+ 35.900 27.100
+ -3230481.876 3 -2517262.271 3 24108144.213 24108141.172 24108143.221
+ 23.800 23.400
+ -19799772.477 7 -15428388.863 7 20771281.415 20771279.405 20771280.705
+ 45.800 45.400
+ -15310199.984 7 -11930019.324 5 21745083.379 21745081.459 21745083.136
+ 42.300 35.200
+ 06 1 2 8 7 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19795416.925 7 -15424998.379 7 20495398.148 20495396.484 20495397.353
+ 46.400 46.100
+ -3666357.277 4 -2856896.393 3 23777997.333 23777995.796 23777995.843
+ 26.500 23.400
+ -13813424.899 7 -10763706.015 6 21090682.686 21090679.677 21090681.568
+ 44.000 39.200
+ -1009581.328 3 -786686.676 1 24401893.646 24401892.740 24401893.086
+ 21.600 11.000
+ -8707469.802 6 -6785041.102 4 22987020.893 22987017.726 22987019.681
+ 38.000 26.800
+ -3118647.606 3 -2430118.737 4 24129423.361 24129422.948 24129424.311
+ 23.000 24.900
+ -19824591.552 7 -15447728.399 7 20766558.625 20766556.400 20766557.857
+ 45.800 45.300
+ -15262799.535 7 -11893083.916 5 21754103.421 21754101.698 21754103.222
+ 42.500 34.900
+ 06 1 2 8 8 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19816486.717 7 -15441416.403 7 20491388.879 20491386.960 20491387.981
+ 46.300 46.200
+ -3571855.467 4 -2783258.619 3 23795980.588 23795978.815 23795979.527
+ 28.400 22.100
+ -13763915.991 7 -10725127.648 6 21100103.477 21100100.936 21100102.612
+ 43.700 39.300
+ -1124958.554 3 -876590.925 2 24379938.835 24379937.763 24379937.452
+ 18.600 16.100
+ -8786832.302 6 -6846882.020 4 22971918.203 22971915.995 22971917.101
+ 37.100 28.600
+ -3006709.662 3 -2342894.487 3 24150728.577 24150724.081 24150727.150
+ 23.800 22.100
+ -19849071.083 7 -15466803.355 7 20761900.373 20761898.085 20761899.653
+ 46.100 45.200
+ -15214826.957 7 -11855702.681 5 21763232.964 21763230.513 21763232.377
+ 42.400 34.900
+ 06 1 2 8 8 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19837230.788 7 -15457580.616 7 20487441.372 20487439.555 20487440.473
+ 46.300 46.200
+ -3477044.480 4 -2709379.913 3 23814022.564 23814020.379 23814021.683
+ 29.200 22.100
+ -13714077.215 7 -10686292.245 6 21109587.838 21109584.877 21109586.635
+ 43.800 39.100
+ -1240280.711 4 -966452.228 2 24357994.090 24357992.626 24357992.722
+ 24.200 16.100
+ -8865792.129 6 -6908409.173 4 22956892.721 22956890.110 22956891.600
+ 36.500 28.100
+ -2894670.356 4 -2255591.180 2 24172046.063 24172043.659 24172045.999
+ 24.200 15.100
+ -19873211.379 7 -15485613.977 7 20757306.827 20757304.355 20757306.036
+ 46.200 45.200
+ -15166284.166 7 -11817877.128 5 21772469.795 21772467.864 21772469.598
+ 42.200 35.300
+ 06 1 2 8 9 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19857648.286 7 -15473490.356 7 20483556.160 20483554.279 20483555.240
+ 46.400 46.300
+ -3381927.083 4 -2635262.472 3 23832122.992 23832121.236 23832121.996
+ 27.100 22.100
+ -13663908.658 7 -10647199.868 6 21119134.223 21119131.612 21119133.394
+ 43.700 39.100
+ -1355545.470 4 -1056268.869 2 24336060.390 24336057.677 24336058.474
+ 24.200 13.900
+ -8944346.865 5 -6969620.636 4 22941944.380 22941941.734 22941943.218
+ 35.700 28.100
+ -2782532.083 4 -2168210.729 3 24193384.942 24193383.364 24193385.535
+ 25.300 19.900
+ -19897012.809 7 -15504160.542 7 20752777.238 20752775.162 20752776.625
+ 46.200 45.400
+ -15117172.862 7 -11779608.586 5 21781815.778 21781813.676 21781815.264
+ 42.400 35.400
+ 06 1 2 8 9 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19877738.085 7 -15489144.745 7 20479732.911 20479731.252 20479732.119
+ 46.300 46.200
+ -3286506.083 4 -2560908.432 2 23850281.788 23850278.585 23850280.532
+ 28.100 17.000
+ -13613410.275 7 -10607850.486 6 21128743.793 21128741.301 21128742.883
+ 43.800 39.100
+ -1470750.416 3 -1146038.922 2 24314137.835 24314134.897 24314135.922
+ 23.400 12.600
+ -9022493.660 5 -7030514.248 4 22927073.109 22927071.127 22927071.845
+ 35.100 29.000
+ -2670296.992 4 -2080754.897 3 24214744.201 24214740.659 24214743.609
+ 27.100 19.300
+ -19920475.531 7 -15522443.181 7 20748312.531 20748310.249 20748311.806
+ 46.200 45.300
+ -15067494.992 7 -11740898.561 5 21791268.776 21791266.912 21791268.518
+ 42.400 34.800
+ 06 1 2 8 10 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19897499.243 7 -15504543.051 7 20475972.650 20475970.790 20475971.760
+ 46.200 46.300
+ -3190784.138 4 -2486319.865 3 23868495.476 23868493.830 23868494.705
+ 24.600 19.900
+ -13562582.481 7 -10568244.421 6 21138416.305 21138413.527 21138415.204
+ 44.000 39.000
+ -1585892.573 3 -1235760.017 3 24292224.047 24292224.197 24292224.155
+ 22.100 18.600
+ -9100230.013 6 -7091088.013 4 22912281.181 22912278.600 22912279.892
+ 36.800 29.900
+ -2557967.470 4 -1993225.412 3 24236120.044 24236116.522 24236118.949
+ 26.200 18.600
+ -19943599.918 7 -15540462.184 7 20743912.130 20743909.789 20743911.414
+ 46.100 45.300
+ -15017252.487 7 -11701748.551 5 21800829.751 21800827.332 21800829.478
+ 42.300 34.600
+ 06 1 2 8 10 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19916930.763 7 -15519684.495 7 20472274.867 20472273.246 20472274.008
+ 46.100 46.300
+ -3094763.925 4 -2411498.950 3 23886768.137 23886765.639 23886767.168
+ 28.600 19.900
+ -13511425.635 7 -10528381.951 6 21148151.022 21148148.145 21148150.157
+ 44.100 38.800
+ -1700969.320 3 -1325430.102 2 24270328.113 24270325.434 24270327.214
+ 22.100 15.100
+ -9177553.691 6 -7151340.227 5 22897566.659 22897564.302 22897565.628
+ 36.900 30.100
+ -2445545.877 3 -1905624.252 3 24257512.643 24257510.011 24257512.394
+ 22.600 19.300
+ -19966386.453 7 -15558217.927 7 20739575.921 20739573.698 20739575.231
+ 46.100 45.300
+ -14966447.209 7 -11662160.020 5 21810497.483 21810495.424 21810497.277
+ 42.100 34.900
+ 06 1 2 8 11 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19936031.637 7 -15534568.294 7 20468640.023 20468638.418 20468639.196
+ 46.300 46.300
+ -2998448.320 4 -2336447.831 3 23905096.371 23905094.650 23905095.317
+ 28.800 22.600
+ -13459939.755 7 -10488263.092 6 21157948.811 21157945.624 21157947.619
+ 44.000 39.000
+ -1815978.155 3 -1415047.343 2 24248440.902 24248440.523 24248440.399
+ 22.100 17.000
+ -9254461.906 6 -7211268.695 4 22882930.874 22882928.540 22882929.977
+ 36.200 28.800
+ -2333034.464 3 -1817953.069 2 24278923.514 24278919.548 24278922.799
+ 23.000 17.000
+ -19988835.389 7 -15575710.604 7 20735304.151 20735301.906 20735303.441
+ 46.300 45.600
+ -14915081.151 6 -11622134.517 5 21820272.502 21820270.379 21820272.072
+ 41.800 35.300
+ 06 1 2 8 11 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19954800.698 7 -15549193.539 7 20465068.512 20465066.722 20465067.668
+ 46.200 46.400
+ -2901840.001 4 -2261168.637 3 23923481.081 23923478.559 23923479.945
+ 29.900 19.300
+ -13408125.016 7 -10447887.985 6 21167808.696 21167805.781 21167807.722
+ 44.300 38.900
+ -1930916.885 3 -1504609.856 3 24226568.600 24226568.550 24226568.233
+ 19.300 19.300
+ -9330952.377 6 -7270871.661 4 22868375.651 22868373.301 22868374.394
+ 36.000 28.800
+ -2220435.455 3 -1730213.593 3 24300348.527 24300347.314 24300348.912
+ 23.000 18.600
+ -20010947.171 7 -15592940.563 7 20731096.441 20731094.193 20731095.695
+ 46.300 45.600
+ -14863156.198 6 -11581673.521 5 21830152.816 21830151.308 21830152.721
+ 41.800 34.500
+ 06 1 2 8 12 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19973237.069 7 -15563559.542 7 20461560.065 20461558.472 20461559.280
+ 46.100 46.300
+ -2804941.719 4 -2185663.429 2 23941919.522 23941917.079 23941918.197
+ 26.500 15.100
+ -13355981.881 7 -10407256.976 6 21177731.310 21177728.313 21177730.294
+ 44.400 38.900
+ -2045782.638 3 -1594115.591 2 24204711.343 24204709.072 24204710.274
+ 23.400 13.900
+ -9407022.304 6 -7330146.942 4 22853900.098 22853897.049 22853898.812
+ 36.500 27.600
+ -2107751.278 4 -1642407.832 3 24321792.772 24321790.382 24321792.540
+ 25.300 23.400
+ -20032722.071 7 -15609908.015 7 20726952.692 20726950.654 20726952.015
+ 46.400 45.700
+ -14810674.356 6 -11540778.581 5 21840140.106 21840138.096 21840139.752
+ 41.900 34.100
+ 06 1 2 8 12 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -19991339.803 7 -15577665.568 7 20458115.209 20458113.612 20458114.394
+ 46.100 46.400
+ -2707756.184 4 -2109934.461 3 23960413.404 23960411.673 23960412.727
+ 27.100 19.300
+ -13303510.312 7 -10366370.046 6 21187716.016 21187713.311 21187715.218
+ 44.400 38.700
+ -2160573.371 3 -1683562.851 3 24182866.776 24182865.899 24182865.665
+ 23.800 18.600
+ -9482669.187 6 -7389092.558 4 22839504.819 22839502.425 22839503.605
+ 36.400 29.500
+ -1994984.330 3 -1554537.542 3 24343253.981 24343249.066 24343252.599
+ 23.000 22.100
+ -20054160.527 7 -15626613.305 7 20722873.154 20722870.952 20722872.486
+ 46.400 45.700
+ -14757637.596 6 -11499451.238 5 21850232.701 21850230.848 21850232.398
+ 41.900 34.700
+ 06 1 2 8 13 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20009107.856 7 -15591510.803 7 20454733.989 20454732.504 20454733.202
+ 46.000 46.300
+ -2610286.147 4 -2033983.787 2 23978961.806 23978958.947 23978960.416
+ 28.400 17.800
+ -13250710.891 7 -10325227.649 6 21197763.574 21197760.657 21197762.678
+ 44.400 38.500
+ -2275285.864 4 -1772949.148 3 24161038.505 24161036.825 24161037.202
+ 25.300 20.500
+ -9557890.909 6 -7447706.890 4 22825190.659 22825188.408 22825189.520
+ 36.700 29.900
+ -1882136.784 3 -1466604.433 3 24364725.970 24364723.700 24364725.043
+ 21.600 22.600
+ -20075262.954 7 -15643056.753 7 20718857.712 20718855.230 20718856.957
+ 46.600 45.600
+ -14704047.976 7 -11457693.088 5 21860430.434 21860428.295 21860430.219
+ 42.300 34.400
+ 06 1 2 8 13 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -20026540.227 7 -15605094.469 7 20451416.835 20451415.199 20451415.949
+ 46.000 46.400
+ -2512534.319 4 -1957813.493 3 23997563.054 23997561.071 23997562.275
+ 28.800 19.900
+ -13197583.543 7 -10283829.720 6 21207873.539 21207870.490 21207872.449
+ 44.200 38.500
+ -2389918.087 3 -1862272.885 3 24139223.676 24139223.022 24139222.924
+ 22.100 20.500
+ -9632684.822 6 -7505987.858 5 22810957.876 22810955.634 22810956.663
+ 37.300 30.200
+ -1769210.926 3 -1378610.371 4 24386214.651 24386213.264 24386214.489
+ 22.100 24.200
+ -20096029.574 7 -15659238.535 7 20714905.692 20714903.476 20714904.964
+ 46.300 45.700
+ -14649907.432 6 -11415505.645 5 21870733.011 21870730.869 21870732.741
+ 41.800 34.100
+ 06 1 2 8 14 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20043635.979 7 -15618415.829 7 20448163.654 20448161.912 20448162.768
+ 46.000 46.300
+ -2414503.306 3 -1881425.707 3 24016217.157 24016215.782 24016216.254
+ 23.800 19.300
+ -13144128.613 7 -10242176.543 6 21218045.425 21218042.656 21218044.528
+ 44.300 38.100
+ -2504467.210 3 -1951531.865 2 24117424.875 24117424.729 24117424.472
+ 20.500 17.800
+ -9707048.377 6 -7563933.478 5 22796807.115 22796804.618 22796805.850
+ 37.800 30.800
+ -1656209.470 3 -1290557.373 3 24407719.128 24407715.876 24407717.927
+ 21.100 23.000
+ -20116460.781 7 -15675158.953 7 20711017.859 20711015.526 20711017.137
+ 46.400 45.700
+ -14595218.077 6 -11372890.568 5 21881140.263 21881138.089 21881139.969
+ 41.600 34.300
+ 06 1 2 8 14 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -20060394.119 7 -15631474.120 7 20444974.672 20444972.977 20444973.835
+ 46.100 46.300
+ -2316196.042 4 -1804822.651 2 24034925.009 24034922.762 24034923.533
+ 25.900 17.000
+ -13090346.341 7 -10200268.288 6 21228279.918 21228276.913 21228278.944
+ 44.000 38.100
+ -2618930.622 4 -2040724.067 3 24095644.391 24095643.338 24095643.634
+ 24.900 21.600
+ -9780979.032 6 -7621541.768 4 22782738.477 22782736.010 22782737.196
+ 37.300 29.900
+ -1543134.399 3 -1202446.968 3 24429236.215 24429233.322 24429235.563
+ 23.000 21.100
+ -20136557.053 7 -15690818.386 7 20707193.552 20707191.330 20707192.906
+ 46.500 45.700
+ -14539981.880 7 -11329849.379 5 21891651.321 21891649.321 21891651.095
+ 42.100 34.400
+ 06 1 2 8 15 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20076813.592 7 -15644268.514 7 20441850.146 20441848.489 20441849.357
+ 46.200 46.400
+ -2217615.156 4 -1728006.372 3 24053684.514 24053682.428 24053683.221
+ 25.600 22.100
+ -13036236.974 7 -10158105.153 6 21238576.434 21238573.586 21238575.607
+ 44.000 37.800
+ -2733305.951 4 -2129847.627 2 24073878.398 24073877.778 24073878.356
+ 26.200 13.900
+ -9854474.313 6 -7678810.828 4 22768752.653 22768750.225 22768751.527
+ 37.200 29.900
+ -1429988.177 3 -1114281.157 3 24450765.914 24450765.323 24450766.065
+ 22.100 21.100
+ -20156318.700 7 -15706217.072 7 20703432.908 20703430.783 20703432.326
+ 46.300 45.800
+ -14484200.971 6 -11286383.735 5 21902266.539 21902263.917 21902265.959
+ 41.800 34.100
+ 06 1 2 8 15 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -20092893.413 7 -15656798.244 7 20438790.297 20438788.531 20438789.505
+ 46.200 46.400
+ -2118763.412 4 -1650979.056 3 24072495.686 24072493.018 24072494.177
+ 26.500 19.900
+ -12981800.663 7 -10115687.261 6 21248935.479 21248932.544 21248934.483
+ 43.800 38.000
+ -2847590.530 3 -2218900.499 3 24052131.305 24052130.843 24052130.413
+ 23.000 20.500
+ -9927531.787 6 -7735738.731 4 22754850.234 22754847.564 22754849.116
+ 37.600 28.600
+ -1316772.874 4 -1026061.560 3 24472312.463 24472309.197 24472311.453
+ 26.500 20.500
+ -20175746.180 7 -15721355.367 7 20699736.140 20699733.873 20699735.445
+ 46.300 45.800
+ -14427877.510 6 -11242495.318 5 21912983.936 21912981.808 21912983.769
+ 41.900 33.900
+ 06 1 2 8 16 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20108632.603 7 -15669062.549 7 20435795.280 20435793.407 20435794.416
+ 46.100 46.300
+ -2019643.510 4 -1573742.733 2 24091357.048 24091354.632 24091356.135
+ 26.200 15.100
+ -12927037.881 7 -10073014.983 6 21259356.657 21259353.633 21259355.658
+ 43.900 38.400
+ -2961781.758 4 -2307880.633 2 24030400.826 24030400.372 24030400.193
+ 24.600 16.100
+ -10000149.215 6 -7792323.733 4 22741031.664 22741028.915 22741030.651
+ 38.500 28.100
+ -1203490.953 4 -937789.961 2 24493868.404 24493865.115 24493867.831
+ 25.600 17.000
+ -20194839.873 7 -15736233.568 7 20696102.740 20696100.541 20696102.071
+ 46.300 45.900
+ -14371013.482 6 -11198185.686 5 21923804.626 21923802.859 21923804.403
+ 41.200 33.600
+ 06 1 2 8 16 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -20124030.320 7 -15681060.769 7 20432865.101 20432863.351 20432864.269
+ 46.000 46.300
+ -1920258.128 4 -1496299.588 3 24110269.093 24110267.944 24110268.106
+ 24.600 20.500
+ -12871948.793 7 -10030088.433 6 21269839.913 21269836.871 21269838.752
+ 43.800 38.100
+ -3075877.192 3 -2396786.093 2 24008688.480 24008688.639 24008688.520
+ 21.100 16.100
+ -10072324.047 6 -7848563.888 4 22727297.103 22727294.244 22727296.140
+ 38.100 28.800
+ -1090144.576 3 -849468.180 2 24515437.723 24515435.071 24515437.173
+ 23.800 13.900
+ -20213600.092 7 -15750851.919 7 20692532.845 20692530.527 20692532.126
+ 46.300 46.000
+ -14313611.073 6 -11153456.542 5 21934728.043 21934726.053 21934727.853
+ 41.300 33.500
+ 06 1 2 8 17 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20139085.388 7 -15692791.988 7 20430000.310 20429998.435 20429999.438
+ 46.000 46.300
+ -1820610.138 4 -1418651.808 3 24129232.341 24129230.211 24129230.776
+ 25.600 20.500
+ -12816533.858 7 -9986907.971 6 21280384.630 21280381.914 21280383.755
+ 43.700 37.900
+ -3189874.313 3 -2485614.997 2 23986995.816 23986995.664 23986995.870
+ 23.000 17.000
+ -10144053.783 6 -7904457.182 4 22713647.228 22713644.668 22713646.020
+ 37.300 28.600
+ -976736.402 3 -761098.232 1 24537018.032 24537016.632 24537017.720
+ 22.600 9.000
+ -20232027.328 7 -15765210.804 7 20689026.310 20689023.934 20689025.578
+ 46.300 45.800
+ -14255672.461 6 -11108309.564 5 21945753.485 21945751.299 21945753.200
+ 41.200 33.900
+ 06 1 2 8 17 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -20153796.832 7 -15704255.454 7 20427200.689 20427198.948 20427199.889
+ 46.100 46.200
+ -1720702.175 4 -1340801.473 3 24148242.414 24148241.875 24148241.924
+ 24.900 19.900
+ -12760793.276 7 -9943473.758 6 21290992.117 21290988.911 21290990.870
+ 43.400 37.700
+ -3303770.391 4 -2574365.086 2 23965322.818 23965321.588 23965322.439
+ 24.200 17.800
+ -10215336.062 6 -7960001.820 5 22700083.081 22700080.392 22700081.799
+ 37.100 30.100
+ -863268.708 3 -672681.823 9 24558610.108 24558607.792 24558609.588
+ 21.100 -3.000
+ -20250121.960 7 -15779310.516 7 20685582.820 20685580.687 20685582.158
+ 46.400 46.100
+ -14197199.663 6 -11062746.344 5 21956880.480 21956878.540 21956880.302
+ 41.600 34.400
+ 06 1 2 8 18 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20168163.747 7 -15715450.455 7 20424466.800 20424465.066 20424465.981
+ 46.100 46.200
+ -1620536.891 4 -1262750.594 2 24167303.607 24167302.403 24167303.056
+ 25.600 17.800
+ -12704727.096 7 -9899785.834 6 21301660.807 21301658.037 21301659.895
+ 43.600 37.700
+ -3417562.865 3 -2663034.509 3 23943669.817 23943668.165 23943668.332
+ 23.400 21.100
+ -10286168.461 6 -8015195.881 4 22686603.916 22686601.435 22686602.942
+ 38.200 29.700
+ -749743.403 3 -584220.614 3 24580215.648 24580211.419 24580214.162
+ 21.600 18.600
+ -20267884.368 7 -15793151.355 7 20682202.842 20682200.630 20682202.109
+ 46.400 45.900
+ -14138194.946 6 -11016768.647 5 21968108.833 21968106.951 21968108.455
+ 41.100 34.100
+ 06 1 2 8 18 30.0000000 0 8G01G05G14G16G20G22G25G30
+ -20182185.096 7 -15726376.183 7 20421798.604 20421796.851 20421797.792
+ 46.200 46.300
+ -1520117.039 3 -1184501.352 2 24186415.019 24186411.550 24186412.917
+ 23.800 17.000
+ -12648335.961 7 -9855844.697 6 21312391.692 21312389.033 21312390.730
+ 43.400 37.700
+ -3531249.358 4 -2751621.270 3 23922035.964 23922034.346 23922034.588
+ 24.200 21.100
+ -10356548.527 6 -8070037.502 5 22673210.953 22673208.966 22673210.051
+ 38.700 31.000
+ -636163.336 3 -495716.765 2 24601826.536 24601825.464 24601826.597
+ 22.100 17.800
+ -20285315.047 7 -15806733.700 7 20678885.902 20678883.666 20678885.173
+ 46.300 46.000
+ -14078660.481 6 -10970378.158 5 21979437.649 21979435.715 21979437.396
+ 40.900 33.600
+ 06 1 2 8 19 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20195859.967 7 -15737031.925 7 20419196.344 20419194.627 20419195.496
+ 46.000 46.300
+ -1419445.438 4 -1106055.943 2 24205570.647 24205569.113 24205569.598
+ 27.100 16.100
+ -12591619.964 7 -9811650.421 6 21323184.540 21323181.677 21323183.456
+ 43.400 37.700
+ -3644827.047 4 -2840123.331 3 23900422.185 23900420.576 23900420.898
+ 24.200 19.900
+ -10426474.020 6 -8124524.898 4 22659905.144 22659902.281 22659903.824
+ 38.600 29.900
+ -522530.442 3 -407171.707 3 24623451.062 24623448.407 24623450.040
+ 21.100 19.900
+ -20302414.414 7 -15820057.877 7 20675631.984 20675629.703 20675631.288
+ 46.300 46.000
+ -14018598.492 6 -10923576.603 5 21990867.640 21990865.100 21990867.231
+ 41.300 33.800
+ 06 1 2 8 19 30.0000000 0 7G01G05G14G16G20G25G30
+ -20209187.439 7 -15747416.969 7 20416660.296 20416658.546 20416659.416
+ 46.000 46.200
+ -1318524.768 4 -1027416.431 2 24224775.155 24224773.159 24224774.727
+ 28.100 16.100
+ -12534579.615 7 -9767203.404 6 21334038.870 21334036.087 21334037.809
+ 43.300 37.400
+ -3758293.640 4 -2928538.808 3 23878830.339 23878828.904 23878829.587
+ 27.900 21.600
+ -10495942.491 6 -8178656.180 4 22646685.571 22646682.689 22646684.343
+ 38.100 29.000
+ -20319182.920 7 -15833124.245 7 20672441.208 20672438.748 20672440.391
+ 46.400 45.900
+ -13958011.144 6 -10876365.682 5 22002396.897 22002394.592 22002396.521
+ 41.000 34.000
+ 06 1 2 8 20 0.0000000 0 7G01G05G14G16G20G25G30
+ -20222166.616 7 -15757530.615 7 20414190.250 20414188.660 20414189.447
+ 46.000 46.200
+ -1217357.635 4 -948584.899 3 24244026.310 24244024.983 24244025.393
+ 25.900 19.900
+ -12477215.027 7 -9722503.734 6 21344954.852 21344952.211 21344953.968
+ 43.400 37.500
+ -3871646.363 4 -3016865.594 3 23857260.252 23857258.832 23857259.179
+ 26.800 19.300
+ -10564951.421 6 -8232429.385 5 22633553.567 22633550.934 22633552.441
+ 38.500 30.400
+ -20335620.871 7 -15845933.039 7 20669312.909 20669310.722 20669312.230
+ 46.200 46.000
+ -13896900.731 6 -10828747.185 5 22014025.505 22014023.486 22014025.244
+ 41.000 33.500
+ 06 1 2 8 20 30.0000000 0 7G01G05G14G16G20G25G30
+ -20234796.422 7 -15767372.023 7 20411786.994 20411785.246 20411786.160
+ 46.000 46.400
+ -1115946.780 4 -869563.463 3 24263324.737 24263322.947 24263323.336
+ 24.600 18.600
+ -12419526.738 7 -9677551.827 6 21355932.881 21355929.983 21355931.779
+ 43.300 37.500
+ -3984882.696 4 -3105101.645 3 23835713.135 23835709.952 23835711.419
+ 28.100 18.600
+ -10633498.667 6 -8285842.821 5 22620509.300 22620506.755 22620508.314
+ 38.900 30.400
+ -20351728.805 7 -15858484.671 7 20666247.642 20666245.559 20666247.001
+ 46.200 46.100
+ -13835269.354 6 -10780722.739 5 22025753.729 22025751.621 22025753.453
+ 40.900 33.900
+ 06 1 2 8 21 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20247075.848 7 -15776940.410 7 20409450.310 20409448.511 20409449.467
+ 46.200 46.300
+ -1014294.980 4 -790354.276 3 24282669.193 24282666.035 24282667.247
+ 24.600 20.500
+ -92302.160 3 -71923.565 3 24696493.257 24696493.793 24696494.130
+ 23.800 19.900
+ -12361514.863 7 -9632347.785 6 21366972.044 21366969.187 21366971.038
+ 43.100 37.200
+ -4098000.119 4 -3193245.024 3 23814185.159 23814184.894 23814184.824
+ 25.900 21.100
+ -10701581.792 6 -8338894.600 5 22607553.502 22607551.112 22607552.372
+ 39.000 30.800
+ -20367507.164 7 -15870779.496 7 20663245.213 20663243.077 20663244.526
+ 46.500 46.200
+ -13773119.449 6 -10732294.236 5 22037580.145 22037578.478 22037579.851
+ 40.200 34.000
+ 06 1 2 8 21 30.0000000 0 8G01G05G06G14G16G20G25G30
+ -20259004.058 7 -15786235.122 7 20407180.584 20407178.690 20407179.741
+ 46.100 46.300
+ -912404.957 4 -710959.465 3 24302057.304 24302054.827 24302056.494
+ 26.200 18.600
+ -161281.082 3 -125673.369 3 24683369.917 24683367.903 24683368.000
+ 22.600 21.100
+ -12303179.828 7 -9586891.921 6 21378072.717 21378069.961 21378071.790
+ 43.300 37.100
+ -4210996.002 4 -3281293.711 3 23792683.074 23792682.025 23792682.227
+ 24.900 20.500
+ -10769198.411 6 -8391582.867 5 22594687.028 22594684.019 22594685.566
+ 39.100 31.100
+ -20382956.268 7 -15882817.759 7 20660305.324 20660303.219 20660304.587
+ 46.400 46.200
+ -13710453.135 6 -10683463.361 5 22049505.046 22049503.547 22049504.932
+ 40.600 34.300
+ 06 1 2 8 22 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20270580.112 7 -15795255.424 7 20404977.848 20404975.935 20404976.905
+ 45.900 46.400
+ -810279.286 4 -631380.999 2 24321490.341 24321488.869 24321489.823
+ 25.600 15.100
+ -230045.019 3 -179255.649 2 24670284.710 24670282.025 24670282.680
+ 23.000 17.800
+ -12244522.080 7 -9541184.597 6 21389235.126 21389232.181 21389234.021
+ 43.400 37.100
+ -4323867.909 4 -3369245.773 3 23771204.982 23771203.387 23771203.918
+ 25.600 21.600
+ -10836346.351 6 -8443905.942 5 22581908.734 22581905.992 22581907.603
+ 39.300 30.400
+ -20398076.666 7 -15894599.885 7 20657428.057 20657425.933 20657427.386
+ 46.400 46.200
+ -13647272.799 6 -10634231.926 5 22061528.220 22061526.102 22061527.980
+ 40.700 33.400
+ 06 1 2 8 22 30.0000000 0 8G01G05G06G14G16G20G25G30
+ -20281802.921 7 -15804000.467 7 20402842.035 20402840.246 20402841.205
+ 45.700 46.100
+ -707920.676 3 -551621.045 2 24340968.712 24340967.218 24340967.850
+ 22.600 15.100
+ -298591.214 4 -232668.235 2 24657239.993 24657238.555 24657238.889
+ 24.200 17.800
+ -12185541.836 7 -9495225.968 6 21400458.328 21400455.712 21400457.632
+ 43.200 36.700
+ -4436613.092 3 -3457099.128 3 23749749.774 23749748.756 23749748.836
+ 21.600 21.600
+ -10903022.970 6 -8495861.752 5 22569220.537 22569218.132 22569219.606
+ 39.500 31.000
+ -20412868.786 7 -15906126.207 7 20654613.441 20654611.033 20654612.685
+ 46.400 46.300
+ -13583580.682 6 -10584601.706 5 22073648.227 22073646.168 22073648.094
+ 40.200 32.300
+ 06 1 2 8 23 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20292671.528 7 -15812469.515 7 20400773.722 20400771.976 20400772.921
+ 46.000 46.200
+ -605332.044 3 -471681.839 3 24360491.821 24360489.630 24360490.120
+ 21.100 18.600
+ -366916.820 3 -285908.919 2 24644237.525 24644235.871 24644236.898
+ 22.600 17.000
+ -12126239.398 7 -9449016.288 6 21411743.632 21411740.621 21411742.544
+ 43.200 37.000
+ -4549229.094 4 -3544851.801 4 23728320.087 23728318.891 23728319.071
+ 25.900 24.200
+ -10969225.600 6 -8547448.224 5 22556622.808 22556620.303 22556621.788
+ 39.900 31.600
+ -20427333.125 7 -15917397.116 7 20651860.785 20651858.581 20651860.134
+ 46.500 46.400
+ -13519379.111 6 -10534574.508 5 22085865.472 22085863.388 22085865.230
+ 40.900 32.700
+ 06 1 2 8 23 30.0000000 0 8G01G05G06G14G16G20G25G30
+ -20303185.131 7 -15820661.935 7 20398773.177 20398771.340 20398772.261
+ 45.900 46.300
+ -502515.840 3 -391565.350 3 24380057.743 24380054.828 24380056.131
+ 23.000 19.300
+ -435019.243 3 -338975.718 2 24631278.070 24631276.337 24631277.152
+ 22.600 15.100
+ -12066615.378 7 -9402556.017 6 21423089.430 21423086.842 21423088.629
+ 43.300 36.900
+ -4661713.176 4 -3632501.675 3 23706914.965 23706913.336 23706914.153
+ 25.600 20.500
+ -11034953.178 6 -8598664.506 5 22544115.326 22544112.783 22544114.119
+ 39.600 32.100
+ -20441470.025 7 -15928412.878 7 20649170.543 20649168.380 20649169.924
+ 46.700 46.400
+ -13454670.384 6 -10484152.119 5 22098179.232 22098177.096 22098178.888
+ 40.500 32.800
+ 06 1 2 8 24 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20313342.765 7 -15828576.976 7 20396840.214 20396838.453 20396839.318
+ 46.100 46.300
+ -399474.863 4 -311273.662 3 24399665.737 24399662.863 24399664.143
+ 25.600 21.100
+ -502895.591 3 -391866.344 1 24618361.137 24618359.520 24618360.527
+ 22.600 9.000
+ -12006669.926 7 -9355845.290 6 21434497.205 21434494.123 21434496.003
+ 43.400 36.800
+ -4774062.790 4 -3720046.773 3 23685536.139 23685534.257 23685534.603
+ 27.100 23.000
+ -11100202.934 6 -8649508.466 5 22531698.474 22531696.082 22531697.123
+ 39.100 31.300
+ -20455280.012 7 -15939173.902 7 20646542.575 20646540.351 20646541.922
+ 46.400 46.400
+ -13389456.823 6 -10433336.364 5 22110588.922 22110586.768 22110588.603
+ 40.600 32.800
+ 06 1 2 8 24 30.0000000 0 8G01G05G06G14G16G20G25G30
+ -20323143.599 7 -15836213.989 7 20394975.099 20394973.383 20394974.221
+ 46.000 46.300
+ -296211.833 3 -230808.988 3 24419313.780 24419313.122 24419313.501
+ 22.600 18.600
+ -570543.137 3 -444578.712 1 24605488.228 24605486.662 24605487.401
+ 22.600 11.000
+ -11946403.625 7 -9308884.540 6 21445964.962 21445962.287 21445964.227
+ 43.500 36.500
+ -4886275.587 4 -3807485.276 3 23664182.571 23664180.349 23664181.338
+ 27.100 20.500
+ -11164972.405 6 -8699978.185 5 22519373.157 22519370.626 22519372.011
+ 39.800 30.600
+ -20468763.551 7 -15949680.552 7 20643976.685 20643974.485 20643976.026
+ 46.400 46.300
+ -13323740.880 6 -10382129.133 5 22123094.203 22123091.962 22123094.045
+ 40.800 32.400
+ 06 1 2 8 25 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20332586.614 7 -15843572.182 7 20393178.183 20393176.297 20393177.358
+ 46.000 46.100
+ -192729.350 3 -150173.305 3 24439006.927 24439005.268 24439005.038
+ 19.900 18.600
+ -637958.878 4 -497110.422 2 24592660.077 24592658.470 24592659.080
+ 24.200 16.100
+ -11885816.610 7 -9261673.890 6 21457494.733 21457491.519 21457493.623
+ 43.400 36.600
+ -4998348.841 4 -3894815.001 3 23642855.635 23642853.879 23642854.193
+ 25.900 23.000
+ -11229259.159 6 -8750071.766 5 22507139.831 22507137.367 22507138.735
+ 40.000 30.600
+ -20481921.071 7 -15959933.164 7 20641472.963 20641470.756 20641472.283
+ 46.400 46.400
+ -13257524.850 6 -10330532.229 5 22135694.905 22135692.695 22135694.507
+ 40.000 32.400
+ 06 1 2 8 25 30.0000000 0 7G01G06G14G16G20G25G30
+ -20341670.781 7 -15850650.755 7 20391449.495 20391447.621 20391448.691
+ 46.200 46.100
+ -705140.339 3 -549459.613 3 24579875.821 24579874.913 24579874.869
+ 23.000 21.100
+ -11824909.261 7 -9214213.629 6 21469084.577 21469081.962 21469083.738
+ 43.100 36.900
+ -5110279.887 4 -3982033.981 3 23621556.630 23621553.573 23621554.744
+ 26.200 21.100
+ -11293061.140 6 -8799787.588 5 22494998.602 22494996.152 22494997.623
+ 40.100 30.200
+ -20494752.984 7 -15969932.050 7 20639031.182 20639028.900 20639030.509
+ 46.400 46.400
+ -13190811.058 6 -10278547.455 5 22148390.182 22148387.781 22148389.709
+ 40.000 32.000
+ 06 1 2 8 26 0.0000000 0 7G01G06G14G16G20G25G30
+ -20350395.223 7 -15857449.022 7 20389789.186 20389787.456 20389788.475
+ 46.000 46.200
+ -772084.462 3 -601623.831 3 24567136.520 24567135.577 24567135.735
+ 23.400 20.500
+ -11763682.170 7 -9166504.227 6 21480735.856 21480733.170 21480734.838
+ 42.800 36.500
+ -5222066.361 4 -4069140.240 3 23600283.372 23600281.824 23600282.235
+ 27.400 22.600
+ -11356375.985 6 -8849123.837 5 22482950.303 22482947.713 22482949.223
+ 40.200 30.400
+ -20507259.932 7 -15979677.718 7 20636651.105 20636648.901 20636650.440
+ 46.300 46.400
+ -13123602.003 6 -10226176.753 5 22161179.390 22161177.139 22161179.055
+ 40.000 31.300
+ 06 1 2 8 26 30.0000000 0 7G01G06G14G16G20G25G30
+ -20358758.881 7 -15863966.157 7 20388197.849 20388195.949 20388197.000
+ 46.100 46.200
+ -838788.669 3 -653601.094 3 24554441.914 24554442.170 24554441.790
+ 22.600 21.100
+ -11702135.669 7 -9118545.929 6 21492447.986 21492445.087 21492446.899
+ 43.000 36.300
+ -5333705.739 4 -4156131.925 3 23579039.090 23579037.142 23579038.037
+ 26.800 20.500
+ -11419201.457 6 -8898078.752 5 22470995.016 22470992.398 22470993.856
+ 39.700 30.200
+ -20519442.331 7 -15989170.498 7 20634332.908 20634330.694 20634332.187
+ 46.300 46.500
+ -13055900.010 6 -10173421.961 5 22174062.522 22174060.599 22174062.160
+ 39.500 31.800
+ 06 1 2 8 27 0.0000000 0 7G01G06G14G16G20G25G30
+ -20366760.916 7 -15870201.511 7 20386675.175 20386673.301 20386674.261
+ 46.000 46.200
+ -905250.036 3 -705389.133 3 24541795.345 24541794.667 24541794.460
+ 22.100 19.900
+ -11640270.047 7 -9070338.960 6 21504220.394 21504217.662 21504219.613
+ 43.000 36.300
+ -5445195.390 4 -4243006.915 3 23557823.694 23557821.207 23557822.374
+ 28.100 20.500
+ -11481535.589 6 -8946650.795 5 22459132.972 22459130.251 22459131.894
+ 39.300 30.200
+ -20531300.590 7 -15998410.696 7 20632076.429 20632074.159 20632075.658
+ 46.400 46.500
+ -12987707.572 6 -10120284.996 5 22187039.332 22187037.203 22187039.028
+ 39.900 32.700
+ 06 1 2 8 27 30.0000000 0 7G01G06G14G16G20G25G30
+ -20374400.521 7 -15876154.448 7 20385221.260 20385219.588 20385220.423
+ 46.000 46.300
+ -971465.964 3 -756985.917 3 24529195.275 24529193.636 24529194.518
+ 23.000 19.900
+ -11578086.049 7 -9021883.913 6 21516053.988 21516050.969 21516052.730
+ 42.700 36.300
+ -5556532.538 4 -4329763.120 3 23536636.448 23536634.377 23536635.228
+ 26.800 21.100
+ -11543375.867 6 -8994838.029 5 22447365.330 22447362.654 22447364.188
+ 40.000 30.200
+ -20542835.237 7 -16007398.727 7 20629881.401 20629879.127 20629880.654
+ 46.300 46.400
+ -12919027.011 6 -10066767.678 5 22200108.468 22200106.811 22200108.246
+ 39.300 32.700
+ 06 1 2 8 28 0.0000000 0 7G01G06G14G16G20G25G30
+ -20381676.688 7 -15881824.192 7 20383836.858 20383834.967 20383835.934
+ 46.100 46.300
+ -1037433.883 3 -808389.459 2 24516642.500 24516640.775 24516641.612
+ 22.600 17.800
+ -11515583.828 7 -8973180.905 6 21527947.238 21527944.757 21527946.486
+ 42.600 36.100
+ -5667714.603 4 -4416398.435 3 23515479.228 23515477.103 23515477.973
+ 25.600 23.400
+ -11604720.623 6 -9042639.129 5 22435691.989 22435689.352 22435690.989
+ 40.300 31.500
+ -20554046.669 7 -16016134.902 7 20627747.835 20627745.629 20627747.164
+ 46.100 46.500
+ -12849860.793 6 -10012871.928 5 22213270.894 22213268.682 22213270.420
+ 39.600 31.800
+ 06 1 2 8 28 30.0000000 0 7G01G06G14G16G20G25G30
+ -20388588.499 7 -15887210.018 7 20382521.258 20382519.627 20382520.528
+ 46.200 46.300
+ -1103150.683 3 -859597.339 2 24504135.512 24504134.765 24504135.522
+ 22.100 17.000
+ -11452763.968 7 -8924230.377 6 21539901.800 21539898.879 21539900.691
+ 42.400 36.100
+ -5778739.258 4 -4502911.125 4 23494352.240 23494350.351 23494350.660
+ 26.800 24.900
+ -11665567.394 6 -9090052.198 5 22424113.157 22424110.731 22424112.119
+ 40.600 31.300
+ -20564935.469 7 -16024619.680 7 20625675.752 20625673.565 20625675.121
+ 46.200 46.500
+ -12780211.471 6 -9958599.727 5 22226524.322 22226522.755 22226523.980
+ 39.500 32.700
+ 06 1 2 8 29 0.0000000 0 7G01G06G14G16G20G25G30
+ -20395135.150 7 -15892311.306 7 20381275.623 20381273.765 20381274.779
+ 46.100 46.000
+ -1168613.665 3 -910607.413 2 24491678.373 24491677.685 24491677.914
+ 21.600 17.800
+ -11389626.779 7 -8875032.586 5 21551916.470 21551913.258 21551915.373
+ 42.500 35.300
+ -5889603.977 4 -4589299.161 3 23473255.330 23473252.613 23473254.171
+ 27.600 21.100
+ -11725914.033 6 -9137075.546 5 22412629.506 22412627.034 22412628.382
+ 40.600 31.300
+ -20575502.132 7 -16032853.437 7 20623665.033 20623662.798 20623664.292
+ 46.000 46.400
+ -12710081.352 6 -9903952.886 5 22239869.570 22239867.851 22239869.219
+ 39.000 32.300
+ 06 1 2 8 29 30.0000000 0 7G01G06G14G16G20G25G30
+ -20401315.760 7 -15897127.365 7 20380099.567 20380097.658 20380098.655
+ 46.200 46.100
+ -1233820.390 3 -961417.825 3 24479270.576 24479269.831 24479270.312
+ 23.400 19.300
+ -11326172.602 7 -8825587.790 5 21563990.971 21563988.349 21563990.358
+ 42.500 35.400
+ -6000306.106 4 -4675560.489 4 23452190.190 23452187.136 23452188.275
+ 27.900 24.200
+ -11785758.464 6 -9183707.570 5 22401241.820 22401239.065 22401240.566
+ 41.000 31.600
+ -20585747.203 7 -16040836.604 7 20621715.332 20621713.275 20621714.694
+ 46.100 46.500
+ -12639473.055 6 -9848933.431 5 22253305.973 22253304.019 22253305.788
+ 39.500 32.000
+ 06 1 2 8 30 0.0000000 0 7G01G06G14G16G20G25G30
+ -20407129.422 7 -15901657.494 7 20378993.359 20378991.391 20378992.449
+ 46.300 46.100
+ -1298768.057 3 -1012026.373 3 24466911.649 24466910.898 24466910.566
+ 23.800 21.100
+ -11262402.004 7 -8775896.441 5 21576127.203 21576123.635 21576125.738
+ 42.300 35.600
+ -6110843.063 4 -4761693.165 3 23431154.677 23431152.394 23431153.323
+ 28.800 23.400
+ -11845098.307 6 -9229946.408 5 22389949.572 22389946.943 22389948.420
+ 40.900 31.100
+ -20595671.050 7 -16048569.469 7 20619827.129 20619824.804 20619826.379
+ 46.200 46.500
+ -12568388.965 6 -9793543.231 5 22266833.156 22266830.795 22266832.691
+ 39.400 31.500
+ 06 1 2 8 30 30.0000000 0 7G01G06G14G16G20G25G30
+ -20412575.239 7 -15905900.985 7 20377956.927 20377955.104 20377956.105
+ 46.500 46.100
+ -1363453.706 4 -1062430.774 2 24454603.168 24454601.241 24454601.807
+ 24.200 16.100
+ -11198315.439 7 -8725958.877 5 21588321.546 21588318.903 21588320.834
+ 42.600 35.400
+ -6221212.184 4 -4847695.013 4 23410151.695 23410149.974 23410150.604
+ 29.000 25.600
+ -11903931.614 6 -9275790.546 5 22378753.938 22378751.323 22378752.769
+ 40.600 31.100
+ -20605274.081 7 -16056052.345 7 20617999.783 20617997.372 20617999.035
+ 46.300 46.400
+ -12496831.504 6 -9737784.170 5 22280449.492 22280447.820 22280449.444
+ 39.100 31.600
+ 06 1 2 8 31 0.0000000 0 7G01G06G14G16G20G25G30
+ -20417652.258 7 -15909857.098 7 20376990.994 20376988.968 20376990.109
+ 46.400 46.200
+ -1427874.877 4 -1112629.082 3 24442343.516 24442342.506 24442342.749
+ 25.300 21.100
+ -11133913.292 7 -8675775.398 5 21600577.241 21600574.188 21600576.124
+ 42.300 35.100
+ -6331411.095 4 -4933564.270 4 23389182.627 23389179.362 23389181.074
+ 29.200 24.200
+ -11962256.410 6 -9321238.443 5 22367654.886 22367652.455 22367653.805
+ 40.300 31.300
+ -20614556.966 7 -16063285.763 7 20616233.230 20616230.912 20616232.508
+ 46.000 46.400
+ -12424803.226 6 -9681658.244 5 22294156.367 22294154.700 22294156.079
+ 39.000 32.400
+ 06 1 2 8 31 30.0000000 0 7G01G06G14G16G20G25G30
+ -20422359.509 7 -15913525.084 7 20376094.962 20376093.164 20376094.158
+ 46.400 46.100
+ -1492028.607 3 -1162618.997 3 24430134.991 24430133.741 24430134.153
+ 23.400 19.900
+ -11069196.228 7 -8625346.523 5 21612892.463 21612889.415 21612891.349
+ 42.400 34.900
+ -6441436.851 4 -5019298.575 4 23368245.389 23368242.385 23368243.730
+ 28.100 24.200
+ -12020070.503 6 -9366288.381 5 22356653.671 22356650.643 22356652.419
+ 40.500 31.100
+ -20623520.181 7 -16070270.085 7 20614527.604 20614525.253 20614526.845
+ 46.100 46.500
+ -12352306.601 6 -9625167.380 5 22307951.824 22307950.239 22307951.610
+ 38.700 31.800
+ 06 1 2 8 32 0.0000000 0 7G01G06G14G16G20G25G30
+ -20426696.154 7 -15916904.291 7 20375269.768 20375267.950 20375268.984
+ 46.400 46.200
+ -1555912.425 3 -1212398.572 3 24417978.474 24417977.377 24417977.711
+ 23.400 21.600
+ -11004164.570 7 -8574672.520 5 21625267.038 21625264.622 21625266.587
+ 42.500 35.600
+ -6551287.143 4 -5104896.171 3 23347340.889 23347338.536 23347339.462
+ 27.600 23.400
+ -12077371.657 6 -9410938.620 5 22345749.455 22345746.858 22345748.297
+ 40.600 31.100
+ -20632164.229 7 -16077005.711 7 20612882.686 20612880.290 20612881.981
+ 46.200 46.300
+ -12279344.264 6 -9568313.609 5 22321836.467 22321834.236 22321836.187
+ 39.300 31.500
+ 06 1 2 8 32 30.0000000 0 7G01G06G14G16G20G25G30
+ -20430661.382 7 -15919994.083 7 20374515.131 20374513.420 20374514.374
+ 46.400 46.200
+ -1619523.518 3 -1261965.597 3 24405873.031 24405872.627 24405872.461
+ 21.100 21.600
+ -10938818.997 6 -8523753.909 5 21637702.610 21637699.670 21637701.316
+ 41.900 35.400
+ -6660959.578 4 -5190355.176 3 23326471.149 23326468.604 23326469.584
+ 29.200 22.100
+ -12134157.851 6 -9455187.604 5 22334943.357 22334940.678 22334942.308
+ 40.900 31.800
+ -20640489.635 7 -16083493.042 7 20611298.278 20611296.025 20611297.612
+ 46.100 46.300
+ -12205918.680 6 -9511098.859 5 22335808.849 22335806.392 22335808.571
+ 38.900 30.600
+ 06 1 2 8 33 0.0000000 0 7G01G06G14G16G20G25G30
+ -20434254.355 7 -15922793.803 7 20373831.362 20373829.671 20373830.586
+ 46.300 46.200
+ -1682859.149 4 -1311317.997 3 24393821.582 24393819.803 24393820.658
+ 25.300 19.300
+ -10873159.738 7 -8472590.872 5 21650196.895 21650194.009 21650195.978
+ 42.300 35.100
+ -6770451.556 4 -5275673.546 4 23305634.907 23305633.036 23305633.939
+ 29.900 24.200
+ -12190427.234 6 -9499033.876 5 22324235.483 22324232.991 22324234.449
+ 40.700 31.300
+ -20648496.894 7 -16089732.465 7 20609774.464 20609772.370 20609773.719
+ 46.000 46.400
+ -12132032.328 6 -9453525.080 5 22349869.026 22349866.630 22349868.514
+ 38.600 31.300
+ 06 1 2 8 33 30.0000000 0 7G01G06G14G16G20G25G30
+ -20437474.247 7 -15925302.814 7 20373218.597 20373216.909 20373217.907
+ 46.500 46.200
+ -1745916.587 4 -1360453.645 3 24381821.691 24381820.757 24381820.992
+ 24.600 20.500
+ -10807187.278 7 -8421183.762 5 21662750.631 21662748.223 21662750.020
+ 42.200 35.300
+ -6879760.395 5 -5360849.237 4 23284833.044 23284832.194 23284832.812
+ 30.400 24.900
+ -12246177.732 6 -9542475.812 5 22313626.444 22313623.846 22313625.333
+ 40.600 31.300
+ -20656186.486 7 -16095724.355 7 20608311.027 20608309.088 20608310.362
+ 46.000 46.400
+ -12057687.783 6 -9395594.264 5 22364015.956 22364014.144 22364015.955
+ 39.300 31.800
+ 06 1 2 8 34 0.0000000 0 7G01G06G14G16G20G25G30
+ -20440320.027 7 -15927520.305 7 20372677.093 20372675.459 20372676.357
+ 46.200 46.200
+ -1808693.409 3 -1409370.607 3 24369875.619 24369874.882 24369875.133
+ 23.800 19.300
+ -10740902.416 6 -8369533.232 5 21675365.082 21675361.921 21675363.736
+ 41.900 34.700
+ -6988883.785 4 -5445880.387 4 23264069.162 23264066.513 23264067.744
+ 28.100 25.600
+ -12301407.260 6 -9585511.810 5 22303116.786 22303114.023 22303115.759
+ 41.400 31.000
+ -20663559.001 7 -16101469.171 7 20606908.295 20606906.091 20606907.580
+ 46.100 46.400
+ -11982887.617 6 -9337308.427 5 22378250.082 22378247.967 22378249.824
+ 38.800 31.100
+ 06 1 2 8 34 30.0000000 0 7G01G06G14G16G20G25G30
+ -20442790.829 7 -15929445.609 7 20372207.055 20372205.345 20372206.273
+ 46.400 46.400
+ -1871186.872 4 -1458066.804 3 24357982.588 24357982.489 24357982.708
+ 26.200 19.900
+ -10674305.381 6 -8317639.459 5 21688037.867 21688034.886 21688036.695
+ 41.700 34.400
+ -7097818.618 4 -5530764.629 4 23243339.605 23243337.062 23243338.164
+ 29.500 27.100
+ -12356114.017 6 -9628140.459 5 22292706.664 22292703.780 22292705.547
+ 41.600 31.000
+ -20670614.847 7 -16106967.235 7 20605565.473 20605563.399 20605564.866
+ 46.000 46.400
+ -11907634.431 6 -9278669.588 5 22392570.513 22392568.189 22392570.170
+ 39.300 30.600
+ 06 1 2 8 35 0.0000000 0 7G01G06G14G16G20G25G30
+ -20444885.906 7 -15931078.141 7 20371808.469 20371806.642 20371807.632
+ 46.400 46.300
+ -1933394.104 4 -1506539.972 2 24346145.579 24346144.408 24346145.110
+ 24.900 16.100
+ -10607396.878 6 -8265502.970 5 21700769.800 21700767.278 21700768.888
+ 41.700 35.100
+ -7206562.777 5 -5615500.309 4 23222645.951 23222643.367 23222644.857
+ 31.600 25.600
+ -12410295.755 6 -9670360.003 5 22282396.466 22282393.080 22282395.145
+ 41.500 30.800
+ -20677354.676 7 -16112219.048 7 20604282.980 20604280.925 20604282.275
+ 46.100 46.400
+ -11831930.723 6 -9219679.688 5 22406976.457 22406974.192 22406976.112
+ 38.700 30.600
+ 06 1 2 8 35 30.0000000 0 7G01G06G14G16G20G25G30
+ -20446604.460 7 -15932417.276 7 20371481.442 20371479.588 20371480.623
+ 46.300 46.200
+ -1995312.636 4 -1554788.160 3 24334364.426 24334362.262 24334362.969
+ 25.600 19.300
+ -10540177.169 6 -8213123.990 5 21713561.553 21713558.907 21713560.388
+ 41.600 35.400
+ -7315113.709 5 -5700085.410 4 23201989.135 23201986.999 23201987.996
+ 31.000 25.600
+ -12463950.549 6 -9712168.943 5 22272186.035 22272183.061 22272184.800
+ 41.400 31.100
+ -20683778.903 7 -16117224.939 7 20603060.660 20603058.458 20603059.948
+ 46.100 46.400
+ -11755779.023 6 -9160340.703 5 22421467.354 22421465.248 22421467.095
+ 38.100 30.100
+ 06 1 2 8 36 0.0000000 0 7G01G06G14G16G20G25G30
+ -20447945.517 7 -15933462.258 7 20371226.131 20371224.429 20371225.386
+ 46.400 46.300
+ -2056939.732 3 -1602809.249 2 24322637.049 24322634.662 24322635.361
+ 23.000 17.800
+ -10472647.096 6 -8160503.174 5 21726411.942 21726409.447 21726410.941
+ 41.300 35.300
+ -7423468.856 5 -5784517.934 4 23181370.431 23181367.507 23181368.900
+ 31.300 25.900
+ -12517076.523 6 -9753565.802 5 22262076.374 22262073.701 22262075.304
+ 41.500 31.800
+ -20689888.030 7 -16121985.299 7 20601898.280 20601895.882 20601897.523
+ 46.100 46.400
+ -11679182.121 6 -9100654.795 4 22436043.528 22436041.062 22436043.034
+ 37.800 29.700
+ 06 1 2 8 36 30.0000000 0 7G01G06G14G16G20G25G30
+ -20448908.398 7 -15934212.557 7 20371042.907 20371041.164 20371042.140
+ 46.500 46.200
+ -2118272.712 4 -1650601.161 3 24310964.876 24310963.429 24310963.838
+ 24.200 19.300
+ -10404807.022 6 -8107640.780 5 21739321.220 21739318.859 21739320.550
+ 41.600 34.800
+ -7531625.398 5 -5868795.709 4 23160788.621 23160786.073 23160787.320
+ 30.400 25.600
+ -12569671.628 7 -9794549.009 5 22252067.867 22252065.456 22252066.825
+ 42.000 32.600
+ -20695682.697 7 -16126500.622 7 20600795.477 20600793.180 20600794.800
+ 46.200 46.400
+ -11602142.511 6 -9040623.927 5 22450703.446 22450701.362 22450703.200
+ 38.400 30.200
+ 06 1 2 8 37 0.0000000 0 7G01G06G14G16G20G25G30
+ -20449492.220 7 -15934667.484 7 20370931.833 20370930.061 20370931.007
+ 46.300 46.200
+ -2179309.020 4 -1698161.893 3 24299349.933 24299348.647 24299349.093
+ 24.600 21.600
+ -10336657.396 6 -8054537.195 5 21752290.476 21752287.476 21752288.924
+ 40.900 34.800
+ -7639580.974 5 -5952916.880 4 23140245.069 23140243.048 23140243.903
+ 30.600 26.800
+ -12621734.176 7 -9835117.225 5 22242160.882 22242158.225 22242159.588
+ 42.000 32.400
+ -20701163.321 7 -16130771.240 7 20599752.655 20599750.245 20599751.860
+ 46.100 46.500
+ -11524662.755 6 -8980250.103 4 22465447.549 22465445.087 22465447.244
+ 38.300 29.900
+ 06 1 2 8 37 30.0000000 0 7G01G06G14G16G20G25G30
+ -20449696.085 7 -15934826.345 7 20370893.262 20370891.343 20370892.389
+ 46.500 46.200
+ -2240045.986 4 -1745489.368 3 24287793.207 24287791.163 24287792.002
+ 27.600 22.100
+ -10268198.897 6 -8001192.925 5 21765317.328 21765314.435 21765316.105
+ 40.700 34.100
+ -7747333.005 5 -6036879.474 4 23119740.599 23119738.364 23119739.299
+ 31.000 26.800
+ -12673262.210 6 -9875268.938 5 22232355.268 22232352.894 22232353.978
+ 41.600 32.400
+ -20706330.482 7 -16134797.597 7 20598769.008 20598766.973 20598768.404
+ 46.100 46.400
+ -11446745.519 6 -8919535.367 5 22480274.322 22480272.420 22480274.256
+ 37.700 30.200
+ 06 1 2 8 38 0.0000000 0 7G01G06G14G16G20G25G30
+ -20449519.226 7 -15934688.537 7 20370926.811 20370924.978 20370926.005
+ 46.500 46.200
+ -2300480.872 4 -1792581.504 3 24276291.668 24276290.557 24276290.859
+ 25.300 18.600
+ -10199432.074 6 -7947608.409 5 21778402.608 21778400.187 21778402.029
+ 41.000 33.800
+ -7854879.191 5 -6120681.641 4 23099275.260 23099272.907 23099273.961
+ 31.000 25.600
+ -12724253.737 6 -9915002.599 5 22222652.009 22222649.395 22222650.763
+ 41.700 32.100
+ -20711184.792 7 -16138580.172 7 20597845.479 20597843.235 20597844.683
+ 46.100 46.500
+ -11368393.405 6 -8858481.768 4 22495184.705 22495182.230 22495184.188
+ 37.500 29.500
+ 06 1 2 8 38 30.0000000 0 7G01G06G14G16G20G25G30
+ -20448960.777 7 -15934253.386 7 20371033.219 20371031.196 20371032.348
+ 46.500 46.100
+ -2360611.187 4 -1839436.254 3 24264848.635 24264847.691 24264848.300
+ 25.900 20.500
+ -10130357.593 6 -7893784.151 5 21791547.621 21791544.804 21791546.438
+ 40.700 34.400
+ -7962216.842 5 -6204321.316 4 23078849.013 23078847.253 23078847.900
+ 31.000 28.100
+ -12774706.948 6 -9954316.790 5 22213050.968 22213048.230 22213049.853
+ 41.900 32.400
+ -20715726.553 7 -16142119.203 7 20596981.274 20596978.892 20596980.543
+ 46.200 46.400
+ -11289609.023 6 -8797091.346 5 22510176.669 22510174.745 22510176.405
+ 38.100 30.100
+ 06 1 2 8 39 0.0000000 0 7G01G06G14G16G20G25G30
+ -20448020.084 7 -15933520.381 7 20371212.008 20371210.234 20371211.257
+ 46.400 46.100
+ -2420434.395 4 -1886051.718 3 24253464.897 24253464.344 24253464.576
+ 25.900 21.100
+ -10060975.932 6 -7839720.532 5 21804750.857 21804747.673 21804749.475
+ 40.600 34.000
+ -8069343.387 5 -6287796.492 4 23058463.411 23058461.663 23058462.231
+ 30.400 26.500
+ -12824620.065 6 -9993210.131 5 22203552.818 22203549.993 22203551.584
+ 41.500 31.500
+ -20719956.547 7 -16145415.303 7 20596176.283 20596173.996 20596175.621
+ 46.300 46.500
+ -11210395.046 6 -8735366.162 5 22525251.049 22525248.639 22525250.554
+ 38.100 30.200
+ 06 1 2 8 39 30.0000000 0 7G01G06G14G16G20G25G30
+ -20446696.332 7 -15932488.889 7 20371463.828 20371462.104 20371462.982
+ 46.300 46.000
+ -2479947.753 4 -1932425.748 3 24242140.294 24242138.772 24242139.406
+ 25.900 22.100
+ -9991287.619 6 -7785417.966 5 21818011.666 21818008.976 21818010.745
+ 41.000 34.500
+ -8176256.359 5 -6371105.251 4 23038119.101 23038116.483 23038117.781
+ 32.100 25.900
+ -12873991.286 7 -10031681.214 5 22194158.000 22194155.121 22194156.811
+ 42.100 32.300
+ -20723875.115 7 -16148468.734 7 20595430.650 20595428.305 20595429.955
+ 46.200 46.500
+ -11130754.034 6 -8673308.243 4 22540405.439 22540403.704 22540405.214
+ 37.000 29.900
+ 06 1 2 8 40 0.0000000 0 7G01G06G14G16G20G25G30
+ -20444988.585 7 -15931158.177 7 20371788.924 20371787.077 20371788.089
+ 46.300 46.000
+ -2539148.646 3 -1978556.257 3 24230874.557 24230873.657 24230874.207
+ 23.800 21.100
+ -9921293.103 6 -7730876.799 5 21831331.316 21831328.616 21831330.387
+ 41.000 34.300
+ -8282953.195 5 -6454245.602 3 23017814.734 23017812.555 23017813.804
+ 32.400 23.400
+ -12922818.454 7 -10069728.363 5 22184866.491 22184863.565 22184865.402
+ 42.200 32.100
+ -20727482.945 7 -16151280.018 7 20594744.088 20594741.761 20594743.374
+ 46.400 46.400
+ -11050688.784 6 -8610919.739 5 22555641.834 22555640.091 22555641.511
+ 37.400 31.000
+ 06 1 2 8 40 30.0000000 0 7G01G06G14G16G20G25G30
+ -20442896.176 7 -15929527.727 7 20372187.172 20372185.277 20372186.254
+ 46.100 46.000
+ -2598034.633 4 -2024441.411 2 24219669.089 24219667.409 24219668.179
+ 24.200 17.800
+ -9850993.112 6 -7676097.604 5 21844709.145 21844706.030 21844708.026
+ 40.900 33.600
+ -8389431.250 5 -6537215.492 4 22997552.721 22997550.836 22997551.548
+ 32.300 26.500
+ -12971100.033 7 -10107350.373 5 22175678.619 22175675.830 22175677.589
+ 42.200 31.600
+ -20730780.487 7 -16153849.520 7 20594116.484 20594114.287 20594115.847
+ 46.300 46.400
+ -10970201.699 6 -8548202.535 5 22570957.666 22570955.793 22570957.547
+ 36.800 30.100
+ 06 1 2 8 41 0.0000000 0 7G01G06G14G16G20G25G30
+ -20440418.291 7 -15927596.904 7 20372658.510 20372656.715 20372657.683
+ 46.100 45.800
+ -2656603.075 4 -2070079.175 3 24208524.404 24208522.824 24208523.149
+ 24.900 19.300
+ -9780388.379 6 -7621080.968 5 21858144.251 21858141.736 21858143.397
+ 40.700 33.200
+ -8495688.222 5 -6620013.083 4 22977333.557 22977330.723 22977331.867
+ 31.000 26.200
+ -13018834.336 7 -10144545.936 5 22166595.102 22166592.355 22166594.016
+ 42.300 32.400
+ -20733768.327 7 -16156177.699 7 20593547.676 20593545.679 20593547.140
+ 46.100 46.400
+ -10889295.711 6 -8485158.905 4 22586353.748 22586351.597 22586353.407
+ 37.200 29.200
+ 06 1 2 8 41 30.0000000 0 7G01G06G14G16G20G25G30
+ -20437554.142 7 -15925365.097 7 20373203.441 20373201.744 20373202.572
+ 46.000 46.000
+ -2714851.495 4 -2115467.515 3 24197439.596 24197438.652 24197438.815
+ 25.600 23.400
+ -9709479.467 6 -7565827.282 5 21871637.742 21871635.347 21871637.139
+ 41.000 33.600
+ -8601721.383 5 -6702636.260 4 22957155.136 22957153.046 22957153.961
+ 32.100 27.100
+ -13066019.408 7 -10181313.533 5 22157616.272 22157613.346 22157615.098
+ 42.600 32.600
+ -20736446.978 7 -16158264.954 7 20593038.109 20593035.945 20593037.424
+ 46.400 46.400
+ -10807973.408 6 -8421790.876 5 22601829.160 22601826.964 22601828.776
+ 37.500 30.200
+ 06 1 2 8 42 0.0000000 0 7G01G06G14G16G20G25G30
+ -20434303.032 7 -15922831.756 7 20373822.070 20373820.453 20373821.249
+ 46.000 45.900
+ -2772777.057 4 -2160604.261 3 24186416.991 24186415.717 24186415.830
+ 25.900 22.100
+ -9638267.017 6 -7510337.068 5 21885189.325 21885186.654 21885188.311
+ 40.300 33.200
+ -8707528.357 5 -6785083.208 4 22937020.914 22937018.736 22937019.603
+ 31.600 27.900
+ -13112653.829 7 -10217652.048 5 22148742.044 22148739.079 22148740.841
+ 42.100 32.100
+ -20738816.978 7 -16160111.704 7 20592587.222 20592585.047 20592586.528
+ 46.400 46.500
+ -10726237.313 6 -8358100.416 4 22617383.017 22617380.754 22617382.627
+ 36.500 29.500
+ 06 1 2 8 42 30.0000000 0 7G01G06G14G16G20G25G30
+ -20430664.142 7 -15919996.253 7 20374514.663 20374512.918 20374513.841
+ 46.100 46.100
+ -2830377.288 4 -2205487.536 3 24175454.880 24175454.163 24175454.346
+ 24.200 21.600
+ -9566751.255 6 -7454610.513 5 21898798.317 21898795.606 21898797.316
+ 40.000 33.000
+ -8813106.759 5 -6867352.056 4 22916930.962 22916928.045 22916929.160
+ 32.300 27.900
+ -13158735.484 6 -10253559.828 5 22139972.924 22139969.989 22139971.712
+ 41.900 32.000
+ -20740878.994 7 -16161718.464 7 20592194.729 20592192.649 20592194.132
+ 46.500 46.600
+ -10644090.265 6 -8294089.742 4 22633015.096 22633012.786 22633014.756
+ 37.200 29.700
+ 06 1 2 8 43 0.0000000 0 7G01G06G14G16G20G25G30
+ -20426636.749 7 -15916858.024 7 20375281.064 20375279.302 20375280.306
+ 46.100 46.000
+ -2887649.861 4 -2250115.518 3 24164557.353 24164555.326 24164556.326
+ 26.800 19.900
+ -9494933.175 6 -7398648.390 5 21912464.513 21912462.088 21912463.727
+ 40.000 32.600
+ -8918453.921 5 -6949440.713 4 22896883.397 22896880.871 22896882.045
+ 32.700 28.400
+ -13204262.697 6 -10289035.579 5 22131309.098 22131306.712 22131307.889
+ 41.800 33.000
+ -20742633.447 7 -16163085.565 7 20591860.871 20591858.766 20591860.224
+ 46.400 46.600
+ -10561534.921 6 -8229760.893 4 22648724.523 22648722.814 22648724.362
+ 37.100 29.500
+ 06 1 2 8 43 30.0000000 0 7G01G06G14G16G20G25G30
+ -20422219.974 7 -15913416.386 7 20376121.556 20376119.792 20376120.696
+ 46.200 45.900
+ -2944592.038 3 -2294486.023 3 24153720.833 24153719.827 24153719.987
+ 23.400 21.100
+ -9422813.257 6 -7342451.053 5 21926188.367 21926186.300 21926187.635
+ 39.700 33.200
+ -9023567.145 5 -7031347.067 4 22876880.234 22876878.676 22876879.169
+ 30.400 28.800
+ -13249234.037 7 -10324078.181 5 22122751.148 22122749.113 22122750.132
+ 42.000 32.800
+ -20744080.877 7 -16164213.431 7 20591585.567 20591583.352 20591584.850
+ 46.500 46.600
+ -10478573.981 6 -8165116.008 4 22664511.230 22664509.309 22664511.098
+ 36.400 29.700
+ 06 1 2 8 44 0.0000000 0 7G01G06G14G16G20G25G30
+ -20417413.218 7 -15909670.865 7 20377036.150 20377034.446 20377035.331
+ 46.200 45.800
+ -3001201.273 4 -2338597.099 3 24142949.030 24142947.556 24142948.574
+ 27.100 22.600
+ -9350392.267 6 -7286019.139 5 21939969.696 21939967.685 21939968.889
+ 39.600 33.500
+ -9128444.388 5 -7113069.559 4 22856923.841 22856920.952 22856922.193
+ 32.700 28.100
+ -13293647.751 6 -10358686.261 5 22114299.898 22114297.385 22114298.622
+ 41.900 33.000
+ -20745221.944 7 -16165102.569 7 20591368.301 20591366.144 20591367.632
+ 46.300 46.400
+ -10395210.026 6 -8100157.084 4 22680375.674 22680373.048 22680375.313
+ 36.800 29.000
+ 06 1 2 8 44 30.0000000 0 7G01G06G14G16G20G25G30
+ -20412215.616 7 -15905620.788 7 20378025.392 20378023.480 20378024.562
+ 46.100 45.900
+ -3057475.146 4 -2382446.814 3 24132240.554 24132239.196 24132239.949
+ 27.400 23.400
+ -9277670.907 6 -7229353.150 5 21953808.479 21953805.827 21953807.387
+ 39.600 32.600
+ -9233082.895 5 -7194605.998 4 22837010.994 22837008.844 22837009.688
+ 32.800 28.400
+ -13337502.034 6 -10392858.432 5 22105954.568 22105951.947 22105953.437
+ 41.900 32.600
+ -20746057.109 7 -16165753.343 7 20591209.282 20591207.106 20591208.673
+ 46.300 46.400
+ -10311445.847 6 -8034886.304 4 22696315.366 22696312.718 22696314.844
+ 36.600 28.600
+ 06 1 2 8 45 0.0000000 0 7G01G06G14G16G20G25G30
+ -20406626.498 7 -15901265.633 7 20379088.817 20379087.052 20379088.039
+ 46.100 45.900
+ -3113411.152 3 -2426033.286 3 24121595.486 24121594.457 24121594.458
+ 22.600 20.500
+ -9204650.016 6 -7172453.762 5 21967703.589 21967701.286 21967702.801
+ 39.400 33.100
+ -9337480.033 5 -7275954.390 4 22817144.585 22817142.824 22817143.661
+ 33.100 28.800
+ -13380795.544 6 -10426593.632 5 22097716.217 22097713.374 22097715.011
+ 41.900 32.700
+ -20746586.857 7 -16166166.134 7 20591108.546 20591106.320 20591107.833
+ 46.400 46.300
+ -10227284.138 5 -7969305.740 4 22712330.842 22712328.505 22712330.198
+ 35.900 28.800
+ 06 1 2 8 45 30.0000000 0 7G01G06G14G16G20G25G30
+ -20400645.197 7 -15896604.881 7 20380227.188 20380225.328 20380226.287
+ 46.100 45.800
+ -3169006.805 4 -2469354.549 3 24111017.340 24111014.876 24111015.887
+ 26.200 19.900
+ -9131329.681 6 -7115321.048 5 21981656.016 21981653.709 21981655.264
+ 39.300 32.600
+ -9441633.375 5 -7357112.800 4 22797325.252 22797322.748 22797323.668
+ 32.300 27.600
+ -13423526.162 6 -10459890.216 5 22089584.821 22089582.147 22089583.512
+ 41.900 33.100
+ -20746811.852 7 -16166341.454 7 20591065.878 20591063.550 20591065.064
+ 46.300 46.400
+ -10142727.561 6 -7903417.502 4 22728421.504 22728418.746 22728420.895
+ 36.100 27.100
+ 06 1 2 8 46 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20394270.969 7 -15891637.955 7 20381440.114 20381438.322 20381439.232
+ 46.000 45.900
+ -3224259.667 4 -2512408.708 3 24100502.654 24100500.442 24100502.024
+ 28.400 22.600
+ -9057710.775 6 -7057955.690 5 21995665.608 21995662.977 21995664.538
+ 39.300 32.700
+ -9545540.695 5 -7438079.511 4 22777553.406 22777549.830 22777551.463
+ 33.200 27.600
+ -13465692.736 7 -10492747.292 5 22081561.094 22081558.134 22081559.720
+ 42.100 33.200
+ -178762.881 3 -139295.515 3 24627693.106 24627689.017 24627692.501
+ 22.100 23.000
+ -20746732.652 7 -16166279.743 7 20591080.832 20591078.669 20591080.158
+ 46.400 46.400
+ -10057778.892 6 -7837223.736 4 22744586.429 22744584.504 22744586.115
+ 36.000 28.600
+ 06 1 2 8 46 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20387503.075 7 -15886364.271 7 20382727.917 20382726.189 20382727.050
+ 46.000 45.700
+ -3279167.033 4 -2555193.609 4 24090053.714 24090052.485 24090052.929
+ 27.400 24.600
+ -8983793.776 6 -7000358.049 5 22009731.540 22009728.662 22009730.402
+ 39.300 32.600
+ -9649199.300 5 -7518852.414 4 22757826.601 22757824.262 22757825.364
+ 32.700 27.900
+ -13507293.630 7 -10525163.570 5 22073644.326 22073641.832 22073643.259
+ 42.600 33.400
+ -281884.925 4 -219650.348 3 24608071.263 24608065.157 24608069.815
+ 24.900 23.000
+ -20746349.796 7 -16165981.412 7 20591153.793 20591151.504 20591153.032
+ 46.400 46.300
+ -9972440.782 5 -7770726.507 4 22760825.918 22760823.504 22760825.414
+ 35.400 28.100
+ 06 1 2 8 47 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20380340.794 7 -15880783.278 7 20384090.922 20384089.052 20384090.054
+ 46.000 45.700
+ -3333726.804 4 -2597707.688 3 24079672.516 24079669.930 24079670.620
+ 26.500 23.400
+ -8909579.946 6 -6942529.086 5 22023854.068 22023851.321 22023852.978
+ 39.400 32.700
+ -9752606.893 5 -7599429.737 4 22738148.478 22738146.570 22738147.542
+ 34.400 28.800
+ -13548327.168 7 -10557137.760 5 22065835.864 22065833.611 22065834.870
+ 42.500 33.500
+ -384998.208 4 -299998.347 4 24588449.256 24588443.615 24588448.100
+ 29.200 24.600
+ -20745663.843 7 -16165446.903 7 20591284.330 20591281.907 20591283.601
+ 46.400 46.300
+ -9886715.926 6 -7703927.907 4 22777138.719 22777136.432 22777138.474
+ 36.200 28.600
+ 06 1 2 8 47 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20372783.368 7 -15874894.385 7 20385528.883 20385527.177 20385528.102
+ 46.000 45.700
+ -3387936.177 4 -2639948.750 3 24069356.211 24069354.276 24069355.318
+ 28.600 22.600
+ -8835069.605 6 -6884469.098 5 22038033.298 22038030.169 22038032.014
+ 39.500 32.400
+ -9855760.633 5 -7679809.242 4 22718519.471 22718517.229 22718517.991
+ 33.200 29.000
+ -13588791.848 7 -10588668.677 5 22058135.627 22058133.076 22058134.599
+ 42.500 33.100
+ -488100.782 4 -380338.041 3 24568829.640 24568823.662 24568828.432
+ 29.700 20.500
+ -20744675.354 7 -16164676.654 7 20591472.537 20591470.034 20591471.738
+ 46.400 46.300
+ -9800607.106 5 -7636830.138 4 22793524.407 22793522.513 22793524.048
+ 35.300 27.900
+ 06 1 2 8 48 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20364830.262 7 -15868697.164 7 20387042.471 20387040.653 20387041.610
+ 46.000 45.600
+ -3441792.830 4 -2681914.939 3 24059106.153 24059105.370 24059106.142
+ 27.100 22.600
+ -8760263.300 6 -6826178.487 5 22052268.209 22052265.472 22052266.983
+ 39.100 33.000
+ -9958658.425 5 -7759989.294 4 22698938.383 22698936.340 22698936.934
+ 32.800 29.700
+ -13628686.222 7 -10619755.206 5 22050544.277 22050541.365 22050542.933
+ 42.100 32.700
+ -591191.501 4 -460668.483 3 24549211.594 24549205.865 24549210.204
+ 26.800 23.400
+ -20743384.861 7 -16163671.074 7 20591718.011 20591715.741 20591717.271
+ 46.500 46.400
+ -9714117.021 5 -7569435.259 4 22809982.681 22809980.673 22809982.501
+ 35.600 27.600
+ 06 1 2 8 48 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20356480.732 7 -15862191.044 7 20388631.252 20388629.571 20388630.422
+ 46.000 45.700
+ -3495294.291 4 -2723604.367 3 24048926.445 24048924.215 24048924.900
+ 25.600 22.100
+ -8685161.937 6 -6767657.971 5 22066559.266 22066556.809 22066558.417
+ 39.100 33.100
+ -10061297.834 5 -7839968.006 5 22679405.574 22679404.634 22679405.109
+ 33.400 30.200
+ -13668008.904 7 -10650396.262 5 22043061.633 22043058.468 22043060.283
+ 42.800 32.300
+ -694269.107 4 -540988.685 3 24529597.002 24529590.842 24529595.779
+ 25.600 22.100
+ -20741792.820 7 -16162430.525 7 20592020.894 20592018.695 20592020.166
+ 46.400 46.400
+ -9627248.430 6 -7501745.454 4 22826513.192 22826511.399 22826513.069
+ 36.400 28.100
+ 06 1 2 8 49 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20347734.136 7 -15855375.526 7 20390295.828 20390294.024 20390294.960
+ 46.000 45.600
+ -3548438.262 4 -2765015.190 3 24038813.289 24038811.415 24038812.531
+ 28.600 21.100
+ -8609766.153 6 -6708908.035 5 22080907.357 22080904.058 22080905.746
+ 38.400 32.700
+ -10163676.038 5 -7919743.213 5 22659923.877 22659922.725 22659923.465
+ 34.300 30.800
+ -13706758.317 7 -10680590.616 5 22035687.576 22035684.660 22035686.430
+ 42.700 32.600
+ -797332.185 3 -621297.547 3 24509984.230 24509978.914 24509982.529
+ 22.100 23.400
+ -20739899.979 7 -16160955.583 7 20592381.002 20592378.814 20592380.307
+ 46.300 46.400
+ -9540004.278 5 -7433763.007 4 22843115.696 22843113.672 22843115.253
+ 35.600 29.000
+ 06 1 2 8 49 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20338589.752 7 -15848250.036 7 20392035.995 20392034.117 20392035.153
+ 46.000 45.400
+ -3601222.094 4 -2806145.432 3 24028768.214 24028767.229 24028767.605
+ 26.800 23.000
+ -8534076.775 6 -6649929.320 5 22095310.225 22095307.138 22095308.965
+ 38.600 32.100
+ -10265790.792 5 -7999313.119 5 22640493.639 22640490.719 22640492.045
+ 35.200 30.100
+ -13744933.155 7 -10710337.241 5 22028423.160 22028420.481 22028421.937
+ 42.700 33.200
+ -900379.351 4 -701594.012 3 24490375.211 24490369.846 24490374.041
+ 24.900 19.900
+ -20737706.755 7 -16159246.574 7 20592798.587 20592796.210 20592797.851
+ 46.600 46.400
+ -9452386.897 5 -7365489.726 4 22859788.595 22859786.290 22859788.141
+ 34.900 26.500
+ 06 1 2 8 50 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20329046.824 7 -15840813.986 7 20393851.803 20393850.083 20393851.026
+ 46.000 45.600
+ -3653643.546 4 -2846993.287 3 24018793.053 24018792.185 24018791.764
+ 27.600 23.000
+ -8458094.511 6 -6590722.382 5 22109768.592 22109766.045 22109767.775
+ 38.600 32.100
+ -10367639.488 5 -8078675.694 4 22621113.644 22621109.396 22621111.423
+ 34.600 29.700
+ -13782531.668 7 -10739634.783 5 22021268.280 22021265.785 22021267.168
+ 42.600 33.600
+ -1003409.173 4 -781877.025 2 24470769.319 24470763.844 24470767.958
+ 26.800 17.800
+ -20735213.775 7 -16157303.990 7 20593272.845 20593270.650 20593272.128
+ 46.600 46.400
+ -9364399.287 5 -7296927.946 4 22876532.138 22876529.693 22876531.806
+ 35.700 27.600
+ 06 1 2 8 50 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20319104.812 7 -15833066.957 7 20395743.725 20395742.002 20395742.845
+ 46.000 45.600
+ -3705700.111 4 -2887556.813 3 24008887.107 24008885.643 24008886.150
+ 27.600 22.600
+ -8381820.377 6 -6531288.021 5 22124283.155 22124280.648 22124282.309
+ 38.600 31.800
+ -10469219.779 5 -8157829.104 4 22601781.813 22601779.131 22601780.534
+ 33.800 29.200
+ -13819552.558 7 -10768482.235 5 22014223.370 22014220.631 22014222.213
+ 42.300 32.700
+ -1106420.176 4 -862145.368 3 24451166.361 24451161.206 24451165.679
+ 25.900 23.000
+ -20732421.551 7 -16155128.231 7 20593804.021 20593801.972 20593803.397
+ 46.600 46.400
+ -9276044.117 5 -7228079.764 4 22893345.427 22893343.502 22893345.020
+ 34.600 28.400
+ 06 1 2 8 51 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20308763.110 7 -15825008.484 7 20397711.653 20397709.895 20397710.852
+ 46.100 45.400
+ -3757389.568 4 -2927834.284 4 23999050.721 23999049.899 23999050.041
+ 28.400 24.200
+ -8305254.572 6 -6471626.383 5 22138853.768 22138850.435 22138852.421
+ 38.600 30.800
+ -10570529.274 5 -8236771.543 4 22582501.687 22582500.387 22582501.729
+ 34.900 28.800
+ -13855994.522 7 -10796878.569 5 22007288.756 22007285.793 22007287.607
+ 42.600 32.300
+ -1209411.130 4 -942398.042 3 24431569.079 24431562.505 24431567.530
+ 27.400 23.000
+ -20729330.690 7 -16152719.766 7 20594392.529 20594390.162 20594391.780
+ 46.800 46.400
+ -9187324.125 5 -7158947.295 4 22910228.262 22910225.997 22910228.176
+ 35.600 27.100
+ 06 1 2 8 51 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20298021.069 7 -15816638.067 7 20399755.939 20399754.013 20399755.089
+ 46.100 45.500
+ -3808709.388 4 -2967823.716 4 23989285.278 23989283.999 23989284.379
+ 27.100 24.900
+ -8228397.978 6 -6411738.147 5 22153479.241 22153475.933 22153477.924
+ 38.800 31.100
+ -10671565.764 5 -8315501.249 4 22563275.109 22563274.089 22563275.022
+ 35.600 29.900
+ -13891856.115 7 -10824822.670 5 22000464.768 22000461.563 22000463.624
+ 42.900 32.000
+ -1312380.497 3 -1022633.870 4 24411973.875 24411968.478 24411972.442
+ 22.100 24.900
+ -20725941.791 7 -16150079.067 7 20595037.270 20595035.013 20595036.646
+ 47.000 46.400
+ -9098242.041 5 -7089532.702 4 22927179.608 22927177.799 22927179.547
+ 35.200 26.800
+ 06 1 2 8 52 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20286878.078 7 -15807955.220 7 20401876.152 20401874.568 20401875.339
+ 45.900 45.600
+ -3859657.368 4 -3007523.418 3 23979590.578 23979588.892 23979589.155
+ 27.900 23.400
+ -8151251.410 6 -6351623.963 5 22168159.283 22168156.583 22168158.135
+ 38.100 31.000
+ -10772326.498 5 -8394016.072 5 22544102.615 22544100.149 22544101.178
+ 35.800 31.300
+ -13927136.422 7 -10852313.823 5 21993751.123 21993748.203 21993749.993
+ 43.100 33.000
+ -1415326.957 4 -1102851.858 4 24392384.298 24392378.525 24392383.048
+ 27.600 24.200
+ -20722255.375 7 -16147206.536 7 20595738.837 20595736.466 20595738.194
+ 46.900 46.300
+ -9008800.613 5 -7019838.057 4 22944200.215 22944197.652 22944199.978
+ 34.000 26.800
+ 06 1 2 8 52 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20275333.484 7 -15798959.435 7 20404073.022 20404071.486 20404072.202
+ 45.800 45.600
+ -3910231.043 4 -3046931.423 3 23969965.093 23969964.209 23969965.092
+ 28.400 21.100
+ -8073815.615 6 -6291284.420 5 22182894.685 22182892.079 22182893.715
+ 38.400 31.300
+ -10872809.292 5 -8472314.298 5 22524982.116 22524978.871 22524980.150
+ 35.500 31.300
+ -13961833.610 7 -10879350.590 5 21987148.368 21987145.570 21987147.281
+ 43.100 33.200
+ -1518248.939 4 -1183050.758 3 24372797.714 24372793.163 24372797.083
+ 24.900 23.400
+ -20718271.984 7 -16144102.596 7 20596496.942 20596494.530 20596496.223
+ 46.900 46.400
+ -8919002.625 5 -6949865.627 4 22961288.456 22961286.801 22961287.961
+ 34.700 29.500
+ 06 1 2 8 53 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20263386.667 7 -15789650.224 7 20406346.741 20406344.805 20406345.803
+ 45.900 45.600
+ -3960428.205 4 -3086046.077 3 23960412.940 23960411.796 23960412.003
+ 26.800 22.100
+ -7996091.355 6 -6230720.085 5 22197684.724 22197682.515 22197684.083
+ 37.600 31.000
+ -10973011.428 5 -8550393.844 5 22505914.196 22505910.736 22505912.293
+ 35.500 31.100
+ -13995946.521 7 -10905932.083 5 21980656.938 21980654.075 21980655.719
+ 43.000 33.100
+ -1621145.115 4 -1263229.641 3 24353218.380 24353212.038 24353216.533
+ 26.500 18.600
+ -20713992.268 7 -16140767.756 7 20597311.327 20597308.947 20597310.608
+ 46.800 46.400
+ -8828850.905 5 -6879617.528 4 22978443.435 22978441.314 22978443.195
+ 34.300 27.100
+ 06 1 2 8 53 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20251036.961 7 -15780027.079 7 20408696.555 20408694.860 20408695.809
+ 46.100 45.400
+ -4010246.244 4 -3124865.301 4 23950933.130 23950932.472 23950932.557
+ 26.800 24.600
+ -7918079.355 6 -6169931.546 5 22212530.323 22212527.856 22212529.307
+ 37.300 31.000
+ -11072930.579 6 -8628252.863 5 22486900.070 22486896.592 22486898.297
+ 36.000 30.600
+ -14029474.021 7 -10932057.412 5 21974277.023 21974274.073 21974275.748
+ 43.300 33.000
+ -1724014.232 4 -1343387.428 3 24333642.256 24333636.818 24333641.258
+ 28.100 22.100
+ -20709416.735 7 -16137202.411 7 20598181.934 20598179.576 20598181.275
+ 46.900 46.300
+ -8738348.116 5 -6809095.872 4 22995664.752 22995663.439 22995664.865
+ 33.200 26.800
+ 06 1 2 8 54 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20238283.787 7 -15770089.541 7 20411123.542 20411121.710 20411122.658
+ 46.100 45.300
+ -4059683.188 4 -3163387.543 4 23941526.249 23941524.761 23941525.442
+ 28.400 24.900
+ -7839780.412 6 -6108919.392 5 22227430.484 22227427.584 22227429.251
+ 37.500 31.100
+ -11172564.371 5 -8705889.535 5 22467939.536 22467936.941 22467938.149
+ 35.800 30.200
+ -14062414.598 7 -10957725.395 5 21968008.529 21968005.530 21968007.238
+ 42.900 32.800
+ -1826854.635 4 -1423522.775 3 24314072.304 24314067.303 24314070.862
+ 26.200 21.100
+ -20704545.846 7 -16133406.915 7 20599108.743 20599106.492 20599108.085
+ 46.800 46.200
+ -8647496.984 5 -6738302.782 4 23012953.872 23012951.760 23012953.471
+ 33.000 26.500
+ 06 1 2 8 54 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20225126.631 7 -15759837.212 7 20413627.170 20413625.432 20413626.347
+ 45.900 45.300
+ -4108736.651 4 -3201610.997 3 23932191.026 23932190.173 23932190.726
+ 27.600 20.500
+ -7761195.307 6 -6047684.268 5 22242384.763 22242381.864 22242383.600
+ 37.300 31.100
+ -11271910.912 6 -8783302.399 5 22449033.451 22449031.930 22449033.113
+ 36.100 30.800
+ -14094767.182 7 -10982935.207 5 21961851.824 21961848.906 21961850.613
+ 42.800 32.700
+ -1929664.730 4 -1503634.560 4 24294508.397 24294503.755 24294507.035
+ 27.600 24.600
+ -20699380.323 7 -16129381.835 7 20600091.759 20600089.501 20600091.090
+ 46.700 46.400
+ -8556300.331 5 -6667240.463 4 23030307.931 23030306.166 23030307.825
+ 34.500 27.900
+ 06 1 2 8 55 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20211564.916 7 -15749269.642 7 20416207.900 20416206.152 20416207.060
+ 46.100 45.400
+ -4157404.301 4 -3239533.810 3 23922930.817 23922928.539 23922929.569
+ 28.100 22.600
+ -7682325.069 6 -5986226.972 5 22257393.918 22257390.605 22257392.370
+ 37.800 31.300
+ -11370966.989 6 -8860488.926 5 22430183.224 22430182.172 22430183.328
+ 36.100 31.500
+ -14126530.476 7 -11007685.828 5 21955807.392 21955804.810 21955806.387
+ 43.000 32.800
+ -2032443.179 4 -1583721.630 4 24274950.856 24274945.475 24274949.365
+ 28.100 25.600
+ -20693920.617 7 -16125127.521 7 20601130.680 20601128.427 20601130.006
+ 46.700 46.400
+ -8464760.963 5 -6595911.080 4 23047726.688 23047725.407 23047726.839
+ 33.200 26.500
+ 06 1 2 8 55 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20197597.984 7 -15738386.322 7 20418865.821 20418864.050 20418864.997
+ 46.200 45.400
+ -4205683.720 4 -3277154.124 3 23913743.009 23913741.097 23913742.127
+ 27.600 23.800
+ -7603170.367 6 -5924548.014 4 22272455.968 22272452.950 22272454.829
+ 37.400 29.900
+ -11469730.448 6 -8937447.448 5 22411389.462 22411388.102 22411389.370
+ 37.200 31.300
+ -14157703.359 7 -11031976.383 5 21949875.416 21949872.714 21949874.351
+ 42.800 33.100
+ -2135188.601 4 -1663782.998 4 24255397.827 24255393.221 24255396.488
+ 28.100 26.200
+ -20688167.324 7 -16120644.434 7 20602225.389 20602223.273 20602224.794
+ 46.600 46.300
+ -8372881.543 5 -6524316.752 4 23065211.575 23065209.547 23065211.113
+ 33.500 26.200
+ 06 1 2 8 56 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20183225.378 7 -15727186.898 7 20421600.512 20421599.006 20421599.789
+ 46.100 45.400
+ -4253572.814 4 -3314470.257 3 23904628.648 23904627.903 23904628.923
+ 27.100 19.900
+ -7523731.859 6 -5862647.915 5 22287571.785 22287569.877 22287571.384
+ 37.400 30.200
+ -11568199.143 6 -9014176.266 5 22392651.758 22392650.268 22392651.284
+ 36.600 32.000
+ -14188284.839 7 -11055806.110 5 21944055.757 21944053.347 21944054.624
+ 42.400 33.000
+ -2237899.222 4 -1743817.243 3 24235852.744 24235847.370 24235851.344
+ 25.900 23.400
+ -20682121.051 7 -16115933.050 7 20603376.015 20603373.843 20603375.314
+ 46.600 46.400
+ -8280664.803 5 -6452459.536 4 23082759.732 23082757.400 23082759.385
+ 33.800 25.300
+ 06 1 2 8 56 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20168446.596 7 -15715670.974 7 20424413.086 20424411.220 20424412.227
+ 46.200 45.200
+ -4301069.296 4 -3351480.489 3 23895591.034 23895590.181 23895590.250
+ 27.900 23.400
+ -7444010.404 6 -5800527.336 5 22302742.219 22302740.343 22302741.798
+ 37.200 30.400
+ -11666370.597 6 -9090673.469 5 22373970.904 22373968.660 22373969.819
+ 36.700 32.000
+ -14218273.566 7 -11079173.952 5 21938349.451 21938346.602 21938348.102
+ 42.700 33.200
+ -2340573.648 4 -1823823.273 4 24216313.592 24216310.083 24216312.877
+ 24.900 24.900
+ -20675782.307 7 -16110993.764 7 20604582.290 20604580.078 20604581.550
+ 46.600 46.300
+ -8188113.618 5 -6380341.723 4 23100371.408 23100369.761 23100371.173
+ 33.100 27.100
+ 06 1 2 8 57 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20153260.920 7 -15703837.986 7 20427303.044 20427300.958 20427302.100
+ 46.100 45.200
+ -4348170.740 4 -3388182.884 4 23886629.582 23886626.984 23886627.688
+ 27.400 24.600
+ -7364006.874 6 -5738186.958 5 22317966.519 22317964.616 22317966.055
+ 37.200 30.100
+ -11764242.302 6 -9166937.107 5 22355346.438 22355344.396 22355345.392
+ 37.200 32.000
+ -14247668.202 7 -11102078.868 5 21932755.776 21932753.139 21932754.506
+ 42.900 33.200
+ -2443210.606 4 -1903800.097 4 24196783.765 24196778.839 24196782.832
+ 26.500 24.200
+ -20669151.745 7 -16105827.085 7 20605843.979 20605841.756 20605843.290
+ 46.600 46.200
+ -8095230.565 5 -6307965.351 4 23118046.769 23118044.680 23118046.444
+ 33.200 25.600
+ 06 1 2 8 57 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20137667.889 7 -15691687.577 7 20430270.089 20430268.254 20430269.293
+ 46.200 45.300
+ -4394875.084 4 -3424575.843 3 23877739.752 23877739.200 23877739.480
+ 27.100 22.600
+ -7283721.826 6 -5675627.216 5 22333245.523 22333242.358 22333243.994
+ 36.700 30.100
+ -11861812.546 6 -9242965.837 5 22336779.140 22336777.423 22336778.115
+ 36.400 32.400
+ -14276467.580 7 -11124519.947 5 21927275.790 21927272.691 21927274.520
+ 43.200 33.100
+ -2545808.376 4 -1983746.412 3 24177260.792 24177254.627 24177259.471
+ 27.100 23.400
+ -20662229.822 7 -16100433.377 7 20607161.272 20607158.961 20607160.582
+ 46.800 46.200
+ -8002018.664 5 -6235332.690 4 23135784.283 23135782.060 23135784.005
+ 32.400 25.600
+ 06 1 2 8 58 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20121667.006 7 -15679219.363 7 20433315.061 20433313.164 20433314.221
+ 46.200 45.300
+ -4441180.218 4 -3460657.732 3 23868928.162 23868928.001 23868928.020
+ 28.400 22.600
+ -7203156.355 6 -5612848.961 5 22348576.209 22348573.543 22348575.098
+ 37.200 30.400
+ -11959077.975 6 -9318757.048 5 22318270.487 22318267.949 22318269.283
+ 37.200 31.100
+ -14304671.406 7 -11146496.949 5 21921908.639 21921905.809 21921907.448
+ 43.100 33.400
+ -2648365.617 4 -2063661.152 3 24157743.756 24157738.515 24157743.007
+ 24.900 23.000
+ -20655017.204 7 -16094813.150 7 20608533.648 20608531.513 20608533.003
+ 46.800 46.200
+ -7908480.569 5 -6162445.853 4 23153583.891 23153581.995 23153583.457
+ 32.400 25.600
+ 06 1 2 8 58 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20105257.578 7 -15666432.792 7 20436437.406 20436435.728 20436436.680
+ 46.200 45.300
+ -4487083.834 4 -3496426.728 3 23860195.125 23860192.928 23860193.827
+ 28.600 23.800
+ -7122311.316 6 -5549852.856 5 22363960.996 22363957.953 22363959.452
+ 37.200 30.600
+ -12056036.591 6 -9394309.190 5 22299820.186 22299817.603 22299818.807
+ 37.200 32.300
+ -14332278.256 7 -11168008.781 5 21916655.297 21916652.353 21916654.075
+ 43.300 33.500
+ -2750880.526 4 -2143542.888 3 24138236.624 24138230.647 24138235.098
+ 26.800 23.000
+ -20647514.370 7 -16088966.780 7 20609961.350 20609959.265 20609960.680
+ 46.800 46.200
+ -7814619.019 5 -6089306.990 4 23171445.138 23171443.111 23171444.913
+ 34.000 26.200
+ 06 1 2 8 59 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20088439.280 7 -15653327.622 7 20439638.020 20439636.185 20439637.134
+ 46.100 45.300
+ -4532583.700 4 -3531881.143 3 23851535.274 23851534.548 23851534.408
+ 28.100 23.800
+ -7041187.458 6 -5486639.491 5 22379397.187 22379395.401 22379396.556
+ 36.500 30.400
+ -12152686.174 6 -9469620.528 5 22281428.677 22281425.779 22281427.282
+ 37.600 32.600
+ -14359286.832 7 -11189054.431 5 21911515.618 21911512.828 21911514.427
+ 43.400 33.500
+ -2853351.600 4 -2223390.493 3 24118737.336 24118731.053 24118735.688
+ 28.800 22.600
+ -20639721.900 7 -16082894.722 7 20611444.486 20611442.126 20611443.749
+ 46.800 46.400
+ -7720436.801 5 -6015918.255 4 23189367.401 23189365.465 23189367.213
+ 33.100 25.600
+ 06 1 2 8 59 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20071211.507 7 -15639903.381 7 20442916.262 20442914.545 20442915.491
+ 46.100 45.200
+ -4577677.683 4 -3567019.265 3 23842952.916 23842952.862 23842953.443
+ 27.600 23.400
+ -6959785.695 6 -5423209.575 5 22394887.345 22394885.704 22394886.843
+ 36.000 30.200
+ -12249024.337 6 -9544689.196 5 22263096.081 22263093.070 22263094.679
+ 38.200 32.400
+ -14385696.206 7 -11209633.167 5 21906490.061 21906487.067 21906488.926
+ 43.400 33.500
+ -2955777.661 5 -2303202.975 3 24099245.702 24099239.991 24099244.784
+ 30.100 22.600
+ -20631640.398 7 -16076597.447 7 20612982.292 20612980.059 20612981.571
+ 46.900 46.400
+ -7625936.660 5 -5942281.780 4 23207350.047 23207348.268 23207350.100
+ 33.400 24.600
+ 06 1 2 9 0 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20053573.822 7 -15626159.731 7 20446272.676 20446270.963 20446271.850
+ 46.300 45.300
+ -4622363.671 4 -3601839.508 3 23834451.582 23834449.184 23834450.525
+ 27.900 21.600
+ -6878106.888 5 -5359563.790 4 22410430.212 22410428.509 22410429.937
+ 35.500 29.900
+ -12345048.954 6 -9619513.541 5 22244823.174 22244820.002 22244821.663
+ 37.300 32.100
+ -14411505.380 7 -11229744.219 5 21901578.586 21901575.858 21901577.362
+ 43.100 33.500
+ -3058156.601 5 -2382978.793 3 24079764.902 24079757.920 24079763.277
+ 32.100 20.500
+ -20623270.443 7 -16070075.403 7 20614574.936 20614572.828 20614574.231
+ 46.800 46.200
+ -7531121.347 5 -5868399.721 4 23225393.144 23225391.417 23225392.822
+ 32.600 26.200
+ 06 1 2 9 0 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -20035525.706 7 -15612096.273 7 20449707.162 20449705.465 20449706.339
+ 46.100 45.400
+ -4666639.441 4 -3636340.085 4 23826027.264 23826024.520 23826025.600
+ 29.200 24.600
+ -6796151.888 6 -5295702.785 4 22426026.634 22426023.965 22426025.711
+ 36.600 29.500
+ -12440757.577 6 -9694091.656 5 22226610.638 22226607.357 22226609.099
+ 37.800 32.700
+ -14436713.633 7 -11249387.016 5 21896781.490 21896779.077 21896780.317
+ 42.800 34.000
+ -3160487.111 5 -2462716.905 3 24060291.411 24060285.510 24060289.932
+ 31.000 22.100
+ -20614612.587 7 -16063329.021 7 20616222.554 20616220.249 20616221.841
+ 46.700 46.300
+ -7435993.678 5 -5794274.274 4 23243495.517 23243493.309 23243495.399
+ 34.100 25.300
+ 06 1 2 9 1 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20017066.543 7 -15597712.515 7 20453219.892 20453218.115 20453219.040
+ 46.300 45.400
+ -4710502.917 4 -3670519.389 3 23817677.813 23817677.022 23817677.800
+ 28.800 23.000
+ -6713921.781 5 -5231627.395 4 22441675.038 22441671.849 22441673.669
+ 35.900 29.000
+ -12536147.700 6 -9768421.590 5 22208458.531 22208455.144 22208456.898
+ 37.600 32.400
+ -14461319.986 7 -11268560.792 5 21892099.084 21892096.620 21892097.902
+ 42.900 34.300
+ -3262767.788 4 -2542416.124 4 24040827.374 24040822.792 24040826.236
+ 29.000 26.200
+ -20605667.410 7 -16056358.750 7 20617924.700 20617922.395 20617924.001
+ 46.800 46.300
+ -7340556.396 5 -5719907.560 4 23261656.471 23261654.662 23261656.153
+ 32.700 27.100
+ 06 1 2 9 1 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19998195.922 7 -15583008.136 7 20456810.660 20456808.953 20456809.853
+ 46.100 45.200
+ -4753951.988 5 -3704375.766 3 23809410.091 23809408.445 23809410.328
+ 30.400 23.000
+ -6631417.006 5 -5167337.996 4 22457374.864 22457372.206 22457373.508
+ 35.600 29.200
+ -12631216.976 6 -9842501.525 5 22190367.188 22190364.018 22190365.722
+ 38.000 32.400
+ -14485323.137 7 -11287264.550 5 21887531.523 21887528.991 21887530.184
+ 42.900 34.300
+ -3364996.866 4 -2622075.153 4 24021373.432 24021368.707 24021372.635
+ 27.400 25.300
+ -20596435.338 7 -16049164.926 7 20619681.552 20619679.225 20619680.819
+ 46.800 46.200
+ -7244812.245 5 -5645301.734 3 23279876.137 23279873.873 23279875.739
+ 33.200 23.400
+ 06 1 2 9 2 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19978913.534 7 -15567982.898 7 20460479.934 20460478.316 20460479.152
+ 46.300 45.200
+ -4796984.592 5 -3737907.660 3 23801222.340 23801219.401 23801221.426
+ 30.200 21.600
+ -6548638.637 5 -5102835.424 4 22473127.487 22473124.157 22473125.796
+ 35.300 29.000
+ -12725963.254 6 -9916329.757 5 22172337.265 22172334.458 22172335.951
+ 38.100 32.600
+ -14508722.705 7 -11305497.974 5 21883078.874 21883076.212 21883077.615
+ 43.100 34.500
+ -3467172.572 3 -2701692.577 4 24001929.850 24001925.238 24001928.857
+ 23.800 27.600
+ -20586917.014 7 -16041748.050 7 20621492.691 20621490.560 20621492.033
+ 46.900 46.200
+ -7148764.031 5 -5570458.969 4 23298153.630 23298151.354 23298153.291
+ 32.400 25.600
+ 06 1 2 9 2 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19959218.874 7 -15552636.394 7 20464227.807 20464226.112 20464227.006
+ 46.300 45.300
+ -4839598.602 4 -3771113.358 3 23793111.697 23793110.864 23793111.515
+ 28.100 23.000
+ -6465587.785 6 -5038120.522 4 22488930.851 22488928.393 22488929.840
+ 36.000 28.400
+ -12820384.381 6 -9989904.628 5 22154369.240 22154366.786 22154368.120
+ 38.200 33.000
+ -14531517.846 7 -11323260.428 5 21878741.068 21878738.476 21878739.876
+ 43.300 34.400
+ -3569293.587 4 -2781267.319 4 23982497.596 23982491.846 23982496.236
+ 26.200 28.400
+ -20577113.057 7 -16034108.597 7 20623358.277 20623356.255 20623357.652
+ 46.800 46.300
+ -7052414.534 5 -5495381.434 4 23316487.659 23316485.801 23316487.573
+ 30.800 25.600
+ 06 1 2 9 3 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19939111.564 7 -15536968.359 7 20468053.950 20468052.310 20468053.189
+ 46.300 45.300
+ -4881791.912 4 -3803991.238 4 23785082.395 23785081.910 23785082.792
+ 29.000 25.300
+ -6382264.985 5 -4973193.703 4 22504786.549 22504784.344 22504785.779
+ 35.600 29.700
+ -12914478.112 6 -10063224.386 5 22136463.491 22136461.155 22136462.592
+ 38.800 33.200
+ -14553707.566 7 -11340551.119 5 21874518.553 21874515.813 21874517.368
+ 43.200 34.300
+ -3671358.239 4 -2860798.225 5 23963075.352 23963069.996 23963074.043
+ 28.600 30.200
+ -20567024.012 7 -16026247.004 7 20625278.211 20625276.092 20625277.524
+ 46.800 46.200
+ -6955766.455 5 -5420071.250 4 23334879.180 23334877.818 23334879.088
+ 31.600 25.900
+ 06 1 2 9 3 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19918591.176 7 -15520978.451 7 20471958.964 20471957.239 20471958.104
+ 46.000 45.100
+ -4923562.504 4 -3836539.711 4 23777135.487 23777132.962 23777134.063
+ 28.800 24.200
+ -6298671.480 5 -4908055.942 4 22520693.148 22520691.524 22520693.205
+ 35.600 29.000
+ -13008241.969 6 -10136287.103 5 22118620.385 22118618.498 22118620.024
+ 39.100 33.500
+ -14575290.670 7 -11357369.126 5 21870411.494 21870408.715 21870410.170
+ 43.100 34.600
+ -3773364.862 4 -2940283.863 4 23943664.141 23943658.973 23943662.886
+ 27.900 29.500
+ -20556650.409 7 -16018163.674 7 20627252.258 20627250.095 20627251.590
+ 46.900 46.300
+ -6858822.487 4 -5344530.527 3 23353326.829 23353324.955 23353326.726
+ 29.500 23.400
+ 06 1 2 9 4 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19897657.241 7 -15504666.296 7 20475942.423 20475940.925 20475941.642
+ 46.100 45.200
+ -4964908.089 4 -3868757.026 4 23769267.844 23769265.371 23769266.575
+ 29.900 24.200
+ -6214808.053 5 -4842707.839 4 22536652.981 22536650.369 22536651.944
+ 35.300 29.700
+ -13101673.864 6 -10209091.140 5 22100841.102 22100839.092 22100840.336
+ 38.800 33.200
+ -14596266.851 7 -11373714.202 5 21866419.536 21866416.915 21866418.388
+ 42.900 34.300
+ -3875311.763 5 -3019723.035 4 23924264.835 23924259.238 23924263.297
+ 30.600 28.400
+ -20545992.810 7 -16009859.053 7 20629280.444 20629278.114 20629279.698
+ 46.800 46.200
+ -6761585.523 5 -5268761.437 4 23371830.915 23371828.970 23371830.515
+ 31.100 25.600
+ 06 1 2 9 4 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19876309.319 7 -15488031.549 7 20480004.911 20480003.305 20480004.068
+ 46.200 45.300
+ -5005826.963 4 -3900641.829 3 23761478.965 23761478.872 23761479.354
+ 29.500 23.800
+ -6130675.468 5 -4777149.999 4 22552663.014 22552660.031 22552661.791
+ 34.500 28.100
+ -13194771.404 6 -10281634.648 5 22083126.046 22083123.252 22083124.828
+ 39.300 34.100
+ -14616635.135 7 -11389585.594 5 21862543.373 21862540.933 21862542.218
+ 42.600 34.300
+ -3977197.247 4 -3099114.281 4 23904876.062 23904870.428 23904874.886
+ 29.700 25.600
+ -20535051.774 7 -16001333.570 7 20631362.256 20631360.150 20631361.607
+ 46.800 46.100
+ -6664058.271 5 -5192766.191 4 23390390.030 23390387.955 23390389.624
+ 31.000 25.600
+ 06 1 2 9 5 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19854547.004 7 -15471073.905 7 20484146.062 20484144.492 20484145.347
+ 46.100 45.300
+ -5046316.948 5 -3932192.448 4 23753775.189 23753773.868 23753774.704
+ 30.100 25.300
+ -6046274.725 5 -4711383.190 4 22568724.252 22568721.202 22568722.862
+ 34.700 27.100
+ -13287532.040 6 -10353915.649 5 22065474.831 22065471.425 22065473.178
+ 39.100 34.000
+ -14636394.851 7 -11404982.777 5 21858783.487 21858780.856 21858782.409
+ 43.100 34.500
+ -4079019.975 4 -3178456.698 4 23885500.280 23885494.093 23885498.768
+ 29.700 24.900
+ -20523827.842 7 -15992587.648 7 20633498.350 20633496.009 20633497.587
+ 46.800 46.100
+ -6566243.393 5 -5116546.807 3 23409003.370 23409001.035 23409003.155
+ 30.800 23.800
+ 06 1 2 9 5 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19832369.873 7 -15453793.023 7 20488366.308 20488364.706 20488365.461
+ 46.100 45.200
+ -5086376.071 4 -3963407.310 4 23746153.503 23746150.062 23746151.803
+ 28.800 25.300
+ -5961606.814 5 -4645408.203 4 22584835.305 22584832.730 22584834.419
+ 34.600 27.600
+ -13379953.724 6 -10425932.529 5 22047887.734 22047884.069 22047886.106
+ 39.700 34.000
+ -14655545.252 7 -11419905.168 5 21855139.587 21855136.788 21855138.429
+ 43.500 34.300
+ -4180778.121 5 -3257748.767 4 23866135.484 23866130.223 23866134.445
+ 31.500 24.900
+ -20512321.589 7 -15983621.733 7 20635687.870 20635685.583 20635687.157
+ 46.800 46.200
+ -6468143.768 5 -5040105.576 4 23427671.290 23427669.153 23427670.892
+ 31.500 24.900
+ 06 1 2 9 6 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19809777.513 7 -15436188.590 7 20492665.574 20492663.918 20492664.777
+ 46.400 45.100
+ -5126002.412 5 -3994284.970 4 23738611.347 23738609.751 23738610.874
+ 30.200 24.200
+ -5876672.683 5 -4579225.756 4 22600997.771 22600995.059 22600996.933
+ 34.700 27.400
+ -13472034.417 6 -10497683.701 5 22030364.187 22030361.610 22030363.207
+ 39.500 33.900
+ -14674085.497 7 -11434352.117 5 21851611.401 21851608.716 21851610.232
+ 43.500 34.600
+ -4282469.976 5 -3336989.189 3 23846785.391 23846779.769 23846783.715
+ 30.800 23.400
+ -20500533.667 7 -15974436.334 7 20637930.910 20637928.744 20637930.247
+ 46.800 46.100
+ -6369762.194 5 -4963444.566 3 23446392.813 23446389.870 23446392.375
+ 31.500 22.100
+ 06 1 2 9 6 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19786769.601 7 -15418260.352 7 20497043.830 20497042.164 20497043.027
+ 46.400 45.200
+ -5165193.855 4 -4024823.726 4 23731153.006 23731152.570 23731152.682
+ 29.000 24.900
+ -5791473.414 5 -4512836.709 4 22617211.209 22617208.325 22617210.049
+ 34.500 29.000
+ -13563771.985 6 -10569167.491 5 22012906.567 22012904.667 22012905.897
+ 39.300 34.300
+ -14692015.098 7 -11448323.237 5 21848199.345 21848196.787 21848198.104
+ 43.100 34.400
+ -4384093.900 5 -3416176.674 3 23827446.177 23827440.469 23827445.038
+ 30.800 22.100
+ -20488464.452 7 -15965031.752 7 20640227.792 20640225.377 20640227.067
+ 47.000 46.100
+ -6271101.265 5 -4886565.933 3 23465166.952 23465164.834 23465166.639
+ 31.100 22.600
+ 06 1 2 9 7 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19763345.880 7 -15400008.102 7 20501501.280 20501499.537 20501500.412
+ 46.400 45.100
+ -5203948.543 4 -4055022.169 4 23723780.229 23723777.429 23723778.508
+ 29.700 24.600
+ -5706009.785 5 -4446241.698 4 22633474.356 22633471.448 22633473.223
+ 34.900 27.600
+ -13655163.910 6 -10640381.952 5 21995515.268 21995513.235 21995514.765
+ 40.500 34.100
+ -14709333.675 7 -11461818.239 5 21844903.417 21844901.269 21844902.246
+ 42.500 34.500
+ -4485648.178 5 -3495309.902 3 23808121.446 23808115.542 23808120.170
+ 31.000 23.000
+ -20476114.693 7 -15955408.562 7 20642577.905 20642575.444 20642577.200
+ 47.000 45.900
+ -6172163.772 5 -4809471.788 3 23483994.368 23483992.056 23483994.021
+ 31.800 22.600
+ 06 1 2 9 7 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19739505.989 7 -15381431.566 7 20506037.942 20506036.076 20506037.089
+ 46.600 45.000
+ -5242264.681 4 -4084878.876 4 23716487.890 23716486.035 23716486.810
+ 29.000 24.900
+ -5620282.903 5 -4379441.544 4 22649787.143 22649784.731 22649786.325
+ 34.500 28.100
+ -13746207.838 6 -10711325.245 5 21978190.241 21978188.087 21978189.684
+ 40.300 34.100
+ -14726040.319 7 -11474836.401 5 21841724.449 21841722.042 21841723.237
+ 42.800 34.500
+ -4587130.990 4 -3574387.420 4 23788808.812 23788804.327 23788808.066
+ 28.100 24.900
+ -20463484.829 7 -15945567.110 7 20644981.105 20644978.808 20644980.440
+ 47.100 46.000
+ -6072952.481 5 -4732164.293 3 23502873.758 23502871.489 23502873.581
+ 32.000 21.600
+ 06 1 2 9 8 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19715249.449 7 -15362530.367 7 20510653.767 20510651.883 20510652.983
+ 46.600 44.900
+ -5280140.190 5 -4114392.247 4 23709279.609 23709278.819 23709279.477
+ 30.400 26.200
+ -5534293.412 5 -4312436.765 4 22666150.647 22666148.327 22666149.652
+ 34.400 28.800
+ -13836901.967 6 -10781995.969 5 21960932.305 21960929.456 21960931.157
+ 39.700 33.900
+ -14742134.374 7 -11487377.233 5 21838662.076 21838659.474 21838660.973
+ 43.500 34.600
+ -4688540.993 4 -3653408.186 4 23769511.852 23769506.438 23769510.264
+ 28.600 24.600
+ -20450575.383 7 -15935507.802 7 20647437.756 20647435.394 20647437.104
+ 47.000 45.900
+ -5973470.165 4 -4654645.578 3 23521803.637 23521802.356 23521803.593
+ 29.500 23.800
+ 06 1 2 9 8 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19690576.018 7 -15343304.325 7 20515349.145 20515347.088 20515348.227
+ 46.600 44.800
+ -5317573.189 4 -4143560.805 4 23702157.320 23702154.956 23702156.258
+ 29.500 24.200
+ -5448042.675 5 -4245228.429 4 22682563.466 22682561.162 22682562.448
+ 33.400 28.100
+ -13927243.896 6 -10852392.263 5 21943741.672 21943738.108 21943739.927
+ 39.800 34.800
+ -14757615.544 7 -11499440.484 5 21835716.248 21835713.495 21835715.023
+ 43.500 35.100
+ -4789876.388 4 -3732370.834 4 23750227.150 23750223.211 23750226.543
+ 28.600 25.300
+ -20437387.035 7 -15925231.166 7 20649947.325 20649945.050 20649946.584
+ 46.900 45.800
+ -5873719.439 5 -4576917.763 4 23540786.690 23540784.759 23540786.235
+ 31.000 25.600
+ 06 1 2 9 9 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19665485.412 7 -15323753.218 7 20520123.593 20520121.751 20520122.771
+ 46.600 44.800
+ -5354561.776 4 -4172383.058 4 23695118.369 23695116.656 23695117.244
+ 29.700 24.600
+ -5361531.402 5 -4177817.068 4 22699026.545 22699023.612 22699025.234
+ 34.500 27.900
+ -14017231.422 6 -10922512.385 5 21926617.297 21926614.017 21926615.772
+ 40.500 35.300
+ -14772482.693 7 -11511025.286 5 21832887.024 21832884.170 21832885.803
+ 43.300 34.600
+ -4891135.053 5 -3811273.671 4 23730959.212 23730954.371 23730958.379
+ 31.300 28.800
+ -20423920.216 7 -15914737.537 7 20652510.064 20652507.691 20652509.328
+ 46.900 45.900
+ -5773703.073 4 -4498982.945 3 23559818.434 23559816.887 23559818.067
+ 29.200 23.000
+ 06 1 2 9 9 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19639977.333 7 -15303876.805 7 20524977.410 20524975.824 20524976.759
+ 46.600 44.700
+ -5391104.087 4 -4200857.547 3 23688163.329 23688161.992 23688163.245
+ 29.700 23.400
+ -5274760.748 5 -4110203.601 4 22715538.461 22715535.411 22715537.057
+ 34.100 26.500
+ -14106862.494 6 -10992354.759 5 21909559.559 21909557.942 21909559.154
+ 40.300 35.100
+ -14786736.115 7 -11522131.851 5 21830174.472 21830172.028 21830173.337
+ 43.200 34.800
+ -4992315.767 5 -3890115.769 5 23711705.960 23711700.344 23711704.521
+ 32.100 30.200
+ -20410175.511 7 -15904027.373 7 20655125.638 20655123.291 20655124.955
+ 47.000 45.900
+ -5673423.929 5 -4420843.373 3 23578901.284 23578899.125 23578900.974
+ 30.100 22.600
+ 06 1 2 9 10 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19614051.367 7 -15283674.759 7 20529911.147 20529909.383 20529910.266
+ 46.600 44.700
+ -5427198.170 5 -4228982.790 4 23681295.818 23681293.686 23681294.805
+ 30.100 24.600
+ -5187731.748 5 -4042388.821 4 22732099.018 22732096.529 22732098.120
+ 33.900 26.500
+ -14196134.735 6 -11061917.505 5 21892572.055 21892570.105 21892571.448
+ 41.000 35.300
+ -14800374.998 7 -11532759.562 5 21827579.031 21827576.744 21827577.926
+ 43.100 35.100
+ -5093416.557 5 -3968895.600 5 23692465.789 23692461.575 23692464.880
+ 31.300 31.000
+ -20396153.568 7 -15893101.180 7 20657793.886 20657791.565 20657793.157
+ 47.000 45.900
+ -5572884.720 4 -4342501.081 3 23598032.718 23598030.947 23598033.023
+ 29.500 22.600
+ 06 1 2 9 10 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19587707.276 7 -15263146.899 7 20534924.469 20534922.427 20534923.472
+ 46.500 44.600
+ -5462842.317 5 -4256757.445 3 23674513.915 23674511.266 23674512.566
+ 30.600 23.800
+ -5100445.321 5 -3974373.491 4 22748709.259 22748706.492 22748708.309
+ 33.900 26.800
+ -14285046.165 6 -11131199.124 5 21875653.755 21875650.459 21875652.284
+ 40.800 34.700
+ -14813398.687 7 -11542907.899 5 21825100.743 21825098.370 21825099.598
+ 43.000 34.700
+ -5194435.867 5 -4047611.880 4 23673243.643 23673237.897 23673242.375
+ 32.100 28.800
+ -20381854.802 7 -15881959.284 7 20660514.732 20660512.527 20660514.098
+ 47.000 45.900
+ -5472088.007 4 -4263958.229 3 23617214.328 23617212.666 23617213.703
+ 28.800 22.600
+ 06 1 2 9 11 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19560944.709 7 -15242292.945 7 20540016.739 20540015.141 20540016.130
+ 46.700 44.600
+ -5498034.583 4 -4284180.005 3 23667815.652 23667813.971 23667815.025
+ 28.800 23.400
+ -5012902.368 5 -3906158.259 4 22765368.157 22765365.554 22765367.361
+ 34.500 26.800
+ -14373594.427 6 -11200197.754 5 21858804.037 21858800.452 21858802.181
+ 40.200 35.200
+ -14825806.795 7 -11552576.556 5 21822739.636 21822736.996 21822738.457
+ 43.100 34.700
+ -5295371.583 5 -4126263.119 4 23654036.227 23654030.859 23654034.725
+ 30.800 29.500
+ -20367279.878 7 -15870602.201 7 20663288.420 20663286.082 20663287.680
+ 47.000 46.000
+ -5371036.723 4 -4185216.952 3 23636443.599 23636441.146 23636443.159
+ 27.900 21.100
+ 06 1 2 9 11 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19533763.330 7 -15221112.646 7 20545189.388 20545187.634 20545188.655
+ 46.600 44.600
+ -5532773.320 4 -4311249.125 3 23661204.642 23661204.104 23661204.582
+ 29.900 23.800
+ -4925103.817 5 -3837743.839 4 22782075.905 22782073.200 22782074.779
+ 32.400 26.500
+ -14461777.777 6 -11268912.035 5 21842022.904 21842019.552 21842021.368
+ 40.800 35.300
+ -14837599.033 7 -11561765.321 5 21820495.888 21820493.015 21820494.542
+ 43.100 34.700
+ -5396222.245 4 -4204848.018 4 23634844.302 23634839.039 23634842.947
+ 29.900 27.400
+ -20352429.190 7 -15859030.240 7 20666114.236 20666112.128 20666113.636
+ 47.000 46.000
+ -5269733.446 5 -4106279.320 3 23655722.038 23655719.337 23655721.501
+ 30.600 23.400
+ 06 1 2 9 12 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19506163.034 7 -15199605.920 7 20550441.829 20550439.760 20550440.827
+ 46.500 44.600
+ -5567056.711 5 -4337963.440 4 23654681.978 23654680.107 23654680.892
+ 30.800 24.900
+ -4837050.987 5 -3769131.274 4 22798831.466 22798829.233 22798830.539
+ 32.800 26.800
+ -14549593.728 6 -11337340.027 5 21825311.095 21825308.808 21825310.268
+ 41.400 35.700
+ -14848775.036 7 -11570473.902 5 21818369.014 21818366.472 21818367.814
+ 43.200 35.300
+ -5496985.956 5 -4283365.176 4 23615669.484 23615663.947 23615668.585
+ 30.100 26.500
+ -20337303.398 7 -15847243.913 7 20668992.674 20668990.477 20668991.974
+ 47.100 46.000
+ -5168180.864 4 -4027147.470 3 23675045.382 23675044.339 23675044.873
+ 27.400 23.800
+ 06 1 2 9 12 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19478143.712 7 -15177772.686 7 20555773.739 20555771.720 20555772.671
+ 46.500 44.400
+ -5600882.840 4 -4364321.455 4 23648244.470 23648242.918 23648243.647
+ 29.700 24.900
+ -4748744.848 5 -3700321.306 4 22815634.743 22815633.007 22815634.130
+ 32.300 26.200
+ -14637040.432 6 -11405480.286 5 21808670.679 21808668.264 21808669.694
+ 41.000 35.600
+ -14859334.524 7 -11578702.078 5 21816359.436 21816357.185 21816358.306
+ 43.000 35.400
+ -5597661.004 4 -4361813.253 4 23596511.737 23596506.880 23596510.544
+ 29.900 27.900
+ -20321903.033 7 -15835243.631 7 20671923.267 20671921.031 20671922.559
+ 47.000 46.000
+ -5066381.743 4 -3947823.503 3 23694418.055 23694415.548 23694417.510
+ 28.600 21.600
+ 06 1 2 9 13 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19449704.982 7 -15155612.638 7 20561184.894 20561183.479 20561184.300
+ 46.400 44.300
+ -5634249.994 4 -4390321.811 4 23641894.326 23641893.263 23641894.127
+ 29.900 24.600
+ -4660186.209 5 -3631314.572 4 22832487.134 22832485.236 22832486.544
+ 32.800 26.200
+ -14724115.605 6 -11473331.050 5 21792101.330 21792098.317 21792099.919
+ 41.300 35.900
+ -14869277.020 7 -11586449.482 5 21814467.474 21814465.214 21814466.307
+ 43.200 35.500
+ -5698245.488 5 -4440190.778 4 23577371.833 23577365.959 23577370.257
+ 31.600 26.200
+ -20306228.655 7 -15823029.832 7 20674905.770 20674903.819 20674905.193
+ 47.000 46.000
+ -4964338.887 4 -3868309.558 3 23713835.786 23713833.172 23713835.423
+ 28.800 19.300
+ 06 1 2 9 13 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19420846.607 7 -15133125.590 7 20566676.356 20566674.968 20566675.800
+ 46.600 44.600
+ -5667156.391 5 -4415963.146 4 23635633.087 23635631.363 23635632.509
+ 30.400 24.200
+ -4571376.314 5 -3562112.082 4 22849387.121 22849385.678 22849386.734
+ 32.800 28.100
+ -14810817.097 6 -11540890.633 6 21775602.385 21775599.599 21775601.288
+ 41.900 36.000
+ -14878602.085 7 -11593715.765 5 21812693.200 21812690.598 21812691.877
+ 43.400 35.300
+ -5798737.796 5 -4518496.457 4 23558248.904 23558243.059 23558247.469
+ 32.700 27.100
+ -20290280.768 7 -15810602.909 7 20677940.789 20677938.634 20677940.022
+ 46.800 46.200
+ -4862054.890 4 -3788607.742 3 23733299.073 23733297.821 23733299.064
+ 29.000 22.100
+ 06 1 2 9 14 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19391568.338 7 -15110311.358 7 20572248.363 20572246.443 20572247.340
+ 46.200 44.300
+ -5699600.452 5 -4441244.217 3 23629459.137 23629457.011 23629458.287
+ 30.400 23.400
+ -4482316.042 5 -3492714.506 4 22866335.145 22866333.037 22866334.331
+ 32.600 27.100
+ -14897142.974 7 -11608157.525 6 21759174.866 21759172.404 21759173.972
+ 42.000 36.500
+ -14887309.599 7 -11600500.840 5 21811036.404 21811033.666 21811035.131
+ 43.500 35.500
+ -5899135.678 5 -4596728.589 4 23539143.116 23539137.828 23539142.338
+ 32.400 24.600
+ -20274059.884 7 -15797963.261 7 20681027.341 20681025.366 20681026.655
+ 46.800 46.100
+ -4759532.530 5 -3708720.190 3 23752809.897 23752806.508 23752809.606
+ 30.400 21.100
+ 06 1 2 9 14 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19361869.885 7 -15087169.706 7 20577899.893 20577897.849 20577898.837
+ 46.500 44.200
+ -5731580.471 4 -4466163.703 4 23623372.616 23623371.989 23623372.547
+ 29.900 24.200
+ -4393006.764 5 -3423122.870 4 22883330.227 22883327.969 22883329.293
+ 32.100 26.800
+ -14983090.796 6 -11675129.838 6 21742819.875 21742817.018 21742818.523
+ 41.300 36.400
+ -14895399.220 7 -11606804.447 5 21809496.646 21809494.214 21809495.521
+ 43.400 35.300
+ -5999438.207 5 -4674886.383 4 23520056.210 23520050.592 23520054.786
+ 31.300 27.100
+ -20257566.609 7 -15785111.364 7 20684166.067 20684163.887 20684165.382
+ 46.800 46.000
+ -4656774.378 4 -3628648.900 3 23772361.874 23772360.929 23772362.328
+ 27.600 20.500
+ 06 1 2 9 15 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19331751.160 7 -15063700.557 7 20583630.636 20583629.243 20583630.159
+ 46.600 44.000
+ -5763094.652 5 -4490720.192 4 23617376.291 23617374.952 23617375.914
+ 30.100 24.200
+ -4303449.286 5 -3353337.866 4 22900372.169 22900370.247 22900371.708
+ 32.100 27.400
+ -15068658.812 6 -11741806.192 6 21726536.383 21726533.981 21726535.321
+ 41.600 36.400
+ -14902870.768 7 -11612626.435 5 21808075.163 21808072.560 21808073.979
+ 43.800 35.800
+ -6099642.749 5 -4752967.853 4 23500988.465 23500982.889 23500986.781
+ 31.100 27.900
+ -20240801.445 7 -15772047.601 7 20687356.228 20687354.166 20687355.601
+ 46.900 46.000
+ -4553783.198 4 -3548396.042 3 23791962.243 23791959.737 23791961.839
+ 29.500 22.600
+ 06 1 2 9 15 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19301212.035 7 -15039903.823 7 20589441.914 20589440.612 20589441.356
+ 46.500 44.200
+ -5794141.354 5 -4514912.424 3 23611469.255 23611466.666 23611468.230
+ 30.800 23.800
+ -4213644.921 5 -3283360.480 4 22917461.686 22917459.353 22917460.820
+ 32.300 26.200
+ -15153845.033 6 -11808185.042 6 21710325.816 21710323.463 21710324.829
+ 41.600 36.500
+ -14909724.285 7 -11617966.841 5 21806770.929 21806768.154 21806769.705
+ 43.600 35.600
+ -6199747.721 5 -4830971.686 4 23481938.152 23481933.245 23481936.731
+ 30.200 28.100
+ -20223764.960 7 -15758772.413 7 20690598.316 20690596.092 20690597.533
+ 46.800 45.900
+ -4450561.768 5 -3467963.752 3 23811604.694 23811602.712 23811604.673
+ 31.000 22.600
+ 06 1 2 9 16 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19270252.309 7 -15015779.364 7 20595333.871 20595332.025 20595332.871
+ 46.500 43.900
+ -5824719.016 5 -4538739.149 4 23605649.466 23605648.425 23605648.890
+ 30.200 25.600
+ -4123594.222 5 -3213191.148 4 22934597.962 22934595.472 22934597.164
+ 32.300 24.200
+ -15238647.250 7 -11874264.666 6 21694189.254 21694185.973 21694187.844
+ 42.100 36.300
+ -14915959.190 7 -11622825.215 5 21805584.601 21805581.777 21805583.358
+ 43.700 35.700
+ -6299751.198 5 -4908896.476 4 23462908.049 23462903.132 23462906.965
+ 30.200 27.600
+ -20206457.626 7 -15745286.180 7 20693891.600 20693889.514 20693890.949
+ 47.000 45.800
+ -4347112.649 4 -3387354.037 3 23831290.107 23831287.645 23831289.646
+ 28.100 22.100
+ 06 1 2 9 16 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19238871.801 7 -14991327.032 7 20601305.698 20601303.519 20601304.571
+ 46.400 44.100
+ -5854825.812 5 -4562198.975 4 23599920.690 23599919.120 23599920.299
+ 31.500 24.900
+ -4033298.686 5 -3142831.056 4 22951780.465 22951778.544 22951779.722
+ 31.600 26.800
+ -15323063.537 7 -11940043.571 6 21678124.775 21678122.166 21678123.740
+ 42.200 36.600
+ -14921575.520 7 -11627201.572 5 21804515.666 21804513.092 21804514.484
+ 43.600 35.700
+ -6399651.701 5 -4986741.006 4 23443898.566 23443893.071 23443897.153
+ 32.100 28.800
+ -20188880.111 7 -15731589.416 7 20697236.770 20697234.363 20697236.019
+ 47.000 45.700
+ -4243438.547 4 -3306569.046 3 23851017.962 23851016.593 23851017.535
+ 26.800 23.000
+ 06 1 2 9 17 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19207070.421 7 -14966546.747 7 20607356.880 20607355.245 20607356.160
+ 46.500 44.000
+ -5884460.174 5 -4585290.679 4 23594282.590 23594279.724 23594281.689
+ 31.800 24.200
+ -3942759.351 5 -3072280.977 3 22969010.093 22969007.068 22969008.816
+ 31.600 23.000
+ -15407091.826 7 -12005520.128 6 21662134.671 21662131.993 21662133.692
+ 42.500 36.500
+ -14926573.160 7 -11631095.845 5 21803564.456 21803562.134 21803563.280
+ 43.300 35.600
+ -6499447.156 5 -5064503.698 5 23424907.560 23424902.687 23424906.262
+ 32.000 30.100
+ -20171032.869 7 -15717682.474 7 20700632.827 20700630.589 20700632.078
+ 47.100 45.600
+ -4139542.218 4 -3225610.884 3 23870790.502 23870787.352 23870789.845
+ 28.400 22.100
+ 06 1 2 9 17 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19174847.920 7 -14941438.313 7 20613488.388 20613487.029 20613487.904
+ 46.700 43.900
+ -5913620.555 5 -4608013.059 4 23588732.815 23588730.806 23588731.874
+ 31.300 24.600
+ -3851977.185 5 -3001541.652 4 22986285.463 22986282.503 22986284.084
+ 31.300 25.300
+ -15490729.943 7 -12070692.672 6 21646218.952 21646216.211 21646217.778
+ 42.200 36.500
+ -14930952.080 7 -11634507.994 5 21802731.168 21802728.781 21802729.964
+ 42.900 35.500
+ -6599135.569 5 -5142182.975 4 23405938.348 23405932.371 23405936.801
+ 34.600 29.200
+ -20152916.396 7 -15703565.741 7 20704080.229 20704078.100 20704079.591
+ 47.200 45.700
+ -4035426.259 4 -3144481.553 3 23890601.831 23890600.379 23890602.039
+ 27.900 21.100
+ 06 1 2 9 18 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19142204.163 7 -14916001.618 7 20619700.660 20619698.900 20619699.856
+ 46.600 43.800
+ -5942305.490 5 -4630364.938 4 23583273.594 23583272.154 23583273.127
+ 30.400 24.200
+ -3760953.521 5 -2930614.149 3 23003606.953 23003603.907 23003605.515
+ 31.000 23.800
+ -15573976.029 7 -12135559.714 6 21630377.469 21630374.961 21630376.578
+ 42.500 36.800
+ -14934712.203 7 -11637437.967 5 21802015.889 21802013.345 21802014.532
+ 43.100 35.800
+ -6698715.224 5 -5219777.533 4 23386988.949 23386982.803 23386987.513
+ 34.600 28.100
+ -20134531.246 7 -15689239.658 7 20707578.969 20707576.666 20707578.207
+ 47.100 45.600
+ -3931093.266 4 -3063183.136 3 23910455.239 23910453.437 23910454.760
+ 25.900 18.600
+ 06 1 2 9 18 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19109139.091 7 -14890236.639 7 20625993.125 20625990.946 20625991.966
+ 46.500 43.900
+ -5970513.317 5 -4652345.037 4 23577906.107 23577904.724 23577905.484
+ 31.500 24.600
+ -3669689.132 5 -2859499.099 4 23020973.913 23020971.293 23020972.463
+ 30.400 25.900
+ -15656828.175 7 -12200119.812 6 21614611.965 21614608.772 21614610.500
+ 42.300 37.300
+ -14937853.191 7 -11639885.496 6 21801417.951 21801415.689 21801416.787
+ 43.400 36.000
+ -6798184.279 5 -5297285.861 5 23368059.804 23368054.622 23368058.592
+ 32.800 30.200
+ -20115877.998 7 -15674704.654 7 20711128.444 20711126.204 20711127.772
+ 47.100 45.500
+ -3826546.019 4 -2981717.731 3 23930348.598 23930348.214 23930349.093
+ 25.300 19.300
+ 06 1 2 9 19 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19075652.604 7 -14864143.275 7 20632364.830 20632363.277 20632364.136
+ 46.800 43.800
+ -5998242.389 5 -4673952.093 4 23572629.579 23572627.897 23572628.774
+ 31.100 24.200
+ -3578185.476 5 -2788197.618 4 23038386.162 23038383.991 23038385.132
+ 31.000 24.900
+ -15739284.270 7 -12264371.278 6 21598920.207 21598917.945 21598919.483
+ 42.900 37.200
+ -14940375.134 7 -11641850.648 6 21800938.096 21800935.682 21800937.037
+ 43.500 36.100
+ -6897540.594 5 -5374706.367 5 23349153.656 23349147.822 23349152.364
+ 32.800 30.200
+ -20096957.101 7 -15659961.102 7 20714728.988 20714726.764 20714728.304
+ 47.200 45.400
+ -3721787.119 4 -2900087.444 2 23950285.931 23950283.306 23950285.465
+ 27.100 16.100
+ 06 1 2 9 19 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -19041744.620 7 -14837721.473 7 20638817.267 20638815.701 20638816.673
+ 46.600 43.800
+ -6025491.408 5 -4695185.082 4 23567444.505 23567442.687 23567443.677
+ 31.000 24.200
+ -3486443.434 5 -2716710.371 4 23055844.328 23055841.598 23055843.138
+ 30.800 25.600
+ -15821342.298 7 -12328312.576 6 21583306.175 21583302.561 21583304.627
+ 42.500 36.900
+ -14942278.275 7 -11643333.618 6 21800576.174 21800573.565 21800574.964
+ 43.500 36.000
+ -6996782.332 5 -5452037.594 4 23330269.312 23330262.924 23330267.120
+ 32.300 29.900
+ -20077769.232 7 -15645009.512 7 20718380.348 20718378.190 20718379.626
+ 47.100 45.600
+ -3616819.320 4 -2818294.316 3 23970260.894 23970258.374 23970260.375
+ 27.900 19.900
+ 06 1 2 9 20 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19007414.985 7 -14810971.115 7 20645350.016 20645348.335 20645349.312
+ 46.800 43.600
+ -6052258.662 5 -4716042.690 3 23562350.168 23562348.485 23562349.541
+ 30.600 22.600
+ -3394464.249 5 -2645038.343 4 23073347.651 23073344.787 23073346.416
+ 31.800 25.600
+ -15903000.417 7 -12391942.254 6 21567766.024 21567763.547 21567765.220
+ 42.800 37.200
+ -14943562.626 7 -11644334.419 5 21800331.873 21800329.063 21800330.587
+ 43.600 35.600
+ -7095907.859 5 -5529278.248 4 23311404.520 23311399.753 23311403.402
+ 32.000 29.200
+ -20058314.728 7 -15629850.161 7 20722082.356 20722080.259 20722081.691
+ 47.000 45.600
+ -3511645.145 4 -2736340.423 3 23990273.416 23990272.051 23990273.295
+ 27.100 21.100
+ 06 1 2 9 20 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18972663.633 7 -14783892.147 7 20651963.283 20651961.384 20651962.303
+ 46.400 43.600
+ -6078542.704 5 -4736523.742 4 23557348.752 23557347.727 23557347.969
+ 30.100 26.800
+ -3302249.116 5 -2573182.430 4 23090895.480 23090892.641 23090894.430
+ 31.300 24.200
+ -15984256.620 7 -12455258.746 6 21552303.973 21552301.093 21552302.700
+ 42.800 37.400
+ -14944228.166 7 -11644853.028 6 21800204.958 21800202.514 21800203.754
+ 43.400 36.200
+ -7194915.007 5 -5606426.668 4 23292564.506 23292559.084 23292563.209
+ 31.800 29.000
+ -20038594.177 7 -15614483.497 7 20725835.165 20725832.922 20725834.448
+ 47.100 45.600
+ -3406267.368 4 -2654227.893 3 24010326.937 24010325.202 24010326.490
+ 28.400 22.100
+ 06 1 2 9 21 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18937490.562 7 -14756484.572 7 20658656.663 20658654.615 20658655.661
+ 46.500 43.600
+ -6104342.141 5 -4756627.173 4 23552438.928 23552438.301 23552438.493
+ 31.000 26.500
+ -3209799.013 4 -2501143.438 4 23108488.213 23108485.767 23108486.876
+ 29.900 25.900
+ -16065109.097 7 -12518260.643 6 21536917.477 21536915.188 21536916.921
+ 43.100 37.200
+ -14944274.866 7 -11644889.429 5 21800196.062 21800193.627 21800194.843
+ 43.500 35.800
+ -7293801.975 5 -5683481.447 4 23273747.529 23273741.662 23273746.134
+ 33.900 28.800
+ -20018608.182 7 -15598910.002 7 20729638.283 20729636.131 20729637.589
+ 47.100 45.600
+ -3300688.586 4 -2571958.686 2 24030417.997 24030415.636 24030417.659
+ 28.100 16.100
+ 06 1 2 9 21 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18901895.718 7 -14728748.341 7 20665429.704 20665428.068 20665428.988
+ 46.600 43.400
+ -6129655.508 5 -4776351.863 4 23547622.527 23547620.502 23547621.874
+ 31.600 25.300
+ -3117114.976 5 -2428922.178 4 23126125.511 23126122.913 23126124.171
+ 30.400 24.900
+ -16145555.566 7 -12580946.177 6 21521610.281 21521606.756 21521608.751
+ 42.800 37.300
+ -14943702.817 7 -11644443.681 6 21800305.042 21800302.666 21800303.887
+ 43.600 36.300
+ -7392566.963 5 -5760441.192 4 23254953.442 23254947.243 23254951.910
+ 35.700 28.800
+ -19998357.131 7 -15583129.961 7 20733491.903 20733489.803 20733491.266
+ 47.100 45.500
+ -3194911.241 4 -2489534.799 3 24050546.254 24050544.488 24050545.831
+ 24.900 18.600
+ 06 1 2 9 22 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18865879.153 7 -14700683.486 7 20672282.999 20672281.806 20672282.539
+ 46.300 43.400
+ -6154481.276 5 -4795696.619 4 23542898.363 23542896.007 23542897.431
+ 31.300 25.300
+ -3024198.358 4 -2356519.650 4 23143806.546 23143804.574 23143805.328
+ 29.700 24.900
+ -16225594.439 7 -12643314.105 6 21506378.718 21506375.978 21506377.640
+ 43.200 37.900
+ -14942512.323 7 -11643516.028 6 21800531.657 21800529.067 21800530.533
+ 43.800 36.300
+ -7491207.826 5 -5837304.230 4 23236181.790 23236175.901 23236180.654
+ 34.800 28.100
+ -19977841.603 7 -15567143.836 7 20737395.990 20737393.757 20737395.276
+ 47.000 45.500
+ -3088938.273 4 -2406958.454 3 24070712.517 24070710.101 24070712.355
+ 27.400 18.600
+ 06 1 2 9 22 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18829440.880 7 -14672290.036 7 20679217.406 20679215.778 20679216.683
+ 46.300 43.200
+ -6178818.147 5 -4814660.394 4 23538266.991 23538264.875 23538265.990
+ 30.100 24.900
+ -2931050.061 4 -2283936.634 4 23161532.370 23161529.904 23161531.183
+ 29.500 24.600
+ -16305223.742 7 -12705362.884 6 21491226.046 21491222.961 21491224.678
+ 43.300 38.000
+ -14940703.566 7 -11642106.618 6 21800875.708 21800873.329 21800874.518
+ 43.400 36.000
+ -7589722.588 5 -5914068.970 4 23217434.840 23217430.158 23217433.680
+ 33.600 29.200
+ -19957062.113 7 -15550952.019 7 20741349.923 20741347.956 20741349.384
+ 47.100 45.500
+ -2982772.052 4 -2324231.517 3 24090915.805 24090913.234 24090915.227
+ 28.800 18.600
+ 06 1 2 9 23 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18792580.649 7 -14643567.792 7 20686232.012 20686230.010 20686231.034
+ 46.200 43.400
+ -6202664.637 5 -4833242.057 4 23533729.517 23533727.285 23533728.815
+ 32.100 24.600
+ -2837671.757 4 -2211174.341 3 23179301.797 23179298.980 23179300.286
+ 28.600 23.800
+ -16384441.822 7 -12767091.240 6 21476150.719 21476148.234 21476149.923
+ 43.500 38.000
+ -14938276.623 7 -11640215.507 5 21801337.329 21801335.032 21801336.320
+ 43.400 35.700
+ -7688109.443 5 -5990734.040 4 23198712.671 23198707.352 23198711.769
+ 34.700 28.800
+ -19936019.284 7 -15534555.006 7 20745354.461 20745352.325 20745353.720
+ 47.000 45.500
+ -2876415.220 4 -2241356.056 2 24111153.823 24111151.790 24111153.746
+ 25.900 17.800
+ 06 1 2 9 23 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18755298.362 7 -14614516.672 7 20693326.419 20693324.589 20693325.521
+ 46.300 43.200
+ -6226019.432 5 -4851440.605 4 23529284.911 23529283.042 23529283.776
+ 31.500 24.900
+ -2744064.135 4 -2138233.391 4 23197114.800 23197112.575 23197113.343
+ 29.900 25.300
+ -16463246.378 7 -12828497.362 6 21461155.276 21461152.109 21461153.931
+ 43.100 37.700
+ -14935231.989 7 -11637843.070 5 21801916.908 21801914.365 21801915.734
+ 43.500 35.400
+ -7786366.247 5 -6067297.794 4 23180014.532 23180009.543 23180013.957
+ 33.500 29.000
+ -19914713.440 7 -15517953.043 7 20749408.585 20749406.647 20749407.992
+ 47.100 45.500
+ -2769870.443 4 -2158334.157 2 24131429.261 24131426.832 24131429.253
+ 26.200 15.100
+ 06 1 2 9 24 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18717594.100 7 -14585136.743 7 20700501.056 20700499.580 20700500.375
+ 46.500 43.100
+ -6248881.178 5 -4869254.912 3 23524935.003 23524932.216 23524933.855
+ 32.000 23.800
+ -2650228.676 5 -2065114.891 3 23214970.519 23214968.531 23214969.746
+ 30.100 23.400
+ -16541635.825 7 -12889580.035 6 21446237.400 21446235.259 21446236.626
+ 43.200 38.200
+ -14931569.682 7 -11634989.337 5 21802614.008 21802611.254 21802612.790
+ 43.600 35.700
+ -7884490.999 5 -6143758.648 5 23161342.449 23161337.127 23161341.246
+ 33.100 30.100
+ -19893145.206 7 -15501146.625 7 20753513.054 20753510.915 20753512.390
+ 47.400 45.400
+ -2663140.366 3 -2075167.855 2 24151738.864 24151737.739 24151738.510
+ 23.400 17.000
+ 06 1 2 9 24 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18679467.846 7 -14555427.984 7 20707756.416 20707754.847 20707755.692
+ 46.400 43.200
+ -6271248.446 5 -4886683.954 4 23520678.647 23520675.945 23520677.896
+ 32.400 24.600
+ -2556166.352 5 -1991819.600 4 23232870.313 23232868.265 23232869.338
+ 30.400 24.200
+ -16619608.154 7 -12950337.675 6 21431400.229 21431397.555 21431399.076
+ 43.100 38.300
+ -14927289.701 7 -11631654.297 5 21803428.194 21803425.802 21803427.047
+ 43.200 35.900
+ -7982482.258 5 -6220115.470 5 23142696.408 23142690.226 23142694.690
+ 34.800 30.100
+ -19871315.082 7 -15484136.132 7 20757667.294 20757665.064 20757666.618
+ 47.300 45.400
+ -2556227.524 4 -1991859.151 3 24172083.962 24172082.603 24172083.794
+ 27.900 19.300
+ 06 1 2 9 25 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18640919.626 7 -14525390.425 7 20715092.019 20715090.323 20715091.168
+ 46.400 43.100
+ -6293120.058 5 -4903726.744 3 23516515.329 23516513.904 23516514.785
+ 31.600 23.800
+ -2461878.325 4 -1918348.452 4 23250812.998 23250810.719 23250811.773
+ 28.800 24.200
+ -16697161.645 7 -13010768.944 6 21416642.162 21416639.657 21416641.152
+ 43.400 38.400
+ -14922392.599 7 -11627838.386 5 21804360.167 21804357.673 21804359.020
+ 43.300 35.700
+ -8080337.761 5 -6296366.502 5 23124075.170 23124069.002 23124073.326
+ 34.400 31.100
+ -19849223.507 7 -15466921.910 7 20761871.047 20761868.982 20761870.463
+ 47.400 45.500
+ -2449134.524 4 -1908410.036 3 24192464.533 24192461.209 24192463.143
+ 26.500 20.500
+ 06 1 2 9 25 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18601949.682 7 -14495024.248 7 20722507.860 20722506.058 20722506.940
+ 46.400 43.100
+ -6314494.646 5 -4920382.246 4 23512448.583 23512446.458 23512447.824
+ 31.100 24.200
+ -2367365.828 4 -1844702.403 4 23268798.262 23268795.966 23268797.005
+ 29.700 25.900
+ -16774294.309 7 -13070872.303 6 21401964.676 21401961.669 21401963.436
+ 43.700 38.400
+ -14916878.821 7 -11623541.949 5 21805409.926 21805407.039 21805408.604
+ 43.300 35.900
+ -8178055.153 5 -6372509.922 5 23105479.377 23105473.792 23105478.008
+ 34.100 31.300
+ -19826871.073 7 -15449504.423 7 20766124.836 20766122.449 20766124.070
+ 47.500 45.400
+ -2341863.944 3 -1824822.600 3 24212876.235 24212873.653 24212875.337
+ 23.400 21.100
+ 06 1 2 9 26 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18562558.000 7 -14464329.447 7 20730003.975 20730001.954 20730002.999
+ 46.400 43.000
+ -6335370.962 5 -4936649.514 4 23508476.097 23508473.838 23508475.288
+ 32.100 24.600
+ -2272629.949 4 -1770882.283 4 23286825.345 23286823.587 23286824.486
+ 27.900 24.600
+ -16851004.389 7 -13130646.372 6 21387367.158 21387364.153 21387365.923
+ 43.800 38.700
+ -14910748.629 7 -11618765.184 5 21806576.080 21806573.624 21806574.835
+ 43.000 35.900
+ -8275632.608 5 -6448544.297 5 23086910.962 23086905.369 23086909.829
+ 34.600 31.100
+ -19804258.296 7 -15431884.080 7 20770427.884 20770425.534 20770427.176
+ 47.500 45.300
+ -2234418.361 4 -1741098.788 3 24233321.791 24233319.997 24233321.563
+ 24.900 21.600
+ 06 1 2 9 26 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18522744.762 7 -14433306.158 7 20737579.911 20737578.128 20737579.134
+ 46.400 42.800
+ -6355747.771 5 -4952527.523 4 23504598.295 23504596.524 23504597.448
+ 32.300 24.600
+ -2177672.059 4 -1696889.154 3 23304895.381 23304892.732 23304894.386
+ 29.000 20.500
+ -16927289.957 7 -13190089.651 6 21372850.412 21372847.353 21372849.260
+ 43.800 38.500
+ -14904002.328 7 -11613508.331 6 21807859.772 21807857.409 21807858.622
+ 43.100 36.000
+ -8373068.327 5 -6524468.232 4 23068369.427 23068363.831 23068368.260
+ 34.500 29.200
+ -19781385.573 7 -15414061.177 7 20774780.314 20774778.075 20774779.662
+ 47.600 45.300
+ -2126800.380 4 -1657240.609 3 24253800.708 24253799.172 24253801.071
+ 24.900 19.300
+ 06 1 2 9 27 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18482509.942 7 -14401954.358 7 20745236.421 20745234.606 20745235.622
+ 46.300 42.900
+ -6375623.711 5 -4968015.254 3 23500816.095 23500814.147 23500815.224
+ 32.000 23.800
+ -2082493.383 4 -1622723.975 3 23323008.406 23323004.732 23323006.590
+ 27.900 21.600
+ -17003149.612 7 -13249201.060 6 21358414.980 21358411.825 21358413.671
+ 43.700 38.700
+ -14896640.325 7 -11607771.719 6 21809260.705 21809258.399 21809259.442
+ 42.700 36.200
+ -8470360.146 5 -6600280.035 4 23049855.962 23049849.703 23049854.402
+ 34.400 29.200
+ -19758253.448 7 -15396036.146 7 20779182.448 20779179.982 20779181.696
+ 47.600 45.300
+ -2019012.506 3 -1573250.066 2 24274310.959 24274310.170 24274312.347
+ 23.800 17.800
+ 06 1 2 9 27 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18441853.662 7 -14370274.152 7 20752973.097 20752971.317 20752972.296
+ 46.400 42.700
+ -6394997.732 5 -4983111.893 4 23497129.383 23497126.945 23497128.544
+ 32.000 24.600
+ -1987095.133 4 -1548387.681 3 23341161.393 23341158.445 23341160.260
+ 28.400 21.100
+ -17078581.490 7 -13307979.117 6 21344060.235 21344057.539 21344059.319
+ 43.600 38.800
+ -14888663.165 7 -11601555.754 5 21810778.787 21810776.223 21810777.554
+ 42.900 35.700
+ -8567506.197 6 -6675978.266 4 23031369.671 23031363.583 23031368.358
+ 36.000 29.500
+ -19734862.427 7 -15377809.371 7 20783633.269 20783631.121 20783632.702
+ 47.600 45.300
+ -1911057.360 4 -1489129.165 3 24294855.245 24294854.134 24294855.349
+ 25.600 19.300
+ 06 1 2 9 28 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18400776.062 7 -14338265.648 7 20760789.979 20760788.143 20760789.094
+ 46.500 42.900
+ -6413868.583 5 -4997816.427 4 23493538.731 23493536.481 23493537.959
+ 33.100 26.500
+ -1891478.623 4 -1473881.356 3 23359356.503 23359354.169 23359355.025
+ 26.800 23.000
+ -17153583.555 7 -13366422.279 6 21329787.820 21329785.098 21329786.786
+ 43.700 39.000
+ -14880071.053 7 -11594860.611 5 21812413.697 21812411.250 21812412.559
+ 42.800 35.700
+ -8664504.016 6 -6751560.999 5 23012911.296 23012905.688 23012910.003
+ 36.500 31.000
+ -19711213.093 7 -15359381.319 7 20788133.914 20788131.491 20788133.004
+ 47.300 45.300
+ -1802937.530 4 -1404879.951 1 24315430.649 24315428.097 24315429.532
+ 24.200 11.000
+ 06 1 2 9 28 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18359277.070 7 -14305928.781 7 20768687.196 20768685.068 20768686.168
+ 46.500 42.700
+ -6432235.056 5 -5012127.953 4 23490043.451 23490041.447 23490042.839
+ 32.600 25.600
+ -1795644.566 4 -1399205.523 3 23377593.150 23377591.128 23377591.856
+ 27.400 22.100
+ -17228154.130 7 -13424529.201 6 21315597.876 21315594.859 21315596.515
+ 43.700 39.200
+ -14870864.768 7 -11587686.893 5 21814165.712 21814162.976 21814164.567
+ 43.100 35.500
+ -8761351.840 5 -6827026.841 5 22994481.519 22994476.175 22994480.393
+ 35.800 30.600
+ -19687305.805 7 -15340752.262 7 20792682.781 20792680.895 20792682.204
+ 47.300 45.300
+ -1694655.469 4 -1320504.273 2 24336035.968 24336033.675 24336035.355
+ 24.900 16.100
+ 06 1 2 9 29 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18317356.882 7 -14273263.720 7 20776664.174 20776662.289 20776663.354
+ 46.400 42.700
+ -6450096.099 5 -5026045.637 4 23486644.674 23486642.676 23486643.955
+ 33.000 25.900
+ -1699594.964 4 -1324361.703 3 23395870.317 23395868.591 23395869.294
+ 27.100 23.400
+ -17302291.594 7 -13482298.631 6 21301489.363 21301486.962 21301488.461
+ 43.900 39.200
+ -14861044.962 7 -11580035.104 5 21816034.461 21816031.742 21816033.178
+ 42.800 35.600
+ -8858047.833 5 -6902374.368 5 22976080.892 22976075.610 22976079.720
+ 35.500 31.000
+ -19663141.164 7 -15321922.674 7 20797281.444 20797279.281 20797280.729
+ 47.400 45.300
+ -1586213.660 4 -1236004.162 3 24356672.476 24356669.818 24356671.800
+ 26.800 19.900
+ 06 1 2 9 29 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18275015.716 7 -14240270.621 7 20784721.425 20784719.653 20784720.550
+ 46.300 42.800
+ -6467450.309 5 -5039568.388 4 23483342.445 23483340.412 23483341.689
+ 32.600 27.100
+ -1603330.615 4 -1249350.551 3 23414189.344 23414187.099 23414188.160
+ 28.800 22.100
+ -17375994.129 7 -13539729.173 6 21287464.770 21287461.785 21287463.506
+ 43.600 39.300
+ -14850611.893 7 -11571905.450 5 21818019.735 21818017.197 21818018.608
+ 42.600 35.600
+ -8954589.627 5 -6977601.723 5 22957709.703 22957704.156 22957708.442
+ 35.500 31.800
+ -19638719.574 7 -15302892.865 7 20801928.573 20801926.630 20801927.905
+ 47.400 45.300
+ -1477614.877 4 -1151381.734 3 24377338.276 24377335.520 24377337.354
+ 24.600 20.500
+ 06 1 2 9 30 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18232253.714 7 -14206949.592 7 20792858.165 20792857.039 20792857.636
+ 46.300 42.800
+ -6484296.835 5 -5052695.543 4 23480136.550 23480134.969 23480135.704
+ 32.400 27.600
+ -1506852.717 4 -1174173.001 3 23432548.453 23432545.986 23432547.031
+ 27.400 22.600
+ -17449260.566 7 -13596819.883 6 21273522.768 21273519.770 21273521.452
+ 44.100 39.500
+ -14839566.189 7 -11563298.415 6 21820121.713 21820119.272 21820120.397
+ 42.700 36.000
+ -9050975.385 6 -7052707.496 5 22939368.018 22939362.795 22939366.788
+ 36.600 32.300
+ -19614041.652 7 -15283663.316 7 20806624.767 20806622.578 20806624.074
+ 47.600 45.000
+ -1368861.505 3 -1066638.857 3 24398032.466 24398031.040 24398032.363
+ 23.800 21.600
+ 06 1 2 9 30 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18189070.978 7 -14173300.720 7 20801075.755 20801074.412 20801075.049
+ 46.100 42.700
+ -6500634.446 5 -5065426.126 4 23477027.803 23477025.534 23477027.096
+ 32.800 26.800
+ -1410162.803 4 -1098830.226 3 23450948.172 23450945.675 23450946.731
+ 27.100 23.000
+ -17522088.428 7 -13653568.851 6 21259663.832 21259660.999 21259662.714
+ 44.300 39.600
+ -14827908.376 7 -11554214.412 5 21822339.903 21822337.630 21822338.636
+ 42.500 35.700
+ -9147202.810 6 -7127689.898 5 22921056.829 22921051.356 22921055.440
+ 36.700 31.800
+ -19589107.651 7 -15264234.223 7 20811369.536 20811367.382 20811368.910
+ 47.600 45.000
+ -1259955.925 3 -981777.395 3 24418756.074 24418754.553 24418755.312
+ 21.600 19.300
+ 06 1 2 9 31 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18145467.620 7 -14139324.084 7 20809373.602 20809371.900 20809372.638
+ 46.100 42.800
+ -6516462.105 5 -5077759.365 4 23474015.229 23474013.810 23474014.406
+ 31.600 26.800
+ -1313261.902 4 -1023323.072 3 23469386.726 23469385.390 23469386.132
+ 27.400 22.600
+ -17594476.213 7 -13709974.909 6 21245888.712 21245886.071 21245887.752
+ 44.400 39.600
+ -14815638.896 7 -11544653.781 6 21824674.586 21824672.520 21824673.552
+ 42.700 36.100
+ -9243269.943 6 -7202547.408 5 22902775.344 22902770.100 22902774.306
+ 36.500 31.600
+ -19563918.247 7 -15244606.124 7 20816162.925 20816160.824 20816162.263
+ 47.600 45.200
+ -1150900.739 4 -896799.347 3 24439508.856 24439507.194 24439508.381
+ 24.200 19.300
+ 06 1 2 9 31 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18101443.827 7 -14105019.838 7 20817751.199 20817749.444 20817750.155
+ 46.200 42.900
+ -6531778.769 5 -5089694.416 4 23471100.356 23471098.915 23471099.707
+ 31.600 26.500
+ -1216151.386 4 -947652.570 3 23487867.488 23487864.589 23487866.043
+ 27.900 21.100
+ -17666422.269 7 -13766036.762 6 21232198.136 21232195.135 21232196.935
+ 44.300 39.700
+ -14802758.663 7 -11534617.237 5 21827125.839 21827123.597 21827124.501
+ 42.400 35.700
+ -9339174.764 5 -7277278.431 5 22884525.423 22884520.326 22884524.438
+ 35.900 32.100
+ -19538473.925 7 -15224779.379 7 20821004.750 20821002.664 20821004.114
+ 47.600 45.200
+ -1041698.559 3 -811706.704 2 24460288.999 24460287.314 24460288.797
+ 23.800 17.000
+ 06 1 2 9 32 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18056999.858 7 -14070388.178 7 20826208.500 20826206.782 20826207.544
+ 46.100 42.800
+ -6546583.485 5 -5101230.559 4 23468283.006 23468281.313 23468282.204
+ 31.600 25.600
+ -1118832.526 4 -871819.694 3 23506386.252 23506384.156 23506385.186
+ 27.100 23.000
+ -17737925.134 7 -13821753.254 6 21218591.550 21218588.833 21218590.406
+ 44.400 40.300
+ -14789268.328 7 -11524105.288 5 21829692.896 21829690.617 21829691.621
+ 42.100 35.600
+ -9434915.364 6 -7351881.486 5 22866306.509 22866301.030 22866305.132
+ 36.000 31.800
+ -19512775.087 7 -15204754.313 7 20825895.147 20825892.943 20825894.450
+ 47.600 44.900
+ -932351.855 4 -726501.484 2 24481096.507 24481095.189 24481096.855
+ 25.300 16.100
+ 06 1 2 9 32 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -18012135.872 7 -14035429.227 7 20834745.244 20834744.046 20834744.637
+ 46.000 42.700
+ -6560875.164 5 -5112366.911 4 23465563.749 23465562.423 23465562.913
+ 31.000 27.400
+ -1021306.520 4 -795825.456 4 23524944.088 23524943.070 23524943.280
+ 26.200 24.200
+ -17808983.152 7 -13877123.122 6 21205069.133 21205066.889 21205068.371
+ 44.700 40.200
+ -14775168.485 7 -11513118.405 5 21832375.944 21832373.892 21832374.832
+ 42.400 35.900
+ -9530489.234 6 -7426354.623 5 22848119.950 22848113.713 22848118.463
+ 36.900 30.800
+ -19486822.300 7 -15184531.365 7 20830833.917 20830831.488 20830833.188
+ 47.600 44.800
+ -822863.063 3 -641185.514 2 24501931.606 24501930.177 24501931.499
+ 23.000 15.100
+ 06 1 2 9 33 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -17966852.160 7 -14000143.230 7 20843362.589 20843361.201 20843361.898
+ 45.900 42.300
+ -6574652.803 5 -5123102.728 4 23462941.647 23462940.874 23462941.043
+ 31.100 27.600
+ -923574.640 4 -719670.775 4 23543542.514 23543540.873 23543541.767
+ 28.100 24.200
+ -17879594.704 7 -13932145.105 6 21191632.598 21191629.822 21191631.508
+ 44.500 40.300
+ -14760459.948 7 -11501657.213 5 21835175.085 21835172.521 21835173.905
+ 42.400 35.200
+ -9625894.294 6 -7500696.245 5 22829965.273 22829958.877 22829963.403
+ 36.500 30.400
+ -19460615.997 7 -15164110.871 7 20835820.808 20835818.420 20835820.079
+ 47.600 44.700
+ -713234.646 3 -555760.776 2 24522792.831 24522792.072 24522793.173
+ 22.100 17.000
+ 06 1 2 9 33 30.0000000 0 8G01G06G14G16G20G23G25G30
+ -17921148.966 7 -13964530.357 7 20852059.729 20852058.291 20852058.956
+ 45.900 42.300
+ -6587915.419 5 -5133437.213 4 23460417.833 23460416.449 23460417.177
+ 31.000 27.400
+ -825638.162 4 -643356.705 3 23562179.046 23562177.248 23562178.010
+ 26.200 21.600
+ -17949758.063 7 -13986817.830 6 21178280.620 21178278.089 21178279.586
+ 44.100 40.300
+ -14745143.479 7 -11489722.314 5 21838090.044 21838087.004 21838088.763
+ 43.000 35.100
+ -9721128.509 6 -7574904.712 5 22811842.272 22811836.436 22811841.078
+ 37.700 31.500
+ -19434156.580 7 -15143493.148 7 20840855.595 20840853.584 20840855.019
+ 47.600 44.800
+ -603469.185 3 -470229.270 2 24543680.640 24543679.160 24543680.308
+ 19.900 15.100
+ 06 1 2 9 34 0.0000000 0 7G01G06G14G16G20G23G25
+ -17875026.497 7 -13928590.778 7 20860836.830 20860835.077 20860835.915
+ 45.900 42.300
+ -6600662.183 5 -5143369.738 4 23457992.475 23457991.163 23457991.710
+ 31.600 26.800
+ -727498.417 4 -566884.176 3 23580853.948 23580852.515 23580853.201
+ 25.300 20.500
+ -18019471.438 7 -14041139.914 6 21165015.027 21165012.058 21165013.769
+ 44.400 40.200
+ -14729219.888 7 -11477314.329 5 21841120.001 21841117.116 21841118.714
+ 42.600 34.500
+ -9816189.997 6 -7648978.614 5 22793752.454 22793747.121 22793751.127
+ 36.800 31.500
+ -19407444.677 7 -15122678.684 7 20845938.621 20845936.632 20845938.065
+ 47.500 44.700
+ 06 1 2 9 34 30.0000000 0 7G01G06G14G16G20G23G25
+ -17828484.976 7 -13892324.673 7 20869693.463 20869691.724 20869692.473
+ 46.000 42.500
+ -6612892.083 5 -5152899.523 4 23455664.997 23455663.754 23455664.395
+ 31.500 26.500
+ -629156.627 4 -490254.255 3 23599568.197 23599566.486 23599567.448
+ 27.400 22.100
+ -18088733.516 7 -14095110.349 6 21151834.600 21151831.830 21151833.584
+ 44.700 40.200
+ -14712689.849 7 -11464433.779 5 21844265.222 21844262.757 21844264.188
+ 42.500 34.700
+ -9911076.325 6 -7722916.001 5 22775696.396 22775690.778 22775695.033
+ 36.500 32.300
+ -19380480.572 7 -15101667.694 7 20851070.042 20851067.726 20851069.302
+ 47.500 44.600
+ 06 1 2 9 35 0.0000000 0 7G01G06G14G16G20G23G25
+ -17781524.719 7 -13855732.279 7 20878629.568 20878627.989 20878628.676
+ 46.000 42.400
+ -6624604.196 5 -5162025.838 4 23453436.495 23453434.912 23453435.812
+ 32.400 26.200
+ -530614.176 4 -413467.967 3 23618320.832 23618318.722 23618319.423
+ 25.600 23.000
+ -18157543.023 7 -14148728.143 6 21138740.408 21138737.844 21138739.407
+ 44.700 40.500
+ -14695553.939 7 -11451081.135 5 21847526.118 21847523.814 21847525.047
+ 42.300 34.900
+ -10005785.500 6 -7796715.351 5 22757673.268 22757668.268 22757672.212
+ 36.400 32.400
+ -19353264.860 7 -15080460.645 7 20856249.063 20856246.692 20856248.370
+ 47.700 44.600
+ 06 1 2 9 35 30.0000000 0 7G01G06G14G16G20G23G25
+ -17734145.997 7 -13818813.805 7 20887645.021 20887643.855 20887644.431
+ 46.100 42.300
+ -6635797.566 5 -5170747.950 4 23451307.023 23451304.940 23451306.052
+ 32.100 27.400
+ -431872.343 4 -336526.291 3 23637111.541 23637108.120 23637109.873
+ 28.100 19.300
+ -18225897.988 7 -14201991.737 6 21125732.934 21125730.435 21125731.787
+ 44.600 40.800
+ -14677813.370 7 -11437257.317 5 21850902.372 21850899.765 21850901.060
+ 42.300 34.800
+ -10100315.323 6 -7870374.941 5 22739684.998 22739679.972 22739683.893
+ 37.900 33.000
+ -19325798.035 7 -15059057.926 7 20861475.643 20861473.469 20861475.023
+ 47.600 44.600
+ 06 1 2 9 36 0.0000000 0 7G01G06G14G16G20G23G25
+ -17686349.129 7 -13781569.491 7 20896740.742 20896739.311 20896740.038
+ 46.200 42.100
+ -6646471.583 5 -5179065.357 4 23449274.859 23449273.969 23449273.964
+ 31.600 27.600
+ -332932.344 4 -259430.228 3 23655938.435 23655936.613 23655937.272
+ 27.100 20.500
+ -18293796.868 7 -14254899.936 6 21112812.225 21112809.542 21112811.134
+ 44.500 40.700
+ -14659468.937 7 -11422962.971 5 21854393.126 21854390.663 21854391.985
+ 42.800 34.900
+ -10194663.828 6 -7943893.258 5 22721731.852 22721725.978 22721730.306
+ 38.400 33.100
+ -19298080.435 7 -15037459.796 7 20866750.108 20866747.939 20866749.432
+ 47.600 44.400
+ 06 1 2 9 36 30.0000000 0 7G01G06G14G16G20G23G25
+ -17638134.455 7 -13743999.606 7 20905915.899 20905914.269 20905915.090
+ 46.300 42.100
+ -6656625.235 5 -5186977.275 4 23447342.415 23447341.523 23447341.879
+ 31.300 27.900
+ -233795.765 4 -182180.964 3 23674803.119 23674801.637 23674802.303
+ 25.600 22.100
+ -18361238.263 7 -14307451.652 6 21099978.705 21099975.811 21099977.518
+ 44.600 40.600
+ -14640521.685 7 -11408198.877 5 21857998.713 21857996.004 21857997.501
+ 42.400 34.600
+ -10288828.728 6 -8017268.516 5 22703812.577 22703806.710 22703811.202
+ 38.400 32.000
+ -19270112.581 7 -15015666.661 7 20872072.078 20872069.979 20872071.528
+ 47.500 44.500
+ 06 1 2 9 37 0.0000000 0 7G01G06G14G16G20G23G25
+ -17589502.262 7 -13706104.386 7 20915170.469 20915168.640 20915169.515
+ 46.200 42.200
+ -6666257.563 5 -5194482.978 4 23445510.276 23445508.470 23445509.435
+ 32.400 27.100
+ -134463.709 4 -104779.432 3 23693705.967 23693703.685 23693704.805
+ 28.100 20.500
+ -18428220.785 7 -14359645.802 6 21087232.425 21087229.500 21087231.234
+ 44.700 40.900
+ -14620972.256 7 -11392965.562 5 21861718.707 21861716.270 21861717.408
+ 42.200 34.900
+ -10382807.804 6 -8090498.954 5 22685928.896 22685923.241 22685927.604
+ 38.200 33.200
+ -19241894.925 7 -14993678.875 7 20877442.042 20877439.756 20877441.239
+ 47.700 44.500
+ 06 1 2 9 37 30.0000000 0 7G01G06G14G16G20G23G25
+ -17540452.832 7 -13667884.056 6 20924504.450 20924502.411 20924503.417
+ 46.300 41.800
+ -6675368.029 5 -5201582.037 4 23443776.056 23443774.669 23443775.275
+ 31.500 26.800
+ -34937.453 4 -27226.532 3 23712645.260 23712642.803 23712643.630
+ 24.900 20.500
+ -18494742.894 7 -14411481.196 6 21074573.525 21074570.739 21074572.568
+ 45.000 41.000
+ -14600821.817 7 -11377263.929 5 21865553.186 21865550.665 21865551.991
+ 42.400 34.000
+ -10476598.885 6 -8163582.907 5 22668080.586 22668075.508 22668079.583
+ 38.400 33.400
+ -19213427.964 7 -14971496.824 7 20882858.792 20882856.859 20882858.290
+ 47.600 44.500
+ 06 1 2 9 38 0.0000000 0 7G01G06G14G16G20G23G25
+ -17490986.453 7 -13629338.837 6 20933917.311 20933915.489 20933916.475
+ 46.300 41.600
+ -6683955.690 5 -5208273.710 4 23442142.234 23442140.771 23442141.576
+ 32.000 26.800
+ 64781.462 4 50476.484 3 23731621.089 23731618.417 23731619.906
+ 25.300 18.600
+ -18560802.738 7 -14462956.386 6 21062002.993 21062000.025 21062001.797
+ 45.100 41.100
+ -14580071.219 7 -11361094.639 5 21869501.895 21869499.431 21869500.558
+ 42.000 34.600
+ -10570199.874 6 -8236518.745 5 22650269.208 22650263.591 22650268.019
+ 38.400 32.600
+ -19184712.197 7 -14949120.901 7 20888323.386 20888321.171 20888322.706
+ 47.700 44.300
+ 06 1 2 9 38 30.0000000 0 7G01G06G14G16G20G23G25
+ -17441103.498 7 -13590469.021 6 20943409.616 20943407.925 20943408.879
+ 46.300 41.500
+ -6692019.768 5 -5214557.421 4 23440607.131 23440606.266 23440606.486
+ 31.300 26.800
+ 164691.788 4 128328.671 3 23750633.769 23750630.991 23750631.819
+ 24.200 19.300
+ -18626399.254 7 -14514070.534 6 21049519.925 21049517.254 21049519.041
+ 45.000 40.900
+ -14558721.452 7 -11344458.464 5 21873564.633 21873562.179 21873563.514
+ 42.400 34.400
+ -10663608.451 6 -8309304.644 5 22632494.205 22632488.718 22632492.897
+ 38.300 33.500
+ -19155747.997 7 -14926551.395 7 20893835.162 20893832.804 20893834.515
+ 47.700 44.300
+ 06 1 2 9 39 0.0000000 0 7G01G06G14G16G20G23G25
+ -17390804.337 7 -13551274.881 6 20952980.770 20952979.534 20952980.334
+ 46.300 41.700
+ -6699559.504 5 -5220432.522 4 23439172.304 23439171.790 23439171.755
+ 31.600 27.600
+ 264792.228 4 206328.972 2 23769682.926 23769678.988 23769680.903
+ 24.200 15.100
+ -18691530.758 7 -14564822.344 6 21037126.139 21037123.062 21037125.011
+ 44.900 41.000
+ -14536773.692 7 -11327356.327 5 21877741.390 21877738.651 21877740.175
+ 42.800 34.700
+ -10756822.417 6 -8381938.886 5 22614756.541 22614750.797 22614755.088
+ 38.900 34.000
+ -19126535.854 7 -14903788.689 7 20899394.087 20899391.753 20899393.389
+ 47.800 44.300
+ 06 1 2 9 39 30.0000000 0 7G01G06G14G16G20G23G25
+ -17340089.289 7 -13511756.651 6 20962631.751 20962630.285 20962631.141
+ 46.100 41.700
+ -6706574.526 5 -5225898.757 4 23437838.078 23437836.637 23437837.331
+ 32.600 28.400
+ 365081.373 3 284476.349 3 23788766.849 23788763.982 23788765.011
+ 22.600 21.100
+ -18756195.980 7 -14615210.808 6 21024820.590 21024817.749 21024819.573
+ 44.800 41.200
+ -14514228.837 7 -11309788.910 5 21882031.637 21882028.848 21882030.472
+ 42.800 34.600
+ -10849839.837 6 -8454419.999 5 22597055.463 22597049.744 22597054.046
+ 38.000 33.200
+ -19097076.146 7 -14880833.071 7 20905000.017 20904997.792 20904999.360
+ 47.600 44.300
+ 06 1 2 9 40 0.0000000 0 7G01G06G14G16G20G23G25
+ -17288958.823 7 -13471914.728 6 20972361.587 20972360.069 20972360.857
+ 46.000 41.600
+ -6713063.753 5 -5230955.290 4 23436602.999 23436601.571 23436602.440
+ 31.800 27.600
+ 465557.695 3 362769.547 2 23807887.001 23807883.888 23807885.413
+ 23.800 17.800
+ -18820393.523 7 -14665234.854 6 21012604.217 21012601.227 21012603.153
+ 44.600 41.000
+ -14491088.027 7 -11291757.120 5 21886435.131 21886432.528 21886433.978
+ 42.900 34.800
+ -10942658.447 6 -8526746.183 5 22579392.963 22579387.003 22579391.719
+ 38.900 33.500
+ -19067369.304 7 -14857684.880 7 20910653.000 20910650.777 20910652.335
+ 47.700 44.200
+ 06 1 2 9 40 30.0000000 0 7G01G06G14G16G20G23G25
+ -17237413.377 7 -13431749.457 6 20982170.510 20982168.969 20982169.705
+ 46.000 41.600
+ -6719026.663 5 -5235601.711 4 23435468.261 23435466.836 23435467.362
+ 30.600 27.100
+ 566220.315 4 441207.912 3 23827042.959 23827039.334 23827041.099
+ 25.900 18.600
+ -18884121.979 7 -14714893.376 6 21000477.250 21000474.206 21000476.055
+ 44.800 41.400
+ -14467352.280 7 -11273261.737 5 21890952.004 21890949.330 21890950.720
+ 42.600 34.500
+ -11035275.795 6 -8598915.529 5 22561768.394 22561762.844 22561767.105
+ 39.200 34.100
+ -19037415.912 7 -14834344.576 7 20916352.996 20916350.726 20916352.347
+ 47.600 44.300
+ 06 1 2 9 41 0.0000000 0 7G01G06G14G16G20G23G25
+ -17185453.410 7 -13391261.183 6 20992058.613 20992056.590 20992057.552
+ 45.800 41.600
+ -6724462.623 5 -5239837.527 4 23434433.662 23434432.393 23434432.704
+ 31.100 26.800
+ 667067.414 3 519790.060 3 23846231.893 23846230.269 23846230.384
+ 23.400 20.500
+ -18947379.947 7 -14764185.286 6 20988439.608 20988436.549 20988438.452
+ 44.700 41.400
+ -14443022.766 7 -11254303.682 5 21895581.851 21895579.048 21895580.642
+ 42.600 34.700
+ -11127689.733 6 -8670926.389 5 22544182.784 22544176.795 22544181.455
+ 39.300 33.600
+ -19007216.314 7 -14810812.418 7 20922099.915 20922097.642 20922099.164
+ 47.500 44.300
+ 06 1 2 9 41 30.0000000 0 7G01G06G14G16G20G23G25
+ -17133079.314 7 -13350450.214 6 21002025.125 21002023.086 21002023.914
+ 45.700 41.300
+ -6729371.011 5 -5243662.223 4 23433499.371 23433498.227 23433498.640
+ 31.000 26.200
+ 768097.877 4 598515.044 3 23865459.228 23865456.042 23865457.328
+ 26.200 22.600
+ -19010165.896 7 -14813109.386 6 20976491.855 20976488.841 20976490.770
+ 45.100 41.400
+ -14418100.842 7 -11234884.010 5 21900323.981 21900321.456 21900322.795
+ 42.000 33.900
+ -11219898.288 6 -8742777.211 5 22526636.101 22526629.994 22526634.622
+ 39.300 33.200
+ -18976770.945 7 -14787088.756 7 20927893.274 20927891.263 20927892.628
+ 47.500 44.400
+ 06 1 2 9 42 0.0000000 0 7G01G06G14G16G20G23G25
+ -17080291.515 7 -13309316.881 6 21012070.037 21012068.197 21012069.025
+ 45.400 41.300
+ -6733751.101 5 -5247075.300 4 23432666.667 23432665.273 23432665.762
+ 32.100 27.400
+ 869310.242 3 677381.816 3 23884717.471 23884715.699 23884716.556
+ 22.600 20.500
+ -19072478.875 7 -14861664.942 6 20964634.052 20964631.046 20964632.850
+ 44.800 41.500
+ -14392587.496 6 -11215003.485 5 21905178.822 21905176.396 21905177.626
+ 41.800 33.900
+ -11311899.095 6 -8814466.151 5 22509128.467 22509122.975 22509127.169
+ 39.200 34.600
+ -18946080.361 7 -14763174.013 7 20933733.456 20933731.395 20933732.773
+ 47.500 44.200
+ 06 1 2 9 42 30.0000000 0 7G01G06G14G16G20G23G25
+ -17027090.526 7 -13267861.583 6 21022193.650 21022191.986 21022192.778
+ 45.300 40.900
+ -6737602.446 5 -5250076.330 4 23431933.573 23431931.487 23431932.699
+ 32.300 25.900
+ 970703.025 4 756389.147 3 23904011.557 23904010.155 23904010.823
+ 24.900 19.900
+ -19134317.256 7 -14909850.680 7 20952866.415 20952863.708 20952865.255
+ 44.800 42.000
+ -14366484.032 6 -11194663.136 5 21910146.166 21910143.751 21910145.002
+ 41.800 34.300
+ -11403689.802 6 -8885991.356 5 22491661.324 22491655.935 22491659.975
+ 39.600 35.300
+ -18915144.877 7 -14739068.440 7 20939620.304 20939618.172 20939619.620
+ 47.600 44.200
+ 06 1 2 9 43 0.0000000 0 7G01G06G14G16G20G23G25
+ -16973476.807 7 -13226084.668 6 21032396.015 21032394.389 21032395.174
+ 45.400 41.100
+ -6740924.524 5 -5252664.961 4 23431301.392 23431299.597 23431300.540
+ 32.300 25.300
+ 1072274.883 3 835536.023 2 23923340.707 23923338.922 23923339.394
+ 23.400 17.000
+ -19195679.673 7 -14957665.534 7 20941189.608 20941186.819 20941188.457
+ 45.100 42.100
+ -14339791.689 6 -11173863.910 5 21915225.582 21915223.000 21915224.292
+ 41.100 33.800
+ -11495268.218 6 -8957351.152 5 22474234.494 22474228.915 22474233.503
+ 39.900 34.300
+ -18883964.952 7 -14714772.395 7 20945553.438 20945551.572 20945552.890
+ 47.600 44.000
+ 06 1 2 9 43 30.0000000 0 7G01G06G14G16G20G23G25
+ -16919450.632 7 -13183986.364 6 21042676.395 21042675.276 21042675.833
+ 45.300 41.100
+ -6743716.615 5 -5254840.606 4 23430770.216 23430768.648 23430769.329
+ 33.000 27.400
+ 1174024.510 4 914821.415 3 23942703.288 23942701.179 23942701.885
+ 25.300 19.900
+ -19256564.674 7 -15005108.379 7 20929603.568 20929600.738 20929602.459
+ 45.100 42.400
+ -14312511.398 6 -11152606.546 5 21920416.513 21920414.354 21920415.451
+ 40.900 34.100
+ -11586632.064 6 -9028543.769 5 22456848.281 22456843.107 22456847.149
+ 39.800 34.300
+ -18852541.066 7 -14690286.248 7 20951533.530 20951531.287 20951532.831
+ 47.800 44.100
+ 06 1 2 9 44 0.0000000 0 7G01G06G14G16G20G23G25
+ -16865012.749 7 -13141567.240 6 21053035.729 21053034.435 21053035.122
+ 45.400 41.000
+ -6745978.305 5 -5256602.947 4 23430340.197 23430337.918 23430339.235
+ 32.000 26.200
+ 1275950.484 3 994244.243 2 23962098.799 23962096.557 23962097.535
+ 22.100 17.000
+ -19316971.235 7 -15052178.416 7 20918108.707 20918105.760 20918107.505
+ 44.900 42.300
+ -14284644.710 6 -11130892.257 5 21925719.457 21925717.187 21925718.229
+ 40.700 33.600
+ -11677779.370 6 -9099567.624 5 22439503.735 22439498.060 22439502.465
+ 39.700 33.500
+ -18820873.623 7 -14665610.314 7 20957559.659 20957557.409 20957558.933
+ 47.600 44.000
+ 06 1 2 9 44 30.0000000 0 7G01G06G14G16G20G23G25
+ -16810163.571 7 -13098827.635 6 21063473.058 21063471.869 21063472.542
+ 45.300 40.700
+ -6747709.074 5 -5257951.586 4 23430009.758 23430008.170 23430009.278
+ 31.800 25.300
+ 1378051.370 3 1073803.359 2 23981529.048 23981526.562 23981527.085
+ 22.100 17.800
+ -19376898.051 7 -15098874.626 7 20906704.905 20906702.072 20906703.763
+ 45.100 42.500
+ -14256193.122 6 -11108722.199 5 21931133.862 21931131.282 21931132.690
+ 40.900 33.200
+ -11768707.514 6 -9170420.740 5 22422200.676 22422194.906 22422199.358
+ 39.700 33.100
+ -18788963.043 7 -14640744.928 7 20963631.914 20963629.744 20963631.262
+ 47.600 43.800
+ 06 1 2 9 45 0.0000000 0 7G01G06G14G16G20G23G25
+ -16754903.657 7 -13055767.973 6 21073988.850 21073987.589 21073988.218
+ 45.400 40.800
+ -6748908.534 5 -5258886.216 4 23429781.847 23429780.371 23429781.289
+ 32.400 27.100
+ 1480325.820 2 1153497.692 3 24000991.744 24000988.592 24000989.368
+ 17.800 18.600
+ -19436343.837 7 -15145196.013 7 20895392.703 20895389.866 20895391.516
+ 45.100 42.600
+ -14227157.737 6 -11086097.230 5 21936659.005 21936656.677 21936657.900
+ 41.000 33.800
+ -11859414.588 6 -9241101.578 5 22404939.600 22404934.098 22404938.254
+ 39.500 33.900
+ -18756809.767 7 -14615690.422 7 20969750.351 20969748.376 20969749.712
+ 47.700 44.000
+ 06 1 2 9 45 30.0000000 0 7G01G06G14G16G20G23G25
+ -16699233.476 7 -13012388.630 6 21084583.022 21084581.213 21084582.119
+ 45.500 40.700
+ -6749576.122 5 -5259406.409 4 23429655.329 23429653.355 23429654.490
+ 32.000 26.200
+ 1582772.338 4 1233326.130 2 24020486.306 24020482.936 24020484.540
+ 24.600 16.100
+ -19495307.508 7 -15191141.723 7 20884172.210 20884169.406 20884171.088
+ 44.800 42.500
+ -14197539.830 6 -11063018.356 5 21942295.305 21942292.902 21942294.042
+ 40.800 34.000
+ -11949897.857 6 -9311608.012 5 22387721.616 22387716.118 22387720.224
+ 40.500 35.500
+ -18724414.205 7 -14590447.127 7 20975915.035 20975913.078 20975914.462
+ 47.700 43.800
+ 06 1 2 9 46 0.0000000 0 7G01G06G14G16G20G23G25
+ -16643153.470 7 -12968689.936 6 21095254.911 21095252.926 21095253.851
+ 45.400 40.700
+ -6749711.340 5 -5259511.770 4 23429629.267 23429628.225 23429628.402
+ 32.100 27.400
+ 1685389.573 3 1313287.577 2 24040013.298 24040009.626 24040011.862
+ 22.600 13.900
+ -19553787.589 7 -15236710.611 7 20873043.891 20873040.971 20873042.736
+ 45.000 42.500
+ -14167340.803 6 -11039486.654 5 21948041.974 21948039.423 21948040.768
+ 41.000 33.500
+ -12040155.184 6 -9381938.387 5 22370545.941 22370540.537 22370544.707
+ 40.200 35.100
+ -18691776.736 7 -14565015.332 7 20982126.048 20982123.696 20982125.313
+ 47.700 43.800
+ 06 1 2 9 46 30.0000000 0 7G01G06G14G16G20G23G25
+ -16586664.232 7 -12924672.363 6 21106004.324 21106002.441 21106003.302
+ 45.500 40.700
+ -6749313.940 5 -5259202.096 4 23429704.989 23429702.950 23429704.175
+ 32.400 25.900
+ 1788176.297 4 1393381.131 3 24059572.922 24059570.529 24059571.482
+ 24.600 18.600
+ -19611783.018 7 -15281901.842 7 20862007.553 20862004.819 20862006.436
+ 44.800 42.700
+ -14136561.697 6 -11015502.939 5 21953899.182 21953896.551 21953897.846
+ 40.700 33.900
+ -12130184.502 6 -9452091.100 5 22353413.554 22353408.208 22353412.472
+ 40.300 33.600
+ -18658897.835 7 -14539395.413 7 20988382.501 20988380.347 20988381.781
+ 47.600 43.700
+ 06 1 2 9 47 0.0000000 0 7G01G06G14G16G20G23G25
+ -16529766.308 7 -12880336.333 6 21116831.552 21116829.775 21116830.665
+ 45.500 40.600
+ -6748383.572 5 -5258477.144 4 23429881.954 23429879.971 23429881.217
+ 32.300 26.200
+ 1891130.919 3 1473605.469 2 24079164.400 24079161.463 24079163.120
+ 23.800 13.900
+ -19669292.530 7 -15326714.442 7 20851063.669 20851061.157 20851062.699
+ 44.800 42.800
+ -14105204.481 6 -10991068.755 5 21959866.139 21959863.633 21959864.902
+ 40.600 33.500
+ -12219983.519 6 -9522064.363 5 22336325.989 22336319.968 22336324.745
+ 41.000 33.800
+ -18625777.951 7 -14513587.710 7 20994685.118 20994682.877 20994684.396
+ 47.700 43.800
+ 06 1 2 9 47 30.0000000 0 7G01G06G14G16G20G23G25
+ -16472460.219 7 -12835682.244 6 21127736.505 21127734.758 21127735.706
+ 45.500 40.400
+ -6746919.755 5 -5257336.489 4 23430160.693 23430158.812 23430159.869
+ 32.400 26.800
+ 1994252.079 3 1553959.640 2 24098787.656 24098784.702 24098786.647
+ 23.800 16.100
+ -19726315.057 7 -15371147.577 7 20840212.822 20840210.090 20840211.760
+ 45.000 43.000
+ -14073270.424 6 -10966185.094 5 21965942.651 21965940.509 21965941.469
+ 39.900 33.400
+ -12309549.918 6 -9591856.373 5 22319281.671 22319276.265 22319280.533
+ 40.700 34.600
+ -18592417.401 7 -14487592.478 7 21001033.329 21001031.165 21001032.646
+ 47.600 43.700
+ 06 1 2 9 48 0.0000000 0 7G01G06G14G16G20G23G25
+ -16414746.618 7 -12790710.620 6 21138718.702 21138717.330 21138718.171
+ 45.500 40.600
+ -6744922.108 5 -5255779.891 4 23430540.851 23430539.191 23430540.208
+ 33.100 27.400
+ 2097538.285 3 1634442.343 2 24118442.389 24118440.134 24118440.649
+ 20.500 16.100
+ -19782849.456 7 -15415200.339 7 20829454.910 20829451.922 20829453.778
+ 44.900 42.900
+ -14040760.920 6 -10940853.029 5 21972129.310 21972126.872 21972128.105
+ 40.700 33.600
+ -12398881.347 6 -9661465.283 5 22302282.832 22302277.254 22302281.482
+ 40.800 35.800
+ -18558816.677 7 -14461410.100 7 21007427.329 21007425.250 21007426.608
+ 47.600 43.700
+ 06 1 2 9 48 30.0000000 0 7G01G06G14G16G20G23G25
+ -16356626.076 7 -12745421.902 6 21149778.223 21149777.280 21149777.977
+ 45.400 40.300
+ -6742390.451 5 -5253807.145 4 23431022.764 23431021.089 23431021.845
+ 32.600 27.400
+ 2200987.921 3 1715052.443 1 24138129.171 24138124.994 24138127.528
+ 23.400 11.000
+ -19838894.347 7 -15458871.671 7 20818789.962 20818786.943 20818788.859
+ 44.900 43.100
+ -14007677.702 6 -10915073.917 5 21978424.982 21978422.294 21978423.682
+ 40.900 33.600
+ -12487975.447 6 -9730889.249 6 22285329.021 22285323.458 22285327.401
+ 40.500 36.400
+ -18524976.090 7 -14435040.814 7 21013866.958 21013864.891 21013866.269
+ 47.500 43.700
+ 06 1 2 9 49 0.0000000 0 7G01G06G14G16G20G23G25
+ -16298099.245 7 -12699816.605 6 21160916.062 21160914.631 21160915.497
+ 45.300 40.200
+ -6739324.436 5 -5251418.046 4 23431605.845 23431604.491 23431605.055
+ 32.600 27.900
+ 2304599.591 4 1795788.809 2 24157844.505 24157842.458 24157843.570
+ 24.200 17.800
+ -19894448.555 7 -15502160.655 7 20808218.425 20808215.321 20808217.189
+ 44.800 43.100
+ -13974022.099 6 -10888848.785 5 21984829.338 21984826.617 21984828.134
+ 40.600 33.100
+ -12576829.999 6 -9800126.552 5 22268420.338 22268414.638 22268418.623
+ 40.500 35.500
+ -18490896.187 7 -14408485.050 7 21020352.193 21020350.047 21020351.515
+ 47.400 43.700
+ 06 1 2 9 49 30.0000000 0 7G01G06G14G16G20G23G25
+ -16239166.744 7 -12653895.198 6 21172130.549 21172129.156 21172129.904
+ 45.300 40.000
+ -6735723.782 5 -5248612.362 4 23432291.091 23432289.624 23432290.609
+ 33.100 26.500
+ 2408371.866 3 1876650.279 3 24177591.389 24177590.006 24177590.657
+ 21.600 19.900
+ -19949511.369 7 -15545066.735 7 20797739.947 20797737.290 20797738.938
+ 44.800 43.300
+ -13939795.738 6 -10862178.902 5 21991342.366 21991339.657 21991341.276
+ 40.900 33.000
+ -12665442.531 6 -9869175.288 5 22251558.172 22251552.104 22251556.714
+ 41.100 34.700
+ -18456577.250 7 -14381743.024 7 21026882.750 21026880.824 21026882.074
+ 47.400 43.800
+ 06 1 2 9 50 0.0000000 0 7G01G06G14G16G20G23G25
+ -16179829.320 7 -12607658.256 6 21183422.483 21183420.691 21183421.591
+ 45.200 40.100
+ -6731588.128 5 -5245389.770 4 23433078.375 23433076.448 23433077.435
+ 32.800 26.500
+ 2512303.220 3 1957635.717 2 24197369.117 24197367.477 24197368.525
+ 22.100 13.900
+ -20004081.440 7 -15587588.858 7 20787355.689 20787352.972 20787354.532
+ 44.700 43.500
+ -13905000.010 6 -10835065.360 5 21997963.745 21997961.298 21997962.546
+ 40.400 33.400
+ -12753810.884 6 -9938033.752 5 22234741.561 22234736.001 22234740.429
+ 40.900 34.300
+ -18422019.724 7 -14354815.086 7 21033458.872 21033456.813 21033458.244
+ 47.400 43.800
+ 06 1 2 9 50 30.0000000 0 7G01G06G14G16G20G23G25
+ -16120087.487 7 -12561106.184 6 21194790.909 21194789.215 21194789.932
+ 45.000 40.100
+ -6726917.386 5 -5241750.206 4 23433967.138 23433964.968 23433966.367
+ 33.000 27.100
+ 2616392.493 3 2038744.221 2 24217176.635 24217174.957 24217175.561
+ 21.100 16.100
+ -20058157.953 7 -15629726.383 7 20777065.472 20777062.450 20777064.243
+ 45.000 43.700
+ -13869636.742 6 -10807509.580 5 22004693.087 22004690.838 22004691.987
+ 40.600 33.400
+ -12841933.007 6 -10006700.349 5 22217972.365 22217967.123 22217971.348
+ 41.000 35.300
+ -18387224.088 7 -14327701.603 7 21040080.229 21040078.111 21040079.491
+ 47.400 43.400
+ 06 1 2 9 51 0.0000000 0 7G01G06G14G16G20G23G25
+ -16059941.908 7 -12514239.522 6 21206236.407 21206234.511 21206235.313
+ 44.800 39.700
+ -6721711.202 5 -5237693.439 4 23434957.475 23434956.105 23434956.673
+ 32.100 26.800
+ 2720638.179 3 2119974.611 3 24237013.692 24237012.927 24237012.728
+ 20.500 19.300
+ -20111739.638 7 -15671478.327 7 20766869.221 20766866.204 20766867.991
+ 44.900 43.500
+ -13833707.165 6 -10779512.516 5 22011530.666 22011527.914 22011529.366
+ 40.600 33.000
+ -12929805.878 6 -10075172.717 6 22201250.905 22201245.750 22201249.759
+ 41.100 36.200
+ -18352190.608 7 -14300402.788 7 21046746.957 21046744.893 21046746.127
+ 47.300 43.500
+ 06 1 2 9 51 30.0000000 0 7G01G06G14G16G20G23G25
+ -15999393.314 7 -12467058.809 6 21217758.376 21217756.587 21217757.334
+ 44.800 39.700
+ -6715969.608 5 -5233219.462 4 23436050.020 23436048.590 23436049.222
+ 33.000 27.600
+ 2825038.647 2 2201325.554 2 24256880.045 24256879.016 24256878.053
+ 16.100 17.000
+ -20164825.366 7 -15712843.814 7 20756767.403 20756764.296 20756766.166
+ 44.800 43.900
+ -13797213.401 6 -10751075.821 5 22018475.034 22018472.424 22018473.798
+ 40.500 32.700
+ -13017427.630 6 -10143449.405 6 22184577.460 22184571.937 22184575.974
+ 41.100 36.300
+ -18316919.791 7 -14272919.035 7 21053458.791 21053456.656 21053458.075
+ 47.500 43.500
+ 06 1 2 9 52 0.0000000 0 7G01G06G14G16G20G23G25
+ -15938442.344 7 -12419564.561 6 21229356.934 21229355.280 21229355.916
+ 44.600 39.900
+ -6709692.253 5 -5228328.015 4 23437244.987 23437242.904 23437244.312
+ 33.100 26.800
+ 2929592.355 3 2282795.960 2 24276776.825 24276774.967 24276775.783
+ 22.600 12.600
+ -20217414.136 7 -15753822.067 7 20746759.748 20746756.999 20746758.718
+ 44.800 44.000
+ -13760156.965 6 -10722200.691 5 22025526.474 22025524.016 22025525.326
+ 39.900 33.100
+ -13104795.793 6 -10211528.489 5 22167951.400 22167946.024 22167950.374
+ 41.500 35.700
+ -18281411.959 7 -14245250.592 7 21060215.670 21060213.555 21060214.988
+ 47.500 43.200
+ 06 1 2 9 52 30.0000000 0 7G01G06G14G16G20G23G25
+ -15877089.627 7 -12371757.265 6 21241031.973 21241030.273 21241030.960
+ 44.500 39.900
+ -6702879.044 5 -5223019.016 4 23438541.479 23438539.518 23438540.771
+ 33.000 27.600
+ 3034298.038 2 2364384.809 2 24296699.030 24296700.269 24296699.824
+ 17.000 16.100
+ -20269505.337 7 -15794412.607 7 20736847.221 20736844.241 20736846.124
+ 44.900 43.800
+ -13722539.240 6 -10692888.194 5 22032685.015 22032682.557 22032683.663
+ 40.100 32.800
+ -13191908.259 6 -10279408.343 5 22151374.756 22151369.086 22151373.389
+ 41.400 35.700
+ -18245667.524 7 -14217397.781 7 21067017.725 21067015.460 21067017.052
+ 47.700 43.200
+ 06 1 2 9 53 0.0000000 0 7G01G06G14G16G20G23G25
+ -15815335.943 7 -12323637.532 6 21252783.231 21252781.692 21252782.269
+ 44.600 40.200
+ -6695529.903 5 -5217292.413 4 23439939.763 23439938.128 23439938.873
+ 32.700 27.400
+ 3139154.004 4 2446090.696 2 24316654.652 24316653.512 24316653.879
+ 24.200 16.100
+ -20321097.617 7 -15834614.371 7 20727029.528 20727026.590 20727028.419
+ 45.100 44.100
+ -13684362.021 6 -10663139.720 5 22039949.824 22039947.574 22039948.652
+ 40.200 32.700
+ -13278762.550 6 -10347087.008 5 22134846.923 22134841.055 22134845.612
+ 41.800 35.200
+ -18209686.912 7 -14189360.938 7 21073864.567 21073862.300 21073863.946
+ 47.800 43.100
+ 06 1 2 9 53 30.0000000 0 7G01G06G14G16G20G23G25
+ -15753182.012 7 -12275205.915 6 21264610.683 21264609.248 21264609.817
+ 44.600 39.800
+ -6687644.743 5 -5211148.130 4 23441440.364 23441438.566 23441439.552
+ 33.000 26.500
+ 3244158.932 3 2527912.770 1 24336637.195 24336633.946 24336635.970
+ 20.500 9.000
+ -20372189.812 7 -15874426.458 7 20717307.013 20717304.081 20717305.900
+ 44.900 44.100
+ -13645627.060 6 -10632956.650 5 22047321.023 22047318.774 22047319.892
+ 40.600 33.100
+ -13365356.214 7 -10414562.604 6 22118368.719 22118362.975 22118367.523
+ 42.200 36.100
+ -18173470.431 7 -14161140.296 7 21080756.313 21080754.154 21080755.670
+ 47.900 43.100
+ 06 1 2 9 54 0.0000000 0 7G01G06G14G16G20G23G25
+ -15690628.606 7 -12226463.013 6 21276514.143 21276512.732 21276513.342
+ 44.700 39.800
+ -6679223.392 5 -5204586.045 4 23443042.827 23443040.750 23443042.008
+ 32.300 26.500
+ 3349311.420 3 2609849.736 3 24356646.872 24356644.756 24356645.557
+ 20.500 20.500
+ -20422781.364 7 -15913848.436 7 20707679.742 20707676.799 20707678.620
+ 44.800 44.300
+ -13606336.147 6 -10602340.368 5 22054797.986 22054795.685 22054796.719
+ 40.600 33.000
+ -13451687.009 7 -10481833.359 6 22101940.505 22101935.001 22101939.211
+ 42.000 36.600
+ -18137018.562 7 -14132736.229 7 21087692.881 21087690.702 21087692.185
+ 47.900 42.900
+ 06 1 2 9 54 30.0000000 0 7G01G06G14G16G20G23G25
+ -15627676.469 7 -12177409.409 6 21288493.753 21288492.088 21288492.882
+ 44.800 39.500
+ -6670265.787 5 -5197606.085 4 23444747.169 23444745.619 23444746.266
+ 31.800 26.800
+ 3454609.708 3 2691900.289 3 24376684.079 24376682.628 24376683.005
+ 21.100 21.600
+ -20472871.377 7 -15952879.605 7 20698147.816 20698144.964 20698146.701
+ 44.500 44.300
+ -13566491.199 6 -10571292.367 5 22062379.942 22062377.973 22062378.776
+ 39.900 33.200
+ -13537752.574 7 -10548897.426 6 22085562.634 22085557.082 22085561.434
+ 42.000 36.200
+ -18100331.608 7 -14104148.985 7 21094674.190 21094671.864 21094673.545
+ 47.800 42.800
+ 06 1 2 9 55 0.0000000 0 7G01G06G14G16G20G23G25
+ -15564326.343 7 -12128045.680 6 21300548.886 21300547.228 21300548.020
+ 44.600 39.500
+ -6660771.968 5 -5190208.305 4 23446553.512 23446552.027 23446552.719
+ 31.800 26.200
+ 3560052.403 2 2774063.390 2 24396749.059 24396747.503 24396747.957
+ 17.000 12.600
+ -20522458.781 7 -15991519.128 7 20688711.743 20688708.785 20688710.536
+ 44.500 44.400
+ -13526093.709 6 -10539813.817 5 22070067.534 22070065.382 22070066.213
+ 40.300 33.200
+ -13623550.433 7 -10615752.902 5 22069236.022 22069230.092 22069234.649
+ 42.300 35.700
+ -18063409.998 7 -14075378.895 7 21101699.998 21101697.903 21101699.349
+ 47.800 43.000
+ 06 1 2 9 55 30.0000000 0 7G01G06G14G16G20G23G25
+ -15500578.993 7 -12078372.436 6 21312679.256 21312677.974 21312678.648
+ 44.700 39.400
+ -6650741.923 5 -5182392.682 4 23448462.626 23448460.377 23448461.611
+ 32.100 25.900
+ 3665638.244 3 2856338.046 2 24416842.886 24416839.783 24416840.869
+ 22.100 17.800
+ -20571542.624 7 -16029766.265 7 20679371.083 20679368.412 20679370.117
+ 44.600 44.300
+ -13485145.545 6 -10507906.164 5 22077859.674 22077857.488 22077858.629
+ 40.600 33.400
+ -13709078.227 7 -10682397.950 6 22052961.068 22052954.945 22052959.658
+ 43.200 36.000
+ -18026254.026 7 -14046426.190 7 21108770.505 21108768.492 21108769.884
+ 47.700 43.000
+ 06 1 2 9 56 0.0000000 0 7G01G06G14G16G20G23G25
+ -15436435.153 7 -12028390.238 6 21324885.684 21324884.083 21324884.940
+ 44.600 39.100
+ -6640175.681 5 -5174159.237 4 23450472.885 23450470.394 23450472.429
+ 31.800 24.200
+ 3771365.318 2 2938722.752 2 24436962.237 24436959.273 24436960.050
+ 16.100 17.800
+ -20620122.187 7 -16067620.460 7 20670126.992 20670124.060 20670125.910
+ 44.700 44.400
+ -13443648.581 6 -10475570.885 5 22085756.645 22085753.909 22085755.211
+ 39.900 33.000
+ -13794333.829 7 -10748830.891 6 22036737.082 22036731.342 22036735.725
+ 42.700 36.400
+ -17988864.209 7 -14017291.265 7 21115885.814 21115883.384 21115885.040
+ 47.600 42.700
+ 06 1 2 9 56 30.0000000 0 7G01G06G14G16G20G23G25
+ -15371895.744 7 -11978099.794 6 21337167.054 21337165.464 21337166.324
+ 44.600 39.100
+ -6629073.210 5 -5165507.950 4 23452586.184 23452583.839 23452585.262
+ 32.000 24.900
+ 3877232.463 3 3021216.573 24457107.600 24457105.373 24457105.530
+ 19.900 3.000
+ -20668196.570 7 -16105081.011 7 20660978.959 20660975.821 20660977.793
+ 44.800 44.400
+ -13401604.776 6 -10442809.488 5 22093756.716 22093754.455 22093755.663
+ 40.000 32.400
+ -13879314.578 7 -10815049.657 6 22020565.550 22020560.025 22020564.237
+ 42.100 36.500
+ -17951240.880 7 -13987974.383 7 21123045.378 21123042.911 21123044.620
+ 47.800 42.600
+ 06 1 2 9 57 0.0000000 0 7G01G06G14G16G20G23G25
+ -15306961.465 7 -11927501.658 6 21349523.347 21349522.095 21349522.858
+ 44.700 39.100
+ -6617434.557 5 -5156438.870 4 23454801.039 23454798.546 23454800.190
+ 32.300 25.300
+ 3983237.984 3 3103818.352 9 24477280.835 24477278.431 24477278.429
+ 19.900 -3.000
+ -20715764.670 7 -16142147.046 7 20651926.950 20651923.886 20651925.804
+ 44.600 44.600
+ -13359015.826 6 -10409623.303 5 22101861.276 22101858.961 22101860.018
+ 39.700 32.600
+ -13964018.111 7 -10881052.405 6 22004447.112 22004441.630 22004445.776
+ 42.500 37.400
+ -17913384.443 7 -13958475.864 7 21130249.007 21130246.733 21130248.379
+ 47.800 42.600
+ 06 1 2 9 57 30.0000000 0 7G01G06G14G16G20G23G25
+ -15241633.198 7 -11876596.528 6 21361955.237 21361953.612 21361954.472
+ 44.400 39.100
+ -6605260.036 5 -5146952.227 4 23457117.108 23457115.234 23457116.631
+ 31.000 24.900
+ 4089380.231 3 3186526.540 1 24497478.598 24497475.559 24497476.849
+ 19.300 9.000
+ -20762825.883 7 -16178818.113 7 20642971.447 20642968.383 20642970.368
+ 44.700 44.800
+ -13315883.717 6 -10376013.886 5 22110068.792 22110067.024 22110067.558
+ 39.300 33.200
+ -14048442.168 7 -10946837.372 6 21988381.928 21988376.201 21988380.566
+ 42.800 37.100
+ -17875295.127 7 -13928795.881 7 21137497.183 21137494.844 21137496.543
+ 47.900 42.600
+ 06 1 2 9 58 0.0000000 0 7G01G06G14G16G20G23G25
+ -15175911.740 7 -11825385.029 6 21374461.804 21374459.999 21374460.803
+ 44.300 38.900
+ -6592549.425 5 -5137047.854 4 23459536.069 23459534.359 23459535.225
+ 32.100 25.300
+ 4195657.952 2 3269340.321 2 24517702.646 24517699.591 24517700.490
+ 17.800 12.600
+ -20809379.163 7 -16215093.387 7 20634112.622 20634109.630 20634111.516
+ 44.700 44.800
+ -13272210.216 6 -10341982.606 5 22118379.651 22118377.759 22118378.499
+ 39.200 32.700
+ -14132584.426 7 -11012402.772 6 21972370.216 21972364.293 21972368.898
+ 43.300 36.600
+ -17836973.476 7 -13898934.859 7 21144789.733 21144787.388 21144788.963
+ 47.700 42.700
+ 06 1 2 9 58 30.0000000 0 7G01G06G14G16G20G23G25
+ -15109797.908 7 -11773867.786 6 21387042.724 21387041.239 21387042.002
+ 44.200 38.900
+ -6579302.939 5 -5126725.908 4 23462056.670 23462054.913 23462055.691
+ 30.200 25.900
+ 4302069.389 3 3352258.291 24537952.239 24537948.502 24537950.168
+ 21.100 3.000
+ -20855424.177 7 -16250972.599 7 20625350.607 20625347.611 20625349.430
+ 44.800 45.100
+ -13227997.451 6 -10307531.119 5 22126793.088 22126790.973 22126791.931
+ 39.500 32.300
+ -14216442.387 7 -11077746.638 6 21956412.344 21956406.697 21956411.145
+ 43.000 37.000
+ -17798419.820 7 -13868893.054 7 21152125.879 21152123.950 21152125.262
+ 47.700 42.700
+ 06 1 2 9 59 0.0000000 0 7G01G06G14G16G20G23G25
+ -15043292.596 7 -11722045.494 6 21399698.436 21399696.776 21399697.472
+ 43.800 38.700
+ -6565520.828 5 -5115986.607 4 23464679.705 23464677.423 23464678.934
+ 32.000 25.900
+ 4408613.252 2 3435279.476 1 24558227.265 24558223.469 24558224.767
+ 15.100 11.000
+ -20900959.932 7 -16286454.994 7 20616685.254 20616682.397 20616684.134
+ 44.100 45.100
+ -13183247.296 6 -10272660.877 5 22135309.265 22135306.609 22135307.909
+ 39.700 31.500
+ -14300013.792 7 -11142867.206 6 21940509.055 21940503.419 21940507.915
+ 43.100 36.700
+ -17759634.461 7 -13838670.698 7 21159506.663 21159504.554 21159506.001
+ 47.500 42.800
+ 06 1 2 9 59 30.0000000 0 7G01G06G14G16G20G23G25
+ -14976396.679 7 -11669918.815 6 21412428.181 21412426.643 21412427.319
+ 43.700 38.600
+ -6551203.166 5 -5104829.988 4 23467404.156 23467402.684 23467403.221
+ 31.500 27.600
+ 4515288.051 2 3518402.645 2 24578525.951 24578522.991 24578523.961
+ 15.100 17.800
+ -20945985.498 7 -16321539.839 7 20608117.196 20608114.350 20608116.036
+ 44.400 45.300
+ -13137961.785 6 -10237373.490 5 22143926.537 22143924.155 22143925.288
+ 39.500 32.100
+ -14383296.086 7 -11207762.498 6 21924661.362 21924655.334 21924659.994
+ 43.800 36.800
+ -17720617.735 7 -13808268.054 7 21166931.202 21166929.178 21166930.540
+ 47.600 42.600
+ 06 1 2 10 0 0.0000000 0 7G01G06G14G16G20G23G25
+ -14909111.007 7 -11617488.408 6 21425232.456 21425230.549 21425231.462
+ 43.700 38.400
+ -6536350.160 5 -5093256.221 4 23470230.968 23470228.443 23470229.934
+ 31.500 25.600
+ 4622091.890 3 3601626.361 3 24598849.987 24598847.133 24598848.336
+ 18.600 19.900
+ -20990500.322 7 -16356226.705 7 20599646.406 20599643.409 20599645.182
+ 44.100 45.300
+ -13092142.692 6 -10201670.317 5 22152645.560 22152643.161 22152644.214
+ 39.200 31.300
+ -14466287.098 7 -11272430.825 6 21908868.531 21908862.806 21908867.418
+ 43.800 36.700
+ -17681370.049 7 -13777685.438 7 21174399.901 21174397.695 21174399.160
+ 47.600 42.700
+ 06 1 2 10 0 30.0000000 0 7G01G06G14G16G20G23G25
+ -14841436.590 7 -11564755.097 6 21438110.357 21438108.551 21438109.443
+ 43.900 38.100
+ -6520962.069 5 -5081265.489 4 23473158.344 23473156.794 23473157.812
+ 31.000 25.600
+ 4729023.590 2 3684949.703 2 24619198.576 24619195.480 24619197.042
+ 17.000 15.100
+ -21034503.621 7 -16390514.982 7 20591272.555 20591269.759 20591271.576
+ 44.300 45.300
+ -13045792.228 6 -10165553.086 5 22161465.546 22161463.402 22161464.230
+ 38.800 31.300
+ -14548984.296 7 -11336870.194 6 21893131.539 21893125.851 21893130.402
+ 43.500 36.800
+ -17641891.740 7 -13746923.111 7 21181912.230 21181910.225 21181911.667
+ 47.700 42.500
+ 06 1 2 10 1 0.0000000 0 7G01G06G14G16G20G23G25
+ -14773374.356 7 -11511719.582 6 21451062.096 21451060.425 21451061.303
+ 44.000 38.200
+ -6505038.969 5 -5068857.880 4 23476189.049 23476187.548 23476188.319
+ 32.400 26.500
+ 4836081.493 2 3768371.398 2 24639570.984 24639568.470 24639568.853
+ 17.000 16.100
+ -21077994.678 7 -16424404.106 7 20582996.624 20582993.667 20582995.582
+ 44.300 45.500
+ -12998912.263 6 -10129023.255 5 22170386.283 22170384.315 22170385.108
+ 38.400 31.300
+ -14631385.172 7 -11401078.666 6 21877451.144 21877445.693 21877449.859
+ 43.200 37.400
+ -17602183.124 7 -13715981.322 7 21189468.844 21189466.475 21189468.072
+ 47.900 42.500
+ 06 1 2 10 1 30.0000000 0 7G01G06G14G16G20G23G25
+ -14704925.117 7 -11458382.516 6 21464087.129 21464085.951 21464086.592
+ 43.600 38.300
+ -6488581.235 5 -5056033.672 4 23479320.763 23479318.981 23479320.113
+ 31.800 26.200
+ 4943263.857 3 3851890.085 2 24659967.775 24659964.453 24659965.492
+ 20.500 15.100
+ -21120972.801 7 -16457893.539 7 20574818.142 20574815.129 20574817.084
+ 44.200 45.400
+ -12951505.142 6 -10092082.663 5 22179407.701 22179405.756 22179406.440
+ 38.100 32.300
+ -14713487.445 7 -11465054.457 6 21861827.885 21861822.235 21861826.531
+ 43.600 37.600
+ -17562244.671 7 -13684860.438 7 21197068.743 21197066.452 21197068.102
+ 47.900 42.400
+ 06 1 2 10 2 0.0000000 0 7G01G06G14G16G20G23G25
+ -14636089.802 7 -11404744.617 6 21477186.283 21477184.865 21477185.644
+ 43.700 38.400
+ -6471589.222 5 -5042793.149 4 23482553.769 23482552.536 23482553.107
+ 31.300 26.200
+ 5050569.175 3 3935504.608 2 24680387.548 24680384.275 24680385.118
+ 22.100 16.100
+ -21163437.523 7 -16490982.922 7 20566737.487 20566734.342 20566736.402
+ 44.400 45.500
+ -12903572.694 6 -10054732.722 5 22188528.757 22188527.100 22188527.668
+ 38.300 32.100
+ -14795288.640 7 -11528795.642 6 21846261.421 21846255.843 21846260.100
+ 43.900 37.600
+ -17522076.661 7 -13653560.682 7 21204712.412 21204710.251 21204711.853
+ 47.800 42.600
+ 06 1 2 10 2 30.0000000 0 6G01G06G16G20G23G25
+ -14566869.318 7 -11350806.596 6 21490358.773 21490357.147 21490357.961
+ 43.600 38.400
+ -6454063.134 5 -5029136.460 4 23485889.117 23485887.911 23485888.311
+ 31.100 27.100
+ -21205387.925 7 -16523671.533 7 20558754.659 20558751.534 20558753.505
+ 44.300 45.600
+ -12855116.989 6 -10016975.054 5 22197750.045 22197747.957 22197748.877
+ 38.900 32.300
+ -14876786.369 7 -11592300.365 6 21830752.951 21830747.524 21830751.832
+ 44.100 37.800
+ -17481679.482 7 -13622082.360 7 21212399.707 21212397.537 21212399.025
+ 47.600 42.400
+ 06 1 2 10 3 0.0000000 0 6G01G06G16G20G23G25
+ -14497264.445 7 -11296569.045 6 21503604.326 21503602.575 21503603.337
+ 43.800 38.200
+ -6436003.278 5 -5015063.847 4 23489325.873 23489323.997 23489325.312
+ 31.800 26.200
+ -21246823.379 7 -16555958.895 7 20550869.572 20550866.606 20550868.473
+ 44.300 45.700
+ -12806140.318 6 -9978811.435 5 22207070.173 22207067.671 22207068.992
+ 38.800 31.300
+ -14957978.333 7 -11655566.827 6 21815302.541 21815297.057 21815301.223
+ 43.700 37.800
+ -17441053.446 7 -13590425.703 7 21220130.518 21220128.352 21220129.850
+ 47.500 42.400
+ 06 1 2 10 3 30.0000000 0 6G01G06G16G20G23G25
+ -14427276.300 7 -11242032.858 6 21516922.285 21516921.010 21516921.545
+ 43.600 38.300
+ -6417409.921 5 -5000575.518 4 23492863.846 23492862.686 23492863.095
+ 30.800 26.800
+ -21287743.533 7 -16587844.717 7 20543082.742 20543079.764 20543081.658
+ 44.300 45.700
+ -12756644.855 6 -9940243.561 5 22216488.830 22216486.277 22216487.601
+ 38.900 30.400
+ -15038861.872 7 -11718592.954 6 21799911.034 21799905.330 21799909.800
+ 43.900 37.700
+ -17400198.819 7 -13558590.934 7 21227904.987 21227902.775 21227904.267
+ 47.500 42.100
+ 06 1 2 10 4 0.0000000 0 6G01G06G16G20G23G25
+ -14356905.815 7 -11187198.723 6 21530313.229 21530312.052 21530312.502
+ 43.500 38.100
+ -6398283.530 5 -4985671.850 4 23496504.021 23496502.140 23496502.954
+ 31.600 25.900
+ -21328147.731 7 -16619328.497 7 20535394.160 20535391.003 20535393.010
+ 44.300 45.800
+ -12706632.398 6 -9901272.830 5 22226005.907 22226003.421 22226004.645
+ 38.900 31.000
+ -15119434.649 7 -11781376.939 6 21784578.430 21784572.975 21784577.206
+ 43.900 38.100
+ -17359116.079 7 -13526578.411 7 21235722.692 21235720.509 21235721.966
+ 47.400 42.000
+ 06 1 2 10 4 30.0000000 0 6G01G06G16G20G23G25
+ -14286153.950 7 -11132067.423 6 21543776.952 21543775.642 21543776.176
+ 43.400 37.700
+ -6378624.418 5 -4970353.059 4 23500244.764 23500242.586 23500243.817
+ 31.100 25.600
+ -21368035.411 7 -16650409.799 7 20527803.763 20527800.649 20527802.718
+ 44.500 46.000
+ -12656105.260 6 -9861901.059 5 22235620.930 22235618.567 22235619.803
+ 39.300 30.800
+ -15199694.553 7 -11843917.113 6 21769305.596 21769300.020 21769304.336
+ 44.100 38.300
+ -17317805.624 7 -13494388.447 7 21243583.709 21243581.615 21243583.086
+ 47.300 42.000
+ 06 1 2 10 5 0.0000000 0 6G01G06G16G20G23G25
+ -14215021.787 7 -11076639.803 6 21557313.432 21557311.633 21557312.274
+ 42.700 37.700
+ -6358432.904 5 -4954619.417 4 23504086.997 23504084.819 23504086.036
+ 30.400 24.900
+ -21407405.758 7 -16681087.980 7 20520311.818 20520308.792 20520310.682
+ 44.400 46.100
+ -12605065.646 6 -9822129.952 5 22245333.660 22245331.199 22245332.400
+ 38.600 31.100
+ -15279639.040 7 -11906211.512 6 21754092.687 21754086.955 21754091.462
+ 44.100 37.800
+ -17276267.615 7 -13462021.174 7 21251488.288 21251486.157 21251487.624
+ 47.500 42.100
+ 06 1 2 10 5 30.0000000 0 6G01G06G16G20G23G25
+ -14143510.181 7 -11020916.517 6 21570921.436 21570920.029 21570920.441
+ 42.700 37.900
+ -6337709.574 5 -4938471.374 3 23508030.289 23508028.194 23508029.072
+ 30.200 22.600
+ -21446258.309 7 -16711362.682 7 20512918.468 20512915.321 20512917.326
+ 44.100 46.100
+ -12553515.889 6 -9781961.346 5 22255143.145 22255140.915 22255141.886
+ 38.600 31.500
+ -15359265.626 7 -11968258.200 6 21738940.314 21738934.595 21738939.038
+ 44.300 38.000
+ -17234502.560 7 -13429476.975 6 21259436.063 21259433.731 21259435.379
+ 47.700 41.900
+ 06 1 2 10 6 0.0000000 0 6G01G06G16G20G23G25
+ -14071620.236 7 -10964898.394 6 21584601.902 21584600.074 21584600.785
+ 42.600 37.400
+ -6316454.885 5 -4921909.262 4 23512075.619 23512073.356 23512074.819
+ 31.500 24.900
+ -21484592.776 7 -16741233.687 7 20505623.535 20505620.498 20505622.447
+ 44.100 46.200
+ -12501457.904 6 -9741396.704 5 22265049.343 22265047.315 22265048.090
+ 38.400 31.000
+ -15438571.796 7 -12030055.214 6 21723848.909 21723843.172 21723847.641
+ 44.600 38.000
+ -17192510.734 7 -13396756.070 6 21267426.685 21267424.507 21267426.001
+ 47.500 41.800
+ 06 1 2 10 6 30.0000000 0 6G01G06G16G20G23G25
+ -13999353.006 7 -10908586.282 6 21598353.920 21598352.138 21598352.757
+ 42.600 37.800
+ -6294669.301 5 -4904933.491 4 23516221.220 23516218.915 23516220.245
+ 32.100 24.900
+ -21522408.746 7 -16770700.670 7 20498427.338 20498424.419 20498426.336
+ 44.300 46.300
+ -12448894.259 6 -9700438.044 5 22275051.880 22275049.873 22275050.676
+ 39.200 31.000
+ -15517555.141 7 -12091600.677 6 21708818.602 21708813.112 21708817.382
+ 44.300 38.100
+ -17150292.373 7 -13363858.654 7 21275460.689 21275458.418 21275459.930
+ 47.600 42.000
+ 06 1 2 10 7 0.0000000 0 6G01G06G16G20G23G25
+ -13926709.482 7 -10851980.964 6 21612177.160 21612175.760 21612176.212
+ 42.500 37.500
+ -6272353.257 5 -4887544.350 3 23520467.758 23520464.754 23520466.773
+ 31.600 22.600
+ -21559705.384 7 -16799762.976 7 20491330.019 20491327.119 20491328.977
+ 44.100 46.500
+ -12395827.062 6 -9659087.004 5 22285150.482 22285148.106 22285149.119
+ 39.100 30.600
+ -15596213.212 7 -12152892.677 6 21693850.340 21693845.159 21693849.160
+ 44.200 38.700
+ -17107847.928 7 -13330785.061 6 21283537.385 21283535.371 21283536.692
+ 47.500 41.900
+ 06 1 2 10 7 30.0000000 0 6G01G06G16G20G23G25
+ -13853690.792 7 -10795083.304 6 21626071.983 21626070.785 21626071.226
+ 42.700 37.300
+ -6249507.223 5 -4869742.243 4 23524815.317 23524812.670 23524814.278
+ 32.600 24.200
+ -21596482.143 7 -16828420.175 7 20484331.835 20484328.692 20484330.710
+ 44.300 46.400
+ -12342259.065 6 -9617345.730 5 22295344.161 22295341.745 22295342.866
+ 38.600 30.800
+ -15674543.649 7 -12213929.364 6 21678944.717 21678939.366 21678943.472
+ 44.100 38.900
+ -17065177.619 7 -13297535.478 6 21291657.619 21291655.340 21291656.880
+ 47.700 41.900
+ 06 1 2 10 8 0.0000000 0 6G01G06G16G20G23G25
+ -13780298.089 7 -10737894.190 6 21640038.529 21640036.877 21640037.528
+ 42.600 36.800
+ -6226131.793 5 -4851527.598 3 23529263.230 23529260.455 23529262.487
+ 31.600 23.000
+ -21632738.880 7 -16856672.164 7 20477432.203 20477429.264 20477431.113
+ 43.900 46.500
+ -12288191.717 6 -9575215.356 5 22305632.954 22305630.406 22305631.645
+ 38.600 30.200
+ -15752544.214 7 -12274709.031 6 21664101.742 21664096.172 21664100.585
+ 44.700 38.400
+ -17022281.940 7 -13264110.278 6 21299820.296 21299818.000 21299819.556
+ 47.400 41.600
+ 06 1 2 10 8 30.0000000 0 6G01G06G16G20G23G25
+ -13706532.448 7 -10680414.490 6 21654075.425 21654073.964 21654074.617
+ 42.600 37.100
+ -6202227.438 5 -4832900.836 3 23533812.428 23533809.728 23533811.568
+ 32.800 23.800
+ -21668474.905 7 -16884518.403 7 20470631.879 20470628.897 20470630.732
+ 43.800 46.600
+ -12233627.588 6 -9532697.878 5 22316016.114 22316013.647 22316014.901
+ 38.900 31.100
+ -15830212.241 7 -12335229.566 6 21649321.909 21649316.481 21649320.596
+ 44.500 38.600
+ -16979161.108 7 -13230509.641 6 21308025.938 21308023.574 21308025.201
+ 47.400 41.500
+ 06 1 2 10 9 0.0000000 0 6G01G06G16G20G23G25
+ -13632394.808 7 -10622644.919 6 21668182.845 21668182.004 21668182.271
+ 42.100 36.700
+ -6177794.740 5 -4813862.366 4 23538461.516 23538459.324 23538460.730
+ 32.000 24.900
+ -21703690.184 7 -16911958.860 7 20463930.596 20463927.686 20463929.557
+ 43.700 46.800
+ -12178569.312 6 -9489795.353 5 22326493.239 22326491.089 22326492.136
+ 38.600 30.600
+ -15907545.391 7 -12395489.155 6 21634605.789 21634600.393 21634604.690
+ 44.900 38.600
+ -16935815.435 7 -13196733.799 6 21316274.141 21316272.111 21316273.528
+ 47.400 41.600
+ 06 1 2 10 9 30.0000000 0 7G01G06G13G16G20G23G25
+ -13557886.334 7 -10564586.406 6 21682361.273 21682360.457 21682360.948
+ 42.300 36.600
+ -6152834.421 5 -4794412.769 4 23543210.686 23543208.706 23543210.013
+ 30.800 25.300
+ -186154.576 3 -145055.192 9 24583853.158 24583851.568 24583853.522
+ 19.900 -3.000
+ -21738384.055 7 -16938993.029 7 20457328.636 20457325.604 20457327.506
+ 43.900 46.700
+ -12123019.200 6 -9446509.561 5 22337064.226 22337061.925 22337062.906
+ 38.500 30.400
+ -15984541.292 7 -12455485.967 6 21619954.305 21619948.683 21619953.048
+ 45.100 38.900
+ -16892245.207 7 -13162782.983 6 21324565.437 21324563.235 21324564.714
+ 47.200 41.400
+ 06 1 2 10 10 0.0000000 0 7G01G06G13G16G20G23G25
+ -13483008.116 7 -10506239.776 6 21696609.871 21696609.467 21696609.769
+ 42.200 36.800
+ -6127346.985 5 -4774552.443 4 23548061.515 23548059.575 23548060.322
+ 30.800 26.200
+ -293467.772 3 -228675.944 2 24563433.679 24563431.340 24563433.288
+ 22.600 17.000
+ -21772556.248 7 -16965620.693 7 20450825.826 20450822.744 20450824.750
+ 43.700 46.700
+ -12066979.329 6 -9402842.147 5 22347728.092 22347725.886 22347726.994
+ 38.000 30.100
+ -16061197.524 7 -12515218.090 6 21605367.063 21605361.513 21605365.779
+ 45.100 38.700
+ -16848450.847 7 -13128657.507 6 21332899.096 21332896.994 21332898.536
+ 47.400 41.300
+ 06 1 2 10 10 30.0000000 0 7G01G06G13G16G20G23G25
+ -13407761.221 7 -10447605.858 6 21710929.039 21710928.294 21710928.989
+ 42.400 36.300
+ -6101333.065 5 -4754281.850 4 23553011.534 23553009.884 23553010.538
+ 32.000 26.200
+ -400717.283 3 -312246.951 3 24543024.317 24543022.665 24543023.949
+ 19.300 18.600
+ -21806206.333 7 -16991841.521 7 20444422.343 20444419.346 20444421.328
+ 43.800 46.900
+ -12010452.059 6 -9358794.950 5 22358485.139 22358482.499 22358483.816
+ 38.000 30.200
+ -16137511.673 7 -12574683.661 6 21590844.665 21590839.122 21590843.529
+ 45.000 38.300
+ -16804432.635 7 -13094357.604 6 21341275.590 21341273.466 21341274.880
+ 47.300 41.500
+ 06 1 2 10 11 0.0000000 0 7G01G06G13G16G20G23G25
+ -13332146.859 6 -10388685.608 6 21725318.101 21725317.526 21725317.837
+ 41.900 36.600
+ -6074793.369 5 -4733601.567 4 23558061.379 23558060.120 23558060.684
+ 31.500 25.300
+ -507901.313 3 -395766.984 2 24522629.235 24522625.461 24522628.310
+ 21.600 15.100
+ -21839334.084 7 -17017655.335 7 20438118.336 20438115.346 20438117.285
+ 43.600 47.100
+ -11953440.025 6 -9314370.008 4 22369334.021 22369331.465 22369332.884
+ 38.100 29.700
+ -16213480.977 7 -12633880.523 6 21576388.588 21576382.785 21576387.324
+ 45.400 38.800
+ -16760190.861 7 -13059883.493 6 21349694.600 21349692.274 21349693.892
+ 47.400 41.100
+ 06 1 2 10 11 30.0000000 0 7G01G06G13G16G20G23G25
+ -13256166.236 6 -10329479.951 6 21739776.332 21739776.023 21739776.469
+ 41.900 36.300
+ -6047728.544 5 -4712512.101 4 23563212.128 23563210.243 23563211.397
+ 31.600 25.300
+ -615017.285 3 -479233.965 3 24502244.955 24502242.249 24502244.667
+ 21.600 22.600
+ -21871939.209 7 -17043061.915 7 20431913.973 20431910.729 20431912.830
+ 43.700 47.000
+ -11895945.727 6 -9269569.273 5 22380275.155 22380272.344 22380273.897
+ 38.700 30.100
+ -16289103.317 7 -12692807.022 6 21561998.024 21561992.428 21561996.701
+ 45.100 39.100
+ -16715725.926 7 -13025235.496 6 21358155.832 21358153.720 21358155.155
+ 47.200 41.000
+ 06 1 2 10 12 0.0000000 0 7G01G06G13G16G20G23G25
+ -13179820.360 6 -10269989.691 6 21754304.754 21754304.326 21754304.653
+ 41.900 36.500
+ -6020139.156 5 -4691013.869 4 23568462.084 23568460.445 23568461.270
+ 31.100 25.900
+ -722063.297 3 -562646.406 3 24481873.252 24481872.128 24481873.468
+ 23.400 23.000
+ -21904021.444 7 -17068061.047 7 20425808.887 20425805.704 20425807.787
+ 43.700 47.100
+ -11837971.319 6 -9224394.429 4 22391307.186 22391304.500 22391305.976
+ 38.800 29.900
+ -16364375.991 7 -12751461.048 6 21547674.179 21547668.489 21547672.770
+ 44.900 39.100
+ -16671038.067 7 -12990413.794 6 21366659.826 21366657.508 21366659.106
+ 47.400 41.200
+ 06 1 2 10 12 30.0000000 0 7G01G06G13G16G20G23G25
+ -13103110.458 7 -10210215.761 6 21768902.659 21768901.655 21768902.237
+ 42.100 36.400
+ -5992026.152 5 -4669107.629 4 23573812.307 23573809.986 23573811.403
+ 31.500 25.600
+ -829037.318 3 -646002.775 3 24461517.344 24461515.185 24461516.753
+ 21.100 21.600
+ -21935580.445 7 -17092652.473 7 20419803.196 20419800.204 20419802.191
+ 43.600 47.200
+ -11779519.408 6 -9178847.500 4 22402430.179 22402427.546 22402428.935
+ 38.300 29.200
+ -16439297.096 7 -12809841.131 6 21533416.981 21533411.612 21533415.673
+ 45.200 39.700
+ -16626127.626 7 -12955418.648 6 21375205.786 21375203.677 21375205.116
+ 47.100 41.000
+ 06 1 2 10 13 0.0000000 0 7G01G06G13G16G20G23G25
+ -13026037.557 6 -10150158.971 6 21783569.016 21783568.202 21783568.600
+ 41.700 36.100
+ -5963390.128 5 -4646793.835 4 23579261.510 23579259.022 23579260.506
+ 31.600 24.900
+ -935937.603 3 -729301.696 3 24441174.321 24441172.642 24441174.223
+ 19.300 19.900
+ -21966615.611 7 -17116835.714 7 20413897.504 20413894.463 20413896.450
+ 43.700 47.400
+ -11720592.422 6 -9132930.390 5 22413643.740 22413641.293 22413642.482
+ 38.100 30.600
+ -16513863.884 7 -12867945.116 6 21519227.072 21519221.817 21519225.971
+ 45.100 39.300
+ -16580994.899 7 -12920250.291 6 21383794.562 21383792.111 21383793.790
+ 47.400 40.800
+ 06 1 2 10 13 30.0000000 0 7G01G06G13G16G20G23G25
+ -12948603.027 6 -10089820.412 6 21798305.074 21798303.615 21798304.092
+ 41.500 36.000
+ -5934231.878 5 -4624073.126 4 23584809.544 23584807.891 23584808.771
+ 31.000 24.200
+ -1042761.900 3 -812541.394 2 24420847.081 24420844.209 24420847.225
+ 18.600 12.600
+ -21997127.145 7 -17140610.929 7 20408091.261 20408088.310 20408090.191
+ 43.500 47.600
+ -11661192.811 6 -9086645.008 5 22424947.059 22424944.791 22424945.807
+ 37.700 30.600
+ -16588074.070 7 -12925771.239 6 21505105.492 21505100.001 21505104.223
+ 45.100 38.900
+ -16535640.225 7 -12884908.987 6 21392425.087 21392422.771 21392424.368
+ 47.100 40.600
+ 06 1 2 10 14 0.0000000 0 7G01G06G13G16G20G23G25
+ -12870808.000 6 -10029200.940 6 21813109.118 21813107.684 21813108.041
+ 41.600 36.000
+ -5904552.220 5 -4600946.133 4 23590457.258 23590455.658 23590456.648
+ 31.600 24.200
+ -1149508.210 2 -895720.322 1 24400533.379 24400531.439 24400533.818
+ 17.800 9.000
+ -22027114.641 7 -17163977.802 7 20402384.808 20402381.922 20402383.773
+ 43.400 47.600
+ -11601322.935 6 -9039993.187 5 22436339.861 22436337.687 22436338.715
+ 38.300 31.000
+ -16661925.062 7 -12983317.463 6 21491052.303 21491046.732 21491051.083
+ 45.500 39.200
+ -16490063.921 7 -12849394.990 6 21401098.009 21401095.606 21401097.338
+ 47.300 40.600
+ 06 1 2 10 14 30.0000000 0 7G01G06G13G16G20G23G25
+ -12792653.667 6 -9968301.484 5 21827981.662 21827979.774 21827980.368
+ 41.200 35.700
+ -5874351.836 5 -4577413.344 4 23596204.151 23596203.043 23596203.390
+ 30.400 25.900
+ -1256174.221 4 -978836.697 2 24380237.060 24380233.983 24380236.912
+ 24.200 13.900
+ -22056577.972 7 -17186936.237 7 20396778.320 20396775.217 20396777.241
+ 43.600 47.700
+ -11540985.375 6 -8992976.928 4 22447821.726 22447819.418 22447820.500
+ 38.200 29.900
+ -16735414.453 7 -13040581.926 6 21477067.841 21477062.168 21477066.555
+ 45.700 39.200
+ -16444266.234 7 -12813708.487 6 21409813.275 21409810.655 21409812.460
+ 47.100 40.500
+ 06 1 2 10 15 0.0000000 0 7G01G06G13G16G20G23G25
+ -12714141.227 6 -9907122.968 5 21842921.961 21842920.052 21842920.719
+ 40.700 35.600
+ -5843631.584 5 -4553475.498 3 23602050.392 23602048.401 23602049.609
+ 31.000 23.800
+ -1362758.379 4 -1061889.294 2 24359955.569 24359951.162 24359955.151
+ 26.500 16.100
+ -22085516.870 7 -17209486.015 7 20391271.333 20391268.232 20391270.297
+ 43.600 47.900
+ -11480182.692 6 -8945598.233 4 22459392.028 22459389.603 22459390.758
+ 38.100 28.800
+ -16808539.778 7 -13097562.706 6 21463152.328 21463146.914 21463151.205
+ 45.600 39.400
+ -16398247.483 7 -12777849.725 6 21418570.274 21418567.776 21418569.533
+ 47.200 40.600
+ 06 1 2 10 15 30.0000000 0 7G01G06G13G16G20G23G25
+ -12635271.927 6 -9845666.386 5 21857930.046 21857928.475 21857928.994
+ 41.000 35.300
+ -5812392.325 5 -4529133.190 4 23607995.124 23607993.503 23607994.258
+ 30.100 25.300
+ -1469258.173 4 -1144876.171 2 24339689.427 24339684.637 24339688.848
+ 25.300 17.800
+ -22113931.145 7 -17231627.004 7 20385864.237 20385861.171 20385863.163
+ 43.400 47.900
+ -11418917.465 6 -8897859.114 4 22471050.200 22471047.743 22471049.161
+ 38.000 28.600
+ -16881298.625 7 -13154257.910 6 21449306.809 21449301.470 21449305.462
+ 45.400 39.700
+ -16352007.939 7 -12741818.915 6 21427368.982 21427366.833 21427368.394
+ 47.200 40.600
+ 06 1 2 10 16 0.0000000 0 7G01G06G13G16G20G23G25
+ -12556047.028 6 -9783932.718 5 21873006.188 21873004.525 21873005.164
+ 41.100 35.700
+ -5780634.961 5 -4504387.213 3 23614038.752 23614036.119 23614037.870
+ 31.500 22.600
+ -1575671.325 4 -1227795.509 3 24319439.040 24319435.639 24319438.742
+ 27.100 22.100
+ -22141820.766 7 -17253359.170 7 20380557.046 20380553.940 20380555.923
+ 43.200 47.800
+ -11357192.247 6 -8849761.550 4 22482796.461 22482793.895 22482795.116
+ 37.100 29.000
+ -16953688.669 7 -13210665.730 6 21435531.561 21435525.946 21435530.223
+ 45.500 39.500
+ -16305548.022 7 -12705616.382 6 21436210.070 21436207.900 21436209.430
+ 47.000 40.500
+ 06 1 2 10 16 30.0000000 0 7G01G06G13G16G20G23G25
+ -12476467.769 6 -9721922.927 5 21888149.223 21888147.913 21888148.460
+ 41.100 35.600
+ -5748360.343 5 -4479238.147 3 23620180.216 23620177.764 23620179.247
+ 31.100 23.400
+ -1681996.001 3 -1310645.922 4 24299204.701 24299203.092 24299204.749
+ 23.400 25.300
+ -22169185.649 7 -17274682.446 7 20375349.760 20375346.615 20375348.660
+ 43.300 47.800
+ -11295009.553 6 -8801307.527 4 22494629.092 22494627.050 22494628.059
+ 36.800 29.200
+ -17025707.548 7 -13266784.342 6 21421827.184 21421821.395 21421825.711
+ 46.200 39.800
+ -16258867.954 7 -12669242.308 6 21445093.325 21445090.867 21445092.433
+ 46.800 40.500
+ 06 1 2 10 17 0.0000000 0 7G01G06G13G16G20G23G25
+ -12396535.332 6 -9659637.948 5 21903360.368 21903358.561 21903359.311
+ 40.700 35.100
+ -5715569.335 5 -4453686.710 4 23626420.412 23626418.106 23626419.464
+ 31.300 24.600
+ -1788230.202 3 -1393425.752 4 24278988.092 24278986.872 24278988.379
+ 22.600 25.300
+ -22196025.536 7 -17295596.641 8 20370242.133 20370239.203 20370241.036
+ 43.200 48.000
+ -11232372.000 5 -8752499.074 4 22506548.738 22506546.698 22506547.379
+ 35.400 28.600
+ -17097352.923 7 -13322611.909 6 21408193.329 21408187.662 21408192.010
+ 46.100 39.900
+ -16211967.985 7 -12632696.884 6 21454017.513 21454015.707 21454016.958
+ 46.900 40.600
+ 06 1 2 10 17 30.0000000 0 7G01G06G13G16G20G23G25
+ -12316251.066 6 -9597078.822 5 21918637.540 21918636.312 21918636.741
+ 40.700 35.200
+ -5682262.893 5 -4427733.627 4 23632758.427 23632756.177 23632757.531
+ 31.500 24.900
+ -1894371.635 3 -1476133.349 3 24258791.266 24258788.989 24258791.202
+ 21.100 23.000
+ -22222340.454 7 -17316101.766 8 20365234.551 20365231.595 20365233.419
+ 43.100 48.000
+ -11169282.113 5 -8703338.154 4 22518554.000 22518552.473 22518552.827
+ 35.600 28.800
+ -17168621.878 7 -13378146.166 6 21394631.093 21394625.448 21394629.829
+ 46.000 39.800
+ -16164848.468 7 -12595980.375 6 21462984.241 21462982.222 21462983.599
+ 46.800 40.600
+ 06 1 2 10 18 0.0000000 0 7G01G06G13G16G20G23G25
+ -12235616.152 6 -9534246.466 5 21933981.924 21933980.756 21933981.072
+ 40.500 35.400
+ -5648441.865 5 -4401379.598 4 23639193.937 23639192.455 23639193.171
+ 30.600 25.900
+ -2000418.074 3 -1558766.959 3 24238612.797 24238608.546 24238611.807
+ 19.900 21.100
+ -22248130.225 7 -17336197.683 8 20360326.972 20360323.933 20360325.931
+ 43.100 48.000
+ -11105742.541 6 -8653826.824 4 22530645.544 22530643.574 22530644.346
+ 36.700 29.700
+ -17239512.353 7 -13433385.497 6 21381140.936 21381135.681 21381139.727
+ 45.900 40.000
+ -16117509.701 7 -12559093.025 6 21471992.626 21471990.498 21471991.884
+ 46.900 40.500
+ 06 1 2 10 18 30.0000000 0 7G01G06G13G16G20G23G25
+ -12154631.942 6 -9471141.914 5 21949392.578 21949391.299 21949391.793
+ 40.400 34.600
+ -5614107.267 5 -4374625.353 3 23645727.247 23645725.352 23645726.639
+ 30.100 23.800
+ -2106367.784 3 -1641325.093 3 24218450.206 24218447.520 24218449.615
+ 20.500 20.500
+ -22273395.102 7 -17355884.590 8 20355519.319 20355516.209 20355518.175
+ 43.100 48.100
+ -11041755.853 6 -8603967.092 4 22542821.767 22542819.808 22542820.643
+ 37.200 28.800
+ -17310021.927 7 -13488328.020 6 21367723.580 21367718.086 21367722.346
+ 46.100 40.100
+ -16069952.034 7 -12522035.100 6 21481042.617 21481040.394 21481041.901
+ 46.900 40.300
+ 06 1 2 10 19 0.0000000 0 7G01G06G13G16G20G23G25
+ -12073299.801 6 -9407766.251 5 21964869.494 21964868.444 21964868.706
+ 40.000 34.800
+ -5579260.163 5 -4347471.763 4 23652358.426 23652357.439 23652357.606
+ 30.100 27.100
+ -2212218.145 4 -1723805.879 3 24198306.949 24198304.678 24198307.288
+ 24.200 19.900
+ -22298134.406 7 -17375161.964 8 20350811.451 20350808.516 20350810.306
+ 43.000 48.400
+ -10977324.752 6 -8553761.054 4 22555082.987 22555080.364 22555081.697
+ 37.700 28.100
+ -17380148.458 7 -13542972.072 6 21354378.993 21354373.439 21354377.592
+ 45.700 40.000
+ -16022175.664 7 -12484806.756 6 21490134.159 21490132.067 21490133.399
+ 46.700 40.400
+ 06 1 2 10 19 30.0000000 0 7G01G06G13G16G20G23G25
+ -11991621.024 6 -9344120.472 5 21980412.751 21980411.466 21980411.793
+ 39.700 34.900
+ -5543901.358 5 -4319919.459 4 23659087.204 23659085.509 23659086.227
+ 30.800 25.900
+ -2317967.129 4 -1806207.698 2 24178183.491 24178180.944 24178183.754
+ 26.200 17.000
+ -22322348.282 7 -17394029.911 8 20346203.630 20346200.759 20346202.525
+ 42.700 48.400
+ -10912451.961 6 -8503210.842 4 22567427.547 22567425.240 22567426.477
+ 37.100 26.800
+ -17449889.545 7 -13597315.774 6 21341107.678 21341102.145 21341106.504
+ 46.200 40.100
+ -15974180.821 7 -12447408.183 6 21499267.057 21499265.111 21499266.491
+ 46.600 40.500
+ 06 1 2 10 20 0.0000000 0 7G01G06G13G16G20G23G25
+ -11909596.824 6 -9280205.534 5 21996021.282 21996020.385 21996020.405
+ 39.700 35.200
+ -5508031.931 4 -4291969.258 4 23665912.722 23665911.414 23665912.117
+ 29.900 25.300
+ -2423612.709 4 -1888528.947 3 24158081.242 24158077.477 24158080.741
+ 24.900 18.600
+ -22346037.013 7 -17412488.653 8 20341695.871 20341692.906 20341694.741
+ 43.000 48.400
+ -10847139.899 6 -8452318.346 4 22579856.000 22579853.761 22579854.828
+ 37.200 27.400
+ -17519242.263 7 -13651356.858 6 21327910.546 21327904.717 21327909.196
+ 46.100 39.900
+ -15925968.023 7 -12409839.770 6 21508441.692 21508439.753 21508441.124
+ 46.600 40.300
+ 06 1 2 10 20 30.0000000 0 7G01G06G13G16G20G23G25
+ -11827228.795 6 -9216022.666 5 22011695.507 22011694.282 22011694.731
+ 39.700 34.900
+ -5471652.894 5 -4263621.951 4 23672835.612 23672833.901 23672834.814
+ 30.200 25.900
+ -2529152.586 4 -1970767.799 2 24137998.452 24137993.631 24137997.540
+ 28.400 13.900
+ -22369200.378 7 -17430538.012 8 20337288.057 20337284.935 20337286.971
+ 42.800 48.400
+ -10781391.463 6 -8401085.818 4 22592367.723 22592365.491 22592366.546
+ 37.100 28.100
+ -17588204.383 7 -13705093.574 6 21314787.291 21314781.734 21314786.024
+ 46.400 40.300
+ -15877537.431 7 -12372101.643 6 21517657.949 21517655.737 21517657.089
+ 46.300 40.200
+ 06 1 2 10 21 0.0000000 0 7G01G06G13G16G20G23G25
+ -11744518.128 6 -9151572.813 5 22027434.557 22027433.449 22027433.952
+ 39.900 33.900
+ -5434765.393 4 -4234878.445 4 23679854.850 23679853.686 23679853.996
+ 29.700 27.600
+ -2634584.619 4 -2052922.660 2 24117933.514 24117930.764 24117933.543
+ 26.800 16.100
+ -22391838.610 7 -17448178.178 8 20332980.125 20332977.021 20332978.988
+ 42.900 48.500
+ -10715209.144 6 -8349515.199 4 22604961.797 22604959.468 22604960.583
+ 36.500 27.900
+ -17656773.585 7 -13758524.124 6 21301739.046 21301733.448 21301737.744
+ 46.400 40.600
+ -15828889.266 7 -12334193.979 6 21526915.176 21526913.069 21526914.557
+ 46.600 40.100
+ 06 1 2 10 21 30.0000000 0 7G01G06G13G16G20G23G25
+ -11661466.085 6 -9086856.963 5 22043238.312 22043238.167 22043238.166
+ 40.000 34.900
+ -5397370.498 4 -4205739.572 4 23686970.217 23686968.800 23686969.706
+ 29.500 24.200
+ -2739906.434 4 -2134991.620 2 24097890.974 24097888.201 24097890.957
+ 25.600 16.100
+ -22413951.841 7 -17465409.252 8 20328772.123 20328769.019 20328771.002
+ 42.700 48.400
+ -10648595.755 6 -8297608.684 4 22617637.780 22617635.768 22617636.528
+ 36.300 28.800
+ -17724947.657 7 -13811646.776 6 21288765.970 21288760.296 21288764.717
+ 46.700 40.600
+ -15780023.925 7 -12296117.091 6 21536213.951 21536211.819 21536213.273
+ 46.600 40.000
+ 06 1 2 10 22 0.0000000 0 7G01G06G13G16G20G23G25
+ -11578074.186 6 -9021876.298 5 22059107.616 22059106.930 22059107.211
+ 40.000 34.300
+ -5359469.199 4 -4176206.076 4 23694182.911 23694181.503 23694182.406
+ 29.700 25.900
+ -2845115.918 4 -2216973.056 2 24077871.380 24077867.981 24077870.858
+ 27.100 17.800
+ -22435540.279 7 -17482231.404 8 20324663.877 20324660.850 20324662.857
+ 42.800 48.600
+ -10581553.977 6 -8245368.361 5 22630395.664 22630393.615 22630394.408
+ 36.200 30.100
+ -17792723.981 7 -13864459.493 6 21275868.401 21275862.844 21275867.247
+ 46.500 40.500
+ -15730941.650 7 -12257871.164 6 21545554.166 21545551.802 21545553.464
+ 46.600 39.800
+ 06 1 2 10 22 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -11494343.792 6 -8956631.856 5 22075041.370 22075040.243 22075040.780
+ 40.200 34.000
+ -194225.796 3 -151344.347 2 24522886.480 24522885.957 24522885.218
+ 21.100 17.800
+ -5321062.629 4 -4146278.887 4 23701491.403 23701490.285 23701491.089
+ 28.600 25.900
+ -2950211.171 4 -2298865.464 3 24057872.614 24057869.685 24057871.924
+ 25.600 22.100
+ -22456603.494 7 -17498644.297 8 20320655.798 20320652.677 20320654.734
+ 42.900 48.600
+ -10514086.556 5 -8192796.382 5 22643233.970 22643232.336 22643232.788
+ 35.500 30.200
+ -17860100.098 7 -13916960.368 6 21263047.225 21263041.682 21263045.921
+ 46.400 40.600
+ -15681642.685 7 -12219456.392 6 21554935.599 21554933.086 21554934.845
+ 46.800 39.700
+ 06 1 2 10 23 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -11410276.156 6 -8891124.616 5 22091038.957 22091037.822 22091038.207
+ 39.500 33.600
+ -306296.240 3 -238671.913 2 24501560.478 24501559.677 24501559.242
+ 21.600 17.800
+ -5282151.874 5 -4115958.821 4 23708896.378 23708894.487 23708895.856
+ 30.600 25.600
+ -3055189.782 3 -2380666.952 3 24037895.062 24037892.623 24037894.778
+ 22.100 23.800
+ -22477141.868 7 -17514648.219 8 20316747.531 20316744.459 20316746.388
+ 42.900 48.800
+ -10446196.353 5 -8139894.972 5 22656153.459 22656151.401 22656152.143
+ 35.800 30.200
+ -17927073.869 7 -13969147.718 6 21250302.518 21250297.122 21250301.231
+ 46.400 40.900
+ -15632127.409 7 -12180873.062 6 21564358.021 21564355.621 21564357.309
+ 46.800 39.500
+ 06 1 2 10 23 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -11325872.705 6 -8825355.716 5 22107100.526 22107099.314 22107099.716
+ 39.700 33.900
+ -418375.635 3 -326006.442 3 24480232.677 24480231.678 24480231.354
+ 22.100 18.600
+ -5242738.199 4 -4085246.877 4 23716396.640 23716394.854 23716395.481
+ 29.700 24.600
+ -3160049.520 4 -2462375.825 4 24017940.511 24017938.842 24017940.392
+ 24.200 25.600
+ -22497155.498 7 -17530243.241 8 20312939.144 20312936.014 20312938.007
+ 43.000 48.800
+ -10377885.910 6 -8086666.084 4 22669152.678 22669150.345 22669151.485
+ 36.400 28.600
+ -17993642.799 7 -14021019.612 6 21237635.009 21237629.394 21237633.659
+ 46.300 40.900
+ -15582395.960 7 -12142121.282 6 21573821.438 21573819.175 21573820.697
+ 46.700 39.700
+ 06 1 2 10 24 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -11241134.846 6 -8759326.240 5 22123225.612 22123224.548 22123224.842
+ 39.300 34.100
+ -530461.417 3 -413345.982 2 24458903.494 24458902.297 24458902.128
+ 22.100 13.900
+ -5202822.761 4 -4054143.914 3 23723992.658 23723990.297 23723991.630
+ 29.000 23.000
+ -3264788.081 3 -2543990.245 4 23998009.937 23998007.520 23998009.586
+ 21.100 24.900
+ -22516644.311 7 -17545429.320 8 20309230.661 20309227.339 20309229.466
+ 43.100 48.800
+ -10309157.943 6 -8033111.837 4 22682230.978 22682228.762 22682229.784
+ 36.300 27.400
+ -18059804.562 7 -14072574.230 6 21225044.807 21225039.318 21225043.498
+ 46.600 41.000
+ -15532448.731 7 -12103201.362 6 21583326.160 21583323.775 21583325.444
+ 46.700 39.700
+ 06 1 2 10 24 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -11156064.010 6 -8693037.300 5 22139414.050 22139412.826 22139413.290
+ 39.100 33.800
+ -642551.070 3 -500688.521 3 24437573.277 24437573.087 24437572.127
+ 22.600 19.300
+ -5162406.574 5 -4022650.788 4 23731683.718 23731681.914 23731682.968
+ 31.600 25.300
+ -3369403.240 4 -2625508.548 3 23978102.642 23978099.915 23978102.664
+ 24.600 23.400
+ -22535608.726 7 -17560206.776 8 20305621.620 20305618.487 20305620.562
+ 42.800 48.900
+ -10240015.332 6 -7979234.492 4 22695388.336 22695386.235 22695387.174
+ 36.200 27.400
+ -18125556.600 7 -14123809.584 6 21212532.515 21212527.207 21212531.255
+ 46.600 41.200
+ -15482286.010 7 -12064113.529 6 21592872.050 21592869.522 21592871.255
+ 46.700 39.700
+ 06 1 2 10 25 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -11070661.702 6 -8626490.080 5 22155665.711 22155664.275 22155664.703
+ 38.600 33.400
+ -754641.659 3 -588031.794 2 24416243.315 24416242.187 24416241.480
+ 20.500 17.000
+ -5121490.995 4 -3990768.531 4 23739468.115 23739467.945 23739467.523
+ 27.600 25.600
+ -3473892.751 4 -2706928.953 4 23958218.960 23958216.143 23958218.549
+ 25.600 24.600
+ -22554048.758 7 -17574575.628 8 20302112.400 20302109.495 20302111.389
+ 42.500 48.900
+ -10170460.884 6 -7925036.233 4 22708624.423 22708621.746 22708623.278
+ 36.500 27.100
+ -18190896.822 7 -14174724.036 6 21200098.828 21200093.415 21200097.419
+ 46.600 41.200
+ -15431907.984 7 -12024857.923 6 21602458.531 21602455.973 21602457.774
+ 46.600 39.400
+ 06 1 2 10 25 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -10984929.356 6 -8559685.676 5 22171980.366 22171978.664 22171979.225
+ 38.600 33.600
+ -866730.397 3 -675373.637 2 24394912.432 24394912.443 24394911.300
+ 22.100 16.100
+ -5080077.126 4 -3958497.995 3 23747349.321 23747348.411 23747348.846
+ 29.500 23.800
+ -3578254.283 4 -2788249.597 3 23938358.893 23938356.957 23938358.380
+ 25.900 23.400
+ -22571964.898 7 -17588536.249 8 20298703.118 20298700.146 20298702.026
+ 42.600 48.900
+ -10100497.431 6 -7870519.277 4 22721937.872 22721935.116 22721936.665
+ 36.700 25.600
+ -18255822.694 7 -14225315.623 6 21187743.548 21187738.315 21187742.270
+ 46.600 41.200
+ -15381314.948 7 -11985434.774 6 21612085.821 21612083.700 21612085.140
+ 46.600 39.700
+ 06 1 2 10 26 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10898868.419 6 -8492625.232 5 22188357.433 22188355.919 22188356.051
+ 37.900 34.000
+ -978814.572 3 -762711.964 1 24373583.477 24373582.979 24373582.634
+ 23.800 9.000
+ -5038166.346 4 -3925840.218 4 23755324.935 23755323.357 23755324.469
+ 29.500 24.200
+ -3682485.527 4 -2869468.758 4 23918524.946 23918522.389 23918524.803
+ 29.500 24.900
+ -22589357.108 7 -17602088.613 8 20295393.395 20295390.502 20295392.366
+ 42.600 49.000
+ -10030127.902 6 -7815685.896 4 22735328.538 22735326.081 22735327.453
+ 36.300 26.200
+ -18320331.822 7 -14275582.467 6 21175467.897 21175462.379 21175466.704
+ 46.300 40.600
+ -15330507.230 7 -11945844.350 6 21621754.228 21621752.288 21621753.547
+ 46.400 39.800
+ 06 1 2 10 26 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -10812480.226 6 -8425309.794 5 22204796.870 22204794.933 22204795.334
+ 38.300 33.400
+ -1090891.346 3 -850044.522 2 24352256.250 24352256.123 24352255.140
+ 23.000 17.800
+ -4995759.817 4 -3892796.190 4 23763394.619 23763393.313 23763393.756
+ 28.400 24.600
+ -3786584.391 4 -2950584.759 3 23898715.955 23898712.771 23898715.493
+ 28.600 21.600
+ -22606225.614 7 -17615232.893 8 20292183.441 20292180.491 20292182.373
+ 42.500 49.100
+ -9959354.805 5 -7760538.037 4 22748796.277 22748794.028 22748795.114
+ 35.800 25.600
+ -18384421.995 7 -14325522.865 6 21163272.069 21163266.497 21163270.720
+ 46.800 40.700
+ -15279485.093 7 -11906086.842 6 21631463.336 21631461.263 21631462.739
+ 46.400 39.500
+ 06 1 2 10 27 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10725766.346 6 -8357740.556 5 22221297.926 22221296.167 22221296.366
+ 38.000 33.500
+ -1202957.990 3 -937369.148 3 24330930.704 24330930.288 24330929.792
+ 22.600 18.600
+ -4952858.798 5 -3859366.810 3 23771559.210 23771556.865 23771558.221
+ 30.200 23.000
+ -3890548.642 4 -3031595.866 3 23878931.610 23878929.138 23878931.273
+ 27.100 22.100
+ -22622570.807 7 -17627969.392 8 20289073.225 20289070.096 20289072.127
+ 42.300 49.000
+ -9888181.051 5 -7705077.982 4 22762340.265 22762338.009 22762339.043
+ 35.600 25.900
+ -18448090.855 7 -14375134.965 6 21151156.223 21151150.753 21151155.031
+ 46.800 41.000
+ -15228248.857 7 -11866162.501 6 21641213.165 21641211.294 21641212.588
+ 46.400 39.500
+ 06 1 2 10 27 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -10638728.268 6 -8289918.695 5 22237860.978 22237858.616 22237859.558
+ 38.900 32.800
+ -1315011.675 3 -1024683.656 3 24309606.296 24309607.323 24309606.131
+ 20.500 21.100
+ -4909464.456 4 -3825553.041 3 23779816.271 23779814.669 23779815.548
+ 28.800 23.000
+ -3994375.927 4 -3112500.225 2 23859174.051 23859170.599 23859174.017
+ 26.500 17.800
+ -22638392.906 7 -17640298.291 8 20286062.327 20286059.270 20286061.227
+ 42.100 49.100
+ -9816609.649 5 -7649308.074 4 22775959.603 22775957.579 22775958.526
+ 35.200 27.400
+ -18511335.997 7 -14424416.896 6 21139121.043 21139115.630 21139119.853
+ 46.800 41.100
+ -15176798.682 7 -11826071.457 6 21651004.001 21651002.016 21651003.401
+ 46.400 39.500
+ 06 1 2 10 28 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10551367.331 6 -8221845.261 5 22254484.940 22254483.049 22254483.716
+ 38.400 33.000
+ -1427049.626 3 -1111985.882 3 24288286.613 24288287.238 24288286.404
+ 23.000 21.600
+ -4865578.264 4 -3791356.005 3 23788167.438 23788165.565 23788166.598
+ 28.600 22.600
+ -4098063.903 3 -3193296.084 2 23839442.726 23839439.324 23839442.371
+ 23.800 17.000
+ -22653692.147 7 -17652219.774 8 20283151.039 20283147.916 20283149.865
+ 42.300 49.200
+ -9744643.261 5 -7593230.392 4 22789654.567 22789652.428 22789653.313
+ 35.200 27.100
+ -18574155.170 7 -14473366.897 6 21127167.039 21127161.490 21127165.703
+ 46.600 41.100
+ -15125134.838 7 -11785813.919 6 21660835.253 21660833.316 21660834.655
+ 46.400 39.800
+ 06 1 2 10 28 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -10463685.018 6 -8153521.413 5 22271169.590 22271168.496 22271168.779
+ 37.500 32.800
+ -1539068.898 3 -1199273.561 3 24266969.971 24266970.392 24266969.977
+ 22.100 19.300
+ -4821201.534 5 -3756776.733 4 23796612.727 23796610.735 23796611.999
+ 30.100 24.600
+ -4201610.162 4 -3273981.477 2 23819739.388 23819734.813 23819738.710
+ 26.800 16.100
+ -22668468.841 7 -17663734.081 8 20280339.072 20280335.974 20280337.948
+ 42.400 49.200
+ -9672284.837 5 -7536847.225 4 22803423.819 22803421.900 22803422.680
+ 35.100 27.100
+ -18636546.002 7 -14521983.129 6 21115294.449 21115288.928 21115293.070
+ 46.500 41.300
+ -15073257.711 7 -11745390.186 6 21670707.384 21670705.114 21670706.633
+ 46.300 39.500
+ 06 1 2 10 29 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10375682.842 6 -8084948.334 5 22287915.446 22287914.897 22287915.016
+ 37.700 33.100
+ -1651066.883 3 -1286544.672 2 24245658.222 24245657.497 24245656.861
+ 19.900 16.100
+ -4776335.505 4 -3721816.192 3 23805150.066 23805148.135 23805149.503
+ 29.900 23.800
+ -4305012.498 4 -3354554.742 3 23800061.503 23800059.338 23800061.049
+ 24.600 22.100
+ -22682723.128 7 -17674841.309 8 20277626.653 20277623.515 20277625.443
+ 42.500 49.200
+ -9599537.709 5 -7480161.172 4 22817267.500 22817265.149 22817266.144
+ 34.500 26.500
+ -18698505.628 7 -14570263.351 6 21103503.851 21103498.393 21103502.646
+ 46.800 41.200
+ -15021167.528 7 -11704800.438 6 21680619.920 21680617.468 21680619.135
+ 46.300 39.300
+ 06 1 2 10 29 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -10287362.344 6 -8016127.202 5 22304722.263 22304721.370 22304721.938
+ 37.600 31.800
+ -1763040.578 4 -1373796.881 3 24224349.820 24224349.842 24224348.917
+ 24.600 19.900
+ -4730981.669 4 -3686475.533 3 23813779.911 23813778.831 23813779.432
+ 28.100 22.600
+ -4408268.690 4 -3435014.104 3 23780413.161 23780410.644 23780412.763
+ 26.200 23.400
+ -22696455.636 7 -17685541.956 8 20275013.225 20275010.268 20275012.214
+ 42.700 49.200
+ -9526403.751 5 -7423173.698 4 22831184.196 22831182.196 22831182.890
+ 33.600 26.500
+ -18760032.515 7 -14618206.382 6 21091795.773 21091790.171 21091794.469
+ 47.000 41.300
+ -14968864.541 7 -11664044.868 6 21690572.560 21690570.499 21690571.959
+ 46.400 39.300
+ 06 1 2 10 30 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10198724.972 6 -7947059.142 5 22321589.034 22321588.605 22321588.867
+ 37.300 32.000
+ -1874987.022 3 -1461027.813 3 24203046.513 24203047.633 24203046.600
+ 23.000 21.100
+ -4685141.216 4 -3650755.719 4 23822504.094 23822502.510 23822503.244
+ 29.700 25.900
+ -4511376.744 4 -3515358.034 3 23760792.199 23760789.301 23760791.631
+ 24.900 23.000
+ -22709666.847 7 -17695836.397 8 20272499.298 20272496.206 20272498.285
+ 42.700 49.100
+ -9452886.371 5 -7365887.447 4 22845173.770 22845171.839 22845172.684
+ 32.700 26.500
+ -18821124.083 7 -14665810.199 6 21080170.283 21080164.892 21080169.133
+ 47.100 41.400
+ -14916349.031 7 -11623123.687 6 21700565.670 21700563.806 21700565.198
+ 46.100 38.900
+ 06 1 2 10 30 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -10109772.278 6 -7877745.382 5 22338516.325 22338516.009 22338515.970
+ 37.700 32.000
+ -1986903.492 3 -1548235.395 2 24181751.415 24181749.766 24181749.487
+ 19.900 17.000
+ -4638815.662 5 -3614657.899 3 23831319.116 23831317.471 23831318.595
+ 31.300 22.100
+ -4614333.435 4 -3595583.997 4 23741199.756 23741197.507 23741199.479
+ 26.800 25.900
+ -22722356.641 7 -17705724.537 8 20270084.684 20270081.458 20270083.479
+ 42.600 49.300
+ -9378988.261 5 -7308304.535 4 22859236.616 22859234.150 22859235.250
+ 33.100 26.200
+ -18881777.763 7 -14713072.806 6 21068628.453 21068622.951 21068627.174
+ 47.100 41.600
+ -14863621.223 7 -11582037.081 6 21710599.808 21710597.502 21710598.984
+ 45.900 38.800
+ 06 1 2 10 31 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10020505.904 6 -7808187.206 5 22355502.860 22355502.567 22355502.596
+ 36.500 31.800
+ -2098787.401 3 -1635417.596 3 24160460.290 24160458.907 24160458.289
+ 22.600 19.900
+ -4592006.502 5 -3578183.205 3 23840226.254 23840224.952 23840225.969
+ 30.600 21.600
+ -4717136.785 4 -3675690.505 3 23721636.978 23721633.974 23721636.867
+ 27.400 22.600
+ -22734525.753 7 -17715206.943 8 20267768.808 20267765.767 20267767.776
+ 42.800 49.300
+ -9304712.851 5 -7250427.619 4 22873370.789 22873368.549 22873369.570
+ 34.900 26.500
+ -18941991.719 7 -14759992.767 6 21057170.038 21057164.576 21057168.856
+ 47.200 41.800
+ -14810681.435 7 -11540785.302 6 21720673.699 21720671.560 21720673.073
+ 45.900 38.900
+ 06 1 2 10 31 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -9930927.339 6 -7738385.758 5 22372549.135 22372549.160 22372549.208
+ 37.600 32.400
+ -2210635.660 3 -1722572.037 3 24139175.482 24139174.542 24139174.265
+ 20.500 19.300
+ -4544714.983 4 -3541332.677 3 23849226.129 23849223.883 23849225.364
+ 28.600 22.600
+ -4819784.375 4 -3755675.652 3 23702104.732 23702101.514 23702104.336
+ 29.200 22.600
+ -22746174.682 7 -17724284.019 8 20265552.291 20265548.890 20265551.145
+ 42.700 49.200
+ -9230062.633 5 -7192258.632 4 22887576.268 22887574.119 22887574.995
+ 35.100 26.800
+ -19001763.370 7 -14806568.078 6 21045796.037 21045790.298 21045794.738
+ 47.100 41.500
+ -14757529.882 7 -11499368.514 6 21730788.122 21730786.039 21730787.433
+ 45.600 38.900
+ 06 1 2 10 32 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9841038.177 6 -7668342.289 5 22389654.732 22389654.555 22389654.352
+ 36.700 32.400
+ -2322445.404 4 -1809696.448 2 24117897.777 24117897.786 24117897.521
+ 24.600 17.800
+ -4496942.559 4 -3504107.423 3 23858316.683 23858314.936 23858316.149
+ 29.200 22.100
+ -4922274.134 4 -3835537.815 3 23682600.916 23682598.080 23682600.546
+ 26.200 23.400
+ -22757303.520 7 -17732955.836 8 20263434.443 20263431.065 20263433.346
+ 42.700 49.200
+ -9155040.528 5 -7133799.871 4 22901852.098 22901850.497 22901850.934
+ 34.500 27.900
+ -19061090.411 7 -14852796.944 6 21034506.359 21034500.679 21034505.083
+ 47.000 41.400
+ -14704166.868 7 -11457786.949 6 21740942.913 21740940.752 21740942.243
+ 45.800 38.800
+ 06 1 2 10 32 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -9750839.991 6 -7598058.022 5 22406819.821 22406818.412 22406819.082
+ 37.300 31.600
+ -2434213.519 3 -1896788.439 2 24096630.017 24096628.922 24096629.115
+ 21.600 15.100
+ -4448690.765 4 -3466508.609 3 23867499.039 23867496.292 23867498.160
+ 28.100 21.600
+ -5024603.619 4 -3915275.043 4 23663128.003 23663125.646 23663127.528
+ 26.200 25.300
+ -22767912.710 7 -17741222.729 8 20261415.436 20261412.231 20261414.339
+ 42.300 49.100
+ -9079649.566 5 -7075053.686 4 22916198.701 22916196.805 22916197.316
+ 33.100 26.800
+ -19119970.811 7 -14898677.773 6 21023301.795 21023296.293 21023300.580
+ 47.100 41.800
+ -14650592.599 7 -11416040.769 6 21751137.668 21751135.657 21751137.094
+ 45.900 38.900
+ 06 1 2 10 33 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9660334.319 6 -7527534.153 5 22424042.701 22424041.465 22424041.686
+ 36.900 32.000
+ -2545937.390 4 -1983845.976 3 24075369.696 24075369.379 24075368.975
+ 25.900 19.300
+ -4399960.995 4 -3428537.357 4 23876772.033 23876770.294 23876771.269
+ 29.900 25.300
+ -5126770.505 4 -3994885.590 4 23643686.559 23643683.683 23643686.313
+ 26.800 24.200
+ -22778002.818 7 -17749085.145 8 20259495.374 20259492.211 20259494.276
+ 42.500 49.200
+ -9003892.616 5 -7016022.318 4 22930615.005 22930612.845 22930613.811
+ 33.100 26.200
+ -19178402.304 7 -14944208.801 6 21012182.665 21012177.105 21012181.408
+ 47.200 41.800
+ -14596807.379 7 -11374130.207 6 21761372.819 21761370.519 21761372.170
+ 45.800 38.500
+ 06 1 2 10 33 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -9569522.651 6 -7456771.847 5 22441323.835 22441322.213 22441322.820
+ 37.100 31.500
+ -2657614.376 4 -2070866.958 3 24054119.496 24054118.104 24054118.016
+ 27.400 19.300
+ -4350754.802 4 -3390194.895 3 23886135.840 23886133.370 23886135.162
+ 29.200 23.000
+ -5228772.312 4 -4074367.511 3 23624276.620 23624273.274 23624276.182
+ 29.000 23.000
+ -22787574.467 7 -17756543.572 8 20257673.837 20257670.808 20257672.786
+ 42.400 49.200
+ -8927772.932 5 -6956708.295 4 22945100.066 22945097.888 22945098.796
+ 33.400 26.800
+ -19236382.482 7 -14989388.158 6 21001149.412 21001143.794 21001148.204
+ 47.200 41.700
+ -14542811.486 7 -11332055.484 6 21771647.951 21771645.558 21771647.147
+ 45.700 38.300
+ 06 1 2 10 34 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9478406.519 6 -7385772.287 5 22458662.589 22458660.757 22458661.543
+ 36.800 31.300
+ -2769241.491 4 -2157849.120 2 24032877.322 24032875.268 24032875.831
+ 24.600 13.900
+ -4301073.488 4 -3351482.183 3 23895589.599 23895586.916 23895588.951
+ 29.900 21.600
+ -5330606.499 4 -4153718.838 3 23604897.798 23604894.367 23604897.437
+ 27.600 20.500
+ -22796628.024 7 -17763598.295 8 20255951.059 20255947.988 20255949.946
+ 42.700 49.200
+ -8851293.142 5 -6897113.681 4 22959653.410 22959651.677 22959652.281
+ 33.900 25.900
+ -19293908.764 7 -15034213.830 6 20990202.539 20990196.906 20990201.249
+ 47.100 41.600
+ -14488605.198 7 -11289816.820 6 21781963.055 21781960.752 21781962.319
+ 45.800 38.400
+ 06 1 2 10 34 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -9386987.733 6 -7314536.916 5 22476058.803 22476057.667 22476057.635
+ 36.000 31.100
+ -2880815.917 4 -2244790.193 3 24011645.030 24011643.613 24011643.897
+ 25.900 18.600
+ -4250918.842 5 -3312400.651 3 23905134.258 23905131.192 23905133.449
+ 30.200 23.000
+ -5432271.036 4 -4232937.966 3 23585551.116 23585549.136 23585550.767
+ 25.900 23.800
+ -22805163.775 7 -17770249.524 8 20254326.752 20254323.652 20254325.673
+ 42.500 49.400
+ -8774456.320 5 -6837240.853 4 22974275.390 22974273.164 22974274.083
+ 33.800 27.100
+ -19350979.153 7 -15078684.259 6 20979342.389 20979336.672 20979341.064
+ 46.900 41.700
+ -14434188.809 7 -11247414.440 6 21792318.092 21792316.051 21792317.429
+ 45.600 38.600
+ 06 1 2 10 35 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9295267.916 6 -7243066.949 5 22493512.137 22493511.477 22493511.667
+ 36.800 31.800
+ -2992334.691 3 -2331687.899 3 23990422.978 23990422.381 23990422.264
+ 23.000 20.500
+ -4200292.201 4 -3272951.307 3 23914767.867 23914765.469 23914767.022
+ 29.200 22.600
+ -5533763.370 4 -4312022.899 4 23566237.796 23566235.427 23566237.782
+ 27.100 24.200
+ -22813182.524 7 -17776497.892 8 20252800.875 20252797.692 20252799.877
+ 42.800 49.200
+ -8697265.745 5 -6777092.382 4 22988964.185 22988962.120 22988963.084
+ 34.300 26.200
+ -19407591.346 7 -15122797.654 6 20968569.326 20968563.770 20968568.049
+ 46.900 41.900
+ -14379562.394 7 -11204848.408 6 21802713.114 21802710.929 21802712.490
+ 45.800 38.400
+ 06 1 2 10 35 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -9203248.588 6 -7171363.624 5 22511022.818 22511022.199 22511022.108
+ 36.200 32.000
+ -3103795.093 4 -2418540.094 3 23969212.169 23969212.666 23969211.617
+ 24.600 23.800
+ -4149195.307 4 -3233135.543 3 23924490.641 23924488.282 23924489.929
+ 28.100 19.300
+ -5635081.002 4 -4390971.674 4 23546958.449 23546955.291 23546958.109
+ 28.800 25.300
+ -22820684.995 7 -17782343.967 8 20251373.423 20251369.988 20251372.241
+ 42.700 49.300
+ -8619723.976 5 -6716670.246 4 23003719.693 23003717.966 23003718.624
+ 33.900 26.800
+ -19463743.190 7 -15166552.337 6 20957883.823 20957878.371 20957882.542
+ 46.700 41.900
+ -14324726.411 7 -11162119.074 6 21813147.980 21813145.859 21813147.394
+ 45.700 38.200
+ 06 1 2 10 36 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9110931.463 6 -7099428.229 5 22528590.787 22528589.264 22528589.699
+ 36.200 31.300
+ -3215194.000 4 -2505344.404 4 23948013.526 23948014.195 23948013.333
+ 24.900 24.200
+ -4097629.658 4 -3192954.486 3 23934303.100 23934301.171 23934302.520
+ 27.400 21.600
+ -5736221.327 4 -4469782.294 4 23527711.582 23527709.145 23527711.245
+ 28.100 25.300
+ -22827671.441 7 -17787787.946 8 20250043.862 20250040.477 20250042.740
+ 42.700 49.200
+ -8541833.889 5 -6655976.698 4 23018541.965 23018539.981 23018540.600
+ 34.100 26.800
+ -19519432.533 7 -15209946.628 7 20947286.717 20947281.123 20947285.370
+ 46.800 42.000
+ -14269680.948 7 -11119226.503 6 21823622.614 21823620.837 21823622.071
+ 45.600 38.500
+ 06 1 2 10 36 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -9018318.141 5 -7027262.032 5 22546214.333 22546213.176 22546213.289
+ 35.700 30.600
+ -3326528.614 4 -2592098.608 4 23926826.911 23926827.644 23926826.883
+ 24.900 24.200
+ -4045596.768 4 -3152409.423 3 23944204.508 23944203.472 23944203.783
+ 27.600 23.000
+ -5837182.227 4 -4548453.121 4 23508500.090 23508496.812 23508499.715
+ 29.000 25.300
+ -22834142.320 7 -17792830.181 8 20248812.407 20248809.048 20248811.321
+ 42.700 49.300
+ -8463598.850 5 -6595014.352 4 23033429.194 23033427.396 23033427.978
+ 33.400 25.300
+ -19574657.169 7 -15252978.809 7 20936777.771 20936772.283 20936776.472
+ 46.900 42.100
+ -14214426.379 7 -11076171.000 6 21834137.644 21834135.286 21834136.814
+ 45.600 38.100
+ 06 1 2 10 37 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8925410.124 5 -6954866.217 5 22563893.471 22563892.917 22563892.857
+ 35.300 30.600
+ -3437795.763 4 -2678800.240 4 23905652.921 23905654.427 23905652.693
+ 24.600 24.900
+ -3993098.224 4 -3111501.450 3 23954195.181 23954193.574 23954194.260
+ 29.000 23.400
+ -5937961.334 4 -4626982.326 4 23489322.274 23489319.053 23489321.774
+ 29.700 24.600
+ -22840098.379 7 -17797471.264 8 20247678.999 20247675.721 20247677.893
+ 42.800 49.300
+ -8385021.666 5 -6533785.389 4 23048381.956 23048380.010 23048380.822
+ 33.100 25.900
+ -19629414.886 7 -15295647.158 7 20926357.560 20926352.158 20926356.396
+ 47.100 42.100
+ -14158962.920 7 -11032952.723 6 21844691.794 21844689.677 21844691.201
+ 45.500 37.900
+ 06 1 2 10 37 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -8832209.071 5 -6882242.052 5 22581628.645 22581628.909 22581628.601
+ 35.800 30.600
+ -3548992.803 4 -2765447.242 3 23884494.073 23884493.940 23884493.559
+ 26.200 21.100
+ -3940135.694 4 -3070231.932 3 23964273.019 23964272.056 23964272.576
+ 27.600 23.000
+ -6038555.914 5 -4705367.700 3 23470180.124 23470176.570 23470179.603
+ 30.400 23.400
+ -22845540.377 7 -17801711.783 8 20246643.476 20246640.195 20246642.354
+ 42.700 49.400
+ -8306105.250 5 -6472292.105 4 23063399.645 23063397.552 23063398.245
+ 33.400 26.200
+ -19683703.386 7 -15337949.884 7 20916026.915 20916021.515 20916025.693
+ 47.200 42.200
+ -14103290.859 7 -10989571.901 6 21855285.978 21855283.755 21855285.305
+ 45.300 38.100
+ 06 1 2 10 38 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8738716.641 5 -6809390.844 5 22599420.165 22599419.713 22599419.622
+ 35.500 30.400
+ -3660116.785 4 -2852037.363 3 23863348.835 23863348.159 23863347.517
+ 25.600 21.600
+ -3886710.685 4 -3028602.057 3 23974440.453 23974438.268 23974439.845
+ 29.700 23.400
+ -6138963.817 4 -4783607.616 3 23451072.333 23451069.523 23451072.065
+ 27.600 23.800
+ -22850469.163 7 -17805552.397 8 20245705.561 20245702.281 20245704.443
+ 42.900 49.400
+ -8226852.876 5 -6410537.038 4 23078480.544 23078479.050 23078479.486
+ 33.000 25.900
+ -19737520.389 7 -15379885.209 7 20905786.231 20905780.430 20905784.900
+ 47.500 42.200
+ -14047410.451 7 -10946028.724 6 21865919.780 21865917.343 21865919.083
+ 45.400 37.900
+ 06 1 2 10 38 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -8644934.477 6 -6736313.851 5 22617266.926 22617265.797 22617266.233
+ 36.100 30.800
+ -3771164.835 3 -2938568.276 3 23842217.287 23842216.230 23842215.572
+ 23.400 21.600
+ -3832825.012 4 -2986613.252 4 23984694.078 23984692.678 23984693.401
+ 28.100 24.600
+ -6239182.518 4 -4861700.119 4 23432001.049 23431998.507 23432000.817
+ 27.400 24.600
+ -22854884.608 7 -17808992.998 8 20244865.342 20244862.057 20244864.273
+ 42.700 49.300
+ -8147267.418 5 -6348522.421 4 23093625.130 23093623.721 23093624.058
+ 33.600 26.200
+ -19790863.751 7 -15421451.467 7 20895634.967 20895629.470 20895633.771
+ 47.400 42.200
+ -13991321.906 7 -10902323.367 6 21876592.984 21876590.581 21876592.290
+ 45.300 37.800
+ 06 1 2 10 39 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8550864.338 5 -6663012.481 5 22635166.953 22635166.886 22635166.675
+ 35.100 30.200
+ -3882134.044 4 -3025037.776 3 23821100.924 23821099.355 23821098.803
+ 24.200 23.000
+ -3778480.053 4 -2944266.524 4 23995035.175 23995034.589 23995034.447
+ 27.900 24.600
+ -6339209.507 4 -4939643.221 4 23412966.696 23412963.719 23412966.578
+ 29.500 24.200
+ -22858787.628 7 -17812034.314 8 20244122.668 20244119.297 20244121.573
+ 42.900 49.400
+ -8067352.005 5 -6286250.697 4 23108833.042 23108830.835 23108831.701
+ 33.200 24.600
+ -19843731.399 7 -15462647.038 7 20885574.431 20885569.187 20885573.251
+ 47.100 42.500
+ -13935025.579 7 -10858456.104 6 21887305.877 21887303.624 21887305.075
+ 45.200 37.700
+ 06 1 2 10 39 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -8456507.955 5 -6589488.046 5 22653122.212 22653122.173 22653122.170
+ 34.600 30.400
+ -3993021.086 4 -3111443.197 3 23799999.013 23799998.297 23799997.701
+ 27.600 23.000
+ -3723677.762 4 -2901563.469 3 24005464.029 24005462.457 24005463.317
+ 27.100 23.000
+ -6439042.319 5 -5017435.023 4 23393969.538 23393966.578 23393969.040
+ 30.200 25.300
+ -22862179.098 7 -17814677.015 8 20243477.179 20243473.919 20243476.082
+ 42.800 49.400
+ -7987109.704 5 -6223724.249 3 23124102.441 23124100.391 23124101.262
+ 33.800 23.800
+ -19896121.144 7 -15503470.210 7 20875605.093 20875599.832 20875603.782
+ 47.000 42.700
+ -13878521.645 7 -10814427.068 6 21898057.955 21898055.966 21898057.257
+ 44.900 37.800
+ 06 1 2 10 40 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8361866.886 5 -6515741.803 4 22671132.766 22671131.997 22671131.895
+ 34.500 29.700
+ -4103823.438 4 -3197782.682 3 23778913.733 23778913.013 23778912.449
+ 27.600 22.100
+ -3668419.715 4 -2858505.252 3 24015980.183 24015977.746 24015979.054
+ 27.900 23.400
+ -6538678.385 4 -5095073.509 4 23375009.785 23375006.808 23375009.108
+ 29.700 26.500
+ -22865059.824 7 -17816921.725 8 20242929.001 20242925.761 20242927.895
+ 42.800 49.600
+ -7906543.253 5 -6160945.229 3 23139433.774 23139431.625 23139432.432
+ 33.500 23.800
+ -19948030.846 7 -15543919.326 7 20865727.130 20865721.754 20865725.921
+ 47.300 42.700
+ -13821810.404 7 -10770236.495 6 21908849.948 21908847.571 21908849.112
+ 44.900 37.400
+ 06 1 2 10 40 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -8266942.841 5 -6441775.040 4 22689196.307 22689195.099 22689195.458
+ 35.100 28.800
+ -4214538.189 4 -3284053.909 3 23757845.489 23757844.440 23757844.561
+ 28.600 19.300
+ -3612707.607 4 -2815093.221 3 24026580.518 24026578.774 24026580.063
+ 27.100 19.300
+ -6638115.619 4 -5172557.057 4 23356087.206 23356083.966 23356086.777
+ 28.100 25.900
+ -22867430.202 7 -17818768.768 8 20242477.967 20242474.698 20242476.896
+ 42.900 49.600
+ -7825655.856 5 -6097916.111 4 23154826.087 23154824.202 23154824.854
+ 32.800 24.900
+ -19999458.424 7 -15583992.764 7 20855940.816 20855935.316 20855939.522
+ 47.400 42.600
+ -13764892.052 7 -10725884.530 6 21919680.858 21919678.869 21919680.214
+ 44.800 37.600
+ 06 1 2 10 41 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8171737.488 5 -6367589.079 4 22707312.925 22707312.572 22707312.458
+ 35.200 29.700
+ -4325162.335 4 -3370254.501 3 23736793.434 23736793.829 23736792.798
+ 24.900 18.600
+ -3556543.164 4 -2771328.701 3 24037269.099 24037266.944 24037268.160
+ 28.600 21.100
+ -6737351.195 4 -5249883.478 4 23337203.145 23337199.999 23337202.645
+ 28.600 24.900
+ -22869291.089 7 -17820218.810 8 20242123.819 20242120.572 20242122.780
+ 42.800 49.500
+ -7744450.811 5 -6034639.501 4 23170278.554 23170277.071 23170277.510
+ 31.300 24.900
+ -20050401.548 7 -15623688.705 7 20846246.698 20846241.213 20846245.506
+ 47.500 42.500
+ -13707766.907 7 -10681371.433 6 21930551.820 21930549.402 21930550.979
+ 44.700 37.300
+ 06 1 2 10 41 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -8076252.604 5 -6293185.304 5 22725483.228 22725482.726 22725482.579
+ 33.900 30.200
+ -4435692.836 4 -3456382.184 2 23715760.428 23715759.493 23715759.974
+ 26.500 17.800
+ -3499928.184 4 -2727213.113 3 24048042.177 24048040.876 24048041.384
+ 28.100 22.100
+ -6836382.815 5 -5327050.958 4 23318358.582 23318355.392 23318358.032
+ 30.100 26.500
+ -22870643.188 7 -17821272.396 8 20241866.555 20241863.280 20241865.456
+ 42.800 49.500
+ -7662931.037 5 -5971117.645 4 23185791.699 23185789.730 23185790.334
+ 30.600 25.600
+ -20100858.152 7 -15663005.542 7 20836645.139 20836639.623 20836643.857
+ 47.400 42.700
+ -13650435.085 7 -10636697.286 6 21941461.765 21941459.178 21941461.023
+ 44.800 37.300
+ 06 1 2 10 42 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7980489.927 5 -6218565.065 5 22743706.448 22743705.724 22743705.532
+ 34.400 30.400
+ -4546126.935 4 -3542434.682 3 23694744.632 23694744.912 23694745.050
+ 26.200 19.900
+ -3442864.258 4 -2682747.720 3 24058900.808 24058899.176 24058900.117
+ 28.400 22.600
+ -6935207.636 4 -5404057.330 4 23299552.280 23299549.495 23299551.924
+ 29.500 26.800
+ -22871487.403 7 -17821930.221 8 20241705.957 20241702.630 20241704.888
+ 43.100 49.500
+ -7581099.473 5 -5907352.813 4 23201363.834 23201362.041 23201362.461
+ 32.600 24.900
+ -20150826.195 7 -15701941.681 7 20827136.388 20827130.852 20827135.107
+ 47.300 42.700
+ -13592897.094 7 -10591862.495 6 21952410.371 21952408.453 21952409.803
+ 44.700 37.200
+ 06 1 2 10 42 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -7884451.184 5 -6143729.706 4 22761981.779 22761981.292 22761981.085
+ 33.500 29.500
+ -4656461.624 4 -3628409.721 3 23673749.250 23673749.311 23673749.112
+ 27.100 21.600
+ -3385353.044 4 -2637933.799 3 24069845.082 24069843.976 24069844.495
+ 27.100 23.400
+ -7033823.923 5 -5480901.173 4 23280786.356 23280783.669 23280785.963
+ 30.400 26.800
+ -22871824.306 7 -17822192.739 8 20241641.728 20241638.502 20241640.844
+ 43.200 49.400
+ -7498959.172 5 -5843347.415 4 23216994.885 23216992.737 23216993.642
+ 32.100 24.900
+ -20200303.596 7 -15740495.500 7 20817721.197 20817715.735 20817719.987
+ 47.200 42.700
+ -13535152.976 7 -10546867.087 6 21963398.588 21963396.838 21963398.075
+ 44.400 37.200
+ 06 1 2 10 43 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7788138.076 5 -6068680.553 4 22780309.856 22780309.003 22780309.150
+ 34.600 29.000
+ -4766693.871 4 -3714304.979 3 23652772.933 23652772.728 23652772.105
+ 26.200 23.000
+ -3327396.555 4 -2592772.914 3 24080874.250 24080872.002 24080873.322
+ 27.400 21.600
+ -7132228.396 5 -5557579.986 4 23262060.652 23262057.429 23262060.219
+ 31.300 25.300
+ -22871654.653 7 -17822060.546 8 20241673.986 20241670.734 20241672.991
+ 43.200 49.500
+ -7416513.322 5 -5779103.920 4 23232683.599 23232681.712 23232682.263
+ 32.000 24.600
+ -20249288.264 7 -15778665.370 7 20808399.831 20808394.253 20808398.539
+ 47.300 43.000
+ -13477203.062 7 -10501711.316 6 21974426.354 21974424.270 21974425.725
+ 44.500 37.200
+ 06 1 2 10 43 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -7691552.401 5 -5993419.022 4 22798689.684 22798688.905 22798688.755
+ 34.000 29.200
+ -4876820.800 4 -3800118.105 4 23631818.020 23631816.431 23631816.475
+ 25.600 24.600
+ -3268996.448 4 -2547266.337 3 24091986.681 24091985.062 24091986.038
+ 27.600 21.100
+ -7230418.866 5 -5634092.043 4 23243375.737 23243372.799 23243375.275
+ 31.300 25.600
+ -22870979.116 7 -17821534.154 8 20241802.542 20241799.338 20241801.477
+ 43.100 49.500
+ -7333765.214 5 -5714624.906 4 23248430.032 23248428.219 23248428.824
+ 32.600 24.900
+ -20297778.111 7 -15816449.667 7 20799172.760 20799167.128 20799171.455
+ 47.500 43.100
+ -13419047.564 7 -10456395.348 6 21985493.180 21985490.968 21985492.415
+ 44.400 37.200
+ 06 1 2 10 44 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7594695.858 5 -5917946.420 4 22817120.693 22817120.020 22817120.010
+ 34.000 28.800
+ -4986839.380 4 -3885846.810 4 23610882.527 23610880.771 23610880.511
+ 26.200 25.300
+ -3210154.679 4 -2501415.583 3 24103185.443 24103182.619 24103184.239
+ 28.600 23.400
+ -7328392.805 4 -5710435.384 4 23224732.015 23224728.930 23224731.323
+ 28.800 25.900
+ -22869798.754 7 -17820614.392 8 20242027.316 20242023.944 20242026.134
+ 43.200 49.500
+ -7250717.617 5 -5649912.515 4 23264233.269 23264231.427 23264232.235
+ 32.400 24.600
+ -20345770.938 7 -15853846.674 7 20790039.594 20790034.311 20790038.461
+ 47.300 43.100
+ -13360686.800 7 -10410919.428 6 21996598.370 21996596.554 21996597.801
+ 44.300 36.900
+ 06 1 2 10 44 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -7497570.323 5 -5842264.178 4 22835602.110 22835602.124 22835602.296
+ 33.600 27.900
+ -5096746.618 4 -3971488.744 4 23589967.174 23589965.838 23589965.571
+ 26.200 25.600
+ -3150872.648 4 -2455221.784 3 24114465.276 24114463.433 24114464.839
+ 27.400 22.100
+ -7426147.679 5 -5786608.013 4 23206129.532 23206126.575 23206129.117
+ 31.300 26.200
+ -22868114.387 7 -17819301.896 8 20242347.754 20242344.450 20242346.667
+ 43.100 49.400
+ -7167373.710 5 -5584969.218 3 23280093.730 23280091.199 23280092.250
+ 32.300 21.600
+ -20393264.498 7 -15890854.642 7 20781001.940 20780996.457 20781000.687
+ 47.200 42.800
+ -13302121.028 7 -10365283.765 6 22007743.209 22007741.264 22007742.618
+ 44.300 36.900
+ 06 1 2 10 45 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7400177.392 5 -5766373.632 4 22854135.562 22854135.753 22854135.397
+ 32.800 29.200
+ -5206539.709 4 -4057041.771 4 23569074.728 23569073.077 23569073.257
+ 28.800 26.800
+ -3091152.646 4 -2408686.715 3 24125830.051 24125827.787 24125829.249
+ 28.100 21.600
+ -7523681.113 5 -5862608.094 4 23187569.483 23187566.755 23187569.303
+ 31.500 27.400
+ -22865926.822 7 -17817597.294 8 20242764.100 20242760.688 20242762.957
+ 43.000 49.300
+ -7083736.559 5 -5519797.436 3 23296009.137 23296006.906 23296007.893
+ 31.600 23.800
+ -20440257.308 7 -15927472.419 7 20772059.482 20772053.936 20772058.279
+ 47.100 42.900
+ -13243350.398 7 -10319488.481 6 22018927.229 22018925.001 22018926.505
+ 44.300 36.700
+ 06 1 2 10 45 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -7302518.868 5 -5690276.113 4 22872720.365 22872719.202 22872719.619
+ 33.900 27.400
+ -5316215.576 4 -4142503.399 4 23548203.786 23548201.830 23548201.973
+ 29.200 24.900
+ -3030996.190 4 -2361811.569 3 24137276.745 24137275.197 24137276.147
+ 26.800 22.600
+ -7620990.347 5 -5938433.469 4 23169051.798 23169049.540 23169051.596
+ 30.200 27.100
+ -22863236.874 7 -17815501.220 8 20243275.897 20243272.577 20243274.810
+ 43.000 49.400
+ -6999809.238 5 -5454399.542 4 23311979.831 23311978.065 23311978.620
+ 31.300 24.600
+ -20486746.894 7 -15963698.070 7 20763212.886 20763207.349 20763211.589
+ 47.000 43.100
+ -13184375.290 7 -10273533.855 6 22030149.494 22030147.623 22030149.071
+ 44.300 36.800
+ 06 1 2 10 46 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7204596.643 5 -5613973.088 4 22891354.228 22891353.243 22891353.432
+ 32.800 27.400
+ -5425771.361 4 -4227871.486 4 23527356.055 23527354.354 23527354.543
+ 27.600 24.600
+ -2970405.153 4 -2314597.783 3 24148806.470 24148805.338 24148806.230
+ 25.900 20.500
+ -7718072.893 5 -6014082.177 4 23150577.758 23150575.138 23150577.587
+ 31.100 25.900
+ -22860045.427 7 -17813014.377 8 20243883.212 20243879.888 20243882.076
+ 43.000 49.300
+ -6915594.810 5 -5388777.948 4 23328005.146 23328003.430 23328004.044
+ 30.600 24.200
+ -20532731.424 7 -15999530.167 7 20754462.520 20754456.965 20754461.153
+ 47.200 43.600
+ -13125195.873 7 -10227420.031 6 22041411.177 22041408.975 22041410.583
+ 44.400 36.500
+ 06 1 2 10 46 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -7106412.356 5 -5537465.866 4 22910038.592 22910037.131 22910037.420
+ 33.000 28.800
+ -5535204.040 4 -4313143.658 3 23506531.255 23506529.344 23506529.856
+ 27.400 22.100
+ -2909381.543 4 -2267046.919 4 24160419.402 24160418.132 24160418.622
+ 24.900 24.200
+ -7814926.174 5 -6089552.285 4 23132147.620 23132144.456 23132147.301
+ 32.100 26.500
+ -22856353.575 7 -17810137.601 8 20244585.600 20244582.433 20244584.569
+ 43.200 49.400
+ -6831096.436 5 -5322935.100 4 23344085.112 23344083.096 23344083.693
+ 30.800 24.200
+ -20578208.993 7 -16034967.228 7 20745807.992 20745802.765 20745806.841
+ 47.400 43.300
+ -13065812.467 7 -10181147.253 6 22052711.511 22052709.179 22052710.810
+ 44.000 36.400
+ 06 1 2 10 47 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7007967.869 5 -5460755.892 4 22928772.737 22928770.442 22928771.170
+ 32.600 27.600
+ -5644510.557 4 -4398317.521 3 23485730.186 23485729.203 23485729.094
+ 27.600 23.400
+ -2847927.086 4 -2219160.346 3 24172114.104 24172112.439 24172113.247
+ 25.300 22.600
+ -7911547.957 5 -6164841.984 4 23113760.934 23113758.183 23113760.528
+ 30.800 26.500
+ -22852161.714 7 -17806871.210 8 20245383.569 20245380.087 20245382.404
+ 43.300 49.400
+ -6746317.380 5 -5256873.536 4 23360217.702 23360215.898 23360216.690
+ 31.000 24.600
+ -20623177.283 7 -16070007.456 7 20737250.901 20737245.425 20737249.691
+ 47.300 43.100
+ -13006225.381 7 -10134715.761 6 22064050.545 22064048.388 22064049.768
+ 44.000 36.400
+ 06 1 2 10 47 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -6909264.969 5 -5383844.563 4 22947555.155 22947553.553 22947553.784
+ 32.700 28.800
+ -5753687.852 4 -4483390.706 4 23464954.452 23464953.681 23464953.372
+ 29.000 25.300
+ -2786043.792 4 -2170939.587 3 24183890.525 24183888.150 24183889.759
+ 28.600 22.100
+ -8007935.749 5 -6239949.326 4 23095418.960 23095416.221 23095418.556
+ 31.800 27.400
+ -22847470.979 7 -17803216.090 8 20246275.951 20246272.731 20246274.905
+ 43.200 49.400
+ -6661260.712 5 -5190595.636 3 23376403.560 23376401.725 23376402.240
+ 30.100 23.800
+ -20667634.397 7 -16104649.363 7 20728790.990 20728785.463 20728789.767
+ 47.300 42.900
+ -12946434.741 7 -10088125.655 6 22075428.168 22075426.255 22075427.573
+ 44.000 36.500
+ 06 1 2 10 48 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6810305.347 5 -5306733.191 4 22966385.471 22966384.240 22966384.633
+ 33.200 25.900
+ -5862733.173 4 -4568361.049 3 23444204.121 23444202.498 23444202.976
+ 29.900 21.600
+ -2723733.390 4 -2122386.042 3 24195747.923 24195745.671 24195746.689
+ 26.800 23.400
+ -8104086.454 5 -6314871.962 4 23077122.062 23077119.352 23077121.807
+ 33.500 27.100
+ -22842282.445 7 -17799173.074 8 20247263.507 20247260.057 20247262.345
+ 43.300 49.400
+ -6575929.612 4 -5124103.896 3 23392641.025 23392639.671 23392639.865
+ 29.000 23.000
+ -20711578.610 7 -16138891.609 7 20720428.697 20720423.223 20720427.503
+ 47.300 43.400
+ -12886440.783 7 -10041377.123 6 22086844.205 22086842.465 22086843.912
+ 43.800 36.200
+ 06 1 2 10 48 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -6711090.958 5 -5229423.283 4 22985264.748 22985264.636 22985264.888
+ 33.000 27.400
+ -5971643.582 4 -4653226.235 3 23423478.626 23423477.484 23423477.641
+ 28.600 23.000
+ -2660997.837 4 -2073501.209 3 24207685.927 24207683.388 24207685.175
+ 29.200 22.100
+ -8199997.715 5 -6389608.026 4 23058870.032 23058867.730 23058870.127
+ 32.400 27.100
+ -22836596.886 7 -17794742.769 8 20248345.254 20248342.023 20248344.194
+ 43.300 49.400
+ -6490327.160 5 -5057400.705 3 23408931.379 23408929.357 23408930.077
+ 30.800 22.100
+ -20755007.758 7 -16172732.501 7 20712164.446 20712159.072 20712163.248
+ 47.100 43.500
+ -12826243.827 7 -9994470.412 6 22098299.490 22098297.720 22098299.017
+ 43.700 36.500
+ 06 1 2 10 49 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6611623.560 5 -5151916.231 4 23004192.099 23004192.929 23004192.427
+ 31.600 28.800
+ -6080415.776 4 -4737983.771 4 23402779.721 23402779.275 23402778.819
+ 26.500 24.200
+ -2597839.084 4 -2024286.586 2 24219704.630 24219701.719 24219703.778
+ 28.400 17.800
+ -8295667.203 5 -6464155.662 4 23040665.490 23040662.416 23040665.262
+ 32.000 26.800
+ -22830415.505 7 -17789926.105 8 20249521.567 20249518.366 20249520.465
+ 43.400 49.400
+ -6404456.289 4 -4990488.347 3 23425271.891 23425269.733 23425270.627
+ 29.700 21.100
+ -20797920.012 7 -16206170.619 7 20703998.578 20703993.208 20703997.324
+ 47.300 43.700
+ -12765844.239 7 -9947405.802 6 22109793.474 22109791.452 22109792.880
+ 43.800 36.400
+ 06 1 2 10 49 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -6511904.889 5 -5074213.422 4 23023168.783 23023168.247 23023168.207
+ 31.800 27.400
+ -6189047.166 4 -4822631.572 3 23382108.885 23382107.008 23382107.387
+ 27.600 23.000
+ -2534259.078 3 -1974743.713 3 24231803.302 24231801.716 24231802.366
+ 23.400 18.600
+ -8391092.354 5 -6538512.913 4 23022506.218 23022504.143 23022506.227
+ 32.300 28.800
+ -22823738.991 7 -17784723.625 8 20250792.111 20250788.845 20250790.975
+ 43.500 49.500
+ -6318320.441 4 -4923369.537 3 23441662.452 23441661.130 23441661.373
+ 29.000 21.100
+ -20840313.183 7 -16239204.260 7 20695931.341 20695925.988 20695930.138
+ 47.200 43.500
+ -12705242.096 7 -9900183.359 6 22121325.843 22121323.680 22121325.114
+ 43.600 36.500
+ 06 1 2 10 50 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6411936.824 5 -4996316.229 4 23042192.284 23042191.616 23042191.414
+ 31.000 27.600
+ -6297534.360 4 -4907166.974 4 23361464.640 23361463.144 23361463.125
+ 28.800 25.900
+ -2470259.781 4 -1924874.121 3 24243981.304 24243980.200 24243980.687
+ 25.300 21.600
+ -8486270.367 5 -6612677.608 4 23004394.807 23004392.035 23004394.542
+ 33.400 28.400
+ -22816568.740 7 -17779136.412 8 20252156.567 20252153.213 20252155.480
+ 43.500 49.300
+ -6231922.356 4 -4856046.376 2 23458103.574 23458101.375 23458102.267
+ 27.900 15.100
+ -20882185.507 7 -16271832.044 7 20687963.246 20687958.041 20687962.020
+ 47.100 43.800
+ -12644437.703 7 -9852803.315 6 22132896.587 22132894.399 22132895.904
+ 44.000 36.500
+ 06 1 2 10 50 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -6311721.126 5 -4918226.107 4 23061263.899 23061262.404 23061262.434
+ 32.300 27.600
+ -6405874.422 5 -4991587.795 4 23340848.058 23340846.699 23340846.683
+ 30.600 26.800
+ -2405842.936 4 -1874679.179 3 24256240.466 24256238.332 24256239.472
+ 27.600 21.600
+ -8581198.679 5 -6686647.718 4 22986330.563 22986327.770 22986330.201
+ 32.400 28.400
+ -22808904.993 7 -17773164.651 8 20253614.909 20253611.569 20253613.864
+ 43.500 49.300
+ -6145265.167 4 -4788521.312 3 23474593.868 23474591.984 23474592.890
+ 27.600 18.600
+ -20923535.447 7 -16304052.772 7 20680094.690 20680089.311 20680093.420
+ 47.100 43.800
+ -12583431.380 7 -9805265.930 6 22144505.537 22144503.525 22144505.059
+ 43.900 36.100
+ 06 1 2 10 51 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6211259.745 5 -4839944.534 4 23080381.071 23080379.443 23080379.540
+ 31.600 27.600
+ -6514064.396 5 -5075891.633 4 23320260.394 23320258.468 23320258.796
+ 31.100 24.600
+ -2341010.789 4 -1824160.633 3 24268576.918 24268575.193 24268575.932
+ 26.500 21.100
+ -8675874.647 5 -6760421.196 4 22968315.193 22968311.350 22968314.630
+ 33.800 27.900
+ -22800749.280 7 -17766809.541 8 20255166.940 20255163.543 20255165.841
+ 43.500 49.300
+ -6058352.189 4 -4720796.939 2 23491132.893 23491130.944 23491131.781
+ 29.200 17.800
+ -20964360.435 7 -16335864.451 7 20672325.880 20672320.648 20672324.642
+ 47.100 44.000
+ -12522223.257 7 -9757571.297 6 22156153.250 22156150.980 22156152.524
+ 43.600 36.100
+ 06 1 2 10 51 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -6110554.470 5 -4761472.927 4 23099543.721 23099542.756 23099542.879
+ 30.600 27.100
+ -6622101.341 4 -5160076.227 4 23299701.140 23299699.881 23299700.029
+ 29.900 25.600
+ -2275765.117 4 -1773319.856 3 24280992.689 24280991.359 24280992.095
+ 26.500 22.100
+ -8770296.182 5 -6833996.424 4 22950347.143 22950343.577 22950346.483
+ 33.900 28.100
+ -22792102.656 7 -17760071.906 8 20256812.380 20256808.912 20256811.322
+ 43.700 49.200
+ -5971186.666 5 -4652875.763 3 23507720.406 23507718.139 23507719.134
+ 30.600 19.300
+ -21004658.760 7 -16367265.738 7 20664657.460 20664652.066 20664656.182
+ 47.100 43.900
+ -12460813.770 7 -9709719.750 6 22167839.412 22167837.015 22167838.509
+ 43.400 36.600
+ 06 1 2 10 52 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6009607.147 5 -4682812.702 4 23118752.810 23118752.513 23118752.406
+ 30.600 26.800
+ -6729982.585 5 -5244139.518 4 23279172.484 23279170.422 23279170.806
+ 30.400 25.900
+ -2210107.923 4 -1722158.398 2 24293486.977 24293485.657 24293485.963
+ 26.500 17.800
+ -8864460.285 5 -6907371.032 4 22932427.318 22932424.940 22932427.256
+ 32.700 27.900
+ -22782966.003 7 -17752952.429 8 20258551.123 20258547.571 20258549.995
+ 43.700 49.300
+ -5883771.868 5 -4584760.353 3 23524355.104 23524352.890 23524353.897
+ 30.100 19.300
+ -21044428.914 7 -16398255.466 7 20657089.473 20657084.062 20657088.220
+ 47.000 43.800
+ -12399203.085 7 -9661711.437 6 22179563.459 22179561.186 22179562.548
+ 43.500 36.600
+ 06 1 2 10 52 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -5908419.674 5 -4603965.344 4 23138007.465 23138007.838 23138007.395
+ 30.200 25.900
+ -6837704.777 4 -5328078.848 4 23258674.290 23258671.614 23258672.313
+ 28.800 26.500
+ -2144041.177 4 -1670677.833 3 24306058.721 24306057.159 24306058.191
+ 26.200 19.900
+ -8958364.236 5 -6980542.958 4 22914558.536 22914555.408 22914558.175
+ 33.500 28.400
+ -22773340.386 7 -17745451.946 8 20260382.684 20260379.234 20260381.555
+ 43.700 49.400
+ -5796110.742 5 -4516453.007 3 23541036.428 23541034.575 23541035.309
+ 31.000 21.600
+ -21083668.751 7 -16428831.961 7 20649622.563 20649617.085 20649621.241
+ 47.300 43.900
+ -12337391.445 7 -9613546.527 5 22191325.306 22191323.340 22191324.678
+ 43.100 35.800
+ 06 1 2 10 53 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5806993.978 5 -4524932.356 4 23157309.647 23157308.560 23157308.679
+ 31.500 26.500
+ -6945264.953 4 -5411891.915 4 23238205.836 23238203.707 23238203.849
+ 27.900 27.900
+ -2077566.993 4 -1618879.726 3 24318709.018 24318706.625 24318708.113
+ 26.500 18.600
+ -9052005.934 5 -7053510.514 5 22896739.377 22896736.265 22896738.836
+ 33.000 30.100
+ -22763226.988 7 -17737571.370 8 20262307.089 20262303.761 20262306.010
+ 43.700 49.300
+ -5708206.160 5 -4447955.963 3 23557764.180 23557762.138 23557762.794
+ 31.100 23.400
+ -21122376.658 7 -16458993.964 7 20642256.709 20642251.151 20642255.446
+ 47.500 44.100
+ -12275379.148 7 -9565225.265 5 22203126.092 22203123.777 22203125.282
+ 43.100 35.500
+ 06 1 2 10 53 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -5705331.998 5 -4445715.256 4 23176655.637 23176653.977 23176654.604
+ 31.600 26.500
+ -7052660.048 4 -5495576.361 4 23217768.363 23217766.964 23217767.038
+ 29.000 26.800
+ -2010687.351 4 -1566765.752 3 24331434.943 24331433.651 24331434.068
+ 25.300 19.900
+ -9145382.427 5 -7126271.412 4 22878969.551 22878967.313 22878969.451
+ 32.700 29.700
+ -22752626.821 7 -17729311.495 8 20264324.123 20264320.936 20264323.052
+ 43.600 49.200
+ -5620061.465 5 -4379271.816 4 23574537.570 23574535.745 23574536.220
+ 30.100 24.200
+ -21160550.609 7 -16488739.902 7 20634992.405 20634986.944 20634991.169
+ 47.400 44.100
+ -12213166.476 7 -9516747.864 5 22214964.621 22214962.578 22214963.884
+ 42.900 35.600
+ 06 1 2 10 54 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5603435.592 5 -4366315.475 4 23196045.969 23196044.535 23196044.877
+ 31.300 26.200
+ -7159887.036 5 -5579129.825 4 23197364.263 23197362.312 23197362.656
+ 30.800 25.900
+ -1943404.250 4 -1514337.334 3 24344238.817 24344236.977 24344238.110
+ 27.100 18.600
+ -9238491.272 5 -7198823.743 4 22861252.101 22861249.234 22861251.749
+ 33.000 28.800
+ -22741540.993 7 -17720673.186 8 20266433.813 20266430.506 20266432.686
+ 43.400 49.200
+ -5531679.944 5 -4310403.131 3 23591355.846 23591354.097 23591354.861
+ 30.800 23.400
+ -21198188.911 7 -16518068.447 7 20627829.865 20627824.469 20627828.685
+ 47.300 44.100
+ -12150753.693 7 -9468114.537 5 22226841.163 22226839.391 22226840.650
+ 42.700 35.200
+ 06 1 2 10 54 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -5501306.602 5 -4286734.461 4 23215480.062 23215479.029 23215479.109
+ 31.000 25.600
+ -7266942.922 5 -5662549.959 4 23176991.332 23176990.274 23176990.119
+ 31.500 26.500
+ -1875719.623 4 -1461596.060 3 24357118.798 24357117.632 24357118.217
+ 25.600 22.600
+ -9331329.737 5 -7271165.410 4 22843585.679 22843582.705 22843585.293
+ 33.900 29.000
+ -22729970.516 7 -17711657.226 8 20268635.532 20268632.309 20268634.398
+ 43.400 49.300
+ -5443064.806 5 -4241352.391 3 23608218.997 23608216.828 23608217.775
+ 30.400 23.400
+ -21235289.761 7 -16546978.199 7 20620769.952 20620764.542 20620768.650
+ 47.000 44.200
+ -12088140.911 7 -9419325.370 5 22238756.376 22238754.149 22238755.702
+ 42.800 35.200
+ 06 1 2 10 55 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5398946.993 4 -4206973.769 4 23234958.115 23234957.773 23234957.344
+ 29.200 26.800
+ -7373824.841 5 -5745834.519 4 23156652.458 23156651.234 23156651.056
+ 30.400 26.200
+ -1807635.660 4 -1408543.645 3 24370074.617 24370073.175 24370074.108
+ 26.200 20.500
+ -9423895.403 5 -7343294.498 4 22825970.661 22825968.281 22825970.399
+ 33.500 29.500
+ -22717916.661 7 -17702264.609 8 20270929.304 20270926.116 20270928.250
+ 43.400 49.300
+ -5354219.139 4 -4172122.005 3 23625125.459 23625124.025 23625124.364
+ 28.800 23.800
+ -21271851.498 7 -16575467.865 7 20613812.512 20613806.971 20613811.149
+ 47.000 44.200
+ -12025328.521 7 -9370380.655 5 22250709.339 22250706.885 22250708.468
+ 42.500 34.900
+ 06 1 2 10 55 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -5296358.729 5 -4127034.903 4 23254479.181 23254479.430 23254479.514
+ 30.200 26.500
+ -7480529.759 5 -5828981.173 4 23136347.825 23136345.699 23136346.256
+ 31.100 25.600
+ -1739154.376 4 -1355181.610 3 24383106.856 24383105.046 24383106.159
+ 26.200 20.500
+ -9516185.402 5 -7415208.779 5 22808408.433 22808405.957 22808408.321
+ 34.900 30.800
+ -22705380.262 7 -17692495.983 8 20273314.859 20273311.737 20273313.783
+ 43.400 49.200
+ -5265146.193 4 -4102714.539 4 23642075.276 23642073.985 23642074.103
+ 25.900 24.600
+ -21307872.152 7 -16603535.902 7 20606957.914 20606952.522 20606956.638
+ 47.100 44.100
+ -11962316.783 7 -9321280.600 5 22262699.820 22262697.509 22262699.078
+ 42.400 34.800
+ 06 1 2 10 56 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5193543.667 4 -4046919.296 4 23274044.405 23274044.531 23274044.329
+ 29.900 25.600
+ -7587054.458 5 -5911987.401 4 23116076.875 23116075.089 23116075.119
+ 30.800 27.400
+ -1670277.861 3 -1301511.587 3 24396213.602 24396211.506 24396212.646
+ 23.400 21.600
+ -9608197.261 5 -7486906.320 4 22790899.791 22790896.589 22790899.402
+ 35.300 29.500
+ -22692362.820 7 -17682352.521 8 20275791.798 20275788.824 20275790.741
+ 43.400 49.200
+ -5175848.763 4 -4033132.185 3 23659068.152 23659066.572 23659066.825
+ 25.900 23.400
+ -21343349.946 7 -16631180.938 7 20600206.581 20600201.275 20600205.350
+ 47.000 44.100
+ -11899105.925 7 -9272025.397 5 22274728.068 22274726.258 22274727.687
+ 42.300 34.600
+ 06 1 2 10 56 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -5090503.616 5 -3966628.381 4 23293653.397 23293652.157 23293652.418
+ 30.600 24.600
+ -7693396.008 5 -5994850.876 4 23095840.273 23095838.871 23095838.509
+ 31.300 27.400
+ -1601008.005 3 -1247535.089 2 24409394.690 24409392.773 24409393.652
+ 23.400 17.800
+ -9699928.297 5 -7558385.075 4 22773443.506 22773440.648 22773443.283
+ 35.100 29.200
+ -22678865.377 7 -17671835.031 8 20278360.544 20278357.272 20278359.402
+ 43.400 49.200
+ -5086330.063 4 -3963377.381 3 23676102.757 23676101.547 23676101.751
+ 27.600 23.000
+ -21378283.220 7 -16658401.669 7 20593559.074 20593553.533 20593557.885
+ 47.100 44.300
+ -11835696.239 7 -9222615.275 5 22286794.877 22286792.820 22286794.195
+ 42.300 34.900
+ 06 1 2 10 57 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4987240.466 5 -3886163.621 4 23313303.773 23313302.590 23313302.915
+ 30.100 24.900
+ -7799551.518 5 -6077569.404 4 23075638.807 23075637.500 23075637.812
+ 31.800 26.200
+ -1531347.170 3 -1193253.901 2 24422650.273 24422649.021 24422649.410
+ 22.600 13.900
+ -9791376.108 5 -7629643.101 4 22756041.570 22756038.783 22756041.251
+ 35.100 29.900
+ -22664888.736 7 -17660944.144 8 20281020.124 20281016.883 20281019.058
+ 43.500 49.100
+ -4996593.455 4 -3893452.776 3 23693179.642 23693177.647 23693178.213
+ 29.000 19.900
+ -21412670.272 7 -16685196.770 7 20587015.510 20587010.045 20587014.218
+ 47.000 44.400
+ -11772087.933 7 -9173050.368 5 22298899.065 22298896.719 22298898.427
+ 42.200 34.300
+ 06 1 2 10 57 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -4883756.190 4 -3805526.552 4 23332995.909 23332994.943 23332994.968
+ 29.500 24.600
+ -7905517.812 4 -6160140.481 4 23055474.119 23055473.343 23055472.959
+ 29.200 27.600
+ -1461297.334 4 -1138669.606 2 24435981.182 24435979.770 24435980.178
+ 24.600 17.000
+ -9882537.785 5 -7700678.182 4 22738694.295 22738691.299 22738693.924
+ 35.700 29.000
+ -22650434.495 7 -17649681.100 8 20283770.616 20283767.434 20283769.569
+ 43.500 49.100
+ -4906641.979 4 -3823360.747 2 23710296.923 23710294.957 23710295.686
+ 29.200 17.800
+ -21446509.525 7 -16711565.022 7 20580576.025 20580570.669 20580574.721
+ 47.000 44.400
+ -11708281.354 7 -9123330.956 5 22311040.765 22311038.823 22311040.383
+ 42.000 34.600
+ 06 1 2 10 58 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4780052.671 4 -3724718.645 4 23352729.928 23352729.359 23352729.065
+ 29.700 24.900
+ -8011291.894 5 -6242561.787 4 23035345.723 23035344.987 23035344.899
+ 31.300 27.600
+ -1390860.643 4 -1083783.864 3 24449384.935 24449382.643 24449384.228
+ 26.800 19.900
+ -9973410.944 5 -7771488.433 4 22721400.962 22721398.757 22721400.781
+ 34.400 29.900
+ -22635503.731 7 -17638046.738 8 20286611.988 20286608.747 20286610.855
+ 43.700 49.100
+ -4816478.988 4 -3753103.881 2 23727454.217 23727452.176 23727452.876
+ 28.600 16.100
+ -21479799.034 7 -16737504.898 7 20574241.107 20574235.971 20574239.879
+ 46.900 44.600
+ -11644276.736 7 -9073457.234 5 22323221.170 22323218.661 22323220.282
+ 42.200 34.700
+ 06 1 2 10 58 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -4676131.750 4 -3643741.323 3 23372505.343 23372504.678 23372504.611
+ 29.500 23.000
+ -8116870.754 5 -6324830.974 4 23015255.031 23015253.975 23015253.948
+ 32.000 26.800
+ -1320039.017 4 -1028598.164 3 24462861.248 24462859.917 24462860.737
+ 25.300 19.900
+ -10063993.069 5 -7842071.901 5 22704164.481 22704161.592 22704163.897
+ 34.700 30.800
+ -22620097.557 7 -17626041.926 8 20289543.587 20289540.517 20289542.534
+ 43.900 49.100
+ -4726107.331 4 -3682684.404 2 23744651.250 23744649.200 23744650.290
+ 27.600 17.000
+ -21512537.333 7 -16763015.261 7 20568011.368 20568006.037 20568010.117
+ 46.900 44.600
+ -11580074.255 7 -9023429.344 5 22335438.092 22335436.023 22335437.462
+ 42.200 34.600
+ 06 1 2 10 59 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4571995.403 4 -3562596.146 4 23392321.347 23392321.508 23392321.025
+ 28.600 24.600
+ -8222251.467 5 -6406945.773 4 22995201.246 22995200.523 22995200.661
+ 33.100 26.800
+ -1248834.746 4 -973114.338 3 24476411.104 24476409.677 24476410.483
+ 26.200 21.100
+ -10154281.153 5 -7912426.244 5 22686983.368 22686980.577 22686983.035
+ 35.900 32.000
+ -22604217.431 7 -17613667.798 8 20292565.564 20292562.346 20292564.489
+ 44.000 49.100
+ -4635530.276 4 -3612104.908 2 23761887.199 23761885.120 23761885.789
+ 24.200 16.100
+ -21544722.751 7 -16788094.807 7 20561886.632 20561881.265 20561885.316
+ 46.600 44.500
+ -11515674.304 7 -8973247.575 5 22347692.795 22347690.975 22347692.291
+ 42.000 34.400
+ 06 1 2 10 59 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -4467645.735 4 -3481284.719 4 23412178.499 23412178.475 23412178.073
+ 28.600 25.600
+ -8327431.148 5 -6488903.946 4 22975186.289 22975185.514 22975185.713
+ 33.400 27.600
+ -1177249.874 4 -917333.929 3 24490033.327 24490031.423 24490032.485
+ 25.900 19.300
+ -10244272.826 5 -7982549.624 5 22669858.328 22669855.285 22669857.908
+ 35.500 31.100
+ -22587864.423 7 -17600925.194 8 20295677.488 20295674.146 20295676.445
+ 44.000 49.000
+ -4544751.098 4 -3541367.918 2 23779162.011 23779160.131 23779160.870
+ 26.800 16.100
+ -21576353.823 7 -16812742.394 7 20555867.542 20555862.159 20555866.261
+ 46.700 44.400
+ -11451077.108 6 -8922912.108 5 22359985.724 22359983.497 22359984.824
+ 41.600 34.800
+ 06 1 2 11 0 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4363084.675 4 -3399808.607 4 23432076.367 23432075.774 23432075.639
+ 29.200 24.900
+ -8432406.669 5 -6570703.009 4 22955209.317 22955209.513 22955208.947
+ 31.300 28.100
+ -1105286.681 4 -861258.679 3 24503726.639 24503726.195 24503726.084
+ 25.600 19.300
+ -10333965.294 5 -8052439.846 5 22652789.884 22652787.469 22652789.586
+ 34.600 31.100
+ -22571039.501 7 -17587814.863 8 20298878.872 20298875.812 20298877.858
+ 43.900 49.000
+ -4453773.151 4 -3470476.010 3 23796474.928 23796472.915 23796473.743
+ 28.600 19.300
+ -21607428.720 7 -16836956.599 7 20549954.113 20549948.697 20549952.826
+ 46.800 44.400
+ -11386283.011 6 -8872423.195 5 22372315.419 22372313.143 22372314.697
+ 41.600 33.800
+ 06 1 2 11 0 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -4258314.207 4 -3318169.297 4 23452013.852 23452013.322 23452012.912
+ 29.900 25.900
+ -8537175.023 5 -6652340.608 4 22935273.491 22935272.345 22935272.478
+ 31.000 26.500
+ -1032947.143 4 -804890.203 3 24517493.457 24517491.379 24517492.593
+ 24.200 19.900
+ -10423356.060 5 -8122094.993 5 22635779.589 22635776.770 22635779.263
+ 35.600 30.600
+ -22553744.335 7 -17574338.106 8 20302170.041 20302166.935 20302168.978
+ 43.900 48.800
+ -4362599.325 4 -3399431.498 3 23813824.844 23813823.192 23813823.606
+ 29.200 21.600
+ -21637945.943 7 -16860736.256 7 20544146.948 20544141.456 20544145.662
+ 47.000 44.500
+ -11321292.188 6 -8821781.011 5 22384682.226 22384680.987 22384681.823
+ 41.300 34.800
+ 06 1 2 11 1 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4153336.195 4 -3236368.270 4 23471990.818 23471989.656 23471989.831
+ 29.000 25.300
+ -8641732.903 5 -6733814.247 4 22915377.463 22915375.899 22915376.239
+ 32.400 28.100
+ -960233.350 4 -748230.135 3 24531330.753 24531328.160 24531329.779
+ 25.600 19.900
+ -10512442.409 5 -8191512.912 5 22618826.900 22618824.469 22618826.704
+ 34.900 31.600
+ -22535979.862 7 -17560495.655 8 20305550.673 20305547.415 20305549.593
+ 44.000 48.900
+ -4271232.623 4 -3328236.691 3 23831211.176 23831209.728 23831209.990
+ 28.400 21.600
+ -21667903.914 7 -16884080.126 7 20538446.242 20538440.631 20538444.951
+ 47.000 44.500
+ -11256104.852 6 -8770985.702 5 22397087.424 22397085.727 22397086.699
+ 41.300 34.600
+ 06 1 2 11 1 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -4048152.380 4 -3154406.905 4 23492005.417 23492006.020 23492005.059
+ 26.500 24.600
+ -8746077.554 5 -6815121.722 4 22895520.885 22895519.644 22895519.861
+ 33.200 27.900
+ -887147.722 4 -691280.282 3 24545238.245 24545236.129 24545237.267
+ 25.900 19.900
+ -10601221.724 6 -8260691.589 5 22601932.939 22601930.161 22601932.782
+ 36.100 31.800
+ -22517747.555 7 -17546288.659 8 20309020.163 20309016.934 20309019.117
+ 43.900 48.800
+ -4179676.666 4 -3256894.399 3 23848633.969 23848632.133 23848632.792
+ 27.100 21.100
+ -21697300.922 7 -16906986.889 7 20532852.161 20532846.572 20532850.880
+ 47.200 44.600
+ -11190721.338 6 -8720037.520 5 22409529.961 22409527.550 22409528.952
+ 41.200 34.400
+ 06 1 2 11 2 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3942764.954 4 -3072286.858 3 23512061.075 23512059.895 23512060.294
+ 29.500 23.400
+ -8850206.106 5 -6896260.821 4 22875706.699 22875704.663 22875705.056
+ 33.200 28.600
+ -813692.346 3 -634042.311 3 24559215.388 24559214.609 24559214.859
+ 23.800 19.300
+ -10689691.669 6 -8329629.216 5 22585097.922 22585094.879 22585097.639
+ 37.300 31.600
+ -22499048.590 7 -17531718.034 8 20312578.488 20312575.248 20312577.381
+ 43.900 48.900
+ -4087934.281 4 -3185406.836 3 23866091.784 23866090.565 23866090.545
+ 28.100 22.600
+ -21726135.656 7 -16929455.517 7 20527365.046 20527359.551 20527363.862
+ 47.200 44.500
+ -11125142.049 6 -8668936.780 5 22422008.577 22422006.505 22422008.125
+ 41.100 33.200
+ 06 1 2 11 2 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -3837175.808 4 -2990009.612 3 23532154.780 23532152.997 23532153.344
+ 29.700 23.800
+ -8954115.112 5 -6977228.848 4 22855933.718 22855931.315 22855931.945
+ 32.300 28.400
+ -739869.252 3 -576517.835 3 24573264.053 24573262.961 24573263.220
+ 22.600 19.300
+ -10777849.223 6 -8398323.419 5 22568321.922 22568319.304 22568321.635
+ 36.500 32.100
+ -22479884.326 7 -17516784.838 8 20316225.378 20316222.079 20316224.261
+ 44.100 48.800
+ -3996008.488 4 -3113776.395 3 23883584.808 23883583.282 23883583.495
+ 26.200 22.600
+ -21754406.216 7 -16951484.523 7 20521985.579 20521979.853 20521984.216
+ 47.100 44.600
+ -11059367.152 6 -8617683.623 5 22434525.682 22434523.579 22434524.927
+ 41.400 34.100
+ 06 1 2 11 3 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3731386.971 4 -2907576.796 3 23552285.019 23552283.939 23552283.804
+ 28.400 23.800
+ -9057801.935 5 -7058023.744 4 22836201.460 22836200.308 22836200.331
+ 32.100 27.900
+ -665680.776 3 -518708.619 2 24587381.522 24587379.535 24587380.620
+ 23.400 17.000
+ -10865691.849 6 -8466772.202 5 22551606.199 22551603.299 22551605.896
+ 37.100 32.300
+ -22460256.015 7 -17501490.046 8 20319960.517 20319957.214 20319959.427
+ 44.100 48.800
+ -3903902.620 4 -3042005.602 3 23901111.411 23901110.170 23901110.331
+ 24.600 21.100
+ -21782111.414 7 -16973072.991 7 20516713.117 20516707.764 20516711.915
+ 47.000 44.600
+ -10993396.899 6 -8566278.248 5 22447079.626 22447077.384 22447078.847
+ 41.400 34.100
+ 06 1 2 11 3 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -3625400.433 4 -2824989.905 3 23572452.447 23572452.349 23572452.346
+ 28.600 22.600
+ -9161263.408 5 -7138643.051 4 22816512.986 22816512.316 22816512.317
+ 33.500 27.900
+ -591129.030 4 -460616.301 3 24601568.569 24601566.483 24601568.236
+ 25.600 18.600
+ -10953216.934 6 -8534973.572 5 22534950.615 22534947.733 22534950.373
+ 36.400 31.600
+ -22440164.846 7 -17485834.587 8 20323783.715 20323780.481 20323782.615
+ 44.100 48.700
+ -3811619.969 4 -2970097.050 3 23918672.998 23918670.852 23918671.638
+ 25.300 19.300
+ -21809249.856 7 -16994219.831 7 20511548.949 20511543.440 20511547.698
+ 47.100 44.700
+ -10927231.599 6 -8514720.876 5 22459670.252 22459667.908 22459669.579
+ 41.100 33.800
+ 06 1 2 11 4 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3519218.313 4 -2742250.614 3 23592659.224 23592658.643 23592658.315
+ 26.800 23.800
+ -9264496.571 5 -7219084.442 4 22796867.960 22796867.372 22796867.567
+ 34.000 28.100
+ -516216.236 3 -402242.731 3 24615823.620 24615821.743 24615823.018
+ 23.800 21.600
+ -11040421.576 5 -8602925.228 5 22518356.267 22518353.046 22518355.759
+ 35.700 31.500
+ -22419612.517 7 -17469819.783 8 20327694.439 20327691.452 20327693.484
+ 44.300 48.800
+ -3719163.681 4 -2898053.223 3 23936265.996 23936264.791 23936265.176
+ 26.500 21.100
+ -21835819.881 7 -17014923.745 7 20506492.712 20506487.389 20506491.517
+ 47.000 44.900
+ -10860871.578 6 -8463011.776 5 22472297.447 22472295.729 22472297.084
+ 40.700 33.200
+ 06 1 2 11 4 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -3412842.615 4 -2659360.475 4 23612901.984 23612901.285 23612900.957
+ 27.100 24.200
+ -9367498.479 5 -7299345.634 4 22777267.081 22777266.508 22777267.110
+ 33.600 27.600
+ -440944.618 4 -343589.518 3 24630147.884 24630146.028 24630146.921
+ 26.200 23.400
+ -11127303.339 6 -8670625.302 5 22501822.915 22501820.445 22501822.700
+ 36.900 32.400
+ -22398600.190 7 -17453446.538 8 20331693.075 20331689.937 20331692.004
+ 44.300 48.700
+ -3626536.744 4 -2825876.426 3 23953893.392 23953891.418 23953891.697
+ 24.900 20.500
+ -21861819.918 7 -17035183.516 7 20501545.175 20501539.876 20501543.972
+ 47.000 44.900
+ -10794317.044 6 -8411151.116 5 22484963.256 22484960.727 22484962.455
+ 41.200 33.500
+ 06 1 2 11 5 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3306275.276 4 -2576321.021 3 23633181.175 23633180.219 23633179.949
+ 27.900 23.000
+ -9470265.970 5 -7379424.175 4 22757711.630 22757711.055 22757711.031
+ 34.400 29.500
+ -365316.355 3 -284658.432 3 24644539.063 24644537.105 24644538.474
+ 23.000 19.900
+ -11213859.787 6 -8738071.885 5 22485351.979 22485349.068 22485351.458
+ 36.100 32.000
+ -22377129.079 7 -17436715.799 8 20335778.908 20335775.726 20335777.787
+ 44.200 48.600
+ -3533742.467 4 -2753569.231 3 23971550.374 23971549.272 23971549.794
+ 26.500 19.300
+ -21887248.840 7 -17054998.261 7 20496706.174 20496700.783 20496704.974
+ 47.100 44.900
+ -10727568.353 6 -8359139.156 5 22497664.870 22497662.869 22497664.247
+ 40.900 34.300
+ 06 1 2 11 5 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -3199518.374 4 -2493133.837 3 23653495.759 23653495.220 23653495.017
+ 27.900 20.500
+ -9572796.072 5 -7459317.714 4 22738200.739 22738200.020 22738199.959
+ 32.300 29.500
+ -289333.705 4 -225451.167 3 24658998.056 24658995.492 24658997.285
+ 24.200 19.900
+ -11300088.201 6 -8805262.848 5 22468942.922 22468940.093 22468942.741
+ 37.200 31.300
+ -22355200.548 7 -17419628.629 8 20339951.748 20339948.601 20339950.685
+ 44.300 48.700
+ -3440783.847 4 -2681133.958 2 23989240.882 23989238.686 23989239.579
+ 26.500 17.000
+ -21912104.956 7 -17074366.668 7 20491976.287 20491970.721 20491974.984
+ 47.000 44.800
+ -10660625.768 6 -8306976.131 5 22510403.174 22510401.739 22510402.785
+ 40.700 34.300
+ 06 1 2 11 6 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3092573.663 4 -2409800.326 3 23673846.147 23673846.058 23673845.917
+ 27.600 19.300
+ -9675085.615 5 -7539023.809 4 22718737.298 22718734.942 22718735.543
+ 33.200 29.700
+ -212998.846 3 -165969.447 3 24673523.693 24673522.666 24673523.569
+ 22.600 19.900
+ -11385985.932 6 -8872196.147 5 22452597.688 22452594.535 22452597.259
+ 37.800 31.800
+ -22332815.950 7 -17402186.081 8 20344211.294 20344208.304 20344210.243
+ 44.200 48.700
+ -3347664.020 4 -2608573.076 2 24006961.096 24006958.851 24006959.684
+ 27.400 16.100
+ -21936386.980 7 -17093287.724 7 20487355.525 20487350.062 20487354.232
+ 46.800 44.800
+ -10593489.567 6 -8254662.219 5 22523179.474 22523177.256 22523178.511
+ 40.400 33.500
+ 06 1 2 11 6 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -2985443.267 4 -2326322.100 3 23694233.110 23694231.825 23694232.354
+ 26.500 21.100
+ -9777131.815 5 -7618540.299 5 22699318.245 22699316.312 22699316.589
+ 34.300 30.200
+ -136313.860 4 -106214.952 3 24688117.071 24688115.551 24688116.224
+ 24.900 19.900
+ -11471550.360 6 -8938869.725 5 22436314.765 22436312.318 22436314.669
+ 37.700 33.500
+ -22309976.814 7 -17384389.345 8 20348557.643 20348554.475 20348556.508
+ 44.300 48.700
+ -3254386.416 4 -2535889.248 2 24024710.820 24024708.873 24024709.644
+ 25.600 17.000
+ -21960093.429 7 -17111760.283 7 20482844.210 20482838.812 20482842.938
+ 46.800 44.600
+ -10526159.977 6 -8202197.616 5 22535991.093 22535989.557 22535990.825
+ 40.500 33.200
+ 06 1 2 11 7 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2878129.314 4 -2242700.848 3 23714655.320 23714653.697 23714653.566
+ 25.300 21.600
+ -9878931.779 5 -7697864.893 5 22679945.637 22679944.210 22679944.466
+ 33.800 30.200
+ -59281.408 4 -46189.646 2 24702775.256 24702773.732 24702774.797
+ 24.200 17.800
+ -11556778.609 6 -9005281.339 5 22420096.588 22420093.959 22420096.269
+ 38.000 33.400
+ -22286684.486 7 -17366239.477 8 20352989.943 20352986.876 20352988.862
+ 44.400 48.700
+ -3160953.838 4 -2463084.682 2 24042490.525 24042488.522 24042489.202
+ 26.800 16.100
+ -21983223.361 7 -17129783.607 7 20478442.953 20478437.208 20478441.631
+ 47.000 44.500
+ -10458637.301 6 -8149582.547 5 22548841.280 22548838.542 22548840.205
+ 40.500 32.600
+ 06 1 2 11 7 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -2770633.685 4 -2158938.062 3 23735109.905 23735109.585 23735108.826
+ 24.900 22.600
+ -9980482.266 5 -7776995.114 4 22660620.240 22660619.662 22660619.919
+ 35.200 28.600
+ 18096.492 3 14104.845 3 24717500.866 24717498.927 24717500.019
+ 23.800 21.100
+ -11641668.354 6 -9071429.193 5 22403942.555 22403940.015 22403942.317
+ 38.100 33.400
+ -22262940.365 7 -17347737.563 8 20357508.193 20357505.218 20357507.104
+ 44.300 48.600
+ -3067369.627 4 -2390161.928 1 24060298.915 24060296.818 24060297.606
+ 27.100 11.000
+ -22005775.140 7 -17147356.426 7 20474151.472 20474145.855 20474150.209
+ 47.000 44.600
+ -10390921.866 6 -8096817.279 5 22561726.360 22561724.545 22561725.865
+ 40.000 33.100
+ 06 1 2 11 8 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2662958.315 4 -2075035.246 4 23755599.100 23755599.866 23755599.000
+ 27.100 24.600
+ -10081780.080 5 -7855928.451 4 22641344.113 22641343.280 22641343.648
+ 34.900 29.000
+ 95817.691 4 74666.782 3 24732289.846 24732288.549 24732289.081
+ 24.200 19.300
+ -11726216.692 6 -9137310.999 5 22387853.635 22387850.963 22387853.255
+ 37.700 33.100
+ -22238745.711 7 -17328884.583 8 20362112.412 20362109.252 20362111.321
+ 44.400 48.600
+ -2973637.228 4 -2317123.706 1 24078135.478 24078133.611 24078134.228
+ 25.300 11.000
+ -22027747.578 7 -17164477.809 7 20469970.235 20469964.739 20469968.939
+ 46.900 44.800
+ -10323013.916 6 -8043902.014 5 22574649.016 22574646.956 22574648.287
+ 39.800 33.400
+ 06 1 2 11 8 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -2555105.284 4 -1990993.935 3 23776123.612 23776123.189 23776123.067
+ 26.800 23.800
+ -10182822.394 6 -7934662.705 4 22622117.249 22622115.771 22622116.223
+ 36.400 29.200
+ 173879.744 3 135494.395 3 24747143.868 24747142.784 24747143.518
+ 22.100 19.300
+ -11810421.027 6 -9202924.770 5 22371829.877 22371827.249 22371829.776
+ 38.500 33.100
+ -22214102.038 7 -17309681.713 8 20366801.856 20366798.771 20366800.784
+ 44.500 48.500
+ -2879759.377 4 -2243972.115 2 24095999.685 24095997.845 24095998.569
+ 25.300 13.900
+ -22049139.115 7 -17181146.536 7 20465899.433 20465893.999 20465898.189
+ 46.700 44.700
+ -10254913.861 6 -7990837.044 5 22587607.920 22587606.059 22587607.273
+ 39.800 33.200
+ 06 1 2 11 9 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2447076.648 4 -1906815.806 4 23796681.853 23796680.803 23796680.169
+ 26.200 24.200
+ -10283606.233 5 -8013195.530 5 22602939.106 22602937.536 22602937.565
+ 34.000 30.800
+ 252280.501 3 196585.873 2 24762063.511 24762062.720 24762062.833
+ 21.100 17.800
+ -11894278.700 6 -9268268.418 5 22355872.936 22355869.545 22355872.425
+ 38.600 32.400
+ -22189010.790 7 -17290130.088 8 20371576.628 20371573.446 20371575.552
+ 44.600 48.400
+ -2785739.142 4 -2170709.643 1 24113891.812 24113889.265 24113890.676
+ 25.600 11.000
+ -22069948.682 7 -17197361.787 7 20461939.607 20461934.002 20461938.323
+ 46.800 44.700
+ -10186621.858 6 -7937622.517 5 22600603.386 22600601.442 22600602.883
+ 40.000 32.800
+ 06 1 2 11 9 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -2338874.441 4 -1822502.432 3 23817272.254 23817270.490 23817271.192
+ 27.100 23.000
+ -10384128.636 5 -8091524.622 5 22583810.303 22583808.550 22583808.882
+ 35.100 31.000
+ 331017.699 3 257939.557 2 24777047.249 24777045.155 24777046.403
+ 22.600 16.100
+ -11977787.014 6 -9333339.828 5 22339981.053 22339978.426 22339980.814
+ 37.800 32.700
+ -22163473.512 7 -17270230.908 8 20376436.030 20376433.025 20376434.996
+ 44.600 48.400
+ -2691579.924 4 -2097338.845 2 24131809.516 24131807.645 24131808.449
+ 24.600 16.100
+ -22090174.881 7 -17213122.461 7 20458090.508 20458085.220 20458089.266
+ 46.700 44.900
+ -10118138.242 6 -7884258.661 5 22613635.617 22613633.515 22613634.987
+ 39.900 32.400
+ 06 1 2 11 10 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2230500.709 4 -1738055.408 3 23837891.796 23837893.867 23837892.955
+ 25.300 23.000
+ -10484386.481 5 -8169647.590 5 22564730.545 22564729.922 22564729.960
+ 34.800 30.200
+ 410089.055 3 319553.589 3 24792094.224 24792092.513 24792093.308
+ 22.100 20.500
+ -12060943.689 6 -9398137.238 5 22324157.026 22324154.292 22324156.680
+ 38.100 32.700
+ -22137491.122 7 -17249984.886 8 20381380.203 20381377.355 20381379.228
+ 44.600 48.400
+ -2597284.629 4 -2023862.023 2 24149753.324 24149751.830 24149752.459
+ 24.200 16.100
+ -22109816.505 7 -17228427.624 7 20454352.980 20454347.538 20454351.710
+ 46.800 45.000
+ -10049463.417 6 -7830745.824 5 22626704.011 22626701.901 22626703.547
+ 40.500 32.400
+ 06 1 2 11 10 30.0000000 0 8G01G03G06G13G16G20G23G25
+ -2121957.526 3 -1653476.321 3 23858547.486 23858548.708 23858547.611
+ 22.100 19.900
+ -10584376.881 5 -8247562.140 5 22545701.893 22545702.332 22545702.105
+ 34.700 30.600
+ 489492.265 3 381426.181 3 24807203.156 24807202.600 24807202.521
+ 18.600 20.500
+ -12143745.914 6 -9462658.449 5 22308400.581 22308397.732 22308400.218
+ 38.100 33.400
+ -22111065.438 7 -17229393.444 8 20386409.115 20386406.013 20386407.995
+ 44.800 48.400
+ -2502856.467 3 -1950281.667 3 24167722.252 24167720.704 24167721.098
+ 23.400 19.900
+ -22128872.448 7 -17243276.410 7 20450726.819 20450721.218 20450725.580
+ 46.900 44.900
+ -9980597.660 6 -7777084.215 5 22639809.082 22639806.638 22639808.271
+ 39.900 32.400
+ 06 1 2 11 11 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2013246.877 3 -1568766.780 2 23879236.542 23879235.535 23879234.952
+ 23.000 17.800
+ -10684096.763 5 -8325265.908 5 22526727.768 22526726.194 22526726.529
+ 35.300 30.800
+ 569224.969 3 443555.555 3 24822376.966 24822374.904 24822375.880
+ 21.100 18.600
+ -12226190.958 6 -9526901.341 5 22292711.660 22292708.772 22292711.403
+ 38.400 32.700
+ -22084197.887 7 -17208457.689 8 20391521.783 20391518.719 20391520.776
+ 45.100 48.300
+ -2408298.720 4 -1876600.369 3 24185716.607 24185714.288 24185715.194
+ 26.200 19.900
+ -22147341.510 7 -17257667.892 7 20447212.172 20447206.693 20447211.049
+ 47.000 44.900
+ -9911541.122 6 -7723273.947 5 22652949.583 22652947.568 22652949.031
+ 39.700 32.000
+ 06 1 2 11 11 30.0000000 0 7G01G03G13G16G20G23G25
+ -1904370.818 3 -1483928.310 3 23899953.501 23899954.082 23899953.131
+ 22.600 19.300
+ -10783543.171 5 -8402756.611 5 22507804.453 22507802.143 22507802.665
+ 35.300 31.000
+ -12308276.142 6 -9590863.826 5 22277091.421 22277088.553 22277090.987
+ 38.500 33.600
+ -22056890.280 7 -17187179.032 8 20396718.363 20396715.115 20396717.244
+ 45.100 48.100
+ -2313614.449 4 -1802820.479 3 24203734.209 24203732.668 24203732.961
+ 27.100 21.600
+ -22165222.250 7 -17271600.937 7 20443809.783 20443804.228 20443808.487
+ 47.000 45.100
+ -9842294.193 6 -7669315.313 5 22666126.699 22666124.856 22666126.078
+ 39.400 31.800
+ 06 1 2 11 12 0.0000000 0 7G01G03G13G16G20G23G25
+ -1795331.387 4 -1398962.546 3 23920702.224 23920703.834 23920703.052
+ 26.500 22.100
+ -10882713.365 6 -8480032.063 5 22488932.722 22488930.321 22488931.125
+ 36.400 30.100
+ -12389999.118 6 -9654544.075 5 22261539.810 22261537.320 22261539.587
+ 38.700 33.900
+ -22029143.467 7 -17165558.138 8 20401998.336 20401995.160 20401997.249
+ 45.100 48.100
+ -2218806.714 4 -1728944.357 3 24221775.500 24221773.860 24221774.113
+ 26.500 18.600
+ -22182514.055 7 -17285075.077 7 20440519.182 20440513.605 20440517.956
+ 47.100 45.100
+ -9772857.208 6 -7615208.589 5 22679340.381 22679338.467 22679339.626
+ 39.500 32.400
+ 06 1 2 11 12 30.0000000 0 7G01G03G13G16G20G23G25
+ -1686130.645 4 -1313871.103 3 23941484.643 23941483.864 23941483.680
+ 26.200 20.500
+ -10981604.288 6 -8557089.908 5 22470113.523 22470112.105 22470112.580
+ 36.700 30.600
+ -12471356.922 6 -9717939.758 5 22246057.809 22246055.471 22246057.628
+ 38.400 34.400
+ -22000959.008 7 -17143596.214 8 20407361.699 20407358.501 20407360.608
+ 45.100 48.100
+ -2123878.827 4 -1654974.615 2 24239839.238 24239837.938 24239838.265
+ 24.600 17.000
+ -22199215.322 7 -17298089.051 7 20437340.965 20437335.355 20437339.786
+ 47.000 44.900
+ -9703230.371 6 -7560953.917 5 22692589.833 22692588.163 22692589.266
+ 39.300 33.100
+ 06 1 2 11 13 0.0000000 0 7G01G03G13G16G20G23G25
+ -1576770.643 4 -1228655.537 3 23962296.583 23962294.535 23962294.642
+ 26.500 20.500
+ -11080212.827 6 -8633927.692 5 22451348.178 22451347.612 22451347.893
+ 36.200 30.600
+ -12552346.999 6 -9781048.901 5 22230645.864 22230643.574 22230645.653
+ 38.600 35.100
+ -21972338.746 7 -17121294.707 8 20412807.919 20412804.735 20412806.811
+ 45.100 48.000
+ -2028834.093 3 -1580913.817 2 24257925.232 24257924.642 24257924.454
+ 23.400 17.800
+ -22215325.134 7 -17310642.151 7 20434275.308 20434269.757 20434274.126
+ 46.900 44.800
+ -9633414.084 6 -7506551.648 5 22705876.025 22705873.627 22705875.067
+ 38.900 32.700
+ 06 1 2 11 13 30.0000000 0 7G01G03G13G16G20G23G25
+ -1467253.507 4 -1143317.535 2 23983135.053 23983134.639 23983134.334
+ 24.900 17.800
+ -11178536.005 6 -8710543.123 5 22432638.328 22432637.187 22432637.706
+ 36.200 31.000
+ -12632966.835 6 -9843869.547 5 22215304.286 22215301.996 22215304.013
+ 38.600 34.400
+ -21943284.016 7 -17098654.654 8 20418336.879 20418333.660 20418335.767
+ 45.200 48.000
+ -1933675.040 4 -1506763.976 2 24276034.319 24276032.594 24276033.002
+ 24.900 13.900
+ -22230842.464 7 -17322733.581 7 20431322.342 20431316.930 20431321.181
+ 46.800 44.900
+ -9563408.628 6 -7452001.951 5 22719196.983 22719194.904 22719196.352
+ 38.400 31.500
+ 06 1 2 11 14 0.0000000 0 7G01G03G13G16G20G23G25
+ -1357581.398 4 -1057858.765 3 24004005.438 24004003.915 24004004.753
+ 25.900 18.600
+ -11276570.773 6 -8786933.820 5 22413983.848 22413981.948 22413982.465
+ 36.000 31.800
+ -12713213.849 6 -9906399.688 5 22200034.304 22200031.208 22200033.942
+ 39.400 33.900
+ -21913796.358 7 -17075677.263 7 20423948.095 20423945.022 20423947.088
+ 45.200 47.800
+ -1838404.980 4 -1432527.594 2 24294163.203 24294161.513 24294162.383
+ 24.600 13.900
+ -22245765.980 7 -17334362.300 7 20428482.754 20428477.156 20428481.510
+ 46.800 45.100
+ -9493214.298 6 -7397305.079 5 22732554.726 22732552.567 22732554.041
+ 38.300 32.000
+ 06 1 2 11 14 30.0000000 0 7G01G03G13G16G20G23G25
+ -1247756.253 3 -972280.800 3 24024905.149 24024904.212 24024903.355
+ 22.100 20.500
+ -11374314.185 6 -8863097.494 5 22395384.452 22395381.870 22395382.754
+ 37.200 32.100
+ -12793085.145 6 -9968637.076 5 22184835.423 22184832.214 22184835.053
+ 39.700 34.000
+ -21883877.771 7 -17052364.080 7 20429641.561 20429638.326 20429640.463
+ 45.200 47.800
+ -1743026.947 3 -1358207.062 1 24312313.528 24312311.391 24312312.243
+ 20.500 11.000
+ -22260094.784 7 -17345527.603 7 20425756.192 20425750.509 20425754.871
+ 46.700 44.900
+ -9422831.459 6 -7342461.303 5 22745947.866 22745946.194 22745947.313
+ 38.500 32.400
+ 06 1 2 11 15 0.0000000 0 7G01G03G13G16G20G23G25
+ -1137780.173 4 -886585.163 3 24045832.740 24045831.569 24045831.722
+ 25.600 19.300
+ -11471763.399 6 -8939031.930 5 22376839.312 22376837.988 22376838.442
+ 37.500 32.000
+ -12872578.441 6 -10030579.896 5 22169708.123 22169705.493 22169707.818
+ 39.300 34.800
+ -21853529.030 7 -17028715.700 7 20435416.535 20435413.421 20435415.542
+ 45.400 47.700
+ -1647544.279 3 -1283805.008 1 24330483.376 24330481.471 24330482.168
+ 21.600 11.000
+ -22273827.818 7 -17356228.671 7 20423142.762 20423137.144 20423141.480
+ 46.700 45.000
+ -9352260.429 6 -7287470.905 5 22759376.957 22759375.546 22759376.352
+ 37.700 32.400
+ 06 1 2 11 15 30.0000000 0 7G01G03G13G16G20G23G25
+ -1027655.277 4 -800773.584 3 24066787.840 24066787.472 24066787.662
+ 24.900 19.900
+ -11568915.309 6 -9014734.691 5 22358351.234 22358350.479 22358350.818
+ 36.800 31.300
+ -12951690.862 6 -10092225.932 5 22154653.360 22154650.893 22154653.120
+ 39.400 34.700
+ -21822751.529 7 -17004733.216 7 20441273.453 20441270.137 20441272.366
+ 45.500 47.700
+ -1551959.954 3 -1209323.738 2 24348671.951 24348671.113 24348671.105
+ 23.800 13.900
+ -22286964.382 7 -17366464.950 7 20420642.934 20420637.352 20420641.649
+ 46.600 45.100
+ -9281501.529 6 -7232334.093 5 22772842.169 22772840.447 22772841.500
+ 38.000 31.600
+ 06 1 2 11 16 0.0000000 0 7G01G03G13G16G20G23G25
+ -917383.501 4 -714847.556 3 24087771.270 24087772.289 24087771.286
+ 24.900 21.100
+ -11665767.009 6 -9090203.528 5 22339922.218 22339920.203 22339920.685
+ 36.200 31.500
+ -13030419.880 6 -10153573.216 5 22139671.781 22139669.044 22139671.535
+ 39.400 34.800
+ -21791547.333 7 -16980418.254 7 20447211.456 20447208.161 20447210.337
+ 45.400 47.600
+ -1456277.161 4 -1134765.757 1 24366880.030 24366878.402 24366878.760
+ 24.900 11.000
+ -22299503.134 7 -17376235.410 7 20418256.937 20418251.338 20418255.624
+ 46.600 45.000
+ -9210554.927 6 -7177051.028 5 22786343.456 22786341.119 22786342.533
+ 38.200 31.600
+ 06 1 2 11 16 30.0000000 0 7G01G03G13G16G20G23G25
+ -806966.910 3 -628808.721 3 24108782.604 24108783.817 24108782.155
+ 18.600 21.600
+ -11762315.665 6 -9165436.227 5 22321549.405 22321547.871 22321548.027
+ 36.800 32.300
+ -13108763.029 6 -10214619.827 5 22124763.827 22124760.667 22124763.522
+ 40.000 34.400
+ -21759918.034 7 -16955772.053 7 20453230.194 20453227.087 20453229.154
+ 45.600 47.500
+ -1360499.125 4 -1060133.556 3 24385106.972 24385104.908 24385105.646
+ 24.600 19.300
+ -22311443.129 7 -17385539.307 7 20415984.709 20415979.290 20415983.524
+ 46.600 45.100
+ -9139421.143 6 -7121622.105 5 22799879.110 22799877.390 22799878.542
+ 38.000 31.600
+ 06 1 2 11 17 0.0000000 0 7G01G03G13G16G20G23G25
+ -696407.746 3 -542658.788 3 24129822.264 24129822.477 24129822.142
+ 23.400 22.600
+ -11858558.045 6 -9240430.254 5 22303234.291 22303233.683 22303233.470
+ 37.200 32.800
+ -13186717.560 6 -10275363.615 5 22109929.547 22109926.713 22109929.189
+ 40.000 34.500
+ -21727864.873 7 -16930795.568 7 20459329.682 20459326.601 20459328.583
+ 45.600 47.400
+ -1264628.670 3 -985429.385 2 24403349.565 24403348.223 24403348.732
+ 22.100 15.100
+ -22322783.496 7 -17394375.959 7 20413826.883 20413821.338 20413825.572
+ 46.700 45.200
+ -9068100.457 6 -7066047.553 5 22813451.744 22813449.308 22813450.860
+ 38.400 31.300
+ 06 1 2 11 17 30.0000000 0 7G01G03G13G16G20G23G25
+ -585708.057 3 -456399.299 3 24150889.063 24150887.504 24150887.540
+ 23.800 21.100
+ -11954491.293 6 -9315183.409 5 22284978.827 22284977.825 22284978.056
+ 37.800 32.600
+ -13264280.901 6 -10335802.575 5 22095169.624 22095166.925 22095169.326
+ 39.800 35.100
+ -21695389.350 7 -16905489.957 7 20465509.630 20465506.460 20465508.591
+ 45.700 47.400
+ -1168669.345 3 -910655.913 2 24421609.461 24421608.237 24421608.655
+ 21.600 13.900
+ -22333523.507 7 -17402744.802 7 20411782.979 20411777.565 20411781.807
+ 46.700 45.200
+ -8996593.135 6 -7010327.602 5 22827058.619 22827056.681 22827058.076
+ 38.200 31.800
+ 06 1 2 11 18 0.0000000 0 7G01G03G13G16G20G23G25
+ -474869.886 3 -370031.977 3 24171979.931 24171979.856 24171978.953
+ 23.000 21.600
+ -12050112.559 6 -9389693.459 5 22266782.890 22266781.711 22266781.868
+ 37.200 32.100
+ -13341450.434 6 -10395934.675 5 22080484.899 22080482.068 22080484.588
+ 40.200 35.100
+ -21662493.110 7 -16879856.520 7 20471769.698 20471766.417 20471768.618
+ 45.900 47.400
+ -1072623.492 3 -835815.020 2 24439886.815 24439885.249 24439885.880
+ 22.100 15.100
+ -22343661.927 7 -17410644.871 7 20409853.776 20409848.284 20409852.507
+ 46.500 45.100
+ -8924899.590 6 -6954462.515 5 22840702.203 22840699.138 22840701.006
+ 37.700 30.800
+ 06 1 2 11 18 30.0000000 0 7G01G03G13G16G20G23G25
+ -363895.373 4 -283558.383 3 24193096.504 24193098.028 24193096.738
+ 24.200 18.600
+ -12145418.930 6 -9463958.141 5 22248646.968 22248645.352 22248645.838
+ 37.700 32.300
+ -13418223.395 6 -10455757.754 5 22065875.309 22065872.615 22065874.941
+ 39.800 35.200
+ -21629177.902 7 -16853896.616 7 20478109.209 20478106.062 20478108.246
+ 45.900 47.300
+ -976494.622 3 -760909.411 1 24458180.133 24458178.022 24458179.036
+ 23.400 9.000
+ -22353198.035 7 -17418075.606 7 20408038.852 20408033.592 20408037.706
+ 46.400 45.100
+ -8853020.095 6 -6898452.545 5 22854378.944 22854377.987 22854378.964
+ 37.700 32.000
+ 06 1 2 11 19 0.0000000 0 7G01G03G13G16G20G23G25
+ -252786.713 4 -196980.227 2 24214241.425 24214240.670 24214240.417
+ 24.900 13.900
+ -12240407.303 6 -9537975.025 5 22230570.411 22230569.610 22230569.934
+ 38.000 32.100
+ -13494597.504 6 -10515270.043 5 22051341.822 22051338.965 22051341.507
+ 40.300 34.900
+ -21595445.200 7 -16827611.397 7 20484528.347 20484525.163 20484527.317
+ 46.100 47.300
+ -880285.776 3 -685941.526 2 24476487.567 24476486.056 24476486.411
+ 21.600 16.100
+ -22362131.229 7 -17425036.538 7 20406338.727 20406333.713 20406337.581
+ 46.300 45.200
+ -8780954.927 6 -6842297.867 5 22868093.591 22868091.186 22868092.606
+ 37.300 30.600
+ 06 1 2 11 19 30.0000000 0 7G01G03G13G16G20G23G25
+ -141545.882 4 -110299.081 1 24235411.743 24235409.187 24235409.963
+ 25.600 9.000
+ -12335074.947 6 -9611741.988 5 22212557.115 22212555.004 22212555.606
+ 38.000 32.600
+ -13570570.014 6 -10574469.401 5 22036884.793 22036881.736 22036884.537
+ 40.900 35.100
+ -21561296.451 7 -16801001.978 7 20491026.496 20491023.451 20491025.519
+ 45.900 47.200
+ -784000.362 3 -610913.974 2 24494810.193 24494808.846 24494808.931
+ 23.800 17.800
+ -22370460.440 7 -17431526.835 7 20404753.829 20404748.660 20404752.658
+ 46.300 45.100
+ -8708704.519 6 -6785998.869 5 22881841.723 22881839.738 22881841.192
+ 36.600 30.200
+ 06 1 2 11 20 0.0000000 0 7G01G03G13G16G20G23G25
+ -30175.053 4 -23516.626 1 24256601.744 24256601.387 24256602.375
+ 25.900 11.000
+ -12429418.936 6 -9685256.765 5 22194603.743 22194601.812 22194602.467
+ 38.200 32.600
+ -13646138.471 6 -10633353.913 5 22022504.573 22022501.612 22022504.236
+ 40.700 34.800
+ -21526733.785 7 -16774070.030 7 20497603.718 20497600.516 20497602.609
+ 45.900 47.100
+ -687641.453 3 -535829.138 2 24513146.166 24513145.311 24513145.336
+ 23.400 15.100
+ -22378184.909 7 -17437545.906 7 20403284.090 20403278.702 20403282.859
+ 46.400 45.100
+ -8636269.205 6 -6729555.793 5 22895625.661 22895624.239 22895625.260
+ 36.900 31.000
+ 06 1 2 11 20 30.0000000 0 7G01G03G13G16G20G23G25
+ 81323.731 3 63365.562 2 24277821.478 24277819.538 24277820.208
+ 23.800 13.900
+ -12523436.198 6 -9758516.947 5 22176712.062 22176710.888 22176711.367
+ 38.700 32.000
+ -13721300.057 6 -10691921.382 5 22008201.999 22008198.939 22008201.630
+ 41.000 35.500
+ -21491758.165 7 -16746816.301 7 20504259.265 20504256.181 20504258.196
+ 45.700 47.000
+ -591211.488 4 -460688.932 1 24531497.330 24531495.256 24531495.872
+ 25.900 11.000
+ -22385304.001 7 -17443093.252 7 20401929.470 20401924.030 20401928.211
+ 46.300 45.100
+ -8563649.139 6 -6672968.702 4 22909445.450 22909443.059 22909444.652
+ 37.100 29.900
+ 06 1 2 11 21 0.0000000 0 7G01G03G13G16G20G23G25
+ 192948.484 3 150345.824 1 24299063.324 24299061.384 24299061.595
+ 23.400 11.000
+ -12617123.791 6 -9831520.238 5 22158884.107 22158882.507 22158883.213
+ 38.400 32.100
+ -13796052.196 6 -10750169.801 6 21993977.056 21993974.206 21993976.732
+ 40.900 36.100
+ -21456371.152 7 -16719242.011 7 20510993.310 20510990.081 20510992.115
+ 45.700 47.000
+ -494713.633 3 -385495.807 2 24549859.728 24549858.823 24549858.673
+ 21.600 15.100
+ -22391816.711 7 -17448168.091 7 20400690.233 20400684.661 20400689.005
+ 46.500 45.100
+ -8490844.924 6 -6616238.149 4 22923299.251 22923297.080 22923298.762
+ 37.300 29.000
+ 06 1 2 11 21 30.0000000 0 7G01G03G13G16G20G23G25
+ 304697.041 3 237422.598 3 24320325.220 24320327.175 24320325.398
+ 19.900 19.900
+ -12710479.000 6 -9904264.547 5 22141119.403 22141117.856 22141118.355
+ 38.600 32.800
+ -13870392.397 6 -10808097.224 6 21979830.297 21979827.787 21979830.041
+ 40.700 36.100
+ -21420574.701 7 -16691348.676 7 20517805.002 20517801.928 20517803.873
+ 45.900 46.800
+ -398151.166 3 -310252.371 2 24568235.235 24568234.140 24568233.919
+ 21.600 12.600
+ -22397722.456 7 -17452769.969 7 20399566.335 20399560.739 20399565.151
+ 46.500 45.000
+ -8417856.751 6 -6559364.258 5 22937188.302 22937186.750 22937187.758
+ 37.100 30.800
+ 06 1 2 11 22 0.0000000 0 7G01G03G13G16G20G23G25
+ 416567.220 3 324594.072 3 24341614.775 24341615.663 24341613.786
+ 19.300 23.000
+ -12803498.780 6 -9976747.456 5 22123417.546 22123416.760 22123417.125
+ 38.600 33.400
+ -13944318.433 6 -10865701.922 6 21965762.483 21965760.095 21965762.202
+ 40.400 36.200
+ -21384370.432 7 -16663137.557 7 20524694.486 20524691.401 20524693.384
+ 46.100 46.800
+ -301527.119 3 -234960.966 2 24586621.957 24586620.403 24586620.856
+ 19.900 13.900
+ -22403020.535 7 -17456898.344 7 20398558.102 20398552.615 20398556.838
+ 46.400 45.100
+ -8344685.078 6 -6502347.409 5 22951112.495 22951110.941 22951111.750
+ 36.500 31.300
+ 06 1 2 11 22 30.0000000 0 7G01G03G13G16G20G23G25
+ 528557.009 3 411858.753 3 24362925.119 24362926.450 24362924.734
+ 19.300 21.100
+ -12896180.292 6 -10048966.772 5 22105781.395 22105780.093 22105780.498
+ 39.000 33.500
+ -14017827.282 6 -10922981.543 5 21951774.303 21951771.672 21951774.026
+ 40.600 35.700
+ -21347759.835 7 -16634609.815 7 20531661.356 20531658.165 20531660.264
+ 46.300 46.700
+ -204844.476 3 -159623.843 2 24605020.591 24605018.533 24605019.206
+ 21.600 12.600
+ -22407710.079 7 -17460552.536 7 20397665.598 20397660.302 20397664.381
+ 46.300 45.200
+ -8271330.221 6 -6445187.810 5 22965071.607 22965069.695 22965071.125
+ 36.700 30.800
+ 06 1 2 11 23 0.0000000 0 7G01G03G13G16G20G23G25
+ 640664.117 3 499214.874 3 24384257.825 24384259.837 24384258.099
+ 21.600 22.100
+ -12988520.616 6 -10120920.249 5 22088210.475 22088208.160 22088208.970
+ 39.100 33.600
+ -14090916.522 6 -10979934.201 5 21937866.066 21937863.201 21937865.783
+ 41.200 35.800
+ -21310744.412 7 -16605766.626 7 20538705.120 20538701.951 20538704.095
+ 46.200 46.600
+ -108106.465 3 -84243.646 1 24623428.694 24623426.775 24623427.467
+ 22.600 11.000
+ -22411790.660 7 -17463732.214 7 20396889.028 20396883.825 20396887.921
+ 46.200 45.200
+ -8197792.454 6 -6387885.694 5 22979065.879 22979063.520 22979064.931
+ 36.300 30.800
+ 06 1 2 11 23 30.0000000 0 7G01G03G13G16G20G23G25
+ 752886.404 4 586660.790 2 24405616.255 24405614.235 24405614.827
+ 24.900 16.100
+ -13080516.738 6 -10192605.505 5 22070703.052 22070701.828 22070702.217
+ 38.500 33.100
+ -14163583.939 6 -11036558.165 6 21924038.323 21924035.187 21924037.913
+ 41.400 36.400
+ -21273326.296 7 -16576609.649 7 20545825.603 20545822.436 20545824.561
+ 46.300 46.600
+ -11316.220 3 -8822.688 2 24641848.340 24641846.354 24641846.720
+ 21.100 12.600
+ -22415261.621 7 -17466436.862 7 20396228.863 20396223.306 20396227.587
+ 46.400 45.300
+ -8124072.149 6 -6330441.337 4 22993093.877 22993092.138 22993093.245
+ 36.100 29.900
+ 06 1 2 11 24 0.0000000 0 7G01G03G13G16G20G23G25
+ 865221.813 3 674194.849 2 24426991.279 24426991.142 24426990.873
+ 23.400 17.800
+ -13172165.889 6 -10264020.389 5 22053262.122 22053261.609 22053261.972
+ 39.500 33.400
+ -14235826.520 6 -11092851.084 6 21910290.729 21910287.861 21910290.366
+ 41.200 36.500
+ -21235506.571 7 -16547139.736 7 20553022.463 20553019.214 20553021.415
+ 46.400 46.500
+ 85523.542 3 66636.796 2 24660275.829 24660274.237 24660274.629
+ 21.100 13.900
+ -22418122.049 7 -17468665.770 7 20395684.390 20395679.040 20395683.315
+ 46.600 45.300
+ -8050169.703 5 -6272855.042 5 23007156.818 23007155.308 23007156.374
+ 35.700 30.200
+ 06 1 2 11 24 30.0000000 0 7G01G03G13G16G20G23G25
+ 977668.344 3 761815.504 2 24448388.683 24448388.498 24448388.100
+ 21.600 16.100
+ -13263465.316 6 -10335162.764 5 22035889.863 22035888.010 22035888.450
+ 39.200 34.300
+ -14307642.086 6 -11148811.263 6 21896624.467 21896621.784 21896624.158
+ 41.300 36.400
+ -21197286.886 7 -16517358.158 7 20560295.327 20560292.169 20560294.229
+ 46.500 46.300
+ 182409.720 4 142132.509 2 24678712.677 24678710.908 24678711.729
+ 24.600 15.100
+ -22420371.698 7 -17470418.747 7 20395256.437 20395250.904 20395255.234
+ 46.500 45.200
+ -7976085.445 6 -6215127.076 4 23021255.608 23021252.962 23021254.536
+ 36.400 29.500
+ 06 1 2 11 25 0.0000000 0 7G01G03G13G16G20G23G25
+ 1090223.918 3 849521.062 2 24469808.835 24469807.311 24469807.092
+ 20.500 17.000
+ -13354412.207 6 -10406030.437 5 22018581.946 22018581.561 22018581.654
+ 39.600 34.800
+ -14379027.797 6 -11204436.491 6 21883040.492 21883037.700 21883040.204
+ 41.700 36.600
+ -21158669.077 7 -16487266.353 7 20567644.014 20567640.867 20567642.944
+ 46.500 46.300
+ 279339.209 4 217661.947 1 24697157.837 24697156.041 24697156.582
+ 24.200 9.000
+ -22422009.721 7 -17471695.135 7 20394944.746 20394939.189 20394943.486
+ 46.600 45.300
+ -7901819.697 6 -6157257.675 4 23035387.039 23035385.176 23035386.668
+ 36.300 29.200
+ 06 1 2 11 25 30.0000000 0 7G01G03G13G16G20G23G25
+ 1202886.100 3 937309.757 3 24491244.779 24491246.591 24491245.907
+ 22.100 18.600
+ -13445003.636 6 -10476621.121 5 22001343.795 22001342.187 22001342.871
+ 40.000 33.500
+ -14449981.092 6 -11259724.778 6 21869538.143 21869535.588 21869538.069
+ 41.900 36.600
+ -21119654.848 7 -16456865.652 7 20575068.293 20575064.956 20575067.222
+ 46.600 46.200
+ 376308.966 4 293222.719 24715609.709 24715608.943 24715608.977
+ 24.900 3.000
+ -22423035.839 7 -17472494.710 7 20394749.231 20394743.920 20394748.119
+ 46.400 45.200
+ -7827372.825 6 -6099247.145 4 23049553.695 23049552.218 23049553.259
+ 36.000 29.700
+ 06 1 2 11 26 0.0000000 0 7G01G03G13G16G20G23G25
+ 1315653.090 2 1025180.061 2 24512705.301 24512704.943 24512703.857
+ 15.100 15.100
+ -13535236.554 6 -10546932.469 5 21984173.249 21984171.167 21984171.939
+ 39.500 33.000
+ -14520499.628 6 -11314674.289 6 21856119.232 21856116.284 21856118.898
+ 41.900 36.500
+ -21080245.789 7 -16426157.291 7 20582567.580 20582564.175 20582566.534
+ 46.700 46.000
+ 473315.986 4 368812.640 2 24734070.021 24734069.052 24734068.569
+ 25.300 13.900
+ -22423449.660 7 -17472817.174 7 20394670.652 20394665.146 20394669.527
+ 46.300 45.100
+ -7752745.273 6 -6041095.805 4 23063755.676 23063752.987 23063754.702
+ 36.300 28.400
+ 06 1 2 11 26 30.0000000 0 6G01G03G13G16G23G25
+ 1428522.696 4 1113130.327 2 24534182.445 24534184.530 24534182.665
+ 24.200 16.100
+ -13625108.189 6 -10616962.282 5 21967071.046 21967069.268 21967070.057
+ 40.200 33.400
+ -14590580.958 6 -11369283.119 6 21842783.193 21842780.449 21842782.841
+ 41.600 37.000
+ -21040443.740 7 -16395142.707 7 20590141.592 20590138.289 20590140.601
+ 46.700 45.900
+ -22423250.394 7 -17472661.903 7 20394708.685 20394703.081 20394707.387
+ 46.400 45.100
+ -7677937.419 5 -5982803.962 4 23077990.520 23077988.589 23077989.941
+ 35.600 29.200
+ 06 1 2 11 27 0.0000000 0 6G01G03G13G16G23G25
+ 1541492.595 3 1201158.830 1 24555681.300 24555680.973 24555680.547
+ 19.900 11.000
+ -13714615.626 6 -10686708.305 5 21950038.554 21950036.530 21950037.366
+ 39.700 33.800
+ -14660222.442 6 -11423549.201 6 21829530.566 21829528.170 21829530.238
+ 41.000 37.100
+ -21000249.991 7 -16363822.902 7 20597790.258 20597787.006 20597789.177
+ 46.700 45.900
+ -22422437.493 7 -17472028.474 7 20394863.234 20394857.817 20394862.042
+ 46.300 45.100
+ -7602949.605 5 -5924371.927 4 23092260.111 23092258.662 23092259.707
+ 35.700 29.500
+ 06 1 2 11 27 30.0000000 0 6G01G03G13G16G23G25
+ 1654560.802 3 1289263.849 2 24577199.115 24577197.600 24577197.396
+ 18.600 12.600
+ -13803756.162 6 -10756168.430 5 21933075.102 21933073.847 21933074.420
+ 40.300 34.600
+ -14729421.777 6 -11477470.759 6 21816362.520 21816359.897 21816362.189
+ 41.400 36.900
+ -20959666.526 7 -16332199.423 7 20605512.850 20605509.871 20605511.816
+ 46.600 46.000
+ -22421010.705 7 -17470916.694 7 20395134.844 20395129.262 20395133.619
+ 46.200 45.100
+ -7527782.085 5 -5865799.825 4 23106564.903 23106562.499 23106563.699
+ 35.300 29.000
+ 06 1 2 11 28 0.0000000 0 6G01G03G13G16G23G25
+ 1767725.085 2 1377443.758 1 24598730.830 24598731.391 24598731.213
+ 17.800 11.000
+ -13892527.162 6 -10825340.588 5 21916182.778 21916181.180 21916181.693
+ 39.900 34.400
+ -14798176.346 6 -11531045.746 6 21803278.790 21803276.277 21803278.544
+ 41.800 36.700
+ -20918694.752 7 -16300273.364 7 20613309.688 20613306.560 20613308.534
+ 46.600 46.000
+ -22418969.638 7 -17469326.256 7 20395522.754 20395517.674 20395521.699
+ 46.200 45.200
+ -7452435.440 6 -5807088.161 5 23120901.852 23120900.548 23120901.564
+ 36.000 30.600
+ 06 1 2 11 28 30.0000000 0 5G03G13G16G23G25
+ -13980925.577 6 -10894222.453 5 21899361.543 21899359.191 21899360.380
+ 40.400 33.500
+ -14866483.853 7 -11584272.379 6 21790280.513 21790277.806 21790280.231
+ 42.200 37.200
+ -20877336.397 7 -16268046.071 7 20621179.875 20621176.756 20621178.759
+ 46.600 45.900
+ -22416313.744 7 -17467256.734 7 20396028.344 20396023.109 20396027.217
+ 46.100 44.900
+ -7376909.952 5 -5748237.134 4 23135274.571 23135272.451 23135273.730
+ 35.500 29.700
+ 06 1 2 11 29 0.0000000 0 5G03G13G16G23G25
+ -14068948.618 6 -10962811.821 5 21882610.526 21882609.040 21882609.841
+ 40.600 34.300
+ -14934341.336 7 -11637148.344 6 21777367.641 21777364.812 21777367.431
+ 42.000 36.600
+ -20835593.439 7 -16235519.091 7 20629123.441 20629120.228 20629122.261
+ 46.700 45.900
+ -22413042.719 7 -17464707.888 7 20396651.123 20396645.556 20396649.808
+ 46.200 45.100
+ -7301206.070 5 -5689247.143 4 23149681.331 23149678.550 23149679.994
+ 35.500 29.500
+ 06 1 2 11 29 30.0000000 0 5G03G13G16G23G25
+ -14156593.583 6 -11031106.566 5 21865932.434 21865930.970 21865931.508
+ 40.600 35.100
+ -15001746.748 7 -11689672.040 6 21764540.854 21764538.066 21764540.525
+ 42.000 37.000
+ -20793467.137 7 -16202693.404 7 20637139.725 20637136.563 20637138.647
+ 46.900 45.600
+ -22409156.218 7 -17461679.444 7 20397390.529 20397385.151 20397389.279
+ 46.100 44.900
+ -7225324.142 5 -5630118.381 4 23164120.284 23164118.252 23164119.558
+ 35.300 29.000
+ 06 1 2 11 30 0.0000000 0 5G03G13G16G23G25
+ -14243857.560 6 -11099104.450 5 21849327.116 21849325.292 21849325.776
+ 40.600 35.100
+ -15068697.316 6 -11741841.314 6 21751800.550 21751798.004 21751800.278
+ 41.900 37.600
+ -20750959.439 7 -16169570.522 7 20645228.830 20645225.471 20645227.676
+ 46.900 45.600
+ -22404653.919 7 -17458171.165 7 20398247.232 20398241.888 20398246.067
+ 46.100 44.900
+ -7149264.588 5 -5570851.209 4 23178593.806 23178591.709 23178593.283
+ 35.300 28.600
+ 06 1 2 11 30 30.0000000 0 5G03G13G16G23G25
+ -14330737.769 6 -11166803.288 5 21832793.384 21832792.269 21832792.883
+ 41.400 34.700
+ -15135191.193 6 -11793654.717 6 21739147.200 21739144.691 21739146.794
+ 41.900 37.700
+ -20708072.052 7 -16136151.778 7 20653389.940 20653386.653 20653388.893
+ 47.000 45.400
+ -22399535.620 7 -17454182.884 7 20399221.279 20399215.840 20399220.098
+ 46.300 44.900
+ -7073027.713 5 -5511445.868 4 23193101.840 23193099.397 23193100.764
+ 34.900 28.100
+ 06 1 2 11 31 0.0000000 0 5G03G13G16G23G25
+ -14417231.626 6 -11234201.081 5 21816334.870 21816332.880 21816333.666
+ 41.000 34.500
+ -15201225.021 7 -11845109.645 6 21726581.319 21726578.578 21726581.009
+ 42.100 37.200
+ -20664806.542 7 -16102438.391 7 20661623.283 20661619.770 20661622.085
+ 47.100 45.200
+ -22393800.947 7 -17449714.313 7 20400312.841 20400307.207 20400311.550
+ 46.200 44.900
+ -6996614.015 5 -5451902.777 4 23207642.746 23207640.812 23207641.750
+ 34.400 29.200
+ 06 1 2 11 31 30.0000000 0 5G03G13G16G23G25
+ -14503336.115 6 -11301295.475 5 21799948.908 21799947.943 21799948.377
+ 41.000 35.100
+ -15266796.919 7 -11896204.636 6 21714103.383 21714100.607 21714103.074
+ 42.200 37.700
+ -20621164.829 7 -16068431.861 7 20669927.906 20669924.439 20669926.804
+ 47.300 45.100
+ -22387449.744 7 -17444765.330 7 20401521.102 20401515.870 20401519.924
+ 46.200 45.100
+ -6920023.758 5 -5392222.083 4 23222215.889 23222214.995 23222216.016
+ 33.900 28.600
+ 06 1 2 11 32 0.0000000 0 5G03G13G16G23G25
+ -14589048.655 6 -11368084.436 5 21783639.035 21783637.371 21783637.974
+ 41.700 35.400
+ -15331904.544 7 -11946937.844 6 21701713.697 21701711.318 21701713.442
+ 42.100 37.900
+ -20577148.151 7 -16034133.146 7 20678303.881 20678300.527 20678302.841
+ 47.300 45.200
+ -22380481.691 7 -17439335.682 7 20402847.059 20402841.826 20402845.887
+ 46.300 44.800
+ -6843257.356 5 -5332404.116 4 23236825.031 23236823.230 23236824.231
+ 33.900 27.900
+ 06 1 2 11 32 30.0000000 0 5G03G13G16G23G25
+ -14674366.396 6 -11434565.770 5 21767403.024 21767402.196 21767402.351
+ 41.400 35.900
+ -15396545.335 7 -11997307.290 6 21689413.156 21689410.433 21689412.903
+ 42.600 38.000
+ -20532758.657 7 -15999543.932 7 20686751.122 20686747.651 20686749.893
+ 47.200 45.100
+ -22372896.183 7 -17433424.901 7 20404290.661 20404285.301 20404289.404
+ 46.100 45.100
+ -6766315.350 5 -5272449.345 4 23251467.736 23251465.064 23251466.422
+ 34.400 29.200
+ 06 1 2 11 33 0.0000000 0 5G03G13G16G23G25
+ -14759286.660 6 -11500737.364 5 21751243.599 21751242.136 21751242.704
+ 41.700 35.200
+ -15460716.914 7 -12047311.122 6 21677201.884 21677198.878 21677201.462
+ 42.500 37.300
+ -20487997.823 7 -15964665.360 7 20695268.820 20695265.416 20695267.628
+ 47.000 45.200
+ -22364693.640 7 -17427033.314 7 20405851.406 20405846.232 20405850.260
+ 46.100 44.900
+ -6689198.087 5 -5212358.011 4 23266141.343 23266139.508 23266140.999
+ 33.500 28.100
+ 06 1 2 11 33 30.0000000 0 5G03G13G16G23G25
+ -14843806.543 6 -11566596.980 5 21735160.105 21735158.484 21735159.020
+ 41.300 35.500
+ -15524416.928 7 -12096947.486 6 21665079.977 21665077.273 21665079.683
+ 42.300 37.700
+ -20442867.445 7 -15929498.834 7 20703856.660 20703853.421 20703855.504
+ 46.900 44.900
+ -22355874.022 7 -17420160.885 7 20407529.833 20407524.495 20407528.636
+ 46.100 44.900
+ -6611905.994 5 -5152130.441 4 23280849.143 23280847.774 23280849.076
+ 34.100 26.800
+ 06 1 2 11 34 0.0000000 0 6G03G13G16G19G23G25
+ -14927923.378 6 -11632142.523 5 21719153.090 21719151.540 21719152.125
+ 41.500 35.500
+ -15587642.781 7 -12146214.390 6 21653048.483 21653045.658 21653048.230
+ 42.800 37.500
+ -20397369.296 7 -15894045.730 7 20712514.567 20712511.392 20712513.499
+ 47.000 44.800
+ -240465.409 4 -187375.807 3 24585255.017 24585251.851 24585253.153
+ 24.200 21.100
+ -22346436.942 7 -17412807.320 7 20409325.541 20409320.310 20409324.431
+ 46.300 45.000
+ -6534439.464 5 -5091766.947 4 23295592.452 23295589.562 23295591.094
+ 34.500 27.100
+ 06 1 2 11 34 30.0000000 0 6G03G13G16G19G23G25
+ -15011634.721 6 -11697372.110 6 21703223.202 21703221.854 21703222.345
+ 41.500 36.100
+ -15650392.219 7 -12195110.060 6 21641107.624 21641104.547 21641107.369
+ 42.400 36.700
+ -20351505.052 7 -15858307.356 7 20721242.396 20721239.101 20721241.290
+ 46.900 44.700
+ -353167.581 4 -275195.609 3 24563807.642 24563805.168 24563806.497
+ 27.900 23.800
+ -22336382.038 7 -17404972.335 7 20411239.049 20411233.719 20411237.761
+ 46.200 44.800
+ -6456798.928 5 -5031267.851 4 23310366.500 23310363.872 23310365.498
+ 34.100 27.400
+ 06 1 2 11 35 0.0000000 0 6G03G13G16G19G23G25
+ -15094937.811 6 -11762283.585 5 21687371.319 21687369.727 21687370.266
+ 41.600 35.700
+ -15712662.996 7 -12243632.745 6 21629258.106 21629255.092 21629257.796
+ 43.000 38.000
+ -20305276.172 7 -15822284.852 7 20730039.309 20730036.112 20730038.283
+ 47.000 44.800
+ -465855.874 4 -363004.610 3 24542363.787 24542361.178 24542362.460
+ 25.300 21.100
+ -22325709.536 7 -17396656.102 7 20413269.760 20413264.646 20413268.572
+ 46.100 44.900
+ -6378984.708 5 -4970633.419 4 23325172.107 23325172.045 23325172.310
+ 32.800 28.100
+ 06 1 2 11 35 30.0000000 0 6G03G13G16G19G23G25
+ -15177829.943 7 -11826874.845 5 21671597.179 21671595.567 21671596.370
+ 42.200 35.600
+ -15774452.610 7 -12291780.495 6 21617499.794 21617497.049 21617499.512
+ 42.900 38.000
+ -20258684.680 7 -15785979.796 7 20738905.359 20738902.221 20738904.231
+ 46.900 44.600
+ -578527.982 4 -450801.016 3 24520923.370 24520920.141 24520922.317
+ 26.200 19.900
+ -22314419.470 7 -17387858.653 7 20415418.131 20415413.100 20415417.049
+ 46.000 44.700
+ -6300997.382 5 -4909864.133 4 23340013.295 23340012.582 23340013.144
+ 33.400 28.400
+ 06 1 2 11 36 0.0000000 0 6G03G13G16G19G23G25
+ -15260308.320 7 -11891143.689 5 21655901.500 21655900.557 21655901.014
+ 42.000 35.600
+ -15835758.831 7 -12339551.574 6 21605833.721 21605830.702 21605833.431
+ 42.800 37.800
+ -20211732.332 7 -15749393.551 7 20747840.077 20747836.862 20747839.089
+ 47.200 44.400
+ -691181.321 3 -538582.799 2 24499485.564 24499482.806 24499484.034
+ 23.400 17.000
+ -22302511.552 7 -17378579.758 7 20417684.557 20417679.039 20417683.264
+ 46.000 44.700
+ -6222837.241 5 -4848960.154 4 23354887.898 23354885.180 23354886.851
+ 33.500 25.600
+ 06 1 2 11 36 30.0000000 0 6G03G13G16G19G23G25
+ -15342370.387 7 -11955088.126 5 21640286.221 21640284.651 21640285.377
+ 42.700 35.700
+ -15896579.174 7 -12386944.054 6 21594260.168 21594257.050 21594259.825
+ 42.900 38.100
+ -20164420.770 7 -15712527.395 7 20756843.214 20756839.959 20756842.167
+ 47.300 44.300
+ -803813.227 4 -626347.856 2 24478053.696 24478049.298 24478050.952
+ 24.200 17.000
+ -22289985.607 7 -17368819.285 7 20420067.946 20420062.533 20420066.763
+ 46.100 44.600
+ -6144504.763 5 -4787921.889 4 23369794.327 23369791.580 23369793.184
+ 32.700 26.800
+ 06 1 2 11 37 0.0000000 0 6G03G13G16G19G23G25
+ -15424013.628 7 -12018706.223 5 21624750.466 21624748.423 21624749.221
+ 42.500 35.800
+ -15956911.390 7 -12433956.166 6 21582779.005 21582776.200 21582778.714
+ 42.900 38.300
+ -20116751.636 7 -15675382.610 7 20765914.357 20765911.059 20765913.277
+ 47.300 44.300
+ -916421.077 4 -714094.199 3 24456625.591 24456621.251 24456622.690
+ 24.200 19.900
+ -22276842.370 7 -17358577.805 7 20422569.249 20422563.618 20422567.978
+ 46.200 44.500
+ -6066000.363 5 -4726749.688 4 23384732.167 23384730.838 23384731.766
+ 33.100 27.100
+ 06 1 2 11 37 30.0000000 0 6G03G13G16G19G23G25
+ -15505235.189 7 -12081995.727 5 21609294.090 21609292.346 21609293.368
+ 43.200 35.500
+ -16016753.026 7 -12480586.008 6 21571391.586 21571388.597 21571391.239
+ 42.800 37.900
+ -20068726.542 7 -15637960.454 7 20775053.205 20775049.990 20775052.188
+ 47.500 44.400
+ -1029002.119 4 -801819.610 3 24435200.662 24435197.477 24435199.105
+ 24.900 21.600
+ -22263081.537 7 -17347855.077 7 20425187.839 20425182.299 20425186.562
+ 46.200 44.500
+ -5987324.576 5 -4665443.898 4 23399703.548 23399701.897 23399703.392
+ 33.400 27.600
+ 06 1 2 11 38 0.0000000 0 6G03G13G16G19G23G25
+ -15586032.531 7 -12144954.677 6 21593919.040 21593917.256 21593918.215
+ 42.900 36.100
+ -16076101.999 7 -12526831.963 6 21560097.925 21560095.053 21560097.562
+ 42.600 38.800
+ -20020347.486 7 -15600262.487 7 20784259.677 20784256.260 20784258.468
+ 47.400 44.300
+ -1141553.634 4 -889522.076 3 24413782.767 24413779.795 24413781.624
+ 28.400 21.600
+ -22248702.844 7 -17336650.907 7 20427923.796 20427918.504 20427922.668
+ 46.100 44.400
+ -5908477.719 5 -4604004.829 4 23414708.000 23414706.186 23414707.567
+ 32.700 27.400
+ 06 1 2 11 38 30.0000000 0 6G03G13G16G19G23G25
+ -15666402.940 7 -12207580.952 6 21578625.237 21578623.257 21578624.268
+ 43.000 36.300
+ -16134955.950 7 -12572692.176 6 21548898.555 21548895.562 21548898.211
+ 43.200 38.400
+ -19971615.971 7 -15562289.877 7 20793532.748 20793529.564 20793531.642
+ 47.200 44.000
+ -1254073.028 4 -977199.498 3 24392371.140 24392367.878 24392369.483
+ 26.500 22.600
+ -22233706.895 7 -17324965.754 7 20430777.893 20430772.011 20430776.600
+ 46.200 44.400
+ -5829460.208 5 -4542432.789 4 23429745.455 23429742.854 23429744.277
+ 33.100 27.600
+ 06 1 2 11 39 0.0000000 0 6G03G13G16G19G23G25
+ -15746343.828 7 -12269872.537 6 21563413.462 21563411.232 21563411.995
+ 42.700 37.100
+ -16193312.494 7 -12618164.806 6 21537793.612 21537790.619 21537793.294
+ 43.400 38.600
+ -19922533.826 7 -15524044.046 7 20802872.689 20802869.624 20802871.635
+ 47.200 44.100
+ -1366557.715 4 -1064849.817 4 24370965.859 24370963.051 24370964.294
+ 25.600 25.600
+ -22218093.663 7 -17312799.600 7 20433748.621 20433743.109 20433747.446
+ 46.100 44.300
+ -5750272.607 5 -4480728.192 4 23444813.804 23444812.087 23444812.984
+ 32.100 29.500
+ 06 1 2 11 39 30.0000000 0 7G03G13G16G19G23G25G27
+ -15825852.510 7 -12331827.337 6 21548282.747 21548281.185 21548281.688
+ 42.800 37.200
+ -16251169.659 7 -12663248.317 6 21526783.646 21526780.722 21526783.337
+ 43.400 38.800
+ -19873102.954 7 -15485526.485 7 20812278.982 20812275.900 20812277.982
+ 47.200 43.900
+ -1479004.962 4 -1152470.993 2 24349567.260 24349564.805 24349565.820
+ 25.900 17.800
+ -22201863.008 7 -17300152.342 7 20436836.951 20436831.726 20436835.815
+ 46.100 44.300
+ -5670915.205 5 -4418891.308 4 23459914.319 23459913.540 23459914.263
+ 33.000 28.100
+ -114982.438 3 -89596.692 2 25149595.639 25149594.054 25149594.262
+ 19.900 17.000
+ 06 1 2 11 40 0.0000000 0 7G03G13G16G19G23G25G27
+ -15904926.367 7 -12393443.311 6 21533235.458 21533233.827 21533234.505
+ 43.200 36.900
+ -16308524.844 7 -12707940.667 6 21515869.166 21515866.483 21515868.903
+ 43.400 38.800
+ -19823324.948 7 -15446738.429 7 20821751.642 20821748.327 20821750.503
+ 47.400 43.900
+ -1591412.094 4 -1240060.964 3 24328176.891 24328173.264 24328175.766
+ 26.500 19.300
+ -22185015.480 7 -17287024.402 7 20440043.061 20440037.734 20440041.891
+ 46.100 44.300
+ -5591388.634 5 -4356922.584 4 23475048.005 23475046.700 23475047.885
+ 32.700 27.600
+ -201249.991 2 -156818.163 3 25133178.703 25133178.196 25133177.626
+ 12.600 20.500
+ 06 1 2 11 40 30.0000000 0 7G03G13G16G19G23G25G27
+ -15983562.860 7 -12454718.469 6 21518271.148 21518269.759 21518270.353
+ 42.800 37.000
+ -16365375.900 7 -12752240.192 6 21505050.687 21505048.115 21505050.414
+ 43.300 39.100
+ -19773201.628 7 -15407681.297 7 20831289.850 20831286.428 20831288.669
+ 47.400 43.800
+ -1703776.579 3 -1327617.633 3 24306794.700 24306791.661 24306792.934
+ 22.600 19.900
+ -22167551.128 7 -17273415.819 7 20443366.345 20443361.175 20443365.190
+ 46.000 44.300
+ -5511693.377 5 -4294822.408 4 23490213.815 23490212.042 23490213.311
+ 32.100 27.100
+ -287543.960 3 -224060.138 3 25116758.729 25116757.176 25116757.427
+ 18.600 23.400
+ 06 1 2 11 41 0.0000000 0 7G03G13G16G19G23G25G27
+ -16061759.484 7 -12515650.881 6 21503391.565 21503389.451 21503390.152
+ 42.600 37.000
+ -16421720.616 7 -12796145.160 6 21494328.732 21494326.068 21494328.428
+ 43.200 39.100
+ -19722734.516 7 -15368356.268 7 20840893.222 20840890.102 20840892.131
+ 47.300 43.900
+ -1816095.739 4 -1415139.011 2 24285422.243 24285417.669 24285419.919
+ 26.200 13.900
+ -22149469.997 7 -17259326.631 7 20446807.430 20446801.968 20446806.027
+ 45.900 44.400
+ -5431829.714 5 -4232591.030 4 23505412.490 23505409.483 23505411.177
+ 32.000 25.600
+ -373863.632 3 -291322.174 4 25100332.215 25100330.475 25100331.276
+ 20.500 24.600
+ 06 1 2 11 41 30.0000000 0 7G03G13G16G19G23G25G27
+ -16139513.617 7 -12576238.482 6 21488594.671 21488593.281 21488593.804
+ 43.000 37.200
+ -16477556.585 7 -12839653.703 6 21483703.620 21483700.876 21483703.360
+ 43.700 39.300
+ -19671925.287 7 -15328764.661 7 20850561.799 20850558.776 20850560.745
+ 47.100 43.800
+ -1928366.903 4 -1502623.024 3 24264058.183 24264053.753 24264055.426
+ 26.800 20.500
+ -22130772.748 7 -17244757.348 7 20450365.165 20450359.930 20450364.024
+ 46.100 44.400
+ -5351798.197 5 -4170228.837 3 23520640.669 23520639.117 23520640.250
+ 31.600 23.800
+ -460208.514 4 -358603.877 4 25083901.982 25083899.477 25083901.120
+ 25.600 24.600
+ 06 1 2 11 42 0.0000000 0 7G03G13G16G19G23G25G27
+ -16216822.648 7 -12636479.262 6 21473883.417 21473881.750 21473882.491
+ 43.400 36.900
+ -16532881.796 7 -12882764.262 6 21473175.786 21473172.804 21473175.449
+ 43.900 39.300
+ -19620775.965 7 -15288908.043 7 20860295.134 20860292.239 20860294.152
+ 47.300 43.800
+ -2040587.347 4 -1590067.485 3 24242702.674 24242699.253 24242700.260
+ 25.600 23.800
+ -22111459.278 7 -17229707.896 7 20454040.440 20454035.117 20454039.239
+ 46.100 44.300
+ -5271599.317 5 -4107736.242 4 23535901.367 23535900.982 23535901.876
+ 32.700 26.800
+ -546578.154 4 -425904.868 4 25067466.109 25067464.553 25067465.277
+ 25.600 26.500
+ 06 1 2 11 42 30.0000000 0 7G03G13G16G19G23G25G27
+ -16293684.408 7 -12696371.514 6 21459257.055 21459255.503 21459256.012
+ 43.000 37.300
+ -16587694.154 7 -12925475.187 6 21462745.299 21462742.375 21462744.920
+ 43.600 39.500
+ -19569288.210 7 -15248787.710 7 20870093.023 20870090.001 20870091.962
+ 47.300 43.700
+ -2152754.366 4 -1677470.284 3 24221358.554 24221354.104 24221355.771
+ 25.900 22.100
+ -22091530.010 7 -17214178.601 7 20457832.701 20457827.555 20457831.644
+ 46.200 44.400
+ -5191233.482 5 -4045113.553 4 23551194.793 23551194.123 23551194.735
+ 32.700 25.900
+ -632971.963 4 -493224.690 3 25051025.473 25051024.247 25051024.515
+ 24.900 23.800
+ 06 1 2 11 43 0.0000000 0 7G03G13G16G19G23G25G27
+ -16370096.377 7 -12755913.277 6 21444716.082 21444714.911 21444715.274
+ 43.200 37.700
+ -16641991.458 7 -12967784.773 6 21452412.710 21452409.862 21452412.446
+ 43.800 39.100
+ -19517463.859 7 -15208405.099 7 20879954.966 20879951.963 20879953.884
+ 47.400 43.800
+ -2264865.321 4 -1764829.467 3 24200024.017 24200020.093 24200021.587
+ 27.100 21.100
+ -22070985.409 7 -17198169.825 7 20461742.570 20461737.070 20461741.298
+ 46.200 44.200
+ -5110701.142 5 -3982361.111 3 23566520.685 23566518.580 23566519.979
+ 31.300 23.400
+ -719389.112 4 -560562.689 3 25034579.964 25034578.916 25034579.379
+ 24.600 23.000
+ 06 1 2 11 43 30.0000000 0 7G03G13G16G19G23G25G27
+ -16446055.732 7 -12815102.356 6 21430261.802 21430260.009 21430260.734
+ 43.400 37.300
+ -16695771.614 7 -13009691.391 6 21442178.781 21442175.828 21442178.460
+ 43.700 39.400
+ -19465304.767 7 -15167761.645 7 20889880.724 20889877.456 20889879.519
+ 47.300 43.600
+ -2376917.656 4 -1852142.929 4 24178701.256 24178697.535 24178698.652
+ 25.900 25.900
+ -22049825.802 7 -17181681.824 7 20465769.007 20465763.630 20465767.828
+ 46.200 44.200
+ -5030002.903 5 -3919479.387 3 23581875.648 23581874.374 23581875.737
+ 30.400 22.600
+ -805829.382 4 -627918.727 3 25018131.939 25018130.364 25018131.128
+ 27.100 23.000
+ 06 1 2 11 44 0.0000000 0 7G03G13G16G19G23G25G27
+ -16521560.040 7 -12873936.862 6 21415893.922 21415891.932 21415892.872
+ 43.500 37.300
+ -16749032.219 7 -13051193.162 6 21432043.717 21432040.668 21432043.346
+ 43.600 39.300
+ -19412811.984 7 -15126858.180 7 20899869.735 20899866.513 20899868.584
+ 47.400 43.600
+ -2488908.474 4 -1939408.437 3 24157389.129 24157385.910 24157388.209
+ 29.000 21.100
+ -22028051.492 7 -17164714.834 7 20469912.465 20469907.168 20469911.193
+ 46.000 44.200
+ -4949139.050 5 -3856468.596 4 23597264.496 23597262.378 23597263.912
+ 30.600 24.200
+ -892292.017 4 -695292.215 3 25001678.613 25001676.573 25001677.748
+ 24.900 18.600
+ 06 1 2 11 44 30.0000000 0 7G03G13G16G19G23G25G27
+ -16596606.917 7 -12932414.934 6 21401612.762 21401610.976 21401611.805
+ 43.800 37.200
+ -16801771.133 7 -13092288.417 6 21422007.613 21422004.634 21422007.297
+ 43.500 39.300
+ -19359987.955 7 -15085696.594 7 20909921.780 20909918.467 20909920.699
+ 47.700 43.300
+ -2600835.238 4 -2026624.090 4 24136089.439 24136087.293 24136088.682
+ 26.500 24.600
+ -22005662.943 7 -17147269.214 7 20474172.905 20474167.492 20474171.731
+ 46.100 44.100
+ -4868110.212 5 -3793329.290 4 23612684.548 23612682.277 23612683.217
+ 30.600 26.500
+ -978776.287 3 -762682.559 3 24985221.181 24985219.125 24985220.116
+ 22.600 19.300
+ 06 1 2 11 45 0.0000000 0 7G03G13G16G19G23G25G27
+ -16671194.001 7 -12990534.721 6 21387419.371 21387417.422 21387418.406
+ 44.000 37.400
+ -16853986.232 7 -13132975.506 6 21412071.128 21412068.468 21412070.910
+ 43.400 39.500
+ -19306834.113 7 -15044278.015 7 20920036.751 20920033.326 20920035.623
+ 47.700 43.200
+ -2712694.994 4 -2113787.472 3 24114803.596 24114801.000 24114802.094
+ 25.900 23.000
+ -21982660.367 7 -17129345.134 7 20478550.234 20478544.628 20478548.969
+ 45.900 43.900
+ -4786916.777 5 -3730061.722 4 23628135.319 23628133.172 23628133.913
+ 30.800 25.600
+ -1065281.670 3 -830089.331 2 24968759.666 24968757.241 24968759.310
+ 19.900 16.100
+ 06 1 2 11 45 30.0000000 0 7G03G13G16G19G23G25G27
+ -16745318.505 7 -13048294.048 6 21373313.771 21373312.263 21373312.786
+ 43.800 38.000
+ -16905675.456 7 -13173252.819 6 21402235.123 21402232.374 21402234.808
+ 43.300 39.700
+ -19253352.268 7 -15002603.847 7 20930213.852 20930210.528 20930212.770
+ 47.700 43.100
+ -2824485.239 5 -2200896.738 3 24093531.290 24093527.900 24093529.713
+ 30.100 19.900
+ -21959044.627 7 -17110943.265 7 20483043.983 20483038.525 20483042.771
+ 45.900 43.800
+ -4705559.334 5 -3666666.352 4 23643617.197 23643614.982 23643615.974
+ 31.500 26.500
+ -1151807.412 3 -897511.973 2 24952294.942 24952291.670 24952293.582
+ 19.900 15.100
+ 06 1 2 11 46 0.0000000 0 7G03G13G16G19G23G25G27
+ -16818978.248 7 -13105691.232 6 21359296.866 21359295.078 21359296.005
+ 44.400 37.500
+ -16956836.693 7 -13213118.717 6 21392499.522 21392496.766 21392499.227
+ 43.700 39.600
+ -19199544.284 7 -14960675.546 7 20940453.162 20940449.908 20940452.115
+ 47.800 43.100
+ -2936203.419 4 -2287949.852 4 24072272.204 24072268.604 24072270.059
+ 28.600 24.600
+ -21934815.969 7 -17092063.794 7 20487654.444 20487649.173 20487653.288
+ 45.900 43.800
+ -4624038.440 5 -3603143.591 4 23659129.558 23659127.452 23659128.682
+ 30.400 26.800
+ -1238352.700 3 -964949.848 2 24935824.375 24935823.151 24935824.105
+ 19.300 16.100
+ 06 1 2 11 46 30.0000000 0 7G03G13G16G19G23G25G27
+ -16892170.586 7 -13162724.211 6 21345368.937 21345367.136 21345367.914
+ 44.200 37.900
+ -17007467.900 7 -13252571.608 6 21382864.721 21382862.006 21382864.442
+ 43.600 39.700
+ -19145411.736 7 -14918494.336 7 20950754.345 20950750.967 20950753.253
+ 47.800 42.800
+ -3047846.556 4 -2374944.469 3 24051027.125 24051023.767 24051025.300
+ 27.600 23.000
+ -21909974.702 7 -17072706.969 7 20492381.634 20492376.392 20492380.390
+ 45.800 43.800
+ -4542354.411 4 -3539493.760 4 23674672.504 23674671.921 23674672.240
+ 29.000 26.500
+ -1324917.300 3 -1032402.732 3 24919352.820 24919350.821 24919351.636
+ 21.600 22.100
+ 06 1 2 11 47 0.0000000 0 7G03G13G16G19G23G25G27
+ -16964893.246 7 -13219391.200 6 21331530.118 21331528.497 21331529.254
+ 44.300 38.000
+ -17057567.140 7 -13291609.977 6 21373330.934 21373328.417 21373330.605
+ 43.400 39.700
+ -19090956.587 7 -14876061.752 7 20961116.733 20961113.506 20961115.648
+ 47.600 42.800
+ -3159412.186 4 -2461878.682 4 24029796.705 24029793.611 24029794.771
+ 27.400 24.600
+ -21884521.623 7 -17052873.409 7 20497225.093 20497219.985 20497223.900
+ 45.900 43.900
+ -4460507.779 4 -3475717.225 4 23690247.467 23690246.784 23690247.223
+ 28.100 25.900
+ -1411500.640 3 -1099870.246 3 24902875.247 24902874.724 24902874.267
+ 21.100 23.400
+ 06 1 2 11 47 30.0000000 0 7G03G13G16G19G23G25G27
+ -17037143.898 7 -13275690.392 6 21317781.341 21317779.568 21317780.435
+ 44.300 37.900
+ -17107132.575 7 -13330232.394 6 21363899.137 21363896.490 21363898.876
+ 43.700 40.200
+ -19036180.362 7 -14833378.981 7 20971540.261 20971537.028 20971539.164
+ 47.500 42.600
+ -3270897.448 5 -2548750.295 4 24008582.954 24008578.626 24008580.391
+ 30.600 24.900
+ -21858457.387 7 -17032563.617 7 20502184.968 20502179.842 20502183.778
+ 45.900 43.800
+ -4378499.229 5 -3411814.473 4 23705853.997 23705852.386 23705852.857
+ 30.800 24.900
+ -1498101.282 3 -1167351.248 3 24886396.492 24886395.535 24886395.397
+ 22.100 22.100
+ 06 1 2 11 48 0.0000000 0 7G03G13G16G19G23G25G27
+ -17108920.377 7 -13331620.098 6 21304123.144 21304121.032 21304121.950
+ 44.200 37.900
+ -17156161.287 7 -13368436.587 6 21354569.138 21354566.515 21354568.865
+ 43.500 40.000
+ -18981084.789 7 -14790447.367 7 20982024.535 20982021.339 20982023.431
+ 47.300 42.600
+ -3382299.790 4 -2635557.325 3 23987383.818 23987378.664 23987381.137
+ 27.400 19.300
+ -21831782.549 7 -17011778.034 7 20507260.957 20507255.886 20507259.806
+ 45.700 43.700
+ -4296329.065 5 -3347785.811 3 23721491.413 23721488.370 23721489.855
+ 30.100 23.400
+ -1584719.167 4 -1234845.674 3 24869914.223 24869912.428 24869913.222
+ 25.300 20.500
+ 06 1 2 11 48 30.0000000 0 7G03G13G16G19G23G25G27
+ -17180219.767 7 -13387178.050 6 21290554.712 21290553.144 21290553.871
+ 44.400 38.100
+ -17204651.820 7 -13406221.415 6 21345342.041 21345339.082 21345341.688
+ 43.500 40.000
+ -18925671.609 7 -14747268.265 7 20992569.465 20992566.125 20992568.372
+ 47.700 42.400
+ -3493616.488 4 -2722297.545 4 23966199.301 23966196.464 23966197.342
+ 26.500 24.900
+ -21804497.539 7 -16990516.996 7 20512453.213 20512448.066 20512452.028
+ 45.900 43.700
+ -4213997.873 4 -3283631.662 3 23737157.932 23737155.090 23737156.902
+ 29.900 23.000
+ -1671353.603 4 -1302353.010 3 24853428.547 24853425.937 24853427.511
+ 25.900 20.500
+ 06 1 2 11 49 0.0000000 0 7G03G13G16G19G23G25G27
+ -17251039.880 7 -13442362.549 6 21277078.003 21277076.529 21277077.161
+ 44.300 38.400
+ -17252602.363 7 -13443585.473 6 21336217.366 21336214.554 21336217.055
+ 43.900 40.000
+ -18869942.802 7 -14703843.219 7 21003174.292 21003170.998 21003173.209
+ 47.700 42.400
+ -3604844.665 4 -2808968.835 4 23945032.624 23945030.703 23945032.070
+ 27.400 25.600
+ -21776603.026 7 -16968781.014 7 20517761.479 20517756.139 20517760.321
+ 46.000 43.600
+ -4131506.210 5 -3219352.471 4 23752856.054 23752853.761 23752855.227
+ 31.100 25.900
+ -1758003.845 4 -1369872.690 2 24836939.999 24836936.865 24836938.965
+ 26.500 17.000
+ 06 1 2 11 49 30.0000000 0 7G03G13G16G19G23G25G27
+ -17321378.546 7 -13497171.869 6 21263693.180 21263691.593 21263692.167
+ 44.400 38.400
+ -17300010.631 7 -13480526.976 6 21327195.689 21327192.877 21327195.452
+ 43.800 40.000
+ -18813899.791 7 -14660173.342 7 21013838.951 21013835.561 21013837.825
+ 47.900 42.300
+ -3715981.596 4 -2895569.007 4 23923884.883 23923882.031 23923882.977
+ 27.400 27.400
+ -21748099.389 7 -16946570.395 7 20523185.622 20523180.250 20523184.390
+ 45.900 43.600
+ -4048854.528 4 -3154948.589 4 23768582.513 23768581.736 23768582.486
+ 28.600 25.900
+ -1844669.314 3 -1437404.219 3 24820447.397 24820445.880 24820446.096
+ 23.800 22.100
+ 06 1 2 11 50 0.0000000 0 7G03G13G16G19G23G25G27
+ -17391233.547 7 -13551604.312 6 21250400.221 21250398.443 21250399.290
+ 44.600 38.400
+ -17346874.805 7 -13517044.519 6 21318277.988 21318274.860 21318277.613
+ 43.800 39.900
+ -18757544.380 8 -14616260.031 7 21024562.902 21024559.663 21024561.861
+ 48.000 42.200
+ -3827024.798 4 -2982096.098 4 23902753.610 23902750.372 23902752.470
+ 29.900 24.600
+ -21718987.661 7 -16923885.942 7 20528725.195 20528720.113 20528724.110
+ 46.000 43.600
+ -3966043.277 4 -3090420.407 3 23784340.471 23784340.147 23784340.913
+ 28.800 22.600
+ -1931349.142 4 -1504946.940 3 24803952.008 24803951.443 24803951.436
+ 26.200 23.000
+ 06 1 2 11 50 30.0000000 0 7G03G13G16G19G23G25G27
+ -17460602.416 7 -13605657.962 6 21237199.491 21237198.043 21237198.844
+ 44.800 38.400
+ -17393192.670 7 -13553136.368 6 21309463.664 21309460.987 21309463.383
+ 43.800 39.800
+ -18700878.224 7 -14572104.584 7 21035346.325 21035342.895 21035345.174
+ 47.800 42.200
+ -3937971.480 4 -3068548.074 4 23881641.417 23881638.747 23881640.008
+ 29.000 27.900
+ -21689268.781 7 -16900728.376 7 20534380.556 20534375.424 20534379.379
+ 46.000 43.600
+ -3883073.162 4 -3025768.402 3 23800130.575 23800128.724 23800129.633
+ 29.700 22.600
+ -2018042.886 4 -1572500.471 3 24787455.726 24787453.733 24787454.616
+ 26.200 23.800
+ 06 1 2 11 51 0.0000000 0 7G03G13G16G19G23G25G27
+ -17529483.025 7 -13659331.148 6 21224092.612 21224090.333 21224091.288
+ 44.600 38.500
+ -17438962.356 7 -13588801.057 6 21300754.111 21300751.396 21300753.773
+ 43.800 40.400
+ -18643903.491 7 -14527708.691 7 21046188.185 21046184.834 21046186.994
+ 47.700 42.100
+ -4048818.733 4 -3154922.497 3 23860548.392 23860544.170 23860546.106
+ 29.000 22.600
+ -21658943.080 7 -16877097.969 7 20540151.282 20540146.166 20540150.171
+ 46.000 43.400
+ -3799944.666 4 -2960992.958 3 23815950.463 23815947.069 23815948.828
+ 29.500 21.600
+ -2104749.600 4 -1640064.135 4 24770956.165 24770953.691 24770955.201
+ 27.600 24.900
+ 06 1 2 11 51 30.0000000 0 7G03G13G16G19G23G25G27
+ -17597873.003 7 -13712622.019 6 21211078.011 21211076.230 21211077.114
+ 45.100 38.600
+ -17484182.014 7 -13624037.155 6 21292149.163 21292146.498 21292148.850
+ 43.900 40.500
+ -18586621.585 7 -14483073.440 7 21057088.276 21057085.100 21057087.277
+ 47.700 42.000
+ -4159563.853 4 -3241217.351 4 23839473.896 23839471.088 23839472.094
+ 28.400 28.100
+ -21628011.304 7 -16852995.291 7 20546037.509 20546032.268 20546036.339
+ 46.100 43.300
+ -3716658.313 4 -2896094.551 4 23831799.544 23831796.529 23831797.588
+ 27.900 24.200
+ -2191468.537 4 -1707637.322 4 24754453.797 24754451.301 24754452.361
+ 24.900 24.600
+ 06 1 2 11 52 0.0000000 0 7G03G13G16G19G23G25G27
+ -17665770.040 7 -13765528.785 6 21198157.592 21198155.606 21198156.608
+ 45.100 38.600
+ -17528850.099 7 -13658843.452 6 21283648.996 21283646.292 21283648.742
+ 44.100 40.400
+ -18529034.269 7 -14438200.206 6 21068046.819 21068043.628 21068045.855
+ 47.800 41.900
+ -4270204.356 5 -3327430.701 3 23818419.694 23818416.083 23818417.978
+ 31.100 23.400
+ -21596474.476 7 -16828421.145 7 20552038.754 20552033.510 20552037.683
+ 46.100 43.300
+ -3633214.552 4 -2831073.483 4 23847677.254 23847675.618 23847676.329
+ 29.200 24.600
+ -2278199.058 4 -1775219.526 3 24737949.549 24737946.668 24737948.814
+ 24.900 23.400
+ 06 1 2 11 52 30.0000000 0 7G03G13G16G19G23G25G27
+ -17733171.864 7 -13818049.671 6 21185331.720 21185329.441 21185330.704
+ 45.300 38.400
+ -17572964.009 7 -13693217.935 6 21275254.397 21275251.531 21275254.067
+ 44.000 40.300
+ -18471143.583 7 -14393090.581 6 21079063.238 21079059.893 21079062.120
+ 47.700 41.900
+ -4380737.589 4 -3413560.451 4 23797385.099 23797382.779 23797383.978
+ 27.900 26.200
+ -21564333.160 7 -16803375.971 7 20558155.270 20558149.825 20558154.101
+ 46.100 43.200
+ -3549614.062 4 -2765930.278 4 23863585.385 23863584.207 23863585.088
+ 29.200 24.600
+ -2364940.578 4 -1842810.304 4 24721443.014 24721440.499 24721442.318
+ 24.600 24.200
+ 06 1 2 11 53 0.0000000 0 7G03G13G16G19G23G25G27
+ -17800076.399 7 -13870183.040 6 21172600.382 21172597.978 21172599.255
+ 45.200 38.900
+ -17616522.230 7 -13727159.406 6 21266965.558 21266962.771 21266965.264
+ 43.700 40.500
+ -18412950.961 7 -14347745.683 6 21090137.046 21090133.676 21090135.964
+ 47.500 41.500
+ -4491160.519 4 -3499604.290 3 23776374.009 23776369.115 23776371.529
+ 28.800 21.600
+ -21531588.116 7 -16777860.360 7 20564386.350 20564380.998 20564385.149
+ 46.000 43.100
+ -3465857.287 4 -2700665.288 3 23879523.328 23879522.487 23879523.423
+ 29.200 21.600
+ -2451692.107 3 -1910408.848 4 24704934.826 24704932.504 24704933.800
+ 23.800 26.500
+ 06 1 2 11 53 30.0000000 0 7G03G13G16G19G23G25G27
+ -17866481.273 7 -13921927.075 6 21159963.750 21159961.511 21159962.679
+ 45.400 38.800
+ -17659522.770 7 -13760666.321 6 21258782.783 21258780.040 21258782.515
+ 44.000 40.500
+ -18354458.116 7 -14302166.843 6 21101267.645 21101264.392 21101266.612
+ 47.400 41.400
+ -4601470.490 5 -3585560.065 4 23755381.948 23755378.710 23755380.066
+ 30.600 27.100
+ -21498240.535 7 -16751875.238 7 20570732.019 20570726.885 20570730.855
+ 45.900 43.100
+ -3381944.804 4 -2635278.992 4 23895490.953 23895491.136 23895491.026
+ 29.000 24.900
+ -2538453.145 3 -1978014.841 4 24688423.203 24688422.368 24688422.610
+ 21.100 24.600
+ 06 1 2 11 54 0.0000000 0 7G03G13G16G19G23G25G27
+ -17932384.496 7 -13973280.215 6 21147422.488 21147420.590 21147421.559
+ 45.300 39.000
+ -17701963.996 7 -13793737.405 6 21250706.353 21250703.690 21250706.104
+ 43.900 40.700
+ -18295666.846 7 -14256355.467 6 21112455.277 21112451.903 21112454.133
+ 47.400 41.200
+ -4711664.989 4 -3671425.891 3 23734412.240 23734408.290 23734410.338
+ 28.800 19.300
+ -21464291.124 7 -16725421.160 7 20577192.670 20577187.184 20577191.387
+ 46.000 43.100
+ -3297877.209 4 -2569771.838 4 23911490.049 23911488.574 23911488.961
+ 28.800 24.600
+ -2625223.036 3 -2045627.674 3 24671911.742 24671910.146 24671911.177
+ 20.500 21.100
+ 06 1 2 11 54 30.0000000 0 7G03G13G16G19G23G25G27
+ -17997783.843 7 -14024240.727 6 21134977.314 21134975.415 21134976.482
+ 45.300 38.900
+ -17743844.260 7 -13826371.375 6 21242736.949 21242734.314 21242736.569
+ 43.600 40.700
+ -18236578.869 7 -14210312.889 6 21123699.457 21123695.966 21123698.271
+ 47.300 41.000
+ -4821741.246 5 -3757199.558 4 23713464.074 23713462.620 23713463.926
+ 31.600 27.100
+ -21429740.908 7 -16698498.924 7 20583767.183 20583761.865 20583765.963
+ 46.100 43.100
+ -3213654.961 5 -2504144.182 4 23927517.179 23927515.873 23927516.148
+ 30.100 24.600
+ -2712001.117 3 -2113246.949 3 24655399.772 24655397.391 24655398.301
+ 23.800 21.100
+ 06 1 2 11 55 0.0000000 0 7G03G13G16G19G23G25G27
+ -18062677.035 7 -14074806.839 6 21122628.684 21122626.641 21122627.732
+ 45.400 39.100
+ -17785161.227 7 -13858566.411 6 21234874.472 21234872.070 21234874.193
+ 43.700 41.100
+ -18177195.723 7 -14164040.310 6 21134999.556 21134996.288 21134998.436
+ 47.400 40.900
+ -4931696.375 5 -3842878.844 3 23692541.455 23692537.915 23692540.385
+ 31.500 23.000
+ -21394590.854 7 -16671109.281 7 20590455.663 20590450.745 20590454.641
+ 45.900 43.100
+ -3129278.832 4 -2438396.583 3 23943572.892 23943571.630 23943572.020
+ 28.100 22.600
+ -2798786.327 4 -2180871.779 3 24638885.364 24638882.465 24638884.497
+ 26.500 21.600
+ 06 1 2 11 55 30.0000000 0 7G03G13G16G19G23G25G27
+ -18127061.883 7 -14124976.836 6 21110376.717 21110374.611 21110375.788
+ 45.600 39.300
+ -17825913.267 7 -13890321.244 6 21227119.726 21227116.979 21227119.455
+ 44.000 40.800
+ -18117519.310 7 -14117539.212 6 21146355.475 21146352.346 21146354.470
+ 47.400 41.200
+ -5041527.545 4 -3928461.553 4 23671641.326 23671638.545 23671639.211
+ 26.800 28.100
+ -21358841.488 7 -16643252.641 7 20597258.737 20597253.733 20597257.673
+ 46.100 43.000
+ -3044749.155 4 -2372529.347 3 23959658.567 23959656.947 23959657.869
+ 27.400 21.100
+ -2885577.695 4 -2248501.426 3 24622368.302 24622366.221 24622367.630
+ 26.500 20.500
+ 06 1 2 11 56 0.0000000 0 7G03G13G16G19G23G25G27
+ -18190936.235 7 -14174749.050 6 21098221.806 21098219.657 21098220.787
+ 45.600 38.900
+ -17866098.946 7 -13921634.772 6 21219472.875 21219469.848 21219472.543
+ 44.100 40.700
+ -18057551.361 7 -14070810.938 6 21157767.384 21157763.978 21157766.228
+ 47.300 41.000
+ -5151232.350 5 -4013945.802 4 23650765.667 23650761.803 23650763.786
+ 30.800 25.900
+ -21322494.286 7 -16614930.153 7 20604175.572 20604170.389 20604174.387
+ 45.900 42.900
+ -2960066.617 4 -2306542.972 3 23975773.228 23975771.906 23975772.513
+ 28.600 22.600
+ -2972374.709 4 -2316135.451 3 24605852.008 24605849.318 24605850.818
+ 28.100 21.100
+ 06 1 2 11 56 30.0000000 0 7G03G13G16G19G23G25G27
+ -18254298.200 7 -14224122.009 6 21086164.304 21086162.555 21086163.380
+ 45.600 39.700
+ -17905716.164 7 -13952505.333 6 21211934.026 21211931.091 21211933.710
+ 44.200 41.000
+ -17997293.725 7 -14023856.943 6 21169234.020 21169230.644 21169232.812
+ 47.400 41.200
+ -5260807.761 5 -4099329.139 5 23629913.668 23629911.080 23629912.060
+ 32.000 30.200
+ -21285549.916 7 -16586142.343 7 20611205.909 20611200.639 20611204.670
+ 45.900 42.900
+ -2875231.773 4 -2240437.952 3 23991917.911 23991915.487 23991916.578
+ 28.100 22.600
+ -3059176.357 4 -2383773.117 2 24589334.742 24589331.272 24589333.428
+ 26.800 17.800
+ 06 1 2 11 57 0.0000000 0 7G03G13G16G19G23G25G27
+ -18317145.430 7 -14273093.866 6 21074204.998 21074202.960 21074204.019
+ 45.900 39.300
+ -17944763.260 7 -13982931.641 6 21204503.610 21204500.763 21204503.270
+ 44.000 41.200
+ -17936748.072 7 -13976678.518 6 21180755.275 21180752.104 21180754.109
+ 47.600 41.100
+ -5370251.071 5 -4184609.640 4 23609088.063 23609084.235 23609085.471
+ 30.100 26.800
+ -21248009.547 7 -16556890.119 7 20618349.658 20618344.223 20618348.484
+ 46.100 42.500
+ -2790245.180 4 -2174214.696 3 24008091.030 24008087.928 24008089.343
+ 27.400 22.100
+ -3145982.284 4 -2451414.121 3 24572815.228 24572812.877 24572814.607
+ 27.600 19.900
+ 06 1 2 11 57 30.0000000 0 7G03G13G16G19G23G25G27
+ -18379476.014 7 -14321663.132 6 21062343.742 21062341.979 21062342.867
+ 45.800 39.700
+ -17983238.690 7 -14012912.496 6 21197181.875 21197179.091 21197181.552
+ 44.000 41.000
+ -17875915.897 7 -13929276.828 6 21192331.110 21192327.976 21192330.064
+ 47.400 40.700
+ -5479559.596 4 -4269785.063 4 23588286.586 23588283.315 23588284.435
+ 28.800 26.800
+ -21209874.267 7 -16527174.323 7 20625606.531 20625601.124 20625605.307
+ 46.000 42.300
+ -2705107.397 4 -2107873.623 3 24024291.512 24024288.838 24024290.217
+ 27.100 23.000
+ -3232791.493 4 -2519057.653 4 24556296.671 24556294.808 24556295.464
+ 27.600 24.200
+ 06 1 2 11 58 0.0000000 0 7G03G13G16G19G23G25G27
+ -18441288.057 7 -14369828.341 6 21050581.323 21050579.547 21050580.405
+ 45.800 39.900
+ -18021140.751 7 -14042446.573 6 21189969.320 21189966.375 21189969.028
+ 44.300 41.000
+ -17814799.008 7 -13881653.282 6 21203961.152 21203958.198 21203960.250
+ 47.600 40.700
+ -5588730.684 4 -4354853.436 4 23567511.761 23567508.913 23567510.091
+ 28.800 27.100
+ -21171145.040 7 -16496995.717 7 20632976.438 20632971.055 20632975.195
+ 46.100 42.400
+ -2619819.127 4 -2041415.291 3 24040521.536 24040519.142 24040519.597
+ 27.100 23.000
+ -3319603.141 4 -2586703.069 4 24539776.178 24539774.741 24539775.467
+ 24.200 26.500
+ 06 1 2 11 58 30.0000000 0 7G03G13G16G19G23G25G27
+ -18502579.184 7 -14417587.642 6 21038918.168 21038916.223 21038917.037
+ 45.700 39.800
+ -18058467.554 7 -14071532.395 6 21182866.196 21182863.336 21182865.930
+ 44.100 41.100
+ -17753399.372 7 -13833809.410 6 21215645.279 21215642.098 21215644.301
+ 47.600 40.700
+ -5697761.742 5 -4439812.636 4 23546765.164 23546760.732 23546762.484
+ 30.800 27.400
+ -21131823.043 7 -16466355.209 7 20640459.373 20640453.811 20640458.140
+ 46.200 42.500
+ -2534380.881 4 -1974840.065 3 24056778.651 24056777.472 24056777.907
+ 26.800 23.400
+ -3406416.475 3 -2654349.789 4 24523255.409 24523254.061 24523254.768
+ 23.800 29.000
+ 06 1 2 11 59 0.0000000 0 7G03G13G16G19G23G25G27
+ -18563347.610 7 -14464939.653 6 21027354.176 21027352.338 21027353.194
+ 45.900 39.900
+ -18095217.436 7 -14100168.669 6 21175872.923 21175870.256 21175872.614
+ 44.000 41.500
+ -17691718.534 7 -13785746.423 6 21227382.972 21227379.619 21227381.757
+ 47.400 40.500
+ -5806649.750 5 -4524660.412 4 23526043.812 23526040.230 23526041.540
+ 32.100 27.100
+ -21091909.412 7 -16435253.690 7 20648054.623 20648049.109 20648053.427
+ 46.200 42.400
+ -2448793.259 4 -1908148.490 3 24073063.604 24073063.863 24073064.527
+ 27.100 21.600
+ -3493230.812 3 -2721997.242 4 24506735.083 24506734.013 24506733.929
+ 22.100 27.900
+ 06 1 2 11 59 30.0000000 0 7G03G13G16G19G23G25G27
+ -18623591.257 7 -14511882.738 6 21015889.946 21015888.335 21015889.122
+ 46.000 40.000
+ -18131388.574 7 -14128353.972 6 21168989.861 21168987.081 21168989.549
+ 44.000 41.000
+ -17629758.149 7 -13737465.603 6 21239173.542 21239170.221 21239172.455
+ 47.300 40.300
+ -5915392.271 5 -4609394.819 4 23505350.026 23505346.841 23505348.759
+ 33.200 25.600
+ -21051405.249 7 -16403692.015 7 20655762.231 20655756.862 20655761.032
+ 46.100 42.300
+ -2363056.830 4 -1841340.928 3 24089379.047 24089379.055 24089379.669
+ 26.800 21.600
+ -3580045.090 4 -2789644.710 4 24490215.834 24490214.153 24490214.784
+ 25.300 29.200
+ 06 1 2 12 0 0.0000000 0 7G03G13G16G19G23G25G27
+ -18683308.056 7 -14558415.306 6 21004526.254 21004524.644 21004525.406
+ 46.000 40.000
+ -18166979.906 7 -14156087.476 6 21162217.103 21162214.142 21162216.813
+ 44.300 41.100
+ -17567519.836 7 -13688968.221 6 21251017.217 21251013.751 21251016.067
+ 47.300 40.100
+ -6023986.157 5 -4694013.432 4 23484686.026 23484682.082 23484684.185
+ 33.000 25.900
+ -21010311.638 7 -16371671.029 7 20663581.813 20663576.711 20663580.814
+ 46.000 42.400
+ -2277172.242 4 -1774417.933 3 24105723.225 24105721.777 24105723.285
+ 27.100 22.100
+ -3666858.689 4 -2857291.634 4 24473695.523 24473694.335 24473694.689
+ 26.500 29.200
+ 06 1 2 12 0 30.0000000 0 7G03G13G16G19G23G25G27
+ -18742496.198 7 -14604535.924 6 20993263.095 20993261.360 20993262.227
+ 45.800 39.800
+ -18201989.435 7 -14183367.632 6 21155555.090 21155552.093 21155554.735
+ 44.300 41.200
+ -17505005.512 7 -13640255.767 6 21262913.017 21262909.807 21262911.964
+ 47.000 40.100
+ -6132429.079 5 -4778514.401 4 23464050.992 23464045.799 23464048.032
+ 32.600 25.600
+ -20968629.660 7 -16339191.575 7 20671513.807 20671508.539 20671512.568
+ 45.900 42.100
+ -2191140.100 4 -1707379.983 3 24122094.564 24122093.774 24122094.593
+ 24.600 22.100
+ -3753670.612 4 -2924937.265 4 24457176.679 24457174.620 24457175.593
+ 28.800 27.600
+ 06 1 2 12 1 0.0000000 0 7G03G13G16G19G23G25G27
+ -18801153.609 7 -14650242.989 6 20982100.827 20982099.191 20982100.038
+ 45.800 40.000
+ -18236415.996 7 -14210193.525 6 21149003.756 21149001.014 21149003.403
+ 44.000 41.400
+ -17442216.631 7 -13591329.369 6 21274861.530 21274858.227 21274860.471
+ 47.000 40.100
+ -6240718.070 5 -4862895.386 4 23443442.541 23443439.346 23443440.972
+ 31.800 27.100
+ -20926360.642 7 -16306254.688 7 20679557.093 20679552.101 20679556.091
+ 46.100 42.100
+ -2104960.888 4 -1640227.410 3 24138495.144 24138493.228 24138494.362
+ 26.200 19.300
+ -3840480.004 4 -2992580.953 3 24440655.996 24440654.644 24440655.357
+ 26.500 23.000
+ 06 1 2 12 1 30.0000000 0 7G03G13G16G19G23G25G27
+ -18859278.282 7 -14695534.921 6 20971040.389 20971038.453 20971039.319
+ 45.600 39.900
+ -18270257.599 7 -14236563.608 6 21142563.890 21142561.092 21142563.589
+ 43.900 41.200
+ -17379155.213 7 -13542190.611 6 21286861.740 21286858.436 21286860.671
+ 47.000 39.900
+ -6348850.385 5 -4947154.348 4 23422865.466 23422862.889 23422864.165
+ 32.300 28.600
+ -20883506.228 7 -16272861.646 7 20687712.418 20687707.069 20687711.237
+ 45.900 42.200
+ -2018635.424 4 -1572960.893 3 24154922.216 24154920.576 24154922.125
+ 27.400 21.600
+ -3927286.249 4 -3060222.195 3 24424138.697 24424135.607 24424137.524
+ 26.500 20.500
+ 06 1 2 12 2 0.0000000 0 7G03G13G16G19G23G25G27
+ -18916868.338 7 -14740410.280 6 20960081.070 20960079.399 20960080.170
+ 45.800 40.000
+ -18303512.747 7 -14262476.713 6 21136235.612 21136232.759 21136235.276
+ 44.000 41.200
+ -17315822.673 7 -13492840.588 6 21298913.309 21298910.135 21298912.369
+ 47.000 39.700
+ -6456823.400 5 -5031289.112 4 23402319.548 23402315.670 23402317.542
+ 31.600 26.800
+ -20840067.187 7 -16239013.053 7 20695978.231 20695973.154 20695977.318
+ 46.100 42.100
+ -1932164.162 4 -1505580.732 3 24171376.781 24171375.775 24171376.651
+ 27.400 22.100
+ -4014088.576 4 -3127860.368 3 24407620.264 24407617.698 24407619.315
+ 26.800 19.300
+ 06 1 2 12 2 30.0000000 0 7G03G13G16G19G23G25G27
+ -18973921.853 7 -14784867.553 6 20949224.505 20949222.480 20949223.395
+ 46.000 40.100
+ -18336179.980 7 -14287931.698 6 21130019.257 21130016.505 21130018.958
+ 43.800 41.500
+ -17252220.814 7 -13443280.701 6 21311016.435 21311013.257 21311015.376
+ 47.100 39.800
+ -6564634.288 5 -5115297.535 5 23381803.486 23381800.690 23381801.803
+ 31.800 30.400
+ -20796045.084 7 -16204710.126 7 20704355.914 20704350.311 20704354.582
+ 46.100 42.000
+ -1845547.863 4 -1438087.609 3 24187858.380 24187858.093 24187858.704
+ 26.500 19.300
+ -4100885.970 4 -3195494.703 3 24391102.996 24391101.332 24391101.996
+ 25.300 23.400
+ 06 1 2 12 3 0.0000000 0 7G03G13G16G19G23G25G27
+ -19030437.239 7 -14828905.506 6 20938469.703 20938467.853 20938468.737
+ 46.000 39.900
+ -18368257.848 7 -14312927.437 6 21123915.178 21123912.268 21123914.870
+ 44.200 41.600
+ -17188351.251 7 -13393512.216 6 21323170.544 21323167.275 21323169.479
+ 47.100 39.700
+ -6672280.335 5 -5199177.585 4 23361318.333 23361315.531 23361317.381
+ 33.000 26.800
+ -20751440.961 7 -16169953.677 7 20712843.320 20712838.307 20712842.252
+ 45.800 42.000
+ -1758787.068 4 -1370481.873 3 24204368.569 24204368.682 24204368.839
+ 26.200 21.600
+ -4187677.352 4 -3263124.342 4 24374587.092 24374585.188 24374585.918
+ 25.600 24.200
+ 06 1 2 12 3 30.0000000 0 7G03G13G16G19G23G25G27
+ -19086412.458 7 -14872522.542 6 20927818.063 20927816.168 20927817.153
+ 46.200 40.100
+ -18399744.841 7 -14337462.764 6 21117923.407 21117920.449 21117923.061
+ 44.100 41.500
+ -17124215.728 7 -13343536.486 6 21335375.017 21335371.907 21335374.005
+ 47.000 40.000
+ -6779758.701 5 -5282926.947 4 23340868.122 23340863.006 23340865.464
+ 32.800 29.000
+ -20706256.360 7 -16134744.908 6 20721442.060 20721436.670 20721440.654
+ 45.700 41.900
+ -1671882.409 4 -1302764.043 3 24220906.407 24220906.004 24220906.471
+ 25.600 21.100
+ -4274462.015 4 -3330748.750 3 24358073.032 24358070.440 24358072.087
+ 28.100 23.400
+ 06 1 2 12 4 0.0000000 0 7G03G13G16G19G23G25G27
+ -19141845.628 7 -14915717.206 6 20917269.304 20917267.487 20917268.456
+ 46.300 40.000
+ -18430639.588 7 -14361536.597 6 21112044.347 21112041.518 21112044.055
+ 44.300 41.800
+ -17059816.110 7 -13293354.975 6 21347629.877 21347626.705 21347628.852
+ 46.900 39.800
+ -6887067.038 5 -5366543.790 5 23320447.928 23320443.486 23320444.840
+ 33.000 30.100
+ -20660492.472 7 -16099084.742 6 20730150.343 20730145.221 20730149.224
+ 46.100 41.900
+ -1584834.611 4 -1234934.635 3 24237471.715 24237470.794 24237471.438
+ 25.900 19.300
+ -4361239.167 4 -3398367.296 4 24341559.553 24341557.629 24341558.608
+ 25.300 26.500
+ 06 1 2 12 4 30.0000000 0 7G03G13G16G19G23G25G27
+ -19196735.193 7 -14958488.281 6 20906824.202 20906822.355 20906823.272
+ 46.300 40.200
+ -18460940.635 7 -14385147.805 6 21106278.076 21106275.532 21106277.784
+ 44.300 41.800
+ -16995153.726 7 -13242968.711 6 21359934.881 21359931.511 21359933.664
+ 46.900 39.500
+ -6994202.330 5 -5450025.804 4 23300059.216 23300055.997 23300057.567
+ 33.800 29.700
+ -20614150.763 7 -16062974.328 6 20738968.999 20738963.787 20738967.863
+ 46.100 41.900
+ -1497644.242 4 -1166994.195 3 24254064.183 24254062.600 24254063.359
+ 26.500 19.300
+ -4448007.683 4 -3465979.114 4 24325047.014 24325045.965 24325046.245
+ 24.200 25.900
+ 06 1 2 12 5 0.0000000 0 7G03G13G16G19G23G25G27
+ -19251079.230 7 -15000834.270 6 20896482.823 20896480.982 20896481.936
+ 46.300 40.000
+ -18490646.411 7 -14408295.166 6 21100625.309 21100622.504 21100624.962
+ 44.100 41.600
+ -16930230.239 7 -13192378.989 6 21372289.346 21372286.151 21372288.301
+ 47.000 39.800
+ -7101161.706 5 -5533370.753 4 23279705.898 23279702.173 23279704.254
+ 34.000 28.800
+ -20567232.624 7 -16026414.743 6 20747897.121 20747891.979 20747896.048
+ 46.000 41.700
+ -1410311.896 4 -1098943.087 3 24270682.761 24270681.082 24270681.833
+ 25.600 19.300
+ -4534766.965 4 -3533583.722 4 24308537.477 24308536.826 24308536.729
+ 26.500 28.600
+ 06 1 2 12 5 30.0000000 0 7G03G13G16G19G23G25G27
+ -19304876.043 7 -15042753.850 6 20886245.640 20886243.824 20886244.832
+ 46.400 40.400
+ -18519755.661 7 -14430977.702 6 21095086.013 21095083.210 21095085.657
+ 44.000 41.800
+ -16865047.508 7 -13141587.255 6 21384693.467 21384689.841 21384692.217
+ 47.000 39.400
+ -7207942.730 5 -5616576.731 4 23259388.171 23259382.410 23259384.946
+ 33.000 29.500
+ -20519739.459 7 -15989407.097 6 20756934.908 20756929.588 20756933.739
+ 46.100 41.600
+ -1322838.263 4 -1030781.902 3 24287328.145 24287327.566 24287327.748
+ 25.600 21.600
+ -4621516.147 4 -3601180.456 4 24292030.672 24292028.419 24292029.706
+ 26.800 27.900
+ 06 1 2 12 6 0.0000000 0 7G03G13G16G19G23G25G27
+ -19358123.805 7 -15084245.606 6 20876113.149 20876111.152 20876112.136
+ 46.300 40.500
+ -18548267.216 7 -14453194.502 6 21089660.415 21089657.733 21089660.090
+ 44.000 41.800
+ -16799607.328 7 -13090594.916 6 21397146.014 21397142.827 21397144.884
+ 47.000 39.100
+ -7314542.373 5 -5699641.335 4 23239101.988 23239097.292 23239099.251
+ 32.600 29.000
+ -20471672.696 7 -15951952.483 6 20766081.856 20766076.482 20766080.658
+ 46.100 41.600
+ -1235224.036 3 -962511.157 3 24303999.884 24304000.196 24303999.988
+ 23.800 22.100
+ -4708254.132 4 -3668768.507 4 24275524.954 24275522.873 24275523.849
+ 27.600 28.100
+ 06 1 2 12 6 30.0000000 0 7G03G13G16G19G23G25G27
+ -19410820.695 7 -15125308.109 6 20866085.101 20866083.455 20866084.171
+ 46.200 40.800
+ -18576179.500 7 -14474944.336 6 21084349.014 21084346.158 21084348.662
+ 44.100 41.700
+ -16733911.371 7 -13039403.268 6 21409647.416 21409644.233 21409646.384
+ 46.900 38.900
+ -7420958.187 5 -5782562.726 4 23218848.960 23218847.076 23218849.140
+ 32.300 29.500
+ -20423033.933 7 -15914052.162 6 20775337.411 20775332.182 20775336.239
+ 46.200 41.700
+ -1147469.786 3 -894131.334 3 24320699.200 24320699.326 24320699.232
+ 20.500 21.100
+ -4794980.332 4 -3736347.348 5 24259021.171 24259019.678 24259019.979
+ 27.100 30.100
+ 06 1 2 12 7 0.0000000 0 7G03G13G16G19G23G25G27
+ -19462965.080 7 -15165940.090 6 20856162.259 20856160.665 20856161.478
+ 46.600 40.800
+ -18603491.378 7 -14496226.319 7 21079151.653 21079148.987 21079151.342
+ 44.000 42.000
+ -16667961.160 7 -12988013.496 6 21422197.270 21422194.306 21422196.340
+ 46.900 39.000
+ -7527187.237 5 -5865338.614 4 23198634.593 23198632.228 23198634.094
+ 33.900 28.400
+ -20373824.602 7 -15875707.240 6 20784701.613 20784696.295 20784700.431
+ 46.000 41.300
+ -1059576.292 4 -825642.988 3 24337425.308 24337424.415 24337424.770
+ 25.300 20.500
+ -4881693.157 4 -3803915.745 4 24242519.829 24242518.339 24242518.882
+ 25.900 27.900
+ 06 1 2 12 7 30.0000000 0 7G03G13G16G19G23G25G27
+ -19514554.969 7 -15206140.000 6 20846345.163 20846343.362 20846344.309
+ 46.800 40.600
+ -18630201.052 7 -14517039.055 7 21074068.893 21074066.319 21074068.576
+ 43.900 42.100
+ -16601758.347 7 -12936426.896 6 21434795.263 21434792.176 21434794.233
+ 46.500 38.800
+ -7633226.697 5 -5947966.764 4 23178457.739 23178453.205 23178455.737
+ 33.900 26.500
+ -20324046.196 7 -15836918.885 6 20794174.251 20794168.686 20794173.133
+ 46.300 41.200
+ -971544.137 4 -757046.589 2 24354178.240 24354176.125 24354177.891
+ 25.600 17.000
+ -4968392.098 4 -3871473.346 4 24226021.804 24226019.879 24226020.654
+ 27.100 25.900
+ 06 1 2 12 8 0.0000000 0 7G03G13G16G19G23G25G27
+ -19565589.032 7 -15245906.797 6 20836633.831 20836631.854 20836632.817
+ 46.600 40.900
+ -18656307.623 7 -14537381.843 7 21069101.003 21069098.370 21069100.686
+ 44.100 42.100
+ -16535304.613 7 -12884644.775 6 21447441.065 21447437.950 21447440.042
+ 46.400 39.000
+ -7739073.946 5 -6030445.091 4 23158316.220 23158311.217 23158313.712
+ 34.600 27.900
+ -20273700.178 7 -15797688.231 6 20803754.886 20803749.281 20803753.546
+ 46.000 41.200
+ -883374.049 4 -688342.710 3 24370955.855 24370954.769 24370955.859
+ 26.800 18.600
+ -5055076.185 4 -3939019.383 4 24209525.839 24209524.716 24209525.324
+ 27.900 26.200
+ 06 1 2 12 8 30.0000000 0 7G03G13G16G19G23G25G27
+ -19616065.594 7 -15285239.170 6 20827028.299 20827026.398 20827027.347
+ 46.700 40.600
+ -18681809.691 7 -14557253.588 7 21064248.173 21064245.444 21064247.874
+ 44.100 42.000
+ -16468601.626 7 -12832668.433 6 21460134.493 21460131.026 21460133.265
+ 46.500 38.800
+ -7844726.503 5 -6112771.743 4 23138209.944 23138206.404 23138208.468
+ 34.600 29.000
+ -20222787.804 7 -15758016.263 6 20813442.842 20813437.656 20813441.664
+ 45.900 41.300
+ -795066.598 4 -619531.842 3 24387759.502 24387759.570 24387759.690
+ 27.400 21.600
+ -5141744.498 4 -4006553.129 4 24193033.948 24193032.386 24193033.260
+ 28.100 25.900
+ 06 1 2 12 9 0.0000000 0 7G03G13G16G19G23G25G27
+ -19665982.780 7 -15324135.667 6 20817529.491 20817527.451 20817528.414
+ 46.600 40.800
+ -18706706.008 7 -14576653.319 6 21059510.599 21059507.798 21059510.304
+ 43.900 41.900
+ -16401650.931 7 -12780499.070 6 21472874.628 21472871.357 21472873.548
+ 46.300 38.600
+ -7950181.443 5 -6194944.430 4 23118141.877 23118139.036 23118140.969
+ 34.800 29.700
+ -20171311.141 7 -15717904.592 6 20823238.464 20823233.266 20823237.418
+ 46.000 40.900
+ -706622.512 3 -550614.471 3 24404588.933 24404589.841 24404589.704
+ 23.800 20.500
+ -5228395.915 4 -4074073.694 4 24176545.626 24176542.871 24176544.486
+ 28.400 26.500
+ 06 1 2 12 9 30.0000000 0 7G03G13G16G19G23G25G27
+ -19715339.292 7 -15362595.272 6 20808137.173 20808135.272 20808136.219
+ 46.900 40.900
+ -18730995.646 7 -14595580.313 6 21054888.713 21054885.643 21054888.284
+ 44.100 41.900
+ -16334454.241 7 -12728138.024 6 21485661.736 21485658.668 21485660.534
+ 46.100 38.500
+ -8055435.956 5 -6276960.906 4 23098113.054 23098109.658 23098111.669
+ 33.900 29.200
+ -20119271.932 7 -15677354.571 6 20833141.354 20833136.040 20833140.236
+ 46.000 41.000
+ -618042.519 4 -481591.192 3 24421447.240 24421445.919 24421446.570
+ 25.600 19.900
+ -5315029.720 4 -4141580.559 4 24160059.486 24160056.667 24160058.400
+ 27.900 24.600
+ 06 1 2 12 10 0.0000000 0 7G03G13G16G19G23G25G27
+ -19764133.450 7 -15400616.682 6 20798851.937 20798850.158 20798851.080
+ 47.000 41.100
+ -18754677.093 7 -14614033.395 7 21050381.967 21050379.252 21050381.673
+ 44.100 42.100
+ -16267013.295 7 -12675586.643 6 21498495.043 21498492.056 21498494.195
+ 46.200 38.200
+ -8160487.485 5 -6358819.203 5 23078123.212 23078119.288 23078121.070
+ 35.100 31.300
+ -20066671.511 7 -15636367.246 6 20843150.906 20843145.655 20843149.764
+ 45.900 41.000
+ -529327.292 4 -412462.559 3 24438328.935 24438328.123 24438328.308
+ 24.600 18.600
+ -5401644.972 4 -4209072.938 4 24143577.369 24143574.568 24143576.077
+ 28.600 25.300
+ 06 1 2 12 10 30.0000000 0 7G03G13G16G19G23G25G27
+ -19812363.656 7 -15438198.644 6 20789674.299 20789672.191 20789673.311
+ 47.100 41.200
+ -18777749.460 7 -14632011.862 7 21045991.349 21045988.758 21045991.087
+ 44.100 42.000
+ -16199329.597 7 -12622846.110 6 21511374.958 21511371.968 21511373.950
+ 46.200 38.400
+ -8265333.249 5 -6440517.190 5 23058172.099 23058167.638 23058169.603
+ 34.100 30.600
+ -20013511.045 7 -15594943.519 6 20853266.989 20853261.845 20853265.849
+ 45.900 40.900
+ -440477.464 4 -343229.018 3 24455236.848 24455235.878 24455236.318
+ 25.300 18.600
+ -5488240.568 4 -4276550.029 4 24127097.941 24127095.797 24127097.052
+ 27.900 24.900
+ 06 1 2 12 11 0.0000000 0 7G03G13G16G19G23G25G27
+ -19860028.374 7 -15475339.973 6 20780603.901 20780601.870 20780602.948
+ 47.000 41.000
+ -18800211.466 7 -14649514.727 7 21041717.322 21041714.384 21041716.908
+ 44.100 42.100
+ -16131404.897 7 -12569917.780 6 21524300.938 21524297.622 21524299.778
+ 46.300 38.400
+ -8369970.522 5 -6522052.701 5 23038259.884 23038255.521 23038257.705
+ 34.500 30.400
+ -19959792.718 7 -15553085.097 6 20863489.300 20863484.023 20863488.218
+ 46.000 40.900
+ -351493.784 3 -273891.207 3 24472169.795 24472169.325 24472169.147
+ 23.000 21.600
+ -5574815.678 4 -4344011.145 4 24110623.783 24110621.368 24110622.667
+ 27.100 25.600
+ 06 1 2 12 11 30.0000000 0 7G03G13G16G19G23G25G27
+ -19907126.100 7 -15512039.496 6 20771641.468 20771639.505 20771640.494
+ 46.800 41.200
+ -18822061.886 7 -14666541.033 7 21037559.047 21037556.296 21037558.778
+ 44.100 42.000
+ -16063240.809 7 -12516802.919 6 21537271.927 21537268.848 21537270.899
+ 46.400 38.400
+ -8474396.480 5 -6603423.557 5 23018387.459 23018383.858 23018386.202
+ 35.500 30.600
+ -19905518.526 7 -15510793.532 6 20873817.531 20873812.194 20873816.257
+ 46.000 40.900
+ -262376.930 4 -204449.611 3 24489127.829 24489127.903 24489127.828
+ 25.300 22.600
+ -5661369.077 4 -4411455.360 4 24094152.279 24094151.077 24094151.456
+ 26.800 26.200
+ 06 1 2 12 12 0.0000000 0 7G03G13G16G19G23G25G27
+ -19953655.441 7 -15548296.125 6 20762787.239 20762785.331 20762786.214
+ 47.000 41.500
+ -18843299.791 7 -14683090.052 6 21033517.489 21033514.716 21033517.222
+ 43.900 41.800
+ -15994838.721 7 -12463502.600 6 21550288.693 21550285.350 21550287.427
+ 46.200 38.300
+ -8578608.892 5 -6684628.019 5 22998556.129 22998553.220 22998555.033
+ 35.400 31.100
+ -19850689.703 7 -15468069.787 6 20884250.919 20884245.819 20884249.843
+ 45.900 40.800
+ -173127.649 3 -134904.835 3 24506111.447 24506111.383 24506111.238
+ 22.100 19.300
+ -5747899.959 4 -4478881.992 4 24077686.331 24077684.661 24077685.512
+ 27.900 26.200
+ 06 1 2 12 12 30.0000000 0 7G03G13G16G19G23G25G27
+ -19999614.799 7 -15584108.605 6 20754041.452 20754039.465 20754040.435
+ 46.900 41.400
+ -18863924.013 7 -14699160.882 6 21029592.802 21029590.117 21029592.507
+ 44.000 41.900
+ -15926200.513 7 -12410018.288 6 21563349.669 21563346.741 21563348.692
+ 46.100 38.000
+ -8682604.442 5 -6765663.501 4 22978767.210 22978763.205 22978765.282
+ 34.900 29.200
+ -19795307.770 7 -15424915.047 6 20894789.813 20894784.496 20894788.581
+ 45.600 40.600
+ -83746.511 3 -65257.300 2 24523120.354 24523119.964 24523120.057
+ 23.400 17.800
+ -5834407.151 4 -4546290.190 4 24061224.515 24061222.513 24061223.603
+ 27.400 24.200
+ 06 1 2 12 13 0.0000000 0 7G03G13G16G19G23G25G27
+ -20045002.703 7 -15619475.799 6 20745404.479 20745402.501 20745403.470
+ 46.900 41.500
+ -18883933.511 7 -14714752.700 7 21025785.457 21025782.537 21025785.086
+ 43.900 42.200
+ -15857327.744 7 -12356351.209 6 21576455.758 21576452.817 21576454.735
+ 45.900 37.700
+ -8786380.585 6 -6846528.005 4 22959020.253 22959015.235 22959017.609
+ 36.200 28.800
+ -19739374.889 7 -15381331.000 6 20905433.226 20905428.119 20905432.114
+ 45.400 40.400
+ 5765.666 3 4492.335 2 24540153.821 24540153.156 24540153.668
+ 22.600 17.800
+ -5920889.675 4 -4613679.167 3 24044767.249 24044765.458 24044766.640
+ 28.600 23.800
+ 06 1 2 12 13 30.0000000 0 7G03G13G16G19G23G25G27
+ -20089817.693 7 -15654396.569 6 20736876.275 20736874.512 20736875.357
+ 46.700 41.600
+ -18903327.210 7 -14729864.676 7 21022094.701 21022092.049 21022094.426
+ 43.800 42.200
+ -15788222.132 7 -12302502.690 6 21589606.445 21589603.093 21589605.343
+ 46.000 37.900
+ -8889934.369 6 -6927219.244 4 22939314.883 22939309.594 22939311.957
+ 36.000 29.000
+ -19682892.615 7 -15337318.856 6 20916181.477 20916176.401 20916180.301
+ 45.200 40.600
+ 95408.098 4 74343.480 2 24557212.578 24557211.571 24557212.425
+ 26.500 13.900
+ -6007346.379 4 -4681048.036 4 24028315.494 24028313.168 24028314.595
+ 28.800 25.600
+ 06 1 2 12 14 0.0000000 0 7G03G13G16G19G23G25G27
+ -20134058.358 7 -15688869.816 6 20728457.494 20728455.641 20728456.558
+ 46.900 41.500
+ -18922104.209 7 -14744496.106 7 21018521.597 21018518.861 21018521.304
+ 44.000 42.300
+ -15718885.002 7 -12248473.765 6 21602800.612 21602797.569 21602799.613
+ 45.900 37.600
+ -8993263.623 5 -7007735.530 5 22919651.499 22919647.070 22919648.952
+ 35.600 31.100
+ -19625862.687 7 -15292879.970 6 20927033.838 20927028.897 20927032.735
+ 45.300 40.600
+ 185180.184 3 144295.690 3 24574294.789 24574295.369 24574294.288
+ 21.100 19.300
+ -6093776.791 4 -4748396.406 4 24011868.130 24011866.316 24011867.352
+ 28.800 26.200
+ 06 1 2 12 14 30.0000000 0 7G03G13G16G19G23G25G27
+ -20177723.185 7 -15722894.357 6 20720148.417 20720146.594 20720147.481
+ 47.100 41.600
+ -18940263.408 7 -14758646.135 7 21015066.271 21015063.333 21015065.949
+ 44.100 42.400
+ -15649317.844 7 -12194265.605 6 21616038.808 21616035.745 21616037.835
+ 46.100 37.800
+ -9096365.531 5 -7088074.659 5 22900030.346 22900027.309 22900029.043
+ 35.800 31.600
+ -19568287.000 7 -15248015.814 6 20937990.227 20937985.236 20937989.056
+ 45.200 40.600
+ 275081.223 3 214348.315 2 24591402.744 24591402.786 24591402.693
+ 22.600 17.800
+ -6180179.489 4 -4815723.176 4 23995426.524 23995424.340 23995425.315
+ 28.600 27.400
+ 06 1 2 12 15 0.0000000 0 7G03G13G16G19G23G25G27
+ -20220811.014 7 -15756469.284 6 20711949.112 20711947.200 20711948.165
+ 47.100 41.400
+ -18957803.849 7 -14772314.021 7 21011728.225 21011725.524 21011727.922
+ 44.000 42.300
+ -15579522.712 7 -12139879.801 6 21629320.707 21629317.353 21629319.516
+ 46.000 37.700
+ -9199237.294 6 -7168234.456 5 22880453.788 22880451.399 22880453.524
+ 36.500 31.000
+ -19510167.561 7 -15202727.956 6 20949050.126 20949045.038 20949048.983
+ 45.500 40.600
+ 365110.314 3 284500.769 2 24608535.329 24608535.084 24608535.236
+ 22.600 16.100
+ -6266553.450 5 -4883027.554 4 23978989.741 23978987.972 23978988.729
+ 30.200 29.000
+ 06 1 2 12 15 30.0000000 0 7G03G13G16G19G23G25G27
+ -20263320.483 7 -15789593.541 6 20703859.865 20703857.966 20703858.981
+ 47.300 41.600
+ -18974725.074 7 -14785499.395 7 21008508.268 21008505.446 21008507.910
+ 43.800 42.300
+ -15509500.980 7 -12085317.425 6 21642645.192 21642642.137 21642644.207
+ 45.900 37.200
+ -9301876.057 6 -7248212.689 5 22860921.992 22860919.925 22860922.131
+ 36.700 31.500
+ -19451506.121 7 -15157017.761 6 20960212.899 20960207.925 20960211.885
+ 45.500 40.400
+ 455266.968 3 354752.578 2 24625691.893 24625690.821 24625691.357
+ 23.400 13.900
+ -6352897.955 4 -4950308.954 5 23962559.263 23962557.630 23962557.952
+ 29.900 30.600
+ 06 1 2 12 16 0.0000000 0 7G03G13G16G19G23G25G27
+ -20305250.128 7 -15822265.991 6 20695881.103 20695878.988 20695880.058
+ 47.300 41.600
+ -18991025.911 7 -14798201.350 7 21005406.205 21005403.551 21005405.895
+ 43.600 42.200
+ -15439254.437 7 -12030579.866 6 21656012.946 21656009.556 21656011.775
+ 45.800 37.100
+ -9404279.358 6 -7328007.439 5 22841436.415 22841433.141 22841435.449
+ 37.200 31.100
+ -19392304.405 7 -15110886.572 6 20971479.037 20971473.644 20971477.725
+ 45.600 40.000
+ 545550.339 3 425103.176 3 24642871.862 24642871.977 24642872.224
+ 23.000 19.900
+ -6439211.600 4 -5017566.344 5 23946134.277 23946132.549 23946133.708
+ 29.900 31.000
+ 06 1 2 12 16 30.0000000 0 7G03G13G16G19G23G25G27
+ -20346598.776 7 -15854485.712 6 20688012.724 20688010.513 20688011.704
+ 47.400 41.800
+ -19006704.997 7 -14810418.829 7 21002422.724 21002419.960 21002422.366
+ 43.700 42.500
+ -15368784.544 7 -11975668.277 6 21669422.714 21669419.541 21669421.691
+ 46.000 37.000
+ -9506444.391 6 -7407616.550 5 22821996.143 22821991.891 22821993.638
+ 36.800 31.600
+ -19332564.269 7 -15064335.837 6 20982847.168 20982841.827 20982845.968
+ 45.700 40.000
+ 635959.546 4 495551.807 2 24660076.507 24660076.411 24660076.564
+ 25.300 15.100
+ -6525493.251 4 -5084798.788 5 23929715.366 23929713.769 23929714.223
+ 28.400 31.000
+ 06 1 2 12 17 0.0000000 0 7G03G13G16G19G23G25G27
+ -20387365.193 7 -15886251.745 6 20680255.036 20680252.950 20680254.018
+ 47.400 41.700
+ -19021761.805 7 -14822151.414 7 20999557.428 20999554.781 20999557.093
+ 43.700 42.400
+ -15298092.551 7 -11920583.614 6 21682874.573 21682871.730 21682873.726
+ 45.700 36.700
+ -9608368.330 6 -7487037.783 5 22802600.899 22802596.326 22802598.298
+ 36.600 32.400
+ -19272287.841 7 -15017367.206 6 20994317.166 20994312.016 20994316.106
+ 45.700 39.800
+ 726493.969 3 566097.986 2 24677304.392 24677304.821 24677304.023
+ 22.100 17.800
+ -6611741.801 4 -5152005.417 5 23913302.387 23913300.953 23913301.473
+ 29.000 30.100
+ 06 1 2 12 17 30.0000000 0 7G03G13G16G19G23G25G27
+ -20427548.091 7 -15917563.094 6 20672608.437 20672606.358 20672607.428
+ 47.300 41.600
+ -19036195.379 7 -14833398.360 7 20996810.786 20996808.149 20996810.468
+ 43.800 42.500
+ -15227180.365 7 -11865327.380 6 21696369.060 21696365.994 21696368.067
+ 45.800 36.900
+ -9710048.703 6 -7566269.205 5 22783251.773 22783247.087 22783249.000
+ 36.000 32.000
+ -19211476.807 7 -14969982.010 6 21005889.290 21005883.950 21005888.060
+ 45.600 40.000
+ 817152.878 3 636741.170 2 24694557.151 24694555.953 24694556.659
+ 22.100 15.100
+ -6697956.669 4 -5219185.850 4 23896896.518 23896894.409 23896895.729
+ 29.200 28.100
+ 06 1 2 12 18 0.0000000 0 7G03G13G16G19G23G25G27
+ -20467146.193 7 -15948418.756 6 20665073.057 20665071.188 20665072.142
+ 47.300 41.900
+ -19050005.205 7 -14844159.266 7 20994182.859 20994180.103 20994182.541
+ 43.600 42.200
+ -15156049.790 7 -11809900.969 6 21709904.909 21709901.615 21709903.857
+ 45.600 37.100
+ -9811482.805 6 -7645308.734 5 22763949.673 22763944.467 22763946.840
+ 36.000 31.600
+ -19150133.172 7 -14922181.791 6 21017562.776 21017557.296 21017561.562
+ 45.700 40.200
+ 907935.371 3 707480.732 2 24711831.722 24711831.337 24711831.374
+ 23.000 15.100
+ -6784136.329 4 -5286338.823 4 23880496.916 23880495.338 23880495.838
+ 29.500 27.600
+ 06 1 2 12 18 30.0000000 0 7G03G13G16G19G23G25G27
+ -20506158.291 7 -15978817.792 6 20657649.449 20657647.347 20657648.426
+ 47.500 41.800
+ -19063190.702 7 -14854433.688 7 20991673.634 20991670.987 20991673.363
+ 43.700 42.200
+ -15084702.005 7 -11754305.308 6 21723481.696 21723478.829 21723480.692
+ 45.500 37.100
+ -9912667.823 6 -7724154.184 5 22744694.115 22744689.806 22744691.607
+ 36.400 31.600
+ -19088258.934 7 -14873968.119 6 21029336.747 21029331.686 21029335.638
+ 45.400 39.800
+ 998840.961 3 778316.152 2 24729129.942 24729130.976 24729129.684
+ 21.600 17.800
+ -6870279.827 5 -5353463.618 4 23864104.762 23864102.447 23864103.839
+ 31.500 26.500
+ 06 1 2 12 19 0.0000000 0 7G03G13G16G19G23G25G27
+ -20544583.321 7 -16008759.368 6 20650337.389 20650335.340 20650336.423
+ 47.700 41.800
+ -19075750.430 7 -14864220.492 7 20989283.785 20989280.995 20989283.470
+ 43.700 42.200
+ -15013138.237 7 -11698541.346 6 21737099.766 21737096.814 21737098.717
+ 45.200 36.700
+ -10013601.141 6 -7802803.509 5 22725486.160 22725482.869 22725484.612
+ 36.300 32.000
+ -19025856.237 7 -14825342.664 6 21041211.819 21041206.614 21041210.502
+ 45.200 40.000
+ 1089868.683 3 849246.736 3 24746453.115 24746453.410 24746453.127
+ 23.000 19.300
+ -6956385.905 5 -5420559.274 4 23847719.667 23847716.777 23847718.359
+ 30.400 27.400
+ 06 1 2 12 19 30.0000000 0 7G03G13G16G19G23G25G27
+ -20582420.174 7 -16038242.624 6 20643137.283 20643135.117 20643136.345
+ 47.700 41.500
+ -19087683.946 7 -14873519.341 7 20987012.839 20987010.120 20987012.539
+ 43.600 42.400
+ -14941360.777 7 -11642610.873 6 21750759.028 21750755.577 21750757.839
+ 45.400 36.800
+ -10114280.124 6 -7881254.645 5 22706327.869 22706324.464 22706326.057
+ 36.800 33.000
+ -18962926.654 7 -14776306.643 6 21053186.504 21053181.752 21053185.451
+ 45.300 39.900
+ 1181017.857 3 920271.934 2 24763799.198 24763797.918 24763797.969
+ 19.900 16.100
+ -7042453.496 5 -5487624.950 4 23831340.872 23831338.985 23831340.049
+ 30.600 26.800
+ 06 1 2 12 20 0.0000000 0 7G03G13G16G19G23G25G27
+ -20619667.556 7 -16067266.559 6 20636049.256 20636047.268 20636048.416
+ 47.600 41.700
+ -19098990.761 7 -14882329.855 7 20984861.225 20984858.545 20984860.938
+ 43.500 42.200
+ -14869370.990 7 -11586514.952 6 21764457.876 21764455.014 21764456.914
+ 45.300 36.600
+ -10214702.232 6 -7959505.613 5 22687218.682 22687214.571 22687216.734
+ 37.700 33.100
+ -18899472.508 7 -14726861.869 6 21065261.440 21065256.665 21065260.465
+ 45.200 39.800
+ 1272287.610 4 991391.220 24781167.450 24781165.801 24781165.922
+ 24.200 3.000
+ -7128481.899 4 -5554660.059 4 23814970.695 23814968.065 23814969.512
+ 29.900 26.200
+ 06 1 2 12 20 30.0000000 0 6G03G13G16G19G23G27
+ -20656324.250 7 -16095830.215 6 20629073.826 20629071.734 20629072.900
+ 47.700 41.900
+ -19109670.086 7 -14890651.414 7 20982828.984 20982826.372 20982828.739
+ 43.500 42.500
+ -14797170.226 7 -11530254.636 6 21778197.313 21778194.218 21778196.395
+ 45.300 36.400
+ -10314864.676 6 -8037554.246 5 22668157.727 22668154.424 22668156.310
+ 37.200 33.000
+ -18835495.841 7 -14677009.944 6 21077436.201 21077431.065 21077434.991
+ 45.200 39.800
+ -7214469.508 4 -5621663.381 4 23798607.021 23798605.906 23798606.253
+ 29.500 29.000
+ 06 1 2 12 21 0.0000000 0 6G03G13G16G19G23G27
+ -20692389.365 8 -16123932.909 6 20622210.665 20622208.706 20622209.882
+ 48.000 41.800
+ -19119721.241 7 -14898483.491 7 20980916.253 20980913.729 20980915.926
+ 43.500 42.500
+ -14724759.974 7 -11473831.076 6 21791976.600 21791973.660 21791975.586
+ 45.000 36.300
+ -10414764.749 6 -8115398.425 5 22649146.362 22649144.294 22649145.755
+ 37.300 34.100
+ -18770998.573 7 -14626752.348 6 21089709.340 21089704.493 21089708.389
+ 45.300 39.700
+ -7300415.492 5 -5688634.260 4 23782253.342 23782251.083 23782252.056
+ 31.300 29.500
+ 06 1 2 12 21 30.0000000 0 6G03G13G16G19G23G27
+ -20727861.612 8 -16151573.620 6 20615460.839 20615458.581 20615459.886
+ 48.000 41.900
+ -19129143.403 7 -14905825.441 7 20979123.283 20979120.809 20979123.008
+ 43.500 42.500
+ -14652142.100 7 -11417245.741 6 21805795.329 21805792.354 21805794.301
+ 45.100 36.400
+ -10514399.762 6 -8193036.083 5 22630186.817 22630184.336 22630186.151
+ 38.700 33.000
+ -18705982.737 7 -14576090.678 6 21102081.500 21102076.491 21102080.531
+ 45.200 39.700
+ -7386318.824 5 -5755571.912 4 23765905.896 23765903.560 23765904.798
+ 31.300 29.500
+ 06 1 2 12 22 0.0000000 0 6G03G13G16G19G23G27
+ -20762740.054 7 -16178751.626 6 20608823.661 20608821.443 20608822.659
+ 47.800 41.800
+ -19137936.235 7 -14912677.005 7 20977450.166 20977447.567 20977449.851
+ 44.000 42.600
+ -14579317.863 7 -11360499.593 6 21819653.182 21819650.173 21819652.125
+ 44.800 36.000
+ -10613767.082 6 -8270465.161 5 22611277.708 22611274.772 22611277.098
+ 37.900 32.000
+ -18640450.473 7 -14525026.595 6 21114552.334 21114546.819 21114550.998
+ 45.200 39.700
+ -7472177.924 5 -5822475.109 4 23749567.363 23749565.320 23749566.498
+ 31.300 28.800
+ 06 1 2 12 22 30.0000000 0 6G03G13G16G19G23G27
+ -20797023.642 7 -16205466.116 6 20602299.454 20602297.554 20602298.513
+ 47.600 41.900
+ -19146099.156 7 -14919037.730 7 20975897.097 20975894.320 20975896.786
+ 44.100 42.700
+ -14506288.910 7 -11303593.929 6 21833550.081 21833547.371 21833549.086
+ 44.800 36.400
+ -10712864.176 6 -8347683.676 5 22592419.986 22592417.500 22592419.634
+ 38.900 32.700
+ -18574404.052 7 -14473561.867 6 21127120.369 21127115.115 21127119.272
+ 45.500 39.300
+ -7557991.981 5 -5889343.208 4 23733237.303 23733235.516 23733236.703
+ 32.000 29.200
+ 06 1 2 12 23 0.0000000 0 6G03G13G16G19G23G27
+ -20830711.384 7 -16231716.309 7 20595888.889 20595886.983 20595888.004
+ 47.600 42.100
+ -19153631.412 7 -14924907.031 7 20974463.618 20974460.916 20974463.341
+ 43.900 42.500
+ -14433056.788 7 -11246529.959 5 21847485.962 21847482.744 21847484.863
+ 44.500 35.700
+ -10811688.318 6 -8424689.480 5 22573614.453 22573611.840 22573614.041
+ 38.600 33.200
+ -18507845.581 7 -14421698.143 6 21139785.967 21139780.875 21139784.806
+ 45.400 39.100
+ -7643759.483 5 -5956175.031 4 23716916.822 23716914.172 23716915.811
+ 31.800 28.400
+ 06 1 2 12 23 30.0000000 0 6G03G13G16G19G23G27
+ -20863802.511 7 -16257501.605 7 20589591.811 20589590.067 20589590.906
+ 47.600 42.200
+ -19160532.555 7 -14930284.556 7 20973150.558 20973147.664 20973150.199
+ 43.900 42.600
+ -14359622.789 7 -11189308.679 6 21861459.731 21861457.009 21861458.834
+ 44.400 36.000
+ -10910236.878 6 -8501480.554 5 22554860.844 22554858.801 22554860.792
+ 38.500 33.200
+ -18440776.965 7 -14369436.903 6 21152549.105 21152543.511 21152547.650
+ 45.300 39.100
+ -7729479.586 5 -6022969.910 4 23700604.144 23700602.711 23700603.311
+ 30.400 29.200
+ 06 1 2 12 24 0.0000000 0 6G03G13G16G19G23G27
+ -20896295.849 7 -16282821.090 6 20583408.544 20583406.707 20583407.616
+ 47.600 41.900
+ -19166802.604 7 -14935170.320 7 20971957.299 20971954.565 20971956.950
+ 43.800 42.700
+ -14285988.587 7 -11131931.405 5 21875472.014 21875468.967 21875470.917
+ 44.400 35.700
+ -11008507.295 6 -8578054.886 5 22536160.270 22536158.483 22536160.453
+ 38.400 33.200
+ -18373200.597 7 -14316780.004 6 21165408.064 21165402.956 21165407.049
+ 45.500 39.000
+ -7815151.129 5 -6089726.947 4 23684301.691 23684299.452 23684300.700
+ 30.600 28.600
+ 06 1 2 12 24 30.0000000 0 6G03G13G16G19G23G27
+ -20928190.462 7 -16307674.033 7 20577339.300 20577337.345 20577338.318
+ 47.500 42.000
+ -19172440.230 7 -14939563.282 7 20970884.292 20970881.699 20970884.064
+ 43.900 42.300
+ -14212155.810 7 -11074399.379 5 21889522.000 21889518.690 21889520.882
+ 44.300 35.500
+ -11106496.871 6 -8654410.379 5 22517513.620 22517511.619 22517513.690
+ 38.700 33.600
+ -18305118.586 7 -14263729.110 6 21178363.503 21178358.570 21178362.505
+ 45.100 39.200
+ -7900772.735 5 -6156445.085 4 23668007.694 23668005.945 23668007.151
+ 30.400 28.800
+ 06 1 2 12 25 0.0000000 0 6G03G13G16G19G23G27
+ -20959485.540 7 -16332059.808 7 20571384.138 20571382.101 20571383.112
+ 47.600 42.300
+ -19177445.234 7 -14943463.292 7 20969931.964 20969929.338 20969931.644
+ 43.800 42.600
+ -14138125.838 7 -11016713.707 6 21903609.513 21903606.659 21903608.392
+ 44.100 36.000
+ -11204202.957 6 -8730544.966 5 22498921.621 22498918.788 22498920.964
+ 39.500 34.100
+ -18236532.711 7 -14210285.597 6 21191415.575 21191409.950 21191414.153
+ 45.000 39.100
+ -7986343.303 5 -6223123.447 4 23651725.250 23651722.734 23651724.229
+ 31.100 29.200
+ 06 1 2 12 25 30.0000000 0 6G03G13G16G19G23G27
+ -20990180.239 7 -16355977.753 7 20565543.034 20565541.136 20565542.062
+ 47.800 42.400
+ -19181817.191 7 -14946870.024 7 20969100.101 20969097.385 20969099.775
+ 43.500 42.600
+ -14063900.075 7 -10958875.472 5 21917734.372 21917730.970 21917733.158
+ 44.100 35.200
+ -11301622.899 6 -8806456.593 5 22480383.121 22480380.266 22480382.465
+ 39.300 33.600
+ -18167445.890 7 -14156451.717 6 21204562.285 21204556.814 21204560.946
+ 45.000 39.100
+ -8071861.782 5 -6289761.223 5 23635451.555 23635449.373 23635450.548
+ 32.400 30.600
+ 06 1 2 12 26 0.0000000 0 6G03G13G16G19G23G27
+ -21020273.637 7 -16379427.152 7 20559816.416 20559814.543 20559815.490
+ 47.800 42.300
+ -19185556.117 7 -14949783.476 7 20968388.431 20968385.784 20968388.115
+ 43.700 42.500
+ -13989480.131 7 -10900885.920 5 21931895.910 21931892.841 21931894.777
+ 44.200 35.400
+ -11398754.114 6 -8882143.239 5 22461899.722 22461896.812 22461898.580
+ 38.800 33.100
+ -18097860.020 7 -14102228.986 6 21217803.462 21217798.633 21217802.556
+ 45.300 39.100
+ -8157326.648 5 -6356357.216 5 23619187.463 23619185.887 23619186.684
+ 32.600 30.800
+ 06 1 2 12 26 30.0000000 0 6G03G13G16G19G23G27
+ -21049764.913 7 -16402407.361 7 20554204.346 20554202.573 20554203.422
+ 47.700 42.500
+ -19188661.122 7 -14952202.972 7 20967797.617 20967794.856 20967797.277
+ 43.700 42.400
+ -13914867.415 7 -10842746.160 5 21946094.411 21946091.146 21946093.164
+ 44.000 35.400
+ -11495594.077 6 -8957602.920 5 22443471.399 22443468.695 22443470.529
+ 39.500 33.800
+ -18027777.169 7 -14047618.995 6 21231140.008 21231134.950 21231138.973
+ 45.300 38.600
+ -8242737.013 5 -6422910.747 5 23602934.584 23602932.764 23602933.727
+ 32.000 30.800
+ 06 1 2 12 27 0.0000000 0 6G03G13G16G19G23G27
+ -21078653.366 7 -16424917.849 7 20548707.064 20548705.265 20548706.118
+ 47.600 42.300
+ -19191132.115 7 -14954128.430 7 20967327.533 20967324.776 20967327.234
+ 43.800 42.500
+ -13840063.303 7 -10784457.262 5 21960329.176 21960325.838 21960328.028
+ 44.100 34.900
+ -11592140.149 6 -9032833.614 5 22425099.418 22425096.653 22425098.656
+ 39.500 33.600
+ -17957199.803 7 -13992623.662 6 21244570.967 21244565.415 21244569.653
+ 45.300 38.900
+ -8328091.755 5 -6489420.945 5 23586692.364 23586690.257 23586691.373
+ 32.300 30.800
+ 06 1 2 12 27 30.0000000 0 6G03G13G16G19G23G27
+ -21106938.041 7 -16446957.858 7 20543324.816 20543322.908 20543323.773
+ 47.700 42.600
+ -19192969.003 7 -14955559.781 7 20966977.967 20966975.121 20966977.617
+ 43.700 42.400
+ -13765069.304 7 -10726020.402 5 21974599.975 21974596.773 21974598.750
+ 44.100 35.400
+ -11688389.616 6 -9107833.177 5 22406783.991 22406781.143 22406782.851
+ 39.600 34.400
+ -17886130.128 7 -13937244.711 6 21258094.512 21258089.633 21258093.454
+ 44.900 39.100
+ -8413389.521 5 -6555886.731 4 23570461.049 23570458.240 23570460.048
+ 32.100 29.700
+ 06 1 2 12 28 0.0000000 0 6G03G13G16G19G23G27
+ -21134618.195 7 -16468526.809 7 20538057.505 20538055.526 20538056.543
+ 47.800 42.400
+ -19194171.175 7 -14956496.547 7 20966749.124 20966746.548 20966748.832
+ 43.800 42.600
+ -13689886.987 7 -10667436.796 5 21988906.405 21988903.417 21988905.469
+ 44.100 34.900
+ -11784340.046 6 -9182599.719 5 22388525.713 22388522.504 22388524.205
+ 40.200 35.200
+ -17814570.448 7 -13881483.953 6 21271711.785 21271706.978 21271710.895
+ 45.100 38.600
+ -8498629.049 5 -6622307.141 5 23554239.829 23554238.145 23554238.961
+ 32.400 30.800
+ 06 1 2 12 28 30.0000000 0 6G03G13G16G19G23G27
+ -21161693.223 7 -16489624.239 7 20532905.161 20532903.314 20532904.229
+ 47.500 42.400
+ -19194738.327 7 -14956938.494 7 20966641.291 20966638.607 20966640.976
+ 43.800 42.600
+ -13614517.844 7 -10608707.622 5 22003248.787 22003245.875 22003247.726
+ 43.800 35.300
+ -11879988.937 6 -9257131.310 5 22370324.252 22370320.846 22370322.533
+ 39.700 34.300
+ -17742523.259 7 -13825343.317 6 21285422.421 21285417.068 21285421.110
+ 44.600 38.700
+ -8583808.880 5 -6688681.029 5 23538031.128 23538028.919 23538029.972
+ 32.800 30.800
+ 06 1 2 12 29 0.0000000 0 6G03G13G16G19G23G27
+ -21188162.246 7 -16510249.452 7 20527868.129 20527866.392 20527867.166
+ 47.400 42.400
+ -19194670.430 7 -14956885.600 7 20966654.191 20966651.570 20966653.871
+ 43.700 42.400
+ -13538963.373 7 -10549834.031 5 22017626.319 22017623.363 22017625.388
+ 44.000 34.800
+ -11975333.514 6 -9331425.775 5 22352181.290 22352177.377 22352179.174
+ 39.800 34.800
+ -17669990.482 7 -13768824.286 6 21299225.023 21299219.573 21299223.649
+ 44.600 38.600
+ -8668927.999 5 -6755007.614 5 23521833.051 23521831.566 23521832.352
+ 33.400 30.800
+ 06 1 2 12 29 30.0000000 0 7G03G13G15G16G19G23G27
+ -21214024.796 7 -16530402.091 7 20522946.488 20522944.966 20522945.608
+ 47.300 42.400
+ -19193967.236 7 -14956337.667 7 20966788.113 20966785.321 20966787.771
+ 44.000 42.500
+ -101042.383 3 -78734.452 2 24605987.985 24605986.987 24605986.921
+ 22.100 12.600
+ -13463225.018 7 -10490817.142 5 22032038.965 22032035.581 22032037.858
+ 43.500 34.000
+ -12070371.286 6 -9405481.159 5 22334096.846 22334092.220 22334094.064
+ 39.500 34.300
+ -17596974.743 7 -13711928.924 6 21313119.066 21313114.082 21313117.954
+ 44.500 38.500
+ -8753985.139 5 -6821285.913 5 23505646.965 23505645.584 23505646.515
+ 33.400 30.800
+ 06 1 2 12 30 0.0000000 0 7G03G13G15G16G19G23G27
+ -21239280.242 7 -16550081.672 7 20518140.722 20518139.029 20518139.699
+ 47.300 42.500
+ -19192628.374 7 -14955294.412 7 20967042.800 20967040.106 20967042.547
+ 43.800 42.400
+ -152712.123 3 -118996.507 2 24596156.459 24596154.798 24596155.035
+ 22.600 15.100
+ -13387304.040 7 -10431657.963 5 22046486.343 22046483.269 22046485.338
+ 43.600 34.500
+ -12165099.448 6 -9479295.291 5 22316070.520 22316065.777 22316068.144
+ 40.600 33.900
+ -17523478.507 7 -13654659.164 6 21327104.258 21327099.893 21327103.653
+ 44.400 38.400
+ -8838978.902 5 -6887514.820 5 23489473.466 23489471.450 23489472.677
+ 32.800 30.600
+ 06 1 2 12 30 30.0000000 0 7G03G13G15G16G19G23G27
+ -21263927.950 7 -16569287.680 7 20513450.527 20513448.653 20513449.457
+ 47.400 42.400
+ -19190653.704 7 -14953755.720 7 20967418.571 20967415.822 20967418.188
+ 43.900 42.300
+ -203974.371 3 -158941.100 2 24586399.430 24586399.773 24586398.950
+ 18.600 13.900
+ -13311201.854 7 -10372357.585 5 22060968.004 22060965.032 22060966.914
+ 43.600 34.900
+ -12259515.736 6 -9552866.412 5 22298103.329 22298099.144 22298101.177
+ 40.500 34.500
+ -17449503.830 7 -13597016.590 6 21341181.638 21341176.820 21341180.760
+ 44.400 38.300
+ -8923908.409 5 -6953693.650 5 23473311.729 23473310.098 23473310.943
+ 32.700 30.600
+ 06 1 2 12 31 0.0000000 0 7G03G13G15G16G19G23G27
+ -21287967.254 7 -16588019.608 7 20508876.001 20508874.068 20508875.015
+ 47.500 42.500
+ -19188043.384 7 -14951721.713 7 20967915.204 20967912.527 20967914.909
+ 43.600 42.200
+ -254826.668 3 -198566.244 2 24576724.411 24576722.916 24576723.280
+ 23.400 16.100
+ -13234920.082 7 -10312917.266 5 22075484.227 22075480.956 22075483.074
+ 43.200 34.300
+ -12353617.535 6 -9626192.465 5 22280195.634 22280192.387 22280194.180
+ 40.300 35.300
+ -17375053.274 7 -13539003.194 6 21355350.180 21355344.329 21355348.516
+ 44.200 38.100
+ -9008771.714 5 -7019820.902 4 23457163.076 23457160.804 23457162.279
+ 33.000 29.500
+ 06 1 2 12 31 30.0000000 0 7G03G13G15G16G19G23G27
+ -21311397.309 7 -16606276.799 7 20504417.418 20504415.480 20504416.453
+ 47.500 42.400
+ -19184797.194 7 -14949192.224 7 20968533.173 20968530.298 20968532.850
+ 43.900 42.300
+ -305266.462 4 -237869.986 2 24567125.406 24567124.855 24567124.597
+ 24.900 17.000
+ -13158460.111 7 -10253338.092 5 22090033.709 22090030.957 22090032.702
+ 43.100 34.500
+ -12447402.163 6 -9699271.373 5 22262348.769 22262345.699 22262347.620
+ 41.000 35.400
+ -17300128.957 7 -13480620.635 6 21369607.359 21369601.970 21369606.001
+ 44.400 38.100
+ -9093567.754 5 -7085895.755 5 23441026.517 23441024.993 23441025.868
+ 33.500 30.400
+ 06 1 2 12 32 0.0000000 0 7G03G13G15G16G19G23G27
+ -21334217.792 7 -16624058.999 7 20500074.927 20500072.903 20500073.870
+ 47.600 42.400
+ -19180915.082 7 -14946167.214 7 20969271.832 20969269.078 20969271.504
+ 43.800 42.300
+ -355291.331 3 -276850.360 2 24557605.626 24557605.414 24557604.671
+ 23.000 16.100
+ -13081823.333 7 -10193621.152 5 22104617.666 22104614.350 22104616.606
+ 43.400 34.400
+ -12540867.255 6 -9772101.289 5 22244562.506 22244559.832 22244561.818
+ 41.000 35.400
+ -17224733.664 7 -13421871.083 6 21383954.423 21383949.358 21383953.054
+ 44.100 38.100
+ -9178295.424 5 -7151917.318 5 23424903.651 23424901.890 23424902.922
+ 33.600 30.600
+ 06 1 2 12 32 30.0000000 0 7G03G13G15G16G19G23G27
+ -21356428.216 7 -16641365.832 7 20495848.232 20495846.366 20495847.375
+ 47.700 42.200
+ -19176396.861 7 -14942646.530 7 20970131.451 20970129.029 20970131.179
+ 43.600 42.500
+ -404898.868 3 -315505.542 2 24548165.736 24548165.670 24548164.794
+ 23.000 17.000
+ -13005011.052 7 -10133767.449 5 22119234.431 22119231.135 22119233.288
+ 43.400 33.900
+ -12634010.035 6 -9844680.058 5 22226837.977 22226835.183 22226837.508
+ 41.600 35.600
+ -17148869.579 7 -13362756.234 6 21398390.545 21398385.759 21398389.586
+ 44.400 37.900
+ -9262953.587 5 -7217884.716 5 23408793.913 23408791.832 23408793.000
+ 33.500 32.000
+ 06 1 2 12 33 0.0000000 0 7G03G13G15G16G19G23G27
+ -21378028.077 7 -16658196.902 7 20491738.059 20491736.108 20491737.037
+ 47.700 42.300
+ -19171242.642 7 -14938630.265 7 20971112.649 20971109.888 20971112.279
+ 44.000 42.600
+ -454086.793 3 -353833.791 2 24538806.132 24538804.520 24538804.765
+ 23.400 15.100
+ -12928024.830 7 -10073778.206 5 22133884.382 22133881.359 22133883.270
+ 43.100 34.000
+ -12726828.178 7 -9917005.879 5 22209176.022 22209172.580 22209174.680
+ 42.000 35.700
+ -17072539.301 7 -13303278.119 6 21412915.460 21412910.948 21412914.681
+ 44.300 37.800
+ -9347540.600 5 -7283796.677 5 23392697.967 23392695.962 23392696.758
+ 33.000 32.400
+ 06 1 2 12 33 30.0000000 0 7G03G13G15G16G19G23G27
+ -21399016.715 7 -16674551.686 7 20487743.790 20487742.127 20487742.945
+ 47.500 42.300
+ -19165452.357 7 -14934118.367 7 20972214.444 20972211.811 20972214.124
+ 44.000 42.700
+ -502852.583 4 -391833.094 2 24529526.648 24529525.405 24529525.327
+ 24.600 17.800
+ -12850866.033 7 -10013654.497 5 22148567.086 22148564.046 22148565.989
+ 42.700 33.800
+ -12819319.450 6 -9989076.986 5 22191575.893 22191571.961 22191573.808
+ 40.600 35.500
+ -16995745.177 7 -13243438.575 6 21427529.130 21427524.588 21427528.210
+ 44.200 38.200
+ -9432055.243 5 -7349652.239 5 23376614.820 23376612.980 23376613.970
+ 33.900 32.000
+ 06 1 2 12 34 0.0000000 0 7G03G13G15G16G19G23G27
+ -21419393.685 7 -16690429.855 7 20483866.343 20483864.612 20483865.445
+ 47.700 42.600
+ -19159025.953 7 -14929110.791 7 20973437.144 20973434.481 20973436.892
+ 43.800 42.400
+ -551194.021 3 -429501.701 3 24520327.668 24520326.230 24520326.164
+ 22.100 20.500
+ -12773535.878 7 -9953397.261 5 22163282.753 22163279.706 22163281.682
+ 43.100 33.600
+ -12911480.938 6 -10060891.111 5 22174038.660 22174034.216 22174036.213
+ 41.100 35.800
+ -16918489.605 7 -13183239.459 6 21442230.611 21442225.709 21442229.565
+ 44.000 37.600
+ -9516496.287 5 -7415450.473 5 23360546.809 23360544.530 23360545.571
+ 33.500 31.800
+ 06 1 2 12 34 30.0000000 0 7G03G13G15G16G19G23G27
+ -21439158.720 7 -16705831.187 7 20480105.368 20480103.355 20480104.358
+ 47.800 42.400
+ -19151963.628 7 -14923607.691 7 20974781.078 20974778.527 20974780.780
+ 43.700 42.200
+ -599108.565 3 -466837.718 2 24511209.418 24511208.191 24511207.845
+ 19.900 15.100
+ -12696036.143 7 -9893007.883 5 22178030.443 22178027.334 22178029.278
+ 43.100 33.200
+ -13003309.974 6 -10132446.187 5 22156563.773 22156559.666 22156561.688
+ 41.200 35.700
+ -16840775.270 7 -13122682.858 6 21457019.527 21457014.242 21457018.217
+ 44.000 37.700
+ -9600862.241 5 -7481190.179 5 23344491.904 23344490.293 23344491.078
+ 33.200 32.100
+ 06 1 2 12 35 0.0000000 0 7G03G13G15G16G19G23G27
+ -21458311.230 7 -16720755.227 7 20476460.683 20476458.782 20476459.786
+ 47.800 42.500
+ -19144265.396 7 -14917609.083 6 20976246.050 20976243.157 20976245.777
+ 43.800 41.900
+ -646594.052 3 -503839.370 3 24502172.433 24502172.705 24502171.170
+ 19.900 23.000
+ -12618367.999 7 -9832487.272 5 22192809.968 22192807.105 22192809.102
+ 42.900 33.500
+ -13094804.364 7 -10203740.511 5 22139152.462 22139148.654 22139151.091
+ 42.200 35.100
+ -16762604.770 7 -13061770.809 6 21471894.861 21471889.656 21471893.553
+ 43.900 37.700
+ -9685151.802 5 -7546870.359 5 23328452.091 23328450.793 23328451.303
+ 33.500 32.000
+ 06 1 2 12 35 30.0000000 0 7G03G13G15G16G19G23G27
+ -21476850.981 7 -16735201.792 7 20472932.790 20472930.777 20472931.783
+ 47.800 42.500
+ -19135931.453 7 -14911115.116 6 20977832.038 20977829.278 20977831.665
+ 43.800 41.900
+ -693648.263 3 -540504.953 3 24493218.723 24493218.552 24493217.785
+ 23.000 21.100
+ -12540532.681 7 -9771836.397 5 22207621.775 22207618.787 22207620.678
+ 42.500 33.000
+ -13185961.188 6 -10274771.790 5 22121805.249 22121802.249 22121804.650
+ 41.900 35.700
+ -16683980.257 7 -13000504.986 6 21486856.433 21486851.425 21486855.310
+ 43.900 37.200
+ -9769363.661 5 -7612489.999 5 23312427.332 23312425.334 23312426.460
+ 34.600 31.100
+ 06 1 2 12 36 0.0000000 0 7G03G13G15G16G19G23G27
+ -21494777.716 7 -16749170.686 7 20469521.482 20469519.489 20469520.541
+ 47.800 42.500
+ -19126961.802 7 -14904125.791 7 20979538.690 20979536.080 20979538.432
+ 43.900 42.000
+ -740268.662 4 -576832.552 3 24484347.779 24484346.473 24484346.274
+ 24.200 19.900
+ -12462531.823 7 -9711056.530 5 22222464.550 22222461.804 22222463.636
+ 42.400 33.500
+ -13276778.442 6 -10345538.468 5 22104523.937 22104520.272 22104522.654
+ 41.900 35.900
+ -16604904.049 7 -12938887.188 6 21501904.095 21501899.024 21501902.971
+ 43.600 37.000
+ -9853496.556 5 -7678048.112 5 23296417.179 23296415.226 23296416.329
+ 34.500 31.800
+ 06 1 2 12 36 30.0000000 0 7G03G13G15G16G19G23G27
+ -21512090.899 7 -16762661.484 7 20466226.922 20466224.851 20466225.952
+ 47.800 42.600
+ -19117356.640 7 -14896641.259 7 20981366.844 20981363.932 20981366.532
+ 44.100 42.000
+ -786453.048 3 -612820.374 3 24475558.706 24475558.712 24475557.732
+ 23.000 22.600
+ -12384366.599 7 -9650148.588 5 22237339.274 22237336.091 22237338.226
+ 42.300 33.000
+ -13367253.828 6 -10416038.752 6 22087307.620 22087303.654 22087305.579
+ 41.800 36.500
+ -16525379.442 7 -12876919.988 6 21517037.248 21517032.020 21517036.017
+ 43.200 36.700
+ -9937549.137 5 -7743543.634 5 23280422.772 23280421.049 23280421.564
+ 34.700 32.700
+ 06 1 2 12 37 0.0000000 0 7G03G13G15G16G19G23G27
+ -21528790.395 7 -16775674.080 7 20463048.912 20463047.031 20463048.029
+ 47.700 42.500
+ -19107116.363 7 -14888661.834 7 20983315.487 20983312.649 20983315.140
+ 44.000 42.000
+ -832199.283 4 -648466.758 2 24466853.467 24466852.352 24466852.519
+ 25.300 17.800
+ -12306038.491 7 -9589113.734 5 22252244.441 22252241.858 22252243.357
+ 42.000 33.200
+ -13457384.487 7 -10486270.420 6 22070156.461 22070152.318 22070154.328
+ 42.200 36.900
+ -16445408.497 7 -12814604.997 6 21532255.140 21532250.202 21532253.868
+ 43.100 37.300
+ -10021519.821 5 -7808975.332 5 23264443.418 23264441.804 23264442.616
+ 34.700 32.600
+ 06 1 2 12 37 30.0000000 0 7G03G13G15G16G19G23G27
+ -21544875.760 7 -16788208.136 7 20459987.859 20459986.139 20459986.940
+ 47.500 42.700
+ -19096241.250 7 -14880187.737 6 20985384.895 20985382.072 20985384.554
+ 43.600 41.900
+ -877504.936 4 -683769.887 3 24458232.264 24458231.475 24458230.981
+ 24.900 20.500
+ -12227548.729 7 -9527952.897 5 22267180.741 22267177.474 22267179.666
+ 42.100 32.100
+ -13547168.115 7 -10556231.683 6 22053070.467 22053066.863 22053069.024
+ 42.600 36.500
+ -16364993.987 7 -12751944.375 6 21547557.394 21547552.588 21547556.271
+ 43.400 37.200
+ -10105407.270 5 -7874342.182 5 23248480.176 23248478.151 23248479.273
+ 34.600 32.000
+ 06 1 2 12 38 0.0000000 0 7G03G13G15G16G19G23G27
+ -21560346.942 7 -16800263.611 7 20457043.630 20457042.178 20457042.814
+ 47.500 42.800
+ -19084731.241 7 -14871218.910 6 20987575.135 20987572.376 20987574.782
+ 43.600 41.900
+ -922367.703 4 -718727.865 3 24449695.160 24449694.606 24449694.183
+ 26.800 20.500
+ -12148898.803 7 -9466667.267 5 22282147.232 22282144.057 22282146.076
+ 42.000 32.300
+ -13636602.035 7 -10625920.435 6 22036051.507 22036048.208 22036050.219
+ 42.400 36.800
+ -16284138.246 7 -12688939.929 6 21562943.933 21562939.109 21562942.881
+ 43.700 37.000
+ -10189210.084 5 -7939643.090 5 23232533.471 23232531.024 23232532.280
+ 34.300 32.100
+ 06 1 2 12 38 30.0000000 0 7G03G13G15G16G19G23G27
+ -21575203.493 7 -16811840.151 7 20454216.644 20454215.053 20454215.719
+ 47.600 42.700
+ -19072586.387 7 -14861755.398 6 20989885.980 20989883.339 20989885.649
+ 43.600 41.900
+ -966785.266 4 -753338.907 3 24441242.495 24441241.641 24441241.481
+ 27.600 19.300
+ -12070090.168 7 -9405257.966 5 22297144.167 22297141.319 22297143.140
+ 42.100 33.100
+ -13725684.008 7 -10695334.953 6 22019100.582 22019096.368 22019098.603
+ 42.400 36.800
+ -16202843.962 7 -12625593.766 6 21578413.820 21578408.878 21578412.721
+ 43.600 37.200
+ -10272927.155 5 -8004877.176 5 23216602.040 23216600.753 23216601.248
+ 35.100 32.100
+ 06 1 2 12 39 0.0000000 0 7G03G13G15G16G19G23G27
+ -21589445.302 7 -16822937.666 7 20451506.495 20451504.802 20451505.592
+ 47.400 42.500
+ -19059807.267 7 -14851797.657 7 20992317.813 20992315.337 20992317.501
+ 43.400 42.000
+ -1010755.465 4 -787601.403 3 24432875.964 24432875.132 24432874.547
+ 25.900 19.300
+ -11991123.801 6 -9343725.754 5 22312170.630 22312167.903 22312169.778
+ 41.800 32.600
+ -13814411.447 7 -10764473.212 6 22002216.461 22002212.105 22002214.230
+ 42.300 36.700
+ -16121113.771 7 -12561907.935 6 21593966.318 21593961.634 21593965.318
+ 43.300 37.200
+ -10356556.733 5 -8070043.082 5 23200687.951 23200686.139 23200687.120
+ 34.300 32.300
+ 06 1 2 12 39 30.0000000 0 7G03G13G15G16G19G23G27
+ -21603072.062 7 -16833555.932 7 20448913.275 20448911.722 20448912.489
+ 47.600 42.600
+ -19046394.481 7 -14841346.152 6 20994870.149 20994867.570 20994869.813
+ 43.400 41.900
+ -1054276.147 4 -821513.584 3 24424593.532 24424592.592 24424592.831
+ 26.500 18.600
+ -11912001.460 6 -9282072.006 5 22327227.096 22327224.412 22327226.053
+ 41.900 33.100
+ -13902781.992 7 -10833333.372 6 21985399.797 21985395.704 21985397.838
+ 42.600 36.500
+ -16038950.092 7 -12497884.323 6 21609601.775 21609597.069 21609600.613
+ 43.400 37.100
+ -10440097.446 5 -8135139.753 5 23184791.400 23184788.923 23184790.308
+ 35.800 32.700
+ 06 1 2 12 40 0.0000000 0 7G03G13G15G16G19G23G27
+ -21616083.893 7 -16843695.029 7 20446437.390 20446435.531 20446436.560
+ 47.700 42.300
+ -19032348.485 7 -14830401.237 6 20997543.049 20997540.498 20997542.746
+ 43.400 41.900
+ -1097345.257 3 -855073.894 3 24416398.100 24416396.926 24416396.466
+ 23.000 18.600
+ -11832724.150 6 -9220297.515 5 22342313.174 22342310.566 22342312.187
+ 41.500 32.700
+ -13990793.305 7 -10901913.601 6 21968651.356 21968647.750 21968649.892
+ 43.100 36.500
+ -15956355.610 7 -12433525.020 6 21625319.079 21625314.040 21625317.946
+ 43.200 36.600
+ -10523548.292 6 -8200166.396 5 23168911.272 23168908.987 23168910.231
+ 36.100 32.800
+ 06 1 2 12 40 30.0000000 0 7G03G13G15G16G19G23G27
+ -21628480.542 7 -16853354.769 7 20444078.450 20444076.626 20444077.537
+ 47.600 42.300
+ -19017669.103 7 -14818962.772 6 21000336.598 21000334.009 21000336.300
+ 43.600 41.900
+ -1139960.543 4 -888280.602 3 24408288.478 24408287.609 24408287.415
+ 27.400 21.100
+ -11753293.146 6 -9158403.267 5 22357428.610 22357425.874 22357427.561
+ 41.300 32.700
+ -14078443.052 7 -10970212.101 6 21951972.597 21951968.691 21951970.862
+ 43.100 36.900
+ -15873333.216 7 -12368832.275 6 21641118.157 21641112.735 21641116.837
+ 43.200 36.700
+ -10606907.584 6 -8265121.704 5 23153048.149 23153045.911 23153047.145
+ 36.000 33.000
+ 06 1 2 12 41 0.0000000 0 7G03G13G15G16G19G23G27
+ -21640261.827 7 -16862534.992 7 20441836.577 20441834.805 20441835.685
+ 47.600 42.500
+ -19002357.014 7 -14807031.290 6 21003250.199 21003247.818 21003249.967
+ 43.700 41.900
+ -1182119.851 4 -921132.000 3 24400265.379 24400264.775 24400264.106
+ 24.200 18.600
+ -11673709.744 6 -9096390.245 5 22372573.044 22372569.672 22372571.934
+ 41.200 32.600
+ -14165728.622 7 -11038226.818 6 21935363.196 21935358.637 21935360.848
+ 43.000 37.100
+ -15789885.433 7 -12303808.061 6 21656997.574 21656992.379 21656996.445
+ 43.700 37.000
+ -10690173.776 5 -8330004.465 5 23137203.088 23137200.874 23137202.300
+ 35.700 32.600
+ 06 1 2 12 41 30.0000000 0 7G03G13G15G16G19G23G27
+ -21651427.868 7 -16871235.811 7 20439711.820 20439709.915 20439710.885
+ 47.700 42.500
+ -18986412.504 7 -14794607.011 6 21006284.510 21006281.841 21006284.249
+ 43.800 41.600
+ -1223821.053 4 -953626.399 3 24392329.650 24392329.684 24392328.705
+ 24.900 20.500
+ -11593975.409 6 -9034259.625 5 22387746.103 22387743.101 22387744.793
+ 41.100 32.800
+ -14252647.660 7 -11105955.921 6 21918821.874 21918818.518 21918820.499
+ 43.200 37.400
+ -15706014.871 7 -12238454.402 6 21672957.269 21672952.388 21672956.350
+ 43.100 36.500
+ -10773345.407 5 -8394813.541 5 23121376.183 23121373.883 23121375.165
+ 35.700 32.700
+ 06 1 2 12 42 0.0000000 0 7G03G13G15G16G19G23G27
+ -21661978.256 7 -16879456.892 7 20437704.126 20437702.226 20437703.200
+ 47.700 42.400
+ -18969836.179 7 -14781690.415 6 21009438.953 21009436.223 21009438.669
+ 43.800 41.800
+ -1265061.965 3 -985762.173 3 24384482.185 24384481.540 24384481.080
+ 23.800 22.600
+ -11514091.470 6 -8972012.432 5 22402947.482 22402944.498 22402946.239
+ 41.200 32.700
+ -14339197.822 7 -11173397.576 6 21902352.004 21902348.478 21902350.602
+ 43.100 37.100
+ -15621724.115 7 -12172773.330 6 21688997.577 21688992.552 21688996.423
+ 43.000 36.400
+ -10856421.543 5 -8459548.195 5 23105567.121 23105565.294 23105566.212
+ 35.500 33.600
+ 06 1 2 12 42 30.0000000 0 7G03G13G15G16G19G23G27
+ -21671913.125 7 -16887198.361 7 20435813.603 20435811.669 20435812.621
+ 47.700 42.200
+ -18952628.653 7 -14768281.970 6 21012713.551 21012710.679 21012713.222
+ 43.900 41.400
+ -1305840.618 3 -1017537.708 3 24376722.338 24376721.895 24376720.916
+ 23.400 20.500
+ -11434059.270 6 -8909649.703 5 22418176.957 22418174.000 22418175.886
+ 40.800 31.600
+ -14425376.786 7 -11240550.001 6 21885953.365 21885949.187 21885951.190
+ 42.800 37.300
+ -15537015.905 7 -12106766.961 5 21705116.997 21705111.871 21705115.895
+ 42.800 35.600
+ -10939400.122 6 -8524206.838 5 23089776.952 23089774.914 23089776.099
+ 36.500 33.800
+ 06 1 2 12 43 0.0000000 0 7G03G13G15G16G19G23G27
+ -21681232.525 7 -16894460.236 7 20434040.368 20434038.215 20434039.360
+ 47.600 42.500
+ -18934790.260 7 -14754381.941 6 21016108.167 21016105.253 21016107.835
+ 43.600 41.700
+ -1346154.778 4 -1048951.330 3 24369050.765 24369050.127 24369049.649
+ 26.500 20.500
+ -11353879.896 6 -8847172.309 5 22433434.609 22433431.923 22433433.639
+ 41.000 32.100
+ -14511182.146 7 -11307411.310 6 21869624.861 21869621.008 21869623.162
+ 43.000 37.700
+ -15451892.977 7 -12040437.441 6 21721315.301 21721310.515 21721314.158
+ 42.900 36.500
+ -11022280.065 5 -8588788.625 5 23074005.176 23074003.317 23074004.379
+ 35.900 33.200
+ 06 1 2 12 43 30.0000000 0 7G03G13G15G16G19G23G27
+ -21689936.787 7 -16901242.790 7 20432383.890 20432382.009 20432382.928
+ 47.500 42.500
+ -18916321.733 7 -14739990.900 6 21019622.517 21019619.926 21019622.224
+ 44.000 41.600
+ -1386002.396 4 -1080001.431 3 24361467.647 24361467.442 24361466.928
+ 24.900 21.100
+ -11273554.617 6 -8784581.206 5 22448720.143 22448717.195 22448718.976
+ 40.900 31.600
+ -14596611.743 7 -11373979.796 6 21853367.057 21853364.281 21853366.454
+ 43.400 37.500
+ -15366357.941 7 -11973786.802 6 21737592.151 21737587.154 21737590.850
+ 42.500 36.100
+ -11105059.683 6 -8653292.233 5 23058252.858 23058250.898 23058251.952
+ 36.300 33.100
+ 06 1 2 12 44 0.0000000 0 7G03G13G15G16G19G23G27
+ -21698025.673 7 -16907545.824 7 20430844.748 20430842.842 20430843.718
+ 47.600 42.700
+ -18897223.440 7 -14725109.135 6 21023256.785 21023254.231 21023256.461
+ 43.500 41.900
+ -1425381.398 4 -1110686.378 3 24353974.518 24353973.648 24353973.648
+ 25.300 19.300
+ -11193085.044 6 -8721877.676 5 22464032.512 22464030.060 22464031.547
+ 40.700 31.500
+ -14681662.911 7 -11440253.425 6 21837184.129 21837179.464 21837181.902
+ 43.400 37.400
+ -15280413.704 7 -11906817.298 5 21753946.737 21753941.800 21753945.646
+ 42.400 35.800
+ -11187737.767 6 -8717716.723 5 23042519.690 23042517.864 23042518.773
+ 36.400 33.500
+ 06 1 2 12 44 30.0000000 0 7G03G13G15G16G19G23G27
+ -21705499.037 7 -16913369.230 7 20429422.488 20429420.703 20429421.514
+ 47.500 42.600
+ -18877496.149 7 -14709737.239 6 21027010.871 21027008.173 21027010.509
+ 43.600 41.800
+ -1464289.897 4 -1141004.680 3 24346570.243 24346569.537 24346569.076
+ 24.200 18.600
+ -11112472.142 6 -8659062.454 5 22479372.818 22479370.142 22479371.758
+ 40.700 30.800
+ -14766333.481 7 -11506230.486 6 21821071.103 21821067.190 21821069.297
+ 43.600 37.800
+ -15194062.686 7 -11839530.829 5 21770379.039 21770373.799 21770377.596
+ 42.000 35.600
+ -11270312.900 6 -8782060.999 5 23026806.407 23026804.428 23026805.384
+ 36.500 33.200
+ 06 1 2 12 45 0.0000000 0 7G03G13G15G16G19G23G27
+ -21712357.086 7 -16918713.175 7 20428117.356 20428115.598 20428116.444
+ 47.600 42.600
+ -18857140.199 7 -14693875.483 6 21030884.532 21030881.702 21030884.237
+ 43.900 41.500
+ -1502725.805 4 -1170954.757 3 24339256.226 24339255.998 24339255.358
+ 25.300 21.600
+ -11031717.270 6 -8596136.613 5 22494740.312 22494737.356 22494739.167
+ 40.300 31.100
+ -14850621.206 7 -11571909.212 6 21805031.282 21805027.847 21805029.947
+ 43.800 38.000
+ -15107307.889 7 -11771929.724 5 21786887.519 21786882.733 21786886.349
+ 42.200 35.500
+ -11352783.318 6 -8846323.676 5 23011112.369 23011110.688 23011111.666
+ 36.500 33.400
+ 06 1 2 12 45 30.0000000 0 7G03G13G15G16G19G23G27
+ -21718600.061 7 -16923577.840 7 20426929.393 20426927.617 20426928.467
+ 47.700 42.500
+ -18836156.707 7 -14677524.730 6 21034877.661 21034874.838 21034877.249
+ 43.800 41.600
+ -1540687.052 4 -1200534.974 3 24332032.903 24332031.754 24332031.736
+ 24.600 20.500
+ -10950821.512 6 -8533100.992 5 22510134.214 22510131.230 22510133.200
+ 40.500 31.100
+ -14934523.584 7 -11637287.670 6 21789065.661 21789061.640 21789063.733
+ 43.800 38.100
+ -15020152.006 7 -11704016.083 5 21803472.914 21803468.006 21803471.782
+ 42.300 35.800
+ -11435147.491 6 -8910503.561 5 22995439.312 22995437.393 22995438.372
+ 36.500 33.200
+ 06 1 2 12 46 0.0000000 0 7G03G13G15G16G19G23G27
+ -21724228.096 7 -16927963.335 7 20425858.457 20425856.684 20425857.450
+ 47.700 42.700
+ -18814546.198 7 -14660685.388 6 21038989.910 21038987.232 21038989.609
+ 43.900 41.500
+ -1578171.792 3 -1229743.834 3 24324899.593 24324898.689 24324898.385
+ 23.000 18.600
+ -10869786.491 6 -8469956.854 5 22525554.383 22525551.833 22525553.474
+ 40.500 31.100
+ -15018038.074 7 -11702363.894 6 21773173.440 21773169.284 21773171.359
+ 44.000 38.100
+ -14932597.652 7 -11635791.947 6 21820134.088 21820129.091 21820132.894
+ 42.300 36.000
+ -11517403.966 6 -8974599.526 5 22979786.247 22979784.481 22979785.299
+ 36.900 33.400
+ 06 1 2 12 46 30.0000000 0 7G03G13G15G16G19G23G27
+ -21729241.255 7 -16931869.701 7 20424904.316 20424902.669 20424903.424
+ 47.600 42.700
+ -18792309.004 7 -14643357.721 6 21043221.571 21043218.862 21043221.240
+ 43.900 41.400
+ -1615177.846 3 -1258579.717 3 24317856.842 24317856.527 24317855.634
+ 22.100 19.900
+ -10788613.287 6 -8406705.045 5 22541001.786 22540998.224 22541000.493
+ 40.500 31.000
+ -15101162.711 7 -11767136.325 6 21757354.696 21757351.258 21757353.390
+ 44.300 38.100
+ -14844647.691 7 -11567259.543 5 21836870.082 21836865.386 21836869.080
+ 42.000 34.900
+ -11599551.158 6 -9038610.339 5 22964154.382 22964152.334 22964153.540
+ 36.800 33.600
+ 06 1 2 12 47 0.0000000 0 7G03G13G15G16G19G23G27
+ -21733639.895 7 -16935297.224 7 20424067.341 20424065.657 20424066.460
+ 47.600 42.400
+ -18769445.932 7 -14625542.364 6 21047572.326 21047569.455 21047571.935
+ 44.000 41.300
+ -1651703.236 4 -1287041.071 2 24310906.543 24310905.462 24310905.594
+ 24.600 16.100
+ -10707302.925 6 -8343346.354 5 22556474.469 22556471.148 22556473.416
+ 40.300 30.800
+ -15183894.749 7 -11831602.843 6 21741611.908 21741607.934 21741609.964
+ 43.900 38.100
+ -14756304.833 6 -11498420.987 5 21853681.103 21853676.520 21853680.087
+ 41.400 35.300
+ -11681587.659 6 -9102534.910 5 22948543.683 22948541.459 22948542.645
+ 37.500 33.900
+ 06 1 2 12 47 30.0000000 0 7G03G13G15G16G19G23G27
+ -21737424.163 7 -16938246.016 7 20423347.298 20423345.489 20423346.447
+ 47.800 42.600
+ -18745958.186 7 -14607240.243 6 21052041.821 21052039.095 21052041.530
+ 44.000 41.300
+ -1687746.010 3 -1315126.337 3 24304047.961 24304047.275 24304046.691
+ 23.400 19.900
+ -10625856.821 6 -8279881.897 5 22571972.959 22571970.152 22571971.783
+ 39.600 30.400
+ -15266233.108 7 -11895762.606 6 21725943.549 21725939.570 21725941.526
+ 44.100 38.100
+ -14667571.689 6 -11429278.310 5 21870566.797 21870561.880 21870565.790
+ 41.900 35.100
+ -11763511.601 6 -9166371.763 5 22932953.765 22932952.063 22932952.728
+ 36.700 35.100
+ 06 1 2 12 48 0.0000000 0 7G03G13G15G16G19G23G27
+ -21740594.157 7 -16940716.150 7 20422744.288 20422742.264 20422743.365
+ 47.800 42.700
+ -18721846.106 7 -14588451.631 6 21056630.199 21056627.523 21056629.869
+ 43.700 41.400
+ -1723304.305 3 -1342834.119 3 24297281.295 24297280.756 24297280.301
+ 23.400 19.900
+ -10544276.244 6 -8216312.657 5 22587497.167 22587494.459 22587496.226
+ 39.800 30.100
+ -15348174.997 7 -11959613.410 6 21710350.033 21710346.332 21710348.365
+ 43.900 38.000
+ -14578451.298 6 -11359833.892 5 21887525.908 21887520.990 21887524.833
+ 41.400 35.400
+ -11845321.982 6 -9230120.115 5 22917385.712 22917383.873 22917384.720
+ 36.100 34.700
+ 06 1 2 12 48 30.0000000 0 7G03G13G15G16G19G23G27
+ -21743150.083 8 -16942707.793 7 20422257.839 20422255.983 20422256.906
+ 48.000 42.700
+ -18697110.636 7 -14569177.257 6 21061337.247 21061334.463 21061336.906
+ 43.800 41.300
+ -1758376.199 3 -1370162.856 2 24290606.985 24290606.800 24290605.946
+ 23.400 17.800
+ -10462562.357 6 -8152639.530 5 22603047.004 22603044.249 22603046.006
+ 40.000 30.800
+ -15429717.605 7 -12023153.101 6 21694833.380 21694829.285 21694831.461
+ 44.400 38.100
+ -14488946.463 6 -11290089.899 5 21904557.984 21904553.148 21904556.705
+ 41.000 35.300
+ -11927017.129 6 -9293778.673 5 22901839.533 22901838.049 22901838.590
+ 37.000 34.900
+ 06 1 2 12 49 0.0000000 0 7G03G13G15G16G19G23G27
+ -21745092.552 7 -16944221.410 7 20421888.412 20421886.480 20421887.398
+ 47.800 42.800
+ -18671752.568 7 -14549417.747 6 21066162.714 21066159.867 21066162.433
+ 44.000 41.100
+ -1792959.935 4 -1397111.207 3 24284026.900 24284025.893 24284025.754
+ 25.300 21.100
+ -10380716.149 6 -8088863.308 5 22618622.111 22618619.030 22618620.850
+ 39.500 31.500
+ -15510858.860 7 -12086380.042 6 21679392.163 21679388.758 21679390.739
+ 44.300 38.800
+ -14399059.794 6 -11220048.384 5 21921663.030 21921658.313 21921661.849
+ 41.500 35.400
+ -12008595.612 6 -9357346.336 5 22886316.213 22886313.942 22886315.142
+ 37.700 34.600
+ 06 1 2 12 49 30.0000000 0 7G03G13G15G16G19G23G27
+ -21746421.821 7 -16945257.220 7 20421635.437 20421633.467 20421634.410
+ 47.900 42.700
+ -18645773.065 7 -14529173.994 6 21071106.443 21071103.709 21071106.147
+ 43.900 41.100
+ -1827053.690 3 -1423677.772 3 24277538.803 24277537.304 24277537.350
+ 21.600 18.600
+ -10298739.269 6 -8024985.262 5 22634221.906 22634218.614 22634220.682
+ 39.600 30.800
+ -15591596.749 7 -12149292.672 6 21664028.792 21664024.846 21664026.827
+ 44.400 38.700
+ -14308794.187 6 -11149711.578 5 21938839.815 21938835.126 21938838.725
+ 41.400 34.900
+ -12090055.821 6 -9420821.845 5 22870814.614 22870812.511 22870813.767
+ 38.100 34.400
+ 06 1 2 12 50 0.0000000 0 7G03G13G15G16G19G23G27
+ -21747138.002 8 -16945815.292 7 20421498.986 20421497.027 20421498.026
+ 48.000 42.600
+ -18619172.872 7 -14508446.592 6 21076168.270 21076165.700 21076167.935
+ 43.700 41.300
+ -1860655.495 3 -1449860.963 3 24271144.055 24271144.256 24271143.415
+ 22.600 20.500
+ -10216632.532 6 -7961006.025 5 22649846.260 22649843.097 22649844.912
+ 38.700 30.400
+ -15671929.356 7 -12211889.498 6 21648741.775 21648737.874 21648739.937
+ 44.300 38.600
+ -14218152.698 6 -11079081.885 5 21956088.176 21956083.865 21956087.353
+ 40.700 34.900
+ -12171395.797 6 -9484203.660 5 22855336.304 22855333.850 22855335.251
+ 38.100 33.600
+ 06 1 2 12 50 30.0000000 0 7G03G13G15G16G19G23G27
+ -21747241.725 8 -16945896.126 7 20421479.278 20421477.308 20421478.316
+ 48.000 42.500
+ -18591952.960 7 -14487236.291 6 21081347.993 21081345.527 21081347.713
+ 43.600 41.200
+ -1893763.595 4 -1475659.483 3 24264843.568 24264843.792 24264842.770
+ 24.200 20.500
+ -10134397.117 6 -7896926.524 5 22665495.090 22665491.927 22665494.094
+ 39.700 30.800
+ -15751853.850 7 -12274168.307 6 21633532.669 21633528.862 21633530.924
+ 44.400 38.800
+ -14127138.040 6 -11008161.409 5 21973408.183 21973403.185 21973406.862
+ 40.300 33.900
+ -12252614.280 6 -9547490.821 5 22839880.839 22839878.219 22839879.770
+ 37.700 33.400
+ 06 1 2 12 51 0.0000000 0 7G03G13G15G16G19G23G27
+ -21746733.217 8 -16945499.901 7 20421576.174 20421574.140 20421575.208
+ 48.100 42.600
+ -18564114.042 7 -14465543.648 6 21086645.714 21086643.225 21086645.342
+ 43.500 41.100
+ -1926376.154 4 -1501071.846 3 24258639.070 24258637.541 24258637.649
+ 24.200 20.500
+ -10052034.725 6 -7832748.082 5 22681167.962 22681165.217 22681166.894
+ 38.900 30.200
+ -15831368.549 7 -12336127.798 6 21618401.774 21618397.521 21618399.831
+ 44.500 38.400
+ -14035752.972 6 -10936952.306 5 21990798.714 21990793.388 21990797.282
+ 40.700 34.500
+ -12333709.489 6 -9610681.908 5 22824448.998 22824446.864 22824448.033
+ 37.900 34.800
+ 06 1 2 12 51 30.0000000 0 7G03G13G15G16G19G23G27
+ -21745612.803 8 -16944626.861 7 20421789.493 20421787.297 20421788.542
+ 48.200 42.500
+ -18535657.299 7 -14443369.584 6 21092060.545 21092058.345 21092060.249
+ 43.300 41.000
+ -1958491.431 4 -1526096.727 3 24252527.365 24252526.348 24252526.208
+ 24.600 21.600
+ -9969546.141 6 -7768471.295 4 22696864.825 22696861.880 22696863.793
+ 38.900 29.900
+ -15910470.908 7 -12397765.990 6 21603348.362 21603344.897 21603347.063
+ 44.900 38.700
+ -13944000.184 6 -10865456.672 5 22008258.023 22008253.555 22008257.110
+ 41.200 35.100
+ -12414680.234 6 -9673776.004 5 22809040.567 22809039.124 22809039.506
+ 37.200 35.700
+ 06 1 2 12 52 0.0000000 0 7G03G13G15G16G19G23G27
+ -21743881.011 8 -16943277.417 7 20422118.909 20422116.901 20422117.991
+ 48.200 42.400
+ -18506583.443 7 -14420714.651 6 21097593.078 21097590.705 21097592.773
+ 43.400 40.600
+ -1990107.667 3 -1550732.786 3 24246509.899 24246510.144 24246508.690
+ 23.000 23.000
+ -9886932.512 6 -7704097.074 5 22712586.289 22712583.228 22712585.016
+ 38.800 30.100
+ -15989159.026 7 -12459081.397 6 21588375.193 21588371.070 21588373.034
+ 44.600 39.000
+ -13851882.696 6 -10793676.850 5 22025787.411 22025782.993 22025786.535
+ 41.200 35.100
+ -12495524.720 6 -9736771.715 5 22793656.277 22793654.384 22793655.373
+ 37.700 34.800
+ 06 1 2 12 52 30.0000000 0 7G03G13G15G16G19G23G27
+ -21741538.412 8 -16941452.035 7 20422564.886 20422562.759 20422563.789
+ 48.100 42.700
+ -18476893.760 7 -14397579.850 6 21103243.059 21103240.553 21103242.759
+ 43.500 40.800
+ -2021223.148 4 -1574978.596 3 24240589.498 24240588.777 24240588.560
+ 24.600 19.900
+ -9804194.977 6 -7639626.316 4 22728330.595 22728327.482 22728329.388
+ 38.500 29.200
+ -16067430.501 7 -12520072.149 6 21573480.431 21573476.576 21573478.614
+ 44.900 39.200
+ -13759403.299 6 -10721615.025 5 22043386.274 22043381.082 22043384.771
+ 40.300 34.300
+ -12576241.369 6 -9799667.825 5 22778296.568 22778294.667 22778295.806
+ 38.600 34.900
+ 06 1 2 12 53 0.0000000 0 7G03G13G15G16G19G23G27
+ -21738585.624 8 -16939151.170 7 20423126.485 20423124.707 20423125.586
+ 48.000 42.600
+ -18446589.408 7 -14373966.095 6 21109009.723 21109007.380 21109009.410
+ 43.200 40.900
+ -2051835.954 3 -1598832.753 3 24234763.797 24234763.785 24234762.723
+ 23.400 21.600
+ -9721334.920 6 -7575060.070 4 22744098.106 22744095.386 22744097.000
+ 38.700 29.200
+ -16145283.404 7 -12580736.732 6 21558665.116 21558661.687 21558663.688
+ 45.100 39.300
+ -13666565.099 6 -10649273.616 5 22061052.639 22061047.472 22061051.347
+ 40.300 33.900
+ -12656828.742 6 -9862463.204 5 22762961.487 22762959.394 22762960.386
+ 38.100 35.300
+ 06 1 2 12 53 30.0000000 0 7G03G13G15G16G19G23G27
+ -21735022.938 7 -16936375.060 7 20423804.298 20423802.633 20423803.444
+ 47.900 42.700
+ -18415671.349 7 -14349874.122 6 21114893.422 21114890.682 21114893.069
+ 43.400 40.400
+ -2081944.530 4 -1622293.990 3 24229035.289 24229033.972 24229034.195
+ 25.300 21.600
+ -9638353.459 6 -7510399.232 4 22759889.180 22759886.280 22759887.999
+ 38.600 29.500
+ -16222715.482 7 -12641073.419 6 21543930.615 21543926.762 21543928.905
+ 45.000 39.300
+ -13573370.905 6 -10576654.802 5 22078786.291 22078781.763 22078785.537
+ 40.300 33.500
+ -12737285.027 6 -9925156.422 5 22747651.009 22747649.289 22747650.109
+ 38.100 35.600
+ 06 1 2 12 54 0.0000000 0 7G03G13G15G16G19G23G27
+ -21730851.003 7 -16933124.218 7 20424598.297 20424596.523 20424597.315
+ 47.800 42.600
+ -18384140.509 7 -14325304.655 6 21120893.516 21120890.942 21120893.175
+ 43.300 40.500
+ -2111547.153 4 -1645361.008 3 24223401.215 24223401.076 24223400.385
+ 25.900 23.000
+ -9555251.669 6 -7445644.634 4 22775702.677 22775700.412 22775701.578
+ 38.600 29.900
+ -16299724.575 7 -12701080.494 6 21529276.279 21529272.500 21529274.512
+ 45.100 39.600
+ -13479823.560 6 -10503760.799 5 22096587.545 22096583.349 22096586.782
+ 40.000 33.600
+ -12817608.585 6 -9987746.222 6 22732365.884 22732364.247 22732364.857
+ 38.100 36.200
+ 06 1 2 12 54 30.0000000 0 7G03G13G15G16G19G23G27
+ -21726070.399 7 -16929399.085 7 20425508.036 20425506.250 20425507.057
+ 47.700 42.500
+ -18351998.214 7 -14300258.734 6 21127010.001 21127007.414 21127009.665
+ 43.300 40.300
+ -2140642.160 4 -1668032.468 3 24217865.065 24217863.801 24217863.925
+ 25.900 21.600
+ -9472030.687 6 -7380797.158 4 22791539.646 22791536.764 22791538.432
+ 38.400 29.500
+ -16376308.801 7 -12760756.507 6 21514703.020 21514698.986 21514701.050
+ 45.200 39.700
+ -13385925.793 6 -10430593.745 5 22114456.580 22114451.546 22114455.069
+ 39.500 34.000
+ -12897797.582 6 -10050231.163 5 22717106.604 22717104.739 22717105.705
+ 38.600 35.700
+ 06 1 2 12 55 0.0000000 0 7G03G13G15G16G19G23G27
+ -21720681.647 7 -16925200.071 7 20426533.492 20426531.719 20426532.558
+ 47.600 42.500
+ -18319245.526 7 -14274737.182 6 21133242.627 21133239.876 21133242.327
+ 43.300 40.000
+ -2169228.043 4 -1690307.222 3 24212425.307 24212424.804 24212424.105
+ 25.600 21.100
+ -9388691.661 6 -7315857.697 4 22807398.713 22807395.610 22807397.383
+ 38.100 29.500
+ -16452465.869 7 -12820099.673 6 21500210.778 21500206.857 21500208.985
+ 45.400 40.000
+ -13291680.450 6 -10357155.876 5 22132390.700 22132385.801 22132389.559
+ 40.300 33.500
+ -12977850.987 6 -10112610.457 6 22701872.996 22701871.185 22701872.037
+ 39.300 36.100
+ 06 1 2 12 55 30.0000000 0 7G03G13G15G16G19G23G27
+ -21714685.272 7 -16920527.584 7 20427674.436 20427672.763 20427673.476
+ 47.700 42.400
+ -18285883.547 7 -14248740.856 6 21139591.175 21139588.598 21139590.823
+ 43.100 40.200
+ -2197303.029 3 -1712183.853 3 24207081.586 24207081.908 24207080.748
+ 23.000 21.100
+ -9305235.699 6 -7250827.117 4 22823279.931 22823276.688 22823278.733
+ 38.100 29.000
+ -16528193.824 7 -12879108.469 6 21485799.958 21485796.169 21485798.415
+ 45.700 39.400
+ -13197090.603 6 -10283449.520 5 22150389.838 22150385.825 22150389.452
+ 40.500 33.900
+ -13057766.941 6 -10174882.648 5 22686665.271 22686663.266 22686664.392
+ 38.900 35.100
+ 06 1 2 12 56 0.0000000 0 7G03G13G15G16G19G23G27
+ -21708081.932 7 -16915382.137 7 20428931.074 20428929.288 20428930.202
+ 47.600 42.500
+ -18251913.549 7 -14222270.754 6 21146055.358 21146052.947 21146055.032
+ 42.900 39.800
+ -2224865.518 4 -1733661.179 3 24201837.867 24201837.214 24201836.636
+ 24.200 22.600
+ -9221664.085 6 -7185706.418 4 22839182.491 22839179.782 22839181.517
+ 37.800 28.100
+ -16603490.451 7 -12937781.163 6 21471471.549 21471467.670 21471470.009
+ 45.700 39.600
+ -13102159.235 6 -10209477.067 5 22168456.815 22168451.013 22168454.786
+ 39.200 34.500
+ -13137543.504 6 -10237046.220 5 22671484.551 22671482.561 22671483.519
+ 38.800 35.400
+ 06 1 2 12 56 30.0000000 0 7G03G13G15G16G19G23G27
+ -21700872.375 7 -16909764.313 7 20430302.894 20430301.225 20430302.083
+ 47.700 42.400
+ -18217336.780 7 -14195327.839 6 21152635.124 21152632.691 21152634.806
+ 43.100 40.000
+ -2251914.070 4 -1754737.974 3 24196690.666 24196690.256 24196689.789
+ 26.800 23.000
+ -9137977.664 6 -7120496.257 4 22855107.182 22855104.688 22855106.119
+ 37.400 28.400
+ -16678353.985 7 -12996116.373 6 21457225.776 21457221.582 21457223.907
+ 45.600 39.900
+ -13006889.074 6 -10135240.644 5 22186584.307 22186580.237 22186583.308
+ 38.900 34.500
+ -13217179.014 6 -10299099.879 5 22656330.124 22656328.256 22656329.260
+ 38.700 35.200
+ 06 1 2 12 57 0.0000000 0 7G03G13G15G16G19G23G27
+ -21693057.258 7 -16903674.630 7 20431790.319 20431788.460 20431789.386
+ 47.700 42.600
+ -18182154.595 7 -14167913.174 6 21159330.329 21159327.779 21159330.040
+ 43.600 40.000
+ -2278446.891 4 -1775412.923 4 24191641.616 24191641.082 24191640.493
+ 25.300 24.200
+ -9054177.700 6 -7055197.627 4 22871054.339 22871051.945 22871053.060
+ 38.000 28.600
+ -16752782.006 7 -13054112.240 6 21443061.881 21443058.488 21443060.572
+ 45.600 40.100
+ -12911283.095 6 -10060742.506 5 22204777.076 22204773.513 22204776.946
+ 39.100 33.900
+ -13296672.104 6 -10361042.572 5 22641203.294 22641201.287 22641202.309
+ 39.100 35.400
+ 06 1 2 12 57 30.0000000 0 7G03G13G15G16G19G23G27
+ -21684637.121 7 -16897113.502 7 20433392.594 20433390.792 20433391.614
+ 47.700 42.500
+ -18146367.997 7 -14140027.539 6 21166140.435 21166137.768 21166140.078
+ 43.500 39.800
+ -2304462.460 4 -1795684.816 4 24186691.259 24186691.313 24186690.244
+ 26.200 24.600
+ -8970265.192 6 -6989811.300 4 22887022.166 22887019.520 22887021.255
+ 38.100 28.400
+ -16826772.675 7 -13111767.290 6 21428982.515 21428978.556 21428980.564
+ 45.300 40.200
+ -12815344.232 6 -9985985.009 5 22223035.738 22223029.910 22223033.790
+ 39.000 33.100
+ -13376021.149 6 -10422873.015 6 22626103.737 22626101.925 22626102.799
+ 39.700 36.500
+ 06 1 2 12 58 0.0000000 0 7G03G13G15G16G19G23G27
+ -21675612.702 7 -16890081.502 7 20435109.799 20435108.072 20435108.934
+ 47.700 42.300
+ -18109978.515 7 -14111672.125 6 21173064.998 21173062.260 21173064.744
+ 43.800 39.700
+ -2329959.305 4 -1815552.504 3 24181839.047 24181838.702 24181837.811
+ 24.200 23.800
+ -8886241.443 6 -6924338.276 4 22903011.808 22903008.519 22903010.796
+ 38.100 28.400
+ -16900323.641 7 -13169079.733 6 21414985.689 21414982.242 21414984.178
+ 45.500 40.200
+ -12719075.648 6 -9910970.563 5 22241353.210 22241349.127 22241352.615
+ 39.500 32.400
+ -13455224.012 6 -10484589.540 6 22611031.406 22611030.145 22611030.841
+ 39.600 36.700
+ 06 1 2 12 58 30.0000000 0 7G03G13G15G16G19G23G27
+ -21665984.881 7 -16882579.317 7 20436941.884 20436940.136 20436941.048
+ 47.800 42.300
+ -18072987.480 7 -14082847.960 6 21180104.252 21180101.614 21180104.009
+ 43.900 39.900
+ -2354935.831 4 -1835014.761 3 24177086.259 24177085.908 24177085.233
+ 26.800 22.100
+ -8802107.225 6 -6858779.190 4 22919022.344 22919019.367 22919021.183
+ 38.200 27.900
+ -16973433.277 7 -13226048.269 6 21401073.780 21401069.870 21401071.758
+ 45.300 40.200
+ -12622480.040 6 -9835701.296 5 22259735.758 22259731.031 22259734.537
+ 39.300 32.700
+ -13534279.526 6 -10546191.256 6 22595987.950 22595986.346 22595987.214
+ 39.400 36.500
+ 06 1 2 12 59 0.0000000 0 7G03G13G15G16G19G23G27
+ -21655754.334 7 -16874607.478 7 20438888.877 20438886.962 20438887.925
+ 47.600 42.100
+ -18035396.099 7 -14053555.998 6 21187257.853 21187255.149 21187257.485
+ 43.600 39.700
+ -2379390.680 4 -1854070.455 3 24172432.356 24172432.167 24172431.418
+ 25.600 23.000
+ -8717863.956 6 -6793135.117 4 22935052.953 22935049.996 22935051.862
+ 37.600 27.100
+ -17046099.657 7 -13282671.413 6 21387245.236 21387241.940 21387243.933
+ 45.400 40.200
+ -12525560.334 6 -9760179.503 5 22278178.766 22278174.247 22278177.630
+ 38.900 33.200
+ -13613185.843 6 -10607676.720 6 22580972.925 22580970.871 22580971.979
+ 39.700 36.200
+ 06 1 2 12 59 30.0000000 0 7G03G13G15G16G19G23G27
+ -21644921.747 7 -16866166.515 7 20440950.295 20440948.410 20440949.310
+ 47.800 42.500
+ -17997206.125 7 -14023797.600 6 21194524.853 21194522.310 21194524.539
+ 43.500 39.600
+ -2403322.159 4 -1872718.404 4 24167878.569 24167878.812 24167877.582
+ 25.900 24.200
+ -8633512.503 6 -6727406.756 4 22951103.777 22951101.516 22951102.899
+ 37.400 27.400
+ -17118320.648 7 -13338947.509 6 21373502.662 21373498.772 21373500.754
+ 45.600 40.600
+ -12428319.706 6 -9684407.612 5 22296682.516 22296678.368 22296681.962
+ 38.700 33.000
+ -13691941.254 6 -10669044.586 6 22565986.266 22565984.513 22565985.301
+ 40.000 37.200
+ 06 1 2 13 0 0.0000000 0 7G03G13G15G16G19G23G27
+ -21633488.094 7 -16857257.190 7 20443125.817 20443124.223 20443124.981
+ 47.600 42.300
+ -17958418.326 7 -13993573.367 6 21201905.964 21201903.482 21201905.704
+ 43.700 39.800
+ -2426729.172 4 -1890957.642 3 24163425.429 24163424.111 24163424.095
+ 27.900 23.000
+ -8549054.213 6 -6661595.144 4 22967175.885 22967173.791 22967174.995
+ 37.700 28.800
+ -17190094.150 7 -13394874.904 6 21359844.774 21359840.716 21359842.838
+ 45.900 40.700
+ -12330760.649 6 -9608387.625 5 22315248.796 22315243.292 22315247.003
+ 37.600 32.100
+ -13770544.043 6 -10730293.531 6 22551028.556 22551026.633 22551027.712
+ 40.200 36.600
+ 06 1 2 13 0 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21621454.241 7 -16847880.176 7 20445415.836 20445414.281 20445414.929
+ 47.700 42.300
+ -226598.048 3 -176569.621 3 24723366.873 24723365.328 24723365.736
+ 23.400 23.000
+ -17919034.443 7 -13962884.652 6 21209400.739 21209398.058 21209400.384
+ 43.800 39.600
+ -2449609.870 3 -1908786.754 3 24159070.016 24159069.995 24159068.777
+ 22.600 23.000
+ -8464490.071 6 -6595701.054 4 22983268.529 22983265.567 22983267.201
+ 37.100 27.900
+ -17261418.538 7 -13450452.355 6 21346271.752 21346268.120 21346270.232
+ 46.000 40.500
+ -12232886.773 6 -9532122.323 5 22333871.976 22333868.156 22333871.541
+ 38.400 32.700
+ -13848992.360 6 -10791422.102 6 22536100.501 22536098.581 22536099.356
+ 39.300 36.900
+ 06 1 2 13 1 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21608820.959 7 -16838036.071 7 20447820.009 20447818.306 20447819.070
+ 47.600 42.300
+ -332820.789 4 -259340.579 4 24703153.487 24703152.183 24703152.625
+ 25.900 24.900
+ -17879055.925 7 -13931732.584 6 21217008.297 21217005.693 21217008.004
+ 43.500 39.700
+ -2471963.000 4 -1926204.829 3 24154816.650 24154816.121 24154815.598
+ 25.300 21.100
+ -8379820.854 6 -6529725.082 4 22999380.019 22999377.964 22999379.046
+ 36.200 28.600
+ -17332291.710 7 -13505678.202 6 21332785.267 21332781.435 21332783.515
+ 46.000 40.500
+ -12134700.713 6 -9455613.737 5 22352557.427 22352552.326 22352555.967
+ 39.600 32.100
+ -13927284.872 6 -10852429.271 6 22521201.644 22521199.938 22521200.747
+ 39.700 36.900
+ 06 1 2 13 1 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21595589.263 7 -16827725.673 7 20450337.983 20450336.251 20450337.051
+ 47.800 42.200
+ -439044.631 4 -342112.421 4 24682940.344 24682938.431 24682939.202
+ 25.900 24.200
+ -17838484.248 7 -13900118.313 6 21224728.648 21224726.321 21224728.385
+ 43.400 39.700
+ -2493787.304 4 -1943210.765 3 24150663.517 24150663.529 24150662.391
+ 25.600 21.600
+ -8295047.888 6 -6463668.277 4 23015512.017 23015509.945 23015510.875
+ 36.200 28.100
+ -17402711.775 7 -13560550.970 6 21319385.046 21319380.775 21319383.063
+ 46.000 40.500
+ -12036205.351 6 -9378864.143 5 22371299.394 22371295.569 22371298.955
+ 39.300 32.600
+ -14005419.697 6 -10913313.562 6 22506333.055 22506331.349 22506332.209
+ 40.200 36.500
+ 06 1 2 13 2 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21581759.970 7 -16816949.619 7 20452969.589 20452967.851 20452968.633
+ 47.600 42.300
+ -545268.560 4 -424884.261 3 24662727.089 24662724.175 24662725.995
+ 25.300 19.900
+ -17797320.915 7 -13868043.020 6 21232561.867 21232559.504 21232561.540
+ 43.300 39.500
+ -2515081.393 4 -1959803.571 3 24146612.100 24146611.121 24146611.060
+ 25.900 22.100
+ -8210172.078 5 -6397531.332 4 23031663.683 23031661.154 23031662.462
+ 35.700 28.600
+ -17472676.756 7 -13615069.139 6 21306070.470 21306067.008 21306069.070
+ 46.100 40.600
+ -11937403.698 6 -9301875.872 5 22390101.858 22390096.722 22390100.438
+ 37.400 32.100
+ -14083395.340 6 -10974073.825 6 22491494.991 22491492.911 22491494.044
+ 40.200 36.500
+ 06 1 2 13 2 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21567333.922 7 -16805708.555 7 20455714.591 20455712.991 20455713.750
+ 47.600 42.300
+ -651490.825 3 -507654.896 3 24642512.826 24642510.700 24642511.803
+ 23.800 20.500
+ -17755567.411 7 -13835507.848 6 21240507.510 21240504.711 21240507.122
+ 43.300 39.300
+ -2535843.923 4 -1975982.194 3 24142660.638 24142660.728 24142659.390
+ 24.900 22.100
+ -8125194.595 5 -6331315.159 4 23047834.821 23047831.834 23047833.573
+ 35.800 27.900
+ -17542185.072 7 -13669231.451 6 21292843.905 21292840.007 21292842.105
+ 46.000 40.900
+ -11838298.834 6 -9224651.367 5 22408960.236 22408955.613 22408959.185
+ 37.200 31.300
+ -14161209.867 6 -11034708.545 6 22476687.533 22476685.620 22476686.528
+ 40.400 36.800
+ 06 1 2 13 3 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21552312.098 7 -16794003.254 7 20458573.350 20458571.573 20458572.400
+ 47.800 42.100
+ -757710.396 3 -590423.417 3 24622299.758 24622298.078 24622298.894
+ 22.600 21.100
+ -17713225.348 7 -13802514.050 6 21248564.897 21248562.252 21248564.567
+ 43.300 39.400
+ -2556073.700 4 -1991745.650 3 24138811.393 24138810.282 24138810.346
+ 25.600 21.100
+ -8040116.344 5 -6265020.466 4 23064024.136 23064021.145 23064023.017
+ 35.800 26.500
+ -17611234.314 7 -13723036.032 6 21279704.206 21279700.221 21279702.501
+ 46.200 40.700
+ -11738893.958 6 -9147193.059 5 22427876.639 22427871.825 22427875.523
+ 37.000 31.800
+ -14238861.389 6 -11095216.239 6 22461910.855 22461909.059 22461909.825
+ 40.300 37.200
+ 06 1 2 13 3 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21536695.742 7 -16781834.684 7 20461545.013 20461543.257 20461544.101
+ 47.700 42.000
+ -863925.237 3 -673188.215 3 24602088.084 24602085.864 24602086.893
+ 22.600 19.900
+ -17670296.243 7 -13769062.834 6 21256733.929 21256731.644 21256733.597
+ 43.100 39.700
+ -2575769.559 3 -2007093.093 3 24135063.137 24135062.704 24135061.858
+ 23.400 22.100
+ -7954938.549 5 -6198648.201 4 23080232.808 23080230.454 23080231.584
+ 35.300 28.400
+ -17679822.865 7 -13776481.642 6 21266651.651 21266648.338 21266650.369
+ 46.200 41.300
+ -11639191.546 6 -9069502.928 5 22446849.703 22446844.827 22446848.286
+ 37.400 32.100
+ -14316348.161 6 -11155595.557 6 22447165.410 22447163.755 22447164.562
+ 40.700 37.000
+ 06 1 2 13 4 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21520485.747 7 -16769203.533 7 20464629.686 20464627.963 20464628.743
+ 47.800 42.000
+ -970134.179 2 -755948.448 3 24581876.635 24581875.823 24581875.658
+ 16.100 20.500
+ -17626781.811 7 -13735155.510 6 21265014.617 21265012.214 21265014.227
+ 43.200 39.500
+ -2594930.092 4 -2022023.403 3 24131417.381 24131416.802 24131416.095
+ 26.800 22.600
+ -7869661.882 5 -6132198.909 4 23096460.220 23096458.057 23096459.396
+ 35.600 27.100
+ -17747948.926 7 -13829566.865 6 21253688.123 21253684.268 21253686.360
+ 46.300 41.100
+ -11539194.778 6 -8991583.416 5 22465877.842 22465873.761 22465876.903
+ 37.100 32.700
+ -14393668.427 6 -11215845.133 6 22432451.876 22432450.120 22432450.964
+ 40.400 37.200
+ 06 1 2 13 4 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21503683.119 7 -16756110.592 7 20467827.282 20467825.382 20467826.228
+ 47.800 42.100
+ -1076335.483 3 -838702.695 3 24561668.077 24561665.976 24561667.210
+ 23.400 19.900
+ -17582683.514 7 -13700793.225 6 21273406.005 21273403.770 21273405.726
+ 42.800 39.300
+ -2613553.766 4 -2036535.339 3 24127872.991 24127872.438 24127871.863
+ 26.200 19.300
+ -7784287.666 5 -6065673.596 4 23112706.965 23112704.309 23112705.774
+ 35.100 27.900
+ -17815610.587 7 -13882290.213 6 21240812.832 21240808.693 21240810.914
+ 46.300 41.200
+ -11438906.725 6 -8913436.934 5 22484962.798 22484957.894 22484961.305
+ 37.500 32.400
+ -14470820.580 6 -11275963.712 6 22417770.503 22417768.555 22417769.525
+ 40.500 37.100
+ 06 1 2 13 5 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21486288.647 7 -16742556.474 6 20471137.267 20471135.428 20471136.304
+ 47.700 41.900
+ -1182527.497 3 -921449.765 2 24541459.178 24541457.416 24541458.306
+ 22.100 17.000
+ -17538003.041 7 -13665977.301 6 21281908.491 21281906.192 21281908.149
+ 42.800 39.400
+ -2631639.507 4 -2050628.118 3 24124431.237 24124431.005 24124430.048
+ 24.900 22.600
+ -7698816.975 6 -5999073.114 4 23128972.040 23128968.911 23128970.948
+ 36.000 28.100
+ -17882806.267 7 -13934650.458 6 21228025.645 21228021.866 21228024.125
+ 46.500 41.200
+ -11338330.430 6 -8835065.846 5 22504101.397 22504096.890 22504100.337
+ 37.500 31.800
+ -14547802.878 6 -11335949.940 6 22403121.104 22403119.425 22403120.191
+ 40.600 37.600
+ 06 1 2 13 5 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21468303.512 7 -16728542.101 7 20474559.745 20474557.997 20474558.782
+ 47.800 42.100
+ -1288709.221 3 -1004188.816 3 24521254.697 24521251.999 24521252.962
+ 21.100 21.600
+ -17492741.896 7 -13630708.900 6 21290521.367 21290519.067 21290521.102
+ 42.800 39.000
+ -2649186.190 4 -2064300.885 3 24121092.226 24121092.068 24121090.881
+ 25.600 21.100
+ -7613250.544 5 -5932398.026 4 23145254.354 23145251.677 23145253.192
+ 35.800 27.100
+ -17949533.871 7 -13986645.983 6 21215328.027 21215324.026 21215326.253
+ 46.600 41.400
+ -11237468.945 6 -8756472.525 5 22523294.708 22523290.147 22523293.771
+ 37.600 30.100
+ -14624613.726 6 -11395802.556 6 22388504.465 22388503.106 22388503.537
+ 40.600 38.200
+ 06 1 2 13 6 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21449728.886 7 -16714068.387 7 20478094.434 20478092.623 20478093.475
+ 47.800 42.000
+ -1394879.100 3 -1086918.559 3 24501051.350 24501048.766 24501050.391
+ 23.000 22.600
+ -17446901.948 7 -13594989.487 6 21299244.417 21299242.134 21299244.088
+ 42.800 38.900
+ -2666192.610 4 -2077552.637 3 24117856.050 24117855.786 24117855.015
+ 27.100 21.100
+ -7527589.546 5 -5865649.254 4 23161555.094 23161552.180 23161553.906
+ 35.600 26.500
+ -18015791.860 7 -14038275.569 6 21202719.871 21202715.563 21202717.830
+ 46.700 41.600
+ -11136325.425 6 -8677659.434 5 22542541.692 22542537.339 22542540.659
+ 36.900 31.100
+ -14701250.971 6 -11455519.896 6 22373921.091 22373919.257 22373920.201
+ 40.900 37.700
+ 06 1 2 13 6 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21430565.890 7 -16699136.199 7 20481741.017 20481739.227 20481740.072
+ 47.700 42.100
+ -1501035.594 3 -1169637.922 2 24480849.375 24480846.949 24480848.333
+ 23.000 16.100
+ -17400484.951 7 -13558820.418 6 21308077.531 21308075.151 21308077.214
+ 43.200 39.100
+ -2682657.676 4 -2090382.542 3 24114723.591 24114722.516 24114722.439
+ 27.400 20.500
+ -7441835.059 6 -5798827.634 4 23177873.992 23177870.597 23177872.780
+ 36.300 25.300
+ -18081578.282 7 -14089537.704 6 21190200.828 21190196.785 21190199.009
+ 46.800 41.600
+ -11034902.778 6 -8598628.845 5 22561842.142 22561837.363 22561840.960
+ 36.600 30.600
+ -14777712.634 6 -11515100.433 6 22359371.108 22359368.728 22359370.025
+ 41.000 36.600
+ 06 1 2 13 7 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21410815.463 7 -16683746.273 7 20485499.414 20485497.631 20485498.421
+ 47.700 42.100
+ -1607177.077 4 -1252345.606 2 24460651.601 24460648.852 24460650.413
+ 24.900 15.100
+ -17353492.396 7 -13522202.871 6 21317019.756 21317017.653 21317019.337
+ 42.300 39.200
+ -2698580.081 4 -2102789.606 3 24111692.408 24111692.014 24111691.849
+ 25.300 21.100
+ -7355987.912 5 -5731933.786 3 23194209.670 23194206.434 23194208.631
+ 35.700 23.800
+ -18146891.451 7 -14140431.075 6 21177772.185 21177768.159 21177770.341
+ 46.900 41.900
+ -10933203.593 6 -8519382.779 5 22581194.504 22581190.235 22581193.553
+ 36.700 31.100
+ -14853997.593 6 -11574543.288 6 22344854.574 22344852.247 22344853.627
+ 41.200 37.200
+ 06 1 2 13 7 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21390478.823 7 -16667899.558 7 20489369.262 20489367.576 20489368.341
+ 47.700 42.100
+ -1713302.078 3 -1335040.431 3 24440456.686 24440454.600 24440455.623
+ 22.600 19.300
+ -17305926.250 7 -13485138.374 6 21326071.319 21326069.193 21326071.021
+ 42.700 39.000
+ -2713958.834 4 -2114773.059 3 24108766.458 24108766.167 24108765.070
+ 24.600 22.100
+ -7270049.118 5 -5664968.529 4 23210563.311 23210560.630 23210562.275
+ 35.300 25.900
+ -18211729.813 7 -14190954.464 6 21165433.846 21165429.732 21165432.048
+ 46.800 41.600
+ -10831231.032 6 -8439923.682 5 22600598.627 22600594.844 22600598.140
+ 37.200 30.200
+ -14930103.890 6 -11633846.907 6 22330371.545 22330369.926 22330370.744
+ 41.000 37.500
+ 06 1 2 13 8 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21369556.990 7 -16651596.847 7 20493350.754 20493348.857 20493349.675
+ 47.600 42.200
+ -1819409.050 4 -1417721.249 2 24420265.261 24420262.993 24420264.097
+ 24.600 17.000
+ -17257788.330 7 -13447628.329 6 21335231.603 21335229.439 21335231.288
+ 42.700 38.900
+ -2728792.720 4 -2126331.926 4 24105943.848 24105943.969 24105942.719
+ 24.600 24.900
+ -7184019.572 5 -5597932.572 4 23226934.019 23226932.027 23226933.067
+ 35.600 26.500
+ -18276091.491 7 -14241106.408 6 21153186.212 21153182.038 21153184.280
+ 46.700 41.700
+ -10728988.450 6 -8360254.184 5 22620055.709 22620051.267 22620054.542
+ 36.600 31.100
+ -15006029.282 6 -11693009.569 6 22315923.806 22315921.793 22315922.748
+ 41.300 37.700
+ 06 1 2 13 8 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21348051.246 7 -16634839.142 7 20497442.940 20497441.310 20497442.030
+ 47.500 42.300
+ -1925496.265 3 -1500386.631 3 24400076.430 24400075.764 24400075.800
+ 22.100 21.100
+ -17209080.084 7 -13409673.883 6 21344500.365 21344498.321 21344500.126
+ 42.600 38.800
+ -2743080.751 4 -2137465.449 3 24103224.784 24103224.701 24103223.820
+ 25.300 22.600
+ -7097900.362 5 -5530826.741 4 23243322.338 23243319.896 23243321.200
+ 34.500 25.300
+ -18339974.586 7 -14290885.433 6 21141029.690 21141025.534 21141027.776
+ 46.600 41.900
+ -10626478.828 5 -8280376.608 5 22639562.349 22639558.078 22639561.256
+ 35.600 30.200
+ -15081772.361 6 -11752030.164 6 22301510.306 22301508.743 22301509.382
+ 41.400 38.200
+ 06 1 2 13 9 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21325962.919 7 -16617627.477 7 20501646.267 20501644.642 20501645.361
+ 47.600 42.200
+ -2031562.752 3 -1583035.811 4 24379892.994 24379892.126 24379892.063
+ 23.400 25.300
+ -17159803.629 7 -13371276.668 6 21353877.584 21353875.398 21353877.318
+ 42.700 38.900
+ -2756821.888 4 -2148172.825 3 24100609.796 24100609.845 24100608.520
+ 24.600 22.100
+ -7011692.563 5 -5463651.891 4 23259727.466 23259724.711 23259726.283
+ 34.800 26.500
+ -18403377.560 7 -14340290.336 6 21128964.343 21128960.199 21128962.542
+ 46.600 41.900
+ -10523704.881 6 -8200293.076 5 22659120.211 22659115.617 22659118.816
+ 36.500 31.800
+ -15157331.261 6 -11810907.244 6 22287131.809 22287129.962 22287130.912
+ 41.400 37.500
+ 06 1 2 13 9 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21303293.356 7 -16599962.902 7 20505960.052 20505958.577 20505959.143
+ 47.600 42.000
+ -2137606.409 4 -1665667.243 4 24359714.705 24359712.669 24359713.659
+ 25.300 24.200
+ -17109960.680 7 -13332438.036 6 21363362.239 21363360.280 21363361.917
+ 42.300 38.500
+ -2770015.172 4 -2158453.312 3 24098099.265 24098098.707 24098098.283
+ 25.900 22.100
+ -6925397.114 5 -5396408.736 4 23276148.923 23276146.472 23276147.746
+ 34.800 26.800
+ -18466298.780 7 -14389319.845 6 21116990.791 21116986.691 21116989.006
+ 46.700 41.900
+ -10420669.733 6 -8120005.997 5 22678727.128 22678722.545 22678725.820
+ 36.000 30.600
+ -15232704.524 6 -11869639.683 6 22272788.570 22272786.914 22272787.851
+ 41.200 37.700
+ 06 1 2 13 10 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21280043.648 7 -16581846.262 7 20510384.339 20510382.972 20510383.443
+ 47.600 42.300
+ -2243626.087 4 -1748280.006 4 24339539.902 24339537.406 24339539.193
+ 26.500 25.300
+ -17059553.310 7 -13293159.594 6 21372954.528 21372952.403 21372954.244
+ 42.500 38.400
+ -2782659.597 4 -2168306.110 3 24095693.793 24095692.436 24095692.574
+ 25.600 21.100
+ -6839014.874 5 -5329097.951 4 23292586.572 23292584.370 23292585.629
+ 35.200 26.200
+ -18528736.689 7 -14437972.743 6 21105109.170 21105105.088 21105107.436
+ 46.700 41.900
+ -10317376.478 5 -8039517.796 4 22698382.615 22698378.459 22698381.868
+ 35.800 29.900
+ -15307889.923 6 -11928225.716 6 22258481.556 22258480.005 22258480.594
+ 41.600 38.700
+ 06 1 2 13 10 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21256214.998 7 -16563278.495 7 20514919.108 20514917.404 20514918.047
+ 47.700 42.100
+ -2349619.666 3 -1830872.416 3 24319370.421 24319367.346 24319369.094
+ 23.800 22.600
+ -17008583.085 7 -13253442.557 6 21382653.909 21382651.666 21382653.649
+ 42.600 38.200
+ -2794754.178 4 -2177730.455 3 24093391.821 24093390.280 24093390.635
+ 25.900 19.900
+ -6752546.774 5 -5261720.261 4 23309040.870 23309038.285 23309039.696
+ 33.800 26.200
+ -18590689.576 7 -14486247.704 6 21093320.036 21093315.867 21093318.264
+ 46.600 41.900
+ -10213828.323 5 -7958830.973 4 22718087.201 22718083.019 22718086.275
+ 35.300 29.700
+ -15382885.496 7 -11986663.830 6 22244210.551 22244208.908 22244209.637
+ 42.200 38.900
+ 06 1 2 13 11 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21231808.717 7 -16544260.631 7 20519563.452 20519561.842 20519562.435
+ 47.700 42.300
+ -2455585.867 3 -1913443.495 3 24299205.765 24299203.303 24299204.114
+ 23.400 22.600
+ -16957052.252 7 -13213288.688 6 21392460.146 21392457.737 21392459.761
+ 42.400 38.500
+ -2806297.829 4 -2186725.476 3 24091195.538 24091194.590 24091194.245
+ 26.500 22.600
+ -6665993.588 5 -5194276.267 4 23325511.329 23325509.170 23325510.415
+ 34.100 26.200
+ -18652155.638 7 -14534143.331 6 21081623.278 21081619.292 21081621.592
+ 46.600 41.900
+ -10110028.173 5 -7877947.779 4 22737840.157 22737835.595 22737839.082
+ 35.500 28.800
+ -15457689.804 6 -12044952.916 6 22229975.979 22229973.839 22229974.801
+ 41.800 38.200
+ 06 1 2 13 11 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21206826.101 7 -16524793.669 7 20524317.261 20524315.757 20524316.326
+ 47.700 42.100
+ -2561522.840 4 -1995991.815 4 24279045.320 24279044.260 24279045.045
+ 26.200 24.600
+ -16904962.461 7 -13172699.266 6 21402372.239 21402369.992 21402371.984
+ 42.300 37.900
+ -2817289.729 4 -2195290.625 3 24089103.709 24089102.143 24089102.377
+ 27.400 20.500
+ -6579356.324 5 -5126766.766 4 23341998.276 23341995.378 23341997.128
+ 34.400 25.600
+ -18713133.509 7 -14581658.552 7 21070019.461 21070015.530 21070017.785
+ 46.700 42.100
+ -10005979.176 6 -7796870.685 4 22757639.924 22757635.559 22757638.895
+ 36.600 29.700
+ -15532300.723 7 -12103091.308 6 22215777.732 22215775.885 22215776.826
+ 42.000 38.200
+ 06 1 2 13 12 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21181268.497 7 -16504878.668 6 20529180.641 20529179.109 20529179.708
+ 47.700 41.700
+ -2667429.287 3 -2078516.345 3 24258891.852 24258891.180 24258890.739
+ 22.600 23.000
+ -16852315.615 7 -13131675.771 6 21412390.664 21412388.412 21412390.300
+ 42.000 38.200
+ -2827729.061 4 -2203425.156 3 24087116.655 24087115.582 24087115.568
+ 25.600 20.500
+ -6492636.049 5 -5059192.582 4 23358500.433 23358498.203 23358499.471
+ 33.400 26.500
+ -18773621.371 7 -14628791.958 6 21058508.986 21058505.064 21058507.375
+ 46.800 41.900
+ -9901684.090 5 -7715601.837 5 22777486.484 22777482.649 22777485.312
+ 35.400 31.300
+ -15606716.564 7 -12161077.698 6 22201616.780 22201614.857 22201615.899
+ 42.100 37.700
+ 06 1 2 13 12 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21155137.321 7 -16484516.725 6 20534153.416 20534151.674 20534152.453
+ 47.700 41.700
+ -2773303.414 4 -2161015.662 3 24238744.919 24238743.863 24238744.131
+ 25.300 19.900
+ -16799113.909 7 -13090219.928 6 21422514.360 21422512.622 21422514.175
+ 42.100 38.100
+ -2837614.688 4 -2211128.226 3 24085235.738 24085234.809 24085234.559
+ 27.400 19.300
+ -6405833.621 5 -4991554.388 4 23375018.539 23375015.648 23375017.419
+ 33.500 25.300
+ -18833617.810 7 -14675542.443 7 21047092.159 21047088.145 21047090.517
+ 47.000 42.300
+ -9797145.967 5 -7634143.625 5 22797379.185 22797375.370 22797378.335
+ 35.200 30.400
+ -15680935.485 7 -12218910.638 6 22187493.530 22187491.603 22187492.633
+ 42.200 38.100
+ 06 1 2 13 13 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21128433.827 7 -16463708.818 6 20539235.299 20539233.134 20539234.185
+ 47.600 41.600
+ -2879143.375 4 -2243488.419 3 24218605.156 24218602.863 24218603.782
+ 27.900 21.600
+ -16745359.314 7 -13048333.260 6 21432744.007 21432741.626 21432743.611
+ 42.200 37.600
+ -2846945.892 4 -2218399.287 3 24083459.966 24083459.255 24083458.603
+ 25.600 18.600
+ -6318950.127 5 -4923853.020 4 23391551.157 23391549.267 23391550.302
+ 33.000 24.900
+ -18893121.347 7 -14721908.841 7 21035769.064 21035765.131 21035767.326
+ 46.800 42.400
+ -9692368.102 6 -7552498.591 5 22817318.299 22817314.056 22817317.014
+ 36.000 30.100
+ -15754955.493 7 -12276588.582 6 22173407.962 22173406.149 22173407.069
+ 42.300 38.600
+ 06 1 2 13 13 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21101159.349 7 -16442455.990 6 20544425.104 20544423.379 20544424.214
+ 47.600 41.800
+ -2984947.898 4 -2325933.545 2 24198471.272 24198468.440 24198470.150
+ 28.400 17.000
+ -16691053.603 7 -13006017.145 6 21443077.823 21443075.400 21443077.558
+ 42.200 37.300
+ -2855721.804 4 -2225237.677 2 24081789.758 24081789.164 24081788.759
+ 24.900 17.800
+ -6231986.460 5 -4856089.165 4 23408100.447 23408098.695 23408099.419
+ 33.900 25.900
+ -18952130.382 7 -14767889.917 7 21024539.891 21024536.059 21024538.234
+ 47.000 42.600
+ -9587353.451 5 -7470669.035 4 22837301.927 22837297.740 22837300.803
+ 34.300 29.500
+ -15828774.909 7 -12334110.217 6 22159360.563 22159358.657 22159359.648
+ 42.300 38.500
+ 06 1 2 13 14 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21073315.495 7 -16420759.493 6 20549723.648 20549721.925 20549722.688
+ 47.700 41.800
+ -3090714.996 4 -2408349.521 2 24178343.738 24178340.996 24178343.176
+ 26.800 15.100
+ -16636199.000 6 -12963273.320 6 21453516.220 21453514.038 21453516.008
+ 41.900 37.600
+ -2863941.757 4 -2231642.851 3 24080225.755 24080224.691 24080224.773
+ 26.800 18.600
+ -6144943.019 5 -4788263.179 4 23424664.283 23424662.430 23424663.220
+ 33.200 26.800
+ -19010643.490 7 -14813484.566 7 21013405.613 21013401.273 21013403.706
+ 47.000 42.300
+ -9482105.099 5 -7388657.387 4 22857330.010 22857325.867 22857328.905
+ 35.300 29.700
+ -15902391.778 7 -12391474.025 6 22145351.619 22145349.998 22145350.801
+ 42.300 38.900
+ 06 1 2 13 14 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -21044903.439 7 -16398620.245 6 20555130.185 20555128.598 20555129.281
+ 47.600 41.800
+ -3196443.132 4 -2490735.125 3 24158224.115 24158221.770 24158223.364
+ 28.100 18.600
+ -16580797.618 6 -12920103.442 6 21464058.896 21464056.716 21464058.624
+ 41.900 37.400
+ -2871604.897 4 -2237614.113 2 24078768.011 24078766.525 24078766.716
+ 26.200 17.000
+ -6057821.165 5 -4720376.091 4 23441243.470 23441241.151 23441242.372
+ 33.600 24.900
+ -19068658.917 7 -14858691.403 7 21002365.669 21002361.307 21002363.838
+ 47.000 42.500
+ -9376625.846 5 -7306465.831 4 22877402.262 22877398.069 22877401.042
+ 34.900 29.000
+ -15975804.163 7 -12448678.489 6 22131381.393 22131380.183 22131380.710
+ 42.300 38.900
+ 06 1 2 13 15 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21015924.617 7 -16376039.353 6 20560644.862 20560643.042 20560643.918
+ 47.600 41.800
+ -3302130.778 4 -2573089.182 3 24138112.422 24138110.995 24138111.231
+ 25.300 23.400
+ -16524851.586 6 -12876509.150 6 21474705.165 21474702.773 21474704.834
+ 41.900 37.300
+ -2878710.380 4 -2243150.833 3 24077415.470 24077414.753 24077414.534
+ 27.600 20.500
+ -5970621.853 5 -4652428.617 3 23457837.297 23457833.659 23457836.047
+ 33.600 22.600
+ -19126175.210 7 -14903509.299 7 20991420.729 20991416.426 20991418.757
+ 46.800 42.700
+ -9270919.122 5 -7224096.991 4 22897517.423 22897513.462 22897516.347
+ 34.000 29.000
+ -16049010.619 7 -12505722.494 6 22117451.243 22117449.339 22117450.229
+ 42.300 38.900
+ 06 1 2 13 15 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20986380.621 7 -16353018.071 6 20566266.852 20566265.122 20566265.880
+ 47.500 41.800
+ -3407776.269 3 -2655410.341 4 24118008.622 24118008.018 24118007.891
+ 21.600 26.200
+ -16468362.574 7 -12832491.763 6 21485454.896 21485452.594 21485454.614
+ 42.300 37.700
+ -2885257.398 4 -2248252.457 3 24076169.619 24076168.364 24076168.595
+ 26.200 19.900
+ -5883345.934 5 -4584421.442 3 23474444.098 23474442.131 23474443.105
+ 32.400 23.800
+ -19183191.058 7 -14947937.237 7 20980570.754 20980566.715 20980568.866
+ 46.800 43.000
+ -9164987.783 6 -7141553.149 4 22917675.633 22917671.439 22917674.586
+ 36.300 28.100
+ -16122008.945 7 -12562604.315 6 22103559.746 22103558.342 22103558.936
+ 42.100 39.100
+ 06 1 2 13 16 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20956272.975 7 -16329557.579 6 20571996.170 20571994.535 20571995.242
+ 47.600 41.800
+ -3513377.576 3 -2737697.097 4 24097913.349 24097912.590 24097911.931
+ 21.600 25.900
+ -16411332.968 7 -12788053.141 6 21496307.380 21496305.078 21496307.021
+ 42.100 37.700
+ -2891245.498 4 -2252918.509 3 24075030.032 24075029.173 24075028.978
+ 24.900 19.300
+ -5795994.094 5 -4516355.150 3 23491067.070 23491065.309 23491065.965
+ 32.600 23.400
+ -19239705.050 7 -14991974.118 7 20969816.283 20969812.520 20969814.593
+ 46.900 43.100
+ -9058834.869 5 -7058836.646 4 22937875.755 22937871.713 22937874.849
+ 35.200 29.500
+ -16194797.033 7 -12619322.320 6 22089708.656 22089707.249 22089707.764
+ 42.500 39.300
+ 06 1 2 13 16 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20925603.093 7 -16305658.988 6 20577832.565 20577830.716 20577831.546
+ 47.400 41.500
+ -3618933.565 4 -2819948.511 4 24077827.251 24077826.265 24077826.540
+ 24.900 28.400
+ -16353764.850 6 -12743194.899 6 21507262.020 21507259.646 21507261.704
+ 41.900 37.100
+ -2896673.856 4 -2257148.425 3 24073997.041 24073996.064 24073996.108
+ 26.500 18.600
+ -5708567.246 5 -4448230.390 4 23507704.313 23507702.240 23507703.151
+ 33.200 24.900
+ -19295715.481 7 -15035618.618 7 20959157.848 20959154.197 20959156.230
+ 46.900 43.100
+ -8952463.420 5 -6975949.868 4 22958117.782 22958113.671 22958116.657
+ 34.600 29.500
+ -16267373.065 7 -12675875.084 6 22075898.159 22075896.297 22075897.143
+ 42.400 39.100
+ 06 1 2 13 17 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20894372.525 7 -16281323.496 6 20583775.422 20583773.796 20583774.466
+ 47.500 41.500
+ -3724442.115 4 -2902162.970 4 24057749.520 24057748.807 24057748.919
+ 27.600 28.400
+ -16295660.469 6 -12697918.776 6 21518318.629 21518316.468 21518318.461
+ 41.600 36.800
+ -2901541.781 4 -2260941.626 3 24073070.854 24073070.133 24073069.865
+ 26.500 22.100
+ -5621066.465 5 -4380048.032 3 23524354.862 23524352.854 23524353.842
+ 32.700 22.100
+ -19351220.985 7 -15078869.655 7 20948595.745 20948591.791 20948593.963
+ 47.000 43.400
+ -8845876.496 5 -6892895.168 4 22978400.846 22978396.273 22978399.614
+ 33.900 28.400
+ -16339735.377 7 -12732261.314 6 22062127.915 22062126.336 22062127.042
+ 42.800 39.100
+ 06 1 2 13 17 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20862582.745 7 -16256552.256 6 20589824.989 20589823.174 20589823.961
+ 47.700 41.500
+ -3829901.463 4 -2984339.133 4 24037681.337 24037680.199 24037680.322
+ 27.600 26.500
+ -16237021.938 6 -12652226.440 6 21529477.372 21529475.397 21529477.000
+ 41.300 37.400
+ -2905848.685 4 -2264297.658 3 24072250.522 24072250.158 24072249.701
+ 24.900 18.600
+ -5533492.542 5 -4311808.678 3 23541019.081 23541017.776 23541018.104
+ 31.600 22.100
+ -19406220.463 7 -15121726.385 7 20938129.679 20938125.692 20938127.949
+ 46.900 43.200
+ -8739077.279 5 -6809675.067 4 22998723.707 22998719.649 22998722.821
+ 33.000 28.100
+ -16411882.119 7 -12788479.570 6 22048398.691 22048397.240 22048397.953
+ 43.000 39.400
+ 06 1 2 13 18 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20830235.234 7 -16231346.412 6 20595980.337 20595978.784 20595979.377
+ 47.800 41.400
+ -3935310.100 4 -3066475.734 4 24017623.342 24017621.020 24017622.415
+ 27.600 24.600
+ -16177851.112 6 -12606119.340 6 21540737.367 21540735.151 21540737.041
+ 41.300 37.200
+ -2909593.786 4 -2267215.940 3 24071539.095 24071538.220 24071537.953
+ 26.500 19.900
+ -5445846.111 5 -4243512.820 3 23557698.549 23557696.149 23557697.580
+ 33.200 21.600
+ -19460712.462 7 -15164187.676 7 20927760.189 20927756.157 20927758.420
+ 46.800 43.300
+ -8632068.683 5 -6726291.797 4 23019087.289 23019083.148 23019085.919
+ 33.000 29.000
+ -16483811.325 7 -12844528.308 6 22034711.222 22034709.669 22034710.321
+ 43.000 39.500
+ 06 1 2 13 18 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20797331.661 8 -16205707.277 6 20602241.760 20602240.107 20602240.874
+ 48.000 41.400
+ -4040666.166 4 -3148571.394 4 23997574.948 23997572.790 23997573.764
+ 27.400 25.900
+ -16118150.604 6 -12559599.493 6 21552097.809 21552095.541 21552097.572
+ 41.300 36.700
+ -2912776.619 4 -2269696.096 3 24070932.674 24070931.707 24070931.728
+ 24.900 19.300
+ -5358128.180 5 -4175161.252 3 23574390.342 23574388.471 23574389.289
+ 31.600 23.000
+ -19514695.262 7 -15206252.193 7 20917487.425 20917483.573 20917485.700
+ 47.000 43.500
+ -8524853.820 5 -6642747.806 4 23039489.216 23039485.117 23039488.104
+ 33.400 28.600
+ -16555521.083 7 -12900406.057 6 22021065.232 22021063.665 22021064.434
+ 43.200 39.300
+ 06 1 2 13 19 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20763873.655 7 -16179636.119 6 20608608.402 20608607.009 20608607.515
+ 47.700 41.300
+ -4145968.041 4 -3230624.806 3 23977536.470 23977534.268 23977535.470
+ 28.400 23.800
+ -16057922.769 6 -12512668.738 6 21563558.924 21563556.761 21563558.583
+ 41.300 37.100
+ -2915396.543 4 -2271737.603 3 24070434.866 24070433.626 24070433.724
+ 27.400 20.500
+ -5270339.458 5 -4106754.514 3 23591096.043 23591094.303 23591095.266
+ 32.100 23.800
+ -19568167.756 7 -15247919.070 7 20907312.139 20907308.065 20907310.263
+ 47.000 43.400
+ -8417435.743 5 -6559045.464 5 23059930.564 23059926.665 23059929.434
+ 34.700 30.800
+ -16627009.528 7 -12956111.352 6 22007461.556 22007459.818 22007460.664
+ 43.100 39.500
+ 06 1 2 13 19 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20729862.592 7 -16153134.004 6 20615080.469 20615079.081 20615079.598
+ 47.700 41.300
+ -4251213.666 4 -3312634.439 3 23957508.136 23957506.566 23957507.248
+ 27.400 21.100
+ -15997170.121 6 -12465329.040 6 21575119.719 21575117.797 21575119.427
+ 41.400 37.200
+ -2917453.042 4 -2273340.094 3 24070043.169 24070042.557 24070041.931
+ 27.600 19.900
+ -5182480.925 5 -4038293.425 3 23607815.539 23607813.537 23607814.405
+ 32.100 23.800
+ -19621128.492 7 -15289187.168 7 20897233.885 20897229.993 20897232.143
+ 47.000 43.600
+ -8309817.640 5 -6475187.258 4 23080409.795 23080405.476 23080408.581
+ 33.400 29.000
+ -16698274.939 7 -13011642.854 6 21993900.489 21993898.661 21993899.456
+ 43.300 39.800
+ 06 1 2 13 20 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20695300.138 7 -16126202.236 6 20621657.588 20621656.048 20621656.655
+ 47.700 41.200
+ -4356401.449 4 -3394598.974 3 23937491.281 23937490.070 23937490.862
+ 28.600 20.500
+ -15935893.894 6 -12417581.361 6 21586780.249 21586778.015 21586779.896
+ 41.100 36.600
+ -2918945.613 4 -2274503.154 3 24069759.198 24069758.287 24069758.016
+ 26.800 19.900
+ -5094553.491 5 -3969778.607 4 23624547.558 23624546.053 23624546.489
+ 32.100 25.300
+ -19673576.380 7 -15330055.650 7 20887253.572 20887249.544 20887251.765
+ 47.100 43.700
+ -8202002.322 5 -6391175.386 4 23100926.330 23100921.936 23100925.414
+ 34.000 26.800
+ -16769315.025 7 -13066998.778 6 21980381.896 21980380.185 21980380.852
+ 43.200 40.000
+ 06 1 2 13 20 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20660188.070 7 -16098842.197 6 20628339.327 20628337.632 20628338.292
+ 47.600 41.300
+ -4461529.739 4 -3476517.190 2 23917487.142 23917484.463 23917485.884
+ 27.900 17.800
+ -15874096.890 6 -12369427.877 6 21598539.749 21598537.508 21598539.490
+ 41.200 36.000
+ -2919873.589 4 -2275226.256 3 24069582.359 24069581.720 24069581.350
+ 25.300 19.900
+ -5006557.945 5 -3901210.727 3 23641292.027 23641290.105 23641291.270
+ 32.600 23.800
+ -19725510.071 7 -15370523.457 7 20877370.900 20877366.980 20877369.094
+ 47.000 44.000
+ -8093992.743 5 -6307012.143 4 23121479.942 23121475.709 23121478.848
+ 33.400 28.100
+ -16840127.731 7 -13122177.523 6 21966906.486 21966904.957 21966905.650
+ 43.100 40.000
+ 06 1 2 13 21 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20624528.243 7 -16071055.333 6 20635125.270 20635123.407 20635124.330
+ 47.600 41.000
+ -4566596.760 4 -3558387.650 4 23897492.773 23897492.018 23897492.138
+ 28.100 24.600
+ -15811781.384 6 -12320870.366 6 21610397.934 21610396.016 21610397.708
+ 41.100 36.500
+ -2920236.609 4 -2275509.173 3 24069513.458 24069512.352 24069512.575
+ 27.100 19.300
+ -4918495.167 5 -3832590.441 3 23658049.982 23658048.048 23658049.129
+ 31.600 23.800
+ -19776928.229 7 -15410589.544 7 20867586.122 20867582.454 20867584.465
+ 47.000 44.000
+ -7985792.181 5 -6222700.081 4 23142070.124 23142065.589 23142068.746
+ 32.600 27.600
+ -16910711.568 7 -13177177.919 6 21953474.729 21953473.360 21953473.827
+ 43.100 39.800
+ 06 1 2 13 21 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20588322.340 7 -16042842.955 6 20642014.906 20642013.311 20642013.957
+ 47.700 41.200
+ -4671600.230 4 -3640208.571 3 23877511.537 23877509.912 23877510.908
+ 25.300 22.100
+ -15748949.761 6 -12271910.694 6 21622354.566 21622352.651 21622354.207
+ 41.000 36.600
+ -2920034.336 4 -2275351.565 3 24069551.733 24069551.089 24069550.685
+ 25.600 19.900
+ -4830365.702 5 -3763918.221 3 23674821.993 23674818.429 23674820.705
+ 32.100 22.100
+ -19827829.611 7 -15450252.960 7 20857900.010 20857896.133 20857898.255
+ 47.100 43.900
+ -7877403.769 5 -6138241.630 4 23162695.491 23162691.358 23162694.347
+ 32.600 27.600
+ -16981064.326 7 -13231998.260 6 21940087.525 21940085.575 21940086.512
+ 43.700 39.800
+ 06 1 2 13 22 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20551571.811 7 -16014206.196 6 20649008.283 20649006.624 20649007.385
+ 47.600 41.200
+ -4776538.675 3 -3721978.828 2 23857543.336 23857539.998 23857541.846
+ 23.400 17.000
+ -15685604.476 6 -12222550.759 6 21634408.635 21634406.873 21634408.391
+ 41.100 36.500
+ -2919266.157 4 -2274753.017 3 24069698.153 24069697.272 24069696.999
+ 26.200 19.300
+ -4742170.730 5 -3695194.925 3 23691605.067 23691601.894 23691603.839
+ 32.400 19.900
+ -19878213.148 7 -15489512.858 7 20848312.322 20848308.492 20848310.580
+ 47.000 44.100
+ -7768830.395 5 -6053639.088 4 23183356.894 23183352.103 23183355.317
+ 32.700 28.100
+ -17051184.163 7 -13286637.106 6 21926743.971 21926742.096 21926743.031
+ 43.800 39.800
+ 06 1 2 13 22 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20514278.181 7 -15985146.241 6 20656105.114 20656103.431 20656104.102
+ 47.300 41.100
+ -4881410.407 4 -3803697.100 3 23837586.820 23837584.670 23837585.870
+ 25.900 23.400
+ -15621747.614 6 -12172792.186 6 21646560.252 21646558.558 21646559.962
+ 40.800 36.600
+ -2917931.807 4 -2273713.256 3 24069952.100 24069951.663 24069951.099
+ 26.800 22.600
+ -4653910.702 5 -3626420.949 3 23708399.637 23708397.097 23708398.547
+ 31.100 21.100
+ -19928077.527 7 -15528368.219 7 20838823.492 20838819.537 20838821.772
+ 47.100 44.200
+ -7660075.038 5 -5968894.704 4 23204051.165 23204047.849 23204050.556
+ 33.100 28.400
+ -17121069.277 7 -13341093.054 6 21913445.353 21913443.547 21913444.399
+ 43.800 40.300
+ 06 1 2 13 23 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20476443.260 7 -15955664.502 6 20663304.866 20663303.166 20663303.905
+ 47.500 41.200
+ -4986213.870 4 -3885362.151 4 23817642.777 23817641.836 23817641.945
+ 25.900 27.600
+ -15557381.636 6 -12122636.918 6 21658808.979 21658806.971 21658808.602
+ 40.700 37.000
+ -2916030.988 4 -2272232.106 3 24070312.771 24070312.988 24070312.072
+ 25.600 21.600
+ -4565586.640 5 -3557597.085 3 23725207.166 23725205.166 23725206.189
+ 31.300 22.100
+ -19977421.485 7 -15566818.061 7 20829433.733 20829429.691 20829431.917
+ 46.900 44.100
+ -7551140.769 5 -5884010.918 4 23224780.978 23224776.997 23224780.058
+ 33.000 25.900
+ -17190717.591 7 -13395364.477 6 21900191.708 21900189.871 21900190.798
+ 44.000 40.100
+ 06 1 2 13 23 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20438068.824 7 -15925762.361 6 20670607.257 20670605.731 20670606.311
+ 47.400 41.200
+ -5090946.400 4 -3966971.924 5 23797713.006 23797711.966 23797712.010
+ 28.100 30.100
+ -15492508.888 6 -12072086.762 6 21671153.943 21671151.836 21671153.664
+ 40.700 36.300
+ -2913563.231 4 -2270309.211 3 24070783.457 24070783.253 24070782.313
+ 26.500 22.600
+ -4477199.434 5 -3488723.981 3 23742026.495 23742024.671 23742025.354
+ 31.600 22.100
+ -20026244.035 7 -15604861.613 7 20820142.850 20820139.083 20820141.166
+ 46.900 44.100
+ -7442030.756 5 -5798990.183 4 23245543.938 23245540.424 23245543.103
+ 32.400 26.200
+ -17260127.352 7 -13449450.017 6 21886983.345 21886981.643 21886982.559
+ 44.200 40.200
+ 06 1 2 13 24 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20399156.688 7 -15895441.231 6 20678011.909 20678010.414 20678010.976
+ 47.300 41.000
+ -5195606.479 4 -4048525.225 4 23777796.888 23777795.549 23777795.811
+ 29.200 28.800
+ -15427131.781 6 -12021143.594 5 21683595.068 21683592.542 21683594.601
+ 40.700 35.700
+ -2910528.145 4 -2267944.194 3 24071360.977 24071360.522 24071359.696
+ 26.200 20.500
+ -4388749.824 5 -3419802.275 3 23758858.381 23758855.818 23758857.134
+ 31.800 21.600
+ -20074543.720 7 -15642497.740 7 20810951.688 20810948.040 20810949.984
+ 46.800 44.300
+ -7332747.967 5 -5713834.815 4 23266340.498 23266336.097 23266339.123
+ 31.800 26.500
+ -17329296.568 7 -13503348.115 6 21873821.063 21873819.213 21873820.038
+ 43.800 40.200
+ 06 1 2 13 24 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20359708.671 7 -15864702.536 6 20685518.986 20685517.179 20685517.922
+ 47.600 41.000
+ -5300192.474 4 -4130020.812 4 23757895.015 23757893.545 23757893.983
+ 28.800 28.600
+ -15361253.162 6 -11969809.634 5 21696131.163 21696128.688 21696130.782
+ 40.900 35.400
+ -2906925.407 4 -2265136.887 3 24072046.097 24072046.098 24072045.157
+ 24.600 20.500
+ -4300238.517 5 -3350832.490 3 23775700.649 23775698.812 23775699.744
+ 30.200 20.500
+ -20122319.792 7 -15679725.849 7 20801860.374 20801856.564 20801858.521
+ 47.000 44.400
+ -7223295.795 5 -5628547.485 4 23287168.066 23287164.199 23287166.956
+ 31.300 24.600
+ -17398222.996 7 -13557057.031 6 21860704.760 21860703.084 21860703.721
+ 43.700 40.700
+ 06 1 2 13 25 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20319726.321 7 -15833547.472 6 20693127.018 20693125.553 20693126.177
+ 47.500 41.100
+ -5404702.487 5 -4211457.234 4 23738008.439 23738005.683 23738007.191
+ 31.000 28.400
+ -15294874.919 6 -11918086.357 5 21708762.324 21708760.286 21708762.060
+ 41.000 35.800
+ -2902754.918 4 -2261887.182 2 24072840.360 24072838.764 24072839.266
+ 27.400 16.100
+ -4211666.262 5 -3281815.218 3 23792556.176 23792553.686 23792554.931
+ 31.100 19.300
+ -20169570.653 7 -15716544.711 7 20792868.723 20792865.002 20792867.062
+ 47.000 44.600
+ -7113677.035 5 -5543130.312 4 23308027.659 23308023.983 23308026.847
+ 32.300 24.600
+ -17466904.853 7 -13610575.368 6 21847635.039 21847633.296 21847633.981
+ 43.900 40.600
+ 06 1 2 13 25 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20279211.440 7 -15801977.450 6 20700836.829 20700835.232 20700835.943
+ 47.600 40.800
+ -5509134.429 4 -4292832.795 4 23718134.512 23718132.995 23718133.730
+ 29.500 27.400
+ -15227999.473 6 -11865975.647 5 21721488.396 21721486.377 21721488.086
+ 40.900 35.900
+ -2898016.310 4 -2258194.761 3 24073742.408 24073741.153 24073741.294
+ 29.000 20.500
+ -4123033.970 5 -3212751.147 2 23809422.333 23809419.660 23809421.115
+ 30.600 17.800
+ -20216295.425 7 -15752953.628 7 20783977.319 20783973.570 20783975.614
+ 47.000 44.600
+ -7003894.608 5 -5457585.637 4 23328918.819 23328915.189 23328917.781
+ 31.600 27.400
+ -17535340.088 7 -13663901.537 6 21834612.120 21834610.501 21834611.117
+ 43.900 40.500
+ 06 1 2 13 26 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20238165.928 7 -15769993.954 6 20708647.636 20708645.957 20708646.654
+ 47.400 41.000
+ -5613486.835 4 -4374146.409 4 23698277.143 23698275.377 23698275.767
+ 28.400 26.800
+ -15160629.519 6 -11813479.616 5 21734308.120 21734306.417 21734307.878
+ 40.100 35.700
+ -2892709.200 4 -2254059.347 3 24074751.866 24074751.171 24074750.917
+ 27.100 18.600
+ -4034342.229 5 -3143640.766 3 23826299.520 23826297.383 23826298.620
+ 30.200 19.900
+ -20262493.018 7 -15788951.754 7 20775186.205 20775182.459 20775184.550
+ 47.100 44.600
+ -6893951.585 5 -5371915.837 4 23349840.772 23349836.547 23349839.599
+ 31.300 27.400
+ -17603526.999 7 -13717034.202 6 21821636.742 21821635.107 21821635.769
+ 44.100 40.900
+ 06 1 2 13 26 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20196591.734 7 -15737598.494 6 20716558.850 20716557.287 20716557.995
+ 47.400 40.700
+ -5717757.200 4 -4455396.031 4 23678434.275 23678433.629 23678433.579
+ 27.400 25.600
+ -15092767.552 6 -11760600.194 5 21747222.137 21747220.037 21747221.867
+ 40.200 35.300
+ -2886833.542 4 -2249480.928 3 24075870.172 24075869.645 24075869.146
+ 27.100 22.100
+ -3945591.852 4 -3074484.702 3 23843188.678 23843185.813 23843187.361
+ 29.900 20.500
+ -20308162.416 7 -15824538.297 7 20766495.862 20766491.856 20766494.020
+ 47.200 44.800
+ -6783851.084 5 -5286123.297 4 23370792.017 23370787.960 23370790.759
+ 31.100 26.200
+ -17671463.688 7 -13769971.890 6 21808708.804 21808707.081 21808707.868
+ 44.100 40.900
+ 06 1 2 13 27 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20154490.597 7 -15704792.437 6 20724570.541 20724568.929 20724569.601
+ 47.400 40.800
+ -5821944.204 5 -4536580.746 4 23658609.983 23658607.546 23658608.795
+ 30.100 25.900
+ -15024416.007 6 -11707339.279 5 21760228.965 21760227.018 21760228.794
+ 40.400 35.400
+ -2880389.154 4 -2244459.352 3 24077096.905 24077095.885 24077095.649
+ 27.100 19.900
+ -3856783.710 5 -3005283.627 3 23860087.820 23860086.023 23860087.042
+ 30.800 22.600
+ -20353302.549 7 -15859712.430 7 20757905.817 20757901.979 20757904.064
+ 47.000 44.800
+ -6673596.032 5 -5200210.329 4 23391772.214 23391769.118 23391771.835
+ 31.500 28.400
+ -17739147.865 7 -13822712.817 6 21795829.097 21795827.106 21795828.089
+ 44.400 40.700
+ 06 1 2 13 27 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20111864.402 7 -15671577.235 6 20732681.865 20732680.469 20732680.963
+ 47.300 40.700
+ -5926045.718 5 -4617698.866 3 23638799.790 23638797.085 23638798.443
+ 31.000 23.400
+ -14955577.487 6 -11653698.908 5 21773328.828 21773326.719 21773328.496
+ 40.500 35.700
+ -2873375.800 4 -2238994.411 3 24078431.149 24078430.173 24078430.080
+ 26.800 18.600
+ -3767918.400 5 -2936037.999 3 23876998.657 23876996.236 23876997.579
+ 30.600 21.100
+ -20397912.453 7 -15894473.394 7 20749416.835 20749412.991 20749415.050
+ 47.100 44.700
+ -6563189.800 5 -5114179.558 4 23412782.746 23412778.671 23412781.571
+ 32.700 27.600
+ -17806577.764 7 -13875255.604 6 21782997.424 21782995.650 21782996.427
+ 44.100 40.500
+ 06 1 2 13 28 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20068714.840 7 -15637954.217 6 20740893.050 20740891.626 20740892.136
+ 47.400 40.800
+ -6030059.750 5 -4698748.787 4 23619006.111 23619004.585 23619005.272
+ 31.000 25.300
+ -14886254.472 6 -11599681.009 5 21786520.779 21786518.587 21786520.463
+ 40.800 35.400
+ -2865793.536 4 -2233086.216 3 24079873.797 24079873.138 24079872.812
+ 25.900 19.900
+ -3678996.850 5 -2866748.542 3 23893919.540 23893917.932 23893918.565
+ 30.600 22.100
+ -20441991.051 7 -15928820.355 7 20741029.199 20741025.023 20741027.260
+ 47.000 44.600
+ -6452635.136 5 -5028033.152 4 23433820.564 23433816.716 23433819.425
+ 32.000 27.100
+ -17873751.277 7 -13927598.610 6 21770214.618 21770212.761 21770213.708
+ 44.000 40.400
+ 06 1 2 13 28 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -20025043.931 7 -15603924.957 6 20749203.460 20749201.862 20749202.445
+ 47.300 40.700
+ -6133984.402 5 -4779729.082 4 23599230.356 23599228.612 23599229.126
+ 30.200 26.200
+ -14816449.489 6 -11545287.552 5 21799804.240 21799801.708 21799803.885
+ 40.700 34.600
+ -2857642.191 4 -2226734.527 3 24081424.881 24081424.719 24081423.901
+ 26.800 22.100
+ -3590019.660 5 -2797415.738 3 23910851.064 23910849.873 23910850.220
+ 31.100 19.900
+ -20485537.370 7 -15962752.548 7 20732742.585 20732738.405 20732740.634
+ 46.900 44.800
+ -6341934.859 5 -4941773.267 4 23454884.904 23454882.365 23454884.503
+ 30.100 26.500
+ -17940666.270 7 -13979740.173 6 21757481.359 21757479.479 21757480.284
+ 44.300 40.900
+ 06 1 2 13 29 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19980853.741 7 -15569491.061 6 20757612.411 20757610.969 20757611.551
+ 47.300 40.600
+ -6237817.882 4 -4860638.311 4 23579471.047 23579469.664 23579470.057
+ 29.700 26.800
+ -14746165.180 6 -11490520.587 5 21813178.870 21813176.505 21813178.612
+ 40.500 35.100
+ -2848921.613 4 -2219939.275 3 24083084.620 24083084.082 24083083.473
+ 25.300 19.900
+ -3500988.025 5 -2728040.488 3 23927794.416 23927792.730 23927793.160
+ 30.400 22.600
+ -20528550.607 7 -15996269.352 7 20724557.373 20724553.228 20724555.529
+ 47.100 44.800
+ -6231092.546 5 -4855402.717 4 23475978.989 23475974.977 23475977.531
+ 30.200 25.600
+ -18007320.875 7 -14031678.830 6 21744797.293 21744795.602 21744796.276
+ 44.300 41.100
+ 06 1 2 13 29 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19936145.967 7 -15534653.852 6 20766120.244 20766118.549 20766119.312
+ 47.500 40.400
+ -6341557.896 4 -4941474.690 4 23559729.710 23559728.153 23559728.849
+ 29.200 25.600
+ -14675404.029 6 -11435382.060 5 21826644.369 21826642.135 21826643.997
+ 40.200 35.500
+ -2839631.682 4 -2212700.373 2 24084851.751 24084851.452 24084850.635
+ 24.900 17.000
+ -3411902.069 4 -2658622.951 3 23944746.425 23944744.778 23944745.352
+ 29.900 22.100
+ -20571029.985 7 -16029370.166 7 20716473.907 20716469.678 20716472.017
+ 47.200 44.800
+ -6120110.880 4 -4768923.567 3 23497097.748 23497093.603 23497096.458
+ 29.700 23.400
+ -18073713.192 7 -14083413.114 6 21732163.165 21732161.659 21732162.201
+ 44.200 41.000
+ 06 1 2 13 30 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19890922.414 7 -15499414.735 6 20774725.931 20774724.298 20774724.946
+ 47.100 40.300
+ -6445202.916 4 -5022237.080 4 23540006.961 23540005.336 23540005.586
+ 29.200 26.800
+ -14604168.483 6 -11379873.887 5 21840199.537 21840197.671 21840199.298
+ 39.400 34.900
+ -2829772.374 4 -2205017.856 3 24086728.849 24086727.893 24086727.789
+ 27.900 21.100
+ -3322762.641 4 -2589163.762 3 23961709.352 23961707.632 23961708.253
+ 29.700 23.000
+ -20612973.974 7 -16062053.799 7 20708492.220 20708487.963 20708490.317
+ 47.100 45.000
+ -6008992.999 4 -4682338.278 4 23518242.547 23518238.978 23518241.280
+ 29.200 24.600
+ -18139841.363 7 -14134941.564 6 21719579.588 21719577.815 21719578.564
+ 44.400 41.100
+ 06 1 2 13 30 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19845185.293 7 -15463775.435 6 20783429.473 20783427.872 20783428.538
+ 47.200 40.300
+ -6548750.778 4 -5102923.715 4 23520302.758 23520300.886 23520301.393
+ 29.000 25.600
+ -14532461.383 6 -11323998.261 5 21853845.263 21853843.006 21853844.940
+ 40.200 34.300
+ -2819343.726 4 -2196891.639 3 24088713.093 24088712.341 24088712.113
+ 26.800 20.500
+ -3233570.571 4 -2519663.521 3 23978681.879 23978680.083 23978680.752
+ 28.800 18.600
+ -20654382.029 7 -16094319.823 7 20700612.314 20700608.336 20700610.574
+ 47.300 45.100
+ -5897741.663 5 -4595648.968 4 23539413.292 23539409.413 23539412.546
+ 31.600 24.600
+ -18205703.471 7 -14186262.699 6 21707046.381 21707044.595 21707045.438
+ 44.600 41.000
+ 06 1 2 13 31 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19798936.231 7 -15427737.221 6 20792230.345 20792228.747 20792229.436
+ 47.000 40.200
+ -6652199.222 5 -5183532.926 4 23500617.635 23500615.869 23500616.248
+ 31.300 28.800
+ -14460285.357 6 -11267757.232 5 21867579.993 21867577.861 21867579.664
+ 39.800 34.800
+ -2808345.575 4 -2188321.688 3 24090806.148 24090805.230 24090804.844
+ 27.900 19.900
+ -3144326.602 4 -2450122.829 3 23995664.235 23995662.413 23995663.296
+ 27.900 19.300
+ -20695253.062 7 -16126167.381 7 20692835.058 20692830.913 20692833.262
+ 47.300 45.300
+ -5786360.160 5 -4508858.292 4 23560608.768 23560604.737 23560607.595
+ 31.000 24.200
+ -18271297.309 7 -14237374.795 6 21694564.367 21694562.627 21694563.359
+ 44.700 41.200
+ 06 1 2 13 31 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19752177.437 7 -15391301.814 6 20801128.583 20801126.715 20801127.547
+ 47.200 40.100
+ -6755546.644 5 -5264063.427 4 23480950.136 23480949.005 23480949.320
+ 31.300 27.400
+ -14387643.143 6 -11211152.949 5 21881403.243 21881401.279 21881402.942
+ 39.800 34.800
+ -2796778.197 4 -2179308.187 3 24093006.282 24093006.850 24093005.445
+ 24.600 21.100
+ -3055031.582 4 -2380542.339 3 24012656.777 24012655.261 24012655.719
+ 27.900 21.100
+ -20735586.396 7 -16157595.961 7 20685160.072 20685155.834 20685158.104
+ 47.500 45.400
+ -5674851.661 4 -4421968.609 4 23581827.722 23581824.200 23581826.599
+ 27.600 24.600
+ -18336620.951 7 -14288276.343 6 21682133.551 21682131.916 21682132.654
+ 44.600 41.300
+ 06 1 2 13 32 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19704910.838 7 -15354470.713 6 20810122.827 20810121.296 20810121.866
+ 47.000 40.200
+ -6858790.763 5 -5344513.406 4 23461303.377 23461302.051 23461302.572
+ 31.000 26.800
+ -14314537.160 6 -11154187.281 5 21895315.097 21895312.666 21895314.701
+ 40.000 33.600
+ -2784641.590 4 -2169851.119 3 24095316.941 24095316.077 24095315.747
+ 26.800 19.300
+ -2965686.025 4 -2310922.514 3 24029658.877 24029656.808 24029657.813
+ 27.100 19.300
+ -20775381.195 7 -16188604.893 7 20677587.059 20677583.108 20677585.213
+ 47.200 45.600
+ -5563219.041 5 -4334982.240 3 23603071.227 23603067.016 23603070.152
+ 30.800 22.600
+ -18401672.250 7 -14338965.677 6 21669754.663 21669753.132 21669753.702
+ 44.600 41.400
+ 06 1 2 13 32 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19657138.435 7 -15317245.485 6 20819213.385 20819212.053 20819212.437
+ 46.700 40.300
+ -6961929.982 5 -5424881.663 4 23441677.364 23441676.096 23441676.490
+ 30.800 29.700
+ -14240970.447 6 -11096862.591 5 21909313.950 21909311.925 21909313.765
+ 39.100 33.500
+ -2771935.866 4 -2159950.618 2 24097734.456 24097733.523 24097733.353
+ 27.100 17.800
+ -2876290.692 4 -2241263.894 3 24046669.735 24046668.482 24046668.849
+ 27.600 19.900
+ -20814636.705 7 -16219193.608 7 20670116.912 20670113.006 20670115.210
+ 47.100 45.600
+ -5451465.308 5 -4247901.457 3 23624336.796 23624333.267 23624336.099
+ 30.800 23.000
+ -18466449.713 7 -14389441.628 6 21657428.012 21657426.462 21657427.011
+ 44.700 41.500
+ 06 1 2 13 33 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19608862.308 7 -15279627.742 6 20828400.188 20828398.665 20828399.198
+ 46.800 40.000
+ -7064962.059 5 -5505166.421 4 23422070.973 23422069.720 23422070.023
+ 30.400 29.200
+ -14166944.908 6 -11039180.395 5 21923400.604 21923398.633 21923400.287
+ 38.900 34.400
+ -2758661.182 4 -2149606.732 3 24100260.665 24100260.268 24100259.667
+ 25.300 18.600
+ -2786846.340 4 -2171567.059 2 24063690.186 24063688.719 24063689.444
+ 27.600 17.800
+ -20853351.977 7 -16249361.354 7 20662749.907 20662745.728 20662747.952
+ 47.100 45.500
+ -5339593.409 4 -4160728.603 3 23645625.871 23645621.922 23645624.627
+ 29.900 23.400
+ -18530950.921 7 -14439702.321 6 21645153.849 21645152.220 21645152.914
+ 44.800 41.500
+ 06 1 2 13 33 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19560084.230 7 -15241618.866 6 20837682.541 20837680.915 20837681.482
+ 46.800 40.000
+ -7167884.929 5 -5585366.058 4 23402485.582 23402483.678 23402484.387
+ 31.000 28.100
+ -14092463.714 6 -10981143.140 5 21937574.313 21937572.218 21937573.931
+ 39.400 34.600
+ -2744817.544 3 -2138819.505 2 24102894.287 24102894.744 24102893.337
+ 22.100 17.000
+ -2697353.659 4 -2101832.585 3 24080720.293 24080719.347 24080719.543
+ 29.500 19.900
+ -20891526.434 7 -16279107.679 7 20655485.521 20655481.380 20655483.560
+ 47.000 45.600
+ -5227606.204 5 -4073465.918 4 23666936.024 23666933.199 23666935.212
+ 31.100 27.400
+ -18595173.894 7 -14489746.205 6 21632932.448 21632931.038 21632931.518
+ 44.400 41.500
+ 06 1 2 13 34 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19510806.282 7 -15203220.479 6 20847059.760 20847058.288 20847058.821
+ 47.000 39.800
+ -7270696.932 5 -5665479.322 4 23382920.624 23382918.993 23382919.486
+ 30.100 27.400
+ -14017529.662 6 -10922753.002 5 21951833.679 21951831.404 21951833.370
+ 39.100 33.900
+ -2730405.297 3 -2127589.217 2 24105637.152 24105636.755 24105636.111
+ 22.600 16.100
+ -2607813.260 4 -2032060.929 3 24097759.898 24097758.013 24097758.780
+ 28.100 19.300
+ -20929159.296 7 -16308431.988 7 20648324.129 20648320.091 20648322.208
+ 47.100 45.500
+ -5115506.720 5 -3986115.802 3 23688268.472 23688264.211 23688267.419
+ 30.800 23.800
+ -18659116.458 7 -14539571.583 6 21620764.821 21620763.133 21620763.855
+ 44.800 41.500
+ 06 1 2 13 34 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19461030.616 7 -15164434.265 6 20856531.697 20856530.283 20856530.748
+ 47.100 40.000
+ -7373395.849 4 -5745504.482 4 23363377.060 23363375.971 23363376.335
+ 29.900 26.800
+ -13942145.274 6 -10864011.945 5 21966179.110 21966176.661 21966178.786
+ 39.700 33.500
+ -2715424.465 3 -2115915.933 3 24108488.639 24108487.847 24108487.597
+ 23.400 18.600
+ -2518226.044 4 -1962252.769 2 24114807.336 24114805.174 24114806.409
+ 28.400 17.800
+ -20966249.421 7 -16337333.391 7 20641266.093 20641262.058 20641264.252
+ 47.100 45.900
+ -5003298.413 4 -3898680.819 4 23709620.267 23709617.654 23709619.415
+ 27.100 26.800
+ -18722776.915 7 -14589177.146 6 21608650.501 21608649.007 21608649.603
+ 44.900 41.800
+ 06 1 2 13 35 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19410759.093 7 -15125261.665 6 20866098.055 20866096.515 20866097.136
+ 46.900 39.600
+ -7475979.226 5 -5825439.603 4 23343856.645 23343855.272 23343855.726
+ 31.000 27.900
+ -13866313.344 6 -10804922.159 5 21980609.276 21980607.386 21980609.009
+ 39.400 34.300
+ -2699875.288 3 -2103799.711 2 24111447.063 24111446.353 24111445.922
+ 23.800 16.100
+ -2428592.346 4 -1892408.423 3 24131864.496 24131862.463 24131863.857
+ 29.500 19.300
+ -21002796.274 7 -16365811.452 7 20634311.270 20634307.427 20634309.508
+ 47.100 45.700
+ -4890984.030 4 -3811163.228 3 23730993.936 23730989.754 23730992.189
+ 25.900 23.000
+ -18786152.923 7 -14638561.055 6 21596590.652 21596588.989 21596589.665
+ 44.900 41.900
+ 06 1 2 13 35 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19359993.876 7 -15085704.370 6 20875758.519 20875756.858 20875757.504
+ 47.000 39.700
+ -7578445.179 5 -5905283.222 4 23324358.061 23324356.637 23324357.185
+ 32.400 28.100
+ -13790036.669 6 -10745485.833 5 21995123.897 21995122.479 21995123.566
+ 38.100 34.700
+ -2683757.935 4 -2091240.789 3 24114514.282 24114514.006 24114513.213
+ 24.200 19.900
+ -2338912.993 4 -1822528.486 2 24148930.235 24148928.260 24148928.934
+ 29.900 17.000
+ -21038799.059 7 -16393865.575 7 20627460.202 20627456.305 20627458.497
+ 47.100 45.600
+ -4778566.455 4 -3723565.183 4 23752385.920 23752383.033 23752384.721
+ 28.800 27.900
+ -18849242.934 7 -14687722.110 6 21584584.908 21584583.412 21584583.976
+ 44.900 41.800
+ 06 1 2 13 36 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19308737.271 7 -15045764.175 6 20885512.284 20885510.643 20885511.314
+ 47.100 39.600
+ -7680791.794 5 -5985033.866 4 23304882.574 23304881.058 23304881.492
+ 33.000 28.100
+ -13713318.070 6 -10685705.159 5 22009723.471 22009721.195 22009722.972
+ 38.500 33.500
+ -2667072.612 4 -2078239.295 2 24117689.780 24117688.794 24117688.440
+ 25.900 16.100
+ -2249188.688 4 -1752613.506 3 24166003.863 24166002.677 24166002.635
+ 26.800 20.500
+ -21074257.410 7 -16421495.464 7 20620712.731 20620708.773 20620710.996
+ 47.300 46.100
+ -4666048.809 4 -3635889.209 4 23773797.015 23773793.886 23773796.292
+ 28.800 24.200
+ -18912044.851 7 -14736658.677 7 21572634.080 21572632.612 21572633.232
+ 45.100 42.100
+ 06 1 2 13 36 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19256991.133 7 -15005442.522 6 20895359.365 20895357.663 20895358.377
+ 47.100 39.700
+ -7783016.667 5 -6064689.624 4 23285429.511 23285428.291 23285428.454
+ 32.100 28.100
+ -13636160.184 6 -10625582.154 5 22024406.219 22024403.858 22024405.962
+ 39.100 33.500
+ -2649819.573 4 -2064795.434 2 24120972.727 24120972.063 24120971.670
+ 24.600 17.800
+ -2159420.207 4 -1682664.115 2 24183087.037 24183084.405 24183085.849
+ 29.200 15.100
+ -21109170.784 7 -16448700.691 7 20614069.006 20614064.958 20614067.124
+ 47.200 46.100
+ -4553434.031 5 -3548137.499 3 23795227.648 23795223.910 23795226.317
+ 31.000 23.800
+ -18974556.394 7 -14785368.974 7 21560738.554 21560737.073 21560737.636
+ 45.100 42.100
+ 06 1 2 13 37 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19204757.559 7 -14964741.056 6 20905298.917 20905297.392 20905298.077
+ 47.100 39.700
+ -7885118.000 5 -6144249.113 4 23266000.590 23265999.164 23265999.572
+ 32.300 29.200
+ -13558565.791 6 -10565119.027 5 22039171.617 22039169.868 22039171.272
+ 38.200 34.100
+ -2631999.254 4 -2050909.524 3 24124363.606 24124363.598 24124362.614
+ 25.600 19.900
+ -2069607.969 4 -1612680.643 2 24200177.573 24200175.940 24200176.648
+ 28.400 17.800
+ -21143538.151 7 -16475480.456 7 20607528.934 20607525.140 20607527.260
+ 47.000 46.300
+ -4440725.217 4 -3460312.561 3 23816675.732 23816671.683 23816674.201
+ 28.800 22.600
+ -19036775.804 7 -14833851.638 7 21548898.611 21548896.969 21548897.637
+ 44.900 42.000
+ 06 1 2 13 37 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19152038.746 7 -14923661.473 6 20915330.976 20915329.433 20915330.074
+ 47.000 39.300
+ -7987093.598 5 -6223710.643 4 23246595.081 23246593.572 23246593.876
+ 31.500 28.800
+ -13480537.572 6 -10504317.867 5 22054019.838 22054018.109 22054019.509
+ 38.200 33.200
+ -2613611.734 4 -2036581.633 3 24127862.785 24127862.410 24127861.430
+ 24.900 18.600
+ -1979752.735 4 -1542663.651 3 24217276.428 24217274.491 24217275.129
+ 26.800 20.500
+ -21177359.030 7 -16501834.394 7 20601093.168 20601089.282 20601091.366
+ 47.100 46.400
+ -4327925.213 5 -3372416.455 3 23838141.371 23838136.480 23838139.730
+ 30.800 21.100
+ -19098701.196 7 -14882105.204 6 21537114.663 21537112.909 21537113.594
+ 44.900 41.900
+ 06 1 2 13 38 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19098836.714 7 -14882205.360 6 20925455.240 20925453.518 20925454.246
+ 47.000 39.400
+ -8088941.362 5 -6303072.556 4 23227213.643 23227212.514 23227213.012
+ 31.500 29.700
+ -13402078.718 6 -10443181.130 5 22068950.485 22068948.146 22068950.169
+ 39.000 32.300
+ -2594657.572 3 -2021812.186 2 24131469.784 24131469.307 24131468.547
+ 23.800 13.900
+ -1889855.103 4 -1472613.628 3 24234383.250 24234382.287 24234382.319
+ 27.100 19.300
+ -21210632.842 7 -16527762.041 7 20594761.182 20594757.449 20594759.485
+ 47.100 46.100
+ -4215037.037 4 -3284451.756 3 23859622.603 23859618.732 23859621.014
+ 27.900 23.000
+ -19160330.540 7 -14930128.076 7 21525386.698 21525385.306 21525385.827
+ 44.900 42.000
+ 06 1 2 13 38 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -19045153.572 7 -14840374.359 6 20935670.701 20935669.085 20935669.687
+ 46.800 39.500
+ -8190659.101 5 -6382333.139 5 23207857.677 23207856.735 23207856.933
+ 32.000 30.600
+ -13323191.625 6 -10381710.697 5 22083962.013 22083960.022 22083961.638
+ 38.000 32.400
+ -2575137.289 4 -2006601.618 3 24135183.942 24135184.513 24135183.116
+ 25.300 22.100
+ -1799915.934 4 -1402531.231 3 24251498.259 24251496.668 24251497.049
+ 24.900 20.500
+ -21243358.809 7 -16553262.796 7 20588533.851 20588529.871 20588532.116
+ 47.200 46.300
+ -4102063.629 4 -3196420.576 3 23881120.566 23881116.615 23881119.381
+ 28.600 20.500
+ -19221661.656 7 -14977918.568 7 21513715.721 21513714.421 21513714.851
+ 45.000 42.000
+ 06 1 2 13 39 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18990991.519 7 -14798170.177 6 20945977.348 20945975.806 20945976.407
+ 46.900 39.300
+ -8292245.105 5 -6461491.073 4 23188526.886 23188525.226 23188525.874
+ 32.600 29.900
+ -13243879.223 6 -10319908.884 5 22099054.622 22099053.112 22099054.280
+ 37.700 33.800
+ -2555051.114 4 -1990950.131 3 24139006.473 24139006.673 24139005.589
+ 25.300 23.000
+ -1709935.691 4 -1332416.852 3 24268620.608 24268619.408 24268619.789
+ 26.500 19.900
+ -21275536.758 7 -16578336.526 7 20582410.685 20582406.675 20582408.860
+ 47.400 46.400
+ -3989007.879 4 -3108325.286 3 23902633.633 23902631.485 23902632.965
+ 24.900 23.800
+ -19282692.344 7 -15025474.957 7 21502102.192 21502100.716 21502101.142
+ 45.000 42.000
+ 06 1 2 13 39 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18936352.558 7 -14755594.384 6 20956374.657 20956373.270 20956373.786
+ 46.700 39.100
+ -8393696.896 5 -6540544.431 5 23169220.832 23169220.012 23169219.899
+ 32.100 30.100
+ -13164144.528 6 -10257777.991 5 22114227.857 22114225.888 22114227.555
+ 38.400 33.000
+ -2534399.707 4 -1974858.170 3 24142936.998 24142936.207 24142935.685
+ 25.300 20.500
+ -1619914.958 4 -1262270.922 2 24285751.486 24285750.313 24285750.343
+ 28.400 16.100
+ -21307165.878 7 -16602982.594 7 20576391.742 20576387.809 20576389.970
+ 47.300 46.500
+ -3875872.935 4 -3020168.290 3 23924163.486 23924159.388 23924162.472
+ 27.100 19.300
+ -19343420.862 7 -15072795.885 7 21490545.682 21490544.419 21490544.819
+ 44.900 42.300
+ 06 1 2 13 40 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18881238.782 7 -14712648.602 6 20966862.501 20966861.038 20966861.642
+ 46.500 39.100
+ -8495012.041 5 -6619491.294 5 23149941.222 23149940.302 23149940.411
+ 33.000 30.100
+ -13083990.393 6 -10195320.259 5 22129480.539 22129478.432 22129480.224
+ 37.700 31.800
+ -2513183.329 4 -1958326.002 4 24146973.827 24146974.268 24146972.963
+ 26.200 24.600
+ -1529854.593 4 -1192094.072 2 24302888.085 24302887.675 24302887.357
+ 25.900 17.800
+ -21338245.823 7 -16627200.738 7 20570477.515 20570473.417 20570475.716
+ 47.300 46.400
+ -3762661.803 4 -2931951.884 4 23945706.632 23945703.833 23945705.573
+ 25.300 24.200
+ -19403844.966 7 -15119879.615 7 21479047.722 21479045.996 21479046.751
+ 45.000 42.100
+ 06 1 2 13 40 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18825652.640 7 -14669334.749 6 20977440.357 20977438.763 20977439.422
+ 46.600 39.000
+ -8596189.063 5 -6698330.574 4 23130688.288 23130686.702 23130687.295
+ 34.400 29.200
+ -13003419.302 6 -10132537.631 5 22144812.651 22144810.419 22144812.317
+ 37.200 31.500
+ -2491402.303 4 -1941353.814 3 24151118.853 24151118.365 24151117.790
+ 24.900 18.600
+ -1439755.075 4 -1121886.735 2 24320034.138 24320033.093 24320033.491
+ 26.200 17.000
+ -21368776.076 7 -16650990.546 7 20564667.879 20564663.730 20564665.989
+ 47.400 46.400
+ -3649377.259 4 -2843678.327 3 23967264.687 23967260.650 23967263.638
+ 28.800 19.900
+ -19463962.854 7 -15166724.727 7 21467607.738 21467605.938 21467606.752
+ 45.000 42.100
+ 06 1 2 13 41 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18769595.969 7 -14625654.247 6 20988107.561 20988106.068 20988106.600
+ 46.500 39.100
+ -8697225.541 5 -6777060.315 4 23111461.703 23111459.866 23111460.651
+ 34.100 28.600
+ -12922434.526 6 -10069432.643 5 22160224.245 22160221.545 22160223.837
+ 38.900 32.300
+ -2469057.249 4 -1923942.153 3 24155370.711 24155370.769 24155369.581
+ 24.900 19.900
+ -1349617.201 4 -1051649.522 2 24337187.044 24337185.844 24337186.312
+ 27.100 13.900
+ -21398756.226 7 -16674351.707 7 20558962.592 20558958.676 20558960.920
+ 47.300 46.500
+ -3536022.604 4 -2755350.110 3 23988835.082 23988831.487 23988833.909
+ 27.600 19.900
+ -19523772.342 7 -15213329.529 7 21456226.385 21456224.595 21456225.447
+ 45.200 42.200
+ 06 1 2 13 41 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18713071.034 7 -14581608.866 6 20998863.934 20998862.356 20998862.971
+ 46.600 38.900
+ -8798118.998 5 -6855678.613 4 23092262.453 23092261.066 23092261.338
+ 33.100 29.700
+ -12841038.959 6 -10006007.557 5 22175713.149 22175710.702 22175712.846
+ 38.700 32.400
+ -2446149.013 3 -1906091.632 3 24159729.799 24159730.812 24159728.730
+ 21.600 22.100
+ -1259441.457 4 -981382.794 3 24354347.752 24354345.970 24354346.637
+ 27.600 18.600
+ -21428185.488 7 -16697283.605 7 20553362.579 20553358.428 20553360.800
+ 47.300 46.400
+ -3422600.291 4 -2666969.170 3 24010418.941 24010415.269 24010417.928
+ 29.500 21.600
+ -19583271.613 7 -15259692.605 7 21444904.151 21444902.255 21444903.256
+ 45.500 42.200
+ 06 1 2 13 42 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18656080.298 7 -14537200.521 6 21009708.931 21009707.352 21009707.985
+ 46.700 39.000
+ -8898867.677 5 -6934184.093 4 23073090.304 23073088.729 23073089.461
+ 33.500 28.400
+ -12759235.383 6 -9942264.546 5 22191279.643 22191277.568 22191279.284
+ 37.500 32.600
+ -2422677.991 4 -1887802.612 3 24164197.056 24164196.732 24164196.033
+ 24.900 20.500
+ -1169228.276 4 -911086.897 2 24371514.407 24371512.804 24371513.331
+ 26.800 16.100
+ -21457063.537 7 -16719785.983 7 20547867.401 20547863.146 20547865.567
+ 47.500 46.400
+ -3309113.621 4 -2578538.099 3 24032014.515 24032011.153 24032013.507
+ 27.400 21.100
+ -19642458.420 7 -15305812.203 7 21433640.931 21433639.454 21433640.147
+ 45.500 42.500
+ 06 1 2 13 42 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18598625.593 7 -14492430.642 6 21020642.086 21020640.609 21020641.190
+ 46.600 38.900
+ -8999469.393 5 -7012575.059 4 23053945.918 23053944.743 23053945.325
+ 33.500 29.500
+ -12677026.649 6 -9878205.829 5 22206923.402 22206921.447 22206923.120
+ 37.700 32.100
+ -2398644.555 4 -1869075.281 3 24168769.835 24168770.111 24168768.927
+ 24.200 19.300
+ -1078978.577 3 -840762.535 2 24388688.182 24388686.799 24388686.935
+ 23.400 12.600
+ -21485389.956 7 -16741858.525 7 20542477.166 20542472.909 20542475.340
+ 47.500 46.800
+ -3195565.218 4 -2490058.869 4 24053621.705 24053619.042 24053620.493
+ 28.100 24.200
+ -19701330.842 7 -15351686.822 7 21422437.832 21422436.534 21422436.971
+ 45.200 42.800
+ 06 1 2 13 43 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18540709.304 7 -14447301.089 6 21031663.336 21031661.767 21031662.388
+ 46.600 39.000
+ -9099921.731 5 -7090849.615 4 23034831.718 23034829.587 23034830.259
+ 33.400 29.700
+ -12594415.544 6 -9813833.575 5 22222643.748 22222642.095 22222643.493
+ 37.400 32.700
+ -2374049.283 4 -1849910.192 3 24173450.511 24173450.648 24173449.454
+ 24.200 22.100
+ -988692.971 4 -770410.180 2 24405869.039 24405867.262 24405867.971
+ 24.900 17.000
+ -21513164.362 7 -16763500.919 7 20537191.886 20537187.656 20537190.005
+ 47.800 47.000
+ -3081958.330 4 -2401534.200 4 24075240.811 24075237.593 24075239.776
+ 27.900 24.200
+ -19759886.952 7 -15397314.962 7 21411295.137 21411293.575 21411294.159
+ 45.100 42.600
+ 06 1 2 13 43 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18482333.830 7 -14401813.725 6 21042771.745 21042770.314 21042770.825
+ 46.400 38.900
+ -9200222.826 5 -7169006.320 5 23015744.859 23015743.214 23015743.610
+ 34.600 31.100
+ -12511405.336 6 -9749150.341 5 22238439.916 22238438.392 22238439.595
+ 36.600 32.400
+ -2348892.761 3 -1830307.751 3 24178237.419 24178237.538 24178236.329
+ 23.400 21.100
+ -898371.813 4 -700030.157 2 24423056.714 24423055.295 24423055.772
+ 25.300 15.100
+ -21540386.622 7 -16784713.074 7 20532011.434 20532007.520 20532009.703
+ 47.700 47.200
+ -2968295.961 4 -2312966.151 3 24096869.581 24096866.977 24096868.592
+ 26.500 23.400
+ -19818124.940 7 -15442695.218 7 21400212.794 21400211.353 21400211.859
+ 45.200 42.700
+ 06 1 2 13 44 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18423501.292 7 -14355970.212 6 21053967.452 21053965.882 21053966.406
+ 46.300 39.100
+ -9300370.306 5 -7247043.328 5 22996686.777 22996685.674 22996685.928
+ 34.700 31.300
+ -12427998.435 6 -9684157.993 5 22254312.130 22254310.077 22254311.766
+ 37.400 31.300
+ -2323175.827 4 -1810268.648 3 24183131.037 24183131.809 24183130.190
+ 24.200 20.500
+ -808015.933 4 -629623.048 2 24440251.155 24440249.986 24440250.327
+ 27.400 17.800
+ -21567056.223 7 -16805494.583 7 20526936.455 20526932.385 20526934.628
+ 47.600 47.000
+ -2854580.751 4 -2224357.044 3 24118509.509 24118506.271 24118507.939
+ 27.900 23.400
+ -19876042.655 7 -15487825.916 7 21389191.426 21389189.961 21389190.565
+ 45.500 43.000
+ 06 1 2 13 44 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18364213.648 7 -14309772.072 6 21065249.311 21065247.990 21065248.312
+ 46.000 39.000
+ -9400361.737 5 -7324958.746 5 22977659.441 22977657.879 22977658.499
+ 34.500 31.100
+ -12344198.209 6 -9618859.142 5 22270258.804 22270256.562 22270258.489
+ 37.700 31.100
+ -2296899.217 4 -1789793.402 2 24188131.936 24188131.587 24188130.541
+ 24.200 17.800
+ -717625.659 4 -559189.156 3 24457451.978 24457450.447 24457450.705
+ 24.600 18.600
+ -21593172.805 7 -16825845.172 7 20521966.666 20521962.558 20521964.857
+ 47.700 47.100
+ -2740815.808 4 -2135709.129 3 24140157.488 24140154.901 24140156.832
+ 27.900 21.100
+ -19933637.942 7 -15532705.367 7 21378231.562 21378229.858 21378230.558
+ 45.500 42.700
+ 06 1 2 13 45 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18304473.285 7 -14263221.159 6 21076617.537 21076616.218 21076616.576
+ 46.200 38.800
+ -9500195.013 5 -7402750.921 5 22958661.474 22958660.273 22958660.366
+ 33.600 30.100
+ -12260007.766 6 -9553256.227 5 22286279.228 22286277.632 22286279.079
+ 37.100 31.600
+ -2270063.402 3 -1768882.433 2 24193238.292 24193237.921 24193236.988
+ 22.600 17.000
+ -627201.799 4 -488729.117 2 24474659.395 24474658.050 24474658.340
+ 27.600 17.000
+ -21618736.191 7 -16845764.698 7 20517102.110 20517097.970 20517100.254
+ 47.800 47.100
+ -2627003.864 4 -2047024.554 3 24161815.123 24161812.555 24161814.431
+ 26.200 18.600
+ -19990908.885 7 -15577332.084 7 21367333.212 21367331.541 21367332.246
+ 45.500 42.700
+ 06 1 2 13 45 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18244282.533 7 -14216319.301 6 21088071.529 21088070.085 21088070.525
+ 46.300 38.800
+ -9599867.756 5 -7480417.995 5 22939694.611 22939693.026 22939693.493
+ 34.000 30.400
+ -12175429.508 6 -9487351.138 5 22302374.429 22302372.491 22302374.092
+ 36.900 31.500
+ -2242669.158 4 -1747536.268 3 24198451.593 24198451.523 24198450.368
+ 24.600 19.300
+ -536745.069 3 -418243.382 1 24491872.754 24491870.889 24491871.322
+ 21.600 11.000
+ -21643746.027 7 -16865252.893 7 20512342.928 20512338.788 20512341.098
+ 47.700 47.100
+ -2513148.005 3 -1958305.812 3 24183482.162 24183478.961 24183480.671
+ 23.000 21.100
+ -20047853.285 7 -15621704.345 7 21356497.061 21356495.433 21356496.123
+ 45.400 42.900
+ 06 1 2 13 46 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18183643.723 7 -14169068.299 6 21099610.702 21099609.360 21099609.865
+ 46.500 38.600
+ -9699377.753 5 -7557958.266 5 22920758.218 22920757.326 22920757.196
+ 34.800 30.600
+ -12090466.627 6 -9421146.324 5 22318542.188 22318540.227 22318541.863
+ 36.800 31.300
+ -2214717.131 3 -1725755.516 2 24203769.810 24203770.501 24203769.210
+ 23.800 16.100
+ -446255.786 4 -347732.376 3 24509092.147 24509090.760 24509091.202
+ 24.900 18.600
+ -21668201.938 7 -16884309.448 7 20507689.021 20507685.037 20507687.249
+ 47.700 47.300
+ -2399251.049 3 -1869555.018 3 24205156.505 24205152.717 24205154.809
+ 22.600 23.400
+ -20104469.272 7 -15665820.709 7 21345723.346 21345721.731 21345722.442
+ 45.600 42.800
+ 06 1 2 13 46 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -18122558.903 7 -14121469.761 6 21111234.778 21111233.384 21111233.877
+ 46.400 38.300
+ -9798722.768 5 -7635369.977 5 22901853.942 22901852.474 22901852.970
+ 35.500 30.400
+ -12005122.216 6 -9354644.216 5 22334782.674 22334780.734 22334782.362
+ 36.100 30.800
+ -2186208.040 4 -1703540.622 3 24209195.677 24209196.082 24209194.618
+ 24.600 19.300
+ -355734.780 3 -277196.592 1 24526317.563 24526316.728 24526316.038
+ 21.600 11.000
+ -21692103.966 7 -16902934.412 7 20503140.579 20503136.531 20503138.809
+ 47.900 47.400
+ -2285316.174 4 -1780774.714 3 24226837.156 24226833.567 24226836.164
+ 25.900 19.300
+ -20160755.003 7 -15709679.723 7 21335012.686 21335010.997 21335011.818
+ 45.800 43.100
+ 06 1 2 13 47 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18061030.459 7 -14073525.536 6 21122943.484 21122941.923 21122942.473
+ 46.300 38.500
+ -9897900.777 5 -7712651.566 4 22882980.263 22882979.102 22882979.561
+ 34.600 29.900
+ -11919399.191 6 -9287847.101 5 22351095.505 22351093.591 22351095.042
+ 36.500 31.300
+ -2157142.698 4 -1680892.308 3 24214726.989 24214726.448 24214726.073
+ 26.200 19.300
+ -265182.224 3 -206636.216 2 24543548.404 24543548.763 24543547.660
+ 23.800 12.600
+ -21715451.864 7 -16921127.586 7 20498697.683 20498693.687 20498695.916
+ 47.900 47.400
+ -2171346.094 3 -1691966.946 3 24248524.476 24248521.795 24248523.462
+ 22.100 20.500
+ -20216708.294 7 -15753279.696 7 21324364.919 21324363.452 21324364.079
+ 45.700 43.200
+ 06 1 2 13 47 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -17999060.542 7 -14025237.312 6 21134736.014 21134734.397 21134735.076
+ 46.200 38.300
+ -9996909.642 5 -7789801.342 5 22864139.806 22864138.792 22864138.842
+ 33.500 30.100
+ -11833300.435 6 -9220757.197 5 22367479.542 22367477.695 22367479.262
+ 36.800 31.000
+ -2127521.958 4 -1657811.227 3 24220363.765 24220363.086 24220362.507
+ 27.100 18.600
+ -174598.924 4 -136051.943 3 24560786.912 24560786.170 24560785.749
+ 25.300 18.600
+ -21738244.860 7 -16938888.372 7 20494360.450 20494356.324 20494358.624
+ 47.900 47.500
+ -2057343.278 4 -1603133.701 3 24270219.187 24270216.006 24270217.896
+ 25.900 19.900
+ -20272327.176 7 -15796619.088 7 21313781.047 21313779.585 21313780.235
+ 45.800 43.300
+ 06 1 2 13 48 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -17936651.517 7 -13976606.929 6 21146611.888 21146610.509 21146610.899
+ 46.200 38.400
+ -10095746.892 5 -7866817.374 5 22845331.388 22845330.226 22845330.648
+ 33.600 30.200
+ -11746829.162 6 -9153377.017 5 22383934.307 22383932.473 22383933.982
+ 36.300 31.000
+ -2097346.465 4 -1634297.862 3 24226105.391 24226105.472 24226104.351
+ 24.900 19.300
+ -83985.648 4 -65444.265 2 24578029.820 24578029.414 24578028.912
+ 24.900 17.000
+ -21760483.130 8 -16956216.896 7 20490128.654 20490124.577 20490126.830
+ 48.000 47.600
+ -1943311.275 4 -1514277.715 2 24291918.328 24291915.691 24291917.394
+ 24.600 16.100
+ -20327609.707 7 -15839696.384 7 21303261.281 21303259.510 21303260.260
+ 45.700 43.100
+ 06 1 2 13 48 30.0000000 0 8G03G08G13G15G16G19G23G27
+ -17873805.862 7 -13927636.310 6 21158570.739 21158569.587 21158569.962
+ 46.100 38.100
+ -10194409.888 5 -7943697.652 5 22826557.179 22826555.500 22826555.906
+ 34.800 30.600
+ -11659988.390 5 -9085708.917 4 22400459.642 22400457.594 22400459.240
+ 35.800 29.900
+ -2066617.203 4 -1610352.960 3 24231952.990 24231953.085 24231952.215
+ 26.200 19.300
+ 6657.269 4 5186.507 3 24595278.880 24595278.114 24595278.161
+ 25.300 19.300
+ -21782166.640 7 -16973113.141 7 20486002.316 20485998.291 20486000.486
+ 47.800 47.600
+ -1829252.830 4 -1425400.994 2 24313623.400 24313619.696 24313622.506
+ 28.600 17.800
+ -20382553.848 7 -15882510.010 7 21292805.603 21292804.032 21292804.762
+ 45.700 43.200
+ 06 1 2 13 49 0.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17810525.543 7 -13878326.998 6 21170612.891 21170611.496 21170611.984
+ 45.900 38.100
+ -10292896.412 5 -8020440.409 5 22807815.995 22807814.326 22807814.782
+ 35.100 32.100
+ -11572780.981 6 -9017755.132 5 22417054.938 22417052.961 22417054.582
+ 36.500 31.100
+ -2035334.934 3 -1585977.163 3 24237905.943 24237905.965 24237904.642
+ 23.800 19.300
+ 97329.203 4 75839.821 2 24612532.937 24612532.718 24612532.199
+ 25.600 16.100
+ -21803295.032 7 -16989576.827 7 20481981.560 20481977.681 20481979.791
+ 47.700 47.600
+ -1715170.410 3 -1336505.764 3 24335332.057 24335330.034 24335331.044
+ 23.800 21.600
+ -20437157.410 7 -15925058.244 7 21282415.061 21282413.357 21282414.104
+ 45.600 43.400
+ -183539.682 3 -143018.237 1 24898464.439 24898463.717 24898463.685
+ 23.000 6.500
+ 06 1 2 13 49 30.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17746812.924 7 -13828680.823 6 21182736.951 21182735.559 21182735.975
+ 45.500 38.100
+ -10391204.380 5 -8097044.022 5 22789108.623 22789107.275 22789107.481
+ 35.800 33.000
+ -11485209.983 6 -8949518.023 5 22433718.834 22433717.292 22433718.697
+ 36.000 31.500
+ -2003500.654 4 -1561171.193 2 24243963.862 24243963.564 24243962.931
+ 24.200 17.000
+ 188029.544 4 146515.329 2 24629794.249 24629792.204 24629792.901
+ 25.300 17.800
+ -21823868.144 7 -17005607.827 7 20478066.764 20478062.702 20478064.985
+ 47.900 47.700
+ -1601067.233 3 -1247594.293 3 24357045.395 24357043.172 24357044.462
+ 23.800 19.900
+ -20491418.491 7 -15967339.613 7 21272089.410 21272087.912 21272088.518
+ 45.600 43.500
+ -269501.964 3 -210001.863 24882106.522 24882105.370 24882105.264
+ 19.900 3.000
+ 06 1 2 13 50 0.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17682670.487 7 -13778699.724 6 21194942.622 21194941.592 21194941.830
+ 45.500 38.200
+ -10489331.828 6 -8173506.978 5 22770435.365 22770434.134 22770434.374
+ 36.500 32.100
+ -11397278.457 5 -8881000.003 5 22450451.594 22450450.186 22450451.289
+ 34.900 30.800
+ -1971115.313 3 -1535935.842 3 24250125.803 24250126.387 24250124.673
+ 20.500 19.900
+ 278757.759 4 217212.558 3 24647058.602 24647057.225 24647057.692
+ 26.200 18.600
+ -21843886.218 8 -17021206.333 7 20474257.711 20474253.362 20474255.753
+ 48.000 47.700
+ -1486946.177 4 -1158668.887 3 24378763.675 24378759.620 24378761.704
+ 27.100 18.600
+ -20545335.286 7 -16009352.703 7 21261829.490 21261827.923 21261828.560
+ 45.700 43.800
+ -355417.672 3 -276949.205 9 24865756.696 24865755.405 24865755.596
+ 18.600 -3.000
+ 06 1 2 13 50 30.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17618100.453 7 -13728385.440 6 21207230.167 21207228.930 21207229.122
+ 45.300 38.400
+ -10587276.137 5 -8249827.234 5 22751796.805 22751795.806 22751795.770
+ 35.300 32.000
+ -11308989.526 5 -8812203.476 5 22467252.779 22467251.006 22467252.360
+ 34.900 31.100
+ -1938179.820 3 -1510271.816 3 24256393.987 24256393.815 24256392.814
+ 23.000 18.600
+ 369513.330 3 287931.106 2 24664328.192 24664327.278 24664327.559
+ 22.600 16.100
+ -21863349.153 8 -17036372.257 7 20470553.810 20470549.742 20470552.059
+ 48.100 47.700
+ -1372810.077 3 -1069731.752 2 24400481.476 24400479.346 24400480.561
+ 23.000 17.800
+ -20598905.306 7 -16051095.580 7 21251635.328 21251633.826 21251634.475
+ 45.900 43.600
+ -441287.098 3 -343860.417 2 24849416.379 24849414.908 24849415.636
+ 19.900 15.100
+ 06 1 2 13 51 0.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17553105.183 7 -13677739.794 6 21219598.320 21219597.021 21219597.400
+ 45.500 37.900
+ -10685035.005 5 -8326002.974 5 22733194.136 22733193.153 22733193.279
+ 35.600 32.800
+ -11220346.344 5 -8743130.911 5 22484120.805 22484119.176 22484120.520
+ 35.500 30.400
+ -1904695.280 3 -1484179.933 3 24262765.485 24262765.790 24262764.263
+ 22.600 19.900
+ 460295.603 3 358670.425 2 24681602.780 24681602.744 24681602.158
+ 23.400 15.100
+ -21882256.806 8 -17051105.497 7 20466955.774 20466951.734 20466953.985
+ 48.100 47.700
+ -1258661.719 3 -980785.104 3 24422202.951 24422201.447 24422202.153
+ 22.100 18.600
+ -20652126.865 7 -16092566.935 7 21241507.801 21241506.036 21241506.853
+ 45.700 43.600
+ -527109.481 3 -410734.980 3 24833085.944 24833083.670 24833084.829
+ 19.300 19.300
+ 06 1 2 13 51 30.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17487686.856 7 -13626764.494 6 21232047.038 21232045.747 21232046.110
+ 45.300 37.700
+ -10782605.999 6 -8402032.325 5 22714627.274 22714625.864 22714626.200
+ 36.300 32.000
+ -223465.200 3 -174128.507 2 24441704.037 24441703.548 24441702.742
+ 19.300 15.100
+ -11131351.530 5 -8673784.332 5 22501055.976 22501054.394 22501055.628
+ 34.900 30.100
+ -1870662.614 4 -1457660.988 3 24269241.719 24269241.629 24269240.782
+ 24.600 18.600
+ 551104.238 3 429430.309 2 24698884.253 24698883.142 24698883.229
+ 23.000 13.900
+ -21900609.001 8 -17065405.910 7 20463463.522 20463459.328 20463461.701
+ 48.100 47.600
+ -1144504.190 4 -891831.247 2 24443926.502 24443924.078 24443925.649
+ 25.300 12.600
+ -20704998.087 7 -16133765.294 7 21231446.713 21231444.983 21231445.789
+ 45.800 43.700
+ -612884.377 3 -477572.564 2 24816762.842 24816760.987 24816761.689
+ 18.600 17.800
+ 06 1 2 13 52 0.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17421847.722 7 -13575461.293 6 21244575.759 21244574.462 21244574.841
+ 45.300 37.700
+ -10879986.836 6 -8477913.526 5 22696096.153 22696094.437 22696095.176
+ 36.900 31.100
+ -328235.462 3 -255767.620 1 24421766.313 24421766.320 24421766.043
+ 19.900 11.000
+ -11042008.433 5 -8604166.388 5 22518057.214 22518055.814 22518056.947
+ 34.600 30.400
+ -1836082.687 4 -1430715.609 3 24275822.608 24275822.864 24275821.333
+ 25.900 21.100
+ 641938.705 4 500210.334 2 24716170.272 24716168.721 24716168.802
+ 24.900 17.000
+ -21918405.711 8 -17079273.482 7 20460076.914 20460072.699 20460075.095
+ 48.300 47.700
+ -1030339.970 3 -802872.211 3 24465651.748 24465649.362 24465650.681
+ 22.100 19.900
+ -20757517.340 7 -16174689.395 7 21221452.636 21221450.998 21221451.762
+ 45.800 43.800
+ -698611.913 3 -544373.202 2 24800449.773 24800447.455 24800448.971
+ 22.100 17.000
+ 06 1 2 13 52 30.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17355590.304 7 -13523832.153 6 21257184.172 21257182.849 21257183.214
+ 45.400 37.400
+ -10977175.225 6 -8553644.755 5 22677601.682 22677600.533 22677600.717
+ 36.200 32.100
+ -433015.379 3 -337414.253 2 24401826.318 24401826.593 24401826.798
+ 19.300 12.600
+ -10952320.132 5 -8534279.434 4 22535124.773 22535122.649 22535124.472
+ 34.500 29.000
+ -1800956.558 4 -1403344.612 3 24282506.583 24282506.876 24282505.469
+ 24.600 20.500
+ 732798.501 4 571010.086 2 24733459.748 24733458.594 24733458.475
+ 25.900 15.100
+ -21935647.303 8 -17092708.497 7 20456796.004 20456791.812 20456794.227
+ 48.200 47.800
+ -916172.050 3 -713910.299 3 24487376.708 24487374.671 24487376.166
+ 22.100 21.100
+ -20809681.915 7 -16215337.121 7 21211526.039 21211524.381 21211525.080
+ 45.700 43.600
+ -784291.388 3 -611136.424 3 24784145.608 24784143.501 24784144.527
+ 22.600 18.600
+ 06 1 2 13 53 0.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17288917.021 7 -13471878.957 6 21269871.668 21269870.347 21269870.824
+ 45.500 37.400
+ -11074168.818 5 -8629224.179 5 22659144.524 22659143.578 22659143.431
+ 35.600 33.400
+ -537802.604 3 -419066.564 24381887.482 24381886.279 24381886.831
+ 19.300 3.000
+ -10862289.654 5 -8464125.858 4 22552256.916 22552255.104 22552256.688
+ 35.200 29.200
+ -1765285.577 3 -1375549.089 3 24289294.305 24289294.650 24289293.284
+ 22.600 22.100
+ 823682.738 4 641828.926 1 24750753.952 24750753.243 24750753.692
+ 24.900 6.500
+ -21952333.219 8 -17105710.506 8 20453620.653 20453616.615 20453618.897
+ 48.200 48.000
+ -802003.530 3 -624947.937 3 24509102.564 24509100.569 24509101.773
+ 22.600 22.600
+ -20861490.067 7 -16255707.120 7 21201666.866 21201665.643 21201666.105
+ 45.700 43.700
+ -869922.660 3 -677862.096 2 24767850.605 24767848.454 24767849.386
+ 21.600 17.800
+ 06 1 2 13 53 30.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17221829.995 7 -13419603.369 6 21282638.051 21282636.753 21282637.058
+ 45.100 37.500
+ -11170965.056 6 -8704649.818 5 22640724.901 22640723.435 22640723.738
+ 36.100 33.100
+ -642594.149 4 -500722.252 1 24361947.759 24361945.986 24361946.538
+ 24.200 11.000
+ -10771920.017 5 -8393707.992 4 22569453.639 22569451.901 22569453.387
+ 34.400 29.000
+ -1729070.620 3 -1347329.675 3 24296186.025 24296186.147 24296184.993
+ 23.000 20.500
+ 914591.426 3 712666.741 1 24768053.780 24768052.647 24768052.653
+ 23.800 9.000
+ -21968463.525 8 -17118279.586 7 20450551.191 20450547.111 20450549.365
+ 48.100 47.900
+ -687837.131 4 -535987.207 3 24530828.016 24530825.479 24530827.498
+ 25.300 19.900
+ -20912940.100 7 -16295798.060 7 21191876.532 21191874.933 21191875.591
+ 45.500 43.600
+ -955505.058 3 -744549.681 3 24751564.959 24751562.437 24751563.905
+ 21.100 20.500
+ 06 1 2 13 54 0.0000000 0 9G03G08G11G13G15G19G23G27G28
+ -17154331.747 7 -13367007.350 6 21295482.390 21295481.283 21295481.495
+ 45.300 37.600
+ -11267561.697 6 -8779919.952 5 22622343.115 22622341.881 22622341.938
+ 36.400 33.100
+ -747387.178 3 -582379.120 1 24342004.764 24342004.221 24342003.943
+ 23.800 11.000
+ -10681214.363 5 -8323028.317 5 22586714.591 22586712.817 22586713.999
+ 34.100 30.200
+ -1692312.561 3 -1318687.030 2 24303180.621 24303180.270 24303179.947
+ 22.100 17.800
+ -21984038.893 8 -17130416.241 7 20447587.279 20447583.224 20447585.485
+ 48.200 47.900
+ -573675.394 3 -447030.093 3 24552552.769 24552549.863 24552551.434
+ 23.800 18.600
+ -20964029.665 7 -16335608.119 7 21182154.773 21182152.945 21182153.789
+ 45.700 43.800
+ -1041038.590 3 -811199.164 3 24735288.008 24735286.202 24735286.895
+ 23.400 19.300
+ 06 1 2 13 54 30.0000000 0 9G03G08G11G13G15G19G23G27G28
+ -17086424.689 7 -13314092.776 6 21308404.813 21308403.427 21308403.834
+ 45.100 37.100
+ -11363956.740 6 -8855032.976 5 22603999.973 22603998.707 22603998.725
+ 36.100 33.600
+ -852179.305 3 -664035.258 2 24322063.281 24322062.709 24322062.813
+ 22.600 16.100
+ -10590175.823 5 -8252089.237 4 22604038.331 22604036.937 22604038.310
+ 34.600 29.900
+ -1655012.623 3 -1289622.192 3 24310278.385 24310279.299 24310277.512
+ 21.100 22.100
+ -21999059.149 8 -17142120.338 8 20444729.240 20444725.022 20444727.437
+ 48.400 48.100
+ -459521.363 4 -358078.989 2 24574276.202 24574273.040 24574274.661
+ 25.600 17.000
+ -21014757.029 7 -16375135.944 7 21172501.384 21172499.891 21172500.551
+ 45.600 43.800
+ -1126522.915 3 -877810.345 2 24719020.758 24719018.822 24719019.611
+ 23.000 17.000
+ 06 1 2 13 55 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -17018111.134 7 -13260861.458 6 21321404.459 21321403.234 21321403.477
+ 44.900 37.400
+ -11460147.565 6 -8929986.877 5 22585695.473 22585693.923 22585694.213
+ 36.900 33.200
+ -956967.691 3 -745688.439 3 24302123.032 24302122.085 24302122.020
+ 21.600 18.600
+ -10498807.313 5 -8180893.031 4 22621425.774 22621423.807 22621425.468
+ 34.500 29.200
+ -1617172.060 4 -1260136.082 3 24317480.163 24317479.588 24317478.861
+ 24.900 19.900
+ -22013524.152 8 -17153391.779 8 20441976.675 20441972.481 20441974.829
+ 48.500 48.100
+ -21065119.882 7 -16414379.737 7 21162917.736 21162916.263 21162916.823
+ 45.600 44.000
+ -1211957.355 4 -944382.636 3 24702763.343 24702761.072 24702762.239
+ 24.200 19.300
+ 06 1 2 13 55 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16949393.467 7 -13207315.246 6 21334481.115 21334479.691 21334480.049
+ 44.900 36.900
+ -11556131.582 6 -9004779.630 5 22567429.982 22567428.864 22567429.199
+ 37.300 32.800
+ -1061749.657 4 -827336.671 3 24282183.461 24282183.034 24282182.824
+ 24.900 19.900
+ -10407112.191 5 -8109442.339 4 22638874.325 22638872.890 22638874.048
+ 33.600 29.200
+ -1578791.871 4 -1230229.479 3 24324783.032 24324783.596 24324782.388
+ 24.600 18.600
+ -22027434.227 8 -17164230.809 8 20439329.409 20439325.438 20439327.694
+ 48.500 48.000
+ -21115116.320 7 -16453338.007 7 21153403.736 21153402.238 21153402.849
+ 45.600 44.100
+ -1297342.119 4 -1010916.234 2 24686515.283 24686513.046 24686514.182
+ 25.900 17.800
+ 06 1 2 13 56 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16880273.897 7 -13153455.869 6 21347633.942 21347632.790 21347633.033
+ 44.900 37.200
+ -11651906.419 6 -9079409.395 5 22549204.854 22549203.597 22549203.935
+ 37.800 33.900
+ -1166522.537 3 -908977.815 3 24262245.675 24262244.695 24262244.715
+ 23.000 18.600
+ -10315093.629 5 -8037739.604 4 22656384.943 22656383.596 22656384.659
+ 33.900 29.200
+ -1539873.054 3 -1199903.177 2 24332188.665 24332188.771 24332187.837
+ 21.600 16.100
+ -22040789.477 8 -17174637.504 8 20436788.095 20436783.984 20436786.308
+ 48.500 48.300
+ -21164744.757 7 -16492009.526 7 21143959.835 21143958.428 21143958.837
+ 45.900 44.300
+ -1382676.506 4 -1077410.576 3 24670276.627 24670274.339 24670275.589
+ 24.900 19.300
+ 06 1 2 13 56 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16810754.890 7 -13099285.233 6 21360862.812 21360861.682 21360861.944
+ 44.700 36.700
+ -11747469.778 6 -9153874.355 5 22531019.576 22531018.513 22531018.586
+ 37.000 33.200
+ -1271283.491 4 -990609.674 3 24242310.381 24242309.460 24242309.712
+ 25.300 19.300
+ -10222754.393 5 -7965786.999 4 22673956.556 22673955.138 22673956.241
+ 33.800 29.000
+ -1500417.167 3 -1169158.365 2 24339697.470 24339697.285 24339696.485
+ 22.600 17.800
+ -22053590.185 8 -17184612.089 8 20434352.115 20434348.131 20434350.414
+ 48.500 48.200
+ -21214002.978 7 -16530392.564 7 21134586.227 21134584.743 21134585.332
+ 46.100 44.100
+ -1467960.129 4 -1143865.334 2 24654047.468 24654045.445 24654046.610
+ 24.600 17.800
+ 06 1 2 13 57 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16740838.887 7 -13044805.262 6 21374167.563 21374166.490 21374166.555
+ 44.600 37.100
+ -11842819.245 6 -9228172.652 5 22512875.454 22512873.822 22512874.381
+ 37.700 32.300
+ -1376029.979 3 -1072230.281 3 24222378.048 24222376.737 24222376.908
+ 19.900 19.900
+ -10130097.654 5 -7893586.998 4 22691588.735 22691587.306 22691588.495
+ 33.900 29.200
+ -1460425.401 3 -1137996.008 2 24347307.643 24347307.676 24347306.741
+ 23.800 12.600
+ -22065836.332 8 -17194154.546 8 20432021.833 20432017.779 20432020.073
+ 48.600 48.200
+ -21262889.123 7 -16568485.668 7 21125283.242 21125281.935 21125282.510
+ 45.900 43.900
+ -1553192.757 4 -1210280.398 2 24637828.139 24637826.117 24637827.019
+ 24.600 17.800
+ 06 1 2 13 57 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16670528.193 7 -12990017.735 6 21387547.326 21387546.079 21387546.318
+ 44.700 36.800
+ -11937952.563 6 -9302302.522 5 22494772.095 22494770.578 22494771.111
+ 37.500 32.800
+ -1480759.087 3 -1153837.330 3 24202446.500 24202447.297 24202446.270
+ 19.900 19.300
+ -10037126.691 5 -7821142.141 4 22709280.614 22709279.030 22709280.205
+ 33.900 28.800
+ -1419898.862 3 -1106416.884 2 24355019.809 24355019.949 24355018.691
+ 23.000 15.100
+ -22077528.304 8 -17203265.176 8 20429796.894 20429792.860 20429795.136
+ 48.500 48.300
+ -21311401.418 7 -16606287.469 7 21116051.858 21116050.362 21116050.918
+ 45.700 44.000
+ -1638374.157 4 -1276655.521 2 24621618.579 24621617.072 24621617.835
+ 24.200 17.000
+ 06 1 2 13 58 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16599825.255 7 -12934924.564 6 21401001.481 21401000.622 21401000.658
+ 44.600 37.000
+ -12032867.289 6 -9376262.049 5 22476710.357 22476709.047 22476709.249
+ 37.400 32.800
+ -1585468.316 3 -1235428.857 3 24182522.139 24182521.999 24182521.756
+ 20.500 20.500
+ -9943844.437 5 -7748454.721 4 22727031.844 22727029.959 22727031.575
+ 34.700 27.600
+ -1378838.586 3 -1074421.917 2 24362833.099 24362833.137 24362832.018
+ 22.600 15.100
+ -22088666.262 8 -17211944.113 8 20427677.562 20427673.406 20427675.665
+ 48.400 48.300
+ -21359537.806 7 -16643796.353 7 21106892.000 21106890.475 21106891.056
+ 45.800 44.300
+ -1723503.879 3 -1342990.402 1 24605419.471 24605417.687 24605418.479
+ 22.100 11.000
+ 06 1 2 13 58 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16528732.315 7 -12879527.500 6 21414530.246 21414528.968 21414529.335
+ 44.800 36.500
+ -12127560.531 6 -9450049.016 5 22458691.010 22458689.254 22458689.893
+ 38.000 32.100
+ -1690154.732 3 -1317002.683 2 24162600.490 24162600.672 24162600.914
+ 22.100 17.800
+ -9850254.355 5 -7675527.414 4 22744841.084 22744839.551 22744840.847
+ 33.900 27.900
+ -1337246.138 4 -1042012.231 2 24370747.879 24370747.848 24370746.883
+ 24.200 13.900
+ -22099250.634 8 -17220191.680 8 20425663.045 20425659.289 20425661.319
+ 48.400 48.500
+ -21407296.040 7 -16681010.567 7 21097803.959 21097802.336 21097802.994
+ 46.000 44.300
+ -1808581.622 2 -1409284.764 2 24589229.594 24589226.965 24589228.765
+ 17.800 13.900
+ 06 1 2 13 59 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16457251.806 7 -12823828.426 6 21428132.737 21428131.313 21428131.718
+ 44.900 36.800
+ -12222029.737 6 -9523661.398 5 22440714.015 22440712.666 22440712.930
+ 38.000 33.400
+ -1794815.507 3 -1398556.498 2 24142684.257 24142684.564 24142684.072
+ 19.300 15.100
+ -9756359.544 5 -7602362.677 4 22762708.828 22762707.661 22762708.487
+ 33.200 29.000
+ -1295122.731 3 -1009188.835 2 24378763.399 24378763.988 24378762.598
+ 22.100 17.800
+ -22109281.448 8 -17228007.904 8 20423754.501 20423750.537 20423752.640
+ 48.400 48.400
+ -21454674.210 7 -16717928.637 7 21088788.399 21088786.572 21088787.363
+ 45.900 44.300
+ -1893606.941 3 -1475538.257 2 24573049.132 24573047.459 24573048.272
+ 18.600 17.000
+ 06 1 2 13 59 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16385386.154 7 -12767829.251 6 21441808.023 21441807.108 21441807.210
+ 44.800 36.500
+ -12316273.103 6 -9597097.789 5 22422780.393 22422778.684 22422779.089
+ 38.000 34.000
+ -1899448.375 3 -1480088.584 2 24122772.144 24122773.818 24122772.943
+ 21.600 12.600
+ -9662163.009 5 -7528962.842 4 22780633.691 22780632.342 22780633.412
+ 32.800 26.800
+ -1252469.841 3 -975952.906 3 24386881.087 24386881.004 24386879.812
+ 23.400 21.100
+ -22118758.825 8 -17235392.872 8 20421950.852 20421947.040 20421949.199
+ 48.500 48.700
+ -21501670.624 7 -16754549.231 7 21079845.089 21079843.411 21079844.091
+ 45.900 44.300
+ -1978579.402 3 -1541750.586 2 24556880.336 24556878.193 24556878.982
+ 22.600 16.100
+ 06 1 2 14 0 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16313137.657 7 -12711531.743 6 21455556.789 21455555.229 21455555.764
+ 44.700 36.100
+ -12410288.134 6 -9670356.260 5 22404889.994 22404888.320 22404888.866
+ 38.500 33.600
+ -2004050.255 3 -1561596.509 2 24102867.856 24102869.187 24102867.649
+ 22.100 16.100
+ -9567667.907 5 -7455330.327 4 22798615.732 22798614.011 22798615.502
+ 33.400 26.800
+ -1209288.826 3 -942305.378 2 24395097.761 24395098.285 24395096.743
+ 22.100 16.100
+ -22127683.311 8 -17242347.020 8 20420252.649 20420248.745 20420250.859
+ 48.400 48.700
+ -21548283.062 7 -16790870.621 7 21070975.016 21070973.443 21070974.046
+ 45.700 44.400
+ -2063498.922 3 -1607921.658 3 24540720.802 24540718.054 24540719.839
+ 23.800 20.500
+ 06 1 2 14 0 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16240508.900 7 -12654937.933 6 21469377.456 21469376.263 21469376.444
+ 44.700 36.300
+ -12504072.246 6 -9743434.794 5 22387043.055 22387041.616 22387042.062
+ 38.600 33.200
+ -2108618.420 4 -1643078.202 2 24082969.181 24082969.853 24082969.179
+ 25.300 15.100
+ -9472877.303 5 -7381467.561 4 22816653.802 22816652.239 22816653.517
+ 33.000 27.400
+ -1165580.892 3 -908247.279 2 24403414.678 24403414.851 24403413.822
+ 19.900 15.100
+ -22136055.209 8 -17248870.585 8 20418659.234 20418655.624 20418657.576
+ 48.100 48.800
+ -21594509.826 7 -16826891.486 7 21062178.506 21062176.821 21062177.413
+ 45.700 44.400
+ -2148365.113 4 -1674051.165 3 24524571.396 24524568.974 24524570.067
+ 24.600 21.100
+ 06 1 2 14 1 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16167502.200 7 -12598049.622 6 21483270.425 21483268.912 21483269.358
+ 44.500 36.500
+ -12597623.400 6 -9816331.822 5 22369241.178 22369239.491 22369240.143
+ 39.000 33.200
+ -2213150.049 4 -1724531.404 2 24063076.953 24063077.526 24063077.516
+ 24.600 16.100
+ -9377794.479 5 -7307377.088 4 22834747.194 22834746.075 22834747.004
+ 30.800 28.100
+ -1121347.356 3 -873779.645 2 24411832.034 24411832.552 24411830.846
+ 22.100 12.600
+ -22143875.085 8 -17254963.998 8 20417171.414 20417167.511 20417169.604
+ 48.200 48.700
+ -21640349.196 7 -16862610.485 7 21053455.331 21053453.894 21053454.397
+ 45.700 44.600
+ -2233177.497 4 -1740138.737 3 24508431.911 24508429.515 24508430.737
+ 26.800 21.600
+ 06 1 2 14 1 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -16094119.922 7 -12540868.653 6 21497234.033 21497233.378 21497233.265
+ 44.100 36.400
+ -12690938.588 6 -9889044.973 5 22351483.876 22351482.316 22351482.722
+ 38.800 33.800
+ -2317642.331 4 -1805953.950 2 24043193.660 24043193.561 24043193.422
+ 26.500 15.100
+ -9282422.611 5 -7233061.435 4 22852896.245 22852895.142 22852895.830
+ 32.300 28.800
+ -1076589.824 3 -838903.718 3 24420349.170 24420349.494 24420348.346
+ 22.100 18.600
+ -22151143.097 8 -17260627.388 8 20415788.379 20415784.508 20415786.654
+ 48.300 48.700
+ -21685799.034 7 -16898025.956 7 21044806.835 21044805.065 21044805.802
+ 45.800 44.400
+ -2317935.797 3 -1806184.150 3 24492302.832 24492300.515 24492301.412
+ 23.800 20.500
+ 06 1 2 14 2 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16020364.521 7 -12483396.944 6 21511269.702 21511268.439 21511268.686
+ 44.300 36.400
+ -12784015.168 6 -9961572.187 5 22333771.893 22333770.779 22333770.744
+ 38.600 34.900
+ -2422092.620 3 -1887343.798 2 24023318.319 24023316.943 24023317.390
+ 23.400 12.600
+ -9186764.772 5 -7158522.908 4 22871099.262 22871098.267 22871098.974
+ 33.100 28.400
+ -1031309.884 3 -803620.695 2 24428965.939 24428966.473 24428964.730
+ 22.600 17.800
+ -22157859.533 8 -17265860.975 8 20414510.515 20414506.372 20414508.660
+ 48.300 48.700
+ -21730857.388 7 -16933136.373 7 21036231.983 21036230.711 21036231.179
+ 45.700 44.400
+ -2402639.708 3 -1872187.199 3 24476183.860 24476182.412 24476182.586
+ 22.600 21.100
+ 06 1 2 14 2 30.0000000 0 8G03G08G11G13G15G19G27G28
+ -15946238.222 7 -12425636.208 6 21525375.326 21525374.273 21525374.455
+ 44.200 36.100
+ -12876850.873 6 -10033911.692 5 22316105.664 22316104.822 22316104.638
+ 38.400 35.500
+ -2526498.062 3 -1968698.682 2 24003451.698 24003449.976 24003450.143
+ 22.600 16.100
+ -9090824.158 5 -7083764.028 4 22889356.051 22889354.617 22889355.853
+ 33.000 27.600
+ -985508.786 3 -767931.586 2 24437681.897 24437682.072 24437680.611
+ 21.600 17.800
+ -22164024.964 8 -17270665.211 8 20413337.012 20413333.170 20413335.266
+ 48.400 48.800
+ -21775522.486 7 -16967940.356 7 21027732.685 21027731.283 21027731.725
+ 45.500 44.500
+ -2487288.963 3 -1938147.632 3 24460075.231 24460073.848 24460073.954
+ 22.600 20.500
+ 06 1 2 14 3 0.0000000 0 7G03G08G11G13G19G27G28
+ -15871743.550 7 -12367588.446 6 21539551.548 21539550.180 21539550.477
+ 44.400 36.100
+ -12969443.469 6 -10106061.772 5 22298486.287 22298484.735 22298485.037
+ 38.900 34.800
+ -2630855.957 3 -2050016.466 3 23983592.728 23983591.794 23983591.104
+ 22.100 22.600
+ -8994603.932 5 -7008787.263 4 22907666.367 22907664.789 22907665.957
+ 32.400 26.800
+ -22169639.756 8 -17275040.382 8 20412268.614 20412264.714 20412266.803
+ 48.200 48.700
+ -21819792.384 7 -17002436.388 7 21019308.349 21019307.033 21019307.433
+ 45.500 44.500
+ -2571882.785 3 -2004064.859 2 24443978.167 24443975.881 24443977.214
+ 22.600 17.800
+ 06 1 2 14 3 30.0000000 0 7G03G08G11G13G19G27G28
+ -15796883.070 7 -12309255.632 6 21553796.763 21553795.534 21553795.924
+ 44.500 36.000
+ -13061790.428 6 -10178020.470 5 22280912.915 22280911.533 22280911.926
+ 39.300 34.100
+ -2735163.257 3 -2131294.814 3 23963744.126 23963742.351 23963742.327
+ 22.100 22.600
+ -8898107.257 5 -6933595.097 4 22926028.794 22926027.675 22926028.557
+ 31.800 27.400
+ -22174704.352 8 -17278986.828 8 20411304.929 20411300.983 20411303.015
+ 48.200 48.800
+ -21863665.097 7 -17036622.932 7 21010959.584 21010958.265 21010958.746
+ 45.300 44.700
+ -2656421.156 4 -2069938.923 2 24427890.987 24427888.746 24427889.981
+ 24.200 17.800
+ 06 1 2 14 4 0.0000000 0 7G03G08G11G13G19G27G28
+ -15721658.974 7 -12250639.484 5 21568111.602 21568110.329 21568110.560
+ 44.300 35.700
+ -13153888.940 6 -10249785.565 5 22263386.959 22263385.809 22263386.213
+ 39.300 34.400
+ -2839417.331 3 -2212531.681 3 23943904.692 23943903.526 23943903.283
+ 23.400 23.800
+ -8801337.257 5 -6858189.960 4 22944443.993 22944442.643 22944443.738
+ 32.400 27.600
+ -22179219.253 8 -17282504.935 8 20410445.624 20410441.859 20410443.812
+ 48.300 48.800
+ -21907138.907 7 -17070498.643 7 21002687.004 21002685.584 21002686.000
+ 45.400 44.600
+ -2740903.884 4 -2135769.625 2 24411814.175 24411812.286 24411813.152
+ 26.800 16.100
+ 06 1 2 14 4 30.0000000 0 7G03G08G11G13G19G27G28
+ -15646073.777 7 -12191741.955 5 21582494.919 21582493.609 21582493.965
+ 44.200 35.400
+ -13245736.990 6 -10321355.491 5 22245909.339 22245908.073 22245908.365
+ 39.800 35.400
+ -2943615.574 3 -2293725.042 3 23924076.433 23924075.344 23924074.891
+ 22.600 23.000
+ -8704297.251 5 -6782574.425 4 22962910.123 22962908.537 22962909.743
+ 32.000 27.100
+ -22183184.918 8 -17285595.079 8 20409691.108 20409687.230 20409689.335
+ 48.500 48.900
+ -21950211.844 7 -17104061.986 7 20994490.339 20994489.062 20994489.396
+ 45.500 44.700
+ -2825330.313 4 -2201556.482 3 24395748.738 24395746.679 24395747.463
+ 26.800 19.900
+ 06 1 2 14 5 0.0000000 0 7G03G08G11G13G19G27G28
+ -15570129.758 7 -12132564.821 5 21596946.483 21596945.461 21596945.543
+ 43.800 35.100
+ -13337331.980 6 -10392728.221 6 22228479.094 22228478.082 22228478.145
+ 39.800 36.000
+ -3047755.274 4 -2374872.831 3 23904260.037 23904257.827 23904258.430
+ 25.300 19.300
+ -8606990.278 5 -6706750.865 4 22981426.774 22981425.545 22981426.512
+ 31.100 26.800
+ -22186602.016 8 -17288257.759 8 20409040.797 20409037.019 20409039.086
+ 48.700 48.800
+ -21992881.980 7 -17137311.455 7 20986370.581 20986369.199 20986369.672
+ 45.600 44.700
+ -2909700.210 4 -2267299.254 3 24379693.224 24379691.707 24379692.588
+ 24.600 21.100
+ 06 1 2 14 5 30.0000000 0 7G03G08G11G13G19G27G28
+ -15493829.504 7 -12073110.107 5 21611466.063 21611464.867 21611465.102
+ 43.700 35.100
+ -13428671.169 6 -10463901.621 5 22211097.936 22211096.927 22211096.947
+ 40.000 35.700
+ -3151833.199 4 -2455972.462 3 23884454.301 23884452.546 23884452.692
+ 25.600 19.300
+ -8509419.605 5 -6630721.816 4 22999993.882 22999992.447 22999993.694
+ 30.800 25.300
+ -22189470.739 8 -17290493.135 8 20408495.112 20408491.073 20408493.215
+ 48.700 48.800
+ -22035147.349 7 -17170245.521 7 20978327.611 20978326.431 20978326.790
+ 45.600 44.800
+ -2994013.228 3 -2332997.675 4 24363649.064 24363647.316 24363647.954
+ 23.000 24.200
+ 06 1 2 14 6 0.0000000 0 7G03G08G11G13G19G27G28
+ -15417175.440 7 -12013379.701 5 21626052.996 21626051.793 21626051.964
+ 43.600 34.900
+ -13519752.086 6 -10534873.777 5 22193765.634 22193764.319 22193764.684
+ 39.800 34.800
+ -3255846.763 4 -2537021.943 2 23864660.137 23864659.152 23864659.193
+ 25.900 17.000
+ -8411588.448 5 -6554489.791 4 23018610.877 23018609.309 23018610.473
+ 31.000 25.300
+ -22191791.652 8 -17292301.652 8 20408053.334 20408049.416 20408051.584
+ 48.800 48.800
+ -22077006.022 7 -17202862.687 7 20970362.302 20970361.006 20970361.409
+ 45.500 44.900
+ -3078268.909 3 -2398651.423 3 24347615.597 24347614.191 24347614.630
+ 21.100 23.000
+ 06 1 2 14 6 30.0000000 0 7G03G08G11G13G19G27G28
+ -15340169.842 7 -11953375.371 5 21640706.195 21640705.343 21640705.468
+ 43.400 35.200
+ -13610572.035 6 -10605642.583 5 22176483.289 22176482.082 22176482.251
+ 39.700 35.200
+ -3359793.304 4 -2618019.184 3 23844879.817 23844879.068 23844879.064
+ 26.500 19.900
+ -8313499.943 5 -6478057.228 4 23037276.656 23037275.054 23037276.275
+ 31.600 26.200
+ -22193565.588 8 -17293683.947 8 20407715.860 20407711.801 20407714.058
+ 48.900 48.700
+ -22118456.284 7 -17235161.607 7 20962474.515 20962473.178 20962473.631
+ 45.600 44.700
+ -3162467.229 3 -2464260.459 3 24331593.225 24331591.600 24331591.946
+ 21.600 23.800
+ 06 1 2 14 7 0.0000000 0 7G03G08G11G13G19G27G28
+ -15262815.257 7 -11893099.100 5 21655426.772 21655425.472 21655425.725
+ 43.200 34.800
+ -13701128.938 6 -10676206.410 5 22159251.437 22159249.512 22159250.072
+ 39.800 34.900
+ -3463669.846 4 -2698961.897 3 23825111.522 23825111.916 23825111.486
+ 25.300 19.300
+ -8215157.295 5 -6401426.642 4 23055990.537 23055989.078 23055990.183
+ 30.400 25.900
+ -22194792.832 8 -17294640.253 8 20407482.345 20407478.287 20407480.540
+ 48.900 48.800
+ -22159496.503 7 -17267141.015 7 20954665.008 20954663.474 20954664.048
+ 45.500 44.900
+ -3246607.382 4 -2529824.197 3 24315582.248 24315580.724 24315581.330
+ 25.300 21.600
+ 06 1 2 14 7 30.0000000 0 7G03G08G11G13G19G27G28
+ -15185114.069 7 -11832552.755 5 21670212.659 21670211.568 21670211.652
+ 43.100 35.400
+ -13791419.950 6 -10746563.060 5 22142068.832 22142067.928 22142068.095
+ 40.500 35.700
+ -3567473.439 4 -2779847.735 3 23805358.232 23805358.207 23805357.996
+ 24.900 19.900
+ -8116563.524 5 -6324600.388 4 23074751.797 23074750.906 23074751.617
+ 30.100 25.600
+ -22195474.379 8 -17295171.336 8 20407352.796 20407348.679 20407350.936
+ 48.900 48.900
+ -22200124.957 7 -17298799.566 7 20946933.615 20946932.209 20946932.704
+ 45.500 44.800
+ -3330689.163 4 -2595342.463 3 24299581.700 24299579.981 24299580.637
+ 25.900 19.900
+ 06 1 2 14 8 0.0000000 0 7G03G08G11G13G19G27G28
+ -15107068.618 7 -11771738.159 5 21685064.127 21685063.056 21685063.291
+ 43.200 35.300
+ -13881442.315 6 -10816710.363 6 22124938.580 22124937.499 22124937.580
+ 40.900 36.100
+ -3671201.326 3 -2860674.560 3 23785619.176 23785619.497 23785619.241
+ 23.800 19.900
+ -8017721.963 5 -6247581.040 4 23093561.809 23093559.727 23093561.328
+ 31.600 24.200
+ -22195610.526 8 -17295277.438 8 20407326.850 20407322.789 20407325.012
+ 48.900 48.800
+ -22240339.527 7 -17330135.605 7 20939281.211 20939279.756 20939280.239
+ 45.300 45.100
+ -3414712.223 4 -2660814.996 3 24283593.448 24283590.965 24283592.380
+ 26.800 19.900
+ 06 1 2 14 8 30.0000000 0 7G03G08G11G13G19G27G28
+ -15028681.381 7 -11710657.229 5 21699980.926 21699979.921 21699979.892
+ 42.800 35.100
+ -13971193.916 6 -10886646.683 5 22107859.031 22107858.098 22107858.232
+ 40.600 35.700
+ -3774850.756 4 -2941440.304 3 23765894.648 23765895.399 23765895.211
+ 25.600 18.600
+ -7918635.805 5 -6170371.089 4 23112416.986 23112415.323 23112416.709
+ 31.300 25.900
+ -22195202.079 8 -17294959.171 8 20407404.521 20407400.487 20407402.753
+ 49.100 48.800
+ -22280138.190 7 -17361147.560 7 20931707.762 20931706.297 20931706.812
+ 45.500 45.100
+ -3498676.186 4 -2726241.485 3 24267614.918 24267613.401 24267614.023
+ 25.900 19.300
+ 06 1 2 14 9 0.0000000 0 7G03G08G11G13G19G27G28
+ -14949954.771 7 -11649311.860 5 21714962.245 21714960.860 21714961.257
+ 43.100 34.600
+ -14060672.042 6 -10956369.904 5 22090831.972 22090830.903 22090831.024
+ 40.700 35.200
+ -3878419.204 4 -3022142.891 3 23746187.170 23746187.055 23746186.972
+ 27.400 21.600
+ -7819308.168 4 -6092972.975 3 23131318.340 23131316.516 23131318.027
+ 29.500 23.800
+ -22194249.967 8 -17294217.273 8 20407585.750 20407581.583 20407583.955
+ 49.100 48.700
+ -22319519.306 7 -17391834.161 7 20924213.620 20924212.253 20924212.728
+ 45.400 45.000
+ -3582580.728 4 -2791621.654 3 24251648.901 24251646.225 24251647.835
+ 25.900 21.600
+ 06 1 2 14 9 30.0000000 0 7G03G08G11G13G19G27G28
+ -14870891.123 7 -11587703.864 5 21730007.803 21730006.329 21730006.740
+ 43.300 34.900
+ -14149874.012 6 -11025877.946 5 22073857.684 22073856.143 22073856.670
+ 40.700 35.400
+ -3981903.336 4 -3102779.784 3 23726494.759 23726494.273 23726494.247
+ 25.900 21.100
+ -7719742.227 5 -6015389.172 4 23150264.993 23150263.601 23150264.782
+ 30.100 24.600
+ -22192754.314 8 -17293051.841 8 20407870.447 20407866.189 20407868.623
+ 49.100 48.600
+ -22358481.226 7 -17422194.110 7 20916799.510 20916798.087 20916798.497
+ 45.100 45.000
+ -3666425.309 4 -2856955.082 3 24235693.146 24235691.783 24235692.510
+ 26.800 23.000
+ 06 1 2 14 10 0.0000000 0 7G03G08G11G13G19G27G28
+ -14791492.893 7 -11525835.151 5 21745116.505 21745115.359 21745115.651
+ 43.200 34.100
+ -14238797.658 6 -11095169.115 5 22056935.829 22056934.460 22056934.827
+ 40.700 35.400
+ -4085300.497 3 -3183348.945 3 23706819.826 23706818.804 23706818.427
+ 23.000 20.500
+ -7619941.434 4 -5937622.397 4 23169256.030 23169255.381 23169255.801
+ 29.000 26.200
+ -22190716.100 8 -17291463.633 8 20408258.192 20408254.057 20408256.373
+ 48.900 48.700
+ -22397021.708 7 -17452225.668 7 20909465.409 20909464.140 20909464.497
+ 45.300 45.200
+ -3750209.788 4 -2922241.696 3 24219749.679 24219747.958 24219748.655
+ 25.900 22.600
+ 06 1 2 14 10 30.0000000 0 7G03G08G11G13G19G27G28
+ -14711762.578 7 -11463707.667 5 21760288.651 21760287.565 21760287.715
+ 43.100 34.300
+ -14327440.361 6 -11164241.359 6 22040067.547 22040066.579 22040066.623
+ 40.500 36.300
+ -4188608.127 4 -3263848.337 3 23687162.236 23687159.660 23687160.411
+ 25.600 19.300
+ -7519908.897 5 -5859675.016 4 23188292.113 23188290.998 23188291.715
+ 30.200 25.900
+ -22188135.709 8 -17289452.951 8 20408749.103 20408745.146 20408747.309
+ 49.100 48.600
+ -22435139.070 7 -17481927.523 7 20902212.065 20902210.621 20902211.044
+ 45.300 45.100
+ -3833933.784 4 -2987481.198 3 24203817.637 24203815.357 24203816.614
+ 26.500 22.600
+ 06 1 2 14 11 0.0000000 0 7G03G08G11G13G19G27G28
+ -14631702.443 7 -11401323.185 5 21775523.827 21775522.554 21775522.896
+ 43.400 34.500
+ -14415799.354 6 -11233092.529 6 22023253.779 22023252.709 22023252.719
+ 41.000 36.900
+ -4291822.998 4 -3344275.429 2 23667520.783 23667517.881 23667519.127
+ 25.600 17.800
+ -7419647.972 4 -5781549.669 4 23207371.041 23207370.021 23207370.857
+ 29.900 25.900
+ -22185014.246 8 -17287020.650 8 20409343.048 20409339.138 20409341.387
+ 49.100 48.700
+ -22472831.723 7 -17511298.434 7 20895039.323 20895037.908 20895038.388
+ 45.300 45.100
+ -3917596.846 4 -3052673.230 3 24187896.827 24187894.893 24187896.036
+ 25.300 19.900
+ 06 1 2 14 11 30.0000000 0 7G03G08G11G13G19G27G28
+ -14551315.194 7 -11338683.812 5 21790820.872 21790819.972 21790819.891
+ 42.800 34.400
+ -14503871.771 6 -11301720.389 6 22006494.330 22006492.855 22006493.300
+ 41.800 36.400
+ -4394942.210 4 -3424628.000 3 23647895.947 23647895.903 23647895.513
+ 26.800 18.600
+ -7319161.408 4 -5703248.517 4 23226492.862 23226491.988 23226492.632
+ 29.500 24.200
+ -22181352.310 8 -17284167.205 8 20410040.266 20410035.978 20410038.330
+ 49.000 48.600
+ -22510098.084 7 -17540337.175 7 20887947.858 20887946.356 20887946.824
+ 45.200 45.200
+ -4001198.461 4 -3117817.347 3 24171987.852 24171985.986 24171986.989
+ 24.600 20.500
+ 06 1 2 14 12 0.0000000 0 7G03G08G11G13G19G27G28
+ -14470602.893 7 -11275791.151 5 21806180.066 21806178.977 21806179.118
+ 42.700 34.400
+ -14591655.568 6 -11370123.362 6 21989789.352 21989788.213 21989788.457
+ 41.800 36.200
+ -4497963.291 4 -3504904.119 3 23628291.753 23628291.331 23628291.318
+ 25.900 19.900
+ -7218452.580 4 -5624774.159 4 23245657.155 23245656.014 23245656.818
+ 27.600 24.200
+ -22177150.716 8 -17280893.248 8 20410839.553 20410835.544 20410837.849
+ 49.100 48.600
+ -22546936.149 7 -17569042.175 7 20880937.677 20880936.410 20880936.740
+ 45.200 45.300
+ -4084738.338 4 -3182913.373 3 24156091.069 24156088.852 24156090.075
+ 25.600 19.900
+ 06 1 2 14 12 30.0000000 0 7G03G08G11G13G19G27G28
+ -14389568.158 7 -11212647.253 5 21821600.213 21821599.535 21821599.305
+ 42.300 34.500
+ -14679148.012 6 -11438299.301 6 21973140.053 21973139.050 21973139.083
+ 41.300 36.500
+ -4600883.140 4 -3585101.341 3 23608706.316 23608706.454 23608706.130
+ 24.600 20.500
+ -7117524.725 5 -5546129.129 4 23264863.650 23264862.394 23264863.422
+ 30.400 24.600
+ -22172410.288 8 -17277199.417 8 20411741.538 20411737.610 20411739.823
+ 49.000 48.700
+ -22583343.915 7 -17597411.879 7 20874009.372 20874008.202 20874008.451
+ 45.100 45.300
+ -4168215.999 4 -3247960.914 3 24140205.583 24140203.982 24140204.627
+ 26.500 22.100
+ 06 1 2 14 13 0.0000000 0 7G03G08G11G13G19G27G28
+ -14308213.327 7 -11149253.919 5 21837081.926 21837080.747 21837080.868
+ 42.400 34.500
+ -14766346.277 6 -11506246.013 6 21956546.575 21956545.593 21956545.813
+ 41.600 36.200
+ -4703698.825 4 -3665217.390 3 23589141.444 23589141.635 23589141.130
+ 27.900 22.600
+ -7016381.104 5 -5467315.993 4 23284110.813 23284109.453 23284110.677
+ 31.000 25.900
+ -22167131.779 8 -17273086.306 8 20412746.111 20412742.119 20412744.242
+ 48.900 48.700
+ -22619319.706 7 -17625444.971 7 20867163.497 20867162.235 20867162.530
+ 44.700 45.200
+ -4251631.357 4 -3312959.900 3 24124332.363 24124330.343 24124331.192
+ 26.500 22.100
+ 06 1 2 14 13 30.0000000 0 7G03G08G11G13G19G27G28
+ -14226540.959 7 -11085613.156 5 21852623.224 21852622.399 21852622.326
+ 42.000 33.900
+ -14853247.659 7 -11573961.385 6 21940010.298 21940008.861 21940009.236
+ 42.000 36.100
+ -4806407.577 4 -3745250.126 3 23569596.980 23569596.186 23569596.144
+ 26.200 23.400
+ -6915024.772 4 -5388337.092 4 23303398.374 23303397.173 23303398.035
+ 29.900 24.600
+ -22161315.933 8 -17268554.491 8 20413852.839 20413848.822 20413850.918
+ 49.000 48.700
+ -22654861.470 7 -17653139.873 7 20860400.373 20860398.895 20860399.390
+ 45.200 45.400
+ -4334983.870 4 -3377909.946 3 24108470.768 24108469.107 24108469.956
+ 27.900 22.100
+ 06 1 2 14 14 0.0000000 0 7G03G08G11G13G19G27G28
+ -14144553.379 7 -11021726.774 5 21868225.377 21868224.141 21868224.322
+ 42.400 33.500
+ -14939850.019 7 -11641443.756 6 21923530.173 21923529.030 21923529.175
+ 42.000 36.500
+ -4909006.570 4 -3825197.344 4 23550073.580 23550072.385 23550072.293
+ 26.500 24.200
+ -6813459.244 4 -5309195.178 4 23322725.268 23322724.196 23322724.941
+ 29.000 24.900
+ -22154963.743 8 -17263604.743 8 20415061.576 20415057.633 20415059.786
+ 49.000 48.600
+ -22689968.034 7 -17680495.649 7 20853719.726 20853718.297 20853718.722
+ 45.100 45.200
+ -4418273.201 4 -3442810.750 3 24092621.583 24092619.966 24092620.583
+ 27.600 23.400
+ 06 1 2 14 14 30.0000000 0 7G03G08G11G13G19G27G28
+ -14062252.862 7 -10957596.535 5 21883886.398 21883885.459 21883885.520
+ 42.000 33.800
+ -15026150.788 6 -11708691.116 6 21907107.562 21907106.276 21907106.591
+ 41.400 36.100
+ -5011493.138 4 -3905056.969 3 23530571.493 23530570.018 23530570.149
+ 28.400 23.400
+ -6711687.845 4 -5229892.857 3 23342091.967 23342090.803 23342091.637
+ 27.100 23.000
+ -22148076.042 8 -17258237.718 8 20416372.264 20416368.278 20416370.544
+ 49.200 48.700
+ -22724637.855 7 -17707511.113 7 20847122.209 20847120.785 20847121.200
+ 45.200 45.300
+ -4501498.760 4 -3507661.844 3 24076783.774 24076782.690 24076782.908
+ 26.200 23.800
+ 06 1 2 14 15 0.0000000 0 7G03G08G11G13G19G27G28
+ -13979641.989 7 -10893224.464 5 21899607.142 21899605.832 21899606.113
+ 42.100 33.500
+ -15112147.550 6 -11775701.590 6 21890743.158 21890741.670 21890742.057
+ 41.400 36.100
+ -5113864.293 4 -3984826.650 3 23511090.805 23511089.122 23511089.483
+ 27.900 21.600
+ -6609713.066 4 -5150432.056 3 23361496.991 23361495.794 23361496.460
+ 28.100 23.800
+ -22140653.477 8 -17252453.913 8 20417784.789 20417780.806 20417782.978
+ 49.100 48.600
+ -22758868.915 7 -17734184.677 7 20840608.327 20840606.906 20840607.303
+ 45.000 45.200
+ -4584660.109 4 -3572462.916 3 24060958.885 24060957.600 24060957.851
+ 26.200 21.600
+ 06 1 2 14 15 30.0000000 0 7G03G08G11G13G19G27G28
+ -13896723.153 6 -10828612.423 5 21915385.767 21915384.689 21915384.740
+ 41.200 33.600
+ -15197837.290 7 -11842472.820 6 21874436.937 21874435.570 21874436.060
+ 42.300 36.600
+ -5216116.799 4 -4064503.916 3 23491632.464 23491631.367 23491631.127
+ 27.100 23.400
+ -6507538.558 4 -5070815.628 3 23380939.875 23380939.237 23380939.758
+ 28.600 23.800
+ -22132697.448 8 -17246254.423 8 20419298.960 20419294.805 20419297.052
+ 49.100 48.700
+ -22792659.104 7 -17760514.708 7 20834178.264 20834176.935 20834177.385
+ 45.300 45.400
+ -4667757.264 4 -3637213.977 3 24045146.360 24045144.312 24045145.207
+ 27.100 23.400
+ 06 1 2 14 16 0.0000000 0 7G03G08G11G13G19G27G28
+ -13813498.770 6 -10763762.292 5 21931222.980 21931221.916 21931221.894
+ 41.600 32.800
+ -15283217.545 7 -11909002.902 6 21858189.725 21858188.311 21858188.625
+ 42.400 36.600
+ -5318248.189 4 -4144086.780 3 23472197.586 23472196.365 23472196.889
+ 29.000 22.600
+ -6405167.335 4 -4991045.913 3 23400420.998 23400419.971 23400420.667
+ 27.900 22.100
+ -22124208.355 8 -17239639.561 8 20420914.088 20420910.267 20420912.382
+ 49.100 48.600
+ -22826007.232 7 -17786500.276 7 20827832.400 20827831.038 20827831.431
+ 45.300 45.600
+ -4750789.507 4 -3701914.453 3 24029345.960 24029343.860 24029345.161
+ 27.900 23.000
+ 06 1 2 14 16 30.0000000 0 7G03G08G11G13G19G27G28
+ -13729971.111 6 -10698675.846 5 21947117.564 21947116.599 21947116.589
+ 41.300 32.800
+ -15368286.068 7 -11975290.072 6 21842001.523 21842000.378 21842000.629
+ 42.500 37.000
+ -5420255.625 4 -4223573.067 3 23452784.820 23452784.764 23452784.853
+ 28.800 23.000
+ -6302602.865 4 -4911125.602 3 23419938.522 23419937.061 23419938.009
+ 26.800 22.600
+ -22115187.233 8 -17232610.130 8 20422630.800 20422626.857 20422628.981
+ 48.900 48.400
+ -22858911.711 7 -17812140.149 7 20821570.856 20821569.485 20821570.012
+ 45.500 45.400
+ -4833756.365 4 -3766563.983 4 24013558.106 24013556.111 24013556.886
+ 26.200 24.900
+ 06 1 2 14 17 0.0000000 0 7G03G08G11G13G19G27G28
+ -13646142.654 6 -10633355.004 5 21963070.048 21963068.644 21963068.825
+ 41.300 33.000
+ -15453039.697 7 -12041331.865 6 21825873.549 21825872.330 21825872.511
+ 42.400 37.100
+ -5522136.013 5 -4302960.366 3 23433398.168 23433397.066 23433398.120
+ 30.800 18.600
+ -6199848.137 4 -4831057.040 3 23439491.654 23439490.951 23439491.788
+ 28.400 22.600
+ -22105635.165 8 -17225166.976 8 20424448.534 20424444.601 20424446.784
+ 48.900 48.600
+ -22891370.648 7 -17837432.838 7 20815394.453 20815392.739 20815393.446
+ 45.600 45.500
+ -4916658.027 4 -3831162.669 4 23997782.607 23997780.311 23997781.576
+ 26.500 26.500
+ 06 1 2 14 17 30.0000000 0 7G03G08G11G13G19G27G28
+ -13562015.903 6 -10567801.726 5 21979078.132 21979077.607 21979077.344
+ 41.100 32.800
+ -15537475.895 7 -12107126.321 6 21809805.926 21809804.623 21809804.961
+ 43.100 37.200
+ -5623886.325 4 -4382246.289 3 23414035.243 23414034.130 23414034.917
+ 27.900 18.600
+ -6096906.447 4 -4750842.808 3 23459081.425 23459079.991 23459081.105
+ 28.100 22.100
+ -22095553.119 8 -17217310.853 8 20426367.168 20426363.143 20426365.359
+ 49.000 48.400
+ -22923382.391 7 -17862377.070 7 20809302.477 20809301.224 20809301.614
+ 45.600 45.600
+ -4999493.479 4 -3895709.757 4 23982019.133 23982017.482 23982018.359
+ 28.100 26.200
+ 06 1 2 14 18 0.0000000 0 7G03G08G11G13G19G27G28
+ -13477593.117 6 -10502017.783 5 21995143.853 21995142.604 21995142.917
+ 41.700 32.700
+ -15621592.088 7 -12172671.417 6 21793798.627 21793797.971 21793797.783
+ 42.000 37.700
+ -5725504.028 4 -4461428.894 3 23394699.475 23394697.268 23394697.940
+ 26.200 21.100
+ -5993781.012 4 -4670485.389 4 23478705.784 23478704.332 23478705.244
+ 29.200 24.600
+ -22084942.043 8 -17209042.500 8 20428386.402 20428382.377 20428384.585
+ 49.100 48.400
+ -22954945.367 7 -17886971.608 7 20803296.339 20803295.019 20803295.368
+ 45.400 45.600
+ -5082262.212 4 -3960204.860 4 23966268.808 23966267.129 23966267.757
+ 28.600 24.900
+ 06 1 2 14 18 30.0000000 0 7G03G08G11G13G19G27G28
+ -13392876.575 6 -10436004.930 5 22011264.900 22011263.804 22011263.829
+ 41.300 32.700
+ -15705385.909 7 -12237965.297 6 21777853.376 21777852.576 21777852.391
+ 42.400 37.700
+ -5826986.063 4 -4540505.719 3 23375388.756 23375386.649 23375387.315
+ 28.800 21.100
+ -5890474.887 4 -4589987.173 4 23498364.343 23498363.149 23498363.975
+ 29.200 25.600
+ -22073802.743 8 -17200362.544 8 20430506.159 20430502.125 20430504.374
+ 49.200 48.400
+ -22986057.371 7 -17911214.742 7 20797375.987 20797374.517 20797375.035
+ 45.600 45.600
+ -5164964.053 4 -4024647.868 3 23950531.006 23950529.195 23950530.215
+ 28.800 23.000
+ 06 1 2 14 19 0.0000000 0 7G03G08G11G13G19G27G28
+ -13307868.547 6 -10369764.947 5 22027441.361 22027440.341 22027440.321
+ 41.700 32.700
+ -15788854.590 7 -12303005.843 6 21761969.790 21761968.917 21761968.873
+ 42.600 37.700
+ -5928329.488 4 -4619474.622 3 23356103.385 23356101.316 23356102.196
+ 29.000 23.800
+ -5786991.424 4 -4509350.771 3 23518055.946 23518055.409 23518055.569
+ 27.600 23.400
+ -22062136.420 8 -17191271.917 8 20432726.204 20432722.229 20432724.448
+ 49.400 48.500
+ -23016717.032 7 -17935105.403 7 20791541.655 20791540.222 20791540.684
+ 45.400 45.500
+ -5247598.736 4 -4089038.552 3 23934806.196 23934804.176 23934805.423
+ 29.500 22.600
+ 06 1 2 14 19 30.0000000 0 7G03G08G11G13G19G27G28
+ -13222571.666 6 -10303299.885 5 22043672.820 22043671.748 22043671.779
+ 40.900 33.000
+ -15871995.411 7 -12367790.906 6 21746148.953 21746147.743 21746148.025
+ 43.100 37.600
+ -6029531.591 5 -4698333.402 3 23336843.030 23336843.352 23336843.437
+ 30.200 23.000
+ -5683333.932 4 -4428578.776 3 23537781.798 23537780.746 23537781.304
+ 25.600 23.400
+ -22049944.126 8 -17181771.449 8 20435046.499 20435042.285 20435044.620
+ 49.200 48.200
+ -23046922.923 7 -17958642.473 7 20785793.499 20785792.288 20785792.548
+ 45.400 45.600
+ -5330165.819 4 -4153376.541 4 23919094.546 23919092.423 23919093.624
+ 28.800 24.900
+ 06 1 2 14 20 0.0000000 0 7G03G08G11G13G19G27G28
+ -13136988.378 6 -10236611.652 5 22059958.775 22059957.888 22059957.945
+ 41.400 32.800
+ -15954806.122 7 -12432318.748 6 21730390.680 21730389.327 21730389.637
+ 43.000 37.600
+ -6130589.495 4 -4777079.759 3 23317612.421 23317611.764 23317612.512
+ 29.000 22.100
+ -5579505.385 4 -4347673.495 3 23557539.142 23557538.599 23557538.788
+ 26.500 22.100
+ -22037226.757 8 -17171861.827 8 20437466.517 20437462.391 20437464.691
+ 49.300 48.300
+ -23076673.385 7 -17981824.661 7 20780132.336 20780130.949 20780131.350
+ 45.500 45.700
+ -5412664.617 4 -4217661.314 4 23903395.760 23903393.403 23903394.765
+ 27.900 25.300
+ 06 1 2 14 20 30.0000000 0 7G03G08G11G13G19G27G28
+ -13051120.983 6 -10169702.038 5 22076298.698 22076297.831 22076297.772
+ 41.000 32.600
+ -16037283.845 7 -12496587.117 6 21714695.651 21714694.517 21714694.594
+ 42.900 37.800
+ -6231499.968 4 -4855711.255 3 23298409.592 23298409.663 23298409.524
+ 28.400 23.400
+ -5475508.820 4 -4266637.281 3 23577329.504 23577328.063 23577329.237
+ 25.900 21.100
+ -22023985.418 8 -17161543.921 8 20439986.342 20439982.191 20439984.513
+ 49.500 48.300
+ -23105966.661 7 -18004650.607 7 20774558.078 20774556.572 20774557.118
+ 45.500 45.500
+ -5495095.027 4 -4281892.790 3 23887708.986 23887707.090 23887708.204
+ 26.500 23.400
+ 06 1 2 14 21 0.0000000 0 7G03G08G11G13G19G27G28
+ -12964971.696 6 -10102572.760 5 22092692.678 22092691.518 22092691.713
+ 41.000 32.400
+ -16119426.041 7 -12560594.027 6 21699064.206 21699063.498 21699063.227
+ 42.800 38.100
+ -6332260.177 4 -4934225.669 4 23279236.797 23279235.713 23279235.882
+ 28.800 24.600
+ -5371347.553 4 -4185472.725 3 23597150.712 23597149.900 23597150.611
+ 27.900 23.000
+ -22010221.303 8 -17150818.651 8 20442605.626 20442601.501 20442603.778
+ 49.600 48.300
+ -23134801.482 7 -18027119.313 7 20769071.144 20769069.464 20769070.099
+ 45.500 45.500
+ -5577456.423 4 -4346070.498 3 23872036.725 23872034.615 23872035.715
+ 28.100 23.800
+ 06 1 2 14 21 30.0000000 0 7G03G08G11G13G19G27G28
+ -12878543.188 6 -10035225.915 5 22109139.591 22109138.496 22109138.458
+ 40.400 32.600
+ -16201230.403 7 -12624337.688 6 21683497.393 21683496.488 21683496.472
+ 42.800 37.700
+ -6432867.684 4 -5012621.080 4 23260092.990 23260090.377 23260091.632
+ 28.100 25.600
+ -5267025.008 4 -4104182.475 3 23617002.293 23617001.925 23617002.156
+ 26.200 21.100
+ -21995935.340 8 -17139686.744 8 20445323.966 20445319.951 20445322.197
+ 49.500 48.400
+ -23163175.788 7 -18049229.178 7 20763671.507 20763670.120 20763670.572
+ 45.500 45.600
+ -5659748.637 4 -4410194.295 3 23856377.136 23856374.952 23856376.138
+ 29.200 23.000
+ 06 1 2 14 22 0.0000000 0 7G03G08G11G13G19G27G28
+ -12791837.778 6 -9967663.299 5 22125638.701 22125638.241 22125637.901
+ 40.600 32.700
+ -16282693.808 7 -12687815.677 6 21667995.522 21667994.370 21667994.663
+ 43.400 38.100
+ -6533319.239 4 -5090894.986 4 23240977.114 23240975.223 23240975.985
+ 29.700 25.300
+ -5162544.160 4 -4022768.903 3 23636884.774 23636883.490 23636884.525
+ 26.500 18.600
+ -21981129.002 8 -17128149.352 8 20448141.562 20448137.486 20448139.769
+ 49.500 48.200
+ -23191088.142 7 -18070979.076 7 20758360.020 20758358.654 20758359.036
+ 45.300 45.600
+ -5741971.039 4 -4474263.709 4 23840730.329 23840728.522 23840729.463
+ 29.900 24.200
+ 06 1 2 14 22 30.0000000 0 7G03G08G11G13G19G27G28
+ -12704857.920 6 -9899886.827 5 22142190.816 22142189.617 22142189.723
+ 39.800 32.300
+ -16363813.520 7 -12751025.849 6 21652559.002 21652558.031 21652558.005
+ 43.300 38.400
+ -6633611.969 5 -5169045.110 4 23221891.445 23221890.045 23221890.866
+ 31.500 24.200
+ -5057908.293 4 -3941234.531 3 23656796.539 23656795.545 23656796.289
+ 26.500 21.600
+ -21965802.951 8 -17116206.991 8 20451057.917 20451053.931 20451056.171
+ 49.500 48.300
+ -23218537.094 7 -18092367.884 7 20753136.536 20753135.275 20753135.602
+ 45.200 45.700
+ -5824123.038 4 -4538278.257 4 23825097.879 23825095.837 23825096.747
+ 29.700 25.600
+ 06 1 2 14 23 0.0000000 0 7G03G08G11G13G19G27G28
+ -12617605.697 6 -9831898.139 5 22158794.398 22158793.722 22158793.376
+ 40.400 32.700
+ -16444587.315 7 -12813966.481 6 21637188.454 21637187.057 21637187.419
+ 43.700 38.200
+ -6733742.929 5 -5247069.192 3 23202836.663 23202836.170 23202836.359
+ 30.400 23.800
+ -4953120.662 4 -3859581.897 3 23676736.492 23676736.401 23676736.195
+ 26.200 22.100
+ -21949958.350 8 -17103860.563 8 20454073.006 20454069.172 20454071.219
+ 49.300 48.200
+ -23245521.051 7 -18113394.355 7 20748001.720 20748000.379 20748000.763
+ 45.300 45.700
+ -5906204.557 4 -4602237.866 4 23809477.477 23809476.085 23809476.661
+ 29.200 25.900
+ 06 1 2 14 23 30.0000000 0 7G03G08G11G13G19G27G28
+ -12530083.642 6 -9763699.162 5 22175449.004 22175448.546 22175448.172
+ 40.300 32.000
+ -16525012.482 7 -12876635.455 6 21621883.929 21621882.824 21621882.961
+ 43.800 38.500
+ -6833709.412 4 -5324965.113 4 23183813.332 23183812.844 23183813.133
+ 29.200 24.600
+ -4848184.233 4 -3777813.321 3 23696705.929 23696704.748 23696705.530
+ 27.100 21.600
+ -21933596.358 8 -17091110.975 8 20457186.748 20457182.811 20457184.922
+ 49.500 48.200
+ -23272038.602 7 -18134057.394 7 20742955.553 20742954.320 20742954.633
+ 45.300 45.800
+ -5988214.926 4 -4666142.043 4 23793871.387 23793869.700 23793870.352
+ 28.600 25.600
+ 06 1 2 14 24 0.0000000 0 7G03G08G11G13G19G27G28
+ -12442294.055 6 -9695291.738 5 22192155.071 22192154.295 22192154.126
+ 40.200 32.100
+ -16605086.185 7 -12939030.546 6 21606646.185 21606645.327 21606645.335
+ 43.800 38.200
+ -6933508.425 4 -5402730.535 3 23164823.000 23164821.598 23164822.247
+ 29.900 22.100
+ -4743102.440 4 -3695931.463 3 23716702.036 23716701.866 23716701.779
+ 26.800 23.000
+ -21916718.558 8 -17077959.459 8 20460398.568 20460394.625 20460396.718
+ 49.600 48.400
+ -23298088.126 7 -18154355.736 7 20737998.420 20737997.290 20737997.527
+ 45.400 45.800
+ -6070153.843 5 -4729990.542 4 23778279.406 23778277.411 23778278.383
+ 30.100 25.300
+ 06 1 2 14 24 30.0000000 0 7G03G08G11G13G19G27G28
+ -12354239.319 6 -9626677.688 5 22208911.212 22208910.252 22208910.289
+ 40.000 31.500
+ -16684805.876 7 -13001149.796 6 21591475.802 21591474.825 21591474.969
+ 43.600 37.900
+ -7033137.029 4 -5480363.199 3 23145865.444 23145862.499 23145863.840
+ 29.900 22.600
+ -4637878.242 3 -3613938.665 3 23736725.996 23736724.933 23736725.364
+ 23.400 20.500
+ -21899325.988 8 -17064406.824 8 20463708.229 20463704.281 20463706.483
+ 49.600 48.400
+ -23323667.922 7 -18174288.058 7 20733130.974 20733129.620 20733130.018
+ 45.400 45.600
+ -6152020.672 5 -4793782.894 4 23762701.211 23762698.658 23762700.186
+ 30.800 25.600
+ 06 1 2 14 25 0.0000000 0 7G03G08G11G13G19G27G28
+ -12265921.894 6 -9557858.961 5 22225717.832 22225716.741 22225716.801
+ 40.200 30.600
+ -16764169.258 7 -13062991.394 6 21576373.891 21576372.816 21576372.896
+ 43.800 38.800
+ -7132592.280 5 -5557860.756 4 23126938.744 23126937.376 23126937.818
+ 31.300 24.600
+ -4532514.863 4 -3531837.423 2 23756775.603 23756774.492 23756775.324
+ 25.300 17.000
+ -21881419.523 8 -17050453.751 8 20467115.655 20467111.802 20467113.869
+ 49.400 48.300
+ -23348776.882 7 -18193853.499 7 20728352.751 20728351.493 20728351.906
+ 45.500 45.700
+ -6233815.211 4 -4857518.895 4 23747135.803 23747133.698 23747134.847
+ 28.600 25.900
+ 06 1 2 14 25 30.0000000 0 7G03G08G11G13G19G27G28
+ -12177344.010 6 -9488837.260 5 22242573.334 22242572.649 22242572.525
+ 40.300 31.100
+ -16843173.523 7 -13124553.165 6 21561339.859 21561338.811 21561338.840
+ 43.800 39.100
+ -7231871.372 5 -5635221.067 4 23108045.527 23108045.093 23108045.385
+ 31.600 25.600
+ -4427015.479 4 -3449630.153 3 23776851.698 23776851.039 23776851.306
+ 26.200 19.300
+ -21863000.853 8 -17036101.553 8 20470620.573 20470616.726 20470618.729
+ 49.400 48.200
+ -23373413.085 7 -18213050.557 7 20723664.769 20723663.399 20723663.850
+ 45.500 45.800
+ -6315536.919 4 -4921198.142 4 23731584.752 23731582.464 23731583.759
+ 29.200 25.300
+ 06 1 2 14 26 0.0000000 0 7G03G08G11G13G19G27G28
+ -12088508.130 6 -9419614.524 5 22259478.412 22259477.545 22259477.443
+ 39.700 30.800
+ -16921816.120 7 -13185833.110 6 21546374.982 21546373.741 21546373.800
+ 43.900 39.100
+ -7330971.460 5 -5712441.882 3 23089188.119 23089186.629 23089187.488
+ 31.000 23.800
+ -4321383.223 3 -3367319.383 3 23796952.418 23796952.347 23796952.237
+ 23.800 21.100
+ -21844070.890 8 -17021350.949 8 20474222.823 20474219.020 20474220.994
+ 49.200 48.200
+ -23397574.926 7 -18231877.974 7 20719066.852 20719065.580 20719065.984
+ 45.200 45.700
+ -6397185.492 4 -4984820.406 4 23716046.946 23716045.357 23716046.176
+ 29.200 24.600
+ 06 1 2 14 26 30.0000000 0 7G03G08G11G13G19G27G28
+ -11999416.642 6 -9350192.613 5 22276432.216 22276430.937 22276431.216
+ 39.900 30.600
+ -17000094.284 7 -13246829.081 6 21531478.743 21531477.996 21531477.799
+ 43.900 39.300
+ -7429889.432 5 -5789520.802 4 23070364.708 23070363.518 23070363.747
+ 30.800 25.300
+ -4215621.441 4 -3284907.655 3 23817079.082 23817077.838 23817078.652
+ 25.600 19.900
+ -21824630.692 8 -17006202.760 8 20477922.152 20477918.325 20477920.337
+ 49.200 48.100
+ -23421261.252 7 -18250334.864 7 20714559.586 20714558.203 20714558.577
+ 45.100 45.800
+ -6478760.031 5 -5048385.002 3 23700524.771 23700522.021 23700523.838
+ 31.300 23.400
+ 06 1 2 14 27 0.0000000 0 7G03G08G11G13G19G27G28
+ -11910071.666 6 -9280573.188 5 22293433.427 22293432.999 22293432.552
+ 39.100 31.100
+ -17078005.405 7 -13307539.043 6 21516652.860 21516651.723 21516651.849
+ 44.000 38.700
+ -7528622.527 4 -5866455.660 3 23051576.408 23051574.785 23051575.317
+ 29.700 23.800
+ -4109732.918 4 -3202397.199 3 23837228.884 23837228.262 23837228.459
+ 24.900 22.100
+ -21804681.984 8 -16990658.325 8 20481718.360 20481714.471 20481716.459
+ 49.300 48.000
+ -23444470.632 7 -18268420.110 7 20710142.778 20710141.599 20710141.809
+ 45.000 45.700
+ -6560260.530 5 -5111891.911 4 23685015.484 23685012.980 23685014.537
+ 31.000 24.200
+ 06 1 2 14 27 30.0000000 0 7G03G08G11G13G19G27G28
+ -11820475.596 6 -9210758.097 5 22310483.511 22310482.569 22310482.486
+ 39.600 31.500
+ -17155546.799 7 -13367960.917 6 21501897.104 21501896.051 21501896.167
+ 44.300 38.700
+ -7627167.790 4 -5943244.166 4 23032823.671 23032822.502 23032822.791
+ 29.200 24.900
+ -4003721.055 4 -3119790.604 4 23857401.237 23857401.727 23857401.139
+ 25.900 24.600
+ -21784225.847 8 -16974718.495 8 20485611.001 20485607.179 20485609.219
+ 49.400 48.100
+ -23467201.640 7 -18286132.598 7 20705817.374 20705816.018 20705816.415
+ 45.200 45.600
+ -6641686.286 5 -5175340.561 4 23669520.341 23669518.373 23669519.566
+ 30.400 24.200
+ 06 1 2 14 28 0.0000000 0 7G03G08G11G13G19G27G28
+ -11730630.605 6 -9140749.047 5 22327579.798 22327579.537 22327579.126
+ 39.000 30.600
+ -17232716.095 7 -13428092.831 6 21487212.468 21487211.481 21487211.480
+ 44.400 39.200
+ -7725522.431 5 -6019884.109 4 23014106.827 23014106.179 23014106.533
+ 30.600 24.600
+ -3897589.102 4 -3037090.483 3 23877599.049 23877598.013 23877598.677
+ 26.800 23.400
+ -21763263.314 8 -16958384.066 8 20489600.052 20489596.292 20489598.294
+ 49.600 48.200
+ -23489452.593 7 -18303471.016 7 20701583.199 20701581.841 20701582.334
+ 45.300 45.800
+ -6723037.013 4 -5238730.764 4 23654039.686 23654037.747 23654038.581
+ 29.900 25.900
+ 06 1 2 14 28 30.0000000 0 7G03G08G11G13G19G27G28
+ -11640538.934 6 -9070547.793 5 22344724.445 22344723.893 22344723.363
+ 38.800 31.600
+ -17309510.322 7 -13487932.499 6 21472598.899 21472597.850 21472597.905
+ 44.400 38.900
+ -7823683.363 5 -6096373.121 4 22995427.824 22995426.712 22995427.280
+ 31.300 25.600
+ -3791340.128 3 -2954299.161 3 23897816.428 23897816.717 23897816.331
+ 23.400 21.600
+ -21741796.134 8 -16941656.414 7 20493685.285 20493681.376 20493683.508
+ 49.500 47.900
+ -23511222.333 7 -18320434.465 7 20697440.643 20697439.221 20697439.655
+ 45.200 45.700
+ -6804312.107 5 -5302062.011 4 23638573.829 23638571.906 23638572.971
+ 31.100 28.400
+ 06 1 2 14 29 0.0000000 0 7G03G08G11G13G19G27G28
+ -11550203.164 6 -9000156.315 5 22361914.184 22361913.752 22361913.281
+ 38.400 30.600
+ -17385927.092 7 -13547478.034 6 21458057.398 21458056.387 21458056.371
+ 44.400 39.300
+ -7921647.728 5 -6172708.958 4 22976786.495 22976784.768 22976785.483
+ 32.400 25.300
+ -3684977.297 3 -2871419.106 3 23918056.932 23918056.567 23918056.732
+ 21.600 20.500
+ -21719825.471 8 -16924536.433 7 20497866.228 20497862.308 20497864.445
+ 49.600 47.900
+ -23532509.174 7 -18337021.631 7 20693389.917 20693388.578 20693388.907
+ 44.900 45.800
+ -6885511.170 5 -5365334.012 4 23623121.852 23623120.306 23623121.047
+ 31.100 28.800
+ 06 1 2 14 29 30.0000000 0 7G03G08G11G13G19G27G28
+ -11459625.529 6 -8929576.370 5 22379150.690 22379150.355 22379149.849
+ 38.800 30.800
+ -17461963.690 7 -13606727.335 6 21443587.997 21443587.018 21443587.013
+ 44.400 39.200
+ -8019412.737 5 -6248889.470 4 22958181.683 22958180.392 22958181.019
+ 31.800 24.600
+ -3578503.842 3 -2788452.896 3 23938318.076 23938317.930 23938317.741
+ 23.000 18.600
+ -21697352.596 8 -16907025.120 8 20502142.646 20502138.717 20502140.772
+ 49.500 48.000
+ -23553311.996 7 -18353231.634 7 20689431.043 20689430.002 20689430.117
+ 44.900 46.000
+ -6966633.711 4 -5428546.379 4 23607685.005 23607683.264 23607683.924
+ 29.500 28.800
+ 06 1 2 14 30 0.0000000 0 7G03G08G11G13G19G27G28
+ -11368808.549 6 -8858809.923 4 22396432.763 22396432.058 22396431.750
+ 38.600 29.700
+ -17537617.566 7 -13665678.406 6 21429191.798 21429190.395 21429190.751
+ 44.700 39.300
+ -8116975.296 5 -6324912.208 4 22939615.710 22939615.015 22939615.434
+ 32.000 24.900
+ -3471922.907 4 -2705402.848 2 23958600.176 23958599.134 23958599.978
+ 25.300 17.800
+ -21674378.943 8 -16889123.594 7 20506514.357 20506510.481 20506512.533
+ 49.400 47.900
+ -23573629.294 7 -18369063.307 7 20685564.834 20685563.745 20685563.893
+ 44.900 45.900
+ -7047679.249 4 -5491698.736 4 23592262.215 23592260.622 23592261.023
+ 29.000 27.100
+ 06 1 2 14 30 30.0000000 0 7G03G08G11G13G19G27G28
+ -11277754.402 6 -8787858.675 5 22413759.497 22413759.267 22413758.896
+ 38.400 31.000
+ -17612885.995 7 -13724329.143 6 21414868.680 21414867.437 21414867.761
+ 45.300 39.600
+ -8214332.567 5 -6400774.971 4 22921089.110 22921088.524 22921088.780
+ 32.300 27.100
+ -3365237.439 4 -2622271.405 2 23978902.079 23978900.709 23978901.902
+ 25.600 15.100
+ -21650905.886 8 -16870832.920 8 20510981.235 20510977.322 20510979.330
+ 49.600 48.000
+ -23593459.826 7 -18384515.687 7 20681791.310 20681790.083 20681790.345
+ 44.900 46.100
+ -7128647.056 5 -5554790.538 4 23576854.364 23576853.018 23576853.415
+ 30.200 27.100
+ 06 1 2 14 31 0.0000000 0 7G03G08G11G13G19G27G28
+ -11186465.432 6 -8716724.456 5 22431131.798 22431130.826 22431130.761
+ 39.000 30.200
+ -17687766.826 7 -13782677.851 6 21400619.366 21400618.050 21400618.407
+ 45.200 39.500
+ -8311481.720 5 -6476475.590 4 22902603.315 22902601.831 22902602.467
+ 33.200 26.500
+ -3258450.707 4 -2539061.011 2 23999223.048 23999221.720 23999222.745
+ 25.600 17.000
+ -21626934.736 8 -16852154.123 7 20515542.706 20515538.866 20515540.844
+ 49.500 47.800
+ -23612801.939 7 -18399587.475 7 20678110.492 20678109.530 20678109.601
+ 44.800 46.000
+ -7209537.134 5 -5617821.792 4 23561462.114 23561459.907 23561461.113
+ 30.600 26.200
+ 06 1 2 14 31 30.0000000 0 7G03G08G11G13G19G27G28
+ -11094943.958 6 -8645409.045 5 22448547.401 22448546.883 22448546.536
+ 38.500 30.800
+ -17762257.184 7 -13840722.293 6 21386444.258 21386443.042 21386443.120
+ 44.800 39.700
+ -8408419.797 5 -6552011.741 4 22884156.346 22884154.805 22884155.331
+ 32.100 24.900
+ -3151565.703 4 -2455774.061 2 24019562.458 24019561.792 24019562.073
+ 27.400 17.800
+ -21602466.614 8 -16833088.071 7 20520198.858 20520195.024 20520197.036
+ 49.700 47.800
+ -23631654.432 7 -18414277.743 7 20674523.219 20674521.944 20674522.195
+ 44.900 46.000
+ -7290348.578 5 -5680791.750 4 23546083.990 23546082.120 23546083.022
+ 30.400 25.600
+ 06 1 2 14 32 0.0000000 0 7G03G08G11G13G19G27G28
+ -11003192.113 6 -8573914.135 4 22466007.596 22466006.629 22466006.771
+ 39.300 29.700
+ -17836354.163 7 -13898460.193 6 21372343.812 21372342.957 21372342.948
+ 44.600 40.100
+ -8505143.962 5 -6627381.200 4 22865749.578 22865748.628 22865749.267
+ 31.300 24.900
+ -3044585.601 4 -2372413.011 2 24039920.618 24039919.478 24039920.212
+ 25.900 16.100
+ -21577503.067 8 -16813635.976 7 20524949.364 20524945.404 20524947.548
+ 49.500 47.600
+ -23650016.265 7 -18428585.682 7 20671029.149 20671027.730 20671028.202
+ 45.000 45.800
+ -7371081.376 5 -5743700.434 3 23530720.904 23530718.791 23530719.934
+ 30.600 23.800
+ 06 1 2 14 32 30.0000000 0 7G03G08G11G13G19G27G28
+ -10911212.239 6 -8502241.529 4 22483510.771 22483509.715 22483509.854
+ 38.800 29.000
+ -17910055.258 7 -13955889.630 6 21358319.154 21358317.976 21358318.140
+ 44.900 39.700
+ -8601651.173 5 -6702581.575 4 22847383.958 22847384.262 22847384.319
+ 31.100 25.900
+ -2937513.836 4 -2288980.551 3 24060294.902 24060294.774 24060294.644
+ 25.600 19.300
+ -21552045.753 8 -16793799.131 7 20529793.726 20529789.783 20529791.863
+ 49.300 47.600
+ -23667885.933 7 -18442510.110 7 20667628.735 20667627.282 20667627.808
+ 45.100 45.900
+ -7451734.789 5 -5806547.285 3 23515373.038 23515370.510 23515371.959
+ 31.000 23.000
+ 06 1 2 14 33 0.0000000 0 7G03G08G11G13G19G27G28
+ -10819006.685 6 -8430393.083 5 22501057.127 22501056.318 22501056.048
+ 38.700 30.400
+ -17983358.021 7 -14013008.667 6 21344370.097 21344368.974 21344369.060
+ 44.900 40.000
+ -8697938.635 5 -6777610.727 4 22829062.596 22829061.290 22829061.609
+ 31.100 26.500
+ -2830353.359 4 -2205478.957 2 24080687.120 24080686.944 24080686.788
+ 24.200 16.100
+ -21526096.111 8 -16773578.650 7 20534731.642 20534727.767 20534729.857
+ 49.300 47.600
+ -23685262.035 7 -18456049.943 7 20664322.166 20664320.751 20664321.255
+ 45.400 46.000
+ -7532308.236 5 -5869331.811 4 23500040.775 23500038.662 23500039.751
+ 30.800 26.200
+ 06 1 2 14 33 30.0000000 0 7G03G08G11G13G19G27G28
+ -10726577.569 6 -8358370.423 5 22518645.302 22518644.871 22518644.643
+ 38.100 30.100
+ -18056259.581 7 -14069815.086 6 21330497.413 21330496.185 21330496.395
+ 45.000 40.000
+ -8794003.288 5 -6852466.267 4 22810782.775 22810780.838 22810781.516
+ 32.600 27.100
+ -2723107.151 4 -2121910.513 2 24101096.129 24101094.865 24101095.656
+ 25.600 17.000
+ -21499655.250 8 -16752975.400 7 20539763.235 20539759.361 20539761.438
+ 49.400 47.600
+ -23702143.155 7 -18469204.078 7 20661109.677 20661108.481 20661108.784
+ 45.000 46.100
+ -7612801.299 5 -5932053.674 4 23484723.460 23484721.694 23484722.323
+ 30.800 27.600
+ 06 1 2 14 34 0.0000000 0 7G03G08G11G13G19G27G28
+ -10633927.025 6 -8286175.236 4 22536276.383 22536275.632 22536275.410
+ 37.400 29.500
+ -18128757.526 7 -14126306.992 6 21316701.343 21316700.410 21316700.358
+ 45.100 40.200
+ -8889842.387 5 -6927146.063 4 22792543.099 22792542.913 22792543.365
+ 33.200 26.500
+ -2615778.234 3 -2038277.663 3 24121520.327 24121519.555 24121519.774
+ 22.600 21.600
+ -21472724.795 8 -16731990.646 7 20544888.039 20544884.117 20544886.117
+ 49.100 47.500
+ -23718528.250 7 -18481971.696 7 20657991.802 20657990.517 20657990.828
+ 44.900 46.000
+ -7693213.501 5 -5994712.501 4 23469421.591 23469420.383 23469420.677
+ 31.500 29.700
+ 06 1 2 14 34 30.0000000 0 7G03G08G11G13G19G27G28
+ -10541057.638 6 -8213809.504 4 22553949.045 22553948.318 22553948.006
+ 37.900 29.500
+ -18200849.454 7 -14182482.533 6 21302982.999 21302981.834 21302981.974
+ 45.600 40.400
+ -8985453.184 5 -7001647.943 4 22774349.394 22774348.747 22774349.282
+ 33.200 26.500
+ -2508369.711 3 -1954582.826 3 24141957.377 24141959.300 24141957.964
+ 18.600 23.000
+ -21445306.138 8 -16710625.478 7 20550105.596 20550101.800 20550103.712
+ 49.200 47.400
+ -23734416.030 7 -18494351.795 7 20654968.307 20654967.094 20654967.369
+ 45.000 46.000
+ -7773544.171 5 -6057307.817 4 23454134.848 23454133.368 23454133.915
+ 32.000 28.600
+ 06 1 2 14 35 0.0000000 0 7G03G08G11G13G19G27G28
+ -10447971.730 6 -8141275.073 4 22571661.940 22571661.552 22571661.145
+ 37.000 28.600
+ -18272532.464 7 -14238339.429 6 21289342.133 21289341.075 21289341.117
+ 45.700 40.400
+ -9080832.612 5 -7075969.548 4 22756200.735 22756198.842 22756199.501
+ 32.700 26.500
+ -2400885.085 3 -1870828.706 3 24162411.345 24162412.919 24162411.793
+ 19.900 23.400
+ -21417400.999 8 -16688881.231 7 20555415.517 20555411.939 20555413.763
+ 49.100 47.400
+ -23749805.505 7 -18506343.610 7 20652039.770 20652038.544 20652038.874
+ 44.800 45.900
+ -7853793.031 5 -6119839.381 4 23438863.777 23438862.436 23438862.969
+ 32.100 28.400
+ 06 1 2 14 35 30.0000000 0 7G03G08G11G13G19G27G28
+ -10354671.485 6 -8068573.592 4 22589417.435 22589415.963 22589416.312
+ 37.300 28.100
+ -18343804.084 7 -14293875.768 6 21275779.578 21275778.383 21275778.618
+ 46.000 40.400
+ -9175977.679 5 -7150108.536 4 22738095.200 22738092.995 22738094.055
+ 33.200 25.900
+ -2293327.260 3 -1787017.496 3 24182879.517 24182879.751 24182879.295
+ 19.900 22.100
+ -21389010.522 8 -16666758.796 7 20560818.136 20560814.483 20560816.336
+ 49.000 47.200
+ -23764695.218 7 -18517945.996 7 20649206.090 20649205.145 20649205.265
+ 44.600 45.900
+ -7933959.532 5 -6182306.790 4 23423609.424 23423606.919 23423608.241
+ 32.800 28.400
+ 06 1 2 14 36 0.0000000 0 7G03G08G11G13G19G27G28
+ -10261158.979 6 -7995706.729 4 22607211.309 22607211.480 22607210.546
+ 36.900 29.900
+ -18414661.847 7 -14349089.617 6 21262295.507 21262294.648 21262294.615
+ 45.600 40.600
+ -9270885.584 5 -7224062.717 4 22720033.027 22720032.878 22720033.272
+ 33.500 27.100
+ -2185699.282 3 -1703151.648 3 24203361.929 24203361.100 24203361.375
+ 23.800 21.100
+ -21360136.337 8 -16644259.451 7 20566312.666 20566309.060 20566310.914
+ 48.900 47.200
+ -23779083.584 7 -18529157.721 7 20646468.350 20646467.196 20646467.383
+ 44.900 45.900
+ -8014043.004 5 -6244709.478 4 23408368.874 23408367.908 23408368.207
+ 32.700 28.800
+ 06 1 2 14 36 30.0000000 0 7G03G08G11G13G19G27G28
+ -10167436.392 6 -7922676.177 4 22625046.951 22625045.533 22625045.874
+ 37.900 27.600
+ -18485102.976 7 -14403978.819 6 21248891.193 21248890.161 21248890.213
+ 45.600 40.500
+ -9365553.473 5 -7297829.853 4 22702018.912 22702018.165 22702018.541
+ 33.900 27.400
+ -2078004.274 3 -1619233.539 3 24223854.247 24223854.908 24223854.425
+ 22.600 20.500
+ -21330780.221 8 -16621384.568 7 20571898.918 20571895.413 20571897.188
+ 48.900 47.200
+ -23792969.669 7 -18539978.059 7 20643825.958 20643824.816 20643825.012
+ 44.800 46.100
+ -8094043.151 5 -6307047.250 4 23393146.118 23393144.132 23393144.990
+ 32.000 27.400
+ 06 1 2 14 37 0.0000000 0 7G03G08G11G13G19G27G28
+ -10073506.203 6 -7849483.842 4 22642921.149 22642920.436 22642920.160
+ 38.100 28.100
+ -18555125.243 7 -14458541.631 6 21235566.337 21235565.335 21235565.283
+ 45.600 40.700
+ -9459978.685 5 -7371407.918 4 22684051.395 22684049.583 22684050.024
+ 32.400 27.900
+ -1970245.254 4 -1535265.548 2 24244361.354 24244360.689 24244360.865
+ 26.800 17.800
+ -21300943.169 8 -16598134.932 7 20577576.714 20577573.189 20577574.955
+ 48.800 47.200
+ -23806352.479 7 -18550406.234 7 20641279.116 20641278.194 20641278.292
+ 44.800 46.200
+ -8173959.307 5 -6369319.584 4 23377938.290 23377936.536 23377937.306
+ 31.800 27.400
+ 06 1 2 14 37 30.0000000 0 7G03G08G11G13G19G27G28
+ -9979370.622 6 -7776131.446 4 22660834.259 22660834.019 22660833.377
+ 37.000 29.000
+ -18624725.881 7 -14512775.904 6 21222321.806 21222320.757 21222320.794
+ 45.600 40.700
+ -9554157.825 5 -7444794.227 4 22666128.623 22666127.774 22666128.182
+ 33.600 26.500
+ -1862425.338 4 -1451250.091 2 24264879.278 24264877.830 24264878.797
+ 26.800 15.100
+ -21270627.323 8 -16574512.214 7 20583345.644 20583342.152 20583343.882
+ 48.700 46.900
+ -23819230.958 7 -18560441.423 7 20638828.648 20638827.425 20638827.701
+ 44.900 46.000
+ -8253790.780 5 -6431525.922 4 23362747.036 23362745.589 23362746.081
+ 31.800 28.400
+ 06 1 2 14 38 0.0000000 0 7G03G08G11G13G19G27G28
+ -9885031.721 6 -7702620.659 4 22678786.681 22678785.884 22678785.666
+ 37.300 27.900
+ -18693902.287 7 -14566679.603 6 21209157.948 21209157.032 21209156.981
+ 45.800 41.100
+ -9648088.401 5 -7517986.848 4 22648253.893 22648253.291 22648253.676
+ 33.400 26.800
+ -1754547.539 4 -1367189.504 1 24285406.610 24285406.040 24285406.500
+ 24.200 11.000
+ -21239834.020 8 -16550517.444 7 20589205.437 20589201.902 20589203.648
+ 48.800 46.800
+ -23831603.814 7 -18570082.623 7 20636474.263 20636472.921 20636473.266
+ 44.700 46.000
+ -8333537.208 5 -6493665.979 4 23347571.723 23347570.058 23347570.741
+ 32.100 28.800
+ 06 1 2 14 38 30.0000000 0 7G03G08G11G13G19G27G28
+ -9790491.710 6 -7628953.117 4 22696776.745 22696776.274 22696775.863
+ 36.400 28.600
+ -18762651.768 7 -14620250.636 6 21196075.559 21196074.585 21196074.510
+ 45.900 41.100
+ -9741767.389 5 -7590983.416 4 22630427.747 22630426.880 22630427.209
+ 34.100 27.900
+ -1646615.007 3 -1283086.306 2 24305945.603 24305945.934 24305945.452
+ 22.100 17.800
+ -21208564.498 8 -16526151.598 7 20595156.014 20595152.252 20595154.253
+ 49.100 46.800
+ -23843469.683 7 -18579328.769 7 20634216.347 20634215.051 20634215.363
+ 44.800 46.100
+ -8413198.057 5 -6555739.361 4 23332412.623 23332411.030 23332411.595
+ 32.400 28.800
+ 06 1 2 14 39 0.0000000 0 7G03G08G11G13G19G27G28
+ -9695752.719 6 -7555130.565 4 22714804.769 22714804.739 22714803.952
+ 36.700 29.000
+ -18830971.493 7 -14673486.796 6 21183074.789 21183073.663 21183073.708
+ 46.100 41.100
+ -9835192.008 5 -7663781.774 4 22612650.147 22612648.716 22612649.418
+ 34.300 27.600
+ -1538630.958 3 -1198942.965 2 24326493.955 24326494.291 24326493.742
+ 20.500 12.600
+ -21176820.702 8 -16501416.189 7 20601196.784 20601192.857 20601194.969
+ 49.200 46.600
+ -23854827.830 7 -18588179.288 7 20632054.811 20632053.751 20632053.855
+ 44.800 46.100
+ -8492772.742 5 -6617745.594 4 23317270.130 23317268.167 23317269.199
+ 32.000 27.900
+ 06 1 2 14 39 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -9600817.025 6 -7481154.726 4 22732871.009 22732870.241 22732869.978
+ 36.400 27.600
+ -18898859.352 7 -14726386.436 6 21170156.002 21170154.947 21170155.051
+ 45.800 41.000
+ -9928359.205 5 -7736379.550 4 22594920.767 22594919.489 22594920.232
+ 34.300 27.600
+ -1430598.244 3 -1114761.712 2 24347052.562 24347052.335 24347052.023
+ 20.500 16.100
+ -21144604.114 8 -16476312.369 7 20607327.408 20607323.492 20607325.577
+ 49.300 46.600
+ -23865676.803 7 -18596633.050 7 20629990.233 20629989.271 20629989.338
+ 44.800 46.100
+ -8572260.985 5 -6679684.493 4 23302144.171 23302142.066 23302143.203
+ 32.600 27.400
+ -74800.875 2 -58286.228 2 24774415.712 24774414.657 24774414.859
+ 17.800 17.800
+ 06 1 2 14 40 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -9505687.085 5 -7407027.525 4 22750973.526 22750973.229 22750972.678
+ 35.900 28.600
+ -18966312.775 7 -14778947.555 6 21157320.108 21157318.858 21157319.091
+ 45.900 40.600
+ -10021266.136 5 -7808774.543 4 22577241.739 22577239.454 22577240.673
+ 33.500 27.400
+ -1322519.803 2 -1030544.800 2 24367619.048 24367619.124 24367619.135
+ 17.000 17.000
+ -21111916.177 8 -16450841.264 7 20613547.648 20613543.883 20613545.876
+ 49.200 46.600
+ -23876015.893 7 -18604689.500 7 20628022.652 20628021.858 20628021.867
+ 44.800 46.100
+ -8651662.103 5 -6741555.485 4 23287034.519 23287032.669 23287033.663
+ 33.100 27.900
+ -130371.400 3 -101587.950 3 24763840.754 24763841.189 24763839.884
+ 19.300 20.500
+ 06 1 2 14 40 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -9410364.971 5 -7332750.586 4 22769112.163 22769112.224 22769111.379
+ 35.900 28.100
+ -19033329.036 7 -14831168.029 6 21144567.386 21144566.073 21144566.419
+ 46.000 40.800
+ -10113909.889 5 -7880964.446 4 22559611.765 22559610.061 22559611.104
+ 34.000 27.600
+ -1214398.802 2 -946294.812 2 24388193.910 24388194.617 24388193.395
+ 12.600 17.000
+ -21078758.866 8 -16425004.414 7 20619857.283 20619853.504 20619855.427
+ 49.300 46.600
+ -23885843.671 7 -18612347.526 7 20626152.670 20626151.688 20626151.759
+ 44.800 46.200
+ -8730975.552 5 -6803358.169 4 23271942.054 23271939.882 23271941.068
+ 33.200 28.400
+ -185485.742 4 -144534.229 3 24753353.899 24753352.098 24753352.983
+ 25.600 21.100
+ 06 1 2 14 41 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -9314853.019 5 -7258325.736 4 22787288.084 22787288.049 22787287.252
+ 35.800 29.000
+ -19099905.694 7 -14883045.951 6 21131898.324 21131897.154 21131897.287
+ 46.200 40.900
+ -10206287.768 5 -7952947.183 4 22542031.853 22542031.326 22542031.888
+ 33.900 28.100
+ -1106238.759 3 -862014.316 2 24408776.791 24408775.980 24408776.311
+ 23.400 16.100
+ -21045133.313 8 -16398802.700 7 20626255.883 20626252.299 20626254.210
+ 49.100 46.500
+ -23895159.435 7 -18619606.580 7 20624380.140 20624378.936 20624379.136
+ 44.900 46.100
+ -8810200.601 5 -6865091.957 4 23256866.321 23256863.922 23256865.281
+ 33.500 29.700
+ -240142.199 3 -187123.685 3 24742952.589 24742951.269 24742951.649
+ 19.900 18.600
+ 06 1 2 14 41 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -9219153.189 6 -7183754.485 4 22805499.662 22805498.729 22805498.520
+ 36.000 27.600
+ -19166040.368 7 -14934579.476 6 21119313.162 21119312.126 21119312.137
+ 45.800 40.900
+ -10298396.892 5 -8024720.494 4 22524505.076 22524503.239 22524504.215
+ 34.300 28.800
+ -998042.054 3 -777705.222 2 24429365.852 24429365.663 24429365.570
+ 23.800 16.100
+ -21011041.325 8 -16372237.531 7 20632743.548 20632739.786 20632741.769
+ 49.100 46.600
+ -23903962.000 7 -18626465.742 7 20622705.155 20622703.843 20622704.175
+ 44.700 45.900
+ -8889336.799 5 -6926756.519 4 23241807.092 23241804.689 23241806.093
+ 33.400 29.700
+ -294338.832 4 -229354.884 4 24732639.451 24732639.275 24732638.694
+ 24.900 24.200
+ 06 1 2 14 42 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -9123267.663 5 -7109038.524 4 22823745.737 22823744.736 22823744.620
+ 35.900 26.500
+ -19231730.421 7 -14985766.539 6 21106812.595 21106811.745 21106811.581
+ 45.700 40.800
+ -10390234.307 5 -8096282.113 4 22507029.545 22507027.384 22507028.426
+ 35.600 28.400
+ -889812.253 3 -693370.421 3 24449961.096 24449961.123 24449960.787
+ 21.100 21.100
+ -20976484.905 8 -16345310.469 7 20639319.495 20639315.725 20639317.617
+ 48.900 46.400
+ -23912250.092 7 -18632924.018 7 20621127.757 20621126.637 20621126.866
+ 44.900 45.900
+ -8968383.601 5 -6988351.421 4 23226765.002 23226762.718 23226764.014
+ 33.800 29.900
+ -348074.156 3 -271226.578 3 24722413.991 24722412.807 24722413.230
+ 23.800 21.100
+ 06 1 2 14 42 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -9027198.492 6 -7034179.472 4 22842027.293 22842026.885 22842026.222
+ 36.000 28.600
+ -19296973.330 7 -15036605.175 6 21094397.297 21094396.432 21094396.286
+ 45.800 41.000
+ -10481797.246 5 -8167629.843 4 22489604.412 22489603.610 22489604.042
+ 34.800 28.600
+ -781551.812 3 -609011.693 2 24470562.269 24470561.642 24470562.111
+ 22.100 16.100
+ -20941465.108 8 -16318022.335 7 20645983.052 20645979.750 20645981.428
+ 48.800 46.400
+ -23920023.092 7 -18638980.917 7 20619648.603 20619647.576 20619647.711
+ 45.000 46.100
+ -9047340.402 5 -7049876.205 4 23211739.551 23211737.508 23211738.603
+ 33.200 29.000
+ -401346.245 3 -312737.364 3 24712277.195 24712275.883 24712276.146
+ 23.400 19.900
+ 06 1 2 14 43 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8930947.939 6 -6959179.084 4 22860342.780 22860342.700 22860341.834
+ 36.100 27.400
+ -19361766.541 7 -15087093.401 6 21082067.814 21082066.754 21082066.776
+ 46.100 41.300
+ -10573082.711 5 -8238761.346 4 22472233.386 22472232.379 22472233.203
+ 35.500 28.400
+ -673264.134 3 -524631.787 3 24491168.766 24491168.653 24491168.590
+ 22.100 20.500
+ -20905983.967 8 -16290374.713 7 20652735.269 20652731.630 20652733.252
+ 48.700 46.400
+ -23927280.270 7 -18644635.879 7 20618267.806 20618266.524 20618266.829
+ 45.000 46.000
+ -9126206.820 5 -7111330.547 4 23196731.899 23196729.426 23196730.956
+ 33.900 28.600
+ -454153.428 3 -353885.820 2 24702227.768 24702226.724 24702227.108
+ 18.600 17.000
+ 06 1 2 14 43 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -8834518.134 5 -6884039.026 4 22878692.636 22878693.029 22878691.999
+ 35.800 27.900
+ -19426107.459 7 -15137229.187 6 21069823.962 21069822.920 21069822.972
+ 46.200 41.300
+ -10664088.012 6 -8309674.566 4 22454916.859 22454914.717 22454915.865
+ 36.100 28.800
+ -564952.381 3 -440233.138 3 24511779.889 24511780.193 24511779.643
+ 22.100 22.100
+ -20870043.001 8 -16262368.783 7 20659574.528 20659570.932 20659572.717
+ 48.600 46.100
+ -23934019.997 7 -18649887.632 7 20616985.211 20616983.971 20616984.241
+ 44.900 46.000
+ -9204981.970 5 -7172713.773 4 23181741.770 23181739.285 23181740.638
+ 34.000 29.200
+ -506494.168 2 -394670.837 3 24692267.934 24692266.956 24692267.445
+ 17.800 19.900
+ 06 1 2 14 44 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8737911.128 5 -6808760.891 4 22897076.695 22897076.079 22897075.851
+ 35.600 27.100
+ -19489993.611 7 -15187010.612 6 21057667.052 21057665.861 21057666.070
+ 46.400 41.300
+ -10754810.165 5 -8380367.143 4 22437651.672 22437650.806 22437651.367
+ 35.400 28.800
+ -456619.237 3 -355817.789 2 24532394.389 24532394.822 24532394.524
+ 21.600 17.000
+ -20833643.842 8 -16234005.821 7 20666501.029 20666497.475 20666499.210
+ 48.700 46.200
+ -23940241.726 7 -18654735.750 7 20615801.058 20615800.030 20615800.235
+ 45.000 45.900
+ -9283665.374 5 -7234025.532 4 23166768.382 23166766.055 23166767.435
+ 34.400 27.400
+ -558366.692 2 -435091.018 3 24682396.324 24682396.673 24682395.948
+ 17.800 20.500
+ 06 1 2 14 44 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -8641129.183 5 -6733346.432 4 22915494.094 22915493.219 22915493.138
+ 35.600 26.200
+ -19553422.285 7 -15236435.560 6 21045596.873 21045595.807 21045595.916
+ 46.400 41.500
+ -10845246.315 5 -8450836.858 4 22420443.193 22420441.360 22420442.177
+ 35.900 29.000
+ -348267.743 3 -271388.107 2 24553013.551 24553013.698 24553013.384
+ 22.600 16.100
+ -20796788.333 8 -16205287.261 7 20673514.431 20673510.847 20673512.633
+ 48.600 46.100
+ -23945944.438 7 -18659179.442 7 20614715.971 20614714.978 20614715.137
+ 45.000 46.100
+ -9362256.858 5 -7295265.658 4 23151812.375 23151810.855 23151811.669
+ 33.900 29.500
+ -609769.183 2 -475144.928 2 24672615.020 24672613.775 24672614.074
+ 15.100 12.600
+ 06 1 2 14 45 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8544174.282 5 -6657797.192 4 22933943.334 22933942.817 22933942.512
+ 34.700 25.300
+ -19616391.423 7 -15285502.426 6 21033614.429 21033613.181 21033613.381
+ 46.300 41.400
+ -10935393.725 5 -8521081.587 4 22403287.939 22403286.986 22403287.652
+ 35.900 29.000
+ -239901.012 2 -186946.555 2 24573634.303 24573635.115 24573634.230
+ 17.800 16.100
+ -20759478.068 8 -16176214.346 7 20680614.627 20680610.850 20680612.718
+ 48.900 46.000
+ -23951127.073 7 -18663217.878 7 20613729.865 20613728.858 20613728.931
+ 44.900 46.200
+ -9440755.202 5 -7356433.200 4 23136875.252 23136873.011 23136874.261
+ 34.100 29.700
+ -660700.275 2 -514831.535 1 24662923.232 24662922.510 24662922.218
+ 17.000 6.500
+ 06 1 2 14 45 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -8447048.792 5 -6582115.039 4 22952426.035 22952425.365 22952424.962
+ 34.900 26.800
+ -19678898.156 7 -15334208.982 6 21021719.728 21021718.408 21021718.682
+ 46.300 41.200
+ -11025249.512 5 -8591099.084 4 22386189.323 22386187.662 22386188.718
+ 35.600 29.000
+ -131521.838 2 -102495.411 2 24594258.792 24594259.386 24594258.636
+ 13.900 16.100
+ -20721714.828 8 -16146788.463 7 20687800.655 20687796.910 20687798.880
+ 49.100 45.800
+ -23955788.855 7 -18666850.451 7 20612842.901 20612841.698 20612841.925
+ 45.000 46.000
+ -9519160.257 5 -7417528.050 5 23121955.028 23121953.620 23121954.132
+ 33.600 31.300
+ -711158.284 2 -554149.475 1 24653320.891 24653320.399 24653319.990
+ 17.000 9.000
+ 06 1 2 14 46 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8349754.731 5 -6506301.526 4 22970940.630 22970940.369 22970939.433
+ 34.400 27.400
+ -19740940.429 7 -15382553.622 6 21009913.396 21009912.210 21009912.416
+ 46.600 41.400
+ -11114810.812 6 -8660887.107 4 22369146.517 22369145.020 22369145.780
+ 36.100 29.000
+ -23133.471 3 -18037.034 2 24614884.448 24614885.158 24614884.384
+ 19.300 13.900
+ -20683500.426 8 -16117011.023 7 20695072.679 20695068.895 20695070.841
+ 49.100 45.800
+ -23959928.526 7 -18670076.183 7 20612055.188 20612053.896 20612054.219
+ 45.100 46.000
+ -9597471.340 5 -7478549.650 5 23107052.811 23107051.600 23107051.906
+ 34.400 31.100
+ -761141.562 2 -593097.554 2 24643809.762 24643808.790 24643809.023
+ 17.800 16.100
+ 06 1 2 14 46 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -8252294.243 5 -6430358.353 4 22989487.143 22989486.697 22989485.640
+ 33.200 26.800
+ -19802515.471 7 -15430534.182 6 20998196.112 20998195.062 20998195.101
+ 46.500 41.600
+ -11204074.866 5 -8730443.509 4 22352159.811 22352158.496 22352159.089
+ 35.900 28.600
+ 85260.984 3 66426.141 9 24635512.451 24635511.451 24635512.039
+ 23.000 -3.000
+ -20644836.562 8 -16086883.352 7 20702430.107 20702426.329 20702428.260
+ 48.900 45.700
+ -23963545.806 7 -18672894.859 7 20611366.704 20611365.584 20611365.774
+ 44.800 46.100
+ -9675687.651 5 -7539497.427 5 23092169.490 23092167.316 23092168.274
+ 34.500 30.400
+ -810648.374 3 -631674.283 2 24634389.010 24634388.316 24634388.181
+ 19.300 17.800
+ 06 1 2 14 47 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8154669.534 5 -6354287.183 4 23008065.155 23008063.528 23008063.799
+ 34.100 25.900
+ -19863620.781 7 -15478148.718 6 20986568.369 20986567.029 20986567.285
+ 46.500 41.500
+ -11293039.008 6 -8799766.211 5 22335230.592 22335229.255 22335229.955
+ 36.100 30.200
+ 193658.891 3 150891.997 24656139.571 24656139.213 24656139.139
+ 19.900 3.000
+ -20605724.611 8 -16056406.530 7 20709872.696 20709869.128 20709870.942
+ 48.800 45.700
+ -23966639.780 7 -18675305.767 7 20610778.135 20610776.889 20610777.157
+ 44.900 46.100
+ -9753808.883 5 -7600371.105 5 23077302.946 23077301.241 23077302.015
+ 34.500 30.400
+ -859677.469 3 -669878.822 2 24625059.146 24625058.937 24625058.490
+ 21.100 16.100
+ 06 1 2 14 47 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -8056882.601 5 -6278089.616 4 23026672.760 23026672.189 23026671.560
+ 34.500 26.800
+ -19924254.222 7 -15525395.568 6 20975029.880 20975028.864 20975028.973
+ 46.600 41.700
+ -11381700.080 6 -8868852.757 4 22318359.227 22318357.707 22318358.569
+ 36.600 29.500
+ 302057.188 3 235358.201 1 24676766.422 24676766.895 24676766.519
+ 19.300 6.500
+ -20566166.495 8 -16025582.035 7 20717400.389 20717396.829 20717398.604
+ 48.800 45.700
+ -23969209.247 7 -18677307.966 7 20610289.106 20610287.977 20610288.163
+ 45.100 46.000
+ -9831834.317 5 -7661170.153 5 23062455.218 23062453.582 23062454.248
+ 34.900 30.200
+ -908227.102 3 -707709.703 2 24615820.370 24615819.536 24615819.740
+ 20.500 12.600
+ 06 1 2 14 48 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -7958935.395 5 -6201767.172 4 23045311.193 23045310.572 23045310.081
+ 34.100 26.200
+ -19984413.034 7 -15572272.572 6 20963582.191 20963580.987 20963581.169
+ 46.600 41.700
+ -11470055.658 6 -8937701.244 4 22301545.615 22301544.301 22301544.895
+ 36.500 29.700
+ 410452.965 3 319822.313 1 24697393.204 24697393.442 24697392.748
+ 18.600 6.500
+ -20526164.026 8 -15994411.298 7 20725012.835 20725009.211 20725010.948
+ 48.600 45.900
+ -23971253.571 7 -18678900.960 7 20609900.047 20609899.015 20609899.056
+ 44.800 45.900
+ -9909763.149 5 -7721893.927 5 23047625.843 23047624.155 23047624.911
+ 35.300 30.400
+ -956295.790 4 -745165.964 2 24606673.105 24606672.944 24606672.698
+ 24.200 15.100
+ 06 1 2 14 48 30.0000000 0 8G03G08G11G13G19G27G28G29
+ -7860830.045 5 -6125321.465 4 23063980.094 23063979.773 23063979.071
+ 33.500 26.500
+ -20044094.753 7 -15618777.824 6 20952225.179 20952223.931 20952224.113
+ 46.400 41.900
+ -11558102.489 6 -9006309.154 5 22284791.295 22284789.502 22284790.356
+ 36.800 30.400
+ 518843.026 2 404282.060 1 24718020.721 24718020.199 24718019.542
+ 17.800 11.000
+ -20485719.067 8 -15962895.764 7 20732709.080 20732705.610 20732707.311
+ 48.400 45.600
+ -23972772.030 7 -18680084.190 7 20609610.990 20609610.038 20609610.059
+ 44.900 45.900
+ -9987595.128 5 -7782542.234 4 23032814.951 23032812.987 23032814.057
+ 34.500 29.700
+ -1003881.705 4 -782245.871 2 24597618.442 24597617.065 24597617.933
+ 24.600 15.100
+ 06 1 2 14 49 0.0000000 0 7G03G08G11G19G27G28G29
+ -7762568.551 5 -6048754.121 4 23082678.840 23082678.766 23082677.719
+ 34.300 27.100
+ -20103297.184 7 -15664909.599 6 20940959.074 20940958.133 20940958.100
+ 46.500 41.900
+ -11645838.055 6 -9074674.520 4 22268095.558 22268093.664 22268094.697
+ 36.500 29.700
+ -20444833.196 8 -15931036.660 7 20740489.477 20740485.964 20740487.571
+ 48.500 45.900
+ -23973764.077 7 -18680857.233 7 20609422.164 20609421.138 20609421.278
+ 44.900 45.700
+ -10065329.232 5 -7843114.259 5 23018022.979 23018020.945 23018021.980
+ 34.900 31.100
+ -1050983.775 3 -818948.841 3 24588654.804 24588654.518 24588654.092
+ 22.600 19.900
+ 06 1 2 14 49 30.0000000 0 7G03G08G11G19G27G28G29
+ -7664153.269 5 -5972066.944 4 23101406.527 23101406.436 23101405.433
+ 34.800 25.600
+ -20162017.898 7 -15710666.010 6 20929784.981 20929783.890 20929783.927
+ 46.400 41.900
+ -11733259.632 6 -9142795.221 5 22251459.587 22251458.003 22251458.953
+ 37.500 30.600
+ -20403508.322 8 -15898835.476 7 20748353.260 20748349.874 20748351.417
+ 48.400 45.800
+ -23974228.728 7 -18681219.315 7 20609333.869 20609332.692 20609332.859
+ 44.900 45.700
+ -10142965.131 5 -7903609.767 5 23003248.961 23003247.413 23003248.092
+ 35.600 32.100
+ -1097600.356 3 -855273.469 2 24579784.095 24579783.046 24579783.132
+ 21.600 17.000
+ 06 1 2 14 50 0.0000000 0 7G03G08G11G19G27G28G29
+ -7565586.022 5 -5895261.324 4 23120163.123 23120162.266 23120162.425
+ 35.100 25.300
+ -20220254.120 7 -15756044.894 7 20918703.020 20918702.051 20918701.992
+ 46.400 42.000
+ -11820364.267 6 -9210668.970 5 22234884.228 22234882.425 22234883.487
+ 37.500 30.200
+ -20361746.135 8 -15866293.532 7 20756300.360 20756296.981 20756298.514
+ 48.400 45.600
+ -23974165.406 7 -18681169.991 7 20609345.937 20609344.849 20609344.981
+ 44.900 45.600
+ -10220502.189 5 -7964028.242 5 22988494.246 22988492.871 22988493.365
+ 35.300 32.700
+ -1143730.112 4 -891218.749 3 24571005.854 24571005.159 24571005.309
+ 24.900 20.500
+ 06 1 2 14 50 30.0000000 0 7G03G08G11G19G27G28G29
+ -7466868.913 5 -5818338.948 4 23138947.868 23138948.321 23138947.305
+ 33.900 27.100
+ -20278003.795 7 -15801044.647 7 20907713.659 20907712.655 20907712.656
+ 46.500 42.200
+ -11907149.177 6 -9278293.573 5 22218369.248 22218367.882 22218368.752
+ 37.200 30.800
+ -20319548.430 8 -15833412.214 7 20764330.324 20764326.980 20764328.499
+ 48.400 45.500
+ -23973573.273 7 -18680708.610 7 20609458.607 20609457.611 20609457.695
+ 44.900 45.800
+ -10297939.650 5 -8024369.113 5 22973758.527 22973756.803 22973757.521
+ 35.600 32.300
+ -1189371.262 4 -926783.354 3 24562320.823 24562320.441 24562320.149
+ 27.900 21.600
+ 06 1 2 14 51 0.0000000 0 7G03G08G11G19G27G28G29
+ -7368003.896 5 -5741301.346 4 23157761.647 23157761.562 23157761.017
+ 34.000 24.900
+ -20335264.609 7 -15845663.480 7 20896817.092 20896816.277 20896816.208
+ 46.600 42.100
+ -11993611.515 6 -9345666.797 5 22201916.107 22201914.880 22201915.379
+ 37.000 31.100
+ -20276917.105 8 -15800193.012 7 20772442.902 20772439.408 20772441.127
+ 48.500 45.500
+ -23972451.428 7 -18679834.466 7 20609672.238 20609671.122 20609671.190
+ 44.900 45.900
+ -10375276.878 5 -8084631.870 5 22959041.615 22959039.733 22959040.734
+ 35.700 31.600
+ -1234522.774 4 -961966.405 4 24553729.102 24553729.078 24553728.335
+ 28.600 27.600
+ 06 1 2 14 51 30.0000000 0 7G03G08G11G19G27G28G29
+ -7268993.056 5 -5664150.083 4 23176602.807 23176602.585 23176601.948
+ 33.500 24.600
+ -20392033.918 7 -15889899.311 7 20886014.682 20886013.560 20886013.621
+ 46.900 42.300
+ -12079748.605 6 -9412786.593 5 22185524.337 22185523.485 22185523.914
+ 36.900 31.000
+ -20233853.735 8 -15766637.155 7 20780637.665 20780634.130 20780635.822
+ 48.600 45.300
+ -23970799.236 7 -18678547.064 7 20609986.622 20609985.511 20609985.631
+ 45.000 45.800
+ -10452513.326 5 -8144816.140 5 22944343.950 22944341.868 22944342.985
+ 35.500 30.600
+ -1279182.856 5 -996766.497 4 24545230.398 24545229.134 24545229.802
+ 30.200 24.200
+ 06 1 2 14 52 0.0000000 0 7G03G08G11G19G27G28G29
+ -7169838.653 5 -5586886.970 4 23195470.971 23195471.155 23195470.172
+ 32.600 25.600
+ -20448309.237 7 -15933750.222 7 20875305.856 20875304.598 20875304.863
+ 47.100 42.400
+ -12165557.823 6 -9479650.892 5 22169195.684 22169194.225 22169195.189
+ 37.300 30.600
+ -20190360.522 8 -15732746.356 7 20788914.117 20788910.515 20788912.271
+ 48.500 45.000
+ -23968616.248 7 -18676846.056 7 20610401.984 20610400.931 20610401.005
+ 44.900 45.700
+ -10529648.379 5 -8204921.366 5 22929666.060 22929663.776 22929665.011
+ 35.900 30.800
+ -1323350.274 4 -1031182.680 4 24536825.908 24536824.765 24536825.209
+ 26.500 25.300
+ 06 1 2 14 52 30.0000000 0 7G03G08G11G19G27G28G29
+ -7070542.691 5 -5509513.555 4 23214366.782 23214366.884 23214366.049
+ 33.100 26.200
+ -20504088.184 7 -15977214.352 7 20864691.198 20864690.254 20864690.231
+ 46.900 42.400
+ -12251036.158 6 -9546257.392 5 22152930.226 22152928.458 22152929.279
+ 38.000 31.100
+ -20146438.928 8 -15698521.752 7 20797272.228 20797268.595 20797270.328
+ 48.700 45.200
+ -23965901.667 7 -18674730.818 7 20610918.705 20610917.490 20610917.678
+ 45.100 45.600
+ -10606681.267 5 -8264947.001 5 22915007.036 22915005.072 22915005.969
+ 35.900 31.500
+ -1367023.551 4 -1065213.807 4 24528515.039 24528514.325 24528514.208
+ 28.100 25.900
+ 06 1 2 14 53 0.0000000 0 7G03G08G11G19G27G28G29
+ -6971106.981 5 -5432031.252 4 23233289.468 23233289.068 23233288.496
+ 34.300 24.600
+ -20559368.754 7 -16020290.132 7 20854171.670 20854170.848 20854170.667
+ 46.600 42.800
+ -12336181.042 6 -9612604.029 5 22136726.180 22136726.070 22136726.331
+ 37.200 31.500
+ -20102090.844 8 -15663964.813 7 20805711.316 20805707.662 20805709.583
+ 48.900 45.100
+ -23962655.095 7 -18672201.037 7 20611536.418 20611535.324 20611535.448
+ 45.000 45.500
+ -10683611.346 5 -8324892.495 5 22900367.507 22900365.926 22900366.591
+ 35.600 32.400
+ -1410201.472 4 -1098858.963 4 24520298.407 24520298.032 24520297.693
+ 27.900 27.100
+ 06 1 2 14 53 30.0000000 0 7G03G08G11G19G27G28G29
+ -6871533.596 5 -5354441.662 3 23252236.600 23252236.565 23252235.628
+ 31.300 23.400
+ -20614148.403 7 -16062975.582 7 20843747.423 20843746.701 20843746.382
+ 46.600 42.900
+ -12420989.593 6 -9678688.608 5 22120589.634 22120587.395 22120588.316
+ 37.400 31.600
+ -20057318.541 8 -15629077.315 7 20814231.251 20814227.694 20814229.401
+ 48.900 45.100
+ -23958875.904 7 -18669256.235 7 20612255.500 20612254.496 20612254.639
+ 44.900 45.500
+ -10760437.964 6 -8384757.398 5 22885748.131 22885746.040 22885747.034
+ 36.200 31.500
+ -1452882.565 4 -1132116.999 4 24512176.764 24512175.945 24512175.867
+ 28.400 26.500
+ 06 1 2 14 54 0.0000000 0 7G03G08G11G19G27G28G29
+ -6771824.725 5 -5276746.490 4 23271211.193 23271210.500 23271210.406
+ 32.700 24.900
+ -20668424.991 7 -16105269.038 7 20833419.007 20833418.216 20833418.098
+ 47.000 42.800
+ -12505459.086 6 -9744508.986 5 22104514.176 22104513.399 22104513.879
+ 37.700 31.300
+ -20012123.177 8 -15593860.158 7 20822831.573 20822828.025 20822829.826
+ 48.800 44.800
+ -23954563.249 7 -18665895.747 7 20613076.018 20613075.218 20613075.184
+ 44.900 45.700
+ -10837160.674 6 -8444541.317 5 22871148.262 22871146.360 22871147.282
+ 36.500 32.400
+ -1495065.804 4 -1164987.069 4 24504149.425 24504148.919 24504148.799
+ 25.300 27.400
+ 06 1 2 14 54 30.0000000 0 7G03G08G11G19G27G28G29
+ -6671982.044 5 -5198947.071 4 23290209.860 23290210.746 23290209.349
+ 31.800 25.300
+ -20722196.295 7 -16147168.772 7 20823186.585 20823185.792 20823185.631
+ 47.000 42.900
+ -12589586.671 6 -9810062.923 5 22088506.071 22088504.215 22088505.187
+ 37.600 31.500
+ -19966506.952 8 -15558315.062 7 20831512.136 20831508.644 20831510.277
+ 48.600 44.900
+ -23949716.796 7 -18662119.309 7 20613998.590 20613997.515 20613997.507
+ 44.800 45.600
+ -10913778.482 6 -8504243.506 5 22856568.320 22856566.276 22856567.236
+ 36.900 32.000
+ -1536749.501 3 -1197467.910 4 24496217.203 24496216.562 24496216.456
+ 22.600 26.800
+ 06 1 2 14 55 0.0000000 0 7G03G08G11G19G27G28G29
+ -6572007.888 5 -5121045.212 3 23309235.037 23309234.515 23309234.326
+ 32.400 23.800
+ -20775459.820 7 -16188672.827 7 20813051.108 20813050.203 20813050.151
+ 47.000 43.100
+ -12673369.732 6 -9875348.433 5 22072562.442 22072560.937 22072561.750
+ 38.200 32.000
+ -19920471.536 8 -15522443.331 7 20840272.356 20840268.767 20840270.453
+ 48.600 44.900
+ -23944335.675 7 -18657926.250 7 20615022.487 20615021.575 20615021.600
+ 44.900 45.400
+ -10990290.912 6 -8563863.578 5 22842008.321 22842006.288 22842007.299
+ 36.900 31.100
+ -1577932.653 2 -1229558.679 4 24488379.873 24488379.847 24488379.408
+ 17.000 27.900
+ 06 1 2 14 55 30.0000000 0 7G03G08G11G19G27G28G29
+ -6471904.033 5 -5043042.254 3 23328283.327 23328283.960 23328282.709
+ 31.600 23.000
+ -20828213.089 7 -16229779.282 7 20803012.442 20803011.464 20803011.409
+ 47.000 42.900
+ -12756805.789 6 -9940363.536 5 22056685.298 22056683.581 22056684.353
+ 38.200 31.800
+ -19874018.912 8 -15486246.491 7 20849112.084 20849108.448 20849110.251
+ 48.700 44.800
+ -23938419.632 7 -18653316.367 7 20616148.159 20616147.291 20616147.305
+ 44.900 45.500
+ -11066697.259 6 -8623401.005 5 22827468.752 22827466.671 22827467.733
+ 36.900 31.600
+ -1618613.732 3 -1261258.249 4 24480638.895 24480638.576 24480638.363
+ 21.600 28.400
+ 06 1 2 14 56 0.0000000 0 7G03G08G11G19G27G28G29
+ -6371672.317 5 -4964939.679 3 23347357.644 23347357.660 23347356.950
+ 32.700 23.000
+ -20880453.987 7 -16270486.490 7 20793071.143 20793070.303 20793070.156
+ 46.900 42.800
+ -12839891.956 6 -10005105.997 5 22040873.562 22040872.821 22040873.485
+ 38.900 32.000
+ -19827151.081 8 -15449726.123 7 20858030.796 20858027.043 20858028.899
+ 48.700 44.600
+ -23931968.374 7 -18648289.440 7 20617376.076 20617374.939 20617375.048
+ 45.100 45.400
+ -11142996.959 6 -8682855.314 5 22812949.285 22812947.536 22812948.252
+ 36.700 32.400
+ -1658791.582 3 -1292565.657 4 24472992.614 24472992.805 24472992.111
+ 21.600 28.600
+ 06 1 2 14 56 30.0000000 0 7G03G08G11G19G27G28G29
+ -6271314.608 5 -4886738.910 4 23366456.417 23366455.530 23366455.123
+ 32.600 24.600
+ -20932180.155 7 -16310792.604 7 20783228.186 20783227.265 20783227.184
+ 46.900 43.100
+ -12922625.494 6 -10069573.654 5 22025130.752 22025129.171 22025129.774
+ 37.700 32.100
+ -19779869.857 8 -15412883.625 7 20867027.943 20867024.538 20867026.147
+ 48.700 44.700
+ -23924981.080 7 -18642844.819 7 20618705.670 20618704.657 20618704.687
+ 44.900 45.300
+ -11219189.069 6 -8742225.790 5 22798450.472 22798448.720 22798449.527
+ 37.000 32.600
+ -1698464.966 2 -1323479.990 2 24465442.619 24465444.011 24465442.159
+ 16.100 17.000
+ 06 1 2 14 57 0.0000000 0 7G03G08G11G19G27G28G29
+ -6170833.134 5 -4808441.732 4 23385576.904 23385576.966 23385575.717
+ 32.100 25.600
+ -20983389.257 7 -16350695.812 7 20773483.359 20773482.525 20773482.364
+ 47.100 43.400
+ -13005003.467 6 -10133764.269 5 22009454.772 22009452.905 22009454.013
+ 38.700 31.300
+ -19732176.986 8 -15375720.367 7 20876103.715 20876100.139 20876101.832
+ 48.600 44.600
+ -23917457.361 7 -18636982.207 7 20620137.081 20620136.387 20620136.236
+ 44.900 45.300
+ -11295272.909 6 -8801511.897 5 22783972.578 22783970.214 22783971.533
+ 37.700 32.400
+ -1737632.783 2 -1354000.392 3 24457989.799 24457988.772 24457989.077
+ 17.000 20.500
+ 06 1 2 14 57 30.0000000 0 7G03G08G11G19G27G28G29
+ -6070229.799 5 -4730049.585 3 23404720.915 23404720.311 23404719.745
+ 31.800 23.400
+ -21034079.273 7 -16390194.537 7 20763837.467 20763836.733 20763836.554
+ 47.000 43.500
+ -13087023.391 6 -10197675.877 5 21993846.194 21993845.273 21993845.914
+ 38.900 32.100
+ -19684074.328 8 -15338237.794 7 20885257.318 20885253.841 20885255.486
+ 48.600 44.700
+ -23909396.889 7 -18630701.342 7 20621671.058 20621670.255 20621670.153
+ 44.800 45.300
+ -11371247.985 6 -8860713.266 5 22769514.731 22769512.626 22769513.793
+ 37.600 32.100
+ -1776293.736 2 -1384125.783 3 24450632.853 24450632.454 24450632.326
+ 17.800 23.000
+ 06 1 2 14 58 0.0000000 0 7G03G08G11G19G27G28G29
+ -5969506.581 5 -4651564.027 3 23423888.159 23423886.879 23423887.101
+ 32.300 22.100
+ -21084247.808 7 -16429286.911 7 20754290.426 20754289.825 20754289.534
+ 46.900 43.400
+ -13168683.023 6 -10261306.733 5 21978307.594 21978305.838 21978306.779
+ 38.700 32.300
+ -19635563.955 8 -15300437.523 7 20894488.449 20894485.057 20894486.713
+ 48.600 44.500
+ -23900799.310 7 -18624001.956 7 20623307.235 20623306.353 20623306.338
+ 45.100 45.400
+ -11447113.697 6 -8919829.415 5 22755078.111 22755075.824 22755076.900
+ 37.000 32.600
+ -1814446.497 -1413855.217 3 24443370.676 24443375.305 24443370.742
+ 3.000 22.100
+ 06 1 2 14 58 30.0000000 0 7G03G08G11G19G27G28G29
+ -5868665.541 5 -4572986.639 3 23443076.749 23443077.179 23443075.901
+ 31.100 23.400
+ -21133892.609 7 -16467971.182 7 20744843.580 20744842.586 20744842.572
+ 46.900 43.300
+ -13249979.155 6 -10324654.337 5 21962837.403 21962835.845 21962836.586
+ 39.200 32.300
+ -19586647.702 8 -15262320.978 7 20903797.072 20903793.606 20903795.194
+ 48.700 44.600
+ -23891663.985 7 -18616883.545 7 20625045.679 20625044.785 20625044.775
+ 45.000 45.300
+ -11522868.839 6 -8978859.404 5 22740662.315 22740660.328 22740661.332
+ 37.200 32.300
+ -1852090.255 3 -1443187.982 4 24436209.371 24436208.195 24436208.447
+ 19.900 24.900
+ 06 1 2 14 59 0.0000000 0 7G03G08G11G19G27G28G29
+ -5767708.338 5 -4494318.761 3 23462288.964 23462288.779 23462287.759
+ 32.000 23.000
+ -21183011.491 7 -16506245.649 7 20735496.585 20735495.560 20735495.586
+ 46.700 43.100
+ -13330909.279 6 -10387716.755 5 21947436.033 21947435.287 21947435.732
+ 38.900 33.100
+ -19537327.410 8 -15223889.602 7 20913182.506 20913178.935 20913180.626
+ 48.700 44.600
+ -23881990.485 7 -18609345.777 7 20626886.454 20626885.591 20626885.528
+ 44.900 45.100
+ -11598512.939 6 -9037802.866 5 22726266.939 22726265.656 22726266.320
+ 36.800 32.700
+ -1889223.730 3 -1472123.212 3 24429143.415 24429142.972 24429142.890
+ 21.100 23.800
+ 06 1 2 14 59 30.0000000 0 7G03G08G11G19G27G28G29
+ -5666636.921 5 -4415561.850 3 23481522.494 23481521.710 23481521.561
+ 31.500 21.600
+ -21231602.487 7 -16544108.768 7 20726250.036 20726249.168 20726249.014
+ 46.800 43.400
+ -13411470.637 6 -10450491.813 5 21932106.087 21932104.681 21932105.561
+ 39.700 31.800
+ -19487604.989 8 -15185144.878 7 20922644.257 20922640.860 20922642.488
+ 48.500 44.500
+ -23871778.667 7 -18601388.539 7 20628829.760 20628828.857 20628828.813
+ 45.000 45.100
+ -11674045.388 6 -9096659.323 5 22711894.451 22711892.359 22711893.385
+ 37.700 33.200
+ -1925845.645 3 -1500659.763 3 24422174.537 24422174.553 24422173.673
+ 19.900 21.600
+ 06 1 2 15 0 0.0000000 0 7G03G08G11G19G27G28G29
+ -5565453.081 5 -4336717.350 3 23500776.901 23500776.311 23500776.071
+ 30.200 22.600
+ -21279663.119 7 -16581558.623 7 20717104.332 20717103.693 20717103.378
+ 46.900 43.600
+ -13491660.550 6 -10512977.444 5 21916846.516 21916845.070 21916845.841
+ 39.300 32.300
+ -19437482.392 8 -15146088.326 7 20932182.159 20932178.821 20932180.427
+ 48.400 44.400
+ -23861027.835 7 -18593011.294 7 20630875.601 20630874.684 20630874.664
+ 44.900 45.000
+ -11749465.490 6 -9155428.239 5 22697542.324 22697540.543 22697541.343
+ 37.900 33.500
+ -1961955.136 3 -1528797.043 3 24415303.686 24415302.623 24415302.982
+ 20.500 19.900
+ 06 1 2 15 0 30.0000000 0 7G03G08G11G19G27G28G29
+ -5464158.992 5 -4257786.949 4 23520052.551 23520052.123 23520051.570
+ 30.200 24.600
+ -21327191.411 7 -16618593.667 7 20708060.022 20708059.243 20708059.035
+ 47.000 43.600
+ -13571476.586 6 -10575171.720 5 21901658.081 21901656.788 21901657.492
+ 39.700 32.700
+ -19386961.601 8 -15106721.490 7 20941795.907 20941792.636 20941794.109
+ 48.400 44.400
+ -23849738.055 7 -18584214.090 7 20633024.175 20633023.008 20633023.116
+ 44.800 44.900
+ -11824772.408 6 -9214108.966 5 22683211.888 22683209.907 22683210.868
+ 37.700 33.100
+ -1997550.819 4 -1556533.990 3 24408529.698 24408529.427 24408529.122
+ 24.900 20.500
+ 06 1 2 15 1 0.0000000 0 7G03G08G11G19G27G28G29
+ -5362756.402 5 -4178772.028 3 23539348.983 23539348.766 23539347.805
+ 30.400 22.600
+ -21374184.646 7 -16655211.785 7 20699117.763 20699116.491 20699116.679
+ 47.000 43.300
+ -13650915.730 6 -10637072.338 5 21886541.163 21886539.863 21886540.636
+ 39.600 33.100
+ -19336044.348 8 -15067045.727 7 20951485.141 20951481.850 20951483.352
+ 48.400 44.200
+ -23837908.795 7 -18574996.512 7 20635274.960 20635274.075 20635274.100
+ 45.000 44.800
+ -11899965.580 6 -9272701.061 5 22668903.004 22668901.082 22668902.013
+ 37.700 33.000
+ -2032631.884 4 -1583869.896 3 24401853.931 24401853.989 24401853.165
+ 24.600 21.100
+ 06 1 2 15 1 30.0000000 0 7G03G08G11G19G27G28G29
+ -5261247.339 4 -4099674.098 4 23558664.445 23558665.038 23558663.453
+ 29.000 24.200
+ -21420641.325 7 -16691411.806 7 20690277.278 20690276.133 20690276.231
+ 46.900 43.500
+ -13729975.724 6 -10698677.479 5 21871496.361 21871495.142 21871495.893
+ 39.700 32.800
+ -19284732.609 8 -15027062.572 7 20961249.691 20961246.111 20961247.728
+ 48.300 44.000
+ -23825539.964 7 -18565358.490 7 20637628.750 20637627.815 20637627.790
+ 44.900 44.800
+ -11975043.896 6 -9331203.652 5 22654616.383 22654614.239 22654615.381
+ 38.300 32.800
+ -2067197.251 4 -1610803.956 2 24395276.731 24395275.572 24395276.198
+ 26.500 17.000
+ 06 1 2 15 2 0.0000000 0 7G03G08G11G19G27G28G29
+ -5159633.344 5 -4020494.448 4 23578001.932 23578002.703 23578000.572
+ 30.400 24.200
+ -21466559.424 7 -16727192.159 7 20681538.992 20681538.337 20681538.176
+ 46.900 43.700
+ -13808653.959 6 -10759985.176 5 21856524.396 21856523.166 21856523.950
+ 39.500 32.700
+ -19233028.383 8 -14986773.580 7 20971088.369 20971085.108 20971086.633
+ 48.100 44.000
+ -23812631.014 7 -18555299.591 7 20640085.267 20640084.240 20640084.306
+ 44.900 44.600
+ -12050006.807 6 -9389616.329 5 22640351.335 22640349.414 22640350.207
+ 38.200 33.100
+ -2101245.916 4 -1637335.413 2 24388797.309 24388795.998 24388796.424
+ 26.200 15.100
+ 06 1 2 15 2 30.0000000 0 7G03G08G11G19G27G28G29
+ -5057916.559 5 -3941234.691 3 23597357.205 23597357.965 23597356.596
+ 30.400 23.000
+ -21511936.465 7 -16762550.898 7 20672904.220 20672903.458 20672903.247
+ 46.900 43.900
+ -13886947.640 6 -10820993.196 5 21841625.837 21841624.505 21841625.085
+ 39.400 33.200
+ -19180933.463 8 -14946180.156 7 20981002.043 20980998.466 20980999.978
+ 48.000 43.800
+ -23799181.985 7 -18544819.859 7 20642644.697 20642643.565 20642643.741
+ 45.200 44.600
+ -12124853.727 6 -9447938.610 5 22626108.241 22626106.390 22626107.292
+ 38.200 33.400
+ -2134776.692 4 -1663463.323 2 24382416.991 24382415.809 24382416.390
+ 27.100 17.800
+ 06 1 2 15 3 0.0000000 0 7G03G08G11G19G27G28G29
+ -4956098.509 4 -3861896.011 3 23616732.876 23616733.866 23616731.789
+ 29.700 23.400
+ -21556770.286 7 -16797486.357 7 20664372.847 20664371.938 20664371.806
+ 47.100 43.800
+ -13964854.365 6 -10881699.700 5 21826800.355 21826799.403 21826799.982
+ 40.000 33.900
+ -19128449.974 8 -14905283.946 7 20990989.075 20990985.714 20990987.241
+ 48.200 43.600
+ -23785192.428 7 -18533918.932 7 20645306.697 20645305.781 20645305.777
+ 44.900 44.800
+ -12199583.858 6 -9506169.896 5 22611887.196 22611885.612 22611886.343
+ 37.700 32.600
+ -2167788.854 4 -1689187.100 2 24376134.960 24376133.288 24376134.249
+ 27.900 15.100
+ 06 1 2 15 3 30.0000000 0 7G03G08G11G19G27G28G29
+ -4854181.257 5 -3782480.027 3 23636127.168 23636127.608 23636126.207
+ 30.200 19.900
+ -21601058.817 7 -16831996.912 7 20655944.746 20655944.046 20655943.775
+ 46.800 43.900
+ -14042371.640 6 -10942102.724 5 21812049.827 21812048.134 21812048.997
+ 40.000 33.000
+ -19075579.822 8 -14864086.446 7 21001049.986 21001046.675 21001048.175
+ 48.200 43.700
+ -23770661.958 7 -18522596.514 7 20648071.720 20648070.941 20648070.743
+ 44.900 44.600
+ -12274196.423 6 -9564309.571 5 22597689.199 22597687.405 22597688.244
+ 38.100 33.200
+ -2200281.292 4 -1714505.915 3 24369951.447 24369951.216 24369950.718
+ 26.200 21.100
+ 06 1 2 15 4 0.0000000 0 7G03G08G11G19G27G28G29
+ -4752166.774 4 -3702988.304 3 23655540.052 23655540.597 23655539.093
+ 29.700 22.600
+ -21644800.262 7 -16866081.171 7 20647621.252 20647620.312 20647620.203
+ 46.900 43.900
+ -14119496.545 6 -11002200.023 5 21797373.051 21797371.708 21797372.629
+ 40.400 33.200
+ -19022324.958 8 -14822589.170 7 21011184.233 21011180.667 21011182.346
+ 48.100 43.500
+ -23755590.698 7 -18510852.701 7 20650939.714 20650938.857 20650938.801
+ 45.100 44.700
+ -12348690.543 6 -9622356.941 5 22583513.806 22583511.791 22583512.845
+ 38.800 34.100
+ -2232253.059 4 -1739419.017 2 24363867.629 24363866.362 24363866.928
+ 27.100 15.100
+ 06 1 2 15 4 30.0000000 0 7G03G08G11G19G27G28G29
+ -4650056.892 5 -3623422.223 4 23674971.308 23674971.810 23674970.438
+ 30.400 24.200
+ -21687992.086 7 -16899737.148 7 20639402.018 20639401.248 20639400.982
+ 46.900 44.000
+ -14196226.652 6 -11061989.679 5 21782771.889 21782770.645 21782771.274
+ 40.200 33.900
+ -18968687.427 8 -14780793.703 7 21021391.022 21021387.574 21021389.270
+ 48.200 43.500
+ -23739978.661 7 -18498687.505 7 20653910.779 20653909.807 20653909.772
+ 44.700 44.700
+ -12423065.369 6 -9680311.362 5 22569360.703 22569358.728 22569359.694
+ 39.000 34.000
+ -2263703.386 4 -1763925.770 2 24357882.728 24357881.718 24357882.026
+ 28.100 15.100
+ 06 1 2 15 5 0.0000000 0 7G03G08G11G19G27G28G29
+ -4547853.267 4 -3543783.110 4 23694419.908 23694420.655 23694418.913
+ 29.000 24.200
+ -21730632.731 7 -16932963.640 7 20631287.794 20631287.025 20631286.838
+ 47.100 44.000
+ -14272559.628 6 -11121469.890 5 21768246.376 21768244.625 21768245.714
+ 40.500 33.400
+ -18914669.131 8 -14738701.544 7 21031670.437 21031666.933 21031668.551
+ 48.000 43.400
+ -23723825.263 7 -18486100.465 7 20656984.495 20656983.790 20656983.586
+ 45.100 44.700
+ -12497320.535 6 -9738172.550 5 22555230.509 22555228.271 22555229.367
+ 38.500 33.500
+ -2294631.098 4 -1788025.337 2 24351997.595 24351996.813 24351996.940
+ 28.800 16.100
+ 06 1 2 15 5 30.0000000 0 7G03G08G11G19G27G28G29
+ -4445557.828 5 -3464072.463 3 23713886.682 23713887.112 23713885.805
+ 31.000 21.600
+ -21772719.979 7 -16965758.906 7 20623278.846 20623278.091 20623277.860
+ 46.700 44.100
+ -14348492.714 6 -11180638.499 5 21753796.591 21753795.165 21753795.968
+ 40.600 34.000
+ -18860271.633 8 -14696313.903 7 21042021.771 21042018.470 21042019.910
+ 48.100 43.400
+ -23707130.537 7 -18473091.615 7 20660161.665 20660160.653 20660160.620
+ 45.100 44.500
+ -12571455.209 6 -9795939.839 5 22541123.084 22541121.097 22541122.140
+ 38.800 34.000
+ -2325035.568 4 -1811717.169 2 24346211.340 24346210.374 24346210.535
+ 26.200 17.000
+ 06 1 2 15 6 0.0000000 0 7G03G08G11G19G27G28G29
+ -4343172.393 4 -3384291.658 3 23733369.738 23733369.598 23733368.559
+ 29.700 20.500
+ -21814251.364 7 -16998121.036 7 20615375.655 20615374.932 20615374.685
+ 47.000 44.100
+ -14424023.321 6 -11239493.487 5 21739423.430 21739422.157 21739422.991
+ 40.700 33.800
+ -18805497.212 8 -14653632.556 7 21052445.035 21052441.770 21052443.289
+ 48.200 43.400
+ -23689894.681 7 -18459661.102 7 20663441.441 20663440.436 20663440.505
+ 45.200 44.400
+ -12645468.158 6 -9853612.276 5 22527039.044 22527036.939 22527037.989
+ 38.900 34.300
+ -2354916.000 4 -1835000.657 1 24340525.646 24340524.016 24340524.979
+ 27.600 9.000
+ 06 1 2 15 6 30.0000000 0 7G03G08G11G19G27G28G29
+ -4240698.741 4 -3304442.135 3 23752869.940 23752868.879 23752868.777
+ 27.600 19.300
+ -21855225.579 7 -17030049.006 7 20607578.649 20607577.837 20607577.696
+ 47.200 44.200
+ -14499148.876 6 -11298032.860 5 21725127.966 21725126.064 21725127.156
+ 40.700 33.400
+ -18750348.076 8 -14610659.220 7 21062939.976 21062936.376 21062938.025
+ 48.400 43.600
+ -23672117.356 7 -18445808.665 7 20666824.403 20666823.439 20666823.441
+ 45.300 44.300
+ -12719358.719 6 -9911189.340 5 22512977.994 22512975.876 22512976.867
+ 38.800 33.800
+ -2384271.333 4 -1857874.963 1 24334939.411 24334937.228 24334938.755
+ 25.900 6.500
+ 06 1 2 15 7 0.0000000 0 7G03G08G11G19G27G28G29
+ -4138138.597 4 -3224525.205 2 23772386.358 23772385.881 23772385.480
+ 28.600 17.800
+ -21895640.457 7 -17061541.132 7 20599888.030 20599887.057 20599887.057
+ 47.300 44.200
+ -14573867.029 6 -11356254.778 5 21710909.279 21710907.766 21710908.640
+ 40.900 34.000
+ -18694825.751 8 -14567395.090 7 21073505.248 21073501.931 21073503.512
+ 48.200 43.500
+ -23653798.433 7 -18431534.208 7 20670310.388 20670309.538 20670309.430
+ 45.200 44.400
+ -12793126.372 6 -9968670.633 5 22498940.459 22498938.225 22498939.378
+ 38.900 34.000
+ -2413100.867 4 -1880339.565 1 24329453.508 24329451.404 24329452.740
+ 27.100 11.000
+ 06 1 2 15 7 30.0000000 0 7G03G08G11G19G27G28G29
+ -4035493.896 4 -3144542.385 3 23791919.256 23791918.925 23791918.625
+ 29.500 21.100
+ -21935493.825 7 -17092595.715 7 20592304.375 20592303.369 20592303.303
+ 47.100 44.300
+ -14648175.055 6 -11414157.114 5 21696768.890 21696767.558 21696768.306
+ 40.700 34.100
+ -18638932.212 8 -14523841.703 7 21084141.655 21084138.192 21084139.700
+ 48.100 43.300
+ -23634938.053 7 -18416837.833 7 20673899.540 20673898.603 20673898.526
+ 45.200 44.300
+ -12866770.217 6 -10026055.460 5 22484926.425 22484924.601 22484925.489
+ 39.400 34.500
+ -2441403.667 3 -1902393.715 2 24324067.076 24324066.484 24324066.540
+ 23.000 17.800
+ 06 1 2 15 8 0.0000000 0 7G03G08G11G19G27G28G29
+ -3932766.232 5 -3064494.931 3 23811467.970 23811468.054 23811466.852
+ 30.400 22.100
+ -21974783.830 7 -17123211.314 7 20584827.688 20584826.664 20584826.637
+ 47.100 44.400
+ -14722070.989 6 -11471738.346 5 21682707.566 21682705.446 21682706.504
+ 40.900 34.500
+ -18582669.804 8 -14480000.884 7 21094847.917 21094844.493 21094846.031
+ 48.000 43.100
+ -23615536.110 7 -18401719.460 7 20677591.561 20677590.629 20677590.593
+ 44.900 44.100
+ -12940289.425 6 -10083343.155 5 22470936.115 22470934.297 22470935.061
+ 38.900 34.700
+ -2469179.223 4 -1924037.060 2 24318782.016 24318781.460 24318781.383
+ 27.100 17.800
+ 06 1 2 15 8 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -3829957.469 4 -2984384.286 3 23831031.421 23831030.735 23831030.497
+ 29.900 19.300
+ -22013508.759 7 -17153386.591 7 20577458.424 20577457.607 20577457.433
+ 47.100 44.400
+ -14795552.052 6 -11528996.304 5 21668723.515 21668722.651 21668723.179
+ 41.100 35.100
+ -18526040.157 8 -14435873.907 7 21105624.258 21105620.789 21105622.435
+ 48.200 43.000
+ -92663.369 3 -72205.094 3 24419313.368 24419313.327 24419312.606
+ 23.400 20.500
+ -23595592.474 7 -18386178.990 7 20681386.505 20681385.765 20681385.683
+ 45.100 44.100
+ -13013683.134 6 -10140533.062 5 22456969.623 22456967.862 22456968.733
+ 39.400 34.900
+ -2496426.470 4 -1945268.702 2 24313597.066 24313596.052 24313596.356
+ 27.900 16.100
+ 06 1 2 15 9 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3727069.552 4 -2904211.953 3 23850610.818 23850610.681 23850609.979
+ 28.800 21.100
+ -22051666.576 7 -17183119.961 7 20570197.121 20570196.461 20570196.174
+ 46.900 44.600
+ -14868615.600 6 -11585928.929 5 21654820.217 21654818.870 21654819.538
+ 40.600 34.600
+ -18469045.551 8 -14391462.548 7 21116470.081 21116466.497 21116468.138
+ 48.000 43.000
+ -135205.921 4 -105355.193 3 24411217.623 24411217.780 24411217.168
+ 24.900 23.000
+ -23575107.295 7 -18370216.539 7 20685284.885 20685283.998 20685283.955
+ 45.100 43.900
+ -13086950.758 6 -10197624.724 5 22443027.427 22443025.519 22443026.367
+ 39.300 34.800
+ -2523144.991 4 -1966088.320 2 24308513.209 24308511.286 24308512.462
+ 28.100 15.100
+ 06 1 2 15 9 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -3624103.977 4 -2823979.112 3 23870204.053 23870204.251 23870203.045
+ 26.500 21.600
+ -22089254.991 7 -17212409.643 7 20563044.607 20563043.502 20563043.490
+ 46.900 44.400
+ -14941259.223 6 -11642534.345 5 21640996.789 21640994.988 21640996.055
+ 41.000 34.000
+ -18411687.811 8 -14346768.220 7 21127384.707 21127381.263 21127382.912
+ 48.000 42.700
+ -177176.424 3 -138059.535 3 24403230.644 24403231.413 24403230.127
+ 21.100 23.400
+ -23554080.513 7 -18353832.058 7 20689285.928 20689285.341 20689285.092
+ 45.300 44.100
+ -13160091.000 6 -10254617.119 5 22429108.971 22429107.570 22429108.105
+ 39.200 35.100
+ -2549333.851 4 -1986495.271 2 24303529.096 24303528.368 24303528.523
+ 25.600 17.800
+ 06 1 2 15 10 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3521062.232 4 -2743686.946 3 23889812.169 23889812.488 23889811.215
+ 27.400 19.300
+ -22126272.380 7 -17241254.370 7 20555999.935 20555999.386 20555999.006
+ 46.800 44.500
+ -15013480.685 6 -11698810.803 5 21627253.480 21627252.248 21627252.914
+ 41.300 35.300
+ -18353968.767 7 -14301792.358 7 21138368.267 21138364.787 21138366.472
+ 47.800 42.400
+ -218573.368 2 -170316.924 3 24395353.192 24395353.246 24395352.276
+ 17.000 22.100
+ -23532512.392 7 -18337025.754 7 20693390.518 20693389.644 20693389.578
+ 45.400 44.100
+ -13233103.504 6 -10311509.970 5 22415215.131 22415213.624 22415214.230
+ 38.900 35.200
+ -2574992.356 4 -2006488.942 3 24298646.725 24298645.473 24298645.968
+ 25.900 19.300
+ 06 1 2 15 10 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -3417946.351 4 -2663336.978 3 23909434.766 23909435.198 23909433.805
+ 28.400 19.900
+ -22162717.470 7 -17269653.150 7 20549064.758 20549064.096 20549063.789
+ 46.700 44.400
+ -15085277.345 6 -11754756.248 5 21613591.242 21613589.335 21613590.354
+ 41.500 34.400
+ -18295890.770 7 -14256536.798 7 21149420.112 21149416.781 21149418.280
+ 47.800 42.400
+ -259395.445 2 -202126.257 3 24387585.107 24387584.995 24387584.987
+ 12.600 23.000
+ -23510403.062 7 -18319797.729 7 20697598.002 20697596.865 20697596.885
+ 45.100 44.000
+ -13305987.321 6 -10368302.558 5 22401345.749 22401344.092 22401344.873
+ 39.400 34.400
+ -2600119.869 4 -2026068.814 3 24293864.911 24293864.852 24293864.273
+ 25.900 21.600
+ 06 1 2 15 11 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3314758.060 4 -2582930.607 3 23929071.215 23929071.281 23929069.986
+ 27.400 18.600
+ -22198587.532 7 -17297603.858 7 20542239.021 20542238.317 20542237.915
+ 46.800 44.600
+ -15156646.677 6 -11810368.710 5 21600009.677 21600008.374 21600009.027
+ 41.400 35.500
+ -18237455.463 7 -14211002.810 7 21160539.949 21160536.580 21160538.202
+ 47.900 42.400
+ -299641.243 3 -233486.606 3 24379926.822 24379926.940 24379926.373
+ 23.400 23.000
+ -23487752.387 7 -18302147.876 7 20701907.849 20701907.128 20701907.021
+ 45.300 43.900
+ -13378741.482 6 -10424994.121 5 22387501.239 22387499.362 22387500.389
+ 39.600 34.600
+ -2624715.808 4 -2045234.513 3 24289183.729 24289183.045 24289183.416
+ 25.300 18.600
+ 06 1 2 15 11 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -3211499.185 5 -2502469.191 3 23948720.896 23948721.001 23948720.003
+ 30.200 21.100
+ -22233880.967 7 -17325105.245 7 20535522.903 20535522.128 20535521.956
+ 46.600 44.600
+ -15227586.523 6 -11865646.506 5 21586510.286 21586508.955 21586509.686
+ 41.400 34.900
+ -18178664.924 8 -14165192.019 7 21171727.672 21171724.095 21171725.823
+ 48.000 42.200
+ -339309.356 4 -264396.858 3 24372378.147 24372378.424 24372377.579
+ 24.600 20.500
+ -23464560.532 7 -18284076.326 7 20706321.056 20706320.342 20706320.264
+ 45.100 43.700
+ -13451365.187 6 -10481584.024 5 22373681.794 22373679.751 22373680.831
+ 39.900 34.800
+ -2648779.693 4 -2063985.592 3 24284605.790 24284604.414 24284605.056
+ 27.900 21.100
+ 06 1 2 15 12 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3108171.204 4 -2421953.936 2 23968383.129 23968383.804 23968382.168
+ 28.600 17.800
+ -22268596.051 7 -17352155.967 7 20528916.837 20528916.105 20528915.816
+ 46.800 44.700
+ -15298094.427 6 -11920587.723 5 21573093.174 21573091.511 21573092.498
+ 41.200 34.300
+ -18119521.198 8 -14119106.016 7 21182982.193 21182978.781 21182980.404
+ 48.000 42.100
+ -378398.566 4 -294855.999 3 24364939.614 24364939.980 24364939.121
+ 25.300 19.900
+ -23440827.984 7 -18265583.458 7 20710837.233 20710836.618 20710836.345
+ 44.800 43.700
+ -13523857.670 6 -10538071.679 5 22359886.907 22359884.850 22359885.891
+ 39.900 35.300
+ -2672310.639 3 -2082321.420 3 24280126.469 24280126.915 24280125.910
+ 22.600 22.600
+ 06 1 2 15 12 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -3004775.899 4 -2341386.251 3 23988057.493 23988059.393 23988056.877
+ 26.800 19.900
+ -22302731.366 7 -17378754.928 7 20522420.896 20522420.528 20522419.939
+ 46.600 44.800
+ -15368168.126 6 -11975190.597 5 21559759.004 21559757.088 21559758.241
+ 41.900 35.200
+ -18060026.265 8 -14072746.349 7 21194303.822 21194300.387 21194301.877
+ 48.000 42.300
+ -416907.638 3 -324863.116 2 24357611.892 24357611.412 24357611.442
+ 23.400 17.000
+ -23416554.418 7 -18246669.021 7 20715456.464 20715455.868 20715455.492
+ 44.900 44.000
+ -13596218.115 6 -10594456.451 5 22346117.276 22346115.269 22346116.183
+ 40.600 35.600
+ -2695308.200 4 -2100241.618 4 24275751.138 24275751.261 24275750.529
+ 25.300 24.200
+ 06 1 2 15 13 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2901315.081 4 -2260767.529 3 24007746.210 24007747.374 24007745.273
+ 26.800 20.500
+ -22336284.609 7 -17404900.322 7 20516036.215 20516035.512 20516035.182
+ 46.600 44.800
+ -15437805.101 6 -12029453.161 5 21546507.229 21546505.682 21546506.515
+ 41.400 35.200
+ -18000182.203 8 -14026114.635 7 21205691.780 21205688.461 21205689.973
+ 48.000 42.300
+ -454835.127 3 -354416.982 2 24350394.601 24350394.222 24350394.069
+ 21.100 17.000
+ -23391740.230 7 -18227333.316 7 20720178.536 20720177.955 20720177.628
+ 45.100 44.100
+ -13668445.579 6 -10650737.594 6 22332372.742 22332371.042 22332371.754
+ 40.700 36.200
+ -2717771.671 4 -2117745.634 4 24271476.525 24271476.675 24271475.875
+ 24.900 24.200
+ 06 1 2 15 13 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -2797790.482 4 -2180099.093 2 24027446.276 24027446.976 24027445.313
+ 27.100 17.800
+ -22369254.163 7 -17430590.892 7 20509762.183 20509761.622 20509761.227
+ 46.800 44.800
+ -15507002.930 7 -12083373.531 5 21533339.493 21533337.526 21533338.738
+ 42.000 35.100
+ -17939990.763 8 -13979212.235 7 21217146.068 21217142.479 21217144.057
+ 48.200 42.300
+ -492179.923 3 -383516.825 3 24343287.647 24343287.738 24343287.184
+ 23.400 18.600
+ -23366385.778 7 -18207576.627 7 20725003.318 20725002.635 20725002.359
+ 45.100 43.800
+ -13740539.225 6 -10706914.462 5 22318653.678 22318651.789 22318652.647
+ 40.100 35.300
+ -2739700.825 3 -2134833.251 3 24267303.471 24267303.187 24267302.688
+ 23.000 23.800
+ 06 1 2 15 14 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2694203.428 4 -2099381.960 3 24047157.342 24047159.477 24047156.982
+ 26.800 20.500
+ -22401638.558 7 -17455825.501 7 20503599.619 20503598.987 20503598.724
+ 47.100 44.800
+ -15575759.544 6 -12136950.099 5 21520254.966 21520253.743 21520254.420
+ 41.700 35.400
+ -17879454.048 8 -13932040.786 6 21228665.524 21228662.191 21228663.785
+ 48.200 41.900
+ -528940.699 4 -412161.590 2 24336292.522 24336291.843 24336291.880
+ 26.500 17.000
+ -23340491.043 7 -18187398.938 7 20729930.871 20729930.229 20729930.022
+ 45.200 43.700
+ -13812498.366 6 -10762986.528 5 22304960.275 22304958.455 22304959.302
+ 40.000 35.700
+ -2761095.090 3 -2151504.115 3 24263232.162 24263231.973 24263231.548
+ 23.000 23.800
+ 06 1 2 15 14 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -2590555.604 4 -2018617.509 3 24066881.909 24066883.554 24066880.890
+ 25.300 21.600
+ -22433435.765 7 -17480602.555 7 20497548.921 20497548.222 20497547.980
+ 47.000 45.000
+ -15644072.343 7 -12190180.848 5 21507255.736 21507254.250 21507255.119
+ 42.000 35.300
+ -17818574.134 8 -13884601.909 7 21240250.719 21240247.231 21240248.866
+ 48.200 42.100
+ -565116.400 3 -440350.465 2 24329408.067 24329408.288 24329407.478
+ 19.900 16.100
+ -23314056.264 7 -18166800.441 7 20734961.360 20734960.573 20734960.456
+ 45.100 43.500
+ -13884321.670 6 -10818952.746 5 22291292.820 22291290.852 22291291.821
+ 40.200 34.900
+ -2781953.611 3 -2167757.509 4 24259262.922 24259262.829 24259262.195
+ 21.600 24.600
+ 06 1 2 15 15 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2486848.898 4 -1937807.200 3 24086617.006 24086617.861 24086616.099
+ 25.900 18.600
+ -22464644.464 7 -17504921.032 7 20491610.183 20491609.403 20491609.199
+ 47.100 44.800
+ -15711938.746 7 -12243063.748 6 21494341.079 21494339.855 21494340.521
+ 42.200 36.000
+ -17757353.052 8 -13836897.182 6 21251900.580 21251897.275 21251898.756
+ 48.000 41.800
+ -600705.794 3 -468082.463 2 24322635.897 24322635.197 24322635.310
+ 20.500 12.600
+ -23287081.703 7 -18145781.323 7 20740094.720 20740093.708 20740093.602
+ 45.200 43.500
+ -13956008.552 6 -10874812.655 5 22277651.258 22277649.456 22277650.197
+ 40.100 35.700
+ -2802276.171 4 -2183593.258 4 24255395.835 24255395.550 24255394.970
+ 24.200 24.600
+ 06 1 2 15 15 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -2383085.008 4 -1856952.276 2 24106363.900 24106363.476 24106362.740
+ 28.800 17.800
+ -22495262.605 7 -17528779.337 7 20485783.639 20485782.925 20485782.718
+ 47.000 44.800
+ -15779356.721 6 -12295597.199 5 21481512.072 21481510.657 21481511.306
+ 41.900 35.700
+ -17695792.720 7 -13788928.110 6 21263614.931 21263611.808 21263613.238
+ 47.600 41.800
+ -635707.606 2 -495356.606 2 24315975.035 24315975.569 24315974.903
+ 17.800 17.800
+ -23259567.838 7 -18124341.971 7 20745330.183 20745329.495 20745329.245
+ 45.100 43.500
+ -14027558.060 6 -10930565.518 5 22264036.022 22264033.958 22264034.890
+ 40.400 35.700
+ -2822062.138 4 -2199010.943 4 24251630.236 24251630.793 24251629.889
+ 24.200 25.900
+ 06 1 2 15 16 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2279265.560 4 -1776054.066 2 24126119.832 24126119.238 24126118.896
+ 29.200 17.800
+ -22525288.334 7 -17552176.017 7 20480070.217 20480069.257 20480069.175
+ 47.000 45.000
+ -15846324.447 7 -12347779.808 5 21468768.072 21468766.830 21468767.667
+ 42.300 35.500
+ -17633895.179 7 -13740696.278 6 21275393.871 21275390.401 21275392.098
+ 47.600 41.600
+ -670120.846 3 -522172.105 2 24309426.718 24309425.873 24309426.297
+ 21.600 13.900
+ -23231514.781 7 -18102482.471 7 20750668.373 20750667.912 20750667.532
+ 45.200 43.600
+ -14098969.473 6 -10986210.788 6 22250446.775 22250444.961 22250445.733
+ 40.700 36.500
+ -2841311.603 4 -2214010.529 4 24247967.993 24247967.662 24247967.050
+ 24.600 25.600
+ 06 1 2 15 16 30.0000000 0 8G03G08G11G19G26G27G28G29
+ -2175392.138 4 -1695113.801 2 24145885.884 24145885.772 24145885.103
+ 27.100 17.000
+ -22554720.349 7 -17575110.064 7 20474469.431 20474468.646 20474468.461
+ 46.800 45.000
+ -15912839.093 7 -12399609.375 5 21456111.138 21456109.624 21456110.474
+ 42.400 35.600
+ -17571662.415 7 -13692203.235 6 21287236.208 21287232.924 21287234.472
+ 47.400 41.500
+ -703944.449 3 -548528.192 3 24302990.522 24302990.877 24302990.003
+ 23.400 19.900
+ -23202923.245 7 -18080203.374 7 20756109.497 20756108.622 20756108.459
+ 45.200 43.400
+ -14170241.933 6 -11041747.763 6 22236884.074 22236882.140 22236883.089
+ 41.000 36.000
+ -2860023.474 4 -2228591.221 4 24244406.911 24244406.744 24244406.328
+ 26.800 24.600
+ 06 1 2 15 17 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2071466.270 4 -1614132.681 2 24165662.074 24165662.571 24165660.992
+ 25.300 15.100
+ -22583557.198 7 -17597580.349 7 20468981.846 20468981.171 20468980.881
+ 47.000 45.100
+ -15978898.619 7 -12451084.301 5 21443540.350 21443538.687 21443539.698
+ 42.600 35.400
+ -17509096.253 7 -13643450.401 6 21299142.371 21299138.969 21299140.591
+ 47.300 41.400
+ -737177.200 3 -574423.905 2 24296666.199 24296666.115 24296665.677
+ 22.100 12.600
+ -23173793.401 7 -18057504.823 7 20761652.388 20761651.971 20761651.558
+ 45.100 43.400
+ -14241374.213 6 -11097175.517 5 22223348.377 22223346.045 22223347.313
+ 41.200 35.700
+ -2878197.731 4 -2242752.989 4 24240948.439 24240948.319 24240947.743
+ 25.600 26.200
+ 06 1 2 15 17 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1967489.503 4 -1533111.909 2 24185448.263 24185448.997 24185447.208
+ 26.800 17.800
+ -22611796.711 7 -17619585.172 7 20463608.246 20463607.327 20463607.213
+ 47.000 45.100
+ -16044500.628 7 -12502202.723 5 21431056.820 21431055.185 21431056.258
+ 42.800 35.800
+ -179002.093 2 -139482.430 3 24687845.685 24687846.351 24687844.979
+ 17.000 21.600
+ -17446198.797 7 -13594439.417 6 21311111.302 21311108.017 21311109.574
+ 47.300 41.500
+ -769818.140 3 -599858.336 1 24290454.996 24290454.616 24290454.503
+ 19.900 9.000
+ -23144125.820 7 -18034387.254 7 20767298.151 20767297.605 20767297.207
+ 45.100 43.600
+ -14312365.768 6 -11152493.628 5 22209838.926 22209836.683 22209837.872
+ 41.100 35.600
+ -2895834.150 3 -2256495.649 4 24237591.858 24237592.690 24237591.382
+ 21.100 27.600
+ 06 1 2 15 18 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1863463.523 4 -1452052.760 3 24205243.651 24205244.931 24205242.639
+ 27.100 21.100
+ -22639437.991 7 -17641123.841 7 20458348.165 20458347.286 20458347.201
+ 47.200 45.100
+ -16109642.790 7 -12552962.811 6 21418660.266 21418658.962 21418659.775
+ 42.700 36.200
+ -282118.866 3 -219833.166 3 24668223.728 24668223.881 24668222.860
+ 19.300 22.100
+ -17382972.119 7 -13545171.894 6 21323143.127 21323139.593 21323141.257
+ 47.500 41.300
+ -801866.240 3 -624830.888 24284356.611 24284356.078 24284355.882
+ 21.600 3.000
+ -23113920.739 7 -18010850.846 7 20773046.282 20773045.335 20773045.197
+ 45.200 43.300
+ -14383215.380 6 -11207701.122 6 22196356.645 22196354.644 22196355.645
+ 41.100 36.400
+ -2912932.073 3 -2269818.708 4 24234338.815 24234338.795 24234338.199
+ 23.000 25.900
+ 06 1 2 15 18 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1759389.917 4 -1370956.499 2 24225048.390 24225049.222 24225047.300
+ 27.900 17.000
+ -22666479.363 7 -17662195.049 7 20453202.295 20453201.575 20453201.294
+ 46.800 45.000
+ -16174323.082 7 -12603362.999 5 21406352.436 21406350.348 21406351.719
+ 43.000 35.700
+ -385121.913 3 -300095.311 4 24648622.572 24648622.983 24648621.878
+ 19.300 26.800
+ -17319418.160 7 -13495649.346 6 21335237.008 21335233.633 21335235.117
+ 47.500 41.400
+ -833320.414 3 -649340.732 2 24278370.604 24278371.224 24278369.771
+ 22.100 15.100
+ -23083178.268 7 -17986895.694 7 20778896.091 20778895.474 20778895.137
+ 45.100 43.300
+ -14453922.334 6 -11262797.451 6 22182901.571 22182899.624 22182900.577
+ 41.100 36.500
+ -2929491.337 3 -2282722.018 4 24231187.259 24231187.673 24231186.579
+ 23.000 26.800
+ 06 1 2 15 19 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1655270.278 4 -1289824.373 2 24244860.406 24244862.298 24244860.292
+ 24.600 15.100
+ -22692918.731 7 -17682797.163 7 20448171.103 20448170.254 20448170.089
+ 46.700 44.900
+ -16238539.332 7 -12653401.613 6 21394132.152 21394130.660 21394131.542
+ 42.700 36.000
+ -488009.886 3 -380267.739 4 24629043.628 24629044.289 24629043.038
+ 20.500 26.800
+ -17255539.105 7 -13445873.476 6 21347392.706 21347389.466 21347390.913
+ 47.500 41.300
+ -864179.655 4 -673386.865 3 24272498.972 24272498.610 24272498.522
+ 25.900 18.600
+ -23051899.148 7 -17962522.377 7 20784848.326 20784847.787 20784847.399
+ 45.200 43.400
+ -14524485.681 6 -11317781.866 6 22169473.921 22169471.893 22169472.852
+ 41.300 36.600
+ -2945511.646 3 -2295205.394 4 24228139.324 24228138.955 24228138.489
+ 23.000 25.300
+ 06 1 2 15 19 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1551106.420 4 -1208657.770 2 24264683.616 24264684.411 24264682.642
+ 25.300 17.000
+ -22718754.952 7 -17702929.294 7 20443254.457 20443253.731 20443253.519
+ 46.900 44.900
+ -16302289.301 7 -12703076.879 6 21382000.414 21381999.616 21382000.140
+ 42.900 36.300
+ -590781.559 3 -460349.559 4 24609486.495 24609487.657 24609486.219
+ 21.100 25.900
+ -17191336.825 7 -13395845.745 6 21359610.178 21359606.779 21359608.240
+ 47.400 41.300
+ -894443.287 3 -696968.918 2 24266739.997 24266739.328 24266739.445
+ 22.100 12.600
+ -23020084.062 7 -17937731.428 7 20790902.690 20790902.036 20790901.667
+ 45.300 43.400
+ -14594903.991 7 -11372653.281 6 22156073.776 22156071.688 22156072.852
+ 42.000 36.700
+ -2960992.665 3 -2307268.523 4 24225193.114 24225193.234 24225192.343
+ 23.400 26.500
+ 06 1 2 15 20 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1446899.619 4 -1127457.749 3 24284514.202 24284514.175 24284512.957
+ 24.900 18.600
+ -22743986.814 7 -17722590.494 7 20438453.212 20438452.319 20438452.174
+ 46.700 44.900
+ -16365570.803 7 -12752387.115 6 21369958.944 21369957.289 21369958.293
+ 42.800 36.200
+ -693435.943 4 -540340.018 3 24589952.844 24589952.964 24589952.205
+ 24.200 23.800
+ -17126813.293 7 -13345567.692 6 21371888.496 21371885.184 21371886.644
+ 47.300 41.100
+ -924110.212 4 -720085.975 2 24261094.679 24261093.897 24261094.060
+ 27.400 16.100
+ -22987733.005 7 -17912522.834 7 20797058.794 20797058.173 20797057.850
+ 45.300 43.100
+ -14665177.323 6 -11427411.711 6 22142701.032 22142699.194 22142700.067
+ 41.400 36.700
+ -2975934.344 3 -2318911.409 4 24222349.839 24222349.780 24222349.118
+ 23.000 26.200
+ 06 1 2 15 20 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1342651.438 4 -1046225.489 3 24304351.427 24304352.579 24304350.311
+ 25.300 18.600
+ -22768612.444 7 -17741779.306 7 20433767.137 20433766.257 20433766.139
+ 46.700 44.900
+ -16428381.562 7 -12801330.531 6 21358006.941 21358004.733 21358005.982
+ 43.100 36.000
+ -795972.042 4 -620238.310 3 24570440.580 24570441.118 24570440.367
+ 26.800 23.800
+ -17061970.619 7 -13295040.953 6 21384227.593 21384224.313 21384225.833
+ 47.500 41.200
+ -953179.381 4 -742737.336 2 24255562.290 24255562.095 24255561.741
+ 24.200 13.900
+ -22954846.708 7 -17886897.173 7 20803316.930 20803316.278 20803315.940
+ 45.200 43.300
+ -14735304.190 6 -11482056.026 6 22129356.257 22129354.269 22129355.354
+ 41.500 36.600
+ -2990336.252 3 -2330133.651 4 24219608.679 24219609.131 24219608.099
+ 21.100 27.100
+ 06 1 2 15 21 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1238363.476 3 -964962.230 2 24324196.406 24324197.654 24324195.490
+ 22.600 17.000
+ -22792630.712 7 -17760494.854 7 20429196.514 20429195.742 20429195.529
+ 46.800 45.000
+ -16490719.500 7 -12849905.544 6 21346143.927 21346142.221 21346143.269
+ 42.800 36.200
+ -898387.893 4 -700042.921 4 24550952.039 24550952.222 24550951.257
+ 28.400 25.900
+ -16996810.436 7 -13244266.809 6 21396627.350 21396623.959 21396625.544
+ 47.600 40.900
+ -981650.111 4 -764922.360 2 24250144.373 24250144.943 24250144.083
+ 25.600 17.800
+ -22921425.531 7 -17860854.724 7 20809676.604 20809676.234 20809675.778
+ 45.300 43.200
+ -14805283.623 6 -11536585.452 6 22116039.726 22116037.883 22116038.766
+ 41.600 36.900
+ -3004198.275 3 -2340935.254 4 24216971.255 24216971.505 24216970.467
+ 22.600 26.500
+ 06 1 2 15 21 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1134037.166 4 -883669.063 3 24344048.772 24344049.880 24344048.325
+ 26.200 19.300
+ -22816039.524 7 -17778735.500 7 20424742.039 20424741.324 20424741.006
+ 46.700 45.100
+ -16552582.223 7 -12898110.261 6 21334371.737 21334370.302 21334371.129
+ 42.900 36.800
+ -1000682.876 4 -779753.345 3 24531486.113 24531485.789 24531485.519
+ 28.800 23.000
+ -16931335.197 7 -13193247.164 6 21409087.222 21409083.546 21409085.175
+ 47.500 41.000
+ -1009521.490 4 -786640.297 3 24244841.162 24244841.470 24244840.638
+ 27.400 21.100
+ -22887470.263 7 -17834396.102 7 20816138.400 20816137.780 20816137.383
+ 45.300 43.300
+ -14875114.613 6 -11590999.210 6 22102751.473 22102749.546 22102750.460
+ 41.800 37.500
+ -3017519.972 4 -2351315.827 4 24214436.387 24214436.483 24214435.660
+ 24.600 27.100
+ 06 1 2 15 22 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1029674.158 3 -802347.266 2 24363908.944 24363909.226 24363907.885
+ 23.400 16.100
+ -22838838.021 7 -17796500.575 7 20420403.510 20420402.951 20420402.573
+ 46.700 45.300
+ -16613968.225 7 -12945943.506 6 21322690.400 21322688.862 21322689.782
+ 43.400 36.500
+ -1102855.390 4 -859368.312 2 24512042.591 24512042.984 24512042.281
+ 26.500 17.800
+ -16865546.805 7 -13141983.508 6 21421606.034 21421602.702 21421604.173
+ 47.500 41.100
+ -1036792.798 4 -807890.687 3 24239651.504 24239651.804 24239651.092
+ 29.000 22.100
+ -22852981.546 7 -17807521.809 7 20822701.331 20822700.733 20822700.400
+ 45.500 43.100
+ -14944796.358 6 -11645296.665 6 22089491.159 22089489.356 22089490.214
+ 41.600 36.900
+ -3030301.609 4 -2361275.523 4 24212004.310 24212003.882 24212003.489
+ 24.600 27.400
+ 06 1 2 15 22 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -925276.201 4 -720998.252 2 24383774.667 24383775.827 24383774.075
+ 24.200 15.100
+ -22861024.878 7 -17813789.049 7 20416181.615 20416180.889 20416180.657
+ 46.700 45.200
+ -16674875.163 7 -12993403.455 6 21311100.427 21311098.584 21311099.694
+ 43.400 36.500
+ -1204904.471 3 -938887.102 3 24492623.052 24492623.982 24492622.405
+ 23.000 20.500
+ -16799446.998 7 -13090477.186 6 21434184.575 21434181.087 21434182.672
+ 47.300 40.900
+ -1063463.222 4 -828672.830 4 24234576.554 24234576.555 24234576.134
+ 28.800 24.600
+ -22817959.818 7 -17780232.177 7 20829365.868 20829365.178 20829364.888
+ 45.400 43.100
+ -15014327.955 6 -11699477.128 6 22076260.047 22076257.931 22076258.922
+ 41.800 37.100
+ -3042542.843 4 -2370814.156 4 24209674.495 24209674.941 24209673.791
+ 24.200 29.200
+ 06 1 2 15 23 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -820844.630 4 -639623.078 3 24403648.457 24403649.398 24403647.691
+ 27.400 19.900
+ -22882598.590 7 -17830599.747 7 20412076.150 20412075.545 20412075.278
+ 46.700 45.200
+ -16735300.821 7 -13040488.369 6 21299601.748 21299600.045 21299601.018
+ 43.400 36.600
+ -1306828.839 3 -1018308.688 3 24473227.476 24473228.213 24473227.007
+ 22.100 20.500
+ -16733038.134 7 -13038730.041 6 21446821.619 21446818.256 21446819.704
+ 47.100 40.900
+ -1089531.791 4 -848986.051 3 24229615.511 24229615.699 24229614.917
+ 27.900 21.100
+ -22782405.689 7 -17752527.690 7 20836131.569 20836130.951 20836130.620
+ 45.400 43.100
+ -15083708.430 7 -11753539.835 6 22063057.263 22063055.237 22063056.342
+ 42.200 37.000
+ -3054243.388 3 -2379931.491 4 24207447.987 24207447.832 24207447.194
+ 22.600 26.500
+ 06 1 2 15 23 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -716380.914 4 -558222.873 3 24423526.804 24423528.004 24423525.967
+ 25.900 19.300
+ -22903557.735 7 -17846931.566 7 20408087.928 20408087.174 20408086.960
+ 47.000 45.100
+ -16795242.925 7 -13087196.490 6 21288195.260 21288193.453 21288194.440
+ 43.400 36.700
+ -1408627.430 3 -1097632.291 3 24453856.429 24453856.416 24453855.622
+ 23.000 19.900
+ -16666321.930 7 -12986743.414 6 21459517.142 21459513.929 21459515.293
+ 47.000 40.700
+ -1114997.998 5 -868829.856 4 24224770.093 24224770.074 24224769.561
+ 30.400 25.900
+ -22746319.800 7 -17724408.850 7 20842998.240 20842997.803 20842997.430
+ 45.200 42.600
+ -15152936.779 7 -11807484.002 6 22049883.344 22049881.514 22049882.436
+ 42.000 37.200
+ -3065403.513 4 -2388627.683 4 24205324.240 24205324.628 24205323.665
+ 24.200 27.100
+ 06 1 2 15 24 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -611886.669 3 -476798.829 2 24443411.746 24443412.670 24443410.548
+ 22.600 17.800
+ -22923901.037 7 -17862783.508 7 20404216.640 20404216.027 20404215.778
+ 46.900 45.300
+ -16854699.910 7 -13133526.589 6 21276880.445 21276879.284 21276880.013
+ 43.900 37.200
+ -1510298.909 3 -1176856.851 3 24434509.107 24434509.638 24434508.493
+ 22.600 22.100
+ -16599300.395 7 -12934518.868 6 21472270.991 21472267.773 21472269.130
+ 46.800 40.800
+ -1139860.979 5 -888203.639 4 24220038.628 24220038.667 24220038.147
+ 30.100 25.900
+ -22709702.828 7 -17695876.175 7 20849966.472 20849965.628 20849965.404
+ 45.000 42.500
+ -15222011.717 7 -11861308.618 6 22036738.936 22036737.240 22036737.993
+ 42.200 37.800
+ -3076022.705 3 -2396902.413 4 24203302.954 24203303.855 24203302.426
+ 22.100 28.400
+ 06 1 2 15 24 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -507363.400 4 -395352.193 2 24463301.248 24463302.738 24463300.676
+ 25.300 12.600
+ -22943627.485 7 -17878154.781 7 20400463.244 20400462.186 20400462.216
+ 46.900 45.200
+ -16913669.299 7 -13179476.745 6 21265659.767 21265657.743 21265658.833
+ 43.800 37.200
+ -1611842.280 3 -1255981.520 4 24415186.063 24415186.299 24415185.333
+ 21.600 24.200
+ -16531975.697 7 -12882058.097 6 21485082.409 21485079.109 21485080.584
+ 46.700 40.500
+ -1164120.108 4 -907106.819 4 24215422.458 24215422.429 24215421.908
+ 27.900 25.600
+ -22672555.403 7 -17666930.162 7 20857035.237 20857034.693 20857034.340
+ 45.200 42.500
+ -15290932.638 7 -11915013.226 6 22023623.844 22023621.916 22023622.807
+ 42.000 37.900
+ -3086101.304 3 -2404755.873 4 24201385.683 24201385.928 24201385.228
+ 22.600 28.800
+ 06 1 2 15 25 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -402812.364 4 -313883.952 3 24483197.716 24483198.211 24483196.785
+ 27.600 19.900
+ -22962735.588 7 -17893044.227 7 20396826.789 20396826.027 20396825.880
+ 47.000 45.200
+ -16972149.410 7 -13225045.643 6 21254531.226 21254529.123 21254530.437
+ 43.800 36.700
+ -1713256.213 3 -1335005.379 4 24395887.160 24395887.966 24395886.724
+ 23.000 24.200
+ -16464349.606 7 -12829362.469 6 21497951.518 21497948.082 21497949.596
+ 47.000 40.500
+ -1187774.708 4 -925538.990 4 24210920.777 24210921.003 24210920.383
+ 28.100 26.800
+ -22634878.100 7 -17637571.258 7 20864205.218 20864204.500 20864204.171
+ 45.200 42.700
+ -15359698.526 7 -11968597.035 6 22010537.969 22010535.947 22010536.989
+ 42.200 37.300
+ -3095639.103 3 -2412187.923 4 24199570.825 24199570.966 24199570.037
+ 23.000 29.000
+ 06 1 2 15 25 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -298235.096 4 -232395.239 2 24503097.646 24503098.127 24503096.901
+ 25.600 13.900
+ -22981223.823 7 -17907450.658 7 20393308.704 20393307.946 20393307.755
+ 47.100 45.300
+ -17030137.792 7 -13270231.385 6 21243496.344 21243494.231 21243495.616
+ 43.900 37.200
+ -1814539.457 4 -1413927.354 4 24376613.760 24376614.254 24376613.559
+ 26.500 26.200
+ -16396424.472 7 -12776433.818 6 21510877.231 21510873.704 21510875.316
+ 47.000 40.300
+ -1210824.116 4 -943499.592 4 24206534.649 24206535.098 24206534.100
+ 27.400 28.100
+ -22596672.028 7 -17607800.322 7 20871475.566 20871474.896 20871474.614
+ 45.100 42.300
+ -15428308.470 7 -12022059.330 6 21997481.666 21997480.113 21997480.741
+ 42.000 37.800
+ -3104636.111 3 -2419198.575 4 24197858.021 24197858.813 24197857.446
+ 19.900 29.500
+ 06 1 2 15 26 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -193633.157 3 -150887.272 1 24523001.993 24523002.868 24523000.949
+ 21.600 11.000
+ -22999091.217 7 -17921373.316 7 20389908.771 20389907.914 20389907.791
+ 47.000 45.400
+ -17087632.857 7 -13315032.727 6 21232554.922 21232553.112 21232554.508
+ 44.100 36.900
+ -1915690.888 4 -1492746.635 4 24357365.739 24357365.799 24357364.751
+ 26.500 25.900
+ -16328202.044 7 -12723273.511 6 21523859.494 21523856.096 21523857.613
+ 47.100 40.400
+ -1233267.820 4 -960988.235 4 24202263.845 24202264.006 24202263.365
+ 25.300 28.100
+ -22557937.497 7 -17577617.607 7 20878846.386 20878845.786 20878845.530
+ 44.900 42.200
+ -15496761.051 7 -12075398.993 6 21984455.653 21984454.054 21984454.739
+ 42.300 38.200
+ -3113092.503 3 -2425788.009 4 24196249.083 24196249.478 24196248.717
+ 21.600 28.400
+ 06 1 2 15 26 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -89008.030 3 -69361.289 1 24542912.566 24542911.714 24542910.966
+ 22.100 6.500
+ -23016337.003 7 -17934811.605 7 20386626.794 20386626.093 20386625.884
+ 46.800 45.200
+ -17144632.594 7 -13359448.102 6 21221708.366 21221706.619 21221707.764
+ 44.000 37.200
+ -2016709.524 3 -1571462.424 4 24338141.869 24338142.468 24338141.297
+ 22.100 24.600
+ -16259684.266 7 -12669883.061 6 21536898.044 21536894.556 21536896.106
+ 47.000 40.200
+ -1255105.089 4 -978004.268 4 24198108.243 24198108.455 24198107.637
+ 25.900 29.200
+ -22518675.504 7 -17547023.880 7 20886318.059 20886317.203 20886316.809
+ 45.000 42.300
+ -15565055.527 7 -12128615.467 6 21971459.684 21971457.888 21971458.784
+ 42.500 38.100
+ -3121008.255 3 -2431956.119 4 24194743.694 24194743.736 24194742.694
+ 22.600 28.800
+ 06 1 2 15 27 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 15638.873 4 12181.748 2 24562825.774 24562826.489 24562825.160
+ 25.900 16.100
+ -23032959.240 7 -17947764.011 7 20383463.852 20383463.002 20383462.803
+ 46.900 45.200
+ -17201135.029 7 -13403475.958 6 21210956.059 21210954.585 21210955.638
+ 44.300 37.400
+ -2117593.841 3 -1650073.545 4 24318944.025 24318945.057 24318943.787
+ 21.600 25.900
+ -16190873.070 7 -12616263.978 6 21549992.169 21549988.974 21549990.266
+ 46.900 39.800
+ -1276335.393 3 -994547.382 5 24194067.960 24194068.681 24194067.478
+ 23.000 30.800
+ -22478886.737 7 -17516019.679 7 20893888.966 20893888.788 20893888.208
+ 45.000 42.200
+ -15633190.865 7 -12181707.937 6 21958494.079 21958492.309 21958493.045
+ 42.200 38.400
+ -3128383.424 3 -2437703.032 4 24193339.945 24193339.679 24193339.195
+ 22.600 26.500
+ 06 1 2 15 27 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 120306.051 4 93740.508 2 24582743.773 24582745.062 24582743.013
+ 26.200 17.000
+ -23048956.905 7 -17960229.735 7 20380419.327 20380418.691 20380418.420
+ 46.600 45.300
+ -17257138.105 7 -13447114.700 6 21200299.315 21200297.515 21200298.647
+ 43.800 37.700
+ -2218343.019 4 -1728579.333 4 24299772.783 24299772.884 24299772.198
+ 24.900 24.600
+ -16121770.553 7 -12562417.886 6 21563142.005 21563138.903 21563140.145
+ 46.500 40.200
+ -1296958.207 3 -1010617.115 5 24190143.466 24190144.311 24190143.095
+ 21.600 30.200
+ -22438571.870 7 -17484605.543 7 20901561.048 20901560.556 20901560.106
+ 45.300 42.300
+ -15701166.254 7 -12234675.766 6 21945558.921 21945556.904 21945557.900
+ 42.500 38.100
+ -3135217.962 3 -2443028.684 4 24192038.761 24192039.649 24192037.929
+ 19.300 29.700
+ 06 1 2 15 28 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 224992.135 4 175314.009 2 24602665.088 24602665.909 24602664.089
+ 25.600 16.100
+ -23064329.104 7 -17972208.082 7 20377494.400 20377493.559 20377493.422
+ 46.800 45.200
+ -17312639.903 7 -13490362.825 6 21189737.581 21189735.820 21189736.923
+ 43.900 37.300
+ -2318955.746 4 -1806978.829 4 24280626.909 24280627.043 24280625.984
+ 26.500 25.900
+ -16052378.716 7 -12508346.355 6 21576346.946 21576343.665 21576344.933
+ 46.500 40.100
+ -1316973.075 3 -1026213.138 4 24186334.613 24186335.946 24186334.054
+ 22.100 27.600
+ -22397731.585 7 -17452781.981 7 20909333.099 20909332.252 20909331.914
+ 45.100 42.400
+ -15768980.475 7 -12287518.018 6 21932653.988 21932652.245 21932653.131
+ 42.600 37.900
+ -3141512.149 3 -2447933.260 4 24190841.618 24190841.601 24190841.076
+ 21.600 29.200
+ 06 1 2 15 28 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 329695.800 3 256901.200 2 24622587.806 24622589.769 24622587.122
+ 21.600 13.900
+ -23079074.807 7 -17983698.252 7 20374688.056 20374687.545 20374687.144
+ 46.600 45.300
+ -17367638.699 7 -13533218.995 6 21179272.018 21179269.823 21179271.147
+ 44.000 37.400
+ -2419430.864 4 -1885271.071 4 24261506.946 24261506.929 24261506.203
+ 25.900 25.900
+ -15982699.603 7 -12454050.972 6 21589606.323 21589603.311 21589604.564
+ 46.700 40.100
+ -1336379.377 3 -1041334.912 4 24182642.105 24182642.451 24182641.768
+ 23.400 28.400
+ -22356367.082 7 -17420549.942 7 20917203.897 20917203.667 20917203.180
+ 45.200 42.100
+ -15836632.384 7 -12340233.785 6 21919780.533 21919778.536 21919779.515
+ 42.500 38.300
+ -3147265.852 3 -2452416.690 4 24189746.764 24189746.818 24189746.031
+ 20.500 28.100
+ 06 1 2 15 29 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 434415.466 3 338500.892 2 24642516.669 24642516.897 24642515.756
+ 22.600 13.900
+ -23093192.541 7 -17994699.098 7 20372001.731 20372001.008 20372000.692
+ 46.500 45.100
+ -17422132.539 7 -13575681.707 6 21168901.503 21168899.956 21168901.021
+ 44.100 37.500
+ -2519766.880 4 -1963454.951 4 24242413.729 24242413.350 24242413.045
+ 27.600 25.900
+ -15912734.989 7 -12399533.120 6 21602920.287 21602916.995 21602918.420
+ 46.500 39.600
+ -1355176.754 3 -1055982.238 5 24179064.828 24179065.672 24179064.330
+ 19.300 30.100
+ -22314479.079 7 -17387909.985 7 20925175.472 20925174.589 20925174.390
+ 45.200 42.000
+ -15904121.141 7 -12392822.427 6 21906937.604 21906935.859 21906936.705
+ 42.500 38.100
+ -3152479.424 3 -2456479.232 4 24188754.270 24188754.185 24188753.399
+ 18.600 25.300
+ 06 1 2 15 29 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 539149.598 3 420111.851 2 24662446.947 24662447.319 24662445.893
+ 22.100 12.600
+ -23106681.832 7 -18005210.243 7 20369434.618 20369434.156 20369433.614
+ 46.200 45.200
+ -17476119.406 7 -13617749.377 6 21158628.311 21158626.659 21158627.599
+ 44.300 37.700
+ -2619963.077 5 -2041529.865 4 24223346.646 24223347.084 24223346.185
+ 31.100 28.600
+ -15842487.402 7 -12344794.768 6 21616287.870 21616284.818 21616286.011
+ 46.500 39.700
+ -1373364.873 3 -1070154.813 5 24175603.849 24175604.494 24175603.264
+ 22.600 30.100
+ -22272068.631 7 -17354862.912 7 20933245.662 20933245.124 20933244.764
+ 45.000 42.000
+ -15971445.694 7 -12445283.118 6 21894126.408 21894124.375 21894125.434
+ 43.100 38.000
+ -3157153.174 4 -2460121.163 4 24187865.143 24187865.232 24187864.584
+ 24.200 26.800
+ 06 1 2 15 30 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 643896.867 3 501733.065 2 24682379.253 24682380.465 24682378.656
+ 23.000 15.100
+ -23119541.048 7 -18015230.421 7 20366987.465 20366987.132 20366986.516
+ 46.300 45.200
+ -17529597.500 7 -13659420.615 6 21148451.661 21148450.112 21148451.101
+ 44.300 37.500
+ -2720018.302 4 -2119494.939 4 24204307.175 24204306.957 24204306.335
+ 29.700 29.700
+ -15771957.993 7 -12289836.816 6 21629709.059 21629705.908 21629707.416
+ 46.600 39.200
+ -1390943.256 3 -1083852.291 4 24172258.676 24172259.378 24172258.348
+ 20.500 29.900
+ -22229136.677 7 -17321409.485 6 20941415.095 20941414.876 20941414.406
+ 45.300 41.900
+ -16038605.029 7 -12497615.072 6 21881346.510 21881344.456 21881345.508
+ 43.300 38.400
+ -3161287.081 3 -2463342.383 4 24187078.774 24187078.702 24187077.904
+ 22.100 27.900
+ 06 1 2 15 30 30.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 748656.152 3 583363.618 3 24702315.015 24702316.793 24702313.871
+ 21.100 21.100
+ -23131769.524 7 -18024759.110 7 20364660.634 20364660.085 20364659.651
+ 46.200 45.200
+ -17582565.087 7 -13700694.041 6 21138372.450 21138370.739 21138371.799
+ 44.300 37.700
+ -2819931.084 4 -2197348.971 4 24185294.003 24185294.266 24185293.488
+ 29.200 29.200
+ -15701149.118 7 -12234661.097 6 21643183.824 21643180.601 21643181.958
+ 46.400 39.500
+ -1407911.598 3 -1097074.370 4 24169029.711 24169030.217 24169029.280
+ 20.500 28.600
+ -22185683.705 7 -17287550.062 6 20949684.774 20949683.722 20949683.491
+ 45.300 41.900
+ -16105598.046 7 -12549817.427 6 21868597.948 21868596.289 21868597.034
+ 43.100 38.800
+ -3164881.518 3 -2466143.263 4 24186394.505 24186394.890 24186393.895
+ 22.100 29.700
+ 06 1 2 15 31 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23143366.079 7 -18033795.397 7 20362453.918 20362453.352 20362452.954
+ 46.300 45.200
+ -17635020.520 7 -13741568.380 6 21128390.344 21128388.605 21128389.774
+ 44.500 37.700
+ -2919700.645 4 -2275091.439 4 24166308.430 24166308.550 24166307.764
+ 29.700 28.400
+ -15630062.776 7 -12179269.170 6 21656711.041 21656707.870 21656709.327
+ 46.500 39.400
+ -1424269.478 3 -1109820.830 4 24165917.521 24165917.795 24165916.931
+ 19.900 28.400
+ -22141710.941 7 -17253285.608 6 20958052.138 20958051.429 20958051.210
+ 45.200 41.400
+ -16172423.725 7 -12601889.382 6 21855881.653 21855879.621 21855880.544
+ 42.900 38.700
+ -3167936.684 3 -2468523.940 4 24185813.524 24185813.574 24185812.748
+ 23.000 28.800
+ 06 1 2 15 31 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23154330.080 7 -18042338.784 7 20360367.526 20360366.960 20360366.544
+ 46.300 45.300
+ -17686961.601 7 -13782041.927 6 21118506.579 21118504.566 21118505.908
+ 44.600 37.900
+ -3019325.796 4 -2352721.394 4 24147350.067 24147350.613 24147349.480
+ 28.600 28.800
+ -15558701.078 7 -12123662.681 6 21670290.801 21670287.649 21670288.956
+ 46.500 39.700
+ -1440016.725 2 -1122091.351 3 24162920.209 24162920.338 24162919.505
+ 16.100 20.500
+ -22097219.298 7 -17218616.836 6 20966518.595 20966518.146 20966517.742
+ 45.400 41.600
+ -16239081.041 7 -12653830.139 6 21843196.726 21843195.112 21843195.800
+ 42.700 38.700
+ -3170452.951 3 -2470484.704 4 24185333.691 24185334.677 24185333.178
+ 22.100 28.400
+ 06 1 2 15 32 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23164660.092 7 -18050388.150 7 20358402.011 20358401.279 20358401.008
+ 46.400 45.300
+ -17738386.915 7 -13822113.575 6 21108720.776 21108718.607 21108720.001
+ 44.500 38.100
+ -3118805.502 4 -2430238.024 4 24128420.078 24128420.193 24128419.191
+ 28.100 29.200
+ -15487065.773 7 -12067842.995 6 21683922.621 21683919.527 21683920.688
+ 46.200 39.500
+ -1455152.746 2 -1133885.679 4 24160039.777 24160039.852 24160039.672
+ 16.100 27.400
+ -22052209.810 7 -17183544.543 6 20975084.064 20975083.263 20975082.848
+ 45.200 41.600
+ -16305568.853 7 -12705638.825 6 21830544.902 21830542.950 21830543.794
+ 43.000 39.200
+ -3172430.323 3 -2472025.536 4 24184957.924 24184958.422 24184956.930
+ 18.600 29.500
+ 06 1 2 15 32 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23174355.751 7 -18057943.219 7 20356556.899 20356556.309 20356555.979
+ 46.500 45.300
+ -17789294.405 7 -13861781.724 6 21099033.122 21099031.331 21099032.565
+ 44.900 37.800
+ -3218138.582 4 -2507640.407 4 24109517.310 24109517.878 24109516.811
+ 29.500 29.500
+ -15415158.846 7 -12011811.654 6 21697606.046 21697602.940 21697604.271
+ 46.000 39.200
+ -1469677.423 2 -1145203.596 4 24157274.995 24157277.467 24157275.057
+ 12.600 28.400
+ -22006683.643 7 -17148069.641 6 20983746.791 20983746.518 20983746.044
+ 45.200 41.300
+ -16371885.890 7 -12757314.429 6 21817924.774 21817923.499 21817923.881
+ 43.100 39.300
+ -3173869.240 3 -2473146.832 5 24184684.043 24184685.200 24184683.354
+ 23.800 30.800
+ 06 1 2 15 33 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23183416.141 7 -18065003.272 7 20354832.829 20354832.116 20354831.784
+ 46.300 45.400
+ -17839682.360 7 -13901045.039 6 21089444.900 21089442.672 21089444.120
+ 45.100 38.000
+ -3317323.628 4 -2584927.447 4 24090642.892 24090643.262 24090642.410
+ 29.500 27.600
+ -15342982.462 7 -11955570.352 6 21711340.676 21711337.628 21711338.759
+ 45.800 39.200
+ -1483590.522 2 -1156045.006 3 24154628.708 24154628.438 24154627.946
+ 13.900 23.000
+ -21960641.658 7 -17112192.812 6 20992508.556 20992507.964 20992507.669
+ 45.100 41.400
+ -16438031.451 7 -12808856.417 6 21805338.295 21805336.277 21805337.126
+ 43.600 39.400
+ -3174770.216 3 -2473848.915 4 24184513.185 24184512.976 24184512.344
+ 22.600 27.900
+ 06 1 2 15 33 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23191839.967 7 -18071567.302 7 20353229.649 20353229.096 20353228.707
+ 46.100 45.200
+ -17889549.236 7 -13939902.319 6 21079955.244 21079953.488 21079954.548
+ 44.900 38.500
+ -3416359.692 4 -2662098.412 4 24071797.462 24071797.252 24071796.945
+ 29.200 27.900
+ -15270538.225 7 -11899120.333 6 21725126.392 21725123.249 21725124.431
+ 45.600 39.200
+ -1496891.825 2 -1166409.699 4 24152096.637 24152097.111 24152095.872
+ 16.100 27.100
+ -21914085.151 7 -17075915.049 6 21001368.498 21001367.439 21001367.250
+ 44.800 41.300
+ -16504004.286 7 -12860263.819 6 21792783.866 21792782.001 21792782.893
+ 43.800 39.200
+ -3175133.570 4 -2474132.045 4 24184444.332 24184443.976 24184443.842
+ 25.900 28.100
+ 06 1 2 15 34 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23199626.720 7 -18077634.909 7 20351748.023 20351747.391 20351746.998
+ 46.200 45.200
+ -17938893.161 7 -13978352.109 6 21070565.478 21070563.584 21070564.790
+ 45.100 38.600
+ -3515245.739 5 -2739152.492 4 24052979.845 24052980.245 24052979.192
+ 30.100 29.700
+ -15197828.288 7 -11842463.267 6 21738962.835 21738959.663 21738960.917
+ 45.700 38.900
+ -1509581.201 2 -1176297.507 4 24149683.099 24149683.665 24149682.275
+ 12.600 25.300
+ -21867014.870 7 -17039236.943 6 21010325.151 21010324.585 21010324.244
+ 44.900 41.200
+ -16569803.247 7 -12911535.724 6 21780262.802 21780260.784 21780261.739
+ 43.800 39.300
+ -3174959.433 3 -2473996.390 4 24184476.699 24184477.410 24184475.926
+ 21.600 28.800
+ 06 1 2 15 34 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23206775.319 7 -18083205.254 7 20350387.533 20350387.140 20350386.609
+ 46.200 45.300
+ -17987712.459 7 -14016393.095 6 21061275.399 21061273.613 21061274.785
+ 45.400 38.700
+ -3613980.565 5 -2816088.712 4 24034191.038 24034191.355 24034190.533
+ 30.200 28.100
+ -15124854.540 7 -11785600.639 6 21752849.324 21752846.096 21752847.350
+ 45.700 39.200
+ -1521658.354 3 -1185708.273 3 24147384.384 24147385.236 24147384.203
+ 18.600 23.400
+ -21819431.721 7 -17002159.214 6 21019379.567 21019379.399 21019378.973
+ 45.100 41.000
+ -16635427.299 7 -12962671.342 6 21767774.655 21767772.927 21767773.764
+ 43.500 39.300
+ -3174248.507 2 -2473442.436 4 24184611.840 24184612.374 24184611.365
+ 16.100 28.600
+ 06 1 2 15 35 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23213284.979 7 -18088277.726 7 20349148.913 20349148.461 20349147.910
+ 46.200 45.400
+ -18036005.723 7 -14054024.186 6 21052085.373 21052083.703 21052084.822
+ 45.400 38.600
+ -3712563.067 4 -2892906.261 4 24015431.765 24015431.883 24015431.060
+ 29.700 28.400
+ -15051619.016 7 -11728534.029 6 21766785.273 21766782.444 21766783.640
+ 45.800 38.900
+ -1533123.315 2 -1194642.039 4 24145202.633 24145203.694 24145201.883
+ 16.100 24.900
+ -21771336.825 7 -16964682.707 6 21028532.584 21028531.693 21028531.346
+ 44.800 41.000
+ -16700875.497 7 -13013669.922 6 21755320.378 21755318.371 21755319.423
+ 43.800 39.000
+ -3173001.082 3 -2472470.434 4 24184849.177 24184850.262 24184848.475
+ 21.600 29.700
+ 06 1 2 15 35 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23219155.270 7 -18092851.990 7 20348031.720 20348031.220 20348030.763
+ 46.100 45.300
+ -18083771.231 7 -14091244.046 6 21042996.120 21042994.226 21042995.411
+ 45.500 38.900
+ -3810992.146 5 -2969604.265 4 23996701.501 23996701.232 23996700.794
+ 31.300 28.400
+ -14978123.670 7 -11671264.958 6 21780770.978 21780768.077 21780769.427
+ 45.700 38.700
+ -1543976.017 3 -1203098.646 4 24143138.215 24143138.557 24143137.555
+ 20.500 26.500
+ -21722731.543 7 -16926808.499 6 21037781.770 21037781.158 21037780.615
+ 44.700 41.300
+ -16766146.609 7 -13064530.523 6 21742899.717 21742897.738 21742898.702
+ 43.700 39.500
+ -3171217.666 4 -2471080.795 4 24185189.520 24185188.913 24185188.572
+ 24.200 26.500
+ 06 1 2 15 36 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23224385.458 7 -18096927.474 7 20347036.462 20347035.876 20347035.435
+ 46.100 45.000
+ -18131007.440 7 -14128051.471 6 21034007.128 21034005.311 21034006.519
+ 45.300 38.800
+ -3909266.897 5 -3046181.990 4 23978000.299 23978000.340 23977999.659
+ 30.800 29.700
+ -14904370.456 7 -11613794.948 6 21794805.829 21794802.737 21794804.231
+ 45.700 38.500
+ -1554216.161 2 -1211078.034 3 24141188.522 24141189.249 24141187.052
+ 13.900 22.100
+ -21673617.051 7 -16888537.508 6 21047127.312 21047127.397 21047126.532
+ 44.800 41.100
+ -16831239.341 7 -13115252.121 6 21730512.937 21730511.161 21730511.985
+ 44.100 39.700
+ -3168898.654 3 -2469273.786 4 24185630.353 24185630.508 24185629.609
+ 23.000 27.400
+ 06 1 2 15 36 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23228974.647 7 -18100503.474 7 20346163.166 20346162.692 20346162.243
+ 46.200 45.200
+ -18177712.518 7 -14164445.034 6 21025119.423 21025117.692 21025118.747
+ 45.100 39.000
+ -4007385.715 5 -3122638.229 4 23959328.449 23959328.892 23959327.746
+ 30.200 29.200
+ -14830361.363 7 -11556125.555 6 21808889.795 21808886.368 21808887.782
+ 45.800 38.400
+ -1563843.874 2 -1218580.123 3 24139356.146 24139356.727 24139355.910
+ 15.100 21.600
+ -21623994.432 7 -16849870.579 6 21056570.561 21056570.313 21056569.564
+ 44.600 41.200
+ -16896152.934 7 -13165834.125 6 21718160.378 21718158.635 21718159.408
+ 43.800 40.000
+ -3166044.532 3 -2467049.809 4 24186173.145 24186173.640 24186172.462
+ 19.900 27.400
+ 06 1 2 15 37 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23232921.960 7 -18103579.314 7 20345412.165 20345411.521 20345411.259
+ 46.300 45.200
+ -18223884.699 7 -14200423.360 6 21016333.315 21016331.505 21016332.592
+ 45.300 39.100
+ -4105347.668 4 -3198972.219 4 23940687.322 23940687.494 23940686.525
+ 29.700 28.800
+ -14756098.058 7 -11498258.074 6 21823021.398 21823018.165 21823019.631
+ 45.600 38.200
+ -1572859.066 3 -1225604.950 3 24137642.166 24137642.438 24137641.495
+ 19.900 23.400
+ -21573864.595 7 -16810808.410 6 21066110.298 21066109.729 21066109.147
+ 44.700 41.100
+ -16960886.129 7 -13216275.559 6 21705842.211 21705840.260 21705841.105
+ 43.600 40.100
+ -3162655.986 3 -2464409.373 4 24186817.957 24186818.221 24186817.451
+ 22.100 25.900
+ 06 1 2 15 37 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23236226.747 7 -18106154.485 7 20344783.206 20344782.681 20344782.287
+ 46.500 45.200
+ -18269522.737 7 -14235985.475 6 21007648.602 21007646.839 21007647.929
+ 45.200 39.300
+ -4203152.005 4 -3275183.369 4 23922075.427 23922075.912 23922074.955
+ 29.900 28.800
+ -14681582.677 7 -11440194.164 6 21837201.219 21837198.112 21837199.440
+ 45.700 38.600
+ -1581261.725 3 -1232152.493 3 24136042.740 24136043.087 24136042.348
+ 21.600 22.100
+ -21523229.381 7 -16771352.441 6 21075745.585 21075745.390 21075744.633
+ 44.700 41.200
+ -17025437.781 7 -13266575.526 6 21693558.209 21693556.228 21693557.233
+ 44.000 39.800
+ -3158733.295 3 -2461352.758 4 24187564.396 24187564.679 24187563.879
+ 19.900 25.300
+ 06 1 2 15 38 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23238888.873 7 -18108228.877 7 20344276.743 20344276.176 20344275.664
+ 46.200 45.200
+ -18314625.097 7 -14271130.176 6 20999065.714 20999064.165 20999065.165
+ 45.200 39.200
+ -4300797.471 4 -3351270.707 5 23903494.955 23903494.832 23903493.912
+ 29.200 30.200
+ -14606816.962 7 -11381935.191 6 21851428.807 21851425.474 21851426.853
+ 45.600 38.200
+ -1589051.908 3 -1238222.793 4 24134559.796 24134560.915 24134559.341
+ 18.600 24.200
+ -21472089.638 7 -16731503.336 6 21085477.153 21085476.936 21085476.217
+ 44.600 40.900
+ -17089806.706 7 -13316733.124 6 21681309.454 21681307.046 21681308.329
+ 44.000 39.600
+ -3154277.313 3 -2457880.565 4 24188412.789 24188412.717 24188411.931
+ 21.600 25.900
+ 06 1 2 15 38 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23240907.733 7 -18109802.029 7 20343892.319 20343891.978 20343891.392
+ 46.200 45.100
+ -18359190.066 7 -14305856.126 6 20990585.467 20990583.696 20990584.712
+ 44.900 39.300
+ -4398282.981 5 -3427233.418 5 23884942.675 23884943.813 23884942.753
+ 30.100 30.200
+ -14531803.008 7 -11323482.784 6 21865703.641 21865700.191 21865701.708
+ 45.800 38.300
+ -1596229.692 3 -1243815.888 3 24133194.293 24133195.016 24133193.747
+ 22.100 23.400
+ -21420446.256 7 -16691261.782 6 21095304.797 21095304.358 21095303.834
+ 44.700 40.900
+ -17153991.805 7 -13366747.480 6 21669095.038 21669093.291 21669094.152
+ 43.900 40.100
+ -3149288.403 3 -2453993.124 4 24189361.812 24189362.596 24189360.764
+ 21.100 26.800
+ 06 1 2 15 39 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23242282.199 7 -18110873.055 7 20343630.918 20343630.367 20343629.949
+ 46.300 45.100
+ -18403216.140 7 -14340162.155 6 20982207.246 20982205.900 20982206.754
+ 45.000 39.300
+ -4495607.366 5 -3503070.560 5 23866423.248 23866423.316 23866422.652
+ 31.300 31.000
+ -14456542.896 7 -11264838.565 6 21880024.904 21880021.724 21880023.214
+ 45.300 38.400
+ -1602795.183 3 -1248931.850 4 24131945.204 24131945.913 24131944.664
+ 22.600 25.900
+ -21368300.925 7 -16650629.096 6 21105228.011 21105227.270 21105226.823
+ 44.600 40.900
+ -17217992.078 7 -13416617.805 6 21656916.446 21656914.572 21656915.387
+ 43.800 40.300
+ -3143767.292 3 -2449690.989 4 24190412.908 24190412.911 24190412.187
+ 23.000 26.200
+ 06 1 2 15 39 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23243011.873 7 -18111441.643 7 20343492.339 20343491.535 20343491.335
+ 46.400 45.000
+ -18446701.780 7 -14374047.070 6 20973932.476 20973930.902 20973931.731
+ 44.800 39.300
+ -4592769.789 5 -3578781.522 5 23847934.022 23847934.078 23847933.332
+ 31.100 32.000
+ -14381038.256 7 -11206003.806 6 21894392.759 21894389.890 21894391.162
+ 45.200 38.100
+ -1608748.455 4 -1253570.753 3 24130812.856 24130812.412 24130812.157
+ 24.200 22.600
+ -21315654.660 7 -16609606.073 6 21115245.921 21115245.556 21115244.897
+ 44.100 40.500
+ -17281806.244 7 -13466343.117 6 21644772.812 21644771.003 21644771.982
+ 44.100 40.400
+ -3137714.616 3 -2444974.622 4 24191564.328 24191564.772 24191563.804
+ 23.000 27.400
+ 06 1 2 15 40 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23243096.214 7 -18111507.378 7 20343476.324 20343475.546 20343475.307
+ 46.400 45.100
+ -18489645.691 7 -14407509.863 6 20965760.292 20965758.854 20965759.759
+ 45.100 39.500
+ -4689768.963 5 -3654365.280 5 23829475.734 23829475.702 23829475.035
+ 31.800 30.100
+ -14305291.145 7 -11146980.107 6 21908806.982 21908804.087 21908805.318
+ 44.800 38.000
+ -1614089.649 4 -1257732.703 3 24129795.943 24129796.446 24129795.666
+ 24.600 23.400
+ -21262508.957 7 -16568193.883 6 21125358.893 21125358.883 21125358.135
+ 44.300 40.700
+ -17345433.348 7 -13515922.672 6 21632664.941 21632663.062 21632664.052
+ 44.100 40.200
+ -3131131.022 3 -2439844.592 4 24192817.062 24192817.743 24192816.211
+ 22.600 26.500
+ 06 1 2 15 40 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23242534.956 7 -18111070.045 7 20343583.098 20343582.383 20343582.112
+ 46.600 45.200
+ -18532046.553 7 -14440549.499 6 20957691.837 20957690.179 20957691.208
+ 45.000 39.400
+ -4786603.817 5 -3729821.015 4 23811048.672 23811048.301 23811048.070
+ 32.800 29.000
+ -14229303.234 7 -11087768.776 6 21923267.192 21923264.094 21923265.551
+ 44.900 37.800
+ -1618818.927 3 -1261417.883 3 24128895.587 24128895.912 24128895.254
+ 23.000 22.100
+ -21208864.840 7 -16526393.321 6 21135567.008 21135567.064 21135566.407
+ 44.700 40.500
+ -17408871.996 7 -13565355.380 6 21620592.768 21620591.111 21620591.976
+ 44.100 40.200
+ -3124017.096 3 -2434301.283 4 24194171.346 24194171.466 24194170.797
+ 23.800 27.100
+ 06 1 2 15 41 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23241327.460 7 -18110129.152 7 20343812.891 20343812.137 20343811.886
+ 46.400 44.900
+ -18573902.369 7 -14473164.417 6 20949726.912 20949725.271 20949726.374
+ 45.300 39.300
+ -4883273.308 5 -3805147.886 4 23792652.241 23792652.700 23792651.847
+ 31.600 28.600
+ -14153076.726 7 -11028371.526 6 21937772.422 21937769.563 21937770.675
+ 44.700 37.500
+ -1622936.514 3 -1264626.381 4 24128111.906 24128112.797 24128111.511
+ 20.500 24.600
+ -21154723.959 7 -16484205.669 6 21145870.234 21145869.717 21145869.220
+ 44.700 40.300
+ -17472121.124 7 -13614640.401 6 21608557.234 21608555.446 21608556.187
+ 44.300 40.700
+ -3116373.659 3 -2428345.375 4 24195626.055 24195625.609 24195625.149
+ 22.600 24.900
+ 06 1 2 15 41 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23239473.464 7 -18108684.493 7 20344165.556 20344164.920 20344164.527
+ 46.200 45.100
+ -18615212.397 7 -14505354.056 6 20941866.197 20941864.111 20941865.487
+ 45.300 39.300
+ -4979776.416 5 -3880345.122 4 23774288.484 23774288.965 23774287.940
+ 32.100 29.500
+ -14076613.248 7 -10968789.624 6 21952323.353 21952320.250 21952321.508
+ 44.800 37.700
+ -1626442.702 3 -1267358.449 3 24127445.597 24127445.175 24127445.111
+ 23.400 21.100
+ -21100087.788 7 -16441632.066 6 21156267.487 21156266.623 21156266.248
+ 44.500 40.000
+ -17535179.386 7 -13663776.706 6 21596557.403 21596555.644 21596556.510
+ 44.400 40.500
+ -3108201.363 3 -2421977.388 4 24197180.484 24197180.645 24197179.692
+ 21.600 24.200
+ 06 1 2 15 42 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23236972.281 7 -18106735.531 7 20344641.403 20344640.885 20344640.405
+ 46.200 45.000
+ -18655974.875 7 -14537117.035 6 20934109.143 20934107.336 20934108.495
+ 45.400 39.700
+ -5076112.186 5 -3955411.958 4 23755956.923 23755956.742 23755956.146
+ 32.400 29.200
+ -13999914.938 7 -10909024.736 6 21966918.449 21966915.291 21966916.592
+ 44.600 37.600
+ -1629337.660 3 -1269614.278 3 24126893.873 24126894.885 24126893.606
+ 22.100 23.800
+ -21044957.447 7 -16398673.394 6 21166757.900 21166757.689 21166757.104
+ 44.500 40.000
+ -17598045.657 7 -13712763.401 6 21584594.259 21584592.418 21584593.366
+ 44.400 40.300
+ -3099501.090 3 -2415197.964 4 24198836.384 24198836.567 24198835.671
+ 23.400 26.200
+ 06 1 2 15 42 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23233823.763 7 -18104282.154 7 20345240.542 20345240.056 20345239.539
+ 46.100 45.000
+ -18696188.572 7 -14568452.385 6 20926456.786 20926454.957 20926456.105
+ 45.500 39.600
+ -5172279.451 5 -4030347.488 4 23737656.884 23737656.783 23737656.074
+ 32.400 29.900
+ -13922983.571 7 -10849078.240 6 21981557.987 21981554.911 21981556.249
+ 44.800 37.600
+ -1631621.702 4 -1271394.087 3 24126460.127 24126459.777 24126459.554
+ 25.900 21.600
+ -20989334.706 7 -16355331.042 6 21177341.834 21177342.429 21177341.579
+ 44.200 40.000
+ -17660719.342 7 -13761600.036 6 21572668.139 21572666.100 21572667.162
+ 44.500 40.300
+ -3090273.346 3 -2408007.538 4 24200592.194 24200592.587 24200591.330
+ 21.100 25.600
+ 06 1 2 15 43 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23230027.573 7 -18101324.100 7 20345963.026 20345962.435 20345962.075
+ 46.100 44.900
+ -18735852.182 7 -14599359.093 6 20918908.922 20918907.088 20918908.350
+ 45.400 39.500
+ -5268277.250 5 -4105150.970 4 23719388.576 23719389.116 23719388.070
+ 31.800 29.700
+ -13845821.055 7 -10788951.637 6 21996241.756 21996238.410 21996239.835
+ 44.700 37.300
+ -1633295.143 3 -1272698.071 3 24126140.594 24126140.807 24126140.247
+ 22.100 20.500
+ -20933220.541 7 -16311605.762 6 21188020.458 21188020.572 21188019.878
+ 44.400 39.800
+ -17723198.642 7 -13810285.202 6 21560778.687 21560776.772 21560777.732
+ 44.500 41.000
+ -3080519.146 3 -2400406.890 4 24202447.898 24202448.930 24202447.055
+ 22.100 26.200
+ 06 1 2 15 43 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23225583.181 7 -18097860.952 7 20346809.103 20346808.183 20346808.035
+ 46.300 44.900
+ -18774964.571 7 -14629836.277 6 20911466.112 20911464.376 20911465.489
+ 45.600 39.700
+ -5364104.374 5 -4179821.421 5 23701153.546 23701153.840 23701152.994
+ 31.300 30.400
+ -13768429.569 7 -10728646.613 6 22010968.647 22010965.819 22010966.805
+ 44.600 37.700
+ -1634358.344 3 -1273526.533 3 24125938.849 24125938.459 24125938.280
+ 22.100 18.600
+ -20876616.545 7 -16267498.793 6 21198792.508 21198792.047 21198791.459
+ 44.100 39.900
+ -17785482.554 7 -13858818.111 6 21548926.342 21548924.664 21548925.365
+ 44.300 41.200
+ -3070239.133 3 -2392396.542 4 24204405.032 24204404.910 24204404.197
+ 23.800 25.600
+ 06 1 2 15 44 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23220490.585 7 -18093892.708 7 20347777.914 20347777.263 20347776.903
+ 46.200 44.900
+ -18813524.077 7 -14659882.647 6 20904128.530 20904126.751 20904127.928
+ 45.600 39.700
+ -5459759.886 5 -4254358.149 5 23682950.984 23682951.304 23682950.426
+ 32.000 31.800
+ -13690810.632 7 -10668164.361 6 22025739.120 22025736.027 22025737.153
+ 44.200 37.200
+ -1634811.500 4 -1273879.656 3 24125852.866 24125852.928 24125852.487
+ 25.900 21.100
+ -20819523.967 7 -16223011.114 6 21209657.312 21209656.618 21209655.983
+ 43.800 40.000
+ -17847569.773 7 -13907197.754 6 21537111.558 21537109.727 21537110.651
+ 44.400 41.000
+ -3059434.313 3 -2383977.238 4 24206461.231 24206461.199 24206460.430
+ 23.800 24.600
+ 06 1 2 15 44 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23214749.210 7 -18089418.924 7 20348870.471 20348869.853 20348869.499
+ 46.400 44.900
+ -18851529.395 7 -14689497.179 6 20896896.549 20896894.567 20896895.798
+ 45.700 39.800
+ -5555242.668 5 -4328760.290 5 23664781.057 23664781.739 23664780.506
+ 31.300 32.300
+ -13612965.976 7 -10607506.220 6 22040552.454 22040549.424 22040550.635
+ 44.300 37.500
+ -1634655.063 4 -1273757.761 3 24125882.446 24125882.791 24125881.976
+ 25.900 22.600
+ -20761944.525 7 -16178144.061 6 21220614.067 21220613.652 21220612.827
+ 43.700 40.100
+ -17909459.222 7 -13955423.291 6 21525334.328 21525332.402 21525333.506
+ 44.300 40.800
+ -3048105.278 3 -2375149.413 3 24208616.400 24208616.993 24208615.701
+ 22.600 23.800
+ 06 1 2 15 45 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23208358.848 7 -18084439.435 7 20350086.687 20350086.000 20350085.661
+ 46.400 45.000
+ -18888979.602 7 -14718679.151 6 20889769.613 20889767.982 20889769.126
+ 45.600 39.900
+ -5650552.035 5 -4403027.294 5 23646644.129 23646644.658 23646643.697
+ 31.800 31.500
+ -13534897.555 7 -10546673.720 6 22055408.381 22055405.424 22055406.514
+ 44.000 37.300
+ -1633889.575 4 -1273161.267 3 24126028.253 24126028.488 24126027.876
+ 24.900 21.600
+ -20703879.705 7 -16132898.796 6 21231663.411 21231662.909 21231662.273
+ 43.900 39.800
+ -17971149.614 7 -14003493.729 6 21513595.175 21513593.056 21513594.204
+ 44.500 40.600
+ -3036253.154 4 -2365914.012 4 24210872.012 24210872.852 24210871.180
+ 24.900 24.200
+ 06 1 2 15 45 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23201319.152 7 -18078953.972 7 20351426.191 20351425.594 20351425.226
+ 46.200 44.900
+ -18925873.094 7 -14747427.319 6 20882749.176 20882747.324 20882748.582
+ 45.700 40.000
+ -5745686.708 5 -4477158.174 5 23628540.929 23628541.102 23628540.224
+ 32.300 31.800
+ -13456607.453 7 -10485668.482 6 22070307.087 22070303.452 22070304.883
+ 44.000 37.200
+ -1632515.429 4 -1272090.512 3 24126289.677 24126289.810 24126289.044
+ 24.900 22.600
+ -20645330.468 7 -16087276.057 6 21242804.465 21242804.461 21242803.678
+ 43.600 39.700
+ -18032639.946 7 -14051408.265 6 21501894.161 21501891.969 21501893.094
+ 44.700 41.200
+ -3023878.726 4 -2356271.644 3 24213227.675 24213227.059 24213226.707
+ 26.200 23.000
+ 06 1 2 15 46 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23193630.186 7 -18072962.585 7 20352889.361 20352888.610 20352888.382
+ 46.300 44.800
+ -18962208.802 7 -14775740.852 6 20875834.530 20875833.002 20875833.986
+ 45.500 40.200
+ -5840645.349 5 -4551151.905 5 23610470.853 23610471.096 23610470.334
+ 32.400 32.400
+ -13378097.513 7 -10424491.942 6 22085246.359 22085243.656 22085244.573
+ 43.700 37.100
+ -1630533.095 3 -1270545.827 3 24126666.999 24126667.086 24126666.475
+ 23.000 19.300
+ -20586298.511 7 -16041277.179 6 21254037.560 21254037.956 21254037.159
+ 44.000 39.700
+ -18093928.693 7 -14099165.729 6 21490231.146 21490229.190 21490230.159
+ 44.900 41.200
+ -3010982.896 4 -2346222.989 3 24215681.163 24215681.177 24215680.486
+ 26.500 22.100
+ 06 1 2 15 46 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23185291.672 7 -18066465.055 7 20354476.024 20354475.458 20354475.015
+ 46.200 44.800
+ -18997985.633 7 -14803618.888 6 20869026.435 20869024.933 20869025.872
+ 45.700 40.100
+ -5935427.506 5 -4625008.118 5 23592434.392 23592434.683 23592433.719
+ 32.100 31.500
+ -13299369.537 7 -10363145.504 6 22100228.133 22100225.051 22100226.251
+ 44.100 36.600
+ -1627942.973 4 -1268527.608 3 24127159.764 24127159.337 24127159.334
+ 25.600 20.500
+ -20526785.944 7 -15994903.796 6 21265362.551 21265362.895 21265362.063
+ 43.800 39.600
+ -18155014.888 7 -14146765.357 6 21478606.905 21478604.917 21478605.892
+ 44.800 41.400
+ -2997566.781 4 -2335768.890 3 24218233.967 24218233.990 24218233.325
+ 24.200 23.000
+ 06 1 2 15 47 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23176303.352 7 -18059461.183 7 20356186.446 20356186.024 20356185.503
+ 46.300 44.900
+ -19033202.192 7 -14831060.351 6 20862325.133 20862323.392 20862324.410
+ 45.700 40.200
+ -6030031.931 5 -4698725.840 5 23574431.621 23574432.018 23574431.088
+ 32.800 31.100
+ -13220425.428 7 -10301630.653 6 22115250.743 22115247.362 22115248.845
+ 43.600 36.600
+ -1624745.675 3 -1266036.179 3 24127767.886 24127768.338 24127767.645
+ 23.000 20.500
+ -20466793.928 7 -15948156.818 6 21276779.097 21276779.029 21276778.163
+ 43.500 39.800
+ -18215897.361 7 -14194206.243 6 21467021.127 21467019.214 21467020.192
+ 44.800 41.100
+ -2983631.235 4 -2324910.044 3 24220885.872 24220885.911 24220884.978
+ 25.300 23.000
+ 06 1 2 15 47 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23166665.183 7 -18051950.936 7 20358020.705 20358020.070 20358019.685
+ 46.400 44.800
+ -19067857.742 7 -14858064.663 6 20855730.412 20855728.648 20855729.706
+ 45.800 40.300
+ -6124457.574 5 -4772304.259 5 23556462.951 23556463.152 23556462.490
+ 32.400 31.600
+ -13141266.910 7 -10239948.729 6 22130313.787 22130311.111 22130312.015
+ 43.600 36.700
+ -1620941.701 3 -1263072.048 3 24128491.735 24128492.551 24128491.382
+ 23.400 23.800
+ -20406324.106 7 -15901037.523 6 21288286.623 21288286.174 21288285.336
+ 43.400 39.400
+ -18276574.734 7 -14241487.316 6 21455474.625 21455472.737 21455473.709
+ 44.900 41.400
+ -2969177.130 4 -2313647.127 3 24223636.631 24223636.587 24223635.948
+ 26.800 22.600
+ 06 1 2 15 48 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23156377.113 7 -18043934.276 7 20359978.595 20359977.793 20359977.560
+ 46.400 44.800
+ -19101950.950 7 -14884630.786 6 20849242.698 20849240.949 20849241.969
+ 45.600 40.500
+ -6218703.421 5 -4845742.567 5 23538528.612 23538528.889 23538528.113
+ 32.700 32.100
+ -13061895.884 7 -10178101.210 6 22145417.655 22145414.770 22145415.879
+ 43.200 36.600
+ -1616531.591 4 -1259635.670 3 24129331.545 24129331.750 24129331.043
+ 24.900 22.100
+ -20345377.907 7 -15853547.026 6 21299884.521 21299883.949 21299883.144
+ 43.600 39.500
+ -18337045.656 7 -14288607.507 6 21443967.280 21443965.537 21443966.353
+ 44.700 41.500
+ -2954205.573 4 -2301981.002 3 24226485.665 24226485.849 24226484.802
+ 26.200 21.100
+ 06 1 2 15 48 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23145439.339 7 -18035411.352 7 20362059.948 20362059.180 20362058.984
+ 46.600 44.700
+ -19135480.453 7 -14910757.665 6 20842862.223 20842860.425 20842861.552
+ 45.600 40.500
+ -6312768.951 5 -4919040.380 5 23520628.732 23520628.812 23520627.987
+ 32.400 31.800
+ -12982313.928 7 -10116089.329 6 22160561.575 22160558.865 22160559.785
+ 43.100 36.500
+ -1611516.117 4 -1255727.503 3 24130285.456 24130285.708 24130285.093
+ 24.900 18.600
+ -20283957.014 7 -15805686.636 6 21311572.702 21311572.020 21311571.276
+ 43.300 39.500
+ -18397309.079 7 -14335566.015 6 21432499.824 21432497.913 21432498.843
+ 45.000 41.600
+ -2938717.378 4 -2289912.303 3 24229432.985 24229432.672 24229432.262
+ 25.900 22.100
+ 06 1 2 15 49 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23133851.344 7 -18026381.759 7 20364264.956 20364264.395 20364264.006
+ 46.400 44.800
+ -19168445.339 7 -14936444.581 6 20836589.084 20836587.518 20836588.462
+ 45.900 40.700
+ -6406652.577 5 -4992196.443 5 23502763.013 23502763.443 23502762.477
+ 33.000 32.000
+ -12902523.237 7 -10053914.806 6 22175745.384 22175742.309 22175743.388
+ 43.000 36.100
+ -1605895.775 4 -1251348.008 3 24131355.416 24131355.499 24131354.931
+ 25.600 21.600
+ -20222063.080 7 -15757457.636 6 21323350.848 21323349.927 21323349.370
+ 43.400 39.100
+ -18457363.824 7 -14382361.915 6 21421071.799 21421069.791 21421070.824
+ 44.900 41.800
+ -2922714.068 4 -2277442.234 3 24232478.666 24232478.093 24232477.887
+ 26.200 21.100
+ 06 1 2 15 49 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23121612.881 7 -18016845.311 7 20366593.856 20366593.299 20366592.856
+ 46.300 44.600
+ -19200844.639 7 -14961690.770 6 20830423.548 20830421.963 20830423.016
+ 45.600 40.500
+ -6500353.277 5 -5065209.977 5 23484932.488 23484932.651 23484931.865
+ 33.000 31.600
+ -12822525.606 7 -9991579.017 6 22190968.644 22190965.416 22190966.569
+ 43.000 36.300
+ -1599671.210 4 -1246497.729 3 24132539.337 24132539.123 24132539.230
+ 24.600 19.300
+ -20159697.993 7 -15708861.512 6 21335218.298 21335217.659 21335217.029
+ 43.200 39.100
+ -18517208.526 7 -14428994.147 6 21409683.487 21409681.569 21409682.617
+ 44.900 41.600
+ -2906196.343 4 -2264571.308 3 24235621.453 24235621.432 24235620.660
+ 25.300 22.600
+ 06 1 2 15 50 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23108724.906 7 -18006802.749 7 20369046.251 20369045.767 20369045.321
+ 46.500 44.700
+ -19232677.199 7 -14986495.349 6 20824366.047 20824364.524 20824365.549
+ 46.000 40.500
+ -6593870.393 5 -5138080.450 5 23467136.749 23467136.915 23467136.119
+ 32.700 31.500
+ -12742322.731 7 -9929083.305 5 22206230.795 22206227.455 22206228.864
+ 43.200 35.800
+ -1592843.188 3 -1241177.181 3 24133839.240 24133839.241 24133838.159
+ 23.000 21.100
+ -20096863.310 7 -15659899.469 6 21347174.785 21347174.727 21347173.929
+ 43.300 39.100
+ -18576842.019 7 -14475461.799 6 21398335.716 21398333.813 21398334.780
+ 44.900 41.900
+ -2889165.374 4 -2251300.443 3 24238862.672 24238862.247 24238861.667
+ 25.300 21.100
+ 06 1 2 15 50 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23095187.013 7 -17996253.758 7 20371622.628 20371622.011 20371621.592
+ 46.400 44.500
+ -19263941.940 7 -15010857.471 6 20818416.613 20818415.000 20818416.086
+ 45.900 40.800
+ -6687203.032 5 -5210807.179 5 23449376.410 23449376.314 23449375.658
+ 33.200 33.000
+ -12661916.310 7 -9866428.981 6 22221531.730 22221528.609 22221529.748
+ 43.300 36.200
+ -1585412.388 3 -1235386.983 3 24135252.494 24135253.326 24135252.181
+ 21.100 19.900
+ -20033560.556 7 -15610572.699 6 21359220.542 21359220.912 21359219.926
+ 43.400 38.700
+ -18636262.990 7 -14521763.848 6 21387028.400 21387026.288 21387027.313
+ 44.800 41.800
+ -2871622.176 4 -2237630.448 3 24242201.295 24242201.143 24242200.504
+ 27.100 21.100
+ 06 1 2 15 51 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23080998.980 7 -17985198.163 7 20374322.576 20374321.893 20374321.585
+ 46.400 44.600
+ -19294637.975 7 -15034776.455 6 20812575.617 20812573.749 20812574.921
+ 46.000 40.700
+ -6780349.807 5 -5283389.068 5 23431650.867 23431651.169 23431650.364
+ 33.400 34.000
+ -12581308.280 7 -9803617.560 5 22236870.820 22236867.671 22236868.913
+ 43.100 35.900
+ -1577379.454 3 -1229127.544 3 24136781.773 24136782.029 24136781.233
+ 20.500 22.100
+ -19969791.143 7 -15560882.297 6 21371355.770 21371355.978 21371354.835
+ 42.900 38.700
+ -18695470.181 7 -14567899.316 6 21375761.663 21375759.523 21375760.604
+ 44.800 41.900
+ -2853568.139 4 -2223562.397 3 24245636.648 24245636.511 24245635.975
+ 27.100 22.600
+ 06 1 2 15 51 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23066161.377 7 -17973636.408 7 20377146.021 20377145.309 20377145.087
+ 46.400 44.300
+ -19324764.543 7 -15058251.689 6 20806842.703 20806840.943 20806842.009
+ 46.300 41.100
+ -6873309.885 5 -5355825.478 5 23413960.973 23413961.393 23413960.669
+ 33.400 34.000
+ -12500500.607 7 -9740650.572 5 22252248.263 22252244.774 22252246.374
+ 43.500 35.600
+ -1568745.301 4 -1222399.652 3 24138424.620 24138424.681 24138424.413
+ 24.600 21.600
+ -19905557.120 7 -15510829.862 6 21383579.605 21383579.381 21383578.487
+ 43.100 38.600
+ -18754462.326 7 -14613867.214 6 21364535.723 21364533.613 21364534.705
+ 44.800 41.900
+ -2835004.081 4 -2209096.932 3 24249169.344 24249169.351 24249168.425
+ 25.900 22.600
+ 06 1 2 15 52 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23050674.170 7 -17961568.468 7 20380093.097 20380092.493 20380092.140
+ 46.300 44.300
+ -19354320.417 7 -15081282.230 6 20801218.389 20801216.758 20801217.761
+ 46.100 41.200
+ -6966082.226 5 -5428115.600 5 23396307.188 23396307.329 23396306.680
+ 33.400 34.300
+ -12419494.898 7 -9677529.261 6 22267663.142 22267660.003 22267661.363
+ 43.200 36.000
+ -1559510.648 4 -1215203.779 2 24140182.655 24140181.062 24140181.996
+ 25.600 16.100
+ -19840860.194 7 -15460416.722 6 21395890.521 21395890.949 21395889.750
+ 42.800 38.700
+ -18813238.162 7 -14659666.566 6 21353350.933 21353349.023 21353349.971
+ 44.700 41.800
+ -2815931.493 4 -2194235.183 3 24252798.228 24252798.486 24252797.300
+ 24.200 23.400
+ 06 1 2 15 52 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23034537.358 7 -17948994.347 7 20383163.967 20383163.342 20383162.945
+ 46.300 44.500
+ -19383304.694 7 -15103867.369 6 20795702.784 20795701.157 20795702.197
+ 46.100 41.000
+ -7058666.191 5 -5500258.938 5 23378689.476 23378689.243 23378688.553
+ 32.800 34.400
+ -12338292.749 7 -9614254.884 5 22283115.012 22283112.106 22283113.384
+ 43.000 35.600
+ -1549676.202 3 -1207540.609 2 24142053.390 24142053.351 24142052.878
+ 23.800 17.800
+ -19775702.170 7 -15409644.287 6 21408289.329 21408290.000 21408289.032
+ 43.100 38.300
+ -18871796.493 7 -14705296.425 7 21342207.484 21342205.882 21342206.583
+ 44.600 42.200
+ -2796351.455 4 -2178978.065 3 24256524.671 24256524.156 24256524.122
+ 26.800 21.600
+ 06 1 2 15 53 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23017751.618 7 -17935914.571 7 20386358.199 20386357.615 20386357.178
+ 46.400 44.600
+ -19411716.591 7 -15126006.508 6 20790296.057 20790294.354 20790295.599
+ 46.100 41.000
+ -7151060.403 5 -5572254.412 5 23361107.141 23361107.240 23361106.594
+ 33.500 34.000
+ -12256896.320 7 -9550829.125 5 22298604.402 22298601.549 22298602.583
+ 42.900 35.800
+ -1539243.068 3 -1199410.920 3 24144038.581 24144039.327 24144038.051
+ 22.600 22.600
+ -19710084.688 7 -15358513.833 6 21420776.210 21420776.672 21420775.716
+ 43.000 38.500
+ -18930136.015 7 -14750755.787 7 21331106.025 21331104.134 21331105.100
+ 44.800 42.300
+ -2776264.988 4 -2163326.308 3 24260347.283 24260347.069 24260346.450
+ 27.100 22.100
+ 06 1 2 15 53 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -23000316.577 7 -17922328.839 7 20389675.926 20389675.433 20389674.927
+ 46.300 44.500
+ -19439555.001 7 -15147698.764 6 20784998.789 20784996.851 20784998.148
+ 46.200 41.000
+ -7243264.669 5 -5644101.875 5 23343561.088 23343561.262 23343560.605
+ 33.200 34.400
+ -12175307.101 7 -9487253.135 5 22314130.007 22314127.373 22314128.350
+ 42.600 35.600
+ -1528211.942 3 -1190815.264 3 24146137.535 24146138.353 24146137.145
+ 21.600 21.600
+ -19644009.326 7 -15307026.592 6 21433350.107 21433350.563 21433349.642
+ 43.200 38.700
+ -18988255.282 7 -14796043.524 7 21320046.471 21320044.299 21320045.438
+ 44.900 42.200
+ -2755673.674 3 -2147281.160 3 24264264.690 24264264.635 24264264.265
+ 23.800 19.300
+ 06 1 2 15 54 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22982232.690 7 -17908237.512 7 20393117.231 20393116.700 20393116.180
+ 46.300 44.700
+ -19466819.358 7 -15168943.714 6 20779810.780 20779808.545 20779810.027
+ 46.200 40.800
+ -7335277.011 5 -5715799.799 5 23326051.879 23326052.051 23326051.226
+ 33.100 34.300
+ -12093527.107 7 -9423528.492 6 22329692.721 22329689.629 22329690.823
+ 42.200 36.200
+ -1516583.679 4 -1181754.278 3 24148350.982 24148350.641 24148350.448
+ 24.600 18.600
+ -19577478.022 7 -15255184.064 6 21446010.900 21446011.058 21446010.157
+ 43.200 38.600
+ -19046153.129 7 -14841158.726 7 21309028.594 21309026.732 21309027.656
+ 44.800 42.100
+ -2734578.430 3 -2130843.345 3 24268279.724 24268279.350 24268279.006
+ 23.800 21.100
+ 06 1 2 15 54 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -22963500.642 7 -17893641.126 7 20396681.723 20396681.348 20396680.744
+ 46.500 44.400
+ -19493508.884 7 -15189740.734 6 20774731.894 20774729.706 20774731.096
+ 46.300 40.900
+ -7427096.981 5 -5787347.827 5 23308579.539 23308579.183 23308578.590
+ 33.200 33.800
+ -12011558.129 7 -9359656.589 6 22345290.677 22345288.007 22345288.796
+ 42.000 36.100
+ -1504359.265 3 -1172228.805 3 24150677.141 24150677.516 24150676.524
+ 23.800 23.000
+ -19510492.723 7 -15202987.775 6 21458757.342 21458757.852 21458756.940
+ 43.000 38.100
+ -19103828.149 7 -14886100.296 7 21298053.563 21298051.687 21298052.512
+ 44.900 42.700
+ -2712980.847 4 -2114014.097 3 24272389.563 24272389.615 24272389.096
+ 25.300 21.600
+ 06 1 2 15 55 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22944120.040 7 -17878539.375 7 20400369.828 20400369.355 20400368.805
+ 46.400 44.400
+ -19519622.596 7 -15210089.072 6 20769761.989 20769760.444 20769761.532
+ 46.100 41.000
+ -7518723.506 5 -5858745.114 5 23291143.287 23291143.304 23291142.625
+ 32.100 33.500
+ -11929401.810 7 -9295638.720 5 22360924.846 22360921.799 22360922.980
+ 42.400 35.700
+ -1491539.566 4 -1162239.459 3 24153116.428 24153116.920 24153116.082
+ 24.200 23.000
+ -19443055.217 7 -15150439.117 6 21471590.214 21471590.866 21471589.841
+ 42.700 38.000
+ -19161279.181 7 -14930867.328 7 21287121.009 21287119.020 21287119.988
+ 44.700 42.500
+ -2690882.093 3 -2096794.314 3 24276594.883 24276595.022 24276594.049
+ 23.400 22.100
+ 06 1 2 15 55 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -22924091.605 7 -17862932.817 7 20404181.315 20404180.652 20404180.267
+ 46.800 44.600
+ -19545159.435 7 -15229987.907 6 20764902.700 20764900.922 20764902.106
+ 46.000 40.900
+ -7610155.874 5 -5929991.112 5 23273743.628 23273744.237 23273743.293
+ 31.500 33.500
+ -11847059.884 6 -9231476.215 5 22376593.669 22376591.133 22376591.680
+ 41.900 35.600
+ -1478125.607 3 -1151787.048 3 24155668.784 24155668.923 24155668.417
+ 21.600 20.500
+ -19375167.351 7 -15097539.530 6 21484508.788 21484509.461 21484508.400
+ 42.600 37.800
+ -19218505.268 7 -14975459.080 7 21276231.073 21276229.108 21276230.103
+ 44.700 42.600
+ -2668283.378 3 -2079184.970 3 24280894.972 24280895.280 24280894.415
+ 23.000 23.000
+ 06 1 2 15 56 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22903415.522 7 -17846821.597 7 20408115.724 20408115.236 20408114.717
+ 46.700 44.500
+ -19570118.784 7 -15249436.748 6 20760153.163 20760151.321 20760152.509
+ 46.100 41.100
+ -7701393.148 5 -6001085.077 5 23256382.259 23256382.489 23256381.643
+ 30.600 33.200
+ -11764534.064 7 -9167170.411 5 22392298.160 22392295.156 22392296.356
+ 42.400 35.800
+ -1464118.434 3 -1140872.340 3 24158334.879 24158333.797 24158334.297
+ 22.100 18.600
+ -19306831.112 7 -15044290.566 6 21497513.109 21497513.600 21497512.551
+ 42.600 38.100
+ -19275504.622 7 -15019874.161 7 21265384.596 21265382.490 21265383.632
+ 44.900 42.500
+ -2645186.163 3 -2061187.155 3 24285290.272 24285290.692 24285289.650
+ 23.000 22.100
+ 06 1 2 15 56 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -22882092.063 7 -17830205.933 7 20412173.278 20412172.889 20412172.363
+ 46.600 44.400
+ -19594500.078 7 -15268435.155 6 20755513.586 20755511.661 20755512.919
+ 46.100 41.000
+ -7792434.284 5 -6072026.214 5 23239057.848 23239057.795 23239057.301
+ 32.100 32.000
+ -11681826.141 6 -9102722.713 5 22408036.146 22408033.741 22408034.560
+ 41.800 34.800
+ -1449518.919 3 -1129496.145 3 24161112.525 24161113.280 24161112.215
+ 22.600 22.600
+ -19238048.078 7 -14990693.446 6 21510602.311 21510602.536 21510601.618
+ 42.200 37.600
+ -19332276.145 7 -15064111.710 7 21254581.334 21254579.201 21254580.339
+ 44.900 42.500
+ -2621591.895 3 -2042802.058 4 24289780.249 24289780.500 24289779.578
+ 23.800 24.200
+ 06 1 2 15 57 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22860121.977 7 -17813086.405 7 20416354.189 20416353.664 20416353.212
+ 46.700 44.400
+ -19618302.539 7 -15286982.515 6 20750984.084 20750982.248 20750983.474
+ 45.900 41.100
+ -7883278.346 5 -6142813.801 5 23221770.808 23221770.565 23221770.081
+ 32.100 31.100
+ -11598937.952 7 -9038134.551 5 22423810.145 22423807.099 22423808.200
+ 42.000 35.100
+ -1434328.393 3 -1117659.427 3 24164003.786 24164003.837 24164003.306
+ 23.800 21.100
+ -19168819.853 7 -14936749.424 6 21523775.729 21523776.225 21523775.404
+ 42.500 37.600
+ -19388818.259 7 -15108170.499 7 21243821.813 21243819.664 21243820.792
+ 45.000 42.600
+ -2597501.518 3 -2024030.388 3 24294364.390 24294364.003 24294363.769
+ 22.100 22.100
+ 06 1 2 15 57 30.0000000 0 8G08G11G17G19G26G27G28G29
+ -22837505.539 7 -17795463.221 7 20420657.983 20420657.498 20420656.968
+ 46.500 44.300
+ -19641525.406 7 -15305078.257 6 20746564.960 20746563.154 20746564.289
+ 46.000 41.100
+ -7973924.319 5 -6213447.013 5 23204520.859 23204521.312 23204520.592
+ 31.300 31.100
+ -11515871.202 6 -8973407.244 5 22439617.160 22439614.051 22439615.109
+ 41.900 34.900
+ -1418547.770 3 -1105362.838 3 24167006.900 24167007.050 24167006.236
+ 23.000 22.600
+ -19099148.904 7 -14882460.415 6 21537033.914 21537034.407 21537033.268
+ 42.200 37.700
+ -19445129.946 7 -15152049.734 7 21233105.850 21233103.980 21233104.901
+ 45.100 42.800
+ -2572916.902 3 -2004873.556 3 24299042.393 24299042.577 24299041.565
+ 18.600 20.500
+ 06 1 2 15 58 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22814243.158 7 -17777336.702 7 20425084.691 20425084.227 20425083.645
+ 46.400 44.400
+ -19664167.899 7 -15322721.755 6 20742256.234 20742254.407 20742255.575
+ 46.000 41.400
+ -8064371.370 5 -6283925.225 5 23187309.656 23187309.936 23187309.081
+ 31.300 31.600
+ -11432627.417 7 -8908541.993 5 22455458.258 22455455.023 22455456.498
+ 42.400 34.800
+ -1402178.061 3 -1092607.296 3 24170121.339 24170122.072 24170121.230
+ 22.100 22.600
+ -19029036.940 7 -14827827.763 6 21550375.519 21550376.192 21550375.126
+ 42.000 37.600
+ -19501209.833 7 -15195748.339 7 21222434.192 21222432.183 21222433.216
+ 44.800 43.100
+ -2547839.338 3 -1985332.619 3 24303814.600 24303815.264 24303814.334
+ 22.100 21.100
+ 06 1 2 15 58 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22790335.169 7 -17758707.115 7 20429634.101 20429633.729 20429633.155
+ 46.500 44.300
+ -19686229.558 7 -15339912.654 6 20738058.305 20738056.193 20738057.533
+ 46.300 41.400
+ -8154618.646 5 -6354247.754 5 23170136.211 23170136.308 23170135.474
+ 31.100 30.800
+ -11349208.485 6 -8843540.264 5 22471331.874 22471329.229 22471329.931
+ 41.900 34.500
+ -198529.043 3 -154698.093 2 24395951.831 24395954.822 24395950.821
+ 19.300 15.100
+ -1385220.406 3 -1079393.584 3 24173349.016 24173348.755 24173348.322
+ 21.100 21.100
+ -18958485.804 7 -14772852.907 6 21563801.129 21563801.781 21563800.572
+ 42.100 37.400
+ -19557056.526 7 -15239265.243 7 21211807.067 21211804.978 21211806.081
+ 45.000 43.200
+ -2522270.152 3 -1965408.595 3 24308680.341 24308680.585 24308679.767
+ 22.600 19.900
+ 06 1 2 15 59 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22765782.466 7 -17739575.154 7 20434306.344 20434305.965 20434305.301
+ 46.100 44.200
+ -19707709.560 7 -15356650.302 6 20733970.506 20733968.738 20733969.844
+ 46.000 41.500
+ -8244665.108 5 -6424413.807 5 23153001.033 23153001.002 23153000.194
+ 32.300 30.600
+ -11265616.156 7 -8778403.410 5 22487239.199 22487236.080 22487237.306
+ 42.000 34.100
+ -313003.823 3 -243899.168 2 24374167.341 24374170.955 24374167.257
+ 21.600 16.100
+ -1367676.063 3 -1065722.701 3 24176686.575 24176687.797 24176686.104
+ 19.900 23.400
+ -18887497.559 7 -14717537.432 6 21577309.983 21577310.254 21577309.404
+ 42.000 37.200
+ -19612668.744 7 -15282599.432 7 21201224.453 21201222.305 21201223.370
+ 45.100 43.100
+ -2496210.936 3 -1945102.770 3 24313639.764 24313639.307 24313639.017
+ 20.500 22.600
+ 06 1 2 15 59 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22740585.695 7 -17719941.327 7 20439101.193 20439100.783 20439100.144
+ 46.400 44.300
+ -19728607.528 7 -15372934.432 6 20729993.629 20729991.941 20729993.006
+ 46.000 41.500
+ -8334509.942 5 -6494422.752 5 23135904.238 23135904.057 23135903.440
+ 34.300 31.000
+ -11181852.079 6 -8713132.725 5 22503178.730 22503175.983 22503177.075
+ 41.700 33.900
+ -427430.858 4 -333063.053 3 24352392.830 24352397.191 24352392.408
+ 24.600 19.900
+ -1349546.326 3 -1051595.692 3 24180137.461 24180137.537 24180136.876
+ 23.400 21.600
+ -18816074.206 6 -14661882.920 6 21590901.811 21590901.776 21590900.905
+ 41.900 37.200
+ -19668045.004 7 -15325749.756 7 21190686.466 21190684.587 21190685.510
+ 44.900 43.200
+ -2469663.048 3 -1924416.120 3 24318690.910 24318691.914 24318690.319
+ 19.900 23.000
+ 06 1 2 16 0 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22714745.366 7 -17699806.020 7 20444018.422 20444017.912 20444017.387
+ 46.400 43.800
+ -19748923.022 7 -15388764.679 6 20726127.823 20726126.159 20726127.059
+ 46.000 41.600
+ -8424152.529 5 -6564274.106 5 23118845.699 23118845.442 23118844.999
+ 35.700 30.400
+ -11097917.816 6 -8647729.446 5 22519150.680 22519148.601 22519148.845
+ 41.200 34.700
+ -541807.578 3 -422187.715 3 24330628.763 24330631.423 24330627.594
+ 23.400 19.300
+ -1330832.144 4 -1037013.214 3 24183698.452 24183698.927 24183698.257
+ 26.200 21.600
+ -18744217.565 6 -14605890.778 6 21604575.624 21604575.885 21604574.808
+ 41.800 37.700
+ -19723183.973 7 -15368715.178 7 21180194.123 21180192.098 21180193.069
+ 45.300 43.400
+ -2442628.028 3 -1903349.926 3 24323835.297 24323836.133 24323834.738
+ 18.600 21.100
+ 06 1 2 16 0 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22688261.548 7 -17679169.290 7 20449058.035 20449057.546 20449057.083
+ 46.400 43.800
+ -19768655.197 7 -15404140.394 6 20722373.010 20722371.180 20722372.314
+ 46.300 41.700
+ -8513591.267 5 -6633966.610 5 23101826.069 23101825.933 23101825.460
+ 35.700 30.800
+ -11013815.530 6 -8582195.237 5 22535154.918 22535152.316 22535153.329
+ 41.300 34.000
+ -656131.065 3 -511270.878 2 24308873.885 24308876.126 24308872.581
+ 19.300 15.100
+ -1311534.920 3 -1021976.444 3 24187370.150 24187371.107 24187370.000
+ 22.100 23.800
+ -18671929.819 6 -14549562.716 6 21618331.509 21618331.739 21618330.545
+ 41.500 36.800
+ -19778084.473 7 -15411494.783 7 21169746.833 21169744.827 21169745.864
+ 45.300 43.500
+ -2415107.542 3 -1881905.408 4 24329072.969 24329073.396 24329072.385
+ 19.900 24.600
+ 06 1 2 16 1 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22661135.188 7 -17658031.882 7 20454220.283 20454219.654 20454219.256
+ 46.600 43.800
+ -19787803.631 7 -15419061.240 6 20718728.976 20718727.344 20718728.335
+ 46.400 41.900
+ -8602825.443 5 -6703499.716 5 23084845.394 23084845.349 23084844.818
+ 35.600 32.000
+ -10929546.397 6 -8516531.011 5 22551190.920 22551188.487 22551189.119
+ 40.800 34.400
+ -770398.643 3 -600310.494 2 24287128.555 24287131.079 24287127.134
+ 19.900 17.000
+ -1291655.769 2 -1006486.243 3 24191153.241 24191154.150 24191152.704
+ 17.800 23.800
+ -18599213.075 6 -14492900.363 6 21632169.231 21632169.349 21632168.159
+ 41.000 37.000
+ -19832745.206 7 -15454087.552 7 21159345.243 21159343.202 21159344.157
+ 45.200 43.400
+ -2387102.952 3 -1860083.707 4 24334401.525 24334402.714 24334400.837
+ 21.600 25.600
+ 06 1 2 16 1 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22633366.938 7 -17636394.301 7 20459504.291 20459503.892 20459503.291
+ 46.600 43.700
+ -19806367.677 7 -15433526.725 6 20715196.400 20715194.732 20715195.798
+ 46.600 41.700
+ -8691854.595 5 -6772873.051 5 23067903.603 23067903.739 23067902.915
+ 34.700 34.300
+ -10845112.208 6 -8450738.172 5 22567258.611 22567255.484 22567256.726
+ 40.800 34.000
+ -884607.828 3 -689304.614 2 24265395.664 24265398.265 24265393.778
+ 21.100 17.000
+ -1271195.994 3 -990543.617 3 24195046.581 24195047.619 24195045.944
+ 21.600 23.800
+ -18526069.208 6 -14435905.194 6 21646088.125 21646088.283 21646086.966
+ 41.300 37.100
+ -19887164.768 7 -15496492.392 7 21148989.357 21148987.520 21148988.427
+ 45.100 43.500
+ -2358615.827 3 -1837886.004 4 24339822.989 24339823.779 24339822.186
+ 20.500 27.100
+ 06 1 2 16 2 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22604957.848 7 -17614257.360 7 20464910.258 20464909.930 20464909.298
+ 46.600 44.000
+ -19824346.947 7 -15447536.545 6 20711775.350 20711773.338 20711774.600
+ 46.500 41.600
+ -8780677.541 5 -6842085.688 5 23051000.767 23051001.430 23051000.309
+ 34.600 35.400
+ -10760514.872 6 -8384818.201 5 22583357.079 22583353.672 22583355.066
+ 40.500 33.000
+ -998756.016 3 -778251.139 3 24243673.292 24243677.002 24243672.574
+ 23.000 19.900
+ -1250156.952 3 -974149.619 3 24199049.853 24199050.878 24199049.420
+ 22.100 21.600
+ -18452499.930 6 -14378578.533 6 21660087.953 21660088.003 21660086.825
+ 41.000 36.700
+ -19941341.672 7 -15538708.156 7 21138680.166 21138677.933 21138679.106
+ 45.300 43.500
+ -2329647.794 3 -1815313.544 3 24345335.261 24345335.815 24345334.891
+ 21.600 23.400
+ 06 1 2 16 2 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22575908.217 7 -17591621.302 7 20470438.484 20470437.855 20470437.500
+ 46.800 43.700
+ -19841740.886 7 -15461090.253 6 20708465.282 20708463.402 20708464.677
+ 46.600 41.700
+ -8869293.636 5 -6911137.144 5 23034137.686 23034138.115 23034137.202
+ 34.500 35.500
+ -10675755.740 6 -8318772.169 5 22599486.046 22599483.066 22599483.927
+ 40.500 33.800
+ -1112840.591 3 -867148.143 2 24221962.888 24221966.926 24221962.453
+ 23.400 17.800
+ -1228539.827 4 -957305.134 3 24203164.443 24203164.657 24203163.866
+ 25.600 23.800
+ -18378507.372 6 -14320922.057 6 21674168.312 21674168.497 21674167.177
+ 40.700 37.200
+ -19995274.646 7 -15580733.838 7 21128416.802 21128414.828 21128415.839
+ 45.300 43.700
+ -2300200.424 3 -1792367.577 4 24350939.190 24350939.823 24350938.244
+ 21.100 25.300
+ 06 1 2 16 3 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22546218.910 7 -17568486.793 7 20476087.916 20476087.650 20476086.984
+ 46.800 43.800
+ -19858549.223 7 -15474187.658 6 20705266.600 20705264.784 20705266.012
+ 46.600 41.500
+ -8957701.970 5 -6980026.707 5 23017314.494 23017314.537 23017313.600
+ 33.400 35.900
+ -10590836.795 6 -8252601.598 5 22615645.945 22615642.717 22615644.069
+ 41.000 34.000
+ -1226858.665 3 -955993.349 2 24200264.983 24200269.394 24200264.838
+ 21.100 13.900
+ -1206346.225 3 -940011.451 3 24207387.112 24207387.592 24207386.561
+ 21.600 21.600
+ -18304093.924 6 -14262937.609 6 21688327.996 21688328.632 21688327.470
+ 41.000 36.100
+ -20048962.449 7 -15622568.478 7 21118200.319 21118198.490 21118199.418
+ 45.400 43.800
+ -2270275.454 3 -1769049.467 4 24356633.452 24356634.527 24356632.704
+ 19.900 25.900
+ 06 1 2 16 3 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22515890.951 7 -17544854.636 7 20481859.233 20481858.818 20481858.249
+ 46.600 43.500
+ -19874771.446 7 -15486828.346 6 20702179.878 20702177.703 20702179.113
+ 46.500 41.500
+ -9045901.500 5 -7048753.568 5 23000530.649 23000530.623 23000529.942
+ 33.500 35.800
+ -10505759.556 6 -8186307.686 5 22631835.087 22631832.337 22631833.349
+ 41.000 34.100
+ -1340807.511 3 -1044784.526 2 24178581.642 24178585.829 24178581.542
+ 19.300 13.900
+ -1183577.307 3 -922269.451 4 24211720.288 24211720.704 24211719.443
+ 19.300 24.900
+ -18229261.700 6 -14204626.833 6 21702568.105 21702568.823 21702567.562
+ 40.700 36.200
+ -20102403.535 7 -15664210.871 7 21108031.058 21108028.937 21108030.026
+ 45.400 43.900
+ -2239874.125 4 -1745360.145 4 24362419.132 24362419.606 24362418.522
+ 24.200 28.100
+ 06 1 2 16 4 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22484924.477 7 -17520724.927 7 20487752.063 20487751.445 20487751.085
+ 46.800 43.600
+ -19890407.067 7 -15499011.942 6 20699204.598 20699202.437 20699203.877
+ 46.600 41.700
+ -9133891.388 5 -7117317.060 5 22983786.229 22983786.587 22983785.973
+ 34.300 35.600
+ -10420525.582 6 -8119891.633 5 22648054.790 22648052.108 22648052.829
+ 40.800 33.900
+ -1454684.795 3 -1133520.040 2 24156911.473 24156915.735 24156910.999
+ 19.900 17.000
+ -1160234.468 2 -904080.273 4 24216161.820 24216163.306 24216161.561
+ 17.800 26.800
+ -18154012.586 6 -14145991.207 6 21716887.978 21716888.437 21716887.110
+ 40.800 36.400
+ -20155596.558 7 -15705659.969 7 21097908.630 21097906.548 21097907.719
+ 45.100 43.900
+ -2208998.494 4 -1721301.270 4 24368294.628 24368295.080 24368294.202
+ 24.900 25.600
+ 06 1 2 16 4 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22453320.591 7 -17496098.536 7 20493766.011 20493765.566 20493765.060
+ 46.700 43.600
+ -19905455.930 7 -15510738.323 6 20696340.634 20696338.706 20696340.012
+ 46.600 41.800
+ -9221670.701 5 -7185716.489 5 22967082.714 22967082.508 22967082.052
+ 34.600 34.400
+ -10335136.718 6 -8053354.916 5 22664303.970 22664300.864 22664301.948
+ 40.300 33.400
+ -1568487.861 3 -1222197.653 2 24135256.243 24135259.279 24135255.665
+ 22.600 15.100
+ -1136319.347 3 -885445.151 4 24220712.899 24220713.768 24220712.438
+ 19.300 25.600
+ -18078348.450 6 -14087032.185 6 21731286.788 21731286.797 21731285.684
+ 40.700 36.300
+ -20208540.311 7 -15746914.828 7 21087833.637 21087831.630 21087832.680
+ 45.100 44.100
+ -2177649.898 4 -1696873.848 3 24374260.030 24374260.191 24374259.326
+ 24.200 23.000
+ 06 1 2 16 5 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22421080.442 7 -17470976.360 7 20499901.239 20499900.823 20499900.260
+ 46.600 43.600
+ -19919917.408 7 -15522007.004 6 20693588.778 20693586.857 20693588.052
+ 46.600 41.900
+ -9309238.599 5 -7253951.189 5 22950418.810 22950418.713 22950418.325
+ 34.500 32.800
+ -10249594.445 6 -7986698.631 5 22680582.574 22680578.557 22680580.460
+ 40.600 32.800
+ -1682213.876 3 -1310815.265 2 24113615.150 24113618.300 24113614.105
+ 21.600 17.800
+ -1111833.312 3 -866365.138 4 24225372.696 24225373.744 24225372.098
+ 22.600 27.100
+ -18002271.534 6 -14027751.537 6 21745764.461 21745763.897 21745762.917
+ 40.200 36.000
+ -20261233.519 7 -15787974.459 7 21077806.624 21077804.446 21077805.655
+ 45.300 44.000
+ -2145830.338 3 -1672079.407 3 24380314.620 24380315.686 24380314.288
+ 23.800 23.800
+ 06 1 2 16 5 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22388204.658 7 -17445358.878 7 20506157.186 20506156.719 20506156.238
+ 46.800 43.600
+ -19933791.345 7 -15532817.850 6 20690948.581 20690946.750 20690947.910
+ 46.600 41.900
+ -9396594.412 5 -7322020.640 5 22933795.640 22933795.421 22933795.054
+ 35.200 32.000
+ -10163900.550 6 -7919924.201 5 22696889.155 22696885.904 22696887.198
+ 40.500 32.800
+ -1795860.187 3 -1399370.799 2 24091989.644 24091992.480 24091988.210
+ 22.600 17.800
+ -1086777.588 3 -846841.233 4 24230140.414 24230141.651 24230140.026
+ 23.000 26.200
+ -17925784.126 6 -13968151.015 5 21760318.101 21760318.802 21760317.601
+ 40.400 35.500
+ -20313674.835 7 -15828837.816 7 21067827.056 21067825.216 21067826.203
+ 45.100 44.300
+ -2113541.299 4 -1646919.165 3 24386459.755 24386459.787 24386458.734
+ 24.900 23.400
+ 06 1 2 16 6 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22354694.137 7 -17419246.800 7 20512534.128 20512533.603 20512533.074
+ 46.800 43.500
+ -19947077.470 7 -15543170.672 7 20688420.269 20688418.468 20688419.612
+ 46.600 42.000
+ -9483737.171 6 -7389924.082 5 22917213.000 22917212.807 22917212.240
+ 36.200 32.400
+ -10078056.567 6 -7853032.828 5 22713224.339 22713221.972 22713222.814
+ 40.300 33.500
+ -1909424.242 3 -1487862.230 3 24070378.818 24070381.304 24070377.333
+ 20.500 18.600
+ -1061153.848 3 -826874.747 4 24235016.579 24235017.542 24235016.093
+ 22.100 25.900
+ -17848888.479 6 -13908232.363 5 21774950.426 21774951.773 21774950.488
+ 40.500 35.700
+ -20365862.152 7 -15869503.252 7 21057896.190 21057894.277 21057895.292
+ 45.200 44.200
+ -2080784.611 3 -1621394.508 3 24392692.866 24392693.320 24392692.131
+ 22.100 22.600
+ 06 1 2 16 6 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22320550.132 7 -17392641.096 7 20519031.468 20519031.027 20519030.499
+ 46.700 43.400
+ -19959775.614 7 -15553065.331 6 20686004.309 20686002.031 20686003.421
+ 46.700 41.900
+ -9570666.224 6 -7457660.984 5 22900671.147 22900671.013 22900670.260
+ 36.600 33.800
+ -9992063.983 6 -7786025.661 5 22729587.951 22729585.789 22729586.270
+ 39.400 33.500
+ -2022903.392 3 -1576287.521 3 24048784.953 24048787.076 24048783.749
+ 22.600 20.500
+ -1034963.653 3 -806466.834 4 24240000.501 24240001.236 24239999.961
+ 21.100 25.300
+ -17771586.780 6 -13847997.324 5 21789661.635 21789661.866 21789660.457
+ 39.600 35.700
+ -20417794.659 7 -15909970.137 7 21048013.978 21048011.866 21048012.997
+ 45.200 44.400
+ -2047562.002 3 -1595506.785 3 24399015.577 24399015.392 24399014.554
+ 23.800 23.000
+ 06 1 2 16 7 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22285773.277 7 -17365542.265 7 20525649.268 20525648.820 20525648.248
+ 46.600 43.400
+ -19971885.205 7 -15562501.372 6 20683699.786 20683697.600 20683699.053
+ 46.700 41.700
+ -9657380.564 5 -7525230.572 5 22884169.523 22884169.866 22884168.949
+ 34.700 35.400
+ -9905924.600 6 -7718904.113 5 22745980.088 22745977.003 22745977.999
+ 39.300 32.000
+ -2136294.881 4 -1664644.492 3 24027206.751 24027209.541 24027205.747
+ 24.900 21.100
+ -1008208.530 3 -785618.690 3 24245092.203 24245092.440 24245091.474
+ 23.800 23.400
+ -17693880.866 6 -13787447.325 5 21804449.436 21804448.833 21804447.781
+ 39.500 35.600
+ -20469470.892 7 -15950237.324 7 21038180.160 21038178.220 21038179.186
+ 45.000 44.400
+ -2013875.178 3 -1569257.398 3 24405425.365 24405426.347 24405424.839
+ 23.400 22.100
+ 06 1 2 16 7 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22250364.429 7 -17337950.970 7 20532387.301 20532386.850 20532386.263
+ 46.600 43.200
+ -19983406.139 7 -15571478.728 6 20681507.010 20681505.205 20681506.468
+ 46.800 41.800
+ -9743879.319 5 -7592632.156 5 22867709.468 22867709.815 22867708.883
+ 34.400 35.600
+ -9819639.839 6 -7651669.274 5 22762399.731 22762397.048 22762398.107
+ 40.300 33.400
+ -2249596.004 3 -1752931.051 3 24005644.413 24005649.136 24005644.240
+ 21.100 22.600
+ -980889.960 3 -764331.531 4 24250290.507 24250291.270 24250290.010
+ 22.600 26.200
+ -17615772.918 6 -13726584.053 5 21819313.036 21819312.217 21819311.441
+ 39.700 35.300
+ -20520889.521 7 -15990303.782 7 21028395.330 21028393.602 21028394.467
+ 45.100 44.400
+ -1979725.948 3 -1542647.653 3 24411923.944 24411924.155 24411922.955
+ 23.400 19.900
+ 06 1 2 16 8 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22214324.699 7 -17309868.074 7 20539245.549 20539245.077 20539244.534
+ 46.600 43.200
+ -19994338.274 7 -15579997.274 6 20679427.035 20679424.903 20679426.262
+ 46.600 41.900
+ -9830161.535 5 -7659865.006 6 22851290.479 22851290.791 22851289.873
+ 34.700 36.100
+ -9733211.247 6 -7584322.367 5 22778846.488 22778843.421 22778844.453
+ 39.500 32.100
+ -2362804.225 4 -1841145.231 3 23984102.529 23984106.125 23984102.369
+ 27.400 22.100
+ -953009.573 4 -742606.604 3 24255596.342 24255596.791 24255595.763
+ 24.200 23.800
+ -17537265.552 6 -13665409.532 5 21834250.540 21834251.814 21834250.386
+ 39.500 35.300
+ -20572049.117 7 -16030168.396 7 21018660.025 21018658.204 21018659.152
+ 45.000 44.400
+ -1945115.955 4 -1515678.875 3 24418509.898 24418510.224 24418509.347
+ 24.200 20.500
+ 06 1 2 16 8 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22177655.013 7 -17281294.308 7 20546223.369 20546223.120 20546222.496
+ 46.600 43.200
+ -20004681.392 7 -15588056.841 6 20677458.659 20677456.777 20677458.053
+ 46.600 41.900
+ -9916226.510 5 -7726928.571 6 22834913.026 22834913.024 22834912.370
+ 34.800 36.100
+ -9646640.839 6 -7516864.939 5 22795320.438 22795317.558 22795318.383
+ 39.300 32.300
+ -2475916.631 4 -1929284.799 3 23962579.087 23962581.291 23962577.470
+ 24.200 18.600
+ -924568.999 3 -720445.156 4 24261007.597 24261008.934 24261006.973
+ 22.600 24.600
+ -17458360.730 6 -13603925.292 5 21849265.828 21849267.014 21849265.509
+ 39.500 35.500
+ -20622948.326 7 -16069830.110 7 21008974.238 21008972.525 21008973.335
+ 45.100 44.800
+ -1910047.293 3 -1488352.653 2 24425183.217 24425183.587 24425182.601
+ 23.800 17.800
+ 06 1 2 16 9 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22140356.628 7 -17252230.650 7 20553321.229 20553320.750 20553320.200
+ 46.400 43.000
+ -20014435.401 7 -15595657.376 7 20675602.344 20675600.739 20675601.745
+ 46.500 42.200
+ -10002073.732 6 -7793822.459 5 22818576.731 22818576.617 22818576.126
+ 36.200 35.700
+ -9559929.810 6 -7449297.944 5 22811820.336 22811818.332 22811818.784
+ 39.000 32.800
+ -2588930.687 3 -2017347.706 2 23941073.248 23941075.555 23941071.860
+ 23.000 17.800
+ -895570.040 4 -697848.597 4 24266526.597 24266527.375 24266526.120
+ 24.600 25.600
+ -17379060.638 6 -13542133.073 5 21864357.674 21864357.388 21864356.214
+ 39.100 35.400
+ -20673585.605 7 -16109287.724 7 20999338.531 20999336.511 20999337.580
+ 44.900 44.800
+ -1874521.605 3 -1460670.361 2 24431943.624 24431943.870 24431943.165
+ 22.100 17.800
+ 06 1 2 16 9 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22102430.667 7 -17222677.967 7 20560538.362 20560537.803 20560537.426
+ 46.800 43.100
+ -20023600.395 7 -15602798.923 6 20673858.328 20673856.652 20673857.652
+ 46.500 41.900
+ -10087701.872 6 -7860545.656 5 22802281.828 22802281.880 22802281.480
+ 36.900 34.800
+ -9473079.888 6 -7381622.725 5 22828347.823 22828345.280 22828346.147
+ 38.900 32.300
+ -2701843.904 3 -2105332.014 3 23919585.072 23919588.928 23919584.563
+ 20.500 21.600
+ -866014.009 3 -674817.947 4 24272150.765 24272151.636 24272150.113
+ 22.600 25.600
+ -17299367.472 6 -13480034.568 5 21879521.795 21879522.486 21879521.016
+ 39.300 34.700
+ -20723959.481 7 -16148540.092 7 20989752.811 20989750.629 20989751.772
+ 45.200 44.700
+ -1838540.738 3 -1432633.344 3 24438790.623 24438791.486 24438789.767
+ 19.900 23.000
+ 06 1 2 16 10 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22063878.555 7 -17192637.380 7 20567874.576 20567874.109 20567873.535
+ 46.600 43.000
+ -20032175.737 7 -15609481.015 7 20672226.589 20672224.790 20672225.911
+ 46.600 42.200
+ -10173110.255 6 -7927097.612 5 22786029.466 22786029.440 22786028.744
+ 37.200 35.100
+ -9386092.797 6 -7313840.615 5 22844901.356 22844898.412 22844899.395
+ 39.500 32.300
+ -2814653.476 3 -2193235.558 2 23898119.245 23898121.718 23898118.085
+ 21.600 17.000
+ -835902.703 4 -651354.629 4 24277880.866 24277881.898 24277880.412
+ 25.300 25.300
+ -17219283.615 6 -13417631.604 5 21894761.188 21894762.173 21894760.653
+ 39.300 34.800
+ -20774068.860 7 -16187586.360 7 20980217.158 20980215.014 20980216.164
+ 45.100 44.700
+ -1802106.540 3 -1404243.127 3 24445723.819 24445724.341 24445723.248
+ 21.600 22.600
+ 06 1 2 16 10 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22024701.314 7 -17162109.677 7 20575329.720 20575329.286 20575328.735
+ 46.700 42.900
+ -20040161.675 7 -15615703.818 7 20670707.064 20670705.098 20670706.330
+ 46.800 42.200
+ -10258298.158 6 -7993477.757 5 22769818.487 22769818.609 22769818.037
+ 37.000 35.100
+ -9298969.934 6 -7245952.718 5 22861480.198 22861477.435 22861478.368
+ 39.700 32.600
+ -2927356.518 4 -2281056.081 3 23876671.697 23876675.773 23876671.175
+ 25.300 21.600
+ -805237.808 3 -627459.919 3 24283716.236 24283716.409 24283715.609
+ 23.800 18.600
+ -17138810.869 6 -13354925.627 5 21910074.869 21910075.624 21910073.957
+ 38.900 35.300
+ -20823912.169 7 -16226425.303 7 20970732.141 20970730.198 20970731.278
+ 45.000 44.700
+ -1765221.030 3 -1375501.199 3 24452742.490 24452743.895 24452742.041
+ 20.500 22.100
+ 06 1 2 16 11 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21984899.807 7 -17131095.533 7 20582903.852 20582903.217 20582902.810
+ 46.500 42.700
+ -20047558.041 7 -15621467.210 7 20669299.449 20669297.661 20669298.893
+ 46.800 42.300
+ -10343264.922 6 -8059685.588 5 22753650.004 22753649.969 22753649.291
+ 36.000 34.900
+ -9211712.825 6 -7177960.205 5 22878084.164 22878081.760 22878082.297
+ 38.600 31.500
+ -3039950.586 3 -2368791.707 2 23855246.540 23855248.736 23855245.531
+ 23.800 17.800
+ -774021.230 4 -603135.367 3 24289656.661 24289657.197 24289656.194
+ 24.900 22.100
+ -17057951.771 6 -13291918.586 5 21925462.729 21925462.718 21925461.314
+ 39.300 35.400
+ -20873487.952 7 -16265055.782 7 20961298.288 20961296.262 20961297.366
+ 44.900 44.800
+ -1727886.075 3 -1346409.095 2 24459847.068 24459847.591 24459846.377
+ 23.000 17.800
+ 06 1 2 16 11 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21944475.143 7 -17099595.814 7 20590596.220 20590595.766 20590595.317
+ 46.600 42.700
+ -20054364.798 7 -15626771.165 7 20668004.299 20668002.382 20668003.586
+ 46.900 42.200
+ -10428009.519 5 -8125720.286 5 22737523.465 22737523.611 22737522.862
+ 35.700 34.900
+ -9124322.951 6 -7109864.247 5 22894713.938 22894711.586 22894712.281
+ 38.900 31.800
+ -3152432.896 4 -2456440.201 3 23833841.244 23833844.424 23833840.408
+ 25.300 18.600
+ -742254.574 4 -578382.184 3 24295701.559 24295702.266 24295700.976
+ 25.900 22.600
+ -16976708.803 6 -13228612.440 5 21940922.033 21940922.567 21940921.321
+ 39.100 34.400
+ -20922794.929 7 -16303476.803 7 20951915.330 20951913.435 20951914.454
+ 44.800 44.900
+ -1690103.259 3 -1316967.982 2 24467037.865 24467037.718 24467036.924
+ 23.400 16.100
+ 06 1 2 16 12 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21903428.655 7 -17067611.556 7 20598407.480 20598406.698 20598406.312
+ 46.600 42.700
+ -20060581.996 7 -15631615.725 7 20666820.897 20666819.192 20666820.405
+ 46.800 42.200
+ -10512531.085 6 -8191581.206 5 22721439.566 22721439.634 22721439.013
+ 36.200 35.600
+ -9036802.089 6 -7041666.210 5 22911368.854 22911366.262 22911366.712
+ 38.500 31.300
+ -3264800.829 4 -2543999.579 3 23812458.119 23812461.405 23812457.728
+ 25.300 19.900
+ -709939.608 4 -553201.733 3 24301851.386 24301851.417 24301850.680
+ 26.800 21.600
+ -16895084.280 6 -13165008.956 5 21956454.434 21956455.255 21956453.780
+ 38.400 34.600
+ -20971831.635 7 -16341687.224 7 20942583.852 20942582.043 20942583.010
+ 44.800 45.000
+ -1651874.913 3 -1287179.675 2 24474312.071 24474312.523 24474311.535
+ 21.100 17.800
+ 06 1 2 16 12 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21861761.624 7 -17035143.756 7 20606336.051 20606335.754 20606335.115
+ 46.600 42.800
+ -20066209.505 7 -15636000.786 7 20665750.216 20665748.370 20665749.529
+ 46.900 42.200
+ -10596829.042 6 -8257267.882 5 22705398.363 22705398.148 22705397.700
+ 37.200 35.800
+ -8949151.373 6 -6973367.007 5 22928048.086 22928046.107 22928046.321
+ 38.600 31.600
+ -3377051.573 4 -2631467.672 2 23791097.382 23791100.633 23791096.743
+ 24.900 17.000
+ -677078.236 3 -527595.500 3 24308103.967 24308104.855 24308103.462
+ 22.600 19.900
+ -16813080.397 6 -13101109.871 5 21972060.077 21972060.230 21972058.888
+ 38.100 34.600
+ -21020596.703 7 -16379685.978 7 20933304.258 20933302.355 20933303.440
+ 44.900 44.900
+ -1613202.777 3 -1257045.586 3 24481671.100 24481671.684 24481670.604
+ 23.400 22.600
+ 06 1 2 16 13 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21819475.184 7 -17002193.302 7 20614382.929 20614382.676 20614381.841
+ 46.300 42.700
+ -20071247.296 7 -15639926.319 7 20664791.435 20664789.693 20664790.832
+ 46.700 42.500
+ -10680902.737 6 -8322779.824 5 22689399.316 22689399.477 22689398.940
+ 37.300 35.900
+ -8861372.779 6 -6904968.159 5 22944752.150 22944749.651 22944750.286
+ 38.000 32.000
+ -3489182.762 4 -2718842.481 3 23769759.942 23769763.111 23769759.162
+ 25.600 21.600
+ -643672.165 4 -501564.835 3 24314461.361 24314461.682 24314460.837
+ 25.600 21.100
+ -16730699.243 6 -13036916.825 5 21987737.434 21987736.984 21987735.865
+ 38.300 34.900
+ -21069088.554 7 -16417471.835 7 20924076.653 20924074.685 20924075.771
+ 44.900 45.000
+ -1574088.824 3 -1226567.241 3 24489114.720 24489115.384 24489113.925
+ 22.100 21.600
+ 06 1 2 16 13 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21776570.880 7 -16968761.400 7 20622547.236 20622547.052 20622546.339
+ 46.500 42.500
+ -20075695.719 7 -15643392.620 7 20663945.049 20663943.192 20663944.417
+ 46.900 42.300
+ -10764750.852 6 -8388115.975 6 22673443.465 22673443.717 22673442.979
+ 36.700 36.500
+ -8773467.813 6 -6836470.834 5 22961479.563 22961477.575 22961477.634
+ 37.300 32.000
+ -3601191.590 4 -2806122.058 3 23748445.588 23748448.135 23748444.958
+ 29.000 21.600
+ -609723.158 4 -475111.099 3 24320921.761 24320922.150 24320921.154
+ 24.600 20.500
+ -16647943.238 6 -12972431.690 5 22003483.650 22003485.134 22003483.292
+ 38.000 35.200
+ -21117305.863 7 -16455043.766 7 20914901.311 20914899.284 20914900.326
+ 44.800 45.100
+ -1534535.111 4 -1195746.195 3 24496641.707 24496641.415 24496640.832
+ 24.600 21.100
+ 06 1 2 16 14 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21733050.233 7 -16934849.227 7 20630829.262 20630828.797 20630828.180
+ 46.600 42.400
+ -20079554.812 7 -15646399.695 7 20663210.705 20663208.765 20663210.014
+ 46.700 42.300
+ -10848372.878 6 -8453275.950 6 22657531.210 22657531.043 22657530.580
+ 37.500 36.500
+ -8685437.674 6 -6767875.991 5 22978231.693 22978229.364 22978229.788
+ 38.100 32.300
+ -3713075.069 4 -2893303.880 4 23727153.869 23727157.977 23727153.760
+ 27.100 25.300
+ -575233.114 4 -448235.782 3 24327484.971 24327485.456 24327484.642
+ 26.200 21.600
+ -16564815.043 6 -12907656.523 5 22019303.128 22019303.869 22019302.283
+ 38.400 34.700
+ -21165247.158 7 -16492400.617 7 20905778.378 20905776.355 20905777.430
+ 44.800 45.200
+ -1494543.545 4 -1164584.000 3 24504251.207 24504251.534 24504250.876
+ 24.600 19.300
+ 06 1 2 16 14 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21688914.010 7 -16900457.386 7 20639227.702 20639227.636 20639226.873
+ 46.400 42.400
+ -20082824.540 7 -15648947.528 7 20662588.329 20662586.579 20662587.733
+ 46.700 42.400
+ -10931768.109 6 -8518259.210 6 22641661.642 22641661.303 22641660.923
+ 37.700 36.000
+ -8597283.995 6 -6699184.870 5 22995006.752 22995004.108 22995004.784
+ 37.300 32.000
+ -3824830.586 4 -2980385.972 3 23705887.331 23705890.644 23705886.624
+ 24.200 21.100
+ -540204.014 3 -420940.400 3 24334150.454 24334151.172 24334149.992
+ 23.000 18.600
+ -16481316.706 6 -12842592.947 5 22035193.513 22035193.121 22035191.803
+ 37.300 34.600
+ -21212910.908 7 -16529541.197 7 20896708.323 20896706.195 20896707.343
+ 44.800 45.300
+ -1454116.167 3 -1133082.178 3 24511945.066 24511944.937 24511944.252
+ 23.000 20.500
+ 06 1 2 16 15 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21644163.723 7 -16865587.051 7 20647743.952 20647743.285 20647742.847
+ 46.500 42.300
+ -20085504.912 7 -15651036.128 7 20662078.584 20662076.515 20662077.811
+ 46.700 42.100
+ -11014935.510 6 -8583064.940 6 22625835.624 22625834.985 22625834.696
+ 38.100 36.300
+ -8509008.384 6 -6630398.735 5 23011805.004 23011802.367 23011803.073
+ 37.500 30.200
+ -3936455.721 4 -3067366.541 4 23684646.535 23684649.968 23684645.491
+ 26.200 24.900
+ -504637.650 3 -393226.379 3 24340918.626 24340919.411 24340918.000
+ 21.600 19.900
+ -16397450.524 6 -12777242.745 5 22051151.077 22051152.209 22051150.793
+ 38.100 33.500
+ -21260295.789 7 -16566464.474 7 20887691.298 20887689.055 20887690.370
+ 44.900 45.200
+ -1413255.088 3 -1101242.381 3 24519719.934 24519720.283 24519719.587
+ 20.500 18.600
+ 06 1 2 16 15 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21598801.164 7 -16830239.622 7 20656375.858 20656375.605 20656374.986
+ 46.600 42.500
+ -20087596.439 7 -15652665.889 7 20661680.266 20661678.429 20661679.674
+ 46.600 42.100
+ -11097874.546 6 -8647692.718 6 22610052.478 22610052.139 22610051.629
+ 37.800 37.200
+ -8420612.242 6 -6561518.680 5 23028626.453 23028623.949 23028624.494
+ 38.100 30.800
+ -4047947.774 4 -3154243.345 3 23663429.726 23663432.809 23663429.276
+ 24.900 21.100
+ -468535.945 4 -365095.228 3 24347788.654 24347789.501 24347788.249
+ 24.200 19.300
+ -16313218.795 6 -12711607.674 5 22067180.081 22067181.278 22067179.311
+ 36.900 34.100
+ -21307400.429 7 -16603169.386 7 20878727.457 20878725.366 20878726.463
+ 44.700 45.200
+ -1371962.320 3 -1069066.269 2 24527577.630 24527578.422 24527576.546
+ 19.900 17.800
+ 06 1 2 16 16 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21552827.450 7 -16794415.968 7 20665124.569 20665124.172 20665123.524
+ 46.500 42.300
+ -20089098.871 7 -15653836.617 6 20661394.475 20661392.458 20661393.715
+ 46.800 41.900
+ -11180584.775 6 -8712142.194 6 22594312.918 22594312.923 22594312.388
+ 37.600 37.100
+ -8332097.143 6 -6492545.935 5 23045470.307 23045468.146 23045468.536
+ 37.900 32.000
+ -4159303.944 4 -3241014.362 4 23642239.560 23642243.154 23642238.571
+ 24.600 26.500
+ -431900.878 3 -336548.510 2 24354760.573 24354760.235 24354759.896
+ 23.400 16.100
+ -16228624.162 6 -12645689.863 5 22083278.643 22083278.916 22083277.358
+ 36.600 34.000
+ -21354223.456 7 -16639654.857 7 20869817.382 20869815.318 20869816.365
+ 44.700 45.500
+ -1330239.907 2 -1036555.329 3 24535517.100 24535517.767 24535516.678
+ 17.000 19.900
+ 06 1 2 16 16 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21506244.230 7 -16758117.376 7 20673988.879 20673988.683 20673987.973
+ 46.400 42.000
+ -20090012.654 7 -15654548.647 6 20661220.569 20661218.576 20661219.913
+ 46.600 41.900
+ -11263064.966 6 -8776412.428 6 22578617.666 22578617.459 22578617.073
+ 37.800 37.200
+ -8243464.542 6 -6423481.625 5 23062336.520 23062334.121 23062334.818
+ 37.900 30.800
+ -4270521.632 4 -3327677.404 3 23621075.787 23621078.737 23621075.023
+ 26.200 23.400
+ -394734.470 4 -307587.670 2 24361832.830 24361833.204 24361832.403
+ 25.600 17.800
+ -16143668.899 6 -12579491.025 5 22099443.518 22099445.664 22099443.759
+ 37.400 34.300
+ -21400763.323 7 -16675919.679 7 20860961.047 20860959.089 20860960.104
+ 44.800 45.500
+ -1288089.767 2 -1003711.146 3 24543538.597 24543539.449 24543537.085
+ 16.100 23.800
+ 06 1 2 16 17 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21459052.699 7 -16721344.775 7 20682969.299 20682968.996 20682968.265
+ 46.400 42.200
+ -20090337.956 7 -15654802.135 6 20661158.574 20661156.695 20661157.899
+ 46.800 41.900
+ -11345314.333 6 -8840502.792 6 22562965.737 22562965.830 22562965.308
+ 37.800 36.800
+ -8154716.073 6 -6354327.015 5 23079224.177 23079222.278 23079222.712
+ 37.800 30.100
+ -4381598.252 4 -3414230.582 3 23599939.669 23599941.475 23599938.251
+ 25.900 23.800
+ -357038.618 3 -278214.312 3 24369005.920 24369006.747 24369005.544
+ 23.400 20.500
+ -16058355.582 6 -12513013.183 5 22115680.419 22115679.918 22115678.724
+ 37.200 33.000
+ -21447018.521 7 -16711962.678 7 20852159.094 20852156.936 20852158.044
+ 44.700 45.400
+ -1245514.155 2 -970535.395 3 24551639.730 24551641.321 24551639.209
+ 17.800 21.600
+ 06 1 2 16 17 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21411254.727 7 -16684099.626 7 20692064.894 20692064.618 20692063.869
+ 46.100 42.300
+ -20090074.927 7 -15654597.173 6 20661208.599 20661206.724 20661207.953
+ 46.500 41.900
+ -11427332.315 6 -8904412.864 6 22547357.665 22547358.072 22547357.381
+ 37.600 36.000
+ -8065852.801 6 -6285082.959 5 23096134.963 23096132.689 23096133.174
+ 37.700 31.000
+ -4492531.237 4 -3500671.809 3 23578828.625 23578831.420 23578827.529
+ 24.900 21.600
+ -318815.254 3 -248429.910 2 24376280.030 24376280.193 24376279.362
+ 22.100 17.800
+ -15972686.530 6 -12446258.164 5 22131981.642 22131982.448 22131980.983
+ 37.700 33.200
+ -21492987.519 7 -16747782.669 7 20843411.431 20843409.252 20843410.478
+ 44.700 45.500
+ -1202515.034 2 -937029.650 3 24559822.514 24559823.551 24559821.559
+ 17.800 21.100
+ 06 1 2 16 18 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21362851.466 7 -16646382.824 7 20701275.507 20701275.420 20701274.689
+ 46.300 42.200
+ -20089224.117 7 -15653934.208 6 20661370.476 20661368.614 20661369.811
+ 46.600 41.700
+ -11509117.967 6 -8968141.902 6 22531794.564 22531794.778 22531794.233
+ 37.200 36.400
+ -7976876.347 6 -6215750.700 4 23113066.822 23113063.826 23113064.997
+ 38.500 29.700
+ -4603317.650 4 -3586998.923 3 23557747.956 23557749.458 23557746.542
+ 28.600 20.500
+ -280066.602 3 -218236.183 2 24383653.455 24383653.607 24383652.954
+ 23.000 12.600
+ -15886664.103 6 -12379227.756 5 22148350.534 22148351.933 22148350.145
+ 36.700 33.000
+ -21538669.266 7 -16783378.828 7 20834718.437 20834716.333 20834717.424
+ 44.700 45.700
+ -1159094.601 2 -903195.615 3 24568085.879 24568086.120 24568084.868
+ 17.000 21.100
+ 06 1 2 16 18 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21313844.466 7 -16608195.574 6 20710601.716 20710601.105 20710600.651
+ 46.300 41.700
+ -20087785.481 7 -15652813.199 6 20661644.242 20661642.381 20661643.623
+ 46.600 41.800
+ -11590670.911 6 -9031689.603 6 22516275.708 22516275.693 22516275.320
+ 37.900 36.500
+ -7887788.128 6 -6146331.331 5 23130019.518 23130017.004 23130017.773
+ 37.900 30.200
+ -4713954.605 4 -3673209.533 3 23536692.743 23536695.869 23536691.952
+ 26.800 20.500
+ -240794.494 3 -187634.599 3 24391126.764 24391127.385 24391126.224
+ 23.400 18.600
+ -15800290.809 6 -12311923.976 5 22164788.717 22164788.263 22164787.080
+ 37.200 33.200
+ -21584062.123 7 -16818749.871 7 20826080.454 20826078.389 20826079.470
+ 44.500 45.700
+ -1115255.020 3 -869034.940 3 24576428.053 24576428.921 24576427.514
+ 19.900 21.100
+ 06 1 2 16 19 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21264235.361 7 -16569539.157 6 20720041.829 20720041.491 20720040.880
+ 46.500 41.600
+ -20085759.508 7 -15651234.519 6 20662029.939 20662027.866 20662029.262
+ 46.900 41.800
+ -11671990.241 6 -9095055.268 6 22500801.457 22500800.981 22500800.614
+ 38.100 36.500
+ -7798589.749 6 -6076826.145 5 23146993.583 23146991.209 23146991.619
+ 37.200 30.600
+ -4824439.480 4 -3759301.679 3 23515668.827 23515671.396 23515667.627
+ 24.900 22.100
+ -201001.088 3 -156626.800 3 24398699.169 24398699.991 24398698.577
+ 21.100 20.500
+ -15713568.890 6 -12244348.537 5 22181289.909 22181291.277 22181289.474
+ 36.700 32.800
+ -21629164.506 7 -16853894.574 7 20817497.778 20817495.637 20817496.851
+ 44.700 45.900
+ -1070998.479 3 -834549.316 2 24584849.896 24584849.933 24584849.010
+ 19.900 16.100
+ 06 1 2 16 19 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21214025.914 7 -16530414.935 6 20729596.329 20729595.959 20729595.392
+ 46.500 41.400
+ -20083146.526 7 -15649198.431 6 20662527.137 20662525.084 20662526.499
+ 46.800 41.900
+ -11753075.205 6 -9158238.314 6 22485371.553 22485370.922 22485370.748
+ 38.300 36.200
+ -7709282.664 6 -6007236.260 5 23163988.013 23163986.026 23163986.242
+ 37.100 30.200
+ -4934769.770 4 -3845273.242 4 23494674.512 23494676.641 23494672.956
+ 27.100 24.200
+ -160688.444 3 -125214.349 3 24406370.364 24406370.743 24406369.775
+ 19.900 19.300
+ -15626500.462 6 -12176503.069 5 22197859.510 22197859.805 22197858.343
+ 36.400 33.200
+ -21673975.082 7 -16888811.890 7 20808970.558 20808968.435 20808969.636
+ 44.500 45.700
+ -1026326.996 3 -799740.434 2 24593350.624 24593350.890 24593350.027
+ 20.500 16.100
+ 06 1 2 16 20 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21163217.575 7 -16490824.047 6 20739264.779 20739264.382 20739263.882
+ 46.400 41.500
+ -20079946.770 7 -15646705.112 6 20663136.161 20663134.053 20663135.438
+ 47.000 41.900
+ -11833925.063 6 -9221238.168 6 22469986.849 22469985.897 22469985.899
+ 38.600 37.200
+ -7619868.272 6 -5937562.752 5 23181002.652 23181000.592 23181000.992
+ 37.000 30.200
+ -5044942.740 4 -3931122.266 4 23473709.194 23473711.306 23473707.753
+ 28.100 25.300
+ -119858.463 3 -93398.836 3 24414140.241 24414141.152 24414139.564
+ 23.000 20.500
+ -15539088.768 6 -12108390.155 5 22214493.609 22214493.752 22214492.345
+ 36.400 32.700
+ -21718492.283 7 -16923500.606 7 20800499.406 20800497.025 20800498.426
+ 44.700 45.800
+ -981242.751 3 -764609.894 3 24601930.245 24601930.126 24601929.278
+ 22.600 19.300
+ 06 1 2 16 20 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21111812.125 7 -16450767.875 6 20749047.287 20749046.636 20749046.186
+ 46.100 41.400
+ -20076160.874 7 -15643755.059 7 20663856.386 20663854.496 20663855.850
+ 47.100 42.000
+ -11914538.951 6 -9284054.138 6 22454645.830 22454645.831 22454645.298
+ 38.200 38.000
+ -7530347.836 6 -5867806.606 5 23198038.038 23198036.039 23198036.500
+ 37.100 30.600
+ -5154955.619 4 -4016846.518 4 23452773.054 23452776.431 23452772.513
+ 28.400 24.200
+ -78513.546 3 -61182.076 2 24422008.004 24422008.281 24422007.805
+ 21.100 13.900
+ -15451336.015 6 -12040011.436 5 22231191.346 22231192.644 22231190.936
+ 36.400 32.600
+ -21762714.787 7 -16957959.692 7 20792084.167 20792081.751 20792083.092
+ 44.400 45.700
+ -935748.046 3 -729159.494 3 24610587.070 24610587.838 24610586.366
+ 20.500 19.300
+ 06 1 2 16 21 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21059811.127 7 -16410247.640 6 20758942.566 20758942.323 20758941.533
+ 46.100 41.500
+ -20071789.101 7 -15640348.482 7 20664688.432 20664686.505 20664687.825
+ 47.000 42.000
+ -11994916.278 6 -9346685.769 6 22439350.573 22439350.240 22439349.947
+ 38.800 37.300
+ -7440722.848 6 -5797969.001 5 23215093.688 23215091.162 23215091.684
+ 36.200 30.400
+ -5264805.767 4 -4102443.954 4 23431869.352 23431872.506 23431868.705
+ 27.900 25.300
+ -36655.875 3 -28565.724 2 24429972.979 24429973.548 24429972.228
+ 18.600 17.800
+ -15363244.533 6 -11971368.820 5 22247956.000 22247956.196 22247954.530
+ 36.500 32.400
+ -21806641.721 7 -16992188.458 7 20783725.069 20783722.753 20783724.042
+ 44.400 46.000
+ -889844.961 3 -693390.905 3 24619321.327 24619323.324 24619320.851
+ 19.900 21.600
+ 06 1 2 16 21 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21007216.432 7 -16369264.783 6 20768950.978 20768950.694 20768949.968
+ 45.900 41.100
+ -20066831.648 7 -15636485.528 6 20665631.760 20665629.869 20665631.116
+ 47.000 41.900
+ -12075056.378 6 -9409132.572 6 22424100.562 22424099.859 22424099.983
+ 39.300 36.700
+ -7350994.990 5 -5728051.227 4 23232168.318 23232165.628 23232166.413
+ 35.900 29.700
+ -5374490.579 4 -4187912.482 4 23410996.321 23410999.943 23410995.913
+ 26.500 25.300
+ 5712.526 3 4448.590 3 24438035.865 24438036.321 24438035.236
+ 21.600 21.100
+ -15274816.958 5 -11902464.282 5 22264781.441 22264783.306 22264781.262
+ 35.700 32.400
+ -21850270.547 7 -17026184.938 7 20775422.797 20775420.537 20775421.818
+ 44.400 46.200
+ -843535.881 3 -657305.946 3 24628134.203 24628135.526 24628133.573
+ 22.100 22.600
+ 06 1 2 16 22 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20954029.620 7 -16327820.536 6 20779072.017 20779071.712 20779071.049
+ 46.000 41.200
+ -20061289.199 7 -15632166.737 6 20666686.606 20666684.498 20666685.865
+ 47.100 41.900
+ -12154958.465 6 -9471393.903 6 22408895.250 22408895.108 22408894.511
+ 38.000 36.900
+ -7261165.307 5 -5658054.122 5 23249261.737 23249259.827 23249259.848
+ 35.700 30.100
+ -5484007.371 4 -4273250.102 4 23390155.905 23390159.856 23390155.438
+ 27.900 26.200
+ 48589.476 3 37859.144 2 24446194.360 24446195.688 24446193.891
+ 19.300 17.800
+ -15186055.987 5 -11833299.981 5 22281673.931 22281674.118 22281672.501
+ 35.600 32.700
+ -21893600.374 7 -17059948.427 7 20767177.314 20767175.132 20767176.226
+ 44.300 46.100
+ -796822.798 4 -620906.200 4 24637024.290 24637024.742 24637023.355
+ 24.200 24.200
+ 06 1 2 16 22 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20900252.302 7 -16285916.152 6 20789305.587 20789305.372 20789304.560
+ 45.900 41.100
+ -20055162.255 7 -15627392.489 6 20667852.364 20667850.350 20667851.763
+ 47.000 41.600
+ -12234621.390 6 -9533468.870 6 22393735.640 22393735.838 22393735.125
+ 38.800 37.800
+ -7171235.104 5 -5587978.699 5 23266374.630 23266373.158 23266372.784
+ 34.800 30.200
+ -5593353.592 4 -4358454.770 3 23369349.154 23369351.225 23369347.857
+ 28.400 23.000
+ 91972.774 3 71664.271 2 24454450.330 24454451.037 24454449.395
+ 19.900 17.800
+ -15096963.746 6 -11763877.523 5 22298625.806 22298627.788 22298625.939
+ 36.200 32.100
+ -21936629.524 7 -17093477.623 7 20758988.750 20758986.960 20758987.848
+ 44.300 46.200
+ -749708.225 3 -584193.582 3 24645989.728 24645990.173 24645988.961
+ 23.400 23.400
+ 06 1 2 16 23 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20845886.360 7 -16243553.103 6 20799651.107 20799650.915 20799650.121
+ 46.200 41.200
+ -20048451.142 7 -15622163.048 6 20669129.545 20669127.363 20669128.862
+ 47.100 41.800
+ -12314045.064 6 -9595357.405 6 22378622.195 22378621.928 22378621.618
+ 39.300 38.300
+ -7081206.294 6 -5517826.427 4 23283507.210 23283504.600 23283505.516
+ 36.000 29.000
+ -5702526.460 4 -4443524.358 4 23348573.638 23348576.572 23348572.440
+ 26.200 26.200
+ 135860.081 2 105862.145 3 24462801.377 24462802.537 24462800.872
+ 15.100 18.600
+ -15007542.790 5 -11694198.916 5 22315644.051 22315643.930 22315642.542
+ 35.800 31.100
+ -21979356.843 7 -17126771.630 7 20750858.255 20750856.147 20750857.264
+ 44.300 46.200
+ -702194.328 3 -547169.855 3 24655030.406 24655032.156 24655029.701
+ 20.500 23.400
+ 06 1 2 16 23 30.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20790933.682 7 -16200732.854 6 20810108.391 20810108.057 20810107.432
+ 46.100 41.000
+ -20041156.195 7 -15616478.671 6 20670517.557 20670515.606 20670516.909
+ 46.800 41.900
+ -12393228.763 6 -9657058.946 6 22363554.055 22363553.893 22363553.227
+ 38.800 38.000
+ -6991080.075 6 -5447598.259 5 23300658.244 23300655.991 23300656.362
+ 36.300 30.400
+ -5811523.229 4 -4528456.758 4 23327831.897 23327834.567 23327831.055
+ 27.600 24.200
+ 180249.379 3 140451.135 3 24471249.326 24471249.726 24471248.903
+ 21.600 19.300
+ -14917795.911 5 -11624266.361 5 22332720.581 22332722.545 22332720.429
+ 35.400 32.600
+ -22021780.754 7 -17159829.219 7 20742785.204 20742783.165 20742784.257
+ 44.200 46.200
+ -654283.276 3 -509836.654 4 24664148.218 24664149.543 24664147.739
+ 21.600 24.600
+ 06 1 2 16 24 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -154246.943 1 -120192.859 9 23338521.728 23338521.888 23338519.383
+ 6.500 -3.000
+ -20735395.922 7 -16157456.698 6 20820676.891 20820676.651 20820675.885
+ 46.200 41.300
+ -20033278.413 7 -15610340.135 6 20672016.610 20672014.716 20672015.940
+ 46.800 41.600
+ -12472171.841 6 -9718572.987 6 22348531.549 22348531.511 22348530.989
+ 39.500 38.100
+ -6900857.438 6 -5377294.955 4 23317826.961 23317824.565 23317825.032
+ 36.300 29.700
+ -5920341.296 5 -4613249.922 4 23307124.382 23307127.255 23307123.871
+ 30.200 24.900
+ 225138.311 3 175429.491 2 24479790.296 24479791.676 24479789.897
+ 18.600 17.000
+ -14827725.179 5 -11554081.437 5 22349861.652 22349862.345 22349860.485
+ 34.800 32.100
+ -22063899.691 7 -17192649.166 7 20734770.322 20734768.198 20734769.323
+ 44.100 46.400
+ -605977.341 3 -472195.705 3 24673340.618 24673341.428 24673340.202
+ 22.100 23.000
+ 06 1 2 16 24 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -233788.841 1 -182173.540 9 23323382.966 23323385.713 23323383.691
+ 9.000 -3.000
+ -20679274.721 7 -16113725.914 6 20831356.535 20831356.137 20831355.518
+ 45.900 41.200
+ -20024818.104 7 -15603747.686 6 20673626.346 20673624.718 20673625.821
+ 46.700 41.900
+ -12550873.212 6 -9779898.690 6 22333555.180 22333554.786 22333554.698
+ 39.500 37.800
+ -6810539.761 5 -5306917.608 4 23335013.672 23335011.566 23335011.529
+ 35.500 29.000
+ -6028978.116 5 -4697901.880 4 23286451.702 23286454.316 23286450.968
+ 30.200 24.900
+ 270524.586 3 210795.381 3 24488427.888 24488428.835 24488427.430
+ 21.100 21.600
+ -14737333.466 5 -11483646.413 5 22367062.434 22367063.554 22367061.408
+ 34.700 32.100
+ -22105712.113 7 -17225230.268 7 20726813.649 20726811.530 20726812.663
+ 44.000 46.400
+ -557278.871 3 -434248.912 3 24682608.290 24682608.982 24682607.342
+ 22.600 23.800
+ 06 1 2 16 25 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -313165.934 2 -244025.766 2 23308278.422 23308280.244 23308278.670
+ 15.100 12.600
+ -20622572.218 7 -16069542.165 6 20842146.618 20842146.212 20842145.605
+ 46.000 41.100
+ -20015775.945 7 -15596701.842 6 20675347.213 20675345.417 20675346.570
+ 46.900 41.900
+ -12629332.324 6 -9841035.617 6 22318624.997 22318624.349 22318624.242
+ 39.500 37.700
+ -6720128.919 5 -5236467.657 4 23352217.883 23352216.347 23352216.222
+ 35.500 29.000
+ -6137430.848 5 -4782410.367 3 23265814.102 23265816.064 23265813.055
+ 30.800 23.400
+ 316406.063 3 246547.102 3 24497158.849 24497159.584 24497158.636
+ 20.500 19.300
+ -14646623.410 5 -11412963.327 5 22384324.307 22384325.041 22384322.853
+ 34.800 31.100
+ -22147216.984 7 -17257571.724 7 20718915.595 20718913.464 20718914.676
+ 44.200 46.500
+ -508190.227 3 -395998.113 3 24691949.467 24691950.074 24691948.499
+ 18.600 23.000
+ 06 1 2 16 25 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -392377.680 2 -305749.161 2 23293206.533 23293207.100 23293205.452
+ 17.800 12.600
+ -20565290.441 7 -16024907.039 6 20853046.730 20853046.483 20853045.698
+ 45.700 40.700
+ -20006152.763 7 -15589203.259 6 20677178.490 20677176.696 20677177.797
+ 46.900 41.900
+ -12707548.329 6 -9901983.117 6 22303740.816 22303740.501 22303740.182
+ 40.100 37.700
+ -6629626.038 5 -5165945.982 4 23369440.353 23369438.176 23369438.722
+ 35.900 29.700
+ -6245696.876 4 -4866773.395 4 23245210.915 23245213.746 23245210.308
+ 29.500 24.600
+ 362780.277 3 282682.785 2 24505983.077 24505984.174 24505982.705
+ 19.300 17.000
+ -14555597.236 5 -11342033.920 5 22401644.818 22401646.941 22401644.660
+ 34.900 31.600
+ -22188412.399 7 -17289672.047 7 20711076.666 20711074.237 20711075.593
+ 44.000 46.500
+ -458713.683 3 -357445.052 3 24701363.737 24701365.131 24701363.427
+ 18.600 21.600
+ 06 1 2 16 26 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -471423.736 3 -367343.435 1 23278164.383 23278165.193 23278163.400
+ 18.600 11.000
+ -20507430.869 7 -15979821.681 6 20864057.177 20864056.938 20864056.117
+ 45.700 40.600
+ -19995948.643 7 -15581251.989 6 20679120.306 20679118.500 20679119.645
+ 46.700 41.800
+ -12785520.637 6 -9962740.708 6 22288903.329 22288902.947 22288902.634
+ 39.500 38.400
+ -6539032.323 5 -5095353.524 4 23386680.077 23386677.653 23386678.058
+ 34.800 29.200
+ -6353773.438 4 -4950988.838 3 23224643.589 23224646.833 23224643.676
+ 28.800 22.600
+ 409644.991 3 319200.750 2 24514901.555 24514902.410 24514900.552
+ 20.500 17.800
+ -14464257.958 5 -11270860.518 5 22419028.223 22419028.021 22419026.524
+ 34.100 30.800
+ -22229297.264 7 -17321530.381 7 20703296.192 20703294.168 20703295.198
+ 43.800 46.600
+ -408851.648 2 -318591.551 3 24710852.795 24710853.673 24710851.774
+ 17.800 19.900
+ 06 1 2 16 26 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -550303.557 3 -428808.190 2 23263154.002 23263154.756 23263152.330
+ 18.600 15.100
+ -20448995.561 7 -15934287.699 6 20875177.043 20875176.888 20875176.110
+ 46.000 40.800
+ -19985164.465 7 -15572848.731 6 20681172.584 20681170.604 20681171.833
+ 46.800 41.900
+ -12863248.836 6 -10023308.080 6 22274111.864 22274111.434 22274111.413
+ 39.800 38.200
+ -6448349.371 6 -5024691.552 4 23403936.774 23403933.823 23403935.053
+ 36.000 28.400
+ -6461657.885 4 -5035054.571 4 23204114.796 23204117.595 23204114.028
+ 29.000 25.900
+ 456997.782 3 356098.970 3 24523912.855 24523913.348 24523911.989
+ 19.300 20.500
+ -14372607.932 5 -11199444.982 5 22436466.710 22436468.812 22436466.564
+ 35.100 31.000
+ -22269869.787 7 -17353145.331 7 20695575.377 20695573.470 20695574.428
+ 43.900 46.700
+ -358606.381 2 -279439.469 3 24720412.984 24720415.060 24720412.445
+ 17.000 18.600
+ 06 1 2 16 27 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -629016.755 3 -490143.122 2 23248175.295 23248176.737 23248174.000
+ 21.600 17.000
+ -20389986.729 7 -15888306.817 6 20886405.974 20886405.843 20886405.017
+ 45.700 40.700
+ -19973800.830 7 -15563993.951 6 20683334.861 20683333.075 20683334.247
+ 46.700 41.800
+ -12940732.180 6 -10083684.652 6 22259367.280 22259366.638 22259366.587
+ 39.900 37.900
+ -6357578.324 5 -4953960.919 4 23421209.648 23421207.561 23421207.820
+ 35.600 29.000
+ -6569347.754 4 -5118968.673 4 23183621.484 23183624.843 23183621.163
+ 28.600 24.600
+ 504836.438 3 393375.810 3 24533015.853 24533016.929 24533015.347
+ 19.300 19.900
+ -14280649.525 5 -11127789.158 5 22453968.205 22453967.842 22453966.369
+ 34.500 31.600
+ -22310128.686 7 -17384515.903 7 20687914.409 20687912.383 20687913.445
+ 44.100 46.700
+ -307980.210 3 -239990.543 2 24730047.411 24730048.917 24730046.689
+ 18.600 17.800
+ 06 1 2 16 27 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -707562.821 3 -551347.804 3 23233228.958 23233229.817 23233227.990
+ 23.800 19.900
+ -20330406.254 7 -15841880.496 6 20897743.979 20897743.565 20897742.980
+ 45.700 40.300
+ -19961858.476 7 -15554688.214 6 20685607.557 20685605.514 20685606.846
+ 46.700 41.600
+ -13017969.778 6 -10143869.745 6 22244669.528 22244669.077 22244668.956
+ 40.300 38.400
+ -6266720.512 5 -4883162.685 4 23438498.885 23438497.392 23438497.106
+ 34.300 28.600
+ -6676840.525 4 -5202729.175 3 23163165.994 23163169.319 23163166.001
+ 29.900 23.800
+ 553158.410 3 431029.260 3 24542210.998 24542212.740 24542210.636
+ 21.100 19.900
+ -14188385.420 5 -11055895.109 5 22471522.336 22471525.137 22471523.065
+ 34.000 31.300
+ -22350072.427 7 -17415640.892 7 20680313.465 20680311.336 20680312.473
+ 44.000 46.800
+ -256975.680 2 -200246.822 2 24739753.578 24739754.580 24739753.245
+ 17.000 16.100
+ 06 1 2 16 28 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -785941.292 4 -612421.889 3 23218313.941 23218314.783 23218312.707
+ 25.600 23.400
+ -20270255.711 7 -15795009.967 6 20909190.169 20909189.992 20909189.240
+ 45.600 40.400
+ -19949338.242 7 -15544932.190 6 20687989.820 20687988.082 20687989.166
+ 46.600 41.800
+ -13094960.969 6 -10203862.819 6 22230018.161 22230018.259 22230017.718
+ 40.000 39.300
+ -6175777.288 5 -4812297.884 4 23455806.156 23455802.735 23455804.013
+ 35.900 28.100
+ -6784133.255 5 -5286333.827 4 23142749.527 23142752.472 23142748.981
+ 30.200 26.200
+ 601961.344 3 469057.486 3 24551498.344 24551499.500 24551497.779
+ 22.100 19.900
+ -14095818.176 5 -10983764.882 5 22489139.321 22489140.266 22489138.384
+ 34.500 30.800
+ -22389699.505 7 -17446519.128 7 20672772.895 20672770.617 20672771.853
+ 44.100 46.900
+ -205595.078 3 -160210.029 2 24749531.596 24749531.529 24749530.865
+ 23.400 15.100
+ 06 1 2 16 28 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -864151.725 4 -673365.039 4 23203430.857 23203432.129 23203429.557
+ 27.600 24.900
+ -20209537.482 7 -15747697.089 6 20920744.437 20920744.307 20920743.416
+ 45.400 40.200
+ -19936241.076 7 -15534726.596 6 20690482.212 20690480.493 20690481.575
+ 46.600 41.800
+ -13171705.250 6 -10263663.493 6 22215414.037 22215414.191 22215413.536
+ 39.400 38.800
+ -6084750.054 5 -4741367.638 4 23473127.841 23473125.258 23473125.968
+ 35.100 29.000
+ -6891223.419 4 -5369780.607 4 23122369.818 23122373.377 23122369.686
+ 29.200 25.600
+ 651243.040 3 507458.750 2 24560876.250 24560877.410 24560875.804
+ 23.800 17.800
+ -14002950.476 5 -10911400.473 5 22506811.664 22506812.414 22506810.623
+ 33.600 30.600
+ -22429008.464 7 -17477149.479 7 20665292.488 20665290.182 20665291.525
+ 44.000 46.800
+ -153840.790 3 -119882.020 2 24759380.061 24759380.849 24759379.391
+ 19.300 17.000
+ 06 1 2 16 29 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -942193.742 4 -734176.944 4 23188579.995 23188580.989 23188578.698
+ 28.600 24.900
+ -20148253.508 7 -15699943.369 6 20932406.511 20932406.197 20932405.457
+ 45.400 40.100
+ -19922567.235 7 -15524071.653 6 20693084.129 20693082.402 20693083.473
+ 46.600 41.900
+ -13248202.036 6 -10323271.329 6 22200857.959 22200857.305 22200857.152
+ 40.500 38.900
+ -5993640.012 5 -4670372.855 4 23490465.319 23490463.113 23490463.182
+ 34.400 29.200
+ -6998108.148 5 -5453067.293 4 23102030.743 23102034.298 23102030.537
+ 31.100 27.600
+ 701000.875 3 546231.055 3 24570345.203 24570346.243 24570344.969
+ 21.600 20.500
+ -13909784.776 5 -10838803.928 5 22524540.333 22524541.104 22524539.611
+ 34.000 30.100
+ -22467998.014 7 -17507530.946 7 20657872.979 20657870.767 20657872.091
+ 44.000 46.800
+ -101715.201 3 -79264.774 2 24769298.852 24769299.190 24769298.199
+ 19.900 13.900
+ 06 1 2 16 29 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -1020066.949 5 -794857.302 4 23173760.894 23173762.127 23173759.680
+ 30.100 27.400
+ -20086405.931 7 -15651750.480 6 20944175.864 20944175.428 20944174.804
+ 45.600 40.200
+ -19908317.642 7 -15512968.065 6 20695795.910 20695793.958 20695795.251
+ 46.600 41.600
+ -13324450.608 6 -10382685.755 6 22186347.710 22186347.521 22186347.139
+ 40.100 38.900
+ -5902448.342 5 -4599314.479 4 23507818.031 23507816.041 23507816.123
+ 34.000 27.400
+ -7104784.747 4 -5536191.776 4 23081730.486 23081734.164 23081730.342
+ 29.900 28.100
+ 751232.589 4 585372.598 3 24579903.916 24579904.937 24579903.549
+ 24.200 21.100
+ -13816323.940 5 -10765977.358 5 22542326.405 22542326.590 22542324.840
+ 33.800 30.800
+ -22506666.615 7 -17537662.318 7 20650514.815 20650512.539 20650513.839
+ 44.000 47.100
+ -49220.825 3 -38360.100 3 24779288.678 24779289.045 24779287.781
+ 19.300 18.600
+ 06 1 2 16 30 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -1097770.640 5 -855405.573 4 23158974.035 23158975.456 23158973.069
+ 31.600 29.000
+ -20023996.587 7 -15603119.844 6 20956051.849 20956051.666 20956050.898
+ 45.400 40.400
+ -19893493.152 7 -15501416.506 6 20698616.881 20698615.042 20698616.184
+ 46.700 41.700
+ -13400450.298 6 -10441906.232 6 22171885.178 22171885.267 22171884.765
+ 39.400 38.900
+ -5811176.311 5 -4528193.465 4 23525186.569 23525183.839 23525184.707
+ 34.100 25.600
+ -7211250.873 4 -5619152.245 4 23061470.954 23061473.623 23061470.449
+ 28.800 24.600
+ 801935.470 3 624881.284 3 24589552.142 24589553.203 24589551.680
+ 23.000 19.900
+ -13722570.608 5 -10692922.889 5 22560165.779 22560167.200 22560165.199
+ 34.400 30.200
+ -22545012.762 7 -17567542.427 7 20643217.446 20643215.459 20643216.567
+ 43.900 47.200
+ 3640.022 3 2830.086 3 24789347.453 24789348.592 24789346.812
+ 19.900 18.600
+ 06 1 2 16 30 30.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -1175304.609 5 -915821.589 4 23144219.941 23144221.148 23144218.805
+ 32.400 29.900
+ -19961027.830 7 -15554053.309 6 20968034.278 20968034.347 20968033.387
+ 45.400 40.200
+ -19878094.609 7 -15489417.636 6 20701547.195 20701545.232 20701546.419
+ 46.600 41.600
+ -13476200.360 6 -10500932.211 6 22157471.044 22157470.368 22157470.315
+ 40.800 38.800
+ -5719825.318 5 -4457010.922 4 23542570.480 23542568.061 23542568.510
+ 34.400 26.800
+ -7317503.714 4 -5701946.513 4 23041251.744 23041254.609 23041251.166
+ 29.500 26.200
+ 853107.016 4 664755.182 3 24599290.237 24599291.079 24599289.606
+ 24.900 21.100
+ -13628527.001 5 -10619642.231 5 22578062.384 22578063.023 22578061.332
+ 33.600 30.200
+ -22583034.953 7 -17597170.105 7 20635982.239 20635979.978 20635981.216
+ 43.800 47.100
+ 56864.768 3 44303.877 3 24799476.075 24799477.168 24799475.454
+ 21.100 20.500
+ 06 1 2 16 31 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1252668.466 5 -976105.047 5 23129497.922 23129499.367 23129496.927
+ 33.100 31.000
+ -19897501.672 7 -15504552.435 6 20980123.145 20980122.884 20980122.116
+ 45.400 39.900
+ -19862122.705 7 -15476971.985 6 20704586.317 20704584.508 20704585.710
+ 46.400 41.400
+ -13551700.104 6 -10559763.130 6 22143103.605 22143103.275 22143103.072
+ 40.300 39.300
+ -5628396.842 5 -4385768.008 4 23559968.788 23559966.138 23559966.778
+ 33.500 27.100
+ -7423540.779 5 -5784572.668 4 23021074.031 23021076.355 23021072.993
+ 31.100 28.100
+ 904745.114 4 704992.617 3 24609116.105 24609117.330 24609115.988
+ 25.300 19.900
+ -13534196.162 5 -10546137.729 4 22596013.137 22596013.714 22596011.850
+ 32.800 29.900
+ -22620731.824 7 -17626544.287 7 20628808.790 20628806.585 20628807.872
+ 43.800 47.300
+ 06 1 2 16 31 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1329861.604 5 -1036255.464 5 23114808.818 23114809.962 23114807.546
+ 33.600 31.500
+ -19833419.854 7 -15454618.569 6 20992317.468 20992317.162 20992316.476
+ 45.100 39.800
+ -19845578.678 7 -15464080.526 6 20707734.767 20707732.815 20707734.020
+ 46.500 41.400
+ -13626949.069 6 -10618398.639 6 22128784.128 22128783.827 22128783.447
+ 40.600 39.300
+ -5536891.968 5 -4314465.579 4 23577381.768 23577379.192 23577379.883
+ 34.800 27.600
+ -7529359.294 4 -5867028.480 4 23000936.170 23000939.598 23000936.104
+ 29.200 26.200
+ 956846.978 4 745591.443 3 24619031.868 24619032.294 24619031.188
+ 26.200 21.600
+ -13439580.556 5 -10472411.359 4 22614016.504 22614018.358 22614016.231
+ 32.400 29.000
+ -22658101.812 7 -17655663.752 7 20621697.374 20621695.253 20621696.465
+ 43.700 47.300
+ 06 1 2 16 32 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1406883.642 5 -1096272.553 5 23100151.874 23100152.987 23100150.851
+ 34.000 32.600
+ -19768784.814 7 -15404253.631 6 21004616.856 21004616.931 21004615.954
+ 45.100 40.100
+ -19828462.954 7 -15450743.596 6 20710991.519 20710989.807 20710990.881
+ 46.500 41.500
+ -13701946.468 6 -10676838.123 6 22114513.043 22114512.202 22114512.194
+ 41.200 39.500
+ -5445312.090 5 -4243104.692 4 23594808.587 23594806.373 23594806.794
+ 34.800 27.600
+ -7634956.666 4 -5949311.971 4 22980841.621 22980845.088 22980841.325
+ 29.000 26.500
+ 1009410.041 4 786549.621 3 24629033.865 24629035.066 24629033.327
+ 24.200 23.400
+ -13344682.728 5 -10398465.096 4 22632076.401 22632077.056 22632074.909
+ 32.000 29.900
+ -22695143.478 7 -17684527.385 7 20614648.595 20614646.383 20614647.613
+ 43.400 47.100
+ 06 1 2 16 32 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1483734.236 5 -1156156.046 5 23085527.504 23085528.518 23085526.439
+ 32.600 31.800
+ -19703598.766 7 -15353459.334 6 21017021.546 21017021.387 21017020.516
+ 44.800 39.900
+ -19810776.368 7 -15436961.835 6 20714357.164 20714355.388 20714356.559
+ 46.300 41.400
+ -13776691.815 6 -10735081.208 6 22100289.018 22100288.548 22100288.373
+ 41.100 39.600
+ -5353658.113 5 -4171686.088 4 23612249.498 23612247.361 23612247.700
+ 33.400 27.400
+ -7740330.485 5 -6031421.305 4 22960790.919 22960792.586 22960789.852
+ 30.800 26.200
+ 1062431.866 4 827865.286 3 24639123.514 24639124.388 24639123.086
+ 24.900 23.000
+ -13249505.516 5 -10324301.083 4 22650187.436 22650188.830 22650186.462
+ 32.800 29.000
+ -22731855.629 7 -17713134.255 7 20607662.527 20607660.428 20607661.568
+ 43.400 47.400
+ 06 1 2 16 33 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1560412.881 5 -1215905.545 5 23070935.827 23070936.868 23070934.806
+ 31.800 30.800
+ -19637863.869 7 -15302237.362 6 21029530.488 21029530.350 21029529.479
+ 45.100 39.800
+ -19792520.134 7 -15422736.196 6 20717831.566 20717829.505 20717830.763
+ 46.500 41.400
+ -13851184.198 6 -10793127.176 6 22086113.418 22086113.172 22086112.767
+ 40.700 39.500
+ -5261931.557 5 -4100210.906 4 23629705.144 23629703.224 23629703.361
+ 34.800 28.400
+ -7845477.830 5 -6113354.173 4 22940780.843 22940783.511 22940780.352
+ 30.400 24.600
+ 1115909.958 3 869536.494 3 24649299.472 24649301.149 24649299.079
+ 23.000 23.400
+ -13154051.568 5 -10249921.486 4 22668351.018 22668353.177 22668350.799
+ 32.600 29.200
+ -22768236.497 7 -17741482.979 7 20600739.545 20600737.444 20600738.521
+ 43.400 47.500
+ 06 1 2 16 33 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1636919.275 5 -1275520.834 5 23056377.512 23056378.090 23056376.383
+ 30.800 31.000
+ -19571582.241 7 -15250589.369 6 21042143.443 21042143.341 21042142.488
+ 44.900 39.500
+ -19773695.334 7 -15408067.521 6 20721413.939 20721411.780 20721413.113
+ 46.600 41.400
+ -13925423.210 6 -10850975.711 6 22071986.513 22071985.796 22071985.983
+ 41.400 39.600
+ -5170133.511 5 -4028680.054 4 23647173.661 23647171.615 23647171.811
+ 34.800 28.600
+ -7950396.149 5 -6195108.591 4 22920815.461 22920818.009 22920815.134
+ 31.500 24.600
+ 1169841.860 3 911561.292 4 24659562.699 24659564.014 24659561.989
+ 22.600 24.200
+ -13058323.544 5 -10175328.304 5 22686568.525 22686569.810 22686567.511
+ 33.000 30.400
+ -22804284.675 7 -17769572.461 7 20593879.818 20593877.551 20593878.877
+ 43.400 47.500
+ 06 1 2 16 34 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1713252.840 5 -1335001.457 4 23041851.901 23041852.477 23041850.741
+ 31.100 29.900
+ -19504756.419 7 -15198517.324 6 21054860.302 21054859.880 21054859.230
+ 45.100 39.300
+ -19754302.808 7 -15392956.460 6 20725103.920 20725102.044 20725103.239
+ 46.800 41.600
+ -13999408.253 6 -10908626.353 6 22057907.249 22057906.903 22057906.655
+ 41.000 39.900
+ -5078265.215 5 -3957094.426 4 23664655.260 23664653.237 23664653.391
+ 33.600 26.500
+ -8055082.596 5 -6276682.341 4 22900894.732 22900897.064 22900893.935
+ 32.300 27.100
+ 1224224.741 3 953937.511 3 24669911.548 24669912.826 24669911.060
+ 21.100 23.000
+ -12962323.880 5 -10100523.436 4 22704836.948 22704837.805 22704835.732
+ 32.400 29.000
+ -22839998.802 7 -17797401.649 7 20587083.470 20587081.436 20587082.525
+ 43.400 47.500
+ 06 1 2 16 34 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1789413.311 5 -1394347.185 4 23027358.525 23027359.489 23027357.397
+ 30.100 28.400
+ -19437388.497 7 -15146022.861 6 21067679.596 21067679.621 21067678.768
+ 45.100 39.200
+ -19734343.451 7 -15377403.718 6 20728902.136 20728900.303 20728901.362
+ 46.900 41.800
+ -14073138.885 6 -10966078.741 6 22043876.836 22043876.516 22043876.160
+ 41.300 40.000
+ -4986327.979 5 -3885455.111 4 23682150.486 23682148.249 23682148.714
+ 33.800 25.600
+ -8159534.601 5 -6358073.408 4 22881017.616 22881020.384 22881017.548
+ 32.400 27.400
+ 1279056.177 3 996663.270 3 24680345.601 24680346.840 24680345.149
+ 19.300 23.400
+ -12866055.501 5 -10025509.206 5 22723155.842 22723157.174 22723155.084
+ 33.400 30.100
+ -22875377.256 7 -17824969.270 7 20580351.251 20580349.139 20580350.265
+ 43.300 47.600
+ 06 1 2 16 35 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1865400.241 5 -1453557.696 4 23012898.976 23012899.304 23012897.708
+ 31.000 26.800
+ -19369480.851 7 -15093107.840 6 21080602.116 21080602.157 21080601.241
+ 45.100 39.300
+ -19713818.254 7 -15361410.059 6 20732807.867 20732806.010 20732807.156
+ 46.900 41.600
+ -14146614.196 6 -11023332.184 6 22029895.375 22029894.470 22029894.579
+ 41.600 40.100
+ -4894323.096 5 -3813763.057 4 23699658.494 23699656.553 23699656.669
+ 33.400 25.900
+ -8263749.800 5 -6439279.967 4 22861185.276 22861188.719 22861185.537
+ 31.100 27.400
+ 1334333.444 3 1039736.411 4 24690864.774 24690866.092 24690864.183
+ 18.600 24.600
+ -12769521.092 5 -9950287.685 5 22741526.295 22741527.199 22741525.284
+ 33.200 30.100
+ -22910418.611 7 -17852274.217 7 20573683.098 20573680.907 20573682.172
+ 43.200 47.600
+ 06 1 2 16 35 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1941213.265 5 -1512632.712 4 22998472.373 22998472.280 22998470.979
+ 32.700 26.500
+ -19301035.275 7 -15039773.654 6 21093627.295 21093626.998 21093626.109
+ 44.600 39.300
+ -19692728.314 7 -15344976.340 6 20736821.187 20736819.163 20736820.621
+ 47.000 41.100
+ -14219833.777 6 -11080386.359 6 22015961.552 22015961.130 22015960.941
+ 41.400 39.700
+ -4802251.804 5 -3742019.271 4 23717179.257 23717177.077 23717177.551
+ 33.600 24.900
+ -8367725.418 5 -6520299.813 4 22841400.608 22841402.862 22841399.698
+ 31.800 28.400
+ 1390053.976 3 1083154.987 3 24701467.245 24701469.214 24701467.055
+ 18.600 23.000
+ -12672723.367 5 -9874860.978 4 22759946.287 22759947.473 22759945.137
+ 31.600 29.200
+ -22945121.549 7 -17879315.461 7 20567079.278 20567077.202 20567078.360
+ 43.100 47.700
+ 06 1 2 16 36 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2016851.878 5 -1571571.831 4 22984078.391 22984079.151 22984076.847
+ 33.000 29.500
+ -19232054.758 7 -14986022.635 6 21106753.717 21106753.583 21106752.703
+ 44.600 39.300
+ -19671074.536 7 -15328103.271 6 20740941.962 20740939.742 20740941.213
+ 47.300 41.200
+ -14292796.966 6 -11137240.743 6 22002077.189 22002076.615 22002076.744
+ 41.800 39.900
+ -4710115.240 5 -3670224.618 4 23734712.125 23734710.455 23734710.263
+ 33.400 26.200
+ -8471458.914 5 -6601130.986 4 22821661.238 22821663.014 22821660.203
+ 32.100 28.800
+ 1446215.162 2 1126916.897 3 24712154.967 24712156.434 24712154.227
+ 17.000 21.600
+ -12575665.037 5 -9799231.210 4 22778416.257 22778416.982 22778414.920
+ 31.500 28.600
+ -22979484.577 7 -17906091.838 7 20560540.342 20560538.035 20560539.352
+ 42.900 47.600
+ 06 1 2 16 36 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2092315.579 5 -1630374.629 5 22969717.584 22969718.991 22969716.435
+ 33.000 30.400
+ -19162541.194 7 -14931856.261 6 21119981.353 21119981.636 21119980.529
+ 44.500 39.100
+ -19648858.145 7 -15310791.797 6 20745169.566 20745167.342 20745168.933
+ 47.400 41.200
+ -14365503.076 6 -11193894.805 6 21988241.711 21988241.026 21988241.227
+ 41.900 39.800
+ -4617914.334 5 -3598379.829 4 23752257.339 23752255.467 23752255.856
+ 32.000 25.600
+ -8574947.664 5 -6681771.483 4 22801966.556 22801969.511 22801966.604
+ 32.700 28.400
+ 1502814.247 2 1171020.040 3 24722925.346 24722926.896 24722924.746
+ 15.100 19.300
+ -12478348.494 5 -9723400.230 4 22796934.025 22796935.583 22796933.573
+ 32.400 27.900
+ -23013506.353 7 -17932602.306 7 20554066.276 20554063.911 20554065.288
+ 42.900 47.800
+ 06 1 2 16 37 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2167604.201 5 -1689041.006 5 22955390.957 22955391.684 22955389.808
+ 33.100 31.100
+ -19092496.738 7 -14877276.200 6 21133310.670 21133310.557 21133309.558
+ 44.300 38.900
+ -19626080.127 7 -15293042.686 6 20749504.058 20749501.881 20749503.420
+ 47.300 41.100
+ -14437951.515 6 -11250348.092 6 21974455.338 21974454.543 21974454.600
+ 41.300 40.200
+ -4525650.366 5 -3526485.898 4 23769814.836 23769812.756 23769812.801
+ 31.600 26.500
+ -8678189.080 5 -6762219.255 4 22782319.933 22782323.236 22782320.422
+ 33.500 28.400
+ 1559848.766 2 1215462.469 3 24733778.483 24733780.407 24733778.057
+ 17.000 22.100
+ -12380776.715 5 -9647370.353 4 22815501.994 22815502.930 22815500.932
+ 31.600 25.900
+ -23047185.275 7 -17958845.614 7 20547657.094 20547655.090 20547656.192
+ 42.500 47.700
+ 06 1 2 16 37 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2242717.377 5 -1747570.680 5 22941097.391 22941097.910 22941096.225
+ 31.600 30.800
+ -19021924.106 7 -14822284.567 6 21146740.311 21146740.094 21146739.262
+ 44.400 38.600
+ -19602741.702 7 -15274856.908 6 20753945.302 20753943.131 20753944.635
+ 47.400 41.000
+ -14510141.641 6 -11306600.082 6 21960717.644 21960717.223 21960717.041
+ 41.400 40.600
+ -4433324.870 5 -3454544.053 4 23787383.277 23787381.942 23787381.617
+ 31.800 26.200
+ -8781180.561 5 -6842472.242 4 22762722.895 22762724.560 22762721.778
+ 32.300 28.600
+ 1617316.062 2 1260242.119 3 24744714.675 24744715.618 24744714.337
+ 17.800 19.900
+ -12282952.169 5 -9571143.529 4 22834117.126 22834118.496 22834116.045
+ 30.400 27.100
+ -23080519.714 7 -17984820.494 7 20541313.963 20541311.758 20541312.940
+ 42.800 47.800
+ 06 1 2 16 38 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2317654.434 5 -1805963.090 5 22926836.971 22926838.094 22926835.824
+ 30.600 31.300
+ -18950825.944 7 -14766883.430 6 21160269.516 21160269.678 21160268.725
+ 44.400 38.800
+ -19578843.951 7 -15256235.286 6 20758492.653 20758490.739 20758492.066
+ 47.100 41.100
+ -14582072.901 6 -11362650.368 6 21947029.605 21947029.306 21947029.104
+ 41.900 40.900
+ -4340938.646 5 -3382554.862 4 23804964.067 23804962.588 23804962.487
+ 32.600 27.100
+ -8883919.685 5 -6922528.562 4 22743171.937 22743173.884 22743171.014
+ 32.000 28.800
+ 1675213.105 3 1305356.639 2 24755732.352 24755732.890 24755731.511
+ 19.900 15.100
+ -12184877.756 5 -9494722.006 4 22852779.847 22852781.747 22852779.050
+ 31.000 27.600
+ -23113508.217 7 -18010525.821 7 20535036.591 20535034.197 20535035.604
+ 42.800 47.900
+ 06 1 2 16 38 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2392415.263 5 -1864218.195 5 22912610.812 22912611.649 22912609.899
+ 33.500 31.100
+ -18879204.041 7 -14711074.192 6 21173898.987 21173899.063 21173897.999
+ 44.100 38.900
+ -19554387.918 7 -15237178.638 6 20763146.464 20763144.596 20763145.743
+ 46.900 40.900
+ -14653744.869 7 -11418498.605 6 21933390.643 21933390.302 21933390.296
+ 42.000 40.600
+ -4248493.041 5 -3310519.396 3 23822556.420 23822553.736 23822554.435
+ 32.300 23.800
+ -8986403.664 5 -7002386.113 4 22723668.847 22723671.745 22723668.770
+ 32.800 28.400
+ 1733537.562 3 1350804.249 2 24766830.736 24766830.794 24766830.329
+ 21.100 12.600
+ -12086556.417 5 -9418108.052 4 22871489.441 22871491.795 22871488.864
+ 30.200 28.800
+ -23146149.800 7 -18035960.819 8 20528825.090 20528822.715 20528824.029
+ 42.700 48.000
+ 06 1 2 16 39 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2466999.292 5 -1922335.569 4 22898418.270 22898418.068 22898416.935
+ 34.000 29.000
+ -18807060.862 7 -14654858.765 6 21187627.808 21187627.547 21187626.441
+ 43.900 39.300
+ -19529374.750 7 -15217687.865 6 20767906.288 20767904.524 20767905.646
+ 47.100 40.900
+ -14725156.752 7 -11474144.192 6 21919801.822 21919800.761 21919801.128
+ 42.400 39.800
+ -4155989.225 5 -3238438.573 4 23840159.267 23840157.406 23840157.486
+ 31.800 25.300
+ -9088630.043 5 -7082042.942 4 22704216.920 22704218.432 22704215.892
+ 31.500 28.800
+ 1792286.459 3 1396582.587 2 24778010.198 24778011.696 24778009.733
+ 20.500 12.600
+ -11987990.435 4 -9341303.510 4 22890246.588 22890248.238 22890245.592
+ 28.600 28.800
+ -23178442.887 7 -18061124.260 8 20522679.733 20522677.647 20522678.807
+ 42.600 48.100
+ 06 1 2 16 39 30.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2541406.221 5 -1980314.952 4 22884257.862 22884258.690 22884256.790
+ 32.800 28.400
+ -18734398.996 7 -14598239.159 6 21201454.329 21201454.493 21201453.399
+ 43.900 38.600
+ -19503805.909 7 -15197764.098 6 20772771.862 20772769.987 20772771.285
+ 47.200 40.700
+ -14796308.205 7 -11529586.848 6 21906261.881 21906261.271 21906261.302
+ 42.200 40.300
+ -4063428.327 5 -3166313.277 4 23857772.769 23857771.167 23857770.625
+ 30.600 25.900
+ -9190596.096 5 -7161496.893 4 22684814.421 22684814.777 22684812.642
+ 31.500 27.600
+ 1851457.161 3 1442689.645 2 24789269.934 24789271.085 24789269.379
+ 19.900 12.600
+ -11889182.698 4 -9264310.583 4 22909049.333 22909051.162 22909048.366
+ 29.700 29.000
+ -23210385.696 7 -18086014.758 8 20516601.089 20516599.165 20516600.170
+ 42.500 48.300
+ 06 1 2 16 40 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2615635.789 5 -2038156.108 5 22870133.306 22870133.880 22870132.188
+ 33.500 31.300
+ -18661220.863 7 -14541217.277 6 21215379.537 21215379.922 21215378.734
+ 43.900 38.600
+ -19477682.352 7 -15177408.081 6 20777743.345 20777741.150 20777742.683
+ 47.300 41.100
+ -14867198.599 7 -11584826.083 6 21892771.983 21892771.205 21892771.410
+ 42.400 40.200
+ -3970811.314 5 -3094144.253 4 23875396.905 23875395.662 23875395.271
+ 31.000 25.900
+ -9292299.319 5 -7240746.061 4 22665459.895 22665461.290 22665458.883
+ 33.000 28.800
+ -11790136.186 4 -9187131.567 4 22927897.097 22927898.846 22927896.357
+ 29.200 28.400
+ -23241976.661 7 -18110631.094 8 20510589.616 20510587.590 20510588.639
+ 42.300 48.300
+ 06 1 2 16 40 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -2689687.262 5 -2095858.494 5 22856041.978 22856042.508 22856040.729
+ 34.000 32.600
+ -18587529.377 7 -14483795.382 6 21229402.807 21229402.978 21229401.823
+ 43.900 38.600
+ -19451005.039 7 -15156620.573 6 20782819.956 20782817.690 20782819.174
+ 47.500 40.700
+ -14937826.891 7 -11639861.076 6 21879331.729 21879331.197 21879331.166
+ 42.300 40.700
+ -3878139.382 5 -3021932.422 4 23893032.330 23893030.637 23893030.563
+ 30.400 27.400
+ -9393737.167 5 -7319788.450 4 22646154.853 22646158.241 22646155.411
+ 33.400 28.400
+ -11690853.367 4 -9109768.465 4 22946790.176 22946791.840 22946789.193
+ 29.900 27.100
+ -23273214.877 7 -18134972.563 8 20504645.149 20504643.157 20504644.162
+ 42.300 48.300
+ 06 1 2 16 41 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2763560.608 5 -2153422.067 5 22841983.494 22841984.248 22841982.188
+ 32.400 31.800
+ -18513326.535 7 -14425975.014 6 21243523.526 21243523.300 21243522.327
+ 43.800 38.100
+ -19423775.592 7 -15135402.832 6 20788001.359 20787999.149 20788000.664
+ 47.200 40.700
+ -15008193.105 7 -11694691.866 6 21865941.835 21865940.738 21865941.139
+ 42.700 40.600
+ -3785414.072 5 -2949679.030 4 23910677.387 23910676.313 23910675.503
+ 30.100 27.100
+ -9494907.011 5 -7398622.028 4 22626903.519 22626906.210 22626903.542
+ 33.800 29.000
+ -11591336.944 5 -9032223.246 4 22965727.544 22965729.470 22965726.601
+ 30.400 28.100
+ -23304099.031 7 -18159038.140 8 20498767.918 20498766.088 20498767.013
+ 42.200 48.300
+ 06 1 2 16 41 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -2837255.346 5 -2210846.485 5 22827960.488 22827960.247 22827959.321
+ 34.900 30.800
+ -18438614.944 7 -14367758.224 6 21257740.472 21257740.380 21257739.354
+ 43.500 38.000
+ -19395995.402 7 -15113755.936 6 20793287.704 20793285.747 20793286.955
+ 47.300 41.000
+ -15078296.476 7 -11749317.837 6 21852601.162 21852600.642 21852600.776
+ 42.800 40.800
+ -3692636.166 5 -2877384.649 4 23928332.300 23928331.479 23928330.671
+ 30.800 27.400
+ -9595806.262 5 -7477244.728 4 22607705.079 22607705.719 22607703.428
+ 33.500 29.500
+ -11491589.812 5 -8954498.327 4 22984709.695 22984710.565 22984708.368
+ 31.100 27.100
+ -23334627.314 7 -18182826.414 8 20492958.857 20492956.713 20492957.902
+ 42.400 48.400
+ 06 1 2 16 42 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2910771.069 5 -2268131.448 5 22813970.863 22813971.494 22813969.597
+ 34.300 32.000
+ -18363396.971 7 -14309146.857 6 21272053.507 21272053.886 21272052.796
+ 43.600 37.700
+ -19367665.429 7 -15091680.639 6 20798678.834 20798676.801 20798678.151
+ 47.300 41.000
+ -15148136.292 7 -11803738.437 6 21839311.215 21839310.644 21839310.582
+ 42.700 41.100
+ -3599806.735 5 -2805050.123 4 23945997.546 23945995.886 23945995.612
+ 31.100 25.900
+ -9696432.241 5 -7555654.488 5 22588557.056 22588557.246 22588555.102
+ 32.600 30.200
+ -11391614.615 5 -8876595.700 4 23003733.736 23003735.581 23003732.936
+ 30.800 27.900
+ -23364798.292 7 -18206336.273 8 20487217.504 20487215.323 20487216.527
+ 42.300 48.300
+ 06 1 2 16 42 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -2984107.413 5 -2325276.580 5 22800014.315 22800016.070 22800013.100
+ 31.500 31.600
+ -18287675.430 7 -14250143.107 6 21286463.081 21286463.417 21286462.314
+ 43.700 38.100
+ -19338787.024 7 -15069177.995 6 20804173.932 20804172.187 20804173.322
+ 47.100 40.800
+ -15217712.111 7 -11857953.325 6 21826071.288 21826070.589 21826070.696
+ 42.600 41.100
+ -3506927.024 5 -2732676.398 4 23963671.854 23963670.144 23963670.115
+ 31.800 24.600
+ -9796782.567 5 -7633849.464 4 22569459.846 22569460.966 22569458.482
+ 33.200 29.900
+ -11291414.090 5 -8798517.465 4 23022800.889 23022803.191 23022800.399
+ 30.100 27.900
+ -23394610.605 7 -18229566.648 8 20481544.527 20481542.201 20481543.502
+ 42.200 48.200
+ 06 1 2 16 43 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3057263.995 5 -2382281.655 5 22786093.936 22786093.718 22786092.933
+ 34.100 30.100
+ -18211452.437 7 -14190748.606 6 21300968.397 21300968.235 21300967.205
+ 43.500 37.800
+ -19309361.444 7 -15046248.978 6 20809773.493 20809771.784 20809772.918
+ 47.100 41.000
+ -15287023.583 7 -11911962.231 6 21812881.841 21812881.006 21812881.237
+ 43.200 40.900
+ -3413997.883 4 -2660264.182 3 23981354.943 23981354.136 23981353.051
+ 29.900 23.000
+ -9896854.645 5 -7711827.628 5 22550415.255 22550417.960 22550415.109
+ 34.400 30.200
+ -11190991.185 4 -8720265.956 4 23041911.960 23041912.532 23041910.406
+ 28.400 24.200
+ -23424062.820 6 -18252516.432 8 20475939.865 20475937.613 20475938.910
+ 41.800 48.300
+ 06 1 2 16 43 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3130240.458 5 -2439146.437 5 22772207.092 22772206.908 22772205.910
+ 35.100 31.100
+ -18134730.800 7 -14130965.546 6 21315567.924 21315567.940 21315566.692
+ 43.200 37.600
+ -19279390.070 7 -15022894.669 6 20815476.657 20815475.074 20815476.038
+ 47.000 40.800
+ -15356070.112 7 -11965764.677 6 21799742.511 21799742.000 21799741.984
+ 42.900 40.900
+ -3321020.724 5 -2587814.491 3 23999048.312 23999046.439 23999046.603
+ 30.100 20.500
+ -9996646.142 5 -7789587.174 4 22531424.882 22531427.920 22531425.516
+ 34.400 29.500
+ -11090348.481 4 -8641843.194 4 23061061.968 23061065.050 23061061.623
+ 28.100 28.400
+ -23453153.422 7 -18275184.435 8 20470404.132 20470401.918 20470403.150
+ 42.000 48.400
+ 06 1 2 16 44 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3203036.468 5 -2495870.545 5 22758353.360 22758355.409 22758352.200
+ 32.700 33.400
+ -18057512.814 7 -14070795.716 6 21330262.072 21330261.907 21330260.938
+ 43.400 37.400
+ -19248874.361 7 -14999116.208 6 20821283.921 20821281.956 20821283.209
+ 47.200 40.600
+ -15424850.782 7 -12019359.980 6 21786654.258 21786653.266 21786653.717
+ 43.600 40.700
+ -3227996.267 5 -2515327.981 3 24016750.924 24016749.544 24016748.917
+ 30.800 23.000
+ -10096154.269 5 -7867125.898 5 22512490.169 22512492.299 22512489.643
+ 34.500 30.100
+ -10989488.747 4 -8563251.283 4 23080255.568 23080257.863 23080254.841
+ 27.600 26.200
+ -23481881.017 6 -18297569.577 8 20464937.250 20464935.301 20464936.284
+ 41.700 48.400
+ 06 1 2 16 44 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3275651.664 5 -2552453.738 5 22744536.019 22744536.963 22744534.865
+ 34.700 32.000
+ -17979801.107 7 -14010241.175 6 21345050.051 21345049.887 21345048.967
+ 43.300 37.200
+ -19217815.440 7 -14974914.460 6 20827194.251 20827192.173 20827193.521
+ 46.900 40.300
+ -15493365.408 7 -12072747.966 6 21773616.340 21773615.434 21773615.563
+ 43.300 41.100
+ -3134926.014 5 -2442805.763 3 24034460.897 24034459.843 24034459.079
+ 30.200 22.600
+ -10195376.493 5 -7944441.835 4 22493609.574 22493610.659 22493608.209
+ 34.000 29.200
+ -10888414.806 4 -8484492.508 3 23099489.550 23099491.142 23099489.035
+ 28.800 23.800
+ -23510244.369 6 -18319670.893 8 20459539.809 20459537.969 20459538.857
+ 41.800 48.500
+ 06 1 2 16 45 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3348085.601 5 -2608895.751 4 22730752.501 22730751.770 22730751.377
+ 35.500 29.000
+ -17901599.047 7 -13949304.542 6 21359930.949 21359931.330 21359930.212
+ 43.200 37.700
+ -19186214.899 7 -14950290.667 6 20833207.594 20833205.554 20833206.875
+ 47.000 40.500
+ -15561613.240 7 -12125928.058 6 21760628.882 21760628.382 21760628.366
+ 43.200 41.200
+ -3041810.885 5 -2370248.619 4 24052180.374 24052179.447 24052178.733
+ 31.000 24.600
+ -10294310.398 5 -8021533.106 4 22474783.072 22474784.229 22474781.708
+ 33.800 29.500
+ -10787129.530 4 -8405569.009 4 23118764.345 23118766.217 23118763.154
+ 29.200 27.100
+ -23538241.858 6 -18341487.117 8 20454212.295 20454210.259 20454211.314
+ 41.800 48.600
+ 06 1 2 16 45 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3420337.995 5 -2665196.293 5 22717002.467 22717003.329 22717001.228
+ 34.300 31.600
+ -17822908.606 7 -13887987.358 6 21374905.180 21374905.829 21374904.441
+ 42.900 37.800
+ -19154074.093 7 -14925245.889 6 20839323.546 20839321.894 20839322.956
+ 46.900 40.400
+ -15629593.810 7 -12178899.885 6 21747692.589 21747692.053 21747692.215
+ 43.300 41.500
+ -2948651.920 5 -2297657.305 3 24069908.657 24069906.724 24069906.731
+ 30.200 23.000
+ -10392953.545 5 -8098397.821 4 22456011.815 22456012.707 22456010.517
+ 34.300 28.800
+ -10685635.737 4 -8326483.037 4 23138078.463 23138079.550 23138076.867
+ 28.800 24.900
+ -23565872.163 6 -18363017.227 8 20448954.347 20448952.262 20448953.370
+ 41.600 48.500
+ 06 1 2 16 46 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3492408.455 5 -2721355.020 5 22703288.884 22703289.727 22703287.702
+ 35.400 34.500
+ -17743732.918 7 -13826292.057 6 21389972.239 21389972.426 21389971.317
+ 42.900 37.100
+ -19121394.441 7 -14899781.236 6 20845542.344 20845540.591 20845541.690
+ 47.100 40.300
+ -15697306.711 7 -12231663.154 6 21734807.629 21734806.710 21734806.891
+ 43.700 41.700
+ -2855450.158 5 -2225032.623 3 24087644.752 24087642.856 24087642.727
+ 32.000 23.400
+ -10491303.413 5 -8175034.019 5 22437296.146 22437297.279 22437295.035
+ 34.900 30.100
+ -10583935.738 4 -8247236.401 4 23157429.811 23157432.866 23157429.452
+ 29.200 26.800
+ -23593133.738 6 -18384260.013 8 20443766.610 20443764.527 20443765.691
+ 41.800 48.400
+ 06 1 2 16 46 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3564296.637 5 -2777371.726 5 22689608.567 22689609.312 22689607.718
+ 35.600 33.100
+ -17664074.173 7 -13764220.340 6 21405130.772 21405130.925 21405129.826
+ 42.900 36.500
+ -19088177.413 7 -14873897.839 6 20851863.535 20851861.514 20851862.825
+ 47.000 40.200
+ -15764751.374 7 -12284217.394 6 21721973.017 21721972.147 21721972.387
+ 43.400 41.200
+ -2762206.730 5 -2152375.480 3 24105387.854 24105386.665 24105386.155
+ 30.800 23.400
+ -10589357.664 5 -8251439.856 4 22418637.174 22418638.108 22418635.992
+ 35.300 29.900
+ -10482032.593 4 -8167831.436 4 23176822.583 23176824.108 23176821.412
+ 29.200 24.900
+ -23620025.402 6 -18405214.557 8 20438649.250 20438647.254 20438648.378
+ 41.500 48.500
+ 06 1 2 16 47 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3636002.274 5 -2833246.203 5 22675962.590 22675963.019 22675961.551
+ 34.400 30.600
+ -17583934.874 7 -13701774.164 6 21420381.022 21420381.101 21420379.913
+ 42.500 37.000
+ -19054424.010 7 -14847596.492 6 20858286.595 20858284.592 20858285.966
+ 47.100 40.000
+ -15831927.106 7 -12336562.087 6 21709190.002 21709188.830 21709189.473
+ 43.600 41.100
+ -2668922.775 4 -2079686.767 4 24123139.044 24123139.040 24123137.261
+ 29.200 27.600
+ -10687113.461 5 -8327613.133 5 22400034.667 22400035.865 22400033.526
+ 34.700 30.600
+ -10379928.928 4 -8088270.277 4 23196252.146 23196253.991 23196251.041
+ 29.000 25.300
+ -23646545.690 6 -18425879.715 8 20433602.591 20433600.563 20433601.758
+ 41.500 48.400
+ 06 1 2 16 47 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3707524.982 5 -2888978.124 5 22662353.320 22662353.137 22662352.182
+ 35.600 32.400
+ -17503318.018 7 -13638955.878 6 21435721.814 21435722.044 21435720.816
+ 42.400 37.000
+ -19020136.387 7 -14820878.869 6 20864811.344 20864809.290 20864810.655
+ 47.200 40.000
+ -15898833.558 7 -12388696.956 6 21696458.157 21696457.396 21696457.452
+ 43.700 41.900
+ -2575599.068 4 -2006967.086 4 24140898.492 24140897.415 24140896.650
+ 28.400 24.200
+ -10784568.528 5 -8403552.067 5 22381488.953 22381491.019 22381488.453
+ 35.800 31.300
+ -10277627.425 4 -8008554.878 4 23215718.532 23215721.629 23215718.075
+ 27.400 25.300
+ -23672693.199 6 -18446254.395 8 20428626.885 20428624.827 20428626.028
+ 41.400 48.400
+ 06 1 2 16 48 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3778864.262 6 -2944567.116 5 22648777.591 22648778.463 22648776.631
+ 36.100 34.300
+ -17422226.266 7 -13575767.526 6 21451152.834 21451153.323 21451151.957
+ 42.200 36.800
+ -18985315.487 7 -14793745.709 6 20871437.461 20871435.522 20871436.857
+ 47.100 39.700
+ -15965470.227 7 -12440621.604 7 21683777.705 21683776.822 21683776.983
+ 44.200 42.000
+ -2482236.543 4 -1934217.143 3 24158664.652 24158663.148 24158663.274
+ 29.200 22.600
+ -10881720.179 5 -8479254.596 5 22363000.517 22363003.273 22363000.838
+ 35.900 30.600
+ -10175131.077 4 -7928687.709 4 23235223.618 23235225.802 23235222.763
+ 26.200 24.600
+ -23698466.547 6 -18466337.525 8 20423722.597 20423720.291 20423721.594
+ 41.500 48.300
+ 06 1 2 16 48 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3850020.034 5 -3000013.083 5 22635236.176 22635237.384 22635235.078
+ 34.500 32.600
+ -17340662.209 7 -13512211.158 6 21466674.396 21466674.450 21466673.257
+ 42.500 37.000
+ -18949963.033 7 -14766198.350 6 20878164.868 20878162.853 20878164.185
+ 47.100 39.500
+ -16031836.334 7 -12492335.439 6 21671148.522 21671147.417 21671147.935
+ 44.500 41.500
+ -2388836.442 4 -1861437.896 3 24176438.338 24176436.775 24176436.076
+ 28.600 23.000
+ -10978565.950 5 -8554718.791 5 22344571.234 22344574.174 22344571.567
+ 35.300 31.100
+ -10072442.798 4 -7848670.980 4 23254764.804 23254767.106 23254763.518
+ 25.900 26.800
+ -23723864.460 6 -18486128.108 8 20418889.591 20418887.239 20418888.594
+ 41.400 48.400
+ 06 1 2 16 49 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3920991.740 6 -3055315.670 5 22621731.636 22621731.090 22621730.528
+ 36.100 30.800
+ -17258628.687 7 -13448288.971 6 21482284.386 21482284.868 21482283.508
+ 42.500 36.800
+ -18914080.644 7 -14738238.061 6 20884993.127 20884990.995 20884992.496
+ 47.200 39.700
+ -16097931.569 7 -12543838.209 6 21658570.570 21658570.152 21658570.015
+ 43.600 41.900
+ -2295399.904 4 -1788630.308 3 24194218.434 24194217.016 24194216.753
+ 28.100 22.100
+ -11075103.618 5 -8629942.876 5 22326200.969 22326203.642 22326200.967
+ 34.900 31.300
+ -9969565.223 4 -7768506.770 4 23274341.735 23274344.178 23274340.840
+ 26.800 27.100
+ -23748885.349 6 -18505624.904 8 20414128.276 20414125.971 20414127.314
+ 41.500 48.400
+ 06 1 2 16 49 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -3991779.078 6 -3110474.595 5 22608261.508 22608261.614 22608260.306
+ 36.500 33.500
+ -17176128.160 7 -13384002.878 6 21497983.962 21497984.386 21497982.954
+ 42.100 37.100
+ -18877669.678 7 -14709865.893 6 20891921.914 20891919.916 20891921.270
+ 47.400 39.400
+ -16163755.591 7 -12595129.638 7 21646044.831 21646044.550 21646044.271
+ 44.000 42.400
+ -2201927.963 4 -1715795.099 4 24212006.131 24212005.102 24212004.237
+ 26.200 25.900
+ -11171330.405 5 -8704924.717 5 22307889.678 22307892.392 22307889.654
+ 35.300 31.500
+ -9866501.186 4 -7688197.236 4 23293954.435 23293956.788 23293953.348
+ 27.400 27.400
+ -23773527.886 6 -18524826.886 8 20409438.774 20409436.613 20409437.845
+ 41.500 48.500
+ 06 1 2 16 50 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -4062381.835 5 -3165489.657 5 22594825.561 22594826.942 22594824.344
+ 35.400 35.100
+ -17093163.816 7 -13319355.374 6 21513771.682 21513772.060 21513770.659
+ 42.000 36.500
+ -18840731.656 7 -14681083.031 6 20898950.897 20898948.938 20898950.227
+ 47.200 39.400
+ -16229307.715 7 -12646209.210 6 21633571.121 21633569.797 21633570.239
+ 43.900 41.600
+ -2108421.476 4 -1642933.007 4 24229799.965 24229798.465 24229797.721
+ 27.100 24.200
+ -11267244.054 5 -8779662.564 5 22289638.419 22289640.194 22289637.947
+ 35.600 31.000
+ -9763253.496 4 -7607744.598 4 23313601.719 23313603.709 23313600.693
+ 27.600 24.200
+ -23797790.688 6 -18543732.971 8 20404821.754 20404819.622 20404820.777
+ 41.500 48.600
+ 06 1 2 16 50 30.0000000 0 8G07G08G11G17G19G24G27G28
+ -4132799.614 5 -3220360.575 5 22581425.846 22581425.932 22581424.603
+ 35.900 33.000
+ -17009738.286 7 -13254348.506 6 21529647.054 21529647.360 21529646.075
+ 42.200 36.500
+ -18803268.142 7 -14651890.694 6 20906079.919 20906077.998 20906079.222
+ 47.100 39.500
+ -16294587.464 7 -12697076.551 6 21621148.410 21621147.429 21621147.768
+ 43.900 41.500
+ -2014881.348 4 -1570044.658 3 24247599.789 24247597.653 24247597.746
+ 27.900 22.100
+ -11362842.130 6 -8854154.516 5 22271446.554 22271448.442 22271446.229
+ 36.000 31.000
+ -9659825.062 4 -7527151.101 4 23333283.833 23333285.941 23333282.729
+ 27.900 24.200
+ -23821672.361 6 -18562342.071 8 20400277.238 20400275.152 20400276.337
+ 41.400 48.600
+ 06 1 2 16 51 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -4203032.002 6 -3275087.089 5 22568060.629 22568060.268 22568059.553
+ 36.100 32.100
+ -16925854.359 6 -13188984.446 6 21545609.498 21545609.912 21545608.595
+ 41.900 36.300
+ -18765280.934 7 -14622290.291 6 20913308.760 20913306.750 20913308.119
+ 47.100 39.500
+ -16359594.175 7 -12747731.121 7 21608777.952 21608777.492 21608777.324
+ 44.000 42.100
+ -1921308.568 4 -1497130.875 3 24265406.126 24265404.338 24265404.437
+ 29.900 20.500
+ -11458122.231 5 -8928398.667 5 22253314.763 22253317.063 22253314.705
+ 35.200 31.600
+ -9556218.236 4 -7446418.609 3 23352999.227 23353001.581 23352998.674
+ 28.800 23.000
+ -23845171.729 6 -18580653.270 8 20395805.424 20395803.381 20395804.594
+ 41.400 48.700
+ 06 1 2 16 51 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4273078.725 5 -3329668.910 5 22554730.758 22554731.940 22554729.696
+ 34.600 34.000
+ -16841514.869 6 -13123265.397 6 21561658.977 21561659.330 21561657.977
+ 41.800 36.400
+ -18726771.474 7 -14592282.937 6 20920636.762 20920634.908 20920636.140
+ 47.100 39.800
+ -16424327.386 7 -12798172.572 6 21596459.732 21596458.913 21596459.001
+ 44.000 41.700
+ -1827704.344 4 -1424192.590 3 24283218.449 24283217.383 24283216.457
+ 28.600 21.100
+ -195828.591 4 -152594.266 1 24648008.503 24648009.589 24648007.022
+ 24.600 11.000
+ -11553081.754 6 -9002393.027 5 22235244.991 22235246.970 22235244.700
+ 36.500 31.000
+ -9452436.148 4 -7365549.570 3 23372747.688 23372750.878 23372747.408
+ 26.200 23.800
+ -23868287.365 6 -18598665.455 8 20391406.759 20391404.620 20391405.813
+ 41.500 48.700
+ 06 1 2 16 52 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4342939.464 5 -3384105.787 5 22541437.577 22541438.228 22541436.347
+ 35.900 34.300
+ -16756722.312 6 -13057193.319 6 21577794.552 21577795.036 21577793.613
+ 41.800 36.600
+ -18687741.229 7 -14561869.781 6 20928064.144 20928062.154 20928063.438
+ 47.100 39.500
+ -16488786.697 7 -12848400.607 6 21584193.343 21584192.464 21584192.863
+ 43.800 41.800
+ -1734069.599 4 -1351230.512 3 24301036.121 24301035.325 24301034.178
+ 28.600 19.300
+ -287477.157 3 -224008.822 1 24630568.150 24630569.603 24630566.446
+ 22.100 11.000
+ -11647718.390 6 -9076135.781 5 22217235.604 22217238.106 22217235.762
+ 36.500 32.100
+ -9348481.794 4 -7284546.267 3 23392530.047 23392533.034 23392529.526
+ 28.400 23.400
+ -23891017.789 6 -18616377.475 8 20387081.270 20387079.051 20387080.341
+ 41.300 48.600
+ 06 1 2 16 52 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4412614.018 6 -3438397.618 5 22528178.960 22528178.389 22528177.739
+ 36.900 32.100
+ -16671479.700 6 -12990770.546 6 21594015.770 21594016.073 21594014.756
+ 41.600 36.000
+ -18648192.060 7 -14531052.266 6 20935590.030 20935588.125 20935589.352
+ 47.100 39.800
+ -16552971.603 7 -12898414.811 7 21571979.601 21571978.924 21571978.982
+ 44.200 42.600
+ -1640405.140 4 -1278245.296 3 24318860.130 24318859.318 24318858.155
+ 29.700 22.600
+ -379028.224 2 -295347.435 1 24613145.304 24613147.983 24613144.761
+ 16.100 9.000
+ -11742029.641 6 -9149624.975 5 22199288.893 22199291.345 22199289.155
+ 37.000 32.400
+ -9244357.670 4 -7203410.669 3 23412345.437 23412346.850 23412344.302
+ 28.100 21.600
+ -23913361.568 6 -18633788.216 8 20382829.478 20382827.208 20382828.521
+ 41.300 48.600
+ 06 1 2 16 53 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4482101.840 5 -3492543.963 5 22514955.624 22514954.839 22514954.164
+ 35.900 32.100
+ -16585789.854 6 -12923999.281 5 21610321.946 21610322.177 21610321.006
+ 41.500 35.400
+ -18608125.657 7 -14499831.716 6 20943214.446 20943212.552 20943213.770
+ 47.100 39.800
+ -16616881.682 7 -12948214.859 7 21559817.872 21559817.134 21559817.278
+ 44.300 42.200
+ -1546712.172 5 -1205237.856 3 24336690.332 24336688.493 24336688.395
+ 32.000 21.100
+ -470478.605 3 -366607.530 2 24595745.151 24595746.006 24595743.317
+ 19.900 15.100
+ -11836013.336 6 -9222858.934 5 22181404.312 22181406.666 22181404.309
+ 36.300 31.800
+ -9140066.265 4 -7122144.754 3 23432190.398 23432192.966 23432189.993
+ 26.500 19.300
+ -23935317.540 6 -18650896.768 8 20378651.373 20378649.120 20378650.395
+ 41.200 48.700
+ 06 1 2 16 53 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4551402.707 6 -3546544.605 5 22501767.970 22501768.488 22501766.909
+ 37.000 33.800
+ -16499655.507 6 -12856881.645 5 21626712.747 21626713.003 21626711.827
+ 41.100 35.400
+ -18567543.610 7 -14468209.360 6 20950936.953 20950935.073 20950936.283
+ 47.000 39.700
+ -16680516.502 7 -12997800.414 7 21547708.652 21547707.585 21547708.022
+ 44.800 42.200
+ -1452991.495 5 -1132208.849 3 24354525.222 24354523.094 24354523.227
+ 31.300 23.400
+ -561825.007 3 -437786.545 2 24578360.313 24578363.765 24578360.276
+ 19.300 17.800
+ -11929666.957 6 -9295835.687 5 22163582.097 22163584.891 22163582.579
+ 36.500 32.000
+ -9035611.077 4 -7040751.216 4 23452068.059 23452070.578 23452067.128
+ 26.200 25.900
+ -23956884.308 6 -18667702.045 8 20374547.190 20374545.143 20374546.305
+ 41.100 48.500
+ 06 1 2 16 54 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4620516.237 6 -3600399.289 5 22488616.214 22488616.821 22488615.105
+ 37.100 34.500
+ -16413079.700 6 -12789420.020 5 21643187.806 21643187.942 21643186.747
+ 41.100 35.500
+ -18526447.302 7 -14436186.283 6 20958757.613 20958755.502 20958756.866
+ 47.300 39.500
+ -16743875.458 7 -13047171.017 7 21535651.939 21535650.946 21535651.345
+ 45.200 42.600
+ -1359244.201 4 -1059159.079 3 24372363.779 24372362.232 24372362.198
+ 29.500 21.600
+ -653064.561 3 -508882.286 2 24560999.575 24561000.836 24560998.165
+ 22.100 12.600
+ -12022988.200 6 -9368553.449 5 22145823.848 22145826.415 22145824.235
+ 37.700 32.700
+ -8930994.415 4 -6959231.839 3 23471975.830 23471978.614 23471974.779
+ 24.600 23.400
+ -23978060.517 6 -18684202.992 8 20370517.584 20370515.465 20370516.677
+ 41.000 48.700
+ 06 1 2 16 54 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4689442.200 6 -3654107.793 5 22475499.288 22475499.835 22475498.278
+ 36.200 33.800
+ -16326065.160 6 -12721616.526 5 21659746.036 21659746.297 21659744.969
+ 40.600 35.300
+ -18484838.631 7 -14403763.957 6 20966675.232 20966673.416 20966674.555
+ 47.000 39.300
+ -16806958.125 7 -13096326.314 7 21523647.739 21523646.686 21523647.018
+ 44.900 42.600
+ -1265471.014 4 -986089.146 3 24390207.456 24390206.799 24390206.243
+ 27.100 20.500
+ -744194.058 3 -579892.252 2 24543657.959 24543659.754 24543656.789
+ 23.000 13.900
+ -12115974.480 6 -9441010.211 5 22128129.338 22128131.468 22128129.401
+ 37.700 32.300
+ -8826219.092 4 -6877588.850 3 23491914.220 23491916.773 23491913.387
+ 25.300 23.800
+ -23998844.889 6 -18700398.614 8 20366562.360 20366560.351 20366561.404
+ 41.300 48.700
+ 06 1 2 16 55 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4758180.226 6 -3707669.882 5 22462419.490 22462419.232 22462418.435
+ 37.700 33.100
+ -16238614.691 6 -12653473.355 5 21676387.366 21676387.654 21676386.287
+ 40.500 35.800
+ -18442719.226 7 -14370943.660 6 20974690.147 20974688.490 20974689.540
+ 46.900 39.500
+ -16869763.911 7 -13145265.862 7 21511695.757 21511695.066 21511695.236
+ 44.700 42.500
+ -1171673.137 4 -912999.960 3 24408057.524 24408056.649 24408056.058
+ 29.700 22.100
+ -835210.260 3 -650813.856 2 24526337.362 24526339.570 24526336.547
+ 19.900 16.100
+ -12208623.513 6 -9513204.177 5 22110498.723 22110501.033 22110498.674
+ 36.800 32.600
+ -8721288.136 4 -6795824.580 4 23511882.398 23511884.314 23511881.054
+ 25.600 24.600
+ -24019235.904 6 -18716287.721 8 20362682.203 20362679.973 20362681.250
+ 41.200 48.700
+ 06 1 2 16 55 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4826729.951 6 -3761085.253 5 22449375.002 22449375.423 22449373.870
+ 37.600 34.800
+ -16150731.123 6 -12584992.691 5 21693110.838 21693111.242 21693109.881
+ 40.400 35.500
+ -18400090.845 7 -14337726.757 6 20982802.198 20982800.415 20982801.484
+ 47.000 39.300
+ -16932292.326 7 -13193989.273 7 21499797.131 21499796.209 21499796.472
+ 44.800 42.500
+ -1077851.257 4 -839892.105 4 24425911.898 24425910.533 24425909.953
+ 28.800 25.900
+ -926110.141 3 -721644.762 1 24509040.830 24509040.450 24509039.286
+ 22.100 6.500
+ -12300932.751 6 -9585133.370 5 22092933.026 22092935.237 22092932.803
+ 37.400 32.400
+ -8616204.433 4 -6713941.276 3 23531877.929 23531881.300 23531877.509
+ 24.900 22.600
+ -24039232.426 6 -18731869.432 8 20358877.289 20358874.728 20358876.337
+ 41.400 48.600
+ 06 1 2 16 56 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4895091.206 6 -3814353.734 5 22436366.222 22436366.758 22436364.891
+ 37.200 34.900
+ -16062417.900 6 -12516177.254 5 21709916.119 21709916.847 21709915.328
+ 40.600 35.500
+ -18356955.227 7 -14304114.604 6 20991010.518 20991008.892 20991009.898
+ 46.900 39.400
+ -16994543.208 7 -13242496.421 7 21487951.093 21487950.372 21487950.514
+ 45.000 42.700
+ -984006.218 4 -766766.230 3 24443768.622 24443768.467 24443767.035
+ 26.800 23.800
+ -1016890.532 3 -792382.641 24491765.554 24491766.125 24491764.495
+ 23.400 3.000
+ -12392900.038 6 -9656796.124 5 22075432.498 22075434.198 22075431.940
+ 37.100 32.600
+ -8510970.723 4 -6631941.108 3 23551904.695 23551907.009 23551903.297
+ 26.500 23.000
+ -24058833.301 6 -18747142.850 8 20355147.208 20355144.929 20355146.256
+ 41.400 48.700
+ 06 1 2 16 56 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4963263.514 6 -3867474.994 5 22423393.131 22423393.251 22423392.046
+ 36.700 33.200
+ -15973677.382 6 -12447028.849 5 21726803.169 21726803.463 21726802.183
+ 40.400 34.700
+ -18313314.133 7 -14270108.570 6 20999315.150 20999313.583 20999314.479
+ 46.800 39.200
+ -17056516.023 7 -13290786.897 7 21476158.122 21476157.339 21476157.510
+ 45.000 43.000
+ -890139.286 4 -693623.262 3 24461631.767 24461630.410 24461629.565
+ 27.600 21.100
+ -1107548.517 4 -863025.072 1 24474514.125 24474514.508 24474513.085
+ 25.600 11.000
+ -12484523.111 6 -9728190.665 5 22057998.340 22057998.926 22057996.954
+ 37.600 33.200
+ -8405589.403 4 -6549825.906 3 23571958.197 23571959.903 23571957.113
+ 25.300 22.600
+ -24078036.923 6 -18762106.720 8 20351492.753 20351490.601 20351491.860
+ 41.100 48.700
+ 06 1 2 16 57 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5031246.570 6 -3920448.810 5 22410456.516 22410456.667 22410455.506
+ 38.100 34.300
+ -15884512.794 6 -12377549.992 5 21743771.027 21743770.924 21743770.018
+ 40.900 34.400
+ -18269169.516 7 -14235710.183 6 21007715.804 21007713.843 21007715.089
+ 47.100 38.900
+ -17118210.034 7 -13338860.121 7 21464418.281 21464417.298 21464417.656
+ 45.100 42.900
+ -796251.333 4 -620463.889 3 24479498.060 24479496.474 24479496.163
+ 24.900 21.600
+ -1198080.629 4 -933569.435 9 24457286.662 24457286.250 24457285.261
+ 27.900 -3.000
+ -12575799.534 6 -9799315.085 5 22040629.122 22040629.702 22040627.605
+ 37.200 33.800
+ -8300063.902 3 -6467598.326 3 23592037.105 23592040.994 23592036.620
+ 22.100 23.800
+ -24096842.150 6 -18776760.150 8 20347914.371 20347912.077 20347913.437
+ 41.300 48.700
+ 06 1 2 16 57 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5099040.216 6 -3973275.003 5 22397555.496 22397556.422 22397554.473
+ 36.800 35.600
+ -15794926.974 6 -12307742.901 5 21760818.594 21760818.730 21760817.585
+ 40.500 34.600
+ -18224522.638 7 -14200920.414 6 21016211.942 21016209.928 21016211.258
+ 47.400 38.900
+ -17179625.017 7 -13386715.929 7 21452731.154 21452730.261 21452730.658
+ 44.900 42.900
+ -702342.972 4 -547288.630 3 24497367.597 24497366.693 24497366.123
+ 24.900 19.900
+ -1288483.827 3 -1004013.367 2 24440082.001 24440083.732 24440080.905
+ 22.600 12.600
+ -12666726.892 6 -9870167.517 5 22023326.156 22023326.284 22023324.615
+ 37.200 32.600
+ -8194396.592 4 -6385260.296 3 23612148.308 23612149.213 23612146.635
+ 27.900 22.100
+ -24115247.645 6 -18791102.106 8 20344411.960 20344409.568 20344410.976
+ 41.200 48.600
+ 06 1 2 16 58 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5166644.032 6 -4025953.286 5 22384691.209 22384691.402 22384690.055
+ 37.500 34.500
+ -15704922.754 6 -12237609.793 5 21777945.706 21777946.101 21777944.804
+ 40.200 34.700
+ -18179375.455 7 -14165740.804 6 21024803.158 21024801.058 21024802.477
+ 47.400 38.900
+ -17240760.428 7 -13434353.885 7 21441097.663 21441096.524 21441097.056
+ 45.200 43.100
+ -608415.341 4 -474098.335 3 24515241.601 24515241.641 24515240.283
+ 25.900 22.100
+ -1378755.030 4 -1074354.381 2 24422904.956 24422906.006 24422903.333
+ 25.600 15.100
+ -12757302.851 6 -9940746.140 5 22006090.105 22006090.392 22006088.665
+ 37.600 33.400
+ -8088590.498 3 -6302814.142 4 23632281.468 23632283.225 23632280.084
+ 22.600 24.200
+ -24133252.002 6 -18805131.483 8 20340985.709 20340983.521 20340984.786
+ 41.200 48.700
+ 06 1 2 16 58 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5234057.707 6 -4078483.416 5 22371862.339 22371862.733 22371861.343
+ 36.500 33.900
+ -15614502.796 6 -12167152.732 5 21795152.193 21795152.505 21795151.181
+ 40.000 34.700
+ -18133729.996 7 -14130172.922 6 21033489.259 21033487.096 21033488.641
+ 47.400 38.800
+ -17301615.802 7 -13481773.636 7 21429517.305 21429516.305 21429516.515
+ 44.800 43.200
+ -514469.145 4 -400893.642 3 24533120.290 24533118.939 24533117.974
+ 27.400 20.500
+ -1468890.991 4 -1144590.030 1 24405751.657 24405753.003 24405751.039
+ 26.800 6.500
+ -12847525.092 6 -10011049.124 5 21988920.886 21988921.504 21988919.590
+ 37.900 33.100
+ -7982648.160 3 -6220261.785 3 23652441.033 23652443.334 23652440.095
+ 22.100 21.600
+ -24150853.886 6 -18818847.242 8 20337636.218 20337634.004 20337635.210
+ 41.100 48.700
+ 06 1 2 16 59 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5301280.888 6 -4130865.085 5 22359070.098 22359070.962 22359069.088
+ 36.800 34.700
+ -15523670.390 6 -12096374.281 5 21812437.322 21812437.524 21812436.127
+ 39.700 34.600
+ -18087588.001 7 -14094218.132 6 21042269.819 21042267.698 21042269.015
+ 47.200 38.600
+ -17362190.696 7 -13528974.829 7 21417990.017 21417989.104 21417989.429
+ 44.900 43.100
+ -420505.503 4 -327675.310 3 24551001.300 24550999.592 24550999.490
+ 29.500 21.600
+ -1558888.831 4 -1214718.190 1 24388625.439 24388626.979 24388624.093
+ 24.200 6.500
+ -12937391.401 6 -10081074.761 5 21971818.979 21971820.518 21971818.387
+ 38.400 33.400
+ -7876572.711 4 -6137605.711 3 23672628.115 23672629.848 23672626.704
+ 26.800 23.800
+ -24168052.369 6 -18832248.664 8 20334363.541 20334361.204 20334362.503
+ 41.100 48.600
+ 06 1 2 16 59 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5368313.320 6 -4183098.118 5 22346314.518 22346315.015 22346313.444
+ 37.200 34.600
+ -15432428.630 6 -12025276.852 5 21829799.652 21829800.431 21829798.675
+ 39.500 35.100
+ -18040951.090 7 -14057877.688 6 21051144.585 21051142.414 21051143.819
+ 47.100 38.900
+ -17422484.696 7 -13575957.151 7 21406516.639 21406515.673 21406515.937
+ 45.100 43.400
+ -326525.273 4 -254444.063 3 24568884.677 24568883.671 24568882.924
+ 27.100 21.600
+ -1648745.199 3 -1284736.046 1 24371526.142 24371527.853 24371525.215
+ 23.800 9.000
+ -13026899.402 6 -10150821.179 5 21954786.084 21954787.842 21954785.526
+ 38.600 33.900
+ -7770366.645 3 -6054847.889 3 23692836.215 23692839.302 23692835.717
+ 21.600 19.900
+ -24184845.969 6 -18845334.591 8 20331167.669 20331165.598 20331166.799
+ 41.200 48.800
+ 06 1 2 17 0 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5435154.706 6 -4235182.290 5 22333595.087 22333595.169 22333594.066
+ 38.100 34.400
+ -15340780.322 6 -11953862.635 5 21847239.680 21847240.325 21847238.765
+ 39.300 34.300
+ -17993821.248 7 -14021153.153 6 21060113.129 21060110.945 21060112.322
+ 47.100 38.600
+ -17482497.387 7 -13622720.263 7 21395096.417 21395095.744 21395095.736
+ 45.000 43.600
+ -232529.305 4 -181200.547 2 24586770.451 24586769.832 24586768.882
+ 25.900 17.800
+ -1738456.924 3 -1354641.195 2 24354454.965 24354455.601 24354453.626
+ 22.600 15.100
+ -13116046.667 6 -10220286.523 5 21937822.764 21937823.521 21937821.616
+ 38.300 34.400
+ -7664032.839 4 -5971990.480 3 23713072.059 23713074.810 23713071.413
+ 25.300 22.600
+ -24201233.389 6 -18858104.010 8 20328049.509 20328047.127 20328048.536
+ 41.200 48.800
+ 06 1 2 17 0 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5501804.671 6 -4287117.300 5 22320911.980 22320912.249 22320910.826
+ 37.500 34.500
+ -15248728.671 6 -11882134.120 5 21864756.343 21864757.191 21864755.426
+ 39.400 34.400
+ -17946200.167 7 -13984045.820 6 21069175.040 21069173.049 21069174.313
+ 46.900 38.600
+ -17542228.266 7 -13669263.792 7 21383730.114 21383729.037 21383729.504
+ 45.200 43.200
+ -138518.433 4 -107945.404 3 24604661.546 24604659.809 24604659.732
+ 29.200 19.900
+ -1828020.772 4 -1424431.153 2 24337412.635 24337412.575 24337410.540
+ 24.600 13.900
+ -13204831.039 6 -10289469.088 5 21920927.921 21920928.094 21920926.565
+ 38.200 33.100
+ -7557574.369 3 -5889036.030 3 23733330.621 23733333.284 23733329.382
+ 22.600 19.300
+ -24217213.275 6 -18870555.872 8 20325008.512 20325006.212 20325007.611
+ 41.200 48.700
+ 06 1 2 17 1 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5568263.013 6 -4338902.977 6 22308265.543 22308266.110 22308264.341
+ 38.000 36.000
+ -15156276.430 6 -11810093.453 5 21882349.522 21882350.303 21882348.652
+ 38.400 33.600
+ -17898089.822 7 -13946557.251 6 21078330.016 21078328.225 21078329.266
+ 46.900 38.700
+ -17601677.002 7 -13715587.477 7 21372417.208 21372416.306 21372416.678
+ 45.100 43.300
+ -44493.382 4 -34679.188 3 24622553.773 24622552.415 24622552.209
+ 29.900 18.600
+ -1917433.794 3 -1494103.589 2 24320396.589 24320397.970 24320396.215
+ 23.400 16.100
+ -13293250.259 6 -10358367.137 5 21904101.756 21904102.536 21904100.681
+ 38.500 33.900
+ -7450993.800 4 -5805986.308 3 23753612.025 23753614.798 23753611.279
+ 26.500 20.500
+ -24232784.534 6 -18882689.321 8 20322045.490 20322043.119 20322044.559
+ 41.300 48.700
+ 06 1 2 17 1 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5634529.341 6 -4390539.027 5 22295655.278 22295655.543 22295654.253
+ 38.100 34.700
+ -15063426.469 6 -11737742.887 5 21900019.084 21900018.969 21900017.656
+ 38.800 33.800
+ -17849492.324 7 -13908689.080 6 21087577.557 21087576.051 21087576.956
+ 46.700 38.700
+ -17660843.135 7 -13761690.947 7 21361158.402 21361157.495 21361157.789
+ 45.300 43.600
+ 49544.956 4 38597.375 3 24640449.092 24640447.886 24640446.915
+ 25.300 19.900
+ -2006692.795 4 -1563656.006 2 24303411.886 24303412.342 24303410.454
+ 25.600 15.100
+ -13381302.342 6 -10426979.089 5 21887345.443 21887346.693 21887344.767
+ 39.000 34.100
+ -7344293.936 3 -5722843.712 3 23773917.143 23773919.613 23773915.791
+ 19.900 23.000
+ -24247945.742 6 -18894503.249 8 20319160.356 20319158.045 20319159.454
+ 41.400 48.800
+ 06 1 2 17 2 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5700603.425 6 -4442025.289 5 22283081.791 22283081.835 22283080.670
+ 37.800 34.800
+ -14970182.171 6 -11665085.045 5 21917762.557 21917763.033 21917761.527
+ 39.100 33.900
+ -17800409.285 7 -13870442.566 6 21096917.916 21096916.146 21096917.262
+ 46.900 38.800
+ -17719726.149 7 -13807573.802 7 21349953.423 21349952.350 21349952.783
+ 45.800 43.600
+ 143595.721 4 111883.637 3 24658345.529 24658345.875 24658343.815
+ 26.200 22.600
+ -2095794.572 3 -1633085.904 3 24286455.728 24286457.033 24286454.015
+ 23.400 21.100
+ -13468984.706 6 -10495302.949 5 21870660.031 21870661.514 21870659.356
+ 38.900 34.600
+ -7237477.522 3 -5639610.328 3 23794242.546 23794246.047 23794242.021
+ 23.000 19.900
+ -24262695.696 6 -18905996.722 8 20316353.428 20316351.199 20316352.562
+ 41.400 48.700
+ 06 1 2 17 2 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5766485.038 6 -4493361.557 5 22270544.952 22270545.408 22270543.744
+ 38.000 35.900
+ -14876546.141 6 -11592121.944 5 21935580.532 21935581.421 21935579.879
+ 39.100 34.000
+ -17750842.521 7 -13831819.126 6 21106350.083 21106348.477 21106349.451
+ 46.800 38.600
+ -17778325.779 7 -13853235.841 7 21338802.331 21338801.234 21338801.727
+ 45.800 43.700
+ 237657.907 3 185178.799 3 24676245.864 24676243.494 24676243.527
+ 23.400 18.600
+ -2184735.757 3 -1702390.667 2 24269530.223 24269532.073 24269529.269
+ 22.100 17.000
+ -13556295.178 6 -10563337.024 5 21854045.328 21854046.633 21854044.716
+ 39.100 34.600
+ -7130547.767 4 -5556288.539 3 23814590.905 23814594.433 23814590.601
+ 24.600 22.600
+ -24277033.427 6 -18917168.981 8 20313625.192 20313622.789 20313624.246
+ 41.300 48.600
+ 06 1 2 17 3 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5832173.759 6 -4544547.524 6 22258044.847 22258045.436 22258043.666
+ 38.500 36.600
+ -14782521.749 6 -11518856.239 5 21953473.472 21953473.733 21953472.345
+ 39.300 33.900
+ -17700793.954 7 -13792820.257 6 21115874.020 21115872.337 21115873.392
+ 46.800 38.400
+ -17836641.326 7 -13898676.514 7 21327705.180 21327704.062 21327704.442
+ 45.600 43.600
+ 331730.820 4 258482.269 3 24694147.263 24694146.008 24694145.481
+ 25.900 21.100
+ -2273513.044 4 -1771567.732 2 24252637.872 24252637.245 24252635.760
+ 24.900 12.600
+ -13643231.604 6 -10631079.644 5 21837503.030 21837502.997 21837501.597
+ 39.300 34.000
+ -7023507.277 4 -5472880.531 3 23834960.289 23834963.816 23834959.593
+ 24.600 23.000
+ -24290957.647 6 -18928019.025 8 20310975.440 20310973.077 20310974.477
+ 41.000 48.600
+ 06 1 2 17 3 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5897669.394 6 -4595583.021 6 22245581.332 22245581.687 22245580.143
+ 38.500 36.400
+ -14688111.904 6 -11445290.173 5 21971439.096 21971439.237 21971437.876
+ 38.500 32.700
+ -17650265.513 7 -13753447.459 6 21125489.122 21125487.588 21125488.617
+ 46.800 38.400
+ -17894672.581 7 -13943895.658 7 21316661.882 21316661.080 21316661.486
+ 45.500 43.600
+ 425813.543 4 331793.420 2 24712050.273 24712048.926 24712048.592
+ 24.200 15.100
+ -2362123.647 4 -1840614.911 2 24235774.838 24235775.855 24235773.511
+ 25.300 15.100
+ -13729791.712 6 -10698529.034 5 21821031.098 21821031.263 21821029.806
+ 39.800 34.700
+ -6916359.008 3 -5389388.511 3 23855348.764 23855353.300 23855348.563
+ 19.900 21.100
+ -24304466.943 6 -18938545.754 8 20308404.657 20308402.238 20308403.704
+ 41.000 48.600
+ 06 1 2 17 4 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5962971.582 6 -4646467.801 5 22233154.390 22233154.908 22233153.403
+ 38.600 35.600
+ -14593319.689 6 -11371426.150 5 21989476.878 21989477.586 21989476.095
+ 38.400 33.000
+ -17599259.214 7 -13713702.306 6 21135195.537 21135193.820 21135194.918
+ 46.800 38.400
+ -17952418.802 7 -13988892.704 7 21305673.489 21305672.394 21305672.841
+ 45.800 43.800
+ 519905.239 3 405111.578 2 24729954.773 24729954.282 24729953.252
+ 22.100 13.900
+ -2450564.222 4 -1909529.577 2 24218944.514 24218946.263 24218944.119
+ 25.900 16.100
+ -13815973.178 6 -10765683.374 5 21804629.663 21804631.384 21804629.393
+ 39.300 34.600
+ -6809105.461 4 -5305814.494 3 23875759.782 23875763.280 23875759.202
+ 25.900 22.600
+ -24317560.207 6 -18948748.296 8 20305913.021 20305910.688 20305912.079
+ 41.000 48.600
+ 06 1 2 17 4 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -6028080.035 6 -4697201.621 6 22220765.077 22220765.267 22220763.879
+ 38.700 36.100
+ -14498148.214 6 -11297266.605 5 22007587.166 22007588.303 22007586.400
+ 38.000 33.200
+ -17547776.953 7 -13673586.274 6 21144992.290 21144990.456 21144991.613
+ 47.000 38.200
+ -18009880.067 7 -14033667.699 7 21294738.919 21294737.858 21294738.215
+ 45.600 43.800
+ 614005.289 3 478436.228 3 24747861.940 24747861.535 24747859.993
+ 23.400 18.600
+ -2538831.636 4 -1978309.325 2 24202148.946 24202149.703 24202147.632
+ 24.900 17.000
+ -13901773.934 6 -10832541.043 5 21788302.123 21788304.000 21788302.122
+ 39.800 35.100
+ -6701749.278 4 -5222160.461 3 23896190.178 23896192.281 23896189.014
+ 25.300 21.100
+ -24330236.220 6 -18958625.712 8 20303501.014 20303498.640 20303499.951
+ 40.900 48.700
+ 06 1 2 17 5 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -6092994.411 6 -4747784.210 6 22208412.045 22208412.518 22208410.937
+ 38.200 36.100
+ -14402600.749 6 -11222814.076 5 22025770.110 22025770.331 22025768.951
+ 38.100 32.700
+ -17495820.803 7 -13633100.981 6 21154879.463 21154877.452 21154878.751
+ 46.900 37.900
+ -18067055.773 7 -14078220.180 7 21283858.645 21283857.594 21283858.017
+ 45.600 43.800
+ 708112.661 4 551766.605 2 24765770.478 24765769.342 24765768.637
+ 24.900 17.800
+ -2626922.717 4 -2046951.639 2 24185384.624 24185386.484 24185383.762
+ 24.600 17.800
+ -13987191.654 6 -10899100.249 5 21772049.200 21772049.452 21772048.084
+ 40.200 34.100
+ -6594293.404 3 -5138428.742 2 23916637.384 23916640.842 23916636.765
+ 23.800 17.800
+ -24342494.086 6 -18968177.297 8 20301168.402 20301166.052 20301167.434
+ 41.000 48.600
+ 06 1 2 17 5 30.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -6157714.488 6 -4798215.399 6 22196096.244 22196096.579 22196095.144
+ 38.500 36.000
+ -14306679.717 6 -11148070.477 5 22044023.418 22044023.825 22044022.291
+ 37.900 32.800
+ -17443392.611 7 -13592247.872 6 21164856.012 21164854.222 21164855.358
+ 46.600 37.700
+ -18123945.426 7 -14122549.762 7 21273032.693 21273031.866 21273032.178
+ 45.200 44.000
+ 802226.547 4 625102.009 2 24783679.502 24783678.388 24783677.402
+ 25.600 17.000
+ -2714834.370 4 -2115454.118 2 24168656.214 24168656.714 24168654.574
+ 25.300 13.900
+ -14072224.485 6 -10965359.577 5 21755867.807 21755868.188 21755866.762
+ 40.300 34.600
+ -6486740.882 3 -5054621.722 3 23937104.431 23937107.902 23937103.225
+ 21.100 23.400
+ -24354331.886 6 -18977401.556 8 20298915.784 20298913.357 20298914.859
+ 41.100 48.600
+ 06 1 2 17 6 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6222239.964 6 -4848494.965 5 22183817.539 22183817.524 22183816.401
+ 39.200 35.600
+ -14210388.467 6 -11073038.378 5 22062346.449 22062347.429 22062345.658
+ 38.600 33.100
+ -17390494.432 7 -13551028.527 6 21174922.389 21174920.390 21174921.644
+ 46.800 38.000
+ -18180548.600 7 -14166656.115 7 21262261.808 21262260.607 21262261.028
+ 45.500 44.000
+ -2802563.335 4 -2183814.241 2 24151961.062 24151962.246 24151960.526
+ 25.900 13.900
+ -14156870.240 6 -11031317.259 5 21739758.909 21739760.632 21739758.701
+ 39.900 35.200
+ -6379094.145 3 -4970741.340 3 23957589.578 23957592.313 23957588.088
+ 22.600 22.100
+ -24365748.818 6 -18986297.872 8 20296743.132 20296740.823 20296742.254
+ 41.000 48.600
+ 06 1 2 17 6 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -6286570.553 6 -4898622.669 6 22171575.770 22171576.156 22171574.635
+ 39.100 36.500
+ -14113730.388 6 -10997720.438 5 22080740.789 22080740.869 22080739.306
+ 37.600 32.800
+ -17337127.800 7 -13509444.167 6 21185077.661 21185075.883 21185076.918
+ 46.600 38.100
+ -18236864.951 7 -14210538.977 7 21251545.069 21251544.129 21251544.416
+ 45.600 44.300
+ -2890106.283 4 -2252029.446 1 24135303.190 24135302.812 24135301.824
+ 27.100 11.000
+ -14241126.687 6 -11096971.580 5 21723725.815 21723727.204 21723725.354
+ 39.800 35.700
+ -6271356.287 3 -4886789.910 2 23978090.746 23978093.688 23978090.069
+ 22.100 15.100
+ -24376743.659 6 -18994865.282 8 20294651.018 20294648.546 20294649.985
+ 40.800 48.600
+ 06 1 2 17 7 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6350705.917 6 -4948598.255 6 22159370.879 22159371.624 22159369.776
+ 38.900 36.500
+ -14016707.946 6 -10922118.610 5 22099202.892 22099203.694 22099202.032
+ 37.100 33.400
+ -17283295.376 7 -13467496.842 6 21195321.620 21195319.685 21195320.982
+ 46.800 37.500
+ -18292894.011 7 -14254197.969 7 21240882.727 21240882.016 21240882.264
+ 45.600 44.300
+ -2977460.260 4 -2320097.399 2 24118680.976 24118679.985 24118679.174
+ 28.600 12.600
+ -14324991.507 6 -11162320.747 5 21707767.918 21707768.098 21707766.688
+ 39.800 35.400
+ -6163529.969 3 -4802769.530 3 23998609.722 23998613.342 23998608.540
+ 19.900 21.600
+ -24387315.479 6 -19003103.067 8 20292639.175 20292636.820 20292638.191
+ 40.900 48.600
+ 06 1 2 17 7 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -6414645.842 6 -4998421.546 6 22147203.810 22147203.947 22147202.614
+ 39.300 36.500
+ -13919324.899 6 -10846235.762 5 22117733.624 22117735.044 22117733.019
+ 36.800 32.800
+ -17228998.894 7 -13425187.913 6 21205653.813 21205652.168 21205653.227
+ 46.700 38.000
+ -18348635.401 7 -14297632.801 7 21230275.692 21230274.795 21230275.038
+ 45.600 44.300
+ -3064621.999 4 -2388015.501 1 24102092.461 24102093.704 24102091.405
+ 25.900 9.000
+ -14408462.502 6 -11227363.050 5 21691883.821 21691884.190 21691882.593
+ 40.200 35.400
+ -6055618.050 3 -4718682.550 3 24019145.850 24019148.060 24019143.951
+ 22.100 21.100
+ -24397462.954 6 -19011010.197 8 20290708.194 20290705.828 20290707.248
+ 40.900 48.600
+ 06 1 2 17 8 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6478390.071 6 -5048092.364 6 22135073.562 22135073.721 22135072.419
+ 38.700 36.000
+ -13821584.240 6 -10770074.273 5 22136334.656 22136334.517 22136333.073
+ 36.700 32.700
+ -17174240.188 7 -13382518.811 6 21216074.079 21216072.231 21216073.422
+ 46.500 37.700
+ -18404088.855 7 -14340843.274 7 21219722.964 21219722.335 21219722.464
+ 45.600 44.300
+ -3151588.429 4 -2455781.456 3 24085544.026 24085544.940 24085543.243
+ 28.400 19.300
+ -14491537.827 6 -11292097.034 5 21676074.304 21676075.514 21676073.762
+ 41.000 35.500
+ -5947623.360 3 -4634530.975 3 24039696.153 24039699.484 24039694.530
+ 23.000 19.300
+ -24407184.991 6 -19018585.818 8 20288858.025 20288855.806 20288857.168
+ 41.000 48.700
+ 06 1 2 17 8 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -6541938.213 6 -5097610.377 6 22122980.650 22122981.077 22122979.574
+ 39.300 36.800
+ -13723488.658 6 -10693636.208 5 22155000.108 22155001.600 22154999.697
+ 37.200 32.000
+ -17119021.493 7 -13339491.276 6 21226582.069 21226580.118 21226581.379
+ 46.600 37.500
+ -18459253.838 7 -14383828.960 7 21209225.872 21209224.765 21209225.219
+ 45.900 44.400
+ -3238356.384 4 -2523392.733 2 24069032.870 24069033.543 24069031.374
+ 27.100 13.900
+ -14574215.434 6 -11356521.100 5 21660341.588 21660342.429 21660340.586
+ 40.600 35.800
+ -5839548.251 3 -4550316.763 3 24060261.982 24060264.968 24060261.000
+ 23.000 19.300
+ -24416480.435 6 -19025829.028 8 20287089.399 20287086.921 20287088.408
+ 41.100 48.700
+ 06 1 2 17 9 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6605289.997 6 -5146975.389 6 22110925.805 22110925.661 22110924.527
+ 39.800 37.200
+ -13625041.984 6 -10616924.564 5 22173735.097 22173735.288 22173733.994
+ 37.200 31.500
+ -17063345.017 7 -13296107.026 6 21237176.794 21237175.239 21237176.137
+ 46.500 37.900
+ -18514130.392 7 -14426589.901 7 21198783.012 21198782.085 21198782.413
+ 45.900 44.500
+ -3324922.653 4 -2590846.903 3 24052559.668 24052560.792 24052558.555
+ 27.400 21.100
+ -14656492.905 6 -11420633.385 5 21644685.071 21644685.440 21644683.836
+ 40.300 35.700
+ -5731396.032 3 -4466042.398 3 24080841.695 24080846.091 24080841.228
+ 23.800 18.600
+ -24425348.107 6 -19032738.912 8 20285401.823 20285399.525 20285400.953
+ 41.100 48.700
+ 06 1 2 17 9 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -6668445.214 6 -5196187.232 6 22098907.216 22098907.524 22098906.168
+ 39.200 36.800
+ -13526246.642 6 -10539941.242 5 22192535.559 22192535.661 22192534.424
+ 37.300 32.000
+ -17007212.443 7 -13252367.373 6 21247858.422 21247856.731 21247857.829
+ 46.500 37.800
+ -18568717.639 7 -14469125.408 7 21188395.289 21188394.474 21188394.798
+ 45.900 44.600
+ -3411283.915 4 -2658141.287 3 24036125.618 24036126.480 24036124.189
+ 26.200 18.600
+ -14738368.376 6 -11484432.411 5 21629103.815 21629104.830 21629103.153
+ 40.700 35.400
+ -5623169.255 3 -4381709.978 2 24101437.559 24101440.214 24101436.821
+ 21.100 17.800
+ -24433786.901 6 -19039314.604 8 20283795.909 20283793.682 20283795.014
+ 41.100 48.800
+ 06 1 2 17 10 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6731403.541 6 -5245245.656 6 22086926.786 22086926.889 22086925.659
+ 39.600 36.700
+ -13427106.043 6 -10462688.889 5 22211400.464 22211401.515 22211399.701
+ 36.500 32.000
+ -16950625.689 7 -13208273.808 6 21258626.467 21258625.062 21258625.859
+ 46.300 37.700
+ -18623015.250 7 -14511435.228 7 21178063.073 21178062.033 21178062.400
+ 46.000 44.800
+ -3497437.071 4 -2725273.562 2 24019728.781 24019731.613 24019729.327
+ 24.600 17.000
+ -14819839.799 6 -11547916.593 5 21613600.661 21613601.509 21613599.765
+ 41.200 35.800
+ -5514870.730 3 -4297321.646 2 24122044.137 24122049.634 24122044.029
+ 19.300 15.100
+ -24441795.722 6 -19045555.251 8 20282272.199 20282269.662 20282271.212
+ 41.100 48.700
+ 06 1 2 17 10 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -6794164.648 6 -5294150.402 6 22074984.096 22074983.855 22074982.945
+ 40.500 36.900
+ -13327623.283 6 -10385169.921 5 22230332.432 22230332.421 22230331.118
+ 36.300 31.500
+ -16893587.059 7 -13163828.134 6 21269480.721 21269479.149 21269480.009
+ 46.000 37.600
+ -18677022.702 7 -14553518.940 7 21167785.466 21167784.678 21167784.967
+ 45.800 44.800
+ -3583379.148 4 -2792241.304 2 24003377.742 24003377.517 24003376.137
+ 26.500 17.800
+ -14900904.847 6 -11611084.122 6 21598174.414 21598175.219 21598173.524
+ 41.200 36.400
+ -5406503.433 3 -4212879.721 2 24142667.218 24142671.518 24142666.607
+ 19.900 17.800
+ -24449373.449 6 -19051459.981 8 20280829.907 20280827.697 20280829.091
+ 40.800 48.600
+ 06 1 2 17 11 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6856728.315 6 -5342901.305 6 22063078.151 22063078.404 22063077.093
+ 40.300 37.000
+ -13227801.431 6 -10307386.724 5 22249326.858 22249327.969 22249326.297
+ 36.600 31.600
+ -16836098.643 7 -13119031.976 6 21280420.508 21280418.708 21280419.654
+ 45.600 37.700
+ -18730739.872 7 -14595376.471 7 21157563.634 21157562.568 21157562.980
+ 46.000 44.600
+ -3669106.650 4 -2859041.927 2 23987064.514 23987063.344 23987062.541
+ 26.500 16.100
+ -14981561.747 6 -11673933.596 6 21582825.510 21582826.801 21582824.938
+ 41.600 36.300
+ -5298070.024 3 -4128386.238 3 24163302.376 24163305.953 24163300.886
+ 23.400 21.600
+ -24456519.092 6 -19057028.020 8 20279470.271 20279467.868 20279469.270
+ 40.700 48.600
+ 06 1 2 17 11 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -6919094.296 6 -5391498.154 6 22051210.402 22051210.673 22051209.386
+ 40.200 37.100
+ -13127643.626 6 -10229341.742 5 22268387.551 22268387.465 22268386.136
+ 36.500 31.600
+ -16778162.394 7 -13073886.858 6 21291445.388 21291443.702 21291444.666
+ 45.900 37.700
+ -18784166.190 7 -14637007.357 7 21147396.896 21147395.918 21147396.297
+ 45.900 44.700
+ -3754616.656 4 -2925673.015 2 23970791.204 23970791.912 23970790.301
+ 27.400 16.100
+ -15061808.320 6 -11736463.342 6 21567555.679 21567556.338 21567554.659
+ 41.300 36.500
+ -5189573.201 3 -4043843.343 3 24183949.450 24183952.477 24183947.865
+ 22.100 19.300
+ -24463231.543 6 -19062258.508 8 20278192.901 20278190.489 20278192.010
+ 40.900 48.500
+ 06 1 2 17 12 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6981262.202 6 -5439940.666 6 22039380.223 22039380.452 22039379.047
+ 40.300 37.300
+ -13027152.924 6 -10151037.366 5 22287509.403 22287509.962 22287508.608
+ 37.000 31.000
+ -16719780.793 7 -13028394.704 6 21302554.646 21302553.214 21302554.166
+ 45.900 37.500
+ -18837301.690 7 -14678411.629 7 21137285.534 21137284.529 21137285.036
+ 46.400 44.800
+ -3839905.668 4 -2992131.899 2 23954562.482 23954561.736 23954560.495
+ 26.500 17.800
+ -15141642.528 6 -11798671.765 6 21552363.273 21552364.311 21552362.591
+ 41.800 36.600
+ -5081015.639 3 -3959253.126 3 24204606.657 24204609.977 24204605.582
+ 18.600 21.100
+ -24469509.637 6 -19067150.532 8 20276998.267 20276995.823 20276997.352
+ 41.000 48.500
+ 06 1 2 17 12 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -7043231.778 6 -5488228.630 6 22027587.889 22027587.888 22027586.714
+ 40.500 36.900
+ -12926332.794 5 -10072476.272 5 22306695.255 22306695.610 22306694.122
+ 35.900 31.100
+ -16660955.146 7 -12982556.543 6 21313749.159 21313747.552 21313748.421
+ 45.900 37.600
+ -18890145.576 7 -14719588.674 7 21127229.840 21127228.760 21127229.116
+ 46.200 45.100
+ -3924970.824 3 -3058416.318 2 23938371.887 23938374.253 23938371.465
+ 23.800 15.100
+ -15221062.626 6 -11860557.493 6 21537250.485 21537250.980 21537249.360
+ 41.300 36.400
+ -4972400.244 3 -3874617.821 3 24225276.130 24225278.884 24225274.631
+ 22.100 19.900
+ -24475352.133 6 -19071703.130 8 20275886.554 20275884.074 20275885.610
+ 40.900 48.500
+ 06 1 2 17 13 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -7105002.792 6 -5536361.875 6 22015833.010 22015833.255 22015831.952
+ 40.300 37.700
+ -12825186.501 6 -9993661.052 5 22325942.407 22325943.373 22325941.526
+ 36.100 31.500
+ -16601688.251 7 -12936374.558 6 21325027.155 21325025.595 21325026.383
+ 45.800 37.400
+ -18942697.610 7 -14760538.293 7 21117229.196 21117228.428 21117228.640
+ 45.900 45.100
+ -4009808.861 4 -3124523.808 2 23922229.513 23922230.508 23922228.779
+ 28.800 17.800
+ -15300066.395 6 -11922118.813 6 21522216.388 21522216.964 21522215.496
+ 41.500 36.300
+ -4863729.758 3 -3789939.572 2 24245955.496 24245958.264 24245954.149
+ 22.100 17.000
+ -24480758.192 6 -19075915.644 8 20274857.662 20274855.293 20274856.780
+ 41.100 48.500
+ 06 1 2 17 13 30.0000000 0 8G07G08G11G17G20G24G27G28
+ -7166574.944 6 -5584340.155 6 22004116.156 22004116.473 22004115.062
+ 40.000 37.500
+ -12723716.843 5 -9914593.834 4 22345251.512 22345252.273 22345250.564
+ 35.500 29.900
+ -16541982.042 7 -12889850.247 6 21336388.790 21336387.149 21336388.140
+ 45.800 37.100
+ -18994957.328 7 -14801260.136 7 21107284.858 21107283.647 21107284.178
+ 46.400 44.900
+ -4094416.636 4 -3190451.818 3 23906130.402 23906130.411 23906128.363
+ 28.600 19.300
+ -15378651.837 6 -11983354.162 6 21507261.829 21507262.460 21507260.962
+ 41.700 36.500
+ -4755007.097 3 -3705220.642 2 24266642.700 24266646.963 24266642.589
+ 19.900 13.900
+ -24485726.604 6 -19079787.133 8 20273912.266 20273909.810 20273911.302
+ 40.800 48.500
+ 06 1 2 17 14 0.0000000 0 7G07G08G11G17G20G24G28
+ -7227947.896 6 -5632163.213 6 21992437.334 21992437.737 21992436.311
+ 40.600 38.200
+ -12621926.781 5 -9835276.977 5 22364621.476 22364622.441 22364620.434
+ 35.100 31.100
+ -16481838.612 7 -12842985.246 6 21347833.736 21347832.245 21347833.099
+ 45.700 37.100
+ -19046924.384 7 -14841753.935 7 21097395.627 21097394.524 21097394.984
+ 46.300 44.900
+ -4178790.962 4 -3256197.963 3 23890073.356 23890073.326 23890071.767
+ 27.400 18.600
+ -15456817.153 6 -12044262.144 6 21492387.370 21492388.053 21492386.557
+ 41.600 36.000
+ -24490256.556 6 -19083316.963 8 20273050.061 20273047.797 20273049.282
+ 40.800 48.400
+ 06 1 2 17 14 30.0000000 0 7G07G08G11G17G20G24G28
+ -7289121.492 6 -5679830.923 6 21980796.313 21980796.526 21980795.244
+ 40.300 37.700
+ -12519819.554 5 -9755712.964 5 22384051.852 22384052.925 22384050.915
+ 35.200 30.600
+ -16421260.415 7 -12795781.463 6 21359361.474 21359359.543 21359360.738
+ 45.600 37.000
+ -19098598.523 7 -14882019.481 7 21087562.451 21087561.339 21087561.760
+ 46.300 44.900
+ -4262928.504 4 -3321759.574 3 23874062.177 23874062.883 23874061.223
+ 28.100 20.500
+ -15534560.308 6 -12104841.167 6 21477593.362 21477594.091 21477592.438
+ 41.500 36.600
+ -24494346.921 6 -19086504.264 8 20272271.737 20272269.499 20272270.842
+ 40.700 48.500
+ 06 1 2 17 15 0.0000000 0 7G07G08G11G17G20G24G28
+ -7350095.407 6 -5727343.039 6 21969193.405 21969193.634 21969192.242
+ 40.200 37.900
+ -12417398.636 5 -9675904.529 5 22403542.085 22403542.902 22403541.148
+ 34.700 30.800
+ -16360249.025 7 -12748240.139 6 21370971.656 21370969.877 21370970.955
+ 45.800 37.000
+ -19149979.369 7 -14922056.493 7 21077784.991 21077783.754 21077784.290
+ 46.300 44.800
+ -4346826.630 4 -3387134.611 3 23858096.908 23858097.258 23858095.880
+ 28.800 21.100
+ -15611879.151 6 -12165089.563 6 21462880.204 21462880.730 21462879.261
+ 41.800 36.700
+ -24497996.823 6 -19089348.344 8 20271577.140 20271574.972 20271576.245
+ 40.700 48.500
+ 06 1 2 17 15 30.0000000 0 7G07G08G11G17G20G24G28
+ -7410869.363 6 -5774699.344 6 21957628.485 21957628.894 21957627.499
+ 40.600 38.600
+ -12314667.437 5 -9595854.304 5 22423091.071 22423092.098 22423090.195
+ 34.800 30.400
+ -16298806.560 7 -12700362.900 6 21382663.608 21382662.020 21382662.946
+ 45.600 36.500
+ -19201066.677 7 -14961864.769 7 21068063.209 21068062.205 21068062.639
+ 46.100 45.100
+ -4430481.730 4 -3452320.273 3 23842177.214 23842178.001 23842176.409
+ 27.400 19.300
+ -15688772.142 6 -12225006.127 6 21448247.837 21448248.308 21448246.900
+ 41.800 36.200
+ -24501204.969 6 -19091848.198 8 20270966.957 20270964.452 20270965.920
+ 41.000 48.500
+ 06 1 2 17 16 0.0000000 0 7G07G08G11G17G20G24G28
+ -7471443.027 6 -5821899.569 6 21946101.470 21946101.959 21946100.467
+ 40.800 37.900
+ -12211628.858 5 -9515564.565 5 22442698.978 22442699.947 22442697.971
+ 35.100 30.200
+ -16236935.493 7 -12652151.700 6 21394437.319 21394435.750 21394436.560
+ 45.300 36.700
+ -19251859.874 7 -15001443.871 7 21058397.710 21058396.653 21058396.988
+ 46.300 45.300
+ -4513890.511 4 -3517314.098 2 23826306.367 23826305.715 23826304.679
+ 28.600 15.100
+ -15765237.231 7 -12284589.272 6 21433696.746 21433697.497 21433695.988
+ 42.000 36.500
+ -24503970.450 6 -19094003.124 8 20270440.537 20270438.250 20270439.660
+ 40.700 48.500
+ 06 1 2 17 16 30.0000000 0 7G07G08G11G17G20G24G28
+ -7531816.071 6 -5868943.470 6 21934613.297 21934613.153 21934612.230
+ 41.300 38.000
+ -12108286.350 5 -9435037.993 4 22462364.562 22462365.064 22462363.517
+ 33.800 29.000
+ -16174637.307 7 -12603607.675 6 21406292.179 21406290.751 21406291.515
+ 45.600 36.700
+ -19302358.665 7 -15040793.567 7 21048787.945 21048787.144 21048787.278
+ 46.200 45.400
+ -4597050.339 4 -3582113.888 2 23810481.252 23810480.853 23810479.398
+ 28.400 17.800
+ -15841272.295 7 -12343837.321 6 21419227.908 21419228.538 21419227.102
+ 42.100 37.100
+ -24506292.172 6 -19095812.261 8 20269998.807 20269996.416 20269997.836
+ 40.900 48.400
+ 06 1 2 17 17 0.0000000 0 7G07G08G11G17G20G24G28
+ -7591988.313 6 -5915830.904 6 21923162.939 21923162.907 21923161.627
+ 40.700 38.100
+ -12004642.598 5 -9354276.699 4 22482086.920 22482088.023 22482086.051
+ 34.100 28.800
+ -16111915.189 7 -12554733.318 6 21418227.774 21418226.348 21418227.222
+ 45.900 36.600
+ -19352562.572 7 -15079913.483 7 21039234.549 21039233.542 21039233.931
+ 46.200 45.400
+ -4679957.711 4 -3646716.969 3 23794703.323 23794704.578 23794702.732
+ 28.800 20.500
+ -15916875.412 7 -12402748.812 6 21404841.465 21404841.775 21404840.493
+ 42.400 37.200
+ -24508169.202 6 -19097274.886 8 20269641.585 20269639.146 20269640.619
+ 40.900 48.300
+ 06 1 2 17 17 30.0000000 0 7G07G08G11G17G20G24G28
+ -7651959.505 6 -5962561.668 6 21911750.507 21911750.369 21911749.384
+ 40.900 37.600
+ -11900700.995 5 -9273283.303 4 22501866.459 22501867.571 22501865.420
+ 33.500 29.200
+ -16048771.037 7 -12505530.094 6 21430244.087 21430242.412 21430243.404
+ 45.900 36.600
+ -19402471.465 7 -15118803.522 7 21029737.234 21029736.229 21029736.698
+ 46.400 45.500
+ -4762609.464 4 -3711120.893 2 23778975.541 23778975.505 23778974.143
+ 29.500 17.000
+ -15992044.804 7 -12461322.328 6 21390537.041 21390537.412 21390536.082
+ 42.300 37.100
+ -24509600.684 6 -19098390.331 8 20269369.150 20269366.776 20269368.230
+ 40.700 48.300
+ 06 1 2 17 18 0.0000000 0 7G07G08G11G17G20G24G28
+ -7711729.381 6 -6009135.563 6 21900376.585 21900376.929 21900375.421
+ 40.900 38.600
+ -11796464.956 5 -9192060.463 4 22521702.024 22521703.257 22521701.191
+ 34.700 29.500
+ -15985206.510 7 -12455999.307 6 21442340.087 21442338.144 21442339.339
+ 46.000 36.400
+ -19452084.612 7 -15157463.098 7 21020296.223 21020295.181 21020295.567
+ 46.600 45.600
+ -4845002.623 4 -3775323.326 3 23763295.778 23763297.402 23763295.708
+ 29.900 19.300
+ -16066778.719 7 -12519556.522 6 21376315.393 21376315.878 21376314.577
+ 42.400 36.700
+ -24510585.454 6 -19099157.688 8 20269181.742 20269179.404 20269180.848
+ 40.600 48.300
+ 06 1 2 17 18 30.0000000 0 7G07G08G11G17G20G24G28
+ -7771297.567 6 -6055552.296 6 21889041.136 21889041.310 21889040.048
+ 41.000 37.900
+ -11691937.229 5 -9110610.349 4 22541593.863 22541594.098 22541592.678
+ 34.000 29.000
+ -15921224.288 7 -12406143.034 6 21454515.489 21454513.506 21454514.773
+ 46.000 36.100
+ -19501401.910 7 -15195892.150 7 21010911.220 21010910.356 21010910.778
+ 46.500 45.600
+ -4927133.949 4 -3839321.737 3 23747667.014 23747668.409 23747666.392
+ 28.600 18.600
+ -16141075.309 7 -12577449.939 6 21362177.436 21362177.776 21362176.445
+ 42.300 37.700
+ -24511122.821 6 -19099576.417 8 20269079.703 20269077.228 20269078.659
+ 40.700 48.200
+ 06 1 2 17 19 0.0000000 0 7G07G08G11G17G20G24G28
+ -7830663.944 6 -6101811.772 6 21877744.143 21877743.884 21877742.930
+ 41.500 37.700
+ -11587121.681 5 -9028935.952 5 22561538.847 22561540.002 22561537.956
+ 33.100 30.200
+ -15856826.379 7 -12355962.858 6 21466770.091 21466768.264 21466769.327
+ 45.700 36.500
+ -19550423.185 7 -15234090.526 7 21001582.869 21001581.936 21001582.381
+ 46.500 45.700
+ -5009000.487 4 -3903113.814 3 23732089.315 23732089.603 23732087.483
+ 26.800 21.600
+ -16214932.807 7 -12635001.217 6 21348122.549 21348123.147 21348121.834
+ 42.700 37.500
+ -24511211.948 6 -19099645.870 8 20269062.624 20269060.188 20269061.699
+ 40.600 48.200
+ 06 1 2 17 19 30.0000000 0 7G07G08G11G17G20G24G28
+ -7889828.120 6 -6147913.698 6 21866485.467 21866485.686 21866484.282
+ 41.300 38.600
+ -11482021.025 5 -8947039.411 5 22581538.876 22581540.127 22581538.062
+ 34.500 30.100
+ -15792014.899 7 -12305460.416 6 21479103.046 21479101.403 21479102.346
+ 45.300 36.200
+ -19599148.047 7 -15272057.933 7 20992311.170 20992309.862 20992310.472
+ 46.900 45.700
+ -5090598.684 4 -3966696.816 3 23716560.308 23716561.899 23716559.938
+ 27.900 19.900
+ -16288349.298 7 -12692208.843 6 21334152.135 21334152.539 21334151.124
+ 42.600 37.600
+ -24510851.685 6 -19099365.142 8 20269131.069 20269128.744 20269130.115
+ 40.600 48.200
+ 06 1 2 17 20 0.0000000 0 7G07G08G11G17G20G24G28
+ -7948789.731 6 -6193857.775 6 21855265.584 21855265.634 21855264.275
+ 41.200 38.500
+ -11376638.733 5 -8864923.399 4 22601592.987 22601593.749 22601591.895
+ 34.100 29.500
+ -15726792.311 7 -12254637.637 6 21491514.467 21491512.859 21491513.742
+ 45.100 36.200
+ -19647576.038 7 -15309794.014 7 20983095.137 20983094.222 20983094.697
+ 46.600 45.700
+ -5171925.680 4 -4030068.476 3 23701085.317 23701085.974 23701084.181
+ 29.900 19.300
+ -16361322.973 7 -12749071.429 6 21320265.121 21320266.139 21320264.556
+ 42.900 37.700
+ -24510041.090 6 -19098733.510 8 20269285.304 20269283.101 20269284.374
+ 40.600 48.200
+ 06 1 2 17 20 30.0000000 0 7G07G08G11G17G20G24G28
+ -8007548.645 6 -6239643.912 6 21844084.129 21844083.963 21844083.004
+ 41.900 38.500
+ -11270977.482 5 -8782590.012 4 22621699.667 22621700.262 22621698.477
+ 33.600 28.100
+ -15661160.657 7 -12203496.100 6 21504004.016 21504002.071 21504003.292
+ 45.300 36.000
+ -19695706.767 7 -15347298.458 7 20973936.063 20973935.160 20973935.633
+ 46.400 45.500
+ -5252978.371 4 -4093226.404 3 23685661.609 23685661.939 23685660.457
+ 28.800 19.900
+ -16433851.855 7 -12805587.430 6 21306463.847 21306464.344 21306462.813
+ 42.800 38.300
+ -24508779.517 6 -19097750.464 8 20269525.249 20269523.150 20269524.313
+ 40.500 48.300
+ 06 1 2 17 21 0.0000000 0 7G07G08G11G17G20G24G28
+ -8066104.565 7 -6285271.868 6 21832941.379 21832941.524 21832940.189
+ 42.000 39.300
+ -11165041.015 5 -8700042.181 4 22641858.227 22641859.481 22641857.386
+ 33.000 28.600
+ -15595121.985 7 -12152037.402 6 21516570.531 21516568.902 21516569.869
+ 45.400 36.300
+ -19743540.120 7 -15384571.176 7 20964834.006 20964832.797 20964833.396
+ 46.600 45.600
+ -5333753.520 4 -4156168.061 2 23670290.630 23670290.379 23670289.276
+ 28.800 17.000
+ -16505934.107 7 -12861755.390 6 21292746.354 21292747.574 21292745.713
+ 42.700 38.300
+ -24507065.787 6 -19096415.090 8 20269851.367 20269849.216 20269850.497
+ 40.400 48.200
+ 06 1 2 17 21 30.0000000 0 7G07G08G11G17G20G24G28
+ -8124457.275 7 -6330741.482 6 21821837.078 21821837.123 21821835.998
+ 42.100 39.100
+ -11058832.576 5 -8617282.429 4 22662069.647 22662070.589 22662068.257
+ 32.400 28.800
+ -15528678.998 7 -12100263.651 6 21529214.190 21529212.740 21529213.561
+ 45.300 36.200
+ -19791075.616 7 -15421611.805 7 20955788.205 20955787.095 20955787.580
+ 46.600 45.800
+ -5414247.988 4 -4218890.999 3 23654973.723 23654973.283 23654972.132
+ 29.500 19.900
+ -16577568.403 7 -12917574.309 6 21279115.115 21279115.839 21279114.359
+ 43.100 37.800
+ -24504899.175 6 -19094726.824 8 20270263.729 20270261.509 20270262.839
+ 40.500 48.300
+ 06 1 2 17 22 0.0000000 0 7G07G08G11G17G20G24G28
+ -8182606.375 6 -6376052.444 6 21810771.543 21810771.562 21810770.367
+ 41.900 38.900
+ -10952355.129 5 -8534313.049 4 22682330.928 22682332.277 22682330.321
+ 33.400 27.600
+ -15461833.603 7 -12048176.333 5 21541934.539 21541932.855 21541933.828
+ 45.300 35.900
+ -19838312.857 7 -15458420.017 7 20946799.234 20946798.161 20946798.612
+ 46.500 46.000
+ -5494458.789 5 -4281392.879 3 23639709.635 23639709.406 23639708.674
+ 31.500 20.500
+ -16648752.791 7 -12973042.653 6 21265569.443 21265569.801 21265568.333
+ 42.800 37.700
+ -24502278.544 6 -19092684.774 8 20270762.376 20270760.270 20270761.504
+ 40.600 48.400
+ 06 1 2 17 22 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -157022.251 3 -122353.996 2 24410856.558 24410857.366 24410855.441
+ 20.500 12.600
+ -8240551.746 6 -6421204.655 6 21799745.268 21799745.040 21799743.865
+ 41.900 38.900
+ -10845611.750 5 -8451136.455 4 22702644.245 22702644.935 22702643.028
+ 32.400 28.800
+ -15394587.781 7 -11995776.999 6 21554730.845 21554729.458 21554730.167
+ 45.100 36.200
+ -19885252.100 7 -15494996.026 7 20937866.938 20937865.851 20937866.406
+ 46.600 46.100
+ -5574382.976 5 -4343671.414 3 23624500.128 23624500.732 23624499.260
+ 30.200 19.900
+ -16719485.463 7 -13028158.999 6 21252108.852 21252109.900 21252108.151
+ 42.600 38.300
+ -24499203.130 6 -19090288.346 8 20271347.535 20271345.470 20271346.663
+ 40.700 48.200
+ 06 1 2 17 23 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -274685.101 3 -214039.187 1 24388464.572 24388468.476 24388464.375
+ 23.400 11.000
+ -8298292.887 7 -6466197.733 6 21788757.239 21788756.992 21788756.077
+ 42.300 38.700
+ -10738606.162 5 -8367755.554 4 22723006.570 22723007.779 22723005.465
+ 31.600 29.200
+ -15326943.886 7 -11943067.479 5 21567602.789 21567601.554 21567602.193
+ 44.700 35.700
+ -19931892.241 7 -15531338.973 7 20928991.588 20928990.434 20928991.060
+ 46.800 45.900
+ -5654016.980 4 -4405723.857 3 23609345.637 23609346.804 23609344.609
+ 29.200 19.300
+ -16789764.726 7 -13082922.037 6 21238735.443 21238736.231 21238734.650
+ 43.100 38.500
+ -24495672.293 6 -19087537.051 8 20272019.650 20272017.296 20272018.700
+ 40.600 48.100
+ 06 1 2 17 23 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -392256.652 3 -305653.273 2 24366092.277 24366094.651 24366091.307
+ 23.800 15.100
+ -8355829.677 7 -6511031.584 6 21777808.196 21777808.130 21777807.072
+ 42.000 38.600
+ -10631341.374 5 -8284172.691 4 22743417.823 22743419.528 22743417.008
+ 32.100 28.600
+ -15258904.294 7 -11890049.624 5 21580550.908 21580548.989 21580550.076
+ 44.800 35.300
+ -19978233.098 7 -15567448.714 7 20920173.299 20920172.002 20920172.678
+ 46.600 46.000
+ -5733357.729 4 -4467547.769 3 23594248.181 23594248.575 23594247.040
+ 29.700 19.900
+ -16859588.736 7 -13137330.331 6 21225448.632 21225449.065 21225447.524
+ 42.700 38.300
+ -24491684.959 6 -19084430.040 8 20272778.200 20272776.055 20272777.346
+ 40.600 48.100
+ 06 1 2 17 24 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -509734.530 3 -397194.317 3 24343736.026 24343739.533 24343735.598
+ 18.600 21.100
+ -8413161.830 7 -6555705.969 6 21766898.075 21766898.230 21766896.969
+ 42.000 39.000
+ -10523820.269 5 -8200390.080 4 22763879.189 22763880.120 22763877.986
+ 32.600 28.800
+ -15190471.271 7 -11836725.199 5 21593572.961 21593571.467 21593572.331
+ 44.800 35.900
+ -20024274.535 7 -15603325.143 7 20911411.914 20911410.631 20911411.229
+ 46.800 46.100
+ -5812402.312 5 -4529140.867 3 23579206.276 23579206.727 23579205.051
+ 30.800 18.600
+ -16928956.263 7 -13191382.919 6 21212247.697 21212248.791 21212247.174
+ 43.100 38.400
+ -24487240.459 6 -19080966.797 8 20273624.103 20273621.855 20273623.113
+ 40.500 48.100
+ 06 1 2 17 24 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -627116.534 3 -488660.722 3 24321399.635 24321402.178 24321398.388
+ 21.600 18.600
+ -8470289.013 7 -6600220.640 6 21756027.310 21756027.202 21756026.201
+ 42.200 39.000
+ -10416046.551 5 -8116410.625 4 22784387.637 22784388.781 22784386.803
+ 32.100 28.100
+ -15121647.143 7 -11783096.020 5 21606669.649 21606668.183 21606669.119
+ 44.800 34.900
+ -20070016.128 7 -15638967.929 7 20902707.477 20902706.251 20902706.910
+ 46.800 46.100
+ -5891147.604 5 -4590500.762 3 23564222.724 23564222.061 23564221.105
+ 31.300 21.600
+ -16997865.446 7 -13245078.364 6 21199135.076 21199135.783 21199134.267
+ 43.200 38.500
+ -24482338.028 6 -19077146.727 8 20274556.883 20274554.817 20274556.047
+ 40.700 48.100
+ 06 1 2 17 25 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -744400.441 2 -580050.609 3 24299081.022 24299084.058 24299080.269
+ 17.800 18.600
+ -8527211.023 7 -6644575.449 6 21745195.406 21745195.426 21745194.407
+ 42.600 39.500
+ -10308023.505 5 -8032236.890 4 22804943.988 22804944.940 22804942.858
+ 32.600 27.600
+ -15052433.892 7 -11729163.623 5 21619840.921 21619839.148 21619840.092
+ 44.500 35.300
+ -20115457.536 7 -15674376.804 7 20894060.046 20894059.075 20894059.595
+ 46.500 46.100
+ -5969590.569 5 -4651625.072 3 23549294.400 23549294.936 23549293.766
+ 31.100 19.900
+ -17066314.327 7 -13298415.126 6 21186110.179 21186110.460 21186109.078
+ 43.200 38.400
+ -24476976.869 6 -19072969.205 8 20275577.292 20275575.025 20275576.302
+ 40.600 48.100
+ 06 1 2 17 25 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -861583.895 3 -671362.269 3 24276781.491 24276784.166 24276781.428
+ 22.600 20.500
+ -8583927.494 7 -6688770.082 6 21734402.491 21734402.691 21734401.360
+ 42.500 39.800
+ -10199754.014 5 -7947871.125 4 22825547.056 22825548.036 22825546.105
+ 32.700 27.100
+ -14982833.944 7 -11674929.905 5 21633085.100 21633083.488 21633084.427
+ 44.700 35.300
+ -20160598.775 7 -15709551.782 7 20885469.907 20885469.000 20885469.451
+ 46.600 46.200
+ -6047727.976 5 -4712511.264 3 23534425.934 23534425.186 23534424.431
+ 31.500 19.300
+ -17134301.468 7 -13351392.088 6 21173172.073 21173172.811 21173171.295
+ 43.400 38.500
+ -24471156.074 6 -19068433.524 8 20276684.868 20276682.765 20276683.910
+ 40.700 48.100
+ 06 1 2 17 26 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -978664.599 3 -762593.806 3 24254501.090 24254504.958 24254500.917
+ 22.100 21.600
+ -8640438.180 7 -6732804.369 6 21723649.001 21723649.124 21723647.827
+ 42.200 40.000
+ -10091241.289 5 -7863315.829 4 22846195.873 22846197.335 22846195.350
+ 31.300 27.400
+ -14912849.512 7 -11620396.589 5 21646402.868 21646401.093 21646402.180
+ 44.600 35.200
+ -20205439.251 7 -15744492.404 7 20876937.329 20876936.100 20876936.789
+ 46.900 46.400
+ -6125556.827 5 -4773157.053 3 23519614.564 23519614.938 23519613.456
+ 30.800 18.600
+ -17201825.273 7 -13404008.012 6 21160322.873 21160323.489 21160322.033
+ 43.700 38.900
+ -24464874.829 6 -19063539.053 8 20277880.228 20277878.047 20277879.245
+ 40.600 48.200
+ 06 1 2 17 26 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -1095640.347 3 -853743.541 3 24232241.200 24232244.323 24232240.901
+ 22.100 21.100
+ -8696742.943 7 -6776678.186 6 21712934.491 21712934.726 21712933.314
+ 42.300 40.200
+ -9982488.901 5 -7778573.794 4 22866891.438 22866892.362 22866890.430
+ 32.100 27.400
+ -14842483.053 7 -11565565.587 5 21659793.176 21659791.596 21659792.484
+ 44.500 34.900
+ -20249978.624 7 -15779198.407 7 20868461.824 20868460.651 20868461.182
+ 46.800 46.400
+ -6203074.048 5 -4833559.992 3 23504863.938 23504863.765 23504862.945
+ 30.400 18.600
+ -17268883.919 7 -13456261.470 6 21147562.235 21147562.714 21147561.240
+ 43.500 38.900
+ -24458132.273 6 -19058285.116 8 20279163.146 20279161.033 20279162.293
+ 40.400 48.100
+ 06 1 2 17 27 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1212508.869 3 -944809.668 3 24210001.910 24210005.104 24210001.756
+ 23.800 21.600
+ -8752841.334 7 -6820391.196 6 21702259.400 21702259.318 21702258.264
+ 42.300 39.700
+ -9873499.493 5 -7693647.050 4 22887631.255 22887632.482 22887630.318
+ 31.800 26.800
+ -14771736.543 7 -11510438.441 5 21673255.578 21673253.793 21673255.044
+ 44.300 34.600
+ -20294216.649 7 -15813669.589 7 20860043.414 20860042.423 20860042.914
+ 46.500 46.400
+ -6280276.437 5 -4893717.621 3 23490173.230 23490172.760 23490171.827
+ 30.200 19.900
+ -17335476.105 7 -13508151.449 6 21134890.080 21134890.453 21134889.121
+ 43.800 38.900
+ -24450927.847 6 -19052671.282 7 20280534.114 20280532.021 20280533.249
+ 40.600 47.900
+ 06 1 2 17 27 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -1329267.829 3 -1035790.401 3 24187783.671 24187786.540 24187783.210
+ 21.600 19.300
+ -8808733.153 7 -6863943.244 6 21691623.490 21691623.491 21691622.362
+ 42.500 39.500
+ -9764277.178 4 -7608538.815 4 22908415.904 22908416.877 22908414.677
+ 29.500 25.300
+ -14700612.266 7 -11455016.937 5 21686790.542 21686788.412 21686789.724
+ 44.300 34.700
+ -20338152.810 7 -15847905.556 7 20851682.517 20851681.584 20851682.034
+ 46.800 46.500
+ -6357161.057 5 -4953627.623 3 23475541.785 23475541.895 23475540.961
+ 31.800 19.900
+ -17401600.294 7 -13559676.763 6 21122306.671 21122307.338 21122305.914
+ 43.700 38.900
+ -24443260.757 6 -19046696.932 8 20281993.052 20281991.137 20281992.191
+ 40.600 48.200
+ 06 1 2 17 28 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1445915.207 4 -1126684.198 2 24165586.131 24165588.899 24165586.226
+ 24.200 17.800
+ -8864418.126 7 -6907334.115 6 21681027.022 21681026.930 21681025.947
+ 42.800 40.000
+ -9654824.715 4 -7523251.264 4 22929243.178 22929244.714 22929242.410
+ 29.700 27.100
+ -14629112.631 7 -11399302.946 5 21700396.258 21700394.507 21700395.519
+ 44.000 34.800
+ -20381787.106 7 -15881906.302 7 20843379.479 20843378.374 20843378.757
+ 46.700 46.800
+ -6433724.930 5 -5013287.721 3 23460971.739 23460972.308 23460970.647
+ 30.100 19.900
+ -17467254.655 7 -13610835.974 6 21109813.152 21109813.812 21109812.415
+ 43.500 39.000
+ -24435130.376 6 -19040361.574 7 20283540.269 20283538.236 20283539.365
+ 40.600 47.900
+ 06 1 2 17 28 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -1562448.559 3 -1217489.178 2 24143410.192 24143412.833 24143409.427
+ 22.600 12.600
+ -8919895.862 7 -6950563.498 6 21670470.009 21670469.817 21670468.834
+ 43.200 39.800
+ -9545144.925 5 -7437786.572 4 22950115.053 22950116.490 22950114.077
+ 31.600 26.500
+ -14557239.797 7 -11343298.154 5 21714073.093 21714071.469 21714072.371
+ 44.000 34.700
+ -20425118.845 7 -15915671.293 7 20835133.576 20835132.536 20835132.934
+ 46.600 46.600
+ -6509965.188 5 -5072695.647 3 23446463.934 23446464.297 23446462.677
+ 30.600 21.100
+ -17532437.824 7 -13661628.021 6 21097409.529 21097409.894 21097408.535
+ 43.600 39.200
+ -24426535.777 6 -19033664.487 7 20285175.815 20285173.625 20285174.920
+ 40.600 47.800
+ 06 1 2 17 29 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1678865.842 3 -1308203.663 1 24121256.172 24121258.913 24121256.083
+ 20.500 9.000
+ -8975166.278 7 -6993631.337 6 21659952.537 21659952.140 21659951.369
+ 43.300 39.800
+ -9435241.610 5 -7352147.686 4 22971029.360 22971030.655 22971028.161
+ 30.800 26.500
+ -14484996.703 7 -11287004.844 5 21727820.549 21727818.865 21727819.815
+ 43.900 34.700
+ -20468148.126 7 -15949200.599 7 20826945.297 20826944.335 20826944.767
+ 46.600 46.700
+ -6585878.558 5 -5131848.855 3 23432017.748 23432018.182 23432017.050
+ 31.000 19.300
+ -17597148.305 7 -13712051.738 6 21085095.587 21085095.826 21085094.621
+ 43.800 39.100
+ -24417476.312 6 -19026605.169 7 20286899.771 20286897.657 20286898.802
+ 40.300 47.900
+ 06 1 2 17 29 30.0000000 0 8G04G07G08G11G17G20G24G28
+ -1795164.752 3 -1398825.939 3 24099125.604 24099127.538 24099125.160
+ 20.500 18.600
+ -9030228.886 7 -7036537.244 6 21649474.180 21649473.808 21649473.057
+ 43.200 39.500
+ -9325117.612 5 -7266336.859 4 22991985.017 22991986.635 22991984.185
+ 31.600 27.900
+ -14412384.692 7 -11230424.069 5 21741638.103 21741636.442 21741637.392
+ 43.600 34.500
+ -20510874.448 7 -15982493.834 7 20818814.703 20818813.879 20818814.204
+ 46.700 46.900
+ -6661462.012 5 -5190745.029 3 23417635.650 23417635.157 23417634.411
+ 31.300 21.600
+ -17661384.489 7 -13762105.878 6 21072871.513 21072872.001 21072870.717
+ 43.900 39.300
+ -24407951.352 6 -19019183.125 7 20288712.251 20288710.158 20288711.358
+ 40.400 47.700
+ 06 1 2 17 30 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1911343.013 3 -1489354.237 2 24077017.272 24077019.637 24077016.609
+ 21.100 12.600
+ -9085083.524 7 -7079281.104 6 21639035.861 21639035.522 21639034.665
+ 43.300 40.200
+ -9214776.649 5 -7180356.967 4 23012981.817 23012983.696 23012981.103
+ 30.400 26.500
+ -14339406.432 7 -11173557.904 5 21755525.397 21755523.766 21755524.726
+ 43.900 34.500
+ -20553297.627 7 -16015550.844 7 20810742.116 20810740.966 20810741.524
+ 47.000 47.000
+ -6736712.220 5 -5249381.512 3 23403315.571 23403315.536 23403314.395
+ 30.800 21.600
+ -17725144.939 7 -13811789.319 6 21060738.373 21060738.858 21060737.538
+ 44.200 39.300
+ -24397960.274 6 -19011397.873 7 20290613.514 20290611.417 20290612.603
+ 40.600 47.800
+ 06 1 2 17 30 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2027398.318 3 -1579786.729 2 24054933.222 24054934.201 24054932.228
+ 22.600 17.800
+ -9139729.877 7 -7121862.658 6 21628636.809 21628636.784 21628635.719
+ 43.300 40.300
+ -9104221.484 4 -7094210.163 4 23034020.157 23034021.520 23034019.286
+ 28.400 26.800
+ -106918.687 4 -83312.600 4 24233306.138 24233307.219 24233305.390
+ 25.600 25.300
+ -14266063.925 7 -11116407.910 5 21769481.993 21769480.506 21769481.313
+ 43.700 34.700
+ -20595417.472 7 -16048371.502 7 20802726.808 20802725.663 20802726.193
+ 46.800 46.900
+ -6811626.563 5 -5307756.299 3 23389060.381 23389060.368 23389058.829
+ 31.000 22.600
+ -17788428.076 7 -13861100.833 6 21048696.140 21048696.408 21048695.301
+ 44.400 39.200
+ -24387502.157 6 -19003248.695 7 20292603.914 20292601.596 20292602.850
+ 40.300 47.700
+ 06 1 2 17 31 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2143328.438 3 -1670121.737 2 24032871.396 24032874.058 24032871.200
+ 23.800 13.900
+ -9194167.728 7 -7164281.744 6 21618277.619 21618277.607 21618276.509
+ 43.000 40.400
+ -8993455.486 4 -7007899.065 4 23055097.936 23055099.766 23055097.133
+ 29.200 25.600
+ -186578.709 3 -145385.325 4 24218147.206 24218148.815 24218146.093
+ 22.100 28.600
+ -14192360.100 7 -11058976.380 5 21783507.429 21783505.695 21783506.725
+ 43.800 34.000
+ -20637233.426 7 -16080955.349 7 20794769.249 20794768.353 20794768.812
+ 46.700 47.000
+ -6886201.805 5 -5365866.839 3 23374868.601 23374869.080 23374867.405
+ 31.000 22.600
+ -17851232.548 7 -13910039.361 6 21036744.866 21036745.042 21036743.911
+ 44.300 39.200
+ -24376576.922 6 -18994735.528 7 20294682.516 20294680.571 20294681.699
+ 40.800 47.800
+ 06 1 2 17 31 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2259131.389 4 -1760357.706 2 24010834.738 24010836.554 24010834.406
+ 27.100 15.100
+ -9248396.765 7 -7206538.121 6 21607958.239 21607958.151 21607957.154
+ 43.500 40.400
+ -8882481.751 4 -6921426.098 4 23076216.376 23076217.466 23076215.340
+ 29.900 26.200
+ -265782.570 4 -207102.552 4 24203075.991 24203075.846 24203075.069
+ 25.300 24.200
+ -14118296.655 7 -11001264.615 5 21797601.265 21797599.733 21797600.457
+ 43.300 34.500
+ -20678745.066 7 -16113302.071 7 20786870.068 20786868.997 20786869.387
+ 46.600 47.000
+ -6960434.949 5 -5423710.826 3 23360742.735 23360742.767 23360741.574
+ 31.000 21.600
+ -17913557.017 7 -13958603.860 6 21024884.720 21024885.172 21024883.889
+ 44.200 39.500
+ -24365183.358 6 -18985857.431 7 20296850.890 20296848.649 20296849.911
+ 40.600 47.400
+ 06 1 2 17 32 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2374804.636 4 -1850492.597 3 23988823.495 23988825.836 23988822.962
+ 27.900 21.100
+ -9302416.670 7 -7248631.540 6 21597678.799 21597678.334 21597677.548
+ 43.300 40.300
+ -8771303.848 4 -6834794.037 4 23097372.751 23097374.380 23097371.703
+ 29.900 27.600
+ -344528.263 4 -268462.821 3 24188090.071 24188090.793 24188089.570
+ 26.800 18.600
+ -14043875.778 7 -10943274.338 5 21811763.325 21811761.418 21811762.525
+ 43.400 34.300
+ -20719951.967 7 -16145411.334 7 20779028.780 20779027.490 20779027.934
+ 46.600 47.100
+ -7034322.946 5 -5481285.881 3 23346682.689 23346682.426 23346681.178
+ 32.100 23.000
+ -17975399.781 7 -14006793.001 6 21013116.344 21013116.861 21013115.506
+ 44.100 39.700
+ -24353320.728 6 -18976613.828 7 20299108.165 20299106.075 20299107.252
+ 40.600 47.500
+ 06 1 2 17 32 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2490346.043 4 -1940524.754 3 23966835.805 23966838.390 23966835.770
+ 25.600 21.600
+ -9356227.303 7 -7290561.881 6 21587438.692 21587438.705 21587437.581
+ 43.500 40.600
+ -8659924.669 4 -6748005.166 4 23118567.180 23118569.159 23118566.425
+ 29.700 26.800
+ -422812.649 4 -329463.631 3 24173193.667 24173194.333 24173192.650
+ 24.200 21.100
+ -13969100.067 7 -10885007.558 5 21825992.494 21825990.741 21825991.800
+ 43.500 34.000
+ -20760854.306 7 -16177283.272 7 20771244.967 20771244.138 20771244.432
+ 46.400 47.200
+ -7107862.815 5 -5538589.649 3 23332687.602 23332688.203 23332686.836
+ 32.400 23.000
+ -18036759.568 7 -14054605.800 6 21001440.057 21001440.446 21001439.239
+ 44.600 39.800
+ -24340988.717 6 -18967004.469 7 20301454.739 20301452.777 20301453.868
+ 40.600 47.500
+ 06 1 2 17 33 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2605753.418 3 -2030452.492 3 23944873.943 23944877.250 23944873.672
+ 22.600 23.000
+ -9409828.263 7 -7332328.845 6 21577238.779 21577238.669 21577237.665
+ 43.500 40.600
+ -8548347.475 4 -6661061.972 4 23139799.738 23139801.780 23139798.919
+ 28.800 27.100
+ -500633.535 3 -390103.258 2 24158384.524 24158385.158 24158383.636
+ 21.600 17.800
+ -13893972.071 7 -10826466.274 5 21840288.840 21840287.548 21840288.205
+ 43.300 34.700
+ -20801451.887 7 -16208917.733 7 20763519.632 20763518.625 20763519.212
+ 46.800 47.100
+ -7181052.197 5 -5595620.333 3 23318760.517 23318760.418 23318759.518
+ 33.000 21.100
+ -18097634.859 7 -14102041.073 6 20989856.046 20989856.218 20989855.015
+ 44.600 39.600
+ -24328186.812 6 -18957028.968 7 20303891.164 20303888.888 20303890.080
+ 40.600 47.600
+ 06 1 2 17 33 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2721024.403 3 -2120273.933 3 23922938.283 23922941.388 23922938.322
+ 21.600 21.100
+ -9463219.205 7 -7373932.159 6 21567078.755 21567078.640 21567077.626
+ 43.600 40.700
+ -8436576.049 4 -6573967.443 4 23161069.691 23161070.711 23161068.430
+ 29.000 24.900
+ -577988.165 3 -450379.568 2 24143664.496 24143665.222 24143663.609
+ 22.600 17.000
+ -13818493.830 7 -10767652.075 5 21854652.138 21854650.153 21854651.237
+ 42.800 33.900
+ -20841744.211 7 -16240314.333 7 20755852.170 20755851.211 20755851.686
+ 46.600 47.200
+ -7253887.328 5 -5652374.958 3 23304900.622 23304900.407 23304899.226
+ 31.600 21.600
+ -18158024.359 7 -14149097.811 6 20978364.152 20978364.392 20978363.354
+ 44.800 39.700
+ -24314914.344 6 -18946686.792 7 20306416.538 20306414.594 20306415.654
+ 40.900 47.400
+ 06 1 2 17 34 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2836156.717 3 -2209987.294 3 23901028.641 23901032.998 23901028.837
+ 19.300 23.400
+ -9516399.941 7 -7415371.668 6 21556958.670 21556958.846 21556957.624
+ 43.600 40.900
+ -8324613.225 5 -6486723.766 4 23182375.530 23182377.010 23182374.378
+ 30.800 25.300
+ -654873.531 4 -510290.160 2 24129033.957 24129033.841 24129033.200
+ 25.900 17.800
+ -13742667.893 7 -10708566.936 5 21869080.766 21869079.578 21869080.130
+ 42.600 34.000
+ -20881731.058 7 -16271472.899 7 20748243.247 20748241.944 20748242.600
+ 46.700 47.400
+ -7326365.323 5 -5708851.311 3 23291107.657 23291108.287 23291106.841
+ 32.400 23.400
+ -18217926.717 7 -14195774.956 6 20966965.432 20966965.277 20966964.435
+ 44.500 39.700
+ -24301170.642 6 -18935977.417 7 20309031.822 20309029.913 20309031.039
+ 40.900 47.400
+ 06 1 2 17 34 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2951148.164 3 -2299590.916 4 23879147.265 23879150.655 23879146.908
+ 18.600 24.900
+ -9569370.114 7 -7456647.109 6 21546878.903 21546878.780 21546877.683
+ 43.600 40.600
+ -8212462.141 5 -6399333.376 3 23203716.984 23203718.568 23203715.958
+ 30.100 23.400
+ -731287.204 3 -569833.230 2 24114492.440 24114492.958 24114491.585
+ 22.600 17.800
+ -13666496.404 7 -10649212.535 5 21883575.913 21883574.535 21883575.250
+ 43.000 34.300
+ -20921411.952 7 -16302393.058 7 20740692.124 20740690.929 20740691.629
+ 47.000 47.500
+ -7398483.476 5 -5765047.260 3 23277384.313 23277384.918 23277383.377
+ 32.300 23.800
+ -18277340.312 7 -14242071.244 6 20955659.050 20955659.235 20955658.137
+ 44.500 39.600
+ -24286955.180 6 -18924900.435 7 20311737.179 20311735.032 20311736.196
+ 40.900 47.400
+ 06 1 2 17 35 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3065996.477 4 -2389082.954 3 23857293.070 23857295.132 23857292.665
+ 24.600 19.900
+ -9622129.520 7 -7497758.314 6 21536839.106 21536838.967 21536838.031
+ 43.800 40.700
+ -8100125.972 4 -6311798.788 4 23225094.129 23225095.203 23225093.008
+ 28.100 24.200
+ -807226.979 3 -629007.063 2 24100042.041 24100042.288 24100040.970
+ 22.600 17.000
+ -13589981.445 7 -10589590.484 5 21898136.075 21898134.645 21898135.476
+ 42.700 33.500
+ -20960786.688 7 -16333074.653 7 20733199.150 20733198.247 20733198.793
+ 47.100 47.600
+ -7470238.643 5 -5820960.360 3 23263731.042 23263730.068 23263729.298
+ 32.700 22.600
+ -18336264.103 7 -14287985.862 6 20944446.159 20944446.485 20944445.232
+ 44.400 40.100
+ -24272267.714 6 -18913455.664 7 20314531.990 20314529.979 20314531.064
+ 40.800 47.300
+ 06 1 2 17 35 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3180699.358 4 -2478461.712 2 23835465.886 23835467.835 23835465.277
+ 24.200 17.000
+ -9674677.823 7 -7538705.028 6 21526839.492 21526839.306 21526838.372
+ 43.500 40.600
+ -7987608.291 4 -6224122.740 3 23246505.405 23246506.758 23246504.319
+ 27.900 23.800
+ -882689.888 3 -687809.275 1 24085681.659 24085682.545 24085680.809
+ 21.600 9.000
+ -13513125.530 7 -10529702.770 5 21912761.873 21912760.298 21912760.991
+ 42.800 33.800
+ -20999854.839 7 -16363517.349 7 20725764.855 20725763.712 20725764.249
+ 46.600 47.400
+ -7541628.021 5 -5876588.418 3 23250145.087 23250145.449 23250143.844
+ 31.800 23.000
+ -18394696.654 7 -14333517.692 6 20933326.714 20933327.171 20933325.839
+ 44.300 40.000
+ -24257107.289 6 -18901642.349 7 20317416.900 20317414.953 20317416.025
+ 40.900 47.100
+ 06 1 2 17 36 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3295254.664 4 -2567725.516 3 23813665.869 23813668.566 23813666.048
+ 25.300 19.900
+ -9727014.715 7 -7579486.996 6 21516880.276 21516880.194 21516879.083
+ 43.700 41.200
+ -7874912.070 4 -6136307.618 4 23267951.235 23267952.551 23267949.754
+ 28.400 25.600
+ -957673.236 3 -746237.978 1 24071412.318 24071412.685 24071411.532
+ 22.600 9.000
+ -13435930.877 7 -10469551.102 5 21927451.426 21927449.741 21927450.632
+ 42.800 33.600
+ -21038616.374 7 -16393721.123 7 20718388.754 20718387.614 20718388.047
+ 46.800 47.500
+ -7612648.507 5 -5931929.022 4 23236629.945 23236630.437 23236628.628
+ 31.800 24.200
+ -18452636.744 7 -14378665.776 6 20922301.260 20922301.377 20922300.213
+ 44.500 40.200
+ -24241473.445 6 -18889460.139 7 20320392.127 20320390.031 20320391.143
+ 41.100 47.300
+ 06 1 2 17 36 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3409660.134 4 -2656872.470 2 23791896.139 23791897.443 23791895.377
+ 24.200 17.800
+ -9779139.970 7 -7620104.057 6 21506960.870 21506960.768 21506959.833
+ 43.900 41.100
+ -7762040.755 4 -6048356.039 4 23289429.255 23289431.415 23289428.223
+ 28.400 25.900
+ -1032174.834 4 -804291.104 3 24057235.852 24057236.038 24057235.031
+ 27.900 18.600
+ -13358400.010 7 -10409137.439 5 21942204.902 21942203.074 21942204.199
+ 42.800 32.800
+ -21077070.825 7 -16423685.610 7 20711071.077 20711070.019 20711070.386
+ 46.600 47.600
+ -7683296.998 5 -5986979.766 3 23223186.326 23223186.444 23223185.229
+ 32.700 23.000
+ -18510083.205 7 -14423429.219 6 20911369.410 20911369.633 20911368.533
+ 44.600 40.200
+ -24225365.773 6 -18876908.711 7 20323457.204 20323455.239 20323456.325
+ 41.100 47.200
+ 06 1 2 17 37 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3523913.491 4 -2745900.915 2 23770153.589 23770155.563 23770153.107
+ 24.200 17.800
+ -9831053.285 7 -7660555.975 6 21497082.270 21497082.016 21497081.134
+ 43.900 41.200
+ -7648997.190 4 -5960270.243 4 23310941.711 23310942.778 23310940.572
+ 29.000 24.900
+ -1106192.186 4 -861966.926 2 24043150.449 24043149.813 24043149.551
+ 24.200 13.900
+ -13280534.968 7 -10348463.392 5 21957022.463 21957020.527 21957021.578
+ 42.900 33.200
+ -21115218.068 7 -16453410.715 7 20703811.645 20703810.803 20703811.143
+ 46.700 47.700
+ -7753570.886 5 -6041738.613 3 23209813.587 23209813.887 23209812.471
+ 32.800 23.800
+ -18567034.843 7 -14467807.086 6 20900531.992 20900532.055 20900531.035
+ 44.600 40.400
+ -24208784.049 6 -18863987.886 7 20326612.580 20326610.571 20326611.758
+ 41.300 47.200
+ 06 1 2 17 37 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3638012.499 4 -2834809.087 3 23748440.859 23748443.217 23748441.080
+ 24.900 21.100
+ -9882754.380 7 -7700842.523 6 21487243.714 21487243.621 21487242.559
+ 43.700 41.100
+ -7535784.907 4 -5872052.981 4 23332484.487 23332486.774 23332483.704
+ 27.600 25.600
+ -1179722.568 4 -919263.365 4 24029158.298 24029159.769 24029157.306
+ 26.800 24.900
+ -13202338.157 7 -10287530.830 5 21971902.602 21971900.718 21971901.914
+ 42.700 32.800
+ -21153057.796 7 -16482896.198 7 20696611.157 20696610.089 20696610.604
+ 46.600 47.700
+ -7823467.344 5 -6096203.344 3 23196512.795 23196512.799 23196511.567
+ 32.700 23.800
+ -18623490.294 7 -14511798.313 6 20889788.538 20889788.981 20889787.656
+ 44.500 40.200
+ -24191727.414 6 -18850696.999 7 20329858.357 20329856.281 20329857.510
+ 41.400 47.000
+ 06 1 2 17 38 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3751955.130 4 -2923595.418 2 23726758.771 23726760.241 23726758.325
+ 26.500 17.000
+ -9934242.968 7 -7740963.472 6 21477445.516 21477445.812 21477444.402
+ 43.600 41.400
+ -7422406.858 4 -5783706.528 4 23354060.146 23354061.507 23354059.256
+ 29.700 24.900
+ -1252763.515 4 -976178.365 3 24015258.869 24015259.465 24015257.909
+ 26.800 23.000
+ -13123812.093 7 -10226341.705 5 21986845.580 21986843.911 21986844.838
+ 42.500 33.500
+ -21190589.775 7 -16512141.876 7 20689468.865 20689467.952 20689468.378
+ 46.800 47.700
+ -7892983.261 5 -6150371.532 4 23183284.653 23183284.571 23183283.179
+ 33.200 24.200
+ -18679448.448 7 -14555402.037 6 20879140.019 20879140.464 20879139.103
+ 44.600 40.700
+ -24174195.410 6 -18837035.703 7 20333194.621 20333192.486 20333193.683
+ 41.200 46.900
+ 06 1 2 17 38 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3865738.925 4 -3012257.968 3 23705106.887 23705108.176 23705106.229
+ 26.500 21.100
+ -9985518.649 7 -7780918.528 6 21467688.666 21467688.111 21467687.415
+ 44.000 41.200
+ -7308866.558 4 -5695233.687 4 23375666.442 23375667.624 23375665.390
+ 28.600 25.300
+ -1325312.478 5 -1032710.002 3 24001453.416 24001453.402 24001452.595
+ 30.200 23.400
+ -13044958.907 7 -10164897.688 5 22001851.050 22001849.070 22001850.342
+ 42.600 33.400
+ -21227813.864 7 -16541147.647 7 20682385.588 20682384.492 20682385.027
+ 46.800 47.900
+ -7962115.873 5 -6204241.043 4 23170129.816 23170128.876 23170128.136
+ 34.000 24.200
+ -18734907.995 7 -14598617.237 6 20868586.322 20868586.817 20868585.474
+ 44.400 40.500
+ -24156187.798 6 -18823003.801 7 20336621.236 20336619.221 20336620.416
+ 41.100 46.900
+ 06 1 2 17 39 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3979361.817 4 -3100795.189 3 23683484.197 23683486.250 23683483.498
+ 24.900 18.600
+ -10036581.211 7 -7820707.517 6 21457971.521 21457971.219 21457970.342
+ 44.100 41.200
+ -7195166.815 4 -5606636.579 3 23397302.535 23397304.413 23397301.274
+ 25.300 23.800
+ -1397366.878 4 -1088856.328 4 23987741.716 23987742.926 23987740.978
+ 29.900 27.100
+ -12965780.847 7 -10103200.520 5 22016918.216 22016916.109 22016917.394
+ 42.300 33.100
+ -21264729.328 7 -16569912.924 8 20675360.781 20675359.720 20675360.290
+ 47.000 48.000
+ -8030862.267 5 -6257809.613 3 23157046.075 23157046.670 23157045.424
+ 33.500 23.800
+ -18789867.631 7 -14641442.894 6 20858128.005 20858128.244 20858127.102
+ 44.400 40.700
+ -24137704.050 6 -18808600.889 7 20340138.918 20340136.650 20340137.869
+ 41.200 46.900
+ 06 1 2 17 39 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4092821.724 3 -3189205.357 3 23661893.413 23661895.903 23661893.045
+ 23.400 23.000
+ -10087430.370 7 -7860330.216 6 21448295.190 21448294.909 21448294.004
+ 43.800 41.400
+ -7081311.148 4 -5517917.977 3 23418968.865 23418970.071 23418967.717
+ 25.900 22.100
+ -1468924.752 4 -1144615.688 4 23974124.426 23974125.547 23974123.589
+ 26.200 27.100
+ -12886280.397 7 -10041252.141 5 22032046.476 22032044.777 22032045.728
+ 42.100 32.800
+ -21301336.185 7 -16598437.729 7 20668394.781 20668393.566 20668394.121
+ 46.900 47.800
+ -8099219.379 5 -6311074.835 3 23144038.807 23144038.217 23144037.375
+ 33.100 22.100
+ -18844326.235 7 -14683878.136 6 20847764.906 20847765.119 20847763.997
+ 44.600 40.500
+ -24118743.907 6 -18793826.757 7 20343746.844 20343744.695 20343745.810
+ 41.100 47.000
+ 06 1 2 17 40 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4206116.032 4 -3277486.539 3 23640334.471 23640336.451 23640333.847
+ 25.300 23.800
+ -10138065.849 7 -7899786.417 6 21438659.552 21438659.202 21438658.340
+ 43.800 41.200
+ -6967302.374 4 -5429080.051 3 23440663.686 23440665.612 23440662.741
+ 26.500 23.400
+ -1539983.392 4 -1199986.063 4 23960602.463 23960604.330 23960601.647
+ 27.900 29.900
+ -12806459.709 7 -9979054.225 5 22047235.654 22047233.924 22047235.004
+ 42.100 32.700
+ -21337634.141 7 -16626721.835 7 20661487.479 20661486.130 20661486.944
+ 47.000 47.700
+ -8167184.509 5 -6364034.650 3 23131105.167 23131104.488 23131103.773
+ 32.100 22.600
+ -18898282.880 7 -14725922.243 6 20837497.318 20837497.534 20837496.348
+ 44.600 40.700
+ -24099306.692 6 -18778680.874 7 20347445.450 20347443.425 20347444.501
+ 41.100 46.900
+ 06 1 2 17 40 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4319242.861 3 -3365637.238 4 23618806.537 23618809.118 23618806.059
+ 22.600 25.600
+ -10188487.315 7 -7939075.850 6 21429064.521 21429064.308 21429063.351
+ 43.900 41.400
+ -6853144.045 4 -5340125.641 3 23462387.633 23462388.979 23462386.488
+ 27.400 21.100
+ -1610540.583 3 -1254965.699 4 23947176.283 23947177.082 23947175.309
+ 22.600 28.100
+ -12726321.190 6 -9916608.655 5 22062485.751 22062483.927 22062484.955
+ 41.800 32.800
+ -21373622.905 7 -16654765.017 7 20654639.035 20654637.747 20654638.435
+ 47.200 47.800
+ -8234755.246 5 -6416687.101 3 23118246.477 23118246.643 23118245.622
+ 33.100 22.600
+ -18951736.418 7 -14767574.318 6 20827325.363 20827325.638 20827324.483
+ 44.800 40.700
+ -24079391.999 6 -18763162.929 7 20351234.908 20351233.064 20351233.984
+ 41.100 46.600
+ 06 1 2 17 41 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4432199.937 4 -3453655.618 4 23597312.422 23597313.761 23597311.781
+ 25.300 24.200
+ -10238694.628 7 -7978198.410 6 21419510.163 21419510.325 21419509.204
+ 44.100 41.600
+ -6738839.112 4 -5251056.934 3 23484138.405 23484140.622 23484137.826
+ 27.100 21.600
+ -1680593.800 3 -1309552.582 4 23933845.478 23933846.221 23933844.684
+ 19.300 27.100
+ -12645867.295 6 -9853917.332 5 22077795.303 22077794.202 22077794.635
+ 41.400 33.800
+ -21409302.203 7 -16682567.057 8 20647849.336 20647848.311 20647848.822
+ 47.000 48.000
+ -8301927.674 5 -6469029.214 3 23105464.691 23105464.112 23105462.982
+ 32.600 23.400
+ -19004685.330 7 -14808833.183 6 20817249.614 20817249.670 20817248.695
+ 44.900 40.500
+ -24058999.653 6 -18747272.787 7 20355115.420 20355113.605 20355114.585
+ 41.300 46.800
+ 06 1 2 17 41 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4544984.767 4 -3541539.826 3 23575849.744 23575851.538 23575849.497
+ 26.800 22.100
+ -10288687.331 7 -8017153.736 6 21409997.232 21409996.881 21409996.018
+ 44.300 41.300
+ -6624390.941 4 -5161876.622 3 23505918.210 23505920.022 23505917.170
+ 25.900 22.100
+ -1750140.475 3 -1363744.708 3 23920610.699 23920611.732 23920610.304
+ 19.900 23.800
+ -12565099.901 6 -9790981.730 5 22093164.703 22093163.633 22093164.026
+ 41.100 33.200
+ -21444671.679 7 -16710127.672 7 20641118.729 20641117.543 20641118.181
+ 47.000 47.900
+ -8368699.704 5 -6521059.347 3 23092756.959 23092757.859 23092756.990
+ 34.100 23.000
+ -19057128.687 7 -14849698.107 6 20807270.037 20807269.967 20807269.049
+ 44.900 40.600
+ -24038129.201 6 -18731010.095 7 20359087.037 20359085.133 20359086.116
+ 41.600 46.800
+ 06 1 2 17 42 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4657595.495 4 -3629288.402 3 23554420.435 23554421.970 23554420.059
+ 24.900 21.600
+ -10338465.114 7 -8055941.603 6 21400524.669 21400524.420 21400523.604
+ 44.300 41.400
+ -6509802.737 4 -5072587.237 3 23527723.025 23527725.294 23527722.225
+ 26.200 21.600
+ -1819178.217 2 -1417540.268 4 23907472.956 23907474.391 23907472.011
+ 15.100 26.200
+ -12484021.783 6 -9727803.996 5 22108593.632 22108592.268 22108592.909
+ 41.400 33.000
+ -21479731.350 7 -16737446.887 7 20634447.254 20634445.876 20634446.628
+ 47.100 47.900
+ -8435068.489 5 -6572775.256 3 23080128.186 23080128.130 23080126.966
+ 33.800 23.000
+ -19109065.358 7 -14890168.213 6 20797386.470 20797386.744 20797385.704
+ 44.900 40.900
+ -24016780.188 6 -18714374.498 7 20363149.423 20363147.714 20363148.593
+ 41.800 46.800
+ 06 1 2 17 42 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4770029.724 4 -3716899.417 4 23533025.051 23533027.119 23533024.437
+ 26.800 24.200
+ -10388027.640 7 -8094561.732 6 21391093.243 21391093.113 21391092.086
+ 44.200 41.900
+ -6395077.772 4 -4983191.252 3 23549554.828 23549557.261 23549553.929
+ 27.400 23.000
+ -1887704.560 3 -1470937.316 4 23894432.843 23894434.301 23894431.887
+ 23.000 25.300
+ -12402635.052 6 -9664385.783 5 22124080.738 22124079.794 22124080.211
+ 41.300 33.200
+ -21514480.838 7 -16764524.399 8 20627834.502 20627833.335 20627833.969
+ 47.100 48.000
+ -8501031.334 5 -6624174.853 4 23067576.585 23067575.671 23067575.236
+ 34.100 24.200
+ -19160494.527 7 -14930242.864 6 20787599.940 20787600.133 20787598.996
+ 44.700 41.000
+ -23994952.423 6 -18697365.850 7 20367303.409 20367301.451 20367302.401
+ 41.500 46.400
+ 06 1 2 17 43 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4882285.361 4 -3804371.264 2 23511663.307 23511664.473 23511662.997
+ 26.800 17.000
+ -10437374.805 7 -8133014.041 6 21381702.975 21381702.653 21381701.828
+ 44.400 41.900
+ -6280219.159 4 -4893691.107 4 23571411.561 23571413.873 23571410.835
+ 27.100 24.600
+ -1955717.003 3 -1523934.018 3 23881491.099 23881491.971 23881490.211
+ 22.100 20.500
+ -12320942.074 6 -9600728.936 5 22139626.965 22139625.448 22139626.221
+ 41.400 33.000
+ -21548919.627 7 -16791359.808 8 20621280.965 20621279.898 20621280.530
+ 46.900 48.100
+ -8566585.118 5 -6675255.702 3 23055100.846 23055101.529 23055100.404
+ 34.400 22.600
+ -19211415.282 7 -14969921.345 6 20777909.835 20777910.265 20777909.074
+ 44.800 41.100
+ -23972645.333 6 -18679983.704 7 20371548.161 20371546.306 20371547.190
+ 41.500 46.500
+ 06 1 2 17 43 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4994360.023 4 -3891702.078 3 23490335.649 23490337.832 23490335.283
+ 24.900 22.100
+ -10486506.108 7 -8171298.146 7 21372353.434 21372353.275 21372352.344
+ 44.400 42.000
+ -6165229.774 4 -4804089.095 4 23593294.179 23593295.796 23593292.795
+ 26.500 25.600
+ -2023213.853 4 -1576528.927 2 23868647.275 23868647.444 23868646.222
+ 28.800 17.800
+ -12238945.019 6 -9536835.147 5 22155229.790 22155228.959 22155229.381
+ 41.100 32.600
+ -21583047.678 7 -16817953.083 8 20614786.683 20614785.516 20614786.061
+ 46.800 48.200
+ -8631727.195 5 -6726015.730 3 23042706.421 23042705.717 23042704.556
+ 34.300 23.800
+ -19261826.186 7 -15009202.542 6 20768316.985 20768317.314 20768316.186
+ 44.800 41.100
+ -23949858.873 6 -18662228.017 7 20375884.220 20375882.367 20375883.429
+ 41.600 46.300
+ 06 1 2 17 44 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5106251.585 4 -3978890.179 3 23469043.680 23469045.802 23469043.319
+ 25.900 23.000
+ -10535421.410 7 -8209413.940 7 21363044.984 21363045.005 21363043.945
+ 44.600 42.100
+ -6050113.104 4 -4714387.904 4 23615200.359 23615201.968 23615198.893
+ 25.900 24.600
+ -2090192.281 5 -1628719.934 3 23855901.676 23855901.331 23855900.982
+ 30.100 20.500
+ -12156646.345 6 -9472706.323 5 22170891.255 22170889.688 22170890.527
+ 41.000 32.400
+ -21616864.741 7 -16844304.029 8 20608351.577 20608350.354 20608351.043
+ 46.900 48.300
+ -8696454.509 5 -6776452.575 4 23030388.674 23030388.601 23030387.595
+ 35.300 24.600
+ -19311726.372 7 -15048085.777 6 20758821.446 20758821.621 20758820.428
+ 44.700 41.300
+ -23926592.846 6 -18644098.639 7 20380311.705 20380309.811 20380310.839
+ 41.800 46.300
+ 06 1 2 17 44 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5217957.779 4 -4065933.821 3 23447787.078 23447788.639 23447786.483
+ 27.100 23.000
+ -10584120.268 7 -8247361.077 6 21353778.017 21353777.651 21353776.932
+ 44.700 41.800
+ -5934872.194 4 -4624589.876 3 23637129.391 23637131.749 23637128.247
+ 25.300 23.800
+ -2156650.386 4 -1680505.374 3 23843254.918 23843255.353 23843254.092
+ 26.500 19.300
+ -12074048.195 6 -9408344.141 5 22186609.208 22186607.457 22186608.372
+ 40.700 31.500
+ -21650370.348 7 -16870412.282 8 20601975.630 20601974.577 20601975.057
+ 47.000 48.500
+ -8760764.668 5 -6826564.345 4 23018150.700 23018150.481 23018149.429
+ 34.700 24.600
+ -19361114.997 7 -15086570.388 6 20749422.845 20749423.263 20749422.000
+ 44.800 41.300
+ -23902846.904 6 -18625595.299 7 20384830.397 20384828.462 20384829.468
+ 41.900 46.300
+ 06 1 2 17 45 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5329476.486 4 -4152831.367 4 23426565.613 23426567.132 23426565.149
+ 26.500 25.300
+ -10632602.474 7 -8285139.399 7 21344552.095 21344551.782 21344550.947
+ 44.600 42.000
+ -5819510.339 4 -4534697.637 3 23659082.619 23659084.357 23659081.566
+ 25.300 23.400
+ -2222585.389 4 -1731883.260 2 23830708.080 23830707.414 23830707.154
+ 29.200 15.100
+ -11991153.090 6 -9343750.565 5 22202383.786 22202381.819 22202382.927
+ 41.000 31.500
+ -21683564.502 7 -16896277.844 8 20595659.124 20595657.832 20595658.433
+ 47.100 48.400
+ -8824654.930 5 -6876348.941 4 23005992.954 23005992.443 23005991.461
+ 34.500 24.200
+ -19409991.029 7 -15124655.577 6 20740121.990 20740122.492 20740121.149
+ 44.800 41.300
+ -23878620.647 6 -18606717.691 7 20389440.603 20389438.514 20389439.644
+ 41.800 46.100
+ 06 1 2 17 45 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5440805.519 4 -4239581.103 3 23405379.907 23405381.792 23405379.525
+ 27.100 23.400
+ -10680867.694 7 -8322748.642 7 21335367.760 21335367.264 21335366.465
+ 44.800 42.100
+ -5704030.718 3 -4444713.633 4 23681056.941 23681059.649 23681055.841
+ 23.400 25.300
+ -2287994.894 4 -1782851.738 2 23818260.600 23818260.625 23818259.726
+ 26.500 16.100
+ -11907963.285 6 -9278927.346 5 22218213.889 22218212.400 22218213.314
+ 40.900 32.000
+ -21716446.937 7 -16921900.510 8 20589401.594 20589400.377 20589401.036
+ 46.900 48.400
+ -8888122.280 5 -6925803.973 3 22993915.180 22993914.656 22993914.150
+ 34.300 23.400
+ -19458353.513 7 -15162340.600 6 20730918.898 20730919.278 20730918.098
+ 44.900 41.300
+ -23853913.968 7 -18587465.726 7 20394142.055 20394140.036 20394141.160
+ 42.000 46.000
+ 06 1 2 17 46 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5551942.806 4 -4326181.420 3 23384230.595 23384233.166 23384230.315
+ 24.900 23.400
+ -10728915.640 7 -8360188.576 7 21326224.469 21326224.305 21326223.251
+ 44.500 42.400
+ -5588436.594 4 -4354640.406 3 23703054.575 23703056.379 23703053.608
+ 26.500 23.800
+ -2352877.473 4 -1833409.530 3 23805914.155 23805913.785 23805913.057
+ 24.900 19.900
+ -11824481.095 6 -9213876.308 5 22234100.316 22234098.574 22234099.580
+ 40.600 31.800
+ -21749017.250 7 -16947279.957 8 20583203.721 20583202.444 20583203.132
+ 46.800 48.400
+ -8951164.115 5 -6974927.431 3 22981918.920 22981918.143 22981917.360
+ 34.600 23.400
+ -19506201.582 7 -15199624.788 6 20721813.833 20721814.043 20721812.980
+ 44.800 41.300
+ -23828726.410 7 -18567839.058 7 20398935.463 20398933.096 20398934.404
+ 42.100 46.100
+ 06 1 2 17 46 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5662886.022 4 -4412630.534 3 23363119.502 23363120.752 23363119.134
+ 27.900 23.400
+ -10776745.958 7 -8397458.934 7 21317122.564 21317122.342 21317121.322
+ 44.500 42.500
+ -5472730.789 4 -4264480.167 3 23725072.368 23725074.116 23725071.497
+ 26.500 20.500
+ -2417230.255 4 -1883554.511 2 23793667.882 23793667.770 23793666.918
+ 27.900 17.000
+ -11740708.780 6 -9148599.183 5 22250041.961 22250040.100 22250041.052
+ 40.600 31.600
+ -21781275.162 7 -16972415.974 8 20577065.256 20577064.038 20577064.618
+ 46.800 48.500
+ -9013777.839 5 -7023717.282 4 22970002.903 22970003.552 22970002.161
+ 35.100 24.900
+ -19553534.426 7 -15236507.499 6 20712806.573 20712806.881 20712805.732
+ 44.700 41.500
+ -23803057.906 7 -18547837.629 7 20403819.939 20403817.577 20403818.890
+ 42.300 45.900
+ 06 1 2 17 47 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5773633.052 4 -4498926.790 4 23342044.246 23342045.982 23342044.211
+ 28.800 24.900
+ -10824358.217 7 -8434559.379 7 21308062.389 21308062.041 21308061.168
+ 44.700 42.400
+ -5356916.734 4 -4174235.514 3 23747110.904 23747113.458 23747109.792
+ 27.100 23.000
+ -2481051.292 4 -1933285.139 3 23781523.083 23781523.941 23781522.302
+ 27.600 22.600
+ -11656648.483 6 -9083097.668 5 22266037.931 22266036.150 22266037.112
+ 40.600 31.300
+ -21813220.554 7 -16997308.468 8 20570986.039 20570984.990 20570985.518
+ 46.700 48.500
+ -9075960.468 5 -7072171.228 3 22958170.320 22958170.604 22958169.150
+ 34.500 23.800
+ -19600351.039 7 -15272987.943 6 20703897.744 20703898.009 20703896.862
+ 44.800 41.500
+ -23776908.251 7 -18527461.276 7 20408795.998 20408793.755 20408794.908
+ 42.400 45.900
+ 06 1 2 17 47 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5884181.778 4 -4585068.544 4 23321007.880 23321009.593 23321007.385
+ 28.100 26.500
+ -10871752.276 7 -8471489.797 7 21299043.542 21299043.106 21299042.399
+ 44.700 42.300
+ -5240997.443 4 -4083908.911 2 23769169.742 23769171.858 23769169.156
+ 27.400 17.800
+ -2544338.154 4 -1982599.503 3 23769480.304 23769480.532 23769479.188
+ 26.500 23.000
+ -11572302.794 6 -9017373.761 5 22282088.019 22282086.573 22282087.634
+ 40.500 31.100
+ -21844853.376 7 -17021957.403 8 20564966.583 20564965.297 20564965.988
+ 46.700 48.400
+ -9137709.454 5 -7120287.247 4 22946419.220 22946420.075 22946418.401
+ 34.300 25.600
+ -19646650.515 7 -15309065.429 6 20695087.348 20695087.562 20695086.440
+ 44.900 41.800
+ -23750277.533 7 -18506710.068 7 20413863.552 20413861.469 20413862.506
+ 42.300 45.700
+ 06 1 2 17 48 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5994530.038 4 -4671054.096 3 23300009.497 23300010.575 23300008.745
+ 28.100 23.800
+ -10918927.879 7 -8508249.987 7 21290066.135 21290065.973 21290065.093
+ 44.800 42.500
+ -5124976.244 4 -3993502.837 3 23791247.955 23791250.840 23791246.994
+ 24.600 23.000
+ -2607088.703 4 -2031495.989 4 23757539.286 23757539.299 23757538.323
+ 29.200 24.600
+ -11487674.057 6 -8951429.293 5 22298192.477 22298190.995 22298191.678
+ 39.400 31.100
+ -21876172.976 7 -17046362.266 8 20559006.674 20559005.459 20559006.065
+ 46.800 48.500
+ -9199022.133 5 -7168063.290 4 22934751.740 22934752.438 22934751.378
+ 35.300 24.600
+ -19692431.869 7 -15344739.182 6 20686375.475 20686375.594 20686374.568
+ 45.100 41.600
+ -23723165.086 7 -18485583.487 7 20419022.813 20419020.745 20419021.903
+ 42.400 45.700
+ 06 1 2 17 48 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6104675.571 4 -4756881.660 4 23279048.824 23279050.692 23279048.392
+ 26.200 26.800
+ -10965884.523 7 -8544839.571 7 21281130.756 21281130.345 21281129.626
+ 44.900 42.500
+ -5008855.883 3 -3903019.576 3 23813344.854 23813347.014 23813343.674
+ 23.800 21.100
+ -2669300.995 4 -2079973.015 4 23745700.280 23745700.797 23745699.541
+ 27.100 25.300
+ -11402764.260 6 -8885265.840 5 22314350.260 22314348.992 22314349.656
+ 40.000 31.600
+ -21907179.382 7 -17070523.084 8 20553106.299 20553105.140 20553105.751
+ 46.800 48.600
+ -9259896.014 5 -7215497.423 4 22923169.096 22923168.840 22923167.320
+ 34.800 25.300
+ -19737694.217 7 -15380008.527 6 20677762.368 20677762.398 20677761.457
+ 45.000 41.600
+ -23695570.949 7 -18464081.560 7 20424273.802 20424271.729 20424272.818
+ 42.400 45.500
+ 06 1 2 17 49 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6214616.135 4 -4842549.543 4 23258127.399 23258129.750 23258127.125
+ 26.800 26.800
+ -11012622.045 7 -8581258.397 7 21272236.767 21272236.494 21272235.605
+ 44.800 42.600
+ -4892639.747 4 -3812461.667 3 23835460.961 23835462.804 23835459.952
+ 25.300 20.500
+ -2730972.815 4 -2128028.905 4 23733964.083 23733965.215 23733963.334
+ 24.900 25.600
+ -11317576.034 6 -8818885.420 5 22330560.867 22330559.800 22330560.264
+ 39.800 31.800
+ -21937872.124 7 -17094439.488 8 20547265.445 20547264.360 20547264.963
+ 46.900 48.600
+ -9320328.320 5 -7262587.449 4 22911668.115 22911668.658 22911667.627
+ 35.800 24.900
+ -19782436.814 7 -15414872.863 6 20669247.939 20669248.143 20669247.069
+ 45.100 41.700
+ -23667494.918 7 -18442204.141 7 20429616.786 20429614.467 20429615.686
+ 42.500 45.600
+ 06 1 2 17 49 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6324349.582 4 -4928056.101 3 23237246.661 23237247.215 23237246.027
+ 27.400 20.500
+ -11059140.096 7 -8617506.212 7 21263384.796 21263384.369 21263383.620
+ 45.100 42.600
+ -4776331.360 4 -3721831.861 3 23857593.159 23857595.578 23857592.149
+ 25.300 20.500
+ -2792101.819 4 -2175661.853 4 23722331.756 23722332.732 23722330.969
+ 25.300 27.100
+ -11232111.278 6 -8752289.529 5 22346824.285 22346823.277 22346823.627
+ 39.300 31.500
+ -21968250.994 7 -17118111.322 8 20541484.614 20541483.539 20541484.181
+ 47.000 48.700
+ -9380316.283 6 -7309331.229 4 22900253.621 22900252.998 22900252.286
+ 36.100 25.300
+ -19826659.119 7 -15449331.771 7 20660832.532 20660832.890 20660831.764
+ 45.100 42.000
+ -23638937.048 7 -18419951.257 7 20435051.029 20435048.824 20435049.969
+ 42.700 45.500
+ 06 1 2 17 50 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6433873.933 4 -5013399.714 4 23216404.544 23216405.995 23216404.082
+ 29.200 24.200
+ -11105438.196 7 -8653582.640 7 21254574.359 21254574.090 21254573.280
+ 44.900 42.800
+ -4659933.422 3 -3631132.276 2 23879742.972 23879745.339 23879742.173
+ 23.000 17.800
+ -2852686.009 4 -2222870.221 4 23710803.089 23710803.736 23710802.341
+ 27.900 27.100
+ -11146372.469 6 -8685480.091 5 22363139.843 22363138.861 22363139.186
+ 39.000 31.300
+ -21998315.890 7 -17141538.502 8 20535763.521 20535762.477 20535762.974
+ 47.000 48.900
+ -9439857.416 5 -7355726.847 4 22888922.847 22888922.373 22888921.847
+ 35.500 24.900
+ -19870359.974 7 -15483384.346 7 20652516.524 20652516.803 20652515.730
+ 45.000 42.000
+ -23609897.361 7 -18397322.926 7 20440576.852 20440574.936 20440575.949
+ 42.600 45.300
+ 06 1 2 17 50 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6543186.797 4 -5098578.565 4 23195602.497 23195604.337 23195602.228
+ 27.600 24.200
+ -11151516.241 7 -8689487.595 7 21245806.155 21245805.632 21245804.914
+ 44.700 42.700
+ -4543448.917 3 -3540365.265 3 23901910.429 23901912.209 23901908.827
+ 20.500 23.400
+ -2912723.812 4 -2269652.846 4 23699378.312 23699378.228 23699377.681
+ 26.500 24.200
+ -11060361.808 6 -8618458.813 5 22379506.896 22379505.830 22379506.272
+ 38.800 30.600
+ -22028066.620 7 -17164720.877 8 20530102.300 20530100.996 20530101.611
+ 46.800 48.900
+ -9498949.130 6 -7401772.266 4 22877678.380 22877677.320 22877677.296
+ 36.500 25.300
+ -19913539.113 7 -15517030.404 7 20644299.943 20644300.105 20644299.065
+ 45.100 42.200
+ -23580375.515 7 -18374318.885 7 20446194.429 20446192.816 20446193.726
+ 42.700 45.400
+ 06 1 2 17 51 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6652286.197 4 -5183591.036 3 23174841.917 23174843.085 23174841.310
+ 26.200 23.400
+ -11197373.814 7 -8725220.752 7 21237079.432 21237079.187 21237078.392
+ 44.900 42.700
+ -4426881.218 4 -3449533.398 3 23924092.411 23924093.984 23924090.853
+ 24.600 19.900
+ -2972212.463 4 -2316007.585 4 23688058.051 23688058.177 23688057.176
+ 27.100 26.500
+ -10974081.794 6 -8551227.650 5 22395926.329 22395924.533 22395925.455
+ 39.800 30.800
+ -22057502.718 7 -17187658.084 8 20524500.658 20524499.408 20524500.069
+ 46.800 48.900
+ -9557588.868 6 -7447465.499 4 22866520.410 22866518.875 22866518.913
+ 36.300 25.300
+ -19956195.652 7 -15550269.243 7 20636182.699 20636182.742 20636181.788
+ 44.800 42.000
+ -23550371.438 7 -18350939.080 7 20451904.096 20451902.359 20451903.287
+ 42.700 45.400
+ 06 1 2 17 51 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6761169.832 4 -5268435.374 4 23154122.211 23154123.885 23154121.814
+ 28.400 26.200
+ -11243010.622 7 -8760781.889 7 21228395.092 21228394.886 21228394.038
+ 45.000 42.700
+ -4310233.403 4 -3358639.109 3 23946289.294 23946291.215 23946288.308
+ 24.900 20.500
+ -3031149.995 4 -2361932.849 4 23676842.298 23676842.636 23676841.593
+ 29.000 27.100
+ -10887534.524 6 -8483788.244 5 22412395.281 22412393.901 22412394.360
+ 38.900 31.000
+ -22086623.835 7 -17210349.861 8 20518959.198 20518957.968 20518958.602
+ 47.000 49.100
+ -9615773.961 5 -7492804.449 4 22855446.632 22855447.227 22855445.807
+ 35.800 26.200
+ -19998328.736 7 -15583100.186 6 20628165.101 20628165.054 20628164.077
+ 45.100 41.900
+ -23519885.139 7 -18327183.517 7 20457705.375 20457703.621 20457704.715
+ 43.000 45.200
+ 06 1 2 17 52 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6869835.558 4 -5353109.925 4 23133444.118 23133445.202 23133443.725
+ 29.000 25.600
+ -11288426.280 7 -8796170.698 7 21219752.811 21219752.610 21219751.610
+ 44.600 43.200
+ -4193508.793 4 -3267684.982 3 23968500.651 23968503.497 23968499.674
+ 25.300 20.500
+ -3089534.746 4 -2407427.405 4 23665731.868 23665732.492 23665730.929
+ 25.300 26.200
+ -10800722.485 6 -8416142.521 5 22428915.100 22428913.865 22428914.337
+ 39.700 31.100
+ -22115430.154 7 -17232796.332 8 20513477.463 20513476.297 20513476.886
+ 47.000 49.100
+ -9673501.548 6 -7537786.923 4 22844462.157 22844461.644 22844460.652
+ 36.200 25.900
+ -20039937.725 7 -15615522.739 7 20620246.939 20620247.039 20620246.052
+ 44.800 42.200
+ -23488916.664 7 -18303052.236 7 20463598.479 20463596.749 20463597.838
+ 43.000 45.100
+ 06 1 2 17 52 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6978281.235 5 -5437612.970 4 23112807.219 23112808.255 23112806.813
+ 30.600 24.900
+ -11333620.467 7 -8831386.933 7 21211152.352 21211152.452 21211151.394
+ 44.900 43.100
+ -4076710.103 3 -3176673.114 3 23990726.550 23990729.527 23990725.832
+ 23.400 18.600
+ -3147364.738 4 -2452489.657 4 23654727.002 23654728.096 23654726.563
+ 26.200 26.200
+ -10713647.838 6 -8348292.164 5 22445484.788 22445483.277 22445484.144
+ 39.500 30.800
+ -22143921.143 7 -17254997.097 8 20508055.979 20508054.591 20508055.313
+ 47.100 49.200
+ -9730769.669 6 -7582411.382 4 22833563.218 22833563.429 22833562.545
+ 36.200 24.200
+ -20081021.959 7 -15647536.405 7 20612428.758 20612429.027 20612427.983
+ 44.800 42.100
+ -23457465.830 7 -18278545.095 7 20469583.282 20469581.641 20469582.704
+ 42.900 45.000
+ 06 1 2 17 53 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7086504.788 4 -5521942.942 4 23092212.800 23092214.134 23092212.395
+ 28.600 26.500
+ -11378592.994 7 -8866430.443 7 21202594.884 21202594.301 21202593.596
+ 44.800 43.100
+ -3959840.426 3 -3085605.948 4 24012966.208 24012970.163 24012965.543
+ 23.000 25.300
+ -3204637.267 4 -2497117.564 4 23643828.242 23643829.290 23643827.335
+ 25.600 26.500
+ -10626313.024 6 -8280239.087 5 22462104.057 22462102.727 22462103.305
+ 39.000 30.100
+ -22172096.518 7 -17276951.929 8 20502694.391 20502693.013 20502693.755
+ 47.200 49.200
+ -9787575.548 5 -7626675.650 4 22822754.850 22822753.499 22822753.054
+ 35.500 24.600
+ -20121580.764 7 -15679140.638 7 20604710.827 20604710.954 20604709.946
+ 45.000 42.200
+ -23425532.714 7 -18253662.155 7 20475660.000 20475658.331 20475659.336
+ 42.900 44.800
+ 06 1 2 17 53 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7194504.227 4 -5606098.223 4 23071660.849 23071662.511 23071660.290
+ 27.900 26.200
+ -11423343.396 7 -8901300.874 7 21194078.982 21194078.673 21194077.845
+ 45.100 43.200
+ -3842903.294 4 -2994486.263 3 24035218.560 24035221.632 24035218.300
+ 25.900 21.600
+ -3261350.478 4 -2541309.663 4 23633035.899 23633036.737 23633035.221
+ 25.900 25.900
+ -10538720.186 6 -8211984.956 5 22478772.352 22478771.072 22478771.817
+ 39.500 30.100
+ -22199956.364 7 -17298660.889 8 20497392.819 20497391.461 20497392.184
+ 47.300 49.200
+ -9843916.510 6 -7670577.633 4 22812032.641 22812032.472 22812031.428
+ 36.200 24.600
+ -20161613.495 7 -15710334.939 7 20597092.700 20597092.938 20597091.848
+ 44.700 42.300
+ -23393116.933 7 -18228403.117 7 20481828.621 20481826.779 20481827.941
+ 43.200 44.700
+ 06 1 2 17 54 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7302277.120 4 -5690076.994 4 23051151.983 23051153.987 23051151.597
+ 27.100 26.500
+ -11467871.364 7 -8935997.978 7 21185605.524 21185605.332 21185604.353
+ 44.900 43.200
+ -3725901.309 4 -2903315.972 3 24057482.942 24057486.723 24057482.828
+ 24.200 19.900
+ -3317503.245 5 -2585065.048 4 23622351.261 23622351.721 23622350.483
+ 31.000 27.400
+ -10450871.470 6 -8143531.435 5 22495489.725 22495488.437 22495488.861
+ 38.800 30.800
+ -22227500.219 7 -17320123.627 8 20492151.309 20492149.970 20492150.742
+ 47.200 49.200
+ -9899790.184 6 -7714115.497 4 22801399.993 22801400.333 22801398.961
+ 36.600 25.300
+ -20201119.379 7 -15741118.719 7 20589574.799 20589575.169 20589574.112
+ 44.800 42.300
+ -23360218.909 7 -18202768.317 7 20488089.138 20488087.153 20488088.267
+ 43.200 44.600
+ 06 1 2 17 54 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7409821.470 4 -5773877.675 4 23030687.327 23030688.981 23030686.878
+ 29.500 28.800
+ -11512176.515 7 -8970521.461 7 21177174.577 21177174.306 21177173.442
+ 44.900 43.400
+ -3608837.948 3 -2812097.879 3 24079760.553 24079763.364 24079759.519
+ 23.400 21.600
+ -3373092.919 4 -2628381.663 4 23611772.825 23611773.508 23611772.052
+ 29.200 27.600
+ -10362769.153 6 -8074880.310 5 22512255.004 22512253.522 22512254.310
+ 39.000 30.100
+ -22254727.997 7 -17341340.069 8 20486970.005 20486968.653 20486969.432
+ 47.200 49.300
+ -9955194.162 6 -7757287.366 4 22790857.211 22790856.844 22790856.008
+ 36.200 25.300
+ -20240098.086 7 -15771491.712 7 20582157.690 20582157.702 20582156.783
+ 44.700 42.400
+ -23326838.568 7 -18176757.687 7 20494441.496 20494439.228 20494440.421
+ 42.900 44.700
+ 06 1 2 17 55 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7517135.142 4 -5857498.589 4 23010265.861 23010267.680 23010265.714
+ 29.700 28.600
+ -11556258.636 7 -9004871.144 7 21168785.923 21168785.830 21168784.786
+ 45.200 43.500
+ -3491715.771 4 -2720833.918 3 24102048.172 24102050.589 24102047.415
+ 25.300 18.600
+ -3428117.741 5 -2671258.169 4 23601301.563 23601301.882 23601300.905
+ 30.400 25.300
+ -10274415.564 6 -8006033.410 4 22529068.324 22529066.898 22529067.438
+ 37.600 29.900
+ -22281639.216 7 -17362309.838 8 20481848.876 20481847.697 20481848.354
+ 47.100 49.500
+ -10010125.821 6 -7800091.209 4 22780403.498 22780403.261 22780402.520
+ 36.200 24.600
+ -20278549.001 7 -15801453.432 7 20574840.581 20574840.659 20574839.743
+ 44.700 42.300
+ -23292976.004 7 -18150371.291 7 20500885.423 20500882.993 20500884.232
+ 43.000 44.600
+ 06 1 2 17 55 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7624216.227 4 -5940938.280 4 22989889.581 22989890.579 22989889.088
+ 28.600 27.400
+ -11600117.337 7 -9039046.744 7 21160440.298 21160439.675 21160438.977
+ 45.200 43.400
+ -3374538.528 3 -2629527.063 3 24124346.826 24124349.392 24124345.614
+ 21.600 19.900
+ -3482575.893 4 -2713693.068 4 23590938.780 23590939.285 23590937.845
+ 28.400 24.900
+ -10185813.107 6 -7936992.546 4 22545928.341 22545927.303 22545927.699
+ 37.700 29.900
+ -22308233.621 7 -17383032.744 8 20476788.106 20476786.914 20476787.581
+ 47.100 49.500
+ -10064582.542 6 -7842524.963 4 22770041.613 22770040.363 22770040.028
+ 36.400 24.900
+ -20316471.349 7 -15831003.289 7 20567624.074 20567624.250 20567623.295
+ 44.700 42.200
+ -23258631.271 7 -18123609.178 7 20507421.478 20507418.670 20507420.077
+ 43.100 44.400
+ 06 1 2 17 56 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7731062.347 5 -6024194.888 4 22969557.217 22969558.334 22969556.754
+ 30.200 25.900
+ -11643752.316 7 -9073048.003 7 21152136.377 21152136.158 21152135.294
+ 45.100 43.400
+ -3257308.830 3 -2538179.357 3 24146654.250 24146657.558 24146652.951
+ 20.500 19.900
+ -3536465.591 4 -2755685.057 3 23580683.551 23580683.643 23580682.984
+ 29.200 22.100
+ -10096963.723 6 -7867759.302 5 22562836.493 22562834.645 22562835.618
+ 38.100 30.100
+ -22334510.993 7 -17403508.610 8 20471787.632 20471786.440 20471787.099
+ 47.300 49.400
+ -10118562.180 6 -7884586.984 4 22759769.173 22759768.651 22759768.159
+ 37.200 26.500
+ -20353865.000 7 -15860141.174 7 20560508.539 20560508.425 20560507.546
+ 44.900 42.300
+ -23223804.512 7 -18096471.444 7 20514048.479 20514046.129 20514047.293
+ 43.000 44.500
+ 06 1 2 17 56 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7837671.470 5 -6107266.842 4 22949270.011 22949270.921 22949269.698
+ 31.100 25.600
+ -11687163.155 7 -9106874.615 7 21143875.824 21143875.326 21143874.625
+ 45.300 43.500
+ -3140029.709 3 -2446793.158 3 24168972.006 24168974.934 24168971.021
+ 21.600 19.900
+ -3589784.834 4 -2797232.497 3 23570538.014 23570536.987 23570537.119
+ 28.400 20.500
+ -10007869.967 6 -7798335.623 4 22579789.751 22579788.685 22579789.366
+ 37.800 28.800
+ -22360471.496 7 -17423737.565 8 20466847.770 20466846.399 20466847.155
+ 47.400 49.600
+ -10172062.265 6 -7926275.307 4 22749588.881 22749587.975 22749587.528
+ 37.200 26.200
+ -20390729.012 7 -15888866.355 7 20553493.356 20553493.391 20553492.537
+ 44.800 42.400
+ -23188495.723 7 -18068958.099 7 20520767.423 20520765.178 20520766.266
+ 43.200 44.700
+ 06 1 2 17 57 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7944041.758 5 -6190152.714 4 22929028.390 22929029.145 22929027.893
+ 31.100 25.600
+ -11730349.588 7 -9140526.361 7 21135657.713 21135657.137 21135656.548
+ 45.500 43.400
+ -3022704.376 3 -2355370.874 2 24191298.643 24191301.135 24191297.824
+ 21.600 17.800
+ -3642531.964 4 -2838334.166 3 23560500.028 23560499.858 23560499.060
+ 26.800 22.600
+ -9918534.022 6 -7728723.223 4 22596790.272 22596788.778 22596789.634
+ 37.900 28.800
+ -22386114.865 7 -17443719.402 8 20461967.833 20461966.597 20461967.364
+ 47.400 49.600
+ -10225080.212 6 -7967587.931 4 22739498.974 22739498.642 22739497.870
+ 36.200 25.900
+ -20427062.847 7 -15917178.418 7 20546579.325 20546579.320 20546578.434
+ 44.800 42.400
+ -23152705.167 7 -18041069.345 7 20527578.227 20527575.888 20527577.071
+ 43.400 44.400
+ 06 1 2 17 57 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8050170.844 4 -6272850.616 4 22908832.332 22908833.796 22908831.898
+ 29.200 26.500
+ -11773311.118 7 -9174002.858 7 21127482.279 21127481.777 21127481.004
+ 45.100 43.500
+ -2905336.060 3 -2263915.171 3 24213633.467 24213635.569 24213631.729
+ 19.900 19.300
+ -3694704.770 4 -2878988.277 3 23550571.860 23550572.190 23550570.921
+ 27.400 22.600
+ -9828957.978 6 -7658923.724 4 22613835.654 22613834.547 22613835.024
+ 36.800 29.000
+ -22411440.408 7 -17463453.581 8 20457148.441 20457147.260 20457147.862
+ 47.400 49.600
+ -10277613.898 6 -8008523.211 4 22729502.264 22729502.006 22729501.128
+ 36.300 25.900
+ -20462866.390 7 -15945077.255 7 20539766.006 20539766.179 20539765.201
+ 44.900 42.500
+ -23116432.633 7 -18012805.034 7 20534480.422 20534478.277 20534479.307
+ 43.400 44.400
+ 06 1 2 17 58 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8156056.420 4 -6355358.778 4 22888682.925 22888684.065 22888682.384
+ 28.600 27.600
+ -11816047.538 7 -9207303.942 7 21119349.878 21119349.320 21119348.628
+ 45.100 43.500
+ -2787928.020 3 -2172428.515 2 24235974.568 24235977.610 24235973.308
+ 22.600 15.100
+ -3746301.666 4 -2919193.611 3 23540753.629 23540753.198 23540752.491
+ 27.100 23.000
+ -9739144.355 6 -7588939.107 4 22630927.028 22630925.523 22630926.195
+ 37.700 29.200
+ -22436448.020 7 -17482940.019 8 20452389.805 20452388.519 20452389.181
+ 47.500 49.700
+ -10329660.952 6 -8049079.290 4 22719598.306 22719597.448 22719597.070
+ 36.700 27.100
+ -20498138.899 7 -15972562.303 7 20533053.938 20533053.992 20533053.098
+ 44.900 42.600
+ -23079678.341 7 -17984165.328 7 20541474.334 20541472.322 20541473.410
+ 43.500 44.200
+ 06 1 2 17 58 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8261696.869 5 -6437675.927 4 22868580.268 22868581.645 22868579.920
+ 30.100 28.400
+ -11858558.626 7 -9240429.444 7 21111260.449 21111259.792 21111259.195
+ 45.500 43.800
+ -2670483.161 3 -2080913.081 2 24258322.688 24258326.918 24258322.324
+ 23.000 13.900
+ -3797321.051 4 -2958948.976 3 23531044.211 23531044.895 23531043.431
+ 25.900 21.600
+ -9649095.175 6 -7518770.941 4 22648063.238 22648061.314 22648062.421
+ 38.400 29.200
+ -22461137.544 7 -17502178.599 8 20447691.495 20447690.240 20447690.883
+ 47.400 49.800
+ -10381218.686 6 -8089254.085 4 22709787.380 22709786.804 22709786.019
+ 37.300 25.900
+ -20532880.111 7 -15999633.359 7 20526442.948 20526442.879 20526442.083
+ 44.900 42.500
+ -23042442.635 7 -17955150.509 7 20548559.893 20548558.042 20548559.101
+ 43.400 44.000
+ 06 1 2 17 59 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8367089.819 5 -6519800.252 4 22848524.699 22848525.695 22848524.393
+ 31.300 27.100
+ -11900843.888 7 -9273378.979 7 21103213.688 21103213.174 21103212.546
+ 45.500 43.800
+ -2553003.912 3 -1989370.921 2 24280680.137 24280682.144 24280678.988
+ 23.000 15.100
+ -3847761.556 4 -2998253.241 3 23521445.555 23521446.529 23521444.757
+ 25.600 22.600
+ -9558812.704 6 -7448420.977 4 22665242.751 22665241.674 22665242.041
+ 37.300 28.400
+ -22485508.693 7 -17521169.093 8 20443053.891 20443052.556 20443053.269
+ 47.500 49.900
+ -10432284.977 6 -8129045.928 4 22700069.713 22700068.977 22700068.430
+ 37.700 26.800
+ -20567089.511 7 -16026290.010 7 20519933.028 20519933.037 20519932.267
+ 44.800 42.400
+ -23004725.819 7 -17925760.795 7 20555737.144 20555735.315 20555736.276
+ 43.400 44.000
+ 06 1 2 17 59 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8472233.323 5 -6601730.216 4 22828516.448 22828517.568 22828516.038
+ 30.200 28.400
+ -11942902.915 7 -9306152.227 7 21095210.178 21095209.575 21095208.945
+ 45.400 43.800
+ -2435493.473 4 -1897804.462 3 24303041.142 24303044.273 24303040.493
+ 25.300 18.600
+ -3897620.510 4 -3037104.382 3 23511957.551 23511958.016 23511956.700
+ 25.300 22.100
+ -9468299.283 6 -7377891.062 4 22682467.164 22682465.634 22682466.534
+ 37.700 28.800
+ -22509561.625 7 -17539911.631 8 20438476.901 20438475.405 20438476.312
+ 47.700 49.900
+ -10482857.504 6 -8168453.036 4 22690445.416 22690444.977 22690444.646
+ 37.700 26.500
+ -20600766.617 7 -16052531.892 7 20513524.681 20513524.582 20513523.720
+ 44.900 42.600
+ -22966527.832 7 -17895996.142 7 20563006.058 20563004.182 20563005.285
+ 43.600 44.000
+ 06 1 2 18 0 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8577125.165 4 -6683464.084 4 22808556.178 22808556.975 22808555.619
+ 29.900 27.400
+ -11984735.496 7 -9338749.022 7 21087249.632 21087249.052 21087248.424
+ 45.600 43.600
+ -2317954.965 3 -1806216.120 3 24325408.383 24325411.561 24325407.219
+ 19.900 20.500
+ -3946896.502 4 -3075501.280 3 23502581.272 23502581.611 23502580.518
+ 27.600 23.400
+ -9377556.961 6 -7307182.764 4 22699734.895 22699733.440 22699734.078
+ 36.800 28.600
+ -22533295.480 7 -17558405.530 8 20433960.308 20433959.015 20433959.781
+ 47.700 50.000
+ -10532933.813 6 -8207473.490 4 22680917.043 22680915.589 22680915.327
+ 36.500 26.200
+ -20633910.957 7 -16078358.620 7 20507217.474 20507217.358 20507216.573
+ 45.000 42.800
+ -22927848.956 7 -17865856.757 7 20570366.193 20570364.557 20570365.493
+ 43.500 43.900
+ 06 1 2 18 0 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8681763.393 5 -6765000.314 4 22788643.349 22788645.182 22788643.288
+ 30.400 27.900
+ -12026341.113 7 -9371168.964 7 21079332.236 21079331.631 21079331.054
+ 45.500 43.700
+ -2200391.431 3 -1714608.326 2 24347780.885 24347783.251 24347779.525
+ 22.600 17.800
+ -3995588.262 4 -3113442.913 3 23493315.599 23493315.250 23493314.694
+ 27.900 21.600
+ -9286588.156 6 -7236298.015 4 22717046.092 22717044.427 22717045.212
+ 36.800 29.200
+ -22556710.589 7 -17576651.059 8 20429504.602 20429503.213 20429504.040
+ 47.600 49.900
+ -10582511.847 6 -8246105.672 4 22671481.866 22671481.311 22671480.924
+ 37.500 25.900
+ -20666522.371 7 -16103770.099 7 20501011.605 20501011.557 20501010.769
+ 44.800 42.700
+ -22888689.454 7 -17835342.860 7 20577818.024 20577816.320 20577817.284
+ 43.400 43.600
+ 06 1 2 18 1 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8786145.823 5 -6846337.221 4 22768780.630 22768781.948 22768780.253
+ 32.000 27.600
+ -12067719.522 7 -9403411.863 7 21071458.034 21071457.657 21071456.939
+ 45.400 43.900
+ -2082805.872 3 -1622983.322 2 24370155.359 24370158.750 24370154.757
+ 22.600 17.000
+ -4043693.380 4 -3150927.433 3 23484161.361 23484161.855 23484160.361
+ 26.800 23.000
+ -9195394.982 6 -7165238.425 4 22734399.550 22734397.907 22734398.504
+ 36.200 28.400
+ -22579806.487 7 -17594647.857 8 20425109.555 20425108.211 20425108.987
+ 47.700 50.100
+ -10631589.190 6 -8284347.712 4 22662143.526 22662142.230 22662141.992
+ 37.700 26.200
+ -20698600.486 7 -16128766.005 7 20494907.391 20494907.260 20494906.473
+ 44.900 42.900
+ -22849049.585 7 -17804454.655 7 20585361.456 20585359.523 20585360.592
+ 43.500 43.500
+ 06 1 2 18 1 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8890270.549 5 -6927473.338 4 22748965.822 22748967.249 22748965.617
+ 30.200 25.900
+ -12108870.411 7 -9435477.472 7 21063627.452 21063626.951 21063626.287
+ 45.700 44.000
+ -1965201.459 3 -1531343.644 2 24392535.210 24392538.099 24392534.463
+ 21.100 16.100
+ -4091210.683 4 -3187953.895 4 23475118.727 23475119.289 23475118.053
+ 26.800 24.600
+ -9103979.522 5 -7094005.630 4 22751794.822 22751793.797 22751794.219
+ 35.700 28.800
+ -22602583.104 7 -17612395.858 8 20420775.249 20420773.935 20420774.655
+ 47.600 50.000
+ -10680163.629 6 -8322197.897 4 22652899.274 22652898.706 22652898.312
+ 37.200 25.900
+ -20730144.938 7 -16153346.077 7 20488904.501 20488904.558 20488903.650
+ 44.700 42.900
+ -22808929.575 7 -17773192.309 7 20592995.874 20592994.079 20592995.150
+ 43.400 43.400
+ 06 1 2 18 2 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8994135.254 5 -7008406.825 4 22729200.843 22729202.422 22729200.806
+ 30.100 26.800
+ -12149793.325 7 -9467365.442 7 21055840.175 21055839.530 21055838.965
+ 45.700 44.000
+ -1847581.276 3 -1439691.715 2 24414918.799 24414920.661 24414917.413
+ 19.900 12.600
+ -4138138.838 4 -3224521.257 4 23466189.074 23466189.772 23466188.099
+ 27.600 27.400
+ -9012343.896 5 -7022601.286 4 22769232.904 22769231.756 22769232.036
+ 35.700 29.200
+ -22625039.985 7 -17629894.717 8 20416501.868 20416500.432 20416501.298
+ 47.700 49.900
+ -10728232.849 6 -8359654.405 4 22643752.616 22643751.549 22643750.943
+ 36.800 27.100
+ -20761155.604 7 -16177510.204 7 20483003.485 20483003.443 20483002.587
+ 44.900 42.900
+ -22768329.480 7 -17741555.868 7 20600722.007 20600719.987 20600721.094
+ 43.500 43.300
+ 06 1 2 18 2 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9097738.148 5 -7089136.298 4 22709486.931 22709487.671 22709486.250
+ 32.400 29.000
+ -12190487.846 7 -9499075.446 7 21048096.164 21048095.598 21048095.012
+ 45.600 44.100
+ -1729948.039 3 -1348029.555 2 24437304.425 24437305.817 24437302.893
+ 22.600 17.800
+ -4184476.307 4 -3260628.346 4 23457371.048 23457371.539 23457370.236
+ 24.900 25.900
+ -8920490.777 5 -6951027.452 4 22786711.589 22786710.543 22786710.955
+ 35.800 29.000
+ -22647176.945 7 -17647144.286 8 20412289.375 20412287.891 20412288.746
+ 47.700 50.000
+ -10775794.749 6 -8396715.587 4 22634701.078 22634701.013 22634700.280
+ 37.400 27.100
+ -20791632.102 7 -16201258.107 7 20477203.796 20477203.906 20477202.956
+ 44.700 43.000
+ -22727249.817 7 -17709545.739 7 20608539.052 20608537.251 20608538.162
+ 43.600 43.200
+ 06 1 2 18 3 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9201077.133 5 -7169660.126 4 22689821.896 22689822.879 22689821.537
+ 33.200 29.900
+ -12230953.874 7 -9530607.403 7 21040395.784 21040395.086 21040394.610
+ 45.600 44.000
+ -1612304.640 3 -1256359.564 3 24459689.937 24459692.951 24459688.643
+ 21.600 18.600
+ -4230221.209 4 -3296273.681 4 23448666.196 23448666.841 23448665.443
+ 28.800 27.900
+ -8828422.443 6 -6879285.948 4 22804231.787 22804230.952 22804231.024
+ 36.200 29.000
+ -22668993.800 7 -17664144.421 8 20408137.628 20408136.380 20408137.058
+ 47.500 50.100
+ -10822846.871 6 -8433379.543 4 22625748.387 22625747.131 22625746.821
+ 37.700 27.100
+ -20821574.351 7 -16224589.703 7 20471506.123 20471506.083 20471505.282
+ 45.000 42.900
+ -22685691.026 7 -17677162.284 7 20616447.484 20616445.685 20616446.621
+ 43.500 43.000
+ 06 1 2 18 3 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9304150.092 5 -7249976.626 5 22670207.592 22670208.875 22670207.329
+ 32.800 30.100
+ -12271190.780 7 -9561960.828 7 21032738.653 21032738.273 21032737.563
+ 45.500 44.300
+ -1494654.774 3 -1164684.464 2 24482078.353 24482080.502 24482076.946
+ 22.600 13.900
+ -4275371.719 4 -3331455.872 4 23440074.632 23440074.722 23440073.760
+ 29.200 26.200
+ -8736140.869 6 -6807378.260 4 22821793.114 22821791.063 22821792.033
+ 36.000 27.100
+ -22690490.441 7 -17680895.042 8 20404047.107 20404045.696 20404046.469
+ 47.500 50.200
+ -10869387.368 6 -8469644.839 4 22616891.132 22616890.479 22616890.033
+ 37.600 27.400
+ -20850981.769 7 -16247504.556 7 20465910.077 20465909.968 20465909.295
+ 45.200 43.000
+ -22643653.025 7 -17644405.412 7 20624446.903 20624445.151 20624446.081
+ 43.700 43.100
+ 06 1 2 18 4 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9406955.067 5 -7330084.318 4 22650644.468 22650645.120 22650643.925
+ 31.300 29.500
+ -12311198.248 7 -9593135.472 7 21025125.638 21025125.189 21025124.453
+ 45.600 44.400
+ -1377000.943 3 -1073006.296 1 24504466.816 24504469.637 24504466.002
+ 22.600 11.000
+ -4319926.687 4 -3366173.981 4 23431595.898 23431596.461 23431595.183
+ 28.800 27.600
+ -8643647.949 6 -6735305.901 4 22839392.794 22839392.247 22839392.429
+ 36.200 27.400
+ -22711666.699 7 -17697396.017 8 20400017.209 20400015.916 20400016.704
+ 47.500 50.200
+ -10915414.136 6 -8505509.831 4 22608132.548 22608131.761 22608131.400
+ 37.500 27.100
+ -20879854.256 7 -16270002.571 7 20460416.101 20460415.652 20460415.084
+ 45.000 43.100
+ -22601136.266 7 -17611275.468 7 20632537.873 20632535.813 20632536.924
+ 43.800 43.100
+ 06 1 2 18 4 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9509490.102 5 -7409981.654 4 22631132.560 22631133.576 22631132.024
+ 31.100 29.500
+ -12350976.008 7 -9624131.120 7 21017556.043 21017555.749 21017554.969
+ 45.500 44.300
+ -1259345.914 3 -981327.203 2 24526857.066 24526858.889 24526855.786
+ 22.600 13.900
+ -4363884.493 5 -3400426.770 4 23423231.107 23423231.169 23423230.422
+ 30.200 26.500
+ -8550946.182 6 -6663070.794 4 22857033.997 22857032.844 22857033.339
+ 36.200 28.400
+ -22732522.348 7 -17713647.164 8 20396048.658 20396047.364 20396047.967
+ 47.300 50.400
+ -10960924.739 6 -8540972.607 4 22599471.925 22599471.499 22599470.777
+ 37.200 26.200
+ -20908191.347 7 -16292083.408 7 20455023.376 20455023.233 20455022.449
+ 44.800 43.000
+ -22558141.295 7 -17577772.897 7 20640719.894 20640717.586 20640718.774
+ 44.000 43.000
+ 06 1 2 18 5 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9611752.973 5 -7489666.916 4 22611672.324 22611673.447 22611672.035
+ 32.100 29.000
+ -12390523.659 7 -9654947.464 7 21010030.531 21010030.017 21010029.365
+ 45.600 44.500
+ -1141692.696 3 -889649.505 2 24549245.391 24549247.027 24549243.970
+ 19.900 12.600
+ -4407243.645 4 -3434213.069 4 23414979.908 23414980.233 23414979.011
+ 29.500 26.800
+ -8458037.391 6 -6590674.375 4 22874713.759 22874713.186 22874713.008
+ 36.000 28.600
+ -22753056.960 7 -17729648.152 8 20392140.772 20392139.790 20392140.246
+ 47.400 50.300
+ -11005916.937 6 -8576031.436 4 22590910.328 22590909.910 22590909.180
+ 37.500 26.800
+ -20935993.136 7 -16313747.114 7 20449732.707 20449732.776 20449731.915
+ 44.700 43.200
+ -22514668.422 7 -17543897.925 7 20648992.291 20648990.286 20648991.357
+ 44.100 43.100
+ 06 1 2 18 5 30.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9713741.807 5 -7569138.655 4 22592264.883 22592265.576 22592264.337
+ 31.800 29.000
+ -12429840.804 7 -9685584.194 7 21002548.466 21002548.148 21002547.334
+ 45.400 44.500
+ -1024044.271 3 -797975.547 2 24571632.281 24571635.016 24571631.420
+ 19.300 13.900
+ -4450002.918 4 -3467531.978 4 23406842.899 23406842.753 23406842.125
+ 29.200 24.900
+ -8364924.083 5 -6518118.595 4 22892432.854 22892431.426 22892432.034
+ 35.700 26.800
+ -22773270.542 7 -17745398.987 8 20388294.290 20388293.042 20388293.775
+ 47.400 50.300
+ -11050389.023 6 -8610684.973 4 22582447.392 22582447.137 22582446.234
+ 37.600 27.600
+ -20963259.497 7 -16334993.614 7 20444544.307 20444544.196 20444543.387
+ 44.900 43.400
+ -22470718.076 7 -17509650.892 7 20657355.907 20657353.729 20657354.809
+ 44.000 43.000
+ 06 1 2 18 6 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -9815454.609 5 -7648395.281 4 22572909.237 22572910.216 22572908.888
+ 31.600 28.800
+ -12468927.055 7 -9716041.007 7 20995110.899 20995110.349 20995109.770
+ 45.600 44.600
+ -4492160.587 5 -3500382.093 4 23398820.797 23398820.914 23398820.056
+ 31.000 24.900
+ -8271608.397 6 -6445405.103 4 22910190.717 22910188.950 22910189.843
+ 36.100 26.500
+ -22793162.696 7 -17760899.360 8 20384508.992 20384507.744 20384508.445
+ 47.500 50.400
+ -11094338.739 6 -8644931.463 4 22574084.580 22574083.672 22574083.343
+ 38.300 27.100
+ -20989990.330 7 -16355822.815 7 20439457.415 20439457.466 20439456.573
+ 44.700 43.300
+ -22426290.544 7 -17475032.033 7 20665809.897 20665807.954 20665808.929
+ 43.800 43.100
+ 06 1 2 18 6 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -9916889.298 5 -7727435.223 4 22553606.889 22553607.490 22553606.553
+ 33.000 28.800
+ -12507782.070 7 -9746317.640 7 20987717.000 20987716.468 20987715.828
+ 45.600 44.600
+ -4533715.151 5 -3532762.252 4 23390913.445 23390913.644 23390912.607
+ 30.600 27.100
+ -8178092.501 5 -6372535.604 4 22927985.831 22927984.107 22927984.920
+ 34.900 27.100
+ -22812733.103 7 -17776149.019 8 20380784.796 20380783.703 20380784.266
+ 47.400 50.500
+ -11137763.870 6 -8678769.199 4 22565821.380 22565819.901 22565819.848
+ 38.300 27.600
+ -21016185.364 7 -16376234.516 7 20434472.811 20434472.681 20434471.904
+ 44.800 43.400
+ -22381386.348 7 -17440041.764 7 20674355.090 20674353.134 20674353.907
+ 43.500 43.100
+ 06 1 2 18 7 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10018044.116 5 -7806257.090 4 22534357.814 22534358.491 22534357.511
+ 33.900 29.500
+ -12546405.414 7 -9776413.742 7 20980367.075 20980366.744 20980365.886
+ 45.400 44.600
+ -4574665.574 5 -3564671.663 4 23383120.774 23383120.422 23383119.999
+ 30.100 26.500
+ -8084378.470 5 -6299511.717 4 22945818.826 22945817.633 22945818.318
+ 34.900 26.800
+ -22831981.697 7 -17791147.922 8 20377122.130 20377120.717 20377121.567
+ 47.600 50.500
+ -11180662.417 6 -8712196.599 4 22557657.514 22557656.842 22557656.399
+ 38.400 27.900
+ -21041844.359 7 -16396228.519 7 20429590.031 20429589.885 20429589.111
+ 44.600 43.100
+ -22336005.935 7 -17404680.433 7 20682990.842 20682988.715 20682989.652
+ 43.700 42.900
+ 06 1 2 18 7 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -10118916.903 5 -7884859.189 5 22515162.262 22515163.281 22515161.855
+ 33.200 30.800
+ -12584796.755 7 -9806329.060 7 20973061.237 20973060.950 20973060.134
+ 45.300 44.500
+ -4615010.728 4 -3596109.423 4 23375443.162 23375443.335 23375442.204
+ 29.200 26.500
+ -7990468.485 5 -6226335.146 4 22963688.756 22963688.552 22963688.458
+ 34.000 28.100
+ -22850908.282 7 -17805895.904 8 20373520.548 20373519.083 20373519.961
+ 47.700 50.500
+ -11223032.593 6 -8745212.294 4 22549594.996 22549594.233 22549593.709
+ 38.700 29.000
+ -21066967.421 7 -16415804.918 7 20424809.110 20424809.109 20424808.261
+ 44.700 43.300
+ -22290149.541 7 -17368948.196 7 20691716.740 20691714.810 20691715.664
+ 43.900 42.600
+ 06 1 2 18 8 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10219505.514 5 -7963239.840 5 22496020.323 22496021.989 22496019.979
+ 32.700 30.800
+ -12622955.770 7 -9836063.352 7 20965800.102 20965799.583 20965798.976
+ 45.500 44.600
+ -4654748.960 4 -3627074.275 4 23367881.092 23367881.791 23367880.253
+ 27.900 28.100
+ -7896364.690 5 -6153007.575 4 22981596.845 22981595.779 22981596.115
+ 34.600 27.600
+ -22869512.738 7 -17820392.875 8 20369980.238 20369978.839 20369979.629
+ 47.600 50.600
+ -11264872.285 6 -8777814.605 4 22541632.788 22541632.314 22541631.861
+ 39.100 28.600
+ -21091554.556 7 -16434963.711 7 20420130.561 20420130.192 20420129.574
+ 44.700 43.200
+ -22243817.810 7 -17332845.561 7 20700533.338 20700531.438 20700532.286
+ 43.900 42.600
+ 06 1 2 18 8 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -10319808.235 5 -8041397.712 4 22476933.298 22476934.947 22476933.117
+ 33.200 29.900
+ -12660882.001 7 -9865616.245 7 20958583.074 20958582.606 20958581.804
+ 45.400 44.900
+ -4693878.983 4 -3657565.181 4 23360434.604 23360435.005 23360433.831
+ 28.600 26.800
+ -7802069.169 5 -6079530.568 4 22999540.681 22999539.538 22999539.969
+ 33.800 27.600
+ -22887794.793 7 -17834638.630 8 20366501.162 20366499.903 20366500.532
+ 47.500 50.600
+ -11306179.360 6 -8810001.900 4 22533773.018 22533771.826 22533771.530
+ 38.900 28.400
+ -21115605.468 7 -16453704.667 7 20415553.434 20415553.473 20415552.716
+ 44.800 43.200
+ -22197010.964 7 -17296372.706 7 20709440.441 20709438.616 20709439.438
+ 44.000 42.500
+ 06 1 2 18 9 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10419822.924 5 -8119331.147 4 22457901.553 22457902.436 22457901.185
+ 34.400 29.900
+ -12698575.075 7 -9894987.457 7 20951410.074 20951409.684 20951408.877
+ 45.300 44.800
+ -4732399.671 4 -3687581.293 4 23353104.407 23353104.918 23353103.609
+ 28.100 27.400
+ -7707584.266 5 -6005906.012 4 23017520.801 23017519.671 23017520.066
+ 34.300 27.400
+ -22905754.200 7 -17848632.967 8 20363083.445 20363082.334 20363082.891
+ 47.500 50.700
+ -11346952.092 6 -8841772.817 4 22526013.295 22526012.967 22526012.145
+ 38.400 28.600
+ -21139120.440 7 -16472028.009 7 20411079.120 20411078.728 20411078.176
+ 44.900 43.200
+ -22149729.779 7 -17259530.228 7 20718437.469 20718436.060 20718436.707
+ 44.200 42.600
+ 06 1 2 18 9 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -10519547.833 5 -8197038.796 4 22438924.722 22438925.165 22438924.128
+ 33.500 29.700
+ -12736034.576 7 -9924176.659 7 20944281.867 20944281.349 20944280.759
+ 45.400 44.700
+ -4770309.451 4 -3717121.367 4 23345890.517 23345890.873 23345889.624
+ 27.900 27.100
+ -7612912.175 5 -5932135.576 4 23035536.661 23035535.014 23035535.824
+ 34.900 26.800
+ -22923390.599 7 -17862375.612 8 20359727.519 20359726.262 20359726.975
+ 47.600 50.800
+ -11387188.209 6 -8873125.607 4 22518356.653 22518356.201 22518355.514
+ 38.500 28.400
+ -21162099.462 7 -16489933.730 7 20406706.348 20406706.002 20406705.455
+ 44.800 43.400
+ -22101974.728 7 -17222318.508 7 20727525.030 20727523.441 20727524.221
+ 44.100 42.500
+ 06 1 2 18 10 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10618980.772 5 -8274518.920 5 22420002.856 22420003.770 22420002.349
+ 33.400 31.000
+ -12773260.047 7 -9953183.510 7 20937198.214 20937197.572 20937197.001
+ 45.500 44.900
+ -4807607.194 4 -3746184.518 4 23338793.318 23338793.572 23338792.373
+ 28.400 27.600
+ -7518054.864 5 -5858220.846 4 23053587.453 23053585.384 23053586.660
+ 35.100 25.600
+ -22940704.093 7 -17875866.644 8 20356432.909 20356431.525 20356432.365
+ 47.700 50.800
+ -11426885.992 6 -8904058.912 4 22510802.175 22510801.667 22510801.296
+ 38.800 27.600
+ -21184541.908 7 -16507421.331 7 20402435.586 20402435.352 20402434.706
+ 44.800 43.400
+ -22053746.348 7 -17184737.952 7 20736702.466 20736700.916 20736701.781
+ 44.300 42.100
+ 06 1 2 18 10 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -10718119.985 5 -8351770.156 5 22401137.431 22401137.854 22401137.081
+ 34.100 30.800
+ -12810251.289 7 -9982007.837 7 20930158.696 20930158.353 20930157.627
+ 45.600 44.800
+ -4844291.787 4 -3774769.906 4 23331812.228 23331812.231 23331811.175
+ 28.100 26.500
+ -7423014.349 5 -5784163.332 4 23071672.997 23071670.912 23071672.182
+ 34.800 25.300
+ -22957694.284 7 -17889105.751 8 20353199.572 20353198.355 20353199.089
+ 47.600 50.800
+ -11466043.748 6 -8934571.434 4 22503351.144 22503350.114 22503349.935
+ 39.100 28.100
+ -21206448.498 7 -16524491.390 7 20398266.865 20398266.667 20398265.959
+ 44.700 43.400
+ -22005044.972 7 -17146788.839 7 20745970.108 20745968.452 20745969.359
+ 44.100 42.000
+ 06 1 2 18 11 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10816963.502 5 -8428790.971 5 22382327.854 22382328.693 22382327.506
+ 34.000 32.000
+ -12847007.699 7 -10010649.185 7 20923164.086 20923163.803 20923163.028
+ 45.500 44.800
+ -4880362.417 4 -3802876.863 4 23324948.258 23324948.435 23324947.423
+ 28.100 25.600
+ -7327792.794 5 -5709964.761 4 23089792.314 23089791.482 23089791.815
+ 34.800 26.200
+ -22974361.223 7 -17902092.973 8 20350028.078 20350026.794 20350027.491
+ 47.700 50.800
+ -11504659.327 6 -8964661.454 4 22496002.572 22496001.959 22496001.574
+ 39.100 27.400
+ -21227819.103 7 -16541143.795 7 20394200.253 20394199.989 20394199.299
+ 44.800 43.600
+ -21955871.441 7 -17108471.814 6 20755327.450 20755325.808 20755326.748
+ 44.100 41.800
+ 06 1 2 18 11 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -10915509.197 5 -8505579.714 5 22363575.001 22363575.793 22363574.554
+ 33.000 31.100
+ -12883529.093 7 -10039107.398 7 20916214.446 20916214.040 20916213.303
+ 45.400 44.800
+ -4915817.046 4 -3830503.832 4 23318201.382 23318201.873 23318200.489
+ 29.000 27.100
+ -7232392.507 5 -5635626.912 4 23107946.860 23107945.717 23107946.315
+ 34.800 26.800
+ -22990704.378 7 -17914827.898 8 20346917.971 20346916.869 20346917.429
+ 47.600 51.000
+ -11542730.705 6 -8994327.416 4 22488758.503 22488756.975 22488757.086
+ 39.300 28.600
+ -21248653.726 7 -16557378.553 7 20390235.525 20390235.242 20390234.559
+ 44.800 43.600
+ -21906226.174 7 -17069787.200 6 20764774.779 20764772.991 20764773.953
+ 44.300 41.500
+ 06 1 2 18 12 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11013755.235 5 -8582134.953 5 22344879.629 22344880.224 22344879.059
+ 34.000 31.300
+ -12919814.888 7 -10067382.033 7 20909309.320 20909309.150 20909308.294
+ 45.400 45.000
+ -4950655.378 5 -3857650.571 4 23311572.172 23311572.532 23311571.595
+ 30.800 27.400
+ -7136815.357 5 -5561151.262 4 23126134.757 23126133.614 23126134.210
+ 35.200 26.800
+ -23006723.571 7 -17927310.384 8 20343869.794 20343868.561 20343869.181
+ 47.700 51.000
+ -11580256.505 6 -9023568.250 4 22481616.990 22481616.120 22481616.021
+ 39.700 28.400
+ -21268952.480 7 -16573195.752 7 20386372.835 20386372.504 20386371.900
+ 44.800 43.700
+ -21856110.026 7 -17030735.668 6 20774311.231 20774309.891 20774310.634
+ 44.400 41.800
+ 06 1 2 18 12 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -11111699.906 5 -8658455.375 5 22326241.130 22326241.381 22326240.762
+ 34.900 30.400
+ -12955864.864 7 -10095472.912 7 20902449.504 20902448.976 20902448.310
+ 45.500 45.200
+ -4984876.119 4 -3884316.069 4 23305059.713 23305060.078 23305058.779
+ 29.700 24.900
+ -7041063.540 5 -5486539.499 4 23144355.236 23144354.656 23144354.298
+ 33.000 26.200
+ -23022418.805 7 -17939540.434 8 20340882.848 20340881.868 20340882.391
+ 47.700 51.100
+ -11617234.499 6 -9052382.229 4 22474580.270 22474579.501 22474578.960
+ 39.300 28.100
+ -21288715.497 7 -16588595.489 7 20382612.171 20382611.717 20382611.229
+ 44.800 43.600
+ -21805523.332 7 -16991317.473 6 20783937.536 20783936.214 20783936.967
+ 44.200 41.600
+ 06 1 2 18 13 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11209340.952 5 -8734539.224 5 22307660.736 22307660.918 22307660.101
+ 34.800 30.100
+ -12991678.486 7 -10123379.623 7 20895634.225 20895633.798 20895633.139
+ 45.600 44.900
+ -5018477.856 5 -3910499.213 4 23298666.016 23298666.183 23298665.216
+ 30.200 24.900
+ -6945139.356 5 -5411793.434 3 23162610.025 23162607.715 23162609.043
+ 33.500 23.400
+ -23037789.890 7 -17951517.900 8 20337957.884 20337956.786 20337957.365
+ 47.600 51.000
+ -11653662.915 6 -9080767.942 4 22467648.105 22467647.217 22467646.967
+ 39.400 28.100
+ -21307942.808 7 -16603577.793 7 20378953.087 20378952.861 20378952.231
+ 44.800 43.700
+ -21754466.598 7 -16951533.015 6 20793653.605 20793652.029 20793652.757
+ 43.800 41.400
+ 06 1 2 18 13 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -11306676.854 5 -8810385.296 4 22289138.038 22289138.183 22289137.571
+ 33.900 29.700
+ -13027255.378 7 -10151101.866 7 20888864.233 20888863.698 20888863.111
+ 45.600 45.100
+ -5051459.698 5 -3936199.356 4 23292389.384 23292389.685 23292388.763
+ 30.600 24.900
+ -6849044.564 5 -5336914.414 4 23180895.857 23180894.614 23180894.867
+ 32.700 25.300
+ -23052836.344 7 -17963242.409 8 20335094.779 20335093.470 20335094.259
+ 47.700 51.100
+ -11689540.031 6 -9108724.088 4 22460820.590 22460819.870 22460819.816
+ 39.800 27.400
+ -21326634.692 7 -16618142.878 7 20375396.252 20375395.849 20375395.269
+ 44.800 43.800
+ -21702940.589 7 -16911382.879 6 20803458.886 20803457.016 20803457.945
+ 44.000 41.400
+ 06 1 2 18 14 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11403705.404 5 -8885991.888 5 22270673.986 22270674.661 22270673.582
+ 34.100 31.000
+ -13062595.173 7 -10178639.362 7 20882139.385 20882138.803 20882138.255
+ 45.500 45.000
+ -5083820.892 4 -3961415.862 4 23286231.378 23286231.744 23286230.519
+ 29.200 26.200
+ -6752781.337 5 -5261904.151 4 23199213.758 23199212.808 23199212.869
+ 32.600 25.600
+ -23067558.076 7 -17974713.890 8 20332293.295 20332292.099 20332292.663
+ 47.500 51.100
+ -11724864.312 6 -9136249.456 4 22454099.163 22454098.022 22454097.634
+ 39.300 28.600
+ -21344791.404 7 -16632290.944 7 20371941.014 20371940.826 20371940.144
+ 44.700 43.800
+ -21650946.049 7 -16870867.672 6 20813353.251 20813351.294 20813352.341
+ 44.300 41.300
+ 06 1 2 18 14 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -11500424.932 5 -8961357.676 5 22252268.941 22252269.658 22252268.483
+ 34.800 32.000
+ -13097697.414 7 -10205991.749 7 20875459.343 20875459.093 20875458.306
+ 45.400 45.200
+ -5115559.920 5 -3986147.557 4 23280191.607 23280191.620 23280191.004
+ 30.800 24.600
+ -6656352.016 5 -5186764.497 4 23217563.381 23217563.474 23217562.858
+ 33.000 27.100
+ -23081955.018 7 -17985932.283 8 20329553.455 20329552.485 20329552.922
+ 47.400 51.200
+ -11759633.989 6 -9163342.678 4 22447481.907 22447481.735 22447481.138
+ 39.300 28.400
+ -21362412.902 7 -16646021.969 7 20368587.695 20368587.540 20368586.816
+ 44.700 43.900
+ -21598483.647 7 -16829987.893 6 20823336.480 20823334.599 20823335.597
+ 44.300 41.200
+ 06 1 2 18 15 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11596833.540 5 -9036481.187 5 22233922.812 22233923.951 22233922.573
+ 35.400 33.000
+ -13132561.740 7 -10233158.748 7 20868825.091 20868824.617 20868823.911
+ 45.300 45.200
+ -5146676.191 5 -4010394.017 4 23274270.698 23274271.127 23274269.800
+ 30.600 26.800
+ -6559758.426 5 -5111496.824 4 23235944.538 23235944.027 23235943.949
+ 31.500 24.200
+ -23096026.853 7 -17996897.344 8 20326875.812 20326874.598 20326875.144
+ 47.500 51.100
+ -11793847.090 6 -9190002.189 4 22440972.348 22440971.379 22440970.924
+ 39.900 29.000
+ -21379499.330 7 -16659336.054 7 20365336.202 20365336.026 20365335.300
+ 44.600 43.800
+ -21545553.912 7 -16788743.952 6 20833408.774 20833406.775 20833407.767
+ 44.200 40.900
+ 06 1 2 18 15 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -11692929.112 5 -9111360.790 5 22215636.341 22215637.225 22215636.004
+ 34.800 32.100
+ -13167187.739 7 -10260140.039 7 20862235.977 20862235.406 20862234.823
+ 45.200 45.000
+ -5177168.624 4 -4034154.317 4 23268467.408 23268468.106 23268466.696
+ 29.000 25.600
+ -6463002.540 5 -5036102.663 4 23254356.930 23254355.825 23254356.584
+ 32.800 26.200
+ -23109773.500 7 -18007609.012 8 20324259.878 20324258.686 20324259.274
+ 47.400 51.200
+ -11827502.101 6 -9216226.853 4 22434567.831 22434566.815 22434566.465
+ 39.800 28.600
+ -21396051.151 7 -16672233.560 7 20362186.575 20362186.302 20362185.636
+ 44.700 43.900
+ -21492157.689 7 -16747136.527 6 20843570.113 20843567.755 20843568.849
+ 44.000 40.800
+ 06 1 2 18 16 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11788709.999 5 -9185995.199 5 22197410.319 22197410.546 22197409.730
+ 35.200 31.500
+ -13201575.015 7 -10286935.316 7 20855692.254 20855691.754 20855691.035
+ 45.200 45.200
+ -5207036.692 5 -4057428.150 4 23262784.577 23262784.584 23262783.759
+ 30.100 27.600
+ -6366086.591 5 -4960583.795 4 23272799.251 23272798.901 23272798.466
+ 32.300 25.300
+ -23123194.664 7 -18018067.063 8 20321706.008 20321704.812 20321705.361
+ 47.500 51.200
+ -11860597.496 6 -9242015.430 4 22428269.597 22428268.848 22428268.181
+ 39.300 29.000
+ -21412068.585 7 -16684714.664 7 20359138.723 20359138.240 20359137.737
+ 44.600 44.000
+ -21438295.797 7 -16705166.242 6 20853819.313 20853817.359 20853818.209
+ 44.300 40.900
+ 06 1 2 18 16 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -11884174.252 5 -9260382.886 5 22179243.582 22179244.287 22179243.163
+ 35.100 31.800
+ -13235723.024 7 -10313544.151 7 20849194.001 20849193.747 20849192.851
+ 45.000 45.300
+ -5236279.063 4 -4080214.363 4 23257219.242 23257219.770 23257218.351
+ 28.800 27.900
+ -6269012.567 5 -4884941.772 4 23291272.040 23291271.237 23291271.356
+ 32.100 24.600
+ -23136290.081 7 -18028271.284 8 20319213.927 20319212.844 20319213.442
+ 47.600 51.200
+ -11893131.304 6 -9267366.429 4 22422078.411 22422077.641 22422077.341
+ 39.700 28.400
+ -21427551.941 7 -16696779.604 7 20356191.984 20356191.945 20356191.207
+ 44.700 44.000
+ -21383969.001 7 -16662833.678 6 20864157.483 20864155.462 20864156.222
+ 44.100 40.900
+ 06 1 2 18 17 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11979320.089 5 -9334522.450 5 22161137.371 22161138.779 22161137.147
+ 35.200 32.700
+ -13269631.510 7 -10339966.342 7 20842741.421 20842741.202 20842740.387
+ 45.400 45.400
+ -5264895.230 4 -4102512.673 4 23251774.329 23251773.864 23251773.517
+ 29.900 25.300
+ -6171782.572 5 -4809178.183 3 23309773.836 23309773.168 23309773.127
+ 31.600 23.400
+ -23149059.616 7 -18038221.565 8 20316784.100 20316782.799 20316783.474
+ 47.600 51.300
+ -11925101.997 6 -9292278.635 4 22415995.134 22415993.892 22415993.838
+ 39.800 28.800
+ -21442501.392 7 -16708428.512 7 20353347.331 20353347.147 20353346.421
+ 44.700 44.100
+ -21329177.949 7 -16620139.366 6 20874583.799 20874581.715 20874582.698
+ 44.200 40.600
+ 06 1 2 18 17 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -12074145.605 5 -9408412.412 5 22143092.675 22143094.083 22143092.557
+ 35.800 32.700
+ -13303299.932 7 -10366201.473 7 20836334.748 20836334.165 20836333.664
+ 45.400 45.300
+ -5292883.716 4 -4124321.873 4 23246447.967 23246447.404 23246447.199
+ 28.800 25.900
+ -6074398.442 5 -4733294.497 3 23328306.866 23328305.254 23328306.022
+ 33.800 23.800
+ -23161503.279 7 -18047917.922 8 20314416.059 20314414.857 20314415.512
+ 47.400 51.200
+ -11956508.140 6 -9316750.924 4 22410018.086 22410017.410 22410017.192
+ 39.700 28.600
+ -21456917.047 7 -16719661.480 7 20350604.122 20350603.950 20350603.161
+ 44.500 44.000
+ -21273923.133 7 -16577083.694 6 20885098.318 20885096.528 20885097.299
+ 44.000 40.600
+ 06 1 2 18 18 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12168649.084 5 -9482051.429 5 22125109.596 22125110.319 22125109.111
+ 35.700 32.300
+ -13336727.928 7 -10392249.260 7 20829973.712 20829973.067 20829972.590
+ 45.600 45.400
+ -5320244.422 4 -4145641.871 4 23241240.842 23241241.630 23241240.185
+ 28.800 24.900
+ -5976862.691 5 -4657292.643 4 23346866.706 23346865.256 23346865.869
+ 32.100 24.900
+ -23173620.620 7 -18057360.003 8 20312110.238 20312109.031 20312109.667
+ 47.700 51.300
+ -11987348.354 6 -9340782.232 4 22404149.959 22404148.595 22404148.451
+ 39.500 28.400
+ -21470799.485 7 -16730478.947 7 20347962.249 20347962.171 20347961.435
+ 44.700 44.100
+ -21218205.671 7 -16533667.524 6 20895700.930 20895699.180 20895700.008
+ 44.100 40.500
+ 06 1 2 18 18 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -12262828.407 6 -9555437.876 5 22107188.018 22107188.445 22107187.519
+ 36.000 33.000
+ -13369915.025 7 -10418109.332 7 20823658.361 20823657.740 20823657.224
+ 45.500 45.400
+ -5346976.366 4 -4166471.937 4 23236154.552 23236154.400 23236153.594
+ 29.200 26.200
+ -5879176.986 5 -4581173.960 4 23365455.564 23365454.730 23365454.642
+ 31.500 25.600
+ -23185411.456 7 -18066547.667 8 20309866.423 20309865.286 20309865.867
+ 47.600 51.100
+ -12017620.738 6 -9364371.069 4 22398388.730 22398388.154 22398387.656
+ 39.700 28.400
+ -21484148.978 7 -16740881.140 7 20345422.022 20345421.811 20345421.174
+ 44.700 44.100
+ -21162026.309 7 -16489891.423 6 20906391.474 20906389.906 20906390.611
+ 44.100 40.600
+ 06 1 2 18 19 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12356682.060 6 -9628570.538 5 22089328.425 22089328.844 22089327.939
+ 36.300 33.500
+ -13402860.904 7 -10443781.438 7 20817388.762 20817388.369 20817387.677
+ 45.300 45.400
+ -5373078.501 4 -4186811.270 4 23231187.628 23231187.534 23231186.720
+ 29.700 26.200
+ -5781343.175 5 -4504939.867 4 23384073.062 23384072.090 23384071.988
+ 31.600 24.200
+ -23196875.676 7 -18075480.817 8 20307685.087 20307683.660 20307684.385
+ 47.700 51.200
+ -12047323.745 6 -9387516.241 4 22392736.777 22392735.752 22392735.449
+ 39.800 29.000
+ -21496965.913 7 -16750868.354 7 20342983.115 20342982.832 20342982.080
+ 44.400 44.000
+ -21105385.736 7 -16445755.933 6 20917169.782 20917168.306 20917168.913
+ 44.000 40.200
+ 06 1 2 18 19 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -12450208.114 6 -9701447.920 5 22071530.593 22071531.297 22071530.304
+ 36.100 33.200
+ -13435565.101 7 -10469265.225 7 20811165.437 20811164.927 20811164.324
+ 45.500 45.400
+ -5398550.604 4 -4206659.653 4 23226340.385 23226340.353 23226339.022
+ 29.900 25.900
+ -5683363.483 5 -4428592.092 4 23402717.652 23402716.999 23402716.922
+ 31.300 24.900
+ -23208013.151 7 -18084159.367 8 20305565.488 20305564.307 20305564.917
+ 47.700 51.200
+ -12076456.149 6 -9410216.791 4 22387192.787 22387192.069 22387191.722
+ 39.900 29.500
+ -21509250.624 7 -16760440.846 7 20340645.270 20340645.075 20340644.387
+ 44.400 44.100
+ -21048284.799 7 -16401261.728 6 20928035.633 20928034.149 20928034.933
+ 44.100 40.300
+ 06 1 2 18 20 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12543404.756 5 -9774068.622 5 22053795.472 22053796.108 22053795.348
+ 35.500 31.800
+ -13468027.024 7 -10494560.213 7 20804988.256 20804987.661 20804987.020
+ 45.400 45.500
+ -5423391.346 4 -4226016.050 4 23221612.487 23221613.108 23221611.720
+ 29.700 25.900
+ -5585239.939 5 -4352132.230 3 23421389.933 23421389.289 23421389.400
+ 32.100 23.800
+ -23218823.719 7 -18092583.178 8 20303508.423 20303507.121 20303507.788
+ 47.800 51.300
+ -12105016.115 6 -9432471.287 4 22381758.168 22381757.336 22381756.831
+ 40.100 29.200
+ -21521003.471 7 -16769598.903 7 20338408.874 20338408.609 20338407.939
+ 44.500 44.000
+ -20990724.473 7 -16356409.560 6 20938988.822 20938987.461 20938988.316
+ 44.200 40.200
+ 06 1 2 18 20 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -12636270.250 6 -9846431.287 5 22036124.103 22036124.410 22036123.746
+ 36.200 32.100
+ -13500246.408 7 -10519666.222 7 20798856.831 20798856.509 20798855.838
+ 45.500 45.500
+ -5447600.175 4 -4244880.080 4 23217006.000 23217006.901 23217005.321
+ 27.900 26.800
+ -5486974.453 5 -4275561.758 3 23440089.868 23440088.126 23440089.077
+ 32.000 22.100
+ -23229307.045 7 -18100752.001 8 20301513.534 20301512.200 20301512.875
+ 47.600 51.300
+ -12133002.511 6 -9454278.854 4 22376432.297 22376431.594 22376431.179
+ 40.200 28.600
+ -21532224.789 7 -16778342.778 7 20336273.292 20336273.268 20336272.428
+ 44.200 44.000
+ -20932705.509 7 -16311200.006 6 20950029.383 20950028.210 20950028.931
+ 44.000 40.100
+ 06 1 2 18 21 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12728802.620 6 -9918534.371 5 22018516.388 22018516.233 22018515.761
+ 36.900 33.500
+ -13532222.773 7 -10544582.862 7 20792772.025 20792771.577 20792770.889
+ 45.500 45.500
+ -5471177.203 4 -4263251.759 4 23212520.266 23212519.850 23212519.243
+ 29.500 24.900
+ -5388569.130 5 -4198882.292 3 23458815.155 23458814.013 23458814.357
+ 31.000 23.000
+ -23239462.940 7 -18108665.676 8 20299580.799 20299579.565 20299580.165
+ 47.700 51.300
+ -12160413.607 6 -9475638.132 4 22371216.220 22371215.326 22371215.104
+ 40.200 29.000
+ -21542915.216 7 -16786672.973 7 20334239.169 20334238.942 20334238.230
+ 44.100 44.100
+ -20874228.898 7 -16265633.824 6 20961157.246 20961155.943 20961156.719
+ 44.200 40.000
+ 06 1 2 18 21 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -12821000.266 6 -9990376.623 5 22000972.041 22000971.629 22000971.081
+ 36.300 33.500
+ -13563955.662 7 -10569309.780 7 20786733.551 20786733.020 20786732.386
+ 45.500 45.600
+ -5494121.068 4 -4281130.081 4 23208153.463 23208153.662 23208152.652
+ 28.600 25.900
+ -5290025.884 5 -4122095.376 4 23477567.726 23477566.187 23477566.761
+ 30.400 24.600
+ -23249291.302 7 -18116324.136 8 20297710.655 20297709.304 20297710.058
+ 47.800 51.300
+ -12187248.093 6 -9496548.092 4 22366109.994 22366109.058 22366108.475
+ 39.800 29.700
+ -21553074.930 7 -16794589.625 7 20332305.679 20332305.525 20332304.791
+ 44.100 43.900
+ -20815295.423 7 -16219711.637 6 20972372.188 20972370.751 20972371.454
+ 43.800 40.000
+ 06 1 2 18 22 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12912861.420 6 -10061956.679 5 21983490.575 21983490.806 21983490.107
+ 36.800 33.400
+ -13595444.712 7 -10593846.696 7 20780741.429 20780740.860 20780740.222
+ 45.500 45.700
+ -5516431.528 4 -4298514.839 4 23203907.147 23203908.115 23203906.379
+ 26.500 27.400
+ -5191346.910 5 -4045202.702 4 23496344.689 23496344.944 23496344.308
+ 30.200 25.900
+ -23258791.627 7 -18123726.986 8 20295902.686 20295901.518 20295902.114
+ 47.900 51.500
+ -12213504.715 6 -9517007.799 4 22361113.096 22361112.280 22361112.293
+ 40.600 29.200
+ -21562704.526 7 -16802093.201 7 20330473.200 20330473.005 20330472.285
+ 44.200 44.100
+ -20755906.076 7 -16173434.242 6 20983673.476 20983672.189 20983672.740
+ 44.000 40.100
+ 06 1 2 18 22 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -13004384.258 6 -10133273.114 5 21966074.128 21966074.515 21966073.877
+ 37.100 33.900
+ -13626689.382 7 -10618193.183 7 20774795.614 20774795.170 20774794.444
+ 45.400 45.700
+ -5538108.085 4 -4315405.626 4 23199782.589 23199783.407 23199781.803
+ 28.400 26.800
+ -5092533.958 4 -3968205.647 4 23515149.276 23515148.250 23515148.397
+ 29.900 25.600
+ -23267964.160 7 -18130874.410 8 20294157.207 20294155.987 20294156.586
+ 47.700 51.400
+ -12239181.864 6 -9537015.954 4 22356227.542 22356225.980 22356226.112
+ 40.200 28.400
+ -21571804.586 7 -16809184.151 7 20328741.569 20328741.396 20328740.624
+ 44.000 44.100
+ -20696061.903 7 -16126802.441 6 20995061.780 20995060.177 20995060.872
+ 44.100 39.800
+ 06 1 2 18 23 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13095567.243 6 -10204324.721 5 21948722.247 21948723.089 21948722.004
+ 36.600 34.100
+ -13657689.368 7 -10642349.010 7 20768896.272 20768896.070 20768895.255
+ 45.300 45.700
+ -5559149.884 4 -4331801.810 4 23195779.153 23195779.539 23195778.099
+ 29.200 28.100
+ -4993589.144 5 -3891105.838 3 23533978.070 23533976.469 23533977.022
+ 30.400 23.000
+ -23276808.526 7 -18137766.122 8 20292474.276 20292472.922 20292473.709
+ 47.900 51.400
+ -12264278.579 6 -9556571.819 4 22351451.079 22351450.506 22351450.213
+ 40.600 29.200
+ -21580375.673 7 -16815862.910 7 20327110.477 20327110.381 20327109.564
+ 44.100 44.000
+ -20635763.818 7 -16079816.942 6 21006536.279 21006534.305 21006535.315
+ 44.300 39.300
+ 06 1 2 18 23 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -13186408.445 6 -10275110.006 5 21931436.179 21931436.627 21931435.809
+ 37.400 34.300
+ -13688444.158 7 -10666313.774 7 20763044.228 20763043.625 20763042.999
+ 45.300 45.800
+ -5579556.665 4 -4347703.206 4 23191895.484 23191896.181 23191894.780
+ 28.600 27.600
+ -4894514.378 4 -3813904.766 4 23552831.583 23552830.106 23552830.400
+ 29.900 24.600
+ -23285324.600 7 -18144402.028 8 20290853.789 20290852.421 20290853.106
+ 47.800 51.400
+ -12288793.334 6 -9575674.231 4 22346787.137 22346785.426 22346785.618
+ 40.700 29.500
+ -21588418.262 7 -16822129.860 7 20325580.144 20325579.916 20325579.250
+ 44.400 44.000
+ -20575012.425 7 -16032478.215 6 21018097.100 21018094.911 21018096.020
+ 44.300 38.900
+ 06 1 2 18 24 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13276906.214 6 -10345627.697 5 21914215.047 21914215.386 21914214.745
+ 37.400 34.100
+ -13718953.307 7 -10690087.136 7 20757238.437 20757237.965 20757237.270
+ 45.300 45.800
+ -5599327.756 4 -4363109.215 4 23188133.145 23188133.637 23188132.252
+ 28.600 27.400
+ -4795311.463 5 -3736603.822 3 23571709.711 23571708.003 23571708.518
+ 31.000 23.800
+ -23293512.116 7 -18150781.913 8 20289295.586 20289294.343 20289295.022
+ 47.700 51.500
+ -12312724.950 6 -9594322.240 4 22342232.653 22342231.554 22342231.340
+ 40.700 29.500
+ -21595932.630 7 -16827985.206 7 20324150.172 20324150.000 20324149.291
+ 44.600 44.400
+ -20513808.767 7 -15984787.066 6 21029743.609 21029741.748 21029742.600
+ 44.300 39.300
+ 06 1 2 18 24 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -13367058.789 6 -10415876.403 5 21897059.606 21897059.934 21897059.198
+ 37.500 34.600
+ -13749216.328 7 -10713668.706 7 20751479.628 20751479.168 20751478.442
+ 45.200 46.000
+ -5618462.713 4 -4378019.565 4 23184491.954 23184491.714 23184491.255
+ 29.200 25.300
+ -4695982.327 4 -3659204.551 3 23590610.973 23590609.781 23590609.827
+ 29.900 22.100
+ -23301370.932 7 -18156905.671 8 20287799.944 20287798.872 20287799.406
+ 47.500 51.400
+ -12336071.883 6 -9612514.652 5 22337789.295 22337788.865 22337788.416
+ 40.600 30.400
+ -21602919.530 7 -16833429.537 7 20322820.719 20322820.425 20322819.872
+ 44.500 44.100
+ -20452153.878 7 -15936744.311 6 21041476.506 21041474.349 21041475.272
+ 44.000 39.300
+ 06 1 2 18 25 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13456864.253 6 -10485854.641 5 21879970.179 21879970.416 21879969.629
+ 37.200 34.500
+ -13779232.750 7 -10737058.121 7 20745767.718 20745767.167 20745766.558
+ 45.400 45.800
+ -5636961.459 4 -4392434.171 4 23180971.838 23180972.033 23180970.927
+ 29.700 27.400
+ -4596529.018 5 -3581708.517 3 23609535.910 23609535.369 23609535.161
+ 30.600 23.800
+ -23308901.007 7 -18162773.267 8 20286367.153 20286366.015 20286366.492
+ 47.800 51.400
+ -12358832.983 6 -9630250.561 4 22333458.814 22333457.511 22333457.439
+ 40.700 29.700
+ -21609379.602 7 -16838463.357 7 20321591.412 20321591.112 20321590.489
+ 44.500 44.200
+ -20390049.030 7 -15888350.943 6 21053294.710 21053292.472 21053293.473
+ 44.000 39.300
+ 06 1 2 18 25 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -13546321.123 6 -10555561.244 5 21862947.250 21862947.183 21862946.754
+ 38.100 34.000
+ -13809002.160 7 -10760255.062 7 20740102.538 20740102.188 20740101.417
+ 45.200 45.900
+ -5654823.437 5 -4406352.609 4 23177572.957 23177573.556 23177572.293
+ 30.800 27.900
+ -4496953.388 4 -3504117.168 3 23628484.104 23628483.535 23628483.298
+ 29.200 22.100
+ -23316102.053 8 -18168384.479 8 20284996.893 20284995.649 20284996.375
+ 48.000 51.500
+ -12381007.266 6 -9647529.210 5 22329238.675 22329237.775 22329237.499
+ 40.700 30.100
+ -21615313.431 7 -16843087.117 7 20320462.237 20320461.961 20320461.333
+ 44.600 44.200
+ -20327495.100 7 -15839607.635 6 21065198.347 21065196.187 21065197.200
+ 44.000 39.100
+ 06 1 2 18 26 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13635427.576 6 -10624994.814 5 21845990.772 21845990.444 21845990.197
+ 38.200 34.300
+ -13838524.112 7 -10783259.174 7 20734484.734 20734484.328 20734483.563
+ 44.900 45.900
+ -5672048.161 5 -4419774.439 4 23174295.301 23174295.277 23174294.606
+ 31.300 27.100
+ -4397257.489 4 -3426432.100 3 23647456.046 23647455.145 23647454.944
+ 29.900 22.600
+ -23322973.866 8 -18173739.142 8 20283689.392 20283688.006 20283688.788
+ 48.100 51.500
+ -12402593.368 6 -9664349.534 4 22325130.795 22325130.106 22325129.642
+ 40.400 29.900
+ -21620721.651 7 -16847301.313 7 20319433.006 20319432.787 20319432.134
+ 44.500 44.200
+ -20264493.082 7 -15790515.165 6 21077186.823 21077185.141 21077185.923
+ 43.700 39.200
+ 06 1 2 18 26 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -13724182.162 6 -10694154.194 5 21829100.940 21829101.065 21829100.576
+ 37.800 34.700
+ -13867798.129 7 -10806070.089 7 20728914.116 20728913.663 20728913.000
+ 45.200 45.900
+ -5688635.454 5 -4432699.590 4 23171138.757 23171139.115 23171137.913
+ 30.200 28.400
+ -4297443.335 4 -3348654.892 3 23666449.610 23666449.535 23666448.984
+ 29.500 23.800
+ -23329516.333 8 -18178837.174 8 20282444.346 20282443.085 20282443.793
+ 48.100 51.400
+ -12423589.984 6 -9680710.506 4 22321135.028 22321134.535 22321134.127
+ 40.500 29.500
+ -21625604.709 7 -16851106.290 7 20318503.689 20318503.627 20318502.839
+ 44.700 44.300
+ -20201043.865 7 -15741074.234 6 21089260.724 21089259.169 21089259.810
+ 43.700 39.100
+ 06 1 2 18 27 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13812582.971 6 -10763037.893 5 21812278.855 21812279.281 21812278.413
+ 38.200 35.300
+ -13896823.769 7 -10828687.467 7 20723390.812 20723390.257 20723389.577
+ 45.100 46.100
+ -5704584.862 5 -4445127.700 4 23168103.853 23168104.345 23168103.006
+ 30.600 29.700
+ -4197512.675 5 -3270786.926 3 23685466.304 23685465.463 23685465.632
+ 30.400 21.100
+ -23335729.105 8 -18183678.299 8 20281261.782 20281260.765 20281261.401
+ 48.100 51.400
+ -12443996.070 6 -9696611.348 4 22317252.470 22317251.426 22317251.125
+ 40.600 29.500
+ -21629963.423 7 -16854502.689 7 20317674.325 20317674.235 20317673.438
+ 44.400 44.400
+ -20137148.749 7 -15691285.843 6 21101419.217 21101417.897 21101418.487
+ 43.400 38.800
+ 06 1 2 18 27 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -13900628.391 6 -10831644.667 5 21795524.420 21795524.526 21795523.900
+ 38.200 34.900
+ -13925600.586 7 -10851110.952 7 20717914.746 20717914.206 20717913.591
+ 45.300 46.100
+ -5719896.134 5 -4457058.538 4 23165190.230 23165190.196 23165189.549
+ 32.300 28.600
+ -4097467.410 5 -3192829.602 3 23704505.046 23704503.063 23704504.329
+ 30.800 20.500
+ -23341612.112 8 -18188262.462 8 20280142.632 20280141.206 20280142.013
+ 48.100 51.400
+ -12463810.655 6 -9712051.258 5 22313481.953 22313481.095 22313480.533
+ 40.800 30.200
+ -21633798.250 7 -16857490.863 7 20316944.815 20316944.436 20316943.822
+ 44.700 44.400
+ -20072808.604 7 -15641150.678 6 21113662.513 21113661.335 21113661.887
+ 43.400 38.600
+ 06 1 2 18 28 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13988316.961 6 -10899973.375 5 21778837.268 21778837.762 21778836.993
+ 37.800 34.400
+ -13954128.168 7 -10873340.232 7 20712486.263 20712485.535 20712485.154
+ 45.400 46.000
+ -5734568.888 5 -4468491.845 4 23162398.019 23162398.309 23162397.264
+ 31.300 29.500
+ -3997309.451 4 -3114784.484 3 23723564.095 23723562.831 23723563.373
+ 28.800 20.500
+ -23347165.036 8 -18192589.414 8 20279085.964 20279084.551 20279085.281
+ 48.000 51.300
+ -12483032.510 6 -9727029.325 4 22309823.563 22309823.027 22309822.664
+ 40.800 29.700
+ -21637110.112 7 -16860071.531 7 20316314.473 20316314.159 20316313.595
+ 44.500 44.300
+ -20008024.689 7 -15590669.718 6 21125990.774 21125989.448 21125989.997
+ 43.400 38.900
+ 06 1 2 18 28 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -14075646.749 6 -10968022.509 5 21762219.227 21762219.528 21762218.900
+ 38.500 34.900
+ -13982405.931 7 -10895374.849 7 20707104.990 20707104.515 20707103.902
+ 45.400 46.100
+ -5748603.526 5 -4479427.914 4 23159726.983 23159727.588 23159726.114
+ 30.800 28.800
+ -3897040.627 4 -3036652.989 3 23742644.767 23742643.964 23742643.667
+ 27.600 22.100
+ -23352387.829 7 -18196659.118 8 20278091.856 20278090.643 20278091.252
+ 47.900 51.300
+ -12501660.715 6 -9741544.803 4 22306279.334 22306277.912 22306277.995
+ 41.100 29.500
+ -21639899.465 7 -16862245.053 7 20315783.865 20315783.236 20315782.874
+ 44.600 44.300
+ -19942798.243 7 -15539843.902 6 21138402.847 21138401.641 21138402.181
+ 43.600 38.500
+ 06 1 2 18 29 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14162616.161 6 -11035790.836 5 21745669.535 21745669.742 21745669.253
+ 38.800 34.900
+ -14010433.379 7 -10917214.413 7 20701771.473 20701771.100 20701770.288
+ 45.100 46.200
+ -5761998.950 5 -4489865.911 4 23157178.233 23157178.575 23157177.404
+ 31.600 29.500
+ -3796662.899 4 -2958436.618 3 23761745.723 23761745.167 23761745.194
+ 29.500 22.600
+ -23357280.487 8 -18200471.578 8 20277160.956 20277159.553 20277160.412
+ 48.000 51.300
+ -12519694.165 6 -9755596.841 5 22302847.389 22302846.259 22302846.184
+ 40.900 30.200
+ -21642167.058 7 -16864012.006 7 20315352.060 20315351.781 20315351.256
+ 44.700 44.300
+ -19877130.191 7 -15488674.004 6 21150899.019 21150897.725 21150898.434
+ 43.500 38.100
+ 06 1 2 18 29 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -14249223.756 6 -11103277.211 5 21729188.360 21729188.976 21729188.173
+ 38.600 35.700
+ -14038210.116 7 -10938858.621 7 20696485.798 20696485.330 20696484.694
+ 45.300 46.200
+ -5774755.838 5 -4499806.314 4 23154750.114 23154750.664 23154749.362
+ 30.200 28.800
+ -3696178.191 4 -2880136.892 3 23780866.970 23780866.217 23780866.169
+ 28.800 18.600
+ -23361842.804 8 -18204026.627 8 20276292.830 20276291.318 20276292.310
+ 48.300 51.200
+ -12537131.707 6 -9769184.533 4 22299529.105 22299528.112 22299528.002
+ 41.000 29.700
+ -21643913.911 7 -16865373.187 7 20315019.464 20315019.402 20315018.644
+ 44.700 44.200
+ -19811021.744 7 -15437160.958 6 21163479.254 21163477.871 21163478.521
+ 43.600 38.400
+ 06 1 2 18 30 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14335467.735 6 -11170480.253 5 21712777.243 21712777.155 21712776.772
+ 38.900 35.700
+ -14065735.762 7 -10960307.178 7 20691247.830 20691247.330 20691246.746
+ 45.400 46.100
+ -5786873.587 5 -4509248.710 4 23152444.252 23152444.820 23152443.533
+ 31.000 29.000
+ -3595588.356 4 -2801755.258 3 23800008.778 23800007.897 23800008.058
+ 28.400 19.300
+ -23366074.529 8 -18207324.073 8 20275487.413 20275486.043 20275486.879
+ 48.100 51.200
+ -12553972.598 6 -9782307.296 4 22296324.363 22296323.526 22296323.228
+ 40.900 29.900
+ -21645140.635 7 -16866329.069 7 20314786.080 20314785.959 20314785.260
+ 44.600 44.200
+ -19744473.787 7 -15385305.438 6 21176143.500 21176141.429 21176142.342
+ 43.400 38.300
+ 06 1 2 18 30 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -14421346.606 6 -11237398.798 5 21696434.818 21696434.834 21696434.279
+ 38.300 35.600
+ -14093009.746 7 -10981559.639 7 20686057.620 20686057.246 20686056.534
+ 45.300 46.200
+ -5798351.969 5 -4518192.899 4 23150260.602 23150260.740 23150259.813
+ 31.600 28.800
+ -3494895.230 4 -2723293.105 3 23819170.041 23819169.556 23819169.328
+ 27.900 22.100
+ -23369975.796 8 -18210364.020 8 20274745.116 20274743.706 20274744.506
+ 48.000 51.200
+ -12570215.680 6 -9794964.250 4 22293233.155 22293232.634 22293232.120
+ 40.700 29.700
+ -21645847.833 7 -16866880.136 7 20314651.772 20314651.346 20314650.891
+ 44.700 44.300
+ -19677487.612 7 -15333108.456 6 21188890.046 21188888.535 21188889.255
+ 43.400 38.000
+ 06 1 2 18 31 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14506858.792 6 -11304031.605 5 21680162.283 21680162.258 21680161.666
+ 38.000 35.400
+ -14120031.666 7 -11002615.680 7 20680915.760 20680915.227 20680914.630
+ 45.400 46.300
+ -5809191.254 5 -4526639.092 4 23148197.673 23148197.965 23148196.896
+ 31.100 28.400
+ -3394100.494 4 -2644751.816 3 23838351.052 23838350.161 23838350.263
+ 28.800 23.800
+ -23373545.760 8 -18213145.807 8 20274065.721 20274064.361 20274065.149
+ 48.100 51.300
+ -12585859.910 6 -9807154.555 4 22290256.274 22290255.495 22290255.081
+ 40.600 29.900
+ -21646036.190 7 -16867026.906 7 20314615.695 20314615.537 20314614.985
+ 44.800 44.300
+ -19610064.596 7 -15280571.086 6 21201720.113 21201718.645 21201719.442
+ 43.400 37.600
+ 06 1 2 18 31 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -14592002.463 6 -11370377.264 5 21663960.274 21663959.988 21663959.710
+ 39.100 35.800
+ -14146800.907 7 -11023474.831 7 20675821.734 20675821.216 20675820.612
+ 45.400 46.400
+ -5819391.095 5 -4534587.019 4 23146257.053 23146256.703 23146256.324
+ 32.100 28.800
+ -3293206.185 4 -2566132.940 3 23857551.197 23857550.014 23857550.363
+ 29.500 23.000
+ -23376784.600 7 -18215669.577 8 20273449.250 20273448.034 20273448.718
+ 47.900 51.200
+ -12600904.648 6 -9818877.718 5 22287393.621 22287392.634 22287392.494
+ 41.000 30.100
+ -21645706.719 7 -16866770.173 7 20314678.558 20314678.238 20314677.690
+ 44.600 44.300
+ -19542205.764 7 -15227694.115 6 21214633.694 21214632.055 21214632.830
+ 43.300 38.000
+ 06 1 2 18 32 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14676776.199 6 -11436434.670 5 21647828.214 21647827.867 21647827.596
+ 39.300 35.900
+ -14173317.177 7 -11044136.860 7 20670775.858 20670775.231 20670774.660
+ 45.400 46.200
+ -5828951.494 5 -4542036.654 4 23144437.007 23144437.499 23144436.642
+ 32.100 28.400
+ -3192214.052 4 -2487437.796 3 23876767.866 23876767.635 23876767.240
+ 24.600 21.100
+ -23379692.276 8 -18217935.302 8 20272896.097 20272894.730 20272895.597
+ 48.200 51.200
+ -12615349.101 6 -9830133.131 5 22284644.477 22284644.173 22284643.603
+ 41.000 30.100
+ -21644860.451 7 -16866110.740 7 20314839.711 20314839.355 20314838.760
+ 44.800 44.400
+ -19473912.365 7 -15174478.519 6 21227629.525 21227627.794 21227628.582
+ 43.200 37.700
+ 06 1 2 18 32 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -14761178.516 6 -11502202.651 6 21631767.193 21631766.765 21631766.508
+ 39.200 36.200
+ -14199579.824 7 -11064601.263 7 20665778.390 20665777.626 20665777.205
+ 45.500 46.200
+ -5837872.643 5 -4548988.207 4 23142739.737 23142740.078 23142738.683
+ 30.600 28.600
+ -3091125.696 4 -2408667.710 2 23896004.679 23896003.531 23896004.087
+ 27.600 17.800
+ -23382268.121 8 -18219942.463 8 20272406.135 20272404.574 20272405.487
+ 48.100 51.400
+ -12629192.084 6 -9840919.862 5 22282011.056 22282009.782 22282009.510
+ 41.100 30.200
+ -21643497.933 7 -16865049.039 7 20315098.867 20315098.604 20315097.917
+ 44.400 44.400
+ -19405185.568 7 -15120925.210 6 21240707.961 21240706.017 21240706.812
+ 43.000 37.200
+ 06 1 2 18 33 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14845207.648 6 -11567679.841 6 21615776.435 21615776.631 21615776.069
+ 39.700 36.100
+ -14225588.446 7 -11084867.717 7 20660829.032 20660828.428 20660827.914
+ 45.300 46.400
+ -5846154.367 5 -4555441.505 4 23141163.918 23141164.090 23141163.156
+ 32.000 28.100
+ -2989943.436 4 -2329824.401 3 23915259.945 23915258.248 23915259.112
+ 29.500 20.500
+ -23384512.566 8 -18221691.383 8 20271978.906 20271977.520 20271978.290
+ 48.000 51.400
+ -12642432.749 6 -9851237.243 4 22279490.793 22279489.832 22279489.881
+ 41.100 29.200
+ -21641620.242 7 -16863585.907 7 20315456.104 20315455.883 20315455.204
+ 44.600 44.400
+ -19336026.628 7 -15067035.154 6 21253868.576 21253866.500 21253867.425
+ 43.100 37.200
+ 06 1 2 18 33 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -14928862.420 6 -11632865.327 6 21599857.468 21599857.517 21599857.045
+ 39.200 36.200
+ -14251342.543 7 -11104935.838 7 20655928.129 20655927.568 20655926.996
+ 45.200 46.300
+ -5853796.686 5 -4561396.536 4 23139709.680 23139709.465 23139708.896
+ 32.300 28.600
+ -2888668.995 4 -2250909.269 3 23934531.732 23934530.734 23934531.003
+ 27.400 22.100
+ -23386425.345 8 -18223181.865 8 20271615.018 20271613.562 20271614.370
+ 48.300 51.400
+ -12655070.409 6 -9861084.755 4 22277086.327 22277085.064 22277085.138
+ 41.000 29.700
+ -21639228.106 7 -16861721.904 7 20315911.346 20315911.126 20315910.471
+ 44.600 44.400
+ -19266436.976 7 -15012809.473 6 21267110.791 21267108.955 21267109.966
+ 43.200 37.100
+ 06 1 2 18 34 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15012140.969 6 -11697757.659 6 21584009.766 21584009.962 21584009.451
+ 39.300 36.300
+ -14276841.642 7 -11124805.260 7 20651075.794 20651075.105 20651074.694
+ 45.300 46.300
+ -5860800.289 5 -4566853.887 4 23138376.592 23138377.021 23138375.783
+ 31.100 29.700
+ -2787304.042 4 -2171923.632 3 23953821.342 23953819.889 23953819.890
+ 25.600 21.100
+ -23388006.226 8 -18224413.722 8 20271314.214 20271312.693 20271313.495
+ 48.100 51.400
+ -12667104.459 6 -9870461.913 5 22274796.549 22274795.231 22274795.036
+ 40.900 30.200
+ -21636322.108 7 -16859457.498 7 20316464.305 20316464.161 20316463.390
+ 44.700 44.300
+ -19196417.563 7 -14958248.929 6 21280435.212 21280433.342 21280434.222
+ 43.000 37.300
+ 06 1 2 18 34 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -15095042.010 6 -11762355.833 6 21568234.686 21568234.355 21568234.254
+ 39.900 36.300
+ -14302085.144 7 -11144475.517 7 20646272.333 20646271.400 20646271.109
+ 45.200 46.200
+ -5867164.559 5 -4571813.068 4 23137165.640 23137166.153 23137164.697
+ 32.000 29.700
+ -2685850.405 4 -2092868.904 3 23973127.720 23973125.956 23973126.493
+ 28.400 22.600
+ -23389254.849 8 -18225386.675 8 20271076.356 20271075.143 20271075.836
+ 48.100 51.400
+ -12678534.012 6 -9879368.038 4 22272620.796 22272620.007 22272619.875
+ 41.100 29.900
+ -21632903.638 7 -16856793.754 7 20317114.719 20317114.647 20317113.848
+ 44.600 44.300
+ -19125969.785 7 -14903354.595 6 21293840.692 21293839.070 21293839.894
+ 43.200 36.800
+ 06 1 2 18 35 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15177563.898 6 -11826658.568 6 21552530.965 21552531.080 21552530.529
+ 39.500 36.700
+ -14327072.762 7 -11163946.377 7 20641517.164 20641516.537 20641515.976
+ 45.200 46.400
+ -5872890.304 5 -4576274.683 4 23136075.773 23136076.592 23136075.059
+ 31.100 29.200
+ -2584309.775 4 -2013746.356 3 23992448.801 23992448.115 23992448.271
+ 26.200 19.900
+ -23390171.150 8 -18226100.676 8 20270902.159 20270900.795 20270901.571
+ 48.200 51.400
+ -12689358.138 6 -9887802.402 4 22270561.388 22270560.046 22270560.170
+ 41.000 29.900
+ -21628973.301 7 -16853731.152 7 20317862.825 20317862.533 20317861.946
+ 45.000 44.300
+ -19055095.211 7 -14848127.680 6 21307327.553 21307326.221 21307326.911
+ 42.800 37.100
+ 06 1 2 18 35 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -15259705.141 6 -11890664.685 6 21536900.068 21536900.068 21536899.605
+ 39.800 36.500
+ -14351803.931 7 -11183217.408 7 20636810.814 20636810.343 20636809.742
+ 45.200 46.400
+ -5877977.432 5 -4580238.680 4 23135108.281 23135108.227 23135107.304
+ 30.800 29.500
+ -2482683.931 4 -1934557.432 3 24011788.327 24011787.028 24011787.636
+ 28.400 21.100
+ -23390754.998 8 -18226555.620 8 20270791.029 20270789.619 20270790.436
+ 48.100 51.400
+ -12699575.941 6 -9895764.303 5 22268617.355 22268615.660 22268615.938
+ 41.400 30.600
+ -21624532.132 7 -16850270.501 7 20318707.886 20318707.636 20318707.029
+ 44.800 44.300
+ -18983794.808 7 -14792568.958 6 21320895.492 21320894.248 21320894.908
+ 42.900 37.100
+ 06 1 2 18 36 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15341464.228 6 -11954373.039 6 21521341.747 21521341.626 21521341.365
+ 40.300 36.500
+ -14376278.124 7 -11202288.199 7 20632153.603 20632152.971 20632152.506
+ 45.200 46.400
+ -5882426.416 4 -4583705.404 4 23134260.784 23134261.848 23134260.284
+ 29.500 29.000
+ -2380974.799 4 -1855303.573 3 24031142.819 24031141.861 24031142.262
+ 27.100 19.300
+ -23391006.210 8 -18226751.369 8 20270743.187 20270741.812 20270742.591
+ 48.200 51.400
+ -12709187.466 6 -9903253.783 5 22266787.508 22266786.885 22266786.725
+ 41.200 30.600
+ -21619581.101 7 -16846412.552 7 20319649.990 20319649.805 20319649.126
+ 44.700 44.500
+ -18912069.913 7 -14736679.449 6 21334544.136 21334543.123 21334543.720
+ 42.700 36.700
+ 06 1 2 18 36 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -15422839.605 6 -12017782.386 6 21505856.515 21505856.547 21505856.063
+ 39.800 37.200
+ -14400494.907 7 -11221158.407 7 20627545.211 20627544.735 20627544.082
+ 45.100 46.400
+ -5886236.995 5 -4586674.689 4 23133536.508 23133536.490 23133535.421
+ 30.600 29.200
+ -2279184.046 4 -1775986.172 3 24050512.457 24050512.219 24050511.884
+ 25.600 22.100
+ -23390925.020 8 -18226688.101 8 20270758.524 20270757.292 20270758.039
+ 48.100 51.300
+ -12718191.626 6 -9910269.997 5 22265074.249 22265073.406 22265073.278
+ 41.200 30.200
+ -21614120.972 7 -16842157.901 7 20320689.123 20320688.845 20320688.210
+ 44.700 44.400
+ -18839922.036 7 -14680460.356 6 21348273.796 21348272.610 21348273.002
+ 42.500 37.100
+ 06 1 2 18 37 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15503829.808 6 -12080891.605 6 21490444.480 21490444.703 21490444.157
+ 40.700 36.900
+ -14424453.662 7 -11239827.558 7 20622985.942 20622985.677 20622984.786
+ 44.800 46.600
+ -5889408.991 5 -4589146.362 5 23132932.581 23132933.159 23132931.953
+ 30.800 30.100
+ -2177313.355 4 -1696606.460 3 24069898.536 24069897.776 24069897.537
+ 26.800 20.500
+ -23390510.876 8 -18226365.385 8 20270837.414 20270836.064 20270836.866
+ 48.100 51.300
+ -12726587.964 6 -9916812.580 4 22263476.858 22263475.562 22263475.562
+ 41.400 29.900
+ -21608152.897 7 -16837507.448 7 20321824.866 20321824.548 20321823.896
+ 44.800 44.500
+ -18767352.179 7 -14623912.452 6 21362083.663 21362082.071 21362082.646
+ 42.300 36.500
+ 06 1 2 18 37 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -15584433.515 6 -12143699.654 6 21475106.198 21475106.205 21475105.885
+ 41.000 36.600
+ -14448154.003 7 -11258295.343 7 20618475.913 20618475.480 20618474.758
+ 44.800 46.500
+ -5891943.371 5 -4591121.209 5 23132450.054 23132450.862 23132449.228
+ 30.600 30.200
+ -2075364.701 4 -1617166.021 3 24089298.884 24089297.409 24089297.900
+ 28.400 19.300
+ -23389763.576 8 -18225783.068 8 20270979.544 20270978.192 20270978.954
+ 48.000 51.200
+ -12734375.838 6 -9922881.040 4 22261994.617 22261993.400 22261993.479
+ 41.100 29.900
+ -21601677.793 7 -16832461.897 7 20323056.852 20323056.711 20323055.980
+ 44.700 44.400
+ -18694362.063 7 -14567037.076 6 21375973.735 21375971.778 21375972.380
+ 42.200 36.600
+ 06 1 2 18 38 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15664649.213 6 -12206205.364 6 21459841.387 21459841.668 21459841.094
+ 40.600 37.000
+ -14471595.354 7 -11276561.327 7 20614015.311 20614014.715 20614014.092
+ 44.900 46.500
+ -5893840.594 5 -4592599.575 5 23132089.189 23132089.686 23132088.442
+ 31.000 30.100
+ -1973339.807 4 -1537666.097 2 24108712.403 24108712.186 24108711.787
+ 26.200 16.100
+ -23388682.990 7 -18224941.047 8 20271185.044 20271183.851 20271184.503
+ 47.800 51.200
+ -12741554.359 6 -9928474.676 5 22260628.802 22260627.661 22260627.433
+ 41.100 30.100
+ -21594696.459 7 -16827021.889 7 20324385.143 20324385.185 20324384.324
+ 44.700 44.400
+ -18620953.131 7 -14509835.352 6 21389943.114 21389940.909 21389941.779
+ 42.400 36.300
+ 06 1 2 18 38 30.0000000 0 8G04G07G09G11G17G20G24G28
+ -15744475.392 6 -12268407.539 6 21444651.125 21444651.187 21444650.778
+ 40.900 37.200
+ -14494777.266 7 -11294625.144 7 20609603.889 20609603.453 20609602.729
+ 44.900 46.700
+ -5895101.029 5 -4593581.715 5 23131849.207 23131849.623 23131848.271
+ 30.200 30.200
+ -1871240.148 4 -1458107.966 2 24128142.292 24128141.219 24128141.229
+ 24.600 17.800
+ -23387269.163 7 -18223839.359 8 20271454.076 20271452.936 20271453.491
+ 47.800 51.100
+ -12748123.319 6 -9933593.334 5 22259378.659 22259377.429 22259377.368
+ 41.200 30.200
+ -21587210.064 7 -16821188.336 7 20325809.703 20325809.767 20325808.895
+ 44.600 44.300
+ -18547126.555 7 -14452308.182 6 21403991.438 21403989.644 21403990.242
+ 42.200 36.200
+ 06 1 2 18 39 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15823910.647 6 -12330305.098 6 21429534.949 21429534.965 21429534.612
+ 40.500 37.200
+ -14517699.259 7 -11312486.432 7 20605242.025 20605241.437 20605240.827
+ 45.100 46.700
+ -5895724.703 5 -4594067.684 5 23131730.318 23131731.378 23131729.650
+ 30.400 30.600
+ -1769067.674 4 -1378493.117 3 24147585.155 24147584.085 24147584.156
+ 26.500 19.900
+ -23385521.833 8 -18222477.794 8 20271786.568 20271785.395 20271786.054
+ 48.100 51.200
+ -12754082.310 6 -9938236.698 5 22258244.456 22258243.368 22258243.254
+ 41.300 30.600
+ -21579219.983 7 -16814962.300 7 20327330.475 20327330.213 20327329.553
+ 44.700 44.300
+ -18472883.755 7 -14394456.673 6 21418119.142 21418117.601 21418118.222
+ 42.200 36.000
+ 06 1 2 18 39 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -235659.101 3 -183629.734 3 24768666.973 24768665.921 24768665.361
+ 22.600 20.500
+ -15902953.637 6 -12391896.997 6 21414493.452 21414493.396 21414493.123
+ 40.600 36.900
+ -14540360.792 7 -11330144.765 7 20600929.738 20600928.996 20600928.439
+ 44.800 46.500
+ -5895712.136 5 -4594057.898 5 23131732.676 23131733.837 23131732.040
+ 31.300 31.500
+ -1666823.981 4 -1298822.739 2 24167041.049 24167040.332 24167040.330
+ 25.600 17.000
+ -23383440.616 7 -18220856.065 8 20272182.847 20272181.421 20272182.170
+ 47.900 51.100
+ -12759430.534 6 -9942404.137 4 22257226.975 22257225.592 22257225.801
+ 41.300 29.700
+ -21570726.947 7 -16808344.347 7 20328946.620 20328946.390 20328945.694
+ 44.800 44.500
+ -18398225.924 7 -14336281.779 5 21432325.644 21432324.554 21432325.009
+ 42.100 35.700
+ 06 1 2 18 40 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -345988.259 3 -269600.490 3 24747670.813 24747670.839 24747670.402
+ 21.100 19.900
+ -15981602.858 6 -12453182.055 6 21399527.279 21399527.238 21399526.889
+ 41.100 37.700
+ -14562761.309 7 -11347599.703 7 20596666.669 20596666.403 20596665.594
+ 44.800 46.700
+ -5895063.492 5 -4593552.450 5 23131856.523 23131857.181 23131855.607
+ 31.300 31.300
+ -1564511.016 4 -1219098.400 3 24186510.242 24186509.875 24186509.314
+ 25.900 19.300
+ -23381025.614 8 -18218974.242 8 20272642.343 20272640.961 20272641.722
+ 48.000 51.000
+ -12764167.416 6 -9946095.204 4 22256325.480 22256324.382 22256324.394
+ 41.400 29.500
+ -21561732.147 7 -16801335.409 7 20330658.260 20330658.012 20330657.304
+ 44.800 44.400
+ -18323155.078 7 -14277785.048 6 21446611.336 21446610.056 21446610.701
+ 42.400 36.000
+ 06 1 2 18 40 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -456228.684 3 -355502.115 3 24726692.925 24726692.488 24726692.117
+ 21.600 18.600
+ -16059857.091 6 -12514159.324 6 21384635.449 21384635.863 21384635.334
+ 40.700 37.800
+ -14584900.409 7 -11364850.939 7 20592454.161 20592453.437 20592452.982
+ 45.000 46.800
+ -5893779.467 5 -4592551.912 5 23132101.143 23132101.576 23132100.405
+ 32.300 31.300
+ -1462130.423 4 -1139321.327 2 24205992.514 24205991.964 24205991.894
+ 25.600 16.100
+ -23378276.581 8 -18216832.134 8 20273165.430 20273164.099 20273164.892
+ 48.100 51.000
+ -12768292.711 6 -9949309.710 5 22255540.580 22255539.588 22255539.285
+ 41.300 30.800
+ -21552236.615 7 -16793936.295 7 20332465.143 20332464.921 20332464.262
+ 44.700 44.200
+ -18247672.114 7 -14218967.183 6 21460975.163 21460974.092 21460974.524
+ 42.100 36.000
+ 06 1 2 18 41 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -566378.546 2 -441333.212 3 24705731.883 24705731.847 24705731.691
+ 17.000 20.500
+ -16137714.749 6 -12574827.582 6 21369819.973 21369819.758 21369819.571
+ 41.100 37.200
+ -14606777.496 7 -11381898.014 7 20588291.091 20588290.331 20588289.913
+ 45.000 46.600
+ -5891861.247 5 -4591057.206 5 23132466.262 23132466.353 23132465.504
+ 32.100 30.800
+ -1359683.741 3 -1059492.787 3 24225486.441 24225487.374 24225485.995
+ 21.600 18.600
+ -23375193.641 8 -18214429.838 8 20273752.073 20273750.753 20273751.554
+ 48.100 51.000
+ -12771806.116 6 -9952047.416 5 22254871.779 22254871.121 22254870.526
+ 40.900 30.400
+ -21542241.477 7 -16786147.874 7 20334367.060 20334366.922 20334366.156
+ 44.600 44.200
+ -18171778.684 6 -14159829.474 5 21475417.129 21475416.216 21475416.533
+ 41.800 35.500
+ 06 1 2 18 41 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -676436.380 3 -527092.597 2 24684788.976 24684788.970 24684788.162
+ 20.500 16.100
+ -16215174.592 6 -12635185.862 6 21355079.937 21355079.559 21355079.457
+ 41.100 37.500
+ -14628392.057 7 -11398740.521 7 20584177.801 20584177.252 20584176.708
+ 44.700 46.800
+ -5889308.584 5 -4589068.123 5 23132952.423 23132952.209 23132951.517
+ 32.700 30.400
+ -1257172.771 4 -979614.192 3 24244996.069 24244994.966 24244994.880
+ 26.500 20.500
+ -23371776.621 8 -18211767.222 8 20274402.384 20274400.939 20274401.773
+ 48.000 51.000
+ -12774706.965 6 -9954307.811 4 22254319.723 22254318.817 22254318.499
+ 41.100 29.900
+ -21531747.806 7 -16777970.989 7 20336363.981 20336363.805 20336363.104
+ 44.800 44.300
+ -18095476.598 6 -14100373.336 5 21489937.678 21489936.057 21489936.563
+ 41.500 35.900
+ 06 1 2 18 42 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -786400.662 4 -612779.038 3 24663863.289 24663863.126 24663862.675
+ 24.200 20.500
+ -16292235.350 6 -12695233.163 6 21340415.687 21340415.570 21340415.188
+ 41.200 38.100
+ -14649743.681 7 -11415378.136 7 20580114.664 20580114.306 20580113.550
+ 44.900 47.000
+ -5886121.782 4 -4586584.897 5 23133557.896 23133558.376 23133557.059
+ 29.500 30.100
+ -1154599.076 4 -899686.676 2 24264514.313 24264513.642 24264513.708
+ 25.300 17.000
+ -23368025.015 8 -18208843.888 8 20275116.196 20275114.897 20275115.686
+ 48.200 51.000
+ -12776995.178 6 -9956090.817 5 22253884.325 22253883.493 22253883.111
+ 41.100 30.400
+ -21520756.846 7 -16769406.608 7 20338455.737 20338455.373 20338454.744
+ 44.900 44.300
+ -18018766.776 6 -14040599.482 5 21504534.958 21504533.640 21504533.962
+ 41.700 35.800
+ 06 1 2 18 42 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -896269.876 4 -698391.477 3 24642956.631 24642956.070 24642955.588
+ 27.100 22.100
+ -16368895.431 6 -12754968.256 6 21325827.657 21325827.558 21325827.215
+ 41.200 38.100
+ -14670831.676 7 -11431810.334 7 20576101.667 20576101.352 20576100.507
+ 44.700 47.000
+ -5882301.909 5 -4583608.406 4 23134285.301 23134285.270 23134284.479
+ 30.600 29.200
+ -1051964.321 4 -819711.610 3 24284043.612 24284045.108 24284043.567
+ 24.600 19.300
+ -23363938.819 8 -18205659.839 8 20275894.109 20275892.505 20275893.405
+ 48.200 51.100
+ -12778670.365 6 -9957396.141 5 22253565.594 22253564.881 22253564.215
+ 41.000 30.800
+ -21509269.397 7 -16760455.353 7 20340641.534 20340641.464 20340640.754
+ 45.100 44.300
+ -17941650.917 6 -13980509.241 5 21519209.945 21519208.178 21519208.618
+ 41.400 35.600
+ 06 1 2 18 43 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1006042.495 4 -783928.588 3 24622067.185 24622066.257 24622066.568
+ 25.900 18.600
+ -16445153.658 6 -12814390.213 6 21311315.990 21311315.959 21311315.648
+ 41.400 38.100
+ -14691655.754 7 -11448036.878 7 20572139.073 20572138.556 20572137.979
+ 44.700 47.000
+ -5877849.538 4 -4580139.024 4 23135131.869 23135132.643 23135131.243
+ 29.900 29.900
+ -949270.338 3 -739690.357 3 24303586.654 24303587.011 24303585.633
+ 21.600 19.300
+ -23359518.078 8 -18202215.104 8 20276735.174 20276733.689 20276734.586
+ 48.200 51.000
+ -12779732.154 6 -9958223.491 5 22253363.567 22253362.469 22253362.272
+ 41.100 30.600
+ -21497286.804 7 -16751118.270 7 20342921.923 20342921.707 20342921.043
+ 45.100 44.300
+ -17864130.537 6 -13920103.779 5 21533961.869 21533959.754 21533960.577
+ 41.400 35.100
+ 06 1 2 18 43 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1115716.871 3 -869389.052 3 24601197.082 24601196.142 24601195.766
+ 23.800 19.900
+ -16521008.648 6 -12873497.957 6 21296881.305 21296881.310 21296880.929
+ 41.400 38.500
+ -14712215.222 7 -11464057.238 7 20568226.839 20568226.233 20568225.645
+ 44.900 46.900
+ -5872765.222 5 -4576177.226 4 23136099.409 23136100.124 23136098.710
+ 30.600 29.000
+ -846518.759 3 -659624.282 1 24323139.731 24323139.151 24323138.983
+ 22.100 11.000
+ -23354762.594 8 -18198509.529 8 20277640.157 20277638.648 20277639.544
+ 48.300 51.000
+ -12780180.160 6 -9958572.553 4 22253278.164 22253277.227 22253276.851
+ 41.300 29.900
+ -21484810.279 7 -16741396.302 7 20345296.130 20345295.819 20345295.198
+ 45.000 44.300
+ -17786207.061 6 -13859384.211 5 21548790.077 21548787.990 21548788.891
+ 41.500 34.900
+ 06 1 2 18 44 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1225291.334 3 -954771.560 3 24580344.087 24580344.978 24580343.905
+ 23.000 20.500
+ -16596459.202 6 -12932290.562 6 21282523.608 21282523.445 21282523.259
+ 41.600 38.400
+ -14732509.596 7 -11479871.032 7 20564364.724 20564364.375 20564363.587
+ 44.700 47.100
+ -5867049.718 5 -4571723.604 4 23137187.478 23137188.137 23137186.497
+ 30.400 29.900
+ -743711.075 3 -579514.375 3 24342703.511 24342703.288 24342702.748
+ 23.800 18.600
+ -23349672.167 8 -18194542.963 8 20278608.805 20278607.383 20278608.176
+ 48.200 51.100
+ -12780014.132 6 -9958443.157 5 22253309.977 22253308.863 22253308.650
+ 41.400 30.200
+ -21471841.008 7 -16731290.382 7 20347763.972 20347763.622 20347763.059
+ 45.000 44.100
+ -17707882.391 6 -13798352.033 5 21563695.020 21563692.977 21563693.744
+ 41.400 35.500
+ 06 1 2 18 44 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1334764.513 4 -1040075.141 3 24559513.032 24559512.731 24559511.775
+ 25.900 23.000
+ -16671503.873 6 -12990766.908 6 21268243.230 21268242.571 21268242.752
+ 41.700 37.800
+ -14752538.397 7 -11495477.884 7 20560553.405 20560552.982 20560552.352
+ 44.800 47.000
+ -5860703.682 5 -4566778.637 4 23138395.062 23138395.326 23138394.342
+ 30.600 29.200
+ -640849.156 3 -499362.304 2 24362278.259 24362277.833 24362277.118
+ 23.400 17.000
+ -23344246.860 8 -18190315.448 8 20279640.991 20279639.758 20279640.565
+ 48.200 51.000
+ -12779233.982 6 -9957835.230 5 22253458.064 22253457.330 22253457.023
+ 41.400 30.600
+ -21458380.200 7 -16720801.438 7 20350325.394 20350325.134 20350324.551
+ 45.000 44.300
+ -17629157.685 6 -13737008.148 5 21578675.354 21578673.828 21578674.365
+ 41.300 35.300
+ 06 1 2 18 45 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1444134.893 4 -1125298.619 3 24538699.681 24538699.778 24538699.467
+ 26.200 22.600
+ -16746141.653 7 -13048926.204 6 21254040.072 21254039.886 21254039.671
+ 42.000 38.400
+ -14772301.061 7 -11510877.362 7 20556792.926 20556792.300 20556791.754
+ 44.800 46.900
+ -5853727.881 5 -4561342.950 5 23139722.288 23139723.112 23139721.607
+ 31.000 30.100
+ -537934.485 4 -419169.069 3 24381861.938 24381861.830 24381861.316
+ 25.300 19.900
+ -23338486.078 8 -18185826.529 8 20280737.282 20280735.951 20280736.835
+ 48.300 51.000
+ -12777839.605 6 -9956748.675 5 22253723.577 22253722.654 22253722.322
+ 41.300 30.600
+ -21444428.754 7 -16709930.179 7 20352980.483 20352980.155 20352979.516
+ 45.100 44.400
+ -17550034.735 6 -13675353.940 5 21593731.597 21593730.466 21593730.867
+ 41.200 35.200
+ 06 1 2 18 45 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1553401.212 3 -1210440.951 3 24517907.577 24517906.921 24517906.421
+ 23.000 22.600
+ -16820370.891 6 -13106767.150 6 21239914.608 21239914.392 21239914.205
+ 41.800 38.400
+ -14791797.053 7 -11526069.041 7 20553082.972 20553082.385 20553081.810
+ 44.700 47.000
+ -5846123.017 5 -4555417.075 5 23141169.771 23141170.269 23141168.922
+ 31.500 30.100
+ -434968.834 4 -338936.122 3 24401456.418 24401455.253 24401455.489
+ 25.600 21.600
+ -23332389.896 8 -18181076.259 8 20281897.535 20281896.053 20281896.833
+ 48.000 51.000
+ -12775830.729 6 -9955183.308 5 22254105.809 22254104.720 22254104.600
+ 41.400 30.400
+ -21429988.229 7 -16698677.816 7 20355728.301 20355728.090 20355727.383
+ 45.000 44.400
+ -17470515.124 6 -13613390.635 5 21608863.706 21608862.421 21608862.987
+ 40.900 34.600
+ 06 1 2 18 46 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1662561.723 3 -1295500.844 3 24497134.585 24497134.051 24497133.718
+ 21.600 23.400
+ -16894190.467 7 -13164288.882 6 21225867.211 21225867.055 21225866.863
+ 42.200 38.800
+ -14811025.981 7 -11541052.616 7 20549423.846 20549423.251 20549422.638
+ 44.600 47.000
+ -5837889.620 5 -4549001.448 5 23142736.616 23142736.974 23142735.919
+ 32.400 30.200
+ -331953.565 4 -258664.537 3 24421058.542 24421059.341 24421058.018
+ 25.300 20.500
+ -23325958.491 8 -18176064.773 8 20283121.336 20283119.951 20283120.725
+ 48.100 51.000
+ -12773207.074 6 -9953138.874 5 22254604.762 22254604.041 22254603.969
+ 41.400 30.600
+ -21415059.835 7 -16687045.293 7 20358568.938 20358568.910 20358568.034
+ 45.000 44.400
+ -17390600.020 6 -13551119.154 5 21624071.144 21624069.818 21624070.365
+ 40.800 34.600
+ 06 1 2 18 46 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1771614.984 3 -1380477.212 4 24476382.556 24476381.805 24476381.113
+ 22.600 24.200
+ -16967599.225 7 -13221490.500 6 21211898.232 21211897.911 21211897.858
+ 42.700 39.400
+ -14829987.147 7 -11555827.546 7 20545815.638 20545814.991 20545814.443
+ 44.800 47.000
+ -5829028.747 5 -4542096.864 5 23144422.797 23144423.316 23144422.001
+ 32.400 30.400
+ -228890.536 4 -178355.722 2 24440671.516 24440670.898 24440670.464
+ 24.900 17.800
+ -23319191.447 8 -18170791.750 8 20284408.839 20284407.655 20284408.409
+ 48.000 51.000
+ -12769968.569 6 -9950615.355 5 22255221.590 22255220.228 22255220.288
+ 41.600 30.400
+ -21399644.652 7 -16675033.454 7 20361502.582 20361502.309 20361501.607
+ 44.900 44.200
+ -17310291.341 6 -13488541.002 5 21639353.270 21639352.160 21639352.507
+ 40.700 34.400
+ 06 1 2 18 47 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1880559.714 4 -1465369.033 3 24455650.928 24455649.644 24455650.137
+ 25.900 19.300
+ -17040595.927 7 -13278371.032 6 21198007.271 21198007.104 21198006.863
+ 42.300 39.300
+ -14848680.076 7 -11570393.464 7 20542258.325 20542257.816 20542257.240
+ 44.700 47.000
+ -5819540.986 5 -4534703.800 5 23146228.110 23146228.285 23146227.413
+ 32.800 30.200
+ -125781.271 3 -98010.831 2 24460291.921 24460291.956 24460290.901
+ 23.400 16.100
+ -23312088.614 8 -18165257.076 8 20285760.615 20285759.254 20285760.058
+ 48.000 51.000
+ -12766115.108 6 -9947612.657 5 22255954.878 22255953.469 22255953.655
+ 41.600 30.400
+ -21383744.213 7 -16662643.491 7 20364528.194 20364528.043 20364527.305
+ 45.000 44.300
+ -17229590.666 6 -13425657.393 5 21654710.505 21654708.989 21654709.542
+ 40.500 34.300
+ 06 1 2 18 47 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1989393.977 4 -1550174.808 2 24434941.255 24434939.097 24434940.031
+ 25.900 17.800
+ -17113179.120 7 -13334929.358 6 21184195.134 21184194.683 21184194.735
+ 42.300 38.700
+ -14867104.228 7 -11584749.940 7 20538752.377 20538751.799 20538751.242
+ 44.700 46.900
+ -5809427.735 5 -4526823.346 4 23148152.632 23148152.979 23148151.804
+ 33.100 29.900
+ -22627.168 3 -17631.030 2 24479920.535 24479922.213 24479920.276
+ 23.400 13.900
+ -23304649.994 7 -18159460.742 8 20287176.210 20287174.786 20287175.606
+ 47.900 51.000
+ -12761646.706 6 -9944130.774 5 22256805.002 22256803.819 22256803.719
+ 41.600 30.200
+ -21367359.780 7 -16649876.388 7 20367645.992 20367645.829 20367645.119
+ 44.900 44.300
+ -17148499.721 6 -13362469.683 5 21670141.785 21670140.017 21670140.702
+ 40.200 34.000
+ 06 1 2 18 48 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2098116.489 3 -1634893.545 3 24414250.248 24414249.677 24414250.043
+ 23.000 19.300
+ -17185347.701 7 -13391164.614 6 21170461.974 21170461.502 21170461.501
+ 42.200 39.100
+ -14885259.204 7 -11598896.669 7 20535297.673 20535297.017 20535296.465
+ 44.800 46.900
+ -5798689.351 5 -4518455.782 5 23150196.158 23150196.501 23150195.481
+ 33.000 30.600
+ 80569.967 3 62782.299 1 24499559.733 24499559.301 24499558.939
+ 23.800 11.000
+ -23296875.468 7 -18153402.664 8 20288655.576 20288654.266 20288655.016
+ 47.800 50.900
+ -12756563.349 6 -9940169.707 4 22257771.945 22257770.917 22257770.993
+ 41.300 29.900
+ -21350492.549 7 -16636733.081 7 20370855.849 20370855.543 20370854.935
+ 45.100 44.300
+ -17067019.800 6 -13298978.884 5 21685647.060 21685645.222 21685645.896
+ 40.400 34.100
+ 06 1 2 18 48 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2206726.073 3 -1719524.233 2 24393583.752 24393581.481 24393582.560
+ 21.100 17.800
+ -17257100.462 7 -13447075.850 6 21156807.949 21156807.579 21156807.433
+ 42.400 39.300
+ -14903144.370 7 -11612833.156 7 20531894.001 20531893.529 20531892.891
+ 44.700 47.000
+ -5787326.918 5 -4509601.956 5 23152358.120 23152358.703 23152357.464
+ 32.000 30.400
+ 183808.349 3 143227.825 2 24519204.981 24519204.807 24519204.529
+ 23.400 15.100
+ -23288764.631 7 -18147082.529 8 20290198.651 20290197.676 20290198.283
+ 47.800 50.900
+ -12750865.105 6 -9935729.510 4 22258856.371 22258855.512 22258855.257
+ 41.200 29.700
+ -21333143.797 7 -16623214.564 7 20374157.154 20374156.930 20374156.259
+ 45.200 44.400
+ -16985152.999 6 -13235186.621 5 21701225.579 21701224.205 21701224.535
+ 40.100 34.000
+ 06 1 2 18 49 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2315220.582 4 -1804065.353 3 24372937.382 24372935.809 24372936.643
+ 25.300 19.300
+ -17328436.427 7 -13502662.313 6 21143233.169 21143232.643 21143232.634
+ 42.700 39.300
+ -14920759.158 7 -11626558.959 7 20528542.258 20528541.538 20528541.076
+ 44.700 47.000
+ -5775341.389 5 -4500262.597 5 23154638.941 23154639.485 23154638.035
+ 31.100 30.400
+ 287086.652 3 223704.384 2 24538858.706 24538858.738 24538857.741
+ 23.000 17.000
+ -23280317.614 7 -18140500.431 8 20291806.459 20291805.066 20291805.826
+ 47.600 50.900
+ -12744551.741 6 -9930810.004 5 22260057.916 22260057.005 22260056.653
+ 41.000 30.200
+ -21315314.648 7 -16609321.712 7 20377549.922 20377549.705 20377549.111
+ 45.200 44.400
+ -16902900.727 6 -13171093.989 5 21716877.585 21716876.388 21716876.659
+ 40.500 34.500
+ 06 1 2 18 49 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2423599.020 4 -1888516.068 3 24352313.346 24352312.477 24352312.911
+ 27.400 20.500
+ -17399354.101 7 -13557922.829 6 21129737.755 21129737.648 21129737.340
+ 42.600 39.700
+ -14938103.022 7 -11640073.653 7 20525241.995 20525241.141 20525240.679
+ 44.600 47.000
+ -5762733.435 5 -4490438.231 4 23157038.309 23157038.746 23157037.438
+ 31.800 29.700
+ 390403.290 4 304210.824 2 24558519.768 24558519.670 24558518.798
+ 24.600 16.100
+ -23271534.320 7 -18133656.302 8 20293477.858 20293476.480 20293477.213
+ 47.800 50.900
+ -12737623.150 6 -9925411.101 5 22261375.932 22261375.625 22261374.928
+ 40.900 30.200
+ -21297006.469 7 -16595055.590 7 20381034.081 20381033.633 20381033.144
+ 45.300 44.300
+ -16820264.749 6 -13106702.355 5 21732602.633 21732601.222 21732601.767
+ 40.300 33.500
+ 06 1 2 18 50 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2531859.503 4 -1972874.866 4 24331712.524 24331711.471 24331711.374
+ 25.900 24.600
+ -17469852.506 7 -13612856.637 6 21116322.078 21116322.270 21116321.885
+ 42.600 39.700
+ -14955175.473 7 -11653376.854 7 20521993.016 20521992.341 20521991.843
+ 44.600 46.900
+ -5749504.553 5 -4480130.035 5 23159555.854 23159556.305 23159555.155
+ 32.300 30.200
+ 493756.720 3 384745.944 2 24578185.902 24578186.973 24578185.419
+ 23.400 17.000
+ -23262414.421 7 -18126549.882 8 20295212.976 20295211.937 20295212.514
+ 47.600 50.800
+ -12730079.957 6 -9919533.282 5 22262811.805 22262810.751 22262810.601
+ 41.300 30.200
+ -21278220.728 7 -16580417.343 7 20384608.774 20384608.462 20384607.898
+ 45.200 44.300
+ -16737246.572 6 -13042012.908 5 21748400.691 21748399.168 21748399.741
+ 40.500 33.800
+ 06 1 2 18 50 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2640000.829 4 -2057140.804 4 24311133.236 24311132.898 24311132.706
+ 25.600 25.600
+ -17539930.435 7 -13667462.805 6 21102986.885 21102986.686 21102986.634
+ 42.900 39.200
+ -14971975.969 7 -11666468.144 7 20518795.953 20518795.260 20518794.811
+ 44.400 46.900
+ -5735655.708 5 -4469338.740 4 23162191.192 23162191.378 23162190.384
+ 33.100 29.500
+ 597145.477 3 465308.598 2 24597860.993 24597860.066 24597860.101
+ 23.000 15.100
+ -23252958.037 7 -18119181.271 8 20297012.674 20297011.469 20297012.156
+ 47.700 50.800
+ -12721921.745 6 -9913176.238 5 22264364.528 22264363.302 22264363.363
+ 41.300 30.400
+ -21258958.737 7 -16565407.994 7 20388274.199 20388273.880 20388273.292
+ 45.200 44.500
+ -16653847.985 6 -12977027.039 5 21764271.001 21764269.442 21764269.941
+ 39.900 33.200
+ 06 1 2 18 51 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2748021.257 4 -2141312.503 4 24290578.037 24290577.263 24290577.085
+ 26.200 25.900
+ -17609586.804 7 -13721740.482 6 21089731.936 21089731.430 21089731.501
+ 43.000 39.200
+ -14988504.021 7 -11679347.141 7 20515650.483 20515650.168 20515649.421
+ 44.600 47.000
+ -5721187.826 5 -4458065.078 4 23164944.471 23164944.679 23164943.762
+ 32.600 29.500
+ 700568.121 3 545897.634 2 24617541.572 24617540.546 24617540.677
+ 20.500 16.100
+ -23243164.930 7 -18111550.274 8 20298876.328 20298875.045 20298875.751
+ 47.900 50.900
+ -12713148.682 6 -9906340.090 4 22266033.681 22266032.828 22266032.517
+ 41.000 29.900
+ -21239221.790 7 -16550028.550 7 20392029.992 20392029.701 20392029.085
+ 45.400 44.400
+ -16570070.796 6 -12911746.159 5 21780213.872 21780211.820 21780212.469
+ 40.100 33.400
+ 06 1 2 18 51 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2855919.466 4 -2225388.965 4 24270045.334 24270044.753 24270044.472
+ 25.900 25.600
+ -17678820.413 7 -13775688.726 6 21076557.267 21076556.684 21076556.772
+ 43.100 39.500
+ -15004758.932 7 -11692013.300 7 20512557.401 20512556.952 20512556.255
+ 44.400 47.000
+ -5706101.744 5 -4446309.696 4 23167815.229 23167815.520 23167814.254
+ 32.000 29.200
+ 804022.912 3 626511.702 3 24637228.001 24637227.632 24637227.131
+ 22.100 18.600
+ -23233035.016 8 -18103656.833 8 20300803.821 20300802.638 20300803.389
+ 48.000 50.700
+ -12703761.071 6 -9899025.060 5 22267819.843 22267819.186 22267818.743
+ 41.200 30.200
+ -21219011.353 7 -16534280.152 7 20395875.938 20395875.605 20395874.900
+ 45.100 44.400
+ -16485916.518 6 -12846171.447 5 21796227.718 21796225.898 21796226.625
+ 40.200 33.100
+ 06 1 2 18 52 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2963693.829 4 -2309368.910 3 24249536.586 24249535.265 24249535.697
+ 24.200 23.000
+ -17747630.232 7 -13829306.742 6 21063463.113 21063462.564 21063462.571
+ 43.100 39.500
+ -15020740.335 7 -11704466.337 7 20509516.473 20509515.729 20509515.216
+ 44.500 47.000
+ -5690399.086 5 -4434073.884 4 23170803.069 23170803.493 23170802.393
+ 33.000 29.000
+ 907508.420 3 707149.735 2 24656920.521 24656920.396 24656919.991
+ 22.100 17.800
+ -23222568.299 8 -18095500.951 8 20302795.691 20302794.368 20302795.170
+ 48.000 50.700
+ -12693759.121 6 -9891231.326 5 22269723.523 22269722.359 22269722.338
+ 41.400 30.100
+ -21198328.903 7 -16518163.954 7 20399811.546 20399811.344 20399810.529
+ 45.000 44.500
+ -16401386.870 6 -12780304.235 5 21812312.902 21812311.398 21812311.841
+ 39.100 33.000
+ 06 1 2 18 52 30.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -3071342.793 4 -2393251.085 3 24229051.335 24229050.707 24229051.004
+ 26.800 22.600
+ -17816015.098 7 -13882593.623 6 21050449.822 21050449.406 21050449.394
+ 43.200 39.800
+ -15036447.574 7 -11716705.739 7 20506527.205 20506526.789 20506526.064
+ 44.500 47.000
+ -5674080.578 5 -4421358.174 4 23173908.793 23173908.562 23173907.824
+ 32.000 28.100
+ 1011022.609 3 787810.112 2 24676619.691 24676618.754 24676618.274
+ 19.900 17.800
+ -23211764.504 8 -18087082.402 8 20304851.545 20304850.332 20304851.051
+ 48.200 50.700
+ -12683142.580 6 -9882958.701 5 22271744.053 22271742.701 22271742.736
+ 41.500 30.400
+ -21177175.792 7 -16501681.006 7 20403836.998 20403836.669 20403835.879
+ 45.000 44.300
+ -16316483.753 6 -12714146.009 5 21828468.718 21828467.865 21828468.230
+ 39.500 32.800
+ 06 1 2 18 53 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3178865.089 4 -2477034.573 3 24208590.907 24208589.398 24208590.036
+ 27.100 20.500
+ -17883973.835 7 -13935548.444 6 21037517.666 21037517.302 21037517.226
+ 43.100 39.900
+ -15051880.292 7 -11728731.223 7 20503590.658 20503590.083 20503589.440
+ 44.400 47.100
+ -5657147.596 5 -4408163.675 4 23177130.734 23177131.174 23177129.903
+ 32.300 29.200
+ -23200623.715 8 -18078401.264 8 20306971.762 20306970.383 20306971.163
+ 48.000 50.700
+ -12671912.267 6 -9874207.807 4 22273880.717 22273879.411 22273879.662
+ 41.300 29.900
+ -21155553.153 7 -16484832.197 7 20407951.764 20407951.324 20407950.657
+ 45.200 44.400
+ -16231208.921 6 -12647698.131 5 21844696.006 21844695.339 21844695.455
+ 38.900 33.200
+ 06 1 2 18 53 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -3286259.215 4 -2560718.159 3 24188154.279 24188152.771 24188153.590
+ 24.600 18.600
+ -17951505.512 7 -13988170.497 6 21024666.681 21024666.364 21024666.245
+ 42.900 39.800
+ -15067037.797 7 -11740542.256 7 20500706.294 20500705.617 20500705.170
+ 44.500 47.000
+ -5639601.480 5 -4394491.404 4 23180469.827 23180469.772 23180468.924
+ 32.600 28.100
+ -23189145.605 8 -18069457.279 8 20309155.865 20309154.556 20309155.310
+ 48.100 50.800
+ -12660068.375 6 -9864978.800 5 22276134.615 22276133.419 22276133.286
+ 41.100 30.800
+ -21133462.761 7 -16467618.903 7 20412155.300 20412154.915 20412154.288
+ 45.200 44.300
+ -16145564.014 6 -12580961.894 5 21860993.982 21860993.159 21860993.259
+ 39.700 32.800
+ 06 1 2 18 54 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3393523.563 4 -2644300.631 3 24167741.922 24167740.933 24167741.331
+ 27.900 19.900
+ -18018609.078 7 -14040458.947 6 21011897.188 21011896.861 21011896.757
+ 43.000 39.800
+ -15081919.514 7 -11752138.389 7 20497874.152 20497873.670 20497873.058
+ 44.400 46.900
+ -5621443.033 5 -4380342.009 4 23183925.050 23183925.479 23183924.167
+ 31.500 29.000
+ -23177330.276 8 -18060250.524 8 20311404.167 20311402.955 20311403.656
+ 48.000 50.800
+ -12647611.067 6 -9855271.805 5 22278505.501 22278504.191 22278504.080
+ 41.400 30.400
+ -21110905.959 7 -16450042.170 7 20416447.713 20416447.338 20416446.713
+ 45.300 44.100
+ -16059550.938 6 -12513938.758 5 21877362.562 21877360.891 21877361.272
+ 39.000 33.000
+ 06 1 2 18 54 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -3500656.800 4 -2727780.952 2 24147355.609 24147353.915 24147354.758
+ 29.000 17.800
+ -18085283.453 7 -14092412.967 6 20999209.500 20999209.290 20999209.087
+ 43.200 40.100
+ -15096524.874 7 -11763519.181 7 20495094.965 20495094.358 20495093.784
+ 44.300 47.000
+ -5602673.726 5 -4365716.617 4 23187496.961 23187497.359 23187496.130
+ 31.800 28.100
+ -23165177.561 8 -18050780.870 8 20313717.048 20313715.566 20313716.325
+ 48.000 50.700
+ -12634540.399 6 -9845086.866 5 22280992.736 22280991.265 22280991.522
+ 41.500 30.600
+ -21087884.214 7 -16432103.146 7 20420828.417 20420828.243 20420827.533
+ 45.300 44.200
+ -15973171.404 6 -12446630.082 5 21893800.384 21893798.530 21893798.986
+ 38.700 33.100
+ 06 1 2 18 55 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3607657.288 4 -2811157.830 3 24126993.381 24126992.347 24126992.658
+ 26.500 20.500
+ -18151527.760 7 -14144031.863 6 20986603.673 20986603.369 20986603.182
+ 43.100 40.500
+ -15110853.421 7 -11774684.269 7 20492368.293 20492367.719 20492367.164
+ 44.500 46.900
+ -5583294.587 5 -4350616.014 4 23191184.629 23191184.869 23191183.660
+ 31.000 28.800
+ -23152687.164 8 -18041048.086 8 20316093.609 20316092.342 20316093.051
+ 48.000 50.600
+ -12620856.909 6 -9834424.406 5 22283596.459 22283595.255 22283595.079
+ 41.000 30.800
+ -21064398.730 7 -16413802.763 7 20425297.531 20425297.395 20425296.709
+ 45.300 44.000
+ -15886427.081 6 -12379037.161 5 21910306.585 21910305.424 21910305.608
+ 39.100 33.200
+ 06 1 2 18 55 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -3714523.664 4 -2894430.185 3 24106657.903 24106656.529 24106656.994
+ 27.900 22.100
+ -18217340.669 7 -14195314.604 6 20974080.093 20974079.813 20974079.477
+ 43.500 40.700
+ -15124904.547 7 -11785633.186 7 20489694.340 20489693.821 20489693.215
+ 44.400 46.900
+ -5563306.773 5 -4335041.114 4 23194988.139 23194988.737 23194987.559
+ 32.100 28.800
+ -23139859.024 7 -18031052.129 8 20318534.652 20318533.394 20318534.113
+ 47.900 50.500
+ -12606560.883 6 -9823284.642 5 22286317.175 22286315.776 22286315.614
+ 41.100 30.400
+ -21040450.960 7 -16395142.156 7 20429854.637 20429854.391 20429853.848
+ 45.400 44.000
+ -15799319.959 6 -12311161.536 5 21926882.002 21926881.359 21926881.426
+ 38.900 32.700
+ 06 1 2 18 56 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3821254.332 4 -2977596.813 3 24086347.914 24086346.192 24086347.041
+ 27.600 23.400
+ -18282721.230 7 -14246260.452 6 20961638.163 20961638.102 20961637.767
+ 43.400 40.600
+ -15138677.810 7 -11796365.587 7 20487073.578 20487072.854 20487072.413
+ 44.600 46.900
+ -5542712.303 5 -4318993.508 4 23198907.269 23198907.645 23198906.347
+ 32.000 28.100
+ -23126693.309 7 -18020793.123 8 20321040.061 20321038.667 20321039.456
+ 47.800 50.400
+ -12591652.742 6 -9811667.904 5 22289153.293 22289152.783 22289152.222
+ 41.100 30.600
+ -21016042.483 7 -16376122.557 7 20434499.300 20434499.216 20434498.552
+ 45.500 44.100
+ -15711851.755 6 -12243004.532 5 21943526.571 21943525.997 21943526.165
+ 38.700 32.400
+ 06 1 2 18 56 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -3927848.043 4 -3060656.733 3 24066063.463 24066062.246 24066062.508
+ 27.400 22.600
+ -18347668.509 7 -14296868.681 6 20949279.033 20949278.731 20949278.669
+ 43.500 40.200
+ -15152172.548 7 -11806880.956 7 20484505.512 20484504.933 20484504.366
+ 44.500 46.900
+ -5521511.647 5 -4302473.541 4 23202941.446 23202942.172 23202940.607
+ 31.100 29.000
+ -23113189.673 7 -18010270.802 8 20323609.706 20323608.369 20323609.169
+ 47.900 50.400
+ -12576132.894 6 -9799574.508 5 22292106.894 22292106.211 22292105.619
+ 40.900 31.000
+ -20991174.935 7 -16356745.242 7 20439231.380 20439231.435 20439230.547
+ 45.300 44.100
+ -15624024.288 6 -12174567.594 5 21960240.184 21960239.105 21960239.212
+ 38.100 32.100
+ 06 1 2 18 57 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4034303.182 4 -3143608.672 4 24045805.964 24045804.162 24045804.910
+ 27.100 25.600
+ -18412181.510 7 -14347138.513 6 20937002.888 20937002.335 20937002.364
+ 43.700 40.300
+ -15165388.329 7 -11817178.956 7 20481990.686 20481989.988 20481989.532
+ 44.600 46.900
+ -5499706.630 5 -4285482.645 4 23207090.689 23207091.411 23207089.921
+ 31.100 29.000
+ -23099348.100 7 -17999485.157 8 20326243.730 20326242.412 20326243.119
+ 47.900 50.500
+ -12560001.691 6 -9787004.736 5 22295176.689 22295175.669 22295175.271
+ 41.000 30.200
+ -20965849.771 7 -16337011.344 7 20444050.758 20444050.665 20444049.796
+ 45.300 44.300
+ -15535839.358 6 -12105852.117 5 21977021.859 21977019.814 21977020.388
+ 37.700 31.300
+ 06 1 2 18 57 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -4140618.347 4 -3226451.558 4 24025574.108 24025573.276 24025573.410
+ 26.500 26.500
+ -18476259.255 7 -14397069.183 6 20924809.446 20924808.694 20924808.853
+ 43.800 40.700
+ -15178324.518 7 -11827259.100 7 20479529.203 20479528.258 20479527.985
+ 44.600 46.900
+ -5477299.222 5 -4268022.352 4 23211354.563 23211355.154 23211353.888
+ 30.600 28.100
+ -23085168.544 7 -17988436.149 8 20328942.056 20328940.740 20328941.464
+ 47.900 50.500
+ -12543259.661 6 -9773958.982 5 22298362.365 22298361.504 22298361.329
+ 41.300 30.600
+ -20940068.409 7 -16316921.964 7 20448956.844 20448956.667 20448955.886
+ 45.300 44.200
+ -15447298.949 6 -12036859.654 5 21993870.889 21993868.935 21993869.352
+ 37.800 32.000
+ 06 1 2 18 58 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4246792.164 4 -3309184.292 4 24005370.081 24005368.799 24005368.996
+ 27.400 26.200
+ -18539900.761 7 -14446659.927 6 20912698.643 20912698.206 20912698.157
+ 43.700 41.000
+ -15190980.673 7 -11837121.032 7 20477120.717 20477119.874 20477119.464
+ 44.600 46.900
+ -5454290.672 5 -4250093.610 4 23215733.627 23215733.929 23215732.786
+ 31.600 29.200
+ -23070650.877 7 -17977123.681 8 20331704.579 20331703.389 20331704.091
+ 47.900 50.400
+ -12525906.893 6 -9760437.326 5 22301664.730 22301663.675 22301663.668
+ 41.500 30.800
+ -20913832.371 7 -16296478.297 7 20453949.373 20453949.176 20453948.465
+ 45.400 44.100
+ -15358404.907 6 -11967591.614 5 22010785.822 22010784.767 22010784.856
+ 37.400 31.500
+ 06 1 2 18 58 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -4352822.920 4 -3391805.586 4 23985192.906 23985191.884 23985191.944
+ 27.100 26.500
+ -18603105.157 7 -14495910.069 6 20900671.115 20900670.797 20900670.723
+ 43.800 40.900
+ -15203356.200 7 -11846764.293 7 20474765.487 20474765.030 20474764.419
+ 44.700 46.900
+ -5430681.766 5 -4231697.081 4 23220225.945 23220226.402 23220225.241
+ 31.300 28.800
+ -23055795.128 8 -17965547.777 8 20334531.586 20334530.296 20334531.030
+ 48.000 50.400
+ -12507944.348 6 -9746440.522 5 22305083.194 22305081.747 22305081.840
+ 41.200 30.400
+ -20887143.258 7 -16275681.586 7 20459028.229 20459027.970 20459027.281
+ 45.600 44.100
+ -15269158.979 6 -11898049.381 5 22027768.450 22027768.217 22027767.980
+ 38.000 32.000
+ 06 1 2 18 59 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4458709.408 4 -3474314.444 4 23965043.422 23965042.180 23965042.758
+ 27.400 27.900
+ -18665871.575 7 -14544818.934 6 20888726.870 20888726.523 20888726.515
+ 43.700 40.700
+ -15215450.396 7 -11856188.337 7 20472464.166 20472463.539 20472463.025
+ 44.700 47.000
+ -5406474.008 5 -4212833.903 4 23224832.505 23224833.206 23224831.780
+ 30.400 28.800
+ -23040601.139 7 -17953708.304 8 20337422.883 20337421.573 20337422.378
+ 47.800 50.200
+ -12489372.720 6 -9731969.116 5 22308616.973 22308615.889 22308615.706
+ 41.100 30.600
+ -20860002.311 7 -16254532.794 7 20464192.873 20464192.663 20464191.971
+ 45.500 44.000
+ -15179562.918 6 -11828234.322 5 22044817.943 22044817.412 22044817.464
+ 37.700 31.500
+ 06 1 2 18 59 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -4564450.175 4 -3556709.763 4 23944921.375 23944920.591 23944920.477
+ 27.900 27.600
+ -18728199.001 7 -14593385.731 6 20876866.540 20876866.063 20876866.131
+ 43.800 41.000
+ -15227262.800 7 -11865392.807 7 20470216.447 20470215.623 20470215.286
+ 44.800 47.000
+ -5381669.155 5 -4193505.458 4 23229552.824 23229553.176 23229551.855
+ 30.800 27.600
+ -23025068.962 7 -17941605.315 8 20340378.344 20340377.233 20340377.886
+ 47.700 50.200
+ -12470192.506 6 -9717023.489 5 22312266.740 22312265.428 22312265.525
+ 41.200 30.400
+ -20832411.290 7 -16233033.294 7 20469443.358 20469443.027 20469442.417
+ 45.500 44.100
+ -15089618.786 6 -11758148.041 5 22061934.578 22061933.269 22061933.476
+ 37.900 31.000
+ 06 1 2 19 0 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4670043.802 4 -3638990.426 4 23924827.881 23924826.561 23924826.815
+ 26.800 27.100
+ -18790086.568 7 -14641609.785 6 20865089.905 20865089.316 20865089.406
+ 43.800 41.300
+ -15238792.817 7 -11874377.235 7 20468022.322 20468021.549 20468021.171
+ 44.700 46.700
+ -5356268.803 5 -4173712.976 4 23234385.795 23234386.527 23234385.063
+ 30.400 26.800
+ -23009198.066 7 -17929238.388 8 20343398.544 20343397.350 20343398.068
+ 47.700 50.100
+ -12450403.809 6 -9701603.718 5 22316032.518 22316031.135 22316031.188
+ 41.000 30.200
+ -20804371.756 7 -16211184.305 7 20474779.090 20474778.732 20474778.191
+ 45.500 44.100
+ -14999328.831 6 -11687792.284 5 22079116.560 22079114.992 22079115.295
+ 37.400 31.500
+ 06 1 2 19 0 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -4775488.669 4 -3721155.172 4 23904761.695 23904760.896 23904761.353
+ 29.700 24.900
+ -18851533.387 7 -14689490.399 6 20853396.743 20853396.308 20853396.318
+ 43.800 41.300
+ -15250039.920 7 -11883141.212 7 20465881.911 20465881.334 20465880.817
+ 44.700 46.800
+ -5330274.452 4 -4153457.638 4 23239332.241 23239333.141 23239331.445
+ 29.700 26.800
+ -22992988.807 7 -17916607.804 8 20346483.130 20346481.904 20346482.570
+ 47.700 50.100
+ -12430007.665 6 -9685710.621 5 22319913.479 22319912.732 22319912.396
+ 41.000 31.000
+ -20775885.320 7 -16188987.085 7 20480199.866 20480199.555 20480198.916
+ 45.600 44.100
+ -14908694.356 6 -11617168.073 5 22096363.465 22096361.888 22096362.398
+ 37.200 30.400
+ 06 1 2 19 1 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4880783.202 4 -3803202.785 3 23884726.036 23884723.832 23884724.881
+ 29.500 23.400
+ -18912538.554 7 -14737026.876 6 20841788.022 20841787.472 20841787.537
+ 43.800 41.400
+ -15261003.626 7 -11891684.359 7 20463795.835 20463794.953 20463794.679
+ 44.700 46.800
+ -5303687.216 5 -4132740.321 4 23244392.026 23244392.819 23244391.454
+ 31.300 28.100
+ -22976440.858 7 -17903713.302 8 20349632.150 20349630.918 20349631.535
+ 47.600 50.100
+ -12409004.550 6 -9669344.549 5 22323910.210 22323909.681 22323909.257
+ 41.200 31.300
+ -20746953.453 7 -16166442.773 7 20485705.267 20485705.086 20485704.374
+ 45.500 44.100
+ -14817717.307 6 -11546276.899 5 22113674.600 22113674.297 22113674.589
+ 37.700 30.100
+ 06 1 2 19 1 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -4985926.128 4 -3885132.285 3 23864716.804 23864715.118 23864716.017
+ 29.000 21.100
+ -18973101.243 7 -14784218.563 6 20830263.143 20830262.661 20830262.728
+ 43.900 41.200
+ -15271683.241 7 -11900006.141 7 20461763.549 20461762.666 20461762.402
+ 44.700 46.800
+ -5276509.276 5 -4111562.704 4 23249563.780 23249564.074 23249562.796
+ 30.100 26.800
+ -22959554.140 7 -17890554.828 8 20352845.575 20352844.378 20352845.012
+ 47.700 50.200
+ -12387394.987 6 -9652505.926 5 22328022.622 22328021.641 22328021.274
+ 40.900 30.800
+ -20717577.880 7 -16143552.718 7 20491295.387 20491295.071 20491294.487
+ 45.700 44.000
+ -14726399.911 6 -11475120.516 5 22131051.693 22131051.782 22131051.671
+ 37.500 31.300
+ 06 1 2 19 2 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5090916.217 4 -3966942.698 3 23844738.028 23844735.848 23844737.249
+ 28.600 21.100
+ -19033220.374 7 -14831064.631 6 20818822.724 20818822.212 20818822.413
+ 44.000 41.300
+ -15282078.323 7 -11908106.199 7 20459785.313 20459784.575 20459784.121
+ 44.600 46.800
+ -5248742.021 4 -4089925.900 4 23254847.647 23254848.370 23254846.757
+ 29.200 27.900
+ -22942328.811 7 -17877132.498 8 20356123.468 20356122.233 20356122.892
+ 47.800 50.100
+ -12365179.787 6 -9635195.375 5 22332249.944 22332248.875 22332248.819
+ 41.000 30.200
+ -20687760.007 7 -16120318.015 7 20496969.532 20496969.245 20496968.653
+ 45.800 44.000
+ -14634744.293 6 -11403700.600 5 22148494.402 22148493.374 22148493.501
+ 37.500 31.600
+ 06 1 2 19 2 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -5195752.075 4 -4048632.926 3 23824787.940 23824786.713 23824787.393
+ 27.900 20.500
+ -19092895.441 7 -14877564.673 6 20807466.970 20807466.594 20807466.551
+ 43.900 41.500
+ -15292188.389 7 -11915984.170 7 20457861.288 20457860.754 20457860.211
+ 44.600 47.000
+ -5220387.187 4 -4067831.226 4 23260243.628 23260244.350 23260242.599
+ 28.600 28.800
+ -22924764.739 7 -17863446.208 8 20359465.832 20359464.514 20359465.263
+ 47.900 49.900
+ -12342359.975 6 -9617413.697 5 22336592.630 22336591.380 22336591.440
+ 40.900 30.800
+ -20657501.399 7 -16096739.884 7 20502727.509 20502727.219 20502726.693
+ 46.100 43.900
+ -14542751.989 6 -11332018.336 5 22166000.509 22165998.841 22165999.128
+ 36.400 31.100
+ 06 1 2 19 3 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5300431.962 4 -4130201.590 3 23804867.998 23804866.941 23804867.164
+ 26.800 22.600
+ -19152125.417 7 -14923717.893 6 20796195.766 20796195.536 20796195.397
+ 43.900 41.500
+ -15302012.758 7 -11923639.514 7 20455991.730 20455991.248 20455990.584
+ 44.300 47.000
+ -5191446.392 4 -4045279.973 4 23265750.671 23265751.568 23265749.844
+ 28.800 28.600
+ -22906861.897 8 -17849495.943 8 20362872.774 20362871.256 20362872.168
+ 48.000 49.800
+ -12318935.471 6 -9599160.833 5 22341049.768 22341048.878 22341048.663
+ 40.500 30.600
+ -20626803.665 7 -16072819.577 7 20508569.284 20508568.819 20508568.366
+ 46.000 43.900
+ -14450424.985 6 -11260075.274 5 22183569.329 22183568.265 22183568.282
+ 36.600 31.100
+ 06 1 2 19 3 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -5404954.508 4 -4211647.681 4 23784978.836 23784976.725 23784977.819
+ 28.600 24.600
+ -19210909.586 7 -14969523.732 6 20785009.722 20785009.218 20785009.222
+ 44.000 41.800
+ -15311550.892 7 -11931071.824 7 20454176.776 20454176.216 20454175.636
+ 44.500 46.900
+ -5161921.417 5 -4022273.517 4 23271369.345 23271369.928 23271368.502
+ 30.400 27.600
+ -22888620.013 8 -17835281.492 8 20366343.894 20366342.637 20366343.471
+ 48.000 49.900
+ -12294907.852 6 -9580438.012 5 22345622.049 22345621.053 22345620.767
+ 40.300 30.200
+ -20595668.465 7 -16048558.385 7 20514494.167 20514493.628 20514493.210
+ 46.000 43.800
+ -14357765.234 6 -11187872.933 5 22201201.588 22201200.765 22201200.801
+ 36.500 30.600
+ 06 1 2 19 4 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5509318.349 5 -4292970.091 4 23765118.931 23765117.205 23765118.021
+ 31.600 27.100
+ -19269247.329 7 -15014981.698 6 20773908.356 20773908.010 20773907.902
+ 44.100 41.900
+ -15320802.240 7 -11938280.661 7 20452416.306 20452415.789 20452415.139
+ 44.300 47.000
+ -5131813.713 5 -3998812.981 4 23277098.851 23277099.101 23277098.048
+ 31.300 28.100
+ -22870039.297 7 -17820803.013 8 20369879.880 20369878.400 20369879.244
+ 47.900 49.800
+ -12270277.585 6 -9561245.597 5 22350309.503 22350308.261 22350308.319
+ 41.000 30.200
+ -20564097.454 7 -16023957.600 7 20520501.872 20520501.494 20520500.904
+ 45.800 44.000
+ -14264774.920 6 -11115412.983 5 22218897.096 22218896.277 22218896.588
+ 36.500 30.200
+ 06 1 2 19 4 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -5613522.030 4 -4374167.722 4 23745289.572 23745288.087 23745288.724
+ 29.700 28.800
+ -19327137.602 7 -15060090.993 6 20762892.122 20762891.726 20762891.694
+ 44.100 41.600
+ -15329766.235 7 -11945265.585 7 20450710.413 20450710.009 20450709.268
+ 44.300 47.000
+ -5101125.428 5 -3974900.031 4 23282938.202 23282939.157 23282937.505
+ 30.400 28.100
+ -22851119.283 8 -17806060.143 8 20373480.146 20373478.710 20373479.663
+ 48.100 49.700
+ -12245045.595 6 -9541584.310 5 22355111.136 22355109.930 22355109.957
+ 41.100 30.600
+ -20532092.367 7 -15999018.572 7 20526592.235 20526591.905 20526591.293
+ 46.100 43.900
+ -14171455.895 6 -11042696.915 4 22236655.948 22236654.266 22236654.707
+ 36.200 29.700
+ 06 1 2 19 5 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5717564.278 4 -4455239.525 4 23725490.410 23725489.503 23725489.675
+ 28.100 28.100
+ -19384579.763 7 -15104851.103 7 20751961.331 20751960.934 20751960.945
+ 44.400 42.000
+ -15338442.291 7 -11952026.144 7 20449059.441 20449058.837 20449058.264
+ 44.100 46.900
+ -5069858.043 4 -3950535.857 4 23288888.632 23288889.108 23288887.832
+ 29.700 27.600
+ -22831860.375 8 -17791053.204 8 20377145.079 20377143.659 20377144.589
+ 48.100 49.600
+ -12219212.268 6 -9521454.442 5 22360026.481 22360025.773 22360025.485
+ 41.000 30.200
+ -20499654.840 7 -15973742.581 7 20532764.821 20532764.578 20532763.930
+ 46.000 44.000
+ -14077810.080 6 -10969726.191 4 22254475.863 22254474.380 22254474.861
+ 36.000 29.500
+ 06 1 2 19 5 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -5821443.444 4 -4536184.263 4 23705723.192 23705721.813 23705722.336
+ 27.600 29.000
+ -19441573.040 7 -15149261.428 7 20741115.967 20741115.336 20741115.499
+ 44.500 42.100
+ -15346829.985 7 -11958562.008 7 20447463.450 20447462.653 20447462.217
+ 44.600 46.900
+ -5038013.637 5 -3925722.052 4 23294948.388 23294948.881 23294947.761
+ 30.100 27.100
+ -22812262.231 8 -17775781.925 8 20380874.299 20380873.030 20380873.738
+ 48.000 49.600
+ -12192779.094 6 -9500857.154 5 22365056.325 22365055.696 22365055.417
+ 40.900 30.100
+ -20466786.189 7 -15948130.643 7 20539019.448 20539019.363 20539018.534
+ 45.900 43.800
+ -13983839.466 5 -10896502.391 5 22272357.095 22272356.728 22272356.658
+ 35.800 30.400
+ 06 1 2 19 6 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5925158.302 4 -4617000.976 4 23685986.287 23685985.254 23685985.854
+ 29.200 27.900
+ -19498116.579 7 -15193321.317 7 20730355.811 20730355.352 20730355.530
+ 44.600 42.000
+ -15354928.581 7 -11964872.598 7 20445922.397 20445921.604 20445921.223
+ 44.600 46.700
+ -5005593.711 4 -3900459.797 4 23301117.401 23301117.905 23301116.598
+ 29.200 26.200
+ -22792324.978 7 -17760246.394 8 20384668.302 20384666.981 20384667.702
+ 47.900 49.600
+ -12165746.567 6 -9479792.853 4 22370201.046 22370199.560 22370199.689
+ 40.600 29.700
+ -20433488.524 7 -15922184.409 7 20545355.800 20545355.683 20545354.903
+ 45.900 43.800
+ -13889546.268 6 -10823027.238 5 22290300.109 22290300.285 22290299.964
+ 36.000 30.200
+ 06 1 2 19 6 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -6028707.492 5 -4697688.623 4 23666282.195 23666280.582 23666281.449
+ 32.100 28.600
+ -19554209.773 7 -15237030.275 7 20719681.655 20719681.280 20719681.194
+ 44.200 42.100
+ -15362737.664 7 -11970957.599 7 20444436.316 20444435.680 20444435.221
+ 44.600 46.800
+ -4972600.553 4 -3874750.860 4 23307395.914 23307396.597 23307395.092
+ 28.600 26.200
+ -22772048.386 7 -17744446.454 8 20388527.006 20388525.598 20388526.354
+ 47.800 49.600
+ -12138115.937 6 -9458262.488 5 22375459.053 22375457.579 22375457.682
+ 40.700 30.100
+ -20399763.526 7 -15895905.191 7 20551773.746 20551773.351 20551772.701
+ 45.900 43.900
+ -13794932.437 5 -10749302.239 5 22308306.022 22308304.802 22308304.888
+ 35.500 30.100
+ 06 1 2 19 7 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6132089.366 5 -4778245.912 4 23646609.220 23646607.756 23646608.543
+ 32.300 29.500
+ -19609851.721 7 -15280387.612 7 20709093.490 20709092.890 20709093.047
+ 44.500 42.000
+ -15370256.693 7 -11976816.582 7 20443005.507 20443004.815 20443004.325
+ 44.600 46.800
+ -4939035.601 4 -3848596.372 4 23313782.480 23313783.110 23313781.635
+ 28.600 24.200
+ -22751432.452 7 -17728382.089 8 20392449.803 20392448.612 20392449.270
+ 47.900 49.700
+ -12109887.607 6 -9436266.382 4 22380830.450 22380829.362 22380829.357
+ 40.800 29.500
+ -20365612.413 7 -15869293.931 7 20558272.374 20558271.978 20558271.402
+ 45.900 43.800
+ -13699999.762 5 -10675328.782 5 22326370.818 22326369.898 22326369.869
+ 35.600 30.600
+ 06 1 2 19 7 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -6235302.610 5 -4858671.773 4 23626968.103 23626966.956 23626967.473
+ 32.100 28.800
+ -19665041.970 7 -15323392.981 7 20698590.945 20698590.539 20698590.526
+ 44.300 42.200
+ -15377484.935 7 -11982448.981 7 20441629.984 20441629.282 20441628.863
+ 44.600 46.800
+ -4904900.560 4 -3821997.670 3 23320278.517 23320278.452 23320277.683
+ 28.400 22.600
+ -22730477.169 8 -17712053.296 8 20396437.559 20396436.174 20396436.993
+ 48.100 49.500
+ -12081062.971 6 -9413805.630 5 22386315.515 22386314.357 22386314.432
+ 40.600 30.100
+ -20331037.046 7 -15842352.085 7 20564851.774 20564851.466 20564850.835
+ 46.100 43.800
+ -13604750.524 5 -10601108.659 4 22344496.488 22344495.252 22344495.356
+ 35.700 29.900
+ 06 1 2 19 8 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6338345.815 5 -4938965.127 4 23607359.858 23607358.344 23607359.076
+ 32.700 29.200
+ -19719779.718 7 -15366045.745 7 20688174.759 20688174.307 20688174.275
+ 44.400 42.400
+ -15384421.938 7 -11987854.440 7 20440310.151 20440309.207 20440308.902
+ 44.600 46.800
+ -4870197.753 4 -3794956.518 3 23326882.404 23326882.769 23326881.897
+ 29.000 23.800
+ -22709182.550 8 -17695460.085 8 20400490.065 20400488.443 20400489.328
+ 48.100 49.400
+ -12051642.813 6 -9390880.834 4 22391914.090 22391913.053 22391912.854
+ 40.500 29.500
+ -20296039.433 7 -15815081.211 7 20571511.569 20571511.272 20571510.662
+ 46.000 43.700
+ -13509186.767 5 -10526643.443 4 22362681.307 22362680.235 22362680.479
+ 34.900 28.400
+ 06 1 2 19 8 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -6441217.756 5 -5019125.025 4 23587783.856 23587782.255 23587782.974
+ 30.400 28.800
+ -19774064.309 7 -15408345.396 7 20677844.614 20677844.303 20677844.167
+ 44.400 42.500
+ -15391067.166 7 -11993032.536 7 20439045.601 20439044.656 20439044.355
+ 44.600 46.700
+ -4834928.858 4 -3767474.289 3 23333593.851 23333594.402 23333593.045
+ 29.700 23.400
+ -22687548.632 8 -17678602.485 8 20404606.465 20404605.298 20404606.022
+ 48.200 49.400
+ -12021628.200 6 -9367492.832 4 22397625.680 22397624.691 22397624.508
+ 40.600 29.900
+ -20260620.842 7 -15787482.307 7 20578251.473 20578251.252 20578250.585
+ 46.100 43.800
+ -13413310.340 5 -10451934.595 4 22380925.482 22380925.007 22380925.017
+ 34.500 28.600
+ 06 1 2 19 9 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6543917.044 5 -5099150.394 4 23568239.881 23568239.050 23568239.491
+ 30.400 25.300
+ -19827895.160 7 -15450291.481 7 20667601.206 20667600.648 20667600.705
+ 44.500 42.700
+ -15397419.990 7 -11997982.788 7 20437836.403 20437835.688 20437835.367
+ 44.600 46.700
+ -4799095.894 4 -3739552.506 3 23340412.597 23340412.807 23340411.711
+ 28.800 23.800
+ -22665575.165 8 -17661480.299 8 20408787.995 20408786.718 20408787.485
+ 48.000 49.300
+ -11991020.061 6 -9343642.339 5 22403450.662 22403449.043 22403449.222
+ 40.700 30.100
+ -20224783.160 7 -15759556.836 7 20585071.149 20585070.901 20585070.270
+ 46.100 43.600
+ -13317123.377 5 -10376983.754 4 22399230.333 22399229.274 22399228.960
+ 34.500 29.500
+ 06 1 2 19 9 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -6646442.089 4 -5179040.000 4 23548730.095 23548729.019 23548729.467
+ 29.700 24.900
+ -19881271.556 7 -15491883.448 7 20657443.778 20657443.268 20657443.306
+ 44.300 42.600
+ -15403479.895 7 -12002704.792 7 20436683.373 20436682.525 20436682.207
+ 44.500 46.700
+ -4762700.576 4 -3711192.540 3 23347338.290 23347338.785 23347337.454
+ 28.800 23.000
+ -22643262.324 8 -17644093.668 8 20413033.763 20413032.661 20413033.369
+ 48.100 49.300
+ -11959819.350 6 -9319330.098 4 22409387.921 22409386.663 22409386.595
+ 40.600 29.900
+ -20188527.785 7 -15731305.894 7 20591970.291 20591969.995 20591969.395
+ 46.000 43.600
+ -13220628.055 5 -10301792.653 4 22417592.322 22417591.759 22417591.568
+ 35.200 29.700
+ 06 1 2 19 10 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6748791.795 4 -5258792.982 4 23529253.896 23529252.347 23529253.078
+ 29.000 25.300
+ -19934192.856 7 -15533120.793 7 20647373.218 20647372.505 20647372.795
+ 44.600 42.300
+ -15409246.344 7 -12007198.125 7 20435585.910 20435585.195 20435584.812
+ 44.500 46.700
+ -4725745.259 4 -3682396.210 4 23354371.028 23354371.614 23354370.193
+ 29.900 24.600
+ -22620609.671 7 -17626442.251 8 20417344.754 20417343.308 20417344.140
+ 47.800 49.100
+ -11928027.227 6 -9294557.025 5 22415437.327 22415436.476 22415436.260
+ 40.300 30.600
+ -20151856.687 7 -15702731.009 7 20598948.531 20598948.263 20598947.651
+ 45.900 43.400
+ -13123826.420 5 -10226362.877 4 22436013.222 22436012.698 22436012.285
+ 34.400 29.500
+ 06 1 2 19 10 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -6850964.490 4 -5338408.022 4 23509811.044 23509809.216 23509810.464
+ 29.500 26.500
+ -19986658.457 7 -15574003.048 7 20637389.223 20637388.749 20637388.858
+ 44.600 42.700
+ -15414718.736 7 -12011462.324 7 20434544.568 20434543.838 20434543.425
+ 44.500 46.700
+ -4688232.094 4 -3653165.176 3 23361509.955 23361509.848 23361508.899
+ 29.700 23.400
+ -22597617.672 8 -17608526.404 8 20421719.976 20421718.603 20421719.348
+ 48.000 49.200
+ -11895645.020 6 -9269324.138 5 22421599.573 22421598.407 22421598.348
+ 39.900 30.600
+ -20114771.387 7 -15673833.374 7 20606005.611 20606005.332 20606004.692
+ 45.800 43.400
+ -13026720.695 5 -10150696.143 4 22454491.292 22454491.121 22454490.918
+ 35.400 28.600
+ 06 1 2 19 11 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6952958.987 5 -5417884.195 4 23490402.381 23490400.713 23490401.618
+ 31.100 27.100
+ -20038667.801 7 -15614529.778 7 20627492.298 20627491.723 20627491.885
+ 44.900 43.000
+ -15419896.582 7 -12015497.007 7 20433559.241 20433558.612 20433558.151
+ 44.700 46.800
+ -4650163.006 5 -3623500.973 4 23368754.275 23368754.137 23368753.447
+ 30.800 24.900
+ -22574285.964 7 -17590345.850 8 20426159.492 20426158.481 20426159.036
+ 47.700 49.200
+ -11862673.808 6 -9243632.302 5 22427873.663 22427872.620 22427872.417
+ 40.100 30.400
+ -20077273.824 7 -15644614.493 7 20613141.050 20613140.909 20613140.212
+ 45.900 43.400
+ -12929312.587 5 -10074793.736 4 22473028.248 22473026.848 22473027.087
+ 34.300 28.600
+ 06 1 2 19 11 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -7054773.623 5 -5497220.216 4 23471027.598 23471026.130 23471026.725
+ 30.600 28.800
+ -20090220.271 7 -15654700.505 7 20617682.009 20617681.600 20617681.657
+ 44.900 43.000
+ -15424779.256 7 -12019301.684 7 20432629.964 20432629.532 20432628.929
+ 44.500 46.800
+ -4611540.285 5 -3593405.366 4 23376103.798 23376103.845 23376102.918
+ 31.000 24.200
+ -22550614.667 7 -17571900.690 8 20430664.145 20430662.949 20430663.642
+ 47.900 49.000
+ -11829114.601 6 -9217482.270 5 22434259.777 22434259.020 22434258.532
+ 40.300 30.200
+ -20039365.813 7 -15615075.783 7 20620354.753 20620354.493 20620353.821
+ 46.100 43.100
+ -12831604.344 5 -9998657.502 4 22491621.791 22491620.294 22491620.293
+ 33.400 27.400
+ 06 1 2 19 12 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -7156407.285 5 -5576415.206 4 23451687.586 23451685.637 23451686.775
+ 33.100 28.800
+ -20141315.235 7 -15694514.732 7 20607959.016 20607958.500 20607958.687
+ 45.100 43.000
+ -15429366.297 7 -12022875.997 7 20431757.101 20431756.682 20431756.080
+ 44.600 46.800
+ -4572365.729 4 -3562879.771 4 23383558.127 23383558.797 23383557.535
+ 29.900 24.600
+ -22526603.866 7 -17553190.971 8 20435233.450 20435232.060 20435232.873
+ 47.900 49.000
+ -11794968.404 6 -9190874.841 5 22440757.848 22440756.721 22440756.478
+ 40.200 30.600
+ -20001049.073 7 -15585218.580 7 20627646.245 20627645.979 20627645.336
+ 45.900 43.400
+ -12733598.281 5 -9922289.204 4 22510271.082 22510270.276 22510270.434
+ 34.000 27.600
+ 06 1 2 19 12 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -7257858.716 5 -5655468.185 4 23432381.908 23432380.016 23432381.012
+ 31.100 29.000
+ -20191952.185 7 -15733972.069 7 20598323.261 20598322.638 20598322.790
+ 44.900 43.100
+ -15433656.926 7 -12026219.341 7 20430940.776 20430940.144 20430939.607
+ 44.500 46.700
+ -4532641.367 4 -3531925.761 4 23391117.310 23391117.997 23391116.527
+ 28.600 24.900
+ -22502253.387 7 -17534216.571 8 20439866.958 20439865.793 20439866.501
+ 47.700 48.800
+ -11760236.741 6 -9163811.211 4 22447367.054 22447365.877 22447365.656
+ 39.800 29.900
+ -19962325.242 7 -15555044.166 7 20635015.155 20635014.882 20635014.304
+ 46.200 43.300
+ -12635296.324 5 -9845690.303 4 22528977.699 22528976.873 22528976.830
+ 34.300 28.600
+ 06 1 2 19 13 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -7359126.383 5 -5734377.956 5 23413111.131 23413109.642 23413110.380
+ 31.500 30.400
+ -20242130.702 7 -15773072.185 7 20588774.452 20588773.889 20588774.085
+ 45.000 43.100
+ -15437650.893 7 -12029331.519 7 20430180.755 20430180.041 20430179.581
+ 44.400 46.700
+ -4492368.896 5 -3500544.642 4 23398781.263 23398781.585 23398780.496
+ 30.200 24.200
+ -22477563.167 7 -17514977.441 8 20444565.590 20444564.139 20444564.961
+ 47.800 48.700
+ -11724920.540 6 -9136292.086 5 22454087.082 22454086.396 22454085.754
+ 39.800 30.100
+ -19923195.916 7 -15524553.781 7 20642461.367 20642460.985 20642460.424
+ 46.200 43.300
+ -12536700.935 5 -9768862.806 4 22547740.668 22547738.929 22547739.106
+ 33.100 28.800
+ 06 1 2 19 13 30.0000000 0 8G02G04G07G09G17G20G24G28
+ -7460208.752 5 -5813143.316 5 23393875.785 23393874.390 23393874.784
+ 31.000 30.800
+ -20291850.071 7 -15811814.529 7 20579313.214 20579312.517 20579312.780
+ 44.800 43.000
+ -15441347.414 7 -12032211.922 7 20429477.525 20429476.622 20429476.286
+ 44.600 46.600
+ -4451551.133 4 -3468738.603 4 23406548.660 23406548.922 23406547.870
+ 29.900 24.600
+ -22452533.322 7 -17495473.666 8 20449328.551 20449327.180 20449328.027
+ 47.700 48.700
+ -11689020.791 6 -9108318.244 4 22460918.839 22460917.641 22460917.633
+ 40.000 29.200
+ -19883662.952 7 -15493748.874 7 20649984.272 20649983.854 20649983.341
+ 46.400 43.300
+ -12437813.308 5 -9691807.607 4 22566557.278 22566556.806 22566556.606
+ 33.100 28.600
+ 06 1 2 19 14 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -7561104.822 5 -5891763.515 5 23374675.845 23374674.109 23374674.976
+ 32.000 30.100
+ -20341109.851 7 -15850198.750 7 20569939.416 20569938.633 20569938.927
+ 44.900 43.200
+ -15444746.027 7 -12034860.188 7 20428830.888 20428829.867 20428829.686
+ 44.800 46.600
+ -4410189.835 4 -3436509.044 4 23414419.171 23414419.920 23414418.559
+ 29.000 25.600
+ -22427163.789 7 -17475705.202 8 20454156.078 20454154.804 20454155.531
+ 47.600 48.700
+ -11652539.233 6 -9079891.054 4 22467861.073 22467859.949 22467859.867
+ 40.100 29.700
+ -19843728.242 7 -15462630.921 7 20657583.628 20657583.139 20657582.636
+ 46.300 43.200
+ -12338636.436 5 -9614526.981 4 22585429.304 22585429.311 22585428.851
+ 31.800 27.100
+ 06 1 2 19 14 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -7661813.105 5 -5970237.383 5 23355511.307 23355509.956 23355510.504
+ 31.500 30.200
+ -20389909.609 7 -15888224.515 7 20560652.869 20560652.440 20560652.524
+ 44.900 43.300
+ -137096.975 3 -106828.322 3 24366392.627 24366393.749 24366391.393
+ 21.100 21.100
+ -15447846.194 7 -12037275.903 7 20428240.717 20428239.889 20428239.621
+ 44.900 46.800
+ -4368287.585 4 -3403857.957 4 23422393.190 23422393.910 23422392.277
+ 28.800 25.900
+ -22401454.576 7 -17455672.046 8 20459048.413 20459047.152 20459047.867
+ 47.600 48.600
+ -11615477.090 6 -9051011.463 5 22474913.651 22474912.815 22474912.568
+ 40.300 30.600
+ -19803393.304 7 -15431201.108 7 20665259.012 20665258.618 20665258.048
+ 46.300 43.100
+ -12239172.309 5 -9537022.517 4 22604358.447 22604356.655 22604356.953
+ 33.100 27.400
+ 06 1 2 19 15 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -7762332.031 5 -6048563.709 4 23336383.518 23336381.319 23336382.422
+ 32.000 28.100
+ -20438248.687 7 -15925891.312 7 20551454.472 20551453.721 20551454.040
+ 45.000 43.400
+ -239688.326 3 -186769.597 3 24346869.011 24346871.296 24346868.536
+ 22.600 20.500
+ -15450647.378 7 -12039458.640 7 20427707.609 20427706.875 20427706.478
+ 44.900 46.700
+ -4325846.218 4 -3370786.791 4 23430469.442 23430470.079 23430468.499
+ 28.600 25.900
+ -22375405.674 7 -17435374.202 8 20464005.347 20464004.124 20464004.803
+ 47.500 48.500
+ -11577835.647 6 -9021680.458 4 22482076.534 22482075.490 22482075.351
+ 39.600 29.700
+ -19762660.228 7 -15399461.047 7 20673010.254 20673009.890 20673009.335
+ 46.500 43.100
+ -12139422.914 5 -9459295.771 4 22623339.849 22623338.585 22623338.531
+ 32.600 27.600
+ 06 1 2 19 15 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -7862660.504 5 -6126741.645 4 23317290.837 23317289.391 23317290.377
+ 32.400 28.100
+ -20486126.781 7 -15963198.903 7 20542343.558 20542342.803 20542343.088
+ 44.900 43.400
+ -342078.879 2 -266554.372 2 24327385.040 24327386.077 24327383.933
+ 13.900 17.800
+ -15453148.927 7 -12041407.895 7 20427231.845 20427230.832 20427230.627
+ 44.900 46.700
+ -4282868.311 4 -3337297.519 3 23438647.877 23438647.941 23438646.937
+ 29.000 23.800
+ -22349016.972 7 -17414811.577 8 20469026.616 20469025.719 20469026.302
+ 47.400 48.500
+ -11539616.053 6 -8991898.948 5 22489348.801 22489348.527 22489347.844
+ 39.600 30.100
+ -19721530.583 7 -15367411.977 7 20680837.012 20680836.699 20680836.099
+ 46.300 43.100
+ -12039390.439 5 -9381348.459 4 22642374.807 22642374.272 22642373.669
+ 32.600 27.400
+ 06 1 2 19 16 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -7962797.180 5 -6204770.143 4 23298235.902 23298234.061 23298235.099
+ 33.200 28.600
+ -20533543.412 7 -16000146.914 7 20533320.302 20533319.701 20533319.907
+ 45.100 43.400
+ -444266.134 3 -346180.724 3 24307939.857 24307941.327 24307938.455
+ 20.500 23.000
+ -15455350.306 7 -12043123.253 7 20426812.566 20426811.955 20426811.532
+ 44.900 46.700
+ -4239356.007 4 -3303391.845 3 23446927.714 23446928.019 23446927.012
+ 28.600 23.400
+ -22322288.666 7 -17393984.328 8 20474113.030 20474111.926 20474112.531
+ 47.500 48.300
+ -11500819.913 6 -8961668.185 5 22496732.246 22496731.317 22496730.982
+ 39.900 30.200
+ -19680006.147 7 -15335055.282 7 20688738.930 20688738.491 20688737.978
+ 46.400 43.000
+ -11939077.198 5 -9303182.348 4 22661463.590 22661463.237 22661462.779
+ 32.000 26.800
+ 06 1 2 19 16 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8062740.803 5 -6282648.203 4 23279217.170 23279215.370 23279216.426
+ 32.100 29.700
+ -20580498.165 7 -16036735.023 7 20524385.029 20524384.466 20524384.664
+ 44.900 43.400
+ -546247.470 4 -425646.623 4 24288533.767 24288534.883 24288532.456
+ 24.900 25.300
+ -15457251.008 7 -12044604.314 7 20426450.975 20426450.320 20426449.837
+ 44.800 46.700
+ -4195311.393 4 -3269071.393 3 23455309.287 23455309.756 23455308.685
+ 29.500 23.800
+ -22295220.690 7 -17372892.396 8 20479263.907 20479262.791 20479263.423
+ 47.500 48.300
+ -11461448.333 6 -8930989.021 4 22504224.620 22504223.333 22504223.329
+ 40.500 29.700
+ -19638088.710 7 -15302392.353 7 20696715.422 20696715.219 20696714.504
+ 46.300 43.100
+ -11838485.141 5 -9224798.973 4 22680606.488 22680605.369 22680605.130
+ 31.800 27.400
+ 06 1 2 19 17 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8162489.931 5 -6360374.723 5 23260235.322 23260233.615 23260234.677
+ 31.800 30.100
+ -20626990.362 7 -16072962.697 7 20515538.010 20515537.308 20515537.584
+ 45.000 43.600
+ -648020.238 4 -504950.034 3 24269167.119 24269167.497 24269165.860
+ 25.600 23.400
+ -15458850.535 7 -12045850.698 7 20426146.793 20426145.936 20426145.622
+ 44.800 46.600
+ -4150736.868 4 -3234338.006 4 23463791.292 23463792.184 23463790.603
+ 28.400 24.600
+ -22267812.986 7 -17351535.746 8 20484479.547 20484478.310 20484479.008
+ 47.300 48.300
+ -11421502.694 6 -8899862.548 5 22511825.668 22511824.760 22511824.394
+ 40.000 30.100
+ -19595780.108 7 -15269424.621 7 20704766.515 20704766.279 20704765.538
+ 46.200 43.200
+ -11737616.613 5 -9146200.192 4 22699800.583 22699799.960 22699799.471
+ 32.300 26.800
+ 06 1 2 19 17 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8262043.381 5 -6437948.747 5 23241290.341 23241289.357 23241289.963
+ 31.500 30.100
+ -20673020.048 7 -16108829.974 7 20506778.916 20506778.205 20506778.465
+ 45.200 43.600
+ -749582.018 3 -584089.010 3 24249839.924 24249841.052 24249838.980
+ 21.600 23.400
+ -15460148.223 7 -12046861.877 7 20425899.799 20425898.963 20425898.565
+ 44.900 46.700
+ -4105634.623 4 -3199193.412 4 23472373.980 23472374.783 23472373.392
+ 29.000 24.600
+ -22240065.717 7 -17329914.502 8 20489759.716 20489758.469 20489759.140
+ 47.600 48.300
+ -11380984.519 6 -8868289.931 5 22519535.405 22519535.266 22519534.488
+ 39.400 30.100
+ -19553082.058 7 -15236153.424 7 20712891.560 20712891.490 20712890.642
+ 46.100 43.200
+ -11636473.727 5 -9067387.601 4 22719046.967 22719047.112 22719046.597
+ 33.100 26.500
+ 06 1 2 19 18 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8361399.499 5 -6515369.032 4 23222384.252 23222382.256 23222383.327
+ 33.000 29.000
+ -20718586.376 7 -16144336.199 7 20498108.035 20498107.149 20498107.510
+ 45.100 43.600
+ -850930.222 4 -663061.580 3 24230554.402 24230554.977 24230553.405
+ 24.900 20.500
+ -15461143.575 7 -12047637.469 7 20425710.187 20425709.537 20425709.022
+ 44.700 46.700
+ -4060007.275 5 -3163639.640 3 23481057.220 23481057.298 23481056.569
+ 30.100 23.800
+ -22211978.693 7 -17308028.514 8 20495104.406 20495103.198 20495103.850
+ 47.600 48.200
+ -11339895.071 6 -8836272.174 4 22527354.972 22527353.689 22527353.976
+ 39.700 28.400
+ -19509996.359 7 -15202580.165 7 20721090.444 20721090.365 20721089.575
+ 46.400 43.000
+ -11535058.609 5 -8988362.886 4 22738346.847 22738345.397 22738345.331
+ 31.500 26.200
+ 06 1 2 19 18 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8460556.967 5 -6592634.556 4 23203515.202 23203513.126 23203514.327
+ 33.500 29.000
+ -20763689.120 7 -16179481.182 7 20489524.960 20489524.297 20489524.534
+ 44.800 43.700
+ -952062.288 3 -741865.744 3 24211308.320 24211309.545 24211307.627
+ 21.100 19.300
+ -15461836.081 7 -12048177.080 7 20425578.527 20425577.769 20425577.344
+ 44.500 46.700
+ -4013857.200 4 -3127678.567 4 23489839.009 23489839.330 23489838.286
+ 28.800 25.300
+ -22183552.153 7 -17285877.965 8 20500513.865 20500512.532 20500513.292
+ 47.600 48.000
+ -11298236.079 6 -8803810.608 4 22535283.239 22535281.141 22535281.789
+ 39.800 28.400
+ -19466525.106 7 -15168706.474 7 20729362.974 20729362.563 20729362.091
+ 46.200 42.800
+ -11433373.349 5 -8909127.682 4 22757696.313 22757695.566 22757695.371
+ 30.800 25.600
+ 06 1 2 19 19 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8559514.797 5 -6669744.504 5 23184683.858 23184682.218 23184682.990
+ 32.600 30.600
+ -20808327.779 7 -16214264.545 7 20481030.545 20481029.942 20481030.090
+ 44.900 43.600
+ -1052975.620 3 -820499.460 2 24192107.055 24192107.072 24192105.898
+ 22.600 16.100
+ -15462225.067 7 -12048480.180 7 20425504.331 20425503.752 20425503.217
+ 44.600 46.600
+ -3967186.087 5 -3091311.485 4 23498720.520 23498720.739 23498719.717
+ 30.100 25.900
+ -22154785.984 7 -17263462.766 8 20505987.852 20505986.531 20505987.319
+ 47.700 48.000
+ -11256008.965 6 -8770906.366 4 22543318.373 22543316.940 22543317.034
+ 39.800 28.800
+ -19422669.780 7 -15134533.506 7 20737708.397 20737707.898 20737707.448
+ 46.300 42.700
+ -11331420.599 5 -8829684.040 4 22777096.970 22777096.608 22777096.362
+ 31.300 24.900
+ 06 1 2 19 19 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8658271.635 5 -6746697.812 5 23165890.946 23165889.184 23165890.146
+ 32.700 30.100
+ -20852502.147 7 -16248686.119 7 20472624.264 20472623.906 20472623.938
+ 44.800 43.900
+ -1153667.659 3 -898960.737 1 24172945.276 24172946.493 24172943.662
+ 22.600 11.000
+ -15462310.081 7 -12048546.421 7 20425488.172 20425487.512 20425487.101
+ 44.600 46.600
+ -3919997.074 4 -3054540.848 4 23507700.176 23507700.402 23507699.455
+ 29.000 25.600
+ -22125680.159 7 -17240782.905 8 20511526.713 20511525.302 20511526.143
+ 47.700 48.100
+ -11213215.051 6 -8737560.457 4 22551461.587 22551460.529 22551460.345
+ 39.700 29.000
+ -19378432.024 7 -15100062.540 7 20746126.512 20746126.103 20746125.550
+ 46.300 42.500
+ -11229202.418 5 -8750033.549 4 22796549.068 22796547.979 22796547.944
+ 31.800 26.500
+ 06 1 2 19 20 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8756825.914 5 -6823493.314 4 23147136.963 23147134.650 23147136.113
+ 33.800 29.700
+ -20896211.935 7 -16282745.683 7 20464306.669 20464306.167 20464306.264
+ 44.800 43.900
+ -1254135.847 3 -977247.627 1 24153825.349 24153827.077 24153824.582
+ 20.500 11.000
+ -15462090.637 7 -12048375.423 7 20425529.855 20425529.196 20425528.857
+ 44.600 46.500
+ -3872292.434 4 -3017368.426 4 23516778.044 23516778.700 23516777.246
+ 29.200 26.800
+ -22096234.755 7 -17217838.436 7 20517130.031 20517128.515 20517129.459
+ 47.900 47.700
+ -11169855.762 6 -8703773.998 4 22559712.342 22559711.441 22559711.215
+ 39.500 29.700
+ -19333813.898 7 -15065295.176 7 20754616.982 20754616.673 20754616.060
+ 46.200 42.500
+ -11126720.773 5 -8670177.787 4 22816051.013 22816049.879 22816049.901
+ 31.100 27.100
+ 06 1 2 19 20 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8855176.635 5 -6900130.171 5 23128421.164 23128419.225 23128420.439
+ 33.000 30.800
+ -20939456.687 7 -16316442.881 7 20456077.582 20456076.951 20456077.075
+ 44.700 44.000
+ -1354377.556 4 -1055358.038 2 24134751.317 24134751.559 24134750.345
+ 26.500 16.100
+ -15461566.132 7 -12047966.715 7 20425629.812 20425628.967 20425628.627
+ 44.700 46.500
+ -3824074.221 4 -2979795.807 4 23525953.685 23525954.284 23525952.824
+ 28.600 25.600
+ -22066450.034 7 -17194629.560 7 20522797.672 20522796.324 20522797.202
+ 47.800 47.700
+ -11125932.939 6 -8669548.427 4 22568070.831 22568069.734 22568069.759
+ 39.800 29.200
+ -19288817.439 7 -15030233.013 7 20763179.421 20763179.205 20763178.651
+ 46.400 42.500
+ -11023977.950 5 -8590118.509 4 22835600.665 22835601.539 22835600.851
+ 31.100 27.100
+ 06 1 2 19 21 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8953322.203 5 -6976607.165 5 23109744.554 23109742.638 23109743.868
+ 32.600 30.600
+ -20982236.097 7 -16349777.469 7 20447936.922 20447936.242 20447936.514
+ 44.900 43.800
+ -1454390.235 4 -1133289.951 3 24115719.214 24115720.569 24115717.907
+ 28.600 23.800
+ -15460735.972 7 -12047319.839 7 20425787.864 20425787.003 20425786.665
+ 44.600 46.500
+ -3775345.196 4 -2941825.165 4 23535226.450 23535226.981 23535225.735
+ 29.000 25.900
+ -22036325.763 8 -17171156.101 7 20528530.179 20528528.824 20528529.720
+ 48.000 47.700
+ -11081447.965 6 -8634884.832 4 22576535.731 22576535.350 22576534.810
+ 39.100 29.900
+ -19243444.196 7 -14994877.250 7 20771813.700 20771813.475 20771812.868
+ 46.400 42.500
+ -10920976.263 5 -8509857.506 4 22855202.765 22855202.032 22855201.629
+ 30.200 25.300
+ 06 1 2 19 21 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9051261.456 5 -7052923.370 5 23091107.624 23091105.532 23091106.637
+ 32.300 31.500
+ -21024549.943 7 -16382749.288 7 20439884.857 20439884.224 20439884.436
+ 45.000 44.100
+ -1554171.267 4 -1211041.352 4 24096731.684 24096732.401 24096730.704
+ 26.500 26.500
+ -15459599.703 7 -12046434.436 7 20426004.061 20426003.336 20426002.953
+ 45.000 46.600
+ -3726107.643 4 -2903458.279 4 23544596.225 23544597.060 23544595.483
+ 28.600 25.900
+ -22005861.985 7 -17147418.093 7 20534327.406 20534325.864 20534326.847
+ 47.800 47.800
+ -11036402.344 6 -8599784.361 4 22585107.083 22585106.867 22585106.267
+ 38.400 29.500
+ -19197695.830 7 -14959229.177 7 20780519.451 20780519.125 20780518.568
+ 46.500 42.500
+ -10817717.791 4 -8429396.435 4 22874852.533 22874851.333 22874851.348
+ 29.700 25.600
+ 06 1 2 19 22 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9148993.020 5 -7129077.729 5 23072509.732 23072507.612 23072508.973
+ 33.100 31.100
+ -21066397.819 7 -16415358.008 7 20431921.300 20431920.853 20431920.929
+ 44.900 44.300
+ -1653718.135 4 -1288610.287 4 24077788.948 24077789.171 24077787.930
+ 27.100 27.100
+ -15458156.760 7 -12045310.067 7 20426278.637 20426277.938 20426277.581
+ 44.900 46.700
+ -3676364.437 4 -2864697.361 4 23554061.872 23554062.746 23554061.277
+ 28.600 26.500
+ -21975058.896 7 -17123415.689 7 20540188.977 20540187.507 20540188.507
+ 47.900 47.500
+ -10990797.921 6 -8564248.477 4 22593786.126 22593784.874 22593784.969
+ 39.100 28.100
+ -19151574.449 7 -14923290.443 7 20789296.040 20789295.814 20789295.209
+ 46.300 42.600
+ -10714205.042 5 -8348737.209 4 22894549.463 22894549.743 22894548.809
+ 31.300 26.500
+ 06 1 2 19 22 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9246515.737 5 -7205069.354 5 23053951.296 23053949.582 23053950.702
+ 34.100 31.800
+ -21107779.546 7 -16447603.493 7 20424046.694 20424046.158 20424046.299
+ 45.000 44.200
+ -1753028.232 4 -1365994.706 4 24058889.650 24058891.209 24058888.779
+ 24.900 28.400
+ -15456406.607 7 -12043946.310 7 20426611.918 20426610.921 20426610.679
+ 45.100 46.600
+ -3626117.846 4 -2825544.207 4 23563623.327 23563624.352 23563622.591
+ 29.200 25.600
+ -21943916.342 7 -17099148.763 7 20546115.290 20546113.711 20546114.668
+ 47.900 47.500
+ -10944635.983 6 -8528278.158 4 22602570.542 22602569.662 22602569.375
+ 39.300 29.200
+ -19105081.911 7 -14887062.491 7 20798143.338 20798143.029 20798142.363
+ 46.300 42.500
+ -10610439.990 5 -8267881.383 4 22914296.105 22914295.357 22914294.911
+ 30.400 25.900
+ 06 1 2 19 23 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9343828.468 5 -7280897.338 5 23035433.428 23035431.340 23035432.632
+ 33.600 31.300
+ -21148694.728 7 -16479485.436 7 20416260.786 20416260.192 20416260.397
+ 45.000 44.400
+ -1852098.896 3 -1443192.573 4 24040038.023 24040038.075 24040037.053
+ 23.000 26.800
+ -15454348.727 7 -12042342.770 7 20427003.474 20427002.523 20427002.271
+ 45.100 46.400
+ -3575369.920 4 -2786000.384 4 23573280.641 23573281.034 23573279.917
+ 29.500 25.600
+ -21912434.425 7 -17074617.399 7 20552105.917 20552104.537 20552105.430
+ 47.700 47.400
+ -10897918.337 6 -8491874.822 4 22611460.399 22611459.574 22611459.125
+ 38.400 27.900
+ -19058219.826 7 -14850546.574 7 20807060.846 20807060.618 20807059.882
+ 46.100 42.500
+ -10506425.148 5 -8186830.908 4 22934089.665 22934088.580 22934088.414
+ 31.500 25.600
+ 06 1 2 19 23 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9440929.743 5 -7356560.566 5 23016956.359 23016953.549 23016955.363
+ 35.300 31.500
+ -21189143.068 7 -16511003.604 7 20408563.645 20408563.130 20408563.329
+ 45.200 44.300
+ -1950927.635 2 -1520201.885 3 24021230.190 24021231.753 24021229.292
+ 17.000 21.100
+ -15451982.578 7 -12040499.019 7 20427453.521 20427452.775 20427452.416
+ 45.100 46.500
+ -3524123.785 4 -2746068.374 4 23583032.462 23583032.868 23583031.602
+ 29.000 25.900
+ -21880613.563 7 -17049821.932 7 20558161.210 20558159.855 20558160.636
+ 47.600 47.400
+ -10850646.678 6 -8455039.793 4 22620456.007 22620454.884 22620454.757
+ 38.400 28.100
+ -19010990.440 7 -14813744.448 7 20816048.271 20816048.026 20816047.376
+ 46.200 42.500
+ -10402162.637 5 -8105587.443 4 22953929.724 22953929.183 22953928.756
+ 30.800 24.600
+ 06 1 2 19 24 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9537818.273 5 -7432058.031 5 22998518.579 22998516.320 22998517.804
+ 35.100 32.100
+ -21229124.629 7 -16542158.048 7 20400955.359 20400954.864 20400955.060
+ 45.000 44.300
+ -2049511.699 3 -1597020.532 4 24002470.699 24002473.019 24002470.225
+ 21.100 26.200
+ -15449307.472 7 -12038414.525 7 20427962.644 20427961.774 20427961.436
+ 44.900 46.400
+ -3472381.620 5 -2705749.837 4 23592878.978 23592879.675 23592878.161
+ 30.200 25.600
+ -21848453.303 7 -17024761.992 7 20564280.956 20564279.786 20564280.539
+ 47.700 47.400
+ -10802822.788 6 -8417774.452 4 22629556.835 22629555.409 22629555.698
+ 39.300 27.900
+ -18963395.234 7 -14776657.260 7 20825105.339 20825105.130 20825104.444
+ 46.100 42.300
+ -10297654.720 5 -8024152.752 4 22973817.608 22973816.482 22973816.337
+ 31.100 24.900
+ 06 1 2 19 24 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9634492.713 5 -7507388.670 5 22980121.320 22980119.671 22980120.888
+ 33.800 32.000
+ -21268639.143 7 -16572948.557 7 20393436.174 20393435.501 20393435.704
+ 45.200 44.500
+ -2147848.682 3 -1673646.694 3 23983757.332 23983759.042 23983756.520
+ 22.600 19.900
+ -15446323.084 7 -12036089.030 7 20428530.582 20428529.721 20428529.392
+ 45.000 46.400
+ -3420145.765 4 -2665046.604 4 23602818.991 23602819.719 23602818.277
+ 29.200 25.600
+ -21815953.480 7 -16999437.455 7 20570465.808 20570464.318 20570465.206
+ 47.700 47.300
+ -10754448.011 6 -8380079.842 4 22638761.926 22638760.847 22638760.962
+ 39.100 28.100
+ -18915436.254 7 -14739286.617 7 20834231.655 20834231.305 20834230.767
+ 46.200 42.200
+ -10192903.386 4 -7942528.402 4 22993750.909 22993750.322 22993749.822
+ 29.000 24.900
+ 06 1 2 19 25 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9730951.877 5 -7582551.554 5 22961766.348 22961763.924 22961765.400
+ 33.400 32.000
+ -21307686.144 7 -16603374.773 7 20386005.676 20386005.109 20386005.311
+ 45.200 44.600
+ -2245935.856 4 -1750078.241 3 23965093.388 23965092.741 23965092.185
+ 26.500 18.600
+ -15443028.762 7 -12033522.023 7 20429157.479 20429156.676 20429156.332
+ 45.100 46.400
+ -3367418.956 4 -2623960.797 4 23612852.241 23612853.016 23612851.438
+ 28.400 25.300
+ -21783114.848 7 -16973848.913 7 20576714.615 20576713.243 20576714.170
+ 47.700 47.400
+ -10705524.160 6 -8341957.385 4 22648071.757 22648071.233 22648070.767
+ 38.600 28.800
+ -18867115.050 7 -14701633.725 7 20843427.015 20843426.539 20843425.961
+ 46.200 42.100
+ -10087911.304 4 -7860716.440 4 23013729.687 23013729.612 23013728.959
+ 28.800 24.600
+ 06 1 2 19 25 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9827194.563 5 -7657545.776 5 22943451.712 22943449.183 22943450.852
+ 33.900 30.600
+ -21346265.599 7 -16633436.665 7 20378664.202 20378663.670 20378663.872
+ 45.200 44.600
+ -2343770.622 4 -1826313.078 3 23946475.218 23946476.650 23946474.118
+ 26.200 22.100
+ -15439423.991 7 -12030713.113 7 20429843.517 20429842.679 20429842.326
+ 44.900 46.400
+ -3314204.061 4 -2582494.697 4 23622978.710 23622979.374 23622977.768
+ 26.200 25.300
+ -21749937.280 7 -16947996.265 7 20583028.129 20583026.721 20583027.598
+ 47.700 47.300
+ -10656053.203 6 -8303408.610 4 22657485.941 22657485.263 22657484.775
+ 38.100 28.600
+ -18818433.689 7 -14663700.188 7 20852690.630 20852690.262 20852689.643
+ 46.200 42.000
+ -9982680.617 4 -7778718.560 4 23033755.293 23033754.234 23033753.942
+ 28.600 24.900
+ 06 1 2 19 26 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9923219.294 5 -7732370.192 5 22925178.699 22925176.249 22925177.801
+ 33.400 30.800
+ -21384377.331 7 -16663134.096 7 20371411.922 20371411.177 20371411.456
+ 45.000 44.500
+ -2441350.386 4 -1902349.198 2 23927905.974 23927906.707 23927905.149
+ 28.400 17.800
+ -15435508.296 7 -12027661.924 7 20430588.480 20430587.800 20430587.370
+ 44.900 46.500
+ -3260503.664 4 -2540650.274 3 23633197.796 23633198.286 23633197.046
+ 28.100 23.000
+ -21716420.794 7 -16921879.527 7 20589406.041 20589404.682 20589405.574
+ 47.700 47.100
+ -10606036.593 6 -8264434.652 4 22667003.626 22667002.765 22667002.724
+ 38.800 27.100
+ -18769393.970 7 -14625487.409 7 20862022.427 20862022.236 20862021.532
+ 46.400 42.200
+ -9877213.708 4 -7696536.610 3 23053824.455 23053823.701 23053823.485
+ 28.800 23.800
+ 06 1 2 19 26 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10019025.059 5 -7807023.995 5 22906947.209 22906945.107 22906946.545
+ 34.100 30.800
+ -21422021.280 7 -16692467.022 7 20364248.379 20364247.676 20364247.984
+ 45.000 44.600
+ -2538672.522 4 -1978184.659 2 23909387.040 23909385.799 23909385.982
+ 27.100 12.600
+ -15431281.116 7 -12024368.020 7 20431392.842 20431392.114 20431391.671
+ 44.800 46.400
+ -3206320.531 4 -2498429.696 3 23643508.486 23643508.740 23643507.682
+ 27.100 21.100
+ -21682565.396 7 -16895498.700 7 20595848.672 20595847.138 20595848.016
+ 47.500 47.100
+ -10555476.162 6 -8225036.909 4 22676625.262 22676623.857 22676624.056
+ 38.600 28.400
+ -18719997.570 7 -14586996.701 7 20871422.522 20871422.010 20871421.529
+ 46.500 42.100
+ -9771512.693 4 -7614172.237 3 23073938.671 23073938.220 23073937.961
+ 29.700 23.400
+ 06 1 2 19 27 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10114610.860 5 -7881506.394 5 22888757.989 22888755.966 22888757.159
+ 34.700 32.400
+ -21459197.166 7 -16721435.223 7 20357173.968 20357173.288 20357173.583
+ 44.800 44.600
+ -2635734.576 4 -2053817.395 2 23890915.505 23890915.757 23890914.941
+ 27.900 17.800
+ -15426741.898 7 -12020830.964 7 20432256.692 20432255.812 20432255.546
+ 44.900 46.200
+ -3151656.687 4 -2455834.524 3 23653910.669 23653911.386 23653909.867
+ 26.500 23.400
+ -21648371.388 7 -16868854.018 7 20602355.451 20602354.075 20602354.836
+ 47.300 47.000
+ -10504373.769 6 -8185216.860 4 22686349.907 22686348.856 22686348.667
+ 39.100 29.000
+ -18670246.637 7 -14548229.734 6 20880889.794 20880889.242 20880888.867
+ 46.600 41.800
+ -9665579.846 4 -7531627.219 4 23094097.858 23094096.465 23094096.499
+ 29.000 24.600
+ 06 1 2 19 27 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10209974.885 5 -7955816.001 5 22870610.586 22870608.645 22870610.063
+ 34.900 32.400
+ -21495904.882 7 -16750038.616 7 20350188.822 20350187.987 20350188.398
+ 45.000 44.600
+ -2732533.716 4 -2129245.300 3 23872496.475 23872496.610 23872495.243
+ 28.100 22.100
+ -15421890.174 7 -12017050.399 7 20433180.021 20433179.060 20433178.859
+ 44.900 46.200
+ -3096515.296 4 -2412867.247 3 23664403.094 23664404.361 23664402.147
+ 26.500 23.800
+ -21613838.510 7 -16841945.283 7 20608926.852 20608925.497 20608926.212
+ 47.400 47.000
+ -10452731.223 6 -8144975.919 4 22696177.153 22696176.678 22696175.876
+ 38.900 28.100
+ -18620142.932 7 -14509187.884 7 20890424.213 20890423.688 20890423.315
+ 46.700 42.000
+ -9559417.653 4 -7448903.489 4 23114298.176 23114298.767 23114298.046
+ 29.200 24.200
+ 06 1 2 19 28 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10305116.160 5 -8029952.041 5 22852506.096 22852503.725 22852505.357
+ 34.700 32.300
+ -21532144.278 7 -16778277.084 7 20343292.606 20343291.892 20343292.211
+ 45.000 44.700
+ -2829067.446 4 -2204466.316 4 23854126.380 23854127.643 23854125.152
+ 25.600 24.200
+ -15416725.439 7 -12013025.932 7 20434162.922 20434161.902 20434161.699
+ 44.800 46.100
+ -3040898.780 4 -2369529.758 3 23674987.243 23674988.225 23674986.333
+ 27.100 23.400
+ -21578967.092 7 -16814772.750 7 20615562.735 20615561.330 20615562.118
+ 47.400 47.100
+ -10400550.191 6 -8104315.372 4 22706106.631 22706105.953 22706105.617
+ 38.600 27.600
+ -18569688.151 7 -14469872.468 6 20900025.472 20900024.950 20900024.496
+ 46.600 41.800
+ -9453028.315 4 -7366002.729 3 23134544.320 23134543.571 23134543.432
+ 29.000 23.000
+ 06 1 2 19 28 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10400033.167 5 -8103913.346 5 22834444.075 22834441.582 22834443.133
+ 34.900 32.600
+ -21567915.136 7 -16806150.458 7 20336485.644 20336484.901 20336485.205
+ 44.800 44.800
+ -2925333.102 4 -2279478.458 3 23835807.028 23835808.031 23835806.121
+ 25.900 21.600
+ -15411247.136 7 -12008757.122 7 20435205.330 20435204.348 20435204.139
+ 44.900 46.200
+ -2984810.339 4 -2325824.510 4 23685660.718 23685661.352 23685659.873
+ 27.100 24.200
+ -21543757.047 7 -16787336.354 7 20622262.915 20622261.602 20622262.352
+ 47.500 47.100
+ -10347832.699 6 -8063236.795 4 22716138.451 22716137.311 22716137.369
+ 38.400 27.400
+ -18518884.214 7 -14430284.987 6 20909692.902 20909692.656 20909692.026
+ 46.500 41.700
+ -9346414.004 4 -7282926.691 3 23154832.906 23154831.738 23154831.710
+ 28.400 21.600
+ 06 1 2 19 29 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10494725.154 5 -8177699.322 5 22816425.053 22816422.428 22816423.977
+ 35.300 32.700
+ -21603217.604 7 -16833658.858 7 20329767.749 20329767.143 20329767.425
+ 45.100 44.900
+ -3021328.094 4 -2354279.692 4 23817540.464 23817540.759 23817539.160
+ 25.300 26.800
+ -15405454.778 7 -12004243.594 7 20436307.390 20436306.582 20436306.289
+ 44.800 46.200
+ -2928252.195 4 -2281753.260 3 23696423.657 23696424.010 23696422.911
+ 26.500 23.800
+ -21508208.183 7 -16759635.945 7 20629027.782 20629026.356 20629027.182
+ 47.700 46.900
+ -10294580.471 6 -8021741.555 4 22726271.704 22726270.889 22726270.553
+ 37.500 27.600
+ -18467733.193 7 -14390427.046 7 20919426.446 20919426.441 20919425.648
+ 46.200 42.000
+ -9239577.188 4 -7199677.266 3 23175161.684 23175162.623 23175161.633
+ 29.000 23.400
+ 06 1 2 19 29 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10589190.638 5 -8251308.788 5 22798449.047 22798446.314 22798447.975
+ 35.200 32.600
+ -21638051.429 7 -16860802.081 7 20323139.156 20323138.507 20323138.747
+ 45.000 44.900
+ -3117049.827 4 -2428867.954 4 23799325.556 23799325.848 23799323.972
+ 24.200 27.900
+ -15399347.816 7 -11999484.921 7 20437469.680 20437468.757 20437468.492
+ 45.000 46.100
+ -2871226.919 4 -2237318.030 4 23707274.976 23707275.309 23707273.946
+ 27.600 24.900
+ -21472321.287 7 -16731672.130 7 20635856.768 20635855.450 20635856.200
+ 47.800 46.900
+ -10240795.446 6 -7979831.148 4 22736507.067 22736505.933 22736505.869
+ 38.000 27.600
+ -18416236.755 7 -14350299.958 6 20929226.041 20929226.000 20929225.093
+ 46.300 41.900
+ -9132520.287 4 -7116256.352 3 23195535.377 23195535.017 23195534.250
+ 28.800 23.000
+ 06 1 2 19 30 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10683428.479 5 -8324740.891 5 22780515.844 22780513.419 22780515.015
+ 35.600 32.300
+ -21672416.678 7 -16887580.180 7 20316599.627 20316598.939 20316599.208
+ 44.800 45.100
+ -3212495.642 4 -2503241.264 3 23781162.568 23781161.965 23781161.395
+ 25.600 22.600
+ -15392925.843 7 -11994480.786 7 20438691.823 20438690.913 20438690.606
+ 44.800 46.300
+ -2813737.582 4 -2192521.189 4 23718214.618 23718215.788 23718213.890
+ 27.400 24.900
+ -21436096.227 7 -16703444.812 7 20642750.068 20642748.809 20642749.509
+ 47.500 46.800
+ -10186479.495 6 -7937507.030 4 22746843.347 22746841.829 22746841.808
+ 37.300 28.100
+ -18364396.735 7 -14309905.134 6 20939090.881 20939090.692 20939089.991
+ 46.100 41.800
+ -9025245.381 4 -7032665.567 3 23215947.959 23215948.630 23215947.691
+ 28.600 23.800
+ 06 1 2 19 30 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10777437.382 5 -8397994.591 5 22762626.328 22762624.070 22762625.557
+ 35.500 32.100
+ -21706313.243 7 -16913993.079 7 20310149.357 20310148.550 20310148.900
+ 44.900 44.900
+ -3307662.908 4 -2577397.558 4 23763052.395 23763053.234 23763051.413
+ 24.200 26.200
+ -15386188.206 7 -11989230.676 7 20439973.621 20439973.026 20439972.552
+ 44.900 46.300
+ -2755786.906 4 -2147364.867 4 23729242.053 23729243.408 23729241.481
+ 27.100 25.300
+ -21399532.905 7 -16674953.908 7 20649707.882 20649706.573 20649707.271
+ 47.500 46.900
+ -10131634.676 6 -7894770.813 4 22757279.754 22757278.576 22757278.440
+ 38.000 29.200
+ -18312215.074 7 -14269244.099 6 20949020.625 20949020.539 20949019.759
+ 46.100 41.900
+ -8917754.814 4 -6948906.736 3 23236404.523 23236403.506 23236402.852
+ 26.500 23.800
+ 06 1 2 19 31 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10871216.221 6 -8471069.020 5 22744781.209 22744778.733 22744780.419
+ 36.400 32.700
+ -21739740.970 7 -16940040.646 7 20303788.318 20303787.574 20303787.853
+ 44.600 45.100
+ -3402549.056 4 -2651334.671 4 23744996.093 23744997.360 23744995.213
+ 24.900 26.500
+ -15379134.448 7 -11983734.239 7 20441315.977 20441315.283 20441314.912
+ 44.800 46.100
+ -2697377.735 4 -2101851.274 4 23740356.766 23740358.270 23740356.170
+ 26.800 24.200
+ -21362631.534 7 -16646199.592 7 20656730.002 20656728.666 20656729.433
+ 47.600 46.800
+ -10076262.852 6 -7851623.946 4 22767816.386 22767815.653 22767815.034
+ 37.200 28.400
+ -18259693.593 7 -14228318.270 6 20959015.282 20959014.961 20959014.351
+ 46.200 41.600
+ -8810050.773 4 -6864981.590 3 23256897.818 23256898.729 23256897.651
+ 26.800 23.000
+ 06 1 2 19 31 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10964763.349 6 -8543962.884 5 22726979.661 22726977.273 22726978.852
+ 36.000 33.600
+ -21772699.994 7 -16965722.989 7 20297516.167 20297515.706 20297515.782
+ 44.800 45.300
+ -3497151.426 4 -2725050.787 3 23726994.013 23726994.476 23726993.142
+ 26.500 23.400
+ -15371764.007 7 -11977991.041 7 20442718.715 20442717.873 20442717.514
+ 44.800 46.200
+ -2638512.087 4 -2055981.974 3 23751559.468 23751559.790 23751558.697
+ 29.200 23.000
+ -21325392.081 7 -16617181.836 7 20663816.235 20663815.012 20663815.805
+ 47.400 46.800
+ -10020365.804 6 -7808067.816 4 22778453.150 22778452.515 22778452.035
+ 37.700 28.100
+ -18206834.316 7 -14187129.224 6 20969073.957 20969073.820 20969073.087
+ 46.300 41.900
+ -8702136.058 4 -6780892.230 3 23277433.962 23277434.262 23277433.324
+ 26.800 22.100
+ 06 1 2 19 32 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11058077.981 5 -8616675.572 5 22709222.455 22709219.961 22709221.687
+ 35.800 33.200
+ -21805190.309 7 -16991040.106 7 20291333.531 20291333.018 20291333.130
+ 44.900 45.500
+ -3591467.493 4 -2798543.738 4 23709046.601 23709046.570 23709045.389
+ 29.500 25.600
+ -15364076.582 7 -11972000.833 7 20444181.611 20444180.687 20444180.327
+ 44.800 46.100
+ -2579193.260 4 -2009759.542 4 23762847.238 23762848.094 23762846.384
+ 28.400 24.200
+ -21287814.883 7 -16587900.903 7 20670967.004 20670965.844 20670966.485
+ 47.500 46.700
+ -9963945.579 6 -7764104.011 4 22789189.906 22789189.184 22789188.542
+ 37.700 29.000
+ -18153638.981 7 -14145678.322 6 20979196.853 20979196.511 20979195.891
+ 46.300 41.800
+ -8594012.887 4 -6696640.440 3 23298010.202 23298009.123 23298008.658
+ 27.600 21.100
+ 06 1 2 19 32 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11151158.849 6 -8689206.106 5 22691509.556 22691507.239 22691508.734
+ 36.200 33.500
+ -21837211.771 7 -17015991.887 7 20285239.873 20285239.485 20285239.550
+ 44.800 45.400
+ -3685494.497 5 -2871811.485 3 23691153.622 23691153.685 23691152.684
+ 30.100 22.100
+ -15356071.442 7 -11965763.063 7 20445704.899 20445703.999 20445703.696
+ 44.900 46.000
+ -2519424.531 4 -1963186.539 3 23774220.583 23774221.384 23774219.953
+ 27.100 23.000
+ -21249899.826 7 -16558356.700 7 20678182.070 20678180.848 20678181.543
+ 47.700 46.600
+ -9907004.010 6 -7719733.969 4 22800025.644 22800024.723 22800024.364
+ 37.000 27.900
+ -18100109.449 7 -14103967.001 6 20989382.980 20989382.936 20989382.170
+ 46.100 41.800
+ -8485683.288 4 -6612227.795 3 23318623.726 23318623.964 23318623.201
+ 28.100 21.100
+ 06 1 2 19 33 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11244004.633 5 -8761553.436 5 22673841.268 22673839.316 22673840.583
+ 35.900 34.100
+ -21868764.515 7 -17040578.434 7 20279235.788 20279235.193 20279235.353
+ 45.000 45.400
+ -3779229.857 4 -2944851.971 4 23673316.573 23673316.638 23673315.229
+ 26.500 25.900
+ -15347748.153 7 -11959277.380 7 20447288.732 20447287.925 20447287.592
+ 44.700 46.100
+ -2459208.159 4 -1916264.707 3 23785679.318 23785680.132 23785678.844
+ 25.900 22.600
+ -21211647.307 7 -16528549.538 7 20685461.337 20685460.026 20685460.760
+ 47.700 46.600
+ -9849543.262 6 -7674959.378 4 22810959.807 22810958.672 22810958.548
+ 36.900 27.900
+ -18046247.535 7 -14061996.690 6 20999632.688 20999632.481 20999631.768
+ 46.300 41.800
+ -8377149.714 4 -6527656.231 4 23339278.448 23339277.397 23339277.211
+ 27.100 24.200
+ 06 1 2 19 33 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11336614.261 6 -8833716.749 5 22656218.194 22656216.299 22656217.513
+ 36.500 33.800
+ -21899848.552 7 -17064799.754 7 20273320.650 20273320.097 20273320.282
+ 44.900 45.400
+ -3872671.051 4 -3017663.263 3 23655534.969 23655534.764 23655533.800
+ 28.800 23.400
+ -15339106.310 7 -11952543.480 7 20448933.255 20448932.387 20448932.028
+ 44.800 46.000
+ -2398546.996 4 -1868996.312 3 23797222.779 23797224.147 23797222.120
+ 25.600 21.600
+ -21173057.252 7 -16498479.358 7 20692804.620 20692803.437 20692804.253
+ 47.700 46.600
+ -9791565.300 6 -7629781.758 4 22821992.996 22821991.725 22821991.498
+ 37.200 27.600
+ -17992055.264 7 -14019768.957 6 21009945.256 21009945.001 21009944.314
+ 46.200 41.800
+ -8268414.513 4 -6442927.562 3 23359967.825 23359969.228 23359967.750
+ 25.600 22.600
+ 06 1 2 19 34 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11428986.617 6 -8905695.171 5 22638640.321 22638638.259 22638639.644
+ 36.200 33.400
+ -21930463.981 7 -17088655.926 7 20267494.849 20267494.134 20267494.354
+ 44.700 45.500
+ -3965815.446 4 -3090243.232 3 23637809.639 23637810.075 23637808.627
+ 25.600 23.400
+ -15330145.326 7 -11945560.894 7 20450638.268 20450637.563 20450637.166
+ 44.700 46.000
+ -2337444.335 4 -1821383.895 3 23808850.481 23808851.180 23808849.752
+ 26.800 22.600
+ -21134129.999 7 -16468146.432 7 20700212.438 20700211.050 20700211.955
+ 47.800 46.500
+ -9733072.209 6 -7584202.738 4 22833123.477 22833122.445 22833122.457
+ 37.200 27.100
+ -17937534.583 7 -13977285.321 6 21020320.252 21020319.836 21020319.308
+ 46.600 41.600
+ -8159480.086 4 -6358043.670 3 23380700.048 23380698.656 23380698.307
+ 24.900 21.600
+ 06 1 2 19 34 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11521120.339 6 -8977487.642 5 22621108.205 22621105.594 22621107.436
+ 36.200 33.000
+ -21960610.590 7 -17112146.785 7 20261757.780 20261757.445 20261757.441
+ 44.500 45.600
+ -4058660.408 4 -3162589.900 3 23620141.476 23620142.173 23620140.728
+ 26.500 20.500
+ -15320864.753 7 -11938329.278 7 20452404.309 20452403.624 20452403.145
+ 44.700 45.900
+ -2275902.673 4 -1773429.380 3 23820561.368 23820562.865 23820560.429
+ 26.200 23.800
+ -21094865.535 7 -16437550.745 7 20707684.359 20707682.797 20707683.765
+ 47.800 46.400
+ -9674065.851 6 -7538223.769 4 22844352.002 22844351.138 22844351.016
+ 37.300 27.900
+ -17882687.189 7 -13934547.101 6 21030757.516 21030757.103 21030756.530
+ 46.500 41.500
+ -8050349.068 4 -6273006.546 3 23401464.355 23401465.313 23401464.175
+ 24.900 20.500
+ 06 1 2 19 35 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11613014.251 6 -9049093.243 5 22603621.472 22603618.964 22603620.583
+ 36.400 34.100
+ -21990288.596 7 -17135272.501 7 20256110.596 20256109.855 20256110.121
+ 44.700 45.600
+ -4151203.259 4 -3234701.181 3 23602531.254 23602531.677 23602530.204
+ 26.800 22.100
+ -15311264.071 7 -11930848.232 7 20454231.324 20454230.599 20454230.158
+ 44.600 46.100
+ -2213924.638 4 -1725134.842 3 23832355.659 23832356.557 23832354.748
+ 24.900 23.400
+ -21055264.084 7 -16406692.471 7 20715220.088 20715218.702 20715219.568
+ 47.700 46.400
+ -9614548.428 6 -7491846.564 4 22855677.969 22855676.684 22855676.696
+ 37.100 27.100
+ -17827514.908 7 -13891555.728 6 21041256.285 21041255.969 21041255.411
+ 46.500 41.300
+ -7941023.523 4 -6187817.846 3 23422271.082 23422269.634 23422269.448
+ 27.400 20.500
+ 06 1 2 19 35 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11704667.348 6 -9120511.186 5 22586180.108 22586178.079 22586179.435
+ 36.700 34.100
+ -22019498.332 7 -17158033.336 7 20250552.190 20250551.455 20250551.789
+ 44.800 45.600
+ -4243441.382 4 -3306575.003 3 23584979.723 23584979.184 23584978.565
+ 28.800 20.500
+ -15301342.780 7 -11923117.354 7 20456119.343 20456118.554 20456118.201
+ 44.900 46.000
+ -2151513.122 4 -1676502.529 3 23844231.778 23844232.884 23844230.859
+ 25.900 23.400
+ -21015325.619 7 -16375571.589 7 20722820.203 20722818.795 20722819.580
+ 47.600 46.300
+ -9554521.944 6 -7445072.701 4 22867100.669 22867099.249 22867099.386
+ 37.400 26.800
+ -17772019.718 7 -13848312.729 6 21051816.661 21051816.421 21051815.734
+ 46.200 41.300
+ -7831505.412 4 -6102479.142 3 23443110.282 23443110.038 23443109.829
+ 29.000 20.500
+ 06 1 2 19 36 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11796078.387 6 -9191740.530 5 22568785.520 22568783.019 22568784.652
+ 37.100 34.300
+ -22048239.566 7 -17180429.098 7 20245082.917 20245082.158 20245082.480
+ 45.000 45.700
+ -4335372.095 4 -3378209.288 4 23567485.291 23567485.480 23567484.048
+ 27.400 24.600
+ -15291100.496 7 -11915136.359 7 20458068.300 20458067.651 20458067.196
+ 44.800 46.100
+ -2088671.615 4 -1627535.162 3 23856190.233 23856191.453 23856189.699
+ 26.800 23.000
+ -20975050.260 7 -16344188.198 7 20730484.258 20730482.843 20730483.697
+ 47.700 46.000
+ -9493988.711 6 -7397903.954 4 22878619.836 22878618.343 22878618.798
+ 38.100 25.900
+ -17716203.204 7 -13804819.351 6 21062438.051 21062437.864 21062437.225
+ 46.200 41.000
+ -7721797.633 4 -6016992.598 3 23463988.215 23463986.978 23463986.654
+ 28.100 22.100
+ 06 1 2 19 36 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11887245.993 6 -9262780.194 5 22551436.977 22551434.290 22551435.932
+ 37.200 34.400
+ -22076512.501 7 -17202459.954 7 20239702.690 20239701.949 20239702.254
+ 45.100 45.600
+ -4426992.862 4 -3449602.024 4 23550050.176 23550051.411 23550049.078
+ 27.600 27.100
+ -15280536.645 7 -11906904.785 7 20460078.620 20460077.885 20460077.473
+ 44.700 46.100
+ -2025402.749 4 -1578234.767 3 23868230.236 23868230.657 23868229.456
+ 27.100 21.600
+ -20934438.227 7 -16312542.458 7 20738212.438 20738210.933 20738211.949
+ 47.600 45.900
+ -9432950.369 6 -7350341.618 4 22890234.848 22890233.760 22890233.592
+ 36.900 26.500
+ -17660067.611 7 -13761077.343 6 21073120.324 21073120.199 21073119.422
+ 46.200 41.200
+ -7611902.445 4 -5931360.057 3 23484898.919 23484899.049 23484898.630
+ 26.800 19.900
+ 06 1 2 19 37 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11978169.231 6 -9333629.433 5 22534134.449 22534132.229 22534133.470
+ 36.500 34.500
+ -22104317.481 7 -17224126.168 7 20234411.549 20234410.821 20234411.101
+ 45.000 45.700
+ -4518301.130 4 -3520751.238 4 23532675.026 23532675.838 23532673.776
+ 26.200 25.900
+ -15269650.808 7 -11898422.318 7 20462150.089 20462149.376 20462148.859
+ 44.700 46.000
+ -1961709.154 4 -1528603.438 3 23880350.593 23880351.696 23880349.865
+ 26.500 23.400
+ -20893490.047 7 -16280634.792 7 20746004.646 20746003.132 20746004.148
+ 47.600 45.600
+ -9371409.326 6 -7302387.579 4 22901945.344 22901945.225 22901944.340
+ 36.700 27.400
+ -17603614.763 7 -13717088.119 6 21083862.970 21083862.766 21083862.040
+ 46.000 41.100
+ -7501822.494 4 -5845583.518 3 23505847.328 23505846.845 23505846.454
+ 26.800 21.100
+ 06 1 2 19 37 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12068846.995 6 -9404287.387 5 22516878.813 22516876.671 22516877.998
+ 36.300 34.000
+ -22131654.157 7 -17245427.470 7 20229209.572 20229208.774 20229209.219
+ 45.100 45.700
+ -4609294.201 4 -3591654.850 4 23515360.189 23515359.704 23515359.040
+ 29.200 25.600
+ -15258442.426 7 -11889688.514 7 20464282.754 20464282.217 20464281.704
+ 44.600 46.100
+ -1897594.062 4 -1478643.652 4 23892551.268 23892552.678 23892550.724
+ 26.800 24.200
+ -20852205.573 7 -16248465.073 7 20753860.916 20753859.400 20753860.296
+ 47.700 45.700
+ -9309367.272 6 -7254043.126 4 22913751.727 22913751.026 22913750.717
+ 36.900 25.300
+ -17546846.304 7 -13672852.963 6 21094665.668 21094665.516 21094664.729
+ 45.900 41.100
+ -7391559.570 4 -5759664.422 3 23526829.145 23526829.204 23526828.502
+ 25.300 21.600
+ 06 1 2 19 38 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12159278.079 6 -9474753.154 5 22499670.663 22499668.036 22499669.731
+ 37.200 34.000
+ -22158523.156 7 -17266364.350 7 20224096.810 20224095.802 20224096.354
+ 45.100 45.900
+ -4699969.434 4 -3662310.805 4 23498104.210 23498105.436 23498103.395
+ 29.900 26.200
+ -15246911.103 7 -11880703.066 7 20466477.380 20466476.644 20466476.186
+ 44.800 45.800
+ -1833060.191 4 -1428357.578 3 23904831.807 23904833.048 23904830.713
+ 26.200 23.400
+ -20810585.062 7 -16216033.510 7 20761780.946 20761779.449 20761780.471
+ 47.800 45.700
+ -9246826.937 6 -7205310.419 4 22925653.074 22925651.938 22925651.796
+ 36.900 25.300
+ -17489764.322 7 -13628373.503 6 21105528.084 21105527.841 21105527.163
+ 46.200 41.000
+ -7281116.272 4 -5673604.748 3 23547846.007 23547846.329 23547845.165
+ 24.600 23.800
+ 06 1 2 19 38 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12249461.132 6 -9545025.636 5 22482509.242 22482506.980 22482508.528
+ 37.500 34.500
+ -22184924.436 7 -17286936.771 7 20219072.661 20219071.854 20219072.211
+ 44.900 45.900
+ -4790324.293 5 -3732717.132 3 23480911.395 23480910.625 23480910.259
+ 31.500 23.800
+ -15235056.347 7 -11871465.592 7 20468733.176 20468732.527 20468732.022
+ 44.600 46.000
+ -1768110.457 4 -1377747.424 3 23917191.685 23917192.349 23917190.651
+ 25.300 22.100
+ -20768628.380 7 -16183339.997 7 20769765.364 20769763.536 20769764.691
+ 47.900 45.600
+ -9183790.416 6 -7156191.054 4 22937648.421 22937647.882 22937646.912
+ 36.300 26.200
+ -17432370.733 7 -13583651.236 6 21116449.724 21116449.587 21116448.826
+ 46.400 41.100
+ -7170495.038 4 -5587406.459 3 23568897.024 23568896.874 23568896.222
+ 26.200 23.800
+ 06 1 2 19 39 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12339395.061 6 -9615103.989 5 22465395.703 22465393.105 22465394.731
+ 37.800 34.900
+ -22210858.108 7 -17307144.820 7 20214137.548 20214136.844 20214137.154
+ 45.000 46.100
+ -4880356.115 4 -3802871.727 4 23463777.592 23463778.877 23463776.314
+ 26.500 26.800
+ -15222877.710 7 -11861975.742 7 20471050.465 20471049.946 20471049.368
+ 44.500 45.800
+ -1702748.130 4 -1326815.783 3 23929629.260 23929630.345 23929628.199
+ 24.900 20.500
+ -20726335.795 8 -16150384.745 7 20777813.373 20777811.572 20777812.720
+ 48.000 45.600
+ -9120259.741 6 -7106686.660 4 22949738.024 22949736.994 22949736.967
+ 36.300 24.900
+ -17374667.244 7 -13538687.478 6 21127430.294 21127430.045 21127429.471
+ 46.500 40.700
+ -7059698.331 4 -5501071.478 3 23589980.101 23589980.937 23589979.782
+ 25.300 21.600
+ 06 1 2 19 39 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12429078.944 6 -9684987.509 5 22448329.315 22448326.810 22448328.424
+ 38.000 35.200
+ -22236324.444 7 -17326988.711 7 20209291.384 20209290.740 20209291.067
+ 44.800 46.100
+ -4970062.348 4 -3872772.599 4 23446707.688 23446707.639 23446706.470
+ 28.400 25.900
+ -15210374.732 7 -11852233.163 7 20473429.769 20473429.122 20473428.666
+ 44.700 45.700
+ -1636976.214 4 -1275564.956 3 23942145.397 23942146.725 23942144.705
+ 26.500 23.400
+ -20683707.500 8 -16117167.896 7 20785925.237 20785923.457 20785924.638
+ 48.100 45.600
+ -9056236.922 6 -7056798.770 4 22961921.541 22961920.175 22961920.009
+ 36.200 27.400
+ -17316655.576 7 -13493483.584 6 21138469.766 21138469.345 21138468.825
+ 46.400 40.600
+ -6948728.310 4 -5414601.376 3 23611097.856 23611097.375 23611097.179
+ 24.900 19.300
+ 06 1 2 19 40 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12518511.573 6 -9754675.222 5 22431310.641 22431308.417 22431309.785
+ 37.700 35.800
+ -22261323.638 7 -17346468.595 7 20204534.405 20204533.545 20204533.965
+ 44.800 46.000
+ -5059440.366 4 -3942417.711 4 23429698.741 23429699.823 23429697.619
+ 26.200 28.100
+ -15197546.842 7 -11842237.398 7 20475870.994 20475870.238 20475869.833
+ 44.800 45.700
+ -1570797.532 4 -1223997.189 3 23954738.730 23954739.989 23954738.051
+ 25.600 23.000
+ -20640743.982 7 -16083689.839 7 20794100.649 20794099.223 20794100.167
+ 47.800 45.600
+ -8991724.452 5 -7006529.343 4 22974197.229 22974196.304 22974196.204
+ 35.700 24.900
+ -17258337.657 7 -13448041.054 6 21149567.049 21149566.855 21149566.212
+ 46.300 40.600
+ -6837587.550 4 -5327998.246 2 23632247.591 23632246.597 23632246.305
+ 24.200 13.900
+ 06 1 2 19 40 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12607691.809 6 -9824166.261 5 22414340.097 22414337.689 22414339.185
+ 37.700 34.900
+ -22285855.917 7 -17365584.648 7 20199866.007 20199865.152 20199865.611
+ 45.000 46.100
+ -5148487.462 4 -4011804.976 3 23412753.636 23412754.101 23412752.604
+ 27.600 23.000
+ -15184393.830 7 -11831988.291 7 20478374.026 20478373.214 20478372.760
+ 44.800 45.700
+ -1504215.216 4 -1172114.898 3 23967408.856 23967410.298 23967408.208
+ 25.600 21.100
+ -20597444.939 7 -16049950.330 7 20802340.296 20802338.855 20802339.800
+ 47.900 45.600
+ -8926724.495 6 -6955880.044 4 22986566.229 22986565.634 22986565.224
+ 36.100 24.900
+ -17199715.442 7 -13402361.414 6 21160722.408 21160722.382 21160721.567
+ 46.200 40.600
+ -6726278.439 4 -5241263.915 2 23653428.373 23653428.509 23653427.603
+ 24.900 17.800
+ 06 1 2 19 41 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12696618.432 6 -9893459.665 5 22397417.717 22397415.443 22397416.930
+ 37.500 35.300
+ -22309921.437 7 -17384336.992 7 20195286.396 20195285.649 20195285.959
+ 44.700 46.100
+ -5237201.193 4 -4080932.522 4 23395871.724 23395872.713 23395870.871
+ 28.800 25.300
+ -15170915.019 7 -11821485.320 7 20480938.918 20480938.196 20480937.757
+ 44.800 45.800
+ -1437231.988 4 -1119920.205 3 23980155.550 23980156.789 23980154.776
+ 25.600 22.600
+ -20553811.038 7 -16015949.892 7 20810643.697 20810642.053 20810643.000
+ 47.700 45.400
+ -8861239.088 6 -6904852.471 4 22999028.451 22999027.514 22999027.139
+ 36.400 25.900
+ -17140790.729 7 -13356446.057 6 21171935.635 21171935.230 21171934.661
+ 46.100 40.500
+ -6614803.506 4 -5154400.388 3 23674641.650 23674641.638 23674640.762
+ 24.200 18.600
+ 06 1 2 19 41 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12785290.383 6 -9962554.608 5 22380543.980 22380541.508 22380543.048
+ 37.700 35.300
+ -22333520.492 7 -17402725.855 7 20190795.535 20190794.954 20190795.150
+ 44.700 46.100
+ -5325578.845 4 -4149798.155 3 23379054.677 23379054.281 23379053.730
+ 29.700 22.600
+ -15157110.063 7 -11810728.210 7 20483566.028 20483565.189 20483564.843
+ 45.100 45.700
+ -1369850.807 4 -1067415.417 3 23992977.833 23992978.965 23992976.944
+ 25.900 23.000
+ -20509842.297 7 -15981688.545 7 20819010.552 20819009.080 20819009.945
+ 47.700 45.500
+ -8795270.538 5 -6853448.424 4 23011581.387 23011580.885 23011580.127
+ 35.700 26.800
+ -17081565.419 7 -13310296.468 6 21183205.804 21183205.496 21183204.872
+ 46.200 40.300
+ -6503164.685 4 -5067409.196 3 23695884.632 23695885.872 23695884.608
+ 24.200 23.800
+ 06 1 2 19 42 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12873706.448 6 -10031450.145 5 22363718.979 22363716.473 22363718.156
+ 38.200 35.500
+ -22356653.373 7 -17420751.466 7 20186393.434 20186392.903 20186393.101
+ 44.700 46.300
+ -5413617.845 4 -4218399.944 4 23362300.858 23362301.769 23362299.834
+ 26.500 28.100
+ -15142978.455 7 -11799716.561 7 20486254.990 20486254.314 20486253.869
+ 45.100 45.700
+ -1302074.769 3 -1014602.949 3 24005874.912 24005876.709 24005874.416
+ 23.800 23.400
+ -20465538.873 7 -15947166.400 7 20827441.004 20827439.754 20827440.637
+ 47.600 45.200
+ -8728821.113 5 -6801669.684 4 23024225.696 23024225.810 23024224.731
+ 35.700 25.900
+ -17022041.360 7 -13263914.087 6 21194532.846 21194532.502 21194531.929
+ 46.000 40.300
+ -6391364.707 4 -4980292.377 2 23717161.551 23717160.659 23717160.151
+ 25.600 17.800
+ 06 1 2 19 42 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12961865.469 6 -10100145.380 5 22346942.941 22346940.324 22346942.044
+ 38.100 35.400
+ -22379320.286 7 -17438413.982 7 20182080.326 20182079.498 20182079.784
+ 44.700 46.400
+ -5501315.684 4 -4286735.858 4 23345613.393 23345613.583 23345612.140
+ 29.500 27.900
+ -15128519.792 7 -11788450.073 7 20489006.451 20489005.642 20489005.275
+ 45.000 45.600
+ -1233907.187 3 -961485.394 3 24018846.798 24018848.077 24018846.038
+ 23.800 23.000
+ -20420900.828 7 -15912383.514 7 20835935.383 20835934.024 20835934.961
+ 47.500 45.400
+ -8661893.147 5 -6749518.040 4 23036962.326 23036961.209 23036961.246
+ 35.800 25.300
+ -16962220.537 7 -13217300.459 6 21205916.369 21205916.110 21205915.574
+ 46.100 40.300
+ -6279405.761 4 -4893051.714 3 23738465.351 23738465.797 23738465.078
+ 25.600 19.300
+ 06 1 2 19 43 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13049766.431 6 -10168639.541 5 22330215.854 22330213.144 22330214.986
+ 38.500 35.100
+ -22401521.675 7 -17455713.754 7 20177855.228 20177854.696 20177854.886
+ 44.700 46.300
+ -5588669.709 4 -4354803.868 4 23328989.702 23328990.397 23328988.516
+ 27.900 29.200
+ -15113733.730 7 -11776928.463 7 20491820.121 20491819.353 20491818.911
+ 45.100 45.600
+ -1165350.688 3 -908064.814 4 24031893.102 24031894.315 24031892.237
+ 23.400 24.900
+ -20375928.462 7 -15877340.114 7 20844493.185 20844492.094 20844492.838
+ 47.500 45.400
+ -8594488.896 5 -6696995.257 4 23049789.267 23049787.761 23049787.938
+ 35.900 24.200
+ -16902104.888 7 -13170457.092 6 21217356.005 21217355.649 21217355.111
+ 46.000 39.900
+ -6167290.373 3 -4805689.077 2 23759800.949 23759800.518 23759799.682
+ 22.100 17.000
+ 06 1 2 19 43 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13137408.563 6 -10236932.013 5 22313537.955 22313535.330 22313537.156
+ 38.400 35.100
+ -22423257.721 7 -17472650.916 7 20173719.149 20173718.416 20173718.756
+ 44.800 46.300
+ -5675677.298 4 -4422601.924 4 23312432.354 23312433.304 23312431.361
+ 28.600 27.600
+ -15098619.590 7 -11765151.212 7 20494696.290 20494695.392 20494695.085
+ 45.300 45.400
+ -1096408.532 3 -854343.704 3 24045012.493 24045013.485 24045011.529
+ 23.800 23.800
+ -20330622.252 7 -15842036.582 7 20853115.006 20853113.591 20853114.298
+ 47.300 45.200
+ -8526610.565 5 -6644103.066 4 23062706.276 23062705.051 23062704.817
+ 35.300 26.800
+ -16841696.185 7 -13123385.369 6 21228851.094 21228851.024 21228850.305
+ 45.700 39.800
+ -6055021.136 3 -4718206.635 3 23781164.272 23781165.358 23781163.577
+ 22.600 20.500
+ 06 1 2 19 44 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13224790.479 6 -10305021.727 6 22296909.554 22296907.230 22296908.790
+ 38.100 36.100
+ -22444528.661 7 -17489225.666 7 20169671.481 20169670.626 20169671.027
+ 44.600 46.300
+ -5762335.845 4 -4490127.999 4 23295942.560 23295942.917 23295941.337
+ 28.400 27.400
+ -15083177.250 7 -11753118.220 7 20497634.833 20497633.949 20497633.673
+ 45.100 45.400
+ -1027084.200 3 -800324.818 4 24058204.039 24058205.471 24058203.100
+ 21.600 24.200
+ -20284982.238 7 -15806472.934 7 20861799.939 20861798.624 20861799.411
+ 47.400 45.200
+ -8458260.487 5 -6590843.282 4 23075712.801 23075711.440 23075711.585
+ 35.300 25.600
+ -16780996.007 7 -13076086.527 6 21240402.294 21240401.779 21240401.347
+ 45.500 39.800
+ -5942600.106 3 -4630605.950 3 23802559.076 23802557.868 23802557.377
+ 21.600 21.100
+ 06 1 2 19 44 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13311911.145 6 -10372907.867 6 22280331.308 22280328.610 22280330.455
+ 39.000 36.500
+ -22465334.828 7 -17505438.250 7 20165712.125 20165711.294 20165711.721
+ 44.500 46.200
+ -5848642.780 5 -4557380.137 4 23279518.695 23279518.868 23279517.747
+ 31.000 25.600
+ -15067406.047 7 -11740828.967 7 20500635.987 20500635.142 20500634.856
+ 45.300 45.400
+ -957379.866 4 -746009.793 3 24071468.353 24071469.697 24071467.917
+ 25.300 23.000
+ -20239008.472 7 -15770649.222 7 20870548.331 20870547.147 20870547.850
+ 47.200 45.300
+ -8389440.985 5 -6537217.724 4 23088808.579 23088807.389 23088807.431
+ 35.700 25.300
+ -16720006.533 7 -13028562.254 6 21252008.165 21252007.734 21252007.184
+ 45.600 39.700
+ -5830029.814 4 -4542888.871 2 23823978.969 23823979.583 23823978.896
+ 26.500 17.800
+ 06 1 2 19 45 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13398769.351 6 -10440589.513 6 22263802.698 22263799.971 22263801.983
+ 39.100 36.300
+ -22485676.670 7 -17521289.027 7 20161841.124 20161840.352 20161840.741
+ 44.400 46.300
+ -5934595.501 5 -4624356.216 4 23263162.376 23263162.858 23263161.339
+ 31.800 26.500
+ -15051305.664 7 -11728283.213 7 20503699.949 20503699.007 20503698.759
+ 45.300 45.400
+ -887298.996 4 -691401.355 4 24084804.540 24084805.862 24084803.859
+ 26.500 24.200
+ -20192701.519 7 -15734565.887 7 20879360.134 20879358.928 20879359.767
+ 47.300 45.100
+ -8320154.445 5 -6483228.208 4 23101993.540 23101992.141 23101992.271
+ 35.800 25.300
+ -16658729.520 7 -12980813.925 6 21263668.568 21263668.376 21263667.776
+ 45.800 39.800
+ -5717312.562 3 -4455057.311 2 23845429.432 23845428.703 23845428.190
+ 22.100 16.100
+ 06 1 2 19 45 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13485364.152 6 -10508065.923 5 22247323.825 22247321.280 22247323.238
+ 38.700 35.900
+ -22505554.195 7 -17536777.996 7 20158058.736 20158057.852 20158058.246
+ 44.400 46.300
+ -6020191.532 5 -4691054.408 4 23246874.139 23246874.147 23246872.927
+ 31.000 26.800
+ -15034875.576 7 -11715480.543 7 20506826.289 20506825.497 20506825.173
+ 45.300 45.300
+ -816844.997 4 -636502.175 3 24098211.792 24098212.848 24098210.870
+ 26.800 23.800
+ -20146061.483 7 -15698222.999 7 20888235.614 20888234.165 20888235.054
+ 47.200 45.000
+ -8250402.974 5 -6428876.422 4 23115266.840 23115265.860 23115265.424
+ 35.500 25.600
+ -16597166.635 7 -12932842.835 6 21275383.815 21275383.507 21275382.871
+ 45.900 39.800
+ -5604451.162 3 -4367113.352 2 23866905.479 23866905.517 23866904.404
+ 21.100 15.100
+ 06 1 2 19 46 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13571694.423 6 -10575336.218 6 22230895.959 22230893.213 22230895.145
+ 39.000 36.200
+ -22524968.091 7 -17551905.697 7 20154364.202 20154363.520 20154363.858
+ 44.400 46.400
+ -6105428.199 4 -4757472.547 4 23230653.926 23230654.343 23230652.847
+ 29.500 26.800
+ -15018115.621 7 -11702420.833 7 20510015.869 20510014.757 20510014.609
+ 45.400 45.200
+ -746020.855 4 -581314.555 3 24111689.533 24111690.186 24111688.555
+ 27.600 22.100
+ -20099088.408 7 -15661620.608 7 20897174.311 20897172.973 20897173.752
+ 47.300 44.900
+ -8180188.944 5 -6374164.208 4 23128627.214 23128626.650 23128626.294
+ 33.800 25.600
+ -16535320.034 7 -12884650.672 6 21287152.977 21287152.572 21287152.005
+ 45.600 39.700
+ -5491447.514 3 -4279058.686 3 23888409.742 23888409.353 23888409.178
+ 22.100 19.900
+ 06 1 2 19 46 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13657759.097 6 -10642399.562 5 22214518.064 22214515.579 22214517.266
+ 38.500 35.900
+ -22543918.568 7 -17566672.297 7 20150758.109 20150757.362 20150757.714
+ 44.600 46.400
+ -6190302.942 4 -4823608.658 4 23214503.083 23214502.938 23214501.766
+ 29.000 24.900
+ -15001025.121 7 -11689103.560 7 20513267.920 20513266.972 20513266.828
+ 45.600 45.200
+ -674829.091 4 -525840.494 3 24125236.877 24125237.336 24125235.965
+ 25.600 19.300
+ -20051782.688 7 -15624759.011 7 20906176.459 20906174.982 20906175.778
+ 47.400 45.000
+ -8109514.763 5 -6319093.437 4 23142076.377 23142076.306 23142075.540
+ 35.200 27.100
+ -16473191.607 7 -12836238.913 6 21298975.604 21298975.263 21298974.598
+ 45.800 39.800
+ -5378304.341 4 -4190895.215 3 23909940.374 23909940.659 23909939.072
+ 24.200 22.100
+ 06 1 2 19 47 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13743557.002 6 -10709255.041 6 22198191.526 22198188.660 22198190.569
+ 38.800 36.300
+ -22562406.099 7 -17581078.158 7 20147239.974 20147239.319 20147239.562
+ 44.300 46.500
+ -6274813.284 5 -4889460.846 4 23198420.952 23198420.446 23198419.667
+ 31.100 24.900
+ -14983603.771 7 -11675528.480 7 20516583.164 20516582.151 20516581.966
+ 45.500 45.200
+ -603273.451 4 -470082.880 3 24138853.049 24138853.992 24138852.273
+ 25.900 18.600
+ -20004144.450 7 -15587638.304 7 20915241.752 20915240.086 20915241.118
+ 47.600 44.700
+ -8038383.082 5 -6263666.182 4 23155612.297 23155611.785 23155611.285
+ 35.300 25.900
+ -16410782.783 7 -12787608.656 6 21310851.421 21310851.083 21310850.526
+ 45.900 39.700
+ -5265023.909 3 -4102624.812 3 23931495.497 23931497.198 23931495.428
+ 23.000 23.000
+ 06 1 2 19 47 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13829087.305 6 -10775902.012 6 22181915.748 22181912.785 22181914.909
+ 39.400 36.400
+ -22580431.077 7 -17595123.592 7 20143809.880 20143809.204 20143809.465
+ 44.200 46.400
+ -6358956.528 5 -4955026.967 4 23182408.791 23182408.904 23182407.694
+ 30.100 26.800
+ -14965851.133 7 -11661695.254 7 20519961.438 20519960.401 20519960.188
+ 45.500 45.100
+ -531356.800 4 -414043.984 3 24152538.600 24152539.332 24152537.831
+ 25.900 20.500
+ -19956173.943 7 -15550258.690 7 20924370.276 20924368.589 20924369.717
+ 47.700 44.800
+ -7966796.174 5 -6207884.176 4 23169234.418 23169233.857 23169233.380
+ 33.200 25.300
+ -16348095.491 7 -12738761.415 6 21322780.585 21322780.106 21322779.603
+ 46.100 39.600
+ -5151608.675 3 -4014249.400 2 23953078.593 23953078.869 23953077.557
+ 20.500 16.100
+ 06 1 2 19 48 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13914348.788 6 -10842339.528 6 22165690.606 22165688.223 22165690.065
+ 40.000 36.700
+ -22597993.921 7 -17608808.925 7 20140467.817 20140467.135 20140467.412
+ 44.400 46.500
+ -6442730.187 5 -5020305.112 4 23166467.323 23166467.925 23166466.061
+ 31.100 28.800
+ -14947766.920 7 -11647603.657 7 20523402.512 20523401.719 20523401.439
+ 45.600 45.100
+ -459082.324 4 -357726.261 3 24166291.943 24166293.027 24166291.221
+ 24.900 19.900
+ -19907871.593 7 -15512620.502 7 20933561.703 20933560.295 20933561.238
+ 47.700 44.500
+ -7894756.108 5 -6151749.078 4 23182943.481 23182943.065 23182942.297
+ 34.100 24.600
+ -16285131.663 7 -12689698.687 6 21334762.126 21334761.793 21334761.209
+ 45.900 39.500
+ -5038061.087 3 -3925770.816 1 23974685.714 23974686.135 23974685.149
+ 21.100 11.000
+ 06 1 2 19 48 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13999340.278 6 -10908566.645 6 22149517.128 22149515.003 22149516.377
+ 38.900 37.400
+ -22615094.944 7 -17622134.397 7 20137213.637 20137213.043 20137213.253
+ 44.300 46.700
+ -6526131.676 5 -5085293.228 4 23150596.187 23150597.043 23150595.187
+ 30.100 28.400
+ -14929350.574 7 -11633253.260 7 20526907.161 20526906.218 20526905.947
+ 45.400 45.100
+ -386453.291 4 -301132.265 3 24180112.444 24180113.934 24180111.697
+ 25.600 21.600
+ -19859237.658 7 -15474723.930 7 20942816.734 20942814.898 20942815.955
+ 47.400 44.200
+ -7822265.322 5 -6095262.771 4 23196738.620 23196737.704 23196737.256
+ 34.500 24.600
+ -16221893.063 7 -12640421.864 6 21346795.932 21346795.751 21346795.098
+ 45.900 39.300
+ -4924383.511 4 -3837190.936 2 23996318.442 23996318.341 23996317.831
+ 24.600 15.100
+ 06 1 2 19 49 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14084060.869 6 -10974582.682 6 22133395.392 22133392.942 22133394.689
+ 39.700 36.400
+ -22631734.707 7 -17635100.444 7 20134047.214 20134046.553 20134046.808
+ 44.400 46.700
+ -6609158.409 4 -5149989.340 4 23134796.491 23134797.146 23134795.559
+ 29.700 25.900
+ -14910601.784 7 -11618643.810 7 20530474.943 20530473.970 20530473.796
+ 45.400 45.000
+ -313472.559 4 -244264.216 3 24194000.724 24194001.415 24194000.124
+ 25.300 23.400
+ -19810272.236 7 -15436569.054 7 20952134.432 20952132.731 20952133.734
+ 47.600 44.300
+ -7749326.707 5 -6038427.490 4 23210618.437 23210617.406 23210617.153
+ 33.800 24.600
+ -16158381.847 7 -12590932.611 6 21358881.827 21358881.559 21358880.847
+ 45.600 39.500
+ -4810578.426 4 -3748511.665 2 24017975.037 24017974.651 24017974.013
+ 24.600 15.100
+ 06 1 2 19 49 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14168509.415 6 -11040386.751 6 22117325.646 22117322.968 22117324.774
+ 39.400 36.600
+ -22647913.353 7 -17647707.182 7 20130968.639 20130967.791 20130968.143
+ 44.300 46.600
+ -6691808.000 5 -5214391.560 4 23119069.315 23119069.176 23119068.336
+ 31.000 27.100
+ -14891520.108 7 -11603774.974 7 20534106.091 20534105.108 20534104.935
+ 45.500 44.900
+ -240143.474 3 -187124.757 3 24207955.019 24207955.833 24207953.870
+ 23.800 22.100
+ -19760975.903 7 -15398156.324 7 20961514.902 20961513.587 20961514.490
+ 47.600 44.100
+ -7675942.340 5 -5981244.882 4 23224582.645 23224582.329 23224581.392
+ 34.100 24.200
+ -16094599.751 7 -12541232.277 6 21371019.075 21371018.828 21371018.236
+ 45.500 39.100
+ -4696648.311 3 -3659734.974 2 24039654.714 24039655.151 24039654.187
+ 18.600 17.000
+ 06 1 2 19 50 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14252685.137 6 -11105978.223 6 22101307.354 22101304.979 22101306.593
+ 39.500 37.200
+ -22663631.682 7 -17659955.229 7 20127977.457 20127976.621 20127977.000
+ 44.100 46.500
+ -6774077.790 5 -5278497.856 4 23103414.272 23103413.716 23103413.189
+ 32.100 26.200
+ -14872105.192 7 -11588646.472 7 20537800.456 20537799.731 20537799.343
+ 45.500 45.100
+ -166469.287 4 -129716.375 3 24221974.359 24221975.505 24221973.537
+ 24.900 21.600
+ -19711348.531 7 -15359485.650 7 20970958.750 20970957.273 20970958.305
+ 47.400 44.200
+ -7602114.727 5 -5923716.895 3 23238632.164 23238630.337 23238630.706
+ 34.800 22.600
+ -16030548.290 7 -12491322.054 6 21383207.533 21383207.458 21383206.658
+ 45.400 39.300
+ -4582595.307 3 -3570862.590 2 24061359.726 24061359.291 24061358.186
+ 20.500 16.100
+ 06 1 2 19 50 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14336587.030 6 -11171356.314 6 22085341.066 22085338.999 22085340.364
+ 39.300 37.200
+ -22678890.015 7 -17671844.836 7 20125073.785 20125073.060 20125073.368
+ 44.200 46.600
+ -6855965.177 5 -5342306.171 4 23087831.262 23087831.756 23087830.177
+ 33.000 29.200
+ -14852356.766 7 -11573258.091 7 20541558.607 20541557.730 20541557.444
+ 45.600 45.100
+ -92452.830 4 -72041.278 3 24236058.739 24236060.443 24236058.463
+ 24.600 22.600
+ -19661390.551 7 -15320557.359 7 20980465.533 20980463.986 20980464.907
+ 47.300 44.100
+ -7527846.404 5 -5865845.477 4 23252764.721 23252763.726 23252763.354
+ 32.700 24.600
+ -15966229.261 7 -12441203.340 6 21395447.165 21395446.966 21395446.242
+ 45.400 39.300
+ -4468422.146 3 -3481896.491 2 24083084.312 24083084.748 24083083.652
+ 21.100 15.100
+ 06 1 2 19 51 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14420213.882 6 -11236520.082 6 22069427.596 22069425.204 22069426.950
+ 39.300 37.300
+ -22693688.820 7 -17683376.369 7 20122257.610 20122257.003 20122257.202
+ 44.200 46.600
+ -6937467.747 5 -5405814.631 4 23072321.609 23072321.970 23072320.647
+ 31.800 28.800
+ -14832274.286 7 -11557609.404 7 20545380.280 20545379.253 20545379.020
+ 45.600 44.900
+ -18097.413 4 -14102.062 3 24250208.673 24250209.874 24250207.765
+ 24.200 19.900
+ -19611102.311 7 -15281371.718 7 20990035.029 20990033.646 20990034.425
+ 47.200 44.300
+ -7453139.586 5 -5807632.388 4 23266980.375 23266980.435 23266979.445
+ 33.200 25.600
+ -15901644.460 7 -12390877.532 6 21407737.105 21407737.092 21407736.301
+ 45.400 39.100
+ -4354130.933 3 -3392838.532 3 24104834.470 24104834.990 24104833.768
+ 21.600 19.900
+ 06 1 2 19 51 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14503564.722 6 -11301468.788 6 22053566.948 22053564.048 22053566.158
+ 40.300 37.300
+ -22708028.644 7 -17694550.252 7 20119528.921 20119528.248 20119528.431
+ 44.200 46.600
+ -7018582.976 5 -5469021.247 4 23056886.096 23056885.945 23056885.053
+ 32.800 29.000
+ -14811857.487 7 -11541700.215 7 20549265.422 20549264.434 20549264.223
+ 45.700 45.000
+ 56593.659 4 44098.694 3 24264422.299 24264423.554 24264421.163
+ 25.600 19.300
+ -19560483.926 7 -15241928.830 7 20999667.318 20999665.966 20999666.816
+ 47.000 44.200
+ -7377996.668 5 -5749079.474 3 23281280.253 23281278.780 23281278.975
+ 33.500 22.100
+ -15836796.037 7 -12340346.303 6 21420077.398 21420077.303 21420076.545
+ 45.300 38.600
+ -4239724.215 3 -3303690.510 3 24126605.383 24126605.175 24126603.510
+ 19.300 20.500
+ 06 1 2 19 52 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14586638.337 6 -11366201.465 6 22037758.295 22037755.640 22037757.564
+ 40.300 36.900
+ -22721909.781 7 -17705366.716 7 20116887.376 20116886.676 20116887.021
+ 44.300 46.600
+ -7099308.293 5 -5531924.041 5 23041524.527 23041524.984 23041523.497
+ 32.800 30.400
+ -14791106.015 7 -11525530.242 7 20553214.305 20553213.298 20553213.177
+ 45.800 45.100
+ 131617.230 4 102558.567 2 24278698.794 24278699.534 24278697.929
+ 25.600 16.100
+ -19509535.777 7 -15202228.985 7 21009362.214 21009360.993 21009361.882
+ 47.100 43.900
+ -7302420.332 5 -5690188.846 4 23295661.273 23295661.225 23295660.241
+ 33.600 25.600
+ -15771685.713 7 -12289610.986 6 21432467.492 21432467.336 21432466.635
+ 45.300 38.900
+ -4125204.659 3 -3214454.551 3 24148396.516 24148397.413 24148396.285
+ 19.900 18.600
+ 06 1 2 19 52 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14669433.668 6 -11430717.300 6 22022002.823 22022000.039 22022002.107
+ 40.400 36.700
+ -22735332.989 7 -17715826.351 7 20114333.189 20114332.275 20114332.722
+ 44.300 46.600
+ -7179641.093 5 -5594521.009 4 23026237.876 23026237.723 23026236.778
+ 32.100 28.600
+ -14770019.530 7 -11509099.219 7 20557226.957 20557226.016 20557225.809
+ 45.900 45.000
+ 206970.161 3 161275.083 2 24293037.856 24293038.884 24293037.140
+ 23.800 16.100
+ -19458258.506 7 -15162272.676 7 21019120.347 21019118.852 21019119.619
+ 46.900 44.100
+ -7226413.114 5 -5630962.452 4 23310124.730 23310124.521 23310123.888
+ 33.000 24.200
+ -15706315.575 7 -12238673.228 6 21444907.092 21444906.906 21444906.153
+ 45.400 38.900
+ -4010574.357 3 -3125132.343 2 24170211.599 24170211.505 24170210.621
+ 20.500 15.100
+ 06 1 2 19 53 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14751949.858 6 -11495015.623 6 22006300.592 22006297.890 22006299.752
+ 40.300 37.700
+ -22748298.609 7 -17725929.422 7 20111865.860 20111865.102 20111865.456
+ 44.300 46.900
+ -7259579.068 5 -5656810.271 4 23011025.377 23011025.684 23011024.414
+ 30.600 26.200
+ -14748597.574 7 -11492406.792 7 20561303.174 20561302.535 20561302.102
+ 45.800 45.000
+ 282649.595 4 220246.027 2 24307439.094 24307440.107 24307438.373
+ 24.200 12.600
+ -19406651.955 7 -15122059.786 7 21028940.691 21028939.288 21028939.984
+ 46.600 44.100
+ -7149977.519 5 -5571402.259 3 23324670.727 23324669.689 23324669.107
+ 33.200 23.800
+ -15640687.333 7 -12187534.348 6 21457395.809 21457395.456 21457394.787
+ 45.300 38.800
+ -3895836.031 4 -3035725.846 2 24192046.875 24192045.085 24192044.934
+ 24.600 16.100
+ 06 1 2 19 53 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14834186.093 6 -11559095.790 6 21990651.678 21990648.855 21990650.815
+ 40.600 37.700
+ -22760807.194 7 -17735676.358 7 20109485.586 20109484.837 20109485.175
+ 44.400 46.800
+ -7339119.596 5 -5718789.844 4 22995888.911 22995889.613 22995888.128
+ 30.200 26.800
+ -14726839.748 7 -11475452.646 7 20565443.762 20565442.843 20565442.576
+ 45.600 44.800
+ 358652.162 2 279468.739 2 24321901.910 24321903.232 24321900.821
+ 17.000 15.100
+ -19354716.580 7 -15081590.670 7 21038823.663 21038822.312 21038823.045
+ 46.800 44.100
+ -7073115.846 5 -5511510.071 4 23339296.868 23339296.181 23339295.758
+ 33.100 24.600
+ -15574802.284 7 -12136195.355 6 21469933.178 21469933.011 21469932.326
+ 45.500 38.900
+ -3780992.058 3 -2946237.056 2 24213898.820 24213899.578 24213898.162
+ 21.600 17.000
+ 06 1 2 19 54 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14916141.348 6 -11622957.006 6 21975056.009 21975053.269 21975055.249
+ 40.700 37.500
+ -22772859.396 7 -17745067.673 7 20107192.090 20107191.300 20107191.637
+ 44.400 46.600
+ -7418260.217 5 -5780457.820 4 22980829.916 22980829.544 22980828.703
+ 32.300 28.600
+ -14704745.821 7 -11458236.602 7 20569648.231 20569647.173 20569646.981
+ 45.500 44.700
+ 434974.367 3 338940.503 2 24336425.538 24336426.323 24336424.889
+ 19.300 15.100
+ -19302452.669 7 -15040865.565 7 21048768.843 21048767.946 21048768.499
+ 46.900 44.100
+ -6995830.566 5 -5451287.792 3 23354004.140 23354002.608 23354002.848
+ 33.900 21.600
+ -15508662.494 7 -12084657.870 6 21482519.248 21482518.937 21482518.372
+ 45.400 38.500
+ -3666044.640 2 -2856667.753 2 24235771.386 24235773.225 24235772.272
+ 16.100 17.800
+ 06 1 2 19 54 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14997814.620 6 -11686598.508 6 21959514.036 21959511.306 21959513.269
+ 40.300 38.000
+ -22784455.669 7 -17754103.714 7 20104985.223 20104984.497 20104984.895
+ 44.400 46.700
+ -7496998.375 5 -5841812.170 4 22965846.658 22965846.436 22965845.450
+ 33.400 29.900
+ -14682315.538 7 -11440758.460 7 20573916.410 20573915.466 20573915.225
+ 45.300 44.700
+ 511613.272 3 398659.071 1 24351009.482 24351010.628 24351008.983
+ 19.900 11.000
+ -19249860.642 7 -14999884.775 7 21058777.304 21058775.761 21058776.469
+ 46.800 44.000
+ -6918124.233 5 -5390737.408 3 23368790.917 23368789.762 23368789.618
+ 32.400 23.400
+ -15442269.605 7 -12032923.163 6 21495153.433 21495153.158 21495152.612
+ 45.400 38.600
+ -3550996.222 2 -2767019.725 3 24257665.600 24257666.554 24257665.266
+ 17.000 19.900
+ 06 1 2 19 55 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15079204.523 6 -11750019.201 6 21944025.957 21944023.243 21944025.168
+ 40.600 37.800
+ -22795596.474 7 -17762784.851 7 20102865.252 20102864.448 20102864.874
+ 44.300 46.600
+ -7575331.693 5 -5902851.074 4 22950940.443 22950940.035 22950939.065
+ 32.100 29.500
+ -14659548.380 7 -11423017.818 7 20578248.817 20578247.855 20578247.576
+ 45.400 44.500
+ 588565.606 3 458621.886 2 24365653.152 24365654.063 24365652.581
+ 22.600 12.600
+ -19196940.910 7 -14958648.625 7 21068847.396 21068846.007 21068846.878
+ 47.100 43.900
+ -6839999.432 5 -5329860.963 3 23383657.349 23383656.734 23383656.141
+ 33.100 23.000
+ -15375625.694 7 -11980992.852 6 21507835.532 21507835.171 21507834.624
+ 45.500 38.500
+ -3435849.353 3 -2677295.000 3 24279577.825 24279578.517 24279577.131
+ 20.500 18.600
+ 06 1 2 19 55 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15160310.460 6 -11813218.621 6 21928592.028 21928589.364 21928591.182
+ 40.500 37.900
+ -22806282.616 7 -17771111.702 7 20100831.754 20100831.005 20100831.349
+ 44.200 46.700
+ -7653257.550 5 -5963572.435 4 22936111.374 22936111.070 22936110.205
+ 33.000 27.900
+ -14636444.162 7 -11405014.525 7 20582645.481 20582644.479 20582644.220
+ 45.400 44.500
+ 665828.274 4 518826.501 2 24380355.954 24380357.347 24380355.073
+ 24.900 17.000
+ -19143693.596 7 -14917157.219 7 21078980.055 21078978.584 21078979.514
+ 47.200 43.600
+ -6761458.592 5 -5268660.323 3 23398603.679 23398602.344 23398602.309
+ 33.000 23.400
+ -15308732.542 7 -11928868.330 6 21520564.940 21520564.550 21520563.959
+ 45.300 38.600
+ -3320606.388 4 -2587495.358 2 24301508.490 24301508.708 24301507.440
+ 24.200 13.900
+ 06 1 2 19 56 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15241131.393 6 -11876195.959 6 21913212.253 21913209.665 21913211.508
+ 41.000 38.600
+ -22816514.697 7 -17779084.734 7 20098884.647 20098883.921 20098884.190
+ 44.100 46.900
+ -7730773.596 5 -6023974.485 4 22921360.482 22921360.505 22921359.366
+ 33.000 28.600
+ -14613002.348 7 -11386748.173 7 20587106.196 20587105.354 20587104.994
+ 45.400 44.400
+ 743397.590 4 579270.057 2 24395116.869 24395118.177 24395116.086
+ 25.300 17.800
+ -19090119.413 7 -14875411.111 7 21089175.009 21089173.409 21089174.394
+ 47.500 43.600
+ -6682504.529 5 -5207137.697 3 23413627.837 23413627.251 23413626.824
+ 32.400 22.100
+ -15241591.977 7 -11876551.021 6 21533341.398 21533340.870 21533340.465
+ 45.200 38.400
+ -3205269.977 3 -2497622.873 1 24323456.138 24323455.821 24323454.959
+ 21.100 6.500
+ 06 1 2 19 56 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15321666.246 6 -11938950.386 6 21897887.042 21897884.338 21897886.310
+ 40.900 38.000
+ -22826293.208 7 -17786704.341 7 20097023.869 20097023.052 20097023.509
+ 44.500 46.900
+ -7807877.387 5 -6084055.324 4 22906687.897 22906687.718 22906686.881
+ 33.600 28.800
+ -14589222.756 7 -11368218.617 7 20591631.196 20591630.389 20591630.086
+ 45.500 44.400
+ 821270.906 4 639950.500 3 24409935.862 24409937.150 24409935.075
+ 26.800 19.900
+ -19036218.025 7 -14833410.025 7 21099432.216 21099430.556 21099431.580
+ 47.400 43.600
+ -6603139.466 5 -5145294.811 3 23428730.548 23428729.871 23428729.297
+ 33.200 23.000
+ -15174205.609 7 -11824042.174 6 21546164.327 21546164.218 21546163.489
+ 44.900 38.300
+ -3089842.314 2 -2407679.299 9 24345419.492 24345419.710 24345419.855
+ 13.900 -3.000
+ 06 1 2 19 57 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15401914.145 6 -12001481.215 6 21882616.553 21882613.662 21882615.753
+ 41.300 38.200
+ -22835618.681 7 -17793970.928 7 20095249.405 20095248.409 20095248.938
+ 44.400 46.700
+ -7884566.430 5 -6143812.965 4 22892094.813 22892093.975 22892093.843
+ 33.800 27.900
+ -14565105.092 7 -11349425.628 7 20596220.758 20596219.854 20596219.615
+ 45.700 44.400
+ 899444.729 4 700865.093 3 24424811.797 24424813.135 24424810.988
+ 27.400 22.600
+ -18981990.224 7 -14791154.603 7 21109751.214 21109749.722 21109750.789
+ 47.400 43.500
+ -6523366.147 5 -5083133.801 3 23443910.524 23443909.780 23443909.523
+ 30.800 22.600
+ -15106574.974 7 -11771342.992 6 21559034.193 21559033.810 21559033.204
+ 44.800 38.400
+ -2974325.808 3 -2317666.405 9 24367401.280 24367403.119 24367401.965
+ 18.600 -3.000
+ 06 1 2 19 57 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15481874.252 6 -12063787.780 6 21867400.402 21867397.715 21867399.682
+ 41.100 38.100
+ -22844491.744 7 -17800884.994 7 20093560.949 20093559.941 20093560.456
+ 44.600 46.800
+ -7960838.319 5 -6203245.559 4 22877580.146 22877579.889 22877579.053
+ 31.800 28.100
+ -14540649.070 7 -11330368.982 7 20600874.685 20600873.663 20600873.483
+ 45.600 44.200
+ 977915.559 4 762011.123 3 24439744.499 24439745.899 24439743.555
+ 27.100 22.100
+ -18927436.341 7 -14748645.096 7 21120132.549 21120131.063 21120132.018
+ 47.600 43.600
+ -6443186.677 5 -5020656.284 4 23459168.653 23459168.327 23459167.398
+ 32.400 24.200
+ -15038702.072 7 -11718455.023 6 21571949.738 21571949.623 21571948.861
+ 44.700 38.400
+ -2858723.110 2 -2227586.464 3 24389400.972 24389401.927 24389400.316
+ 15.100 18.600
+ 06 1 2 19 58 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15561545.348 6 -12125869.140 6 21852239.620 21852236.753 21852238.870
+ 41.100 38.000
+ -22852913.260 7 -17807447.198 7 20091958.237 20091957.415 20091957.792
+ 44.400 46.700
+ -8036690.521 5 -6262351.141 4 22863146.067 22863145.347 22863144.958
+ 33.000 25.900
+ -14515854.292 7 -11311048.370 7 20605592.759 20605591.924 20605591.663
+ 45.400 44.200
+ 1056680.951 4 823386.665 4 24454733.257 24454734.787 24454732.391
+ 25.300 24.900
+ -18872556.463 7 -14705881.557 7 21130576.050 21130574.442 21130575.304
+ 47.300 43.600
+ -6362604.333 5 -4957864.879 3 23474503.304 23474502.144 23474501.850
+ 32.100 21.600
+ -14970589.153 7 -11665380.036 6 21584911.337 21584911.146 21584910.394
+ 44.700 38.100
+ -2743035.917 2 -2137440.704 3 24411415.179 24411416.828 24411414.483
+ 16.100 19.300
+ 06 1 2 19 58 30.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15640926.592 6 -12187724.648 6 21837133.959 21837131.351 21837133.295
+ 41.800 38.900
+ -22860883.685 7 -17813657.906 7 20090441.458 20090440.638 20090441.031
+ 44.500 46.700
+ -8112120.710 5 -6321127.867 4 22848791.965 22848791.845 22848791.010
+ 32.800 28.400
+ -14490720.446 7 -11291463.551 7 20610375.730 20610374.741 20610374.567
+ 45.500 44.100
+ 1135736.966 3 884988.669 3 24469776.821 24469778.676 24469775.946
+ 22.600 22.600
+ -18817351.291 7 -14662864.543 7 21141080.921 21141079.640 21141080.462
+ 47.200 43.600
+ -6281621.323 5 -4894761.235 3 23489913.867 23489912.503 23489912.505
+ 32.700 20.500
+ -14902237.356 7 -11612118.900 6 21597918.567 21597917.965 21597917.431
+ 44.500 38.300
+ -2627267.388 3 -2047231.583 3 24433446.220 24433446.620 24433445.550
+ 20.500 19.300
+ 06 1 2 19 59 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -15720017.050 6 -12249353.556 6 21822083.257 21822080.670 21822082.443
+ 41.300 38.700
+ -22868403.753 7 -17819517.687 7 20089010.529 20089009.530 20089010.112
+ 44.800 46.800
+ -8187126.389 5 -6379573.816 4 22834519.052 22834518.682 22834517.999
+ 33.000 28.400
+ -14465247.257 7 -11271614.312 7 20615223.061 20615222.107 20615221.922
+ 45.600 44.000
+ 1215080.535 3 946814.757 3 24484875.667 24484877.456 24484874.710
+ 23.000 22.600
+ -18761821.074 7 -14619594.244 7 21151648.085 21151646.544 21151647.544
+ 47.100 43.400
+ -6200240.298 5 -4831347.477 3 23505398.996 23505398.890 23505397.930
+ 31.000 22.100
+ -14833648.949 7 -11558673.396 6 21610970.190 21610969.962 21610969.286
+ 44.700 37.900
+ 06 1 2 19 59 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -15798815.727 6 -12310755.106 6 21807088.121 21807085.768 21807087.343
+ 40.900 38.700
+ -22875474.010 7 -17825026.969 7 20087665.120 20087664.096 20087664.764
+ 44.900 46.900
+ -8261705.196 5 -6437687.141 5 22820327.344 22820327.030 22820326.074
+ 32.800 30.600
+ -14439434.479 7 -11251500.454 7 20620135.028 20620134.124 20620133.858
+ 45.400 44.000
+ 1294708.614 3 1008862.537 3 24500028.324 24500029.852 24500027.380
+ 23.400 22.600
+ -18705966.186 7 -14576070.963 7 21162276.901 21162275.404 21162276.256
+ 46.900 43.200
+ -6118463.829 5 -4767625.560 3 23520960.837 23520960.386 23520959.716
+ 30.100 21.600
+ -14764825.425 7 -11505044.682 6 21624066.843 21624066.655 21624065.935
+ 44.800 38.000
+ 06 1 2 20 0 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -15877321.864 6 -12371928.692 6 21792149.006 21792146.518 21792148.373
+ 41.100 38.800
+ -22882095.129 7 -17830186.271 7 20086405.357 20086404.199 20086404.892
+ 45.200 46.800
+ -8335854.658 5 -6495465.903 5 22806216.751 22806216.838 22806215.781
+ 33.800 30.800
+ -14413281.753 7 -11231121.706 7 20625111.782 20625110.894 20625110.583
+ 45.500 43.800
+ 1374617.757 3 1071129.324 3 24515234.137 24515236.192 24515233.855
+ 22.600 23.000
+ -18649786.844 7 -14532294.860 7 21172967.013 21172966.123 21172966.748
+ 46.800 43.400
+ -6036294.228 5 -4703597.306 3 23536597.566 23536596.928 23536596.350
+ 32.100 22.600
+ -14695768.343 7 -11451233.971 6 21637207.943 21637207.863 21637207.067
+ 44.500 38.100
+ 06 1 2 20 0 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -15955534.483 6 -12432873.572 6 21777265.725 21777263.148 21777265.017
+ 41.700 38.600
+ -22888267.893 7 -17834996.206 7 20085230.625 20085229.536 20085230.140
+ 45.100 47.000
+ -8409572.459 5 -6552908.302 5 22792188.803 22792188.820 22792187.916
+ 34.800 30.600
+ -14386788.787 7 -11210477.831 7 20630153.148 20630152.280 20630151.970
+ 45.300 44.000
+ 1454804.674 3 1133612.570 3 24530494.055 24530495.312 24530493.109
+ 22.100 23.400
+ -18593283.380 7 -14488266.188 7 21183719.787 21183718.291 21183719.097
+ 46.700 43.300
+ -5953734.368 5 -4639264.962 3 23552308.240 23552307.246 23552307.168
+ 32.100 20.500
+ -14626479.544 7 -11397242.706 6 21650393.177 21650392.973 21650392.207
+ 44.600 37.600
+ 06 1 2 20 1 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16033452.522 6 -12493588.887 6 21762438.458 21762435.612 21762437.698
+ 41.600 38.800
+ -22893993.033 7 -17839457.347 7 20084141.063 20084140.013 20084140.621
+ 45.100 46.900
+ -8482856.109 5 -6610012.427 4 22778243.532 22778243.335 22778242.519
+ 34.600 29.900
+ -14359955.417 7 -11189568.710 7 20635259.451 20635258.419 20635258.195
+ 45.300 43.900
+ 1535266.068 3 1196309.692 3 24545805.142 24545806.653 24545804.466
+ 21.100 22.100
+ -18536456.502 7 -14443985.511 7 21194533.658 21194532.087 21194532.923
+ 46.700 43.200
+ -5870786.970 5 -4574630.662 4 23568092.255 23568092.500 23568091.214
+ 30.100 24.600
+ -14556960.613 7 -11343072.108 6 21663622.196 21663621.906 21663621.282
+ 44.500 37.400
+ 06 1 2 20 1 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -16111075.110 6 -12554073.991 6 21747667.453 21747664.598 21747666.758
+ 41.700 38.800
+ -22899271.120 7 -17843570.136 7 20083136.634 20083135.627 20083136.197
+ 44.800 46.800
+ -8555703.221 5 -6666776.409 5 22764380.608 22764380.875 22764379.656
+ 34.100 30.100
+ -14332781.327 7 -11168394.090 7 20640430.468 20640429.527 20640429.322
+ 45.500 43.800
+ 1615999.004 3 1259218.361 3 24561168.112 24561169.550 24561167.061
+ 22.100 23.800
+ -18479306.722 7 -14399453.218 7 21205408.487 21205407.306 21205408.136
+ 46.800 43.200
+ -5787454.152 5 -4509696.036 3 23583950.290 23583949.072 23583949.385
+ 31.500 20.500
+ -14487213.411 7 -11288723.642 6 21676894.785 21676894.333 21676893.818
+ 44.600 37.300
+ 06 1 2 20 2 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16188401.347 6 -12614328.167 6 21732952.513 21732950.187 21732951.785
+ 41.800 39.300
+ -22904103.111 7 -17847335.318 7 20082217.083 20082216.210 20082216.649
+ 44.900 47.000
+ -8628111.488 5 -6723198.420 5 22750601.968 22750602.277 22750600.815
+ 33.900 31.500
+ -14305266.255 7 -11146953.773 7 20645666.263 20645665.573 20645665.185
+ 45.600 43.800
+ 1697000.079 3 1322336.035 3 24576582.053 24576583.877 24576581.303
+ 22.100 22.100
+ -18421834.314 7 -14354669.531 7 21216345.419 21216344.088 21216344.757
+ 46.700 43.100
+ -5703738.989 5 -4444463.438 3 23599881.297 23599880.225 23599880.204
+ 31.600 21.600
+ -14417239.811 7 -11234198.757 6 21690210.417 21690209.951 21690209.357
+ 44.300 37.300
+ 06 1 2 20 2 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -16265430.233 6 -12674350.617 6 21718294.455 21718291.874 21718293.595
+ 41.600 39.600
+ -22908489.364 7 -17850753.172 7 20081382.344 20081381.488 20081381.981
+ 44.800 47.000
+ -8700078.597 5 -6779276.641 5 22736907.143 22736907.243 22736906.094
+ 34.100 30.600
+ -14277409.950 7 -11125247.556 7 20650967.161 20650966.434 20650966.031
+ 45.400 43.800
+ 1778265.821 3 1385659.897 3 24592045.644 24592048.160 24592045.218
+ 22.100 22.600
+ -18364039.544 7 -14309634.651 7 21227343.415 21227341.965 21227342.768
+ 46.800 43.100
+ -5619644.208 5 -4378935.068 3 23615883.211 23615882.672 23615882.165
+ 30.600 22.100
+ -14347041.721 7 -11179498.952 6 21703568.343 21703568.175 21703567.487
+ 44.100 37.100
+ 06 1 2 20 3 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16342161.161 7 -12734140.917 6 21703693.276 21703690.095 21703692.550
+ 42.200 39.100
+ -22912430.754 7 -17853824.377 7 20080632.504 20080631.462 20080632.069
+ 45.000 46.900
+ -8771602.086 5 -6835009.205 5 22723296.591 22723296.830 22723295.662
+ 34.300 31.100
+ -14249212.126 7 -11103275.223 7 20656333.199 20656332.322 20656332.008
+ 45.500 43.900
+ 1859792.877 4 1449187.406 3 24607560.481 24607562.436 24607559.503
+ 24.200 23.400
+ -18305922.707 7 -14264348.810 7 21238402.625 21238401.246 21238402.174
+ 46.600 43.000
+ -5535172.155 5 -4313112.727 3 23631957.281 23631957.622 23631956.392
+ 30.800 22.600
+ -14276620.870 7 -11124625.573 6 21716969.074 21716968.796 21716968.150
+ 44.100 37.200
+ 06 1 2 20 3 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -16418592.989 6 -12793698.144 6 21689148.356 21689145.711 21689147.543
+ 41.500 39.400
+ -22915927.937 7 -17856549.455 7 20079967.146 20079966.010 20079966.658
+ 45.200 47.000
+ -8842679.581 5 -6890394.232 4 22709771.092 22709771.028 22709770.209
+ 34.500 29.700
+ -14220672.580 7 -11081036.612 7 20661764.022 20661763.213 20661762.890
+ 45.500 43.800
+ 1941578.700 4 1512916.537 3 24623123.915 24623125.712 24623123.377
+ 25.900 19.900
+ -18247483.929 7 -14218812.106 7 21249523.336 21249521.613 21249522.651
+ 46.600 42.800
+ -5450325.356 5 -4246998.376 3 23648104.690 23648102.979 23648103.159
+ 32.600 22.100
+ -14205978.659 7 -11069579.696 6 21730411.462 21730411.710 21730410.764
+ 44.100 37.300
+ 06 1 2 20 4 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16494724.870 6 -12853021.630 6 21674660.888 21674658.470 21674660.073
+ 41.900 39.400
+ -22918981.775 7 -17858929.065 7 20079385.867 20079384.912 20079385.407
+ 44.900 47.000
+ -8913308.908 5 -6945430.043 5 22696330.175 22696330.928 22696329.385
+ 34.800 30.100
+ -14191791.018 7 -11058531.492 7 20667260.036 20667259.165 20667258.895
+ 45.700 43.800
+ 2023619.581 4 1576844.431 2 24638736.254 24638737.271 24638735.113
+ 27.100 16.100
+ -18188724.267 7 -14173025.362 7 21260704.592 21260703.238 21260704.125
+ 46.600 42.400
+ -5365106.634 5 -4180594.179 3 23664320.311 23664319.679 23664319.318
+ 30.600 20.500
+ -14135116.865 7 -11014362.728 6 21743896.401 21743896.192 21743895.471
+ 43.900 36.900
+ 06 1 2 20 4 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -16570555.821 7 -12912110.635 6 21660231.065 21660228.323 21660230.312
+ 42.500 39.800
+ -22921593.155 7 -17860963.904 7 20078888.806 20078887.922 20078888.416
+ 44.900 46.900
+ -8983487.593 5 -7000114.707 4 22682976.440 22682975.974 22682975.375
+ 34.800 29.200
+ -14162567.276 7 -11035759.743 7 20672821.180 20672820.227 20672820.063
+ 45.600 43.800
+ 2105912.084 3 1640968.409 2 24654395.774 24654397.325 24654394.891
+ 23.800 15.100
+ -18129644.110 7 -14126988.886 7 21271947.427 21271945.895 21271946.842
+ 46.800 42.600
+ -5279518.737 5 -4113902.327 3 23680607.336 23680606.439 23680606.168
+ 31.600 21.100
+ -14064037.143 7 -10958975.938 6 21757422.120 21757422.269 21757421.327
+ 43.900 37.000
+ 06 1 2 20 5 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16646085.244 7 -12970964.697 6 21645858.119 21645855.339 21645857.385
+ 42.400 39.800
+ -22923762.642 7 -17862654.416 7 20078476.005 20078475.085 20078475.623
+ 45.100 47.000
+ -9053213.411 5 -7054446.486 4 22669707.808 22669707.782 22669706.768
+ 34.700 29.900
+ -14133001.014 7 -11012721.093 7 20678447.466 20678446.474 20678446.238
+ 45.400 43.700
+ 2188452.533 3 1705285.588 2 24670102.452 24670104.112 24670101.587
+ 23.800 17.000
+ -18070243.599 7 -14080702.776 7 21283250.690 21283249.579 21283250.380
+ 46.600 42.700
+ -5193563.610 5 -4046924.321 3 23696964.974 23696963.277 23696963.348
+ 30.100 19.300
+ -13992741.209 7 -10903420.675 6 21770989.438 21770989.330 21770988.598
+ 43.800 36.700
+ 06 1 2 20 5 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -16721312.047 7 -13029582.946 6 21631542.747 21631540.253 21631542.108
+ 42.500 40.000
+ -22925491.128 7 -17864001.286 7 20078147.130 20078146.067 20078146.747
+ 45.200 47.000
+ -9122483.990 5 -7108423.542 4 22656526.360 22656525.661 22656525.309
+ 35.200 29.700
+ -14103092.137 7 -10989415.464 7 20684138.765 20684137.929 20684137.649
+ 45.400 43.500
+ 2271238.630 3 1769794.170 2 24685856.204 24685858.059 24685855.261
+ 22.100 17.000
+ -18010522.961 7 -14034167.225 7 21294615.278 21294614.075 21294614.814
+ 46.600 42.700
+ -5107244.761 4 -3979662.920 3 23713390.399 23713389.360 23713388.939
+ 29.500 20.500
+ -13921230.804 7 -10847698.291 6 21784597.773 21784597.307 21784596.633
+ 43.600 36.800
+ 06 1 2 20 6 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16796235.319 7 -13087964.674 6 21617285.561 21617282.591 21617284.735
+ 42.000 39.300
+ -22926779.481 7 -17865005.197 7 20077901.938 20077900.914 20077901.507
+ 45.100 47.100
+ -9191296.981 5 -7162044.027 5 22643431.412 22643431.304 22643430.409
+ 35.100 30.600
+ -14072840.326 7 -10965842.617 7 20689895.558 20689894.562 20689894.390
+ 45.600 43.500
+ 2354266.620 3 1834491.265 3 24701655.942 24701657.914 24701655.397
+ 23.800 19.300
+ -17950483.188 7 -13987382.987 7 21306040.803 21306039.285 21306040.097
+ 46.500 42.600
+ -5020564.591 4 -3912119.971 3 23729884.829 23729884.086 23729883.616
+ 29.900 19.300
+ -13849507.750 7 -10791810.212 6 21798245.913 21798245.849 21798244.978
+ 43.800 36.600
+ 06 1 2 20 6 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -16870854.369 7 -13146109.362 6 21603086.062 21603083.001 21603085.295
+ 42.800 39.800
+ -22927628.277 7 -17865666.592 7 20077740.413 20077739.464 20077739.934
+ 45.000 47.100
+ -9259650.269 5 -7215306.296 5 22630424.306 22630423.953 22630423.136
+ 35.100 31.000
+ -14042245.470 7 -10942002.472 7 20695717.566 20695716.580 20695716.411
+ 45.600 43.500
+ 2437533.343 3 1899374.374 2 24717501.120 24717503.090 24717500.152
+ 23.000 16.100
+ -17890124.460 7 -13940350.220 7 21317526.477 21317525.116 21317525.990
+ 46.600 42.500
+ -4933525.533 5 -3844297.328 3 23746447.948 23746446.970 23746446.718
+ 30.400 18.600
+ -13777573.683 7 -10735757.698 6 21811934.661 21811934.451 21811933.665
+ 43.700 36.500
+ 06 1 2 20 7 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16945168.001 7 -13204016.061 6 21588944.588 21588941.677 21588943.899
+ 43.300 40.200
+ -22928038.407 7 -17865986.169 7 20077662.455 20077661.409 20077661.951
+ 45.100 47.000
+ -9327541.471 5 -7268208.501 5 22617504.831 22617504.724 22617503.677
+ 34.500 30.800
+ -14011307.257 7 -10917894.772 7 20701604.929 20701604.037 20701603.831
+ 45.400 43.500
+ 2521035.047 3 1964440.616 2 24733390.888 24733392.915 24733390.013
+ 23.400 15.100
+ -17829447.580 7 -13893069.541 7 21329073.094 21329071.497 21329072.456
+ 46.400 42.500
+ -4846130.559 5 -3776197.347 2 23763079.027 23763077.117 23763077.756
+ 30.400 17.800
+ -13705430.421 7 -10679542.184 6 21825662.950 21825662.989 21825662.071
+ 43.600 36.700
+ 06 1 2 20 7 30.0000000 0 8G02G04G05G07G09G17G20G24
+ -17019175.829 7 -13261684.468 6 21574861.174 21574858.411 21574860.471
+ 42.800 40.000
+ -22928010.645 7 -17865964.528 7 20077667.505 20077666.691 20077667.134
+ 45.000 47.100
+ -9394968.373 5 -7320748.900 5 22604673.967 22604673.794 22604672.824
+ 34.700 31.500
+ -13980025.526 7 -10893519.397 7 20707557.602 20707556.820 20707556.447
+ 45.400 43.400
+ 2604769.150 3 2029687.929 2 24749325.568 24749326.763 24749324.643
+ 23.800 13.900
+ -17768452.502 7 -13845540.921 7 21340679.870 21340678.458 21340679.418
+ 46.500 42.200
+ -4758381.968 4 -3707821.835 3 23779776.903 23779775.480 23779775.463
+ 29.900 21.100
+ -13633079.512 7 -10623164.862 6 21839430.922 21839430.787 21839430.156
+ 43.600 36.500
+ 06 1 2 20 8 0.0000000 0 7G02G04G05G07G17G20G24
+ -17092877.024 7 -13319113.950 6 21560836.052 21560833.715 21560835.373
+ 42.500 40.300
+ -22927545.897 7 -17865602.381 7 20077756.198 20077755.139 20077755.778
+ 45.200 47.200
+ -9461928.700 5 -7372925.759 5 22591931.796 22591931.522 22591930.753
+ 34.800 31.600
+ -13948400.062 7 -10868876.177 7 20713575.794 20713574.928 20713574.659
+ 45.600 43.400
+ -17707139.727 7 -13797764.737 7 21352347.548 21352345.824 21352346.820
+ 46.400 42.200
+ -4670282.638 5 -3639173.020 3 23796541.634 23796541.225 23796540.416
+ 30.100 21.600
+ -13560522.543 7 -10566626.981 6 21853237.949 21853238.004 21853237.205
+ 43.500 36.700
+ 06 1 2 20 8 30.0000000 0 7G02G04G05G07G17G20G24
+ -17166270.476 7 -13376303.624 6 21546869.869 21546867.322 21546869.086
+ 42.500 40.600
+ -22926645.019 7 -17864900.390 7 20077927.955 20077926.634 20077927.417
+ 45.300 47.200
+ -9528420.243 5 -7424737.311 5 22579279.221 22579278.831 22579278.166
+ 35.900 32.100
+ -13916430.696 7 -10843964.983 7 20719659.334 20719658.432 20719658.267
+ 45.600 43.200
+ -17645509.912 7 -13749741.506 7 21364075.125 21364073.773 21364074.591
+ 46.400 42.500
+ -4581835.279 5 -3570253.030 2 23813373.170 23813371.111 23813371.437
+ 31.000 17.800
+ -13487761.248 7 -10509929.888 6 21867084.317 21867084.065 21867083.372
+ 43.400 36.500
+ 06 1 2 20 9 0.0000000 0 7G02G04G05G07G17G20G24
+ -17239355.107 7 -13433252.665 6 21532962.410 21532959.358 21532961.641
+ 42.900 40.000
+ -22925308.806 7 -17863859.175 7 20078181.718 20078180.908 20078181.388
+ 45.400 47.300
+ -9594440.737 5 -7476181.828 5 22566715.394 22566715.766 22566714.416
+ 35.900 32.800
+ -13884117.289 7 -10818785.711 7 20725808.573 20725807.410 20725807.319
+ 45.700 43.100
+ -17583563.690 7 -13701471.733 7 21375863.245 21375861.747 21375862.429
+ 46.000 42.300
+ -4493042.526 4 -3501063.872 3 23830268.306 23830268.169 23830267.329
+ 28.600 19.900
+ -13414797.419 7 -10453074.971 6 21880968.571 21880968.624 21880967.757
+ 43.400 36.600
+ 06 1 2 20 9 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -17312130.274 7 -13489960.567 6 21519113.739 21519110.983 21519112.917
+ 42.600 40.300
+ -22923538.139 7 -17862479.421 7 20078518.676 20078517.725 20078518.252
+ 45.200 47.200
+ -9659987.980 6 -7527257.572 5 22554242.392 22554242.456 22554241.341
+ 36.500 32.600
+ -13851459.688 7 -10793338.234 7 20732022.938 20732021.914 20732021.850
+ 45.800 42.800
+ -17521301.141 7 -13652955.468 7 21387710.874 21387709.896 21387710.594
+ 45.900 42.000
+ -4403906.983 4 -3431607.623 2 23847230.469 23847229.785 23847229.471
+ 29.200 17.800
+ -87831.348 4 -68440.094 2 24676362.859 24676358.665 24676361.801
+ 28.600 13.900
+ -13341632.522 7 -10396063.379 6 21894891.629 21894891.776 21894890.664
+ 43.000 36.500
+ 06 1 2 20 10 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17384595.403 7 -13546426.876 6 21505323.756 21505321.400 21505322.985
+ 42.600 40.700
+ -22921333.995 7 -17860761.896 7 20078938.026 20078937.131 20078937.623
+ 45.100 47.100
+ -9725059.787 6 -7577962.845 5 22541859.751 22541859.325 22541858.644
+ 36.200 31.800
+ -13818457.662 7 -10767622.371 7 20738303.267 20738301.925 20738301.937
+ 45.500 43.000
+ -17458722.789 7 -13604193.124 7 21399619.521 21399618.124 21399618.973
+ 45.900 42.000
+ -4314431.410 4 -3361886.411 3 23864258.012 23864257.248 23864256.685
+ 28.400 20.500
+ -144634.854 4 -112702.520 3 24665553.323 24665549.397 24665551.924
+ 26.800 18.600
+ -13268268.413 7 -10338896.558 6 21908852.535 21908852.248 21908851.577
+ 43.400 36.400
+ 06 1 2 20 10 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -17456749.468 7 -13602650.790 6 21491593.460 21491590.647 21491592.860
+ 43.100 40.600
+ -22918696.975 7 -17858707.064 7 20079440.033 20079438.915 20079439.524
+ 45.100 47.200
+ -9789653.954 6 -7628295.932 5 22529567.394 22529567.505 22529566.355
+ 36.000 31.600
+ -13785111.063 7 -10741638.005 7 20744648.661 20744647.670 20744647.549
+ 45.600 43.000
+ -17395829.417 7 -13555185.307 6 21411587.761 21411586.288 21411587.079
+ 45.600 41.800
+ -4224618.433 4 -3291902.298 3 23881349.057 23881347.648 23881347.663
+ 29.500 19.300
+ -201058.290 4 -156668.806 3 24654815.741 24654813.031 24654814.918
+ 27.100 20.500
+ -13194706.478 7 -10281575.581 6 21922850.514 21922850.602 21922849.768
+ 43.300 36.200
+ 06 1 2 20 11 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17528591.707 7 -13658631.736 6 21477922.591 21477919.415 21477921.838
+ 43.100 40.600
+ -22915628.033 7 -17856315.672 7 20080023.741 20080022.966 20080023.398
+ 45.000 47.200
+ -9853768.182 6 -7678255.036 5 22517367.147 22517367.129 22517366.065
+ 36.200 33.000
+ -13751419.724 7 -10715385.024 7 20751059.782 20751058.973 20751058.752
+ 45.600 43.100
+ -17332621.451 7 -13505932.360 6 21423615.647 21423614.293 21423615.159
+ 45.600 41.800
+ -4134470.880 4 -3221657.454 3 23898503.281 23898502.368 23898501.858
+ 29.500 19.300
+ -257098.332 4 -200336.331 3 24644151.641 24644148.639 24644150.372
+ 26.200 19.300
+ -13120948.207 7 -10224101.614 5 21936886.305 21936886.296 21936885.517
+ 43.400 35.700
+ 06 1 2 20 11 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -17600121.176 7 -13714368.962 6 21464310.860 21464307.997 21464310.085
+ 43.100 40.700
+ -22912128.213 7 -17853588.527 7 20080689.846 20080688.977 20080689.435
+ 45.400 47.100
+ -9917400.553 6 -7727838.660 5 22505258.287 22505258.176 22505257.255
+ 36.200 32.300
+ -13717383.447 7 -10688863.253 7 20757536.984 20757535.881 20757535.708
+ 45.600 43.000
+ -17269099.410 7 -13456434.669 6 21435703.792 21435702.387 21435702.951
+ 45.500 41.900
+ -4043991.232 4 -3151153.857 3 23915720.461 23915720.384 23915719.298
+ 26.500 22.600
+ -312752.453 4 -243703.117 3 24633561.188 24633557.436 24633560.275
+ 26.800 19.300
+ -13046995.493 7 -10166476.136 5 21950959.215 21950958.931 21950958.245
+ 43.200 35.600
+ 06 1 2 20 12 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17671337.261 7 -13769861.987 6 21450758.874 21450755.867 21450758.032
+ 43.100 40.600
+ -22908198.277 7 -17850526.228 7 20081437.787 20081436.729 20081437.417
+ 45.400 47.200
+ -9980548.691 6 -7777044.964 5 22493241.647 22493241.119 22493240.545
+ 36.400 32.400
+ -13683002.073 7 -10662072.572 7 20764079.485 20764078.491 20764078.379
+ 45.800 43.000
+ -17205263.707 7 -13406692.577 6 21447850.953 21447849.742 21447850.645
+ 45.800 41.600
+ -3953182.226 4 -3080393.631 3 23933000.311 23933000.466 23932999.634
+ 28.400 19.900
+ -368018.177 4 -286767.288 3 24623045.000 24623041.224 24623043.778
+ 26.200 19.900
+ -12972850.175 7 -10108700.577 5 21965068.616 21965068.395 21965067.850
+ 43.100 35.500
+ 06 1 2 20 12 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -17742239.048 7 -13825110.107 6 21437266.654 21437263.466 21437265.852
+ 43.100 40.300
+ -22903839.171 7 -17847129.517 7 20082267.416 20082266.243 20082266.985
+ 45.400 47.100
+ -10043210.580 6 -7825872.371 5 22481317.440 22481317.381 22481316.324
+ 36.000 32.800
+ -13648275.664 7 -10635013.033 7 20770687.914 20770686.638 20770686.597
+ 45.600 43.000
+ -17141114.919 7 -13356706.504 6 21460058.536 21460056.816 21460057.616
+ 45.300 41.500
+ -3862046.645 4 -3009378.890 2 23950343.253 23950342.545 23950342.067
+ 28.400 17.800
+ -422893.261 3 -329527.049 2 24612601.376 24612598.705 24612600.698
+ 23.400 17.800
+ -12898513.718 7 -10050776.079 5 21979214.217 21979214.152 21979213.383
+ 42.700 35.600
+ 06 1 2 20 13 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17812826.006 7 -13880112.907 6 21423834.380 21423831.487 21423833.621
+ 43.300 40.700
+ -22899051.762 7 -17843399.061 7 20083178.394 20083177.319 20083177.939
+ 45.800 47.300
+ -10105384.016 6 -7874319.176 5 22469485.851 22469485.826 22469484.810
+ 36.000 32.300
+ -13613203.852 7 -10607684.350 7 20777361.412 20777360.548 20777360.289
+ 45.800 42.700
+ -17076653.461 7 -13306476.809 6 21472324.596 21472323.388 21472324.315
+ 45.700 41.400
+ -3770587.064 4 -2938111.707 3 23967747.900 23967747.060 23967746.553
+ 27.100 18.600
+ -477374.614 3 -371980.000 3 24602233.971 24602230.855 24602232.687
+ 21.600 19.300
+ -12823987.616 7 -9992703.804 5 21993396.164 21993396.160 21993395.253
+ 42.400 35.600
+ 06 1 2 20 13 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -17883096.804 7 -13934869.350 6 21410462.024 21410459.410 21410461.324
+ 43.100 40.900
+ -22893837.023 7 -17839335.622 7 20084170.628 20084169.640 20084170.291
+ 45.600 47.300
+ -10167066.819 6 -7922383.660 5 22457748.160 22457747.922 22457747.182
+ 36.700 31.800
+ -13577786.733 7 -10580086.603 7 20784101.288 20784100.196 20784100.141
+ 45.700 42.700
+ -17011879.888 7 -13256003.897 6 21484651.139 21484649.508 21484650.386
+ 45.600 41.100
+ -3678806.530 4 -2866594.442 3 23985212.214 23985212.695 23985211.259
+ 28.100 21.100
+ -531459.912 4 -414124.345 3 24591942.787 24591939.194 24591941.513
+ 25.600 19.900
+ -12749273.526 7 -9934485.049 5 22007613.832 22007613.691 22007612.833
+ 42.100 35.400
+ 06 1 2 20 14 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17953051.147 7 -13989379.192 6 21397150.310 21397147.543 21397149.548
+ 43.100 41.200
+ -22888195.793 7 -17834939.854 7 20085244.209 20085243.091 20085243.762
+ 45.600 47.200
+ -10228257.042 6 -7970064.327 5 22446104.446 22446103.786 22446103.287
+ 37.500 32.300
+ -13542024.025 7 -10552219.557 7 20790906.828 20790905.601 20790905.552
+ 45.600 42.400
+ -16946794.754 7 -13205288.222 6 21497036.026 21497034.655 21497035.644
+ 45.600 40.800
+ -3586707.420 4 -2794828.907 3 24002739.013 24002738.196 24002737.614
+ 26.800 19.900
+ -585146.565 4 -455958.085 3 24581726.659 24581722.992 24581725.049
+ 26.500 21.600
+ -12674373.149 7 -9876121.124 5 22021867.034 22021866.660 22021866.028
+ 42.200 35.600
+ 06 1 2 20 14 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18022687.947 7 -14043641.605 6 21383899.064 21383895.868 21383898.247
+ 43.500 41.200
+ -22882129.000 7 -17830212.479 7 20086398.685 20086397.610 20086398.265
+ 45.700 47.300
+ -10288952.478 6 -8017359.454 5 22434554.344 22434553.860 22434553.022
+ 37.500 32.400
+ -13505915.573 7 -10524083.102 7 20797777.685 20797776.756 20797776.663
+ 45.600 42.300
+ -16881398.582 7 -13154330.161 6 21509480.985 21509479.234 21509480.226
+ 45.600 41.000
+ -3494292.341 4 -2722817.199 3 24020325.323 24020324.591 24020324.176
+ 28.800 21.100
+ -638432.071 4 -497479.188 3 24571586.608 24571583.552 24571585.188
+ 25.300 22.100
+ -12599288.190 7 -9817613.388 5 22036155.073 22036155.241 22036154.138
+ 42.000 35.700
+ 06 1 2 20 15 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18092006.768 7 -14097656.241 6 21370707.991 21370704.910 21370707.272
+ 43.600 40.900
+ -22875637.760 7 -17825154.368 7 20087633.926 20087632.891 20087633.476
+ 45.600 47.300
+ -10349151.099 6 -8064267.444 5 22423098.783 22423098.293 22423097.584
+ 37.000 32.100
+ -13469461.546 7 -10495677.372 7 20804715.038 20804713.870 20804713.778
+ 45.600 42.700
+ -16815691.938 7 -13103130.189 6 21521984.162 21521982.847 21521983.837
+ 45.600 41.000
+ -3401564.082 5 -2650561.440 2 24037970.581 24037969.502 24037969.371
+ 30.100 17.800
+ -691313.955 4 -538685.834 3 24561522.716 24561519.538 24561521.822
+ 25.900 19.300
+ -12524020.133 7 -9758962.966 5 22050478.432 22050477.972 22050477.362
+ 42.200 35.300
+ 06 1 2 20 15 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18161006.514 7 -14151422.254 6 21357577.900 21357574.893 21357577.064
+ 43.600 41.400
+ -22868722.873 7 -17819766.141 7 20088949.781 20088948.682 20088949.317
+ 45.500 47.200
+ -10408850.987 6 -8110786.801 5 22411737.868 22411737.855 22411736.816
+ 36.800 32.300
+ -13432661.612 7 -10467002.101 7 20811717.435 20811716.702 20811716.386
+ 45.500 42.500
+ -16749675.569 7 -13051688.864 6 21534547.324 21534545.452 21534546.475
+ 45.700 41.200
+ -3308525.172 4 -2578063.564 2 24055675.293 24055673.731 24055673.824
+ 27.400 13.900
+ -743789.409 4 -579575.805 3 24551537.416 24551534.182 24551536.072
+ 28.400 19.300
+ -12448570.483 7 -9700171.052 5 22064835.706 22064835.641 22064834.778
+ 42.000 35.100
+ 06 1 2 20 16 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18229686.429 7 -14204939.042 6 21344508.441 21344505.354 21344507.610
+ 43.600 41.100
+ -22861385.430 7 -17814048.652 7 20090345.911 20090344.906 20090345.503
+ 45.500 47.200
+ -10468049.869 6 -8156915.766 5 22400472.403 22400472.502 22400471.519
+ 36.300 32.000
+ -13395515.689 7 -10438057.223 7 20818786.219 20818785.260 20818784.968
+ 45.400 42.300
+ -16683349.720 7 -13000006.397 6 21547167.966 21547167.007 21547167.655
+ 45.400 41.400
+ -3215178.668 4 -2505326.022 2 24073438.778 24073437.106 24073437.329
+ 26.500 17.000
+ -795855.812 4 -620146.991 3 24541630.190 24541625.840 24541628.668
+ 29.500 20.500
+ -12372940.904 7 -9641238.932 5 22079227.817 22079227.493 22079226.847
+ 42.400 35.100
+ 06 1 2 20 16 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18298045.865 7 -14258206.107 6 21331500.065 21331496.863 21331499.210
+ 43.700 41.100
+ -22853626.290 7 -17808002.566 7 20091822.322 20091821.400 20091822.013
+ 45.700 47.200
+ -10526745.799 6 -8202652.811 5 22389303.046 22389303.375 22389302.068
+ 36.200 32.700
+ -13358023.793 7 -10408842.755 7 20825920.652 20825919.613 20825919.462
+ 45.400 42.200
+ -16616715.113 7 -12948083.336 6 21559848.624 21559847.037 21559847.861
+ 45.500 41.300
+ -3121527.131 4 -2432350.845 3 24091259.675 24091259.965 24091258.552
+ 27.600 19.300
+ -847511.215 4 -660397.916 3 24531799.620 24531796.390 24531798.465
+ 27.600 21.100
+ -12297133.145 7 -9582167.969 5 22093652.942 22093653.101 22093652.306
+ 42.400 34.700
+ 06 1 2 20 17 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18366084.162 7 -14311222.938 6 21318552.403 21318549.811 21318551.705
+ 43.400 41.800
+ -22845446.261 7 -17801628.516 7 20093379.125 20093378.066 20093378.686
+ 45.600 47.300
+ -10584936.784 6 -8247996.395 5 22378229.826 22378229.918 22378228.843
+ 36.400 33.000
+ -13320185.838 7 -10379358.635 7 20833120.768 20833120.019 20833119.766
+ 45.500 42.000
+ -16549772.285 7 -12895920.107 6 21572587.004 21572585.753 21572586.713
+ 45.300 41.000
+ -3027573.359 4 -2359140.138 2 24109139.008 24109137.672 24109137.777
+ 29.500 17.800
+ -898752.857 4 -700326.421 3 24522048.839 24522045.189 24522047.292
+ 26.800 21.100
+ -12221148.580 7 -9522959.223 5 22108112.918 22108112.556 22108112.132
+ 42.400 34.700
+ 06 1 2 20 17 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18433800.477 7 -14363988.865 6 21305666.769 21305663.928 21305665.918
+ 43.400 41.600
+ -22836846.704 7 -17794927.562 7 20095015.544 20095014.531 20095015.110
+ 45.700 47.300
+ -10642620.713 6 -8292944.890 5 22367253.283 22367252.785 22367252.139
+ 37.400 32.600
+ -13282001.715 7 -10349604.774 7 20840387.207 20840386.287 20840385.995
+ 45.400 42.300
+ -16482521.660 7 -12843517.034 6 21585384.832 21585383.021 21585384.049
+ 45.100 41.100
+ -2933319.895 4 -2285695.863 3 24127074.545 24127073.364 24127073.458
+ 28.600 19.300
+ -949578.162 4 -739930.539 3 24512376.927 24512373.785 24512375.900
+ 27.400 21.100
+ -12144988.662 7 -9463613.848 5 22122605.467 22122605.326 22122604.518
+ 42.000 34.500
+ 06 1 2 20 18 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18501194.087 7 -14416503.342 7 21292841.884 21292839.320 21292841.125
+ 43.200 42.100
+ -22827828.278 7 -17787900.216 7 20096731.744 20096730.648 20096731.277
+ 45.700 47.200
+ -10699795.720 6 -8337496.814 5 22356373.394 22356372.609 22356372.172
+ 38.100 32.300
+ -13243471.446 7 -10319581.196 7 20847718.947 20847718.264 20847717.913
+ 45.400 42.000
+ -16414964.155 7 -12790874.840 6 21598240.240 21598239.006 21598239.834
+ 45.100 41.100
+ -2838769.542 4 -2212020.268 2 24145066.792 24145065.683 24145065.736
+ 27.900 16.100
+ -999984.885 4 -779208.452 2 24502784.824 24502781.282 24502783.623
+ 26.500 17.800
+ -12068655.288 6 -9404133.305 5 22137131.180 22137131.188 22137130.367
+ 41.800 34.700
+ 06 1 2 20 18 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18568264.180 7 -14468765.726 6 21280079.205 21280075.910 21280078.445
+ 43.900 41.600
+ -22818392.201 7 -17780547.430 7 20098527.371 20098526.293 20098526.979
+ 45.700 47.300
+ -10756459.754 6 -8381650.591 5 22345590.741 22345589.700 22345589.374
+ 38.000 32.400
+ -13204594.905 7 -10289287.790 6 20855117.235 20855116.191 20855115.966
+ 45.100 41.900
+ -16347099.992 7 -12737993.687 6 21611154.616 21611153.139 21611153.834
+ 44.800 41.200
+ -2743925.079 4 -2138115.505 3 24163114.655 24163114.359 24163113.717
+ 24.900 19.300
+ -1049970.487 4 -818158.264 3 24493272.249 24493269.447 24493271.554
+ 25.600 21.100
+ -11992149.829 6 -9344518.675 5 22151689.769 22151689.807 22151688.850
+ 41.800 35.200
+ 06 1 2 20 19 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18635010.228 7 -14520775.613 6 21267377.819 21267374.448 21267377.015
+ 43.800 41.500
+ -22808539.303 7 -17772869.848 7 20100402.291 20100401.311 20100401.887
+ 45.700 47.300
+ -10812610.923 6 -8425404.732 5 22334905.266 22334904.448 22334904.070
+ 38.300 32.600
+ -13165372.048 7 -10258724.529 7 20862580.807 20862580.113 20862579.782
+ 45.100 42.000
+ -16278929.961 7 -12684874.206 6 21624126.884 21624125.454 21624126.288
+ 45.200 40.900
+ -2648789.139 4 -2063983.636 2 24181219.437 24181217.773 24181218.088
+ 26.800 17.000
+ -1099532.634 4 -856778.092 3 24483841.046 24483838.483 24483839.854
+ 27.400 19.900
+ -11915473.732 6 -9284771.066 5 22166280.760 22166280.673 22166279.835
+ 41.900 34.600
+ 06 1 2 20 19 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18701431.369 7 -14572532.311 6 21254738.065 21254735.251 21254737.224
+ 43.700 41.900
+ -22798270.464 7 -17764868.157 7 20102356.426 20102355.362 20102355.948
+ 45.900 47.300
+ -10868247.228 6 -8468757.683 5 22324318.040 22324317.531 22324316.945
+ 38.700 33.500
+ -13125802.851 7 -10227891.397 6 20870110.946 20870109.889 20870109.564
+ 44.900 41.900
+ -16210454.712 7 -12631516.883 6 21637156.827 21637155.914 21637156.578
+ 44.600 40.900
+ -2553364.486 4 -1989626.760 2 24199377.364 24199376.926 24199376.376
+ 27.100 17.000
+ -1148668.655 4 -895065.854 3 24474491.414 24474488.033 24474490.070
+ 26.800 22.100
+ -11838628.651 6 -9224891.783 5 22180903.786 22180903.993 22180902.958
+ 41.300 34.900
+ 06 1 2 20 20 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18767526.887 7 -14624035.283 7 21242160.599 21242157.639 21242159.783
+ 44.000 42.100
+ -22787587.096 7 -17756543.455 7 20104389.366 20104388.229 20104388.941
+ 45.700 47.300
+ -10923366.844 6 -8511708.023 5 22313829.072 22313828.526 22313827.985
+ 38.100 33.900
+ -13085887.264 7 -10196788.355 6 20877705.980 20877705.534 20877705.058
+ 45.100 41.900
+ -16141674.703 7 -12577922.093 6 21650245.912 21650244.399 21650244.954
+ 44.700 40.900
+ -2457653.686 4 -1915046.950 2 24217590.616 24217590.274 24217589.667
+ 26.500 15.100
+ -1197376.439 4 -933019.956 3 24465222.427 24465219.408 24465221.195
+ 27.100 21.600
+ -11761615.860 6 -9164881.823 5 22195559.426 22195559.138 22195558.281
+ 41.100 34.400
+ 06 1 2 20 20 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18833296.043 7 -14675283.956 6 21229645.149 21229641.781 21229644.284
+ 43.900 41.700
+ -22776489.953 7 -17747896.333 7 20106501.062 20106499.945 20106500.661
+ 45.900 47.300
+ -10977967.749 6 -8554254.158 5 22303438.855 22303438.260 22303437.763
+ 38.400 33.200
+ -13045625.226 7 -10165415.345 6 20885368.058 20885367.170 20885366.847
+ 45.100 41.800
+ -16072590.740 7 -12524090.458 6 21663391.481 21663390.526 21663391.346
+ 44.700 40.500
+ -2361659.462 4 -1840246.289 2 24235857.981 24235857.227 24235856.567
+ 26.500 17.000
+ -1245653.259 4 -970638.203 3 24456036.184 24456032.171 24456035.013
+ 29.700 21.600
+ -11684437.147 6 -9104742.562 5 22210245.430 22210245.466 22210244.481
+ 40.800 33.900
+ 06 1 2 20 21 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18898738.131 7 -14726277.763 7 21217191.690 21217188.840 21217190.967
+ 44.100 42.000
+ -22764980.133 7 -17738927.641 7 20108691.230 20108690.224 20108690.887
+ 46.000 47.300
+ -11032047.950 6 -8596394.574 5 22293147.586 22293146.847 22293146.397
+ 38.000 32.700
+ -13005016.787 7 -10133772.419 6 20893095.395 20893094.764 20893094.355
+ 44.900 41.600
+ -16003203.151 7 -12470022.220 6 21676595.806 21676594.465 21676595.142
+ 44.700 40.400
+ -2265384.471 4 -1765226.827 1 24254179.209 24254177.278 24254177.625
+ 24.600 11.000
+ -1293496.932 4 -1007918.971 3 24446931.525 24446927.807 24446929.907
+ 26.800 21.600
+ -11607094.046 6 -9044475.217 5 22224963.233 22224963.551 22224962.387
+ 41.000 34.400
+ 06 1 2 20 21 30.0000000 0 8G02G04G05G07G17G20G23G24
+ -18963852.644 7 -14777016.317 7 21204800.984 21204798.197 21204800.243
+ 44.300 42.500
+ -22753058.499 7 -17729638.060 7 20110959.776 20110958.875 20110959.455
+ 45.800 47.200
+ -11085605.837 6 -8638127.979 5 22282955.617 22282955.351 22282954.513
+ 37.300 32.600
+ -12964061.928 7 -10101859.553 6 20900889.481 20900888.224 20900888.077
+ 45.100 41.800
+ -15933512.783 7 -12415718.048 6 21689857.599 21689856.023 21689857.008
+ 44.600 40.200
+ -2168831.660 4 -1689990.883 2 24272551.364 24272551.015 24272550.725
+ 24.900 16.100
+ -1340904.953 4 -1044860.239 3 24437910.133 24437906.300 24437908.711
+ 27.600 21.600
+ -11529587.997 6 -8984080.888 5 22239712.094 22239712.088 22239711.288
+ 41.000 33.800
+ 06 1 2 20 22 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19028638.666 7 -14827498.902 7 21192472.515 21192469.576 21192471.706
+ 43.800 42.500
+ -22740726.357 7 -17720028.596 7 20113306.700 20113305.538 20113306.244
+ 45.900 47.200
+ -11138639.277 6 -8679452.733 5 22272863.783 22272863.271 22272862.646
+ 37.800 33.000
+ -12922760.681 7 -10069676.772 6 20908748.382 20908747.579 20908747.302
+ 45.300 41.500
+ -15863520.158 7 -12361178.368 6 21703176.690 21703175.223 21703176.192
+ 44.800 39.700
+ -2072003.532 4 -1614540.421 2 24290977.872 24290977.518 24290976.480
+ 26.500 17.800
+ -1387875.170 4 -1081460.360 3 24428971.249 24428968.129 24428970.093
+ 25.600 21.600
+ -11451920.502 6 -8923560.757 5 22254492.151 22254491.936 22254491.178
+ 41.000 34.000
+ -128729.685 2 -100307.875 2 24437624.212 24437624.730 24437623.709
+ 17.800 17.800
+ 06 1 2 20 22 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19093095.402 7 -14877724.901 6 21180206.693 21180203.545 21180205.933
+ 44.000 41.900
+ -22727984.631 7 -17710099.981 7 20115731.407 20115730.173 20115730.959
+ 45.900 47.100
+ -11191146.584 6 -8720367.494 5 22262872.013 22262871.648 22262870.845
+ 38.100 33.200
+ -12881112.911 7 -10037223.979 6 20916673.995 20916672.880 20916672.689
+ 45.200 41.500
+ -15793225.868 7 -12306403.612 6 21716553.612 21716551.751 21716552.921
+ 45.100 39.700
+ -1974902.985 4 -1538877.674 2 24309456.122 24309454.946 24309454.817
+ 27.400 17.000
+ -1434405.289 4 -1117717.530 3 24420117.445 24420113.987 24420116.087
+ 25.900 21.600
+ -11374093.020 6 -8862915.967 5 22269302.507 22269302.139 22269301.383
+ 41.100 33.900
+ -224931.122 3 -175269.941 3 24419318.086 24419319.029 24419317.787
+ 18.600 18.600
+ 06 1 2 20 23 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19157222.521 7 -14927694.060 7 21168003.688 21168000.831 21168003.005
+ 44.300 42.500
+ -22714834.364 7 -17699853.022 7 20118233.776 20118232.664 20118233.341
+ 45.900 47.200
+ -11243125.810 6 -8760870.768 5 22252980.504 22252980.250 22252979.530
+ 38.100 33.200
+ -12839118.700 7 -10004501.225 6 20924665.046 20924664.120 20924663.971
+ 45.400 41.500
+ -15722630.569 7 -12251394.304 6 21729987.212 21729985.656 21729986.679
+ 44.900 40.000
+ -1877532.284 4 -1463004.424 2 24327983.852 24327984.126 24327982.975
+ 24.600 16.100
+ -1480492.956 4 -1153629.992 2 24411346.464 24411342.550 24411345.553
+ 24.600 16.100
+ -11296107.279 6 -8802147.854 5 22284142.517 22284141.850 22284141.468
+ 41.100 32.600
+ -320833.580 3 -249999.019 3 24401068.162 24401069.751 24401067.762
+ 22.100 18.600
+ 06 1 2 20 23 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19221019.144 7 -14977405.683 7 21155863.705 21155860.738 21155862.864
+ 44.000 42.600
+ -22701276.610 7 -17689288.541 7 20120813.662 20120812.615 20120813.270
+ 45.800 47.200
+ -11294575.276 6 -8800961.236 5 22243189.973 22243189.537 22243189.016
+ 37.900 32.700
+ -12796778.105 7 -9971508.562 6 20932722.583 20932721.175 20932721.227
+ 45.300 41.200
+ -15651734.913 7 -12196150.953 6 21743478.457 21743476.612 21743477.666
+ 44.700 40.000
+ -1779894.620 4 -1386923.185 2 24346564.343 24346564.447 24346563.015
+ 25.900 17.000
+ -1526135.806 4 -1189195.772 3 24402660.616 24402658.110 24402659.434
+ 25.600 22.100
+ -11217964.598 6 -8741257.439 5 22299012.653 22299012.031 22299011.646
+ 41.500 33.400
+ -416434.296 3 -324493.007 3 24382876.962 24382877.160 24382876.391
+ 23.800 19.900
+ 06 1 2 20 24 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19284484.709 7 -15026859.344 7 21143786.709 21143783.378 21143785.965
+ 44.500 42.500
+ -22687312.640 7 -17678407.525 7 20123470.732 20123469.820 20123470.416
+ 45.700 47.100
+ -11345493.041 6 -8840637.393 5 22233500.511 22233499.913 22233499.567
+ 38.100 32.600
+ -12754091.149 7 -9938246.009 6 20940845.404 20940844.334 20940844.296
+ 45.500 41.400
+ -15580539.729 7 -12140674.206 6 21757025.984 21757024.684 21757025.781
+ 44.600 40.200
+ -1681992.545 4 -1310635.867 2 24365194.229 24365194.034 24365192.985
+ 26.800 12.600
+ -1571331.535 4 -1224413.213 3 24394061.106 24394057.239 24394059.689
+ 25.600 19.900
+ -11139666.369 6 -8680245.836 5 22313912.221 22313911.698 22313911.363
+ 41.200 33.600
+ -511730.357 4 -398749.639 2 24364741.996 24364743.002 24364742.021
+ 25.300 17.800
+ 06 1 2 20 24 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19347618.250 7 -15076054.292 7 21131772.765 21131769.704 21131771.895
+ 44.200 42.700
+ -22672943.080 7 -17667210.468 7 20126205.223 20126204.225 20126204.830
+ 45.700 47.100
+ -11395877.514 6 -8879898.000 5 22223913.009 22223912.220 22223911.760
+ 38.100 32.600
+ -12711057.769 7 -9904713.525 6 20949034.601 20949033.393 20949033.393
+ 45.500 41.400
+ -15509045.376 7 -12084964.343 6 21770631.312 21770630.035 21770630.697
+ 44.300 40.700
+ -1583828.620 4 -1234144.505 2 24383873.493 24383873.017 24383872.486
+ 25.300 15.100
+ -1616077.985 4 -1259280.528 3 24385545.631 24385541.874 24385544.575
+ 27.400 21.100
+ -11061214.291 6 -8619114.352 5 22328841.249 22328840.650 22328840.210
+ 40.400 33.500
+ -606719.209 4 -472766.833 2 24346666.770 24346666.768 24346666.428
+ 24.600 17.000
+ 06 1 2 20 25 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19410419.312 7 -15124990.156 7 21119822.129 21119819.092 21119821.252
+ 44.300 42.800
+ -22658169.350 7 -17655698.473 7 20129016.459 20129015.679 20129016.115
+ 45.600 47.200
+ -11445726.728 6 -8918741.520 5 22214427.237 22214426.137 22214425.909
+ 38.600 32.700
+ -12667678.112 7 -9870911.196 6 20957289.268 20957288.285 20957288.128
+ 45.400 41.500
+ -15437252.854 7 -12029022.151 6 21784293.492 21784291.568 21784292.362
+ 44.200 40.500
+ -1485405.639 4 -1157451.288 2 24402602.824 24402602.536 24402601.818
+ 26.200 12.600
+ -1660372.781 4 -1293795.917 3 24377117.040 24377113.847 24377116.022
+ 28.100 23.400
+ -10982609.959 6 -8557864.220 5 22343798.798 22343798.869 22343797.904
+ 40.500 33.800
+ -701397.956 4 -546542.429 3 24328649.873 24328649.648 24328649.469
+ 28.100 18.600
+ 06 1 2 20 25 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19472887.369 7 -15173666.548 7 21107934.807 21107931.478 21107934.011
+ 44.500 42.600
+ -22642992.400 7 -17643872.282 7 20131904.781 20131903.805 20131904.286
+ 45.700 47.200
+ -11495039.098 6 -8957166.721 5 22205043.307 22205042.490 22205042.174
+ 38.900 33.000
+ -12623952.237 7 -9836839.096 6 20965610.210 20965609.041 20965608.932
+ 45.300 41.600
+ -15365162.492 7 -11972847.863 6 21798010.608 21798009.944 21798010.690
+ 44.200 39.800
+ -1386726.172 4 -1080558.184 2 24421381.573 24421381.032 24421380.467
+ 26.500 13.900
+ -1704213.688 4 -1327957.623 3 24368774.198 24368771.015 24368773.124
+ 28.100 23.400
+ -10903854.569 6 -8496496.397 5 22358785.710 22358785.548 22358784.721
+ 41.000 33.400
+ -795763.871 3 -620074.266 2 24310692.162 24310692.407 24310691.737
+ 23.800 17.800
+ 06 1 2 20 26 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19535021.462 7 -15222082.712 7 21096110.900 21096107.821 21096110.178
+ 44.500 42.900
+ -22627413.293 7 -17631732.724 7 20134869.384 20134868.330 20134868.912
+ 45.600 47.200
+ -11543812.670 6 -8995172.080 5 22195761.801 22195761.254 22195760.829
+ 39.500 33.400
+ -12579880.203 7 -9802497.260 6 20973996.483 20973995.748 20973995.469
+ 45.400 41.400
+ -15292774.954 7 -11916442.010 6 21811786.226 21811784.682 21811785.530
+ 43.900 39.600
+ -1287793.155 3 -1003467.534 2 24440207.108 24440207.991 24440206.047
+ 23.800 17.000
+ -1747598.639 4 -1361764.039 3 24360518.666 24360514.532 24360516.966
+ 28.100 21.600
+ -10824949.591 6 -8435012.006 5 22373800.300 22373800.727 22373799.668
+ 40.700 33.200
+ -889814.336 3 -693360.247 2 24292794.268 24292795.811 24292794.085
+ 22.600 17.000
+ 06 1 2 20 26 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19596821.198 7 -15270238.335 7 21084350.931 21084347.804 21084350.169
+ 44.800 43.100
+ -22611433.381 7 -17619280.844 7 20137910.232 20137909.247 20137909.794
+ 45.700 47.200
+ -11592045.991 6 -9032756.478 5 22186583.350 22186582.648 22186582.284
+ 39.300 33.200
+ -12535461.989 7 -9767885.681 6 20982449.230 20982448.258 20982447.995
+ 45.100 41.300
+ -15220091.184 7 -11859805.329 6 21825617.354 21825615.940 21825616.822
+ 43.900 39.400
+ -1188609.177 4 -926181.324 2 24459082.254 24459081.924 24459081.039
+ 24.600 17.000
+ -1790525.319 4 -1395213.351 3 24352349.828 24352346.536 24352348.564
+ 28.800 23.000
+ -10745896.807 6 -8373412.450 5 22388843.745 22388843.716 22388842.807
+ 40.100 33.000
+ -983546.553 3 -766398.315 1 24274957.658 24274957.954 24274957.506
+ 23.000 11.000
+ 06 1 2 20 27 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19658285.837 7 -15318132.845 7 21072654.695 21072651.420 21072653.864
+ 44.900 43.200
+ -22595053.466 7 -17606517.279 7 20141027.183 20141026.246 20141026.793
+ 45.800 47.300
+ -11639737.192 6 -9069918.444 5 22177508.153 22177507.466 22177506.851
+ 39.500 33.400
+ -12490697.666 7 -9733004.400 6 20990967.237 20990966.732 20990966.231
+ 45.100 41.400
+ -15147111.904 7 -11802938.383 6 21839504.645 21839503.396 21839504.244
+ 43.600 39.400
+ -1089177.006 4 -848701.751 2 24478003.682 24478002.810 24478002.208
+ 24.200 13.900
+ -1832991.579 4 -1428303.922 3 24344268.535 24344265.317 24344267.406
+ 29.500 23.400
+ -10666697.176 6 -8311698.456 5 22403915.487 22403914.701 22403914.543
+ 40.300 32.400
+ -1076957.717 3 -839186.231 1 24257183.092 24257182.605 24257182.209
+ 21.600 9.000
+ 06 1 2 20 27 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19719414.673 7 -15365765.694 7 21061022.350 21061018.993 21061021.531
+ 44.700 43.100
+ -22578274.534 7 -17593442.787 7 20144220.110 20144219.149 20144219.747
+ 45.700 47.100
+ -11686884.603 6 -9106656.671 5 22168536.221 22168535.374 22168535.092
+ 39.200 33.500
+ -12445587.428 7 -9697853.574 6 20999551.782 20999550.980 20999550.467
+ 44.700 41.200
+ -15073837.581 7 -11745841.542 6 21853448.720 21853447.081 21853447.994
+ 43.800 39.500
+ -989499.404 4 -771030.871 2 24496970.878 24496970.477 24496969.989
+ 25.300 12.600
+ -1874995.175 4 -1461033.958 3 24336275.211 24336272.231 24336274.365
+ 27.600 23.800
+ -10587352.345 6 -8249871.321 5 22419013.838 22419013.962 22419012.983
+ 40.000 33.100
+ -1170045.078 4 -911721.865 2 24239469.359 24239468.442 24239468.585
+ 25.300 12.600
+ 06 1 2 20 28 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19780206.834 7 -15413136.197 7 21049453.996 21049450.618 21049453.056
+ 44.800 43.200
+ -22561098.034 7 -17580058.499 7 20147488.846 20147487.710 20147488.390
+ 45.900 47.200
+ -11733486.646 6 -9142969.940 5 22159667.922 22159667.258 22159666.907
+ 39.300 33.400
+ -12400131.393 7 -9662433.294 6 21008201.438 21008200.790 21008200.356
+ 44.700 41.100
+ -15000269.172 7 -11688515.534 6 21867448.070 21867446.599 21867447.609
+ 43.700 39.100
+ -889578.769 3 -693170.637 2 24515985.485 24515985.356 24515984.087
+ 22.100 16.100
+ -1916534.135 4 -1493401.947 3 24328371.289 24328367.582 24328369.834
+ 29.500 23.800
+ -10507863.665 6 -8187932.109 5 22434140.178 22434140.151 22434139.240
+ 40.000 33.800
+ -1262805.871 4 -984002.950 3 24221816.285 24221817.716 24221816.139
+ 27.400 21.100
+ 06 1 2 20 28 30.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19840662.548 7 -15460244.545 7 21037949.391 21037946.392 21037948.668
+ 45.200 43.400
+ -22543524.930 7 -17566365.170 7 20150832.726 20150831.793 20150832.307
+ 45.700 47.200
+ -11779541.635 6 -9178856.930 5 22150903.635 22150903.297 22150902.803
+ 39.100 33.500
+ -12354329.466 7 -9626743.491 6 21016917.521 21016916.593 21016916.197
+ 44.400 40.900
+ -14926407.137 7 -11630960.724 6 21881503.614 21881502.298 21881503.245
+ 43.800 39.100
+ -789418.060 4 -615123.352 2 24535045.503 24535045.279 24535044.180
+ 25.300 16.100
+ -1957606.214 4 -1525406.120 3 24320555.585 24320552.215 24320554.184
+ 29.000 23.800
+ -10428232.546 6 -8125881.890 5 22449293.351 22449293.201 22449292.488
+ 40.100 33.100
+ -1355237.470 4 -1056027.520 4 24204227.218 24204228.857 24204227.195
+ 29.200 24.900
+ 06 1 2 20 29 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19900780.679 7 -15507089.835 7 21026509.134 21026506.228 21026508.416
+ 44.900 43.600
+ -22525556.340 7 -17552363.667 7 20154251.997 20154251.112 20154251.621
+ 45.700 47.100
+ -11825048.028 6 -9214316.433 5 22142244.312 22142243.658 22142243.243
+ 38.900 33.200
+ -12308181.893 7 -9590784.361 6 21025698.745 21025698.259 21025697.755
+ 44.800 40.800
+ -14852251.934 7 -11573177.486 6 21895615.401 21895613.669 21895614.445
+ 43.400 39.700
+ -689019.395 4 -536890.647 2 24554151.061 24554150.196 24554149.625
+ 26.200 13.900
+ -1998209.305 4 -1557044.872 3 24312829.084 24312825.294 24312827.699
+ 29.900 23.800
+ -10348460.574 6 -8063721.923 5 22464473.446 22464473.437 22464472.566
+ 39.700 32.800
+ -1447337.112 4 -1127793.434 4 24186701.376 24186703.109 24186701.257
+ 27.400 28.400
+ 06 1 2 20 29 30.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -19960560.315 7 -15553671.361 7 21015133.612 21015130.685 21015132.823
+ 44.900 43.800
+ -22507193.252 7 -17538054.762 7 20157746.511 20157745.493 20157746.107
+ 46.000 47.100
+ -11870004.090 6 -9249347.111 5 22133689.370 22133688.721 22133688.222
+ 38.900 34.000
+ -12261688.753 7 -9554555.955 6 21034546.610 21034545.648 21034545.312
+ 44.600 40.800
+ -126580.048 3 -98633.347 2 24608273.261 24608272.218 24608272.455
+ 22.100 16.100
+ -14777804.794 7 -11515166.754 6 21909781.579 21909780.657 21909781.132
+ 43.100 39.500
+ -588386.378 4 -458475.293 2 24573299.863 24573300.348 24573299.372
+ 25.300 17.000
+ -2038341.121 4 -1588316.383 3 24305191.403 24305188.492 24305190.529
+ 28.600 22.100
+ -10268548.796 6 -8001453.022 5 22479680.485 22479680.230 22479679.470
+ 39.600 33.200
+ -1539101.979 4 -1199298.428 4 24169239.777 24169240.351 24169239.130
+ 24.600 29.500
+ 06 1 2 20 30 0.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20020001.220 7 -15599988.937 7 21003822.496 21003819.360 21003821.695
+ 45.200 44.100
+ -22488436.970 7 -17523439.469 7 20161315.722 20161314.690 20161315.294
+ 45.800 47.100
+ -11914408.306 6 -9283947.782 5 22125239.835 22125239.196 22125238.582
+ 39.100 34.500
+ -12214850.081 7 -9518058.303 6 21043459.582 21043458.592 21043458.444
+ 44.700 40.500
+ -208848.004 3 -162738.185 2 24592616.491 24592617.132 24592616.439
+ 21.600 17.800
+ -14703066.283 7 -11456928.975 6 21924003.897 21924002.849 21924003.425
+ 43.000 39.200
+ -487521.205 4 -379879.078 2 24592494.988 24592494.837 24592493.717
+ 25.300 15.100
+ -2077999.686 4 -1619219.147 3 24297645.131 24297640.660 24297643.760
+ 28.400 19.300
+ -10188498.986 6 -7939076.556 5 22494913.851 22494912.952 22494912.724
+ 39.900 32.800
+ -1630529.412 4 -1270540.478 4 24151841.129 24151842.059 24151840.621
+ 24.600 28.600
+ 06 1 2 20 30 30.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20079102.759 7 -15646042.079 7 20992575.799 20992572.632 20992574.979
+ 45.200 43.700
+ -22469288.694 7 -17508518.728 7 20164959.396 20164958.464 20164958.952
+ 45.800 47.200
+ -11958259.123 6 -9318117.235 5 22116895.031 22116894.479 22116894.021
+ 39.500 34.100
+ -12167666.057 7 -9481291.536 6 21052438.285 21052437.489 21052437.149
+ 45.000 40.500
+ -290888.200 3 -226665.524 1 24577003.900 24577004.517 24577005.179
+ 19.900 9.000
+ -14628037.057 7 -11398464.669 6 21938282.300 21938280.477 21938281.105
+ 43.000 39.300
+ -386426.454 3 -301103.969 2 24611731.685 24611732.161 24611731.554
+ 21.600 15.100
+ -2117182.989 4 -1649751.562 3 24290188.730 24290184.970 24290187.377
+ 28.600 20.500
+ -10108312.466 6 -7876593.548 5 22510171.987 22510172.165 22510171.223
+ 39.500 32.600
+ -1721616.745 3 -1341517.529 4 24134507.629 24134507.747 24134507.640
+ 19.300 27.600
+ 06 1 2 20 31 0.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20137864.324 7 -15691830.296 7 20981393.933 20981390.690 20981393.108
+ 45.200 43.900
+ -22449749.344 7 -17493293.257 7 20168677.441 20168676.732 20168677.071
+ 45.800 47.200
+ -12001554.978 6 -9351854.249 5 22108656.151 22108655.550 22108655.120
+ 39.500 34.100
+ -12120136.829 7 -9444255.793 6 21061482.966 21061481.947 21061481.747
+ 44.900 40.300
+ -372697.341 3 -290412.877 2 24561437.126 24561437.260 24561436.751
+ 19.900 12.600
+ -14552717.792 7 -11339774.364 6 21952614.199 21952613.228 21952613.851
+ 43.000 39.300
+ -285104.930 3 -222152.146 2 24631014.474 24631012.787 24631012.768
+ 22.100 12.600
+ -2155889.048 4 -1679912.137 2 24282823.670 24282818.856 24282822.104
+ 28.600 17.800
+ -10027990.636 6 -7814005.117 5 22525456.912 22525457.083 22525456.008
+ 38.900 32.600
+ -1812361.228 2 -1412227.351 4 24117237.802 24117239.889 24117237.744
+ 13.900 27.100
+ 06 1 2 20 31 30.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20196285.124 7 -15737352.986 7 20970276.719 20970273.400 20970275.902
+ 45.200 43.600
+ -22429820.208 7 -17477764.051 7 20172469.998 20172469.103 20172469.583
+ 45.900 47.200
+ -12044294.352 6 -9385157.638 5 22100523.186 22100522.583 22100522.049
+ 39.600 34.500
+ -12072262.603 7 -9406951.204 6 21070592.906 21070592.237 21070591.860
+ 44.800 40.300
+ -454272.242 2 -353977.694 1 24545913.487 24545913.166 24545914.062
+ 17.800 11.000
+ -14477109.164 7 -11280858.558 6 21967001.837 21967000.881 21967001.690
+ 42.900 38.600
+ -183559.280 3 -143025.675 1 24650336.732 24650335.904 24650335.572
+ 22.600 11.000
+ -2194115.680 5 -1709699.092 3 24275548.863 24275544.951 24275547.664
+ 30.400 21.100
+ -9947534.836 6 -7751312.294 5 22540767.585 22540767.004 22540766.593
+ 39.000 32.100
+ -1902760.185 2 -1482667.933 3 24100036.013 24100038.163 24100035.614
+ 17.000 23.000
+ 06 1 2 20 32 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20254364.806 7 -15782609.865 7 20959224.527 20959221.323 20959223.697
+ 44.900 43.800
+ -22409502.322 7 -17461931.925 7 20176336.463 20176335.445 20176336.027
+ 45.900 47.100
+ -12086475.697 6 -9418026.192 5 22092496.325 22092495.695 22092495.170
+ 39.200 34.300
+ -12024043.436 7 -9369377.850 6 21079769.016 21079768.028 21079767.775
+ 44.900 40.100
+ -535609.384 3 -417357.273 2 24530434.687 24530435.603 24530435.764
+ 18.600 12.600
+ -14401212.338 7 -11221718.198 6 21981445.368 21981443.889 21981444.515
+ 43.100 39.200
+ -2231860.978 4 -1739110.975 3 24268365.942 24268362.892 24268364.638
+ 29.200 22.100
+ -9866946.510 6 -7688516.198 5 22556102.560 22556102.540 22556101.760
+ 38.900 31.300
+ -1992810.782 4 -1552837.123 3 24082900.925 24082902.268 24082900.669
+ 24.200 23.800
+ 06 1 2 20 32 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20312102.658 7 -15827600.381 7 20948237.167 20948234.105 20948236.469
+ 45.100 43.800
+ -22388796.963 7 -17445797.871 7 20180276.606 20180275.521 20180276.096
+ 45.700 47.100
+ -12128097.546 6 -9450458.782 5 22084575.886 22084575.399 22084574.620
+ 39.100 35.300
+ -11975479.571 7 -9331535.895 6 21089010.239 21089009.271 21089009.276
+ 45.200 40.000
+ -616705.572 3 -480549.068 2 24515005.829 24515004.289 24515004.154
+ 19.300 12.600
+ -14325027.575 7 -11162353.478 6 21995942.530 21995941.280 21995941.903
+ 42.900 38.900
+ -2269122.860 4 -1768146.198 3 24261275.426 24261271.578 24261273.659
+ 28.100 21.100
+ -9786227.167 6 -7625618.018 5 22571463.119 22571462.871 22571462.152
+ 39.000 31.600
+ -2082510.302 4 -1622732.808 3 24065831.645 24065833.088 24065831.235
+ 24.600 21.600
+ 06 1 2 20 33 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20369497.902 7 -15872323.931 7 20937314.998 20937312.147 20937314.205
+ 44.600 43.900
+ -22367705.353 7 -17429362.845 7 20184290.107 20184289.102 20184289.632
+ 45.800 47.000
+ -12169158.497 6 -9482454.307 5 22076762.134 22076761.688 22076760.944
+ 39.200 35.100
+ -11926571.113 7 -9293425.410 6 21098317.527 21098316.321 21098316.218
+ 44.900 40.100
+ -697557.484 3 -543550.551 1 24499618.906 24499617.992 24499618.910
+ 20.500 9.000
+ -14248555.674 7 -11102765.000 6 22010494.188 22010493.245 22010494.080
+ 43.200 38.300
+ -2305899.341 4 -1796803.149 3 24254277.109 24254273.324 24254275.806
+ 29.900 21.100
+ -9705378.152 6 -7562618.776 5 22586848.015 22586848.251 22586847.175
+ 39.100 31.600
+ -2171856.187 4 -1692352.912 3 24048829.688 24048830.864 24048829.552
+ 29.200 19.300
+ 06 1 2 20 33 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20426550.391 7 -15916780.395 7 20926458.555 20926455.453 20926457.695
+ 44.700 43.900
+ -22346228.416 7 -17412627.560 7 20188376.854 20188375.998 20188376.449
+ 45.800 46.900
+ -12209657.067 6 -9514011.620 5 22069055.642 22069055.085 22069054.564
+ 40.100 34.900
+ -11877318.277 7 -9255046.592 6 21107689.561 21107688.957 21107688.586
+ 44.800 40.200
+ -778162.204 3 -606359.369 3 24484279.932 24484280.020 24484279.617
+ 21.600 18.600
+ -14171798.017 7 -11042953.862 6 22025101.434 22025099.831 22025100.516
+ 42.600 38.100
+ -2342188.447 5 -1825080.371 3 24247371.368 24247367.527 24247370.397
+ 30.600 18.600
+ -9624400.510 6 -7499519.328 5 22602257.570 22602257.637 22602256.641
+ 38.600 32.300
+ -2260845.605 4 -1761695.272 3 24031895.704 24031895.777 24031895.392
+ 27.400 18.600
+ 06 1 2 20 34 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20483259.536 7 -15960969.316 7 20915667.025 20915663.960 20915666.206
+ 44.700 44.100
+ -22324367.296 7 -17395592.915 7 20192536.943 20192536.001 20192536.455
+ 45.600 46.900
+ -12249591.796 6 -9545129.576 5 22061456.517 22061455.676 22061455.470
+ 40.700 35.100
+ -11827721.258 7 -9216399.575 6 21117127.960 21117127.007 21117126.660
+ 44.600 40.100
+ -858516.338 4 -668972.955 3 24468990.205 24468988.811 24468989.584
+ 24.200 20.500
+ -14094754.852 7 -10982920.268 6 22039762.238 22039760.895 22039761.485
+ 42.500 38.500
+ -2377988.462 4 -1852976.425 3 24240558.831 24240554.918 24240557.425
+ 29.900 21.600
+ -9543295.585 6 -7436320.690 5 22617691.494 22617691.387 22617690.436
+ 38.300 31.600
+ -2349475.894 4 -1830757.805 2 24015029.960 24015028.832 24015029.455
+ 28.400 13.900
+ 06 1 2 20 34 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20539624.741 7 -16004890.231 7 20904941.212 20904938.053 20904940.392
+ 44.900 44.300
+ -22302123.451 7 -17378260.042 7 20196769.671 20196768.873 20196769.310
+ 45.800 46.900
+ -12288961.310 6 -9575807.109 5 22053964.481 22053963.942 22053963.532
+ 40.500 34.700
+ -11777780.132 7 -9177484.433 6 21126631.086 21126630.419 21126630.032
+ 44.400 39.900
+ -938616.466 3 -731388.608 3 24453747.198 24453746.405 24453746.706
+ 23.000 20.500
+ -14017426.749 7 -10922664.634 6 22054476.580 22054475.829 22054476.538
+ 42.500 38.300
+ -2413297.157 5 -1880489.643 3 24233839.856 24233836.786 24233838.670
+ 31.300 23.800
+ -9462064.957 6 -7373024.109 5 22633149.496 22633148.980 22633148.387
+ 38.500 30.800
+ -2437744.479 4 -1899538.523 1 23998233.014 23998232.160 23998232.528
+ 27.600 11.000
+ 06 1 2 20 35 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20595645.258 7 -16048542.557 7 20894280.845 20894277.640 20894280.053
+ 45.200 44.200
+ -22279497.785 7 -17360629.647 7 20201075.248 20201074.468 20201074.882
+ 45.800 46.900
+ -12327764.204 6 -9606043.122 5 22046580.279 22046580.181 22046579.275
+ 40.000 35.500
+ -11727495.246 7 -9138301.433 6 21136200.114 21136199.237 21136198.966
+ 44.400 39.800
+ -1018459.421 3 -793603.888 3 24438553.318 24438553.446 24438552.648
+ 20.500 20.500
+ -13939815.007 7 -10862187.978 6 22069245.919 22069244.962 22069245.610
+ 42.300 38.100
+ -2448112.745 5 -1907618.643 3 24227215.219 24227211.493 24227213.853
+ 31.600 21.100
+ -9380709.643 6 -7309630.366 5 22648631.057 22648630.580 22648630.126
+ 38.500 31.300
+ -2525648.539 4 -1968035.189 3 23981505.071 23981505.296 23981504.656
+ 27.100 19.300
+ 06 1 2 20 35 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20651320.547 7 -16091925.874 7 20883686.394 20883682.968 20883685.597
+ 45.400 44.400
+ -22256491.488 7 -17342702.657 7 20205453.209 20205452.466 20205452.801
+ 45.800 47.000
+ -12365999.132 6 -9635836.560 5 22039304.733 22039304.216 22039303.637
+ 40.500 35.300
+ -11676866.763 7 -9098850.700 6 21145834.638 21145833.531 21145833.368
+ 44.200 39.600
+ -1098042.311 3 -855616.485 3 24423408.695 24423408.980 24423408.523
+ 19.300 19.900
+ -13861919.980 6 -10801490.589 6 22084069.651 22084067.829 22084068.605
+ 41.900 38.100
+ -2482433.262 5 -1934361.857 3 24220683.123 24220679.623 24220682.032
+ 30.200 22.100
+ -9299231.291 6 -7246140.753 5 22664135.609 22664135.471 22664134.641
+ 38.400 31.800
+ -2613185.420 4 -2036245.659 3 23964846.833 23964847.088 23964846.760
+ 27.400 18.600
+ 06 1 2 20 36 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20706650.075 7 -16135039.770 7 20873157.478 20873154.116 20873156.654
+ 45.500 44.400
+ -22233105.900 7 -17324480.119 7 20209903.298 20209902.541 20209902.963
+ 46.000 46.900
+ -12403664.681 6 -9665186.317 5 22032137.347 22032136.718 22032136.045
+ 40.300 35.700
+ -11625894.862 7 -9059132.363 6 21155533.857 21155533.215 21155532.943
+ 44.500 39.900
+ -1177361.552 2 -917423.656 2 24408315.254 24408314.456 24408314.501
+ 17.800 16.100
+ -13783742.722 6 -10740573.276 6 22098945.518 22098944.440 22098945.096
+ 41.700 37.600
+ -2516256.940 5 -1960717.925 3 24214247.604 24214243.585 24214246.008
+ 30.600 22.600
+ -9217631.004 6 -7182556.134 5 22679663.146 22679663.140 22679662.459
+ 38.100 31.000
+ -2700352.415 4 -2104167.964 3 23948259.469 23948259.727 23948259.476
+ 26.200 20.500
+ 06 1 2 20 36 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20761633.254 7 -16177883.783 7 20862694.447 20862691.062 20862693.660
+ 45.600 44.400
+ -22209342.129 7 -17305962.894 7 20214425.655 20214424.620 20214425.154
+ 45.900 47.000
+ -12440759.602 6 -9694091.426 6 22025078.420 22025078.008 22025077.162
+ 40.300 36.600
+ -11574579.836 7 -9019146.653 6 21165299.621 21165298.257 21165298.100
+ 44.100 39.800
+ -1256413.790 3 -979022.767 2 24393271.010 24393271.648 24393271.206
+ 19.900 16.100
+ -13705283.947 6 -10679436.586 6 22113875.041 22113874.818 22113875.445
+ 41.700 38.100
+ -2549582.032 5 -1986685.497 3 24207905.807 24207901.777 24207904.352
+ 30.200 18.600
+ -9135910.483 6 -7118877.813 5 22695214.302 22695214.178 22695213.445
+ 37.900 31.100
+ -2787146.941 4 -2171799.986 3 23931744.556 23931744.250 23931743.861
+ 25.900 23.800
+ 06 1 2 20 37 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20816269.616 7 -16220457.547 7 20852297.438 20852294.229 20852296.629
+ 45.500 44.700
+ -22185201.368 7 -17287151.911 7 20219019.433 20219018.461 20219018.971
+ 45.900 47.000
+ -12477282.556 6 -9722550.844 6 22018127.981 22018128.041 22018126.898
+ 40.200 36.900
+ -11522921.783 7 -8978893.643 6 21175128.985 21175128.395 21175128.082
+ 44.200 39.400
+ -1335195.888 3 -1040411.399 2 24378279.905 24378279.272 24378279.863
+ 21.600 13.900
+ -13626544.519 6 -10618081.221 6 22128860.220 22128858.544 22128859.072
+ 41.500 38.400
+ -2582406.517 4 -2012263.008 3 24201659.251 24201655.173 24201657.653
+ 29.700 19.300
+ -9054070.923 6 -7055106.745 5 22710788.041 22710787.736 22710787.114
+ 37.800 31.300
+ -2873566.157 4 -2239139.572 4 23915298.573 23915298.835 23915298.137
+ 24.600 24.900
+ 06 1 2 20 37 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20870558.780 7 -16262760.764 7 20841966.508 20841963.253 20841965.666
+ 45.400 44.700
+ -22160684.831 7 -17268048.118 7 20223684.474 20223683.775 20223684.145
+ 45.700 47.000
+ -12513232.257 6 -9750563.576 6 22011287.035 22011287.059 22011285.998
+ 40.500 36.600
+ -11470921.065 7 -8938373.604 6 21185024.698 21185023.912 21185023.569
+ 44.200 39.500
+ -1413704.839 3 -1101587.154 1 24363340.338 24363339.643 24363340.215
+ 23.000 11.000
+ -13547525.190 6 -10556507.760 6 22143897.160 22143895.412 22143896.086
+ 41.900 38.400
+ -2614728.805 4 -2037449.159 3 24195507.742 24195504.806 24195507.101
+ 29.500 21.600
+ -8972113.529 6 -6991243.854 5 22726384.013 22726383.625 22726383.084
+ 38.200 31.100
+ -2959607.511 4 -2306184.727 4 23898925.155 23898926.050 23898925.130
+ 25.600 25.300
+ 06 1 2 20 38 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20924500.108 7 -16304792.948 7 20831701.603 20831698.507 20831700.838
+ 45.300 44.700
+ -22135793.669 7 -17248652.409 7 20228421.110 20228420.388 20228420.773
+ 45.900 46.800
+ -12548607.386 6 -9778128.589 6 22004555.294 22004555.073 22004554.305
+ 40.900 36.300
+ -11418577.822 7 -8897586.686 6 21194985.524 21194984.633 21194984.173
+ 44.000 39.600
+ -1491937.340 3 -1162547.514 2 24348452.915 24348452.481 24348452.850
+ 20.500 15.100
+ -13468226.816 6 -10494716.849 6 22158985.898 22158985.299 22158986.055
+ 41.800 37.600
+ -2646547.029 4 -2062242.583 3 24189454.176 24189449.583 24189452.576
+ 29.000 18.600
+ -8890039.494 6 -6927290.076 5 22742002.075 22742002.065 22742001.175
+ 37.800 31.100
+ -3045268.314 4 -2372933.328 4 23882625.139 23882625.286 23882624.727
+ 27.900 28.100
+ 06 1 2 20 38 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20978093.151 7 -16346553.738 7 20821503.088 20821499.940 20821502.401
+ 45.400 44.600
+ -22110528.968 7 -17228965.630 7 20233229.002 20233228.164 20233228.547
+ 45.700 47.000
+ -12583406.880 6 -9805245.056 6 21997933.447 21997932.815 21997932.281
+ 41.000 36.000
+ -11365892.444 7 -8856533.152 6 21205010.842 21205010.284 21205009.782
+ 44.200 39.300
+ -1569890.151 3 -1223289.881 2 24333619.353 24333618.100 24333618.970
+ 21.600 16.100
+ -13388650.203 6 -10432709.122 6 22174129.906 22174128.367 22174129.076
+ 41.900 37.900
+ -2677859.344 4 -2086641.729 3 24183494.618 24183491.351 24183493.654
+ 28.100 21.600
+ -8807850.241 6 -6863246.511 5 22757641.939 22757642.102 22757641.152
+ 38.400 31.100
+ -3130545.953 4 -2439383.361 4 23866396.875 23866397.124 23866396.426
+ 26.500 26.800
+ 06 1 2 20 39 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21031337.361 7 -16388042.720 7 20811371.394 20811367.981 20811370.633
+ 45.800 44.700
+ -22084892.102 7 -17208988.855 7 20238107.541 20238106.713 20238107.079
+ 45.700 46.800
+ -12617629.363 6 -9831911.911 5 21991421.115 21991420.367 21991419.964
+ 41.100 35.700
+ -11312865.087 7 -8815213.144 6 21215101.940 21215100.909 21215100.652
+ 44.100 39.200
+ -1647560.032 3 -1283811.773 2 24318838.085 24318837.614 24318838.004
+ 19.300 17.000
+ -13308796.002 6 -10370485.106 6 22189325.944 22189324.308 22189324.774
+ 41.400 38.100
+ -2708663.951 4 -2110645.323 3 24177632.696 24177629.105 24177631.769
+ 28.600 19.900
+ -8725546.849 6 -6799114.009 5 22773303.627 22773304.126 22773302.741
+ 37.200 31.100
+ -3215437.707 4 -2505532.739 4 23850242.531 23850242.592 23850242.107
+ 24.900 26.200
+ 06 1 2 20 39 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21084232.134 7 -16429259.410 7 20801305.629 20801302.404 20801304.903
+ 45.700 44.900
+ -22058884.148 7 -17188722.919 7 20243056.248 20243055.818 20243056.030
+ 45.800 46.900
+ -12651273.652 6 -9858128.231 5 21985018.618 21985017.928 21985017.517
+ 41.100 35.300
+ -11259496.140 7 -8773626.957 6 21225257.434 21225256.658 21225256.406
+ 44.000 39.300
+ -1724943.886 3 -1344110.835 2 24304112.708 24304112.430 24304112.589
+ 19.300 17.800
+ -13228665.013 6 -10308045.406 6 22204573.832 22204572.509 22204573.042
+ 41.200 37.300
+ -2738959.326 4 -2134252.052 3 24171867.531 24171863.465 24171866.246
+ 26.200 18.600
+ -8643130.688 6 -6734893.634 5 22788987.673 22788987.061 22788986.574
+ 37.900 30.800
+ -3299941.032 4 -2571379.381 4 23834161.700 23834162.283 23834161.239
+ 25.600 26.500
+ 06 1 2 20 40 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21136777.044 7 -16470203.475 7 20791306.801 20791303.500 20791306.083
+ 45.700 45.200
+ -22032506.411 7 -17168168.835 7 20248075.897 20248075.341 20248075.607
+ 45.800 46.700
+ -12684338.610 6 -9883893.126 5 21978726.777 21978725.977 21978725.680
+ 41.400 35.500
+ -11205785.885 7 -8731774.816 6 21235478.554 21235477.651 21235477.248
+ 43.800 39.500
+ -1802038.281 3 -1404184.304 3 24289442.913 24289441.964 24289442.475
+ 20.500 21.100
+ -13148258.552 6 -10245391.050 6 22219873.951 22219873.488 22219874.079
+ 41.400 37.000
+ -2768743.481 4 -2157460.457 2 24166199.605 24166195.807 24166198.610
+ 26.800 17.800
+ -8560603.018 6 -6670586.368 5 22804691.935 22804691.501 22804690.709
+ 37.200 31.000
+ -3384053.223 4 -2636921.308 4 23818155.211 23818156.261 23818154.886
+ 25.900 24.600
+ 06 1 2 20 40 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21188971.659 7 -16510874.590 7 20781374.551 20781371.214 20781373.714
+ 45.700 45.200
+ -22005759.953 7 -17147327.441 7 20253165.786 20253165.047 20253165.416
+ 45.900 46.800
+ -12716823.150 6 -9909205.737 5 21972545.320 21972544.369 21972544.136
+ 41.200 35.600
+ -11151734.581 7 -8689656.916 6 21245763.842 21245763.179 21245762.806
+ 44.000 39.500
+ -1878840.069 3 -1464029.773 3 24274828.379 24274827.096 24274827.605
+ 23.000 19.300
+ -13067577.020 6 -10182522.359 6 22235227.885 22235226.702 22235227.331
+ 41.200 37.200
+ -2798014.741 4 -2180269.228 3 24160630.359 24160625.739 24160628.490
+ 28.600 21.100
+ -8477965.254 6 -6606193.319 5 22820417.146 22820416.764 22820416.233
+ 37.200 30.100
+ -3467771.785 4 -2702156.483 4 23802224.585 23802225.372 23802224.283
+ 29.500 26.500
+ 06 1 2 20 41 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21240815.485 7 -16551272.358 7 20771508.745 20771505.692 20771508.046
+ 45.500 45.300
+ -21978646.105 7 -17126199.761 7 20258325.467 20258324.620 20258325.065
+ 46.100 46.800
+ -12748726.100 6 -9934065.164 5 21966473.926 21966473.458 21966472.805
+ 40.800 35.600
+ -11097342.481 7 -8647273.455 6 21256114.407 21256113.728 21256113.289
+ 44.300 39.400
+ -1955346.414 4 -1523645.047 2 24260269.391 24260268.165 24260268.848
+ 24.200 17.800
+ -12986621.438 6 -10119440.117 6 22250633.705 22250631.983 22250632.640
+ 40.900 37.200
+ -2826771.680 5 -2202677.197 3 24155157.921 24155153.583 24155156.932
+ 30.800 18.600
+ -8395218.561 6 -6541715.369 5 22836163.144 22836163.077 22836162.372
+ 37.500 30.200
+ -3551093.925 4 -2767082.772 4 23786368.717 23786369.549 23786368.298
+ 28.600 24.600
+ 06 1 2 20 41 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21292307.787 7 -16591396.216 7 20761710.008 20761706.964 20761709.237
+ 45.300 45.400
+ -21951166.023 7 -17104786.703 7 20263554.831 20263553.872 20263554.465
+ 46.400 46.700
+ -12780046.175 6 -9958470.400 6 21960513.612 21960513.584 21960512.607
+ 40.600 36.000
+ -11042609.922 7 -8604624.718 6 21266530.023 21266528.915 21266528.667
+ 44.000 39.500
+ -2031553.822 3 -1583027.413 2 24245767.101 24245766.018 24245766.921
+ 22.100 16.100
+ -12905392.681 6 -10056145.016 6 22266090.669 22266089.198 22266089.915
+ 41.200 36.900
+ -2855012.523 4 -2224683.059 3 24149783.968 24149780.208 24149782.663
+ 29.900 21.100
+ -8312363.958 6 -6477153.344 5 22851929.885 22851930.199 22851929.002
+ 37.200 30.200
+ -3634016.973 4 -2831698.097 3 23770588.712 23770589.033 23770588.647
+ 28.600 20.500
+ 06 1 2 20 42 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21343448.407 7 -16631246.034 7 20751978.499 20751975.207 20751977.621
+ 45.300 45.400
+ -21923320.893 7 -17083089.198 7 20268853.563 20268852.617 20268853.173
+ 46.400 46.700
+ -12810782.442 6 -9982420.712 6 21954665.018 21954664.436 21954664.012
+ 41.000 36.000
+ -10987537.154 7 -8561710.874 6 21277009.367 21277009.006 21277008.570
+ 44.000 39.300
+ -2107459.129 3 -1642174.327 2 24231322.111 24231322.277 24231322.120
+ 22.100 17.800
+ -12823891.688 6 -9992637.769 6 22281599.018 22281598.310 22281599.049
+ 41.000 37.200
+ -2882735.750 4 -2246285.513 3 24144508.354 24144504.202 24144506.924
+ 28.800 19.900
+ -8229402.909 6 -6412508.370 5 22867717.322 22867717.376 22867716.257
+ 37.200 30.600
+ -3716538.413 4 -2896000.466 3 23754885.736 23754884.797 23754885.543
+ 27.900 20.500
+ 06 1 2 20 42 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21394236.584 7 -16670821.223 7 20742313.778 20742310.488 20742312.918
+ 45.500 45.500
+ -21895112.050 7 -17061108.276 7 20274221.451 20274220.625 20274221.039
+ 46.300 46.600
+ -12840933.817 6 -10005915.260 5 21948927.465 21948926.907 21948926.437
+ 41.200 35.900
+ -10932124.543 7 -8518532.213 6 21287554.538 21287553.593 21287553.177
+ 43.700 39.000
+ -2183059.211 3 -1701083.452 2 24216936.132 24216935.447 24216936.073
+ 22.600 12.600
+ -12742119.315 6 -9928919.046 6 22297159.870 22297159.313 22297159.796
+ 41.100 37.700
+ -2909939.731 4 -2267483.444 3 24139331.491 24139328.201 24139330.333
+ 29.900 22.100
+ -8146336.528 6 -6347781.332 4 22883523.714 22883523.953 22883522.881
+ 36.500 29.900
+ -3798655.752 4 -2959987.917 3 23739259.390 23739258.726 23739258.702
+ 25.900 19.900
+ 06 1 2 20 43 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21444672.095 7 -16710121.616 7 20732716.042 20732712.871 20732715.303
+ 45.500 45.300
+ -21866540.709 7 -17038844.891 7 20279658.437 20279657.524 20279657.953
+ 46.000 46.600
+ -12870499.277 6 -10028953.260 6 21943301.553 21943300.860 21943300.396
+ 41.200 36.200
+ -10876372.462 7 -8475089.036 6 21298163.741 21298162.927 21298162.452
+ 43.600 39.200
+ -2258350.786 3 -1759752.175 2 24202608.590 24202608.232 24202608.606
+ 22.100 17.000
+ -12660076.177 6 -9864989.356 6 22312773.451 22312771.564 22312772.143
+ 41.000 37.400
+ -2936622.641 5 -2288275.286 3 24134254.471 24134249.988 24134252.944
+ 30.600 22.100
+ -8063166.329 6 -6282973.377 4 22899350.650 22899350.474 22899349.781
+ 36.800 29.200
+ -3880366.194 4 -3023658.318 3 23723710.362 23723710.179 23723709.952
+ 25.900 22.100
+ 06 1 2 20 43 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21494754.563 7 -16749146.900 7 20723185.908 20723182.545 20723185.069
+ 45.500 45.400
+ -21837607.805 7 -17016299.767 7 20285164.203 20285163.309 20285163.756
+ 46.100 46.600
+ -12899477.771 6 -10051533.875 5 21937786.633 21937786.196 21937785.627
+ 41.300 35.800
+ -10820281.363 7 -8431381.686 6 21308837.131 21308836.767 21308836.173
+ 43.600 39.300
+ -2333330.861 4 -1818178.164 3 24188341.557 24188340.160 24188341.167
+ 24.200 19.300
+ -12577763.374 6 -9800849.534 6 22328436.590 22328435.176 22328435.654
+ 40.500 36.900
+ -2962783.090 4 -2308660.054 3 24129275.498 24129271.761 24129274.394
+ 29.200 21.600
+ -7979893.354 6 -6218085.352 5 22915196.723 22915197.038 22915195.952
+ 36.300 30.100
+ -3961667.289 4 -3087009.749 3 23708238.706 23708238.323 23708238.375
+ 27.100 19.900
+ 06 1 2 20 44 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21544483.203 7 -16787896.484 7 20713722.802 20713719.528 20713722.040
+ 45.700 45.500
+ -21808315.110 7 -16993474.290 7 20290738.167 20290737.600 20290737.852
+ 46.100 46.700
+ -12927868.305 6 -10073656.347 6 21932384.358 21932383.770 21932383.258
+ 41.400 36.300
+ -10763851.391 7 -8387410.283 6 21319575.501 21319575.001 21319574.383
+ 42.900 38.900
+ -2407996.278 3 -1876358.955 3 24174132.784 24174131.669 24174132.057
+ 20.500 19.900
+ -12495181.803 6 -9736500.282 6 22344150.848 22344150.000 22344150.651
+ 40.700 37.100
+ -2988419.344 4 -2328636.325 3 24124396.814 24124393.559 24124395.778
+ 29.500 23.000
+ -7896518.631 6 -6153118.041 5 22931063.274 22931062.611 22931062.348
+ 36.500 30.100
+ -4042556.414 4 -3150040.166 3 23692845.999 23692846.321 23692845.743
+ 26.200 23.400
+ 06 1 2 20 44 30.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21593857.697 7 -16826370.103 7 20704327.263 20704323.882 20704326.420
+ 45.900 45.700
+ -21778663.331 7 -16970369.003 7 20296380.844 20296380.082 20296380.487
+ 46.300 46.600
+ -12955669.976 6 -10095319.959 6 21927093.617 21927093.327 21927092.655
+ 41.500 36.100
+ -10707083.020 7 -8343175.201 6 21330378.066 21330377.720 21330376.970
+ 43.100 38.900
+ -2482343.879 3 -1934292.105 3 24159984.282 24159983.390 24159984.013
+ 21.600 18.600
+ -12412331.960 6 -9671941.970 6 22359916.513 22359915.857 22359916.395
+ 40.300 36.900
+ -3013530.140 4 -2348203.135 3 24119618.519 24119615.134 24119617.236
+ 28.100 22.600
+ -7813043.583 6 -6088072.550 4 22946947.891 22946947.459 22946946.907
+ 36.100 29.500
+ -4123031.054 4 -3212747.597 3 23677532.850 23677532.718 23677532.394
+ 29.000 23.800
+ 06 1 2 20 45 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21642877.782 7 -16864567.565 7 20694998.879 20694995.657 20694998.090
+ 45.800 45.800
+ -21748653.811 7 -16946984.960 7 20302091.554 20302090.624 20302091.131
+ 46.100 46.600
+ -12982881.736 6 -10116523.905 6 21921915.678 21921914.916 21921914.598
+ 41.600 36.200
+ -10649976.581 7 -8298676.684 6 21341245.374 21341244.699 21341244.096
+ 43.200 38.900
+ -2556370.263 3 -1991974.945 3 24145898.072 24145896.802 24145897.578
+ 23.000 18.600
+ -12329215.390 6 -9607175.815 6 22375733.334 22375732.467 22375732.898
+ 40.000 36.700
+ -3038114.138 5 -2367359.489 3 24114941.179 24114936.577 24114939.932
+ 30.400 23.400
+ -7729469.595 6 -6022949.969 5 22962851.277 22962851.570 22962850.400
+ 36.500 31.000
+ -4203088.613 4 -3275130.051 4 23662298.218 23662298.185 23662297.713
+ 27.900 24.600
+ 06 1 2 20 45 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21691542.639 7 -16902488.217 7 20685738.253 20685734.895 20685737.484
+ 46.000 45.600
+ -21718287.844 7 -16923323.168 7 20307870.052 20307869.123 20307869.632
+ 46.300 46.600
+ -13009502.665 6 -10137267.452 6 21916849.916 21916849.157 21916848.778
+ 41.600 36.300
+ -10592532.322 7 -8253914.932 6 21352176.687 21352175.979 21352175.531
+ 43.100 38.800
+ -209599.655 3 -163324.088 3 24476911.659 24476912.358 24476909.997
+ 23.800 19.300
+ -2630072.485 3 -2049405.193 2 24131872.463 24131871.563 24131872.489
+ 23.800 13.900
+ -12245832.787 6 -9542202.383 6 22391601.328 22391599.620 22391599.964
+ 39.400 36.500
+ -3062169.466 4 -2386103.885 3 24110362.740 24110359.342 24110361.417
+ 28.800 23.000
+ -7645797.661 6 -5957751.058 4 22978773.681 22978773.403 22978772.597
+ 36.300 28.800
+ -4282726.409 4 -3337185.436 4 23647144.037 23647143.688 23647143.537
+ 29.200 25.900
+ 06 1 2 20 46 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21739851.912 7 -16940131.796 7 20676545.386 20676542.014 20676544.587
+ 46.100 45.700
+ -21687566.818 7 -16899384.701 7 20313716.058 20313715.213 20313715.636
+ 46.300 46.600
+ -13035531.877 6 -10157549.930 5 21911896.529 21911895.657 21911895.428
+ 41.300 35.800
+ -10534750.873 7 -8208890.440 6 21363171.803 21363171.395 21363170.817
+ 43.000 38.900
+ -330435.198 3 -257481.560 3 24453917.165 24453917.952 24453915.434
+ 20.500 19.900
+ -2703447.374 4 -2106580.406 2 24117909.660 24117908.650 24117909.683
+ 25.900 13.900
+ -12162185.160 6 -9477022.418 6 22407518.658 22407517.094 22407517.723
+ 39.700 36.500
+ -3085694.838 4 -2404435.316 3 24105886.189 24105882.545 24105884.884
+ 29.900 22.600
+ -7562028.517 6 -5892476.394 4 22994713.550 22994714.192 22994712.982
+ 36.600 29.200
+ -4361942.039 4 -3398911.828 4 23632068.771 23632068.889 23632068.681
+ 28.100 25.600
+ 06 1 2 20 46 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21787805.459 7 -16977498.181 7 20667420.194 20667416.647 20667419.339
+ 45.900 45.700
+ -21656491.706 7 -16875170.325 7 20319629.392 20319628.547 20319629.004
+ 46.600 46.500
+ -13060968.517 6 -10177370.670 5 21907055.972 21907055.087 21907055.005
+ 41.700 35.500
+ -10476632.602 7 -8163603.469 6 21374231.987 21374230.839 21374230.542
+ 42.900 38.400
+ -451204.135 3 -351587.089 3 24430934.355 24430936.874 24430932.896
+ 20.500 22.100
+ -2776491.744 3 -2163498.057 2 24104008.445 24104009.157 24104009.092
+ 22.100 17.800
+ -12078272.867 6 -9411636.239 6 22423485.992 22423485.119 22423485.638
+ 39.500 36.300
+ -3108688.898 5 -2422352.734 4 24101510.939 24101507.128 24101509.653
+ 30.100 25.600
+ -7478163.894 5 -5827127.353 4 23010673.171 23010673.404 23010672.064
+ 35.700 29.500
+ -4440733.058 4 -3460307.361 4 23617074.426 23617075.969 23617074.192
+ 26.200 26.500
+ 06 1 2 20 47 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21835402.677 7 -17014586.910 7 20658362.362 20658359.185 20658361.718
+ 46.000 45.900
+ -21625063.774 7 -16850681.028 7 20325610.090 20325609.067 20325609.603
+ 46.700 46.400
+ -13085811.700 6 -10196728.980 5 21902328.793 21902327.479 21902327.694
+ 41.800 35.400
+ -10418177.729 7 -8118054.217 6 21385355.345 21385354.357 21385353.961
+ 42.600 38.000
+ -571904.205 3 -445639.014 3 24407967.060 24407967.967 24407965.477
+ 23.400 18.600
+ -2849202.623 3 -2220155.807 3 24090173.515 24090172.443 24090173.341
+ 22.600 19.300
+ -11994097.215 6 -9346044.840 6 22439503.966 22439503.327 22439503.793
+ 39.700 36.200
+ -3131150.165 5 -2439855.016 4 24097236.123 24097233.135 24097235.192
+ 30.100 25.900
+ -7394204.790 5 -5761704.680 5 23026650.132 23026650.165 23026649.233
+ 35.600 30.100
+ -4519096.696 4 -3521369.887 4 23602162.820 23602164.008 23602162.376
+ 25.900 27.400
+ 06 1 2 20 47 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21882643.191 7 -17051397.683 7 20649373.072 20649369.664 20649372.258
+ 45.900 46.000
+ -21593284.362 7 -16825917.841 7 20331657.457 20331656.530 20331657.043
+ 46.700 46.400
+ -13110060.609 6 -10215624.213 5 21897714.078 21897713.311 21897713.000
+ 41.600 35.400
+ -10359386.805 7 -8072243.107 6 21396542.489 21396541.978 21396541.471
+ 42.900 38.300
+ -692532.850 2 -539635.301 3 24385009.987 24385012.795 24385009.690
+ 13.900 19.900
+ -2921576.823 3 -2276551.218 2 24076401.059 24076400.370 24076400.515
+ 22.100 16.100
+ -11909659.078 6 -9280248.934 6 22455572.383 22455571.726 22455571.891
+ 39.700 36.500
+ -3153077.203 4 -2456940.986 4 24093063.968 24093060.201 24093062.957
+ 29.900 25.600
+ -7310152.373 5 -5696209.308 4 23042644.809 23042644.725 23042643.858
+ 35.300 28.100
+ -4597030.576 4 -3582097.522 4 23587332.677 23587333.345 23587332.469
+ 29.200 24.900
+ 06 1 2 20 48 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21929526.509 7 -17087930.119 7 20640451.411 20640447.966 20640450.613
+ 46.000 45.900
+ -21561154.795 7 -16800881.811 7 20337771.591 20337770.567 20337771.139
+ 46.900 46.400
+ -13133714.351 6 -10234055.678 5 21893212.937 21893212.116 21893211.822
+ 41.500 35.900
+ -10300260.259 7 -8026170.462 6 21407794.259 21407793.220 21407793.019
+ 42.700 37.700
+ -813087.554 2 -633573.876 3 24362069.972 24362072.669 24362069.012
+ 17.000 20.500
+ -2993611.179 4 -2332681.842 3 24062693.263 24062692.560 24062692.897
+ 24.600 18.600
+ -11824959.509 6 -9214249.286 5 22471690.759 22471689.192 22471689.717
+ 39.800 35.800
+ -3174468.320 4 -2473609.350 4 24088992.828 24088989.811 24088991.617
+ 28.100 25.300
+ -7226007.948 6 -5630642.212 4 23058656.880 23058656.268 23058655.932
+ 36.200 28.100
+ -4674532.201 4 -3642488.397 4 23572584.353 23572584.837 23572584.199
+ 27.900 24.900
+ 06 1 2 20 48 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21976052.233 7 -17124183.912 7 20631597.858 20631594.420 20631597.138
+ 46.100 45.900
+ -21528676.204 7 -16775573.814 7 20343952.034 20343951.008 20343951.623
+ 46.800 46.400
+ -13156772.235 6 -10252022.835 5 21888825.056 21888824.283 21888823.987
+ 41.400 35.800
+ -10240798.523 7 -7979836.655 6 21419109.374 21419108.540 21419108.205
+ 42.800 37.900
+ -933565.751 3 -727452.938 2 24339145.370 24339145.637 24339143.802
+ 22.600 17.800
+ -3065302.549 4 -2388545.196 3 24049050.877 24049050.531 24049050.895
+ 25.900 19.300
+ -11739999.255 6 -9148046.461 5 22487858.196 22487856.420 22487856.921
+ 38.800 35.600
+ -3195322.690 4 -2489859.477 4 24085024.334 24085021.171 24085023.081
+ 27.600 25.300
+ -7141772.467 5 -5565004.189 4 23074686.130 23074686.350 23074685.139
+ 34.900 29.200
+ -4751599.064 4 -3702540.466 3 23557919.112 23557919.206 23557919.044
+ 29.000 23.800
+ 06 1 2 20 49 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22022219.858 7 -17160158.666 7 20622812.414 20622808.995 20622811.659
+ 46.000 46.100
+ -21495849.761 7 -16749994.761 7 20350198.680 20350197.647 20350198.254
+ 47.100 46.200
+ -13179233.512 6 -10269525.105 5 21884550.567 21884550.169 21884549.434
+ 41.000 35.500
+ -10181001.962 7 -7933241.932 6 21430488.383 21430487.383 21430487.174
+ 43.000 37.500
+ -1053965.161 3 -821270.588 2 24316232.254 24316234.616 24316230.993
+ 19.300 17.800
+ -3136647.993 3 -2444138.978 3 24035474.023 24035473.373 24035473.379
+ 20.500 20.500
+ -11654779.608 6 -9081641.577 5 22504074.227 22504073.367 22504073.645
+ 38.700 35.800
+ -3215638.918 4 -2505690.275 4 24081158.464 24081155.233 24081157.474
+ 28.800 24.200
+ -7057446.967 5 -5499296.022 4 23090732.796 23090733.020 23090731.815
+ 35.900 29.500
+ -4828228.454 4 -3762251.637 4 23543337.165 23543337.981 23543336.944
+ 29.700 28.100
+ 06 1 2 20 49 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22068029.128 7 -17195854.180 7 20614095.113 20614091.698 20614094.342
+ 45.900 46.100
+ -21462676.770 7 -16724145.672 7 20356511.327 20356510.271 20356510.910
+ 47.100 46.200
+ -13201097.370 6 -10286561.861 5 21880390.250 21880389.445 21880389.199
+ 41.100 35.800
+ -10120870.941 7 -7886386.585 6 21441931.380 21441930.016 21441929.918
+ 43.000 37.800
+ -1174283.189 3 -915024.806 3 24293338.261 24293338.796 24293336.550
+ 21.100 19.900
+ -3207644.386 3 -2499460.783 2 24021962.737 24021962.718 24021962.851
+ 22.600 17.800
+ -11569301.399 6 -9015035.218 5 22520339.518 22520339.588 22520339.695
+ 38.800 35.900
+ -3235415.417 4 -2521100.506 3 24077395.110 24077391.338 24077393.549
+ 27.900 23.800
+ -6973032.692 5 -5433518.664 4 23106796.289 23106796.024 23106795.351
+ 35.600 27.900
+ -4904418.096 4 -3821620.099 4 23528838.875 23528839.468 23528838.471
+ 28.100 26.800
+ 06 1 2 20 50 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22113479.743 7 -17231270.223 7 20605446.176 20605442.796 20605445.437
+ 46.100 46.300
+ -21429158.540 7 -16698027.568 7 20362889.648 20362888.578 20362889.187
+ 47.000 46.200
+ -13222363.113 6 -10303132.549 5 21876343.526 21876342.662 21876342.358
+ 41.300 35.700
+ -10060405.988 7 -7839271.038 6 21453436.768 21453436.188 21453435.687
+ 42.800 37.900
+ -1294517.327 3 -1008713.670 3 24270456.138 24270458.644 24270455.257
+ 22.100 20.500
+ -3278288.818 4 -2554508.362 2 24008520.438 24008519.711 24008520.297
+ 24.200 15.100
+ -11483565.600 6 -8948228.126 5 22536654.954 22536653.975 22536654.460
+ 38.600 34.900
+ -3254651.060 4 -2536089.311 4 24073734.683 24073731.200 24073733.485
+ 29.000 24.900
+ -6888530.900 5 -5367673.124 4 23122876.627 23122876.649 23122875.685
+ 34.500 29.200
+ -4980165.467 4 -3880643.986 4 23514424.157 23514425.259 23514423.713
+ 26.500 28.400
+ 06 1 2 20 50 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22158571.143 7 -17266406.364 7 20596865.587 20596862.123 20596864.801
+ 45.900 46.200
+ -21395296.129 7 -16671641.267 7 20369333.255 20369332.343 20369332.863
+ 46.900 46.200
+ -13243030.053 6 -10319236.636 6 21872410.782 21872409.931 21872409.753
+ 41.500 36.100
+ -9999607.766 7 -7791895.805 6 21465005.777 21465005.640 21465005.114
+ 42.700 37.900
+ -1414665.176 3 -1102335.265 3 24247593.159 24247594.800 24247592.158
+ 20.500 20.500
+ -3348578.107 4 -2609279.201 3 23995144.479 23995144.366 23995144.793
+ 24.600 19.300
+ -11397573.028 6 -8881220.970 5 22553019.797 22553017.937 22553018.513
+ 39.100 34.800
+ -3273344.618 4 -2550655.679 4 24070177.620 24070174.161 24070176.339
+ 29.700 25.300
+ -6803942.735 5 -5301760.280 4 23138973.084 23138972.800 23138972.312
+ 35.400 28.600
+ -5055468.038 4 -3939321.227 4 23500094.845 23500095.434 23500094.776
+ 28.100 27.400
+ 06 1 2 20 51 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22203303.337 7 -17301262.598 7 20588353.183 20588349.826 20588352.498
+ 46.000 46.200
+ -21361090.971 7 -16644987.888 7 20375842.226 20375841.322 20375841.845
+ 46.800 46.100
+ -13263097.556 6 -10334873.641 5 21868591.832 21868591.091 21868590.803
+ 41.400 35.900
+ -9938476.532 7 -7744261.079 6 21476639.448 21476638.325 21476638.201
+ 42.600 37.200
+ -1534723.873 3 -1195887.391 3 24224746.874 24224748.973 24224745.825
+ 22.600 18.600
+ -3418509.047 4 -2663770.827 3 23981838.296 23981836.715 23981837.263
+ 24.900 21.100
+ -11311324.280 6 -8814014.187 5 22569432.331 22569430.800 22569431.538
+ 39.300 35.500
+ -3291494.843 4 -2564798.698 4 24066723.045 24066720.029 24066722.230
+ 27.100 24.600
+ -6719269.312 5 -5235780.990 4 23155086.119 23155085.623 23155085.005
+ 33.900 27.900
+ -5130323.518 4 -3997650.096 4 23485850.285 23485850.716 23485850.285
+ 27.600 24.600
+ 06 1 2 20 51 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22247675.406 7 -17335838.223 7 20579909.625 20579906.188 20579908.882
+ 46.100 46.500
+ -21326544.177 7 -16618068.301 7 20382416.330 20382415.334 20382415.876
+ 46.900 46.000
+ -13282564.903 6 -10350042.993 6 21864887.412 21864886.700 21864886.312
+ 41.600 36.200
+ -9877012.748 7 -7696367.223 6 21488335.820 21488334.565 21488334.530
+ 42.600 37.200
+ -1654690.826 3 -1289367.982 3 24201917.722 24201919.296 24201916.824
+ 22.100 19.900
+ -3488078.684 4 -2717980.910 3 23968598.573 23968598.461 23968598.824
+ 26.200 23.400
+ -11224820.570 6 -8746608.737 5 22585893.009 22585892.057 22585892.488
+ 39.000 35.600
+ -3309100.696 4 -2578517.521 3 24063372.823 24063369.054 24063371.476
+ 27.100 21.600
+ -6634511.617 5 -5169736.047 4 23171214.689 23171214.829 23171213.698
+ 34.600 27.900
+ -5204729.310 4 -4055628.589 4 23471691.483 23471691.316 23471691.145
+ 29.500 24.200
+ 06 1 2 20 52 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22291687.013 7 -17370132.963 7 20571534.510 20571531.089 20571533.732
+ 46.100 46.600
+ -21291657.215 7 -16590883.651 7 20389055.000 20389054.132 20389054.609
+ 47.000 45.800
+ -13301431.510 6 -10364744.241 6 21861297.186 21861296.409 21861296.091
+ 41.500 36.400
+ -9815217.060 7 -7648214.745 6 21500094.723 21500094.148 21500093.706
+ 42.600 37.700
+ -1774563.602 3 -1382775.172 2 24179107.095 24179107.950 24179105.650
+ 22.100 16.100
+ -3557284.005 3 -2771907.087 3 23955429.257 23955429.140 23955428.845
+ 23.400 23.000
+ -11138063.108 6 -8679005.558 5 22602402.009 22602401.343 22602401.929
+ 38.800 35.100
+ -3326160.693 4 -2591811.010 4 24060126.407 24060123.311 24060124.874
+ 25.900 24.900
+ -6549670.898 5 -5103626.403 4 23187359.060 23187359.313 23187358.281
+ 34.900 27.600
+ -5278683.072 5 -4113254.836 3 23457618.686 23457618.257 23457618.162
+ 30.600 23.800
+ 06 1 2 20 52 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22335337.877 7 -17404146.614 7 20563227.986 20563224.680 20563227.230
+ 46.000 46.800
+ -21256431.054 7 -16563434.688 7 20395758.426 20395757.474 20395758.018
+ 47.200 45.900
+ -13319696.774 6 -10378976.902 6 21857821.595 21857820.711 21857820.430
+ 41.900 36.400
+ -9753089.929 7 -7599804.002 6 21511917.174 21511916.595 21511915.981
+ 42.400 37.400
+ -1894339.845 3 -1476107.147 3 24156313.723 24156315.630 24156312.694
+ 19.900 19.300
+ -3626121.947 3 -2825547.003 3 23942332.223 23942329.394 23942330.514
+ 23.800 22.100
+ -11051052.830 6 -8611205.383 5 22618959.906 22618959.176 22618959.357
+ 38.300 35.500
+ -3342673.680 4 -2604678.240 3 24056984.452 24056980.527 24056983.240
+ 28.100 23.800
+ -6464748.307 5 -5037452.962 4 23203519.735 23203519.749 23203518.807
+ 35.100 28.100
+ -5352182.297 4 -4170526.925 4 23443631.572 23443632.247 23443631.372
+ 29.900 26.500
+ 06 1 2 20 53 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22378627.831 7 -17437879.030 7 20554990.064 20554986.843 20554989.232
+ 45.800 46.800
+ -21220867.064 7 -16535722.484 7 20402525.912 20402525.071 20402525.585
+ 47.100 46.000
+ -13337360.166 6 -10392740.580 6 21854460.410 21854459.487 21854459.237
+ 41.800 36.500
+ -9690631.752 7 -7551135.303 6 21523802.680 21523801.978 21523801.422
+ 42.200 37.400
+ -2014017.249 3 -1569362.055 3 24133539.859 24133541.185 24133538.796
+ 23.400 19.900
+ -3694589.456 4 -2878898.278 3 23929300.493 23929300.320 23929300.469
+ 25.600 21.100
+ -10963790.744 6 -8543209.003 5 22635566.227 22635564.621 22635565.159
+ 38.900 35.400
+ -3358638.544 4 -2617118.392 3 24053945.988 24053943.265 24053944.728
+ 28.100 23.800
+ -6379744.595 5 -4971216.308 4 23219695.215 23219695.521 23219694.403
+ 34.300 27.600
+ -5425224.675 5 -4227443.031 4 23429732.614 23429732.798 23429732.374
+ 30.400 27.100
+ 06 1 2 20 53 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22421556.321 7 -17471329.784 7 20546821.205 20546817.721 20546820.368
+ 46.000 46.800
+ -21184966.536 7 -16507748.044 7 20409357.516 20409356.727 20409357.143
+ 47.000 45.800
+ -13354421.084 6 -10406034.796 6 21851213.707 21851212.892 21851212.654
+ 41.800 36.500
+ -9627843.208 6 -7502209.173 6 21535750.798 21535750.348 21535749.660
+ 41.900 37.700
+ -2133593.145 3 -1662537.880 3 24110785.207 24110786.586 24110784.228
+ 23.000 19.900
+ -3762683.401 4 -2931958.467 3 23916342.472 23916341.943 23916342.945
+ 25.300 19.900
+ -10876277.836 6 -8475017.153 5 22652218.291 22652217.513 22652218.177
+ 38.400 34.700
+ -3374054.289 4 -2629130.636 4 24051012.889 24051009.383 24051011.739
+ 28.400 25.900
+ -6294660.978 5 -4904917.389 4 23235886.240 23235886.165 23235885.227
+ 34.100 27.900
+ -5497807.717 5 -4284001.209 4 23415920.665 23415920.309 23415920.596
+ 31.600 25.900
+ 06 1 2 20 54 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22464122.994 7 -17504498.606 7 20538720.985 20538717.564 20538720.140
+ 46.100 46.700
+ -21148730.703 7 -16479512.330 7 20416252.953 20416252.239 20416252.576
+ 47.100 45.900
+ -13370878.999 6 -10418859.132 6 21848081.675 21848081.257 21848080.640
+ 41.600 36.800
+ -9564724.656 6 -7453025.902 6 21547761.600 21547761.570 21547760.662
+ 41.700 37.700
+ -2253064.827 3 -1755632.501 3 24088049.695 24088051.769 24088048.672
+ 23.800 20.500
+ -3830400.693 4 -2984725.185 2 23903457.218 23903455.321 23903456.855
+ 27.100 17.800
+ -10788515.212 6 -8406630.714 5 22668918.864 22668918.204 22668918.682
+ 38.100 34.300
+ -3388919.712 4 -2640714.062 4 24048183.650 24048180.305 24048182.331
+ 27.600 24.900
+ -6209498.519 5 -4838557.039 4 23252092.446 23252091.949 23252091.383
+ 34.100 27.400
+ -5569929.070 5 -4340199.604 4 23402196.353 23402196.566 23402195.951
+ 30.600 28.800
+ 06 1 2 20 54 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22506327.627 7 -17537385.318 7 20530689.610 20530686.304 20530688.836
+ 45.900 46.900
+ -21112160.777 7 -16451016.289 7 20423212.121 20423211.272 20423211.726
+ 47.100 45.900
+ -13386733.520 6 -10431213.294 6 21845064.770 21845064.194 21845063.632
+ 41.500 37.000
+ -9501276.648 6 -7403585.894 6 21559836.073 21559835.061 21559834.580
+ 41.400 37.200
+ -2372430.037 4 -1848644.157 2 24065335.328 24065336.889 24065334.230
+ 25.300 17.800
+ -3897738.755 4 -3037196.385 3 23890643.703 23890641.803 23890643.145
+ 26.200 19.900
+ -10700503.784 6 -8338050.422 5 22685667.209 22685666.527 22685666.708
+ 37.700 34.900
+ -3403233.875 4 -2651867.946 4 24045459.460 24045456.823 24045458.532
+ 25.900 24.900
+ -6124258.213 5 -4772136.024 4 23268313.174 23268312.429 23268312.322
+ 34.500 26.200
+ -5641586.252 4 -4396036.327 4 23388560.235 23388559.986 23388559.757
+ 29.700 26.800
+ 06 1 2 20 55 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22548169.833 7 -17569989.616 7 20522727.256 20522723.878 20522726.538
+ 46.100 46.800
+ -21075258.141 7 -16422260.993 7 20430234.465 20430233.628 20430234.054
+ 47.100 45.800
+ -13401984.065 6 -10443096.833 6 21842162.797 21842162.060 21842161.571
+ 41.900 36.500
+ -9437499.862 6 -7353889.711 6 21571971.965 21571971.018 21571970.728
+ 41.600 36.800
+ -2491686.182 3 -1941570.859 3 24042641.048 24042643.352 24042640.073
+ 22.100 22.600
+ -3964694.530 4 -3089369.654 3 23877902.073 23877901.098 23877901.504
+ 26.200 21.600
+ -10612244.498 6 -8269276.971 5 22702462.983 22702461.631 22702462.121
+ 38.300 34.700
+ -3416995.450 4 -2662591.246 4 24042840.927 24042838.164 24042839.769
+ 26.800 25.900
+ -6038941.208 5 -4705655.231 4 23284548.358 23284547.497 23284547.355
+ 34.000 26.800
+ -5712777.091 4 -4451509.633 4 23375012.747 23375012.659 23375012.478
+ 28.800 26.500
+ 06 1 2 20 55 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22589649.245 7 -17602311.221 7 20514834.303 20514830.477 20514833.452
+ 46.300 46.600
+ -21038023.667 7 -16393247.118 7 20437319.971 20437319.084 20437319.596
+ 47.300 45.700
+ -13416630.240 6 -10454509.422 6 21839375.590 21839374.783 21839374.502
+ 41.600 36.500
+ -9373394.708 6 -7303937.652 6 21584170.584 21584170.095 21584169.522
+ 41.600 36.900
+ -2610830.827 3 -2034410.694 3 24019968.446 24019969.902 24019967.778
+ 21.600 18.600
+ -4031264.776 4 -3141242.551 3 23865233.750 23865233.024 23865233.628
+ 26.500 18.600
+ -10523738.373 6 -8200311.171 5 22719305.199 22719303.569 22719304.281
+ 37.700 33.800
+ -3430203.578 4 -2672883.266 3 24040327.947 24040324.171 24040326.494
+ 27.400 22.600
+ -5953548.420 5 -4639115.409 4 23300797.691 23300797.521 23300796.717
+ 34.000 26.500
+ -5783499.082 5 -4506617.605 4 23361554.889 23361555.067 23361554.672
+ 30.800 25.900
+ 06 1 2 20 56 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22630765.431 7 -17634349.793 7 20507009.909 20507006.410 20507009.085
+ 46.100 46.900
+ -21000459.083 7 -16363976.020 7 20444468.212 20444467.394 20444467.838
+ 47.200 45.600
+ -13430671.583 6 -10465450.716 6 21836703.677 21836702.678 21836702.697
+ 41.700 36.100
+ -9308961.804 6 -7253730.197 6 21596431.545 21596431.186 21596430.649
+ 41.600 36.700
+ -2729861.319 3 -2127161.586 3 23997318.164 23997319.930 23997317.059
+ 23.400 23.000
+ -4097446.741 4 -3192812.887 3 23852638.907 23852639.134 23852639.391
+ 27.400 21.100
+ -10434986.454 6 -8131153.865 5 22736194.088 22736192.649 22736193.201
+ 37.300 34.400
+ -3442857.511 4 -2682743.440 3 24037919.645 24037916.219 24037918.783
+ 27.100 23.000
+ -5868081.139 5 -4572517.541 4 23317061.430 23317061.893 23317060.572
+ 34.300 27.600
+ -5853749.886 5 -4561358.433 4 23348186.451 23348186.318 23348186.343
+ 32.300 25.900
+ 06 1 2 20 56 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22671518.119 7 -17666105.111 7 20499254.952 20499251.521 20499254.096
+ 46.100 47.000
+ -20962565.325 7 -16334448.422 7 20451679.241 20451678.275 20451678.800
+ 47.300 45.500
+ -13444107.713 7 -10475920.421 6 21834146.971 21834145.931 21834145.916
+ 42.000 36.500
+ -9244201.782 6 -7203267.850 6 21608755.510 21608754.654 21608754.379
+ 41.700 36.500
+ -2848775.382 3 -2219821.789 3 23974689.068 23974690.988 23974687.874
+ 21.600 21.100
+ -4163237.473 4 -3244078.317 3 23840120.064 23840119.953 23840119.894
+ 25.900 22.100
+ -10345989.808 6 -8061805.851 5 22753129.259 22753128.157 22753128.589
+ 37.200 34.600
+ -3454956.017 4 -2692170.853 3 24035617.696 24035613.940 24035616.276
+ 27.400 22.600
+ -5782540.395 5 -4505862.430 4 23333340.107 23333339.659 23333339.192
+ 34.100 28.400
+ -5923527.303 5 -4615730.384 4 23334908.264 23334908.384 23334907.895
+ 31.300 27.100
+ 06 1 2 20 57 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22711907.048 7 -17697576.979 7 20491569.079 20491565.722 20491568.289
+ 46.200 47.100
+ -20924343.851 7 -16304665.454 7 20458952.558 20458951.559 20458952.155
+ 47.300 45.500
+ -13456938.245 7 -10485918.241 6 21831705.531 21831704.325 21831704.343
+ 42.000 36.400
+ -9179115.071 6 -7152550.935 6 21621141.072 21621140.236 21621139.904
+ 41.500 36.600
+ -2967570.368 3 -2312389.252 3 23952083.183 23952084.850 23952082.357
+ 23.800 20.500
+ -4228634.114 4 -3295036.683 3 23827675.201 23827674.715 23827674.948
+ 25.600 19.300
+ -10256749.458 6 -7992267.949 5 22770110.641 22770110.332 22770110.220
+ 36.700 34.800
+ -3466497.854 4 -2701164.458 4 24033420.867 24033417.659 24033420.122
+ 29.500 25.600
+ -5696926.892 5 -4439150.611 4 23349632.025 23349631.202 23349631.035
+ 34.000 26.800
+ -5992828.891 5 -4669731.583 4 23321720.792 23321720.558 23321720.430
+ 31.800 26.800
+ 06 1 2 20 57 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22751931.881 7 -17728765.138 7 20483952.774 20483949.121 20483951.988
+ 46.300 46.900
+ -20885795.753 7 -16274627.981 7 20466288.318 20466287.039 20466287.786
+ 47.400 45.500
+ -13469162.842 6 -10495443.900 6 21829378.972 21829378.235 21829377.852
+ 41.400 36.300
+ -9113702.397 6 -7101580.028 6 21633588.518 21633587.975 21633587.549
+ 41.500 36.300
+ -3086243.855 3 -2404862.053 4 23929500.599 23929502.716 23929499.472
+ 23.800 24.200
+ -4293633.551 4 -3345685.585 3 23815306.787 23815305.652 23815306.839
+ 26.200 20.500
+ -10167266.555 6 -7922541.026 5 22787138.983 22787138.386 22787138.391
+ 36.400 34.600
+ -3477482.325 4 -2709723.775 4 24031331.756 24031327.303 24031330.134
+ 28.100 24.900
+ -5611241.943 5 -4372383.133 4 23365936.618 23365936.379 23365935.792
+ 33.600 26.200
+ -6061652.453 4 -4723360.285 4 23308623.634 23308623.399 23308623.376
+ 29.900 26.200
+ 06 1 2 20 58 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22791592.254 7 -17759669.308 7 20476405.718 20476402.008 20476404.957
+ 46.600 47.000
+ -20846922.323 7 -16244336.998 7 20473685.458 20473684.431 20473685.074
+ 47.600 45.600
+ -13480781.231 6 -10504497.183 6 21827168.064 21827167.231 21827167.089
+ 41.900 36.800
+ -9047964.275 6 -7050355.525 6 21646098.565 21646097.436 21646097.273
+ 41.200 36.500
+ -3204793.225 3 -2497238.172 3 23906941.316 23906942.643 23906940.420
+ 22.600 19.900
+ -4358233.028 4 -3396022.790 3 23803012.305 23803013.367 23803013.105
+ 24.900 23.000
+ -10077541.852 6 -7852625.703 5 22804213.119 22804212.152 22804212.625
+ 36.800 33.800
+ -3487908.601 4 -2717848.126 3 24029347.234 24029343.044 24029345.955
+ 28.600 21.600
+ -5525486.642 5 -4305560.830 4 23382255.098 23382255.315 23382254.254
+ 33.200 27.400
+ -6129995.581 5 -4776614.615 4 23295618.425 23295618.105 23295618.326
+ 30.200 25.900
+ 06 1 2 20 58 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22830887.745 7 -17790289.150 7 20468927.692 20468924.307 20468927.058
+ 46.400 47.100
+ -20807724.887 7 -16213793.539 7 20481144.357 20481143.430 20481144.004
+ 47.500 45.400
+ -13491793.040 7 -10513077.807 6 21825072.694 21825071.702 21825071.681
+ 42.100 36.700
+ -8981901.415 6 -6998877.985 6 21658669.986 21658668.938 21658668.553
+ 41.200 36.600
+ -3323215.879 3 -2589515.577 3 23884406.656 23884407.813 23884405.152
+ 21.600 22.100
+ -4422429.413 4 -3446045.885 3 23790796.067 23790797.219 23790796.490
+ 25.300 23.000
+ -9987576.648 6 -7782522.968 5 22821333.305 22821332.022 22821332.291
+ 36.400 34.000
+ -3497775.752 4 -2725536.801 3 24027469.405 24027465.354 24027468.382
+ 28.800 23.400
+ -5439662.004 5 -4238684.506 4 23398586.440 23398587.215 23398585.713
+ 32.800 26.200
+ -6197856.001 5 -4829492.804 4 23282705.637 23282704.552 23282705.110
+ 30.400 25.600
+ 06 1 2 20 59 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22869818.135 7 -17820624.504 7 20461519.605 20461515.985 20461518.854
+ 46.300 47.100
+ -20768204.534 7 -16182998.459 7 20488665.214 20488663.899 20488664.692
+ 47.600 45.400
+ -13502198.026 6 -10521185.580 6 21823092.663 21823091.856 21823091.540
+ 41.700 37.000
+ -8915514.278 6 -6947147.776 6 21671303.125 21671301.991 21671301.674
+ 41.000 36.600
+ -3441509.595 3 -2681692.590 3 23861896.376 23861897.617 23861894.949
+ 23.400 23.400
+ -4486219.838 4 -3495752.643 3 23778659.587 23778657.555 23778658.365
+ 25.600 19.900
+ -9897371.845 6 -7712233.551 5 22838499.164 22838497.766 22838497.734
+ 36.000 34.000
+ -3507083.141 4 -2732789.282 3 24025698.658 24025694.268 24025697.120
+ 27.900 23.000
+ -5353768.895 5 -4171754.805 4 23414932.107 23414931.810 23414931.236
+ 32.700 25.900
+ -6265231.602 5 -4881993.209 4 23269883.942 23269883.468 23269883.708
+ 31.000 25.600
+ 06 1 2 20 59 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22908383.380 7 -17850675.330 7 20454180.830 20454177.220 20454180.035
+ 46.200 47.100
+ -20728362.615 7 -16151952.809 7 20496246.366 20496245.574 20496246.071
+ 47.500 45.200
+ -13511995.909 6 -10528820.293 6 21821228.033 21821227.355 21821226.836
+ 41.300 36.600
+ -8848803.674 6 -6895165.492 6 21683996.948 21683996.392 21683996.172
+ 41.300 36.000
+ -3559671.695 3 -2773766.954 3 23839410.340 23839412.025 23839409.571
+ 23.000 21.600
+ -4549601.336 4 -3545140.807 3 23766597.861 23766597.077 23766597.418
+ 26.800 22.600
+ -9806928.749 6 -7641758.435 5 22855709.704 22855708.137 22855708.723
+ 36.800 33.400
+ -3515829.558 4 -2739604.653 3 24024033.813 24024029.957 24024032.828
+ 28.400 23.400
+ -5267808.437 5 -4104772.635 4 23431289.539 23431289.729 23431288.789
+ 33.100 25.900
+ -6332119.874 5 -4934113.902 4 23257155.424 23257155.839 23257155.230
+ 31.500 28.800
+ 06 1 2 21 0 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22946583.114 7 -17880441.343 7 20446911.520 20446908.034 20446910.708
+ 46.100 47.100
+ -20688200.411 7 -16120657.580 7 20503889.096 20503888.194 20503888.718
+ 47.300 45.300
+ -13521186.500 6 -10535981.782 6 21819479.105 21819478.416 21819477.876
+ 41.300 37.000
+ -8781770.084 6 -6842931.539 6 21696753.197 21696752.590 21696752.194
+ 41.300 36.200
+ -3677699.522 4 -2865736.701 4 23816951.101 23816952.601 23816949.948
+ 25.300 25.300
+ -4612571.009 4 -3594208.019 3 23754613.543 23754614.300 23754613.882
+ 26.500 23.000
+ -9716248.399 6 -7571098.444 5 22872965.120 22872964.325 22872964.505
+ 36.700 33.800
+ -3524014.313 4 -2745982.390 3 24022476.502 24022472.561 24022475.012
+ 29.200 23.800
+ -5181781.376 5 -4037738.560 4 23447660.585 23447660.051 23447659.706
+ 33.500 25.900
+ -6398518.801 5 -4985853.276 4 23244520.397 23244520.698 23244519.979
+ 31.100 28.600
+ 06 1 2 21 0 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22984416.898 7 -17909922.204 7 20439711.982 20439708.531 20439711.190
+ 46.100 47.200
+ -20647719.126 7 -16089113.728 7 20511592.405 20511591.595 20511592.055
+ 47.300 45.200
+ -13529769.624 6 -10542669.922 6 21817845.683 21817845.237 21817844.659
+ 41.400 37.200
+ -8714414.228 6 -6790446.496 6 21709571.793 21709570.076 21709569.980
+ 40.600 36.000
+ -3795590.637 4 -2957599.909 3 23794516.843 23794518.155 23794516.080
+ 26.200 21.600
+ -4675126.489 4 -3642952.490 3 23742709.289 23742709.870 23742709.944
+ 26.800 22.100
+ -9625331.578 6 -7500254.206 5 22890265.857 22890265.417 22890265.786
+ 36.700 33.600
+ -3531636.798 4 -2751921.978 4 24021025.607 24021022.199 24021024.657
+ 28.400 24.600
+ -5095688.727 5 -3970653.407 4 23464043.148 23464043.350 23464042.385
+ 32.800 28.100
+ -6464426.049 5 -5037209.518 4 23231978.460 23231978.818 23231978.067
+ 31.000 28.600
+ 06 1 2 21 1 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23021884.404 7 -17939117.654 7 20432582.230 20432578.744 20432581.395
+ 46.100 47.400
+ -20606920.072 7 -16057322.259 7 20519356.413 20519355.405 20519355.969
+ 47.400 45.200
+ -13537745.036 6 -10548884.528 6 21816328.083 21816327.672 21816326.959
+ 41.500 37.300
+ -8646736.692 6 -6737710.783 6 21722448.923 21722448.857 21722448.109
+ 40.700 36.200
+ -3913342.586 4 -3049354.635 2 23772108.618 23772109.982 23772107.942
+ 25.600 16.100
+ -4737264.445 4 -3691371.640 3 23730886.734 23730885.516 23730885.830
+ 27.600 23.400
+ -9534179.643 6 -7429226.752 5 22907611.732 22907610.722 22907611.478
+ 37.100 32.600
+ -3538695.797 4 -2757422.507 3 24019682.527 24019678.191 24019681.009
+ 27.600 23.000
+ -5009531.788 5 -3903518.142 4 23480438.285 23480438.749 23480437.362
+ 31.600 28.100
+ -6529839.368 5 -5088180.859 4 23219530.366 23219530.471 23219529.974
+ 30.200 27.100
+ 06 1 2 21 1 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23058985.307 7 -17968027.441 7 20425522.035 20425518.656 20425521.227
+ 46.100 47.300
+ -20565804.498 7 -16025284.146 7 20527180.413 20527179.393 20527179.982
+ 47.500 45.000
+ -13545112.662 6 -10554625.531 6 21814926.281 21814925.618 21814925.029
+ 41.900 37.200
+ -8578738.169 6 -6684724.930 5 21735387.744 21735388.499 21735387.695
+ 40.400 35.900
+ -4030952.530 4 -3140998.648 3 23749728.666 23749729.882 23749727.787
+ 25.300 21.100
+ -4798982.368 4 -3739463.460 3 23719142.081 23719140.544 23719141.231
+ 24.600 20.500
+ -9442793.139 6 -7358016.516 5 22925001.485 22925000.898 22925001.632
+ 36.700 31.500
+ -3545190.979 4 -2762483.668 3 24018446.274 24018442.605 24018445.155
+ 28.400 23.400
+ -4923311.253 5 -3836333.330 4 23496844.969 23496845.797 23496844.154
+ 32.400 26.500
+ -6594756.667 4 -5138765.715 4 23207176.664 23207176.731 23207176.374
+ 29.200 27.600
+ 06 1 2 21 2 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23095719.727 7 -17996651.660 7 20418531.785 20418528.349 20418530.957
+ 45.900 47.500
+ -20524373.555 7 -15993000.291 7 20535064.226 20535063.314 20535063.948
+ 47.100 44.900
+ -13551872.399 6 -10559892.860 6 21813639.849 21813639.241 21813638.694
+ 41.900 37.100
+ -8510419.287 6 -6631489.441 5 21748390.371 21748389.163 21748388.671
+ 39.900 35.800
+ -4148417.988 4 -3232530.087 3 23727375.702 23727377.147 23727375.017
+ 25.300 22.600
+ -4860277.153 4 -3787225.589 3 23707477.836 23707476.352 23707477.566
+ 27.400 21.100
+ -9351173.920 6 -7286624.941 5 22942437.022 22942435.820 22942436.270
+ 36.700 32.600
+ -3551121.705 4 -2767105.001 3 24017318.122 24017313.942 24017316.878
+ 29.000 23.800
+ -4837028.072 5 -3769099.679 4 23513264.401 23513264.203 23513263.568
+ 32.600 25.600
+ -6659175.708 5 -5188962.326 4 23194918.696 23194917.545 23194918.350
+ 30.100 25.900
+ 06 1 2 21 2 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23132086.719 7 -18024989.571 7 20411611.092 20411607.976 20411610.418
+ 46.100 47.600
+ -20482628.598 7 -15960471.751 7 20543008.108 20543007.168 20543007.629
+ 47.100 44.800
+ -13558024.073 6 -10564686.376 6 21812469.259 21812468.648 21812468.162
+ 41.900 37.300
+ -8441780.811 6 -6578004.941 5 21761452.179 21761450.743 21761450.371
+ 40.000 35.900
+ -4265736.744 3 -3323947.134 3 23705050.297 23705051.710 23705049.566
+ 23.400 22.100
+ -4921146.042 4 -3834655.852 3 23695894.470 23695893.084 23695894.554
+ 28.400 22.100
+ -9259322.965 5 -7215052.780 5 22959915.549 22959914.044 22959914.608
+ 35.200 32.400
+ -3556486.942 4 -2771285.690 3 24016297.525 24016293.085 24016295.904
+ 27.900 23.800
+ -4750683.244 5 -3701817.994 4 23529695.455 23529695.492 23529694.734
+ 32.300 25.600
+ -6723094.275 5 -5238768.950 4 23182755.267 23182755.160 23182754.916
+ 31.500 27.900
+ 06 1 2 21 3 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23168086.523 7 -18053041.362 7 20404760.845 20404757.440 20404760.049
+ 46.100 47.700
+ -20440570.702 7 -15927699.361 7 20551011.389 20551010.530 20551010.974
+ 47.200 44.700
+ -13563567.616 6 -10569006.018 6 21811414.405 21811413.613 21811413.225
+ 41.900 36.900
+ -8372823.288 6 -6524271.816 5 21774572.433 21774572.792 21774572.035
+ 40.500 35.600
+ -4382906.299 4 -3415247.914 3 23682754.409 23682755.113 23682753.333
+ 25.900 23.000
+ -4981586.278 4 -3881752.041 3 23684392.282 23684391.984 23684392.384
+ 26.200 22.100
+ -9167241.199 5 -7143300.797 5 22977438.551 22977437.173 22977437.448
+ 35.600 33.500
+ -3561285.896 4 -2775025.141 3 24015383.557 24015379.555 24015382.888
+ 29.200 23.000
+ -4664277.852 5 -3634489.123 4 23546137.860 23546138.110 23546136.820
+ 31.800 25.600
+ -6786510.182 5 -5288183.898 4 23170687.223 23170687.492 23170687.097
+ 31.500 28.600
+ 06 1 2 21 3 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23203718.638 7 -18080806.647 7 20397980.331 20397976.803 20397979.605
+ 46.200 47.800
+ -20398201.437 7 -15894684.348 7 20559074.253 20559073.165 20559073.766
+ 47.200 44.600
+ -13568503.024 6 -10572851.796 6 21810475.133 21810474.398 21810473.957
+ 41.900 37.000
+ -8303547.447 6 -6470290.642 5 21787754.846 21787755.600 21787754.765
+ 40.200 35.500
+ -4499924.031 4 -3506430.378 4 23660486.798 23660487.549 23660485.537
+ 25.600 24.600
+ -5041594.861 4 -3928511.930 3 23672975.063 23672972.747 23672974.266
+ 28.800 22.100
+ -9074929.431 6 -7071369.573 5 22995005.475 22995003.569 22995004.072
+ 36.100 33.600
+ -3565518.160 4 -2778322.979 3 24014577.694 24014574.492 24014576.653
+ 26.200 23.400
+ -4577812.711 5 -3567113.707 4 23562591.240 23562592.346 23562590.368
+ 31.800 26.800
+ -6849421.567 5 -5337205.709 4 23158715.831 23158715.566 23158715.799
+ 32.400 27.400
+ 06 1 2 21 4 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23238983.314 7 -18108285.612 7 20391269.736 20391266.282 20391268.903
+ 46.200 47.900
+ -20355521.740 7 -15861427.433 7 20567195.681 20567194.754 20567195.319
+ 47.100 44.600
+ -13572830.348 6 -10576223.737 6 21809651.488 21809651.012 21809650.359
+ 41.300 37.100
+ -8233954.159 6 -6416062.119 5 21801000.278 21800998.463 21800998.446
+ 39.900 34.700
+ -4616787.372 4 -3597492.549 4 23638248.514 23638248.857 23638247.218
+ 26.200 24.600
+ -5101169.455 4 -3974933.635 3 23661638.168 23661635.588 23661637.407
+ 28.100 21.600
+ -8982389.436 6 -6999260.503 5 23012614.772 23012613.253 23012613.916
+ 36.500 33.200
+ -3569183.190 4 -2781178.846 4 24013881.031 24013877.215 24013879.494
+ 26.500 24.600
+ -4491288.705 5 -3499692.396 4 23579056.593 23579056.649 23579055.829
+ 31.800 24.900
+ -6911826.093 5 -5385832.543 4 23146839.984 23146840.805 23146839.951
+ 30.800 29.700
+ 06 1 2 21 4 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23273879.668 7 -18135477.570 7 20384629.155 20384625.619 20384628.383
+ 46.300 47.900
+ -20312532.930 7 -15827929.652 7 20575376.227 20575375.252 20575375.820
+ 47.300 44.600
+ -13576549.514 6 -10579121.790 6 21808943.725 21808943.188 21808942.635
+ 41.500 36.600
+ -8164043.850 6 -6361586.578 5 21814303.888 21814302.353 21814302.068
+ 40.300 35.800
+ -4733493.810 4 -3688432.446 4 23616039.621 23616040.385 23616038.415
+ 26.200 25.300
+ -5160307.056 4 -4021014.821 3 23650383.771 23650381.993 23650383.424
+ 28.600 21.600
+ -8889621.835 6 -6926974.069 5 23030267.885 23030266.042 23030266.879
+ 36.200 32.700
+ -3572280.389 4 -2783592.233 3 24013291.403 24013286.765 24013290.410
+ 28.600 22.600
+ -4404706.728 5 -3432225.932 4 23595532.779 23595532.595 23595531.741
+ 30.800 25.300
+ -6973721.619 5 -5434062.787 4 23135062.978 23135061.865 23135062.526
+ 32.600 27.900
+ 06 1 2 21 5 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23308407.633 7 -18162382.473 7 20378058.710 20378055.076 20378057.953
+ 46.400 47.800
+ -20269236.469 7 -15794192.145 7 20583615.271 20583614.318 20583614.936
+ 47.500 44.400
+ -13579660.594 7 -10581546.007 6 21808352.034 21808351.114 21808350.868
+ 42.100 36.700
+ -8093817.496 6 -6306864.758 5 21827665.543 21827665.934 21827665.264
+ 39.800 34.900
+ -4850041.078 4 -3779248.351 4 23593860.954 23593861.842 23593859.818
+ 27.100 26.200
+ -5219004.973 4 -4066753.396 3 23639212.667 23639212.745 23639213.026
+ 27.600 23.400
+ -8796627.796 5 -6854511.209 5 23047963.189 23047962.640 23047962.609
+ 34.900 33.200
+ -3574809.230 4 -2785562.718 3 24012810.392 24012806.217 24012809.253
+ 27.100 22.100
+ -4318067.859 5 -3364715.144 4 23612020.075 23612019.486 23612019.007
+ 31.500 24.600
+ -7035106.052 5 -5481894.747 4 23123381.820 23123381.208 23123381.364
+ 32.400 28.600
+ 06 1 2 21 5 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23342566.944 7 -18189000.110 7 20371558.345 20371554.836 20371557.605
+ 46.300 47.900
+ -20225633.352 7 -15760215.686 7 20591912.781 20591911.750 20591912.364
+ 47.400 44.400
+ -13582163.552 7 -10583496.356 6 21807875.741 21807874.815 21807874.514
+ 42.000 36.600
+ -8023275.676 6 -6251897.111 5 21841089.147 21841089.489 21841088.868
+ 39.700 35.100
+ -4966426.515 4 -3869938.126 4 23571712.949 23571713.879 23571712.100
+ 27.100 24.200
+ -5277260.449 4 -4112147.197 3 23628127.881 23628126.898 23628127.627
+ 26.800 23.000
+ -8703408.617 5 -6781872.900 5 23065701.147 23065701.995 23065701.844
+ 35.100 33.400
+ -3576769.007 4 -2787089.775 3 24012437.856 24012433.379 24012436.038
+ 28.600 23.800
+ -4231373.064 5 -3297160.751 4 23628517.240 23628516.946 23628516.339
+ 31.800 24.600
+ -7095977.317 5 -5529326.872 4 23111797.908 23111797.745 23111797.613
+ 31.800 28.400
+ 06 1 2 21 6 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23376357.385 7 -18215330.314 7 20365128.227 20365124.672 20365127.479
+ 46.300 47.900
+ -20181724.835 7 -15726001.252 7 20600267.935 20600267.231 20600267.722
+ 47.300 44.300
+ -13584058.573 7 -10584972.993 6 21807515.135 21807514.093 21807513.968
+ 42.100 36.500
+ -7952419.215 6 -6196684.311 5 21854574.902 21854572.977 21854572.950
+ 39.500 34.800
+ -5082647.551 4 -3960499.834 4 23549597.107 23549597.826 23549595.818
+ 26.500 24.900
+ -5335070.716 4 -4157194.107 3 23617126.834 23617125.850 23617126.413
+ 28.100 22.600
+ -8609965.040 5 -6709059.748 5 23083483.412 23083483.460 23083483.561
+ 34.700 32.700
+ -3578159.239 4 -2788173.083 3 24012172.894 24012168.833 24012171.573
+ 29.500 23.400
+ -4144623.327 5 -3229563.567 4 23645024.725 23645024.810 23645023.850
+ 31.300 24.900
+ -7156333.455 5 -5576357.608 4 23100312.547 23100311.934 23100312.533
+ 33.200 26.800
+ 06 1 2 21 6 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23409778.741 7 -18241372.921 8 20358768.277 20358764.807 20358767.613
+ 46.400 48.000
+ -20137512.191 7 -15691549.837 7 20608681.514 20608680.592 20608681.149
+ 47.100 44.300
+ -13585345.709 7 -10585975.952 6 21807270.053 21807269.314 21807269.020
+ 42.200 36.600
+ -7881248.758 6 -6141226.840 5 21868117.761 21868116.162 21868116.123
+ 39.400 34.800
+ -5198701.608 4 -4050931.445 4 23527512.315 23527513.326 23527511.354
+ 25.300 24.200
+ -5392433.108 4 -4201892.037 3 23606210.830 23606210.200 23606211.013
+ 27.400 22.600
+ -8516298.850 5 -6636073.136 5 23101307.276 23101307.476 23101307.451
+ 35.300 32.100
+ -3578979.497 4 -2788812.198 3 24012016.622 24012012.359 24012015.354
+ 27.900 22.100
+ -4057819.357 5 -3161924.114 3 23661543.320 23661542.504 23661542.255
+ 30.800 22.100
+ -7216172.320 5 -5622985.267 4 23088925.312 23088925.059 23088925.185
+ 32.100 27.100
+ 06 1 2 21 7 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23442830.805 7 -18267127.768 8 20352478.866 20352475.226 20352478.062
+ 46.700 48.100
+ -20092996.730 7 -15656862.464 7 20617152.744 20617151.639 20617152.220
+ 47.000 44.300
+ -13586025.142 7 -10586505.377 6 21807140.713 21807139.963 21807139.710
+ 42.000 36.900
+ -7809765.219 6 -6085525.403 5 21881718.877 21881719.343 21881718.765
+ 39.500 35.200
+ -5314586.340 4 -4141231.107 3 23505460.937 23505461.113 23505459.570
+ 27.400 23.800
+ -5449345.033 4 -4246238.933 3 23595379.816 23595380.321 23595380.982
+ 28.600 22.600
+ -8422410.753 5 -6562913.576 5 23119174.361 23119173.432 23119174.303
+ 35.100 31.300
+ -3579229.330 4 -2789006.856 3 24011969.036 24011965.076 24011967.826
+ 29.200 23.800
+ -3970962.022 5 -3094243.088 3 23678071.877 23678071.162 23678070.923
+ 31.500 23.800
+ -7275491.825 5 -5669208.221 4 23077637.285 23077636.861 23077636.660
+ 32.000 27.900
+ 06 1 2 21 7 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23475513.420 7 -18292594.728 8 20346259.518 20346255.898 20346258.715
+ 46.500 48.100
+ -20048179.595 7 -15621940.020 7 20625681.000 20625680.019 20625680.565
+ 47.200 44.200
+ -13586096.967 7 -10586561.345 6 21807127.191 21807126.238 21807126.049
+ 42.100 36.600
+ -7737969.237 6 -6029580.506 5 21895381.586 21895381.500 21895380.958
+ 39.100 34.800
+ -5430299.529 4 -4231397.129 3 23483440.313 23483441.244 23483439.467
+ 26.800 23.400
+ -5505803.778 4 -4290232.716 3 23584636.130 23584636.794 23584636.657
+ 28.100 23.800
+ -8328302.102 5 -6489582.174 4 23137083.071 23137081.548 23137082.294
+ 34.000 29.700
+ -3578908.031 4 -2788756.493 3 24012030.400 24012026.111 24012029.115
+ 29.000 23.400
+ -3884052.131 5 -3026521.093 3 23694609.758 23694609.866 23694609.022
+ 30.800 23.800
+ -7334290.143 5 -5715025.072 4 23066448.438 23066447.829 23066447.965
+ 32.400 27.400
+ 06 1 2 21 8 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23507826.281 7 -18317773.567 8 20340110.792 20340106.974 20340109.926
+ 46.700 48.200
+ -20003062.170 7 -15586783.588 7 20634266.586 20634265.597 20634266.199
+ 47.200 44.100
+ -13585561.379 7 -10586143.999 6 21807229.107 21807228.165 21807227.983
+ 42.000 36.700
+ -7665861.528 6 -5973392.719 5 21909104.544 21909103.129 21909102.908
+ 39.300 34.600
+ -5545838.351 4 -4321427.307 3 23461454.054 23461455.107 23461453.070
+ 26.500 22.100
+ -5561806.272 4 -4333870.985 3 23573980.410 23573979.295 23573980.242
+ 28.800 23.800
+ -8233973.890 5 -6416079.698 5 23155033.446 23155032.172 23155032.340
+ 33.900 32.000
+ -3578015.272 4 -2788060.784 3 24012199.796 24012195.786 24012198.661
+ 28.600 21.100
+ -3797090.926 5 -2958759.150 4 23711158.064 23711158.281 23711157.159
+ 30.100 25.600
+ -7392565.119 5 -5760434.095 4 23055358.438 23055358.596 23055358.271
+ 31.500 28.600
+ 06 1 2 21 8 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23539769.280 7 -18342664.207 8 20334032.267 20334028.385 20334031.414
+ 46.700 48.300
+ -19957645.557 7 -15551394.021 7 20642909.356 20642908.015 20642908.781
+ 47.100 44.000
+ -13584418.664 7 -10585253.568 6 21807446.649 21807445.653 21807445.466
+ 42.000 36.600
+ -7593443.031 6 -5916962.755 5 21922885.706 21922884.045 21922883.745
+ 38.500 34.000
+ -5661200.190 4 -4411319.580 4 23439501.948 23439502.287 23439500.782
+ 27.600 24.900
+ -5617350.337 4 -4377152.031 3 23563410.788 23563409.326 23563410.459
+ 27.600 23.400
+ -8139427.446 5 -6342407.168 5 23173025.212 23173023.662 23173023.909
+ 33.000 31.300
+ -3576550.825 4 -2786919.654 3 24012479.034 24012474.705 24012477.478
+ 29.200 22.600
+ -3710079.160 5 -2890957.775 4 23727715.818 23727716.031 23727714.876
+ 30.600 25.900
+ -7450314.785 5 -5805433.815 4 23044369.106 23044368.985 23044368.939
+ 31.600 28.600
+ 06 1 2 21 9 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23571341.975 7 -18367266.300 8 20328023.980 20328020.410 20328023.200
+ 46.700 48.400
+ -19911931.177 7 -15515772.427 7 20651608.195 20651607.199 20651607.783
+ 47.100 44.000
+ -13582668.991 7 -10583890.178 6 21807779.535 21807778.546 21807778.445
+ 42.000 36.500
+ -7520714.374 6 -5860291.101 5 21936723.537 21936723.800 21936723.123
+ 38.800 34.100
+ -5776382.600 4 -4501072.035 4 23417583.620 23417583.586 23417582.354
+ 25.600 25.300
+ -5672433.276 4 -4420073.766 4 23552928.354 23552927.583 23552928.440
+ 27.100 24.200
+ -8044663.782 5 -6268565.371 5 23191058.643 23191056.889 23191056.954
+ 33.400 32.400
+ -3574514.201 4 -2785332.640 3 24012866.715 24012862.320 24012865.298
+ 28.800 23.000
+ -3623017.487 5 -2823117.516 4 23744283.679 23744283.947 23744282.889
+ 31.500 26.500
+ -7507537.270 5 -5850022.721 5 23033480.763 23033479.911 23033480.432
+ 32.800 30.100
+ 06 1 2 21 9 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23602544.357 7 -18391579.834 8 20322086.081 20322082.736 20322085.396
+ 46.600 48.500
+ -19865920.010 7 -15479919.573 7 20660363.773 20660362.750 20660363.378
+ 47.100 44.000
+ -13580312.660 6 -10582054.069 6 21808227.500 21808226.987 21808226.453
+ 41.800 36.300
+ -7447676.518 6 -5803378.494 5 21950621.827 21950622.640 21950621.621
+ 38.500 34.000
+ -5891383.200 4 -4590682.831 4 23395699.606 23395699.878 23395698.555
+ 27.400 25.300
+ -5727052.458 4 -4462634.119 3 23542534.335 23542534.261 23542534.480
+ 29.000 23.800
+ -7949683.808 5 -6194555.016 5 23209133.291 23209130.991 23209131.162
+ 34.800 31.800
+ -3571905.202 4 -2783299.637 3 24013362.956 24013358.763 24013361.811
+ 29.200 23.000
+ -3535906.962 4 -2755239.213 4 23760859.740 23760860.012 23760858.617
+ 29.900 25.300
+ -7564230.557 5 -5894199.282 4 23022692.316 23022691.544 23022691.735
+ 32.600 28.800
+ 06 1 2 21 10 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23633376.241 7 -18415604.672 8 20316219.096 20316215.569 20316218.295
+ 46.600 48.400
+ -19819613.423 7 -15443836.519 7 20669175.565 20669174.650 20669175.169
+ 47.100 43.900
+ -13577349.948 6 -10579745.464 6 21808791.679 21808790.668 21808790.456
+ 41.900 36.500
+ -7374330.137 6 -5746225.498 5 21964581.442 21964579.923 21964579.710
+ 38.700 34.000
+ -6006199.378 4 -4680149.934 4 23373850.545 23373850.974 23373849.587
+ 28.400 24.600
+ -5781205.266 4 -4504831.077 4 23532230.427 23532228.963 23532229.996
+ 28.800 24.200
+ -7854489.531 5 -6120377.673 5 23227247.020 23227245.534 23227245.202
+ 32.700 30.200
+ -3568723.468 4 -2780820.350 3 24013968.443 24013964.268 24013966.941
+ 29.900 23.000
+ -3448748.296 4 -2687323.379 3 23777445.513 23777445.458 23777444.727
+ 29.700 23.800
+ -7620392.664 5 -5937961.942 4 23012004.568 23012004.178 23012004.215
+ 32.000 27.900
+ 06 1 2 21 10 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23663837.364 7 -18439340.606 8 20310422.448 20310419.037 20310421.651
+ 46.500 48.600
+ -19773012.594 7 -15407524.185 7 20678043.575 20678042.445 20678043.150
+ 47.200 43.800
+ -13573781.173 6 -10576964.589 6 21809470.898 21809469.886 21809469.689
+ 41.900 36.500
+ -7300676.108 6 -5688832.766 5 21978597.812 21978595.642 21978595.841
+ 38.000 33.800
+ -6120828.720 4 -4769471.413 4 23352037.507 23352037.707 23352036.492
+ 29.700 25.900
+ -5834889.071 4 -4546662.592 3 23522014.854 23522013.462 23522014.211
+ 28.800 23.400
+ -7759081.275 5 -6046033.589 5 23245401.933 23245401.380 23245401.266
+ 33.600 31.300
+ -3564968.457 4 -2777894.346 3 24014682.554 24014678.643 24014681.439
+ 27.400 23.000
+ -3361542.641 5 -2619370.934 4 23794040.960 23794040.109 23794039.970
+ 30.800 24.200
+ -7676021.832 5 -5981309.306 4 23001419.012 23001418.732 23001418.748
+ 33.200 28.600
+ 06 1 2 21 11 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23693927.450 7 -18462787.422 8 20304696.718 20304693.045 20304695.856
+ 46.800 48.700
+ -19726118.792 7 -15370983.563 7 20686967.318 20686966.135 20686966.837
+ 47.500 43.800
+ -13569606.722 6 -10573711.768 6 21810264.953 21810264.133 21810263.943
+ 41.800 36.400
+ -7226715.262 6 -5631200.973 5 21992670.898 21992670.262 21992669.751
+ 39.100 34.400
+ -6235268.762 4 -4858645.434 4 23330260.618 23330260.469 23330259.136
+ 28.100 24.600
+ -5888101.205 4 -4588126.552 3 23511889.348 23511887.403 23511888.649
+ 29.200 23.000
+ -7663460.669 5 -5971524.003 5 23263597.719 23263597.016 23263597.472
+ 33.600 30.100
+ -3560640.099 4 -2774521.592 3 24015506.611 24015502.125 24015505.020
+ 27.100 23.000
+ -3274290.525 4 -2551382.279 4 23810643.882 23810644.000 23810642.819
+ 29.900 24.600
+ -7731115.975 5 -6024239.785 4 22990934.661 22990934.522 22990934.395
+ 33.000 28.600
+ 06 1 2 21 11 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23723646.130 7 -18485944.831 8 20299041.323 20299037.803 20299040.597
+ 46.800 48.800
+ -19678933.156 7 -15334215.532 7 20695946.168 20695945.197 20695945.885
+ 47.500 43.700
+ -13564826.861 6 -10569987.194 6 21811174.692 21811173.603 21811173.546
+ 41.800 36.200
+ -7152448.505 6 -5573330.796 5 22006801.931 22006802.512 22006801.917
+ 38.900 34.000
+ -6349516.939 4 -4947669.909 4 23308519.294 23308519.770 23308518.128
+ 25.300 26.500
+ -5940839.191 4 -4629221.028 4 23501852.311 23501851.607 23501852.575
+ 28.600 24.200
+ -7567628.821 5 -5896849.869 5 23281833.739 23281833.710 23281833.953
+ 33.800 32.300
+ -3555738.202 4 -2770701.913 3 24016439.017 24016435.255 24016437.987
+ 28.400 21.600
+ -3186993.006 5 -2483358.252 3 23827255.301 23827255.951 23827254.532
+ 30.100 22.100
+ -7785673.278 5 -6066751.948 4 22980552.804 22980552.637 22980552.509
+ 33.100 29.500
+ 06 1 2 21 12 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23752993.713 7 -18508813.073 8 20293456.574 20293453.113 20293455.818
+ 46.900 48.800
+ -19631456.894 7 -15297221.042 7 20704980.651 20704979.662 20704980.306
+ 47.600 43.600
+ -13559442.027 6 -10565791.217 6 21812199.278 21812198.319 21812198.144
+ 41.900 36.400
+ -7077876.457 6 -5515222.719 5 22020993.033 22020993.491 22020992.589
+ 38.300 34.100
+ -6463570.773 4 -5036542.955 4 23286815.274 23286815.929 23286814.350
+ 29.700 26.500
+ -5993100.477 4 -4669944.057 3 23491907.334 23491906.171 23491907.136
+ 28.600 22.600
+ -7471586.992 5 -5822012.081 4 23300109.991 23300109.259 23300110.075
+ 33.800 29.000
+ -3550262.415 4 -2766435.065 3 24017481.236 24017477.421 24017479.891
+ 27.600 23.800
+ -3099650.944 4 -2415299.499 3 23843876.119 23843876.152 23843875.230
+ 29.200 19.900
+ -7839691.986 5 -6108844.407 5 22970273.672 22970273.181 22970273.174
+ 33.200 30.100
+ 06 1 2 21 12 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23781969.713 7 -18531391.772 8 20287942.735 20287939.106 20287941.960
+ 46.900 48.700
+ -19583691.549 7 -15260001.292 7 20714070.133 20714069.133 20714069.775
+ 47.600 43.700
+ -13553452.693 6 -10561124.197 6 21813338.921 21813338.249 21813337.839
+ 41.600 36.500
+ -7003000.125 6 -5456877.556 5 22035243.313 22035241.845 22035241.411
+ 37.400 34.100
+ -6577427.878 4 -5125262.708 4 23265149.212 23265149.546 23265148.153
+ 29.000 25.600
+ -6044882.609 4 -4710293.689 4 23482054.898 23482052.911 23482054.032
+ 29.900 25.600
+ -7375336.374 5 -5747011.603 4 23318425.525 23318425.316 23318426.291
+ 33.500 29.900
+ -3544212.375 4 -2761720.749 4 24018632.334 24018628.773 24018631.255
+ 27.100 25.300
+ -3012265.186 4 -2347206.686 3 23860505.474 23860505.703 23860504.587
+ 29.700 23.000
+ -7893170.129 5 -6150515.661 4 22960096.788 22960096.383 22960096.385
+ 32.800 29.900
+ 06 1 2 21 13 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23810573.893 7 -18553680.744 8 20282499.635 20282495.946 20282498.836
+ 47.000 48.800
+ -19535638.009 7 -15222556.974 7 20723214.509 20723213.351 20723214.129
+ 47.600 43.600
+ -13546859.189 6 -10555986.389 6 21814593.791 21814592.974 21814592.689
+ 41.900 36.500
+ -6927820.336 6 -5398295.936 5 22049550.080 22049548.180 22049547.932
+ 38.000 34.300
+ -6691085.771 4 -5213827.206 4 23243520.518 23243521.405 23243519.561
+ 29.700 27.100
+ -6096183.209 4 -4750268.137 4 23472292.199 23472290.538 23472291.426
+ 29.000 24.200
+ -7278878.203 5 -5671849.408 5 23336780.177 23336780.866 23336781.047
+ 32.600 30.800
+ -3537588.055 4 -2756558.963 4 24019892.910 24019889.083 24019891.947
+ 28.100 24.600
+ -2924836.301 4 -2279080.284 3 23877142.649 23877142.535 23877141.791
+ 29.000 22.600
+ -7946105.948 5 -6191764.308 4 22950023.513 22950023.167 22950023.194
+ 33.800 29.900
+ 06 1 2 21 13 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23838806.513 7 -18575680.189 8 20277127.328 20277123.534 20277126.430
+ 47.000 49.000
+ -19487297.401 7 -15184888.967 7 20732413.425 20732412.315 20732413.054
+ 47.300 43.500
+ -13539662.099 6 -10550378.258 6 21815963.243 21815962.672 21815962.191
+ 41.800 37.000
+ -6852337.961 6 -5339478.525 5 22063911.715 22063912.041 22063911.226
+ 38.100 34.100
+ -6804541.782 4 -5302234.414 4 23221930.912 23221930.765 23221929.568
+ 28.400 24.200
+ -6146999.650 4 -4789865.298 4 23462620.636 23462620.124 23462621.004
+ 28.400 24.600
+ -7182213.660 5 -5596526.403 5 23355176.245 23355175.632 23355176.186
+ 35.300 30.400
+ -3530389.628 4 -2750949.793 3 24021263.199 24021258.600 24021262.052
+ 28.800 23.000
+ -2837365.157 4 -2210920.943 3 23893787.796 23893788.142 23893786.783
+ 27.900 23.400
+ -7998497.584 5 -6232588.936 4 22940053.282 22940053.319 22940053.072
+ 33.500 29.000
+ 06 1 2 21 14 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23866667.022 7 -18597389.674 8 20271825.599 20271821.822 20271824.736
+ 47.000 49.000
+ -19438671.335 7 -15146998.526 7 20741666.703 20741665.569 20741666.270
+ 47.500 43.500
+ -13531861.809 6 -10544300.110 6 21817447.781 21817447.078 21817446.492
+ 41.500 37.000
+ -6776553.926 6 -5280426.044 5 22078331.972 22078333.325 22078332.370
+ 37.900 33.600
+ -6917793.450 4 -5390482.402 4 23200379.256 23200379.480 23200378.172
+ 27.900 24.900
+ -6197329.348 4 -4829083.190 4 23453043.474 23453042.724 23453043.547
+ 29.900 24.600
+ -7085343.836 5 -5521043.404 4 23373609.622 23373609.068 23373609.263
+ 31.100 29.700
+ -3522616.500 4 -2744892.828 3 24022741.860 24022737.667 24022740.917
+ 28.600 22.100
+ -2749852.672 4 -2142729.420 3 23910441.041 23910440.962 23910439.998
+ 29.500 21.100
+ -8050343.323 5 -6272988.188 4 22930187.432 22930186.981 22930187.161
+ 33.200 28.800
+ 06 1 2 21 14 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23894155.396 7 -18618809.183 8 20266594.569 20266590.884 20266593.836
+ 47.300 48.900
+ -19389760.819 7 -15108886.437 7 20750973.893 20750972.979 20750973.560
+ 47.500 43.600
+ -13523458.928 7 -10537752.399 6 21819046.842 21819046.109 21819045.701
+ 42.000 37.100
+ -6700469.017 6 -5221139.123 5 22092812.388 22092811.787 22092811.027
+ 37.500 33.200
+ -7030838.376 4 -5478569.260 4 23178867.285 23178868.189 23178866.357
+ 27.400 26.200
+ -6247170.132 4 -4867920.134 4 23443559.925 23443558.482 23443559.495
+ 29.500 24.900
+ -6988270.115 5 -5445401.560 4 23392081.155 23392081.296 23392081.132
+ 30.400 29.500
+ -3514268.727 4 -2738388.025 3 24024331.001 24024326.058 24024329.294
+ 28.800 20.500
+ -2662299.536 5 -2074506.193 3 23927102.266 23927101.480 23927101.398
+ 30.600 22.100
+ -8101641.382 5 -6312960.666 4 22920425.680 22920425.443 22920425.403
+ 32.700 28.800
+ 06 1 2 21 15 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23921271.301 7 -18639938.460 8 20261434.763 20261430.905 20261433.932
+ 47.200 48.900
+ -19340567.075 7 -15070553.648 7 20760335.323 20760334.133 20760334.912
+ 47.500 43.400
+ -13514454.034 6 -10530735.598 6 21820760.246 21820759.470 21820759.178
+ 41.500 36.600
+ -6624084.078 6 -5161618.429 5 22107349.247 22107347.337 22107347.054
+ 37.200 33.500
+ -7143674.066 4 -5566493.066 4 23157395.555 23157396.669 23157394.286
+ 28.400 28.600
+ -6296519.403 4 -4906374.072 3 23434169.594 23434167.442 23434168.842
+ 29.900 23.800
+ -6890993.608 5 -5369601.692 5 23410593.313 23410593.182 23410593.249
+ 32.800 31.500
+ -3505346.143 4 -2731435.363 3 24026027.868 24026024.386 24026027.126
+ 27.900 21.100
+ -2574706.552 4 -2006251.935 3 23943770.296 23943769.614 23943769.485
+ 29.200 21.100
+ -8152390.007 5 -6352505.036 4 22910768.527 22910768.479 22910768.412
+ 33.200 29.000
+ 06 1 2 21 15 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23948014.615 7 -18660777.403 8 20256345.613 20256341.816 20256344.811
+ 47.300 49.000
+ -19291091.369 7 -15032001.151 7 20769750.028 20769748.984 20769749.749
+ 47.500 43.400
+ -13504847.632 6 -10523250.080 6 21822588.446 21822587.253 21822587.267
+ 41.700 36.500
+ -6547400.092 6 -5101864.678 5 22121940.620 22121939.337 22121939.284
+ 37.200 32.300
+ -7256298.102 4 -5654251.976 4 23135963.764 23135964.362 23135962.628
+ 28.800 27.600
+ -6345374.699 4 -4944443.109 3 23424871.590 23424870.245 23424871.310
+ 29.500 23.400
+ -6793515.376 5 -5293644.670 5 23429143.020 23429142.310 23429142.195
+ 32.000 30.100
+ -3495848.861 4 -2724034.861 3 24027836.345 24027831.461 24027834.906
+ 29.000 20.500
+ -2487074.696 5 -1937967.355 3 23960446.127 23960445.721 23960445.429
+ 31.000 21.600
+ -8202587.475 5 -6391619.909 4 22901215.788 22901215.864 22901215.750
+ 32.800 28.600
+ 06 1 2 21 16 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23974385.340 7 -18681326.011 8 20251327.302 20251323.625 20251326.528
+ 47.100 49.100
+ -19241334.806 7 -14993229.803 7 20779218.545 20779217.330 20779218.154
+ 47.500 43.300
+ -13494640.392 6 -10515296.392 6 21824530.591 21824529.766 21824529.488
+ 41.700 36.100
+ -6470418.039 6 -5041878.686 5 22136589.387 22136589.278 22136588.409
+ 37.000 33.100
+ -7368708.038 4 -5741844.019 4 23114572.581 23114573.468 23114571.482
+ 28.800 27.600
+ -6393733.703 4 -4982125.402 4 23415668.605 23415667.604 23415668.829
+ 28.800 24.200
+ -6695837.004 5 -5217531.666 5 23447731.775 23447730.327 23447730.391
+ 32.100 31.600
+ -3485776.851 4 -2716186.536 3 24029752.507 24029748.280 24029751.332
+ 28.800 23.400
+ -2399404.695 5 -1869653.079 3 23977129.327 23977129.733 23977128.501
+ 30.400 23.800
+ -8252231.985 5 -6430303.933 5 22891769.336 22891769.098 22891769.007
+ 33.500 30.400
+ 06 1 2 21 16 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24000383.225 7 -18701584.097 8 20246379.951 20246376.387 20246379.198
+ 47.100 49.100
+ -19191298.752 7 -14954240.672 7 20788739.918 20788739.041 20788739.590
+ 47.400 43.400
+ -13483832.837 6 -10506874.919 6 21826587.444 21826586.279 21826586.303
+ 41.800 36.000
+ -6393138.837 6 -4981661.149 5 22151294.565 22151294.545 22151293.928
+ 37.200 32.600
+ -7480901.211 4 -5829267.190 4 23093223.136 23093223.852 23093221.850
+ 28.800 28.100
+ -6441593.957 5 -5019419.067 3 23406561.929 23406560.398 23406561.810
+ 30.200 23.800
+ -6597959.676 5 -5141263.622 5 23466357.014 23466355.468 23466356.023
+ 33.200 30.600
+ -3475130.092 4 -2707890.381 3 24031778.200 24031774.257 24031776.970
+ 27.600 23.400
+ -2311697.350 4 -1801309.693 4 23993819.010 23993819.496 23993818.246
+ 29.500 24.200
+ -8301321.954 5 -6468555.836 4 22882428.119 22882427.047 22882427.581
+ 32.800 28.800
+ 06 1 2 21 17 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24026008.138 7 -18721551.555 8 20241503.742 20241500.042 20241503.047
+ 47.400 49.100
+ -19140984.212 7 -14915034.537 7 20798314.596 20798313.607 20798314.145
+ 47.400 43.400
+ -13472425.678 6 -10497986.221 6 21828758.046 21828756.970 21828756.841
+ 41.500 36.100
+ -6315563.271 6 -4921212.687 5 22166057.159 22166057.008 22166056.268
+ 37.600 33.000
+ -7592875.424 4 -5916519.737 4 23071914.858 23071915.403 23071913.794
+ 29.500 27.400
+ -6488953.108 4 -5056322.291 3 23397550.189 23397548.760 23397549.464
+ 29.200 23.000
+ -6499884.452 4 -5064841.429 5 23485018.714 23485019.000 23485018.535
+ 29.500 31.800
+ -3463908.340 4 -2699146.155 3 24033913.134 24033909.602 24033912.239
+ 27.600 21.600
+ -2223953.361 5 -1732937.767 4 24010516.942 24010516.282 24010515.971
+ 30.100 24.200
+ -8349855.618 5 -6506374.251 4 22873192.369 22873191.729 22873192.097
+ 33.800 29.900
+ 06 1 2 21 17 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24051260.003 7 -18741228.325 8 20236698.616 20236694.725 20236697.835
+ 47.400 49.100
+ -19090392.454 7 -14875612.388 7 20807941.879 20807940.960 20807941.470
+ 47.400 43.300
+ -13460419.531 6 -10488630.780 6 21831042.582 21831041.622 21831041.543
+ 41.200 36.000
+ -6237692.385 6 -4860534.107 5 22180875.969 22180875.164 22180874.705
+ 37.200 32.100
+ -7704627.969 5 -6003599.540 4 23050649.183 23050649.651 23050647.957
+ 30.400 27.400
+ -6535808.888 5 -5092833.272 4 23388633.290 23388632.101 23388633.053
+ 30.200 24.200
+ -6401613.011 5 -4988266.319 4 23503720.081 23503718.926 23503719.026
+ 30.800 29.200
+ -3452112.069 4 -2689954.230 3 24036158.697 24036154.821 24036157.189
+ 27.900 23.400
+ -2136173.389 4 -1664537.767 3 24027220.283 24027220.369 24027219.564
+ 27.900 23.800
+ -8397831.335 5 -6543757.876 5 22864062.133 22864062.257 22864062.080
+ 33.200 30.400
+ 06 1 2 21 18 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24076138.464 7 -18760614.128 8 20231964.460 20231960.653 20231963.607
+ 47.200 49.300
+ -19039524.922 7 -14835975.349 7 20817621.770 20817620.781 20817621.340
+ 47.400 43.400
+ -13447815.082 6 -10478809.124 6 21833441.151 21833440.293 21833440.024
+ 41.300 36.500
+ -6159527.094 6 -4799626.126 5 22195751.098 22195749.629 22195749.209
+ 36.800 32.100
+ -7816156.492 4 -6090504.810 4 23029425.813 23029426.543 23029424.580
+ 28.800 27.400
+ -6582159.049 4 -5128950.267 3 23379812.739 23379811.336 23379812.884
+ 29.900 23.800
+ -6303146.295 5 -4911539.009 4 23522458.271 23522456.557 23522457.045
+ 32.400 29.900
+ -3439741.075 4 -2680314.477 3 24038512.102 24038508.129 24038511.273
+ 28.100 19.300
+ -2048358.111 5 -1596110.307 4 24043931.507 24043931.334 24043930.742
+ 30.100 24.900
+ -8445247.482 5 -6580705.503 5 22855039.412 22855039.467 22855039.196
+ 33.000 31.000
+ 06 1 2 21 18 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24100643.732 7 -18779709.128 8 20227301.269 20227297.523 20227300.495
+ 47.300 49.400
+ -18988382.355 7 -14796123.995 7 20827353.867 20827352.806 20827353.460
+ 47.400 43.300
+ -13434613.131 6 -10468521.890 6 21835953.551 21835952.634 21835952.355
+ 41.300 36.500
+ -6081068.363 6 -4738489.487 5 22210680.494 22210679.611 22210679.201
+ 36.600 31.600
+ -7927458.526 4 -6177233.613 4 23008245.728 23008246.411 23008244.747
+ 29.900 28.800
+ -6628001.188 4 -5164671.383 4 23371089.515 23371088.143 23371089.549
+ 29.900 24.600
+ -6204485.244 5 -4834660.273 4 23541232.550 23541230.945 23541231.630
+ 31.100 28.100
+ -3426795.458 4 -2670226.965 3 24040976.358 24040971.584 24040975.234
+ 29.500 20.500
+ -1960508.378 4 -1527655.964 4 24060647.931 24060649.067 24060647.255
+ 29.500 25.300
+ -8492102.551 5 -6617215.916 5 22846123.635 22846123.076 22846123.097
+ 33.800 31.300
+ 06 1 2 21 19 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24124775.531 7 -18798513.116 8 20222708.992 20222705.332 20222708.218
+ 47.400 49.500
+ -18936966.368 7 -14756059.589 7 20837137.706 20837136.958 20837137.392
+ 47.200 43.100
+ -13420814.334 6 -10457769.574 6 21838579.335 21838578.747 21838578.227
+ 41.700 37.000
+ -6002317.107 6 -4677124.919 5 22225665.241 22225665.752 22225664.895
+ 36.500 32.100
+ -8038531.716 4 -6263784.068 4 22987109.398 22987109.431 22987108.194
+ 29.000 27.400
+ -6673332.864 5 -5199994.740 4 23362463.388 23362462.315 23362462.837
+ 30.200 25.900
+ -6105631.506 5 -4757631.392 5 23560043.242 23560042.495 23560042.691
+ 31.300 30.100
+ -3413275.320 4 -2659691.739 3 24043548.527 24043544.497 24043547.209
+ 27.100 20.500
+ -1872625.251 4 -1459175.599 3 24077372.431 24077371.534 24077371.422
+ 28.400 22.100
+ -8538394.812 5 -6653287.782 5 22837314.656 22837313.735 22837314.148
+ 34.400 30.400
+ 06 1 2 21 19 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24148533.785 7 -18817026.030 8 20218187.843 20218184.263 20218187.076
+ 47.200 49.500
+ -18885277.902 7 -14715782.861 7 20846973.990 20846972.818 20846973.506
+ 47.200 42.900
+ -13406419.527 6 -10446552.841 6 21841318.562 21841317.961 21841317.467
+ 41.600 37.000
+ -5923274.455 6 -4615533.277 5 22240706.911 22240707.109 22240706.537
+ 36.700 31.600
+ -8149373.722 5 -6350154.389 4 22966016.766 22966016.839 22966015.662
+ 30.400 27.400
+ -6718151.840 4 -5234918.592 4 23353935.158 23353933.169 23353934.492
+ 29.700 25.300
+ -6006586.339 5 -4680453.362 4 23578891.711 23578890.104 23578890.452
+ 32.000 27.600
+ -3399181.046 4 -2648709.191 3 24046231.116 24046226.791 24046229.677
+ 29.000 22.100
+ -1784709.179 4 -1390669.590 3 24094101.457 24094102.029 24094100.458
+ 26.800 22.600
+ -8584122.729 5 -6688919.877 5 22828612.086 22828612.057 22828611.994
+ 34.700 30.400
+ 06 1 2 21 20 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24171918.446 7 -18835247.836 8 20213737.838 20213734.246 20213737.114
+ 47.100 49.500
+ -18833318.185 7 -14675294.766 7 20856861.634 20856860.529 20856861.154
+ 47.200 42.900
+ -13391429.390 6 -10434872.209 6 21844171.055 21844170.457 21844169.969
+ 41.500 37.200
+ -5843941.235 6 -4553715.228 5 22255805.226 22255804.132 22255803.571
+ 36.200 32.400
+ -8259981.893 5 -6436342.530 4 22944968.578 22944969.003 22944967.438
+ 30.600 29.000
+ -6762456.118 4 -5269441.373 4 23345502.941 23345502.263 23345503.071
+ 29.200 25.600
+ -5907351.098 5 -4603127.230 4 23597774.148 23597774.230 23597773.667
+ 31.000 28.600
+ -3384512.859 4 -2637279.414 3 24049021.969 24049017.945 24049020.981
+ 29.000 22.100
+ -1696760.983 4 -1322138.519 3 24110837.697 24110837.724 24110836.760
+ 25.900 21.600
+ -8629284.835 5 -6724111.098 5 22820018.007 22820018.126 22820017.932
+ 34.300 31.000
+ 06 1 2 21 20 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24194929.234 7 -18853178.308 8 20209359.052 20209355.450 20209358.275
+ 47.100 49.700
+ -18781088.566 7 -14634596.352 7 20866800.313 20866799.446 20866799.979
+ 47.200 43.000
+ -13375844.944 6 -10422728.478 6 21847136.834 21847135.997 21847135.743
+ 41.700 36.700
+ -5764318.279 6 -4491671.410 5 22270957.506 22270955.558 22270955.619
+ 36.500 32.300
+ -8370353.737 5 -6522346.517 4 22923965.574 22923965.756 22923964.459
+ 31.500 28.100
+ -6806243.318 4 -5303561.217 4 23337170.098 23337169.689 23337170.270
+ 29.700 24.900
+ -5807926.882 4 -4525653.829 4 23616694.873 23616693.070 23616693.849
+ 29.200 26.800
+ -3369270.940 4 -2625402.575 3 24051922.706 24051918.243 24051921.275
+ 28.600 21.100
+ -1608781.370 4 -1253582.972 3 24127579.959 24127580.023 24127578.887
+ 27.900 21.100
+ -8673879.492 5 -6758860.159 5 22811532.868 22811531.935 22811532.324
+ 34.100 31.300
+ 06 1 2 21 21 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24217566.173 7 -18870817.470 8 20205051.396 20205047.839 20205050.643
+ 47.300 49.700
+ -18728589.885 7 -14593688.282 7 20876790.588 20876789.665 20876790.243
+ 47.400 42.800
+ -13359666.934 6 -10410122.237 6 21850215.483 21850214.335 21850214.278
+ 41.400 36.400
+ -5684406.919 6 -4429402.863 5 22286162.286 22286162.434 22286161.666
+ 36.400 32.700
+ -8480486.795 4 -6608164.433 4 22903007.304 22903007.818 22903006.194
+ 29.000 28.400
+ -6849511.154 5 -5337276.396 4 23328938.156 23328936.291 23328937.530
+ 30.800 25.900
+ -5708315.094 5 -4448034.279 4 23635650.785 23635649.331 23635649.673
+ 32.100 28.600
+ -3353455.085 4 -2613078.515 3 24054931.998 24054928.091 24054930.755
+ 27.900 22.100
+ -1520771.139 4 -1185003.576 3 24144327.566 24144327.718 24144326.724
+ 28.400 21.100
+ -8717905.275 5 -6793165.931 5 22803154.803 22803154.185 22803154.229
+ 34.400 31.300
+ 06 1 2 21 21 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24239829.020 7 -18888165.134 8 20200815.029 20200811.350 20200814.200
+ 47.300 49.900
+ -18675823.613 7 -14552571.697 7 20886831.717 20886830.714 20886831.321
+ 47.400 42.700
+ -13342896.223 6 -10397054.148 6 21853406.703 21853405.627 21853405.516
+ 41.400 36.400
+ -5604207.961 6 -4366910.217 5 22301422.419 22301423.684 22301422.950
+ 36.600 32.000
+ -8590378.801 5 -6693794.530 4 22882096.075 22882096.242 22882094.886
+ 31.000 28.600
+ -6892257.522 5 -5370585.230 4 23320804.216 23320802.369 23320803.509
+ 31.000 26.200
+ -5608517.035 5 -4370269.525 4 23654640.850 23654639.987 23654640.074
+ 30.400 27.600
+ -3337065.602 4 -2600307.463 3 24058050.564 24058046.869 24058049.179
+ 27.400 19.900
+ -1432731.221 4 -1116401.052 3 24161080.665 24161080.637 24161079.864
+ 26.500 21.600
+ -8761360.661 5 -6827027.246 5 22794885.375 22794884.759 22794884.982
+ 34.400 31.300
+ 06 1 2 21 22 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24261717.742 7 -18905221.266 8 20196649.516 20196646.060 20196648.837
+ 47.100 49.900
+ -18622790.913 7 -14511247.510 7 20896923.587 20896922.400 20896923.161
+ 47.400 42.600
+ -13325533.717 6 -10383524.922 6 21856710.496 21856709.600 21856709.378
+ 40.800 36.400
+ -5523722.453 6 -4304194.252 5 22316740.241 22316739.505 22316738.967
+ 36.500 31.500
+ -8700027.168 4 -6779234.797 4 22861230.393 22861231.080 22861229.114
+ 29.900 29.900
+ -6934480.183 4 -5403485.966 4 23312768.144 23312766.791 23312767.873
+ 29.700 24.600
+ -5508533.961 5 -4292360.682 4 23673667.538 23673666.553 23673667.094
+ 31.600 28.400
+ -3320103.176 4 -2587089.971 3 24061278.582 24061274.679 24061277.882
+ 28.600 21.100
+ -1344662.202 4 -1047775.828 3 24177840.389 24177840.166 24177839.442
+ 27.400 21.100
+ -8804244.177 5 -6860442.949 5 22786724.361 22786724.434 22786724.158
+ 34.100 31.000
+ 06 1 2 21 22 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24283232.311 7 -18921985.856 8 20192555.413 20192552.003 20192554.643
+ 47.000 50.000
+ -18569492.946 7 -14469716.621 7 20907065.590 20907064.823 20907065.321
+ 47.500 42.500
+ -13307580.367 6 -10369535.299 5 21860126.850 21860125.741 21860125.736
+ 40.900 35.800
+ -5442951.316 5 -4241255.745 5 22332112.329 22332109.738 22332109.990
+ 35.900 31.600
+ -8809429.712 5 -6864483.494 4 22840411.861 22840412.181 22840410.777
+ 30.600 28.400
+ -6976177.009 5 -5435976.973 4 23304833.929 23304831.906 23304833.775
+ 31.000 24.900
+ -5408367.258 5 -4214308.745 5 23692728.702 23692727.937 23692727.942
+ 30.200 30.600
+ -3302567.752 4 -2573425.983 3 24064615.363 24064611.515 24064614.244
+ 26.500 22.100
+ -1256564.817 4 -979128.540 3 24194604.682 24194604.823 24194603.644
+ 27.600 22.100
+ -8846554.274 5 -6893411.831 5 22778673.052 22778672.892 22778672.789
+ 34.800 31.300
+ 06 1 2 21 23 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24304372.542 7 -18938458.749 8 20188532.714 20188529.142 20188531.881
+ 47.100 50.000
+ -18515930.721 7 -14427979.820 7 20917258.290 20917257.277 20917257.927
+ 47.400 42.200
+ -13289037.104 6 -10355086.000 5 21863655.432 21863654.467 21863654.358
+ 41.000 35.800
+ -5361895.648 5 -4178095.530 5 22347536.874 22347534.507 22347534.350
+ 34.900 32.300
+ -8918583.898 5 -6949538.675 4 22819640.538 22819640.560 22819639.167
+ 31.000 27.400
+ -7017346.029 5 -5468056.693 4 23296999.360 23296998.543 23296999.207
+ 30.100 26.500
+ -5308018.115 4 -4136114.661 4 23711823.410 23711823.463 23711823.555
+ 29.200 28.800
+ -3284459.700 4 -2559315.803 3 24068061.392 24068057.266 24068059.628
+ 26.800 23.800
+ -1168439.347 4 -910459.328 3 24211373.540 24211374.150 24211372.635
+ 26.500 23.000
+ -8888289.669 5 -6925932.912 5 22770731.721 22770730.632 22770731.290
+ 35.300 31.000
+ 06 1 2 21 23 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24325138.289 7 -18954639.841 8 20184581.169 20184577.479 20184580.326
+ 47.300 49.900
+ -18462105.511 7 -14386038.093 7 20927500.682 20927499.891 20927500.403
+ 47.500 42.100
+ -13269904.839 6 -10340177.740 5 21867296.189 21867295.391 21867295.158
+ 41.200 35.600
+ -5280556.478 5 -4114714.409 5 22363013.098 22363012.700 22363011.973
+ 35.300 31.500
+ -9027487.236 5 -7034398.423 4 22798917.145 22798917.049 22798915.859
+ 31.300 28.600
+ -7057984.806 4 -5499723.250 4 23289266.120 23289265.236 23289265.600
+ 29.900 25.600
+ -5207487.940 5 -4057779.477 4 23730953.469 23730953.591 23730953.519
+ 30.200 26.800
+ -3265779.525 4 -2544759.834 3 24071615.572 24071612.141 24071614.537
+ 26.500 21.600
+ -1080286.628 4 -841768.906 3 24228149.341 24228148.707 24228148.425
+ 27.900 19.900
+ -8929448.949 5 -6958005.048 5 22762899.202 22762898.653 22762898.793
+ 34.900 31.300
+ 06 1 2 21 24 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24345529.610 7 -18970529.168 8 20180700.921 20180697.095 20180700.012
+ 47.300 50.000
+ -18408018.689 7 -14343892.515 7 20937793.385 20937792.213 20937792.938
+ 47.300 42.100
+ -13250184.650 6 -10324811.357 6 21871049.145 21871048.299 21871047.994
+ 41.400 36.400
+ -5198934.836 5 -4051113.137 5 22378543.264 22378544.670 22378544.030
+ 35.700 30.800
+ -9136137.484 5 -7119060.923 4 22778241.541 22778241.885 22778240.415
+ 32.300 29.000
+ -7098091.444 5 -5530975.171 4 23281634.313 23281632.581 23281634.250
+ 31.300 25.900
+ -5106777.585 4 -3979303.900 4 23750118.334 23750117.871 23750118.149
+ 29.900 26.800
+ -3246527.464 4 -2529758.187 3 24075279.919 24075275.652 24075278.622
+ 28.400 20.500
+ -992107.638 4 -773058.004 3 24244928.463 24244928.978 24244927.575
+ 27.400 19.900
+ -8970030.668 5 -6989627.158 5 22755176.769 22755176.183 22755176.389
+ 34.900 31.000
+ 06 1 2 21 24 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24365546.230 7 -18986126.527 8 20176891.820 20176888.054 20176891.088
+ 47.400 49.900
+ -18353671.147 7 -14301543.782 6 20948135.404 20948134.088 20948134.891
+ 47.100 41.900
+ -13229877.579 6 -10308987.673 6 21874913.863 21874912.881 21874912.687
+ 41.800 36.500
+ -5117031.883 5 -3987292.663 5 22394130.169 22394130.191 22394129.776
+ 35.400 30.600
+ -9244532.212 5 -7203524.316 4 22757614.925 22757614.673 22757613.587
+ 32.400 29.000
+ -7137663.944 5 -5561810.871 4 23274103.360 23274102.387 23274103.429
+ 30.200 26.500
+ -5005888.793 5 -3900689.248 4 23769317.594 23769317.112 23769317.247
+ 30.600 27.400
+ -3226703.999 4 -2514311.347 3 24079051.488 24079047.567 24079050.399
+ 25.600 20.500
+ -903902.848 4 -704326.968 3 24261713.070 24261713.509 24261712.397
+ 28.100 19.900
+ -9010033.560 5 -7020798.230 4 22747564.026 22747563.427 22747563.730
+ 33.800 29.200
+ 06 1 2 21 25 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24385188.279 7 -19001432.008 8 20173153.904 20173150.270 20173153.182
+ 47.300 50.000
+ -18299064.294 7 -14258992.978 6 20958526.496 20958525.471 20958526.092
+ 46.900 41.800
+ -13208984.609 6 -10292707.447 6 21878889.253 21878888.767 21878888.228
+ 41.100 36.700
+ -5034848.624 5 -3923253.784 5 22409771.646 22409769.325 22409769.408
+ 34.800 30.400
+ -9352668.910 5 -7287786.651 4 22737036.971 22737037.156 22737036.019
+ 32.400 28.800
+ -7176700.099 5 -5592228.620 4 23266675.871 23266674.433 23266675.421
+ 31.100 26.800
+ -4904822.800 4 -3821936.537 4 23788549.295 23788548.690 23788548.791
+ 28.600 25.600
+ -3206309.405 4 -2498419.433 3 24082933.015 24082928.973 24082931.590
+ 28.400 21.600
+ -815672.761 4 -635576.280 3 24278502.183 24278503.562 24278501.594
+ 27.400 22.100
+ -9049456.261 5 -7051517.199 5 22740062.176 22740061.895 22740061.909
+ 34.500 30.600
+ 06 1 2 21 25 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24404455.811 7 -19016445.660 8 20169487.449 20169483.849 20169486.669
+ 47.300 50.000
+ -18244199.027 7 -14216240.821 6 20968967.070 20968965.984 20968966.604
+ 46.800 41.800
+ -13187506.800 6 -10275971.499 6 21882976.370 21882975.883 21882975.216
+ 41.200 36.900
+ -4952386.130 5 -3858997.342 5 22425463.314 22425461.471 22425461.302
+ 34.300 30.800
+ -9460545.229 5 -7371846.087 5 22716508.336 22716509.331 22716507.489
+ 32.400 31.100
+ -7215197.856 5 -5622226.870 4 23259349.807 23259347.919 23259349.322
+ 31.000 26.200
+ -4803581.084 5 -3743046.906 4 23807814.966 23807815.019 23807815.134
+ 30.100 28.400
+ -3185344.253 4 -2482082.953 4 24086922.351 24086919.151 24086921.165
+ 27.900 24.900
+ -727418.208 4 -566806.488 3 24295298.116 24295297.610 24295296.943
+ 28.400 21.100
+ -9088297.390 5 -7081782.983 5 22732670.813 22732670.653 22732670.434
+ 34.000 30.800
+ 06 1 2 21 26 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24423348.595 7 -19031167.300 8 20165892.293 20165888.688 20165891.444
+ 47.200 50.100
+ -18189076.679 7 -14173288.337 6 20979456.728 20979455.454 20979456.186
+ 46.800 41.900
+ -13165445.284 6 -10258780.702 6 21887174.138 21887173.851 21887173.086
+ 40.900 36.500
+ -4869645.385 5 -3794524.065 5 22441206.639 22441206.271 22441205.822
+ 34.900 30.100
+ -9568158.775 5 -7455700.782 5 22696031.042 22696031.018 22696029.537
+ 32.300 31.300
+ -7253155.534 4 -5651804.285 4 23252126.178 23252124.968 23252125.900
+ 29.900 26.500
+ -4702164.786 4 -3664021.281 4 23827112.383 23827113.543 23827113.795
+ 26.500 26.800
+ -3163808.893 4 -2465302.153 3 24091020.127 24091016.423 24091019.227
+ 28.100 21.600
+ -639140.045 4 -498018.297 3 24312096.296 24312096.234 24312095.274
+ 25.900 20.500
+ -9126555.652 5 -7111594.615 5 22725390.585 22725390.498 22725390.196
+ 34.300 31.300
+ 06 1 2 21 26 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24441866.753 7 -19045597.024 8 20162368.169 20162364.746 20162367.458
+ 47.400 50.000
+ -18133698.284 7 -14130136.341 6 20989994.736 20989993.659 20989994.298
+ 47.000 41.800
+ -13142801.162 6 -10241135.934 6 21891483.035 21891482.855 21891481.976
+ 41.000 36.000
+ -4786627.607 5 -3729834.907 5 22457002.510 22457004.629 22457003.446
+ 34.900 31.300
+ -9675507.096 5 -7539348.783 4 22675602.789 22675603.094 22675601.607
+ 32.000 29.500
+ -7290571.019 5 -5680959.174 4 23245006.582 23245005.688 23245006.310
+ 30.800 27.600
+ -4600575.472 4 -3584860.834 4 23846444.006 23846445.419 23846445.709
+ 27.900 27.900
+ -3141703.932 4 -2448077.521 4 24095226.713 24095223.452 24095225.579
+ 27.100 24.900
+ -550838.913 4 -429212.235 3 24328898.818 24328899.918 24328898.076
+ 25.300 22.100
+ -9164229.819 5 -7140951.101 5 22718221.336 22718221.228 22718221.165
+ 34.900 30.800
+ 06 1 2 21 27 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24460009.945 7 -19059734.567 8 20158915.715 20158912.088 20158915.053
+ 47.400 50.000
+ -18078064.936 7 -14086785.682 6 21000581.343 21000580.287 21000580.905
+ 47.000 41.700
+ -13119575.576 6 -10223038.076 6 21895902.891 21895902.490 21895901.876
+ 40.900 36.400
+ -4703333.739 5 -3664930.619 5 22472853.991 22472854.638 22472853.609
+ 34.800 31.000
+ -9782587.699 5 -7622788.168 5 22655225.720 22655226.242 22655224.759
+ 31.800 30.100
+ -7327442.380 5 -5709690.098 4 23237990.319 23237989.051 23237989.810
+ 30.400 27.400
+ -4498814.348 4 -3505566.478 4 23865809.475 23865809.724 23865810.354
+ 29.200 26.800
+ -3119030.039 4 -2430409.554 3 24099541.506 24099537.794 24099540.468
+ 26.800 22.600
+ -462515.456 4 -360388.763 3 24345707.155 24345707.194 24345706.249
+ 26.500 20.500
+ -9201318.716 5 -7169851.523 5 22711163.582 22711163.436 22711163.543
+ 34.800 31.800
+ 06 1 2 21 27 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24477777.983 7 -19073579.785 8 20155534.587 20155530.906 20155533.865
+ 47.400 50.000
+ -18022177.926 7 -14043237.362 6 21011216.247 21011215.219 21011215.861
+ 46.900 41.800
+ -13095769.701 6 -10204488.049 6 21900433.213 21900432.595 21900432.087
+ 41.300 36.100
+ -4619764.995 5 -3599812.136 5 22488758.542 22488757.396 22488756.636
+ 33.600 30.600
+ -9889398.359 5 -7706017.192 4 22634900.591 22634900.676 22634899.261
+ 32.000 29.700
+ -7363767.437 5 -5737995.314 4 23231077.825 23231076.888 23231077.295
+ 30.600 27.400
+ -4396882.830 4 -3426139.358 4 23885206.376 23885206.896 23885207.312
+ 29.700 27.400
+ -3095787.211 4 -2412298.256 3 24103964.515 24103960.595 24103963.371
+ 27.600 23.000
+ -374170.278 3 -291548.329 2 24362518.346 24362517.822 24362517.529
+ 23.800 17.800
+ -9237820.981 5 -7198294.826 5 22704217.714 22704217.381 22704217.415
+ 34.900 31.500
+ 06 1 2 21 28 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24495171.015 7 -19087132.789 8 20152224.869 20152221.114 20152224.039
+ 47.300 50.100
+ -17966038.417 7 -13999492.284 6 21021899.321 21021898.139 21021898.864
+ 46.700 41.500
+ -13071384.687 6 -10185486.742 6 21905073.612 21905072.835 21905072.463
+ 40.900 36.500
+ -4535922.403 5 -3534480.300 5 22504713.999 22504712.125 22504711.813
+ 34.300 31.000
+ -9995936.661 5 -7789034.000 5 22614627.290 22614626.960 22614625.985
+ 33.000 30.100
+ -7399544.279 5 -5765873.340 4 23224270.454 23224268.131 23224270.023
+ 32.100 26.800
+ -4294782.166 5 -3346580.368 3 23904637.534 23904635.180 23904636.586
+ 31.000 23.000
+ -3071976.459 4 -2393744.433 3 24108495.996 24108491.463 24108494.680
+ 28.600 23.000
+ -285803.915 3 -222691.437 3 24379333.968 24379334.254 24379333.062
+ 23.400 21.100
+ -9273735.501 5 -7226280.156 5 22697383.304 22697382.938 22697383.019
+ 34.700 31.800
+ 06 1 2 21 28 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24512189.071 7 -19100393.603 8 20148986.279 20148982.781 20148985.534
+ 47.300 50.100
+ -17909647.492 7 -13955551.298 6 21032630.069 21032628.989 21032629.732
+ 46.900 41.600
+ -13046421.780 6 -10166035.134 6 21909824.029 21909822.995 21909822.906
+ 41.000 36.300
+ -4451807.077 5 -3468935.932 5 22520719.214 22520718.793 22520717.989
+ 34.500 30.800
+ -10102200.189 5 -7871836.704 5 22594405.835 22594405.773 22594404.501
+ 33.000 30.100
+ -7434771.095 5 -5793322.782 4 23217566.182 23217564.914 23217566.007
+ 32.300 27.100
+ -4192513.753 4 -3266890.735 4 23924096.877 23924097.205 23924096.616
+ 27.100 28.100
+ -3047598.358 5 -2374748.499 3 24113134.543 24113130.780 24113133.588
+ 30.100 23.000
+ -197417.327 4 -153818.828 3 24396154.409 24396153.287 24396153.486
+ 25.600 20.500
+ -9309060.975 5 -7253806.481 5 22690661.330 22690660.676 22690660.864
+ 35.100 31.500
+ 06 1 2 21 29 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24528831.867 7 -19113362.010 8 20145819.473 20145815.772 20145818.586
+ 47.300 50.200
+ -17853006.219 7 -13911415.235 6 21043408.711 21043407.528 21043408.175
+ 46.800 41.500
+ -13020882.198 6 -10146134.162 5 21914683.887 21914682.965 21914682.839
+ 40.700 35.600
+ -4367420.274 5 -3403180.018 5 22536775.582 22536776.983 22536776.114
+ 34.600 30.400
+ -10208186.538 5 -7954423.439 5 22574237.275 22574237.332 22574236.088
+ 33.900 30.600
+ -7469446.070 5 -5820342.216 4 23210967.103 23210966.364 23210967.109
+ 31.800 25.600
+ -4090078.893 4 -3187071.389 4 23943591.478 23943589.632 23943590.331
+ 28.400 24.900
+ -3022653.329 4 -2355310.823 3 24117882.016 24117877.419 24117880.479
+ 28.800 21.100
+ -109010.885 4 -84930.675 3 24412976.505 24412977.229 24412975.508
+ 25.600 20.500
+ -9343796.312 5 -7280872.972 5 22684051.106 22684050.810 22684050.746
+ 35.200 32.000
+ 06 1 2 21 29 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24545099.712 7 -19126038.244 8 20142723.896 20142720.020 20142723.030
+ 47.500 50.100
+ -17796115.845 7 -13867085.071 6 21054234.491 21054233.549 21054234.052
+ 46.900 41.800
+ -12994767.192 6 -10125784.816 6 21919653.732 21919652.760 21919652.502
+ 40.900 36.200
+ -4282763.086 5 -3337213.402 5 22552884.971 22552886.780 22552885.779
+ 33.800 30.600
+ -10313893.712 5 -8036792.612 5 22554121.624 22554121.862 22554120.385
+ 33.500 30.100
+ -7503567.110 5 -5846930.016 4 23204474.977 23204472.984 23204474.700
+ 32.400 25.900
+ -3987478.968 4 -3107123.405 4 23963114.476 23963114.165 23963113.593
+ 26.200 26.200
+ -2997142.160 4 -2335431.933 3 24122736.096 24122731.967 24122734.979
+ 28.100 20.500
+ -20584.948 4 -16027.362 3 24429802.539 24429803.908 24429801.823
+ 24.900 18.600
+ -9377940.429 5 -7307478.765 5 22677553.853 22677553.415 22677553.492
+ 35.400 32.400
+ 06 1 2 21 30 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24560992.570 7 -19138422.279 8 20139699.323 20139695.723 20139698.556
+ 47.500 50.300
+ -17738977.436 7 -13822561.630 6 21065107.675 21065106.500 21065107.192
+ 46.800 41.400
+ -12968078.057 6 -10104988.088 6 21924732.438 21924731.591 21924731.233
+ 40.700 36.300
+ -4197836.525 5 -3271036.914 5 22569048.340 22569048.026 22569046.936
+ 33.900 30.600
+ -10419319.147 5 -8118942.251 5 22534059.794 22534059.934 22534058.666
+ 33.100 30.100
+ -7537132.465 5 -5873084.806 4 23198087.277 23198085.559 23198087.102
+ 32.400 24.900
+ -3884715.285 4 -3027047.865 4 23982669.358 23982669.133 23982668.690
+ 25.300 25.600
+ -2971065.278 4 -2315112.277 3 24127698.319 24127694.454 24127697.263
+ 29.900 23.800
+ 67859.478 4 52890.362 2 24446634.510 24446633.161 24446633.391
+ 24.900 16.100
+ -9411492.145 5 -7333622.943 5 22671168.608 22671168.524 22671168.607
+ 34.700 31.600
+ 06 1 2 21 30 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24576510.102 7 -19150513.858 8 20136746.440 20136742.947 20136745.699
+ 47.400 50.400
+ -17681592.003 7 -13777845.706 6 21076027.651 21076026.518 21076027.172
+ 46.600 41.300
+ -12940816.125 6 -10083745.034 6 21929919.994 21929919.296 21929918.941
+ 40.800 36.000
+ -4112641.834 5 -3204651.479 4 22585261.730 22585259.715 22585259.458
+ 33.500 29.700
+ -10524460.493 5 -8200870.509 5 22514052.454 22514052.326 22514051.202
+ 34.300 30.600
+ -7570140.544 5 -5898805.362 4 23191806.146 23191804.506 23191805.865
+ 31.600 25.300
+ -3781789.404 4 -2946845.911 4 24002255.473 24002255.505 24002255.206
+ 27.100 25.600
+ -2944423.549 4 -2294352.484 3 24132767.951 24132764.279 24132766.766
+ 29.000 23.800
+ 156321.663 4 121821.964 2 24463468.407 24463467.312 24463467.249
+ 25.300 17.800
+ -9444450.505 5 -7359304.770 5 22664897.678 22664896.906 22664897.231
+ 35.400 32.100
+ 06 1 2 21 31 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24591652.606 7 -19162313.204 8 20133865.176 20133861.444 20133864.334
+ 47.300 50.500
+ -17623960.950 7 -13732938.387 6 21086994.371 21086993.359 21086993.972
+ 46.700 41.300
+ -12912982.753 6 -10062056.692 6 21935216.947 21935215.813 21935215.646
+ 41.000 36.200
+ -4027180.050 5 -3138057.909 5 22601524.089 22601523.077 22601522.302
+ 32.800 30.400
+ -10629315.186 5 -8282575.402 5 22494099.260 22494099.078 22494098.020
+ 34.100 31.000
+ -7602589.614 5 -5924090.314 3 23185631.313 23185629.198 23185630.805
+ 31.100 23.400
+ -3678702.570 4 -2866518.523 4 24021874.186 24021872.224 24021872.894
+ 29.700 24.200
+ -2917217.682 5 -2273153.111 3 24137945.683 24137941.018 24137944.447
+ 30.800 21.600
+ 244801.176 4 190767.040 3 24480304.651 24480305.004 24480303.755
+ 25.900 19.300
+ -9476814.301 5 -7384523.296 5 22658738.548 22658738.302 22658738.209
+ 35.400 31.000
+ 06 1 2 21 31 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24606419.932 7 -19173820.202 8 20131054.822 20131051.191 20131054.128
+ 47.500 50.200
+ -17566085.285 7 -13687840.461 6 21098007.763 21098006.696 21098007.396
+ 46.900 41.000
+ -12884579.086 6 -10039923.968 6 21940621.644 21940620.984 21940620.538
+ 40.700 36.500
+ -3941452.412 5 -3071257.197 4 22617835.465 22617836.231 22617835.168
+ 34.000 29.700
+ -10733880.966 5 -8364055.159 5 22474200.610 22474200.636 22474199.345
+ 33.400 31.100
+ -7634477.576 5 -5948938.051 4 23179563.696 23179561.568 23179562.946
+ 31.100 26.500
+ -3575456.161 4 -2786066.817 4 24041520.813 24041519.750 24041519.696
+ 28.100 27.100
+ -2889448.346 4 -2251514.640 3 24143229.445 24143224.932 24143228.185
+ 27.900 20.500
+ 333297.601 4 259725.282 3 24497145.542 24497145.754 24497144.526
+ 25.600 19.300
+ -9508582.584 6 -7409277.798 5 22652693.691 22652692.762 22652693.199
+ 36.000 30.800
+ 06 1 2 21 32 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24620812.003 7 -19185034.797 8 20128316.016 20128312.403 20128315.238
+ 47.100 50.300
+ -17507966.046 7 -13642552.740 6 21109067.700 21109066.362 21109067.233
+ 46.800 40.700
+ -12855606.684 6 -10017348.076 6 21946134.686 21946134.288 21946133.686
+ 40.500 36.400
+ -3855460.201 5 -3004250.289 4 22634197.931 22634200.317 22634198.908
+ 32.700 29.700
+ -10838155.693 5 -8445308.103 5 22454357.921 22454357.797 22454356.401
+ 33.100 31.000
+ -7665803.141 5 -5973347.535 4 23173601.687 23173600.876 23173601.405
+ 31.000 26.200
+ -3472051.784 5 -2705491.990 4 24061198.700 24061196.554 24061197.708
+ 30.600 25.300
+ -2861116.219 5 -2229437.647 3 24148621.262 24148617.064 24148619.972
+ 30.200 21.600
+ 421810.014 4 328695.993 2 24513989.030 24513987.661 24513987.923
+ 26.500 16.100
+ -9539754.347 5 -7433567.483 5 22646761.804 22646760.789 22646761.640
+ 35.900 31.000
+ 06 1 2 21 32 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24634828.817 7 -19195956.984 8 20125648.585 20125645.163 20125647.779
+ 47.200 50.400
+ -17449604.554 7 -13597076.246 6 21120173.348 21120172.160 21120172.954
+ 46.800 40.700
+ -12826066.885 6 -9994330.058 6 21951756.060 21951755.424 21951754.834
+ 40.000 36.300
+ -3769204.512 5 -2937038.103 4 22650614.252 22650614.144 22650613.226
+ 33.200 29.500
+ -10942136.905 5 -8526332.348 5 22434570.912 22434570.959 22434569.505
+ 34.100 32.000
+ -7696564.342 5 -5997317.280 4 23167747.298 23167746.777 23167747.295
+ 31.600 25.600
+ -3368490.648 4 -2624795.012 4 24080905.915 24080903.806 24080904.311
+ 27.900 26.500
+ -2832222.301 5 -2206922.898 4 24154119.675 24154115.437 24154118.486
+ 30.400 24.200
+ 510337.754 4 397678.665 2 24530834.714 24530834.139 24530833.900
+ 26.200 16.100
+ -9570328.538 5 -7457391.513 5 22640943.403 22640942.537 22640943.133
+ 35.900 30.800
+ 06 1 2 21 33 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24648470.291 7 -19206586.697 8 20123052.844 20123049.264 20123052.069
+ 47.300 50.400
+ -17391001.651 7 -13551411.649 6 21131324.925 21131323.949 21131324.586
+ 46.600 40.700
+ -12795961.216 6 -9970871.111 6 21957484.918 21957484.240 21957483.856
+ 40.000 36.300
+ -3682686.487 5 -2869621.504 4 22667079.269 22667077.860 22667077.310
+ 33.100 28.600
+ -11045822.281 5 -8607126.051 5 22414839.413 22414840.182 22414838.433
+ 33.900 32.000
+ -7726759.287 5 -6020845.780 4 23162002.190 23162000.671 23162002.068
+ 31.100 25.300
+ -3264774.006 4 -2543976.934 4 24100641.911 24100640.434 24100640.830
+ 29.900 26.200
+ -2802767.247 4 -2183970.917 3 24159724.302 24159720.449 24159723.008
+ 29.000 23.000
+ 598880.166 3 466672.775 3 24547684.101 24547683.903 24547683.124
+ 23.000 19.300
+ -9600304.203 5 -7480749.161 5 22635238.993 22635238.866 22635238.796
+ 35.800 32.000
+ 06 1 2 21 33 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24661736.530 7 -19216924.024 8 20120528.392 20120524.697 20120527.606
+ 47.400 50.300
+ -17332158.622 7 -13505559.935 6 21142522.638 21142521.421 21142522.209
+ 46.600 40.600
+ -12765291.000 6 -9946972.245 5 21963321.153 21963320.466 21963320.013
+ 40.100 35.700
+ -3595907.306 5 -2802001.392 4 22683592.815 22683591.228 22683590.764
+ 32.300 28.600
+ -11149209.668 5 -8687687.560 5 22395165.957 22395166.081 22395164.626
+ 34.000 31.600
+ -7756386.651 5 -6043932.001 4 23156364.540 23156363.123 23156364.197
+ 32.100 26.200
+ -3160903.208 4 -2463038.616 4 24120407.917 24120406.261 24120406.461
+ 25.300 25.300
+ -2772751.856 4 -2160582.286 3 24165436.637 24165432.116 24165435.340
+ 29.500 22.600
+ 687437.030 3 535678.086 3 24564535.701 24564535.511 24564534.869
+ 23.000 19.900
+ -9629680.390 6 -7503639.682 5 22629649.360 22629648.574 22629649.058
+ 36.100 31.800
+ 06 1 2 21 34 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24674627.292 7 -19226968.770 8 20118075.341 20118071.665 20118074.552
+ 47.300 50.200
+ -17273076.629 7 -13459522.012 6 21153765.636 21153764.365 21153765.189
+ 46.600 40.500
+ -12734057.774 6 -9922634.679 5 21969264.603 21969263.829 21969263.459
+ 39.500 35.700
+ -3508868.180 5 -2734178.747 4 22700154.675 22700154.450 22700153.553
+ 32.100 28.600
+ -11252296.621 5 -8768014.967 5 22375549.292 22375549.438 22375547.827
+ 34.300 32.400
+ -7785444.466 5 -6066574.448 4 23150834.785 23150833.425 23150834.464
+ 31.600 25.900
+ -3056879.958 4 -2381981.617 4 24140203.060 24140202.281 24140201.942
+ 29.200 29.200
+ -2742177.032 4 -2136757.736 3 24171254.622 24171250.481 24171253.438
+ 29.900 22.600
+ 776007.670 3 604694.155 2 24581389.559 24581390.658 24581388.638
+ 23.800 17.800
+ -9658456.196 6 -7526062.361 5 22624173.560 22624172.897 22624173.155
+ 36.100 31.600
+ 06 1 2 21 34 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24687142.837 7 -19236721.139 8 20115693.937 20115690.066 20115693.003
+ 47.300 50.400
+ -17213756.595 7 -13413298.605 6 21165053.563 21165052.573 21165053.224
+ 46.500 40.600
+ -12702263.048 6 -9897859.576 5 21975314.950 21975314.155 21975313.904
+ 39.800 35.300
+ -3421570.439 5 -2666154.552 4 22716765.183 22716766.628 22716765.582
+ 32.800 29.200
+ -11355080.953 5 -8848106.569 5 22355989.746 22355989.989 22355988.518
+ 34.800 31.800
+ -7813931.157 5 -6088771.842 4 23145414.455 23145412.583 23145414.065
+ 32.800 25.900
+ -2952705.528 4 -2300806.746 4 24160026.833 24160025.087 24160025.209
+ 26.800 24.900
+ -2711043.806 4 -2112498.091 3 24177178.623 24177175.042 24177177.758
+ 28.600 23.000
+ 864591.345 4 673720.405 3 24598247.167 24598247.337 24598246.381
+ 25.300 20.500
+ -9686630.750 5 -7548016.541 5 22618811.704 22618811.071 22618811.315
+ 35.800 31.300
+ 06 1 2 21 35 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24699283.054 7 -19246181.045 8 20113383.371 20113379.793 20113382.626
+ 47.300 50.300
+ -17154199.587 7 -13366890.543 6 21176387.027 21176385.928 21176386.634
+ 46.500 40.500
+ -12669908.248 6 -9872648.042 5 21981471.991 21981470.889 21981470.848
+ 40.000 34.800
+ -3334015.220 5 -2597929.735 4 22733427.931 22733428.349 22733427.041
+ 32.400 29.900
+ -11457560.305 5 -8927960.524 5 22336488.591 22336488.656 22336487.321
+ 34.900 32.300
+ -7841845.217 5 -6110523.032 4 23140102.450 23140100.799 23140102.267
+ 33.100 26.200
+ -2848381.337 4 -2219515.186 4 24179878.769 24179877.403 24179877.169
+ 27.400 27.400
+ -2679352.666 5 -2087803.652 3 24183209.829 24183205.201 24183208.679
+ 30.200 21.100
+ 953187.610 3 742756.469 3 24615105.667 24615106.730 24615104.782
+ 23.400 19.300
+ -9714203.132 6 -7569501.505 5 22613564.848 22613564.292 22613564.499
+ 36.100 31.000
+ 06 1 2 21 35 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24711047.996 7 -19255348.524 8 20111144.738 20111140.997 20111143.883
+ 47.300 50.300
+ -17094406.852 7 -13320298.800 6 21187765.351 21187764.061 21187764.852
+ 46.500 40.400
+ -12636994.898 6 -9847001.282 5 21987735.462 21987734.048 21987734.386
+ 40.400 34.800
+ -3246203.657 5 -2529505.189 4 22750139.241 22750138.208 22750137.164
+ 31.300 28.800
+ -11559732.499 5 -9007575.141 5 22317045.545 22317045.682 22317044.257
+ 34.700 32.100
+ -7869185.069 5 -6131826.784 4 23134899.461 23134898.141 23134899.122
+ 32.100 26.500
+ -2743908.657 4 -2138107.977 4 24199759.173 24199757.433 24199757.659
+ 28.100 25.600
+ -2647104.599 4 -2062675.274 3 24189345.548 24189341.990 24189344.607
+ 27.100 21.100
+ 1041795.853 3 811801.831 3 24631967.327 24631968.095 24631966.526
+ 23.000 19.300
+ -9741172.553 6 -7590516.622 5 22608432.804 22608431.888 22608432.603
+ 36.400 30.200
+ 06 1 2 21 36 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24722437.807 7 -19264223.697 8 20108977.207 20108973.579 20108976.445
+ 47.400 50.200
+ -17034379.269 7 -13273524.054 6 21199188.112 21199186.994 21199187.693
+ 46.600 40.300
+ -12603524.690 6 -9820920.601 5 21994104.645 21994103.517 21994103.445
+ 40.200 35.400
+ -3158137.053 5 -2460881.912 4 22766897.411 22766896.546 22766895.580
+ 32.400 28.400
+ -11661595.168 5 -9086948.570 5 22297661.691 22297661.807 22297660.556
+ 35.600 32.600
+ -7895949.299 5 -6152682.004 4 23129806.369 23129805.384 23129806.220
+ 32.800 26.200
+ -2639288.878 4 -2056586.035 4 24219667.629 24219666.591 24219666.193
+ 26.200 27.600
+ -2614300.600 5 -2037113.719 3 24195588.796 24195584.502 24195587.866
+ 30.100 22.100
+ 1130415.571 3 880856.162 2 24648831.507 24648831.499 24648830.687
+ 22.100 17.000
+ -9767538.090 6 -7611061.182 5 22603415.838 22603414.792 22603415.512
+ 36.100 30.100
+ 06 1 2 21 36 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24733452.234 7 -19272806.364 8 20106881.384 20106877.614 20106880.565
+ 47.500 50.300
+ -16974118.134 7 -13226567.326 6 21210655.307 21210654.286 21210654.853
+ 46.300 40.100
+ -12569499.025 6 -9794407.095 5 22000579.324 22000578.574 22000578.245
+ 39.800 35.500
+ -3069816.692 5 -2392060.880 4 22783702.013 22783703.212 22783702.294
+ 31.800 28.100
+ -11763145.910 5 -9166078.959 5 22278337.172 22278337.022 22278336.084
+ 35.600 32.100
+ -7922136.141 5 -6173087.325 4 23124823.245 23124821.569 23124823.058
+ 33.000 25.300
+ -2534523.505 4 -1974950.759 4 24239604.870 24239602.456 24239602.802
+ 26.500 25.600
+ -2580941.869 4 -2011119.901 3 24201936.238 24201932.890 24201934.818
+ 27.600 23.400
+ 1219046.216 4 949918.991 2 24665697.664 24665697.011 24665696.637
+ 24.900 15.100
+ -9793299.066 6 -7631134.658 5 22598513.573 22598512.705 22598513.298
+ 36.300 30.100
+ 06 1 2 21 37 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24744091.421 7 -19281096.632 8 20104856.816 20104853.060 20104856.012
+ 47.500 50.200
+ -16913624.402 7 -13179429.347 6 21222167.218 21222165.973 21222166.691
+ 46.400 40.500
+ -12534919.533 6 -9767462.039 5 22007159.841 22007158.828 22007158.646
+ 40.000 35.500
+ -2981243.813 5 -2323043.084 4 22800556.274 22800558.376 22800557.269
+ 32.600 29.200
+ -11864382.680 6 -9244964.707 5 22259072.424 22259072.504 22259071.404
+ 36.000 32.100
+ -7947744.268 5 -6193041.681 4 23119950.661 23119948.444 23119950.419
+ 33.600 25.300
+ -2429613.996 4 -1893203.091 4 24259567.787 24259566.170 24259566.218
+ 24.900 25.600
+ -2547029.252 4 -1984694.472 3 24208389.558 24208385.240 24208388.597
+ 27.100 19.900
+ 1307687.068 4 1018989.793 2 24682565.088 24682564.798 24682564.506
+ 26.500 15.100
+ -9818454.800 5 -7650736.524 5 22593726.585 22593725.690 22593726.268
+ 35.600 30.600
+ 06 1 2 21 37 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24754355.564 7 -19289094.658 8 20102903.748 20102899.843 20102902.862
+ 47.600 50.300
+ -16852899.241 7 -13132111.039 6 21233722.596 21233721.647 21233722.171
+ 46.300 40.500
+ -12499788.078 6 -9740086.884 6 22013845.081 22013844.090 22013843.973
+ 39.900 36.100
+ -2892419.553 5 -2253829.410 4 22817461.142 22817461.196 22817460.002
+ 31.300 29.200
+ -11965303.032 5 -9323603.896 5 22239868.302 22239867.971 22239867.035
+ 35.600 32.100
+ -7972772.205 5 -6212543.955 4 23115187.842 23115185.451 23115187.517
+ 32.700 25.600
+ -2324562.112 4 -1811344.541 4 24279558.852 24279557.078 24279557.284
+ 27.600 24.200
+ -2512563.525 4 -1957838.061 3 24214948.214 24214944.441 24214947.107
+ 27.600 21.100
+ 1396337.531 4 1088068.100 2 24699435.316 24699435.013 24699434.248
+ 24.600 17.800
+ -9843004.303 6 -7669866.007 5 22589055.290 22589053.868 22589054.760
+ 36.000 30.100
+ 06 1 2 21 38 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24764244.434 7 -19296800.265 8 20101021.827 20101018.062 20101021.013
+ 47.400 50.300
+ -16791943.779 7 -13084613.271 6 21245321.965 21245320.846 21245321.594
+ 46.400 40.200
+ -12464106.042 6 -9712282.710 5 22020635.188 22020634.049 22020634.008
+ 39.700 35.300
+ -2803345.192 5 -2184420.878 4 22834414.576 22834411.540 22834411.667
+ 30.200 29.000
+ -12065904.806 5 -9401994.837 5 22220724.457 22220724.096 22220723.139
+ 35.300 33.100
+ -7997218.359 5 -6231592.886 4 23110535.557 23110533.842 23110535.290
+ 32.300 26.200
+ -2219368.960 4 -1729375.831 3 24299575.518 24299574.620 24299574.722
+ 27.100 21.600
+ -2477545.997 4 -1930551.645 3 24221611.665 24221606.922 24221610.531
+ 26.500 18.600
+ 1484997.184 4 1157153.558 3 24716306.462 24716306.549 24716305.620
+ 24.200 19.300
+ -9866946.995 5 -7688522.633 5 22584498.793 22584498.047 22584498.470
+ 35.800 30.800
+ 06 1 2 21 38 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24773758.245 7 -19304213.617 8 20099211.264 20099207.667 20099210.509
+ 47.500 50.300
+ -16730759.121 7 -13036936.905 6 21256965.226 21256964.001 21256964.740
+ 46.300 40.400
+ -12427875.198 6 -9684050.889 5 22027529.860 22027528.504 22027528.552
+ 40.200 35.300
+ -2714022.060 4 -2114818.472 4 22851412.496 22851408.871 22851409.591
+ 29.200 28.100
+ -12166185.752 5 -9480135.795 5 22201641.750 22201641.437 22201640.490
+ 35.800 33.600
+ -8021081.368 5 -6250187.422 4 23105994.575 23105992.754 23105994.415
+ 32.800 26.200
+ -2114035.839 4 -1647298.103 4 24319620.898 24319619.119 24319619.287
+ 27.900 25.900
+ -2441977.657 4 -1902836.057 3 24228379.679 24228376.017 24228378.612
+ 26.800 20.500
+ 1573665.768 3 1226245.950 3 24733179.057 24733179.763 24733178.228
+ 23.800 19.900
+ -9890282.137 5 -7706705.844 5 22580058.113 22580057.274 22580057.987
+ 35.700 31.000
+ 06 1 2 21 39 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24782896.795 7 -19311334.556 8 20097472.580 20097468.642 20097471.732
+ 47.700 50.400
+ -16669346.165 7 -12989082.647 6 21268651.643 21268650.415 21268651.228
+ 46.300 40.200
+ -12391097.211 6 -9655392.715 5 22034528.411 22034527.242 22034527.260
+ 40.000 35.600
+ -2624451.513 5 -2045023.300 4 22868452.961 22868453.809 22868452.736
+ 31.100 28.100
+ -12266143.734 6 -9558025.095 5 22182620.244 22182620.105 22182618.981
+ 36.200 33.900
+ -8044359.817 5 -6268326.454 4 23101564.622 23101563.667 23101564.305
+ 32.300 26.200
+ -2008564.365 4 -1565112.550 3 24339691.096 24339689.561 24339689.621
+ 27.600 23.400
+ -2405859.624 4 -1874692.160 3 24235253.556 24235248.857 24235252.337
+ 28.800 19.900
+ 1662342.537 4 1295344.751 3 24750054.020 24750054.661 24750053.456
+ 25.600 20.500
+ -9913009.155 5 -7724415.191 5 22575732.980 22575732.487 22575733.044
+ 35.800 31.300
+ 06 1 2 21 39 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24791660.217 7 -19318163.189 8 20095804.827 20095800.956 20095804.012
+ 47.700 50.400
+ -16607705.999 7 -12941051.339 6 21280381.125 21280380.112 21280380.781
+ 46.000 40.000
+ -12353773.750 6 -9626309.512 5 22041630.757 22041629.837 22041629.675
+ 40.000 35.500
+ -2534634.741 5 -1975036.233 4 22885541.808 22885545.235 22885544.330
+ 30.200 27.100
+ -12365776.355 6 -9635660.866 5 22163660.720 22163660.531 22163659.403
+ 36.600 33.800
+ -8067052.319 5 -6286008.900 4 23097246.417 23097244.922 23097245.981
+ 32.000 26.200
+ -1902955.932 4 -1482820.252 3 24359785.719 24359785.722 24359785.151
+ 25.900 21.100
+ -2369192.830 4 -1846120.586 3 24242230.349 24242226.399 24242229.346
+ 28.800 19.900
+ 1751026.856 3 1364449.377 3 24766930.405 24766930.194 24766929.413
+ 21.600 19.900
+ -9935127.247 5 -7741650.052 5 22571524.496 22571523.446 22571524.157
+ 35.900 31.100
+ 06 1 2 21 40 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24800048.617 7 -19324699.598 8 20094208.223 20094204.693 20094207.523
+ 47.500 50.300
+ -16545839.823 7 -12892843.923 6 21292153.781 21292153.009 21292153.498
+ 46.100 40.100
+ -12315906.533 6 -9596802.601 5 22048836.378 22048835.743 22048835.178
+ 39.800 35.100
+ -2444573.102 5 -1904858.343 4 22902682.557 22902683.748 22902682.250
+ 31.000 27.600
+ -12465081.387 6 -9713041.380 5 22144763.812 22144763.072 22144762.421
+ 37.000 33.800
+ -8089157.675 5 -6303233.826 4 23093040.022 23093039.131 23093039.581
+ 32.400 27.100
+ -1797212.070 4 -1400422.421 4 24379907.926 24379908.757 24379908.214
+ 25.600 26.800
+ -2331978.390 4 -1817122.303 3 24249312.819 24249308.153 24249311.473
+ 29.900 21.100
+ 1839718.255 3 1433559.604 2 24783807.563 24783807.231 24783806.598
+ 23.000 15.100
+ -9956635.902 5 -7758410.026 5 22567431.503 22567430.531 22567431.120
+ 35.800 31.000
+ 06 1 2 21 40 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24808062.071 7 -19330943.840 8 20092683.423 20092679.796 20092682.686
+ 47.600 50.200
+ -16483748.553 7 -12844461.110 6 21303969.285 21303968.434 21303969.038
+ 46.200 39.900
+ -12277497.358 6 -9566873.377 5 22056145.225 22056144.588 22056144.107
+ 38.900 35.200
+ -2354267.764 4 -1834490.586 4 22919870.317 22919868.380 22919867.724
+ 29.900 27.100
+ -12564056.578 6 -9790164.889 5 22125929.215 22125928.641 22125927.916
+ 37.600 33.600
+ -8110674.146 5 -6319999.890 4 23088945.490 23088943.892 23088945.155
+ 32.600 25.900
+ -1691334.174 4 -1317920.188 4 24400056.858 24400056.286 24400056.408
+ 24.600 24.600
+ -2294217.452 4 -1787698.193 3 24256498.292 24256494.402 24256497.087
+ 28.800 22.600
+ 1928416.263 3 1502674.917 2 24800686.030 24800686.404 24800684.900
+ 21.600 17.000
+ -9977534.551 5 -7774694.665 5 22563454.612 22563453.749 22563454.101
+ 35.600 31.300
+ 06 1 2 21 41 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24815700.620 7 -19336895.948 8 20091229.910 20091226.168 20091229.089
+ 47.400 50.300
+ -16421433.184 7 -12795903.670 6 21315828.001 21315826.828 21315827.535
+ 46.100 40.000
+ -12238547.962 6 -9536523.219 5 22063557.365 22063556.549 22063556.235
+ 39.600 35.500
+ -2263719.996 5 -1763933.933 4 22937100.954 22937098.917 22937098.721
+ 30.400 27.600
+ -12662699.688 6 -9867029.625 5 22107158.102 22107157.713 22107156.678
+ 36.900 33.800
+ -8131600.922 5 -6336306.448 4 23084963.552 23084961.615 23084963.171
+ 33.200 25.900
+ -1585323.360 2 -1235314.353 4 24420228.738 24420229.498 24420228.725
+ 17.000 24.600
+ -2255911.054 4 -1757849.044 3 24263787.454 24263783.699 24263786.576
+ 28.400 23.000
+ 2017120.133 3 1571794.802 3 24817565.794 24817565.939 24817565.043
+ 21.600 18.600
+ -9997822.619 5 -7790503.533 5 22559593.744 22559593.239 22559593.467
+ 35.400 31.600
+ 06 1 2 21 41 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24822964.245 7 -19342555.906 8 20089847.554 20089843.935 20089846.795
+ 47.600 50.200
+ -16358894.888 7 -12747172.523 6 21327728.185 21327727.380 21327727.940
+ 45.800 39.600
+ -12199060.199 6 -9505753.539 5 22071071.696 22071070.758 22071070.438
+ 39.100 35.100
+ -2172931.285 5 -1693189.523 4 22954374.797 22954375.181 22954374.091
+ 30.200 26.500
+ -12761008.889 6 -9943634.157 5 22088450.375 22088449.912 22088448.964
+ 36.300 34.000
+ -8151936.500 5 -6352152.334 4 23081093.395 23081091.851 23081093.450
+ 33.100 27.100
+ -1479181.776 3 -1152606.673 3 24440426.451 24440427.315 24440426.768
+ 22.600 23.000
+ -2217060.575 4 -1727575.910 3 24271180.810 24271176.801 24271179.498
+ 27.600 21.100
+ 2105829.463 3 1640918.942 3 24834447.512 24834446.931 24834445.979
+ 19.300 19.300
+ -10017499.460 5 -7805836.099 5 22555849.204 22555848.804 22555849.089
+ 35.900 32.000
+ 06 1 2 21 42 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24829853.107 7 -19347923.842 8 20088536.737 20088533.072 20088535.967
+ 47.700 50.300
+ -16296134.713 7 -12698268.484 6 21339671.254 21339670.342 21339670.867
+ 46.100 39.800
+ -12159035.753 6 -9474565.669 5 22078687.594 22078687.285 22078686.497
+ 38.700 34.600
+ -2081902.785 4 -1622258.261 4 22971694.959 22971697.638 22971696.211
+ 29.500 26.800
+ -12858981.852 6 -10019976.690 5 22069806.558 22069806.101 22069805.257
+ 37.100 33.800
+ -8171679.822 5 -6367536.718 4 23077336.743 23077334.758 23077336.442
+ 33.000 25.300
+ -1372910.362 3 -1069797.747 3 24460649.524 24460649.987 24460649.716
+ 23.800 19.900
+ -2177667.170 4 -1696879.760 3 24278676.849 24278672.855 24278675.636
+ 28.100 22.100
+ 2194543.719 3 1710046.920 2 24851328.719 24851328.898 24851327.892
+ 23.400 17.800
+ -10036564.599 5 -7820692.030 5 22552220.958 22552221.052 22552220.846
+ 35.400 32.000
+ 06 1 2 21 42 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24836367.014 7 -19352999.605 8 20087297.190 20087293.494 20087296.420
+ 47.800 50.300
+ -16233153.644 7 -12649192.326 6 21351655.916 21351655.161 21351655.680
+ 45.900 39.400
+ -12118476.511 6 -9442961.077 5 22086405.913 22086405.291 22086404.724
+ 38.500 34.400
+ -1990635.891 4 -1551141.219 4 22989064.084 22989065.079 22989063.840
+ 29.000 27.100
+ -12956616.302 6 -10096055.435 5 22051227.574 22051226.870 22051226.267
+ 37.600 34.000
+ -8190829.287 5 -6382458.360 4 23073692.858 23073690.258 23073692.336
+ 32.800 24.900
+ -1266510.558 4 -986888.833 3 24480896.274 24480897.052 24480897.545
+ 27.400 20.500
+ -2137732.091 4 -1665761.474 3 24286275.856 24286272.103 24286275.186
+ 29.200 19.900
+ 2283262.394 3 1779178.362 2 24868211.706 24868211.390 24868210.492
+ 22.100 17.800
+ -10055017.572 6 -7835070.949 5 22548709.781 22548709.260 22548709.484
+ 36.200 32.000
+ 06 1 2 21 43 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24842506.131 7 -19357783.321 8 20086128.982 20086125.248 20086128.226
+ 47.600 50.300
+ -16169952.793 7 -12599944.903 6 21363683.089 21363681.730 21363682.637
+ 46.000 39.500
+ -12077384.405 6 -9410941.267 5 22094225.647 22094224.810 22094224.518
+ 38.800 34.400
+ -1899132.030 5 -1479839.554 4 23006479.299 23006477.791 23006477.285
+ 32.000 27.100
+ -13053909.881 6 -10171868.572 5 22032712.885 22032712.549 22032711.641
+ 37.600 33.800
+ -8209383.781 5 -6396916.385 4 23070161.567 23070159.658 23070161.239
+ 32.700 25.600
+ -1159984.080 4 -903881.168 3 24501168.321 24501168.444 24501168.950
+ 27.400 19.300
+ -2097256.616 4 -1634222.135 3 24293978.716 24293974.450 24293977.124
+ 27.400 21.100
+ 2371985.039 4 1848312.903 2 24885095.120 24885094.191 24885094.099
+ 24.900 15.100
+ -10072857.969 6 -7848972.533 5 22545315.190 22545314.483 22545314.827
+ 36.400 32.100
+ 06 1 2 21 43 30.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24848270.788 7 -19362275.256 8 20085032.003 20085028.243 20085031.220
+ 47.700 50.200
+ -16106533.178 7 -12550527.012 6 21375751.098 21375750.102 21375750.811
+ 45.900 39.300
+ -12035761.243 6 -9378507.642 5 22102146.273 22102145.261 22102145.019
+ 38.500 34.300
+ -1807392.377 4 -1408354.142 4 23023937.377 23023935.529 23023935.145
+ 29.500 27.900
+ -13150860.518 6 -10247414.470 5 22014263.680 22014263.545 22014262.468
+ 37.200 34.400
+ -8227342.362 5 -6410910.060 4 23066744.752 23066742.499 23066744.253
+ 32.800 24.900
+ -1053332.396 4 -820775.936 3 24521463.112 24521463.934 24521464.246
+ 26.500 20.500
+ -2056241.708 4 -1602262.471 3 24301782.778 24301778.948 24301781.640
+ 25.300 20.500
+ 2460711.254 3 1917450.267 2 24901979.185 24901977.816 24901978.007
+ 23.000 12.600
+ -10090085.215 6 -7862396.339 5 22542036.915 22542036.054 22542036.556
+ 36.500 32.400
+ 06 1 2 21 44 0.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24853660.724 7 -19366475.197 8 20084006.347 20084002.555 20084005.547
+ 47.700 50.300
+ -16042895.815 7 -12500939.448 6 21387861.078 21387859.793 21387860.719
+ 45.800 39.100
+ -11993608.868 6 -9345661.648 5 22110167.171 22110166.753 22110166.218
+ 38.600 34.100
+ -1715418.339 4 -1336686.130 4 23041437.318 23041437.840 23041436.186
+ 28.800 27.600
+ -13247466.188 6 -10322691.566 5 21995880.446 21995879.924 21995879.165
+ 38.000 34.300
+ -8244703.619 5 -6424438.298 4 23063441.254 23063438.125 23063440.678
+ 33.200 25.300
+ -946556.849 3 -737574.223 3 24541781.092 24541782.768 24541782.516
+ 22.100 20.500
+ -2014689.052 4 -1569883.779 2 24309690.209 24309685.843 24309689.352
+ 28.400 16.100
+ -10106699.010 6 -7875342.131 5 22538875.397 22538874.511 22538875.047
+ 36.500 32.300
+ 06 1 2 21 44 30.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24858676.122 7 -19370383.293 8 20083051.915 20083048.174 20083051.081
+ 47.600 50.400
+ -15979041.653 7 -12451182.956 6 21400012.222 21400010.958 21400011.703
+ 45.600 39.100
+ -11950929.299 6 -9312404.845 5 22118289.055 22118288.553 22118287.829
+ 38.200 34.500
+ -1623211.356 4 -1264836.550 4 23058982.226 23058983.923 23058982.250
+ 29.700 25.900
+ -13343724.471 6 -10397697.965 5 21977563.015 21977562.341 21977561.735
+ 38.100 34.100
+ -8261466.724 5 -6437500.424 4 23060250.802 23060248.358 23060250.682
+ 33.900 25.900
+ -839658.837 4 -654277.105 3 24562123.465 24562124.947 24562124.895
+ 24.200 23.800
+ -1972599.823 4 -1537086.950 3 24317699.792 24317696.095 24317698.718
+ 29.500 21.100
+ -10122698.986 6 -7887809.618 5 22535830.924 22535829.792 22535830.506
+ 36.500 32.100
+ 06 1 2 21 45 0.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24863317.030 7 -19373999.575 8 20082168.465 20082165.038 20082167.737
+ 47.700 50.300
+ -15914971.774 7 -12401258.371 6 21412204.182 21412203.263 21412203.866
+ 45.900 39.300
+ -11907724.362 6 -9278738.669 5 22126510.509 22126510.438 22126509.543
+ 38.600 35.100
+ -1530772.635 4 -1192806.412 4 23076573.989 23076574.421 23076573.017
+ 29.500 27.400
+ -13439633.414 6 -10472432.155 5 21959311.786 21959311.419 21959310.590
+ 38.000 34.000
+ -8277630.411 5 -6450095.499 4 23057175.203 23057172.695 23057174.716
+ 34.000 26.200
+ -732640.175 3 -570885.935 4 24582488.201 24582490.728 24582488.914
+ 18.600 24.600
+ -1929975.240 4 -1503873.007 3 24325809.906 24325807.108 24325808.828
+ 24.900 23.000
+ -10138084.779 6 -7899798.514 5 22532902.731 22532902.018 22532902.568
+ 36.900 31.600
+ 06 1 2 21 45 30.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24867583.374 7 -19377323.992 8 20081356.872 20081353.151 20081356.082
+ 47.700 50.200
+ -15850687.249 7 -12351166.537 6 21424436.894 21424436.091 21424436.683
+ 45.600 39.100
+ -11863996.085 6 -9244664.704 5 22134831.887 22134831.844 22134830.610
+ 37.500 35.300
+ -1438103.645 4 -1120596.847 4 23094209.555 23094208.762 23094208.023
+ 29.000 27.400
+ -13535191.200 6 -10546892.708 5 21941128.032 21941127.381 21941126.842
+ 38.100 34.500
+ -8293193.492 5 -6462222.553 4 23054212.953 23054211.553 23054212.775
+ 33.200 25.900
+ -625501.765 4 -487401.552 4 24602875.865 24602877.865 24602877.949
+ 24.200 24.600
+ -1886816.812 4 -1470243.047 3 24334023.759 24334019.485 24334022.606
+ 27.400 19.900
+ -10152855.821 6 -7911308.393 5 22530092.174 22530091.070 22530091.800
+ 36.500 31.800
+ 06 1 2 21 46 0.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24871475.463 7 -19380356.784 8 20080616.286 20080612.525 20080615.513
+ 47.800 50.200
+ -15786188.972 7 -12300908.135 6 21436710.713 21436709.708 21436710.419
+ 45.600 38.900
+ -11819746.367 6 -9210184.425 5 22143252.297 22143252.220 22143251.208
+ 37.900 35.100
+ -1345205.632 5 -1048208.821 4 23111887.624 23111886.365 23111886.076
+ 30.100 24.600
+ -13630395.339 6 -10621077.691 5 21923010.767 21923010.688 21923009.735
+ 38.000 34.800
+ -8308155.007 5 -6473880.855 4 23051366.629 23051364.730 23051366.184
+ 34.300 25.900
+ -518245.827 3 -403825.464 4 24623286.808 24623287.942 24623287.251
+ 23.800 27.100
+ -1843126.006 4 -1436198.217 3 24342337.927 24342333.823 24342336.795
+ 28.400 21.100
+ -10167012.193 5 -7922339.306 5 22527397.717 22527397.261 22527397.576
+ 35.500 32.000
+ 06 1 2 21 46 30.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24874993.445 8 -19383098.061 8 20079946.743 20079943.061 20079946.018
+ 48.000 50.200
+ -15721477.991 7 -12250483.998 6 21449024.917 21449023.700 21449024.538
+ 45.300 38.700
+ -11774977.223 6 -9175299.387 5 22151771.800 22151771.440 22151770.624
+ 38.500 34.400
+ -1252080.129 4 -975643.493 4 23129607.197 23129607.348 23129606.420
+ 28.800 24.200
+ -13725243.804 6 -10694985.536 5 21904961.928 21904961.500 21904960.827
+ 37.900 35.500
+ -8322514.103 5 -6485069.728 4 23048633.651 23048631.777 23048633.270
+ 33.500 26.500
+ -410873.307 3 -320158.621 3 24643718.175 24643719.447 24643718.853
+ 19.900 22.100
+ -1798903.611 4 -1401739.219 3 24350753.257 24350749.035 24350752.208
+ 27.900 22.600
+ -10180553.296 6 -7932890.798 5 22524821.287 22524820.665 22524820.846
+ 36.100 32.100
+ 06 1 2 21 47 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24878137.308 7 -19385547.817 8 20079348.462 20079344.787 20079347.733
+ 47.900 50.200
+ -15656555.503 7 -12199895.043 6 21461379.386 21461378.012 21461378.871
+ 45.300 38.800
+ -11729690.690 6 -9140011.192 5 22160389.723 22160389.109 22160388.492
+ 38.600 35.100
+ -1158728.508 4 -902902.011 4 23147370.525 23147372.229 23147370.531
+ 27.900 25.300
+ -13819734.336 6 -10768614.460 5 21886980.786 21886980.367 21886979.597
+ 38.400 34.800
+ -8336269.660 5 -6495788.325 4 23046015.946 23046014.213 23046015.551
+ 33.400 26.800
+ -1754151.546 4 -1366867.487 3 24359269.459 24359264.780 24359268.012
+ 26.500 21.100
+ -10193478.996 6 -7942962.761 5 22522361.547 22522360.784 22522361.029
+ 36.000 32.300
+ 06 1 2 21 47 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24880907.012 7 -19387706.023 8 20078821.404 20078817.725 20078820.628
+ 47.800 50.200
+ -15591422.356 7 -12149141.942 6 21473773.567 21473772.586 21473773.105
+ 44.800 39.000
+ -11683888.790 6 -9104321.418 5 22169105.126 22169104.896 22169104.139
+ 37.900 34.900
+ -1065152.027 4 -829985.288 4 23165178.558 23165178.834 23165177.792
+ 28.600 24.200
+ -13913864.861 6 -10841962.873 5 21869068.367 21869067.736 21869067.171
+ 38.400 34.900
+ -8349420.704 5 -6506035.870 4 23043513.636 23043511.407 23043513.324
+ 33.900 25.900
+ -1708870.968 4 -1331583.871 3 24367885.815 24367881.619 24367884.798
+ 29.200 19.900
+ -10205789.085 5 -7952555.013 5 22520018.732 22520018.197 22520018.409
+ 35.600 32.400
+ 06 1 2 21 48 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24883302.770 7 -19389572.840 8 20078365.640 20078361.826 20078364.850
+ 47.900 50.200
+ -15526079.575 7 -12098225.492 6 21486207.821 21486206.748 21486207.420
+ 44.700 38.600
+ -11637573.543 6 -9068231.639 5 22177918.673 22177918.282 22177917.553
+ 38.300 34.700
+ -971352.265 4 -756894.597 4 23183030.499 23183028.717 23183028.168
+ 28.100 26.500
+ -14007633.530 6 -10915029.326 5 21851224.650 21851224.170 21851223.512
+ 38.700 34.900
+ -8361966.320 5 -6515811.651 4 23041126.422 23041124.156 23041126.048
+ 34.500 27.100
+ -1663063.467 4 -1295889.702 3 24376602.865 24376598.758 24376601.639
+ 28.600 23.400
+ -10217483.376 6 -7961667.433 5 22517793.670 22517792.569 22517793.356
+ 36.500 31.600
+ 06 1 2 21 48 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24885324.637 8 -19391148.313 8 20077980.933 20077977.116 20077980.086
+ 48.100 50.200
+ -15460528.148 7 -12047146.459 6 21498681.892 21498680.665 21498681.454
+ 44.800 38.400
+ -11590746.998 6 -9031743.443 5 22186829.479 22186829.067 22186828.333
+ 38.000 34.300
+ -877330.405 4 -683630.847 4 23200921.103 23200920.511 23200919.752
+ 29.200 25.600
+ -14101038.159 6 -10987812.114 5 21833450.218 21833450.011 21833449.088
+ 38.900 34.700
+ -8373905.461 5 -6525114.862 4 23038854.308 23038852.180 23038854.025
+ 34.000 25.600
+ -1616730.601 4 -1259786.177 3 24385419.385 24385415.207 24385418.286
+ 29.700 21.600
+ -10228561.617 6 -7970299.825 5 22515685.330 22515684.502 22515685.047
+ 36.200 31.500
+ 06 1 2 21 49 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24886972.737 8 -19392432.541 8 20077667.144 20077663.464 20077666.434
+ 48.000 50.200
+ -15394769.012 7 -11995905.576 6 21511195.465 21511194.393 21511195.073
+ 44.700 38.600
+ -11543411.189 6 -8994858.409 5 22195837.193 22195836.868 22195835.920
+ 37.700 33.800
+ -783088.074 4 -610195.296 4 23218851.796 23218854.562 23218852.934
+ 27.900 26.800
+ -14194076.848 6 -11060309.748 5 21815745.737 21815745.310 21815744.638
+ 39.100 35.400
+ -8385237.264 5 -6533944.821 4 23036697.735 23036695.479 23036697.551
+ 33.600 24.200
+ -1569873.819 4 -1223274.400 3 24394335.954 24394332.017 24394334.641
+ 26.800 21.100
+ -10239023.701 6 -7978452.070 5 22513694.382 22513693.832 22513694.210
+ 36.300 32.100
+ 06 1 2 21 49 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24888247.284 8 -19393425.689 8 20077424.737 20077420.928 20077423.915
+ 48.100 50.200
+ -15328803.092 7 -11944503.561 6 21523748.087 21523747.184 21523747.799
+ 44.700 38.400
+ -11495568.278 6 -8957578.240 5 22204941.198 22204941.204 22204940.217
+ 37.600 34.000
+ -688626.511 4 -536588.885 3 23236828.930 23236829.107 23236828.509
+ 28.600 22.100
+ -14286747.296 6 -11132520.455 5 21798111.145 21798110.496 21798110.014
+ 39.200 35.200
+ -8395961.025 5 -6542300.997 4 23034656.756 23034655.075 23034656.684
+ 33.500 25.600
+ -1522494.959 4 -1186355.771 3 24403351.829 24403347.585 24403350.733
+ 26.800 19.300
+ -10248869.562 5 -7986124.156 5 22511820.739 22511820.168 22511820.482
+ 35.600 31.600
+ 06 1 2 21 50 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24889148.294 7 -19394127.764 8 20077253.223 20077249.396 20077252.399
+ 47.900 50.200
+ -15262631.521 7 -11892941.295 6 21536340.438 21536339.394 21536340.037
+ 44.800 38.500
+ -11447220.384 6 -8919904.584 5 22214141.803 22214141.491 22214140.646
+ 37.500 34.600
+ -593947.149 4 -462812.803 4 23254848.367 23254846.903 23254846.288
+ 29.200 24.200
+ -14379047.393 6 -11204442.581 5 21780546.919 21780546.302 21780545.762
+ 39.100 35.100
+ -8406075.995 5 -6550182.777 4 23032732.270 23032729.821 23032731.902
+ 33.600 25.300
+ -1474594.915 4 -1149031.040 3 24412467.341 24412462.866 24412466.019
+ 27.600 21.600
+ -10258098.889 5 -7993315.826 5 22510064.444 22510063.736 22510064.206
+ 35.600 31.800
+ 06 1 2 21 50 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24889675.585 7 -19394538.628 8 20077152.955 20077149.043 20077152.139
+ 47.900 50.100
+ -15196255.340 7 -11841219.594 6 21548971.487 21548970.205 21548971.049
+ 44.700 38.000
+ -11398369.655 6 -8881839.101 5 22223438.055 22223437.651 22223436.810
+ 38.100 34.700
+ -499051.547 4 -388868.194 3 23272906.207 23272903.839 23272904.251
+ 28.400 23.000
+ -14470975.292 6 -11276074.683 5 21763053.295 21763053.073 21763052.353
+ 39.300 35.700
+ -8415581.100 5 -6557589.344 4 23030923.466 23030921.607 23030923.172
+ 34.000 27.100
+ -1426175.199 4 -1111301.383 3 24421681.078 24421676.668 24421679.772
+ 28.600 21.600
+ -10266711.838 5 -8000027.197 5 22508425.519 22508424.904 22508425.190
+ 35.700 31.600
+ 06 1 2 21 51 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24889829.721 8 -19394658.727 8 20077123.529 20077119.756 20077122.750
+ 48.000 50.100
+ -15129675.507 7 -11789339.198 6 21561641.082 21561639.942 21561640.682
+ 44.600 37.800
+ -11349018.212 6 -8843383.450 5 22232829.122 22232829.111 22232828.046
+ 37.400 34.900
+ -403941.096 4 -314756.171 4 23291003.633 23291004.004 23291002.826
+ 27.900 26.500
+ -14562529.142 6 -11347415.316 6 21745631.324 21745631.056 21745630.310
+ 39.700 36.100
+ -8424475.833 5 -6564520.281 4 23029231.140 23029229.326 23029230.751
+ 33.800 26.200
+ -1377237.604 4 -1073168.210 3 24430993.269 24430989.436 24430992.240
+ 27.900 22.100
+ -10274708.312 5 -8006258.197 5 22506903.668 22506903.321 22506903.390
+ 35.500 32.600
+ 06 1 2 21 51 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24889610.581 7 -19394487.957 8 20077165.089 20077161.442 20077164.402
+ 47.900 50.100
+ -15062892.816 7 -11737300.735 6 21574349.413 21574348.414 21574349.011
+ 44.700 38.100
+ -11299168.280 6 -8804539.377 5 22242315.350 22242315.364 22242314.147
+ 37.000 34.500
+ -308617.405 4 -240478.018 4 23309141.786 23309142.877 23309141.666
+ 28.400 24.900
+ -14653706.706 6 -11418462.746 5 21728280.964 21728280.430 21728279.888
+ 39.800 35.700
+ -8432759.087 5 -6570974.767 4 23027655.010 23027652.770 23027654.656
+ 34.000 25.900
+ -1327783.782 4 -1034632.766 3 24440403.673 24440399.999 24440402.660
+ 26.800 18.600
+ -10282088.298 5 -8012008.819 5 22505499.537 22505498.819 22505499.217
+ 35.800 31.800
+ 06 1 2 21 52 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24889018.433 7 -19394026.533 8 20077277.875 20077274.145 20077277.076
+ 47.900 50.100
+ -14995908.203 7 -11685104.935 6 21587096.206 21587095.044 21587095.762
+ 44.500 38.000
+ -11248822.000 6 -8765308.537 5 22251895.896 22251895.917 22251894.865
+ 37.500 34.100
+ -213081.732 5 -166034.634 4 23327323.057 23327323.465 23327321.885
+ 30.200 26.200
+ -14744505.911 6 -11489215.359 5 21711002.615 21711001.854 21711001.364
+ 39.500 35.400
+ -8440430.218 5 -6576952.258 4 23026194.967 23026193.034 23026194.537
+ 33.800 26.200
+ -1277815.363 4 -995696.307 3 24449913.925 24449908.690 24449912.217
+ 29.900 19.900
+ -10288851.723 5 -8017279.007 5 22504212.459 22504211.819 22504212.011
+ 35.300 32.300
+ 06 1 2 21 52 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24888053.303 8 -19393274.469 8 20077461.499 20077457.771 20077460.755
+ 48.100 50.100
+ -14928722.847 7 -11632752.702 6 21599880.910 21599880.013 21599880.617
+ 44.400 37.900
+ -11197981.554 6 -8725692.627 5 22261570.597 22261570.541 22261569.362
+ 37.500 33.900
+ -117335.482 4 -91427.219 4 23345544.552 23345542.812 23345542.155
+ 24.900 26.200
+ -14834924.738 6 -11559671.570 5 21693796.421 21693795.872 21693795.127
+ 39.700 35.900
+ -8447488.782 5 -6582452.424 4 23024851.359 23024849.759 23024851.168
+ 33.600 26.800
+ -1227333.880 4 -956360.090 3 24459518.635 24459514.546 24459517.864
+ 25.900 19.300
+ -10294998.728 5 -8022068.870 5 22503042.785 22503041.986 22503042.447
+ 35.900 32.400
+ 06 1 2 21 53 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24886715.252 8 -19392231.818 8 20077716.100 20077712.326 20077715.340
+ 48.100 50.000
+ -14861337.670 7 -11580244.768 6 21612703.928 21612703.105 21612703.597
+ 44.300 38.100
+ -11146649.240 6 -8685693.445 5 22271338.378 22271338.585 22271337.277
+ 36.700 34.400
+ -21380.162 4 -16656.871 4 23363804.178 23363802.975 23363801.844
+ 25.600 25.300
+ -14924961.140 6 -11629829.785 6 21676662.966 21676662.641 21676661.778
+ 39.500 36.600
+ -8453934.124 5 -6587474.756 4 23023625.152 23023623.101 23023624.872
+ 33.000 26.200
+ -1176341.090 4 -916625.410 4 24469222.856 24469219.037 24469221.207
+ 27.400 24.200
+ -10300529.247 6 -8026378.352 5 22501990.590 22501989.476 22501990.223
+ 36.200 32.000
+ 06 1 2 21 53 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24885004.361 8 -19390898.641 8 20078041.698 20078037.933 20078040.917
+ 48.000 50.100
+ -14793753.475 7 -11527581.753 6 21625564.753 21625563.751 21625564.436
+ 44.100 37.800
+ -11094827.254 6 -8645312.705 5 22281199.683 22281199.956 22281198.704
+ 36.300 33.400
+ 74782.714 4 58275.189 3 23382101.891 23382101.591 23382100.723
+ 26.800 22.600
+ -15014613.264 6 -11699688.553 6 21659602.659 21659602.236 21659601.494
+ 40.100 36.700
+ -8459765.206 5 -6592018.452 4 23022515.836 23022513.394 23022515.316
+ 33.800 25.900
+ -1124838.484 4 -876493.517 3 24479022.773 24479019.285 24479021.897
+ 28.800 23.000
+ -10305443.600 6 -8030207.707 5 22501055.154 22501054.426 22501054.878
+ 36.600 31.800
+ 06 1 2 21 54 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24882921.044 7 -19389275.264 8 20078437.976 20078434.435 20078437.268
+ 47.900 50.200
+ -14725971.423 7 -11474764.565 6 21638463.631 21638462.317 21638463.124
+ 44.300 37.800
+ -11042517.791 6 -8604552.116 5 22291154.050 22291154.041 22291153.030
+ 36.500 33.500
+ 171151.657 4 133367.876 3 23400439.585 23400439.959 23400438.764
+ 27.400 19.300
+ -15103879.231 6 -11769246.430 6 21642615.887 21642615.311 21642614.630
+ 40.300 36.600
+ -8464982.171 5 -6596083.605 4 23021523.056 23021520.721 23021522.594
+ 33.800 25.900
+ -1072827.929 5 -835965.778 3 24488921.022 24488916.355 24488919.615
+ 30.100 19.900
+ -10309741.788 6 -8033556.946 5 22500237.007 22500236.209 22500236.763
+ 36.500 31.300
+ 06 1 2 21 54 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24880465.384 7 -19387361.750 8 20078905.543 20078901.668 20078904.666
+ 47.900 50.000
+ -14657992.305 7 -11421793.816 6 21651399.926 21651398.318 21651399.271
+ 44.300 37.700
+ -10989723.167 6 -8563413.468 5 22301200.666 22301200.341 22301199.541
+ 36.300 33.000
+ 267725.224 4 208619.976 4 23418817.666 23418818.058 23418816.235
+ 27.100 24.600
+ -15192756.960 6 -11838501.775 6 21625703.046 21625702.421 21625701.816
+ 40.000 36.200
+ -8469583.493 5 -6599669.042 4 23020647.047 23020645.086 23020646.825
+ 33.500 26.500
+ -1020310.817 4 -795043.371 3 24498913.694 24498910.058 24498913.282
+ 28.400 21.600
+ -10313423.812 6 -8036426.052 5 22499536.557 22499535.816 22499536.282
+ 36.200 32.000
+ 06 1 2 21 55 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24877637.339 8 -19385158.067 8 20079443.599 20079439.721 20079442.774
+ 48.000 49.900
+ -14589817.017 7 -11368670.206 6 21664372.462 21664371.660 21664372.217
+ 44.000 37.700
+ -10936445.724 6 -8521898.601 5 22311338.946 22311338.705 22311337.863
+ 37.200 32.800
+ 364502.025 3 284030.450 3 23437233.310 23437233.300 23437232.083
+ 23.400 23.400
+ -15281244.496 6 -11907453.066 6 21608864.407 21608863.862 21608863.170
+ 40.300 36.500
+ -8473568.993 5 -6602774.604 4 23019888.798 23019886.786 23019888.483
+ 33.600 27.100
+ -967289.134 4 -753727.784 3 24509004.388 24508999.999 24509003.096
+ 29.900 19.900
+ -10316489.943 6 -8038815.242 5 22498953.088 22498952.465 22498952.751
+ 36.100 32.400
+ 06 1 2 21 55 30.0000000 0 8G02G04G05G07G10G13G23G30
+ -24874436.992 8 -19382664.277 8 20080052.737 20080048.703 20080051.954
+ 48.000 49.900
+ -14521446.660 7 -11315394.594 6 21677382.999 21677382.111 21677382.652
+ 43.900 37.400
+ -10882687.730 6 -8480009.272 5 22321568.753 22321568.729 22321567.720
+ 37.400 33.400
+ 461480.423 4 359598.016 4 23455688.115 23455688.283 23455686.918
+ 27.900 24.900
+ -15369339.897 6 -11976098.797 6 21592100.318 21592099.880 21592099.204
+ 40.700 36.700
+ -8476938.088 5 -6605399.861 4 23019247.117 23019245.791 23019247.034
+ 33.100 27.400
+ -913764.575 4 -712020.319 3 24519189.110 24519184.988 24519187.932
+ 27.600 19.300
+ -10318940.523 6 -8040724.766 5 22498487.018 22498486.379 22498486.737
+ 37.100 33.000
+ 06 1 2 21 56 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24870864.707 7 -19379880.669 8 20080732.266 20080728.442 20080731.515
+ 47.900 49.800
+ -14452882.035 7 -11261967.611 6 21690430.561 21690429.410 21690430.180
+ 44.200 37.400
+ -10828451.552 6 -8437747.336 5 22331889.951 22331889.788 22331888.794
+ 37.100 33.800
+ 558659.014 4 435321.545 3 23474179.726 23474180.636 23474178.740
+ 24.200 23.400
+ -15457041.389 6 -12044437.581 6 21575410.985 21575410.884 21575409.993
+ 40.800 37.200
+ -8479690.389 5 -6607544.499 4 23018724.138 23018722.235 23018723.897
+ 34.000 27.100
+ -859738.718 4 -669922.223 3 24529469.978 24529466.034 24529468.475
+ 25.300 19.300
+ -10320775.612 6 -8042154.691 5 22498137.498 22498136.778 22498137.340
+ 37.000 32.000
+ 06 1 2 21 56 30.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24866920.410 7 -19376807.181 8 20081482.742 20081479.008 20081481.958
+ 47.700 49.700
+ -14384124.097 7 -11208389.986 6 21703514.777 21703513.702 21703514.316
+ 43.900 37.400
+ -10773739.332 6 -8395114.457 5 22342301.378 22342301.058 22342300.212
+ 36.600 33.800
+ -135566.620 3 -105635.654 2 24787152.620 24787152.368 24787151.527
+ 21.100 16.100
+ 656036.147 4 511199.801 3 23492710.860 23492710.856 23492709.496
+ 26.200 23.800
+ -15544346.847 6 -12112467.755 6 21558797.628 21558797.072 21558796.423
+ 40.900 37.400
+ -8481825.472 5 -6609208.184 4 23018316.998 23018315.908 23018317.043
+ 34.000 27.600
+ -805213.261 3 -627434.833 3 24539845.223 24539841.866 24539844.647
+ 23.000 18.600
+ -10321995.411 6 -8043105.163 5 22497905.446 22497904.639 22497905.111
+ 37.100 32.000
+ 06 1 2 21 57 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24862604.345 7 -19373444.006 8 20082304.270 20082300.391 20082303.397
+ 47.600 49.800
+ -14315173.897 7 -11154662.547 6 21716635.749 21716634.570 21716635.192
+ 44.000 37.200
+ -10718553.649 5 -8352112.654 5 22352802.451 22352802.337 22352801.407
+ 35.700 33.400
+ -237179.442 3 -184814.348 3 24767814.959 24767816.078 24767815.035
+ 21.600 19.300
+ 753610.431 4 587231.680 4 23511278.204 23511279.112 23511277.247
+ 25.600 24.600
+ -15631254.417 6 -12180187.893 6 21542259.992 21542258.980 21542258.717
+ 41.100 37.000
+ -8483342.853 5 -6610390.537 4 23018028.969 23018027.041 23018028.746
+ 34.400 27.900
+ -750190.252 4 -584559.781 2 24550316.303 24550312.314 24550315.181
+ 25.300 17.800
+ -10322600.191 6 -8043576.407 5 22497790.680 22497789.464 22497790.300
+ 37.200 31.600
+ 06 1 2 21 57 30.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24857916.772 7 -19369791.344 8 20083196.130 20083192.406 20083195.360
+ 47.700 49.700
+ -14246032.297 7 -11100785.970 6 21729792.699 21729791.655 21729792.407
+ 43.900 37.100
+ -10662896.854 5 -8308743.755 5 22363393.730 22363393.276 22363392.602
+ 35.700 33.000
+ -338737.624 3 -263950.494 3 24748490.324 24748490.287 24748489.541
+ 22.600 18.600
+ 851380.386 4 663416.048 3 23529883.574 23529883.509 23529882.479
+ 26.500 19.300
+ -15717762.270 6 -12247596.564 6 21525797.832 21525797.111 21525796.660
+ 41.200 37.200
+ -8484242.009 5 -6611091.174 4 23017857.677 23017855.890 23017857.432
+ 33.800 27.100
+ -694671.524 4 -541298.397 2 24560881.691 24560876.642 24560880.469
+ 29.000 13.900
+ -10322590.491 6 -8043568.835 5 22497792.405 22497791.225 22497792.076
+ 36.800 32.300
+ 06 1 2 21 58 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24852857.820 7 -19365849.291 8 20084158.640 20084155.048 20084157.956
+ 47.700 49.800
+ -14176700.262 7 -11046761.011 6 21742986.233 21742985.010 21742985.829
+ 44.000 37.100
+ -10606771.275 6 -8265009.553 5 22374074.490 22374073.618 22374073.249
+ 36.500 32.800
+ -440239.221 3 -343042.517 2 24729174.441 24729174.412 24729173.884
+ 23.800 16.100
+ 949344.486 3 739751.687 4 23548524.352 23548525.947 23548523.785
+ 23.800 24.200
+ -15803868.501 6 -12314692.286 6 21509412.432 21509411.619 21509411.213
+ 41.300 37.200
+ -8484522.568 5 -6611309.801 4 23017803.976 23017802.648 23017803.747
+ 33.100 27.900
+ -638658.758 4 -497652.100 3 24571540.227 24571535.787 24571538.884
+ 25.300 18.600
+ -10321966.464 6 -8043082.566 5 22497910.967 22497910.084 22497910.655
+ 36.700 32.400
+ 06 1 2 21 58 30.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24847427.413 7 -19361617.804 8 20085192.202 20085188.394 20085191.386
+ 47.700 49.600
+ -14107178.557 7 -10992588.255 6 21756215.480 21756214.739 21756215.242
+ 43.800 37.500
+ -10550179.212 6 -8220911.853 5 22384843.764 22384842.906 22384842.564
+ 36.900 32.600
+ -541682.532 4 -422089.174 2 24709870.588 24709870.769 24709870.331
+ 24.900 17.000
+ 1047501.073 4 816237.306 3 23567204.549 23567204.315 23567203.101
+ 26.500 20.500
+ -15889571.265 6 -12381473.614 6 21493103.725 21493102.644 21493102.571
+ 41.700 37.000
+ -8484184.126 5 -6611046.065 4 23017868.709 23017866.835 23017868.520
+ 33.600 27.400
+ -582153.408 3 -453621.947 3 24582291.928 24582288.902 24582291.337
+ 23.000 21.100
+ -10320728.573 6 -8042117.958 5 22498146.186 22498145.805 22498146.002
+ 36.100 32.400
+ 06 1 2 21 59 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24841626.090 7 -19357097.283 8 20086296.165 20086292.332 20086295.369
+ 47.800 49.600
+ -14037468.223 7 -10938268.510 6 21769481.104 21769480.167 21769480.732
+ 43.800 37.100
+ -10493123.219 6 -8176452.642 5 22395701.205 22395700.394 22395700.151
+ 37.200 32.600
+ -643065.560 3 -501088.838 3 24690578.365 24690578.520 24690577.615
+ 22.100 22.100
+ 1145848.824 4 892871.896 3 23585919.374 23585919.433 23585917.785
+ 24.900 23.000
+ -15974868.805 6 -12447939.189 6 21476871.975 21476871.225 21476870.811
+ 41.500 37.300
+ -8483226.453 5 -6610299.820 4 23018050.446 23018049.137 23018050.400
+ 33.400 28.100
+ -525157.972 3 -409209.928 3 24593138.525 24593134.140 24593137.272
+ 22.600 19.900
+ -10318877.075 6 -8040675.222 5 22498498.528 22498498.314 22498498.290
+ 36.500 32.700
+ 06 1 2 21 59 30.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24835453.720 7 -19352287.644 8 20087470.843 20087466.923 20087469.996
+ 47.800 49.600
+ -13967570.188 7 -10883802.493 6 21782782.575 21782781.059 21782782.112
+ 43.700 36.600
+ -10435605.642 6 -8131633.760 5 22406646.174 22406645.774 22406645.041
+ 36.200 33.500
+ -744386.875 3 -580040.386 3 24671297.150 24671297.451 24671296.692
+ 23.800 23.400
+ 1244386.040 4 969654.080 4 23604670.554 23604670.464 23604669.489
+ 27.100 25.300
+ -16059759.202 6 -12514087.494 6 21460717.616 21460717.032 21460716.542
+ 41.300 37.600
+ -8481649.069 5 -6609070.660 4 23018350.733 23018349.327 23018350.444
+ 32.600 27.400
+ -467674.176 4 -364417.418 2 24604077.321 24604073.226 24604076.101
+ 24.600 17.000
+ -10316412.413 6 -8038754.692 5 22498967.904 22498967.306 22498967.687
+ 37.000 33.100
+ 06 1 2 22 0 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24828910.552 8 -19347189.067 8 20088715.857 20088712.038 20088715.114
+ 48.000 49.500
+ -13897485.351 7 -10829190.938 6 21796118.980 21796117.799 21796118.614
+ 43.400 36.900
+ -10377628.908 6 -8086457.118 5 22417678.600 22417678.442 22417677.538
+ 36.200 34.100
+ -845644.339 4 -658942.218 3 24652028.794 24652028.384 24652027.777
+ 26.200 22.100
+ 1343111.146 3 1046582.717 3 23623455.961 23623456.848 23623455.202
+ 23.800 23.000
+ -16144240.451 6 -12579917.003 6 21444641.299 21444640.692 21444640.336
+ 41.800 37.800
+ -8479451.694 5 -6607358.403 4 23018769.021 23018767.568 23018768.799
+ 33.100 26.800
+ -10313335.105 6 -8036356.780 5 22499553.366 22499552.585 22499553.193
+ 36.700 32.600
+ 06 1 2 22 0 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24821996.846 7 -19341801.761 8 20090031.479 20090027.667 20090030.740
+ 47.800 49.600
+ -13827214.497 7 -10774434.428 6 21809491.403 21809489.885 21809490.914
+ 43.500 36.500
+ -10319195.567 6 -8040924.662 5 22428798.530 22428797.959 22428797.430
+ 36.200 33.800
+ -946836.320 3 -737793.042 3 24632771.867 24632772.090 24632771.438
+ 23.800 21.100
+ 1442022.744 4 1123656.644 4 23642279.964 23642279.588 23642278.727
+ 25.900 24.200
+ -16228310.888 6 -12645426.388 6 21428643.314 21428642.781 21428642.165
+ 41.500 38.200
+ -8476634.040 5 -6605162.815 4 23019305.288 23019303.820 23019304.954
+ 33.200 28.100
+ -10309645.585 5 -8033481.824 5 22500255.310 22500254.857 22500254.983
+ 35.600 32.700
+ 06 1 2 22 1 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24814712.727 7 -19336125.824 8 20091417.692 20091413.823 20091416.856
+ 47.900 49.500
+ -13756758.505 7 -10719533.655 6 21822898.338 21822897.380 21822897.927
+ 43.200 36.700
+ -10260308.053 6 -7995038.312 5 22440004.630 22440003.886 22440003.397
+ 36.900 33.900
+ -1047960.863 3 -816591.305 3 24613529.184 24613529.376 24613528.161
+ 22.100 23.400
+ 1541119.163 4 1200874.590 4 23661136.909 23661137.101 23661135.719
+ 24.200 25.600
+ -16311968.799 6 -12710614.331 6 21412723.557 21412723.090 21412722.508
+ 41.600 37.800
+ -8473196.300 5 -6602484.039 4 23019959.258 23019957.854 23019958.946
+ 32.400 27.600
+ -10305344.214 5 -8030130.101 5 22501073.808 22501073.371 22501073.454
+ 35.800 32.800
+ 06 1 2 22 1 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24807058.193 7 -19330161.251 8 20092874.215 20092870.474 20092873.422
+ 47.800 49.600
+ -13686118.482 7 -10664489.494 6 21836340.602 21836339.740 21836340.287
+ 43.100 36.400
+ -10200968.775 6 -7948799.926 5 22451296.132 22451295.618 22451295.052
+ 36.900 33.800
+ -1149016.293 3 -895335.728 3 24594298.889 24594298.664 24594297.551
+ 22.600 18.600
+ 1640398.904 4 1278235.396 3 23680028.965 23680028.588 23680027.563
+ 24.600 21.100
+ -16395212.226 7 -12775479.299 6 21396883.293 21396882.308 21396882.042
+ 42.000 38.100
+ -8469137.899 5 -6599321.656 4 23020732.044 23020729.832 23020731.465
+ 33.100 27.100
+ -10300431.682 5 -8026302.148 5 22502008.511 22502008.207 22502008.243
+ 35.900 32.600
+ 06 1 2 22 2 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24799033.645 7 -19323908.354 8 20094401.201 20094397.489 20094400.474
+ 47.800 49.600
+ -13615295.258 7 -10609302.565 6 21849818.083 21849816.715 21849817.574
+ 43.100 36.300
+ -10141180.289 6 -7902211.504 5 22462673.290 22462672.902 22462672.154
+ 36.500 32.600
+ -1250000.764 3 -974024.906 3 24575082.073 24575082.181 24575081.151
+ 22.100 21.100
+ 1739860.394 3 1355737.817 3 23698954.757 23698956.072 23698954.709
+ 23.400 22.600
+ -16478039.424 7 -12840019.930 6 21381121.564 21381120.652 21381120.379
+ 42.400 38.000
+ -8464458.803 5 -6595675.577 4 23021622.097 23021620.085 23021621.689
+ 32.700 26.800
+ -10294908.515 6 -8021998.373 5 22503059.529 22503059.250 22503059.265
+ 36.200 33.200
+ 06 1 2 22 2 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24790639.131 7 -19317367.172 8 20095998.694 20095994.889 20095997.862
+ 47.700 49.500
+ -13544289.562 7 -10553973.455 5 21863330.110 21863328.730 21863329.668
+ 43.200 35.900
+ -10080945.100 6 -7855275.007 5 22474135.941 22474135.403 22474134.707
+ 36.500 32.700
+ -1350912.491 3 -1052657.290 3 24555878.216 24555879.151 24555878.199
+ 23.400 19.900
+ 1839502.076 3 1433380.669 3 23717916.419 23717916.888 23717915.654
+ 23.800 18.600
+ -16560448.639 7 -12904234.866 6 21365439.876 21365438.797 21365438.582
+ 42.400 38.200
+ -8459158.674 5 -6591545.590 4 23022630.474 23022628.619 23022630.207
+ 32.800 26.200
+ -10288775.098 6 -8017219.080 5 22504226.849 22504226.394 22504226.577
+ 36.200 32.400
+ 06 1 2 22 3 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24781875.026 7 -19310537.994 8 20097666.368 20097662.683 20097665.691
+ 47.800 49.700
+ -13473102.398 7 -10498502.932 5 21876876.537 21876875.034 21876875.991
+ 42.700 35.900
+ -10020265.747 6 -7807992.412 5 22485683.156 22485682.332 22485681.991
+ 36.600 32.400
+ -1451749.386 4 -1131231.468 2 24536690.207 24536689.240 24536689.522
+ 25.300 17.000
+ 1939322.292 3 1511162.651 3 23736912.183 23736912.408 23736911.180
+ 22.600 19.900
+ -16642438.406 7 -12968122.939 6 21349837.405 21349836.557 21349836.242
+ 42.400 38.400
+ -8453237.529 5 -6586931.695 4 23023757.442 23023755.344 23023757.155
+ 33.200 25.900
+ -10282032.146 6 -8011964.821 5 22505510.195 22505509.382 22505509.982
+ 36.100 32.300
+ 06 1 2 22 3 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24772741.342 7 -19303420.837 8 20099404.552 20099400.757 20099403.771
+ 47.800 49.600
+ -13401734.526 7 -10442891.605 5 21890457.229 21890455.883 21890456.906
+ 43.000 35.600
+ -9959144.790 6 -7760365.699 5 22497314.063 22497313.398 22497312.828
+ 36.500 32.000
+ -1552509.704 4 -1209745.944 3 24517516.594 24517516.071 24517515.606
+ 26.200 21.600
+ 2039319.573 3 1589082.576 3 23755941.515 23755941.228 23755939.505
+ 21.600 21.100
+ -16724006.551 7 -13031682.478 6 21334315.319 21334314.618 21334314.250
+ 42.500 38.400
+ -8446695.351 5 -6581833.878 4 23025002.622 23025000.152 23025002.135
+ 33.900 26.200
+ -10274680.355 6 -8006236.150 5 22506909.281 22506908.352 22506908.967
+ 36.500 31.800
+ 06 1 2 22 4 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24763238.495 7 -19296016.017 8 20101212.880 20101209.071 20101212.094
+ 47.700 49.600
+ -13330186.987 7 -10387140.282 5 21904072.480 21904071.130 21904071.996
+ 42.800 35.900
+ -9897584.716 5 -7712396.809 5 22509028.513 22509028.048 22509027.297
+ 35.900 32.400
+ -1653191.509 4 -1288199.236 3 24498356.674 24498357.051 24498356.538
+ 27.400 23.000
+ 2139492.329 4 1667139.209 3 23775004.065 23775003.133 23775002.710
+ 25.300 19.900
+ -16805151.330 7 -13094912.128 6 21318874.190 21318873.302 21318873.089
+ 42.800 38.700
+ -8439531.743 5 -6576251.830 4 23026365.972 23026363.275 23026365.367
+ 32.300 25.600
+ -10266720.355 6 -8000033.539 5 22508423.669 22508422.895 22508423.418
+ 36.400 31.100
+ 06 1 2 22 4 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24753366.625 7 -19288323.647 8 20103091.237 20103087.666 20103090.545
+ 47.800 49.700
+ -13258460.552 7 -10331249.563 5 21917721.645 21917720.286 21917721.140
+ 43.200 35.900
+ -9835588.199 5 -7664087.844 5 22520825.771 22520825.451 22520824.685
+ 35.700 31.600
+ -1753792.934 4 -1366589.893 4 24479212.001 24479213.188 24479212.007
+ 24.900 25.300
+ 2239838.925 3 1745331.373 3 23794098.708 23794099.483 23794097.011
+ 21.600 22.100
+ -16885871.166 7 -13157810.635 6 21303513.373 21303512.756 21303512.307
+ 42.200 38.900
+ -8431746.914 5 -6570185.723 4 23027846.542 23027844.837 23027846.152
+ 32.800 25.300
+ -10258152.716 6 -7993357.447 5 22510054.267 22510053.363 22510053.872
+ 36.500 30.800
+ 06 1 2 22 5 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24743125.598 7 -19280343.622 8 20105040.209 20105036.523 20105039.443
+ 47.600 49.600
+ -13186556.195 7 -10275220.196 5 21931404.656 21931403.240 21931404.210
+ 43.100 35.900
+ -9773157.847 5 -7615440.829 5 22532705.704 22532705.589 22532704.580
+ 34.700 32.000
+ -1854312.317 4 -1444916.592 4 24460084.347 24460085.450 24460083.654
+ 25.300 25.300
+ 2340357.756 4 1823657.696 2 23813227.232 23813226.585 23813226.081
+ 24.900 17.800
+ -16966164.103 7 -13220376.503 6 21288233.852 21288233.256 21288232.876
+ 42.300 38.500
+ -8423340.846 5 -6563635.536 4 23029446.702 23029444.365 23029446.268
+ 33.000 25.900
+ -10248978.233 6 -7986208.494 5 22511800.112 22511799.055 22511799.728
+ 36.100 30.600
+ 06 1 2 22 5 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24732515.947 7 -19272076.357 8 20107059.090 20107055.437 20107058.278
+ 47.700 49.600
+ -13114474.598 7 -10219052.719 6 21945121.017 21945119.968 21945120.622
+ 43.000 36.100
+ -9710296.125 5 -7566457.665 5 22544668.153 22544667.600 22544666.958
+ 35.400 31.600
+ -1954747.713 3 -1523177.865 4 24440972.904 24440973.229 24440971.402
+ 21.600 24.600
+ 2441047.280 3 1902117.055 3 23832386.309 23832387.619 23832385.722
+ 23.400 19.300
+ -17046028.630 7 -13282608.542 6 21273036.126 21273035.578 21273035.051
+ 42.500 38.700
+ -8414313.717 5 -6556601.407 4 23031164.200 23031162.004 23031163.854
+ 32.800 26.800
+ -10239197.631 6 -7978587.237 5 22513661.460 22513660.327 22513661.062
+ 36.500 31.000
+ 06 1 2 22 6 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24721537.607 7 -19263521.803 8 20109148.315 20109144.478 20109147.468
+ 47.500 49.500
+ -13042216.558 7 -10162747.754 6 21958871.300 21958870.252 21958871.034
+ 42.900 36.300
+ -9647005.661 5 -7517140.416 5 22556711.688 22556711.335 22556710.596
+ 35.500 31.600
+ -2055097.091 3 -1601372.077 4 24421876.290 24421877.410 24421875.988
+ 23.000 28.100
+ 2541905.768 4 1980708.101 3 23851580.984 23851579.789 23851579.212
+ 25.600 20.500
+ -17125463.307 7 -13344505.627 6 21257920.467 21257919.797 21257919.275
+ 42.500 39.300
+ -8404665.159 5 -6549083.031 4 23033000.843 23032998.313 23033000.464
+ 33.100 25.600
+ -10228811.681 5 -7970494.289 5 22515637.417 22515636.609 22515636.987
+ 35.700 30.800
+ 06 1 2 22 6 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24710190.868 7 -19254680.181 8 20111307.355 20111303.680 20111306.561
+ 47.600 49.500
+ -12969783.129 7 -10106306.122 5 21972655.024 21972653.707 21972654.563
+ 42.800 35.900
+ -9583289.137 5 -7467491.181 5 22568836.657 22568836.155 22568835.493
+ 35.600 31.600
+ -2155358.626 3 -1679497.815 3 24402795.984 24402797.723 24402795.660
+ 21.600 23.800
+ 2642931.697 4 2059429.624 3 23870805.259 23870805.430 23870803.894
+ 24.200 20.500
+ -17204466.272 7 -13406066.310 6 21242886.485 21242885.959 21242885.341
+ 42.700 39.500
+ -8394395.575 5 -6541080.738 4 23034954.061 23034952.776 23034954.013
+ 32.600 27.100
+ -10217821.060 5 -7961930.173 5 22517729.031 22517727.925 22517728.531
+ 35.400 30.600
+ 06 1 2 22 7 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24698476.079 7 -19245551.765 8 20113536.685 20113532.926 20113535.830
+ 47.400 49.400
+ -12897175.127 7 -10049728.454 5 21986471.941 21986470.804 21986471.520
+ 42.700 35.900
+ -9519149.123 6 -7417511.936 5 22581042.138 22581041.722 22581041.028
+ 36.100 32.400
+ -2255530.386 4 -1757553.654 3 24383734.475 24383735.558 24383734.149
+ 26.800 22.100
+ 2744123.553 3 2138280.341 3 23890061.063 23890061.734 23890060.048
+ 22.100 20.500
+ -17283035.932 7 -13467289.358 6 21227935.104 21227934.451 21227933.932
+ 42.400 39.300
+ -8383504.915 5 -6532594.497 4 23037026.849 23037025.019 23037026.542
+ 32.600 24.900
+ -10206226.593 5 -7952895.480 4 22519935.597 22519934.417 22519935.064
+ 34.000 28.400
+ 06 1 2 22 7 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24686393.326 7 -19236136.621 8 20115835.977 20115832.117 20115835.153
+ 47.700 49.300
+ -12824393.432 7 -9993015.439 5 22000321.563 22000320.659 22000321.289
+ 42.200 35.800
+ -9454588.305 5 -7367204.805 5 22593327.651 22593327.543 22593326.577
+ 35.500 32.400
+ -2355610.392 4 -1835537.978 2 24364689.576 24364689.952 24364689.587
+ 24.900 17.000
+ 2845479.517 3 2217259.030 3 23909348.144 23909349.299 23909347.469
+ 23.000 19.300
+ -17361170.492 7 -13528173.377 6 21213066.582 21213065.792 21213065.539
+ 42.800 39.100
+ -8371993.441 5 -6523624.500 4 23039217.321 23039215.756 23039216.949
+ 32.300 27.600
+ -10194029.145 6 -7943390.973 5 22522256.758 22522255.381 22522256.340
+ 36.500 31.000
+ 06 1 2 22 8 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24673942.816 7 -19226434.918 8 20118205.221 20118201.390 20118204.403
+ 47.500 49.100
+ -12751438.795 7 -9936167.669 5 22014204.369 22014203.305 22014204.024
+ 42.000 35.500
+ -9389609.251 5 -7316571.785 5 22605692.955 22605692.336 22605691.880
+ 35.600 32.600
+ -2455596.792 4 -1913449.442 3 24345663.820 24345663.319 24345663.091
+ 25.600 18.600
+ 2946998.093 3 2296364.408 3 23928666.111 23928666.620 23928665.065
+ 19.300 18.600
+ -17438868.364 7 -13588717.111 6 21198281.291 21198280.254 21198280.136
+ 43.100 39.100
+ -8359861.048 5 -6514170.700 4 23041525.888 23041524.176 23041525.867
+ 33.000 26.200
+ -10181229.541 6 -7933417.247 5 22524692.117 22524691.340 22524691.623
+ 36.000 31.600
+ 06 1 2 22 8 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24661124.591 7 -19216446.678 8 20120644.365 20120640.700 20120643.571
+ 47.700 49.300
+ -12678312.205 7 -9879185.913 5 22028120.317 22028119.050 22028119.819
+ 42.700 35.900
+ -9324214.734 5 -7265615.027 5 22618137.186 22618136.312 22618136.039
+ 35.300 31.500
+ -2555487.634 4 -1991286.362 3 24326655.365 24326654.757 24326654.555
+ 26.800 18.600
+ 3048677.659 3 2375595.211 3 23948016.289 23948016.026 23948014.732
+ 20.500 20.500
+ -17516127.902 7 -13648919.299 6 21183578.980 21183578.253 21183577.913
+ 43.200 39.100
+ -8347108.233 5 -6504233.440 4 23043952.474 23043951.613 23043952.428
+ 31.600 26.800
+ -10167828.766 6 -7922975.072 5 22527242.248 22527241.336 22527241.818
+ 36.200 31.600
+ 06 1 2 22 9 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24647939.318 7 -19206172.429 8 20123153.477 20123149.705 20123152.693
+ 47.700 49.100
+ -12605014.377 7 -9822070.709 5 22042068.118 22042067.033 22042067.764
+ 42.000 35.200
+ -9258407.381 5 -7214336.578 5 22630659.869 22630658.939 22630658.687
+ 35.100 30.600
+ -2655280.942 4 -2069047.329 2 24307664.842 24307664.061 24307664.318
+ 27.100 15.100
+ 3150516.399 3 2454950.072 3 23967395.380 23967395.440 23967394.310
+ 23.800 19.900
+ -17592947.719 7 -13708778.850 6 21168960.816 21168959.938 21168959.642
+ 43.300 39.500
+ -8333735.059 5 -6493812.775 4 23046497.805 23046496.163 23046497.326
+ 31.800 26.800
+ -10153827.681 6 -7912065.124 5 22529906.741 22529905.680 22529906.317
+ 36.900 32.000
+ 06 1 2 22 9 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24634387.036 7 -19195612.196 8 20125732.653 20125728.511 20125731.790
+ 47.700 49.000
+ -12531546.007 7 -9764822.624 5 22056049.052 22056047.456 22056048.515
+ 42.100 34.700
+ -9192189.848 5 -7162738.503 5 22643260.760 22643260.060 22643259.608
+ 35.100 30.800
+ -2754974.943 4 -2146730.906 3 24288693.460 24288692.693 24288693.042
+ 26.800 19.300
+ 3252512.860 2 2534427.838 3 23986803.727 23986804.324 23986802.859
+ 17.800 21.600
+ -17669326.111 7 -13768294.440 6 21154426.429 21154425.576 21154425.233
+ 43.000 39.500
+ -8319741.587 5 -6482908.758 4 23049160.939 23049159.000 23049160.602
+ 31.800 27.100
+ -10139227.235 6 -7900688.141 5 22532685.189 22532684.159 22532684.820
+ 37.200 32.100
+ 06 1 2 22 10 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24620467.919 7 -19184766.118 8 20128381.132 20128377.243 20128380.434
+ 47.800 49.000
+ -12457908.130 6 -9707442.452 5 22070061.770 22070060.269 22070061.232
+ 41.800 34.600
+ -9125564.963 5 -7110823.021 5 22655939.040 22655938.424 22655937.787
+ 34.400 31.000
+ -2854567.599 4 -2224335.541 3 24269742.277 24269741.421 24269741.229
+ 29.500 19.300
+ 3354665.343 3 2614027.149 3 24006244.015 24006243.991 24006242.267
+ 22.600 23.800
+ -17745261.549 7 -13827464.866 6 21139976.472 21139975.532 21139975.295
+ 43.200 39.700
+ -8305128.390 5 -6471521.847 4 23051941.048 23051939.824 23051940.909
+ 32.600 27.400
+ -10124028.330 6 -7888844.827 5 22535577.341 22535576.390 22535576.871
+ 36.400 32.100
+ 06 1 2 22 10 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24606182.210 7 -19173634.386 8 20131099.748 20131095.781 20131098.983
+ 47.800 49.000
+ -12384101.539 6 -9649930.829 5 22084106.463 22084105.196 22084106.084
+ 41.600 34.600
+ -9058535.310 5 -7058592.128 5 22668694.171 22668693.568 22668692.943
+ 34.400 30.100
+ -2954056.991 4 -2301859.670 3 24250809.483 24250809.304 24250808.916
+ 26.800 21.600
+ 3456972.293 2 2693746.814 3 24025712.420 24025712.143 24025711.235
+ 17.800 21.600
+ -17820752.519 7 -13886288.965 6 21125611.251 21125609.954 21125609.938
+ 43.500 39.700
+ -8289895.530 5 -6459652.090 4 23054839.766 23054838.421 23054839.738
+ 32.800 26.200
+ -10108232.019 6 -7876536.000 5 22538583.203 22538582.507 22538582.916
+ 36.800 32.400
+ 06 1 2 22 11 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24591530.369 7 -19162217.358 8 20133887.704 20133883.893 20133886.900
+ 47.600 49.000
+ -12310127.028 6 -9592288.340 5 22098183.083 22098182.066 22098182.891
+ 41.400 34.500
+ -8991103.705 5 -7006048.029 5 22681525.632 22681525.373 22681524.519
+ 33.800 30.600
+ -3053440.943 4 -2379301.653 4 24231897.557 24231897.884 24231896.514
+ 25.300 25.900
+ 3559431.963 3 2773585.555 3 24045209.385 24045209.550 24045208.467
+ 21.100 19.900
+ -17895797.096 7 -13944765.228 6 21111330.332 21111329.462 21111329.269
+ 43.600 39.700
+ -8274043.483 5 -6447299.828 4 23057856.820 23057854.784 23057856.429
+ 32.400 25.600
+ -10091839.231 6 -7863762.391 5 22541702.799 22541701.718 22541702.401
+ 36.700 31.800
+ 06 1 2 22 11 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24576512.086 7 -19150514.789 8 20136745.412 20136741.715 20136744.727
+ 47.600 48.900
+ -12235985.385 6 -9534515.624 5 22112291.964 22112290.484 22112291.518
+ 41.300 34.000
+ -8923272.724 5 -6953192.736 5 22694433.796 22694433.058 22694432.561
+ 34.000 30.100
+ -3152717.531 3 -2456659.963 4 24213006.525 24213005.633 24213005.123
+ 23.400 26.500
+ 3662042.676 3 2853541.948 3 24064735.400 24064735.911 24064734.269
+ 19.300 21.100
+ -17970394.016 7 -14002892.669 6 21097135.254 21097134.031 21097134.048
+ 43.800 39.900
+ -8257572.398 5 -6434465.201 4 23060990.874 23060989.304 23060990.715
+ 32.400 26.200
+ -10074850.999 6 -7850524.793 5 22544935.196 22544934.321 22544935.011
+ 36.400 32.000
+ 06 1 2 22 12 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24561127.858 7 -19138527.068 8 20139673.081 20139669.306 20139672.302
+ 47.400 48.700
+ -12161677.377 6 -9476613.265 5 22126432.424 22126430.886 22126432.016
+ 41.500 34.300
+ -8855045.218 5 -6900028.458 4 22707416.928 22707416.396 22707415.884
+ 34.500 29.900
+ -3251885.073 3 -2533933.285 4 24194134.377 24194134.528 24194133.471
+ 23.000 26.800
+ 3764802.872 3 2933614.802 3 24084290.563 24084290.398 24084288.955
+ 23.400 18.600
+ -18044541.800 7 -14060670.138 6 21083025.302 21083024.256 21083024.071
+ 43.600 39.900
+ -8240482.682 5 -6421148.533 4 23064243.199 23064241.302 23064242.993
+ 32.600 25.300
+ -10057268.494 6 -7836824.133 5 22548281.211 22548280.084 22548280.823
+ 36.200 31.300
+ 06 1 2 22 12 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24545378.282 7 -19126254.661 8 20142670.218 20142666.399 20142669.307
+ 47.500 48.900
+ -12087203.937 6 -9418582.008 5 22140604.113 22140602.615 22140603.753
+ 41.300 33.800
+ -8786424.023 5 -6846557.410 5 22720475.372 22720474.655 22720474.067
+ 35.100 30.100
+ -3350941.241 3 -2611119.825 4 24175285.019 24175284.949 24175283.426
+ 22.100 29.000
+ 3867710.696 3 3013802.747 2 24103873.663 24103872.267 24103871.674
+ 23.000 17.000
+ -18118238.863 7 -14118096.395 6 21069001.319 21069000.292 21069000.075
+ 43.700 40.500
+ -8222774.763 5 -6407350.134 4 23067612.990 23067610.623 23067612.724
+ 33.000 25.300
+ -10039092.733 5 -7822661.195 5 22551740.120 22551739.094 22551739.701
+ 35.800 31.800
+ 06 1 2 22 13 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24529263.188 7 -19113697.435 8 20145736.662 20145732.919 20145735.911
+ 47.500 48.800
+ -12012565.827 6 -9360422.437 5 22154807.615 22154806.095 22154807.081
+ 41.500 34.400
+ -8717411.810 5 -6792781.663 4 22733607.552 22733607.336 22733606.493
+ 35.300 29.900
+ -3449884.365 4 -2688218.340 4 24156457.831 24156455.562 24156456.523
+ 27.400 24.900
+ 3970764.672 3 3094104.554 2 24123483.135 24123482.902 24123482.053
+ 23.800 13.900
+ -18191483.566 7 -14175170.161 6 21055063.243 21055062.160 21055062.067
+ 43.600 40.300
+ -8204449.259 5 -6393070.515 4 23071100.290 23071098.039 23071099.795
+ 32.400 24.900
+ -10020324.884 6 -7808036.883 5 22555311.314 22555310.402 22555310.921
+ 36.000 31.800
+ 06 1 2 22 13 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24512782.951 7 -19100855.685 8 20148872.780 20148868.964 20148872.007
+ 47.500 48.900
+ -11937763.895 6 -9302135.212 5 22169041.584 22169040.494 22169041.230
+ 41.400 34.100
+ -8648011.228 5 -6738703.298 4 22746814.469 22746813.916 22746813.301
+ 35.400 29.900
+ -3548712.253 4 -2765227.016 4 24137650.753 24137650.340 24137649.632
+ 24.200 28.400
+ 4073963.081 3 3174518.970 1 24143119.965 24143119.924 24143119.935
+ 19.900 6.500
+ -18264274.604 7 -14231890.433 6 21041211.592 21041210.534 21041210.327
+ 43.800 40.500
+ -8185506.507 5 -6378309.944 4 23074704.739 23074702.701 23074704.363
+ 33.100 25.900
+ -10000965.925 6 -7792951.967 5 22558994.891 22558994.234 22558994.639
+ 36.000 31.800
+ 06 1 2 22 14 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24495937.708 7 -19087729.511 8 20152078.228 20152074.563 20152077.494
+ 47.500 48.800
+ -11862798.757 6 -9243720.813 5 22183307.104 22183305.843 22183306.776
+ 41.600 34.000
+ -8578225.246 5 -6684324.609 4 22760094.148 22760093.568 22760093.058
+ 34.900 29.700
+ -3647422.827 4 -2842144.359 4 24118866.178 24118866.251 24118865.121
+ 27.600 26.800
+ 4177304.138 3 3255044.542 1 24162786.291 24162785.504 24162785.111
+ 22.600 6.500
+ -18336610.472 7 -14288256.023 6 21027446.375 21027445.310 21027445.100
+ 43.600 40.500
+ -8165946.891 5 -6363068.678 4 23078426.495 23078424.820 23078426.317
+ 32.000 26.800
+ -9981017.155 6 -7777407.443 5 22562791.337 22562790.348 22562791.095
+ 36.500 32.000
+ 06 1 2 22 14 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24478727.683 7 -19074319.087 8 20155353.275 20155349.521 20155352.433
+ 47.400 48.700
+ -11787671.531 6 -9185180.097 5 22197603.291 22197602.144 22197602.897
+ 41.200 34.300
+ -8508056.534 5 -6629647.699 4 22773446.785 22773446.145 22773445.643
+ 33.800 29.500
+ -3746014.095 4 -2918968.670 4 24100104.549 24100105.427 24100103.846
+ 27.600 27.600
+ 4280786.290 3 3335680.022 2 24182480.261 24182477.892 24182478.042
+ 21.600 15.100
+ -18408489.843 7 -14344265.905 6 21013767.932 21013767.028 21013766.782
+ 43.800 40.400
+ -8145771.071 5 -6347347.247 4 23082266.069 23082264.259 23082265.800
+ 32.300 26.500
+ -9960479.815 6 -7761404.302 5 22566699.493 22566698.517 22566699.229
+ 36.500 31.800
+ 06 1 2 22 15 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24461153.360 7 -19060624.799 8 20158697.411 20158693.711 20158696.659
+ 47.400 48.700
+ -11712382.645 6 -9126513.433 5 22211930.287 22211929.039 22211929.788
+ 41.100 34.400
+ -8437508.000 5 -6574674.828 4 22786871.276 22786870.997 22786870.241
+ 33.200 29.500
+ -3844484.287 4 -2995698.673 4 24081367.226 24081366.322 24081365.964
+ 29.000 24.600
+ 4384407.783 3 3416424.061 3 24202197.414 24202197.177 24202195.866
+ 21.100 21.600
+ -18479911.071 7 -14399918.792 6 21000177.083 21000176.002 21000175.856
+ 43.800 40.300
+ -8124979.501 5 -6331146.022 4 23086222.508 23086221.239 23086222.234
+ 32.700 26.800
+ -9939355.069 5 -7744943.428 5 22570718.900 22570718.242 22570718.720
+ 35.600 31.100
+ 06 1 2 22 15 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24443214.850 7 -19046646.737 8 20162111.056 20162107.368 20162110.307
+ 47.500 48.700
+ -11636933.183 6 -9067721.636 5 22226288.224 22226286.608 22226287.749
+ 41.000 34.000
+ -8366582.437 5 -6519408.162 5 22800368.501 22800367.844 22800367.238
+ 33.900 30.200
+ -3942831.107 4 -3072332.540 3 24062652.867 24062650.830 24062651.535
+ 29.000 21.600
+ 4488166.800 3 3497275.231 3 24221939.059 24221941.792 24221939.919
+ 18.600 23.000
+ -18550873.012 7 -14455213.792 6 20986673.522 20986672.466 20986672.312
+ 43.800 40.700
+ -8103572.803 5 -6314465.452 4 23090296.485 23090294.275 23090296.225
+ 33.200 26.200
+ -9917644.157 6 -7728025.820 5 22574850.501 22574849.816 22574850.257
+ 36.000 32.300
+ 06 1 2 22 16 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24424912.382 7 -19032385.060 8 20165594.122 20165590.257 20165593.250
+ 47.400 48.600
+ -11561323.601 6 -9008805.077 5 22240675.918 22240674.786 22240675.449
+ 40.300 34.500
+ -8295282.639 5 -6463849.890 5 22813936.571 22813935.735 22813935.399
+ 34.700 30.200
+ -4041052.559 4 -3148868.739 3 24043960.901 24043960.365 24043960.176
+ 29.200 21.600
+ 4592061.937 2 3578232.465 3 24241710.641 24241712.016 24241709.568
+ 15.100 21.100
+ -18621374.082 7 -14510149.667 6 20973257.640 20973256.440 20973256.447
+ 44.000 40.600
+ -8081551.236 5 -6297305.803 4 23094486.782 23094485.298 23094486.427
+ 32.700 26.200
+ -9895348.259 5 -7710652.376 5 22579093.295 22579092.700 22579093.035
+ 35.600 32.100
+ 06 1 2 22 16 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24406246.143 7 -19017839.931 8 20169146.006 20169142.269 20169145.227
+ 47.700 48.600
+ -11485555.077 6 -8949764.665 5 22255093.884 22255092.887 22255093.602
+ 40.600 34.600
+ -8223611.484 5 -6408002.230 5 22827575.011 22827574.348 22827573.943
+ 34.500 30.400
+ -4139146.940 4 -3225305.835 3 24025294.349 24025293.401 24025292.964
+ 25.300 19.900
+ 4696091.371 3 3659294.356 2 24261507.613 24261507.984 24261506.032
+ 19.300 16.100
+ -18691412.771 7 -14564725.249 6 20959929.693 20959928.459 20959928.453
+ 44.200 40.500
+ -8058915.778 5 -6279667.765 4 23098794.492 23098792.165 23098794.196
+ 33.100 26.200
+ -9872468.748 5 -7692824.153 5 22583447.119 22583446.613 22583446.888
+ 35.700 33.000
+ 06 1 2 22 17 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24387216.484 7 -19003011.610 8 20172767.261 20172763.452 20172766.513
+ 47.600 48.400
+ -11409628.097 6 -8890600.781 5 22269542.360 22269541.218 22269541.944
+ 40.400 34.600
+ -8151571.715 5 -6351867.358 5 22841283.631 22841283.318 22841282.549
+ 34.000 30.400
+ -4237111.617 4 -3301641.974 2 24006652.319 24006650.666 24006651.662
+ 27.600 16.100
+ 4800253.305 3 3740459.561 2 24281330.198 24281329.319 24281328.850
+ 21.600 17.800
+ -18760987.844 7 -14618939.569 6 20946690.030 20946688.711 20946688.818
+ 44.400 40.300
+ -8035666.792 5 -6261551.662 4 23103218.339 23103216.098 23103218.081
+ 33.200 25.600
+ -9849006.900 5 -7674542.166 5 22587911.909 22587911.305 22587911.409
+ 35.500 32.600
+ 06 1 2 22 17 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24367823.789 7 -18987900.408 8 20176457.535 20176453.786 20176456.775
+ 47.600 48.400
+ -11333543.503 6 -8831314.083 5 22284020.352 22284019.761 22284020.235
+ 40.000 34.100
+ -8079166.282 5 -6295447.549 5 22855061.851 22855061.650 22855060.732
+ 33.800 31.000
+ -4334944.949 4 -3377875.706 3 23988034.973 23988034.655 23988033.930
+ 25.600 21.100
+ 4904546.149 3 3821726.716 3 24301174.679 24301176.183 24301174.166
+ 19.900 23.000
+ -18830098.030 7 -14672791.641 6 20933538.832 20933537.516 20933537.611
+ 44.300 40.600
+ -8011805.008 5 -6242958.064 4 23107758.674 23107757.510 23107758.573
+ 33.100 27.100
+ -9824964.008 5 -7655807.429 5 22592486.859 22592486.620 22592486.459
+ 35.300 33.600
+ 06 1 2 22 18 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24348068.166 7 -18972506.409 8 20180216.742 20180213.143 20180216.087
+ 47.500 48.500
+ -11257302.204 6 -8771905.281 5 22298528.991 22298527.958 22298528.563
+ 39.800 33.600
+ -8006397.895 5 -6238744.931 5 22868909.593 22868908.818 22868908.283
+ 33.100 31.100
+ -4432644.692 4 -3454005.326 4 23969443.856 23969443.125 23969442.756
+ 27.100 25.300
+ 5008968.064 3 3903094.464 3 24321046.411 24321046.840 24321045.428
+ 22.100 22.600
+ -18898741.858 7 -14726280.313 6 20920476.266 20920475.139 20920475.018
+ 44.300 40.900
+ -7987331.255 5 -6223887.605 4 23112416.270 23112414.122 23112416.056
+ 33.000 25.900
+ -9800341.412 5 -7636620.972 5 22597172.845 22597171.874 22597172.271
+ 35.500 32.400
+ 06 1 2 22 18 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24327950.105 7 -18956829.991 8 20184045.299 20184041.439 20184044.512
+ 47.700 48.300
+ -11180904.736 6 -8712374.779 5 22313066.961 22313065.906 22313066.594
+ 40.000 33.500
+ -7933269.570 5 -6181761.830 5 22882825.234 22882824.821 22882824.014
+ 32.800 30.800
+ -4530208.916 4 -3530029.352 4 23950877.426 23950877.030 23950876.891
+ 27.600 27.600
+ 5113517.542 3 3984561.555 3 24340942.019 24340942.026 24340940.202
+ 21.100 19.900
+ -18966917.951 7 -14779404.511 6 20907502.572 20907501.777 20907501.454
+ 44.300 41.400
+ -7962246.113 5 -6204340.726 4 23117189.730 23117187.664 23117189.316
+ 32.000 25.900
+ -9775140.683 5 -7616984.029 5 22601968.194 22601967.477 22601967.853
+ 35.700 32.800
+ 06 1 2 22 19 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24307469.841 7 -18940871.336 8 20187942.693 20187938.676 20187941.799
+ 47.700 48.300
+ -11104351.974 6 -8652723.281 5 22327634.795 22327633.342 22327634.270
+ 40.000 33.500
+ -7859784.050 5 -6124500.400 5 22896808.968 22896808.633 22896807.779
+ 32.000 31.300
+ -4627635.419 4 -3605946.051 4 23932336.632 23932337.359 23932336.328
+ 27.100 27.100
+ 5218192.629 3 4066126.567 1 24360858.841 24360860.274 24360859.085
+ 20.500 11.000
+ -19034624.898 7 -14832163.144 6 20894618.349 20894617.523 20894617.249
+ 44.400 41.500
+ -7936550.443 5 -6184318.122 4 23122079.442 23122077.781 23122079.212
+ 32.700 26.500
+ -9749363.106 5 -7596897.582 5 22606873.180 22606872.761 22606872.827
+ 34.600 32.700
+ 06 1 2 22 19 30.0000000 0 8G02G04G05G06G07G10G13G30
+ -24286627.196 7 -18924630.308 8 20191908.566 20191904.896 20191907.819
+ 47.600 48.100
+ -11027644.689 6 -8592951.362 5 22342231.552 22342230.323 22342231.163
+ 40.300 33.000
+ -7785944.332 5 -6066962.972 5 22910860.014 22910859.932 22910859.028
+ 31.000 31.600
+ -4724922.234 4 -3681753.901 4 23913823.992 23913824.267 23913823.700
+ 29.200 28.800
+ 5322991.683 3 4147788.216 1 24380801.295 24380803.819 24380801.436
+ 21.100 6.500
+ -19101861.696 7 -14884555.426 6 20881823.659 20881822.637 20881822.575
+ 44.600 41.400
+ -7910245.003 5 -6163820.347 4 23127085.747 23127083.222 23127085.232
+ 32.400 26.200
+ -9723010.072 5 -7576362.744 5 22611888.326 22611887.350 22611887.894
+ 35.700 32.700
+ 06 1 2 22 20 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24265422.904 7 -18908107.474 8 20195943.991 20195939.933 20195943.059
+ 47.500 48.100
+ -10950783.649 6 -8533059.640 5 22356857.800 22356856.316 22356857.349
+ 40.500 33.400
+ -7711753.278 5 -6009151.783 5 22924978.572 22924977.985 22924977.375
+ 31.600 31.000
+ -4822067.273 4 -3757451.244 4 23895337.724 23895338.075 23895337.182
+ 28.100 28.100
+ 5427913.058 3 4229545.200 1 24400769.983 24400769.531 24400767.684
+ 19.900 11.000
+ -19168627.065 7 -14936580.367 6 20869118.635 20869117.502 20869117.469
+ 44.600 41.100
+ -7883330.708 5 -6142848.154 4 23132206.321 23132204.992 23132206.318
+ 31.600 27.400
+ -9696083.122 5 -7555380.681 5 22617012.233 22617011.560 22617011.872
+ 35.400 32.600
+ 06 1 2 22 20 30.0000000 0 7G02G04G05G06G10G13G30
+ -24243857.201 7 -18891303.021 8 20200047.485 20200043.650 20200046.720
+ 47.600 48.000
+ -10873769.605 6 -8473048.696 5 22371512.715 22371511.909 22371512.469
+ 39.600 33.800
+ -7637213.682 5 -5951068.998 5 22939162.957 22939162.471 22939161.876
+ 32.700 30.200
+ -4919068.265 5 -3833036.362 4 23876879.904 23876879.257 23876878.985
+ 30.100 27.100
+ -19234919.625 7 -14988236.884 6 20856503.562 20856502.528 20856502.457
+ 44.800 41.500
+ -7855808.251 5 -6121402.087 4 23137444.130 23137442.431 23137443.732
+ 31.600 27.400
+ -9668583.610 5 -7533952.473 5 22622245.131 22622244.731 22622244.826
+ 35.900 32.700
+ 06 1 2 22 21 0.0000000 0 7G02G04G05G06G10G13G30
+ -24221930.425 7 -18874217.213 7 20204219.826 20204216.214 20204219.113
+ 47.500 47.800
+ -10796603.357 6 -8412919.165 5 22386196.995 22386196.106 22386196.589
+ 39.100 33.800
+ -7562328.582 5 -5892716.988 5 22953413.264 22953412.546 22953412.121
+ 33.000 30.200
+ -5015923.388 4 -3908507.821 4 23858448.642 23858448.646 23858447.720
+ 25.900 28.400
+ -19300738.149 7 -15039524.024 6 20843978.554 20843977.496 20843977.481
+ 44.700 41.100
+ -7827678.261 5 -6099482.609 4 23142796.993 23142794.868 23142796.579
+ 31.800 25.600
+ -9640513.159 5 -7512079.377 5 22627586.526 22627586.244 22627586.323
+ 35.400 32.700
+ 06 1 2 22 21 30.0000000 0 7G02G04G05G06G10G13G30
+ -24199642.566 7 -18856850.041 7 20208461.192 20208457.504 20208460.516
+ 47.600 47.800
+ -10719285.495 6 -8352671.483 5 22400910.050 22400909.164 22400909.858
+ 39.500 33.400
+ -7487100.826 5 -5834097.966 5 22967728.829 22967727.904 22967727.572
+ 33.500 30.100
+ -5112630.357 4 -3983863.804 4 23840045.084 23840045.168 23840044.738
+ 26.800 24.600
+ -19366081.304 7 -15090440.742 6 20831544.266 20831543.161 20831543.099
+ 44.800 41.500
+ -7798941.613 5 -6077090.403 4 23148265.486 23148263.187 23148265.283
+ 33.000 26.200
+ -9611873.234 5 -7489762.533 5 22633036.647 22633036.137 22633036.482
+ 35.900 33.000
+ 06 1 2 22 22 0.0000000 0 7G02G04G05G06G10G13G30
+ -24176993.989 7 -18839201.793 7 20212771.095 20212767.386 20212770.381
+ 47.600 47.900
+ -10641816.899 6 -8292306.339 5 22415652.054 22415650.888 22415651.646
+ 39.400 33.200
+ -7411533.330 5 -5775214.211 4 22982108.556 22982108.018 22982107.471
+ 34.100 29.900
+ -5209187.293 4 -4059102.904 4 23821671.620 23821671.286 23821670.799
+ 28.800 25.600
+ -19430947.705 7 -15140985.961 6 20819200.563 20819199.682 20819199.400
+ 44.800 41.900
+ -7769599.498 5 -6054226.407 4 23153849.421 23153847.231 23153849.055
+ 32.700 25.600
+ -9582665.350 5 -7467003.139 5 22638594.800 22638594.102 22638594.450
+ 34.800 32.600
+ 06 1 2 22 22 30.0000000 0 7G02G04G05G06G10G13G30
+ -24153985.250 7 -18821272.896 7 20217149.661 20217145.829 20217148.888
+ 47.700 47.900
+ -10564198.277 6 -8231824.298 5 22430422.028 22430421.512 22430421.706
+ 38.700 33.500
+ -7335628.936 5 -5716067.940 4 22996552.524 22996552.212 22996551.508
+ 32.800 29.500
+ -5305591.760 4 -4134223.199 4 23803326.449 23803325.960 23803325.742
+ 29.900 25.300
+ -19495336.304 7 -15191158.874 6 20806948.135 20806946.789 20806946.819
+ 44.800 41.700
+ -7739652.637 5 -6030891.173 4 23159547.857 23159545.411 23159547.664
+ 33.000 24.900
+ -9552891.199 5 -7443802.487 5 22644260.660 22644259.836 22644260.200
+ 33.900 31.300
+ 06 1 2 22 23 0.0000000 0 7G02G04G05G06G10G13G30
+ -24130616.562 7 -18803063.527 7 20221596.598 20221592.724 20221595.769
+ 47.500 47.800
+ -10486430.235 6 -8171225.830 5 22445220.975 22445219.986 22445220.734
+ 39.200 32.800
+ -7259390.735 5 -5656661.569 4 23011060.178 23011059.725 23011059.000
+ 32.100 28.600
+ -5401841.907 5 -4209223.275 4 23785010.207 23785009.205 23785009.688
+ 30.800 24.200
+ -19559246.065 7 -15240958.662 6 20794786.478 20794784.974 20794785.198
+ 45.100 41.900
+ -7709102.030 5 -6007085.502 3 23165360.955 23165358.965 23165360.704
+ 31.000 23.800
+ -9522552.382 5 -7420161.843 5 22650033.820 22650033.254 22650033.577
+ 34.900 32.400
+ 06 1 2 22 23 30.0000000 0 7G02G04G05G06G10G13G30
+ -24106888.052 7 -18784573.773 7 20226111.830 20226108.090 20226111.031
+ 47.500 47.700
+ -10408513.639 6 -8110511.604 5 22460048.323 22460047.144 22460047.885
+ 39.000 33.000
+ -7182821.560 5 -5596997.291 4 23025631.085 23025630.301 23025629.783
+ 31.600 28.400
+ -5497935.494 5 -4284101.371 4 23766725.165 23766724.280 23766723.837
+ 30.200 26.200
+ -19622675.740 7 -15290384.358 6 20782716.044 20782714.807 20782714.854
+ 45.000 41.900
+ -7677948.759 5 -5982810.211 4 23171290.126 23171287.392 23171289.545
+ 32.400 25.300
+ -9491650.373 5 -7396082.338 5 22655914.301 22655913.692 22655913.965
+ 34.600 31.100
+ 06 1 2 22 24 0.0000000 0 7G02G04G05G06G10G13G30
+ -24082799.990 7 -18765803.847 7 20230695.591 20230691.825 20230694.786
+ 47.400 47.500
+ -10330449.085 6 -8049682.079 5 22474903.736 22474902.220 22474903.151
+ 38.900 32.600
+ -7105924.399 5 -5537077.443 4 23040263.889 23040263.307 23040262.832
+ 31.100 27.600
+ -5593870.352 4 -4358855.767 4 23748469.163 23748468.558 23748468.113
+ 28.800 27.100
+ -19685624.235 7 -15339435.112 7 20770737.381 20770736.039 20770736.166
+ 45.000 42.000
+ -7646193.768 5 -5958066.044 4 23177332.426 23177330.305 23177331.676
+ 31.500 25.600
+ -9460186.753 5 -7371565.225 5 22661901.633 22661900.830 22661901.310
+ 34.900 31.500
+ 06 1 2 22 24 30.0000000 0 7G02G04G05G06G10G13G30
+ -24058352.968 7 -18746754.216 7 20235347.657 20235343.924 20235346.951
+ 47.400 47.500
+ -10252237.539 6 -7988738.014 5 22489786.474 22489785.448 22489786.192
+ 39.100 32.600
+ -7028702.155 5 -5476904.277 4 23054958.982 23054958.098 23054957.707
+ 31.000 27.100
+ -5689644.362 4 -4433484.828 4 23730243.161 23730243.283 23730242.678
+ 29.700 27.900
+ -19748090.248 7 -15388109.905 7 20758850.361 20758849.157 20758849.170
+ 45.100 42.100
+ -7613837.952 5 -5932853.734 4 23183489.208 23183487.514 23183488.796
+ 31.600 24.900
+ -9428163.390 5 -7346611.954 5 22667995.313 22667994.681 22667995.078
+ 34.600 32.000
+ 06 1 2 22 25 0.0000000 0 7G02G04G05G06G10G13G30
+ -24033547.281 7 -18727425.104 7 20240068.078 20240064.316 20240067.330
+ 47.400 47.400
+ -10173879.508 6 -7927679.818 5 22504698.088 22504696.260 22504697.434
+ 38.800 31.800
+ -6951157.782 5 -5416480.102 4 23069714.951 23069714.203 23069713.991
+ 31.500 27.400
+ -5785255.486 4 -4507986.908 4 23712048.807 23712048.825 23712048.272
+ 29.500 26.200
+ -19810072.791 7 -15436407.970 7 20747055.338 20747054.247 20747054.179
+ 45.200 42.300
+ -7580882.529 5 -5907174.182 4 23189761.216 23189759.083 23189760.774
+ 33.000 26.200
+ -9395581.912 5 -7321223.784 5 22674195.631 22674194.623 22674195.224
+ 35.100 31.300
+ 06 1 2 22 25 30.0000000 0 7G02G04G05G06G10G13G30
+ -24008382.868 7 -18707816.466 7 20244856.827 20244852.936 20244855.999
+ 47.500 47.400
+ -10095375.832 6 -7866508.118 5 22519636.759 22519635.373 22519636.107
+ 39.000 32.100
+ -6873294.352 5 -5355807.311 4 23084532.427 23084531.269 23084531.006
+ 31.800 26.800
+ -5880701.586 4 -4582360.444 4 23693885.836 23693886.102 23693885.602
+ 29.500 27.100
+ -19871570.764 7 -15484328.445 7 20735352.655 20735351.573 20735351.545
+ 45.100 42.200
+ -7547328.307 5 -5881028.042 4 23196145.943 23196143.902 23196145.539
+ 32.000 25.900
+ -9362443.885 5 -7295401.931 5 22680501.493 22680501.006 22680501.035
+ 34.700 32.300
+ 06 1 2 22 26 0.0000000 0 7G02G04G05G06G10G13G30
+ -23982860.288 7 -18687928.735 7 20249713.554 20249709.665 20249712.727
+ 47.500 47.100
+ -10016727.219 6 -7805223.480 5 22534602.920 22534601.548 22534602.484
+ 38.700 31.800
+ -6795114.696 5 -5294888.117 4 23099408.742 23099408.307 23099407.730
+ 31.600 27.400
+ -5975980.305 5 -4656603.549 4 23675755.378 23675754.738 23675754.676
+ 30.200 24.900
+ -19932582.861 7 -15531870.316 7 20723742.505 20723741.424 20723741.267
+ 45.100 42.300
+ -7513176.577 5 -5854416.284 4 23202644.869 23202642.589 23202644.454
+ 32.100 26.200
+ -9328751.198 5 -7269147.886 5 22686912.845 22686912.367 22686912.447
+ 34.700 32.000
+ 06 1 2 22 26 30.0000000 0 7G02G04G05G06G10G13G30
+ -23956979.815 7 -18667762.123 7 20254638.458 20254634.539 20254637.722
+ 47.400 47.100
+ -9937934.195 6 -7743826.316 5 22549596.344 22549595.292 22549596.030
+ 38.400 31.800
+ -6716621.780 5 -5233724.819 4 23114345.554 23114345.100 23114344.636
+ 31.100 27.400
+ -6071089.653 5 -4730714.688 4 23657656.636 23657656.232 23657656.033
+ 30.600 27.100
+ -19993108.192 7 -15579032.886 7 20712224.571 20712223.833 20712223.572
+ 45.000 42.700
+ -7478428.469 5 -5827339.818 4 23209257.699 23209255.222 23209257.110
+ 31.500 25.600
+ -9294505.623 5 -7242463.014 5 22693429.790 22693428.943 22693429.412
+ 34.800 31.600
+ 06 1 2 22 27 0.0000000 0 7G02G04G05G06G10G13G30
+ -23930741.632 7 -18647316.781 7 20259631.379 20259627.495 20259630.620
+ 47.500 46.900
+ -9858997.764 6 -7682317.416 5 22564617.443 22564616.340 22564617.187
+ 38.500 31.300
+ -6637818.688 5 -5172319.843 4 23129341.779 23129340.981 23129340.370
+ 31.000 28.100
+ -6166027.458 5 -4804692.178 4 23639590.693 23639590.242 23639589.644
+ 30.100 28.100
+ -20053145.681 7 -15625815.317 7 20700800.077 20700799.018 20700798.941
+ 45.000 42.600
+ -7443085.337 5 -5799799.721 4 23215981.863 23215980.798 23215981.884
+ 30.600 25.300
+ -9259708.812 5 -7215348.615 5 22700051.335 22700050.398 22700051.086
+ 34.900 31.100
+ 06 1 2 22 27 30.0000000 0 7G02G04G05G06G10G13G30
+ -23904145.976 7 -18626592.890 7 20264692.288 20264688.420 20264691.520
+ 47.600 46.900
+ -9779918.496 6 -7620697.217 5 22579665.974 22579665.148 22579665.535
+ 38.000 33.000
+ -6558708.393 5 -5110675.471 4 23144395.427 23144395.286 23144394.387
+ 31.600 27.600
+ -6260791.378 4 -4878534.163 4 23621557.324 23621557.186 23621556.728
+ 29.500 27.900
+ -20112694.156 7 -15672216.701 7 20689468.479 20689467.217 20689467.272
+ 45.200 42.600
+ -7407147.716 5 -5771796.375 4 23222821.077 23222819.313 23222820.706
+ 31.000 24.900
+ -9224362.611 5 -7187806.116 5 22706777.490 22706776.544 22706777.176
+ 33.600 31.000
+ 06 1 2 22 28 0.0000000 0 7G02G04G05G06G10G13G30
+ -23877193.496 7 -18605590.952 7 20269821.317 20269817.384 20269820.541
+ 47.700 46.900
+ -9700696.994 6 -7558966.201 5 22594741.379 22594740.196 22594740.873
+ 38.000 32.300
+ -6479293.814 5 -5048793.998 4 23159507.670 23159507.342 23159506.648
+ 31.800 27.100
+ -6355379.540 5 -4952239.168 4 23603558.728 23603557.610 23603557.570
+ 30.100 29.000
+ -20171752.707 7 -15718236.323 7 20678229.872 20678228.656 20678228.713
+ 45.100 42.400
+ -7370617.397 5 -5743331.202 3 23229772.735 23229770.247 23229772.441
+ 31.600 23.400
+ -9188468.842 5 -7159836.941 5 22713607.660 22713606.824 22713607.422
+ 34.400 30.400
+ 06 1 2 22 28 30.0000000 0 7G02G04G05G06G10G13G30
+ -23849884.581 7 -18584311.271 7 20275017.979 20275014.154 20275017.264
+ 47.800 46.900
+ -9621334.192 6 -7497125.056 5 22609843.794 22609842.194 22609843.137
+ 37.900 31.800
+ -6399577.999 5 -4986677.798 4 23174677.654 23174676.585 23174676.224
+ 31.500 26.800
+ -6449789.506 5 -5025805.329 4 23585592.659 23585591.983 23585591.789
+ 31.600 29.000
+ -20230320.241 7 -15763873.336 7 20667084.861 20667083.643 20667083.697
+ 45.200 42.600
+ -7333495.260 5 -5714404.865 4 23236836.745 23236835.128 23236836.406
+ 31.000 25.600
+ -9152029.333 5 -7131442.510 5 22720541.900 22720541.138 22720541.681
+ 34.000 31.500
+ 06 1 2 22 29 0.0000000 0 7G02G04G05G06G10G13G30
+ -23822219.303 7 -18562753.905 7 20280282.736 20280278.620 20280281.867
+ 47.700 46.800
+ -9541830.706 6 -7435174.292 5 22624972.531 22624971.698 22624972.058
+ 37.700 32.400
+ -6319563.912 5 -4924329.167 4 23189903.349 23189902.960 23189902.422
+ 31.500 27.400
+ -6544019.176 5 -5099231.002 4 23567661.373 23567660.227 23567660.433
+ 32.100 27.100
+ -20288395.773 7 -15809126.966 7 20656033.578 20656032.201 20656032.360
+ 45.300 42.700
+ -7295782.764 5 -5685018.488 4 23244013.057 23244011.410 23244012.853
+ 31.000 24.200
+ -9115045.954 5 -7102624.299 5 22727579.506 22727578.854 22727579.330
+ 34.300 30.800
+ 06 1 2 22 29 30.0000000 0 7G02G04G05G06G10G13G30
+ -23794198.187 7 -18540919.261 7 20285614.692 20285610.867 20285613.916
+ 47.600 46.700
+ -9462186.904 6 -7373114.203 5 22640128.442 22640127.255 22640127.878
+ 37.600 32.400
+ -6239254.577 5 -4861750.476 4 23205185.743 23205185.341 23205184.711
+ 31.100 28.600
+ -6638066.514 5 -5172514.599 4 23549764.259 23549764.163 23549763.755
+ 32.000 28.600
+ -20345978.226 7 -15853996.386 7 20645075.897 20645074.617 20645074.776
+ 45.400 42.700
+ -7257481.203 5 -5655173.146 4 23251301.803 23251300.566 23251301.459
+ 32.000 25.300
+ -9077520.565 5 -7073383.732 5 22734720.090 22734719.718 22734719.949
+ 34.400 30.800
+ 06 1 2 22 30 0.0000000 0 7G02G04G05G06G10G13G30
+ -23765821.361 7 -18518807.436 7 20291014.768 20291010.686 20291013.999
+ 47.700 46.500
+ -9382403.904 6 -7310945.645 5 22655310.390 22655309.498 22655310.019
+ 37.700 32.100
+ -6158652.993 5 -4798944.070 4 23220524.010 23220523.561 23220522.801
+ 31.000 28.100
+ -6731929.156 5 -5245654.311 4 23531902.686 23531902.046 23531902.069
+ 30.800 27.100
+ -20403067.022 7 -15898481.138 7 20634211.967 20634211.078 20634210.881
+ 45.300 43.100
+ -7218591.403 5 -5624869.407 4 23258702.541 23258700.602 23258702.133
+ 30.800 25.900
+ -9039455.004 5 -7043722.261 5 22741963.977 22741963.148 22741963.781
+ 34.400 30.400
+ 06 1 2 22 30 30.0000000 0 7G02G04G05G06G10G13G30
+ -23737089.120 7 -18496418.661 7 20296482.347 20296478.289 20296481.532
+ 47.800 46.500
+ -9302482.234 6 -7248669.014 5 22670519.248 22670517.824 22670518.726
+ 37.800 31.600
+ -6077762.165 5 -4735912.282 4 23235916.596 23235916.792 23235915.604
+ 31.600 28.800
+ -6825605.077 5 -5318648.481 4 23514076.929 23514076.366 23514076.129
+ 31.300 27.900
+ -20459660.960 7 -15942580.282 7 20623442.786 20623441.428 20623441.556
+ 45.500 42.900
+ -7179115.022 5 -5594108.579 4 23266214.549 23266212.743 23266214.122
+ 30.200 24.600
+ -9000851.351 5 -7013641.484 5 22749310.127 22749309.266 22749309.847
+ 34.300 30.100
+ 06 1 2 22 31 0.0000000 0 7G02G04G05G06G10G13G30
+ -23708001.970 7 -18473753.328 7 20302017.560 20302013.441 20302016.644
+ 47.600 46.500
+ -9222422.603 6 -7186284.892 5 22685753.765 22685752.746 22685753.565
+ 37.900 31.600
+ -5996585.122 5 -4672657.470 4 23251364.497 23251364.170 23251363.330
+ 31.600 28.600
+ -6919091.770 5 -5391495.221 4 23496287.623 23496286.562 23496286.425
+ 31.300 29.000
+ -20515759.053 7 -15986293.053 7 20612767.355 20612766.222 20612766.262
+ 45.500 42.900
+ -7139053.342 5 -5562891.678 3 23273838.159 23273835.706 23273837.738
+ 32.000 23.400
+ -8961711.428 5 -6983142.831 5 22756758.140 22756757.447 22756757.802
+ 34.000 30.200
+ 06 1 2 22 31 30.0000000 0 7G02G04G05G06G10G13G30
+ -23678560.176 7 -18450811.660 7 20307619.848 20307615.961 20307619.125
+ 47.500 46.400
+ -9142225.702 6 -7123793.798 5 22701015.195 22701013.511 22701014.532
+ 36.900 30.600
+ -5915124.928 5 -4609182.013 4 23266866.180 23266865.538 23266864.845
+ 32.100 29.000
+ -7012387.360 5 -5464193.068 4 23478533.683 23478532.889 23478532.560
+ 31.000 28.100
+ -20571360.464 7 -16029618.804 7 20602186.792 20602185.715 20602185.669
+ 45.300 43.200
+ -7098407.652 5 -5531219.727 4 23281572.532 23281570.768 23281572.236
+ 30.800 24.900
+ -8922037.211 5 -6952227.865 5 22764308.005 22764307.114 22764307.587
+ 33.200 30.400
+ 06 1 2 22 32 0.0000000 0 7G02G04G05G06G10G13G30
+ -23648764.303 7 -18427594.089 7 20313289.814 20313285.922 20313289.032
+ 47.400 46.400
+ -9061892.011 6 -7061196.119 5 22716301.955 22716300.584 22716301.518
+ 37.700 30.800
+ -5833384.581 5 -4545488.257 4 23282420.476 23282420.057 23282419.311
+ 32.300 28.400
+ -7105489.372 5 -5536740.051 4 23460817.302 23460816.132 23460816.059
+ 30.400 28.800
+ -20626464.223 7 -16072556.774 7 20591700.853 20591699.812 20591699.787
+ 45.300 43.200
+ -7057179.590 5 -5499093.955 3 23289418.230 23289415.639 23289417.894
+ 32.100 23.800
+ -8881830.714 5 -6920898.135 4 22771958.778 22771958.082 22771958.366
+ 33.400 29.900
+ 06 1 2 22 32 30.0000000 0 7G02G04G05G06G10G13G30
+ -23618614.213 7 -18404100.503 7 20319027.211 20319023.335 20319026.414
+ 47.300 46.300
+ -8981422.524 6 -6998492.633 5 22731614.569 22731613.543 22731614.336
+ 37.700 30.400
+ -5751367.046 5 -4481578.514 4 23298028.011 23298027.641 23298026.872
+ 31.600 27.400
+ -7198395.689 5 -5609134.549 4 23443136.829 23443136.660 23443136.280
+ 31.800 29.700
+ -20681069.479 7 -16115106.299 7 20581309.986 20581308.702 20581308.780
+ 45.400 43.300
+ -7015370.580 5 -5466515.499 4 23297374.385 23297371.876 23297373.857
+ 31.300 24.200
+ -8841093.890 5 -6889155.157 4 22779710.581 22779710.025 22779710.310
+ 33.400 29.500
+ 06 1 2 22 33 0.0000000 0 7G02G04G05G06G10G13G30
+ -23588110.498 7 -18380331.370 7 20324831.865 20324827.869 20324831.024
+ 47.300 46.200
+ -8900817.745 6 -6935683.716 5 22746953.472 22746952.111 22746953.122
+ 37.700 30.800
+ -5669075.377 5 -4417455.168 4 23313687.373 23313687.224 23313686.191
+ 30.100 28.100
+ -7291103.985 5 -5681374.768 5 23425495.614 23425495.254 23425494.815
+ 32.700 30.400
+ -20735175.283 7 -16157266.637 7 20571013.915 20571012.631 20571012.712
+ 45.400 43.200
+ -6972981.748 5 -5433485.254 4 23305440.309 23305438.320 23305440.207
+ 32.000 24.200
+ -8799828.859 5 -6857000.586 4 22787563.339 22787562.318 22787563.079
+ 34.700 29.500
+ 06 1 2 22 33 30.0000000 0 7G02G04G05G06G10G13G30
+ -23557253.631 7 -18356287.048 7 20330703.758 20330699.750 20330702.980
+ 47.400 46.200
+ -8820078.275 6 -6872769.858 5 22762317.902 22762316.397 22762317.261
+ 37.000 30.600
+ -5586512.642 5 -4353120.600 4 23329398.573 23329398.136 23329397.473
+ 31.300 26.500
+ -7383612.293 5 -5753459.140 4 23407891.880 23407890.762 23407890.977
+ 32.000 28.600
+ -20788781.011 7 -16199037.315 7 20560812.952 20560811.718 20560811.894
+ 45.600 43.000
+ -6930014.428 5 -5400004.249 3 23313616.504 23313614.314 23313616.254
+ 30.600 23.400
+ -8758037.553 5 -6824435.931 4 22795516.017 22795514.893 22795515.663
+ 33.600 28.600
+ 06 1 2 22 34 0.0000000 0 7G02G04G05G06G10G13G30
+ -23526043.935 7 -18331967.797 7 20336642.706 20336638.856 20336641.877
+ 47.300 46.100
+ -8739204.935 6 -6809751.667 5 22777706.936 22777706.012 22777706.614
+ 36.500 30.600
+ -5503681.824 4 -4288577.120 4 23345160.561 23345160.233 23345159.483
+ 29.200 25.600
+ -7475918.210 5 -5825385.783 4 23390325.683 23390325.590 23390325.333
+ 31.600 28.800
+ -20841885.654 7 -16240417.535 7 20550707.504 20550706.281 20550706.336
+ 45.400 43.200
+ -6886470.341 5 -5366073.783 4 23321902.885 23321900.728 23321902.646
+ 31.500 24.600
+ -8715722.153 5 -6791462.893 4 22803568.436 22803567.198 22803568.058
+ 33.100 28.600
+ 06 1 2 22 34 30.0000000 0 7G02G04G05G06G10G13G30
+ -23494481.969 7 -18307374.053 7 20342648.949 20342644.849 20342648.075
+ 47.400 46.100
+ -8658198.477 6 -6746629.753 5 22793121.848 22793121.332 22793121.635
+ 36.300 31.100
+ -5420586.029 4 -4223827.157 4 23360973.176 23360972.633 23360972.012
+ 29.500 24.600
+ -7568019.484 5 -5897152.962 4 23372800.147 23372799.439 23372799.126
+ 31.100 28.400
+ -20894488.591 7 -16281406.812 7 20540697.731 20540696.236 20540696.546
+ 45.500 43.400
+ -6842351.094 5 -5331695.171 4 23330298.287 23330296.741 23330298.100
+ 32.100 24.600
+ -8672884.693 5 -6758083.056 4 22811720.070 22811718.962 22811719.747
+ 33.500 29.000
+ 06 1 2 22 35 0.0000000 0 7G02G04G05G06G10G13G30
+ -23462567.450 7 -18282505.590 7 20348721.768 20348717.992 20348721.022
+ 47.500 46.100
+ -8577059.308 5 -6683404.445 5 22808562.039 22808561.552 22808561.780
+ 35.700 31.500
+ -5337228.336 5 -4158873.104 3 23376835.434 23376835.117 23376834.694
+ 30.100 23.400
+ -7659913.972 5 -5968759.021 4 23355313.040 23355312.565 23355312.302
+ 32.400 29.500
+ -20946588.839 7 -16322004.389 7 20530783.253 20530781.935 20530782.134
+ 45.500 43.400
+ -6797658.037 5 -5296869.391 4 23338803.501 23338801.636 23338802.963
+ 31.000 24.200
+ -8629527.200 5 -6724298.003 4 22819970.533 22819969.634 22819970.320
+ 33.400 29.700
+ 06 1 2 22 35 30.0000000 0 7G02G04G05G06G10G13G30
+ -23430301.178 7 -18257363.027 7 20354861.891 20354857.972 20354861.156
+ 47.300 46.000
+ -8495788.195 6 -6620076.318 5 22824028.076 22824027.104 22824027.722
+ 36.100 31.600
+ -5253611.743 4 -4093717.330 4 23392747.819 23392747.062 23392746.507
+ 29.200 25.300
+ -7751599.420 5 -6040202.194 4 23337866.252 23337865.113 23337865.498
+ 33.200 29.700
+ -20998185.666 7 -16362209.689 7 20520964.781 20520963.535 20520963.591
+ 45.300 43.700
+ -6752392.516 5 -5261597.557 4 23347417.358 23347415.176 23347417.087
+ 31.600 25.600
+ -8585651.711 5 -6690109.329 4 22828320.072 22828319.123 22828319.879
+ 34.000 29.500
+ 06 1 2 22 36 0.0000000 0 7G02G04G05G06G10G13G30
+ -23397683.270 7 -18231946.474 7 20361068.910 20361065.009 20361068.102
+ 47.400 45.900
+ -8414385.925 6 -6556645.984 5 22839518.866 22839516.990 22839518.137
+ 36.500 30.400
+ -5169739.266 4 -4028362.151 4 23408707.977 23408707.491 23408706.768
+ 28.600 25.300
+ -7843073.482 5 -6111480.660 4 23320458.788 23320458.185 23320458.139
+ 32.800 29.500
+ -21049278.587 7 -16402022.331 7 20511242.041 20511240.770 20511240.808
+ 45.200 43.600
+ -6706556.245 5 -5225880.971 3 23356139.342 23356137.501 23356139.280
+ 32.000 23.400
+ -8541260.669 5 -6655518.894 5 22836767.530 22836766.625 22836767.278
+ 34.100 30.100
+ 06 1 2 22 36 30.0000000 0 7G02G04G05G06G10G13G30
+ -23364714.445 7 -18206256.475 7 20367342.512 20367338.838 20367341.780
+ 47.400 45.900
+ -8332852.874 6 -6493113.735 5 22855033.071 22855032.492 22855032.921
+ 36.000 31.000
+ -5085613.890 4 -3962809.939 4 23424716.933 23424716.194 23424715.635
+ 29.900 25.300
+ -7934333.954 5 -6182592.693 4 23303092.972 23303092.030 23303092.101
+ 33.100 29.500
+ -21099866.528 7 -16441441.488 7 20501615.214 20501614.194 20501614.109
+ 45.100 43.800
+ -6660150.872 5 -5189720.917 4 23364969.517 23364968.512 23364969.413
+ 31.100 25.600
+ -8496356.016 5 -6620528.261 5 22845312.571 22845311.613 22845312.370
+ 34.100 30.600
+ 06 1 2 22 37 0.0000000 0 7G02G04G05G06G10G13G30
+ -23331394.819 7 -18180293.126 7 20373683.018 20373679.353 20373682.366
+ 47.400 45.900
+ -8251190.024 5 -6429480.374 5 22870573.374 22870572.451 22870572.997
+ 35.800 31.800
+ -5001238.868 4 -3897063.182 4 23440772.733 23440772.154 23440771.416
+ 29.900 25.900
+ -8025378.567 5 -6253536.538 5 23285767.670 23285767.058 23285766.946
+ 33.400 31.000
+ -21149948.913 7 -16480466.705 7 20492084.913 20492083.773 20492083.646
+ 45.200 43.800
+ -6613177.852 5 -5153118.591 4 23373908.472 23373906.603 23373908.374
+ 31.300 24.900
+ -8450940.004 5 -6585139.173 5 22853954.922 22853954.018 22853954.601
+ 33.900 30.100
+ 06 1 2 22 37 30.0000000 0 7G02G04G05G06G10G13G30
+ -23297724.636 7 -18154056.617 7 20380090.449 20380086.529 20380089.600
+ 47.400 45.700
+ -8169397.711 5 -6365746.118 5 22886137.727 22886136.844 22886137.346
+ 35.400 30.600
+ -4916617.147 5 -3831124.192 4 23456875.700 23456875.196 23456874.574
+ 31.100 25.900
+ -8116205.039 5 -6324310.394 5 23268483.546 23268483.325 23268482.999
+ 33.400 31.000
+ -21199525.070 7 -16519097.457 7 20482651.007 20482649.743 20482649.817
+ 45.300 44.000
+ -6565639.046 5 -5116075.356 3 23382955.162 23382952.542 23382954.847
+ 31.600 23.800
+ -8405014.857 5 -6549353.347 4 22862694.142 22862693.240 22862693.996
+ 34.600 28.800
+ 06 1 2 22 38 0.0000000 0 7G02G04G05G06G10G13G30
+ -23263704.626 7 -18127547.508 7 20386564.241 20386560.355 20386563.448
+ 47.500 45.800
+ -8087476.752 5 -6301911.610 4 22901727.117 22901726.058 22901726.604
+ 35.100 29.900
+ -4831751.803 5 -3764995.368 4 23473025.355 23473024.739 23473024.104
+ 31.300 26.800
+ -8206811.195 5 -6394912.561 4 23251241.703 23251241.205 23251241.074
+ 33.200 29.200
+ -21248594.231 7 -16557333.155 7 20473313.454 20473312.215 20473312.289
+ 45.300 44.000
+ -6517535.938 5 -5078592.397 4 23392109.005 23392106.608 23392108.649
+ 31.600 24.600
+ -8358582.688 5 -6513172.429 4 22871530.080 22871529.094 22871529.746
+ 33.000 29.900
+ 06 1 2 22 38 30.0000000 0 7G02G04G05G06G10G13G30
+ -23229334.994 7 -18100765.978 7 20393104.639 20393100.644 20393103.862
+ 47.600 45.600
+ -8005427.675 5 -6237977.277 4 22917340.266 22917339.239 22917339.971
+ 35.400 29.200
+ -4746645.906 5 -3698679.108 4 23489220.387 23489219.854 23489219.202
+ 32.600 26.800
+ -8297194.653 5 -6465341.200 4 23234042.775 23234041.732 23234041.657
+ 33.600 29.000
+ -21297155.802 7 -16595173.325 7 20464072.632 20464071.161 20464071.406
+ 45.400 43.800
+ -6468870.251 5 -5040671.084 3 23401369.813 23401367.507 23401369.504
+ 31.800 23.800
+ -8311645.729 5 -6476598.197 5 22880461.529 22880460.876 22880461.246
+ 32.000 30.400
+ 06 1 2 22 39 0.0000000 0 7G02G04G05G06G10G13G30
+ -23194616.161 7 -18073712.334 7 20399711.474 20399707.335 20399710.667
+ 47.700 45.500
+ -7923251.319 5 -6173943.770 5 22932978.078 22932977.075 22932977.737
+ 35.600 30.100
+ -4661302.519 5 -3632177.799 4 23505460.612 23505460.249 23505459.360
+ 31.800 26.800
+ -8387353.163 5 -6535594.568 4 23216886.062 23216885.100 23216885.063
+ 33.800 28.400
+ -21345208.973 7 -16632617.343 7 20454928.161 20454926.919 20454927.035
+ 45.500 43.900
+ -6419643.656 5 -5002312.704 4 23410736.830 23410735.588 23410736.653
+ 31.000 25.300
+ -8264206.406 5 -6439632.511 4 22889488.933 22889488.259 22889488.529
+ 32.400 29.900
+ 06 1 2 22 39 30.0000000 0 7G02G04G05G06G10G13G30
+ -23159548.534 7 -18046386.906 7 20406384.435 20406380.416 20406383.717
+ 47.500 45.300
+ -7840948.357 5 -6109811.600 4 22948639.795 22948638.513 22948639.346
+ 35.200 29.000
+ -4575724.630 5 -3565493.758 4 23521745.291 23521745.185 23521744.357
+ 31.600 26.500
+ -8477284.540 5 -6605670.935 5 23199772.324 23199771.740 23199771.555
+ 32.800 30.100
+ -21392753.131 7 -16669664.726 7 20445880.979 20445879.561 20445879.734
+ 45.400 44.000
+ -6369857.909 5 -4963518.606 4 23420211.272 23420209.132 23420211.008
+ 32.000 25.300
+ -8216266.761 5 -6402276.942 4 22898611.377 22898611.000 22898611.082
+ 31.600 29.200
+ 06 1 2 22 40 0.0000000 0 7G02G04G05G06G10G13G30
+ -23124132.236 7 -18018789.790 7 20413124.033 20413119.969 20413123.225
+ 47.500 45.200
+ -7758519.157 5 -6045581.064 4 22964325.659 22964324.241 22964325.292
+ 35.600 29.900
+ -4489915.410 5 -3498629.444 4 23538074.253 23538073.993 23538073.114
+ 30.400 24.600
+ -8566986.527 5 -6675568.565 5 23182702.520 23182702.258 23182701.859
+ 33.600 31.000
+ -21439787.500 7 -16706314.869 7 20436930.549 20436929.244 20436929.394
+ 45.400 44.000
+ -6319514.492 5 -4924289.976 3 23429791.710 23429788.923 23429791.154
+ 31.100 23.000
+ -8167829.146 5 -6364533.360 4 22907828.495 22907828.147 22907828.331
+ 30.800 28.800
+ 06 1 2 22 40 30.0000000 0 7G02G04G05G06G10G13G30
+ -23088368.010 7 -17990921.559 7 20419929.615 20419925.681 20419928.876
+ 47.600 45.300
+ -7675964.375 5 -5981252.687 5 22980034.788 22980034.497 22980034.708
+ 35.100 30.100
+ -4403877.808 4 -3431587.195 4 23554446.773 23554446.361 23554445.501
+ 28.600 25.300
+ -8656456.833 5 -6745285.643 5 23165677.254 23165676.470 23165676.330
+ 34.500 31.000
+ -21486311.550 7 -16742567.364 7 20428077.186 20428076.002 20428076.073
+ 45.400 44.200
+ -6268615.312 5 -4884628.248 3 23439476.818 23439474.815 23439476.550
+ 30.100 23.000
+ -8118895.830 5 -6326403.524 5 22917140.450 22917140.025 22917140.054
+ 31.800 30.100
+ 06 1 2 22 41 0.0000000 0 7G02G04G05G06G10G13G30
+ -23052256.065 7 -17962782.377 7 20426801.616 20426797.610 20426800.841
+ 47.600 45.400
+ -7593284.787 5 -5916827.033 4 22995768.335 22995767.212 22995767.966
+ 34.500 28.800
+ -4317615.073 4 -3364369.508 3 23570861.169 23570861.659 23570860.424
+ 26.200 23.800
+ -8745693.075 5 -6814820.354 5 23148695.819 23148695.424 23148695.210
+ 34.000 31.800
+ -21532324.923 7 -16778421.928 7 20419321.049 20419319.929 20419319.874
+ 45.200 44.100
+ -6217162.256 5 -4844534.967 4 23449268.255 23449266.357 23449268.049
+ 31.500 25.900
+ -8069469.248 5 -6287889.316 5 22926546.114 22926545.395 22926545.745
+ 32.300 30.100
+ 06 1 2 22 41 30.0000000 0 7G02G04G05G06G10G13G30
+ -23015796.655 7 -17934372.441 7 20433739.700 20433735.630 20433738.836
+ 47.700 45.400
+ -7510481.031 5 -5852304.651 5 23011526.052 23011525.026 23011525.505
+ 34.700 30.200
+ -4231130.107 4 -3296978.648 4 23587319.319 23587319.540 23587318.082
+ 25.600 24.200
+ -8834692.972 5 -6884170.874 5 23131759.448 23131759.377 23131758.999
+ 33.800 32.700
+ -21577826.983 7 -16813878.064 7 20410662.411 20410661.213 20410661.290
+ 45.400 44.300
+ -6165157.080 4 -4804011.438 3 23459164.050 23459162.314 23459163.769
+ 29.900 22.600
+ -8019551.732 5 -6248992.569 5 22936045.049 22936044.536 22936044.745
+ 31.300 30.600
+ 06 1 2 22 42 0.0000000 0 7G02G04G05G06G10G13G30
+ -22978990.533 7 -17905692.342 7 20440743.735 20440739.481 20440742.832
+ 47.600 45.200
+ -7427553.779 5 -5787686.038 4 23027306.425 23027305.224 23027306.048
+ 35.100 29.700
+ -4144426.114 4 -3229417.138 3 23603818.848 23603818.706 23603817.658
+ 26.800 23.000
+ -8923454.263 5 -6953335.483 5 23114869.495 23114868.608 23114868.446
+ 33.900 32.400
+ -21622817.198 7 -16848935.362 7 20402101.210 20402099.750 20402099.970
+ 45.500 44.200
+ -6112601.386 5 -4763058.961 3 23469165.495 23469163.349 23469165.226
+ 30.200 23.000
+ -7969145.615 5 -6209715.093 4 22945637.335 22945636.401 22945636.939
+ 32.600 29.700
+ 06 1 2 22 42 30.0000000 0 7G02G04G05G06G10G13G30
+ -22941837.968 7 -17876742.285 7 20447813.373 20447809.449 20447812.627
+ 47.600 45.300
+ -7344503.481 5 -5722971.517 4 23043111.111 23043108.919 23043110.218
+ 34.900 28.800
+ -4057506.089 4 -3161687.276 4 23620358.858 23620358.982 23620357.912
+ 27.400 24.200
+ -9011974.804 5 -7022312.488 5 23098024.210 23098023.303 23098023.423
+ 34.400 30.600
+ -21667295.052 7 -16883593.416 7 20393637.188 20393635.815 20393635.961
+ 45.100 44.300
+ -6059497.136 4 -4721679.009 3 23479270.568 23479268.434 23479270.179
+ 29.900 23.400
+ -7918253.190 5 -6170058.659 4 22955321.831 22955320.866 22955321.585
+ 34.000 28.600
+ 06 1 2 22 43 0.0000000 0 7G02G04G05G06G10G13G30
+ -22904339.414 7 -17847522.633 7 20454949.343 20454945.197 20454948.382
+ 47.600 45.100
+ -7261330.840 5 -5658161.676 4 23058937.488 23058936.365 23058937.171
+ 34.700 29.000
+ -3970373.179 4 -3093791.539 3 23636939.909 23636939.560 23636938.798
+ 28.600 23.000
+ -9100252.141 5 -7091099.990 4 23081225.311 23081224.516 23081224.521
+ 34.100 29.500
+ -21711260.009 7 -16917851.807 7 20385270.901 20385269.580 20385269.689
+ 45.200 44.100
+ -6005845.972 4 -4679872.911 4 23489480.058 23489478.299 23489479.560
+ 29.200 24.600
+ -7866877.001 5 -6130025.263 4 22965098.696 22965097.597 22965098.260
+ 33.900 29.200
+ 06 1 2 22 43 30.0000000 0 7G02G04G05G06G10G13G30
+ -22866494.840 7 -17818033.349 7 20462150.824 20462146.839 20462150.044
+ 47.700 45.000
+ -7178036.447 5 -5593256.962 4 23074787.748 23074786.634 23074787.488
+ 34.600 28.600
+ -3883030.405 4 -3025732.245 3 23653560.794 23653560.540 23653559.592
+ 29.000 21.600
+ -9188283.911 5 -7159696.137 4 23064473.601 23064472.369 23064472.919
+ 35.300 29.500
+ -21754711.447 7 -16951710.058 7 20377002.154 20377001.000 20377001.121
+ 45.300 44.400
+ -5951649.938 4 -4637642.238 3 23499793.290 23499791.573 23499793.179
+ 29.700 23.800
+ -7815019.318 5 -6089616.684 4 22974966.843 22974965.639 22974966.492
+ 33.800 29.700
+ 06 1 2 22 44 0.0000000 0 7G02G04G05G06G10G13G30
+ -22828304.982 7 -17788275.017 7 20469417.950 20469414.081 20469417.177
+ 47.700 45.000
+ -7094621.020 5 -5528257.916 5 23090661.822 23090660.565 23090661.028
+ 34.300 30.400
+ -3795480.795 4 -2957511.787 3 23670221.339 23670220.466 23670220.133
+ 29.700 21.600
+ -9276068.022 5 -7228099.319 5 23047769.266 23047767.812 23047768.318
+ 35.600 30.400
+ -21797649.034 7 -16985167.909 7 20368831.783 20368830.247 20368830.524
+ 45.300 44.300
+ -5896910.980 5 -4594988.503 4 23510209.805 23510207.912 23510209.700
+ 30.800 24.200
+ -7762682.633 5 -6048834.871 5 22984926.033 22984925.316 22984925.781
+ 32.600 30.200
+ 06 1 2 22 44 30.0000000 0 7G02G04G05G06G10G13G30
+ -22789770.415 7 -17758248.071 7 20476750.742 20476746.807 20476750.075
+ 47.700 45.000
+ -7011085.157 5 -5463165.067 4 23106557.529 23106556.286 23106557.428
+ 34.700 29.000
+ -3707727.476 4 -2889132.582 3 23686919.858 23686919.303 23686918.573
+ 29.900 19.900
+ -9363601.973 5 -7296307.554 5 23031111.428 23031110.812 23031110.823
+ 34.900 31.100
+ -21840072.043 7 -17018224.786 7 20360758.961 20360757.330 20360757.793
+ 45.500 44.400
+ -5841631.057 5 -4551913.250 3 23520729.165 23520727.206 23520729.010
+ 30.100 22.100
+ -7709869.278 5 -6007681.623 4 22994976.141 22994975.470 22994975.820
+ 32.100 29.900
+ 06 1 2 22 45 0.0000000 0 7G02G04G05G06G10G13G30
+ -22750891.221 7 -17727952.589 7 20484149.224 20484145.290 20484148.490
+ 47.600 44.800
+ -6927429.442 5 -5397978.801 4 23122477.193 23122475.435 23122476.447
+ 33.800 28.100
+ -3619773.480 5 -2820597.009 3 23703657.276 23703656.435 23703656.049
+ 30.600 21.600
+ -9450883.513 5 -7364319.105 5 23014502.185 23014501.881 23014501.581
+ 34.600 31.800
+ -21881980.124 7 -17050880.420 7 20352784.043 20352782.567 20352782.829
+ 45.300 44.600
+ -5785811.641 5 -4508417.567 3 23531351.659 23531349.145 23531351.290
+ 30.800 22.600
+ -7656581.811 5 -5966158.930 4 23005116.734 23005115.728 23005116.355
+ 33.800 29.200
+ 06 1 2 22 45 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22711667.883 7 -17697388.936 7 20491613.129 20491609.325 20491612.462
+ 47.600 44.700
+ -6843654.357 5 -5332699.513 4 23138418.649 23138417.689 23138418.255
+ 33.900 29.000
+ -3531621.978 5 -2751907.537 3 23720432.245 23720431.293 23720430.887
+ 30.800 20.500
+ -9537910.484 5 -7432132.267 5 22997941.621 22997940.980 22997941.005
+ 34.100 31.800
+ -21923372.873 7 -17083134.491 7 20344907.197 20344905.830 20344906.025
+ 45.200 44.800
+ -5729454.933 4 -4464503.267 4 23542076.315 23542073.766 23542075.874
+ 29.900 24.900
+ -239636.210 2 -186729.572 3 24276041.844 24276043.647 24276041.366
+ 16.100 21.100
+ -7602822.667 5 -5924268.676 4 23015346.839 23015345.774 23015346.428
+ 33.500 28.600
+ 06 1 2 22 46 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22672100.685 7 -17666557.342 7 20499142.479 20499138.636 20499141.777
+ 47.600 44.600
+ -6759760.698 5 -5267327.843 4 23154382.975 23154381.955 23154382.757
+ 34.300 27.900
+ -3443276.023 5 -2683066.553 3 23737243.414 23737243.172 23737242.327
+ 30.800 23.000
+ -9624680.527 5 -7499745.249 5 22981429.711 22981429.293 22981429.005
+ 34.900 32.600
+ -21964250.209 7 -17114986.947 7 20337128.638 20337127.144 20337127.429
+ 45.400 44.900
+ -5672562.933 4 -4420171.837 3 23552901.534 23552899.941 23552901.198
+ 28.800 23.000
+ -351927.731 3 -274229.355 2 24254674.280 24254674.713 24254673.735
+ 19.900 17.800
+ -7548594.330 5 -5882012.834 4 23025665.603 23025665.181 23025665.406
+ 32.300 29.500
+ 06 1 2 22 46 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22632190.186 7 -17635458.244 7 20506737.496 20506733.362 20506736.650
+ 47.800 44.600
+ -6675748.975 5 -5201864.177 4 23170370.366 23170368.628 23170369.537
+ 33.200 28.100
+ -3354738.637 4 -2614076.407 4 23754091.477 23754091.436 23754090.267
+ 28.600 25.600
+ -9711191.278 5 -7567156.178 5 22964967.172 22964966.792 22964966.684
+ 35.100 32.700
+ -22004611.572 7 -17146437.341 7 20329447.900 20329446.582 20329446.750
+ 45.200 44.800
+ -5615137.557 5 -4375424.785 3 23563829.700 23563827.409 23563829.256
+ 30.600 23.400
+ -464191.283 3 -361707.423 2 24233311.374 24233311.392 24233310.544
+ 20.500 17.000
+ -7493899.302 5 -5839393.357 5 23036073.560 23036073.198 23036073.346
+ 30.800 30.200
+ 06 1 2 22 47 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22591936.946 7 -17604092.077 7 20514397.147 20514393.322 20514396.456
+ 47.700 44.600
+ -6591619.726 5 -5136308.935 4 23186378.854 23186378.637 23186378.779
+ 34.000 29.500
+ -3266012.882 4 -2544939.480 4 23770975.577 23770975.245 23770974.171
+ 27.600 25.600
+ -9797440.325 6 -7634363.185 5 22948555.235 22948554.255 22948554.218
+ 36.000 33.100
+ -22044456.499 7 -17177485.318 7 20321865.811 20321864.279 20321864.554
+ 45.100 44.700
+ -5557180.831 5 -4330263.707 3 23574858.409 23574856.463 23574858.164
+ 31.000 23.000
+ -576423.894 3 -449161.350 2 24211954.655 24211954.595 24211953.737
+ 21.100 17.800
+ -7438740.056 5 -5796412.159 5 23046570.063 23046569.521 23046569.752
+ 30.400 30.100
+ 06 1 2 22 47 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22551341.412 7 -17572459.183 7 20522122.317 20522118.343 20522121.529
+ 47.700 44.500
+ -6507373.725 5 -5070662.720 4 23202411.659 23202409.651 23202410.956
+ 33.500 27.900
+ -3177101.819 4 -2475658.177 4 23787894.876 23787894.713 23787893.945
+ 28.100 24.900
+ -9883425.502 5 -7701364.580 5 22932192.572 22932191.355 22932191.772
+ 35.900 32.100
+ -22083784.503 7 -17208130.501 7 20314381.876 20314380.516 20314380.659
+ 45.300 44.900
+ -5498695.023 4 -4284690.313 3 23585987.976 23585985.512 23585987.472
+ 29.000 21.600
+ -688622.975 3 -536589.140 2 24190603.017 24190603.299 24190602.114
+ 18.600 17.800
+ -7383119.113 5 -5753071.202 4 23057154.435 23057153.983 23057154.201
+ 31.300 29.900
+ 06 1 2 22 48 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22510403.907 7 -17540559.814 7 20529912.561 20529908.443 20529911.670
+ 47.600 44.400
+ -6423011.475 5 -5004925.897 4 23218464.247 23218463.032 23218463.973
+ 33.100 28.100
+ -3088008.668 4 -2406234.959 4 23804848.722 23804848.408 23804847.496
+ 26.200 24.200
+ -9969144.402 5 -7768158.488 5 22915880.382 22915879.480 22915879.539
+ 35.600 31.100
+ -22122595.286 7 -17238372.655 7 20306996.277 20306995.032 20306995.158
+ 45.300 44.900
+ -5439682.014 4 -4238706.165 3 23597216.720 23597215.392 23597216.560
+ 28.600 22.600
+ -800785.300 3 -623988.292 2 24169259.236 24169259.923 24169258.593
+ 19.300 16.100
+ -7327039.029 5 -5709372.453 4 23067826.415 23067825.468 23067826.042
+ 33.000 28.400
+ 06 1 2 22 48 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22469124.660 7 -17508394.158 7 20537767.476 20537763.605 20537766.716
+ 47.600 44.300
+ -6338533.592 5 -4939098.980 4 23234540.337 23234538.962 23234539.753
+ 33.200 27.600
+ -2998736.368 4 -2336672.201 3 23821836.069 23821836.525 23821834.938
+ 24.200 22.600
+ -10054594.858 6 -7834743.224 5 22899620.074 22899618.702 22899619.092
+ 36.000 31.600
+ -22160888.688 7 -17268211.653 7 20299709.304 20299707.934 20299708.135
+ 45.200 45.000
+ -5380143.681 4 -4192312.630 3 23608546.770 23608545.231 23608546.513
+ 28.400 22.600
+ -912908.123 3 -711356.735 1 24147922.856 24147923.167 24147922.340
+ 22.100 6.500
+ -7270502.471 5 -5665317.994 4 23078584.784 23078583.793 23078584.663
+ 32.800 25.600
+ 06 1 2 22 49 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22427504.387 7 -17475962.764 7 20545687.829 20545683.717 20545686.948
+ 47.700 44.400
+ -6253940.707 5 -4873182.461 4 23250637.430 23250636.275 23250637.089
+ 33.100 28.100
+ -2909287.999 4 -2266972.227 4 23838858.195 23838858.057 23838856.923
+ 26.200 24.200
+ -10139774.485 6 -7901116.918 5 22883410.420 22883409.619 22883410.035
+ 36.500 32.300
+ -22198664.400 7 -17297647.258 7 20292520.933 20292519.386 20292519.792
+ 45.300 44.800
+ -5320082.126 4 -4145511.412 3 23619976.821 23619974.491 23619976.452
+ 29.900 23.400
+ -1024988.404 3 -798691.989 3 24126596.208 24126595.743 24126594.597
+ 21.100 19.300
+ -7213511.913 5 -5620909.753 3 23089429.685 23089428.466 23089429.365
+ 31.800 23.800
+ 06 1 2 22 49 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22385543.421 7 -17443265.896 7 20553672.853 20553668.724 20553671.972
+ 47.700 44.200
+ -6169233.451 5 -4807176.831 4 23266756.466 23266756.080 23266756.373
+ 32.800 28.800
+ -2819666.722 4 -2197137.489 3 23855912.195 23855912.398 23855911.414
+ 29.200 23.800
+ -10224680.810 5 -7967277.670 5 22867253.868 22867252.351 22867252.689
+ 35.900 32.000
+ -22235922.147 7 -17326679.253 7 20285430.842 20285429.427 20285429.793
+ 45.200 44.800
+ -5259499.274 5 -4098303.971 3 23631505.581 23631503.154 23631505.279
+ 31.100 23.800
+ -1137023.333 3 -885991.876 3 24105275.836 24105275.803 24105275.232
+ 20.500 19.300
+ -7156070.013 5 -5576149.819 3 23100360.562 23100358.929 23100360.211
+ 31.000 22.100
+ 06 1 2 22 50 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22343242.050 7 -17410303.784 7 20561722.541 20561718.417 20561721.737
+ 47.900 44.300
+ -6084412.305 5 -4741082.457 4 23282898.353 23282896.680 23282897.537
+ 33.200 28.100
+ -2729875.626 4 -2127170.415 3 23872999.279 23872999.195 23872998.097
+ 28.800 23.400
+ -10309311.702 5 -8033223.792 5 22851148.302 22851147.651 22851147.661
+ 35.800 32.100
+ -22272661.552 7 -17355307.345 7 20278439.606 20278438.269 20278438.485
+ 45.300 45.100
+ -5198397.464 5 -4050692.161 3 23643132.711 23643130.332 23643132.425
+ 30.200 22.600
+ -1249009.911 2 -973254.045 3 24083964.745 24083965.509 24083964.195
+ 17.800 21.600
+ -7098179.283 5 -5531040.143 4 23111376.866 23111375.074 23111376.706
+ 30.600 24.200
+ 06 1 2 22 50 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22300600.874 8 -17377076.886 7 20569836.752 20569832.757 20569835.969
+ 48.100 44.400
+ -5999477.930 5 -4674899.835 4 23299059.831 23299058.875 23299059.741
+ 32.300 27.100
+ -2639917.678 4 -2057073.348 4 23890117.616 23890117.480 23890116.383
+ 28.400 24.200
+ -10393664.626 6 -8098953.315 5 22835096.699 22835096.054 22835095.954
+ 36.200 32.800
+ -22308882.341 7 -17383531.320 7 20271547.033 20271545.641 20271545.886
+ 45.300 45.100
+ -5136778.731 4 -4002677.537 4 23654858.025 23654856.681 23654857.764
+ 28.100 24.200
+ -1360945.190 3 -1060476.246 3 24062664.277 24062664.615 24062663.509
+ 21.100 22.600
+ -7039842.323 4 -5485582.795 4 23122478.033 23122476.549 23122477.523
+ 29.700 25.600
+ 06 1 2 22 51 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22257620.450 7 -17343585.647 7 20578015.537 20578011.654 20578014.858
+ 47.800 44.300
+ -5914430.913 5 -4608629.432 4 23315244.737 23315243.028 23315243.937
+ 32.100 27.900
+ -2549795.948 4 -1986848.678 4 23907266.626 23907267.346 23907266.012
+ 27.100 24.600
+ -10477737.406 5 -8164464.527 5 22819097.997 22819097.514 22819097.336
+ 35.800 33.400
+ -22344584.335 7 -17411351.039 7 20264753.383 20264751.803 20264752.193
+ 45.300 45.300
+ -5074645.374 4 -3954261.967 3 23666681.395 23666679.578 23666680.965
+ 28.600 22.600
+ -1472826.346 3 -1147656.290 2 24041374.015 24041374.147 24041373.385
+ 21.600 16.100
+ -6981061.927 5 -5439779.918 4 23133663.418 23133662.296 23133663.098
+ 30.400 28.100
+ 06 1 2 22 51 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22214301.129 7 -17309830.330 7 20586258.743 20586254.923 20586257.975
+ 47.700 44.300
+ -5829271.866 5 -4542271.757 4 23331449.461 23331448.451 23331449.097
+ 32.800 28.100
+ -2459513.582 4 -1916498.830 4 23924448.024 23924447.806 23924446.603
+ 25.900 24.900
+ -10561527.843 6 -8229755.745 5 22803153.692 22803152.848 22803152.707
+ 36.300 33.500
+ -22379767.374 7 -17438766.378 7 20258058.243 20258056.682 20258057.029
+ 45.500 45.200
+ -5011999.138 4 -3905446.707 3 23678602.163 23678601.149 23678601.948
+ 27.400 22.100
+ -1584650.402 3 -1234791.855 2 24020094.495 24020094.251 24020093.681
+ 21.100 17.800
+ -6921840.576 5 -5393633.443 4 23144932.630 23144931.917 23144932.460
+ 31.600 29.500
+ 06 1 2 22 52 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22170643.300 7 -17275811.240 7 20594566.689 20594562.849 20594565.968
+ 47.700 44.200
+ -5744001.202 5 -4475827.108 4 23347675.676 23347674.812 23347675.288
+ 32.400 27.100
+ -2369073.611 3 -1846026.174 3 23941657.402 23941657.440 23941656.405
+ 23.800 23.800
+ -10645033.340 6 -8294824.941 5 22787262.786 22787262.204 22787262.170
+ 36.800 33.100
+ -22414431.102 7 -17465777.059 7 20251461.801 20251460.380 20251460.559
+ 45.200 45.200
+ -4948842.546 4 -3856233.787 3 23690621.041 23690619.309 23690620.798
+ 29.500 21.100
+ -1696414.440 3 -1321880.624 3 23998826.136 23998826.431 23998825.784
+ 20.500 19.900
+ -6862181.009 5 -5347145.484 4 23156285.899 23156284.967 23156285.512
+ 33.400 29.500
+ 06 1 2 22 52 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22126647.419 7 -17241528.731 7 20602938.849 20602934.981 20602938.105
+ 47.500 44.100
+ -5658619.668 5 -4409296.043 4 23363923.282 23363922.291 23363923.043
+ 32.800 28.100
+ -2278479.123 4 -1775433.088 3 23958897.350 23958897.489 23958895.975
+ 25.600 21.600
+ -10728251.703 6 -8359670.390 5 22771426.792 22771426.274 22771426.004
+ 36.200 33.200
+ -22448575.435 7 -17492383.017 7 20244964.126 20244962.886 20244962.969
+ 45.200 45.200
+ -4885177.720 4 -3806624.830 3 23702736.154 23702734.541 23702735.764
+ 29.000 21.600
+ -1808115.529 3 -1408920.298 2 23977569.057 23977570.691 23977569.795
+ 19.900 17.000
+ -6802085.909 5 -5300318.148 5 23167721.796 23167720.984 23167721.385
+ 33.400 30.800
+ 06 1 2 22 53 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22082314.034 7 -17206983.239 7 20611375.090 20611371.317 20611374.338
+ 47.800 44.200
+ -5573127.822 5 -4342679.038 4 23380191.816 23380191.172 23380191.559
+ 32.400 27.600
+ -2187733.070 4 -1704721.903 3 23976165.654 23976165.319 23976164.493
+ 27.900 19.300
+ -10811180.735 6 -8424290.390 5 22755645.908 22755645.095 22755645.148
+ 36.600 33.100
+ -22482200.385 7 -17518584.261 7 20238565.618 20238564.273 20238564.459
+ 45.200 45.300
+ -4821006.661 4 -3756621.382 3 23714947.644 23714945.434 23714947.280
+ 29.700 22.100
+ -1919750.705 3 -1495908.655 3 23956325.947 23956326.623 23956326.204
+ 20.500 19.900
+ -6741557.875 5 -5253153.457 4 23179239.742 23179239.037 23179239.439
+ 33.400 29.500
+ 06 1 2 22 53 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -22037643.404 7 -17172174.953 7 20619875.694 20619871.884 20619874.942
+ 47.600 44.100
+ -5487526.356 5 -4275976.596 4 23396481.598 23396480.296 23396480.993
+ 32.300 26.500
+ -2096838.702 4 -1633895.152 3 23993462.509 23993462.063 23993461.443
+ 27.600 19.300
+ -10893817.884 6 -8488682.956 5 22739920.272 22739919.674 22739919.611
+ 36.600 32.400
+ -22515305.559 7 -17544380.486 7 20232266.086 20232264.502 20232264.907
+ 45.400 45.300
+ -4756331.734 4 -3706225.360 3 23727254.791 23727252.387 23727254.468
+ 28.800 21.100
+ -2031317.027 3 -1582843.349 3 23935095.746 23935096.739 23935095.525
+ 22.100 22.600
+ -6680599.684 5 -5205653.590 4 23190839.705 23190839.151 23190839.455
+ 33.600 29.500
+ 06 1 2 22 54 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21992636.220 7 -17137104.424 7 20628440.426 20628436.331 20628439.572
+ 47.600 43.900
+ -5401815.655 5 -4209189.053 4 23412791.241 23412790.415 23412790.829
+ 31.300 26.500
+ -2005798.958 4 -1562955.131 2 24010786.324 24010786.218 24010785.399
+ 26.200 12.600
+ -10976160.915 6 -8552846.336 5 22724251.311 22724250.305 22724250.510
+ 37.300 33.100
+ -22547890.966 7 -17569771.703 7 20226065.256 20226063.651 20226064.051
+ 45.300 45.300
+ -4691155.177 4 -3655438.430 2 23739657.408 23739654.974 23739657.175
+ 28.600 17.800
+ -2142811.580 3 -1669722.094 3 23913881.045 23913879.067 23913879.634
+ 21.100 20.500
+ -6619213.986 5 -5157820.592 4 23202520.977 23202520.414 23202520.865
+ 32.700 29.000
+ 06 1 2 22 54 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21947292.855 7 -17101771.928 7 20637068.783 20637064.925 20637068.062
+ 47.700 43.700
+ -5315996.404 5 -4142316.925 4 23429121.998 23429121.290 23429121.875
+ 31.500 25.900
+ -1914616.885 4 -1491904.203 3 24028137.858 24028137.377 24028136.667
+ 27.600 19.300
+ -11058207.453 6 -8616778.675 5 22708638.093 22708637.847 22708637.548
+ 37.600 34.400
+ -22579956.354 7 -17594757.706 7 20219963.145 20219961.801 20219962.033
+ 45.200 45.400
+ -4625479.154 4 -3604262.311 3 23752155.619 23752152.551 23752155.127
+ 28.400 21.100
+ -2254231.420 3 -1756542.714 3 23892677.641 23892676.168 23892677.061
+ 23.400 18.600
+ -6557403.582 5 -5109656.656 4 23214282.975 23214282.627 23214282.830
+ 31.600 27.600
+ 06 1 2 22 55 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21901613.495 7 -17066177.620 7 20645761.340 20645757.422 20645760.561
+ 47.600 43.600
+ -5230069.097 5 -4075360.569 4 23445474.471 23445473.135 23445473.877
+ 32.000 27.600
+ -1823295.636 4 -1420744.837 2 24045515.938 24045515.639 24045514.868
+ 26.800 17.000
+ -11139955.256 6 -8680478.230 5 22693082.220 22693081.519 22693081.395
+ 37.400 34.300
+ -22611501.705 7 -17619338.482 7 20213960.216 20213958.991 20213959.155
+ 45.100 45.400
+ -4559305.977 5 -3552698.806 4 23764747.800 23764745.875 23764747.541
+ 30.400 24.200
+ -2365573.450 4 -1843302.666 3 23871489.949 23871489.004 23871489.276
+ 25.300 20.500
+ -6495171.126 4 -5061163.844 4 23226125.802 23226124.981 23226125.308
+ 29.000 24.900
+ 06 1 2 22 55 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21855598.783 7 -17030322.001 7 20654517.877 20654513.680 20654517.011
+ 47.600 43.700
+ -5144034.400 5 -4008320.556 4 23461844.742 23461844.918 23461844.906
+ 31.000 26.200
+ -1731838.110 4 -1349479.241 3 24062919.948 24062919.578 24062918.645
+ 24.900 20.500
+ -11221402.009 6 -8743943.216 5 22677582.950 22677582.541 22677582.527
+ 37.500 33.800
+ -22642527.098 7 -17643514.102 7 20208056.649 20208055.036 20208055.346
+ 45.100 45.500
+ -4492638.053 4 -3500749.785 3 23777434.106 23777431.824 23777433.766
+ 29.000 21.100
+ -2476834.818 4 -1929999.774 3 23850317.602 23850316.498 23850316.750
+ 25.600 19.300
+ -6432519.381 4 -5012344.307 4 23238047.674 23238047.301 23238047.411
+ 27.900 24.200
+ 06 1 2 22 56 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21809249.271 7 -16994205.496 7 20663337.645 20663333.669 20663336.904
+ 47.400 43.300
+ -5057892.846 5 -3941197.269 4 23478238.444 23478236.708 23478237.699
+ 31.500 25.300
+ -1640247.537 4 -1278109.992 3 24080348.655 24080348.889 24080347.792
+ 27.100 21.100
+ -11302545.216 6 -8807171.669 5 22662142.215 22662141.441 22662141.396
+ 37.700 33.500
+ -22673032.390 7 -17667284.451 7 20202251.494 20202250.061 20202250.352
+ 45.000 45.500
+ -4425477.350 4 -3448416.749 3 23790214.815 23790212.434 23790214.325
+ 29.700 21.100
+ -2588012.397 4 -2016631.594 2 23829160.403 23829160.032 23829159.966
+ 24.600 17.000
+ -6369450.995 4 -4963200.134 3 23250049.117 23250048.639 23250048.773
+ 25.600 22.600
+ 06 1 2 22 56 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21762565.411 7 -16957828.459 7 20672221.164 20672217.371 20672220.510
+ 47.700 43.200
+ -4971645.089 5 -3873991.240 4 23494649.262 23494649.666 23494649.811
+ 30.800 26.200
+ -1548526.860 4 -1206639.335 3 24097803.175 24097802.524 24097801.630
+ 25.300 22.600
+ -11383382.707 6 -8870161.903 5 22646759.584 22646758.461 22646758.727
+ 37.700 33.100
+ -22703017.444 7 -17690649.416 7 20196545.507 20196544.063 20196544.326
+ 45.100 45.500
+ -4357826.304 4 -3395701.643 3 23803087.671 23803086.151 23803087.503
+ 27.900 21.600
+ -2699103.560 3 -2103196.102 3 23808019.828 23808020.405 23808019.581
+ 22.600 19.900
+ -6305968.898 4 -4913733.551 3 23262128.951 23262128.987 23262128.906
+ 24.200 19.900
+ 06 1 2 22 57 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21715547.572 7 -16921191.178 7 20681168.627 20681164.605 20681167.725
+ 47.900 43.500
+ -4885291.584 5 -3806702.807 4 23511083.381 23511081.382 23511082.641
+ 31.600 24.200
+ -1456679.153 4 -1135069.771 3 24115280.825 24115281.026 24115279.705
+ 25.900 22.100
+ -11463912.085 6 -8932912.048 5 22631435.034 22631434.042 22631434.389
+ 37.600 32.700
+ -22732481.993 7 -17713608.792 7 20190938.576 20190937.121 20190937.399
+ 44.800 45.600
+ -4289687.263 4 -3342606.239 2 23816054.382 23816052.051 23816053.866
+ 28.100 17.800
+ -2810105.195 3 -2189690.829 3 23786896.174 23786897.084 23786896.499
+ 20.500 19.300
+ -6242075.852 3 -4863946.776 3 23274287.975 23274287.260 23274287.524
+ 20.500 18.600
+ 06 1 2 22 57 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21668196.386 7 -16884294.147 7 20690179.243 20690175.285 20690178.490
+ 47.800 43.500
+ -4798833.089 5 -3739332.575 4 23527535.385 23527534.500 23527535.333
+ 31.800 27.100
+ -1364707.471 4 -1063403.559 3 24132782.320 24132782.132 24132781.364
+ 25.900 21.600
+ -11544130.954 6 -8995420.247 5 22616170.014 22616168.844 22616169.220
+ 37.600 32.400
+ -22761426.273 7 -17736162.770 7 20185430.504 20185429.099 20185429.346
+ 44.700 45.500
+ -4221062.330 4 -3289132.263 3 23829113.363 23829110.484 23829112.921
+ 28.100 18.600
+ -2921014.199 3 -2276113.369 4 23765791.668 23765792.656 23765791.732
+ 23.400 24.600
+ -6177774.485 3 -4813841.835 2 23286523.433 23286523.383 23286523.498
+ 19.300 12.600
+ 06 1 2 22 58 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21620512.349 7 -16847137.754 7 20699252.928 20699249.228 20699252.260
+ 47.700 43.400
+ -4712269.867 5 -3671880.729 4 23544008.144 23544006.660 23544007.518
+ 30.800 25.600
+ -1272614.855 4 -991643.138 3 24150307.313 24150306.871 24150306.052
+ 27.400 21.100
+ -11624037.102 6 -9057684.742 5 22600964.381 22600963.590 22600963.715
+ 38.100 34.400
+ -22789850.435 7 -17758311.453 7 20180021.598 20180020.163 20180020.514
+ 44.900 45.500
+ -4151954.128 4 -3235281.710 3 23842264.088 23842262.419 23842263.648
+ 28.600 21.100
+ -3031827.805 3 -2362461.556 4 23744704.442 23744705.406 23744704.230
+ 21.600 25.300
+ -6113067.894 3 -4763421.113 2 23298837.506 23298836.826 23298836.923
+ 18.600 13.900
+ 06 1 2 22 58 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21572496.000 7 -16809722.415 7 20708390.150 20708386.386 20708389.532
+ 47.900 43.200
+ -4625602.617 5 -3604347.828 4 23560500.129 23560499.165 23560499.733
+ 30.600 25.600
+ -1180404.346 4 -919790.816 3 24167854.721 24167854.187 24167853.367
+ 25.300 19.300
+ -11703628.133 6 -9119703.704 5 22585818.969 22585817.915 22585818.152
+ 38.900 34.400
+ -22817754.282 7 -17780054.702 7 20174711.827 20174710.230 20174710.591
+ 44.900 45.600
+ -4082364.830 4 -3181056.277 3 23855506.008 23855504.411 23855506.012
+ 27.900 22.600
+ -3142542.775 3 -2448732.913 4 23723634.669 23723636.852 23723635.710
+ 20.500 25.600
+ -6047958.626 3 -4712686.630 2 23311227.685 23311226.698 23311227.270
+ 18.600 12.600
+ 06 1 2 22 59 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21524147.637 7 -16772048.362 7 20717590.780 20717586.974 20717590.008
+ 47.900 43.600
+ -4538831.845 5 -3536734.236 4 23577012.072 23577011.546 23577011.759
+ 31.000 26.800
+ -1088078.972 3 -847848.988 3 24185422.771 24185422.860 24185421.834
+ 23.400 18.600
+ -11782901.913 6 -9181475.446 5 22570733.424 22570732.430 22570732.778
+ 38.600 34.500
+ -22845137.930 7 -17801392.601 7 20169500.744 20169499.300 20169499.633
+ 44.900 45.500
+ -4012297.018 4 -3126457.986 3 23868839.755 23868837.775 23868839.302
+ 26.800 18.600
+ -3253156.261 3 -2534925.157 3 23702586.556 23702587.746 23702586.447
+ 23.000 23.400
+ -5982449.609 2 -4661640.652 1 23323693.101 23323692.254 23323693.042
+ 15.100 11.000
+ 06 1 2 22 59 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21475467.702 8 -16734115.944 7 20726854.167 20726850.340 20726853.512
+ 48.100 43.600
+ -4451958.235 5 -3469040.553 4 23593543.821 23593542.343 23593543.343
+ 31.500 25.600
+ -995641.773 3 -775820.034 3 24203013.226 24203013.446 24203011.885
+ 22.600 18.600
+ -11861855.768 6 -9242997.907 5 22555709.342 22555707.975 22555708.411
+ 38.700 34.400
+ -22872001.640 7 -17822325.353 7 20164388.761 20164387.320 20164387.604
+ 45.100 45.600
+ -3941752.955 4 -3071488.581 3 23882263.626 23882262.231 23882263.478
+ 26.200 21.100
+ -3363665.241 3 -2621036.041 3 23681559.701 23681558.377 23681558.273
+ 23.000 21.100
+ -5916543.690 2 -4610285.409 9 23336235.443 23336234.354 23336235.064
+ 15.100 -3.000
+ 06 1 2 23 0 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21426456.922 7 -16695925.723 7 20736180.691 20736176.778 20736179.943
+ 47.700 43.300
+ -4364982.412 5 -3401267.195 4 23610094.126 23610093.322 23610094.068
+ 30.800 24.200
+ -903095.733 4 -703706.256 3 24220624.209 24220624.456 24220623.138
+ 26.500 20.500
+ -11940487.619 6 -9304269.459 5 22540746.009 22540744.677 22540745.298
+ 38.900 33.900
+ -22898345.436 7 -17842852.975 7 20159375.669 20159374.194 20159374.587
+ 45.100 45.700
+ -3870735.122 4 -3016150.046 3 23895777.978 23895776.581 23895777.928
+ 25.900 21.600
+ -3474066.936 3 -2707063.285 3 23660550.569 23660549.484 23660549.269
+ 23.000 22.100
+ -5850243.725 2 -4558623.097 1 23348851.469 23348850.474 23348851.682
+ 12.600 6.500
+ 06 1 2 23 0 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21377115.604 7 -16657477.945 7 20745570.111 20745566.223 20745569.224
+ 47.500 43.400
+ -4277904.880 5 -3333414.595 4 23626663.864 23626663.943 23626664.100
+ 30.100 24.900
+ -810443.891 4 -631510.039 3 24238255.634 24238255.436 24238254.092
+ 25.900 19.900
+ -12018795.144 6 -9365288.292 5 22525844.592 22525843.297 22525843.843
+ 39.300 34.300
+ -22924169.306 7 -17862975.460 7 20154461.478 20154459.990 20154460.293
+ 44.800 45.500
+ -3799245.780 4 -2960444.050 3 23909382.729 23909379.506 23909382.229
+ 28.800 19.300
+ -3584358.201 3 -2793004.479 4 23639560.770 23639562.222 23639561.063
+ 23.400 24.200
+ -5783552.399 1 -4506655.855 1 23361543.273 23361542.610 23361541.925
+ 11.000 6.500
+ 06 1 2 23 1 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21327444.123 7 -16618772.891 7 20755022.255 20755018.316 20755021.486
+ 47.700 43.100
+ -4190726.145 4 -3265483.126 4 23643253.857 23643253.392 23643254.081
+ 29.900 24.200
+ -717689.402 4 -559233.837 3 24255905.384 24255905.847 24255904.736
+ 25.300 18.600
+ -12096775.844 6 -9426052.452 5 22511005.248 22511003.998 22511004.495
+ 39.300 34.000
+ -22949473.371 7 -17882692.907 7 20149646.229 20149644.799 20149645.049
+ 44.800 45.600
+ -3727287.197 4 -2904372.426 3 23923075.660 23923074.060 23923075.146
+ 25.600 22.600
+ -3694535.956 4 -2878857.244 3 23618595.959 23618595.978 23618595.612
+ 26.800 22.600
+ -5716472.796 -4454386.031 9 23374307.508 23374307.260 23374306.391
+ 3.000 -3.000
+ 06 1 2 23 1 30.0000000 0 8G02G04G05G06G10G13G29G30
+ -21277443.368 7 -16579811.261 7 20764536.902 20764533.162 20764536.212
+ 47.800 43.300
+ -4103446.679 4 -3197473.174 4 23659862.758 23659862.331 23659862.881
+ 29.200 25.600
+ -624835.166 3 -486879.942 2 24273575.803 24273575.281 24273574.692
+ 22.100 17.800
+ -12174427.581 6 -9486560.280 5 22496228.519 22496227.186 22496227.724
+ 39.200 34.400
+ -22974257.752 7 -17902005.402 7 20144929.920 20144928.555 20144928.781
+ 44.800 45.800
+ -3654862.083 4 -2847937.282 3 23936857.671 23936855.604 23936857.293
+ 26.800 22.100
+ -3804597.370 4 -2964619.314 3 23597653.237 23597652.327 23597651.500
+ 25.300 23.400
+ -5649007.705 1 -4401815.859 23387145.387 23387144.371 23387145.982
+ 6.500 3.000
+ 06 1 2 23 2 0.0000000 0 7G02G04G05G06G10G13G29
+ -21227113.529 7 -16540593.203 7 20774114.446 20774110.590 20774113.659
+ 47.500 43.200
+ -4016067.260 5 -3129385.353 4 23676491.028 23676490.402 23676490.684
+ 30.400 25.900
+ -531884.197 4 -414450.657 2 24291263.633 24291263.003 24291262.639
+ 24.200 17.000
+ -12251747.974 6 -9546809.913 5 22481514.815 22481513.902 22481513.938
+ 38.400 34.400
+ -22998522.455 7 -17920912.956 7 20140312.542 20140311.207 20140311.392
+ 44.700 46.000
+ -3581972.700 4 -2791140.376 3 23950727.469 23950726.022 23950727.152
+ 25.600 19.900
+ -3914539.353 3 -3050288.402 3 23576731.445 23576729.482 23576730.531
+ 23.800 20.500
+ 06 1 2 23 2 30.0000000 0 7G02G04G05G06G10G13G29
+ -21176455.167 7 -16501119.154 7 20783754.108 20783750.464 20783753.494
+ 47.700 43.000
+ -3928588.252 5 -3061219.932 4 23693137.999 23693136.398 23693137.683
+ 30.200 24.600
+ -438839.559 4 -341948.364 3 24308970.373 24308969.605 24308968.996
+ 27.100 19.900
+ -12328734.794 6 -9606799.616 5 22466864.886 22466863.634 22466864.040
+ 38.900 34.500
+ -23022267.850 7 -17939415.850 7 20135794.099 20135792.577 20135792.931
+ 44.800 45.900
+ -3508622.025 4 -2733983.971 3 23964685.736 23964684.018 23964685.255
+ 26.500 19.300
+ -4024358.785 3 -3135861.941 3 23555830.470 23555832.181 23555831.757
+ 21.600 19.300
+ 06 1 2 23 3 0.0000000 0 7G02G04G05G06G10G13G29
+ -21125468.867 7 -16461389.563 7 20793456.786 20793452.861 20793456.031
+ 47.600 43.100
+ -3841010.352 5 -2992977.436 3 23709803.518 23709801.859 23709803.096
+ 31.300 23.000
+ -345704.301 4 -269375.444 3 24326692.984 24326692.590 24326691.520
+ 27.100 21.100
+ -12405385.514 6 -9666527.424 5 22452278.894 22452277.308 22452278.147
+ 39.500 34.100
+ -23045494.081 7 -17957514.206 7 20131374.243 20131372.736 20131373.109
+ 44.700 45.800
+ -3434811.797 4 -2676469.521 3 23978731.699 23978729.923 23978731.349
+ 26.800 22.100
+ -4134052.979 3 -3221337.973 3 23534956.936 23534958.223 23534957.210
+ 22.100 20.500
+ 06 1 2 23 3 30.0000000 0 7G02G04G05G06G10G13G29
+ -21074155.034 7 -16421404.754 7 20803221.371 20803217.542 20803220.643
+ 47.600 42.700
+ -3753333.963 4 -2924658.192 4 23726487.673 23726486.632 23726487.197
+ 29.900 25.600
+ -252481.366 3 -196734.245 3 24344432.782 24344432.547 24344431.211
+ 23.800 22.600
+ -12481697.989 6 -9725991.691 5 22437757.132 22437755.559 22437756.145
+ 38.900 33.800
+ -23068201.421 7 -17975208.229 7 20127053.161 20127051.701 20127052.059
+ 44.700 45.800
+ -3360544.769 4 -2618599.111 3 23992863.965 23992862.252 23992863.778
+ 27.400 22.600
+ -4243618.738 4 -3306713.863 3 23514109.786 23514107.983 23514108.263
+ 24.900 20.500
+ 06 1 2 23 4 0.0000000 0 7G02G04G05G06G10G13G29
+ -21022514.513 7 -16381165.382 7 20813048.607 20813044.414 20813047.612
+ 47.500 43.000
+ -3665559.596 4 -2856262.633 4 23743189.555 23743189.706 23743189.992
+ 29.700 25.600
+ -159173.691 3 -124026.992 3 24362187.660 24362188.275 24362186.950
+ 23.000 21.600
+ -12557669.906 6 -9785190.560 5 22423299.615 22423298.599 22423299.101
+ 39.500 34.400
+ -23090389.924 7 -17992497.964 7 20122830.752 20122829.393 20122829.576
+ 44.600 45.900
+ -3285823.412 4 -2560374.657 3 24007083.841 24007081.182 24007083.291
+ 29.200 19.900
+ -4353053.062 4 -3391987.317 3 23493285.150 23493283.711 23493284.056
+ 25.900 23.000
+ 06 1 2 23 4 30.0000000 0 7G02G04G05G06G10G13G29
+ -20970547.398 7 -16340671.521 7 20822937.235 20822933.493 20822936.447
+ 47.400 42.900
+ -3577687.984 4 -2787791.258 3 23759912.625 23759910.376 23759911.495
+ 28.600 23.800
+ -65784.350 3 -51256.124 3 24379959.521 24379959.336 24379958.210
+ 22.100 19.300
+ -12633298.791 6 -9844122.146 5 22408908.366 22408907.183 22408907.631
+ 39.900 35.300
+ -23112059.963 7 -18009383.699 7 20118707.141 20118705.693 20118705.907
+ 44.500 46.000
+ -3210650.329 4 -2501798.206 2 24021388.046 24021385.584 24021387.901
+ 27.600 17.000
+ -4462352.980 3 -3477156.062 3 23472483.188 23472484.375 23472484.098
+ 23.000 22.100
+ 06 1 2 23 5 0.0000000 0 7G02G04G05G06G10G13G29
+ -20918254.110 7 -16299923.503 7 20832888.445 20832884.535 20832887.615
+ 47.500 42.700
+ -3489719.616 4 -2719244.455 4 23776652.412 23776650.574 23776651.666
+ 29.500 24.200
+ 27683.595 4 21576.016 2 24397745.881 24397745.795 24397744.784
+ 25.600 15.100
+ -12708582.353 6 -9902784.640 5 22394582.453 22394581.053 22394581.693
+ 40.100 35.600
+ -23133211.766 7 -18025865.612 7 20114682.002 20114680.616 20114680.917
+ 44.600 45.900
+ -3135027.927 4 -2442871.639 3 24035777.613 24035776.564 24035777.576
+ 26.500 19.900
+ -4571515.491 4 -3562217.734 4 23451711.123 23451711.983 23451711.226
+ 24.200 24.600
+ 06 1 2 23 5 30.0000000 0 7G02G04G05G06G10G13G29
+ -20865635.616 7 -16258922.078 7 20842901.331 20842897.516 20842900.550
+ 47.200 42.600
+ -3401655.100 4 -2650622.789 4 23793408.961 23793409.502 23793409.315
+ 29.200 26.500
+ 121227.250 4 94467.182 2 24415546.229 24415546.813 24415545.400
+ 24.900 17.800
+ -12783518.516 6 -9961176.432 5 22380322.515 22380321.298 22380321.661
+ 40.000 35.700
+ -23153845.566 7 -18041943.892 7 20110755.700 20110754.114 20110754.502
+ 44.800 45.800
+ -3058958.860 4 -2383597.046 3 24050253.241 24050252.505 24050253.263
+ 27.100 21.100
+ -4680537.540 4 -3647169.932 4 23430967.513 23430965.724 23430965.542
+ 25.300 26.800
+ 06 1 2 23 6 0.0000000 0 7G02G04G05G06G10G13G29
+ -20812692.339 7 -16217667.578 7 20852976.025 20852972.255 20852975.336
+ 47.200 42.300
+ -3313495.056 4 -2581926.671 4 23810186.871 23810184.782 23810185.652
+ 29.000 24.200
+ 214843.587 3 167414.992 2 24433361.438 24433361.632 24433359.982
+ 23.400 17.800
+ -12858104.765 6 -10019295.570 6 22366129.113 22366128.087 22366128.313
+ 40.200 36.200
+ -23173961.805 7 -18057618.871 7 20106927.641 20106926.107 20106926.526
+ 44.900 46.000
+ -2982445.428 4 -2323976.186 3 24064813.936 24064812.272 24064813.651
+ 27.100 19.300
+ -4789416.258 4 -3732010.423 4 23410248.597 23410246.630 23410246.946
+ 26.500 26.800
+ 06 1 2 23 6 30.0000000 0 7G02G04G05G06G10G13G29
+ -20759424.630 7 -16176160.270 7 20863112.565 20863108.661 20863111.780
+ 47.300 42.500
+ -3225239.800 4 -2513156.360 4 23826979.892 23826979.603 23826980.187
+ 28.400 24.900
+ 308529.662 4 240417.109 3 24451188.944 24451189.442 24451187.490
+ 25.300 18.600
+ -12932339.005 6 -10077140.411 6 22352002.530 22352001.831 22352001.771
+ 39.800 36.200
+ -23193560.566 7 -18072890.627 7 20103198.218 20103196.580 20103197.120
+ 44.900 46.000
+ -2905490.184 4 -2264011.037 3 24079457.634 24079456.485 24079457.404
+ 25.900 20.500
+ -4898148.568 4 -3816736.833 4 23389555.550 23389555.124 23389554.785
+ 25.600 24.900
+ 06 1 2 23 7 0.0000000 0 7G02G04G05G06G10G13G29
+ -20705833.031 7 -16134400.581 7 20873310.734 20873306.826 20873309.951
+ 47.300 42.200
+ -3136890.072 4 -2444312.481 4 23843792.910 23843792.290 23843792.760
+ 29.500 25.300
+ 402282.433 4 313471.179 2 24469029.471 24469029.800 24469028.588
+ 26.800 16.100
+ -13006218.715 6 -10134708.993 5 22337943.649 22337942.792 22337942.900
+ 39.900 35.700
+ -23212642.186 7 -18087759.412 7 20099567.157 20099565.507 20099565.973
+ 44.700 46.100
+ -2828095.909 4 -2203703.792 3 24094185.483 24094183.898 24094185.512
+ 26.500 21.100
+ -5006731.345 4 -3901346.753 4 23368891.762 23368892.832 23368892.357
+ 26.200 25.300
+ 06 1 2 23 7 30.0000000 0 7G02G04G05G06G10G13G29
+ -20651918.124 7 -16092388.964 7 20883570.598 20883566.570 20883569.761
+ 47.400 42.200
+ -3048446.386 5 -2375395.354 4 23860624.168 23860622.433 23860623.606
+ 31.300 24.200
+ 496098.953 4 386574.964 2 24486882.705 24486882.496 24486881.540
+ 26.500 17.800
+ -13079741.799 6 -10191999.691 5 22323952.687 22323951.504 22323951.917
+ 39.800 35.300
+ -23231207.056 7 -18102225.532 7 20096034.179 20096032.739 20096033.068
+ 44.700 46.100
+ -2750265.322 4 -2143056.607 3 24108996.272 24108994.729 24108995.869
+ 25.600 21.600
+ -5115161.788 4 -3985837.954 3 23348258.748 23348258.972 23348258.520
+ 25.300 23.400
+ 06 1 2 23 8 0.0000000 0 7G02G04G05G06G10G13G29
+ -20597680.430 7 -16050125.824 7 20893891.557 20893887.500 20893890.797
+ 47.500 42.000
+ -2959909.155 4 -2306405.314 3 23877470.739 23877470.215 23877470.962
+ 29.000 23.000
+ 589976.206 4 459726.052 3 24504746.542 24504746.999 24504745.895
+ 25.300 19.300
+ -13152905.808 6 -10249010.601 5 22310029.989 22310028.771 22310029.226
+ 40.000 35.200
+ -23249255.545 7 -18116289.284 7 20092599.618 20092598.227 20092598.460
+ 44.600 46.100
+ -2672000.766 4 -2082071.234 3 24123889.503 24123887.772 24123889.135
+ 24.600 18.600
+ -5223436.697 4 -4070207.943 3 23327656.003 23327654.671 23327654.623
+ 24.600 22.100
+ 06 1 2 23 8 30.0000000 0 7G02G04G05G06G10G13G29
+ -20543120.629 7 -16007611.691 6 20904273.782 20904269.829 20904273.178
+ 47.500 41.900
+ -2871278.975 5 -2237342.866 3 23894336.626 23894336.530 23894336.742
+ 30.600 23.800
+ 683911.344 3 532922.258 2 24522621.923 24522622.214 24522621.016
+ 21.600 17.800
+ -13225708.514 6 -10305739.953 6 22296176.126 22296175.143 22296175.334
+ 40.400 36.100
+ -23266787.869 7 -18129950.827 7 20089263.423 20089261.983 20089262.199
+ 44.600 46.300
+ -2593304.611 4 -2020749.531 3 24138865.378 24138863.158 24138864.926
+ 24.600 20.500
+ -5331553.157 4 -4154454.492 3 23307082.523 23307080.928 23307081.044
+ 26.200 23.000
+ 06 1 2 23 9 0.0000000 0 7G02G04G05G06G10G13G29
+ -20488239.178 7 -15964846.924 6 20914717.725 20914713.411 20914716.866
+ 47.200 41.900
+ -2782556.444 4 -2168208.458 3 23911221.412 23911219.462 23911220.363
+ 28.600 22.600
+ 777901.364 3 606161.242 2 24540508.244 24540507.717 24540507.127
+ 23.000 17.000
+ -13298147.600 6 -10362185.979 5 22282391.477 22282390.480 22282390.718
+ 40.600 35.700
+ -23283804.332 7 -18143210.397 7 20086025.262 20086023.723 20086024.151
+ 44.600 46.100
+ -2514179.662 4 -1959093.769 3 24153921.614 24153920.606 24153921.532
+ 26.200 20.500
+ -5439508.136 4 -4238575.189 3 23286538.851 23286537.362 23286537.989
+ 26.800 21.100
+ 06 1 2 23 9 30.0000000 0 7G02G04G05G06G10G13G29
+ -20433036.563 7 -15921831.897 7 20925222.287 20925218.237 20925221.501
+ 47.500 42.200
+ -2693742.109 4 -2099002.521 4 23928121.958 23928121.202 23928121.083
+ 27.900 24.900
+ 871943.265 3 679440.639 2 24558403.018 24558403.016 24558402.313
+ 22.600 12.600
+ -13370220.987 6 -10418347.053 5 22268676.269 22268675.159 22268675.445
+ 40.500 35.400
+ -23300305.533 7 -18156068.467 7 20082885.188 20082883.545 20082884.054
+ 44.400 46.000
+ -2434628.617 4 -1897105.881 2 24169060.158 24169057.750 24169060.098
+ 25.600 16.100
+ -5547298.780 4 -4322567.856 4 23266025.490 23266025.621 23266025.644
+ 27.400 24.900
+ 06 1 2 23 10 0.0000000 0 7G02G04G05G06G10G13G29
+ -20377513.376 7 -15878567.083 7 20935787.989 20935784.192 20935787.202
+ 47.500 42.200
+ -2604836.319 4 -2029725.332 3 23945039.812 23945038.962 23945039.122
+ 27.900 23.000
+ 966034.045 3 752758.126 2 24576308.816 24576308.281 24576307.497
+ 22.100 17.800
+ -13441926.159 6 -10474221.200 5 22255031.061 22255030.078 22255030.343
+ 40.200 35.200
+ -23316292.001 7 -18168525.448 7 20079842.856 20079841.382 20079841.766
+ 44.500 45.900
+ -2354653.795 3 -1834787.853 3 24184278.503 24184276.595 24184278.469
+ 23.400 19.900
+ -5654921.763 4 -4406429.872 4 23245544.709 23245546.246 23245545.519
+ 27.100 26.200
+ 06 1 2 23 10 30.0000000 0 7G02G04G05G06G10G13G29
+ -20321670.149 7 -15835052.876 7 20946414.575 20946410.649 20946413.919
+ 47.500 42.000
+ -2515839.874 4 -1960377.460 3 23961976.464 23961973.767 23961975.313
+ 28.100 19.300
+ 1060170.904 3 826111.508 3 24594221.333 24594222.026 24594220.589
+ 19.300 19.300
+ -13513260.870 6 -10529806.667 5 22241456.503 22241455.453 22241455.842
+ 40.500 35.200
+ -23331763.979 7 -18180581.530 7 20076898.795 20076897.258 20076897.641
+ 44.600 46.100
+ -2274258.020 4 -1772141.782 3 24199577.204 24199575.642 24199577.155
+ 26.500 19.900
+ -5762374.328 4 -4490159.080 3 23225098.918 23225097.796 23225098.041
+ 24.600 23.000
+ 06 1 2 23 11 0.0000000 0 7G02G04G05G06G10G13G29
+ -20265507.541 7 -15791289.805 7 20957101.968 20957098.022 20957101.183
+ 47.400 42.000
+ -2426753.220 4 -1890959.279 3 23978927.782 23978926.645 23978927.286
+ 28.600 19.900
+ 1154350.726 3 899498.374 2 24612143.582 24612144.206 24612142.398
+ 19.900 17.000
+ -13584222.913 6 -10585101.753 5 22227953.289 22227951.705 22227952.316
+ 40.600 35.300
+ -23346721.894 7 -18192237.042 7 20074052.391 20074050.933 20074051.170
+ 44.700 46.100
+ -2193444.123 4 -1709169.910 3 24214956.058 24214953.490 24214955.599
+ 25.600 19.300
+ -5869653.275 4 -4573752.976 4 23204685.404 23204683.356 23204683.784
+ 25.900 24.200
+ 06 1 2 23 11 30.0000000 0 7G02G04G05G06G10G13G29
+ -20209026.185 7 -15747278.363 7 20967850.110 20967846.133 20967849.292
+ 47.200 42.100
+ -2337576.917 4 -1821471.294 3 23995894.671 23995896.624 23995896.811
+ 27.900 21.600
+ 1248570.733 3 972916.519 2 24630072.570 24630072.597 24630071.589
+ 19.300 16.100
+ -13654810.043 6 -10640104.692 5 22214520.810 22214519.655 22214520.053
+ 41.100 35.700
+ -23361166.302 7 -18203492.418 7 20071303.784 20071302.208 20071302.550
+ 44.700 46.100
+ -2112214.562 4 -1645874.135 3 24230413.210 24230411.093 24230413.480
+ 24.600 18.600
+ -5976755.756 4 -4657209.390 4 23184304.673 23184302.982 23184302.993
+ 27.600 25.900
+ 06 1 2 23 12 0.0000000 0 7G02G04G05G06G10G13G29
+ -20152226.425 7 -15703018.806 6 20978658.492 20978654.615 20978657.790
+ 47.400 41.900
+ -2248311.669 4 -1751913.983 3 24012882.419 24012882.640 24012883.469
+ 28.100 21.100
+ 1342827.887 2 1046363.624 2 24648008.787 24648009.905 24648007.675
+ 17.800 13.900
+ -13725019.996 6 -10694813.730 6 22201160.220 22201159.263 22201159.639
+ 41.300 36.300
+ -23375097.739 7 -18214348.077 7 20068652.653 20068651.100 20068651.506
+ 44.700 46.100
+ -2030571.959 3 -1582256.544 2 24245949.081 24245947.195 24245948.866
+ 23.800 17.000
+ -6083678.477 4 -4740525.719 4 23163956.326 23163956.319 23163955.673
+ 28.100 27.100
+ 06 1 2 23 12 30.0000000 0 8G02G04G05G06G10G13G26G29
+ -20095108.663 7 -15658511.456 6 20989527.919 20989523.915 20989527.110
+ 47.400 41.900
+ -2158957.693 4 -1682287.505 3 24029887.196 24029885.998 24029887.456
+ 28.400 21.600
+ 1437119.348 3 1119837.512 1 24665953.114 24665952.415 24665951.833
+ 21.100 11.000
+ -13794850.522 6 -10749227.112 6 22187872.112 22187871.029 22187871.318
+ 41.000 36.900
+ -23388516.637 7 -18224804.353 7 20066099.103 20066097.558 20066097.965
+ 44.700 46.200
+ -1948519.094 4 -1518319.225 2 24261563.852 24261561.254 24261563.429
+ 27.100 13.900
+ -168564.880 3 -131348.872 3 24459599.853 24459600.738 24459599.579
+ 19.300 19.300
+ -6190418.898 4 -4823700.006 4 23143643.898 23143643.846 23143643.676
+ 28.600 25.900
+ 06 1 2 23 13 0.0000000 0 8G02G04G05G06G10G13G26G29
+ -20037673.898 7 -15613757.095 7 21000457.265 21000453.423 21000456.424
+ 47.500 42.000
+ -2069515.664 4 -1612592.454 3 24046906.386 24046907.483 24046907.040
+ 27.400 23.000
+ 1531442.193 3 1193335.802 3 24683901.649 24683902.179 24683900.245
+ 21.100 18.600
+ -13864299.343 6 -10803343.055 6 22174656.392 22174655.044 22174655.571
+ 40.900 36.200
+ -23401423.587 7 -18234861.712 7 20063642.999 20063641.433 20063641.802
+ 44.900 46.100
+ -1866058.339 4 -1454064.054 2 24277254.814 24277252.971 24277254.338
+ 24.200 15.100
+ -294982.413 3 -229855.985 2 24435543.589 24435544.091 24435543.248
+ 23.000 15.100
+ -6296973.748 4 -4906729.723 4 23123366.948 23123366.819 23123367.240
+ 28.100 25.300
+ 06 1 2 23 13 30.0000000 0 7G02G04G06G10G13G26G29
+ -19979922.181 7 -15568755.758 6 21011447.217 21011443.084 21011446.394
+ 47.400 41.800
+ -1979986.070 4 -1542829.197 3 24063942.128 24063944.146 24063943.905
+ 27.100 21.600
+ -13933364.174 6 -10857159.796 6 22161513.551 22161512.341 22161512.824
+ 41.000 36.300
+ -23413818.996 7 -18244520.468 7 20061284.227 20061282.653 20061283.067
+ 44.800 46.000
+ -1783192.433 4 -1389493.232 3 24293024.928 24293022.535 24293024.404
+ 25.300 18.600
+ -421391.563 3 -328356.586 2 24411487.700 24411489.168 24411487.971
+ 21.600 17.000
+ -6403340.003 4 -4989612.473 4 23103126.697 23103126.442 23103126.078
+ 29.000 27.600
+ 06 1 2 23 14 0.0000000 0 7G02G04G06G10G13G26G29
+ -19921854.501 7 -15523508.215 6 21022496.859 21022492.989 21022496.212
+ 47.000 41.200
+ -1890369.715 4 -1472998.278 3 24080996.184 24080997.444 24080997.404
+ 27.900 21.600
+ -14002042.889 6 -10910675.659 6 22148444.616 22148443.329 22148443.861
+ 41.300 36.600
+ -23425703.486 7 -18253781.107 7 20059022.857 20059021.089 20059021.720
+ 44.900 45.900
+ -1699924.237 4 -1324608.920 2 24308870.134 24308867.633 24308869.741
+ 25.900 17.000
+ -547789.411 3 -426848.355 2 24387435.923 24387436.530 24387435.505
+ 20.500 16.100
+ -6509514.763 4 -5072345.970 4 23082922.902 23082921.690 23082921.791
+ 27.400 27.600
+ 06 1 2 23 14 30.0000000 0 7G02G04G06G10G13G26G29
+ -19863471.178 7 -15478014.718 6 21033607.212 21033602.937 21033606.242
+ 47.000 41.400
+ -1800666.797 4 -1403099.926 3 24098067.876 24098067.670 24098067.364
+ 27.900 21.100
+ -14070333.204 6 -10963888.871 6 22135449.302 22135448.197 22135448.644
+ 41.900 37.000
+ -23437077.533 7 -18262643.993 7 20056858.527 20056856.703 20056857.300
+ 45.100 46.200
+ -1616256.519 3 -1259413.281 2 24324791.507 24324789.461 24324791.054
+ 22.600 17.800
+ -674172.883 3 -525328.911 2 24363384.957 24363386.175 24363385.084
+ 21.100 17.800
+ -6615494.854 4 -5154927.811 4 23062756.651 23062754.140 23062754.906
+ 27.100 25.600
+ 06 1 2 23 15 0.0000000 0 7G02G04G06G10G13G26G29
+ -19804773.155 7 -15432275.996 6 21044777.002 21044772.793 21044776.199
+ 47.100 41.300
+ -1710878.075 4 -1333134.719 3 24115155.320 24115153.252 24115154.268
+ 28.800 20.500
+ -14138232.899 6 -11016797.712 6 22122528.524 22122527.303 22122527.740
+ 41.800 36.900
+ -23447941.612 7 -18271109.505 7 20054790.919 20054789.351 20054789.812
+ 45.000 46.100
+ -1532191.688 4 -1193908.224 2 24340788.484 24340786.171 24340788.131
+ 24.200 17.000
+ -800538.795 3 -623795.787 2 24339337.212 24339339.757 24339338.131
+ 22.100 17.000
+ -6721277.397 4 -5237355.717 4 23042626.061 23042624.173 23042624.637
+ 27.600 24.900
+ 06 1 2 23 15 30.0000000 0 7G02G04G06G10G13G26G29
+ -19745760.745 7 -15386292.303 6 21056006.581 21056002.518 21056005.708
+ 46.800 41.100
+ -1621003.977 4 -1263102.957 3 24132256.505 24132255.601 24132256.416
+ 26.500 21.100
+ -14205739.749 6 -11069400.436 6 22109682.401 22109681.141 22109681.468
+ 41.400 37.000
+ -23458296.440 7 -18279178.197 7 20052820.555 20052818.793 20052819.357
+ 44.900 45.900
+ -1447732.393 4 -1128095.770 2 24356860.089 24356858.026 24356859.821
+ 27.600 15.100
+ -926884.107 3 -722246.620 2 24315295.001 24315296.662 24315295.588
+ 23.400 15.100
+ -6826859.220 4 -5319627.231 4 23022534.367 23022532.514 23022533.217
+ 28.600 25.300
+ 06 1 2 23 16 0.0000000 0 7G02G04G06G10G13G26G29
+ -19686434.460 7 -15340064.029 6 21067295.858 21067291.966 21067295.074
+ 47.000 41.300
+ -1531044.965 4 -1193005.068 3 24149374.549 24149374.852 24149374.428
+ 26.200 22.600
+ -14272851.440 6 -11121695.240 6 22096911.171 22096910.286 22096910.509
+ 41.400 36.900
+ -23468142.415 7 -18286850.379 7 20050946.759 20050945.127 20050945.632
+ 44.900 46.000
+ -1362881.621 4 -1061978.259 3 24373006.855 24373004.466 24373006.919
+ 27.100 19.300
+ -1053205.735 4 -820679.018 2 24291257.414 24291258.894 24291257.899
+ 25.300 16.100
+ -6932237.522 4 -5401740.163 4 23002480.300 23002479.948 23002479.667
+ 26.800 25.600
+ 06 1 2 23 16 30.0000000 0 7G02G04G06G10G13G26G29
+ -19626795.008 7 -15293591.729 6 21078645.223 21078640.953 21078644.369
+ 47.000 41.200
+ -1441001.808 4 -1122841.586 4 24166510.571 24166509.661 24166509.974
+ 27.600 24.600
+ -14339565.903 6 -11173680.521 6 22084215.939 22084214.585 22084215.245
+ 41.900 36.200
+ -23477480.440 7 -18294126.757 7 20049170.017 20049168.170 20049168.845
+ 45.000 46.100
+ -1277642.068 3 -995557.859 2 24389226.478 24389225.617 24389226.211
+ 19.900 17.800
+ -1179500.435 4 -919090.463 3 24267225.254 24267225.614 24267224.820
+ 24.900 19.900
+ -7037409.266 4 -5483692.131 4 22982466.592 22982466.558 22982466.568
+ 29.200 26.500
+ 06 1 2 23 17 0.0000000 0 7G02G04G06G10G13G26G29
+ -19566842.977 7 -15246875.861 6 21090053.439 21090049.429 21090052.675
+ 46.800 41.200
+ -1350874.917 4 -1052612.890 4 24183661.122 24183660.357 24183660.681
+ 25.900 24.600
+ -14405880.926 6 -11225354.554 6 22071596.625 22071595.206 22071595.808
+ 41.300 36.100
+ -23486311.048 7 -18301007.743 7 20047489.582 20047487.798 20047488.391
+ 45.000 46.100
+ -1192016.460 4 -928836.575 3 24405520.950 24405519.479 24405521.089
+ 25.600 19.300
+ -1305765.379 3 -1017478.667 3 24243197.524 24243198.097 24243196.994
+ 22.100 23.000
+ -7142371.409 4 -5565480.787 4 22962492.933 22962492.857 22962492.670
+ 28.800 26.800
+ 06 1 2 23 17 30.0000000 0 7G02G04G06G10G13G26G29
+ -19506578.656 7 -15199916.651 6 21101521.373 21101517.418 21101520.567
+ 46.800 41.300
+ -1260664.754 4 -982319.280 3 24200828.063 24200826.485 24200827.072
+ 27.100 20.500
+ -14471794.099 6 -11276715.455 6 22059053.693 22059052.692 22059052.964
+ 41.800 37.200
+ -23494634.830 7 -18307493.798 7 20045905.486 20045903.853 20045904.384
+ 45.000 46.100
+ -1106007.428 4 -861816.535 3 24421888.183 24421886.554 24421887.865
+ 25.600 19.300
+ -1431997.402 3 -1115841.171 4 24219176.688 24219177.104 24219175.959
+ 21.100 24.200
+ -7247120.772 4 -5647103.633 4 22942560.837 22942559.532 22942559.825
+ 29.200 25.300
+ 06 1 2 23 18 0.0000000 0 7G02G04G06G10G13G26G29
+ -19446003.281 7 -15152715.057 6 21113048.358 21113044.479 21113047.569
+ 46.500 41.100
+ -1170371.842 4 -911961.172 3 24218009.974 24218008.381 24218009.537
+ 28.400 21.600
+ -14537303.424 7 -11327761.665 6 22046587.590 22046586.771 22046587.009
+ 42.000 37.200
+ -23502452.335 7 -18313585.358 7 20044417.801 20044416.203 20044416.647
+ 44.900 46.100
+ -1019617.688 4 -794499.834 3 24438326.952 24438325.800 24438327.140
+ 24.200 18.600
+ -1558193.182 4 -1214175.501 3 24195162.133 24195162.425 24195161.578
+ 24.900 19.900
+ -7351654.538 4 -5728558.485 4 22922669.136 22922667.797 22922667.933
+ 28.600 27.600
+ 06 1 2 23 18 30.0000000 0 7G02G04G06G10G13G26G29
+ -19385117.087 7 -15105271.272 6 21124634.563 21124630.660 21124633.800
+ 46.500 40.700
+ -1079996.722 4 -841539.000 3 24235206.208 24235206.595 24235206.192
+ 25.300 22.600
+ -14602406.809 7 -11378491.555 6 22034199.054 22034197.836 22034198.245
+ 42.300 37.000
+ -23509764.382 7 -18319283.046 7 20043026.332 20043024.800 20043025.166
+ 44.900 46.200
+ -932849.884 3 -726888.560 3 24454838.390 24454836.702 24454838.359
+ 22.600 18.600
+ -1684349.724 3 -1312479.244 3 24171155.160 24171155.196 24171154.310
+ 19.900 19.300
+ -7455969.634 4 -5809842.914 4 22902817.897 22902817.080 22902817.030
+ 28.800 28.100
+ 06 1 2 23 19 0.0000000 0 7G02G04G06G10G13G26G29
+ -19323920.525 7 -15057585.640 6 21136279.894 21136276.023 21136279.155
+ 46.700 41.000
+ -989540.163 4 -771053.424 3 24252419.624 24252419.864 24252419.800
+ 26.500 21.100
+ -14667101.939 6 -11428903.336 6 22021887.964 22021886.512 22021887.045
+ 41.900 37.100
+ -23516571.718 7 -18324587.457 7 20041730.981 20041729.456 20041729.848
+ 44.800 46.200
+ -845706.966 3 -658985.010 2 24471422.230 24471419.408 24471421.784
+ 23.400 16.100
+ -1810463.921 3 -1410750.016 2 24147156.009 24147156.911 24147155.485
+ 22.100 17.800
+ -7560063.075 4 -5890954.641 4 22883009.740 22883008.757 22883008.434
+ 29.200 27.900
+ 06 1 2 23 19 30.0000000 0 7G02G04G06G10G13G26G29
+ -19262414.521 7 -15009658.885 6 21147984.223 21147980.357 21147983.466
+ 46.700 40.900
+ -899002.545 4 -700504.618 3 24269649.552 24269648.505 24269649.187
+ 25.300 19.900
+ -14731386.503 7 -11478995.185 6 22009654.651 22009653.704 22009654.133
+ 42.200 37.200
+ -23522874.982 7 -18329499.083 7 20040531.629 20040529.956 20040530.434
+ 45.000 46.100
+ -758191.767 4 -590791.347 2 24488075.523 24488073.079 24488075.273
+ 24.600 17.800
+ -1936532.591 3 -1508985.307 3 24123166.338 24123166.593 24123165.832
+ 23.400 19.300
+ -7663931.973 4 -5971891.410 4 22863244.512 22863242.808 22863243.264
+ 29.500 26.800
+ 06 1 2 23 20 0.0000000 0 7G02G04G06G10G13G26G29
+ -19200599.616 7 -14961491.426 6 21159747.284 21159743.430 21159746.492
+ 46.700 41.000
+ -808384.374 4 -629893.074 3 24286893.954 24286892.751 24286893.362
+ 25.300 19.900
+ -14795258.486 7 -11528765.550 6 21997500.395 21997499.251 21997499.565
+ 42.000 36.700
+ -23528674.984 7 -18334018.558 7 20039427.980 20039426.210 20039426.757
+ 45.000 46.300
+ -670306.703 4 -522309.472 2 24504799.453 24504796.290 24504799.373
+ 26.500 16.100
+ -2062552.601 4 -1607182.751 3 24099184.952 24099185.288 24099185.035
+ 25.300 18.600
+ -7767573.324 4 -6052650.861 4 22843521.843 22843520.479 22843520.802
+ 29.700 26.500
+ 06 1 2 23 20 30.0000000 0 7G02G04G06G10G13G26G29
+ -19138476.105 7 -14913083.499 6 21171569.290 21171564.913 21171568.414
+ 46.700 40.800
+ -717686.259 4 -559219.248 2 24304153.480 24304151.304 24304152.928
+ 25.600 16.100
+ -14858715.711 7 -11578212.725 6 21985425.063 21985423.651 21985424.246
+ 42.300 36.900
+ -23533972.315 7 -18338146.341 7 20038419.811 20038418.118 20038418.643
+ 44.800 46.300
+ -582054.833 4 -453541.734 2 24521592.528 24521590.720 24521592.321
+ 24.600 15.100
+ -2188520.793 3 -1705339.782 3 24075214.436 24075214.916 24075214.072
+ 23.000 22.100
+ -7870984.015 5 -6133230.580 4 22823842.365 22823842.168 22823842.193
+ 30.600 28.100
+ 06 1 2 23 21 0.0000000 0 7G02G04G06G10G13G26G29
+ -19076045.043 7 -14864435.917 6 21183449.595 21183445.236 21183448.661
+ 46.600 41.200
+ -626908.639 4 -488483.441 2 24321427.376 24321425.754 24321427.007
+ 26.500 17.000
+ -14921756.001 7 -11627335.024 6 21973428.807 21973427.367 21973428.106
+ 42.600 36.800
+ -23538767.784 7 -18341883.062 7 20037507.136 20037505.544 20037505.985
+ 44.900 46.400
+ -493438.977 3 -384490.417 2 24538455.813 24538454.272 24538455.658
+ 22.100 15.100
+ -2314434.100 3 -1803454.011 3 24051253.808 24051254.442 24051253.328
+ 23.000 23.000
+ -7974161.056 4 -6213628.235 4 22804208.379 22804208.014 22804208.209
+ 29.500 27.600
+ 06 1 2 23 21 30.0000000 0 7G02G04G06G10G13G26G29
+ -19013306.795 7 -14815548.975 6 21195387.939 21195384.140 21195387.208
+ 46.600 41.400
+ -536052.199 4 -417686.194 2 24338716.343 24338715.342 24338715.820
+ 24.900 15.100
+ -14984377.264 7 -11676130.800 6 21961512.245 21961511.107 21961511.460
+ 42.400 37.200
+ -23543062.228 7 -18345229.373 7 20036690.085 20036688.335 20036688.891
+ 44.900 46.100
+ -404461.655 3 -315157.474 2 24555388.648 24555385.814 24555388.025
+ 21.100 15.100
+ -2440289.108 4 -1901522.837 3 24027304.655 24027305.127 24027304.005
+ 25.600 22.100
+ -8077101.492 5 -6293841.553 4 22784619.625 22784618.999 22784619.318
+ 30.600 28.100
+ 06 1 2 23 22 0.0000000 0 7G02G04G06G10G13G26G29
+ -18950261.953 7 -14766423.128 6 21207384.994 21207381.093 21207384.204
+ 46.500 41.100
+ -445117.352 4 -346827.882 3 24356020.610 24356019.909 24356020.252
+ 25.900 18.600
+ -15046577.330 7 -11724598.369 6 21949676.147 21949674.989 21949675.306
+ 42.400 37.900
+ -23546856.189 7 -18348185.701 7 20035968.189 20035966.298 20035966.975
+ 45.100 46.200
+ -315125.719 3 -245545.036 2 24572388.174 24572386.410 24572387.919
+ 23.400 13.900
+ -2566082.887 4 -1999543.916 3 24003366.379 24003367.383 24003366.495
+ 24.900 22.600
+ -8179802.453 5 -6373868.255 4 22765076.727 22765075.907 22765076.126
+ 30.400 27.900
+ 06 1 2 23 22 30.0000000 0 7G02G04G06G10G13G26G29
+ -18886911.189 7 -14717058.899 6 21219440.207 21219436.386 21219439.378
+ 46.300 41.100
+ -354104.689 3 -275908.930 3 24373339.361 24373339.430 24373339.061
+ 23.800 19.900
+ -15108354.034 7 -11772736.049 6 21937920.562 21937919.127 21937919.693
+ 42.600 37.500
+ -23550150.605 7 -18350752.769 7 20035341.224 20035339.352 20035340.022
+ 45.100 46.000
+ -225433.926 3 -175655.308 2 24589455.072 24589453.454 24589455.020
+ 22.600 13.900
+ -2691812.074 3 -2097514.706 3 23979441.921 23979441.557 23979440.945
+ 21.600 19.300
+ -8282260.813 5 -6453705.913 4 22745578.224 22745578.855 22745578.670
+ 30.800 28.100
+ 06 1 2 23 23 0.0000000 0 7G02G04G06G10G13G26G29
+ -18823255.123 7 -14667456.773 6 21231553.323 21231549.570 21231552.600
+ 46.100 40.800
+ -263014.553 4 -204929.606 3 24390673.375 24390673.477 24390672.911
+ 25.600 20.500
+ -15169705.270 7 -11820542.194 6 21926245.697 21926244.307 21926244.877
+ 42.500 37.400
+ -23552946.418 7 -18352931.319 7 20034809.114 20034807.340 20034807.903
+ 45.200 46.000
+ -135389.263 3 -105490.630 2 24606590.807 24606588.900 24606590.716
+ 23.800 15.100
+ -2817473.624 3 -2195432.692 4 23955528.196 23955529.478 23955527.921
+ 23.400 24.200
+ -8384473.606 5 -6533352.215 4 22726127.647 22726128.199 22726127.890
+ 30.100 29.200
+ 06 1 2 23 23 30.0000000 0 7G02G04G06G10G13G26G29
+ -18759294.497 7 -14617617.328 6 21243724.606 21243720.857 21243723.875
+ 46.000 40.700
+ -171847.668 4 -133890.481 2 24408022.708 24408021.137 24408021.931
+ 25.900 13.900
+ -15230628.997 7 -11868015.219 6 21914651.937 21914650.899 21914651.240
+ 42.400 37.600
+ -23555244.237 7 -18354721.821 7 20034371.912 20034370.169 20034370.684
+ 45.200 46.200
+ -44994.421 3 -35053.068 2 24623792.153 24623790.138 24623791.928
+ 19.300 13.900
+ -2943064.131 4 -2293295.397 3 23931629.952 23931629.376 23931629.325
+ 25.600 19.900
+ -8486437.870 4 -6612804.855 4 22706724.253 22706725.128 22706724.773
+ 29.900 27.600
+ 06 1 2 23 24 0.0000000 0 7G02G04G06G10G13G26G29
+ -18695029.813 7 -14567540.951 6 21255953.753 21255950.135 21255952.978
+ 45.600 40.800
+ -80604.594 4 -62791.955 2 24425385.721 24425384.333 24425385.297
+ 26.200 15.100
+ -15291122.959 7 -11915153.362 6 21903140.411 21903139.390 21903139.677
+ 42.700 37.700
+ -23557045.156 7 -18356125.129 7 20034029.239 20034027.469 20034028.108
+ 45.300 46.100
+ 45747.889 2 35655.223 2 24641060.160 24641057.618 24641059.553
+ 16.100 17.800
+ -3068580.635 3 -2391100.395 3 23907744.499 23907744.576 23907743.771
+ 23.400 21.100
+ -8588150.795 5 -6692061.651 4 22687370.206 22687369.840 22687369.481
+ 30.200 28.600
+ 06 1 2 23 24 30.0000000 0 7G02G04G06G10G13G26G29
+ -18630461.916 7 -14517228.306 6 21268240.691 21268236.926 21268239.866
+ 45.700 40.700
+ 10714.118 4 8365.496 3 24442763.411 24442762.013 24442762.951
+ 24.900 18.600
+ -15351185.165 7 -11961955.061 6 21891710.961 21891709.953 21891710.156
+ 42.100 38.100
+ -23558349.863 7 -18357141.779 7 20033780.972 20033779.097 20033779.821
+ 45.200 46.100
+ 136834.685 3 106631.951 2 24658393.770 24658391.082 24658393.164
+ 19.300 17.800
+ -3194019.806 4 -2488845.120 3 23883874.742 23883874.650 23883874.069
+ 25.600 21.600
+ -8689609.217 5 -6771120.121 4 22668063.411 22668062.734 22668062.904
+ 31.600 28.600
+ 06 1 2 23 25 0.0000000 0 7G02G04G06G10G13G26G29
+ -18565591.247 7 -14466679.735 6 21280585.340 21280581.308 21280584.564
+ 46.200 40.400
+ 102108.163 4 79581.627 3 24460154.712 24460153.820 24460154.184
+ 24.200 20.500
+ -15410813.465 7 -12008418.652 6 21880364.181 21880362.996 21880363.344
+ 42.500 38.000
+ -23559159.139 7 -18357772.374 7 20033626.721 20033625.092 20033625.617
+ 45.300 46.200
+ 228263.468 3 177875.151 2 24675791.392 24675789.443 24675791.325
+ 18.600 17.800
+ -3319378.496 4 -2586527.158 3 23860019.272 23860019.233 23860018.909
+ 25.300 22.600
+ -8790810.169 5 -6849977.978 4 22648806.055 22648805.031 22648805.081
+ 30.400 29.200
+ 06 1 2 23 25 30.0000000 0 6G02G04G06G10G26G29
+ -18500418.376 7 -14415895.684 6 21292987.120 21292983.309 21292986.413
+ 46.000 40.300
+ 193576.740 3 150855.849 3 24477560.189 24477559.606 24477559.449
+ 22.600 19.300
+ -15470005.879 7 -12054542.603 6 21869100.163 21869099.128 21869099.493
+ 43.100 37.900
+ -23559473.827 7 -18358017.579 7 20033567.044 20033565.249 20033565.815
+ 45.200 46.200
+ -3444653.491 3 -2684143.961 4 23836179.997 23836180.194 23836179.155
+ 23.800 24.200
+ -8891750.757 5 -6928632.930 4 22629597.321 22629596.307 22629596.403
+ 30.200 28.400
+ 06 1 2 23 26 0.0000000 0 6G02G04G06G10G26G29
+ -18434944.055 7 -14364876.729 6 21305446.740 21305442.676 21305445.960
+ 46.200 40.000
+ 285119.361 4 222187.778 3 24494981.842 24494979.460 24494981.024
+ 24.600 21.100
+ -15528760.327 7 -12100325.278 6 21857919.559 21857918.413 21857918.804
+ 42.900 38.100
+ -23559294.832 7 -18357878.099 7 20033601.186 20033599.328 20033600.022
+ 45.100 46.300
+ -3569841.562 4 -2781692.982 3 23812356.806 23812357.858 23812356.864
+ 25.600 23.400
+ -8992428.057 5 -7007082.731 4 22610439.052 22610438.057 22610438.151
+ 30.200 28.800
+ 06 1 2 23 26 30.0000000 0 6G02G04G06G10G26G29
+ -18369168.823 7 -14313623.300 6 21317963.068 21317959.248 21317962.414
+ 46.000 40.000
+ 376735.618 3 293577.045 3 24512414.355 24512413.954 24512414.135
+ 23.800 19.900
+ -15587074.678 7 -12145765.011 6 21846822.630 21846821.514 21846821.826
+ 42.700 38.100
+ -23558623.125 7 -18357354.690 7 20033728.908 20033727.168 20033727.796
+ 45.100 46.300
+ -3694939.390 4 -2879171.738 3 23788551.507 23788552.168 23788551.257
+ 24.200 21.100
+ -9092838.951 5 -7085324.925 4 22591331.706 22591330.459 22591330.623
+ 30.400 29.900
+ 06 1 2 23 27 0.0000000 0 6G02G04G06G10G26G29
+ -18303093.428 7 -14262135.987 6 21330537.081 21330533.072 21330536.195
+ 45.900 40.000
+ 468424.737 3 365023.130 2 24529861.036 24529860.839 24529861.463
+ 22.600 17.000
+ -15644946.807 7 -12190860.166 6 21835810.114 21835808.918 21835809.310
+ 43.500 38.400
+ -23557459.781 7 -18356448.183 7 20033950.290 20033948.528 20033949.085
+ 45.000 46.200
+ -3819943.954 4 -2976577.790 3 23764764.904 23764764.437 23764764.154
+ 25.600 23.800
+ -9192980.562 5 -7163357.294 5 22572275.072 22572274.431 22572274.317
+ 32.300 30.400
+ 06 1 2 23 27 30.0000000 0 6G02G04G06G10G26G29
+ -18236718.661 7 -14210415.388 6 21343167.895 21343163.628 21343167.054
+ 45.900 39.900
+ 560186.500 3 436525.783 2 24547323.507 24547322.562 24547323.398
+ 23.400 17.800
+ -15702374.872 7 -12235609.299 6 21824881.726 21824880.690 21824881.000
+ 43.100 38.400
+ -23555805.583 7 -18355159.193 7 20034264.932 20034263.330 20034263.819
+ 45.000 46.200
+ -3944851.904 4 -3073908.601 3 23740995.790 23740995.110 23740995.086
+ 24.900 22.100
+ -9292850.106 5 -7241177.670 4 22553271.025 22553269.465 22553269.864
+ 31.600 29.200
+ 06 1 2 23 28 0.0000000 0 6G02G04G06G10G26G29
+ -18170045.051 7 -14158461.925 6 21355855.247 21355851.384 21355854.439
+ 45.900 40.000
+ 652020.224 4 508084.528 3 24564799.252 24564798.815 24564798.587
+ 24.600 19.900
+ -15759356.725 7 -12280010.719 6 21814038.324 21814037.302 21814037.607
+ 43.000 38.300
+ -23553661.412 7 -18353488.408 7 20034672.921 20034671.335 20034671.734
+ 45.200 46.300
+ -4069659.968 4 -3171161.559 3 23717245.049 23717245.304 23717244.433
+ 25.900 23.000
+ -9392444.586 5 -7318783.715 5 22534318.884 22534317.281 22534317.663
+ 31.000 30.200
+ 06 1 2 23 28 30.0000000 0 6G02G04G06G10G26G29
+ -18103073.313 7 -14106276.162 6 21368599.434 21368595.766 21368598.704
+ 45.900 40.400
+ 743925.305 4 579698.887 2 24582289.226 24582286.991 24582288.263
+ 25.900 16.100
+ -15815890.316 7 -12324062.856 6 21803280.691 21803279.227 21803279.913
+ 43.500 38.300
+ -23551028.269 7 -18351436.601 7 20035173.992 20035172.329 20035172.849
+ 45.200 46.200
+ -4194365.011 4 -3268334.246 4 23693514.645 23693514.419 23693514.455
+ 27.400 24.900
+ -9491760.818 5 -7396172.932 5 22515419.197 22515418.091 22515418.177
+ 31.800 30.200
+ 06 1 2 23 29 0.0000000 0 6G02G04G06G10G26G29
+ -18035804.071 7 -14053858.576 6 21381400.385 21381396.587 21381399.748
+ 46.200 39.900
+ 835901.179 4 651368.429 2 24599789.829 24599789.282 24599790.011
+ 24.200 12.600
+ -15871973.702 7 -12367764.187 6 21792608.421 21792606.742 21792607.621
+ 43.400 37.900
+ -23547907.198 7 -18349004.589 7 20035768.145 20035766.247 20035766.926
+ 45.400 46.100
+ -4318963.673 4 -3365424.036 4 23669803.134 23669804.162 23669803.113
+ 25.300 25.300
+ -9590796.079 5 -7473343.215 4 22496573.665 22496572.079 22496572.684
+ 32.600 29.500
+ 06 1 2 23 29 30.0000000 0 6G02G04G06G10G26G29
+ -17968237.871 7 -14001209.593 6 21394257.971 21394253.879 21394257.194
+ 45.800 39.700
+ 927947.347 3 723092.726 2 24617305.187 24617305.109 24617305.500
+ 22.600 15.100
+ -15927604.801 7 -12411113.083 6 21782022.099 21782020.508 21782021.318
+ 43.500 38.200
+ -23544298.985 7 -18346192.988 7 20036454.789 20036452.807 20036453.592
+ 45.500 46.200
+ -4443452.784 4 -3462428.488 4 23646114.740 23646114.867 23646114.569
+ 27.600 24.200
+ -9689547.457 5 -7550292.299 5 22477781.824 22477780.332 22477780.922
+ 32.400 30.200
+ 06 1 2 23 30 0.0000000 0 6G02G04G06G10G26G29
+ -17900375.613 7 -13948329.911 6 21407172.210 21407167.578 21407171.147
+ 45.700 39.500
+ 1020063.352 3 794871.409 2 24634835.765 24634834.782 24634835.071
+ 22.600 17.800
+ -15982781.680 7 -12454108.041 6 21771522.226 21771520.942 21771521.422
+ 43.700 38.300
+ -23540204.866 7 -18343002.757 7 20037233.943 20037231.900 20037232.784
+ 45.500 46.300
+ -4567828.803 4 -3559344.820 3 23622446.520 23622445.970 23622445.851
+ 25.300 21.600
+ -9788011.960 5 -7627017.837 5 22459044.058 22459043.118 22459043.204
+ 32.000 31.000
+ 06 1 2 23 30 30.0000000 0 6G02G04G06G10G26G29
+ -17832217.710 7 -13895219.861 6 21420141.772 21420137.721 21420141.014
+ 45.700 39.600
+ 1112248.631 3 866704.084 3 24652377.309 24652377.084 24652377.507
+ 23.400 18.600
+ -16037502.356 7 -12496747.513 6 21761109.277 21761107.938 21761108.490
+ 43.700 38.200
+ -23535625.597 7 -18339434.493 7 20038105.404 20038103.373 20038104.181
+ 45.600 46.300
+ -4692088.757 4 -3656170.704 3 23598799.981 23598800.794 23598799.943
+ 26.200 22.100
+ -9886186.595 5 -7703517.503 5 22440361.932 22440360.799 22440361.379
+ 32.400 30.200
+ 06 1 2 23 31 0.0000000 0 6G02G04G06G10G26G29
+ -17763765.120 7 -13841880.187 6 21433167.765 21433163.791 21433167.009
+ 45.600 39.500
+ 1204502.704 3 938590.372 3 24669932.518 24669932.726 24669932.377
+ 23.400 20.500
+ -16091764.831 7 -12539029.953 6 21750783.446 21750781.916 21750782.682
+ 43.800 38.000
+ -23530562.291 7 -18335489.048 7 20039068.694 20039066.945 20039067.536
+ 45.500 46.400
+ -4816229.303 4 -3752903.557 3 23575176.794 23575176.823 23575176.663
+ 27.900 20.500
+ -9984068.642 5 -7779789.188 5 22421735.316 22421734.635 22421734.845
+ 32.600 30.400
+ 06 1 2 23 31 30.0000000 0 6G02G04G06G10G26G29
+ -17695018.522 7 -13788311.415 6 21446249.879 21446245.651 21446249.133
+ 45.600 39.300
+ 1296824.816 3 1010529.683 3 24687500.791 24687501.014 24687500.727
+ 23.400 21.100
+ -16145567.059 7 -12580953.755 6 21740545.394 21740543.692 21740544.569
+ 43.800 38.100
+ -23525015.968 7 -18331167.233 7 20040124.219 20040122.351 20040122.969
+ 45.400 46.400
+ -4940247.227 4 -3849540.863 3 23551578.158 23551577.570 23551577.230
+ 26.200 22.600
+ -10081654.908 5 -7855830.378 5 22403164.421 22403164.554 22403164.743
+ 33.400 31.300
+ 06 1 2 23 32 0.0000000 0 6G02G04G06G10G26G29
+ -17625978.533 7 -13734514.029 6 21459387.738 21459383.704 21459386.923
+ 45.500 39.500
+ 1389214.535 3 1082521.626 3 24705082.476 24705082.087 24705082.024
+ 21.600 18.600
+ -16198907.152 7 -12622517.449 6 21730394.842 21730393.499 21730394.107
+ 43.900 38.400
+ -23518987.775 7 -18326469.933 7 20041271.153 20041269.449 20041269.979
+ 45.200 46.400
+ -5064139.124 4 -3946079.993 3 23528000.980 23528001.379 23528001.060
+ 26.800 22.600
+ -10178942.746 5 -7931639.053 5 22384651.094 22384651.105 22384651.576
+ 33.200 30.400
+ 06 1 2 23 32 30.0000000 0 6G02G04G06G10G26G29
+ -17556645.602 7 -13680488.378 6 21472581.465 21472577.537 21472580.551
+ 45.200 39.900
+ 1481671.356 3 1154565.908 2 24722676.591 24722675.524 24722675.950
+ 23.400 13.900
+ -16251783.069 7 -12663719.454 6 21720332.980 21720331.304 21720332.116
+ 43.900 38.100
+ -23512478.611 7 -18321397.848 7 20042509.739 20042508.090 20042508.608
+ 45.300 46.300
+ -5187901.858 4 -4042518.432 4 23504450.088 23504450.488 23504450.129
+ 25.300 25.900
+ -10275929.106 5 -8007212.803 5 22366194.488 22366195.325 22366195.316
+ 32.700 30.800
+ 06 1 2 23 33 0.0000000 0 6G02G04G06G10G26G29
+ -17487020.668 7 -13626235.196 6 21485830.366 21485826.605 21485829.696
+ 45.100 39.500
+ 1574194.722 3 1226662.066 2 24740282.964 24740281.511 24740282.475
+ 22.600 12.600
+ -16304192.977 7 -12704558.327 6 21710359.596 21710358.212 21710358.913
+ 44.100 38.700
+ -23505489.667 7 -18315951.911 7 20043839.653 20043838.036 20043838.509
+ 45.400 46.300
+ -5311532.099 3 -4138853.633 3 23480924.462 23480923.965 23480923.241
+ 23.400 23.000
+ -10372611.294 5 -8082549.532 5 22347797.060 22347797.150 22347797.434
+ 33.500 30.600
+ 06 1 2 23 33 30.0000000 0 6G02G04G06G10G26G29
+ -17417104.401 7 -13571754.990 6 21499135.116 21499131.032 21499134.344
+ 45.100 39.300
+ 1666784.241 3 1298809.734 2 24757902.129 24757901.580 24757902.259
+ 23.400 12.600
+ -16356135.037 7 -12745032.648 6 21700475.533 21700474.132 21700474.679
+ 44.200 39.000
+ -23498021.781 7 -18310132.771 7 20045260.784 20045259.163 20045259.643
+ 45.500 46.400
+ -5435026.342 4 -4235082.893 4 23457423.658 23457423.994 23457423.387
+ 26.200 25.300
+ -10468986.255 5 -8157646.871 5 22329457.495 22329457.704 22329457.820
+ 32.800 31.300
+ 06 1 2 23 34 0.0000000 0 6G02G04G06G10G26G29
+ -17346897.403 7 -13517048.252 6 21512495.035 21512491.107 21512494.194
+ 45.000 38.900
+ 1759439.180 3 1371008.399 2 24775533.936 24775532.871 24775533.500
+ 23.000 13.900
+ -16407607.206 7 -12785140.815 6 21690680.396 21690679.210 21690679.664
+ 44.000 39.100
+ -23490076.281 7 -18303941.465 7 20046772.900 20046771.144 20046771.710
+ 45.500 46.500
+ -5558381.502 4 -4331203.770 4 23433950.534 23433950.440 23433949.650
+ 26.500 26.500
+ -10565051.132 5 -8232502.582 5 22311177.723 22311177.189 22311177.429
+ 33.000 31.600
+ 06 1 2 23 34 30.0000000 0 6G02G04G06G10G26G29
+ -17276400.369 7 -13462115.499 6 21525910.290 21525906.394 21525909.408
+ 45.100 39.100
+ 1852158.957 3 1443257.567 2 24793177.514 24793177.192 24793177.628
+ 21.600 15.100
+ -16458607.627 7 -12824881.386 6 21680975.276 21680974.159 21680974.586
+ 43.900 38.900
+ -23481654.123 7 -18297378.740 7 20048375.473 20048373.823 20048374.338
+ 45.600 46.400
+ -5681594.309 4 -4427213.694 4 23410504.988 23410503.473 23410503.708
+ 27.900 25.300
+ -10660802.864 5 -8307114.291 5 22292956.856 22292955.984 22292956.460
+ 33.000 31.100
+ 06 1 2 23 35 0.0000000 0 6G02G04G06G10G26G29
+ -17205614.227 7 -13406957.474 6 21539380.127 21539376.587 21539379.534
+ 45.000 39.300
+ 1944942.968 4 1515556.779 2 24810833.901 24810833.715 24810834.084
+ 25.900 17.800
+ -16509134.466 7 -12864252.939 6 21671360.414 21671359.237 21671359.634
+ 43.800 38.900
+ -23472756.428 7 -18290445.466 7 20050068.717 20050066.953 20050067.532
+ 45.500 46.400
+ -5804661.252 4 -4523109.966 4 23387085.037 23387084.565 23387084.338
+ 26.500 25.600
+ -10756238.879 5 -8381479.989 5 22274795.976 22274795.320 22274795.577
+ 33.600 32.100
+ 06 1 2 23 35 30.0000000 0 6G02G04G06G10G26G29
+ -17134539.790 7 -13351574.804 6 21552905.606 21552901.480 21552904.738
+ 44.900 39.000
+ 2037790.891 3 1587905.837 2 24828503.124 24828502.240 24828502.505
+ 23.800 17.800
+ -16559185.968 7 -12903254.092 6 21661835.892 21661834.658 21661835.105
+ 43.600 38.900
+ -23463384.418 7 -18283142.596 7 20051852.242 20051850.361 20051851.019
+ 45.600 46.400
+ -5927579.060 4 -4618890.076 4 23363694.411 23363694.182 23363693.680
+ 29.200 26.500
+ -10851356.200 5 -8455597.333 5 22256695.865 22256694.879 22256695.095
+ 33.600 31.800
+ 06 1 2 23 36 0.0000000 0 6G02G04G06G10G26G29
+ -17063177.334 7 -13295967.702 6 21566485.432 21566481.526 21566484.620
+ 45.100 39.100
+ 2130701.955 4 1660304.054 2 24846184.308 24846182.303 24846183.138
+ 24.600 17.800
+ -16608760.003 7 -12941883.193 6 21652402.514 21652401.096 21652401.690
+ 44.000 39.500
+ -23453539.124 7 -18275470.935 7 20053725.626 20053723.873 20053724.486
+ 45.600 46.400
+ -6050344.594 4 -4714551.490 3 23340334.826 23340332.120 23340333.067
+ 28.100 23.000
+ -10946151.967 5 -8529464.139 5 22238657.610 22238655.862 22238656.414
+ 33.900 31.500
+ 06 1 2 23 36 30.0000000 0 6G02G06G10G21G26G29
+ -16991527.263 7 -13240136.482 6 21580119.830 21580116.070 21580119.126
+ 45.100 39.000
+ -16657854.870 7 -12980138.917 6 21643059.727 21643058.599 21643059.096
+ 44.000 39.300
+ -23443221.793 7 -18267431.452 7 20055688.823 20055687.278 20055687.745
+ 45.600 46.400
+ -203281.828 3 -158400.660 1 24865736.929 24865735.068 24865736.592
+ 19.900 9.000
+ -6172954.359 4 -4810091.549 3 23317001.185 23317000.273 23317000.443
+ 27.600 23.000
+ -11040623.374 5 -8603078.185 5 22220680.403 22220678.697 22220679.110
+ 34.300 32.700
+ 06 1 2 23 37 0.0000000 0 6G02G06G10G21G26G29
+ -16919590.861 7 -13184082.154 6 21593808.819 21593804.915 21593808.026
+ 44.700 38.900
+ -16706468.669 7 -13018019.789 6 21633808.808 21633807.547 21633808.119
+ 44.100 39.100
+ -23432433.400 7 -18259024.902 7 20057741.833 20057740.111 20057740.698
+ 45.600 46.300
+ -298592.722 3 -232668.772 2 24847600.228 24847598.592 24847599.106
+ 18.600 15.100
+ -6295405.178 4 -4905507.775 4 23293698.729 23293698.728 23293698.414
+ 28.600 24.200
+ -11134767.474 5 -8676437.196 5 22202764.939 22202763.454 22202763.839
+ 33.900 31.100
+ 06 1 2 23 37 30.0000000 0 6G02G06G10G21G26G29
+ -16847369.111 7 -13127805.467 6 21607552.182 21607548.172 21607551.365
+ 44.800 38.600
+ -16754599.585 7 -13055524.388 6 21624649.838 21624648.545 21624649.046
+ 43.900 39.300
+ -23421175.234 7 -18250252.297 7 20059884.316 20059882.403 20059883.164
+ 45.600 46.200
+ -393917.269 3 -306947.544 3 24829461.561 24829458.951 24829460.231
+ 20.500 20.500
+ -6417693.606 4 -5000797.438 3 23270430.119 23270427.993 23270428.544
+ 27.600 23.400
+ -11228581.505 5 -8749539.000 5 22184912.121 22184911.251 22184911.499
+ 34.100 31.600
+ 06 1 2 23 38 0.0000000 0 6G02G06G10G21G26G29
+ -16774862.242 7 -13071306.618 6 21621349.903 21621345.740 21621349.124
+ 44.900 38.300
+ -16802245.755 7 -13092651.258 6 21615583.361 21615582.014 21615582.415
+ 44.000 39.600
+ -23409448.327 7 -18241114.441 7 20062115.777 20062113.998 20062114.644
+ 45.600 46.200
+ -489254.525 3 -381236.266 3 24811318.946 24811316.584 24811317.557
+ 23.400 19.900
+ -6539816.319 4 -5095957.950 4 23247190.120 23247188.983 23247189.004
+ 28.100 25.300
+ -11322062.562 5 -8822381.354 5 22167123.494 22167122.468 22167122.882
+ 34.900 32.600
+ 06 1 2 23 38 30.0000000 0 6G02G06G10G21G26G29
+ -16702071.283 7 -13014586.394 6 21635201.639 21635197.371 21635200.780
+ 44.700 38.200
+ -16849405.680 7 -13129399.241 6 21606608.878 21606607.815 21606608.185
+ 44.100 39.700
+ -23397253.880 7 -18231612.268 7 20064436.396 20064434.579 20064435.228
+ 45.600 46.200
+ -584604.069 3 -455534.543 3 24793175.130 24793172.351 24793173.817
+ 23.000 23.400
+ -6661770.057 4 -5190986.828 4 23223980.439 23223982.057 23223981.573
+ 26.500 25.600
+ -11415207.818 5 -8894962.022 5 22149398.271 22149397.490 22149397.610
+ 34.600 33.100
+ 06 1 2 23 39 0.0000000 0 6G02G06G10G21G26G29
+ -16628996.729 7 -12957645.191 6 21649107.056 21649103.103 21649106.300
+ 44.400 37.900
+ -16896077.181 7 -13165766.626 6 21597727.441 21597726.333 21597726.759
+ 44.100 39.600
+ -23384593.133 7 -18221746.742 7 20066845.499 20066843.822 20066844.371
+ 45.700 46.300
+ -679965.159 3 -529841.821 4 24775027.178 24775025.976 24775026.315
+ 23.800 24.200
+ -6783551.452 4 -5285881.391 4 23200808.055 23200807.558 23200807.503
+ 26.800 24.900
+ -11508014.590 5 -8967278.944 5 22131737.880 22131736.717 22131737.105
+ 34.900 33.100
+ 06 1 2 23 39 30.0000000 0 6G02G06G10G21G26G29
+ -16555639.400 7 -12900483.637 6 21663066.632 21663062.429 21663065.784
+ 44.000 37.800
+ -16942258.725 7 -13201752.233 6 21588939.759 21588938.183 21588938.964
+ 44.300 39.500
+ -23371467.459 7 -18211518.935 7 20069343.257 20069341.496 20069342.132
+ 45.400 46.200
+ -775337.004 4 -604157.489 3 24756879.278 24756877.298 24756878.138
+ 25.900 22.600
+ -6905157.078 4 -5380638.961 4 23177669.230 23177667.130 23177667.530
+ 28.600 26.800
+ -11600479.985 5 -9039329.861 5 22114142.249 22114141.170 22114141.621
+ 35.400 32.700
+ 06 1 2 23 40 0.0000000 0 6G02G06G10G21G26G29
+ -16482000.109 7 -12843102.381 6 21677079.891 21677075.756 21677078.928
+ 43.800 38.300
+ -16987948.584 7 -13237354.713 6 21580245.235 21580243.772 21580244.439
+ 44.300 39.700
+ -23357878.017 7 -18200929.757 7 20071929.177 20071927.466 20071927.974
+ 45.500 46.300
+ -870718.848 4 -678480.955 3 24738728.781 24738726.405 24738727.623
+ 25.900 21.100
+ -7026583.729 5 -5475257.119 4 23154559.739 23154560.126 23154560.076
+ 30.200 27.100
+ -11692601.007 5 -9111112.426 5 22096612.658 22096611.133 22096611.648
+ 35.200 32.800
+ 06 1 2 23 40 30.0000000 0 6G02G06G10G21G26G29
+ -16408079.413 7 -12785501.846 6 21691146.493 21691142.515 21691145.629
+ 44.100 38.600
+ -17033144.826 7 -13272572.550 6 21571644.241 21571643.137 21571643.590
+ 44.300 39.400
+ -23343825.822 7 -18189979.986 7 20074603.170 20074601.540 20074602.033
+ 45.500 46.400
+ -966109.932 4 -752811.656 2 24720575.488 24720573.688 24720574.807
+ 26.800 17.000
+ -7147827.979 4 -5569733.149 4 23131487.894 23131488.035 23131487.981
+ 29.900 26.800
+ -11784375.191 5 -9182624.740 5 22079148.906 22079146.775 22079147.586
+ 35.200 32.300
+ 06 1 2 23 41 0.0000000 0 6G02G06G10G21G26G29
+ -16333878.224 7 -12727682.753 6 21705266.201 21705262.420 21705265.497
+ 44.100 38.400
+ -17077845.797 7 -13307404.469 6 21563137.982 21563136.767 21563137.237
+ 44.000 39.600
+ -23329312.313 7 -18178670.752 7 20077365.019 20077363.408 20077363.894
+ 45.600 46.300
+ -1061509.381 4 -827148.879 2 24702422.526 24702420.176 24702421.368
+ 26.200 16.100
+ -7268886.421 4 -5664064.346 4 23108453.916 23108451.477 23108452.312
+ 29.000 27.600
+ -11875799.670 5 -9253864.549 5 22061751.600 22061749.418 22061750.223
+ 34.600 33.000
+ 06 1 2 23 41 30.0000000 0 6G02G06G10G21G26G29
+ -16259397.155 7 -12669645.571 6 21719439.662 21719435.704 21719438.720
+ 43.600 38.100
+ -17122049.743 7 -13341849.091 6 21554726.436 21554725.064 21554725.624
+ 44.300 39.700
+ -23314338.787 7 -18167003.058 7 20080214.439 20080212.737 20080213.290
+ 45.600 46.400
+ -1156916.495 3 -901492.037 2 24684267.101 24684264.629 24684265.904
+ 21.600 12.600
+ -7389755.893 5 -5758248.285 4 23085452.446 23085450.960 23085451.270
+ 30.600 29.200
+ -11966871.464 5 -9324829.530 5 22044420.012 22044418.963 22044419.447
+ 35.700 33.100
+ 06 1 2 23 42 0.0000000 0 6G02G06G10G21G26G29
+ -16184637.083 7 -12611390.984 6 21733665.902 21733662.109 21733665.118
+ 43.500 38.400
+ -17165754.992 7 -13375905.119 6 21546409.623 21546408.268 21546408.820
+ 44.400 39.700
+ -23298906.296 7 -18154977.735 7 20083151.209 20083149.388 20083150.022
+ 45.700 46.300
+ -1252330.634 3 -975840.744 1 24666109.987 24666108.410 24666108.550
+ 21.600 11.000
+ -7510432.898 4 -5852282.299 4 23062485.811 23062486.770 23062486.222
+ 29.500 27.900
+ -12057588.175 6 -9395517.821 5 22027156.720 22027155.938 22027156.714
+ 36.300 32.800
+ 06 1 2 23 42 30.0000000 0 6G02G06G10G21G26G29
+ -16109598.765 7 -12552919.579 6 21747945.569 21747941.491 21747944.685
+ 43.800 38.100
+ -17208959.849 7 -13409571.228 6 21538188.127 21538186.691 21538187.313
+ 44.500 39.700
+ -23283016.249 7 -18142595.870 7 20086174.959 20086173.131 20086173.829
+ 45.600 46.300
+ -1347750.904 3 -1050194.169 2 24647952.402 24647949.811 24647951.145
+ 21.600 16.100
+ -7630914.178 4 -5946163.766 4 23039558.867 23039559.817 23039559.478
+ 29.000 27.400
+ -12147946.750 5 -9465927.056 5 22009961.740 22009961.304 22009961.847
+ 35.900 32.800
+ 06 1 2 23 43 0.0000000 0 6G02G06G10G21G26G29
+ -16034282.901 7 -12494231.897 6 21762277.193 21762273.508 21762276.665
+ 43.700 38.000
+ -17251662.681 7 -13442846.150 6 21530061.775 21530060.583 21530061.110
+ 44.700 39.800
+ -23266669.770 7 -18129858.348 7 20089285.632 20089283.800 20089284.438
+ 45.700 46.300
+ -1443176.716 3 -1124551.902 2 24629793.024 24629790.696 24629792.451
+ 23.400 17.800
+ -7751196.262 4 -6039889.997 4 23016671.004 23016670.998 23016670.590
+ 29.700 27.400
+ -12237944.553 6 -9536055.164 5 21992837.099 21992835.449 21992836.085
+ 36.200 33.800
+ 06 1 2 23 43 30.0000000 0 6G02G06G10G21G26G29
+ -15958690.120 7 -12435328.447 6 21776661.756 21776658.262 21776661.253
+ 43.200 37.800
+ -17293861.873 7 -13475728.625 6 21522031.500 21522030.274 21522030.778
+ 44.400 39.800
+ -23249868.308 7 -18116766.293 7 20092482.868 20092481.008 20092481.622
+ 45.600 46.400
+ -1538606.838 4 -1198913.012 3 24611633.695 24611631.357 24611632.713
+ 25.300 19.900
+ -7871275.776 5 -6133458.432 4 22993821.500 22993820.438 22993820.422
+ 30.600 27.400
+ -12327578.671 6 -9605899.898 5 21975780.703 21975778.403 21975779.371
+ 36.000 33.100
+ 06 1 2 23 44 0.0000000 0 6G02G06G10G21G26G29
+ -15882821.530 7 -12376210.069 6 21791099.688 21791095.738 21791098.832
+ 43.600 38.200
+ -17335555.683 7 -13508217.301 6 21514097.477 21514096.172 21514096.750
+ 44.400 39.700
+ -23232612.958 7 -18103320.558 7 20095766.115 20095764.542 20095765.033
+ 45.500 46.400
+ -1634040.760 4 -1273277.082 3 24593473.158 24593470.759 24593471.983
+ 26.200 21.100
+ -7991149.524 4 -6226866.523 4 22971009.432 22971008.940 22971009.022
+ 29.900 25.600
+ -12416846.596 6 -9675459.277 5 21958793.430 21958791.381 21958792.126
+ 36.200 33.900
+ 06 1 2 23 44 30.0000000 0 6G02G06G10G21G26G29
+ -15806677.774 7 -12316877.273 6 21805589.272 21805585.621 21805588.547
+ 43.500 38.300
+ -17376742.646 7 -13540311.034 6 21506259.765 21506258.617 21506259.049
+ 44.500 39.800
+ -23214905.228 7 -18089522.319 7 20099135.948 20099134.229 20099134.732
+ 45.400 46.300
+ -1729477.780 4 -1347643.585 3 24575312.185 24575309.510 24575310.906
+ 25.300 20.500
+ -8110814.083 4 -6320111.588 4 22948237.744 22948237.388 22948237.685
+ 29.500 25.300
+ -12505745.613 6 -9744731.192 5 21941875.450 21941874.325 21941874.908
+ 36.400 33.400
+ 06 1 2 23 45 0.0000000 0 6G02G06G10G21G26G29
+ -15730259.490 7 -12257330.567 6 21820130.748 21820127.403 21820130.154
+ 42.800 37.900
+ -17417420.805 7 -13572008.292 6 21498519.110 21498517.894 21498518.391
+ 44.600 40.100
+ -23196746.269 7 -18075372.474 7 20102591.436 20102589.811 20102590.238
+ 45.400 46.400
+ -1824916.961 3 -1422011.766 3 24557150.191 24557148.509 24557148.884
+ 21.100 19.300
+ -8230265.964 5 -6413190.958 4 22925506.931 22925506.789 22925506.744
+ 31.600 27.900
+ -12594272.788 6 -9813713.360 5 21925028.788 21925028.039 21925028.756
+ 37.100 33.100
+ 06 1 2 23 45 30.0000000 0 6G02G06G10G21G26G29
+ -15653567.386 7 -12197570.495 6 21834725.060 21834721.360 21834724.312
+ 42.700 37.600
+ -17457588.928 7 -13603308.118 6 21490875.433 21490874.144 21490874.637
+ 44.500 40.000
+ -23178137.431 7 -18060872.077 7 20106132.579 20106130.950 20106131.389
+ 45.300 46.400
+ -1920357.346 4 -1496380.884 2 24538988.066 24538986.342 24538987.448
+ 24.200 16.100
+ -8349501.780 5 -6506101.967 4 22902817.837 22902816.873 22902817.075
+ 32.100 27.900
+ -12682425.505 6 -9882403.758 5 21908254.653 21908253.236 21908253.842
+ 36.700 33.800
+ 06 1 2 23 46 0.0000000 0 6G02G06G10G21G26G29
+ -15576602.481 7 -12137597.846 6 21849371.336 21849367.126 21849370.458
+ 43.400 37.100
+ -17497245.237 7 -13634209.130 6 21483328.895 21483327.782 21483328.168
+ 44.500 40.000
+ -23159079.996 7 -18046022.117 7 20109759.169 20109757.519 20109757.997
+ 45.400 46.400
+ -2015798.466 4 -1570750.586 2 24520827.314 24520824.290 24520826.148
+ 27.100 16.100
+ -8468518.304 4 -6598842.081 4 22880169.075 22880168.882 22880168.593
+ 29.900 28.100
+ -12770201.016 6 -9950800.220 5 21891552.100 21891550.009 21891550.845
+ 36.700 33.800
+ 06 1 2 23 46 30.0000000 0 6G02G06G10G21G26G29
+ -15499365.381 7 -12077413.088 6 21864068.792 21864065.021 21864068.139
+ 43.400 37.400
+ -17536388.172 7 -13664710.114 6 21475880.500 21475879.063 21475879.724
+ 45.000 39.700
+ -23139575.305 7 -18030823.654 7 20113470.717 20113469.094 20113469.533
+ 45.600 46.400
+ -2111239.108 4 -1645119.883 2 24502664.824 24502661.911 24502664.030
+ 25.900 16.100
+ -8587312.070 5 -6691408.616 4 22857562.306 22857563.149 22857562.710
+ 30.800 28.400
+ -12857596.728 6 -10018900.752 5 21874921.115 21874919.172 21874919.964
+ 36.700 34.000
+ 06 1 2 23 47 0.0000000 0 6G02G06G10G21G26G29
+ -15421857.033 7 -12017016.975 6 21878818.228 21878814.491 21878817.545
+ 43.100 37.600
+ -17575016.260 7 -13694809.919 6 21468529.833 21468528.371 21468529.033
+ 44.800 40.100
+ -23119624.843 7 -18015277.834 7 20117267.159 20117265.474 20117265.967
+ 45.300 46.200
+ -2206678.475 4 -1719488.215 2 24484503.889 24484500.341 24484502.832
+ 27.900 15.100
+ -8705879.834 5 -6783799.070 4 22834999.177 22835000.455 22834999.887
+ 31.600 28.400
+ -12944609.990 6 -10086703.252 5 21858361.983 21858361.300 21858361.608
+ 36.800 34.300
+ 06 1 2 23 47 30.0000000 0 6G02G06G10G21G26G29
+ -15344078.037 7 -11956409.971 6 21893619.220 21893615.273 21893618.470
+ 43.500 37.100
+ -17613127.818 7 -13724507.229 6 21461277.161 21461276.046 21461276.442
+ 44.600 40.200
+ -23099229.973 7 -17999385.726 7 20121148.192 20121146.518 20121146.966
+ 45.400 46.200
+ -2302115.942 4 -1793855.052 2 24466342.612 24466340.122 24466341.547
+ 25.900 17.800
+ -8824218.188 5 -6876010.724 4 22812481.098 22812481.509 22812481.170
+ 31.000 29.700
+ -13031238.081 6 -10154205.612 5 21841877.267 21841876.053 21841876.912
+ 37.500 33.500
+ 06 1 2 23 48 0.0000000 0 6G02G06G10G21G26G29
+ -15266029.244 7 -11895592.736 6 21908471.219 21908467.183 21908470.606
+ 43.200 36.700
+ -17650721.283 7 -13753800.830 6 21454123.448 21454122.227 21454122.678
+ 44.600 40.200
+ -23078391.863 7 -17983148.235 7 20125113.527 20125111.872 20125112.313
+ 45.500 46.300
+ -2397550.535 4 -1868219.629 3 24448181.654 24448179.739 24448180.748
+ 27.100 20.500
+ -8942323.608 5 -6968040.890 4 22790007.378 22790006.413 22790006.492
+ 31.800 28.400
+ -13117478.250 6 -10221405.709 5 21825466.461 21825465.277 21825465.694
+ 36.800 34.300
+ 06 1 2 23 48 30.0000000 0 6G02G06G10G21G26G29
+ -15187711.554 7 -11834565.968 6 21923374.633 21923370.657 21923373.790
+ 42.500 36.600
+ -17687795.401 7 -13782689.749 6 21447068.712 21447067.198 21447067.911
+ 45.000 40.200
+ -23057112.178 7 -17966566.658 7 20129162.619 20129161.215 20129161.622
+ 45.400 46.200
+ -2492981.367 4 -1942581.313 3 24430021.058 24430019.593 24430020.199
+ 25.900 18.600
+ -9060192.865 5 -7059887.052 4 22767577.957 22767576.752 22767576.772
+ 31.800 29.000
+ -13203327.991 6 -10288301.568 5 21809130.046 21809128.608 21809129.114
+ 36.900 35.100
+ 06 1 2 23 49 0.0000000 0 6G02G06G10G21G26G29
+ -15109125.628 7 -11773330.196 6 21938328.967 21938325.296 21938328.194
+ 42.500 37.200
+ -17724348.529 7 -13811172.704 6 21440112.714 21440111.508 21440111.998
+ 45.000 40.400
+ -23035391.905 7 -17949641.767 7 20133296.187 20133294.448 20133294.984
+ 45.600 46.200
+ -2588407.606 4 -2016939.366 3 24411862.753 24411860.741 24411861.327
+ 24.600 20.500
+ -9177822.500 5 -7151546.475 5 22745193.640 22745192.597 22745192.520
+ 31.000 30.400
+ -13288784.676 6 -10354891.149 5 21792867.901 21792866.658 21792867.171
+ 37.100 35.100
+ 06 1 2 23 49 30.0000000 0 6G02G06G10G21G26G29
+ -15030272.385 7 -11711886.126 6 21953334.489 21953330.390 21953333.744
+ 42.800 36.900
+ -17760379.313 7 -13839248.630 6 21433256.179 21433255.087 21433255.439
+ 44.700 40.500
+ -23013232.477 7 -17932374.679 7 20137512.977 20137511.294 20137511.822
+ 45.600 46.100
+ -2683828.382 4 -2091293.151 3 24393704.749 24393702.904 24393703.748
+ 26.200 23.800
+ -9295209.181 5 -7243016.557 4 22722854.108 22722854.660 22722854.053
+ 31.000 29.200
+ -13373845.678 6 -10421172.414 5 21776681.623 21776679.953 21776680.883
+ 37.900 34.700
+ 06 1 2 23 50 0.0000000 0 6G02G06G10G21G26G29
+ -14951152.779 7 -11650234.502 6 21968390.293 21968386.435 21968389.676
+ 42.500 36.900
+ -17795886.160 7 -13866916.297 6 21426499.444 21426498.243 21426498.809
+ 44.700 40.200
+ -22990635.529 7 -17914766.665 7 20141813.122 20141811.473 20141811.907
+ 45.600 46.200
+ -2779242.889 4 -2165642.036 3 24375547.992 24375546.005 24375546.962
+ 24.600 23.800
+ -9412349.591 5 -7334294.764 4 22700563.335 22700563.449 22700563.574
+ 32.300 28.800
+ -13458508.256 6 -10487143.219 5 21760571.011 21760569.188 21760570.105
+ 38.000 34.900
+ 06 1 2 23 50 30.0000000 0 6G02G06G10G21G26G29
+ -14871767.242 7 -11588375.657 6 21983497.184 21983492.958 21983496.230
+ 42.300 36.500
+ -17830867.550 7 -13894174.516 6 21419842.833 21419841.403 21419842.017
+ 44.600 40.200
+ -22967602.473 7 -17896818.823 7 20146195.961 20146194.522 20146194.835
+ 45.500 46.100
+ -2874650.168 4 -2239985.295 3 24357392.742 24357390.580 24357391.866
+ 24.900 23.800
+ -9529240.372 5 -7425378.466 4 22678319.476 22678319.653 22678319.668
+ 32.800 28.600
+ -13542769.753 6 -10552801.490 5 21744537.079 21744534.753 21744535.791
+ 38.100 35.100
+ 06 1 2 23 51 0.0000000 0 6G02G06G10G21G26G29
+ -14792116.772 7 -11526310.365 6 21998653.636 21998649.879 21998653.104
+ 42.000 36.100
+ -17865322.264 7 -13921022.340 6 21413286.302 21413284.893 21413285.572
+ 44.800 40.000
+ -22944134.395 7 -17878532.004 7 20150661.779 20150660.212 20150660.661
+ 45.400 46.000
+ -2970049.316 3 -2314322.232 3 24339237.820 24339236.259 24339236.649
+ 23.800 23.800
+ -9645877.960 5 -7516264.842 4 22656125.146 22656124.238 22656124.462
+ 32.100 28.400
+ -13626627.848 6 -10618145.420 5 21728578.030 21728577.074 21728577.741
+ 38.400 35.700
+ 06 1 2 23 51 30.0000000 0 6G02G06G10G21G26G29
+ -14712202.160 6 -11464039.258 6 22013861.219 22013857.250 22013860.293
+ 41.900 36.400
+ -17899248.733 7 -13947458.545 6 21406830.360 21406828.989 21406829.557
+ 44.700 40.200
+ -22920232.804 7 -17859907.383 7 20155210.146 20155208.423 20155209.003
+ 45.500 46.000
+ -3065439.582 3 -2388652.244 3 24321086.077 24321084.129 24321084.759
+ 23.800 21.600
+ -9762258.992 5 -7606951.292 5 22633978.989 22633977.856 22633978.019
+ 33.200 30.400
+ -13710079.662 6 -10683172.754 5 21712697.447 21712696.701 21712697.190
+ 38.000 34.900
+ 06 1 2 23 52 0.0000000 0 6G02G06G10G21G26G29
+ -14632024.372 6 -11401563.065 6 22029118.151 22029114.645 22029117.587
+ 41.700 36.600
+ -17932645.742 7 -13973482.178 6 21400475.111 21400473.805 21400474.368
+ 44.700 40.500
+ -22895899.301 7 -17840946.207 7 20159840.723 20159838.973 20159839.498
+ 45.400 46.000
+ -3160819.761 4 -2462974.398 3 24302935.331 24302934.228 24302934.399
+ 24.900 22.100
+ -9878380.257 5 -7697435.345 5 22611881.940 22611880.600 22611881.010
+ 33.200 30.600
+ -13793122.900 6 -10747881.746 5 21696896.087 21696893.900 21696895.082
+ 38.300 35.100
+ 06 1 2 23 52 30.0000000 0 6G02G06G10G21G26G29
+ -14551584.062 6 -11338882.307 6 22044425.831 22044421.832 22044425.051
+ 41.900 36.200
+ -17965511.836 7 -13999092.117 6 21394220.606 21394219.574 21394219.906
+ 44.600 40.800
+ -22871135.202 7 -17821649.503 7 20164553.028 20164551.471 20164551.900
+ 45.600 46.000
+ -3256189.096 4 -2537288.103 3 24284787.953 24284785.689 24284786.843
+ 27.100 19.300
+ -9994238.174 5 -7787714.172 5 22589835.415 22589833.442 22589833.863
+ 32.700 30.200
+ -13875754.843 6 -10812270.228 5 21681170.714 21681169.781 21681170.182
+ 37.900 35.700
+ 06 1 2 23 53 0.0000000 0 6G02G06G10G21G26G29
+ -14470882.235 6 -11275997.768 6 22059782.779 22059778.972 22059782.028
+ 41.600 36.600
+ -17997845.714 7 -14024287.341 6 21388067.886 21388066.526 21388067.052
+ 44.700 40.600
+ -22845941.829 7 -17802018.299 7 20169347.084 20169345.632 20169345.949
+ 45.300 46.000
+ -3351546.938 4 -2611592.873 3 24266642.624 24266639.626 24266641.412
+ 28.400 19.900
+ -10109829.586 5 -7877785.350 4 22567838.652 22567837.105 22567837.523
+ 33.400 29.900
+ -13957972.907 6 -10876336.187 5 21665525.336 21665524.100 21665524.885
+ 38.700 35.800
+ 06 1 2 23 53 30.0000000 0 6G02G06G10G21G26G29
+ -14389919.628 6 -11212910.042 6 22075189.471 22075185.598 22075188.629
+ 41.500 36.400
+ -18029645.830 7 -14049066.644 6 21382016.690 21382015.303 21382015.916
+ 44.800 40.600
+ -22820320.692 7 -17782053.770 7 20174222.564 20174221.187 20174221.438
+ 45.300 46.100
+ -3446892.125 4 -2685887.787 3 24248498.539 24248495.978 24248497.418
+ 27.600 19.300
+ -10225151.021 5 -7967646.160 4 22545892.037 22545891.966 22545892.150
+ 33.100 29.500
+ -14039774.782 6 -10940077.863 5 21649959.608 21649957.625 21649958.571
+ 38.400 35.900
+ 06 1 2 23 54 0.0000000 0 6G02G06G10G21G26G29
+ -14308696.917 6 -11149619.630 6 22090645.339 22090641.960 22090644.829
+ 41.400 36.600
+ -18060911.002 7 -14073429.112 6 21376067.058 21376065.760 21376066.329
+ 45.200 40.800
+ -22794273.495 7 -17761757.244 7 20179179.232 20179177.830 20179178.073
+ 45.400 46.200
+ -3542223.692 4 -2760172.100 2 24230357.100 24230354.648 24230355.991
+ 29.000 15.100
+ -10340199.055 5 -8057293.910 5 22523998.669 22523999.021 22523999.070
+ 33.800 30.600
+ -14121157.553 6 -11003492.979 5 21634472.501 21634470.688 21634471.833
+ 38.800 35.700
+ 06 1 2 23 54 30.0000000 0 6G02G06G10G21G26G29
+ -14227214.957 6 -11086127.225 6 22106151.652 22106147.526 22106150.648
+ 41.400 36.700
+ -18091639.929 7 -14097373.724 6 21370219.656 21370217.994 21370218.903
+ 45.200 40.700
+ -22767801.608 7 -17741129.798 7 20184216.605 20184215.328 20184215.517
+ 45.300 46.200
+ -3637540.630 4 -2834445.018 3 24212218.869 24212216.358 24212218.089
+ 29.200 20.500
+ -10454970.494 5 -8146726.158 5 22502158.265 22502158.500 22502158.964
+ 34.500 30.200
+ -14202119.104 6 -11066579.867 5 21619066.020 21619064.395 21619065.322
+ 38.900 35.900
+ 06 1 2 23 55 0.0000000 0 6G02G06G10G21G26G29
+ -14145474.808 6 -11022433.628 6 22121705.376 22121702.079 22121704.951
+ 41.200 36.200
+ -18121831.349 7 -14120899.493 6 21364474.401 21364472.805 21364473.627
+ 45.000 40.400
+ -22740906.220 7 -17720172.347 7 20189334.718 20189333.350 20189333.549
+ 45.200 46.100
+ -3732842.287 4 -2908706.004 3 24194084.162 24194081.347 24194082.943
+ 27.900 22.100
+ -10569461.724 5 -8235940.060 5 22480371.769 22480371.899 22480371.748
+ 34.300 31.100
+ -14282656.812 6 -11129336.475 5 21603740.425 21603738.582 21603739.514
+ 38.900 35.700
+ 06 1 2 23 55 30.0000000 0 6G02G06G10G21G26G29
+ -14063477.235 6 -10958539.441 6 22137309.983 22137305.641 22137308.813
+ 41.300 36.200
+ -18151483.966 7 -14144005.426 6 21358831.463 21358830.193 21358830.629
+ 44.800 40.800
+ -22713588.900 7 -17698886.120 7 20194532.977 20194531.602 20194531.775
+ 45.300 46.100
+ -3828127.365 4 -2982954.095 3 24175951.949 24175949.584 24175950.684
+ 26.200 23.400
+ -10683669.484 5 -8324933.051 5 22458639.013 22458638.846 22458638.697
+ 33.000 31.600
+ -14362768.036 6 -11191760.777 6 21588495.815 21588493.862 21588494.921
+ 39.300 36.100
+ 06 1 2 23 56 0.0000000 0 6G02G06G10G21G26G29
+ -13981223.119 6 -10894445.350 6 22152961.477 22152958.253 22152960.962
+ 40.900 36.000
+ -18180596.546 7 -14166690.544 6 21353291.460 21353290.309 21353290.663
+ 44.500 40.900
+ -22685851.168 7 -17677272.300 7 20199811.226 20199809.855 20199810.070
+ 45.300 46.000
+ -3923395.091 4 -3057188.629 3 24157821.718 24157820.249 24157821.213
+ 25.300 23.800
+ -10797590.377 5 -8413702.513 4 22436960.246 22436959.932 22436960.352
+ 34.300 29.700
+ -14442450.549 6 -11253851.011 6 21573332.627 21573330.734 21573331.896
+ 39.700 36.500
+ 06 1 2 23 56 30.0000000 0 6G02G06G10G21G26G29
+ -13898713.165 6 -10830151.884 5 22168663.050 22168658.979 22168662.237
+ 40.700 35.400
+ -18209167.949 7 -14188953.966 6 21347854.530 21347853.215 21347853.764
+ 44.700 40.800
+ -22657694.395 7 -17655331.953 7 20205169.383 20205167.798 20205168.168
+ 45.500 46.100
+ -4018644.438 4 -3131408.835 4 24139697.646 24139694.864 24139696.165
+ 24.600 24.900
+ -10911221.019 5 -8502245.826 5 22415337.384 22415336.613 22415337.150
+ 34.400 30.200
+ -14521701.706 6 -11315605.113 6 21558251.313 21558249.696 21558250.619
+ 39.300 36.200
+ 06 1 2 23 57 0.0000000 0 6G02G06G10G21G26G29
+ -13815948.330 6 -10765659.830 6 22184412.990 22184408.966 22184411.988
+ 41.000 36.000
+ -18237196.828 7 -14210794.647 6 21342521.005 21342519.368 21342520.222
+ 44.900 40.300
+ -22629120.043 7 -17633066.218 7 20210607.073 20210605.333 20210605.825
+ 45.500 45.800
+ -4113874.478 4 -3205613.988 3 24121575.996 24121573.059 24121574.901
+ 28.100 23.800
+ -11024558.260 5 -8590560.503 5 22393769.969 22393769.643 22393769.721
+ 35.200 31.300
+ -14600519.057 6 -11377021.188 6 21543252.667 21543251.346 21543252.173
+ 39.200 37.000
+ 06 1 2 23 57 30.0000000 0 6G02G06G10G21G26G29
+ -13732929.410 6 -10700969.781 5 22200210.471 22200206.723 22200209.960
+ 40.900 35.500
+ -18264682.001 7 -14232211.658 6 21337290.659 21337289.032 21337289.882
+ 44.900 40.300
+ -22600129.721 7 -17610476.353 7 20216123.593 20216122.078 20216122.444
+ 45.800 45.900
+ -4209083.917 4 -3279803.130 3 24103457.410 24103454.610 24103456.706
+ 28.600 22.100
+ -11137598.483 5 -8678643.741 5 22372259.766 22372258.648 22372259.010
+ 34.600 31.300
+ -14678900.287 6 -11438097.431 6 21528337.356 21528335.830 21528336.619
+ 39.300 36.600
+ 06 1 2 23 58 0.0000000 0 6G02G06G10G21G26G29
+ -13649657.435 6 -10636082.563 6 22216057.186 22216053.395 22216056.276
+ 41.000 36.700
+ -18291622.368 7 -14253204.142 6 21332164.014 21332162.493 21332163.238
+ 44.800 40.300
+ -22570724.971 7 -17587563.555 7 20221719.254 20221717.625 20221718.065
+ 45.900 45.900
+ -4304272.007 4 -3353975.636 3 24085343.463 24085340.978 24085342.474
+ 28.800 20.500
+ -11250338.398 5 -8766492.981 5 22350806.251 22350804.818 22350805.287
+ 34.100 31.000
+ -14756842.947 6 -11498831.963 6 21513506.016 21513503.681 21513504.920
+ 39.600 36.500
+ 06 1 2 23 58 30.0000000 0 6G02G06G10G21G26G29
+ -13566133.113 6 -10570998.711 5 22231951.054 22231947.332 22231950.434
+ 40.900 35.600
+ -18318016.574 7 -14273771.045 6 21327141.307 21327139.922 21327140.623
+ 44.700 40.500
+ -22540907.344 7 -17564329.036 7 20227393.449 20227391.710 20227392.270
+ 45.700 45.800
+ -4399438.045 4 -3428130.955 3 24067233.983 24067231.648 24067233.064
+ 29.700 21.100
+ -11362774.620 5 -8854105.546 5 22329409.845 22329408.933 22329409.145
+ 34.800 31.800
+ -14834344.498 6 -11559222.776 6 21498757.228 21498755.592 21498756.672
+ 40.200 36.500
+ 06 1 2 23 59 0.0000000 0 6G02G06G10G21G26G29
+ -13482357.408 6 -10505718.937 5 22247893.007 22247889.119 22247892.265
+ 40.600 35.400
+ -18343863.798 7 -14293911.726 6 21322222.895 21322221.216 21322222.041
+ 44.600 40.500
+ -22510678.290 7 -17540773.926 7 20233145.679 20233144.097 20233144.505
+ 45.700 45.800
+ -4494580.727 5 -3502268.079 3 24049129.953 24049127.054 24049128.836
+ 31.100 20.500
+ -11474903.782 5 -8941478.863 5 22308072.647 22308071.376 22308071.854
+ 35.600 31.300
+ -14911402.697 6 -11619268.096 6 21484093.806 21484091.977 21484092.915
+ 39.800 36.900
+ 06 1 2 23 59 30.0000000 0 6G02G06G10G21G26G29
+ -13398331.138 6 -10440243.924 5 22263882.803 22263878.834 22263881.869
+ 40.300 35.200
+ -18369162.703 7 -14313625.152 6 21317408.451 21317407.039 21317407.765
+ 44.500 40.600
+ -22480039.180 7 -17516899.283 7 20238976.106 20238974.583 20238974.895
+ 45.700 45.900
+ -4589699.130 4 -3576386.297 3 24031029.762 24031026.624 24031028.491
+ 29.000 19.900
+ -11586722.587 5 -9028610.358 5 22286794.618 22286792.803 22286793.402
+ 35.300 31.500
+ -14988015.038 6 -11678966.001 6 21469514.659 21469513.127 21469513.861
+ 39.700 37.100
diff --git a/ref/usersguide/arl2800.06m b/ref/usersguide/arl2800.06m
new file mode 100644
index 0000000..b4d60ab
--- /dev/null
+++ b/ref/usersguide/arl2800.06m
@@ -0,0 +1,299 @@
+ 2 METEOROLOGICAL DATA RINEX VERSION / TYPE
+ACSMET NRCan 01-JAN-06 00:15 PGM / RUN BY / DATE
+ COMMENT
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+40104M002 MARKER NUMBER
+ 3 PR TD HR # / TYPES OF OBSERV
+VAISALA PTB-100A 0.1 PR SENSOR MOD/TYPE/ACC
+YSI 44212 0.2 TD SENSOR MOD/TYPE/ACC
+VAISALA HMP-35A 3.0 HR SENSOR MOD/TYPE/ACC
+ 0.0 0.0 0.0 200.9 PR SENSOR POS XYZ/H
+ END OF HEADER
+ 06 01 01 00 00 34 984.9 -12.6 82.3
+ 06 01 01 00 05 20 985.0 -12.6 81.8
+ 06 01 01 00 10 23 985.0 -12.6 81.5
+ 06 01 01 00 15 40 985.0 -12.6 82.1
+ 06 01 01 00 20 20 985.0 -12.6 82.2
+ 06 01 01 00 25 19 985.0 -12.6 82.1
+ 06 01 01 00 30 34 985.0 -12.5 83.0
+ 06 01 01 00 35 20 985.1 -12.5 82.3
+ 06 01 01 00 40 21 985.1 -12.5 82.7
+ 06 01 01 00 45 37 985.0 -12.5 83.5
+ 06 01 01 00 50 20 984.9 -12.5 83.2
+ 06 01 01 00 55 20 984.8 -12.5 83.6
+ 06 01 01 01 00 35 984.8 -12.5 84.3
+ 06 01 01 01 05 28 984.9 -12.5 83.8
+ 06 01 01 01 10 23 985.0 -12.5 83.3
+ 06 01 01 01 15 41 985.1 -12.5 83.6
+ 06 01 01 01 20 23 985.1 -12.4 83.2
+ 06 01 01 01 25 20 985.1 -12.4 83.0
+ 06 01 01 01 30 40 985.0 -12.4 84.1
+ 06 01 01 01 35 20 984.9 -12.4 83.7
+ 06 01 01 01 40 26 984.7 -12.5 83.6
+ 06 01 01 01 45 40 984.6 -12.4 84.6
+ 06 01 01 01 50 23 984.7 -12.4 84.3
+ 06 01 01 01 55 22 984.5 -12.4 84.4
+ 06 01 01 02 00 41 984.5 -12.5 84.5
+ 06 01 01 02 05 25 984.6 -12.4 84.4
+ 06 01 01 02 10 25 984.5 -12.4 83.7
+ 06 01 01 02 15 39 984.6 -12.4 84.4
+ 06 01 01 02 20 23 984.7 -12.4 83.9
+ 06 01 01 02 25 23 984.7 -12.4 83.0
+ 06 01 01 02 30 38 984.6 -12.4 83.6
+ 06 01 01 02 35 21 984.6 -12.3 83.4
+ 06 01 01 02 40 24 984.5 -12.3 83.9
+ 06 01 01 02 45 34 984.6 -12.3 83.5
+ 06 01 01 02 50 22 984.5 -12.3 83.5
+ 06 01 01 02 55 26 984.6 -12.3 82.9
+ 06 01 01 03 00 49 984.8 -12.3 82.4
+ 06 01 01 03 05 24 984.7 -12.3 82.9
+ 06 01 01 03 10 27 984.8 -12.2 82.9
+ 06 01 01 03 15 55 984.8 -12.2 83.8
+ 06 01 01 03 20 28 984.9 -12.2 83.7
+ 06 01 01 03 25 23 984.8 -12.2 83.8
+ 06 01 01 03 30 32 984.7 -12.2 84.4
+ 06 01 01 03 35 27 984.8 -12.2 85.1
+ 06 01 01 03 40 29 984.9 -12.2 83.7
+ 06 01 01 03 46 04 984.9 -12.2 84.9
+ 06 01 01 03 50 25 984.8 -12.2 84.6
+ 06 01 01 03 55 35 984.8 -12.2 82.7
+ 06 01 01 04 00 35 984.8 -12.2 83.6
+ 06 01 01 04 05 26 984.9 -12.2 83.9
+ 06 01 01 04 10 23 984.9 -12.2 83.7
+ 06 01 01 04 15 48 984.9 -12.2 83.6
+ 06 01 01 04 20 31 984.8 -12.2 83.5
+ 06 01 01 04 25 26 984.9 -12.2 83.3
+ 06 01 01 04 30 33 984.8 -12.2 84.0
+ 06 01 01 04 35 26 984.9 -12.2 84.2
+ 06 01 01 04 40 19 984.9 -12.2 82.8
+ 06 01 01 04 45 48 985.1 -12.2 83.7
+ 06 01 01 04 50 25 985.1 -12.1 83.9
+ 06 01 01 04 55 25 985.3 -12.1 82.8
+ 06 01 01 05 00 51 985.3 -12.1 82.6
+ 06 01 01 05 05 23 985.3 -12.0 83.5
+ 06 01 01 05 10 24 985.4 -12.0 83.1
+ 06 01 01 05 15 35 985.4 -12.0 82.9
+ 06 01 01 05 20 19 985.6 -12.0 82.9
+ 06 01 01 05 25 21 985.6 -12.0 83.1
+ 06 01 01 05 30 34 985.6 -12.0 83.5
+ 06 01 01 05 35 18 985.6 -12.0 83.2
+ 06 01 01 05 40 20 985.5 -12.0 84.8
+ 06 01 01 05 45 36 985.3 -12.0 84.1
+ 06 01 01 05 50 20 985.3 -12.1 84.0
+ 06 01 01 05 55 21 985.3 -12.1 84.2
+ 06 01 01 06 00 36 985.3 -12.1 83.8
+ 06 01 01 06 05 20 985.5 -12.1 84.9
+ 06 01 01 06 10 22 985.4 -12.0 84.5
+ 06 01 01 06 15 31 985.3 -12.1 84.6
+ 06 01 01 06 20 19 985.4 -12.1 84.5
+ 06 01 01 06 25 20 985.5 -12.1 84.3
+ 06 01 01 06 30 32 985.7 -12.1 84.3
+ 06 01 01 06 35 19 985.7 -12.0 84.1
+ 06 01 01 06 40 20 985.6 -12.0 84.0
+ 06 01 01 06 45 33 985.6 -12.0 85.4
+ 06 01 01 06 50 24 985.5 -12.0 85.3
+ 06 01 01 06 55 21 985.4 -12.1 84.9
+ 06 01 01 07 00 32 985.7 -12.1 84.8
+ 06 01 01 07 05 22 985.8 -12.1 85.0
+ 06 01 01 07 10 19 985.9 -12.1 85.1
+ 06 01 01 07 15 30 985.9 -12.0 85.3
+ 06 01 01 07 20 22 986.1 -12.0 84.6
+ 06 01 01 07 25 19 986.1 -12.0 84.8
+ 06 01 01 07 30 37 986.2 -12.0 86.0
+ 06 01 01 07 35 22 986.3 -12.0 85.5
+ 06 01 01 07 40 20 986.3 -12.0 85.4
+ 06 01 01 07 45 43 986.2 -12.0 85.5
+ 06 01 01 07 50 23 986.1 -12.0 85.5
+ 06 01 01 07 55 25 986.1 -12.0 86.3
+ 06 01 01 08 00 35 986.1 -12.0 86.9
+ 06 01 01 08 05 22 986.1 -12.0 86.9
+ 06 01 01 08 10 20 986.2 -12.0 86.8
+ 06 01 01 08 15 30 986.2 -12.0 87.0
+ 06 01 01 08 20 20 986.2 -11.9 87.2
+ 06 01 01 08 25 19 986.2 -11.9 87.1
+ 06 01 01 08 30 32 986.2 -11.9 87.4
+ 06 01 01 08 35 21 986.1 -12.0 87.0
+ 06 01 01 08 40 22 986.0 -12.0 87.0
+ 06 01 01 08 45 35 986.1 -12.0 86.8
+ 06 01 01 08 50 21 986.2 -11.9 86.2
+ 06 01 01 08 55 20 986.2 -11.9 86.4
+ 06 01 01 09 00 42 986.3 -11.9 86.8
+ 06 01 01 09 05 20 986.2 -11.9 86.8
+ 06 01 01 09 10 20 986.3 -11.9 87.3
+ 06 01 01 09 15 28 986.4 -11.9 87.1
+ 06 01 01 09 20 19 986.3 -11.9 87.4
+ 06 01 01 09 25 19 986.4 -11.9 87.3
+ 06 01 01 09 30 29 986.5 -11.9 86.9
+ 06 01 01 09 35 19 986.8 -11.8 86.7
+ 06 01 01 09 40 20 986.6 -11.8 86.7
+ 06 01 01 09 45 35 986.8 -11.8 86.8
+ 06 01 01 09 50 21 986.9 -11.8 86.7
+ 06 01 01 09 55 21 986.9 -11.8 86.4
+ 06 01 01 10 00 37 987.1 -11.8 86.8
+ 06 01 01 10 05 21 987.1 -11.7 86.5
+ 06 01 01 10 10 19 987.1 -11.7 86.6
+ 06 01 01 10 15 34 987.1 -11.8 87.8
+ 06 01 01 10 20 20 987.2 -11.8 87.7
+ 06 01 01 10 25 23 987.2 -11.7 87.3
+ 06 01 01 10 30 30 987.2 -11.8 87.0
+ 06 01 01 10 35 19 987.1 -11.8 87.5
+ 06 01 01 10 40 21 987.1 -11.8 88.3
+ 06 01 01 10 45 30 987.1 -11.8 87.7
+ 06 01 01 10 50 22 987.1 -11.8 87.6
+ 06 01 01 10 55 19 987.2 -11.8 87.7
+ 06 01 01 11 00 30 987.3 -11.8 87.7
+ 06 01 01 11 05 21 987.4 -11.8 87.8
+ 06 01 01 11 10 19 987.4 -11.8 88.0
+ 06 01 01 11 15 28 987.4 -11.8 87.8
+ 06 01 01 11 20 19 987.5 -11.8 87.9
+ 06 01 01 11 25 21 987.4 -11.8 88.0
+ 06 01 01 11 30 34 987.3 -11.7 88.4
+ 06 01 01 11 35 21 987.3 -11.8 88.8
+ 06 01 01 11 40 20 987.3 -11.8 88.7
+ 06 01 01 11 45 28 987.5 -11.7 88.7
+ 06 01 01 11 50 20 987.6 -11.7 88.4
+ 06 01 01 11 55 20 987.6 -11.7 88.3
+ 06 01 01 12 00 30 987.5 -11.7 88.5
+ 06 01 01 12 05 20 987.5 -11.7 88.4
+ 06 01 01 12 10 20 987.4 -11.7 88.8
+ 06 01 01 12 15 32 987.5 -11.7 88.7
+ 06 01 01 12 20 19 987.6 -11.7 88.7
+ 06 01 01 12 25 18 987.6 -11.6 88.5
+ 06 01 01 12 30 27 987.7 -11.6 88.5
+ 06 01 01 12 35 20 987.8 -11.6 88.2
+ 06 01 01 12 40 19 987.8 -11.6 88.5
+ 06 01 01 12 45 30 987.8 -11.6 88.1
+ 06 01 01 12 50 22 987.9 -11.6 88.0
+ 06 01 01 12 55 19 988.0 -11.5 88.1
+ 06 01 01 13 00 36 988.0 -11.5 87.6
+ 06 01 01 13 05 19 988.1 -11.5 88.2
+ 06 01 01 13 10 20 988.3 -11.5 87.9
+ 06 01 01 13 15 32 988.4 -11.4 87.5
+ 06 01 01 13 20 20 988.5 -11.4 86.8
+ 06 01 01 13 25 18 988.6 -11.3 86.4
+ 06 01 01 13 30 27 988.7 -11.3 86.2
+ 06 01 01 13 35 21 988.7 -11.3 86.1
+ 06 01 01 13 40 22 988.7 -11.3 86.5
+ 06 01 01 13 45 30 988.8 -11.3 87.2
+ 06 01 01 13 50 18 988.8 -11.3 86.9
+ 06 01 01 13 55 21 988.7 -11.3 87.4
+ 06 01 01 14 00 32 988.9 -11.3 87.4
+ 06 01 01 14 05 21 988.9 -11.2 87.1
+ 06 01 01 14 10 20 988.9 -11.2 87.4
+ 06 01 01 14 15 30 988.9 -11.2 87.4
+ 06 01 01 14 20 21 988.9 -11.1 87.6
+ 06 01 01 14 25 21 989.0 -11.1 87.3
+ 06 01 01 14 30 31 989.0 -11.0 86.9
+ 06 01 01 14 35 20 989.1 -11.0 86.6
+ 06 01 01 14 40 21 989.2 -10.9 86.1
+ 06 01 01 14 45 34 989.2 -10.8 86.0
+ 06 01 01 14 50 21 989.2 -10.9 85.8
+ 06 01 01 14 55 19 989.2 -10.9 86.4
+ 06 01 01 15 00 32 989.2 -10.9 86.5
+ 06 01 01 15 05 19 989.3 -10.8 85.5
+ 06 01 01 15 10 19 989.5 -10.8 86.1
+ 06 01 01 15 15 29 989.5 -10.7 85.5
+ 06 01 01 15 20 20 989.5 -10.6 85.1
+ 06 01 01 15 25 22 989.6 -10.5 85.5
+ 06 01 01 15 30 28 989.5 -10.6 85.4
+ 06 01 01 15 35 20 989.6 -10.5 85.5
+ 06 01 01 15 40 26 989.5 -10.5 85.5
+ 06 01 01 15 45 33 989.5 -10.4 85.6
+ 06 01 01 15 50 19 989.4 -10.2 84.7
+ 06 01 01 15 55 19 989.4 -10.2 84.6
+ 06 01 01 16 00 30 989.3 -10.3 85.2
+ 06 01 01 16 05 21 989.4 -10.2 85.3
+ 06 01 01 16 10 20 989.3 -10.1 85.7
+ 06 01 01 16 15 37 989.3 -10.2 85.1
+ 06 01 01 16 20 20 989.1 -10.1 85.7
+ 06 01 01 16 25 19 989.1 -9.9 84.5
+ 06 01 01 16 30 29 989.0 -9.8 85.0
+ 06 01 01 16 35 20 988.9 -9.7 83.3
+ 06 01 01 16 40 21 989.0 -9.7 83.8
+ 06 01 01 16 45 32 989.0 -9.6 84.3
+ 06 01 01 16 50 21 988.9 -9.5 83.0
+ 06 01 01 16 55 24 988.9 -9.6 85.0
+ 06 01 01 17 00 34 988.9 -9.6 83.9
+ 06 01 01 17 05 21 988.8 -9.4 82.9
+ 06 01 01 17 10 20 989.0 -9.4 84.3
+ 06 01 01 17 15 31 988.9 -9.2 83.6
+ 06 01 01 17 20 20 988.9 -9.2 82.7
+ 06 01 01 17 25 18 989.0 -8.8 80.9
+ 06 01 01 17 30 32 989.0 -8.6 82.1
+ 06 01 01 17 35 20 988.9 -8.7 82.5
+ 06 01 01 17 40 20 988.9 -8.8 82.7
+ 06 01 01 17 45 32 989.0 -8.4 82.0
+ 06 01 01 17 50 20 988.9 -8.4 80.8
+ 06 01 01 17 55 21 988.9 -8.6 82.2
+ 06 01 01 18 00 29 988.8 -8.0 81.9
+ 06 01 01 18 05 20 988.8 -8.0 79.1
+ 06 01 01 18 10 19 988.9 -8.3 81.8
+ 06 01 01 18 15 27 988.8 -8.4 82.3
+ 06 01 01 18 20 19 988.8 -8.5 83.5
+ 06 01 01 18 25 19 988.7 -8.6 83.1
+ 06 01 01 18 30 33 988.9 -8.7 83.8
+ 06 01 01 18 35 19 988.8 -8.6 84.6
+ 06 01 01 18 40 20 988.8 -8.2 83.7
+ 06 01 01 18 45 32 988.8 -8.1 83.7
+ 06 01 01 18 50 19 988.8 -7.9 82.8
+ 06 01 01 18 55 22 988.8 -7.7 82.5
+ 06 01 01 19 00 30 988.9 -7.7 82.3
+ 06 01 01 19 05 19 989.0 -7.4 81.6
+ 06 01 01 19 10 18 989.0 -7.6 83.3
+ 06 01 01 19 15 27 989.1 -7.6 83.6
+ 06 01 01 19 20 19 989.1 -6.9 80.8
+ 06 01 01 19 25 19 989.2 -6.9 80.4
+ 06 01 01 19 30 27 989.4 -7.4 82.5
+ 06 01 01 19 35 19 989.5 -7.4 83.2
+ 06 01 01 19 40 21 989.6 -7.4 83.9
+ 06 01 01 19 45 30 989.8 -7.4 83.9
+ 06 01 01 19 50 20 989.8 -7.4 85.1
+ 06 01 01 19 55 19 989.8 -7.3 85.2
+ 06 01 01 20 00 30 989.9 -7.4 84.9
+ 06 01 01 20 05 19 989.9 -7.5 85.4
+ 06 01 01 20 10 19 989.9 -7.6 86.3
+ 06 01 01 20 15 31 990.1 -7.5 86.3
+ 06 01 01 20 20 19 990.1 -7.5 86.4
+ 06 01 01 20 25 19 990.3 -7.5 86.5
+ 06 01 01 20 30 28 990.3 -7.4 87.1
+ 06 01 01 20 35 20 990.3 -7.5 87.4
+ 06 01 01 20 40 27 990.3 -7.6 88.1
+ 06 01 01 20 45 33 990.4 -7.7 88.5
+ 06 01 01 20 50 21 990.4 -7.7 88.8
+ 06 01 01 20 55 19 990.4 -7.7 88.5
+ 06 01 01 21 00 31 990.5 -7.7 88.7
+ 06 01 01 21 05 20 990.5 -7.7 88.9
+ 06 01 01 21 10 20 990.4 -7.7 89.0
+ 06 01 01 21 15 30 990.4 -7.7 89.0
+ 06 01 01 21 20 21 990.5 -7.7 89.2
+ 06 01 01 21 25 19 990.5 -7.6 89.2
+ 06 01 01 21 30 31 990.6 -7.6 89.4
+ 06 01 01 21 35 19 990.6 -7.7 89.4
+ 06 01 01 21 40 20 990.6 -7.7 89.7
+ 06 01 01 21 45 36 990.7 -7.7 90.0
+ 06 01 01 21 50 19 990.7 -7.7 89.9
+ 06 01 01 21 55 20 990.7 -7.7 90.1
+ 06 01 01 22 00 39 990.8 -7.7 90.7
+ 06 01 01 22 05 19 990.7 -7.7 91.0
+ 06 01 01 22 10 21 990.9 -7.6 91.3
+ 06 01 01 22 15 36 990.8 -7.6 91.4
+ 06 01 01 22 20 20 990.9 -7.5 91.3
+ 06 01 01 22 25 19 990.8 -7.5 91.1
+ 06 01 01 22 30 28 991.0 -7.5 91.2
+ 06 01 01 22 35 19 991.0 -7.5 91.0
+ 06 01 01 22 40 22 991.0 -7.5 91.0
+ 06 01 01 22 45 31 991.0 -7.4 90.9
+ 06 01 01 22 50 20 991.1 -7.5 91.2
+ 06 01 01 22 55 21 991.0 -7.5 91.5
+ 06 01 01 23 00 28 991.0 -7.4 91.6
+ 06 01 01 23 05 19 991.0 -7.4 91.9
+ 06 01 01 23 10 19 991.0 -7.4 91.7
+ 06 01 01 23 15 29 991.1 -7.4 91.8
+ 06 01 01 23 20 22 991.2 -7.3 91.5
+ 06 01 01 23 25 18 991.2 -7.3 91.4
+ 06 01 01 23 30 28 991.2 -7.3 91.5
+ 06 01 01 23 35 20 991.4 -7.3 91.7
+ 06 01 01 23 40 20 991.5 -7.3 91.5
+ 06 01 01 23 45 37 991.5 -7.2 91.3
+ 06 01 01 23 50 19 991.2 -7.2 91.2
+ 06 01 01 23 55 20 991.2 -7.3 91.8
diff --git a/ref/usersguide/arl2800.06n b/ref/usersguide/arl2800.06n
new file mode 100644
index 0000000..6b5dc58
--- /dev/null
+++ b/ref/usersguide/arl2800.06n
@@ -0,0 +1,1261 @@
+ 2.10 N: GPS NAV DATA RINEX VERSION / TYPE
+teqc 2005Sep1 20060102 00:16:12UTCPGM / RUN BY / DATE
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+teqc 2005Sep1 20060101 01:04:05UTCCOMMENT
+ END OF HEADER
+ 2 06 1 1 0 0 0.0-2.326304093003D-05 9.094947017729D-13 0.000000000000D+00
+ 1.890000000000D+02 3.993750000000D+01 4.639121809473D-09 6.083039818682D-01
+ 2.063810825348D-06 9.057537768967D-03 1.138634979725D-05 5.153637769699D+03
+ 0.000000000000D+00-4.656612873077D-08 2.938768693752D+00-9.685754776001D-08
+ 9.523575630009D-01 1.601875000000D+02 1.956177775228D+00-7.952116951876D-09
+ -5.700237437770D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 1.890000000000D+02
+ -7.182000000000D+03 4.000000000000D+00
+ 4 06 1 1 0 0 0.0 1.036943867803D-04 1.239186531166D-11 0.000000000000D+00
+ 1.700000000000D+01 4.831250000000D+01 4.533403120151D-09 2.971490660182D+00
+ 2.533197402954D-06 7.414088584483D-03 1.149438321590D-05 5.153765390396D+03
+ 0.000000000000D+00-1.192092895508D-07 2.958555819405D+00 2.607703208923D-08
+ 9.519508498311D-01 1.546562500000D+02 1.117710915546D-01-7.680319916153D-09
+ -5.682379551060D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 2.730000000000D+02
+ -7.182000000000D+03 4.000000000000D+00
+ 5 06 1 1 0 0 0.0 4.478152841330D-04 2.455635694787D-11 0.000000000000D+00
+ 5.500000000000D+01-1.809375000000D+01 4.822700884850D-09 2.629850744662D+00
+ -9.145587682724D-07 6.785669713281D-03 1.047551631927D-05 5.153681442261D+03
+ 0.000000000000D+00 2.607703208923D-08 7.647900803024D-01-2.607703208923D-08
+ 9.373779387194D-01 1.634375000000D+02 1.039522553864D+00-7.873899408087D-09
+ 8.478924609815D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 5.500000000000D+01
+ -7.182000000000D+03 4.000000000000D+00
+ 7 06 1 1 0 0 0.0 4.596062935889D-04 1.034550223267D-11 0.000000000000D+00
+ 1.390000000000D+02-4.937500000000D+00 5.775597719685D-09-2.777443000449D-01
+ -3.129243850708D-07 1.323019771371D-02 5.140900611877D-06 5.153802551270D+03
+ 0.000000000000D+00-1.452863216400D-07 1.835034496072D+00 6.519258022308D-08
+ 9.350035129579D-01 2.713437500000D+02-1.767496325762D+00-8.766436585843D-09
+ -1.678641350722D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 3.950000000000D+02
+ -7.182000000000D+03 4.000000000000D+00
+10 06 1 1 0 0 0.0 7.635122165084D-05 6.821210263297D-13 0.000000000000D+00
+ 1.900000000000D+01 1.606562500000D+02 4.185174329310D-09 9.050680894788D-01
+ 8.644536137581D-06 6.800486124121D-03 4.909932613373D-06 5.153791082382D+03
+ 0.000000000000D+00 2.421438694000D-08-2.276402079798D+00 1.005828380585D-07
+ 9.756312598495D-01 2.898125000000D+02 3.584659998906D-01-8.034263230741D-09
+ 7.000291590243D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 2.750000000000D+02
+ -7.182000000000D+03 4.000000000000D+00
+13 06 1 1 0 0 0.0 3.232900053263D-05 2.160049916711D-12 0.000000000000D+00
+ 1.000000000000D+01-3.875000000000D+01 4.029810714934D-09 8.568204806865D-01
+ -2.082437276840D-06 2.570443204604D-03-6.388872861862D-07 5.153610073090D+03
+ 0.000000000000D+00-1.303851604462D-08-1.227693629248D+00 2.793967723846D-08
+ 9.903289256891D-01 4.066562500000D+02 1.096221564748D+00-8.224985460802D-09
+ -2.078658013021D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.000000000000D+01
+ -7.182000000000D+03 4.000000000000D+00
+23 06 1 1 0 0 0.0 1.565488055348D-04-1.705302565824D-12 0.000000000000D+00
+ 2.160000000000D+02-2.540625000000D+01 4.600548774180D-09 7.471796743468D-02
+ -1.516193151474D-06 4.178619128652D-03-1.069158315659D-06 5.153605579376D+03
+ 0.000000000000D+00 5.587935447693D-08-1.251068622933D+00-5.215406417847D-08
+ 9.667809053681D-01 4.036250000000D+02 2.423960185226D+00-8.502854178006D-09
+ -2.021512775550D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 2.160000000000D+02
+ -7.182000000000D+03 4.000000000000D+00
+30 06 1 1 0 0 0.0 9.067356586456D-06 5.911715561524D-12 0.000000000000D+00
+ 9.100000000000D+01-1.503125000000D+01 4.750912180276D-09 1.904606627220D+00
+ -7.897615432739D-07 8.715369389392D-03 1.023896038532D-05 5.153604047775D+03
+ 0.000000000000D+00-7.450580596924D-09 8.102562722089D-01-1.639127731323D-07
+ 9.439959372656D-01 1.717812500000D+02 1.296286819503D+00-7.902114869088D-09
+ 8.596786662100D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 9.100000000000D+01
+ -7.182000000000D+03 4.000000000000D+00
+ 6 06 1 1 0 0 0.0 1.708711497486D-04 4.456524038687D-11 0.000000000000D+00
+ 2.340000000000D+02-6.562500000000D+00 5.616662527968D-09-2.374259715916D+00
+ -5.085021257401D-07 5.969253485091D-03 4.690140485764D-06 5.153618103027D+03
+ 0.000000000000D+00 9.685754776001D-08 1.861762091304D+00 2.793967723846D-08
+ 9.334776469766D-01 2.695000000000D+02-1.861144660877D+00-8.313917736616D-09
+ -8.928943354902D-12 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 4.900000000000D+02
+ -6.912000000000D+03 4.000000000000D+00
+29 06 1 1 0 0 0.0 4.813582636416D-04 1.489297574153D-11 0.000000000000D+00
+ 8.300000000000D+01-4.681250000000D+01 4.240533778110D-09 1.176609278934D+00
+ -2.792105078697D-06 9.268648107536D-03-1.069158315659D-06 5.153685407639D+03
+ 0.000000000000D+00 1.434236764908D-07-1.260719930914D+00-2.086162567139D-07
+ 9.852540145959D-01 4.089375000000D+02-1.013845003194D+00-8.323918153174D-09
+ -2.503675716715D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 8.300000000000D+01
+ -4.002000000000D+03 4.000000000000D+00
+26 06 1 1 0 0 0.0-6.916001439095D-06-7.275957614183D-12 0.000000000000D+00
+ 2.600000000000D+01-4.931250000000D+01 4.238747989439D-09-7.911438180413D-01
+ -2.410262823105D-06 1.676177885383D-02-5.699694156647D-07 5.153648019791D+03
+ 0.000000000000D+00 1.974403858185D-07-1.226511525608D+00 2.346932888031D-07
+ 9.885189917381D-01 4.010000000000D+02 7.471339288985D-01-8.434279893041D-09
+ -2.610823036973D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.600000000000D+01
+ -2.382000000000D+03 4.000000000000D+00
+21 06 1 1 0 0 0.0 1.636575907469D-04 3.751665644813D-12 0.000000000000D+00
+ 1.800000000000D+02 6.812500000000D+01 4.619478134092D-09-2.477753618441D+00
+ 3.363937139511D-06 1.051416003611D-02 1.199357211590D-05 5.153747592926D+03
+ 0.000000000000D+00-1.639127731323D-07 2.979692792736D+00-2.328306436539D-07
+ 9.455436285217D-01 1.437812500000D+02-3.028519642479D+00-7.748537043384D-09
+ -5.871673150184D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 4.360000000000D+02
+ -9.420000000000D+02 4.000000000000D+00
+ 2 06 1 1 2 0 0.0-2.325605601072D-05 9.094947017729D-13 0.000000000000D+00
+ 1.900000000000D+02 3.346875000000D+01 4.608049086598D-09 1.658576378158D+00
+ 1.696869730949D-06 9.057753602974D-03 1.131743192673D-05 5.153636875153D+03
+ 7.200000000000D+03 1.583248376846D-07 2.938712105155D+00-6.891787052155D-08
+ 9.523543358036D-01 1.561562500000D+02 1.956108724031D+00-7.754251567131D-09
+ -5.750239520557D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 1.900000000000D+02
+ 1.800000000000D+01 4.000000000000D+00
+ 6 06 1 1 2 0 0.0 1.711919903755D-04 4.456524038687D-11 0.000000000000D+00
+ 2.350000000000D+02-6.500000000000D+00 5.590232855637D-09-1.324028910387D+00
+ -1.173466444016D-07 5.969291320071D-03 4.820525646210D-06 5.153618169785D+03
+ 7.200000000000D+03 4.656612873077D-08 1.861702282824D+00 1.825392246246D-07
+ 9.334769082030D-01 2.702812500000D+02-1.861153041935D+00-8.448923360143D-09
+ -5.785955293977D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 4.910000000000D+02
+ 1.800000000000D+01 4.000000000000D+00
+10 06 1 1 2 0 0.0 7.635634392500D-05 6.821210263297D-13 0.000000000000D+00
+ 1.400000000000D+01 1.542187500000D+02 4.146244136282D-09 1.954778691579D+00
+ 8.162111043930D-06 6.801005452871D-03 6.133690476418D-06 5.153796237946D+03
+ 7.200000000000D+03-1.583248376846D-07-2.276460439989D+00 1.359730958939D-07
+ 9.756321844137D-01 2.712812500000D+02 3.588606381346D-01-7.968189049915D-09
+ 1.864363372504D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 5.260000000000D+02
+ 1.800000000000D+01 4.000000000000D+00
+21 06 1 1 2 0 0.0 1.636850647628D-04 3.751665644813D-12 0.000000000000D+00
+ 1.750000000000D+02 5.715625000000D+01 4.705910305768D-09-1.427870016038D+00
+ 2.682209014893D-06 1.051525014918D-02 1.088902354240D-05 5.153742170334D+03
+ 7.200000000000D+03 1.043081283569D-07 2.979635360036D+00-1.285225152969D-07
+ 9.455400048737D-01 1.615000000000D+02-3.028264086783D+00-7.849969839896D-09
+ -3.803729869188D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 6.870000000000D+02
+ 1.800000000000D+01 4.000000000000D+00
+26 06 1 1 2 0 0.0-6.968155503273D-06-7.275957614183D-12 0.000000000000D+00
+ 2.700000000000D+01-3.306250000000D+01 4.236962200768D-09 2.590407022222D-01
+ -1.566484570503D-06 1.676370657515D-02-5.681067705154D-07 5.153651519775D+03
+ 7.200000000000D+03-1.117587089539D-08-1.226572826264D+00 2.179294824600D-07
+ 9.885167344555D-01 4.003750000000D+02 7.471439513503D-01-8.518926276045D-09
+ -2.792973481413D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.700000000000D+01
+ 1.800000000000D+01 4.000000000000D+00
+29 06 1 1 2 0 0.0 4.814649000764D-04 1.489297574153D-11 0.000000000000D+00
+ 8.400000000000D+01-2.728125000000D+01 4.238747989439D-09 2.226484797252D+00
+ -1.251697540283D-06 9.268199559301D-03-1.311302185059D-06 5.153690629959D+03
+ 7.200000000000D+03 1.937150955200D-07-1.260779009398D+00-4.097819328308D-08
+ 9.852524009972D-01 4.113437500000D+02-1.013550542654D+00-8.221413883460D-09
+ -2.828689254833D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 8.400000000000D+01
+ 1.800000000000D+01 4.000000000000D+00
+27 06 1 1 2 0 0.0 2.961698919535D-05 1.591615728103D-12 0.000000000000D+00
+ 9.700000000000D+01-1.754687500000D+02 4.073741116241D-09-2.447423521608D+00
+ -9.121373295784D-06 1.962492906023D-02 7.338821887970D-06 5.153724266052D+03
+ 7.200000000000D+03 1.974403858185D-07-2.619687912745D-01-1.080334186554D-07
+ 9.569049809448D-01 2.301875000000D+02-1.980317412786D+00-7.551743131842D-09
+ -3.500145795122D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 9.700000000000D+01
+ 5.880000000000D+02 4.000000000000D+00
+ 8 06 1 1 2 0 0.0-5.194917321205D-05-1.477928890381D-12 0.000000000000D+00
+ 1.890000000000D+02-1.536875000000D+02 3.859446475723D-09-1.271873009153D+00
+ -8.175149559975D-06 9.588454966433D-03 9.095296263695D-06 5.153685159683D+03
+ 7.200000000000D+03-1.359730958939D-07-1.622190461715D-01-5.401670932770D-08
+ 9.716523113903D-01 2.110625000000D+02 2.621530066004D+00-7.747822727916D-09
+ 4.785913638228D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.725290298462D-09 4.450000000000D+02
+ 1.548000000000D+03 4.000000000000D+00
+15 06 1 1 2 0 0.0 5.429633893073D-04 5.798028723802D-12 0.000000000000D+00
+ 1.300000000000D+01 6.221875000000D+01 4.416612541069D-09-1.147377361055D+00
+ 2.942979335785D-06 9.258567355573D-03 1.156702637672D-05 5.153724569321D+03
+ 7.200000000000D+03-5.587935447693D-09 3.014847261313D+00-1.508742570877D-07
+ 9.590430722906D-01 1.601875000000D+02 2.538785143140D+00-7.806396596324D-09
+ -4.221604418198D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 2.690000000000D+02
+ 3.348000000000D+03 4.000000000000D+00
+18 06 1 1 2 0 0.0-2.120770514011D-04-2.387423592154D-12 0.000000000000D+00
+ 3.500000000000D+01 1.720312500000D+02 4.442685055665D-09-2.801541629488D+00
+ 8.856877684593D-06 6.688442663290D-03 5.092471837997D-06 5.153657264709D+03
+ 7.200000000000D+03-3.539025783539D-08-2.252528470967D+00-1.117587089539D-07
+ 9.596115008137D-01 2.812187500000D+02-2.691900308201D+00-8.046406593704D-09
+ 2.117945363783D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 2.910000000000D+02
+ 4.368000000000D+03 4.000000000000D+00
+ 6 06 1 1 1 59 44.0 1.711929216981D-04 4.456524038687D-11 0.000000000000D+00
+ 1.500000000000D+01-6.500000000000D+00 5.590947171106D-09-1.326363789084D+00
+ -1.154839992523D-07 5.969291320071D-03 4.820525646210D-06 5.153618143082D+03
+ 7.184000000000D+03 4.656612873077D-08 1.861702405709D+00 1.825392246246D-07
+ 9.334769228322D-01 2.702812500000D+02-1.861151805769D+00-8.448923360143D-09
+ -5.750239520557D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 1.500000000000D+01
+ 6.138000000000D+03 4.000000000000D+00
+ 6 06 1 1 3 59 44.0 1.715132966638D-04 4.456524038687D-11 0.000000000000D+00
+ 1.600000000000D+01-4.562500000000D+00 5.603090534068D-09-2.760971596178D-01
+ -1.639127731323D-07 5.969529040158D-03 4.915520548820D-06 5.153618818283D+03
+ 1.438400000000D+04-6.705522537231D-08 1.861640673492D+00 7.078051567078D-08
+ 9.334760977464D-01 2.718750000000D+02-1.861195819122D+00-8.581071721795D-09
+ -2.785830326729D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 1.600000000000D+01
+ 7.218000000000D+03 4.000000000000D+00
+ 8 06 1 1 4 0 0.0-5.195941776037D-05-1.477928890381D-12 0.000000000000D+00
+ 1.900000000000D+02-1.608750000000D+02 3.935521073107D-09-2.217855973918D-01
+ -8.579343557358D-06 9.588640881702D-03 8.696690201759D-06 5.153684383392D+03
+ 1.440000000000D+04 1.061707735062D-07-1.622738982849D-01-2.011656761169D-07
+ 9.716516574659D-01 2.193125000000D+02 2.621612492660D+00-7.843541000680D-09
+ -1.753644474903D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.725290298462D-09 4.460000000000D+02
+ 7.218000000000D+03 4.000000000000D+00
+10 06 1 1 4 0 0.0 7.636100053787D-05 6.821210263297D-13 0.000000000000D+00
+ 1.500000000000D+01 1.625625000000D+02 4.146244136282D-09 3.005096123801D+00
+ 8.460134267807D-06 6.803155993111D-03 6.953254342079D-06 5.153791395187D+03
+ 1.440000000000D+04-1.024454832077D-07-2.276517531830D+00-7.078051567078D-08
+ 9.756345967656D-01 2.544375000000D+02 3.586480585826D-01-7.788895867348D-09
+ 2.532248335450D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 5.270000000000D+02
+ 7.218000000000D+03 4.000000000000D+00
+15 06 1 1 4 0 0.0 5.430048331618D-04 5.798028723802D-12 0.000000000000D+00
+ 1.400000000000D+01 5.187500000000D+01 4.338752155014D-09-9.724106296059D-02
+ 2.617016434669D-06 9.259482030757D-03 1.120381057262D-05 5.153725851059D+03
+ 1.440000000000D+04 8.940696716309D-08 3.014791170108D+00-1.154839992523D-07
+ 9.590399387201D-01 1.623437500000D+02 2.538797915878D+00-7.845326789351D-09
+ -4.546617956316D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 2.700000000000D+02
+ 7.218000000000D+03 4.000000000000D+00
+18 06 1 1 4 0 0.0-2.120942808688D-04-2.387423592154D-12 0.000000000000D+00
+ 3.600000000000D+01 1.610937500000D+02 4.489115561111D-09-1.751308082451D+00
+ 8.385628461838D-06 6.689206347801D-03 5.312263965607D-06 5.153656736374D+03
+ 1.440000000000D+04 7.450580596924D-08-2.252587125204D+00-3.911554813385D-08
+ 9.596133133692D-01 2.772500000000D+02-2.691941765837D+00-8.086408259934D-09
+ 3.110843864848D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 2.920000000000D+02
+ 7.218000000000D+03 4.000000000000D+00
+21 06 1 1 4 0 0.0 1.637125387788D-04 3.751665644813D-12 0.000000000000D+00
+ 1.760000000000D+02 4.150000000000D+01 4.653408118841D-09-3.775804699593D-01
+ 2.216547727585D-06 1.051676750649D-02 1.072138547897D-05 5.153746318817D+03
+ 1.440000000000D+04 2.104789018631D-07 2.979579157649D+00 6.891787052155D-08
+ 9.455363592818D-01 1.644375000000D+02-3.028414934118D+00-8.014262397626D-09
+ -4.910918845196D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 6.880000000000D+02
+ 7.218000000000D+03 4.000000000000D+00
+26 06 1 1 4 0 0.0-7.020775228739D-06-7.275957614183D-12 0.000000000000D+00
+ 2.800000000000D+01-2.256250000000D+01 4.357324357192D-09 1.309300255554D+00
+ -1.115724444389D-06 1.676361297723D-02-4.265457391739D-07 5.153649858475D+03
+ 1.440000000000D+04-1.620501279831D-07-1.226634135698D+00 2.421438694000D-07
+ 9.885146527231D-01 4.068750000000D+02 7.470768370575D-01-8.477138821144D-09
+ -2.571535686212D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.800000000000D+01
+ 7.218000000000D+03 4.000000000000D+00
+29 06 1 1 4 0 0.0 4.815720021725D-04 1.477928890381D-11 0.000000000000D+00
+ 8.500000000000D+01-1.781250000000D+01 4.307679432139D-09-3.006518239633D+00
+ -7.804483175278D-07 9.269638103433D-03-1.437962055206D-06 5.153688064575D+03
+ 1.440000000000D+04 3.911554813385D-08-1.260839357694D+00 2.235174179077D-07
+ 9.852513842691D-01 4.185625000000D+02-1.013562993550D+00-8.170340327470D-09
+ -3.893019302737D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 8.500000000000D+01
+ 7.218000000000D+03 4.000000000000D+00
+ 9 06 1 1 3 59 44.0 1.796986907721D-06 1.477928890381D-12 0.000000000000D+00
+ 8.000000000000D+00-1.364687500000D+02 4.385539818194D-09-5.615563249264D-01
+ -7.141381502151D-06 1.743819541298D-02 7.981434464455D-06 5.153664836884D+03
+ 1.438400000000D+04-1.601874828339D-07-2.395740404776D-01 2.048909664154D-07
+ 9.590708545679D-01 2.249375000000D+02 1.210948584686D+00-8.316060683022D-09
+ -1.760787629587D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 8.000000000000D+00
+ 7.608000000000D+03 4.000000000000D+00
+22 06 1 1 4 0 0.0 5.924282595515D-05 2.046363078989D-12 0.000000000000D+00
+ 2.340000000000D+02 1.652500000000D+02 4.554832584203D-09 2.812606068058D+00
+ 8.532777428627D-06 4.997756681405D-03 4.917383193970D-06 5.153689331055D+03
+ 1.440000000000D+04 9.313225746155D-08-2.244133341481D+00-2.048909664154D-08
+ 9.571084216475D-01 2.831250000000D+02-1.562916802787D+00-8.068550373224D-09
+ 2.071514858337D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 2.340000000000D+02
+ 8.238000000000D+03 4.000000000000D+00
+ 3 06 1 1 4 0 0.0 6.307568401098D-05 3.069544618484D-12 0.000000000000D+00
+ 9.400000000000D+01-1.281250000000D+00 5.797384341471D-09 1.826971896644D+00
+ -1.005828380585D-07 7.781884400174D-03 4.850327968597D-06 5.153647296906D+03
+ 1.440000000000D+04-1.396983861923D-07 1.804171623493D+00 1.862645149231D-08
+ 9.259435720550D-01 2.675000000000D+02 6.563641776883D-01-8.559285100009D-09
+ -1.785788670980D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.190951585770D-09 3.500000000000D+02
+ 9.048000000000D+03 4.000000000000D+00
+21 06 1 1 3 59 44.0 1.637157984078D-04 3.865352482535D-12 0.000000000000D+00
+ 2.010000000000D+02 4.150000000000D+01 4.654122434309D-09-3.799139252371D-01
+ 2.216547727585D-06 1.051677030046D-02 1.072138547897D-05 5.153746303558D+03
+ 1.438400000000D+04 2.104789018631D-07 2.979579268831D+00 6.891787052155D-08
+ 9.455363782997D-01 1.644375000000D+02-3.028415010190D+00-8.014262397626D-09
+ -4.910918845196D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.010000000000D+02
+ 1.009800000000D+04 4.000000000000D+00
+14 06 1 1 4 0 0.0-2.164766192436D-05 5.684341886081D-13 0.000000000000D+00
+ 1.740000000000D+02-3.959375000000D+01 4.297679015581D-09 2.140528903792D+00
+ -2.125278115273D-06 2.383698592894D-03-8.512288331985D-07 5.153598499298D+03
+ 1.440000000000D+04-1.490116119385D-08-1.240175775876D+00-1.117587089539D-07
+ 9.845494176580D-01 4.079062500000D+02-2.003217790496D+00-8.282130698273D-09
+ -1.542921411727D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-09 4.300000000000D+02
+ 1.291800000000D+04 4.000000000000D+00
+ 3 06 1 1 6 0 0.0 6.309757009149D-05 3.069544618484D-12 0.000000000000D+00
+ 9.500000000000D+01-2.062500000000D+00 5.692022809883D-09 2.877133330597D+00
+ -1.229345798492D-07 7.781535037793D-03 4.714354872704D-06 5.153648210526D+03
+ 2.160000000000D+04-3.166496753693D-08 1.804110357947D+00-7.264316082001D-08
+ 9.259441279639D-01 2.709687500000D+02 6.564083958502D-01-8.427493896091D-09
+ 6.785996949726D-12 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.510000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+ 9 06 1 1 6 0 0.0 1.808162778616D-06 1.477928890381D-12 0.000000000000D+00
+ 9.000000000000D+00-1.486562500000D+02 4.522688388125D-09 4.909717154912D-01
+ -7.651746273041D-06 1.743527059443D-02 7.353723049164D-06 5.153659185410D+03
+ 2.160000000000D+04-2.402812242508D-07-2.396335402817D-01 3.725290298462D-08
+ 9.590693975015D-01 2.416875000000D+02 1.210941262781D+00-8.298559954046D-09
+ -2.875119760278D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 9.000000000000D+00
+ 1.441800000000D+04 4.000000000000D+00
+15 06 1 1 6 0 0.0 5.430467426777D-04 5.798028723802D-12 0.000000000000D+00
+ 1.500000000000D+01 4.315625000000D+01 4.295893226911D-09 9.529537503945D-01
+ 2.248212695122D-06 9.259923361242D-03 1.124665141106D-05 5.153726270676D+03
+ 2.160000000000D+04 2.011656761169D-07 3.014734853613D+00-2.980232238770D-08
+ 9.590368899988D-01 1.608125000000D+02 2.538749761004D+00-7.777109662120D-09
+ -4.760912596834D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 2.710000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+18 06 1 1 6 0 0.0-2.121110446751D-04-2.387423592154D-12 0.000000000000D+00
+ 3.700000000000D+01 1.534062500000D+02 4.453042629957D-09-7.009311782199D-01
+ 8.143484592438D-06 6.688898312859D-03 5.826354026794D-06 5.153658773422D+03
+ 2.160000000000D+04 9.872019290924D-08-2.252645246939D+00 5.029141902924D-08
+ 9.596152649019D-01 2.666875000000D+02-2.692129472856D+00-8.146053601544D-09
+ 2.778687172046D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 2.930000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+21 06 1 1 5 59 44.0 1.637432724237D-04 3.865352482535D-12 0.000000000000D+00
+ 2.020000000000D+02 3.071875000000D+01 4.673766109690D-09 6.702828659833D-01
+ 1.715496182442D-06 1.051514886785D-02 1.115724444389D-05 5.153743061066D+03
+ 2.158400000000D+04 1.322478055954D-07 2.979521822963D+00 2.328306436539D-07
+ 9.455328789997D-01 1.567812500000D+02-3.028473826811D+00-7.966403261244D-09
+ -5.432369137122D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.020000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+22 06 1 1 6 0 0.0 5.925726145506D-05 2.046363078989D-12 0.000000000000D+00
+ 2.350000000000D+02 1.557187500000D+02 4.436256216450D-09-2.420277814149D+00
+ 8.126720786095D-06 4.995241644792D-03 5.647540092468D-06 5.153694185257D+03
+ 2.160000000000D+04 3.352761268616D-08-2.244191864056D+00 8.381903171539D-08
+ 9.571103190523D-01 2.668437500000D+02-1.563048011909D+00-8.048549540109D-09
+ 3.000124967247D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 2.350000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+26 06 1 1 6 0 0.0-7.073394954205D-06-7.275957614183D-12 0.000000000000D+00
+ 2.300000000000D+01-1.806250000000D+01 4.226604626476D-09 2.359502908687D+00
+ -1.231208443642D-06 1.676296431106D-02-9.685754776001D-07 5.153649930954D+03
+ 2.160000000000D+04-1.788139343262D-07-1.226695208139D+00-2.104789018631D-07
+ 9.885151676703D-01 4.159375000000D+02 7.470697053319D-01-8.091408468212D-09
+ -6.000249934494D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.790000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+29 06 1 1 6 0 0.0 4.816786386073D-04 1.477928890381D-11 0.000000000000D+00
+ 8.000000000000D+01-5.718750000000D+00 4.381253925383D-09-1.956450597746D+00
+ -5.587935447693D-08 9.271333343349D-03-8.512288331985D-07 5.153684440613D+03
+ 2.160000000000D+04-1.713633537292D-07-1.260898313293D+00 2.514570951462D-07
+ 9.852505986821D-01 4.108437500000D+02-1.013458462201D+00-8.294274061236D-09
+ -3.428714248282D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 3.360000000000D+02
+ 1.441800000000D+04 4.000000000000D+00
+14 06 1 1 6 0 0.0-2.164347097278D-05 5.684341886081D-13 0.000000000000D+00
+ 1.750000000000D+02-2.668750000000D+01 4.304107854797D-09-3.092644247058D+00
+ -1.283362507820D-06 2.382042352110D-03-8.419156074524D-07 5.153601707458D+03
+ 2.160000000000D+04 8.754432201385D-08-1.240235547783D+00-1.098960638046D-07
+ 9.845483321728D-01 4.063750000000D+02-2.003005161205D+00-8.297845638578D-09
+ -1.160762636137D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-09 4.310000000000D+02
+ 1.447800000000D+04 4.000000000000D+00
+ 5 06 1 1 6 0 0.0 4.483438096941D-04 2.444267011015D-11 0.000000000000D+00
+ 5.200000000000D+01-1.975000000000D+01 4.944491672211D-09-5.026585525578D-01
+ -1.039355993271D-06 6.784440251067D-03 1.028738915920D-05 5.153685565948D+03
+ 2.160000000000D+04 2.793967723846D-08 7.646202750121D-01 8.940696716309D-08
+ 9.373919373825D-01 1.688125000000D+02 1.039375944603D+00-8.143553497405D-09
+ 5.739524788531D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.080000000000D+02
+ 1.711800000000D+04 4.000000000000D+00
+30 06 1 1 6 0 0.0 9.193550795317D-06 5.798028723802D-12 0.000000000000D+00
+ 8.800000000000D+01-1.365625000000D+01 4.783413534088D-09-1.227786912219D+00
+ -7.040798664093D-07 8.713883697055D-03 1.001358032227D-05 5.153609523773D+03
+ 2.160000000000D+04 3.725290298462D-08 8.100895770825D-01 1.862645149231D-07
+ 9.440109760635D-01 1.775312500000D+02 1.296163729576D+00-8.041049227691D-09
+ 5.521658570671D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-8.381903171539D-09 3.440000000000D+02
+ 1.942800000000D+04 4.000000000000D+00
+ 1 06 1 1 6 0 0.0 2.813665196300D-05 2.387423592154D-12 0.000000000000D+00
+ 1.140000000000D+02-4.143750000000D+01 4.259820295757D-09 2.306198546541D+00
+ -2.218410372734D-06 6.316241924651D-03-9.536743164062D-07 5.153676942825D+03
+ 2.160000000000D+04 6.519258022308D-08-1.212929854140D+00-1.136213541031D-07
+ 9.861445016082D-01 4.098125000000D+02-1.721664730567D+00-8.172840431609D-09
+ -1.503634060966D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 1.140000000000D+02
+ 1.957800000000D+04 4.000000000000D+00
+11 06 1 1 5 59 44.0 2.956367097795D-04 3.069544618484D-12 0.000000000000D+00
+ 1.220000000000D+02 1.943750000000D+01 5.833814430359D-09 1.389985274192D+00
+ 9.369105100632D-07 5.158989457414D-03 9.946525096893D-06 5.153694414139D+03
+ 2.158400000000D+04 3.911554813385D-08 2.801679515369D+00 6.705522537231D-08
+ 8.992304143619D-01 1.538750000000D+02 3.126136195549D-01-8.483567660360D-09
+ -6.911002156694D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.220000000000D+02
+ 2.131800000000D+04 4.000000000000D+00
+25 06 1 1 6 0 0.0-8.103018626571D-05-1.288071871386D-10 2.775557561563D-17
+ 4.000000000000D+00-1.622812500000D+02 4.494830084858D-09 1.215593652412D+00
+ -8.800998330116D-06 1.237775618210D-02 7.783994078636D-06 5.153676786423D+03
+ 2.160000000000D+04-5.587935447693D-08-2.932189289911D-01-2.998858690262D-07
+ 9.523560371773D-01 2.281875000000D+02-1.408904939163D+00-8.144982128342D-09
+ -2.346526313668D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 4.000000000000D+00
+ 2.155800000000D+04 4.000000000000D+00
+ 1 06 1 1 8 0 0.0 2.815388143063D-05 2.387423592154D-12 0.000000000000D+00
+ 1.150000000000D+02-2.968750000000D+01 4.250177036933D-09-2.926922735086D+00
+ -1.529231667519D-06 6.314593600109D-03-6.575137376785D-07 5.153680284500D+03
+ 2.880000000000D+04 2.067536115646D-07-1.212989479755D+00 2.048909664154D-08
+ 9.861436150799D-01 4.040625000000D+02-1.721552594970D+00-8.218199463852D-09
+ -2.071514858337D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.259629011154D-09 1.150000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+ 5 06 1 1 8 0 0.0 4.485193639994D-04 2.432898327243D-11 0.000000000000D+00
+ 5.300000000000D+01-2.909375000000D+01 4.971992817744D-09 5.474591767179D-01
+ -1.458451151848D-06 6.783451070078D-03 1.040287315845D-05 5.153683704376D+03
+ 2.880000000000D+04-3.539025783539D-08 7.645619850413D-01 8.381903171539D-08
+ 9.373959984431D-01 1.670312500000D+02 1.039436016408D+00-8.115338036403D-09
+ 5.321650239522D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.090000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+ 9 06 1 1 8 0 0.0 1.818872988224D-06 1.477928890381D-12 0.000000000000D+00
+ 1.000000000000D+01-1.830625000000D+02 4.337323524077D-09 1.540908797791D+00
+ -9.668990969658D-06 1.743717864156D-02 7.387250661850D-06 5.153668207169D+03
+ 2.880000000000D+04-2.980232238770D-07-2.396937525269D-01-2.812594175339D-07
+ 9.590681832794D-01 2.434375000000D+02 1.211192056679D+00-8.100337411567D-09
+ -1.807218135032D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 1.000000000000D+01
+ 2.161800000000D+04 4.000000000000D+00
+11 06 1 1 8 0 0.0 2.956585958600D-04 3.069544618484D-12 0.000000000000D+00
+ 1.230000000000D+02 8.718750000000D+00 5.722024059555D-09 2.442229673812D+00
+ 4.898756742477D-07 5.158379673958D-03 9.981915354729D-06 5.153697237015D+03
+ 2.880000000000D+04-5.960464477539D-08 2.801618078661D+00 2.421438694000D-08
+ 8.992258968709D-01 1.528437500000D+02 3.128798121286D-01-8.415707690862D-09
+ -6.225259307038D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.230000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+14 06 1 1 8 0 0.0-2.163974568248D-05 5.684341886081D-13 0.000000000000D+00
+ 1.760000000000D+02-1.803125000000D+01 4.330180369393D-09-2.042761431705D+00
+ -8.493661880493D-07 2.382376114838D-03-9.331852197647D-07 5.153600351334D+03
+ 2.880000000000D+04 4.097819328308D-08-1.240296029205D+00 7.264316082001D-08
+ 9.845481390676D-01 4.092500000000D+02-2.002664296904D+00-8.281416382805D-09
+ 3.500145795122D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-09 4.320000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+15 06 1 1 8 0 0.0 5.430881865323D-04 5.798028723802D-12 0.000000000000D+00
+ 1.000000000000D+01 3.653125000000D+01 4.223390206869D-09 2.003176495244D+00
+ 2.007931470871D-06 9.259393904358D-03 1.151487231255D-05 5.153724874496D+03
+ 2.880000000000D+04-4.470348358154D-08 3.014680899732D+00 1.378357410431D-07
+ 9.590334389751D-01 1.549375000000D+02 2.538674229080D+00-7.575315542299D-09
+ -6.632419124021D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 5.220000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+18 06 1 1 8 0 0.0-2.121282741427D-04-2.387423592154D-12 0.000000000000D+00
+ 3.800000000000D+01 1.556875000000D+02 4.484115352832D-09 3.491216984344D-01
+ 8.169561624527D-06 6.687414715998D-03 6.668269634247D-06 5.153655689240D+03
+ 2.880000000000D+04 3.352761268616D-08-2.252704006507D+00 9.872019290924D-08
+ 9.596171286595D-01 2.517500000000D+02-2.691990849664D+00-8.166054434659D-09
+ 2.625109346341D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 2.940000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+22 06 1 1 8 0 0.0 5.927123129368D-05 2.046363078989D-12 0.000000000000D+00
+ 2.360000000000D+02 1.591250000000D+02 4.475543567211D-09-1.370512210718D+00
+ 8.450821042061D-06 4.995476105250D-03 6.616115570068D-06 5.153690454483D+03
+ 2.880000000000D+04-5.029141902924D-08-2.244249909720D+00 1.192092895508D-07
+ 9.571121506257D-01 2.516250000000D+02-1.562645195953D+00-8.119981086948D-09
+ 2.928693420408D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 2.360000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+25 06 1 1 8 0 0.0-8.195685222745D-05-1.285798134631D-10 2.775557561563D-17
+ 5.000000000000D+00-1.615312500000D+02 4.461257257843D-09 2.265642122757D+00
+ -8.322298526764D-06 1.237801776733D-02 6.645917892456D-06 5.153679656982D+03
+ 2.880000000000D+04 1.471489667892D-07-2.932760852004D-01-1.024454832077D-07
+ 9.523552018511D-01 2.417500000000D+02-1.408776650025D+00-7.898900449481D-09
+ -2.867976605595D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 5.000000000000D+00
+ 2.161800000000D+04 4.000000000000D+00
+30 06 1 1 8 0 0.0 9.235460311174D-06 5.798028723802D-12 0.000000000000D+00
+ 8.900000000000D+01-2.565625000000D+01 4.896275378094D-09-1.776725988569D-01
+ -1.266598701477D-06 8.712492533959D-03 1.012720167637D-05 5.153606330872D+03
+ 2.880000000000D+04-4.284083843231D-08 8.100310003797D-01 8.568167686462D-08
+ 9.440147123562D-01 1.754062500000D+02 1.296272787193D+00-8.131052976708D-09
+ 5.739524788531D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-8.381903171539D-09 3.450000000000D+02
+ 2.161800000000D+04 4.000000000000D+00
+ 1 06 1 1 7 59 28.0 2.814177423716D-05 2.387423592154D-12 0.000000000000D+00
+ 1.360000000000D+02-2.968750000000D+01 4.250177036933D-09-2.931590069888D+00
+ -1.529231667519D-06 6.314591388218D-03-6.575137376785D-07 5.153680294037D+03
+ 2.876800000000D+04 2.067536115646D-07-1.212989220818D+00 2.048909664154D-08
+ 9.861436355607D-01 4.040625000000D+02-1.721552750039D+00-8.218199463852D-09
+ -2.071514858337D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 1.360000000000D+02
+ 2.503800000000D+04 4.000000000000D+00
+20 06 1 1 8 0 0.0-3.648735582829D-05 1.023181539495D-12 0.000000000000D+00
+ 1.660000000000D+02 1.634375000000D+02 4.422684222550D-09 1.583003611597D-01
+ 8.270144462585D-06 2.525526215322D-03 6.165355443954D-06 5.153577728271D+03
+ 2.880000000000D+04-1.676380634308D-08-2.305478439745D+00 2.793967723846D-08
+ 9.592824583534D-01 2.616250000000D+02 1.353408877038D+00-8.108194881720D-09
+ 2.392956819114D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.660000000000D+02
+ 2.677800000000D+04 4.000000000000D+00
+30 06 1 1 7 59 44.0 9.236857295036D-06 5.798028723802D-12 0.000000000000D+00
+ 1.120000000000D+02-2.565625000000D+01 4.895561062626D-09-1.800066100436D-01
+ -1.266598701477D-06 8.712487760931D-03 1.012720167637D-05 5.153606317520D+03
+ 2.878400000000D+04-4.284083843231D-08 8.100311188761D-01 8.754432201385D-08
+ 9.440147255225D-01 1.754062500000D+02 1.296273078314D+00-8.130695818974D-09
+ 5.743096365873D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.120000000000D+02
+ 2.857800000000D+04 4.000000000000D+00
+ 1 06 1 1 9 59 28.0 2.815900370479D-05 2.387423592154D-12 0.000000000000D+00
+ 1.370000000000D+02-1.296875000000D+01 4.268392081377D-09-1.881686846827D+00
+ -5.103647708893D-07 6.316250306554D-03-9.424984455109D-07 5.153675815582D+03
+ 3.596800000000D+04 1.061707735062D-07-1.213048572868D+00 1.285225152969D-07
+ 9.861439252185D-01 4.085000000000D+02-1.721279684676D+00-8.202484523547D-09
+ 5.035924052165D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 1.370000000000D+02
+ 2.881800000000D+04 4.000000000000D+00
+ 5 06 1 1 10 0 0.0 4.486949183047D-04 2.432898327243D-11 0.000000000000D+00
+ 5.400000000000D+01-3.646875000000D+01 4.893775273955D-09 1.597456395191D+00
+ -1.948326826096D-06 6.784588797018D-03 1.096539199352D-05 5.153686752319D+03
+ 3.600000000000D+04-1.825392246246D-07 7.645031801232D-01 3.725290298462D-09
+ 9.374004062153D-01 1.561250000000D+02 1.039615474032D+00-8.018548290436D-09
+ 6.300262431219D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.100000000000D+02
+ 2.881800000000D+04 4.000000000000D+00
+14 06 1 1 10 0 0.0-2.163602039218D-05 5.684341886081D-13 0.000000000000D+00
+ 1.770000000000D+02-7.312500000000D+00 4.396611707954D-09-9.930484114009D-01
+ -2.849847078323D-07 2.382762613706D-03-7.804483175278D-07 5.153598081589D+03
+ 3.600000000000D+04-5.960464477539D-08-1.240355736744D+00 1.192092895508D-07
+ 9.845479986275D-01 4.077500000000D+02-2.002151513396D+00-8.365705608075D-09
+ 2.500104139373D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-9.313225746155D-09 4.330000000000D+02
+ 2.881800000000D+04 4.000000000000D+00
+20 06 1 1 10 0 0.0-3.647943958640D-05 1.023181539495D-12 0.000000000000D+00
+ 1.670000000000D+02 1.519687500000D+02 4.250177036933D-09 1.208014184605D+00
+ 7.929280400276D-06 2.527653705329D-03 6.664544343948D-06 5.153582426071D+03
+ 3.600000000000D+04-5.960464477539D-08-2.305536918433D+00-5.587935447693D-09
+ 9.592842943156D-01 2.472500000000D+02 1.353931538169D+00-8.081408051655D-09
+ 2.625109346341D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.670000000000D+02
+ 2.881800000000D+04 4.000000000000D+00
+22 06 1 1 10 0 0.0 5.928566679358D-05 2.046363078989D-12 0.000000000000D+00
+ 2.310000000000D+02 1.669375000000D+02 4.425898642158D-09-3.202783535419D-01
+ 8.616596460342D-06 4.996555042453D-03 7.033348083496D-06 5.153692256927D+03
+ 3.600000000000D+04-8.381903171539D-08-2.244308907743D+00 2.793967723846D-08
+ 9.571141445830D-01 2.435000000000D+02-1.562708464234D+00-8.182840848166D-09
+ 3.135844906242D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 4.870000000000D+02
+ 2.881800000000D+04 4.000000000000D+00
+25 06 1 1 10 0 0.0-8.288165554404D-05-1.283524397877D-10 2.775557561563D-17
+ 6.000000000000D+00-1.694062500000D+02 4.568761735836D-09-2.967298911270D+00
+ -8.549541234970D-06 1.237956481054D-02 6.241723895073D-06 5.153676445007D+03
+ 3.600000000000D+04 2.011656761169D-07-2.933338704645D-01 1.043081283569D-07
+ 9.523535604570D-01 2.522187500000D+02-1.408841815711D+00-7.918186967127D-09
+ -1.278624688422D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 6.000000000000D+00
+ 2.881800000000D+04 4.000000000000D+00
+30 06 1 1 9 59 44.0 9.278766810894D-06 5.798028723802D-12 0.000000000000D+00
+ 1.130000000000D+02-3.215625000000D+01 4.855916554130D-09 8.701186400939D-01
+ -1.613050699234D-06 8.713903371245D-03 1.076795160770D-05 5.153609416962D+03
+ 3.598400000000D+04-1.266598701477D-07 8.099724909711D-01 9.126961231232D-08
+ 9.440188831357D-01 1.647500000000D+02 1.296372073980D+00-8.104623304378D-09
+ 6.003821511836D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.130000000000D+02
+ 2.881800000000D+04 4.000000000000D+00
+16 06 1 1 9 59 44.0 2.002110704780D-05 1.477928890381D-12 0.000000000000D+00
+ 6.100000000000D+01-2.237500000000D+01 4.417684014271D-09 1.509725945528D+00
+ -1.182779669762D-06 2.991947578266D-03 1.003406941891D-05 5.153631752014D+03
+ 3.598400000000D+04 8.568167686462D-08 8.518228979800D-01-5.029141902924D-08
+ 9.618278875351D-01 1.821562500000D+02-9.508435846919D-01-7.742465361903D-09
+ 5.278791311418D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 6.100000000000D+01
+ 2.929800000000D+04 4.000000000000D+00
+ 6 06 1 1 10 0 0.0 1.724753528833D-04 4.445155354915D-11 0.000000000000D+00
+ 1.900000000000D+01-1.250000000000D+00 5.575946546269D-09 2.876973323933D+00
+ -1.378357410431D-07 5.969510762952D-03 4.820525646210D-06 5.153618249893D+03
+ 3.600000000000D+04 5.587935447693D-08 1.861457637571D+00-3.166496753693D-08
+ 9.334758870862D-01 2.695625000000D+02-1.861265446708D+00-8.290345326160D-09
+ -7.857470152314D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 1.900000000000D+01
+ 3.028800000000D+04 4.000000000000D+00
+23 06 1 1 10 0 0.0 1.564882695675D-04-1.705302565824D-12 0.000000000000D+00
+ 2.150000000000D+02-1.478125000000D+01 4.689838207729D-09-9.572613302339D-01
+ -9.853392839432D-07 4.180780379102D-03-6.146728992462D-07 5.153609115601D+03
+ 3.600000000000D+04 4.470348358154D-08-1.251378309524D+00-4.656612873077D-08
+ 9.667770652082D-01 3.953750000000D+02 2.423872174611D+00-8.575357198048D-09
+ 6.857428496565D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 4.710000000000D+02
+ 3.181800000000D+04 4.000000000000D+00
+ 1 06 1 1 12 0 0.0 2.817576751113D-05 2.387423592154D-12 0.000000000000D+00
+ 1.380000000000D+02-8.968750000000D+00 4.337680681811D-09-8.268314500373D-01
+ -3.613531589508D-07 6.316528655589D-03-6.929039955139D-07 5.153676027298D+03
+ 4.320000000000D+04-1.490116119385D-07-1.213108918239D+00 9.126961231232D-08
+ 9.861431279281D-01 4.090625000000D+02-1.721289230217D+00-8.459638092168D-09
+ 6.178828801592D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 1.380000000000D+02
+ 3.601800000000D+04 4.000000000000D+00
+ 6 06 1 1 12 0 0.0 1.727952621877D-04 4.445155354915D-11 0.000000000000D+00
+ 2.000000000000D+01-8.750000000000D-01 5.576660861738D-09-2.355992325154D+00
+ -1.005828380585D-07 5.969480844215D-03 4.822388291359D-06 5.153618297577D+03
+ 4.320000000000D+04 7.078051567078D-08 1.861397877367D+00-1.490116119385D-08
+ 9.334753721390D-01 2.694062500000D+02-1.861262686182D+00-8.294274061236D-09
+ -6.750281176306D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 2.000000000000D+01
+ 3.601800000000D+04 4.000000000000D+00
+14 06 1 1 12 0 0.0-2.163182944059D-05 5.684341886081D-13 0.000000000000D+00
+ 1.780000000000D+02-5.312500000000D+00 4.370539193357D-09 5.737101254438D-02
+ -4.153698682785D-07 2.383011509664D-03-9.853392839432D-07 5.153598894119D+03
+ 4.320000000000D+04-6.891787052155D-08-1.240416642412D+00 1.117587089539D-08
+ 9.845480234971D-01 4.128125000000D+02-2.002345206675D+00-8.447851886940D-09
+ 6.321691895271D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-9.313225746155D-09 4.340000000000D+02
+ 3.601800000000D+04 4.000000000000D+00
+16 06 1 1 11 59 44.0 2.003228291869D-05 1.477928890381D-12 0.000000000000D+00
+ 6.200000000000D+01-2.828125000000D+01 4.520188283986D-09 2.560114766690D+00
+ -1.197680830956D-06 2.991766086780D-03 1.034885644913D-05 5.153630994797D+03
+ 4.318400000000D+04 1.676380634308D-07 8.517667350920D-01 5.774199962616D-08
+ 9.618317935263D-01 1.788750000000D+02-9.510252352298D-01-7.763180510486D-09
+ 6.085967790701D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 6.200000000000D+01
+ 3.601800000000D+04 4.000000000000D+00
+20 06 1 1 12 0 0.0-3.647198900580D-05 1.023181539495D-12 0.000000000000D+00
+ 1.680000000000D+02 1.543125000000D+02 4.224461680071D-09 2.259415865877D+00
+ 8.087605237961D-06 2.528136828914D-03 7.892027497292D-06 5.153576797485D+03
+ 4.320000000000D+04 7.078051567078D-08-2.305594662735D+00-2.048909664154D-08
+ 9.592868266268D-01 2.260000000000D+02 1.352766269791D+00-7.945688112660D-09
+ 2.667968274445D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.680000000000D+02
+ 3.601800000000D+04 4.000000000000D+00
+23 06 1 1 12 0 0.0 1.564761623740D-04-1.705302565824D-12 0.000000000000D+00
+ 2.160000000000D+02 7.500000000000D-01 4.681266422108D-09 9.283967057350D-02
+ -2.980232238770D-08 4.178669303656D-03-1.119449734688D-06 5.153605075836D+03
+ 4.320000000000D+04 2.048909664154D-08-1.251440171941D+00 0.000000000000D+00
+ 9.667777469280D-01 4.007812500000D+02 2.423993475389D+00-8.568928358832D-09
+ 1.010756387775D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 4.720000000000D+02
+ 3.601800000000D+04 4.000000000000D+00
+25 06 1 1 12 0 0.0-8.380413055420D-05-1.280113792745D-10 2.775557561563D-17
+ 7.000000000000D+00-1.720625000000D+02 4.599477300977D-09-1.917114886936D+00
+ -8.575618267059D-06 1.237921277061D-02 6.396323442459D-06 5.153677007675D+03
+ 4.320000000000D+04 1.285225152969D-07-2.933907326274D-01 2.980232238770D-07
+ 9.523522189611D-01 2.498750000000D+02-1.408846854001D+00-8.031763126602D-09
+ -1.571494030463D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 7.000000000000D+00
+ 3.601800000000D+04 4.000000000000D+00
+13 06 1 1 12 0 0.0 3.242446109653D-05 2.273736754432D-12 0.000000000000D+00
+ 1.000000000000D+01-1.437500000000D+01 4.106956785521D-09 8.751604175556D-01
+ -9.350478649139D-07 2.571383025497D-03-6.407499313354D-07 5.153609470367D+03
+ 4.320000000000D+04 2.607703208923D-08-1.228053199882D+00 7.450580596924D-08
+ 9.903250606596D-01 4.043125000000D+02 1.096010635368D+00-8.297488480843D-09
+ 5.214502919263D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.660000000000D+02
+ 3.682800000000D+04 4.000000000000D+00
+ 3 06 1 1 12 0 0.0 6.315344944596D-05 3.069544618484D-12 0.000000000000D+00
+ 1.180000000000D+02 3.531250000000D+00 5.917746497895D-09-2.555309964403D-01
+ 1.806765794754D-07 7.780762622133D-03 4.734843969345D-06 5.153646764755D+03
+ 4.320000000000D+04 2.793967723846D-08 1.803926609584D+00 8.754432201385D-08
+ 9.259435106124D-01 2.660625000000D+02 6.565035615971D-01-8.712505767979D-09
+ -2.892977646988D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.180000000000D+02
+ 3.757800000000D+04 4.000000000000D+00
+19 06 1 1 12 0 0.0-2.445233985782D-05 6.821210263297D-13 0.000000000000D+00
+ 1.640000000000D+02-5.531250000000D+00 5.055567727546D-09 1.122114677860D+00
+ -4.898756742477D-07 3.112587961368D-03 5.252659320831D-06 5.153762079239D+03
+ 4.320000000000D+04-2.980232238770D-08 1.950843953967D+00-7.450580596924D-08
+ 9.580067484379D-01 2.780625000000D+02-1.362887712829D+00-8.176769166685D-09
+ -2.000083311498D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 1.640000000000D+02
+ 4.183800000000D+04 4.000000000000D+00
+27 06 1 1 12 0 0.0 2.967566251755D-05 1.591615728103D-12 0.000000000000D+00
+ 9.600000000000D+01-1.685625000000D+02 4.348395413837D-09 2.803129344720D+00
+ -8.780509233475D-06 1.962612092029D-02 7.189810276031D-06 5.153727151871D+03
+ 4.320000000000D+04 9.499490261078D-08-2.622598812510D-01-2.682209014893D-07
+ 9.568969144145D-01 2.390937500000D+02-1.980121845509D+00-7.696392014191D-09
+ -1.507205638307D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 3.520000000000D+02
+ 4.222800000000D+04 4.000000000000D+00
+ 3 06 1 1 14 0 0.0 6.317533552647D-05 3.069544618484D-12 0.000000000000D+00
+ 1.190000000000D+02 4.687500000000D+00 5.965248476543D-09 7.946615991310D-01
+ 4.954636096954D-07 7.780945976265D-03 4.881992936134D-06 5.153647157669D+03
+ 5.040000000000D+04-2.235174179077D-08 1.803864115187D+00 8.568167686462D-08
+ 9.259432736197D-01 2.647500000000D+02 6.565184394739D-01-8.691076303928D-09
+ -5.964534161075D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.190000000000D+02
+ 4.321800000000D+04 4.000000000000D+00
+13 06 1 1 14 0 0.0 3.244075924158D-05 2.273736754432D-12 0.000000000000D+00
+ 1.100000000000D+01 1.937500000000D+00 4.084455848266D-09 1.926193168443D+00
+ 1.136213541031D-07 2.570692915469D-03-5.923211574554D-07 5.153605352402D+03
+ 5.040000000000D+04-3.166496753693D-08-1.228112990807D+00 1.490116119385D-08
+ 9.903258345432D-01 4.046875000000D+02 1.095196828670D+00-8.241771874309D-09
+ 9.678974596714D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.670000000000D+02
+ 4.321800000000D+04 4.000000000000D+00
+16 06 1 1 14 0 0.0 2.004345878959D-05 1.477928890381D-12 0.000000000000D+00
+ 6.300000000000D+01-2.831250000000D+01 4.501258924073D-09-2.670690250409D+00
+ -1.335516571999D-06 2.991350018419D-03 1.081079244614D-05 5.153631818771D+03
+ 5.040000000000D+04-1.676380634308D-08 8.517102957125D-01 1.024454832077D-07
+ 9.618369810338D-01 1.713437500000D+02-9.508652051582D-01-7.684962966697D-09
+ 7.389593520517D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 6.300000000000D+01
+ 4.321800000000D+04 4.000000000000D+00
+19 06 1 1 14 0 0.0-2.444768324494D-05 6.821210263297D-13 0.000000000000D+00
+ 1.650000000000D+02-4.937500000000D+00 5.131285167195D-09 2.172242296462D+00
+ -2.123415470123D-07 3.112539881840D-03 4.883855581284D-06 5.153762109756D+03
+ 5.040000000000D+04 3.911554813385D-08 1.950785437244D+00-4.842877388000D-08
+ 9.580055634742D-01 2.777500000000D+02-1.362884332026D+00-8.112837932264D-09
+ -2.067943280995D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 1.650000000000D+02
+ 4.321800000000D+04 4.000000000000D+00
+23 06 1 1 14 0 0.0 1.564635895193D-04-1.705302565824D-12 0.000000000000D+00
+ 2.170000000000D+02 7.531250000000D+00 4.620906765029D-09 1.142887459199D+00
+ 3.427267074585D-07 4.178815754130D-03-1.259148120880D-06 5.153606103897D+03
+ 5.040000000000D+04 4.097819328308D-08-1.251501810531D+00 2.048909664154D-08
+ 9.667785471442D-01 4.061562500000D+02 2.424169847719D+00-8.549998998920D-09
+ 9.643258823294D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.142041921616D-08 4.730000000000D+02
+ 4.321800000000D+04 4.000000000000D+00
+25 06 1 1 14 0 0.0-8.472520858049D-05-1.277840055991D-10 2.775557561563D-17
+ 2.000000000000D+00-1.711562500000D+02 4.721982403806D-09-8.670050383999D-01
+ -8.897855877876D-06 1.237943838350D-02 7.167458534241D-06 5.153675449371D+03
+ 5.040000000000D+04-1.899898052216D-07-2.934507868774D-01 5.215406417847D-08
+ 9.523496822612D-01 2.417500000000D+02-1.408775305603D+00-8.417850637268D-09
+ -7.928901699153D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 2.580000000000D+02
+ 4.321800000000D+04 4.000000000000D+00
+27 06 1 1 14 0 0.0 2.968730404973D-05 1.591615728103D-12 0.000000000000D+00
+ 9.700000000000D+01-1.737812500000D+02 4.325537318849D-09-2.429924727524D+00
+ -9.141862392426D-06 1.962781278417D-02 6.167218089104D-06 5.153723960876D+03
+ 5.040000000000D+04 2.868473529816D-07-2.623168311889D-01-3.352761268616D-08
+ 9.568964726133D-01 2.501875000000D+02-1.980104357786D+00-7.759966090878D-09
+ 7.821754378894D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 3.530000000000D+02
+ 4.321800000000D+04 4.000000000000D+00
+15 06 1 1 14 0 0.0 5.432162433863D-04 5.798028723802D-12 0.000000000000D+00
+ 3.800000000000D+01 4.400000000000D+01 4.293750280505D-09-1.129649441816D+00
+ 2.123415470123D-06 9.259461075999D-03 1.129321753979D-05 5.153722993851D+03
+ 5.040000000000D+04-8.568167686462D-08 3.014515654357D+00-1.043081283569D-07
+ 9.590184323614D-01 1.634687500000D+02 2.538758244466D+00-7.755680198068D-09
+ -5.910960500945D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 3.800000000000D+01
+ 4.519800000000D+04 4.000000000000D+00
+ 8 06 1 1 13 59 44.0-5.200738087296D-05-1.364242052659D-12 0.000000000000D+00
+ 2.150000000000D+02-1.554687500000D+02 4.099456473103D-09-1.256473654657D+00
+ -8.407980203629D-06 9.589122957550D-03 8.387491106987D-06 5.153684888840D+03
+ 5.038400000000D+04-5.960464477539D-08-1.625561858833D-01-1.136213541031D-07
+ 9.716464509405D-01 2.265625000000D+02 2.621632972051D+00-7.927115910482D-09
+ 9.214669542259D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 2.150000000000D+02
+ 4.702800000000D+04 4.000000000000D+00
+28 06 1 1 14 0 0.0 3.594672307372D-05-5.684341886081D-13 0.000000000000D+00
+ 1.570000000000D+02-2.093750000000D+01 4.423041380284D-09 2.672337101178D+00
+ -1.138076186180D-06 1.076711760834D-02 1.067668199539D-05 5.153661111832D+03
+ 5.040000000000D+04 1.676380634308D-08 8.615030312992D-01-2.048909664154D-07
+ 9.598708410791D-01 1.733750000000D+02-2.304416330498D+00-7.584958801122D-09
+ 6.621704391995D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 1.570000000000D+02
+ 4.999800000000D+04 4.000000000000D+00
+11 06 1 1 14 0 0.0 2.957247197628D-04 3.069544618484D-12 0.000000000000D+00
+ 1.260000000000D+02-5.062500000000D+00 5.937747331010D-09-6.910214911102D-01
+ -3.762543201447D-07 5.160512169823D-03 9.479001164436D-06 5.153689344406D+03
+ 5.040000000000D+04 1.415610313416D-07 2.801437003050D+00-1.862645149231D-08
+ 8.992108434438D-01 1.645937500000D+02 3.134779817762D-01-8.583214668200D-09
+ -8.475353032473D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.260000000000D+02
+ 5.011800000000D+04 4.000000000000D+00
+ 3 06 1 1 16 0 0.0 6.319722160697D-05 3.069544618484D-12 0.000000000000D+00
+ 1.200000000000D+02 4.968750000000D+00 5.995606883950D-09 1.844867925651D+00
+ 2.607703208923D-07 7.780981715769D-03 5.133450031281D-06 5.153647195816D+03
+ 5.760000000000D+04-1.937150955200D-07 1.803801079510D+00 4.470348358154D-08
+ 9.259433672465D-01 2.643125000000D+02 6.565201847352D-01-8.602501185847D-09
+ 4.821629411647D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.190951585770D-09 1.200000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+ 8 06 1 1 16 0 0.0-5.201762542129D-05-1.364242052659D-12 0.000000000000D+00
+ 2.160000000000D+02-1.585937500000D+02 4.092670476153D-09-2.040940887209D-01
+ -8.400529623032D-06 9.588733315468D-03 7.506459951401D-06 5.153682790756D+03
+ 5.760000000000D+04 1.173466444016D-07-1.626128871252D-01-1.545995473862D-07
+ 9.716465928435D-01 2.384062500000D+02 2.621759157512D+00-7.998190299587D-09
+ -3.107272287506D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 2.160000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+11 06 1 1 16 0 0.0 2.957466058433D-04 3.069544618484D-12 0.000000000000D+00
+ 1.210000000000D+02-1.406250000000D+00 6.030965499635D-09 3.591509673937D-01
+ -7.450580596924D-08 5.161200300790D-03 8.963048458099D-06 5.153690620422D+03
+ 5.760000000000D+04 7.264316082001D-08 2.801374984101D+00 3.539025783539D-08
+ 8.992044885277D-01 1.684375000000D+02 3.134872464364D-01-8.631430962317D-09
+ -8.603929816784D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 3.770000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+13 06 1 1 16 0 0.0 3.245659172535D-05 2.273736754432D-12 0.000000000000D+00
+ 1.200000000000D+01 4.687500000000D+00 4.041239762429D-09 2.976126295012D+00
+ 2.495944499969D-07 2.570117823780D-03-8.437782526016D-07 5.153607055664D+03
+ 5.760000000000D+04-3.725290298462D-08-1.228172329690D+00 1.490116119385D-08
+ 9.903265294293D-01 4.114375000000D+02 1.095482276171D+00-8.241414716575D-09
+ 9.500395729616D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 2.680000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+15 06 1 1 16 0 0.0 5.432581529021D-04 5.798028723802D-12 0.000000000000D+00
+ 3.900000000000D+01 3.406250000000D+01 4.331966158064D-09-7.951252637016D-02
+ 1.583248376846D-06 9.260350838304D-03 1.121126115322D-05 5.153724258423D+03
+ 5.760000000000D+04 1.080334186554D-07 3.014460385312D+00-1.583248376846D-07
+ 9.590135111050D-01 1.657812500000D+02 2.538770513959D+00-7.836397845996D-09
+ -7.350306169755D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 3.900000000000D+01
+ 5.041800000000D+04 4.000000000000D+00
+19 06 1 1 16 0 0.0-2.444302663207D-05 6.821210263297D-13 0.000000000000D+00
+ 1.660000000000D+02-3.656250000000D+00 5.210931341921D-09-3.060853700088D+00
+ 9.313225746155D-09 3.112369799055D-03 5.194917321205D-06 5.153762508392D+03
+ 5.760000000000D+04 9.126961231232D-08 1.950726446535D+00 6.332993507385D-08
+ 9.580043170680D-01 2.767500000000D+02-1.362841954215D+00-8.131410134442D-09
+ -1.107188976008D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 1.660000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+27 06 1 1 16 0 0.0 2.969894558191D-05 1.591615728103D-12 0.000000000000D+00
+ 9.800000000000D+01-1.595625000000D+02 4.432327481373D-09-1.379868224296D+00
+ -7.893890142441D-06 1.962857379112D-02 6.169080734253D-06 5.153720228195D+03
+ 5.760000000000D+04 4.023313522339D-07-2.623721646024D-01 3.892928361893D-07
+ 9.568954851436D-01 2.510000000000D+02-1.980011370324D+00-8.064621638148D-09
+ -9.357532635937D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 3.540000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+28 06 1 1 16 0 0.0 3.594206646085D-05-5.684341886081D-13 0.000000000000D+00
+ 1.580000000000D+02-3.221875000000D+01 4.476615040414D-09-2.560644206984D+00
+ -1.778826117516D-06 1.076861564070D-02 1.066550612450D-05 5.153658348083D+03
+ 5.760000000000D+04 2.048909664154D-07 8.614478163822D-01-1.434236764908D-07
+ 9.598756818750D-01 1.720937500000D+02-2.304430782666D+00-7.635675199378D-09
+ 7.653890243822D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 1.580000000000D+02
+ 5.041800000000D+04 4.000000000000D+00
+29 06 1 1 16 0 0.0 4.822122864425D-04 1.477928890381D-11 0.000000000000D+00
+ 8.500000000000D+01 8.250000000000D+00 4.114457097939D-09-2.989212446868D+00
+ 4.470348358154D-07 9.272614726797D-03-1.246109604836D-06 5.153689022064D+03
+ 5.760000000000D+04 6.146728992462D-08-1.261200856455D+00 1.601874828339D-07
+ 9.852523117592D-01 4.123437500000D+02-1.013021672899D+00-8.144624970608D-09
+ 1.160762636137D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.519258022308D-09 3.410000000000D+02
+ 5.299800000000D+04 4.000000000000D+00
+26 06 1 1 16 0 0.0-7.336493581533D-06-7.275957614183D-12 0.000000000000D+00
+ 2.800000000000D+01 1.812500000000D+00 4.162316234321D-09 1.327234689086D+00
+ -1.862645149231D-08 1.676407700870D-02-2.961605787277D-07 5.153651126862D+03
+ 5.760000000000D+04-1.639127731323D-07-1.226994374886D+00 1.750886440277D-07
+ 9.885145342267D-01 4.019687500000D+02 7.471173306300D-01-8.441065889990D-09
+ -9.714690370134D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 2.840000000000D+02
+ 5.473800000000D+04 4.000000000000D+00
+17 06 1 1 16 0 0.0 1.597870141268D-05 1.057287590811D-11 0.000000000000D+00
+ 2.300000000000D+02 3.250000000000D+00 5.082354557610D-09-2.439352434329D+00
+ 1.657754182816D-07 1.755878212862D-03 5.299225449562D-06 5.153625446320D+03
+ 5.760000000000D+04-5.029141902924D-08 1.890758491075D+00-7.450580596924D-09
+ 9.599443717305D-01 2.765000000000D+02 2.678206983900D+00-8.102480357972D-09
+ -1.464346710204D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 2.300000000000D+02
+ 5.527800000000D+04 4.000000000000D+00
+ 8 06 1 1 18 0 0.0-5.202786996961D-05-1.364242052659D-12 0.000000000000D+00
+ 2.170000000000D+02-1.686875000000D+02 4.011595670490D-09 8.461148315532D-01
+ -8.767470717430D-06 9.589553810656D-03 7.564201951027D-06 5.153684061050D+03
+ 6.480000000000D+04 2.458691596985D-07-1.626703827315D-01-3.725290298462D-08
+ 9.716464099788D-01 2.393437500000D+02 2.621721000220D+00-7.957831475623D-09
+ -6.500270762369D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 2.170000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+11 06 1 1 18 0 0.0 2.957684919238D-04 3.069544618484D-12 0.000000000000D+00
+ 1.220000000000D+02 3.843750000000D+00 6.074538743207D-09 1.409198698965D+00
+ 4.060566425323D-07 5.161850363947D-03 9.393319487572D-06 5.153692419052D+03
+ 6.480000000000D+04 6.705522537231D-08 2.801312735474D+00 1.117587089539D-07
+ 8.991983252538D-01 1.642500000000D+02 3.136205665497D-01-8.625716438570D-09
+ -8.268201546639D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 3.780000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+17 06 1 1 18 0 0.0 1.605506986380D-05 1.057287590811D-11 0.000000000000D+00
+ 2.310000000000D+02 1.250000000000D-01 5.155214735386D-09-1.389367521923D+00
+ 1.080334186554D-07 1.756091252901D-03 5.347654223442D-06 5.153624589920D+03
+ 6.480000000000D+04 1.862645149231D-08 1.890699624714D+00-5.960464477539D-08
+ 9.599442254387D-01 2.754062500000D+02 2.678437321814D+00-8.160697068646D-09
+ 3.643008888800D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 2.310000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+19 06 1 1 18 0 0.0-2.443883568048D-05 6.821210263297D-13 0.000000000000D+00
+ 1.610000000000D+02-2.093750000000D+00 5.234146594644D-09-2.010757948231D+00
+ 9.313225746155D-09 3.112555481493D-03 5.237758159637D-06 5.153762102127D+03
+ 6.480000000000D+04 1.303851604462D-08 1.950667872758D+00 9.313225746155D-08
+ 9.580036924020D-01 2.768750000000D+02-1.362805815750D+00-8.127124241632D-09
+ -8.214627886510D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 4.170000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+26 06 1 1 18 0 0.0-7.389113306999D-06-7.275957614183D-12 0.000000000000D+00
+ 2.300000000000D+01 1.125000000000D+01 4.023381875719D-09 2.377482727790D+00
+ 3.445893526077D-07 1.676374883391D-02-5.401670932770D-07 5.153649625778D+03
+ 6.480000000000D+04-1.396983861923D-07-1.227055140115D+00-2.123415470123D-07
+ 9.885158581676D-01 4.069062500000D+02 7.470628354686D-01-8.104980462112D-09
+ 6.285976121851D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 5.350000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+27 06 1 1 18 0 0.0 2.971058711410D-05 1.591615728103D-12 0.000000000000D+00
+ 9.900000000000D+01-1.583125000000D+02 4.525545649999D-09-3.297404257551D-01
+ -8.154660463333D-06 1.962845202070D-02 6.999820470810D-06 5.153719348907D+03
+ 6.480000000000D+04-9.313225746155D-08-2.624326313953D-01 2.980232238770D-07
+ 9.568930274412D-01 2.466562500000D+02-1.979986009176D+00-8.504639966677D-09
+ -6.178828801592D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-4.656612873077D-09 9.900000000000D+01
+ 5.761800000000D+04 4.000000000000D+00
+28 06 1 1 18 0 0.0 3.593787550926D-05-5.684341886081D-13 0.000000000000D+00
+ 1.590000000000D+02-3.096875000000D+01 4.425184326689D-09-1.510447720050D+00
+ -1.557171344757D-06 1.076836010907D-02 1.064501702785D-05 5.153658678055D+03
+ 6.480000000000D+04 2.328306436539D-07 8.613926117055D-01 2.421438694000D-08
+ 9.598815745090D-01 1.690625000000D+02-2.304437724212D+00-7.656747505696D-09
+ 8.236057350562D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 1.590000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+29 06 1 1 18 0 0.0 4.823184572160D-04 1.477928890381D-11 0.000000000000D+00
+ 8.000000000000D+01 2.178125000000D+01 4.160530445650D-09-1.939179079689D+00
+ 1.417472958565D-06 9.274613577873D-03-3.539025783539D-07 5.153684608459D+03
+ 6.480000000000D+04-1.285225152969D-07-1.261259683317D+00 2.421438694000D-07
+ 9.852524083118D-01 4.017500000000D+02-1.012884784728D+00-8.301060058185D-09
+ 9.964700784071D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.519258022308D-09 5.920000000000D+02
+ 5.761800000000D+04 4.000000000000D+00
+24 06 1 1 18 0 0.0 7.398659363389D-05 2.955857780762D-12 0.000000000000D+00
+ 2.350000000000D+02 2.690625000000D+01 4.371967824294D-09 1.596219347274D+00
+ 1.326203346252D-06 9.031775523908D-03 1.044757664204D-05 5.153759006500D+03
+ 6.480000000000D+04 1.974403858185D-07 2.990362813963D+00-7.078051567078D-08
+ 9.621943792352D-01 1.706875000000D+02-9.970532666764D-01-7.656747505696D-09
+ -8.618216126152D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 7.470000000000D+02
+ 5.770800000000D+04 4.000000000000D+00
+29 06 1 1 17 59 44.0 4.823217168450D-04 1.477928890381D-11 0.000000000000D+00
+ 1.050000000000D+02 2.178125000000D+01 4.160530445650D-09-1.941512381361D+00
+ 1.417472958565D-06 9.274608572014D-03-3.539025783539D-07 5.153684593201D+03
+ 6.478400000000D+04-1.285225152969D-07-1.261259580913D+00 2.421438694000D-07
+ 9.852523922197D-01 4.017500000000D+02-1.012885113885D+00-8.301060058185D-09
+ 1.003613233091D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.050000000000D+02
+ 5.887800000000D+04 4.000000000000D+00
+ 7 06 1 1 18 0 0.0 4.602731205523D-04 1.023181539495D-11 0.000000000000D+00
+ 1.660000000000D+02 3.343750000000D+00 5.649878197248D-09 2.890145619720D+00
+ 1.993030309677D-07 1.323176978622D-02 4.885718226433D-06 5.153803140640D+03
+ 6.480000000000D+04 1.713633537292D-07 1.834485427807D+00-1.825392246246D-07
+ 9.350044462996D-01 2.675937500000D+02-1.767580000288D+00-8.221413883460D-09
+ 5.678807973718D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 1.660000000000D+02
+ 5.929800000000D+04 4.000000000000D+00
+20 06 1 1 18 0 0.0-3.644870594144D-05 1.023181539495D-12 0.000000000000D+00
+ 1.650000000000D+02 1.736562500000D+02 4.259463138023D-09-8.729847833432D-01
+ 8.903443813324D-06 2.526760101318D-03 7.547438144684D-06 5.153582313538D+03
+ 6.480000000000D+04 3.725290298462D-09-2.305764823514D+00 4.656612873077D-08
+ 9.592892360529D-01 2.324375000000D+02 1.352688129484D+00-8.048549540109D-09
+ 4.893060958486D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 4.210000000000D+02
+ 6.088800000000D+04 4.000000000000D+00
+ 4 06 1 1 18 0 0.0 1.044957898557D-04 1.239186531166D-11 0.000000000000D+00
+ 3.900000000000D+01 1.940625000000D+01 4.690552523197D-09-1.447009196255D-01
+ 8.977949619293D-07 7.417278364301D-03 1.061148941517D-05 5.153755966187D+03
+ 6.480000000000D+04 1.043081283569D-07 2.958050777660D+00-1.676380634308D-08
+ 9.519091771467D-01 1.696250000000D+02 1.127422365553D-01-7.990689987169D-09
+ -8.125338452961D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.950000000000D+02
+ 6.277800000000D+04 4.000000000000D+00
+ 9 06 1 1 18 0 0.0 1.873821020126D-06 1.477928890381D-12 0.000000000000D+00
+ 9.000000000000D+00-1.448750000000D+02 4.476972198148D-09 5.086778943047D-01
+ -7.744878530502D-06 1.743859110866D-02 6.468966603279D-06 5.153658977509D+03
+ 6.480000000000D+04-2.551823854446D-07-2.399814324414D-01-9.313225746155D-09
+ 9.590637959881D-01 2.586250000000D+02 1.211168638287D+00-8.352133614175D-09
+ -1.996511734156D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-5.587935447693D-09 2.650000000000D+02
+ 6.331800000000D+04 4.000000000000D+00
+ 4 06 1 1 20 0 0.0 1.045847311616D-04 1.227817847393D-11 0.000000000000D+00
+ 4.000000000000D+01 2.512500000000D+01 4.722696719275D-09 9.053806170568D-01
+ 1.506879925728D-06 7.418139022775D-03 1.025758683681D-05 5.153757753372D+03
+ 7.200000000000D+04 7.636845111847D-08 2.957993618524D+00 5.029141902924D-08
+ 9.519034351932D-01 1.729687500000D+02 1.127920298979D-01-7.937116327040D-09
+ -8.450351991079D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.960000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+ 7 06 1 1 20 0 0.0 4.603471606970D-04 1.023181539495D-11 0.000000000000D+00
+ 1.670000000000D+02 4.156250000000D+00 5.653092616856D-09-2.342936638567D+00
+ 3.054738044739D-07 1.323194603901D-02 4.814937710762D-06 5.153802778244D+03
+ 7.200000000000D+04 1.844018697739D-07 1.834425215562D+00 6.146728992462D-08
+ 9.350056239487D-01 2.689062500000D+02-1.767572407743D+00-8.223199672131D-09
+ 2.414386283166D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 1.670000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+ 8 06 1 1 20 0 0.0-5.203764885664D-05-1.364242052659D-12 0.000000000000D+00
+ 2.180000000000D+02-1.677500000000D+02 3.941949912322D-09 1.896235902134D+00
+ -8.519738912582D-06 9.588978951797D-03 8.072704076767D-06 5.153684745789D+03
+ 7.200000000000D+04 1.862645149231D-08-1.627258170863D-01 1.415610313416D-07
+ 9.716459433079D-01 2.292187500000D+02 2.621770596069D+00-7.767823561031D-09
+ -2.328668426958D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 2.180000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+ 9 06 1 1 20 0 0.0 1.884531229734D-06 1.477928890381D-12 0.000000000000D+00
+ 1.000000000000D+01-1.752500000000D+02 4.255891560681D-09 1.558640545486D+00
+ -9.223818778992D-06 1.744005107321D-02 6.251037120819D-06 5.153666854858D+03
+ 7.200000000000D+04-2.253800630569D-07-2.400418480322D-01-2.831220626831D-07
+ 9.590628187588D-01 2.636562500000D+02 1.211393752121D+00-8.210699151434D-09
+ -1.525063525017D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-5.587935447693D-09 2.660000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+11 06 1 1 20 0 0.0 2.957908436656D-04 3.069544618484D-12 0.000000000000D+00
+ 1.230000000000D+02-4.906250000000D+00 6.015607717065D-09 2.459162611182D+00
+ -2.644956111908D-07 5.161337787285D-03 9.495764970779D-06 5.153694730759D+03
+ 7.200000000000D+04-1.136213541031D-07 2.801250233762D+00 2.980232238770D-08
+ 8.991932723348D-01 1.636562500000D+02 3.138370491671D-01-8.497139654259D-09
+ -6.978862126191D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 3.790000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+17 06 1 1 20 0 0.0 1.613097265363D-05 1.057287590811D-11 0.000000000000D+00
+ 2.320000000000D+02-3.437500000000D-01 5.174858410767D-09-3.391353032152D-01
+ 4.470348358154D-08 1.756142475642D-03 5.437061190605D-06 5.153624696732D+03
+ 7.200000000000D+04 1.490116119385D-08 1.890640695448D+00-5.587935447693D-09
+ 9.599446774804D-01 2.751875000000D+02 2.678420777673D+00-8.158554122241D-09
+ 7.357449324439D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 2.320000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+20 06 1 1 20 0 0.0-3.644078969955D-05 1.023181539495D-12 0.000000000000D+00
+ 1.660000000000D+02 1.569687500000D+02 4.346609625166D-09 1.768349831668D-01
+ 8.178874850273D-06 2.524713403545D-03 7.418915629387D-06 5.153577999115D+03
+ 7.200000000000D+04-4.470348358154D-08-2.305822528318D+00 3.166496753693D-08
+ 9.592895476544D-01 2.354375000000D+02 1.353105195725D+00-8.028905864728D-09
+ 1.500062483624D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 4.220000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+24 06 1 1 20 0 0.0 7.400801405311D-05 2.955857780762D-12 0.000000000000D+00
+ 2.360000000000D+02 3.465625000000D+01 4.450185368083D-09 2.646235203324D+00
+ 2.065673470497D-06 9.031393914483D-03 1.081265509129D-05 5.153760999680D+03
+ 7.200000000000D+04 2.551823854446D-07 2.990307278667D+00 1.005828380585D-07
+ 9.621882905702D-01 1.683437500000D+02-9.969417718379D-01-7.666033606785D-09
+ -7.657461821164D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 7.480000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+28 06 1 1 20 0 0.0 3.593321889639D-05-5.684341886081D-13 0.000000000000D+00
+ 1.540000000000D+02-2.490625000000D+01 4.540546274835D-09-4.603321310238D-01
+ -1.136213541031D-06 1.076819666196D-02 1.119449734688D-05 5.153657218933D+03
+ 7.200000000000D+04-3.166496753693D-08 8.613366726440D-01 2.160668373108D-07
+ 9.598858374523D-01 1.654062500000D+02-2.304362854991D+00-7.983546832485D-09
+ 7.703892326610D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 4.100000000000D+02
+ 6.481800000000D+04 4.000000000000D+00
+ 2 06 1 1 20 0 0.0-2.319412305951D-05 9.094947017729D-13 0.000000000000D+00
+ 1.870000000000D+02 2.315625000000D+01 4.711624829515D-09-1.455931178132D+00
+ 1.244246959686D-06 9.060698444955D-03 1.060776412487D-05 5.153632745743D+03
+ 7.200000000000D+04-2.142041921616D-07 2.938208633120D+00 3.725290298462D-08
+ 9.523093525356D-01 1.713750000000D+02 1.956089210167D+00-7.968189049915D-09
+ -7.725321790661D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.722946763039D-08 6.990000000000D+02
+ 6.736800000000D+04 4.000000000000D+00
+ 5 06 1 1 20 0 0.0 4.495652392507D-04 2.410160959698D-11 0.000000000000D+00
+ 7.900000000000D+01-4.000000000000D+01 4.936991359792D-09 5.653613763135D-01
+ -2.283602952957D-06 6.783682270907D-03 1.091510057449D-05 5.153684661865D+03
+ 7.200000000000D+04-2.421438694000D-08 7.642144805549D-01 7.450580596924D-08
+ 9.374244097751D-01 1.586875000000D+02 1.039411073655D+00-8.128552872569D-09
+ 6.350264514006D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 7.900000000000D+01
+ 6.949800000000D+04 4.000000000000D+00
+ 2 06 1 1 19 59 44.0-2.319272607565D-05 1.023181539495D-12 0.000000000000D+00
+ 2.120000000000D+02 2.315625000000D+01 4.711624829515D-09-1.458265097155D+00
+ 1.244246959686D-06 9.060697746463D-03 1.060776412487D-05 5.153632755280D+03
+ 7.198400000000D+04-2.142041921616D-07 2.938208753080D+00 3.725290298462D-08
+ 9.523093481468D-01 1.713750000000D+02 1.956089191149D+00-7.968189049915D-09
+ -7.725321790661D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.120000000000D+02
+ 7.096800000000D+04 4.000000000000D+00
+ 2 06 1 1 21 59 44.0-2.318574115634D-05 1.023181539495D-12 0.000000000000D+00
+ 2.130000000000D+02 1.993750000000D+01 4.827343935394D-09-4.081075340826D-01
+ 1.145526766777D-06 9.060093318112D-03 1.042522490025D-05 5.153631374359D+03
+ 7.918400000000D+04-3.166496753693D-08 2.938150022770D+00-6.332993507385D-08
+ 9.523039397387D-01 1.765312500000D+02 1.956139998294D+00-8.091051310478D-09
+ -6.453840256923D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.130000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+ 4 06 1 1 22 0 0.0 1.046736724675D-04 1.227817847393D-11 0.000000000000D+00
+ 4.100000000000D+01 2.409375000000D+01 4.765555647378D-09 1.955388315875D+00
+ 1.471489667892D-06 7.418174529448D-03 1.092441380024D-05 5.153759485245D+03
+ 7.920000000000D+04-1.303851604462D-08 2.957935887388D+00 1.993030309677D-07
+ 9.518976961656D-01 1.666250000000D+02 1.129154533704D-01-7.912829601114D-09
+ -7.221729385445D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 2.970000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+ 5 06 1 1 22 0 0.0 4.497389309108D-04 2.410160959698D-11 0.000000000000D+00
+ 8.000000000000D+01-5.131250000000D+01 4.741983236921D-09 1.615278693127D+00
+ -2.605840563774D-06 6.785125588067D-03 1.140125095844D-05 5.153688858032D+03
+ 7.920000000000D+04-1.564621925354D-07 7.641556229718D-01-5.587935447693D-09
+ 9.374295138963D-01 1.455312500000D+02 1.039668693529D+00-8.038549123551D-09
+ 7.236015694813D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 8.000000000000D+01
+ 7.201800000000D+04 4.000000000000D+00
+ 7 06 1 1 22 0 0.0 4.604212008417D-04 1.023181539495D-11 0.000000000000D+00
+ 1.620000000000D+02 5.812500000000D+00 5.758096990709D-09-1.292838123257D+00
+ 6.686896085739D-07 1.323204813525D-02 5.075708031654D-06 5.153802438736D+03
+ 7.920000000000D+04-7.450580596924D-09 1.834365888382D+00 3.781169652939D-07
+ 9.350057219642D-01 2.688750000000D+02-1.767560796562D+00-8.548570367983D-09
+ 1.482204596914D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 4.180000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+ 9 06 1 1 22 0 0.0 1.895707100630D-06 1.477928890381D-12 0.000000000000D+00
+ 1.100000000000D+01-1.913437500000D+02 4.200889269614D-09 2.608918911945D+00
+ -9.760260581970D-06 1.744186575525D-02 6.472691893578D-06 5.153662523270D+03
+ 7.920000000000D+04 2.011656761169D-07-2.400989252440D-01-1.136213541031D-07
+ 9.590634799978D-01 2.513125000000D+02 1.211298359622D+00-7.792467444690D-09
+ -1.932223342001D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-5.587935447693D-09 2.670000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+17 06 1 1 22 0 0.0 1.620687544346D-05 1.057287590811D-11 0.000000000000D+00
+ 2.270000000000D+02-1.687500000000D+00 5.179144303577D-09 7.109670215331D-01
+ -5.960464477539D-08 1.756760291755D-03 5.207955837250D-06 5.153625919342D+03
+ 7.920000000000D+04-1.490116119385D-08 1.890581896382D+00 1.303851604462D-08
+ 9.599450402841D-01 2.796562500000D+02 2.678533766151D+00-8.191769791521D-09
+ 6.785996949726D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 4.830000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+20 06 1 1 22 0 0.0-3.643333911896D-05 1.023181539495D-12 0.000000000000D+00
+ 1.670000000000D+02 1.430625000000D+02 4.275892393796D-09 1.226459910932D+00
+ 7.389113306999D-06 2.526768483222D-03 8.067116141319D-06 5.153582849503D+03
+ 7.920000000000D+04-7.823109626770D-08-2.305880414523D+00-1.303851604462D-08
+ 9.592897290563D-01 2.232187500000D+02 1.353716581375D+00-8.003904823334D-09
+ 3.035840740667D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 4.230000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+24 06 1 1 22 0 0.0 7.402943447232D-05 2.955857780762D-12 0.000000000000D+00
+ 2.370000000000D+02 2.834375000000D+01 4.428755904031D-09-2.586798727464D+00
+ 1.585111021996D-06 9.030613233335D-03 1.091510057449D-05 5.153762472153D+03
+ 7.920000000000D+04 2.793967723846D-08 2.990251652670D+00 1.676380634308D-07
+ 9.621836984703D-01 1.691562500000D+02-9.969658968199D-01-7.583173012451D-09
+ -6.185971956276D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 2.370000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+28 06 1 1 22 0 0.0 3.592902794480D-05-5.684341886081D-13 0.000000000000D+00
+ 1.550000000000D+02-1.546875000000D+01 4.431970323639D-09 5.898644100375D-01
+ -8.195638656616D-07 1.076952123549D-02 1.118332147598D-05 5.153659757614D+03
+ 7.920000000000D+04-2.123415470123D-07 8.612797870745D-01 1.471489667892D-07
+ 9.598912955997D-01 1.655625000000D+02-2.304369901867D+00-7.932830434229D-09
+ 6.653848588073D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 4.110000000000D+02
+ 7.201800000000D+04 4.000000000000D+00
+23 06 1 1 22 0 0.0 1.564151607454D-04-1.705302565824D-12 0.000000000000D+00
+ 0.000000000000D+00 1.096875000000D+01 4.529474385075D-09-9.391786957853D-01
+ 5.140900611877D-07 4.179865121841D-03-3.129243850708D-07 5.153608261108D+03
+ 7.920000000000D+04-5.215406417847D-08-1.251746166126D+00-1.303851604462D-08
+ 9.667795170589D-01 3.886875000000D+02 2.423941591537D+00-8.483567660360D-09
+ -7.857470152314D-12 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 0.000000000000D+00
+ 7.282800000000D+04 4.000000000000D+00
+30 06 1 1 22 0 0.0 9.532086551189D-06 5.798028723802D-12 0.000000000000D+00
+ 1.400000000000D+02-4.465625000000D+01 4.693766942805D-09 8.906568586103D-01
+ -2.374872565269D-06 8.713976363651D-03 1.125037670135D-05 5.153611705780D+03
+ 7.920000000000D+04-1.061707735062D-07 8.096275436655D-01 5.587935447693D-08
+ 9.440487544599D-01 1.528437500000D+02 1.296321435071D+00-8.097122991959D-09
+ 6.832427455171D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.400000000000D+02
+ 7.354800000000D+04 4.000000000000D+00
+13 06 1 1 21 59 44.0 3.250641748309D-05 2.273736754432D-12 0.000000000000D+00
+ 3.400000000000D+01 9.375000000000D-01 4.099456473103D-09-1.587233068685D-01
+ 4.656612873077D-08 2.570511423983D-03-4.842877388000D-07 5.153606954575D+03
+ 7.918400000000D+04 2.793967723846D-08-1.228349938185D+00 5.587935447693D-08
+ 9.903263699712D-01 4.033437500000D+02 1.095469064558D+00-8.266058600234D-09
+ -6.821712723145D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 3.400000000000D+01
+ 7.402800000000D+04 4.000000000000D+00
+10 06 1 1 22 0 0.0 7.640710100532D-05 6.821210263297D-13 0.000000000000D+00
+ 4.300000000000D+01 1.653437500000D+02 3.974094108400D-09-1.101468838313D-01
+ 8.495524525642D-06 6.804528879002D-03 7.761642336845D-06 5.153795644760D+03
+ 7.920000000000D+04 7.264316082001D-08-2.277024801600D+00 5.215406417847D-08
+ 9.756473797438D-01 2.359062500000D+02 3.584497132236D-01-7.947116743597D-09
+ 1.214336296267D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 2.990000000000D+02
+ 7.498800000000D+04 4.000000000000D+00
+ 2 06 1 2 0 0 0.0-2.317875623703D-05 1.023181539495D-12 0.000000000000D+00
+ 2.140000000000D+02 8.343750000000D+00 4.815200572432D-09 6.443774175459D-01
+ 3.799796104431D-07 9.061537333764D-03 1.058541238308D-05 5.153634239197D+03
+ 8.640000000000D+04-5.960464477539D-08 2.938091523602D+00-9.126961231232D-08
+ 9.522994280993D-01 1.752500000000D+02 1.956197477808D+00-8.064264480413D-09
+ -6.207401420328D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.140000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+ 4 06 1 2 0 0 0.0 1.047626137733D-04 1.227817847393D-11 0.000000000000D+00
+ 4.200000000000D+01 1.303125000000D+01 4.698052835615D-09 3.005372095983D+00
+ 6.947666406631D-07 7.416905951686D-03 1.063756644726D-05 5.153762599945D+03
+ 8.640000000000D+04-1.341104507446D-07 2.957878893563D+00 3.725290298462D-08
+ 9.518933556876D-01 1.711562500000D+02 1.130609230184D-01-7.791395971488D-09
+ -6.318120317929D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 2.980000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+ 5 06 1 2 0 0 0.0 4.499121569097D-04 2.398792275926D-11 0.000000000000D+00
+ 8.100000000000D+01-4.531250000000D+01 4.676623371564D-09 2.665684552896D+00
+ -2.298504114151D-06 6.785582634620D-03 1.199729740620D-05 5.153685922623D+03
+ 8.640000000000D+04 2.793967723846D-08 7.640985033354D-01-2.048909664154D-08
+ 9.374356201164D-01 1.335312500000D+02 1.039437303776D+00-7.845683947085D-09
+ 7.268159890890D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 8.100000000000D+01
+ 7.921800000000D+04 4.000000000000D+00
+ 7 06 1 2 0 0 0.0 4.604952409863D-04 1.023181539495D-11 0.000000000000D+00
+ 1.630000000000D+02 1.040625000000D+01 5.773811931014D-09-2.426958213465D-01
+ 4.786998033524D-07 1.323255465832D-02 5.224719643593D-06 5.153803689957D+03
+ 8.640000000000D+04-1.452863216400D-07 1.834302374331D+00 9.126961231232D-08
+ 9.350061666913D-01 2.697812500000D+02-1.767591617320D+00-8.807152567541D-09
+ 2.350097891010D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 4.190000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+10 06 1 2 0 0 0.0 7.641175761819D-05 6.821210263297D-13 0.000000000000D+00
+ 4.400000000000D+01 1.528125000000D+02 4.098384999900D-09 9.400693759029D-01
+ 8.232891559601D-06 6.802955758758D-03 7.700175046921D-06 5.153792322159D+03
+ 8.640000000000D+04 2.048909664154D-08-2.277081682781D+00 8.754432201385D-08
+ 9.756474777593D-01 2.366562500000D+02 3.583371797133D-01-7.909972339241D-09
+ -2.250093725435D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 3.000000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+13 06 1 2 0 0 0.0 3.252271562815D-05 2.273736754432D-12 0.000000000000D+00
+ 3.500000000000D+01 9.656250000000D+00 4.047668601644D-09 8.937616681667D-01
+ 4.600733518600D-07 2.572151832283D-03 3.352761268616D-08 5.153609968185D+03
+ 8.640000000000D+04-2.235174179077D-08-1.228409452619D+00 5.587935447693D-08
+ 9.903257965074D-01 3.936250000000D+02 1.095534857836D+00-8.251772290866D-09
+ -8.000333245992D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 3.500000000000D+01
+ 7.921800000000D+04 4.000000000000D+00
+23 06 1 2 0 0 0.0 1.564030535519D-04-1.705302565824D-12 0.000000000000D+00
+ 1.000000000000D+00 2.281250000000D+01 4.607334771129D-09 1.110267720021D-01
+ 1.015141606331D-06 4.178477451205D-03-3.147870302200D-07 5.153605798721D+03
+ 8.640000000000D+04 2.048909664154D-08-1.251807020593D+00-3.725290298462D-08
+ 9.667791454777D-01 3.888750000000D+02 2.423957253538D+00-8.515711856437D-09
+ -6.714565402886D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 1.000000000000D+00
+ 7.921800000000D+04 4.000000000000D+00
+30 06 1 2 0 0 0.0 9.573996067047D-06 5.798028723802D-12 0.000000000000D+00
+ 1.410000000000D+02-4.078125000000D+01 4.600191616446D-09 1.941068742676D+00
+ -2.099201083183D-06 8.714219904505D-03 1.187995076180D-05 5.153608665466D+03
+ 8.640000000000D+04 3.725290298462D-09 8.095694190044D-01-1.657754182816D-07
+ 9.440548957900D-01 1.397187500000D+02 1.296129887892D+00-7.869613515277D-09
+ 7.571743964957D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.410000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+ 6 06 1 2 0 0 0.0 1.747133210301D-04 4.433786671143D-11 0.000000000000D+00
+ 2.000000000000D+01 5.875000000000D+00 5.629877364133D-09-2.337693961491D+00
+ 1.527369022369D-07 5.970326019451D-03 4.785135388374D-06 5.153618072510D+03
+ 8.640000000000D+04 1.024454832077D-07 1.861027949273D+00 1.862645149231D-08
+ 9.334776162553D-01 2.674375000000D+02-1.861404960817D+00-8.378206128772D-09
+ 2.625109346341D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 2.760000000000D+02
+ 7.924800000000D+04 4.000000000000D+00
+29 06 1 2 0 0 0.0 4.826420918107D-04 1.477928890381D-11 0.000000000000D+00
+ 1.080000000000D+02 8.156250000000D+00 4.277321024732D-09 1.211219303529D+00
+ 8.568167686462D-08 9.275490301661D-03-7.487833499908D-07 5.153685186386D+03
+ 8.640000000000D+04 1.769512891769D-07-1.261441193415D+00-2.086162567139D-07
+ 9.852527374684D-01 4.024062500000D+02-1.012766041131D+00-8.355705191517D-09
+ -1.039329006511D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.080000000000D+02
+ 8.215800000000D+04 4.000000000000D+00
+26 06 1 2 0 0 0.0-7.546972483397D-06-7.275957614183D-12 0.000000000000D+00
+ 5.100000000000D+01 3.656250000000D+00 4.271606500985D-09-7.551716792002D-01
+ 3.650784492493D-07 1.676288200542D-02-4.786998033524D-07 5.153648803711D+03
+ 8.640000000000D+04 1.993030309677D-07-1.227230072933D+00 2.272427082062D-07
+ 9.885155553435D-01 4.004062500000D+02 7.471069439116D-01-8.501425547069D-09
+ -1.150047904111D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 5.100000000000D+01
+ 8.380800000000D+04 4.000000000000D+00
+21 06 1 2 0 0 0.0 1.639910042286D-04 3.865352482535D-12 0.000000000000D+00
+ 2.050000000000D+02 2.368750000000D+01 4.836630036483D-09-2.442420537808D+00
+ 1.089647412300D-06 1.051642862149D-02 1.101754605770D-05 5.153742439270D+03
+ 8.640000000000D+04-1.322478055954D-07 2.979010183457D+00-2.346932888031D-07
+ 9.454869448349D-01 1.624375000000D+02-3.028548583388D+00-7.897828976278D-09
+ -6.400266596794D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 4.610000000000D+02
+ 8.521800000000D+04 4.000000000000D+00
diff --git a/ref/usersguide/arl2800.06o b/ref/usersguide/arl2800.06o
new file mode 100644
index 0000000..b8892c0
--- /dev/null
+++ b/ref/usersguide/arl2800.06o
@@ -0,0 +1,48700 @@
+ 2.10 OBSERVATION DATA G (GPS) RINEX VERSION / TYPE
+teqc 2005Sep1 20060101 01:04:01UTCPGM / RUN BY / DATE
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+40104M002 MARKER NUMBER
+-Unknown- GEOD. SURVEY, NATURAL RESOURCES CANADA OBSERVER / AGENCY
+1103 AOA BENCHMARK ACT 3.3.32.2N REC # / TYPE / VERS
+386 AOAD/M_T NONE ANT # / TYPE
+ 918129.4000 -4346071.2000 4561977.8000 APPROX POSITION XYZ
+ 0.1000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 7 L1 L2 C1 P2 P1 S1 S2 # / TYPES OF OBSERV
+ 30.0000 INTERVAL
+L1 PHASE CENTRE .110m ABOVE ARP COMMENT
+L2 PHASE CENTRE .128m ABOVE ARP COMMENT
+where ARP is the Antenna Reference Point for HI measurement COMMENT
+ P1 = P1 TurboRogue; = Y1 Benchmark COMMENT
+ L1 = L1(CA) COMMENT
+ P2 = P2 TurboRogue; = Y2 Benchmark COMMENT
+ L2 = L2(P2) TurboRogue; = L2(Y2) Benchmark COMMENT
+ SNR is mapped to RINEX snr flag value [0-9] COMMENT
+ L1 & L2: min(max(int(snr_dBHz/6), 0), 9) COMMENT
+ 2006 1 1 0 0 0.0000000 GPS TIME OF FIRST OBS
+ END OF HEADER
+ 06 1 1 0 0 0.0000000 0 6G29G 6G10G 2G26G21
+ -13756450.979 6 -10719302.137 5 21703413.911 21703411.878 21703413.070
+ 38.500 34.700
+ -17872031.175 7 -13926243.585 6 21407579.072 21407577.646 21407578.248
+ 44.900 40.500
+ -22878236.630 7 -17827175.316 7 20160590.275 20160588.580 20160589.169
+ 45.900 46.400
+ -14648524.249 6 -11414415.680 6 22020494.612 22020490.815 22020493.909
+ 41.600 36.200
+ -9857646.978 5 -7681275.854 4 22621054.862 22621052.894 22621053.626
+ 33.900 29.900
+ -3121997.571 4 -2432722.223 3 24304026.964 24304026.203 24304026.414
+ 24.900 21.100
+ 06 1 1 0 0 30.0000000 0 6G29G 6G10G 2G26G21
+ -13839213.863 6 -10783792.680 5 21687663.837 21687662.711 21687663.436
+ 38.100 35.300
+ -17905207.516 7 -13952095.262 6 21401265.757 21401264.494 21401264.996
+ 45.200 40.700
+ -22853389.542 7 -17807813.942 7 20165318.442 20165316.880 20165317.325
+ 45.900 46.300
+ -14568238.461 6 -11351855.339 6 22035772.591 22035768.646 22035771.836
+ 41.800 36.100
+ -9973621.298 5 -7771645.409 4 22598985.129 22598983.347 22598983.932
+ 33.400 29.500
+ -3217346.018 4 -2507019.633 2 24285883.991 24285881.504 24285882.916
+ 26.500 16.100
+ 06 1 1 0 1 0.0000000 0 6G29G 6G10G 2G26G21
+ -13921563.744 6 -10847961.367 5 21671993.345 21671992.162 21671992.929
+ 38.400 35.900
+ -17937852.343 7 -13977532.775 6 21395053.499 21395052.183 21395052.696
+ 45.000 40.600
+ -22828113.228 7 -17788118.102 7 20170128.185 20170126.808 20170127.158
+ 45.900 46.500
+ -14487690.455 6 -11289090.664 6 22051100.591 22051096.520 22051099.690
+ 41.900 36.400
+ -10089330.554 5 -7861808.397 4 22576966.333 22576964.550 22576965.249
+ 33.500 29.500
+ -3312682.806 4 -2581307.978 2 24267742.385 24267739.532 24267741.217
+ 27.900 17.800
+ 06 1 1 0 1 30.0000000 0 6G29G 6G10G 2G26G21
+ -14003498.154 6 -10911806.343 5 21656402.840 21656400.463 21656401.659
+ 38.600 35.900
+ -17969964.255 7 -14002555.028 6 21388942.929 21388941.507 21388942.116
+ 45.100 40.600
+ -22802409.124 7 -17768088.925 7 20175019.700 20175018.137 20175018.526
+ 45.800 46.500
+ -14406881.026 6 -11226122.290 6 22066477.728 22066474.013 22066477.135
+ 41.900 36.500
+ -10204771.405 5 -7951762.264 4 22554997.218 22554996.788 22554997.288
+ 33.800 29.700
+ -3408006.992 4 -2655586.509 3 24249602.771 24249599.863 24249601.555
+ 28.100 18.600
+ 06 1 1 0 2 0.0000000 0 6G29G 6G10G 2G26G21
+ -14085014.784 6 -10975325.775 5 21640890.024 21640888.245 21640889.395
+ 39.000 35.700
+ -18001542.057 7 -14027161.091 6 21382933.828 21382932.544 21382933.136
+ 45.400 40.700
+ -22776278.674 7 -17747727.538 7 20179992.203 20179990.658 20179991.010
+ 45.800 46.700
+ -14325811.437 7 -11162951.188 6 22081904.931 22081901.099 22081904.126
+ 42.000 36.500
+ -10319940.375 5 -8041504.293 5 22533080.420 22533080.939 22533081.257
+ 33.000 30.100
+ -3503317.657 4 -2729854.513 1 24231465.427 24231462.564 24231464.222
+ 29.000 11.000
+ 06 1 1 0 2 30.0000000 0 6G29G 6G10G 2G26G21
+ -14166110.860 6 -11038517.498 5 21625458.137 21625456.078 21625457.273
+ 39.000 35.500
+ -18032584.360 7 -14051349.883 6 21377026.881 21377025.332 21377026.113
+ 45.400 40.600
+ -22749723.223 7 -17727034.972 7 20185045.462 20185044.045 20185044.327
+ 45.700 46.600
+ -14244482.079 6 -11099577.672 6 22097381.344 22097377.627 22097380.699
+ 41.700 36.500
+ -10434834.042 5 -8131031.773 4 22511217.046 22511217.169 22511217.780
+ 34.700 29.700
+ -3598613.825 4 -2804111.225 2 24213330.115 24213328.461 24213329.184
+ 28.100 16.100
+ 06 1 1 0 3 0.0000000 0 6G29G 6G10G 2G26G21
+ -14246784.009 6 -11101379.661 6 21610106.730 21610104.615 21610105.657
+ 38.700 36.000
+ -18063089.661 7 -14075120.231 6 21371222.031 21371220.176 21371221.182
+ 45.600 40.600
+ -22722744.282 7 -17706012.416 7 20190179.489 20190177.964 20190178.274
+ 45.600 46.600
+ -14162893.750 6 -11036002.366 6 22112907.275 22112903.440 22112906.538
+ 41.300 36.300
+ -10549449.179 5 -8220342.242 5 22489407.194 22489406.581 22489407.287
+ 34.700 30.100
+ -3693894.344 4 -2878355.737 3 24195199.879 24195197.148 24195198.673
+ 28.100 20.500
+ 06 1 1 0 3 30.0000000 0 6G29G 6G10G 2G26G21
+ -14327031.622 6 -11163910.242 6 21594835.991 21594833.954 21594835.134
+ 39.600 36.300
+ -18093057.054 7 -14098471.432 6 21365519.125 21365517.603 21365518.353
+ 45.400 40.600
+ -22695343.597 7 -17684661.228 7 20195393.477 20195392.065 20195392.326
+ 45.800 46.600
+ -14081047.373 6 -10972225.965 6 22128481.864 22128478.146 22128481.174
+ 41.400 36.300
+ -10663782.299 5 -8309432.934 5 22467650.218 22467650.062 22467650.142
+ 33.800 31.000
+ -3789158.814 4 -2952587.743 3 24177071.973 24177069.215 24177070.863
+ 27.600 21.600
+ 06 1 1 0 4 0.0000000 0 6G29G 6G10G 2G26G21
+ -14406851.377 6 -11226107.420 6 21579646.658 21579644.690 21579645.963
+ 39.600 36.200
+ -18122485.107 7 -14121402.369 6 21359918.909 21359917.643 21359918.158
+ 45.000 40.700
+ -22667522.363 7 -17662982.344 7 20200687.813 20200686.182 20200686.579
+ 45.800 46.400
+ -13998943.688 6 -10908249.076 6 22144106.163 22144102.028 22144105.040
+ 41.000 36.200
+ -10777830.086 5 -8398301.290 5 22445948.184 22445947.306 22445947.673
+ 33.100 30.800
+ -3884405.907 4 -3026806.166 3 24158945.784 24158943.881 24158945.014
+ 25.900 22.100
+ 06 1 1 0 4 30.0000000 0 6G29G 6G10G 2G26G21
+ -14486240.688 6 -11287969.193 6 21564539.158 21564537.227 21564538.515
+ 40.000 36.200
+ -18151372.568 7 -14143912.059 6 21354421.968 21354420.619 21354421.098
+ 45.000 41.000
+ -22639282.042 7 -17640976.897 7 20206061.738 20206060.083 20206060.561
+ 46.000 46.300
+ -13916583.921 6 -10844072.650 5 22159778.142 22159774.503 22159777.595
+ 41.300 35.500
+ -10891589.168 5 -8486944.698 4 22424300.873 22424299.386 22424300.265
+ 34.400 29.700
+ -3979634.706 4 -3101010.362 3 24140825.154 24140822.065 24140823.566
+ 24.200 23.400
+ 06 1 1 0 5 0.0000000 0 6G29G 6G10G 2G26G21
+ -14565196.917 6 -11349493.499 6 21549514.023 21549512.627 21549513.556
+ 39.800 36.800
+ -18179718.049 7 -14165999.432 6 21349028.099 21349026.635 21349027.274
+ 45.200 40.800
+ -22610624.413 7 -17618646.272 7 20211515.197 20211513.477 20211513.989
+ 46.200 46.300
+ -13833968.453 6 -10779696.963 5 22175499.872 22175495.713 22175498.859
+ 41.100 35.700
+ -11005056.127 5 -8575360.476 5 22402708.550 22402707.313 22402708.109
+ 34.000 30.400
+ -4074844.120 4 -3175199.412 3 24122707.312 24122704.496 24122706.274
+ 26.800 23.800
+ 06 1 1 0 5 30.0000000 0 6G29G 6G10G 2G26G21
+ -14643718.092 6 -11410678.791 6 21534571.994 21534570.429 21534571.334
+ 39.300 36.500
+ -18207520.693 7 -14187663.818 6 21343737.406 21343735.758 21343736.670
+ 45.400 40.600
+ -22581550.807 7 -17595991.508 7 20217047.621 20217046.090 20217046.497
+ 46.200 46.400
+ -13751098.377 6 -10715122.900 5 22191269.698 22191265.242 22191268.741
+ 41.500 35.600
+ -11118227.570 5 -8663545.959 5 22381173.057 22381171.705 22381172.410
+ 34.800 31.300
+ -4170033.220 4 -3249372.684 3 24104592.852 24104589.886 24104592.180
+ 28.800 21.600
+ 06 1 1 0 6 0.0000000 0 6G29G 6G10G 2G26G21
+ -14721801.455 6 -11471522.935 6 21519713.965 21519711.724 21519712.858
+ 39.700 36.600
+ -18234779.196 7 -14208904.191 6 21338550.154 21338548.471 21338549.404
+ 45.300 40.300
+ -22552062.566 7 -17573013.652 7 20222659.185 20222657.520 20222658.038
+ 46.400 46.300
+ -13667974.578 6 -10650351.106 5 22207086.798 22207083.401 22207086.418
+ 40.600 35.500
+ -11231100.202 5 -8751498.623 5 22359694.811 22359692.590 22359693.603
+ 34.700 30.400
+ -4265201.330 4 -3323529.597 3 24086482.604 24086480.014 24086481.495
+ 27.100 20.500
+ 06 1 1 0 6 30.0000000 0 6G29G 6G10G 2G26G21
+ -14799444.714 6 -11532024.153 6 21504938.292 21504936.413 21504937.717
+ 40.500 36.400
+ -18261492.308 7 -14229719.589 6 21333466.947 21333465.244 21333466.170
+ 45.100 40.500
+ -22522161.156 7 -17549713.850 7 20228349.222 20228347.535 20228348.097
+ 46.300 46.400
+ -13584597.831 6 -10585382.241 6 22222953.808 22222949.794 22222952.810
+ 40.800 36.100
+ -11343670.627 5 -8839215.796 5 22338272.848 22338271.192 22338271.714
+ 34.900 31.000
+ -4360347.172 4 -3397669.166 2 24068376.706 24068374.436 24068376.155
+ 29.700 17.800
+ 06 1 1 0 7 0.0000000 0 6G29G 6G10G 2G26G21
+ -14876645.551 6 -11592180.618 6 21490247.804 21490245.729 21490246.853
+ 40.200 36.600
+ -18287659.003 7 -14250109.207 6 21328487.580 21328485.941 21328486.807
+ 44.800 40.500
+ -22491848.145 7 -17526093.316 7 20234117.516 20234115.878 20234116.347
+ 46.000 46.100
+ -13500969.102 6 -10520217.004 5 22238866.931 22238863.277 22238866.594
+ 40.900 34.700
+ -11455935.589 5 -8926694.942 5 22316909.654 22316907.896 22316908.727
+ 35.500 31.300
+ -4455469.845 4 -3471790.685 3 24050276.803 24050273.765 24050275.460
+ 29.900 19.300
+ 06 1 1 0 7 30.0000000 0 6G29G 6G10G 2G26G21
+ -14953401.445 6 -11651990.384 6 21475641.264 21475639.484 21475640.470
+ 40.100 37.200
+ -18313277.953 7 -14270072.008 6 21323612.241 21323610.742 21323611.511
+ 45.100 40.500
+ -22461125.281 7 -17502153.414 7 20239963.972 20239962.267 20239962.779
+ 46.400 46.200
+ -13417089.344 6 -10454856.154 5 22254829.520 22254825.304 22254828.404
+ 40.300 35.400
+ -11567891.596 5 -9013933.349 5 22295605.681 22295603.105 22295604.375
+ 35.500 31.100
+ -4550568.124 5 -3545893.214 3 24032180.084 24032177.198 24032179.165
+ 30.100 18.600
+ 06 1 1 0 8 0.0000000 0 6G29G 6G10G 2G26G21
+ -15029709.952 6 -11711451.516 6 21461119.881 21461118.470 21461119.382
+ 40.000 37.100
+ -18338348.274 7 -14289607.311 6 21318841.450 21318840.041 21318840.703
+ 44.800 40.700
+ -22429993.981 7 -17477895.253 7 20245887.956 20245886.332 20245886.845
+ 46.300 46.300
+ -13332959.140 6 -10389300.166 5 22270838.705 22270834.648 22270837.920
+ 40.400 35.100
+ -11679535.267 5 -9100928.375 5 22274360.163 22274357.932 22274358.866
+ 35.100 31.100
+ -4645641.226 4 -3619976.119 2 24014088.325 24014084.760 24014087.027
+ 29.200 17.800
+ 06 1 1 0 8 30.0000000 0 6G29G 6G10G 2G26G21
+ -15105568.782 6 -11770562.275 6 21446684.640 21446682.838 21446684.023
+ 40.500 36.800
+ -18362868.750 7 -14308714.168 6 21314175.210 21314173.995 21314174.452
+ 44.700 40.900
+ -22398455.703 7 -17453319.970 7 20251889.412 20251887.806 20251888.296
+ 46.300 46.100
+ -13248579.522 6 -10323549.819 5 22286895.618 22286891.529 22286894.827
+ 40.300 34.500
+ -11790863.394 5 -9187677.513 5 22253174.839 22253173.087 22253173.736
+ 35.300 32.600
+ -4740688.123 4 -3694038.571 2 23996000.220 23995997.616 23995999.551
+ 26.500 17.800
+ 06 1 1 0 9 0.0000000 0 6G29G 6G10G 2G26G21
+ -15180975.637 6 -11829320.835 6 21432334.615 21432333.465 21432334.488
+ 40.800 36.900
+ -18386838.249 7 -14327391.691 6 21309613.893 21309612.730 21309613.210
+ 44.600 40.700
+ -22366511.968 7 -17428428.749 7 20257968.272 20257966.504 20257967.033
+ 46.200 46.100
+ -13163951.518 6 -10257605.921 5 22302999.987 22302995.754 22302999.030
+ 40.000 34.400
+ -11901872.605 5 -9274178.139 5 22232051.153 22232048.495 22232049.654
+ 34.900 32.400
+ -4835707.734 4 -3768079.795 3 23977918.833 23977916.423 23977917.812
+ 27.100 19.300
+ 06 1 1 0 9 30.0000000 0 6G29G 6G10G 2G26G21
+ -15255928.246 6 -11887725.447 6 21418072.662 21418070.364 21418071.580
+ 40.000 37.000
+ -18410255.851 7 -14345639.161 6 21305157.817 21305156.549 21305157.040
+ 44.700 40.800
+ -22334164.318 7 -17403222.787 7 20264123.841 20264122.136 20264122.632
+ 46.300 46.100
+ -13079076.018 6 -10191469.186 5 22319150.920 22319147.152 22319150.250
+ 40.200 34.800
+ -12012559.427 5 -9360427.559 5 22210987.846 22210985.485 22210986.637
+ 35.700 32.000
+ -4930698.928 4 -3842098.844 3 23959842.981 23959839.572 23959841.828
+ 28.100 18.600
+ 06 1 1 0 10 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15330424.291 6 -11945774.292 6 21403896.288 21403894.359 21403895.534
+ 40.700 37.200
+ -18433120.634 7 -14363455.868 6 21300806.975 21300805.416 21300806.136
+ 44.800 40.700
+ -35506.228 4 -27666.263 2 25211142.694 25211140.611 25211141.880
+ 25.900 17.800
+ -22301414.147 7 -17377703.172 7 20270356.053 20270354.310 20270354.796
+ 46.300 46.000
+ -12993953.562 6 -10125140.006 5 22335349.660 22335345.135 22335348.658
+ 40.000 34.300
+ -12122920.444 6 -9446423.126 5 22189986.655 22189984.242 22189985.599
+ 36.700 31.300
+ -5025660.721 4 -3916095.003 3 23941772.318 23941769.191 23941771.240
+ 28.600 22.100
+ 06 1 1 0 10 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15404461.356 6 -12003465.482 6 21389807.780 21389805.387 21389806.766
+ 40.700 37.200
+ -18455431.202 7 -14380840.720 6 21296561.231 21296559.840 21296560.501
+ 44.800 40.700
+ -55409.610 4 -43175.379 3 25207355.463 25207354.086 25207354.377
+ 25.900 22.600
+ -22268262.951 7 -17351871.068 7 20276664.443 20276662.694 20276663.240
+ 46.600 46.000
+ -12908585.291 6 -10058619.282 5 22351594.534 22351590.298 22351593.678
+ 39.600 34.600
+ -12232952.601 5 -9532162.423 5 22169048.112 22169046.232 22169046.908
+ 35.700 33.100
+ -5120592.167 4 -3990067.515 3 23923707.112 23923704.547 23923706.008
+ 29.000 22.100
+ 06 1 1 0 11 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15478037.202 6 -12060797.292 6 21375806.323 21375804.325 21375805.687
+ 40.800 37.200
+ -18477186.935 7 -14397793.235 6 21292421.266 21292419.826 21292420.429
+ 44.500 40.900
+ -74886.450 3 -58352.118 3 25203648.827 25203647.291 25203648.090
+ 23.400 18.600
+ -22234712.380 7 -17325727.758 7 20283049.000 20283047.206 20283047.800
+ 46.600 45.900
+ -12822972.089 6 -9991907.715 5 22367885.292 22367882.031 22367885.074
+ 39.400 34.500
+ -12342652.376 5 -9617642.711 5 22148172.922 22148170.780 22148171.807
+ 35.900 32.100
+ -5215491.988 4 -4064015.380 3 23905648.370 23905645.503 23905647.104
+ 28.800 22.100
+ 06 1 1 0 11 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15551149.454 6 -12117767.854 6 21361893.285 21361891.677 21361892.651
+ 40.700 37.600
+ -18498386.977 7 -14414312.736 6 21288386.899 21288385.646 21288386.142
+ 44.700 40.700
+ -93935.353 3 -73195.433 2 25200024.615 25200022.366 25200023.431
+ 22.600 17.000
+ -22200764.113 7 -17299274.561 7 20289509.034 20289507.344 20289507.883
+ 46.700 45.900
+ -12737114.979 6 -9925006.097 5 22384224.149 22384220.058 22384223.223
+ 39.100 34.600
+ -12452016.606 6 -9702861.555 5 22127361.706 22127359.436 22127360.538
+ 36.300 32.300
+ -5310359.369 4 -4137937.957 4 23887595.527 23887593.450 23887594.660
+ 29.200 25.900
+ 06 1 1 0 12 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15623796.082 6 -12174375.588 6 21348068.927 21348067.544 21348068.332
+ 40.800 38.000
+ -18519029.491 7 -14430397.802 6 21284458.827 21284457.412 21284458.137
+ 44.900 40.700
+ -112555.597 3 -87704.694 2 25196480.813 25196478.761 25196479.676
+ 23.000 17.800
+ -22166419.731 7 -17272512.700 7 20296044.500 20296042.794 20296043.363
+ 46.900 45.700
+ -12651014.668 6 -9857914.959 5 22400608.368 22400604.818 22400607.540
+ 39.200 34.900
+ -12561041.796 6 -9787816.205 5 22106614.534 22106612.621 22106613.512
+ 36.300 32.700
+ -5405192.987 4 -4211834.230 4 23869549.369 23869547.383 23869548.269
+ 29.500 25.300
+ 06 1 1 0 12 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15695974.592 6 -12230618.558 6 21334334.053 21334332.100 21334333.394
+ 41.100 37.500
+ -18539114.518 7 -14446048.464 6 21280636.969 21280635.341 21280636.185
+ 45.100 40.800
+ -130745.962 4 -101878.963 3 25193019.649 25193017.356 25193018.753
+ 24.900 18.600
+ -22131680.683 7 -17245443.310 7 20302655.094 20302653.383 20302653.998
+ 46.900 45.800
+ -12564672.170 6 -9790635.112 5 22417039.077 22417035.188 22417038.230
+ 39.600 34.800
+ -12669724.541 6 -9872504.012 5 22085932.623 22085930.970 22085931.836
+ 36.900 33.000
+ -5499992.043 4 -4285703.552 4 23851509.534 23851507.733 23851508.536
+ 28.400 24.200
+ 06 1 1 0 13 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15767683.014 6 -12286495.238 6 21320688.693 21320686.481 21320687.840
+ 41.200 37.700
+ -18558640.837 7 -14461263.766 6 21276921.041 21276919.766 21276920.371
+ 45.100 41.000
+ -148505.285 3 -115717.414 3 25189639.722 25189638.276 25189638.562
+ 23.800 19.300
+ -22096548.646 7 -17218067.692 7 20309340.587 20309338.816 20309339.408
+ 46.900 45.700
+ -12478088.200 6 -9723167.094 5 22433515.580 22433511.345 22433514.499
+ 38.900 34.400
+ -12778061.606 6 -9956922.485 5 22065316.159 22065314.960 22065315.719
+ 37.100 32.400
+ -5594755.055 4 -4359544.835 3 23833476.892 23833474.489 23833475.756
+ 29.500 21.600
+ 06 1 1 0 13 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15838919.055 6 -12342003.822 6 21307132.618 21307130.627 21307131.867
+ 41.400 37.700
+ -18577607.586 7 -14476043.043 6 21273311.891 21273310.486 21273311.144
+ 45.200 41.000
+ -165832.571 3 -129219.192 2 25186342.485 25186340.414 25186341.280
+ 23.400 16.100
+ -22061025.156 7 -17190387.043 7 20316100.645 20316098.678 20316099.389
+ 46.800 45.600
+ -12391263.717 6 -9655511.677 5 22450037.501 22450033.598 22450036.821
+ 39.400 34.500
+ -12886049.668 6 -10041068.974 5 22044766.147 22044765.529 22044766.233
+ 37.300 33.500
+ -5689481.096 4 -4433357.306 3 23815450.973 23815448.635 23815449.809
+ 29.200 22.600
+ 06 1 1 0 14 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15909680.445 6 -12397142.547 6 21293667.113 21293665.306 21293666.427
+ 41.300 38.100
+ -18596013.891 7 -14490385.617 6 21269809.566 21269807.709 21269808.796
+ 45.200 41.000
+ -182726.467 4 -142383.268 2 25183127.541 25183125.542 25183127.040
+ 25.300 13.900
+ -22025111.545 7 -17162402.402 7 20322934.587 20322932.773 20322933.387
+ 46.600 45.500
+ -12304199.680 6 -9587669.578 5 22466604.788 22466601.485 22466604.322
+ 39.200 34.500
+ -12993685.448 6 -10124940.971 5 22024283.650 22024282.962 22024283.879
+ 37.500 33.000
+ -5784169.191 5 -4507140.197 3 23797433.125 23797429.968 23797432.138
+ 30.800 22.600
+ 06 1 1 0 14 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15979965.123 6 -12451909.807 6 21280292.582 21280290.399 21280291.876
+ 41.800 37.800
+ -18613858.705 7 -14504290.658 6 21266413.578 21266412.052 21266412.846
+ 45.100 40.800
+ -199186.382 3 -155209.142 2 25179995.687 25179993.237 25179994.563
+ 22.600 12.600
+ -21988809.582 7 -17134115.148 7 20329842.548 20329840.817 20329841.395
+ 46.700 45.600
+ -12216897.158 6 -9519641.648 5 22483218.336 22483214.166 22483217.443
+ 38.700 33.800
+ -13100965.664 6 -10208535.919 5 22003868.933 22003868.037 22003869.067
+ 37.200 32.100
+ -5878818.230 5 -4580892.656 4 23779421.914 23779419.062 23779420.641
+ 31.000 24.900
+ 06 1 1 0 15 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16049770.970 6 -12506303.964 6 21267008.866 21267006.888 21267008.086
+ 41.300 37.800
+ -18631141.433 7 -14517757.712 6 21263124.572 21263123.296 21263123.838
+ 44.800 41.000
+ -215210.984 3 -167695.836 2 25176945.438 25176944.206 25176945.257
+ 23.400 17.800
+ -21952120.912 7 -17105526.568 7 20336824.252 20336822.428 20336823.049
+ 46.800 45.400
+ -12129357.014 6 -9451428.565 5 22499876.332 22499872.723 22499875.749
+ 38.600 33.800
+ -13207887.031 6 -10291851.239 5 21983523.252 21983521.837 21983522.850
+ 38.400 33.500
+ -5973427.070 5 -4654613.795 3 23761418.080 23761415.578 23761417.038
+ 31.300 23.000
+ 06 1 1 0 15 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16119095.610 6 -12560323.131 6 21253816.823 21253814.936 21253815.898
+ 41.100 38.300
+ -18647861.109 7 -14530786.022 6 21259943.028 21259941.493 21259942.268
+ 44.700 40.700
+ -230799.317 4 -179842.599 2 25173980.455 25173977.743 25173978.817
+ 24.600 17.800
+ -21915047.017 7 -17076637.808 7 20343879.039 20343877.442 20343877.923
+ 46.800 45.600
+ -12041580.171 6 -9383031.035 5 22516580.314 22516576.308 22516579.570
+ 38.700 34.300
+ -13314446.270 6 -10374884.381 5 21963245.655 21963244.422 21963245.066
+ 38.200 34.400
+ -6067994.542 5 -4728302.698 3 23743421.899 23743419.420 23743421.069
+ 30.200 23.400
+ 06 1 1 0 16 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16187937.098 6 -12613965.825 6 21240716.228 21240714.716 21240715.949
+ 41.700 37.900
+ -18664016.918 7 -14543374.956 6 21256868.671 21256867.080 21256867.865
+ 44.900 40.800
+ -245950.196 3 -191648.483 2 25171095.601 25171094.871 25171095.147
+ 22.100 16.100
+ -21877589.321 7 -17047449.988 7 20351006.961 20351005.387 20351005.806
+ 46.900 45.400
+ -11953567.462 6 -9314449.711 5 22533328.294 22533324.394 22533327.412
+ 37.800 33.900
+ -13420639.879 6 -10457632.615 5 21943038.164 21943036.349 21943037.208
+ 37.700 34.300
+ -6162519.511 5 -4801958.475 3 23725435.318 23725431.588 23725434.171
+ 31.300 23.000
+ 06 1 1 0 16 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16256293.141 6 -12667230.247 6 21227709.331 21227706.876 21227708.372
+ 41.500 37.800
+ -18679608.630 7 -14555524.333 6 21253901.756 21253900.041 21253900.998
+ 44.800 40.700
+ -260662.974 4 -203112.953 2 25168297.252 25168294.366 25168296.221
+ 25.900 15.100
+ -21839749.681 7 -17017964.542 7 20358207.651 20358205.988 20358206.467
+ 47.000 45.400
+ -11865319.787 6 -9245685.305 5 22550121.266 22550117.415 22550120.426
+ 37.800 33.200
+ -13526464.796 6 -10540093.551 5 21922900.016 21922898.293 21922899.211
+ 37.100 33.600
+ -6257000.853 4 -4875580.248 3 23707455.238 23707452.484 23707454.308
+ 29.200 21.100
+ 06 1 1 0 17 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16324161.827 6 -12720114.924 6 21214793.588 21214791.875 21214793.130
+ 41.600 38.000
+ -18694634.794 7 -14567233.020 6 21251042.211 21251040.867 21251041.419
+ 44.800 41.000
+ -274936.146 4 -214234.854 2 25165580.495 25165578.561 25165579.879
+ 24.600 17.000
+ -21801529.517 7 -16988182.590 7 20365480.795 20365479.021 20365479.627
+ 47.000 45.400
+ -11776838.183 6 -9176738.610 5 22566958.483 22566954.755 22566957.893
+ 37.900 33.100
+ -13631917.576 6 -10622264.527 5 21902833.418 21902831.290 21902832.450
+ 38.100 33.800
+ -6351437.412 4 -4949167.144 3 23689485.477 23689482.163 23689484.083
+ 28.800 22.600
+ 06 1 1 0 17 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16391541.068 6 -12772618.202 6 21201972.458 21201970.195 21201971.500
+ 41.700 38.600
+ -18709094.842 7 -14578500.585 6 21248290.572 21248289.355 21248289.816
+ 44.800 41.100
+ -288769.006 3 -225013.728 2 25162948.442 25162946.226 25162946.892
+ 21.100 16.100
+ -21762930.595 7 -16958105.504 7 20372825.903 20372824.087 20372824.721
+ 47.100 45.300
+ -11688123.707 6 -9107610.469 5 22583840.386 22583836.899 22583839.701
+ 37.700 33.500
+ -13736994.922 6 -10704142.959 5 21882837.250 21882835.738 21882836.672
+ 38.600 33.600
+ -6445827.901 5 -5022718.140 3 23671522.776 23671519.788 23671522.010
+ 30.400 23.000
+ 06 1 1 0 18 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16458428.749 7 -12824738.451 6 21189243.693 21189241.926 21189243.148
+ 42.100 38.600
+ -18722988.443 7 -14589326.760 6 21245647.056 21245645.396 21245646.302
+ 45.100 41.300
+ -302160.502 3 -235448.680 2 25160399.360 25160398.116 25160399.025
+ 23.800 17.000
+ -21723954.472 7 -16927734.491 7 20380242.748 20380241.004 20380241.538
+ 46.900 45.200
+ -11599177.402 6 -9038301.698 5 22600766.764 22600762.638 22600765.767
+ 37.200 33.000
+ -13841693.740 6 -10785726.440 5 21862913.419 21862912.169 21862913.075
+ 38.500 34.400
+ -6540171.420 5 -5096232.532 3 23653570.565 23653566.879 23653569.307
+ 31.800 21.100
+ 06 1 1 0 18 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16524822.879 7 -12876474.117 6 21176609.565 21176607.331 21176608.822
+ 42.400 38.500
+ -18736314.485 7 -14599710.682 6 21243111.036 21243109.476 21243110.238
+ 45.000 41.100
+ -315109.649 4 -245538.910 2 25157936.274 25157933.566 25157935.239
+ 25.600 17.000
+ -21684602.539 7 -16897070.639 7 20387731.148 20387729.405 20387729.995
+ 47.000 45.100
+ -11509999.800 6 -8968812.664 5 22617736.537 22617732.438 22617735.988
+ 37.700 32.300
+ -13946010.693 6 -10867012.334 5 21843061.132 21843061.520 21843062.101
+ 38.100 34.600
+ -6634466.803 5 -5169709.438 3 23635626.161 23635622.547 23635625.175
+ 32.400 21.100
+ 06 1 1 0 19 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16590721.367 7 -12927823.569 6 21164069.461 21164067.286 21164068.685
+ 42.300 38.600
+ -18749072.509 7 -14609651.997 6 21240683.184 21240681.593 21240682.386
+ 44.900 41.000
+ -327615.514 4 -255283.757 2 25155556.116 25155554.099 25155555.449
+ 26.500 17.800
+ -21644876.370 7 -16866115.176 7 20395290.985 20395289.098 20395289.742
+ 47.000 45.000
+ -11420592.177 6 -8899144.395 5 22634749.634 22634745.921 22634749.210
+ 37.000 31.800
+ -14049942.621 6 -10947998.214 5 21823284.445 21823283.674 21823284.558
+ 38.600 34.700
+ -6728712.521 5 -5243147.634 3 23617692.034 23617688.843 23617690.919
+ 31.600 23.000
+ 06 1 1 0 19 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16656122.286 7 -12978785.307 6 21151623.905 21151621.936 21151623.150
+ 42.200 38.900
+ -18761261.967 7 -14619150.271 6 21238363.694 21238362.101 21238362.951
+ 45.000 41.100
+ -339677.409 3 -264682.659 2 25153261.055 25153258.775 25153259.745
+ 23.800 16.100
+ -21604777.781 7 -16834869.518 7 20402921.481 20402919.584 20402920.275
+ 47.100 44.900
+ -11330955.148 6 -8829297.388 5 22651807.483 22651803.705 22651806.654
+ 36.800 32.700
+ -14153486.064 6 -11028681.404 5 21803581.667 21803579.916 21803580.970
+ 38.800 34.100
+ -6822907.324 5 -5316546.154 4 23599767.028 23599764.167 23599765.825
+ 30.600 25.900
+ 06 1 1 0 20 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16721023.528 7 -13029357.684 6 21139273.688 21139271.677 21139272.805
+ 42.000 38.900
+ -18772882.364 7 -14628205.121 6 21236152.391 21236150.796 21236151.579
+ 44.600 41.100
+ -351294.512 4 -273734.915 2 25151050.134 25151048.161 25151049.288
+ 25.300 17.000
+ -21564308.288 7 -16803334.845 7 20410622.519 20410620.709 20410621.346
+ 47.200 45.000
+ -11241089.909 6 -8759272.530 5 22668908.224 22668904.553 22668907.523
+ 36.500 33.000
+ -14256637.946 6 -11109059.485 5 21783953.088 21783950.911 21783951.893
+ 38.600 34.800
+ -6917050.391 5 -5389904.349 4 23581851.517 23581849.493 23581850.901
+ 31.500 25.900
+ 06 1 1 0 20 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16785423.114 7 -13079539.159 6 21127018.683 21127016.906 21127018.022
+ 42.400 39.300
+ -18783932.966 7 -14636815.970 6 21234049.409 21234047.973 21234048.616
+ 44.500 41.100
+ -362465.905 3 -282439.909 2 25148924.130 25148921.843 25148923.126
+ 21.600 13.900
+ -21523469.549 7 -16771512.449 7 20418393.739 20418392.021 20418392.651
+ 47.200 45.000
+ -11150997.625 6 -8689070.772 5 22686051.737 22686048.481 22686051.397
+ 36.800 33.000
+ -14359394.932 6 -11189129.838 5 21764398.776 21764396.802 21764397.781
+ 39.000 34.400
+ -7011140.423 5 -5463221.211 4 23563947.619 23563944.923 23563946.612
+ 33.000 27.100
+ 06 1 1 0 21 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16849319.368 7 -13129328.423 6 21114859.508 21114857.702 21114858.936
+ 42.600 39.100
+ -18794412.833 7 -14644982.094 6 21232054.956 21232053.751 21232054.220
+ 44.500 41.100
+ -373190.745 4 -290796.886 3 25146883.497 25146881.820 25146882.681
+ 25.300 19.300
+ -21482263.109 7 -16739403.534 7 20426235.174 20426233.331 20426233.950
+ 47.100 44.900
+ -11060678.936 6 -8618692.593 5 22703239.003 22703235.611 22703238.413
+ 36.500 33.200
+ -14461753.816 6 -11268889.992 5 21744919.786 21744918.507 21744919.390
+ 39.300 34.600
+ -7105176.078 5 -5536495.714 4 23546052.934 23546050.552 23546051.859
+ 33.100 27.400
+ 06 1 1 0 21 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16912710.010 7 -13178723.706 6 21102796.905 21102794.807 21102796.093
+ 42.300 39.300
+ -18804321.794 7 -14652703.355 6 21230169.427 21230168.068 21230168.686
+ 44.600 41.200
+ -383468.073 4 -298805.189 2 25144928.117 25144925.702 25144927.128
+ 27.100 17.000
+ -21440690.548 7 -16707009.328 7 20434146.201 20434144.338 20434144.956
+ 47.100 44.800
+ -10970135.009 6 -8548138.910 5 22720470.120 22720465.550 22720468.792
+ 36.500 33.200
+ -14563711.405 6 -11348337.428 5 21725517.435 21725516.615 21725517.395
+ 39.400 34.700
+ -7199156.316 5 -5609727.048 4 23528169.144 23528166.027 23528168.150
+ 32.600 25.300
+ 06 1 1 0 22 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16975593.303 7 -13227723.659 6 21090830.381 21090828.285 21090829.774
+ 42.700 38.800
+ -18813659.339 7 -14659979.356 6 21228392.642 21228391.246 21228391.880
+ 44.600 41.100
+ -393297.033 4 -306464.131 2 25143057.457 25143054.738 25143056.751
+ 24.600 12.600
+ -21398753.535 7 -16674331.136 7 20442126.326 20442124.710 20442125.174
+ 47.000 44.700
+ -10879366.860 6 -8477410.496 5 22737742.516 22737738.234 22737741.381
+ 36.500 32.800
+ -14665264.525 6 -11427469.706 5 21706192.846 21706191.484 21706192.414
+ 39.200 34.600
+ -7293079.949 5 -5682914.270 4 23510295.722 23510293.381 23510294.660
+ 31.300 26.200
+ 06 1 1 0 22 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17037967.348 7 -13276326.793 6 21078960.982 21078958.966 21078960.371
+ 42.700 39.100
+ -18822424.672 7 -14666809.481 6 21226724.577 21226723.164 21226723.846
+ 44.800 41.000
+ -402676.970 3 -313773.182 3 25141272.732 25141270.387 25141271.745
+ 23.000 18.600
+ -21356453.800 7 -16641370.305 7 20450175.640 20450174.102 20450174.517
+ 47.000 44.600
+ -10788375.305 6 -8406508.011 5 22755056.112 22755053.264 22755055.987
+ 36.400 31.800
+ -14766409.727 6 -11506284.120 5 21686946.198 21686944.395 21686945.297
+ 39.300 35.300
+ -7386945.713 5 -5756056.384 3 23492433.153 23492430.751 23492432.323
+ 32.000 23.800
+ 06 1 1 0 23 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17099830.175 7 -13324531.563 6 21067189.129 21067186.969 21067188.218
+ 42.500 39.300
+ -18830617.645 7 -14673193.614 6 21225165.521 21225164.092 21225164.777
+ 44.800 41.100
+ -411607.074 4 -320731.700 2 25139573.034 25139571.020 25139572.200
+ 24.200 17.000
+ -21313792.810 7 -16608127.977 7 20458293.853 20458292.172 20458292.685
+ 47.000 44.600
+ -10697161.184 6 -8335432.065 5 22772414.575 22772410.411 22772413.883
+ 36.500 31.000
+ -14867144.009 6 -11584778.340 5 21667776.800 21667775.205 21667776.160
+ 39.600 35.500
+ -7480752.094 5 -5829152.227 4 23474582.812 23474580.449 23474581.883
+ 32.100 26.200
+ 06 1 1 0 23 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17161179.884 7 -13372336.509 6 21055514.224 21055512.642 21055513.679
+ 42.800 39.600
+ -18838237.801 7 -14679131.391 6 21223715.525 21223713.857 21223714.792
+ 44.600 41.000
+ -420086.498 4 -327339.042 2 25137959.657 25137957.503 25137958.212
+ 24.200 17.800
+ -21270772.142 7 -16574605.376 7 20466480.215 20466478.766 20466479.144
+ 47.000 44.500
+ -10605725.785 6 -8264183.711 5 22789814.758 22789810.399 22789813.553
+ 36.100 32.000
+ -14967464.271 6 -11662949.938 5 21648685.997 21648684.981 21648685.676
+ 39.500 35.700
+ -7574498.059 5 -5902201.008 3 23456744.447 23456740.948 23456743.151
+ 32.300 23.400
+ 06 1 1 0 24 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17222014.816 7 -13419740.334 6 21043938.034 21043936.089 21043937.254
+ 43.000 39.800
+ -18845284.462 7 -14684622.294 6 21222374.520 21222373.003 21222373.841
+ 44.700 40.900
+ -428115.077 3 -333595.088 3 25136431.147 25136429.988 25136430.615
+ 23.000 18.600
+ -21227393.410 7 -16540803.765 7 20474735.230 20474733.412 20474734.041
+ 47.000 44.400
+ -10514070.106 5 -8192763.729 5 22807255.414 22807252.003 22807254.682
+ 35.300 31.500
+ -15067367.082 6 -11740796.259 5 21629675.018 21629673.891 21629674.775
+ 39.500 35.500
+ -7668182.308 5 -5975201.685 4 23438916.523 23438913.456 23438915.515
+ 33.200 24.900
+ 06 1 1 0 24 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17282333.024 7 -13466741.514 6 21032459.747 21032457.773 21032458.982
+ 42.800 39.700
+ -18851757.274 7 -14689666.035 6 21221143.015 21221141.377 21221142.187
+ 44.700 41.100
+ -435691.406 4 -339498.714 2 25134990.091 25134987.737 25134989.193
+ 24.900 17.800
+ -21183658.313 7 -16506724.468 7 20483057.812 20483055.949 20483056.627
+ 47.000 44.400
+ -10422194.809 5 -8121172.620 5 22824738.472 22824735.066 22824738.078
+ 35.400 30.800
+ -15166849.532 6 -11818315.027 5 21610744.738 21610743.237 21610743.975
+ 40.000 35.900
+ -7761803.433 5 -6048153.201 3 23421101.038 23421097.749 23421100.021
+ 34.000 23.800
+ 06 1 1 0 25 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17342132.800 7 -13513338.729 6 21021080.087 21021078.323 21021079.477
+ 42.900 40.000
+ -18857655.929 7 -14694262.387 6 21220020.402 21220018.893 21220019.601
+ 44.500 41.000
+ -442814.934 3 -345049.513 3 25133634.019 25133632.713 25133633.365
+ 23.800 19.300
+ -21139568.322 7 -16472368.631 7 20491447.821 20491445.926 20491446.622
+ 47.000 44.400
+ -10330101.132 5 -8049411.323 5 22842263.644 22842260.181 22842263.203
+ 35.900 31.800
+ -15265908.232 6 -11895503.601 6 21591894.621 21591892.915 21591893.858
+ 40.200 36.200
+ -7855360.296 5 -6121054.618 4 23403298.126 23403294.828 23403296.927
+ 33.500 25.300
+ 06 1 1 0 25 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17401412.172 7 -13559530.430 6 21009799.897 21009797.876 21009799.077
+ 42.700 39.800
+ -18862980.090 7 -14698411.077 6 21219007.112 21219005.565 21219006.451
+ 44.700 41.100
+ -449484.929 4 -350246.893 2 25132365.509 25132363.012 25132364.519
+ 27.100 15.100
+ -21095125.309 7 -16437737.706 7 20499904.976 20499903.177 20499903.768
+ 47.100 44.400
+ -10237790.106 6 -7977480.660 5 22859830.556 22859826.059 22859829.610
+ 36.100 30.600
+ -15364540.206 6 -11972359.651 5 21573124.782 21573123.860 21573124.623
+ 40.300 35.800
+ -7948851.808 5 -6193905.106 4 23385506.570 23385503.641 23385505.583
+ 32.700 25.300
+ 06 1 1 0 26 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17460169.583 7 -13605315.403 6 20998618.858 20998616.650 20998617.957
+ 43.000 40.000
+ -18867729.482 7 -14702111.896 6 21218103.319 21218101.854 21218102.637
+ 44.600 40.900
+ -455701.003 4 -355090.585 2 25131182.629 25131180.354 25131181.922
+ 26.200 17.000
+ -21050330.846 7 -16402832.934 7 20508429.126 20508427.329 20508427.964
+ 47.100 44.400
+ -10145262.499 5 -7905381.237 5 22877438.410 22877433.708 22877437.151
+ 35.300 31.100
+ -15462742.130 6 -12048880.608 5 21554438.105 21554436.397 21554437.586
+ 40.400 35.600
+ -8042276.395 5 -6266703.453 4 23367728.574 23367725.617 23367727.566
+ 33.900 25.900
+ 06 1 1 0 26 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17518403.048 7 -13650692.111 6 20987537.270 20987535.073 20987536.442
+ 43.000 40.100
+ -18871903.366 7 -14705364.265 6 21217309.356 21217307.614 21217308.487
+ 44.400 41.000
+ -461461.983 3 -359579.675 3 25130085.509 25130084.184 25130084.716
+ 22.100 19.300
+ -133861.439 4 -104307.445 2 24826522.501 24826521.190 24826521.580
+ 25.900 15.100
+ -21005186.562 7 -16367655.568 7 20517019.875 20517018.022 20517018.732
+ 47.200 44.200
+ -10052519.425 5 -7833113.943 5 22895085.998 22895082.155 22895085.322
+ 35.100 31.600
+ -15560511.018 6 -12125064.146 6 21535833.494 21535831.761 21535832.805
+ 40.900 36.200
+ -8135632.919 5 -6339448.772 4 23349963.675 23349960.322 23349962.327
+ 33.400 27.100
+ 06 1 1 0 27 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17576111.032 7 -13695659.360 6 20976555.318 20976553.615 20976554.762
+ 43.000 40.100
+ -18875501.945 7 -14708168.352 6 21216624.356 21216622.694 21216623.610
+ 44.400 40.700
+ -466767.883 3 -363714.125 2 25129076.459 25129074.445 25129075.472
+ 23.400 17.800
+ -196059.505 4 -152773.453 2 24814686.762 24814685.302 24814685.957
+ 26.200 16.100
+ -20959693.712 7 -16332206.590 7 20525676.808 20525674.900 20525675.660
+ 47.300 44.200
+ -9959562.222 5 -7760679.757 5 22912774.925 22912771.315 22912774.403
+ 34.300 31.100
+ -15657843.800 6 -12200907.855 6 21517311.187 21517310.101 21517310.964
+ 41.000 36.400
+ -8228919.939 5 -6412139.922 4 23332211.617 23332208.471 23332210.534
+ 32.700 27.400
+ 06 1 1 0 27 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17633291.832 7 -13740215.804 6 20965674.515 20965672.438 20965673.628
+ 42.900 40.000
+ -18878524.542 7 -14710523.616 6 21216049.231 21216047.545 21216048.391
+ 44.300 40.700
+ -471617.804 3 -367493.317 3 25128153.110 25128151.451 25128152.246
+ 20.500 19.300
+ -257902.641 3 -200962.870 2 24802919.295 24802916.606 24802917.747
+ 23.800 15.100
+ -20913854.187 7 -16296487.479 7 20534399.693 20534397.912 20534398.553
+ 47.200 44.100
+ -9866391.448 5 -7688079.179 5 22930505.361 22930501.013 22930504.143
+ 34.500 31.100
+ -15754737.066 6 -12276409.076 6 21498873.156 21498871.863 21498872.651
+ 40.600 36.500
+ -8322136.150 5 -6484775.877 4 23314473.214 23314469.926 23314472.099
+ 32.800 26.200
+ 06 1 1 0 28 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17689943.518 7 -13784359.955 6 20954894.062 20954891.823 20954893.193
+ 42.800 39.900
+ -18880971.100 7 -14712430.016 6 21215583.659 21215582.100 21215582.841
+ 44.100 41.000
+ -476011.082 4 -370916.653 2 25127317.969 25127314.911 25127316.965
+ 24.600 16.100
+ -319388.452 3 -248873.818 2 24791217.721 24791216.551 24791216.321
+ 22.600 15.100
+ -20867669.796 7 -16260499.643 7 20543188.502 20543186.493 20543187.273
+ 47.100 44.100
+ -9773008.359 5 -7615313.141 5 22948275.489 22948271.312 22948274.587
+ 34.400 30.400
+ -15851187.910 6 -12351565.554 6 21480519.799 21480517.804 21480518.900
+ 40.800 37.000
+ -8415280.357 5 -6557355.743 4 23296748.084 23296745.400 23296747.007
+ 34.100 27.400
+ 06 1 1 0 28 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17746064.660 7 -13828090.702 6 20944214.151 20944212.376 20944213.603
+ 43.100 40.200
+ -18882841.362 7 -14713887.357 6 21215227.724 21215226.173 21215226.927
+ 44.300 40.900
+ -479947.291 3 -373983.834 2 25126568.758 25126565.954 25126567.273
+ 23.400 15.100
+ -380514.264 3 -296504.306 3 24779584.443 24779584.612 24779584.238
+ 22.100 19.900
+ -20821141.971 7 -16224244.195 7 20552042.297 20552040.459 20552041.117
+ 47.000 44.200
+ -9679413.841 5 -7542382.361 5 22966086.473 22966081.932 22966085.107
+ 33.800 31.000
+ -15947193.334 6 -12426374.964 6 21462249.874 21462248.324 21462249.580
+ 41.000 36.300
+ -8508351.361 5 -6629878.557 4 23279036.573 23279034.368 23279035.816
+ 33.000 27.100
+ 06 1 1 0 29 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17801653.509 7 -13871406.669 6 20933636.137 20933634.180 20933635.451
+ 43.100 40.300
+ -18884135.142 7 -14714895.484 6 21214981.549 21214979.781 21214980.738
+ 44.300 40.600
+ -483425.958 3 -376694.486 2 25125906.363 25125903.994 25125905.251
+ 22.100 17.000
+ -441277.243 3 -343852.011 2 24768022.633 24768021.683 24768021.364
+ 19.300 17.800
+ -20774272.216 7 -16187722.307 7 20560961.332 20560959.579 20560960.103
+ 47.000 44.100
+ -9585609.062 5 -7469287.754 5 22983936.188 22983932.553 22983935.416
+ 34.000 31.100
+ -16042750.096 6 -12500834.761 6 21444065.900 21444064.727 21444065.584
+ 41.200 36.500
+ -8601347.543 5 -6702343.077 4 23261341.159 23261337.650 23261339.853
+ 33.800 26.800
+ 06 1 1 0 29 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17856708.461 7 -13914306.611 6 20923159.799 20923157.598 20923158.886
+ 43.200 40.300
+ -18884852.101 7 -14715454.149 6 21214845.183 21214843.377 21214844.353
+ 44.300 40.600
+ -486446.210 3 -379047.901 2 25125331.487 25125329.788 25125330.452
+ 21.100 17.000
+ -501674.823 3 -390914.941 2 24756529.326 24756528.431 24756528.674
+ 21.600 17.800
+ -20727062.464 7 -16150935.485 7 20569944.739 20569943.346 20569943.696
+ 46.800 44.300
+ -9491594.985 5 -7396030.054 5 23001826.214 23001822.559 23001825.437
+ 34.400 30.100
+ -16137855.027 6 -12574942.484 6 21425968.460 21425966.758 21425967.731
+ 41.200 36.900
+ -8694267.585 5 -6774748.277 4 23243658.171 23243655.647 23243657.357
+ 34.100 27.600
+ 06 1 1 0 30 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17911227.947 7 -13956789.302 6 20912785.115 20912782.830 20912784.216
+ 43.300 40.400
+ -18884992.149 7 -14715563.270 6 21214818.525 21214816.747 21214817.795
+ 44.500 40.600
+ -489007.516 3 -381043.759 2 25124844.658 25124842.208 25124843.626
+ 23.800 17.800
+ -561703.907 4 -437690.847 2 24745106.462 24745105.026 24745105.474
+ 24.200 17.800
+ -20679514.177 7 -16113884.869 7 20578992.852 20578991.507 20578991.777
+ 46.700 44.300
+ -9397372.710 5 -7322610.123 4 23019755.209 23019752.275 23019755.355
+ 34.700 28.800
+ -16232505.303 6 -12648695.921 6 21407956.556 21407955.464 21407956.361
+ 41.500 37.200
+ -8787110.383 5 -6847093.286 4 23225991.326 23225988.427 23225990.245
+ 34.500 27.600
+ 06 1 1 0 30 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17965210.425 7 -13998853.549 6 20902512.523 20902510.346 20902511.709
+ 43.600 40.500
+ -18884555.169 7 -14715222.760 6 21214901.709 21214899.968 21214900.902
+ 44.300 40.900
+ -491109.751 3 -382681.845 2 25124443.535 25124441.869 25124442.556
+ 21.600 15.100
+ -621362.095 3 -484177.734 2 24733753.110 24733752.071 24733752.096
+ 22.100 15.100
+ -20631628.786 7 -16076571.572 7 20588105.294 20588103.731 20588104.166
+ 46.600 44.100
+ -9302943.144 5 -7249028.668 4 23037724.787 23037721.780 23037725.027
+ 34.600 29.500
+ -16326697.710 6 -12722092.590 6 21390032.397 21390031.143 21390031.941
+ 41.300 37.400
+ -8879874.486 5 -6919376.974 4 23208338.602 23208335.439 23208337.500
+ 33.400 27.400
+ 06 1 1 0 31 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18018654.061 7 -14040497.921 6 20892342.542 20892340.297 20892341.812
+ 43.600 40.600
+ -18883541.097 7 -14714432.569 6 21215094.484 21215093.002 21215093.729
+ 44.200 40.900
+ -492752.236 3 -383961.706 2 25124131.281 25124129.600 25124130.422
+ 22.100 17.800
+ -680646.581 4 -530373.402 3 24722472.453 24722470.842 24722471.404
+ 24.600 18.600
+ -20583407.971 7 -16038996.913 7 20597281.528 20597279.871 20597280.298
+ 46.700 44.000
+ -9208307.516 5 -7175286.620 4 23055734.409 23055730.476 23055733.820
+ 34.700 29.500
+ -16420429.179 6 -12795130.075 6 21372196.543 21372194.679 21372195.649
+ 41.400 37.600
+ -8972558.183 5 -6991597.982 4 23190701.807 23190698.827 23190700.492
+ 33.900 27.900
+ 06 1 1 0 31 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18071557.515 7 -14081721.381 6 20882275.384 20882273.126 20882274.620
+ 43.600 40.700
+ -18881949.939 7 -14713192.698 6 21215397.277 21215395.993 21215396.499
+ 44.200 41.100
+ -493934.725 3 -384883.112 3 25123906.439 25123904.988 25123905.385
+ 21.100 18.600
+ -739554.886 4 -576275.917 3 24711262.255 24711261.210 24711261.790
+ 25.300 18.600
+ -20534853.548 7 -16001162.298 7 20606521.155 20606519.493 20606519.897
+ 46.600 44.000
+ -9113466.639 5 -7101384.660 4 23073782.915 23073777.949 23073781.704
+ 34.000 29.500
+ -16513696.777 6 -12867806.111 6 21354447.883 21354446.466 21354447.335
+ 41.600 37.600
+ -9065160.398 5 -7063755.541 4 23173079.858 23173076.650 23173078.778
+ 34.900 26.500
+ 06 1 1 0 32 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18123919.260 7 -14122522.722 6 20872311.184 20872309.018 20872310.377
+ 43.400 40.800
+ -18879781.456 7 -14711502.966 6 21215809.660 21215808.446 21215808.873
+ 43.700 40.900
+ -494656.277 3 -385445.383 2 25123769.619 25123766.829 25123768.759
+ 23.400 16.100
+ -798084.315 3 -621883.240 3 24700124.377 24700123.476 24700123.320
+ 23.400 22.100
+ -20485967.202 7 -15963069.038 7 20615823.786 20615822.170 20615822.630
+ 46.900 43.600
+ -9018421.531 5 -7027323.548 4 23091868.768 23091864.437 23091867.684
+ 34.300 29.200
+ -16606497.382 6 -12940118.250 6 21336788.549 21336787.056 21336788.049
+ 41.900 37.600
+ -9157679.868 5 -7135848.600 4 23155474.556 23155470.538 23155473.215
+ 34.100 26.800
+ 06 1 1 0 32 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18175737.793 7 -14162900.778 6 20862450.342 20862448.281 20862449.592
+ 43.500 40.900
+ -18877035.677 7 -14709363.396 6 21216332.400 21216330.868 21216331.564
+ 43.900 40.800
+ -494916.858 4 -385648.415 3 25123719.341 25123718.230 25123718.796
+ 25.600 22.600
+ -856232.112 4 -667193.162 3 24689059.878 24689058.307 24689058.970
+ 25.900 21.600
+ -20436750.311 7 -15924718.216 7 20625189.434 20625187.807 20625188.305
+ 46.900 43.800
+ -8923173.328 5 -6953104.174 4 23109992.946 23109989.676 23109992.936
+ 33.600 29.500
+ -16698828.153 7 -13012064.289 6 21319218.676 21319217.026 21319218.065
+ 42.000 37.700
+ -9250114.942 5 -7207875.924 4 23137884.241 23137881.077 23137882.939
+ 34.600 27.400
+ 06 1 1 0 33 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18227011.573 7 -14202854.356 6 20852693.220 20852691.058 20852692.487
+ 43.600 40.700
+ -18873712.593 7 -14706773.977 6 21216964.580 21216963.293 21216963.870
+ 43.800 40.800
+ -494715.872 4 -385491.818 3 25123757.910 25123756.268 25123756.742
+ 24.200 19.900
+ -913995.467 4 -712203.524 2 24678067.947 24678065.780 24678066.714
+ 26.500 17.800
+ -20387204.513 7 -15886111.097 7 20634617.772 20634616.009 20634616.615
+ 47.000 43.600
+ -8827722.903 5 -6878727.195 4 23128156.250 23128152.953 23128156.253
+ 33.200 28.800
+ -16790685.894 6 -13083641.723 6 21301738.224 21301737.077 21301738.011
+ 41.900 37.700
+ -9342464.235 5 -7279836.382 4 23120311.385 23120307.750 23120310.115
+ 35.500 28.400
+ 06 1 1 0 33 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18277739.150 7 -14242382.324 6 20843040.030 20843037.866 20843039.329
+ 43.400 40.700
+ -18869812.109 7 -14703734.632 6 21217707.013 21217705.537 21217706.195
+ 43.600 40.900
+ -494053.107 3 -384975.390 3 25123883.752 25123882.521 25123883.065
+ 20.500 20.500
+ -971371.712 3 -756912.272 3 24667149.099 24667147.778 24667147.607
+ 23.400 21.100
+ -20337331.647 7 -15847249.121 7 20644108.195 20644106.566 20644107.034
+ 47.100 43.500
+ -8732071.734 5 -6804193.802 4 23146359.064 23146355.186 23146358.213
+ 32.800 29.900
+ -16882067.716 6 -13154848.304 6 21284348.996 21284347.621 21284348.522
+ 41.900 37.700
+ -9434726.460 5 -7351728.999 4 23102754.007 23102750.836 23102752.818
+ 35.300 28.800
+ 06 1 1 0 34 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18327919.169 7 -14281483.620 6 20833490.987 20833488.958 20833490.292
+ 43.400 40.900
+ -18865333.880 7 -14700245.104 6 21218559.341 21218557.867 21218558.433
+ 43.800 41.000
+ -492928.131 3 -384098.792 3 25124098.220 25124096.201 25124097.114
+ 22.600 19.300
+ -1028358.203 4 -801317.318 3 24656304.569 24656303.565 24656303.745
+ 25.300 19.300
+ -20287133.253 7 -15808133.484 7 20653660.848 20653659.028 20653659.666
+ 47.300 43.400
+ -8636220.672 5 -6729504.688 4 23164598.848 23164595.259 23164597.630
+ 32.100 28.800
+ -16972970.659 7 -13225681.744 6 21267050.869 21267049.310 21267050.412
+ 42.400 37.500
+ -9526900.283 5 -7423552.731 4 23085213.679 23085210.699 23085212.487
+ 35.100 27.900
+ 06 1 1 0 34 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18377550.043 7 -14320157.010 6 20824046.664 20824044.603 20824045.913
+ 43.600 41.200
+ -18860278.605 7 -14696305.924 6 21219520.922 21219519.688 21219520.155
+ 43.500 41.000
+ -491340.531 4 -382861.732 3 25124400.574 25124398.571 25124399.803
+ 25.900 20.500
+ -1084952.813 4 -845416.955 3 24645535.931 24645534.518 24645534.456
+ 25.600 22.100
+ -20236610.759 7 -15768765.306 7 20663274.830 20663273.150 20663273.719
+ 47.300 43.300
+ -8540170.870 5 -6654660.706 4 23182877.517 23182872.809 23182875.989
+ 32.400 28.400
+ -17063391.726 7 -13296139.683 6 21249844.155 21249842.609 21249843.615
+ 42.000 37.600
+ -9618984.121 5 -7495306.350 4 23067690.782 23067687.525 23067689.532
+ 35.400 27.400
+ 06 1 1 0 35 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18426630.342 7 -14358401.376 6 20814707.030 20814704.967 20814706.261
+ 43.600 41.400
+ -18854645.815 7 -14691916.732 6 21220593.021 21220591.548 21220592.217
+ 43.800 40.700
+ -489289.986 3 -381263.907 3 25124790.639 25124788.705 25124789.368
+ 22.100 21.600
+ -1141152.331 4 -889208.739 2 24634841.320 24634839.067 24634840.187
+ 28.100 16.100
+ -20185765.750 7 -15729145.812 7 20672950.221 20672948.604 20672949.153
+ 47.400 43.100
+ -8443923.238 5 -6579662.560 4 23201192.151 23201187.944 23201190.978
+ 31.600 28.800
+ -17153327.998 7 -13366219.874 6 21232730.096 21232728.338 21232729.363
+ 42.100 37.900
+ -9710976.688 5 -7566988.833 4 23050184.398 23050181.587 23050183.565
+ 35.400 26.800
+ 06 1 1 0 35 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18475158.966 7 -14396215.875 6 20805472.371 20805470.192 20805471.549
+ 43.600 41.400
+ -18848436.036 7 -14687077.942 6 21221774.839 21221773.202 21221774.034
+ 43.800 40.600
+ -486776.310 4 -379305.204 3 25125269.194 25125267.226 25125268.135
+ 25.600 22.600
+ -1196954.368 4 -932690.835 2 24624223.067 24624219.836 24624221.558
+ 28.400 13.900
+ -20134600.104 7 -15689276.475 7 20682686.796 20682685.005 20682685.632
+ 47.200 43.000
+ -8347478.935 5 -6504511.162 4 23219544.529 23219540.700 23219543.853
+ 31.000 28.100
+ -17242776.556 7 -13435920.016 6 21215707.846 21215706.995 21215707.651
+ 42.400 38.400
+ -9802876.192 5 -7638598.817 4 23032697.333 23032693.725 23032696.110
+ 35.900 27.600
+ 06 1 1 0 36 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18523134.335 7 -14433599.262 6 20796342.944 20796340.720 20796342.202
+ 43.700 41.200
+ -18841649.306 7 -14681789.579 6 21223066.214 21223064.761 21223065.507
+ 44.000 40.700
+ -483798.800 4 -376985.097 3 25125835.259 25125833.770 25125834.384
+ 24.600 21.100
+ -1252356.540 4 -975861.335 2 24613679.793 24613677.547 24613678.611
+ 26.500 15.100
+ -20083115.454 7 -15649158.564 7 20692484.040 20692482.154 20692482.862
+ 47.000 42.900
+ -8250838.999 5 -6429207.316 4 23237933.959 23237930.709 23237933.615
+ 32.400 28.600
+ -17331734.571 7 -13505237.930 6 21198780.506 21198778.723 21198779.673
+ 42.200 38.400
+ -9894681.570 6 -7710135.461 4 23015227.345 23015223.758 23015226.306
+ 36.500 27.900
+ 06 1 1 0 36 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18570555.269 7 -14470550.626 6 20787318.848 20787316.792 20787318.131
+ 43.600 41.200
+ -18834285.525 7 -14676051.565 6 21224467.644 21224465.918 21224466.843
+ 44.100 40.600
+ -480357.458 3 -374303.537 3 25126490.672 25126488.405 25126489.601
+ 23.800 19.300
+ -1307356.123 4 -1018718.122 2 24603213.586 24603211.644 24603212.485
+ 28.100 17.800
+ -20031313.345 7 -15608793.280 7 20702341.693 20702339.803 20702340.430
+ 47.000 42.900
+ -8154004.284 5 -6353751.721 4 23256360.810 23256357.737 23256360.391
+ 31.500 28.100
+ -17420198.953 7 -13574171.200 6 21181945.437 21181944.388 21181945.290
+ 42.400 38.200
+ -9986390.948 6 -7781597.294 4 22997775.381 22997772.063 22997774.240
+ 36.300 28.400
+ 06 1 1 0 37 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18617420.255 7 -14507068.780 6 20778400.336 20778398.751 20778399.809
+ 43.600 41.300
+ -18826344.985 7 -14669864.128 6 21225978.675 21225977.079 21225977.884
+ 44.200 40.700
+ -476452.171 4 -371260.453 3 25127233.750 25127231.703 25127232.785
+ 24.900 18.600
+ -1361950.420 4 -1061259.102 2 24592824.627 24592822.751 24592823.670
+ 26.500 17.800
+ -19979195.361 7 -15568181.862 7 20712259.398 20712257.590 20712258.181
+ 47.000 42.800
+ -8056976.258 5 -6278145.445 4 23274825.165 23274821.478 23274824.338
+ 32.100 27.400
+ -17508166.797 7 -13642717.544 6 21165206.305 21165204.498 21165205.714
+ 42.700 37.900
+ -10078003.374 6 -7852983.577 4 22980342.167 22980339.093 22980341.188
+ 36.700 29.700
+ 06 1 1 0 37 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18663727.971 7 -14543152.699 6 20769588.656 20769586.620 20769587.914
+ 43.700 41.400
+ -18817828.150 7 -14663227.630 6 21227599.618 21227597.746 21227598.769
+ 44.600 40.600
+ -472082.500 4 -367855.525 2 25128065.283 25128062.914 25128064.018
+ 24.200 17.000
+ -1416136.956 4 -1103482.361 2 24582512.740 24582511.393 24582511.914
+ 25.900 16.100
+ -19926763.255 7 -15527325.674 7 20722236.823 20722235.080 20722235.680
+ 46.800 43.100
+ -7959755.661 5 -6202389.119 4 23293326.696 23293321.754 23293325.423
+ 32.400 27.100
+ -17595635.411 7 -13710874.893 6 21148561.706 21148559.766 21148561.108
+ 42.800 38.100
+ -10169517.063 5 -7924292.920 5 22962927.781 22962924.637 22962926.666
+ 35.900 30.400
+ 06 1 1 0 38 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18709477.413 7 -14578801.603 6 20760882.753 20760880.729 20760882.185
+ 43.900 41.500
+ -18808734.898 7 -14656141.979 6 21229329.825 21229328.136 21229328.990
+ 44.100 40.900
+ -467248.450 3 -364088.723 3 25128984.766 25128983.361 25128984.057
+ 23.400 18.600
+ -1469912.591 4 -1145385.402 2 24572279.266 24572278.421 24572278.611
+ 24.200 17.800
+ -19874018.442 7 -15486225.817 7 20732273.863 20732272.074 20732272.646
+ 46.700 42.800
+ -7862343.528 5 -6126483.569 4 23311863.136 23311859.022 23311862.279
+ 32.000 28.800
+ -17682601.790 7 -13778640.870 6 21132012.380 21132010.892 21132011.834
+ 42.700 38.600
+ -10260930.557 6 -7995524.183 4 22945532.063 22945529.155 22945531.193
+ 36.500 29.500
+ 06 1 1 0 38 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18754667.121 7 -14614014.350 6 20752283.467 20752281.360 20752282.800
+ 43.800 41.500
+ -18799064.852 7 -14648606.878 6 21231169.887 21231168.341 21231169.064
+ 44.100 40.500
+ -461949.732 3 -359959.872 2 25129993.313 25129991.394 25129992.406
+ 23.000 17.800
+ -1523275.472 3 -1186966.832 3 24562124.529 24562123.642 24562123.650
+ 23.000 19.300
+ -19820962.503 7 -15444883.529 7 20742370.276 20742368.365 20742368.979
+ 46.800 42.900
+ -7764741.534 5 -6050430.097 4 23330435.936 23330432.218 23330434.927
+ 31.000 28.400
+ -17769063.090 7 -13846013.272 6 21115559.076 21115557.834 21115558.739
+ 42.800 38.700
+ -10352242.534 6 -8066676.351 4 22928156.035 22928152.892 22928155.143
+ 37.100 29.500
+ 06 1 1 0 39 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18799295.994 7 -14648790.084 6 20743790.760 20743788.812 20743790.164
+ 44.000 41.600
+ -18788819.631 7 -14640623.582 6 21233119.459 21233117.971 21233118.669
+ 44.000 40.700
+ -456185.928 3 -355468.598 2 25131090.371 25131088.058 25131089.295
+ 23.400 15.100
+ -1576223.236 3 -1228224.805 2 24552049.484 24552047.722 24552048.274
+ 23.400 13.900
+ -19767597.143 7 -15403300.132 7 20752524.916 20752523.339 20752523.866
+ 47.000 42.800
+ -7666950.362 5 -5974229.209 4 23349045.123 23349041.158 23349044.149
+ 30.200 27.900
+ -17855016.612 7 -13912990.010 6 21099202.700 21099201.350 21099202.291
+ 43.100 38.900
+ -10443451.416 6 -8137748.199 4 22910800.080 22910796.528 22910798.677
+ 36.600 29.700
+ 06 1 1 0 39 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18843362.676 7 -14683127.746 6 20735405.379 20735403.198 20735404.592
+ 43.800 41.500
+ -18777998.994 7 -14632191.920 6 21235178.522 21235176.986 21235177.741
+ 44.000 40.700
+ -449956.799 3 -350614.749 2 25132275.455 25132273.708 25132274.609
+ 23.400 17.800
+ -1628753.108 4 -1269157.147 2 24542053.568 24542051.517 24542052.117
+ 24.900 13.900
+ -19713923.826 7 -15361476.767 7 20762738.819 20762737.072 20762737.671
+ 46.800 42.600
+ -7568970.784 5 -5897881.507 4 23367689.706 23367685.811 23367688.777
+ 31.100 26.800
+ -17940459.289 7 -13979568.689 6 21082943.521 21082941.966 21082943.042
+ 43.100 38.500
+ -10534555.588 6 -8208738.434 4 22893463.488 22893459.711 22893462.271
+ 36.900 28.600
+ 06 1 1 0 40 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18886866.149 7 -14717026.543 6 20727126.874 20727124.767 20727126.149
+ 43.800 41.600
+ -18766603.064 7 -14623311.971 6 21237347.198 21237345.553 21237346.413
+ 44.000 40.700
+ -443262.209 3 -345398.203 2 25133548.942 25133546.786 25133548.033
+ 19.900 16.100
+ -1680862.842 4 -1309762.068 2 24532137.638 24532135.248 24532136.820
+ 25.300 16.100
+ -19659944.415 7 -15319414.888 7 20773010.911 20773009.039 20773009.684
+ 47.000 42.700
+ -7470804.551 5 -5821388.330 4 23386370.640 23386366.045 23386369.509
+ 30.400 25.900
+ -18025388.546 7 -14045747.296 6 21066782.042 21066780.553 21066781.466
+ 43.000 39.100
+ -10625553.531 6 -8279645.903 4 22876147.004 22876143.162 22876145.876
+ 37.100 27.900
+ 06 1 1 0 40 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18929805.111 7 -14750485.458 6 20718955.888 20718953.787 20718955.134
+ 43.700 41.900
+ -18754632.262 7 -14613984.071 6 21239625.096 21239623.654 21239624.296
+ 43.900 40.600
+ -436102.401 4 -339819.133 3 25134911.949 25134909.878 25134911.108
+ 24.600 18.600
+ -1732549.730 4 -1350037.544 2 24522301.867 24522299.441 24522300.598
+ 27.400 17.000
+ -19605660.502 7 -15277115.737 7 20783340.859 20783338.927 20783339.611
+ 47.100 42.700
+ -7372452.523 5 -5744750.397 4 23405084.863 23405082.341 23405084.569
+ 30.100 27.100
+ -18109801.625 7 -14111523.691 6 21050718.635 21050717.217 21050718.193
+ 43.200 39.100
+ -10716443.926 6 -8350469.588 4 22858850.705 22858847.451 22858849.880
+ 36.800 28.600
+ 06 1 1 0 41 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18972178.593 7 -14783503.746 6 20710892.585 20710890.285 20710891.789
+ 43.900 41.900
+ -18742086.488 7 -14604208.145 6 21242012.524 21242010.913 21242011.731
+ 43.900 40.400
+ -428477.033 3 -333877.298 3 25136362.654 25136361.192 25136361.559
+ 19.300 19.300
+ -1783811.298 4 -1389981.587 3 24512546.570 24512545.441 24512545.594
+ 26.800 21.100
+ -19551073.484 7 -15234580.399 7 20793728.293 20793726.416 20793727.097
+ 47.000 42.500
+ -7273915.740 5 -5667968.529 4 23423836.425 23423833.488 23423835.778
+ 31.600 28.100
+ -18193695.565 7 -14176895.568 6 21034754.087 21034752.811 21034753.666
+ 43.100 39.200
+ -10807225.202 6 -8421208.214 5 22841575.895 22841572.651 22841574.715
+ 36.400 30.800
+ 06 1 1 0 41 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19013985.502 7 -14816080.544 6 20702936.911 20702934.681 20702936.113
+ 43.900 41.900
+ -18728966.475 7 -14593984.750 6 21244508.923 21244507.622 21244508.205
+ 43.800 40.500
+ -420386.111 3 -327572.690 2 25137901.887 25137900.833 25137901.212
+ 22.100 17.800
+ -1834645.365 4 -1429592.492 3 24502873.050 24502871.609 24502872.613
+ 25.600 21.600
+ -19496185.089 7 -15191810.220 7 20804173.162 20804171.407 20804171.957
+ 47.000 42.400
+ -7175195.412 5 -5591043.602 4 23442623.297 23442618.914 23442622.007
+ 31.600 25.300
+ -18277067.762 7 -14241860.890 6 21018889.448 21018887.556 21018888.666
+ 43.600 39.300
+ -10897895.808 6 -8491860.614 5 22824321.561 22824318.639 22824320.700
+ 37.700 31.300
+ 06 1 1 0 42 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19055224.429 7 -14848214.758 7 20695089.375 20695087.085 20695088.633
+ 44.000 42.000
+ -18715272.378 7 -14583314.027 6 21247114.898 21247113.433 21247114.059
+ 43.300 40.400
+ -411829.469 3 -320905.176 2 25139530.467 25139528.907 25139529.749
+ 21.600 17.000
+ -1885049.265 4 -1468868.249 3 24493281.761 24493280.262 24493280.749
+ 27.400 23.800
+ -19440996.889 7 -15148806.430 7 20814675.300 20814673.337 20814674.027
+ 46.900 42.500
+ -7076292.431 5 -5513976.345 4 23461443.729 23461439.492 23461442.604
+ 30.200 27.100
+ -18359915.370 7 -14306417.450 6 21003123.485 21003122.081 21003123.167
+ 43.900 39.300
+ -10988454.200 6 -8562425.570 5 22807089.146 22807085.613 22807087.992
+ 37.500 30.200
+ 06 1 1 0 42 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19095894.534 7 -14879905.738 7 20687350.040 20687347.894 20687349.369
+ 44.200 42.100
+ -18701005.004 7 -14572196.590 6 21249829.733 21249828.414 21249829.039
+ 43.500 40.500
+ -402807.183 3 -313874.842 2 25141247.917 25141245.638 25141247.010
+ 23.800 17.800
+ -1935020.469 4 -1507806.819 3 24483772.923 24483771.149 24483771.766
+ 25.900 23.000
+ -19385510.569 7 -15105570.338 7 20825233.729 20825232.081 20825232.505
+ 46.600 42.300
+ -6977208.036 4 -5436767.758 4 23480298.381 23480294.896 23480297.492
+ 29.700 26.800
+ -18442235.588 7 -14370563.053 6 20987458.829 20987456.992 20987458.210
+ 43.900 39.300
+ -11078897.979 6 -8632901.223 5 22789878.442 22789874.604 22789877.135
+ 37.200 30.100
+ 06 1 1 0 43 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19135994.719 7 -14911152.624 7 20679719.055 20679717.151 20679718.438
+ 44.200 42.200
+ -18686164.871 7 -14560632.849 6 21252653.803 21252652.409 21252652.996
+ 43.300 40.500
+ -393319.198 3 -306481.617 3 25143052.824 25143051.383 25143051.997
+ 23.000 21.600
+ -1984556.521 4 -1546406.301 3 24474345.966 24474344.007 24474344.845
+ 24.200 19.300
+ -19329727.559 7 -15062103.056 7 20835848.941 20835847.145 20835847.724
+ 46.600 42.200
+ -6877943.196 5 -5359418.559 4 23499188.368 23499184.447 23499187.330
+ 31.500 27.600
+ -18524025.801 7 -14434295.659 6 20971894.051 20971892.874 20971893.861
+ 43.800 39.300
+ -11169227.147 6 -8703287.579 5 22772689.003 22772685.712 22772687.880
+ 37.300 30.800
+ 06 1 1 0 43 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19175523.959 7 -14941954.616 7 20672197.100 20672194.968 20672196.334
+ 44.300 42.300
+ -18670752.237 7 -14548623.008 6 21255587.149 21255585.356 21255586.283
+ 43.600 40.200
+ -383365.271 3 -298725.331 2 25144947.529 25144945.639 25144946.457
+ 23.400 17.000
+ -2033655.375 4 -1584665.109 3 24465003.390 24465001.265 24465001.955
+ 24.600 19.300
+ -19273649.453 7 -15018405.837 7 20846520.378 20846518.458 20846519.190
+ 46.600 42.100
+ -6778499.430 5 -5281929.947 4 23518112.819 23518107.972 23518111.551
+ 32.400 27.400
+ -18605283.360 7 -14497613.223 6 20956431.742 20956429.976 20956431.125
+ 43.800 39.100
+ -11259439.532 6 -8773582.926 5 22755521.723 22755519.057 22755520.788
+ 37.200 31.100
+ 06 1 1 0 44 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19214481.277 7 -14972310.950 7 20664783.755 20664781.563 20664783.073
+ 44.600 42.300
+ -18654767.347 7 -14536167.244 6 21258628.591 21258626.950 21258627.874
+ 43.600 40.100
+ -372945.600 3 -290606.121 2 25146930.713 25146927.947 25146929.613
+ 20.500 13.900
+ -2082314.227 4 -1622581.076 2 24455742.713 24455741.028 24455741.731
+ 25.300 15.100
+ -19217277.882 7 -14974479.940 7 20857247.233 20857245.658 20857246.179
+ 46.600 42.000
+ -6678877.642 5 -5204302.597 4 23537069.167 23537065.326 23537068.250
+ 30.400 26.800
+ -18686005.486 7 -14560513.551 6 20941070.862 20941069.116 20941070.188
+ 43.900 39.200
+ -11349533.230 6 -8843785.786 5 22738377.543 22738374.694 22738376.502
+ 36.700 30.400
+ 06 1 1 0 44 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19252865.738 7 -15002220.912 7 20657479.410 20657477.241 20657478.756
+ 44.700 42.300
+ -18638211.022 7 -14523266.209 6 21261779.308 21261777.486 21261778.545
+ 43.500 39.800
+ -362060.176 3 -282123.989 3 25149001.466 25149000.303 25149000.367
+ 21.600 18.600
+ -2130530.808 4 -1660152.438 2 24446567.607 24446565.982 24446566.750
+ 26.200 17.000
+ -19160614.581 7 -14930326.722 7 20868030.013 20868028.369 20868028.802
+ 46.700 42.100
+ -6579078.810 4 -5126537.305 4 23556059.802 23556055.979 23556059.091
+ 28.800 24.600
+ -18766189.711 7 -14622994.744 6 20925812.152 20925810.430 20925811.606
+ 44.000 39.700
+ -11439506.736 6 -8913895.001 5 22721256.390 22721253.207 22721255.304
+ 38.100 31.100
+ 06 1 1 0 45 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19290676.500 7 -15031683.830 7 20650284.285 20650281.917 20650283.577
+ 44.300 42.500
+ -18621083.483 7 -14509920.080 6 21265038.589 21265036.969 21265037.805
+ 43.500 40.000
+ -350708.954 3 -273278.912 2 25151161.544 25151159.524 25151160.608
+ 19.900 15.100
+ -2178303.158 4 -1697377.597 2 24437477.621 24437475.483 24437475.982
+ 24.600 17.000
+ -19103661.066 7 -14885947.361 6 20878868.001 20878866.137 20878866.736
+ 46.800 41.900
+ -6479104.236 4 -5048635.057 4 23575083.985 23575080.947 23575083.488
+ 29.200 25.900
+ -18845833.182 7 -14685054.564 6 20910656.731 20910654.728 20910656.020
+ 44.000 39.500
+ -11529358.488 6 -8983909.342 5 22704157.590 22704154.829 22704156.961
+ 38.000 30.200
+ 06 1 1 0 45 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19327912.324 7 -15060698.746 7 20643198.613 20643196.345 20643197.887
+ 44.200 42.600
+ -18603385.407 7 -14496129.367 6 21268406.112 21268404.711 21268405.354
+ 43.200 39.900
+ -338891.862 3 -264070.815 3 25153410.253 25153408.975 25153409.606
+ 21.100 20.500
+ -2225628.927 4 -1734254.811 3 24428471.343 24428469.627 24428470.552
+ 25.300 18.600
+ -19046418.786 7 -14841342.988 6 20889761.087 20889758.987 20889759.876
+ 46.900 41.800
+ -6378954.943 4 -4970596.634 4 23594142.242 23594138.928 23594141.705
+ 29.900 26.200
+ -18924933.438 7 -14746691.110 6 20895604.267 20895602.531 20895603.691
+ 43.900 39.800
+ -11619087.267 6 -9053827.861 4 22687083.705 22687080.086 22687082.653
+ 38.500 29.900
+ 06 1 1 0 46 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19364572.495 7 -15089265.097 7 20636222.320 20636220.146 20636221.594
+ 44.200 42.700
+ -18585117.580 7 -14481894.698 6 21271882.738 21271881.008 21271881.954
+ 43.700 39.900
+ -326609.266 3 -254499.989 2 25155748.294 25155745.516 25155747.398
+ 23.400 17.000
+ -2272505.548 4 -1770782.024 3 24419550.547 24419549.401 24419549.843
+ 25.300 19.900
+ -18988889.388 7 -14796514.882 6 20900708.397 20900706.521 20900707.276
+ 47.000 41.800
+ -6278632.105 4 -4892422.989 4 23613232.180 23613229.791 23613232.181
+ 28.400 27.100
+ -19003487.839 7 -14807902.310 6 20880655.924 20880654.098 20880655.405
+ 44.400 39.900
+ -11708691.048 6 -9123648.993 4 22670032.114 22670028.867 22670031.191
+ 38.400 29.700
+ 06 1 1 0 46 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19400656.089 7 -15117382.168 7 20629355.753 20629353.770 20629355.055
+ 44.100 42.800
+ -18566280.310 7 -14467216.309 6 21275467.352 21275465.436 21275466.586
+ 43.700 40.000
+ -313861.284 3 -244566.446 2 25158173.910 25158171.407 25158172.903
+ 20.500 13.900
+ -2318930.663 4 -1806957.410 2 24410716.559 24410714.463 24410715.538
+ 26.500 13.900
+ -18931074.492 7 -14751464.314 6 20911710.364 20911708.398 20911709.175
+ 46.800 41.900
+ -6178136.799 4 -4814114.982 4 23632355.868 23632353.219 23632355.632
+ 27.100 26.200
+ -19081493.880 7 -14868686.225 6 20865811.972 20865810.003 20865811.288
+ 44.300 40.000
+ -11798168.373 6 -9193371.574 5 22653004.784 22653002.517 22653004.036
+ 38.100 31.100
+ 06 1 1 0 47 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19436162.283 7 -15145049.323 7 20622598.992 20622597.027 20622598.433
+ 44.300 42.700
+ -18546874.480 7 -14452094.881 6 21279159.836 21279158.627 21279159.140
+ 43.300 40.300
+ -300647.844 3 -234270.289 2 25160688.197 25160685.797 25160687.350
+ 21.600 13.900
+ -2364902.081 4 -1842779.287 2 24401968.364 24401966.104 24401967.552
+ 26.500 15.100
+ -18872975.608 7 -14706192.462 6 20922766.271 20922764.130 20922765.046
+ 46.800 41.500
+ -6077470.466 4 -4735673.721 4 23651511.329 23651509.179 23651512.023
+ 29.000 24.900
+ -19158948.707 7 -14929040.615 6 20851072.613 20851070.792 20851071.960
+ 44.000 39.800
+ -11887517.483 6 -9262994.232 5 22636003.152 22635999.650 22636001.901
+ 38.400 31.600
+ 06 1 1 0 47 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19471090.094 7 -15172265.786 7 20615952.749 20615950.447 20615951.921
+ 44.100 42.700
+ -18526900.759 7 -14436530.942 6 21282960.910 21282959.575 21282960.080
+ 43.200 40.000
+ -286969.026 3 -223611.478 2 25163291.221 25163289.503 25163290.416
+ 23.000 17.800
+ -2410416.405 4 -1878245.000 3 24393307.263 24393305.805 24393306.363
+ 26.500 19.300
+ -18814594.378 7 -14660700.593 6 20933875.840 20933873.750 20933874.596
+ 46.700 41.600
+ -5976634.188 4 -4657100.004 4 23670700.197 23670698.091 23670700.746
+ 29.700 26.800
+ -19235849.966 7 -14988963.653 6 20836438.419 20836436.973 20836438.076
+ 44.400 40.200
+ -11976736.642 6 -9332515.642 5 22619025.106 22619021.738 22619024.038
+ 39.100 31.800
+ 06 1 1 0 48 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19505438.868 7 -15199031.053 7 20609416.181 20609414.090 20609415.560
+ 44.300 42.800
+ -18506359.872 7 -14420525.052 6 21286869.587 21286868.164 21286868.841
+ 43.200 40.200
+ -272825.015 3 -212590.183 2 25165982.713 25165981.135 25165981.611
+ 22.600 16.100
+ -2455473.085 4 -1913354.034 3 24384733.098 24384731.844 24384732.268
+ 26.500 19.900
+ -18755932.540 7 -14614990.069 6 20945038.691 20945036.726 20945037.483
+ 46.600 41.300
+ -5875628.969 4 -4578394.666 4 23689921.001 23689918.803 23689920.939
+ 28.600 26.200
+ -19312195.196 7 -15048453.419 6 20821910.845 20821908.903 20821910.304
+ 44.700 40.200
+ -12065824.674 6 -9401934.883 5 22602072.237 22602068.819 22602071.028
+ 38.900 32.100
+ 06 1 1 0 48 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19539207.926 7 -15225344.590 7 20602990.192 20602988.053 20602989.508
+ 44.200 43.000
+ -18485252.335 7 -14404077.624 6 21290886.523 21290884.665 21290885.686
+ 43.300 39.900
+ -258216.002 4 -201206.533 2 25168762.921 25168760.881 25168761.983
+ 27.100 17.800
+ -2500069.579 4 -1948104.560 2 24376246.979 24376245.015 24376246.359
+ 28.400 16.100
+ -18696991.343 7 -14569061.867 6 20956254.774 20956252.835 20956253.583
+ 46.600 41.300
+ -5774455.846 4 -4499558.517 4 23709172.452 23709171.512 23709173.451
+ 26.800 25.600
+ -19387981.812 7 -15107507.905 6 20807488.927 20807487.215 20807488.436
+ 44.700 40.500
+ -12154779.636 6 -9471250.426 5 22585144.658 22585141.279 22585143.593
+ 39.300 31.300
+ 06 1 1 0 49 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19572396.180 7 -15251205.559 7 20596674.674 20596672.475 20596673.964
+ 44.300 42.800
+ -18463578.807 7 -14387189.162 6 21295010.822 21295009.168 21295010.000
+ 43.400 39.900
+ -243141.995 4 -189460.551 2 25171631.543 25171629.224 25171630.564
+ 26.200 16.100
+ -2544203.709 4 -1982494.749 3 24367848.500 24367847.341 24367847.535
+ 27.100 20.500
+ -18637772.616 7 -14522917.401 6 20967523.867 20967521.853 20967522.685
+ 46.600 41.200
+ -5673116.116 4 -4420592.464 3 23728458.977 23728455.376 23728458.540
+ 28.600 22.600
+ -19463207.188 7 -15166125.061 6 20793174.050 20793172.332 20793173.514
+ 44.800 40.800
+ -12243600.191 6 -9540461.239 5 22568242.393 22568239.163 22568241.502
+ 38.800 31.100
+ 06 1 1 0 49 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19605003.113 7 -15276613.547 7 20590469.823 20590467.578 20590469.101
+ 44.400 42.800
+ -18441339.825 7 -14369860.087 6 21299242.470 21299241.100 21299241.737
+ 43.400 40.000
+ -227603.689 3 -177352.787 2 25174587.612 25174586.471 25174586.890
+ 23.400 16.100
+ -2587873.026 4 -2016522.750 3 24359538.836 24359536.844 24359537.451
+ 26.800 19.900
+ -18578277.744 7 -14476557.764 6 20978845.199 20978843.290 20978844.030
+ 46.300 41.100
+ -5571610.879 4 -4341497.534 3 23747776.016 23747771.157 23747774.665
+ 28.400 23.000
+ -19537869.064 7 -15224303.131 6 20778966.307 20778964.635 20778965.856
+ 44.900 40.800
+ -12332284.090 6 -9609565.573 5 22551366.313 22551362.996 22551365.357
+ 38.900 30.600
+ 06 1 1 0 50 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19637027.987 7 -15301567.989 7 20584375.749 20584373.447 20584374.958
+ 44.400 43.200
+ -18418536.852 7 -14352091.533 6 21303581.976 21303580.090 21303581.153
+ 43.100 39.600
+ -211601.003 3 -164883.201 2 25177633.001 25177631.311 25177631.882
+ 22.600 16.100
+ -2631075.208 3 -2050186.744 2 24351317.051 24351315.566 24351316.059
+ 23.800 17.800
+ -18518508.383 7 -14429984.237 6 20990218.794 20990216.972 20990217.675
+ 46.100 40.900
+ -5469941.465 4 -4262274.615 4 23767123.138 23767118.282 23767121.819
+ 27.400 25.600
+ -19611964.793 7 -15282040.042 6 20764866.721 20764864.731 20764866.038
+ 44.700 40.900
+ -12420830.068 6 -9678562.434 5 22534517.167 22534513.596 22534515.933
+ 39.300 32.000
+ 06 1 1 0 50 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19668469.976 7 -15326068.229 7 20578392.743 20578390.254 20578391.881
+ 44.600 43.200
+ -18395170.353 7 -14333883.875 6 21308028.360 21308026.482 21308027.639
+ 43.100 39.500
+ -195133.999 4 -152051.803 3 25180767.146 25180765.257 25180766.241
+ 24.900 18.600
+ -2673808.002 4 -2083485.026 3 24343186.130 24343183.353 24343184.899
+ 26.800 18.600
+ -18458466.017 7 -14383197.977 6 21001644.581 21001642.674 21001643.378
+ 46.100 40.700
+ -5368108.720 4 -4182924.456 3 23786500.156 23786496.423 23786499.488
+ 28.600 23.800
+ -19685492.085 7 -15339334.021 6 20750874.586 20750872.791 20750874.112
+ 44.900 40.900
+ -12509236.534 6 -9747450.577 5 22517693.527 22517690.390 22517692.567
+ 39.300 32.000
+ 06 1 1 0 51 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19699328.520 7 -15350113.838 7 20572520.469 20572518.069 20572519.729
+ 44.600 43.100
+ -18371240.912 7 -14315237.561 6 21312581.847 21312580.472 21312581.126
+ 43.200 39.700
+ -178203.032 3 -138858.848 2 25183988.566 25183987.023 25183987.518
+ 21.100 17.800
+ -2716069.526 4 -2116416.073 2 24335143.288 24335140.608 24335142.160
+ 24.900 15.100
+ -18398152.051 7 -14336200.080 6 21013121.873 21013120.129 21013120.697
+ 46.300 40.700
+ -5266114.161 4 -4103448.194 4 23805909.776 23805906.143 23805908.594
+ 28.400 27.100
+ -19758448.379 7 -15396183.069 6 20736991.286 20736989.667 20736990.930
+ 45.200 40.800
+ -12597501.699 6 -9816228.614 5 22500896.918 22500893.973 22500896.039
+ 39.300 32.300
+ 06 1 1 0 51 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19729602.863 7 -15373704.227 7 20566759.601 20566757.010 20566758.770
+ 44.700 43.100
+ -18346749.577 7 -14296153.403 6 21317242.466 21317241.094 21317241.712
+ 43.100 39.800
+ -160808.499 3 -125304.704 2 25187298.648 25187296.704 25187297.583
+ 21.100 13.900
+ -2757857.475 4 -2148978.064 2 24327191.113 24327188.965 24327190.157
+ 25.300 13.900
+ -18337568.185 7 -14288991.874 6 21024650.611 21024648.852 21024649.367
+ 46.100 40.900
+ -5163958.814 4 -4023846.650 3 23825349.689 23825344.114 23825347.972
+ 26.800 20.500
+ -19830831.336 7 -15452585.364 6 20723217.444 20723215.597 20723216.924
+ 44.900 40.900
+ -12685623.563 6 -9884894.999 5 22484128.188 22484124.789 22484127.174
+ 39.400 31.300
+ 06 1 1 0 52 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19759292.477 7 -15396838.982 7 20561109.767 20561107.314 20561108.980
+ 44.400 43.200
+ -18321697.386 7 -14276632.223 6 21322009.921 21322008.153 21322009.103
+ 43.000 39.300
+ -142950.861 3 -111389.669 2 25190696.646 25190695.319 25190695.772
+ 22.100 16.100
+ -2799169.495 4 -2181169.229 2 24319330.067 24319327.071 24319329.169
+ 26.200 15.100
+ -18276716.057 7 -14241574.630 6 21036230.489 21036228.624 21036229.308
+ 46.300 40.600
+ -5061643.533 4 -3944120.460 4 23844819.656 23844815.209 23844818.102
+ 27.400 25.300
+ -19902638.589 7 -15508539.048 6 20709552.827 20709551.294 20709552.373
+ 44.900 41.100
+ -12773600.668 6 -9953448.579 5 22467386.592 22467383.117 22467385.429
+ 39.400 31.500
+ 06 1 1 0 52 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19788396.801 7 -15419517.667 7 20555571.185 20555568.961 20555570.461
+ 44.600 43.400
+ -18296084.819 7 -14256674.382 6 21326883.750 21326881.984 21326882.933
+ 42.800 39.300
+ -124630.161 4 -97113.821 3 25194183.758 25194181.695 25194182.665
+ 24.200 19.300
+ -2840003.691 4 -2212988.066 2 24311558.989 24311557.625 24311558.007
+ 25.900 16.100
+ -18215597.144 7 -14193949.501 6 21047860.930 21047859.191 21047859.736
+ 46.200 40.800
+ -4959169.927 4 -3864270.933 3 23864319.513 23864315.108 23864318.154
+ 26.500 23.000
+ -19973867.783 7 -15564042.307 6 20695998.648 20695996.757 20695997.967
+ 44.900 41.000
+ -12861431.467 6 -10021888.157 5 22450673.203 22450669.766 22450671.928
+ 39.500 32.100
+ 06 1 1 0 53 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19816915.113 7 -15441739.722 7 20550144.452 20550142.059 20550143.646
+ 44.400 43.400
+ -18269912.942 7 -14236280.713 6 21331864.077 21331862.429 21331863.369
+ 42.900 39.200
+ -105846.753 3 -82477.432 2 25197757.498 25197755.406 25197756.594
+ 23.000 17.000
+ -2880358.313 4 -2244433.225 2 24303880.609 24303878.367 24303879.359
+ 27.400 16.100
+ -18154212.901 7 -14146117.626 6 21059542.037 21059540.284 21059540.888
+ 46.200 41.100
+ -4856539.105 4 -3784298.917 3 23883849.780 23883844.748 23883848.336
+ 26.200 22.600
+ -20044516.671 7 -15619093.375 6 20682554.419 20682552.693 20682554.008
+ 45.200 41.100
+ -12949114.252 6 -10090212.398 5 22433987.651 22433984.250 22433986.430
+ 39.600 32.800
+ 06 1 1 0 53 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19844847.133 7 -15463504.924 7 20544829.129 20544826.755 20544828.351
+ 44.500 43.500
+ -18243182.452 7 -14215451.764 6 21336950.575 21336949.072 21336949.824
+ 42.700 39.100
+ -86601.020 4 -67480.778 2 25201420.614 25201418.056 25201419.209
+ 24.600 16.100
+ -2920230.806 4 -2275502.666 2 24296292.477 24296290.413 24296291.712
+ 26.800 17.000
+ -18092564.831 7 -14098080.171 6 21071273.314 21071271.491 21071272.151
+ 46.400 40.600
+ -4753752.352 4 -3704205.318 3 23903409.298 23903404.274 23903408.012
+ 28.800 22.600
+ -20114582.742 7 -15673690.302 6 20669221.139 20669219.501 20669220.801
+ 45.400 41.100
+ -13036647.099 6 -10158419.795 5 22417330.402 22417327.582 22417329.309
+ 39.300 33.600
+ 06 1 1 0 54 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19872192.197 7 -15484812.755 7 20539625.479 20539623.076 20539624.728
+ 44.200 43.400
+ -18215894.674 7 -14194188.565 6 21342143.287 21342141.817 21342142.547
+ 42.700 39.400
+ -66893.736 4 -52124.468 2 25205170.794 25205168.384 25205170.060
+ 25.300 17.800
+ -2959619.098 4 -2306194.826 3 24288797.558 24288796.067 24288796.711
+ 28.400 20.500
+ -18030654.406 7 -14049838.279 6 21083054.618 21083052.599 21083053.381
+ 46.500 40.700
+ -4650810.602 4 -3623991.048 3 23922998.622 23922994.198 23922997.179
+ 25.900 23.400
+ -20184063.821 7 -15727831.389 6 20655999.702 20655997.556 20655999.065
+ 45.400 40.800
+ -13124028.308 6 -10226509.023 5 22400702.116 22400699.370 22400701.268
+ 40.000 33.200
+ 06 1 1 0 54 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19898949.578 7 -15505662.658 7 20534533.549 20534531.400 20534532.853
+ 44.400 43.600
+ -18188050.157 7 -14172491.546 6 21347442.222 21347440.550 21347441.383
+ 42.800 39.400
+ -46724.667 3 -36408.340 2 25209008.580 25209006.294 25209007.802
+ 23.800 15.100
+ -2998521.480 4 -2336508.356 3 24281395.052 24281393.174 24281393.788
+ 26.800 20.500
+ -17968483.461 7 -14001393.382 6 21094885.334 21094883.397 21094884.065
+ 46.400 40.500
+ -4547715.366 4 -3543657.129 3 23942617.048 23942612.088 23942615.681
+ 24.900 21.100
+ -20252957.604 7 -15781514.843 6 20642889.564 20642887.499 20642889.043
+ 45.400 40.900
+ -13211256.209 6 -10294478.815 5 22384103.711 22384100.153 22384102.636
+ 40.500 32.800
+ 06 1 1 0 55 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19925118.932 7 -15526054.353 7 20529553.463 20529551.619 20529552.823
+ 44.100 43.800
+ -18159650.203 7 -14150361.716 6 21352846.248 21352844.660 21352845.561
+ 42.900 38.700
+ -26094.393 3 -20332.815 2 25212934.083 25212932.366 25212933.062
+ 20.500 17.800
+ -3036935.910 4 -2366441.656 3 24274084.355 24274082.769 24274083.330
+ 27.400 22.100
+ -17906053.408 7 -13952746.585 6 21106765.248 21106763.449 21106764.067
+ 46.200 40.600
+ -4444467.615 4 -3463204.360 3 23962262.571 23962259.493 23962261.973
+ 24.600 19.900
+ -20321261.982 7 -15834739.021 6 20629891.696 20629889.706 20629891.077
+ 45.200 41.300
+ -13298329.128 6 -10362327.837 5 22367534.160 22367530.673 22367533.191
+ 41.000 32.600
+ 06 1 1 0 55 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19950699.960 7 -15545987.615 7 20524685.690 20524683.669 20524684.981
+ 44.100 43.500
+ -18130695.966 7 -14127799.974 6 21358356.146 21358354.583 21358355.406
+ 43.000 39.100
+ -5003.269 3 -3898.241 2 25216947.438 25216945.218 25216946.375
+ 21.100 16.100
+ -3074860.250 4 -2395993.071 3 24266867.506 24266865.783 24266866.481
+ 27.100 18.600
+ -17843365.591 7 -13903898.936 6 21118694.344 21118692.600 21118693.160
+ 46.100 40.500
+ -4341068.523 4 -3382633.694 4 23981940.036 23981936.450 23981938.671
+ 27.400 24.600
+ -20388974.576 7 -15887502.058 6 20617006.271 20617004.358 20617005.699
+ 45.400 41.100
+ -13385244.951 6 -10430054.455 5 22350994.655 22350991.210 22350993.617
+ 41.300 32.700
+ 06 1 1 0 56 0.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -19975692.024 7 -15565461.943 7 20519929.919 20519927.786 20519929.185
+ 44.100 43.600
+ -18101188.029 7 -14104806.784 6 21363971.280 21363969.814 21363970.488
+ 42.700 39.200
+ 16548.272 3 12895.162 2 25221049.072 25221047.213 25221047.929
+ 23.000 13.900
+ -3112292.502 4 -2425161.053 3 24259744.378 24259742.587 24259743.516
+ 26.500 19.300
+ -17780421.690 7 -13854851.742 6 21130672.015 21130670.517 21130670.896
+ 46.000 40.700
+ -4237519.187 4 -3301945.933 3 24001645.512 24001640.577 24001644.380
+ 29.700 21.100
+ -20456093.128 7 -15939802.211 6 20604234.188 20604232.014 20604233.507
+ 45.300 41.200
+ -13472002.347 6 -10497657.612 5 22334485.135 22334481.747 22334484.166
+ 40.500 32.600
+ -222917.379 2 -173701.538 3 24539122.212 24539121.706 24539121.300
+ 17.800 23.000
+ 06 1 1 0 56 30.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20000094.842 7 -15584477.121 7 20515285.906 20515284.045 20515285.332
+ 43.900 43.700
+ -18071127.820 7 -14081383.248 6 21369691.756 21369689.941 21369691.028
+ 42.900 38.900
+ 38559.416 3 30046.700 2 25225237.082 25225235.841 25225236.356
+ 21.100 13.900
+ -3149230.661 4 -2453944.003 3 24252715.123 24252713.465 24252714.084
+ 24.600 20.500
+ -17717223.098 7 -13805606.085 6 21142698.368 21142696.647 21142697.189
+ 45.800 40.200
+ -4133821.068 4 -3221142.196 4 24021377.859 24021374.371 24021376.993
+ 27.400 24.900
+ -20522615.549 7 -15991637.845 6 20591575.373 20591573.202 20591574.803
+ 45.800 41.100
+ -13558599.572 6 -10565135.957 5 22318006.087 22318002.974 22318005.196
+ 40.900 33.200
+ -327415.448 3 -255128.540 4 24519235.617 24519236.614 24519235.105
+ 20.500 25.300
+ 06 1 1 0 57 0.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20023907.976 7 -15603032.808 7 20510754.638 20510752.573 20510753.922
+ 44.200 43.700
+ -18040516.320 7 -14057530.137 6 21375516.875 21375515.301 21375516.098
+ 42.800 39.100
+ 61030.160 3 47556.342 2 25229513.996 25229511.753 25229512.649
+ 21.600 12.600
+ -3185672.952 4 -2482340.587 3 24245780.961 24245778.911 24245779.775
+ 25.300 20.500
+ -17653771.416 7 -13756163.213 6 21154772.920 21154771.043 21154771.692
+ 45.700 40.200
+ -4029975.276 4 -3140223.425 3 24041139.425 24041135.158 24041138.300
+ 26.500 23.400
+ -20588539.715 7 -16043007.307 6 20579030.184 20579028.331 20579029.786
+ 45.800 41.300
+ -13645034.700 6 -10632487.991 5 22301558.489 22301554.841 22301557.295
+ 40.800 33.400
+ -431915.321 3 -336556.975 4 24499351.236 24499351.221 24499350.603
+ 23.000 26.500
+ 06 1 1 0 57 30.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20047131.045 7 -15621128.700 7 20506335.468 20506333.377 20506334.758
+ 44.300 43.700
+ -18009354.563 7 -14033248.256 6 21381446.678 21381445.387 21381445.867
+ 42.700 39.500
+ 83959.648 3 65423.461 1 25233876.871 25233874.567 25233876.179
+ 20.500 11.000
+ -3221617.495 3 -2510349.294 3 24238939.766 24238938.507 24238939.006
+ 23.800 19.900
+ -17590068.000 7 -13706524.193 6 21166894.863 21166893.410 21166893.866
+ 45.800 40.000
+ -3925982.891 4 -3059190.427 3 24060927.527 24060923.874 24060926.830
+ 24.900 18.600
+ -20653863.399 7 -16093908.865 6 20566599.487 20566597.677 20566598.937
+ 45.700 41.500
+ -13731305.889 6 -10699712.285 5 22285141.103 22285137.991 22285140.174
+ 41.200 33.200
+ -536415.830 3 -417985.874 3 24479466.250 24479464.451 24479464.753
+ 20.500 23.800
+ 06 1 1 0 58 0.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20069763.782 7 -15638764.592 7 20502028.919 20502026.529 20502028.139
+ 44.600 43.800
+ -17977643.457 7 -14008538.307 6 21387481.095 21387479.654 21387480.315
+ 42.500 38.900
+ 107347.816 4 83647.948 2 25238327.198 25238325.810 25238326.299
+ 24.600 16.100
+ -3257061.810 3 -2537968.237 2 24232194.880 24232193.576 24232194.103
+ 23.400 17.800
+ -17526114.566 7 -13656690.346 6 21179065.350 21179063.352 21179064.056
+ 45.600 40.000
+ -3821845.162 4 -2978044.163 3 24080743.857 24080740.946 24080743.357
+ 25.300 19.300
+ -20718584.654 7 -16144340.994 6 20554283.360 20554281.729 20554282.834
+ 45.500 41.700
+ -13817411.353 6 -10766807.442 5 22268756.146 22268752.545 22268755.165
+ 41.400 33.500
+ -640915.655 4 -499414.278 3 24459580.893 24459578.620 24459579.841
+ 24.600 21.100
+ 06 1 1 0 58 30.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20091805.840 7 -15655940.219 7 20497834.351 20497832.045 20497833.608
+ 44.700 43.800
+ -17945384.812 7 -13983401.710 6 21393619.758 21393618.085 21393618.939
+ 42.400 38.700
+ 131193.753 3 102229.224 1 25242864.954 25242862.673 25242864.134
+ 22.600 6.500
+ -3292004.641 4 -2565196.380 3 24225546.114 24225545.039 24225545.017
+ 24.200 22.600
+ -17461912.538 7 -13606662.787 6 21191282.475 21191280.620 21191281.229
+ 45.500 39.800
+ -3717563.646 4 -2896785.842 3 24100588.505 24100585.183 24100588.265
+ 28.400 20.500
+ -20782701.118 7 -16194301.860 6 20542082.262 20542080.770 20542081.880
+ 45.700 41.800
+ -13903349.436 6 -10833772.170 5 22252402.485 22252399.355 22252401.432
+ 41.200 34.500
+ -745413.337 3 -580841.038 3 24439694.471 24439694.040 24439693.801
+ 22.100 21.600
+ 06 1 1 0 59 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20113257.015 7 -15672655.416 7 20493752.188 20493749.929 20493751.523
+ 44.600 43.700
+ -17912579.301 7 -13957838.975 6 21399862.409 21399860.795 21399861.639
+ 42.600 38.600
+ -3326443.988 3 -2592032.220 3 24218992.385 24218991.424 24218991.058
+ 23.400 22.100
+ -17397463.257 7 -13556442.567 6 21203546.590 21203544.893 21203545.337
+ 45.600 39.800
+ -3613139.206 3 -2815416.159 3 24120458.018 24120456.555 24120458.485
+ 23.800 20.500
+ -20846210.769 7 -16243789.886 6 20529996.996 20529995.129 20529996.460
+ 45.700 41.700
+ -13989118.122 6 -10900604.889 5 22236081.494 22236077.899 22236080.289
+ 41.500 34.100
+ -849907.761 3 -662265.224 3 24419809.808 24419809.119 24419808.989
+ 23.000 22.100
+ 06 1 1 0 59 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20134116.911 7 -15688909.871 7 20489782.729 20489780.419 20489782.038
+ 44.500 43.800
+ -17879227.959 7 -13931850.920 6 21406208.926 21406207.323 21406208.134
+ 42.100 38.600
+ -3360377.904 4 -2618474.186 3 24212534.967 24212533.842 24212533.827
+ 24.900 21.100
+ -17332768.130 7 -13506030.777 6 21215857.702 21215855.969 21215856.502
+ 45.600 39.800
+ -3508573.313 3 -2733936.259 3 24140357.838 24140355.155 24140357.157
+ 23.800 22.100
+ -20909111.632 7 -16292803.530 6 20518027.568 20518025.422 20518026.868
+ 45.700 41.900
+ -14074715.615 6 -10967304.223 5 22219792.503 22219789.080 22219791.498
+ 41.500 33.200
+ -954397.616 3 -743685.855 3 24399925.832 24399924.854 24399924.749
+ 21.600 22.100
+ 06 1 1 1 0 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20154385.288 7 -15704703.411 7 20485925.648 20485923.533 20485925.026
+ 44.400 43.800
+ -17845332.544 7 -13905438.910 6 21412658.970 21412657.239 21412658.192
+ 42.200 38.300
+ -3393804.839 4 -2644521.107 3 24206173.650 24206172.442 24206172.774
+ 24.900 21.600
+ -17267828.876 7 -13455428.757 6 21228215.130 21228213.440 21228214.037
+ 45.400 39.700
+ -3403866.995 4 -2652346.955 4 24160283.252 24160280.172 24160282.628
+ 27.400 24.900
+ -20971401.841 7 -16341341.338 7 20506174.028 20506172.017 20506173.437
+ 45.600 42.100
+ -14160140.275 6 -11033868.895 5 22203536.819 22203533.332 22203535.814
+ 41.800 33.500
+ -1058881.584 3 -825101.895 3 24380043.747 24380042.748 24380042.926
+ 23.400 22.100
+ 06 1 1 1 0 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20174061.918 7 -15720035.844 7 20482181.499 20482179.180 20482180.790
+ 44.600 44.000
+ -17810893.701 7 -13878603.455 6 21419212.651 21419210.926 21419211.884
+ 42.100 38.400
+ -3426722.512 4 -2670171.222 3 24199910.948 24199908.812 24199909.505
+ 26.200 21.600
+ -17202646.819 7 -13404637.542 6 21240618.892 21240617.320 21240617.750
+ 45.400 39.600
+ -3299021.161 4 -2570648.961 4 24180234.105 24180231.761 24180233.899
+ 25.900 24.200
+ -21033079.194 7 -16389401.605 7 20494437.161 20494435.179 20494436.632
+ 45.700 42.000
+ -14245390.383 6 -11100297.530 5 22187314.302 22187311.051 22187313.205
+ 41.800 34.400
+ -1163358.253 3 -906512.273 3 24360163.763 24360161.146 24360162.446
+ 23.000 20.500
+ 06 1 1 1 1 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20193146.620 7 -15734907.034 7 20478549.834 20478547.492 20478549.041
+ 44.700 43.900
+ -17775913.213 7 -13851345.935 6 21425868.994 21425867.759 21425868.244
+ 42.100 38.900
+ -3459129.182 4 -2695423.192 3 24193742.945 24193741.711 24193742.398
+ 26.200 19.900
+ -17137223.619 7 -13353658.423 6 21253068.637 21253066.861 21253067.437
+ 45.400 39.700
+ -3194037.553 4 -2488843.585 4 24200213.287 24200209.557 24200212.374
+ 26.800 25.300
+ -21094141.797 7 -16436982.836 6 20482817.201 20482815.311 20482816.607
+ 45.600 41.900
+ -14330464.193 6 -11166588.805 5 22171125.208 22171121.880 22171124.190
+ 41.800 34.000
+ -1267826.251 3 -987915.891 2 24340282.449 24340280.911 24340281.344
+ 23.400 16.100
+ 06 1 1 1 1 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20211639.320 7 -15749316.928 7 20475030.565 20475028.409 20475029.949
+ 44.600 44.000
+ -17740392.150 7 -13823667.195 6 21432628.578 21432626.946 21432627.747
+ 42.400 38.400
+ -3491023.267 4 -2720275.685 3 24187674.915 24187672.424 24187673.681
+ 27.400 20.500
+ -17071560.350 7 -13302492.238 6 21265563.784 21265562.100 21265562.632
+ 45.200 39.700
+ -3088917.258 3 -2406931.705 3 24220216.684 24220212.822 24220215.718
+ 23.400 19.900
+ -21154587.566 7 -16484083.417 7 20471314.556 20471312.852 20471314.143
+ 45.700 42.100
+ -14415359.515 7 -11232740.992 5 22154969.985 22154967.042 22154969.086
+ 42.000 34.500
+ -1372284.269 3 -1069311.706 3 24320403.850 24320403.988 24320402.954
+ 20.500 18.600
+ 06 1 1 1 2 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20229539.768 7 -15763265.323 7 20471624.394 20471622.050 20471623.595
+ 44.400 43.900
+ -17704331.629 7 -13795568.096 6 21439490.907 21439488.839 21439490.041
+ 42.400 38.300
+ -3522403.050 4 -2744727.468 3 24181703.296 24181700.481 24181701.684
+ 26.200 19.300
+ -17005658.802 7 -13251140.381 6 21278104.807 21278102.686 21278103.467
+ 45.200 39.400
+ -2983661.547 3 -2324914.257 3 24240247.288 24240242.063 24240245.890
+ 23.000 21.100
+ -21214414.786 7 -16530702.015 7 20459929.860 20459928.224 20459929.446
+ 45.800 42.300
+ -14500074.476 7 -11298752.630 5 22138849.691 22138846.349 22138848.484
+ 42.000 34.700
+ -1476731.067 3 -1150698.796 3 24300529.197 24300528.266 24300528.089
+ 22.600 23.400
+ 06 1 1 1 2 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20246847.966 7 -15776752.226 7 20468330.639 20468328.389 20468329.925
+ 44.600 44.000
+ -17667733.046 7 -13767049.724 6 21446455.215 21446453.405 21446454.414
+ 42.300 38.100
+ -3553266.770 4 -2768777.101 3 24175829.816 24175828.032 24175829.038
+ 27.900 21.600
+ -16939520.343 7 -13199603.919 6 21290690.541 21290688.618 21290689.271
+ 45.300 39.500
+ -2878271.641 4 -2242792.291 3 24260301.383 24260297.061 24260300.445
+ 26.500 22.100
+ -21273621.408 7 -16576837.036 7 20448663.223 20448661.407 20448662.809
+ 46.000 42.300
+ -14584607.377 7 -11364622.411 5 22122763.323 22122759.933 22122762.196
+ 42.200 34.300
+ -1581165.307 3 -1232076.067 3 24280655.583 24280655.053 24280655.079
+ 21.100 20.500
+ 06 1 1 1 3 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20263563.714 7 -15789777.479 7 20465149.737 20465147.590 20465149.049
+ 44.400 44.100
+ -17630597.847 7 -13738113.211 6 21453521.824 21453519.831 21453521.125
+ 42.400 38.000
+ -3583612.777 4 -2792423.319 3 24170054.676 24170052.901 24170053.586
+ 25.900 18.600
+ -16873146.563 7 -13147884.085 6 21303320.888 21303319.165 21303319.647
+ 45.100 39.400
+ -2772748.796 3 -2160566.744 3 24280380.649 24280377.851 24280379.901
+ 23.000 22.600
+ -21332205.421 7 -16622486.904 7 20437515.081 20437513.195 20437514.543
+ 45.600 42.100
+ -14668956.371 7 -11430348.894 5 22106712.380 22106709.111 22106711.361
+ 42.600 34.800
+ -1685585.544 3 -1313442.501 2 24260785.413 24260784.164 24260784.188
+ 22.100 15.100
+ 06 1 1 1 3 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20279687.039 7 -15802341.110 7 20462081.584 20462079.379 20462080.860
+ 44.600 44.100
+ -17592927.055 7 -13708759.350 6 21460690.431 21460688.439 21460689.638
+ 42.200 37.800
+ -3613439.244 4 -2815664.698 3 24164379.219 24164377.409 24164378.319
+ 27.600 21.100
+ -16806538.747 7 -13095981.885 6 21315995.974 21315994.114 21315994.747
+ 45.200 39.400
+ -2667093.908 4 -2078238.334 4 24300486.359 24300483.861 24300485.723
+ 25.600 24.200
+ -21390165.374 7 -16667650.487 7 20426485.673 20426483.825 20426485.177
+ 45.800 42.100
+ -14753119.593 7 -11495930.616 5 22090696.465 22090693.319 22090695.456
+ 42.300 35.100
+ -1789990.327 4 -1394796.886 2 24240918.642 24240916.446 24240917.359
+ 25.600 16.100
+ 06 1 1 1 4 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20295217.731 7 -15814442.944 7 20459126.339 20459123.951 20459125.529
+ 44.600 44.100
+ -17554722.369 7 -13678989.468 6 21467960.502 21467958.913 21467959.678
+ 42.400 38.200
+ -3642744.445 4 -2838499.915 3 24158803.140 24158800.200 24158802.077
+ 27.100 19.300
+ -16739698.345 7 -13043898.454 6 21328715.106 21328713.429 21328713.928
+ 44.900 39.300
+ -2561308.600 4 -1995808.203 2 24320617.124 24320613.189 24320615.886
+ 26.500 13.900
+ -21447498.965 7 -16712326.003 7 20415575.635 20415573.741 20415575.021
+ 45.800 42.400
+ -14837095.246 7 -11561366.177 5 22074716.364 22074713.395 22074715.452
+ 42.700 35.400
+ -1894378.178 4 -1476138.096 3 24221053.517 24221052.638 24221052.638
+ 24.600 20.500
+ 06 1 1 1 4 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20310155.968 7 -15826083.126 7 20456283.581 20456281.331 20456282.918
+ 44.700 44.200
+ -17515985.185 7 -13648804.654 6 21475332.002 21475330.142 21475331.244
+ 42.300 38.400
+ -3671526.804 4 -2860927.718 3 24153325.572 24153323.654 24153324.702
+ 28.100 18.600
+ -16672626.922 7 -12991635.003 6 21341478.505 21341476.590 21341477.263
+ 44.800 39.200
+ -2455394.106 3 -1913277.429 2 24340771.294 24340767.759 24340770.780
+ 23.000 13.900
+ -21504204.754 7 -16756512.322 7 20404784.792 20404782.935 20404784.239
+ 46.000 42.500
+ -14920881.364 7 -11626654.057 5 22058772.450 22058769.322 22058771.430
+ 42.600 34.900
+ -1998747.606 4 -1557464.882 4 24201193.386 24201192.055 24201192.306
+ 25.900 24.200
+ 06 1 1 1 5 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20324501.583 7 -15837261.525 7 20453553.655 20453551.417 20453552.965
+ 44.700 44.200
+ -17476717.035 6 -13618206.098 6 21482804.249 21482802.493 21482803.398
+ 41.500 37.700
+ -3699784.457 4 -2882946.662 3 24147948.469 24147946.210 24147947.387
+ 27.100 21.100
+ -16605325.915 7 -12939192.654 6 21354285.228 21354283.684 21354284.065
+ 44.600 39.100
+ -2349351.696 4 -1830646.991 2 24360952.372 24360947.339 24360951.195
+ 26.500 16.100
+ -21560280.769 7 -16800207.903 7 20394113.917 20394112.113 20394113.306
+ 46.000 42.700
+ -15004476.177 7 -11691792.856 5 22042865.149 22042861.561 22042863.918
+ 42.400 34.900
+ -2103097.430 4 -1638776.400 4 24181336.723 24181334.777 24181335.757
+ 27.600 25.600
+ 06 1 1 1 5 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20338254.705 7 -15847978.242 7 20450936.415 20450934.285 20450935.757
+ 44.400 44.200
+ -17436919.117 6 -13587194.746 6 21490377.534 21490375.985 21490376.757
+ 41.800 38.000
+ -3727516.360 4 -2904555.915 3 24142671.612 24142668.987 24142670.618
+ 28.100 19.900
+ -16537796.811 7 -12886572.570 6 21367135.580 21367133.906 21367134.464
+ 44.700 38.600
+ -2243182.660 3 -1747917.879 3 24381154.696 24381151.225 24381153.315
+ 23.400 20.500
+ -21615725.320 7 -16843411.434 7 20383563.140 20383561.251 20383562.578
+ 46.000 42.500
+ -15087877.601 7 -11756780.975 5 22026994.497 22026990.579 22026993.240
+ 42.500 34.400
+ -2207426.023 4 -1720071.399 3 24161483.320 24161481.413 24161482.207
+ 29.200 21.100
+ 06 1 1 1 6 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20351415.421 7 -15858233.344 7 20448432.236 20448429.884 20448431.417
+ 44.500 44.300
+ -17396592.947 6 -13555771.762 6 21498051.279 21498049.785 21498050.540
+ 41.900 38.100
+ -3754720.735 4 -2925754.114 3 24137494.049 24137491.548 24137493.230
+ 28.800 18.600
+ -16470040.660 7 -12833775.562 6 21380029.131 21380027.447 21380027.981
+ 44.800 38.600
+ -2136888.175 4 -1665091.092 4 24401381.895 24401378.763 24401380.643
+ 24.600 24.900
+ -21670536.517 7 -16886121.447 7 20373133.017 20373131.023 20373132.425
+ 46.300 42.700
+ -15171084.030 7 -11821617.149 5 22011160.501 22011157.163 22011159.472
+ 42.900 35.500
+ -2311731.985 4 -1801348.793 4 24141633.737 24141632.628 24141632.557
+ 24.200 24.600
+ 06 1 1 1 6 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20363983.607 7 -15868026.730 7 20446040.302 20446038.206 20446039.582
+ 44.200 44.300
+ -17355740.079 6 -13523938.363 6 21505825.380 21505823.800 21505824.591
+ 41.600 37.800
+ -3781396.053 5 -2946540.066 3 24132419.039 24132416.488 24132417.978
+ 31.300 21.600
+ -16402059.136 7 -12780802.940 6 21392965.911 21392963.868 21392964.682
+ 44.900 38.400
+ -2030469.284 4 -1582167.349 3 24421633.554 24421629.124 24421632.374
+ 27.100 20.500
+ -21724712.788 7 -16928336.711 7 20362823.664 20362821.564 20362823.029
+ 46.100 42.700
+ -15254093.340 7 -11886299.725 6 21995364.283 21995361.228 21995363.412
+ 43.100 36.000
+ -2416014.113 3 -1882607.552 4 24121789.553 24121788.733 24121788.441
+ 21.600 24.900
+ 06 1 1 1 7 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20375959.514 7 -15877358.609 7 20443761.405 20443759.208 20443760.606
+ 44.200 44.400
+ -17314361.878 6 -13491695.611 6 21513699.685 21513698.009 21513698.918
+ 41.800 37.900
+ -3807540.538 4 -2966912.419 3 24127443.178 24127440.620 24127442.172
+ 26.800 19.300
+ -16333853.472 7 -12727655.658 6 21405945.156 21405942.962 21405943.882
+ 44.700 38.400
+ -1923927.347 3 -1499147.644 2 24441907.327 24441902.869 24441906.310
+ 22.100 13.900
+ -21778252.466 7 -16970055.926 7 20352635.054 20352633.329 20352634.554
+ 46.000 42.900
+ -15336903.586 7 -11950827.178 5 21979606.195 21979602.670 21979605.037
+ 43.100 35.500
+ -2520270.727 3 -1963846.446 4 24101950.341 24101948.940 24101949.234
+ 23.000 24.900
+ 06 1 1 1 7 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20387343.324 7 -15886229.104 7 20441595.269 20441593.018 20441594.446
+ 44.500 44.500
+ -17272460.121 6 -13459044.900 6 21521672.959 21521671.691 21521672.256
+ 41.500 37.800
+ -3833152.659 4 -2986869.901 3 24122569.793 24122567.145 24122568.751
+ 29.200 20.500
+ -16265425.222 7 -12674334.941 6 21418966.315 21418964.595 21418965.083
+ 44.600 38.500
+ -1817263.614 3 -1416033.082 3 24462204.311 24462200.591 24462203.361
+ 21.100 19.300
+ -21831153.886 7 -17011277.804 7 20342568.266 20342566.481 20342567.714
+ 46.000 42.700
+ -15419513.004 7 -12015198.153 5 21963885.961 21963882.657 21963885.089
+ 43.400 35.600
+ -2624500.749 3 -2045064.603 3 24082116.961 24082114.131 24082115.591
+ 22.100 23.800
+ 06 1 1 1 8 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20398135.003 7 -15894638.205 7 20439541.757 20439539.543 20439540.968
+ 44.600 44.600
+ -17230036.009 6 -13425987.160 6 21529746.170 21529744.665 21529745.369
+ 41.500 37.800
+ -3858231.011 4 -3006411.472 3 24117796.340 24117795.006 24117795.713
+ 28.800 21.600
+ -16196776.062 7 -12620842.084 6 21432029.518 21432027.987 21432028.375
+ 44.300 38.200
+ -1710479.615 3 -1332824.834 3 24482524.173 24482520.973 24482523.387
+ 23.000 19.300
+ -21883415.446 7 -17052001.089 7 20332623.105 20332621.456 20332622.633
+ 45.800 43.000
+ -15501919.727 7 -12079411.181 5 21948204.673 21948201.199 21948203.602
+ 43.400 35.300
+ -2728702.278 4 -2126260.574 3 24062288.061 24062285.171 24062286.953
+ 24.600 22.600
+ 06 1 1 1 8 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20408334.789 7 -15902586.088 7 20437600.786 20437598.556 20437600.024
+ 44.700 44.400
+ -17187091.465 6 -13392523.877 6 21537918.409 21537916.530 21537917.637
+ 41.700 37.500
+ -3882774.017 4 -3025535.886 3 24113126.374 24113124.485 24113125.074
+ 26.800 20.500
+ -16127907.114 7 -12567177.961 6 21445134.900 21445133.269 21445133.820
+ 44.300 38.100
+ -1603576.649 3 -1249523.856 2 24502867.507 24502863.883 24502866.203
+ 19.900 17.800
+ -21935035.537 7 -17092224.525 7 20322800.211 20322798.468 20322799.717
+ 46.000 43.100
+ -15584121.755 7 -12143464.710 5 21932562.004 21932558.739 21932561.010
+ 43.200 35.700
+ -2832873.792 4 -2207433.162 3 24042464.620 24042462.365 24042463.519
+ 26.200 21.600
+ 06 1 1 1 9 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20417942.843 7 -15910072.884 7 20435772.308 20435770.068 20435771.690
+ 44.800 44.600
+ -17143627.933 6 -13358656.193 6 21546188.919 21546187.434 21546188.223
+ 41.200 37.400
+ -3906780.243 4 -3044241.992 3 24108558.668 24108556.610 24108557.562
+ 28.600 19.300
+ -16058819.807 7 -12513343.687 6 21458282.227 21458280.207 21458280.911
+ 44.500 38.500
+ -1496555.665 4 -1166130.948 3 24523234.070 24523229.652 24523232.590
+ 27.400 18.600
+ -21986012.599 7 -17131946.902 7 20313099.513 20313097.810 20313099.054
+ 45.900 43.100
+ -15666117.112 7 -12207357.186 6 21916958.630 21916955.624 21916957.518
+ 42.700 36.200
+ -2937014.056 4 -2288581.401 3 24022647.075 24022645.015 24022645.884
+ 26.200 20.500
+ 06 1 1 1 9 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20426959.455 7 -15917098.813 7 20434056.676 20434054.213 20434055.922
+ 45.100 44.500
+ -17099646.773 6 -13324385.174 6 21554558.607 21554556.847 21554557.721
+ 41.400 37.200
+ -3930248.533 4 -3062528.960 3 24104091.915 24104090.848 24104090.768
+ 26.200 19.900
+ -15989515.655 7 -12459340.445 6 21471470.156 21471468.262 21471468.994
+ 44.400 37.900
+ -1389418.137 4 -1082647.098 1 24543621.724 24543617.254 24543620.083
+ 24.900 9.000
+ -22036345.025 7 -17171166.966 7 20303521.492 20303519.783 20303521.017
+ 46.000 43.000
+ -15747903.489 7 -12271086.817 6 21901395.514 21901392.234 21901394.387
+ 43.300 36.400
+ -3041121.576 4 -2369704.122 3 24002835.754 24002833.668 24002834.797
+ 25.900 19.300
+ 06 1 1 1 10 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20435384.800 7 -15923664.015 7 20432453.286 20432450.954 20432452.636
+ 44.900 44.500
+ -17055149.861 6 -13289712.265 6 21563025.971 21563024.420 21563025.155
+ 41.700 37.400
+ -3953177.324 4 -3080395.561 3 24099728.983 24099727.168 24099727.924
+ 25.600 20.500
+ -15919995.870 7 -12405169.178 6 21484699.177 21484697.441 21484698.063
+ 44.400 37.900
+ -1282165.272 3 -999073.520 3 24564031.154 24564026.771 24564029.183
+ 18.600 23.000
+ -22086031.319 7 -17209883.548 7 20294066.649 20294064.811 20294066.071
+ 46.000 43.200
+ -15829479.550 7 -12334652.581 6 21885872.054 21885868.579 21885870.939
+ 43.400 36.100
+ -3145194.852 4 -2450800.167 3 23983031.609 23983029.667 23983030.339
+ 27.400 21.100
+ 06 1 1 1 10 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20443219.219 7 -15929768.754 7 20430962.730 20430960.178 20430961.851
+ 45.100 44.500
+ -17010138.750 6 -13254638.674 6 21571591.127 21571589.516 21571590.448
+ 41.500 36.900
+ -3975565.024 4 -3097840.506 3 24095469.260 24095467.336 24095468.241
+ 28.100 22.600
+ -15850262.004 7 -12350831.090 6 21497969.641 21497967.290 21497968.354
+ 44.300 37.900
+ -1174798.238 3 -915410.979 3 24584461.188 24584457.872 24584460.453
+ 21.600 20.500
+ -22135069.903 7 -17248095.421 7 20284734.865 20284733.020 20284734.308
+ 46.000 43.100
+ -15910843.152 7 -12398052.785 6 21870389.118 21870385.668 21870387.998
+ 43.500 36.500
+ -3249232.179 4 -2531868.200 4 23963233.570 23963232.472 23963232.450
+ 28.400 24.200
+ 06 1 1 1 11 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20450462.829 7 -15935413.124 7 20429583.895 20429581.801 20429583.362
+ 44.700 44.800
+ -16964615.082 6 -13219165.689 6 21580254.041 21580252.236 21580253.306
+ 41.200 36.800
+ -3997410.836 4 -3114863.226 3 24091311.886 24091309.753 24091310.959
+ 27.100 21.100
+ -15780315.278 7 -12296327.140 6 21511279.812 21511277.718 21511278.599
+ 44.000 38.000
+ -1067318.463 3 -831660.596 3 24604914.961 24604910.862 24604913.429
+ 21.100 22.600
+ -22183459.460 7 -17285801.563 7 20275526.798 20275524.860 20275526.218
+ 46.100 43.300
+ -15991992.379 7 -12461285.947 5 21854946.876 21854943.435 21854945.804
+ 43.600 35.900
+ -3353232.164 4 -2612907.156 3 23943442.125 23943441.591 23943441.414
+ 28.800 22.100
+ 06 1 1 1 11 30.0000000 0 7G29G 6G 8G10G26G21G15
+ -20457116.066 7 -15940597.464 7 20428318.151 20428315.750 20428317.284
+ 44.800 44.600
+ -16918580.600 6 -13183294.672 6 21589014.436 21589012.462 21589013.525
+ 41.300 37.000
+ -4018712.777 4 -3131462.129 3 24087258.797 24087256.499 24087257.655
+ 28.100 21.600
+ -15710157.079 7 -12241658.406 6 21524630.322 21524628.365 21524629.127
+ 44.000 37.700
+ -22231198.433 7 -17323000.756 7 20266442.413 20266440.496 20266441.891
+ 46.200 43.500
+ -16072925.345 7 -12524350.593 6 21839545.803 21839542.486 21839544.718
+ 43.400 36.700
+ -3457193.396 4 -2693915.891 4 23923661.091 23923658.721 23923659.384
+ 26.200 25.900
+ 06 1 1 1 12 0.0000000 0 7G29G 6G 8G10G26G21G15
+ -20463179.220 7 -15945321.996 7 20427164.192 20427161.948 20427163.460
+ 44.600 44.800
+ -16872036.891 6 -13147026.850 6 21597871.127 21597869.671 21597870.401
+ 41.200 37.000
+ -4039469.373 4 -3147636.071 3 24083308.921 24083306.524 24083307.654
+ 26.800 23.000
+ -15639788.806 7 -12186825.979 6 21538020.733 21538019.042 21538019.620
+ 43.800 37.700
+ -22278285.429 7 -17359691.918 7 20257482.154 20257480.258 20257481.602
+ 46.300 43.800
+ -16153639.909 7 -12587245.058 6 21824186.111 21824183.035 21824185.363
+ 44.100 36.500
+ -3561114.216 3 -2774893.121 4 23903884.797 23903883.073 23903883.537
+ 23.000 26.500
+ 06 1 1 1 12 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20468652.757 7 -15949587.088 7 20426122.760 20426120.309 20426121.947
+ 44.600 44.700
+ -16824985.908 6 -13110363.761 6 21606824.828 21606823.100 21606824.079
+ 41.500 37.200
+ -79570.664 2 -62003.024 9 23664116.694 23664115.820 23664114.722
+ 15.100 -3.000
+ -4059679.923 4 -3163384.537 3 24079461.825 24079460.778 24079461.262
+ 27.600 21.600
+ -15569211.684 7 -12131830.816 6 21551451.507 21551449.575 21551450.203
+ 44.000 37.700
+ -22324719.056 7 -17395873.956 7 20248646.066 20248644.178 20248645.499
+ 46.300 43.800
+ -16234133.785 7 -12649967.552 6 21808868.577 21808865.353 21808867.738
+ 44.100 36.400
+ -3664993.198 3 -2855837.748 4 23884115.994 23884115.826 23884115.240
+ 23.400 28.400
+ 06 1 1 1 13 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20473536.964 7 -15953392.961 7 20425193.162 20425190.937 20425192.464
+ 44.400 44.800
+ -16777429.144 6 -13073306.542 6 21615874.897 21615872.925 21615874.090
+ 41.800 37.300
+ -164690.873 2 -128330.434 9 23647918.868 23647917.361 23647917.633
+ 13.900 -3.000
+ -4079342.718 4 -3178706.188 3 24075721.704 24075719.081 24075720.204
+ 29.500 22.100
+ -15498427.123 7 -12076674.004 6 21564921.196 21564919.048 21564920.009
+ 44.200 37.200
+ -22370497.982 7 -17431545.834 7 20239934.522 20239932.661 20239933.940
+ 46.100 43.800
+ -16314405.665 7 -12712517.068 6 21793593.576 21793590.219 21793592.574
+ 44.100 36.700
+ -3768828.706 4 -2936748.496 4 23864357.198 23864356.840 23864355.817
+ 24.900 28.400
+ 06 1 1 1 13 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20477832.291 7 -15956739.965 7 20424375.905 20424373.581 20424375.082
+ 44.600 44.700
+ -16729368.494 6 -13035856.694 6 21625020.359 21625018.839 21625019.501
+ 41.300 37.800
+ -249673.128 2 -194550.365 9 23631747.833 23631745.597 23631746.401
+ 17.000 -3.000
+ -4098456.721 4 -3193600.214 3 24072083.300 24072081.544 24072082.406
+ 27.600 20.500
+ -15427436.512 7 -12021356.638 6 21578429.951 21578428.111 21578428.912
+ 44.000 37.200
+ -22415620.892 7 -17466706.533 7 20231347.762 20231346.046 20231347.288
+ 46.300 43.800
+ -16394453.183 7 -12774891.752 6 21778361.197 21778358.056 21778360.062
+ 44.200 37.200
+ -3872619.069 4 -3017624.066 4 23844606.766 23844605.745 23844605.858
+ 26.500 27.600
+ 06 1 1 1 14 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20481539.068 7 -15959628.367 7 20423670.385 20423668.102 20423669.673
+ 44.500 44.700
+ -16680805.610 6 -12998015.498 6 21634261.514 21634260.066 21634260.752
+ 41.200 37.700
+ -334517.237 3 -260662.626 23615602.095 23615600.416 23615601.177
+ 18.600 3.000
+ -4117020.638 4 -3208065.602 3 24068550.674 24068549.041 24068549.640
+ 27.400 21.600
+ -15356241.166 7 -11965879.739 6 21591978.001 21591976.533 21591977.036
+ 43.700 37.600
+ -22460086.484 7 -17501355.037 7 20222886.437 20222884.501 20222885.910
+ 46.200 43.800
+ -16474274.298 7 -12837090.012 6 21763171.719 21763168.213 21763170.806
+ 44.600 36.700
+ -3976362.803 4 -3098463.323 4 23824865.614 23824864.048 23824864.594
+ 28.100 27.600
+ 06 1 1 1 14 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20484657.895 7 -15962058.610 7 20423076.985 20423074.518 20423076.169
+ 44.500 44.700
+ -16631742.336 6 -12959784.384 6 21643597.745 21643596.270 21643596.977
+ 41.100 37.000
+ -419222.500 3 -326666.731 1 23599483.906 23599481.052 23599482.638
+ 21.600 6.500
+ -4135033.380 4 -3222101.491 3 24065122.721 24065120.565 24065121.684
+ 27.900 18.600
+ -15284842.458 7 -11910244.378 6 21605564.861 21605563.055 21605563.702
+ 43.600 37.500
+ -22503893.412 7 -17535490.300 7 20214550.375 20214548.272 20214549.763
+ 46.400 43.800
+ -16553867.013 7 -12899110.310 6 21748025.561 21748022.351 21748024.569
+ 44.300 36.900
+ -4080058.365 4 -3179265.051 4 23805132.227 23805131.457 23805131.323
+ 26.500 27.600
+ 06 1 1 1 15 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20487188.937 7 -15964030.852 7 20422595.221 20422592.937 20422594.393
+ 44.400 44.800
+ -16582180.409 6 -12921164.708 6 21653028.693 21653027.590 21653027.997
+ 40.400 36.800
+ -503788.334 3 -392562.155 2 23583391.055 23583388.716 23583389.799
+ 20.500 15.100
+ -4152493.812 4 -3235707.009 3 24061800.600 24061798.530 24061799.270
+ 27.600 21.100
+ -15213241.852 7 -11854451.697 6 21619189.906 21619188.171 21619188.792
+ 43.600 37.200
+ -22547040.590 7 -17569111.474 7 20206339.515 20206337.626 20206339.055
+ 46.400 43.700
+ -16633229.400 7 -12960951.124 6 21732923.524 21732920.039 21732922.452
+ 44.500 36.500
+ -4183704.074 4 -3260027.904 4 23785409.418 23785408.205 23785408.329
+ 26.500 26.200
+ 06 1 1 1 15 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20489132.925 7 -15965545.643 7 20422225.170 20422223.124 20422224.470
+ 44.400 44.800
+ -16532121.803 6 -12882158.011 6 21662554.888 21662553.508 21662554.140
+ 40.500 36.800
+ -588214.197 3 -458348.510 2 23567324.938 23567322.785 23567324.070
+ 22.100 16.100
+ -4169400.507 4 -3248881.055 3 24058582.269 24058581.041 24058581.902
+ 27.900 19.300
+ -15141440.646 7 -11798502.700 6 21632853.256 21632851.407 21632852.255
+ 43.500 37.100
+ -22589526.746 7 -17602217.565 7 20198254.510 20198252.723 20198254.048
+ 46.400 43.800
+ -16712359.523 7 -13022610.956 6 21717865.276 21717862.073 21717864.350
+ 44.500 37.000
+ -4287298.239 4 -3340750.653 3 23765695.875 23765694.726 23765694.957
+ 29.200 23.400
+ 06 1 1 1 16 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20490490.436 7 -15966603.440 7 20421966.886 20421964.817 20421966.154
+ 44.500 44.800
+ -16481568.310 6 -12842765.690 6 21672175.190 21672173.439 21672174.406
+ 40.800 37.100
+ -672499.946 4 -524025.692 3 23551286.294 23551283.415 23551285.250
+ 25.900 19.300
+ -4185752.404 4 -3261622.762 3 24055471.961 24055469.574 24055470.712
+ 28.400 21.600
+ -15069439.962 7 -11742398.266 6 21646554.533 21646552.743 21646553.473
+ 43.400 36.700
+ -22631350.598 7 -17634807.569 7 20190295.850 20190293.920 20190295.366
+ 46.400 43.900
+ -16791255.515 7 -13084088.348 6 21702852.102 21702848.902 21702851.086
+ 44.800 37.500
+ -4390839.469 4 -3421432.116 2 23745992.295 23745990.584 23745991.328
+ 28.400 17.000
+ 06 1 1 1 16 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20491261.730 7 -15967204.448 7 20421820.044 20421818.000 20421819.382
+ 44.400 44.800
+ -16430521.688 6 -12802989.118 6 21681888.999 21681887.148 21681888.125
+ 40.500 36.500
+ -756644.670 4 -589592.993 3 23535273.696 23535271.088 23535272.948
+ 27.600 19.900
+ -4201548.303 4 -3273931.295 3 24052465.657 24052463.614 24052464.645
+ 28.600 20.500
+ -14997241.190 7 -11686139.482 6 21660293.542 21660291.802 21660292.457
+ 43.400 37.100
+ -22672511.038 7 -17666880.631 7 20182463.215 20182461.307 20182462.752
+ 46.200 43.800
+ -16869915.191 7 -13145381.597 6 21687883.808 21687880.285 21687882.561
+ 44.600 37.300
+ -4494325.869 4 -3502070.884 3 23726300.117 23726297.700 23726299.000
+ 26.500 22.100
+ 06 1 1 1 17 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20491447.602 7 -15967349.280 7 20421784.819 20421782.646 20421784.091
+ 44.700 44.800
+ -16378983.909 6 -12762829.818 6 21691695.840 21691694.420 21691695.145
+ 40.000 36.100
+ -840647.771 4 -655049.939 3 23519288.018 23519286.110 23519287.491
+ 27.600 21.100
+ -4216787.277 4 -3285805.803 3 24049565.829 24049563.545 24049564.826
+ 28.100 19.900
+ -14924845.761 7 -11629727.456 6 21674070.019 21674068.118 21674068.897
+ 43.200 36.600
+ -22713006.946 7 -17698435.878 7 20174757.076 20174755.246 20174756.613
+ 46.200 44.000
+ -16948336.523 7 -13206489.119 6 21672960.338 21672957.214 21672959.454
+ 44.800 37.600
+ -4597755.963 4 -3582665.789 3 23706618.417 23706615.705 23706617.656
+ 28.400 20.500
+ 06 1 1 1 17 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20491048.616 7 -15967038.380 7 20421860.799 20421858.501 20421860.076
+ 44.700 44.700
+ -16326956.913 6 -12722289.306 6 21701596.324 21701594.904 21701595.542
+ 40.000 36.400
+ -924508.819 4 -720396.184 4 23503330.126 23503328.032 23503329.253
+ 29.900 24.900
+ -4231468.367 4 -3297245.602 3 24046772.200 24046770.165 24046771.336
+ 27.900 19.900
+ -14852254.901 7 -11573163.148 6 21687883.353 21687881.715 21687882.382
+ 43.300 36.700
+ -22752837.019 7 -17729472.291 7 20167177.780 20167175.913 20167177.224
+ 46.100 44.200
+ -17026517.425 7 -13267409.296 6 21658083.153 21658079.833 21658082.123
+ 45.000 37.400
+ -4701128.242 4 -3663215.641 3 23686946.686 23686945.580 23686946.167
+ 27.900 23.800
+ 06 1 1 1 18 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20490065.460 7 -15966272.278 7 20422047.947 20422045.591 20422047.291
+ 44.900 44.900
+ -16274442.489 6 -12681368.991 6 21711589.291 21711588.273 21711588.528
+ 39.600 36.800
+ -1008227.527 5 -785631.514 4 23487399.138 23487396.801 23487398.407
+ 32.300 25.600
+ -4245590.494 4 -3308249.844 3 24044084.413 24044082.102 24044083.422
+ 27.100 20.500
+ -14779469.927 7 -11516447.579 6 21701734.101 21701732.155 21701732.978
+ 43.000 36.400
+ -22792000.345 7 -17759989.160 7 20159725.374 20159723.359 20159724.765
+ 46.300 44.200
+ -17104455.922 7 -13328140.588 6 21643252.268 21643248.584 21643251.150
+ 45.000 37.800
+ -4804441.133 4 -3743719.180 3 23667285.546 23667285.735 23667284.892
+ 24.600 23.800
+ 06 1 1 1 18 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20488498.450 7 -15965051.228 7 20422346.224 20422343.855 20422345.433
+ 44.900 45.000
+ -16221442.550 6 -12640070.352 6 21721675.249 21721673.692 21721674.488
+ 40.000 36.000
+ -1091803.240 5 -850755.433 4 23471495.189 23471492.767 23471494.404
+ 32.800 26.200
+ -4259152.229 4 -3318817.435 3 24041504.177 24041501.809 24041502.851
+ 28.100 22.100
+ -14706492.048 7 -11459581.697 5 21715621.433 21715619.009 21715620.360
+ 43.000 35.600
+ -22830495.901 7 -17789985.693 7 20152399.768 20152397.855 20152399.205
+ 46.200 44.300
+ -17182150.069 7 -13388681.477 6 21628467.251 21628464.012 21628466.189
+ 44.900 37.900
+ -4907692.730 4 -3824174.979 3 23647639.281 23647636.989 23647637.995
+ 27.400 23.000
+ 06 1 1 1 19 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20486348.454 7 -15963375.904 7 20422755.153 20422752.934 20422754.423
+ 44.700 45.100
+ -16167959.287 6 -12598395.086 5 21731852.951 21731851.024 21731852.157
+ 40.200 35.700
+ -1175235.406 5 -915767.495 4 23455618.584 23455615.784 23455617.661
+ 32.300 26.500
+ -4272152.846 4 -3328947.782 3 24039030.315 24039027.886 24039029.159
+ 27.600 21.100
+ -14633322.634 7 -11402566.568 6 21729545.185 21729543.098 21729543.960
+ 42.700 36.300
+ -22868322.719 7 -17819461.130 7 20145201.446 20145199.640 20145200.849
+ 46.100 44.300
+ -17259597.483 7 -13449030.103 6 21613729.595 21613726.165 21613728.609
+ 45.300 37.800
+ -5010881.240 4 -3904581.617 4 23628002.257 23628001.392 23628001.432
+ 26.800 25.300
+ 06 1 1 1 19 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20483616.155 7 -15961246.832 7 20423274.977 20423272.779 20423274.319
+ 44.800 44.900
+ -16113994.476 6 -12556344.593 5 21742122.008 21742120.342 21742121.210
+ 40.200 35.900
+ -1258523.372 5 -980667.187 4 23439769.348 23439766.622 23439768.578
+ 32.700 26.200
+ -4284591.405 4 -3338640.159 3 24036663.197 24036661.056 24036662.292
+ 28.600 21.100
+ -14559962.842 7 -11345403.100 6 21743504.997 21743502.976 21743503.816
+ 43.100 36.100
+ -22905479.653 7 -17848414.576 7 20138130.617 20138128.978 20138130.071
+ 46.200 44.500
+ -17336796.022 7 -13509184.811 6 21599039.255 21599035.682 21599038.201
+ 45.500 37.700
+ -5114005.133 4 -3984937.897 4 23608378.711 23608377.833 23608377.694
+ 28.400 28.600
+ 06 1 1 1 20 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20480302.205 7 -15958664.536 7 20423905.734 20423903.468 20423904.986
+ 44.800 44.800
+ -16059550.136 6 -12513920.442 6 21752482.488 21752480.946 21752481.683
+ 40.400 36.500
+ -1341666.870 5 -1045454.315 4 23423948.053 23423945.098 23423947.153
+ 32.800 26.500
+ -4296466.802 4 -3347893.725 3 24034403.348 24034401.784 24034402.258
+ 25.900 21.100
+ -14486414.174 7 -11288092.437 6 21757500.745 21757498.775 21757499.600
+ 42.700 36.100
+ -22941965.919 7 -17876845.427 7 20131187.605 20131185.952 20131187.063
+ 46.000 44.700
+ -17413744.387 7 -13569144.572 6 21584396.516 21584393.016 21584395.414
+ 45.400 38.000
+ -5217062.765 4 -4065242.537 5 23588767.752 23588767.069 23588766.574
+ 27.900 31.300
+ 06 1 1 1 20 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20476407.432 7 -15955629.647 7 20424646.690 20424644.529 20424646.130
+ 44.900 44.700
+ -16004628.489 6 -12471124.364 6 21762933.658 21762932.273 21762932.975
+ 40.500 36.500
+ -1424665.242 5 -1110128.355 4 23408153.899 23408151.230 23408152.808
+ 31.000 27.100
+ -4307778.381 4 -3356707.939 3 24032251.202 24032248.555 24032250.250
+ 29.700 19.300
+ -14412677.731 7 -11230635.466 5 21771532.740 21771530.469 21771531.386
+ 42.900 35.900
+ -22977780.497 7 -17904752.882 7 20124372.410 20124370.635 20124371.876
+ 46.100 44.600
+ -17490440.049 7 -13628907.419 6 21569801.311 21569798.328 21569800.439
+ 45.400 38.500
+ -5320052.342 4 -4145494.133 4 23569169.778 23569168.289 23569168.373
+ 28.100 29.200
+ 06 1 1 1 21 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20471932.364 7 -15952142.579 7 20425498.315 20425496.128 20425497.640
+ 44.900 44.700
+ -15949231.174 6 -12427957.638 6 21773475.269 21773473.973 21773474.567
+ 39.700 36.000
+ -1507518.096 4 -1174688.978 4 23392387.533 23392384.730 23392386.269
+ 28.600 25.600
+ -4318524.864 4 -3365081.814 3 24030205.469 24030204.201 24030204.649
+ 28.100 23.000
+ -14338754.844 7 -11173033.211 5 21785599.528 21785597.310 21785598.325
+ 42.500 35.800
+ -23012922.391 7 -17932136.174 7 20117684.915 20117683.289 20117684.500
+ 46.300 44.600
+ -17566881.113 7 -13688471.877 6 21555255.458 21555252.222 21555254.472
+ 45.800 38.800
+ -5422972.229 4 -4225691.431 4 23549584.084 23549582.699 23549583.045
+ 28.400 27.900
+ 06 1 1 1 21 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20466877.989 7 -15948204.101 7 20426460.211 20426458.041 20426459.470
+ 44.800 44.900
+ -15893360.351 6 -12384421.943 6 21784107.190 21784105.879 21784106.393
+ 39.300 36.100
+ -1590224.929 4 -1239135.836 3 23376648.687 23376645.647 23376647.703
+ 29.000 21.600
+ -4328705.424 4 -3373014.716 3 24028268.461 24028266.084 24028267.534
+ 28.100 21.100
+ -14264646.729 7 -11115286.622 6 21799701.780 21799699.846 21799700.579
+ 42.700 36.200
+ -23047390.812 7 -17958994.676 7 20111126.085 20111124.096 20111125.517
+ 46.400 44.700
+ -17643065.463 7 -13747836.298 6 21540758.153 21540754.729 21540757.117
+ 45.900 38.500
+ -5525820.798 5 -4305833.185 4 23530013.283 23530011.420 23530012.195
+ 30.200 27.100
+ 06 1 1 1 22 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20461244.798 7 -15943814.597 7 20427532.204 20427529.910 20427531.529
+ 44.900 44.800
+ -15837017.931 6 -12340518.778 6 21794828.922 21794827.572 21794828.221
+ 39.700 36.300
+ -1672784.642 5 -1303468.081 3 23360938.182 23360935.006 23360937.163
+ 30.200 21.600
+ -4338319.317 4 -3380506.052 3 24026438.963 24026437.050 24026437.932
+ 28.100 19.900
+ -14190354.530 7 -11057396.594 6 21813839.084 21813837.212 21813837.998
+ 42.400 36.000
+ -23081185.000 7 -17985327.802 7 20104695.192 20104693.274 20104694.723
+ 46.400 44.700
+ -17718990.755 7 -13806998.863 6 21526309.954 21526306.449 21526308.936
+ 45.600 38.500
+ -5628596.411 4 -4385918.077 4 23510455.840 23510454.281 23510454.590
+ 28.800 28.100
+ 06 1 1 1 22 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20455033.801 7 -15938974.858 7 20428714.171 20428711.779 20428713.486
+ 45.200 44.900
+ -15780206.468 6 -12296250.114 5 21805640.003 21805638.302 21805639.224
+ 39.900 35.700
+ -1755197.298 5 -1367685.726 4 23345255.464 23345253.035 23345254.459
+ 31.100 24.200
+ -4347366.149 4 -3387555.539 3 24024717.456 24024715.863 24024716.571
+ 27.900 21.100
+ -14115879.633 7 -10999364.201 5 21828011.007 21828009.245 21828009.906
+ 42.400 35.700
+ -23114304.000 7 -18011134.820 7 20098392.705 20098390.989 20098392.251
+ 46.800 44.700
+ -17794655.358 7 -13865958.290 6 21511911.418 21511908.085 21511910.321
+ 45.600 38.600
+ -5731297.226 5 -4465944.690 4 23490912.655 23490910.786 23490911.436
+ 31.000 27.400
+ 06 1 1 1 23 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20448245.854 7 -15933685.549 7 20430006.042 20430003.519 20430005.236
+ 45.100 44.800
+ -15722927.550 6 -12251617.190 5 21816539.819 21816537.946 21816538.905
+ 39.300 35.200
+ -1837462.186 5 -1431788.214 4 23329601.160 23329598.468 23329600.249
+ 33.100 25.300
+ -4355844.584 4 -3394162.083 3 24023104.051 24023102.286 24023103.101
+ 27.900 19.300
+ -14041223.414 7 -10941190.517 5 21842217.732 21842215.841 21842216.622
+ 42.200 35.800
+ -23146747.085 7 -18036415.135 7 20092219.302 20092217.241 20092218.705
+ 46.600 44.800
+ -17870056.902 7 -13924712.737 6 21497563.081 21497559.556 21497562.114
+ 46.000 38.600
+ -5833921.330 4 -4545911.521 4 23471382.981 23471381.763 23471382.137
+ 29.200 26.200
+ 06 1 1 1 23 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20440881.669 7 -15927947.220 7 20431407.208 20431404.820 20431406.566
+ 45.100 44.800
+ -15665183.540 6 -12206621.876 5 21827527.651 21827526.387 21827526.955
+ 38.900 35.600
+ -1919578.911 5 -1495775.273 4 23313975.335 23313971.838 23313974.019
+ 33.800 24.900
+ -4363753.666 4 -3400324.992 3 24021598.908 24021597.253 24021597.765
+ 28.400 21.600
+ -13966387.092 7 -10882876.496 5 21856458.944 21856456.530 21856457.802
+ 42.000 35.600
+ -23178513.513 7 -18061168.199 7 20086174.247 20086172.242 20086173.766
+ 46.500 44.600
+ -17945193.306 7 -13983260.582 6 21483265.259 21483261.624 21483264.154
+ 46.000 38.600
+ -5936467.046 4 -4625817.278 4 23451870.292 23451867.824 23451868.893
+ 29.900 25.600
+ 06 1 1 1 24 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20432942.277 7 -15921760.676 7 20432918.181 20432915.698 20432917.384
+ 45.200 44.800
+ -15606976.453 6 -12161265.717 5 21838604.523 21838602.875 21838603.657
+ 39.300 35.900
+ -2001547.113 5 -1559646.605 4 23298376.812 23298373.731 23298375.683
+ 32.800 26.200
+ -4371093.202 4 -3406044.113 3 24020202.041 24020200.200 24020201.242
+ 27.600 22.100
+ -13891371.549 6 -10824422.823 5 21870733.827 21870731.146 21870732.636
+ 41.800 34.700
+ -23209602.517 7 -18085393.391 7 20080258.243 20080256.129 20080257.716
+ 46.600 44.700
+ -18020062.615 7 -14041600.302 6 21469017.927 21469014.563 21469016.930
+ 46.000 38.900
+ -6038932.520 5 -4705660.500 4 23432371.560 23432369.485 23432370.399
+ 30.100 27.100
+ 06 1 1 1 24 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20424428.391 7 -15915126.484 7 20434538.069 20434535.853 20434537.391
+ 45.100 44.900
+ -15548308.386 6 -12115550.358 5 21849768.276 21849766.821 21849767.754
+ 38.600 35.100
+ -2083366.070 5 -1623401.610 4 23282807.308 23282804.530 23282806.249
+ 32.100 28.400
+ -4377862.292 4 -3411318.755 3 24018914.475 24018911.834 24018913.224
+ 28.100 19.900
+ -13816178.079 6 -10765830.502 5 21885042.486 21885040.638 21885041.286
+ 41.700 35.700
+ -23240013.403 7 -18109090.180 7 20074471.038 20074469.188 20074470.655
+ 46.600 44.700
+ -18094662.658 7 -14099730.205 6 21454821.945 21454818.491 21454820.912
+ 45.900 38.900
+ -6141316.239 4 -4785440.011 4 23412888.127 23412886.425 23412886.849
+ 28.600 27.100
+ 06 1 1 1 25 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20415340.924 7 -15908045.334 7 20436267.462 20436265.149 20436266.733
+ 45.100 45.100
+ -15489181.568 6 -12069477.523 5 21861019.706 21861018.247 21861018.936
+ 38.700 34.500
+ -2165035.285 5 -1687039.925 4 23267266.359 23267263.631 23267265.380
+ 31.800 29.500
+ -4384059.805 4 -3416147.960 3 24017734.846 24017733.191 24017734.033
+ 29.200 21.100
+ -13740808.158 6 -10707100.698 5 21899384.712 21899382.870 21899383.675
+ 41.600 34.900
+ -23269745.464 7 -18132258.016 7 20068813.413 20068811.351 20068812.842
+ 46.800 44.900
+ -18168991.333 7 -14157648.648 6 21440677.614 21440674.364 21440676.723
+ 46.100 39.100
+ -6243616.307 4 -4865154.328 4 23393421.453 23393419.224 23393420.368
+ 26.500 25.600
+ 06 1 1 1 25 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20405681.026 7 -15900518.142 7 20438105.708 20438103.417 20438104.993
+ 45.200 45.100
+ -15429598.180 6 -12023048.923 5 21872358.379 21872356.905 21872357.496
+ 38.400 35.200
+ -2246554.335 5 -1750561.232 4 23251753.493 23251750.879 23251752.595
+ 31.800 26.500
+ -4389685.133 4 -3420531.337 3 24016665.041 24016662.401 24016663.606
+ 28.400 23.000
+ -13665263.043 6 -10648234.354 5 21913760.557 21913758.610 21913759.395
+ 41.500 35.400
+ -23298798.183 7 -18154896.493 7 20063284.788 20063282.825 20063284.327
+ 46.800 44.800
+ -18243046.752 7 -14215354.167 6 21426585.633 21426581.931 21426584.503
+ 46.300 39.100
+ -6345830.920 4 -4944802.064 4 23373970.180 23373968.179 23373969.036
+ 28.400 25.900
+ 06 1 1 1 26 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20395449.484 7 -15892545.512 7 20440052.705 20440050.371 20440051.980
+ 45.300 44.900
+ -15369560.348 6 -11976266.215 6 21883783.185 21883781.909 21883782.484
+ 39.100 36.000
+ -2327922.744 5 -1813965.187 4 23236269.683 23236266.259 23236268.610
+ 32.800 24.600
+ -4394737.996 4 -3424468.607 3 24015702.646 24015700.895 24015701.930
+ 27.900 19.300
+ -13589543.686 6 -10589232.261 5 21928169.367 21928167.698 21928168.166
+ 41.500 35.300
+ -23327170.853 7 -18177005.063 7 20057885.662 20057883.722 20057885.166
+ 46.800 44.900
+ -18316826.792 7 -14272845.109 6 21412545.352 21412542.177 21412544.379
+ 46.200 39.300
+ -6447958.387 4 -5024381.888 4 23354535.438 23354534.320 23354534.268
+ 28.400 25.300
+ 06 1 1 1 26 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20384647.283 7 -15884128.214 7 20442108.306 20442106.001 20442107.524
+ 45.100 45.000
+ -15309070.228 6 -11929131.069 5 21895294.159 21895292.796 21895293.402
+ 38.900 35.500
+ -2409139.834 5 -1877251.252 3 23220814.434 23220811.064 23220813.473
+ 32.700 23.800
+ -4399217.530 5 -3427959.177 3 24014851.427 24014848.675 24014850.429
+ 30.200 22.600
+ -13513651.408 6 -10530095.416 5 21942611.228 21942609.335 21942610.056
+ 41.300 34.900
+ -23354862.887 7 -18198583.264 7 20052616.106 20052614.111 20052615.584
+ 46.700 44.800
+ -18390328.835 7 -14330119.424 6 21398558.676 21398555.176 21398557.475
+ 46.200 39.500
+ -6549996.865 4 -5103892.379 4 23335118.816 23335117.063 23335117.686
+ 28.800 25.600
+ 06 1 1 1 27 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20373275.513 7 -15875267.089 7 20444272.111 20444269.993 20444271.447
+ 45.000 45.100
+ -15248129.957 6 -11881645.165 5 21906890.739 21906888.946 21906889.946
+ 38.800 34.400
+ -2490205.100 5 -1940418.985 4 23205388.011 23205385.534 23205387.174
+ 31.600 27.600
+ -4403122.782 4 -3431002.232 3 24014107.430 24014105.224 24014106.452
+ 27.400 21.100
+ -13437587.384 6 -10470824.737 5 21957085.774 21957083.955 21957084.544
+ 41.200 35.200
+ -23381873.856 7 -18219630.767 7 20047476.233 20047474.033 20047475.590
+ 46.800 45.000
+ -18463551.074 7 -14387175.712 6 21384624.862 21384621.537 21384623.926
+ 46.600 39.700
+ -6651944.410 5 -5183332.024 4 23315718.895 23315716.991 23315717.958
+ 30.400 25.300
+ 06 1 1 1 27 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20361335.001 7 -15865962.793 7 20446544.223 20446542.124 20446543.590
+ 45.200 44.900
+ -15186741.978 6 -11833810.384 5 21918572.026 21918570.589 21918571.293
+ 38.100 33.900
+ -2571118.106 5 -2003468.039 4 23189990.707 23189988.446 23189989.729
+ 31.300 29.000
+ -4406453.919 4 -3433597.911 3 24013473.142 24013470.932 24013472.275
+ 27.100 19.300
+ -13361352.718 6 -10411421.100 5 21971592.737 21971591.175 21971591.572
+ 41.300 35.600
+ -23408203.120 7 -18240147.074 7 20042465.632 20042463.764 20042465.130
+ 46.600 44.900
+ -18536491.398 7 -14444012.327 6 21370744.758 21370741.596 21370743.708
+ 46.600 40.200
+ -6753799.296 5 -5262699.471 4 23296336.478 23296334.866 23296335.472
+ 31.000 27.900
+ 06 1 1 1 28 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20348826.911 7 -15856216.225 7 20448924.613 20448922.376 20448923.894
+ 45.300 44.900
+ -15124908.289 6 -11785628.305 5 21930338.907 21930337.352 21930338.033
+ 38.100 34.100
+ -2651878.341 5 -2066398.070 4 23174622.625 23174619.898 23174621.740
+ 33.200 27.900
+ -4409210.407 4 -3435745.809 3 24012949.347 24012947.311 24012948.356
+ 28.800 22.600
+ -13284948.629 6 -10351885.437 5 21986131.812 21986129.867 21986130.727
+ 41.200 34.400
+ -23433850.277 7 -18260131.861 7 20037585.104 20037583.227 20037584.553
+ 46.600 44.900
+ -18609147.476 7 -14500627.448 6 21356918.727 21356915.376 21356917.573
+ 46.100 39.800
+ -6855559.793 5 -5341993.322 4 23276972.507 23276970.773 23276971.285
+ 31.500 29.200
+ 06 1 1 1 28 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20335752.268 7 -15846028.192 7 20451412.578 20451410.387 20451411.926
+ 45.200 45.000
+ -15062631.274 6 -11737100.779 5 21942189.918 21942188.311 21942189.085
+ 38.100 34.300
+ -2732485.460 5 -2129208.821 4 23159283.716 23159280.468 23159282.752
+ 33.600 26.800
+ -4411391.180 4 -3437445.125 3 24012533.253 24012532.048 24012532.481
+ 26.500 23.800
+ -13208376.310 6 -10292218.685 5 22000703.306 22000701.324 22000702.232
+ 41.500 35.100
+ -23458814.684 7 -18279584.645 7 20032834.531 20032832.626 20032834.022
+ 46.700 44.900
+ -18681517.891 7 -14557019.975 6 21343146.829 21343143.797 21343145.812
+ 46.100 40.100
+ -6957223.759 5 -5421211.975 5 23257626.455 23257624.593 23257625.317
+ 31.600 31.000
+ 06 1 1 1 29 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20322112.117 7 -15835399.497 7 20454008.399 20454006.061 20454007.581
+ 45.200 45.200
+ -14999913.138 6 -11688229.520 5 21954124.633 21954123.337 21954123.815
+ 38.300 34.800
+ -2812938.707 5 -2191899.673 4 23143973.887 23143971.149 23143972.869
+ 32.800 26.500
+ -4412995.782 4 -3438695.479 3 24012228.935 24012227.098 24012227.564
+ 26.200 23.800
+ -13131637.081 6 -10232421.876 5 22015306.039 22015304.212 22015304.956
+ 41.100 34.700
+ -23483096.131 7 -18298505.242 7 20028214.047 20028211.946 20028213.606
+ 46.900 44.800
+ -18753600.108 7 -14613187.926 6 21329430.324 21329426.929 21329429.259
+ 46.500 40.000
+ -7058789.612 5 -5500354.171 5 23238298.762 23238297.138 23238297.701
+ 30.800 31.600
+ 06 1 1 1 29 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20307907.549 7 -15824331.002 7 20456711.319 20456709.070 20456710.616
+ 44.900 44.900
+ -14936756.151 6 -11639016.298 5 21966143.409 21966141.703 21966142.525
+ 38.600 34.600
+ -2893237.429 5 -2254470.089 4 23128693.393 23128691.340 23128692.561
+ 32.100 28.800
+ -4414023.749 4 -3439496.490 3 24012032.105 24012030.655 24012031.651
+ 26.800 19.300
+ -13054731.997 6 -10172495.838 5 22029940.923 22029938.715 22029939.721
+ 40.700 34.400
+ -23506694.219 7 -18316893.361 7 20023723.569 20023721.438 20023723.037
+ 46.900 45.100
+ -18825391.891 7 -14669129.568 6 21315768.763 21315765.436 21315767.737
+ 46.400 40.000
+ -7160255.395 5 -5579418.400 5 23218990.502 23218989.185 23218989.439
+ 31.100 31.500
+ 06 1 1 1 30 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20293139.691 7 -15812823.579 7 20459521.703 20459519.254 20459520.878
+ 45.200 45.000
+ -14873162.507 6 -11589462.822 5 21978244.627 21978243.190 21978243.849
+ 38.200 34.500
+ -2973381.447 5 -2316919.940 4 23113442.551 23113440.000 23113441.499
+ 32.400 28.600
+ -4414474.712 4 -3439847.877 3 24011946.841 24011944.825 24011945.499
+ 24.200 19.300
+ -12977662.438 6 -10112441.633 5 22044606.487 22044604.699 22044605.323
+ 40.600 34.500
+ -23529608.517 7 -18334748.647 7 20019362.990 20019361.064 20019362.594
+ 46.900 45.100
+ -18896891.345 7 -14724843.423 6 21302163.032 21302159.512 21302161.907
+ 46.400 39.800
+ -7261619.302 5 -5658403.230 5 23199702.375 23199700.079 23199700.897
+ 30.600 30.400
+ 06 1 1 1 30 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20277809.678 7 -15800878.113 7 20462438.668 20462436.535 20462437.969
+ 45.300 45.000
+ -14809134.717 6 -11539571.058 5 21990428.673 21990427.158 21990427.948
+ 38.200 34.000
+ -3053370.374 5 -2379248.967 4 23098221.177 23098218.151 23098220.204
+ 33.000 26.800
+ -4414348.102 4 -3439749.193 3 24011971.594 24011968.969 24011970.583
+ 28.400 20.500
+ -12900429.473 6 -10052260.092 5 22059303.636 22059301.510 22059302.403
+ 40.500 34.300
+ -23551838.641 7 -18352070.820 7 20015133.014 20015130.755 20015132.413
+ 47.100 45.300
+ -18968096.162 7 -14780327.692 6 21288612.897 21288609.577 21288611.890
+ 46.300 39.700
+ -7362879.497 5 -5737307.273 4 23180431.728 23180431.182 23180431.013
+ 30.100 28.800
+ 06 1 1 1 31 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20261918.630 7 -15788495.474 7 20465462.483 20465460.505 20465461.857
+ 45.200 45.100
+ -14744675.125 6 -11489342.812 5 22002694.822 22002693.373 22002694.090
+ 37.900 33.900
+ -3133203.736 5 -2441456.777 4 23083029.510 23083026.646 23083028.802
+ 33.500 27.600
+ -4413643.656 4 -3439200.308 3 24012105.171 24012103.404 24012104.301
+ 26.200 23.400
+ -12823034.223 6 -9991952.100 5 22074031.168 22074029.450 22074030.078
+ 40.500 34.500
+ -23573384.282 7 -18368859.629 7 20011032.618 20011030.813 20011032.247
+ 47.000 45.500
+ -19039004.294 7 -14835580.770 6 21275119.682 21275116.288 21275118.616
+ 46.700 40.000
+ -7464033.977 4 -5816128.913 4 23161183.555 23161181.379 23161182.120
+ 29.700 27.400
+ 06 1 1 1 31 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20245467.818 7 -15775676.659 7 20468593.216 20468590.974 20468592.505
+ 45.300 45.000
+ -14679785.875 6 -11438779.781 5 22015043.183 22015041.472 22015042.249
+ 37.500 33.600
+ -3212880.789 5 -2503542.779 4 23067867.619 23067864.909 23067866.558
+ 33.600 28.100
+ -4412361.005 4 -3438200.841 3 24012349.205 24012346.514 24012348.266
+ 26.200 19.900
+ -12745477.720 6 -9931518.447 5 22088789.613 22088787.999 22088788.600
+ 40.600 34.300
+ -23594245.117 7 -18385114.819 7 20007063.121 20007061.159 20007062.476
+ 46.600 45.600
+ -19109613.712 7 -14890601.089 6 21261682.989 21261679.716 21261681.964
+ 46.800 40.000
+ -7565080.849 5 -5894866.727 4 23141954.650 23141952.818 23141953.630
+ 31.600 28.100
+ 06 1 1 1 32 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20228458.266 7 -15762422.458 7 20471830.047 20471827.826 20471829.298
+ 45.300 45.000
+ -14614469.303 6 -11387883.768 5 22027472.232 22027470.745 22027471.501
+ 37.200 33.400
+ -3292400.808 5 -2565506.415 4 23052734.818 23052732.360 23052734.095
+ 33.900 27.600
+ -4410499.379 4 -3436750.261 3 24012703.329 24012701.456 24012702.350
+ 27.100 20.500
+ -12667761.063 6 -9870960.008 5 22103578.856 22103576.683 22103577.759
+ 40.600 34.100
+ -23614421.074 7 -18400836.340 7 20003223.685 20003221.805 20003223.106
+ 46.700 45.600
+ -19179921.860 7 -14945386.650 6 21248303.608 21248300.483 21248302.692
+ 46.400 40.100
+ -7666018.289 5 -5973519.282 4 23122747.224 23122745.008 23122746.013
+ 33.800 27.400
+ 06 1 1 1 32 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20210891.463 7 -15748734.038 7 20475172.747 20475170.704 20475172.013
+ 45.200 44.900
+ -14548728.036 6 -11336656.825 5 22039982.487 22039981.021 22039981.704
+ 37.700 33.500
+ -3371763.737 5 -2627347.660 4 23037633.080 23037629.468 23037632.156
+ 34.400 26.800
+ -4408058.699 4 -3434848.398 3 24013167.668 24013165.482 24013166.772
+ 25.900 20.500
+ -12589885.344 6 -9810277.612 5 22118397.969 22118396.147 22118396.823
+ 40.100 33.900
+ -23633911.775 7 -18416023.896 7 19999514.778 19999512.752 19999514.261
+ 46.800 45.500
+ -19249926.699 7 -14999935.870 6 21234982.315 21234979.002 21234981.244
+ 46.400 40.300
+ -7766844.403 5 -6052085.080 4 23103560.181 23103558.529 23103558.945
+ 31.800 28.800
+ 06 1 1 1 33 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20192768.420 7 -15734612.185 7 20478621.405 20478619.357 20478620.636
+ 45.200 44.900
+ -14482564.034 6 -11285100.468 5 22052572.954 22052571.556 22052572.223
+ 38.300 33.400
+ -3450968.960 5 -2689066.018 4 23022560.555 23022557.531 23022559.659
+ 33.600 26.800
+ -4405038.630 4 -3432495.084 3 24013742.017 24013740.437 24013741.191
+ 27.100 19.900
+ -12511851.927 6 -9749472.350 5 22133247.675 22133245.486 22133246.452
+ 40.500 33.900
+ -23652717.123 7 -18430677.410 7 19995936.110 19995934.197 19995935.677
+ 46.900 45.600
+ -19319626.221 7 -15054247.169 6 21221718.965 21221715.689 21221717.941
+ 46.600 40.700
+ -7867557.225 5 -6130562.592 4 23084395.502 23084393.729 23084394.410
+ 32.300 29.900
+ 06 1 1 1 33 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20174090.468 7 -15720057.934 7 20482175.787 20482173.550 20482175.035
+ 45.300 44.800
+ -14415979.874 6 -11233216.720 5 22065243.642 22065242.368 22065242.913
+ 38.200 34.300
+ -3530015.572 5 -2750660.770 4 23007518.610 23007516.321 23007517.579
+ 33.900 29.200
+ -4401438.937 4 -3429690.127 3 24014427.759 24014425.402 24014426.728
+ 27.100 20.500
+ -12433661.994 6 -9688545.121 5 22148126.150 22148124.382 22148125.048
+ 40.100 33.500
+ -23670837.023 7 -18444796.812 7 19992487.927 19992486.114 19992487.510
+ 46.800 45.600
+ -19389018.802 7 -15108319.303 6 21208513.971 21208510.602 21208512.956
+ 46.700 40.600
+ -7968154.763 5 -6208950.283 4 23065252.672 23065250.667 23065251.303
+ 32.800 29.900
+ 06 1 1 1 34 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20154858.794 7 -15705072.213 7 20485835.322 20485833.229 20485834.670
+ 45.500 44.800
+ -14348978.068 6 -11181007.538 5 22077994.118 22077992.363 22077993.238
+ 37.700 33.600
+ -3608903.908 5 -2812132.172 5 22992506.701 22992504.454 22992505.782
+ 34.900 31.000
+ -4397259.480 4 -3426433.395 3 24015222.257 24015221.483 24015221.413
+ 26.500 22.100
+ -12355316.483 6 -9627496.662 5 22163034.466 22163033.021 22163033.507
+ 39.900 33.500
+ -23688271.220 7 -18458381.897 7 19989170.246 19989168.479 19989169.852
+ 46.600 45.600
+ -19458101.693 7 -15162150.116 6 21195368.075 21195364.494 21195366.920
+ 46.800 40.600
+ -8068635.317 5 -6287246.809 4 23046131.239 23046129.500 23046129.986
+ 31.600 29.200
+ 06 1 1 1 34 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20135074.643 7 -15689655.984 7 20489600.406 20489598.023 20489599.653
+ 45.400 44.700
+ -14281560.864 6 -11128474.673 5 22090822.918 22090821.322 22090822.154
+ 37.700 33.500
+ -3687633.173 5 -2873479.633 4 22977524.799 22977522.038 22977524.042
+ 34.300 28.100
+ -4392499.879 4 -3422724.640 3 24016129.361 24016126.498 24016128.141
+ 28.800 21.600
+ -12276816.501 6 -9566327.838 5 22177972.695 22177971.083 22177971.662
+ 39.700 32.800
+ -23705019.540 7 -18471432.533 7 19985983.391 19985981.384 19985982.905
+ 46.800 45.700
+ -19526872.523 7 -15215737.765 6 21182281.243 21182277.882 21182280.216
+ 46.800 40.700
+ -8168996.852 5 -6365450.584 4 23027033.081 23027031.510 23027031.826
+ 31.600 29.500
+ 06 1 1 1 35 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20114739.504 7 -15673810.421 7 20493469.839 20493467.712 20493469.198
+ 45.600 44.700
+ -14213730.833 6 -11075620.114 5 22103730.424 22103729.140 22103729.630
+ 37.200 33.900
+ -3766202.448 5 -2934702.443 4 22962573.340 22962570.267 22962572.498
+ 34.100 26.800
+ -4387159.966 4 -3418563.656 3 24017145.600 24017142.786 24017144.548
+ 28.600 19.900
+ -12198163.120 6 -9505039.488 5 22192940.201 22192938.397 22192938.963
+ 39.600 33.200
+ -23721082.223 7 -18483948.911 7 19982926.815 19982924.860 19982926.371
+ 47.000 45.900
+ -19595329.752 7 -15269081.053 6 21169254.598 21169250.907 21169253.471
+ 47.000 40.900
+ -8269237.181 5 -6443559.931 5 23007957.557 23007956.527 23007956.866
+ 32.600 30.600
+ 06 1 1 1 35 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20093854.645 7 -15657536.501 7 20497444.382 20497441.983 20497443.588
+ 45.400 44.900
+ -14145490.189 6 -11022445.602 5 22116716.356 22116714.743 22116715.526
+ 37.500 33.200
+ -3844611.321 5 -2995800.276 4 22947653.506 22947650.272 22947652.572
+ 35.900 28.400
+ -4381239.447 4 -3413950.278 3 24018271.472 24018269.803 24018270.724
+ 28.600 23.000
+ -12119357.422 6 -9443632.452 5 22207936.221 22207934.254 22207935.200
+ 39.900 32.800
+ -23736458.879 7 -18495930.719 7 19980000.949 19979998.736 19980000.380
+ 47.000 46.000
+ -19663471.048 7 -15322178.155 6 21156287.512 21156284.099 21156286.383
+ 46.600 41.100
+ -8369354.536 5 -6521573.458 5 22988906.027 22988905.041 22988905.015
+ 32.100 31.000
+ 06 1 1 1 36 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20072421.369 7 -15640835.242 7 20501523.001 20501520.604 20501522.243
+ 45.600 44.800
+ -14076841.814 6 -10968953.377 5 22129779.437 22129778.224 22129778.719
+ 36.500 33.900
+ -3922859.568 5 -3056772.921 5 22932763.567 22932760.441 22932762.353
+ 34.800 30.100
+ -4374738.278 4 -3408884.415 3 24019508.703 24019506.605 24019507.674
+ 28.100 18.600
+ -12040400.583 6 -9382107.625 5 22222961.445 22222959.449 22222960.288
+ 39.500 32.600
+ -23751149.783 7 -18507378.174 7 19977205.221 19977203.176 19977204.684
+ 47.000 46.000
+ -19731294.244 7 -15375027.391 6 21143381.219 21143377.751 21143380.208
+ 46.900 41.000
+ -8469347.020 5 -6599489.667 5 22969878.557 22969876.732 22969877.413
+ 32.700 30.800
+ 06 1 1 1 36 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20050440.977 7 -15623707.659 7 20505705.569 20505703.303 20505704.807
+ 45.500 44.700
+ -14007787.525 6 -10915144.855 5 22142919.906 22142918.806 22142919.207
+ 36.100 33.400
+ -4000946.454 5 -3117619.818 4 22917903.188 22917900.568 22917902.138
+ 33.600 28.800
+ -4367656.504 4 -3403366.146 3 24020856.165 24020853.915 24020855.555
+ 28.100 20.500
+ -11961293.787 6 -9320465.958 5 22238015.111 22238012.985 22238014.003
+ 39.700 32.700
+ -23765154.693 7 -18518291.091 7 19974540.156 19974538.132 19974539.594
+ 46.800 46.000
+ -19798796.902 7 -15427626.856 6 21130535.890 21130532.426 21130534.815
+ 46.800 41.300
+ -8569212.453 5 -6677306.887 5 22950875.340 22950873.478 22950873.933
+ 33.100 31.000
+ 06 1 1 1 37 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20027914.960 7 -15606154.918 7 20509992.224 20509989.808 20509991.385
+ 45.400 44.700
+ -13938330.394 6 -10861022.440 5 22156137.702 22156136.018 22156136.851
+ 37.200 32.800
+ -4078871.933 5 -3178340.956 4 22903074.189 22903071.103 22903073.343
+ 34.300 26.200
+ -4359993.524 4 -3397395.006 3 24022314.698 24022312.714 24022313.283
+ 27.100 21.600
+ -11882038.005 6 -9258708.198 5 22253096.773 22253094.992 22253095.617
+ 38.900 33.100
+ -23778473.949 7 -18528669.732 7 19972005.518 19972003.499 19972004.939
+ 46.800 46.100
+ -19865977.247 7 -15479975.167 6 21117751.852 21117748.380 21117750.760
+ 46.800 41.100
+ -8668948.893 5 -6755023.599 4 22931895.413 22931893.490 22931894.383
+ 32.600 29.700
+ 06 1 1 1 37 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20004844.661 7 -15588178.056 7 20514382.189 20514379.930 20514381.455
+ 45.500 44.600
+ -13868472.741 6 -10806587.917 5 22169431.192 22169429.580 22169430.454
+ 37.300 32.800
+ -4156635.262 5 -3238935.763 4 22888276.518 22888273.924 22888275.858
+ 35.500 28.100
+ -4351749.851 4 -3390971.332 3 24023882.512 24023881.204 24023881.632
+ 25.600 21.100
+ -11802634.382 6 -9196835.242 5 22268206.770 22268205.127 22268205.719
+ 39.300 32.700
+ -23791107.552 7 -18538514.095 7 19969601.315 19969599.444 19969600.825
+ 46.800 46.100
+ -19932832.948 7 -15532070.513 6 21105029.621 21105026.077 21105028.521
+ 46.900 41.300
+ -8768554.431 5 -6832638.300 5 22912941.266 22912939.608 22912940.252
+ 32.800 30.600
+ 06 1 1 1 38 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19981231.431 7 -15569778.134 7 20518875.625 20518873.304 20518874.927
+ 45.700 44.500
+ -13798216.918 6 -10751843.131 5 22182800.454 22182798.651 22182799.569
+ 36.700 32.400
+ -4234235.927 5 -3299403.807 5 22873509.688 22873507.517 22873508.807
+ 35.400 30.400
+ -4342924.573 4 -3384094.517 3 24025563.150 24025560.189 24025562.093
+ 28.600 19.900
+ -11723083.921 6 -9134847.861 5 22283344.726 22283342.733 22283343.555
+ 38.700 32.000
+ -23803055.488 7 -18547824.167 7 19967327.782 19967325.862 19967327.259
+ 46.900 46.100
+ -19999361.889 7 -15583911.237 6 21092369.582 21092366.111 21092368.544
+ 47.100 41.400
+ -8868027.069 5 -6910149.438 5 22894011.757 22894010.403 22894010.758
+ 33.500 30.100
+ 06 1 1 1 38 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19957076.601 7 -15550956.182 7 20523472.012 20523469.784 20523471.382
+ 45.600 44.500
+ -13727565.418 6 -10696790.037 5 22196244.993 22196243.233 22196244.203
+ 37.000 32.700
+ -4311673.331 5 -3359744.598 4 22858773.831 22858771.271 22858772.911
+ 34.400 29.000
+ -4333518.497 4 -3376765.103 3 24027351.794 24027350.092 24027351.103
+ 26.500 18.600
+ -11643387.728 6 -9072746.921 5 22298510.465 22298508.610 22298509.311
+ 38.900 32.700
+ -23814318.020 7 -18556600.167 7 19965184.621 19965182.603 19965184.079
+ 46.900 46.100
+ -20065561.925 7 -15635495.671 6 21079772.244 21079768.836 21079771.191
+ 47.300 41.500
+ -8967364.847 5 -6987555.489 4 22875109.215 22875107.032 22875107.991
+ 33.800 29.500
+ 06 1 1 1 39 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19932381.819 7 -15531713.491 7 20528171.473 20528169.050 20528170.745
+ 45.700 44.500
+ -13656520.775 6 -10641430.581 5 22209764.706 22209762.531 22209763.826
+ 37.500 32.400
+ -4388946.832 5 -3419957.726 4 22844069.123 22844065.932 22844068.448
+ 35.900 27.100
+ -4323531.441 4 -3368982.982 3 24029253.521 24029251.043 24029252.468
+ 28.600 20.500
+ -11563546.752 6 -9010533.165 5 22313703.896 22313701.959 22313702.765
+ 39.100 32.800
+ -23824895.167 7 -18564842.094 7 19963171.699 19963169.831 19963171.243
+ 46.600 46.100
+ -20131430.568 7 -15686821.878 6 21067237.921 21067234.281 21067236.779
+ 47.100 41.300
+ -9066565.542 5 -7064854.734 5 22856231.448 22856229.601 22856230.423
+ 33.600 30.400
+ 06 1 1 1 39 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19907148.590 7 -15512051.235 7 20532973.177 20532970.805 20532972.552
+ 45.900 44.400
+ -13585085.609 6 -10585766.823 5 22223357.960 22223356.403 22223357.170
+ 36.400 32.400
+ -4466056.370 5 -3480043.088 4 22829395.439 22829393.038 22829394.688
+ 35.100 29.700
+ -4312963.246 4 -3360748.014 3 24031263.922 24031261.976 24031262.691
+ 26.200 18.600
+ -11483562.014 6 -8948207.389 5 22328924.306 22328922.445 22328923.079
+ 38.400 32.000
+ -23834787.228 7 -18572550.188 7 19961289.443 19961287.466 19961288.810
+ 46.800 46.100
+ -20196966.031 7 -15737888.463 6 21054766.534 21054763.206 21054765.581
+ 47.100 41.500
+ -9165627.156 5 -7142045.592 5 22837380.160 22837379.059 22837379.405
+ 33.600 31.100
+ 06 1 1 1 40 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19881378.320 7 -15491970.502 7 20537877.080 20537874.736 20537876.384
+ 46.100 44.400
+ -13513262.339 5 -10529800.669 5 22237025.085 22237024.106 22237024.392
+ 35.800 32.800
+ -4543001.293 5 -3540000.131 5 22814753.537 22814751.352 22814752.685
+ 35.400 31.100
+ -4301813.584 4 -3352059.957 2 24033386.003 24033383.422 24033385.075
+ 28.400 16.100
+ -11403434.780 6 -8885770.583 5 22344171.844 22344170.071 22344170.901
+ 38.800 32.100
+ -23843994.558 7 -18579724.727 7 19959537.230 19959535.402 19959536.675
+ 46.600 46.100
+ -20262166.192 7 -15788693.779 6 21042359.427 21042356.060 21042358.464
+ 47.100 41.600
+ -9264547.655 5 -7219126.491 5 22818556.762 22818555.167 22818555.677
+ 34.000 32.000
+ 06 1 1 1 40 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19855072.328 7 -15471472.325 7 20542883.136 20542880.533 20542882.311
+ 45.800 44.300
+ -13441053.571 6 -10473534.114 5 22250766.227 22250764.905 22250765.538
+ 36.900 33.000
+ -4619780.908 6 -3599828.396 4 22800143.581 22800140.147 22800142.467
+ 37.100 29.700
+ -4290082.786 3 -3342919.080 3 24035617.321 24035616.208 24035616.273
+ 23.800 21.600
+ -11323166.055 6 -8823223.515 5 22359446.641 22359444.885 22359445.526
+ 38.400 32.700
+ -23852517.214 7 -18586365.759 7 19957915.368 19957913.632 19957914.842
+ 46.800 46.200
+ -20327028.530 7 -15839235.858 6 21030016.417 21030013.294 21030015.409
+ 46.900 41.900
+ -9363324.921 5 -7296095.764 5 22799759.902 22799758.599 22799758.694
+ 33.500 32.000
+ 06 1 1 1 41 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19828232.380 7 -15450558.074 7 20547990.399 20547988.083 20547989.745
+ 45.900 44.400
+ -13368461.928 6 -10416969.211 5 22264579.842 22264578.580 22264579.226
+ 36.700 32.400
+ -4696394.886 6 -3659527.594 4 22785564.080 22785560.812 22785563.167
+ 36.900 29.900
+ -4277771.153 4 -3333325.601 3 24037960.804 24037958.385 24037959.761
+ 25.900 18.600
+ -11242756.757 6 -8760566.924 5 22374747.980 22374746.147 22374746.898
+ 38.600 32.600
+ -23860355.601 7 -18592473.589 7 19956424.006 19956421.960 19956423.432
+ 46.800 46.200
+ -20391551.309 7 -15889513.336 6 21017738.175 21017734.954 21017737.109
+ 46.800 41.800
+ -9461957.103 5 -7372951.997 5 22780990.529 22780989.583 22780989.730
+ 34.300 32.600
+ 06 1 1 1 41 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19800859.768 7 -15429228.764 7 20553199.603 20553196.955 20553198.750
+ 46.000 44.400
+ -13295489.937 5 -10360107.939 5 22278465.994 22278464.643 22278465.236
+ 35.600 32.000
+ -4772842.798 6 -3719097.393 5 22771016.868 22771013.810 22771015.705
+ 36.900 31.000
+ -4264878.621 4 -3323279.495 3 24040414.400 24040412.759 24040413.367
+ 26.500 22.100
+ -11162207.985 6 -8697801.633 5 22390075.687 22390074.054 22390074.631
+ 38.400 32.300
+ -23867510.031 7 -18598048.467 7 19955062.531 19955060.539 19955061.978
+ 46.800 46.200
+ -20455732.245 7 -15939524.447 6 21005524.903 21005521.575 21005523.945
+ 46.800 41.800
+ -9560441.946 5 -7449693.427 5 22762249.673 22762248.460 22762248.649
+ 33.800 32.300
+ 06 1 1 1 42 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19772956.458 7 -15407485.924 7 20558509.151 20558506.835 20558508.474
+ 46.000 44.500
+ -13222140.073 5 -10302952.216 5 22292424.097 22292422.667 22292423.388
+ 35.900 31.800
+ -4849123.975 6 -3778537.249 5 22756500.395 22756498.489 22756499.649
+ 36.700 32.700
+ -4251405.359 4 -3312780.801 3 24042977.411 24042976.091 24042976.478
+ 24.200 21.600
+ -11081520.858 6 -8634928.532 5 22405430.105 22405428.410 22405428.924
+ 38.000 31.800
+ -23873980.882 7 -18603090.677 7 19953831.018 19953829.094 19953830.558
+ 46.700 46.300
+ -20519569.131 7 -15989267.467 6 20993377.469 20993373.821 20993376.350
+ 46.800 41.800
+ -9658777.398 5 -7526318.439 5 22743537.118 22743535.616 22743536.131
+ 34.600 31.300
+ 06 1 1 1 42 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19744523.436 7 -15385330.317 7 20563919.691 20563917.443 20563919.027
+ 45.700 44.600
+ -13148414.991 6 -10245504.117 5 22306453.790 22306452.180 22306452.981
+ 36.700 32.300
+ -4925238.226 6 -3837847.025 5 22742016.562 22742013.767 22742015.592
+ 36.800 31.600
+ -4237351.631 4 -3301829.874 3 24045652.595 24045650.958 24045651.358
+ 25.600 23.800
+ -11000696.486 6 -8571948.502 5 22420810.377 22420808.860 22420809.283
+ 38.500 32.000
+ -23879768.486 7 -18607600.498 7 19952729.678 19952727.711 19952729.083
+ 46.600 46.100
+ -20583059.829 7 -16038740.732 6 20981295.635 20981291.915 20981294.545
+ 47.100 41.900
+ -9756961.678 5 -7602825.668 5 22724853.689 22724851.714 22724852.700
+ 34.400 30.400
+ 06 1 1 1 43 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19715562.772 7 -15362763.564 7 20569430.805 20569428.479 20569430.020
+ 45.700 44.500
+ -13074317.296 5 -10187765.664 5 22320553.895 22320552.532 22320553.061
+ 35.600 32.000
+ -5001184.884 5 -3897026.243 4 22727563.909 22727560.843 22727563.057
+ 35.900 29.200
+ -4222717.408 4 -3290426.611 3 24048436.928 24048435.343 24048436.195
+ 28.100 23.000
+ -10919735.654 6 -8508862.121 5 22436216.850 22436214.966 22436215.833
+ 38.400 32.000
+ -23884873.229 7 -18611578.214 7 19951758.113 19951756.371 19951757.665
+ 46.500 46.300
+ -20646202.037 7 -16087942.447 6 20969280.031 20969276.376 20969279.080
+ 47.500 41.900
+ -9854992.562 5 -7679213.357 5 22706198.789 22706197.139 22706197.681
+ 34.400 31.300
+ 06 1 1 1 43 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19686075.745 7 -15339786.659 7 20575041.959 20575039.715 20575041.142
+ 45.600 44.400
+ -12999849.641 5 -10129738.941 5 22334724.288 22334723.168 22334723.402
+ 34.500 31.300
+ -5076963.451 6 -3956074.477 5 22713143.988 22713141.474 22713143.144
+ 37.100 31.100
+ -4207503.092 4 -3278571.273 3 24051332.399 24051331.204 24051331.412
+ 26.800 23.000
+ -10838639.440 6 -8445670.254 5 22451648.972 22451647.116 22451647.840
+ 37.600 31.800
+ -23889295.526 7 -18615024.155 7 19950916.697 19950914.839 19950916.254
+ 46.800 46.200
+ -20708993.398 7 -16136870.775 7 20957331.347 20957327.629 20957330.141
+ 47.300 42.100
+ -9952867.898 5 -7755479.836 5 22687573.621 22687572.180 22687572.599
+ 34.000 32.600
+ 06 1 1 1 44 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19656064.001 7 -15316400.877 7 20580753.134 20580750.713 20580752.301
+ 45.600 44.500
+ -12925014.540 5 -10071425.894 5 22348965.198 22348963.763 22348964.442
+ 35.500 31.600
+ -5152573.085 5 -4014991.043 5 22698755.324 22698753.901 22698754.647
+ 35.800 32.100
+ -4191708.962 4 -3266264.185 3 24054338.084 24054335.750 24054336.987
+ 26.800 20.500
+ -10757408.750 6 -8382373.609 5 22467106.862 22467104.948 22467105.683
+ 37.800 32.300
+ -23893036.035 7 -18617938.829 7 19950204.865 19950203.054 19950204.437
+ 46.700 46.200
+ -20771432.289 7 -16185524.454 7 20945449.284 20945445.975 20945448.219
+ 47.100 42.200
+ -10050585.491 5 -7831623.395 5 22668978.177 22668977.101 22668977.319
+ 34.400 32.700
+ 06 1 1 1 44 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19625529.349 7 -15292607.638 7 20586563.391 20586561.344 20586562.641
+ 45.400 44.500
+ -12849814.752 5 -10012828.664 5 22363275.552 22363273.905 22363274.647
+ 35.800 31.300
+ -5228013.695 6 -4073775.898 4 22684399.903 22684397.282 22684399.044
+ 37.200 29.900
+ -4175335.304 4 -3253505.495 3 24057453.803 24057452.294 24057452.881
+ 27.900 23.400
+ -10676044.456 6 -8318972.859 5 22482589.887 22482587.690 22482588.761
+ 37.700 31.300
+ -23896095.058 7 -18620322.483 7 19949622.788 19949620.929 19949622.227
+ 46.700 46.300
+ -20833516.266 7 -16233901.570 7 20933634.913 20933631.686 20933633.964
+ 47.100 42.400
+ -10148143.479 5 -7907642.579 5 22650413.719 22650412.546 22650412.748
+ 34.400 32.000
+ 06 1 1 1 45 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19594473.412 7 -15268408.207 7 20592473.011 20592471.091 20592472.283
+ 45.400 44.500
+ -12774252.844 5 -9953949.269 5 22377654.104 22377652.885 22377653.515
+ 35.500 31.500
+ -5303284.791 6 -4132428.709 4 22670077.077 22670073.167 22670076.199
+ 38.100 29.700
+ -4158382.252 4 -3240295.326 3 24060680.006 24060677.985 24060679.004
+ 27.600 21.600
+ -10594547.834 6 -8255468.987 5 22498097.646 22498095.940 22498096.652
+ 37.100 31.100
+ -23898473.210 7 -18622175.586 7 19949170.262 19949168.407 19949169.681
+ 46.600 46.400
+ -20895243.251 7 -16282000.513 7 20921888.897 20921885.522 20921887.925
+ 47.300 42.500
+ -10245539.699 5 -7983535.736 5 22631879.867 22631878.230 22631878.928
+ 35.400 31.800
+ 06 1 1 1 45 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19562897.561 7 -15243803.649 7 20598481.823 20598479.818 20598481.032
+ 45.400 44.500
+ -12698331.619 5 -9894789.889 5 22392101.803 22392100.095 22392100.848
+ 34.500 31.100
+ -5378385.940 6 -4190949.087 5 22655785.451 22655782.452 22655784.385
+ 36.700 30.200
+ -4140850.200 4 -3226633.993 3 24064015.786 24064014.346 24064014.968
+ 26.500 20.500
+ -10512919.710 6 -8191862.646 5 22513631.519 22513629.160 22513630.247
+ 37.200 30.800
+ -23900170.982 7 -18623498.520 7 19948847.309 19948845.319 19948846.668
+ 46.700 46.200
+ -20956611.117 7 -16329819.624 7 20910211.206 20910207.613 20910210.147
+ 47.500 42.400
+ -10342771.923 5 -8059301.094 5 22613377.221 22613375.508 22613376.165
+ 35.100 32.300
+ 06 1 1 1 46 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19530803.791 7 -15218795.514 7 20604589.137 20604586.943 20604588.372
+ 45.500 44.200
+ -12622053.483 5 -9835352.398 5 22406616.758 22406615.328 22406616.070
+ 35.100 31.000
+ -5453316.593 6 -4249336.577 5 22641525.880 22641523.938 22641525.003
+ 36.100 31.600
+ -4122739.409 4 -3212521.707 3 24067462.719 24067460.125 24067461.342
+ 25.600 19.300
+ -10431161.027 6 -8128154.571 5 22529189.029 22529187.427 22529187.962
+ 37.200 31.000
+ -23901189.016 7 -18624291.795 7 19948653.567 19948651.526 19948652.904
+ 46.800 46.500
+ -21017617.705 7 -16377357.224 7 20898601.790 20898598.328 20898600.834
+ 47.500 42.400
+ -10439837.970 5 -8134936.957 5 22594906.373 22594904.777 22594905.213
+ 35.300 33.100
+ 06 1 1 1 46 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19498193.659 7 -15193385.017 7 20610794.787 20610792.415 20610794.045
+ 46.000 44.300
+ -12545421.206 5 -9775638.942 5 22421199.464 22421197.969 22421198.666
+ 34.700 30.600
+ -5528076.130 6 -4307590.738 4 22627300.564 22627297.030 22627299.604
+ 38.500 29.700
+ -4104049.925 4 -3197958.459 3 24071019.011 24071016.887 24071018.199
+ 28.800 19.900
+ -10349272.919 6 -8064345.647 5 22544771.928 22544770.008 22544770.773
+ 36.800 30.400
+ -23901527.992 7 -18624555.924 7 19948589.143 19948587.061 19948588.543
+ 46.800 46.400
+ -21078260.695 7 -16424611.491 7 20887061.606 20887058.334 20887060.696
+ 47.300 42.500
+ -10536735.768 6 -8210441.722 5 22576467.393 22576465.699 22576466.438
+ 36.400 33.500
+ 06 1 1 1 47 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19465068.799 7 -15167573.433 7 20617098.244 20617095.812 20617097.489
+ 45.900 44.200
+ -12468437.401 5 -9715651.577 5 22435848.678 22435847.431 22435848.117
+ 34.100 31.000
+ -5602664.314 6 -4365711.418 4 22613106.683 22613102.807 22613105.679
+ 37.700 29.000
+ -4084782.335 4 -3182944.770 2 24074685.391 24074683.570 24074684.510
+ 26.800 17.800
+ -10267256.281 6 -8000436.570 5 22560379.197 22560377.499 22560378.159
+ 37.000 31.000
+ -23901188.343 7 -18624291.258 7 19948653.630 19948651.670 19948653.090
+ 46.900 46.300
+ -21138538.022 7 -16471580.832 7 20875591.376 20875587.942 20875590.290
+ 47.100 42.700
+ -10633463.213 6 -8285813.757 5 22558060.459 22558059.190 22558059.457
+ 36.100 33.200
+ 06 1 1 1 47 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19431431.063 7 -15141362.203 7 20623499.292 20623496.875 20623498.528
+ 46.100 44.000
+ -12391104.733 5 -9655392.385 5 22450565.225 22450563.667 22450564.437
+ 34.800 30.600
+ -5677080.300 6 -4423697.890 5 22598945.407 22598942.916 22598944.453
+ 37.800 32.300
+ -4064937.104 4 -3167480.961 2 24078461.731 24078459.447 24078460.819
+ 27.400 17.000
+ -10185112.092 6 -7936428.114 5 22576010.934 22576009.128 22576009.854
+ 37.100 30.400
+ -23900170.914 7 -18623498.451 7 19948847.187 19948845.374 19948846.725
+ 46.900 46.500
+ -21198447.553 7 -16518263.577 7 20864191.160 20864187.628 20864190.062
+ 47.300 42.700
+ -10730018.047 6 -8361051.275 5 22539687.231 22539685.610 22539686.013
+ 36.100 34.500
+ 06 1 1 1 48 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19397281.986 7 -15114752.532 7 20629997.702 20629995.316 20629996.890
+ 46.100 44.100
+ -12313426.045 5 -9594863.552 5 22465346.943 22465345.499 22465346.226
+ 35.600 31.300
+ -5751323.532 6 -4481549.730 5 22584817.698 22584815.187 22584816.970
+ 38.700 32.600
+ -4044515.114 4 -3151567.711 3 24082348.220 24082346.124 24082347.236
+ 27.600 19.300
+ -10102841.088 6 -7872320.829 5 22591666.704 22591664.889 22591665.723
+ 37.000 30.600
+ -23898476.405 7 -18622178.054 7 19949169.611 19949167.889 19949169.121
+ 46.800 46.600
+ -21257987.125 7 -16564658.044 7 20852860.883 20852857.530 20852859.938
+ 47.400 42.800
+ -10826398.087 6 -8436152.580 5 22521346.368 22521344.939 22521345.364
+ 36.500 34.100
+ 06 1 1 1 48 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19362623.481 7 -15087745.899 7 20636592.774 20636590.578 20636592.070
+ 46.100 44.100
+ -12235403.892 5 -9534067.082 5 22480194.069 22480192.424 22480193.396
+ 35.200 30.100
+ -5825393.895 6 -4539266.884 5 22570722.282 22570719.598 22570721.616
+ 38.100 32.300
+ -4023516.594 4 -3135205.231 2 24086343.504 24086341.475 24086342.536
+ 24.900 17.800
+ -10020444.605 6 -7808115.765 5 22607345.957 22607344.259 22607344.928
+ 36.800 31.100
+ -23896105.286 7 -18620330.424 7 19949620.801 19949619.077 19949620.289
+ 46.700 46.700
+ -21317154.642 7 -16610762.596 7 20841601.818 20841598.324 20841600.784
+ 47.300 43.000
+ -10922601.067 6 -8511115.934 5 22503039.481 22503037.722 22503038.381
+ 36.000 33.500
+ 06 1 1 1 49 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19327457.121 7 -15060343.535 7 20643284.691 20643282.485 20643283.989
+ 46.100 44.100
+ -12157041.183 5 -9473005.232 5 22495105.976 22495104.300 22495105.235
+ 35.100 30.200
+ -5899290.667 6 -4596848.766 5 22556660.157 22556657.078 22556659.218
+ 37.900 31.000
+ -4001941.799 4 -3118393.711 2 24090449.137 24090447.114 24090448.444
+ 26.200 17.800
+ -9937923.406 6 -7743813.535 4 22623049.655 22623047.154 22623048.555
+ 36.600 29.700
+ -23893058.545 7 -18617956.335 7 19950200.686 19950198.773 19950200.117
+ 46.700 46.500
+ -21375947.565 7 -16656575.250 7 20830413.783 20830410.376 20830412.759
+ 47.300 43.100
+ -11018624.924 6 -8585939.708 5 22484766.927 22484765.003 22484765.818
+ 36.600 33.600
+ 06 1 1 1 49 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19291784.836 7 -15032546.944 7 20650072.961 20650070.719 20650072.244
+ 46.100 44.200
+ -12078340.304 5 -9411679.892 5 22510082.138 22510080.948 22510081.310
+ 34.300 31.000
+ -5973013.460 6 -4654295.094 5 22542631.597 22542628.512 22542630.701
+ 38.800 32.300
+ -3979791.291 4 -3101133.577 3 24094664.854 24094662.306 24094663.957
+ 25.900 19.300
+ -9855278.378 6 -7679414.796 5 22638776.631 22638774.278 22638775.504
+ 37.000 30.100
+ -23889337.024 7 -18615056.443 7 19950908.799 19950906.845 19950908.280
+ 46.900 46.400
+ -21434364.303 7 -16702094.782 7 20819297.519 20819294.022 20819296.476
+ 47.300 43.100
+ -11114467.369 6 -8660622.122 5 22466528.385 22466526.964 22466527.478
+ 37.200 34.000
+ 06 1 1 1 50 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19255608.348 7 -15004357.471 7 20656957.172 20656954.961 20656956.433
+ 46.000 44.100
+ -11999304.225 5 -9350093.353 5 22525122.267 22525120.997 22525121.368
+ 34.600 30.800
+ -6046561.735 6 -4711605.425 5 22528635.713 22528632.802 22528634.780
+ 38.600 32.400
+ -3957065.668 4 -3083425.306 3 24098988.821 24098986.482 24098987.779
+ 25.600 18.600
+ -9772510.432 6 -7614920.297 5 22654526.016 22654524.661 22654525.065
+ 36.400 30.400
+ -23884941.488 7 -18611631.350 7 19951745.227 19951743.284 19951744.666
+ 46.800 46.300
+ -21492402.710 7 -16747319.502 7 20808253.203 20808249.762 20808252.167
+ 47.300 43.400
+ -11210126.317 6 -8735161.546 5 22448325.463 22448323.710 22448324.335
+ 36.700 34.400
+ 06 1 1 1 50 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19218929.530 7 -14975776.572 7 20663936.940 20663934.645 20663936.213
+ 46.000 44.200
+ -11919935.582 5 -9288247.667 5 22540225.149 22540224.307 22540224.475
+ 33.100 30.400
+ -6119935.081 6 -4768779.444 5 22514672.232 22514669.837 22514671.517
+ 37.300 31.600
+ -3933765.425 4 -3065269.259 2 24103422.604 24103420.246 24103421.707
+ 24.600 16.100
+ -9689620.676 6 -7550330.876 5 22670300.086 22670298.156 22670298.903
+ 36.600 31.000
+ -23879872.685 7 -18607681.629 7 19952709.844 19952707.844 19952709.224
+ 47.100 46.400
+ -21550060.328 7 -16792247.514 7 20797281.477 20797277.864 20797280.418
+ 47.600 43.500
+ -11305599.476 6 -8809556.204 5 22430156.839 22430155.659 22430155.932
+ 36.100 34.100
+ 06 1 1 1 51 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19181750.184 7 -14946805.651 7 20671011.817 20671009.664 20671011.123
+ 45.800 44.100
+ -11840237.084 5 -9226144.975 4 22555391.315 22555390.311 22555390.503
+ 32.700 29.700
+ -6193132.653 6 -4825816.504 5 22500744.219 22500740.450 22500743.353
+ 39.500 30.400
+ -3909891.034 4 -3046665.851 2 24107966.272 24107963.556 24107965.166
+ 27.600 15.100
+ -9606610.108 6 -7485647.320 5 22686096.709 22686094.201 22686095.477
+ 36.600 30.200
+ -23874131.599 7 -18603208.048 7 19953802.388 19953800.428 19953801.867
+ 47.000 46.400
+ -21607334.915 7 -16836877.055 7 20786382.457 20786378.863 20786381.420
+ 47.300 43.500
+ -11400884.656 6 -8883804.380 5 22412024.917 22412023.609 22412023.921
+ 36.100 34.500
+ 06 1 1 1 51 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19144071.914 7 -14917445.958 7 20678181.732 20678179.498 20678180.985
+ 45.900 44.100
+ -11760211.580 5 -9163787.447 4 22570620.296 22570618.707 22570619.430
+ 32.400 28.800
+ -6266154.027 6 -4882716.294 5 22486848.576 22486845.717 22486847.838
+ 39.000 32.700
+ -3885443.270 4 -3027615.642 3 24112618.378 24112616.968 24112617.428
+ 24.900 21.600
+ -9523479.526 6 -7420870.244 5 22701915.486 22701913.375 22701914.551
+ 36.700 30.200
+ -23867719.088 7 -18598211.279 7 19955022.764 19955020.679 19955022.190
+ 47.200 46.500
+ -21664224.712 7 -16881206.764 7 20775556.749 20775553.062 20775555.603
+ 47.200 43.400
+ -11495979.768 6 -8957904.444 5 22393929.099 22393927.651 22393927.826
+ 36.100 34.800
+ 06 1 1 1 52 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19105896.839 7 -14887699.147 7 20685446.157 20685444.015 20685445.486
+ 46.000 44.000
+ -11679861.834 5 -9101177.278 4 22585910.272 22585908.850 22585909.547
+ 33.900 29.900
+ -6338999.263 6 -4939478.781 5 22472986.008 22472984.339 22472984.961
+ 37.200 34.000
+ -3860422.371 4 -3008118.853 3 24117379.969 24117377.788 24117379.020
+ 28.400 21.100
+ -9440229.643 6 -7356000.198 4 22717757.707 22717755.392 22717756.527
+ 36.800 29.500
+ -23860635.960 7 -18592691.952 7 19956370.689 19956368.569 19956370.072
+ 47.200 46.400
+ -21720727.372 7 -16925234.802 7 20764804.428 20764801.003 20764803.393
+ 47.100 43.600
+ -11590882.535 6 -9031854.650 5 22375869.200 22375867.764 22375868.469
+ 37.300 33.400
+ 06 1 1 1 52 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19067226.595 7 -14857566.486 7 20692804.926 20692802.687 20692804.213
+ 45.800 43.900
+ -11599190.492 5 -9038316.507 5 22601261.321 22601260.309 22601260.744
+ 34.100 30.600
+ -6411667.300 6 -4996103.194 5 22459158.492 22459155.460 22459157.631
+ 39.800 32.400
+ -3834829.230 4 -2988176.174 3 24122250.249 24122248.096 24122249.068
+ 26.200 22.100
+ -9356861.525 6 -7291038.033 5 22733621.874 22733619.996 22733620.689
+ 36.400 30.200
+ -23852883.155 7 -18586650.801 7 19957845.750 19957843.826 19957845.159
+ 47.100 46.400
+ -21776840.754 7 -16968959.512 7 20754126.224 20754122.984 20754125.300
+ 47.200 43.800
+ -11685590.710 6 -9105653.222 5 22357847.187 22357845.685 22357846.090
+ 37.700 34.100
+ 06 1 1 1 53 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19028063.183 7 -14827049.544 7 20700257.564 20700255.221 20700256.778
+ 46.100 44.000
+ -11518200.343 5 -8975207.316 5 22616673.169 22616672.160 22616672.474
+ 33.100 30.100
+ -6484157.966 6 -5052589.451 5 22445363.896 22445360.118 22445363.046
+ 39.500 31.100
+ -3808664.758 4 -2967788.258 3 24127228.667 24127227.349 24127228.011
+ 27.400 20.500
+ -9273376.099 6 -7225984.452 4 22749508.560 22749506.575 22749507.548
+ 36.500 29.500
+ -23844461.898 7 -18580088.781 7 19959448.000 19959446.312 19959447.537
+ 46.900 46.400
+ -21832562.736 7 -17012379.230 7 20743522.884 20743519.430 20743521.820
+ 47.300 43.800
+ -11780101.999 6 -9179298.380 5 22339862.089 22339860.780 22339861.176
+ 37.200 34.900
+ 06 1 1 1 53 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18988408.405 7 -14796149.713 7 20707803.299 20707801.282 20707802.677
+ 46.000 44.000
+ -11436894.153 5 -8911851.870 4 22632145.491 22632144.023 22632144.543
+ 33.800 28.800
+ -6556470.469 6 -5108936.851 5 22431603.039 22431600.322 22431602.000
+ 38.600 32.400
+ -3781929.419 4 -2946955.546 2 24132316.171 24132314.079 24132315.073
+ 25.900 16.100
+ -9189774.049 5 -7160839.994 5 22765417.617 22765415.681 22765416.414
+ 35.800 30.100
+ -23835373.063 7 -18573006.568 7 19961177.805 19961175.811 19961177.289
+ 47.100 46.200
+ -21887891.266 7 -17055492.363 7 20732994.303 20732990.602 20732993.245
+ 47.400 43.600
+ -11874414.120 6 -9252788.321 5 22321915.215 22321913.754 22321914.148
+ 36.800 34.600
+ 06 1 1 1 54 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18948264.142 7 -14764868.466 7 20715442.808 20715440.484 20715442.043
+ 46.100 43.700
+ -11355274.635 5 -8848252.254 4 22647676.854 22647675.699 22647676.308
+ 32.800 29.000
+ -6628604.368 6 -5165145.056 5 22417876.941 22417873.748 22417876.023
+ 40.300 32.700
+ -3754624.098 3 -2925678.659 3 24137512.311 24137510.721 24137511.314
+ 23.800 19.300
+ -9106056.589 5 -7095605.611 5 22781348.017 22781346.618 22781346.996
+ 35.100 30.400
+ -23825617.740 7 -18565405.010 7 19963034.203 19963032.135 19963033.660
+ 47.200 46.100
+ -21942824.165 7 -17098297.222 7 20722540.795 20722537.274 20722539.752
+ 47.300 43.900
+ -11968524.928 6 -9326121.407 5 22304006.533 22304004.957 22304005.398
+ 37.000 34.500
+ 06 1 1 1 54 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18907632.382 7 -14733207.351 7 20723174.754 20723172.328 20723174.007
+ 46.100 43.800
+ -11273344.720 5 -8784410.764 4 22663267.397 22663266.662 22663266.819
+ 32.600 28.800
+ -6700559.495 6 -5221214.005 5 22404183.790 22404180.355 22404182.933
+ 39.000 31.000
+ -3726749.485 4 -2903958.189 2 24142817.171 24142814.608 24142816.079
+ 28.400 15.100
+ -9022224.569 5 -7030281.962 4 22797301.118 22797299.134 22797300.018
+ 35.300 29.700
+ -23815196.867 7 -18557284.848 7 19965017.194 19965015.144 19965016.652
+ 47.200 46.100
+ -21997359.262 7 -17140792.093 7 20712163.198 20712159.647 20712162.084
+ 47.000 43.900
+ -12062432.106 6 -9399295.817 5 22286137.051 22286135.284 22286135.744
+ 37.900 35.100
+ 06 1 1 1 55 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18866514.806 7 -14701167.680 7 20730999.215 20730996.765 20730998.453
+ 46.300 43.700
+ -11191107.135 5 -8720329.555 4 22678917.254 22678915.860 22678916.318
+ 32.300 29.200
+ -6772335.251 6 -5277143.153 5 22390525.380 22390522.477 22390524.386
+ 38.900 33.200
+ -3698306.540 4 -2881794.856 3 24148229.231 24148227.580 24148228.523
+ 27.600 19.900
+ -8938278.797 5 -6964869.676 4 22813275.078 22813273.581 22813274.102
+ 35.200 28.600
+ -23804111.502 7 -18548646.896 7 19967126.671 19967124.701 19967126.162
+ 47.300 46.100
+ -22051494.414 7 -17182975.321 7 20701861.252 20701858.071 20701860.335
+ 46.900 43.900
+ -12156133.411 6 -9472309.815 5 22268306.071 22268304.222 22268304.815
+ 37.600 34.600
+ 06 1 1 1 55 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18824913.586 7 -14668751.141 7 20738915.800 20738913.189 20738914.950
+ 46.100 43.600
+ -11108564.690 5 -8656010.792 4 22694624.843 22694622.942 22694624.038
+ 32.400 27.900
+ -6843930.798 6 -5332931.876 5 22376901.573 22376898.872 22376900.624
+ 40.100 34.700
+ -3669295.979 4 -2859189.237 2 24153749.924 24153747.300 24153749.075
+ 26.200 15.100
+ -8854220.312 5 -6899369.560 5 22829270.713 22829269.569 22829269.656
+ 35.200 30.100
+ -23792362.884 7 -18539492.126 7 19969362.374 19969360.351 19969361.899
+ 47.400 46.100
+ -22105227.709 7 -17224845.416 7 20691636.333 20691632.940 20691635.252
+ 46.800 44.100
+ -12249626.528 6 -9545161.586 5 22250514.507 22250512.942 22250513.422
+ 37.400 34.400
+ 06 1 1 1 56 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18782830.528 7 -14635959.147 7 20746923.678 20746921.493 20746922.923
+ 45.900 43.800
+ -11025720.180 5 -8591456.650 4 22710389.333 22710388.003 22710388.695
+ 33.100 28.600
+ -6915345.843 6 -5388579.947 5 22363311.297 22363308.334 22363310.404
+ 39.600 33.500
+ -3639718.453 4 -2836141.831 2 24159379.220 24159376.268 24159377.949
+ 27.900 16.100
+ -8770049.741 5 -6833782.093 4 22845288.210 22845286.542 22845287.120
+ 35.400 28.800
+ -23779952.067 7 -18529821.357 7 19971724.239 19971722.078 19971723.723
+ 47.500 46.200
+ -22158557.043 7 -17266400.742 7 20681488.171 20681484.664 20681487.084
+ 46.900 44.100
+ -12342909.143 6 -9617849.325 5 22232763.780 22232762.006 22232762.545
+ 37.700 34.800
+ 06 1 1 1 56 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18740267.574 7 -14602793.205 7 20755023.181 20755020.945 20755022.475
+ 45.900 43.600
+ -10942576.448 5 -8526669.348 4 22726211.151 22726209.752 22726210.638
+ 33.400 28.400
+ -6986579.995 6 -5444087.080 5 22349755.760 22349752.746 22349754.903
+ 39.500 32.700
+ -3609574.675 4 -2812653.170 2 24165114.540 24165112.805 24165113.876
+ 27.100 17.000
+ -8685767.907 5 -6768107.937 4 22861327.127 22861324.811 22861325.856
+ 34.700 29.500
+ -23766880.285 7 -18519635.551 7 19974211.736 19974209.487 19974211.145
+ 47.400 46.100
+ -22211480.396 7 -17307639.712 7 20671417.126 20671413.717 20671416.095
+ 46.800 44.300
+ -12435979.004 6 -9690371.291 6 22215053.255 22215051.644 22215051.993
+ 37.900 36.000
+ 06 1 1 1 57 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18697226.694 7 -14569254.857 7 20763213.531 20763211.433 20763212.790
+ 46.000 43.700
+ -10859136.285 5 -8461651.049 4 22742089.945 22742088.035 22742088.878
+ 31.800 29.500
+ -7057632.519 6 -5499452.676 5 22336235.077 22336232.256 22336234.223
+ 40.200 33.100
+ -3578865.614 4 -2788724.031 2 24170958.277 24170955.903 24170957.167
+ 24.900 17.000
+ -8601375.662 5 -6702347.754 4 22877385.630 22877383.863 22877384.572
+ 34.500 28.800
+ -23753148.652 7 -18508935.572 7 19976824.678 19976822.597 19976824.146
+ 47.400 46.100
+ -22263995.217 7 -17348560.348 7 20661424.028 20661420.400 20661422.983
+ 46.800 44.200
+ -12528833.770 6 -9762725.630 5 22197383.888 22197381.755 22197382.609
+ 38.600 35.900
+ 06 1 1 1 57 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18653709.963 7 -14535345.710 7 20771494.523 20771492.314 20771493.798
+ 46.000 43.700
+ -10775402.360 5 -8396403.886 5 22758023.078 22758022.252 22758022.248
+ 32.400 30.100
+ -7128502.998 6 -5554676.422 5 22322748.835 22322745.927 22322747.878
+ 39.700 33.000
+ -3547592.371 4 -2764355.280 3 24176909.242 24176907.694 24176908.222
+ 25.300 19.300
+ -8516874.280 5 -6636502.527 4 22893465.858 22893464.276 22893464.871
+ 35.200 29.900
+ -23738758.433 7 -18497722.414 7 19979562.918 19979561.029 19979562.423
+ 47.300 46.200
+ -22316099.707 7 -17389161.246 7 20651508.843 20651505.170 20651507.801
+ 47.000 44.200
+ -12621471.199 6 -9834910.644 5 22179755.134 22179753.548 22179754.208
+ 39.100 35.700
+ 06 1 1 1 58 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18609719.035 7 -14501067.065 7 20779865.653 20779863.549 20779864.938
+ 45.900 43.800
+ -10691377.649 5 -8330930.100 4 22774012.701 22774011.329 22774012.021
+ 33.000 28.800
+ -7199190.903 6 -5609757.907 5 22309297.207 22309294.300 22309296.401
+ 39.700 32.600
+ -3515755.565 4 -2739547.376 2 24182968.091 24182965.327 24182966.973
+ 27.100 15.100
+ -8432264.375 5 -6570572.738 4 22909566.257 22909564.842 22909565.301
+ 34.700 28.800
+ -23723710.861 7 -18485997.033 7 19982426.384 19982424.548 19982425.912
+ 47.600 46.400
+ -22367791.746 7 -17429440.753 7 20641672.062 20641668.572 20641671.016
+ 46.900 44.300
+ -12713888.983 6 -9906924.485 5 22162168.416 22162167.063 22162167.433
+ 38.800 35.800
+ 06 1 1 1 58 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18565256.260 7 -14466420.742 7 20788326.509 20788324.445 20788325.875
+ 46.000 43.400
+ -10607065.052 5 -8265231.982 4 22790057.130 22790055.213 22790056.278
+ 32.800 26.200
+ -7269695.884 6 -5664696.849 5 22295880.553 22295878.025 22295879.857
+ 40.400 34.000
+ -3483356.270 4 -2714301.200 3 24189132.993 24189131.621 24189132.098
+ 26.200 19.900
+ -8347546.641 5 -6504558.928 4 22925688.244 22925686.300 22925687.111
+ 34.900 29.000
+ -23708007.291 7 -18473760.486 7 19985414.879 19985412.802 19985414.294
+ 47.500 46.200
+ -22419069.301 7 -17469397.292 7 20631914.503 20631910.708 20631913.396
+ 46.900 44.300
+ -12806084.880 6 -9978765.439 5 22144624.206 22144622.579 22144623.180
+ 38.900 35.600
+ 06 1 1 1 59 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18520323.522 7 -14431408.213 7 20796877.044 20796874.891 20796876.362
+ 46.000 43.600
+ -10522467.359 5 -8199311.715 4 22806155.483 22806153.612 22806154.639
+ 32.000 26.800
+ -7340017.372 6 -5719492.811 5 22282499.054 22282496.189 22282498.182
+ 40.400 33.900
+ -3450395.416 4 -2688617.436 3 24195405.259 24195403.762 24195404.156
+ 25.900 18.600
+ -8262722.178 5 -6438461.937 4 22941829.753 22941827.614 22941828.737
+ 34.700 28.400
+ -23691648.949 7 -18461013.720 7 19988527.709 19988525.657 19988527.196
+ 47.400 46.100
+ -22469930.291 7 -17509029.232 7 20622235.823 20622232.164 20622234.811
+ 46.900 44.300
+ -12898056.428 6 -10050431.571 5 22127122.467 22127120.933 22127121.588
+ 38.600 35.700
+ 06 1 1 1 59 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18474922.697 7 -14396030.942 7 20805516.659 20805514.360 20805515.928
+ 46.000 43.600
+ -10437587.432 5 -8133171.529 4 22822307.457 22822306.142 22822306.883
+ 31.100 27.600
+ -7410154.850 6 -5774145.380 5 22269152.336 22269149.439 22269151.363
+ 40.200 33.900
+ -3416874.010 4 -2662496.851 3 24201784.268 24201782.551 24201783.328
+ 24.200 20.500
+ -8177791.465 5 -6372282.160 4 22957991.278 22957989.662 22957990.156
+ 33.600 28.800
+ -23674637.168 7 -18447757.787 7 19991764.908 19991762.788 19991764.413
+ 47.500 46.100
+ -22520372.705 7 -17548335.002 7 20612636.958 20612633.430 20612635.925
+ 47.000 44.600
+ -12989801.427 6 -10121921.158 5 22109663.625 22109662.345 22109662.711
+ 37.800 35.800
+ 06 1 1 2 0 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18429056.000 7 -14360290.654 7 20814244.469 20814242.550 20814243.819
+ 45.900 43.600
+ -10352427.838 5 -8066813.432 4 22838512.580 22838511.658 22838511.907
+ 31.500 28.600
+ -7480107.711 6 -5828654.102 5 22255840.692 22255837.795 22255839.690
+ 40.200 33.900
+ -3382793.379 4 -2635940.514 3 24208268.907 24208267.908 24208268.112
+ 24.900 20.500
+ -8092755.612 5 -6306020.468 4 22974172.902 22974171.331 22974171.821
+ 34.300 28.400
+ -23656973.156 7 -18433993.622 7 19995126.274 19995124.166 19995125.722
+ 47.700 46.000
+ -22570394.121 7 -17587312.728 7 20603118.263 20603114.669 20603117.174
+ 46.900 44.700
+ -13081317.539 6 -10193232.394 5 22092249.530 22092247.490 22092248.486
+ 39.300 35.300
+ 06 1 1 2 0 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18382725.200 7 -14324188.728 7 20823061.190 20823058.978 20823060.355
+ 45.700 43.400
+ -10266991.732 5 -8000239.872 4 22854771.152 22854769.202 22854770.218
+ 31.600 27.600
+ -7549875.287 6 -5883018.440 5 22242564.067 22242561.264 22242563.370
+ 40.600 33.600
+ -3348154.005 4 -2608948.815 3 24214861.546 24214859.312 24214860.636
+ 26.200 20.500
+ -8007615.508 5 -6239677.531 4 22990374.668 22990372.838 22990373.668
+ 34.500 28.100
+ -23638658.357 7 -18419722.350 7 19998611.544 19998609.375 19998610.973
+ 47.700 46.100
+ -22619992.820 7 -17625961.062 7 20593679.701 20593676.408 20593678.861
+ 47.000 44.900
+ -13172602.270 6 -10264363.349 5 22074877.727 22074876.300 22074876.931
+ 38.700 35.700
+ 06 1 1 2 1 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18335932.511 7 -14287726.886 7 20831965.549 20831963.388 20831964.790
+ 45.900 43.500
+ -10181281.848 5 -7933452.993 4 22871080.784 22871079.171 22871079.971
+ 30.200 27.600
+ -7619457.408 6 -5937238.269 5 22229322.955 22229320.099 22229322.217
+ 40.300 33.400
+ -3312957.110 4 -2581522.691 3 24221559.687 24221557.428 24221558.595
+ 27.600 19.300
+ -7922371.819 5 -6173253.876 4 23006596.684 23006593.990 23006595.382
+ 34.100 27.400
+ -23619694.317 7 -18404945.176 7 20002220.103 20002218.156 20002219.577
+ 47.700 46.100
+ -22669166.645 7 -17664278.326 7 20584322.384 20584318.898 20584321.470
+ 46.900 44.900
+ -13263653.467 6 -10335312.322 6 22057552.157 22057550.185 22057551.045
+ 39.600 36.100
+ 06 1 1 2 1 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18288679.961 7 -14250906.712 7 20840957.403 20840955.194 20840956.714
+ 45.900 43.600
+ -10095301.167 5 -7866455.074 4 22887442.369 22887441.066 22887441.865
+ 30.400 26.200
+ -7688853.220 6 -5991312.925 5 22216117.514 22216114.621 22216116.728
+ 40.700 34.100
+ -3277203.786 4 -2553662.971 3 24228362.660 24228361.020 24228361.734
+ 24.600 19.300
+ -7837025.502 5 -6106750.261 4 23022837.367 23022835.308 23022836.206
+ 34.300 28.100
+ -23600082.208 7 -18389663.012 7 20005952.073 20005950.135 20005951.566
+ 47.600 45.900
+ -22717913.599 7 -17702262.966 7 20575046.279 20575042.604 20575045.157
+ 46.600 44.800
+ -13354468.678 6 -10406077.413 6 22040270.330 22040268.741 22040269.326
+ 39.500 36.500
+ 06 1 1 2 2 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18240969.598 7 -14213729.800 7 20850036.448 20850034.123 20850035.725
+ 46.000 43.300
+ -10009052.346 5 -7799248.240 4 22903855.354 22903853.643 22903854.337
+ 30.800 25.900
+ -7758062.302 6 -6045242.066 5 22202947.818 22202945.058 22202946.879
+ 40.800 34.800
+ -3240895.311 4 -2525370.664 2 24235272.195 24235269.800 24235270.974
+ 24.600 17.800
+ -7751577.046 5 -6040167.054 4 23039096.576 23039095.335 23039095.789
+ 33.000 27.600
+ -23579823.564 7 -18373877.054 7 20009807.199 20009805.266 20009806.630
+ 47.600 46.000
+ -22766231.472 7 -17739913.257 7 20565851.458 20565848.057 20565850.401
+ 46.400 44.800
+ -13445045.443 6 -10476656.690 6 22023033.921 22023032.684 22023032.799
+ 38.900 36.900
+ 06 1 1 2 2 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18192803.558 7 -14176197.815 7 20859201.847 20859199.846 20859201.223
+ 46.000 43.300
+ -9922538.426 5 -7731834.812 4 22920318.582 22920316.599 22920317.678
+ 33.000 27.100
+ -7827084.465 6 -6099025.556 5 22189813.196 22189810.291 22189812.179
+ 40.500 34.500
+ -3204032.543 4 -2496646.459 2 24242287.122 24242284.849 24242286.073
+ 26.800 15.100
+ -7666027.429 5 -5973505.008 4 23055376.835 23055374.650 23055375.612
+ 32.800 27.100
+ -23558920.021 7 -18357588.575 7 20013785.046 20013783.084 20013784.559
+ 47.700 46.000
+ -22814118.216 7 -17777227.600 7 20556738.784 20556735.461 20556737.718
+ 46.100 44.900
+ -13535381.563 6 -10547048.453 6 22005843.680 22005842.110 22005842.567
+ 39.600 36.700
+ 06 1 1 2 3 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18144183.789 7 -14138312.276 7 20868454.009 20868451.893 20868453.279
+ 45.800 43.400
+ -9835762.135 5 -7664216.937 4 22936831.408 22936829.582 22936830.556
+ 30.800 26.800
+ -7895918.984 6 -6152662.838 5 22176714.556 22176711.246 22176713.573
+ 41.100 33.900
+ -3166616.394 4 -2467491.020 2 24249406.406 24249404.829 24249405.383
+ 25.300 12.600
+ -7580377.484 5 -5906764.812 4 23071675.912 23071674.046 23071674.711
+ 33.900 28.400
+ -23537372.897 7 -18340798.607 7 20017885.528 20017883.364 20017884.978
+ 47.900 45.900
+ -22861571.975 7 -17814204.551 7 20547708.615 20547705.332 20547707.593
+ 46.300 45.100
+ -13625474.616 6 -10617250.817 6 21988699.537 21988697.928 21988698.420
+ 39.400 37.200
+ 06 1 1 2 3 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18095112.435 7 -14100074.854 7 20877791.881 20877789.885 20877791.203
+ 45.700 43.400
+ -9748726.364 5 -7596396.886 4 22953393.395 22953392.136 22953392.521
+ 30.200 27.100
+ -7964565.459 6 -6206153.596 5 22163651.733 22163648.539 22163650.718
+ 41.500 34.400
+ -3128648.142 4 -2437905.411 2 24256632.163 24256629.665 24256631.239
+ 27.600 15.100
+ -7494628.060 5 -5839947.074 4 23087992.927 23087991.352 23087992.067
+ 33.200 27.400
+ -23515183.690 7 -18323508.313 7 20022107.966 20022105.824 20022107.418
+ 47.900 45.900
+ -22908590.638 7 -17850842.470 7 20538761.579 20538757.986 20538760.505
+ 46.500 45.000
+ -13715322.287 6 -10687261.973 6 21971601.808 21971600.394 21971600.883
+ 39.800 36.600
+ 06 1 1 2 4 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18045591.551 7 -14061487.144 7 20887215.477 20887213.379 20887214.755
+ 45.700 43.100
+ -9661434.140 5 -7528377.007 4 22970004.252 22970003.144 22970003.718
+ 30.100 25.900
+ -8033023.130 6 -6259497.222 5 22150624.326 22150621.425 22150623.499
+ 41.300 34.000
+ -3090129.531 4 -2407890.911 2 24263961.942 24263959.477 24263960.921
+ 26.800 15.100
+ -7408779.814 5 -5773052.356 4 23104329.220 23104327.500 23104328.215
+ 33.000 26.800
+ -23492354.002 7 -18305718.945 7 20026452.266 20026450.198 20026451.666
+ 47.800 45.900
+ -22955172.176 7 -17887139.775 7 20529897.467 20529893.820 20529896.390
+ 46.400 45.200
+ -13804922.213 6 -10757080.095 6 21954551.950 21954549.851 21954550.722
+ 39.800 36.500
+ 06 1 1 2 4 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17995623.218 7 -14022550.776 7 20896724.110 20896722.018 20896723.427
+ 46.000 43.200
+ -9573888.282 4 -7460159.479 4 22986663.568 22986662.527 22986662.712
+ 29.000 25.300
+ -8101291.421 6 -6312693.289 5 22137633.562 22137630.272 22137632.641
+ 41.300 34.000
+ -3051061.499 3 -2377448.285 3 24271395.839 24271394.583 24271394.706
+ 23.000 20.500
+ -7322833.603 5 -5706081.285 4 23120684.343 23120682.305 23120683.312
+ 33.200 26.500
+ -23468885.498 7 -18287431.798 7 20030918.117 20030916.050 20030917.678
+ 47.900 45.900
+ -23001314.842 7 -17923095.095 7 20521116.853 20521113.187 20521115.748
+ 46.400 45.200
+ -13894271.925 6 -10826703.222 6 21937549.156 21937547.508 21937547.914
+ 39.700 37.200
+ 06 1 1 2 5 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17945209.561 7 -13983267.395 7 20906317.676 20906315.397 20906316.899
+ 45.800 43.100
+ -9486091.734 4 -7391746.593 4 23003370.889 23003369.601 23003370.157
+ 29.900 24.900
+ -8169369.890 6 -6365741.435 5 22124678.554 22124675.572 22124677.639
+ 41.200 35.100
+ -3011444.937 4 -2346578.262 3 24278935.533 24278933.223 24278934.729
+ 28.600 19.900
+ -7236790.199 5 -5639034.472 4 23137057.998 23137056.241 23137056.844
+ 33.200 27.900
+ -23444779.593 7 -18268647.976 7 20035505.420 20035503.269 20035504.896
+ 47.900 45.900
+ -23047016.121 7 -17958706.480 7 20512420.195 20512416.490 20512419.137
+ 46.400 45.400
+ -13983368.964 6 -10896129.473 6 21920594.747 21920592.853 21920593.442
+ 40.200 37.200
+ 06 1 1 2 5 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17894352.752 7 -13943638.706 7 20915995.447 20915993.131 20915994.709
+ 45.900 43.000
+ -9398047.155 4 -7323140.451 4 23020125.229 23020124.233 23020124.469
+ 28.400 25.600
+ -8237258.243 6 -6418641.447 5 22111759.824 22111756.778 22111758.959
+ 41.300 35.300
+ -2971281.305 3 -2315281.932 3 24286577.940 24286575.910 24286576.784
+ 23.800 18.600
+ -7150650.441 5 -5571912.598 4 23153449.789 23153448.350 23153448.580
+ 32.100 27.900
+ -23420037.974 7 -18249368.790 7 20040213.467 20040211.506 20040212.916
+ 47.800 45.900
+ -23092274.240 7 -17993972.550 7 20503807.757 20503804.125 20503806.698
+ 46.400 45.300
+ -14072211.027 6 -10965357.049 6 21903688.535 21903686.549 21903687.392
+ 40.500 36.600
+ 06 1 1 2 6 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17843054.837 7 -13903666.299 7 20925757.059 20925754.754 20925756.354
+ 46.100 43.000
+ -9309757.818 4 -7254343.612 4 23036925.763 23036925.141 23036925.221
+ 28.100 26.200
+ -8304955.936 6 -6471392.884 5 22098877.383 22098874.527 22098876.447
+ 41.600 35.400
+ -2930571.617 4 -2283560.107 3 24294324.599 24294322.629 24294323.569
+ 25.300 19.300
+ -7064415.114 5 -5504716.255 4 23169859.577 23169858.578 23169858.791
+ 32.400 28.100
+ -23394662.347 7 -18229595.573 7 20045042.085 20045040.352 20045041.658
+ 47.700 45.900
+ -23137087.340 7 -18028891.851 7 20495279.942 20495276.502 20495278.964
+ 46.300 45.400
+ -14160795.727 6 -11034384.077 6 21886831.523 21886829.398 21886830.407
+ 40.900 36.500
+ 06 1 1 2 6 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17791317.969 7 -13863351.847 7 20935602.186 20935600.023 20935601.447
+ 45.900 43.000
+ -9221226.222 4 -7185357.987 4 23053772.842 23053772.260 23053772.312
+ 29.700 26.800
+ -8372462.165 6 -6523995.128 6 22086031.148 22086028.464 22086030.285
+ 41.800 36.000
+ -2889317.774 4 -2251414.263 3 24302175.151 24302173.122 24302174.312
+ 25.900 18.600
+ -6978085.023 5 -5437446.072 4 23186288.642 23186286.108 23186287.510
+ 33.100 27.600
+ -155462.361 2 -121139.795 9 24642534.431 24642532.537 24642532.050
+ 13.900 -3.000
+ -23368654.219 7 -18209329.500 7 20049991.541 20049989.568 20049990.931
+ 47.700 46.000
+ -23181453.329 7 -18063462.750 7 20486837.461 20486833.909 20486836.420
+ 46.100 45.300
+ -14249120.644 6 -11103208.687 6 21870023.695 21870021.793 21870022.602
+ 40.500 36.800
+ 06 1 1 2 7 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17739144.262 7 -13822697.000 7 20945530.407 20945528.251 20945529.718
+ 45.900 42.600
+ -9132455.395 5 -7116185.943 4 23070665.859 23070664.330 23070665.048
+ 30.200 25.300
+ -8439776.656 6 -6576447.967 5 22073221.596 22073218.812 22073220.749
+ 41.900 35.500
+ -2847520.781 4 -2218845.194 2 24310127.978 24310126.955 24310126.965
+ 24.200 15.100
+ -6891660.778 5 -5370102.512 4 23202734.415 23202732.508 23202733.237
+ 33.000 28.100
+ -272086.093 3 -212015.477 9 24620340.343 24620340.010 24620339.826
+ 20.500 -3.000
+ -23342015.284 7 -18188571.885 7 20055060.548 20055058.760 20055060.065
+ 47.600 45.900
+ -23225370.273 7 -18097683.747 7 20478480.314 20478476.773 20478479.215
+ 45.900 45.300
+ -14337183.525 6 -11171829.101 6 21853265.892 21853264.206 21853264.729
+ 40.600 37.700
+ 06 1 1 2 7 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17686535.967 7 -13781703.515 7 20955541.542 20955539.307 20955540.804
+ 45.900 42.800
+ -9043448.359 5 -7046829.806 4 23087603.421 23087602.063 23087602.861
+ 30.200 25.300
+ -8506898.824 6 -6628750.946 5 22060448.890 22060445.714 22060447.834
+ 41.500 35.100
+ -2805181.854 4 -2185853.798 3 24318185.678 24318184.424 24318184.774
+ 25.300 18.600
+ -6805143.201 5 -5302686.237 4 23219197.827 23219196.023 23219196.740
+ 32.800 27.400
+ -388730.335 3 24598144.398 24598143.728
+ 21.600
+ -23314747.321 7 -18167324.118 7 20060249.510 20060247.627 20060248.968
+ 47.500 45.900
+ -23268835.979 7 -18131553.129 7 20470209.142 20470205.504 20470208.073
+ 46.000 45.500
+ -14424981.700 6 -11240243.250 6 21836558.405 21836556.758 21836557.260
+ 40.600 38.100
+ 06 1 1 2 8 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17633495.140 7 -13740372.989 7 20965634.964 20965632.549 20965634.183
+ 45.700 42.400
+ -8954207.975 4 -6977291.874 4 23104585.434 23104584.068 23104584.630
+ 29.700 26.200
+ -8573828.040 7 -6680903.584 5 22047712.610 22047709.576 22047711.646
+ 42.000 35.500
+ -2762302.124 4 -2152441.056 3 24326345.428 24326343.502 24326344.405
+ 25.300 20.500
+ -6718533.150 5 -5235197.895 4 23235678.971 23235677.210 23235677.900
+ 32.600 26.800
+ -505391.589 3 -393811.967 1 24575944.261 24575944.030 24575943.237
+ 23.000 11.000
+ -23286851.955 7 -18145587.465 7 20065557.857 20065555.853 20065557.299
+ 47.600 45.600
+ -23311848.793 7 -18165069.615 7 20462024.117 20462020.469 20462023.033
+ 45.800 45.500
+ -14512512.848 6 -11308449.328 6 21819901.598 21819900.156 21819900.537
+ 40.500 38.300
+ 06 1 1 2 8 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17580023.788 7 -13698706.992 7 20975810.236 20975807.863 20975809.534
+ 45.900 42.500
+ -8864737.059 4 -6907574.313 4 23121610.831 23121610.108 23121610.081
+ 27.400 24.900
+ -8640563.631 6 -6732905.338 5 22035012.785 22035010.093 22035011.952
+ 41.500 35.300
+ -2718883.149 4 -2118608.130 2 24334608.379 24334605.898 24334607.067
+ 25.600 17.000
+ -6631831.427 5 -5167638.103 4 23252177.854 23252175.876 23252176.679
+ 32.700 25.900
+ -622066.932 3 -484727.781 3 24553742.636 24553741.677 24553741.551
+ 23.800 18.600
+ -23258330.948 7 -18123363.298 7 20070985.227 20070983.225 20070984.637
+ 47.500 45.600
+ -23354406.702 7 -18198231.622 7 20453925.431 20453921.843 20453924.419
+ 45.700 45.500
+ -14599774.558 6 -11376445.456 6 21803296.450 21803294.506 21803295.416
+ 41.100 37.700
+ 06 1 1 2 9 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17526124.407 7 -13656707.464 7 20986066.918 20986064.489 20986066.161
+ 45.800 42.500
+ -8775038.585 4 -6837679.427 4 23138680.197 23138679.196 23138679.308
+ 27.900 27.100
+ -8707105.351 6 -6784756.018 6 22022350.423 22022347.838 22022349.518
+ 41.400 36.100
+ -2674926.870 4 -2084356.529 2 24342972.141 24342970.190 24342971.131
+ 24.900 16.100
+ -6545038.543 5 -5100007.296 4 23268694.234 23268692.060 23268692.889
+ 32.000 26.500
+ -738753.540 3 -575652.365 2 24531538.307 24531536.371 24531536.833
+ 18.600 17.000
+ -23229186.149 7 -18100653.059 7 20076531.061 20076529.234 20076530.566
+ 47.400 45.600
+ -23396507.592 7 -18231037.514 7 20445913.773 20445910.384 20445912.846
+ 45.800 45.500
+ -14686764.524 6 -11444229.841 6 21786742.877 21786740.954 21786741.705
+ 41.000 38.200
+ 06 1 1 2 9 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17471798.916 7 -13614375.902 7 20996404.679 20996402.400 20996403.924
+ 45.700 42.600
+ -8685115.493 4 -6767609.520 4 23155791.801 23155790.723 23155790.999
+ 29.700 26.500
+ -8773452.514 6 -6836455.094 6 22009725.194 22009722.526 22009724.216
+ 41.500 36.400
+ -2630434.292 4 -2049686.971 2 24351439.241 24351436.809 24351438.165
+ 25.900 17.000
+ -6458155.240 5 -5032306.036 4 23285227.319 23285225.767 23285226.266
+ 32.600 27.600
+ -855448.018 2 -666583.062 3 24509331.333 24509330.815 24509329.501
+ 17.800 19.300
+ -23199419.203 7 -18077458.032 7 20082195.654 20082193.724 20082195.155
+ 47.200 45.600
+ -23438149.302 7 -18263485.611 7 20437989.894 20437986.220 20437988.897
+ 46.100 45.700
+ -14773480.105 6 -11511800.420 6 21770241.253 21770239.428 21770240.146
+ 41.100 37.700
+ 06 1 1 2 10 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17417049.458 7 -13571713.979 7 21006822.955 21006820.848 21006822.293
+ 45.600 42.400
+ -8594970.604 4 -6697366.776 4 23172945.929 23172945.259 23172945.373
+ 29.000 26.200
+ -8839604.664 7 -6888002.219 6 21997136.710 21997134.013 21997135.962
+ 42.200 36.000
+ -2585406.951 4 -2014600.772 2 24360007.322 24360005.742 24360006.320
+ 24.900 17.000
+ -6371182.280 5 -4964534.901 4 23301777.458 23301776.223 23301776.372
+ 32.300 25.600
+ -972147.559 3 -757517.719 3 24487124.623 24487122.911 24487122.902
+ 18.600 18.600
+ -23169032.113 7 -18053779.777 7 20087978.120 20087976.233 20087977.547
+ 47.200 45.600
+ -23479330.414 7 -18295574.792 7 20430153.413 20430149.792 20430152.360
+ 45.800 45.800
+ -14859919.022 6 -11579155.417 6 21753792.392 21753790.530 21753791.333
+ 41.200 37.800
+ 06 1 1 2 10 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17361878.507 7 -13528723.618 7 21017321.781 21017319.652 21017320.973
+ 45.800 42.500
+ -8504606.849 4 -6626953.484 4 23190141.496 23190140.854 23190140.848
+ 27.600 26.500
+ -8905561.359 7 -6939397.035 5 21984585.787 21984582.921 21984584.838
+ 42.500 35.900
+ -2539846.159 4 -1979098.871 2 24368677.208 24368675.299 24368676.194
+ 25.300 17.000
+ -6284120.435 5 -4896694.510 4 23318344.801 23318343.122 23318343.789
+ 32.000 24.900
+ -1088849.078 3 -848453.951 2 24464917.626 24464915.997 24464915.429
+ 20.500 17.800
+ -23138026.595 7 -18029619.628 7 20093878.108 20093876.435 20093877.628
+ 47.200 45.500
+ -23520048.920 7 -18327303.500 7 20422405.083 20422401.342 20422403.962
+ 46.000 45.900
+ -14946078.679 6 -11646292.811 6 21737396.475 21737394.954 21737395.547
+ 41.300 38.200
+ 06 1 1 2 11 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17306287.980 7 -13485406.315 7 21027900.310 21027898.003 21027899.566
+ 45.600 42.300
+ -8414027.167 4 -6556371.976 4 23207378.290 23207377.168 23207377.355
+ 26.200 24.200
+ -8971322.010 7 -6990639.101 5 21972071.748 21972068.944 21972070.938
+ 42.300 35.800
+ -2493753.275 4 -1943182.362 2 24377448.842 24377447.277 24377448.017
+ 26.200 17.000
+ -6196970.674 5 -4828785.622 4 23334929.131 23334927.495 23334927.925
+ 31.600 25.300
+ -1205549.287 3 -939389.110 3 24442709.033 24442708.545 24442707.127
+ 21.600 19.300
+ -23106404.448 7 -18004978.989 7 20099895.703 20099893.916 20099895.121
+ 47.300 45.200
+ -23560302.751 7 -18358670.126 7 20414744.857 20414741.336 20414743.792
+ 45.900 46.000
+ -15031956.773 6 -11713210.805 6 21721054.849 21721053.009 21721053.809
+ 41.800 37.900
+ 06 1 1 2 11 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17250280.101 7 -13441763.805 7 21038558.158 21038555.980 21038557.465
+ 45.500 42.100
+ -8323234.506 4 -6485624.469 3 23224655.680 23224654.284 23224654.993
+ 28.800 21.600
+ -9036885.996 7 -7041727.912 6 21959595.423 21959592.589 21959594.548
+ 42.400 36.300
+ -2447129.651 4 -1906852.271 2 24386321.272 24386318.869 24386320.095
+ 25.300 12.600
+ -6109733.564 5 -4760808.642 4 23351530.044 23351528.480 23351528.873
+ 32.000 24.900
+ -1322245.454 4 -1030321.182 3 24420502.731 24420501.795 24420501.267
+ 24.200 19.900
+ -23074167.536 7 -17979859.313 7 20106030.135 20106028.321 20106029.642
+ 47.400 45.300
+ -23600090.086 7 -18389673.246 7 20407173.491 20407170.082 20407172.463
+ 45.700 45.900
+ -15117550.737 6 -11779907.408 6 21704766.620 21704765.021 21704765.556
+ 41.200 38.100
+ 06 1 1 2 12 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17193857.212 7 -13397797.912 7 21049295.043 21049292.920 21049294.295
+ 45.500 42.100
+ -8232231.724 4 -6414713.240 4 23241973.464 23241971.990 23241972.454
+ 27.900 24.900
+ -9102252.856 7 -7092663.123 6 21947156.670 21947153.802 21947155.726
+ 42.600 36.600
+ -2399977.166 4 -1870110.083 3 24395293.227 24395292.105 24395292.535
+ 26.200 19.300
+ -6022409.696 5 -4692764.081 4 23368146.790 23368145.573 23368145.676
+ 31.000 25.900
+ -1438934.478 3 -1121247.630 3 24398297.798 24398296.234 24398296.015
+ 19.300 21.100
+ -23041317.910 7 -17954262.195 7 20112281.442 20112279.332 20112280.811
+ 47.400 45.100
+ -23639408.654 7 -18420311.086 7 20399691.356 20399688.090 20399690.430
+ 45.700 46.200
+ -15202858.197 6 -11846380.743 6 21688533.421 21688531.771 21688532.301
+ 41.500 38.800
+ 06 1 1 2 12 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17137021.538 7 -13353510.363 6 21060110.515 21060108.353 21060109.722
+ 45.400 41.900
+ -8141021.897 4 -6343640.674 3 23259329.810 23259328.502 23259329.099
+ 27.900 23.400
+ -9167421.934 7 -7143444.213 6 21934755.494 21934752.630 21934754.566
+ 43.000 36.600
+ -2352297.200 4 -1832956.886 3 24404366.781 24404364.962 24404365.596
+ 24.200 18.600
+ -5934999.800 5 -4624652.495 4 23384780.615 23384778.726 23384779.560
+ 30.600 24.900
+ -1555613.039 3 -1212165.945 3 24376095.093 24376092.924 24376093.336
+ 20.500 19.300
+ -23007857.333 7 -17928189.014 7 20118648.768 20118646.687 20118648.190
+ 47.500 45.100
+ -23678256.979 7 -18450582.506 7 20392298.744 20392295.498 20392297.809
+ 45.600 46.100
+ -15287876.817 6 -11912629.014 6 21672354.597 21672353.167 21672353.700
+ 41.500 39.100
+ 06 1 1 2 13 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17079775.319 7 -13308902.907 6 21071004.027 21071001.877 21071003.316
+ 45.500 41.700
+ -8049607.834 4 -6272408.954 3 23276725.319 23276724.034 23276724.399
+ 28.100 22.100
+ -9232392.779 7 -7194070.837 6 21922391.916 21922388.882 21922391.040
+ 43.000 36.500
+ -2304091.296 3 -1795393.855 3 24413539.392 24413538.511 24413538.267
+ 21.600 19.300
+ -5847504.532 5 -4556474.363 4 23401430.396 23401428.704 23401429.470
+ 31.000 25.300
+ -1672278.053 3 -1303073.660 3 24353892.904 24353892.870 24353891.606
+ 18.600 21.100
+ -22973787.701 7 -17901641.241 7 20125132.011 20125129.955 20125131.515
+ 47.900 45.100
+ -23716633.459 7 -18480486.261 7 20384995.908 20384992.615 20384994.962
+ 45.700 46.100
+ -15372603.913 7 -11978650.119 6 21656231.942 21656230.000 21656230.828
+ 42.000 38.700
+ 06 1 1 2 13 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17022120.375 7 -13263976.966 6 21081975.559 21081973.207 21081974.757
+ 45.400 41.600
+ -7957992.440 4 -6201020.363 3 23294159.528 23294157.949 23294158.659
+ 28.100 22.100
+ -9297164.754 7 -7244542.509 6 21910066.611 21910063.123 21910065.586
+ 43.500 36.400
+ -2255361.126 3 -1757422.355 2 24422812.917 24422811.654 24422812.229
+ 23.800 17.800
+ -5759924.617 5 -4488230.289 4 23418096.456 23418094.656 23418095.221
+ 30.800 25.900
+ -1788926.491 3 -1393968.520 2 24331697.313 24331695.279 24331695.175
+ 22.100 16.100
+ -22939111.222 7 -17874620.602 7 20131730.813 20131728.727 20131730.264
+ 47.800 45.200
+ -23754535.576 7 -18510020.376 7 20377783.644 20377780.033 20377782.576
+ 45.600 46.100
+ -15457037.262 7 -12044442.334 6 21640164.819 21640162.964 21640163.658
+ 42.100 38.900
+ 06 1 1 2 14 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16964059.387 7 -13218734.625 6 21093024.205 21093021.823 21093023.439
+ 45.300 41.500
+ -7866178.680 4 -6129477.209 4 23311630.488 23311629.576 23311629.810
+ 27.900 24.200
+ -9361737.014 7 -7294858.557 6 21897778.274 21897775.471 21897777.458
+ 43.100 36.500
+ -2206108.433 4 -1719043.647 3 24432186.257 24432184.222 24432185.100
+ 24.900 18.600
+ -5672260.815 4 -4419920.843 4 23434777.760 23434776.505 23434776.794
+ 29.900 25.600
+ -1905555.109 3 -1484847.921 2 24309503.568 24309500.887 24309501.330
+ 18.600 15.100
+ -22903829.575 7 -17847128.403 7 20138444.662 20138442.621 20138444.155
+ 47.900 45.300
+ -23791961.492 7 -18539183.429 7 20370661.709 20370658.118 20370660.658
+ 45.600 46.300
+ -15541174.368 7 -12110003.714 6 21624154.129 21624151.962 21624153.046
+ 42.300 38.400
+ 06 1 1 2 14 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16905594.694 7 -13173177.710 6 21104149.504 21104147.207 21104148.878
+ 45.300 41.200
+ -7774169.500 4 -6057781.765 3 23329139.328 23329138.257 23329138.920
+ 28.800 23.800
+ -9426109.551 7 -7345018.964 6 21885528.588 21885525.752 21885527.759
+ 42.700 36.500
+ -2156334.326 4 -1680258.639 2 24441657.242 24441655.593 24441656.615
+ 26.500 13.900
+ -5584513.847 5 -4351546.616 4 23451476.574 23451474.459 23451475.482
+ 30.800 25.600
+ -2022160.665 3 -1575709.375 2 24287313.122 24287312.128 24287311.679
+ 23.000 17.000
+ -22867944.942 8 -17819166.345 7 20145273.435 20145271.242 20145272.851
+ 48.000 45.300
+ -23828909.825 7 -18567974.341 7 20363630.569 20363627.059 20363629.554
+ 45.400 46.400
+ -15625012.551 6 -12175332.170 6 21608200.138 21608198.077 21608199.038
+ 41.800 38.600
+ 06 1 1 2 15 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16846727.892 7 -13127307.462 6 21115351.751 21115349.166 21115350.966
+ 45.300 41.200
+ -7681967.728 4 -5985936.257 4 23346685.392 23346683.886 23346684.587
+ 28.400 24.200
+ -9490281.579 7 -7395023.142 6 21873316.971 21873314.157 21873316.049
+ 42.400 36.900
+ -2106040.829 4 -1641068.938 2 24451227.571 24451226.322 24451226.608
+ 24.600 17.000
+ -5496684.451 5 -4283108.138 4 23468189.704 23468187.436 23468188.330
+ 30.400 24.600
+ -2138740.178 4 -1666550.515 2 24265128.785 24265127.619 24265127.711
+ 26.800 15.100
+ -22831459.204 7 -17790735.892 7 20152216.164 20152214.204 20152215.617
+ 47.600 45.200
+ -23865378.775 7 -18596391.701 7 20356690.823 20356687.260 20356689.759
+ 45.400 46.400
+ -15708549.521 7 -12240425.904 6 21592303.686 21592301.745 21592302.547
+ 42.200 39.100
+ 06 1 1 2 15 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16787461.705 7 -13081126.007 6 21126629.436 21126627.110 21126628.810
+ 45.300 41.200
+ -7589576.308 4 -5913942.975 4 23364266.309 23364265.223 23364265.714
+ 28.600 24.200
+ -9554252.498 7 -7444870.603 6 21861143.998 21861140.990 21861142.969
+ 42.700 37.000
+ -2055229.468 4 -1601475.718 2 24460897.087 24460895.697 24460896.145
+ 25.300 17.000
+ -5408773.104 4 -4214605.791 4 23484918.218 23484916.928 23484917.022
+ 29.900 24.600
+ -2255290.362 3 -1757368.821 2 24242949.546 24242949.033 24242948.335
+ 23.000 17.000
+ -22794374.529 7 -17761838.737 7 20159273.054 20159271.139 20159272.512
+ 47.500 45.100
+ -23901365.742 7 -18624433.488 7 20349842.645 20349839.122 20349841.574
+ 45.200 46.400
+ -15791782.788 7 -12305282.985 6 21576464.971 21576462.996 21576463.831
+ 42.500 39.000
+ 06 1 1 2 16 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16727798.325 7 -13034635.051 6 21137983.170 21137980.756 21137982.395
+ 45.500 41.500
+ -7496998.243 4 -5841804.261 3 23381883.207 23381882.407 23381882.626
+ 26.200 23.400
+ -9618021.863 7 -7494561.019 6 21849008.811 21849005.969 21849008.070
+ 43.100 36.900
+ -2003901.923 3 -1561480.235 2 24470663.859 24470662.902 24470663.106
+ 20.500 15.100
+ -5320780.496 4 -4146040.148 4 23501662.571 23501661.230 23501661.342
+ 29.200 24.600
+ -2371808.437 3 -1848162.106 3 24220778.058 24220776.239 24220776.371
+ 23.000 19.300
+ -22756692.783 7 -17732476.331 7 20166443.668 20166441.738 20166443.149
+ 47.500 45.000
+ -23936869.682 7 -18652098.889 7 20343086.465 20343082.964 20343085.482
+ 45.500 46.600
+ -15874709.701 7 -12369901.350 6 21560684.052 21560682.376 21560683.020
+ 42.200 39.200
+ 06 1 1 2 16 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16667739.719 7 -12987836.127 6 21149411.805 21149409.577 21149411.136
+ 45.500 41.500
+ -7404236.569 4 -5769522.469 4 23399535.200 23399534.292 23399534.222
+ 26.500 24.200
+ -9681589.437 7 -7544094.193 6 21836912.841 21836909.468 21836911.768
+ 43.300 36.500
+ -1952059.694 3 -1521083.725 2 24480529.286 24480527.759 24480528.413
+ 19.900 17.000
+ -5232707.553 5 -4077411.896 4 23518422.671 23518420.629 23518421.482
+ 31.500 24.600
+ -2488291.145 3 -1938927.769 2 24198610.531 24198610.066 24198609.929
+ 22.600 16.100
+ -22718416.175 7 -17702650.398 7 20173727.563 20173725.528 20173726.993
+ 47.500 45.100
+ -23971888.380 7 -18679386.182 7 20336422.732 20336419.165 20336421.702
+ 45.400 46.600
+ -15957327.878 7 -12434279.144 6 21544962.439 21544960.792 21544961.477
+ 42.700 39.400
+ 06 1 1 2 17 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16607288.400 7 -12940731.198 6 21160915.368 21160913.136 21160914.652
+ 45.500 41.400
+ -7311293.980 4 -5697099.710 4 23417221.798 23417221.050 23417220.807
+ 25.900 24.900
+ -9744954.063 7 -7593469.226 6 21824854.641 21824851.727 21824853.731
+ 43.400 37.100
+ -1899704.952 3 -1480287.852 2 24490492.570 24490490.302 24490491.140
+ 23.800 12.600
+ -5144554.904 5 -4008721.529 4 23535197.163 23535196.139 23535196.232
+ 30.400 24.900
+ -2604735.079 3 -2029663.263 3 24176451.989 24176451.747 24176451.071
+ 22.600 22.600
+ -22679546.631 7 -17672362.437 7 20181124.037 20181122.230 20181123.562
+ 47.500 45.100
+ -24006420.322 7 -18706294.182 7 20329851.470 20329847.889 20329850.454
+ 45.400 46.700
+ -16039634.751 7 -12498414.366 6 21529299.690 21529298.189 21529298.806
+ 42.600 39.300
+ 06 1 1 2 17 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16546446.638 7 -12893322.024 6 21172493.123 21172490.800 21172492.426
+ 45.300 41.100
+ -7218173.376 4 -5624538.237 3 23434942.339 23434940.902 23434941.310
+ 26.800 23.000
+ -9808115.610 7 -7642686.012 6 21812835.585 21812832.513 21812834.654
+ 43.500 37.400
+ -1846839.448 4 -1439093.953 3 24500552.641 24500551.086 24500551.634
+ 25.900 18.600
+ -5056323.257 4 -3939969.610 3 23551986.861 23551985.468 23551985.875
+ 29.700 21.600
+ -2721137.311 3 -2120366.233 3 24154300.943 24154300.916 24154300.471
+ 23.000 23.000
+ -22640086.337 7 -17641614.147 7 20188633.193 20188631.221 20188632.627
+ 47.400 44.900
+ -24040463.276 7 -18732821.155 7 20323373.295 20323369.793 20323372.330
+ 45.400 46.600
+ -117947.146 4 -91906.767 2 24695968.602 24695966.018 24695967.913
+ 26.200 12.600
+ -16121628.002 7 -12562305.210 6 21513697.201 21513695.444 21513696.104
+ 42.700 39.700
+ 06 1 1 2 18 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16485216.649 7 -12845610.329 6 21184144.783 21184142.525 21184144.132
+ 45.400 41.100
+ -7124878.000 4 -5551840.563 3 23452695.829 23452694.569 23452695.128
+ 27.400 22.600
+ -9871073.369 7 -7691744.006 6 21800854.908 21800852.035 21800854.089
+ 43.800 37.700
+ -1793464.569 4 -1397503.184 2 24510709.115 24510707.438 24510708.080
+ 24.900 17.000
+ -4968013.154 4 -3871156.560 4 23568792.309 23568790.586 23568791.019
+ 29.500 24.200
+ -2837494.536 4 -2211034.146 3 24132158.825 24132158.680 24132158.489
+ 24.200 21.600
+ -22600037.393 7 -17610407.172 7 20196254.509 20196252.308 20196253.832
+ 47.600 44.900
+ -24074016.039 7 -18758966.165 7 20316988.619 20316984.911 20316987.492
+ 45.200 46.800
+ -206339.189 4 -160783.743 1 24679148.871 24679143.835 24679148.101
+ 26.800 11.000
+ -16203305.187 7 -12625949.760 6 21498154.364 21498152.677 21498153.284
+ 42.400 39.300
+ 06 1 1 2 18 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16423600.721 7 -12797597.907 6 21195870.120 21195867.575 21195869.347
+ 45.400 40.700
+ -7031410.637 4 -5479008.864 3 23470482.087 23470480.860 23470481.089
+ 25.600 23.000
+ -9933826.463 7 -7740642.517 6 21788913.353 21788910.354 21788912.398
+ 43.500 37.600
+ -1739582.012 3 -1355516.831 2 24520962.495 24520961.266 24520961.504
+ 22.100 12.600
+ -4879625.310 4 -3802282.929 3 23585612.053 23585609.858 23585610.972
+ 29.900 23.000
+ -2953803.523 3 -2301664.479 3 24110024.114 24110025.451 24110025.079
+ 19.300 19.900
+ -22559401.870 7 -17578743.121 7 20203987.015 20203984.865 20203986.450
+ 47.800 44.700
+ -24107076.869 7 -18784727.842 7 20310697.071 20310693.634 20310696.130
+ 45.100 46.800
+ -294672.427 4 -229614.845 2 24662338.791 24662335.279 24662338.391
+ 24.600 17.000
+ -16284663.616 7 -12689345.929 6 21482672.617 21482670.895 21482671.455
+ 42.700 39.700
+ 06 1 1 2 19 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16361600.917 7 -12749286.363 6 21207668.065 21207665.806 21207667.420
+ 45.300 41.000
+ -6937774.129 4 -5406045.381 3 23488300.360 23488299.321 23488299.560
+ 27.100 23.000
+ -9996374.740 7 -7789381.428 6 21777010.784 21777007.860 21777009.982
+ 44.000 37.300
+ -1685193.449 4 -1313136.188 2 24531312.812 24531311.263 24531312.065
+ 24.600 15.100
+ -4791160.445 4 -3733349.277 3 23602445.855 23602444.188 23602444.735
+ 28.400 23.800
+ -3070061.374 3 -2392254.971 2 24087899.405 24087901.959 24087902.238
+ 22.100 16.100
+ -22518182.064 8 -17546623.784 7 20211830.761 20211828.706 20211830.282
+ 48.000 44.700
+ -24139643.835 7 -18810104.695 7 20304499.489 20304496.328 20304498.638
+ 45.200 46.800
+ -382946.864 3 -298400.123 2 24645540.916 24645536.649 24645540.442
+ 21.600 17.800
+ -16365700.928 7 -12752491.872 6 21467251.620 21467250.139 21467250.502
+ 42.700 40.300
+ 06 1 1 2 19 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16299219.839 7 -12700677.724 6 21219538.916 21219536.451 21219538.209
+ 45.100 40.600
+ -6843971.551 4 -5332952.501 3 23506150.393 23506149.568 23506149.855
+ 27.100 23.000
+ -10058717.507 7 -7837960.211 6 21765147.683 21765144.221 21765146.708
+ 44.200 37.200
+ -1630300.855 3 -1270362.678 2 24541757.970 24541756.720 24541757.089
+ 22.600 15.100
+ -4702619.170 4 -3664356.087 3 23619295.078 23619292.916 23619293.817
+ 28.800 22.600
+ -3186264.735 4 -2482803.006 3 24065788.418 24065789.765 24065789.346
+ 26.200 21.600
+ -22476380.067 8 -17514050.788 7 20219785.559 20219783.329 20219785.017
+ 48.000 44.700
+ -24171714.804 7 -18835095.059 7 20298396.832 20298393.413 20298395.834
+ 45.000 46.900
+ -471161.855 3 -367139.053 3 24628753.622 24628750.135 24628752.875
+ 19.900 19.300
+ -16446414.581 7 -12815385.613 6 21451892.390 21451890.712 21451891.332
+ 43.400 40.100
+ 06 1 1 2 20 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16236459.552 7 -12651773.599 6 21231481.694 21231479.346 21231480.998
+ 45.100 40.900
+ -6750005.823 4 -5259732.482 3 23524031.832 23524030.596 23524031.193
+ 27.600 23.400
+ -10120854.132 7 -7886378.363 6 21753323.190 21753320.196 21753322.453
+ 44.300 37.700
+ -1574906.377 3 -1227198.195 2 24552299.932 24552298.634 24552298.722
+ 23.800 17.000
+ -4614002.032 4 -3595303.801 4 23636158.083 23636156.648 23636157.170
+ 29.500 24.600
+ -3302410.173 4 -2573305.927 3 24043686.972 24043688.395 24043687.497
+ 24.600 21.600
+ -22433998.100 7 -17481025.868 7 20227850.503 20227848.333 20227849.937
+ 47.800 44.500
+ -24203288.519 7 -18859697.947 7 20292388.852 20292385.246 20292387.790
+ 45.200 47.000
+ -559316.675 2 -435831.085 3 24611978.437 24611975.381 24611977.950
+ 13.900 23.800
+ -16526802.034 7 -12878025.179 6 21436595.111 21436593.372 21436593.980
+ 42.800 39.800
+ 06 1 1 2 20 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16173322.311 7 -12602575.745 6 21243496.411 21243494.013 21243495.607
+ 44.800 40.700
+ -6655879.598 4 -5186387.435 3 23541943.539 23541942.267 23541942.678
+ 28.100 23.400
+ -10182783.875 7 -7934635.301 6 21741538.179 21741535.461 21741537.421
+ 44.000 37.900
+ -1519011.593 4 -1183643.855 2 24562936.222 24562934.319 24562934.857
+ 24.200 17.800
+ -4525309.774 4 -3526192.948 3 23653036.105 23653033.991 23653034.791
+ 29.200 23.800
+ -3418494.590 4 -2663761.219 3 24021598.603 24021598.063 24021597.823
+ 24.200 22.600
+ -22391038.258 7 -17447550.660 7 20236025.306 20236023.316 20236024.810
+ 47.700 44.400
+ -24234363.054 7 -18883911.870 7 20286475.466 20286471.826 20286474.410
+ 44.900 46.900
+ -647411.030 2 -504475.993 4 24595214.592 24595211.427 24595214.151
+ 17.000 24.600
+ -16606860.864 7 -12940408.671 6 21421360.354 21421358.602 21421359.311
+ 43.400 39.900
+ 06 1 1 2 21 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16109810.514 7 -12553086.024 6 21255582.114 21255579.860 21255581.476
+ 44.900 40.600
+ -6561596.016 4 -5112919.711 4 23559884.906 23559884.036 23559884.373
+ 28.800 24.900
+ -10244506.255 7 -7982730.651 6 21729792.905 21729790.023 21729792.015
+ 43.800 38.000
+ -1462618.337 3 -1139701.140 2 24573666.875 24573666.090 24573666.328
+ 22.600 17.800
+ -4436542.957 5 -3457024.039 4 23669928.191 23669926.287 23669926.880
+ 30.400 25.300
+ -3534514.815 3 -2754166.555 3 23999520.703 23999519.553 23999519.574
+ 23.400 21.100
+ -22347502.894 7 -17413626.991 7 20244309.884 20244307.954 20244309.346
+ 47.500 44.700
+ -24264936.845 7 -18907735.606 7 20280657.495 20280653.800 20280656.377
+ 45.000 47.000
+ -735444.793 2 -573073.656 4 24578462.693 24578458.875 24578462.182
+ 17.800 24.600
+ -16686588.660 7 -13002534.222 6 21406188.982 21406186.784 21406187.797
+ 43.500 39.700
+ 06 1 1 2 21 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16045926.253 7 -12503306.071 6 21267738.821 21267736.506 21267738.152
+ 44.800 40.200
+ -6467157.961 4 -5039331.685 3 23577855.721 23577854.510 23577854.915
+ 24.900 21.100
+ -10306021.209 7 -8030664.379 6 21718087.006 21718083.989 21718086.286
+ 44.400 37.800
+ -1405728.317 3 -1095371.302 2 24584493.161 24584491.543 24584492.262
+ 20.500 16.100
+ -4347702.237 4 -3387797.543 4 23686833.928 23686832.166 23686832.694
+ 29.900 24.200
+ -3650467.363 4 -2844519.146 3 23977455.582 23977454.800 23977454.645
+ 24.200 19.900
+ -22303394.116 7 -17379256.511 7 20252703.494 20252701.589 20252702.915
+ 47.400 44.600
+ -24295008.056 7 -18931167.712 7 20274935.096 20274931.507 20274933.949
+ 44.800 47.000
+ -823417.363 3 -641623.709 3 24561721.648 24561718.588 24561720.801
+ 22.100 23.000
+ -16765982.749 7 -13064399.745 6 21391080.327 21391078.639 21391079.435
+ 43.500 39.800
+ 06 1 1 2 22 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -15981672.003 7 -12453237.814 6 21279966.123 21279963.707 21279965.405
+ 44.800 40.300
+ -6372568.582 4 -4965625.711 3 23595855.379 23595855.015 23595854.559
+ 25.600 20.500
+ -10367327.746 7 -8078435.701 6 21706420.766 21706417.920 21706419.948
+ 44.200 38.100
+ -1348343.363 3 -1050655.768 2 24595413.327 24595412.237 24595412.183
+ 21.600 17.000
+ -4258788.153 5 -3318513.836 3 23703754.187 23703751.716 23703752.744
+ 30.400 23.800
+ -3766349.204 3 -2934816.594 3 23955403.910 23955403.354 23955402.913
+ 21.600 18.600
+ -22258714.397 7 -17344441.138 7 20261205.691 20261203.849 20261205.155
+ 47.400 44.700
+ -24324575.250 7 -18954207.079 7 20269308.769 20269305.028 20269307.653
+ 44.900 47.000
+ -911328.377 4 -710125.785 3 24544993.241 24544989.265 24544992.868
+ 24.900 23.800
+ -16845040.633 7 -13126003.288 6 21376036.155 21376034.523 21376035.089
+ 43.400 39.900
+ 06 1 1 2 22 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -15917049.940 7 -12402882.954 6 21292263.442 21292260.881 21292262.654
+ 44.700 40.200
+ -6277830.612 3 -4891803.951 2 23613883.545 23613882.221 23613882.745
+ 23.800 17.000
+ -10428425.404 7 -8126044.258 6 21694794.578 21694791.457 21694793.561
+ 44.300 38.400
+ -1290465.870 4 -1005556.423 2 24606427.204 24606425.526 24606426.211
+ 24.200 15.100
+ -4169801.366 4 -3249173.503 4 23720687.631 23720685.812 23720686.531
+ 29.700 24.900
+ -3882156.802 4 -3025056.265 3 23933367.600 23933365.209 23933366.382
+ 26.200 21.100
+ -22213465.774 7 -17309182.463 7 20269816.180 20269814.394 20269815.661
+ 47.200 44.700
+ -24353636.691 7 -18976852.359 7 20263778.390 20263774.831 20263777.288
+ 44.800 47.100
+ -999177.106 4 -778579.330 3 24528276.111 24528271.873 24528275.508
+ 26.200 20.500
+ -16923759.784 7 -13187342.876 6 21361056.278 21361054.702 21361055.349
+ 43.600 40.200
+ 06 1 1 2 23 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -15852062.477 7 -12352243.366 6 21304629.964 21304627.603 21304629.252
+ 44.800 40.300
+ -6182947.140 4 -4817868.769 2 23631938.550 23631938.147 23631938.022
+ 24.600 16.100
+ -10489313.443 7 -8173489.480 6 21683207.805 21683204.760 21683206.808
+ 44.100 38.200
+ -1232097.185 3 -960074.365 1 24617534.511 24617532.209 24617533.606
+ 22.100 6.500
+ -4080742.909 4 -3179777.315 4 23737634.676 23737632.959 23737633.300
+ 28.100 24.600
+ -3997887.252 4 -3115235.794 3 23911344.933 23911342.451 23911343.594
+ 27.900 21.600
+ -22167650.573 7 -17273482.300 7 20278534.594 20278532.726 20278534.055
+ 47.500 44.700
+ -24382190.560 7 -18999102.125 7 20258344.727 20258341.256 20258343.633
+ 44.700 47.100
+ -1086963.319 4 -846984.169 3 24511571.165 24511566.930 24511570.398
+ 25.900 21.100
+ -17002137.574 7 -13248416.476 6 21346141.575 21346139.894 21346140.512
+ 43.600 40.200
+ 06 1 1 2 23 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15786711.806 7 -12301320.757 6 21317065.701 21317063.437 21317065.051
+ 44.900 40.200
+ -6087920.865 4 -4743822.361 3 23650021.995 23650020.963 23650021.626
+ 25.900 18.600
+ -10549991.334 7 -8220770.941 6 21671660.921 21671658.135 21671660.152
+ 44.300 38.300
+ -3991613.061 4 -3110325.513 4 23754595.701 23754593.885 23754594.470
+ 27.900 24.600
+ -4113537.609 3 -3205352.940 3 23889336.455 23889335.422 23889335.218
+ 23.800 22.100
+ -22121271.084 7 -17237342.433 7 20287360.298 20287358.498 20287359.799
+ 47.500 44.400
+ -24410235.530 7 -19020955.343 7 20253007.952 20253004.438 20253006.915
+ 44.600 47.200
+ -1174686.544 4 -915339.944 3 24494877.410 24494874.010 24494877.006
+ 26.500 19.900
+ -17080171.941 7 -13309222.462 6 21331292.168 21331290.592 21331291.133
+ 43.600 40.400
+ 06 1 1 2 24 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15721000.272 7 -12250116.955 6 21329570.228 21329567.810 21329569.578
+ 44.900 40.000
+ -5992754.870 4 -4669667.045 3 23668132.183 23668130.460 23668131.244
+ 25.300 19.900
+ -10610458.502 7 -8267888.210 6 21660154.635 21660151.620 21660153.691
+ 44.300 38.500
+ -3902412.516 5 -3040818.628 3 23771569.242 23771567.729 23771568.231
+ 30.200 23.800
+ -4229104.206 3 -3295404.780 2 23867344.514 23867343.053 23867343.252
+ 23.400 17.800
+ -22074329.682 7 -17200764.707 7 20296293.188 20296291.036 20296292.538
+ 47.500 44.400
+ -24437769.505 7 -19042410.384 7 20247768.354 20247764.836 20247767.444
+ 44.800 47.100
+ -1262346.304 4 -983646.246 3 24478197.153 24478192.550 24478196.441
+ 25.900 20.500
+ -17157860.315 7 -13369758.852 6 21316508.608 21316506.864 21316507.418
+ 43.300 40.600
+ 06 1 1 2 24 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15654930.084 7 -12198633.683 6 21342142.996 21342140.659 21342142.270
+ 44.900 40.000
+ -5897451.932 4 -4595405.062 3 23686267.691 23686266.516 23686266.768
+ 26.500 21.600
+ -10670714.253 7 -8314840.738 6 21648688.261 21648685.289 21648687.323
+ 44.200 38.500
+ -3813141.886 4 -2971257.116 3 23788556.752 23788555.818 23788555.556
+ 27.600 23.800
+ -4344583.563 4 -3385388.658 2 23845369.759 23845368.791 23845368.726
+ 25.900 17.800
+ -22026828.684 7 -17163750.940 7 20305332.258 20305330.209 20305331.695
+ 47.600 44.300
+ -24464791.367 7 -19063466.381 7 20242626.413 20242622.769 20242625.404
+ 44.800 47.300
+ -1349942.298 4 -1051902.856 3 24461527.282 24461523.908 24461526.719
+ 24.900 20.500
+ -17235200.036 7 -13430023.555 6 21301791.179 21301789.660 21301790.096
+ 43.600 40.500
+ 06 1 1 2 25 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15588503.629 7 -12146872.801 6 21354783.614 21354781.145 21354782.962
+ 44.900 39.800
+ -5802015.079 4 -4521038.715 3 23704428.680 23704427.755 23704427.909
+ 25.900 23.000
+ -10730758.361 7 -8361628.353 6 21637262.115 21637259.263 21637261.272
+ 44.300 38.600
+ -3723801.877 4 -2901641.562 3 23805557.017 23805556.295 23805556.397
+ 27.400 22.100
+ -4459973.131 4 -3475302.551 3 23823411.503 23823411.285 23823410.619
+ 24.900 22.600
+ -21978770.386 7 -17126302.911 7 20314477.408 20314475.296 20314476.851
+ 47.700 44.100
+ -24491298.070 7 -19084120.952 7 20237582.339 20237578.716 20237581.284
+ 44.600 47.200
+ -1437474.062 4 -1120109.405 3 24444870.689 24444867.109 24444870.198
+ 25.300 22.600
+ -17312188.269 7 -13490014.381 6 21287140.646 21287139.183 21287139.775
+ 43.800 40.500
+ 06 1 1 2 25 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15521723.231 7 -12094836.119 6 21367491.589 21367489.044 21367490.876
+ 44.700 39.700
+ -5706447.215 4 -4446570.298 4 23722614.888 23722613.958 23722613.836
+ 24.900 24.900
+ -10790589.959 7 -8408250.365 6 21625876.936 21625873.744 21625875.795
+ 44.300 38.800
+ -3634392.970 4 -2831972.278 3 23822572.355 23822570.182 23822570.771
+ 27.600 22.100
+ -4575268.742 4 -3565143.258 3 23801470.177 23801470.490 23801470.268
+ 24.900 19.900
+ -21930157.178 7 -17088422.482 7 20323728.141 20323726.125 20323727.640
+ 47.700 44.100
+ -24517290.156 7 -19104374.522 7 20232636.255 20232632.539 20232635.195
+ 44.500 47.300
+ -1524940.963 4 -1188265.414 3 24428227.139 24428222.756 24428226.519
+ 25.900 23.400
+ -17388822.717 7 -13549729.527 6 21272557.839 21272556.131 21272556.809
+ 43.900 40.600
+ 06 1 1 2 26 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15454590.958 7 -12042525.249 6 21380266.310 21380263.891 21380265.585
+ 44.300 39.700
+ -5610751.235 4 -4372002.031 3 23740824.670 23740824.040 23740824.322
+ 24.600 22.600
+ -10850208.258 7 -8454706.177 6 21614531.758 21614528.695 21614530.935
+ 45.100 38.900
+ -3544915.555 4 -2762249.648 3 23839597.245 23839597.954 23839597.100
+ 27.900 21.600
+ -4690467.771 3 -3654908.684 3 23779547.699 23779548.759 23779548.443
+ 22.600 20.500
+ -21880991.348 7 -17050111.432 7 20333084.351 20333081.961 20333083.667
+ 47.600 43.900
+ -24542765.575 7 -19124225.497 7 20227788.265 20227784.772 20227787.235
+ 44.400 47.400
+ -1612342.618 3 -1256370.604 3 24411593.358 24411590.787 24411593.304
+ 22.100 21.100
+ -17465100.995 7 -13609167.142 6 21258042.724 21258040.897 21258041.569
+ 44.100 40.700
+ 06 1 1 2 26 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15387109.312 7 -11989942.144 6 21393107.541 21393105.329 21393106.815
+ 44.200 40.000
+ -5514930.016 3 -4297336.208 3 23759058.881 23759058.388 23759058.177
+ 22.600 22.100
+ -10909612.942 7 -8500995.540 6 21603227.553 21603224.204 21603226.564
+ 44.800 38.400
+ -3455370.550 4 -2692474.318 3 23856638.868 23856636.548 23856637.527
+ 28.100 19.300
+ -4805566.682 4 -3744596.050 3 23757645.993 23757646.206 23757646.238
+ 24.900 23.400
+ -21831275.275 7 -17011371.626 7 20342544.691 20342542.683 20342544.135
+ 47.600 44.000
+ -24567721.741 7 -19143671.856 7 20223039.349 20223035.823 20223038.228
+ 44.200 47.400
+ -1699678.751 3 -1324424.695 3 24394974.866 24394971.348 24394974.317
+ 23.000 21.600
+ -17541020.619 7 -13668325.283 6 21243595.390 21243593.957 21243594.437
+ 44.100 41.300
+ 06 1 1 2 27 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15319280.611 7 -11937088.606 6 21406014.977 21406012.626 21406014.237
+ 44.200 39.700
+ -5418986.491 3 -4222575.084 2 23777315.848 23777315.597 23777315.417
+ 22.100 17.000
+ -10968803.443 7 -8547118.005 6 21591963.735 21591960.554 21591962.853
+ 44.800 38.400
+ -3365758.587 4 -2622646.818 3 23873690.587 23873689.711 23873689.848
+ 27.600 20.500
+ -4920561.816 4 -3834202.603 3 23735763.740 23735763.060 23735763.195
+ 25.600 23.400
+ -21781011.420 7 -16972204.977 7 20352109.640 20352107.563 20352109.070
+ 47.500 43.800
+ -24592157.705 7 -19162712.861 7 20218389.298 20218385.707 20218388.273
+ 44.400 47.400
+ -1786948.759 4 -1392427.298 3 24378367.978 24378364.047 24378367.380
+ 25.300 19.900
+ -17616579.047 7 -13727201.975 6 21229217.514 21229215.683 21229216.378
+ 44.400 41.200
+ 06 1 1 2 27 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15251107.149 7 -11883966.419 6 21418988.029 21418985.639 21418987.360
+ 44.600 39.800
+ -5322923.702 4 -4147720.956 2 23795597.097 23795595.405 23795596.309
+ 25.600 15.100
+ -11027779.000 7 -8593072.984 6 21580741.123 21580738.013 21580740.232
+ 44.700 38.900
+ -3276080.187 4 -2552767.571 3 23890756.443 23890755.092 23890755.205
+ 27.600 20.500
+ -5035450.234 4 -3923725.989 4 23713902.040 23713900.937 23713900.979
+ 25.300 24.200
+ -21730202.198 7 -16932613.371 7 20361778.303 20361776.290 20361777.708
+ 47.500 43.900
+ -24616071.798 7 -19181347.216 7 20213838.604 20213834.950 20213837.587
+ 44.200 47.300
+ -1874152.166 3 -1460377.968 3 24361773.352 24361769.799 24361773.018
+ 22.600 21.100
+ -17691773.845 7 -13785795.329 6 21214908.213 21214906.459 21214907.088
+ 44.300 41.100
+ 06 1 1 2 28 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15182591.158 7 -11830577.328 6 21432026.278 21432023.749 21432025.497
+ 44.600 39.500
+ -5226744.481 4 -4072776.119 3 23813899.303 23813898.177 23813898.556
+ 25.300 18.600
+ -11086539.038 7 -8638860.013 6 21569559.376 21569556.693 21569558.536
+ 44.800 39.700
+ -3186336.010 3 -2482837.056 3 23907833.086 23907832.216 23907832.810
+ 23.400 19.900
+ -5150228.792 4 -4013163.780 3 23692061.353 23692059.128 23692059.767
+ 25.300 22.600
+ -21678850.046 7 -16892598.696 7 20371550.246 20371548.282 20371549.723
+ 47.600 44.000
+ -24639462.561 7 -19199573.784 7 20209387.351 20209383.896 20209386.389
+ 44.100 47.400
+ -1961288.696 3 -1528276.556 3 24345191.480 24345188.021 24345190.972
+ 22.600 21.100
+ -17766602.641 7 -13844103.486 6 21200668.870 21200667.034 21200667.824
+ 44.500 41.200
+ 06 1 1 2 28 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15113734.934 7 -11776923.118 6 21445129.031 21445126.684 21445128.409
+ 44.400 39.300
+ -5130451.727 4 -3997742.827 2 23832222.963 23832221.542 23832222.179
+ 27.900 13.900
+ -11145082.975 7 -8684478.655 6 21558418.917 21558415.981 21558418.049
+ 45.200 39.500
+ -3096526.654 4 -2412855.763 3 23924925.420 23924923.012 23924923.884
+ 27.900 22.600
+ -5264894.038 4 -4102513.247 3 23670241.488 23670238.553 23670239.839
+ 25.900 23.800
+ -21626957.380 7 -16852162.849 7 20381425.122 20381423.158 20381424.581
+ 47.600 44.000
+ -24662328.807 7 -19217391.636 7 20205036.014 20205032.652 20205035.050
+ 44.000 47.300
+ -2048357.647 4 -1596122.461 3 24328623.954 24328619.199 24328623.295
+ 24.600 19.300
+ -17841062.539 7 -13902124.191 6 21186499.811 21186497.891 21186498.576
+ 44.300 41.400
+ 06 1 1 2 29 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15044540.930 7 -11723005.703 6 21458296.304 21458293.905 21458295.517
+ 44.300 39.400
+ -5034048.436 4 -3922623.416 3 23850568.063 23850566.493 23850567.565
+ 25.900 18.600
+ -11203410.066 7 -8729928.333 6 21547319.559 21547316.573 21547318.653
+ 45.000 39.300
+ -3006652.588 4 -2342824.037 3 23942026.888 23942024.955 23942025.878
+ 28.100 21.100
+ -5379442.654 4 -4191771.858 3 23648443.621 23648440.958 23648441.585
+ 25.600 23.000
+ -21574526.542 7 -16811307.640 7 20391402.253 20391400.402 20391401.764
+ 47.500 43.800
+ -24684669.062 7 -19234799.623 7 20200784.814 20200781.456 20200783.868
+ 44.000 47.600
+ -2135358.710 4 -1663915.469 3 24312067.924 24312064.048 24312067.367
+ 26.200 19.900
+ -17915151.169 7 -13959855.595 6 21172400.987 21172399.270 21172399.893
+ 44.500 41.500
+ 06 1 1 2 29 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -14975011.435 7 -11668826.868 6 21471527.104 21471524.767 21471526.494
+ 44.100 39.100
+ -4937537.445 4 -3847420.052 3 23868933.503 23868932.836 23868932.978
+ 24.600 19.900
+ -11261519.962 7 -8775208.770 6 21536261.778 21536258.619 21536260.917
+ 45.500 39.100
+ -2916714.141 4 -2272742.143 3 23959142.384 23959139.915 23959140.786
+ 28.100 19.900
+ -5493870.902 4 -4280936.645 3 23626667.864 23626665.603 23626666.173
+ 25.600 22.600
+ -21521560.002 7 -16770035.002 7 20401481.303 20401479.521 20401480.870
+ 47.500 43.700
+ -24706480.905 7 -19251795.861 7 20196634.418 20196630.802 20196633.333
+ 43.800 47.700
+ -2222291.511 4 -1731655.296 3 24295524.985 24295520.839 24295524.697
+ 26.800 19.900
+ -17988866.055 7 -14017295.768 6 21158373.381 21158371.820 21158372.278
+ 44.300 41.700
+ 06 1 1 2 30 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -14905148.467 7 -11614388.183 6 21484821.589 21484819.267 21484820.902
+ 43.600 39.100
+ -4840921.590 4 -3772135.028 2 23887319.136 23887318.136 23887318.088
+ 25.600 17.000
+ -11319412.140 7 -8820319.561 6 21525245.528 21525242.176 21525244.561
+ 45.600 39.500
+ -2826712.260 4 -2202610.827 3 23976268.184 23976267.216 23976267.355
+ 27.400 22.100
+ -5608176.057 4 -4370005.580 4 23604915.495 23604914.514 23604914.788
+ 28.400 24.200
+ -21468060.425 7 -16728347.012 7 20411661.922 20411660.126 20411661.500
+ 47.500 43.800
+ -24727763.922 7 -19268380.029 7 20192584.215 20192580.781 20192583.220
+ 43.800 47.600
+ -2309155.581 4 -1799341.582 3 24278994.918 24278991.150 24278994.611
+ 25.600 21.100
+ -18062204.906 7 -14074442.921 6 21144417.615 21144415.892 21144416.548
+ 44.600 41.400
+ 06 1 1 2 30 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -14834954.782 7 -11559691.799 6 21498179.120 21498176.654 21498178.355
+ 43.700 39.100
+ -4744203.726 4 -3696770.507 3 23905723.953 23905722.674 23905723.141
+ 24.200 19.300
+ -11377085.924 7 -8865260.172 6 21514270.487 21514267.152 21514269.550
+ 45.400 39.300
+ -2736647.422 4 -2132430.468 3 23993407.463 23993406.020 23993405.744
+ 24.900 21.600
+ -5722354.862 4 -4458976.036 3 23583187.474 23583186.023 23583187.055
+ 28.400 21.100
+ -21414030.117 7 -16686245.465 7 20421943.704 20421941.735 20421943.208
+ 47.600 43.600
+ -24748516.513 7 -19284550.878 7 20188635.224 20188631.641 20188634.157
+ 43.800 47.600
+ -2395950.470 3 -1866973.921 3 24262477.800 24262475.171 24262477.462
+ 23.800 23.000
+ -18135165.069 7 -14131294.997 6 21130533.873 21130531.866 21130532.724
+ 44.800 41.400
+ 06 1 1 2 31 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14764432.329 7 -11504739.229 6 21511598.872 21511596.715 21511598.209
+ 43.600 39.100
+ -4647387.078 3 -3621328.958 2 23924147.226 23924146.056 23924146.541
+ 23.000 12.600
+ -11434540.338 7 -8910029.841 6 21503337.113 21503333.945 21503336.110
+ 45.000 39.500
+ -70366.104 3 -54830.771 3 24576796.904 24576795.430 24576796.047
+ 21.100 21.100
+ -2646520.109 4 -2062201.419 3 24010556.938 24010556.060 24010556.663
+ 27.100 19.900
+ -5836403.512 4 -4547845.101 3 23561484.565 23561483.738 23561484.178
+ 27.100 23.000
+ -21359471.647 7 -16643732.360 7 20432325.936 20432323.879 20432325.405
+ 47.600 43.700
+ -24768736.737 7 -19300306.894 7 20184787.417 20184783.822 20184786.342
+ 43.800 47.600
+ -2482675.371 4 -1934551.747 3 24245975.458 24245971.769 24245974.765
+ 25.300 23.800
+ -18207744.069 7 -14187850.062 6 21116722.568 21116720.617 21116721.414
+ 45.000 41.800
+ 06 1 1 2 31 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14693583.658 7 -11449532.464 6 21525081.034 21525078.726 21525080.285
+ 43.600 39.100
+ -4550474.259 4 -3545812.494 3 23942589.027 23942588.197 23942588.393
+ 24.200 20.500
+ -11491774.620 7 -8954627.979 6 21492445.578 21492442.706 21492444.733
+ 45.100 39.500
+ -115624.396 3 -90096.935 3 24568184.099 24568182.231 24568183.292
+ 20.500 19.900
+ -2556331.070 4 -1991924.251 3 24027721.174 24027718.843 24027719.519
+ 27.400 19.300
+ -5950319.035 4 -4636610.385 3 23539806.496 23539806.837 23539806.711
+ 25.900 23.400
+ -21304387.453 7 -16600809.602 7 20442808.114 20442806.088 20442807.553
+ 47.400 43.600
+ -24788424.007 7 -19315647.621 7 20181041.108 20181037.513 20181039.995
+ 43.600 47.700
+ -2569330.101 4 -2002074.887 3 24229486.032 24229481.673 24229485.355
+ 27.600 23.400
+ -18279939.342 7 -14244106.118 6 21102984.392 21102982.287 21102983.212
+ 45.200 41.800
+ 06 1 1 2 32 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14622410.871 7 -11394073.144 6 21538624.785 21538622.512 21538623.990
+ 43.600 38.800
+ -4453468.331 3 -3470223.517 4 23961048.391 23961048.208 23961048.066
+ 22.600 24.600
+ -11548788.699 7 -8999054.531 6 21481596.181 21481593.341 21481595.357
+ 45.400 40.000
+ -160381.547 2 -124972.671 3 24559666.953 24559665.466 24559665.913
+ 16.100 21.100
+ -2466080.804 4 -1921599.389 3 24044893.512 24044892.816 24044892.983
+ 26.200 19.900
+ -6064097.512 4 -4725268.862 3 23518156.434 23518155.078 23518155.747
+ 26.200 23.800
+ -21248780.096 7 -16557479.184 7 20453389.761 20453387.836 20453389.234
+ 47.500 43.500
+ -24807576.376 7 -19330571.540 7 20177396.440 20177393.016 20177395.378
+ 43.700 47.800
+ -2655914.191 4 -2069542.987 4 24213009.117 24213005.776 24213008.603
+ 26.500 24.600
+ -18351748.447 7 -14300061.264 7 21089319.429 21089317.500 21089318.348
+ 45.200 42.000
+ 06 1 1 2 32 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14550916.327 7 -11338363.111 6 21552229.598 21552227.491 21552228.870
+ 43.400 38.700
+ -4356371.946 3 -3394564.062 3 23979525.449 23979524.790 23979524.486
+ 19.900 23.400
+ -11605582.098 7 -9043309.132 6 21470788.887 21470785.856 21470788.080
+ 45.600 40.000
+ -204636.558 3 -159457.021 3 24551245.960 24551244.203 24551245.054
+ 19.300 23.000
+ -2375769.775 4 -1851227.183 3 24062080.870 24062078.755 24062079.351
+ 26.800 21.600
+ -6177735.426 4 -4813817.900 3 23496532.601 23496530.642 23496531.291
+ 26.500 23.400
+ -21192652.160 7 -16513743.118 7 20464070.553 20464068.644 20464070.115
+ 47.500 43.400
+ -24826192.397 7 -19345077.523 7 20173854.022 20173850.430 20173852.937
+ 43.600 47.700
+ -2742426.974 4 -2136955.539 4 24196546.537 24196542.714 24196545.719
+ 25.300 24.200
+ -18423168.877 7 -14355713.538 6 21075728.432 21075726.557 21075727.337
+ 45.000 41.900
+ 06 1 1 2 33 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14479102.352 7 -11282404.163 6 21565895.690 21565893.102 21565894.843
+ 43.600 39.000
+ -4259188.125 3 -3318836.469 3 23998018.824 23998018.545 23998018.091
+ 22.600 23.000
+ -11662153.677 7 -9087390.885 6 21460023.704 21460020.558 21460022.806
+ 45.500 39.900
+ -248387.817 3 -193548.922 3 24542920.395 24542918.557 24542919.429
+ 23.000 21.100
+ -2285398.753 4 -1780808.196 3 24079275.866 24079275.621 24079275.469
+ 24.900 19.300
+ -6291230.036 4 -4902255.202 3 23474935.137 23474933.178 23474933.389
+ 26.200 22.100
+ -21136006.075 7 -16469603.308 7 20474850.031 20474847.958 20474849.491
+ 47.600 43.300
+ -24844270.707 7 -19359164.519 7 20170413.827 20170410.240 20170412.770
+ 43.500 47.800
+ -2828868.438 4 -2204312.488 4 24180097.214 24180092.895 24180096.466
+ 25.600 24.900
+ -18494197.977 7 -14411060.891 7 21062212.118 21062210.301 21062210.982
+ 45.100 42.200
+ 06 1 1 2 33 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14406971.293 7 -11226198.138 6 21579621.425 21579619.166 21579620.843
+ 44.000 38.600
+ -4161919.787 2 -3243043.028 3 24016527.853 24016528.404 24016527.442
+ 17.800 22.100
+ -11718503.340 7 -9131299.711 6 21449300.473 21449297.585 21449299.687
+ 45.400 39.800
+ -291634.274 3 -227247.425 3 24534690.875 24534689.173 24534690.067
+ 19.300 23.000
+ -2194968.060 4 -1710342.730 3 24096486.350 24096484.475 24096484.783
+ 26.200 23.000
+ -6404578.252 4 -4990578.423 4 23453365.803 23453363.773 23453364.254
+ 26.500 25.300
+ -21078844.315 7 -16425061.664 7 20485727.464 20485725.466 20485726.937
+ 47.300 43.000
+ -24861810.267 7 -19372831.703 7 20167075.984 20167072.616 20167074.931
+ 43.400 47.900
+ -2915237.910 4 -2271613.349 4 24163661.370 24163657.642 24163660.930
+ 26.200 24.200
+ -18564833.214 7 -14466101.334 7 21048770.713 21048769.023 21048769.621
+ 45.400 42.400
+ 06 1 1 2 34 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14334525.477 7 -11169746.845 6 21593407.582 21593405.064 21593406.916
+ 44.000 38.400
+ -4064569.837 4 -3167185.999 3 24035053.854 24035053.863 24035053.297
+ 24.900 22.100
+ -11774629.728 7 -9175034.559 6 21438620.299 21438617.200 21438619.331
+ 45.600 40.300
+ -334374.483 3 -260551.424 3 24526557.859 24526555.770 24526556.849
+ 22.600 22.600
+ -2104478.359 4 -1639831.342 3 24113705.219 24113704.219 24113704.481
+ 24.600 22.100
+ -6517776.367 4 -5078784.684 4 23431823.475 23431822.762 23431823.135
+ 28.100 24.900
+ -21021169.612 7 -16380120.322 7 20496702.486 20496700.554 20496701.969
+ 47.200 43.000
+ -24878809.612 7 -19386077.938 7 20163841.028 20163837.673 20163840.064
+ 43.400 47.800
+ -3001534.838 4 -2338857.697 3 24147239.737 24147236.119 24147239.173
+ 25.600 23.400
+ -18635072.320 7 -14520833.098 7 21035404.680 21035402.781 21035403.582
+ 45.300 42.300
+ 06 1 1 2 34 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14261766.951 7 -11113051.883 6 21607253.169 21607250.659 21607252.491
+ 44.000 38.600
+ -3967141.084 3 -3091267.546 3 24053593.750 24053593.675 24053593.294
+ 22.100 20.500
+ -11830532.626 7 -9218595.258 6 21427982.068 21427979.192 21427981.180
+ 45.600 40.300
+ -376607.128 3 -293459.973 3 24518520.899 24518518.792 24518519.821
+ 22.600 21.600
+ -2013930.419 4 -1569274.519 3 24130936.382 24130934.045 24130935.389
+ 24.200 19.900
+ -6630820.516 4 -5166870.954 4 23410311.467 23410311.178 23410311.156
+ 26.800 24.600
+ -20962984.449 7 -16334781.225 7 20507774.794 20507772.771 20507774.226
+ 47.100 43.000
+ -24895267.552 7 -19398902.302 7 20160709.314 20160705.732 20160708.304
+ 43.200 47.600
+ -3087758.841 3 -2406045.208 4 24130831.437 24130828.199 24130830.731
+ 23.400 24.900
+ -18704912.757 7 -14575254.212 7 21022114.353 21022112.745 21022113.292
+ 45.400 42.500
+ 06 1 1 2 35 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14188698.266 7 -11056115.237 6 21621157.738 21621155.179 21621156.969
+ 43.500 38.300
+ -3869636.479 4 -3015289.956 3 24072149.142 24072147.917 24072148.379
+ 27.400 18.600
+ -11886211.584 7 -9261981.454 6 21417386.697 21417383.604 21417385.798
+ 45.600 40.100
+ -418330.889 3 -325971.983 3 24510581.018 24510579.253 24510580.207
+ 23.800 23.000
+ -1923324.419 4 -1498672.455 3 24148177.891 24148175.678 24148176.162
+ 25.300 20.500
+ -6743708.078 4 -5254835.242 4 23388828.926 23388829.147 23388829.588
+ 27.400 26.500
+ -20904291.339 7 -16289046.326 7 20518943.638 20518941.715 20518943.156
+ 47.200 42.900
+ -24911182.680 7 -19411303.694 7 20157680.646 20157677.248 20157679.685
+ 43.000 47.800
+ -3173909.481 4 -2473175.527 4 24114437.867 24114434.083 24114437.241
+ 25.300 24.200
+ -18774352.053 7 -14629362.748 7 21008900.377 21008898.805 21008899.327
+ 45.400 42.500
+ 06 1 1 2 35 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14115321.671 7 -10998938.666 6 21635120.727 21635118.342 21635119.945
+ 43.400 38.400
+ -3772058.775 4 -2939255.396 2 24090717.874 24090715.919 24090716.976
+ 27.100 15.100
+ -11941665.860 7 -9305192.577 6 21406834.216 21406831.153 21406833.355
+ 45.700 40.200
+ -459544.767 4 -358086.643 4 24502738.153 24502736.979 24502737.514
+ 24.200 26.800
+ -1832661.144 4 -1428025.767 3 24165429.439 24165428.479 24165428.945
+ 26.200 18.600
+ -6856434.981 4 -5342674.321 4 23367379.338 23367378.308 23367378.648
+ 27.400 28.600
+ -20845092.921 7 -16242917.676 7 20530208.807 20530206.862 20530208.281
+ 47.300 43.000
+ -24926553.636 7 -19423281.057 7 20154755.668 20154752.256 20154754.629
+ 42.900 47.700
+ -3259985.998 4 -2540248.109 4 24098057.765 24098054.162 24098057.318
+ 26.200 25.600
+ -18843387.770 7 -14683156.807 7 20995763.343 20995761.847 20995762.239
+ 45.300 42.500
+ 06 1 1 2 36 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14041639.449 7 -10941523.944 6 21649141.824 21649139.577 21649141.146
+ 43.200 38.400
+ -3674410.997 4 -2863166.218 1 24109299.022 24109297.312 24109298.300
+ 24.600 9.000
+ -11996894.098 7 -9348227.567 6 21396324.577 21396321.509 21396323.661
+ 45.600 40.100
+ -500247.379 3 -389802.965 3 24494992.573 24494991.174 24494991.516
+ 22.600 21.600
+ -1741940.967 4 -1357334.737 3 24182694.113 24182692.303 24182692.767
+ 26.200 20.500
+ -6968998.471 4 -5430386.080 4 23345960.335 23345958.144 23345958.804
+ 29.200 28.400
+ -20785391.874 7 -16196397.370 7 20541569.681 20541567.411 20541569.109
+ 47.100 42.700
+ -24941379.164 7 -19434833.413 7 20151934.401 20151930.996 20151933.419
+ 43.000 47.700
+ -3345988.149 4 -2607262.762 3 24081692.302 24081688.202 24081691.494
+ 28.600 23.400
+ -18912017.591 7 -14736634.571 7 20982703.428 20982701.773 20982702.336
+ 45.300 42.300
+ 06 1 1 2 36 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13967653.990 7 -10883872.929 6 21663220.865 21663218.408 21663220.090
+ 43.000 38.200
+ -3576695.869 3 -2787024.581 2 24127893.670 24127892.942 24127892.833
+ 22.600 16.100
+ -12051896.612 7 -9391086.666 6 21385857.914 21385854.883 21385857.031
+ 45.500 40.200
+ -540437.813 4 -421120.178 3 24487345.107 24487342.723 24487344.311
+ 27.100 21.600
+ -1651164.590 4 -1286599.896 2 24199968.610 24199966.105 24199967.163
+ 26.200 13.900
+ -7081394.653 4 -5517967.460 4 23324571.303 23324569.353 23324569.958
+ 27.600 24.600
+ -20725190.854 7 -16149487.479 7 20553025.442 20553023.280 20553024.840
+ 47.000 42.700
+ -24955658.081 7 -19445959.841 7 20149217.317 20149213.820 20149216.306
+ 42.800 47.800
+ -3431915.370 4 -2674219.019 3 24065341.149 24065336.419 24065340.503
+ 27.900 19.900
+ -18980238.802 7 -14789793.952 7 20969721.729 20969719.694 20969720.542
+ 45.300 42.200
+ 06 1 1 2 37 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13893367.532 7 -10825987.378 6 21677357.136 21677354.679 21677356.346
+ 42.900 37.900
+ -3478916.455 3 -2710832.892 2 24146499.216 24146499.758 24146498.750
+ 20.500 16.100
+ -12106672.512 7 -9433769.181 6 21375434.422 21375431.415 21375433.559
+ 45.800 40.300
+ -580114.588 3 -452037.144 4 24479794.806 24479793.026 24479793.621
+ 21.100 26.500
+ -1560332.355 4 -1215821.528 3 24217252.122 24217251.305 24217251.461
+ 25.300 18.600
+ -7193620.083 4 -5605415.801 3 23303215.385 23303213.402 23303213.788
+ 27.900 23.800
+ -20664492.245 7 -16102189.855 7 20564575.924 20564573.773 20564575.386
+ 47.000 42.400
+ -24969389.085 7 -19456659.325 7 20146604.502 20146600.995 20146603.472
+ 43.200 47.900
+ -3517767.194 4 -2741116.552 2 24049003.618 24048999.180 24049003.227
+ 27.400 17.800
+ -19048048.924 7 -14842632.999 7 20956817.642 20956815.937 20956816.540
+ 45.500 42.600
+ 06 1 1 2 37 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13818782.281 7 -10767869.000 6 21691549.945 21691547.728 21691549.453
+ 43.000 37.800
+ -3381075.447 2 -2634593.189 2 24165119.318 24165118.140 24165118.302
+ 17.800 16.100
+ -12161221.208 7 -9476274.652 6 21365054.379 21365051.094 21365053.472
+ 45.900 40.500
+ -619276.569 4 -482552.973 4 24472342.772 24472340.575 24472341.661
+ 25.300 25.900
+ -1469445.152 3 -1145000.338 3 24234547.957 24234546.650 24234546.347
+ 23.400 19.300
+ -7305671.768 4 -5692728.763 3 23281892.404 23281890.536 23281891.511
+ 29.500 23.400
+ -20603298.815 7 -16054506.655 7 20576220.725 20576218.622 20576220.241
+ 47.100 42.400
+ -24982571.157 7 -19466931.068 8 20144096.098 20144092.481 20144095.017
+ 43.000 48.000
+ -3603543.094 4 -2807954.904 2 24032680.318 24032676.659 24032679.940
+ 26.800 17.800
+ -19115445.491 7 -14895149.802 7 20943992.548 20943990.796 20943991.412
+ 45.500 42.500
+ 06 1 1 2 38 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13743900.603 7 -10709519.637 6 21705799.775 21705797.200 21705799.048
+ 43.100 37.400
+ -3283175.710 2 -2558307.687 2 24183748.695 24183748.432 24183748.305
+ 17.800 12.600
+ -12215541.600 7 -9518602.228 6 21354717.364 21354714.450 21354716.411
+ 45.700 40.700
+ -657922.619 4 -512666.755 3 24464988.308 24464986.286 24464987.449
+ 24.900 23.400
+ -1378503.314 4 -1074136.584 2 24251854.127 24251851.637 24251853.106
+ 27.600 13.900
+ -7417545.727 4 -5779903.244 4 23260602.766 23260601.238 23260602.450
+ 29.500 24.200
+ -20541613.000 7 -16006439.772 7 20587959.149 20587956.950 20587958.608
+ 47.300 42.200
+ -24995203.582 7 -19476774.514 7 20141692.241 20141688.602 20141691.146
+ 43.100 47.900
+ -3689242.848 4 -2874733.923 3 24016373.426 24016368.795 24016372.735
+ 27.900 21.600
+ -19182426.088 7 -14947342.467 7 20931246.376 20931244.709 20931245.291
+ 45.400 42.300
+ 06 1 1 2 38 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13668724.758 7 -10650941.050 6 21720105.163 21720102.607 21720104.485
+ 43.100 37.400
+ -3185220.182 2 -2481978.796 2 24202388.886 24202388.900 24202388.092
+ 17.800 16.100
+ -12269633.308 7 -9560751.602 6 21344424.132 21344421.124 21344423.080
+ 45.700 41.000
+ -696051.665 4 -542377.665 3 24457732.595 24457730.721 24457731.737
+ 24.900 22.100
+ -1287507.385 3 -1003230.638 3 24269170.491 24269168.346 24269168.879
+ 23.400 19.300
+ -7529239.388 4 -5866937.227 4 23239347.627 23239347.099 23239347.570
+ 27.900 24.200
+ -20479437.649 7 -15957991.437 7 20599790.876 20599788.640 20599790.298
+ 47.400 42.300
+ -25007283.985 7 -19486187.811 7 20139393.598 20139389.807 20139392.436
+ 43.300 47.900
+ -3774865.536 4 -2941452.890 3 24000079.553 24000075.640 24000079.220
+ 27.100 23.400
+ -19248988.355 7 -14999209.162 7 20918580.120 20918578.312 20918578.988
+ 45.400 42.600
+ 06 1 1 2 39 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13593257.086 7 -10592135.062 6 21734466.324 21734463.664 21734465.626
+ 43.000 37.200
+ -3087211.536 3 -2405608.495 2 24221040.059 24221039.256 24221039.315
+ 19.900 15.100
+ -12323495.658 7 -9602722.262 6 21334174.348 21334171.385 21334173.470
+ 45.800 41.000
+ -733662.469 4 -571684.797 3 24450575.983 24450573.358 24450574.942
+ 27.400 23.000
+ -1196457.886 4 -932283.016 3 24286495.044 24286494.997 24286494.066
+ 24.600 20.500
+ -7640748.899 4 -5953827.701 4 23218128.726 23218127.671 23218128.239
+ 29.000 25.900
+ -20416775.374 7 -15909163.682 7 20611714.986 20611712.877 20611714.440
+ 47.300 42.600
+ -25018811.867 7 -19495170.573 8 20137199.608 20137196.154 20137198.629
+ 42.800 48.000
+ -3860410.938 4 -3008111.622 4 23983800.431 23983796.891 23983799.933
+ 26.500 24.600
+ -19315129.702 7 -15050747.860 7 20905993.712 20905992.030 20905992.718
+ 45.500 42.600
+ 06 1 1 2 39 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13517499.772 7 -10533103.388 6 21748882.441 21748879.927 21748881.668
+ 42.800 37.400
+ -2989152.692 3 -2329199.022 1 24239700.002 24239698.062 24239699.414
+ 23.400 9.000
+ -12377128.182 7 -9644513.837 6 21323968.702 21323965.655 21323967.679
+ 45.800 41.300
+ -770754.208 4 -600587.422 3 24443517.298 24443515.160 24443516.382
+ 24.900 23.000
+ -1105355.332 3 -861294.033 2 24303831.528 24303830.752 24303831.156
+ 23.800 17.800
+ -7752070.800 4 -6040571.988 4 23196945.591 23196943.890 23196944.336
+ 29.000 25.300
+ -20353628.803 7 -15859958.553 7 20623731.218 20623729.290 20623730.751
+ 47.100 42.200
+ -25029786.001 7 -19503721.844 7 20135111.232 20135107.780 20135110.227
+ 42.700 47.900
+ -3945878.722 4 -3074709.865 4 23967536.047 23967533.337 23967535.713
+ 25.600 26.500
+ -19380847.743 7 -15101956.717 7 20893488.120 20893486.256 20893487.013
+ 45.800 42.900
+ 06 1 1 2 40 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13441455.255 7 -10473847.915 6 21763353.209 21763350.743 21763352.626
+ 42.800 37.200
+ -2891046.807 3 -2252752.899 3 24258368.649 24258367.710 24258367.869
+ 23.400 20.500
+ -12430530.020 7 -9686125.650 6 21313806.512 21313803.531 21313805.592
+ 45.900 41.400
+ -807325.853 4 -629084.813 3 24436557.880 24436555.662 24436556.768
+ 24.200 19.300
+ -1014200.234 4 -790264.112 2 24321178.409 24321177.326 24321177.412
+ 24.900 17.800
+ -7863201.546 4 -6127167.318 4 23175798.770 23175796.311 23175796.868
+ 28.600 26.200
+ -20290000.680 7 -15810378.193 7 20635839.476 20635837.197 20635838.882
+ 47.200 42.300
+ -25040205.191 7 -19511840.690 7 20133128.684 20133125.100 20133127.545
+ 42.600 47.900
+ -4031268.159 4 -3141247.052 4 23951287.821 23951283.982 23951287.302
+ 27.900 26.200
+ -19446140.091 7 -15152833.866 7 20881063.436 20881061.592 20881062.354
+ 45.800 43.000
+ 06 1 1 2 40 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13365125.580 7 -10414370.243 6 21777878.152 21777875.806 21777877.632
+ 43.100 37.400
+ -2792896.290 3 -2176272.033 3 24277045.269 24277045.515 24277044.716
+ 23.800 20.500
+ -12483700.582 7 -9727557.255 6 21303688.541 21303685.333 21303687.522
+ 45.900 41.100
+ -843375.817 4 -657175.691 3 24429697.686 24429695.627 24429696.857
+ 24.600 23.000
+ -922993.135 4 -719193.672 2 24338534.606 24338532.474 24338533.582
+ 25.900 13.900
+ -7974138.306 4 -6213611.493 4 23154687.837 23154685.566 23154686.398
+ 29.900 26.200
+ -20225893.565 7 -15760424.589 6 20648038.525 20648036.343 20648038.019
+ 47.200 41.900
+ -25050068.676 7 -19519526.520 7 20131251.584 20131248.184 20131250.549
+ 42.600 47.900
+ -4116578.678 4 -3207722.772 4 23935053.851 23935050.008 23935053.117
+ 29.200 26.500
+ -19511004.142 7 -15203377.277 7 20868720.288 20868718.407 20868719.164
+ 46.100 42.900
+ 06 1 1 2 41 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13288513.229 7 -10354672.303 6 21792457.548 21792454.638 21792456.624
+ 42.700 37.300
+ -2694704.204 3 -2099758.739 3 24295731.293 24295730.270 24295730.421
+ 23.800 18.600
+ -12536639.318 7 -9768808.216 6 21293614.509 21293611.473 21293613.553
+ 45.800 41.100
+ -878903.635 3 -684859.633 3 24422936.762 24422934.727 24422935.722
+ 22.600 19.300
+ -831734.435 4 -648083.023 2 24355900.273 24355898.211 24355899.124
+ 24.200 17.800
+ -8084876.797 4 -6299901.181 4 23133613.966 23133613.068 23133613.131
+ 29.500 26.800
+ -20161310.113 7 -15710099.812 6 20660328.567 20660326.226 20660327.880
+ 47.100 41.800
+ -25059375.278 7 -19526778.415 8 20129480.737 20129477.167 20129479.602
+ 42.400 48.000
+ -4201809.945 4 -3274136.745 4 23918835.247 23918830.865 23918834.606
+ 29.200 25.900
+ -19575437.620 7 -15253585.175 7 20856459.089 20856457.083 20856457.976
+ 46.100 43.100
+ 06 1 1 2 41 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13211620.578 7 -10294755.947 6 21807089.105 21807086.907 21807088.530
+ 42.700 37.300
+ -2596473.170 3 -2023215.180 3 24314423.730 24314423.584 24314422.825
+ 21.100 20.500
+ -12589345.600 7 -9809878.038 6 21283584.692 21283581.761 21283583.829
+ 46.000 41.200
+ -913908.362 3 -712136.062 2 24416275.728 24416273.722 24416274.939
+ 23.400 17.800
+ -740424.694 4 -576932.571 2 24373276.797 24373274.917 24373275.586
+ 27.400 17.000
+ -8195414.273 4 -6386034.221 4 23112578.961 23112578.103 23112578.395
+ 29.000 27.100
+ -20096253.007 7 -15659405.952 6 20672708.186 20672706.104 20672707.694
+ 46.800 41.800
+ -25068124.124 7 -19533595.692 7 20127815.802 20127812.291 20127814.715
+ 42.400 47.900
+ -4286961.507 4 -3340488.593 4 23902631.007 23902626.771 23902630.277
+ 28.400 24.600
+ -19639438.030 7 -15303455.615 7 20844280.182 20844278.073 20844279.021
+ 46.100 43.000
+ 06 1 1 2 42 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13134449.671 7 -10234622.769 6 21821774.617 21821771.942 21821773.760
+ 42.700 36.900
+ -2498206.190 3 -1946643.559 3 24333124.099 24333123.438 24333122.865
+ 22.100 18.600
+ -12641818.442 7 -9850765.961 6 21273599.626 21273596.501 21273598.747
+ 46.100 41.400
+ -948388.858 2 -739003.995 2 24409713.440 24409712.370 24409712.536
+ 17.800 13.900
+ -649064.436 3 -505742.763 2 24390662.272 24390659.217 24390660.593
+ 23.800 15.100
+ -8305746.878 5 -6472007.603 4 23091583.849 23091582.716 23091583.125
+ 31.300 27.400
+ -20030724.963 7 -15608345.133 6 20685177.743 20685175.738 20685177.207
+ 46.700 41.500
+ -25076313.718 7 -19539977.192 7 20126257.353 20126253.838 20126256.223
+ 42.300 47.900
+ -4372032.695 4 -3406777.829 4 23886442.879 23886438.558 23886442.007
+ 28.600 25.300
+ -19703003.083 7 -15352986.819 7 20832184.061 20832182.042 20832182.935
+ 45.900 43.000
+ 06 1 1 2 42 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13057002.793 7 -10174274.549 6 21836512.152 21836509.715 21836511.426
+ 42.600 37.100
+ -2399906.175 3 -1870046.170 2 24351829.958 24351828.514 24351828.870
+ 23.400 17.000
+ -12694057.545 7 -9891471.749 6 21263658.594 21263655.815 21263657.813
+ 46.000 41.400
+ -982344.003 3 -765462.534 2 24403252.957 24403250.372 24403251.957
+ 21.600 15.100
+ -557654.204 3 -434514.052 2 24408055.659 24408054.386 24408054.859
+ 20.500 17.000
+ -8415871.414 5 -6557818.897 4 23070628.358 23070626.484 23070627.142
+ 31.100 27.600
+ -19964728.712 7 -15556919.474 6 20697736.357 20697734.382 20697735.773
+ 46.600 41.300
+ -25083943.019 7 -19545922.100 7 20124805.406 20124802.066 20124804.339
+ 42.500 47.900
+ -4457022.927 4 -3473003.968 4 23870268.471 23870265.337 23870268.187
+ 28.400 25.300
+ -19766130.291 7 -15402176.840 7 20820171.155 20820169.548 20820170.094
+ 46.200 43.200
+ 06 1 1 2 43 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12979282.352 7 -10113713.168 6 21851301.606 21851299.228 21851301.005
+ 42.200 36.500
+ -2301575.649 3 -1793424.987 2 24370542.515 24370540.481 24370541.537
+ 22.600 15.100
+ -12746061.849 7 -9931994.577 6 21253762.536 21253759.590 21253761.746
+ 46.300 41.500
+ -1015772.916 3 -791510.996 2 24396891.495 24396889.624 24396890.599
+ 20.500 13.900
+ -466194.501 4 -363246.773 3 24425460.803 24425459.192 24425459.702
+ 24.600 19.300
+ -8525784.555 5 -6643465.440 4 23049712.504 23049710.346 23049711.248
+ 30.400 26.800
+ -19898266.888 7 -15505131.028 6 20710383.835 20710381.674 20710383.222
+ 46.600 41.400
+ -25091011.386 7 -19551429.917 7 20123460.233 20123457.005 20123459.222
+ 42.200 47.900
+ -4541932.263 4 -3539167.069 4 23854111.549 23854107.778 23854110.993
+ 26.800 25.300
+ -19828817.093 7 -15451023.690 7 20808242.481 20808240.454 20808241.381
+ 46.100 43.200
+ 06 1 1 2 43 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12901290.518 7 -10052940.305 6 21866143.422 21866140.680 21866142.473
+ 42.200 36.900
+ -2203217.601 2 -1716782.406 2 24389258.334 24389257.781 24389257.446
+ 17.000 17.000
+ -12797831.014 7 -9972334.179 6 21243911.249 21243908.321 21243910.465
+ 46.300 41.800
+ -1048674.608 3 -817148.686 9 24390630.420 24390628.173 24390629.637
+ 21.100 -3.000
+ -374685.981 3 -291941.476 3 24442874.329 24442873.293 24442872.715
+ 23.000 22.600
+ -8635482.628 5 -6728944.402 4 23028836.417 23028835.333 23028836.393
+ 31.300 26.500
+ -19831342.160 7 -15452981.881 6 20723119.261 20723117.066 20723118.623
+ 46.700 41.400
+ -25097517.867 7 -19556499.901 7 20122222.231 20122218.869 20122221.114
+ 42.400 47.900
+ -4626759.507 4 -3605266.199 4 23837969.605 23837965.461 23837968.972
+ 28.400 24.600
+ -19891061.050 7 -15499525.462 7 20796397.716 20796395.865 20796396.637
+ 46.200 43.200
+ 06 1 1 2 44 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12823029.709 7 -9991957.855 6 21881035.555 21881033.179 21881034.870
+ 42.100 36.600
+ -2104834.872 2 -1640120.639 2 24407978.972 24407978.829 24407978.122
+ 17.800 17.000
+ -12849364.085 7 -10012489.810 6 21234104.898 21234101.872 21234103.969
+ 46.100 41.800
+ -1081048.436 3 -842375.014 2 24384469.940 24384468.203 24384468.861
+ 21.600 17.000
+ -283128.880 3 -220598.347 3 24460295.208 24460295.227 24460294.220
+ 19.900 19.300
+ -8744962.299 4 -6814253.185 4 23008003.265 23008002.387 23008002.951
+ 29.900 27.100
+ -19763957.381 7 -15400474.257 6 20735941.924 20735939.965 20735941.453
+ 46.800 41.300
+ -25103461.100 7 -19561130.988 8 20121091.008 20121087.922 20121090.053
+ 42.300 48.000
+ -4711504.303 4 -3671301.117 3 23821843.232 23821839.037 23821842.487
+ 27.900 23.400
+ -19952859.838 7 -15547680.349 7 20784637.813 20784635.789 20784636.747
+ 46.200 43.200
+ 06 1 1 2 44 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12744501.829 6 -9930767.294 6 21895978.973 21895976.558 21895978.281
+ 41.900 36.100
+ -2006430.247 2 -1563441.808 2 24426705.942 24426705.035 24426705.310
+ 17.800 17.000
+ -12900660.640 7 -10052461.143 6 21224343.389 21224340.432 21224342.565
+ 46.200 41.500
+ -1112893.436 3 -867189.321 1 24378409.602 24378408.312 24378408.761
+ 19.900 11.000
+ -191523.839 4 -149217.832 3 24477727.725 24477726.604 24477727.239
+ 25.300 18.600
+ -8854219.918 5 -6899388.939 4 22987212.394 22987211.527 22987211.891
+ 31.300 28.600
+ -19696115.115 7 -15347610.145 6 20748851.893 20748849.856 20748851.320
+ 46.500 41.400
+ -25108839.891 7 -19565322.250 8 20120067.739 20120064.387 20120066.731
+ 42.400 48.000
+ -4796166.379 4 -3737271.556 4 23805732.607 23805728.475 23805731.930
+ 29.200 25.300
+ -20014211.180 7 -15595486.579 7 20772963.007 20772961.160 20772961.892
+ 46.000 43.400
+ 06 1 1 2 45 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12665709.579 6 -9869370.735 6 21910972.586 21910970.222 21910971.870
+ 41.800 36.200
+ -1908006.340 3 -1486747.874 1 24445434.458 24445434.593 24445433.970
+ 19.900 6.500
+ -12951719.712 7 -10092247.427 6 21214627.172 21214624.192 21214626.311
+ 46.100 41.800
+ -1144208.704 3 -891590.843 9 24372451.318 24372448.984 24372450.296
+ 22.100 -3.000
+ -99871.572 3 -77800.512 3 24495170.934 24495167.722 24495169.273
+ 22.600 19.300
+ -8963251.955 4 -6984348.932 4 22966465.681 22966463.223 22966463.999
+ 29.900 28.100
+ -19627818.053 7 -15294391.649 6 20761848.338 20761846.415 20761847.904
+ 46.800 41.200
+ -25113653.883 7 -19569073.412 7 20119151.864 20119148.273 20119150.812
+ 42.500 47.900
+ -4880745.007 4 -3803176.966 4 23789637.630 23789633.702 23789636.915
+ 29.700 27.100
+ -20075112.628 7 -15642942.238 7 20761373.820 20761371.955 20761372.640
+ 45.900 43.300
+ 06 1 1 2 45 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12586654.805 6 -9807769.605 6 21926016.408 21926013.663 21926015.590
+ 41.600 36.000
+ -1809566.242 3 -1410041.299 24464168.058 24464166.772 24464166.856
+ 21.100 3.000
+ -13002540.644 7 -10131848.148 6 21204956.171 21204953.169 21204955.402
+ 46.200 41.500
+ -1174993.477 4 -915578.974 24366592.998 24366590.409 24366592.060
+ 25.300 3.000
+ -8172.387 4 -6346.620 2 24512620.225 24512618.021 24512618.713
+ 24.900 17.800
+ -9072054.839 5 -7069130.350 4 22945761.320 22945758.575 22945759.636
+ 31.500 27.600
+ -19559069.091 7 -15240821.018 6 20774930.957 20774928.802 20774930.387
+ 47.000 41.100
+ -25117902.170 7 -19572383.768 7 20118343.331 20118339.809 20118342.319
+ 42.500 47.800
+ -4965239.723 4 -3869017.003 4 23773558.448 23773555.002 23773557.864
+ 29.700 27.400
+ -20135561.736 7 -15690045.418 7 20749870.354 20749868.808 20749869.409
+ 45.900 43.500
+ 06 1 1 2 46 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12507340.116 6 -9745965.954 6 21941109.285 21941106.894 21941108.595
+ 41.500 36.200
+ -1711112.495 3 -1333324.111 1 24482903.059 24482902.499 24482901.989
+ 19.300 6.500
+ -13053122.863 7 -10171262.855 7 21195330.914 21195327.906 21195329.961
+ 46.200 42.000
+ -1205246.664 4 -939152.885 1 24360835.724 24360833.358 24360834.836
+ 25.900 11.000
+ 83573.075 3 65143.292 3 24530076.895 24530076.700 24530076.842
+ 22.600 18.600
+ -9180625.645 5 -7153730.960 4 22925100.248 22925098.036 22925099.133
+ 31.600 27.600
+ -19489871.040 7 -15186900.452 6 20788098.934 20788096.787 20788098.458
+ 46.900 41.100
+ -25121583.322 7 -19575252.198 7 20117642.816 20117639.333 20117641.807
+ 42.500 47.900
+ -5049650.114 4 -3934791.317 4 23757496.634 23757492.145 23757495.657
+ 29.700 27.100
+ -20195556.175 7 -15736794.315 7 20738454.073 20738452.298 20738452.991
+ 46.100 43.600
+ 06 1 1 2 46 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12427767.588 6 -9683961.384 5 21956251.329 21956248.946 21956250.656
+ 41.600 35.800
+ -1612648.029 2 -1256598.613 1 24501638.524 24501639.353 24501638.065
+ 17.800 6.500
+ -13103466.019 7 -10210491.279 7 21185750.791 21185747.906 21185749.970
+ 46.000 42.000
+ -1234967.661 4 -962312.102 9 24355180.614 24355178.018 24355179.696
+ 26.800 -3.000
+ 175364.468 3 136669.025 2 24547544.629 24547543.605 24547544.291
+ 23.400 12.600
+ -9288960.816 5 -7238147.926 4 22904483.273 22904482.881 22904483.068
+ 30.100 29.500
+ -19420226.336 7 -15132631.845 6 20801351.985 20801349.645 20801351.325
+ 46.700 41.100
+ -25124696.580 7 -19577678.113 7 20117050.411 20117046.982 20117049.354
+ 42.400 47.900
+ -5133975.539 5 -4000499.439 4 23741449.875 23741445.489 23741449.279
+ 31.000 28.100
+ -20255093.560 7 -15783187.071 7 20727124.530 20727122.622 20727123.436
+ 46.300 43.500
+ 06 1 1 2 47 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12347939.347 6 -9621757.560 6 21971442.073 21971439.848 21971441.342
+ 41.300 36.000
+ -1514175.570 3 -1179866.962 1 24520378.578 24520378.274 24520377.023
+ 18.600 9.000
+ -13153569.086 7 -10249532.618 7 21176216.612 21176213.482 21176215.684
+ 46.100 42.000
+ -1264155.952 4 -985056.246 2 24349625.474 24349623.138 24349624.439
+ 24.600 12.600
+ 267201.415 3 208230.296 1 24565020.898 24565019.014 24565019.733
+ 22.100 9.000
+ -9397057.069 5 -7322378.705 4 22883912.981 22883912.687 22883913.047
+ 32.000 27.400
+ -19350137.865 7 -15078017.442 6 20814689.237 20814687.029 20814688.700
+ 46.500 41.000
+ -25127241.697 7 -19579661.319 7 20116566.040 20116562.578 20116565.027
+ 42.300 47.700
+ -5218215.546 5 -4066140.999 4 23725419.251 23725415.250 23725418.649
+ 31.000 28.600
+ -20314171.562 7 -15829221.869 7 20715882.335 20715880.534 20715881.212
+ 46.200 43.600
+ 06 1 1 2 47 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12267857.826 6 -9559356.375 5 21986681.084 21986678.983 21986680.493
+ 41.400 35.900
+ -1415697.953 3 -1103131.147 1 24539118.605 24539118.134 24539117.553
+ 19.300 11.000
+ -13203431.422 7 -10288386.380 7 21166728.183 21166725.023 21166727.298
+ 46.400 42.200
+ -1292810.706 4 -1007384.620 2 24344172.968 24344170.759 24344172.162
+ 25.600 17.800
+ 359083.379 3 279826.613 1 24582505.207 24582503.829 24582503.799
+ 22.600 11.000
+ -9504911.130 5 -7406420.796 4 22863389.869 22863388.325 22863389.026
+ 31.300 27.600
+ -19279608.306 7 -15023059.339 6 20828110.413 20828108.360 20828109.898
+ 46.200 40.500
+ -25129217.532 7 -19581200.928 7 20116189.964 20116186.535 20116188.943
+ 42.400 47.700
+ -5302369.489 4 -4131715.489 4 23709404.803 23709401.108 23709404.441
+ 29.500 25.600
+ -20372787.802 7 -15874896.849 7 20704728.340 20704726.234 20704727.226
+ 46.700 43.800
+ 06 1 1 2 48 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -12187525.199 6 -9496759.523 5 22001967.939 22001965.516 22001967.271
+ 41.300 35.600
+ -13253052.198 7 -10327051.922 7 21157285.586 21157282.552 21157284.660
+ 46.200 42.400
+ -1320931.053 4 -1029296.605 2 24338821.642 24338819.568 24338820.655
+ 26.200 16.100
+ 451009.764 4 351457.458 2 24599998.947 24599996.847 24599997.971
+ 24.200 13.900
+ -9612518.954 5 -7490271.000 4 22842913.016 22842911.583 22842911.955
+ 31.300 29.000
+ -19208640.556 7 -14967759.789 6 20841615.263 20841613.116 20841614.651
+ 46.100 40.600
+ -25130623.152 7 -19582296.218 7 20115922.656 20115919.058 20115921.662
+ 42.400 47.600
+ -5386436.974 4 -4197222.633 4 23693407.511 23693403.304 23693406.831
+ 28.600 24.900
+ -20430939.918 7 -15920210.183 7 20693662.274 20693660.251 20693661.202
+ 46.600 43.900
+ 06 1 1 2 48 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -12106943.742 6 -9433968.780 5 22017302.334 22017299.923 22017301.546
+ 41.100 35.900
+ -13302430.408 7 -10365528.440 7 21147889.262 21147886.219 21147888.266
+ 46.100 42.200
+ -1348516.081 4 -1050791.421 2 24333572.899 24333570.467 24333571.698
+ 27.600 17.800
+ 542980.040 4 423122.596 2 24617499.847 24617497.993 24617499.290
+ 25.300 12.600
+ -9719877.358 5 -7573926.894 4 22822483.683 22822481.789 22822482.842
+ 32.800 28.600
+ -19137237.255 7 -14912120.850 6 20855202.584 20855200.640 20855202.198
+ 46.100 40.600
+ -25131458.118 7 -19582946.842 7 20115763.638 20115760.199 20115762.691
+ 42.400 47.800
+ -5470417.349 4 -4262661.876 4 23677427.223 23677422.389 23677426.410
+ 29.700 25.600
+ -20488625.670 7 -15965160.110 7 20682684.899 20682682.980 20682683.882
+ 46.600 44.000
+ 06 1 1 2 49 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -12026115.635 6 -9370985.837 5 22032683.127 22032680.948 22032682.524
+ 41.000 35.700
+ -13351565.979 7 -10403815.893 7 21138539.141 21138535.948 21138538.182
+ 46.300 42.400
+ -1375565.507 4 -1071868.885 3 24328425.427 24328423.299 24328424.637
+ 26.500 19.900
+ 634993.865 4 494821.713 2 24635010.402 24635008.352 24635008.774
+ 25.600 12.600
+ -9826983.025 5 -7657385.850 4 22802102.087 22802100.040 22802101.337
+ 33.400 27.900
+ -19065401.070 7 -14856144.594 6 20868872.826 20868870.599 20868872.264
+ 46.000 40.300
+ -25131721.766 7 -19583152.282 7 20115713.495 20115710.048 20115712.450
+ 42.500 47.600
+ -5554309.961 4 -4328032.741 4 23661462.199 23661458.284 23661461.730
+ 28.600 25.600
+ -20545842.732 7 -16009744.827 7 20671796.793 20671794.979 20671795.742
+ 46.600 44.200
+ 06 1 1 2 49 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11945042.992 6 -9307812.345 5 22048110.981 22048108.439 22048110.138
+ 40.800 35.700
+ -13400457.895 7 -10441913.478 7 21129235.210 21129232.092 21129234.266
+ 46.200 42.600
+ -1402078.638 3 -1092528.494 4 24323379.962 24323378.413 24323378.978
+ 23.400 26.200
+ 727050.689 3 566554.297 2 24652528.550 24652526.910 24652526.744
+ 22.100 15.100
+ -9933831.883 5 -7740644.670 4 22781769.796 22781767.480 22781768.515
+ 31.500 29.200
+ -18993134.901 7 -14799833.291 6 20882624.405 20882622.395 20882623.987
+ 46.000 40.300
+ -25131413.057 7 -19582911.730 7 20115772.182 20115768.773 20115771.254
+ 42.600 47.700
+ -5638114.300 5 -4393334.808 4 23645515.431 23645511.076 23645514.876
+ 30.600 27.100
+ -20602588.625 7 -16053962.399 7 20660998.527 20660996.609 20660997.449
+ 46.800 44.100
+ 06 1 1 2 50 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11863727.895 6 -9244449.943 5 22063585.147 22063582.301 22063584.084
+ 40.800 35.700
+ -13449105.741 7 -10479820.882 7 21119977.947 21119974.814 21119976.985
+ 46.100 42.700
+ -1428054.844 4 -1112769.665 4 24318437.073 24318435.111 24318436.220
+ 25.900 25.900
+ 819150.303 2 638320.147 1 24670054.043 24670052.218 24670053.033
+ 17.800 11.000
+ -10040421.045 5 -7823701.126 4 22761486.243 22761484.381 22761485.145
+ 32.100 29.500
+ -18920441.480 7 -14743189.064 6 20896457.780 20896455.581 20896457.209
+ 46.100 40.600
+ -25130530.893 7 -19582224.328 7 20115940.096 20115936.591 20115939.159
+ 42.500 47.600
+ -5721830.149 5 -4458567.949 4 23629584.288 23629580.082 23629583.759
+ 31.500 27.600
+ -20658861.160 7 -16097811.118 7 20650290.363 20650288.180 20650289.222
+ 46.800 44.000
+ 06 1 1 2 50 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11782172.985 6 -9180900.666 5 22079104.095 22079101.586 22079103.407
+ 40.700 34.800
+ -13497508.691 7 -10517537.449 7 21110766.954 21110763.966 21110766.088
+ 46.000 42.700
+ -1453493.561 4 -1132592.008 3 24313596.233 24313593.922 24313595.298
+ 26.800 23.400
+ 911291.942 3 710118.801 2 24687587.500 24687586.251 24687586.599
+ 22.600 15.100
+ -10146746.906 5 -7906552.381 5 22741252.366 22741251.224 22741251.821
+ 31.800 30.200
+ -18847323.548 7 -14686214.050 6 20910371.681 20910369.409 20910371.082
+ 46.100 40.300
+ -25129074.712 7 -19581089.644 7 20116217.176 20116213.744 20116216.114
+ 42.100 47.700
+ -5805456.572 5 -4523731.389 4 23613671.277 23613666.855 23613670.646
+ 31.500 28.400
+ -20714657.920 7 -16141289.106 7 20639672.594 20639670.376 20639671.547
+ 46.800 44.100
+ 06 1 1 2 51 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11700380.357 6 -9117166.142 5 22094668.495 22094666.274 22094667.902
+ 40.500 34.900
+ -13545665.961 7 -10555062.588 7 21101603.086 21101599.908 21101602.183
+ 46.400 42.700
+ -1478393.794 4 -1151994.755 4 24308857.827 24308855.828 24308857.046
+ 27.600 25.600
+ 1003475.123 3 781949.834 2 24705129.810 24705128.649 24705128.502
+ 20.500 15.100
+ -10252805.721 5 -7989195.564 5 22721069.749 22721068.718 22721069.454
+ 32.100 30.600
+ -18773783.792 7 -14628910.345 6 20924365.755 20924363.503 20924365.234
+ 46.200 40.200
+ -25127044.108 7 -19579507.350 7 20116603.336 20116600.277 20116602.456
+ 42.300 47.600
+ -5888993.269 5 -4588824.904 4 23597774.769 23597770.563 23597774.149
+ 31.500 28.100
+ -20769976.831 7 -16184394.748 7 20629145.696 20629143.588 20629144.589
+ 46.800 44.200
+ 06 1 1 2 51 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11618352.087 6 -9053248.009 5 22110278.210 22110275.543 22110277.371
+ 40.400 34.400
+ -13593576.789 7 -10592395.692 7 21092485.706 21092482.789 21092484.965
+ 46.200 42.700
+ -1502755.090 4 -1170977.581 4 24304221.876 24304219.827 24304220.912
+ 27.100 25.900
+ 1095699.405 3 853812.867 2 24722679.972 24722678.005 24722678.522
+ 19.900 12.600
+ -10358594.466 5 -8071628.306 4 22700939.224 22700937.682 22700938.619
+ 33.600 29.500
+ -18699825.076 7 -14571280.171 6 20938439.442 20938437.418 20938438.966
+ 46.000 40.100
+ -25124438.249 7 -19577476.810 7 20117099.427 20117096.152 20117098.474
+ 42.400 47.700
+ -5972439.635 5 -4653848.059 4 23581894.684 23581890.935 23581894.231
+ 30.600 27.600
+ -20824815.378 7 -16227126.075 7 20618710.199 20618708.137 20618709.101
+ 46.700 44.100
+ 06 1 1 2 52 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11536090.521 6 -8989148.084 5 22125932.093 22125929.725 22125931.299
+ 40.300 34.700
+ -13641240.534 7 -10629536.264 7 21083415.682 21083412.789 21083414.882
+ 46.200 43.000
+ -1526576.838 4 -1189540.014 4 24299689.008 24299686.860 24299688.118
+ 29.000 25.900
+ 1187964.257 3 925707.518 1 24740236.841 24740235.434 24740235.844
+ 19.300 11.000
+ -10464109.503 5 -8153847.784 4 22680861.219 22680858.833 22680859.796
+ 33.500 28.800
+ -18625450.108 7 -14513325.647 6 20952592.723 20952590.525 20952592.193
+ 46.100 40.000
+ -25121256.464 7 -19574997.499 7 20117704.916 20117701.566 20117703.945
+ 42.400 47.700
+ -6055795.250 5 -4718800.477 4 23566033.499 23566029.097 23566032.884
+ 31.600 28.100
+ -20879171.109 7 -16269481.179 7 20608366.222 20608364.600 20608365.198
+ 46.500 44.100
+ 06 1 1 2 52 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11453597.630 6 -8924867.917 5 22141629.440 22141627.466 22141628.914
+ 40.300 35.300
+ -13688656.349 7 -10666483.646 7 21074392.805 21074389.641 21074391.897
+ 46.300 42.800
+ -1549858.789 4 -1207681.775 4 24295258.061 24295256.194 24295257.286
+ 26.200 24.200
+ 1280269.336 3 997633.546 2 24757802.605 24757801.038 24757801.387
+ 18.600 15.100
+ -10569347.474 5 -8235851.364 4 22660834.467 22660832.495 22660833.325
+ 32.300 28.400
+ -18550661.682 7 -14455048.948 6 20966824.166 20966822.394 20966823.730
+ 45.800 40.200
+ -25117498.144 7 -19572068.936 7 20118420.242 20118416.707 20118419.192
+ 42.500 47.600
+ -6139059.328 5 -4783681.565 4 23550189.034 23550184.308 23550188.286
+ 32.300 27.600
+ -20933042.153 7 -16311458.609 7 20598115.312 20598113.334 20598114.133
+ 46.700 44.300
+ 06 1 1 2 53 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11370875.729 6 -8860409.286 5 22157371.703 22157368.882 22157370.717
+ 40.000 34.900
+ -13735823.206 7 -10703237.040 7 21065417.192 21065414.014 21065416.308
+ 46.300 42.700
+ -1572600.270 4 -1225402.374 3 24290930.910 24290928.569 24290929.918
+ 26.200 23.800
+ 1372614.028 3 1069590.398 3 24775374.918 24775373.562 24775373.723
+ 19.900 20.500
+ -10674305.038 5 -8317636.463 4 22640861.534 22640859.501 22640860.909
+ 33.900 28.400
+ -18475462.639 7 -14396452.294 6 20981134.184 20981132.319 20981133.698
+ 45.700 40.000
+ -25113162.737 7 -19568690.696 7 20119245.210 20119241.738 20119244.184
+ 42.300 47.500
+ -6222231.046 5 -4848490.689 4 23534361.417 23534357.263 23534360.829
+ 30.100 27.400
+ -20986426.223 7 -16353056.579 7 20587956.293 20587954.642 20587955.266
+ 46.600 44.300
+ 06 1 1 2 53 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11287926.829 6 -8795773.788 5 22173155.787 22173153.845 22173155.196
+ 40.300 34.800
+ -13782741.184 7 -10739796.495 7 21056488.857 21056485.888 21056488.076
+ 46.300 42.900
+ -1594800.816 4 -1242701.492 4 24286705.500 24286704.119 24286704.637
+ 24.600 24.900
+ 1464998.100 2 1141577.861 3 24792954.779 24792954.060 24792953.270
+ 16.100 20.500
+ -10778978.240 5 -8399199.967 4 22620943.508 22620941.140 22620942.276
+ 33.100 29.700
+ -18399855.687 7 -14337537.786 6 20995521.741 20995519.889 20995521.252
+ 45.700 40.200
+ -25108249.675 7 -19564862.338 7 20120180.075 20120176.655 20120179.086
+ 42.700 47.400
+ -6305310.307 4 -4913227.772 4 23518551.441 23518548.143 23518550.842
+ 29.500 27.100
+ -21039320.907 7 -16394273.209 7 20577890.829 20577889.092 20577889.754
+ 46.700 44.300
+ 06 1 1 2 54 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11204753.485 6 -8730963.391 5 22188983.416 22188981.223 22188982.666
+ 40.300 34.900
+ -13829409.140 7 -10776161.122 7 21047608.251 21047605.372 21047607.372
+ 46.100 43.200
+ -1616460.011 3 -1259578.795 4 24282584.856 24282582.626 24282583.633
+ 23.800 26.800
+ 1557420.881 3 1213595.581 1 24810542.569 24810541.017 24810541.405
+ 21.600 9.000
+ -10883364.288 5 -8480539.703 4 22601079.158 22601076.988 22601078.306
+ 34.100 29.900
+ -18323843.608 7 -14278307.596 6 21009986.578 21009984.515 21009985.991
+ 45.500 40.200
+ -25102758.315 7 -19560583.356 7 20121225.140 20121221.568 20121224.115
+ 42.800 47.400
+ -6388296.407 5 -4977892.265 4 23502760.056 23502756.222 23502759.406
+ 30.200 27.100
+ -21091724.023 7 -16435106.804 7 20567918.965 20567916.942 20567917.842
+ 46.500 44.200
+ 06 1 1 2 54 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11121357.613 6 -8665979.595 5 22204852.748 22204850.826 22204852.198
+ 40.200 34.700
+ -13875826.245 7 -10812330.286 7 21038775.418 21038772.488 21038774.516
+ 46.100 43.300
+ -1637577.579 3 -1276034.008 4 24278564.996 24278564.317 24278564.203
+ 21.100 28.600
+ 1649881.919 3 1285643.199 9 24828137.663 24828135.696 24828135.850
+ 21.100 -3.000
+ -10987459.074 5 -8561652.524 5 22581270.867 22581268.596 22581269.739
+ 33.800 30.600
+ -18247429.241 7 -14218763.930 6 21024527.741 21024525.670 21024527.241
+ 45.700 40.000
+ -25096688.216 7 -19555853.408 7 20122380.215 20122376.632 20122379.097
+ 42.400 47.300
+ -6471188.977 5 -5042483.881 4 23486986.206 23486982.235 23486985.447
+ 32.300 27.400
+ -21143633.364 7 -16475555.636 7 20558040.888 20558038.964 20558039.781
+ 46.500 44.400
+ 06 1 1 2 55 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -11037741.490 6 -8600824.174 5 22220764.775 22220762.424 22220764.054
+ 40.300 34.600
+ -13921991.974 7 -10848303.572 7 21029990.434 21029987.446 21029989.478
+ 46.100 43.400
+ -1658152.888 4 -1292066.730 4 24274650.614 24274648.839 24274649.885
+ 24.600 28.600
+ -11091259.862 5 -8642536.197 5 22561516.552 22561515.930 22561516.687
+ 34.100 31.000
+ -18170615.233 7 -14158908.858 6 21039144.877 21039142.765 21039144.423
+ 45.600 39.600
+ -25090038.839 7 -19550672.076 7 20123645.272 20123642.031 20123644.317
+ 42.600 47.200
+ -6553987.070 5 -5107001.881 4 23471230.305 23471226.495 23471229.735
+ 32.400 29.500
+ -21195046.669 7 -16515617.953 7 20548257.294 20548255.372 20548256.206
+ 46.600 44.700
+ 06 1 1 2 55 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10953907.112 6 -8535498.684 5 22236717.692 22236715.526 22236717.058
+ 39.900 34.400
+ -13967905.751 7 -10884080.535 7 21021253.065 21021250.263 21021252.343
+ 46.300 43.200
+ -1678185.670 4 -1307676.671 4 24270838.517 24270836.354 24270837.819
+ 24.600 25.600
+ -11194762.618 5 -8723187.660 5 22541821.978 22541819.951 22541820.956
+ 35.500 30.200
+ -18093404.475 7 -14098744.632 6 21053837.612 21053835.508 21053837.081
+ 45.500 39.700
+ -25082809.664 7 -19545038.951 7 20125020.976 20125017.600 20125019.966
+ 42.700 47.100
+ -6636690.231 5 -5171445.884 4 23455492.843 23455488.419 23455492.108
+ 32.400 29.900
+ -21245961.623 7 -16555291.934 7 20538568.572 20538566.735 20538567.475
+ 46.600 44.700
+ 06 1 1 2 56 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10869856.846 6 -8470004.970 5 22252712.400 22252709.961 22252711.400
+ 39.800 34.800
+ -14013566.675 7 -10919660.471 7 21012564.301 21012561.240 21012563.417
+ 46.100 43.300
+ -1697675.546 3 -1322863.591 4 24267129.632 24267127.637 24267128.740
+ 22.600 25.900
+ -11297963.857 5 -8803604.202 4 22522183.343 22522181.163 22522182.178
+ 34.100 29.900
+ -18015799.605 7 -14038273.306 6 21068605.234 21068603.129 21068604.696
+ 45.200 39.500
+ -25075000.238 7 -19538953.682 7 20126507.155 20126503.606 20126506.110
+ 42.500 47.000
+ -6719297.987 5 -5235815.563 5 23439772.574 23439768.733 23439771.982
+ 32.700 30.400
+ -21296376.101 7 -16594575.939 7 20528975.045 20528973.066 20528973.973
+ 47.000 44.700
+ 06 1 1 2 56 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10785592.697 6 -8404344.597 5 22268746.668 22268744.811 22268746.163
+ 39.400 34.800
+ -14058973.929 7 -10955042.738 7 21003923.515 21003920.479 21003922.659
+ 46.200 43.300
+ -1716622.105 3 -1337627.158 4 24263524.105 24263522.366 24263523.217
+ 22.100 25.600
+ -11400860.485 5 -8883783.372 5 22502601.720 22502600.660 22502601.465
+ 34.600 30.200
+ -17937803.571 7 -13977497.175 6 21083447.420 21083445.263 21083446.875
+ 45.300 39.300
+ -25066610.112 7 -19532415.923 7 20128103.874 20128100.317 20128102.829
+ 42.700 47.100
+ -6801809.738 5 -5300110.425 5 23424070.873 23424067.442 23424070.515
+ 31.800 30.200
+ -21346288.085 7 -16633468.392 7 20519477.144 20519475.083 20519476.032
+ 46.800 44.400
+ 06 1 1 2 57 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10701116.936 6 -8338519.337 5 22284822.279 22284820.044 22284821.465
+ 39.300 34.700
+ -14104126.640 7 -10990226.674 7 20995331.452 20995328.293 20995330.472
+ 46.100 43.500
+ -1735024.918 3 -1351966.973 3 24260022.220 24260020.309 24260021.325
+ 21.100 23.800
+ -11503448.846 5 -8963722.314 5 22483080.309 22483078.810 22483079.505
+ 35.100 31.100
+ -17859419.035 7 -13916418.314 6 21098363.349 21098361.310 21098362.908
+ 45.200 39.100
+ -25057638.377 7 -19525424.960 7 20129811.211 20129807.652 20129810.142
+ 42.800 47.100
+ -6884224.772 5 -5364329.921 5 23408388.452 23408384.374 23408387.705
+ 33.000 30.400
+ -21395695.318 7 -16671967.537 7 20510075.353 20510073.220 20510074.142
+ 46.700 44.600
+ 06 1 1 2 57 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10616431.628 6 -8272530.781 5 22300937.232 22300935.151 22300936.465
+ 38.800 34.600
+ -14149024.107 7 -11025211.709 7 20986787.584 20986784.570 20986786.746
+ 46.400 43.500
+ -1752883.597 3 -1365882.811 4 24256623.622 24256621.896 24256622.501
+ 19.300 25.300
+ -11605725.641 5 -9043418.491 5 22463617.480 22463616.272 22463616.751
+ 34.400 31.100
+ -17780648.851 7 -13855038.952 6 21113352.833 21113350.873 21113352.404
+ 45.100 39.000
+ -25048085.299 7 -19517981.001 7 20131629.045 20131625.523 20131628.001
+ 42.900 47.100
+ -6966542.485 5 -5428473.591 5 23392723.564 23392719.938 23392722.861
+ 32.000 30.400
+ -21444595.493 7 -16710071.564 7 20500769.596 20500767.944 20500768.614
+ 46.700 44.800
+ 06 1 1 2 58 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10531538.976 6 -8206380.684 5 22317091.481 22317089.312 22317090.934
+ 38.800 33.900
+ -14193665.747 7 -11059997.400 7 20978292.585 20978289.614 20978291.730
+ 46.300 43.800
+ -1770198.068 4 -1379374.568 3 24253328.912 24253326.963 24253328.036
+ 24.600 23.800
+ -11707687.593 5 -9122869.326 5 22444214.211 22444213.464 22444214.015
+ 34.800 31.100
+ -17701495.752 7 -13793361.212 6 21128415.401 21128413.173 21128414.817
+ 44.900 39.000
+ -25037950.344 7 -19510083.635 7 20133557.511 20133554.158 20133556.576
+ 42.900 47.100
+ -7048762.539 5 -5492541.153 5 23377078.044 23377074.009 23377077.397
+ 33.000 30.600
+ -21492986.582 7 -16747778.904 7 20491561.116 20491559.357 20491560.041
+ 46.900 44.800
+ 06 1 1 2 58 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10446441.070 6 -8140070.613 5 22333285.360 22333283.136 22333284.576
+ 38.800 34.000
+ -14238051.024 7 -11094583.326 7 20969846.481 20969843.355 20969845.535
+ 46.100 43.800
+ -1786968.098 4 -1392442.180 3 24250137.980 24250136.030 24250137.124
+ 24.600 23.800
+ -11809330.703 5 -9202071.713 5 22424873.046 22424871.281 22424872.096
+ 35.100 31.000
+ -17621962.541 7 -13731387.286 6 21143549.831 21143547.917 21143549.383
+ 44.800 39.000
+ -25027232.540 7 -19501732.098 7 20135596.968 20135593.732 20135596.031
+ 42.900 47.100
+ -7130884.085 5 -5556531.958 4 23361450.351 23361446.416 23361449.681
+ 32.800 28.600
+ -21540866.521 7 -16785087.946 7 20482449.926 20482448.044 20482448.911
+ 46.800 44.600
+ 06 1 1 2 59 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10361139.863 6 -8073602.153 5 22349517.312 22349515.604 22349516.836
+ 38.900 34.300
+ -14282178.745 7 -11128968.566 7 20961449.241 20961446.063 20961448.322
+ 46.300 43.900
+ -1803193.639 3 -1405085.442 3 24247050.057 24247048.263 24247049.020
+ 22.100 22.600
+ -11910652.338 5 -9281023.608 5 22405591.376 22405590.196 22405590.810
+ 34.100 30.800
+ -17542052.009 7 -13669119.340 6 21158756.544 21158754.313 21158755.905
+ 44.700 38.900
+ -25015932.608 7 -19492926.955 7 20137747.280 20137744.067 20137746.335
+ 42.900 47.200
+ -7212906.498 5 -5620445.535 4 23345841.919 23345837.471 23345841.330
+ 32.600 26.500
+ -21588233.051 7 -16821996.937 7 20473436.562 20473434.553 20473435.435
+ 47.000 44.700
+ 06 1 1 2 59 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10275637.821 6 -8006977.182 5 22365788.303 22365785.627 22365787.459
+ 38.700 33.100
+ -14326048.209 7 -11163152.559 7 20953101.001 20953098.076 20953100.142
+ 46.200 44.000
+ -1818874.318 3 -1417304.152 3 24244065.360 24244064.185 24244064.430
+ 22.600 23.800
+ -12011648.471 5 -9359721.864 5 22386373.561 22386371.720 22386372.415
+ 35.600 31.800
+ -17461766.862 7 -13606559.484 6 21174034.192 21174032.158 21174033.623
+ 44.800 39.000
+ -25004049.814 7 -19483667.635 7 20140008.625 20140005.283 20140007.608
+ 42.700 47.100
+ -7294829.343 5 -5684281.525 4 23330252.344 23330248.060 23330251.819
+ 33.100 26.500
+ -21635084.141 7 -16858504.278 7 20464521.062 20464519.176 20464519.915
+ 46.900 45.100
+ 06 1 1 3 0 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10189936.738 6 -7940197.124 5 22382096.331 22382094.344 22382095.693
+ 39.100 33.100
+ -14369658.856 7 -11197134.871 7 20944801.991 20944799.309 20944801.131
+ 45.900 44.100
+ -1834009.943 3 -1429098.117 3 24241185.986 24241183.870 24241185.280
+ 23.800 23.400
+ -12112315.723 5 -9438163.846 5 22367217.263 22367215.377 22367216.156
+ 35.300 32.400
+ -17381109.933 7 -13543709.932 6 21189382.835 21189380.745 21189382.249
+ 44.900 38.900
+ -24991583.553 7 -19473953.666 7 20142380.995 20142377.523 20142379.900
+ 43.200 47.100
+ -7376651.718 5 -5748039.232 4 23314682.153 23314677.936 23314681.670
+ 33.500 26.800
+ -21681417.529 7 -16894608.214 7 20455704.046 20455702.220 20455702.957
+ 46.800 45.000
+ 06 1 1 3 0 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10104039.017 6 -7873263.827 5 22398442.118 22398439.923 22398441.537
+ 38.800 33.000
+ -14413009.950 7 -11230914.933 7 20936552.853 20936549.739 20936551.783
+ 46.000 44.100
+ -1848600.242 4 -1440467.173 4 24238409.631 24238407.703 24238408.743
+ 26.800 26.800
+ -12212650.648 5 -9516346.896 5 22348123.865 22348122.356 22348122.858
+ 35.500 32.000
+ -17300084.125 7 -13480572.942 6 21204801.642 21204799.411 21204800.991
+ 45.100 39.100
+ -24978533.684 7 -19463784.937 7 20144864.388 20144860.821 20144863.263
+ 43.000 47.000
+ -7458373.360 5 -5811718.439 4 23299131.577 23299127.354 23299130.673
+ 33.500 28.100
+ -21727231.128 7 -16930307.117 7 20446985.911 20446984.054 20446984.798
+ 46.700 44.900
+ 06 1 1 3 1 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10017946.533 6 -7806178.773 5 22414824.981 22414822.808 22414824.302
+ 38.500 33.400
+ -14456100.515 7 -11264491.990 7 20928352.680 20928349.775 20928351.875
+ 45.800 44.200
+ -1862644.736 3 -1451410.932 3 24235736.289 24235735.217 24235735.214
+ 19.300 22.100
+ -12312649.721 5 -9594268.227 5 22329094.113 22329092.726 22329093.568
+ 35.300 31.500
+ -17218691.957 7 -13417150.470 6 21220289.977 21220287.721 21220289.395
+ 45.100 38.500
+ -24964899.547 7 -19453160.934 7 20147458.786 20147455.215 20147457.769
+ 43.200 46.800
+ -7539993.651 5 -5875318.643 5 23283599.453 23283595.667 23283598.809
+ 33.400 31.100
+ -21772522.858 7 -16965599.376 7 20438367.255 20438365.340 20438366.175
+ 46.800 44.900
+ 06 1 1 3 1 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9931661.477 6 -7738943.668 5 22431244.777 22431242.774 22431244.042
+ 38.600 33.800
+ -14498930.047 7 -11297865.633 7 20920202.698 20920199.590 20920201.798
+ 46.100 44.100
+ -1876143.728 3 -1461929.648 3 24233168.226 24233166.169 24233167.155
+ 22.100 19.900
+ -12412309.700 6 -9671925.350 5 22310129.630 22310128.289 22310129.213
+ 36.500 32.700
+ -17136936.309 7 -13353444.766 6 21235847.420 21235845.294 21235846.951
+ 44.900 38.400
+ -24950681.587 7 -19442082.006 7 20150164.565 20150160.709 20150163.438
+ 43.100 46.600
+ -7621511.827 5 -5938839.304 5 23268086.982 23268082.992 23268086.435
+ 34.400 30.800
+ -21817290.881 7 -17000483.548 7 20429848.105 20429846.381 20429847.080
+ 46.900 45.200
+ 06 1 1 3 2 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9845185.885 6 -7671560.098 5 22447700.409 22447698.131 22447699.750
+ 38.200 33.000
+ -14541497.588 7 -11331035.135 7 20912102.340 20912099.159 20912101.468
+ 46.100 44.200
+ -1889097.130 3 -1472023.226 3 24230703.351 24230701.355 24230702.691
+ 23.800 22.600
+ -12511627.542 6 -9749315.855 5 22291230.402 22291228.584 22291229.519
+ 36.100 32.600
+ -17054820.095 7 -13289458.101 6 21251473.664 21251471.580 21251473.128
+ 44.600 38.600
+ -24935879.454 7 -19430547.875 7 20152981.156 20152977.432 20152980.124
+ 43.200 46.600
+ -7702927.200 5 -6002279.855 5 23252593.902 23252590.200 23252593.345
+ 33.900 30.800
+ -21861533.164 7 -17034958.053 7 20421429.147 20421427.375 20421428.039
+ 47.000 45.400
+ 06 1 1 3 2 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9758521.810 6 -7604029.645 5 22464192.230 22464189.952 22464191.497
+ 38.100 33.200
+ -14583802.858 7 -11364000.278 7 20904051.800 20904048.755 20904050.918
+ 45.900 44.400
+ -1901504.827 3 -1481691.536 3 24228342.416 24228339.517 24228341.445
+ 23.400 19.300
+ -12610598.893 6 -9826436.371 5 22272396.802 22272394.908 22272396.096
+ 36.600 32.700
+ -16972345.902 7 -13225192.500 6 21267167.817 21267165.890 21267167.340
+ 44.400 38.400
+ -24920492.804 7 -19418558.279 7 20155909.023 20155905.509 20155907.961
+ 43.000 46.600
+ -7784239.215 5 -6065639.853 5 23237120.777 23237116.797 23237120.164
+ 33.000 30.800
+ -21905247.389 7 -17069021.082 7 20413110.653 20413108.828 20413109.553
+ 46.900 45.400
+ 06 1 1 3 3 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9671671.525 6 -7536354.104 5 22480719.016 22480716.959 22480718.447
+ 38.400 32.700
+ -14625844.670 7 -11396760.134 7 20896051.518 20896048.560 20896050.702
+ 45.900 44.300
+ -1913366.733 3 -1490934.562 4 24226084.317 24226083.180 24226083.575
+ 19.300 24.200
+ -12709220.876 6 -9903284.645 5 22253629.874 22253627.741 22253628.883
+ 36.700 33.200
+ -16889516.508 7 -13160650.118 6 21282929.790 21282927.669 21282929.233
+ 44.300 38.100
+ -24904521.519 7 -19406113.120 7 20158948.189 20158944.805 20158947.184
+ 43.100 46.600
+ -7865447.187 5 -6128918.774 5 23221667.318 23221663.570 23221666.780
+ 33.400 30.200
+ -21948431.653 7 -17102671.155 7 20404893.099 20404891.048 20404891.904
+ 46.800 45.400
+ 06 1 1 3 3 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9584636.889 6 -7468534.904 5 22497281.214 22497278.862 22497280.646
+ 37.800 32.100
+ -14667622.185 7 -11429314.027 7 20888101.623 20888098.683 20888100.709
+ 46.000 44.500
+ -1924682.723 4 -1499752.255 3 24223931.658 24223929.880 24223930.552
+ 24.600 23.800
+ -12807490.365 5 -9979858.246 5 22234929.767 22234927.760 22234928.603
+ 35.600 32.800
+ -16806334.957 7 -13095833.323 6 21298758.907 21298756.642 21298758.248
+ 43.900 38.000
+ -24887965.392 7 -19393212.242 7 20162098.751 20162095.387 20162097.706
+ 43.100 46.600
+ -7946550.447 5 -6192116.116 5 23206234.503 23206229.983 23206233.719
+ 34.600 30.400
+ -21991084.034 7 -17135906.770 7 20396776.631 20396774.695 20396775.432
+ 46.800 45.500
+ 06 1 1 3 4 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9497420.118 6 -7400573.783 5 22513878.455 22513875.731 22513877.503
+ 37.700 32.600
+ -14709135.153 7 -11461661.783 7 20880201.896 20880198.978 20880201.008
+ 46.000 44.700
+ -1935452.882 3 -1508144.586 4 24221882.428 24221880.392 24221881.379
+ 23.400 24.900
+ -12905403.651 6 -10056154.306 5 22216297.320 22216295.445 22216296.440
+ 36.800 32.100
+ -16722803.636 7 -13030743.985 6 21314654.313 21314652.074 21314653.748
+ 44.000 37.600
+ -24870824.136 7 -19379855.419 7 20165360.679 20165357.152 20165359.678
+ 43.400 46.500
+ -8027548.507 5 -6255231.482 5 23190820.735 23190816.743 23190820.295
+ 35.200 30.600
+ -22033202.305 7 -17168726.195 7 20388761.627 20388759.796 20388760.557
+ 46.800 45.600
+ 06 1 1 3 4 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9410023.024 6 -7332472.152 5 22530509.325 22530506.913 22530508.683
+ 37.300 32.000
+ -14750381.727 7 -11493801.961 7 20872353.027 20872349.838 20872352.052
+ 45.900 44.400
+ -1945677.293 3 -1516111.646 4 24219936.460 24219934.912 24219935.547
+ 22.600 25.900
+ -13002957.513 6 -10132170.298 5 22197732.987 22197731.571 22197732.224
+ 36.000 33.200
+ -16638925.610 7 -12965384.486 6 21330615.752 21330613.608 21330615.155
+ 44.100 37.700
+ -24853097.830 7 -19366042.712 7 20168733.967 20168730.383 20168732.995
+ 43.300 46.500
+ -8108440.977 5 -6318264.572 5 23175427.477 23175423.532 23175426.774
+ 34.300 30.800
+ -22074784.631 7 -17201128.005 7 20380848.564 20380847.055 20380847.515
+ 46.700 45.600
+ 06 1 1 3 5 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9322447.912 6 -7264231.817 5 22547174.020 22547171.741 22547173.404
+ 37.800 31.800
+ -14791361.985 7 -11525734.623 7 20864554.563 20864551.595 20864553.712
+ 45.900 44.600
+ -1955355.818 4 -1523653.349 3 24218094.785 24218092.725 24218093.971
+ 24.200 22.100
+ -13100148.675 6 -10207903.638 5 22179238.292 22179236.834 22179237.474
+ 36.800 33.000
+ -16554703.457 7 -12899756.834 6 21346642.745 21346640.412 21346642.172
+ 44.100 37.300
+ -24834786.701 7 -19351774.301 7 20172218.546 20172214.936 20172217.433
+ 43.300 46.400
+ -8189226.887 5 -6381214.615 5 23160054.439 23160050.287 23160053.720
+ 33.900 30.800
+ -22115828.916 7 -17233110.554 7 20373038.173 20373036.457 20373037.054
+ 46.700 45.600
+ 06 1 1 3 5 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9234696.762 6 -7195854.291 5 22563872.966 22563870.300 22563872.126
+ 37.400 31.300
+ -14832075.058 7 -11557459.087 7 20856807.246 20856804.272 20856806.327
+ 45.700 44.900
+ -1964488.493 3 -1530769.744 3 24216355.838 24216354.585 24216354.804
+ 19.300 21.100
+ -13196973.272 6 -10283351.365 5 22160813.402 22160811.389 22160812.629
+ 37.400 32.300
+ -16470140.004 7 -12833863.234 6 21362734.625 21362732.190 21362734.063
+ 43.800 37.200
+ -24815890.141 7 -19337049.714 7 20175814.171 20175810.787 20175813.159
+ 43.100 46.200
+ -8269905.487 5 -6444081.045 5 23144702.006 23144697.825 23144701.374
+ 34.400 31.300
+ -22156333.211 7 -17264672.336 7 20365330.243 20365328.806 20365329.266
+ 46.700 45.600
+ 06 1 1 3 6 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9146771.458 6 -7127341.070 5 22580603.979 22580601.923 22580603.436
+ 37.200 32.000
+ -14872519.644 7 -11588974.339 7 20849110.905 20849107.925 20849109.948
+ 45.800 45.000
+ -1973075.562 4 -1537460.977 4 24214722.344 24214721.090 24214721.557
+ 24.200 24.600
+ -13293428.687 6 -10358511.425 5 22142458.084 22142456.178 22142457.536
+ 36.500 31.600
+ -16385237.939 7 -12767705.781 6 21378890.689 21378888.699 21378890.245
+ 43.800 37.300
+ -24796408.233 7 -19321869.005 7 20179521.436 20179518.118 20179520.431
+ 43.300 46.300
+ -8350475.713 5 -6506863.020 5 23129369.633 23129365.491 23129369.168
+ 34.600 30.800
+ -22196295.541 7 -17295811.805 7 20357725.939 20357724.150 20357724.877
+ 46.700 45.600
+ 06 1 1 3 6 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9058674.243 6 -7058693.878 5 22597368.392 22597366.343 22597367.764
+ 36.900 31.500
+ -14912695.144 7 -11620279.906 7 20841465.751 20841462.760 20841464.782
+ 45.700 45.100
+ -1981117.207 4 -1543727.196 4 24213192.648 24213190.826 24213191.756
+ 24.200 26.200
+ -13389510.807 6 -10433380.603 5 22124174.714 22124172.725 22124173.708
+ 36.600 32.600
+ -16300000.121 7 -12701286.703 6 21395111.263 21395108.878 21395110.651
+ 44.000 37.400
+ -24776341.510 7 -19306232.598 7 20183340.266 20183336.689 20183339.134
+ 43.400 46.200
+ -8430938.059 5 -6569560.936 5 23114058.515 23114054.078 23114057.757
+ 33.900 30.600
+ -22235714.111 7 -17326527.573 7 20350224.804 20350222.947 20350223.688
+ 46.800 45.500
+ 06 1 1 3 7 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8970407.211 6 -6989914.382 5 22614165.267 22614163.119 22614164.632
+ 37.200 32.000
+ -14952601.446 7 -11651375.711 7 20833872.107 20833868.781 20833871.036
+ 45.800 45.000
+ -1988613.576 3 -1549568.537 4 24211765.267 24211764.214 24211764.217
+ 21.600 24.600
+ -13485216.390 6 -10507956.365 5 22105961.992 22105960.786 22105961.584
+ 36.900 33.200
+ -16214429.267 7 -12634608.118 6 21411394.947 21411392.580 21411394.350
+ 43.900 37.200
+ -24755689.447 7 -19290140.081 7 20187269.891 20187266.602 20187268.922
+ 43.400 46.100
+ -8511290.961 5 -6632173.576 5 23098768.240 23098763.564 23098767.545
+ 35.900 30.600
+ -22274586.954 7 -17356818.097 7 20342827.660 20342825.659 20342826.479
+ 46.800 45.500
+ 06 1 1 3 7 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8881972.128 6 -6921003.926 5 22630993.571 22630991.922 22630993.007
+ 36.900 32.100
+ -14992237.399 7 -11682260.854 7 20826329.268 20826326.323 20826328.386
+ 45.900 45.100
+ -1995564.707 3 -1554984.983 4 24210443.282 24210441.314 24210442.156
+ 20.500 24.900
+ -13580542.301 6 -10582236.275 5 22087822.600 22087820.610 22087821.704
+ 37.400 33.200
+ -16128528.034 7 -12567672.095 6 21427741.453 21427739.045 21427740.772
+ 43.800 37.200
+ -24734452.041 7 -19273591.455 7 20191311.476 20191307.917 20191310.382
+ 43.300 45.900
+ -8591534.075 5 -6694700.681 5 23083498.262 23083493.651 23083497.528
+ 35.700 31.100
+ -22312912.219 7 -17386681.936 7 20335534.674 20335532.577 20335533.515
+ 46.800 45.500
+ 06 1 1 3 8 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8793371.205 6 -6851964.254 5 22647854.685 22647851.742 22647853.849
+ 37.200 31.600
+ -15031602.193 7 -11712934.707 7 20818838.351 20818835.382 20818837.529
+ 45.700 45.100
+ -2001970.630 2 -1559976.640 3 24209223.360 24209222.590 24209222.677
+ 17.800 23.800
+ -13675484.833 6 -10656217.446 5 22069756.393 22069753.820 22069755.045
+ 37.500 33.800
+ -16042299.168 7 -12500480.767 6 21444149.977 21444147.874 21444149.497
+ 43.600 37.100
+ -24712629.672 7 -19256587.019 7 20195463.858 20195460.606 20195462.921
+ 43.100 45.900
+ -8671666.707 5 -6757141.688 5 23068248.969 23068245.090 23068248.413
+ 35.800 31.600
+ -22350688.145 7 -17416117.718 7 20328346.172 20328344.113 20328345.084
+ 46.900 45.600
+ 06 1 1 3 8 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8704606.366 6 -6782796.847 5 22664745.770 22664743.006 22664744.859
+ 36.900 31.100
+ -15070694.744 7 -11743396.421 7 20811399.433 20811396.296 20811398.487
+ 45.800 45.200
+ -2007831.814 3 -1564543.803 3 24208108.513 24208106.555 24208107.666
+ 20.500 19.900
+ -13770040.359 6 -10729897.068 5 22051761.724 22051760.248 22051761.337
+ 37.100 33.800
+ -15955745.475 7 -12433036.332 6 21460620.554 21460618.451 21460620.120
+ 43.700 37.100
+ -24690222.269 7 -19239126.708 7 20199727.808 20199724.566 20199726.855
+ 43.100 45.600
+ -8751688.163 5 -6819496.039 5 23053021.599 23053017.694 23053020.933
+ 34.700 32.600
+ -22387912.916 7 -17445124.034 7 20321262.390 20321260.586 20321261.322
+ 46.900 45.700
+ 06 1 1 3 9 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8615679.556 6 -6713503.221 5 22681667.745 22681665.553 22681666.972
+ 36.900 31.100
+ -15109514.664 7 -11773645.685 7 20804011.926 20804009.107 20804011.086
+ 45.700 45.300
+ -2013148.321 3 -1568686.541 3 24207097.698 24207095.174 24207096.561
+ 22.600 22.600
+ -13864206.195 6 -10803273.027 5 22033843.470 22033841.227 22033842.043
+ 36.800 33.500
+ -15868869.810 7 -12365341.009 6 21477152.509 21477150.476 21477152.036
+ 43.500 37.200
+ -24667229.957 7 -19221210.621 7 20204103.121 20204099.781 20204102.135
+ 43.400 45.500
+ -8831597.966 5 -6881763.401 5 23037815.005 23037811.005 23037814.491
+ 34.700 31.600
+ -22424584.528 7 -17473699.313 7 20314283.930 20314282.279 20314282.864
+ 46.800 45.800
+ 06 1 1 3 9 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8526592.757 6 -6644084.946 5 22698620.048 22698618.105 22698619.455
+ 36.500 31.300
+ -15148061.226 7 -11803681.938 7 20796676.925 20796673.948 20796676.044
+ 45.800 45.400
+ -2017920.531 3 -1572405.183 3 24206188.554 24206187.233 24206187.417
+ 21.100 23.400
+ -13957978.540 6 -10876342.374 5 22015997.964 22015997.178 22015997.661
+ 37.800 34.300
+ -15781674.792 7 -12297396.845 6 21493745.109 21493742.972 21493744.599
+ 43.200 36.300
+ -24643652.893 7 -19202838.883 7 20208589.681 20208586.427 20208588.686
+ 43.300 45.600
+ -8911395.453 5 -6943943.254 5 23022629.880 23022626.003 23022629.381
+ 34.900 31.300
+ -22460701.100 7 -17501842.087 7 20307411.416 20307409.311 20307410.273
+ 46.900 45.600
+ 06 1 1 3 10 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8437348.082 6 -6574543.642 5 22715602.976 22715600.807 22715602.433
+ 36.400 31.100
+ -15186333.413 7 -11833504.404 7 20789393.938 20789390.914 20789393.046
+ 45.500 45.400
+ -2022148.922 4 -1575700.044 3 24205384.304 24205382.036 24205383.145
+ 25.300 18.600
+ -14051354.674 6 -10949102.986 5 21998229.778 21998228.166 21998229.064
+ 38.400 34.800
+ -15694163.040 7 -12229205.871 6 21510397.972 21510396.004 21510397.578
+ 43.200 36.300
+ -24619491.090 7 -19184011.506 7 20213187.641 20213184.314 20213186.624
+ 43.300 45.500
+ -8991079.580 5 -7006034.768 5 23007466.395 23007462.632 23007465.943
+ 35.200 30.800
+ -22496260.823 7 -17529550.952 7 20300644.649 20300642.536 20300643.459
+ 46.800 45.600
+ 06 1 1 3 10 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8347947.432 6 -6504880.801 5 22732615.377 22732613.073 22732614.657
+ 36.100 30.200
+ -15224330.619 7 -11863112.609 7 20782163.242 20782160.281 20782162.368
+ 45.600 45.400
+ -2025833.559 3 -1578571.194 3 24204683.297 24204681.168 24204682.477
+ 23.800 18.600
+ -14144330.889 6 -11021551.981 5 21980537.463 21980535.397 21980536.252
+ 38.300 34.800
+ -15606337.492 7 -12160770.379 6 21527110.630 21527108.556 21527110.135
+ 43.100 36.400
+ -24594744.857 7 -19164728.726 7 20217896.795 20217893.371 20217895.730
+ 43.400 45.400
+ -9070649.778 5 -7068037.518 5 22992325.063 22992320.973 22992324.560
+ 35.700 31.300
+ -22531261.984 7 -17556824.577 7 20293984.033 20293981.980 20293982.908
+ 46.700 45.600
+ 06 1 1 3 11 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8258392.697 6 -6435097.880 5 22749657.104 22749654.854 22749656.521
+ 36.100 30.800
+ -15262051.782 7 -11892505.715 7 20774985.341 20774982.210 20774984.383
+ 45.600 45.600
+ -2028974.682 3 -1581018.836 3 24204085.574 24204083.605 24204084.653
+ 23.400 21.100
+ -14236903.876 6 -11093686.759 5 21962920.315 21962919.172 21962919.925
+ 38.400 34.500
+ -15518200.727 7 -12092092.376 6 21543882.653 21543880.509 21543882.161
+ 42.800 36.400
+ -24569414.425 7 -19144990.722 7 20222716.832 20222713.609 20222715.792
+ 43.400 45.500
+ -9150105.472 5 -7129951.039 5 22977205.013 22977201.271 22977204.443
+ 35.300 32.100
+ -22565702.624 7 -17583661.430 7 20287430.066 20287428.145 20287429.069
+ 47.000 45.600
+ 06 1 1 3 11 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8168685.971 5 -6365196.541 4 22766727.791 22766725.132 22766727.043
+ 35.700 29.200
+ -15299496.199 7 -11921683.177 7 20767859.775 20767856.747 20767858.855
+ 45.500 45.500
+ -2031572.489 4 -1583043.082 3 24203591.448 24203588.526 24203590.587
+ 24.200 18.600
+ -14329070.444 6 -11165504.845 5 21945382.047 21945380.498 21945381.177
+ 38.400 34.700
+ -15429755.474 7 -12023174.002 6 21560713.085 21560711.062 21560712.537
+ 42.600 36.300
+ -24543499.927 7 -19124797.608 7 20227648.374 20227644.927 20227647.330
+ 43.500 45.300
+ -9229445.929 5 -7191774.762 5 22962107.236 22962103.362 22962106.454
+ 35.700 33.100
+ -22599581.067 7 -17610060.214 7 20280983.359 20280981.376 20280982.345
+ 47.100 45.800
+ 06 1 1 3 12 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8078829.118 5 -6295178.217 5 22783826.840 22783824.421 22783826.069
+ 35.600 30.200
+ -15336662.923 7 -11950644.253 7 20760787.102 20760784.132 20760786.278
+ 45.600 45.600
+ -2033627.470 4 -1584644.369 3 24203200.490 24203198.549 24203199.559
+ 24.200 22.100
+ -14420827.161 6 -11237003.578 5 21927920.656 21927920.046 21927920.406
+ 38.800 35.600
+ -15341004.542 7 -11954017.429 6 21577601.822 21577599.780 21577601.340
+ 42.600 36.200
+ -24517001.633 7 -19104149.587 7 20232690.735 20232687.277 20232689.745
+ 43.700 45.200
+ -9308670.184 5 -7253507.932 5 22947030.990 22947027.253 22947030.501
+ 35.500 32.800
+ -22632895.615 7 -17636019.597 7 20274643.773 20274641.758 20274642.649
+ 47.000 45.800
+ 06 1 1 3 12 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7988824.143 5 -6225044.465 4 22800954.311 22800951.928 22800953.735
+ 35.700 29.700
+ -15373551.351 7 -11979388.468 7 20753767.532 20753764.535 20753766.710
+ 45.600 45.700
+ -2035140.099 3 -1585823.100 3 24202911.927 24202910.059 24202911.277
+ 21.600 19.900
+ -14512170.157 6 -11308179.911 5 21910539.344 21910537.630 21910538.187
+ 38.000 34.800
+ -15251950.545 7 -11884624.701 6 21594548.186 21594546.226 21594547.713
+ 42.600 36.300
+ -24489919.693 7 -19083046.782 7 20237844.428 20237840.799 20237843.340
+ 43.600 44.900
+ -9387777.952 5 -7315150.343 5 22931977.515 22931973.901 22931977.002
+ 35.900 33.600
+ -22665644.501 7 -17661538.206 7 20268411.762 20268409.880 20268410.715
+ 46.800 45.700
+ 06 1 1 3 13 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7898673.035 5 -6154796.851 4 22818109.651 22818107.040 22818108.865
+ 35.400 29.500
+ -15410161.027 7 -12007915.472 7 20746800.764 20746797.919 20746799.979
+ 45.600 45.700
+ -2036110.697 3 -1586579.386 3 24202727.175 24202725.737 24202726.244
+ 21.100 21.100
+ -14603097.116 6 -11379032.089 5 21893235.942 21893234.742 21893235.579
+ 38.600 34.000
+ -15162596.202 7 -11814997.941 6 21611551.862 21611549.616 21611551.266
+ 42.400 36.000
+ -24462254.549 7 -19061489.524 7 20243109.035 20243105.393 20243107.872
+ 43.800 45.000
+ -9466768.576 6 -7376701.448 5 22916946.127 22916942.382 22916945.417
+ 36.000 34.100
+ -22697825.946 7 -17686614.648 7 20262287.803 20262285.918 20262286.688
+ 46.600 45.700
+ 06 1 1 3 13 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7808377.630 5 -6084436.797 5 22835291.944 22835290.017 22835291.402
+ 35.800 30.100
+ -15446490.617 7 -12036224.242 7 20739887.817 20739884.573 20739886.887
+ 45.500 45.700
+ -2036539.712 3 -1586913.715 3 24202645.167 24202644.242 24202644.017
+ 19.900 21.100
+ -14693604.482 6 -11449557.307 5 21876014.048 21876011.937 21876012.940
+ 38.600 34.800
+ -15072944.182 7 -11745139.224 6 21628612.037 21628610.136 21628611.421
+ 42.300 36.200
+ -24434006.500 7 -19039478.060 7 20248484.274 20248480.819 20248483.289
+ 43.800 44.900
+ -9545640.900 6 -7438160.399 5 22901937.634 22901933.330 22901936.909
+ 36.500 32.700
+ -22729438.355 7 -17711247.691 7 20256272.149 20256270.289 20256271.040
+ 46.600 45.800
+ 06 1 1 3 14 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7717939.779 5 -6013965.752 5 22852501.469 22852499.319 22852501.043
+ 35.400 30.200
+ -15482539.495 7 -12064314.275 7 20733027.808 20733024.722 20733026.947
+ 45.600 45.900
+ -2036427.630 3 -1586826.421 3 24202667.410 24202665.382 24202666.647
+ 23.400 23.000
+ -14783688.785 6 -11519752.872 5 21858871.129 21858869.540 21858870.361
+ 38.900 35.400
+ -14982997.208 7 -11675050.674 5 21645728.429 21645726.262 21645727.844
+ 42.200 35.900
+ -24405175.720 7 -19017012.517 7 20253970.473 20253967.093 20253969.582
+ 44.000 44.800
+ -9624394.417 6 -7499526.774 5 22886951.032 22886946.792 22886950.410
+ 36.900 32.300
+ -22760480.078 7 -17735436.043 7 20250365.011 20250363.259 20250363.945
+ 46.700 45.700
+ 06 1 1 3 14 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7627361.639 5 -5943385.384 4 22869738.554 22869735.907 22869738.052
+ 35.400 29.700
+ -15518306.719 7 -12092184.830 7 20726221.441 20726218.450 20726220.581
+ 45.500 45.900
+ -2035775.089 3 -1586317.948 2 24202791.505 24202789.397 24202790.421
+ 23.800 17.800
+ -14873346.897 6 -11589616.320 5 21841809.460 21841808.146 21841808.883
+ 38.900 35.500
+ -14892757.962 7 -11604734.379 5 21662900.449 21662898.236 21662899.844
+ 42.000 35.800
+ -24375762.668 7 -18994093.257 7 20259567.714 20259564.247 20259566.743
+ 44.100 44.700
+ -9703028.332 6 -7560799.957 5 22871987.636 22871983.173 22871986.772
+ 36.400 31.800
+ -22790949.457 7 -17759178.412 7 20244567.021 20244565.157 20244565.943
+ 46.800 46.000
+ 06 1 1 3 15 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7536645.041 5 -5872697.124 5 22887001.268 22886998.990 22887000.338
+ 35.100 30.400
+ -15553791.673 7 -12119835.437 7 20719469.010 20719465.861 20719468.105
+ 45.400 46.000
+ -2034582.342 4 -1585388.566 2 24203018.846 24203015.764 24203017.759
+ 25.300 17.800
+ -14962575.449 6 -11659145.059 5 21824830.616 21824828.398 21824829.429
+ 39.300 35.100
+ -14802229.201 7 -11534192.487 6 21680127.505 21680125.366 21680126.885
+ 42.000 36.000
+ -24345767.672 7 -18970720.536 7 20265275.407 20265272.190 20265274.577
+ 44.100 44.800
+ -9781542.233 6 -7621979.608 5 22857046.348 22857042.804 22857045.865
+ 36.400 33.000
+ -22820844.891 7 -17782473.553 7 20238878.374 20238876.247 20238877.170
+ 46.800 45.900
+ 06 1 1 3 15 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7445791.766 5 -5801902.366 5 22904290.003 22904288.177 22904289.276
+ 34.500 31.500
+ -15588993.389 7 -12147265.340 7 20712770.213 20712767.239 20712769.299
+ 45.200 46.000
+ -2032849.961 3 -1584038.649 3 24203348.141 24203346.453 24203347.363
+ 23.000 21.100
+ -15051371.317 6 -11728336.644 5 21807932.684 21807931.107 21807931.999
+ 39.300 35.400
+ -14711413.434 6 -11463426.958 6 21697409.089 21697407.010 21697408.508
+ 41.600 36.000
+ -24315191.396 7 -18946894.866 7 20271094.077 20271090.623 20271093.078
+ 44.200 44.700
+ -9859935.121 6 -7683064.965 5 22842129.156 22842124.779 22842128.448
+ 36.900 32.400
+ -22850164.658 7 -17805320.115 7 20233298.568 20233296.884 20233297.617
+ 46.800 45.900
+ 06 1 1 3 16 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7354803.837 5 -5731002.705 4 22921604.536 22921601.926 22921603.872
+ 34.000 29.700
+ -15623910.995 7 -12174473.850 7 20706125.440 20706122.631 20706124.619
+ 45.100 46.000
+ -2030578.443 3 -1582268.673 3 24203780.497 24203778.639 24203779.327
+ 23.800 21.600
+ -15139731.357 6 -11797188.638 5 21791118.987 21791116.717 21791117.847
+ 39.800 35.600
+ -14620313.503 6 -11392440.004 5 21714744.875 21714742.811 21714744.241
+ 41.600 35.400
+ -24284033.868 7 -18922616.276 7 20277023.123 20277019.618 20277022.117
+ 44.000 44.500
+ -9938206.197 6 -7744055.410 5 22827234.342 22827230.421 22827233.839
+ 36.500 33.400
+ -22878906.978 7 -17827716.726 7 20227829.354 20227827.424 20227828.297
+ 46.900 45.900
+ 06 1 1 3 16 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7263683.058 5 -5659999.483 5 22938944.339 22938942.104 22938943.407
+ 34.700 30.400
+ -15658543.658 7 -12201460.327 7 20699535.333 20699532.190 20699534.424
+ 45.400 46.100
+ -2027768.412 3 -1580079.065 3 24204315.310 24204313.216 24204314.433
+ 23.400 22.600
+ -15227652.140 6 -11865698.326 5 21774387.615 21774386.068 21774386.956
+ 40.200 35.900
+ -14528932.108 6 -11321233.722 5 21732134.381 21732131.945 21732133.587
+ 41.400 35.100
+ -24252295.741 7 -18897885.269 7 20283062.859 20283059.117 20283061.684
+ 44.100 44.400
+ -10016354.859 6 -7804950.460 5 22812362.743 22812358.988 22812362.286
+ 36.100 32.800
+ -22907070.516 7 -17849662.337 7 20222470.051 20222468.029 20222468.927
+ 46.700 45.800
+ 06 1 1 3 17 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7172431.318 5 -5588894.243 4 22956308.531 22956306.796 22956307.844
+ 34.100 29.900
+ -15692891.066 7 -12228224.531 7 20692999.094 20692996.093 20692998.218
+ 45.200 46.100
+ -2024420.456 3 -1577470.269 3 24204951.766 24204950.020 24204950.916
+ 19.900 20.500
+ -15315130.447 6 -11933863.222 5 21757740.880 21757739.635 21757740.313
+ 40.000 35.900
+ -14437271.677 6 -11249810.010 5 21749576.597 21749574.473 21749575.939
+ 41.300 34.900
+ -24219977.285 7 -18872702.059 7 20289212.459 20289209.141 20289211.568
+ 43.800 44.300
+ -10094380.357 6 -7865749.535 5 22797515.277 22797511.593 22797514.755
+ 36.400 34.100
+ -22934653.661 7 -17871155.695 7 20217221.184 20217219.021 20217220.028
+ 46.600 45.800
+ 06 1 1 3 17 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7081050.523 5 -5517688.434 4 22973697.006 22973695.691 22973696.699
+ 33.800 29.000
+ -15726951.959 7 -12254765.476 7 20686517.460 20686514.536 20686516.638
+ 45.400 46.100
+ -2020535.002 3 -1574442.681 3 24205692.443 24205689.996 24205690.914
+ 22.600 23.800
+ -15402162.872 6 -12001680.672 5 21741179.575 21741177.656 21741178.631
+ 39.700 35.900
+ -14345335.065 6 -11178171.093 5 21767071.253 21767069.263 21767070.879
+ 41.400 34.500
+ -24187079.385 7 -18847067.334 7 20295472.973 20295469.478 20295471.928
+ 44.000 44.100
+ -10172282.013 6 -7926452.107 5 22782691.251 22782687.488 22782690.775
+ 37.700 34.300
+ -22961654.676 7 -17892195.441 7 20212082.907 20212080.950 20212081.810
+ 46.600 45.900
+ 06 1 1 3 18 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6989542.533 5 -5446383.498 4 22991111.081 22991109.320 22991110.664
+ 34.600 29.200
+ -15760725.320 7 -12281082.381 7 20680090.797 20680087.701 20680089.928
+ 45.200 46.200
+ -2016112.845 3 -1570996.859 3 24206533.027 24206531.500 24206532.115
+ 23.000 22.600
+ -15488746.497 6 -12069148.433 6 21724703.051 21724701.296 21724702.191
+ 40.100 36.300
+ -14253124.885 6 -11106319.007 5 21784618.610 21784616.393 21784617.911
+ 40.800 34.700
+ -24153602.111 7 -18820981.153 7 20301843.363 20301840.028 20301842.357
+ 43.900 44.300
+ -10250058.899 6 -7987057.467 5 22767891.214 22767886.978 22767890.549
+ 38.200 33.800
+ -22988072.257 7 -17912780.564 7 20207055.688 20207053.858 20207054.688
+ 46.400 45.800
+ 06 1 1 3 18 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6897909.195 5 -5374980.909 4 23008548.355 23008546.747 23008547.656
+ 34.400 29.200
+ -15794210.877 7 -12307175.024 7 20673718.553 20673715.647 20673717.694
+ 45.300 46.400
+ -2011154.798 4 -1567133.510 3 24207477.201 24207474.654 24207476.139
+ 24.900 21.600
+ -15574878.275 6 -12136264.091 6 21708312.711 21708311.117 21708311.916
+ 40.600 36.500
+ -14160643.670 6 -11034255.719 5 21802217.070 21802214.947 21802216.509
+ 40.900 34.700
+ -24119546.439 7 -18794444.269 7 20308323.799 20308320.558 20308322.864
+ 44.000 44.200
+ -10327710.370 6 -8047565.095 5 22753114.740 22753110.129 22753113.999
+ 38.100 34.000
+ -23013904.827 7 -17932909.834 7 20202139.762 20202137.963 20202138.731
+ 46.400 45.700
+ 06 1 1 3 19 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6806152.430 5 -5303482.140 4 23026008.658 23026007.289 23026008.174
+ 33.600 29.200
+ -15827407.734 7 -12333042.692 7 20667401.475 20667398.422 20667400.545
+ 45.300 46.400
+ -2005661.463 3 -1562852.995 3 24208521.563 24208520.640 24208520.679
+ 22.600 23.400
+ -15660554.787 6 -12203024.993 6 21692009.068 21692007.369 21692008.206
+ 40.300 36.000
+ -14067894.226 6 -10961983.430 5 21819866.796 21819864.692 21819866.277
+ 41.200 34.800
+ -24084912.593 7 -18767456.863 7 20314914.575 20314911.185 20314913.484
+ 44.100 44.100
+ -10405235.661 6 -8107974.412 5 22738361.959 22738357.772 22738361.331
+ 38.100 33.900
+ -23039150.781 7 -17952582.001 7 20197335.663 20197333.804 20197334.594
+ 46.300 45.700
+ 06 1 1 3 19 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6714274.066 5 -5231888.607 4 23043493.443 23043490.706 23043492.743
+ 34.000 28.600
+ -15860314.548 7 -12358684.346 7 20661139.489 20661136.391 20661138.601
+ 45.400 46.300
+ -1999633.528 3 -1558155.911 3 24209669.543 24209667.174 24209668.489
+ 23.400 21.600
+ -15745772.956 6 -12269428.770 6 21675792.330 21675790.954 21675791.682
+ 40.600 36.000
+ -13974879.037 6 -10889504.070 5 21837566.918 21837564.842 21837566.379
+ 41.100 34.500
+ -24049701.307 7 -18740019.497 7 20321615.098 20321611.775 20321614.063
+ 44.200 44.200
+ -10482634.231 6 -8168284.970 5 22723633.520 22723629.394 22723632.751
+ 37.300 34.700
+ -23063808.847 7 -17971796.070 7 20192643.412 20192641.622 20192642.354
+ 46.200 45.800
+ 06 1 1 3 20 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6622275.714 5 -5160201.574 4 23060999.641 23060997.595 23060998.799
+ 33.100 28.100
+ -15892930.862 7 -12384099.635 7 20654932.848 20654929.702 20654931.911
+ 45.300 46.500
+ -1993071.578 3 -1553042.714 3 24210917.709 24210915.884 24210916.634
+ 23.000 19.900
+ -15830529.174 6 -12335472.548 6 21659664.319 21659662.449 21659663.249
+ 40.700 36.200
+ -13881600.721 6 -10816819.664 5 21855317.163 21855315.077 21855316.806
+ 41.300 34.300
+ -24013913.235 7 -18712132.692 7 20328425.571 20328421.968 20328424.434
+ 44.300 44.000
+ -10559905.041 6 -8228495.978 5 22708929.440 22708924.686 22708928.728
+ 37.700 32.700
+ -23087877.396 7 -17990550.775 7 20188063.235 20188061.494 20188062.231
+ 46.300 45.800
+ 06 1 1 3 20 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6530159.331 5 -5088422.600 4 23078528.778 23078527.043 23078527.907
+ 33.500 28.600
+ -15925255.765 7 -12409287.861 7 20648781.767 20648778.508 20648780.863
+ 45.400 46.600
+ -1985976.497 3 -1547514.119 3 24212267.331 24212266.276 24212266.794
+ 21.600 23.000
+ -15914820.741 6 -12401154.253 6 21643624.048 21643622.102 21643623.098
+ 41.500 36.000
+ -13788062.098 6 -10743932.426 5 21873117.067 21873115.051 21873116.580
+ 40.900 34.400
+ -23977548.940 7 -18683796.882 7 20335345.108 20335341.809 20335344.239
+ 44.600 43.900
+ -10637046.893 6 -8288606.515 5 22694249.689 22694245.112 22694248.979
+ 37.700 33.000
+ -23111355.021 7 -18008845.023 7 20183595.635 20183593.903 20183594.528
+ 46.000 45.900
+ 06 1 1 3 21 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6437926.883 5 -5016553.148 4 23096080.712 23096077.798 23096079.791
+ 33.100 27.400
+ -15957288.732 7 -12434248.623 7 20642686.092 20642682.819 20642685.199
+ 45.400 46.600
+ -1978349.255 3 -1541570.824 3 24213719.536 24213717.606 24213718.496
+ 23.400 21.100
+ -15998644.527 6 -12466471.455 6 21627672.577 21627670.921 21627671.700
+ 41.400 36.000
+ -13694265.542 6 -10670844.202 5 21890966.064 21890963.807 21890965.513
+ 40.900 34.300
+ -23940609.449 7 -18655012.868 7 20342374.560 20342371.184 20342373.508
+ 44.400 43.700
+ -10714059.759 6 -8348616.532 5 22679594.475 22679590.234 22679593.827
+ 38.100 33.200
+ -23134240.250 7 -18026677.660 7 20179240.594 20179239.001 20179239.545
+ 46.100 45.900
+ 06 1 1 3 21 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6345579.901 5 -4944594.454 4 23113653.824 23113650.966 23113652.792
+ 33.100 27.400
+ -15989028.548 7 -12458980.941 7 20636645.989 20636642.944 20636645.139
+ 45.300 46.700
+ -1970190.417 4 -1535213.308 3 24215271.881 24215270.105 24215271.114
+ 24.600 22.600
+ -16081997.668 6 -12531421.914 5 21611810.920 21611809.157 21611810.039
+ 41.500 35.800
+ -13600213.914 6 -10597557.220 5 21908863.063 21908861.230 21908862.730
+ 40.700 34.300
+ -23903094.761 7 -18625780.647 7 20349513.453 20349510.005 20349512.369
+ 44.500 43.600
+ -10790942.681 6 -8408525.293 5 22664964.171 22664959.720 22664963.494
+ 38.300 34.000
+ -23156531.797 7 -18044047.689 7 20174998.948 20174997.060 20174997.801
+ 46.100 45.900
+ 06 1 1 3 22 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6253120.454 5 -4872548.136 4 23131247.812 23131245.780 23131247.053
+ 33.100 28.400
+ -16020474.514 7 -12483484.277 7 20630662.066 20630658.950 20630661.187
+ 45.200 46.600
+ -1961500.579 4 -1528442.101 3 24216926.061 24216923.003 24216925.096
+ 25.300 19.300
+ -16164876.297 6 -12596002.651 6 21596039.301 21596037.826 21596038.826
+ 41.900 36.200
+ -13505909.538 6 -10524073.291 5 21926808.663 21926806.960 21926808.271
+ 40.700 34.500
+ -23865005.625 7 -18596100.803 7 20356761.418 20356758.097 20356760.558
+ 44.800 43.600
+ -10867694.812 6 -8468332.144 5 22650358.652 22650354.645 22650358.078
+ 38.900 34.300
+ -23178228.117 7 -18060953.906 7 20170870.304 20170868.368 20170869.246
+ 46.400 45.900
+ 06 1 1 3 22 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6160550.202 5 -4800415.480 4 23148862.760 23148861.249 23148862.081
+ 32.100 28.100
+ -16051625.894 7 -12507758.075 7 20624734.101 20624730.948 20624733.245
+ 45.000 46.700
+ -1952280.884 3 -1521257.950 3 24218680.246 24218678.215 24218679.377
+ 23.400 19.900
+ -16247277.852 6 -12660211.636 6 21580359.385 21580357.401 21580358.538
+ 41.900 36.700
+ -13411355.134 6 -10450394.531 5 21944801.582 21944799.914 21944801.270
+ 39.800 34.600
+ -23826342.998 7 -18565974.087 7 20364118.773 20364115.364 20364117.934
+ 44.900 43.400
+ -10944315.367 6 -8528036.466 5 22635778.257 22635774.219 22635777.716
+ 39.100 34.900
+ -23199328.154 7 -18077395.489 7 20166855.157 20166853.164 20166854.066
+ 46.400 46.100
+ 06 1 1 3 23 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6067871.029 5 -4728197.952 4 23166499.500 23166497.485 23166499.050
+ 33.200 27.900
+ -16082481.697 7 -12531801.558 7 20618862.618 20618859.356 20618861.629
+ 44.900 46.800
+ -1942532.109 3 -1513661.533 3 24220535.363 24220533.668 24220534.453
+ 23.400 21.600
+ -16329199.330 7 -12724046.542 6 21564769.896 21564768.274 21564769.299
+ 42.500 36.800
+ -13316553.343 6 -10376523.012 5 21962842.524 21962840.263 21962841.801
+ 40.000 34.300
+ -23787107.776 7 -18535401.189 7 20371585.252 20371581.597 20371584.130
+ 45.000 43.400
+ -11020803.658 6 -8587637.724 5 22621223.325 22621219.025 22621222.527
+ 38.600 34.900
+ -23219830.518 7 -18093371.351 7 20162953.599 20162951.732 20162952.515
+ 46.200 45.900
+ 06 1 1 3 23 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5975084.569 5 -4655896.812 4 23184156.699 23184154.169 23184155.819
+ 32.400 27.900
+ -16113041.269 7 -12555614.205 7 20613047.240 20613044.078 20613046.343
+ 45.200 46.800
+ -1932255.001 3 -1505653.376 3 24222491.012 24222489.530 24222490.397
+ 22.100 23.000
+ -16410637.589 7 -12787504.910 6 21549272.983 21549271.039 21549272.026
+ 42.200 36.500
+ -13221506.648 6 -10302460.662 5 21980928.878 21980926.882 21980928.290
+ 39.700 33.800
+ -23747300.558 7 -18504382.582 7 20379159.923 20379156.665 20379159.095
+ 44.900 43.400
+ -11097158.564 6 -8647135.041 5 22606692.721 22606689.083 22606692.335
+ 38.700 35.100
+ -23239733.862 7 -18108880.445 7 20159166.003 20159164.201 20159164.929
+ 46.300 46.100
+ 06 1 1 3 24 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5882192.721 5 -4583513.555 4 23201832.698 23201830.622 23201831.956
+ 32.100 26.200
+ -16143303.664 7 -12579195.281 7 20607288.495 20607285.249 20607287.599
+ 44.900 46.800
+ -1921450.418 3 -1497234.269 3 24224547.338 24224545.106 24224546.368
+ 22.600 19.300
+ -16491589.534 7 -12850584.340 6 21533868.180 21533866.358 21533867.392
+ 42.300 36.900
+ -13126217.628 6 -10228209.479 5 21999062.003 21999060.049 21999061.500
+ 40.000 34.400
+ -23706922.109 7 -18472918.864 7 20386843.799 20386840.400 20386842.963
+ 45.100 43.300
+ -11173379.517 6 -8706527.992 5 22592188.903 22592184.389 22592188.269
+ 39.100 33.800
+ -23259036.887 7 -18123921.763 7 20155492.896 20155490.996 20155491.871
+ 46.400 46.000
+ 06 1 1 3 24 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5789197.253 5 -4511049.557 4 23219529.733 23219526.913 23219528.724
+ 32.100 26.500
+ -16173268.037 7 -12602544.130 7 20601586.479 20601583.247 20601585.641
+ 45.100 47.100
+ -1910119.379 3 -1488404.940 3 24226702.953 24226701.390 24226702.154
+ 22.600 20.500
+ -16572052.189 7 -12913282.498 6 21518556.694 21518554.808 21518555.938
+ 42.500 37.000
+ -13030688.880 6 -10153771.492 5 22017240.355 22017238.261 22017239.659
+ 39.100 33.800
+ -23665973.211 7 -18441010.637 7 20394636.492 20394632.759 20394635.364
+ 45.100 42.900
+ -11249465.484 6 -8765815.753 5 22577710.129 22577705.965 22577709.461
+ 38.600 34.800
+ -23277738.492 7 -18138494.438 7 20151934.210 20151932.128 20151933.106
+ 46.300 46.000
+ 06 1 1 3 25 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5696099.620 5 -4438505.957 4 23237245.863 23237242.973 23237244.859
+ 31.000 27.900
+ -16202933.607 7 -12625660.161 7 20595941.238 20595938.173 20595940.390
+ 44.900 47.100
+ -1898263.013 3 -1479166.248 3 24228959.971 24228957.702 24228959.039
+ 23.000 21.600
+ -16652021.968 7 -12975596.595 6 21503339.270 21503337.225 21503338.238
+ 42.500 37.400
+ -12934922.909 6 -10079148.661 5 22035464.042 22035462.153 22035463.429
+ 39.400 33.500
+ -23624454.749 7 -18408658.593 7 20402537.195 20402533.436 20402535.994
+ 44.900 42.900
+ -11325415.885 6 -8824997.885 5 22563257.085 22563252.748 22563256.545
+ 39.100 34.500
+ -23295837.223 7 -18152597.339 7 20148489.743 20148488.064 20148488.704
+ 46.100 46.100
+ 06 1 1 3 25 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5602901.909 5 -4365884.357 4 23254981.103 23254977.989 23254980.250
+ 32.600 27.600
+ -16232299.465 7 -12648542.643 7 20590353.173 20590349.934 20590352.206
+ 44.700 47.000
+ -1885882.239 3 -1469518.937 3 24231315.383 24231314.230 24231314.563
+ 23.400 22.600
+ -16731496.214 7 -13037524.568 6 21488215.573 21488213.699 21488214.807
+ 42.700 37.600
+ -12838922.368 6 -10004343.045 5 22053732.185 22053730.296 22053731.662
+ 39.500 33.000
+ -23582367.683 7 -18375863.484 7 20410545.781 20410542.375 20410544.883
+ 45.000 43.000
+ -11401229.983 6 -8884073.802 5 22548830.128 22548826.049 22548829.518
+ 38.700 34.500
+ -23313331.883 7 -18166229.536 7 20145160.719 20145159.036 20145159.665
+ 46.100 46.200
+ 06 1 1 3 26 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5509605.712 5 -4293186.040 4 23272733.814 23272731.954 23272733.341
+ 32.400 26.800
+ -16261364.586 7 -12671190.781 7 20584822.220 20584818.946 20584821.287
+ 44.600 46.900
+ -1872977.992 3 -1459463.729 3 24233771.216 24233769.339 24233770.164
+ 21.600 22.600
+ -16810471.803 7 -13099063.964 6 21473187.413 21473185.021 21473186.275
+ 42.600 37.600
+ -12742689.650 6 -9929356.518 5 22072044.736 22072042.819 22072044.201
+ 39.400 32.800
+ -23539712.776 7 -18342625.906 7 20418662.826 20418659.363 20418661.842
+ 44.900 42.800
+ -11476906.589 6 -8943042.582 5 22534429.282 22534425.121 22534428.712
+ 38.800 34.700
+ -23330221.283 7 -18179390.103 7 20141947.021 20141944.985 20141945.937
+ 46.100 46.100
+ 06 1 1 3 26 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5416212.872 5 -4220412.379 4 23290505.500 23290504.006 23290505.045
+ 31.500 26.800
+ -16290128.438 7 -12693604.158 7 20579348.593 20579345.478 20579347.774
+ 44.700 47.200
+ -1859551.363 4 -1449001.465 3 24236327.122 24236324.465 24236325.906
+ 25.600 23.000
+ -16888946.260 7 -13160212.872 6 21458253.667 21458251.870 21458252.913
+ 42.600 37.400
+ -12646227.417 6 -9854191.141 5 22090400.472 22090398.777 22090400.094
+ 38.900 33.000
+ -23496490.926 7 -18308946.549 7 20426887.930 20426884.145 20426886.576
+ 44.900 42.600
+ -11552445.230 6 -9001903.852 5 22520054.926 22520050.741 22520054.266
+ 39.200 34.900
+ -23346504.119 7 -18192078.025 7 20138848.384 20138846.465 20138847.283
+ 46.100 46.100
+ 06 1 1 3 27 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5322724.920 5 -4147564.639 4 23308296.199 23308294.125 23308295.637
+ 32.100 26.500
+ -16318590.365 7 -12715782.272 7 20573932.360 20573929.301 20573931.513
+ 44.600 47.100
+ -1845603.413 3 -1438132.960 3 24238980.307 24238978.505 24238979.491
+ 23.000 22.100
+ -16966916.417 7 -13220968.822 6 21443416.500 21443414.767 21443415.683
+ 42.900 38.100
+ -12549538.312 6 -9778848.978 5 22108800.201 22108798.260 22108799.772
+ 39.300 32.700
+ -23452702.869 7 -18274825.987 7 20435220.259 20435216.796 20435219.259
+ 45.200 42.600
+ -11627845.018 6 -9060656.913 5 22505707.149 22505702.691 22505706.511
+ 40.100 35.600
+ -23362179.297 7 -18204292.449 7 20135865.507 20135863.623 20135864.397
+ 46.100 45.900
+ 06 1 1 3 27 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5229143.850 5 -4074644.336 4 23326103.922 23326101.409 23326102.993
+ 30.600 24.900
+ -16346749.248 7 -12737724.252 7 20568574.097 20568570.749 20568573.162
+ 44.600 47.100
+ -1831135.167 4 -1426859.027 4 24241733.839 24241732.412 24241733.082
+ 24.600 24.200
+ -17044379.004 7 -13281329.260 6 21428675.905 21428674.066 21428675.097
+ 43.300 38.000
+ -12452624.588 6 -9703331.800 5 22127242.064 22127240.487 22127241.587
+ 38.600 33.500
+ -23408349.818 7 -18240265.177 7 20443659.890 20443656.985 20443659.266
+ 45.100 42.700
+ -11703105.134 6 -9119301.157 5 22491385.392 22491380.877 22491384.817
+ 39.500 34.900
+ -23377245.815 7 -18216032.588 7 20132998.335 20132996.543 20132997.279
+ 46.000 46.000
+ 06 1 1 3 28 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5135471.160 5 -4001652.618 4 23343929.559 23343927.027 23343928.813
+ 31.600 24.900
+ -16374604.350 7 -12759429.519 7 20563273.426 20563270.157 20563272.471
+ 44.400 47.300
+ -1816147.492 3 -1415180.385 3 24244586.284 24244584.292 24244585.105
+ 23.800 21.600
+ -17121331.278 7 -13341292.044 6 21414032.154 21414030.391 21414031.466
+ 43.000 37.600
+ -12355488.983 6 -9627641.719 5 22145726.699 22145724.613 22145726.082
+ 39.000 32.600
+ -23363432.720 7 -18205264.855 7 20452208.063 20452204.429 20452206.850
+ 45.200 42.700
+ -11778224.612 6 -9177835.808 5 22477090.445 22477086.164 22477089.880
+ 39.400 35.200
+ -23391702.570 7 -18227297.590 7 20130247.317 20130245.502 20130246.227
+ 45.900 46.000
+ 06 1 1 3 28 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5041708.580 5 -3928590.869 4 23361772.178 23361769.197 23361771.083
+ 30.400 25.600
+ -16402154.739 7 -12780897.343 7 20558030.555 20558027.544 20558029.614
+ 44.300 47.200
+ -1800641.535 3 -1403097.862 3 24247536.679 24247535.252 24247535.347
+ 21.600 23.800
+ -17197769.978 7 -13400854.640 6 21399486.816 21399484.654 21399485.763
+ 43.400 37.700
+ -12258133.735 6 -9551780.486 5 22164252.390 22164250.603 22164251.952
+ 38.400 31.800
+ -23317952.594 7 -18169825.797 7 20460863.217 20460858.919 20460861.742
+ 45.200 42.500
+ -11853202.783 6 -9236260.343 5 22462823.420 22462818.564 22462822.496
+ 40.100 35.900
+ -23405548.284 7 -18238086.459 7 20127612.514 20127610.726 20127611.446
+ 45.800 46.000
+ 06 1 1 3 29 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4947857.694 5 -3855460.306 4 23379631.135 23379628.842 23379630.507
+ 32.300 25.900
+ -16429399.365 7 -12802126.912 7 20552846.134 20552842.995 20552845.219
+ 44.100 47.300
+ -1784618.291 4 -1390612.226 4 24250585.478 24250584.344 24250584.779
+ 24.900 24.200
+ -17273692.373 7 -13460014.938 6 21385038.840 21385036.995 21385038.214
+ 43.800 37.300
+ -12160561.608 6 -9475750.257 5 22182820.012 22182817.934 22182819.580
+ 38.600 31.800
+ -23271910.249 7 -18133948.643 7 20469624.088 20469620.469 20469623.061
+ 45.400 42.400
+ -11928038.586 6 -9294573.936 6 22448582.108 22448577.775 22448581.339
+ 39.800 36.300
+ -23418782.046 7 -18248398.481 7 20125094.278 20125092.388 20125093.177
+ 46.100 45.800
+ 06 1 1 3 29 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4853920.342 5 -3782262.378 4 23397506.227 23397504.223 23397505.739
+ 30.200 27.100
+ -16456337.708 7 -12823117.819 7 20547720.010 20547716.728 20547719.022
+ 44.100 47.300
+ -1768079.088 4 -1377724.589 3 24253733.114 24253731.244 24253732.368
+ 24.200 22.100
+ -17349095.545 7 -13518770.641 6 21370690.426 21370688.406 21370689.401
+ 43.600 37.600
+ -12062774.827 6 -9399552.772 5 22201428.594 22201426.285 22201427.854
+ 38.500 32.300
+ -23225306.678 7 -18097634.180 7 20478491.713 20478488.971 20478491.231
+ 45.400 42.300
+ -12002731.137 6 -9352775.906 6 22434368.098 22434364.343 22434367.704
+ 40.400 36.300
+ -23431402.738 7 -18258232.785 7 20122692.680 20122690.681 20122691.562
+ 45.800 45.800
+ 06 1 1 3 30 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4759898.253 5 -3708998.418 4 23415398.875 23415396.719 23415398.012
+ 30.800 27.100
+ -16482968.913 7 -12843869.394 7 20542652.206 20542649.061 20542651.246
+ 44.100 47.300
+ -1751025.132 3 -1364435.822 3 24256978.639 24256976.809 24256977.601
+ 23.800 23.000
+ -17423976.791 7 -13577119.637 6 21356440.657 21356438.807 21356439.921
+ 44.100 37.400
+ -11964776.079 6 -9323190.111 5 22220076.733 22220074.842 22220076.102
+ 37.900 32.600
+ -23178143.216 7 -18060883.446 7 20487467.194 20487463.917 20487466.287
+ 45.500 42.300
+ -12077279.683 6 -9410865.662 5 22420182.315 22420177.905 22420181.633
+ 40.400 35.900
+ -23443409.234 7 -18267588.498 7 20120408.113 20120405.969 20120406.938
+ 45.800 45.900
+ 06 1 1 3 30 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4665793.053 5 -3635669.695 4 23433306.402 23433303.554 23433305.578
+ 31.000 25.300
+ -16509292.122 7 -12864380.987 7 20537643.040 20537639.868 20537642.096
+ 44.100 47.400
+ -1733457.517 3 -1350746.822 3 24260321.240 24260319.476 24260320.372
+ 23.400 23.800
+ -17498333.370 7 -13635059.825 6 21342290.987 21342289.142 21342290.354
+ 44.300 37.200
+ -11866567.774 6 -9246664.173 5 22238765.658 22238763.485 22238764.985
+ 38.000 32.700
+ -23130420.845 7 -18023697.183 7 20496548.913 20496545.049 20496547.539
+ 45.200 42.100
+ -12151683.528 6 -9468842.660 6 22406023.622 22406019.429 22406022.972
+ 40.200 36.200
+ -23454800.603 7 -18276464.888 7 20118240.126 20118238.349 20118239.030
+ 45.600 45.900
+ 06 1 1 3 31 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4571606.153 4 -3562277.315 4 23451229.225 23451227.370 23451228.525
+ 29.700 25.900
+ -16535306.304 7 -12884651.775 7 20532692.467 20532689.486 20532691.640
+ 43.700 47.500
+ -1715377.224 4 -1336658.338 3 24263762.711 24263760.635 24263761.490
+ 25.900 23.800
+ -17572162.042 7 -13692588.651 6 21328242.151 21328240.112 21328241.243
+ 44.000 37.400
+ -11768152.353 6 -9169976.833 5 22257492.938 22257490.922 22257492.401
+ 38.100 32.300
+ -23082140.497 7 -17986076.140 6 20505736.080 20505732.557 20505734.927
+ 45.200 41.900
+ -12225941.597 6 -9526706.068 6 22391892.626 22391888.752 22391892.106
+ 40.200 36.500
+ -23465575.916 7 -18284861.233 7 20116189.658 20116187.841 20116188.542
+ 45.700 45.800
+ 06 1 1 3 31 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4477339.495 5 -3488822.778 4 23469167.043 23469165.716 23469166.703
+ 30.200 25.900
+ -16561010.805 7 -12904681.253 7 20527801.330 20527798.142 20527800.351
+ 43.800 47.500
+ -1696785.821 3 -1322171.554 3 24267299.231 24267298.148 24267298.356
+ 23.000 23.800
+ -17645460.235 7 -13749704.095 6 21314294.196 21314291.848 21314293.171
+ 44.300 37.200
+ -11669532.199 6 -9093129.956 5 22276260.095 22276257.726 22276259.362
+ 38.100 31.600
+ -23033303.430 7 -17948021.292 7 20515029.302 20515026.021 20515028.380
+ 45.400 42.100
+ -12300052.889 6 -9584455.099 5 22377789.808 22377785.600 22377789.102
+ 40.200 35.800
+ -23475734.260 7 -18292776.828 7 20114256.607 20114254.656 20114255.516
+ 45.700 45.600
+ 06 1 1 3 32 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4382994.490 4 -3415307.204 3 23487120.379 23487118.446 23487119.947
+ 29.900 23.800
+ -16586404.704 7 -12924468.704 7 20522968.835 20522965.923 20522968.041
+ 43.800 47.700
+ -1677684.542 4 -1307287.483 3 24270935.379 24270933.077 24270934.283
+ 27.600 23.400
+ -17718224.736 7 -13806403.695 6 21300446.841 21300445.157 21300446.434
+ 44.800 37.200
+ -11570709.936 6 -9016125.601 5 22295065.526 22295063.205 22295064.856
+ 37.700 32.100
+ -22983910.664 7 -17909533.434 6 20524428.115 20524425.006 20524427.343
+ 45.400 41.800
+ -12374016.939 6 -9642089.390 6 22363714.791 22363710.620 22363714.151
+ 40.200 36.000
+ -23485274.824 7 -18300211.031 7 20112441.042 20112439.106 20112439.891
+ 45.500 45.600
+ 06 1 1 3 32 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4288572.889 5 -3341731.909 3 23505088.183 23505085.691 23505087.691
+ 30.400 23.000
+ -16611487.135 7 -12944013.449 7 20518196.047 20518192.858 20518195.038
+ 43.800 47.700
+ -1658074.630 4 -1292007.112 3 24274666.560 24274664.858 24274665.677
+ 26.800 23.400
+ -17790452.887 7 -13862685.358 6 21286702.458 21286700.687 21286701.755
+ 44.500 37.400
+ -11471687.866 6 -8938965.543 5 22313908.536 22313906.501 22313908.140
+ 38.000 32.100
+ -22933963.356 7 -17870613.458 6 20533933.225 20533929.650 20533932.129
+ 45.500 41.400
+ -12447832.668 6 -9699608.120 6 22349668.187 22349663.948 22349667.444
+ 40.600 36.100
+ -23494196.629 7 -18307163.083 7 20110743.272 20110741.296 20110742.180
+ 45.600 45.500
+ 06 1 1 3 33 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4194076.177 5 -3268098.099 3 23523071.058 23523068.474 23523070.377
+ 31.500 22.600
+ -16636257.268 7 -12963314.845 7 20513482.408 20513479.282 20513481.409
+ 43.700 47.800
+ -1637957.365 4 -1276331.348 3 24278494.532 24278493.319 24278493.478
+ 25.300 23.400
+ -17862142.111 7 -13918547.066 6 21273060.466 21273058.606 21273059.667
+ 44.400 37.400
+ -11372468.496 6 -8861651.753 5 22332789.135 22332787.327 22332788.552
+ 37.300 31.800
+ -22883462.530 7 -17831262.173 6 20543543.328 20543539.603 20543542.223
+ 45.500 41.200
+ -12521499.093 6 -9757010.502 6 22335649.986 22335645.768 22335649.279
+ 40.400 36.300
+ -23502498.869 7 -18313632.361 7 20109163.534 20109161.429 20109162.480
+ 45.700 45.600
+ 06 1 1 3 33 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4099506.290 5 -3194407.278 4 23541066.958 23541064.904 23541066.263
+ 31.000 25.300
+ -16660714.406 7 -12982372.354 8 20508828.436 20508825.294 20508827.405
+ 43.600 48.000
+ -1617333.859 4 -1260261.106 3 24282419.123 24282417.575 24282418.265
+ 25.900 23.000
+ -17933289.482 7 -13973986.562 6 21259521.656 21259519.560 21259520.744
+ 44.500 37.200
+ -11273054.182 6 -8784186.056 5 22351707.138 22351704.999 22351706.679
+ 37.700 31.300
+ -22832409.883 7 -17791480.897 6 20553258.009 20553254.643 20553256.994
+ 45.300 41.300
+ -12595015.596 6 -9814296.059 6 22321660.215 22321655.840 22321659.551
+ 40.700 36.000
+ -23510180.464 7 -18319618.018 7 20107701.912 20107699.750 20107700.807
+ 45.900 45.700
+ 06 1 1 3 34 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4004864.387 4 -3120660.360 4 23559076.371 23559074.511 23559075.509
+ 29.000 24.600
+ -16684857.627 7 -13001185.252 8 20504233.945 20504230.924 20504233.097
+ 43.800 48.000
+ -1596205.676 4 -1243797.662 3 24286440.063 24286438.182 24286439.185
+ 26.800 22.100
+ -18003892.356 7 -14029001.774 6 21246086.642 21246084.302 21246085.689
+ 44.700 37.400
+ -11173447.314 6 -8706570.312 5 22370662.044 22370659.745 22370661.468
+ 37.700 31.000
+ -22780806.380 7 -17751270.394 6 20563077.767 20563074.502 20563076.903
+ 45.400 41.200
+ -12668381.030 6 -9871463.903 6 22307699.354 22307695.139 22307698.772
+ 41.400 36.800
+ -23517240.810 7 -18325119.581 7 20106358.292 20106356.341 20106357.209
+ 45.800 46.000
+ 06 1 1 3 34 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -3910152.429 4 -3046858.829 4 23577100.236 23577097.448 23577099.278
+ 29.500 24.200
+ -16708685.947 7 -13019752.773 7 20499699.690 20499696.512 20499698.772
+ 43.400 47.900
+ -1574573.920 4 -1226941.788 4 24290556.102 24290555.061 24290555.116
+ 25.300 24.200
+ -18073948.024 7 -14083590.586 6 21232755.456 21232753.231 21232754.541
+ 44.600 37.700
+ -11073650.429 6 -8628806.507 5 22389652.296 22389650.402 22389651.747
+ 37.500 31.500
+ -22728653.041 7 -17710631.430 6 20573002.458 20572998.959 20573001.500
+ 45.500 41.100
+ -12741594.163 6 -9928513.075 6 22293767.252 22293763.223 22293766.738
+ 41.500 37.000
+ -23523678.930 7 -18330136.296 7 20105133.032 20105131.231 20105131.980
+ 45.700 46.000
+ 06 1 1 3 35 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -3815371.801 4 -2973003.810 3 23595136.163 23595133.235 23595135.196
+ 29.700 23.000
+ -16732198.547 7 -13038074.277 7 20495225.252 20495222.239 20495224.378
+ 43.400 47.900
+ -1552439.957 4 -1209694.539 4 24294768.557 24294767.122 24294767.641
+ 28.400 24.900
+ -18143453.388 7 -14137750.591 6 21219528.655 21219526.882 21219527.916
+ 44.900 38.100
+ -10973665.864 6 -8550896.465 5 22408679.087 22408676.853 22408678.506
+ 37.400 31.000
+ -22675951.465 7 -17669565.272 6 20583031.448 20583027.758 20583030.322
+ 45.500 41.200
+ -12814654.622 6 -9985443.270 6 22279864.607 22279860.091 22279863.961
+ 41.500 37.000
+ -23529493.877 7 -18334667.424 7 20104026.738 20104024.768 20104025.550
+ 45.600 46.100
+ 06 1 1 3 35 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3720524.192 4 -2899096.582 3 23613184.663 23613182.440 23613184.119
+ 29.700 23.800
+ -214911.541 3 -167463.423 2 24667462.155 24667460.266 24667461.819
+ 21.600 12.600
+ -16755394.814 7 -13056149.290 8 20490811.255 20490808.203 20490810.287
+ 43.400 48.100
+ -1529805.388 4 -1192057.263 3 24299075.764 24299073.803 24299074.873
+ 27.400 21.100
+ -18212406.319 7 -14191480.133 6 21206407.447 21206405.493 21206406.688
+ 44.800 38.000
+ -10873496.024 6 -8472842.048 5 22427739.880 22427738.738 22427739.766
+ 36.500 31.800
+ -22622702.738 7 -17628072.767 6 20593164.454 20593160.695 20593163.237
+ 45.400 41.000
+ -12887561.522 6 -10042253.824 6 22265990.566 22265986.341 22265989.944
+ 41.200 37.200
+ -23534684.953 7 -18338712.412 7 20103038.831 20103036.910 20103037.681
+ 45.600 46.100
+ 06 1 1 3 36 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3625611.052 4 -2825138.289 3 23631246.522 23631243.573 23631245.625
+ 28.800 23.000
+ -315454.536 3 -245808.574 2 24648329.984 24648327.872 24648328.674
+ 21.100 12.600
+ -16778273.936 7 -13073977.177 8 20486457.516 20486454.382 20486456.493
+ 43.300 48.100
+ -1506671.463 4 -1174030.864 3 24303477.313 24303475.879 24303476.114
+ 25.300 21.100
+ -18280803.621 7 -14244776.704 6 21193391.864 21193389.886 21193391.019
+ 44.800 38.000
+ -10773143.198 6 -8394645.045 5 22446837.417 22446834.844 22446836.813
+ 37.400 30.200
+ -22568908.334 7 -17586155.057 6 20603400.824 20603397.416 20603399.910
+ 45.600 40.900
+ -12960313.743 6 -10098943.827 6 22252145.903 22252142.113 22252145.375
+ 41.000 37.400
+ -23539251.453 7 -18342270.722 7 20102169.599 20102167.920 20102168.568
+ 45.900 45.900
+ 06 1 1 3 36 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3530634.218 4 -2751130.374 4 23649319.314 23649317.380 23649318.813
+ 28.100 25.300
+ -415870.415 3 -324054.686 2 24629220.751 24629218.729 24629220.514
+ 21.600 16.100
+ -16800834.793 7 -13091557.063 8 20482164.210 20482161.198 20482163.274
+ 43.200 48.100
+ -1483039.640 4 -1155616.498 3 24307974.848 24307973.381 24307973.961
+ 26.200 21.600
+ -18348642.992 7 -14297638.532 6 21180482.667 21180480.418 21180481.724
+ 44.700 38.100
+ -10672609.689 6 -8316307.239 4 22465967.966 22465965.720 22465967.384
+ 36.400 29.900
+ -22514569.276 7 -17543812.936 6 20613741.032 20613737.933 20613740.231
+ 45.400 41.100
+ -13032910.487 6 -10155512.694 6 22238331.578 22238327.132 22238330.922
+ 41.800 36.600
+ -23543192.809 7 -18345341.906 7 20101419.790 20101417.889 20101418.679
+ 45.800 46.000
+ 06 1 1 3 37 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3435594.910 4 -2677073.744 4 23667405.373 23667403.329 23667404.607
+ 28.600 25.600
+ -516157.888 3 -402200.737 2 24610137.717 24610134.930 24610136.401
+ 20.500 17.000
+ -16823076.620 7 -13108888.360 8 20477931.625 20477928.784 20477930.788
+ 43.500 48.200
+ -1458911.333 4 -1136815.241 2 24312566.327 24312564.074 24312565.454
+ 24.200 15.100
+ -18415921.671 7 -14350063.460 6 21167679.623 21167677.774 21167679.104
+ 45.200 38.100
+ -10571897.997 6 -8237830.601 5 22485133.146 22485130.616 22485132.042
+ 36.100 30.200
+ -22459687.049 7 -17501047.575 6 20624184.952 20624181.662 20624183.900
+ 45.400 40.700
+ -13105350.752 6 -10211959.640 6 22224546.811 22224542.106 22224546.042
+ 41.900 36.400
+ -23546508.366 7 -18347925.452 7 20100788.731 20100786.911 20100787.675
+ 45.700 46.000
+ 06 1 1 3 37 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3340494.920 4 -2602969.880 4 23685502.182 23685500.140 23685501.191
+ 27.900 25.600
+ -616316.009 2 -480246.002 2 24591077.411 24591075.225 24591076.314
+ 17.800 13.900
+ -16844998.878 7 -13125970.639 8 20473760.289 20473757.047 20473759.276
+ 43.300 48.100
+ -1434288.139 3 -1117628.337 3 24317251.717 24317250.206 24317250.748
+ 23.800 18.600
+ -18482636.861 7 -14402049.314 6 21154984.333 21154982.338 21154983.577
+ 45.200 38.500
+ -10471010.296 6 -8159216.805 4 22504331.699 22504328.570 22504330.960
+ 36.300 29.200
+ -22404263.183 7 -17457860.165 6 20634731.946 20634728.433 20634730.832
+ 45.600 40.700
+ -13177633.449 6 -10268283.797 6 22210791.917 22210787.402 22210791.181
+ 41.800 36.900
+ -23549197.316 7 -18350020.731 7 20100277.007 20100275.174 20100275.858
+ 45.300 45.900
+ 06 1 1 3 38 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3245335.480 4 -2528819.680 4 23703609.644 23703608.419 23703609.037
+ 27.400 24.600
+ -716343.723 2 -558189.627 2 24572042.708 24572040.674 24572041.714
+ 17.000 17.000
+ -16866600.242 7 -13142802.871 8 20469649.698 20469646.452 20469648.693
+ 43.300 48.200
+ -1409171.620 3 -1098057.058 3 24322031.704 24322029.759 24322030.534
+ 23.400 20.500
+ -18548786.086 7 -14453594.154 6 21142396.675 21142394.467 21142395.655
+ 45.000 38.700
+ -10369949.251 5 -8080467.943 4 22523562.267 22523560.314 22523561.513
+ 35.900 29.200
+ -22348298.925 7 -17414251.653 6 20645381.748 20645378.072 20645380.563
+ 45.400 40.600
+ -13249757.943 6 -10324484.678 6 22197066.886 22197062.649 22197066.187
+ 41.600 37.300
+ -23551259.106 7 -18351627.316 7 20099884.684 20099882.837 20099883.567
+ 45.400 45.900
+ 06 1 1 3 38 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3150118.416 4 -2454624.584 4 23721729.667 23721727.582 23721728.459
+ 27.600 24.600
+ -816239.875 3 -636030.788 2 24553033.194 24553031.160 24553032.360
+ 21.600 17.000
+ -16887880.070 7 -13159384.554 8 20465600.081 20465597.065 20465599.178
+ 43.200 48.200
+ -1383562.943 3 -1078102.237 2 24326904.411 24326902.588 24326903.230
+ 23.000 15.100
+ -18614366.560 7 -14504695.806 6 21129917.000 21129914.863 21129916.149
+ 45.200 38.600
+ -10268716.793 6 -8001585.515 4 22542826.328 22542824.230 22542825.657
+ 36.300 29.700
+ -22291795.650 7 -17370223.137 6 20656133.379 20656130.325 20656132.520
+ 45.200 40.500
+ -13321722.969 6 -10380561.295 6 22183372.321 22183368.101 22183371.669
+ 41.500 37.700
+ -23552693.143 7 -18352744.745 7 20099611.887 20099610.004 20099610.857
+ 45.700 46.000
+ 06 1 1 3 39 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3054845.294 4 -2380385.787 4 23739859.934 23739857.672 23739858.909
+ 29.200 24.900
+ -916003.009 3 -713768.281 1 24534049.452 24534046.830 24534048.381
+ 23.400 11.000
+ -16908837.490 7 -13175715.013 8 20461611.948 20461608.995 20461611.091
+ 43.200 48.200
+ -1357463.867 4 -1057765.290 3 24331871.182 24331869.764 24331870.403
+ 26.500 19.300
+ -18679375.954 7 -14555352.462 6 21117546.307 21117543.935 21117545.387
+ 45.400 38.900
+ -10167315.578 6 -7922571.582 4 22562122.760 22562120.158 22562121.976
+ 36.100 29.900
+ -22234755.029 7 -17325775.903 6 20666987.666 20666984.781 20666986.960
+ 45.600 40.500
+ -13393527.850 6 -10436513.129 6 22169708.163 22169703.891 22169707.544
+ 41.900 37.700
+ -23553498.703 7 -18353372.450 7 20099458.842 20099456.655 20099457.682
+ 45.800 46.000
+ 06 1 1 3 39 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2959517.155 4 -2306104.130 3 23757999.043 23757997.672 23757998.262
+ 28.600 23.400
+ -1015632.310 3 -791401.501 2 24515090.340 24515088.149 24515088.899
+ 23.000 16.100
+ -16929471.799 7 -13191793.694 8 20457685.460 20457682.377 20457684.585
+ 43.300 48.200
+ -1330875.991 3 -1037047.473 2 24336930.734 24336928.647 24336929.928
+ 23.400 15.100
+ -18743811.865 7 -14605562.248 6 21105284.286 21105282.385 21105283.520
+ 45.200 39.100
+ -10065747.706 5 -7843427.784 4 22581450.052 22581448.105 22581449.456
+ 35.700 29.700
+ -22177178.077 7 -17280910.763 6 20677944.251 20677941.337 20677943.553
+ 45.500 40.500
+ -13465171.661 7 -10492339.460 6 22156074.862 22156070.462 22156074.204
+ 42.100 37.400
+ -23553675.350 7 -18353510.094 7 20099424.828 20099423.063 20099423.926
+ 45.700 45.900
+ 06 1 1 3 40 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2864135.893 4 -2231781.079 3 23776149.591 23776147.774 23776148.859
+ 28.600 22.600
+ -1115126.847 3 -868929.706 2 24496157.063 24496155.006 24496155.910
+ 21.100 15.100
+ -16949781.985 7 -13207619.815 8 20453820.546 20453817.516 20453819.683
+ 43.100 48.300
+ -1303800.623 4 -1015949.802 2 24342082.961 24342081.320 24342082.072
+ 24.900 15.100
+ -18807671.845 7 -14655323.257 6 21093132.147 21093130.216 21093131.217
+ 45.100 39.200
+ -9964015.599 5 -7764156.014 4 22600808.686 22600807.031 22600808.496
+ 35.400 29.200
+ -22119066.394 7 -17235628.943 6 20689002.587 20688999.733 20689001.870
+ 45.600 40.600
+ -13536653.203 7 -10548039.339 6 22142472.561 22142467.956 22142471.929
+ 42.100 37.100
+ -23553222.642 7 -18353157.334 7 20099511.155 20099509.207 20099510.023
+ 45.700 45.900
+ 06 1 1 3 40 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2768702.917 4 -2157417.729 3 23794310.155 23794308.145 23794309.492
+ 28.600 22.100
+ -1214485.281 2 -946351.824 1 24477249.858 24477247.354 24477249.042
+ 16.100 11.000
+ -16969767.285 7 -13223192.775 8 20450017.569 20450014.409 20450016.657
+ 43.200 48.400
+ -1276239.489 3 -994473.575 2 24347327.562 24347325.846 24347326.636
+ 21.600 17.000
+ -18870952.718 7 -14704633.009 6 21081090.269 21081088.229 21081089.402
+ 45.100 39.300
+ -9862121.440 5 -7684757.975 4 22620197.986 22620196.804 22620197.641
+ 34.500 29.900
+ -22060421.666 7 -17189931.766 6 20700162.402 20700159.433 20700161.706
+ 45.800 40.400
+ -13607971.835 7 -10603612.276 6 22128900.628 22128896.650 22128900.137
+ 42.000 37.900
+ -23552139.942 7 -18352313.667 7 20099717.190 20099715.226 20099716.032
+ 45.600 45.900
+ 06 1 1 3 41 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2673219.823 4 -2083015.285 3 23812479.870 23812477.987 23812479.242
+ 26.800 22.600
+ -1313706.495 2 -1023667.027 2 24458368.229 24458366.263 24458367.635
+ 17.000 13.900
+ -16989427.042 7 -13238512.066 8 20446276.267 20446273.301 20446275.401
+ 42.800 48.400
+ -1248194.197 3 -972620.118 2 24352664.634 24352662.632 24352663.463
+ 23.400 13.900
+ -18933652.282 7 -14753489.801 6 21069158.882 21069156.781 21069158.020
+ 44.900 38.900
+ -9760067.694 5 -7605235.572 4 22639619.133 22639616.796 22639618.549
+ 35.700 28.800
+ -22001245.452 7 -17143820.441 6 20711423.585 20711420.330 20711422.648
+ 45.900 40.200
+ -13679126.460 7 -10659057.416 6 22115360.493 22115356.268 22115359.901
+ 42.300 37.900
+ -23550426.665 7 -18350978.644 7 20100043.137 20100041.172 20100042.037
+ 45.600 45.900
+ 06 1 1 3 41 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2577687.970 4 -2008574.900 3 23830659.299 23830657.473 23830658.672
+ 28.400 23.400
+ -1412789.478 3 -1100874.513 1 24439514.028 24439511.738 24439512.664
+ 18.600 9.000
+ -17008760.007 7 -13253576.716 8 20442597.283 20442594.385 20442596.378
+ 42.800 48.400
+ -1219666.252 4 -950390.558 2 24358092.763 24358090.671 24358091.742
+ 24.900 13.900
+ -18995768.137 7 -14801891.752 6 21057338.419 21057336.522 21057337.708
+ 44.800 39.100
+ -9657856.554 5 -7525590.537 5 22659069.262 22659067.132 22659068.584
+ 34.800 30.100
+ -21941538.935 7 -17097295.874 6 20722785.769 20722782.023 20722784.538
+ 45.700 39.800
+ -13750116.020 7 -10714373.942 6 22101851.861 22101847.551 22101851.166
+ 42.500 38.300
+ -23548082.479 7 -18349152.005 7 20100489.216 20100487.282 20100488.111
+ 45.500 45.900
+ 06 1 1 3 42 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2482108.944 4 -1934097.753 3 23848847.087 23848845.408 23848846.603
+ 27.900 23.000
+ -1511733.218 3 -1177973.529 9 24420685.215 24420683.546 24420684.499
+ 20.500 -3.000
+ -17027765.586 7 -13268386.257 8 20438980.747 20438977.737 20438979.866
+ 43.000 48.400
+ -1190657.200 4 -927786.086 2 24363613.888 24363611.165 24363612.758
+ 24.600 13.900
+ -19057297.606 7 -14849836.777 6 21045629.882 21045627.883 21045629.003
+ 44.400 39.300
+ -9555490.199 5 -7445824.549 4 22678549.083 22678546.678 22678548.538
+ 35.300 29.500
+ -21881303.685 7 -17050359.319 6 20734248.144 20734244.273 20734246.879
+ 45.700 39.800
+ -13820939.629 7 -10769561.145 6 22088374.296 22088369.982 22088373.642
+ 42.200 38.000
+ -23545106.958 7 -18346833.416 7 20101055.538 20101053.628 20101054.440
+ 45.600 45.900
+ 06 1 1 3 42 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2386483.894 4 -1859584.734 3 23867045.433 23867042.266 23867044.380
+ 28.400 23.000
+ -1610536.676 3 -1254963.235 1 24401883.949 24401881.531 24401883.009
+ 20.500 6.500
+ -17046442.972 7 -13282940.066 8 20435426.649 20435423.479 20435425.729
+ 42.900 48.500
+ -1161168.998 3 -904808.261 2 24369224.727 24369222.812 24369223.824
+ 23.800 17.000
+ -19118238.309 7 -14897323.023 6 21034033.297 21034031.081 21034032.317
+ 44.300 39.400
+ -9452970.951 5 -7365939.430 4 22698057.238 22698055.876 22698056.841
+ 34.400 29.700
+ -21820541.426 7 -17003012.121 6 20745811.047 20745807.063 20745809.642
+ 45.500 39.800
+ -13891596.216 7 -10824618.215 6 22074928.825 22074924.521 22074928.131
+ 42.200 38.200
+ -23541499.690 7 -18344022.559 7 20101741.822 20101740.099 20101740.762
+ 45.300 45.900
+ 06 1 1 3 43 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2290814.656 4 -1785037.270 3 23885249.804 23885246.710 23885249.546
+ 29.200 20.500
+ -1709198.726 3 -1331842.719 1 24383108.400 24383107.096 24383107.865
+ 19.300 6.500
+ -17064791.443 7 -13297237.576 8 20431934.894 20431931.898 20431934.000
+ 42.900 48.500
+ -1131203.237 3 -881458.356 3 24374926.326 24374925.456 24374925.771
+ 23.400 19.300
+ -19178588.179 7 -14944348.875 6 21022548.820 21022546.827 21022547.952
+ 44.200 39.100
+ -9350301.073 5 -7285936.921 4 22717595.339 22717592.856 22717594.802
+ 35.700 28.400
+ -21759253.576 7 -16955255.362 6 20757473.229 20757469.782 20757472.093
+ 45.500 39.600
+ -13962084.849 7 -10879544.406 6 22061515.116 22061510.914 22061514.662
+ 42.500 38.100
+ -23537260.232 7 -18340719.086 7 20102548.522 20102546.810 20102547.469
+ 45.500 45.900
+ 06 1 1 3 43 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2195102.388 4 -1710456.263 3 23903462.037 23903460.680 23903461.509
+ 24.200 21.100
+ -1807718.132 3 -1408611.054 2 24364361.012 24364359.319 24364360.445
+ 19.900 12.600
+ -17082809.928 7 -13311277.955 8 20428506.086 20428503.173 20428505.224
+ 43.100 48.500
+ -1100761.474 4 -857737.513 2 24380719.827 24380718.057 24380718.700
+ 24.200 15.100
+ -19238344.676 7 -14990912.370 6 21011177.709 21011175.593 21011176.826
+ 44.600 39.300
+ -9247482.880 5 -7205818.858 4 22737160.610 22737158.862 22737160.056
+ 35.600 28.800
+ -21697442.162 7 -16907090.640 6 20769235.429 20769232.123 20769234.401
+ 45.400 39.700
+ -14032404.550 7 -10934338.967 6 22048133.861 22048129.436 22048133.247
+ 42.600 38.100
+ -23532388.162 7 -18336922.670 7 20103475.878 20103473.947 20103474.777
+ 45.600 45.900
+ 06 1 1 3 44 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2099348.581 4 -1635842.956 3 23921684.156 23921682.390 23921683.545
+ 26.800 20.500
+ -1906093.891 2 -1485267.455 1 24345640.838 24345638.857 24345639.979
+ 17.000 11.000
+ -17100497.583 7 -13325060.538 8 20425140.268 20425137.301 20425139.396
+ 42.600 48.600
+ -1069845.528 4 -833647.152 2 24386603.277 24386601.454 24386602.312
+ 25.600 17.000
+ -19297505.458 7 -15037011.668 6 20999919.649 20999917.688 20999918.860
+ 44.800 39.500
+ -9144518.340 5 -7125586.742 4 22756754.079 22756752.325 22756753.455
+ 34.300 28.800
+ -21635108.548 7 -16858519.014 6 20781096.933 20781093.880 20781096.162
+ 45.600 39.500
+ -14102554.273 7 -10989001.061 6 22034784.808 22034780.436 22034784.132
+ 42.300 38.300
+ -23526883.418 7 -18332633.257 7 20104523.443 20104521.453 20104522.295
+ 45.600 46.000
+ 06 1 1 3 44 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2003554.909 4 -1561198.510 3 23939913.361 23939910.831 23939912.553
+ 26.800 21.100
+ -2004325.100 2 -1561811.223 1 24326947.807 24326945.809 24326947.412
+ 16.100 11.000
+ -17117853.834 7 -13338584.889 8 20421837.558 20421834.488 20421836.676
+ 42.800 48.600
+ -1038457.028 3 -809188.591 2 24392575.616 24392574.427 24392574.976
+ 23.000 17.000
+ -19356067.885 7 -15082644.723 6 20988775.631 20988773.675 20988774.847
+ 44.900 39.700
+ -9041409.785 5 -7045242.419 4 22776375.235 22776373.087 22776374.566
+ 34.900 29.000
+ -21572254.196 7 -16809541.620 6 20793057.365 20793054.638 20793056.847
+ 45.600 39.500
+ -14172533.118 7 -11043530.010 6 22021468.443 22021463.956 22021467.657
+ 42.400 38.400
+ -23520745.458 7 -18327850.432 7 20105691.157 20105689.363 20105690.104
+ 45.400 45.600
+ 06 1 1 3 45 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1907722.473 4 -1486523.878 3 23958149.436 23958147.344 23958148.897
+ 27.100 22.100
+ -2102410.719 2 -1638241.556 9 24308282.956 24308281.560 24308282.163
+ 17.800 -3.000
+ -17134877.417 7 -13351850.019 8 20418598.085 20418595.054 20418597.154
+ 42.700 48.700
+ -1006597.772 4 -784363.194 2 24398639.158 24398637.209 24398637.873
+ 24.900 17.000
+ -19414030.159 7 -15127810.120 6 20977745.762 20977743.821 20977745.037
+ 45.400 39.500
+ -8938159.455 5 -6964787.616 4 22796022.424 22796020.635 22796022.040
+ 34.000 28.400
+ -21508881.031 7 -16760159.946 6 20805117.353 20805114.115 20805116.567
+ 45.600 39.000
+ -14242339.981 7 -11097924.945 6 22008184.530 22008180.208 22008183.941
+ 42.800 38.400
+ -23513973.969 7 -18322573.949 7 20106979.823 20106977.854 20106978.739
+ 45.600 45.500
+ 06 1 1 3 45 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1811852.731 4 -1411820.194 3 23976393.480 23976390.406 23976392.579
+ 26.500 19.300
+ -2200349.505 2 -1714557.517 24289646.502 24289644.343 24289645.027
+ 13.900 3.000
+ -17151567.898 7 -13364855.589 8 20415422.124 20415418.935 20415421.132
+ 42.700 48.700
+ -974269.638 4 -759172.436 2 24404790.548 24404788.819 24404789.783
+ 26.500 17.800
+ -19471389.666 7 -15172505.820 6 20966831.071 20966828.654 20966830.021
+ 45.400 39.700
+ -8834769.537 5 -6884224.049 4 22815697.280 22815695.661 22815696.979
+ 34.600 28.400
+ -21444990.534 7 -16710375.157 6 20817275.688 20817272.068 20817274.683
+ 45.600 39.100
+ -14311974.111 7 -11152185.287 6 21994933.792 21994929.186 21994933.055
+ 43.000 38.200
+ -23506568.924 7 -18316803.782 7 20108389.253 20108387.012 20108388.084
+ 45.400 45.600
+ 06 1 1 3 46 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1715947.173 4 -1337088.591 4 23994643.864 23994641.529 23994643.258
+ 27.400 24.200
+ -2298140.436 2 -1790758.194 1 24271036.938 24271035.705 24271035.284
+ 13.900 9.000
+ -17167924.327 7 -13377600.858 8 20412309.600 20412306.360 20412308.584
+ 42.800 48.600
+ -941474.353 4 -733617.691 3 24411031.516 24411029.684 24411030.523
+ 24.900 21.100
+ -19528144.535 7 -15216730.362 6 20956030.897 20956028.567 20956030.023
+ 45.900 39.700
+ -8731242.256 5 -6803553.452 4 22835397.442 22835395.783 22835397.291
+ 33.500 26.200
+ -21380584.514 7 -16660188.661 6 20829531.390 20829528.259 20829530.580
+ 45.500 39.000
+ -14381434.243 7 -11206310.046 6 21981715.597 21981711.446 21981715.036
+ 43.100 38.700
+ -23498530.012 7 -18310539.698 7 20109918.819 20109916.916 20109917.772
+ 45.600 45.600
+ 06 1 1 3 46 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1620007.218 4 -1262330.179 3 24012900.375 24012897.846 24012899.835
+ 25.300 22.100
+ -2395782.723 1 -1866843.056 24252456.397 24252454.465 24252455.157
+ 6.500 3.000
+ -17183946.037 7 -13390085.304 8 20409260.790 20409257.605 20409259.766
+ 42.700 48.600
+ -908213.691 3 -707700.296 3 24417360.342 24417358.999 24417359.573
+ 23.400 21.600
+ -19584292.277 7 -15260481.827 6 20945346.424 20945343.925 20945345.430
+ 45.900 39.600
+ -8627579.855 5 -6722777.548 4 22855124.128 22855122.032 22855123.500
+ 33.200 26.500
+ -21315664.575 7 -16609601.706 6 20841885.343 20841882.092 20841884.431
+ 45.600 39.300
+ -14450719.480 7 -11260298.521 6 21968531.190 21968526.682 21968530.565
+ 43.100 38.600
+ -23489856.923 7 -18303781.449 7 20111569.117 20111567.357 20111568.052
+ 45.500 45.800
+ 06 1 1 3 47 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1524034.269 4 -1187546.089 3 24031163.352 24031161.206 24031162.725
+ 25.300 23.000
+ -2493275.003 2 -1942811.039 1 24233904.072 24233902.562 24233902.991
+ 17.000 6.500
+ -17199631.972 7 -13402308.108 8 20406275.534 20406272.652 20406274.702
+ 42.500 48.700
+ -874489.333 3 -681421.574 3 24423778.307 24423776.546 24423777.315
+ 23.000 19.300
+ -19639830.712 7 -15303758.518 6 20934777.321 20934775.316 20934776.596
+ 45.600 39.700
+ -8523784.347 5 -6641897.928 4 22874875.815 22874873.953 22874875.307
+ 34.300 26.500
+ -21250232.444 7 -16558615.650 6 20854337.133 20854333.322 20854335.940
+ 45.400 38.900
+ -14519828.663 7 -11314149.834 6 21955380.038 21955375.653 21955379.445
+ 43.200 38.500
+ -23480549.513 7 -18296528.922 7 20113340.358 20113338.442 20113339.214
+ 45.500 45.600
+ 06 1 1 3 47 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1428029.609 4 -1112737.266 3 24049432.491 24049430.313 24049431.747
+ 24.900 21.100
+ -2590616.328 2 -2018661.440 9 24215380.505 24215378.827 24215379.518
+ 12.600 -3.000
+ -17214981.320 7 -13414268.645 8 20403354.884 20403351.708 20403353.924
+ 42.900 48.600
+ -840303.179 3 -654783.046 3 24430283.169 24430282.153 24430282.652
+ 21.600 19.900
+ -19694757.018 7 -15346558.223 6 20924325.275 20924323.190 20924324.408
+ 45.700 39.500
+ -8419857.923 5 -6560916.304 4 22894652.198 22894650.531 22894651.667
+ 33.100 28.100
+ -21184289.953 7 -16507231.909 6 20866885.625 20866881.892 20866884.286
+ 45.300 38.900
+ -14588760.990 7 -11367863.321 6 21942262.507 21942258.405 21942261.974
+ 43.200 38.700
+ -23470607.650 7 -18288782.014 7 20115232.245 20115230.376 20115231.136
+ 45.600 45.700
+ 06 1 1 3 48 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1331994.522 4 -1037904.747 3 24067707.453 24067705.270 24067706.719
+ 28.800 18.600
+ -2687806.016 2 -2094393.615 9 24196885.524 24196884.254 24196884.905
+ 12.600 -3.000
+ -17229993.183 7 -13425966.202 8 20400498.138 20400495.070 20400497.260
+ 42.500 48.500
+ -805657.120 3 -627786.090 3 24436876.625 24436875.076 24436875.778
+ 23.800 19.900
+ -19749069.639 7 -15388879.734 6 20913989.576 20913987.862 20913989.016
+ 45.700 39.700
+ -8315802.770 5 -6479834.367 4 22914453.113 22914451.670 22914452.641
+ 33.400 27.900
+ -21117838.738 7 -16455451.753 6 20879530.854 20879527.108 20879529.514
+ 45.200 38.900
+ -14657515.404 7 -11421438.182 6 21929179.364 21929174.954 21929178.693
+ 43.700 39.000
+ -23460031.220 7 -18280540.641 7 20117244.940 20117243.006 20117243.822
+ 45.600 45.700
+ 06 1 1 3 48 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1235930.574 4 -963049.707 3 24085987.481 24085985.721 24085987.056
+ 28.600 21.600
+ -2784842.415 2 -2170006.371 24178420.604 24178419.362 24178419.802
+ 16.100 3.000
+ -17244666.709 7 -13437400.113 8 20397706.043 20397702.737 20397705.003
+ 42.700 48.500
+ -770553.038 3 -600432.254 2 24443556.694 24443555.177 24443555.486
+ 22.600 17.000
+ -19802766.041 7 -15430721.078 6 20903772.126 20903769.784 20903771.188
+ 45.900 39.700
+ -8211621.018 5 -6398653.794 4 22934277.694 22934276.562 22934277.334
+ 32.300 28.400
+ -21050880.823 7 -16403276.774 6 20892272.647 20892268.762 20892271.349
+ 45.200 38.400
+ -14726090.639 7 -11474873.427 6 21916129.914 21916125.503 21916129.160
+ 43.500 39.300
+ -23448820.030 7 -18271804.650 7 20119378.363 20119376.429 20119377.249
+ 45.500 45.600
+ 06 1 1 3 49 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1139839.010 4 -888173.153 3 24104273.213 24104271.059 24104272.245
+ 24.900 21.600
+ -2881724.747 2 -2245499.131 9 24159984.452 24159982.166 24159982.683
+ 12.600 -3.000
+ -17259001.686 7 -13448570.227 8 20394977.977 20394974.845 20394977.132
+ 42.800 48.500
+ -734992.937 3 -572723.102 2 24450323.040 24450321.529 24450322.026
+ 21.600 16.100
+ -19855844.399 7 -15472080.830 6 20893671.497 20893669.383 20893670.664
+ 45.900 39.800
+ -8107314.850 5 -6317376.266 4 22954127.684 22954125.478 22954127.167
+ 33.000 27.400
+ -20983417.899 7 -16350708.283 6 20905110.078 20905106.567 20905108.928
+ 45.100 38.200
+ -14794485.878 7 -11528168.405 6 21903114.398 21903110.367 21903113.811
+ 43.700 39.500
+ -23436974.269 7 -18262574.189 7 20121632.321 20121630.567 20121631.219
+ 45.300 45.500
+ 06 1 1 3 49 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1043721.059 4 -813276.058 3 24122564.081 24122561.498 24122563.421
+ 25.300 21.100
+ -2978452.005 -2320870.986 9 24141577.353 24141576.268 24141577.444
+ 3.000 -3.000
+ -17272996.925 7 -13459475.610 8 20392314.752 20392311.706 20392313.875
+ 42.600 48.600
+ -698978.425 3 -544659.836 3 24457176.999 24457175.073 24457175.800
+ 22.100 19.900
+ -19908302.744 7 -15512957.450 6 20883688.816 20883686.768 20883687.996
+ 45.600 39.800
+ -8002886.134 5 -6236003.250 4 22973999.944 22973997.289 22973999.201
+ 33.500 26.200
+ -20915451.689 7 -16297747.613 6 20918043.846 20918040.155 20918042.576
+ 45.300 38.400
+ -14862699.959 7 -11581322.209 6 21890133.639 21890129.449 21890132.970
+ 43.400 38.900
+ -23424493.515 7 -18252848.922 7 20124007.195 20124005.468 20124006.122
+ 45.300 45.300
+ 06 1 1 3 50 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -947578.253 4 -738359.621 3 24140859.702 24140857.272 24140858.863
+ 26.500 20.500
+ -3075023.284 2 24123201.222 24123200.377
+ 12.600
+ -17286651.419 7 -13470115.476 8 20389716.432 20389713.338 20389715.537
+ 42.900 48.600
+ -662511.472 3 -516244.042 3 24464116.909 24464114.901 24464115.558
+ 21.600 19.900
+ -19960138.408 7 -15553348.865 6 20873824.766 20873822.722 20873824.024
+ 45.500 39.800
+ -7898337.131 5 -6154536.489 4 22993893.833 22993892.399 22993893.458
+ 32.600 26.200
+ -20846984.185 7 -16244396.330 6 20931072.926 20931069.127 20931071.651
+ 45.100 38.100
+ -14930732.054 7 -11634334.220 6 21877187.784 21877183.313 21877187.160
+ 43.900 38.700
+ -23411377.932 7 -18242628.986 7 20126503.026 20126501.249 20126502.006
+ 45.300 45.300
+ 06 1 1 3 50 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -851411.868 4 -663424.762 3 24159158.951 24159156.665 24159158.425
+ 26.200 21.100
+ -3171437.639 1 24104855.025 24104853.620
+ 6.500
+ -17299964.426 7 -13480489.245 8 20387182.969 20387179.922 20387182.080
+ 42.700 48.500
+ -625594.090 2 -487477.297 2 24471141.002 24471139.733 24471140.009
+ 17.800 17.800
+ -20011350.209 7 -15593254.155 6 20864079.743 20864077.322 20864078.844
+ 45.700 39.700
+ -7793670.173 5 -6072977.833 4 23013811.317 23013810.438 23013810.824
+ 31.500 27.100
+ -20778017.266 7 -16190655.879 6 20944196.558 20944193.005 20944195.353
+ 44.800 38.100
+ -14998580.792 7 -11687203.362 6 21864276.527 21864272.113 21864275.973
+ 44.100 39.300
+ -23397627.482 7 -18231914.351 7 20129119.607 20129117.923 20129118.542
+ 45.400 45.300
+ 06 1 1 3 51 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -755223.291 3 -588472.644 3 24177463.009 24177460.989 24177462.096
+ 23.800 22.100
+ -3267693.850 2 -2546254.177 9 24086536.766 24086535.984 24086536.862
+ 13.900 -3.000
+ -17312934.852 7 -13490596.072 8 20384714.824 20384711.760 20384713.924
+ 42.700 48.700
+ -588228.240 2 -458361.110 2 24478251.659 24478250.355 24478250.362
+ 17.000 15.100
+ -20061935.560 7 -15632671.300 6 20854453.500 20854451.365 20854452.611
+ 45.300 40.000
+ -7688886.983 5 -5991328.589 4 23033751.199 23033749.431 23033750.718
+ 33.600 25.900
+ -20708552.573 7 -16136527.568 6 20957415.326 20957411.787 20957414.063
+ 44.700 38.000
+ -15066245.199 7 -11739928.860 6 21851400.758 21851396.045 21851400.012
+ 44.100 39.500
+ -23383242.390 7 -18220705.188 7 20131857.163 20131855.336 20131856.063
+ 45.200 45.200
+ 06 1 1 3 51 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -659013.545 4 -513504.008 3 24195770.885 24195768.606 24195770.469
+ 25.300 21.100
+ -3363791.250 1 -2621135.264 9 24068249.890 24068248.956 24068248.798
+ 11.000 -3.000
+ -17325562.303 7 -13500435.642 8 20382311.918 20382308.838 20382311.047
+ 42.600 48.600
+ -550415.967 3 -428896.977 3 24485447.059 24485445.957 24485446.556
+ 19.900 21.100
+ -20111892.379 7 -15671598.669 6 20844947.049 20844944.803 20844946.125
+ 45.300 39.900
+ -7583989.895 5 -5909590.605 4 23053712.634 23053711.435 23053712.278
+ 32.000 27.600
+ -20638591.958 7 -16082012.822 6 20970728.576 20970724.851 20970727.256
+ 44.600 37.800
+ -15133724.165 7 -11792509.857 6 21838559.685 21838555.416 21838559.017
+ 44.000 39.700
+ -23368222.548 7 -18209001.417 7 20134715.496 20134713.521 20134714.365
+ 45.400 45.300
+ 06 1 1 3 52 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -562784.105 3 -438520.033 3 24214082.910 24214080.794 24214082.193
+ 23.800 22.100
+ -3459728.426 2 -2695891.495 9 24049993.651 24049991.496 24049992.358
+ 15.100 -3.000
+ -17337845.999 7 -13510007.353 8 20379974.398 20379971.303 20379973.486
+ 42.600 48.500
+ -512159.023 3 -399086.397 3 24492727.622 24492725.723 24492726.584
+ 20.500 21.100
+ -20161218.729 7 -15710034.781 6 20835560.213 20835558.285 20835559.554
+ 45.400 39.900
+ -7478980.927 5 -5827765.445 4 23073695.691 23073693.551 23073695.018
+ 31.500 27.400
+ -20568137.494 7 -16027113.250 6 20984135.096 20984131.942 20984134.064
+ 44.600 37.800
+ -15201016.696 7 -11844945.566 6 21825754.176 21825750.047 21825753.551
+ 44.000 39.900
+ -23352568.043 7 -18196803.104 7 20137694.426 20137692.450 20137693.345
+ 45.500 45.400
+ 06 1 1 3 52 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -466536.277 4 -363521.747 3 24232398.381 24232396.772 24232397.687
+ 26.500 21.100
+ -3555504.546 1 24031767.917 24031767.250
+ 9.000
+ -17349784.683 7 -13519310.228 8 20377702.792 20377699.482 20377701.843
+ 42.700 48.600
+ -473459.525 3 -368930.942 2 24500092.277 24500089.922 24500091.077
+ 23.000 17.000
+ -20209912.634 7 -15747978.073 6 20826294.313 20826292.122 20826293.560
+ 45.600 40.000
+ -7373862.069 5 -5745854.652 4 23093699.723 23093696.261 23093698.913
+ 32.800 25.300
+ -20497191.162 7 -15971830.410 6 20997635.962 20997632.604 20997634.849
+ 44.800 38.000
+ -15268121.862 7 -11897235.282 6 21812984.397 21812980.043 21812983.847
+ 44.200 39.300
+ -23336279.055 7 -18184110.389 7 20140794.066 20140792.114 20140792.972
+ 45.500 45.300
+ 06 1 1 3 53 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -370271.191 4 -288510.007 3 24250717.420 24250714.535 24250716.621
+ 27.100 18.600
+ -3651118.663 1 24013573.827 24013571.789
+ 6.500
+ -17361377.982 7 -13528343.967 8 20375496.497 20375493.339 20375495.582
+ 42.600 48.600
+ -434319.363 3 -338432.114 2 24507539.759 24507538.417 24507538.990
+ 19.900 12.600
+ -20257972.233 7 -15785427.102 6 20817148.801 20817146.792 20817147.959
+ 45.700 40.200
+ -7268635.344 5 -5663859.789 4 23113723.175 23113720.612 23113722.541
+ 32.000 25.600
+ -20425754.952 7 -15916165.869 6 21011229.791 21011226.608 21011228.743
+ 44.800 37.800
+ -15335038.351 7 -11949377.981 6 21800250.726 21800246.238 21800250.004
+ 44.100 39.600
+ -23319355.655 7 -18170923.329 7 20144014.507 20144012.640 20144013.412
+ 45.300 45.400
+ 06 1 1 3 53 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -273990.526 4 -213486.075 2 24269037.636 24269035.385 24269037.042
+ 24.900 12.600
+ -3746569.784 23995410.044 23995409.075
+ 3.000
+ -17372625.259 7 -13537108.079 8 20373356.047 20373353.072 20373355.172
+ 42.600 48.600
+ -394740.801 3 -307591.658 1 24515071.792 24515069.375 24515070.446
+ 19.300 9.000
+ -20305395.673 7 -15822380.424 6 20808124.687 20808122.422 20808123.716
+ 45.700 40.200
+ -7163302.770 5 -5581782.468 4 23133767.248 23133765.213 23133766.651
+ 31.300 25.900
+ -20353830.565 7 -15860120.894 6 21024916.352 21024913.269 21024915.411
+ 44.600 37.400
+ -15401765.074 7 -12001372.810 6 21787553.333 21787548.576 21787552.490
+ 44.600 39.600
+ -23301798.002 7 -18157242.042 7 20147355.766 20147353.799 20147354.673
+ 45.500 45.400
+ 06 1 1 3 54 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -177695.156 3 -138450.722 2 24287362.620 24287360.495 24287361.693
+ 22.600 17.000
+ -3841856.935 -2993653.945 9 23977277.394 23977274.335 23977276.722
+ 3.000 -3.000
+ -17383525.302 7 -13545601.621 8 20371282.068 20371278.869 20371281.136
+ 42.600 48.700
+ -354726.019 3 -276411.336 24522686.066 24522683.979 24522684.975
+ 21.600 3.000
+ -20352180.957 7 -15858836.480 6 20799221.451 20799219.525 20799220.723
+ 45.800 40.700
+ -7057866.515 5 -5499624.356 4 23153831.542 23153828.955 23153830.704
+ 31.800 25.600
+ -20281419.967 7 -15803697.082 6 21038695.749 21038692.595 21038694.709
+ 44.600 37.600
+ -15468301.483 7 -12053219.344 6 21774891.438 21774887.237 21774890.860
+ 44.200 39.700
+ -23283606.353 7 -18143066.733 7 20150817.567 20150815.521 20150816.482
+ 45.600 45.400
+ 06 1 1 3 54 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -81386.418 3 -63404.996 3 24305689.165 24305687.836 24305688.957
+ 22.600 19.900
+ -3936979.307 2 -3067775.212 9 23959175.072 23959173.246 23959174.110
+ 13.900 -3.000
+ -17394077.422 7 -13553824.056 8 20369274.034 20369270.802 20369273.118
+ 42.700 48.500
+ -314276.736 3 -244892.400 2 24530383.340 24530381.724 24530382.198
+ 23.400 12.600
+ -20398326.320 7 -15894793.901 6 20790440.351 20790438.311 20790439.538
+ 45.900 40.700
+ -6952328.418 5 -5417386.875 4 23173913.956 23173912.017 23173913.464
+ 32.000 25.300
+ -20208525.453 7 -15746896.191 6 21052567.133 21052564.037 21052566.104
+ 44.500 37.200
+ -15534645.888 7 -12104916.269 6 21762266.771 21762262.139 21762266.052
+ 44.500 39.600
+ -23264780.908 7 -18128397.560 7 20154399.827 20154397.882 20154398.733
+ 45.500 45.300
+ 06 1 1 3 55 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 14934.374 3 11650.179 3 24324019.490 24324016.989 24324018.540
+ 23.800 19.900
+ -4031935.859 2 -3141767.291 9 23941104.479 23941104.794 23941106.090
+ 12.600 -3.000
+ -17404280.709 7 -13561774.669 8 20367332.378 20367329.144 20367331.496
+ 42.600 48.500
+ -273395.178 3 -213036.609 2 24538162.586 24538160.913 24538161.643
+ 23.400 17.000
+ -20443829.955 7 -15930251.270 6 20781780.902 20781779.279 20781780.261
+ 45.900 40.700
+ -6846690.588 5 -5335071.684 4 23194016.282 23194014.442 23194015.770
+ 30.600 25.900
+ -20135148.738 7 -15689719.535 6 21066530.417 21066527.296 21066529.237
+ 44.500 37.300
+ -15600797.524 7 -12156462.990 6 21749678.304 21749673.746 21749677.755
+ 44.600 39.500
+ -23245321.709 7 -18113234.550 7 20158102.815 20158100.787 20158101.694
+ 45.400 45.200
+ 06 1 1 3 55 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 111266.073 3 86713.810 2 24342349.888 24342348.024 24342348.937
+ 21.600 17.000
+ -4126725.302 1 -3215629.178 9 23923068.441 23923066.782 23923066.978
+ 9.000 -3.000
+ -17414134.633 7 -13569453.056 8 20365457.097 20365454.016 20365456.277
+ 42.700 48.500
+ -232083.351 4 -180845.565 2 24546023.853 24546023.089 24546022.961
+ 24.200 17.800
+ -20488690.137 7 -15965207.251 6 20773244.685 20773242.557 20773243.700
+ 46.000 41.000
+ -6740954.974 5 -5252680.309 4 23214137.025 23214134.802 23214136.290
+ 31.000 25.600
+ -20061291.930 7 -15632168.781 6 21080585.270 21080581.692 21080583.961
+ 44.500 37.200
+ -15666755.054 7 -12207858.461 6 21737127.187 21737122.630 21737126.605
+ 44.800 40.200
+ -23225229.277 7 -18097578.112 7 20161926.099 20161924.260 20161925.065
+ 45.500 45.200
+ 06 1 1 3 56 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 207607.250 3 161784.888 3 24360683.856 24360681.241 24360682.627
+ 21.600 18.600
+ -4221347.106 23905062.787 23905061.488
+ 3.000
+ -17423638.001 7 -13576858.275 8 20363648.764 20363645.619 20363647.843
+ 42.600 48.500
+ -190343.147 4 -148320.773 2 24553966.962 24553965.428 24553966.175
+ 26.200 17.800
+ -20532904.881 7 -15999660.292 6 20764830.831 20764828.715 20764829.987
+ 46.100 41.100
+ -6635123.557 5 -5170214.261 4 23234275.934 23234273.771 23234275.621
+ 30.400 24.600
+ -19986957.059 7 -15574245.518 6 21094730.996 21094727.129 21094729.514
+ 44.500 37.100
+ -15732517.351 7 -12259101.800 6 21724612.878 21724608.768 21724612.281
+ 44.700 40.700
+ -23204503.991 7 -18081428.539 7 20165870.160 20165868.223 20165869.103
+ 45.500 45.200
+ 06 1 1 3 56 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 303956.954 3 236862.546 2 24379017.786 24379015.661 24379017.030
+ 23.400 16.100
+ -17432790.417 7 -13583990.029 8 20361907.188 20361903.965 20361906.268
+ 42.500 48.500
+ -148177.119 4 -115464.127 3 24561991.106 24561989.667 24561990.162
+ 24.900 20.500
+ -20576472.247 7 -16033608.876 6 20756540.386 20756538.094 20756539.510
+ 46.500 41.000
+ -6529198.306 5 -5087675.112 4 23254432.564 23254430.881 23254432.104
+ 31.000 24.200
+ -19912146.642 7 -15515951.698 6 21108966.510 21108962.991 21108965.288
+ 44.500 36.800
+ -15798083.631 7 -12310192.387 6 21712135.969 21712131.629 21712135.414
+ 44.600 39.900
+ -23183145.984 7 -18064785.935 7 20169934.415 20169932.566 20169933.371
+ 45.500 45.200
+ 06 1 1 3 57 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 400313.756 3 311945.800 3 24397354.455 24397352.185 24397353.472
+ 22.600 19.300
+ -17441590.988 7 -13590847.618 8 20360232.427 20360229.306 20360231.508
+ 42.600 48.400
+ -105587.165 4 -82277.187 3 24570095.553 24570093.939 24570094.569
+ 24.600 22.600
+ -20619391.038 7 -16067052.088 6 20748373.057 20748371.043 20748372.357
+ 46.700 41.000
+ -6423181.290 5 -5005064.461 4 23274607.005 23274605.046 23274606.296
+ 30.800 25.600
+ -19836862.250 7 -15457288.561 6 21123293.028 21123289.184 21123291.604
+ 44.100 36.900
+ -15863452.560 7 -12361129.214 6 21699697.150 21699692.272 21699696.374
+ 44.600 40.000
+ -23161155.590 7 -18047650.570 7 20174118.921 20174117.112 20174117.821
+ 45.500 45.200
+ 06 1 1 3 57 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 496676.503 3 387033.621 3 24415691.545 24415689.700 24415690.873
+ 21.600 20.500
+ -17450039.000 7 -13597430.487 8 20358624.832 20358621.650 20358623.874
+ 42.500 48.500
+ -62575.789 4 -48761.803 3 24578279.944 24578278.654 24578279.109
+ 24.900 22.600
+ -20661658.716 7 -16099987.938 6 20740329.836 20740327.877 20740329.085
+ 46.400 41.500
+ -6317074.389 5 -4922383.769 4 23294798.679 23294796.981 23294798.080
+ 30.400 24.600
+ -19761105.759 7 -15398257.562 6 21137708.660 21137705.201 21137707.482
+ 44.300 36.600
+ -15928622.993 7 -12411911.359 6 21687295.319 21687290.815 21687294.690
+ 44.600 40.200
+ -23138533.259 7 -18030022.787 7 20178424.054 20178422.063 20178422.841
+ 45.300 45.200
+ 06 1 1 3 58 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 593044.053 3 462125.220 3 24434030.031 24434027.427 24434029.112
+ 23.400 19.300
+ -106479.274 1 23833362.517 23833361.894
+ 9.000
+ -17458133.477 7 -13603737.874 8 20357084.567 20357081.356 20357083.637
+ 42.700 48.600
+ -19144.838 4 -14919.519 3 24586545.213 24586543.224 24586544.337
+ 25.600 20.500
+ -20703274.376 7 -16132415.719 6 20732410.465 20732408.751 20732409.714
+ 46.400 41.900
+ -6210879.574 5 -4839634.551 3 23315006.617 23315005.090 23315006.405
+ 30.600 23.400
+ -19684879.629 7 -15338860.599 6 21152213.799 21152210.455 21152212.700
+ 44.100 36.300
+ -15993593.586 7 -12462537.790 6 21674931.799 21674927.329 21674931.187
+ 44.800 40.400
+ -23115279.390 7 -18011902.892 7 20182849.115 20182847.120 20182848.085
+ 45.600 45.100
+ 06 1 1 3 58 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 689415.232 3 537219.605 3 24452368.829 24452366.490 24452368.374
+ 22.100 18.600
+ -200247.768 1 -156037.614 9 23815518.211 23815515.687 23815516.206
+ 6.500 -3.000
+ -17465873.690 7 -13609769.210 8 20355611.712 20355608.443 20355610.750
+ 42.700 48.500
+ 24703.555 4 19248.018 3 24594888.863 24594887.672 24594888.172
+ 25.300 21.600
+ -20744236.437 7 -16164334.200 6 20724615.858 20724613.750 20724614.966
+ 46.400 41.600
+ -6104598.764 5 -4756818.342 4 23335231.762 23335229.703 23335231.252
+ 30.600 24.600
+ -19608185.777 7 -15279099.175 6 21166808.006 21166804.850 21166807.060
+ 44.000 36.300
+ -16058363.713 7 -12513008.011 6 21662606.611 21662602.168 21662605.952
+ 45.100 40.700
+ -23091394.340 7 -17993291.168 7 20187394.384 20187392.318 20187393.257
+ 45.700 45.000
+ 06 1 1 3 59 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 785788.726 3 612315.808 2 24470707.806 24470704.982 24470707.103
+ 22.100 13.900
+ -17473259.004 7 -13615523.997 8 20354206.243 20354203.079 20354205.322
+ 42.800 48.500
+ 68967.274 4 53739.224 3 24603312.183 24603310.274 24603311.587
+ 24.200 19.300
+ -20784542.828 7 -16195741.772 6 20716945.634 20716943.652 20716944.828
+ 46.400 41.500
+ -5998233.773 5 -4673936.523 4 23355472.726 23355470.277 23355472.135
+ 31.100 24.900
+ -19531026.497 7 -15218975.081 6 21181490.911 21181487.801 21181490.167
+ 44.300 36.200
+ -16122932.213 7 -12563321.119 6 21650319.674 21650314.953 21650318.959
+ 45.100 40.300
+ -23066878.537 7 -17974187.947 7 20192059.406 20192057.517 20192058.361
+ 45.500 45.100
+ 06 1 1 3 59 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 882163.492 3 687413.062 2 24489047.181 24489044.800 24489046.619
+ 22.100 16.100
+ -17480288.511 7 -13621001.537 8 20352868.592 20352865.410 20352867.647
+ 42.600 48.700
+ 113643.866 3 88552.126 3 24611813.726 24611812.453 24611812.872
+ 23.000 20.500
+ -20824192.107 7 -16226637.308 6 20709400.765 20709398.493 20709399.882
+ 46.700 41.800
+ -5891786.743 5 -4590990.787 4 23375728.463 23375726.203 23375727.938
+ 31.000 24.200
+ -19453403.710 7 -15158489.813 6 21196262.235 21196259.012 21196261.436
+ 44.300 36.100
+ -16187297.719 7 -12613476.058 6 21638071.227 21638066.453 21638070.514
+ 45.300 40.200
+ -23041732.499 7 -17954593.637 7 20196844.633 20196842.653 20196843.536
+ 45.500 45.100
+ 06 1 1 4 0 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 978538.352 3 762510.330 2 24507386.584 24507384.571 24507386.088
+ 23.800 17.800
+ -17486961.545 7 -13626201.309 8 20351598.841 20351595.593 20351597.963
+ 43.000 48.700
+ 158731.209 3 123685.129 3 24620393.744 24620391.981 24620392.551
+ 21.600 19.900
+ -20863182.530 7 -16257019.455 6 20701981.055 20701978.890 20701980.211
+ 46.800 41.800
+ -5785259.312 5 -4507982.389 3 23395999.537 23395997.598 23395999.287
+ 30.800 23.800
+ -19375319.181 7 -15097644.754 6 21211121.003 21211117.998 21211120.286
+ 44.200 36.200
+ -16251459.192 7 -12663472.006 6 21625861.132 21625857.121 21625860.752
+ 45.200 40.600
+ -23015956.727 7 -17934508.625 7 20201749.416 20201747.576 20201748.365
+ 45.500 44.900
+ 06 1 1 4 0 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 1074912.099 3 837606.751 3 24525726.245 24525723.533 24525725.673
+ 23.400 18.600
+ -17493277.160 7 -13631122.569 8 20350397.101 20350393.788 20350396.154
+ 42.700 48.600
+ 204227.187 3 159136.534 3 24629050.976 24629050.058 24629049.889
+ 22.600 21.100
+ -20901513.205 7 -16286887.508 6 20694687.253 20694684.820 20694686.271
+ 47.100 41.900
+ -5678653.619 5 -4424913.025 3 23416286.453 23416284.505 23416285.880
+ 30.200 22.100
+ -19296775.869 7 -15036442.194 6 21226067.384 21226064.315 21226066.544
+ 43.800 36.200
+ -16315415.257 7 -12713307.893 6 21613691.105 21613686.742 21613690.402
+ 45.000 40.800
+ -22989551.921 7 -17913933.457 7 20206774.177 20206772.204 20206773.055
+ 45.400 44.800
+ 06 1 1 4 1 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 1171283.536 3 912701.343 2 24544065.248 24544062.481 24544064.492
+ 23.000 17.800
+ -17499234.928 7 -13635764.983 8 20349263.166 20349260.027 20349262.324
+ 43.000 48.600
+ 250129.398 3 194904.487 2 24637785.977 24637784.603 24637784.764
+ 19.300 17.000
+ -20939182.249 7 -16316240.003 6 20687519.057 20687516.607 20687518.122
+ 47.400 41.900
+ -5571971.335 4 -4341783.978 3 23436586.893 23436585.536 23436586.647
+ 29.000 23.400
+ -19217775.572 7 -14974883.541 6 21241100.495 21241097.699 21241099.791
+ 44.000 36.300
+ -16379164.920 7 -12762982.950 6 21601559.860 21601555.499 21601559.206
+ 45.000 40.700
+ -22962518.614 7 -17892868.548 7 20211918.535 20211916.429 20211917.472
+ 45.500 44.700
+ 06 1 1 4 1 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1267651.754 3 987793.467 3 24562403.278 24562401.245 24562402.631
+ 23.400 18.600
+ -179407.988 1 23709155.823 23709156.413
+ 6.500
+ -17504833.833 7 -13640127.766 8 20348197.835 20348194.569 20348196.912
+ 42.700 48.500
+ 296435.754 3 230987.364 3 24646598.580 24646596.446 24646597.276
+ 20.500 18.600
+ -20976187.658 7 -16345075.379 6 20680476.958 20680474.700 20680476.104
+ 47.400 41.900
+ -5465214.411 4 -4258596.779 4 23456902.458 23456900.725 23456901.838
+ 29.000 24.600
+ -19138321.080 7 -14912970.970 6 21256220.800 21256217.442 21256219.703
+ 43.800 36.100
+ -16442707.230 7 -12812496.431 6 21589468.126 21589463.835 21589467.473
+ 45.100 41.100
+ -22934857.086 7 -17871314.111 7 20217182.206 20217180.220 20217181.134
+ 45.400 44.600
+ 06 1 1 4 2 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1364015.292 3 1062881.894 3 24580740.635 24580739.179 24580740.194
+ 22.600 21.100
+ -271942.990 9 23691547.602 23691547.286
+ -3.000
+ -17510072.934 7 -13644210.177 8 20347200.797 20347197.586 20347199.897
+ 42.700 48.500
+ 343144.074 3 267383.430 2 24655486.361 24655484.609 24655485.688
+ 19.300 15.100
+ -21012528.593 7 -16373392.983 7 20673561.346 20673559.301 20673560.505
+ 47.300 42.000
+ -5358384.902 4 -4175352.989 4 23477231.172 23477229.979 23477230.779
+ 29.500 25.300
+ -19058414.219 7 -14850705.907 6 21271426.819 21271423.105 21271425.536
+ 43.500 36.000
+ -16506040.751 7 -12861847.220 6 21577416.297 21577411.630 21577415.618
+ 45.200 40.600
+ -22906568.117 7 -17849270.760 7 20222565.428 20222563.471 20222564.364
+ 45.500 44.600
+ 06 1 1 4 2 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1460373.361 3 1137966.101 2 24599077.398 24599075.058 24599076.610
+ 23.000 16.100
+ -364298.206 -283867.672 9 23673972.219 23673970.371 23673972.500
+ 3.000 -3.000
+ -17514951.531 7 -13648011.688 8 20346272.422 20346269.282 20346271.536
+ 42.600 48.600
+ 390251.894 2 304090.794 2 24664450.595 24664449.635 24664449.567
+ 17.800 17.000
+ -21048203.758 7 -16401191.805 6 20666772.805 20666770.583 20666771.849
+ 47.500 41.900
+ -5251484.281 4 -4092053.832 4 23497573.883 23497571.934 23497573.121
+ 27.900 24.900
+ -18978056.609 7 -14788089.603 6 21286718.307 21286714.915 21286717.073
+ 43.400 36.200
+ -16569164.214 7 -12911034.331 6 21565404.153 21565399.765 21565403.559
+ 45.300 41.100
+ -22877652.595 7 -17826739.193 7 20228067.884 20228066.005 20228066.783
+ 45.500 44.700
+ 06 1 1 4 3 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1556724.606 3 1213044.987 2 24617412.196 24617409.582 24617411.812
+ 21.600 12.600
+ -456472.360 2 -355691.663 23656432.717 23656430.367 23656431.555
+ 12.600 3.000
+ -17519469.355 7 -13651532.070 8 20345412.799 20345409.571 20345411.823
+ 42.500 48.600
+ 437756.834 3 341107.650 3 24673490.029 24673489.593 24673489.423
+ 18.600 19.900
+ -21083211.164 7 -16428470.296 6 20660111.234 20660108.773 20660110.316
+ 47.800 41.800
+ -5144514.654 4 -4008700.866 3 23517929.537 23517927.234 23517929.034
+ 29.500 23.000
+ -18897251.306 7 -14725124.447 5 21302095.065 21302091.482 21302093.797
+ 43.400 35.900
+ -16632076.867 7 -12960057.170 6 21553432.374 21553427.929 21553431.819
+ 45.400 41.000
+ -22848111.003 7 -17803719.779 7 20233689.302 20233687.655 20233688.237
+ 45.300 44.600
+ 06 1 1 4 3 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1653068.046 2 1288117.793 2 24635746.319 24635743.777 24635745.268
+ 17.800 13.900
+ -548465.006 2 -427374.242 9 23638926.718 23638924.601 23638924.557
+ 13.900 -3.000
+ -17523625.316 7 -13654770.468 8 20344621.910 20344618.656 20344621.027
+ 42.600 48.700
+ 485656.645 3 378432.142 2 24682605.774 24682603.889 24682604.602
+ 21.100 15.100
+ -21117549.717 7 -16455227.608 6 20653576.769 20653574.285 20653575.881
+ 47.800 41.800
+ -5037477.828 5 -3925295.563 4 23538298.691 23538295.804 23538298.044
+ 30.400 24.200
+ -18816000.427 7 -14661812.080 5 21317556.523 21317553.082 21317555.343
+ 43.300 35.500
+ -16694777.410 7 -13008914.735 6 21541501.052 21541496.268 21541500.285
+ 45.200 40.900
+ -22817944.019 7 -17780213.048 7 20239430.131 20239428.223 20239429.054
+ 45.300 44.500
+ 06 1 1 4 4 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1749402.421 2 1363183.554 1 24654076.887 24654074.950 24654076.020
+ 15.100 6.500
+ -640275.039 2 -498914.504 9 23621455.879 23621454.492 23621454.665
+ 15.100 -3.000
+ -17527418.769 7 -13657726.402 8 20343900.046 20343896.793 20343899.088
+ 42.700 48.600
+ 533948.957 2 416062.537 2 24691794.722 24691793.927 24691794.016
+ 17.800 17.800
+ -21151218.455 7 -16481462.987 6 20647169.687 20647167.446 20647168.821
+ 47.800 41.900
+ -4930375.613 4 -3841839.298 3 23558679.214 23558676.849 23558678.527
+ 28.800 22.600
+ -18734305.839 7 -14598153.979 5 21333102.208 21333098.811 21333101.315
+ 43.600 34.800
+ -16757264.457 7 -13057605.939 6 21529609.968 21529605.462 21529609.379
+ 45.200 41.000
+ -22787152.365 7 -17756219.558 7 20245289.711 20245287.657 20245288.548
+ 45.200 44.600
+ 06 1 1 4 4 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1845726.753 3 1438241.487 2 24672406.473 24672405.747 24672406.379
+ 18.600 12.600
+ -731901.606 2 23604019.913 23604019.089
+ 13.900
+ -17530848.656 7 -13660399.042 8 20343247.283 20343244.124 20343246.397
+ 42.700 48.700
+ 582631.728 2 453997.151 2 24701059.075 24701058.314 24701058.496
+ 17.800 17.800
+ -21184215.569 8 -16507175.023 6 20640890.351 20640888.241 20640889.644
+ 48.000 41.800
+ -4823209.705 4 -3758333.399 3 23579071.746 23579070.111 23579071.157
+ 26.800 23.400
+ -18652170.254 7 -14534152.238 5 21348731.652 21348728.688 21348731.033
+ 43.300 34.800
+ -16819536.899 7 -13106129.911 6 21517759.829 21517755.391 21517759.201
+ 45.100 41.300
+ -22755736.566 7 -17731739.716 7 20251267.552 20251265.891 20251266.547
+ 45.400 44.300
+ 06 1 1 4 5 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1942039.933 3 1513290.699 2 24690736.140 24690732.458 24690735.407
+ 21.600 15.100
+ -823344.156 1 -641565.694 9 23586618.830 23586617.109 23586618.815
+ 9.000 -3.000
+ -17533914.420 7 -13662787.948 8 20342663.805 20342660.777 20342662.922
+ 42.600 48.700
+ 631702.465 2 492234.064 2 24710396.497 24710395.156 24710396.092
+ 17.800 15.100
+ -21216539.798 8 -16532362.734 7 20634739.492 20634737.228 20634738.596
+ 48.100 42.000
+ -4715981.908 4 -3674779.269 3 23599476.148 23599474.465 23599475.790
+ 28.400 21.100
+ -18569595.647 7 -14469808.397 5 21364444.976 21364442.341 21364444.452
+ 43.400 35.100
+ -16881593.681 7 -13154485.837 6 21505950.895 21505946.480 21505950.309
+ 45.500 41.300
+ -22723697.597 7 -17706774.290 7 20257364.772 20257362.690 20257363.630
+ 45.500 44.400
+ 06 1 1 4 5 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2038340.947 4 1588330.402 2 24709061.311 24709058.972 24709060.605
+ 24.900 13.900
+ -914601.559 2 -712675.359 9 23569253.119 23569251.718 23569252.710
+ 13.900 -3.000
+ -17536615.441 7 -13664892.650 8 20342149.836 20342146.836 20342148.978
+ 42.700 48.700
+ 681158.616 3 530771.341 2 24719807.923 24719806.339 24719807.129
+ 18.600 15.100
+ -21248190.357 8 -16557025.498 7 20628716.471 20628714.395 20628715.649
+ 48.300 42.200
+ -4608694.018 4 -3591178.320 3 23619892.265 23619891.251 23619891.885
+ 27.100 22.600
+ -18486584.511 7 -14405124.406 5 21380241.881 21380238.821 21380240.934
+ 42.700 35.100
+ -16943433.643 7 -13202672.821 6 21494183.205 21494178.577 21494182.565
+ 45.600 41.200
+ -22691036.404 7 -17681324.014 7 20263579.742 20263577.987 20263578.712
+ 45.300 44.400
+ 06 1 1 4 6 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2134628.595 3 1663359.728 2 24727384.067 24727381.463 24727383.353
+ 22.100 16.100
+ -1005672.900 2 -783639.993 2 23551923.359 23551920.991 23551922.585
+ 13.900 13.900
+ -17538951.270 7 -13666712.782 8 20341705.546 20341702.310 20341704.521
+ 42.600 48.500
+ 730998.022 3 569607.225 2 24729292.538 24729291.215 24729291.840
+ 20.500 17.000
+ -21279166.324 8 -16581162.607 7 20622821.902 20622819.909 20622821.141
+ 48.200 42.200
+ -4501348.003 4 -3507532.077 3 23640320.080 23640318.763 23640319.770
+ 27.400 23.800
+ -18403139.097 7 -14340102.029 5 21396121.406 21396117.985 21396120.239
+ 42.700 34.900
+ -17005055.430 7 -13250689.800 6 21482457.009 21482452.221 21482456.433
+ 46.000 41.100
+ -22657753.682 7 -17655389.434 7 20269913.229 20269911.457 20269912.128
+ 45.200 44.500
+ 06 1 1 4 6 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2230902.046 3 1738377.957 2 24745703.365 24745702.194 24745703.036
+ 20.500 17.000
+ -1096557.472 2 -854459.112 23534628.041 23534625.603 23534627.132
+ 15.100 3.000
+ -17540920.704 7 -13668247.399 8 20341330.681 20341327.428 20341329.807
+ 42.500 48.600
+ 781218.096 3 608739.737 2 24738849.328 24738847.544 24738847.786
+ 21.100 15.100
+ -21309465.707 8 -16604772.511 7 20617056.147 20617054.010 20617055.323
+ 48.300 42.200
+ -4393945.405 4 -3423841.739 4 23660758.176 23660756.395 23660757.558
+ 27.600 24.900
+ -18319261.816 7 -14274743.133 5 21412082.665 21412079.309 21412081.541
+ 42.400 34.500
+ -17066458.007 7 -13298535.958 6 21470772.533 21470767.740 21470771.900
+ 45.800 41.400
+ -22623850.369 7 -17628971.274 7 20276364.954 20276363.063 20276363.846
+ 45.300 44.300
+ 06 1 1 4 7 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2327159.997 3 1813384.146 1 24764022.213 24764018.774 24764020.995
+ 22.600 11.000
+ -1187254.241 2 -925131.905 1 23517368.988 23517366.665 23517367.710
+ 17.800 9.000
+ -17542522.723 7 -13669495.726 8 20341026.027 20341022.600 20341024.999
+ 42.600 48.500
+ 831816.468 3 648167.019 2 24748477.602 24748475.832 24748476.278
+ 21.600 16.100
+ -21339087.677 8 -16627854.564 7 20611419.377 20611417.131 20611418.550
+ 48.300 42.400
+ -4286488.246 4 -3340108.914 3 23681206.683 23681204.259 23681206.170
+ 28.800 22.100
+ -18234954.943 7 -14209049.477 5 21428125.889 21428122.236 21428124.767
+ 42.600 34.100
+ -17127639.709 7 -13346210.011 6 21459130.118 21459125.384 21459129.443
+ 46.100 41.800
+ -22589327.282 7 -17602070.175 7 20282934.408 20282932.473 20282933.334
+ 45.100 44.200
+ 06 1 1 4 7 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2423401.601 3 1888377.573 2 24782335.834 24782333.343 24782335.257
+ 20.500 13.900
+ -1277762.566 3 -995657.829 1 23500145.575 23500143.892 23500144.764
+ 18.600 9.000
+ -17543757.505 7 -13670457.898 8 20340790.823 20340787.672 20340789.890
+ 42.400 48.600
+ 882790.992 3 687887.427 2 24758177.854 24758175.866 24758177.043
+ 22.100 12.600
+ -21368031.054 8 -16650407.845 7 20605911.595 20605909.459 20605910.802
+ 48.200 42.500
+ -4178977.947 4 -3256334.645 3 23701666.067 23701663.307 23701665.254
+ 29.700 22.600
+ -18150220.810 7 -14143022.896 5 21444249.064 21444246.894 21444248.665
+ 42.000 34.700
+ -17188600.106 7 -13393711.620 6 21447529.645 21447525.143 21447528.991
+ 46.000 41.800
+ -22554185.259 7 -17574686.789 7 20289621.839 20289619.679 20289620.755
+ 45.400 44.200
+ 06 1 1 4 8 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2519625.633 3 1963357.354 2 24800646.239 24800644.078 24800645.299
+ 22.100 16.100
+ -1368081.405 3 -1066036.134 2 23482958.787 23482956.560 23482958.017
+ 20.500 13.900
+ -17544623.906 7 -13671133.016 8 20340625.942 20340622.810 20340625.025
+ 42.500 48.600
+ 934139.131 3 727898.967 2 24767949.320 24767947.403 24767948.103
+ 22.600 15.100
+ -21396294.627 8 -16672431.406 7 20600533.341 20600531.026 20600532.357
+ 48.200 42.700
+ -4071416.341 4 -3172520.414 3 23722133.930 23722131.081 23722133.391
+ 26.800 21.100
+ -18065061.671 7 -14076665.150 5 21460454.829 21460452.083 21460454.121
+ 42.400 34.500
+ -17249337.482 7 -13441039.442 6 21435971.767 21435967.079 21435971.026
+ 45.800 41.600
+ -22518425.288 7 -17546821.887 7 20296426.645 20296424.690 20296425.625
+ 45.500 44.100
+ 06 1 1 4 8 30.0000000 0 8G29G14G18G 9G26G21G22G15
+ 2615831.209 3 2038322.698 3 24818954.322 24818952.208 24818953.366
+ 20.500 20.500
+ -1458209.965 3 -1136266.180 2 23465807.970 23465805.922 23465806.974
+ 21.100 17.000
+ -17545120.898 7 -13671520.287 8 20340531.144 20340528.209 20340530.369
+ 42.700 48.600
+ -21423877.218 8 -16693924.327 7 20595284.392 20595282.272 20595283.534
+ 48.200 42.800
+ -3963805.180 4 -3088667.566 3 23742611.347 23742609.264 23742610.695
+ 25.600 22.100
+ -17979480.014 6 -14009978.173 5 21476741.232 21476737.505 21476739.888
+ 41.900 33.500
+ -17309850.770 7 -13488192.649 6 21424456.485 21424451.691 21424455.750
+ 45.800 41.800
+ -22482048.210 7 -17518476.115 7 20303349.030 20303347.209 20303347.892
+ 45.500 44.400
+ 06 1 1 4 9 0.0000000 0 8G29G14G18G 9G26G21G22G15
+ 2712017.349 4 2113272.870 2 24837257.621 24837254.442 24837257.058
+ 24.900 13.900
+ -1548147.633 3 -1206347.453 2 23448693.018 23448691.170 23448692.235
+ 21.100 12.600
+ -17545247.983 7 -13671619.314 8 20340507.339 20340504.092 20340506.340
+ 42.700 48.500
+ -21450778.039 8 -16714886.002 7 20590165.376 20590163.262 20590164.542
+ 48.400 43.000
+ -3856146.229 4 -3004777.485 3 23763097.859 23763096.013 23763097.541
+ 27.900 20.500
+ -17893478.256 6 -13942963.832 5 21493106.481 21493103.286 21493105.382
+ 41.700 33.600
+ -17370138.620 7 -13535170.192 6 21412983.995 21412979.412 21412983.326
+ 45.700 41.900
+ -22445054.944 7 -17489650.201 7 20310388.612 20310386.791 20310387.561
+ 45.600 44.400
+ 06 1 1 4 9 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1637893.291 3 -1276279.115 2 23431615.660 23431613.220 23431614.526
+ 23.000 16.100
+ -17545004.783 7 -13671429.804 8 20340553.601 20340550.393 20340552.634
+ 42.700 48.500
+ -21476996.160 8 -16735315.701 7 20585176.347 20585174.049 20585175.451
+ 48.300 42.800
+ -3748441.238 4 -2920851.514 3 23783593.983 23783591.325 23783593.077
+ 27.600 21.100
+ -17807058.938 6 -13875624.138 5 21509551.036 21509548.436 21509550.307
+ 41.400 33.800
+ -17430200.033 7 -13581971.289 7 21401554.496 21401550.132 21401553.864
+ 45.500 42.000
+ -22407446.639 7 -17460345.038 7 20317545.133 20317543.301 20317544.140
+ 45.600 44.100
+ 06 1 1 4 10 0.0000000 0 7G14G18G 9G26G21G22G15
+ -1727446.096 3 -1346060.502 2 23414574.538 23414571.846 23414573.213
+ 22.600 17.000
+ -17544390.430 7 -13670951.081 8 20340670.528 20340667.233 20340669.551
+ 43.000 48.400
+ -21502530.185 8 -16755212.341 7 20580317.289 20580315.043 20580316.473
+ 48.400 42.800
+ -3640691.700 4 -2836890.825 2 23804097.256 23804095.453 23804096.756
+ 28.100 17.800
+ -17720224.300 6 -13807960.801 5 21526074.810 21526072.594 21526074.370
+ 41.300 33.900
+ -17490033.690 7 -13628594.914 6 21390168.864 21390163.979 21390168.068
+ 45.700 41.600
+ -22369224.217 7 -17430561.339 7 20324818.905 20324816.776 20324817.758
+ 45.300 44.000
+ 06 1 1 4 10 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1816805.416 3 -1415691.139 3 23397569.417 23397567.216 23397568.616
+ 23.800 18.600
+ -17543404.355 7 -13670182.717 8 20340858.166 20340854.886 20340857.235
+ 43.100 48.500
+ -21527379.464 8 -16774575.415 7 20575588.772 20575586.391 20575587.865
+ 48.600 42.800
+ -3532899.375 3 -2752896.825 3 23824608.170 23824608.237 23824607.858
+ 23.800 19.900
+ -17632976.725 6 -13739975.700 5 21542678.188 21542675.317 21542677.061
+ 41.100 34.000
+ -17549638.343 7 -13675040.099 6 21378826.383 21378821.570 21378825.702
+ 46.000 41.500
+ -22330388.771 7 -17400299.968 7 20332208.979 20332207.037 20332207.876
+ 45.600 44.100
+ 06 1 1 4 11 0.0000000 0 7G14G18G 9G26G21G22G15
+ -1905970.212 3 -1485170.183 3 23380601.890 23380599.606 23380601.162
+ 23.000 18.600
+ -17542045.580 7 -13669123.938 8 20341116.666 20341113.371 20341115.786
+ 42.800 48.300
+ -21551542.922 8 -16793404.077 7 20570990.623 20570988.236 20570989.683
+ 48.500 42.900
+ -3425066.084 4 -2668870.909 3 23845128.905 23845128.145 23845128.764
+ 24.600 21.600
+ -17545318.906 6 -13671670.927 5 21559359.409 21559356.014 21559358.041
+ 41.000 33.500
+ -17609012.763 7 -13721305.884 7 21367527.672 21367523.119 21367527.040
+ 46.100 42.100
+ -22290941.639 7 -17369561.951 7 20339715.670 20339713.623 20339714.471
+ 45.600 43.900
+ 06 1 1 4 11 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1994940.042 4 -1554497.289 3 23363671.881 23363669.469 23363670.528
+ 24.600 18.600
+ -17540313.381 7 -13667774.171 8 20341446.264 20341442.995 20341445.387
+ 43.000 48.400
+ -21575020.099 8 -16811697.974 7 20566522.947 20566520.612 20566522.086
+ 48.500 42.700
+ -3317193.412 4 -2584814.289 3 23865657.979 23865655.134 23865657.277
+ 28.100 19.900
+ -17457253.076 6 -13603048.229 5 21576116.968 21576114.315 21576116.256
+ 41.200 33.200
+ -17668155.689 7 -13767391.273 7 21356273.116 21356268.691 21356272.344
+ 45.800 42.400
+ -22250883.631 7 -17338347.922 7 20347338.180 20347336.351 20347337.165
+ 45.500 43.800
+ 06 1 1 4 12 0.0000000 0 7G14G18G 9G26G21G22G15
+ -2083713.668 4 -1623671.544 3 23346778.474 23346776.129 23346777.495
+ 27.100 19.900
+ -17538207.305 7 -13666133.071 8 20341847.102 20341843.853 20341846.222
+ 43.100 48.500
+ -21597810.067 8 -16829456.387 7 20562185.970 20562183.762 20562185.189
+ 48.400 42.600
+ -3209282.948 4 -2500728.210 3 23886192.037 23886190.142 23886192.030
+ 26.800 21.600
+ -17368781.774 6 -13534109.571 5 21592952.473 21592949.866 21592951.789
+ 41.200 33.100
+ -17727065.913 7 -13813295.342 7 21345062.969 21345058.320 21345062.328
+ 46.100 42.100
+ -22210215.890 7 -17306658.787 7 20355077.172 20355075.137 20355075.997
+ 45.300 43.700
+ 06 1 1 4 12 30.0000000 0 7G14G18G 9G26G21G22G15
+ -2172290.460 4 -1692692.408 3 23329922.843 23329920.439 23329922.048
+ 26.200 20.500
+ -17535726.641 7 -13664200.083 8 20342319.114 20342315.894 20342318.293
+ 43.000 48.400
+ -21619911.870 8 -16846678.569 7 20557980.325 20557977.963 20557979.401
+ 48.400 42.600
+ -3101336.352 4 -2416613.999 3 23906734.077 23906731.365 23906733.623
+ 26.500 20.500
+ -17279907.432 6 -13464856.848 5 21609865.102 21609861.958 21609864.120
+ 40.500 32.700
+ -17785742.260 7 -13859017.173 7 21333897.097 21333892.456 21333896.572
+ 45.900 42.000
+ -22168939.590 7 -17274495.443 7 20362931.710 20362929.741 20362930.522
+ 45.100 43.600
+ 06 1 1 4 13 0.0000000 0 7G14G18G 9G26G21G22G15
+ -2260669.460 4 -1761559.153 3 23313105.124 23313102.442 23313103.948
+ 28.400 21.600
+ -17532870.645 7 -13661974.634 8 20342862.734 20342859.404 20342861.777
+ 43.100 48.400
+ -21641324.324 8 -16863363.592 7 20553905.840 20553903.356 20553904.867
+ 48.600 42.400
+ -2993355.271 4 -2332472.891 3 23927281.596 23927279.119 23927281.208
+ 27.100 18.600
+ -17190632.535 6 -13395292.014 5 21626854.239 21626850.471 21626852.783
+ 40.700 33.000
+ -17844183.418 7 -13904555.741 7 21322776.133 21322771.573 21322775.456
+ 46.000 42.200
+ -22127055.948 7 -17241858.846 7 20370901.482 20370899.861 20370900.489
+ 45.200 43.600
+ 06 1 1 4 13 30.0000000 0 7G14G18G 9G26G21G22G15
+ -2348850.665 4 -1830271.759 3 23296324.335 23296322.167 23296323.542
+ 28.100 22.600
+ -17529638.534 7 -13659456.100 8 20343477.701 20343474.455 20343476.792
+ 43.000 48.300
+ -21662046.809 8 -16879510.975 7 20549962.205 20549960.007 20549961.452
+ 48.600 42.400
+ -2885341.273 4 -2248306.122 2 23947836.105 23947833.461 23947835.390
+ 26.800 17.000
+ -17100959.563 6 -13325416.982 5 21643917.415 21643914.615 21643916.767
+ 40.600 32.800
+ -17902388.077 7 -13949910.017 7 21311700.142 21311695.643 21311699.564
+ 46.200 42.500
+ -22084566.233 7 -17208749.989 7 20378987.338 20378985.382 20378986.222
+ 45.300 43.400
+ 06 1 1 4 14 0.0000000 0 7G14G18G 9G26G21G22G15
+ -2436832.424 4 -1898828.958 3 23279581.695 23279579.762 23279580.969
+ 28.400 23.800
+ -17526029.647 7 -13656643.978 8 20344164.375 20344161.114 20344163.481
+ 43.000 48.200
+ -21682078.463 8 -16895120.054 7 20546150.167 20546148.121 20546149.461
+ 48.600 42.200
+ -2777296.033 4 -2164115.039 3 23968396.303 23968394.873 23968396.013
+ 24.200 23.400
+ -17010891.136 6 -13255233.804 5 21661057.175 21661054.226 21661056.301
+ 40.500 32.400
+ -17960354.943 7 -13995079.002 7 21300669.604 21300664.960 21300668.948
+ 46.400 42.600
+ -22041471.717 7 -17175169.848 7 20387187.954 20387186.036 20387186.973
+ 45.200 43.500
+ 06 1 1 4 14 30.0000000 0 7G14G18G 9G26G21G22G15
+ -2524614.152 4 -1967230.270 3 23262877.589 23262875.442 23262876.957
+ 28.400 23.400
+ -17522043.402 7 -13653537.814 8 20344922.909 20344919.603 20344921.989
+ 42.900 48.200
+ -21701419.360 8 -16910190.884 7 20542469.901 20542467.614 20542469.081
+ 48.600 42.300
+ -2669221.228 3 -2079900.935 2 23988962.261 23988960.626 23988961.734
+ 23.400 17.800
+ -16920429.926 6 -13184744.575 5 21678271.728 21678268.327 21678270.435
+ 40.300 32.400
+ -18018083.054 7 -14040061.948 7 21289684.334 21289679.521 21289683.611
+ 46.400 42.400
+ -21997773.417 7 -17141119.235 7 20395503.396 20395501.713 20395502.360
+ 44.900 43.500
+ 06 1 1 4 15 0.0000000 0 7G14G18G 9G26G21G22G15
+ -2612195.117 5 -2035475.161 4 23246211.841 23246209.113 23246210.792
+ 30.600 24.600
+ -17517679.485 7 -13650137.361 8 20345753.275 20345750.051 20345752.333
+ 43.000 48.100
+ -21720068.495 8 -16924722.674 7 20538921.129 20538918.798 20538920.254
+ 48.800 42.300
+ -2561118.138 4 -1995664.768 3 24009534.002 24009531.838 24009533.373
+ 26.500 21.600
+ -16829577.845 6 -13113950.774 5 21695559.961 21695556.902 21695558.844
+ 39.400 31.800
+ -18075570.905 7 -14084857.677 7 21278744.490 21278740.095 21278743.911
+ 46.200 42.600
+ -21953472.625 7 -17106599.147 7 20403933.864 20403931.836 20403932.636
+ 45.400 43.600
+ 06 1 1 4 15 30.0000000 0 7G14G18G 9G26G21G22G15
+ -2699574.256 5 -2103562.783 4 23229584.029 23229581.530 23229583.001
+ 30.400 24.200
+ -17512937.072 7 -13646441.978 8 20346655.803 20346652.452 20346654.895
+ 43.000 48.100
+ -21738024.935 8 -16938714.700 7 20535504.150 20535501.854 20535503.337
+ 48.700 42.500
+ -2452988.626 4 -1911408.028 3 24030109.984 24030107.927 24030109.387
+ 25.300 19.900
+ -16738337.852 6 -13042854.694 5 21712921.984 21712919.344 21712921.263
+ 39.700 31.800
+ -18132817.222 7 -14129465.191 7 21267850.968 21267846.447 21267850.320
+ 46.200 42.600
+ -21908570.893 7 -17071610.796 7 20412478.012 20412476.324 20412477.133
+ 45.300 43.500
+ 06 1 1 4 16 0.0000000 0 7G14G18G 9G26G21G22G15
+ -2786751.195 5 -2171492.854 4 23212994.806 23212992.283 23212994.024
+ 31.000 25.300
+ -17507815.417 7 -13642451.076 8 20347630.459 20347627.101 20347629.493
+ 43.000 48.100
+ -21755288.249 8 -16952166.629 7 20532219.074 20532216.797 20532218.158
+ 48.600 42.400
+ -2344834.275 4 -1827131.902 3 24050690.103 24050689.113 24050689.563
+ 24.600 21.600
+ -16646712.519 6 -12971458.347 5 21730357.882 21730354.978 21730357.010
+ 39.600 32.100
+ -18189820.705 7 -14173883.490 7 21257003.661 21256998.970 21257003.026
+ 46.400 42.600
+ -21863069.116 7 -17036154.878 7 20421136.916 20421135.087 20421135.784
+ 45.100 43.500
+ 06 1 1 4 16 30.0000000 0 7G14G18G 9G26G21G22G15
+ -2873725.369 5 -2239264.917 4 23196444.213 23196441.637 23196443.146
+ 31.300 25.600
+ -17502314.056 7 -13638164.303 8 20348677.249 20348674.071 20348676.443
+ 42.900 48.100
+ -21771857.873 8 -16965078.018 7 20529065.939 20529063.622 20529065.035
+ 48.500 42.000
+ -2236656.562 3 -1742837.604 3 24071275.882 24071274.831 24071275.415
+ 23.000 19.300
+ -16554704.471 6 -12899763.805 5 21747867.849 21747863.727 21747866.079
+ 39.500 31.500
+ -18246580.294 7 -14218111.740 7 21246202.453 21246197.955 21246201.871
+ 46.100 42.600
+ -21816968.775 7 -17000232.538 7 20429909.408 20429907.663 20429908.406
+ 45.200 43.300
+ 06 1 1 4 17 0.0000000 0 7G14G18G 9G26G21G22G15
+ -2960495.629 5 -2306878.091 4 23179932.221 23179929.893 23179931.288
+ 30.400 26.800
+ -17496432.110 7 -13633580.977 8 20349796.690 20349793.427 20349795.698
+ 42.800 48.100
+ -21787733.395 8 -16977448.554 7 20526044.825 20526042.634 20526044.057
+ 48.600 42.200
+ -2128457.093 4 -1658526.378 3 24091866.000 24091864.567 24091865.608
+ 26.500 21.600
+ -16462316.059 6 -12827772.870 5 21765447.909 21765444.407 21765446.871
+ 39.500 31.300
+ -18303094.766 7 -14262148.990 7 21235448.183 21235443.658 21235447.508
+ 45.900 42.900
+ -21770271.282 7 -16963844.892 7 20438795.727 20438793.903 20438794.701
+ 45.200 43.300
+ 06 1 1 4 17 30.0000000 0 7G14G18G 9G26G21G22G15
+ -3047061.144 5 -2374331.718 4 23163459.350 23163457.077 23163458.373
+ 30.800 26.800
+ -17490169.186 7 -13628700.781 8 20350988.234 20350985.195 20350987.374
+ 42.900 48.100
+ -21802913.939 8 -16989277.547 7 20523156.179 20523153.925 20523155.327
+ 48.600 42.200
+ -2020237.330 4 -1574199.275 3 24112460.080 24112458.464 24112459.571
+ 28.400 18.600
+ -16369549.733 6 -12755487.428 5 21783099.981 21783097.411 21783099.599
+ 40.000 31.600
+ -18359362.519 7 -14305993.989 7 21224740.872 21224736.400 21224740.187
+ 46.000 43.200
+ -21722977.969 7 -16926992.969 7 20447795.607 20447793.486 20447794.406
+ 44.900 43.300
+ 06 1 1 4 18 0.0000000 0 7G14G18G 9G26G21G22G15
+ -3133421.483 5 -2441625.467 4 23147025.429 23147023.127 23147024.687
+ 30.100 27.100
+ -17483524.339 7 -13623522.970 8 20352252.991 20352249.653 20352252.026
+ 43.000 48.100
+ -21817398.881 8 -17000564.512 7 20520399.787 20520397.611 20520398.916
+ 48.700 42.400
+ -1911998.784 4 -1489857.548 2 24133056.712 24133054.881 24133056.200
+ 25.600 12.600
+ -16276408.320 6 -12682909.726 5 21800825.283 21800821.783 21800824.017
+ 39.500 31.100
+ -18415382.593 7 -14349645.991 7 21214080.502 21214076.021 21214079.860
+ 46.200 43.100
+ -21675090.415 7 -16889678.003 7 20456908.013 20456906.228 20456906.991
+ 45.200 43.400
+ 06 1 1 4 18 30.0000000 0 7G14G18G 9G26G21G22G15
+ -3219575.698 4 -2508758.610 4 23130631.209 23130628.492 23130630.072
+ 29.900 26.200
+ -17476497.042 7 -13618047.152 8 20353589.994 20353586.900 20353589.177
+ 42.800 48.100
+ -21831187.902 8 -17011309.199 7 20517775.664 20517773.538 20517774.954
+ 48.500 42.400
+ -1803743.021 3 -1405502.415 1 24153657.270 24153654.143 24153656.827
+ 23.400 11.000
+ -16182894.258 6 -12610041.658 5 21818620.532 21818617.036 21818619.269
+ 39.500 31.300
+ -18471153.502 7 -14393103.842 7 21203467.715 21203463.083 21203467.072
+ 46.100 42.900
+ -21626610.076 7 -16851901.131 7 20466133.679 20466131.630 20466132.521
+ 45.000 42.900
+ 06 1 1 4 19 0.0000000 0 7G14G18G 9G26G21G22G15
+ -3305522.986 4 -2575730.505 4 23114275.838 23114273.385 23114275.078
+ 29.500 27.600
+ -17469086.904 7 -13612273.022 8 20355000.309 20354996.959 20354999.307
+ 43.100 48.100
+ -21844281.067 8 -17021511.665 7 20515284.159 20515281.993 20515283.426
+ 48.500 42.600
+ -1695471.546 4 -1321135.032 2 24174260.770 24174257.664 24174260.247
+ 25.600 13.900
+ -16089010.319 6 -12536885.368 5 21836484.864 21836482.514 21836484.456
+ 39.100 31.500
+ -18526674.000 7 -14436366.568 7 21192902.496 21192897.934 21192901.933
+ 46.400 43.000
+ -21577538.430 7 -16813663.498 7 20475471.666 20475469.701 20475470.539
+ 44.800 42.900
+ 06 1 1 4 19 30.0000000 0 7G14G18G 9G26G21G22G15
+ -3391262.737 4 -2642540.675 4 23097960.178 23097957.785 23097959.312
+ 29.700 27.400
+ -17461293.067 7 -13606199.908 8 20356483.456 20356480.161 20356482.497
+ 43.200 48.000
+ -21856677.652 8 -17031171.335 7 20512925.330 20512923.033 20512924.368
+ 48.300 42.700
+ -1587185.809 4 -1236756.551 3 24194867.261 24194865.045 24194866.437
+ 25.300 18.600
+ -15994758.983 6 -12463442.786 5 21854421.731 21854418.114 21854420.223
+ 38.100 30.800
+ -18581942.677 7 -14479433.074 7 21182385.048 21182380.751 21182384.478
+ 46.200 43.300
+ -21527876.864 7 -16774966.185 7 20484921.945 20484920.208 20484920.857
+ 45.100 43.300
+ 06 1 1 4 20 0.0000000 0 7G14G18G 9G26G21G22G15
+ -3476794.037 4 -2709188.417 4 23081683.660 23081681.750 23081683.182
+ 28.800 27.600
+ -17453115.238 7 -13599827.575 8 20358039.655 20358036.331 20358038.681
+ 43.200 48.000
+ -21868377.474 8 -17040288.074 7 20510698.669 20510696.675 20510697.832
+ 48.000 42.700
+ -1478887.423 4 -1152368.217 2 24215475.796 24215473.454 24215475.101
+ 24.600 17.000
+ -15900142.888 6 -12389715.990 5 21872426.754 21872422.610 21872425.252
+ 38.600 30.800
+ -18636958.527 7 -14522302.563 7 21171915.969 21171911.556 21171915.228
+ 45.900 43.100
+ -21477626.802 7 -16735810.307 7 20494484.339 20494482.477 20494483.142
+ 45.000 43.200
+ 06 1 1 4 20 30.0000000 0 7G14G18G 9G26G21G22G15
+ -3562116.472 4 -2775673.407 4 23065447.584 23065445.482 23065446.797
+ 28.400 26.200
+ -17444552.838 7 -13593155.574 7 20359668.759 20359665.625 20359667.875
+ 43.200 47.900
+ -21879380.019 8 -17048861.488 7 20508605.047 20508602.903 20508604.182
+ 48.100 42.600
+ -1370577.739 3 -1067971.071 2 24236085.355 24236083.742 24236085.238
+ 23.000 17.000
+ -15805164.822 6 -12315707.110 5 21890498.631 21890496.554 21890498.645
+ 39.000 31.100
+ -18691720.172 7 -14564973.970 7 21161495.083 21161490.664 21161494.452
+ 46.300 43.200
+ -21426789.899 7 -16696197.139 7 20504158.126 20504156.303 20504157.063
+ 45.100 42.900
+ 06 1 1 4 21 0.0000000 0 7G14G18G 9G26G21G22G15
+ -3647229.267 4 -2841995.029 4 23049251.211 23049248.770 23049250.304
+ 27.400 25.900
+ -17435604.975 7 -13586183.216 7 20361371.602 20361368.365 20361370.601
+ 43.000 47.900
+ -21889685.131 7 -17056891.436 7 20506644.116 20506641.857 20506643.268
+ 47.900 42.500
+ -1262258.338 4 -983566.332 2 24256699.273 24256695.707 24256698.643
+ 27.100 15.100
+ -15709827.269 6 -12241418.121 5 21908642.660 21908638.721 21908641.158
+ 38.100 30.600
+ -18746226.266 7 -14607446.250 7 21151122.853 21151118.505 21151122.300
+ 46.100 43.200
+ -21375367.830 7 -16656128.002 7 20513943.508 20513941.617 20513942.463
+ 45.200 42.800
+ 06 1 1 4 21 30.0000000 0 7G14G18G 9G26G21G22G15
+ -3732131.240 4 -2908152.403 4 23033095.153 23033092.381 23033094.055
+ 28.600 25.600
+ -17426271.271 7 -13578910.194 8 20363147.604 20363144.547 20363146.752
+ 43.100 48.000
+ -21899292.384 7 -17064377.608 7 20504815.803 20504813.660 20504814.991
+ 47.700 42.700
+ -1153930.555 3 -899155.072 2 24277313.007 24277310.477 24277312.225
+ 23.800 16.100
+ -15614132.778 6 -12166851.035 5 21926851.463 21926848.646 21926850.865
+ 38.100 30.200
+ -18800475.347 7 -14649718.260 7 21140799.908 21140795.268 21140799.084
+ 46.100 43.200
+ -21323362.028 7 -16615604.010 7 20523839.837 20523838.033 20523838.784
+ 44.900 42.700
+ 06 1 1 4 22 0.0000000 0 7G14G18G 9G26G21G22G15
+ -3816822.284 4 -2974145.391 4 23016978.758 23016976.214 23016977.736
+ 29.900 24.200
+ -17416551.341 7 -13571336.224 7 20364997.363 20364994.202 20364996.464
+ 43.400 47.800
+ -21908201.644 7 -17071319.886 7 20503120.559 20503118.331 20503119.652
+ 47.800 42.900
+ -1045596.074 4 -814738.579 3 24297928.613 24297926.461 24297928.000
+ 25.900 20.500
+ -15518084.205 6 -12092007.993 4 21945128.921 21945126.070 21945128.173
+ 37.800 29.900
+ -18854466.145 7 -14691789.007 7 21130525.786 21130521.065 21130525.011
+ 46.300 43.300
+ -21270774.122 7 -16574626.440 7 20533846.793 20533845.223 20533845.829
+ 45.200 42.700
+ 06 1 1 4 22 30.0000000 0 7G14G18G 9G26G21G22G15
+ -3901301.469 4 -3039973.314 3 23000902.716 23000900.154 23000901.720
+ 29.900 22.100
+ -17406444.030 7 -13563460.400 7 20366920.680 20366917.581 20366919.790
+ 43.200 47.900
+ -21916412.761 7 -17077718.158 7 20501558.101 20501555.766 20501557.254
+ 47.800 42.900
+ -937255.984 3 -730317.794 3 24318545.044 24318542.845 24318544.502
+ 22.600 21.100
+ -15421684.145 6 -12016891.102 4 21963474.347 21963470.494 21963472.820
+ 37.200 29.900
+ -18908197.490 7 -14733657.589 7 21120300.924 21120296.316 21120300.297
+ 46.400 43.300
+ -21217605.706 7 -16533196.517 7 20543964.613 20543962.819 20543963.493
+ 44.900 42.700
+ 06 1 1 4 23 0.0000000 0 7G14G18G 9G26G21G22G15
+ -3985567.906 5 -3105635.471 3 22984867.519 22984864.628 22984866.646
+ 31.600 22.100
+ -17395948.963 7 -13555282.426 8 20368917.885 20368914.790 20368916.941
+ 43.200 48.000
+ -21923925.521 7 -17083572.259 7 20500128.386 20500126.117 20500127.561
+ 47.700 42.800
+ -828911.908 3 -645893.882 2 24339161.979 24339159.766 24339161.403
+ 23.000 16.100
+ -15324935.116 6 -11941502.271 4 21981883.493 21981881.215 21981883.294
+ 38.100 29.200
+ -18961668.100 7 -14775322.996 7 21110125.654 21110121.306 21110125.126
+ 46.300 43.600
+ -21163858.386 7 -16491315.497 7 20554192.345 20554190.581 20554191.224
+ 45.000 42.700
+ 06 1 1 4 23 30.0000000 0 7G14G18G 9G26G21G22G15
+ -4069621.010 5 -3171131.395 3 22968872.682 22968869.976 22968871.940
+ 32.000 23.800
+ -17385065.872 7 -13546802.103 7 20370988.893 20370985.740 20370987.885
+ 43.300 47.800
+ -21930739.983 7 -17088882.224 7 20498831.616 20498829.482 20498830.715
+ 47.500 43.000
+ -720565.254 3 -561467.888 2 24359779.784 24359777.434 24359779.105
+ 23.800 17.000
+ -15227839.952 6 -11865843.711 4 22000361.556 22000357.819 22000360.239
+ 37.700 29.200
+ -19014876.683 7 -14816784.227 7 21100000.721 21099996.035 21100000.056
+ 46.500 43.700
+ -21109533.888 7 -16448984.738 7 20564530.037 20564528.172 20564528.934
+ 44.900 42.300
+ 06 1 1 4 24 0.0000000 0 7G14G18G 9G26G21G22G15
+ -4153460.171 5 -3236460.599 4 22952918.764 22952915.761 22952917.943
+ 32.300 24.600
+ -17373794.072 7 -13538018.881 7 20373133.815 20373130.634 20373132.858
+ 43.400 47.900
+ -21936855.482 7 -17093647.550 7 20497667.656 20497665.748 20497666.954
+ 47.400 42.900
+ -612217.332 3 -477040.968 2 24380396.899 24380395.024 24380397.021
+ 22.100 15.100
+ -15130401.308 6 -11789917.550 5 22018903.517 22018899.913 22018902.237
+ 37.700 30.100
+ -19067821.913 7 -14858040.250 7 21089925.460 21089920.872 21089924.829
+ 46.500 43.700
+ -21054633.936 7 -16406205.567 7 20574977.111 20574975.299 20574976.047
+ 44.900 42.400
+ 06 1 1 4 24 30.0000000 0 7G14G18G 9G26G21G22G15
+ -4237084.441 5 -3301622.351 4 22937005.356 22937002.610 22937004.609
+ 32.100 25.900
+ -17362132.952 7 -13528932.294 7 20375352.887 20375349.720 20375351.977
+ 43.500 47.800
+ -21942272.146 7 -17097868.329 7 20496636.832 20496634.896 20496636.049
+ 47.200 42.900
+ -503869.703 4 -392614.255 1 24401015.893 24401012.806 24401015.086
+ 25.300 11.000
+ -15032621.713 6 -11713725.680 4 22037509.138 22037506.713 22037508.740
+ 37.400 29.000
+ -19120502.328 7 -14899089.925 7 21079900.597 21079896.138 21079899.993
+ 46.600 44.000
+ -20999160.137 7 -16362979.250 7 20585533.353 20585531.646 20585532.387
+ 45.000 42.300
+ 06 1 1 4 25 0.0000000 0 7G14G18G 9G26G21G22G15
+ -4320493.366 5 -3366616.308 4 22921132.969 22921130.565 22921132.130
+ 31.800 26.200
+ -17350082.482 7 -13519542.320 7 20377645.921 20377642.796 20377644.990
+ 43.400 47.600
+ -21946990.022 7 -17101544.595 7 20495739.133 20495737.108 20495738.351
+ 47.200 42.700
+ -395523.682 4 -308188.783 2 24421632.939 24421629.991 24421632.467
+ 25.300 17.800
+ -14934503.887 6 -11637270.267 4 22056181.859 22056178.058 22056180.385
+ 36.900 28.600
+ -19172916.753 7 -14939932.329 7 21069926.788 21069922.111 21069926.075
+ 46.700 44.000
+ -20943114.171 7 -16319307.092 7 20596198.735 20596196.837 20596197.647
+ 44.900 42.200
+ 06 1 1 4 25 30.0000000 0 7G14G18G 9G26G21G22G15
+ -4403686.111 4 -3431441.786 4 22905302.248 22905299.513 22905301.106
+ 29.900 27.100
+ -17337641.463 7 -13509848.022 7 20380013.350 20380010.219 20380012.520
+ 43.600 47.600
+ -21951009.281 7 -17104676.486 7 20494974.266 20494972.246 20494973.479
+ 47.400 42.900
+ -287180.483 3 -223765.527 2 24442250.501 24442248.238 24442249.640
+ 22.100 17.000
+ -14836050.739 6 -11560553.570 4 22074915.812 22074913.147 22074915.170
+ 37.500 29.500
+ -19225063.768 7 -14980566.367 7 21060003.302 21059998.852 21060002.686
+ 46.700 44.000
+ -20886497.882 7 -16275190.518 7 20606972.123 20606970.621 20606971.180
+ 44.600 42.000
+ 06 1 1 4 26 0.0000000 0 7G14G18G 9G26G21G22G15
+ -4486662.153 4 -3496098.401 4 22889512.104 22889509.680 22889511.126
+ 29.200 28.800
+ -17324809.711 7 -13499849.250 7 20382455.449 20382452.070 20382454.491
+ 43.600 47.600
+ -21954329.799 7 -17107263.900 7 20494342.454 20494340.374 20494341.691
+ 47.400 42.800
+ -178841.780 4 -139345.797 3 24462865.266 24462864.420 24462865.121
+ 24.900 19.300
+ -14737264.773 6 -11483577.493 4 22093714.819 22093711.349 22093713.762
+ 37.100 28.400
+ -19276942.113 7 -15020991.050 7 21050131.306 21050126.705 21050130.536
+ 46.600 44.000
+ -20829313.271 7 -16230631.090 6 20617854.064 20617852.490 20617853.065
+ 44.700 41.900
+ 06 1 1 4 26 30.0000000 0 7G14G18G 9G26G21G22G15
+ -4569420.740 5 -3560585.577 4 22873763.436 22873761.309 22873762.692
+ 30.100 27.900
+ -17311586.731 7 -13489545.630 7 20384971.658 20384968.337 20384970.668
+ 43.700 47.500
+ -21956951.830 7 -17109307.044 7 20493843.552 20493841.425 20493842.716
+ 47.200 42.700
+ -70508.736 4 -54930.444 3 24483481.777 24483479.215 24483481.017
+ 25.600 19.300
+ -14638148.973 6 -11406344.451 4 22112575.754 22112572.672 22112574.737
+ 36.600 29.000
+ -19328550.665 7 -15061205.503 7 21040310.584 21040305.919 21040309.862
+ 46.600 44.100
+ -20771561.948 7 -16185630.069 6 20628844.118 20628842.171 20628842.905
+ 44.600 41.900
+ 06 1 1 4 27 0.0000000 0 7G14G18G 9G26G21G22G15
+ -4651961.201 5 -3624902.793 4 22858056.984 22858054.343 22858055.911
+ 32.100 27.400
+ -17297971.928 7 -13478936.699 7 20387562.245 20387559.130 20387561.394
+ 43.600 47.500
+ -21958875.104 7 -17110805.696 7 20493477.453 20493475.430 20493476.635
+ 47.100 42.700
+ 37817.261 4 29479.384 2 24504095.530 24504093.124 24504095.219
+ 27.400 13.900
+ -14538705.983 5 -11328856.413 4 22131498.390 22131495.972 22131498.022
+ 35.900 29.900
+ -19379887.641 7 -15101208.343 7 21030541.442 21030536.747 21030540.808
+ 47.000 44.100
+ -20713245.754 7 -16140188.892 6 20639941.295 20639939.331 20639940.160
+ 44.700 41.900
+ 06 1 1 4 27 30.0000000 0 7G14G18G 9G26G21G22G15
+ -4734282.806 5 -3689049.485 4 22842391.336 22842388.902 22842390.443
+ 32.400 26.500
+ -17283964.567 7 -13468021.877 7 20390228.005 20390224.654 20390227.101
+ 44.000 47.400
+ -21960099.948 7 -17111760.119 7 20493244.184 20493242.279 20493243.471
+ 47.000 42.600
+ 146134.757 3 113882.604 2 24524707.031 24524704.566 24524706.686
+ 23.800 15.100
+ -14438938.433 5 -11251115.507 4 22150484.362 22150481.095 22150483.244
+ 35.700 28.100
+ -19430951.719 7 -15140998.535 7 21020824.143 21020819.608 21020823.582
+ 46.900 44.400
+ -20654366.574 7 -16094309.019 7 20651145.709 20651143.726 20651144.520
+ 44.600 42.000
+ 06 1 1 4 28 0.0000000 0 7G14G18G 9G26G21G22G15
+ -4816384.976 5 -3753025.179 4 22826767.645 22826765.485 22826766.837
+ 32.000 26.500
+ -17269564.385 7 -13456800.953 7 20392968.228 20392964.883 20392967.285
+ 44.000 47.400
+ -21960626.219 7 -17112170.198 7 20493144.249 20493142.087 20493143.438
+ 47.200 42.300
+ 254442.652 3 198278.358 9 24545317.090 24545315.522 24545316.524
+ 19.900 -3.000
+ -14338849.378 6 -11173124.045 4 22169529.313 22169527.268 22169529.295
+ 36.200 28.400
+ -19481742.040 7 -15180575.405 7 21011159.265 21011154.654 21011158.589
+ 47.000 44.600
+ -20594926.090 7 -16047991.775 7 20662456.761 20662454.993 20662455.613
+ 44.300 42.000
+ 06 1 1 4 28 30.0000000 0 7G14G18G 9G26G21G22G15
+ -4898267.204 5 -3816829.493 4 22811186.496 22811183.900 22811185.395
+ 32.000 27.400
+ -17254771.072 7 -13445273.700 7 20395783.322 20395779.922 20395782.247
+ 43.800 47.200
+ -21960454.582 7 -17112036.451 7 20493176.980 20493174.802 20493176.171
+ 47.200 42.400
+ 362739.408 3 282665.464 1 24565925.604 24565923.484 24565924.718
+ 19.300 6.500
+ -14238441.216 6 -11094883.951 4 22188638.706 22188634.785 22188637.093
+ 36.500 29.700
+ -19532256.924 7 -15219937.653 7 21001546.526 21001541.920 21001545.971
+ 46.900 44.400
+ -20534926.221 7 -16001238.655 6 20673874.296 20673872.541 20673873.147
+ 44.100 41.600
+ 06 1 1 4 29 0.0000000 0 7G14G18G 9G26G21G22G15
+ -4979928.633 5 -3880461.749 4 22795646.770 22795644.173 22795645.688
+ 31.500 28.400
+ -17239583.620 7 -13433439.321 7 20398673.242 20398669.980 20398672.298
+ 43.800 47.100
+ -21959584.790 7 -17111358.688 7 20493342.411 20493340.269 20493341.589
+ 47.300 42.300
+ 471023.855 3 367042.939 2 24586531.824 24586529.915 24586531.121
+ 23.000 12.600
+ -14137716.561 6 -11016397.224 4 22207803.671 22207802.031 22207803.863
+ 36.100 28.600
+ -19582495.116 7 -15259084.296 7 20991986.532 20991981.883 20991985.900
+ 46.600 44.400
+ -20474368.993 7 -15954051.221 6 20685397.842 20685396.147 20685396.828
+ 44.300 41.600
+ 06 1 1 4 29 30.0000000 0 7G14G18G 9G26G21G22G15
+ -5061368.556 5 -3943921.397 4 22780149.320 22780146.623 22780148.314
+ 32.400 28.600
+ -17224002.221 7 -13421297.969 7 20401638.454 20401635.092 20401637.488
+ 44.000 47.100
+ -21958017.377 7 -17110137.325 7 20493640.628 20493638.600 20493639.882
+ 47.400 42.300
+ 579294.606 3 451409.742 2 24607134.665 24607132.498 24607134.266
+ 23.000 15.100
+ -14036678.069 5 -10937665.955 4 22227033.249 22227028.957 22227031.308
+ 35.200 28.400
+ -19632455.136 7 -15298014.175 7 20982479.407 20982474.725 20982478.712
+ 46.500 44.400
+ -20413256.223 7 -15906430.902 6 20697027.256 20697025.559 20697026.271
+ 44.400 41.600
+ 06 1 1 4 30 0.0000000 0 7G14G18G 9G26G21G22G15
+ -5142586.288 5 -4007207.913 4 22764694.052 22764691.468 22764692.947
+ 32.100 28.400
+ -17208026.083 7 -13408849.030 7 20404678.546 20404675.227 20404677.642
+ 44.100 47.000
+ -21955752.055 7 -17108372.138 7 20494072.145 20494069.775 20494071.211
+ 47.700 42.500
+ 687550.367 3 535764.886 1 24627735.295 24627732.725 24627734.532
+ 22.600 11.000
+ -13935328.938 6 -10858692.631 4 22246317.205 22246315.045 22246317.086
+ 36.400 27.900
+ -19682135.847 7 -15336726.417 7 20973025.427 20973020.832 20973024.851
+ 46.800 44.600
+ -20351589.888 7 -15858379.219 6 20708762.496 20708760.346 20708761.142
+ 44.400 41.500
+ 06 1 1 4 30 30.0000000 0 7G14G18G 9G26G21G22G15
+ -5223581.394 5 -4070320.955 4 22749280.900 22749278.715 22749280.074
+ 32.700 28.600
+ -17191654.583 7 -13396092.026 7 20407793.887 20407790.591 20407793.008
+ 44.200 46.900
+ -21952790.123 7 -17106064.128 7 20494635.515 20494633.299 20494634.758
+ 47.600 42.500
+ 795790.141 3 620107.531 1 24648332.587 24648329.579 24648331.976
+ 22.600 11.000
+ -13833671.824 6 -10779479.316 4 22265663.593 22265659.669 22265662.019
+ 36.000 27.900
+ -19731535.890 7 -15375219.955 7 20963624.670 20963620.309 20963624.197
+ 46.800 44.700
+ -20289371.998 7 -15809897.752 6 20720601.483 20720599.954 20720600.521
+ 44.400 41.200
+ 06 1 1 4 31 0.0000000 0 7G14G18G 9G26G21G22G15
+ -5304353.124 5 -4133259.950 4 22733910.648 22733907.963 22733909.802
+ 33.500 26.200
+ -17174887.554 7 -13383026.810 7 20410984.577 20410981.228 20410983.606
+ 44.300 46.800
+ -21949131.438 7 -17103213.206 7 20495331.691 20495329.440 20495330.806
+ 47.600 42.600
+ 904012.244 3 704436.438 1 24668926.700 24668924.764 24668926.155
+ 21.100 9.000
+ -13731709.576 5 -10700028.239 4 22285064.959 22285062.492 22285064.550
+ 35.400 26.800
+ -19780653.988 7 -15413493.797 7 20954277.918 20954273.471 20954277.343
+ 46.800 44.700
+ -20226604.474 7 -15760988.015 6 20732545.560 20732544.222 20732544.739
+ 44.300 41.200
+ 06 1 1 4 31 30.0000000 0 7G14G18G 9G26G21G22G15
+ -5384901.118 5 -4196024.606 4 22718582.790 22718580.067 22718581.916
+ 32.700 26.500
+ -17157724.354 7 -13369652.888 7 20414250.599 20414247.267 20414249.680
+ 44.300 46.700
+ -21944776.366 7 -17099819.635 7 20496160.478 20496158.223 20496159.633
+ 47.500 42.300
+ 1012215.577 2 788750.732 2 24689516.326 24689514.945 24689516.023
+ 17.000 15.100
+ -13629444.729 5 -10620341.372 4 22304526.678 22304522.807 22304524.997
+ 34.100 27.400
+ -19829488.622 7 -15451546.759 7 20944985.154 20944980.523 20944984.482
+ 46.800 44.800
+ -20163289.473 7 -15711651.666 6 20744594.841 20744592.636 20744593.461
+ 44.100 41.100
+ 06 1 1 4 32 0.0000000 0 7G14G18G 9G26G21G22G15
+ -5465224.492 5 -4258614.235 4 22703297.527 22703294.964 22703296.684
+ 32.000 26.800
+ -17140164.403 7 -13355969.803 7 20417592.287 20417588.859 20417591.387
+ 44.700 46.700
+ -21939724.555 7 -17095883.161 7 20497121.705 20497119.588 20497120.931
+ 47.800 42.400
+ 1120399.000 3 873049.454 1 24710103.662 24710101.350 24710103.027
+ 23.000 11.000
+ -13526880.055 5 -10540420.892 4 22324042.229 22324040.565 22324042.018
+ 34.600 28.600
+ -19878038.335 7 -15489377.700 7 20935746.467 20935741.857 20935745.712
+ 46.700 45.000
+ -20099428.886 7 -15661890.182 6 20756746.733 20756744.968 20756745.696
+ 44.100 41.200
+ 06 1 1 4 32 30.0000000 0 6G14G18G 9G21G22G15
+ -5545322.562 5 -4321028.279 4 22688055.349 22688052.805 22688054.555
+ 32.400 26.500
+ -17122207.266 7 -13341977.231 7 20421009.398 20421006.043 20421008.555
+ 44.600 46.800
+ -21933977.221 7 -17091404.712 7 20498215.459 20498213.174 20498214.770
+ 47.800 42.100
+ -13424018.478 5 -10460269.044 4 22343617.945 22343614.286 22343616.556
+ 33.900 28.100
+ -19926302.119 7 -15526985.838 7 20926562.100 20926557.559 20926561.381
+ 46.600 45.100
+ -20035024.601 7 -15611705.046 6 20769002.079 20769000.698 20769001.279
+ 44.000 41.200
+ 06 1 1 4 33 0.0000000 0 6G14G18G 9G21G22G15
+ -5625194.544 5 -4383266.165 4 22672856.676 22672853.776 22672855.761
+ 33.800 28.800
+ -17103853.032 7 -13327675.227 7 20424502.137 20424498.593 20424501.140
+ 44.600 46.500
+ -21927534.883 7 -17086384.708 7 20499441.768 20499439.094 20499440.786
+ 47.900 42.000
+ -13320862.819 5 -10379888.039 4 22363246.296 22363244.199 22363246.066
+ 34.900 26.200
+ -19974278.427 7 -15564369.976 7 20917432.485 20917428.035 20917431.863
+ 46.700 45.200
+ -19970078.806 7 -15561097.946 6 20781361.743 20781359.556 20781360.424
+ 44.000 41.200
+ 06 1 1 4 33 30.0000000 0 6G14G18G 9G21G22G15
+ -5704840.244 5 -4445327.722 4 22657700.322 22657697.700 22657699.625
+ 33.100 28.800
+ -17085101.071 7 -13313063.310 7 20428070.171 20428066.879 20428069.415
+ 44.400 46.400
+ -21920397.875 8 -17080823.397 7 20500799.697 20500797.259 20500798.908
+ 48.000 42.100
+ -13217415.898 5 -10299280.074 4 22382932.982 22382929.318 22382931.513
+ 33.500 26.500
+ -20021965.805 7 -15601528.966 7 20908357.944 20908353.416 20908357.299
+ 46.600 45.300
+ -19904593.610 7 -15510070.529 6 20793823.015 20793820.981 20793821.799
+ 44.000 41.000
+ 06 1 1 4 34 0.0000000 0 6G14G18G 9G21G22G15
+ -5784258.985 5 -4507212.426 4 22642587.264 22642585.010 22642586.243
+ 32.700 29.000
+ -17065950.852 7 -13298141.059 7 20431714.698 20431711.131 20431713.715
+ 44.700 46.400
+ -21912566.699 8 -17074721.180 7 20502290.134 20502287.463 20502289.232
+ 48.100 42.100
+ -13113680.321 5 -10218447.189 4 22402671.874 22402669.622 22402671.336
+ 33.500 25.900
+ -20069363.028 7 -15638461.864 7 20899338.684 20899334.018 20899338.011
+ 46.900 45.300
+ -19838571.016 7 -15458624.364 6 20806386.129 20806384.685 20806385.274
+ 44.000 41.100
+ 06 1 1 4 34 30.0000000 0 6G14G18G 9G21G22G15
+ -5863450.160 5 -4568919.801 4 22627517.832 22627515.596 22627516.975
+ 33.800 29.700
+ -17046401.894 7 -13282908.108 7 20435434.436 20435431.243 20435433.604
+ 44.500 46.400
+ -21904041.771 8 -17068078.374 7 20503912.382 20503909.725 20503911.507
+ 48.000 42.200
+ -13009659.266 5 -10137391.871 4 22422467.562 22422464.371 22422466.258
+ 33.200 26.800
+ -20116468.682 7 -15675167.569 7 20890374.830 20890370.050 20890374.146
+ 46.800 45.300
+ -19772013.341 7 -15406761.259 6 20819051.933 20819050.119 20819050.926
+ 44.000 40.600
+ 06 1 1 4 35 0.0000000 0 6G14G18G 9G21G22G15
+ -5942412.942 5 -4630449.217 5 22612492.278 22612489.233 22612491.246
+ 34.800 30.100
+ -17026454.077 7 -13267364.352 7 20439230.416 20439227.232 20439229.614
+ 44.600 46.400
+ -21894823.897 7 -17060895.609 7 20505666.117 20505663.914 20505665.323
+ 47.900 42.100
+ -12905355.125 5 -10056115.954 4 22442314.726 22442312.846 22442314.364
+ 33.100 26.200
+ -20163281.515 7 -15711645.100 7 20881466.362 20881461.829 20881465.757
+ 46.800 45.300
+ -19704922.757 7 -15354482.893 6 20831819.364 20831816.973 20831817.967
+ 43.700 40.600
+ 06 1 1 4 35 30.0000000 0 6G14G18G 9G21G22G15
+ -6021146.837 5 -4691800.282 5 22597509.118 22597506.619 22597508.284
+ 33.500 30.200
+ -17006107.095 7 -13251509.566 7 20443102.463 20443099.099 20443101.543
+ 44.800 46.300
+ -21884913.644 7 -17053173.331 7 20507551.963 20507549.734 20507551.146
+ 47.800 42.000
+ -12800770.926 5 -9974621.817 4 22462217.649 22462214.432 22462216.388
+ 33.100 27.400
+ -20209800.278 7 -15747893.483 7 20872614.068 20872609.613 20872613.476
+ 46.700 45.300
+ -19637301.402 7 -15301790.937 6 20844686.869 20844684.969 20844685.726
+ 43.800 40.600
+ 06 1 1 4 36 0.0000000 0 6G14G18G 9G21G22G15
+ -6099651.192 5 -4752972.466 4 22582570.108 22582567.777 22582569.209
+ 33.200 29.700
+ -16985360.180 7 -13235343.137 7 20447050.355 20447047.094 20447049.392
+ 44.800 46.400
+ -21874311.259 7 -17044911.727 6 20509569.489 20509567.118 20509568.747
+ 47.900 41.900
+ -12695909.481 5 -9892911.600 4 22482171.153 22482169.063 22482170.763
+ 33.000 27.100
+ -20256023.321 7 -15783911.439 7 20863818.138 20863813.643 20863817.616
+ 46.900 45.400
+ -19569151.333 7 -15248687.005 6 20857654.763 20857653.568 20857654.069
+ 44.000 40.600
+ 06 1 1 4 36 30.0000000 0 6G14G18G 9G21G22G15
+ -6177925.382 5 -4813965.321 4 22567675.802 22567672.747 22567674.789
+ 34.800 29.200
+ -16964212.866 7 -13218864.713 7 20451074.888 20451071.333 20451073.853
+ 44.700 46.200
+ -21863017.769 7 -17036111.599 7 20511718.645 20511716.233 20511717.831
+ 47.800 42.000
+ -12590773.456 5 -9810987.488 4 22502178.663 22502175.843 22502177.650
+ 33.000 27.100
+ -20301949.218 7 -15819697.853 7 20855078.610 20855074.233 20855078.101
+ 46.600 45.500
+ -19500474.756 7 -15195172.817 6 20870724.068 20870722.393 20870723.040
+ 43.800 40.900
+ 06 1 1 4 37 0.0000000 0 6G14G18G 9G21G22G15
+ -6255968.877 5 -4874778.425 4 22552824.181 22552821.366 22552823.142
+ 34.400 29.700
+ -16942665.083 7 -13202074.235 7 20455175.070 20455171.776 20455174.234
+ 44.900 46.200
+ -21851034.179 7 -17026773.735 7 20513999.004 20513996.732 20513998.192
+ 47.600 42.000
+ -12485365.769 5 -9728851.645 4 22522237.225 22522234.395 22522236.328
+ 33.900 26.200
+ -20347576.841 7 -15855251.843 7 20846396.025 20846391.644 20846395.418
+ 46.600 45.700
+ -19431273.978 7 -15141250.162 6 20883893.031 20883890.857 20883891.728
+ 43.500 40.500
+ 06 1 1 4 37 30.0000000 0 6G14G18G 9G21G22G15
+ -6333781.410 5 -4935411.530 5 22538016.500 22538013.740 22538015.632
+ 33.600 30.100
+ -16920716.354 7 -13184971.334 7 20459351.648 20459348.473 20459350.848
+ 45.100 46.200
+ -21838360.386 7 -17016898.048 7 20516410.625 20516408.383 20516409.862
+ 47.700 42.000
+ -12379689.334 5 -9646506.422 4 22542346.036 22542343.760 22542345.821
+ 33.100 24.900
+ -20392904.782 7 -15890572.313 7 20837770.631 20837766.023 20837769.963
+ 46.800 45.600
+ -19361551.063 7 -15086920.640 6 20897160.649 20897158.746 20897159.421
+ 43.500 40.400
+ 06 1 1 4 38 0.0000000 0 6G14G18G 9G21G22G15
+ -6411362.143 5 -4995864.024 5 22523253.962 22523251.034 22523253.025
+ 34.300 30.400
+ -16898366.612 7 -13167555.956 7 20463604.756 20463601.485 20463603.797
+ 44.900 46.200
+ -21824997.487 7 -17006485.394 7 20518953.728 20518951.290 20518952.874
+ 47.600 42.000
+ -12273746.784 5 -9563953.799 4 22562508.252 22562503.778 22562506.458
+ 32.300 24.200
+ -20437931.802 7 -15925658.299 7 20829202.157 20829197.508 20829201.558
+ 46.700 45.500
+ -19291308.313 7 -15032186.042 6 20910526.811 20910525.500 20910525.986
+ 43.500 40.500
+ 06 1 1 4 38 30.0000000 0 6G14G18G 9G21G22G15
+ -6488710.584 5 -5056135.510 5 22508534.280 22508532.280 22508533.405
+ 33.900 30.200
+ -16875615.546 7 -13149827.851 7 20467934.158 20467930.910 20467933.199
+ 45.100 46.200
+ -21810946.305 7 -16995536.419 7 20521627.324 20521625.260 20521626.622
+ 47.700 42.200
+ -12167541.085 5 -9481196.144 4 22582716.120 22582714.359 22582716.012
+ 32.100 24.900
+ -20482656.186 7 -15960508.470 7 20820691.412 20820686.789 20820690.838
+ 46.800 45.600
+ -19220548.222 7 -14977048.329 6 20923992.117 20923990.777 20923991.272
+ 43.600 40.200
+ 06 1 1 4 39 0.0000000 0 6G14G18G 9G21G22G15
+ -6565826.005 5 -5116225.424 4 22493859.560 22493857.064 22493858.583
+ 33.200 29.000
+ -16852462.452 7 -13131786.481 7 20472339.935 20472336.774 20472339.033
+ 45.100 46.100
+ -21796208.196 7 -16984052.179 7 20524432.030 20524429.787 20524431.248
+ 47.800 42.100
+ -12061075.179 5 -9398235.759 4 22602977.754 22602974.165 22602976.306
+ 32.400 24.600
+ -20527077.013 7 -15995122.101 7 20812238.568 20812233.861 20812237.890
+ 46.900 45.700
+ -19149272.663 7 -14921508.942 6 20937556.232 20937553.941 20937554.909
+ 43.600 39.800
+ 06 1 1 4 39 30.0000000 0 6G14G18G 9G21G22G15
+ -6642708.079 5 -5176133.524 4 22479229.857 22479226.714 22479228.942
+ 34.300 28.600
+ -16828906.855 7 -13113431.471 7 20476822.486 20476819.213 20476821.608
+ 45.000 45.900
+ -21780784.052 7 -16972033.358 7 20527367.337 20527364.855 20527366.487
+ 47.800 42.100
+ -11954351.733 5 -9315074.641 4 22623285.453 22623283.207 22623284.873
+ 32.400 24.900
+ -20571192.603 7 -16029497.888 7 20803843.406 20803838.873 20803842.912
+ 47.000 45.800
+ -19077484.134 7 -14865569.856 6 20951217.046 20951214.729 20951215.759
+ 43.400 39.700
+ 06 1 1 4 40 0.0000000 0 6G14G18G 9G21G22G15
+ -6719355.962 5 -5235859.136 5 22464644.180 22464641.705 22464643.309
+ 34.700 30.200
+ -16804948.663 7 -13094762.750 7 20481381.584 20481378.276 20481380.708
+ 45.000 45.700
+ -21764673.879 7 -16959479.975 6 20530432.822 20530430.655 20530432.052
+ 47.900 41.900
+ -11847373.096 5 -9231714.680 4 22643642.821 22643640.212 22643642.220
+ 32.300 24.200
+ -20615001.584 7 -16063634.755 7 20795507.000 20795502.260 20795506.321
+ 46.700 45.900
+ -19005184.814 7 -14809232.752 6 20964974.874 20964972.992 20964973.755
+ 43.600 39.800
+ 06 1 1 4 40 30.0000000 0 6G14G18G 9G21G22G15
+ -6795769.064 5 -5295401.780 5 22450102.875 22450100.910 22450102.070
+ 34.700 30.400
+ -16780587.746 7 -13075780.220 7 20486017.459 20486013.963 20486016.524
+ 45.100 45.600
+ -21747878.451 7 -16946392.627 6 20533628.981 20533626.641 20533628.148
+ 47.700 41.900
+ -11740142.984 5 -9148158.751 4 22664049.191 22664045.643 22664047.784
+ 32.100 25.900
+ -20658502.725 7 -16097531.743 7 20787229.094 20787224.324 20787228.342
+ 46.600 45.800
+ -18932377.296 7 -14752499.644 6 20978829.026 20978827.879 20978828.338
+ 43.500 40.000
+ 06 1 1 4 41 0.0000000 0 6G14G18G 9G21G22G15
+ -6871946.926 5 -5354761.130 4 22435607.095 22435604.242 22435606.187
+ 34.400 29.900
+ -16755823.819 7 -13056483.656 7 20490729.896 20490726.411 20490728.937
+ 45.200 45.400
+ -21730399.380 7 -16932772.569 7 20536955.163 20536952.736 20536954.231
+ 47.700 42.000
+ -11632663.952 5 -9064408.879 4 22684501.247 22684498.419 22684500.130
+ 32.100 25.600
+ -20701694.555 7 -16131187.712 7 20779009.723 20779005.237 20779009.151
+ 46.700 46.000
+ -18859063.773 7 -14695372.258 6 20992780.319 20992778.940 20992779.483
+ 43.100 39.700
+ 06 1 1 4 41 30.0000000 0 6G14G18G 9G21G22G15
+ -6947889.160 6 -5413936.879 5 22421156.070 22421153.024 22421155.050
+ 36.000 31.000
+ -16730656.664 7 -13036872.885 7 20495518.991 20495515.646 20495518.041
+ 45.100 45.600
+ -21712237.318 7 -16918620.309 7 20540411.335 20540409.028 20540410.437
+ 47.600 42.200
+ -11524939.154 5 -8980467.492 4 22705000.456 22704997.438 22704999.924
+ 31.600 25.300
+ -20744575.747 7 -16164601.624 7 20770849.829 20770845.213 20770849.172
+ 46.700 46.100
+ -18785246.671 7 -14637852.471 6 21006827.777 21006825.906 21006826.550
+ 43.100 39.800
+ 06 1 1 4 42 0.0000000 0 6G14G18G 9G21G22G15
+ -7023595.271 5 -5472928.634 5 22406748.894 22406746.781 22406748.130
+ 34.700 30.800
+ -16705085.857 7 -13016947.585 7 20500384.859 20500381.571 20500383.953
+ 45.200 45.400
+ -21693393.622 7 -16903936.905 7 20543997.035 20543994.909 20543996.139
+ 47.400 42.100
+ -11416971.217 5 -8896336.671 4 22725546.389 22725543.395 22725545.171
+ 31.000 25.600
+ -20787144.922 7 -16197772.411 7 20762749.030 20762744.518 20762748.425
+ 46.600 46.100
+ -18710928.228 7 -14579941.984 6 21020970.475 21020968.338 21020969.079
+ 43.100 40.000
+ 06 1 1 4 42 30.0000000 0 6G14G18G 9G21G22G15
+ -7099064.742 5 -5531735.983 5 22392387.675 22392385.180 22392387.002
+ 34.800 30.200
+ -16679111.176 7 -12996707.577 7 20505327.650 20505324.340 20505326.743
+ 45.200 45.300
+ -21673869.065 7 -16888722.966 6 20547712.272 20547710.210 20547711.483
+ 47.500 41.800
+ -11308762.878 5 -8812018.519 4 22746136.932 22746134.565 22746136.315
+ 32.300 26.800
+ -20829400.615 7 -16230698.925 7 20754708.087 20754703.573 20754707.431
+ 46.700 46.300
+ -18636110.970 7 -14521642.833 6 21035207.377 21035205.631 21035206.074
+ 42.600 39.700
+ 06 1 1 4 43 0.0000000 0 6G14G18G 9G21G22G15
+ -7174296.549 6 -5590358.169 5 22378072.022 22378069.020 22378071.226
+ 36.300 30.800
+ -16652731.956 7 -12976152.347 7 20510347.665 20510344.121 20510346.719
+ 45.300 45.100
+ -21653664.353 7 -16872979.034 6 20551557.193 20551554.944 20551556.381
+ 47.600 41.900
+ -11200316.792 5 -8727515.120 4 22766774.914 22766771.165 22766773.668
+ 30.800 24.200
+ -20871341.773 7 -16263380.344 7 20746726.975 20746722.475 20746726.331
+ 46.700 46.400
+ -18560797.508 7 -14462957.073 6 21049538.540 21049537.381 21049537.679
+ 42.600 39.300
+ 06 1 1 4 43 30.0000000 0 6G14G18G 9G21G22G15
+ -7249290.297 5 -5648794.836 5 22363800.624 22363798.123 22363799.807
+ 35.100 31.000
+ -16625948.321 7 -12955281.980 7 20515444.273 20515440.887 20515443.407
+ 45.200 44.700
+ -21632781.178 7 -16856706.424 6 20555531.103 20555528.783 20555530.257
+ 47.500 41.400
+ -11091636.101 5 -8642828.909 3 22787455.409 22787452.399 22787454.392
+ 30.600 23.800
+ -20912966.834 7 -16295815.454 7 20738806.099 20738801.453 20738805.408
+ 46.700 46.300
+ -18484989.991 7 -14403886.317 6 21063963.863 21063963.192 21063963.281
+ 42.400 39.500
+ 06 1 1 4 44 0.0000000 0 6G14G18G 9G21G22G15
+ -7324045.634 6 -5707045.720 5 22349575.636 22349572.528 22349574.656
+ 36.300 30.400
+ -16598759.999 7 -12934096.276 7 20520617.988 20520614.651 20520617.133
+ 45.600 44.900
+ -21611220.281 7 -16839905.724 6 20559634.089 20559631.766 20559633.210
+ 47.500 41.800
+ -10982723.721 5 -8557962.146 3 22808180.374 22808177.877 22808179.609
+ 31.300 23.400
+ -20954274.362 7 -16328003.139 7 20730945.476 20730940.801 20730944.817
+ 46.700 46.400
+ -18408690.833 7 -14344432.454 6 21078483.383 21078482.409 21078482.614
+ 42.700 39.600
+ 06 1 1 4 44 30.0000000 0 6G14G18G 9G21G22G15
+ -7398562.261 6 -5765110.624 5 22335395.661 22335392.706 22335394.756
+ 36.500 31.500
+ -16571166.710 7 -12912595.015 7 20525868.950 20525865.427 20525868.030
+ 45.600 44.900
+ -21588982.572 7 -16822577.636 6 20563865.583 20563863.524 20563864.766
+ 47.300 41.800
+ -10873582.983 5 -8472917.442 4 22828949.839 22828946.517 22828948.781
+ 30.200 24.200
+ -20995263.153 7 -16359942.453 7 20723145.582 20723140.904 20723144.915
+ 46.800 46.400
+ -18331902.536 7 -14284597.436 6 21093095.587 21093094.669 21093094.980
+ 42.500 39.200
+ 06 1 1 4 45 0.0000000 0 6G14G18G 9G21G22G15
+ -7472839.544 5 -5822988.990 5 22321260.867 22321258.274 22321259.756
+ 35.600 31.800
+ -16543168.292 7 -12890778.065 7 20531196.839 20531193.391 20531195.909
+ 45.500 44.900
+ -21566069.823 7 -16804723.548 6 20568225.959 20568223.638 20568225.051
+ 47.600 41.800
+ -10764215.528 4 -8387696.042 3 22849761.881 22849758.290 22849760.665
+ 29.500 20.500
+ -21035931.784 7 -16391632.294 7 20715406.729 20715401.966 20715406.073
+ 47.000 46.500
+ -18254627.659 7 -14224383.262 6 21107800.528 21107799.560 21107799.993
+ 42.700 38.900
+ 06 1 1 4 45 30.0000000 0 6G14G18G 9G21G22G15
+ -7546876.795 6 -5880680.337 5 22307172.363 22307169.015 22307171.295
+ 36.300 30.400
+ -16514764.397 7 -12868645.164 7 20536601.792 20536598.583 20536600.929
+ 45.600 44.800
+ -21542482.967 7 -16786344.179 6 20572714.277 20572711.984 20572713.449
+ 47.400 41.600
+ -10654624.780 5 -8302300.678 3 22870615.695 22870612.930 22870615.004
+ 30.400 21.100
+ -21076278.645 7 -16423071.410 7 20707728.921 20707724.207 20707728.181
+ 46.600 46.400
+ -18176868.505 7 -14163791.730 6 21122597.839 21122596.592 21122597.128
+ 42.400 38.700
+ 06 1 1 4 46 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -198246.502 2 -154477.710 2 24430938.533 24430940.214 24430938.755
+ 12.600 16.100
+ -7620673.520 5 -5938184.263 5 22293129.088 22293126.216 22293128.144
+ 35.800 31.100
+ -16485954.627 7 -12846195.995 7 20542084.192 20542080.838 20542083.327
+ 45.700 44.800
+ -21518223.216 7 -16767440.468 6 20577330.921 20577328.453 20577330.043
+ 47.600 41.500
+ -10544814.056 5 -8216733.919 3 22891512.252 22891509.025 22891511.327
+ 30.200 22.100
+ -21116302.562 7 -16454258.872 7 20700112.480 20700107.889 20700111.786
+ 46.500 46.600
+ -18098627.658 7 -14102824.855 6 21137486.761 21137485.276 21137485.769
+ 42.200 38.600
+ 06 1 1 4 46 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -291042.834 3 -226786.472 2 24413282.988 24413281.957 24413281.205
+ 20.500 16.100
+ -7694229.326 6 -5995500.446 5 22279132.023 22279129.373 22279130.952
+ 36.500 32.000
+ -16456738.975 7 -12823430.555 7 20547643.780 20547640.338 20547642.927
+ 45.600 44.700
+ -21493291.900 7 -16748013.467 6 20582075.084 20582072.693 20582074.221
+ 47.500 41.400
+ -10434786.265 4 -8130997.986 4 22912450.671 22912447.301 22912449.059
+ 29.500 24.200
+ -21156002.165 7 -16485193.628 7 20692557.767 20692553.285 20692557.215
+ 46.800 46.700
+ -18019907.844 7 -14041484.740 6 21152466.928 21152465.132 21152465.812
+ 42.200 38.100
+ 06 1 1 4 47 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -383751.051 4 -299026.593 2 24395640.961 24395640.307 24395639.966
+ 24.200 17.000
+ -7767543.477 6 -6052628.330 5 22265180.607 22265177.656 22265179.616
+ 36.400 31.100
+ -16427117.562 7 -12800348.934 7 20553280.589 20553277.187 20553279.612
+ 45.600 44.600
+ -21467690.040 7 -16728063.968 6 20586946.965 20586944.565 20586946.124
+ 47.600 41.300
+ -10324543.926 4 -8045094.870 3 22933428.628 22933425.732 22933427.432
+ 28.100 23.800
+ -21195376.110 7 -16515874.628 7 20685065.243 20685060.693 20685064.644
+ 46.700 46.700
+ -17940711.479 7 -13979773.280 6 21167537.814 21167535.697 21167536.534
+ 42.300 38.400
+ 06 1 1 4 47 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -476368.067 3 -371195.706 24378016.000 24378014.835 24378014.541
+ 19.300 3.000
+ -7840615.449 6 -6109567.520 5 22251275.268 22251272.551 22251274.348
+ 36.500 32.100
+ -16397090.264 7 -12776951.036 7 20558994.462 20558991.186 20558993.594
+ 45.600 44.500
+ -21441418.888 7 -16707592.935 6 20591946.109 20591943.840 20591945.284
+ 47.500 41.400
+ -10214089.819 4 -7959026.803 3 22954446.311 22954443.885 22954446.135
+ 29.500 23.400
+ -21234423.077 7 -16546300.835 7 20677634.943 20677630.319 20677634.326
+ 46.800 46.900
+ -17861041.181 7 -13917692.540 6 21182698.896 21182696.479 21182697.488
+ 42.200 38.300
+ 06 1 1 4 48 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -568890.817 3 -443291.304 2 24360409.094 24360409.060 24360408.359
+ 21.100 15.100
+ -7913445.155 6 -6166317.910 5 22237416.308 22237413.666 22237415.335
+ 36.500 32.100
+ -16366656.888 7 -12753236.720 7 20564785.837 20564782.342 20564784.888
+ 45.500 44.300
+ -21414479.901 7 -16686601.516 6 20597072.539 20597070.131 20597071.690
+ 47.600 41.100
+ -10103426.950 4 -7872796.035 4 22975506.411 22975502.669 22975504.754
+ 29.200 24.900
+ -21273141.705 7 -16576471.192 7 20670266.848 20670262.431 20670266.234
+ 46.700 47.000
+ -17780899.428 6 -13855244.458 6 21197949.110 21197947.074 21197947.686
+ 41.800 38.600
+ 06 1 1 4 48 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -661316.040 3 -515310.897 2 24342820.867 24342820.926 24342820.142
+ 23.000 12.600
+ -7986031.781 6 -6222878.893 5 22223603.401 22223600.870 22223602.400
+ 36.500 32.300
+ -16335816.619 7 -12729205.342 7 20570654.418 20570651.068 20570653.600
+ 45.600 44.400
+ -21386874.727 7 -16665090.986 6 20602325.663 20602323.173 20602324.817
+ 47.700 41.200
+ -9992558.207 4 -7786404.826 4 22996603.224 22996600.501 22996602.092
+ 29.000 24.600
+ -21311530.515 7 -16606384.546 7 20662961.852 20662957.298 20662961.199
+ 46.800 47.100
+ -17700288.763 6 -13792430.969 6 21213289.032 21213286.718 21213287.528
+ 41.600 37.900
+ 06 1 1 4 49 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -753640.821 2 -587252.175 2 24325252.629 24325251.504 24325251.696
+ 17.000 12.600
+ -8058374.963 6 -6279250.183 5 22209837.311 22209834.316 22209836.214
+ 36.500 32.100
+ -16304569.464 7 -12704856.914 7 20576600.718 20576597.408 20576599.688
+ 45.600 44.400
+ -21358604.431 7 -16643062.179 6 20607705.390 20607702.852 20607704.519
+ 47.600 41.000
+ -9881486.428 4 -7699855.440 3 23017739.189 23017736.854 23017738.489
+ 29.700 23.400
+ -21349587.923 7 -16636039.668 7 20655719.748 20655715.190 20655719.153
+ 46.700 47.200
+ -17619211.834 6 -13729254.153 6 21228717.661 21228715.196 21228716.151
+ 41.900 38.400
+ 06 1 1 4 49 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -845861.860 3 -659112.666 3 24307703.256 24307703.056 24307702.509
+ 22.600 21.100
+ -8130474.060 6 -6335431.274 5 22196117.281 22196114.032 22196116.153
+ 36.900 31.800
+ -16272915.224 7 -12680191.274 7 20582623.974 20582621.063 20582623.287
+ 45.800 44.500
+ -21329670.335 7 -16620516.128 6 20613211.267 20613208.751 20613210.418
+ 47.500 41.000
+ -9770214.522 5 -7613150.114 3 23038913.963 23038911.157 23038912.796
+ 30.600 23.800
+ -21387313.161 7 -16665435.956 7 20648540.855 20648536.317 20648540.195
+ 46.500 47.100
+ -17537671.061 6 -13665715.901 6 21244234.110 21244231.991 21244232.720
+ 41.600 38.100
+ 06 1 1 4 50 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -937976.035 3 -730889.872 3 24290175.460 24290174.188 24290173.597
+ 21.100 22.100
+ -8202328.818 6 -6391421.987 5 22182443.482 22182440.546 22182442.552
+ 36.600 31.800
+ -16240854.381 7 -12655208.801 7 20588725.444 20588721.927 20588724.372
+ 45.600 44.400
+ -21300074.049 7 -16597454.083 6 20618843.104 20618840.876 20618842.326
+ 47.500 41.100
+ -9658745.535 4 -7526291.181 3 23060125.692 23060122.675 23060124.507
+ 28.100 21.100
+ -21424704.461 7 -16694572.034 7 20641425.466 20641420.975 20641424.867
+ 46.800 47.200
+ -17455669.260 6 -13601818.427 6 21259838.222 21259836.359 21259836.867
+ 41.500 38.000
+ 06 1 1 4 50 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1029980.250 3 -802581.419 3 24272665.769 24272666.099 24272664.680
+ 21.100 20.500
+ -8273938.658 6 -6447221.839 5 22168816.697 22168813.974 22168815.690
+ 37.200 33.000
+ -16208386.356 7 -12629909.045 7 20594903.643 20594900.237 20594902.756
+ 45.700 44.100
+ -21269816.997 7 -16573877.158 6 20624600.909 20624598.670 20624600.079
+ 47.600 41.200
+ -9547082.193 4 -7439280.825 3 23081374.553 23081372.197 23081373.362
+ 26.800 23.800
+ -21461760.556 7 -16723446.909 7 20634373.936 20634369.539 20634373.358
+ 46.900 47.300
+ -17373209.073 6 -13537563.766 6 21275529.630 21275528.153 21275528.494
+ 41.200 38.000
+ 06 1 1 4 51 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1121871.401 3 -874184.830 24255180.529 24255179.420 24255179.540
+ 20.500 3.000
+ -8345303.163 6 -6502830.522 5 22155236.594 22155233.696 22155235.567
+ 37.500 32.300
+ -16175511.173 7 -12604292.022 7 20601159.653 20601156.297 20601158.665
+ 45.600 44.000
+ -21238901.045 7 -16549786.806 6 20630484.079 20630481.782 20630483.257
+ 47.600 41.200
+ -9435227.143 4 -7352121.067 3 23102659.592 23102656.990 23102658.449
+ 26.800 22.100
+ -21498480.014 7 -16752059.473 7 20627386.486 20627382.066 20627385.888
+ 46.900 47.300
+ -17290292.841 6 -13472953.720 6 21291308.575 21291306.566 21291307.180
+ 41.300 38.000
+ 06 1 1 4 51 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1213646.191 3 -945697.645 2 24237716.473 24237715.268 24237715.097
+ 22.100 17.000
+ -8416421.592 6 -6558247.466 5 22141703.400 22141700.069 22141702.295
+ 38.000 32.800
+ -16142228.617 7 -12578357.563 7 20607492.885 20607489.737 20607492.061
+ 45.500 44.000
+ -21207326.997 7 -16525183.651 6 20636492.333 20636490.112 20636491.604
+ 47.500 41.200
+ -9323183.316 4 -7264814.231 3 23123980.823 23123978.029 23123980.094
+ 27.600 21.600
+ -21534861.502 7 -16780408.683 7 20620463.471 20620458.657 20620462.818
+ 47.000 47.200
+ -17206923.496 6 -13407990.601 6 21307173.037 21307171.393 21307171.775
+ 41.000 38.300
+ 06 1 1 4 52 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1305301.629 3 -1017117.392 24220274.304 24220273.255 24220273.473
+ 23.800 3.000
+ -8487293.682 6 -6613472.444 5 22128216.280 22128213.642 22128215.433
+ 37.600 33.000
+ -16108538.847 7 -12552105.798 7 20613904.013 20613900.663 20613903.081
+ 45.700 43.900
+ -21175096.874 7 -16500069.265 6 20642625.531 20642623.373 20642624.713
+ 47.600 41.300
+ -9210953.998 4 -7177362.838 2 23145336.993 23145334.682 23145336.886
+ 29.000 17.800
+ -21570903.614 7 -16808493.451 7 20613604.826 20613600.101 20613604.213
+ 47.100 47.300
+ -17123103.821 6 -13342676.585 6 21323123.626 21323121.647 21323122.228
+ 41.100 37.800
+ 06 1 1 4 52 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1396834.483 3 -1088441.714 2 24202857.635 24202855.929 24202856.194
+ 22.100 13.900
+ -8557919.032 6 -6668505.164 5 22114777.339 22114774.296 22114776.227
+ 37.900 33.100
+ -16074441.346 7 -12525536.317 7 20620392.484 20620389.252 20620391.595
+ 45.700 43.900
+ -21142211.849 7 -16474444.571 6 20648883.305 20648881.138 20648882.587
+ 47.700 41.100
+ -9098541.892 4 -7089769.019 3 23166729.192 23166726.225 23166728.046
+ 26.800 18.600
+ -21606605.127 7 -16836312.811 7 20606811.023 20606806.443 20606810.457
+ 47.300 47.400
+ -17038836.275 6 -13277013.585 6 21339159.275 21339157.166 21339157.890
+ 40.900 37.700
+ 06 1 1 4 53 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1488241.684 3 -1159668.018 2 24185461.566 24185461.593 24185460.968
+ 23.800 17.800
+ -8628296.962 6 -6723345.087 5 22101384.611 22101381.586 22101383.631
+ 37.700 32.400
+ -16039936.384 7 -12498649.339 7 20626958.523 20626955.427 20626957.603
+ 45.500 44.000
+ -21108673.942 7 -16448311.133 6 20655265.411 20655263.148 20655264.639
+ 47.500 41.200
+ -8985949.725 4 -7002034.867 2 23188155.499 23188151.696 23188153.996
+ 27.900 16.100
+ -21641964.586 7 -16863865.633 7 20600082.464 20600077.707 20600081.793
+ 47.300 47.500
+ -16954123.532 6 -13211003.703 6 21355279.259 21355277.520 21355277.991
+ 40.900 37.200
+ 06 1 1 4 53 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1579519.980 3 -1230793.901 2 24168093.493 24168091.768 24168091.590
+ 22.600 15.100
+ -8698427.372 6 -6777992.151 5 22088039.046 22088036.143 22088038.126
+ 38.300 32.700
+ -16005023.671 7 -12471444.632 7 20633602.092 20633599.079 20633601.318
+ 45.600 44.000
+ -21074484.432 7 -16421669.956 6 20661771.367 20661769.125 20661770.617
+ 47.300 41.100
+ -8873180.607 4 -6914162.870 3 23209613.869 23209611.369 23209613.110
+ 27.100 19.300
+ -21676980.801 7 -16891150.997 7 20593419.229 20593414.289 20593418.545
+ 47.400 47.500
+ -16868968.374 6 -13144649.040 6 21371483.636 21371482.101 21371482.477
+ 40.900 37.300
+ 06 1 1 4 54 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1670666.222 3 -1301816.908 3 24150747.634 24150747.070 24150746.841
+ 21.100 19.900
+ -8768309.578 6 -6832445.797 5 22074741.005 22074738.166 22074740.006
+ 37.700 33.200
+ -15969703.307 7 -12443922.278 7 20640323.881 20640320.342 20640322.735
+ 45.600 43.800
+ -21039645.189 7 -16394522.494 6 20668401.234 20668398.879 20668400.347
+ 47.300 41.000
+ -8760237.283 4 -6826155.158 3 23231105.920 23231103.786 23231105.420
+ 27.100 21.600
+ -21711652.168 7 -16918167.646 7 20586821.362 20586816.693 20586820.696
+ 47.300 47.800
+ -16783373.580 6 -13077951.796 6 21387771.729 21387770.245 21387770.577
+ 40.700 37.600
+ 06 1 1 4 54 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1761677.293 4 -1372734.589 3 24133429.361 24133428.309 24133428.098
+ 24.900 19.300
+ -8837943.030 6 -6886705.606 5 22061489.962 22061487.339 22061489.010
+ 37.500 33.500
+ -15933975.107 7 -12416082.128 7 20647122.326 20647119.253 20647121.439
+ 45.800 43.800
+ -21004157.460 7 -16366869.714 6 20675154.303 20675152.036 20675153.423
+ 47.300 41.200
+ -8647122.695 4 -6738013.955 3 23252631.388 23252628.463 23252630.394
+ 25.900 20.500
+ -21745977.589 7 -16944914.725 7 20580289.451 20580284.815 20580288.765
+ 47.200 47.800
+ -16697341.899 6 -13010914.133 6 21404142.271 21404141.333 21404141.574
+ 40.700 36.900
+ 06 1 1 4 55 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1852549.907 3 -1443544.399 3 24116136.673 24116135.378 24116135.406
+ 21.100 19.300
+ -8907327.256 6 -6940771.211 5 22048286.938 22048283.673 22048285.869
+ 38.000 33.200
+ -15897839.096 7 -12387924.201 7 20653999.096 20653995.618 20653998.124
+ 46.200 43.600
+ -20968023.350 7 -16338713.269 6 20682030.098 20682028.113 20682029.376
+ 47.200 41.000
+ -8533839.793 4 -6649741.597 3 23274188.955 23274186.048 23274187.588
+ 25.300 21.600
+ -21779955.459 7 -16971390.986 7 20573823.605 20573818.933 20573823.001
+ 47.300 47.900
+ -16610876.184 6 -12943538.298 6 21420596.829 21420595.356 21420595.755
+ 40.700 37.200
+ 06 1 1 4 55 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1943281.043 3 -1514243.931 2 24098869.708 24098870.119 24098869.897
+ 22.100 17.000
+ -8976461.955 6 -6994642.400 5 22035130.984 22035127.670 22035129.904
+ 38.000 33.400
+ -15861295.221 7 -12359448.454 7 20660953.073 20660949.548 20660952.167
+ 46.300 43.400
+ -20931244.294 7 -16310054.264 6 20689029.063 20689026.846 20689028.234
+ 47.300 41.000
+ -8420391.296 4 -6561340.217 3 23295776.885 23295774.578 23295775.980
+ 28.800 23.400
+ -21813584.592 7 -16997595.506 8 20567424.153 20567419.565 20567423.561
+ 47.500 48.000
+ -16523978.947 6 -12875826.192 6 21437132.853 21437131.732 21437131.875
+ 40.700 37.300
+ 06 1 1 4 56 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2033867.499 2 -1584830.704 2 24081633.739 24081632.119 24081632.161
+ 17.800 17.000
+ -9045346.887 6 -7048318.959 5 22022022.300 22022019.624 22022021.424
+ 38.100 33.800
+ -15824343.696 7 -12330655.065 7 20667984.751 20667981.260 20667983.766
+ 46.100 43.300
+ -20893822.065 7 -16280894.081 6 20696150.230 20696148.041 20696149.422
+ 47.200 40.700
+ -8306779.829 4 -6472811.828 3 23317396.973 23317394.190 23317395.699
+ 28.100 23.400
+ -21846863.669 7 -17023527.254 8 20561091.347 20561086.767 20561090.782
+ 47.400 48.000
+ -16436652.980 6 -12807780.035 6 21453750.673 21453749.229 21453749.644
+ 40.900 37.400
+ 06 1 1 4 56 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2124306.040 3 -1655302.221 3 24064422.032 24064422.108 24064421.872
+ 23.400 21.600
+ -9113981.268 6 -7101800.274 5 22008961.723 22008958.878 22008960.658
+ 37.900 33.900
+ -15786984.060 7 -12301543.658 7 20675093.703 20675090.634 20675092.942
+ 46.100 43.400
+ -20855758.797 7 -16251234.389 6 20703393.615 20703391.160 20703392.791
+ 47.200 40.800
+ -8193008.749 4 -6384159.097 3 23339046.995 23339044.163 23339045.733
+ 26.800 22.600
+ -21879791.383 7 -17049185.214 8 20554825.472 20554820.847 20554824.859
+ 47.300 48.100
+ -16348901.014 6 -12739401.889 6 21470449.133 21470447.718 21470448.160
+ 40.500 36.700
+ 06 1 1 4 57 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2214593.477 4 -1725656.013 3 24047242.543 24047241.029 24047240.842
+ 25.300 22.100
+ -9182364.665 6 -7155086.026 5 21995948.718 21995945.742 21995947.762
+ 38.400 33.400
+ -15749216.327 7 -12272114.256 7 20682280.760 20682277.595 20682279.879
+ 46.100 43.200
+ -20817055.882 7 -16221076.274 6 20710758.423 20710756.108 20710757.647
+ 47.400 40.800
+ -8079081.149 4 -6295384.410 3 23360726.015 23360723.427 23360725.263
+ 25.300 19.300
+ -21912366.301 7 -17074568.270 8 20548626.655 20548622.082 20548626.026
+ 47.300 48.200
+ -16260725.921 6 -12670694.019 5 21487228.349 21487226.659 21487227.260
+ 40.100 35.800
+ 06 1 1 4 57 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2304726.708 4 -1795889.633 3 24030090.144 24030088.633 24030089.473
+ 26.800 21.100
+ -9250497.040 6 -7208176.176 5 21982983.870 21982980.633 21982982.824
+ 39.100 33.400
+ -15711040.899 7 -12242367.173 7 20689545.031 20689542.139 20689544.327
+ 46.100 43.100
+ -20777715.570 7 -16190421.485 6 20718244.877 20718242.515 20718243.976
+ 47.500 40.800
+ -7964999.538 4 -6206489.659 3 23382434.753 23382432.857 23382433.889
+ 24.900 20.500
+ -21944587.024 7 -17099675.327 8 20542495.080 20542490.583 20542494.509
+ 47.200 48.100
+ -16172130.326 6 -12601658.468 6 21504088.076 21504085.867 21504086.738
+ 39.800 36.100
+ 06 1 1 4 58 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2394702.490 4 -1866000.607 3 24012968.889 24012966.867 24012967.425
+ 25.900 18.600
+ -9318377.661 6 -7261070.140 5 21970066.756 21970063.647 21970065.563
+ 38.900 34.400
+ -15672457.644 7 -12212302.302 7 20696887.796 20696884.287 20696886.652
+ 45.900 43.100
+ -20737739.152 7 -16159271.027 6 20725852.078 20725849.643 20725851.171
+ 47.500 40.600
+ -7850766.724 4 -6117477.115 3 23404173.017 23404170.249 23404171.947
+ 24.900 19.300
+ -21976452.407 7 -17124505.495 8 20536431.319 20536426.752 20536430.716
+ 47.100 48.200
+ -16083117.301 6 -12532297.679 6 21521026.368 21521024.769 21521025.271
+ 40.200 36.400
+ 06 1 1 4 58 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2484517.636 4 -1935986.407 4 23995876.575 23995876.663 23995875.537
+ 24.900 24.600
+ -9386006.262 6 -7313767.724 5 21957196.989 21957194.001 21957196.085
+ 39.100 33.900
+ -15633466.559 7 -12181919.644 7 20704307.009 20704304.024 20704306.327
+ 46.100 42.800
+ -20697128.604 7 -16127626.445 6 20733579.984 20733577.581 20733579.095
+ 47.600 40.400
+ -7736385.729 4 -6028349.078 3 23425938.977 23425936.957 23425937.963
+ 24.900 22.600
+ -22007960.807 7 -17149057.496 8 20530435.376 20530431.026 20530434.810
+ 47.000 48.200
+ -15993689.800 6 -12462613.949 6 21538043.517 21538042.127 21538042.621
+ 40.000 36.300
+ 06 1 1 4 59 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2574169.025 4 -2005844.545 3 23978817.275 23978816.256 23978815.941
+ 24.900 22.600
+ -9453382.175 6 -7366268.413 5 21944376.091 21944372.662 21944374.950
+ 39.500 33.500
+ -15594067.828 7 -12151219.338 7 20711804.829 20711801.197 20711803.769
+ 46.100 42.600
+ -20655885.889 7 -16095489.258 6 20741427.965 20741425.637 20741427.287
+ 47.400 40.200
+ -7621859.750 4 -5939108.126 2 23447732.683 23447729.936 23447731.657
+ 27.100 15.100
+ -22039111.101 7 -17173330.451 8 20524507.880 20524503.382 20524507.139
+ 46.900 48.400
+ -15903850.448 6 -12392609.255 5 21555139.366 21555137.875 21555138.428
+ 39.800 35.600
+ 06 1 1 4 59 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2663653.406 3 -2075572.575 3 23961788.475 23961787.914 23961787.234
+ 23.400 22.100
+ -9520504.927 6 -7418571.833 5 21931602.589 21931599.806 21931601.641
+ 39.300 34.000
+ -15554261.224 7 -12120201.205 7 20719379.324 20719376.234 20719378.564
+ 46.100 42.500
+ -20614012.743 7 -16062860.831 6 20749396.165 20749393.864 20749395.466
+ 47.300 40.200
+ -7507190.888 4 -5849755.798 3 23469552.836 23469550.572 23469552.432
+ 27.400 18.600
+ -22069901.964 7 -17197323.327 8 20518648.439 20518643.974 20518647.775
+ 47.000 48.400
+ -15813601.999 6 -12322285.821 5 21572313.324 21572311.787 21572312.200
+ 39.800 35.700
+ 06 1 1 5 0 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2752967.591 4 -2145167.988 3 23944792.305 23944792.142 23944791.099
+ 25.300 20.500
+ -9587373.999 6 -7470677.580 5 21918878.008 21918875.063 21918876.860
+ 39.300 34.400
+ -15514047.009 7 -12088865.454 7 20727032.308 20727028.855 20727031.224
+ 46.200 42.600
+ -20571511.569 7 -16029743.033 6 20757483.945 20757481.706 20757483.147
+ 47.200 40.400
+ -7392382.244 4 -5760294.555 2 23491401.315 23491398.454 23491399.827
+ 26.500 17.000
+ -22100332.121 7 -17221035.138 8 20512857.709 20512853.254 20512857.155
+ 47.000 48.500
+ -15722947.359 6 -12251645.860 5 21589564.833 21589562.928 21589563.401
+ 39.700 35.900
+ 06 1 1 5 0 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2842108.420 3 -2214628.348 2 23927829.023 23927828.237 23927828.169
+ 22.600 17.000
+ -9653989.664 6 -7522585.862 5 21906201.233 21906198.317 21906200.208
+ 39.100 34.000
+ -15473425.133 7 -12057212.050 7 20734762.045 20734758.935 20734761.345
+ 46.400 42.700
+ -20528383.535 7 -15996136.773 6 20765691.014 20765688.641 20765690.183
+ 47.100 40.500
+ -7277437.288 3 -5670727.036 2 23513273.228 23513271.188 23513272.717
+ 23.000 17.000
+ -22130400.371 7 -17244464.944 8 20507136.145 20507131.553 20507135.475
+ 47.200 48.500
+ -15631889.289 6 -12180691.538 5 21606892.433 21606890.746 21606891.217
+ 39.700 35.900
+ 06 1 1 5 1 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2931072.760 4 -2283951.193 3 23910900.545 23910899.331 23910899.331
+ 25.900 18.600
+ -9720351.137 6 -7574296.070 5 21893573.295 21893570.378 21893572.316
+ 39.700 34.900
+ -15432395.731 7 -12025241.086 7 20742570.203 20742566.604 20742569.106
+ 46.400 42.700
+ -20484631.248 7 -15962044.079 6 20774016.856 20774014.559 20774015.956
+ 47.100 40.200
+ -7162358.073 4 -5581055.022 2 23535172.727 23535170.282 23535171.685
+ 25.300 17.800
+ -22160105.310 7 -17267611.651 8 20501483.505 20501478.770 20501482.841
+ 47.100 48.600
+ -15540430.765 6 -12109425.177 5 21624295.973 21624294.586 21624295.122
+ 39.700 35.200
+ 06 1 1 5 1 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3019857.256 4 -2353133.868 3 23894005.126 23894003.722 23894003.933
+ 25.900 18.600
+ -9786457.835 6 -7625807.767 5 21880993.712 21880990.702 21880992.605
+ 39.300 34.700
+ -15390958.665 7 -11992952.474 7 20750454.762 20750451.897 20750454.051
+ 46.300 42.700
+ -20440256.503 7 -15927466.356 6 20782461.076 20782458.701 20782460.189
+ 47.100 40.500
+ -7047147.814 3 -5491280.798 3 23557096.556 23557094.597 23557095.551
+ 22.600 19.900
+ -22189445.461 7 -17290474.104 8 20495899.987 20495895.465 20495899.489
+ 47.300 48.600
+ -15448574.784 6 -12037849.126 5 21641775.592 21641774.192 21641774.757
+ 40.000 35.400
+ 06 1 1 5 2 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3108458.789 4 -2422173.969 3 23877143.437 23877144.048 23877142.937
+ 25.300 20.500
+ -9852309.628 6 -7677120.828 5 21868462.184 21868459.349 21868461.307
+ 39.300 34.800
+ -15349114.234 7 -11960346.421 7 20758417.819 20758414.612 20758416.868
+ 46.300 42.500
+ -20395261.088 7 -15892404.990 6 20791023.286 20791020.985 20791022.493
+ 46.800 40.300
+ -6931810.107 4 -5401407.336 3 23579045.041 23579042.068 23579044.069
+ 26.800 19.300
+ -22218419.336 7 -17313051.149 8 20490386.526 20490382.009 20490385.930
+ 47.300 48.800
+ -15356323.980 6 -11965965.405 5 21659330.989 21659329.035 21659329.711
+ 39.200 35.200
+ 06 1 1 5 2 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3196874.285 4 -2491069.070 3 23860320.720 23860318.701 23860318.403
+ 24.200 20.500
+ -9917905.997 6 -7728234.862 5 21855979.517 21855976.698 21855978.520
+ 39.200 34.900
+ -15306862.759 7 -11927423.202 7 20766458.045 20766454.794 20766457.080
+ 46.200 42.600
+ -20349647.325 7 -15856861.805 6 20799703.294 20799701.134 20799702.573
+ 47.000 40.300
+ -6816346.785 4 -5311435.930 3 23601016.717 23601014.766 23601016.109
+ 26.800 21.600
+ -22247026.020 7 -17335342.069 8 20484943.061 20484938.404 20484942.382
+ 47.300 48.800
+ -15263681.157 6 -11893776.240 5 21676960.634 21676958.407 21676959.073
+ 38.500 35.400
+ 06 1 1 5 3 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3285100.348 4 -2559816.618 2 23843530.322 23843529.181 23843529.492
+ 25.600 17.800
+ -9983246.513 6 -7779149.537 5 21843545.744 21843542.871 21843544.708
+ 39.600 35.400
+ -15264204.094 7 -11894182.682 7 20774575.395 20774572.407 20774574.576
+ 46.300 42.400
+ -20303417.073 7 -15820838.226 6 20808500.556 20808498.260 20808499.790
+ 47.000 39.900
+ -6700761.190 3 -5221369.327 3 23623012.801 23623010.077 23623011.396
+ 23.800 20.500
+ -22275264.233 7 -17357345.870 8 20479569.606 20479564.825 20479568.915
+ 47.400 48.900
+ -15170649.467 6 -11821284.041 5 21694662.453 21694661.618 21694661.965
+ 38.700 34.300
+ 06 1 1 5 3 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3373134.020 4 -2628414.225 3 23826778.577 23826777.421 23826777.665
+ 25.300 21.600
+ -10048331.003 6 -7829864.705 5 21831160.532 21831157.747 21831159.498
+ 39.500 35.700
+ -15221138.517 7 -11860625.096 7 20782770.935 20782767.589 20782769.828
+ 46.100 42.300
+ -20256572.578 7 -15784336.019 6 20817414.926 20817412.662 20817414.066
+ 46.700 40.300
+ -6585056.067 3 -5131209.508 3 23645029.614 23645027.629 23645028.887
+ 23.400 18.600
+ -22303132.575 7 -17379061.459 8 20474266.296 20474261.616 20474265.704
+ 47.500 48.900
+ -15077231.754 6 -11748491.021 5 21712439.732 21712438.219 21712438.814
+ 38.400 34.000
+ 06 1 1 5 4 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3460971.891 4 -2696859.299 3 23810064.352 23810062.219 23810062.506
+ 25.300 18.600
+ -10113158.848 6 -7880379.893 5 21818824.020 21818821.325 21818823.126
+ 39.700 35.500
+ -15177666.036 7 -11826750.438 7 20791042.822 20791040.169 20791042.233
+ 46.100 42.100
+ -20209115.768 7 -15747356.692 6 20826445.709 20826443.356 20826444.798
+ 46.700 40.000
+ -6469234.282 4 -5040958.858 3 23667070.370 23667068.047 23667069.470
+ 24.600 20.500
+ -22330629.770 7 -17400487.847 8 20469033.494 20469029.132 20469032.952
+ 47.400 49.000
+ -14983430.841 6 -11675399.417 5 21730290.965 21730288.045 21730289.301
+ 38.400 34.600
+ 06 1 1 5 4 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3548610.973 4 -2765149.426 3 23793385.776 23793384.887 23793385.283
+ 25.300 21.100
+ -10177729.663 6 -7930694.800 5 21806536.646 21806533.938 21806535.747
+ 39.800 35.700
+ -15133786.719 7 -11792558.768 7 20799393.564 20799390.053 20799392.382
+ 46.200 42.000
+ -20161048.322 7 -15709901.535 6 20835592.453 20835590.234 20835591.644
+ 46.700 39.800
+ -6353298.588 4 -4950619.422 2 23689132.332 23689129.833 23689131.518
+ 25.600 16.100
+ -22357754.202 7 -17421623.765 8 20463872.137 20463867.505 20463871.435
+ 47.300 49.100
+ -14889249.691 6 -11602011.545 5 21748211.447 21748210.444 21748210.808
+ 38.900 35.200
+ 06 1 1 5 5 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3636047.956 3 -2833282.057 3 23776747.765 23776746.241 23776746.207
+ 22.600 19.300
+ -10242043.014 6 -7980809.085 5 21794298.718 21794295.631 21794297.632
+ 40.500 35.700
+ -15089500.991 7 -11758050.412 6 20807820.591 20807817.364 20807819.691
+ 46.200 41.900
+ -20112372.684 7 -15671972.465 6 20844855.134 20844853.028 20844854.361
+ 46.600 39.800
+ -6237251.776 3 -4860193.410 3 23711214.209 23711213.099 23711213.792
+ 23.800 18.600
+ -22384504.871 7 -17442468.446 8 20458781.559 20458777.003 20458780.949
+ 47.400 49.100
+ -14794691.383 6 -11528329.761 5 21766204.713 21766204.212 21766204.397
+ 38.400 34.500
+ 06 1 1 5 5 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3723279.560 4 -2901254.703 3 23760148.990 23760146.069 23760147.801
+ 29.000 21.100
+ -10306098.599 6 -8030722.521 5 21782108.892 21782105.962 21782107.943
+ 40.300 35.500
+ -15044809.092 7 -11723225.558 6 20816324.975 20816321.860 20816324.097
+ 46.100 41.700
+ -20063091.497 7 -15633571.541 6 20854233.255 20854230.809 20854232.311
+ 46.700 39.700
+ -6121097.101 4 -4769683.331 2 23733319.132 23733316.206 23733317.860
+ 24.600 16.100
+ -22410880.582 7 -17463020.947 8 20453762.431 20453757.954 20453761.854
+ 47.300 49.200
+ -14699758.608 6 -11454356.182 5 21784271.305 21784269.270 21784269.793
+ 37.400 34.100
+ 06 1 1 5 6 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3810302.639 4 -2969064.836 3 23743588.031 23743586.532 23743586.737
+ 26.800 19.900
+ -10369896.141 6 -8080434.888 5 21769968.914 21769965.715 21769967.895
+ 40.300 35.700
+ -14999710.805 7 -11688084.046 6 20824906.709 20824903.799 20824905.882
+ 46.100 41.600
+ -20013206.783 7 -15594700.331 6 20863725.873 20863723.639 20863725.025
+ 46.800 40.000
+ -6004837.163 4 -4679091.193 2 23755442.106 23755439.866 23755441.288
+ 24.200 13.900
+ -22436879.976 7 -17483280.215 8 20448814.961 20448810.415 20448814.305
+ 47.500 49.300
+ -14604454.373 6 -11380093.164 5 21802406.667 21802405.164 21802405.469
+ 37.400 34.500
+ 06 1 1 5 6 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3897114.104 3 -3036710.086 3 23727067.307 23727066.456 23727066.565
+ 23.800 19.300
+ -10433435.148 6 -8129945.790 6 21757877.768 21757874.766 21757876.827
+ 40.800 36.100
+ -14954206.303 7 -11652625.996 6 20833565.991 20833563.063 20833565.141
+ 45.800 41.600
+ -19962720.662 7 -15555360.497 6 20873332.993 20873330.778 20873332.159
+ 46.600 39.500
+ -5888474.992 4 -4588419.383 2 23777585.202 23777583.059 23777584.488
+ 26.200 17.000
+ -22462501.722 7 -17503245.211 8 20443939.409 20443934.708 20443938.732
+ 47.400 49.200
+ -14508781.723 6 -11305543.038 5 21820611.836 21820611.146 21820611.199
+ 37.900 33.600
+ 06 1 1 5 7 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3983710.744 4 -3104187.912 4 23710589.186 23710588.674 23710588.333
+ 26.200 24.600
+ -10496715.216 6 -8179254.911 6 21745835.930 21745832.945 21745834.998
+ 41.000 36.000
+ -14908296.081 7 -11616851.803 6 20842302.752 20842299.478 20842301.713
+ 46.000 41.700
+ -19911635.004 7 -15515553.488 6 20883054.342 20883052.087 20883053.545
+ 46.600 39.700
+ -5772013.117 3 -4497669.921 2 23799745.862 23799744.942 23799745.466
+ 22.100 12.600
+ -22487744.462 7 -17522914.880 8 20439135.825 20439131.185 20439135.181
+ 47.500 49.400
+ -14412743.580 6 -11230708.132 5 21838888.097 21838886.585 21838886.915
+ 38.300 33.900
+ 06 1 1 5 7 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4070089.243 4 -3171495.800 3 23694153.109 23694150.303 23694151.609
+ 28.600 19.300
+ -10559736.173 6 -8228362.124 5 21733843.630 21733840.345 21733842.517
+ 40.900 35.800
+ -14861980.412 7 -11580761.680 6 20851116.114 20851113.077 20851115.330
+ 46.200 41.400
+ -19859952.286 7 -15475281.240 6 20892889.095 20892887.038 20892888.286
+ 46.200 39.700
+ -5655454.650 3 -4406845.139 2 23821928.520 23821925.074 23821926.807
+ 23.800 12.600
+ -22512607.184 7 -17542288.431 8 20434404.614 20434400.073 20434403.961
+ 47.600 49.500
+ -14316342.768 6 -11155590.635 5 21857233.051 21857230.885 21857231.596
+ 37.200 33.400
+ 06 1 1 5 8 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4156246.487 4 -3238631.267 3 23677755.468 23677755.783 23677755.727
+ 25.600 23.800
+ -10622497.491 6 -8277267.027 6 21721900.622 21721897.217 21721899.551
+ 41.200 36.200
+ -14815259.125 7 -11544355.483 6 20860007.221 20860003.814 20860006.154
+ 46.300 41.200
+ -19807674.874 7 -15434545.593 6 20902837.191 20902834.992 20902836.309
+ 46.100 39.700
+ -5538802.483 3 -4315947.408 3 23844125.223 23844124.330 23844124.604
+ 23.800 18.600
+ -22537088.099 7 -17561364.466 8 20429746.073 20429741.457 20429745.456
+ 47.700 49.500
+ -14219582.429 6 -11080192.984 5 21875644.368 21875643.717 21875643.836
+ 37.500 33.000
+ 06 1 1 5 8 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4242179.292 4 -3305591.830 3 23661405.252 23661402.780 23661403.252
+ 26.200 22.100
+ -10684998.756 6 -8325969.292 6 21710006.767 21710003.759 21710006.007
+ 41.500 36.100
+ -14768132.697 7 -11507633.596 6 20868974.883 20868971.750 20868974.012
+ 46.500 41.300
+ -19754804.618 7 -15393347.993 6 20912898.113 20912895.964 20912897.302
+ 46.000 39.700
+ -5422059.147 3 -4224978.632 2 23866340.769 23866338.865 23866339.959
+ 21.100 15.100
+ -22561186.589 7 -17580142.511 8 20425160.300 20425155.565 20425159.623
+ 47.400 49.400
+ -14122465.754 6 -11004517.648 5 21894126.423 21894124.692 21894125.132
+ 36.900 34.000
+ 06 1 1 5 9 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4327884.472 4 -3372375.054 4 23645094.453 23645094.335 23645094.116
+ 26.800 24.600
+ -10747239.530 6 -8374468.588 6 21698162.924 21698159.710 21698161.868
+ 41.300 36.800
+ -14720601.731 7 -11470596.484 6 20878019.799 20878016.660 20878018.929
+ 46.600 41.200
+ -19701343.746 7 -15351690.175 6 20923071.410 20923069.145 20923070.489
+ 46.000 39.700
+ -5305227.642 3 -4133941.138 3 23888574.351 23888571.947 23888572.984
+ 22.600 19.300
+ -22584901.221 7 -17598621.442 8 20420647.369 20420642.828 20420646.794
+ 47.500 49.400
+ -14024995.689 6 -10928566.985 5 21912674.727 21912672.676 21912673.247
+ 36.800 34.400
+ 06 1 1 5 9 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4413358.730 4 -3438978.311 3 23628830.657 23628828.483 23628828.892
+ 25.900 20.500
+ -10809219.637 6 -8422764.765 6 21686368.001 21686365.133 21686367.114
+ 40.900 36.100
+ -14672665.972 7 -11433243.950 6 20887142.001 20887138.428 20887140.887
+ 46.600 41.100
+ -19647295.043 7 -15309574.306 6 20933356.526 20933354.213 20933355.587
+ 45.900 39.200
+ -5188310.757 3 -4042837.167 2 23910822.108 23910820.366 23910821.296
+ 23.800 13.900
+ -22608230.709 7 -17616800.263 8 20416207.991 20416203.382 20416207.306
+ 47.400 49.400
+ -13927175.323 6 -10852343.336 5 21931287.327 21931287.278 21931287.196
+ 37.100 34.000
+ 06 1 1 5 10 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4498598.974 4 -3505399.229 3 23612608.982 23612608.022 23612608.105
+ 25.900 23.000
+ -10870938.964 6 -8470857.736 6 21674623.352 21674620.463 21674622.419
+ 40.900 36.500
+ -14624325.658 7 -11395576.178 6 20896340.409 20896337.303 20896339.728
+ 46.600 41.000
+ -19592660.726 7 -15267002.111 6 20943753.269 20943750.803 20943752.293
+ 46.000 39.100
+ -5071311.355 3 -3951668.823 1 23933086.104 23933084.358 23933085.122
+ 18.600 6.500
+ -22631173.768 7 -17634677.973 8 20411842.006 20411837.423 20411841.405
+ 47.400 49.400
+ -13829007.429 6 -10775848.893 5 21949970.220 21949967.640 21949968.501
+ 37.100 33.400
+ 06 1 1 5 10 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4583601.971 4 -3571635.298 3 23596433.701 23596432.080 23596432.601
+ 26.500 21.100
+ -10932396.788 6 -8518746.936 6 21662928.252 21662925.485 21662927.343
+ 41.200 37.100
+ -14575581.298 7 -11357593.566 6 20905616.440 20905613.072 20905615.482
+ 46.800 41.000
+ -19537443.099 7 -15223975.388 6 20954260.568 20954258.253 20954259.700
+ 45.700 39.100
+ -4954232.385 4 -3860438.503 2 23955366.573 23955364.174 23955365.305
+ 24.900 17.000
+ -22653728.940 7 -17652253.435 8 20407549.914 20407545.338 20407549.268
+ 47.300 49.600
+ -13730494.954 6 -10699085.929 5 21968714.811 21968713.904 21968714.398
+ 37.300 32.100
+ 06 1 1 5 11 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4668364.576 4 -3637684.070 4 23580304.595 23580302.339 23580303.044
+ 28.600 24.200
+ -10993592.829 6 -8566432.147 6 21651283.202 21651280.192 21651282.260
+ 41.300 36.700
+ -14526433.307 7 -11319296.441 6 20914968.751 20914965.599 20914967.945
+ 46.700 40.700
+ -19481644.067 7 -15180495.623 6 20964878.741 20964876.603 20964877.893
+ 45.700 39.100
+ -4837076.750 3 -3769148.492 2 23977660.545 23977658.623 23977659.157
+ 22.100 16.100
+ -22675895.375 7 -17669525.982 8 20403331.722 20403327.235 20403331.076
+ 47.300 49.600
+ -13631641.055 6 -10622056.913 5 21987527.203 21987525.434 21987525.930
+ 36.600 32.800
+ 06 1 1 5 11 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4752883.545 4 -3703542.976 4 23564220.780 23564219.006 23564219.746
+ 29.500 24.200
+ -11054526.540 6 -8613912.953 6 21639688.174 21639684.724 21639687.034
+ 41.200 36.700
+ -14476881.696 7 -11280684.801 6 20924398.108 20924394.893 20924397.271
+ 46.400 40.600
+ -19425266.636 7 -15136565.154 6 20975607.104 20975604.863 20975606.306
+ 45.900 39.200
+ -4719846.690 3 -3677800.428 1 23999968.290 23999965.911 23999967.014
+ 23.000 6.500
+ -22697671.689 7 -17686494.538 8 20399188.040 20399183.271 20399187.374
+ 47.400 49.500
+ -13532448.747 6 -10544764.244 5 22006403.587 22006401.611 22006401.986
+ 36.500 33.900
+ 06 1 1 5 12 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4837155.776 4 -3769209.600 4 23548184.773 23548182.837 23548183.512
+ 28.400 24.200
+ -11115197.946 6 -8661189.360 6 21628142.168 21628139.482 21628141.256
+ 41.300 36.600
+ -14426927.062 7 -11241759.122 6 20933904.575 20933900.921 20933903.392
+ 46.500 40.500
+ -19368312.585 7 -15092185.373 6 20986444.949 20986443.002 20986444.223
+ 46.000 39.300
+ -4602545.459 3 -3586396.915 1 24022289.769 24022288.017 24022289.296
+ 18.600 9.000
+ -22719056.553 7 -17703158.069 8 20395118.423 20395113.889 20395117.866
+ 47.600 49.600
+ -13432920.883 6 -10467210.092 5 22025340.980 22025340.855 22025340.848
+ 36.500 33.000
+ 06 1 1 5 12 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4921178.047 4 -3834681.458 3 23532194.662 23532193.084 23532193.898
+ 27.900 22.600
+ -11175606.598 6 -8708261.024 6 21616647.247 21616644.278 21616646.261
+ 41.500 37.200
+ -14376569.419 7 -11202519.406 6 20943486.790 20943483.786 20943486.095
+ 46.400 40.700
+ -19310784.746 7 -15047358.492 6 20997392.409 20997389.988 20997391.542
+ 45.800 38.800
+ -4485175.918 3 -3494940.186 2 24044624.325 24044623.180 24044623.487
+ 19.900 12.600
+ -22740048.726 7 -17719515.607 8 20391123.926 20391119.267 20391123.217
+ 47.700 49.600
+ -13333060.499 5 -10389396.830 5 22044345.783 22044343.685 22044344.230
+ 35.200 32.800
+ 06 1 1 5 13 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5004947.158 4 -3899956.032 3 23516254.791 23516252.103 23516253.319
+ 26.500 22.100
+ -11235752.218 6 -8755127.728 6 21605201.922 21605198.797 21605200.738
+ 41.400 37.200
+ -14325809.181 7 -11162965.980 6 20953146.333 20953143.031 20953145.371
+ 46.400 40.300
+ -19252685.483 7 -15002086.334 6 21008448.279 21008445.837 21008447.389
+ 45.900 38.900
+ -4367740.801 2 -3403432.314 2 24066971.086 24066969.913 24066970.173
+ 17.000 13.900
+ -22760647.289 7 -17735566.434 8 20387204.222 20387199.461 20387203.535
+ 47.800 49.600
+ -13232870.537 5 -10311326.767 5 22063409.727 22063409.061 22063409.317
+ 35.900 32.800
+ 06 1 1 5 13 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5088459.958 4 -3965030.915 3 23500361.983 23500360.899 23500360.631
+ 27.100 22.100
+ -11295634.248 6 -8801789.037 6 21593806.698 21593803.578 21593805.520
+ 41.100 37.400
+ -14274646.597 7 -11123099.047 6 20962882.390 20962878.967 20962881.360
+ 46.300 40.000
+ -19194017.091 7 -14956370.704 6 21019612.378 21019610.256 21019611.576
+ 45.900 38.800
+ -4250242.828 3 -3311875.513 3 24089330.199 24089329.242 24089329.764
+ 21.100 18.600
+ -22780850.897 7 -17751309.506 8 20383359.380 20383354.857 20383358.795
+ 47.700 49.600
+ -13132354.261 5 -10233002.422 5 22082539.196 22082536.734 22082537.564
+ 35.600 32.600
+ 06 1 1 5 14 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5171713.276 4 -4029903.544 3 23484519.151 23484518.374 23484518.497
+ 27.600 23.000
+ -11355252.409 6 -8848244.735 6 21582461.431 21582458.662 21582460.470
+ 41.500 37.700
+ -14223082.089 7 -11082918.918 6 20972694.204 20972691.335 20972693.653
+ 46.300 40.200
+ -19134782.268 7 -14910213.701 6 21030884.609 21030882.222 21030883.709
+ 46.100 38.600
+ -4132684.820 3 -3220271.932 2 24111701.757 24111699.415 24111700.617
+ 22.100 17.800
+ -22800658.246 7 -17766743.801 8 20379590.023 20379585.606 20379589.383
+ 47.500 49.700
+ -13031514.713 6 -10154426.215 5 22101726.925 22101726.026 22101726.309
+ 36.400 32.600
+ 06 1 1 5 14 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5254703.888 4 -4094571.532 3 23468727.204 23468725.417 23468725.727
+ 27.400 22.600
+ -11414606.422 7 -8894494.605 6 21571167.060 21571163.789 21571166.113
+ 42.000 37.200
+ -14171115.975 7 -11042425.853 6 20982583.869 20982580.138 20982582.664
+ 46.400 40.000
+ -19074983.110 7 -14863616.954 6 21042263.794 21042261.561 21042262.982
+ 45.800 38.900
+ -4015069.741 3 -3128623.865 2 24134083.530 24134081.517 24134081.672
+ 22.600 16.100
+ -22820068.421 7 -17781868.615 8 20375896.360 20375891.975 20375895.790
+ 47.500 49.700
+ -12930354.872 6 -10075600.390 5 22120977.692 22120976.338 22120976.368
+ 36.000 33.100
+ 06 1 1 5 15 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5337428.622 4 -4159032.326 3 23452983.829 23452983.025 23452983.204
+ 27.100 22.100
+ -11473695.952 7 -8940538.390 6 21559922.488 21559919.464 21559921.496
+ 42.100 37.200
+ -14118748.606 7 -11001620.118 6 20992548.526 20992545.347 20992547.761
+ 46.500 39.700
+ -19014622.504 7 -14816582.711 6 21053750.021 21053747.679 21053749.290
+ 45.800 38.500
+ -3897399.961 3 -3036933.214 1 24156475.502 24156473.357 24156474.037
+ 21.600 9.000
+ -22839079.941 7 -17796682.788 8 20372278.730 20372274.223 20372278.155
+ 47.800 49.700
+ -12828877.878 5 -9996527.451 5 22140287.563 22140286.527 22140286.895
+ 35.900 31.800
+ 06 1 1 5 15 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5419884.414 4 -4223283.537 4 23437295.270 23437292.760 23437293.576
+ 29.200 25.600
+ -11532520.671 6 -8986375.825 6 21548728.480 21548725.539 21548727.467
+ 41.800 37.700
+ -14065980.880 7 -10960502.411 6 21002590.084 21002586.822 21002589.274
+ 46.600 40.000
+ -18953702.621 7 -14769112.672 6 21065342.626 21065340.472 21065341.795
+ 45.300 38.400
+ -3779678.774 3 -2945202.430 1 24178875.931 24178874.614 24178875.518
+ 23.000 11.000
+ -22857691.669 7 -17811185.435 8 20368737.079 20368732.564 20368736.454
+ 47.900 49.800
+ -12727086.689 5 -9917209.629 5 22159658.875 22159656.484 22159657.315
+ 34.900 31.000
+ 06 1 1 5 16 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5502068.019 4 -4287322.679 3 23421654.842 23421653.276 23421654.056
+ 29.000 23.000
+ -11591080.341 6 -9032006.726 6 21537585.004 21537582.081 21537583.868
+ 41.800 38.100
+ -14012812.762 7 -10919072.725 6 21012707.911 21012704.432 21012706.831
+ 46.600 39.700
+ -18892226.157 7 -14721208.935 6 21077041.257 21077039.140 21077040.403
+ 45.300 38.500
+ -3661908.834 3 -2853433.727 2 24201286.750 24201285.389 24201285.960
+ 19.300 12.600
+ -22875902.605 8 -17825375.775 8 20365271.695 20365267.082 20365271.091
+ 48.000 49.800
+ -12624984.333 5 -9837649.385 5 22179087.611 22179086.203 22179086.733
+ 35.900 32.600
+ 06 1 1 5 16 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5583976.345 4 -4351147.300 4 23406068.571 23406067.086 23406067.419
+ 28.100 24.900
+ -11649374.443 7 -9077430.694 6 21526491.773 21526489.060 21526490.797
+ 42.000 38.000
+ -13959244.629 7 -10877331.337 6 21022900.914 21022898.093 21022900.342
+ 46.700 39.700
+ -18830195.689 7 -14672873.506 6 21088845.091 21088843.095 21088844.249
+ 45.200 38.600
+ -3544092.908 3 -2761629.196 24223706.830 24223705.154 24223705.674
+ 19.300 3.000
+ -22893711.104 8 -17839252.534 8 20361883.079 20361878.261 20361882.399
+ 48.200 49.900
+ -12522573.856 5 -9757849.020 5 22198575.461 22198574.411 22198574.449
+ 35.100 32.000
+ 06 1 1 5 17 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5665606.161 4 -4414754.930 3 23390534.852 23390533.050 23390533.598
+ 27.400 23.800
+ -11707402.444 7 -9122647.306 6 21515449.674 21515446.327 21515448.627
+ 42.100 37.300
+ -13905276.721 7 -10835278.421 6 21033171.148 21033167.842 21033170.159
+ 46.300 39.800
+ -18767613.367 7 -14624108.069 6 21100754.220 21100752.260 21100753.458
+ 45.400 38.600
+ -3426234.005 3 -2669791.202 2 24246135.530 24246133.024 24246134.098
+ 19.900 13.900
+ -22911116.395 8 -17852815.098 8 20358570.841 20358566.171 20358570.199
+ 48.000 49.900
+ -12419858.556 5 -9677811.165 5 22218121.449 22218120.402 22218120.587
+ 35.300 32.300
+ 06 1 1 5 17 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5746954.320 4 -4478143.047 3 23375055.000 23375052.805 23375053.710
+ 28.800 23.000
+ -11765164.620 6 -9167656.797 6 21504457.578 21504454.618 21504456.678
+ 41.900 37.700
+ -13850910.083 7 -10792914.822 6 21043516.724 21043513.508 21043515.673
+ 46.200 39.700
+ -18704481.965 7 -14574914.765 6 21112767.874 21112765.544 21112767.079
+ 45.600 38.300
+ -3308334.455 3 -2577921.492 2 24268569.804 24268568.368 24268569.429
+ 22.100 12.600
+ -22928117.386 7 -17866062.623 8 20355335.502 20355330.903 20355334.883
+ 47.900 49.900
+ -12316841.323 5 -9597538.017 5 22237725.636 22237724.000 22237724.298
+ 34.800 31.800
+ 06 1 1 5 18 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5828017.697 4 -4541309.284 3 23359628.552 23359627.481 23359627.500
+ 29.500 23.400
+ -11822660.592 7 -9212458.851 6 21493516.751 21493513.810 21493515.781
+ 42.400 38.300
+ -13796144.617 7 -10750240.446 6 21053937.587 21053935.124 21053936.986
+ 46.200 39.900
+ -18640804.009 7 -14525295.581 6 21124885.570 21124883.206 21124884.646
+ 45.600 38.600
+ -3190397.221 3 -2486022.422 24291013.275 24291011.375 24291012.840
+ 21.600 3.000
+ -22944712.710 7 -17878994.045 8 20352177.451 20352172.954 20352176.839
+ 47.800 50.000
+ -12213525.135 5 -9517031.933 5 22257385.067 22257384.277 22257384.465
+ 34.500 30.600
+ 06 1 1 5 18 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5908793.150 4 -4604251.175 3 23344256.946 23344255.989 23344256.470
+ 28.800 23.400
+ -11879889.784 7 -9257053.021 6 21482626.304 21482623.394 21482625.283
+ 42.300 38.400
+ -13740980.789 7 -10707255.650 6 21064435.485 21064432.440 21064434.578
+ 46.200 39.500
+ -18576581.868 7 -14475252.354 6 21137106.543 21137104.229 21137105.671
+ 45.600 38.400
+ -3072424.968 3 -2394096.014 1 24313462.635 24313461.061 24313462.142
+ 19.900 11.000
+ -22960901.403 7 -17891608.611 8 20349097.008 20349092.370 20349096.315
+ 47.900 50.000
+ -12109913.130 5 -9436295.308 5 22277102.769 22277101.090 22277101.563
+ 34.400 30.400
+ 06 1 1 5 19 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5989277.509 4 -4666966.221 3 23328941.288 23328940.227 23328940.101
+ 27.100 22.100
+ -11936851.910 7 -9301439.082 6 21471786.820 21471783.708 21471785.823
+ 42.400 38.100
+ -13685419.129 7 -10663960.860 6 21075009.070 21075005.462 21075007.800
+ 46.100 39.400
+ -18511818.683 7 -14424787.527 6 21149430.545 21149428.181 21149429.674
+ 45.400 38.200
+ -2954420.629 2 -2302144.724 2 24335917.694 24335916.486 24335916.937
+ 15.100 13.900
+ -22976682.199 7 -17903905.338 8 20346093.899 20346089.365 20346093.228
+ 47.800 49.900
+ -12006008.514 5 -9355330.685 5 22296874.791 22296873.540 22296873.945
+ 34.700 31.100
+ 06 1 1 5 19 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -6069467.603 4 -4729451.971 4 23313681.631 23313680.574 23313681.150
+ 29.900 24.200
+ -11993546.568 7 -9345616.732 6 21460998.270 21460995.171 21460997.264
+ 42.700 38.300
+ -13629460.204 7 -10620356.511 6 21085656.796 21085654.184 21085656.205
+ 46.100 39.400
+ -18446516.617 7 -14373902.803 6 21161857.046 21161854.831 21161856.280
+ 45.300 38.100
+ -2836386.940 3 -2210170.497 1 24358379.640 24358378.164 24358378.809
+ 23.000 9.000
+ -22992053.964 7 -17915883.334 8 20343168.774 20343164.226 20343168.114
+ 47.900 49.900
+ -11901814.567 5 -9274140.641 5 22316703.014 22316701.120 22316701.633
+ 34.100 31.100
+ 06 1 1 5 20 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -6149360.326 5 -4791706.009 4 23298479.989 23298477.500 23298478.551
+ 30.800 24.600
+ -12049973.626 7 -9389585.860 6 21450260.577 21450257.443 21450259.617
+ 42.700 38.700
+ -13573104.533 7 -10576443.013 6 21096381.266 21096378.429 21096380.370
+ 46.000 39.400
+ -18380678.264 7 -14322600.188 6 21174385.752 21174383.462 21174384.813
+ 45.000 38.200
+ -2718326.599 3 -2118175.477 1 24380846.686 24380844.698 24380845.315
+ 23.000 9.000
+ -23007015.561 7 -17927541.721 8 20340321.713 20340317.105 20340321.084
+ 47.800 50.000
+ -11797334.196 5 -9192727.389 5 22336584.112 22336583.142 22336583.384
+ 34.700 30.600
+ 06 1 1 5 20 30.0000000 0 6G 5G14G18G 9G22G15
+ -6228952.648 4 -4853725.969 4 23283333.131 23283331.835 23283332.175
+ 29.500 25.600
+ -12106132.800 7 -9433346.252 6 21439573.657 21439570.797 21439572.669
+ 42.400 39.000
+ -13516352.611 7 -10532220.754 6 21107181.199 21107177.819 21107179.986
+ 46.200 39.200
+ -18314306.671 7 -14270882.069 6 21187015.585 21187013.649 21187014.829
+ 44.800 38.200
+ -23021566.134 8 -17938879.829 8 20337552.997 20337548.235 20337552.306
+ 48.100 50.000
+ -11692570.382 5 -9111093.272 5 22356520.594 22356519.024 22356519.406
+ 34.100 31.600
+ 06 1 1 5 21 0.0000000 0 6G 5G14G18G 9G22G15
+ -6308241.336 4 -4915509.333 4 23268245.428 23268243.551 23268243.950
+ 29.000 25.300
+ -12162023.615 7 -9476897.531 6 21428937.887 21428935.007 21428936.941
+ 42.600 38.700
+ -13459204.780 7 -10487689.982 6 21118055.827 21118052.618 21118054.907
+ 46.100 39.100
+ -18247404.242 7 -14218750.304 6 21199746.634 21199744.712 21199745.930
+ 44.700 37.700
+ -23035704.348 8 -17949896.623 8 20334862.456 20334857.795 20334861.874
+ 48.300 49.900
+ -11587526.434 5 -9029240.866 5 22376509.440 22376508.332 22376508.445
+ 34.000 30.800
+ 06 1 1 5 21 30.0000000 0 6G 5G14G18G 9G22G15
+ -6387223.330 4 -4977053.697 4 23253215.373 23253213.716 23253214.121
+ 28.400 25.300
+ -12217645.811 7 -9520239.490 6 21418353.337 21418350.550 21418352.321
+ 42.400 39.100
+ -13401661.816 7 -10442851.320 6 21129005.783 21129002.647 21129004.989
+ 46.200 39.000
+ -18179973.460 7 -14166206.840 6 21212578.709 21212576.356 21212577.851
+ 45.100 37.800
+ -23049429.002 8 -17960591.160 8 20332250.748 20332245.980 20332250.106
+ 48.100 49.900
+ -11482205.331 5 -8947172.500 5 22396551.311 22396550.403 22396550.475
+ 34.500 31.300
+ 06 1 1 5 22 0.0000000 0 6G 5G14G18G 9G22G15
+ -6465895.500 5 -5038356.645 4 23238244.410 23238242.787 23238243.453
+ 30.200 24.600
+ -12272999.013 7 -9563371.847 6 21407820.120 21407817.123 21407819.116
+ 42.800 39.000
+ -13343723.744 7 -10397704.785 6 21140031.266 21140027.950 21140030.292
+ 46.100 39.000
+ -18112017.529 7 -14113254.166 6 21225509.873 21225508.081 21225509.082
+ 44.400 38.000
+ -23062739.288 8 -17970962.814 8 20329717.998 20329713.130 20329717.324
+ 48.200 49.900
+ -11376610.318 5 -8864890.717 5 22416645.839 22416644.468 22416644.575
+ 33.600 31.000
+ 06 1 1 5 22 30.0000000 0 6G 5G14G18G 9G22G15
+ -6544254.665 5 -5099415.735 3 23223333.192 23223331.458 23223332.134
+ 30.400 23.000
+ -12328083.237 7 -9606294.607 6 21397337.874 21397334.930 21397336.879
+ 42.500 38.800
+ -13285391.427 7 -10352251.040 6 21151131.429 21151128.160 21151130.527
+ 46.000 38.700
+ -18043538.489 7 -14059893.878 6 21238541.306 21238539.096 21238540.467
+ 44.700 37.700
+ -23075633.986 8 -17981010.635 8 20327264.144 20327259.517 20327263.469
+ 48.100 50.100
+ -11270744.394 5 -8782397.821 5 22436791.359 22436790.103 22436790.228
+ 33.800 30.200
+ 06 1 1 5 23 0.0000000 0 6G 5G14G18G 9G22G15
+ -6622297.783 4 -5160228.518 4 23208481.868 23208480.760 23208480.600
+ 28.600 25.300
+ -12382898.141 7 -9649007.517 6 21386907.180 21386903.912 21386906.049
+ 42.800 38.900
+ -13226665.354 7 -10306490.474 6 21162306.635 21162303.448 21162305.615
+ 45.700 38.800
+ -17974538.944 7 -14006128.002 6 21251671.421 21251669.336 21251670.567
+ 44.800 37.800
+ -23088111.896 8 -17990733.681 8 20324889.716 20324885.037 20324889.021
+ 48.100 50.000
+ -11164610.677 5 -8699696.242 5 22456987.874 22456986.554 22456986.940
+ 33.600 30.200
+ 06 1 1 5 23 30.0000000 0 7G 5G14G18G30G 9G22G15
+ -6700021.784 4 -5220792.630 4 23193691.869 23193690.092 23193690.472
+ 29.000 25.600
+ -12437442.785 7 -9691509.829 6 21376527.494 21376524.422 21376526.535
+ 43.100 39.000
+ -13167546.247 7 -10260423.653 6 21173556.943 21173553.407 21173555.707
+ 45.800 38.400
+ -136212.935 3 -106139.890 24641583.364 24641582.460 24641582.550
+ 21.600 3.000
+ -17905022.513 7 -13951959.347 6 21264900.121 21264897.806 21264899.315
+ 44.800 37.400
+ -23100172.178 8 -18000131.303 8 20322594.571 20322589.964 20322593.950
+ 48.300 50.000
+ -11058212.314 5 -8616788.461 4 22477235.256 22477233.459 22477233.851
+ 31.100 28.800
+ 06 1 1 5 24 0.0000000 0 7G 5G14G18G30G 9G22G15
+ -6777423.504 4 -5281105.613 4 23178962.646 23178960.813 23178961.479
+ 29.700 25.900
+ -12491717.750 7 -9733802.003 6 21366199.518 21366196.207 21366198.397
+ 43.200 39.000
+ -13108034.672 7 -10214051.013 6 21184880.906 21184878.072 21184880.297
+ 45.800 38.400
+ -238353.552 3 -185730.043 1 24622147.739 24622146.769 24622146.144
+ 23.800 9.000
+ -17834991.264 7 -13897389.545 6 21278226.244 21278224.173 21278225.578
+ 45.000 37.300
+ -23111813.244 8 -18009202.264 8 20320379.417 20320374.812 20320378.780
+ 48.300 50.100
+ -10951552.439 5 -8533676.891 4 22497531.897 22497530.263 22497530.760
+ 33.400 28.800
+ 06 1 1 5 24 30.0000000 0 7G 5G14G18G30G 9G22G15
+ -6854499.872 5 -5341165.091 4 23164295.711 23164293.393 23164294.380
+ 30.600 26.200
+ -12545722.323 7 -9775883.478 6 21355922.461 21355919.497 21355921.579
+ 43.100 38.900
+ -13048131.312 7 -10167373.080 6 21196280.445 21196277.288 21196279.619
+ 45.800 38.200
+ -340474.962 2 -265305.107 2 24602711.253 24602711.771 24602712.551
+ 17.800 16.100
+ -17764447.495 7 -13842420.370 6 21291650.759 21291648.201 21291649.916
+ 44.900 37.200
+ -23123034.634 8 -18017946.208 8 20318243.930 20318239.454 20318243.370
+ 48.400 50.100
+ -10844634.097 5 -8450363.907 4 22517877.009 22517875.868 22517876.358
+ 33.100 29.500
+ 06 1 1 5 25 0.0000000 0 7G 5G14G18G30G 9G22G15
+ -6931247.837 5 -5400968.678 4 23149690.904 23149688.461 23149689.868
+ 31.100 24.600
+ -12599456.130 7 -9817753.974 6 21345697.408 21345694.225 21345696.390
+ 43.400 39.000
+ -12987836.182 7 -10120389.880 6 21207754.696 21207750.956 21207753.503
+ 45.800 38.100
+ -442573.950 3 -344862.673 3 24583284.743 24583284.011 24583283.930
+ 20.500 21.600
+ -17693394.502 7 -13787054.400 6 21305171.478 21305169.050 21305170.644
+ 44.300 36.800
+ -23133835.098 8 -18026362.153 8 20316188.707 20316184.098 20316188.046
+ 48.100 50.100
+ -10737460.417 5 -8366851.988 5 22538272.054 22538270.894 22538270.918
+ 32.400 30.100
+ 06 1 1 5 25 30.0000000 0 7G 5G14G18G30G 9G22G15
+ -7007664.315 5 -5460513.968 4 23135148.780 23135147.522 23135148.045
+ 30.600 24.900
+ -12652919.197 7 -9859413.504 6 21335523.556 21335520.624 21335522.666
+ 43.200 39.100
+ -12927150.208 7 -10073102.124 6 21219302.620 21219299.286 21219301.475
+ 45.700 38.100
+ -544647.548 3 -424400.492 3 24563860.324 24563859.767 24563859.904
+ 21.600 21.600
+ -17621834.804 7 -13731293.595 6 21318788.703 21318786.634 21318787.964
+ 44.300 37.300
+ -23144213.499 8 -18034449.222 8 20314213.805 20314209.140 20314213.140
+ 48.400 50.000
+ -10630034.742 5 -8283143.700 5 22558714.036 22558713.443 22558713.210
+ 32.300 31.300
+ 06 1 1 5 26 0.0000000 0 7G 5G14G18G30G 9G22G15
+ -7083746.218 5 -5519798.546 4 23120671.201 23120669.618 23120670.050
+ 31.100 27.100
+ -12706111.101 7 -9900861.729 6 21325401.758 21325398.527 21325400.691
+ 43.200 39.300
+ -12866074.083 7 -10025510.344 6 21230924.626 21230921.845 21230923.945
+ 46.000 38.100
+ -646692.711 2 -503916.125 3 24544440.859 24544440.970 24544441.318
+ 17.000 21.100
+ -17549771.180 7 -13675140.131 6 21332502.077 21332499.814 21332501.203
+ 44.100 37.100
+ -23154168.895 8 -18042206.673 8 20312319.252 20312314.790 20312318.720
+ 48.300 50.100
+ -10522359.864 5 -8199241.241 4 22579204.128 22579202.866 22579203.118
+ 32.600 29.700
+ 06 1 1 5 26 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7159490.489 5 -5578820.028 4 23106256.956 23106255.388 23106256.217
+ 31.800 26.500
+ -12759031.310 7 -9942098.249 6 21315331.176 21315328.131 21315330.159
+ 43.200 39.600
+ -12804608.165 7 -9977614.842 6 21242621.515 21242618.461 21242620.540
+ 45.800 38.400
+ -183734.950 2 -143169.571 24223648.919 24223648.443 24223647.939
+ 16.100 3.000
+ -748706.584 3 -583407.354 2 24525028.419 24525028.683 24525028.460
+ 22.100 17.800
+ -17477206.788 7 -13618596.442 6 21346310.704 21346308.304 21346309.891
+ 44.100 37.200
+ -23163700.334 8 -18049633.764 8 20310505.510 20310500.999 20310504.897
+ 48.300 50.100
+ -10414438.926 5 -8115147.024 4 22599740.658 22599739.560 22599739.642
+ 31.800 29.500
+ 06 1 1 5 27 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7234894.085 5 -5637576.064 4 23091908.351 23091906.771 23091907.069
+ 30.100 25.300
+ -12811679.886 7 -9983123.107 6 21305312.644 21305309.447 21305311.669
+ 43.500 39.700
+ -12742753.383 7 -9929416.326 6 21254392.075 21254388.985 21254391.176
+ 45.900 37.700
+ -269686.880 2 -210145.035 9 24207294.024 24207292.677 24207292.855
+ 15.100 -3.000
+ -850685.851 3 -662871.676 2 24505623.925 24505622.318 24505622.566
+ 19.900 16.100
+ -17404144.596 7 -13561664.871 6 21360213.701 21360211.625 21360213.016
+ 43.800 36.700
+ -23172806.840 8 -18056729.745 8 20308772.830 20308768.017 20308772.172
+ 48.600 50.100
+ -10306275.128 5 -8030863.549 4 22620323.815 22620322.400 22620322.891
+ 32.700 29.500
+ 06 1 1 5 27 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7309953.950 5 -5696064.243 4 23077625.064 23077623.586 23077623.970
+ 31.600 25.900
+ -12864056.260 7 -10023935.863 6 21295345.715 21295342.470 21295344.645
+ 43.300 39.700
+ -12680510.478 7 -9880915.373 6 21266236.274 21266233.345 21266235.586
+ 45.900 37.500
+ -355527.520 2 -277033.808 1 24190958.437 24190957.355 24190956.731
+ 16.100 6.500
+ -952627.619 3 -742306.763 3 24486222.906 24486223.399 24486223.382
+ 18.600 20.500
+ -17330586.360 7 -13504346.759 6 21374211.259 21374209.218 21374210.473
+ 43.600 36.500
+ -23181487.260 8 -18063493.714 8 20307120.909 20307116.234 20307120.335
+ 48.600 50.000
+ -10197871.585 5 -7946393.262 4 22640952.650 22640950.900 22640951.503
+ 32.600 28.100
+ 06 1 1 5 28 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7384667.020 5 -5754282.192 4 23063408.473 23063405.790 23063406.897
+ 31.000 25.900
+ -12916160.216 7 -10064536.341 6 21285430.590 21285427.556 21285429.514
+ 43.200 39.800
+ -12617879.622 7 -9832112.120 6 21278154.916 21278151.575 21278153.985
+ 46.100 37.700
+ -441256.565 1 -343835.544 24174644.487 24174642.916 24174643.266
+ 11.000 3.000
+ -1054528.794 3 -821710.198 2 24466833.740 24466831.765 24466833.032
+ 18.600 17.000
+ -17256535.568 7 -13446644.845 6 21388302.669 21388300.760 21388301.942
+ 43.600 36.700
+ -23189740.537 8 -18069924.838 8 20305550.650 20305545.674 20305549.872
+ 48.500 50.100
+ -10089231.465 5 -7861738.644 4 22661625.586 22661624.542 22661624.721
+ 31.000 28.400
+ 06 1 1 5 28 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7459030.258 5 -5812227.542 4 23049256.175 23049255.244 23049255.384
+ 31.500 26.800
+ -12967991.607 7 -10104924.434 6 21275567.376 21275564.141 21275566.325
+ 43.200 39.700
+ -12554861.702 7 -9783007.267 6 21290146.985 21290143.543 21290145.876
+ 45.700 37.300
+ -526873.461 2 -410549.997 1 24158351.656 24158350.899 24158350.681
+ 16.100 6.500
+ -1156386.362 3 -901079.697 1 24447450.832 24447448.981 24447450.037
+ 23.000 11.000
+ -17181994.790 7 -13388561.120 6 21402487.627 21402485.227 21402486.696
+ 43.600 36.500
+ -23197565.683 8 -18076022.355 8 20304061.433 20304056.590 20304060.814
+ 48.800 50.000
+ -9980357.850 5 -7776902.113 4 22682343.880 22682342.767 22682342.893
+ 32.800 29.200
+ 06 1 1 5 29 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7533040.645 5 -5869897.946 4 23035173.089 23035171.562 23035171.704
+ 30.200 26.200
+ -13019550.193 7 -10145099.949 6 21265756.149 21265752.985 21265755.205
+ 43.400 40.000
+ -12491457.553 7 -9733601.451 6 21302211.865 21302208.900 21302211.199
+ 45.700 37.200
+ -612377.956 2 -477176.801 24142080.563 24142080.038 24142079.915
+ 15.100 3.000
+ -1258197.155 3 -980412.713 2 24428074.740 24428074.735 24428075.367
+ 23.000 12.600
+ -17106966.630 7 -13330097.618 6 21416764.974 21416762.616 21416764.116
+ 43.600 36.300
+ -23204961.850 8 -18081785.604 8 20302654.027 20302649.154 20302653.421
+ 48.800 49.900
+ -9871253.796 5 -7691886.003 4 22703105.743 22703104.306 22703104.870
+ 31.600 28.800
+ 06 1 1 5 29 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7606695.246 5 -5927291.114 4 23021157.643 23021155.251 23021156.542
+ 32.700 25.600
+ -13070835.612 7 -10185062.609 6 21255996.853 21255993.731 21255995.769
+ 43.300 40.200
+ -12427667.823 7 -9683895.178 6 21314350.982 21314347.660 21314350.056
+ 45.500 37.200
+ -697769.444 3 -543715.589 24125831.280 24125830.455 24125830.924
+ 19.300 3.000
+ -1359958.254 3 -1059707.086 1 24408710.839 24408710.272 24408710.147
+ 21.100 6.500
+ -17031454.668 7 -13271257.123 6 21431134.208 21431132.133 21431133.507
+ 43.600 36.600
+ -23211927.864 8 -18087213.668 8 20301328.399 20301323.549 20301327.732
+ 48.800 50.000
+ -9761922.535 5 -7606692.856 4 22723910.990 22723909.499 22723909.849
+ 32.400 27.900
+ 06 1 1 5 30 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7679990.999 5 -5984404.660 4 23007210.072 23007207.693 23007208.617
+ 31.800 25.900
+ -13121847.648 7 -10224812.250 6 21246289.574 21246286.501 21246288.526
+ 43.200 40.200
+ -12363493.290 7 -9633889.056 6 21326563.018 21326559.767 21326561.989
+ 45.100 37.200
+ -783047.571 3 -610166.058 9 24109603.264 24109602.407 24109602.197
+ 19.300 -3.000
+ -1461666.442 3 -1138960.167 9 24389358.012 24389356.290 24389356.751
+ 21.100 -3.000
+ -16955461.120 7 -13212041.377 6 21445595.513 21445593.207 21445594.581
+ 43.400 36.400
+ -23218462.958 8 -18092305.952 8 20300084.766 20300079.953 20300084.134
+ 48.700 50.000
+ -9652367.164 5 -7521325.047 4 22744758.644 22744757.178 22744757.611
+ 32.000 26.800
+ 06 1 1 5 30 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7752924.811 5 -6041236.174 4 22993330.772 22993329.150 22993329.405
+ 32.300 28.800
+ -13172585.948 7 -10264348.585 6 21236634.177 21236631.261 21236633.193
+ 43.200 40.300
+ -12298934.387 7 -9583583.433 6 21338848.150 21338844.888 21338847.143
+ 45.100 37.200
+ -868211.985 3 -676527.926 1 24093397.587 24093396.220 24093396.830
+ 19.900 9.000
+ -1563318.729 3 -1218169.727 1 24370012.115 24370011.623 24370012.958
+ 23.000 9.000
+ -16878988.556 7 -13152452.365 6 21460147.620 21460145.420 21460146.845
+ 43.300 36.400
+ -23224566.125 8 -18097061.666 8 20298923.307 20298918.539 20298922.711
+ 48.700 49.900
+ -9542590.724 4 -7435785.003 4 22765648.135 22765646.758 22765647.273
+ 29.500 25.900
+ 06 1 1 5 31 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7825493.821 5 -6097783.430 4 22979520.903 22979519.427 22979519.956
+ 32.400 27.100
+ -13223050.271 7 -10303671.433 6 21227031.386 21227028.440 21227030.327
+ 43.400 40.700
+ -12233992.015 7 -9532979.005 6 21351206.162 21351203.028 21351205.300
+ 44.900 37.100
+ -953262.214 3 -742800.792 1 24077212.802 24077211.377 24077211.804
+ 21.100 11.000
+ -1664911.843 3 -1297333.214 2 24350680.345 24350679.448 24350680.314
+ 23.000 15.100
+ -16802040.135 7 -13092492.560 6 21474790.530 21474788.111 21474789.690
+ 43.000 36.000
+ -23230236.565 8 -18101480.191 8 20297844.354 20297839.510 20297843.737
+ 48.700 50.000
+ -9432596.425 5 -7350075.172 4 22786579.471 22786578.398 22786578.109
+ 30.400 27.900
+ 06 1 1 5 31 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7897694.975 5 -6154044.050 4 22965782.509 22965779.884 22965780.877
+ 33.100 27.900
+ -13273240.365 7 -10342780.587 6 21217480.608 21217477.487 21217479.495
+ 43.300 40.600
+ -12168666.569 7 -9482076.071 6 21363637.335 21363634.257 21363636.346
+ 44.800 37.000
+ -1038197.847 3 -808984.363 2 24061049.856 24061048.618 24061049.041
+ 21.600 15.100
+ -1766442.885 3 -1376448.243 2 24331361.451 24331359.234 24331359.932
+ 23.000 17.800
+ -16724618.645 7 -13032164.125 6 21489523.410 21489521.124 21489522.566
+ 43.200 36.100
+ -23235473.317 8 -18105560.779 8 20296847.779 20296843.009 20296847.166
+ 48.800 49.900
+ -9322387.528 4 -7264198.163 4 22807551.202 22807550.547 22807550.270
+ 29.900 28.100
+ 06 1 1 5 32 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7969525.227 5 -6210015.656 4 22952112.375 22952110.959 22952111.623
+ 33.000 26.800
+ -13323155.798 7 -10381675.728 6 21207981.850 21207978.785 21207980.828
+ 43.500 40.500
+ -12102959.096 7 -9430875.457 6 21376140.752 21376137.915 21376140.014
+ 44.900 36.600
+ -1123018.397 3 -875078.256 2 24044908.881 24044907.782 24044908.226
+ 23.400 17.000
+ -1867908.747 3 -1455512.508 3 24312051.165 24312050.281 24312050.919
+ 23.000 19.300
+ -16646726.981 7 -12971469.325 6 21504345.652 21504343.367 21504344.877
+ 43.200 36.000
+ -23240275.334 8 -18109302.611 8 20295933.968 20295929.226 20295933.324
+ 48.700 50.000
+ -9211967.128 5 -7178156.292 4 22828563.994 22828562.803 22828562.965
+ 31.300 28.600
+ 06 1 1 5 32 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8040981.676 5 -6265695.980 4 22938515.326 22938513.551 22938513.962
+ 33.000 27.900
+ -13372796.614 7 -10420356.885 6 21198535.567 21198532.431 21198534.566
+ 43.800 40.600
+ -12036870.459 7 -9379377.836 6 21388717.422 21388714.223 21388716.414
+ 45.000 36.800
+ -1207723.507 4 -941082.223 2 24028789.779 24028789.157 24028789.318
+ 26.200 17.000
+ -1969306.186 3 -1534523.436 3 24292755.870 24292754.296 24292755.706
+ 18.600 19.300
+ -16568368.016 7 -12910410.386 6 21519256.874 21519254.670 21519256.048
+ 43.300 36.200
+ -23244641.548 8 -18112704.858 8 20295103.235 20295098.380 20295102.555
+ 48.600 50.000
+ -9101338.348 4 -7091952.101 4 22849615.294 22849614.438 22849614.543
+ 29.900 27.400
+ 06 1 1 5 33 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8112061.419 5 -6321082.769 4 22924988.904 22924987.299 22924987.912
+ 32.600 26.200
+ -13422162.515 7 -10458823.818 6 21189141.442 21189138.380 21189140.586
+ 43.900 40.600
+ -11970401.336 7 -9327583.732 6 21401365.828 21401362.762 21401364.999
+ 44.900 36.700
+ -1292312.820 4 -1006995.935 2 24012693.511 24012692.526 24012692.428
+ 27.100 17.800
+ -2070632.260 2 -1613478.810 2 24273473.651 24273473.175 24273473.682
+ 17.800 17.000
+ -16489544.741 7 -12848989.655 5 21534256.525 21534254.146 21534255.655
+ 43.000 35.600
+ -23248571.207 8 -18115766.930 8 20294355.308 20294350.611 20294354.649
+ 48.700 50.000
+ -8990504.267 4 -7005587.919 4 22870707.064 22870706.002 22870705.824
+ 29.200 28.600
+ 06 1 1 5 33 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8182761.390 5 -6376173.630 4 22911534.796 22911533.928 22911534.017
+ 34.100 27.900
+ -13471253.039 7 -10497076.171 6 21179799.870 21179796.727 21179798.882
+ 43.700 40.900
+ -11903552.131 7 -9275493.456 6 21414086.613 21414083.743 21414086.013
+ 45.200 36.500
+ -1376785.893 4 -1072819.078 3 23996618.716 23996617.772 23996617.611
+ 24.600 19.300
+ -2171883.666 3 -1692375.931 3 24254207.540 24254205.964 24254206.860
+ 21.100 21.100
+ -16410259.985 7 -12787209.323 5 21549343.628 21549341.558 21549342.889
+ 42.800 35.900
+ -23252063.331 8 -18118488.065 8 20293690.838 20293686.059 20293690.159
+ 48.600 49.900
+ -8879467.943 4 -6919066.158 4 22891835.750 22891835.178 22891835.161
+ 29.000 27.400
+ 06 1 1 5 34 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8253078.662 5 -6430966.290 4 22898154.765 22898152.876 22898153.202
+ 32.600 27.600
+ -13520067.879 7 -10535113.712 6 21170510.844 21170507.648 21170509.880
+ 43.900 40.900
+ -11836324.015 7 -9223107.930 6 21426879.844 21426876.926 21426878.995
+ 44.700 36.700
+ -1461142.297 4 -1138551.312 3 23980565.765 23980564.864 23980565.116
+ 25.300 21.600
+ -2273057.254 3 -1771212.436 3 24234954.751 24234953.353 24234954.243
+ 19.900 19.900
+ -16330516.690 7 -12725071.689 5 21564518.395 21564516.185 21564517.512
+ 42.600 35.900
+ -23255117.180 8 -18120867.689 8 20293109.527 20293104.933 20293108.938
+ 48.600 50.000
+ -8768232.540 5 -6832389.250 4 22913004.144 22913002.857 22913002.988
+ 30.100 26.800
+ 06 1 1 5 34 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8323010.342 5 -6485458.489 4 22884846.312 22884845.172 22884845.851
+ 33.000 27.400
+ -13568606.882 7 -10572936.301 6 21161273.789 21161270.902 21161272.932
+ 43.700 40.700
+ -11768717.535 7 -9170427.581 6 21439745.381 21439741.949 21439744.206
+ 44.600 36.300
+ -1545381.549 4 -1204192.236 3 23964535.834 23964534.846 23964535.001
+ 28.100 23.800
+ -2374150.099 3 -1849985.995 3 24215717.286 24215715.547 24215717.052
+ 22.100 19.900
+ -16250317.146 7 -12662578.542 5 21579779.748 21579777.696 21579778.994
+ 42.500 35.800
+ -23257732.069 8 -18122905.266 8 20292612.117 20292607.389 20292611.428
+ 48.600 50.100
+ -8656801.100 5 -6745559.583 4 22934209.081 22934207.557 22934207.785
+ 30.400 26.500
+ 06 1 1 5 35 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8392553.542 5 -6539647.960 4 22871613.705 22871611.650 22871612.330
+ 33.000 27.600
+ -13616869.916 7 -10610543.860 6 21152089.725 21152086.617 21152088.859
+ 43.700 40.700
+ -11700733.982 7 -9117453.408 6 21452682.290 21452678.776 21452681.039
+ 44.700 36.100
+ -1629503.377 4 -1269741.660 4 23948527.932 23948527.309 23948526.926
+ 27.900 25.600
+ -2475158.853 3 -1928694.090 3 24196496.028 24196494.604 24196495.562
+ 22.600 19.300
+ -16169664.922 7 -12599732.651 6 21595127.317 21595125.242 21595126.494
+ 42.200 36.000
+ -23259906.632 8 -18124599.732 8 20292198.064 20292193.578 20292197.526
+ 48.600 50.000
+ -8545176.852 4 -6658579.688 4 22955449.664 22955449.210 22955448.736
+ 29.500 27.900
+ 06 1 1 5 35 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8461705.241 5 -6593532.369 4 22858454.220 22858452.369 22858452.967
+ 32.800 27.900
+ -13664856.447 7 -10647935.962 6 21142958.255 21142955.288 21142957.241
+ 43.700 41.000
+ -11632373.859 7 -9064185.795 6 21465690.103 21465687.480 21465689.360
+ 44.600 36.200
+ -1713507.426 4 -1335199.299 4 23932542.567 23932541.548 23932541.504
+ 28.400 26.200
+ -2576080.609 3 -2007334.381 3 24177290.855 24177290.391 24177290.697
+ 23.400 19.900
+ -16088562.351 7 -12536535.854 5 21610560.763 21610558.499 21610559.951
+ 42.100 35.400
+ -23261640.402 8 -18125950.726 8 20291868.236 20291863.585 20291867.636
+ 48.500 49.800
+ -8433363.013 4 -6571452.069 4 22976727.084 22976726.452 22976726.424
+ 28.800 26.500
+ 06 1 1 5 36 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8530462.616 5 -6647109.507 4 22845370.424 22845368.088 22845368.918
+ 32.100 28.600
+ -13712566.471 7 -10685112.600 6 21133879.311 21133876.359 21133878.252
+ 43.400 41.000
+ -11563637.870 7 -9010625.299 6 21478770.228 21478767.556 21478769.537
+ 44.600 36.300
+ -1797393.195 4 -1400564.787 4 23916580.057 23916578.446 23916578.979
+ 29.200 26.500
+ -2676912.089 3 -2085904.313 3 24158103.570 24158102.576 24158103.258
+ 23.400 19.300
+ -16007013.130 7 -12472991.003 5 21626079.243 21626076.763 21626078.249
+ 42.100 34.800
+ -23262932.258 8 -18126957.366 8 20291622.460 20291617.722 20291621.778
+ 48.500 49.800
+ -8321362.565 4 -6484179.050 4 22998040.499 22998039.799 22998039.366
+ 29.900 26.800
+ 06 1 1 5 36 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8598822.776 5 -6700377.128 4 22832361.573 22832359.583 22832360.358
+ 33.400 28.600
+ -13759999.719 7 -10722073.573 6 21124853.013 21124850.154 21124852.082
+ 43.600 41.200
+ -11494526.944 7 -8956772.648 6 21491921.988 21491918.845 21491920.904
+ 44.200 36.000
+ -1881160.305 4 -1465837.819 4 23900639.758 23900638.131 23900638.544
+ 28.600 25.600
+ -2777650.134 3 -2164401.466 2 24138933.397 24138931.938 24138932.810
+ 23.800 16.100
+ -15925019.991 7 -12409100.243 5 21641681.879 21641679.796 21641681.085
+ 42.100 35.100
+ -23263781.409 8 -18127619.045 8 20291460.908 20291456.178 20291460.248
+ 48.500 49.800
+ -8209178.616 5 -6396763.001 4 23019388.381 23019387.273 23019387.289
+ 30.400 25.300
+ 06 1 1 5 37 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8666782.749 5 -6753332.946 4 22819428.679 22819427.268 22819427.866
+ 33.800 28.600
+ -13807155.893 7 -10758818.638 6 21115879.706 21115876.613 21115878.674
+ 43.800 41.300
+ -11425041.704 7 -8902628.317 5 21505144.610 21505141.351 21505143.513
+ 44.100 35.700
+ -1964808.423 4 -1531018.128 4 23884722.285 23884720.186 23884721.035
+ 29.200 25.300
+ -2878291.696 3 -2242823.490 3 24119780.911 24119780.570 24119780.800
+ 22.100 20.500
+ -15842585.472 7 -12344865.561 5 21657368.711 21657366.501 21657367.937
+ 42.400 34.900
+ -23264186.906 8 -18127935.019 8 20291383.673 20291378.983 20291383.104
+ 48.500 49.800
+ -8096814.275 4 -6309206.394 4 23040770.149 23040769.436 23040769.479
+ 29.500 24.200
+ 06 1 1 5 37 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8734339.776 5 -6805974.772 4 22806573.267 22806571.487 22806572.216
+ 32.800 28.400
+ -13854034.614 7 -10795347.508 6 21106958.867 21106955.927 21106957.867
+ 43.800 41.600
+ -11355183.584 7 -8848193.428 5 21518438.286 21518435.039 21518437.162
+ 44.100 35.900
+ -2048337.037 4 -1596105.337 3 23868827.040 23868825.143 23868825.722
+ 28.400 23.000
+ -2978833.544 3 -2321167.705 2 24100649.002 24100648.026 24100648.197
+ 23.000 16.100
+ -15759712.570 7 -12280289.269 5 21673138.803 21673136.718 21673137.949
+ 42.000 35.300
+ -23264148.466 8 -18127905.066 8 20291391.192 20291386.313 20291390.502
+ 48.700 49.800
+ -7984272.441 4 -6221511.485 4 23062186.985 23062185.785 23062185.775
+ 27.900 26.200
+ 06 1 1 5 38 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8801490.908 5 -6858300.316 4 22793795.509 22793793.080 22793793.788
+ 33.000 27.600
+ -13900635.778 7 -10831660.100 6 21098090.938 21098087.917 21098090.013
+ 44.000 41.500
+ -11284953.133 7 -8793468.414 6 21531802.315 21531799.644 21531801.474
+ 43.800 36.000
+ -2131745.700 4 -1661099.062 3 23852955.044 23852953.049 23852953.701
+ 27.100 23.800
+ -3079272.362 4 -2399431.710 2 24081535.784 24081535.174 24081535.672
+ 24.600 17.800
+ -15676404.004 7 -12215373.504 5 21688991.961 21688989.757 21688991.214
+ 42.400 34.800
+ -23263664.828 8 -18127528.209 8 20291483.232 20291478.410 20291482.561
+ 48.700 49.800
+ -7871556.543 4 -6133680.955 4 23083635.296 23083634.669 23083634.384
+ 29.000 24.900
+ 06 1 1 5 38 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8868233.371 5 -6910307.406 4 22781093.574 22781092.404 22781092.807
+ 34.000 28.600
+ -13946959.308 7 -10867756.354 6 21089275.807 21089272.867 21089274.972
+ 44.100 41.500
+ -11214351.220 7 -8738453.953 5 21545237.508 21545234.686 21545236.612
+ 43.700 35.900
+ -2215034.040 4 -1725999.029 4 23837105.633 23837104.065 23837104.473
+ 26.800 24.900
+ -3179605.215 4 -2477613.116 3 24062442.549 24062442.356 24062442.649
+ 24.200 20.500
+ -15592662.889 6 -12150120.683 5 21704927.222 21704925.100 21704926.404
+ 41.900 34.500
+ -23262735.375 8 -18126803.962 8 20291659.777 20291655.302 20291659.218
+ 48.600 49.800
+ -7758669.792 4 -6045717.306 4 23105117.072 23105116.445 23105116.263
+ 28.100 26.500
+ 06 1 1 5 39 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8934564.256 5 -6961993.795 4 22768472.400 22768470.202 22768470.673
+ 33.600 29.500
+ -13993004.517 7 -10903635.733 6 21080513.768 21080510.738 21080512.752
+ 44.000 41.500
+ -11143378.667 7 -8683150.686 5 21558742.741 21558740.179 21558742.066
+ 43.800 35.700
+ -2298201.782 4 -1790805.020 4 23821279.386 23821277.570 23821278.265
+ 25.900 24.600
+ -3279828.876 3 -2555709.458 3 24043371.850 24043370.418 24043371.158
+ 20.500 19.300
+ -15508492.216 7 -12084533.147 5 21720944.694 21720942.199 21720943.856
+ 42.200 34.600
+ -23261359.460 8 -18125731.819 8 20291921.706 20291917.033 20291921.066
+ 48.400 49.800
+ -7645615.150 4 -5957622.795 3 23126630.973 23126629.822 23126629.931
+ 28.600 23.400
+ 06 1 1 5 39 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9000480.737 5 -7013357.264 4 22755927.807 22755926.791 22755927.067
+ 33.800 29.900
+ -14038771.372 7 -10939298.218 6 21071804.709 21071801.636 21071803.648
+ 43.900 41.800
+ -11072036.538 7 -8627559.433 5 21572319.259 21572316.118 21572318.157
+ 43.500 35.400
+ -2381248.495 3 -1855516.689 3 23805475.615 23805474.145 23805474.404
+ 23.800 21.600
+ -3379940.151 4 -2633718.236 3 24024321.110 24024319.588 24024320.731
+ 24.600 18.600
+ -15423894.983 6 -12018613.232 5 21737042.617 21737040.742 21737041.973
+ 41.600 35.200
+ -23259536.066 8 -18124310.997 8 20292268.697 20292263.985 20292268.079
+ 48.500 49.700
+ -7532395.838 4 -5869400.006 4 23148176.374 23148175.002 23148175.014
+ 27.600 24.900
+ 06 1 1 5 40 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9065980.044 5 -7064395.657 4 22743464.263 22743462.526 22743462.936
+ 33.400 29.000
+ -14084259.637 7 -10974743.617 6 21063148.780 21063145.646 21063147.656
+ 44.100 41.900
+ -11000325.274 7 -8571680.541 5 21585965.685 21585962.256 21585964.318
+ 43.100 34.900
+ -2464173.675 4 -1920133.679 3 23789695.038 23789694.197 23789694.132
+ 26.500 22.600
+ -3479935.895 4 -2711636.930 3 24005291.435 24005291.537 24005291.698
+ 24.200 21.600
+ -15338873.719 6 -11952362.900 5 21753222.326 21753219.636 21753221.269
+ 41.200 34.500
+ -23257264.524 8 -18122540.966 8 20292700.979 20292696.360 20292700.398
+ 48.400 49.800
+ -7419014.760 5 -5781051.149 3 23169751.885 23169750.576 23169750.939
+ 30.200 23.800
+ 06 1 1 5 40 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9131059.335 5 -7115106.770 4 22731079.321 22731078.105 22731078.709
+ 33.800 27.900
+ -14129469.206 7 -11009971.848 6 21054545.399 21054542.471 21054544.607
+ 44.200 41.900
+ -10928246.137 7 -8515514.999 5 21599681.613 21599678.614 21599680.494
+ 43.100 34.600
+ -2546977.024 4 -1984655.756 3 23773938.539 23773937.251 23773937.789
+ 27.400 21.100
+ -3579812.780 4 -2789463.049 3 23986286.750 23986285.634 23986286.455
+ 26.500 21.600
+ -15253431.956 6 -11885784.906 5 21769480.850 21769478.862 21769479.936
+ 41.000 34.600
+ -23254543.998 8 -18120421.075 8 20293218.787 20293214.099 20293218.125
+ 48.500 49.800
+ -7305475.113 4 -5692578.777 4 23191358.023 23191356.583 23191356.542
+ 27.400 24.900
+ 06 1 1 5 41 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9195715.687 5 -7165488.333 4 22718776.687 22718774.501 22718775.092
+ 33.100 28.100
+ -14174399.551 7 -11044982.506 7 21045995.513 21045992.588 21045994.600
+ 44.100 42.100
+ -10855800.051 7 -8459063.516 5 21613466.978 21613464.610 21613466.487
+ 43.300 34.600
+ -2629658.165 4 -2049082.600 4 23758204.698 23758203.391 23758204.009
+ 28.600 24.200
+ -3679567.776 3 -2867194.160 3 23967303.568 23967303.111 23967302.893
+ 19.900 19.900
+ -15167572.240 6 -11818881.231 5 21785819.361 21785817.099 21785818.547
+ 41.200 33.600
+ -23251373.636 8 -18117950.665 8 20293821.995 20293817.288 20293821.329
+ 48.100 49.700
+ -7191780.024 4 -5603985.216 4 23212992.760 23212992.543 23212991.993
+ 27.600 25.900
+ 06 1 1 5 41 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9259946.518 5 -7215538.313 4 22706552.623 22706551.451 22706552.038
+ 33.500 26.800
+ -14219050.615 7 -11079775.541 7 21037499.008 21037495.748 21037497.929
+ 44.200 42.200
+ -10782987.944 7 -8402326.824 5 21627322.936 21627320.373 21627322.219
+ 43.300 34.600
+ -2712216.616 4 -2113413.829 4 23742493.946 23742493.040 23742492.962
+ 29.200 25.300
+ -3779197.667 4 -2944827.780 2 23948343.822 23948343.842 23948344.141
+ 25.300 17.000
+ -15081297.314 6 -11751654.014 5 21802236.987 21802234.804 21802236.207
+ 41.300 33.800
+ -23247752.777 8 -18115129.217 8 20294510.924 20294506.321 20294510.302
+ 48.100 49.600
+ -7077932.778 4 -5515273.124 3 23234657.708 23234656.439 23234656.402
+ 27.600 23.800
+ 06 1 1 5 42 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9323749.027 5 -7265254.535 4 22694412.187 22694410.421 22694410.920
+ 33.900 28.100
+ -14263422.036 7 -11114350.675 7 21029055.363 21029052.199 21029054.212
+ 44.100 42.500
+ -10709810.771 7 -8345305.671 5 21641248.909 21641245.334 21641247.606
+ 43.100 34.500
+ -2794652.163 4 -2177649.283 4 23726807.418 23726806.198 23726806.493
+ 29.700 24.900
+ -3878699.181 4 -3022361.415 3 23929410.665 23929409.368 23929410.192
+ 24.600 19.300
+ -14994610.413 6 -11684105.782 5 21818732.797 21818730.840 21818732.029
+ 40.700 34.300
+ -23243680.918 8 -18111956.340 8 20295285.985 20295281.215 20295285.287
+ 48.200 49.700
+ -6963936.246 4 -5426444.724 4 23256350.548 23256349.800 23256349.298
+ 27.600 26.800
+ 06 1 1 5 42 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9387120.344 5 -7314634.768 4 22682352.876 22682351.242 22682351.891
+ 34.500 28.400
+ -14307513.764 7 -11148707.862 7 21020664.525 21020661.733 21020663.669
+ 44.000 42.300
+ -10636269.373 7 -8288000.701 5 21655243.080 21655240.040 21655241.993
+ 43.100 34.800
+ -2876964.284 4 -2241788.575 3 23711143.803 23711142.414 23711143.202
+ 29.700 23.800
+ -3978069.192 3 -3099792.508 3 23910500.544 23910499.684 23910499.873
+ 20.500 19.900
+ -14907514.861 6 -11616239.125 5 21835306.746 21835304.549 21835306.044
+ 41.100 33.800
+ -23239157.023 8 -18108431.228 8 20296146.900 20296142.094 20296146.223
+ 48.200 49.600
+ -6849793.481 4 -5337502.349 3 23278070.745 23278069.788 23278069.774
+ 27.100 23.400
+ 06 1 1 5 43 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9450057.784 5 -7363676.916 4 22670376.473 22670374.304 22670375.313
+ 34.000 29.500
+ -14351325.515 7 -11182846.890 7 21012327.790 21012324.620 21012326.794
+ 44.400 42.300
+ -10562364.863 7 -8230412.793 5 21669306.254 21669303.692 21669305.591
+ 43.200 34.900
+ -2959152.531 4 -2305831.349 4 23695503.978 23695502.653 23695503.199
+ 29.500 24.900
+ -4077304.386 4 -3177118.585 3 23891616.491 23891615.194 23891616.385
+ 24.600 19.300
+ -14820012.929 6 -11548055.796 5 21851957.656 21851955.589 21851956.744
+ 40.800 33.800
+ -23234180.719 8 -18104553.591 8 20297093.669 20297089.056 20297093.035
+ 48.300 49.700
+ -6735507.614 4 -5248448.454 4 23299818.553 23299818.322 23299817.848
+ 27.600 25.300
+ 06 1 1 5 43 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9512558.700 5 -7412378.932 4 22658482.546 22658481.158 22658481.330
+ 33.500 28.600
+ -14394856.900 7 -11216767.452 7 21004043.918 21004040.749 21004042.852
+ 44.000 42.300
+ -10488098.348 7 -8172542.802 5 21683438.871 21683436.167 21683438.227
+ 42.900 34.700
+ -3041216.572 4 -2369777.327 4 23679887.362 23679886.273 23679886.599
+ 28.400 25.600
+ -4176401.812 3 -3254337.307 3 23872759.460 23872757.702 23872758.812
+ 23.400 21.100
+ -14732108.109 6 -11479558.528 5 21868685.741 21868683.193 21868684.873
+ 40.700 33.200
+ -23228751.227 8 -18100322.816 8 20298126.753 20298122.276 20298126.233
+ 48.100 49.600
+ -6621081.761 4 -5159285.477 3 23321593.847 23321592.493 23321592.544
+ 28.600 22.100
+ 06 1 1 5 44 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9574620.296 5 -7460738.573 4 22646672.595 22646671.210 22646671.517
+ 33.800 29.900
+ -14438107.592 7 -11250469.287 7 20995813.560 20995810.389 20995812.479
+ 43.900 42.300
+ -10413470.720 7 -8114391.420 5 21697640.426 21697637.312 21697639.464
+ 42.900 34.400
+ -3123156.034 4 -2433626.239 4 23664294.916 23664293.703 23664294.075
+ 27.900 24.600
+ -4275358.024 4 -3331445.974 4 23853928.114 23853927.787 23853928.124
+ 27.100 24.200
+ -14643803.063 6 -11410749.396 5 21885489.447 21885487.312 21885488.641
+ 41.000 34.100
+ -23222867.746 8 -18095738.287 8 20299246.534 20299241.854 20299245.860
+ 48.200 49.600
+ -6506519.011 4 -5070015.889 3 23343394.055 23343393.345 23343393.183
+ 29.000 22.600
+ 06 1 1 5 44 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9636239.746 5 -7508753.715 5 22634946.714 22634945.610 22634945.852
+ 34.500 30.100
+ -14481077.626 7 -11283952.434 7 20987636.208 20987633.459 20987635.408
+ 43.800 42.200
+ -10338482.946 7 -8055959.408 5 21711910.691 21711906.924 21711909.191
+ 42.800 34.000
+ -3204970.630 4 -2497377.833 3 23648725.917 23648724.830 23648725.209
+ 29.500 23.000
+ -4374169.918 4 -3408442.214 3 23835123.932 23835124.253 23835124.328
+ 25.600 21.600
+ -14555100.583 6 -11341630.589 5 21902369.051 21902366.861 21902368.058
+ 40.800 33.900
+ -23216529.776 8 -18090799.611 8 20300452.624 20300447.919 20300451.983
+ 48.200 49.600
+ -6391822.592 4 -4980642.071 4 23365220.006 23365219.111 23365219.047
+ 27.600 24.600
+ 06 1 1 5 45 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9697414.553 5 -7556422.364 5 22623306.333 22623304.153 22623305.364
+ 35.400 30.100
+ -14523766.472 7 -11317216.465 7 20979513.019 20979510.058 20979512.052
+ 43.900 42.400
+ -10263136.015 7 -7997247.540 5 21726248.367 21726245.124 21726247.097
+ 42.700 34.500
+ -3286659.930 5 -2561031.824 3 23633181.511 23633179.596 23633180.635
+ 30.100 23.800
+ -4472834.277 4 -3485323.491 3 23816350.080 23816348.554 23816348.975
+ 25.300 21.600
+ -14466003.438 6 -11272204.250 5 21919323.462 21919321.403 21919322.769
+ 40.700 33.400
+ -23209736.813 8 -18085506.397 8 20301745.296 20301740.605 20301744.666
+ 48.400 49.600
+ -6276995.330 4 -4891166.313 3 23387070.765 23387070.135 23387070.046
+ 28.100 21.600
+ 06 1 1 5 45 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9758141.924 5 -7603742.379 5 22611750.260 22611748.182 22611749.049
+ 34.500 30.600
+ -14566174.225 7 -11350261.466 7 20971443.391 20971440.177 20971442.369
+ 44.100 42.500
+ -10187430.819 7 -7938256.497 5 21740653.369 21740651.325 21740653.149
+ 42.400 34.100
+ -3368223.469 5 -2624587.814 3 23617660.359 23617658.358 23617659.252
+ 30.400 23.400
+ -4571347.837 3 -3562087.276 3 23797602.510 23797602.365 23797602.199
+ 23.400 21.100
+ -14376515.918 6 -11202473.705 5 21936352.453 21936350.432 21936351.685
+ 40.300 33.400
+ -23202487.589 8 -18079857.653 8 20303124.678 20303120.059 20303124.108
+ 48.200 49.600
+ -6162040.636 4 -4801591.264 3 23408946.375 23408945.643 23408945.310
+ 26.500 23.000
+ 06 1 1 5 46 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9818419.265 5 -7650711.706 4 22600279.184 22600277.584 22600278.409
+ 34.800 29.500
+ -14608300.473 7 -11383087.116 7 20963427.204 20963423.723 20963426.036
+ 44.300 42.500
+ -10111368.558 7 -7878987.216 5 21755127.403 21755125.422 21755127.195
+ 42.300 33.600
+ -3449660.926 4 -2688045.548 3 23602163.448 23602161.164 23602162.196
+ 27.900 23.800
+ -4669707.533 4 -3638731.110 3 23778886.135 23778884.434 23778885.726
+ 26.200 18.600
+ -14286639.893 6 -11132440.447 5 21953455.293 21953453.165 21953454.431
+ 40.400 32.800
+ -23194782.047 8 -18073853.333 8 20304591.042 20304586.309 20304590.466
+ 48.300 49.500
+ -6046961.358 4 -4711919.158 3 23430845.218 23430844.227 23430844.165
+ 26.500 21.600
+ 06 1 1 5 46 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9878243.935 5 -7697328.318 4 22588896.201 22588893.225 22588894.556
+ 35.600 29.700
+ -14650144.953 7 -11415693.201 7 20955464.124 20955461.065 20955463.168
+ 44.100 42.400
+ -10034950.240 7 -7819440.497 5 21769670.341 21769667.384 21769669.339
+ 42.200 33.600
+ -3530971.943 4 -2751404.754 4 23586690.015 23586688.466 23586689.220
+ 27.100 24.600
+ -4767909.812 4 -3715252.353 3 23760199.478 23760197.662 23760198.688
+ 27.900 21.100
+ -14196378.387 6 -11062106.802 5 21970631.371 21970629.229 21970630.538
+ 40.300 32.800
+ -23186619.562 8 -18067492.960 8 20306144.493 20306139.606 20306143.740
+ 48.000 49.500
+ -5931760.534 4 -4622152.324 4 23452767.015 23452766.533 23452766.480
+ 27.900 24.600
+ 06 1 1 5 47 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9937613.164 6 -7743590.043 4 22577597.762 22577595.522 22577596.721
+ 36.000 29.200
+ -14691707.521 7 -11448079.619 7 20947555.338 20947551.962 20947554.185
+ 44.200 42.700
+ -9958177.394 6 -7759617.524 5 21784280.844 21784276.733 21784279.052
+ 41.800 33.600
+ -3612156.064 4 -2814665.065 4 23571241.631 23571239.897 23571240.583
+ 29.000 26.200
+ -4865951.749 4 -3791648.595 3 23741541.232 23741540.660 23741541.509
+ 26.200 20.500
+ -14105734.379 6 -10991475.109 5 21987880.337 21987878.318 21987879.607
+ 40.500 33.100
+ -23177999.364 7 -18060775.923 8 20307784.486 20307780.049 20307783.973
+ 47.900 49.500
+ -5816441.379 4 -4532293.275 4 23474712.152 23474711.276 23474710.720
+ 24.900 24.600
+ 06 1 1 5 47 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9996524.391 5 -7789494.899 4 22566387.701 22566385.066 22566386.305
+ 35.300 29.200
+ -14732987.879 7 -11480246.132 7 20939699.722 20939696.643 20939698.700
+ 44.300 42.700
+ -9881050.089 7 -7699518.353 5 21798957.178 21798953.622 21798955.976
+ 42.600 33.600
+ -3693212.700 5 -2877826.038 4 23555817.109 23555815.543 23555816.151
+ 30.800 28.100
+ -4963830.072 4 -3867917.409 3 23722916.300 23722915.237 23722915.992
+ 27.600 20.500
+ -14014711.038 6 -10920547.822 5 22005201.784 22005199.451 22005200.830
+ 40.200 32.400
+ -23168920.761 7 -18053701.688 8 20309512.327 20309507.628 20309511.648
+ 47.700 49.400
+ -5701006.953 4 -4442344.433 3 23496677.885 23496677.438 23496676.936
+ 24.600 23.000
+ 06 1 1 5 48 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10054975.072 6 -7835040.866 5 22555264.379 22555262.658 22555263.342
+ 36.200 30.600
+ -14773985.957 7 -11512192.684 7 20931898.316 20931894.992 20931897.223
+ 44.400 42.800
+ -9803569.884 7 -7639144.177 5 21813700.373 21813697.481 21813699.812
+ 42.500 32.400
+ -3774141.624 5 -2940887.503 4 23540416.603 23540414.947 23540415.609
+ 30.600 25.900
+ -5061541.431 4 -3944056.065 3 23704323.778 23704321.365 23704322.375
+ 25.900 22.600
+ -13923311.106 6 -10849327.105 5 22022594.364 22022592.085 22022593.584
+ 40.000 32.100
+ -23159383.326 7 -18046269.926 8 20311327.038 20311322.459 20311326.477
+ 47.700 49.400
+ -5585460.308 4 -4352308.154 3 23518665.893 23518665.174 23518664.801
+ 24.900 19.900
+ 06 1 1 5 48 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10112962.519 5 -7880225.870 4 22544230.162 22544227.849 22544228.774
+ 35.800 29.900
+ -14814701.452 7 -11543919.045 7 20924150.146 20924146.999 20924149.182
+ 44.300 42.900
+ -9725738.133 7 -7578496.077 5 21828510.815 21828508.806 21828510.615
+ 42.200 33.600
+ -3854942.488 4 -3003849.190 4 23525040.432 23525038.718 23525039.481
+ 29.500 24.600
+ -5159082.752 4 -4020062.243 3 23685759.572 23685759.289 23685760.789
+ 28.600 21.100
+ -13831537.529 6 -10777815.224 5 22040058.542 22040056.303 22040057.657
+ 39.600 32.400
+ -23149386.342 7 -18038480.070 8 20313229.557 20313224.848 20313228.874
+ 47.700 49.300
+ -5469804.485 4 -4262186.794 3 23540675.410 23540674.083 23540673.991
+ 25.600 23.000
+ 06 1 1 5 49 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10170484.229 6 -7925047.950 5 22533283.864 22533281.916 22533282.790
+ 36.100 30.200
+ -14855133.894 7 -11575424.839 7 20916456.138 20916452.998 20916455.188
+ 44.400 43.100
+ -9647555.580 7 -7517574.621 5 21843389.599 21843386.054 21843388.463
+ 42.500 32.800
+ -3935614.836 4 -3066710.736 3 23509689.185 23509687.312 23509688.101
+ 29.000 23.800
+ -5256450.669 3 -4095933.298 3 23667232.356 23667230.776 23667231.506
+ 23.400 21.100
+ -13739393.116 6 -10706014.382 5 22057592.821 22057590.574 22057592.038
+ 39.400 32.300
+ -23138929.340 7 -18030331.760 8 20315219.355 20315214.804 20315218.791
+ 47.900 49.200
+ -5354042.612 4 -4171982.775 3 23562703.945 23562702.946 23562702.357
+ 24.200 23.800
+ 06 1 1 5 49 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10227537.552 5 -7969505.076 4 22522426.846 22522424.795 22522425.841
+ 35.900 29.500
+ -14895283.192 7 -11606710.007 7 20908816.050 20908812.752 20908815.001
+ 44.400 43.000
+ -9569023.456 6 -7456380.779 5 21858334.333 21858330.294 21858332.793
+ 41.800 33.000
+ -4016158.314 5 -3129471.864 4 23494362.080 23494360.498 23494361.377
+ 30.100 26.200
+ -5353641.969 4 -4171666.726 3 23648737.468 23648736.058 23648736.929
+ 26.500 22.600
+ -13646881.060 6 -10633927.069 5 22075197.576 22075195.126 22075196.658
+ 39.300 32.600
+ -23128011.963 7 -18021824.714 8 20317296.920 20317292.282 20317296.288
+ 47.700 49.200
+ -5238177.449 4 -4081698.287 3 23584752.155 23584751.124 23584750.955
+ 27.400 20.500
+ 06 1 1 5 50 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10284119.976 6 -8013595.264 4 22511659.335 22511657.682 22511658.561
+ 36.400 29.700
+ -14935149.121 7 -11637774.361 7 20901229.628 20901226.424 20901228.690
+ 44.500 43.100
+ -9490142.891 6 -7394915.425 5 21873344.349 21873340.729 21873343.078
+ 41.600 32.400
+ -4096572.523 4 -3192132.255 4 23479059.827 23479058.499 23479059.021
+ 29.500 27.400
+ -5450653.530 4 -4247260.075 3 23630275.030 23630275.382 23630276.086
+ 26.800 23.000
+ -13554004.806 6 -10561555.964 5 22092871.650 22092869.139 22092870.596
+ 39.500 32.700
+ -23116633.505 7 -18012958.383 8 20319462.149 20319457.532 20319461.545
+ 47.500 49.100
+ -5122212.191 4 -3991335.769 3 23606819.991 23606818.770 23606818.434
+ 26.500 21.100
+ 06 1 1 5 50 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10340228.957 6 -8057316.532 5 22500982.181 22500980.479 22500981.286
+ 36.500 30.600
+ -14974731.483 7 -11668617.759 7 20893697.519 20893694.293 20893696.508
+ 44.400 43.100
+ -9410914.995 6 -7333179.419 5 21888420.593 21888417.207 21888419.633
+ 41.800 32.100
+ -4176857.053 4 -3254691.578 4 23463781.918 23463780.833 23463780.905
+ 29.700 27.100
+ -5547481.915 4 -4322710.742 3 23611851.609 23611849.670 23611850.809
+ 28.800 22.100
+ -13460766.968 6 -10488903.113 5 22110613.859 22110611.451 22110612.999
+ 39.200 32.400
+ -23104793.532 7 -18003732.431 8 20321715.473 20321710.661 20321714.736
+ 47.500 49.100
+ -5006149.898 4 -3900897.675 3 23628905.614 23628904.413 23628904.156
+ 25.600 19.900
+ 06 1 1 5 51 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10395862.053 6 -8100666.984 5 22490396.007 22490393.850 22490394.789
+ 36.500 30.600
+ -15014030.113 7 -11699240.066 7 20886219.246 20886216.021 20886218.229
+ 44.500 43.300
+ -9331340.691 6 -7271173.486 5 21903561.894 21903559.924 21903561.763
+ 41.500 33.000
+ -4257011.532 4 -3317149.585 4 23448529.228 23448527.712 23448528.190
+ 29.700 25.600
+ -5644124.032 4 -4398016.278 3 23593461.224 23593459.143 23593460.335
+ 24.200 22.100
+ -13367170.175 6 -10415970.551 5 22128424.780 22128422.214 22128423.876
+ 39.300 32.000
+ -23092491.455 7 -17994146.396 8 20324056.229 20324051.659 20324055.615
+ 47.600 49.100
+ -4889993.846 4 -3810386.494 3 23651008.487 23651008.557 23651008.026
+ 27.100 21.600
+ 06 1 1 5 51 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10451016.695 6 -8143644.605 5 22479900.186 22479898.449 22479898.958
+ 36.500 30.600
+ -15053044.735 7 -11729641.071 7 20878794.863 20878791.814 20878794.000
+ 44.600 43.600
+ -9251421.165 6 -7208898.548 5 21918769.703 21918767.943 21918770.031
+ 41.200 32.100
+ -4337035.638 4 -3379506.020 4 23433300.764 23433299.524 23433300.138
+ 29.200 24.900
+ -5740576.760 4 -4473174.199 3 23575105.452 23575104.137 23575105.776
+ 26.800 21.100
+ -13273217.843 6 -10342760.933 5 22146302.922 22146301.016 22146302.073
+ 38.700 32.000
+ -23079726.794 7 -17984199.908 8 20326485.060 20326480.623 20326484.521
+ 47.400 49.100
+ -4773747.035 4 -3719804.635 3 23673129.885 23673129.767 23673129.115
+ 25.300 21.100
+ 06 1 1 5 52 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10505690.393 6 -8186247.464 4 22469495.554 22469494.115 22469494.620
+ 36.300 29.900
+ -15091775.063 7 -11759820.545 7 20871424.897 20871421.729 20871423.880
+ 44.700 43.500
+ -9171157.597 6 -7146355.518 5 21934044.024 21934041.886 21934043.690
+ 41.300 32.800
+ -4416929.045 5 -3441760.603 4 23418097.759 23418096.564 23418097.052
+ 30.600 26.800
+ -5836836.531 4 -4548181.776 3 23556789.505 23556786.521 23556788.172
+ 25.600 19.900
+ -13178912.770 6 -10269276.464 5 22164249.069 22164246.450 22164248.177
+ 39.300 31.300
+ -23066499.288 7 -17973892.763 8 20329002.296 20328997.772 20329001.659
+ 47.400 49.000
+ -4657412.333 3 -3629154.284 3 23695268.290 23695267.046 23695266.730
+ 21.100 21.600
+ 06 1 1 5 52 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10559880.644 6 -8228473.622 5 22459183.794 22459181.896 22459182.826
+ 36.500 30.100
+ -15130220.947 7 -11789778.381 7 20864108.921 20864105.627 20864107.868
+ 44.300 43.600
+ -9090551.242 6 -7083545.396 5 21949384.649 21949380.602 21949382.956
+ 41.000 32.300
+ -4496691.253 5 -3503912.933 4 23402919.238 23402918.665 23402918.380
+ 30.100 29.700
+ -5932900.210 4 -4623036.521 3 23538508.072 23538506.654 23538508.239
+ 27.900 23.800
+ -13084257.713 6 -10195519.280 5 22182260.997 22182258.761 22182260.276
+ 38.900 32.000
+ -23052808.230 7 -17963224.414 8 20331607.801 20331603.075 20331607.190
+ 47.400 48.900
+ -4540992.759 4 -3538437.803 3 23717421.996 23717421.423 23717421.164
+ 24.900 23.000
+ 06 1 1 5 53 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10613585.012 6 -8270321.180 5 22448964.223 22448962.301 22448963.104
+ 36.400 31.000
+ -15168381.976 7 -11819514.247 7 20856846.955 20856843.815 20856845.970
+ 44.300 43.600
+ -9009603.455 6 -7020469.217 5 21964788.554 21964784.436 21964786.771
+ 40.700 32.300
+ -4576321.946 5 -3565962.760 4 23387765.751 23387765.197 23387765.155
+ 30.100 29.200
+ -6028764.664 4 -4697736.047 4 23520264.543 23520264.323 23520264.807
+ 26.800 25.900
+ -12989256.116 6 -10121492.062 5 22200339.255 22200336.953 22200338.470
+ 38.600 31.600
+ -23038653.101 7 -17952194.448 8 20334301.661 20334296.720 20334300.963
+ 47.500 48.800
+ -4424491.536 3 -3447657.652 3 23739590.359 23739590.936 23739589.959
+ 23.000 19.900
+ 06 1 1 5 53 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10666801.080 6 -8311788.239 5 22438837.625 22438835.812 22438836.379
+ 36.100 31.100
+ -15206258.014 7 -11849028.043 7 20849639.661 20849636.375 20849638.663
+ 44.500 43.700
+ -8928315.192 6 -6957127.734 5 21980256.163 21980253.269 21980255.108
+ 40.700 32.600
+ -4655820.713 5 -3627909.811 4 23372638.229 23372636.480 23372637.398
+ 31.100 25.600
+ -6124426.618 4 -4772277.779 4 23502062.899 23502060.844 23502061.765
+ 28.800 25.300
+ -12893910.561 6 -10047196.818 5 22218482.611 22218480.341 22218481.919
+ 38.400 31.000
+ -23024033.528 7 -17940802.573 8 20337083.499 20337078.805 20337082.839
+ 47.400 48.900
+ -4307911.567 4 -3356816.236 3 23761776.596 23761775.118 23761775.123
+ 25.600 19.900
+ 06 1 1 5 54 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10719526.450 5 -8352872.917 5 22428804.330 22428802.853 22428803.220
+ 35.900 31.100
+ -15243848.864 7 -11878319.617 7 20842486.120 20842483.021 20842485.150
+ 44.500 43.900
+ -8846687.653 6 -6893521.874 5 21995788.586 21995786.492 21995788.324
+ 40.600 32.100
+ -4735187.080 5 -3689753.727 4 23357535.126 23357533.219 23357534.362
+ 32.100 24.600
+ -6219882.861 4 -4846659.236 3 23483896.241 23483895.405 23483896.674
+ 29.000 22.100
+ -12798223.759 6 -9972635.679 5 22236691.292 22236689.080 22236690.663
+ 38.600 30.400
+ -23008949.094 7 -17929048.470 8 20339953.812 20339949.237 20339953.251
+ 47.400 48.900
+ -4191255.799 3 -3265915.618 3 23783974.621 23783974.223 23783974.025
+ 22.100 21.600
+ 06 1 1 5 54 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10771758.657 6 -8393573.321 5 22418865.249 22418863.127 22418864.127
+ 37.100 31.300
+ -15281154.228 7 -11907388.730 7 20835387.084 20835384.098 20835386.048
+ 44.100 43.800
+ -8764721.914 6 -6829652.484 5 22011386.209 22011384.201 22011385.945
+ 40.700 32.400
+ -4814420.747 5 -3751494.231 4 23342457.894 23342455.773 23342456.817
+ 30.800 27.100
+ -6315129.976 4 -4920877.730 4 23465772.519 23465770.351 23465771.763
+ 27.400 24.600
+ -12702198.979 6 -9897811.165 5 22254964.066 22254962.506 22254963.240
+ 37.900 31.500
+ -22993399.445 7 -17916931.861 8 20342912.967 20342908.289 20342912.360
+ 47.300 49.000
+ -4074527.120 3 -3174958.297 3 23806187.896 23806187.020 23806186.352
+ 22.600 19.300
+ 06 1 1 5 55 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10823495.322 6 -8433887.585 5 22409019.983 22409017.744 22409018.722
+ 36.700 30.200
+ -15318174.050 7 -11936235.343 7 20828342.481 20828339.319 20828341.440
+ 44.000 43.900
+ -8682419.402 6 -6765520.669 5 22027048.678 22027045.584 22027047.827
+ 40.700 31.100
+ -4893521.501 4 -3813131.136 4 23327404.853 23327403.634 23327404.112
+ 29.700 27.900
+ -6410164.862 4 -4994930.872 3 23447688.537 23447685.865 23447687.096
+ 27.400 23.800
+ -12605839.291 6 -9822725.697 5 22273300.980 22273298.661 22273300.083
+ 38.300 30.200
+ -22977384.253 7 -17904452.492 8 20345960.522 20345955.959 20345959.907
+ 47.300 48.900
+ -3957728.534 4 -3083946.468 3 23828413.580 23828413.129 23828412.842
+ 25.600 19.300
+ 06 1 1 5 55 30.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -10874734.122 6 -8473813.915 4 22399268.878 22399267.014 22399268.081
+ 36.500 29.900
+ -15354907.930 7 -11964859.148 7 20821352.463 20821349.210 20821351.396
+ 44.300 44.100
+ -8599781.193 6 -6701127.271 5 22042775.085 22042771.023 22042773.582
+ 40.700 30.800
+ -4972488.855 5 -3874664.105 4 23312378.474 23312376.557 23312377.390
+ 31.500 27.600
+ -6504984.213 4 -5068816.036 3 23429642.914 23429642.358 23429643.333
+ 29.000 23.000
+ -12509147.231 6 -9747381.239 5 22291700.518 22291698.665 22291699.939
+ 38.300 30.200
+ -71714.614 3 -55881.878 1 24586117.148 24586114.117 24586116.750
+ 21.600 9.000
+ -22960902.926 7 -17891609.900 8 20349096.787 20349092.199 20349096.112
+ 47.100 48.900
+ -3840863.317 3 -2992882.717 3 23850652.678 23850651.962 23850651.462
+ 22.600 19.300
+ 06 1 1 5 56 0.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -10925472.697 6 -8513350.448 5 22389614.489 22389611.658 22389612.948
+ 36.800 30.200
+ -15391355.558 7 -11993259.890 7 20814416.324 20814413.514 20814415.417
+ 44.100 44.400
+ -8516808.514 6 -6636473.241 5 22058563.654 22058560.354 22058562.572
+ 40.500 31.100
+ -5051322.361 5 -3936092.792 4 23297376.999 23297374.849 23297376.023
+ 31.600 25.900
+ -6599584.801 4 -5142530.735 3 23411641.770 23411640.156 23411641.632
+ 28.600 23.000
+ -12412126.592 6 -9671780.755 5 22310163.203 22310161.034 22310162.419
+ 37.900 30.800
+ -124976.132 3 -97384.374 2 24575982.787 24575980.200 24575981.803
+ 21.600 12.600
+ -22943955.327 7 -17878403.983 8 20352321.989 20352317.178 20352321.234
+ 47.100 48.800
+ -3723934.326 4 -2901769.271 3 23872903.501 23872902.451 23872902.564
+ 25.300 19.300
+ 06 1 1 5 56 30.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -10975708.682 6 -8552495.358 4 22380054.224 22380052.097 22380053.159
+ 37.000 29.700
+ -15427517.118 7 -12021437.730 7 20807535.009 20807531.956 20807534.067
+ 44.100 44.000
+ -8433502.733 6 -6571559.669 5 22074415.789 22074412.857 22074414.867
+ 39.900 31.300
+ -5130021.679 5 -3997416.920 4 23282400.883 23282398.795 23282399.716
+ 30.100 26.500
+ -6693963.386 5 -5216072.469 4 23393683.062 23393680.933 23393682.289
+ 30.600 25.300
+ -12314779.690 6 -9595926.014 5 22328687.653 22328685.459 22328686.781
+ 37.700 30.100
+ -177786.788 2 -138535.539 1 24565932.774 24565930.671 24565931.748
+ 17.800 9.000
+ -22926540.987 7 -17864834.367 8 20355635.582 20355630.997 20355635.042
+ 47.300 48.700
+ -3606944.579 3 -2810608.487 3 23895166.059 23895165.031 23895164.699
+ 23.400 20.500
+ 06 1 1 5 57 0.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -11025439.778 6 -8591246.849 5 22370591.322 22370589.037 22370589.866
+ 37.200 30.400
+ -15463392.225 7 -12049392.359 7 20800708.483 20800705.155 20800707.465
+ 44.400 44.000
+ -8349865.353 6 -6506387.700 5 22090331.287 22090328.695 22090330.716
+ 40.000 31.300
+ -5208586.422 5 -4058636.154 4 23267450.021 23267448.371 23267449.235
+ 31.300 27.400
+ -6788116.736 4 -5289438.676 4 23375764.635 23375764.029 23375764.865
+ 28.100 25.600
+ -12217109.271 6 -9519819.193 5 22347273.634 22347271.396 22347272.900
+ 37.100 30.100
+ -230144.948 3 -179334.067 2 24555969.742 24555966.302 24555969.243
+ 23.000 13.900
+ -22908659.319 7 -17850900.599 8 20359038.456 20359033.767 20359037.757
+ 47.000 48.700
+ -3489897.042 4 -2719402.673 3 23917439.894 23917438.448 23917438.651
+ 24.200 19.300
+ 06 1 1 5 57 30.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -11074663.667 6 -8629603.109 5 22361223.453 22361221.766 22361222.783
+ 37.100 31.000
+ -15498980.410 7 -12077123.412 7 20793936.454 20793933.050 20793935.348
+ 44.500 44.100
+ -8265896.867 6 -6440957.726 5 22106310.244 22106307.291 22106309.285
+ 39.700 31.100
+ -5287016.186 5 -4119750.238 4 23252525.533 23252523.938 23252524.759
+ 32.700 28.400
+ -6882041.552 5 -5362626.819 3 23357892.897 23357890.525 23357892.179
+ 30.600 23.400
+ -12119118.883 6 -9443463.060 5 22365920.470 22365918.736 22365919.732
+ 37.500 31.000
+ -282049.043 2 -219778.805 2 24546091.458 24546089.454 24546090.746
+ 13.900 17.800
+ -22890310.328 7 -17836602.698 8 20362530.194 20362525.474 20362529.543
+ 47.200 48.700
+ -3372794.893 4 -2628154.277 3 23939723.029 23939722.799 23939722.473
+ 26.500 19.900
+ 06 1 1 5 58 0.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -11123378.130 6 -8667562.415 5 22351954.368 22351951.514 22351952.994
+ 37.200 30.800
+ -15534281.634 7 -12104630.860 7 20787218.548 20787215.430 20787217.582
+ 44.100 44.300
+ -8181598.836 6 -6375270.968 5 22122351.626 22122348.794 22122350.727
+ 39.800 30.800
+ -5365310.487 5 -4180758.751 4 23237626.741 23237624.977 23237625.756
+ 32.600 28.100
+ -6975734.542 4 -5435634.299 4 23340060.827 23340061.567 23340061.951
+ 27.900 25.600
+ -12020811.336 6 -9366859.777 5 22384628.001 22384625.918 22384627.245
+ 37.500 30.400
+ -333497.994 3 -259868.861 2 24536302.486 24536298.831 24536301.551
+ 23.400 16.100
+ -22871493.721 7 -17821940.416 8 20366110.699 20366106.158 20366110.113
+ 46.900 48.500
+ -3255641.049 3 -2536865.617 3 23962016.993 23962016.274 23962015.983
+ 21.600 19.300
+ 06 1 1 5 58 30.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -11171580.840 6 -8705122.951 5 22342781.156 22342778.817 22342780.286
+ 37.700 30.100
+ -15569295.554 7 -12131914.429 7 20780555.541 20780552.531 20780554.679
+ 44.200 44.200
+ -8096972.862 6 -6309328.672 5 22138455.717 22138452.558 22138454.756
+ 40.000 30.400
+ -5443468.912 5 -4241661.398 4 23222753.215 23222751.956 23222752.511
+ 32.400 27.400
+ -7069192.609 4 -5508458.719 3 23322277.964 23322276.370 23322277.516
+ 29.200 22.100
+ -11922189.392 6 -9290011.509 5 22403395.530 22403393.170 22403394.528
+ 37.500 30.100
+ -384489.586 4 -299602.571 2 24526598.574 24526594.851 24526598.041
+ 25.900 12.600
+ -22852208.732 7 -17806913.158 8 20369780.378 20369775.937 20369779.813
+ 46.800 48.500
+ -3138438.246 3 -2445538.810 2 23984320.460 23984319.237 23984319.347
+ 22.100 16.100
+ 06 1 1 5 59 0.0000000 0 9G 5G14G18G 1G30G 9G11G22G15
+ -11219269.548 6 -8742282.984 5 22333706.459 22333704.405 22333705.180
+ 37.500 31.300
+ -15604022.057 7 -12158974.046 7 20773947.480 20773944.319 20773946.392
+ 44.000 44.400
+ -8012020.098 6 -6243131.730 5 22154621.043 22154618.444 22154620.404
+ 39.600 30.400
+ -5521491.082 5 -4302457.860 4 23207906.606 23207904.534 23207905.692
+ 33.400 27.900
+ -7162412.413 5 -5581097.502 3 23304538.856 23304537.248 23304538.755
+ 30.600 23.400
+ -11823255.633 6 -9212920.272 5 22422221.748 22422219.752 22422220.841
+ 36.900 31.000
+ -435022.516 4 -338978.860 2 24516982.693 24516978.821 24516981.970
+ 24.200 17.000
+ -22832455.498 7 -17791521.026 8 20373539.395 20373534.840 20373538.733
+ 46.700 48.400
+ -3021189.441 4 -2354176.169 3 24006632.512 24006631.235 24006631.397
+ 24.200 19.900
+ 06 1 1 5 59 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11266442.017 6 -8779040.735 5 22324729.289 22324727.781 22324728.473
+ 37.500 31.800
+ -15638460.888 7 -12185809.499 7 20767393.925 20767390.965 20767392.914
+ 44.100 44.700
+ -7926741.416 6 -6176680.824 4 22170849.958 22170846.389 22170848.857
+ 40.200 29.900
+ -5599376.657 5 -4363147.901 4 23193085.536 23193083.472 23193084.649
+ 33.500 27.100
+ -7255390.622 5 -5653548.011 4 23286844.683 23286844.312 23286845.279
+ 30.200 24.600
+ -11724013.318 6 -9135588.605 4 22441106.767 22441104.715 22441106.027
+ 37.200 29.900
+ -178367.816 4 -138987.852 2 24168190.759 24168190.184 24168190.013
+ 26.500 17.800
+ -485095.407 3 -377996.686 3 24507454.117 24507450.839 24507453.574
+ 23.800 22.100
+ -22812233.764 7 -17775763.832 8 20377387.498 20377383.011 20377386.881
+ 46.800 48.400
+ -2903897.735 3 -2262780.073 3 24028952.119 24028950.428 24028951.192
+ 23.000 18.600
+ 06 1 1 6 0 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11313096.069 6 -8815394.528 5 22315852.028 22315849.812 22315850.832
+ 37.800 32.000
+ -15672611.812 7 -12212420.609 7 20760895.359 20760892.063 20760894.351
+ 44.400 44.400
+ -7841138.345 6 -6109977.138 5 22187140.197 22187136.205 22187138.746
+ 39.500 30.200
+ -5677125.244 5 -4423731.206 4 23178290.468 23178288.496 23178289.532
+ 33.600 27.600
+ -7348124.101 4 -5725807.822 4 23269199.951 23269198.133 23269199.173
+ 29.900 25.300
+ -11624465.411 6 -9058018.795 4 22460050.229 22460048.060 22460049.574
+ 37.300 29.500
+ -281056.218 4 -219004.717 3 24148649.996 24148648.655 24148649.319
+ 27.600 19.300
+ -534707.033 4 -416655.047 2 24498013.849 24498009.495 24498013.228
+ 25.600 17.000
+ -22791543.146 7 -17759641.285 8 20381324.706 20381320.349 20381324.189
+ 46.800 48.300
+ -2786566.005 3 -2171352.819 3 24051279.828 24051278.412 24051278.270
+ 21.100 19.300
+ 06 1 1 6 0 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11359229.534 6 -8851342.667 5 22307072.834 22307070.922 22307071.779
+ 38.200 32.000
+ -15706474.597 7 -12238807.194 7 20754451.423 20754448.132 20754450.398
+ 44.100 44.400
+ -7755212.281 6 -6043021.787 5 22203491.179 22203487.726 22203489.872
+ 39.600 31.300
+ -5754736.544 5 -4484207.530 4 23163521.339 23163519.608 23163520.318
+ 32.800 29.000
+ -7440609.626 5 -5797874.447 4 23251600.105 23251598.540 23251599.824
+ 30.400 24.600
+ -11524614.944 6 -8980213.255 4 22479051.084 22479049.206 22479050.132
+ 36.800 29.200
+ -383584.890 4 -298897.124 3 24129139.296 24129138.344 24129138.549
+ 26.800 22.600
+ -583855.801 4 -454952.798 3 24488660.314 24488656.966 24488659.827
+ 26.800 18.600
+ -22770383.315 7 -17743153.115 8 20385351.517 20385346.929 20385350.832
+ 46.700 48.200
+ -2669197.355 3 -2079896.742 2 24073612.873 24073613.353 24073612.360
+ 21.100 17.000
+ 06 1 1 6 1 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11404840.136 6 -8886883.389 5 22298393.429 22298391.382 22298392.291
+ 38.200 32.100
+ -15740049.021 7 -12264969.087 7 20748062.487 20748059.278 20748061.452
+ 44.200 44.600
+ -7668964.727 6 -5975815.925 5 22219902.569 22219900.095 22219901.929
+ 39.300 30.800
+ -5832210.143 5 -4544576.531 4 23148778.478 23148776.767 23148777.649
+ 32.600 28.600
+ -7532843.852 5 -5869745.230 4 23234049.055 23234046.723 23234048.478
+ 30.800 24.900
+ -11424464.570 6 -8902174.003 4 22498109.761 22498106.840 22498108.526
+ 36.800 29.200
+ -485952.213 4 -378663.808 3 24109659.370 24109658.452 24109658.948
+ 28.100 22.600
+ -632540.324 3 -492888.803 3 24479396.143 24479392.663 24479395.510
+ 23.400 21.100
+ -22748753.975 7 -17726299.086 8 20389467.281 20389462.785 20389466.630
+ 46.500 48.100
+ -2551794.631 3 -1988414.208 2 24095954.112 24095953.985 24095953.443
+ 22.600 17.000
+ 06 1 1 6 1 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11449925.895 6 -8922015.130 5 22289814.010 22289811.737 22289812.751
+ 38.200 31.500
+ -15773334.870 7 -12290906.109 7 20741728.453 20741725.174 20741727.392
+ 44.200 44.700
+ -7582397.277 6 -5908360.794 5 22236375.222 22236373.293 22236375.046
+ 39.000 30.400
+ -5909545.626 5 -4604837.931 4 23134061.825 23134060.448 23134061.221
+ 33.400 29.200
+ -7624823.590 4 -5941417.722 4 23216545.215 23216543.519 23216544.896
+ 29.700 25.600
+ -11324017.348 6 -8823903.427 4 22517223.590 22517221.348 22517222.856
+ 36.900 28.600
+ -588156.527 4 -458303.485 3 24090210.817 24090209.166 24090210.031
+ 26.200 23.400
+ -680758.922 4 -530461.704 3 24470220.316 24470217.377 24470219.718
+ 24.900 23.800
+ -22726655.152 7 -17709079.225 8 20393672.583 20393668.068 20393671.902
+ 46.600 48.100
+ -2434360.831 4 -1896907.382 2 24118302.497 24118301.406 24118300.996
+ 24.600 17.800
+ 06 1 1 6 2 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11494484.609 6 -8956736.198 5 22281334.410 22281332.414 22281333.544
+ 38.700 31.500
+ -15806331.970 7 -12316618.135 7 20735449.093 20735445.973 20735448.121
+ 44.100 44.700
+ -7495510.487 6 -5840656.810 5 22252909.432 22252907.385 22252909.099
+ 39.300 30.100
+ -5986742.656 5 -4664991.433 5 23119372.175 23119370.416 23119371.108
+ 33.000 30.800
+ -7716545.674 4 -6012889.418 3 23199089.731 23199089.452 23199090.160
+ 29.700 23.800
+ -11223275.902 6 -8745403.615 4 22536394.002 22536391.574 22536393.296
+ 36.700 27.900
+ -690196.180 4 -537814.821 3 24070792.272 24070791.683 24070791.964
+ 24.600 22.600
+ -728509.893 4 -567670.245 2 24461133.117 24461130.189 24461132.482
+ 24.600 17.800
+ -22704086.422 7 -17691493.207 8 20397967.438 20397962.733 20397966.767
+ 46.900 48.100
+ -2316898.671 3 -1805378.472 2 24140654.028 24140653.729 24140652.660
+ 22.600 17.800
+ 06 1 1 6 2 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11538514.089 6 -8991044.875 5 22272956.648 22272953.994 22272955.331
+ 38.900 32.000
+ -15839040.015 7 -12342104.925 7 20729224.827 20729221.865 20729223.865
+ 43.900 44.600
+ -7408306.168 6 -5772705.420 4 22269504.864 22269501.557 22269503.741
+ 38.600 29.200
+ -6063800.846 5 -4725036.734 5 23104708.098 23104706.581 23104707.285
+ 33.100 31.000
+ -7808006.653 4 -6084157.693 4 23181686.928 23181684.840 23181686.024
+ 29.900 24.900
+ -11122243.751 6 -8666677.259 4 22555619.575 22555617.551 22555618.703
+ 36.200 28.400
+ -792069.424 3 -617196.496 3 24051406.597 24051406.091 24051406.073
+ 19.900 22.600
+ -775792.467 3 -604513.826 3 24452135.980 24452132.832 24452135.372
+ 23.800 19.300
+ -22681047.738 7 -17673540.983 7 20402351.431 20402346.928 20402350.807
+ 46.800 47.900
+ -2199411.220 3 -1713829.890 3 24163010.614 24163011.115 24163009.368
+ 20.500 20.500
+ 06 1 1 6 3 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11582012.354 6 -9024939.614 5 22264678.768 22264676.519 22264677.677
+ 38.600 32.100
+ -15871458.929 7 -12367366.412 7 20723055.738 20723052.700 20723054.813
+ 43.900 44.700
+ -7320785.473 6 -5704507.501 4 22286160.172 22286156.340 22286158.516
+ 38.100 29.500
+ -6140719.814 5 -4784973.578 5 23090070.605 23090069.487 23090069.780
+ 32.700 30.400
+ -7899203.567 5 -6155220.213 4 23164331.678 23164330.496 23164331.944
+ 31.300 24.200
+ -11020923.505 6 -8587726.407 4 22574900.568 22574897.755 22574899.836
+ 36.500 26.800
+ -893774.823 3 -696447.367 3 24032053.070 24032051.738 24032052.281
+ 21.600 21.600
+ -822605.344 3 -640991.338 3 24443228.600 24443224.614 24443227.781
+ 23.800 18.600
+ -22657538.752 7 -17655222.300 8 20406824.957 20406820.642 20406824.354
+ 46.600 48.000
+ -2081901.475 4 -1622263.931 3 24185372.984 24185372.999 24185371.809
+ 24.600 21.600
+ 06 1 1 6 3 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11624977.246 6 -9058418.741 5 22256502.893 22256500.495 22256501.428
+ 38.000 32.000
+ -15903588.282 7 -12392402.272 7 20716941.832 20716938.708 20716940.791
+ 43.600 44.800
+ -7232949.652 6 -5636064.035 4 22302875.096 22302870.674 22302873.190
+ 37.600 28.800
+ -6217499.124 5 -4844801.574 5 23075460.112 23075458.889 23075459.212
+ 33.400 31.300
+ -7990133.054 5 -6226074.339 4 23147029.002 23147027.278 23147028.410
+ 30.100 25.300
+ -10919318.020 6 -8508553.322 4 22594235.491 22594233.027 22594234.686
+ 36.400 28.600
+ -995310.650 3 -775566.127 3 24012730.845 24012730.258 24012730.141
+ 23.400 19.900
+ -868946.911 4 -677101.656 2 24434409.425 24434406.068 24434408.781
+ 24.900 16.100
+ -22633559.495 7 -17636537.182 7 20411388.033 20411383.693 20411387.480
+ 46.700 47.900
+ -1964372.371 3 -1530682.881 2 24207736.805 24207737.346 24207735.828
+ 21.600 16.100
+ 06 1 1 6 4 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11667406.753 6 -9091480.677 5 22248428.759 22248426.561 22248427.834
+ 39.100 31.600
+ -15935427.670 7 -12417212.184 7 20710882.959 20710879.900 20710881.910
+ 43.800 44.900
+ -7144800.199 6 -5567376.178 4 22319648.894 22319644.985 22319647.379
+ 37.800 29.000
+ -6294138.374 5 -4904520.438 5 23060876.635 23060874.934 23060875.695
+ 34.000 31.100
+ -8080791.846 5 -6296717.518 4 23129776.410 23129775.979 23129776.802
+ 31.300 27.100
+ -10817429.864 5 -8429159.944 4 22613623.883 22613621.772 22613623.007
+ 35.800 28.800
+ -1096675.265 4 -854551.498 2 23993442.246 23993440.793 23993441.634
+ 27.100 17.000
+ -914815.907 3 -712843.747 2 24425680.484 24425677.448 24425679.640
+ 19.900 17.800
+ -22609109.670 7 -17617485.358 7 20416040.767 20416036.298 20416040.157
+ 46.700 47.900
+ -1846826.747 3 -1439088.951 2 24230106.042 24230105.581 24230104.618
+ 20.500 16.100
+ 06 1 1 6 4 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11709298.834 6 -9124123.857 5 22240457.257 22240454.530 22240456.005
+ 38.900 31.500
+ -15966977.144 7 -12441796.186 7 20704879.331 20704876.158 20704878.389
+ 43.900 44.800
+ -7056338.661 6 -5498445.135 4 22336481.092 22336479.085 22336480.813
+ 38.200 29.900
+ -6370637.079 5 -4964129.806 4 23046319.425 23046317.389 23046318.369
+ 33.200 27.900
+ -8171176.675 5 -6367147.203 4 23112578.021 23112576.097 23112577.318
+ 30.800 26.800
+ -10715262.274 5 -8349548.835 4 22633065.954 22633063.368 22633065.080
+ 35.900 28.100
+ -1197867.033 4 -933402.169 2 23974186.854 23974184.898 23974185.970
+ 28.600 15.100
+ -960211.002 3 -748216.531 2 24417042.751 24417038.701 24417042.129
+ 21.600 12.600
+ -22584189.127 7 -17598066.745 7 20420783.021 20420778.515 20420782.401
+ 46.800 47.800
+ -1729267.404 3 -1347484.327 2 24252477.205 24252475.836 24252475.746
+ 19.900 15.100
+ 06 1 1 6 5 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11750651.515 6 -9156346.711 5 22232587.455 22232585.347 22232586.419
+ 38.200 31.300
+ -15998236.623 7 -12466154.221 7 20698930.899 20698927.739 20698929.951
+ 43.800 45.000
+ -6967566.058 6 -5429271.700 5 22353374.088 22353372.011 22353373.606
+ 37.800 30.100
+ -6446994.925 5 -5023629.415 4 23031788.426 23031786.528 23031787.593
+ 33.000 27.100
+ -8261284.396 5 -6437360.976 4 23095430.979 23095429.292 23095430.168
+ 30.400 28.400
+ -10612818.257 5 -8269722.326 4 22652560.480 22652557.925 22652559.557
+ 35.800 27.600
+ -1298884.407 4 -1012116.952 2 23954963.165 23954961.630 23954962.668
+ 28.800 17.000
+ -1005130.770 3 -783218.947 2 24408494.026 24408491.072 24408493.368
+ 22.600 17.000
+ -22558797.911 7 -17578281.403 7 20425614.749 20425610.287 20425614.259
+ 46.700 47.700
+ -1611697.362 3 -1255871.403 2 24274849.942 24274849.311 24274848.641
+ 23.000 17.000
+ 06 1 1 6 5 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11791462.742 6 -9188147.662 5 22224821.387 22224819.415 22224820.123
+ 38.400 32.000
+ -16029205.686 7 -12490285.958 7 20693037.553 20693034.579 20693036.632
+ 43.800 45.200
+ -6878483.855 6 -5359857.028 4 22370326.906 22370324.061 22370325.904
+ 38.100 29.500
+ -6523211.536 5 -5083018.973 4 23017285.735 23017283.073 23017284.668
+ 34.400 27.900
+ -8351111.847 5 -6507356.334 4 23078335.353 23078335.668 23078336.237
+ 32.100 27.400
+ -10510100.447 5 -8189682.485 4 22672106.511 22672104.682 22672105.773
+ 34.900 28.600
+ -1399725.694 4 -1090694.548 2 23935774.037 23935772.545 23935773.217
+ 28.800 16.100
+ -1049573.776 3 -817849.862 2 24400036.308 24400033.528 24400035.548
+ 19.300 12.600
+ -22532935.861 7 -17558129.166 7 20430536.310 20430531.666 20430535.670
+ 46.600 47.600
+ -1494119.633 3 -1164252.440 2 24297223.939 24297223.351 24297222.798
+ 18.600 15.100
+ 06 1 1 6 6 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11831730.712 6 -9219525.283 5 22217158.881 22217157.020 22217157.688
+ 38.900 33.200
+ -16059884.021 7 -12514191.157 7 20687199.812 20687196.564 20687198.819
+ 43.900 45.000
+ -6789093.591 6 -5290202.309 4 22387337.835 22387333.990 22387336.334
+ 37.700 29.200
+ -6599286.500 5 -5142298.154 5 23002808.989 23002806.977 23002808.161
+ 35.500 30.200
+ -8440655.660 5 -6577130.721 4 23061297.548 23061295.903 23061297.050
+ 31.800 26.500
+ -10407111.844 5 -8109431.640 4 22691705.352 22691702.542 22691704.300
+ 35.600 27.100
+ -1500389.276 4 -1169133.701 2 23916617.724 23916616.754 23916617.062
+ 27.100 17.800
+ -1093539.178 4 -852108.596 1 24391671.368 24391667.479 24391670.720
+ 25.300 9.000
+ -22506602.772 7 -17537609.900 7 20435547.286 20435542.741 20435546.713
+ 46.700 47.500
+ -1376537.025 3 -1072629.715 3 24319599.176 24319598.856 24319598.019
+ 23.400 18.600
+ 06 1 1 6 6 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11871453.296 6 -9250477.939 5 22209599.433 22209598.032 22209598.539
+ 39.000 33.000
+ -16090271.643 7 -12537869.820 7 20681417.035 20681413.982 20681416.093
+ 43.800 45.000
+ -6699397.138 6 -5220308.988 4 22404406.573 22404402.949 22404404.933
+ 37.600 29.500
+ -6675219.517 5 -5201466.712 5 22988358.939 22988357.340 22988357.945
+ 33.600 31.100
+ -8529912.711 5 -6646681.642 4 23044311.428 23044310.567 23044311.565
+ 31.500 26.800
+ -10303854.963 5 -8028971.728 4 22711353.783 22711351.964 22711353.081
+ 34.100 28.100
+ -1600873.671 4 -1247433.186 3 23897495.972 23897495.544 23897495.552
+ 28.100 19.300
+ -1137025.565 2 -885994.085 1 24383395.147 24383392.635 24383394.488
+ 15.100 11.000
+ -22479798.508 7 -17516723.487 7 20440648.056 20440643.467 20440647.435
+ 46.800 47.500
+ -1258952.168 3 -981005.219 3 24341974.772 24341974.631 24341974.078
+ 21.600 18.600
+ 06 1 1 6 7 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11910628.543 6 -9281004.083 5 22202144.988 22202143.051 22202143.804
+ 38.800 32.800
+ -16120368.365 7 -12561321.810 7 20675689.975 20675686.773 20675689.033
+ 43.800 44.900
+ -6609395.423 6 -5150177.829 4 22421533.076 22421529.588 22421531.580
+ 37.700 29.700
+ -6751010.159 5 -5260524.317 4 22973936.349 22973934.631 22973935.490
+ 34.100 29.700
+ -8618879.690 5 -6716006.532 4 23027383.587 23027380.691 23027382.325
+ 31.000 26.800
+ -10200332.996 5 -7948305.265 4 22731053.900 22731051.265 22731052.933
+ 35.300 28.600
+ -1701177.225 4 -1325591.747 3 23878409.119 23878408.397 23878408.469
+ 26.800 22.100
+ -1180031.681 3 -919505.339 1 24375211.490 24375208.235 24375210.919
+ 22.600 6.500
+ -22452523.099 7 -17495469.926 7 20445838.475 20445833.775 20445837.790
+ 46.700 47.400
+ -1141368.026 3 -889381.277 3 24364350.658 24364350.267 24364349.994
+ 21.600 19.300
+ 06 1 1 6 7 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11949254.642 6 -9311102.334 5 22194794.461 22194792.542 22194793.618
+ 38.900 32.600
+ -16150173.479 7 -12584546.580 7 20670018.444 20670015.058 20670017.370
+ 43.600 45.200
+ -6519089.809 6 -5079809.845 4 22438716.910 22438714.117 22438716.162
+ 37.200 28.800
+ -6826658.015 5 -5319470.697 4 22959541.430 22959538.932 22959540.501
+ 35.100 29.000
+ -8707553.358 5 -6785102.877 4 23010508.016 23010506.246 23010507.947
+ 31.500 25.900
+ -10096548.825 6 -7867434.495 4 22750803.776 22750800.819 22750802.742
+ 36.300 27.600
+ -1801298.339 4 -1403608.162 3 23859356.537 23859355.565 23859355.987
+ 25.600 21.600
+ -1222556.229 4 -952641.405 9 24367119.991 24367116.186 24367119.475
+ 25.300 -3.000
+ -22424776.750 7 -17473849.385 7 20451118.205 20451113.709 20451117.688
+ 46.600 47.200
+ -1023787.323 3 -797760.036 1 24386724.918 24386724.822 24386723.944
+ 18.600 11.000
+ 06 1 1 6 8 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -11987329.688 6 -9340771.192 5 22187549.780 22187546.851 22187548.268
+ 39.100 32.100
+ -16179687.085 7 -12607544.194 7 20664402.229 20664398.922 20664401.110
+ 43.700 45.300
+ -6428481.858 6 -5009206.278 4 22455958.319 22455956.318 22455958.368
+ 37.200 28.600
+ -6902162.650 5 -5378305.478 4 22945172.980 22945171.110 22945172.108
+ 35.400 29.900
+ -8795930.738 5 -6853968.324 4 22993691.173 22993688.870 22993690.576
+ 31.800 27.100
+ -9992505.252 5 -7786361.570 4 22770601.287 22770599.901 22770600.804
+ 35.100 27.600
+ -1901235.435 4 -1481481.159 3 23840338.984 23840338.057 23840338.355
+ 24.900 21.600
+ -1264598.214 3 -985401.408 2 24359119.985 24359116.237 24359119.169
+ 23.000 13.900
+ -22396559.065 7 -17451861.576 7 20456487.831 20456483.401 20456487.281
+ 46.600 47.200
+ 06 1 1 6 8 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12024851.844 6 -9370009.231 5 22180409.138 22180406.877 22180407.952
+ 39.200 32.100
+ -16208909.118 7 -12630314.604 7 20658841.142 20658838.223 20658840.260
+ 43.900 45.500
+ -6337573.221 6 -4938368.401 4 22473258.658 22473255.701 22473257.531
+ 36.300 27.900
+ -6977523.621 5 -5437028.287 5 22930832.490 22930830.961 22930831.529
+ 34.000 32.100
+ -8884008.443 5 -6922600.290 4 22976929.302 22976928.242 22976929.428
+ 31.500 26.500
+ -9888205.062 5 -7705088.698 4 22790450.083 22790447.823 22790449.266
+ 35.800 29.200
+ -2000987.016 4 -1559209.617 3 23821357.140 23821356.109 23821356.221
+ 24.900 22.100
+ -1306156.155 4 -1017784.214 1 24351211.277 24351207.781 24351210.717
+ 27.600 11.000
+ -22367870.027 7 -17429506.485 7 20461947.015 20461942.753 20461946.480
+ 46.400 47.100
+ 06 1 1 6 9 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12061819.262 6 -9398815.011 5 22173374.220 22173372.073 22173373.111
+ 39.400 31.800
+ -16237839.146 7 -12652857.486 7 20653336.195 20653332.977 20653335.121
+ 43.800 45.500
+ -6246364.807 6 -4867296.946 4 22490615.544 22490611.943 22490613.986
+ 36.500 27.400
+ -7052740.480 5 -5495638.788 5 22916519.209 22916517.650 22916518.387
+ 35.500 32.300
+ -8971783.208 5 -6990996.150 4 22960226.657 22960225.090 22960226.420
+ 31.600 24.200
+ -9783651.082 5 -7623618.080 4 22810345.750 22810343.275 22810345.117
+ 35.900 27.400
+ -2100551.381 4 -1636792.161 4 23802410.275 23802409.830 23802409.932
+ 24.200 24.600
+ -1347229.124 4 -1049789.162 24343394.988 24343392.679 24343394.391
+ 24.200 3.000
+ -22338709.558 7 -17406784.046 7 20467496.345 20467491.759 20467495.686
+ 46.400 47.100
+ 06 1 1 6 9 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12098230.100 6 -9427187.089 5 22166445.672 22166443.137 22166444.277
+ 38.600 31.100
+ -16266477.086 7 -12675172.762 7 20647886.463 20647883.318 20647885.531
+ 43.800 45.500
+ -6154858.293 6 -4795993.207 4 22508029.491 22508025.232 22508027.591
+ 37.000 27.600
+ -7127812.917 5 -5554136.780 5 22902233.425 22902231.315 22902232.468
+ 35.600 30.400
+ -9059251.867 5 -7059153.544 4 22943582.607 22943579.981 22943581.622
+ 31.300 25.300
+ -9678846.214 5 -7541951.950 4 22830289.616 22830287.096 22830288.631
+ 34.800 26.200
+ -2199927.065 4 -1714227.702 4 23783499.757 23783499.197 23783498.936
+ 25.900 25.300
+ -1387816.061 4 -1081415.327 2 24335672.210 24335668.618 24335671.368
+ 27.400 17.000
+ -22309077.908 7 -17383694.452 7 20473134.913 20473130.542 20473134.359
+ 46.400 47.000
+ 06 1 1 6 10 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12134082.651 6 -9455124.132 5 22159622.539 22159620.495 22159621.659
+ 38.600 31.100
+ -16294822.267 7 -12697259.917 7 20642492.651 20642489.469 20642491.728
+ 44.000 45.700
+ -6063055.257 6 -4724458.414 4 22525498.534 22525494.836 22525497.033
+ 36.500 28.100
+ -7202740.425 5 -5612521.844 4 22887974.466 22887972.522 22887973.721
+ 34.500 29.500
+ -9146411.299 5 -7127069.940 4 22926994.699 22926994.326 22926995.570
+ 32.600 25.900
+ -9573793.348 5 -7460092.562 4 22850280.811 22850278.088 22850279.731
+ 34.600 26.200
+ -2299112.432 4 -1791514.933 3 23764625.580 23764624.678 23764624.706
+ 27.100 23.000
+ -1427915.510 4 -1112661.623 2 24328041.404 24328037.661 24328040.763
+ 25.300 13.900
+ -22278975.204 7 -17360237.819 7 20478863.190 20478859.001 20478862.731
+ 46.400 46.900
+ 06 1 1 6 10 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12169374.988 6 -9482624.656 5 22152907.261 22152904.680 22152905.939
+ 39.100 32.000
+ -16322875.143 7 -12719119.300 7 20637154.162 20637151.144 20637153.253
+ 43.800 45.600
+ -5970957.464 6 -4652693.927 4 22543023.314 22543020.205 22543022.419
+ 36.200 27.400
+ -7277522.600 5 -5670793.660 5 22873744.042 22873742.545 22873743.035
+ 34.000 30.800
+ -9233258.214 5 -7194742.843 4 22910470.618 22910467.646 22910469.680
+ 32.400 26.500
+ -9468495.317 5 -7378042.153 4 22870318.008 22870315.221 22870316.975
+ 34.100 26.200
+ -2398105.980 4 -1868652.731 3 23745788.103 23745786.748 23745787.289
+ 29.000 23.800
+ -1467526.613 4 -1143527.453 3 24320503.238 24320500.584 24320502.771
+ 25.900 20.500
+ -22248401.161 7 -17336413.912 7 20484681.281 20484677.026 20484680.824
+ 46.400 47.000
+ 06 1 1 6 11 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12204105.401 6 -9509687.300 5 22146297.878 22146295.943 22146296.985
+ 39.100 32.600
+ -16350635.152 7 -12740750.477 7 20631871.819 20631868.637 20631870.789
+ 43.700 45.700
+ -5878566.061 5 -4580700.662 4 22560604.452 22560602.171 22560603.688
+ 35.500 27.900
+ -7352159.101 6 -5728951.944 5 22859541.515 22859540.112 22859540.711
+ 36.300 32.300
+ -9319789.518 5 -7262169.793 4 22894002.595 22894001.625 22894003.207
+ 33.200 27.600
+ -9362954.760 5 -7295802.754 4 22890401.891 22890399.393 22890400.824
+ 34.500 25.900
+ -2496906.136 4 -1945639.835 3 23726986.702 23726985.618 23726986.147
+ 28.100 22.100
+ -1506648.266 4 -1174011.860 3 24313058.834 24313055.731 24313058.186
+ 25.300 23.800
+ -22217356.115 7 -17312222.972 7 20490588.939 20490584.619 20490588.481
+ 46.500 46.700
+ 06 1 1 6 11 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12238272.284 6 -9536310.832 5 22139796.159 22139794.288 22139795.173
+ 39.200 32.600
+ -16378102.033 7 -12762153.242 7 20626645.173 20626641.856 20626644.064
+ 43.800 45.600
+ -5785882.532 6 -4508479.756 4 22578241.685 22578239.154 22578241.194
+ 36.300 27.600
+ -7426649.459 5 -5786996.357 5 22845366.508 22845364.685 22845365.390
+ 34.900 32.400
+ -9406001.955 5 -7329348.267 4 22877598.278 22877596.308 22877597.639
+ 34.100 28.600
+ -9257174.307 5 -7213376.440 4 22910531.153 22910528.836 22910530.328
+ 34.400 26.500
+ -2595511.271 4 -2022474.990 3 23708222.637 23708221.366 23708221.900
+ 27.600 20.500
+ -1545279.183 4 -1204113.845 3 24305708.085 24305704.394 24305707.135
+ 27.100 23.800
+ -22185839.884 7 -17287664.881 7 20496586.290 20496581.983 20496585.864
+ 46.200 46.600
+ 06 1 1 6 12 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12271873.792 6 -9562493.817 5 22133402.554 22133400.264 22133401.324
+ 39.400 32.600
+ -16405275.508 7 -12783327.375 7 20621474.136 20621470.868 20621473.007
+ 43.400 45.800
+ -5692908.367 6 -4436032.379 4 22595933.987 22595931.565 22595933.377
+ 36.500 27.600
+ -7500993.315 5 -5844926.617 5 22831219.338 22831217.239 22831218.377
+ 35.300 30.400
+ -9491892.378 5 -7396275.863 4 22861252.961 22861251.792 22861253.114
+ 33.500 28.400
+ -9151157.085 5 -7130765.604 4 22930705.363 22930702.658 22930704.350
+ 33.100 24.900
+ -2693919.993 4 -2099157.071 2 23689495.981 23689494.305 23689495.395
+ 29.000 17.000
+ -1583418.514 4 -1233832.749 3 24298449.828 24298446.370 24298449.140
+ 26.500 23.800
+ -22153852.632 7 -17262739.765 7 20502673.411 20502668.932 20502672.863
+ 46.300 46.500
+ 06 1 1 6 12 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12304908.291 6 -9588234.980 5 22127115.673 22127113.967 22127114.983
+ 39.800 33.200
+ -16432155.409 7 -12804272.750 7 20616358.882 20616355.720 20616357.891
+ 43.500 45.800
+ -5599645.114 5 -4363359.753 4 22613682.044 22613679.049 22613680.741
+ 35.900 28.100
+ -7575190.168 5 -5902742.340 5 22817099.964 22817098.212 22817099.229
+ 35.500 31.000
+ -9577457.632 5 -7462950.021 4 22844970.019 22844969.043 22844970.332
+ 33.000 27.900
+ -9044906.001 5 -7047972.565 4 22950924.271 22950921.897 22950923.070
+ 33.400 26.500
+ -2792130.734 4 -2175684.906 2 23670807.363 23670805.379 23670806.837
+ 28.400 16.100
+ -1621065.123 4 -1263167.794 3 24291285.895 24291282.856 24291285.368
+ 25.900 23.000
+ -22121394.380 7 -17237447.625 7 20508850.122 20508845.513 20508849.457
+ 46.200 46.300
+ 06 1 1 6 13 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12337374.103 6 -9613533.000 5 22120938.065 22120935.735 22120936.743
+ 39.400 33.100
+ -16458741.535 7 -12824989.212 7 20611299.935 20611296.562 20611298.757
+ 43.400 45.900
+ -5506094.259 5 -4290463.005 4 22631484.615 22631481.366 22631482.999
+ 34.900 27.900
+ -7649239.684 5 -5960443.249 5 22803008.817 22803007.530 22803007.892
+ 35.200 32.400
+ -9662694.468 5 -7529368.325 4 22828751.473 22828748.916 22828750.889
+ 33.400 27.900
+ -8938423.784 5 -6964999.423 4 22971187.173 22971184.592 22971186.705
+ 34.800 24.200
+ -2890141.945 4 -2252057.241 3 23652156.390 23652155.063 23652155.620
+ 28.100 20.500
+ -1658218.283 4 -1292118.291 4 24284216.189 24284213.118 24284215.551
+ 25.900 24.600
+ -22088465.519 7 -17211788.774 7 20515116.589 20515111.713 20515115.722
+ 46.100 46.300
+ 06 1 1 6 13 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12369269.674 6 -9638386.683 5 22114868.156 22114866.195 22114867.209
+ 40.000 33.100
+ -16485033.747 7 -12845476.649 7 20606296.370 20606293.353 20606295.454
+ 43.400 45.900
+ -5412257.386 5 -4217343.399 4 22649341.142 22649337.645 22649339.430
+ 34.500 26.500
+ -7723141.508 5 -6018029.047 5 22788945.644 22788944.299 22788944.692
+ 35.500 32.100
+ -9747599.897 5 -7595528.344 4 22812592.551 22812591.894 22812593.132
+ 33.600 27.100
+ -8831713.240 5 -6881848.345 4 22991492.923 22991491.418 22991492.250
+ 32.300 26.200
+ -2987952.091 4 -2328272.883 3 23633543.793 23633542.225 23633543.126
+ 29.900 22.100
+ -1694876.456 3 -1320683.109 3 24277239.494 24277236.841 24277238.923
+ 21.100 23.800
+ -22055065.855 7 -17185763.069 7 20521472.131 20521467.454 20521471.360
+ 46.200 46.200
+ 06 1 1 6 14 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12400593.347 6 -9662794.730 5 22108907.783 22108905.563 22108906.817
+ 40.000 32.400
+ -16511031.701 7 -12865734.793 7 20601348.979 20601346.048 20601348.111
+ 43.200 45.900
+ -5318136.045 5 -4144002.118 4 22667252.078 22667248.549 22667250.534
+ 35.400 27.400
+ -7796895.179 6 -6075499.440 5 22774910.901 22774909.128 22774910.077
+ 36.000 30.800
+ -9832170.502 5 -7661427.498 4 22796501.348 22796498.765 22796500.479
+ 33.500 28.100
+ -8724776.876 5 -6798521.313 4 23011842.497 23011840.394 23011841.793
+ 32.800 24.900
+ -3085559.553 4 -2404330.618 3 23614969.080 23614968.250 23614968.618
+ 28.100 23.000
+ -1731039.034 3 -1348861.738 4 24270358.264 24270355.496 24270357.481
+ 21.600 24.200
+ -22021195.623 7 -17159370.689 7 20527917.231 20527912.790 20527916.543
+ 46.000 46.100
+ 06 1 1 6 14 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12431343.521 6 -9686755.892 5 22103056.618 22103053.962 22103055.137
+ 39.500 32.800
+ -16536734.957 7 -12885763.305 7 20596458.067 20596454.830 20596457.027
+ 43.400 45.800
+ -5223731.941 5 -4070440.529 4 22685215.281 22685212.936 22685214.823
+ 35.500 25.900
+ -7870500.271 6 -6132854.053 5 22760904.457 22760902.489 22760903.543
+ 36.300 31.000
+ -9916403.295 5 -7727063.399 4 22780470.612 22780470.014 22780471.056
+ 33.600 28.800
+ -8617617.625 5 -6715020.610 4 23032234.221 23032232.569 23032233.714
+ 34.700 26.800
+ -3182963.050 4 -2480229.410 3 23596434.285 23596432.699 23596433.384
+ 26.200 23.000
+ -1766704.873 3 -1376653.308 4 24263572.074 24263568.763 24263571.131
+ 23.800 24.200
+ -21986855.014 7 -17132611.788 7 20534452.256 20534447.573 20534451.451
+ 46.100 46.100
+ 06 1 1 6 15 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12461518.586 6 -9710268.919 5 22097313.504 22097311.642 22097312.741
+ 39.500 32.100
+ -16562143.664 7 -12905562.299 7 20591623.027 20591619.660 20591621.973
+ 43.600 45.700
+ -5129046.062 5 -3996659.340 4 22703232.737 22703230.875 22703233.165
+ 34.800 24.200
+ -7943956.361 5 -6190092.553 5 22746926.182 22746924.686 22746925.136
+ 35.500 32.600
+ -10000295.078 5 -7792433.580 4 22764508.003 22764505.761 22764507.175
+ 33.500 28.600
+ -8510237.918 5 -6631348.083 4 23052667.835 23052665.940 23052667.240
+ 33.400 25.300
+ -3280160.938 4 -2555967.941 3 23577937.507 23577936.571 23577937.209
+ 25.600 22.600
+ -1801873.151 4 -1404057.125 3 24256879.276 24256875.926 24256878.803
+ 24.600 21.600
+ -21952044.239 7 -17105486.527 7 20541076.603 20541071.900 20541075.793
+ 46.100 46.000
+ 06 1 1 6 15 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12491116.995 6 -9733332.605 5 22091681.448 22091679.303 22091680.418
+ 39.400 32.600
+ -16587257.390 7 -12925131.437 7 20586844.045 20586840.689 20586843.098
+ 43.500 45.900
+ -5034080.321 5 -3922660.090 4 22721304.255 22721302.647 22721304.265
+ 34.100 26.200
+ -8017263.054 6 -6247214.637 5 22732976.080 22732974.590 22732975.349
+ 36.800 32.100
+ -10083842.884 5 -7857535.736 4 22748608.116 22748607.079 22748608.366
+ 34.300 28.600
+ -8402640.940 5 -6547506.311 4 23073142.732 23073141.260 23073142.036
+ 32.400 26.200
+ -3377151.692 4 -2631545.111 3 23559481.005 23559479.584 23559480.489
+ 25.900 19.900
+ -1836542.980 4 -1431072.558 4 24250282.282 24250278.759 24250281.398
+ 24.600 24.600
+ -21916763.724 7 -17077995.235 7 20547790.208 20547785.550 20547789.409
+ 46.000 46.100
+ 06 1 1 6 16 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12520137.290 6 -9755945.810 5 22086159.466 22086156.903 22086158.096
+ 39.700 32.800
+ -16612076.023 7 -12944470.628 7 20582121.049 20582117.910 20582120.062
+ 43.600 45.900
+ -4938836.274 5 -3848444.005 4 22739429.224 22739427.131 22739428.499
+ 33.900 26.200
+ -8090419.961 5 -6304220.005 5 22719054.527 22719053.575 22719053.834
+ 35.900 33.500
+ -10167043.434 5 -7922367.311 4 22732776.532 22732774.307 22732775.815
+ 33.900 28.600
+ -8294829.088 5 -6463497.084 4 23093660.023 23093657.222 23093658.939
+ 34.500 25.600
+ -3473933.966 4 -2706959.841 3 23541064.003 23541062.435 23541063.460
+ 29.000 22.600
+ -1870713.473 3 -1457698.872 3 24243779.457 24243776.188 24243779.021
+ 23.400 22.600
+ -21881012.834 7 -17050137.422 7 20554593.661 20554588.767 20554592.783
+ 46.100 45.900
+ 06 1 1 6 16 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12548577.903 6 -9778107.322 5 22080746.974 22080744.643 22080746.090
+ 39.900 32.800
+ -16636599.226 7 -12963579.615 7 20577454.584 20577451.324 20577453.553
+ 43.500 45.900
+ -4843315.335 5 -3774012.155 4 22757607.284 22757604.116 22757605.784
+ 34.100 27.400
+ -8163426.655 6 -6361108.310 5 22705162.212 22705160.751 22705161.420
+ 36.300 33.500
+ -10249893.520 5 -7986925.780 4 22717009.944 22717008.573 22717009.882
+ 34.100 28.800
+ -8186805.825 5 -6379323.118 4 23114215.029 23114213.025 23114214.294
+ 32.400 24.200
+ -3570506.203 5 -2782210.900 3 23522687.289 23522685.682 23522686.636
+ 30.600 23.800
+ -1904383.515 3 -1483935.268 3 24237371.972 24237368.656 24237371.339
+ 21.600 20.500
+ -21844792.537 7 -17021913.831 7 20561485.875 20561481.273 20561485.127
+ 46.100 45.800
+ 06 1 1 6 17 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12576437.450 6 -9799816.060 5 22075445.462 22075443.243 22075444.362
+ 39.800 32.600
+ -16660826.920 7 -12982458.339 7 20572844.238 20572840.843 20572843.277
+ 43.500 45.800
+ -4747519.468 5 -3699366.068 4 22775837.903 22775833.394 22775835.705
+ 34.500 25.900
+ -8236282.698 6 -6417879.243 5 22691298.425 22691296.685 22691297.622
+ 37.100 33.200
+ -10332390.038 5 -8051208.759 4 22701311.779 22701309.958 22701311.316
+ 33.900 28.800
+ -8078573.145 5 -6294985.943 4 23134810.435 23134808.914 23134809.790
+ 32.000 25.300
+ -3666866.813 4 -2857297.084 3 23504350.360 23504348.872 23504349.702
+ 29.900 22.600
+ -1937552.472 3 -1509781.219 3 24231060.097 24231057.334 24231059.435
+ 21.600 23.400
+ -21808102.988 7 -16993324.575 7 20568467.810 20568463.108 20568466.983
+ 46.000 45.800
+ 06 1 1 6 17 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12603714.360 6 -9821070.776 5 22070254.968 22070252.984 22070253.963
+ 40.100 33.200
+ -16684758.648 7 -13001106.443 7 20568290.002 20568286.838 20568289.161
+ 43.500 46.000
+ -4651449.941 5 -3624506.762 4 22794118.149 22794114.978 22794116.731
+ 34.400 26.500
+ -8308987.644 6 -6474532.434 5 22677463.316 22677461.082 22677462.144
+ 36.200 33.000
+ -10414529.954 5 -8115213.863 4 22685681.032 22685679.412 22685680.640
+ 34.100 29.000
+ -7970134.000 5 -6210487.928 4 23155446.808 23155444.697 23155445.807
+ 33.600 25.600
+ -3763014.504 5 -2932217.322 4 23486053.959 23486052.583 23486053.410
+ 31.000 26.200
+ -1970219.293 3 -1535235.892 3 24224843.842 24224840.614 24224843.090
+ 19.300 21.600
+ -21770943.987 7 -16964369.514 7 20575538.932 20575534.141 20575538.116
+ 46.000 45.600
+ 06 1 1 6 18 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12630407.330 6 -9841870.480 5 22065175.272 22065173.315 22065174.485
+ 40.400 33.000
+ -16708394.430 7 -13019523.935 7 20563792.555 20563789.264 20563791.529
+ 43.700 46.100
+ -4555108.535 5 -3549435.563 4 22812449.586 22812448.098 22812449.798
+ 33.500 26.500
+ -8381540.961 6 -6531067.468 5 22663656.429 22663654.779 22663655.571
+ 37.000 32.800
+ -10496310.190 5 -8178938.693 4 22670117.975 22670117.140 22670117.820
+ 34.100 29.000
+ -7861491.210 5 -6125831.201 4 23176120.447 23176118.834 23176119.704
+ 31.000 27.100
+ -3858947.731 5 -3006970.462 4 23467798.703 23467797.358 23467797.890
+ 30.100 25.600
+ -2002383.285 3 -1560298.745 3 24218724.039 24218719.889 24218723.272
+ 23.800 21.600
+ -21733315.979 7 -16935048.997 7 20582699.362 20582694.502 20582698.435
+ 45.600 45.300
+ 06 1 1 6 18 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12656514.891 6 -9862214.042 5 22060207.719 22060204.941 22060206.328
+ 40.300 33.000
+ -16731733.931 7 -13037710.562 7 20559351.411 20559347.889 20559350.255
+ 43.800 46.300
+ -4458496.686 5 -3474153.632 4 22830833.428 22830832.621 22830834.707
+ 34.300 24.900
+ -8453942.310 6 -6587484.095 5 22649878.875 22649877.038 22649878.031
+ 37.200 32.600
+ -10577727.505 5 -8242380.730 4 22654624.675 22654623.597 22654624.683
+ 34.700 28.100
+ -7752647.342 5 -6041017.805 3 23196832.812 23196830.403 23196831.955
+ 31.800 23.800
+ -3954664.995 4 -3081555.308 4 23449584.382 23449582.769 23449583.527
+ 29.900 24.200
+ -2034043.610 4 -1584969.063 3 24212698.619 24212695.456 24212697.927
+ 24.200 22.600
+ -21695219.309 7 -16905363.293 7 20589948.796 20589944.041 20589947.921
+ 45.500 45.300
+ 06 1 1 6 19 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12682035.719 6 -9882100.385 5 22055350.994 22055348.758 22055349.965
+ 40.400 33.400
+ -16754776.846 7 -13055666.079 7 20554966.155 20554962.784 20554965.199
+ 43.500 46.100
+ -4361616.430 5 -3398662.554 4 22849269.629 22849268.833 22849269.945
+ 33.600 25.900
+ -8526191.213 6 -6643781.935 5 22636130.424 22636128.697 22636129.520
+ 36.600 33.100
+ -10658778.916 5 -8305537.654 4 22639201.736 22639200.101 22639201.228
+ 34.800 29.900
+ -7643605.346 5 -5956050.023 4 23217583.275 23217580.742 23217582.299
+ 31.600 25.900
+ -4050164.788 5 -3155970.708 3 23431410.786 23431409.710 23431410.415
+ 31.800 23.800
+ -2065199.556 4 -1609246.449 2 24206769.974 24206766.448 24206769.387
+ 26.800 16.100
+ -21656654.373 7 -16875312.708 7 20597287.479 20597282.772 20597286.625
+ 45.700 45.300
+ 06 1 1 6 19 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12706968.406 6 -9901528.439 5 22050606.207 22050604.418 22050605.252
+ 40.400 33.400
+ -16777523.023 7 -13073390.373 7 20550637.691 20550634.397 20550636.723
+ 43.700 46.200
+ -4264468.493 5 -3322962.933 4 22867758.739 22867755.087 22867757.070
+ 32.600 24.200
+ -8598287.243 6 -6699960.630 5 22622411.025 22622409.319 22622410.006
+ 36.500 32.600
+ -10739461.220 5 -8368406.951 4 22623848.148 22623846.541 22623847.980
+ 34.500 29.500
+ -7534367.530 5 -5870929.669 4 23238370.059 23238368.247 23238369.371
+ 32.700 25.300
+ -4145445.898 5 -3230215.697 4 23413279.641 23413278.171 23413278.892
+ 30.400 24.200
+ -2095850.122 4 -1633130.038 2 24200937.201 24200933.268 24200936.683
+ 26.200 17.000
+ -21617621.487 7 -16844897.482 7 20604715.062 20604710.559 20604714.327
+ 45.600 45.200
+ 06 1 1 6 20 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12731311.695 6 -9920497.232 5 22045974.660 22045971.857 22045973.073
+ 40.300 33.600
+ -16799972.278 7 -13090883.302 7 20546365.902 20546362.589 20546364.817
+ 43.500 46.300
+ -4167055.068 5 -3247056.423 4 22886296.411 22886292.531 22886294.324
+ 32.700 26.800
+ -8670230.034 6 -6756019.940 5 22608720.697 22608719.029 22608719.952
+ 37.300 33.100
+ -10819771.383 5 -8430986.271 4 22608566.532 22608564.085 22608565.841
+ 35.700 29.200
+ -7424936.960 5 -5785659.103 3 23259193.370 23259191.586 23259192.675
+ 30.600 21.600
+ -4240506.681 4 -3304289.023 3 23395190.334 23395188.563 23395189.236
+ 29.200 23.400
+ -2125994.636 3 -1656619.241 3 24195201.079 24195197.875 24195200.543
+ 22.600 19.300
+ -21578120.752 7 -16814117.704 7 20612232.048 20612227.299 20612231.113
+ 45.600 45.200
+ 06 1 1 6 20 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12755064.179 6 -9939005.649 5 22041453.369 22041451.954 22041452.732
+ 40.300 32.800
+ -16822124.206 7 -13108144.545 7 20542150.270 20542147.130 20542149.384
+ 43.600 46.300
+ -4069377.594 5 -3170944.161 4 22904883.007 22904880.112 22904881.775
+ 33.400 25.300
+ -8742019.020 6 -6811959.405 5 22595059.879 22595057.787 22595059.072
+ 37.400 32.700
+ -10899706.344 5 -8493273.231 4 22593354.609 22593352.952 22593354.484
+ 35.300 29.700
+ -7315316.247 5 -5700240.372 3 23280054.029 23280052.137 23280053.592
+ 32.400 23.000
+ -4335345.783 4 -3378189.596 3 23377142.456 23377140.991 23377142.040
+ 28.100 22.600
+ -2155632.656 4 -1679713.810 2 24189561.364 24189557.252 24189560.395
+ 24.600 17.000
+ -21538152.606 7 -16782973.718 7 20619837.601 20619833.024 20619836.893
+ 45.600 45.100
+ 06 1 1 6 21 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12778224.638 6 -9957052.748 5 22037047.030 22037044.541 22037045.667
+ 40.200 33.100
+ -16843978.776 7 -13125174.083 7 20537991.550 20537988.276 20537990.533
+ 43.600 46.300
+ -3971437.829 5 -3094627.515 4 22923520.139 22923517.554 22923519.181
+ 33.500 25.600
+ -8813653.877 6 -6867778.760 5 22581427.675 22581426.168 22581426.851
+ 36.900 32.700
+ -10979263.071 5 -8555265.475 4 22578215.777 22578213.928 22578215.355
+ 35.300 29.200
+ -7205507.898 5 -5614675.408 3 23300949.470 23300947.666 23300949.002
+ 32.100 22.600
+ -4429961.780 5 -3451916.309 4 23359138.252 23359136.309 23359137.371
+ 30.800 24.200
+ -2184763.072 4 -1702412.832 2 24184017.326 24184014.492 24184016.742
+ 24.200 16.100
+ -21497717.255 7 -16751465.663 7 20627532.138 20627527.636 20627531.391
+ 45.600 45.000
+ 06 1 1 6 21 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12800791.897 6 -9974637.621 5 22032752.038 22032750.066 22032751.105
+ 40.200 33.200
+ -16865535.249 7 -13141971.333 7 20533889.435 20533886.300 20533888.513
+ 43.500 46.600
+ -3873237.401 5 -3018107.728 4 22942206.235 22942204.445 22942205.912
+ 32.700 24.600
+ -8885134.297 6 -6923477.778 5 22567825.806 22567823.587 22567824.863
+ 37.500 31.600
+ -11058438.535 5 -8616960.607 4 22563148.447 22563147.356 22563148.481
+ 34.800 29.500
+ -7095514.354 5 -5528966.168 3 23321881.172 23321878.684 23321880.079
+ 31.500 23.000
+ -4524353.121 5 -3525467.984 3 23341175.837 23341174.437 23341175.190
+ 31.300 23.800
+ -2213385.355 4 -1724715.909 1 24178570.793 24178566.684 24178570.439
+ 24.900 11.000
+ -21456815.408 7 -16719594.105 7 20635315.369 20635310.999 20635314.751
+ 45.400 44.800
+ 06 1 1 6 22 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12822764.643 6 -9991759.236 5 22028571.041 22028568.814 22028569.806
+ 40.200 33.500
+ -16886794.016 7 -13158536.603 7 20529844.191 20529840.903 20529843.135
+ 43.400 46.500
+ -3774777.994 5 -2941386.158 4 22960942.653 22960940.512 22960942.033
+ 32.600 24.900
+ -8956459.763 6 -6979056.056 5 22554252.839 22554251.021 22554252.031
+ 37.600 33.100
+ -11137229.659 5 -8678356.276 4 22548156.140 22548153.551 22548155.261
+ 34.500 28.800
+ -6985338.629 5 -5443114.948 3 23342847.812 23342844.087 23342846.527
+ 31.300 22.600
+ -4618518.610 4 -3598843.635 4 23323256.539 23323254.755 23323255.909
+ 28.600 24.200
+ -2241499.060 3 -1746622.731 3 24173221.443 24173217.746 24173220.624
+ 23.800 18.600
+ -21415447.096 7 -16687359.065 7 20643187.685 20643183.121 20643186.984
+ 45.600 44.700
+ 06 1 1 6 22 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12844141.692 6 -10008416.665 5 22024503.011 22024501.089 22024501.938
+ 39.800 33.900
+ -16907754.693 7 -13174869.598 7 20525855.484 20525852.183 20525854.473
+ 43.400 46.500
+ -3676060.996 5 -2864463.845 3 22979728.498 22979725.226 22979727.627
+ 33.200 22.600
+ -9027629.810 6 -7034513.219 5 22540709.600 22540707.821 22540708.842
+ 38.100 33.200
+ -11215633.390 5 -8739450.065 4 22533235.667 22533233.856 22533235.479
+ 35.200 29.500
+ -6874983.337 5 -5357123.815 3 23363846.962 23363844.856 23363846.190
+ 31.100 23.000
+ -4712456.662 5 -3672042.087 4 23305381.318 23305379.097 23305380.536
+ 30.200 24.200
+ -2269103.152 4 -1768132.422 2 24167968.023 24167964.956 24167967.568
+ 24.200 17.000
+ -21373612.859 7 -16654760.958 7 20651148.280 20651143.824 20651147.661
+ 45.600 44.700
+ 06 1 1 6 23 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12864921.871 6 -10024609.005 5 22020549.188 22020546.737 22020547.738
+ 40.300 34.100
+ -16928416.896 7 -13190970.018 7 20521923.491 20521920.397 20521922.569
+ 43.400 46.500
+ -3577088.285 5 -2787342.318 3 22998562.425 22998559.267 22998561.123
+ 32.000 22.100
+ -9098644.130 6 -7089849.038 5 22527196.209 22527194.077 22527195.395
+ 38.400 33.500
+ -11293646.605 5 -8800239.562 4 22518391.231 22518388.503 22518390.598
+ 35.700 29.500
+ -6764450.957 5 -5270994.700 3 23384880.322 23384877.866 23384879.395
+ 31.800 21.100
+ -4806165.884 5 -3745062.226 4 23287548.955 23287547.103 23287548.117
+ 31.500 26.500
+ -2296197.066 4 -1789244.538 2 24162812.909 24162808.880 24162812.238
+ 24.600 17.000
+ -21331313.218 7 -16621800.214 7 20659198.018 20659193.280 20659197.196
+ 45.500 44.600
+ 06 1 1 6 23 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12885104.026 6 -10040335.352 5 22016708.539 22016706.066 22016707.430
+ 40.700 33.900
+ -16948780.628 7 -13206837.861 7 20518048.517 20518045.313 20518047.528
+ 43.400 46.800
+ -3477861.445 5 -2710022.741 4 23017445.268 23017441.940 23017443.962
+ 32.100 24.900
+ -9169502.092 6 -7145063.033 5 22513712.455 22513710.424 22513711.594
+ 38.600 33.900
+ -11371266.471 5 -8860722.550 5 22503619.242 22503617.777 22503619.338
+ 35.100 30.200
+ -6653744.070 5 -5184729.577 3 23405947.672 23405944.189 23405946.365
+ 30.600 20.500
+ -4899645.050 5 -3817903.109 4 23269760.177 23269758.402 23269759.549
+ 32.700 25.600
+ -2322780.407 4 -1809958.802 3 24157754.405 24157750.823 24157753.527
+ 24.900 19.900
+ -21288548.405 7 -16588476.999 7 20667335.576 20667331.164 20667334.926
+ 45.400 44.600
+ 06 1 1 6 24 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12904687.024 6 -10055594.827 5 22012981.288 22012979.630 22012980.505
+ 40.600 33.400
+ -16968845.343 7 -13222472.706 7 20514230.075 20514226.958 20514229.184
+ 43.100 46.600
+ -3378382.414 5 -2632506.668 4 23036375.318 23036372.249 23036374.198
+ 33.000 25.300
+ -9240203.204 6 -7200154.792 5 22500258.515 22500256.640 22500257.499
+ 37.700 34.300
+ -11448489.773 6 -8920896.534 4 22488925.022 22488922.702 22488924.486
+ 36.200 29.700
+ -6542865.439 5 -5098330.653 3 23427046.787 23427044.882 23427045.726
+ 30.100 23.400
+ -4992892.542 5 -3890563.473 4 23252015.570 23252014.322 23252014.874
+ 32.000 27.400
+ -2348852.285 4 -1830274.587 2 24152793.100 24152789.013 24152792.471
+ 27.600 13.900
+ -21245318.989 7 -16554791.750 7 20675561.914 20675557.488 20675561.194
+ 45.400 44.400
+ 06 1 1 6 24 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12923669.795 6 -10070386.579 5 22009369.807 22009367.406 22009368.382
+ 40.400 33.600
+ -16988610.914 7 -13237874.449 7 20510468.767 20510465.668 20510467.887
+ 42.900 46.600
+ -3278652.424 5 -2554795.059 4 23055352.416 23055350.655 23055351.669
+ 32.000 25.600
+ -9310747.019 6 -7255123.985 5 22486834.382 22486832.541 22486833.465
+ 38.400 34.600
+ -11525313.597 5 -8980759.235 4 22474304.787 22474303.557 22474304.853
+ 35.100 29.500
+ -6431817.545 5 -5011799.834 3 23448178.928 23448176.488 23448177.812
+ 31.500 23.400
+ -5085907.207 5 -3963042.387 4 23234315.402 23234314.102 23234314.734
+ 31.800 27.100
+ -2374412.440 3 -1850191.622 2 24147928.433 24147925.068 24147927.650
+ 23.000 16.100
+ -21201625.368 7 -16520744.776 7 20683876.472 20683872.020 20683875.816
+ 45.400 44.200
+ 06 1 1 6 25 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12942051.202 6 -10084709.745 5 22005871.553 22005869.503 22005870.518
+ 40.700 33.900
+ -17008077.093 7 -13253042.896 7 20506764.474 20506761.442 20506763.644
+ 43.100 46.700
+ -3178673.363 5 -2476889.330 4 23074378.427 23074375.538 23074377.229
+ 32.300 24.200
+ -9381133.176 6 -7309970.326 5 22473440.837 22473438.289 22473439.739
+ 38.600 34.000
+ -11601734.939 6 -9040308.304 5 22459763.500 22459761.209 22459762.692
+ 36.000 30.400
+ -6320603.280 4 -4925139.362 3 23469341.413 23469339.556 23469340.571
+ 29.000 22.600
+ -5178687.470 5 -4035338.670 4 23216659.776 23216658.603 23216659.103
+ 30.600 26.500
+ -2399460.123 4 -1869709.266 2 24143162.604 24143158.747 24143161.898
+ 27.400 16.100
+ -21157467.961 7 -16486336.425 7 20692279.397 20692274.868 20692278.814
+ 45.600 44.300
+ 06 1 1 6 25 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12959830.257 6 -10098563.546 5 22002488.393 22002486.329 22002487.324
+ 40.900 34.400
+ -17027243.735 7 -13267977.944 7 20503117.443 20503114.145 20503116.399
+ 43.200 46.700
+ -3078447.324 5 -2398791.154 4 23093450.938 23093448.380 23093449.720
+ 31.300 24.200
+ -9451361.134 6 -7364693.408 5 22460076.270 22460074.588 22460075.479
+ 38.400 35.300
+ -11677750.805 5 -9099541.420 5 22445297.501 22445296.053 22445297.207
+ 35.600 31.000
+ -6209225.029 4 -4838351.125 3 23490534.933 23490534.042 23490534.955
+ 29.200 22.600
+ -5271232.078 5 -4107451.300 4 23199049.151 23199048.275 23199048.506
+ 30.800 28.800
+ -2423994.843 4 -1888827.213 2 24138493.727 24138489.988 24138493.056
+ 27.100 15.100
+ -21112847.231 7 -16451567.041 7 20700770.369 20700765.958 20700769.727
+ 45.400 43.900
+ 06 1 1 6 26 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12977005.964 6 -10111947.201 5 21999219.876 21999217.863 21999218.717
+ 40.600 34.000
+ -17046110.642 7 -13282679.433 7 20499527.163 20499523.887 20499526.154
+ 42.900 46.800
+ -2977975.457 5 -2320501.447 3 23112570.349 23112567.105 23112568.848
+ 30.800 23.000
+ -9521430.376 6 -7419292.807 5 22446742.761 22446740.695 22446741.980
+ 38.500 34.400
+ -11753358.166 5 -9158456.230 5 22430910.409 22430908.319 22430909.816
+ 35.900 31.000
+ -6097685.639 4 -4751437.317 3 23511760.414 23511759.000 23511760.176
+ 27.600 23.000
+ -5363539.641 5 -4179379.244 4 23181483.673 23181482.444 23181483.127
+ 32.400 27.600
+ -2448016.259 4 -1907545.242 2 24133922.431 24133918.753 24133921.764
+ 25.900 17.800
+ -21067763.803 7 -16416437.107 7 20709349.750 20709345.124 20709348.887
+ 45.300 44.000
+ 06 1 1 6 26 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12993577.210 6 -10124859.846 5 21996066.319 21996064.382 21996065.295
+ 40.600 33.800
+ -17064677.400 7 -13297147.038 7 20495993.900 20495990.735 20495992.981
+ 43.100 46.700
+ -2877259.458 5 -2242021.491 3 23131735.602 23131733.001 23131734.382
+ 30.600 23.400
+ -9591340.636 6 -7473768.328 5 22433439.276 22433437.286 22433438.365
+ 38.800 34.500
+ -11828554.155 6 -9217050.498 5 22416600.247 22416598.898 22416600.259
+ 36.500 30.200
+ -5985987.406 5 -4664399.754 4 23533017.131 23533014.897 23533016.442
+ 30.400 25.300
+ -5455608.757 5 -4251121.372 4 23163963.597 23163962.142 23163962.895
+ 32.000 27.400
+ -2471523.941 4 -1925862.869 1 24129449.251 24129444.306 24129448.644
+ 28.400 11.000
+ -21022217.982 7 -16380946.860 7 20718016.794 20718012.157 20718015.986
+ 45.600 44.000
+ 06 1 1 6 27 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13009543.148 6 -10137300.832 5 21993028.252 21993025.826 21993027.274
+ 40.700 33.200
+ -17082944.008 7 -13311380.762 7 20492518.054 20492514.733 20492516.979
+ 42.900 46.800
+ -2776301.190 5 -2163352.779 3 23150947.065 23150944.932 23150946.417
+ 31.600 23.800
+ -9661091.473 6 -7528119.625 5 22420165.647 22420164.046 22420164.982
+ 38.100 34.600
+ -11903335.771 6 -9275321.850 5 22402369.748 22402368.423 22402369.433
+ 36.300 30.800
+ -5874132.825 5 -4577240.349 3 23554302.400 23554300.363 23554301.931
+ 31.000 23.400
+ -5547438.326 5 -4322676.831 4 23146488.839 23146487.333 23146488.131
+ 31.000 27.600
+ -2494516.953 4 -1943779.528 2 24125073.664 24125069.865 24125073.146
+ 27.600 16.100
+ -20976210.444 7 -16345096.828 7 20726771.803 20726767.109 20726770.925
+ 45.300 43.800
+ 06 1 1 6 27 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13024902.799 6 -10149269.388 5 21990105.614 21990102.949 21990104.360
+ 40.600 32.700
+ -17100909.963 7 -13325380.205 7 20489099.145 20489095.979 20489098.126
+ 43.000 46.900
+ -2675102.273 5 -2084496.508 3 23170203.692 23170202.386 23170203.586
+ 32.300 21.600
+ -9730682.408 6 -7582346.313 5 22406923.318 22406921.405 22406922.333
+ 38.600 34.300
+ -11977699.994 6 -9333267.994 5 22388218.840 22388217.351 22388218.699
+ 36.800 31.300
+ -5762124.416 5 -4489961.078 3 23575617.252 23575614.686 23575616.677
+ 30.600 20.500
+ -5639026.722 5 -4394044.383 4 23129059.616 23129058.125 23129059.291
+ 32.300 24.200
+ -2516994.960 4 -1961294.874 2 24120796.178 24120792.453 24120795.513
+ 25.300 13.900
+ -20929741.688 7 -16308887.411 7 20735614.552 20735609.929 20735613.753
+ 45.500 44.000
+ 06 1 1 6 28 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13039655.160 6 -10160764.723 5 21987298.162 21987295.678 21987296.973
+ 40.300 32.800
+ -17118575.240 7 -13339145.362 7 20485737.607 20485734.388 20485736.601
+ 43.100 46.900
+ -2573664.654 5 -2005454.241 3 23189507.278 23189505.076 23189506.476
+ 30.800 21.100
+ -9800112.916 6 -7636448.007 5 22393711.213 22393709.160 22393710.260
+ 38.600 34.600
+ -12051644.124 6 -9390886.771 5 22374148.103 22374146.501 22374147.664
+ 37.100 31.500
+ -5649965.169 5 -4402564.252 2 23596959.527 23596957.348 23596959.135
+ 30.200 17.800
+ -5730372.669 5 -4465223.030 4 23111677.642 23111675.640 23111676.956
+ 33.400 24.200
+ -2538957.924 4 -1978408.845 1 24116616.139 24116612.975 24116615.508
+ 24.200 11.000
+ -20882812.296 7 -16272319.059 7 20744544.871 20744540.268 20744544.116
+ 45.500 44.000
+ 06 1 1 6 28 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13053799.366 6 -10171786.174 5 21984606.186 21984604.206 21984605.363
+ 40.700 33.100
+ -17135939.601 7 -13352676.035 7 20482433.293 20482430.072 20482432.316
+ 42.700 47.000
+ -2471989.810 5 -1926227.155 3 23208857.109 23208853.294 23208855.346
+ 31.100 22.600
+ -9869382.413 6 -7690424.243 5 22380529.514 22380527.528 22380528.631
+ 39.100 34.600
+ -12125165.011 6 -9448175.755 5 22360157.184 22360155.901 22360156.929
+ 36.500 31.500
+ -5537657.022 5 -4315051.405 3 23618330.840 23618328.688 23618330.791
+ 30.100 19.900
+ -5821474.910 5 -4536211.765 4 23094341.121 23094339.793 23094340.375
+ 31.800 25.900
+ -2560404.863 4 -1995120.741 1 24112535.462 24112531.969 24112534.623
+ 27.100 11.000
+ -20835422.717 7 -16235392.116 7 20753562.762 20753558.167 20753561.935
+ 45.500 43.800
+ 06 1 1 6 29 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13067334.687 6 -10182333.175 5 21982031.043 21982028.690 21982029.807
+ 40.600 33.800
+ -17153002.570 7 -13365971.854 7 20479186.215 20479183.068 20479185.227
+ 42.700 46.900
+ -2370079.926 4 -1846816.904 3 23228250.091 23228245.818 23228248.118
+ 29.700 20.500
+ -9938490.418 6 -7744274.632 5 22367378.649 22367376.949 22367377.775
+ 38.800 35.100
+ -12198259.777 6 -9505132.695 5 22346248.153 22346246.190 22346247.676
+ 36.900 31.800
+ -5425203.076 4 -4227424.938 3 23639730.715 23639728.496 23639729.963
+ 29.500 23.400
+ -5912332.131 5 -4607009.572 4 23077052.015 23077050.261 23077051.183
+ 31.600 26.800
+ -2581335.800 4 -2011430.594 2 24108552.557 24108548.560 24108551.549
+ 24.600 15.100
+ -20787573.725 7 -16198107.193 7 20762668.056 20762663.590 20762667.241
+ 45.500 43.800
+ 06 1 1 6 29 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13080260.149 6 -10192404.948 5 21979571.118 21979568.897 21979570.050
+ 40.700 33.000
+ -17169763.919 7 -13379032.647 7 20475996.505 20475993.483 20475995.536
+ 42.600 46.900
+ -2267936.346 4 -1767224.560 3 23247684.974 23247683.637 23247684.909
+ 29.900 23.800
+ -10007436.444 6 -7797998.800 5 22354258.636 22354256.981 22354257.617
+ 38.300 35.300
+ -12270925.578 6 -9561755.382 5 22332419.792 22332418.239 22332419.743
+ 37.200 31.300
+ -5312605.557 4 -4139686.631 3 23661156.814 23661155.003 23661155.628
+ 26.800 19.900
+ -6002943.024 5 -4677615.411 4 23059808.693 23059807.689 23059808.221
+ 31.800 27.900
+ -2601750.420 4 -2027338.031 2 24104667.728 24104663.909 24104667.196
+ 26.200 13.900
+ -20739265.855 7 -16160464.703 7 20771860.970 20771856.289 20771860.085
+ 45.600 43.600
+ 06 1 1 6 30 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13092575.008 6 -10202000.940 5 21977227.411 21977224.955 21977226.334
+ 40.600 32.800
+ -17186223.786 7 -13391858.515 7 20472864.665 20472861.291 20472863.612
+ 42.700 47.000
+ -2165560.813 4 -1687451.464 3 23267165.339 23267165.078 23267166.381
+ 29.700 23.800
+ -10076220.097 6 -7851596.445 5 22341169.626 22341167.883 22341168.652
+ 38.900 35.200
+ -12343159.499 6 -9618041.535 5 22318674.633 22318672.678 22318674.231
+ 37.400 31.600
+ -5199867.309 4 -4051838.664 3 23682610.472 23682608.762 23682609.825
+ 29.700 19.900
+ -6093306.322 5 -4748028.333 4 23042613.879 23042611.833 23042613.061
+ 33.000 27.600
+ -2621648.151 4 -2042842.794 1 24100881.970 24100877.021 24100881.204
+ 28.100 6.500
+ -20690499.702 7 -16122465.112 7 20781141.011 20781136.179 20781140.079
+ 45.600 43.400
+ 06 1 1 6 30 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13104278.426 6 -10211120.484 5 21975000.702 21974997.947 21974999.484
+ 40.600 32.600
+ -17202381.566 7 -13404448.993 7 20469789.835 20469786.507 20469788.836
+ 42.600 46.900
+ -2062955.074 4 -1607498.977 3 23286691.271 23286690.270 23286691.605
+ 29.500 21.600
+ -10144840.814 6 -7905067.134 5 22328111.650 22328109.735 22328110.840
+ 39.600 35.500
+ -12414958.582 6 -9673988.860 5 22305011.292 22305009.471 22305011.048
+ 37.200 31.300
+ -5086990.716 4 -3963882.832 3 23704089.816 23704087.997 23704089.350
+ 28.800 20.500
+ -6183420.544 5 -4818247.199 4 23025465.367 23025463.512 23025464.520
+ 32.600 27.400
+ -2641028.591 4 -2057944.460 2 24097193.104 24097189.885 24097192.552
+ 28.400 15.100
+ -20641275.967 7 -16084108.962 7 20790507.756 20790503.116 20790507.010
+ 45.600 43.400
+ 06 1 1 6 31 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13115369.661 6 -10219762.995 5 21972889.973 21972887.762 21972888.875
+ 40.800 33.600
+ -17218236.875 7 -13416803.782 7 20466772.505 20466769.368 20466771.497
+ 42.500 47.000
+ -1960120.985 4 -1527368.571 3 23306261.679 23306258.972 23306260.240
+ 29.700 22.100
+ -10213298.109 6 -7958410.482 5 22315084.658 22315082.656 22315083.710
+ 39.100 35.400
+ -12486320.075 6 -9729595.209 5 22291431.739 22291429.923 22291431.439
+ 36.900 30.600
+ -4973977.884 4 -3875820.902 3 23725594.451 23725594.431 23725594.465
+ 27.900 22.600
+ -6273284.598 5 -4888271.103 4 23008364.927 23008363.081 23008364.045
+ 32.600 27.600
+ -2659891.719 4 -2072643.036 2 24093604.331 24093600.327 24093603.638
+ 29.200 13.900
+ -20591595.263 7 -16045396.735 7 20799961.782 20799957.025 20799960.996
+ 45.700 43.200
+ 06 1 1 6 31 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13125847.977 6 -10227927.907 5 21970896.337 21970893.913 21970895.158
+ 41.000 33.800
+ -17233789.921 7 -13428923.037 7 20463812.800 20463809.763 20463811.883
+ 42.600 47.100
+ -1857060.355 4 -1447061.655 3 23325874.430 23325870.807 23325872.493
+ 29.000 19.900
+ -10281591.439 6 -8011626.055 5 22302088.648 22302087.012 22302087.751
+ 38.400 35.600
+ -12557241.066 6 -9784858.296 5 22277936.157 22277934.221 22277935.735
+ 37.300 31.500
+ -4860831.799 4 -3787655.158 3 23747126.615 23747125.452 23747125.540
+ 26.500 19.900
+ -6362897.156 5 -4958099.035 4 22991311.609 22991310.435 22991310.995
+ 32.000 27.600
+ -2678236.994 4 -2086938.043 2 24090113.241 24090109.069 24090112.502
+ 28.100 15.100
+ -20541458.266 7 -16006328.959 7 20809502.348 20809497.848 20809501.608
+ 45.600 43.100
+ 06 1 1 6 32 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13135712.678 6 -10235614.675 5 21969018.949 21969016.731 21969018.021
+ 41.000 33.800
+ -17249040.702 7 -13440806.765 7 20460910.663 20460907.544 20460909.712
+ 42.200 47.100
+ -1753774.600 4 -1366579.266 3 23345528.440 23345525.424 23345527.234
+ 29.000 18.600
+ -10349720.324 6 -8064713.488 6 22289124.454 22289122.562 22289123.641
+ 39.500 36.100
+ -12627718.737 6 -9839775.957 5 22264524.144 22264522.722 22264524.272
+ 37.600 31.500
+ -4747554.344 4 -3699387.011 3 23768683.348 23768680.784 23768682.428
+ 29.000 20.500
+ -6452256.888 5 -5027729.954 4 22974306.955 22974305.713 22974306.395
+ 33.100 28.400
+ -2696064.317 4 -2100829.444 2 24086720.758 24086716.729 24086720.053
+ 29.500 16.100
+ -20490865.401 7 -15966905.958 7 20819130.216 20819125.321 20819129.270
+ 45.500 43.100
+ 06 1 1 6 32 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13144963.006 6 -10242822.727 5 21967258.679 21967256.287 21967257.635
+ 41.200 33.500
+ -17263988.497 7 -13452454.398 7 20458066.410 20458063.009 20458065.364
+ 42.500 47.000
+ -1650265.949 4 -1285923.188 3 23365224.201 23365223.110 23365224.114
+ 29.700 21.600
+ -10417684.290 6 -8117672.425 5 22276191.139 22276189.285 22276190.239
+ 39.400 35.400
+ -12697750.190 6 -9894345.900 5 22251198.631 22251196.238 22251197.881
+ 37.700 31.800
+ -4634148.617 4 -3611018.899 3 23790263.485 23790261.230 23790262.752
+ 27.600 19.300
+ -6541362.582 5 -5097162.952 4 22957350.894 22957349.462 22957350.372
+ 33.400 27.600
+ -2713373.558 4 -2114317.168 2 24083426.869 24083422.942 24083426.248
+ 29.200 16.100
+ -20439817.626 7 -15927128.480 7 20828844.127 20828839.395 20828843.302
+ 45.300 43.000
+ 06 1 1 6 33 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13153598.465 6 -10249551.647 5 21965615.422 21965613.187 21965614.078
+ 41.100 33.500
+ -17278632.991 7 -13463865.698 7 20455279.892 20455276.420 20455278.782
+ 42.800 47.200
+ -1546536.125 4 -1205094.796 3 23384963.789 23384961.575 23384963.313
+ 29.900 21.100
+ -10485482.969 6 -8170502.570 5 22263289.472 22263287.699 22263288.479
+ 39.600 35.900
+ -12767332.641 6 -9948565.982 5 22237956.688 22237955.208 22237956.549
+ 37.500 32.300
+ -4520616.374 4 -3522552.211 2 23811867.812 23811865.413 23811867.221
+ 26.800 15.100
+ -6630212.975 5 -5166396.981 4 22940443.313 22940441.746 22940442.420
+ 32.400 28.100
+ -2730164.271 4 -2127400.866 2 24080231.566 24080227.650 24080230.890
+ 27.600 17.000
+ -20388315.468 7 -15886996.936 7 20838644.183 20838639.925 20838643.673
+ 45.600 42.800
+ 06 1 1 6 33 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13161618.278 6 -10255800.850 5 21964088.975 21964087.158 21964088.001
+ 41.000 34.000
+ -17292973.848 7 -13475040.391 7 20452550.756 20452547.511 20452549.661
+ 42.400 47.400
+ -1442586.526 4 -1124095.133 3 23404745.523 23404742.737 23404744.522
+ 28.800 22.600
+ -10553115.895 6 -8223203.552 6 22250419.467 22250417.537 22250418.534
+ 39.900 36.100
+ -12836463.360 6 -10002434.054 5 22224801.951 22224800.116 22224801.313
+ 37.500 32.400
+ -4406960.467 4 -3433989.154 3 23833495.326 23833493.692 23833494.463
+ 27.100 19.300
+ -6718806.748 5 -5235431.077 4 22923584.585 22923582.706 22923583.793
+ 32.000 28.100
+ -2746436.304 4 -2140080.325 2 24077135.011 24077131.435 24077134.442
+ 28.600 16.100
+ -20336359.903 7 -15846512.086 7 20848530.913 20848526.850 20848530.464
+ 45.500 42.800
+ 06 1 1 6 34 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13169021.970 6 -10261569.948 5 21962679.803 21962678.170 21962679.127
+ 41.400 33.800
+ -17307011.198 7 -13485978.583 7 20449879.602 20449876.192 20449878.555
+ 42.700 47.300
+ -1338419.111 4 -1042925.762 3 23424567.828 23424565.185 23424566.537
+ 27.900 20.500
+ -10620582.524 6 -8275774.951 6 22237580.813 22237579.095 22237579.833
+ 39.400 36.100
+ -12905139.459 6 -10055947.878 5 22211732.717 22211731.349 22211732.538
+ 37.600 32.700
+ -4293183.317 4 -3345331.678 3 23855146.510 23855145.137 23855145.642
+ 26.800 23.000
+ -6807142.780 5 -5304264.306 4 22906774.401 22906773.108 22906773.944
+ 33.200 28.800
+ -2762189.541 4 -2152355.600 2 24074137.582 24074133.767 24074137.010
+ 28.800 15.100
+ -20283951.372 7 -15805674.285 7 20858504.058 20858499.854 20858503.546
+ 45.600 42.700
+ 06 1 1 6 34 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13175808.862 6 -10266858.432 5 21961388.781 21961386.439 21961387.752
+ 41.400 33.500
+ -17320744.647 7 -13496679.976 7 20447266.195 20447262.878 20447265.150
+ 42.500 47.400
+ -1234035.628 4 -961588.039 3 23444431.607 23444428.725 23444430.154
+ 28.400 22.100
+ -10687882.441 6 -8328216.434 5 22224774.007 22224772.187 22224773.215
+ 40.000 35.900
+ -12973358.205 6 -10109105.322 5 22198751.652 22198749.979 22198751.142
+ 37.600 32.700
+ -4179287.450 4 -3256581.666 3 23876820.594 23876818.646 23876819.806
+ 28.400 21.600
+ -6895219.740 5 -5372895.679 4 22890013.746 22890012.613 22890013.258
+ 33.200 29.000
+ -2777423.812 4 -2164226.499 2 24071237.929 24071234.197 24071237.299
+ 28.400 13.900
+ -20231090.953 7 -15764484.352 7 20868563.313 20868558.840 20868562.651
+ 45.600 42.700
+ 06 1 1 6 35 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13181978.453 6 -10271665.901 5 21960214.840 21960212.315 21960213.610
+ 41.200 33.400
+ -17334174.021 7 -13507144.421 7 20444710.322 20444707.373 20444709.424
+ 42.400 47.400
+ -1129438.101 4 -880083.528 3 23464335.630 23464333.123 23464334.508
+ 29.000 21.100
+ -10755015.113 6 -8380527.612 6 22211999.645 22211997.310 22211998.561
+ 40.300 36.300
+ -13041116.860 6 -10161904.260 5 22185857.133 22185855.742 22185857.089
+ 38.200 32.600
+ -4065274.978 4 -3167740.802 3 23898514.781 23898514.695 23898514.868
+ 26.500 20.500
+ -6983036.417 5 -5441324.210 4 22873303.485 22873301.613 22873302.666
+ 33.200 28.800
+ -2792138.917 4 -2175692.806 2 24068438.013 24068433.966 24068437.306
+ 26.500 15.100
+ -20177779.359 7 -15722942.861 7 20878708.214 20878703.759 20878707.581
+ 45.600 42.500
+ 06 1 1 6 35 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13187530.166 6 -10275991.904 5 21959158.321 21959156.007 21959157.145
+ 41.300 34.000
+ -17347299.103 7 -13517371.763 7 20442212.854 20442209.637 20442211.871
+ 42.500 47.300
+ -1024627.960 4 -798413.300 3 23484279.882 23484277.196 23484279.013
+ 28.600 19.300
+ -10821979.994 6 -8432708.037 6 22199256.250 22199254.440 22199255.350
+ 40.200 36.300
+ -13108412.585 6 -10214342.478 5 22173052.102 22173049.687 22173051.340
+ 38.400 32.100
+ -3951148.636 4 -3078811.140 2 23920233.644 23920230.615 23920233.013
+ 27.600 15.100
+ -7070591.657 5 -5509549.052 4 22856642.075 22856639.982 22856641.326
+ 34.100 26.800
+ -2806334.836 4 -2186754.577 2 24065737.198 24065733.029 24065736.419
+ 29.200 15.100
+ -20124017.104 7 -15681050.204 7 20888938.893 20888934.343 20888938.214
+ 45.700 42.400
+ 06 1 1 6 36 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13192463.599 6 -10279836.130 5 21958219.229 21958217.685 21958218.256
+ 41.100 34.500
+ -17360119.493 7 -13527361.676 7 20439773.172 20439769.939 20439772.275
+ 42.600 47.200
+ -919607.618 4 -716579.305 3 23504264.703 23504262.386 23504263.791
+ 28.800 19.900
+ -10888776.572 6 -8484757.304 6 22186545.221 22186543.503 22186544.281
+ 39.700 36.700
+ -13175242.612 6 -10266417.818 5 22160333.639 22160332.208 22160333.758
+ 38.500 31.300
+ -3836910.708 4 -2989794.586 3 23941973.239 23941969.969 23941972.165
+ 28.600 18.600
+ -7157884.203 5 -5577569.205 4 22840031.200 22840028.728 22840030.365
+ 35.400 27.100
+ -2820011.359 4 -2197411.611 2 24063134.062 24063130.580 24063133.306
+ 28.800 17.800
+ -20069805.090 7 -15638807.087 7 20899254.865 20899250.544 20899254.294
+ 45.600 42.500
+ 06 1 1 6 36 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13196778.220 6 -10283198.165 5 21957398.397 21957396.440 21957397.523
+ 41.300 34.100
+ -17372635.007 7 -13537114.024 7 20437391.638 20437388.372 20437390.620
+ 42.400 47.300
+ -814378.756 4 -634582.831 3 23524289.049 23524286.928 23524287.977
+ 27.400 18.600
+ -10955404.453 6 -8536675.125 6 22173866.378 22173864.698 22173865.426
+ 40.000 36.900
+ -13241604.354 6 -10318128.258 5 22147706.138 22147703.990 22147705.671
+ 38.500 31.800
+ -3722563.544 4 -2900692.881 3 23963733.345 23963730.328 23963731.965
+ 29.200 20.500
+ -7244912.895 5 -5645383.758 4 22823469.953 22823467.865 22823469.174
+ 34.800 29.200
+ -2833168.392 4 -2207663.848 2 24060630.715 24060627.040 24060630.226
+ 29.700 17.800
+ -20015144.151 7 -15596214.150 7 20909656.542 20909652.170 20909655.953
+ 45.500 42.400
+ 06 1 1 6 37 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13200473.641 6 -10286077.712 5 21956695.299 21956692.791 21956694.144
+ 41.500 33.600
+ -17384845.351 7 -13546628.578 7 20435068.172 20435064.871 20435067.190
+ 42.600 47.400
+ -708942.709 4 -552424.893 3 23544353.043 23544350.850 23544352.014
+ 28.100 20.500
+ -11021863.030 6 -8588461.017 6 22161219.686 22161218.028 22161218.740
+ 40.600 37.100
+ -13307494.963 6 -10369471.571 5 22135167.424 22135165.182 22135167.120
+ 38.900 31.800
+ -3608109.503 4 -2811507.937 3 23985512.947 23985510.166 23985512.279
+ 25.900 20.500
+ -7331676.474 5 -5712991.722 4 22806958.918 22806957.403 22806958.363
+ 34.000 29.500
+ -2845805.951 4 -2217511.295 2 24058225.848 24058222.150 24058224.910
+ 27.400 17.000
+ -19960034.988 7 -15553271.955 7 20920143.287 20920139.126 20920142.770
+ 45.400 42.300
+ 06 1 1 6 37 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13203549.429 6 -10288474.420 5 21956110.320 21956107.391 21956108.927
+ 41.300 33.600
+ -17396750.302 7 -13555905.166 7 20432802.598 20432799.520 20432801.608
+ 42.300 47.500
+ -603301.340 4 -470106.990 3 23564456.729 23564453.777 23564455.362
+ 25.600 19.900
+ -11088151.624 6 -8640114.464 6 22148605.583 22148603.617 22148604.587
+ 41.000 36.600
+ -13372911.826 6 -10420445.748 5 22122718.824 22122716.771 22122718.681
+ 38.700 31.300
+ -3493550.799 4 -2722241.399 2 24007312.885 24007309.692 24007311.801
+ 26.800 17.800
+ -7418173.709 5 -5780392.126 5 22790498.829 22790497.782 22790498.326
+ 33.200 30.200
+ -2857924.020 4 -2226953.978 3 24055919.671 24055916.160 24055918.967
+ 26.500 18.600
+ -19904478.672 7 -15509981.330 7 20930715.221 20930711.107 20930714.704
+ 45.600 42.300
+ 06 1 1 6 38 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13206005.201 6 -10290388.009 5 21955642.703 21955640.306 21955641.682
+ 41.600 34.000
+ -17408349.781 7 -13564943.725 7 20430595.285 20430592.188 20430594.266
+ 42.200 47.400
+ -497456.894 4 -387630.820 3 23584598.337 23584595.025 23584596.775
+ 26.800 18.600
+ -11154269.824 6 -8691635.150 6 22136023.820 22136021.766 22136022.832
+ 40.900 36.400
+ -13437852.291 6 -10471048.686 5 22110361.107 22110359.156 22110360.747
+ 38.800 32.300
+ -3378890.127 4 -2632895.424 3 24029132.241 24029129.275 24029131.184
+ 29.700 19.300
+ -7504403.524 5 -5847584.171 4 22774090.044 22774088.510 22774089.414
+ 34.500 29.500
+ -2869522.535 4 -2235991.770 3 24053712.826 24053708.675 24053712.232
+ 27.400 19.900
+ -19848475.965 7 -15466342.867 7 20941372.327 20941368.121 20941371.744
+ 45.200 42.100
+ 06 1 1 6 38 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13207840.578 6 -10291818.171 5 21955293.342 21955291.105 21955292.363
+ 41.400 34.100
+ -17419643.304 7 -13573743.884 7 20428446.238 20428443.011 20428445.219
+ 42.200 47.400
+ -391410.972 4 -304997.635 3 23604778.124 23604775.202 23604776.784
+ 27.400 19.900
+ -11220217.181 6 -8743022.702 6 22123473.942 22123472.171 22123473.123
+ 40.500 36.100
+ -13502313.507 6 -10521278.197 5 22098093.704 22098092.863 22098094.196
+ 39.100 32.600
+ -3264129.863 4 -2543471.820 2 24050969.610 24050967.320 24050969.051
+ 27.100 17.800
+ -7590364.682 5 -5914566.880 4 22757732.398 22757730.884 22757731.603
+ 34.000 29.900
+ -2880601.582 4 -2244624.792 3 24051604.142 24051601.312 24051603.423
+ 25.900 21.100
+ -19792027.588 7 -15422357.127 6 20952114.344 20952109.876 20952113.614
+ 45.500 41.900
+ 06 1 1 6 39 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13209055.289 6 -10292764.688 5 21955062.374 21955059.924 21955061.115
+ 41.300 34.000
+ -17430630.575 7 -13582305.393 7 20426355.253 20426352.177 20426354.323
+ 42.300 47.300
+ -285165.892 4 -222209.302 3 23624995.706 23624992.790 23624994.413
+ 28.600 19.300
+ -11285993.055 6 -8794276.629 6 22110957.638 22110955.414 22110956.672
+ 40.800 36.100
+ -13566292.946 6 -10571132.290 5 22085919.685 22085917.800 22085919.305
+ 39.300 32.300
+ -3149272.493 4 -2453972.593 3 24072826.621 24072824.162 24072825.726
+ 26.500 22.100
+ -7676055.985 5 -5981339.300 5 22741425.372 22741424.492 22741424.837
+ 33.800 30.400
+ -2891161.244 4 -2252853.135 2 24049594.400 24049590.947 24049593.843
+ 24.900 17.800
+ -19735134.856 7 -15378025.137 6 20962940.329 20962936.223 20962939.840
+ 45.600 41.800
+ 06 1 1 6 39 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13209648.947 6 -10293227.278 5 21954949.243 21954946.809 21954948.145
+ 41.300 34.000
+ -17441311.689 7 -13590628.341 7 20424323.106 20424319.658 20424321.967
+ 42.200 47.200
+ -178722.684 4 -139266.538 3 23645250.502 23645248.548 23645250.023
+ 27.900 19.900
+ -11351596.888 6 -8845396.491 6 22098473.605 22098471.590 22098472.693
+ 40.900 36.500
+ -13629788.042 6 -10620608.976 5 22073836.677 22073834.936 22073836.589
+ 39.500 32.700
+ -3034319.953 3 -2364399.204 2 24094700.483 24094698.913 24094700.162
+ 23.800 17.000
+ -7761476.342 5 -6047900.600 5 22725170.570 22725169.469 22725170.000
+ 34.400 30.800
+ -2901201.571 4 -2260676.775 3 24047684.246 24047680.905 24047683.765
+ 27.100 20.500
+ -19677798.038 7 -15333347.102 6 20973851.124 20973847.099 20973850.722
+ 45.600 41.900
+ 06 1 1 6 40 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13209621.329 6 -10293205.754 5 21954955.082 21954951.948 21954953.724
+ 41.400 34.000
+ -17451686.293 7 -13598712.456 7 20422348.705 20422345.372 20422347.628
+ 42.300 47.400
+ -72083.612 4 -56171.164 3 23665543.104 23665541.267 23665542.671
+ 27.400 19.300
+ -11417028.212 6 -8896381.938 6 22086022.262 22086020.284 22086021.424
+ 41.100 37.000
+ -13692796.068 6 -10669706.142 5 22061847.231 22061844.915 22061846.475
+ 39.300 32.100
+ -2919274.213 3 -2274753.170 2 24116594.195 24116591.261 24116592.556
+ 23.000 13.900
+ -7846624.550 5 -6114249.819 5 22708967.725 22708966.097 22708967.017
+ 35.400 30.400
+ -2910722.397 4 -2268095.591 3 24045872.331 24045868.574 24045871.707
+ 24.900 18.600
+ -19620018.174 7 -15288323.844 6 20984846.446 20984842.128 20984845.989
+ 45.500 41.400
+ 06 1 1 6 40 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13208972.147 6 -10292699.892 5 21955078.165 21955075.607 21955077.135
+ 41.500 33.800
+ -17461754.073 7 -13606557.480 7 20420432.938 20420429.510 20420431.939
+ 42.400 47.200
+ 34749.632 4 27075.526 3 23685873.027 23685870.301 23685872.138
+ 25.900 19.300
+ -11482286.596 6 -8947232.622 6 22073604.189 22073602.137 22073603.282
+ 41.400 37.400
+ -13755314.426 6 -10718421.728 5 22049949.862 22049948.385 22049949.698
+ 39.400 33.100
+ -2804138.423 4 -2185036.979 2 24138503.522 24138501.518 24138502.267
+ 24.600 17.800
+ -7931499.482 5 -6180386.100 4 22692816.494 22692814.782 22692815.658
+ 35.100 29.900
+ -2919724.135 4 -2275109.921 3 24044159.828 24044155.892 24044158.946
+ 27.900 20.500
+ -19561796.354 7 -15242956.210 6 20995925.756 20995921.400 20995925.224
+ 45.600 41.500
+ 06 1 1 6 41 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13207701.208 6 -10291709.549 5 21955320.012 21955317.568 21955318.878
+ 41.200 34.400
+ -17471514.559 7 -13614163.050 7 20418575.524 20418572.220 20418574.577
+ 42.500 47.400
+ 141775.207 4 110472.034 3 23706241.093 23706237.331 23706238.998
+ 27.600 18.600
+ -11547371.425 6 -8997948.076 6 22061218.608 22061216.687 22061217.903
+ 41.600 36.500
+ -13817340.497 6 -10766753.719 5 22038147.081 22038145.371 22038146.670
+ 39.100 34.000
+ -2688914.273 3 -2095251.944 1 24160429.080 24160427.231 24160428.454
+ 23.400 9.000
+ -8016100.002 5 -6246308.555 4 22676717.524 22676715.745 22676716.820
+ 35.600 29.700
+ -2928206.580 4 -2281719.646 3 24042545.479 24042541.477 24042544.819
+ 27.600 20.500
+ -19503133.545 7 -15197244.941 6 21007088.610 21007084.524 21007088.367
+ 45.500 41.100
+ 06 1 1 6 41 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13205808.301 6 -10290234.545 5 21955680.147 21955677.902 21955678.964
+ 41.000 34.600
+ -17480967.641 7 -13621529.095 7 20416776.454 20416773.518 20416775.598
+ 42.300 47.600
+ 248990.771 4 194016.592 3 23726642.723 23726640.029 23726641.532
+ 27.600 21.100
+ -11612282.111 6 -9048527.828 6 22048866.367 22048864.693 22048865.685
+ 41.300 37.000
+ -13878871.768 6 -10814700.139 5 22026437.842 22026436.037 22026437.511
+ 39.500 33.200
+ -2573604.176 4 -2005399.920 2 24182371.245 24182369.733 24182371.168
+ 26.200 12.600
+ -8100425.047 5 -6312016.341 5 22660670.885 22660669.461 22660670.232
+ 35.400 31.000
+ -2936169.979 4 -2287924.873 3 24041029.593 24041026.459 24041029.125
+ 24.900 18.600
+ -19444030.805 7 -15151190.877 6 21018335.395 21018331.486 21018335.149
+ 45.300 41.200
+ 06 1 1 6 42 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13203293.299 6 -10288274.802 5 21956158.827 21956156.675 21956157.617
+ 41.000 34.600
+ -17490113.299 7 -13628655.589 7 20415036.359 20415033.147 20415035.338
+ 42.200 47.500
+ 356394.880 4 277708.086 2 23747078.491 23747077.646 23747078.828
+ 27.400 17.800
+ -11677018.124 6 -9098971.474 6 22036547.825 22036545.794 22036546.995
+ 41.600 37.300
+ -13939905.598 6 -10862258.965 5 22014822.664 22014821.523 22014822.986
+ 39.500 32.700
+ -2458210.479 4 -1915482.729 1 24204330.537 24204328.449 24204329.951
+ 26.500 9.000
+ -8184473.378 5 -6377508.495 5 22644677.044 22644675.417 22644676.327
+ 35.200 31.300
+ -2943614.656 4 -2293725.909 3 24039612.968 24039610.367 24039612.274
+ 26.800 22.100
+ -19384488.823 7 -15104794.534 6 21029665.904 21029661.930 21029665.689
+ 45.600 41.100
+ 06 1 1 6 42 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13200156.000 6 -10285830.152 5 21956755.465 21956753.666 21956754.367
+ 41.100 34.500
+ -17498951.233 7 -13635542.292 7 20413354.464 20413351.268 20413353.495
+ 42.400 47.500
+ 463985.475 4 361544.888 2 23767552.103 23767551.828 23767552.830
+ 26.200 17.000
+ -11741578.868 6 -9149278.546 6 22024262.972 22024260.498 22024261.875
+ 41.800 37.800
+ -14000439.500 6 -10909428.237 5 22003304.586 22003301.983 22003304.036
+ 39.700 32.600
+ -2342735.255 4 -1825502.008 2 24226304.889 24226303.206 24226303.969
+ 26.800 17.800
+ -8268244.043 5 -6442784.289 5 22628736.046 22628734.167 22628735.335
+ 34.700 30.400
+ -2950540.666 4 -2299122.832 3 24038295.520 24038291.761 24038294.953
+ 27.900 20.500
+ -19324508.683 7 -15058056.787 6 21041080.211 21041075.870 21041079.672
+ 45.400 41.300
+ 06 1 1 6 43 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13196396.354 6 -10282900.550 5 21957470.455 21957468.965 21957469.501
+ 40.900 34.500
+ -17507481.049 6 -13642188.901 7 20411731.278 20411728.067 20411730.288
+ 41.900 47.500
+ 571761.333 4 445526.036 2 23788063.078 23788060.856 23788062.090
+ 25.900 17.000
+ -11805963.944 7 -9199448.731 6 22012010.660 22012008.223 22012009.738
+ 42.000 36.800
+ -14060471.008 6 -10956206.027 5 21991880.725 21991878.365 21991880.268
+ 39.400 31.800
+ -2227180.689 4 -1735459.512 2 24248293.940 24248292.489 24248293.213
+ 25.900 17.800
+ -8351735.848 5 -6507842.818 5 22612847.612 22612846.137 22612847.047
+ 34.500 30.100
+ -2956948.153 5 -2304115.678 3 24037076.509 24037072.823 24037075.653
+ 30.100 22.100
+ -19264091.487 7 -15010978.478 6 21052576.983 21052572.996 21052576.587
+ 45.300 41.200
+ 06 1 1 6 43 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13192014.228 6 -10279485.903 5 21958304.310 21958302.875 21958303.494
+ 41.000 34.100
+ -17515702.484 7 -13648595.215 7 20410166.871 20410163.655 20410165.821
+ 42.300 47.500
+ 679719.977 4 529649.605 3 23808608.662 23808604.721 23808606.845
+ 27.600 20.500
+ -11870172.830 6 -9249481.635 6 21999791.923 21999789.659 21999790.882
+ 41.700 37.200
+ -14119997.523 6 -11002590.324 5 21980553.119 21980551.011 21980552.895
+ 40.200 33.000
+ -2111549.491 4 -1645357.267 3 24270298.481 24270296.175 24270297.221
+ 25.900 19.300
+ -8434947.751 5 -6572683.233 5 22597013.143 22597011.606 22597012.506
+ 35.400 30.400
+ -2962837.690 4 -2308704.940 3 24035954.740 24035951.432 24035954.337
+ 25.300 18.600
+ -19203238.329 7 -14963560.445 6 21064157.245 21064152.876 21064156.740
+ 45.600 41.100
+ 06 1 1 6 44 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13187009.561 6 -10275586.164 5 21959257.471 21959255.234 21959256.279
+ 41.300 34.300
+ -17523615.404 6 -13654761.130 7 20408661.018 20408657.869 20408659.936
+ 41.900 47.400
+ 787859.534 4 613914.148 3 23829184.516 23829183.432 23829184.318
+ 25.600 19.300
+ -11934204.893 6 -9299376.745 6 21987607.001 21987604.783 21987606.051
+ 41.800 37.600
+ -14179016.497 6 -11048579.123 5 21969322.267 21969320.083 21969321.873
+ 39.800 32.800
+ -1995843.659 3 -1555196.919 2 24292315.868 24292313.608 24292315.468
+ 23.000 17.000
+ -8517878.659 6 -6637304.725 5 22581232.196 22581230.432 22581231.264
+ 36.000 31.300
+ -2968209.193 4 -2312890.517 3 24034933.303 24034929.545 24034932.524
+ 26.800 21.100
+ -19141949.948 7 -14915803.284 6 21075819.736 21075815.617 21075819.378
+ 45.400 40.700
+ 06 1 1 6 44 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13181382.331 6 -10271201.304 5 21960328.133 21960325.919 21960327.031
+ 41.100 33.900
+ -17531219.508 7 -13660686.409 7 20407213.839 20407210.808 20407212.976
+ 42.200 47.400
+ 896177.631 4 698317.802 2 23849796.496 23849795.289 23849796.294
+ 25.600 17.800
+ -11998059.580 6 -9349133.643 6 21975455.911 21975453.832 21975454.890
+ 41.900 38.000
+ -14237525.607 6 -11094170.615 5 21958188.164 21958186.206 21958187.974
+ 40.100 32.800
+ -1880065.171 4 -1464979.924 3 24314347.956 24314345.849 24314347.103
+ 24.900 18.600
+ -8600527.384 5 -6701706.313 5 22565504.755 22565502.901 22565503.859
+ 35.900 31.300
+ -2973063.214 4 -2316672.879 3 24034009.254 24034006.183 24034008.460
+ 25.300 21.600
+ -19080227.782 7 -14867708.105 6 21087565.110 21087561.033 21087564.708
+ 45.400 41.000
+ 06 1 1 6 45 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13175132.532 6 -10266331.323 5 21961517.636 21961515.155 21961516.394
+ 41.100 33.900
+ -17538514.513 7 -13666370.838 7 20405825.756 20405822.600 20405824.798
+ 42.200 47.500
+ 1004673.160 4 782859.739 3 23870443.129 23870441.563 23870443.004
+ 27.900 19.900
+ -12061736.286 6 -9398751.855 6 21963338.286 21963336.596 21963337.405
+ 41.800 38.000
+ -14295522.247 6 -11139362.794 5 21947151.817 21947149.981 21947151.456
+ 40.200 33.200
+ -1764216.695 3 -1374708.389 2 24336393.171 24336391.081 24336392.273
+ 23.400 16.100
+ -8682893.022 5 -6765887.294 5 22549830.690 22549829.040 22549830.092
+ 35.900 31.300
+ -2977399.583 4 -2320051.870 3 24033183.680 24033180.629 24033183.029
+ 25.900 19.900
+ -19018072.309 7 -14819275.286 6 21099393.195 21099388.742 21099392.663
+ 45.500 40.600
+ 06 1 1 6 45 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13168260.217 6 -10260976.276 5 21962825.061 21962822.984 21962824.076
+ 41.300 34.000
+ -17545500.255 7 -13671814.271 7 20404496.578 20404493.289 20404495.514
+ 42.200 47.500
+ 1113344.294 4 867538.532 3 23891124.325 23891121.301 23891122.884
+ 25.900 19.900
+ -12125234.380 7 -9448230.884 6 21951255.354 21951253.342 21951254.377
+ 42.000 38.100
+ -14353004.009 6 -11184153.768 5 21936213.507 21936211.339 21936213.227
+ 40.300 33.100
+ -1648300.237 4 -1284383.869 2 24358450.865 24358449.177 24358450.183
+ 25.600 15.100
+ -8764974.386 6 -6829846.761 5 22534211.167 22534209.443 22534210.608
+ 36.500 31.300
+ -2981218.725 4 -2323027.835 3 24032458.165 24032454.093 24032457.442
+ 28.600 21.600
+ -18955484.837 7 -14770505.855 6 21111303.049 21111298.770 21111302.631
+ 45.200 40.500
+ 06 1 1 6 46 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13160765.412 6 -10255136.164 5 21964251.323 21964249.315 21964250.302
+ 41.300 34.100
+ -17552176.064 7 -13677016.197 7 20403226.006 20403222.942 20403225.097
+ 42.200 47.500
+ 1222188.705 4 952352.290 2 23911836.985 23911833.335 23911835.015
+ 24.900 17.000
+ -12188553.440 7 -9497570.410 6 21939205.960 21939204.006 21939205.152
+ 42.200 38.000
+ -14409968.516 6 -11228541.680 5 21925373.245 21925371.465 21925373.167
+ 40.500 33.200
+ -1532317.771 4 -1194007.921 2 24380522.560 24380519.910 24380521.541
+ 24.200 13.900
+ -8846770.451 6 -6893583.918 5 22518645.710 22518644.253 22518645.246
+ 36.500 32.000
+ -2984521.165 4 -2325601.160 3 24031829.648 24031825.920 24031828.719
+ 28.600 21.600
+ -18892466.507 7 -14721400.677 6 21123295.161 21123290.619 21123294.673
+ 45.300 40.300
+ 06 1 1 6 46 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13152648.131 6 -10248811.008 5 21965796.163 21965793.869 21965794.957
+ 41.200 33.800
+ -17558542.375 7 -13681976.964 7 20402014.470 20402011.517 20402013.535
+ 42.200 47.500
+ 1331204.692 3 1037299.805 3 23932580.445 23932579.059 23932579.880
+ 22.600 18.600
+ -12251692.841 6 -9546769.942 6 21927190.830 21927188.902 21927190.003
+ 41.900 38.000
+ -14466413.332 6 -11272524.640 5 21914632.931 21914630.555 21914632.096
+ 40.300 34.000
+ -1416271.622 4 -1103582.375 2 24402605.525 24402603.364 24402604.603
+ 25.300 16.100
+ -8928280.256 6 -6957098.011 5 22503134.966 22503133.444 22503134.261
+ 36.200 32.000
+ -2987307.142 4 -2327772.072 3 24031298.576 24031295.366 24031298.076
+ 26.200 19.900
+ -18829018.186 7 -14671960.453 6 21135369.057 21135364.584 21135368.564
+ 45.500 40.300
+ 06 1 1 6 47 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13143908.558 6 -10242000.944 5 21967458.867 21967456.728 21967457.889
+ 41.000 33.500
+ -17564598.872 7 -13686696.314 7 20400862.188 20400858.981 20400861.157
+ 42.100 47.600
+ 1440390.542 4 1122379.629 2 23953357.448 23953356.058 23953356.829
+ 24.900 16.100
+ -12314651.846 7 -9595828.906 6 21915210.239 21915208.258 21915209.401
+ 42.500 38.200
+ -14522336.131 6 -11316100.835 5 21903990.129 21903988.768 21903990.147
+ 40.300 34.400
+ -1300164.385 3 -1013109.216 2 24424699.293 24424697.438 24424698.495
+ 22.600 12.600
+ -9009502.658 6 -7020388.147 5 22487679.072 22487677.129 22487678.449
+ 37.100 31.500
+ -2989577.108 4 -2329540.862 3 24030867.441 24030863.755 24030866.436
+ 25.300 22.600
+ -18765141.128 7 -14622186.141 6 21147524.334 21147520.064 21147523.873
+ 45.200 40.200
+ 06 1 1 6 47 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13134546.786 6 -10234706.047 5 21969240.875 21969238.394 21969239.629
+ 41.100 33.800
+ -17570344.851 7 -13691173.702 7 20399768.901 20399765.510 20399767.819
+ 42.000 47.600
+ 1549744.262 3 1207590.338 2 23974166.770 23974165.293 23974166.396
+ 23.800 15.100
+ -12377429.911 7 -9644746.877 6 21903263.960 21903262.058 21903263.113
+ 42.400 38.400
+ -14577734.400 6 -11359268.310 5 21893448.634 21893446.883 21893448.449
+ 40.300 34.300
+ -9090436.623 6 -7083453.560 5 22472277.817 22472275.662 22472277.083
+ 36.700 31.300
+ -2991331.485 3 -2330907.946 3 24030532.700 24030529.371 24030532.163
+ 23.800 19.900
+ -18700836.627 7 -14572078.771 6 21159761.061 21159756.776 21159760.626
+ 45.000 40.000
+ 06 1 1 6 48 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13124562.974 6 -10226926.458 5 21971140.633 21971138.457 21971139.330
+ 41.100 34.100
+ -17575780.278 7 -13695409.105 7 20398734.255 20398731.168 20398733.376
+ 42.300 47.500
+ 1659263.349 4 1292929.824 2 23995009.101 23995005.916 23995007.912
+ 27.100 13.900
+ -12440026.529 7 -9693523.460 6 21891352.093 21891350.365 21891351.259
+ 42.600 38.400
+ -14632605.873 6 -11402025.289 5 21883006.777 21883005.163 21883006.559
+ 40.700 34.100
+ -9171081.284 6 -7146293.536 5 22456931.475 22456929.551 22456930.685
+ 36.400 31.600
+ -2992570.666 4 -2331873.496 3 24030297.655 24030294.177 24030296.742
+ 26.500 23.000
+ -18636105.544 7 -14521638.990 6 21172078.892 21172074.937 21172078.404
+ 44.900 40.300
+ 06 1 1 6 48 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13113957.249 6 -10218662.256 5 21973158.356 21973156.668 21973157.310
+ 41.200 34.300
+ -17580905.044 7 -13699402.434 7 20397759.211 20397756.062 20397758.262
+ 42.200 47.500
+ 1768946.505 3 1378397.188 3 24015881.630 24015878.617 24015879.360
+ 21.600 19.300
+ -12502441.026 7 -9742158.136 6 21879475.070 21879473.157 21879474.241
+ 42.600 38.400
+ -14686948.206 6 -11444369.943 5 21872665.951 21872664.119 21872665.547
+ 40.500 34.100
+ -9251435.462 6 -7208907.158 5 22441640.477 22441638.852 22441639.904
+ 37.000 32.400
+ -2993295.109 4 -2332438.036 3 24030159.224 24030156.304 24030158.435
+ 24.600 22.100
+ -18570949.381 7 -14470867.976 6 21184477.644 21184473.723 21184477.106
+ 44.600 40.200
+ 06 1 1 6 49 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13102729.953 6 -10209913.701 5 21975295.143 21975292.879 21975293.983
+ 40.900 33.600
+ -17585718.762 7 -13703153.389 7 20396843.175 20396840.062 20396842.092
+ 42.100 47.500
+ 1878791.505 4 1463990.606 1 24036784.451 24036780.460 24036782.652
+ 24.900 9.000
+ -12564672.899 7 -9790650.500 6 21867632.737 21867630.895 21867632.006
+ 42.900 38.800
+ -14740758.981 6 -11486300.409 5 21862426.059 21862424.288 21862425.678
+ 40.500 34.300
+ -9331498.209 6 -7271293.687 5 22426405.537 22426403.543 22426404.772
+ 37.500 32.600
+ -2993505.204 4 -2332601.755 3 24030119.192 24030116.096 24030118.682
+ 26.800 21.100
+ -18505368.961 7 -14419766.372 6 21196957.624 21196953.394 21196956.944
+ 44.900 40.500
+ 06 1 1 6 49 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13090881.241 6 -10200680.938 5 21977549.840 21977547.513 21977548.764
+ 41.400 33.900
+ -17590221.188 7 -13706661.784 7 20395986.264 20395983.131 20395985.330
+ 42.000 47.400
+ 1988796.525 4 1549708.800 2 24057715.732 24057714.035 24057715.576
+ 25.300 13.900
+ -12626721.544 7 -9839000.091 6 21855825.634 21855823.387 21855824.626
+ 42.900 38.600
+ -14794036.091 6 -11527815.031 5 21852287.739 21852285.870 21852287.353
+ 40.600 34.300
+ -9411268.590 6 -7333452.407 5 22411225.546 22411223.581 22411224.687
+ 36.900 32.300
+ -2993201.459 4 -2332365.080 3 24030176.753 24030173.827 24030176.204
+ 24.600 18.600
+ -18439365.372 7 -14368335.017 6 21209517.797 21209513.325 21209517.027
+ 44.900 40.200
+ 06 1 1 6 50 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13078411.378 6 -10190964.155 5 21979923.357 21979920.281 21979922.026
+ 41.400 33.400
+ -17594411.775 7 -13709927.179 7 20395188.983 20395185.719 20395187.960
+ 42.300 47.500
+ 2098959.699 4 1635550.167 2 24078678.824 24078677.669 24078678.619
+ 24.200 16.100
+ -12688586.395 7 -9887206.475 6 21844052.820 21844050.761 21844051.969
+ 42.800 38.600
+ -14846777.131 6 -11568911.928 5 21842251.633 21842249.431 21842251.205
+ 40.800 33.900
+ -9490745.563 6 -7395382.508 5 22396101.481 22396099.665 22396100.818
+ 37.700 32.600
+ -2992384.182 4 -2331728.229 3 24030332.917 24030329.328 24030332.188
+ 25.600 21.600
+ -18372940.084 7 -14316575.067 6 21222158.035 21222153.633 21222157.245
+ 44.700 39.900
+ 06 1 1 6 50 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13065320.664 6 -10180763.597 5 21982413.661 21982411.548 21982412.676
+ 41.100 33.800
+ -17598290.664 7 -13712949.684 7 20394450.836 20394447.661 20394449.763
+ 42.000 47.500
+ 2209279.076 3 1721513.285 2 24099673.921 24099670.814 24099672.573
+ 23.800 16.100
+ -12750266.971 7 -9935269.258 6 21832315.876 21832313.583 21832314.767
+ 42.900 39.100
+ -14898979.911 6 -11609589.412 5 21832317.559 21832315.667 21832317.195
+ 40.700 34.300
+ -9569928.194 6 -7457083.256 5 22381033.223 22381031.849 22381032.595
+ 37.300 33.400
+ -2991054.271 4 -2330691.936 3 24030586.021 24030582.405 24030585.232
+ 24.900 21.100
+ -18306094.285 7 -14264487.454 6 21234878.200 21234873.998 21234877.564
+ 44.900 39.800
+ 06 1 1 6 51 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13051609.429 6 -10170079.502 5 21985023.009 21985020.671 21985021.815
+ 40.800 33.600
+ -17601857.656 7 -13715729.152 7 20393771.963 20393768.897 20393770.974
+ 42.000 47.700
+ 2319752.952 3 1807596.764 2 24120696.402 24120692.688 24120694.446
+ 19.900 16.100
+ -12811762.576 7 -9983187.896 6 21820613.374 21820611.317 21820612.446
+ 43.000 39.100
+ -14950642.085 6 -11649845.638 5 21822487.099 21822484.856 21822486.472
+ 40.900 34.600
+ -9648815.487 6 -7518553.862 5 22366021.543 22366019.821 22366020.799
+ 37.100 32.100
+ -2989211.958 4 -2329256.389 3 24030936.458 24030933.334 24030935.663
+ 25.900 19.900
+ -18238828.927 7 -14212072.905 6 21247678.386 21247674.109 21247677.785
+ 44.800 39.700
+ 06 1 1 6 51 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13037277.952 6 -10158912.122 5 21987750.050 21987747.680 21987748.982
+ 40.800 33.000
+ -17605112.355 6 -13718265.294 7 20393152.632 20393149.537 20393151.619
+ 41.900 47.500
+ 2430379.149 3 1893798.951 3 24141747.628 24141744.968 24141746.532
+ 23.000 19.900
+ -12873072.597 7 -10030961.945 6 21808946.401 21808944.181 21808945.381
+ 42.900 38.900
+ -15001761.555 6 -11689678.977 5 21812758.494 21812757.081 21812758.506
+ 41.100 34.800
+ -9727406.433 6 -7579793.553 5 22351066.000 22351064.420 22351065.535
+ 38.100 32.400
+ -2986857.844 4 -2327422.021 3 24031384.707 24031380.997 24031383.988
+ 27.100 19.300
+ -18171145.328 7 -14159332.455 6 21260558.344 21260553.967 21260557.580
+ 44.800 39.800
+ 06 1 1 6 52 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13022326.648 6 -10147261.758 5 21990595.539 21990592.852 21990594.364
+ 41.000 33.200
+ -17608054.566 6 -13720557.931 7 20392592.735 20392589.704 20392591.757
+ 41.800 47.600
+ 2541155.422 3 1980118.084 2 24162826.300 24162824.702 24162826.801
+ 21.100 15.100
+ -12934196.513 7 -10078590.970 6 21797314.840 21797312.886 21797313.899
+ 42.800 39.400
+ -15052336.035 6 -11729087.648 5 21803134.787 21803133.013 21803134.516
+ 40.900 34.700
+ -9805700.129 6 -7640801.613 5 22336167.484 22336165.953 22336166.832
+ 38.400 33.800
+ -2983992.605 4 -2325189.344 2 24031929.735 24031925.599 24031929.099
+ 27.600 16.100
+ -18103044.809 7 -14106267.136 6 21273517.472 21273513.162 21273516.715
+ 44.800 40.000
+ 06 1 1 6 52 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13006755.940 6 -10135128.729 5 21993558.254 21993556.106 21993557.365
+ 41.200 33.900
+ -17610683.827 7 -13722606.701 7 20392092.533 20392089.349 20392091.503
+ 42.000 47.600
+ 2652080.211 3 2066552.943 2 24183935.261 24183933.085 24183934.600
+ 22.100 17.000
+ -12995133.574 7 -10126074.392 6 21785719.100 21785717.082 21785718.093
+ 43.300 39.700
+ -15102363.440 6 -11768070.022 5 21793615.007 21793613.037 21793614.683
+ 40.900 34.600
+ -9883695.522 6 -7701577.213 5 22321325.667 22321323.824 22321324.773
+ 38.000 34.300
+ -2980616.830 4 -2322558.876 3 24032571.747 24032568.716 24032570.991
+ 25.300 19.300
+ -18034528.854 7 -14052878.100 6 21286555.568 21286551.313 21286554.847
+ 44.900 39.600
+ 06 1 1 6 53 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12990566.187 6 -10122513.337 5 21996639.156 21996636.936 21996638.106
+ 41.100 34.000
+ -17612999.971 6 -13724411.484 7 20391651.702 20391648.579 20391650.703
+ 41.900 47.600
+ 2763151.702 3 2153102.084 2 24205071.932 24205070.007 24205069.992
+ 22.100 13.900
+ -13055883.108 7 -10173411.687 6 21774158.835 21774156.621 21774157.875
+ 43.400 39.400
+ -15151841.463 6 -11806624.319 5 21784199.328 21784197.822 21784199.212
+ 41.000 34.900
+ -9961391.864 6 -7762119.779 5 22306540.150 22306538.410 22306539.537
+ 38.100 32.700
+ -2976731.232 4 -2319531.148 3 24033311.417 24033308.049 24033310.714
+ 25.600 20.500
+ -17965598.361 7 -13999166.052 6 21299672.466 21299668.223 21299671.867
+ 44.600 39.300
+ 06 1 1 6 53 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12973757.873 6 -10109415.952 5 21999837.600 21999835.357 21999836.632
+ 40.900 33.600
+ -17615002.911 6 -13725972.217 7 20391270.656 20391267.495 20391269.533
+ 41.900 47.600
+ 2874367.777 4 2239763.883 2 24226235.761 24226233.311 24226234.556
+ 24.200 16.100
+ -13116444.689 7 -10220602.533 6 21762634.227 21762632.321 21762633.269
+ 43.200 39.500
+ -15200768.034 6 -11844748.912 5 21774889.170 21774887.555 21774888.987
+ 41.400 34.900
+ -10038788.253 6 -7822428.640 5 22291812.618 22291810.209 22291811.890
+ 38.600 32.800
+ -2972336.319 4 -2316106.551 3 24034147.694 24034144.455 24034147.086
+ 27.900 20.500
+ -17896254.609 7 -13945131.975 6 21312868.182 21312863.915 21312867.565
+ 44.600 39.100
+ 06 1 1 6 54 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12956331.469 6 -10095836.931 5 22003154.018 22003151.604 22003152.892
+ 40.700 33.900
+ -17616692.491 6 -13727288.783 7 20390949.012 20390945.869 20390947.945
+ 41.800 47.400
+ 2985726.350 4 2326536.729 1 24247425.314 24247423.741 24247425.441
+ 25.900 6.500
+ -13176817.673 7 -10267646.410 6 21751145.465 21751143.701 21751144.551
+ 43.400 39.500
+ -15249141.078 6 -11882442.188 5 21765684.329 21765682.275 21765683.861
+ 41.300 34.700
+ -10115883.581 6 -7882502.912 5 22277141.660 22277139.769 22277140.895
+ 38.200 33.800
+ -2967432.849 4 -2312285.653 2 24035080.561 24035077.321 24035080.019
+ 25.900 17.800
+ -17826499.105 7 -13890777.056 6 21326142.269 21326138.130 21326141.551
+ 44.500 39.300
+ 06 1 1 6 54 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12938287.435 6 -10081776.645 5 22006587.738 22006585.110 22006586.565
+ 40.700 33.800
+ -17618068.372 6 -13728360.911 7 20390687.266 20390683.902 20390686.240
+ 41.900 47.300
+ 3097225.631 3 2413419.328 24268643.461 24268642.097 24268642.607
+ 21.600 3.000
+ -13237001.332 7 -10314542.767 6 21739693.021 21739691.091 21739692.225
+ 43.900 39.700
+ -15296958.467 6 -11919702.482 5 21756584.797 21756582.909 21756584.504
+ 41.400 35.200
+ -10192677.063 6 -7942341.958 5 22262528.461 22262526.247 22262527.759
+ 38.600 33.800
+ -2962021.396 4 -2308068.955 3 24036110.858 24036107.452 24036110.183
+ 27.400 20.500
+ -17756333.225 7 -13836102.367 6 21339494.461 21339490.230 21339493.875
+ 44.600 39.400
+ 06 1 1 6 55 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12919626.393 6 -10067235.581 5 22010138.636 22010136.155 22010137.447
+ 40.900 33.800
+ -17619130.003 7 -13729188.155 7 20390485.210 20390481.938 20390484.226
+ 42.000 47.300
+ 3208863.819 3 2500410.069 1 24289888.699 24289886.786 24289887.392
+ 22.600 6.500
+ -13296994.918 7 -10361291.018 6 21728276.546 21728274.877 21728275.670
+ 43.500 40.100
+ -15344218.151 6 -11956528.202 5 21747591.521 21747589.448 21747591.154
+ 41.200 34.600
+ -10269167.735 6 -8001945.060 5 22247972.694 22247970.555 22247972.044
+ 39.400 34.000
+ -2956102.559 4 -2303456.874 3 24037236.986 24037233.279 24037235.982
+ 25.600 19.300
+ -17685757.932 7 -13781108.654 6 21352924.219 21352920.252 21352923.807
+ 44.500 39.300
+ 06 1 1 6 55 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12900348.843 6 -10052214.106 5 22013806.653 22013804.794 22013805.617
+ 40.700 34.300
+ -17619877.213 7 -13729770.395 7 20390342.987 20390339.816 20390342.018
+ 42.300 47.300
+ 3320637.975 3 2587506.802 2 24311157.778 24311156.573 24311156.778
+ 22.100 12.600
+ -13356797.878 7 -10407890.721 6 21716896.479 21716894.590 21716895.534
+ 43.600 39.800
+ -15390918.057 6 -11992917.727 5 21738704.794 21738702.629 21738704.527
+ 41.600 34.500
+ -10345354.869 6 -8061311.638 5 22233474.416 22233472.754 22233473.878
+ 39.300 34.300
+ -2949677.517 4 -2298450.362 3 24038459.617 24038455.956 24038459.036
+ 26.800 20.500
+ -17614774.596 7 -13725796.981 6 21366431.794 21366428.033 21366431.497
+ 44.200 39.300
+ 06 1 1 6 56 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12880455.335 6 -10036712.662 5 22017592.589 22017590.460 22017591.434
+ 40.700 34.000
+ -17620310.047 7 -13730107.670 7 20390260.826 20390257.476 20390259.824
+ 42.000 47.300
+ 3432547.347 3 2674708.874 1 24332453.195 24332451.845 24332453.142
+ 23.400 9.000
+ -13416409.575 7 -10454341.399 6 21705552.860 21705550.715 21705551.887
+ 43.800 39.700
+ -15437056.201 6 -12028869.520 5 21729925.231 21729922.876 21729924.756
+ 41.500 34.500
+ -10421237.414 6 -8120440.879 5 22219034.761 22219032.436 22219033.966
+ 38.600 33.500
+ -2942746.851 4 -2293049.875 3 24039778.894 24039774.886 24039778.016
+ 26.800 19.300
+ -17543384.765 7 -13670168.558 6 21380017.033 21380013.047 21380016.583
+ 44.300 39.000
+ 06 1 1 6 56 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12859946.507 6 -10020731.763 5 22021495.340 22021493.214 22021494.175
+ 40.500 34.700
+ -17620428.027 7 -13730199.605 7 20390238.344 20390235.061 20390237.323
+ 42.200 47.400
+ 3544589.727 3 2762014.611 2 24353774.963 24353773.025 24353773.994
+ 20.500 12.600
+ -13475829.461 7 -10500642.607 6 21694245.315 21694243.525 21694244.429
+ 43.400 39.800
+ -15482630.421 6 -12064381.896 5 21721252.482 21721250.413 21721252.267
+ 41.900 34.500
+ -10496814.453 6 -8179332.065 5 22204653.047 22204650.618 22204652.211
+ 39.200 34.000
+ -2935311.378 4 -2287255.988 3 24041193.083 24041190.163 24041192.478
+ 25.300 21.100
+ -17471589.721 7 -13614224.398 6 21393678.984 21393675.225 21393678.652
+ 44.300 38.900
+ 06 1 1 6 57 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12838823.011 6 -10004271.898 5 22025514.433 22025512.984 22025513.496
+ 40.600 34.400
+ -17620231.156 7 -13730046.194 7 20390275.654 20390272.519 20390274.639
+ 42.200 47.400
+ 3656762.526 2 2849421.911 2 24375120.651 24375119.016 24375118.919
+ 17.800 17.800
+ -13535056.818 7 -10546793.791 6 21682974.724 21682973.133 21682973.919
+ 43.700 40.300
+ -15527638.822 7 -12099453.369 5 21712687.765 21712685.643 21712687.548
+ 42.100 34.500
+ -10572085.227 6 -8237984.587 5 22190329.152 22190327.302 22190328.542
+ 39.100 35.500
+ -2927371.429 4 -2281069.028 3 24042704.184 24042701.144 24042703.750
+ 27.400 18.600
+ -17399390.653 7 -13557965.401 6 21407417.685 21407414.085 21407417.508
+ 43.800 38.700
+ 06 1 1 6 57 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12817085.418 6 -9987333.514 5 22029651.527 22029649.377 22029650.241
+ 40.500 34.300
+ -17619718.809 7 -13729646.966 7 20390373.193 20390369.894 20390372.194
+ 42.000 47.300
+ 3769064.372 2 2936929.753 2 24396490.013 24396489.192 24396489.268
+ 16.100 17.800
+ -13594091.051 7 -10592794.487 6 21671741.064 21671739.207 21671740.233
+ 43.800 40.200
+ -15572079.383 7 -12134082.371 5 21704231.088 21704228.877 21704230.851
+ 42.100 34.500
+ -10647048.975 6 -8296397.879 5 22176064.166 22176062.182 22176063.491
+ 39.700 34.900
+ -2918928.109 4 -2274489.807 2 24044310.683 24044307.085 24044310.152
+ 26.500 17.000
+ -17326789.104 7 -13501392.794 6 21421233.726 21421229.830 21421233.258
+ 44.000 38.900
+ 06 1 1 6 58 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12794734.426 6 -9969917.159 5 22033904.529 22033902.549 22033903.587
+ 41.100 34.000
+ -17618891.090 7 -13729001.993 7 20390530.838 20390527.473 20390529.735
+ 42.000 47.300
+ 3881493.144 3 3024536.469 2 24417884.746 24417883.646 24417883.991
+ 19.900 17.800
+ -13652931.537 7 -10638644.207 6 21660544.218 21660542.091 21660543.325
+ 44.000 40.200
+ -15615950.217 7 -12168267.421 5 21695882.906 21695880.462 21695882.483
+ 42.200 34.500
+ -10721704.586 6 -8354571.065 5 22161857.680 22161855.665 22161856.916
+ 39.700 34.800
+ -2909982.285 4 -2267519.045 2 24046013.459 24046009.767 24046012.593
+ 26.500 17.000
+ -17253786.586 7 -13444507.732 6 21435125.326 21435121.748 21435125.217
+ 44.000 38.900
+ 06 1 1 6 58 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12771770.829 6 -9952023.436 5 22038274.614 22038272.436 22038273.627
+ 41.200 33.800
+ -17617747.701 7 -13728111.047 7 20390748.255 20390745.209 20390747.269
+ 42.100 47.500
+ 3994046.931 3 3112240.665 2 24439304.170 24439301.835 24439303.025
+ 23.000 17.000
+ -13711577.558 7 -10684342.403 6 21649384.252 21649381.978 21649383.282
+ 43.800 39.700
+ -15659249.421 7 -12202007.057 5 21687643.091 21687641.128 21687642.786
+ 42.000 34.800
+ -10796051.488 6 -8412503.707 5 22147709.876 22147707.858 22147709.040
+ 39.500 35.200
+ -2900534.827 4 -2260157.407 2 24047811.602 24047807.831 24047810.864
+ 29.700 16.100
+ -17180384.206 7 -13387311.085 6 21449093.395 21449089.680 21449093.118
+ 43.400 38.300
+ 06 1 1 6 59 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12748195.363 6 -9933652.939 5 22042761.251 22042758.593 22042759.970
+ 40.700 33.500
+ -17616288.354 7 -13726973.898 7 20391025.800 20391022.865 20391024.940
+ 42.000 47.500
+ 4106723.665 3 3200040.641 2 24460746.073 24460742.984 24460744.314
+ 21.100 16.100
+ -13770028.475 7 -10729888.578 6 21638261.591 21638259.093 21638260.588
+ 44.000 39.800
+ -15701975.077 7 -12235299.773 5 21679512.608 21679510.696 21679512.236
+ 42.000 34.800
+ -10870088.660 6 -8470194.989 5 22133621.020 22133619.125 22133620.311
+ 39.700 35.800
+ -2890586.869 4 -2252405.756 2 24049704.264 24049700.366 24049703.455
+ 25.600 16.100
+ -17106583.664 7 -13329804.196 6 21463137.164 21463133.483 21463136.842
+ 43.300 38.100
+ 06 1 1 6 59 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12724008.729 6 -9914806.211 5 22047363.442 22047361.289 22047362.328
+ 40.800 34.300
+ -17614512.646 7 -13725590.232 7 20391363.973 20391360.707 20391363.001
+ 42.200 47.500
+ 4219521.221 3 3287934.821 9 24482209.726 24482208.219 24482209.393
+ 23.800 -3.000
+ -13828283.599 7 -10775282.180 6 21627175.654 21627173.838 21627174.751
+ 43.900 40.500
+ -15744125.238 6 -12268144.047 5 21671491.669 21671490.108 21671491.292
+ 41.800 35.700
+ -10943815.478 6 -8527644.443 5 22119591.496 22119589.156 22119590.840
+ 40.100 35.700
+ -2880138.669 4 -2244264.295 2 24051692.751 24051689.116 24051692.078
+ 27.400 17.000
+ -17032386.220 7 -13271988.028 6 21477257.196 21477252.952 21477256.441
+ 43.800 38.400
+ 06 1 1 7 0 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12699211.661 6 -9895483.821 5 22052081.822 22052079.752 22052080.843
+ 40.900 33.800
+ -17612420.567 7 -13723960.043 7 20391762.092 20391758.919 20391761.103
+ 42.100 47.500
+ 4332437.874 3 3375921.736 24503696.774 24503696.157 24503696.859
+ 21.600 3.000
+ -13886342.381 7 -10820522.787 6 21616127.625 21616125.509 21616126.753
+ 44.400 40.300
+ -15785698.025 7 -12300538.409 5 21663580.565 21663578.834 21663580.395
+ 42.200 35.500
+ -11017231.013 6 -8584851.352 5 22105621.107 22105618.602 22105620.356
+ 40.300 35.700
+ -2869191.598 4 -2235734.109 1 24053775.198 24053771.636 24053774.681
+ 26.500 11.000
+ -16957793.334 7 -13213863.730 6 21491451.628 21491447.605 21491450.905
+ 43.500 38.400
+ 06 1 1 7 0 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12673804.998 6 -9875686.421 5 22056916.912 22056914.396 22056915.746
+ 40.900 33.600
+ -17610011.634 6 -13722082.951 7 20392220.366 20392217.372 20392219.349
+ 41.900 47.500
+ 4445471.785 2 3464000.099 1 24525209.105 24525205.899 24525207.321
+ 17.800 11.000
+ -13944204.154 7 -10865609.887 6 21605116.660 21605114.600 21605115.730
+ 44.100 40.000
+ -15826691.709 7 -12332481.530 5 21655779.382 21655777.933 21655779.368
+ 42.300 35.100
+ -11090334.410 6 -8641815.022 6 22091709.701 22091707.826 22091709.160
+ 40.300 36.600
+ -2857746.514 4 -2226815.830 2 24055953.439 24055950.000 24055952.823
+ 28.600 17.000
+ -16882806.328 7 -13155432.325 6 21505721.378 21505716.894 21505720.511
+ 43.100 37.700
+ 06 1 1 7 1 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12647789.636 6 -9855414.716 5 22061867.654 22061865.332 22061866.438
+ 40.900 33.800
+ -17607285.651 7 -13719958.805 7 20392739.033 20392736.028 20392738.199
+ 42.000 47.500
+ 4558620.760 2 3552167.990 2 24546739.684 24546736.809 24546738.101
+ 17.000 13.900
+ -14001868.213 7 -10910542.919 6 21594143.347 21594141.627 21594142.578
+ 44.100 40.100
+ -15867104.380 7 -12363971.917 5 21648089.599 21648087.377 21648089.249
+ 42.400 35.100
+ -11163124.925 6 -8698534.891 6 22077858.104 22077856.191 22077857.469
+ 40.300 36.500
+ -2845804.216 4 -2217510.148 2 24058226.299 24058222.132 24058225.705
+ 29.500 15.100
+ -16807426.590 7 -13096694.890 6 21520065.850 21520061.332 21520065.060
+ 43.600 38.100
+ 06 1 1 7 1 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12621166.355 6 -9834669.304 5 22066934.002 22066931.579 22066932.696
+ 40.600 34.400
+ -17604242.521 7 -13717587.544 7 20393318.167 20393315.106 20393317.267
+ 42.100 47.500
+ 4671882.504 3 3640423.824 2 24568290.899 24568290.603 24568290.441
+ 19.900 16.100
+ -14059333.965 7 -10955321.428 6 21583208.365 21583206.341 21583207.434
+ 44.500 40.700
+ -15906934.325 7 -12395008.231 5 21640510.490 21640507.889 21640510.018
+ 42.400 34.900
+ -11235601.821 6 -8755010.395 6 22064066.394 22064064.142 22064065.602
+ 40.300 36.300
+ -2833365.956 4 -2207818.004 2 24060593.517 24060589.314 24060592.602
+ 27.400 15.100
+ -16731655.897 7 -13037652.808 6 21534484.746 21534480.136 21534483.793
+ 43.500 38.200
+ 06 1 1 7 2 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12593936.029 6 -9813450.870 5 22072115.400 22072113.272 22072114.358
+ 40.700 34.100
+ -17600881.894 7 -13714968.873 7 20393957.703 20393954.606 20393956.695
+ 42.100 47.300
+ -14116600.720 7 -10999944.874 6 21572310.989 21572308.947 21572310.032
+ 44.600 40.900
+ -15946179.647 7 -12425588.992 5 21633042.111 21633039.942 21633041.731
+ 42.300 34.800
+ -11307764.185 6 -8811240.783 6 22050333.799 22050332.229 22050333.142
+ 39.700 36.400
+ -2820432.481 4 -2197739.994 2 24063054.075 24063050.344 24063053.336
+ 28.400 17.000
+ -16655495.738 7 -12978307.249 6 21548977.195 21548973.017 21548976.489
+ 43.300 38.200
+ 06 1 1 7 2 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12566099.679 6 -9791760.207 5 22077412.328 22077410.156 22077411.129
+ 40.300 33.800
+ -17597203.625 6 -13712102.687 7 20394657.680 20394654.556 20394656.639
+ 41.900 47.300
+ -14173667.698 7 -11044412.650 6 21561451.061 21561449.398 21561450.316
+ 44.500 41.000
+ -15984838.770 7 -12455712.980 5 21625684.862 21625683.501 21625685.002
+ 42.300 35.400
+ -11379611.379 6 -8867225.608 6 22036662.063 22036660.110 22036661.262
+ 40.400 36.800
+ -2807004.881 4 -2187276.921 2 24065609.491 24065605.763 24065608.870
+ 28.600 15.100
+ -16578947.579 7 -12918659.349 6 21563543.670 21563539.510 21563543.036
+ 43.200 38.100
+ 06 1 1 7 3 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12537658.192 6 -9769598.004 5 22082824.518 22082822.496 22082823.490
+ 40.100 34.300
+ -17593207.312 7 -13708988.676 7 20395418.358 20395415.102 20395417.254
+ 42.300 47.400
+ -14230534.221 7 -11088724.226 6 21550629.849 21550627.976 21550629.038
+ 44.400 40.600
+ -16022909.843 7 -12485378.745 5 21618440.761 21618438.635 21618440.468
+ 42.500 35.100
+ -11451142.655 6 -8922964.259 6 22023050.301 22023048.004 22023049.455
+ 40.700 36.200
+ -2793084.441 4 -2176429.837 1 24068258.747 24068254.127 24068257.971
+ 29.000 11.000
+ -16502012.902 7 -12858710.265 6 21578183.801 21578179.676 21578183.236
+ 43.500 37.700
+ 06 1 1 7 3 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12508612.404 6 -9746964.928 5 22088351.670 22088349.809 22088350.688
+ 40.200 33.400
+ -17588892.793 7 -13705626.715 7 20396239.272 20396236.080 20396238.204
+ 42.100 47.300
+ -14287199.564 7 -11132879.041 6 21539846.679 21539845.148 21539845.929
+ 44.500 40.900
+ -16060391.216 7 -12514585.007 5 21611308.445 21611306.129 21611308.020
+ 42.600 35.200
+ -11522357.162 6 -8978456.073 6 22009498.460 22009496.565 22009497.787
+ 41.000 37.000
+ -2778672.035 4 -2165199.372 2 24071000.744 24070997.862 24071000.178
+ 27.900 13.900
+ -16424693.069 7 -12798461.064 6 21592897.417 21592893.307 21592896.758
+ 43.400 37.900
+ 06 1 1 7 4 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12478963.462 6 -9723861.859 5 22093994.090 22093991.713 22093992.963
+ 40.700 33.500
+ -17584260.340 7 -13702017.015 7 20397120.599 20397117.549 20397119.679
+ 42.200 47.200
+ -14343663.066 7 -11176876.569 6 21529102.447 21529100.402 21529101.493
+ 44.400 40.900
+ -16097281.208 7 -12543330.446 5 21604288.320 21604286.190 21604287.907
+ 42.300 35.300
+ -11593254.187 6 -9033700.497 6 21996007.208 21996005.379 21996006.586
+ 41.100 37.000
+ -2763768.461 4 -2153586.197 2 24073837.224 24073832.907 24073836.683
+ 28.400 16.100
+ -16346989.666 7 -12737912.987 6 21607683.848 21607679.842 21607683.222
+ 43.100 38.000
+ 06 1 1 7 4 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12448712.270 6 -9700289.498 5 22099750.862 22099748.530 22099749.641
+ 40.500 34.000
+ -17579308.764 7 -13698158.648 7 20398063.134 20398059.838 20398061.997
+ 42.100 47.300
+ -14399923.917 7 -11220716.195 6 21518396.055 21518394.145 21518395.249
+ 44.600 40.900
+ -16133578.149 7 -12571613.769 5 21597381.153 21597378.962 21597380.822
+ 42.200 35.300
+ -11663833.060 6 -9088697.011 6 21982576.308 21982574.474 21982575.676
+ 41.000 36.900
+ -2748375.283 4 -2141591.498 2 24076766.519 24076762.637 24076765.836
+ 28.600 16.100
+ -16268904.194 7 -12677067.190 6 21622543.176 21622538.794 21622542.421
+ 42.800 37.500
+ 06 1 1 7 5 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12417859.888 6 -9676248.688 5 22105621.796 22105619.314 22105620.468
+ 40.300 33.400
+ -17574038.431 7 -13694051.901 7 20399065.976 20399062.702 20399064.911
+ 42.200 47.100
+ -14455981.457 7 -11264397.398 6 21507728.483 21507726.631 21507727.709
+ 44.400 40.500
+ -16169280.519 7 -12599433.798 5 21590587.045 21590585.158 21590586.778
+ 42.500 35.300
+ -11734092.970 6 -9143444.980 6 21969206.201 21969204.307 21969205.711
+ 41.500 36.700
+ -2732493.212 4 -2129215.880 2 24079788.400 24079784.891 24079787.959
+ 28.100 17.000
+ -16190438.612 7 -12615925.201 6 21637474.849 21637470.262 21637474.053
+ 42.900 37.200
+ 06 1 1 7 5 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12386407.369 6 -9651740.234 5 22111607.119 22111604.549 22111605.900
+ 40.000 32.800
+ -17568448.913 7 -13689696.432 7 20400129.540 20400126.269 20400128.502
+ 42.100 47.000
+ -14511834.930 7 -11307919.583 6 21497099.888 21497098.099 21497099.099
+ 44.400 40.600
+ -16204386.610 7 -12626789.185 5 21583906.641 21583904.789 21583906.415
+ 42.400 35.600
+ -11804033.364 6 -9197943.986 6 21955897.473 21955895.185 21955896.716
+ 41.700 37.200
+ -2716123.531 4 -2116460.288 3 24082903.492 24082900.175 24082902.883
+ 25.900 18.600
+ -16111594.007 7 -12554487.871 6 21652478.387 21652474.053 21652477.763
+ 43.100 37.200
+ 06 1 1 7 6 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12354355.836 6 -9626765.009 5 22117706.072 22117703.546 22117704.856
+ 40.100 32.700
+ -17562539.988 7 -13685092.075 7 20401254.003 20401250.815 20401253.019
+ 42.200 47.100
+ -14567483.627 7 -11351282.205 6 21486510.490 21486508.460 21486509.632
+ 44.700 40.500
+ -16238894.885 7 -12653678.742 5 21577340.065 21577338.228 21577339.704
+ 42.600 35.800
+ -11873653.454 6 -9252193.397 6 21942649.052 21942646.787 21942648.211
+ 41.400 36.900
+ -2699267.372 4 -2103325.616 2 24086111.551 24086107.896 24086110.581
+ 25.600 16.100
+ -16032372.090 7 -12492756.537 6 21667553.916 21667549.701 21667553.115
+ 42.800 37.600
+ 06 1 1 7 6 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12321706.289 6 -9601323.799 5 22123919.042 22123916.508 22123918.035
+ 40.200 33.000
+ -17556311.652 7 -13680238.829 7 20402439.252 20402436.106 20402438.203
+ 42.100 47.100
+ -14622926.927 7 -11394484.775 6 21475960.113 21475957.997 21475959.235
+ 44.900 40.900
+ -16272803.751 7 -12680101.218 6 21570887.494 21570885.531 21570887.145
+ 42.800 36.000
+ -11942952.528 6 -9306192.664 6 21929462.036 21929459.483 21929461.268
+ 41.900 36.900
+ -2681925.912 4 -2089812.799 3 24089411.388 24089407.985 24089410.596
+ 25.300 19.900
+ -15952774.544 7 -12430732.510 6 21682700.691 21682696.411 21682699.977
+ 42.500 36.900
+ 06 1 1 7 7 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12288459.860 6 -9575417.488 5 22130245.541 22130243.425 22130244.488
+ 39.900 33.200
+ -17549763.188 7 -13675136.130 7 20403685.414 20403682.138 20403684.400
+ 42.400 47.000
+ -14678164.102 7 -11437526.736 6 21465448.791 21465446.859 21465447.897
+ 44.900 41.100
+ -16306111.703 7 -12706055.463 5 21564548.942 21564547.148 21564548.744
+ 42.800 35.800
+ -12011929.809 6 -9359941.162 6 21916335.749 21916333.807 21916334.932
+ 41.800 37.700
+ -2664100.356 4 -2075922.726 3 24092802.871 24092800.356 24092802.429
+ 25.900 19.300
+ -15872802.921 7 -12368416.984 6 21697918.856 21697914.593 21697918.098
+ 42.700 37.000
+ 06 1 1 7 7 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12254617.735 6 -9549047.010 5 22136685.614 22136683.128 22136684.470
+ 40.200 32.600
+ -17542894.855 7 -13669784.176 7 20404992.350 20404989.038 20404991.420
+ 42.300 46.900
+ -14733194.465 7 -11480407.537 6 21454976.800 21454975.023 21454975.853
+ 44.600 41.500
+ -16338817.263 7 -12731540.311 5 21558325.351 21558323.416 21558325.123
+ 42.800 35.900
+ -12080584.759 6 -9413438.486 6 21903271.035 21903268.840 21903270.355
+ 41.900 36.800
+ -2645791.926 4 -2061656.425 3 24096287.472 24096283.912 24096286.646
+ 24.900 19.900
+ -15792458.853 7 -12305811.245 6 21713207.688 21713203.605 21713207.019
+ 42.300 37.000
+ 06 1 1 7 8 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12220181.090 6 -9522213.256 5 22143238.630 22143236.442 22143237.516
+ 40.400 33.100
+ -17535706.182 7 -13664182.613 7 20406360.252 20406357.061 20406359.251
+ 42.400 46.900
+ -14788017.324 7 -11523126.649 6 21444544.114 21444542.554 21444543.293
+ 44.800 41.400
+ -16370918.931 7 -12756554.593 5 21552216.793 21552214.742 21552216.453
+ 43.000 35.800
+ -12148916.493 6 -9466683.976 6 21890267.741 21890265.557 21890267.152
+ 41.900 36.200
+ -2627001.863 4 -2047014.850 3 24099863.004 24099859.653 24099862.274
+ 24.600 21.600
+ -15711743.691 7 -12242916.352 6 21728567.192 21728563.236 21728566.599
+ 42.200 36.600
+ 06 1 1 7 8 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12185151.159 6 -9494917.202 5 22149904.417 22149902.481 22149903.541
+ 40.400 33.100
+ -17528196.842 7 -13658331.187 7 20407789.227 20407786.109 20407788.269
+ 42.300 46.800
+ -14842631.868 7 -11565683.432 6 21434151.640 21434149.570 21434150.758
+ 45.300 41.200
+ -16402415.197 7 -12781097.127 6 21546223.137 21546221.258 21546222.845
+ 42.900 36.200
+ -12216924.534 6 -9519677.236 6 21877326.314 21877324.455 21877325.642
+ 41.900 37.400
+ -2607731.326 4 -2031998.863 3 24103529.232 24103526.415 24103528.970
+ 24.600 19.900
+ -15630659.537 7 -12179733.929 6 21743996.695 21743993.079 21743996.410
+ 42.300 36.700
+ 06 1 1 7 9 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12149529.060 6 -9467159.725 5 22156683.242 22156681.070 22156682.162
+ 40.300 32.400
+ -17520366.595 7 -13652229.698 7 20409279.252 20409276.101 20409278.231
+ 42.500 46.900
+ -14897037.400 7 -11608077.363 6 21423798.741 21423796.497 21423797.809
+ 45.500 41.200
+ -16433304.728 7 -12805166.880 6 21540344.799 21540343.074 21540344.606
+ 42.800 36.100
+ -12284608.297 6 -9572417.807 6 21864446.429 21864444.761 21864445.713
+ 41.900 37.700
+ -2587981.809 4 -2016609.628 3 24107287.409 24107285.212 24107286.705
+ 24.600 21.600
+ -15549207.615 7 -12116264.934 6 21759496.382 21759492.811 21759496.237
+ 42.600 36.600
+ 06 1 1 7 9 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12113316.148 6 -9438941.875 5 22163574.133 22163572.060 22163573.182
+ 39.900 32.800
+ -17512215.615 7 -13645878.285 7 20410830.401 20410827.183 20410829.498
+ 42.300 46.800
+ -14951233.254 7 -11650307.902 6 21413485.441 21413483.457 21413484.630
+ 45.300 41.500
+ -16463586.071 7 -12828762.726 6 21534582.843 21534580.822 21534582.424
+ 43.000 36.400
+ -12351967.024 6 -9624905.089 6 21851628.678 21851626.619 21851627.887
+ 41.900 37.400
+ -2567754.413 3 -2000848.046 3 24111137.147 24111133.952 24111136.130
+ 22.100 21.600
+ -15467389.826 6 -12052510.837 6 21775066.050 21775062.392 21775065.666
+ 41.900 36.700
+ 06 1 1 7 10 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12076513.633 6 -9410264.588 5 22170577.801 22170575.378 22170576.470
+ 39.700 32.800
+ -17503743.410 7 -13639276.566 7 20412442.778 20412439.417 20412441.749
+ 42.700 46.700
+ -15005218.629 7 -11692374.431 6 21403212.409 21403210.528 21403211.499
+ 45.000 41.600
+ -16493257.829 7 -12851883.570 5 21528936.425 21528934.370 21528936.223
+ 43.300 35.900
+ -12419000.191 7 -9677138.712 6 21838872.542 21838870.787 21838871.916
+ 42.400 37.800
+ -2547050.415 4 -1984715.063 3 24115077.329 24115073.882 24115076.644
+ 25.300 20.500
+ -15385207.733 7 -11988472.874 6 21790705.288 21790701.244 21790704.586
+ 42.100 37.000
+ 06 1 1 7 10 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12039122.774 6 -9381128.857 5 22177692.764 22177690.739 22177691.776
+ 40.000 33.100
+ -17494949.794 7 -13632424.401 7 20414116.144 20414112.812 20414115.045
+ 42.500 46.900
+ -15058992.743 7 -11734276.335 6 21392979.668 21392977.742 21392978.651
+ 45.200 41.700
+ -16522318.697 7 -12874528.397 6 21523406.198 21523404.295 21523406.039
+ 43.300 36.200
+ -12485707.011 7 -9729118.025 6 21826178.908 21826176.618 21826178.249
+ 42.800 37.300
+ -2525871.141 3 -1968211.728 3 24119107.196 24119104.439 24119106.655
+ 22.600 21.100
+ -15302663.003 7 -11924152.333 6 21806413.377 21806408.836 21806412.528
+ 42.200 36.400
+ 06 1 1 7 11 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12001144.919 6 -9351535.728 5 22184920.012 22184917.712 22184918.864
+ 40.100 33.000
+ -17485834.182 7 -13625321.327 7 20415850.650 20415847.379 20415849.599
+ 42.400 46.700
+ -15112554.838 7 -11776013.039 6 21382786.956 21382785.028 21382786.170
+ 45.400 41.600
+ -16550767.300 7 -12896696.136 6 21517992.581 21517990.656 21517992.301
+ 43.100 36.000
+ -12552087.068 7 -9780842.742 6 21813547.095 21813544.736 21813546.305
+ 42.400 36.500
+ -2504218.056 3 -1951339.194 3 24123227.907 24123224.620 24123227.198
+ 23.000 21.100
+ -15219757.539 7 -11859550.692 5 21822189.478 21822185.226 21822188.910
+ 42.300 35.900
+ 06 1 1 7 11 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11962581.410 6 -9321486.231 5 22192258.071 22192255.914 22192257.138
+ 40.100 32.100
+ -17476396.948 7 -13617967.641 7 20417646.479 20417643.258 20417645.463
+ 42.200 46.700
+ -15165904.157 7 -11817583.939 6 21372635.033 21372632.863 21372634.146
+ 45.200 41.500
+ -16578602.460 7 -12918385.863 6 21512695.953 21512693.839 21512695.497
+ 43.000 36.200
+ -12618139.691 7 -9832312.306 6 21800977.248 21800975.478 21800976.648
+ 42.400 37.000
+ -2482092.445 3 -1934098.501 3 24127438.353 24127434.523 24127437.442
+ 23.800 21.100
+ -15136492.612 7 -11794668.954 5 21838034.419 21838029.911 21838033.711
+ 42.000 35.600
+ 06 1 1 7 12 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11923433.525 6 -9290981.390 5 22199708.045 22199705.765 22199706.771
+ 39.400 32.800
+ -17466637.554 7 -13610362.917 7 20419503.666 20419500.481 20419502.571
+ 42.300 46.800
+ -15219039.959 7 -11858988.463 6 21362523.529 21362521.666 21362522.751
+ 45.600 41.800
+ -16605822.745 7 -12939596.469 6 21507516.425 21507514.115 21507516.008
+ 43.500 36.100
+ -12683864.206 7 -9883526.204 6 21788470.449 21788468.669 21788469.873
+ 42.700 37.700
+ -2459495.631 3 -1916490.595 3 24131737.628 24131735.076 24131737.151
+ 22.600 22.600
+ -15052870.247 7 -11729508.688 5 21853946.800 21853942.900 21853946.392
+ 42.100 35.900
+ 06 1 1 7 12 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11883702.743 6 -9260022.342 5 22207268.097 22207266.093 22207267.042
+ 39.500 32.700
+ -17456555.803 7 -13602507.007 7 20421422.046 20421418.978 20421421.079
+ 42.300 46.700
+ -15271961.676 7 -11900226.167 6 21352453.037 21352451.003 21352452.097
+ 45.600 41.900
+ -16632426.948 7 -12960327.013 6 21502453.572 21502451.354 21502453.272
+ 43.500 36.000
+ -12749259.985 7 -9934483.948 6 21776026.542 21776024.342 21776025.803
+ 43.300 38.100
+ -2436429.054 4 -1898516.645 3 24136127.502 24136124.501 24136127.032
+ 24.600 21.100
+ -14968891.873 6 -11664071.008 6 21869927.522 21869923.549 21869927.007
+ 41.800 36.100
+ 06 1 1 7 13 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11843390.439 6 -9228610.155 5 22214939.461 22214937.191 22214938.446
+ 40.100 32.700
+ -17446151.439 7 -13594399.718 7 20423401.981 20423398.817 20423401.074
+ 42.400 46.600
+ -15324668.468 7 -11941296.394 6 21342423.178 21342421.148 21342422.425
+ 45.900 41.700
+ -16658413.974 7 -12980576.638 6 21497508.193 21497506.175 21497507.925
+ 43.200 36.000
+ -12814326.538 7 -9985185.161 6 21763644.696 21763642.616 21763643.929
+ 43.200 38.100
+ -2412894.118 3 -1880177.744 3 24140606.110 24140603.325 24140605.361
+ 23.000 23.400
+ -14884559.458 6 -11598357.467 5 21885975.213 21885971.223 21885974.710
+ 41.400 35.500
+ 06 1 1 7 13 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11802497.965 6 -9196745.887 5 22222721.295 22222718.981 22222719.999
+ 39.700 33.100
+ -17435424.216 7 -13586040.846 7 20425443.129 20425440.140 20425442.236
+ 42.300 46.600
+ -15377159.519 7 -11982198.520 6 21332434.721 21332432.331 21332433.746
+ 45.800 41.500
+ -16683782.386 7 -13000344.228 6 21492680.489 21492678.770 21492680.319
+ 43.200 36.300
+ -12879063.169 7 -10035629.268 6 21751325.351 21751323.709 21751324.703
+ 43.300 38.200
+ -2388892.320 3 -1861475.050 3 24145174.237 24145170.503 24145173.417
+ 23.800 23.400
+ -14799874.671 6 -11532369.339 5 21902090.510 21902086.279 21902089.835
+ 41.400 35.400
+ 06 1 1 7 14 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11761026.750 6 -9164430.659 5 22230612.874 22230610.604 22230611.547
+ 39.300 33.100
+ -17424374.024 7 -13577430.309 7 20427546.046 20427542.970 20427545.016
+ 42.100 46.600
+ -15429434.086 7 -12022931.953 6 21322487.081 21322484.843 21322486.208
+ 46.000 41.700
+ -16708531.227 7 -13019629.036 6 21487971.107 21487969.350 21487970.806
+ 43.200 36.800
+ -12943469.304 7 -10085815.836 6 21739069.390 21739067.472 21739068.695
+ 43.200 38.100
+ -2364425.085 4 -1842409.703 3 24149829.226 24149826.535 24149828.847
+ 25.300 23.000
+ -14714839.259 6 -11466108.007 5 21918272.326 21918268.111 21918271.593
+ 41.400 35.800
+ 06 1 1 7 14 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11718978.309 6 -9131665.642 5 22238614.452 22238612.403 22238613.326
+ 39.300 33.400
+ -17413000.393 7 -13568567.745 7 20429710.485 20429707.305 20429709.442
+ 42.200 46.600
+ -15481491.227 7 -12063495.960 7 21312580.807 21312578.920 21312579.952
+ 45.800 42.000
+ -16732659.222 7 -13038430.066 6 21483379.808 21483377.972 21483379.472
+ 43.100 36.700
+ -13007544.678 7 -10135744.689 6 21726876.548 21726874.128 21726875.806
+ 43.700 37.800
+ -2339493.854 4 -1822982.774 4 24154574.078 24154570.978 24154573.400
+ 24.200 25.300
+ -14629455.333 6 -11399575.103 5 21934520.390 21934516.166 21934519.574
+ 41.000 35.500
+ 06 1 1 7 15 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11676354.173 6 -9098452.029 5 22246725.471 22246723.201 22246724.298
+ 39.300 32.400
+ -17401303.522 7 -13559453.306 7 20431936.123 20431933.130 20431935.141
+ 42.300 46.500
+ -15533330.308 7 -12103890.049 7 21302716.393 21302714.197 21302715.390
+ 46.000 42.000
+ -16756165.338 7 -13056746.514 6 21478906.673 21478904.871 21478906.352
+ 43.000 36.200
+ -13071288.441 7 -10185415.136 6 21714746.398 21714743.990 21714745.653
+ 43.600 38.300
+ -2314100.254 4 -1803195.569 3 24159406.447 24159402.841 24159405.479
+ 25.300 21.600
+ -14543724.297 6 -11332771.719 5 21950834.470 21950830.313 21950833.629
+ 40.700 35.500
+ 06 1 1 7 15 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11633155.772 6 -9064790.935 5 22254945.576 22254943.447 22254944.644
+ 39.300 32.000
+ -17389282.652 7 -13550086.397 7 20434223.676 20434220.671 20434222.653
+ 42.200 46.500
+ -15584950.603 7 -12144113.654 6 21292893.023 21292891.076 21292892.232
+ 45.600 41.700
+ -16779048.400 7 -13074577.464 6 21474552.269 21474550.290 21474551.813
+ 43.200 36.900
+ -13134700.225 7 -10234826.899 6 21702679.242 21702677.073 21702678.487
+ 43.100 37.900
+ -2288245.449 4 -1783048.980 3 24164326.443 24164323.189 24164325.775
+ 25.600 23.800
+ -14457647.612 6 -11265698.999 5 21967214.709 21967210.045 21967213.718
+ 41.300 35.300
+ 06 1 1 7 16 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11589384.653 6 -9030683.569 5 22263275.399 22263272.804 22263274.194
+ 39.400 32.100
+ -17376938.086 7 -13540467.258 7 20436572.945 20436569.772 20436571.862
+ 42.400 46.500
+ -15636351.235 7 -12184166.104 6 21283111.794 21283109.761 21283110.970
+ 45.600 41.800
+ -16801307.424 7 -13091922.156 6 21470316.361 21470314.450 21470316.150
+ 43.400 36.500
+ -13197779.508 7 -10283979.562 6 21690675.789 21690673.536 21690675.109
+ 43.400 38.500
+ -2261931.319 4 -1762544.479 3 24169333.845 24169330.912 24169333.164
+ 26.800 23.800
+ -14371227.370 6 -11198358.565 5 21983659.703 21983655.345 21983658.761
+ 40.700 35.600
+ 06 1 1 7 16 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11545042.395 6 -8996131.156 5 22271713.036 22271710.864 22271712.050
+ 39.300 31.800
+ -17364269.419 7 -13530595.568 7 20438983.740 20438980.507 20438982.696
+ 42.300 46.500
+ -15687531.527 7 -12224046.850 7 21273372.546 21273370.508 21273371.698
+ 45.600 42.000
+ -16822941.323 7 -13108779.731 6 21466199.979 21466197.711 21466199.565
+ 43.400 36.600
+ -13260525.757 7 -10332872.734 6 21678735.642 21678733.504 21678734.922
+ 43.600 38.800
+ -2235158.975 4 -1741682.898 3 24174428.314 24174425.199 24174427.356
+ 25.600 23.000
+ -14284465.443 6 -11130751.891 5 22000169.734 22000165.671 22000168.984
+ 40.900 35.500
+ 06 1 1 7 17 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11500130.505 6 -8961134.882 5 22280259.698 22280257.259 22280258.572
+ 39.600 31.500
+ -17351276.531 7 -13520471.243 7 20441456.090 20441452.973 20441455.113
+ 42.600 46.500
+ -15738490.747 7 -12263755.333 7 21263675.471 21263673.473 21263674.551
+ 45.800 42.200
+ -16843949.084 7 -13125149.409 6 21462202.228 21462199.975 21462201.855
+ 43.400 36.600
+ -13322938.381 7 -10381505.921 6 21666858.795 21666856.750 21666858.140
+ 43.800 38.900
+ -2207930.195 4 -1720465.712 3 24179609.652 24179606.432 24179609.018
+ 25.300 19.900
+ -14197363.566 6 -11062880.323 5 22016744.329 22016740.450 22016743.856
+ 40.900 34.700
+ 06 1 1 7 17 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11454650.620 6 -8925696.000 5 22288914.835 22288911.800 22288913.473
+ 39.500 31.600
+ -17337958.893 7 -13510093.863 7 20443990.322 20443987.132 20443989.358
+ 42.700 46.300
+ -15789228.005 7 -12303290.860 7 21254020.350 21254018.538 21254019.524
+ 45.700 42.300
+ -16864329.766 7 -13141030.457 6 21458323.857 21458321.549 21458323.392
+ 43.400 36.400
+ -13385016.939 7 -10429878.805 6 21655045.822 21655043.524 21655044.989
+ 43.900 39.100
+ -2180246.853 4 -1698894.269 3 24184877.276 24184873.938 24184876.955
+ 24.200 20.500
+ -14109923.510 6 -10994745.225 5 22033383.636 22033379.810 22033383.226
+ 40.800 34.500
+ 06 1 1 7 18 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11408604.312 6 -8889815.761 5 22297676.516 22297674.531 22297675.364
+ 39.300 32.100
+ -17324316.563 7 -13499463.478 7 20446586.320 20446583.240 20446585.406
+ 42.600 46.300
+ -15839742.451 7 -12342652.764 7 21244407.827 21244405.951 21244406.952
+ 45.900 42.200
+ -16884082.467 7 -13156422.166 6 21454564.693 21454562.784 21454564.435
+ 43.400 36.400
+ -13446761.015 7 -10477991.061 6 21643295.919 21643293.675 21643295.210
+ 43.500 38.700
+ -2152110.283 4 -1676969.692 2 24190231.900 24190228.377 24190231.110
+ 24.600 16.100
+ -14022147.096 6 -10926348.026 5 22050086.515 22050083.137 22050086.507
+ 40.700 34.400
+ 06 1 1 7 18 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11361993.208 6 -8853495.411 5 22306546.265 22306544.377 22306545.224
+ 39.300 32.300
+ -17310349.059 7 -13488579.705 7 20449244.409 20449241.207 20449243.325
+ 42.800 46.200
+ -15890033.271 7 -12381840.419 7 21234837.836 21234835.840 21234836.875
+ 45.900 42.200
+ -16903206.187 7 -13171323.760 6 21450925.598 21450923.537 21450925.439
+ 43.600 36.400
+ -13508170.078 7 -10525842.265 6 21631610.192 21631608.003 21631609.506
+ 43.400 39.100
+ -2123521.988 4 -1654693.112 3 24195672.485 24195668.984 24195671.717
+ 25.600 21.100
+ -13934036.456 6 -10857690.397 5 22066853.571 22066850.114 22066853.349
+ 40.400 34.400
+ 06 1 1 7 19 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11314819.004 6 -8816736.306 5 22315523.252 22315521.040 22315522.245
+ 39.600 32.000
+ -17296056.462 7 -13477442.618 7 20451964.138 20451960.933 20451963.108
+ 42.600 46.300
+ -15940099.613 7 -12420853.159 7 21225310.370 21225308.438 21225309.566
+ 45.900 42.200
+ -16921699.931 7 -13185734.469 6 21447406.393 21447404.209 21447406.173
+ 43.800 36.100
+ -13569243.598 7 -10573432.012 6 21619988.432 21619986.352 21619987.767
+ 44.100 39.300
+ -2094483.870 3 -1632066.044 3 24201197.700 24201194.546 24201196.556
+ 22.100 20.500
+ -13845592.608 6 -10788773.134 5 22083684.592 22083680.528 22083683.828
+ 40.100 34.600
+ 06 1 1 7 19 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11267083.332 6 -8779539.672 5 22324607.297 22324604.857 22324605.945
+ 38.500 31.300
+ -17281438.592 7 -13466052.072 7 20454745.808 20454742.720 20454744.866
+ 42.700 46.200
+ -15989940.734 7 -12459690.395 7 21215826.013 21215824.019 21215825.191
+ 46.000 42.200
+ -16939562.922 7 -13199653.679 6 21444007.506 21444005.119 21444007.081
+ 43.900 36.500
+ -13629981.132 7 -10620759.931 6 21608430.405 21608428.428 21608429.759
+ 44.000 39.500
+ -2064997.310 3 -1609089.504 3 24206809.186 24206805.892 24206808.324
+ 23.800 22.100
+ -13756818.080 6 -10719598.205 5 22100578.113 22100573.675 22100577.219
+ 40.200 34.300
+ 06 1 1 7 20 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11218787.824 6 -8741906.810 5 22333797.391 22333795.299 22333796.169
+ 38.200 31.600
+ -17266495.169 7 -13454407.847 7 20457589.445 20457586.389 20457588.407
+ 42.600 46.100
+ -16039555.949 7 -12498351.612 7 21206384.755 21206382.529 21206383.880
+ 46.100 42.200
+ -16956794.289 7 -13213080.710 6 21440728.368 21440726.167 21440728.099
+ 43.900 36.600
+ -13690382.249 7 -10667825.727 6 21596936.499 21596934.224 21596935.836
+ 44.100 39.400
+ -2035063.913 4 -1585764.817 3 24212504.572 24212501.892 24212503.750
+ 24.200 19.300
+ -13667714.970 6 -10650167.217 5 22117533.394 22117529.193 22117532.781
+ 39.800 33.500
+ 06 1 1 7 20 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11169934.308 6 -8703839.133 5 22343093.895 22343091.413 22343092.907
+ 38.600 31.500
+ -17251226.069 7 -13442509.850 7 20460495.095 20460491.908 20460494.066
+ 43.000 46.000
+ -16088944.312 7 -12536836.053 7 21196986.155 21196984.353 21196985.324
+ 46.000 42.300
+ -16973393.172 7 -13226014.899 6 21437569.764 21437567.445 21437569.425
+ 43.800 36.900
+ -13750446.506 7 -10714629.038 6 21585506.621 21585504.310 21585505.856
+ 43.900 39.300
+ -2004685.517 4 -1562093.347 3 24218286.234 24218282.911 24218285.491
+ 25.900 19.300
+ -13578284.459 6 -10580481.128 5 22134551.292 22134547.676 22134550.848
+ 39.500 34.700
+ 06 1 1 7 21 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11120524.441 6 -8665337.935 5 22352496.269 22352494.551 22352495.261
+ 39.000 32.000
+ -17235630.915 7 -13430357.783 7 20463462.865 20463459.547 20463461.829
+ 43.000 46.000
+ -16138104.917 7 -12575143.016 7 21187631.520 21187629.496 21187630.591
+ 46.300 42.700
+ -16989358.796 7 -13238455.642 6 21434531.353 21434529.263 21434531.040
+ 43.900 36.500
+ -13810173.481 7 -10761169.528 6 21574140.937 21574138.666 21574140.279
+ 44.100 39.300
+ -1973863.897 4 -1538076.504 3 24224150.667 24224148.017 24224150.042
+ 24.600 18.600
+ -13488528.733 6 -10510541.632 5 22151631.242 22151627.717 22151630.758
+ 39.400 34.800
+ 06 1 1 7 21 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11070559.922 6 -8626404.540 5 22362004.080 22362002.198 22362003.031
+ 38.800 31.500
+ -17219709.708 7 -13417951.648 7 20466492.427 20466489.257 20466491.452
+ 42.800 45.700
+ -16187037.100 7 -12613271.988 7 21178319.904 21178317.962 21178319.005
+ 46.000 42.600
+ -17004690.473 7 -13250402.398 6 21431613.761 21431611.952 21431613.509
+ 43.500 36.800
+ -13869562.770 7 -10807446.891 6 21562839.614 21562837.329 21562838.898
+ 43.900 39.700
+ -1942600.624 4 -1513715.550 2 24230100.270 24230096.458 24230099.360
+ 24.200 15.100
+ -13398449.568 6 -10440350.097 5 22168773.581 22168769.159 22168772.630
+ 39.700 34.400
+ 06 1 1 7 22 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11020042.605 6 -8587040.416 5 22371617.868 22371615.012 22371616.390
+ 38.300 31.000
+ -17203462.244 7 -13405291.291 7 20469584.298 20469581.059 20469583.318
+ 43.000 45.900
+ -16235740.066 7 -12651222.353 7 21169051.862 21169050.028 21169051.012
+ 45.900 42.700
+ -17019387.337 7 -13261854.502 6 21428817.686 21428815.296 21428817.122
+ 43.600 37.100
+ -13928613.907 7 -10853460.766 6 21551602.721 21551600.316 21551601.917
+ 44.000 39.900
+ -1910897.485 3 -1489011.830 2 24236132.212 24236129.922 24236131.983
+ 23.800 17.000
+ -13308049.029 6 -10369908.147 5 22185976.176 22185971.793 22185975.108
+ 39.100 33.800
+ 06 1 1 7 22 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10968974.240 6 -8547246.873 5 22381335.717 22381332.879 22381334.314
+ 38.400 30.100
+ -17186887.955 7 -13392376.266 7 20472738.295 20472735.066 20472737.275
+ 43.100 45.900
+ -16284212.907 7 -12688993.405 7 21159827.964 21159825.943 21159827.122
+ 46.500 42.700
+ -17033448.824 7 -13272811.502 6 21426141.593 21426139.420 21426141.133
+ 43.600 37.200
+ -13987326.431 7 -10899210.783 6 21540429.855 21540427.824 21540429.192
+ 44.200 39.800
+ -1878756.061 4 -1463966.562 3 24242249.249 24242246.558 24242248.904
+ 24.200 18.600
+ -13217328.939 6 -10299217.199 5 22203238.954 22203235.123 22203238.473
+ 39.100 33.800
+ 06 1 1 7 23 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10917356.638 6 -8507025.356 5 22391157.928 22391155.436 22391156.846
+ 38.400 30.400
+ -17169987.088 7 -13379206.757 7 20475954.345 20475951.268 20475953.480
+ 43.100 45.800
+ -16332454.820 7 -12726584.512 7 21150647.634 21150645.916 21150646.844
+ 46.200 42.700
+ -17046874.108 7 -13283272.756 6 21423586.668 21423584.605 21423586.331
+ 43.700 36.900
+ -14045699.995 7 -10944696.670 6 21529321.816 21529319.615 21529321.079
+ 44.100 40.100
+ -1846178.159 4 -1438581.197 2 24248449.046 24248445.763 24248448.444
+ 25.600 17.800
+ -13126291.300 6 -10228278.800 5 22220562.460 22220559.124 22220562.412
+ 39.600 34.100
+ 06 1 1 7 23 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10865191.655 6 -8466377.316 5 22401084.129 22401082.329 22401083.280
+ 38.100 30.600
+ -17152759.259 7 -13365782.477 7 20479232.781 20479229.603 20479231.760
+ 43.000 45.900
+ -16380464.908 7 -12763994.968 7 21141511.587 21141509.813 21141510.803
+ 46.200 42.600
+ -17059662.633 7 -13293237.837 6 21421152.847 21421151.089 21421152.723
+ 43.700 37.100
+ -14103734.172 7 -10989918.104 6 21518278.527 21518276.077 21518277.734
+ 44.600 40.000
+ -1813165.798 4 -1412857.286 2 24254731.232 24254727.433 24254730.431
+ 25.600 15.100
+ -13034937.859 6 -10157094.318 5 22237947.169 22237943.455 22237946.576
+ 39.400 34.900
+ 06 1 1 7 24 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10812481.069 6 -8425304.132 5 22411114.600 22411112.831 22411113.672
+ 38.100 31.500
+ -17135204.313 7 -13352103.304 7 20482573.210 20482570.212 20482572.255
+ 43.100 45.700
+ -16428242.300 7 -12801224.110 7 21132420.198 21132418.041 21132419.328
+ 46.500 42.800
+ -17071813.624 7 -13302706.141 6 21418840.873 21418838.741 21418840.482
+ 43.600 37.000
+ -14161428.700 7 -11034874.885 6 21507298.942 21507297.190 21507298.472
+ 44.200 40.200
+ -1779720.454 4 -1386795.995 2 24261095.429 24261091.991 24261094.750
+ 24.900 17.000
+ -12943270.663 6 -10085665.355 5 22255391.368 22255386.990 22255390.407
+ 38.900 33.900
+ 06 1 1 7 24 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10759226.709 6 -8383807.237 5 22421249.307 22421246.290 22421247.979
+ 38.600 30.100
+ -17117321.888 7 -13338168.949 7 20485976.210 20485973.085 20485975.266
+ 43.200 45.700
+ -16475786.128 7 -12838271.253 7 21123372.903 21123370.800 21123371.990
+ 46.300 42.900
+ -17083326.589 7 -13311677.279 6 21416650.034 21416647.897 21416649.631
+ 43.700 36.900
+ -14218783.141 7 -11079566.649 6 21496384.900 21496383.073 21496384.275
+ 44.300 40.300
+ -1745844.279 4 -1360398.977 2 24267541.900 24267538.327 24267541.260
+ 24.600 16.100
+ -12851291.488 6 -10013993.286 5 22272894.395 22272889.711 22272893.380
+ 38.600 32.800
+ 06 1 1 7 25 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10705430.639 6 -8341888.210 5 22431486.558 22431483.593 22431485.284
+ 38.900 30.600
+ -17099111.953 7 -13323979.392 7 20489441.554 20489438.221 20489440.512
+ 43.200 45.600
+ -16523095.607 7 -12875135.783 7 21114370.222 21114368.130 21114369.345
+ 46.500 43.100
+ -17094200.967 7 -13320150.813 6 21414580.421 21414578.554 21414580.312
+ 43.700 37.000
+ -14275797.037 7 -11123993.053 6 21485535.673 21485533.514 21485534.957
+ 44.300 40.000
+ -1711538.810 4 -1333667.454 3 24274070.195 24274066.747 24274069.418
+ 25.600 18.600
+ -12759002.301 6 -9942079.650 5 22290455.735 22290452.132 22290455.274
+ 38.600 33.800
+ 06 1 1 7 25 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10651094.503 6 -8299548.365 5 22441826.024 22441823.596 22441824.713
+ 38.200 30.600
+ -17080574.492 7 -13309534.615 7 20492968.853 20492965.791 20492967.971
+ 43.300 45.400
+ -16570169.892 7 -12911817.049 7 21105412.274 21105410.183 21105411.441
+ 46.800 42.900
+ -17104436.250 7 -13328126.353 6 21412633.167 21412630.842 21412632.758
+ 44.000 37.200
+ -14332470.077 7 -11168153.858 6 21474750.977 21474749.080 21474750.382
+ 44.400 40.200
+ -1676805.776 4 -1306602.798 2 24280679.563 24280676.152 24280678.970
+ 24.900 17.000
+ -12666405.121 6 -9869926.022 5 22308075.755 22308072.673 22308075.658
+ 38.200 33.600
+ 06 1 1 7 26 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10596220.295 6 -8256789.241 5 22452267.806 22452265.817 22452266.882
+ 38.100 30.400
+ -17061709.251 7 -13294834.433 7 20496558.922 20496555.844 20496557.976
+ 43.400 45.500
+ -16617008.148 7 -12948314.392 7 21096499.094 21096497.202 21096498.292
+ 46.600 43.000
+ -17114031.752 7 -13335603.366 6 21410807.060 21410804.854 21410806.690
+ 44.000 36.900
+ -14388801.927 7 -11212048.797 6 21464031.452 21464029.489 21464030.754
+ 44.200 39.800
+ -1641647.080 4 -1279206.413 3 24287369.704 24287366.741 24287369.137
+ 24.900 19.900
+ -12573501.970 6 -9797533.974 5 22325754.987 22325751.766 22325754.755
+ 38.100 33.500
+ 06 1 1 7 26 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10540809.968 6 -8213612.362 5 22462812.393 22462809.970 22462811.254
+ 38.300 30.400
+ -17042515.786 7 -13279878.495 7 20500211.505 20500208.214 20500210.469
+ 43.500 45.500
+ -224344.609 3 -174813.867 2 24605017.017 24605014.913 24605015.447
+ 19.900 13.900
+ -16663609.599 7 -12984627.214 7 21087630.875 21087629.237 21087630.153
+ 46.600 43.100
+ -17122987.139 7 -13342581.594 6 21409102.960 21409100.755 21409102.632
+ 44.000 37.200
+ -14444792.286 7 -11255677.641 6 21453377.237 21453374.728 21453376.456
+ 44.800 40.200
+ -1606064.886 4 -1251480.051 3 24294140.995 24294137.825 24294140.227
+ 25.300 18.600
+ -12480294.845 6 -9724905.078 5 22343492.439 22343488.331 22343491.647
+ 38.400 33.100
+ 06 1 1 7 27 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10484865.469 6 -8170019.236 4 22473458.417 22473455.512 22473457.152
+ 38.000 29.500
+ -17022994.061 7 -13264666.768 7 20503926.235 20503923.036 20503925.296
+ 43.400 45.300
+ -329250.980 3 -256559.034 2 24585053.913 24585051.705 24585053.566
+ 19.300 12.600
+ -16709973.414 7 -13020754.859 7 21078808.581 21078806.456 21078807.668
+ 46.700 43.100
+ -17131301.900 7 -13349060.626 6 21407520.718 21407518.565 21407520.293
+ 44.000 36.900
+ -14500440.771 7 -11299040.090 6 21442787.496 21442785.269 21442786.802
+ 44.700 40.500
+ -1570060.944 4 -1223425.038 2 24300992.591 24300988.633 24300991.864
+ 24.200 16.100
+ -12386785.685 6 -9652040.817 5 22361286.961 22361282.373 22361285.970
+ 38.100 32.400
+ 06 1 1 7 27 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10428388.802 6 -8126011.453 5 22484205.367 22484203.180 22484204.256
+ 37.700 31.500
+ -17003143.890 7 -13249199.101 7 20507703.476 20507700.405 20507702.510
+ 43.500 45.300
+ -433990.882 3 -338174.521 2 24565123.786 24565120.296 24565123.023
+ 22.100 13.900
+ -16756098.578 7 -13056696.553 7 21070031.165 21070029.112 21070030.308
+ 46.800 43.200
+ -17138975.555 7 -13355040.093 6 21406060.149 21406058.208 21406059.937
+ 43.600 37.100
+ -14555747.067 7 -11342135.885 6 21432263.103 21432260.931 21432262.341
+ 45.000 40.500
+ -1533636.974 4 -1195042.740 2 24307923.532 24307920.738 24307922.792
+ 24.600 17.800
+ -12292976.235 6 -9578942.567 5 22379137.297 22379133.700 22379137.023
+ 37.800 32.400
+ 06 1 1 7 28 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10371381.786 6 -8081590.396 5 22495053.422 22495050.879 22495052.386
+ 37.600 31.100
+ -16982965.443 7 -13233475.632 7 20511543.403 20511540.209 20511542.405
+ 43.400 45.300
+ -538561.823 3 -419658.384 2 24545225.157 24545220.946 24545223.837
+ 22.600 16.100
+ -16801984.389 7 -13092451.733 7 21061299.410 21061297.417 21061298.522
+ 46.800 43.400
+ -17146007.811 7 -13360519.769 6 21404721.995 21404719.992 21404721.721
+ 43.600 37.100
+ -14610710.934 7 -11384964.872 6 21421803.717 21421801.391 21421803.000
+ 44.900 39.900
+ -1496795.216 3 -1166334.877 3 24314934.502 24314931.200 24314933.797
+ 23.400 18.600
+ -12198868.716 6 -9505612.042 5 22397045.647 22397042.059 22397045.190
+ 38.000 33.000
+ 06 1 1 7 28 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10313846.650 6 -8036757.822 5 22506001.989 22505999.549 22506000.984
+ 37.200 30.400
+ -16962458.218 7 -13217495.980 7 20515445.800 20515442.647 20515444.823
+ 43.400 45.100
+ -642961.553 4 -501008.799 3 24525358.031 24525355.915 24525356.934
+ 25.600 21.100
+ -16847629.874 7 -13128019.640 7 21052613.543 21052611.429 21052612.648
+ 46.900 43.400
+ -17152398.166 7 -13365499.265 6 21403506.009 21403503.853 21403505.681
+ 43.600 36.600
+ -14665331.930 7 -11427526.685 6 21411409.589 21411407.611 21411408.914
+ 45.000 40.700
+ -1459537.238 3 -1137302.709 2 24322024.602 24322020.684 24322023.978
+ 23.800 15.100
+ -12104465.179 6 -9432050.861 5 22415009.818 22415006.567 22415009.512
+ 38.100 33.400
+ 06 1 1 7 29 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10255785.271 6 -7991515.194 5 22517050.934 22517048.647 22517049.707
+ 37.100 30.400
+ -16941621.925 7 -13201259.919 7 20519410.739 20519407.681 20519409.724
+ 43.200 45.200
+ -747187.369 4 -582223.681 3 24505525.143 24505522.264 24505523.691
+ 27.100 22.600
+ -16893034.080 7 -13163399.542 7 21043973.339 21043971.188 21043972.423
+ 46.800 43.300
+ -17158146.373 7 -13369978.383 6 21402412.036 21402410.061 21402411.895
+ 43.600 37.000
+ -14719609.888 7 -11469821.182 6 21401081.047 21401078.708 21401080.335
+ 45.300 40.300
+ -1421864.995 3 -1107947.735 2 24329192.907 24329189.375 24329192.314
+ 23.000 16.100
+ -12009767.271 6 -9358260.297 5 22433031.459 22433027.011 22433030.462
+ 38.500 32.800
+ 06 1 1 7 29 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10197199.686 6 -7945864.079 5 22528199.711 22528196.783 22528198.222
+ 36.800 30.400
+ -16920456.638 7 -13184767.488 7 20523438.467 20523435.278 20523437.428
+ 43.300 45.000
+ -851236.853 4 -663301.231 2 24485724.722 24485720.591 24485723.422
+ 27.400 15.100
+ -16938196.269 7 -13198590.859 7 21035378.981 21035377.105 21035378.166
+ 46.600 43.400
+ -17163251.995 7 -13373956.784 6 21401440.729 21401438.560 21401440.314
+ 43.700 37.000
+ -14773544.469 7 -11511848.121 6 21390817.419 21390815.159 21390816.901
+ 45.500 40.200
+ -1383780.261 4 -1078271.314 2 24336440.325 24336437.199 24336439.612
+ 24.200 17.000
+ -11914777.259 6 -9284242.134 5 22451107.328 22451102.934 22451106.340
+ 37.700 32.400
+ 06 1 1 7 30 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10138091.943 6 -7899806.101 5 22539447.274 22539445.026 22539446.105
+ 36.600 31.000
+ -16898962.094 7 -13168018.495 7 20527528.792 20527525.565 20527527.742
+ 43.400 44.900
+ -955106.925 3 -744238.945 2 24465957.599 24465955.522 24465956.556
+ 19.300 13.900
+ -16983115.540 7 -13233592.888 7 21026831.405 21026829.231 21026830.459
+ 46.700 43.500
+ -17167714.799 7 -13377434.288 6 21400591.200 21400589.349 21400591.006
+ 43.700 37.200
+ -14827135.411 7 -11553607.293 6 21380619.943 21380617.169 21380619.108
+ 45.800 40.500
+ -1345285.377 3 -1048275.338 2 24343765.675 24343761.848 24343764.615
+ 23.000 15.100
+ -11819496.864 6 -9209997.687 5 22469237.363 22469234.125 22469237.262
+ 37.100 32.400
+ 06 1 1 7 30 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10078464.114 6 -7853342.865 5 22550793.636 22550792.063 22550792.643
+ 37.300 32.300
+ -16877138.212 7 -13151012.881 7 20531681.606 20531678.499 20531680.605
+ 43.400 44.800
+ -1058795.935 3 -825035.523 1 24446226.998 24446224.724 24446226.089
+ 21.100 9.000
+ -17027791.076 7 -13268404.998 7 21018329.884 21018327.811 21018328.999
+ 46.900 43.700
+ -17171534.565 7 -13380410.722 6 21399864.567 21399862.365 21399864.204
+ 44.100 37.200
+ -14880382.408 7 -11595098.460 6 21370486.930 21370484.584 21370486.224
+ 45.200 40.300
+ -1306382.382 3 -1017961.351 2 24351169.045 24351165.314 24351168.097
+ 23.800 12.600
+ -11723928.414 6 -9135528.786 5 22487423.671 22487420.379 22487423.233
+ 37.200 33.100
+ 06 1 1 7 31 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10018318.295 6 -7806475.986 5 22562239.420 22562237.118 22562238.130
+ 36.900 30.400
+ -16854984.730 7 -13133750.427 7 20535897.346 20535894.084 20535896.343
+ 43.400 44.700
+ -1162301.122 3 -905688.900 1 24426530.581 24426529.085 24426529.828
+ 21.600 9.000
+ -17072221.935 7 -13303026.447 7 21009874.758 21009872.897 21009873.987
+ 47.000 43.700
+ -17174711.063 7 -13382885.916 6 21399260.407 21399257.856 21399259.854
+ 44.000 37.100
+ -14933285.239 7 -11636321.432 6 21360419.682 21360417.580 21360419.065
+ 45.400 40.500
+ -1267073.205 3 -987330.845 2 24358649.714 24358645.713 24358648.668
+ 21.600 16.100
+ -11628073.927 6 -9060837.006 5 22505665.360 22505660.995 22505664.319
+ 37.700 33.200
+ 06 1 1 7 31 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9957656.483 6 -7759207.048 5 22573782.958 22573780.511 22573781.776
+ 36.500 30.600
+ -16832501.554 7 -13116231.062 7 20540175.821 20540172.547 20540174.822
+ 43.400 44.600
+ -1265619.850 4 -986197.088 9 24406870.046 24406868.677 24406868.846
+ 26.800 -3.000
+ -17116407.142 7 -13337456.481 7 21001466.807 21001464.711 21001465.881
+ 46.800 43.600
+ -17177244.107 7 -13384859.712 6 21398778.126 21398775.914 21398777.706
+ 44.000 37.000
+ -14985843.600 7 -11677275.988 6 21350418.332 21350416.094 21350417.583
+ 45.000 40.500
+ -1227359.706 3 -956385.277 2 24366206.311 24366203.079 24366205.424
+ 21.100 13.900
+ -11531935.323 6 -8985923.850 5 22523959.257 22523955.356 22523958.736
+ 37.400 32.000
+ 06 1 1 7 32 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9896480.853 6 -7711537.727 4 22585424.120 22585421.904 22585423.069
+ 37.200 29.900
+ -16809688.662 7 -13098454.790 7 20544516.797 20544513.858 20544515.856
+ 43.600 44.800
+ -1368749.319 4 -1066557.761 2 24387245.776 24387242.425 24387244.701
+ 28.600 16.100
+ -17160345.853 7 -13371694.438 7 20993105.502 20993103.415 20993104.522
+ 46.600 43.700
+ -17179133.400 7 -13386331.881 6 21398418.312 21398416.520 21398418.073
+ 43.800 37.100
+ -15038057.287 7 -11717961.973 6 21340482.523 21340480.105 21340481.836
+ 45.200 40.300
+ -1187243.828 3 -925126.148 2 24373840.336 24373837.319 24373839.535
+ 18.600 15.100
+ -11435514.770 6 -8910790.963 5 22542306.737 22542303.352 22542306.680
+ 36.500 31.100
+ 06 1 1 7 32 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9834793.583 6 -7663469.714 5 22597162.780 22597160.792 22597161.398
+ 36.700 30.800
+ -16786545.749 7 -13080421.357 7 20548920.880 20548917.733 20548919.927
+ 43.800 44.700
+ -1471687.277 4 -1146769.125 3 24367656.421 24367653.625 24367654.922
+ 26.500 19.900
+ -17204037.214 7 -13405739.660 7 20984791.050 20984789.260 20984790.291
+ 46.800 43.800
+ -17180378.805 7 -13387302.322 6 21398181.497 21398179.378 21398181.214
+ 44.100 36.800
+ -15089925.943 7 -11758379.106 6 21330612.007 21330609.836 21330611.328
+ 44.900 40.600
+ -1146727.663 3 -893555.158 2 24381549.616 24381547.047 24381548.716
+ 18.600 16.100
+ -11338814.232 6 -8835439.920 5 22560707.623 22560704.813 22560707.898
+ 36.500 31.000
+ 06 1 1 7 33 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9772596.762 5 -7615004.649 5 22608998.324 22608996.438 22608997.244
+ 35.800 30.600
+ -16763072.518 7 -13062130.529 7 20553387.816 20553384.497 20553386.704
+ 43.700 44.400
+ -1574431.081 4 -1226829.246 3 24348104.846 24348102.683 24348103.973
+ 29.700 23.800
+ -17247480.230 7 -13439591.362 7 20976524.383 20976522.418 20976523.465
+ 46.700 44.000
+ -17180980.159 7 -13387770.910 6 21398067.366 21398064.821 21398067.018
+ 44.200 37.000
+ -15141449.557 7 -11798527.362 6 21320807.410 21320805.243 21320806.735
+ 44.900 40.500
+ -1105813.391 3 -861673.892 2 24389336.213 24389332.622 24389335.610
+ 21.600 16.100
+ -11241835.914 6 -8759872.408 5 22579163.615 22579159.311 22579162.791
+ 36.100 31.000
+ 06 1 1 7 33 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9709892.538 6 -7566144.217 5 22620931.031 22620928.407 22620929.632
+ 36.900 30.200
+ -16739269.087 7 -13043582.406 7 20557917.198 20557914.127 20557916.200
+ 43.500 44.400
+ -1676977.989 4 -1306735.891 4 24328590.783 24328588.764 24328589.873
+ 25.600 26.200
+ -17290674.051 7 -13473248.885 7 20968305.035 20968302.913 20968304.047
+ 46.700 44.000
+ -17180937.520 7 -13387737.678 6 21398075.532 21398072.764 21398075.134
+ 44.100 36.700
+ -15192627.766 7 -11838406.476 6 21311068.639 21311066.249 21311067.910
+ 45.200 40.600
+ -1064503.007 3 -829484.019 3 24397196.916 24397193.976 24397196.232
+ 19.900 19.300
+ -11144581.468 6 -8684089.770 5 22597671.375 22597666.300 22597670.072
+ 36.100 32.000
+ 06 1 1 7 34 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9646683.087 6 -7516890.110 4 22632959.021 22632956.895 22632957.843
+ 36.300 29.000
+ -16715135.280 7 -13024776.860 7 20562509.826 20562506.616 20562508.761
+ 43.600 44.200
+ -1779325.364 3 -1386487.048 4 24309115.665 24309112.384 24309114.112
+ 23.800 24.900
+ -17333617.763 7 -13506711.520 7 20960132.977 20960130.924 20960132.119
+ 47.000 44.100
+ -17180250.648 7 -13387202.452 6 21398205.708 21398203.720 21398205.440
+ 43.800 37.200
+ -15243460.389 7 -11878016.303 6 21301395.546 21301393.242 21301394.837
+ 45.300 40.800
+ -1022798.882 3 -796987.324 3 24405133.160 24405129.989 24405132.494
+ 21.600 19.900
+ -11047053.504 6 -8608093.982 5 22616228.350 22616225.415 22616228.571
+ 36.600 31.300
+ 06 1 1 7 34 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9582970.571 5 -7467243.986 4 22645083.041 22645080.668 22645082.061
+ 35.800 29.200
+ -16690670.831 7 -13005713.657 7 20567165.330 20567162.016 20567164.246
+ 43.700 44.100
+ -1881470.940 3 -1466081.028 4 24289677.338 24289674.676 24289675.821
+ 23.000 25.300
+ -17376310.494 7 -13539978.586 7 20952008.574 20952006.756 20952007.789
+ 46.900 44.000
+ -17178919.643 7 -13386165.305 6 21398459.006 21398457.182 21398458.743
+ 44.100 37.200
+ -15293947.221 7 -11917356.691 6 21291788.204 21291785.850 21291787.562
+ 45.400 40.700
+ -980702.625 3 -764185.069 3 24413143.282 24413140.704 24413142.987
+ 19.900 19.900
+ -10949253.752 6 -8531886.407 5 22634839.655 22634836.015 22634839.467
+ 36.500 30.800
+ 06 1 1 7 35 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9518757.140 6 -7417207.548 4 22657302.920 22657300.449 22657301.515
+ 36.500 29.500
+ -16665875.702 7 -12986392.779 7 20571883.509 20571880.399 20571882.536
+ 43.500 44.000
+ -1983412.306 2 -1545515.757 3 24270278.686 24270275.566 24270277.604
+ 17.000 23.400
+ -17418751.349 7 -13573049.381 7 20943932.458 20943930.587 20943931.574
+ 46.800 44.000
+ -17176944.392 7 -13384626.143 6 21398835.025 21398833.168 21398834.685
+ 44.000 37.400
+ -15344088.054 7 -11956427.462 6 21282246.503 21282244.252 21282245.895
+ 45.100 40.800
+ -938216.701 3 -731079.190 3 24421227.418 24421225.385 24421227.192
+ 21.600 19.900
+ -10851184.439 6 -8455468.779 5 22653502.776 22653498.106 22653501.705
+ 36.500 31.500
+ 06 1 1 7 35 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9454045.091 6 -7366782.577 4 22669616.891 22669614.483 22669615.757
+ 36.500 29.500
+ -16640749.836 7 -12966814.192 7 20576664.768 20576661.714 20576663.792
+ 43.600 44.100
+ -2085146.632 3 -1624789.219 3 24250918.148 24250916.132 24250917.556
+ 23.000 20.500
+ -17460939.378 7 -13605923.170 7 20935904.390 20935902.368 20935903.568
+ 47.000 44.200
+ -17174324.969 7 -13382585.031 6 21399333.416 21399331.443 21399333.087
+ 43.800 37.500
+ -15393882.769 7 -11995228.529 6 21272770.872 21272768.834 21272770.264
+ 45.100 41.200
+ -895343.037 4 -697671.163 3 24429386.785 24429383.650 24429386.593
+ 24.200 19.900
+ -10752847.564 6 -8378842.673 5 22672214.794 22672210.851 22672214.251
+ 36.500 31.000
+ 06 1 1 7 36 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9388836.597 5 -7315970.748 4 22682025.110 22682022.828 22682024.106
+ 35.500 28.100
+ -16615292.991 7 -12946977.708 7 20581509.230 20581506.062 20581508.218
+ 43.700 44.200
+ -2186671.210 4 -1703899.291 3 24231599.958 24231596.574 24231598.463
+ 24.900 18.600
+ -17502873.719 7 -13638599.286 7 20927924.445 20927922.537 20927923.594
+ 46.900 43.800
+ -17171061.291 7 -13380041.908 6 21399954.618 21399952.488 21399954.252
+ 44.000 37.300
+ -15443331.115 7 -12033759.696 6 21263361.395 21263359.122 21263360.626
+ 45.200 41.300
+ -852083.682 3 -663962.605 3 24437619.079 24437616.334 24437618.424
+ 22.600 21.600
+ -10654245.123 6 -8302009.627 5 22690977.728 22690974.528 22690977.609
+ 36.200 30.600
+ 06 1 1 7 36 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9323133.886 5 -7264773.833 4 22694528.149 22694525.924 22694527.166
+ 35.400 28.600
+ -16589504.841 7 -12926883.055 7 20586416.528 20586413.420 20586415.516
+ 43.900 44.200
+ -2287983.348 4 -1782843.800 2 24212321.327 24212317.630 24212319.967
+ 28.100 17.000
+ -17544553.424 7 -13671076.978 7 20919993.117 20919991.225 20919992.163
+ 46.800 44.000
+ -17167153.677 7 -13376997.009 6 21400698.049 21400696.132 21400697.740
+ 43.900 37.300
+ -15492432.999 7 -12072020.905 6 21254017.678 21254015.294 21254016.935
+ 45.500 41.300
+ -808440.719 4 -629955.134 3 24445924.058 24445921.270 24445923.654
+ 24.200 22.100
+ -10555379.376 5 -8224971.412 5 22709792.131 22709788.190 22709791.386
+ 35.400 31.300
+ 06 1 1 7 37 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9256939.227 5 -7213193.565 4 22707124.864 22707122.280 22707123.732
+ 35.800 28.600
+ -16563385.537 7 -12906530.357 7 20591387.084 20591383.779 20591385.929
+ 43.900 44.200
+ -2389080.854 4 -1861621.111 24193082.273 24193080.130 24193081.508
+ 29.000 3.000
+ -17585977.604 7 -13703355.558 7 20912110.517 20912108.457 20912109.585
+ 46.800 44.000
+ -17162601.942 7 -13373450.194 6 21401564.203 21401562.260 21401563.850
+ 43.700 37.200
+ -15541188.123 7 -12110011.900 6 21244739.755 21244737.494 21244739.079
+ 45.500 41.500
+ -764416.553 4 -595650.615 3 24454301.866 24454298.496 24454301.242
+ 24.600 20.500
+ -10456252.379 5 -8147729.647 4 22728655.709 22728651.228 22728654.604
+ 35.600 29.200
+ 06 1 1 7 37 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9190254.941 5 -7161231.792 4 22719814.347 22719812.070 22719812.879
+ 35.300 28.600
+ -16536934.906 7 -12885919.490 7 20596420.351 20596417.180 20596419.371
+ 43.800 44.100
+ -2489960.782 4 -1940228.881 1 24173885.718 24173881.853 24173884.535
+ 28.800 9.000
+ -17627145.281 7 -13735434.271 7 20904276.404 20904274.510 20904275.577
+ 46.900 44.200
+ -17157406.446 7 -13369401.753 6 21402552.893 21402550.944 21402552.613
+ 44.000 37.300
+ -15589596.514 7 -12147732.714 6 21235528.079 21235525.570 21235527.349
+ 45.400 41.200
+ -720013.357 4 -561050.771 3 24462751.142 24462748.578 24462750.711
+ 24.200 19.300
+ -10356866.293 5 -8070285.970 4 22747567.705 22747563.668 22747566.985
+ 34.400 29.900
+ 06 1 1 7 38 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9123083.228 5 -7108890.199 4 22732596.653 22732594.091 22732595.501
+ 35.800 27.600
+ -16510152.824 7 -12865050.340 7 20601516.712 20601513.518 20601515.708
+ 43.800 44.000
+ -2590620.648 5 -2018665.189 2 24154731.058 24154727.866 24154730.008
+ 30.100 13.900
+ -17668055.614 7 -13767312.456 7 20896491.543 20896489.569 20896490.592
+ 46.900 44.200
+ -17151567.212 7 -13364851.700 6 21403664.338 21403662.140 21403663.982
+ 44.000 37.200
+ -15637657.840 7 -12185183.093 6 21226382.228 21226379.866 21226381.554
+ 45.600 41.900
+ -675233.094 4 -526157.066 3 24471272.578 24471270.099 24471271.857
+ 25.600 19.900
+ -10257223.070 5 -7992641.953 5 22766528.453 22766525.471 22766528.396
+ 34.700 30.800
+ 06 1 1 7 38 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9055426.435 5 -7056170.617 4 22745470.637 22745469.032 22745469.897
+ 35.800 28.600
+ -16483039.280 7 -12843922.909 7 20606676.348 20606673.186 20606675.268
+ 43.900 44.000
+ -2691057.998 4 -2096928.064 2 24135618.994 24135614.883 24135617.554
+ 27.900 16.100
+ -17708707.711 7 -13798989.418 7 20888755.772 20888753.762 20888754.859
+ 47.100 44.300
+ -17145084.337 7 -13359800.105 6 21404897.783 21404895.732 21404897.544
+ 44.000 36.800
+ -15685372.147 7 -12222363.067 6 21217302.541 21217300.176 21217301.839
+ 45.500 41.700
+ -630078.060 4 -490971.354 3 24479865.650 24479862.751 24479864.995
+ 25.300 19.900
+ -10157325.123 5 -7914799.439 5 22785539.577 22785535.273 22785538.664
+ 35.200 30.800
+ 06 1 1 7 39 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8987286.841 6 -7003074.819 4 22758437.959 22758435.373 22758436.845
+ 36.400 28.400
+ -16455593.954 7 -12822536.954 7 20611899.055 20611895.814 20611898.017
+ 44.000 43.900
+ -2791269.911 4 -2175015.277 2 24116547.301 24116544.914 24116546.722
+ 28.100 17.800
+ -17749100.605 7 -13830464.405 7 20881069.263 20881067.261 20881068.361
+ 47.200 44.300
+ -17137958.263 7 -13354247.317 6 21406253.973 21406251.768 21406253.532
+ 44.100 37.200
+ -15732739.156 7 -12259272.421 7 21208288.687 21208286.493 21208287.935
+ 45.100 42.000
+ -584550.504 4 -455495.338 3 24488529.467 24488526.304 24488528.740
+ 25.900 18.600
+ -10057174.478 5 -7836760.043 5 22804598.290 22804593.490 22804597.292
+ 34.900 30.400
+ 06 1 1 7 39 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8918666.717 5 -6949604.591 4 22771495.980 22771493.891 22771494.771
+ 34.900 29.900
+ -16427816.864 7 -12800892.487 7 20617184.674 20617181.544 20617183.662
+ 44.000 43.600
+ -2891253.989 4 -2252924.957 3 24097522.386 24097519.321 24097521.160
+ 24.900 22.100
+ -17789233.353 7 -13861736.677 7 20873432.178 20873430.248 20873431.263
+ 47.000 44.300
+ -17130189.005 7 -13348193.347 6 21407732.226 21407730.281 21407731.948
+ 44.200 37.200
+ -15779758.806 7 -12295911.102 7 21199341.205 21199338.996 21199340.522
+ 45.300 42.000
+ -538652.433 3 -419730.617 3 24497263.268 24497260.187 24497262.559
+ 23.800 19.300
+ -9956773.122 5 -7758525.293 4 22823702.488 22823699.222 22823702.445
+ 35.200 29.900
+ 06 1 1 7 40 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8849568.408 5 -6895761.754 4 22784644.690 22784642.408 22784643.582
+ 34.900 28.400
+ -16399707.973 7 -12778989.454 7 20622533.702 20622530.571 20622532.738
+ 44.000 43.900
+ -2991007.784 4 -2330655.137 3 24078538.896 24078536.037 24078538.091
+ 25.900 23.400
+ -17829104.887 7 -13892805.403 7 20865844.832 20865842.825 20865843.933
+ 46.900 44.100
+ -17121777.028 7 -13341638.558 6 21409333.058 21409330.954 21409332.742
+ 44.300 37.200
+ -15826430.977 7 -12332279.025 7 21190459.764 21190457.498 21190459.032
+ 45.100 42.100
+ -492386.138 3 -383678.991 3 24506067.506 24506064.594 24506066.818
+ 23.800 18.600
+ -9856123.370 5 -7680096.946 4 22842857.022 22842852.050 22842855.940
+ 34.700 29.200
+ 06 1 1 7 40 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8779994.242 5 -6841548.118 4 22797884.090 22797882.167 22797882.966
+ 34.600 29.900
+ -16371266.911 7 -12756827.595 7 20627945.975 20627942.794 20627945.051
+ 44.000 43.500
+ -3090528.514 4 -2408203.738 4 24059600.761 24059598.476 24059600.109
+ 25.300 24.600
+ -17868714.327 7 -13923669.899 7 20858307.573 20858305.326 20858306.603
+ 47.100 44.200
+ -17112722.501 7 -13334583.078 6 21411055.875 21411054.008 21411055.702
+ 44.100 37.200
+ -15872755.549 7 -12368376.090 6 21181644.569 21181642.219 21181643.847
+ 45.200 41.900
+ -445753.967 4 -347342.246 2 24514941.254 24514938.236 24514940.617
+ 24.600 16.100
+ -9755227.142 5 -7601476.548 4 22862055.984 22862052.201 22862055.148
+ 33.500 29.500
+ 06 1 1 7 41 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8709946.614 5 -6786965.537 4 22811213.449 22811211.574 22811212.535
+ 34.400 28.400
+ -16342493.946 7 -12734407.120 7 20633421.311 20633418.059 20633420.315
+ 44.300 43.600
+ -3189813.583 4 -2485568.714 3 24040708.133 24040705.083 24040706.973
+ 26.200 21.600
+ -17908060.760 7 -13954329.461 7 20850820.086 20850818.052 20850819.242
+ 47.100 44.400
+ -17103025.836 7 -13327027.238 6 21412901.228 21412899.220 21412900.837
+ 43.800 37.000
+ -15918732.433 7 -12404202.237 7 21172895.214 21172893.051 21172894.595
+ 45.200 42.000
+ -398758.186 4 -310722.182 2 24523884.896 24523880.446 24523884.107
+ 26.500 17.000
+ -9654086.835 5 -7522665.979 4 22881301.814 22881298.509 22881301.592
+ 34.600 29.200
+ 06 1 1 7 41 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8639427.839 5 -6732015.869 4 22824633.417 22824631.133 22824632.132
+ 34.800 29.200
+ -16313388.615 7 -12711727.656 7 20638959.981 20638956.628 20638958.956
+ 44.300 43.400
+ -3288860.192 4 -2562747.932 3 24021860.425 24021857.004 24021858.871
+ 26.500 23.000
+ -17947143.374 7 -13984783.448 7 20843382.976 20843380.867 20843382.038
+ 47.100 44.300
+ -17092687.272 7 -13318971.208 6 21414868.553 21414866.546 21414868.284
+ 43.900 37.200
+ -15964361.657 7 -12439757.476 7 21164212.360 21164210.229 21164211.679
+ 45.000 42.300
+ -351400.973 4 -273820.485 2 24532896.040 24532893.153 24532895.278
+ 24.200 17.000
+ -9552704.477 5 -7443666.767 4 22900594.811 22900591.025 22900594.418
+ 35.200 28.800
+ 06 1 1 7 42 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8568440.330 5 -6676700.919 4 22838141.736 22838139.837 22838140.566
+ 35.200 29.200
+ -16283950.872 7 -12688789.157 7 20644561.766 20644558.448 20644560.718
+ 44.000 43.500
+ -3387665.766 4 -2639739.221 3 24003057.785 24003055.074 24003057.028
+ 28.800 23.800
+ -17985961.122 7 -14015031.047 7 20835996.123 20835994.063 20835995.239
+ 47.100 44.100
+ -17081707.199 7 -13310415.306 6 21416957.915 21416955.944 21416957.538
+ 43.800 36.900
+ -16009643.052 7 -12475041.680 7 21155595.642 21155593.561 21155594.916
+ 44.900 42.500
+ -303684.577 3 -236638.898 2 24541976.979 24541973.395 24541976.017
+ 23.800 17.800
+ -9451082.225 5 -7364480.671 4 22919933.541 22919929.344 22919932.501
+ 34.100 29.500
+ 06 1 1 7 42 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8496986.488 6 -6621022.591 4 22851739.506 22851736.477 22851738.237
+ 36.100 28.100
+ -16254180.892 7 -12665591.788 7 20650226.713 20650223.515 20650225.631
+ 44.000 43.400
+ -3486227.589 4 -2716540.670 3 23984302.140 23984299.089 23984300.998
+ 27.900 21.100
+ -18024512.964 7 -14045071.442 7 20828659.880 20828657.860 20828659.001
+ 46.900 44.200
+ -17070086.046 7 -13301359.859 6 21419169.269 21419167.212 21419169.031
+ 44.000 36.800
+ -16054576.433 7 -12510054.699 7 21147045.141 21147042.931 21147044.401
+ 44.900 42.500
+ -255611.357 4 -199179.237 2 24551124.525 24551121.347 24551123.654
+ 24.200 16.100
+ -9349222.286 5 -7285109.361 4 22939315.817 22939312.596 22939315.627
+ 34.500 29.000
+ 06 1 1 7 43 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8425068.635 5 -6564982.703 4 22865424.603 22865422.079 22865423.358
+ 35.300 28.100
+ -16224078.411 7 -12642135.312 7 20655954.880 20655951.887 20655953.923
+ 44.000 43.300
+ -3584543.280 4 -2793150.294 3 23965593.299 23965590.336 23965592.172
+ 28.400 22.100
+ -18062797.984 7 -14074903.927 7 20821374.480 20821372.557 20821373.658
+ 47.000 44.400
+ -17057824.207 7 -13291805.176 6 21421502.792 21421500.642 21421502.482
+ 44.100 36.900
+ -16099161.862 7 -12544796.593 7 21138560.595 21138558.534 21138559.954
+ 45.200 42.700
+ -207183.560 3 -161443.346 3 24560339.613 24560337.133 24560338.938
+ 19.900 18.600
+ -9247126.579 5 -7205554.335 4 22958744.023 22958740.943 22958743.611
+ 33.100 28.800
+ 06 1 1 7 43 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8352689.242 5 -6508583.162 4 22879197.931 22879195.654 22879196.841
+ 35.100 28.600
+ -16193643.337 7 -12618419.678 7 20661746.581 20661743.473 20661745.563
+ 44.100 43.400
+ -3682609.899 4 -2869565.834 3 23946932.293 23946929.277 23946931.254
+ 29.700 21.600
+ -18100815.205 7 -14104527.738 7 20814140.101 20814138.097 20814139.312
+ 47.100 44.300
+ -17044922.164 7 -13281751.631 6 21423957.986 21423955.870 21423957.666
+ 44.000 36.700
+ -16143399.243 7 -12579267.278 7 21130142.812 21130140.693 21130142.161
+ 45.300 43.000
+ -158403.517 3 -123432.930 2 24569621.920 24569619.365 24569621.604
+ 22.100 16.100
+ -9144797.506 5 -7125817.473 4 22978217.046 22978213.469 22978216.462
+ 34.000 28.400
+ 06 1 1 7 44 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8279850.683 5 -6451825.861 4 22893058.649 22893056.464 22893057.537
+ 35.900 28.100
+ -16162875.619 7 -12594444.847 7 20667601.389 20667598.477 20667600.403
+ 44.000 43.300
+ -3780425.040 4 -2945785.421 3 23928318.441 23928314.597 23928317.109
+ 27.900 19.300
+ -18138563.668 7 -14133942.126 7 20806956.902 20806954.708 20806955.919
+ 47.100 44.200
+ -17031380.450 7 -13271199.639 6 21426534.932 21426532.751 21426534.542
+ 44.000 36.800
+ -16187288.557 7 -12613466.739 7 21121790.804 21121788.847 21121790.155
+ 45.400 43.200
+ -109273.521 3 -85149.841 2 24578971.420 24578968.518 24578970.570
+ 21.600 17.000
+ -9042237.245 5 -7045900.442 4 22997733.130 22997730.197 22997733.057
+ 33.500 29.000
+ 06 1 1 7 44 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8206555.440 6 -6394712.685 4 22907006.376 22907004.274 22907005.249
+ 36.000 28.800
+ -16131775.104 7 -12570210.694 7 20673519.596 20673516.664 20673518.640
+ 44.200 43.100
+ -3877986.071 4 -3021807.028 3 23909753.676 23909750.220 23909752.513
+ 28.800 20.500
+ -18176042.484 7 -14163146.395 7 20799824.608 20799822.770 20799823.802
+ 46.900 44.300
+ -17017199.465 7 -13260149.523 6 21429233.100 21429231.393 21429232.905
+ 43.800 36.700
+ -16230829.672 7 -12647394.876 7 21113505.047 21113502.956 21113504.452
+ 45.200 43.100
+ -59795.851 3 -46595.855 1 24588387.180 24588383.528 24588386.073
+ 18.600 11.000
+ -8939448.155 5 -6965805.080 4 23017293.907 23017290.342 23017293.554
+ 34.300 28.400
+ 06 1 1 7 45 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8132805.924 5 -6337245.528 4 22921040.592 22921037.894 22921039.310
+ 34.600 27.600
+ -16100341.996 7 -12545717.372 7 20679501.230 20679498.019 20679500.219
+ 44.200 42.900
+ -3975290.304 4 -3097628.488 3 23891236.883 23891233.481 23891235.444
+ 25.600 18.600
+ -18213250.632 7 -14192139.758 7 20792744.250 20792742.282 20792743.358
+ 46.900 44.400
+ -17002379.828 7 -13248601.748 6 21432053.526 21432051.465 21432053.223
+ 44.100 37.100
+ -16274022.719 7 -12681051.802 7 21105285.763 21105283.600 21105285.051
+ 45.000 43.000
+ -9972.859 3 -7772.778 2 24597868.491 24597864.816 24597867.377
+ 21.600 15.100
+ -8836432.283 5 -6885532.995 4 23036897.364 23036893.695 23036896.695
+ 31.500 28.600
+ 06 1 1 7 45 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8058604.532 5 -6279426.250 4 22935160.604 22935157.358 22935159.436
+ 34.500 25.600
+ -16068576.080 7 -12520964.727 7 20685546.117 20685542.951 20685545.111
+ 44.100 42.900
+ -4072335.212 4 -3173247.912 2 23872769.836 23872766.124 23872768.920
+ 28.100 16.100
+ -18250187.094 7 -14220921.417 7 20785715.299 20785713.534 20785714.531
+ 46.900 44.400
+ -16986922.077 7 -13236556.744 6 21434995.063 21434992.992 21434994.795
+ 44.000 37.000
+ -16316867.421 7 -12714437.278 7 21097132.721 21097130.576 21097131.990
+ 44.900 43.100
+ 40193.052 3 31317.521 2 24607414.596 24607411.164 24607413.817
+ 20.500 17.000
+ -8733191.445 5 -6805085.646 4 23056542.736 23056539.801 23056542.430
+ 31.000 28.400
+ 06 1 1 7 46 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7983953.862 5 -6221256.881 4 22949365.826 22949363.776 22949364.771
+ 34.700 28.400
+ -16036477.310 7 -12495952.720 7 20691654.335 20691651.292 20691653.290
+ 44.200 43.000
+ -4169117.888 4 -3248663.013 3 23854352.994 23854349.592 23854351.800
+ 29.900 19.900
+ -18286850.926 7 -14249490.638 7 20778738.462 20778736.681 20778737.684
+ 47.000 44.600
+ -16970826.875 7 -13224015.022 6 21438057.925 21438055.694 21438057.585
+ 44.100 36.700
+ -16359364.045 7 -12747551.527 7 21089045.974 21089043.735 21089045.291
+ 45.200 43.300
+ 90699.715 3 70673.323 2 24617025.264 24617022.051 24617024.173
+ 20.500 12.600
+ -8629728.388 5 -6724465.120 4 23076232.071 23076228.063 23076231.307
+ 33.200 28.800
+ 06 1 1 7 46 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7908856.211 5 -6162739.232 4 22963656.255 22963654.254 22963655.235
+ 34.100 26.800
+ -16004045.268 7 -12470681.014 7 20697825.865 20697822.885 20697824.918
+ 44.300 42.900
+ -4265635.709 4 -3323871.704 2 23835985.131 23835982.279 23835984.227
+ 29.200 16.100
+ -18323241.305 7 -14277846.778 7 20771813.687 20771811.824 20771812.873
+ 47.000 44.700
+ -16954094.778 7 -13210977.022 6 21441241.890 21441239.738 21441241.501
+ 44.000 36.800
+ -16401512.485 7 -12780394.459 7 21081025.335 21081023.204 21081024.596
+ 45.200 43.300
+ 141544.593 3 110292.683 1 24626700.413 24626697.696 24626699.834
+ 19.300 11.000
+ -8526044.887 5 -6643672.832 4 23095962.668 23095958.604 23095961.732
+ 33.400 28.600
+ 06 1 1 7 47 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7833314.159 5 -6103875.285 4 22978031.290 22978029.616 22978030.145
+ 32.800 27.600
+ -15971280.466 7 -12445150.013 7 20704060.969 20704057.788 20704059.910
+ 44.300 43.100
+ -4361886.097 5 -3398872.045 3 23817670.512 23817667.504 23817669.441
+ 30.800 23.400
+ -18359357.283 7 -14305989.099 7 20764941.096 20764939.163 20764940.260
+ 46.900 44.600
+ -16936726.395 7 -13197443.212 6 21444546.694 21444544.921 21444546.482
+ 43.900 37.000
+ -16443312.710 7 -12812966.058 7 21073071.058 21073068.759 21073070.381
+ 45.300 43.000
+ 192725.460 3 150173.874 2 24636439.822 24636437.252 24636439.470
+ 22.100 13.900
+ -8422143.280 5 -6562710.586 4 23115733.618 23115730.212 23115733.426
+ 33.100 27.900
+ 06 1 1 7 47 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7757330.208 5 -6044667.032 4 22992490.953 22992488.140 22992489.728
+ 34.400 25.300
+ -15938182.438 7 -12419359.354 7 20710359.291 20710356.265 20710358.277
+ 44.300 43.100
+ -4457866.567 4 -3473661.960 3 23799404.536 23799402.517 23799403.618
+ 27.400 22.100
+ -18395197.730 7 -14333916.719 7 20758121.000 20758118.925 20758120.108
+ 47.100 44.700
+ -16918722.500 7 -13183414.200 6 21447972.591 21447970.930 21447972.452
+ 43.900 37.100
+ -16484764.685 7 -12845266.297 7 21065182.992 21065180.673 21065182.237
+ 45.100 43.100
+ 244239.868 3 190314.949 2 24646243.122 24646239.757 24646242.305
+ 19.300 13.900
+ -8318025.980 5 -6481580.232 4 23135547.303 23135542.973 23135546.423
+ 33.600 27.600
+ 06 1 1 7 48 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7680906.834 5 -5985116.324 4 23007033.063 23007031.661 23007032.116
+ 33.600 27.400
+ -15904751.369 7 -12393309.190 7 20716720.935 20716718.009 20716720.016
+ 44.400 43.000
+ -4553574.315 4 -3548239.454 3 23781193.161 23781190.058 23781191.892
+ 29.200 22.600
+ -18430761.828 7 -14361629.004 7 20751353.336 20751351.322 20751352.447
+ 47.100 44.800
+ -16900083.713 7 -13168890.468 6 21451519.554 21451517.654 21451519.282
+ 43.900 36.600
+ -16525868.502 7 -12877295.239 7 21057361.225 21057358.966 21057360.500
+ 45.300 43.100
+ 296085.235 3 230713.898 2 24656109.181 24656106.241 24656108.518
+ 22.600 12.600
+ -8213695.217 5 -6400283.566 4 23155400.428 23155396.716 23155399.422
+ 30.600 27.900
+ 06 1 1 7 48 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7604046.492 5 -5925225.158 4 23021659.645 23021657.673 23021658.230
+ 33.800 26.800
+ -15870987.053 7 -12366999.350 7 20723146.020 20723143.147 20723145.095
+ 44.500 43.000
+ -4649006.452 4 -3622602.123 3 23763032.078 23763029.929 23763031.113
+ 27.900 23.000
+ -18466048.574 7 -14389125.166 7 20744638.361 20744636.500 20744637.497
+ 47.000 44.800
+ -16880810.730 7 -13153872.559 6 21455187.387 21455185.241 21455187.024
+ 44.100 36.700
+ -16566624.044 7 -12909052.798 7 21049605.811 21049603.396 21049605.017
+ 45.500 43.200
+ 348259.327 3 271369.000 2 24666036.693 24666034.304 24666036.610
+ 18.600 12.600
+ -8109153.015 5 -6318822.160 4 23175293.981 23175290.604 23175293.598
+ 31.300 28.100
+ 06 1 1 7 49 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7526751.746 5 -5864995.490 4 23036367.769 23036366.208 23036366.764
+ 32.800 27.900
+ -15836889.288 7 -12340429.678 7 20729634.676 20729631.704 20729633.644
+ 44.300 42.700
+ -4744160.849 4 -3696748.429 3 23744924.811 23744922.556 23744923.809
+ 28.800 22.600
+ -18501056.942 7 -14416404.410 7 20737976.625 20737974.613 20737975.702
+ 47.000 44.800
+ -16860904.271 7 -13138361.034 6 21458975.648 21458973.175 21458975.229
+ 44.400 36.700
+ -16607031.433 7 -12940539.074 7 21041916.274 21041914.087 21041915.594
+ 45.400 43.100
+ 400759.924 3 312278.532 1 24676028.021 24676024.588 24676027.074
+ 20.500 6.500
+ -8004401.786 5 -6237197.857 4 23195227.658 23195223.884 23195226.853
+ 31.300 26.500
+ 06 1 1 7 49 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7449025.111 5 -5804429.284 4 23051158.904 23051156.981 23051157.831
+ 33.100 25.600
+ -15802458.307 7 -12313600.354 7 20736186.569 20736183.757 20736185.639
+ 44.300 42.700
+ -4839034.465 5 -3770675.920 3 23726872.297 23726868.312 23726871.002
+ 30.800 22.100
+ -18535785.903 7 -14443465.936 7 20731367.863 20731365.843 20731367.055
+ 47.000 44.900
+ -16840365.222 7 -13122356.575 6 21462884.323 21462881.503 21462883.625
+ 44.200 36.600
+ -16647090.744 7 -12971754.113 7 21034293.311 21034291.127 21034292.610
+ 45.400 43.300
+ 453584.287 3 353440.366 2 24686080.365 24686076.971 24686079.204
+ 21.600 12.600
+ -7899443.441 5 -6155412.132 4 23215199.814 23215196.832 23215199.591
+ 30.400 26.500
+ 06 1 1 7 50 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7370869.107 5 -5743528.483 4 23066032.237 23066029.488 23066030.807
+ 33.500 25.300
+ -15767694.252 7 -12286511.495 7 20742802.106 20742799.153 20742801.116
+ 44.200 42.700
+ -4933624.673 5 -3844382.575 4 23708871.885 23708868.816 23708870.590
+ 30.400 24.600
+ -18570234.529 7 -14470309.023 7 20724812.575 20724810.546 20724811.705
+ 47.100 45.000
+ -16819194.404 7 -13105859.829 6 21466912.491 21466910.095 21466912.246
+ 44.100 36.400
+ -16686801.961 7 -13002697.911 7 21026736.388 21026734.271 21026735.735
+ 45.400 43.300
+ 506730.066 3 394852.644 2 24696192.625 24696190.527 24696192.310
+ 21.600 16.100
+ -7794280.660 4 -6073467.155 4 23235211.706 23235208.880 23235211.337
+ 29.500 27.900
+ 06 1 1 7 50 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7292286.289 5 -5682295.112 4 23080985.999 23080983.352 23080984.798
+ 34.100 25.600
+ -15732596.715 7 -12259162.769 7 20749480.939 20749477.928 20749479.881
+ 44.200 42.600
+ -5027928.707 4 -3917866.232 3 23690926.203 23690923.036 23690925.224
+ 29.500 23.400
+ -18604401.763 7 -14496932.839 7 20718310.703 20718308.893 20718309.832
+ 47.000 45.200
+ -16797392.609 7 -13088871.422 6 21471061.407 21471058.973 21471061.001
+ 44.100 36.300
+ -16726165.110 7 -13033370.488 7 21019246.043 21019243.785 21019245.320
+ 45.600 43.400
+ 560194.871 3 436513.501 2 24706367.012 24706364.421 24706366.607
+ 23.800 13.900
+ -7688915.096 5 -5991364.175 4 23255262.319 23255259.382 23255261.715
+ 30.100 27.400
+ 06 1 1 7 51 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7213279.153 5 -5620731.125 4 23096019.777 23096018.404 23096018.608
+ 31.800 27.100
+ -15697166.096 7 -12231554.513 7 20756223.129 20756220.291 20756222.050
+ 44.400 42.600
+ -5121944.205 4 -3991125.051 3 23673035.415 23673032.753 23673034.519
+ 27.600 23.000
+ -18638286.707 7 -14523336.692 7 20711862.590 20711860.700 20711861.780
+ 47.100 45.100
+ -16774960.623 7 -13071391.947 6 21475329.671 21475327.840 21475329.579
+ 44.100 36.700
+ -16765180.354 7 -13063771.972 7 21011821.751 21011819.447 21011820.982
+ 45.700 43.400
+ 613976.463 3 478421.225 2 24716602.370 24716598.762 24716601.833
+ 22.600 15.100
+ -7583349.501 5 -5909105.321 4 23275350.252 23275347.718 23275350.249
+ 30.400 26.500
+ 06 1 1 7 51 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7133850.315 5 -5558838.524 4 23111135.267 23111132.570 23111134.104
+ 33.800 25.900
+ -15661401.964 7 -12203686.359 7 20763028.768 20763025.973 20763027.796
+ 44.400 42.700
+ -5215668.201 4 -4064156.743 3 23655200.463 23655197.116 23655199.281
+ 28.800 20.500
+ -18671888.351 7 -14549519.794 7 20705468.447 20705466.379 20705467.549
+ 47.100 45.000
+ -16751899.429 7 -13053422.189 6 21479718.068 21479716.334 21479717.741
+ 43.700 37.100
+ -16803847.647 7 -13093902.325 7 21004463.588 21004461.257 21004462.837
+ 45.600 43.400
+ 668072.097 3 520573.637 2 24726896.299 24726892.514 24726894.821
+ 21.600 12.600
+ -7477585.868 5 -5826692.132 4 23295478.079 23295474.153 23295476.904
+ 31.000 27.100
+ 06 1 1 7 52 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -7054002.347 5 -5496619.319 4 23126328.975 23126327.226 23126328.196
+ 32.800 24.900
+ -15625304.320 7 -12175558.352 7 20769897.995 20769895.144 20769896.981
+ 44.600 42.500
+ -5309098.354 4 -4136959.443 3 23637421.624 23637418.249 23637420.538
+ 28.600 21.600
+ -18705205.644 7 -14575481.319 7 20699128.313 20699126.310 20699127.438
+ 47.000 44.900
+ -16728209.773 7 -13034962.714 6 21484226.291 21484224.370 21484225.887
+ 43.800 37.000
+ -16842167.104 7 -13123761.638 7 20997171.486 20997169.295 20997170.867
+ 45.900 43.300
+ -7371626.328 5 -5744126.312 4 23315640.574 23315637.540 23315640.254
+ 30.400 26.200
+ 06 1 1 7 52 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6973737.764 5 -5434075.474 4 23141603.980 23141601.567 23141602.596
+ 33.200 27.900
+ -15588873.462 7 -12147170.707 7 20776830.753 20776827.695 20776829.649
+ 44.400 42.300
+ -5402232.009 5 -4209531.132 3 23619699.076 23619695.456 23619697.740
+ 31.100 20.500
+ -18738237.612 7 -14601220.520 7 20692842.724 20692840.748 20692841.828
+ 47.100 45.300
+ -16703892.755 7 -13016014.388 6 21488853.936 21488851.584 21488853.510
+ 44.000 37.000
+ -16880138.775 7 -13153349.951 7 20989945.920 20989943.553 20989945.177
+ 45.700 43.600
+ -7265473.183 4 -5661409.616 4 23335841.100 23335837.567 23335840.558
+ 29.900 25.300
+ 06 1 1 7 53 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6893059.156 5 -5371209.038 4 23156956.329 23156953.733 23156955.306
+ 33.900 25.900
+ -15552109.072 7 -12118523.136 7 20783826.984 20783823.712 20783825.824
+ 44.500 42.300
+ -5495066.235 5 -4281869.515 4 23602032.654 23602030.325 23602031.756
+ 32.600 24.200
+ -18770983.350 7 -14626736.677 7 20686611.501 20686609.443 20686610.595
+ 47.200 45.500
+ -16678949.404 7 -12996578.007 6 21493600.589 21493598.256 21493600.164
+ 43.900 36.900
+ -16917762.763 7 -13182667.338 7 20982786.052 20982783.931 20982785.338
+ 45.500 43.600
+ -7159128.932 4 -5578543.969 4 23356077.724 23356074.595 23356077.206
+ 29.500 25.600
+ 06 1 1 7 53 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6811969.151 5 -5308022.003 4 23172387.899 23172384.717 23172386.464
+ 34.000 25.900
+ -15515011.327 7 -12089615.814 7 20790886.469 20790883.241 20790885.394
+ 44.600 42.100
+ -5587598.471 5 -4353972.562 3 23584424.852 23584421.487 23584423.736
+ 32.700 21.600
+ -18803441.807 7 -14652028.979 7 20680434.774 20680432.736 20680433.961
+ 47.100 45.300
+ -16653380.419 7 -12976654.122 6 21498465.689 21498463.983 21498465.406
+ 43.700 36.700
+ -16955039.222 7 -13211713.928 7 20975692.755 20975690.411 20975692.045
+ 45.600 43.600
+ -7052595.700 4 -5495531.063 4 23376349.559 23376347.042 23376349.342
+ 29.900 27.100
+ 06 1 1 7 54 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6730470.329 5 -5244516.443 4 23187896.218 23187893.760 23187894.902
+ 33.200 26.800
+ -15477580.087 7 -12060448.621 7 20798009.210 20798006.170 20798008.166
+ 44.700 42.000
+ -5679825.967 5 -4425838.160 4 23566874.437 23566871.775 23566873.283
+ 31.100 24.600
+ -18835612.000 7 -14677096.665 7 20674312.895 20674310.886 20674312.024
+ 47.100 45.400
+ -16627187.033 7 -12956243.694 6 21503450.146 21503448.159 21503449.915
+ 43.500 36.500
+ -16991968.078 7 -13240489.656 7 20968665.393 20968663.137 20968664.685
+ 45.800 43.800
+ -6945875.629 5 -5412372.606 4 23396659.071 23396655.409 23396658.263
+ 31.500 27.100
+ 06 1 1 7 54 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6648565.278 5 -5180694.305 3 23203481.501 23203478.960 23203480.197
+ 31.800 23.400
+ -15439815.127 7 -12031021.388 7 20805195.491 20805192.604 20805194.533
+ 44.600 42.200
+ -5771746.215 4 -4497464.311 4 23549382.059 23549379.423 23549380.705
+ 29.200 24.200
+ -18867492.877 7 -14701938.908 7 20668246.122 20668244.257 20668245.274
+ 47.100 45.500
+ -16600370.234 7 -12935347.484 6 21508553.604 21508551.149 21508553.227
+ 43.900 36.500
+ -17028549.576 7 -13268994.718 7 20961704.225 20961701.897 20961703.420
+ 45.700 43.800
+ -6838970.878 5 -5329070.252 4 23417001.292 23416998.427 23417001.229
+ 30.100 26.500
+ 06 1 1 7 55 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6566256.604 5 -5116557.680 4 23219144.682 23219142.042 23219143.681
+ 33.000 24.200
+ -15401716.931 7 -12001334.494 6 20812445.437 20812442.407 20812444.390
+ 44.600 41.800
+ -5863356.127 4 -4568848.692 4 23531948.906 23531947.150 23531948.012
+ 29.000 24.900
+ -18899083.461 7 -14726554.946 7 20662234.662 20662232.756 20662233.809
+ 47.100 45.400
+ -16572931.004 7 -12913966.267 6 21513774.587 21513772.687 21513774.332
+ 43.500 36.500
+ -17064783.863 7 -13297229.225 7 20954809.048 20954806.638 20954808.252
+ 45.900 43.700
+ -6731883.950 5 -5245625.923 4 23437380.545 23437376.560 23437379.382
+ 30.100 27.100
+ 06 1 1 7 55 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6483546.891 5 -5052108.545 4 23234883.792 23234881.167 23234882.681
+ 33.000 24.600
+ -15363285.413 7 -11971387.869 6 20819758.607 20819755.655 20819757.667
+ 44.900 41.800
+ -5954653.206 4 -4639989.211 4 23514575.689 23514573.895 23514574.764
+ 29.500 25.900
+ -18930382.760 7 -14750944.013 7 20656278.454 20656276.728 20656277.663
+ 47.000 45.600
+ -16544870.419 7 -12892100.879 6 21519114.571 21519112.490 21519114.226
+ 43.800 36.500
+ -17100670.955 7 -13325193.188 7 20947979.750 20947977.653 20947979.111
+ 45.800 43.900
+ -6624617.130 4 -5162041.441 4 23457791.737 23457789.131 23457791.558
+ 29.000 25.900
+ 06 1 1 7 56 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6400438.834 5 -4987349.018 4 23250698.380 23250696.502 23250697.461
+ 31.100 24.600
+ -15324520.533 7 -11941181.495 6 20827135.271 20827132.277 20827134.310
+ 44.600 41.500
+ -6045635.377 5 -4710884.433 4 23497263.552 23497260.353 23497262.293
+ 32.800 26.500
+ -18961389.862 7 -14775105.396 7 20650377.929 20650376.179 20650377.188
+ 47.100 45.600
+ -16516189.661 7 -12869752.231 6 21524572.233 21524570.267 21524572.037
+ 43.800 36.400
+ -17136211.067 7 -13352886.773 7 20941216.722 20941214.470 20941216.028
+ 45.900 43.800
+ -6517172.620 5 -5078318.471 4 23478238.979 23478234.846 23478237.696
+ 30.100 26.200
+ 06 1 1 7 56 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6316934.938 5 -4922281.048 4 23266588.852 23266586.214 23266587.947
+ 32.600 24.600
+ -15285422.347 7 -11910715.376 6 20834575.592 20834572.542 20834574.641
+ 44.700 41.400
+ -6136299.488 5 -4781531.762 4 23480011.010 23480007.812 23480009.740
+ 33.500 24.600
+ -18992103.697 7 -14799038.259 7 20644533.360 20644531.516 20644532.532
+ 47.000 45.500
+ -16486889.858 7 -12846921.218 6 21530148.060 21530145.740 21530147.643
+ 43.900 36.100
+ -17171404.155 7 -13380309.959 7 20934519.701 20934517.483 20934519.001
+ 45.700 44.000
+ -6409552.680 4 -4994458.835 4 23498717.326 23498714.418 23498717.259
+ 29.900 26.800
+ 06 1 1 7 57 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6233037.977 5 -4856906.799 4 23282553.389 23282551.906 23282552.152
+ 30.200 25.300
+ -15245991.000 7 -11879989.657 6 20842078.970 20842076.082 20842078.108
+ 45.000 41.500
+ -6226643.056 5 -4851929.375 3 23462818.101 23462815.397 23462816.925
+ 32.000 23.800
+ -19022523.251 7 -14822741.805 7 20638744.864 20638742.916 20638744.100
+ 47.300 45.600
+ -16456972.076 7 -12823608.653 5 21535841.258 21535838.789 21535840.936
+ 43.700 35.800
+ -17206250.563 7 -13407463.006 7 20927888.353 20927886.443 20927887.742
+ 45.600 44.100
+ -6301759.673 5 -4910464.309 4 23519230.557 23519226.622 23519229.850
+ 31.500 26.200
+ 06 1 1 7 57 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6148750.457 5 -4791228.198 4 23298593.848 23298591.197 23298592.695
+ 33.600 24.900
+ -15206226.079 7 -11849004.015 6 20849646.203 20849643.060 20849645.256
+ 45.000 41.200
+ -6316663.263 5 -4922075.019 3 23445688.267 23445685.349 23445687.057
+ 33.200 23.800
+ -19052647.475 7 -14846215.229 7 20633012.529 20633010.382 20633011.737
+ 47.300 45.600
+ -16426437.588 7 -12799815.543 6 21541651.869 21541649.426 21541651.551
+ 44.000 36.500
+ -17240750.381 7 -13434345.972 7 20921323.707 20921321.392 20921322.972
+ 45.900 44.300
+ -6193795.744 4 -4826336.639 3 23539774.741 23539771.495 23539774.342
+ 29.000 23.000
+ 06 1 1 7 58 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6064075.097 5 -4725247.389 4 23314707.289 23314704.152 23314705.730
+ 31.100 24.900
+ -15166127.795 7 -11817758.609 6 20857276.619 20857273.531 20857275.691
+ 45.000 41.200
+ -6406357.363 5 -4991966.513 4 23428619.903 23428617.117 23428618.777
+ 32.400 24.600
+ -19082475.415 7 -14869457.781 7 20627336.332 20627334.374 20627335.522
+ 47.300 45.500
+ -16395287.628 7 -12775542.844 6 21547579.388 21547577.167 21547579.006
+ 43.900 36.200
+ -17274903.691 7 -13460958.937 7 20914824.618 20914822.259 20914823.942
+ 46.200 44.400
+ -6085663.266 4 -4742077.609 3 23560352.599 23560348.518 23560351.361
+ 26.500 22.600
+ 06 1 1 7 58 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5979014.481 5 -4658966.416 4 23330893.301 23330891.589 23330891.963
+ 31.800 27.100
+ -15125696.226 7 -11786253.492 6 20864970.622 20864967.358 20864969.655
+ 45.200 41.000
+ -6495722.546 5 -5061601.748 4 23411614.325 23411611.881 23411613.118
+ 31.300 25.600
+ -19112006.049 7 -14892468.664 7 20621716.881 20621714.923 20621716.091
+ 47.200 45.700
+ -16363523.322 7 -12750791.436 6 21553623.670 21553621.707 21553623.375
+ 43.600 36.100
+ -17308710.776 7 -13487302.122 7 20908391.230 20908389.050 20908390.545
+ 46.100 44.500
+ -5977364.363 4 -4657688.910 3 23580960.590 23580956.512 23580959.858
+ 27.400 22.100
+ 06 1 1 7 59 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5893571.338 5 -4592387.356 4 23347151.696 23347149.723 23347150.614
+ 30.200 24.600
+ -15084931.568 7 -11754488.827 6 20872727.682 20872724.591 20872726.896
+ 45.100 41.000
+ -6584756.732 5 -5130979.015 4 23394672.161 23394668.948 23394670.798
+ 32.600 25.600
+ -19141238.341 7 -14915247.077 7 20616154.217 20616152.194 20616153.327
+ 47.200 45.600
+ -16331146.013 7 -12725562.370 6 21559785.084 21559782.989 21559784.724
+ 43.800 36.100
+ -17342171.734 7 -13513375.590 7 20902023.960 20902021.613 20902023.253
+ 46.400 44.600
+ -5868901.704 4 -4573172.561 4 23601600.172 23601596.761 23601599.640
+ 29.200 24.200
+ 06 1 1 7 59 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5807748.392 5 -4525512.287 3 23363483.523 23363481.290 23363482.644
+ 31.300 21.600
+ -15043833.770 7 -11722464.568 6 20880548.406 20880545.323 20880547.373
+ 44.700 40.900
+ -6673457.135 5 -5200096.175 4 23377792.712 23377789.967 23377791.433
+ 32.400 25.600
+ -19170171.228 7 -14937792.188 7 20610648.291 20610646.404 20610647.505
+ 47.100 45.600
+ -16298156.959 7 -12699856.604 6 21566062.723 21566060.474 21566062.354
+ 43.700 36.400
+ -17375286.688 7 -13539179.453 7 20895722.331 20895719.953 20895721.581
+ 46.300 44.700
+ -5760277.431 4 -4488530.314 3 23622271.641 23622267.395 23622270.789
+ 28.600 23.800
+ 06 1 1 8 0 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5721548.111 5 -4458343.233 3 23379886.842 23379884.971 23379885.894
+ 31.500 23.000
+ -15002402.992 7 -11690180.853 6 20888432.449 20888429.262 20888431.373
+ 44.700 41.000
+ -6761820.730 5 -5268950.953 4 23360977.243 23360974.976 23360976.330
+ 34.000 25.600
+ -19198803.860 7 -14960103.332 7 20605199.847 20605197.828 20605198.983
+ 47.300 45.500
+ -16264557.377 7 -12673675.111 6 21572456.514 21572454.500 21572456.175
+ 43.800 36.600
+ -17408055.870 7 -13564713.878 7 20889486.457 20889484.124 20889485.780
+ 46.200 44.500
+ -5651493.647 4 -4403763.773 4 23642971.386 23642968.365 23642971.185
+ 28.800 24.200
+ 06 1 1 8 0 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5634973.311 4 -4390882.343 4 23396361.508 23396360.160 23396360.356
+ 28.100 24.900
+ -14960639.202 7 -11657637.642 6 20896379.596 20896376.656 20896378.784
+ 44.800 40.700
+ -6849845.091 5 -5337541.359 4 23344227.182 23344224.208 23344226.105
+ 32.600 24.600
+ -19227135.208 7 -14982179.714 7 20599808.718 20599806.479 20599807.795
+ 47.200 45.600
+ -16230348.649 7 -12647018.966 6 21578965.989 21578964.076 21578965.715
+ 43.600 36.400
+ -17440479.520 7 -13589979.062 7 20883316.588 20883314.099 20883315.880
+ 46.300 44.400
+ -5542552.465 4 -4318874.614 4 23663703.383 23663699.364 23663702.440
+ 29.000 25.900
+ 06 1 1 8 1 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5548026.638 5 -4323131.703 3 23412907.478 23412904.963 23412906.035
+ 31.600 23.000
+ -14918542.348 7 -11624834.903 6 20904390.436 20904387.505 20904389.596
+ 44.800 41.000
+ -6937527.713 5 -5405865.493 4 23327541.884 23327538.785 23327540.642
+ 31.600 26.200
+ -19255164.397 7 -15004020.644 7 20594474.853 20594472.757 20594474.009
+ 47.400 45.600
+ -16195532.136 7 -12619889.214 6 21585591.281 21585589.296 21585591.118
+ 43.800 36.200
+ -17472557.798 7 -13614975.119 7 20877212.146 20877209.804 20877211.375
+ 46.000 44.400
+ -5433456.364 4 -4233864.681 3 23684462.832 23684459.549 23684462.407
+ 29.500 23.800
+ 06 1 1 8 1 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5460710.699 5 -4255093.295 3 23429523.048 23429520.690 23429522.137
+ 32.100 23.000
+ -14876112.455 7 -11591772.640 6 20912464.867 20912461.668 20912463.762
+ 44.500 40.700
+ -7024865.865 5 -5473921.189 3 23310921.652 23310918.568 23310920.607
+ 32.800 23.800
+ -19282890.312 7 -15025625.257 7 20589198.614 20589196.776 20589197.801
+ 47.000 45.800
+ -16160109.260 7 -12592286.971 5 21592332.107 21592330.097 21592331.811
+ 43.300 35.900
+ -17504290.869 7 -13639702.183 7 20871173.753 20871171.158 20871172.983
+ 46.200 44.400
+ -5324207.581 4 -4148735.824 4 23705252.009 23705249.000 23705251.671
+ 28.800 24.900
+ 06 1 1 8 2 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5373028.220 5 -4186769.289 3 23446208.110 23446205.963 23446207.127
+ 30.400 22.100
+ -14833349.864 7 -11558451.137 6 20920602.006 20920599.140 20920601.084
+ 44.500 40.900
+ -7111856.470 5 -5541706.074 4 23294368.440 23294364.940 23294367.282
+ 33.800 25.300
+ -19310311.903 7 -15046992.730 7 20583980.600 20583978.611 20583979.717
+ 47.000 45.800
+ -16124081.319 7 -12564213.255 6 21599187.956 21599186.108 21599187.709
+ 43.400 36.300
+ -17535678.969 7 -13664160.446 7 20865200.708 20865198.145 20865200.007
+ 46.400 44.300
+ -5214808.554 4 -4063489.868 4 23726070.299 23726067.471 23726069.912
+ 28.600 26.500
+ 06 1 1 8 2 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5284981.906 5 -4118161.763 3 23462962.973 23462960.730 23462961.774
+ 30.200 23.800
+ -14790254.684 7 -11524870.483 6 20928802.731 20928799.896 20928801.816
+ 44.400 40.600
+ -7198497.635 5 -5609218.690 4 23277880.431 23277877.835 23277879.416
+ 33.900 26.200
+ -19337428.215 7 -15068122.324 7 20578820.710 20578818.579 20578819.825
+ 47.100 45.800
+ -16087449.671 7 -12535669.110 5 21606159.166 21606156.837 21606158.758
+ 43.500 35.700
+ -17566722.249 7 -13688350.016 7 20859293.463 20859290.796 20859292.657
+ 46.300 44.500
+ -5105261.592 4 -3978128.663 3 23746916.465 23746912.942 23746915.855
+ 27.600 23.800
+ 06 1 1 8 3 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5196574.378 4 -4049272.796 3 23479786.523 23479784.050 23479785.147
+ 29.500 23.000
+ -14746826.803 7 -11491030.586 6 20937066.902 20937064.113 20937065.906
+ 44.400 41.000
+ -7284786.340 5 -5676456.660 4 23261460.421 23261457.635 23261459.273
+ 33.400 24.900
+ -19364238.181 7 -15089013.212 7 20573718.695 20573716.821 20573717.825
+ 47.100 45.900
+ -16050215.919 7 -12506655.793 5 21613244.485 21613241.886 21613244.036
+ 43.500 35.400
+ -17597420.975 7 -13712271.099 7 20853451.548 20853449.163 20853450.871
+ 46.200 44.500
+ -4995569.018 4 -3892653.986 3 23767790.762 23767786.951 23767789.822
+ 27.100 23.400
+ 06 1 1 8 3 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5107808.438 5 -3980104.532 4 23496678.620 23496676.031 23496677.545
+ 31.300 24.200
+ -14703066.208 7 -11456931.426 6 20945394.384 20945391.470 20945393.233
+ 44.100 40.700
+ -7370719.759 5 -5743417.748 4 23245107.715 23245105.121 23245106.746
+ 33.800 25.600
+ -19390740.889 7 -15109664.677 7 20568675.378 20568673.471 20568674.532
+ 46.800 46.000
+ -16012381.364 7 -12477174.316 5 21620443.766 21620441.586 21620443.480
+ 43.200 35.600
+ -17627775.274 7 -13735923.799 7 20847675.677 20847672.925 20847674.831
+ 46.400 44.700
+ -4885732.979 4 -3807067.518 3 23788691.534 23788688.280 23788691.063
+ 28.100 23.000
+ 06 1 1 8 4 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5018686.707 4 -3910659.012 3 23513636.760 23513634.738 23513635.550
+ 28.400 21.600
+ -14658973.087 7 -11422573.159 6 20953784.759 20953781.950 20953783.947
+ 44.400 40.700
+ -7456295.500 5 -5810100.151 4 23228823.850 23228820.536 23228822.576
+ 34.900 25.600
+ -19416935.134 7 -15130075.783 7 20563690.628 20563688.743 20563689.877
+ 46.900 45.700
+ -15973947.765 7 -12447226.051 5 21627757.404 21627755.555 21627757.245
+ 43.500 35.900
+ -17657785.478 7 -13759308.379 7 20841964.676 20841962.155 20841963.958
+ 46.400 44.700
+ -4775755.953 4 -3721371.169 3 23809620.555 23809615.940 23809619.124
+ 26.800 20.500
+ 06 1 1 8 4 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4929211.843 5 -3840938.344 3 23530663.706 23530661.171 23530662.517
+ 30.400 20.500
+ -14614547.568 7 -11387955.881 6 20962238.841 20962235.812 20962237.835
+ 44.400 40.400
+ -7541510.780 5 -5876501.674 4 23212607.540 23212604.684 23212606.382
+ 34.000 26.500
+ -19442820.088 7 -15150245.882 7 20558765.045 20558763.080 20558764.184
+ 47.000 45.900
+ -15934916.399 7 -12416812.001 5 21635185.075 21635182.917 21635184.716
+ 43.100 35.900
+ -17687451.868 7 -13782425.045 7 20836319.208 20836316.849 20836318.494
+ 46.200 44.900
+ -4665640.131 4 -3635566.665 3 23830573.381 23830570.465 23830573.164
+ 25.900 19.300
+ 06 1 1 8 5 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -4839386.659 4 -3770944.673 3 23547756.581 23547754.654 23547755.405
+ 27.600 22.100
+ -14569789.548 7 -11353079.511 6 20970756.114 20970752.981 20970754.952
+ 44.300 40.500
+ -7626363.092 5 -5942620.352 4 23196460.392 23196457.979 23196459.228
+ 32.700 27.600
+ -19468394.606 7 -15170174.085 7 20553898.321 20553896.444 20553897.505
+ 47.000 45.900
+ -15895288.731 7 -12385933.292 5 21642725.845 21642723.660 21642725.552
+ 43.200 35.600
+ -17716774.599 7 -13805273.929 7 20830739.339 20830736.984 20830738.586
+ 46.200 44.900
+ -4555387.883 4 -3549655.861 2 23851554.643 23851550.133 23851553.675
+ 27.100 16.100
+ 06 1 1 8 5 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4749213.771 5 -3700680.088 3 23564915.792 23564914.162 23564915.093
+ 30.800 23.400
+ -14524699.648 7 -11317944.527 6 20979336.026 20979333.358 20979335.171
+ 44.400 40.200
+ -7710849.632 5 -6008454.005 4 23180382.844 23180380.978 23180381.810
+ 33.000 27.600
+ -19493657.764 7 -15189859.664 7 20549090.934 20549088.951 20549090.028
+ 46.800 45.800
+ -15855066.403 7 -12354591.211 5 21650379.786 21650377.706 21650379.600
+ 43.100 35.300
+ -17745753.969 7 -13827855.259 7 20825224.621 20825222.290 20825223.957
+ 46.100 44.800
+ -4445001.342 4 -3463640.436 3 23872559.986 23872557.204 23872559.674
+ 27.900 23.400
+ 06 1 1 8 6 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -4658695.868 5 -3630146.654 3 23582140.889 23582139.282 23582139.987
+ 30.100 23.800
+ -14479277.717 7 -11282550.830 6 20987979.625 20987976.810 20987978.657
+ 44.400 40.200
+ -7794968.110 5 -6074000.883 4 23164376.066 23164373.213 23164375.032
+ 34.800 26.500
+ -19518608.479 7 -15209301.782 7 20544343.034 20544340.951 20544342.203
+ 46.900 45.900
+ -15814250.963 7 -12322786.972 5 21658146.755 21658144.799 21658146.471
+ 42.900 35.800
+ -17774390.159 7 -13850169.176 7 20819775.313 20819773.082 20819774.617
+ 46.100 45.000
+ -4334482.963 4 -3377522.244 3 23893592.102 23893587.695 23893590.945
+ 29.200 23.800
+ 06 1 1 8 6 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4567835.763 4 -3559346.588 4 23599430.639 23599429.504 23599429.795
+ 29.200 24.600
+ -14433523.923 7 -11246898.527 6 20996686.638 20996683.540 20996685.470
+ 44.100 40.100
+ -7878715.663 5 -6139258.734 4 23148439.831 23148436.461 23148438.577
+ 35.100 25.600
+ -19543245.682 7 -15228499.612 7 20539654.862 20539652.838 20539653.948
+ 46.800 46.100
+ -15772844.031 7 -12290521.832 5 21666026.262 21666023.998 21666025.891
+ 42.800 35.400
+ -17802683.460 7 -13872215.904 7 20814391.225 20814389.062 20814390.635
+ 46.100 45.000
+ -4223835.180 4 -3291303.235 3 23914646.775 23914643.519 23914646.315
+ 27.100 22.600
+ 06 1 1 8 7 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -4476636.089 4 -3488281.919 3 23616785.920 23616783.834 23616784.344
+ 29.700 22.100
+ -14387437.964 7 -11210987.392 6 21005456.264 21005453.391 21005455.312
+ 44.700 40.000
+ -7962089.843 5 -6204225.626 4 23132574.090 23132570.904 23132572.712
+ 33.200 26.500
+ -19567568.458 7 -15247452.428 7 20535026.344 20535024.448 20535025.397
+ 46.800 46.100
+ -15730847.216 7 -12257797.039 5 21674017.801 21674015.508 21674017.594
+ 42.900 34.600
+ -17830634.194 7 -13893995.700 7 20809072.494 20809070.096 20809071.773
+ 46.200 45.000
+ -4113060.111 4 -3204985.068 3 23935727.004 23935722.907 23935726.374
+ 24.200 22.100
+ 06 1 1 8 7 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4385099.649 4 -3416954.816 3 23634204.394 23634202.201 23634203.651
+ 28.600 20.500
+ -14341020.308 7 -11174817.793 6 21014289.143 21014286.284 21014288.368
+ 44.800 39.700
+ -8045087.916 5 -6268899.435 4 23116779.641 23116777.319 23116778.476
+ 34.800 26.500
+ -19591575.854 7 -15266159.499 7 20530457.748 20530455.904 20530456.915
+ 46.900 46.300
+ -15688262.168 7 -12224613.868 5 21682121.721 21682119.594 21682121.327
+ 43.000 35.500
+ -17858242.484 7 -13915508.652 7 20803818.748 20803816.404 20803818.084
+ 46.200 45.100
+ -4002160.126 4 -3118569.521 3 23956830.102 23956826.649 23956829.624
+ 26.500 22.600
+ 06 1 1 8 8 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4293229.041 5 -3345367.307 3 23651687.040 23651685.195 23651686.127
+ 30.600 21.600
+ -14294271.116 7 -11138389.855 6 21023185.488 21023182.403 21023184.449
+ 44.800 39.600
+ -8127707.347 6 -6333278.196 4 23101058.720 23101055.245 23101057.451
+ 37.200 24.600
+ -19615266.792 7 -15284619.979 7 20525949.482 20525947.687 20525948.754
+ 46.900 46.200
+ -15645090.502 7 -12190973.605 5 21690337.109 21690335.226 21690336.665
+ 42.700 35.900
+ -200620.002 3 -156327.271 2 24561396.667 24561395.945 24561396.102
+ 23.000 12.600
+ -17885508.771 7 -13936755.110 7 20798630.178 20798627.874 20798629.447
+ 46.100 45.000
+ -3891137.458 3 -3032058.407 3 23977958.081 23977953.863 23977956.812
+ 23.800 23.400
+ 06 1 1 8 8 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4201027.080 4 -3273521.610 3 23669232.553 23669230.225 23669231.338
+ 29.000 22.100
+ -14247190.585 7 -11101703.729 6 21032144.470 21032141.508 21032143.538
+ 44.900 39.500
+ -8209945.014 6 -6397359.528 4 23085409.058 23085405.529 23085407.981
+ 37.400 24.600
+ -19638640.359 7 -15302833.155 7 20521501.695 20521499.924 20521500.896
+ 46.900 46.200
+ -15601333.895 7 -12156877.546 5 21698663.507 21698661.529 21698663.169
+ 42.500 34.900
+ -316316.084 3 -246480.041 2 24539380.721 24539379.935 24539380.133
+ 19.900 13.900
+ -17912433.292 7 -13957735.257 7 20793506.620 20793504.334 20793505.925
+ 46.100 45.300
+ -3779994.559 3 -2945453.652 3 23999106.859 23999104.093 23999106.013
+ 23.800 23.800
+ 06 1 1 8 9 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4108496.384 5 -3201419.776 3 23686840.803 23686838.657 23686840.008
+ 30.100 22.600
+ -14199778.732 7 -11064759.428 6 21041166.908 21041163.731 21041165.933
+ 44.900 39.400
+ -8291798.980 5 -6461141.858 4 23069832.443 23069829.423 23069831.250
+ 34.600 26.800
+ -19661695.393 7 -15320798.127 7 20517114.477 20517112.602 20517113.619
+ 46.800 46.200
+ -15556994.021 7 -12122326.994 5 21707100.873 21707098.973 21707100.718
+ 42.700 35.400
+ -431975.560 3 -336604.277 2 24517371.830 24517370.328 24517370.720
+ 22.600 17.000
+ -17939016.322 7 -13978449.311 7 20788448.036 20788445.753 20788447.387
+ 46.400 45.200
+ -3668733.671 3 -2858756.903 3 24020279.172 24020275.847 24020278.507
+ 23.800 19.300
+ 06 1 1 8 9 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4015639.730 4 -3129063.959 3 23704509.808 23704508.691 23704508.882
+ 26.800 21.600
+ -14152035.940 7 -11027557.258 6 21050252.141 21050248.834 21050250.996
+ 44.600 39.400
+ -8373266.754 5 -6524623.232 4 23054329.380 23054326.986 23054328.160
+ 34.700 27.400
+ -19684430.939 7 -15338514.142 7 20512788.153 20512786.146 20512787.313
+ 47.000 46.200
+ -15512072.641 7 -12087323.311 5 21715649.772 21715647.358 21715649.241
+ 43.000 35.500
+ -547595.995 3 -426698.061 2 24495369.201 24495368.778 24495368.240
+ 19.900 15.100
+ -17965258.190 7 -13998897.519 7 20783454.513 20783452.058 20783453.764
+ 46.200 45.300
+ -3557357.101 4 -2771969.997 2 24041474.094 24041470.149 24041473.240
+ 28.600 17.800
+ 06 1 1 8 10 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3922459.904 4 -3056456.293 3 23722241.164 23722240.546 23722240.761
+ 28.600 23.000
+ -14103962.052 7 -10990097.088 6 21059399.971 21059396.950 21059399.003
+ 44.700 39.300
+ -8454345.596 5 -6587801.549 4 23038900.838 23038898.160 23038899.766
+ 34.800 28.400
+ -19706845.980 7 -15355980.402 7 20508522.778 20508520.757 20508521.914
+ 46.900 46.200
+ -15466571.516 7 -12051867.890 5 21724307.768 21724305.964 21724307.536
+ 42.700 35.300
+ -663174.672 3 -516759.345 1 24473375.660 24473375.043 24473375.107
+ 23.800 11.000
+ -17991159.094 7 -14019080.043 7 20778525.788 20778523.374 20778525.030
+ 46.300 45.300
+ -3445867.318 3 -2685094.876 3 24062689.039 24062685.875 24062688.184
+ 23.800 18.600
+ 06 1 1 8 10 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3828959.542 4 -2983598.866 3 23740035.128 23740032.295 23740034.075
+ 28.100 21.600
+ -14055557.350 7 -10952379.148 6 21068611.126 21068608.155 21068610.169
+ 44.600 39.500
+ -8535032.761 5 -6650674.656 4 23023546.884 23023543.962 23023545.581
+ 35.400 28.400
+ -19728939.481 7 -15373196.115 7 20504318.540 20504316.473 20504317.607
+ 46.900 46.300
+ -15420492.391 7 -12015962.067 5 21733076.686 21733074.226 21733076.168
+ 42.300 34.700
+ -778709.044 2 -606786.119 1 24451389.607 24451389.364 24451388.961
+ 17.000 6.500
+ -18016719.390 7 -14038997.161 7 20773661.603 20773659.374 20773660.905
+ 46.100 45.300
+ -3334266.387 4 -2598133.172 4 24083926.179 24083923.375 24083925.676
+ 27.400 24.200
+ 06 1 1 8 11 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3735141.381 4 -2910493.803 3 23757888.077 23757885.761 23757886.726
+ 27.600 22.600
+ -14006821.896 7 -10914403.476 6 21077885.403 21077882.241 21077884.221
+ 44.600 39.300
+ -8615325.637 6 -6713240.523 4 23008267.499 23008264.678 23008266.431
+ 36.100 27.400
+ -19750710.514 7 -15390160.558 7 20500175.593 20500173.627 20500174.661
+ 46.900 46.300
+ -15373837.026 7 -11979607.233 5 21741954.571 21741952.395 21741954.274
+ 42.300 34.400
+ -894196.518 3 -696776.300 2 24429413.540 24429412.503 24429412.703
+ 23.000 13.900
+ -18041939.409 7 -14058649.124 7 20768862.266 20768860.223 20768861.607
+ 46.100 45.400
+ -3222556.849 4 -2511086.868 4 24105184.240 24105181.035 24105183.361
+ 25.600 25.900
+ 06 1 1 8 11 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3641008.265 4 -2837143.347 3 23775800.208 23775798.861 23775798.839
+ 25.600 23.000
+ -13957755.925 7 -10876170.259 6 21087221.919 21087219.266 21087221.119
+ 44.600 39.300
+ -8695221.738 6 -6775497.224 4 22993063.677 22993060.865 22993062.514
+ 36.200 28.100
+ -19772158.014 7 -15406872.901 7 20496094.141 20496092.351 20496093.313
+ 46.800 46.200
+ -15326607.255 7 -11942804.811 5 21750942.082 21750940.301 21750941.849
+ 42.500 35.200
+ -1009634.486 3 -786727.937 24407446.568 24407445.375 24407445.639
+ 21.100 3.000
+ -18066819.532 7 -14078036.228 7 20764127.863 20764125.626 20764127.142
+ 46.000 45.400
+ -3110741.098 4 -2423957.760 3 24126459.436 24126459.225 24126460.644
+ 24.200 23.800
+ 06 1 1 8 12 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3546562.772 4 -2763549.468 3 23793773.196 23793770.936 23793771.780
+ 28.800 21.600
+ -13908359.798 7 -10837679.782 6 21096621.959 21096619.035 21096620.845
+ 44.100 39.100
+ -8774718.500 6 -6837442.791 4 22977936.115 22977933.155 22977934.892
+ 36.800 27.900
+ -19793281.010 7 -15423332.383 7 20492074.765 20492072.723 20492073.854
+ 46.600 46.300
+ -15278804.772 7 -11905556.122 5 21760038.946 21760036.788 21760038.549
+ 42.300 35.300
+ -1125020.769 3 -876639.288 2 24385489.946 24385488.421 24385488.446
+ 21.100 15.100
+ -18091359.914 7 -14097158.609 7 20759458.075 20759455.700 20759457.360
+ 46.200 45.400
+ -2998821.340 3 -2336747.676 3 24147761.862 24147756.859 24147760.336
+ 23.400 21.100
+ 06 1 1 8 12 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3451807.773 5 -2689714.388 3 23811804.457 23811801.942 23811803.486
+ 30.400 22.600
+ -13858633.312 7 -10798931.884 6 21106084.366 21106081.645 21106083.396
+ 43.800 39.200
+ -8853813.418 6 -6899075.191 4 22962884.976 22962881.787 22962883.763
+ 37.400 28.100
+ -19814078.502 7 -15439538.234 7 20488117.096 20488115.105 20488116.172
+ 46.500 46.400
+ -15230431.529 7 -11867862.675 5 21769243.959 21769241.826 21769243.678
+ 42.400 35.200
+ -1240352.553 4 -966508.128 2 24363543.177 24363541.349 24363541.705
+ 24.200 17.000
+ -18115560.944 7 -14116016.556 7 20754853.013 20754850.395 20754852.185
+ 46.300 45.300
+ -2886799.600 3 -2249458.073 2 24169075.574 24169072.928 24169075.331
+ 20.500 12.600
+ 06 1 1 8 13 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3356745.887 4 -2615640.205 3 23829893.898 23829892.131 23829893.003
+ 28.100 19.900
+ -13808576.975 7 -10759926.959 6 21115609.779 21115607.021 21115608.811
+ 43.900 39.100
+ -8932503.812 5 -6960392.388 4 22947910.153 22947907.825 22947908.986
+ 35.700 28.400
+ -19834549.403 7 -15455489.606 7 20484221.630 20484219.718 20484220.768
+ 46.800 46.400
+ -15181489.348 7 -11829725.907 5 21778557.481 21778555.292 21778557.000
+ 42.400 34.800
+ -1355627.358 4 -1056332.585 2 24341606.628 24341605.274 24341605.638
+ 24.600 12.600
+ -18139423.061 7 -14134610.420 7 20750311.906 20750309.642 20750311.263
+ 46.400 45.400
+ -2774678.651 4 -2162091.131 2 24190412.100 24190409.531 24190412.235
+ 27.600 17.000
+ 06 1 1 8 13 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3261379.866 4 -2541329.020 2 23848042.456 23848039.008 23848041.043
+ 29.200 17.000
+ -13758190.942 7 -10720665.121 6 21125197.981 21125195.317 21125196.935
+ 44.000 39.000
+ -9010787.275 5 -7021392.500 4 22933013.426 22933010.681 22933012.252
+ 34.900 27.900
+ -19854692.759 7 -15471185.748 7 20480388.334 20480386.557 20480387.527
+ 46.800 46.400
+ -15131980.059 7 -11791147.234 5 21787978.687 21787976.708 21787978.357
+ 42.500 35.200
+ -1470842.699 3 -1146110.756 1 24319682.806 24319680.560 24319680.720
+ 23.000 6.500
+ -18162946.513 7 -14152940.384 7 20745835.614 20745833.254 20745834.856
+ 46.400 45.500
+ -2662460.418 4 -2074648.453 3 24211767.296 24211763.473 24211766.684
+ 27.400 18.600
+ 06 1 1 8 14 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3165712.522 4 -2466782.990 3 23866246.029 23866243.831 23866245.241
+ 26.200 18.600
+ -13707475.471 7 -10681146.578 6 21134848.717 21134846.219 21134847.815
+ 44.100 39.200
+ -9088661.052 6 -7082073.356 4 22918194.852 22918192.597 22918193.734
+ 37.100 29.900
+ -19874507.596 7 -15486625.893 7 20476617.779 20476615.862 20476616.907
+ 46.500 46.400
+ -15081905.561 7 -11752128.145 5 21797507.423 21797505.090 21797507.190
+ 42.400 34.400
+ -1585996.375 3 -1235840.890 2 24297767.693 24297767.478 24297767.505
+ 22.600 13.900
+ -18186131.541 7 -14171006.641 7 20741423.638 20741421.232 20741422.905
+ 46.400 45.300
+ -2550147.420 4 -1987131.857 2 24233139.630 24233136.190 24233138.783
+ 25.600 16.100
+ 06 1 1 8 14 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3069746.436 4 -2392004.256 3 23884507.165 23884505.714 23884506.586
+ 27.400 20.500
+ -13656430.552 7 -10641371.329 6 21144562.692 21144559.568 21144561.546
+ 44.200 38.800
+ -9166122.912 6 -7142433.255 4 22903454.422 22903451.605 22903453.159
+ 37.300 28.800
+ -19893992.895 7 -15501809.251 7 20472909.826 20472908.106 20472908.969
+ 46.600 46.600
+ -15031267.776 7 -11712670.123 5 21807143.410 21807141.213 21807143.219
+ 42.700 34.600
+ -1701085.493 3 -1325520.626 2 24275868.792 24275866.386 24275867.019
+ 18.600 17.000
+ -18208978.589 7 -14188809.540 7 20737075.974 20737073.612 20737075.252
+ 46.500 45.600
+ -2437741.936 3 -1899543.271 2 24254530.018 24254526.909 24254529.457
+ 23.800 13.900
+ 06 1 1 8 15 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2973484.517 4 -2316994.967 3 23902825.987 23902824.290 23902825.103
+ 29.500 22.100
+ -13605056.554 7 -10601339.645 6 21154338.680 21154335.676 21154337.650
+ 44.300 38.700
+ -9243170.156 6 -7202470.069 4 22888792.276 22888790.147 22888791.358
+ 36.100 29.700
+ -19913147.681 7 -15516735.060 7 20469264.700 20469263.057 20469263.879
+ 46.400 46.500
+ -14980068.708 7 -11672774.738 5 21816886.655 21816884.449 21816886.181
+ 42.300 34.900
+ -1816107.568 4 -1415148.199 2 24253979.716 24253978.066 24253978.770
+ 24.200 17.000
+ -18231488.021 7 -14206349.356 7 20732792.594 20732790.339 20732791.901
+ 46.400 45.700
+ -2325246.328 3 -1811884.422 2 24275937.505 24275933.355 24275936.598
+ 23.800 13.900
+ 06 1 1 8 15 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2876929.393 4 -2241757.229 2 23921200.366 23921197.995 23921199.205
+ 29.000 16.100
+ -13553353.523 7 -10561051.579 6 21164177.539 21164174.567 21164176.480
+ 44.300 39.000
+ -9319800.143 5 -7262181.758 4 22874210.070 22874207.357 22874209.000
+ 35.700 28.100
+ -19931970.883 7 -15531402.490 7 20465683.014 20465681.018 20465682.099
+ 46.500 46.400
+ -14928310.279 6 -11632443.486 5 21826735.313 21826733.701 21826735.183
+ 41.900 34.700
+ -1931059.735 3 -1504721.261 2 24232103.972 24232104.230 24232104.109
+ 20.500 16.100
+ -18253660.151 7 -14223626.341 7 20728573.431 20728571.107 20728572.714
+ 46.500 45.800
+ -2212662.912 4 -1724157.106 3 24297359.605 24297358.173 24297359.977
+ 24.600 18.600
+ 06 1 1 8 16 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2780083.816 4 -2166293.096 2 23939629.544 23939626.217 23939628.145
+ 26.500 16.100
+ -13501321.918 7 -10520507.475 6 21174079.037 21174075.919 21174077.896
+ 44.400 38.900
+ -9396010.741 6 -7321566.635 4 22859708.029 22859704.954 22859706.656
+ 36.500 27.400
+ -19950461.659 7 -15545810.885 7 20462164.125 20462162.393 20462163.291
+ 46.400 46.500
+ -14875994.306 7 -11591677.792 5 21836690.839 21836688.860 21836690.601
+ 42.100 34.300
+ -2045939.895 4 -1594238.206 2 24210244.933 24210242.295 24210243.772
+ 24.600 17.000
+ -18275495.351 7 -14240640.783 7 20724418.191 20724416.100 20724417.557
+ 46.500 46.000
+ -2099994.087 4 -1636363.325 3 24318801.091 24318798.324 24318800.610
+ 24.200 22.100
+ 06 1 1 8 16 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2682950.415 4 -2090604.763 3 23958112.928 23958111.040 23958112.006
+ 27.100 20.500
+ -13448961.833 7 -10479707.422 6 21184042.451 21184039.694 21184041.597
+ 44.600 38.900
+ -9471798.943 6 -7380622.402 4 22845285.708 22845283.277 22845284.387
+ 36.500 28.400
+ -19968618.996 7 -15559959.459 7 20458708.812 20458707.170 20458708.031
+ 46.400 46.700
+ -14823122.994 7 -11550479.364 5 21846752.228 21846750.087 21846751.795
+ 42.100 34.400
+ -2160745.170 3 -1683696.808 1 24188396.735 24188395.561 24188395.920
+ 23.000 11.000
+ -18296994.044 7 -14257393.017 7 20720327.262 20720324.976 20720326.556
+ 46.600 45.900
+ -1987242.246 4 -1548504.815 3 24340258.947 24340254.072 24340257.807
+ 24.600 22.600
+ 06 1 1 8 17 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2585532.123 4 -2014694.405 3 23976651.422 23976648.321 23976650.477
+ 27.900 18.600
+ -13396273.460 7 -10438651.561 6 21194068.951 21194065.940 21194067.939
+ 44.800 38.600
+ -9547162.778 6 -7439347.474 4 22830944.691 22830941.936 22830943.452
+ 36.500 29.000
+ -19986441.929 7 -15573847.461 7 20455317.272 20455315.603 20455316.406
+ 46.300 46.600
+ -14769698.206 7 -11508849.650 5 21856918.521 21856916.384 21856918.201
+ 42.100 33.900
+ -2275472.990 4 -1773095.089 3 24166565.178 24166564.496 24166564.304
+ 25.900 19.900
+ -18318156.499 7 -14273883.253 7 20716300.409 20716297.842 20716299.629
+ 46.800 45.800
+ -1874409.226 3 -1460583.063 3 24361728.098 24361725.668 24361727.843
+ 22.100 21.600
+ 06 1 1 8 17 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2487831.662 4 -1938564.156 2 23995243.686 23995241.041 23995242.593
+ 29.500 17.000
+ -13343257.126 7 -10397340.147 6 21204157.515 21204154.640 21204156.571
+ 44.500 38.500
+ -9622099.484 6 -7497739.706 5 22816685.143 22816682.386 22816683.820
+ 36.900 30.400
+ -20003929.293 7 -15587473.978 7 20451989.526 20451987.840 20451988.707
+ 46.200 46.500
+ -14715721.978 6 -11466790.243 5 21867189.712 21867187.496 21867189.452
+ 41.800 33.600
+ -2390121.101 3 -1862431.209 3 24144748.358 24144747.072 24144747.248
+ 23.800 19.900
+ -18338983.138 7 -14290111.817 7 20712337.061 20712334.683 20712336.313
+ 46.700 45.800
+ -1761497.879 3 -1372600.326 3 24383214.530 24383212.792 24383214.036
+ 23.000 23.400
+ 06 1 1 8 18 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2389851.609 3 -1862216.072 3 24013887.779 24013886.009 24013886.769
+ 23.400 18.600
+ -13289913.132 7 -10355773.408 6 21214308.591 21214305.730 21214307.538
+ 44.200 38.400
+ -9696606.539 6 -7555797.152 5 22802506.438 22802504.032 22802505.293
+ 37.600 31.000
+ -20021080.134 7 -15600838.271 7 20448725.908 20448724.070 20448725.003
+ 46.400 46.500
+ -14661196.295 6 -11424302.693 5 21877565.733 21877563.592 21877565.419
+ 41.900 34.300
+ -2504686.802 3 -1951703.086 2 24122945.735 24122945.729 24122946.010
+ 22.600 15.100
+ -18359474.357 7 -14306079.008 7 20708437.692 20708435.312 20708436.968
+ 46.700 45.800
+ -1648510.340 3 -1284558.191 3 24404715.963 24404712.924 24404715.055
+ 21.100 19.900
+ 06 1 1 8 18 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2291594.702 4 -1785652.261 2 24032585.748 24032583.276 24032584.514
+ 25.300 16.100
+ -13236241.568 7 -10313951.415 6 21224521.660 21224518.916 21224520.892
+ 44.300 38.100
+ -9770681.498 6 -7613517.900 5 22788410.379 22788408.108 22788409.141
+ 37.400 30.200
+ -20037893.400 7 -15613939.524 7 20445526.461 20445524.629 20445525.613
+ 46.500 46.600
+ -14606123.185 7 -11381388.584 5 21888045.925 21888043.914 21888045.602
+ 42.000 34.600
+ -2619167.344 4 -2040908.670 3 24101162.692 24101161.338 24101161.642
+ 24.600 19.300
+ -18379630.540 7 -14321785.142 7 20704602.074 20704599.709 20704601.423
+ 46.500 45.900
+ -1535448.953 3 -1196458.496 3 24426230.432 24426227.645 24426230.275
+ 23.800 21.100
+ 06 1 1 8 19 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2193063.745 4 -1708874.893 3 24051335.372 24051333.469 24051334.288
+ 25.900 19.300
+ -13182242.817 7 -10271874.475 6 21234797.570 21234794.502 21234796.524
+ 44.200 37.900
+ -9844321.889 6 -7670900.021 5 22774397.546 22774394.398 22774396.162
+ 37.400 30.200
+ -20054368.229 7 -15626777.061 7 20442391.393 20442389.659 20442390.581
+ 46.400 46.600
+ -14550504.860 7 -11338049.628 5 21898629.930 21898627.462 21898629.549
+ 42.200 34.400
+ -2733560.558 4 -2130046.150 2 24079392.591 24079392.162 24079392.535
+ 25.600 15.100
+ -18399452.039 7 -14337230.474 7 20700830.045 20700827.813 20700829.423
+ 46.500 45.800
+ -1422316.016 3 -1108303.088 3 24447757.606 24447757.475 24447757.803
+ 20.500 19.300
+ 06 1 1 8 19 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2094261.482 4 -1631886.138 3 24070137.677 24070134.855 24070136.295
+ 26.800 19.300
+ -13127917.167 7 -10229542.799 6 21245135.076 21245132.372 21245134.225
+ 44.000 38.200
+ -9917525.304 6 -7727941.650 4 22760466.940 22760464.320 22760465.755
+ 37.700 29.500
+ -20070503.621 7 -15639350.097 7 20439321.030 20439319.152 20439320.174
+ 46.500 46.500
+ -14494343.329 6 -11294287.381 5 21909316.864 21909314.462 21909316.547
+ 41.900 33.400
+ -2847863.701 4 -2219113.548 3 24057642.326 24057641.539 24057641.535
+ 24.200 19.900
+ -18418939.261 7 -14352415.329 7 20697121.912 20697119.499 20697121.183
+ 46.600 45.900
+ -1309113.737 4 -1020093.680 3 24469302.057 24469298.641 24469300.888
+ 25.900 19.900
+ 06 1 1 8 20 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1995190.634 4 -1554688.041 2 24088989.847 24088987.035 24088988.794
+ 25.900 13.900
+ -13073264.598 7 -10186956.392 6 21255535.663 21255532.507 21255534.507
+ 44.300 38.200
+ -9990289.397 6 -7784640.947 4 22746620.341 22746617.569 22746619.280
+ 38.000 28.600
+ -20086298.515 7 -15651657.805 7 20436315.328 20436313.396 20436314.472
+ 46.500 46.500
+ -14437640.647 6 -11250103.466 5 21920106.706 21920104.713 21920106.507
+ 41.400 33.800
+ -2962074.059 4 -2308108.532 2 24035908.679 24035908.006 24035908.041
+ 26.800 17.800
+ -18438092.548 7 -14367339.970 7 20693477.122 20693474.845 20693476.442
+ 46.400 46.100
+ -1195844.839 4 -931832.254 2 24490855.766 24490851.835 24490855.177
+ 26.500 16.100
+ 06 1 1 8 20 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1895853.872 4 -1477282.776 3 24107892.374 24107890.961 24107891.224
+ 24.600 21.100
+ -13018285.676 7 -10144115.683 6 21265997.656 21265994.714 21265996.615
+ 44.000 38.300
+ -10062611.735 6 -7840996.024 4 22732857.762 22732854.711 22732856.826
+ 37.800 28.400
+ -20101752.006 7 -15663699.490 7 20433374.541 20433372.747 20433373.722
+ 46.500 46.400
+ -14380398.972 6 -11205499.565 5 21930999.438 21930997.570 21930999.262
+ 41.500 33.800
+ -3076189.410 3 -2397029.530 2 24014192.266 24014191.884 24014191.861
+ 21.600 13.900
+ -18456912.397 7 -14382004.786 7 20689895.955 20689893.489 20689895.206
+ 46.600 46.000
+ -1082511.163 4 -843520.401 2 24512422.610 24512420.133 24512421.897
+ 24.900 13.900
+ 06 1 1 8 21 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1796253.886 4 -1399672.426 3 24126846.225 24126844.090 24126844.937
+ 27.400 21.100
+ -12962980.669 7 -10101020.887 6 21276521.930 21276518.930 21276520.780
+ 44.000 37.700
+ -10134489.726 6 -7897004.864 4 22719179.777 22719177.158 22719178.684
+ 37.800 28.800
+ -20116863.126 7 -15675474.396 7 20430499.163 20430497.165 20430498.240
+ 46.400 46.300
+ -14322620.488 6 -11160477.367 5 21941994.572 21941992.221 21941994.249
+ 41.200 33.500
+ -3190207.253 4 -2485874.527 2 23992495.869 23992495.266 23992495.511
+ 24.600 13.900
+ -18475399.085 7 -14396409.998 7 20686377.979 20686375.598 20686377.307
+ 46.600 46.000
+ -969114.919 3 -755159.786 9 24534000.752 24533999.630 24534000.128
+ 23.400 -3.000
+ 06 1 1 8 21 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1696393.510 4 -1321859.168 3 24145847.247 24145846.568 24145846.971
+ 26.500 20.500
+ -12907349.615 7 -10057672.015 6 21287107.959 21287105.045 21287106.960
+ 43.900 37.800
+ -10205920.852 6 -7952665.483 4 22705587.091 22705584.149 22705585.780
+ 37.800 28.800
+ -20131630.829 7 -15686981.703 7 20427688.807 20427686.956 20427688.004
+ 46.500 46.500
+ -14264307.328 6 -11115038.535 5 21953091.210 21953089.079 21953090.918
+ 41.600 34.100
+ -3304124.485 3 -2574641.090 3 23970818.203 23970817.402 23970817.086
+ 21.600 18.600
+ -18493553.200 7 -14410556.061 7 20682923.278 20682921.007 20682922.570
+ 46.600 46.100
+ -855658.881 3 -666752.472 9 24555590.373 24555589.077 24555589.853
+ 21.600 -3.000
+ 06 1 1 8 22 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1596275.414 4 -1243845.061 2 24164899.484 24164898.245 24164899.195
+ 24.200 17.000
+ -12851393.111 7 -10014069.558 6 21297756.263 21297753.251 21297755.137
+ 43.800 37.600
+ -10276902.795 6 -8007976.088 4 22692079.707 22692077.111 22692078.511
+ 37.900 29.900
+ -20146054.335 7 -15698220.801 7 20424944.112 20424942.309 20424943.300
+ 46.400 46.400
+ -14205461.599 6 -11069184.720 5 21964289.183 21964287.279 21964288.823
+ 41.400 34.600
+ -3417938.651 4 -2663327.463 2 23949161.428 23949159.250 23949159.550
+ 24.200 17.000
+ -18511374.987 7 -14424443.172 7 20679531.914 20679529.642 20679531.219
+ 46.400 46.100
+ -742145.256 2 -578300.412 2 24577193.256 24577189.522 24577192.017
+ 17.800 16.100
+ 06 1 1 8 22 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1495902.251 4 -1165632.219 3 24184001.617 24183998.384 24184000.040
+ 24.900 18.600
+ -12795111.221 7 -9970213.543 6 21308466.135 21308463.466 21308465.190
+ 43.800 38.000
+ -10347433.155 6 -8062934.819 5 22678658.277 22678655.812 22678657.299
+ 38.100 30.200
+ -20160132.514 7 -15709190.822 7 20422265.226 20422263.294 20422264.337
+ 46.600 46.400
+ -14146085.503 6 -11022917.627 5 21975587.903 21975585.919 21975587.601
+ 41.200 33.500
+ -3531647.418 3 -2751931.563 3 23927522.761 23927521.346 23927521.402
+ 21.600 19.900
+ -18528864.927 7 -14438071.702 7 20676203.757 20676201.430 20676203.015
+ 46.400 46.100
+ -628576.217 3 -489805.197 2 24598802.848 24598801.516 24598802.690
+ 22.100 17.800
+ 06 1 1 8 23 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1395276.855 4 -1087222.810 3 24203149.020 24203147.500 24203147.900
+ 26.500 18.600
+ -12738504.449 7 -9926104.370 6 21319238.422 21319235.343 21319237.200
+ 43.700 37.600
+ -10417509.653 6 -8117539.887 4 22665323.149 22665320.364 22665322.103
+ 38.600 29.200
+ -20173864.455 7 -15719891.051 7 20419652.024 20419650.211 20419651.173
+ 46.300 46.400
+ -14086181.315 6 -10976239.033 5 21986987.732 21986985.177 21986987.267
+ 41.300 33.800
+ -3645248.166 4 -2840451.561 3 23905904.688 23905903.546 23905903.628
+ 25.900 18.600
+ -18546023.463 7 -14451441.990 7 20672938.582 20672936.226 20672937.849
+ 46.300 46.100
+ -514954.160 3 -401268.593 3 24620424.041 24620422.278 24620423.887
+ 21.600 19.300
+ 06 1 1 8 23 30.0000000 0 7G 5G14G20G 1G30G16G25
+ -1294401.936 4 -1008618.963 2 24222345.379 24222342.791 24222344.503
+ 27.400 17.800
+ -12681573.003 7 -9881742.200 6 21330071.450 21330069.034 21330070.692
+ 43.600 37.600
+ -10487129.884 6 -8171789.417 4 22652075.311 22652072.172 22652073.971
+ 38.900 29.200
+ -20187249.119 7 -15730320.672 7 20417105.099 20417103.262 20417104.222
+ 46.400 46.600
+ -14025751.122 6 -10929150.561 5 21998487.216 21998484.780 21998486.822
+ 41.200 33.800
+ -3758738.567 4 -2928885.551 3 23884308.469 23884307.134 23884307.589
+ 26.200 20.500
+ -18562850.956 7 -14464554.331 7 20669736.434 20669734.045 20669735.705
+ 46.500 46.000
+ 06 1 1 8 24 0.0000000 0 7G 5G14G20G 1G30G16G25
+ -1193280.128 4 -929822.757 2 24241587.684 24241586.016 24241586.799
+ 26.500 17.000
+ -12624316.995 7 -9837127.125 6 21340967.242 21340964.481 21340966.213
+ 43.600 37.400
+ -10556291.538 6 -8225681.622 4 22638914.210 22638910.960 22638912.863
+ 38.600 29.000
+ -20200285.499 7 -15740478.905 7 20414624.228 20414622.528 20414623.403
+ 46.200 46.400
+ -13964797.102 6 -10881653.930 5 22010086.097 22010083.977 22010085.814
+ 40.900 33.900
+ -3872115.933 4 -3017231.505 2 23862733.817 23862731.808 23862732.571
+ 27.100 16.100
+ -18579347.963 7 -14477409.149 7 20666597.224 20666594.770 20666596.417
+ 46.500 46.100
+ 06 1 1 8 24 30.0000000 0 7G 5G14G20G 1G30G16G25
+ -1091914.143 3 -850836.295 2 24260877.081 24260875.268 24260875.922
+ 23.800 17.800
+ -12566737.371 7 -9792259.875 6 21351924.444 21351921.526 21351923.399
+ 43.600 37.300
+ -10624991.935 6 -8279214.398 5 22625840.477 22625838.045 22625839.526
+ 38.900 30.200
+ -20212972.655 7 -15750365.013 7 20412210.092 20412208.194 20412209.174
+ 46.200 46.500
+ -13903321.573 6 -10833750.916 5 22021784.662 22021782.410 22021784.291
+ 41.100 34.100
+ -3985377.066 4 -3105486.857 2 23841181.120 23841178.816 23841180.100
+ 28.100 17.800
+ -18595514.769 7 -14490006.657 7 20663520.571 20663518.411 20663519.909
+ 46.400 46.300
+ 06 1 1 8 25 0.0000000 0 7G 5G14G20G 1G30G16G25
+ -990306.774 4 -771661.742 3 24280213.187 24280210.026 24280211.335
+ 24.600 18.600
+ -12508833.960 7 -9747140.327 6 21362942.985 21362940.087 21362941.953
+ 43.500 37.200
+ -10693229.075 6 -8332386.207 5 22612855.366 22612852.863 22612854.412
+ 38.700 30.200
+ -20225309.626 7 -15759978.247 7 20409862.376 20409860.525 20409861.525
+ 46.400 46.400
+ -13841326.858 6 -10785443.344 5 22033581.572 22033579.764 22033581.281
+ 40.600 34.100
+ -4098520.264 4 -3193650.335 3 23819649.021 23819648.698 23819649.114
+ 26.500 21.600
+ -18611351.904 7 -14502347.280 7 20660506.989 20660504.745 20660506.283
+ 46.700 46.400
+ 06 1 1 8 25 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -888460.690 4 -692301.176 2 24299593.648 24299590.526 24299592.545
+ 26.200 17.000
+ -12450607.250 7 -9701768.857 6 21374023.009 21374020.187 21374022.093
+ 43.600 36.800
+ -10761000.423 6 -8385195.048 5 22599959.418 22599956.381 22599958.027
+ 39.100 30.200
+ -20237295.497 7 -15769317.893 7 20407581.643 20407579.718 20407580.786
+ 46.400 46.400
+ -13778815.163 6 -10736732.933 5 22045476.823 22045475.395 22045476.735
+ 40.600 34.100
+ -4211542.466 4 -3281719.490 3 23798141.854 23798140.724 23798140.967
+ 25.900 19.900
+ -18626859.785 7 -14514431.352 7 20657555.892 20657553.708 20657555.179
+ 46.500 46.400
+ -147550.311 3 -114974.256 2 24687413.308 24687413.417 24687413.253
+ 23.400 17.800
+ 06 1 1 8 26 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -786378.547 3 -612756.628 2 24319017.660 24319016.600 24319017.386
+ 23.400 16.100
+ -12392057.527 7 -9656145.690 6 21385164.915 21385161.903 21385163.785
+ 43.600 37.100
+ -10828303.682 6 -8437639.141 5 22587152.145 22587149.001 22587150.758
+ 39.400 30.400
+ -20248929.370 7 -15778383.255 7 20405368.003 20405365.966 20405367.015
+ 46.200 46.600
+ -13715788.747 6 -10687621.438 5 22057470.746 22057468.696 22057470.470
+ 40.700 33.400
+ -4324441.184 3 -3369692.430 3 23776658.062 23776657.071 23776657.204
+ 23.000 21.100
+ -18642038.797 7 -14526259.157 7 20654667.472 20654665.263 20654666.800
+ 46.600 46.400
+ -216380.312 3 -168607.978 2 24674317.207 24674315.088 24674315.636
+ 22.100 17.000
+ 06 1 1 8 26 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -684062.987 3 -533030.222 2 24338487.807 24338486.548 24338486.936
+ 22.100 13.900
+ -12333185.126 7 -9610271.088 6 21396367.475 21396364.804 21396366.744
+ 43.700 36.700
+ -10895136.502 6 -8489716.671 5 22574433.959 22574431.095 22574432.876
+ 39.500 30.200
+ -20260210.262 7 -15787173.566 7 20403221.078 20403219.262 20403220.251
+ 46.300 46.600
+ -13652249.881 6 -10638110.630 5 22069561.706 22069559.583 22069561.564
+ 40.800 32.800
+ -4437213.653 4 -3457567.014 3 23755198.349 23755197.144 23755197.511
+ 26.200 22.100
+ -18656889.506 7 -14537831.137 7 20651841.735 20651839.249 20651840.973
+ 46.800 46.500
+ -284993.271 3 -222072.632 2 24661261.292 24661258.934 24661259.605
+ 23.400 17.000
+ 06 1 1 8 27 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -581516.795 3 -453124.090 3 24358003.168 24358000.793 24358001.509
+ 21.100 18.600
+ -12273990.340 7 -9564145.272 6 21407632.501 21407629.313 21407631.239
+ 43.600 36.800
+ -10961496.689 6 -8541425.914 5 22561806.061 22561803.206 22561804.997
+ 40.000 30.400
+ -20271137.097 7 -15795688.002 7 20401141.779 20401139.899 20401140.925
+ 46.400 46.400
+ -13588201.012 6 -10588202.412 5 22081749.800 22081747.904 22081749.656
+ 41.000 33.100
+ -4549857.725 4 -3545341.532 3 23733763.713 23733761.708 23733762.541
+ 26.500 22.600
+ -18671412.258 7 -14549147.569 7 20649077.904 20649075.658 20649077.301
+ 46.800 46.500
+ -353386.453 3 -275365.973 2 24648244.676 24648242.995 24648243.899
+ 23.000 15.100
+ 06 1 1 8 27 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -478742.657 4 -373040.398 2 24377560.884 24377557.937 24377559.079
+ 24.600 17.000
+ -12214473.797 7 -9517768.742 6 21418957.681 21418954.985 21418956.794
+ 43.500 36.700
+ -11027381.770 6 -8592764.947 5 22549268.535 22549265.976 22549267.435
+ 40.000 31.000
+ -20281709.088 7 -15803925.936 7 20399130.100 20399128.176 20399129.142
+ 46.200 46.500
+ -13523644.352 6 -10537898.515 5 22094034.780 22094032.401 22094034.374
+ 40.700 32.800
+ -4662370.552 4 -3633013.798 3 23712352.580 23712350.600 23712351.374
+ 26.200 19.300
+ -18685607.556 7 -14560208.838 7 20646376.629 20646374.382 20646375.987
+ 46.800 46.400
+ -421557.000 3 -328485.849 1 24635272.418 24635270.637 24635271.887
+ 22.100 11.000
+ 06 1 1 8 28 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -375743.377 4 -292781.207 3 24397160.931 24397157.872 24397159.490
+ 26.500 18.600
+ -12154635.606 7 -9471141.575 6 21430344.968 21430341.935 21430343.827
+ 43.600 37.000
+ -11092789.646 6 -8643732.125 5 22536821.816 22536819.224 22536820.449
+ 39.500 31.600
+ -20291925.156 7 -15811886.523 7 20397186.071 20397184.185 20397185.169
+ 46.200 46.400
+ -13458582.228 6 -10487200.754 5 22106415.431 22106413.231 22106415.134
+ 40.600 32.800
+ -4774749.653 4 -3720581.882 3 23690968.859 23690966.074 23690966.864
+ 28.400 21.100
+ -18699475.800 7 -14571015.264 7 20643737.638 20643735.268 20643736.928
+ 46.700 46.400
+ -489502.257 3 -381430.190 1 24622342.887 24622341.373 24622342.055
+ 20.500 9.000
+ 06 1 1 8 28 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -272521.467 3 -212348.568 3 24416801.940 24416800.576 24416801.377
+ 23.800 18.600
+ -12094476.365 7 -9424264.246 6 21441792.743 21441789.775 21441791.693
+ 43.600 36.500
+ -11157717.897 6 -8694325.572 5 22524466.483 22524463.702 22524465.209
+ 40.200 30.800
+ -20301784.472 7 -15819569.114 7 20395309.787 20395307.997 20395308.892
+ 46.200 46.400
+ -13393016.988 6 -10436110.946 5 22118892.163 22118889.883 22118891.973
+ 41.000 32.000
+ -4886992.629 4 -3808043.874 3 23669609.196 23669606.599 23669607.888
+ 28.800 19.300
+ -18713017.540 7 -14581567.266 7 20641160.550 20641158.316 20641159.909
+ 46.700 46.500
+ -557219.400 3 -434196.812 1 24609456.905 24609454.764 24609456.116
+ 22.600 9.000
+ 06 1 1 8 29 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -169079.662 3 -131744.603 2 24436487.569 24436484.792 24436485.378
+ 19.900 16.100
+ -12033996.256 7 -9377136.884 6 21453301.416 21453298.561 21453300.715
+ 43.800 36.400
+ -11222164.082 6 -8744543.381 5 22512202.838 22512199.844 22512201.667
+ 39.800 30.800
+ -20311286.154 7 -15826973.022 7 20393501.681 20393499.764 20393500.830
+ 46.300 46.300
+ -13326950.993 6 -10384630.936 5 22131464.145 22131461.989 22131463.754
+ 40.500 32.000
+ -4999097.006 4 -3895397.866 3 23648275.748 23648274.300 23648274.370
+ 25.300 23.000
+ -18726233.106 7 -14591865.110 7 20638645.861 20638643.543 20638645.128
+ 46.600 46.600
+ -624705.571 3 -486783.436 2 24596614.352 24596613.244 24596613.401
+ 22.100 15.100
+ 06 1 1 8 29 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -65420.632 4 -50971.349 1 24456211.631 24456209.997 24456211.336
+ 24.600 9.000
+ -11973195.598 7 -9329759.751 6 21464871.806 21464868.595 21464870.618
+ 43.500 36.700
+ -11286126.539 6 -8794384.259 5 22500030.709 22500028.140 22500029.710
+ 39.800 30.100
+ -20320429.154 7 -15834097.446 7 20391761.885 20391759.895 20391761.031
+ 46.400 46.200
+ -13260386.679 6 -10332762.631 5 22144131.041 22144128.527 22144130.604
+ 40.300 31.500
+ -5111059.769 4 -3982641.522 3 23626970.513 23626967.799 23626968.866
+ 26.500 18.600
+ -18739123.132 7 -14601909.291 7 20636192.985 20636190.665 20636192.287
+ 46.700 46.500
+ -691958.152 3 -539188.014 2 24583817.037 24583815.546 24583816.310
+ 22.100 17.000
+ 06 1 1 8 30 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ 38452.881 4 29969.101 9 24475980.453 24475978.230 24475978.636
+ 25.300 -3.000
+ -11912075.037 7 -9282133.342 6 21476502.074 21476499.669 21476501.275
+ 43.200 36.800
+ -11349602.712 6 -8843846.214 5 22487951.649 22487949.088 22487950.684
+ 39.700 30.200
+ -20329212.696 7 -15840941.775 7 20390090.230 20390088.481 20390089.502
+ 46.300 46.200
+ -13193326.416 6 -10280507.874 5 22156892.185 22156889.577 22156891.845
+ 40.300 31.800
+ -5222878.557 4 -4069772.975 3 23605691.488 23605689.916 23605690.426
+ 25.900 21.600
+ -18751688.054 7 -14611700.144 7 20633801.870 20633799.617 20633801.236
+ 46.600 46.600
+ -758974.201 3 -591408.266 3 24571063.889 24571062.733 24571063.124
+ 23.800 19.300
+ 06 1 1 8 30 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11850634.886 7 -9234257.903 6 21488194.498 21488191.201 21488193.151
+ 43.100 36.500
+ -11412590.151 6 -8892927.347 4 22475965.819 22475962.871 22475964.533
+ 39.800 29.900
+ -20337635.868 7 -15847505.294 7 20388487.614 20388485.645 20388486.730
+ 46.300 46.200
+ -13125772.535 6 -10227868.478 5 22169746.921 22169745.009 22169746.595
+ 39.900 32.300
+ -5334550.725 4 -4156790.183 3 23584441.020 23584438.853 23584439.842
+ 25.900 19.900
+ -18763928.246 7 -14621237.960 7 20631472.715 20631470.393 20631471.990
+ 46.600 46.700
+ -825751.120 3 -643442.196 3 24558355.947 24558355.850 24558355.685
+ 22.100 21.100
+ 06 1 1 8 31 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11788875.518 7 -9186133.732 6 21499946.514 21499943.686 21499945.633
+ 43.100 36.300
+ -11475086.919 6 -8941626.137 4 22464072.772 22464069.973 22464071.702
+ 39.600 29.700
+ -20345697.645 7 -15853787.206 7 20386953.622 20386951.621 20386952.688
+ 46.300 46.400
+ -13057727.388 6 -10174846.288 5 22182695.768 22182693.472 22182695.412
+ 40.000 32.100
+ -5446073.664 4 -4243691.113 3 23563219.599 23563217.026 23563218.154
+ 27.600 23.800
+ -18775844.275 7 -14630523.175 7 20629205.184 20629202.885 20629204.447
+ 46.600 46.600
+ -892286.030 3 -695287.558 3 24545694.168 24545694.480 24545694.381
+ 22.600 20.500
+ 06 1 1 8 31 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11726797.321 7 -9137761.107 6 21511759.519 21511756.759 21511758.597
+ 43.000 36.500
+ -11537090.811 6 -8989940.861 4 22452273.970 22452271.072 22452272.893
+ 39.800 29.900
+ -20353397.064 7 -15859786.757 7 20385488.213 20385486.565 20385487.409
+ 46.500 46.500
+ -12989193.558 6 -10121443.294 5 22195736.910 22195734.979 22195736.703
+ 39.700 32.400
+ -5557444.912 4 -4330473.856 3 23542025.348 23542023.123 23542024.209
+ 25.600 19.900
+ -18787436.540 7 -14639556.107 7 20626999.315 20626996.918 20626998.512
+ 46.400 46.600
+ -958576.189 3 -746942.207 3 24533081.180 24533079.412 24533080.325
+ 23.400 20.500
+ 06 1 1 8 32 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11664400.816 7 -9089140.466 6 21523633.554 21523630.454 21523632.331
+ 42.600 36.300
+ -11598599.486 6 -9037869.709 5 22440569.240 22440566.508 22440568.164
+ 40.400 30.400
+ -20360733.162 7 -15865503.199 7 20384092.469 20384090.547 20384091.554
+ 46.400 46.400
+ -12920173.336 6 -10067661.308 5 22208871.438 22208869.243 22208870.970
+ 39.600 32.400
+ -5668661.910 4 -4417136.387 3 23520861.793 23520859.665 23520860.468
+ 25.900 22.600
+ -18798705.543 7 -14648337.146 7 20624854.767 20624852.459 20624854.051
+ 46.500 46.500
+ -1024618.922 3 -798404.063 2 24520513.646 24520512.111 24520513.165
+ 22.100 17.000
+ 06 1 1 8 32 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11601686.293 7 -9040272.012 5 21535567.279 21535564.556 21535566.436
+ 42.700 35.800
+ -11659610.647 6 -9085410.874 5 22428959.456 22428956.680 22428958.349
+ 41.000 31.000
+ -20367705.107 7 -15870935.885 7 20382765.497 20382763.771 20382764.711
+ 46.500 46.400
+ -12850669.255 6 -10013502.275 5 22222097.450 22222095.690 22222097.136
+ 39.600 33.000
+ -5779722.245 4 -4503676.856 3 23499728.302 23499725.421 23499726.490
+ 27.900 22.100
+ -18809651.792 7 -14656866.688 7 20622771.627 20622769.464 20622771.041
+ 46.500 46.500
+ -1090411.503 3 -849670.977 2 24507993.093 24507991.710 24507992.743
+ 22.100 17.800
+ 06 1 1 8 33 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11538654.082 7 -8991156.009 5 21547562.223 21547559.021 21547561.116
+ 42.700 35.300
+ -11720122.152 6 -9132562.700 5 22417444.191 22417441.734 22417443.139
+ 40.500 31.100
+ -20374312.027 7 -15876084.138 7 20381508.288 20381506.438 20381507.454
+ 46.500 46.400
+ -12780683.655 6 -9958968.039 5 22235415.175 22235413.327 22235414.748
+ 39.100 32.600
+ -5890622.954 4 -4590092.892 3 23478623.850 23478621.332 23478622.716
+ 29.700 22.600
+ -18820275.792 7 -14665145.130 7 20620750.083 20620747.784 20620749.348
+ 46.500 46.600
+ -1155951.065 3 -900740.741 3 24495520.849 24495520.085 24495520.051
+ 22.100 18.600
+ 06 1 1 8 33 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11475304.647 7 -8941792.822 5 21559617.043 21559613.959 21559616.115
+ 42.500 35.200
+ -11780131.931 6 -9179323.567 5 22406024.861 22406022.144 22406023.712
+ 40.700 31.100
+ -20380552.934 7 -15880947.185 7 20380320.834 20380318.830 20380319.881
+ 46.500 46.300
+ -12710219.183 6 -9904060.654 5 22248824.195 22248822.038 22248823.832
+ 39.800 32.000
+ -6001361.816 4 -4676382.887 3 23457551.552 23457548.768 23457549.749
+ 27.400 23.000
+ -18830578.033 7 -14673172.846 7 20618789.435 20618787.355 20618788.846
+ 46.400 46.600
+ -1221234.998 3 -951611.313 3 24483098.027 24483097.152 24483097.972
+ 22.600 19.900
+ 06 1 1 8 34 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11411638.843 7 -8892183.105 5 21571732.514 21571729.412 21571731.480
+ 42.600 35.600
+ -11839638.336 6 -9225692.209 5 22394701.381 22394698.502 22394700.106
+ 41.200 31.100
+ -20386427.013 7 -15885524.391 7 20379203.098 20379201.091 20379202.178
+ 46.500 46.200
+ -12639278.167 6 -9848781.932 5 22262323.707 22262321.705 22262323.507
+ 39.600 31.600
+ -6111936.322 4 -4762544.794 3 23436509.769 23436506.679 23436508.213
+ 29.500 22.600
+ -18840559.105 7 -14680950.306 7 20616890.390 20616888.023 20616889.629
+ 46.500 46.600
+ -1286260.588 3 -1002280.547 3 24470724.512 24470723.524 24470723.688
+ 23.000 19.900
+ 06 1 1 8 34 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11347656.880 7 -8842327.043 5 21583908.090 21583904.722 21583906.867
+ 42.700 35.400
+ -11898638.906 6 -9271666.686 5 22383473.915 22383471.031 22383472.693
+ 41.100 31.300
+ -20391933.296 7 -15889815.003 7 20378155.148 20378153.326 20378154.331
+ 46.700 46.400
+ -12567863.082 6 -9793133.814 5 22275913.547 22275911.611 22275913.288
+ 39.600 32.000
+ -6222343.548 4 -4848576.335 4 23415499.024 23415497.322 23415498.182
+ 29.700 24.600
+ -18850219.349 7 -14688477.767 7 20615052.109 20615049.727 20615051.411
+ 46.500 46.500
+ -1351025.069 4 -1052746.350 2 24458400.779 24458398.875 24458399.411
+ 24.200 16.100
+ 06 1 1 8 35 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11283359.205 7 -8792224.965 5 21596142.997 21596140.208 21596142.132
+ 42.600 35.100
+ -11957131.433 6 -9317245.289 5 22372342.888 22372340.192 22372341.773
+ 40.700 30.800
+ -20397071.033 7 -15893818.437 7 20377177.606 20377175.612 20377176.761
+ 46.600 46.300
+ -12495976.512 6 -9737118.295 5 22289593.246 22289591.316 22289592.869
+ 39.700 32.100
+ -6332581.083 4 -4934475.654 3 23394522.312 23394518.987 23394520.829
+ 28.800 20.500
+ -18859559.281 7 -14695755.635 7 20613274.771 20613272.391 20613274.031
+ 46.400 46.500
+ -1415525.606 4 -1103006.523 2 24446126.764 24446124.772 24446125.791
+ 24.900 17.800
+ 06 1 1 8 35 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11218746.334 7 -8741877.283 5 21608438.739 21608435.574 21608437.542
+ 42.700 35.300
+ -12015113.866 6 -9362426.406 5 22361309.179 22361306.489 22361308.174
+ 40.700 31.000
+ -20401839.352 7 -15897534.009 7 20376270.018 20376268.200 20376269.239
+ 46.700 46.500
+ -12423620.952 6 -9680737.336 5 22303361.631 22303360.300 22303361.581
+ 39.200 31.600
+ -6442646.405 4 -5020240.800 3 23373577.665 23373574.685 23373575.938
+ 28.400 22.100
+ -18868579.436 7 -14702784.328 7 20611558.276 20611555.905 20611557.541
+ 46.400 46.500
+ -1479759.551 3 -1153058.946 2 24433902.828 24433901.368 24433901.868
+ 23.400 17.800
+ 06 1 1 8 36 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11153818.583 7 -8691284.237 5 21620794.037 21620790.948 21620793.010
+ 42.700 35.300
+ -12072584.235 6 -9407208.518 5 22350373.270 22350370.375 22350372.072
+ 40.600 31.300
+ -20406237.439 7 -15900961.094 7 20375433.087 20375431.287 20375432.324
+ 46.700 46.300
+ -12350798.883 6 -9623992.866 5 22317219.914 22317217.381 22317219.466
+ 39.500 30.800
+ -6552536.869 4 -5105869.689 3 23352665.375 23352662.981 23352664.166
+ 27.900 21.600
+ -18877280.383 7 -14709564.290 7 20609902.536 20609900.111 20609901.857
+ 46.600 46.400
+ -1543724.374 3 -1202901.630 3 24421730.352 24421729.099 24421729.312
+ 21.600 18.600
+ 06 1 1 8 36 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11088576.484 7 -8640446.243 5 21633208.693 21633206.313 21633208.052
+ 42.100 35.400
+ -12129540.056 6 -9451589.676 5 22339534.697 22339531.932 22339533.636
+ 41.000 31.100
+ -20410264.369 7 -15904098.963 7 20374666.870 20374665.016 20374666.043
+ 46.600 46.300
+ -12277512.935 6 -9566886.918 5 22331165.590 22331163.111 22331165.344
+ 39.800 30.600
+ -6662250.022 5 -5191360.399 3 23331788.229 23331785.408 23331786.960
+ 30.400 22.600
+ -18885662.488 7 -14716095.802 7 20608307.356 20608305.037 20608306.697
+ 46.600 46.500
+ -1607417.211 3 -1252532.352 3 24409609.995 24409609.161 24409608.926
+ 22.100 19.900
+ 06 1 1 8 37 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11023020.575 7 -8589363.737 5 21645684.443 21645681.070 21645683.056
+ 42.100 34.900
+ -12185979.792 6 -9495568.697 5 22328794.516 22328791.783 22328793.496
+ 41.000 31.100
+ -20413919.249 7 -15906946.920 7 20373971.121 20373969.503 20373970.408
+ 46.600 46.400
+ -12203765.468 6 -9509421.347 5 22345199.216 22345196.857 22345198.819
+ 39.300 30.600
+ -6771783.280 4 -5276710.941 3 23310944.191 23310942.276 23310942.984
+ 29.700 23.800
+ -18893726.370 7 -14722379.351 7 20606772.855 20606770.603 20606772.085
+ 46.200 46.600
+ -1670835.195 4 -1301948.919 2 24397542.527 24397540.482 24397541.695
+ 24.600 17.800
+ 06 1 1 8 37 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10957151.402 7 -8538037.117 5 21658218.171 21658215.559 21658217.421
+ 42.400 35.100
+ -12241901.311 6 -9539143.902 5 22318152.785 22318150.325 22318151.681
+ 40.900 31.300
+ -20417201.164 7 -15909504.260 7 20373346.741 20373344.923 20373345.942
+ 46.600 46.400
+ -12129559.192 6 -9451598.269 5 22359320.102 22359317.915 22359319.951
+ 39.800 31.500
+ -6881134.081 4 -5361919.325 3 23290134.689 23290133.036 23290134.198
+ 29.500 23.000
+ -18901472.482 7 -14728415.281 7 20605298.567 20605296.595 20605297.912
+ 46.200 46.500
+ -1733976.032 4 -1351149.546 3 24385526.689 24385525.714 24385525.972
+ 25.300 19.900
+ 06 1 1 8 38 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10890969.268 7 -8486466.634 5 21670812.280 21670809.743 21670811.464
+ 42.100 35.100
+ -12297302.457 6 -9582313.631 5 22307610.539 22307607.646 22307609.398
+ 41.100 31.500
+ -20420109.089 7 -15911770.174 7 20372793.303 20372791.618 20372792.529
+ 46.600 46.400
+ -12054896.475 6 -9393419.526 5 22373527.958 22373525.629 22373527.676
+ 39.200 31.000
+ -6990299.984 5 -5446983.630 4 23269361.940 23269359.532 23269360.489
+ 30.200 24.600
+ -18908901.431 7 -14734204.068 7 20603885.116 20603882.852 20603884.360
+ 46.300 46.600
+ -1796836.766 4 -1400131.909 3 24373565.101 24373563.770 24373564.426
+ 24.900 19.300
+ 06 1 1 8 38 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10824474.945 7 -8434652.889 5 21683466.482 21683463.057 21683465.159
+ 42.000 34.700
+ -12352181.128 6 -9625076.235 5 22297167.727 22297164.676 22297166.708
+ 41.700 31.000
+ -20422642.136 7 -15913743.978 7 20372311.418 20372309.674 20372310.601
+ 46.600 46.600
+ -11979779.955 6 -9334887.168 5 22387822.061 22387819.772 22387821.819
+ 38.900 31.000
+ -7099278.327 4 -5531901.781 4 23248624.622 23248621.562 23248623.151
+ 29.900 24.200
+ -18916013.621 7 -14739746.037 7 20602531.675 20602529.446 20602530.958
+ 46.200 46.600
+ -1859414.847 4 -1448893.999 3 24361655.791 24361655.310 24361655.416
+ 24.600 19.300
+ 06 1 1 8 39 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10757668.863 6 -8382596.218 5 21696178.730 21696175.964 21696177.714
+ 41.900 35.100
+ -12406535.442 6 -9667430.256 5 22286824.590 22286821.302 22286823.328
+ 41.900 30.200
+ -20424799.545 7 -15915425.080 7 20371900.936 20371899.127 20371900.122
+ 46.700 46.500
+ -11904212.229 6 -9276003.220 5 22402202.099 22402200.032 22402201.862
+ 38.600 30.200
+ -7208066.557 5 -5616671.778 4 23227922.366 23227919.658 23227921.496
+ 31.800 24.200
+ -18922809.628 7 -14745041.624 7 20601238.274 20601236.240 20601237.652
+ 46.400 46.600
+ -1921707.436 4 -1497433.662 3 24349801.776 24349800.794 24349801.766
+ 25.600 19.300
+ 06 1 1 8 39 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10690551.335 6 -8330296.854 5 21708950.405 21708948.204 21708949.726
+ 41.800 35.400
+ -12460363.492 6 -9709374.200 5 22276581.427 22276578.074 22276580.143
+ 41.600 30.400
+ -20426580.539 7 -15916812.866 7 20371562.075 20371560.183 20371561.258
+ 46.800 46.300
+ -11828195.938 6 -9216769.733 4 22416667.388 22416665.273 22416667.154
+ 37.700 29.900
+ -7316662.138 5 -5701291.665 4 23207257.276 23207254.886 23207256.175
+ 30.800 25.600
+ -18929289.935 7 -14750091.211 7 20600005.385 20600003.140 20600004.640
+ 46.500 46.600
+ -1983711.629 4 -1545748.606 2 24338003.700 24338002.265 24338002.715
+ 26.500 17.800
+ 06 1 1 8 40 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10623123.197 6 -8277755.467 5 21721782.203 21721779.297 21721780.865
+ 41.400 35.200
+ -12513663.373 6 -9750906.580 5 22266438.508 22266435.602 22266437.333
+ 41.600 31.100
+ -20427984.274 7 -15917906.686 7 20371294.826 20371293.106 20371294.055
+ 46.700 46.500
+ -11751733.613 6 -9157188.687 4 22431218.070 22431215.496 22431217.605
+ 38.400 29.500
+ -7425062.461 5 -5785759.412 3 23186629.620 23186626.564 23186628.067
+ 30.100 23.400
+ -18935455.111 7 -14754895.245 7 20598832.339 20598829.926 20598831.558
+ 46.400 46.700
+ -2045425.412 4 -1593837.246 2 24326261.220 24326258.442 24326259.507
+ 24.900 16.100
+ 06 1 1 8 40 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10555384.824 6 -8224972.333 5 21734671.723 21734669.426 21734671.209
+ 41.700 34.900
+ -12566433.122 7 -9792025.868 5 22256396.870 22256394.171 22256395.798
+ 42.000 31.800
+ -20429009.918 7 -15918705.892 7 20371099.641 20371097.884 20371098.860
+ 46.600 46.400
+ -11674827.779 6 -9097262.065 4 22445852.731 22445850.220 22445852.302
+ 38.400 29.200
+ -7533265.233 5 -5870073.226 4 23166039.325 23166036.516 23166037.951
+ 30.800 25.900
+ -18941305.680 7 -14759454.130 7 20597718.909 20597716.580 20597718.238
+ 46.500 46.800
+ -2106845.805 3 -1641697.268 2 24314572.773 24314570.281 24314571.355
+ 23.000 17.800
+ 06 1 1 8 41 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10487336.703 6 -8171947.832 5 21747621.143 21747618.694 21747620.151
+ 41.300 34.900
+ -12618670.944 7 -9832730.668 5 22246456.371 22246453.751 22246455.205
+ 42.100 32.300
+ -20429656.606 7 -15919209.801 7 20370976.523 20370974.779 20370975.749
+ 46.500 46.300
+ -11597481.190 6 -9036991.991 4 22460570.971 22460568.775 22460570.615
+ 37.700 29.700
+ -7641267.759 4 -5954231.003 4 23145486.914 23145484.611 23145485.560
+ 29.500 26.500
+ -18946842.103 7 -14763768.222 7 20596665.440 20596662.986 20596664.654
+ 46.600 46.700
+ -2167970.369 3 -1689326.751 3 24302940.210 24302938.563 24302939.358
+ 23.800 19.900
+ 06 1 1 8 41 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10418979.399 6 -8118682.418 5 21760629.802 21760626.460 21760628.203
+ 41.000 34.300
+ -12670374.851 6 -9873019.428 5 22236617.350 22236614.710 22236616.059
+ 41.600 32.400
+ -20429923.515 7 -15919417.782 7 20370926.110 20370924.044 20370925.153
+ 46.700 46.500
+ -11519696.227 6 -8976380.315 5 22475373.080 22475370.897 22475372.851
+ 38.100 30.800
+ -7749067.246 5 -6038230.570 4 23124973.430 23124970.585 23124972.212
+ 31.300 26.200
+ -18952065.058 7 -14767838.056 7 20595671.240 20595669.079 20595670.612
+ 46.400 46.700
+ -2228796.176 4 -1736723.435 3 24291366.186 24291364.355 24291364.886
+ 26.500 21.600
+ 06 1 1 8 42 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10350313.454 6 -8065176.501 5 21773695.866 21773693.099 21773694.899
+ 41.200 34.400
+ -12721542.689 6 -9912890.468 5 22226880.659 22226877.798 22226879.304
+ 41.600 32.100
+ -20429809.823 7 -15919329.194 7 20370947.544 20370945.708 20370946.765
+ 46.700 46.400
+ -11441475.753 6 -8915429.286 4 22490257.804 22490255.652 22490257.633
+ 38.400 29.700
+ -7856661.373 5 -6122070.105 4 23104498.778 23104496.230 23104497.446
+ 31.500 26.200
+ -18956974.975 7 -14771663.958 7 20594736.992 20594734.801 20594736.254
+ 46.400 46.800
+ -2289320.681 4 -1783885.356 3 24279848.437 24279847.004 24279847.492
+ 27.100 19.300
+ 06 1 1 8 42 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10281339.578 6 -8011430.624 5 21786820.836 21786818.319 21786820.112
+ 41.000 34.100
+ -12772172.706 6 -9952342.426 5 22217245.906 22217243.061 22217244.802
+ 41.900 31.600
+ -20429314.650 7 -15918943.348 7 20371041.970 20371039.872 20371041.043
+ 46.700 46.400
+ -11362822.155 6 -8854140.768 5 22505225.491 22505223.232 22505225.110
+ 38.200 30.400
+ -7964047.677 5 -6205747.716 4 23084063.613 23084061.697 23084062.439
+ 31.600 27.600
+ -18961572.352 7 -14775246.321 7 20593862.260 20593859.876 20593861.503
+ 46.500 46.600
+ -2349541.479 4 -1830810.643 2 24268388.573 24268386.652 24268387.985
+ 25.300 17.000
+ 06 1 1 8 43 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10212058.338 6 -7957445.256 5 21800005.200 21800002.152 21800004.036
+ 41.100 33.900
+ -12822263.118 6 -9991373.919 5 22207714.050 22207711.176 22207712.800
+ 41.900 31.500
+ -20428437.140 7 -15918259.577 7 20371208.739 20371206.875 20371207.955
+ 46.700 46.400
+ -11283738.241 6 -8792516.935 4 22520274.879 22520272.091 22520274.324
+ 38.100 29.200
+ -8071223.555 4 -6289261.344 4 23063668.512 23063666.207 23063667.209
+ 29.900 25.300
+ -18965857.763 7 -14778585.605 7 20593046.796 20593044.411 20593046.073
+ 46.700 46.500
+ -2409455.700 4 -1877497.002 3 24256986.145 24256985.916 24256985.805
+ 24.900 19.900
+ 06 1 1 8 43 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10142470.108 6 -7903220.675 5 21813247.422 21813244.342 21813246.290
+ 41.400 33.800
+ -12871812.071 6 -10029983.499 5 22198285.228 22198282.315 22198284.021
+ 41.900 31.800
+ -20427176.682 7 -15917277.403 7 20371448.447 20371446.720 20371447.646
+ 46.600 46.300
+ -11204226.586 6 -8730559.791 4 22535404.445 22535402.871 22535404.332
+ 36.500 29.900
+ -8178186.323 5 -6372608.903 4 23043314.831 23043311.787 23043313.215
+ 31.100 24.900
+ -18969831.792 7 -14781682.253 7 20592290.588 20592288.186 20592289.884
+ 46.700 46.700
+ -2469061.166 4 -1923942.788 2 24245644.642 24245642.730 24245643.948
+ 25.300 17.000
+ 06 1 1 8 44 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10072575.675 6 -7848757.493 5 21826547.647 21826545.039 21826546.851
+ 41.500 34.300
+ -12920817.687 7 -10068169.701 5 22188959.838 22188956.815 22188958.691
+ 42.000 31.500
+ -20425532.393 7 -15915996.137 7 20371761.520 20371759.613 20371760.594
+ 46.400 46.300
+ -11124289.718 6 -8668271.320 5 22550616.635 22550614.587 22550616.314
+ 37.400 31.000
+ -8284933.630 5 -6455788.596 4 23023000.631 23022998.293 23022999.740
+ 32.400 25.300
+ -18973494.910 7 -14784536.626 7 20591593.493 20591591.113 20591592.771
+ 46.600 46.600
+ -2528354.694 4 -1970145.506 3 24234361.425 24234360.072 24234360.764
+ 25.900 19.300
+ 06 1 1 8 44 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10002375.434 6 -7794056.020 5 21839906.629 21839903.530 21839905.627
+ 41.300 33.600
+ -12969278.260 7 -10105931.190 5 22179738.055 22179735.203 22179736.961
+ 42.300 31.800
+ -20423503.449 7 -15914415.144 7 20372147.665 20372145.742 20372146.755
+ 46.400 46.200
+ -11043930.511 6 -8605653.756 4 22565908.000 22565906.219 22565907.872
+ 37.700 29.000
+ -8391462.896 5 -6538798.401 4 23002728.783 23002726.583 23002727.580
+ 31.800 25.600
+ -18976847.607 7 -14787149.113 7 20590955.411 20590953.160 20590954.774
+ 46.600 46.700
+ -2587333.776 4 -2016103.180 3 24223137.800 24223136.244 24223137.299
+ 24.600 19.900
+ 06 1 1 8 45 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9931870.170 6 -7739116.859 5 21853323.351 21853320.157 21853322.011
+ 40.700 33.100
+ -13017191.902 7 -10143266.499 5 22170620.220 22170617.305 22170619.231
+ 42.400 31.800
+ -20421089.138 7 -15912533.864 7 20372606.952 20372605.077 20372606.059
+ 46.400 46.200
+ -10963151.568 6 -8542709.122 4 22581279.891 22581277.680 22581279.751
+ 37.100 29.700
+ -8497771.854 5 -6621636.510 4 22982499.720 22982496.727 22982497.947
+ 32.100 26.200
+ -18979890.517 7 -14789520.215 7 20590376.174 20590374.084 20590375.579
+ 46.600 46.700
+ -2645995.887 4 -2061813.901 3 24211975.118 24211973.517 24211974.212
+ 25.300 19.300
+ 06 1 1 8 45 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9861060.485 6 -7683940.493 5 21866797.667 21866794.917 21866796.818
+ 40.900 33.600
+ -13064556.998 7 -10180174.368 5 22161607.428 22161604.098 22161606.116
+ 42.700 32.100
+ -20418288.780 7 -15910351.769 7 20373139.797 20373137.963 20373138.894
+ 46.200 46.100
+ -10881955.439 6 -8479439.399 5 22596731.559 22596728.911 22596730.978
+ 37.400 30.400
+ -8603858.066 5 -6704301.038 4 22962311.393 22962309.242 22962310.310
+ 32.300 27.100
+ -18982624.137 7 -14791650.303 7 20589856.001 20589853.869 20589855.371
+ 46.500 46.600
+ -2704338.787 4 -2107275.877 3 24200872.780 24200871.578 24200871.916
+ 25.600 22.100
+ 06 1 1 8 46 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9789946.765 6 -7628527.225 5 21880330.018 21880327.564 21880329.162
+ 40.700 33.500
+ -13111371.772 7 -10216653.418 5 22152698.597 22152695.625 22152697.484
+ 42.500 32.000
+ -20415101.597 7 -15907868.250 7 20373746.105 20373744.530 20373745.309
+ 46.200 46.200
+ -10800344.887 6 -8415846.767 5 22612261.326 22612259.153 22612260.898
+ 37.300 30.100
+ -8709718.512 5 -6786789.674 4 22942166.740 22942164.581 22942165.530
+ 31.800 27.400
+ -18985049.031 7 -14793539.830 7 20589394.727 20589392.523 20589394.059
+ 46.600 46.700
+ -2762358.996 4 -2152486.358 3 24189832.092 24189830.629 24189831.227
+ 25.600 23.000
+ 06 1 1 8 46 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9718529.853 6 -7572877.692 5 21893920.450 21893917.624 21893919.370
+ 40.400 32.700
+ -13157634.502 7 -10252702.310 5 22143895.131 22143891.954 22143893.879
+ 42.200 32.300
+ -20411526.853 7 -15905082.737 7 20374426.489 20374424.791 20374425.711
+ 46.400 46.300
+ -10718322.570 6 -8351933.263 4 22627869.230 22627867.274 22627869.128
+ 37.000 29.500
+ -8815350.674 5 -6869100.411 4 22922066.826 22922063.494 22922064.880
+ 32.600 27.600
+ -18987165.786 7 -14795189.248 7 20588991.909 20588989.719 20588991.265
+ 46.800 46.700
+ -2820055.094 4 -2197444.323 3 24178852.280 24178851.096 24178851.216
+ 25.300 22.600
+ 06 1 1 8 47 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9646810.084 6 -7516992.169 5 21907568.337 21907565.335 21907567.146
+ 39.900 32.300
+ -13203343.488 7 -10288319.708 5 22135196.802 22135194.074 22135195.619
+ 42.100 32.600
+ -20407563.628 7 -15901994.515 7 20375180.850 20375178.953 20375180.007
+ 46.300 46.200
+ -10635891.130 6 -8287700.963 4 22643555.828 22643553.471 22643555.578
+ 37.200 29.000
+ -8920752.241 5 -6951231.462 4 22902008.601 22902006.211 22902007.347
+ 33.000 27.900
+ -18988974.938 7 -14796598.979 7 20588647.541 20588645.409 20588646.915
+ 46.800 46.700
+ -2877424.049 4 -2242147.375 3 24167935.038 24167933.651 24167934.846
+ 25.900 19.300
+ 06 1 1 8 47 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9574788.168 6 -7460871.209 5 21921273.121 21921270.926 21921272.462
+ 40.200 33.200
+ -13248496.983 7 -10323504.254 5 22126604.223 22126601.828 22126603.118
+ 42.000 33.000
+ -20403211.336 7 -15898603.123 7 20376008.940 20376007.192 20376008.147
+ 46.400 46.100
+ -10553053.344 6 -8223152.046 4 22659318.768 22659316.839 22659318.608
+ 36.600 28.400
+ -9025920.786 5 -7033180.947 4 22881995.243 22881993.453 22881994.012
+ 31.300 28.800
+ -18990476.975 7 -14797769.398 7 20588361.866 20588359.632 20588361.156
+ 46.800 46.700
+ -2934463.472 4 -2286593.685 3 24157081.182 24157079.368 24157080.311
+ 24.200 18.600
+ 06 1 1 8 48 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9502464.958 6 -7404515.478 5 21935035.840 21935033.728 21935034.871
+ 39.700 33.100
+ -13293093.140 7 -10358254.508 5 22118117.912 22118115.478 22118116.778
+ 42.200 33.200
+ -20398469.275 7 -15894908.011 7 20376911.262 20376909.534 20376910.443
+ 46.300 46.000
+ -10469811.836 6 -8158288.537 4 22675159.783 22675157.348 22675159.475
+ 37.500 29.000
+ -9130853.898 5 -7114946.961 4 22862028.213 22862025.098 22862026.437
+ 32.600 28.600
+ -18991672.414 7 -14798700.908 7 20588134.371 20588132.127 20588133.633
+ 46.700 46.700
+ -2991170.696 4 -2330781.119 3 24146290.836 24146288.653 24146289.458
+ 26.200 19.300
+ 06 1 1 8 48 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9429841.144 6 -7347925.507 5 21948855.738 21948853.269 21948854.878
+ 39.700 32.700
+ -13337130.709 7 -10392569.496 5 22109737.876 22109735.292 22109736.743
+ 42.300 32.700
+ -20393336.625 7 -15890908.543 7 20377888.078 20377886.211 20377887.259
+ 46.400 46.000
+ -10386169.367 6 -8093112.575 4 22691076.211 22691073.757 22691075.861
+ 36.400 28.800
+ -9235548.881 5 -7196527.431 4 22842104.579 22842102.156 22842103.190
+ 32.100 27.600
+ -18992561.897 7 -14799394.009 7 20587964.962 20587962.724 20587964.321
+ 46.700 46.400
+ -3047543.202 4 -2374707.705 3 24135562.505 24135561.612 24135562.159
+ 26.800 22.100
+ 06 1 1 8 49 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9356917.276 6 -7291101.732 5 21962733.019 21962730.253 21962731.914
+ 39.600 32.600
+ -13380607.873 7 -10426447.819 5 22101464.589 22101461.674 22101463.420
+ 42.300 32.700
+ -20387812.571 7 -15886604.086 7 20378939.273 20378937.393 20378938.402
+ 46.300 46.000
+ -10302128.458 6 -8027626.136 4 22707068.843 22707066.126 22707068.276
+ 36.100 27.900
+ -9340003.262 5 -7277920.435 4 22822227.516 22822225.220 22822226.290
+ 33.900 28.600
+ -18993145.946 7 -14799849.112 7 20587853.851 20587851.593 20587853.160
+ 46.700 46.500
+ -3103578.584 4 -2418371.598 3 24124899.508 24124898.274 24124898.778
+ 24.600 21.600
+ 06 1 1 8 49 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9283693.762 6 -7234044.463 5 21976666.987 21976664.401 21976665.941
+ 39.300 32.700
+ -13423522.873 6 -10459888.083 5 22093298.000 22093295.123 22093296.781
+ 41.800 32.700
+ -20381896.398 7 -15881994.087 7 20380065.120 20380063.270 20380064.221
+ 46.300 46.000
+ -10217691.956 6 -7961831.464 4 22723136.832 22723133.980 22723136.167
+ 36.600 27.900
+ -9444214.573 5 -7359124.009 4 22802396.578 22802394.468 22802395.306
+ 33.000 26.800
+ -18993425.045 7 -14800066.591 7 20587800.838 20587798.505 20587800.035
+ 46.800 46.500
+ -3159274.159 4 -2461770.740 3 24114300.536 24114299.734 24114299.693
+ 25.300 21.600
+ 06 1 1 8 50 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -137522.613 3 -107160.141 3 24634251.031 24634246.204 24634250.425
+ 21.100 22.600
+ -9210171.324 6 -7176754.256 5 21990657.483 21990655.227 21990656.821
+ 39.800 32.800
+ -13465874.414 7 -10492889.283 5 22085239.126 22085236.092 22085237.803
+ 42.200 33.100
+ -20375587.336 7 -15877077.935 7 20381265.681 20381263.881 20381264.810
+ 46.300 46.000
+ -10132862.584 6 -7895730.643 4 22739279.194 22739276.795 22739278.665
+ 36.200 29.000
+ -9548180.346 5 -7440136.262 4 22782613.681 22782610.126 22782611.766
+ 33.200 27.600
+ -18993399.958 7 -14800047.040 7 20587805.656 20587803.315 20587804.878
+ 46.700 46.500
+ -3214627.677 4 -2504903.353 3 24103769.354 24103765.686 24103767.731
+ 26.800 21.600
+ 06 1 1 8 50 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -240655.559 3 -187523.477 3 24614625.846 24614620.487 24614624.307
+ 23.400 22.600
+ -9136351.005 6 -7119231.948 5 22004705.402 22004702.513 22004704.345
+ 39.300 32.400
+ -13507660.647 7 -10525449.990 5 22077287.368 22077284.603 22077286.083
+ 42.500 33.200
+ -20368884.681 7 -15871855.086 7 20382541.064 20382539.312 20382540.197
+ 46.200 46.000
+ -10047642.982 6 -7829325.754 4 22755495.629 22755493.307 22755495.288
+ 36.300 28.400
+ -9651898.034 5 -7520955.207 4 22762875.704 22762873.443 22762874.475
+ 33.200 27.400
+ -18993071.033 7 -14799790.730 7 20587868.181 20587865.921 20587867.477
+ 46.700 46.700
+ -3269636.373 4 -2547767.242 3 24093299.474 24093298.285 24093299.430
+ 26.800 23.000
+ 06 1 1 8 51 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -343779.707 4 -267879.923 3 24595002.851 24594996.661 24595001.615
+ 25.600 22.100
+ -9062233.265 6 -7061477.882 5 22018809.404 22018806.815 22018808.621
+ 39.500 32.400
+ -13548879.374 7 -10557568.482 5 22069443.519 22069441.130 22069442.438
+ 42.500 33.200
+ -20361787.860 7 -15866325.102 7 20383891.583 20383889.757 20383890.732
+ 46.300 45.900
+ -9962035.907 6 -7762618.936 4 22771786.534 22771783.673 22771786.056
+ 36.500 27.600
+ -9755365.466 5 -7601579.158 4 22743186.257 22743184.330 22743185.444
+ 34.700 29.000
+ -18992438.930 7 -14799298.181 7 20587988.488 20587986.076 20587987.763
+ 46.600 46.400
+ -3324297.971 4 -2590360.638 3 24082898.672 24082896.505 24082897.300
+ 25.600 22.100
+ 06 1 1 8 51 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -446893.905 5 -348228.675 3 24575380.649 24575374.761 24575379.369
+ 30.200 22.100
+ -8987818.635 6 -7003492.472 5 22032970.412 22032967.538 22032969.333
+ 39.600 32.800
+ -13589530.168 7 -10589244.428 5 22061707.644 22061705.434 22061706.743
+ 42.700 33.400
+ -20354296.091 7 -15860487.362 7 20385317.162 20385315.335 20385316.330
+ 46.200 45.800
+ -9876044.068 6 -7695612.315 4 22788149.697 22788147.881 22788149.435
+ 36.200 28.400
+ -9858579.789 5 -7682005.879 4 22723545.915 22723543.353 22723544.344
+ 33.800 29.200
+ -18991504.097 7 -14798569.737 7 20588166.504 20588163.968 20588165.729
+ 46.800 46.400
+ -3378610.005 4 -2632681.685 3 24072564.327 24072561.708 24072562.627
+ 26.200 23.000
+ 06 1 1 8 52 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -549996.784 4 -428568.605 3 24555760.236 24555754.196 24555758.976
+ 28.600 20.500
+ -8913107.831 6 -6945276.264 5 22047187.492 22047184.611 22047186.274
+ 39.600 32.600
+ -13629611.169 7 -10620476.382 5 22054080.835 22054077.898 22054079.641
+ 42.600 33.100
+ -20346408.654 7 -15854341.308 7 20386818.193 20386816.302 20386817.290
+ 46.200 45.900
+ -9789670.205 6 -7628307.993 4 22804585.991 22804583.688 22804585.757
+ 36.000 27.600
+ -9961538.648 5 -7762233.517 4 22703953.014 22703950.986 22703951.618
+ 33.600 29.000
+ -18990267.193 7 -14797605.915 7 20588401.871 20588399.492 20588401.101
+ 46.700 46.600
+ -3432570.068 4 -2674728.466 3 24062294.066 24062292.957 24062293.599
+ 27.900 22.100
+ 06 1 1 8 52 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -653086.768 4 -508898.453 3 24536143.794 24536137.249 24536142.479
+ 28.100 23.000
+ -8838101.483 6 -6886829.777 5 22061460.349 22061457.881 22061459.561
+ 39.200 32.700
+ -13669120.978 7 -10651263.258 5 22046562.658 22046559.510 22046561.295
+ 42.900 32.400
+ -20338124.786 7 -15847886.349 7 20388394.471 20388392.725 20388393.637
+ 46.200 45.800
+ -9702917.034 6 -7560708.119 4 22821094.529 22821092.559 22821094.343
+ 36.400 28.400
+ -10064239.665 5 -7842260.242 4 22684408.362 22684407.601 22684407.990
+ 33.600 29.900
+ -18988728.670 7 -14796407.063 7 20588694.521 20588692.283 20588693.767
+ 46.700 46.700
+ -3486175.427 4 -2716498.848 3 24052093.037 24052092.085 24052092.519
+ 26.800 22.600
+ 06 1 1 8 53 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -756162.521 4 -589217.184 3 24516528.106 24516522.734 24516527.080
+ 24.200 21.100
+ -8762800.609 6 -6828153.787 5 22075789.930 22075787.024 22075788.757
+ 39.100 32.600
+ -13708057.837 7 -10681603.682 5 22039153.323 22039149.999 22039152.009
+ 43.200 32.800
+ -20329443.867 7 -15841122.009 7 20390046.522 20390044.667 20390045.648
+ 46.300 45.700
+ -9615787.329 5 -7492814.833 4 22837674.641 22837672.745 22837674.381
+ 35.700 27.900
+ -10166680.164 5 -7922083.981 5 22664915.311 22664913.672 22664914.677
+ 34.700 30.100
+ -18986889.249 7 -14794973.746 7 20589044.418 20589042.208 20589043.725
+ 46.600 46.500
+ -3539423.996 4 -2757991.201 3 24041962.222 24041959.463 24041961.016
+ 27.400 22.100
+ 06 1 1 8 53 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -859222.791 3 -669523.853 3 24496917.410 24496911.347 24496915.791
+ 23.400 19.300
+ -8687205.929 6 -6769248.857 5 22090175.446 22090172.292 22090174.123
+ 39.100 32.400
+ -13746420.515 7 -10711496.692 5 22031852.881 22031849.892 22031851.713
+ 42.900 33.000
+ -20320365.262 7 -15834047.776 7 20391774.214 20391772.271 20391773.328
+ 46.300 45.900
+ -9528283.861 5 -7424630.312 4 22854326.368 22854324.060 22854325.994
+ 35.200 27.600
+ -10268857.939 5 -8001702.988 5 22645473.141 22645469.681 22645471.356
+ 34.700 30.100
+ -18984749.348 7 -14793306.288 7 20589451.839 20589449.433 20589451.107
+ 46.800 46.600
+ -3592313.105 4 -2799203.477 3 24031896.200 24031894.378 24031895.775
+ 27.600 22.100
+ 06 1 1 8 54 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -962266.161 4 -749817.411 2 24477307.796 24477302.645 24477306.697
+ 26.200 17.000
+ -8611317.842 6 -6710115.296 5 22104616.034 22104613.023 22104614.955
+ 39.000 31.000
+ -13784207.366 7 -10740940.993 5 22024662.224 22024659.527 22024661.054
+ 42.700 33.500
+ -20310888.314 7 -15826663.144 7 20393577.527 20393575.674 20393576.688
+ 46.400 45.700
+ -9440409.226 6 -7356156.567 4 22871048.512 22871045.979 22871048.088
+ 36.000 27.600
+ -10370770.565 5 -8081115.385 4 22626080.517 22626076.256 22626078.382
+ 34.800 29.200
+ -18982309.637 7 -14791405.213 7 20589916.034 20589913.756 20589915.321
+ 46.900 46.700
+ -3644840.459 4 -2840133.863 3 24021900.550 24021899.955 24021899.516
+ 25.900 22.600
+ 06 1 1 8 54 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1065291.395 4 -830096.844 2 24457702.351 24457697.184 24457701.658
+ 26.200 17.000
+ -8535137.349 6 -6650753.881 5 22119112.358 22119109.865 22119111.628
+ 38.900 31.500
+ -13821417.227 7 -10769935.693 5 22017581.366 22017578.545 22017580.198
+ 42.700 32.800
+ -20301012.382 7 -15818967.615 7 20395456.702 20395455.052 20395455.874
+ 46.200 45.800
+ -9352166.257 5 -7287395.803 4 22887840.291 22887837.844 22887840.012
+ 35.200 27.600
+ -10472415.474 5 -8160319.159 4 22606735.814 22606733.824 22606735.048
+ 33.800 29.500
+ -18979570.573 7 -14789270.875 7 20590437.042 20590434.965 20590436.433
+ 47.000 46.700
+ -3697003.670 4 -2880780.502 3 24011975.119 24011972.977 24011973.874
+ 27.600 21.600
+ 06 1 1 8 55 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1168296.811 4 -910360.800 3 24438102.993 24438095.607 24438101.155
+ 26.500 21.600
+ -8458665.393 6 -6591165.361 5 22133664.480 22133661.863 22133663.649
+ 38.600 31.100
+ -13858048.530 7 -10798479.574 5 22010610.504 22010607.664 22010609.451
+ 42.800 32.600
+ -20290736.887 7 -15810960.739 7 20397412.137 20397410.375 20397411.336
+ 46.200 45.700
+ -9263557.640 5 -7218350.138 4 22904702.260 22904699.892 22904701.869
+ 35.200 27.100
+ -10573790.101 5 -8239312.352 4 22587443.730 22587442.501 22587444.086
+ 34.900 29.200
+ -18976532.764 7 -14786903.747 7 20591015.451 20591013.052 20591014.668
+ 47.000 46.500
+ -3748800.266 4 -2921141.459 3 24002117.940 24002117.025 24002117.060
+ 27.400 23.800
+ 06 1 1 8 55 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1271281.238 3 -990608.387 4 24418504.344 24418498.877 24418503.142
+ 23.800 24.200
+ -8381902.243 6 -6531349.926 5 22148272.242 22148269.345 22148271.364
+ 39.000 31.300
+ -13894099.831 7 -10826571.508 5 22003750.304 22003747.343 22003749.237
+ 42.900 32.100
+ -20280061.142 7 -15802641.982 7 20399443.871 20399441.845 20399442.966
+ 46.200 45.600
+ -9174586.226 5 -7149021.753 4 22921632.081 22921630.220 22921632.069
+ 34.900 26.500
+ -10674892.287 5 -8318093.266 4 22568205.199 22568203.709 22568204.827
+ 34.900 29.200
+ -18973196.804 7 -14784304.294 7 20591650.161 20591647.834 20591649.513
+ 47.200 46.600
+ -3800228.048 4 -2961215.032 4 23992331.085 23992330.354 23992330.844
+ 26.800 24.200
+ 06 1 1 8 56 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1374243.242 4 -1070838.472 4 24398912.392 24398906.089 24398911.035
+ 25.900 24.900
+ -8304848.820 6 -6471308.308 5 22162935.798 22162932.314 22162934.228
+ 38.400 30.800
+ -13929569.955 7 -10854210.576 5 21997000.969 21996997.655 21996999.717
+ 43.200 32.700
+ -20268984.530 7 -15794010.857 7 20401551.392 20401549.743 20401550.599
+ 46.200 45.700
+ -9085254.618 5 -7079412.690 4 22938631.945 22938629.252 22938631.659
+ 35.400 26.500
+ -10775719.365 6 -8396659.804 5 22549020.363 22549017.081 22549018.650
+ 36.100 31.000
+ -18969563.243 7 -14781472.947 7 20592341.616 20592339.232 20592340.967
+ 47.300 46.400
+ -3851284.489 4 -3000999.245 4 23982617.059 23982614.881 23982615.368
+ 29.000 24.900
+ 06 1 1 8 56 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1477181.092 3 -1151049.776 3 24379322.751 24379317.565 24379321.854
+ 23.400 23.000
+ -8227505.712 6 -6411040.965 5 22177652.803 22177650.279 22177652.087
+ 38.600 30.800
+ -13964457.529 7 -10881395.716 5 21990361.916 21990358.939 21990360.784
+ 43.100 32.800
+ -20257506.492 7 -15785066.931 7 20403735.651 20403734.003 20403734.780
+ 46.100 45.800
+ -8995565.812 5 -7009525.303 4 22955698.888 22955697.261 22955698.542
+ 34.400 28.600
+ -10876269.042 5 -8475010.155 5 22529886.600 22529883.027 22529884.560
+ 35.200 31.100
+ -18965632.632 7 -14778410.133 7 20593089.712 20593087.227 20593088.991
+ 47.200 46.500
+ -3901967.294 4 -3040492.307 3 23972971.303 23972969.185 23972970.497
+ 28.100 21.100
+ 06 1 1 8 57 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1580093.670 4 -1231241.390 3 24359739.408 24359733.611 24359738.111
+ 25.300 19.900
+ -8149873.828 6 -6350548.599 5 22192425.653 22192423.010 22192424.744
+ 38.300 30.800
+ -13998761.198 7 -10908125.850 5 21983834.059 21983831.134 21983832.928
+ 43.100 33.000
+ -20245626.395 7 -15775809.713 7 20405996.575 20405994.627 20405995.654
+ 46.200 45.700
+ -8905522.347 5 -6939361.567 4 22972834.076 22972831.714 22972833.799
+ 34.600 27.400
+ -10976539.035 6 -8553142.572 5 22510805.720 22510802.253 22510803.977
+ 36.200 30.400
+ -18961405.542 7 -14775116.296 7 20593894.005 20593891.635 20593893.307
+ 47.100 46.500
+ -3952274.096 4 -3079692.428 3 23963396.442 23963396.067 23963396.447
+ 26.800 21.100
+ 06 1 1 8 57 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1682979.423 4 -1311412.146 3 24340160.815 24340155.208 24340159.862
+ 28.100 19.900
+ -8071954.023 6 -6289831.877 5 22207252.907 22207250.787 22207252.246
+ 37.600 30.600
+ -14032479.581 7 -10934399.926 5 21977417.779 21977414.741 21977416.518
+ 43.400 33.200
+ -20233343.603 7 -15766238.708 7 20408333.661 20408331.936 20408332.936
+ 46.400 45.600
+ -8815126.983 5 -6868923.623 4 22990035.208 22990033.069 22990034.858
+ 34.500 26.500
+ -11076526.546 6 -8631054.884 4 22491778.134 22491775.010 22491776.711
+ 36.200 29.700
+ -18956882.513 7 -14771591.860 7 20594754.671 20594752.279 20594754.028
+ 47.100 46.500
+ -4002202.630 4 -3118597.753 3 23953896.566 23953895.639 23953895.830
+ 27.100 23.000
+ 06 1 1 8 58 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1785836.845 4 -1391560.771 3 24320587.903 24320582.057 24320586.301
+ 24.900 21.100
+ -7993747.069 6 -6228891.410 5 22222135.626 22222133.107 22222134.771
+ 37.600 30.800
+ -14065611.487 7 -10960217.006 5 21971113.058 21971109.931 21971111.735
+ 43.300 32.800
+ -20220657.520 7 -15756353.450 7 20410747.908 20410746.034 20410747.037
+ 46.300 45.600
+ -8724382.516 5 -6798213.651 4 23007303.517 23007301.355 23007303.294
+ 35.500 26.500
+ -11176229.337 5 -8708745.346 5 22472804.289 22472802.262 22472803.478
+ 35.900 30.200
+ -18952064.083 7 -14767837.239 7 20595671.462 20595669.190 20595670.828
+ 47.000 46.400
+ -4051750.528 4 -3157206.481 3 23944468.590 23944466.882 23944467.655
+ 29.200 23.800
+ 06 1 1 8 58 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1888664.596 4 -1471686.312 3 24301019.337 24301015.350 24301018.621
+ 27.400 22.100
+ -7915253.440 6 -6167727.557 5 22237072.929 22237069.927 22237071.837
+ 37.900 30.400
+ -14098155.935 7 -10985576.326 5 21964919.916 21964916.743 21964918.640
+ 43.200 32.800
+ -20207567.590 7 -15746153.511 7 20413238.819 20413236.975 20413237.945
+ 46.300 45.600
+ -8633291.702 5 -6727233.788 4 23024637.246 23024635.394 23024637.251
+ 35.100 26.800
+ -11275645.150 6 -8786212.185 5 22453885.184 22453884.032 22453885.357
+ 36.600 30.200
+ -18946950.931 7 -14763852.961 7 20596644.566 20596642.223 20596643.882
+ 47.000 46.400
+ -4100915.374 4 -3195516.743 3 23935112.449 23935110.991 23935111.923
+ 28.800 23.400
+ 06 1 1 8 59 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1991461.164 4 -1551787.511 4 24281459.539 24281453.954 24281458.191
+ 27.900 25.900
+ -7836474.200 6 -6106341.144 4 22252064.378 22252061.260 22252063.102
+ 37.900 29.900
+ -14130111.618 7 -11010476.865 5 21958838.858 21958835.915 21958837.709
+ 43.200 32.800
+ -20194073.181 7 -15735638.393 7 20415806.639 20415804.901 20415805.840
+ 46.300 45.600
+ -8541857.250 5 -6655986.164 4 23042036.211 23042034.559 23042036.405
+ 33.900 26.200
+ -11374771.333 6 -8863453.349 5 22435021.978 22435021.050 22435022.261
+ 36.500 31.000
+ -18941543.478 7 -14759639.360 7 20597673.552 20597671.204 20597672.869
+ 47.000 46.400
+ -4149694.886 4 -3233526.731 3 23925829.770 23925828.499 23925829.406
+ 27.600 21.600
+ 06 1 1 8 59 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2094225.025 4 -1631863.256 4 24261902.667 24261898.358 24261901.624
+ 27.600 26.200
+ -7757410.141 6 -6044732.800 5 22267109.695 22267106.564 22267108.472
+ 37.500 30.400
+ -14161477.253 7 -11034917.618 5 21952870.132 21952867.329 21952869.098
+ 43.100 33.000
+ -20180173.687 7 -15724807.623 7 20418451.749 20418449.947 20418450.945
+ 46.400 45.700
+ -8450082.109 5 -6584473.063 4 23059500.632 23059499.001 23059500.362
+ 32.400 25.600
+ -11473605.714 6 -8940467.126 5 22416215.252 22416213.374 22416214.966
+ 37.900 31.300
+ -18935842.383 7 -14755196.946 7 20598758.372 20598756.117 20598757.695
+ 46.900 46.400
+ -4198086.802 4 -3271234.701 3 23916622.026 23916619.439 23916620.504
+ 28.100 21.600
+ 06 1 1 9 0 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2196954.758 4 -1711912.388 3 24242353.738 24242348.464 24242352.493
+ 25.300 21.600
+ -7678062.157 6 -5982903.213 5 22282208.911 22282206.001 22282207.899
+ 37.300 30.600
+ -14192251.435 7 -11058897.506 5 21947013.662 21947011.222 21947012.659
+ 42.700 33.600
+ -20165868.528 7 -15713660.750 7 20421173.800 20421172.100 20421172.981
+ 46.400 45.400
+ -8357968.900 5 -6512696.534 4 23077030.295 23077027.370 23077029.615
+ 32.800 25.300
+ -11572145.915 6 -9017251.671 5 22397463.719 22397461.888 22397462.931
+ 36.800 31.500
+ -18929848.149 7 -14750526.111 7 20599899.080 20599896.803 20599898.339
+ 46.900 46.500
+ -4246088.991 4 -3308638.985 3 23907486.380 23907484.774 23907486.239
+ 28.400 21.600
+ 06 1 1 9 0 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2299648.719 4 -1791933.671 3 24222811.264 24222806.808 24222810.366
+ 26.500 23.400
+ -7598430.620 6 -5920852.685 5 22297361.432 22297359.462 22297361.109
+ 37.300 30.400
+ -14222433.342 7 -11082415.881 5 21941270.510 21941267.792 21941269.214
+ 42.700 33.200
+ -20151157.137 7 -15702197.327 7 20423973.310 20423971.482 20423972.458
+ 46.400 45.400
+ -8265520.365 5 -6440658.703 4 23094621.815 23094619.679 23094621.789
+ 33.500 25.600
+ -11670389.412 6 -9093805.022 5 22378769.766 22378766.634 22378768.241
+ 36.700 31.300
+ -18923561.377 7 -14745627.324 7 20601095.325 20601093.137 20601094.627
+ 47.000 46.600
+ -4293699.282 4 -3345737.896 3 23898425.195 23898425.183 23898425.367
+ 26.200 22.600
+ 06 1 1 9 1 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2402305.823 4 -1871926.189 4 24203276.905 24203272.382 24203275.730
+ 25.600 24.900
+ -7518516.909 6 -5858582.272 5 22312568.257 22312566.648 22312568.130
+ 37.800 30.200
+ -14252021.737 7 -11105471.784 5 21935640.108 21935637.306 21935638.777
+ 42.800 33.400
+ -20136039.027 7 -15690416.981 7 20426850.387 20426848.324 20426849.500
+ 46.300 45.500
+ -8172739.239 5 -6368361.747 4 23112277.293 23112275.648 23112277.109
+ 33.100 26.200
+ -11768333.944 6 -9170125.408 5 22360131.057 22360128.319 22360129.746
+ 36.900 31.500
+ -18916982.616 7 -14740501.016 7 20602347.241 20602344.989 20602346.539
+ 47.000 46.400
+ -4340914.794 4 -3382529.160 4 23889442.612 23889440.404 23889440.903
+ 26.800 24.600
+ 06 1 1 9 1 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2504924.060 4 -1951888.437 3 24183750.127 24183744.639 24183749.006
+ 26.200 23.000
+ -7438321.452 6 -5796092.314 5 22327829.547 22327827.178 22327828.899
+ 37.300 30.400
+ -14281015.430 7 -11128064.277 5 21930123.201 21930119.932 21930121.875
+ 43.400 33.000
+ -20120513.626 7 -15678319.273 7 20429804.601 20429802.770 20429803.813
+ 46.500 45.400
+ -8079628.409 5 -6295807.828 4 23129996.122 23129993.682 23129995.877
+ 32.700 25.600
+ -11865977.042 6 -9246210.911 5 22341550.282 22341547.722 22341548.763
+ 36.600 32.300
+ -18910112.441 7 -14735147.633 7 20603654.610 20603652.330 20603653.960
+ 47.100 46.400
+ -4387734.304 4 -3419011.873 3 23880532.948 23880530.813 23880531.617
+ 28.100 22.600
+ 06 1 1 9 2 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2607501.803 4 -2031819.164 3 24164229.976 24164224.244 24164228.882
+ 26.800 22.100
+ -7357845.175 6 -5733383.545 5 22343144.189 22343141.495 22343143.161
+ 37.300 30.200
+ -14309413.535 7 -11150192.681 5 21924719.110 21924716.122 21924717.803
+ 43.100 33.500
+ -20104580.573 7 -15665903.906 7 20432836.688 20432834.751 20432835.864
+ 46.500 45.500
+ -7986190.533 5 -6222999.095 4 23147777.099 23147774.301 23147776.405
+ 33.400 24.600
+ -11963316.433 6 -9322059.742 5 22323027.454 22323024.196 22323025.799
+ 36.700 31.300
+ -18902951.454 7 -14729567.644 7 20605017.339 20605015.065 20605016.651
+ 46.900 46.500
+ -4434154.722 4 -3455183.612 3 23871697.560 23871697.523 23871697.425
+ 26.800 23.000
+ 06 1 1 9 2 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2710037.905 4 -2111717.405 3 24144718.818 24144712.276 24144717.145
+ 27.900 22.100
+ -7277089.066 6 -5670456.716 5 22358512.180 22358508.965 22358510.610
+ 37.200 30.200
+ -14337214.547 7 -11171855.814 5 21919428.602 21919425.853 21919427.400
+ 43.200 33.800
+ -20088239.185 7 -15653170.356 7 20435946.189 20435944.402 20435945.409
+ 46.400 45.400
+ -7892428.428 5 -6149937.723 4 23165618.824 23165616.760 23165618.483
+ 32.700 24.200
+ -12060349.590 6 -9397669.976 5 22304562.948 22304559.465 22304561.090
+ 37.300 31.300
+ -18895500.200 7 -14723761.469 7 20606435.047 20606433.009 20606434.425
+ 47.100 46.400
+ -4480175.100 4 -3491043.623 3 23862941.662 23862940.298 23862941.201
+ 28.600 23.000
+ 06 1 1 9 3 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2812530.727 4 -2191581.950 3 24125215.713 24125208.607 24125213.933
+ 28.800 20.500
+ -7196053.830 6 -5607312.394 5 22373932.432 22373929.342 22373931.008
+ 36.200 30.200
+ -14364418.030 7 -11193053.342 5 21914251.992 21914249.112 21914250.767
+ 43.200 33.800
+ -20071488.919 7 -15640118.202 7 20439133.740 20439131.903 20439132.872
+ 46.200 45.400
+ -7798344.903 5 -6076625.882 4 23183522.725 23183520.261 23183522.288
+ 33.500 25.300
+ -12157074.306 6 -9473039.859 5 22286157.410 22286153.475 22286155.415
+ 37.900 32.000
+ -18887759.158 7 -14717729.483 7 20607908.518 20607906.069 20607907.725
+ 47.100 46.500
+ -4525792.031 4 -3526589.276 4 23854261.290 23854259.612 23854260.103
+ 28.400 24.200
+ 06 1 1 9 3 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2914978.803 4 -2271411.628 3 24105719.490 24105713.605 24105718.097
+ 27.400 21.100
+ -7114740.303 6 -5543951.224 5 22389404.847 22389402.998 22389404.135
+ 36.000 30.600
+ -14391022.549 7 -11213784.153 5 21909189.406 21909186.422 21909188.232
+ 43.600 33.500
+ -20054329.240 7 -15626747.028 7 20442399.050 20442397.311 20442398.285
+ 46.400 45.600
+ -7703942.660 5 -6003065.683 3 23201486.328 23201484.460 23201486.200
+ 32.800 23.800
+ -12253488.486 6 -9548167.758 5 22267810.236 22267806.424 22267808.369
+ 38.200 31.800
+ -18879729.025 7 -14711472.233 7 20609436.571 20609434.207 20609435.827
+ 47.200 46.500
+ -4571003.699 4 -3561819.109 3 23845656.397 23845655.762 23845656.290
+ 26.200 21.100
+ 06 1 1 9 4 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3017380.400 5 -2351205.073 3 24086233.748 24086226.948 24086232.021
+ 30.400 19.300
+ -7033149.375 6 -5480373.885 5 22404930.974 22404929.123 22404930.769
+ 36.700 30.100
+ -14417027.363 7 -11234047.658 5 21904240.716 21904237.765 21904239.532
+ 43.500 33.800
+ -20036759.740 7 -15613056.511 7 20445742.489 20445740.741 20445741.711
+ 46.600 45.600
+ -7609224.459 5 -5929259.294 4 23219510.877 23219509.041 23219510.680
+ 33.400 26.200
+ -12349589.747 6 -9623051.838 5 22249522.315 22249518.732 22249520.547
+ 38.000 31.800
+ -18871410.297 7 -14704990.099 7 20611019.479 20611017.255 20611018.731
+ 47.000 46.500
+ -4615807.524 4 -3596731.159 3 23837130.740 23837129.256 23837130.666
+ 28.800 21.100
+ 06 1 1 9 4 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3119734.205 5 -2430961.331 3 24066755.809 24066749.628 24066754.405
+ 31.100 18.600
+ -6951281.860 6 -5416581.033 4 22420509.964 22420507.848 22420509.568
+ 36.300 29.900
+ -14442431.442 7 -11253843.062 5 21899406.428 21899403.716 21899405.224
+ 43.400 33.800
+ -20018779.760 7 -15599046.140 7 20449164.067 20449162.299 20449163.159
+ 46.600 45.600
+ -7514193.036 5 -5855208.848 4 23237594.747 23237592.785 23237594.742
+ 33.000 25.600
+ -12445375.730 6 -9697690.239 5 22231295.085 22231291.268 22231293.272
+ 37.700 32.400
+ -18862803.504 7 -14698283.506 7 20612657.256 20612654.996 20612656.574
+ 47.000 46.500
+ -4660202.159 4 -3631324.360 3 23828685.032 23828682.161 23828683.266
+ 29.900 23.000
+ 06 1 1 9 5 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3222038.156 4 -2510678.730 4 24047287.657 24047282.985 24047286.426
+ 29.200 25.900
+ -6869138.808 6 -5352573.466 4 22436142.197 22436139.017 22436141.089
+ 36.300 29.200
+ -14467233.785 7 -11273169.561 5 21894686.427 21894684.045 21894685.309
+ 43.100 33.800
+ -20000388.993 7 -15584715.680 7 20452663.635 20452661.935 20452662.852
+ 46.600 45.500
+ -7418851.302 5 -5780916.564 4 23255737.690 23255735.623 23255737.504
+ 33.100 25.300
+ -12540843.471 6 -9772080.649 5 22213128.122 22213124.364 22213126.305
+ 37.700 32.400
+ -18853909.304 7 -14691352.955 7 20614349.709 20614347.401 20614349.060
+ 47.200 46.400
+ -4704185.035 4 -3665596.691 4 23820314.219 23820312.216 23820313.119
+ 29.700 24.600
+ 06 1 1 9 5 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3324291.197 4 -2590356.420 4 24027829.152 24027824.446 24027828.180
+ 29.500 24.200
+ -6786720.939 5 -5288351.771 4 22451825.877 22451822.998 22451824.537
+ 35.900 29.700
+ -14491433.319 7 -11292026.347 5 21890081.628 21890078.971 21890080.318
+ 42.900 34.000
+ -19981587.002 7 -15570064.780 7 20456241.520 20456239.725 20456240.661
+ 46.400 45.500
+ -7323201.846 5 -5706384.529 4 23273939.818 23273937.338 23273939.325
+ 32.600 26.500
+ -12635991.142 6 -9846221.662 5 22195022.255 22195018.231 22195020.459
+ 38.400 32.400
+ -18844728.211 7 -14684198.857 7 20616096.849 20616094.482 20616096.155
+ 47.000 46.400
+ -4747754.186 5 -3699546.675 3 23812022.186 23812020.856 23812022.463
+ 30.400 21.600
+ 06 1 1 9 6 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3426491.926 4 -2669993.366 4 24008381.472 24008376.167 24008379.988
+ 25.600 26.500
+ -6704029.146 5 -5223916.633 4 22467561.552 22467558.422 22467560.054
+ 35.500 28.600
+ -14515029.490 7 -11310412.969 5 21885591.513 21885588.885 21885590.214
+ 43.100 34.400
+ -19962373.205 7 -15555092.991 7 20459897.609 20459895.991 20459896.854
+ 46.500 45.500
+ -7227247.463 5 -5631614.869 4 23292199.360 23292196.599 23292198.737
+ 31.000 24.200
+ -12730816.577 6 -9920111.589 5 22176977.137 22176973.672 22176975.422
+ 38.100 32.800
+ -18835260.778 7 -14676821.636 7 20617898.398 20617896.139 20617897.731
+ 47.100 46.400
+ -4790906.949 4 -3733172.183 3 23803810.873 23803808.644 23803810.771
+ 29.200 20.500
+ 06 1 1 9 6 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3528638.139 4 -2749587.767 4 23988943.501 23988938.159 23988942.390
+ 25.300 28.600
+ -6621064.318 5 -5159268.731 4 22483349.164 22483346.160 22483347.896
+ 35.500 28.800
+ -14538021.223 7 -11328328.615 5 21881216.237 21881213.788 21881215.065
+ 43.400 34.600
+ -19942747.274 7 -15539800.056 7 20463632.428 20463630.770 20463631.643
+ 46.700 45.400
+ -7130991.030 5 -5556609.861 3 23310515.361 23310513.522 23310515.378
+ 32.000 22.600
+ -12825317.413 6 -9993748.579 5 22158994.193 22158990.813 22158992.520
+ 38.600 32.800
+ -18825507.587 7 -14669221.744 7 20619754.340 20619752.175 20619753.660
+ 47.100 46.600
+ -4833641.388 4 -3766471.725 4 23795679.334 23795677.147 23795678.289
+ 28.800 24.600
+ 06 1 1 9 7 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3630728.180 4 -2829138.458 4 23969516.957 23969510.912 23969515.818
+ 29.000 28.400
+ -6537827.446 5 -5094408.848 4 22499188.395 22499185.758 22499187.314
+ 35.700 29.700
+ -14560407.691 7 -11345772.622 5 21876956.484 21876953.654 21876955.248
+ 43.400 34.500
+ -19922708.742 7 -15524185.619 7 20467445.582 20467443.891 20467444.790
+ 46.600 45.400
+ -7034435.176 5 -5481371.526 4 23328889.910 23328887.604 23328889.550
+ 30.800 24.200
+ -12919491.233 6 -10067130.747 5 22141072.685 22141070.028 22141071.532
+ 39.000 32.700
+ -18815469.153 7 -14661399.586 7 20621664.609 20621662.435 20621663.906
+ 47.000 46.400
+ -4875956.152 5 -3799444.247 4 23787626.296 23787625.174 23787626.221
+ 30.200 24.200
+ 06 1 1 9 7 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3732760.915 4 -2908644.449 5 23950100.227 23950095.276 23950099.038
+ 27.900 30.200
+ -6454319.382 6 -5029337.643 4 22515078.917 22515076.766 22515078.541
+ 36.100 28.800
+ -14582188.069 7 -11362744.350 5 21872811.629 21872808.994 21872810.440
+ 43.400 34.700
+ -19902257.259 7 -15508249.407 7 20471337.418 20471335.665 20471336.562
+ 46.500 45.400
+ -6937582.760 4 -5405902.139 4 23347319.465 23347318.014 23347319.318
+ 29.200 25.300
+ -13013336.256 6 -10140256.723 5 22123213.995 22123211.801 22123213.520
+ 39.500 33.000
+ -18805146.052 7 -14653355.602 7 20623629.002 20623626.796 20623628.331
+ 47.200 46.400
+ -4917848.724 4 -3832087.774 3 23779654.335 23779653.032 23779654.095
+ 28.400 22.100
+ 06 1 1 9 8 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3834734.539 5 -2988104.426 4 23930696.463 23930690.249 23930694.878
+ 31.000 28.400
+ -6370540.779 6 -4964055.628 4 22531021.721 22531019.364 22531021.144
+ 36.000 29.000
+ -14603361.638 7 -11379243.243 5 21868782.653 21868779.633 21868781.370
+ 43.500 34.400
+ -19881392.357 7 -15491991.045 7 20475307.797 20475306.192 20475307.000
+ 46.500 45.400
+ -6840436.428 5 -5330203.671 3 23365806.304 23365804.035 23365806.199
+ 32.100 23.400
+ -13106849.517 6 -10213124.173 5 22105418.767 22105416.994 22105418.348
+ 38.900 33.600
+ -18794538.905 7 -14645090.297 7 20625647.627 20625645.240 20625646.865
+ 47.200 46.400
+ -4959317.235 5 -3864400.889 3 23771765.094 23771761.972 23771763.567
+ 30.400 23.400
+ 06 1 1 9 8 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3936647.413 4 -3067517.036 4 23911302.416 23911296.846 23911301.156
+ 28.800 27.100
+ -6286493.084 5 -4898563.933 4 22547015.839 22547012.874 22547014.871
+ 35.400 28.100
+ -14623927.708 7 -11395268.767 5 21864868.503 21864866.069 21864867.280
+ 42.900 34.100
+ -19860113.625 7 -15475410.217 7 20479357.082 20479355.442 20479356.233
+ 46.400 45.600
+ -6742999.032 5 -5254278.438 4 23384348.385 23384346.238 23384348.034
+ 30.800 24.900
+ -13200029.115 6 -10285731.612 5 22087687.621 22087685.416 22087686.855
+ 38.800 33.600
+ -18783648.157 7 -14636603.999 7 20627719.849 20627717.671 20627719.198
+ 47.100 46.400
+ -5000358.995 4 -3896381.467 4 23763953.218 23763952.157 23763952.771
+ 29.200 24.200
+ 06 1 1 9 9 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4038497.387 5 -3146880.673 4 23891921.429 23891915.022 23891920.049
+ 31.300 26.500
+ -6202176.906 5 -4832863.030 4 22563061.066 22563058.125 22563059.719
+ 35.600 28.800
+ -14643885.553 7 -11410820.339 5 21861070.895 21861068.227 21861069.700
+ 43.400 34.500
+ -19838420.682 7 -15458506.630 7 20483485.058 20483483.438 20483484.294
+ 46.600 45.400
+ -6645273.224 5 -5178128.469 3 23402944.641 23402942.258 23402944.468
+ 31.100 23.000
+ -13292872.484 6 -10358077.081 5 22070021.089 22070017.958 22070019.710
+ 39.600 33.600
+ -18772474.494 7 -14627897.252 7 20629846.241 20629844.006 20629845.561
+ 47.200 46.300
+ -5040972.088 5 -3928028.002 4 23756224.423 23756223.639 23756224.622
+ 30.600 24.900
+ 06 1 1 9 9 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4140283.502 5 -3226194.518 4 23872551.578 23872545.654 23872550.471
+ 31.100 24.200
+ -6117593.075 5 -4766953.570 4 22579156.763 22579153.547 22579155.477
+ 35.500 27.900
+ -14663234.265 7 -11425897.275 5 21857389.162 21857386.373 21857388.034
+ 43.600 34.400
+ -19816313.102 7 -15441279.943 7 20487691.996 20487690.402 20487691.197
+ 46.500 45.400
+ -6547261.810 5 -5101755.953 4 23421595.928 23421593.713 23421595.471
+ 30.600 25.300
+ -13385377.622 6 -10430158.980 5 22052418.479 22052414.832 22052416.798
+ 39.700 33.800
+ -18761018.390 7 -14618970.418 7 20632026.326 20632024.027 20632025.658
+ 47.200 46.300
+ -5081155.313 4 -3959339.567 4 23748578.894 23748576.642 23748577.822
+ 29.900 24.200
+ 06 1 1 9 10 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4242003.730 5 -3305457.055 3 23853195.040 23853189.272 23853193.598
+ 30.600 22.600
+ -6032742.655 5 -4700836.380 4 22595302.939 22595299.871 22595301.974
+ 35.200 27.900
+ -14681973.022 7 -11440498.917 5 21853823.331 21853820.635 21853822.196
+ 43.800 34.500
+ -19793790.411 7 -15423729.798 7 20491978.126 20491976.354 20491977.258
+ 46.600 45.400
+ -6448967.677 5 -5025163.090 3 23440300.672 23440297.768 23440300.311
+ 32.300 20.500
+ -13477542.242 6 -10501975.553 5 22034879.500 22034876.355 22034878.232
+ 39.800 33.100
+ -18749280.502 7 -14609824.012 7 20634259.910 20634257.672 20634259.213
+ 47.100 46.400
+ -5120906.132 4 -3990314.227 3 23741015.072 23741011.859 23741013.819
+ 29.900 23.400
+ 06 1 1 9 10 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4343656.726 5 -3384667.192 3 23833851.074 23833845.611 23833849.863
+ 30.100 23.800
+ -5947626.529 5 -4634512.142 4 22611500.434 22611497.105 22611499.381
+ 35.400 28.400
+ -14700101.432 7 -11454624.961 5 21850373.446 21850370.854 21850372.345
+ 43.500 34.400
+ -19770852.306 7 -15405855.949 7 20496343.062 20496341.335 20496342.239
+ 46.700 45.300
+ -6350393.325 5 -4948351.912 3 23459058.676 23459056.203 23459058.479
+ 31.300 23.000
+ -13569364.053 6 -10573524.988 5 22017405.807 22017403.204 22017404.790
+ 39.800 33.900
+ -18737261.287 7 -14600458.392 7 20636547.286 20636544.813 20636546.502
+ 47.200 46.300
+ -5160222.956 5 -4020950.691 4 23733531.810 23733531.158 23733531.768
+ 30.100 24.200
+ 06 1 1 9 11 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4445240.579 5 -3463823.473 3 23814520.481 23814514.260 23814519.063
+ 30.100 22.100
+ -5862245.972 5 -4567981.854 4 22627747.941 22627744.732 22627746.855
+ 34.800 28.400
+ -14717618.584 7 -11468274.701 5 21847039.961 21847037.560 21847038.690
+ 43.100 34.800
+ -19747498.398 7 -15387658.096 7 20500787.140 20500785.417 20500786.302
+ 46.700 45.200
+ -6251541.589 5 -4871324.585 3 23477869.426 23477867.003 23477869.065
+ 30.800 22.600
+ -13660841.049 6 -10644805.726 5 21999997.984 21999995.744 21999997.372
+ 40.300 34.000
+ -18724961.273 7 -14590873.961 7 20638887.946 20638885.390 20638887.163
+ 47.400 46.300
+ -5199103.406 5 -4051247.120 4 23726133.959 23726132.390 23726133.147
+ 30.200 24.200
+ 06 1 1 9 11 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4546753.595 5 -3542924.560 3 23795202.630 23795197.459 23795201.798
+ 30.100 22.600
+ -5776601.535 5 -4501245.937 4 22644044.918 22644042.346 22644044.163
+ 35.100 28.100
+ -14734524.045 7 -11481447.788 5 21843822.787 21843820.549 21843821.610
+ 43.000 34.700
+ -19723728.368 7 -15369135.996 7 20505310.541 20505308.674 20505309.731
+ 46.800 45.200
+ -6152415.350 5 -4794083.355 3 23496732.774 23496730.417 23496732.490
+ 31.300 23.400
+ -13751971.114 6 -10715816.122 5 21982656.410 21982654.172 21982655.730
+ 40.500 34.000
+ -18712381.129 7 -14581071.242 7 20641281.662 20641279.279 20641280.952
+ 47.300 46.100
+ -5237545.384 4 -4081201.903 4 23718819.968 23718816.778 23718817.896
+ 28.600 24.600
+ 06 1 1 9 12 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4648194.116 4 -3621969.111 4 23775899.498 23775893.859 23775898.167
+ 28.400 24.600
+ -5690694.376 5 -4434305.315 4 22660392.349 22660390.320 22660391.761
+ 35.200 29.000
+ -14750817.310 7 -11494143.848 5 21840722.641 21840720.131 21840721.455
+ 43.500 34.700
+ -19699541.911 7 -15350289.405 7 20509913.044 20509911.136 20509912.274
+ 47.000 45.000
+ -6053017.246 5 -4716630.251 3 23515647.251 23515644.966 23515647.016
+ 30.200 22.100
+ -13842751.508 6 -10786554.061 5 21965381.615 21965379.189 21965380.840
+ 40.400 34.000
+ -18699521.401 7 -14571050.677 7 20643728.816 20643726.381 20643728.147
+ 47.300 46.000
+ -5275547.328 4 -4110813.787 4 23711586.523 23711585.578 23711585.981
+ 29.000 25.300
+ 06 1 1 9 12 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4749560.441 4 -3700955.865 4 23756609.315 23756604.655 23756608.531
+ 28.400 24.600
+ -5604525.313 5 -4367160.622 4 22676790.027 22676787.514 22676789.016
+ 34.300 27.600
+ -14766497.601 7 -11506362.264 5 21837739.057 21837736.220 21837737.802
+ 43.600 34.900
+ -19674938.605 7 -15331117.993 7 20514595.020 20514592.944 20514594.152
+ 46.900 44.900
+ -5953349.921 5 -4638967.442 3 23534613.651 23534611.744 23534613.162
+ 31.000 23.400
+ -13933180.159 6 -10857017.913 5 21948174.496 21948171.156 21948172.954
+ 40.300 34.700
+ -18686382.546 7 -14560812.602 7 20646228.953 20646226.619 20646228.249
+ 47.300 45.900
+ -5313107.537 5 -4140081.450 4 23704438.925 23704437.565 23704438.738
+ 30.200 24.600
+ 06 1 1 9 13 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4850850.805 4 -3779883.423 4 23737334.001 23737329.912 23737333.473
+ 29.700 27.900
+ -5518095.567 5 -4299812.789 4 22693237.505 22693234.510 22693236.415
+ 34.000 27.900
+ -14781564.412 7 -11518102.638 5 21834871.646 21834868.885 21834870.482
+ 43.700 35.100
+ -19649918.245 7 -15311621.604 7 20519356.221 20519354.235 20519355.331
+ 46.900 44.900
+ -5853416.278 5 -4561097.066 3 23553629.990 23553628.400 23553629.580
+ 30.400 23.000
+ -14023255.413 6 -10927206.384 5 21931034.189 21931030.506 21931032.325
+ 40.000 34.800
+ -18672965.238 7 -14550357.553 7 20648782.257 20648779.845 20648781.523
+ 47.100 46.100
+ -5350223.836 5 -4169003.224 4 23697377.618 23697374.625 23697376.049
+ 30.400 24.900
+ 06 1 1 9 13 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4952063.626 5 -3858750.546 4 23718076.029 23718069.534 23718074.528
+ 30.600 28.800
+ -5431405.954 5 -4232262.455 4 22709734.201 22709730.901 22709732.703
+ 33.800 27.600
+ -14796017.306 7 -11529364.647 5 21832121.361 21832118.663 21832120.151
+ 43.500 34.700
+ -19624480.434 7 -15291799.928 7 20524196.612 20524194.934 20524195.921
+ 46.800 44.900
+ -5753218.909 4 -4483021.218 3 23572696.858 23572694.821 23572696.557
+ 29.000 21.600
+ -14112974.723 6 -10997117.514 5 21913960.163 21913957.431 21913959.149
+ 40.800 34.900
+ -18659269.895 7 -14539685.855 7 20651388.467 20651386.060 20651387.754
+ 47.400 46.100
+ -5386894.464 4 -4197577.724 4 23690398.445 23690396.383 23690397.342
+ 29.500 24.200
+ 06 1 1 9 14 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5053197.063 5 -3937555.824 5 23698829.588 23698824.704 23698828.801
+ 32.100 30.600
+ -5344457.473 5 -4164510.404 4 22726279.310 22726276.500 22726278.414
+ 34.300 25.600
+ -14809855.833 7 -11540147.924 5 21829487.881 21829485.468 21829486.717
+ 43.300 34.800
+ -19598624.713 7 -15271652.599 7 20529116.854 20529115.097 20529116.019
+ 47.000 44.800
+ -5652760.682 5 -4404742.041 3 23591813.651 23591811.068 23591813.789
+ 31.000 19.900
+ -14202335.607 6 -11066749.327 5 21896954.614 21896952.850 21896954.177
+ 41.100 35.400
+ -18645297.141 7 -14528797.993 7 20654047.442 20654044.992 20654046.685
+ 47.400 46.100
+ -5423117.057 4 -4225803.095 3 23683504.312 23683502.665 23683504.049
+ 29.500 23.800
+ 06 1 1 9 14 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5154249.388 5 -4016297.856 5 23679600.000 23679595.066 23679598.717
+ 30.200 30.800
+ -5257251.159 5 -4096557.449 4 22742874.516 22742871.376 22742873.339
+ 33.500 26.800
+ -14823079.339 7 -11550451.973 5 21826971.422 21826969.132 21826970.305
+ 43.400 35.400
+ -19572350.985 7 -15251179.549 7 20534116.783 20534114.756 20534115.809
+ 46.800 44.600
+ -5552044.241 4 -4326261.712 3 23610979.019 23610977.692 23610978.659
+ 28.100 22.100
+ -14291336.399 6 -11136100.566 5 21880018.868 21880016.264 21880018.024
+ 41.200 34.700
+ -18631047.538 7 -14517694.408 7 20656758.841 20656756.561 20656758.218
+ 47.400 46.100
+ -5458890.251 5 -4253678.286 3 23676698.418 23676696.104 23676697.213
+ 30.400 23.800
+ 06 1 1 9 15 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5255218.706 5 -4094975.273 4 23660387.077 23660381.111 23660385.718
+ 32.800 28.100
+ -5169788.046 5 -4028404.395 4 22759517.615 22759515.101 22759517.225
+ 34.300 26.500
+ -14835687.388 7 -11560276.429 5 21824572.346 21824569.733 21824571.235
+ 43.400 34.700
+ -19545658.866 7 -15230380.477 7 20539195.711 20539194.029 20539195.075
+ 46.900 44.600
+ -5451072.350 4 -4247582.317 3 23630193.701 23630191.023 23630193.379
+ 28.600 19.300
+ -14379974.731 6 -11205169.372 5 21863152.602 21863149.021 21863150.869
+ 40.700 35.400
+ -18616521.576 7 -14506375.472 7 20659523.226 20659520.802 20659522.451
+ 47.300 46.300
+ -5494212.203 5 -4281201.881 3 23669976.979 23669974.377 23669975.796
+ 30.100 23.800
+ 06 1 1 9 15 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5356103.226 5 -4173586.574 4 23641188.220 23641183.401 23641187.193
+ 30.800 26.500
+ -5082069.188 5 -3960052.050 4 22776209.456 22776207.586 22776209.069
+ 33.600 26.500
+ -14847679.642 7 -11569621.054 5 21822290.467 21822287.603 21822289.226
+ 43.700 35.100
+ -19518548.047 7 -15209255.136 7 20544354.833 20544353.074 20544354.120
+ 46.900 44.700
+ -5349847.680 5 -4168705.934 3 23649457.105 23649453.887 23649456.522
+ 31.000 21.600
+ -14468248.470 6 -11273954.081 5 21846354.496 21846350.961 21846352.855
+ 40.700 35.300
+ -18601719.857 7 -14494841.658 7 20662339.704 20662337.530 20662339.113
+ 47.300 46.200
+ -5529080.962 4 -4308372.315 3 23663340.623 23663339.063 23663340.270
+ 29.900 22.600
+ 06 1 1 9 16 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5456901.540 5 -4252130.711 4 23622006.929 23622001.726 23622006.239
+ 31.100 26.800
+ -4994095.589 5 -3891501.221 4 22792951.208 22792948.405 22792950.114
+ 32.700 26.500
+ -14859055.710 7 -11578485.530 5 21820125.661 21820122.939 21820124.342
+ 43.400 34.800
+ -19491018.387 7 -15187803.429 7 20549593.888 20549591.732 20549592.883
+ 46.800 44.500
+ -5248372.963 4 -4089634.740 4 23668765.994 23668764.835 23668765.287
+ 27.600 24.600
+ -14556155.490 6 -11342453.036 5 21829625.792 21829622.801 21829624.548
+ 41.200 35.300
+ -18586642.911 7 -14483093.390 7 20665208.822 20665206.586 20665208.164
+ 47.300 46.200
+ -5563494.843 5 -4335188.311 4 23656791.885 23656790.577 23656791.416
+ 30.200 25.300
+ 06 1 1 9 16 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5557611.894 5 -4330606.332 4 23602842.518 23602837.484 23602841.453
+ 31.500 26.500
+ -4905868.201 5 -3822752.623 4 22809739.708 22809737.470 22809738.966
+ 32.300 27.400
+ -14869815.409 7 -11586869.721 5 21818078.215 21818075.539 21818076.911
+ 43.500 35.400
+ -19463069.581 7 -15166025.119 7 20554912.271 20554910.251 20554911.261
+ 46.800 44.600
+ -5146650.925 4 -4010370.841 3 23688123.591 23688121.098 23688123.067
+ 28.800 21.600
+ -14643693.728 6 -11410664.625 5 21812967.440 21812964.855 21812966.471
+ 41.400 35.900
+ -18571291.305 7 -14471131.095 7 20668130.190 20668127.858 20668129.447
+ 47.300 46.200
+ -5597451.998 4 -4361648.420 4 23650330.549 23650328.487 23650329.277
+ 29.900 24.600
+ 06 1 1 9 17 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5658232.239 5 -4409011.773 4 23583696.403 23583690.187 23583694.824
+ 32.600 25.600
+ -4817387.879 5 -3753806.942 4 22826576.835 22826574.568 22826576.118
+ 32.100 26.200
+ -14879958.171 7 -11594773.169 5 21816147.635 21816145.465 21816146.593
+ 43.200 35.400
+ -19434701.409 7 -15143920.036 7 20560310.060 20560308.536 20560309.441
+ 46.800 44.500
+ -5044684.333 4 -3930916.341 2 23707527.130 23707523.938 23707526.486
+ 29.200 17.000
+ -14730861.246 6 -11478587.323 5 21796380.182 21796377.312 21796379.035
+ 41.400 35.300
+ -18555665.505 7 -14458955.142 7 20671103.553 20671101.344 20671102.855
+ 47.200 46.200
+ -5630950.524 4 -4387751.143 3 23643955.602 23643954.212 23643954.886
+ 29.900 23.800
+ 06 1 1 9 17 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5758760.754 5 -4487345.696 4 23564566.211 23564560.100 23564564.364
+ 32.700 25.900
+ -4728655.962 5 -3684665.208 4 22843462.109 22843460.245 22843461.610
+ 32.800 26.800
+ -14889483.785 7 -11602195.737 5 21814335.086 21814332.779 21814333.911
+ 43.200 35.500
+ -19405913.600 7 -15121487.961 7 20565788.040 20565786.640 20565787.530
+ 46.800 44.400
+ -4942475.774 4 -3851273.284 3 23726975.934 23726974.246 23726975.970
+ 29.700 22.600
+ -14817655.796 6 -11546219.413 5 21779864.139 21779860.936 21779862.791
+ 41.700 35.900
+ -18539766.254 7 -14446566.110 7 20674129.143 20674126.940 20674128.374
+ 47.300 46.300
+ -5663988.812 4 -4413495.249 3 23637668.105 23637666.930 23637667.761
+ 29.900 23.800
+ 06 1 1 9 18 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5859195.587 5 -4565606.609 4 23545453.696 23545448.048 23545452.739
+ 32.600 24.600
+ -4639673.314 5 -3615328.100 4 22860395.183 22860392.812 22860394.375
+ 32.600 26.500
+ -14898391.806 7 -11609137.055 5 21812640.461 21812637.630 21812639.091
+ 43.600 35.400
+ -19376706.041 7 -15098728.814 7 20571346.712 20571344.633 20571345.624
+ 46.400 44.400
+ -4840027.979 5 -3771443.858 3 23746472.099 23746469.419 23746471.919
+ 30.400 18.600
+ -14904075.114 7 -11613559.119 6 21763418.741 21763415.907 21763417.711
+ 42.100 36.500
+ -18523593.911 7 -14433964.280 7 20677206.502 20677204.429 20677205.810
+ 47.200 46.300
+ -5696565.148 5 -4438879.397 3 23631469.814 23631467.462 23631468.855
+ 30.200 21.600
+ 06 1 1 9 18 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5959535.218 5 -4643793.363 4 23526359.351 23526353.879 23526358.118
+ 31.800 27.100
+ -4550441.213 5 -3545796.612 4 22877375.761 22877373.241 22877374.760
+ 32.700 26.800
+ -14906682.184 7 -11615597.096 5 21811062.639 21811060.058 21811061.412
+ 43.700 35.300
+ -19347078.440 7 -15075642.368 7 20576984.619 20576982.542 20576983.585
+ 46.700 44.200
+ -4737343.744 4 -3691430.144 3 23766011.595 23766009.282 23766011.246
+ 28.600 21.600
+ -14990117.197 6 -11680604.873 6 21747045.463 21747042.645 21747044.296
+ 41.900 36.700
+ -18507149.023 7 -14421150.082 7 20680335.991 20680333.757 20680335.269
+ 47.100 46.200
+ -5728677.830 4 -4463902.253 3 23625358.232 23625356.885 23625357.881
+ 29.200 23.400
+ 06 1 1 9 19 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6059777.708 5 -4721904.392 4 23507284.450 23507278.268 23507282.867
+ 31.500 25.600
+ -4460960.585 5 -3476071.464 4 22894402.635 22894400.918 22894402.217
+ 32.400 25.600
+ -14914354.501 7 -11621575.537 5 21809602.638 21809600.231 21809601.495
+ 43.800 35.900
+ -19317030.741 7 -15052228.568 7 20582701.965 20582700.393 20582701.417
+ 46.800 44.300
+ -4634425.587 4 -3611234.188 3 23785595.663 23785593.784 23785595.943
+ 28.100 19.300
+ -15075780.009 6 -11747355.086 6 21730744.260 21730741.514 21730742.995
+ 41.400 36.500
+ -18490432.159 7 -14408123.953 7 20683516.933 20683514.822 20683516.346
+ 47.300 46.100
+ -5760325.116 4 -4488562.467 3 23619335.626 23619334.768 23619335.429
+ 29.900 23.400
+ 06 1 1 9 19 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6159921.096 4 -4799938.186 4 23488227.325 23488222.261 23488225.815
+ 28.800 28.400
+ -4371232.380 5 -3406153.403 4 22911477.858 22911475.247 22911477.090
+ 32.600 25.300
+ -14921408.518 7 -11627072.177 5 21808260.438 21808257.770 21808259.255
+ 44.000 35.600
+ -19286562.647 7 -15028487.189 7 20588499.580 20588498.281 20588499.117
+ 46.800 44.100
+ -4531276.437 5 -3530858.222 3 23805226.130 23805223.490 23805225.835
+ 30.100 22.100
+ -15161061.486 6 -11813808.143 6 21714515.306 21714512.915 21714514.404
+ 41.700 36.500
+ -18473443.892 7 -14394886.340 7 20686749.855 20686747.569 20686749.090
+ 47.200 46.100
+ -5791505.649 5 -4512858.964 3 23613403.675 23613400.927 23613402.538
+ 31.000 23.400
+ 06 1 1 9 20 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6259963.750 5 -4877893.493 4 23469188.681 23469183.938 23469187.840
+ 31.100 25.900
+ -4281257.865 5 -3336043.405 4 22928599.153 22928596.648 22928598.926
+ 32.700 24.200
+ -14927844.224 7 -11632087.019 5 21807035.857 21807033.092 21807034.637
+ 44.000 35.600
+ -19255674.004 7 -15004418.117 7 20594378.084 20594376.142 20594377.105
+ 46.500 44.000
+ -4427898.896 4 -3450304.272 3 23824896.864 23824894.709 23824896.954
+ 27.600 21.100
+ -15245959.654 7 -11879962.535 6 21698360.000 21698357.156 21698358.921
+ 42.100 36.300
+ -18456184.780 7 -14381437.682 7 20690033.975 20690031.842 20690033.332
+ 46.900 45.800
+ -5822217.426 4 -4536790.206 3 23607558.661 23607557.279 23607557.912
+ 29.900 23.800
+ 06 1 1 9 20 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6359903.846 5 -4955768.890 4 23450172.257 23450166.688 23450170.670
+ 31.600 29.500
+ -4191037.901 5 -3265742.156 4 22945767.713 22945765.500 22945767.028
+ 32.400 25.900
+ -14933661.543 7 -11636620.002 6 21805928.887 21805926.107 21805927.614
+ 44.000 36.000
+ -19224364.692 7 -14980021.255 7 20600336.285 20600334.105 20600335.203
+ 46.600 44.000
+ -4324295.547 4 -3369574.423 3 23844611.757 23844610.394 23844611.590
+ 26.500 21.600
+ -15330472.171 7 -11945816.417 6 21682278.141 21682275.019 21682276.852
+ 42.400 36.600
+ -18438655.259 7 -14367778.312 7 20693369.911 20693367.548 20693369.265
+ 47.400 45.900
+ -5852458.789 5 -4560354.895 4 23601804.001 23601802.403 23601803.382
+ 30.800 24.200
+ 06 1 1 9 21 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6459739.321 5 -5033562.777 4 23431174.266 23431168.555 23431172.825
+ 33.500 28.100
+ -4100573.840 5 -3195250.698 4 22962983.175 22962979.807 22962981.746
+ 32.000 25.300
+ -14938860.092 7 -11640670.823 5 21804939.432 21804936.906 21804938.188
+ 43.800 35.700
+ -19192634.503 7 -14955296.434 7 20606374.040 20606372.256 20606373.273
+ 46.700 43.900
+ -4220469.070 4 -3288670.691 3 23864370.067 23864367.308 23864369.619
+ 27.600 21.600
+ -15414597.333 7 -12011368.461 6 21666268.839 21666266.391 21666268.111
+ 42.500 36.400
+ -18420855.981 7 -14353908.742 7 20696756.908 20696754.619 20696756.199
+ 47.400 45.800
+ -5882228.283 5 -4583551.904 3 23596139.717 23596137.033 23596139.170
+ 31.800 23.800
+ 06 1 1 9 21 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6559468.316 5 -5111273.653 4 23412196.256 23412190.733 23412194.929
+ 33.500 28.800
+ -4009866.554 5 -3124569.707 4 22980243.707 22980240.897 22980242.634
+ 31.000 24.600
+ -14943439.705 7 -11644239.359 5 21804067.709 21804065.386 21804066.508
+ 43.200 35.800
+ -19160483.277 7 -14930243.527 7 20612491.921 20612490.467 20612491.414
+ 46.800 44.000
+ -4116422.256 4 -3207595.245 3 23884169.601 23884167.646 23884169.601
+ 29.200 21.600
+ -15498332.986 7 -12076616.978 6 21650335.158 21650331.967 21650333.777
+ 42.400 36.700
+ -18402787.299 7 -14339829.241 7 20700195.296 20700193.032 20700194.593
+ 47.300 45.900
+ -5911524.037 5 -4606379.741 4 23590564.897 23590562.308 23590563.887
+ 31.300 24.200
+ 06 1 1 9 22 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6659089.127 5 -5188900.271 4 23393239.537 23393233.174 23393238.077
+ 35.300 28.400
+ -3918917.330 5 -3053700.201 4 22997551.405 22997548.177 22997550.038
+ 32.400 24.200
+ -14947400.560 7 -11647325.751 5 21803314.282 21803311.752 21803312.996
+ 43.500 35.700
+ -19127910.855 7 -14904862.419 7 20618690.619 20618688.770 20618689.821
+ 46.900 44.000
+ -4012157.747 4 -3126350.179 2 23904009.472 23904007.529 23904009.376
+ 26.200 17.000
+ -15581677.204 7 -12141560.493 6 21634474.700 21634472.190 21634473.857
+ 42.700 36.800
+ -18384449.899 7 -14325540.355 7 20703684.851 20703682.525 20703684.118
+ 47.500 45.900
+ -5940344.699 5 -4628837.394 3 23585079.962 23585078.033 23585079.372
+ 31.300 23.000
+ 06 1 1 9 22 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6758599.888 5 -5266441.139 4 23374302.698 23374297.217 23374301.143
+ 33.200 29.900
+ -3827727.248 5 -2982643.017 4 23014903.931 23014901.264 23014902.691
+ 31.600 24.600
+ -14950742.436 7 -11649929.819 5 21802678.263 21802675.824 21802676.942
+ 43.300 35.900
+ -19094917.067 7 -14879152.981 7 20624969.545 20624967.244 20624968.393
+ 46.800 43.800
+ -3907678.022 4 -3044937.394 3 23923891.253 23923889.362 23923890.913
+ 25.900 18.600
+ -15664627.951 7 -12206197.405 6 21618690.476 21618687.063 21618689.015
+ 42.700 36.900
+ -18365844.306 7 -14311042.483 7 20707225.334 20707222.979 20707224.600
+ 47.400 45.700
+ -5968688.594 5 -4650923.539 3 23579686.486 23579684.938 23579685.856
+ 32.000 23.800
+ 06 1 1 9 23 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6857998.558 5 -5343894.633 4 23355388.097 23355382.071 23355386.709
+ 32.700 29.200
+ -3736297.047 5 -2911398.735 4 23032302.099 23032300.199 23032301.401
+ 31.000 26.200
+ -14953465.259 7 -11652051.503 5 21802160.196 21802157.698 21802159.040
+ 43.500 35.900
+ -19061501.829 7 -14853115.139 7 20631327.713 20631326.031 20631326.935
+ 46.800 43.900
+ -3802985.898 4 -2963359.149 2 23943813.737 23943811.826 23943813.444
+ 26.500 17.800
+ -15747183.158 7 -12270526.108 6 21602980.173 21602977.454 21602979.117
+ 42.800 37.300
+ -18346970.978 7 -14296335.991 7 20710816.676 20710814.465 20710816.053
+ 47.400 45.600
+ -5996554.206 5 -4672636.970 4 23574383.882 23574381.893 23574383.001
+ 31.600 24.200
+ 06 1 1 9 23 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6957283.251 5 -5421259.331 4 23336495.495 23336489.111 23336493.792
+ 33.200 29.900
+ -3644628.224 5 -2839968.501 4 23049746.628 23049743.443 23049745.586
+ 30.800 26.200
+ -14955569.198 7 -11653690.938 6 21801759.714 21801757.287 21801758.640
+ 43.800 36.300
+ -19027665.150 7 -14826748.898 7 20637766.514 20637764.907 20637765.905
+ 46.900 43.900
+ -3698084.113 4 -2881617.453 3 23963777.030 23963774.169 23963776.771
+ 28.400 19.300
+ -15829341.009 7 -12334545.175 6 21587346.103 21587343.068 21587345.158
+ 43.100 36.900
+ -18327830.459 7 -14281421.298 7 20714459.207 20714456.885 20714458.452
+ 47.300 45.800
+ -6023940.161 5 -4693976.673 4 23569172.489 23569170.743 23569171.633
+ 31.000 25.900
+ 06 1 1 9 24 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7056452.077 5 -5498533.734 5 23317623.178 23317617.988 23317621.868
+ 32.400 30.100
+ -3552721.768 5 -2768353.105 4 23067235.735 23067233.136 23067234.609
+ 30.800 24.900
+ -14957054.326 7 -11654848.194 6 21801477.298 21801474.667 21801476.025
+ 43.600 36.000
+ -18993406.823 7 -14800054.100 7 20644285.776 20644283.945 20644285.040
+ 46.800 43.800
+ -3592975.207 4 -2799714.421 3 23983777.654 23983775.553 23983777.223
+ 26.200 19.900
+ -15911099.409 7 -12398253.014 6 21571788.245 21571784.989 21571786.976
+ 42.900 37.200
+ -18308423.378 7 -14266298.903 7 20718152.097 20718149.952 20718151.422
+ 47.500 45.700
+ -6050844.578 5 -4714941.122 4 23564052.105 23564050.514 23564051.486
+ 30.600 24.600
+ 06 1 1 9 24 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7155503.398 5 -5575716.566 4 23298774.058 23298768.561 23298772.763
+ 32.400 28.600
+ -3460578.804 5 -2696553.414 3 23084770.311 23084767.043 23084769.261
+ 31.800 23.800
+ -14957920.540 7 -11655523.171 5 21801312.416 21801309.858 21801311.148
+ 43.400 35.900
+ -18958726.853 7 -14773030.753 7 20650885.457 20650883.383 20650884.417
+ 46.600 43.800
+ -3487661.788 4 -2717652.043 3 24003817.837 24003816.421 24003817.607
+ 28.400 21.600
+ -15992456.680 7 -12461648.244 6 21556305.643 21556303.251 21556304.901
+ 42.800 37.500
+ -18288750.204 7 -14250969.154 7 20721895.919 20721893.599 20721895.199
+ 47.400 45.700
+ -6077266.354 5 -4735529.522 4 23559024.865 23559023.110 23559023.970
+ 31.300 24.900
+ 06 1 1 9 25 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7254434.888 5 -5652806.030 4 23279948.849 23279942.912 23279947.361
+ 33.800 28.800
+ -3368200.476 5 -2624570.316 4 23102348.562 23102346.385 23102347.835
+ 30.600 24.200
+ -14958167.999 7 -11655716.005 6 21801265.168 21801262.807 21801264.059
+ 43.500 36.000
+ -18923625.130 7 -14745678.766 7 20657565.148 20657563.067 20657564.150
+ 46.600 43.700
+ -3382146.571 4 -2635432.396 2 24023897.557 24023894.819 24023897.258
+ 28.800 17.800
+ -16073410.452 7 -12524729.089 6 21540901.096 21540898.159 21540900.015
+ 43.300 37.500
+ -18268811.339 7 -14235432.373 7 20725690.124 20725687.820 20725689.397
+ 47.300 45.800
+ -6103203.810 5 -4755740.498 4 23554088.257 23554087.617 23554087.924
+ 31.100 25.900
+ 06 1 1 9 25 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7353244.851 5 -5729800.817 4 23261146.465 23261140.027 23261144.856
+ 35.500 29.000
+ -3275588.061 5 -2552404.826 3 23119972.659 23119970.042 23119971.584
+ 30.400 23.800
+ -14957796.562 7 -11655426.580 6 21801335.900 21801333.594 21801334.735
+ 43.700 36.500
+ -18888101.587 7 -14717998.087 7 20664324.726 20664322.962 20664323.979
+ 46.600 43.400
+ -3276432.149 4 -2553057.498 3 24044013.335 24044011.842 24044013.171
+ 24.200 18.600
+ -16153959.050 7 -12587494.199 6 21525573.437 21525570.152 21525572.216
+ 43.200 37.100
+ -18248607.360 7 -14219689.001 7 20729534.647 20729532.532 20729534.047
+ 47.300 45.800
+ -6128655.522 5 -4775572.988 4 23549245.363 23549243.622 23549244.924
+ 31.100 24.600
+ 06 1 1 9 26 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7451931.219 5 -5806699.299 4 23242365.997 23242360.060 23242364.885
+ 35.200 27.100
+ -3182742.481 5 -2480057.636 3 23137640.720 23137637.768 23137639.427
+ 30.400 23.800
+ -14956806.656 7 -11654655.229 6 21801524.530 21801521.958 21801523.337
+ 43.800 36.100
+ -18852156.175 7 -14689988.675 7 20671164.395 20671163.146 20671163.974
+ 46.700 43.600
+ -3170521.088 4 -2470529.421 2 24064167.525 24064165.428 24064167.856
+ 27.100 17.000
+ -16234100.362 7 -12649941.965 6 21510323.154 21510319.953 21510321.848
+ 43.300 37.900
+ -18228138.835 7 -14203739.501 7 20733429.883 20733427.521 20733429.142
+ 47.500 45.700
+ -6153620.060 5 -4795025.877 4 23544495.221 23544492.826 23544494.310
+ 31.500 24.900
+ 06 1 1 9 26 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7550492.266 5 -5883500.120 4 23223610.303 23223604.739 23223609.199
+ 33.400 28.100
+ -3089665.142 4 -2407529.875 4 23155352.329 23155350.323 23155351.335
+ 29.200 24.200
+ -14955198.331 7 -11653401.993 6 21801830.460 21801828.001 21801829.331
+ 43.800 36.200
+ -18815789.032 7 -14661650.643 7 20678085.226 20678083.560 20678084.530
+ 46.500 43.300
+ -3064416.159 4 -2387850.250 3 24084359.432 24084356.924 24084359.344
+ 29.000 18.600
+ -16313832.817 7 -12712071.119 6 21495150.109 21495147.401 21495149.125
+ 43.600 38.400
+ -18207406.306 7 -14187584.276 7 20737374.899 20737372.798 20737374.339
+ 47.400 45.600
+ -6178096.068 5 -4814098.060 3 23539837.577 23539834.995 23539836.500
+ 30.800 23.800
+ 06 1 1 9 27 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7648926.001 5 -5960201.716 4 23204878.822 23204873.880 23204877.825
+ 34.100 29.700
+ -2996356.988 5 -2334822.248 3 23173108.708 23173105.574 23173107.435
+ 30.800 23.400
+ -14952971.904 7 -11651667.121 6 21802253.994 21802251.641 21802252.795
+ 43.500 36.000
+ -18779000.061 7 -14632983.917 7 20685086.407 20685084.241 20685085.376
+ 46.400 43.400
+ -2958119.974 4 -2305022.030 2 24104586.408 24104584.255 24104586.212
+ 26.200 17.000
+ -16393154.117 7 -12773879.902 6 21480056.135 21480052.987 21480054.857
+ 43.300 38.200
+ -18186410.177 7 -14171223.655 7 20741370.481 20741368.250 20741369.765
+ 47.400 45.600
+ -6202082.051 5 -4832788.430 4 23535272.998 23535270.817 23535272.087
+ 31.800 24.600
+ 06 1 1 9 27 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7747230.166 5 -6036802.371 5 23186172.302 23186166.887 23186171.358
+ 34.600 30.100
+ -2902819.151 4 -2261935.631 3 23190908.266 23190905.918 23190906.923
+ 29.200 23.800
+ -14950127.421 7 -11649450.644 6 21802795.257 21802792.808 21802794.145
+ 43.600 36.100
+ -18741789.134 7 -14603988.395 7 20692167.231 20692165.186 20692166.262
+ 46.500 43.200
+ -2851634.887 4 -2222046.667 2 24124850.301 24124847.624 24124850.135
+ 24.900 15.100
+ -16472062.643 7 -12835367.036 6 21465039.796 21465037.023 21465038.929
+ 43.400 37.600
+ -18165151.124 7 -14154658.159 7 20745415.781 20745413.748 20745415.152
+ 47.400 45.600
+ -6225576.655 5 -4851095.899 4 23530801.967 23530800.119 23530801.199
+ 31.800 24.900
+ 06 1 1 9 28 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7845402.981 5 -6113300.675 4 23167490.977 23167484.862 23167489.616
+ 34.500 29.200
+ -2809052.799 4 -2188870.977 3 23208751.676 23208748.924 23208750.211
+ 29.500 23.400
+ -14946665.049 7 -11646752.701 5 21803454.282 21803451.661 21803453.168
+ 43.600 35.600
+ -18704156.407 7 -14574664.197 7 20699328.118 20699326.600 20699327.444
+ 46.500 43.400
+ -2744963.788 4 -2138926.322 2 24145148.260 24145147.047 24145148.135
+ 24.900 13.900
+ -16550556.641 7 -12896531.190 6 21450103.158 21450100.247 21450102.066
+ 43.600 37.900
+ -18143629.553 7 -14137888.108 7 20749511.350 20749509.108 20749510.668
+ 47.600 45.700
+ -6248578.622 5 -4869019.487 4 23526425.503 23526422.626 23526424.161
+ 31.600 24.900
+ 06 1 1 9 28 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7943442.540 5 -6189695.128 4 23148834.741 23148828.975 23148833.347
+ 34.400 29.700
+ -2715059.184 4 -2115629.208 3 23226638.123 23226635.231 23226636.993
+ 29.200 23.800
+ -14942585.257 7 -11643573.649 5 21804230.618 21804228.054 21804229.420
+ 43.300 35.700
+ -18666101.809 7 -14545011.267 7 20706569.826 20706568.215 20706569.128
+ 46.600 43.500
+ -2638109.294 4 -2055663.087 3 24165483.106 24165481.289 24165482.844
+ 27.600 18.600
+ -16628634.142 7 -12957370.773 6 21435245.355 21435242.549 21435244.201
+ 43.300 38.100
+ -18121845.977 7 -14120913.892 7 20753656.729 20753654.399 20753656.017
+ 47.600 45.600
+ -6271086.485 5 -4886558.071 4 23522142.698 23522139.426 23522141.637
+ 32.800 24.200
+ 06 1 1 9 29 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8041346.942 5 -6265984.277 5 23130204.671 23130198.630 23130203.034
+ 35.900 32.000
+ -2620839.773 4 -2042211.506 4 23244567.825 23244564.644 23244566.081
+ 29.900 25.300
+ -14937888.512 7 -11639913.854 5 21805124.309 21805121.791 21805123.118
+ 43.300 35.800
+ -18627625.397 7 -14515029.647 7 20713891.841 20713890.047 20713890.986
+ 46.500 43.400
+ -2531073.832 4 -1972258.813 3 24185851.862 24185849.025 24185851.021
+ 27.600 19.900
+ -16706293.235 7 -13017884.335 6 21420467.223 21420464.614 21420466.235
+ 43.800 38.400
+ -18099800.892 7 -14103735.902 7 20757851.604 20757849.467 20757851.012
+ 47.700 45.600
+ -6293099.058 5 -4903710.715 3 23517952.646 23517950.401 23517952.050
+ 31.100 23.400
+ 06 1 1 9 29 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8139113.981 5 -6342166.387 5 23111599.681 23111594.019 23111598.338
+ 34.800 30.800
+ -2526395.468 4 -1968618.572 4 23262540.380 23262536.914 23262538.557
+ 28.800 24.600
+ -14932574.672 7 -11635773.206 6 21806135.781 21806133.036 21806134.614
+ 43.600 36.000
+ -18588727.186 7 -14484719.358 7 20721293.960 20721292.093 20721293.032
+ 46.500 43.300
+ -2423859.939 4 -1888715.538 3 24206253.596 24206250.592 24206252.654
+ 24.600 19.300
+ -16783532.177 7 -13078070.509 6 21405769.566 21405766.423 21405768.183
+ 43.900 38.400
+ -18077494.786 7 -14086354.515 7 20762096.576 20762094.149 20762095.815
+ 47.700 45.500
+ -6314614.843 5 -4920476.245 4 23513857.937 23513856.328 23513857.288
+ 31.300 25.600
+ 06 1 1 9 30 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8236741.775 5 -6418239.976 5 23093021.400 23093015.845 23093020.295
+ 35.500 31.100
+ -2431727.446 4 -1894851.297 4 23280554.804 23280551.762 23280553.101
+ 29.200 24.600
+ -14926644.281 7 -11631152.126 6 21807264.435 21807261.660 21807263.062
+ 43.300 36.000
+ -18549407.285 7 -14454080.478 7 20728776.454 20728774.308 20728775.457
+ 46.500 43.100
+ -2316470.331 4 -1805035.345 3 24226688.239 24226686.167 24226687.678
+ 24.200 20.500
+ -16860349.066 7 -13137927.810 6 21391151.646 21391148.581 21391150.469
+ 43.900 38.600
+ -18054928.248 7 -14068770.195 7 20766390.833 20766388.410 20766390.104
+ 47.600 45.600
+ -6335632.656 5 -4936853.752 4 23509859.326 23509856.685 23509858.449
+ 31.800 24.900
+ 06 1 1 9 30 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8334228.270 6 -6494203.479 5 23074470.499 23074465.026 23074469.441
+ 36.100 31.000
+ -2336837.105 4 -1820910.813 3 23298611.597 23298607.972 23298610.016
+ 27.900 21.600
+ -14920097.841 7 -11626051.009 5 21808509.917 21808507.422 21808508.665
+ 43.100 35.900
+ -18509665.799 7 -14423113.092 7 20736338.699 20736336.853 20736337.937
+ 46.500 42.900
+ -2208907.551 4 -1721220.209 3 24247156.453 24247154.903 24247156.788
+ 26.500 18.600
+ -16936742.081 7 -13197454.820 6 21376614.475 21376611.353 21376613.324
+ 43.900 38.600
+ -18032101.738 7 -14050983.297 7 20770734.474 20770732.125 20770733.832
+ 47.800 45.500
+ -6356151.276 5 -4952842.266 4 23505954.170 23505952.140 23505953.424
+ 31.800 24.200
+ 06 1 1 9 31 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8431571.587 5 -6570055.419 4 23055946.538 23055940.567 23055945.200
+ 34.900 29.900
+ -2241725.232 4 -1746797.687 3 23316710.915 23316707.588 23316709.352
+ 29.200 21.100
+ -14912935.510 7 -11620469.977 6 21809872.709 21809870.394 21809871.554
+ 43.100 36.000
+ -18469502.678 7 -14391817.157 7 20743981.519 20743979.606 20743980.730
+ 46.400 42.900
+ -2101174.117 3 -1637272.077 2 24267656.905 24267655.429 24267657.692
+ 23.800 17.000
+ -17012709.477 7 -13256650.173 6 21362158.879 21362155.244 21362157.376
+ 43.900 38.600
+ -18009015.690 7 -14032994.169 7 20775127.866 20775125.297 20775127.066
+ 47.900 45.500
+ -6376169.432 5 -4968440.811 4 23502144.955 23502143.088 23502144.354
+ 31.800 24.900
+ 06 1 1 9 31 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8528769.490 6 -6645794.039 4 23037451.451 23037444.743 23037449.865
+ 36.400 29.000
+ -2146393.474 4 -1672513.202 3 23334852.094 23334848.011 23334850.476
+ 28.800 19.900
+ -14905157.804 7 -11614409.433 6 21811352.948 21811350.471 21811351.678
+ 43.200 36.300
+ -18428918.061 7 -14360192.782 7 20751704.606 20751702.697 20751703.791
+ 46.600 42.900
+ -1993272.668 4 -1553193.032 2 24288190.376 24288189.049 24288190.940
+ 24.600 16.100
+ -17088249.430 7 -13315512.463 6 21347782.748 21347780.454 21347782.230
+ 44.100 38.700
+ -17985670.741 7 -14014803.296 7 20779569.984 20779567.669 20779569.387
+ 47.900 45.500
+ -6395685.894 5 -4983648.436 3 23498431.378 23498428.612 23498430.458
+ 31.800 23.000
+ 06 1 1 9 32 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8625820.065 6 -6721417.871 4 23018982.870 23018976.674 23018981.753
+ 37.100 29.700
+ -2050842.928 4 -1598058.251 3 23353035.135 23353031.179 23353032.927
+ 26.500 21.600
+ -14896765.170 7 -11607869.715 6 21812949.883 21812947.483 21812948.658
+ 43.000 36.000
+ -18387912.097 7 -14328240.090 7 20759507.884 20759505.901 20759506.968
+ 46.600 42.900
+ -1885205.585 3 -1468984.920 1 24308755.374 24308753.281 24308754.842
+ 23.800 9.000
+ -17163360.370 7 -13374040.461 6 21333490.728 21333487.273 21333489.247
+ 43.500 38.700
+ -17962067.258 7 -13996410.962 7 20784061.756 20784059.288 20784060.920
+ 47.600 45.400
+ -6414699.512 5 -4998464.239 4 23494813.261 23494811.090 23494812.554
+ 31.800 25.300
+ 06 1 1 9 32 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8722721.366 6 -6796925.369 4 23000542.346 23000537.170 23000541.453
+ 36.100 29.700
+ -1955074.828 4 -1523433.792 3 23371258.813 23371255.834 23371256.924
+ 27.600 23.400
+ -14887757.875 7 -11600851.051 5 21814663.887 21814661.325 21814662.792
+ 43.200 35.700
+ -18346484.760 7 -14295959.053 7 20767391.325 20767389.193 20767390.331
+ 46.800 42.900
+ -1776975.616 4 -1384649.839 2 24329351.291 24329348.895 24329350.666
+ 24.900 12.600
+ -17238040.285 7 -13432232.575 6 21319279.063 21319276.197 21319277.976
+ 43.900 39.100
+ -17938205.858 7 -13977817.655 7 20788601.976 20788599.965 20788601.360
+ 47.700 45.500
+ -6433209.035 5 -5012887.225 4 23491291.034 23491288.823 23491290.412
+ 33.100 25.600
+ 06 1 1 9 33 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8819471.440 6 -6872315.044 5 22982132.182 22982126.187 22982130.818
+ 36.400 31.300
+ -1859090.388 4 -1448640.765 3 23389523.900 23389520.912 23389522.257
+ 28.600 23.000
+ -14878136.902 7 -11593354.191 5 21816494.785 21816492.127 21816493.510
+ 42.700 35.500
+ -18304636.207 7 -14263349.794 7 20775354.769 20775352.752 20775353.921
+ 46.600 42.700
+ -1668585.279 4 -1300189.846 2 24349977.833 24349975.583 24349977.279
+ 26.500 17.800
+ -17312287.534 7 -13490087.569 6 21305150.033 21305147.458 21305149.123
+ 44.100 39.200
+ -17914086.915 7 -13959023.671 7 20793191.838 20793189.643 20793191.140
+ 47.600 45.300
+ -6451213.275 5 -5026916.499 4 23487864.713 23487862.744 23487864.090
+ 32.600 26.500
+ 06 1 1 9 33 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8916067.786 5 -6947584.911 5 22963750.307 22963744.603 22963748.701
+ 35.800 32.100
+ -1762890.814 4 -1373680.074 3 23407830.432 23407827.169 23407828.613
+ 28.400 22.100
+ -14867902.397 7 -11585379.257 5 21818442.412 21818439.779 21818441.211
+ 42.800 35.600
+ -18262366.602 7 -14230412.445 7 20783398.423 20783396.489 20783397.542
+ 46.500 42.900
+ -1560037.157 4 -1215606.887 3 24370634.501 24370631.443 24370633.514
+ 25.900 19.900
+ -17386100.429 7 -13547604.089 6 21291104.718 21291101.247 21291103.171
+ 43.800 39.300
+ -17889711.053 7 -13940029.491 7 20797830.370 20797828.270 20797829.657
+ 47.700 45.300
+ -6468711.203 5 -5040551.230 4 23484535.585 23484533.173 23484534.714
+ 32.600 24.900
+ 06 1 1 9 34 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9012508.482 6 -7022733.510 5 22945398.007 22945392.438 22945396.940
+ 36.300 31.500
+ -1666477.414 4 -1298552.771 3 23426176.976 23426173.911 23426175.135
+ 28.400 21.100
+ -14857055.083 7 -11576926.802 5 21820506.586 21820503.912 21820505.372
+ 43.000 35.700
+ -18219676.067 7 -14197147.096 7 20791521.553 20791520.259 20791521.028
+ 46.500 42.900
+ -1451333.529 4 -1130902.791 3 24391319.088 24391317.267 24391318.858
+ 24.900 20.500
+ -17459477.102 7 -13604780.699 6 21277140.935 21277138.248 21277139.986
+ 44.400 39.700
+ -17865078.640 7 -13920835.397 7 20802517.863 20802515.593 20802517.140
+ 47.600 45.300
+ -6485701.540 5 -5053790.447 4 23481301.997 23481300.367 23481301.251
+ 32.000 26.800
+ 06 1 1 9 34 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9108791.683 6 -7097759.367 5 22927076.067 22927070.483 22927074.569
+ 36.200 32.100
+ -1569851.147 4 -1223259.578 3 23444564.867 23444561.162 23444562.858
+ 28.400 19.300
+ -14845595.452 7 -11567997.230 5 21822687.177 21822684.651 21822685.884
+ 42.700 35.700
+ -18176564.881 7 -14163553.964 7 20799725.522 20799723.968 20799724.762
+ 46.500 42.800
+ -1342477.101 3 -1046079.620 2 24412033.090 24412031.795 24412032.313
+ 23.000 17.000
+ -17532416.090 7 -13661616.263 6 21263261.321 21263258.405 21263260.269
+ 44.700 40.000
+ -17840190.230 7 -13901441.821 7 20807253.914 20807251.690 20807253.275
+ 47.900 45.400
+ -6502183.355 5 -5066633.399 4 23478166.065 23478163.593 23478165.215
+ 32.700 25.600
+ 06 1 1 9 35 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9204915.102 6 -7172660.742 5 22908784.273 22908778.637 22908783.233
+ 36.500 31.300
+ -1473013.554 4 -1147801.739 3 23462992.085 23462988.814 23462990.404
+ 27.100 23.000
+ -14833524.342 7 -11558591.166 5 21824984.159 21824981.697 21824982.952
+ 42.900 35.700
+ -18133033.099 7 -14129633.098 7 20808009.730 20808007.883 20808008.734
+ 46.400 42.900
+ -1233470.388 3 -961139.355 2 24432776.110 24432774.454 24432776.282
+ 22.600 17.800
+ -17604915.823 7 -13718109.549 6 21249465.213 21249462.059 21249464.001
+ 44.700 39.600
+ -17815046.276 7 -13881849.126 7 20812038.589 20812036.462 20812037.993
+ 47.800 45.300
+ -6518155.582 5 -5079079.297 4 23475126.065 23475124.320 23475125.297
+ 32.400 26.500
+ 06 1 1 9 35 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9300876.763 6 -7247436.052 5 22890523.396 22890517.854 22890522.250
+ 36.700 32.100
+ -1375965.912 4 -1072180.243 3 23481459.890 23481456.155 23481457.826
+ 27.100 21.100
+ -14820842.329 7 -11548709.076 5 21827397.334 21827395.191 21827396.185
+ 42.700 35.700
+ -18089080.958 7 -14095384.685 7 20816373.627 20816371.776 20816372.596
+ 46.400 42.900
+ -1124315.827 4 -876083.841 1 24453548.967 24453546.094 24453548.058
+ 24.200 11.000
+ -17676974.379 7 -13774259.052 6 21235752.980 21235749.721 21235751.749
+ 44.600 39.700
+ -17789647.270 7 -13862057.689 7 20816871.938 20816869.706 20816871.232
+ 47.800 45.200
+ -6533617.059 5 -5091127.187 4 23472183.534 23472181.938 23472182.716
+ 31.600 26.500
+ 06 1 1 9 36 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9396674.619 6 -7322083.721 5 22872293.728 22872287.937 22872292.080
+ 36.800 32.000
+ -1278709.395 4 -996395.955 3 23499966.781 23499963.402 23499965.337
+ 27.400 19.900
+ -14807549.884 7 -11538351.327 5 21829926.959 21829924.616 21829925.636
+ 42.400 35.500
+ -18044708.641 7 -14060808.857 7 20824817.271 20824815.502 20824816.367
+ 46.200 42.800
+ -1015016.084 4 -790915.209 2 24474347.283 24474345.095 24474346.965
+ 24.200 15.100
+ -17748590.465 7 -13830063.779 6 21222124.407 21222121.850 21222123.527
+ 44.700 40.200
+ -17763993.684 7 -13842067.878 7 20821753.634 20821751.356 20821752.939
+ 47.900 45.000
+ -6548566.740 5 -5102776.287 4 23469338.676 23469336.697 23469337.955
+ 32.100 25.600
+ 06 1 1 9 36 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9492306.513 6 -7396602.067 5 22854095.559 22854089.727 22854094.107
+ 36.900 30.800
+ -1181245.126 4 -920449.808 3 23518513.443 23518511.269 23518511.861
+ 26.500 23.000
+ -14793647.723 7 -11527518.476 5 21832572.289 21832570.212 21832571.053
+ 42.500 35.700
+ -17999916.286 7 -14025905.726 7 20833340.510 20833339.097 20833339.865
+ 46.100 42.800
+ -905573.422 3 -705635.191 1 24495173.507 24495171.245 24495173.067
+ 23.000 11.000
+ -17819761.684 7 -13885521.866 6 21208581.001 21208578.444 21208580.122
+ 44.700 40.400
+ -17738086.106 7 -13821880.150 7 20826683.721 20826681.293 20826683.041
+ 47.800 44.900
+ -6563003.516 5 -5114025.714 4 23466591.560 23466590.182 23466590.610
+ 31.800 26.500
+ 06 1 1 9 37 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9587770.387 6 -7470989.517 4 22835930.142 22835923.278 22835928.358
+ 36.800 29.900
+ -1083574.670 4 -844343.014 3 23537100.051 23537097.021 23537098.077
+ 26.200 21.100
+ -14779136.612 7 -11516211.125 5 21835333.710 21835331.433 21835332.600
+ 42.400 35.200
+ -17954704.216 7 -13990675.549 7 20841944.138 20841942.648 20841943.439
+ 46.000 42.700
+ -795990.439 3 -620245.861 2 24516025.726 24516024.570 24516025.856
+ 22.600 16.100
+ -17890486.792 7 -13940632.323 6 21195122.994 21195119.848 21195121.648
+ 44.400 40.200
+ -17711924.858 7 -13801494.758 7 20831662.141 20831659.595 20831661.393
+ 47.800 44.900
+ -6576926.656 5 -5124874.902 4 23463941.979 23463940.834 23463941.327
+ 32.300 26.200
+ 06 1 1 9 37 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -9683064.105 6 -7545244.363 5 22817795.363 22817789.761 22817794.013
+ 36.800 31.100
+ -985699.377 4 -768076.590 3 23555724.411 23555722.263 23555722.823
+ 25.600 22.600
+ -14764016.962 7 -11504429.583 5 21838211.408 21838208.302 21838210.142
+ 43.100 34.800
+ -17909072.666 7 -13955118.503 7 20850627.688 20850626.092 20850626.895
+ 46.100 42.700
+ -17960764.228 7 -13995393.950 6 21181749.255 21181746.352 21181748.075
+ 44.500 40.200
+ -17685510.485 7 -13780912.118 7 20836688.465 20836686.201 20836687.773
+ 47.800 44.900
+ -6590335.033 5 -5135322.989 4 23461390.321 23461388.984 23461389.518
+ 32.000 26.800
+ 06 1 1 9 38 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -9778185.467 6 -7619364.907 5 22799694.719 22799688.749 22799693.372
+ 36.500 32.000
+ -887620.248 4 -691651.315 2 23574388.207 23574385.225 23574386.828
+ 25.900 17.800
+ -14748290.001 7 -11492174.813 5 21841204.145 21841200.985 21841202.783
+ 43.000 34.500
+ -17863021.823 7 -13919234.734 7 20859391.069 20859389.254 20859390.191
+ 46.100 42.400
+ -18030592.353 7 -14049805.456 6 21168461.053 21168458.445 21168460.148
+ 44.700 40.500
+ -17658843.461 7 -13760132.608 7 20841762.734 20841760.714 20841762.198
+ 47.900 44.900
+ -6603227.686 5 -5145369.188 4 23458936.996 23458935.446 23458936.282
+ 31.800 25.300
+ 06 1 1 9 38 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -9873132.492 6 -7693349.601 5 22781626.318 22781621.097 22781625.251
+ 37.100 32.000
+ -789338.989 4 -615068.550 3 23593090.773 23593088.493 23593089.307
+ 25.600 21.600
+ -14731956.593 7 -11479447.476 5 21844312.019 21844309.116 21844310.788
+ 42.500 34.400
+ -17816551.902 7 -13883024.411 7 20868234.147 20868232.261 20868233.148
+ 46.000 42.600
+ -18099969.820 7 -14103865.813 6 21155259.189 21155256.369 21155258.180
+ 44.800 40.400
+ -17631924.261 7 -13739156.603 7 20846885.651 20846883.240 20846884.894
+ 47.800 44.900
+ -6615603.605 5 -5155012.759 4 23456582.047 23456580.620 23456581.391
+ 31.800 26.200
+ 06 1 1 9 39 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -9967902.980 6 -7767196.738 5 22763592.521 22763586.749 22763591.127
+ 36.500 32.000
+ -690856.422 4 -538328.906 3 23611831.943 23611828.570 23611830.120
+ 27.100 19.300
+ -14715016.916 7 -11466247.729 5 21847535.281 21847532.814 21847534.146
+ 42.300 34.900
+ -17769663.152 7 -13846487.730 7 20877156.635 20877154.935 20877155.708
+ 46.100 42.400
+ -18168894.908 7 -14157573.666 6 21142143.306 21142140.260 21142142.074
+ 44.800 40.400
+ -17604753.335 7 -13717984.453 7 20852056.190 20852053.712 20852055.450
+ 47.800 44.800
+ -6627462.106 5 -5164253.142 4 23454325.321 23454323.832 23454324.627
+ 31.500 26.500
+ 06 1 1 9 39 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10062494.624 6 -7840904.502 5 22745592.265 22745586.786 22745590.905
+ 37.500 33.200
+ -592173.962 4 -461433.532 3 23630610.897 23630607.008 23630609.036
+ 26.800 18.600
+ -14697472.229 7 -11452576.540 5 21850874.203 21850871.585 21850872.908
+ 42.600 34.700
+ -17722355.874 7 -13809624.925 7 20886158.440 20886157.180 20886157.899
+ 46.300 42.300
+ -18237365.813 7 -14210927.599 6 21129113.489 21129110.844 21129112.335
+ 44.600 40.900
+ -17577331.140 8 -13696616.507 7 20857274.203 20857271.956 20857273.636
+ 48.000 44.800
+ -6638802.113 5 -5173089.491 4 23452167.927 23452165.978 23452166.938
+ 32.400 26.500
+ 06 1 1 9 40 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10156905.414 6 -7914471.335 5 22727626.756 22727621.063 22727625.366
+ 38.400 33.200
+ -493292.921 4 -384383.359 2 23649427.208 23649423.721 23649425.437
+ 26.500 17.800
+ -14679323.623 7 -11438434.769 5 21854327.804 21854325.160 21854326.547
+ 42.700 34.800
+ -17674630.404 7 -13772436.252 7 20895240.584 20895239.059 20895239.873
+ 46.300 42.200
+ -18305381.212 7 -14263926.598 6 21116170.709 21116167.865 21116169.542
+ 44.800 40.900
+ -17549658.109 7 -13675053.108 7 20862540.441 20862537.962 20862539.595
+ 47.700 44.800
+ -6649622.684 5 -5181521.100 4 23450108.503 23450107.078 23450107.607
+ 31.800 26.500
+ 06 1 1 9 40 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10251133.215 6 -7987895.606 5 22709695.904 22709689.571 22709694.442
+ 38.000 31.600
+ -394214.733 4 -307179.620 3 23668280.535 23668278.191 23668279.017
+ 27.100 18.600
+ -14660571.875 7 -11423823.014 5 21857896.199 21857893.416 21857895.026
+ 42.800 34.400
+ -17626486.951 7 -13734921.878 7 20904402.260 20904400.482 20904401.418
+ 46.400 42.000
+ -18372939.578 7 -14316569.470 6 21103314.571 21103311.750 21103313.614
+ 44.900 40.700
+ -17521734.819 8 -13653294.694 7 20867853.749 20867851.521 20867853.173
+ 48.000 44.600
+ -6659923.154 5 -5189547.431 4 23448147.864 23448146.600 23448147.229
+ 31.500 27.100
+ 06 1 1 9 41 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10345175.955 6 -8061175.675 5 22691799.900 22691794.250 22691798.550
+ 38.100 33.200
+ -294940.499 4 -229823.128 3 23687171.894 23687169.293 23687170.505
+ 25.600 21.600
+ -14641217.774 7 -11408741.894 5 21861579.079 21861576.387 21861577.750
+ 42.400 34.900
+ -17577925.858 7 -13697082.071 7 20913643.257 20913641.313 20913642.279
+ 46.400 42.200
+ -18440039.355 7 -14368855.000 6 21090545.989 21090543.187 21090545.007
+ 44.800 40.700
+ -17493561.658 7 -13631341.576 7 20873215.169 20873212.793 20873214.408
+ 47.800 44.700
+ -6669702.599 5 -5197167.773 4 23446287.384 23446285.880 23446286.562
+ 32.100 26.500
+ 06 1 1 9 41 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10439031.486 6 -8134309.846 5 22673939.595 22673934.048 22673938.600
+ 38.400 33.100
+ -195471.721 4 -152314.988 3 23706100.487 23706097.184 23706098.773
+ 24.200 19.900
+ -14621262.056 7 -11393191.993 5 21865376.381 21865373.878 21865375.264
+ 42.700 34.700
+ -17528947.512 7 -13658917.132 7 20922963.733 20922961.550 20922962.712
+ 46.400 42.100
+ -18506679.230 7 -14420782.167 6 21077864.939 21077862.032 21077863.948
+ 45.300 41.000
+ -17465139.075 8 -13609194.098 7 20878623.612 20878621.476 20878623.021
+ 48.000 44.600
+ -6678960.340 5 -5204381.591 4 23444525.443 23444523.606 23444524.661
+ 32.000 26.500
+ 06 1 1 9 42 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10532697.309 6 -8207296.186 5 22656115.155 22656110.060 22656114.330
+ 38.000 33.100
+ -95809.760 4 -74656.365 3 23725065.262 23725062.134 23725063.829
+ 25.900 19.900
+ -14600706.020 7 -11377174.309 5 21869288.012 21869285.551 21869286.710
+ 42.100 34.600
+ -17479552.239 7 -13620427.319 6 20932363.076 20932361.100 20932362.230
+ 46.600 41.800
+ -18572857.443 7 -14472349.594 6 21065271.918 21065268.735 21065270.771
+ 45.200 41.100
+ -17436467.599 8 -13586852.677 7 20884079.669 20884077.383 20884079.011
+ 48.000 44.600
+ -6687695.475 5 -5211188.179 4 23442863.291 23442861.866 23442862.545
+ 31.800 26.500
+ 06 1 1 9 42 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10626171.471 6 -8280133.216 5 22638328.148 22638322.407 22638326.904
+ 38.600 33.100
+ 4044.021 4 3151.758 2 23744067.392 23744063.764 23744065.514
+ 25.600 15.100
+ -14579550.197 7 -11360689.254 5 21873313.990 21873311.408 21873312.735
+ 42.700 34.300
+ -17429740.442 7 -13581612.936 6 20941841.864 20941839.987 20941841.092
+ 46.600 41.800
+ -18638572.785 7 -14523556.337 6 21052766.300 21052763.457 21052765.332
+ 45.000 41.100
+ -17407547.622 8 -13564317.619 7 20889583.003 20889580.570 20889582.360
+ 48.000 44.500
+ -6695907.373 5 -5217587.052 4 23441300.373 23441299.411 23441299.595
+ 31.300 27.100
+ 06 1 1 9 43 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10719451.882 6 -8352819.240 5 22620577.689 22620572.105 22620576.259
+ 38.200 33.900
+ 104088.234 4 81108.232 2 23763105.856 23763101.551 23763103.569
+ 25.900 17.800
+ -14557796.753 7 -11343738.533 5 21877453.528 21877450.827 21877452.363
+ 42.800 34.600
+ -17379512.502 7 -13542474.284 6 20951399.554 20951398.067 20951399.030
+ 46.400 41.800
+ -18703823.787 7 -14574401.261 6 21040349.807 21040346.488 21040348.594
+ 45.100 41.200
+ -17378379.538 8 -13541589.241 7 20895133.518 20895131.097 20895132.853
+ 48.000 44.400
+ -6703595.127 5 -5223577.505 4 23439837.704 23439836.354 23439836.842
+ 31.300 26.800
+ 06 1 1 9 43 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10812535.859 6 -8425352.206 5 22602864.316 22602858.379 22602862.919
+ 38.300 32.700
+ 204321.636 3 159212.208 2 23782179.715 23782175.393 23782177.480
+ 23.800 17.000
+ -14535445.431 7 -11326321.921 5 21881706.989 21881704.182 21881705.837
+ 43.000 34.500
+ -17328868.770 7 -13503011.643 6 20961036.756 20961035.241 20961036.205
+ 46.400 41.600
+ -18768608.655 7 -14624882.965 6 21028021.404 21028018.406 21028020.366
+ 45.000 41.300
+ -17348963.899 7 -13518667.960 7 20900731.138 20900728.763 20900730.456
+ 47.900 44.400
+ -6710757.998 5 -5229158.969 4 23438474.633 23438473.425 23438474.035
+ 31.800 27.100
+ 06 1 1 9 44 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10905421.739 6 -8497730.811 5 22585188.981 22585182.799 22585187.621
+ 39.100 33.000
+ 304743.122 3 237462.644 2 23801289.026 23801285.457 23801287.072
+ 23.800 17.800
+ -14512497.810 7 -11308440.671 5 21886073.867 21886071.008 21886072.686
+ 43.000 34.100
+ -17277809.586 7 -13463225.269 6 20970753.070 20970751.489 20970752.367
+ 46.300 41.600
+ -18832926.137 7 -14675000.469 6 21015782.140 21015779.062 21015781.096
+ 45.100 41.200
+ -17319301.103 7 -13495554.088 7 20906375.644 20906373.381 20906374.990
+ 47.900 44.400
+ -6717395.443 5 -5234330.996 4 23437211.512 23437210.025 23437210.879
+ 31.500 27.100
+ 06 1 1 9 44 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10998107.431 6 -8569953.429 5 22567551.493 22567545.642 22567550.109
+ 38.900 33.800
+ 405351.131 3 315858.488 3 23820434.330 23820430.007 23820432.090
+ 23.400 18.600
+ -14488955.043 7 -11290095.669 5 21890553.750 21890551.235 21890552.591
+ 42.600 34.700
+ -17226335.380 7 -13423115.506 6 20980548.493 20980546.789 20980547.631
+ 46.200 41.700
+ -18896775.099 7 -14724752.894 6 21003632.056 21003629.122 21003631.046
+ 45.200 41.400
+ -17289391.646 8 -13472248.015 7 20912067.277 20912064.964 20912066.657
+ 48.000 44.400
+ -6723506.689 5 -5239092.991 4 23436048.538 23436046.989 23436047.696
+ 30.600 26.200
+ 06 1 1 9 45 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11090590.292 6 -8642017.991 5 22549952.636 22549946.391 22549951.192
+ 39.500 33.900
+ 506144.118 3 394398.453 3 23839613.486 23839610.951 23839611.993
+ 23.400 22.600
+ -14464818.112 7 -11271287.687 5 21895147.212 21895144.407 21895145.930
+ 42.800 34.900
+ -17174446.541 7 -13382682.651 6 20990423.038 20990420.878 20990421.961
+ 46.100 41.600
+ -18960153.907 7 -14774138.966 6 20991571.518 20991568.438 20991570.429
+ 45.100 41.400
+ -17259235.880 7 -13448750.013 7 20917805.859 20917803.489 20917805.139
+ 47.900 44.300
+ -6729091.027 5 -5243444.432 4 23434985.774 23434984.268 23434984.953
+ 31.800 25.600
+ 06 1 1 9 45 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11182868.271 6 -8713922.911 5 22532392.598 22532386.480 22532391.211
+ 39.600 33.600
+ 607120.923 4 473081.601 3 23858829.806 23858826.277 23858827.338
+ 24.200 19.900
+ -14440088.340 7 -11252017.747 5 21899852.930 21899850.198 21899851.656
+ 42.300 34.100
+ -17122143.474 7 -13341927.023 6 21000376.057 21000373.876 21000374.843
+ 45.700 41.500
+ -19023061.160 7 -14823157.594 6 20979600.867 20979597.627 20979599.698
+ 45.200 41.600
+ -17228834.366 8 -13425060.524 7 20923590.896 20923588.818 20923590.273
+ 48.000 44.400
+ -6734147.876 5 -5247384.828 4 23434023.408 23434022.079 23434022.545
+ 31.100 25.300
+ 06 1 1 9 46 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11274939.052 6 -8785666.392 5 22514872.261 22514865.959 22514870.724
+ 39.400 33.500
+ 708279.938 4 551906.794 3 23878078.733 23878075.892 23878077.733
+ 24.600 18.600
+ -14414766.652 6 -11232286.575 5 21904671.123 21904668.650 21904669.937
+ 41.800 34.300
+ -17069426.546 7 -13300848.906 6 21010407.484 21010405.485 21010406.455
+ 45.700 41.300
+ -19085495.595 7 -14871807.795 6 20967719.835 20967716.791 20967718.750
+ 45.100 41.800
+ -17198187.405 7 -13401179.777 7 20929422.872 20929420.675 20929422.149
+ 47.800 44.500
+ -6738676.741 5 -5250913.806 4 23433161.806 23433160.863 23433161.023
+ 32.400 27.600
+ 06 1 1 9 46 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11366800.366 6 -8857246.619 5 22497391.224 22497385.703 22497389.735
+ 39.200 35.100
+ 809619.875 4 630872.929 3 23897362.581 23897360.353 23897361.702
+ 25.300 19.900
+ -14388854.538 6 -11212095.335 5 21909602.017 21909599.535 21909600.884
+ 41.900 34.100
+ -17016296.306 7 -13259448.725 6 21020517.630 21020515.803 21020516.750
+ 45.700 41.000
+ -19147455.970 7 -14920088.594 7 20955928.954 20955926.172 20955927.869
+ 45.200 42.000
+ -17167295.580 7 -13377108.222 7 20935301.320 20935299.121 20935300.663
+ 47.900 44.400
+ -6742676.972 5 -5254030.870 4 23432401.096 23432398.500 23432400.177
+ 32.100 25.300
+ 06 1 1 9 47 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11458450.011 6 -8928661.924 5 22479950.602 22479945.218 22479949.589
+ 40.200 34.400
+ 911139.378 4 709979.006 2 23916680.851 23916679.107 23916679.626
+ 24.600 17.800
+ -14362353.106 6 -11191444.884 5 21914645.098 21914642.537 21914643.826
+ 41.300 33.600
+ -16962753.154 7 -13217726.794 6 21030706.527 21030704.782 21030705.694
+ 45.600 41.100
+ -19208940.980 7 -14967998.974 7 20944228.648 20944225.976 20944227.620
+ 45.100 42.200
+ -17136159.206 7 -13352846.106 7 20941226.124 20941224.202 20941225.635
+ 47.900 44.300
+ -6746147.948 5 -5256735.521 4 23431740.081 23431738.391 23431739.333
+ 32.300 25.900
+ 06 1 1 9 47 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11549886.239 6 -8999910.934 5 22462551.252 22462545.443 22462550.047
+ 40.000 33.900
+ 1012837.262 4 789224.080 3 23936033.607 23936031.621 23936032.429
+ 25.600 18.600
+ -14335263.402 6 -11170336.039 5 21919800.026 21919797.609 21919798.746
+ 40.900 33.800
+ -16908797.519 7 -13175683.454 6 21040973.432 21040972.248 21040972.904
+ 45.300 41.300
+ -19269948.961 7 -15015537.657 7 20932619.506 20932616.542 20932618.374
+ 45.300 42.300
+ -17104778.826 8 -13328393.858 7 20947197.977 20947195.692 20947197.282
+ 48.000 44.300
+ -6749089.100 5 -5259027.332 4 23431180.705 23431178.919 23431179.837
+ 32.400 25.600
+ 06 1 1 9 48 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11641106.036 6 -9070991.296 5 22445192.195 22445186.805 22445190.973
+ 39.500 33.800
+ 1114711.916 3 868606.900 2 23955419.403 23955417.359 23955418.632
+ 22.600 17.800
+ -14307586.948 6 -11148769.983 5 21925066.417 21925064.218 21925065.259
+ 41.000 34.100
+ -16854429.954 7 -13133319.120 6 21051319.448 21051318.013 21051318.829
+ 45.600 41.300
+ -19330478.897 7 -15062703.832 7 20921101.103 20921098.089 20921099.894
+ 45.300 42.500
+ -17073154.810 8 -13303751.762 7 20953215.815 20953213.489 20953215.126
+ 48.000 44.100
+ -6751499.983 5 -5260905.928 4 23430722.321 23430720.138 23430721.406
+ 32.800 25.600
+ 06 1 1 9 48 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11732107.532 6 -9141901.557 5 22427875.599 22427869.406 22427874.270
+ 40.000 32.800
+ 1216762.109 3 948126.493 2 23974839.613 23974837.156 23974838.195
+ 22.100 16.100
+ -14279325.073 6 -11126747.761 5 21930444.694 21930442.297 21930443.491
+ 41.000 33.900
+ -16799650.935 7 -13090634.183 6 21061743.391 21061742.119 21061742.853
+ 45.600 41.000
+ -19390529.598 7 -15109496.580 7 20909673.598 20909670.805 20909672.607
+ 45.500 42.600
+ -17041287.522 7 -13278920.115 7 20959279.881 20959277.638 20959279.259
+ 47.900 44.100
+ -6753380.070 5 -5262370.912 4 23430364.214 23430362.010 23430363.585
+ 33.100 25.900
+ 06 1 1 9 49 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11822888.386 6 -9212639.900 5 22410600.381 22410594.580 22410598.952
+ 39.900 33.500
+ 1318986.244 3 1027781.652 2 23994292.950 23994290.049 23994290.944
+ 22.600 17.000
+ -14250479.033 6 -11104270.339 5 21935933.983 21935931.513 21935932.830
+ 41.100 34.000
+ -16744460.907 7 -13047628.971 6 21072245.840 21072244.482 21072245.234
+ 45.500 40.900
+ -19450099.552 7 -15155914.714 7 20898337.918 20898335.001 20898336.791
+ 45.300 42.600
+ -17009177.454 7 -13253899.284 7 20965390.166 20965387.973 20965389.484
+ 47.900 44.000
+ -6754728.810 5 -5263421.876 4 23430106.870 23430105.505 23430106.323
+ 32.400 25.600
+ 06 1 1 9 49 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11913446.254 6 -9283204.462 5 22393367.778 22393362.418 22393366.569
+ 40.000 35.300
+ 1421382.998 4 1107571.259 2 24013778.252 24013774.677 24013776.324
+ 25.300 16.100
+ -14221050.082 6 -11081338.696 5 21941534.203 21941531.834 21941532.940
+ 40.700 33.800
+ -16688860.492 7 -13004303.981 6 21082826.729 21082824.842 21082825.867
+ 45.600 40.700
+ -19509187.612 7 -15201957.344 7 20887093.879 20887090.869 20887092.662
+ 45.200 42.700
+ -16976825.059 7 -13228689.622 7 20971546.544 20971544.488 20971545.952
+ 47.900 44.000
+ -6755545.747 5 -5264058.448 4 23429952.186 23429950.020 23429951.166
+ 32.000 25.900
+ 06 1 1 9 50 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12003779.013 6 -9353593.629 5 22376178.562 22376172.726 22376176.983
+ 40.600 35.200
+ 1523950.814 4 1187494.182 2 24033294.931 24033292.769 24033294.712
+ 24.200 17.000
+ -14191039.570 6 -11057953.890 5 21947245.247 21947242.662 21947243.957
+ 41.200 33.800
+ -16632850.266 7 -12960659.659 6 21093485.342 21093483.303 21093484.278
+ 45.500 40.900
+ -19567792.371 7 -15247623.382 7 20875941.731 20875938.666 20875940.550
+ 45.200 42.600
+ -16944230.731 7 -13203291.441 7 20977749.443 20977746.940 20977748.644
+ 47.900 43.900
+ -6755830.647 5 -5264280.434 4 23429897.727 23429896.482 23429896.814
+ 31.800 27.400
+ 06 1 1 9 50 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12093884.382 6 -9423805.599 5 22359031.539 22359025.853 22359030.298
+ 40.500 34.100
+ 1626688.555 4 1267549.573 2 24052846.418 24052843.348 24052845.530
+ 24.600 17.000
+ -14160448.975 6 -11034117.062 5 21953066.285 21953063.845 21953065.081
+ 41.000 33.600
+ -16576430.702 7 -12916696.373 6 21104221.545 21104219.523 21104220.532
+ 45.700 40.700
+ -19625912.802 7 -15292912.019 7 20864881.595 20864878.771 20864880.473
+ 45.000 42.700
+ -16911394.808 7 -13177705.007 7 20983997.617 20983995.377 20983996.891
+ 47.900 43.800
+ -6755582.790 5 -5264087.295 4 23429944.952 23429943.031 23429944.231
+ 32.400 25.900
+ 06 1 1 9 51 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12183759.970 6 -9493838.528 5 22341928.838 22341923.187 22341927.659
+ 41.000 33.900
+ 1729594.646 3 1347736.053 2 24072428.533 24072426.402 24072427.275
+ 22.600 16.100
+ -14129279.633 6 -11009829.274 5 21958997.756 21958995.261 21958996.424
+ 41.000 33.600
+ -16519602.391 7 -12872414.585 6 21115035.404 21115033.585 21115034.580
+ 45.700 40.500
+ -19683548.040 7 -15337822.587 7 20853913.813 20853911.149 20853912.827
+ 45.000 42.800
+ -16878317.865 7 -13151930.764 7 20990292.072 20990289.729 20990291.336
+ 47.900 43.800
+ -6754802.096 5 -5263478.979 4 23430093.497 23430091.296 23430092.851
+ 32.600 26.200
+ 06 1 1 9 51 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12273403.678 6 -9563690.792 5 22324870.238 22324864.400 22324869.080
+ 40.800 33.800
+ 1832667.683 4 1428052.701 1 24092042.969 24092039.765 24092041.893
+ 25.600 11.000
+ -14097532.754 6 -10985091.467 5 21965038.737 21965036.495 21965037.468
+ 40.500 33.800
+ -16462366.079 7 -12827814.869 6 21125927.031 21125925.321 21125926.330
+ 45.700 40.700
+ -19740696.491 7 -15382353.843 7 20843038.888 20843036.134 20843037.861
+ 45.100 43.000
+ -16845000.227 7 -13125968.968 7 20996632.111 20996629.842 20996631.435
+ 47.800 43.900
+ -6753488.003 5 -5262454.996 4 23430343.447 23430341.746 23430342.875
+ 33.000 26.500
+ 06 1 1 9 52 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12362813.067 6 -9633360.440 5 22307856.246 22307850.784 22307855.025
+ 41.200 35.400
+ 1935906.079 3 1508498.190 2 24111688.260 24111685.863 24111686.855
+ 22.100 17.800
+ -14065210.312 6 -10959905.161 5 21971189.438 21971187.118 21971188.267
+ 40.900 33.200
+ -16404722.246 7 -12782897.602 6 21136896.054 21136894.634 21136895.568
+ 45.800 40.600
+ -19797357.201 7 -15426505.037 7 20832257.004 20832253.944 20832255.841
+ 45.200 42.800
+ -16811442.286 7 -13099819.920 7 21003017.872 21003015.776 21003017.220
+ 47.700 43.800
+ -6751640.208 5 -5261015.155 4 23430695.344 23430693.619 23430694.591
+ 32.700 27.100
+ 06 1 1 9 52 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12451986.024 6 -9702845.865 6 22290887.499 22290881.762 22290885.965
+ 41.100 36.300
+ 2039308.612 3 1589071.515 2 24131365.980 24131362.081 24131364.649
+ 23.000 13.900
+ -14032313.199 6 -10934271.050 5 21977449.832 21977447.191 21977448.523
+ 41.200 33.200
+ -16346671.522 7 -12737663.279 6 21147942.327 21147941.242 21147942.116
+ 45.600 40.200
+ -19853528.737 7 -15470275.055 7 20821567.985 20821564.857 20821566.851
+ 45.300 43.200
+ -16777644.463 7 -13073483.955 7 21009449.495 21009447.323 21009448.760
+ 47.700 43.900
+ -6749258.341 5 -5259159.144 4 23431148.808 23431146.697 23431147.853
+ 33.100 26.500
+ 06 1 1 9 53 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12540919.632 6 -9772144.774 6 22273964.047 22273958.344 22273962.364
+ 40.600 36.000
+ 2142873.794 3 1669771.658 2 24151072.840 24151070.158 24151072.332
+ 23.000 15.100
+ -13998843.365 6 -10908190.654 5 21983819.030 21983816.088 21983817.730
+ 40.700 33.200
+ -16288214.487 7 -12692112.348 6 21159066.832 21159065.295 21159066.289
+ 45.600 40.000
+ -19909210.249 7 -15513663.242 7 20810972.332 20810968.975 20810971.038
+ 45.200 43.200
+ -16743607.201 7 -13046961.411 7 21015926.597 21015924.330 21015925.927
+ 47.700 44.000
+ -6746342.182 5 -5256886.805 4 23431703.482 23431701.861 23431702.698
+ 33.000 27.600
+ 06 1 1 9 53 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12629612.110 6 -9841255.787 5 22257086.340 22257080.290 22257084.806
+ 41.000 35.100
+ 2246600.129 3 1750597.337 2 24170810.992 24170809.310 24170810.398
+ 23.800 17.000
+ -13964802.249 6 -10881665.112 5 21990296.577 21990293.781 21990295.466
+ 41.000 32.400
+ -16229351.712 7 -12646245.258 6 21170268.057 21170266.553 21170267.433
+ 45.300 40.100
+ -19964400.512 7 -15556668.631 7 20800469.618 20800466.686 20800468.491
+ 45.100 43.400
+ -16709330.868 7 -13020252.578 7 21022448.986 21022446.966 21022448.371
+ 47.800 44.000
+ -6742891.299 5 -5254197.822 4 23432359.928 23432358.566 23432359.406
+ 32.700 27.100
+ 06 1 1 9 54 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12718060.982 6 -9910177.008 5 22240255.054 22240249.044 22240253.544
+ 41.200 34.700
+ 2350486.218 3 1831547.471 2 24190580.117 24190578.020 24190579.343
+ 21.100 17.000
+ -13930191.424 6 -10854695.636 5 21996882.880 21996880.211 21996881.639
+ 40.700 32.800
+ -16170083.763 7 -12600062.448 6 21181546.849 21181544.876 21181545.944
+ 45.300 40.200
+ -20019098.417 7 -15599290.374 7 20790060.989 20790058.096 20790059.792
+ 45.000 43.700
+ -16674815.979 7 -12993357.859 7 21029017.018 21029014.902 21029016.402
+ 47.700 43.700
+ -6738905.595 5 -5251092.059 4 23433118.618 23433116.737 23433117.717
+ 32.000 26.500
+ 06 1 1 9 54 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12806264.143 6 -9978906.748 5 22223470.181 22223464.482 22223468.989
+ 41.200 34.700
+ 2454530.430 3 1912620.864 2 24210379.722 24210377.231 24210378.570
+ 20.500 12.600
+ -13895012.371 6 -10827283.397 5 22003577.153 22003574.678 22003575.957
+ 40.500 33.200
+ -16110411.366 7 -12553564.487 6 21192902.058 21192900.187 21192901.058
+ 45.100 40.100
+ -20073302.857 7 -15641527.594 7 20779746.194 20779743.238 20779745.078
+ 45.100 43.600
+ -16640062.787 7 -12966277.446 7 21035630.222 21035628.095 21035629.590
+ 47.600 43.700
+ -6734384.838 5 -5247569.386 4 23433979.103 23433976.631 23433978.173
+ 32.600 25.900
+ 06 1 1 9 55 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12894219.215 6 -10047443.169 5 22206732.706 22206727.500 22206731.797
+ 41.400 35.800
+ 2558731.371 3 1993816.371 3 24230207.596 24230206.215 24230206.940
+ 21.600 18.600
+ -13859266.848 6 -10799429.744 5 22010379.342 22010376.870 22010378.228
+ 41.100 32.800
+ -16050335.154 7 -12506751.868 6 21204334.350 21204332.320 21204333.243
+ 45.000 40.000
+ -20127012.942 7 -15683379.609 7 20769525.489 20769522.548 20769524.406
+ 45.200 43.700
+ -16605071.825 7 -12939011.758 7 21042288.785 21042286.754 21042288.067
+ 47.400 43.800
+ -6729328.706 5 -5243629.543 4 23434941.079 23434939.397 23434940.278
+ 33.000 26.800
+ 06 1 1 9 55 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12981923.683 6 -10115784.301 6 22190043.604 22190038.125 22190042.121
+ 41.400 36.600
+ 2663087.665 3 2075132.912 2 24250065.275 24250064.405 24250063.831
+ 19.300 16.100
+ -13822956.346 6 -10771135.829 5 22017289.290 22017286.382 22017287.902
+ 40.700 32.700
+ -15989855.971 7 -12459625.236 6 21215843.072 21215841.085 21215842.014
+ 45.100 39.800
+ -20180227.550 7 -15724845.533 7 20759399.367 20759396.131 20759398.078
+ 45.100 43.900
+ -16569843.310 7 -12911560.969 7 21048992.764 21048990.521 21048992.053
+ 47.600 43.600
+ -6723737.031 5 -5239272.389 4 23436004.695 23436003.075 23436003.888
+ 32.300 27.100
+ 06 1 1 9 56 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13069375.217 6 -10183928.353 6 22173401.888 22173396.394 22173400.731
+ 41.600 36.200
+ 2767598.127 3 2156569.542 2 24269953.651 24269952.345 24269952.655
+ 23.400 13.900
+ -13786082.408 6 -10742402.887 5 22024305.905 22024303.253 22024304.602
+ 40.300 32.400
+ -15928974.269 7 -12412184.964 6 21227428.489 21227426.632 21227427.421
+ 44.900 39.900
+ -20232945.605 7 -15765924.531 7 20749367.368 20749364.282 20749366.164
+ 45.400 44.100
+ -16534377.753 7 -12883925.471 7 21055741.647 21055739.352 21055740.928
+ 47.800 43.500
+ -6717609.691 5 -5234497.843 4 23437171.174 23437169.047 23437170.362
+ 33.100 26.500
+ 06 1 1 9 56 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13156571.653 6 -10251873.624 5 22156809.103 22156803.243 22156807.807
+ 41.300 35.800
+ 2872260.684 3 2238124.822 2 24289868.479 24289868.721 24289869.054
+ 21.100 13.900
+ -13748646.900 6 -10713232.366 5 22031429.297 22031427.052 22031428.285
+ 40.300 32.800
+ -15867690.690 7 -12364431.536 6 21239090.286 21239088.512 21239089.287
+ 44.800 40.200
+ -20285166.073 7 -15806615.793 7 20739429.937 20739426.943 20739428.839
+ 45.200 44.200
+ -16498675.578 8 -12856105.590 7 21062535.555 21062533.238 21062534.875
+ 48.100 43.400
+ -6710946.502 5 -5229305.735 4 23438438.891 23438437.370 23438438.366
+ 33.100 28.400
+ 06 1 1 9 57 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13243510.363 6 -10319618.074 5 22140264.933 22140259.369 22140263.710
+ 41.600 35.300
+ 2977073.976 3 2319797.413 3 24309815.367 24309814.799 24309814.597
+ 22.600 19.900
+ -13710651.463 6 -10683625.528 5 22038659.940 22038657.428 22038658.671
+ 40.400 32.800
+ -15806005.992 7 -12316365.548 6 21250828.493 21250826.736 21250827.515
+ 44.800 39.800
+ -20336888.063 7 -15846918.644 7 20729587.506 20729584.562 20729586.480
+ 45.100 44.000
+ -16462737.102 8 -12828101.578 7 21069374.454 21069372.046 21069373.808
+ 48.100 43.200
+ -6703747.333 5 -5223695.988 4 23439809.326 23439806.769 23439808.417
+ 33.000 26.200
+ 06 1 1 9 57 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13330189.250 7 -10387160.074 5 22123770.802 22123764.901 22123769.656
+ 42.200 35.600
+ 3082036.798 3 2401586.641 9 24329789.555 24329787.486 24329788.651
+ 21.600 -3.000
+ -13672097.644 6 -10653583.593 5 22045996.447 22045994.191 22045995.289
+ 40.800 33.400
+ -15743920.953 7 -12267987.612 6 21262642.756 21262641.218 21262641.886
+ 44.700 40.100
+ -20388110.837 7 -15886832.490 7 20719840.151 20719837.210 20719839.116
+ 45.100 44.200
+ -16426562.697 8 -12799913.731 7 21076258.152 21076255.881 21076257.527
+ 48.100 43.300
+ -6696012.091 5 -5217668.535 4 23441280.864 23441279.396 23441280.101
+ 32.700 27.900
+ 06 1 1 9 58 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13416606.031 7 -10454497.834 6 22107326.593 22107320.472 22107325.058
+ 42.400 36.500
+ 3187147.802 3 2483491.308 2 24349791.134 24349789.277 24349790.558
+ 19.300 15.100
+ -13632987.472 6 -10623108.143 5 22053439.099 22053436.641 22053437.855
+ 40.600 33.400
+ -15681436.377 7 -12219298.343 6 21274533.065 21274531.554 21274532.313
+ 44.900 40.100
+ -20438833.073 7 -15926356.300 7 20710188.226 20710185.066 20710187.023
+ 45.100 44.300
+ -16390152.885 8 -12771542.450 7 21083186.802 21083184.465 21083186.040
+ 48.100 43.300
+ -6687740.754 5 -5211223.330 4 23442854.790 23442852.759 23442854.079
+ 32.700 26.200
+ 06 1 1 9 58 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13502758.272 7 -10521629.440 6 22090931.967 22090926.392 22090930.657
+ 42.400 37.000
+ 3292405.091 3 2565509.928 3 24369821.447 24369819.927 24369820.263
+ 22.600 19.900
+ -13593322.582 6 -10592200.446 5 22060986.961 22060984.721 22060985.732
+ 40.400 33.000
+ -15618552.963 7 -12170298.292 6 21286499.758 21286497.877 21286498.819
+ 45.100 39.500
+ -20489053.685 7 -15965489.233 7 20700631.338 20700628.380 20700630.202
+ 44.700 44.500
+ -16353507.892 8 -12742987.908 7 21090160.127 21090157.633 21090159.429
+ 48.000 43.200
+ -6678933.109 5 -5204360.223 4 23444530.873 23444528.909 23444529.934
+ 33.000 26.200
+ 06 1 1 9 59 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13588643.466 7 -10588552.975 6 22074588.527 22074582.623 22074587.166
+ 42.300 36.000
+ 3397807.370 3 2647641.515 2 24389878.568 24389877.083 24389877.465
+ 18.600 16.100
+ -13553104.673 6 -10560861.825 5 22068640.062 22068637.975 22068638.873
+ 39.900 32.700
+ -15555271.394 7 -12120987.986 6 21298541.727 21298539.916 21298540.867
+ 45.000 39.500
+ -20538771.969 7 -16004230.745 7 20691170.169 20691167.295 20691169.124
+ 44.900 44.400
+ -16316628.195 7 -12714250.479 7 21097177.987 21097175.663 21097177.288
+ 47.900 43.100
+ -6669589.289 5 -5197079.336 4 23446308.717 23446306.978 23446307.771
+ 32.100 25.900
+ 06 1 1 9 59 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13674259.259 7 -10655266.586 5 22058296.611 22058290.560 22058295.380
+ 43.000 35.800
+ 3503353.227 3 2729884.998 1 24409964.724 24409961.346 24409962.970
+ 20.500 11.000
+ -13512335.566 6 -10529093.694 5 22076398.351 22076396.061 22076397.280
+ 40.700 33.100
+ -15491592.466 7 -12071368.054 6 21310659.150 21310657.740 21310658.539
+ 45.000 39.600
+ -20587987.084 7 -16042580.181 7 20681804.746 20681801.946 20681803.714
+ 44.800 44.500
+ -16279514.190 7 -12685330.477 7 21104240.450 21104238.306 21104239.766
+ 47.900 43.100
+ -6659709.230 5 -5189380.571 4 23448188.864 23448186.932 23448188.047
+ 32.300 26.200
+ 06 1 1 10 0 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13759603.501 7 -10721768.604 6 22042056.120 22042050.328 22042054.922
+ 43.200 36.500
+ 3609040.903 3 2812239.026 2 24430077.065 24430073.210 24430075.175
+ 22.600 13.900
+ -13471017.175 6 -10496897.558 5 22084261.213 22084258.534 22084259.940
+ 40.300 33.100
+ -15427517.047 7 -12021439.169 6 21322852.521 21322850.762 21322851.749
+ 45.000 39.300
+ -20636698.266 7 -16080536.936 7 20672535.638 20672532.549 20672534.487
+ 44.900 44.700
+ -16242166.203 8 -12656228.146 7 21111347.751 21111345.244 21111346.991
+ 48.000 42.800
+ -6649292.924 5 -5181263.968 3 23450170.887 23450168.320 23450170.171
+ 31.500 23.000
+ 06 1 1 10 0 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13844673.706 7 -10788057.079 6 22025867.511 22025861.844 22025866.241
+ 42.300 36.500
+ 3714868.719 3 2894702.183 1 24450213.754 24450212.086 24450212.737
+ 22.600 6.500
+ -13429151.191 6 -10464274.716 5 22092227.878 22092225.224 22092226.582
+ 40.200 32.600
+ -15363045.960 7 -11971201.968 6 21335120.796 21335119.174 21335120.115
+ 44.900 39.200
+ -20684904.437 7 -16118100.177 7 20663362.272 20663359.241 20663361.259
+ 44.800 44.600
+ -16204584.612 8 -12626943.792 7 21118499.509 21118496.812 21118498.644
+ 48.100 42.900
+ -6638340.346 5 -5172729.477 4 23452255.387 23452252.960 23452254.509
+ 31.600 25.600
+ 06 1 1 10 1 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13929467.569 7 -10854130.216 6 22009731.951 22009726.203 22009730.545
+ 42.600 36.900
+ 3820835.616 3 2977273.843 9 24470379.788 24470378.005 24470377.723
+ 21.100 -3.000
+ -13386739.514 6 -10431226.663 5 22100298.262 22100295.902 22100297.174
+ 39.700 32.000
+ -15298179.977 7 -11920657.057 6 21347464.322 21347462.799 21347463.696
+ 44.800 39.000
+ -20732604.978 7 -16155269.425 7 20654285.205 20654282.129 20654284.068
+ 45.000 44.700
+ -16166769.818 8 -12597477.717 7 21125695.125 21125692.749 21125694.482
+ 48.100 42.900
+ -6626851.680 5 -5163777.264 4 23454441.918 23454439.331 23454441.081
+ 31.600 24.200
+ 06 1 1 10 1 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14013982.563 7 -10919986.044 6 21993649.109 21993643.712 21993647.941
+ 42.900 37.600
+ 3926940.054 3 3059952.647 1 24490570.919 24490568.497 24490568.994
+ 19.900 11.000
+ -13343784.064 6 -10397754.903 5 22108472.449 22108470.390 22108471.203
+ 39.700 33.400
+ -15232919.853 7 -11869805.024 6 21359883.014 21359881.371 21359882.316
+ 44.600 39.100
+ -20779798.767 7 -16192043.797 7 20645304.722 20645301.389 20645303.470
+ 44.900 44.700
+ -16128722.069 8 -12567830.117 7 21132935.367 21132932.929 21132934.725
+ 48.100 42.900
+ -6614826.916 5 -5154407.313 4 23456729.862 23456727.233 23456729.358
+ 31.800 24.200
+ 06 1 1 10 2 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14098216.306 7 -10985622.733 6 21977620.321 21977614.275 21977618.988
+ 43.500 36.900
+ 4033180.334 3 3142737.260 1 24510787.522 24510784.736 24510785.677
+ 19.300 9.000
+ -13300286.810 6 -10363860.967 5 22116749.732 22116747.810 22116748.604
+ 39.700 32.800
+ -15167266.327 7 -11818646.446 6 21372376.697 21372374.781 21372375.734
+ 44.300 38.900
+ -20826484.994 7 -16228422.665 7 20636420.410 20636417.299 20636419.315
+ 44.900 44.900
+ -16090441.933 7 -12538001.440 7 21140220.050 21140217.507 21140219.251
+ 47.900 42.700
+ -6602265.974 5 -5144619.577 4 23459119.897 23459118.057 23459119.016
+ 31.300 25.300
+ 06 1 1 10 2 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14182166.420 7 -11051038.411 6 21961645.040 21961639.189 21961643.701
+ 43.400 36.900
+ 4139554.756 3 3225626.357 2 24531029.372 24531026.812 24531028.150
+ 22.100 13.900
+ -13256249.264 6 -10329546.019 5 22125129.745 22125127.641 22125128.566
+ 39.700 32.300
+ -15101220.415 7 -11767182.111 6 21384944.703 21384943.053 21384943.952
+ 44.200 38.900
+ -20872663.324 7 -16264405.776 7 20627633.031 20627629.963 20627631.852
+ 44.900 45.200
+ -16051929.587 7 -12507991.821 7 21147548.357 21147546.231 21147547.679
+ 47.700 42.800
+ -6589169.189 5 -5134414.261 4 23461612.087 23461610.119 23461611.289
+ 32.100 25.300
+ 06 1 1 10 3 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14265830.718 7 -11116231.372 6 21945723.983 21945718.340 21945722.792
+ 43.300 36.900
+ 4246062.089 3 3308619.101 1 24551298.485 24551294.683 24551296.580
+ 19.300 6.500
+ -13211674.088 6 -10294812.130 5 22133612.511 22133610.040 22133611.264
+ 40.300 31.800
+ -15034782.895 7 -11715412.626 6 21397587.514 21397585.668 21397586.538
+ 44.000 38.800
+ -20918332.212 7 -16299991.913 7 20618942.356 20618939.409 20618941.225
+ 44.700 45.300
+ -16013185.577 7 -12477801.684 7 21154921.212 21154918.965 21154920.526
+ 47.800 42.800
+ -6575536.530 5 -5123791.418 4 23464206.509 23464204.262 23464205.750
+ 32.100 25.900
+ 06 1 1 10 3 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14349206.436 7 -11181199.465 6 21929858.356 21929852.303 21929857.012
+ 43.600 36.500
+ 4352700.862 2 3391714.234 1 24571589.666 24571587.217 24571588.663
+ 16.100 11.000
+ -13166562.773 6 -10259660.478 5 22142196.939 22142194.350 22142195.618
+ 39.700 31.600
+ -14967954.638 7 -11663338.673 6 21410304.352 21410302.690 21410303.523
+ 43.900 38.500
+ -20963491.326 7 -16335180.827 7 20610348.864 20610345.930 20610347.749
+ 44.600 45.300
+ -15974210.154 7 -12447431.226 7 21162337.882 21162335.772 21162337.227
+ 47.700 42.700
+ -6561368.365 5 -5112751.287 4 23466902.793 23466900.932 23466901.802
+ 32.600 26.200
+ 06 1 1 10 4 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14432291.433 7 -11245941.023 6 21914047.780 21914041.836 21914046.543
+ 44.100 37.000
+ 4459469.387 2 3474910.427 2 24591906.986 24591904.658 24591905.724
+ 17.800 15.100
+ -13120917.483 6 -10224092.743 5 22150882.607 22150880.185 22150881.432
+ 39.500 31.500
+ -14900736.538 7 -11610960.942 6 21423095.662 21423093.805 21423094.772
+ 44.000 38.400
+ -21008139.873 7 -16369971.901 7 20601852.595 20601849.595 20601851.366
+ 44.500 45.300
+ -15935003.753 7 -12416880.784 7 21169798.649 21169796.421 21169797.979
+ 47.800 42.700
+ -6546664.822 5 -5101293.980 4 23469700.940 23469698.495 23469699.909
+ 32.000 25.600
+ 06 1 1 10 4 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14515083.403 7 -11310454.253 6 21898292.992 21898287.028 21898291.716
+ 43.600 36.800
+ 4566366.162 2 3558206.588 2 24612249.481 24612246.483 24612247.731
+ 16.100 16.100
+ -13074740.166 6 -10188110.445 5 22159669.829 22159667.460 22159668.472
+ 39.100 31.800
+ -14833129.474 7 -11558280.125 6 21435960.970 21435958.999 21435960.033
+ 44.000 38.400
+ -21052277.165 7 -16404364.588 7 20593453.402 20593450.429 20593452.321
+ 44.700 45.500
+ -15895566.660 7 -12386150.582 7 21177303.262 21177301.100 21177302.646
+ 47.900 42.700
+ -6531425.938 5 -5089419.526 4 23472600.107 23472598.101 23472599.724
+ 31.800 25.900
+ 06 1 1 10 5 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14597579.841 7 -11374737.199 6 21882594.067 21882588.477 21882592.910
+ 43.500 37.000
+ 4673389.580 3 3641601.436 2 24632614.886 24632612.035 24632613.505
+ 18.600 17.000
+ -13028032.704 6 -10151715.041 5 22168557.565 22168555.623 22168556.315
+ 38.600 31.500
+ -14765134.293 7 -11505296.880 6 21448899.954 21448898.098 21448899.148
+ 44.100 38.100
+ -21095902.671 7 -16438358.486 7 20585151.741 20585148.766 20585150.719
+ 44.600 45.500
+ -15855899.242 7 -12355240.907 7 21184851.994 21184849.550 21184851.201
+ 47.900 42.600
+ -6515652.061 5 -5077128.190 4 23475602.312 23475600.446 23475601.611
+ 32.100 27.100
+ 06 1 1 10 5 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14679778.395 7 -11438788.013 6 21866952.568 21866946.843 21866951.135
+ 43.600 37.600
+ 4780538.101 3 3725093.760 1 24653005.047 24653001.898 24653002.716
+ 20.500 11.000
+ -12980797.360 6 -10114908.305 5 22177546.346 22177544.301 22177545.089
+ 38.200 31.600
+ -14696751.892 7 -11452011.901 6 21461912.262 21461910.896 21461911.695
+ 43.900 38.300
+ -21139015.409 7 -16471952.821 7 20576947.853 20576944.651 20576946.644
+ 44.700 45.600
+ -15816001.913 8 -12324152.076 7 21192444.156 21192441.726 21192443.433
+ 48.100 42.700
+ -6499343.387 5 -5064420.127 4 23478705.473 23478703.928 23478704.974
+ 31.500 26.500
+ 06 1 1 10 6 0.0000000 0 6G23G20G 1G16G25G 6
+ -14761676.715 7 -11502604.890 6 21851367.690 21851361.977 21851366.350
+ 44.000 37.600
+ -12933036.086 6 -10077691.749 5 22186634.998 22186633.154 22186633.751
+ 38.500 31.600
+ -14627983.281 7 -11398425.983 6 21474998.620 21474997.067 21474998.032
+ 43.900 38.200
+ -21181614.863 7 -16505147.193 7 20568841.367 20568838.183 20568840.302
+ 44.500 45.600
+ -15775874.954 8 -12292884.319 7 21200079.917 21200077.689 21200079.344
+ 48.000 42.500
+ -6482500.262 5 -5051295.609 4 23481910.529 23481908.862 23481909.826
+ 30.800 26.200
+ 06 1 1 10 6 30.0000000 0 6G23G20G 1G16G25G 6
+ -14843272.242 7 -11566185.816 6 21835840.530 21835834.974 21835839.352
+ 44.100 37.800
+ -12884750.765 6 -10040066.846 5 22195823.513 22195821.541 22195822.452
+ 39.100 32.100
+ -14558829.334 7 -11344539.801 6 21488158.477 21488156.815 21488157.682
+ 44.100 38.100
+ -21223700.425 7 -16537941.134 7 20560832.822 20560829.644 20560831.706
+ 44.700 45.800
+ -15735518.736 7 -12261437.916 7 21207759.512 21207757.214 21207758.785
+ 47.800 42.400
+ -6465123.049 5 -5037754.925 4 23485217.215 23485215.996 23485216.354
+ 31.100 26.800
+ 06 1 1 10 7 0.0000000 0 6G23G20G 1G16G25G 6
+ -14924562.343 7 -11629528.753 6 21820371.605 21820366.008 21820370.286
+ 43.900 37.900
+ -12835943.893 6 -10002035.538 5 22205111.717 22205109.082 22205110.431
+ 39.300 31.600
+ -14489290.976 7 -11290354.078 6 21501391.477 21501389.514 21501390.422
+ 44.000 38.300
+ -21265271.268 7 -16570333.990 7 20552922.001 20552918.998 20552920.930
+ 44.600 45.900
+ -15694933.601 7 -12229813.136 7 21215482.268 21215480.251 21215481.719
+ 47.700 42.400
+ -6447211.868 5 -5023798.160 4 23488626.128 23488623.998 23488625.546
+ 32.300 25.900
+ 06 1 1 10 7 30.0000000 0 6G23G20G 1G16G25G 6
+ -15005545.038 7 -11692632.146 6 21804960.779 21804955.306 21804959.678
+ 43.800 37.900
+ -12786617.407 6 -9963599.330 5 22214498.152 22214495.457 22214496.975
+ 39.200 30.800
+ -14419369.091 7 -11235869.509 6 21514696.761 21514695.331 21514696.005
+ 43.900 38.500
+ -21306327.041 7 -16602325.492 7 20545109.280 20545106.320 20545108.282
+ 44.700 45.900
+ -15654119.928 7 -12198010.277 7 21223249.125 21223246.858 21223248.423
+ 47.700 42.200
+ -6428767.054 5 -5009425.580 4 23492135.238 23492134.106 23492134.823
+ 30.600 26.800
+ 06 1 1 10 8 0.0000000 0 6G23G20G 1G16G25G 6
+ -15086217.812 7 -11755494.056 6 21789609.648 21789603.902 21789608.358
+ 44.300 37.900
+ -12736773.328 6 -9924759.794 5 22223983.124 22223980.604 22223981.816
+ 39.100 31.100
+ -14349064.758 7 -11181086.921 6 21528075.080 21528073.788 21528074.422
+ 43.600 38.300
+ -21346866.960 7 -16633915.028 7 20537395.064 20537391.778 20537393.817
+ 44.500 46.000
+ -15613077.959 7 -12166029.522 7 21231059.066 21231056.806 21231058.360
+ 47.500 42.200
+ -6409789.058 5 -4994637.546 4 23495747.530 23495745.585 23495746.470
+ 31.000 25.600
+ 06 1 1 10 8 30.0000000 0 6G23G20G 1G16G25G 6
+ -15166578.080 7 -11818112.441 6 21774317.287 21774311.786 21774316.101
+ 44.000 38.000
+ -12686413.870 6 -9885518.674 5 22233566.057 22233563.759 22233564.879
+ 39.300 30.600
+ -14278378.863 7 -11126007.018 6 21541526.359 21541524.842 21541525.520
+ 43.500 37.700
+ -21386890.526 7 -16665102.214 7 20529778.720 20529775.500 20529777.623
+ 44.600 46.100
+ -15571808.196 7 -12133871.268 7 21238912.315 21238910.162 21238911.710
+ 47.700 42.100
+ -6390278.281 5 -4979434.334 4 23499459.482 23499457.704 23499458.670
+ 30.600 24.900
+ 06 1 1 10 9 0.0000000 0 6G23G20G 1G16G25G 6
+ -15246623.569 7 -11880485.545 6 21759085.416 21759079.684 21759084.197
+ 44.600 38.200
+ -12635541.220 6 -9845877.658 5 22243247.005 22243244.536 22243245.818
+ 39.100 31.300
+ -14207312.489 7 -11070630.630 6 21555050.000 21555048.247 21555049.012
+ 43.000 37.700
+ -21426397.031 7 -16695886.487 7 20522260.847 20522257.731 20522259.732
+ 44.500 46.300
+ -15530310.879 7 -12101535.699 7 21246809.128 21246806.972 21246808.480
+ 47.700 42.100
+ -6370235.036 5 -4963816.209 4 23503274.223 23503271.726 23503273.311
+ 31.100 24.900
+ 06 1 1 10 9 30.0000000 0 6G23G20G 1G16G25G 6
+ -15326351.770 7 -11942611.421 6 21743913.585 21743907.824 21743912.315
+ 44.300 38.100
+ -12584157.969 6 -9805838.782 5 22253024.947 22253022.622 22253023.680
+ 38.700 31.100
+ -14135866.638 7 -11014958.555 6 21568645.667 21568644.101 21568644.655
+ 43.100 38.000
+ -21465386.003 7 -16726267.486 7 20514841.501 20514838.339 20514840.360
+ 44.400 46.300
+ -15488586.396 7 -12069023.114 7 21254749.239 21254746.849 21254748.549
+ 47.900 42.000
+ -6349659.821 5 -4947783.591 4 23507189.176 23507187.022 23507188.068
+ 30.200 24.200
+ 06 1 1 10 10 0.0000000 0 6G23G20G 1G16G25G 6
+ -15405760.494 7 -12004488.350 6 21728803.007 21728796.969 21728801.600
+ 44.900 38.100
+ -12532266.167 6 -9765403.630 5 22262899.617 22262897.398 22262898.299
+ 38.600 31.000
+ -14064042.433 7 -10958991.655 6 21582313.540 21582311.703 21582312.482
+ 42.800 37.600
+ -21503857.235 7 -16756245.048 7 20507520.591 20507517.440 20507519.474
+ 44.400 46.400
+ -15446635.092 7 -12036333.784 6 21262732.168 21262729.897 21262731.481
+ 47.800 41.900
+ -6328553.052 5 -4931336.745 3 23511206.011 23511203.489 23511205.237
+ 32.000 23.000
+ 06 1 1 10 10 30.0000000 0 6G23G20G 1G16G25G 6
+ -15484846.988 7 -12066114.192 6 21713752.900 21713747.252 21713751.615
+ 44.300 38.300
+ -12479867.794 6 -9724573.750 5 22272870.736 22272868.451 22272869.452
+ 38.900 31.000
+ -13991840.780 7 -10902730.636 6 21596053.099 21596051.203 21596052.015
+ 42.900 37.700
+ -21541809.723 7 -16785818.397 7 20500298.398 20500295.361 20500297.371
+ 44.400 46.600
+ -15404457.236 7 -12003467.929 6 21270758.545 21270756.101 21270757.709
+ 47.600 41.900
+ -6306915.202 5 -4914476.091 4 23515324.096 23515321.642 23515323.040
+ 31.000 24.200
+ 06 1 1 10 11 0.0000000 0 6G23G20G 1G16G25G 6
+ -15563608.665 7 -12127486.929 6 21698764.980 21698759.558 21698763.771
+ 44.300 38.900
+ -12426965.119 6 -9683350.899 5 22282937.598 22282935.554 22282936.490
+ 39.200 30.800
+ -13919262.745 7 -10846176.338 6 21609863.981 21609862.366 21609863.025
+ 42.600 37.400
+ -21579243.237 7 -16814987.344 7 20493175.066 20493172.035 20493174.005
+ 44.400 46.600
+ -15362053.211 7 -11970425.830 7 21278827.386 21278825.318 21278826.730
+ 47.600 42.000
+ -6284746.644 5 -4897201.875 3 23519542.426 23519539.147 23519541.470
+ 32.300 21.100
+ 06 1 1 10 11 30.0000000 0 6G23G20G 1G16G25G 6
+ -15642043.698 7 -12188605.128 6 21683839.160 21683833.958 21683837.924
+ 44.200 39.000
+ -12373560.436 6 -9641736.878 5 22293100.647 22293097.863 22293099.229
+ 38.900 30.600
+ -13846309.382 7 -10789329.575 6 21623746.176 21623744.920 21623745.531
+ 42.800 37.500
+ -21616157.413 7 -16843751.618 7 20486150.658 20486147.449 20486149.544
+ 44.400 46.600
+ -15319423.299 7 -11937207.719 7 21286940.000 21286937.605 21286939.228
+ 47.700 42.000
+ -6262048.062 5 -4879514.656 3 23523861.500 23523858.985 23523860.577
+ 31.000 22.100
+ 06 1 1 10 12 0.0000000 0 6G23G20G 1G16G25G 6
+ -15720149.596 7 -12249466.864 6 21668976.526 21668970.693 21668975.172
+ 44.800 38.400
+ -12319656.049 6 -9599733.479 5 22303358.172 22303355.602 22303356.994
+ 38.900 30.800
+ -13772981.701 7 -10732191.135 6 21637700.235 21637698.666 21637699.438
+ 42.800 37.100
+ -21652551.551 7 -16872110.665 7 20479225.112 20479221.849 20479223.863
+ 44.000 46.700
+ -15276567.918 7 -11903813.915 6 21295094.995 21295092.636 21295094.293
+ 47.600 41.800
+ -6238819.786 5 -4861414.677 3 23528281.999 23528278.666 23528281.150
+ 32.700 23.400
+ 06 1 1 10 12 30.0000000 0 6G23G20G 1G16G25G 6
+ -15797923.740 7 -12310070.101 6 21654176.263 21654170.817 21654175.137
+ 44.800 38.500
+ -12265254.329 6 -9557342.549 5 22313710.792 22313707.881 22313709.414
+ 39.100 31.000
+ -13699280.667 7 -10674761.764 6 21651725.046 21651723.433 21651724.274
+ 42.900 36.700
+ -21688425.291 7 -16900064.208 7 20472398.296 20472395.262 20472397.199
+ 44.100 46.700
+ -15233487.253 7 -11870244.571 6 21303293.036 21303290.546 21303292.235
+ 47.500 41.600
+ -6215062.407 5 -4842902.444 4 23532802.915 23532800.120 23532802.035
+ 32.600 24.200
+ 06 1 1 10 13 0.0000000 0 6G23G20G 1G16G25G 6
+ -15875363.573 7 -12370412.826 6 21639440.015 21639434.463 21639438.718
+ 44.700 38.600
+ -12210357.406 6 -9514565.744 5 22324157.107 22324154.455 22324155.905
+ 38.900 30.600
+ -13625207.410 7 -10617042.357 6 21665820.119 21665819.254 21665819.718
+ 42.300 36.600
+ -21723778.393 7 -16927612.053 7 20465670.798 20465667.829 20465669.725
+ 43.900 47.000
+ -15190181.729 7 -11836500.003 6 21311533.471 21311531.376 21311532.896
+ 47.600 41.800
+ -6190776.531 5 -4823978.373 4 23537423.779 23537421.538 23537423.004
+ 31.800 24.600
+ 06 1 1 10 13 30.0000000 0 6G23G20G 1G16G25G 6
+ -15952466.693 7 -12430493.177 6 21624767.949 21624762.162 21624766.688
+ 45.400 38.600
+ -12154967.933 6 -9471405.124 5 22334697.192 22334694.826 22334696.036
+ 39.100 31.000
+ -13550763.101 7 -10559033.818 6 21679986.344 21679985.436 21679986.097
+ 42.600 36.600
+ -21758610.291 7 -16954753.766 7 20459042.545 20459039.499 20459041.492
+ 44.000 47.000
+ -15146651.680 7 -11802580.488 6 21319817.220 21319814.903 21319816.470
+ 47.500 41.500
+ -6165962.774 5 -4804642.986 3 23542145.425 23542143.166 23542144.735
+ 31.500 23.000
+ 06 1 1 10 14 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16029230.837 7 -12490309.395 6 21610160.256 21610154.622 21610158.927
+ 45.300 39.000
+ -186090.258 3 -145005.430 1 24570035.982 24570034.109 24570035.604
+ 22.100 9.000
+ -12099088.175 6 -9427862.464 4 22345330.960 22345328.480 22345329.668
+ 38.600 29.900
+ -13475948.920 7 -10500737.061 6 21694222.806 21694222.287 21694222.753
+ 42.600 36.700
+ -21792920.602 7 -16981489.051 7 20452513.533 20452510.353 20452512.434
+ 43.900 47.000
+ -15102897.400 7 -11768486.247 6 21328143.242 21328140.992 21328142.661
+ 47.500 41.400
+ -6140621.674 5 -4784896.674 4 23546967.863 23546965.975 23546966.926
+ 31.300 25.300
+ 06 1 1 10 14 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16105653.503 7 -12549859.526 6 21595617.338 21595611.692 21595616.118
+ 45.300 38.500
+ -293364.253 3 -228595.569 3 24549622.175 24549620.180 24549621.698
+ 20.500 19.900
+ -12042720.493 6 -9383939.623 5 22356057.207 22356054.726 22356056.050
+ 38.000 30.200
+ -13400765.902 7 -10442152.905 6 21708529.778 21708528.967 21708529.749
+ 42.700 36.100
+ -21826708.995 7 -17007817.648 7 20446083.804 20446080.560 20446082.735
+ 44.000 47.000
+ -15058919.245 7 -11734217.556 6 21336512.066 21336509.876 21336511.353
+ 47.300 41.500
+ -6114753.943 5 -4764739.993 4 23551890.760 23551888.505 23551889.778
+ 32.000 24.900
+ 06 1 1 10 15 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16181732.482 7 -12609141.852 6 21581140.004 21581134.268 21581138.805
+ 45.300 38.200
+ -400573.152 3 -312134.933 2 24529221.369 24529218.532 24529220.777
+ 19.900 15.100
+ -11985867.235 6 -9339638.404 4 22366876.225 22366873.411 22366874.902
+ 38.300 29.700
+ -13325215.235 7 -10383282.263 6 21722906.653 21722905.994 21722906.491
+ 42.200 36.700
+ -21859975.087 7 -17033739.262 7 20439753.309 20439750.265 20439752.328
+ 43.800 47.100
+ -15014717.516 7 -11699774.652 6 21344923.543 21344921.079 21344922.769
+ 47.600 41.300
+ -6088360.119 5 -4744173.380 4 23556912.544 23556911.058 23556911.993
+ 31.100 24.200
+ 06 1 1 10 15 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16257464.981 7 -12668154.192 6 21566728.907 21566723.044 21566727.554
+ 45.600 38.900
+ -507714.880 2 -395622.010 2 24508832.876 24508829.941 24508832.459
+ 17.800 17.800
+ -11928530.686 6 -9294960.596 4 22377786.871 22377784.246 22377785.780
+ 38.900 29.700
+ -13249298.030 7 -10324126.010 6 21737353.193 21737352.384 21737353.087
+ 42.200 36.300
+ -21892718.880 7 -17059253.890 7 20433522.584 20433519.294 20433521.468
+ 44.000 47.100
+ -14970292.424 7 -11665157.695 6 21353377.188 21353374.914 21353376.446
+ 47.300 41.300
+ -6061440.968 5 -4723197.422 4 23562035.617 23562033.753 23562034.850
+ 31.800 24.200
+ 06 1 1 10 16 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16332848.651 7 -12726894.711 6 21552383.610 21552377.970 21552382.229
+ 45.100 39.000
+ -614787.251 3 -479055.009 3 24488456.986 24488455.114 24488457.282
+ 23.400 22.100
+ -11870713.448 6 -9249908.221 4 22388789.294 22388786.547 22388788.096
+ 38.800 29.200
+ -13173015.486 7 -10264685.081 6 21751869.338 21751868.697 21751869.242
+ 42.100 36.600
+ -21924939.889 7 -17084361.152 7 20427391.164 20427387.818 20427390.015
+ 43.800 47.300
+ -14925644.413 7 -11630367.042 6 21361873.519 21361871.127 21361872.780
+ 47.500 41.100
+ -6033997.169 5 -4701812.631 4 23567257.606 23567255.802 23567256.898
+ 31.000 24.900
+ 06 1 1 10 16 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16407881.307 7 -12785361.719 6 21538105.565 21538099.829 21538104.201
+ 45.500 39.700
+ -721788.307 3 -562432.461 3 24468096.215 24468093.446 24468095.418
+ 21.600 22.600
+ -11812417.967 6 -9204483.191 4 22399882.378 22399879.787 22399881.241
+ 38.400 28.800
+ -13096368.660 7 -10204960.290 6 21766455.389 21766453.990 21766454.779
+ 42.300 36.100
+ -21956637.516 7 -17109060.586 7 20421359.110 20421355.957 20421358.017
+ 43.700 47.500
+ -14880773.773 7 -11595402.906 6 21370411.911 21370409.687 21370411.253
+ 47.400 41.200
+ -6006029.445 5 -4680019.595 4 23572580.282 23572578.260 23572579.403
+ 31.800 25.300
+ 06 1 1 10 17 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16482560.275 7 -12843553.115 6 21523894.099 21523888.862 21523892.889
+ 45.100 39.400
+ -828715.922 3 -645752.669 3 24447748.016 24447745.161 24447747.784
+ 19.300 19.900
+ -11753646.585 6 -9158687.325 5 22411066.279 22411063.847 22411065.148
+ 38.300 30.200
+ -13019358.772 6 -10144952.598 5 21781109.736 21781108.519 21781109.142
+ 41.700 35.800
+ -21987811.958 7 -17133352.340 7 20415426.751 20415423.712 20415425.768
+ 43.800 47.600
+ -14835680.807 7 -11560265.527 6 21378992.997 21378990.585 21378992.308
+ 47.500 40.900
+ -5977538.488 5 -4657818.841 3 23578002.004 23577999.050 23578000.919
+ 31.500 23.800
+ 06 1 1 10 17 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16556883.158 7 -12901467.052 6 21509751.039 21509745.442 21509749.802
+ 45.300 39.000
+ -935568.195 3 -729014.161 2 24427413.704 24427411.754 24427414.002
+ 19.300 15.100
+ -11694401.747 6 -9112522.547 5 22422340.239 22422337.936 22422338.994
+ 37.900 30.800
+ -12941987.032 6 -10084662.943 6 21795833.713 21795831.923 21795832.745
+ 41.700 36.400
+ -22018462.681 7 -17157236.008 7 20409594.161 20409591.066 20409593.062
+ 43.800 47.600
+ -14790365.803 7 -11524955.133 6 21387616.237 21387613.722 21387615.455
+ 47.400 40.700
+ -5948525.059 5 -4635210.978 4 23583522.590 23583520.830 23583521.664
+ 30.600 24.900
+ 06 1 1 10 18 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16630847.659 7 -12959101.726 6 21495676.182 21495670.602 21495674.938
+ 45.500 39.500
+ -1042343.314 2 -812215.575 1 24407096.116 24407092.456 24407096.143
+ 12.600 9.000
+ -11634685.924 6 -9065990.766 5 22433704.016 22433701.588 22433702.745
+ 38.400 30.800
+ -12864254.599 6 -10024092.238 6 21810625.775 21810624.082 21810624.747
+ 41.700 36.000
+ -22048589.547 7 -17180711.477 7 20403861.085 20403858.105 20403860.075
+ 43.800 47.800
+ -14744829.131 7 -11489472.016 6 21396281.358 21396279.005 21396280.769
+ 47.500 40.700
+ -5918989.959 5 -4612196.618 4 23589143.051 23589141.088 23589142.397
+ 31.800 24.900
+ 06 1 1 10 18 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16704451.377 7 -13016455.274 6 21481670.002 21481664.298 21481668.742
+ 45.900 39.300
+ -1149038.749 3 -895354.846 1 24386793.211 24386789.559 24386792.755
+ 22.600 6.500
+ -11574501.709 6 -9019093.996 5 22445156.411 22445154.136 22445155.298
+ 38.400 30.100
+ -12786162.634 6 -9963241.377 5 21825486.456 21825484.364 21825485.149
+ 41.400 35.900
+ -22078192.238 7 -17203778.497 7 20398228.151 20398224.924 20398227.003
+ 43.700 47.900
+ -14699070.966 7 -11453816.302 6 21404989.214 21404986.473 21404988.412
+ 47.500 40.700
+ -5888933.989 5 -4588776.369 4 23594861.995 23594860.511 23594861.176
+ 31.000 25.600
+ 06 1 1 10 19 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16777691.623 7 -13073525.598 6 21467732.785 21467727.095 21467731.536
+ 45.900 39.500
+ -1255652.519 4 -978430.531 1 24366505.658 24366501.736 24366505.413
+ 25.600 11.000
+ -11513851.603 6 -8971834.192 4 22456697.914 22456695.287 22456696.569
+ 38.300 29.700
+ -12707712.323 6 -9902111.275 5 21840414.931 21840412.793 21840413.676
+ 40.900 35.300
+ -22107270.592 7 -17226436.945 7 20392694.548 20392691.411 20392693.533
+ 43.700 47.800
+ -14653091.690 7 -11417988.297 6 21413738.690 21413736.135 21413737.987
+ 47.400 40.800
+ -5858357.978 5 -4564950.920 4 23600680.862 23600679.067 23600680.030
+ 31.100 25.600
+ 06 1 1 10 19 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16850566.228 7 -13130311.007 6 21453865.126 21453859.674 21453863.856
+ 45.800 40.000
+ -1362182.554 4 -1061440.973 1 24346233.537 24346229.929 24346233.398
+ 25.600 11.000
+ -11452738.122 6 -8924213.315 4 22468327.154 22468324.441 22468326.016
+ 38.600 28.600
+ -12628904.990 6 -9840702.979 5 21855411.443 21855409.405 21855410.285
+ 41.200 35.400
+ -22135824.629 7 -17248686.828 7 20387260.933 20387257.730 20387259.833
+ 43.800 47.900
+ -14606891.684 7 -11381988.292 6 21422530.026 21422527.670 21422529.365
+ 47.300 40.500
+ -5827262.430 5 -4540720.605 3 23606598.292 23606596.078 23606597.398
+ 31.000 23.800
+ 06 1 1 10 20 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16923072.585 7 -13186809.459 6 21440067.611 21440062.103 21440066.232
+ 45.500 39.700
+ -1468626.772 4 -1144384.521 3 24325978.064 24325974.587 24325977.872
+ 26.800 19.300
+ -11391163.855 6 -8876233.385 4 22480044.314 22480041.765 22480043.188
+ 37.700 28.100
+ -12549741.821 6 -9779017.411 5 21870475.559 21870473.678 21870474.495
+ 41.300 35.400
+ -22163854.111 7 -17270527.977 7 20381927.090 20381923.884 20381925.947
+ 43.700 47.900
+ -14560471.176 7 -11345816.467 6 21431363.403 21431361.191 21431362.829
+ 47.300 40.700
+ -5795648.575 5 -4516086.440 3 23612614.455 23612611.968 23612613.449
+ 31.000 23.000
+ 06 1 1 10 20 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16995208.538 7 -13243019.292 6 21426340.936 21426335.099 21426339.531
+ 46.100 39.700
+ -1574982.991 4 -1227259.536 3 24305738.593 24305736.141 24305738.264
+ 25.900 22.600
+ -11329131.485 6 -8827896.503 4 22491848.825 22491846.393 22491847.622
+ 37.100 28.800
+ -12470224.218 6 -9717055.650 5 21885607.104 21885605.329 21885606.228
+ 41.100 35.600
+ -22191358.706 7 -17291960.120 8 20376693.224 20376689.972 20376692.067
+ 43.400 48.000
+ -14513830.418 7 -11309473.021 6 21440239.253 21440236.699 21440238.378
+ 47.100 40.500
+ -5763517.119 5 -4491048.946 3 23618728.949 23618726.246 23618728.107
+ 31.600 23.000
+ 06 1 1 10 21 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17066971.556 7 -13298938.528 6 21412684.830 21412679.157 21412683.506
+ 46.500 40.000
+ -1681249.121 3 -1310064.271 4 24285514.839 24285514.175 24285515.311
+ 20.500 24.900
+ -11266643.350 5 -8779204.485 4 22503739.819 22503737.697 22503738.509
+ 35.900 29.200
+ -12390353.339 6 -9654818.620 5 21900806.398 21900804.245 21900805.293
+ 41.000 35.200
+ -22218338.746 7 -17312983.519 8 20371558.963 20371555.850 20371557.860
+ 43.300 48.100
+ -14466969.852 7 -11272958.293 6 21449155.991 21449154.007 21449155.404
+ 47.100 40.600
+ -5730868.909 5 -4465608.774 4 23624941.728 23624939.337 23624940.751
+ 31.300 24.200
+ 06 1 1 10 21 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17138359.277 7 -13354565.324 6 21399099.991 21399094.296 21399098.746
+ 46.100 39.500
+ -1787423.206 3 -1392797.312 3 24265310.674 24265309.329 24265311.574
+ 19.900 23.000
+ -11203702.114 5 -8730159.398 4 22515716.830 22515715.083 22515715.675
+ 35.700 28.800
+ -12310130.434 6 -9592307.276 5 21916071.830 21916070.260 21916070.999
+ 40.900 34.800
+ -22244793.586 7 -17333597.669 8 20366524.631 20366521.657 20366523.539
+ 43.200 48.100
+ -14419889.671 7 -11236272.438 6 21458115.259 21458113.053 21458114.557
+ 47.000 40.300
+ -5697705.052 5 -4439766.787 4 23631252.748 23631249.941 23631251.827
+ 31.500 24.600
+ 06 1 1 10 22 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17209369.124 7 -13409897.671 6 21385587.132 21385581.721 21385585.894
+ 46.000 40.000
+ -1893503.131 3 -1475456.990 3 24245127.311 24245123.083 24245126.298
+ 22.600 21.100
+ -11140310.276 6 -8680763.192 4 22527780.448 22527778.314 22527779.059
+ 36.600 29.900
+ -12229556.832 6 -9529522.666 5 21931404.592 21931403.114 21931403.679
+ 40.700 35.100
+ -22270723.441 7 -17353802.742 8 20361590.530 20361587.322 20361589.389
+ 43.100 48.200
+ -14372590.210 7 -11199415.717 6 21467115.921 21467113.861 21467115.344
+ 47.300 40.600
+ -5664026.369 5 -4413523.668 4 23637661.094 23637659.439 23637660.484
+ 31.000 26.500
+ 06 1 1 10 22 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17279998.642 7 -13464933.656 6 21372146.837 21372141.412 21372145.617
+ 46.000 40.400
+ -1999486.572 3 -1558041.455 3 24224958.712 24224954.955 24224958.106
+ 18.600 20.500
+ -11076470.557 6 -8631017.983 4 22539928.403 22539926.542 22539927.391
+ 37.700 29.200
+ -12148633.816 6 -9466465.783 5 21946803.485 21946801.918 21946802.684
+ 40.600 34.800
+ -22296128.225 7 -17373598.669 8 20356756.114 20356752.914 20356755.041
+ 43.500 48.300
+ -14325071.709 7 -11162388.315 6 21476158.644 21476156.304 21476157.921
+ 47.100 40.500
+ -5629833.787 5 -4386880.101 4 23644167.300 23644165.645 23644166.706
+ 30.200 24.200
+ 06 1 1 10 23 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17350245.575 7 -13519671.527 6 21358779.420 21358773.777 21358778.069
+ 46.100 40.100
+ -2105371.491 3 -1640549.148 3 24204808.736 24204805.935 24204808.516
+ 23.000 18.600
+ -11012185.573 6 -8580925.812 4 22552161.875 22552159.241 22552160.650
+ 38.000 27.900
+ -12067362.580 6 -9403137.559 5 21962268.704 21962267.494 21962267.994
+ 40.200 35.100
+ -22321007.822 7 -17392985.362 8 20352021.740 20352018.569 20352020.535
+ 43.100 48.500
+ -14277334.427 7 -11125190.431 6 21485242.685 21485240.504 21485241.983
+ 46.800 40.500
+ -5595128.356 5 -4359836.895 4 23650771.669 23650770.531 23650770.797
+ 30.600 26.200
+ 06 1 1 10 23 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17420107.504 7 -13574109.388 6 21345485.088 21345479.509 21345483.769
+ 46.000 40.100
+ -2211155.621 4 -1722978.358 2 24184678.237 24184675.814 24184678.529
+ 24.200 15.100
+ -10947457.940 6 -8530488.722 4 22564479.077 22564476.464 22564477.901
+ 38.100 27.100
+ -11985744.464 6 -9339539.044 5 21977800.670 21977798.957 21977799.607
+ 39.900 34.700
+ -22345362.144 7 -17411962.747 8 20347387.097 20347384.097 20347385.992
+ 43.400 48.500
+ -14229378.741 7 -11087822.368 6 21494368.157 21494366.141 21494367.602
+ 46.800 40.500
+ -5559911.097 5 -4332394.888 4 23657473.350 23657471.627 23657472.371
+ 30.200 24.900
+ 06 1 1 10 24 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17489582.110 7 -13628245.445 6 21332264.746 21332258.913 21332263.501
+ 46.500 40.200
+ -2316836.892 4 -1805327.427 2 24164568.626 24164565.322 24164568.244
+ 25.900 16.100
+ -10882290.351 6 -8479708.804 4 22576879.842 22576877.525 22576878.634
+ 37.200 27.100
+ -11903780.865 6 -9275671.322 5 21993397.272 21993396.311 21993396.550
+ 39.800 35.200
+ -22369191.388 7 -17430530.983 8 20342852.522 20342849.511 20342851.413
+ 43.100 48.500
+ -14181204.926 7 -11050284.334 6 21503535.485 21503533.341 21503534.842
+ 47.000 40.300
+ -5524182.936 5 -4304554.755 4 23664272.174 23664270.581 23664271.508
+ 30.400 25.900
+ 06 1 1 10 24 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17558666.913 7 -13682077.758 6 21319118.231 21319112.511 21319116.879
+ 46.400 40.300
+ -2422413.302 4 -1887594.734 2 24144479.428 24144474.586 24144478.318
+ 26.200 15.100
+ -10816685.793 6 -8428588.388 4 22589364.003 22589361.806 22589362.890
+ 37.100 28.400
+ -11821472.945 6 -9211535.302 5 22009060.321 22009058.949 22009059.501
+ 40.200 35.100
+ -22392495.466 7 -17448689.996 8 20338418.096 20338414.800 20338416.913
+ 43.100 48.600
+ -14132813.328 7 -11012576.596 6 21512744.090 21512741.939 21512743.352
+ 46.800 40.400
+ -5487944.839 4 -4276317.283 4 23671167.867 23671166.242 23671167.053
+ 29.200 24.200
+ 06 1 1 10 25 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17627359.445 7 -13735604.406 6 21306046.520 21306040.790 21306045.234
+ 46.600 40.600
+ -2527882.169 4 -1969778.312 2 24124408.190 24124404.729 24124407.836
+ 27.100 13.900
+ -10750646.395 6 -8377129.135 4 22601931.209 22601928.700 22601929.900
+ 36.800 27.600
+ -11738822.151 6 -9147132.093 5 22024787.788 22024786.569 22024787.260
+ 39.900 34.300
+ -22415274.458 7 -17466439.859 8 20334083.194 20334080.066 20334082.152
+ 43.100 48.700
+ -14084204.118 7 -10974699.290 6 21521994.035 21521991.865 21521993.422
+ 46.900 40.200
+ -5451197.905 5 -4247683.302 4 23678160.940 23678159.582 23678160.136
+ 30.600 26.500
+ 06 1 1 10 25 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17695657.302 7 -13788823.513 6 21293049.813 21293044.108 21293048.474
+ 46.900 40.500
+ -2633241.755 3 -2051876.719 2 24104357.329 24104355.265 24104357.652
+ 23.800 17.000
+ -10684175.012 6 -8325333.276 4 22614580.051 22614577.964 22614578.735
+ 36.000 29.000
+ -11655829.854 6 -9082462.781 5 22040580.327 22040579.845 22040580.165
+ 40.200 35.100
+ -22437528.268 7 -17483780.483 8 20329848.596 20329845.326 20329847.478
+ 43.100 48.700
+ -14035377.667 7 -10936652.712 6 21531285.409 21531283.241 21531284.717
+ 46.800 40.000
+ -5413943.049 4 -4218653.559 3 23685249.898 23685247.978 23685249.026
+ 29.500 22.600
+ 06 1 1 10 26 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17763558.190 7 -13841733.299 6 21280128.592 21280123.000 21280127.395
+ 47.000 40.500
+ -2738489.747 4 -2133888.145 2 24084330.858 24084326.971 24084330.449
+ 25.600 16.100
+ -10617274.430 6 -8273202.978 4 22627310.774 22627308.882 22627309.666
+ 36.200 29.700
+ -11572497.427 6 -9017528.440 5 22056438.209 22056437.341 22056437.822
+ 40.000 34.500
+ -22459257.021 7 -17500711.975 8 20325713.581 20325710.457 20325712.558
+ 43.400 48.700
+ -13986334.118 7 -10898436.961 6 21540618.355 21540615.850 21540617.601
+ 47.000 39.800
+ -5376181.667 4 -4189229.093 4 23692435.056 23692433.895 23692434.503
+ 29.000 24.600
+ 06 1 1 10 26 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -17831059.514 7 -13894331.736 6 21267283.557 21267277.888 21267282.291
+ 46.500 40.500
+ -2843623.816 4 -2215810.809 3 24064324.729 24064321.694 24064324.190
+ 25.600 19.900
+ -10549947.372 5 -8220740.371 5 22640122.971 22640120.871 22640121.571
+ 35.800 30.100
+ -11488826.180 6 -8952330.069 5 22072360.684 22072359.415 22072360.176
+ 40.300 34.000
+ -149407.307 3 -116421.337 2 24528131.526 24528131.414 24528130.678
+ 20.500 15.100
+ -22480460.897 7 -17517234.465 8 20321678.770 20321675.520 20321677.665
+ 43.000 48.900
+ -13937073.928 7 -10860052.401 6 21549992.338 21549989.702 21549991.564
+ 47.000 39.700
+ -5337914.655 4 -4159410.632 4 23699717.455 23699716.131 23699716.989
+ 29.200 24.900
+ 06 1 1 10 27 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -17898159.227 7 -13946617.223 6 21254514.820 21254509.392 21254513.565
+ 46.700 40.800
+ -2948641.685 3 -2297642.901 3 24044339.505 24044337.485 24044339.383
+ 23.000 23.000
+ -10482196.717 5 -8167947.700 4 22653015.200 22653013.368 22653014.091
+ 35.600 29.200
+ -11404817.419 6 -8886868.710 5 22088347.245 22088345.745 22088346.392
+ 39.600 33.600
+ -261477.459 3 -203748.693 2 24506805.049 24506804.836 24506804.304
+ 21.100 15.100
+ -22501140.013 7 -17533348.053 8 20317743.763 20317740.493 20317742.555
+ 43.200 48.800
+ -13887597.296 7 -10821499.183 6 21559407.528 21559404.909 21559406.761
+ 47.100 39.800
+ -5299143.029 5 -4129198.994 4 23707096.117 23707094.140 23707095.352
+ 31.000 24.600
+ 06 1 1 10 27 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -17964854.899 7 -13998587.873 6 21241823.237 21241817.584 21241821.885
+ 46.700 40.900
+ -3053541.367 4 -2379382.917 4 24024377.911 24024375.562 24024377.737
+ 24.200 24.200
+ -10414025.352 6 -8114827.192 4 22665988.278 22665985.957 22665987.023
+ 36.200 28.800
+ -11320472.628 6 -8821145.504 5 22104397.697 22104396.093 22104396.771
+ 39.700 33.900
+ -373557.554 3 -291083.783 3 24485478.193 24485476.628 24485476.789
+ 23.800 19.300
+ -22521294.352 7 -17549052.724 8 20313908.472 20313905.294 20313907.351
+ 43.100 49.100
+ -13837904.538 7 -10782777.555 6 21568863.525 21568861.133 21568862.731
+ 46.700 39.700
+ -5259867.978 4 -4098595.058 3 23714569.440 23714567.588 23714568.477
+ 27.900 23.400
+ 06 1 1 10 28 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18031144.024 7 -14050241.736 6 21229208.769 21229203.225 21229207.452
+ 46.700 40.900
+ -3158320.596 3 -2461029.028 4 24004439.253 24004436.845 24004439.039
+ 22.600 25.600
+ -10345435.397 6 -8061380.503 4 22679040.296 22679038.052 22679039.335
+ 36.800 27.900
+ -11235793.189 6 -8755161.545 5 22120511.600 22120510.176 22120510.772
+ 39.300 34.500
+ -485644.800 3 -378424.455 2 24464148.720 24464146.849 24464146.960
+ 19.900 12.600
+ -22540924.034 7 -17564348.574 8 20310173.145 20310169.828 20310172.050
+ 43.100 49.100
+ -13787995.885 7 -10743887.697 6 21578360.763 21578358.327 21578360.085
+ 46.800 39.700
+ -5220091.079 5 -4067600.049 4 23722139.761 23722137.186 23722138.687
+ 30.600 24.600
+ 06 1 1 10 28 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18097023.940 7 -14101576.734 6 21216672.290 21216666.765 21216670.989
+ 46.900 41.300
+ -3262977.178 4 -2542579.597 3 23984524.185 23984520.937 23984523.867
+ 24.200 23.800
+ -10276429.754 6 -8007609.884 4 22692171.798 22692169.453 22692170.537
+ 36.500 27.100
+ -11150780.487 6 -8688917.905 5 22136689.046 22136687.465 22136688.137
+ 39.200 33.900
+ -597736.520 3 -465768.610 3 24442817.424 24442817.505 24442816.747
+ 23.800 19.300
+ -22560029.419 7 -17579235.882 8 20306537.472 20306534.155 20306536.360
+ 43.200 49.100
+ -13737871.668 7 -10704829.868 6 21587899.337 21587896.733 21587898.566
+ 47.000 39.700
+ -5179812.974 5 -4036214.515 4 23729804.486 23729801.974 23729803.634
+ 31.500 24.900
+ 06 1 1 10 29 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18162492.580 7 -14152591.256 6 21204213.958 21204208.523 21204212.625
+ 46.900 41.300
+ -3367508.682 4 -2624032.727 3 23964633.036 23964629.501 23964632.446
+ 24.900 23.800
+ -10207011.596 6 -7953517.827 4 22705381.837 22705379.191 22705380.570
+ 37.300 26.200
+ -11065435.924 6 -8622415.655 5 22152929.542 22152927.857 22152928.576
+ 38.900 33.000
+ -709829.748 3 -553113.918 2 24421487.853 24421486.408 24421485.743
+ 20.500 17.800
+ -22578610.719 7 -17593714.808 8 20303001.305 20302998.265 20303000.329
+ 43.000 49.100
+ -13687532.099 7 -10665604.231 6 21597478.712 21597475.948 21597477.857
+ 46.700 39.600
+ -5139035.095 4 -4004439.551 4 23737562.555 23737562.188 23737561.905
+ 28.800 26.500
+ 06 1 1 10 29 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18227547.907 7 -14203283.718 6 21191834.376 21191828.959 21191833.034
+ 46.800 41.400
+ -3471912.750 4 -2705386.523 3 23944764.159 23944762.053 23944764.025
+ 25.300 23.800
+ -10137183.668 6 -7899106.473 4 22718669.442 22718666.845 22718668.381
+ 36.700 26.200
+ -10979760.928 6 -8555655.927 5 22169233.429 22169231.284 22169232.172
+ 38.700 33.600
+ -821921.909 3 -640458.365 2 24400155.779 24400155.674 24400155.017
+ 19.900 13.900
+ -22596667.668 7 -17607785.146 8 20299565.282 20299562.109 20299564.163
+ 42.700 49.100
+ -13636977.509 7 -10626211.048 6 21607098.518 21607096.302 21607097.857
+ 46.500 39.700
+ -5097758.556 4 -3972276.040 4 23745417.215 23745416.469 23745416.402
+ 26.800 24.600
+ 06 1 1 10 30 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18292187.168 7 -14253651.967 6 21179533.648 21179528.271 21179532.352
+ 46.400 41.200
+ -3576187.474 4 -2786639.548 3 23924921.638 23924918.977 23924921.598
+ 27.600 23.800
+ -10066948.432 6 -7844377.733 4 22732034.561 22732032.070 22732033.433
+ 36.600 24.900
+ -10893757.085 6 -8488639.961 5 22185599.499 22185597.636 22185598.134
+ 38.300 33.900
+ -934010.188 3 -727799.858 1 24378825.899 24378825.824 24378825.119
+ 23.000 9.000
+ -22614200.719 7 -17621447.263 8 20296228.677 20296225.687 20296227.647
+ 42.900 49.100
+ -13586208.225 7 -10586650.571 6 21616759.636 21616757.648 21616758.921
+ 46.500 39.700
+ -5055984.823 5 -3939725.057 3 23753367.500 23753365.304 23753366.949
+ 30.100 23.400
+ 06 1 1 10 30 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18356407.781 7 -14303694.006 6 21167313.134 21167307.410 21167311.831
+ 46.900 41.000
+ -3680330.270 4 -2867789.772 3 23905104.648 23905101.571 23905104.304
+ 27.600 22.600
+ -9996308.905 5 -7789333.967 4 22745477.000 22745474.411 22745475.776
+ 35.800 25.300
+ -10807425.845 6 -8421368.894 5 22202027.979 22202025.942 22202026.494
+ 38.400 33.800
+ -1046091.665 4 -815136.061 2 24357498.252 24357497.548 24357496.994
+ 24.600 15.100
+ -22631210.170 7 -17634701.370 8 20292991.954 20292988.858 20292990.864
+ 42.700 49.200
+ -13535224.457 7 -10546922.963 6 21626461.628 21626459.355 21626460.870
+ 46.600 39.700
+ -5013714.940 4 -3906787.492 3 23761410.297 23761409.445 23761409.692
+ 27.900 23.400
+ 06 1 1 10 31 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18420207.819 7 -14353408.320 6 21155172.207 21155166.730 21155171.009
+ 47.000 41.000
+ -3784339.128 4 -2948835.666 3 23885312.013 23885309.073 23885311.647
+ 27.600 22.100
+ -9925268.064 5 -7733977.482 4 22758995.721 22758993.293 22758994.430
+ 35.800 26.200
+ -10720768.645 6 -8353843.823 5 22218518.398 22218516.170 22218516.778
+ 38.100 33.500
+ -1158163.688 4 -902464.852 3 24336171.082 24336171.299 24336170.127
+ 24.200 18.600
+ -22647696.266 7 -17647547.672 8 20289854.903 20289851.613 20289853.770
+ 42.600 49.200
+ -13484026.485 7 -10507028.438 6 21636203.913 21636202.061 21636203.374
+ 46.500 39.700
+ -4970950.124 5 -3873464.257 3 23769549.244 23769546.945 23769548.374
+ 30.400 22.600
+ 06 1 1 10 31 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18483584.785 7 -14402792.973 6 21143112.195 21143106.557 21143110.909
+ 47.200 41.300
+ -3888211.686 4 -3029775.287 2 23865545.374 23865542.854 23865545.294
+ 25.600 17.800
+ -9853828.495 5 -7678310.313 4 22772589.936 22772587.800 22772588.814
+ 35.200 25.900
+ -10633786.941 6 -8286065.888 5 22235070.711 22235068.095 22235069.305
+ 38.800 32.800
+ -1270223.515 3 -989784.149 3 24314846.163 24314846.797 24314845.704
+ 20.500 18.600
+ -22663659.219 7 -17659986.331 8 20286817.169 20286814.034 20286816.093
+ 42.500 49.300
+ -13432614.555 7 -10466967.198 6 21645987.482 21645985.479 21645986.905
+ 46.800 39.700
+ -4927691.710 5 -3839756.390 3 23777780.915 23777778.824 23777780.094
+ 30.100 23.800
+ 06 1 1 10 32 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18546536.599 7 -14451846.333 6 21131132.563 21131127.151 21131131.341
+ 46.900 41.200
+ -3991945.513 4 -3110606.881 2 23845805.448 23845802.258 23845805.231
+ 25.300 12.600
+ -9781993.219 5 -7622334.789 4 22786259.640 22786257.692 22786258.534
+ 35.100 27.400
+ -10546482.288 6 -8218036.306 5 22251683.757 22251681.666 22251682.508
+ 38.300 33.000
+ -1382268.261 3 -1077091.662 3 24293524.181 24293525.080 24293524.172
+ 20.500 20.500
+ -22679099.310 7 -17672017.562 8 20283879.100 20283875.862 20283877.903
+ 42.700 49.400
+ -13380988.888 7 -10426739.407 6 21655811.647 21655809.522 21655810.998
+ 46.800 39.500
+ -4883941.071 4 -3805664.973 3 23786105.646 23786104.047 23786104.842
+ 29.200 22.100
+ 06 1 1 10 32 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18609060.795 7 -14500566.486 6 21119234.897 21119229.181 21119233.504
+ 46.600 41.300
+ -4095538.361 4 -3191328.555 2 23826093.337 23826089.024 23826092.801
+ 24.200 17.800
+ -9709764.929 5 -7566053.043 4 22800004.484 22800002.315 22800003.293
+ 35.200 26.800
+ -10458856.102 6 -8149756.177 5 22268358.054 22268356.467 22268357.133
+ 38.100 32.800
+ -1494295.057 3 -1164385.190 2 24272206.767 24272207.249 24272206.388
+ 23.800 17.800
+ -22694016.960 7 -17683641.704 8 20281040.330 20281037.089 20281039.195
+ 42.500 49.400
+ -13329149.893 7 -10386345.388 6 21665676.295 21665674.086 21665675.665
+ 46.500 39.500
+ -4839699.590 5 -3771191.096 3 23794525.349 23794523.154 23794524.716
+ 30.100 23.800
+ 06 1 1 10 33 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18671154.663 7 -14548951.315 6 21107418.675 21107413.128 21107417.374
+ 46.800 41.400
+ -4198987.784 4 -3271938.566 3 23806406.632 23806403.921 23806406.347
+ 25.600 21.100
+ -9637146.546 5 -7509467.323 4 22813823.494 22813821.223 22813822.280
+ 34.900 27.100
+ -10370909.838 6 -8081226.636 5 22285093.066 22285092.197 22285092.600
+ 37.700 33.000
+ -1606300.998 3 -1251662.464 2 24250892.764 24250892.329 24250892.122
+ 20.500 16.100
+ -22708412.236 7 -17694858.793 8 20278300.894 20278297.797 20278299.802
+ 42.800 49.400
+ -13277097.696 7 -10345785.236 6 21675581.786 21675579.237 21675580.974
+ 46.600 39.400
+ -4794968.132 5 -3736335.428 3 23803037.047 23803035.268 23803036.507
+ 30.100 23.400
+ 06 1 1 10 33 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18732816.268 7 -14596999.320 6 21095684.994 21095679.316 21095683.719
+ 47.100 41.400
+ -4302291.653 4 -3352435.070 3 23786748.859 23786745.941 23786748.529
+ 25.900 22.100
+ -9564141.052 5 -7452579.965 4 22827716.042 22827713.658 22827714.665
+ 34.100 26.200
+ -10282645.057 6 -8012448.915 5 22301889.036 22301888.006 22301888.854
+ 37.800 32.100
+ -1718283.326 4 -1338921.349 3 24229583.718 24229583.283 24229582.632
+ 24.900 18.600
+ -22722285.607 7 -17705669.209 8 20275660.859 20275657.790 20275659.782
+ 42.800 49.400
+ -13224832.737 7 -10305059.297 6 21685527.389 21685524.992 21685526.583
+ 46.400 39.500
+ -4749748.606 4 -3701099.408 3 23811642.082 23811640.243 23811641.427
+ 29.500 22.600
+ 06 1 1 10 34 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18794043.184 7 -14644708.602 6 21084033.674 21084028.163 21084032.491
+ 47.200 41.400
+ -4405447.620 4 -3432816.336 4 23767119.325 23767116.418 23767118.955
+ 27.100 24.200
+ -9490751.073 5 -7395393.003 4 22841681.106 22841679.266 22841679.911
+ 33.000 26.200
+ -10194063.283 6 -7943424.167 5 22318745.400 22318744.758 22318745.215
+ 37.700 32.100
+ -1830239.319 3 -1426159.724 3 24208277.380 24208278.864 24208277.846
+ 21.100 20.500
+ -22735637.439 7 -17716073.228 8 20273120.190 20273116.967 20273119.121
+ 42.700 49.400
+ -13172355.147 7 -10264167.673 6 21695513.122 21695511.098 21695512.601
+ 46.400 39.100
+ -4704042.015 4 -3665483.899 4 23820340.020 23820338.339 23820339.161
+ 28.600 25.300
+ 06 1 1 10 34 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18854833.091 7 -14692077.362 6 21072465.943 21072460.404 21072464.688
+ 47.300 41.600
+ -4508453.280 4 -3513080.471 4 23747517.346 23747514.941 23747516.973
+ 25.300 24.900
+ -9416979.745 5 -7337908.879 4 22855719.531 22855717.323 22855718.362
+ 33.800 25.600
+ -10105166.038 6 -7874153.599 5 22335662.212 22335661.498 22335661.920
+ 37.600 32.100
+ -1942166.021 3 -1513375.229 2 24186980.471 24186979.103 24186979.150
+ 21.600 17.800
+ -22748468.095 7 -17726071.135 8 20270678.626 20270675.372 20270677.458
+ 42.700 49.400
+ -13119665.225 7 -10223110.590 6 21705539.810 21705537.605 21705539.098
+ 46.100 38.900
+ -4657849.948 5 -3629490.116 3 23829129.989 23829128.196 23829129.350
+ 31.100 23.800
+ 06 1 1 10 35 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18915183.625 7 -14739103.751 6 21060981.517 21060976.021 21060980.353
+ 47.400 41.800
+ -4611306.258 4 -3593225.619 3 23727945.530 23727942.214 23727945.277
+ 27.100 23.000
+ -9342829.959 5 -7280129.859 4 22869830.259 22869827.854 22869828.948
+ 34.400 26.200
+ -10015954.778 6 -7804638.347 5 22352638.293 22352637.559 22352637.866
+ 36.800 31.600
+ -2054060.791 3 -1600565.930 3 24165687.275 24165686.472 24165685.741
+ 21.100 18.600
+ -22760777.920 7 -17735663.197 8 20268336.196 20268332.963 20268335.086
+ 42.700 49.500
+ -13066763.266 7 -10181888.288 6 21715606.695 21715604.462 21715606.032
+ 46.100 39.100
+ -4611173.675 5 -3593118.963 3 23838011.993 23838010.041 23838011.198
+ 30.400 22.100
+ 06 1 1 10 35 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18975092.652 7 -14785786.107 6 21049581.347 21049575.710 21049580.106
+ 47.500 41.800
+ -4714004.382 4 -3673250.161 3 23708402.971 23708399.572 23708402.711
+ 28.800 23.800
+ -9268304.517 5 -7222058.116 4 22884011.914 22884009.796 22884010.803
+ 35.500 26.200
+ -9926431.022 6 -7734879.598 5 22369673.981 22369673.729 22369674.049
+ 37.600 32.400
+ -2165920.657 4 -1687729.433 3 24144401.054 24144399.961 24144399.606
+ 24.200 19.300
+ -22772567.399 7 -17744849.798 8 20266092.715 20266089.373 20266091.621
+ 42.700 49.500
+ -13013649.505 7 -10140500.944 6 21725713.906 21725711.689 21725713.140
+ 45.800 38.900
+ -4564014.813 5 -3556371.783 3 23846985.833 23846984.145 23846985.381
+ 30.100 22.600
+ 06 1 1 10 36 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19034557.954 7 -14832122.710 6 21038265.400 21038259.631 21038264.141
+ 47.300 41.600
+ -4816545.337 4 -3753152.230 3 23688889.867 23688886.780 23688889.629
+ 27.100 22.100
+ -9193406.544 5 -7163696.094 4 22898264.262 22898262.522 22898263.090
+ 34.700 27.600
+ -9836596.351 6 -7664878.564 5 22386769.206 22386768.708 22386768.882
+ 37.000 32.400
+ -2277742.567 3 -1774863.284 3 24123120.104 24123120.534 24123120.294
+ 23.000 19.300
+ -22783836.842 7 -17753631.175 8 20263948.342 20263944.751 20263947.121
+ 42.700 49.400
+ -12960324.210 7 -10098948.768 6 21735861.479 21735859.221 21735860.820
+ 46.100 38.900
+ -4516374.424 4 -3519249.406 3 23856051.559 23856049.893 23856050.937
+ 28.400 23.000
+ 06 1 1 10 36 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19093576.983 7 -14878111.565 6 21027034.470 21027028.879 21027033.244
+ 47.400 41.600
+ -4918926.666 4 -3832929.871 4 23669407.010 23669404.247 23669406.535
+ 26.200 24.900
+ -9118139.105 5 -7105046.184 4 22912586.923 22912585.437 22912585.717
+ 33.600 26.800
+ -9746452.385 6 -7594636.539 5 22403924.090 22403922.304 22403923.262
+ 37.500 31.000
+ -2389523.927 3 -1861965.581 2 24101849.561 24101849.453 24101849.411
+ 21.600 16.100
+ -22794586.790 7 -17762007.755 8 20261902.418 20261899.112 20261901.317
+ 42.600 49.400
+ -12906787.679 7 -10057231.994 6 21746049.220 21746046.937 21746048.520
+ 46.000 39.000
+ -4468254.346 4 -3481753.238 3 23865209.280 23865206.184 23865208.185
+ 29.700 21.100
+ 06 1 1 10 37 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19152147.114 7 -14923750.626 6 21015888.953 21015883.367 21015887.685
+ 47.400 41.800
+ -5021145.771 4 -3912581.090 3 23649955.334 23649952.323 23649955.195
+ 25.900 23.400
+ -9042504.642 5 -7046110.285 4 22926980.190 22926977.952 22926978.872
+ 33.500 25.600
+ -9656000.731 6 -7524154.738 5 22421136.625 22421135.046 22421135.678
+ 36.900 31.800
+ -2501261.787 4 -1949033.968 2 24080587.436 24080586.843 24080586.262
+ 24.900 15.100
+ -22804817.694 7 -17769979.880 8 20259955.568 20259952.312 20259954.467
+ 42.700 49.300
+ -12853040.119 7 -10015350.779 6 21756276.957 21756274.681 21756276.380
+ 46.100 38.600
+ -4419655.689 4 -3443884.161 3 23874457.162 23874455.243 23874456.483
+ 29.500 23.000
+ 06 1 1 10 37 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19210266.757 7 -14969038.660 7 21004829.160 21004823.505 21004827.961
+ 47.500 42.100
+ -5123200.460 4 -3992104.216 3 23630534.873 23630532.158 23630534.727
+ 27.900 22.600
+ -8966506.176 5 -6986890.738 4 22941442.298 22941440.110 22941441.143
+ 33.800 26.500
+ -9565242.914 6 -7453434.390 5 22438407.444 22438405.577 22438406.417
+ 37.000 31.300
+ -2612953.220 4 -2036066.201 3 24059334.734 24059332.904 24059333.069
+ 28.100 19.300
+ -22814529.928 7 -17777547.851 8 20258107.271 20258104.158 20258106.220
+ 42.700 49.500
+ -12799081.783 7 -9973305.323 6 21766544.789 21766542.534 21766544.165
+ 46.000 38.400
+ -4370580.239 4 -3405643.562 3 23883795.873 23883793.355 23883795.129
+ 29.500 23.000
+ 06 1 1 10 38 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19267933.585 7 -15013973.853 7 20993855.667 20993849.883 20993854.309
+ 47.400 42.000
+ -5225088.423 4 -4071497.452 3 23611146.237 23611143.257 23611146.074
+ 27.600 21.100
+ -8890146.436 5 -6927389.681 4 22955972.731 22955971.066 22955971.705
+ 34.100 26.200
+ -9474180.579 6 -7382476.735 5 22455735.920 22455733.898 22455734.916
+ 36.600 30.600
+ -2724595.680 4 -2123060.311 1 24038089.619 24038087.629 24038088.042
+ 24.900 9.000
+ -22823723.897 7 -17784711.979 8 20256357.631 20256354.624 20256356.631
+ 42.600 49.600
+ -12744913.041 7 -9931095.920 6 21776852.893 21776850.575 21776852.213
+ 46.000 38.600
+ -4321029.493 4 -3367032.597 3 23893224.772 23893221.963 23893224.238
+ 28.800 19.300
+ 06 1 1 10 38 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19325145.252 7 -15058554.370 6 20982968.481 20982962.809 20982967.232
+ 47.300 41.900
+ -5326807.332 4 -4150758.970 3 23591789.426 23591786.851 23591789.400
+ 26.500 21.100
+ -8813428.650 5 -6867609.621 4 22970571.977 22970569.911 22970570.747
+ 34.500 25.900
+ -9382815.312 6 -7311283.046 5 22473122.075 22473120.614 22473120.890
+ 36.200 31.100
+ -2836186.086 4 -2210013.860 3 24016854.749 24016852.793 24016853.140
+ 27.600 18.600
+ -22832400.232 7 -17791472.750 8 20254706.764 20254703.509 20254705.617
+ 42.700 49.600
+ -12690534.126 7 -9888722.738 6 21787200.931 21787198.732 21787200.233
+ 45.900 38.400
+ -4271004.815 4 -3328052.320 3 23902744.511 23902741.783 23902743.619
+ 29.500 21.100
+ 06 1 1 10 39 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19381899.327 7 -15102778.327 7 20972168.514 20972162.841 20972167.243
+ 47.400 42.000
+ -5428354.479 4 -4229886.593 3 23572466.047 23572463.181 23572465.804
+ 28.600 23.000
+ -8736356.224 5 -6807553.219 4 22985238.373 22985236.251 22985237.260
+ 34.500 27.400
+ -9291148.644 6 -7239854.480 5 22490565.463 22490564.120 22490564.744
+ 37.200 31.500
+ -2947721.696 3 -2296924.670 2 23995628.309 23995627.624 23995627.696
+ 23.800 17.000
+ -22840559.445 7 -17797830.573 8 20253154.028 20253150.868 20253153.053
+ 42.800 49.500
+ -12635945.237 7 -9846185.946 6 21797588.800 21797586.538 21797588.141
+ 46.100 38.400
+ -4220507.855 4 -3288704.031 3 23912353.992 23912351.242 23912353.294
+ 29.000 22.100
+ 06 1 1 10 39 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19438193.927 7 -15146644.250 7 20961455.772 20961450.321 20961454.521
+ 46.900 42.100
+ -5529727.705 4 -4308878.712 4 23553174.972 23553172.659 23553175.071
+ 28.100 25.900
+ -8658931.982 5 -6747222.659 4 22999971.811 22999969.710 22999970.452
+ 34.400 26.500
+ -9199182.161 6 -7168192.316 5 22508065.553 22508064.849 22508065.138
+ 36.400 32.000
+ -3059199.337 4 -2383790.281 3 23974414.561 23974415.180 23974414.048
+ 24.200 23.000
+ -22848202.214 7 -17803785.969 8 20251699.876 20251696.433 20251698.749
+ 43.100 49.500
+ -12581146.548 7 -9803485.671 6 21808016.644 21808014.378 21808016.011
+ 45.800 38.100
+ -4169540.080 4 -3248988.867 3 23922052.192 23922049.687 23922051.287
+ 27.600 19.900
+ 06 1 1 10 40 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19494026.536 7 -15190150.177 6 20950831.459 20950825.709 20950830.053
+ 47.000 41.900
+ -5630924.572 4 -4387733.402 4 23533918.578 23533915.473 23533918.106
+ 28.800 25.600
+ -8581158.513 5 -6686619.993 4 23014771.638 23014769.725 23014770.334
+ 34.000 26.800
+ -9106917.489 6 -7096297.784 5 22525623.597 22525621.943 22525622.668
+ 36.100 30.800
+ -3170616.023 4 -2470608.396 4 23953212.913 23953213.324 23953212.584
+ 25.300 25.300
+ -22855328.645 7 -17809339.030 8 20250343.863 20250340.322 20250342.690
+ 43.000 49.400
+ -12526138.492 7 -9760622.255 6 21818484.084 21818482.147 21818483.534
+ 45.800 38.300
+ -4118102.756 4 -3208907.823 2 23931839.996 23931837.772 23931839.427
+ 28.100 17.800
+ 06 1 1 10 40 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19549394.834 7 -15233294.304 7 20940295.140 20940289.589 20940293.819
+ 47.100 42.100
+ -5731942.596 4 -4466448.736 3 23514695.775 23514692.487 23514695.316
+ 28.400 23.800
+ -8503039.008 5 -6625747.672 4 23029636.915 23029635.050 23029635.827
+ 33.400 25.300
+ -9014356.299 5 -7024172.193 5 22543237.382 22543235.841 22543236.352
+ 35.900 31.000
+ -3281969.233 3 -2557377.051 3 23932022.266 23932023.283 23932022.438
+ 22.100 22.600
+ -22861939.641 7 -17814490.447 8 20249085.651 20249082.210 20249084.542
+ 43.000 49.400
+ -12470921.234 7 -9717595.823 6 21828991.900 21828989.587 21828991.134
+ 45.900 38.100
+ -4066197.748 4 -3168462.389 3 23941716.853 23941715.654 23941716.306
+ 26.800 22.600
+ 06 1 1 10 41 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19604296.918 7 -15276075.149 7 20929847.477 20929842.042 20929846.331
+ 47.300 42.000
+ -5832779.268 4 -4545022.786 3 23495507.327 23495503.469 23495506.852
+ 29.900 21.600
+ -8424576.631 5 -6564608.169 4 23044567.772 23044565.881 23044566.645
+ 33.600 24.600
+ -8921500.184 5 -6951816.813 5 22560906.782 22560905.752 22560906.047
+ 35.600 30.400
+ -3393255.855 4 -2644093.842 4 23910845.495 23910846.070 23910844.982
+ 24.600 24.900
+ -22868035.674 7 -17819240.600 8 20247925.540 20247922.207 20247924.488
+ 43.100 49.600
+ -12415495.013 7 -9674406.563 6 21839539.152 21839536.850 21839538.471
+ 45.700 38.200
+ -4013827.003 4 -3127654.007 3 23951683.332 23951681.873 23951682.705
+ 28.600 23.000
+ 06 1 1 10 41 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19658730.332 7 -15318490.796 7 20919489.195 20919483.735 20919487.924
+ 47.300 42.300
+ -5933432.243 5 -4623453.670 4 23476353.696 23476350.321 23476353.375
+ 30.400 24.600
+ -8345774.169 5 -6503203.673 4 23059563.576 23059561.490 23059562.386
+ 33.800 24.900
+ -8828350.820 5 -6879232.901 5 22578632.453 22578631.856 22578632.147
+ 35.800 30.600
+ -3504473.260 4 -2730756.650 3 23889681.348 23889682.052 23889681.250
+ 25.900 23.000
+ -22873617.560 7 -17823590.119 8 20246863.427 20246860.043 20246862.325
+ 42.900 49.600
+ -12359860.211 7 -9631054.772 6 21850126.244 21850123.851 21850125.463
+ 45.500 38.200
+ -3960991.464 4 -3086483.454 3 23961737.332 23961736.326 23961736.580
+ 28.600 23.400
+ 06 1 1 10 42 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19712692.868 7 -15360539.527 7 20909220.854 20909215.069 20909219.532
+ 47.600 42.500
+ -6033899.220 4 -4701739.644 3 23457234.897 23457231.989 23457234.659
+ 28.800 23.400
+ -8266634.694 5 -6441536.571 4 23074623.125 23074621.621 23074622.056
+ 33.400 25.900
+ -8734909.782 5 -6806421.715 5 22596413.307 22596412.940 22596413.033
+ 35.500 30.600
+ -3615618.243 4 -2817363.127 3 23868532.713 23868531.676 23868531.356
+ 24.600 21.600
+ -22878685.987 7 -17827539.540 8 20245898.944 20245895.566 20245897.832
+ 43.100 49.700
+ -12304016.948 7 -9587540.540 6 21860752.979 21860750.422 21860752.237
+ 45.600 38.000
+ -3907693.241 4 -3044952.377 3 23971879.677 23971877.849 23971879.164
+ 28.400 19.900
+ 06 1 1 10 42 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19766182.537 7 -15402219.790 7 20899041.860 20899036.223 20899040.676
+ 47.600 42.400
+ -6134177.568 4 -4779878.619 3 23438152.108 23438149.275 23438152.147
+ 29.200 23.800
+ -8187161.266 5 -6379609.257 4 23089746.619 23089745.075 23089745.492
+ 33.000 26.500
+ -8641178.807 6 -6733384.613 5 22614250.741 22614249.237 22614250.038
+ 36.300 30.200
+ -3726688.053 4 -2903910.968 3 23847397.005 23847395.671 23847395.391
+ 24.600 20.500
+ -22883241.214 7 -17831089.059 8 20245032.208 20245028.735 20245031.023
+ 43.000 49.700
+ -12247965.477 7 -9543864.072 6 21871419.066 21871416.564 21871418.344
+ 45.400 38.000
+ -3853933.704 4 -3003061.832 4 23982110.453 23982108.848 23982109.653
+ 26.800 25.300
+ 06 1 1 10 43 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19819197.064 7 -15443529.811 7 20888953.357 20888947.921 20888952.116
+ 47.300 42.500
+ -6234265.128 4 -4857868.909 3 23419106.392 23419103.189 23419105.959
+ 29.200 22.100
+ -8107357.240 5 -6317424.333 4 23104932.866 23104931.065 23104931.741
+ 33.600 24.200
+ -8547159.451 5 -6660122.810 5 22632141.482 22632140.657 22632140.883
+ 35.200 30.800
+ -3837679.543 3 -2990397.787 3 23826276.194 23826274.751 23826274.228
+ 23.400 22.600
+ -22887283.928 7 -17834239.224 8 20244262.819 20244259.420 20244261.781
+ 43.100 49.700
+ -12191706.169 7 -9500025.653 6 21882124.816 21882122.536 21882124.107
+ 45.300 38.400
+ -3799714.718 4 -2960813.280 3 23992427.176 23992426.058 23992426.708
+ 29.000 23.400
+ 06 1 1 10 43 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19871734.107 7 -15484467.767 7 20878955.841 20878950.569 20878954.597
+ 47.500 42.700
+ -6334159.052 4 -4935708.348 3 23400097.309 23400094.211 23400096.974
+ 29.500 23.400
+ -8027225.023 5 -6254983.654 4 23120181.778 23120179.643 23120180.635
+ 33.600 24.200
+ -8452853.458 5 -6586637.625 4 22650086.865 22650086.304 22650086.620
+ 35.100 29.200
+ -3948589.984 4 -3076821.443 4 23805170.554 23805169.502 23805168.969
+ 26.800 24.600
+ -22890814.912 7 -17836990.635 8 20243590.961 20243587.470 20243589.804
+ 43.100 49.700
+ -12135239.212 7 -9456025.431 6 21892869.995 21892867.889 21892869.257
+ 45.200 37.700
+ -3745037.342 4 -2918207.552 3 24002831.936 24002830.841 24002831.416
+ 27.400 23.000
+ 06 1 1 10 44 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19923791.838 7 -15525032.226 7 20869049.710 20869044.331 20869048.483
+ 47.400 42.800
+ -6433857.047 4 -5013395.087 4 23381125.840 23381122.797 23381125.282
+ 29.700 26.500
+ -7946767.920 5 -6192289.826 3 23135492.340 23135490.024 23135490.928
+ 33.500 23.800
+ -8358262.471 5 -6512930.382 5 22668087.476 22668086.770 22668086.851
+ 34.800 30.800
+ -4059416.376 4 -3163179.636 3 23784079.327 23784079.339 23784078.948
+ 28.600 23.400
+ -22893834.823 7 -17839343.807 8 20243016.214 20243012.827 20243015.015
+ 43.000 49.700
+ -12078564.843 7 -9411863.591 6 21903654.819 21903652.442 21903654.046
+ 45.100 37.600
+ -3689903.966 4 -2875246.481 3 24013324.395 24013321.899 24013323.445
+ 28.600 20.500
+ 06 1 1 10 44 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19975367.906 7 -15565221.369 7 20859235.306 20859229.707 20859234.001
+ 47.600 42.700
+ -6533356.533 4 -5090927.164 4 23362192.053 23362188.402 23362191.355
+ 28.600 25.600
+ -7865988.860 5 -6129345.133 4 23150864.108 23150861.860 23150862.705
+ 33.400 24.200
+ -8263388.204 5 -6439002.399 4 22686142.030 22686140.293 22686141.123
+ 35.400 28.800
+ -4170155.830 4 -3249470.079 3 23763006.789 23763006.060 23763006.069
+ 28.400 19.300
+ -22896344.316 7 -17841299.253 8 20242538.660 20242535.284 20242537.535
+ 43.200 49.700
+ -12021683.398 7 -9367540.379 6 21914478.869 21914476.681 21914478.131
+ 44.900 37.500
+ -3634316.354 4 -2831931.455 2 24023902.040 24023899.421 24023901.007
+ 27.400 16.100
+ 06 1 1 10 45 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20026460.444 7 -15605033.737 7 20849512.587 20849507.042 20849511.349
+ 47.700 42.800
+ -6632655.187 4 -5168302.724 3 23343295.409 23343291.924 23343294.911
+ 28.600 23.800
+ -7784891.236 5 -6066152.208 4 23166296.157 23166294.368 23166294.787
+ 31.800 24.600
+ -8168232.437 5 -6364855.064 4 22704249.192 22704248.160 22704248.537
+ 35.400 29.500
+ -4280805.234 4 -3335690.344 2 23741949.672 23741950.221 23741949.452
+ 25.600 17.800
+ -22898344.444 7 -17842857.787 8 20242158.069 20242154.663 20242156.973
+ 43.200 49.800
+ -11964595.013 7 -9323055.927 6 21925342.625 21925340.225 21925341.875
+ 44.800 37.400
+ -3578275.622 4 -2788263.348 3 24034565.570 24034563.904 24034565.054
+ 28.400 20.500
+ 06 1 1 10 45 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20077066.976 7 -15644467.400 7 20839882.612 20839877.050 20839881.350
+ 47.700 42.900
+ -6731750.663 4 -5245519.984 4 23324438.512 23324435.701 23324437.928
+ 29.900 27.100
+ -7703477.930 5 -6002713.295 4 23181788.363 23181786.816 23181787.243
+ 30.200 25.600
+ -8072796.843 5 -6290489.688 5 22722409.980 22722409.076 22722409.185
+ 34.100 30.600
+ -4391361.787 4 -3421838.268 2 23720911.873 23720911.489 23720911.771
+ 25.900 16.100
+ -22899835.681 7 -17844019.787 8 20241874.271 20241870.888 20241873.165
+ 43.200 49.700
+ -11907300.047 7 -9278410.497 6 21936245.711 21936243.000 21936244.942
+ 45.200 37.100
+ -3521783.898 4 -2744243.803 3 24045316.330 24045314.230 24045315.378
+ 29.500 21.600
+ 06 1 1 10 46 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20127185.615 7 -15683520.883 7 20830345.201 20830339.550 20830343.928
+ 47.600 42.600
+ -6830640.295 4 -5322576.861 4 23305620.357 23305617.039 23305619.985
+ 29.900 24.200
+ -7621751.983 5 -5939030.773 4 23197340.537 23197338.930 23197339.431
+ 32.700 24.200
+ -7977083.158 5 -6215907.615 4 22740623.638 22740622.698 22740622.959
+ 34.300 29.700
+ -4501822.746 4 -3507911.693 3 23699891.841 23699891.477 23699891.627
+ 26.200 18.600
+ -22900818.681 7 -17844785.758 8 20241687.260 20241683.839 20241686.159
+ 43.300 49.700
+ -11849798.740 7 -9233604.294 6 21947187.326 21947185.232 21947186.774
+ 44.700 37.200
+ -3464842.691 4 -2699874.022 3 24056151.017 24056149.833 24056150.415
+ 27.900 21.100
+ 06 1 1 10 46 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20176814.143 7 -15722192.463 7 20820901.229 20820895.674 20820899.904
+ 47.400 42.700
+ -6929321.525 5 -5399471.307 4 23286841.914 23286838.879 23286841.374
+ 30.200 25.600
+ -7539716.392 5 -5875106.957 4 23212951.596 23212949.881 23212950.460
+ 33.000 24.200
+ -7881093.021 5 -6141110.121 4 22758889.703 22758889.110 22758889.064
+ 34.400 29.200
+ -4612184.905 4 -3593908.120 3 23678890.392 23678890.773 23678890.416
+ 26.800 23.000
+ -22901294.226 7 -17845156.305 8 20241596.805 20241593.325 20241595.754
+ 43.500 49.800
+ -11792091.278 7 -9188637.446 6 21958168.562 21958166.723 21958168.022
+ 44.700 37.200
+ -3407453.672 4 -2655155.311 3 24067072.317 24067070.760 24067071.704
+ 28.400 23.000
+ 06 1 1 10 47 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20225950.065 7 -15760480.195 7 20811550.921 20811545.419 20811549.695
+ 47.500 42.900
+ -7027791.853 5 -5476201.426 4 23268103.523 23268100.337 23268103.279
+ 31.500 24.600
+ -7457374.282 5 -5810944.298 4 23228621.224 23228618.949 23228619.890
+ 32.800 25.300
+ -7784828.139 5 -6066098.556 4 22777208.598 22777207.603 22777207.991
+ 34.400 29.500
+ -4722445.479 4 -3679825.392 3 23657909.851 23657908.680 23657908.746
+ 26.800 23.800
+ -22901263.031 7 -17845131.992 8 20241602.690 20241599.221 20241601.610
+ 43.400 49.700
+ -11734177.978 7 -9143510.201 6 21969189.434 21969187.231 21969188.702
+ 44.600 37.300
+ -3349618.911 4 -2610089.298 3 24078077.814 24078076.001 24078077.097
+ 27.100 20.500
+ 06 1 1 10 47 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20274591.909 7 -15798382.928 7 20802295.130 20802289.271 20802293.746
+ 47.600 43.100
+ -7126048.774 5 -5552765.265 4 23249406.041 23249403.067 23249405.819
+ 31.100 27.100
+ -7374728.572 5 -5746545.068 4 23244347.675 23244345.991 23244346.551
+ 32.600 24.600
+ -7688290.305 5 -5990874.283 4 22795579.672 22795578.336 22795578.690
+ 34.700 29.700
+ -4832601.356 4 -3765661.061 3 23636948.346 23636946.532 23636946.705
+ 26.200 23.800
+ -22900726.080 7 -17844713.588 8 20241704.621 20241701.409 20241703.660
+ 43.400 49.600
+ -11676059.060 7 -9098222.739 6 21980249.277 21980246.945 21980248.493
+ 44.600 37.600
+ -3291340.018 4 -2564677.158 3 24089167.628 24089166.392 24089166.952
+ 26.500 20.500
+ 06 1 1 10 48 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20322737.783 7 -15835899.192 7 20793132.905 20793127.495 20793131.740
+ 47.600 43.400
+ -7224090.022 5 -5629161.046 4 23230749.374 23230746.213 23230748.726
+ 30.200 26.500
+ -7291782.601 5 -5681911.873 3 23260132.189 23260130.081 23260130.741
+ 32.700 23.000
+ -7591481.339 5 -5915438.749 4 22814001.178 22814000.357 22814000.705
+ 34.500 29.500
+ -4942649.612 4 -3851412.859 3 23616008.070 23616005.162 23616005.826
+ 25.900 23.800
+ -22899683.983 7 -17843901.557 8 20241903.121 20241899.742 20241902.014
+ 43.400 49.600
+ -11617734.840 7 -9052775.296 6 21991347.430 21991345.557 21991346.926
+ 44.500 37.200
+ -3232618.913 4 -2518920.425 3 24100343.113 24100340.413 24100342.122
+ 29.900 22.100
+ 06 1 1 10 48 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20370384.966 7 -15873026.864 7 20784065.878 20784060.373 20784064.576
+ 47.400 43.100
+ -7321913.009 5 -5705386.738 4 23212134.301 23212130.965 23212133.551
+ 30.600 25.900
+ -7208539.547 5 -5617047.179 4 23275972.572 23275970.468 23275971.376
+ 33.100 24.900
+ -7494403.095 5 -5839793.358 4 22832473.977 22832473.447 22832473.998
+ 34.600 28.100
+ -5052587.411 4 -3937078.586 4 23595087.081 23595084.852 23595084.760
+ 27.100 24.900
+ -22898137.761 7 -17842696.706 8 20242197.348 20242193.944 20242196.226
+ 43.100 49.600
+ -11559205.516 7 -9007168.040 6 22002485.160 22002483.348 22002484.679
+ 44.400 36.800
+ -3173457.130 4 -2472820.342 3 24111600.707 24111598.215 24111599.970
+ 27.400 21.100
+ 06 1 1 10 49 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20417531.607 7 -15909764.510 7 20775094.191 20775088.598 20775092.957
+ 47.400 43.000
+ -7419515.098 5 -5781440.324 4 23193561.275 23193558.117 23193560.854
+ 32.100 27.600
+ -7125002.248 5 -5551953.188 3 23291869.267 23291867.205 23291868.194
+ 31.800 23.400
+ -7397057.195 5 -5763939.437 4 22850998.039 22850998.250 22850998.066
+ 33.000 29.700
+ -5162411.804 4 -4022655.971 4 23574188.035 23574185.679 23574186.281
+ 29.500 24.900
+ -22896088.047 7 -17841099.519 8 20242587.386 20242583.992 20242586.283
+ 43.200 49.600
+ -11500471.399 7 -8961401.199 6 22013662.427 22013660.092 22013661.651
+ 44.400 36.700
+ -3113856.712 4 -2426378.460 3 24122942.311 24122939.732 24122941.542
+ 28.600 22.100
+ 06 1 1 10 49 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20464175.803 7 -15946110.636 7 20766218.123 20766212.434 20766216.848
+ 47.400 42.900
+ -7516893.905 5 -5857319.901 4 23175030.156 23175027.657 23175029.893
+ 31.100 27.400
+ -7041173.894 5 -5486632.425 4 23307821.514 23307819.377 23307820.240
+ 31.600 24.200
+ -7299445.438 5 -5687878.349 4 22869574.375 22869572.802 22869573.549
+ 33.400 28.100
+ -5272119.871 4 -4108142.688 4 23553310.467 23553308.866 23553308.789
+ 28.100 24.200
+ -22893535.888 7 -17839110.821 8 20243073.014 20243069.621 20243071.928
+ 43.400 49.600
+ -11441532.762 7 -8915474.994 6 22024877.898 22024875.762 22024877.369
+ 44.600 36.800
+ -3053819.219 4 -2379596.008 3 24134366.754 24134364.887 24134366.034
+ 26.800 20.500
+ 06 1 1 10 50 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20510315.584 7 -15982063.708 7 20757438.192 20757432.541 20757436.839
+ 47.500 43.200
+ -7614046.852 5 -5933023.481 4 23156542.661 23156540.061 23156542.294
+ 30.200 27.600
+ -6957057.704 5 -5421087.391 4 23323827.945 23323826.234 23323826.711
+ 31.000 24.900
+ -7201569.595 5 -5611611.465 4 22888199.051 22888197.911 22888198.420
+ 33.400 28.400
+ -5381708.293 4 -4193536.220 4 23532457.247 23532454.957 23532455.328
+ 27.900 24.600
+ -22890482.167 7 -17836731.295 8 20243654.086 20243650.708 20243652.995
+ 43.300 49.600
+ -11382389.705 7 -8869389.498 6 22036132.610 22036130.175 22036131.930
+ 44.400 36.700
+ -2993346.562 4 -2332474.477 3 24145873.476 24145872.252 24145873.367
+ 25.600 21.100
+ 06 1 1 10 50 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20555948.973 7 -16017622.190 7 20748754.134 20748748.801 20748752.940
+ 47.500 43.400
+ -7710971.184 5 -6008548.945 4 23138098.857 23138095.629 23138098.581
+ 31.500 26.500
+ -6872656.574 5 -5355320.320 4 23339889.163 23339887.358 23339887.896
+ 31.100 24.200
+ -7103431.403 5 -5535140.163 4 22906874.746 22906873.045 22906873.675
+ 32.600 27.900
+ -5491174.431 4 -4278834.467 3 23511625.825 23511623.737 23511624.427
+ 28.600 22.100
+ -22886927.603 7 -17833961.501 8 20244330.507 20244327.135 20244329.422
+ 43.400 49.600
+ -11323042.593 7 -8823145.000 6 22047425.868 22047423.535 22047425.222
+ 44.300 36.200
+ -2932440.923 4 -2285015.537 3 24157464.125 24157462.541 24157463.579
+ 26.800 22.100
+ 06 1 1 10 51 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20601073.628 7 -16052784.258 7 20740167.256 20740161.723 20740166.025
+ 47.600 43.400
+ -7807664.448 5 -6083894.362 4 23119698.490 23119695.724 23119698.299
+ 31.300 26.800
+ -6787973.593 5 -5289333.610 4 23356003.875 23356001.992 23356002.675
+ 31.300 24.200
+ -7005032.765 5 -5458465.927 4 22925600.364 22925597.574 22925598.721
+ 33.100 27.900
+ -5600515.271 4 -4364035.063 3 23490818.415 23490817.007 23490817.043
+ 28.600 23.000
+ -22882873.044 7 -17830802.102 8 20245102.239 20245098.676 20245101.064
+ 43.500 49.500
+ -11263491.621 7 -8776741.646 6 22058758.178 22058755.827 22058757.395
+ 44.200 36.300
+ -2871103.802 4 -2237220.401 3 24169136.228 24169134.533 24169135.237
+ 25.300 23.400
+ 06 1 1 10 51 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20645687.586 7 -16087548.381 7 20731677.479 20731671.869 20731676.206
+ 47.500 43.100
+ -7904124.107 4 -6159057.712 4 23101342.827 23101340.154 23101342.502
+ 29.900 27.600
+ -6703011.930 5 -5223129.748 3 23372171.452 23372169.546 23372170.299
+ 31.000 23.000
+ -6906375.392 5 -5381590.074 4 22944374.155 22944372.080 22944372.660
+ 33.100 28.800
+ -5709727.672 5 -4449135.606 3 23470035.505 23470034.485 23470034.471
+ 30.600 23.400
+ -22878319.363 7 -17827253.776 8 20245968.511 20245965.229 20245967.541
+ 43.400 49.600
+ -11203737.102 7 -8730179.693 6 22070128.679 22070126.865 22070128.230
+ 44.200 36.200
+ -2809337.438 4 -2189090.759 3 24180890.643 24180888.222 24180889.648
+ 28.400 19.900
+ 06 1 1 10 52 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20689789.137 7 -16121913.229 7 20723285.201 20723279.623 20723283.998
+ 47.500 43.200
+ -8000347.698 5 -6234037.142 4 23083031.931 23083029.265 23083031.839
+ 32.400 26.800
+ -6617774.863 4 -5156711.296 3 23388391.057 23388389.745 23388389.923
+ 29.000 23.000
+ -6807461.092 5 -5304514.023 4 22963195.535 22963194.082 22963194.878
+ 32.400 26.200
+ -5818808.641 5 -4534133.700 3 23449278.288 23449276.755 23449277.236
+ 30.400 20.500
+ -22873267.690 7 -17823317.407 8 20246929.955 20246926.540 20246928.852
+ 43.500 49.600
+ -11143779.302 7 -8683459.335 6 22081538.014 22081536.191 22081537.734
+ 44.000 36.200
+ -2747143.339 4 -2140627.811 3 24192726.101 24192723.671 24192724.944
+ 28.100 23.800
+ 06 1 1 10 52 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20733376.338 7 -16155877.280 7 20714990.941 20714985.412 20714989.676
+ 47.400 43.600
+ -8096332.658 5 -6308830.627 4 23064766.506 23064763.724 23064766.516
+ 32.700 25.600
+ -6532265.538 5 -5090080.689 3 23404663.642 23404661.379 23404662.321
+ 30.800 19.900
+ -6708291.639 5 -5227239.120 4 22982066.762 22982065.925 22982066.633
+ 33.400 27.900
+ -5927755.367 4 -4619027.242 3 23428545.629 23428544.927 23428545.011
+ 28.100 22.600
+ -22867718.844 7 -17818993.628 8 20247985.838 20247982.449 20247984.710
+ 43.600 49.600
+ -11083618.499 7 -8636580.794 6 22092986.574 22092984.566 22092985.959
+ 43.900 36.000
+ -2684523.696 4 -2091833.313 3 24204641.750 24204639.363 24204641.156
+ 29.200 20.500
+ 06 1 1 10 53 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20776446.961 7 -16189438.803 7 20706794.919 20706789.424 20706793.647
+ 47.500 43.800
+ -8192076.546 5 -6383436.255 4 23046547.300 23046544.383 23046546.956
+ 31.000 27.100
+ -6446486.821 4 -5023240.143 3 23420986.662 23420984.431 23420985.324
+ 29.900 21.100
+ -6608868.778 5 -5149766.774 4 23000985.253 23000985.778 23000985.649
+ 33.000 28.600
+ -6036564.857 4 -4703813.835 3 23407839.511 23407838.940 23407839.110
+ 27.400 23.000
+ -22861674.045 7 -17814283.393 8 20249136.132 20249132.824 20249135.024
+ 43.700 49.700
+ -11023254.815 7 -8589544.160 6 22104473.727 22104471.469 22104472.979
+ 43.800 36.200
+ -2621480.201 4 -2042708.509 2 24216638.924 24216635.576 24216638.147
+ 28.400 17.800
+ 06 1 1 10 53 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20818999.254 7 -16222596.434 7 20698697.382 20698691.989 20698696.153
+ 47.700 43.600
+ -8287576.550 5 -6457851.851 4 23028374.029 23028371.562 23028374.008
+ 31.800 29.000
+ -6360442.008 4 -4956192.271 3 23437360.346 23437358.359 23437359.083
+ 28.800 20.500
+ -6509194.340 5 -5072098.418 4 23019953.797 23019952.933 23019953.115
+ 31.800 27.900
+ -6145233.976 4 -4788490.995 3 23387161.368 23387160.076 23387160.334
+ 27.100 22.100
+ -22855133.889 7 -17809187.163 8 20250380.672 20250377.344 20250379.581
+ 43.700 49.600
+ -10962688.563 7 -8542349.688 6 22115998.980 22115996.834 22115998.339
+ 43.800 36.500
+ -2558014.859 4 -1993254.969 3 24228714.854 24228713.726 24228714.198
+ 25.300 19.300
+ 06 1 1 10 54 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20861031.475 7 -16255348.815 7 20690698.942 20690693.513 20690697.635
+ 47.400 43.800
+ -8382830.346 5 -6532075.568 4 23010248.228 23010245.344 23010248.082
+ 33.400 28.600
+ -6274134.046 4 -4888939.349 3 23453783.839 23453782.099 23453782.745
+ 28.100 19.300
+ -6409270.340 5 -4994235.564 4 23038968.744 23038967.388 23038967.838
+ 31.600 26.500
+ -6253759.934 4 -4873056.607 4 23366509.163 23366508.568 23366508.105
+ 26.800 25.600
+ -22848099.489 7 -17803705.809 8 20251719.374 20251715.877 20251718.206
+ 43.600 49.600
+ -10901920.109 7 -8494997.657 6 22127562.944 22127560.720 22127562.311
+ 44.000 36.300
+ -2494129.668 4 -1943474.318 3 24240872.446 24240870.461 24240871.752
+ 25.300 18.600
+ 06 1 1 10 54 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20902541.264 7 -16287694.102 7 20682799.764 20682794.453 20682798.532
+ 47.300 43.800
+ -8477835.281 5 -6606105.393 4 22992169.517 22992166.240 22992169.001
+ 32.400 27.400
+ -6187566.273 4 -4821483.975 3 23470257.344 23470255.262 23470256.050
+ 27.600 18.600
+ -6309098.568 5 -4916179.672 4 23058031.976 23058030.041 23058030.592
+ 32.000 28.100
+ -6362139.498 4 -4957508.175 4 23345885.905 23345884.317 23345884.963
+ 29.700 24.600
+ -22840571.828 7 -17797840.097 8 20253151.856 20253148.307 20253150.731
+ 43.800 49.600
+ -10840949.573 7 -8447488.159 6 22139165.255 22139163.113 22139164.704
+ 44.000 36.500
+ -2429826.478 4 -1893367.944 3 24253109.153 24253107.129 24253108.302
+ 28.400 21.100
+ 06 1 1 10 55 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20943526.967 7 -16319631.016 7 20675000.609 20674995.083 20674999.306
+ 47.300 43.800
+ -8572588.614 5 -6679939.164 4 22974139.067 22974135.528 22974138.497
+ 33.800 28.400
+ -6100742.019 4 -4753828.732 2 23486779.434 23486777.453 23486778.299
+ 29.200 16.100
+ -6208680.814 5 -4837932.086 4 23077140.856 23077138.728 23077139.364
+ 31.500 26.500
+ -6470369.743 5 -5041843.373 4 23325290.845 23325289.173 23325289.485
+ 31.600 25.900
+ -22832551.966 7 -17791590.852 8 20254677.873 20254674.489 20254676.809
+ 43.900 49.500
+ -10779777.368 7 -8399821.515 6 22150806.112 22150803.677 22150805.326
+ 43.600 36.400
+ -2365107.424 4 -1842937.518 3 24265424.297 24265422.159 24265423.117
+ 24.900 19.900
+ 06 1 1 10 55 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20983986.671 7 -16351158.055 7 20667301.225 20667295.954 20667299.993
+ 47.200 44.000
+ -8667087.765 5 -6753574.874 4 22956156.184 22956152.733 22956155.808
+ 33.000 27.900
+ -6013664.042 5 -4685975.798 2 23503350.076 23503347.872 23503348.845
+ 30.200 17.000
+ -6108018.945 5 -4759494.297 4 23096295.417 23096293.971 23096294.332
+ 30.800 26.500
+ -6578447.746 5 -5126059.949 4 23304723.622 23304722.597 23304722.629
+ 30.200 26.500
+ -22824040.868 7 -17784958.822 8 20256297.584 20256294.057 20256296.500
+ 44.000 49.400
+ -10718403.646 7 -8351997.843 6 22162485.391 22162482.871 22162484.455
+ 43.800 36.600
+ -2299974.266 4 -1792184.391 3 24277818.735 24277817.749 24277817.899
+ 26.800 21.600
+ 06 1 1 10 56 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21023918.610 7 -16382273.849 7 20659702.515 20659697.055 20659701.302
+ 47.300 43.900
+ -8761330.461 5 -6827010.739 4 22938221.974 22938219.310 22938221.727
+ 32.800 29.500
+ -5926335.647 5 -4617927.709 3 23519968.365 23519966.209 23519967.234
+ 31.500 19.900
+ -6007114.828 5 -4680867.736 4 23115495.848 23115495.460 23115495.719
+ 31.300 26.800
+ -6686370.489 4 -5210155.524 3 23284186.824 23284184.743 23284185.682
+ 28.800 23.400
+ -22815039.422 7 -17777944.707 8 20258010.633 20258006.989 20258009.487
+ 43.800 49.400
+ -10656828.637 7 -8304017.327 6 22174202.690 22174200.330 22174201.765
+ 43.500 36.500
+ -2234429.036 4 -1741110.189 3 24290291.493 24290289.866 24290290.638
+ 25.900 19.900
+ 06 1 1 10 56 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21063320.759 7 -16412976.821 7 20652204.622 20652199.222 20652203.386
+ 47.400 44.100
+ -8855313.969 5 -6900244.642 4 22920337.654 22920334.260 22920337.231
+ 33.100 27.900
+ -5838759.923 5 -4549686.920 3 23536633.625 23536631.399 23536632.383
+ 31.100 21.600
+ -5905970.347 5 -4602053.867 4 23134742.779 23134742.546 23134742.655
+ 30.200 26.500
+ -6794134.993 4 -5294127.791 4 23263680.907 23263678.427 23263678.960
+ 29.900 27.100
+ -22805548.899 7 -17770549.490 8 20259816.548 20259812.935 20259815.428
+ 44.000 49.500
+ -10595052.587 7 -8255880.152 5 22185957.669 22185955.631 22185957.142
+ 43.600 35.900
+ -2168473.576 4 -1689716.343 3 24302842.304 24302840.923 24302841.427
+ 25.600 19.300
+ 06 1 1 10 57 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21102191.469 7 -16443265.686 7 20644807.868 20644802.328 20644806.607
+ 47.600 44.200
+ -8949035.596 5 -6973274.495 4 22902503.296 22902500.011 22902502.751
+ 34.000 28.800
+ -5750939.958 5 -4481255.816 3 23553345.194 23553343.165 23553343.870
+ 31.600 22.100
+ -5804587.256 5 -4523054.079 4 23154036.371 23154035.324 23154035.557
+ 31.600 26.500
+ -6901738.278 4 -5377974.452 4 23243203.892 23243202.189 23243202.207
+ 28.800 28.600
+ -22795570.246 7 -17762773.913 8 20261715.217 20261711.816 20261714.182
+ 43.900 49.400
+ -10533075.859 7 -8207586.608 5 22197751.846 22197749.324 22197750.966
+ 43.000 35.600
+ -2102110.124 4 -1638004.530 2 24315470.914 24315468.494 24315470.318
+ 27.600 16.100
+ 06 1 1 10 57 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21140528.767 7 -16473138.906 7 20637512.680 20637507.022 20637511.378
+ 47.600 44.200
+ -9042492.833 5 -7046098.313 4 22884718.248 22884715.783 22884718.167
+ 33.400 29.500
+ -5662879.011 5 -4412636.938 4 23570102.637 23570100.775 23570101.116
+ 31.500 24.600
+ -5702967.403 5 -4443869.801 4 23173374.917 23173372.757 23173373.632
+ 31.500 26.200
+ -7009177.269 5 -5461693.067 4 23222758.485 23222756.695 23222757.180
+ 30.200 26.500
+ -22785104.603 7 -17754618.863 8 20263706.760 20263703.392 20263705.632
+ 43.700 49.500
+ -10470898.642 7 -8159136.829 5 22209583.441 22209581.402 22209582.792
+ 43.000 35.500
+ -2035340.535 4 -1585976.316 3 24328176.947 24328175.365 24328175.932
+ 25.300 20.500
+ 06 1 1 10 58 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21178330.883 7 -16502595.102 7 20630318.882 20630313.430 20630317.677
+ 47.700 44.300
+ -9135683.063 5 -7118714.074 4 22866985.205 22866982.411 22866984.728
+ 32.800 29.200
+ -5574580.353 5 -4343832.819 3 23586905.298 23586903.439 23586904.153
+ 30.800 22.600
+ -5601112.699 5 -4364502.512 4 23192756.939 23192755.177 23192755.899
+ 31.600 26.500
+ -7116448.792 5 -5545281.211 4 23202345.264 23202343.735 23202344.234
+ 32.100 26.500
+ -22774153.137 7 -17746085.249 8 20265790.721 20265787.397 20265789.646
+ 43.700 49.500
+ -10408521.325 7 -8110531.133 5 22221453.163 22221451.435 22221452.771
+ 42.900 35.600
+ -1968166.943 4 -1533633.253 3 24340959.344 24340957.282 24340958.609
+ 26.200 18.600
+ 06 1 1 10 58 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21215596.121 7 -16531632.948 7 20623227.653 20623222.119 20623226.374
+ 47.400 44.200
+ -9228604.053 5 -7191120.032 4 22849302.942 22849299.940 22849302.705
+ 33.600 29.000
+ -5486046.924 4 -4274845.764 3 23603752.799 23603750.510 23603751.539
+ 29.700 22.100
+ -5499025.159 5 -4284953.802 4 23212183.052 23212181.709 23212182.249
+ 31.000 26.200
+ -7223549.973 5 -5628736.628 4 23181964.445 23181963.099 23181963.242
+ 31.300 26.500
+ -22762717.116 7 -17737174.062 8 20267966.939 20267963.612 20267965.804
+ 43.600 49.500
+ -10345943.933 7 -8061769.539 5 22233361.868 22233359.481 22233361.083
+ 42.700 34.900
+ -1900591.376 4 -1480976.942 3 24353818.570 24353817.374 24353818.036
+ 26.500 20.500
+ 06 1 1 10 59 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21252322.551 7 -16560250.944 7 20616238.844 20616233.330 20616237.496
+ 47.200 44.200
+ -9321252.572 5 -7263313.694 4 22831672.440 22831669.828 22831672.103
+ 33.100 29.700
+ -5397281.968 4 -4205678.277 3 23620644.049 23620642.297 23620642.711
+ 29.700 22.600
+ -5396706.508 5 -4205225.001 4 23231653.242 23231652.611 23231652.592
+ 30.200 25.600
+ -7330477.861 5 -5712056.999 4 23161616.663 23161615.439 23161615.269
+ 31.100 26.500
+ -22750797.396 7 -17727885.966 8 20270235.213 20270231.890 20270234.092
+ 43.700 49.400
+ -10283166.786 7 -8012852.280 5 22245308.033 22245305.483 22245307.135
+ 42.500 35.100
+ -1832615.758 4 -1428008.959 3 24366754.137 24366752.178 24366753.628
+ 25.600 21.100
+ 06 1 1 10 59 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21288508.489 7 -16588447.775 7 20609352.853 20609347.334 20609351.510
+ 47.200 44.300
+ -9413626.455 5 -7335293.326 5 22814094.560 22814091.624 22814094.168
+ 34.400 30.200
+ -5308288.653 4 -4136332.865 3 23637578.538 23637577.265 23637577.548
+ 27.400 23.400
+ -5294158.811 5 -4125317.738 4 23251166.748 23251166.652 23251167.081
+ 31.300 26.500
+ -7437229.356 5 -5795239.938 4 23141303.169 23141301.044 23141301.627
+ 32.000 25.300
+ -22738394.709 7 -17718221.532 8 20272595.291 20272592.037 20272594.224
+ 43.700 49.500
+ -10220190.340 7 -7963779.728 5 22257291.550 22257289.387 22257291.027
+ 42.400 34.600
+ -1764242.200 4 -1374730.859 3 24379764.768 24379763.359 24379764.518
+ 24.900 20.500
+ 06 1 1 11 0 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21324152.152 7 -16616222.059 7 20602569.847 20602564.599 20602568.699
+ 47.400 44.400
+ -9505722.678 5 -7407056.610 5 22796568.888 22796566.219 22796568.648
+ 34.800 30.400
+ -5219070.169 4 -4066812.024 3 23654555.944 23654554.761 23654555.064
+ 25.600 22.600
+ -5191383.874 5 -4045233.387 4 23270724.526 23270724.098 23270724.309
+ 30.400 24.200
+ -7543801.461 5 -5878283.116 4 23121023.367 23121021.048 23121021.673
+ 30.800 25.300
+ -22725510.483 7 -17708181.872 8 20275046.952 20275043.839 20275045.834
+ 43.600 49.400
+ -10157014.648 7 -7914551.927 5 22269313.668 22269311.487 22269313.081
+ 42.600 34.700
+ -1695472.855 4 -1321144.361 3 24392852.696 24392849.873 24392851.484
+ 26.200 19.900
+ 06 1 1 11 0 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21359251.910 7 -16643572.519 7 20595890.739 20595885.155 20595889.519
+ 47.200 44.300
+ -9597538.722 5 -7478601.603 4 22779097.603 22779093.945 22779097.100
+ 35.700 29.200
+ -5129629.268 4 -3997117.860 3 23671576.319 23671574.858 23671575.194
+ 27.100 21.600
+ -5088383.580 4 -3964973.445 4 23290325.753 23290324.082 23290324.658
+ 29.700 25.300
+ -7650191.290 5 -5961184.198 4 23100777.397 23100775.774 23100775.901
+ 30.600 26.800
+ -22712145.936 7 -17697767.939 8 20277590.155 20277586.978 20277589.098
+ 43.800 49.400
+ -10093640.121 7 -7865169.187 5 22281373.376 22281371.259 22281372.778
+ 42.500 34.900
+ -1626309.674 3 -1267251.002 2 24406012.553 24406010.760 24406011.563
+ 23.400 16.100
+ 06 1 1 11 1 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21393805.751 7 -16670497.584 7 20589315.348 20589309.840 20589314.071
+ 47.200 44.300
+ -9689072.304 5 -7549926.468 5 22761678.514 22761675.915 22761678.432
+ 35.500 30.100
+ -5039969.422 4 -3927253.074 3 23688638.612 23688636.436 23688637.110
+ 27.900 19.900
+ -4985160.045 5 -3884539.538 4 23309968.597 23309967.009 23309967.789
+ 30.800 25.300
+ -7756395.824 5 -6043940.918 4 23080567.175 23080565.357 23080565.718
+ 31.000 26.500
+ -22698302.273 7 -17686980.666 8 20280224.694 20280221.265 20280223.575
+ 43.600 49.300
+ -10030066.900 7 -7815631.620 5 22293471.074 22293468.600 22293470.375
+ 42.500 34.500
+ -1556754.783 3 -1213052.376 2 24419248.242 24419246.190 24419247.642
+ 23.000 12.600
+ 06 1 1 11 1 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21427812.366 7 -16696996.247 7 20582844.157 20582838.697 20582842.838
+ 47.200 44.500
+ -9780320.509 5 -7621028.969 5 22744315.062 22744311.898 22744314.649
+ 35.400 30.100
+ -4950094.032 4 -3857220.325 2 23705740.957 23705739.009 23705739.986
+ 28.100 17.800
+ -4881715.016 4 -3803933.052 4 23329653.283 23329651.932 23329652.398
+ 28.400 24.200
+ -7862412.102 5 -6126550.982 4 23060392.214 23060391.479 23060391.079
+ 31.500 27.600
+ -22683980.732 7 -17675821.025 8 20282949.873 20282946.559 20282948.808
+ 43.800 49.300
+ -9966295.314 7 -7765939.484 5 22305606.109 22305603.943 22305605.655
+ 42.200 34.000
+ -1486810.329 4 -1158550.192 3 24432559.426 24432557.280 24432558.396
+ 26.200 19.300
+ 06 1 1 11 2 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21461269.764 7 -16723066.946 7 20576477.143 20576471.985 20576475.963
+ 47.100 44.600
+ -9871281.014 5 -7691907.302 5 22727005.222 22727002.649 22727005.036
+ 35.400 30.200
+ -4860005.831 4 -3787021.778 2 23722884.164 23722882.319 23722883.017
+ 29.000 13.900
+ -4778050.420 4 -3723155.473 4 23349379.769 23349378.786 23349379.130
+ 29.200 24.600
+ -7968237.027 5 -6209011.910 4 23040254.675 23040253.375 23040253.757
+ 31.100 27.100
+ -22669182.233 7 -17664289.724 8 20285765.996 20285762.680 20285764.877
+ 43.800 49.300
+ -9902325.686 7 -7716093.020 5 22317779.852 22317777.097 22317778.877
+ 42.500 34.500
+ -1416478.381 4 -1103746.079 3 24445942.825 24445940.930 24445941.948
+ 25.900 19.300
+ 06 1 1 11 2 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21494176.354 7 -16748708.443 7 20570215.456 20570210.082 20570214.157
+ 47.100 44.700
+ -9961950.880 5 -7762559.149 5 22709751.501 22709748.754 22709751.013
+ 34.600 30.600
+ -4769708.359 4 -3716660.134 1 23740067.816 23740065.295 23740066.575
+ 29.200 11.000
+ -4674168.191 4 -3642208.282 3 23369148.204 23369146.887 23369147.238
+ 29.000 23.000
+ -8073867.470 5 -6291321.306 4 23020154.092 23020152.654 23020152.909
+ 32.400 27.400
+ -22653908.258 7 -17652387.922 8 20288672.489 20288669.303 20288671.421
+ 43.800 49.400
+ -9838158.180 7 -7666092.372 5 22329990.061 22329987.903 22329989.477
+ 42.500 34.500
+ -1345761.007 4 -1048641.608 3 24459399.877 24459397.773 24459399.157
+ 26.500 19.300
+ 06 1 1 11 3 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21526530.388 7 -16773919.379 7 20564058.763 20564053.208 20564057.379
+ 47.100 44.700
+ -10052327.641 5 -7832982.593 5 22692553.896 22692550.879 22692553.501
+ 35.600 31.500
+ -4679204.483 4 -3646137.653 1 23757289.373 23757287.760 23757287.940
+ 25.300 6.500
+ -4570070.149 4 -3561092.950 3 23388956.454 23388956.387 23388956.250
+ 27.600 23.400
+ -8179300.371 5 -6373476.778 4 23000090.784 23000089.349 23000089.766
+ 32.300 26.800
+ -22638159.806 7 -17640116.399 8 20291669.403 20291666.105 20291668.318
+ 44.100 49.300
+ -9773793.093 7 -7615937.769 5 22342238.099 22342236.166 22342237.595
+ 42.100 34.500
+ -1274660.201 4 -993238.413 3 24472929.130 24472928.252 24472928.678
+ 25.900 21.600
+ 06 1 1 11 3 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21558330.562 7 -16798698.731 7 20558007.309 20558001.882 20558006.022
+ 47.100 44.700
+ -10142408.766 5 -7903175.680 5 22675411.970 22675408.824 22675411.519
+ 35.500 31.500
+ -4588497.773 4 -3575457.134 2 23774550.441 23774548.464 23774549.184
+ 25.900 13.900
+ -4465758.328 4 -3479811.029 4 23408806.690 23408805.960 23408806.227
+ 29.000 24.900
+ -8284532.825 5 -6455476.069 4 22980065.185 22980064.241 22980064.761
+ 34.000 27.100
+ -22621938.245 7 -17627476.217 8 20294756.276 20294752.873 20294755.260
+ 44.300 49.200
+ -9709230.681 6 -7565629.398 5 22354524.478 22354522.059 22354523.524
+ 41.800 34.500
+ -1203178.273 4 -937538.225 3 24486531.981 24486530.069 24486531.565
+ 26.200 18.600
+ 06 1 1 11 4 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21589575.342 7 -16823045.313 7 20552061.602 20552056.193 20552060.340
+ 47.100 44.700
+ -10232191.538 5 -7973136.280 5 22658326.362 22658323.707 22658325.934
+ 34.700 31.000
+ -4497590.791 4 -3504620.557 2 23791849.932 23791847.855 23791848.517
+ 28.600 17.000
+ -4361234.765 4 -3398364.126 4 23428697.663 23428696.438 23428696.652
+ 29.000 24.600
+ -8389561.712 5 -6537316.728 4 22960078.692 22960078.029 22960077.900
+ 32.600 28.100
+ -22605244.753 7 -17614468.302 8 20297932.782 20297929.528 20297931.736
+ 44.100 49.100
+ -9644471.336 6 -7515167.571 5 22366847.222 22366845.189 22366846.728
+ 41.900 34.000
+ -1131317.333 4 -881542.654 2 24500206.744 24500205.206 24500206.009
+ 26.800 17.000
+ 06 1 1 11 4 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21620262.523 7 -16846957.403 7 20546222.061 20546216.538 20546220.826
+ 47.300 44.600
+ -10321673.173 6 -8042862.225 5 22641298.630 22641295.706 22641298.259
+ 36.100 30.400
+ -4406487.022 4 -3433630.628 3 23809186.159 23809184.561 23809185.152
+ 28.800 19.300
+ -4256501.367 4 -3316753.705 4 23448627.652 23448626.622 23448626.756
+ 29.900 24.200
+ -8494384.252 5 -6618996.565 4 22940131.698 22940130.810 22940130.730
+ 32.100 27.400
+ -22588080.501 7 -17601093.557 8 20301198.937 20301195.740 20301197.880
+ 44.100 49.100
+ -9579515.117 6 -7464552.345 5 22379207.748 22379206.332 22379207.351
+ 41.500 34.600
+ -1059079.482 4 -825253.428 3 24513952.987 24513951.423 24513952.158
+ 24.200 18.600
+ 06 1 1 11 5 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21650390.867 7 -16870434.030 7 20540488.888 20540483.303 20540487.603
+ 47.200 44.700
+ -10410851.161 5 -8112351.579 5 22624328.367 22624325.888 22624328.168
+ 34.800 31.300
+ -4315189.966 4 -3362490.107 3 23826559.636 23826558.108 23826558.359
+ 28.600 21.100
+ -4151560.032 4 -3234981.273 4 23468597.641 23468596.034 23468596.744
+ 29.500 24.600
+ -8598997.221 5 -6700513.139 4 22920225.173 22920223.578 22920224.078
+ 33.600 28.100
+ -22570446.952 7 -17587353.125 8 20304554.608 20304551.304 20304553.521
+ 44.000 49.100
+ -9514362.478 6 -7413784.071 5 22391606.419 22391604.503 22391605.584
+ 41.300 34.800
+ -986466.823 4 -768672.166 2 24527771.513 24527768.998 24527770.769
+ 24.900 17.800
+ 06 1 1 11 5 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21679958.800 7 -16893473.980 7 20534862.363 20534856.708 20534861.107
+ 47.400 44.700
+ -10499722.850 5 -8181602.231 5 22607416.850 22607414.057 22607416.640
+ 35.800 30.800
+ -4223702.119 4 -3291200.899 3 23843969.205 23843967.579 23843967.848
+ 28.600 21.100
+ -4046412.702 4 -3153048.318 4 23488605.476 23488605.640 23488605.146
+ 26.800 25.300
+ -8703397.752 5 -6781864.164 4 22900358.182 22900356.885 22900357.306
+ 33.200 27.600
+ -22552345.125 7 -17573247.805 8 20307999.352 20307995.987 20307998.244
+ 44.200 49.000
+ -9449013.721 6 -7362862.967 5 22404041.897 22404039.724 22404041.144
+ 41.400 34.100
+ -913481.676 4 -711800.624 2 24541659.347 24541657.427 24541658.719
+ 25.900 17.800
+ 06 1 1 11 6 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21708964.819 7 -16916076.071 7 20529342.646 20529337.117 20529341.460
+ 47.500 44.800
+ -10588285.675 6 -8250612.234 5 22590564.378 22590561.130 22590564.048
+ 37.400 31.800
+ -4132027.016 4 -3219765.796 3 23861414.487 23861412.994 23861413.295
+ 26.500 23.400
+ -3941061.396 4 -3070956.439 4 23508654.362 23508652.749 23508653.319
+ 29.700 24.900
+ -8807582.799 5 -6863047.293 4 22880532.750 22880531.048 22880531.605
+ 33.100 28.400
+ -22533776.368 7 -17558778.643 8 20311532.859 20311529.535 20311531.785
+ 44.100 48.900
+ -9383468.986 6 -7311789.152 5 22416514.471 22416512.080 22416513.879
+ 41.800 33.100
+ -840126.097 4 -654640.440 2 24555618.707 24555616.830 24555617.989
+ 24.200 17.800
+ 06 1 1 11 6 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21737407.385 7 -16938239.111 7 20523930.558 20523924.661 20523929.148
+ 47.200 44.800
+ -10676537.028 6 -8319379.535 5 22573770.657 22573767.538 22573770.355
+ 36.700 31.500
+ -4040167.882 4 -3148187.302 3 23878894.782 23878893.186 23878893.552
+ 26.500 22.600
+ -3835508.202 4 -2988707.204 3 23528740.830 23528739.008 23528739.355
+ 29.900 23.800
+ -8911549.576 5 -6944060.327 4 22860749.483 22860746.983 22860747.665
+ 32.600 29.500
+ -22514742.033 7 -17543946.691 8 20315155.022 20315151.637 20315153.926
+ 44.100 48.900
+ -9317728.513 6 -7260562.811 5 22429024.791 22429022.592 22429024.031
+ 41.300 34.300
+ -766402.297 3 -597193.326 3 24569648.094 24569647.034 24569647.105
+ 23.800 19.900
+ 06 1 1 11 7 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21765284.954 7 -16959961.891 7 20518625.337 20518619.764 20518624.031
+ 47.400 44.800
+ -10764474.118 6 -8387901.928 5 22557036.487 22557033.891 22557036.281
+ 36.500 31.600
+ -3948127.513 4 -3076467.583 3 23896409.303 23896407.927 23896408.080
+ 25.900 21.600
+ -3729754.962 4 -2906302.115 3 23548864.889 23548863.152 23548863.383
+ 27.900 23.000
+ -9015294.575 5 -7024900.566 4 22841006.557 22841004.616 22841005.109
+ 31.600 27.900
+ -22495243.170 7 -17528752.771 8 20318865.543 20318862.170 20318864.474
+ 44.400 49.000
+ -9251792.720 6 -7209184.287 5 22441572.168 22441569.940 22441571.390
+ 41.600 34.300
+ -692312.374 3 -539460.926 2 24583746.441 24583744.830 24583745.830
+ 23.000 16.100
+ 06 1 1 11 7 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21792595.891 7 -16981243.142 7 20513428.140 20513422.655 20513426.946
+ 47.400 44.800
+ -10852094.478 6 -8456177.544 5 22540363.176 22540360.037 22540362.841
+ 37.200 31.000
+ -3855909.372 4 -3004609.346 2 23913957.797 23913956.215 23913956.674
+ 25.600 17.000
+ -3623803.730 4 -2823742.749 3 23569025.422 23569024.665 23569025.056
+ 27.600 21.600
+ -9118815.107 5 -7105565.881 4 22821306.695 22821305.358 22821305.595
+ 32.300 28.100
+ -22475281.529 7 -17513198.245 8 20322664.049 20322660.779 20322663.006
+ 44.400 49.000
+ -9185661.845 6 -7157653.741 5 22454156.323 22454153.852 22454155.575
+ 41.400 33.400
+ -617858.565 4 -481444.935 2 24597915.417 24597912.718 24597914.783
+ 25.600 17.000
+ 06 1 1 11 8 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21819338.994 7 -17002081.921 7 20508339.130 20508333.609 20508337.882
+ 47.200 44.900
+ -10939395.640 6 -8524204.423 5 22523750.167 22523746.959 22523749.739
+ 36.400 30.800
+ -3763516.523 4 -2932614.934 3 23931539.181 23931537.743 23931538.380
+ 26.500 19.300
+ -3517656.560 4 -2741030.684 4 23589225.038 23589224.556 23589224.486
+ 27.900 24.200
+ -9222107.845 5 -7186053.703 4 22801650.495 22801649.309 22801649.613
+ 33.600 26.500
+ -22454858.102 7 -17497283.884 8 20326550.443 20326547.223 20326549.356
+ 44.500 49.000
+ -9119336.034 6 -7105971.289 5 22466776.902 22466775.150 22466776.611
+ 41.000 33.200
+ -543043.044 3 -423147.145 3 24612151.444 24612149.605 24612150.662
+ 22.600 18.600
+ 06 1 1 11 8 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21845512.583 7 -17022476.922 7 20503358.448 20503353.088 20503357.195
+ 47.400 45.200
+ -11026374.221 6 -8591979.940 5 22507198.686 22507195.879 22507198.378
+ 36.500 32.000
+ -3670952.141 4 -2860486.899 3 23949153.884 23949152.710 23949152.746
+ 26.200 20.500
+ -3411315.347 4 -2658167.420 4 23609461.597 23609460.237 23609460.517
+ 26.200 24.600
+ -9325169.920 5 -7266361.804 4 22782037.756 22782037.159 22782037.667
+ 33.900 27.100
+ -22433974.262 7 -17481010.760 8 20330524.520 20330521.296 20330523.439
+ 44.400 48.900
+ -9052815.771 6 -7054137.323 5 22479436.016 22479433.532 22479435.330
+ 41.300 33.400
+ -467868.144 4 -364569.329 3 24626457.848 24626455.364 24626456.898
+ 24.600 22.100
+ 06 1 1 11 9 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21871115.324 7 -17042427.112 7 20498486.447 20498481.021 20498485.192
+ 47.400 45.100
+ -11113028.122 6 -8659502.452 5 22490708.867 22490706.048 22490708.588
+ 37.600 32.000
+ -3578219.413 4 -2788227.670 3 23966800.295 23966798.986 23966799.200
+ 24.900 19.300
+ -3304782.066 4 -2575154.520 3 23629734.636 23629732.972 23629733.388
+ 28.800 23.400
+ -9427998.434 5 -7346487.889 4 22762470.516 22762469.729 22762470.135
+ 34.000 29.000
+ -22412631.398 7 -17464379.954 8 20334585.847 20334582.635 20334584.794
+ 44.500 48.900
+ -8986101.187 6 -7002151.941 5 22492131.393 22492129.162 22492130.662
+ 40.800 34.000
+ -392335.970 3 -305713.102 3 24640829.745 24640828.401 24640829.243
+ 22.600 19.900
+ 06 1 1 11 9 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21896145.867 7 -17061931.434 7 20493723.305 20493717.704 20493722.069
+ 47.300 44.900
+ -11199354.700 6 -8726769.920 5 22474281.705 22474278.574 22474281.134
+ 36.800 31.600
+ -3485321.368 4 -2715839.629 2 23984478.603 23984476.650 23984477.316
+ 27.100 17.000
+ -3198058.628 4 -2491993.415 3 23650042.171 23650041.479 23650041.793
+ 28.400 21.100
+ -9530590.377 5 -7426429.641 4 22742947.285 22742946.931 22742947.103
+ 34.500 29.000
+ -22390830.879 7 -17447392.535 8 20338734.405 20338731.156 20338733.321
+ 44.600 48.900
+ -8919192.679 6 -6950015.455 5 22504863.349 22504861.608 22504862.844
+ 40.500 34.300
+ -316448.778 3 -246580.224 3 24655271.181 24655268.790 24655270.006
+ 23.800 18.600
+ 06 1 1 11 10 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21920602.672 7 -17080988.684 7 20489069.363 20489063.737 20489068.016
+ 47.100 45.000
+ -11285351.393 6 -8793780.334 5 22457916.941 22457913.882 22457916.670
+ 37.600 31.600
+ -3392261.195 4 -2643325.231 2 24002187.680 24002185.760 24002186.267
+ 28.100 17.800
+ -3091147.064 4 -2408685.735 2 23670386.581 23670386.077 23670386.434
+ 27.600 17.800
+ -9632942.563 5 -7506184.553 4 22723471.990 22723469.877 22723470.513
+ 34.100 28.600
+ -22368574.125 7 -17430049.608 8 20342969.602 20342966.511 20342968.579
+ 44.600 48.900
+ -8852090.455 6 -6897728.013 5 22517632.798 22517630.680 22517631.966
+ 40.300 33.400
+ -240208.775 3 -187172.435 2 24669779.528 24669776.861 24669778.638
+ 23.400 17.800
+ 06 1 1 11 10 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21944484.370 7 -17099597.799 7 20484524.693 20484519.202 20484523.395
+ 47.100 44.800
+ -11371015.100 6 -8860531.281 5 22441615.812 22441612.928 22441615.532
+ 38.000 32.700
+ -3299042.278 4 -2570687.138 2 24019926.451 24019924.711 24019925.422
+ 27.100 15.100
+ -2984049.549 4 -2325233.143 2 23690767.291 23690765.864 23690766.481
+ 27.900 15.100
+ -9735052.051 5 -7585750.358 5 22704041.728 22704039.305 22704040.078
+ 34.600 30.100
+ -22345862.526 7 -17412352.257 8 20347291.656 20347288.444 20347290.538
+ 44.500 48.900
+ -8784794.792 6 -6845289.846 5 22530438.216 22530436.538 22530437.899
+ 40.800 33.400
+ -163618.210 3 -127491.508 3 24684353.639 24684352.763 24684353.390
+ 23.000 21.100
+ 06 1 1 11 11 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21967789.708 7 -17117757.803 7 20480089.840 20480084.239 20480088.593
+ 47.100 44.700
+ -11456343.634 6 -8927021.043 5 22425378.328 22425375.454 22425377.981
+ 37.700 33.000
+ -3205667.584 4 -2497927.666 2 24037694.915 24037693.212 24037693.807
+ 25.600 17.000
+ -2876767.874 4 -2241637.032 3 23711183.191 23711181.463 23711181.626
+ 25.900 20.500
+ -9836916.030 5 -7665124.859 5 22684657.128 22684655.267 22684655.632
+ 33.500 30.200
+ -22322697.307 7 -17394301.435 8 20351699.902 20351696.654 20351698.767
+ 44.500 48.900
+ -8717306.039 6 -6792701.209 5 22543281.898 22543279.073 22543280.818
+ 40.300 32.800
+ -86679.217 4 -67539.057 3 24698994.770 24698993.134 24698994.347
+ 25.300 19.900
+ 06 1 1 11 11 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21990517.023 7 -17135467.397 7 20475765.179 20475759.354 20475763.847
+ 47.100 44.700
+ -11541334.180 6 -8993247.437 5 22409205.012 22409202.268 22409204.736
+ 38.000 33.600
+ -3112140.533 4 -2425049.499 2 24055492.461 24055490.775 24055491.290
+ 24.900 17.800
+ -2769304.051 3 -2157899.036 3 23731632.142 23731631.067 23731630.952
+ 23.800 23.000
+ -9938531.244 5 -7744305.502 4 22665319.188 22665318.096 22665318.670
+ 34.300 29.500
+ -22299079.798 7 -17375898.180 8 20356193.957 20356190.916 20356192.883
+ 44.500 48.800
+ -8649624.394 6 -6739962.275 5 22556160.620 22556158.578 22556160.022
+ 40.300 33.100
+ -9394.158 3 -7316.890 3 24713702.462 24713700.426 24713701.279
+ 23.400 20.500
+ 06 1 1 11 12 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22012665.643 7 -17152726.064 7 20471550.306 20471544.745 20471549.066
+ 47.300 44.900
+ -11625984.130 6 -9059208.438 5 22393096.409 22393093.939 22393096.234
+ 38.100 33.100
+ -3018463.726 4 -2352054.585 1 24073318.588 24073316.901 24073317.396
+ 27.600 6.500
+ -2661660.102 4 -2074020.702 3 23752115.351 23752115.536 23752114.992
+ 25.600 23.800
+ -10039894.647 5 -7823289.928 4 22646029.937 22646029.364 22646029.788
+ 34.600 29.000
+ -22275011.611 7 -17357143.749 8 20360774.101 20360770.896 20360772.974
+ 44.800 48.700
+ -8581750.252 6 -6687073.349 5 22569076.991 22569074.589 22569076.091
+ 40.100 33.400
+ 68234.751 3 53173.112 3 24728474.010 24728472.632 24728473.122
+ 23.800 18.600
+ 06 1 1 11 12 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22034233.880 7 -17169532.482 7 20467445.992 20467440.448 20467444.667
+ 47.100 44.900
+ -11710291.161 6 -9124902.229 5 22377053.860 22377050.820 22377053.520
+ 38.100 33.800
+ -2924640.422 3 -2278945.538 2 24091172.588 24091170.819 24091171.396
+ 23.800 12.600
+ -2553838.192 4 -1990003.642 3 23772633.418 23772632.763 23772633.053
+ 27.600 22.600
+ -10141003.518 5 -7902076.034 5 22626790.678 22626789.072 22626789.748
+ 35.900 30.100
+ -22250493.842 7 -17338038.988 8 20365439.645 20365436.422 20365438.564
+ 44.800 48.700
+ -8513683.837 6 -6634034.593 5 22582029.076 22582027.230 22582028.538
+ 40.300 32.800
+ 146205.174 3 113929.298 2 24743310.354 24743309.207 24743309.717
+ 23.000 16.100
+ 06 1 1 11 13 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22055220.165 7 -17185885.430 7 20463452.379 20463446.801 20463451.142
+ 47.200 44.900
+ -11794252.130 6 -9190326.366 5 22361076.611 22361073.382 22361076.233
+ 39.200 32.600
+ -2830673.923 4 -2205724.939 1 24109054.331 24109052.053 24109053.242
+ 25.600 6.500
+ -2445840.303 4 -1905849.460 3 23793185.478 23793184.570 23793184.314
+ 27.400 23.400
+ -10241854.720 6 -7980661.380 5 22607599.579 22607598.030 22607598.259
+ 36.000 30.800
+ -22225528.107 7 -17318585.168 8 20370190.555 20370187.240 20370189.421
+ 44.800 48.600
+ -8445425.528 6 -6580846.312 5 22595018.344 22595016.297 22595017.743
+ 40.000 32.600
+ 224514.856 3 174949.829 3 24758212.875 24758212.390 24758211.773
+ 19.300 20.500
+ 06 1 1 11 13 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22075623.599 7 -17201784.212 7 20459569.730 20459564.222 20459568.454
+ 47.100 45.000
+ -11877864.609 6 -9255478.957 5 22345165.179 22345162.330 22345164.940
+ 37.700 32.300
+ -2736567.669 4 -2132395.404 2 24126961.493 24126959.873 24126960.481
+ 27.100 16.100
+ -2337668.494 4 -1821559.781 3 23813770.848 23813768.578 23813769.752
+ 26.800 21.100
+ -10342445.157 5 -8059043.499 5 22588458.321 22588456.283 22588456.832
+ 35.200 31.000
+ -22200115.922 7 -17298783.464 8 20375026.180 20375022.999 20375025.139
+ 45.000 48.600
+ -8376975.545 6 -6527508.669 5 22608044.212 22608041.887 22608043.545
+ 40.200 32.400
+ 303161.722 4 236233.091 2 24773179.486 24773177.369 24773178.540
+ 24.200 16.100
+ 06 1 1 11 14 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22095442.768 7 -17217227.720 7 20455798.260 20455792.814 20455797.032
+ 46.900 45.100
+ -11961126.100 6 -9320358.034 5 22329321.137 22329318.225 22329320.866
+ 37.700 32.700
+ -2642324.396 4 -2058959.118 2 24144895.593 24144894.362 24144894.315
+ 24.600 16.100
+ -2229324.850 4 -1737136.202 3 23834384.727 23834386.168 23834385.730
+ 25.600 21.100
+ -10442771.949 5 -8137220.204 5 22569366.324 22569364.642 22569364.975
+ 35.700 31.000
+ -22174258.682 7 -17278634.966 8 20379946.509 20379943.520 20379945.479
+ 44.800 48.600
+ -8308334.217 6 -6474021.933 5 22621106.319 22621103.903 22621105.742
+ 40.500 32.300
+ 382143.343 3 297777.227 3 24788209.196 24788207.620 24788208.601
+ 22.100 20.500
+ 06 1 1 11 14 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22114676.599 7 -17232215.118 7 20452138.276 20452132.655 20452137.019
+ 47.100 45.000
+ -12044033.690 6 -9384961.349 5 22313544.487 22313541.644 22313544.124
+ 38.600 33.200
+ -2547947.443 3 -1985418.677 2 24162854.610 24162853.576 24162853.645
+ 23.000 17.800
+ -2120811.370 3 -1652580.250 3 23855034.247 23855035.460 23855034.928
+ 21.600 20.500
+ -10542831.886 5 -8215188.955 5 22550323.461 22550323.689 22550323.740
+ 34.400 30.600
+ -22147957.994 7 -17258140.921 8 20384951.533 20384948.424 20384950.429
+ 45.000 48.500
+ -8239501.854 6 -6420386.334 5 22634204.818 22634202.286 22634204.040
+ 40.300 32.300
+ 461457.434 3 359580.355 3 24803301.494 24803300.481 24803300.598
+ 21.100 21.100
+ 06 1 1 11 15 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22133323.830 7 -17246745.431 7 20448589.823 20448584.160 20448588.621
+ 47.300 45.100
+ -12126584.863 6 -9449286.937 5 22297835.731 22297832.611 22297835.371
+ 38.700 33.100
+ -2453439.798 4 -1911776.416 3 24180840.279 24180837.593 24180838.646
+ 25.900 19.300
+ -2012130.071 3 -1567893.576 2 23875717.773 23875716.458 23875716.671
+ 23.400 17.800
+ -10642622.239 5 -8292947.628 5 22531334.924 22531334.103 22531334.453
+ 35.400 31.000
+ -22121215.055 7 -17237302.267 8 20390040.546 20390037.416 20390039.530
+ 45.200 48.600
+ -8170478.680 6 -6366602.050 5 22647338.897 22647336.898 22647338.443
+ 40.000 31.800
+ 06 1 1 11 15 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22151383.526 7 -17260817.919 7 20445153.260 20445147.644 20445151.992
+ 47.200 45.200
+ -12208777.012 6 -9513332.774 5 22282194.908 22282191.989 22282194.543
+ 38.600 33.600
+ -2358804.551 4 -1838034.719 3 24198848.049 24198846.542 24198846.887
+ 27.900 20.500
+ -1903283.060 4 -1483077.749 3 23896429.607 23896429.495 23896429.315
+ 24.600 18.600
+ -10742139.850 5 -8370493.793 5 22512398.350 22512396.527 22512396.935
+ 35.900 30.600
+ -22094031.320 7 -17216120.136 8 20395213.481 20395210.227 20395212.419
+ 45.200 48.400
+ -8101265.042 6 -6312669.351 5 22660509.720 22660507.783 22660509.144
+ 39.500 32.300
+ 06 1 1 11 16 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22168854.167 7 -17274431.406 7 20441828.716 20441823.089 20441827.473
+ 47.100 45.200
+ -12290607.335 6 -9577096.663 5 22266622.831 22266620.170 22266622.610
+ 38.600 33.600
+ -2264045.159 4 -1764196.265 2 24216879.913 24216878.319 24216878.753
+ 25.600 17.800
+ -1794272.445 4 -1398134.444 3 23917173.159 23917173.870 23917173.468
+ 26.500 20.500
+ -10841381.676 5 -8447825.071 5 22493514.081 22493511.207 22493512.315
+ 35.500 30.400
+ -22066408.191 7 -17194595.615 8 20400469.894 20400466.728 20400468.907
+ 45.400 48.300
+ -8031861.283 6 -6258588.507 5 22673717.187 22673715.048 22673716.365
+ 39.700 32.100
+ 06 1 1 11 16 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22185734.938 7 -17287585.255 7 20438616.310 20438610.632 20438615.088
+ 47.100 45.000
+ -12372073.489 6 -9640576.788 5 22251120.344 22251117.804 22251120.133
+ 38.600 34.300
+ -2169164.579 3 -1690263.357 2 24234935.007 24234933.779 24234934.056
+ 23.800 17.000
+ -1685100.216 4 -1313065.213 3 23937949.570 23937948.526 23937948.747
+ 26.500 20.500
+ -10940344.940 6 -8524939.288 5 22474681.144 22474678.928 22474679.818
+ 36.300 30.600
+ -22038347.320 7 -17172730.001 8 20405809.850 20405806.556 20405808.755
+ 45.300 48.200
+ -7962267.614 6 -6204359.688 5 22686960.164 22686958.423 22686959.662
+ 39.700 32.700
+ 06 1 1 11 17 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22202024.445 7 -17300278.379 7 20435516.472 20435510.812 20435515.265
+ 47.000 44.900
+ -12453172.852 6 -9703771.091 5 22235687.419 22235685.234 22235687.266
+ 38.600 35.100
+ -2074165.954 3 -1616238.488 2 24253012.664 24253011.444 24253011.442
+ 22.600 17.000
+ -1575768.438 4 -1227871.636 2 23958755.751 23958753.643 23958754.011
+ 24.600 17.800
+ -11039026.467 6 -8601833.960 5 22455901.862 22455900.768 22455901.254
+ 36.600 31.500
+ -22009850.095 7 -17150524.371 8 20411232.665 20411229.391 20411231.594
+ 45.400 48.200
+ -7892484.458 6 -6149983.223 5 22700240.378 22700237.609 22700239.259
+ 39.300 32.300
+ 06 1 1 11 17 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22217721.433 7 -17312509.801 7 20432529.247 20432523.773 20432528.131
+ 47.100 44.800
+ -12533902.546 6 -9766677.343 5 22220325.302 22220322.761 22220324.933
+ 38.800 34.600
+ -1979052.064 4 -1542123.812 2 24271112.340 24271110.845 24271111.036
+ 25.900 12.600
+ -1466279.216 4 -1142555.386 2 23979589.485 23979588.366 23979588.638
+ 25.300 17.800
+ -11137423.280 6 -8678506.773 5 22437177.048 22437176.159 22437176.824
+ 36.300 30.600
+ -21980918.028 7 -17127979.901 8 20416738.314 20416734.957 20416737.112
+ 45.300 48.200
+ -7822512.112 6 -6095459.326 5 22713554.653 22713552.615 22713554.159
+ 38.800 31.800
+ 06 1 1 11 18 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22232825.104 7 -17324278.898 7 20429655.319 20429649.718 20429654.065
+ 47.000 45.100
+ -12614260.086 6 -9829293.608 5 22205033.911 22205030.970 22205033.579
+ 38.900 33.800
+ -1883826.303 3 -1467921.951 2 24289233.144 24289231.577 24289232.168
+ 23.400 12.600
+ -1356634.502 4 -1057117.976 2 24000454.506 24000453.031 24000453.932
+ 26.800 17.800
+ -11235532.621 6 -8754955.593 5 22418508.729 22418506.825 22418507.479
+ 36.500 31.500
+ -21951552.627 7 -17105097.771 8 20422326.201 20422323.029 20422325.204
+ 45.500 48.100
+ -7752350.729 6 -6040788.133 5 22726906.534 22726903.969 22726905.614
+ 38.900 31.300
+ 06 1 1 11 18 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22247334.518 7 -17335584.932 7 20426894.455 20426888.729 20426893.179
+ 47.000 45.200
+ -12694242.730 6 -9891617.759 5 22189813.972 22189810.656 22189813.635
+ 39.700 33.100
+ -1788491.866 3 -1393635.351 2 24307374.332 24307372.846 24307373.055
+ 22.100 13.900
+ -1246836.348 3 -971561.023 3 24021349.201 24021347.988 24021347.371
+ 21.100 19.900
+ -11333351.393 6 -8831177.991 5 22399894.996 22399892.504 22399893.448
+ 36.600 31.600
+ -21921755.482 7 -17081879.213 8 20427996.637 20427993.253 20427995.491
+ 45.400 48.000
+ -7682000.784 6 -5985970.003 5 22740293.083 22740291.363 22740292.633
+ 38.600 32.700
+ 06 1 1 11 19 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22261248.325 7 -17346426.861 7 20424246.620 20424240.985 20424245.410
+ 47.000 45.100
+ -12773847.878 6 -9953647.752 5 22174665.468 22174662.551 22174665.130
+ 39.300 34.000
+ -1693051.748 3 -1319266.480 1 24325536.255 24325535.120 24325535.264
+ 21.600 11.000
+ -1136886.843 4 -885886.104 3 24042271.817 24042269.937 24042270.810
+ 25.300 20.500
+ -11430876.681 6 -8907171.702 5 22381336.451 22381333.982 22381334.990
+ 37.300 31.800
+ -21891528.120 7 -17058325.423 7 20433748.476 20433745.258 20433747.506
+ 45.600 47.900
+ -7611462.547 6 -5931005.177 5 22753716.140 22753714.540 22753715.448
+ 37.900 32.100
+ 06 1 1 11 19 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22274565.843 7 -17356804.150 7 20421712.404 20421706.727 20421711.103
+ 46.900 45.100
+ -12853073.005 6 -10015381.617 5 22159589.203 22159586.700 22159588.981
+ 39.500 35.300
+ -1597509.095 3 -1244817.656 2 24343717.627 24343716.739 24343716.124
+ 21.100 12.600
+ -1026788.146 4 -800094.933 3 24063221.882 24063221.260 24063221.705
+ 25.900 19.900
+ -11528105.363 6 -8982934.281 5 22362832.962 22362831.962 22362832.529
+ 37.100 31.100
+ -21860871.898 7 -17034437.455 7 20439582.253 20439578.902 20439581.174
+ 45.600 47.800
+ -7540736.418 6 -5875893.921 5 22767174.846 22767173.216 22767174.388
+ 38.200 31.600
+ 06 1 1 11 20 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22287286.092 7 -17366716.030 7 20419291.766 20419286.189 20419290.557
+ 46.900 45.100
+ -12931915.457 6 -10076817.286 5 22144586.061 22144583.339 22144585.819
+ 39.700 34.600
+ -1501866.909 3 -1170291.308 2 24361917.833 24361916.367 24361916.629
+ 23.000 13.900
+ -916542.254 3 -714189.060 3 24084200.312 24084200.861 24084200.634
+ 23.400 20.500
+ -11625034.315 6 -9058463.317 5 22344388.564 22344386.976 22344387.507
+ 36.800 30.800
+ -21829788.479 7 -17010216.609 7 20445497.251 20445493.910 20445496.193
+ 45.700 47.800
+ -7469822.527 6 -5820636.362 5 22780670.217 22780667.739 22780669.228
+ 38.600 31.500
+ 06 1 1 11 20 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22299407.751 7 -17376161.484 7 20416985.176 20416979.525 20416983.890
+ 46.800 45.400
+ -13010372.770 6 -10137952.860 5 22129656.230 22129653.202 22129655.984
+ 40.200 34.400
+ -1406128.406 4 -1095689.898 3 24380136.342 24380134.839 24380135.521
+ 24.200 18.600
+ -806151.283 3 -628170.178 3 24105206.625 24105207.516 24105206.468
+ 19.300 21.600
+ -11721660.980 6 -9133756.803 5 22326001.776 22325999.636 22326000.241
+ 36.500 31.500
+ -21798279.416 7 -16985664.093 7 20451493.236 20451489.963 20451492.168
+ 45.800 47.800
+ -7398721.361 6 -5765232.862 5 22794199.516 22794197.796 22794198.993
+ 38.100 31.800
+ 06 1 1 11 21 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22310929.821 7 -17385139.722 7 20414792.631 20414787.047 20414791.338
+ 46.800 45.400
+ -13088442.009 6 -10198786.038 5 22114800.304 22114797.233 22114799.921
+ 40.100 34.600
+ -1310296.769 3 -1021015.924 2 24398372.646 24398371.027 24398371.229
+ 23.400 15.100
+ -695617.187 4 -542039.780 3 24126242.197 24126241.628 24126241.612
+ 24.900 22.100
+ -11817982.543 6 -9208812.536 5 22307671.527 22307670.499 22307670.614
+ 37.200 32.400
+ -21766346.191 7 -16960781.059 7 20457569.894 20457566.652 20457568.746
+ 45.900 47.700
+ -7327433.159 6 -5709683.625 5 22807766.252 22807763.443 22807765.175
+ 38.400 31.500
+ 06 1 1 11 21 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22321851.882 7 -17393650.420 7 20412714.066 20412708.605 20412712.895
+ 46.800 45.300
+ -13166120.888 6 -10259315.030 5 22100018.517 22100015.488 22100018.126
+ 39.600 34.700
+ -1214374.948 3 -946271.675 2 24416625.560 24416623.998 24416624.679
+ 21.100 13.900
+ -584942.117 3 -455799.474 3 24147303.651 24147301.631 24147302.204
+ 23.000 19.900
+ -11913995.563 6 -9283627.849 5 22289400.873 22289399.596 22289400.099
+ 38.100 32.400
+ -21733990.532 7 -16935568.851 7 20463726.831 20463723.750 20463725.884
+ 46.000 47.700
+ -7255958.212 6 -5653988.878 5 22821366.664 22821364.725 22821366.221
+ 38.600 31.600
+ 06 1 1 11 22 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22332172.740 7 -17401692.650 7 20410750.208 20410744.605 20410748.950
+ 46.900 45.300
+ -13243406.617 6 -10319537.682 5 22085311.435 22085308.590 22085311.149
+ 40.200 35.200
+ -1118366.221 3 -871459.688 1 24434894.909 24434893.732 24434894.278
+ 23.800 6.500
+ -474128.097 3 -369450.975 3 24168390.358 24168389.746 24168389.379
+ 22.100 20.500
+ -12009697.407 6 -9358200.677 5 22271189.176 22271188.032 22271188.236
+ 37.600 32.400
+ -21701213.864 7 -16910028.589 7 20469964.353 20469960.929 20469963.255
+ 46.100 47.700
+ -7184297.012 6 -5598148.993 5 22835004.062 22835001.041 22835002.899
+ 37.900 30.800
+ 06 1 1 11 22 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22341891.559 7 -17409265.757 7 20408900.457 20408895.167 20408899.366
+ 46.800 45.200
+ -13320296.685 6 -10379452.021 5 22070679.667 22070676.949 22070679.368
+ 40.000 35.100
+ -1022273.315 4 -796582.083 1 24453181.396 24453179.764 24453180.323
+ 24.200 9.000
+ -363177.436 3 -282995.951 3 24189501.954 24189502.910 24189502.676
+ 22.600 19.300
+ -12105084.878 6 -9432528.559 5 22253038.342 22253036.266 22253037.015
+ 37.900 32.300
+ -21668017.488 7 -16884161.285 7 20476281.277 20476277.966 20476280.235
+ 46.200 47.400
+ -7112449.763 6 -5542164.144 5 22848674.985 22848673.628 22848674.813
+ 38.100 31.300
+ 06 1 1 11 23 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22351007.673 7 -17416369.226 7 20407165.663 20407160.464 20407164.485
+ 46.500 45.300
+ -13396788.569 6 -10439056.078 5 22056123.834 22056120.895 22056123.463
+ 40.200 35.200
+ -926099.561 3 -721641.488 2 24471482.575 24471481.493 24471481.276
+ 19.900 15.100
+ -252092.213 4 -196436.068 2 24210642.226 24210641.243 24210641.434
+ 24.900 13.900
+ -12200155.142 6 -9506609.259 5 22234945.906 22234944.926 22234945.515
+ 38.100 32.400
+ -21634403.240 7 -16857968.365 7 20482677.776 20482674.533 20482676.771
+ 46.300 47.400
+ -7040416.916 6 -5486034.676 5 22862382.977 22862380.851 22862382.297
+ 37.800 30.600
+ 06 1 1 11 23 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22359520.029 7 -17423002.232 7 20405545.767 20405540.604 20405544.601
+ 46.500 45.400
+ -13472879.428 6 -10498347.661 5 22041644.368 22041641.039 22041643.995
+ 40.700 34.600
+ -829848.010 3 -646640.354 1 24489798.916 24489797.366 24489797.735
+ 23.800 11.000
+ -140874.377 4 -109772.820 2 24231808.425 24231805.654 24231806.571
+ 27.400 13.900
+ -12294905.397 6 -9580440.599 5 22216916.412 22216914.645 22216915.221
+ 37.700 32.700
+ -21600372.667 7 -16831451.034 7 20489153.495 20489150.305 20489152.510
+ 46.200 47.300
+ -6968198.600 6 -5429760.688 5 22876125.693 22876123.252 22876124.793
+ 37.200 30.800
+ 06 1 1 11 24 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22367427.847 7 -17429164.168 7 20404041.123 20404035.721 20404039.929
+ 46.500 45.200
+ -13548566.846 6 -10557324.881 5 22027241.324 22027238.319 22027241.044
+ 41.000 35.200
+ -733521.866 3 -571581.046 2 24508128.427 24508127.929 24508127.183
+ 23.800 13.900
+ -29526.229 4 -23008.051 1 24252994.753 24252993.400 24252994.851
+ 26.200 9.000
+ -12389332.709 6 -9654020.303 5 22198947.854 22198945.657 22198946.490
+ 38.600 32.700
+ -21565927.543 7 -16804610.676 7 20495708.226 20495705.026 20495707.194
+ 46.200 47.400
+ -6895795.302 6 -5373342.526 5 22889902.769 22889901.584 22889902.652
+ 37.000 30.400
+ 06 1 1 11 24 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22374730.241 7 -17434854.349 7 20402651.635 20402646.125 20402650.382
+ 46.600 45.300
+ -13623848.315 6 -10615985.760 5 22012915.845 22012912.868 22012915.527
+ 41.000 35.600
+ -637123.996 4 -496465.808 2 24526473.535 24526471.650 24526471.995
+ 27.100 15.100
+ 81950.337 4 63856.853 2 24274209.403 24274207.497 24274208.242
+ 24.200 12.600
+ -12483434.071 6 -9727346.012 5 22181040.551 22181038.629 22181039.468
+ 38.400 32.100
+ -21531069.395 7 -16777448.482 7 20502341.609 20502338.314 20502340.439
+ 46.100 47.200
+ -6823207.350 6 -5316780.517 5 22903716.598 22903714.191 22903715.974
+ 37.300 30.200
+ 06 1 1 11 25 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22381426.733 7 -17440072.394 7 20401377.439 20401371.843 20401376.247
+ 46.800 45.200
+ -13698721.145 6 -10674328.224 5 21998668.187 21998664.989 21998667.860
+ 41.300 35.700
+ -540657.497 4 -421297.092 2 24544829.782 24544828.838 24544828.571
+ 25.900 12.600
+ 193553.102 3 150819.971 2 24295447.576 24295445.325 24295445.806
+ 23.400 12.600
+ -12577206.416 6 -9800415.345 5 22163195.594 22163194.153 22163194.951
+ 38.600 31.800
+ -21495799.466 7 -16749965.419 7 20509053.189 20509049.952 20509052.050
+ 45.800 47.100
+ -6750435.017 6 -5260074.813 4 22917564.789 22917562.310 22917564.193
+ 37.100 29.500
+ 06 1 1 11 25 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22387516.505 7 -17444817.671 7 20400218.544 20400212.913 20400217.373
+ 46.800 45.200
+ -13773182.631 6 -10732350.163 5 21984498.304 21984495.586 21984498.014
+ 41.100 35.900
+ -444125.394 3 -346077.325 2 24563199.611 24563197.892 24563197.719
+ 20.500 12.600
+ 305279.804 3 237879.719 3 24316705.015 24316706.604 24316705.420
+ 20.500 20.500
+ -12670647.011 6 -9873226.174 5 22145414.959 22145413.081 22145413.887
+ 38.800 32.400
+ -21460119.613 7 -16722162.936 7 20515842.814 20515839.588 20515841.699
+ 46.100 47.000
+ -6677478.666 6 -5203225.719 4 22931447.805 22931445.884 22931447.174
+ 37.000 29.900
+ 06 1 1 11 26 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22392998.605 7 -17449089.439 7 20399175.306 20399169.680 20399174.055
+ 46.600 45.100
+ -13847230.442 6 -10790049.754 6 21970407.392 21970404.783 21970407.094
+ 40.800 36.200
+ -347530.924 2 -270808.913 2 24581580.961 24581579.482 24581579.776
+ 17.800 12.600
+ 417128.529 3 325034.476 3 24337989.991 24337990.825 24337989.529
+ 20.500 23.800
+ -12763752.951 6 -9945776.230 5 22127697.040 22127695.756 22127696.352
+ 38.800 33.500
+ -21424031.507 7 -16694042.334 7 20522710.075 20522706.934 20522709.023
+ 46.100 46.800
+ -6604338.739 6 -5146233.589 5 22945365.694 22945364.086 22945365.032
+ 36.500 31.000
+ 06 1 1 11 26 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22397872.469 7 -17452887.255 7 20398247.675 20398242.300 20398246.467
+ 46.500 45.200
+ -13920862.325 6 -10847425.242 5 21956395.584 21956393.025 21956395.321
+ 40.600 35.700
+ -250877.075 3 -195494.258 1 24599973.830 24599972.175 24599973.075
+ 20.500 11.000
+ 529097.073 3 412282.604 3 24359296.822 24359297.655 24359296.300
+ 19.900 23.800
+ -12856521.472 6 -10018063.349 5 22110043.421 22110042.563 22110042.988
+ 39.000 33.500
+ -21387536.649 7 -16665604.782 7 20529655.024 20529651.702 20529653.863
+ 46.500 46.800
+ -6531015.460 6 -5089098.586 5 22959318.823 22959316.637 22959318.266
+ 37.000 30.100
+ 06 1 1 11 27 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22402137.626 7 -17456210.756 7 20397436.115 20397430.736 20397434.867
+ 46.500 45.300
+ -13994075.395 6 -10904474.385 5 21942463.733 21942460.925 21942463.467
+ 41.100 35.600
+ -154166.674 3 -120135.543 1 24618377.191 24618375.288 24618375.480
+ 21.100 11.000
+ 641183.368 3 499622.506 3 24380626.025 24380627.148 24380625.967
+ 19.300 21.600
+ -12948949.547 6 -10090085.195 5 22092455.941 22092453.865 22092454.791
+ 39.700 33.400
+ -21350636.568 7 -16636851.471 7 20536676.806 20536673.517 20536675.780
+ 46.500 46.600
+ -6457509.235 6 -5031821.024 5 22973307.039 22973304.601 22973306.170
+ 37.100 30.400
+ 06 1 1 11 27 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22405793.079 7 -17459059.160 7 20396740.528 20396735.120 20396739.329
+ 46.400 45.300
+ -14066866.769 6 -10961194.943 6 21928612.495 21928609.266 21928612.042
+ 41.500 36.000
+ -57402.980 3 -44735.276 1 24636789.820 24636788.947 24636789.291
+ 22.600 9.000
+ 753385.333 4 587052.577 3 24401980.064 24401977.339 24401978.780
+ 24.900 18.600
+ -13041033.991 6 -10161839.287 5 22074932.740 22074930.706 22074931.462
+ 38.600 33.000
+ -21313333.011 7 -16607783.761 7 20543775.518 20543772.200 20543774.457
+ 46.600 46.800
+ -6383820.376 6 -4974401.157 5 22987329.111 22987327.220 22987328.440
+ 36.500 31.100
+ 06 1 1 11 28 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22408838.531 7 -17461432.242 7 20396161.111 20396155.612 20396159.964
+ 46.700 45.400
+ -14139234.214 6 -11017585.158 6 21914841.285 21914838.300 21914840.931
+ 41.600 36.300
+ 39411.084 3 30704.247 2 24655213.798 24655212.258 24655212.493
+ 21.100 15.100
+ 865700.856 4 674571.142 2 24423351.917 24423350.633 24423351.184
+ 24.600 12.600
+ -13132772.312 6 -10233323.662 5 22057474.320 22057473.538 22057474.116
+ 39.300 33.200
+ -21275627.908 7 -16578403.160 7 20550950.620 20550947.201 20550949.492
+ 46.800 46.600
+ -6309949.314 6 -4916839.314 5 23001385.833 23001384.345 23001385.545
+ 36.100 30.200
+ 06 1 1 11 28 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22411273.348 7 -17463329.504 7 20395697.829 20395692.258 20395696.652
+ 46.800 45.300
+ -14211175.096 6 -11073642.990 6 21901151.060 21901148.264 21901150.790
+ 41.400 36.500
+ 136272.447 3 106180.596 1 24673646.618 24673644.333 24673644.993
+ 23.800 6.500
+ 978127.807 3 762176.543 2 24444745.208 24444744.539 24444744.535
+ 21.600 12.600
+ -13224161.540 6 -10304536.022 5 22040084.411 22040082.806 22040083.362
+ 39.500 34.000
+ -21237522.495 7 -16548710.632 7 20558201.652 20558198.405 20558200.588
+ 46.800 46.600
+ -6235896.430 6 -4859135.785 4 23015478.839 23015476.111 23015477.803
+ 36.500 29.000
+ 06 1 1 11 29 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22413096.461 7 -17464750.115 7 20395350.914 20395345.321 20395349.704
+ 46.800 45.300
+ -14282686.823 6 -11129366.411 6 21887543.016 21887540.184 21887542.682
+ 41.900 36.200
+ 233177.900 3 181691.348 1 24692086.307 24692084.808 24692085.327
+ 18.600 11.000
+ 1090664.169 3 849867.166 2 24466161.872 24466159.297 24466159.903
+ 19.900 12.600
+ -13315198.829 6 -10375474.149 5 22022760.345 22022759.318 22022759.611
+ 39.800 34.800
+ -21199018.463 7 -16518707.485 7 20565528.603 20565525.481 20565527.551
+ 46.700 46.500
+ -6161662.013 6 -4801290.806 4 23029604.527 23029602.407 23029604.023
+ 36.100 29.000
+ 06 1 1 11 29 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22414307.822 7 -17465694.035 7 20395120.354 20395114.808 20395119.091
+ 46.600 45.200
+ -14353767.101 6 -11184753.637 6 21874016.746 21874014.079 21874016.558
+ 41.900 36.400
+ 330124.626 3 257234.226 2 24710534.174 24710532.782 24710533.146
+ 21.600 13.900
+ 1203307.686 4 937641.281 2 24487595.010 24487595.217 24487594.759
+ 24.600 17.000
+ -13405881.359 6 -10446135.820 5 22005503.700 22005502.632 22005503.300
+ 40.200 33.900
+ -21160117.758 7 -16488395.248 7 20572931.462 20572927.990 20572930.327
+ 46.900 46.500
+ -6087246.344 5 -4743304.581 4 23043765.057 23043763.382 23043764.608
+ 35.900 28.600
+ 06 1 1 11 30 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22414906.908 7 -17466160.856 7 20395006.267 20395000.750 20395005.208
+ 46.600 45.200
+ -14424413.209 7 -11239802.562 6 21860573.280 21860570.358 21860573.002
+ 42.100 36.200
+ 427109.624 3 332806.996 1 24728990.505 24728989.129 24728989.294
+ 23.400 11.000
+ 1316056.334 2 1025497.306 2 24509050.034 24509050.695 24509049.535
+ 17.000 13.900
+ -13496206.231 6 -10516518.818 5 21988316.225 21988314.050 21988315.039
+ 39.600 33.200
+ -21120821.639 7 -16457774.894 7 20580409.103 20580405.700 20580408.106
+ 46.900 46.200
+ -6012649.946 6 -4685177.548 4 23057961.001 23057958.498 23057960.049
+ 36.500 29.200
+ 06 1 1 11 30 30.0000000 0 6G23G13G 1G 3G16G25
+ -22414892.914 7 -17466149.952 7 20395009.089 20395003.430 20395007.869
+ 46.600 45.200
+ -14494622.874 6 -11294511.397 6 21847212.943 21847209.978 21847212.634
+ 41.900 36.500
+ 1428907.997 3 1113433.579 2 24530525.184 24530526.180 24530525.211
+ 23.400 15.100
+ -13586170.502 6 -10586620.834 5 21971196.466 21971194.395 21971195.432
+ 40.300 32.800
+ -21081132.044 7 -16426847.935 7 20587961.767 20587958.394 20587960.761
+ 46.900 46.200
+ -5937873.133 6 -4626909.905 4 23072190.143 23072187.897 23072189.541
+ 36.300 28.600
+ 06 1 1 11 31 0.0000000 0 6G23G13G 1G 3G16G25
+ -22414265.794 7 -17465661.288 7 20395128.334 20395122.811 20395127.109
+ 46.500 45.100
+ -14564393.398 6 -11348878.036 6 21833935.845 21833933.295 21833935.501
+ 41.200 37.000
+ 1541860.301 3 1201448.372 1 24552020.075 24552019.195 24552019.725
+ 23.000 11.000
+ -13675771.330 6 -10656439.639 5 21954146.066 21954143.988 21954144.992
+ 40.100 33.500
+ -21041050.457 7 -16395615.528 7 20595589.194 20595585.710 20595588.082
+ 46.900 46.100
+ -5862916.246 5 -4568501.967 4 23086453.663 23086452.300 23086453.312
+ 35.600 28.800
+ 06 1 1 11 31 30.0000000 0 6G23G13G 1G 3G16G25
+ -22413024.919 7 -17464694.374 7 20395364.555 20395358.911 20395363.296
+ 46.500 45.200
+ -14633722.352 6 -11402900.593 6 21820742.952 21820740.441 21820742.641
+ 41.400 37.000
+ 1654911.412 3 1289540.081 1 24573534.667 24573533.185 24573533.080
+ 19.300 9.000
+ -13765005.994 6 -10725973.132 5 21937165.304 21937163.302 21937164.278
+ 40.600 34.400
+ -21000578.605 7 -16364079.020 7 20603290.536 20603287.368 20603289.485
+ 46.900 46.100
+ -5787779.686 5 -4509954.027 4 23100752.650 23100750.145 23100751.395
+ 35.800 29.500
+ 06 1 1 11 32 0.0000000 0 6G23G13G 1G 3G16G25
+ -22411169.794 7 -17463248.824 7 20395717.196 20395711.901 20395716.082
+ 46.300 45.200
+ -14702607.310 6 -11456577.186 6 21807634.550 21807631.853 21807634.222
+ 41.600 36.500
+ 1768059.007 3 1377706.983 1 24595063.587 24595063.276 24595063.872
+ 18.600 9.000
+ -13853871.521 6 -10795218.966 5 21920254.446 21920252.882 21920253.536
+ 40.200 34.500
+ -20959717.900 7 -16332239.508 7 20611066.051 20611062.915 20611064.964
+ 46.900 46.100
+ -5712463.896 5 -4451266.425 4 23115083.749 23115082.333 23115083.472
+ 35.900 29.500
+ 06 1 1 11 32 30.0000000 0 5G23G13G 3G16G25
+ -22408699.893 7 -17461324.231 7 20396187.118 20396181.954 20396185.995
+ 46.300 45.000
+ -14771045.698 7 -11509905.797 6 21794611.202 21794608.581 21794610.964
+ 42.300 36.800
+ -13942365.232 6 -10864175.077 5 21903414.979 21903412.727 21903413.935
+ 40.600 33.800
+ -20918470.362 7 -16300098.569 7 20618915.317 20618912.042 20618914.116
+ 46.800 46.100
+ -5636969.178 5 -4392439.394 4 23129450.590 23129448.480 23129449.821
+ 35.900 29.700
+ 06 1 1 11 33 0.0000000 0 5G23G13G 3G16G25
+ -22405615.186 7 -17458920.566 7 20396774.562 20396768.941 20396773.345
+ 46.400 45.100
+ -14839034.815 7 -11562884.337 6 21781673.531 21781670.577 21781673.246
+ 42.500 36.900
+ -14030484.412 6 -10932839.370 5 21886646.336 21886644.231 21886645.334
+ 41.000 34.000
+ -20876837.684 7 -16267657.520 7 20626837.784 20626834.520 20626836.637
+ 46.800 46.000
+ -5561295.900 6 -4333473.230 4 23143851.616 23143848.663 23143850.228
+ 36.000 29.700
+ 06 1 1 11 33 30.0000000 0 5G23G13G 3G16G25
+ -22401914.890 7 -17456037.218 7 20397478.552 20397473.104 20397477.334
+ 46.100 45.100
+ -14906572.331 7 -11615510.980 6 21768821.492 21768818.548 21768821.173
+ 42.100 36.800
+ -14118226.184 6 -11001209.558 5 21869948.989 21869947.677 21869948.386
+ 40.800 34.700
+ -20834821.529 7 -16234917.661 7 20634833.224 20634829.914 20634832.084
+ 47.000 45.900
+ -5485444.481 5 -4274368.251 4 23158284.747 23158282.633 23158284.092
+ 35.400 28.400
+ 06 1 1 11 34 0.0000000 0 5G23G13G 3G16G25
+ -22397598.921 7 -17452674.126 7 20398299.736 20398294.408 20398298.595
+ 46.400 45.100
+ -14973656.264 7 -11667784.170 6 21756055.851 21756053.065 21756055.468
+ 42.000 37.300
+ -14205587.803 6 -11069283.527 5 21853325.572 21853323.486 21853324.166
+ 40.700 34.900
+ -20792423.398 7 -16201880.151 7 20642901.262 20642897.967 20642900.188
+ 47.100 45.600
+ -5409415.315 5 -4215124.759 4 23172752.286 23172750.339 23172751.858
+ 35.100 28.400
+ 06 1 1 11 34 30.0000000 0 5G23G13G 3G16G25
+ -22392667.077 7 -17448831.133 7 20399238.315 20399232.873 20399237.185
+ 46.500 45.100
+ -15040283.479 7 -11719701.478 6 21743376.952 21743374.487 21743376.620
+ 42.000 37.800
+ -14292566.385 6 -11137059.022 5 21836773.182 21836771.864 21836772.560
+ 41.400 35.100
+ -20749644.964 7 -16168546.305 7 20651041.878 20651038.390 20651040.750
+ 47.200 45.300
+ -5333208.792 5 -4155743.078 4 23187254.876 23187252.180 23187253.694
+ 34.500 27.900
+ 06 1 1 11 35 0.0000000 0 5G23G13G 3G16G25
+ -22387118.929 7 -17444507.906 7 20400294.452 20400288.693 20400293.165
+ 46.500 45.200
+ -15106451.816 7 -11771261.217 6 21730785.643 21730782.892 21730785.280
+ 42.200 37.600
+ -14379159.144 6 -11204533.887 5 21820295.490 21820293.505 21820294.479
+ 41.000 34.400
+ -20706488.033 7 -16134917.528 7 20659254.360 20659250.908 20659253.250
+ 47.400 45.400
+ -5256825.257 5 -4096223.474 4 23201789.917 23201787.930 23201788.813
+ 34.400 29.000
+ 06 1 1 11 35 30.0000000 0 5G23G13G 3G16G25
+ -22380954.175 7 -17439704.203 7 20401467.357 20401461.891 20401466.111
+ 46.500 45.300
+ -15172159.020 7 -11822461.644 6 21718281.942 21718278.993 21718281.670
+ 42.600 37.300
+ -14465363.362 6 -11271705.995 5 21803891.105 21803889.568 21803890.359
+ 41.200 34.900
+ -20662954.317 7 -16100995.149 7 20667538.526 20667535.001 20667537.454
+ 47.400 45.200
+ -5180265.169 5 -4036566.280 4 23216357.728 23216356.421 23216357.433
+ 34.400 27.600
+ 06 1 1 11 36 0.0000000 0 5G23G13G 3G16G25
+ -22374172.529 7 -17434419.807 7 20402757.756 20402752.396 20402756.529
+ 46.500 45.100
+ -15237402.477 7 -11873300.700 6 21705866.401 21705863.890 21705866.112
+ 42.200 37.700
+ -14551176.155 6 -11338573.078 5 21787561.468 21787559.979 21787560.633
+ 41.400 35.200
+ -20619045.651 7 -16066780.602 7 20675893.973 20675890.529 20675892.950
+ 47.600 45.300
+ -5103528.984 5 -3976771.874 4 23230960.406 23230958.755 23230959.832
+ 33.800 28.400
+ 06 1 1 11 36 30.0000000 0 5G23G13G 3G16G25
+ -22366773.998 7 -17428654.721 7 20404165.722 20404160.282 20404164.487
+ 46.400 45.100
+ -15302179.458 7 -11923776.266 6 21693539.944 21693537.232 21693539.641
+ 42.700 37.900
+ -14636594.848 6 -11405133.097 6 21771307.056 21771305.691 21771306.029
+ 41.400 36.000
+ -20574763.472 7 -16032275.006 7 20684320.716 20684317.205 20684319.575
+ 47.300 45.400
+ -5026616.993 5 -3916840.485 4 23245597.772 23245594.856 23245596.397
+ 34.100 28.400
+ 06 1 1 11 37 0.0000000 0 5G23G13G 3G16G25
+ -22358758.312 7 -17422408.735 7 20405690.869 20405685.659 20405689.721
+ 46.500 45.200
+ -15366488.071 7 -11973886.877 6 21681302.590 21681299.566 21681302.225
+ 42.700 37.600
+ -14721616.922 6 -11471384.029 5 21755127.427 21755126.277 21755126.841
+ 41.900 35.500
+ -20530109.752 7 -15997479.901 7 20692818.115 20692814.634 20692816.897
+ 47.300 45.200
+ -4949529.601 5 -3856772.420 4 23260265.764 23260263.748 23260265.235
+ 33.900 27.900
+ 06 1 1 11 37 30.0000000 0 5G23G13G 3G16G25
+ -22350125.387 7 -17415681.780 7 20407333.842 20407328.415 20407332.616
+ 46.500 45.100
+ -15430325.711 7 -12023630.496 6 21669154.505 21669151.658 21669154.151
+ 42.500 37.700
+ -14806239.555 6 -11537323.727 5 21739024.826 21739022.961 21739023.724
+ 41.700 35.400
+ -20485085.845 7 -15962396.336 7 20701385.736 20701382.369 20701384.582
+ 47.200 45.100
+ -4872267.300 5 -3796568.057 4 23274967.564 23274966.144 23274967.602
+ 33.800 26.200
+ 06 1 1 11 38 0.0000000 0 6G23G13G19G 3G16G25
+ -22340875.018 7 -17408473.705 7 20409094.105 20409088.651 20409092.949
+ 46.500 45.000
+ -15493689.944 7 -12073005.217 6 21657096.654 21657093.814 21657096.435
+ 42.700 37.600
+ -240457.674 4 -187368.884 3 24586210.212 24586207.351 24586208.575
+ 24.200 21.100
+ -14890459.898 6 -11602949.942 5 21722998.026 21722996.341 21722997.070
+ 41.500 35.700
+ -20439693.885 7 -15927025.979 7 20710023.447 20710020.128 20710022.315
+ 47.100 44.900
+ -4794830.441 5 -3736227.662 4 23289705.064 23289702.410 23289703.849
+ 34.400 27.100
+ 06 1 1 11 38 30.0000000 0 6G23G13G19G 3G16G25
+ -22331006.972 7 -17400784.323 7 20410971.977 20410966.535 20410970.721
+ 46.500 45.100
+ -15556578.553 7 -12122009.335 6 21645129.258 21645126.263 21645129.037
+ 42.800 37.100
+ -353156.265 4 -275185.945 3 24564763.980 24564761.475 24564762.876
+ 27.400 22.100
+ -14974275.196 6 -11668260.545 6 21707048.597 21707046.921 21707047.626
+ 41.700 36.100
+ -20393935.007 7 -15891369.716 7 20718731.168 20718727.781 20718730.037
+ 47.100 45.000
+ -4717219.378 5 -3675751.532 4 23304474.070 23304471.148 23304472.895
+ 34.300 26.800
+ 06 1 1 11 39 0.0000000 0 6G23G13G19G 3G16G25
+ -22320521.213 7 -17392613.602 7 20412967.159 20412961.899 20412965.954
+ 46.200 45.000
+ -15618989.021 7 -12170640.876 6 21633253.206 21633250.040 21633252.894
+ 43.300 37.400
+ -465841.460 4 -362992.558 3 24543320.658 24543318.139 24543319.253
+ 26.800 21.600
+ -15057682.536 6 -11733253.255 5 21691176.447 21691174.982 21691175.636
+ 41.900 35.800
+ -20347811.376 7 -15855429.224 7 20727508.104 20727504.781 20727507.021
+ 47.300 44.800
+ -4639434.621 5 -3615140.061 4 23319273.749 23319273.559 23319274.067
+ 33.100 28.400
+ 06 1 1 11 39 30.0000000 0 6G23G13G19G 3G16G25
+ -22309417.859 7 -17383961.644 7 20415080.059 20415074.827 20415078.861
+ 46.200 44.900
+ -15680919.010 7 -12218898.011 6 21621468.294 21621465.384 21621467.996
+ 43.100 37.900
+ -578510.521 4 -450786.587 3 24521881.098 24521878.158 24521879.113
+ 25.600 19.300
+ -15140679.522 7 -11797926.215 5 21675382.806 21675380.894 21675381.871
+ 42.300 35.400
+ -20301324.702 7 -15819205.838 7 20736354.083 20736350.899 20736353.037
+ 47.200 44.800
+ -4561476.644 5 -3554393.624 4 23334109.525 23334108.572 23334109.267
+ 33.100 28.400
+ 06 1 1 11 40 0.0000000 0 6G23G13G19G 3G16G25
+ -22297696.809 7 -17374828.364 7 20417310.703 20417305.259 20417309.502
+ 46.200 44.900
+ -15742366.158 7 -12266778.906 6 21609775.373 21609772.262 21609775.012
+ 43.000 37.800
+ -691160.847 3 -538566.015 2 24500443.755 24500441.352 24500442.202
+ 23.000 15.100
+ -15223263.608 7 -11862277.443 5 21659667.044 21659665.656 21659666.381
+ 42.000 35.400
+ -20254476.492 7 -15782700.743 7 20745269.058 20745265.758 20745268.043
+ 47.400 44.600
+ -4483345.795 5 -3493512.468 4 23348978.353 23348975.656 23348977.378
+ 33.400 25.300
+ 06 1 1 11 40 30.0000000 0 6G23G13G19G 3G16G25
+ -22285357.917 7 -17365213.649 7 20419658.644 20419653.156 20419657.393
+ 46.400 44.600
+ -15803328.039 7 -12314281.673 6 21598174.903 21598171.557 21598174.525
+ 43.100 37.700
+ -803789.732 3 -626328.735 2 24479012.766 24479008.353 24479009.903
+ 23.800 17.000
+ -15305432.097 7 -11926304.809 6 21644031.097 21644029.613 21644030.326
+ 42.500 36.200
+ -20207268.621 7 -15745915.388 7 20754252.450 20754249.119 20754251.393
+ 47.600 44.600
+ -4405042.490 5 -3432496.912 4 23363879.233 23363876.406 23363878.009
+ 33.500 26.500
+ 06 1 1 11 41 0.0000000 0 6G23G13G19G 3G16G25
+ -22272401.328 7 -17355117.612 7 20422124.360 20422118.693 20422123.104
+ 46.400 44.600
+ -15863802.474 7 -12361404.612 6 21586666.608 21586663.767 21586666.386
+ 42.900 38.300
+ -916394.702 3 -714072.837 3 24457584.978 24457580.386 24457581.963
+ 23.400 18.600
+ -15387182.251 7 -11990006.216 6 21628475.119 21628472.976 21628474.005
+ 42.700 36.100
+ -20159702.876 7 -15708851.173 7 20763303.967 20763300.544 20763302.844
+ 47.600 44.300
+ -4326567.186 5 -3371347.366 4 23378811.533 23378810.094 23378811.037
+ 32.100 27.900
+ 06 1 1 11 41 30.0000000 0 6G23G13G19G 3G16G25
+ -22258826.901 7 -17344540.138 7 20424707.485 20424701.913 20424706.256
+ 46.500 44.600
+ -15923787.118 7 -12408145.890 6 21575251.849 21575248.947 21575251.535
+ 42.800 38.100
+ -1028973.081 4 -801796.156 2 24436159.920 24436157.350 24436158.622
+ 25.600 17.800
+ -15468511.517 7 -12053379.657 5 21612998.463 21612996.450 21612997.537
+ 42.700 35.700
+ -20111780.909 7 -15671509.381 7 20772423.199 20772419.847 20772422.119
+ 47.600 44.400
+ -4247920.356 5 -3310064.137 4 23393777.672 23393775.797 23393777.394
+ 33.100 27.400
+ 06 1 1 11 42 0.0000000 0 6G23G13G19G 3G16G25
+ -22244634.906 7 -17333481.446 7 20427407.950 20427402.593 20427406.804
+ 46.500 44.700
+ -15983279.654 7 -12454503.714 6 21563930.892 21563927.936 21563930.613
+ 43.000 38.300
+ -1141522.137 4 -889496.681 3 24414743.501 24414739.833 24414741.698
+ 29.000 20.500
+ -15549417.004 7 -12116422.880 6 21597602.801 21597600.765 21597601.902
+ 43.100 36.100
+ -20063504.397 7 -15633891.317 7 20781610.058 20781606.584 20781608.900
+ 47.600 44.400
+ -4169102.389 5 -3248647.562 4 23408776.412 23408774.404 23408775.906
+ 32.800 27.100
+ 06 1 1 11 42 30.0000000 0 6G23G13G19G 3G16G25
+ -22229825.501 7 -17321941.653 7 20430226.496 20430220.636 20430225.213
+ 46.400 44.600
+ -16042277.672 7 -12500476.192 6 21552704.174 21552701.249 21552703.792
+ 43.300 38.900
+ -1254039.339 4 -977172.396 3 24393331.539 24393328.446 24393330.448
+ 27.100 22.600
+ -15629896.250 7 -12179133.969 6 21582288.197 21582286.022 21582287.170
+ 42.900 36.200
+ -20014874.970 7 -15595998.257 7 20790863.799 20790860.500 20790862.670
+ 47.600 44.400
+ -4090113.718 5 -3187097.979 4 23423808.188 23423805.482 23423807.111
+ 32.600 27.400
+ 06 1 1 11 43 0.0000000 0 6G23G13G19G 3G16G25
+ -22214398.849 7 -17309920.888 7 20433161.983 20433156.208 20433160.744
+ 46.500 44.600
+ -16100779.325 7 -12546061.899 6 21541571.780 21541568.616 21541571.365
+ 43.500 38.900
+ -1366521.772 4 -1064820.936 4 24371926.689 24371924.157 24371925.672
+ 26.200 24.600
+ -15709946.602 7 -12241510.851 6 21567055.413 21567053.130 21567054.136
+ 42.900 36.800
+ -19965894.448 7 -15557831.618 7 20800184.384 20800181.209 20800183.337
+ 47.600 44.200
+ -4010954.837 5 -3125415.765 4 23438871.215 23438869.516 23438870.516
+ 32.800 28.800
+ 06 1 1 11 43 30.0000000 0 6G23G13G19G 3G16G25
+ -22198354.889 7 -17297419.106 7 20436214.619 20436209.282 20436213.438
+ 46.200 44.400
+ -16158781.775 7 -12591258.620 6 21530534.056 21530531.000 21530533.798
+ 43.800 38.600
+ -1478966.943 4 -1152440.483 3 24350529.141 24350526.699 24350527.937
+ 25.900 20.500
+ -15789565.402 7 -12303551.458 6 21551904.005 21551902.262 21551902.879
+ 42.900 36.900
+ -19916564.713 7 -15519392.862 7 20809571.530 20809568.284 20809570.420
+ 47.500 44.100
+ -3931626.118 5 -3063601.225 4 23453966.463 23453965.383 23453966.257
+ 33.200 28.100
+ 06 1 1 11 44 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22181693.829 7 -17284436.466 7 20439385.236 20439379.806 20439384.029
+ 46.200 44.400
+ -16216282.892 7 -12636064.690 6 21519591.777 21519589.068 21519591.516
+ 43.400 38.800
+ -1591372.468 4 -1240029.181 3 24329139.886 24329135.561 24329137.743
+ 25.900 19.900
+ -149510.843 3 -116501.486 2 25134226.460 25134226.088 25134225.901
+ 19.300 17.800
+ -15868750.056 7 -12365253.769 6 21536835.614 21536833.769 21536834.649
+ 43.200 36.900
+ -19866887.367 7 -15480683.248 7 20819024.820 20819021.528 20819023.757
+ 47.500 44.000
+ -3852128.032 5 -3001654.690 4 23469094.754 23469093.241 23469094.445
+ 32.600 27.100
+ 06 1 1 11 44 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22164415.957 7 -17270973.192 7 20442673.036 20442667.737 20442671.891
+ 46.300 44.500
+ -16273280.480 7 -12680478.395 6 21508745.580 21508742.740 21508745.300
+ 43.400 38.900
+ -1703735.428 4 -1327584.658 3 24307756.629 24307753.578 24307755.322
+ 24.600 20.500
+ -235803.190 3 -183742.194 3 25117807.856 25117806.170 25117806.804
+ 19.300 23.400
+ -15947498.129 7 -12426615.894 6 21521850.187 21521848.545 21521849.222
+ 42.900 36.800
+ -19816864.161 7 -15441704.124 7 20828544.071 20828540.612 20828542.882
+ 47.600 44.000
+ -3772461.140 5 -2939576.604 4 23484254.959 23484252.935 23484254.400
+ 32.300 26.200
+ 06 1 1 11 45 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22146521.354 7 -17257029.348 7 20446078.528 20446073.049 20446077.190
+ 46.100 44.400
+ -16329772.388 7 -12724498.069 6 21497995.592 21497992.729 21497995.179
+ 43.400 39.100
+ -1816053.111 4 -1415104.877 2 24286384.918 24286380.005 24286382.198
+ 27.400 13.900
+ -322121.728 3 -251003.342 4 25101380.995 25101379.478 25101380.286
+ 21.600 24.600
+ -16025807.006 7 -12487635.772 6 21506948.899 21506946.803 21506947.647
+ 42.900 37.100
+ -19766497.069 7 -15402457.040 7 20838128.483 20838125.187 20838127.379
+ 47.500 44.000
+ -3692625.843 5 -2877367.307 4 23499447.929 23499445.202 23499446.780
+ 31.600 24.900
+ 06 1 1 11 45 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22128010.367 7 -17242605.206 7 20449600.957 20449595.565 20449599.762
+ 46.400 44.500
+ -16385756.457 7 -12768122.016 6 21487342.038 21487339.377 21487341.788
+ 43.600 39.500
+ -1928322.786 4 -1502587.728 3 24265020.960 24265016.037 24265017.836
+ 26.200 20.500
+ -408465.413 4 -318284.100 3 25084951.311 25084948.604 25084950.216
+ 24.600 23.400
+ -16103674.120 7 -12548311.436 6 21492130.589 21492129.148 21492129.770
+ 43.000 37.100
+ -19715787.443 7 -15362943.047 7 20847778.008 20847774.934 20847776.943
+ 47.300 44.000
+ -3612622.471 5 -2815027.049 4 23514671.057 23514669.201 23514670.562
+ 32.000 24.200
+ 06 1 1 11 46 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22108883.213 7 -17227700.937 7 20453240.711 20453235.334 20453239.497
+ 46.100 44.400
+ -16441230.313 7 -12811348.398 6 21476786.094 21476783.020 21476785.780
+ 44.000 39.400
+ -2040541.809 4 -1590031.073 3 24243665.569 24243661.995 24243662.954
+ 27.100 23.400
+ -494833.785 4 -385584.109 4 25068515.688 25068514.161 25068514.736
+ 24.900 26.500
+ -16181096.926 7 -12608640.884 6 21477397.881 21477396.050 21477396.924
+ 43.400 37.000
+ -19664737.031 7 -15323163.507 7 20857492.542 20857489.601 20857491.563
+ 47.300 44.000
+ -3532451.604 5 -2752556.268 4 23529926.344 23529925.742 23529926.772
+ 33.000 26.200
+ 06 1 1 11 46 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22089140.117 7 -17212316.712 7 20456997.597 20456992.312 20456996.482
+ 46.400 44.400
+ -16496191.827 7 -12854175.556 6 21466327.263 21466324.251 21466326.856
+ 44.000 39.500
+ -2152707.787 4 -1677433.047 3 24222321.055 24222317.221 24222318.444
+ 26.800 22.600
+ -581226.336 4 -452902.947 4 25052075.120 25052074.139 25052074.213
+ 25.900 24.200
+ -16258073.159 7 -12668622.355 6 21462749.719 21462747.943 21462748.651
+ 43.200 37.000
+ -19613347.633 7 -15283119.825 7 20867271.801 20867268.617 20867270.681
+ 47.400 43.900
+ -3452113.666 5 -2689955.310 4 23545214.557 23545213.676 23545214.584
+ 32.800 25.900
+ 06 1 1 11 47 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22068781.699 7 -17196453.013 7 20460871.846 20460866.372 20460870.633
+ 46.400 44.400
+ -16550638.777 7 -12896601.746 6 21455966.180 21455963.220 21455965.836
+ 43.800 39.300
+ -2264817.799 4 -1764791.484 3 24200987.051 24200982.849 24200984.855
+ 27.100 19.300
+ -667642.464 4 -520240.158 3 25035630.248 25035628.699 25035629.533
+ 25.300 23.800
+ -16334599.901 7 -12728253.570 6 21448187.150 21448185.553 21448186.167
+ 43.200 37.900
+ -19561621.225 7 -15242813.532 7 20877115.014 20877111.974 20877113.924
+ 47.500 44.000
+ -3371609.229 5 -2627224.618 4 23560535.014 23560532.878 23560534.291
+ 32.300 24.900
+ 06 1 1 11 47 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22047808.177 7 -17180110.017 7 20464863.059 20464857.543 20464861.841
+ 46.500 44.200
+ -16604569.064 7 -12938625.358 6 21445703.612 21445700.589 21445703.304
+ 44.000 39.400
+ -2376869.257 4 -1852104.248 4 24179663.660 24179660.967 24179661.648
+ 27.600 24.600
+ -754081.588 4 -587595.314 3 25019182.090 25019180.514 25019181.225
+ 26.800 22.100
+ -16410674.541 7 -12787532.491 6 21433710.691 21433708.844 21433709.601
+ 43.400 37.600
+ -19509559.535 7 -15202245.985 7 20887022.179 20887018.921 20887021.008
+ 47.500 43.800
+ -3290938.706 5 -2564364.485 3 23575885.143 23575883.534 23575884.861
+ 30.600 22.100
+ 06 1 1 11 48 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22026219.864 7 -17163287.962 7 20468971.113 20468965.689 20468969.868
+ 46.400 44.200
+ -16657980.437 7 -12980244.609 6 21435539.776 21435536.802 21435539.460
+ 44.200 39.400
+ -2488859.490 4 -1939369.281 3 24158351.822 24158349.453 24158351.574
+ 29.500 19.300
+ -840543.155 4 -654967.967 2 25002729.024 25002726.662 25002728.206
+ 25.300 17.800
+ -16486294.890 7 -12846457.422 6 21419320.414 21419318.552 21419319.596
+ 44.000 37.200
+ -19457164.195 7 -15161418.451 7 20896992.749 20896989.479 20896991.555
+ 47.700 43.700
+ -3210102.506 5 -2501375.261 4 23591267.852 23591266.343 23591267.735
+ 31.000 24.600
+ 06 1 1 11 48 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22004017.015 7 -17145987.046 7 20473196.196 20473190.721 20473194.949
+ 46.300 44.300
+ -16710870.829 7 -13021457.902 6 21425474.993 21425471.965 21425474.679
+ 43.800 39.500
+ -2600785.662 4 -2026584.458 4 24137053.947 24137051.007 24137052.189
+ 26.500 25.900
+ -927026.134 3 -722357.297 2 24986271.772 24986269.792 24986270.586
+ 23.400 17.800
+ -16561458.525 7 -12905026.476 6 21405017.475 21405015.426 21405016.422
+ 43.900 37.400
+ -19404436.845 7 -15120332.206 7 20907026.436 20907023.010 20907025.334
+ 47.900 43.600
+ -3129101.146 5 -2438257.374 4 23606683.335 23606680.871 23606681.869
+ 30.800 25.600
+ 06 1 1 11 49 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21981200.114 7 -17128207.650 7 20477538.182 20477532.542 20477536.980
+ 46.200 43.900
+ -16763238.093 7 -13062263.563 6 21415509.734 21415506.805 21415509.402
+ 43.800 39.500
+ -2712645.197 4 -2113747.659 3 24115767.292 24115764.462 24115765.692
+ 24.900 23.000
+ -1013530.240 3 -789763.088 2 24969810.716 24969807.772 24969810.021
+ 21.100 13.900
+ -16636162.669 7 -12963237.480 6 21390801.810 21390799.637 21390800.750
+ 44.000 37.100
+ -19351379.188 8 -15078988.577 7 20917123.001 20917119.600 20917121.912
+ 48.000 43.400
+ -3047935.269 5 -2375011.284 4 23622128.834 23622126.255 23622127.436
+ 30.600 26.800
+ 06 1 1 11 49 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21957769.747 7 -17109950.225 7 20481996.686 20481991.129 20481995.462
+ 46.200 43.800
+ -16815080.082 7 -13102659.916 6 21405644.452 21405641.646 21405644.095
+ 43.500 39.800
+ -2824435.605 5 -2200857.039 3 24094495.143 24094491.710 24094493.218
+ 30.100 19.900
+ -1100054.814 3 -857184.818 2 24953346.617 24953342.643 24953344.973
+ 19.900 16.100
+ -16710404.992 7 -13021088.626 6 21376673.638 21376671.959 21376672.656
+ 44.000 37.800
+ -19297992.922 8 -15037388.895 7 20927281.971 20927278.551 20927280.906
+ 48.000 43.200
+ -2966605.240 4 -2311637.277 4 23637605.406 23637603.122 23637604.181
+ 29.900 26.500
+ 06 1 1 11 50 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21933726.307 7 -17091215.085 7 20486571.971 20486566.503 20486570.748
+ 46.300 43.800
+ -16866394.601 7 -13142645.253 6 21395879.532 21395876.895 21395879.281
+ 43.800 39.500
+ -2936153.761 4 -2287910.128 3 24073236.650 24073232.226 24073233.770
+ 28.600 23.400
+ -1186599.045 3 -924621.873 2 24936875.605 24936874.187 24936875.038
+ 18.600 16.100
+ -16784182.903 7 -13078577.890 6 21362634.201 21362632.434 21362633.385
+ 44.600 37.700
+ -19244280.161 8 -14995534.792 7 20937503.181 20937499.870 20937502.120
+ 48.000 43.000
+ -2885111.589 5 -2248135.764 4 23653112.677 23653110.171 23653111.713
+ 31.500 25.900
+ 06 1 1 11 50 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21909070.530 7 -17072002.797 7 20491263.719 20491258.434 20491262.538
+ 46.000 44.000
+ -16917179.786 7 -13182218.126 6 21386215.718 21386212.778 21386215.359
+ 43.800 39.700
+ -3047797.099 4 -2374904.884 3 24051991.064 24051987.307 24051988.969
+ 28.600 23.400
+ -1273162.302 3 -992073.704 3 24920404.247 24920402.195 24920403.458
+ 21.100 21.100
+ -16857494.246 7 -13135703.598 6 21348683.734 21348681.751 21348682.636
+ 44.400 37.800
+ -19190242.287 7 -14953427.360 7 20947786.309 20947782.879 20947785.232
+ 47.900 42.700
+ -2803454.720 4 -2184507.093 4 23668650.477 23668649.671 23668650.076
+ 29.000 27.600
+ 06 1 1 11 51 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21883802.580 7 -17052313.495 7 20496072.029 20496066.797 20496070.771
+ 46.100 44.000
+ -16967433.318 7 -13221376.727 6 21376652.387 21376649.836 21376652.110
+ 43.700 39.600
+ -3159363.019 4 -2461839.314 4 24030760.067 24030756.904 24030758.312
+ 26.200 24.200
+ -1359744.481 3 -1059540.333 3 24903927.638 24903926.295 24903926.259
+ 22.100 22.600
+ -16930336.259 7 -13192463.596 6 21334822.170 21334820.471 21334821.354
+ 44.700 37.900
+ -19135881.300 7 -14911068.154 7 20958130.746 20958127.530 20958129.714
+ 47.900 43.000
+ -2721635.178 4 -2120751.662 4 23684220.443 23684219.470 23684219.778
+ 28.600 27.100
+ 06 1 1 11 51 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21857923.088 7 -17032147.665 7 20500996.709 20500991.507 20500995.553
+ 46.000 44.000
+ -17017153.318 7 -13260119.582 6 21367191.235 21367188.477 21367190.916
+ 44.000 40.100
+ -3270848.713 5 -2548711.269 4 24009545.352 24009542.170 24009543.402
+ 30.600 25.600
+ -1446344.030 3 -1127020.478 3 24887448.404 24887447.411 24887447.351
+ 21.100 21.600
+ -17002706.911 7 -13248856.298 6 21321050.599 21321048.666 21321049.613
+ 44.400 37.900
+ -19081198.729 7 -14868458.357 7 20968536.464 20968533.190 20968535.395
+ 47.600 42.800
+ -2639653.623 5 -2056869.975 3 23699821.170 23699819.751 23699820.441
+ 30.400 23.800
+ 06 1 1 11 52 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21831432.829 7 -17011505.914 7 20506037.657 20506032.441 20506036.424
+ 46.100 43.800
+ -17066337.682 7 -13298445.066 6 21357831.567 21357829.020 21357831.360
+ 43.900 39.900
+ -3382251.648 4 -2635518.734 2 23988346.345 23988341.889 23988344.188
+ 28.800 17.800
+ -1532960.881 4 -1194514.087 3 24870966.429 24870964.394 24870965.361
+ 25.300 19.300
+ -17074603.793 7 -13304879.832 6 21307369.366 21307367.253 21307368.245
+ 44.700 38.200
+ -19026196.340 7 -14825599.355 7 20979003.013 20978999.859 20979001.967
+ 47.800 42.700
+ -2557510.309 5 -1992862.230 3 23715454.124 23715450.670 23715452.353
+ 30.600 23.000
+ 06 1 1 11 52 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21804332.161 7 -16990388.516 7 20511194.783 20511189.531 20511193.573
+ 46.000 43.700
+ -17114984.324 7 -13336351.538 6 21348574.716 21348571.754 21348574.371
+ 43.800 40.100
+ -3493569.146 4 -2722259.582 4 23967163.077 23967159.659 23967161.014
+ 26.800 24.600
+ -1619594.332 4 -1262020.664 2 24854480.724 24854478.093 24854479.756
+ 26.200 17.800
+ -17146024.583 7 -13360532.387 6 21293777.864 21293776.209 21293777.150
+ 44.700 38.200
+ -18970876.196 7 -14782492.754 7 20989530.138 20989526.862 20989529.119
+ 47.800 42.500
+ -2475205.760 5 -1928728.865 3 23731115.150 23731112.537 23731114.130
+ 31.500 22.600
+ 06 1 1 11 53 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21776621.715 7 -16968795.966 7 20516468.074 20516462.617 20516466.823
+ 46.100 43.600
+ -17163091.355 7 -13373837.530 6 21339420.397 21339417.406 21339420.041
+ 43.900 40.000
+ -3604798.321 4 -2808931.635 3 23945996.504 23945992.993 23945994.713
+ 27.600 23.000
+ -1706243.907 4 -1329539.823 2 24837992.584 24837988.942 24837991.565
+ 25.600 13.900
+ -17216966.793 7 -13415812.024 6 21280278.409 21280276.362 21280277.284
+ 44.500 38.400
+ -18915239.969 7 -14739139.854 7 21000117.553 21000114.194 21000116.446
+ 47.900 42.400
+ -2392740.721 5 -1864470.426 4 23746808.277 23746805.839 23746807.474
+ 31.500 25.900
+ 06 1 1 11 53 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21748302.226 7 -16946728.837 7 20521857.004 20521851.640 20521855.849
+ 46.200 43.700
+ -17210656.715 7 -13410901.449 6 21330368.781 21330366.000 21330368.533
+ 44.000 40.200
+ -3715936.379 4 -2895532.666 4 23924848.323 23924844.946 23924846.002
+ 28.100 27.100
+ -1792908.601 3 -1397070.759 3 24821500.213 24821498.381 24821499.163
+ 23.400 18.600
+ -17287428.067 7 -13470716.892 6 21266869.791 21266868.160 21266868.756
+ 44.300 38.500
+ -18859288.965 8 -14695541.670 7 21010764.597 21010761.207 21010763.489
+ 48.100 42.300
+ -2310115.541 4 -1800087.223 4 23762530.067 23762528.868 23762529.801
+ 29.900 24.600
+ 06 1 1 11 54 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21719374.449 7 -16924187.719 7 20527361.682 20527356.491 20527360.534
+ 46.200 43.800
+ -17257678.406 7 -13447541.729 6 21321421.097 21321417.940 21321420.723
+ 44.200 39.700
+ -3826980.754 5 -2982060.649 4 23903716.238 23903712.984 23903714.536
+ 30.400 24.200
+ -1879587.906 4 -1464613.068 3 24805004.520 24805004.061 24805003.886
+ 25.900 21.600
+ -17357406.165 7 -13525245.275 6 21253553.088 21253551.586 21253552.417
+ 44.800 38.400
+ -18803025.376 8 -14651699.910 7 21021471.067 21021467.854 21021470.133
+ 48.100 42.200
+ -2227330.855 4 -1735579.734 3 23778282.818 23778282.227 23778283.149
+ 28.600 21.600
+ 06 1 1 11 54 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21689839.069 7 -16901173.141 7 20532982.188 20532976.915 20532980.964
+ 46.100 43.600
+ -17304154.683 7 -13483757.016 6 21312576.649 21312573.817 21312576.368
+ 43.800 39.900
+ -3937928.683 5 -3068513.588 4 23882603.823 23882600.673 23882602.398
+ 30.800 27.400
+ -1966280.719 4 -1532165.881 3 24788508.975 24788506.433 24788507.798
+ 25.900 23.400
+ -17426898.709 7 -13579395.305 6 21240329.476 21240327.603 21240328.567
+ 44.800 38.400
+ -18746450.452 8 -14607615.558 7 21032237.197 21032233.648 21032235.998
+ 48.000 42.200
+ -2144386.994 4 -1670948.218 3 23794067.471 23794065.879 23794066.989
+ 29.200 22.100
+ 06 1 1 11 55 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21659696.634 7 -16877685.535 7 20538717.937 20538712.763 20538716.823
+ 46.100 43.400
+ -17350083.311 7 -13519545.556 6 21303836.797 21303833.981 21303836.420
+ 43.700 40.200
+ -4048777.628 4 -3154889.325 3 23861510.297 23861506.236 23861508.033
+ 27.900 22.600
+ -2052986.257 4 -1599728.621 4 24772009.365 24772006.838 24772008.617
+ 28.100 25.600
+ -17495903.509 7 -13633165.262 6 21227198.564 21227196.358 21227197.396
+ 44.800 38.400
+ -18689566.114 7 -14563290.105 7 21043061.885 21043058.449 21043060.689
+ 47.800 42.300
+ -2061284.716 5 -1606193.215 3 23809882.622 23809879.162 23809881.090
+ 30.400 19.900
+ 06 1 1 11 55 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21628948.237 7 -16853725.752 7 20544569.219 20544563.976 20544568.050
+ 46.300 43.400
+ -17395462.364 7 -13554905.862 6 21295201.475 21295198.807 21295201.158
+ 44.000 40.500
+ -4159524.699 4 -3241185.701 4 23840436.199 23840432.444 23840433.874
+ 28.400 27.400
+ -2139704.192 4 -1667301.036 4 24755507.108 24755504.687 24755505.869
+ 25.600 25.300
+ -17564418.212 7 -13686553.336 6 21214160.245 21214158.473 21214159.449
+ 45.200 38.300
+ -18632374.553 8 -14518725.257 6 21053944.791 21053941.503 21053943.766
+ 48.000 41.900
+ -1978024.404 4 -1541315.104 3 23825726.830 23825723.709 23825724.829
+ 28.800 23.800
+ 06 1 1 11 56 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21597594.415 7 -16829294.209 7 20550535.680 20550530.425 20550534.596
+ 46.300 43.400
+ -17440290.238 7 -13589836.669 6 21286671.050 21286668.318 21286670.759
+ 44.300 40.600
+ -4270167.070 5 -3327400.482 3 23819379.851 23819377.294 23819379.084
+ 31.100 23.800
+ -2226433.778 4 -1734882.512 3 24739002.822 24739000.035 24739002.136
+ 24.900 22.100
+ -17632440.503 7 -13739557.713 6 21201216.044 21201214.184 21201215.151
+ 45.100 38.900
+ -18574876.967 7 -14473921.944 6 21064886.230 21064882.999 21064885.207
+ 47.900 41.900
+ -1894606.691 4 -1476314.365 3 23841599.931 23841598.026 23841598.854
+ 29.200 23.400
+ 06 1 1 11 56 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21565635.953 7 -16804391.520 7 20556617.341 20556611.907 20556616.191
+ 46.400 43.200
+ -17484564.507 7 -13624336.106 6 21278245.928 21278242.961 21278245.617
+ 44.200 40.500
+ -4380702.235 4 -3413531.747 4 23798345.253 23798343.418 23798344.673
+ 29.200 25.900
+ -2313174.516 4 -1802472.688 4 24722496.581 24722494.240 24722495.846
+ 24.600 24.200
+ -17699968.369 7 -13792176.818 6 21188366.434 21188363.857 21188365.254
+ 45.300 38.500
+ -18517075.471 7 -14428881.819 6 21075885.655 21075882.254 21075884.537
+ 47.700 41.800
+ -1811031.964 5 -1411191.257 3 23857502.459 23857501.740 23857502.551
+ 30.400 23.800
+ 06 1 1 11 57 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21533073.589 7 -16779018.257 7 20562813.843 20562808.341 20562812.640
+ 46.300 43.300
+ -17528283.606 7 -13658402.941 6 21269926.379 21269923.519 21269926.079
+ 44.100 40.500
+ -4491127.256 4 -3499577.194 3 23777334.653 23777329.397 23777332.224
+ 29.200 20.500
+ -2399925.557 4 -1870070.863 4 24705989.319 24705986.092 24705987.907
+ 25.900 25.600
+ -17766999.427 7 -13844408.806 6 21175610.855 21175608.404 21175609.758
+ 45.500 38.600
+ -18458971.608 7 -14383606.090 6 21086942.528 21086939.175 21086941.447
+ 47.800 41.600
+ -1727300.911 5 -1345946.334 3 23873435.813 23873435.024 23873436.363
+ 30.800 22.100
+ 06 1 1 11 57 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21499908.408 7 -16753175.268 7 20569124.751 20569119.502 20569123.541
+ 46.200 43.200
+ -17571445.889 7 -13692035.890 6 21261713.051 21261710.043 21261712.672
+ 44.200 40.400
+ -4601439.688 5 -3585534.892 4 23756342.838 23756338.632 23756340.265
+ 30.600 26.800
+ -2486685.979 3 -1937676.374 4 24689477.330 24689476.020 24689476.139
+ 19.300 24.900
+ -17833531.604 7 -13896252.050 6 21162950.055 21162947.745 21162948.980
+ 45.600 38.900
+ -18400566.902 7 -14338095.931 6 21098056.502 21098053.118 21098055.425
+ 47.700 41.400
+ -1643413.990 4 -1280579.965 4 23889398.823 23889398.861 23889398.893
+ 29.000 24.200
+ 06 1 1 11 58 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21466141.010 7 -16726863.018 7 20575550.489 20575545.214 20575549.343
+ 46.400 43.100
+ -17614049.198 7 -13725233.274 6 21253605.652 21253602.872 21253605.333
+ 44.100 40.500
+ -4711636.493 4 -3671402.494 3 23735371.992 23735367.801 23735369.632
+ 28.100 21.100
+ -2573454.975 3 -2005288.514 3 24672965.642 24672964.253 24672965.201
+ 21.100 22.100
+ -17899562.332 7 -13947704.556 6 21150384.424 21150382.525 21150383.623
+ 45.700 38.900
+ -18341863.326 7 -14292352.888 6 21109227.313 21109223.998 21109226.231
+ 47.400 41.300
+ -1559371.842 4 -1215092.641 3 23905392.686 23905391.488 23905391.785
+ 28.400 23.400
+ 06 1 1 11 58 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21431772.572 7 -16700082.422 7 20582090.768 20582085.255 20582089.499
+ 46.200 43.100
+ -17656091.676 7 -13757993.648 6 21245605.131 21245602.558 21245604.876
+ 43.900 40.800
+ -4821715.132 5 -3757178.032 4 23714424.014 23714421.384 23714422.660
+ 31.300 27.400
+ -2660231.956 3 -2072906.946 3 24656453.679 24656451.367 24656452.191
+ 22.100 21.100
+ -17965089.583 7 -13998764.740 6 21137915.277 21137913.028 21137914.191
+ 45.200 38.700
+ -18282862.582 7 -14246378.289 6 21120454.872 21120451.398 21120453.783
+ 47.500 41.100
+ -1475175.008 4 -1149484.802 4 23921415.364 23921413.998 23921414.347
+ 29.000 24.600
+ 06 1 1 11 59 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21396803.865 7 -16672834.087 7 20588744.689 20588739.603 20588743.615
+ 46.200 43.300
+ -17697571.577 7 -13790315.648 6 21237711.922 21237709.359 21237711.566
+ 43.800 41.000
+ -4931672.974 5 -3842859.427 3 23693499.388 23693496.504 23693498.575
+ 30.800 22.600
+ -2747016.507 4 -2140531.258 3 24639940.062 24639936.970 24639939.142
+ 25.900 22.600
+ -18030111.102 7 -14049430.850 6 21125541.817 21125539.832 21125540.989
+ 45.600 38.800
+ -18223566.333 7 -14200173.421 6 21131738.640 21131735.175 21131737.459
+ 47.500 41.200
+ -1390824.038 4 -1083756.810 3 23937466.427 23937464.984 23937465.473
+ 29.000 23.000
+ 06 1 1 11 59 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21361235.785 7 -16645118.708 7 20595513.056 20595508.085 20595511.994
+ 46.200 43.000
+ -17738487.158 7 -13822197.917 6 21229925.971 21229923.304 21229925.630
+ 44.100 40.900
+ -5041507.088 4 -3928444.450 4 23672598.048 23672596.181 23672597.293
+ 28.400 27.100
+ -2833807.303 4 -2208160.463 3 24623422.975 24623420.669 24623422.513
+ 26.200 20.500
+ -18094624.894 7 -14099701.325 6 21113265.383 21113263.306 21113264.514
+ 45.900 39.100
+ -18163976.348 7 -14153739.673 6 21143077.988 21143074.793 21143076.942
+ 47.700 41.000
+ -1306319.494 4 -1017909.182 3 23953547.085 23953545.495 23953546.200
+ 27.100 22.100
+ 06 1 1 12 0 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21325069.407 7 -16616937.117 7 20602395.536 20602390.360 20602394.420
+ 46.200 43.000
+ -17778836.551 7 -13853639.007 6 21222247.762 21222244.858 21222247.536
+ 44.300 40.600
+ -5151214.857 5 -4013930.993 4 23651723.371 23651719.225 23651721.332
+ 31.500 25.600
+ -2920603.802 4 -2275794.087 3 24606906.484 24606904.005 24606905.374
+ 27.900 21.600
+ -18158628.869 7 -14149574.546 6 21101085.810 21101083.666 21101084.854
+ 45.600 39.100
+ -18104094.511 7 -14107078.505 6 21154473.393 21154470.051 21154472.310
+ 47.600 41.200
+ -1221661.888 4 -951942.263 3 23969657.060 23969655.661 23969656.419
+ 29.500 22.600
+ 06 1 1 12 0 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21288305.822 7 -16588290.172 7 20609391.487 20609386.198 20609390.282
+ 46.200 42.900
+ -17818618.130 7 -13884637.644 6 21214677.801 21214674.748 21214677.467
+ 44.400 40.900
+ -5260793.461 5 -4099316.841 5 23630870.078 23630867.598 23630868.414
+ 31.300 30.800
+ -3007405.315 4 -2343431.632 2 24590389.197 24590385.998 24590387.982
+ 27.100 17.800
+ -18222120.823 7 -14199048.790 6 21089003.494 21089001.705 21089002.689
+ 45.800 39.500
+ -18043922.504 7 -14060191.231 6 21165923.859 21165920.404 21165922.684
+ 47.700 41.200
+ -1136851.888 4 -885856.616 3 23985796.774 23985794.748 23985795.728
+ 27.900 22.600
+ 06 1 1 12 1 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21250945.615 7 -16559178.335 7 20616500.981 20616495.522 20616499.768
+ 46.100 42.700
+ -17857830.170 7 -13915192.484 6 21207216.047 21207213.109 21207215.685
+ 44.300 41.200
+ -5370240.218 4 -4184600.028 4 23610042.879 23610040.342 23610041.830
+ 29.900 27.100
+ -3094211.077 4 -2411072.516 3 24573870.068 24573867.581 24573869.517
+ 27.600 19.300
+ -18285098.712 7 -14248122.460 6 21077019.521 21077017.413 21077018.452
+ 45.700 39.400
+ -17983461.898 7 -14013079.078 6 21177429.026 21177425.719 21177427.795
+ 47.500 41.200
+ -1051890.009 4 -819652.636 3 24001964.879 24001962.350 24001963.410
+ 27.400 21.600
+ 06 1 1 12 1 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21212990.433 7 -16529602.874 7 20623723.680 20623718.108 20623722.434
+ 46.300 42.600
+ -17896470.816 7 -13945302.079 6 21199862.905 21199860.103 21199862.545
+ 44.200 41.300
+ -5479552.543 5 -4269778.407 4 23589241.750 23589238.518 23589239.757
+ 30.200 27.400
+ -3181020.256 4 -2478716.036 3 24557350.910 24557349.478 24557349.978
+ 27.100 23.800
+ -18347560.293 7 -14296793.814 6 21065133.339 21065131.364 21065132.414
+ 45.800 39.600
+ -17922714.522 7 -13965743.469 6 21188988.768 21188985.494 21188987.627
+ 47.700 41.000
+ -966776.780 4 -753330.712 3 24018161.259 24018158.728 24018159.757
+ 26.800 21.600
+ 06 1 1 12 2 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21174440.885 7 -16499564.276 7 20631059.187 20631053.855 20631058.031
+ 46.300 42.500
+ -17934538.330 7 -13974965.084 6 21192618.764 21192615.875 21192618.496
+ 44.500 41.200
+ -5588727.819 4 -4354850.040 4 23568466.351 23568463.531 23568464.743
+ 28.800 26.500
+ -3267831.608 4 -2546361.221 4 24540831.338 24540829.432 24540830.162
+ 25.600 26.500
+ -18409503.815 7 -14345061.483 6 21053346.005 21053344.064 21053344.969
+ 46.000 39.800
+ -17861681.801 7 -13918185.509 6 21200602.717 21200599.622 21200601.732
+ 47.700 40.400
+ -881512.962 4 -686891.428 3 24034386.303 24034384.262 24034384.664
+ 26.200 22.100
+ 06 1 1 12 2 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21135298.011 7 -16469063.341 7 20638508.159 20638502.529 20638506.884
+ 46.400 42.600
+ -17972031.238 7 -14004180.341 6 21185484.098 21185481.152 21185483.810
+ 44.400 41.200
+ -5697762.577 5 -4439812.142 4 23547718.009 23547714.609 23547716.173
+ 30.600 27.100
+ -3354645.031 4 -2614008.028 4 24524310.636 24524309.119 24524310.269
+ 24.200 28.600
+ -18470927.163 7 -14392923.820 6 21041657.344 21041655.513 21041656.393
+ 45.900 40.000
+ -17800365.631 7 -13870406.676 6 21212270.962 21212267.711 21212269.945
+ 47.800 40.500
+ -796099.123 4 -620335.242 3 24050638.932 24050637.826 24050638.311
+ 27.100 21.100
+ 06 1 1 12 3 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21095563.165 7 -16438101.129 7 20646069.390 20646063.802 20646068.222
+ 46.400 42.600
+ -18008947.603 7 -14032946.340 6 21178459.167 21178456.399 21178458.856
+ 44.300 41.400
+ -5806654.389 5 -4524662.895 4 23526997.246 23526993.325 23526994.776
+ 32.400 27.400
+ -3441459.346 3 -2681655.466 4 24507789.432 24507788.809 24507788.963
+ 21.600 26.800
+ -18531828.264 7 -14440379.215 6 21030068.306 21030066.430 21030067.331
+ 46.100 39.900
+ -17738767.796 7 -13822408.367 6 21223992.740 21223989.354 21223991.624
+ 47.600 40.700
+ -710535.660 4 -553662.511 3 24066919.263 24066920.231 24066920.524
+ 26.800 21.600
+ 06 1 1 12 3 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21055237.522 7 -16406678.560 7 20653743.043 20653737.550 20653741.810
+ 46.200 42.400
+ -18045286.179 7 -14061262.116 6 21171544.214 21171541.416 21171543.896
+ 44.300 41.500
+ -5915400.770 5 -4609400.312 4 23506302.512 23506299.210 23506301.169
+ 33.600 25.300
+ -3528273.730 4 -2749303.022 4 24491270.516 24491268.720 24491269.307
+ 24.600 29.200
+ -18592205.073 7 -14487426.080 6 21018578.546 21018577.113 21018577.890
+ 46.100 40.200
+ -17676890.071 7 -13774191.966 6 21235767.716 21235764.287 21235766.544
+ 47.400 40.400
+ -624823.246 4 -486873.667 3 24083230.167 24083230.562 24083230.626
+ 25.600 20.500
+ 06 1 1 12 4 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21014322.046 7 -16374796.380 7 20661528.771 20661523.544 20661527.764
+ 46.400 42.500
+ -18081045.091 7 -14089126.206 6 21164739.516 21164736.617 21164739.235
+ 44.400 41.300
+ -6023998.972 5 -4694022.279 4 23485635.940 23485633.706 23485635.918
+ 33.400 25.300
+ -3615087.526 4 -2816950.116 4 24474750.088 24474748.973 24474749.119
+ 26.500 28.600
+ -18652055.390 7 -14534062.684 6 21007189.880 21007187.907 21007188.830
+ 46.000 40.000
+ -17614734.119 7 -13725758.763 6 21247595.624 21247592.127 21247594.517
+ 47.300 40.300
+ -538962.539 4 -419969.287 3 24099569.956 24099568.575 24099569.932
+ 26.800 19.300
+ 06 1 1 12 4 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20972817.996 7 -16342455.569 7 20669426.847 20669421.536 20669425.639
+ 46.000 42.400
+ -18116222.705 7 -14116537.338 6 21158045.574 21158042.466 21158045.235
+ 44.400 41.200
+ -6132446.270 5 -4778526.667 4 23464999.776 23464996.592 23464998.490
+ 31.600 24.200
+ -3701899.664 4 -2884595.922 4 24458231.435 24458229.117 24458230.405
+ 28.400 28.400
+ -18711377.490 7 -14580287.685 6 20995901.155 20995899.220 20995900.195
+ 45.800 40.000
+ -17552301.688 7 -13677110.118 6 21259475.912 21259472.562 21259474.848
+ 47.200 40.300
+ -452954.205 4 -352949.876 3 24115936.831 24115936.370 24115936.765
+ 25.300 21.100
+ 06 1 1 12 5 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20930726.800 7 -16309657.244 7 20677436.276 20677431.229 20677435.239
+ 46.000 42.300
+ -18150817.521 7 -14143494.343 6 21151462.263 21151459.387 21151461.927
+ 44.300 41.400
+ -6240739.781 5 -4862911.180 4 23444392.307 23444389.345 23444390.822
+ 31.600 26.500
+ -3788709.551 4 -2952239.988 3 24441710.750 24441709.371 24441710.161
+ 27.600 23.400
+ -18770169.359 7 -14626099.524 6 20984713.413 20984711.417 20984712.384
+ 46.000 39.900
+ -17489594.242 7 -13628247.183 6 21271409.063 21271405.462 21271407.826
+ 47.000 40.100
+ -366798.669 4 -285815.741 3 24132332.636 24132331.144 24132332.057
+ 26.200 21.600
+ 06 1 1 12 5 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20888049.523 7 -16276402.232 7 20685557.935 20685552.472 20685556.696
+ 46.000 42.500
+ -18184827.960 7 -14169995.983 6 21144990.285 21144987.417 21144989.907
+ 44.200 41.300
+ -6348876.836 5 -4947173.818 4 23423814.460 23423811.663 23423813.142
+ 32.400 27.100
+ -3875515.945 4 -3019881.365 3 24425193.051 24425189.922 24425191.934
+ 27.900 21.600
+ -18828429.198 7 -14671496.790 6 20973626.791 20973624.970 20973625.933
+ 45.900 39.900
+ -17426613.692 7 -13579171.440 6 21283393.620 21283390.307 21283392.610
+ 47.300 40.000
+ -280496.728 4 -218567.549 3 24148755.323 24148753.877 24148755.137
+ 27.600 21.100
+ 06 1 1 12 6 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20844787.187 7 -16242691.331 7 20693790.095 20693784.990 20693789.189
+ 46.200 42.200
+ -18218252.339 7 -14196040.957 6 21138629.751 21138626.900 21138629.458
+ 44.200 41.600
+ -6456854.563 5 -5031312.277 4 23403267.176 23403263.802 23403265.813
+ 32.300 26.200
+ -3962318.560 4 -3087519.758 2 24408675.290 24408672.356 24408674.134
+ 25.600 17.800
+ -18886154.910 7 -14716477.864 6 20962641.984 20962640.132 20962641.048
+ 46.100 39.900
+ -17363361.520 7 -13529884.043 6 21295429.916 21295426.746 21295429.016
+ 47.400 39.900
+ -194048.935 4 -151205.675 3 24165205.392 24165204.294 24165205.560
+ 26.200 18.600
+ 06 1 1 12 6 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20800941.627 7 -16208525.972 7 20702134.067 20702128.488 20702132.792
+ 46.200 42.100
+ -18251089.382 7 -14221628.265 6 21132380.974 21132378.272 21132380.724
+ 43.900 41.600
+ -6564670.443 5 -5115324.596 5 23382751.786 23382747.813 23382749.004
+ 31.300 30.400
+ -4049116.190 4 -3155154.287 3 24392157.792 24392155.923 24392156.693
+ 25.300 21.600
+ -18943344.955 7 -14761041.524 6 20951759.218 20951757.212 20951758.201
+ 46.000 39.800
+ -17299839.590 7 -13480386.439 6 21307517.824 21307514.676 21307516.851
+ 47.300 39.800
+ -107455.914 4 -83730.693 3 24181683.129 24181682.759 24181683.356
+ 24.900 20.500
+ 06 1 1 12 7 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20756513.714 7 -16173906.829 7 20710588.140 20710582.935 20710587.044
+ 46.100 42.200
+ -18283337.911 7 -14246756.987 6 21126244.624 21126241.608 21126244.227
+ 44.300 41.600
+ -6672321.761 5 -5199208.727 4 23362265.341 23362261.499 23362263.549
+ 32.600 25.900
+ -4135908.249 4 -3222784.449 3 24375641.391 24375639.282 24375640.392
+ 25.900 23.400
+ -18999997.092 7 -14805186.046 6 20940978.518 20940976.565 20940977.545
+ 46.000 39.800
+ -17236049.361 7 -13430679.777 6 21319656.835 21319653.582 21319655.798
+ 47.300 39.900
+ -20718.208 4 -16142.938 3 24198188.695 24198188.555 24198188.649
+ 25.600 20.500
+ 06 1 1 12 7 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20711504.905 7 -16138835.043 7 20719153.195 20719147.867 20719151.969
+ 46.000 42.000
+ -18314995.549 7 -14271425.282 6 21120220.173 21120217.293 21120219.907
+ 44.400 41.400
+ -6779805.575 5 -5282962.344 4 23341811.507 23341808.154 23341810.256
+ 33.600 27.900
+ -4222693.402 4 -3290409.231 3 24359127.185 24359124.631 24359126.133
+ 26.500 23.000
+ -19056109.467 7 -14848909.970 6 20930300.581 20930298.826 20930299.768
+ 46.400 39.900
+ -17171992.857 7 -13380765.624 6 21331846.665 21331843.164 21331845.458
+ 47.200 40.000
+ 66163.416 4 51556.962 3 24214721.705 24214721.522 24214721.687
+ 25.300 19.300
+ 06 1 1 12 8 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20665916.342 7 -16103311.492 6 20727828.214 20727823.101 20727827.094
+ 46.000 41.900
+ -18346061.272 7 -14295632.344 6 21114308.610 21114305.765 21114308.361
+ 44.500 41.900
+ -6887119.215 5 -5366583.335 5 23321392.090 23321387.631 23321389.041
+ 33.500 30.400
+ -4309471.234 4 -3358028.309 4 24342613.578 24342611.700 24342612.644
+ 26.500 25.900
+ -19111680.309 7 -14892211.922 6 20919725.824 20919723.960 20919725.059
+ 46.500 40.000
+ -17107671.639 7 -13330645.209 6 21344086.225 21344083.117 21344085.234
+ 47.300 39.800
+ 153188.415 4 119368.587 2 24231283.042 24231281.883 24231282.627
+ 26.500 17.000
+ 06 1 1 12 8 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20619749.642 7 -16067337.453 6 20736613.693 20736608.313 20736612.460
+ 46.300 41.800
+ -18376533.570 7 -14319376.995 6 21108509.876 21108507.242 21108509.598
+ 44.300 41.900
+ -6994260.087 5 -5450069.684 4 23301003.586 23300998.969 23301000.938
+ 33.900 29.500
+ -4396240.636 3 -3425640.826 4 24326101.520 24326099.813 24326100.210
+ 23.000 25.300
+ -19166707.807 7 -14935090.487 6 20909254.519 20909252.568 20909253.558
+ 46.400 40.300
+ -17043087.411 7 -13280319.840 6 21356376.401 21356373.023 21356375.197
+ 47.100 39.800
+ 240356.140 4 187291.403 3 24247871.154 24247869.583 24247870.190
+ 27.400 19.900
+ 06 1 1 12 9 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20573006.069 7 -16030913.897 6 20745508.591 20745503.348 20745507.483
+ 46.200 41.900
+ -18406411.396 7 -14342658.421 6 21102824.326 21102821.533 21102823.996
+ 44.200 41.800
+ -7101225.164 5 -5533419.051 4 23280646.961 23280644.165 23280646.102
+ 34.000 29.500
+ -4483000.713 4 -3493246.050 4 24309591.112 24309590.383 24309590.486
+ 26.200 27.900
+ -19221190.094 7 -14977544.210 6 20898886.836 20898884.973 20898885.929
+ 46.500 40.600
+ -16978241.855 7 -13229790.845 6 21368715.924 21368712.781 21368715.011
+ 47.300 39.700
+ 327665.892 4 255324.922 3 24264485.289 24264483.483 24264484.472
+ 26.200 21.100
+ 06 1 1 12 9 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20525687.166 7 -15994042.037 6 20754513.138 20754507.758 20754511.957
+ 46.200 41.400
+ -18435693.073 7 -14365475.313 6 21097252.088 21097249.372 21097251.798
+ 44.200 41.800
+ -7208011.821 5 -5616629.430 4 23260326.963 23260323.333 23260325.313
+ 33.400 29.500
+ -4569750.674 4 -3560843.372 4 24293084.250 24293082.018 24293083.337
+ 28.100 27.100
+ -19275125.423 7 -15019571.738 6 20888623.329 20888621.386 20888622.441
+ 46.400 40.200
+ -16913136.533 7 -13179059.433 6 21381105.353 21381101.835 21381104.170
+ 47.200 39.100
+ 415117.110 4 323468.660 3 24281126.541 24281125.874 24281126.032
+ 24.900 21.600
+ 06 1 1 12 10 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20477794.250 7 -15956722.890 6 20763627.064 20763621.539 20763625.809
+ 46.200 41.800
+ -18464377.093 7 -14387826.502 6 21091793.777 21091791.056 21091793.473
+ 44.200 41.900
+ -7314617.351 5 -5699698.624 4 23240041.935 23240037.031 23240039.074
+ 32.800 29.500
+ -4656489.578 4 -3628432.141 4 24276578.292 24276576.169 24276577.303
+ 27.400 27.100
+ -19328512.058 7 -15061171.707 6 20878464.389 20878462.280 20878463.364
+ 46.500 40.500
+ -16847772.977 7 -13128126.799 6 21393543.561 21393540.155 21393542.323
+ 47.100 39.300
+ 502709.139 4 391722.116 3 24297794.075 24297794.191 24297794.062
+ 24.200 20.500
+ 06 1 1 12 10 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20429329.095 7 -15918957.848 6 20772849.503 20772844.276 20772848.372
+ 46.200 41.700
+ -18492462.222 7 -14409711.023 6 21086449.525 21086446.599 21086449.155
+ 44.300 41.900
+ -7421039.199 5 -5782624.694 4 23219790.187 23219785.697 23219787.668
+ 32.000 29.000
+ -4743216.435 4 -3696011.501 4 24260074.755 24260072.914 24260073.471
+ 27.400 29.000
+ -19381348.247 7 -15102342.758 6 20868409.881 20868408.031 20868408.905
+ 46.500 40.800
+ -16782153.050 7 -13076994.398 6 21406030.361 21406027.159 21406029.319
+ 47.100 38.800
+ 590441.172 3 460084.653 3 24314489.139 24314488.926 24314489.025
+ 23.800 18.600
+ 06 1 1 12 11 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20380292.592 7 -15880747.600 6 20782180.958 20782175.535 20782179.680
+ 46.200 41.500
+ -18519946.990 7 -14431127.730 7 21081219.266 21081216.493 21081218.890
+ 44.100 42.000
+ -7527274.474 5 -5865405.405 4 23199571.836 23199569.645 23199571.518
+ 33.100 28.100
+ -4829930.305 4 -3763580.712 4 24243572.848 24243571.343 24243571.946
+ 26.800 28.400
+ -19433632.358 7 -15143083.614 6 20858460.442 20858458.721 20858459.585
+ 46.600 40.700
+ -16716278.508 7 -13025663.590 6 21418565.775 21418562.779 21418564.879
+ 47.100 39.000
+ 678312.755 4 528555.933 2 24331210.786 24331210.273 24331210.471
+ 24.900 17.800
+ 06 1 1 12 11 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20330686.473 7 -15842093.492 6 20791620.580 20791615.104 20791619.510
+ 46.500 41.300
+ -18546830.250 7 -14452075.730 7 21076103.421 21076100.809 21076103.156
+ 44.100 42.000
+ -7633320.329 5 -5948038.541 4 23179393.002 23179389.340 23179391.939
+ 33.500 26.800
+ -4916630.323 4 -3831139.147 4 24227074.579 24227072.666 24227073.583
+ 26.200 25.600
+ -19485362.600 7 -15183392.891 6 20848616.567 20848614.703 20848615.700
+ 46.700 40.900
+ -16650150.997 7 -12974135.666 6 21431149.483 21431146.422 21431148.482
+ 46.700 39.000
+ 766323.132 4 597135.398 2 24347959.969 24347957.928 24347959.378
+ 25.300 17.000
+ 06 1 1 12 12 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20280512.109 7 -15802996.595 6 20801168.589 20801162.963 20801167.344
+ 46.200 41.300
+ -18573110.804 7 -14472554.088 7 21071102.444 21071099.761 21071102.138
+ 44.200 42.100
+ -7739174.270 5 -6030522.093 4 23159251.348 23159246.060 23159248.677
+ 34.600 27.100
+ -5003315.922 4 -3898686.354 4 24210578.265 24210577.213 24210577.969
+ 25.900 25.600
+ -19536537.419 7 -15223269.375 6 20838878.577 20838876.466 20838877.515
+ 46.700 40.700
+ -16583772.220 7 -12922411.953 6 21443780.934 21443777.852 21443779.919
+ 46.500 38.900
+ 854471.530 4 665822.384 2 24364733.643 24364732.170 24364733.437
+ 28.800 17.800
+ 06 1 1 12 12 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20229771.514 7 -15763458.483 6 20810824.023 20810818.698 20810822.801
+ 46.100 41.300
+ -18598787.171 7 -14492561.652 7 21066216.475 21066213.746 21066216.154
+ 44.200 42.000
+ -7844833.472 5 -6112853.914 4 23139145.163 23139140.010 23139142.416
+ 34.700 28.100
+ -5089985.630 4 -3966221.199 4 24194086.414 24194084.690 24194085.844
+ 27.600 24.900
+ -19587155.056 7 -15262711.685 6 20829246.161 20829244.173 20829245.158
+ 46.600 40.700
+ -16517143.663 7 -12870493.611 6 21456460.285 21456456.827 21456459.060
+ 46.500 38.900
+ 942757.403 4 734616.457 3 24381533.026 24381532.940 24381532.988
+ 25.900 20.500
+ 06 1 1 12 13 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20178466.061 7 -15723480.224 6 20820586.952 20820581.729 20820585.876
+ 46.100 41.200
+ -18623858.245 7 -14512097.563 6 21061445.581 21061442.784 21061445.299
+ 44.200 41.900
+ -7950295.289 5 -6195031.940 4 23119074.807 23119071.256 23119073.278
+ 35.200 29.000
+ -5176638.680 4 -4033743.052 4 24177597.401 24177594.985 24177596.353
+ 27.400 26.200
+ -19637213.819 7 -15301718.509 6 20819720.197 20819718.271 20819719.229
+ 46.700 40.800
+ -16450266.966 7 -12818381.913 6 21469186.595 21469182.963 21469185.333
+ 46.400 38.600
+ 1031179.980 4 803517.098 2 24398357.963 24398358.742 24398358.544
+ 24.600 16.100
+ 06 1 1 12 13 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20126597.273 7 -15683062.996 6 20830457.347 20830452.010 20830456.292
+ 46.200 41.100
+ -18648322.871 7 -14531160.910 7 21056790.378 21056787.339 21056789.989
+ 44.300 42.000
+ -8055556.819 5 -6277053.879 4 23099043.579 23099040.540 23099042.652
+ 34.600 29.000
+ -5263274.116 4 -4101251.194 4 24161111.383 24161108.343 24161110.260
+ 27.600 24.200
+ -19686712.285 7 -15340288.739 6 20810300.989 20810299.074 20810300.037
+ 46.900 41.000
+ -16383143.844 7 -12766078.198 6 21481959.172 21481956.344 21481958.169
+ 46.400 38.400
+ 1119738.667 4 872523.780 2 24415212.317 24415210.988 24415211.691
+ 25.300 17.800
+ 06 1 1 12 14 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20074166.753 7 -15642208.061 6 20840434.647 20840429.321 20840433.516
+ 46.100 41.200
+ -18672179.753 7 -14549750.697 7 21052250.523 21052247.580 21052250.167
+ 44.300 42.100
+ -8160615.559 5 -6358917.780 5 23079052.067 23079048.787 23079050.560
+ 34.900 31.100
+ -5349890.867 4 -4168744.751 4 24144628.916 24144626.093 24144627.571
+ 28.800 25.600
+ -19735648.759 7 -15378421.058 6 20800988.704 20800986.807 20800987.798
+ 46.900 41.200
+ -16315775.892 7 -12713583.699 6 21494779.059 21494775.891 21494778.026
+ 46.400 38.400
+ 1208432.830 4 941636.016 3 24432090.221 24432088.931 24432089.557
+ 24.200 19.300
+ 06 1 1 12 14 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20021176.203 7 -15600916.738 6 20850518.387 20850513.186 20850517.250
+ 46.100 40.900
+ -18695427.668 7 -14567865.957 7 21047826.331 21047823.633 21047826.009
+ 44.200 42.200
+ -8265468.527 5 -6440621.378 5 23059099.893 23059095.680 23059097.870
+ 34.900 30.400
+ -5436488.198 4 -4236223.189 4 24128149.000 24128146.894 24128148.152
+ 28.100 25.300
+ -19784021.939 7 -15416114.439 6 20791783.826 20791781.797 20791782.855
+ 47.200 41.200
+ -16248164.721 7 -12660899.681 6 21507644.807 21507641.909 21507643.937
+ 46.400 38.400
+ 1297261.648 4 1010853.188 2 24448994.045 24448992.400 24448993.179
+ 25.600 17.800
+ 06 1 1 12 15 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19967627.179 7 -15559190.239 6 20860708.560 20860703.149 20860707.431
+ 46.200 41.000
+ -18718065.778 7 -14585506.045 7 21043518.657 21043515.823 21043518.275
+ 44.400 42.400
+ -8370113.195 5 -6522162.644 5 23039187.577 23039182.259 23039184.715
+ 34.700 30.100
+ -5523065.068 4 -4303685.679 4 24111674.779 24111672.078 24111673.560
+ 27.600 24.600
+ -19831830.082 7 -15453367.532 6 20782686.259 20782684.083 20782685.257
+ 47.300 41.100
+ -16180312.210 7 -12608027.607 6 21520557.286 21520553.896 21520556.069
+ 46.600 38.300
+ 1386224.518 3 1080174.830 3 24465922.912 24465922.275 24465922.415
+ 23.400 22.100
+ 06 1 1 12 15 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19913521.437 7 -15517029.933 6 20871004.698 20870999.229 20871003.447
+ 46.100 41.000
+ -18740092.512 7 -14602669.741 7 21039326.987 21039324.228 21039326.700
+ 44.300 42.200
+ -8474546.648 5 -6603539.323 5 23019313.690 23019309.178 23019311.635
+ 34.900 30.100
+ -5609620.311 4 -4371131.331 4 24095202.865 24095201.445 24095201.990
+ 27.100 25.900
+ -19879071.490 7 -15490179.021 6 20773696.465 20773694.401 20773695.477
+ 47.000 41.200
+ -16112219.550 7 -12554968.403 6 21533514.586 21533511.466 21533513.584
+ 46.400 38.200
+ 1475320.819 4 1149600.386 3 24482877.171 24482877.061 24482876.846
+ 26.200 20.500
+ 06 1 1 12 16 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19858860.807 7 -15474437.248 6 20881406.129 20881400.917 20881404.995
+ 46.200 41.100
+ -18761506.926 7 -14619356.305 7 21035251.894 21035249.068 21035251.605
+ 44.200 42.000
+ -8578766.359 5 -6684749.469 5 22999480.111 22999477.175 22999479.117
+ 35.200 31.500
+ -5696153.067 4 -4438559.424 4 24078736.493 24078734.724 24078735.429
+ 27.600 25.900
+ -19925744.854 7 -15526547.876 6 20764814.769 20764812.823 20764813.736
+ 47.100 41.200
+ -16043888.784 7 -12501723.664 6 21546517.792 21546514.450 21546516.594
+ 46.400 38.400
+ 1564549.586 3 1219129.221 3 24499855.949 24499856.769 24499855.756
+ 22.100 19.900
+ 06 1 1 12 16 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19803646.620 7 -15431413.217 6 20891912.976 20891907.671 20891911.799
+ 46.000 40.700
+ -18782308.103 7 -14635565.016 6 21031293.356 21031290.621 21031293.133
+ 44.100 41.900
+ -8682769.520 5 -6765790.879 4 22979688.512 22979685.568 22979687.953
+ 35.500 29.500
+ -5782662.229 4 -4505969.156 4 24062274.370 24062272.179 24062273.533
+ 28.600 24.200
+ -19971848.458 7 -15562472.761 6 20756041.532 20756039.521 20756040.545
+ 47.300 41.400
+ -15975321.358 7 -12448294.511 6 21559565.390 21559562.373 21559564.398
+ 46.400 38.100
+ 1653910.314 4 1288760.861 2 24516861.906 24516861.328 24516861.539
+ 24.900 16.100
+ 06 1 1 12 17 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19747880.829 7 -15387959.367 6 20902524.716 20902519.490 20902523.564
+ 45.600 40.800
+ -18802494.743 7 -14651294.872 7 21027452.298 21027449.406 21027451.936
+ 44.200 42.300
+ -8786553.651 6 -6846661.617 4 22959940.283 22959936.195 22959938.428
+ 36.300 29.500
+ -5869146.699 4 -4573359.642 4 24045816.860 24045814.943 24045816.220
+ 28.600 24.200
+ -20017380.931 7 -15597952.606 6 20747377.072 20747374.994 20747376.041
+ 47.300 41.400
+ -15906518.826 7 -12394682.165 6 21572658.002 21572655.069 21572657.001
+ 46.100 38.100
+ 1743402.209 3 1358494.713 2 24533891.265 24533890.617 24533890.907
+ 23.400 17.800
+ 06 1 1 12 17 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19691565.107 7 -15344077.003 6 20913241.225 20913236.021 20913240.064
+ 45.400 40.700
+ -18822065.981 7 -14666545.194 7 21023727.930 21023725.163 21023727.630
+ 44.100 42.300
+ -8890115.848 6 -6927359.413 4 22940234.257 22940228.971 22940231.429
+ 36.300 29.000
+ -5955605.973 4 -4640730.536 4 24029364.242 24029361.965 24029363.479
+ 29.000 25.300
+ -20062340.897 7 -15632986.346 6 20738821.406 20738819.448 20738820.365
+ 47.100 41.500
+ -15837482.939 7 -12340887.979 6 21585795.250 21585792.118 21585794.261
+ 46.300 37.700
+ 1833024.614 4 1428330.259 2 24550946.451 24550945.118 24550946.365
+ 24.200 12.600
+ 06 1 1 12 18 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19634701.425 7 -15299767.656 6 20924061.995 20924056.934 20924060.848
+ 45.600 40.800
+ -18841020.763 7 -14681315.158 7 21020120.863 21020118.112 21020120.543
+ 44.100 42.300
+ -8993453.341 5 -7007882.130 5 22920570.175 22920564.843 22920567.101
+ 35.200 30.200
+ -6042038.386 4 -4708080.463 4 24012916.685 24012914.626 24012915.573
+ 27.600 26.200
+ -20106726.884 7 -15667572.831 6 20730374.912 20730372.961 20730373.955
+ 47.100 41.300
+ -15768215.139 7 -12286913.082 6 21598976.538 21598973.341 21598975.527
+ 46.300 37.800
+ 1922776.792 3 1498266.985 2 24568024.901 24568024.821 24568024.571
+ 22.600 17.800
+ 06 1 1 12 18 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19577291.506 7 -15255032.670 6 20934986.821 20934981.755 20934985.613
+ 45.400 40.700
+ -18859358.135 7 -14695604.022 7 21016631.566 21016628.671 21016631.261
+ 44.200 42.500
+ -9096563.393 5 -7088227.602 5 22900947.980 22900943.498 22900945.573
+ 35.400 31.500
+ -6128443.337 4 -4775408.988 4 23996474.205 23996472.355 23996473.254
+ 29.200 26.500
+ -20150537.686 7 -15701711.116 6 20722038.012 20722036.059 20722037.058
+ 47.100 41.400
+ -15698717.158 7 -12232758.828 6 21612201.324 21612198.362 21612200.413
+ 46.100 37.700
+ 2012658.029 3 1568304.183 2 24585128.252 24585128.758 24585128.683
+ 22.600 16.100
+ 06 1 1 12 19 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19519337.130 7 -15209873.436 6 20946015.151 20946010.107 20946014.066
+ 45.500 40.600
+ -18877076.968 7 -14709410.914 7 21013259.802 21013256.948 21013259.473
+ 44.300 42.200
+ -9199443.495 6 -7168393.899 5 22881368.932 22881366.018 22881368.042
+ 36.900 30.800
+ -6214819.783 5 -4842715.311 4 23980037.493 23980035.539 23980036.481
+ 30.100 28.800
+ -20193771.777 7 -15735400.023 6 20713810.791 20713808.877 20713809.875
+ 47.100 41.500
+ -15628990.627 7 -12178426.483 6 21625470.361 21625466.894 21625469.174
+ 46.100 37.700
+ 2102667.542 3 1638441.402 2 24602257.570 24602257.106 24602257.665
+ 23.400 17.800
+ 06 1 1 12 19 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19460840.082 7 -15164291.338 6 20957146.816 20957141.772 20957145.773
+ 45.700 40.500
+ -18894176.462 7 -14722735.200 7 21010005.827 21010002.983 21010005.483
+ 44.000 42.300
+ -9302090.881 6 -7248378.854 5 22861835.492 22861832.974 22861835.068
+ 37.200 31.000
+ -6301166.383 4 -4909998.355 5 23963606.261 23963604.646 23963605.111
+ 29.700 30.400
+ -20236427.671 7 -15768638.385 6 20705693.741 20705691.731 20705692.809
+ 47.200 41.600
+ -15559037.251 7 -12123917.372 6 21638781.761 21638778.711 21638780.791
+ 46.200 37.600
+ 2192804.685 3 1708678.010 2 24619410.123 24619409.618 24619410.130
+ 23.000 13.900
+ 06 1 1 12 20 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19401802.294 7 -15118287.884 6 20968381.447 20968376.233 20968380.325
+ 45.600 40.500
+ -18910655.812 7 -14735576.254 7 21006869.775 21006867.070 21006869.407
+ 43.700 42.300
+ -9404503.032 6 -7328180.522 5 22842347.482 22842344.520 22842346.989
+ 37.200 31.000
+ -6387482.332 4 -4977257.543 5 23947181.451 23947179.295 23947180.581
+ 29.900 31.000
+ -20278504.160 7 -15801425.259 6 20697687.049 20697684.896 20697685.999
+ 47.300 41.600
+ -15488858.265 7 -12069232.460 6 21652136.729 21652133.258 21652135.548
+ 45.900 37.000
+ 2283068.653 4 1779013.482 3 24636586.825 24636586.631 24636587.008
+ 24.600 19.300
+ 06 1 1 12 20 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19342225.629 7 -15071864.531 6 20979718.649 20979713.314 20979717.499
+ 45.800 40.200
+ -18926513.958 7 -14747933.257 7 21003852.016 21003849.349 21003851.756
+ 43.900 42.500
+ -9506676.745 6 -7407796.413 5 22822904.312 22822901.633 22822903.415
+ 37.200 31.300
+ -6473766.589 4 -5044492.027 5 23930761.522 23930760.005 23930760.726
+ 29.900 31.000
+ -20319999.794 7 -15833759.523 6 20689790.652 20689788.442 20689789.706
+ 47.500 41.500
+ -15418455.336 7 -12014373.048 6 21665533.617 21665530.592 21665532.673
+ 46.000 37.200
+ 2373458.713 4 1849447.191 2 24653787.996 24653787.541 24653787.928
+ 24.600 17.000
+ 06 1 1 12 21 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19282112.121 7 -15025022.855 6 20991157.888 20991152.481 20991156.658
+ 45.800 39.800
+ -18941750.164 7 -14759805.638 7 21000952.869 21000950.058 21000952.502
+ 44.000 42.400
+ -9608609.712 6 -7487224.688 5 22803507.866 22803504.318 22803506.249
+ 37.700 31.800
+ -6560017.765 4 -5111700.696 4 23914348.348 23914346.880 23914347.321
+ 29.000 29.900
+ -20360913.591 7 -15865640.405 6 20682004.899 20682002.854 20682003.938
+ 47.500 41.600
+ -15347830.046 7 -11959340.364 6 21678973.156 21678969.971 21678972.151
+ 46.000 36.900
+ 2463974.112 3 1919978.570 2 24671012.144 24671012.394 24671012.047
+ 22.100 17.800
+ 06 1 1 12 21 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19221463.403 7 -14977764.136 6 21002698.929 21002693.576 21002697.756
+ 45.800 39.800
+ -18956363.808 7 -14771192.897 7 20998171.947 20998169.184 20998171.590
+ 44.000 42.600
+ -9710299.252 6 -7566463.277 5 22784156.684 22784153.404 22784155.121
+ 36.500 32.000
+ -6646235.002 4 -5178882.981 4 23897941.434 23897939.617 23897940.914
+ 29.700 27.600
+ -20401244.030 7 -15897066.725 6 20674330.268 20674328.155 20674329.268
+ 47.400 41.400
+ -15276984.388 7 -11904135.978 6 21692454.547 21692451.671 21692453.667
+ 46.000 37.200
+ 2554614.024 3 1990606.944 2 24688261.330 24688259.824 24688260.718
+ 22.600 13.900
+ 06 1 1 12 22 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19160281.502 7 -14930089.948 6 21014341.675 21014336.134 21014340.427
+ 45.900 40.000
+ -18970353.514 7 -14782093.975 7 20995509.742 20995506.983 20995509.389
+ 44.000 42.700
+ -9811742.572 6 -7645509.998 5 22764853.938 22764849.113 22764851.290
+ 36.300 31.800
+ -6732417.386 4 -5246038.082 4 23881541.954 23881540.093 23881540.899
+ 29.900 26.800
+ -20440989.990 7 -15928037.603 6 20666766.933 20666764.880 20666765.924
+ 47.500 41.800
+ -15205919.344 7 -11848760.633 6 21705978.094 21705974.800 21705977.069
+ 45.600 37.100
+ 2645377.818 3 2061331.903 2 24705532.205 24705531.608 24705531.913
+ 22.600 12.600
+ 06 1 1 12 22 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19098568.464 7 -14882001.886 6 21026084.901 21026079.823 21026083.882
+ 45.700 40.000
+ -18983718.554 7 -14792508.298 7 20992966.448 20992963.650 20992966.131
+ 44.000 42.300
+ -9912937.223 6 -7724362.946 5 22745597.354 22745592.549 22745594.480
+ 36.700 32.000
+ -6818563.773 5 -5313165.125 4 23865149.169 23865146.731 23865148.218
+ 31.100 27.100
+ -20480150.304 7 -15958552.135 6 20659314.845 20659312.870 20659313.915
+ 47.600 41.800
+ -15134636.754 7 -11793215.771 6 21719542.616 21719539.561 21719541.551
+ 45.600 36.900
+ 2736264.616 3 2132152.663 2 24722827.046 24722827.754 24722826.531
+ 19.900 17.800
+ 06 1 1 12 23 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19036326.045 7 -14833501.327 6 21037929.563 21037924.238 21037928.270
+ 45.500 40.100
+ -18996458.375 7 -14802435.440 7 20990542.124 20990539.366 20990541.843
+ 43.800 42.400
+ -10013880.177 6 -7803019.792 5 22726388.156 22726383.731 22726385.522
+ 36.400 31.800
+ -6904673.066 5 -5380263.293 4 23848763.371 23848760.340 23848762.084
+ 30.200 26.200
+ -20518723.869 7 -15988609.467 6 20651974.582 20651972.586 20651973.666
+ 47.600 41.900
+ -15063138.242 7 -11737502.666 6 21733148.214 21733145.328 21733147.184
+ 45.300 37.200
+ 2827273.840 3 2203068.832 3 24740145.803 24740146.728 24740146.318
+ 20.500 18.600
+ 06 1 1 12 23 30.0000000 0 7G23G13G19G27G 3G16G25
+ -18973556.713 7 -14784590.183 6 21049873.841 21049868.882 21049872.707
+ 45.500 39.900
+ -19008572.402 7 -14811874.949 7 20988236.878 20988234.139 20988236.601
+ 44.000 42.400
+ -10114568.892 6 -7881478.520 5 22707227.435 22707223.546 22707225.213
+ 36.500 32.800
+ -6990743.830 5 -5447331.440 4 23832383.817 23832381.870 23832383.156
+ 31.000 26.200
+ -20556709.422 7 -16018208.602 6 20644746.273 20644744.094 20644745.303
+ 47.800 41.800
+ -14991425.336 7 -11681622.496 6 21746794.868 21746791.585 21746793.854
+ 45.600 36.700
+ 2918404.674 3 2274079.705 2 24757488.907 24757488.171 24757487.897
+ 20.500 16.100
+ 06 1 1 12 24 0.0000000 0 6G23G13G19G27G 3G16
+ -18910262.049 7 -14735269.693 6 21061918.363 21061913.485 21061917.343
+ 45.600 39.900
+ -19020059.705 7 -14820826.102 7 20986050.926 20986048.234 20986050.628
+ 43.900 42.400
+ -10215000.720 6 -7959737.067 5 22688116.758 22688111.741 22688114.051
+ 38.100 32.700
+ -7076775.202 5 -5514368.866 4 23816013.529 23816010.549 23816012.069
+ 30.400 27.100
+ -20594105.610 7 -16047348.491 6 20637629.948 20637627.845 20637629.102
+ 47.900 41.800
+ -14919499.639 7 -11625576.515 6 21760481.756 21760478.848 21760480.854
+ 45.500 36.900
+ 06 1 1 12 24 30.0000000 0 6G23G13G19G27G 3G16
+ -18846444.403 7 -14685541.691 6 21074062.699 21074057.630 21074061.556
+ 45.500 39.800
+ -19030919.813 7 -14829288.529 7 20983984.331 20983981.646 20983984.069
+ 43.800 42.500
+ -10315172.957 6 -8037793.345 5 22669054.264 22669049.718 22669051.856
+ 37.400 32.700
+ -7162766.014 5 -5581374.693 4 23799648.571 23799647.662 23799647.991
+ 30.600 28.800
+ -20630911.579 7 -16076028.470 6 20630626.014 20630623.980 20630625.116
+ 47.900 41.900
+ -14847362.733 7 -11569365.965 6 21774208.979 21774206.005 21774208.085
+ 45.400 36.300
+ 06 1 1 12 25 0.0000000 0 6G23G13G19G27G 3G16
+ -18782105.503 7 -14635407.511 6 21086305.987 21086300.944 21086304.930
+ 45.400 39.800
+ -19041151.829 7 -14837261.539 7 20982037.206 20982034.619 20982036.850
+ 43.600 42.400
+ -10415082.958 6 -8115645.261 5 22650041.293 22650037.696 22650039.271
+ 37.300 33.900
+ -7248715.497 5 -5648348.302 4 23783294.626 23783292.245 23783293.323
+ 31.100 29.500
+ -20667126.248 8 -16104247.697 6 20623734.494 20623732.499 20623733.677
+ 48.100 41.700
+ -14775015.881 7 -11512991.803 6 21787976.297 21787973.325 21787975.295
+ 45.200 36.500
+ 06 1 1 12 25 30.0000000 0 6G23G13G19G27G 3G16
+ -18717247.461 7 -14584868.811 6 21098648.069 21098643.019 21098647.017
+ 45.400 39.700
+ -19050755.311 7 -14844744.779 7 20980209.695 20980207.111 20980209.437
+ 43.800 42.600
+ -10514728.145 6 -8193290.833 5 22631079.758 22631075.861 22631077.669
+ 38.300 33.000
+ -7334622.032 5 -5715288.457 4 23766946.240 23766944.208 23766945.338
+ 31.800 28.100
+ -20702748.363 8 -16132005.197 6 20616956.068 20616953.801 20616955.161
+ 48.200 41.900
+ -14702460.567 7 -11456455.215 6 21801783.126 21801780.170 21801782.035
+ 45.200 36.500
+ 06 1 1 12 26 0.0000000 0 6G23G13G19G27G 3G16
+ -18651872.068 7 -14533926.971 6 21111088.848 21111083.422 21111087.564
+ 45.300 39.700
+ -19059729.594 7 -14851737.733 7 20978502.004 20978499.371 20978501.698
+ 44.000 42.700
+ -10614105.716 6 -8270727.906 5 22612168.007 22612164.368 22612166.716
+ 38.100 32.400
+ -7420484.671 5 -5782194.420 4 23750607.353 23750605.182 23750606.372
+ 31.500 29.000
+ -20737776.970 7 -16159300.218 6 20610290.320 20610288.151 20610289.383
+ 47.900 41.900
+ -14629698.627 7 -11399757.619 5 21815629.367 21815626.072 21815628.170
+ 45.100 35.900
+ 06 1 1 12 26 30.0000000 0 6G23G13G19G27G 3G16
+ -18585982.211 7 -14482584.245 6 21123627.253 21123621.903 21123626.131
+ 45.700 39.500
+ -19068073.866 7 -14858239.773 7 20976914.388 20976911.645 20976914.087
+ 44.100 42.800
+ -10713213.189 6 -8347954.500 5 22593308.411 22593305.125 22593307.125
+ 39.200 33.000
+ -7506302.344 5 -5849065.338 4 23734276.597 23734274.755 23734275.925
+ 31.500 28.600
+ -20772210.954 7 -16186131.903 7 20603737.591 20603735.611 20603736.651
+ 47.800 42.000
+ -14556731.480 7 -11342900.119 6 21829514.312 21829511.453 21829513.265
+ 45.000 36.400
+ 06 1 1 12 27 0.0000000 0 6G23G13G19G27G 3G16
+ -18519579.535 7 -14430841.927 6 21136263.252 21136258.097 21136262.054
+ 45.700 39.400
+ -19075787.749 7 -14864250.600 7 20975446.523 20975443.691 20975446.228
+ 44.300 42.700
+ -10812047.812 6 -8424968.488 5 22574500.763 22574497.463 22574499.633
+ 38.800 33.200
+ -7592073.671 5 -5915900.146 4 23717955.619 23717952.665 23717954.417
+ 31.500 27.900
+ -20806049.190 7 -16212499.366 7 20597298.375 20597296.444 20597297.433
+ 47.800 42.100
+ -14483560.715 7 -11285883.954 6 21843438.400 21843435.348 21843437.290
+ 44.700 36.000
+ 06 1 1 12 27 30.0000000 0 6G23G13G19G27G 3G16
+ -18452666.143 7 -14378701.637 6 21148996.738 21148991.155 21148995.328
+ 45.200 39.100
+ -19082870.660 7 -14869769.763 7 20974098.661 20974095.877 20974098.336
+ 44.200 42.700
+ -10910607.030 6 -8501767.864 5 22555745.094 22555742.330 22555744.347
+ 38.500 33.100
+ -7677797.721 5 -5982698.098 5 23701641.806 23701640.576 23701641.185
+ 31.500 30.200
+ -20839290.806 7 -16238401.933 7 20590972.621 20590970.835 20590971.741
+ 47.800 42.100
+ -14410187.812 7 -11228710.282 6 21857400.751 21857397.794 21857399.751
+ 44.600 36.000
+ 06 1 1 12 28 0.0000000 0 6G23G13G19G27G 3G16
+ -18385244.185 7 -14326165.075 6 21161826.552 21161821.196 21161825.399
+ 45.500 39.300
+ -19089322.000 7 -14874796.790 7 20972870.989 20972868.209 20972870.692
+ 43.900 42.700
+ -11008888.218 6 -8578350.588 5 22537043.047 22537040.059 22537041.777
+ 38.900 33.000
+ -7763473.211 5 -6049458.222 4 23685338.809 23685336.419 23685337.842
+ 30.600 29.000
+ -20871934.821 7 -16263838.833 7 20584760.676 20584758.901 20584759.770
+ 47.600 42.100
+ -14336614.222 7 -11171380.239 6 21871401.175 21871398.384 21871400.180
+ 44.400 36.100
+ 06 1 1 12 28 30.0000000 0 6G23G13G19G27G 3G16
+ -18317316.257 7 -14273234.244 6 21174752.345 21174747.480 21174751.511
+ 45.400 39.400
+ -19095141.594 7 -14879331.548 7 20971763.583 20971760.731 20971763.234
+ 44.100 42.600
+ -11106888.775 6 -8654714.645 5 22518394.067 22518391.099 22518392.830
+ 38.400 33.200
+ -7849098.758 5 -6116179.432 4 23669044.135 23669042.210 23669043.398
+ 30.100 28.400
+ -20903980.574 7 -16288809.555 7 20578662.612 20578660.718 20578661.665
+ 47.700 42.100
+ -14262841.268 7 -11113894.834 5 21885440.122 21885436.551 21885438.928
+ 44.600 35.100
+ 06 1 1 12 29 0.0000000 0 6G23G13G19G27G 3G16
+ -18248884.080 7 -14219910.501 6 21187775.307 21187769.668 21187773.877
+ 45.100 39.200
+ -19100328.798 7 -14883373.534 7 20970776.433 20970773.659 20970776.104
+ 44.000 42.500
+ -11204605.763 6 -8730857.729 5 22499799.448 22499796.184 22499798.389
+ 39.300 34.100
+ -7934673.357 5 -6182860.935 4 23652760.837 23652758.167 23652759.697
+ 31.300 29.500
+ -20935426.980 7 -16313313.258 7 20572678.720 20572676.701 20572677.759
+ 47.700 42.200
+ -14188870.908 7 -11056255.616 5 21899516.073 21899513.191 21899514.967
+ 44.300 35.600
+ 06 1 1 12 29 30.0000000 0 6G23G13G19G27G 3G16
+ -18179949.829 7 -14166195.514 6 21200893.081 21200887.478 21200891.739
+ 45.200 39.300
+ -19104883.166 7 -14886922.400 7 20969909.771 20969907.099 20969909.470
+ 43.800 42.700
+ -11302036.708 6 -8806777.934 5 22481259.346 22481255.602 22481257.690
+ 39.400 33.900
+ -8020195.921 5 -6249501.899 5 23636486.294 23636484.129 23636485.352
+ 32.300 30.600
+ -20966273.261 7 -16337349.329 7 20566808.816 20566806.888 20566807.835
+ 47.700 42.200
+ -14114704.287 7 -10998463.467 5 21913629.722 21913626.434 21913628.533
+ 44.400 35.500
+ 06 1 1 12 30 0.0000000 0 6G23G13G19G27G 3G16
+ -18110515.876 7 -14112091.175 6 21214105.454 21214100.411 21214104.387
+ 45.400 39.100
+ -19108804.370 7 -14889977.890 7 20969163.430 20969160.773 20969163.124
+ 43.800 42.500
+ -11399179.136 6 -8882473.319 5 22462773.407 22462769.957 22462771.794
+ 39.100 33.400
+ -8105665.134 5 -6316101.280 5 23620221.331 23620219.851 23620220.621
+ 32.600 30.800
+ -20996518.481 7 -16360917.039 7 20561053.348 20561051.436 20561052.370
+ 47.800 42.400
+ -14040343.179 7 -10940519.768 5 21927780.115 21927776.849 21927778.919
+ 44.400 35.500
+ 06 1 1 12 30 30.0000000 0 6G23G13G19G27G 3G16
+ -18040584.433 7 -14057599.181 6 21227413.008 21227407.952 21227411.940
+ 45.400 38.900
+ -19112092.161 7 -14892539.815 7 20968537.841 20968535.080 20968537.525
+ 43.800 42.500
+ -11496030.463 6 -8957941.865 5 22444343.210 22444339.765 22444341.506
+ 39.100 33.800
+ -8191079.919 5 -6382658.260 5 23603967.701 23603965.800 23603966.765
+ 32.000 30.800
+ -21026161.934 7 -16384015.837 7 20555412.356 20555410.524 20555411.407
+ 47.900 42.600
+ -13965788.896 7 -10882425.543 5 21941967.356 21941964.256 21941966.295
+ 44.300 35.300
+ 06 1 1 12 31 0.0000000 0 6G23G13G19G27G 3G16
+ -17970157.832 7 -14002721.335 6 21240815.281 21240809.776 21240813.950
+ 45.300 38.700
+ -19114746.028 7 -14894607.773 7 20968033.129 20968030.121 20968032.759
+ 44.000 42.600
+ -11592588.010 6 -9033181.495 5 22425969.718 22425965.369 22425967.399
+ 39.700 33.800
+ -8276439.073 5 -6449171.898 4 23587724.659 23587722.400 23587723.663
+ 32.100 29.700
+ -21055202.623 7 -16406644.952 7 20549886.077 20549884.255 20549885.099
+ 47.700 42.700
+ -13891042.957 7 -10824181.983 5 21956191.199 21956187.848 21956189.928
+ 44.100 34.800
+ 06 1 1 12 31 30.0000000 0 6G23G13G19G27G 3G16
+ -17899238.462 7 -13947459.518 6 21254310.142 21254305.332 21254309.254
+ 45.300 39.100
+ -19116765.414 7 -14896181.330 7 20967648.618 20967645.815 20967648.336
+ 44.000 42.300
+ -11688849.220 6 -9108190.216 5 22407651.760 22407647.698 22407649.567
+ 39.600 34.100
+ -8361741.170 5 -6515641.064 4 23571492.315 23571489.769 23571491.361
+ 32.300 29.500
+ -21083639.841 7 -16428803.833 7 20544474.568 20544472.837 20544473.666
+ 47.900 42.700
+ -13816106.601 7 -10765790.033 5 21970450.867 21970447.777 21970449.786
+ 44.100 34.700
+ 06 1 1 12 32 0.0000000 0 6G23G13G19G27G 3G16
+ -17827828.399 7 -13891815.349 6 21267899.004 21267894.285 21267898.228
+ 45.400 39.100
+ -19118150.305 7 -14897260.477 7 20967384.959 20967382.432 20967384.725
+ 43.900 42.800
+ -11784811.444 6 -9182965.958 5 22389391.164 22389386.812 22389388.707
+ 40.200 34.700
+ -8446985.324 5 -6582065.082 5 23555270.329 23555268.633 23555269.663
+ 32.300 30.600
+ -21111472.606 8 -16450491.711 7 20539178.461 20539176.442 20539177.438
+ 48.000 42.400
+ -13740981.515 7 -10707251.034 5 21984746.670 21984743.599 21984745.649
+ 44.100 34.900
+ 06 1 1 12 32 30.0000000 0 6G23G13G19G27G 3G16
+ -17755929.733 7 -13835790.439 6 21281581.561 21281576.052 21281580.163
+ 44.700 38.700
+ -19118900.246 7 -14897844.860 7 20967242.514 20967239.688 20967242.136
+ 44.000 42.600
+ -11880471.981 6 -9257506.623 5 22371186.773 22371182.982 22371184.746
+ 39.300 34.700
+ -8532169.970 5 -6648442.728 5 23539060.508 23539058.487 23539059.549
+ 32.700 30.800
+ -21138700.448 7 -16471708.214 7 20533997.171 20533995.136 20533996.160
+ 47.800 42.400
+ -13665669.172 7 -10648566.118 5 21999078.134 21999075.088 21999077.050
+ 44.000 34.800
+ 06 1 1 12 33 0.0000000 0 6G23G13G19G27G 3G16
+ -17683544.987 7 -13779386.762 6 21295355.936 21295350.358 21295354.543
+ 44.900 38.600
+ -19119015.165 7 -14897934.418 7 20967220.534 20967217.952 20967220.201
+ 43.900 42.700
+ -11975828.409 6 -9331810.339 5 22353041.507 22353037.272 22353039.121
+ 40.200 34.600
+ -8617294.108 5 -6714773.228 5 23522861.953 23522860.284 23522861.230
+ 33.600 30.600
+ -21165322.444 7 -16492452.637 7 20528930.757 20528929.121 20528929.930
+ 47.500 42.500
+ -13590170.999 7 -10589736.399 5 22013445.055 22013442.082 22013444.033
+ 44.300 34.700
+ 06 1 1 12 33 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17610676.676 7 -13722606.279 6 21309221.568 21309216.851 21309220.725
+ 44.800 38.600
+ -19118494.888 7 -14897529.018 7 20967319.582 20967316.826 20967319.316
+ 44.100 42.700
+ -12070878.328 6 -9405875.207 5 22334953.576 22334949.756 22334951.519
+ 39.500 34.700
+ -8702356.210 5 -6781055.401 5 23506674.752 23506673.455 23506674.257
+ 33.400 31.100
+ -21191338.057 7 -16512724.550 7 20523980.218 20523978.580 20523979.212
+ 47.500 42.500
+ -13514488.433 7 -10530762.993 5 22027847.062 22027843.512 22027845.962
+ 43.800 33.900
+ -69584.084 3 -54221.375 24607620.794 24607619.564 24607619.576
+ 23.000 3.000
+ 06 1 1 12 34 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17537326.912 7 -13665450.655 6 21323179.342 21323174.808 21323178.649
+ 44.600 38.700
+ -19117339.139 7 -14896628.447 7 20967539.722 20967536.828 20967539.350
+ 44.200 42.500
+ -12165618.825 6 -9479698.950 5 22316924.957 22316921.069 22316923.359
+ 40.500 33.800
+ -8787355.255 5 -6847288.428 5 23490500.306 23490498.329 23490499.661
+ 33.400 30.600
+ -21216746.699 7 -16532523.497 7 20519145.191 20519143.502 20519144.180
+ 47.400 42.600
+ -13438622.910 7 -10471647.029 5 22042283.863 22042280.683 22042282.767
+ 43.600 34.600
+ -121299.930 3 -94519.385 1 24597780.395 24597778.776 24597778.930
+ 21.600 11.000
+ 06 1 1 12 34 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17463498.225 7 -13607921.838 6 21337228.705 21337223.930 21337227.765
+ 44.500 38.400
+ -19115547.603 7 -14895232.459 7 20967880.385 20967877.644 20967880.050
+ 43.900 42.300
+ -12260047.321 6 -9553279.601 5 22298955.530 22298952.068 22298954.092
+ 40.900 34.500
+ -8872289.646 5 -6913471.067 5 23474337.717 23474335.858 23474336.803
+ 33.200 30.800
+ -21241547.608 7 -16551848.892 7 20514425.608 20514423.999 20514424.663
+ 47.400 42.500
+ -13362575.863 7 -10412389.617 5 22056754.866 22056751.999 22056753.904
+ 43.600 34.600
+ -172608.458 2 -134500.068 1 24588014.379 24588014.701 24588013.791
+ 17.800 11.000
+ 06 1 1 12 35 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17389192.800 7 -13550021.533 6 21351369.657 21351363.812 21351367.994
+ 44.600 38.600
+ -19113120.512 7 -14893341.231 7 20968342.150 20968339.513 20968341.912
+ 43.800 42.400
+ -12354161.407 6 -9626615.228 5 22281045.880 22281043.012 22281044.867
+ 40.600 35.600
+ -8957158.231 5 -6979602.434 4 23458187.873 23458185.557 23458187.062
+ 33.200 29.500
+ -21265740.352 7 -16570700.389 7 20509822.142 20509820.189 20509821.121
+ 47.500 42.300
+ -13286348.683 7 -10352991.849 5 22071260.667 22071257.502 22071259.532
+ 43.600 34.500
+ -223507.293 3 -174161.495 2 24578330.734 24578328.986 24578329.659
+ 21.600 15.100
+ 06 1 1 12 35 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17314413.204 7 -13491751.746 6 21365599.393 21365593.956 21365598.064
+ 44.600 38.200
+ -19110057.483 7 -14890954.468 7 20968925.376 20968922.333 20968925.032
+ 44.000 42.300
+ -12447958.532 6 -9699703.872 5 22263197.014 22263193.875 22263195.865
+ 40.900 35.400
+ -9041959.778 5 -7045681.584 5 23442050.368 23442048.741 23442049.652
+ 33.200 30.400
+ -21289324.158 7 -16589077.388 7 20505334.304 20505332.321 20505333.308
+ 47.600 42.400
+ -13209942.856 7 -10293454.864 5 22085800.030 22085797.213 22085798.982
+ 43.000 34.600
+ -273993.960 4 -213501.779 2 24568722.895 24568722.385 24568721.958
+ 24.200 12.600
+ 06 1 1 12 36 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17239161.814 7 -13433114.325 6 21379918.702 21379913.953 21379917.604
+ 44.200 38.300
+ -19106358.411 7 -14888072.090 7 20969629.221 20969626.360 20969628.913
+ 44.000 42.300
+ -12541436.200 6 -9772543.606 5 22245408.790 22245405.705 22245407.669
+ 41.200 35.600
+ -9126693.381 5 -7111707.770 5 23425926.322 23425924.481 23425925.496
+ 33.500 30.600
+ -21312298.513 7 -16606979.497 7 20500962.446 20500960.486 20500961.463
+ 47.800 42.400
+ -13133359.834 7 -10233779.820 5 22100373.790 22100370.505 22100372.695
+ 43.600 34.100
+ -324066.054 4 -252519.005 2 24559193.950 24559193.611 24559192.962
+ 24.200 15.100
+ 06 1 1 12 36 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17163440.891 7 -13374111.039 6 21394327.952 21394323.088 21394326.952
+ 44.600 38.000
+ -19102023.377 7 -14884694.149 7 20970453.978 20970451.368 20970453.686
+ 43.900 42.500
+ -12634591.724 6 -9845132.316 5 22227682.694 22227678.643 22227680.885
+ 41.400 34.800
+ -9211357.260 5 -7177679.626 5 23409815.678 23409813.466 23409814.671
+ 33.500 31.300
+ -21334662.922 7 -16624406.315 7 20496706.724 20496704.682 20496705.668
+ 47.800 42.400
+ -13056601.109 7 -10173967.846 5 22114980.114 22114976.986 22114979.055
+ 43.400 33.900
+ -373721.213 3 -291211.323 2 24549745.166 24549745.008 24549744.201
+ 23.800 16.100
+ 06 1 1 12 37 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17087253.128 7 -13314743.977 6 21408825.469 21408821.191 21408824.951
+ 44.400 37.600
+ -19097052.262 7 -14880820.569 7 20971400.187 20971397.479 20971399.848
+ 44.000 42.600
+ -12727422.696 6 -9917468.150 5 22210017.968 22210013.549 22210015.766
+ 41.800 35.700
+ -9295950.178 5 -7243596.193 5 23393718.284 23393716.304 23393717.181
+ 33.100 32.100
+ -21356416.716 7 -16641357.332 7 20492566.910 20492565.084 20492566.001
+ 47.600 42.400
+ -12979668.175 7 -10114020.132 5 22129620.183 22129616.994 22129619.096
+ 43.300 34.100
+ -422956.904 3 -329576.815 2 24540376.501 24540375.199 24540375.418
+ 23.800 13.900
+ 06 1 1 12 37 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17010600.632 7 -13255014.788 6 21423412.588 21423407.851 21423411.599
+ 44.200 38.100
+ -19091445.085 7 -14876451.353 7 20972467.161 20972464.575 20972466.850
+ 44.100 42.500
+ -12819926.547 6 -9989549.083 5 22192415.412 22192410.586 22192412.624
+ 40.700 35.500
+ -9380470.849 5 -7309456.456 5 23377634.174 23377632.307 23377633.266
+ 33.500 32.000
+ -21377559.535 7 -16657832.268 7 20488543.576 20488541.764 20488542.632
+ 47.800 42.400
+ -12902562.102 7 -10053937.508 5 22144292.903 22144289.811 22144291.730
+ 42.900 33.400
+ -471770.822 4 -367613.654 2 24531088.037 24531086.121 24531086.628
+ 24.600 17.000
+ 06 1 1 12 38 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16933486.103 7 -13194925.585 6 21438087.366 21438082.189 21438086.022
+ 44.100 38.100
+ -19085201.929 7 -14871586.572 7 20973655.066 20973652.405 20973654.773
+ 44.000 42.400
+ -12912100.813 6 -10061373.186 6 22174874.671 22174870.429 22174872.429
+ 41.100 36.000
+ -9464917.870 5 -7375259.351 5 23361565.176 23361562.645 23361563.878
+ 34.000 31.600
+ -21398090.967 7 -16673830.794 7 20484636.573 20484634.889 20484635.690
+ 47.800 42.500
+ -12825284.221 7 -9993721.005 5 22158998.404 22158995.261 22158997.309
+ 42.900 33.600
+ -520160.592 3 -405319.956 2 24521879.825 24521878.289 24521878.630
+ 23.000 17.000
+ 06 1 1 12 38 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16855912.116 7 -13134478.352 6 21452849.379 21452844.009 21452847.992
+ 44.300 37.700
+ -19078322.819 7 -14866226.241 7 20974964.148 20974961.541 20974963.860
+ 43.900 42.300
+ -13003942.981 6 -10132938.510 5 22157396.749 22157393.396 22157395.449
+ 41.800 35.800
+ -9549290.091 5 -7441003.940 5 23345508.971 23345507.173 23345507.946
+ 33.900 32.100
+ -21418010.570 8 -16689352.575 7 20480846.176 20480844.258 20480845.219
+ 48.000 42.500
+ -12747836.264 7 -9933371.971 5 22173736.380 22173733.294 22173735.251
+ 43.100 33.600
+ -568123.689 3 -442693.833 2 24512752.188 24512750.942 24512751.067
+ 20.500 16.100
+ 06 1 1 12 39 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16777881.196 7 -13073675.068 6 21467698.105 21467692.839 21467696.734
+ 44.300 37.800
+ -19070808.016 7 -14860370.570 7 20976394.075 20976391.318 20976393.779
+ 43.800 42.100
+ -13095450.672 7 -10204243.200 5 22139983.460 22139979.914 22139982.361
+ 42.200 35.300
+ -9633586.084 5 -7506689.132 5 23329467.645 23329466.496 23329466.967
+ 33.800 32.600
+ -21437317.751 8 -16704397.140 7 20477172.119 20477170.212 20477171.217
+ 48.100 42.500
+ -12670219.483 7 -9872891.393 5 22188505.976 22188503.142 22188505.136
+ 43.100 33.200
+ -615658.013 3 -479733.567 3 24503705.893 24503706.302 24503704.927
+ 19.900 22.100
+ 06 1 1 12 39 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16699395.753 7 -13012517.616 6 21482633.302 21482628.126 21482632.079
+ 44.200 37.700
+ -19062657.149 7 -14854019.262 7 20977945.333 20977942.536 20977944.949
+ 43.800 42.200
+ -13186621.165 6 -10275285.138 5 22122634.368 22122630.906 22122633.259
+ 41.900 35.600
+ -9717804.392 5 -7572313.799 5 23313442.062 23313440.005 23313441.142
+ 34.500 31.600
+ -21456012.238 7 -16718964.287 7 20473614.664 20473612.748 20473613.743
+ 47.900 42.500
+ -12592434.907 7 -9812280.059 5 22203308.261 22203305.169 22203307.098
+ 42.700 33.200
+ -662761.346 3 -516437.445 3 24494742.871 24494742.673 24494741.869
+ 22.600 21.100
+ 06 1 1 12 40 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16620458.195 7 -12951007.860 6 21497654.551 21497649.429 21497653.349
+ 43.800 37.200
+ -19053870.576 7 -14847172.599 7 20979617.269 20979614.477 20979616.981
+ 44.000 42.000
+ -13277451.946 6 -10346062.371 5 22105351.165 22105346.320 22105348.879
+ 41.800 35.700
+ -9801943.604 5 -7637876.841 5 23297430.675 23297428.542 23297429.745
+ 34.100 31.300
+ -21474093.829 7 -16733053.850 7 20470174.041 20470172.015 20470172.996
+ 47.800 42.700
+ -12514484.441 7 -9751539.473 5 22218141.619 22218138.765 22218140.588
+ 42.500 33.100
+ -709431.155 3 -552803.525 3 24485862.606 24485861.139 24485861.142
+ 23.000 18.600
+ 06 1 1 12 40 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16541071.144 7 -12889147.850 6 21512761.363 21512756.161 21512760.219
+ 43.600 36.700
+ -19044448.425 7 -14839830.678 7 20981410.477 20981407.592 20981410.150
+ 44.200 42.100
+ -13367940.777 6 -10416573.142 6 22088131.760 22088127.166 22088129.190
+ 41.500 36.600
+ -9886002.401 5 -7703377.211 5 23281434.651 23281433.170 23281433.727
+ 34.600 32.700
+ -21491561.883 7 -16746665.329 7 20466849.860 20466847.931 20466849.001
+ 47.900 42.500
+ -12436369.437 7 -9690670.669 5 22233006.573 22233003.479 22233005.536
+ 42.700 33.000
+ -755665.184 3 -588830.068 3 24477063.959 24477064.145 24477062.928
+ 23.000 20.500
+ 06 1 1 12 41 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16461237.068 7 -12826939.522 6 21527953.346 21527948.319 21527952.075
+ 43.400 37.400
+ -19034391.189 7 -14831993.887 6 20983324.294 20983321.361 20983323.947
+ 44.200 41.900
+ -13458085.061 7 -10486815.434 6 22070976.944 22070973.274 22070975.210
+ 42.500 36.900
+ -9969979.692 5 -7768814.055 5 23265454.454 23265452.746 23265453.569
+ 35.200 32.300
+ -21508416.194 7 -16759798.569 7 20463642.648 20463640.641 20463641.668
+ 47.900 42.600
+ -12358091.022 7 -9629674.536 5 22247902.180 22247899.683 22247901.123
+ 42.000 33.200
+ -801461.141 4 -624515.188 3 24468349.661 24468348.587 24468348.568
+ 24.600 18.600
+ 06 1 1 12 41 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16380958.294 7 -12764384.670 6 21543229.677 21543224.844 21543228.597
+ 43.600 37.500
+ -19023698.731 7 -14823662.118 7 20985358.900 20985356.191 20985358.596
+ 43.800 42.100
+ -13547882.578 7 -10556787.514 6 22053888.769 22053885.135 22053887.374
+ 42.900 36.500
+ -10053874.167 5 -7834186.379 5 23249489.733 23249487.751 23249488.830
+ 34.800 32.000
+ -21524656.344 7 -16772453.243 7 20460551.995 20460550.296 20460551.115
+ 47.900 42.700
+ -12279650.609 7 -9568552.173 5 22262829.285 22262826.045 22262828.227
+ 42.600 32.800
+ -846816.551 4 -659857.106 3 24459718.751 24459717.393 24459717.652
+ 25.600 19.900
+ 06 1 1 12 42 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16300237.678 7 -12701485.528 6 21558590.636 21558585.668 21558589.397
+ 43.800 37.400
+ -19012371.413 7 -14814835.656 6 20987514.496 20987511.647 20987514.133
+ 44.000 41.900
+ -13637330.396 7 -10626487.108 6 22036868.065 22036863.842 22036865.911
+ 42.600 36.900
+ -10137684.313 5 -7899493.006 5 23233541.700 23233539.198 23233540.504
+ 35.100 31.500
+ -21540282.322 7 -16784629.345 7 20457578.420 20457576.849 20457577.518
+ 47.600 42.800
+ -12201049.704 6 -9507304.735 5 22277786.360 22277783.220 22277785.293
+ 41.900 31.600
+ -891729.343 4 -694854.055 3 24451172.042 24451171.677 24451171.030
+ 26.800 19.300
+ 06 1 1 12 42 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16219077.863 7 -12638244.148 6 21574034.871 21574029.930 21574033.754
+ 44.000 37.200
+ -19000409.576 7 -14805514.759 6 20989790.460 20989787.820 20989790.143
+ 43.600 41.900
+ -13726426.052 7 -10695912.297 6 22019914.112 22019909.372 22019911.661
+ 42.700 36.500
+ -10221408.693 5 -7964732.788 5 23217608.685 23217607.527 23217608.086
+ 35.200 32.700
+ -21555293.726 7 -16796326.551 7 20454721.856 20454720.340 20454720.969
+ 47.500 42.700
+ -12122289.464 7 -9445933.154 5 22292774.116 22292771.224 22292773.050
+ 42.100 32.800
+ -936197.374 4 -729504.441 2 24442709.592 24442709.110 24442708.930
+ 26.500 17.000
+ 06 1 1 12 43 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16137481.296 7 -12574662.439 6 21589562.007 21589557.150 21589560.942
+ 43.600 37.200
+ -18987813.482 7 -14795699.634 7 20992187.453 20992184.955 20992187.147
+ 43.600 42.000
+ -13815167.394 7 -10765061.384 6 22003026.207 22003022.554 22003024.620
+ 42.700 36.700
+ -10305045.874 5 -8029904.628 5 23201693.277 23201691.536 23201692.440
+ 34.500 32.300
+ -21569690.433 7 -16807544.780 7 20451982.205 20451980.601 20451981.306
+ 47.700 42.600
+ -12043371.169 7 -9384438.407 5 22307791.917 22307788.783 22307790.840
+ 42.100 32.600
+ -980218.331 4 -763806.508 3 24434333.609 24434332.596 24434332.334
+ 26.200 19.900
+ 06 1 1 12 43 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16055450.711 7 -12510742.544 6 21605172.210 21605167.324 21605170.923
+ 43.500 37.500
+ -18974583.362 7 -14785390.469 7 20994705.050 20994702.441 20994704.741
+ 43.600 42.000
+ -13903552.155 7 -10833932.620 6 21986206.719 21986203.483 21986205.517
+ 42.800 36.500
+ -10388594.452 5 -8095007.428 5 23185795.295 23185792.726 23185794.163
+ 35.200 32.100
+ -21583472.346 7 -16818283.940 7 20449359.516 20449357.974 20449358.700
+ 47.800 42.600
+ -11964296.406 7 -9322821.742 5 22322838.700 22322836.264 22322837.873
+ 42.100 32.600
+ -1023790.015 4 -797758.436 3 24426041.927 24426040.913 24426040.980
+ 27.400 19.900
+ 06 1 1 12 44 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15972988.647 7 -12446486.432 6 21620864.023 21620859.148 21620862.921
+ 43.400 36.600
+ -18960719.660 7 -14774587.602 7 20997343.247 20997340.718 20997342.934
+ 43.500 42.000
+ -13991577.623 7 -10902523.874 6 21969456.187 21969452.757 21969454.888
+ 43.300 36.500
+ -10472052.980 6 -8160040.058 5 23169913.537 23169911.378 23169912.568
+ 36.400 32.800
+ -21596639.201 7 -16828543.844 7 20446854.192 20446852.339 20446853.287
+ 47.800 42.600
+ -11885066.326 6 -9261084.055 5 22337916.086 22337913.333 22337914.995
+ 41.900 32.700
+ -1066910.179 4 -831358.492 2 24417836.143 24417835.234 24417834.829
+ 24.600 16.100
+ 06 1 1 12 44 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15890097.661 7 -12381896.083 6 21636638.128 21636632.803 21636636.847
+ 43.400 36.700
+ -18946222.830 7 -14763291.392 7 21000102.013 21000099.418 21000101.722
+ 43.600 42.000
+ -14079241.598 7 -10970833.460 6 21952775.151 21952770.972 21952773.114
+ 43.300 37.100
+ -10555420.045 6 -8225001.416 5 23154048.899 23154046.777 23154048.063
+ 36.100 32.700
+ -21609190.918 7 -16838324.410 7 20444465.603 20444463.829 20444464.760
+ 47.600 42.500
+ -11805682.115 6 -9199226.266 5 22353022.183 22353019.754 22353021.317
+ 41.300 32.400
+ -1109576.678 4 -864605.112 2 24409717.282 24409716.408 24409716.067
+ 27.100 17.800
+ 06 1 1 12 45 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15806780.399 7 -12316973.582 6 21652493.164 21652487.619 21652491.742
+ 43.900 36.600
+ -18931093.082 7 -14751501.993 7 21002981.058 21002978.622 21002980.802
+ 43.900 42.000
+ -14166541.440 7 -11038859.318 6 21936162.041 21936158.249 21936160.396
+ 43.300 37.200
+ -10638694.565 6 -8289890.673 5 23138202.570 23138200.153 23138201.690
+ 36.200 32.600
+ -21621127.465 7 -16847625.631 7 20442194.254 20442192.523 20442193.352
+ 47.800 42.600
+ -11726145.409 6 -9137249.646 5 22368158.264 22368154.756 22368157.052
+ 41.700 32.300
+ -1151787.423 4 -897496.590 2 24401684.208 24401683.028 24401682.898
+ 24.600 16.100
+ 06 1 1 12 45 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15723039.730 7 -12251721.146 6 21668427.811 21668422.902 21668426.869
+ 43.700 36.500
+ -18915330.934 7 -14739219.818 6 21005980.688 21005977.885 21005980.383
+ 44.100 41.900
+ -14253475.009 7 -11106599.747 6 21919618.264 21919615.346 21919617.418
+ 43.300 37.300
+ -10721874.579 6 -8354706.280 5 23122373.959 23122371.588 23122372.948
+ 36.100 32.600
+ -21632448.542 7 -16856447.257 7 20440039.951 20440038.173 20440039.052
+ 47.900 42.700
+ -11646457.415 6 -9075155.133 5 22383322.315 22383319.268 22383321.024
+ 41.400 32.600
+ -1193540.357 4 -930031.293 3 24393738.588 24393738.739 24393737.598
+ 24.200 19.900
+ 06 1 1 12 46 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15638878.173 7 -12186140.751 6 21684443.480 21684438.414 21684442.336
+ 43.100 36.500
+ -18898937.061 7 -14726445.388 6 21009100.197 21009097.645 21009099.966
+ 44.000 41.800
+ -14340039.916 7 -11174052.904 6 21903146.800 21903142.483 21903144.692
+ 43.100 37.100
+ -10804958.762 6 -8419447.215 5 23106563.294 23106561.486 23106562.423
+ 36.100 33.500
+ -21643154.172 7 -16864789.319 7 20438002.809 20438000.913 20438001.862
+ 47.700 42.600
+ -11566619.325 6 -9012943.678 5 22398514.925 22398511.985 22398513.660
+ 41.000 32.400
+ -1234833.254 4 -962207.563 3 24385881.204 24385880.477 24385880.212
+ 25.300 20.500
+ 06 1 1 12 46 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15554298.311 7 -12120234.402 5 21700538.672 21700533.353 21700537.486
+ 43.200 35.900
+ -18881911.557 7 -14713178.780 6 21012340.225 21012337.377 21012339.920
+ 44.000 41.500
+ -14426233.767 7 -11241216.946 6 21886744.555 21886740.378 21886742.439
+ 43.000 37.200
+ -10887945.814 6 -8484112.454 5 23090771.529 23090769.542 23090770.718
+ 36.400 34.100
+ -21653244.256 7 -16872651.729 7 20436082.672 20436080.820 20436081.712
+ 47.700 42.600
+ -11486632.455 6 -8950616.275 5 22413735.994 22413732.795 22413734.830
+ 41.100 32.000
+ -1275663.970 4 -994023.642 3 24378111.588 24378110.991 24378110.129
+ 24.600 21.600
+ 06 1 1 12 47 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15469303.024 7 -12054004.343 6 21716712.366 21716707.661 21716711.409
+ 43.000 36.600
+ -18864255.014 7 -14699420.451 6 21015700.336 21015697.366 21015699.952
+ 44.100 41.800
+ -14512053.823 7 -11308089.702 6 21870412.316 21870409.431 21870411.580
+ 43.600 37.600
+ -10970834.061 6 -8548700.716 5 23074998.281 23074996.348 23074997.395
+ 36.400 32.800
+ -21662718.902 7 -16880034.581 7 20434279.924 20434277.819 20434278.897
+ 47.800 42.400
+ -11406498.211 6 -8888174.040 5 22428984.861 22428982.269 22428983.811
+ 41.100 32.700
+ -1316030.216 4 -1025477.834 3 24370429.939 24370429.309 24370429.057
+ 27.400 19.900
+ 06 1 1 12 47 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15383894.842 7 -11987452.553 6 21732965.065 21732960.291 21732963.998
+ 42.700 36.100
+ -18845967.940 7 -14685170.800 6 21019180.001 21019177.390 21019179.729
+ 43.800 41.800
+ -14597497.972 7 -11374669.532 6 21854153.677 21854149.918 21854152.084
+ 43.500 37.700
+ -11053622.418 6 -8613211.139 5 23059244.028 23059242.245 23059243.296
+ 36.600 33.600
+ -21671577.931 7 -16886937.732 7 20432593.958 20432592.117 20432593.045
+ 47.700 42.600
+ -11326217.831 6 -8825617.941 5 22444261.819 22444258.955 22444260.780
+ 41.100 31.800
+ -1355930.200 3 -1056568.715 3 24362836.831 24362836.441 24362836.205
+ 23.400 20.500
+ 06 1 1 12 48 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15298076.489 7 -11920581.150 5 21749295.914 21749290.929 21749294.716
+ 42.800 35.800
+ -18827051.061 7 -14670430.396 7 21022779.866 21022777.294 21022779.509
+ 43.900 42.000
+ -14682563.949 7 -11440954.712 6 21837967.019 21837962.318 21837964.730
+ 43.600 37.700
+ -11136309.312 6 -8677642.501 5 23043509.434 23043507.502 23043508.546
+ 36.500 33.400
+ -21679821.520 7 -16893361.320 7 20431025.488 20431023.536 20431024.381
+ 47.700 42.800
+ -11245792.373 6 -8762948.782 5 22459566.150 22459563.344 22459565.104
+ 40.700 31.000
+ -1395361.876 4 -1087294.689 3 24355333.886 24355332.978 24355332.769
+ 25.900 19.300
+ 06 1 1 12 48 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15211850.833 7 -11853392.365 5 21765704.196 21765699.093 21765702.945
+ 42.500 35.700
+ -18807504.910 7 -14655199.648 6 21026499.377 21026496.730 21026499.069
+ 43.900 41.900
+ -14767249.327 7 -11506943.309 6 21821850.646 21821847.245 21821849.329
+ 44.000 38.000
+ -11218893.093 6 -8741993.515 5 23027794.406 23027792.483 23027793.334
+ 36.400 33.400
+ -21687449.734 7 -16899305.394 7 20429573.769 20429571.966 20429572.773
+ 47.800 42.900
+ -11165223.165 6 -8700167.620 5 22474897.728 22474895.221 22474896.763
+ 40.800 31.000
+ -1434323.185 4 -1117654.108 3 24347919.192 24347918.441 24347918.038
+ 24.900 19.300
+ 06 1 1 12 49 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15125220.394 7 -11785888.171 5 21782189.391 21782184.373 21782188.092
+ 42.300 35.600
+ -18787330.490 7 -14639479.344 6 21030338.695 21030335.762 21030338.328
+ 44.000 41.600
+ -14851552.140 7 -11572633.792 6 21805808.358 21805805.011 21805807.151
+ 44.000 38.000
+ -11301372.383 6 -8806263.100 5 23012098.914 23012097.004 23012098.156
+ 36.800 32.300
+ -21694462.784 7 -16904770.119 7 20428239.080 20428237.354 20428238.145
+ 47.900 42.900
+ -11084511.665 6 -8637275.582 5 22490257.018 22490254.228 22490255.829
+ 40.500 30.400
+ -1472812.069 3 -1147645.446 3 24340595.176 24340594.720 24340593.976
+ 23.000 19.900
+ 06 1 1 12 49 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15038187.704 7 -11718070.531 6 21798751.002 21798746.264 21798749.799
+ 42.400 36.000
+ -18766528.312 7 -14623269.873 6 21034297.178 21034294.299 21034296.830
+ 43.900 41.600
+ -14935469.892 7 -11638024.239 6 21789840.326 21789835.860 21789837.976
+ 43.800 38.000
+ -11383745.521 6 -8870449.977 5 22996423.784 22996421.992 22996422.915
+ 36.500 33.400
+ -21700860.686 7 -16909755.511 7 20427021.648 20427019.919 20427020.733
+ 47.700 42.900
+ -11003659.142 6 -8574273.649 5 22505642.836 22505639.841 22505641.760
+ 40.700 31.100
+ -1510826.477 4 -1177267.067 3 24333361.760 24333360.570 24333360.754
+ 25.300 18.600
+ 06 1 1 12 50 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14950756.157 7 -11649942.097 5 21815388.950 21815383.957 21815387.757
+ 42.400 35.600
+ -18745098.593 7 -14606571.413 6 21038375.130 21038372.333 21038374.778
+ 44.200 41.600
+ -15018999.943 7 -11703112.584 6 21773944.136 21773940.555 21773942.633
+ 44.300 38.200
+ -11466011.189 6 -8934553.107 5 22980769.258 22980767.414 22980768.245
+ 36.600 33.000
+ -21706643.689 7 -16914261.756 7 20425921.200 20425919.505 20425920.233
+ 47.800 42.700
+ -10922666.626 6 -8511162.631 5 22521055.200 22521052.341 22521054.136
+ 40.800 31.100
+ -1548364.610 3 -1206517.505 3 24326218.270 24326217.472 24326217.052
+ 22.100 19.300
+ 06 1 1 12 50 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14862928.095 7 -11581504.686 5 21832101.706 21832096.998 21832100.658
+ 42.200 35.100
+ -18723042.111 7 -14589384.561 6 21042572.396 21042569.551 21042572.046
+ 44.200 41.600
+ -15102140.125 7 -11767897.114 6 21758123.237 21758119.535 21758121.697
+ 44.500 37.900
+ -11548168.032 6 -8998571.439 5 22965135.521 22965133.453 22965134.676
+ 37.100 33.500
+ -21711811.782 7 -16918288.857 7 20424937.740 20424935.968 20424936.736
+ 47.800 42.800
+ -10841535.581 6 -8447943.674 5 22536494.144 22536490.827 22536492.934
+ 40.100 30.400
+ -1585424.409 3 -1235395.259 3 24319165.169 24319165.064 24319163.964
+ 22.600 19.900
+ 06 1 1 12 51 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14774706.469 6 -11512760.595 5 21848889.638 21848885.079 21848888.623
+ 41.500 34.800
+ -18700359.194 7 -14571709.581 6 21046888.643 21046885.958 21046888.352
+ 44.300 41.300
+ -15184888.252 7 -11832376.183 6 21742377.527 21742373.136 21742375.210
+ 44.000 38.100
+ -11630214.303 6 -9062503.624 5 22949522.847 22949520.589 22949521.872
+ 37.700 33.500
+ -21716365.153 7 -16921836.948 7 20424071.143 20424069.491 20424070.282
+ 47.900 42.700
+ -10760267.207 6 -8384617.702 5 22551958.898 22551955.611 22551957.806
+ 40.500 30.200
+ -1622003.990 4 -1263898.852 2 24312204.467 24312203.479 24312203.748
+ 24.900 17.000
+ 06 1 1 12 51 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14686093.884 7 -11443711.877 5 21865752.231 21865747.511 21865751.292
+ 42.000 35.300
+ -18677051.528 7 -14553547.785 6 21051324.089 21051321.247 21051323.771
+ 44.100 41.300
+ -15267242.083 7 -11896547.996 6 21726705.325 21726701.861 21726703.800
+ 44.300 38.500
+ -11712148.340 6 -9126348.350 5 22933931.093 22933929.370 22933930.034
+ 37.000 34.700
+ -21720303.938 7 -16924906.143 7 20423321.795 20423319.953 20423320.880
+ 47.900 42.700
+ -10678862.706 6 -8321185.660 5 22567449.495 22567446.662 22567448.423
+ 39.900 30.800
+ -1658101.270 4 -1292026.577 2 24305335.626 24305334.949 24305334.593
+ 24.600 17.800
+ 06 1 1 12 52 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14597093.224 6 -11374360.744 5 21882688.752 21882683.873 21882687.715
+ 41.800 35.200
+ -18653119.418 7 -14534899.406 6 21055878.232 21055875.428 21055877.898
+ 44.100 41.200
+ -15349199.239 7 -11960410.698 6 21711109.713 21711105.771 21711107.815
+ 44.300 38.400
+ -11793968.951 6 -9190104.672 5 22918360.983 22918359.192 22918360.075
+ 37.500 35.200
+ -21723628.635 8 -16927496.832 7 20422689.250 20422687.324 20422688.320
+ 48.200 42.700
+ -10597323.168 6 -8257648.412 5 22582965.816 22582963.114 22582964.838
+ 40.200 30.400
+ -1693714.427 4 -1319777.118 3 24298559.092 24298558.193 24298557.727
+ 24.200 19.300
+ 06 1 1 12 52 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14507707.205 6 -11304709.349 5 21899698.159 21899693.437 21899697.108
+ 41.000 35.200
+ -18628563.606 7 -14515765.031 6 21060551.019 21060548.261 21060550.731
+ 44.100 41.300
+ -15430757.129 7 -12023962.300 6 21695589.949 21695585.751 21695587.974
+ 44.700 38.400
+ -11875674.148 6 -9253771.069 5 22902813.018 22902811.472 22902811.907
+ 36.500 35.100
+ -21726339.461 8 -16929609.175 7 20422173.380 20422171.502 20422172.460
+ 48.200 42.900
+ -10515650.072 6 -8194007.065 5 22598507.890 22598505.158 22598506.933
+ 40.000 30.400
+ -1728841.473 3 -1347148.832 2 24291873.758 24291873.586 24291872.710
+ 23.000 17.000
+ 06 1 1 12 53 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14417938.572 6 -11234759.811 5 21916780.744 21916776.107 21916779.597
+ 41.500 35.600
+ -18603385.152 7 -14496145.479 6 21065342.319 21065339.416 21065341.984
+ 44.000 41.000
+ -15511914.076 7 -12087201.468 6 21680145.757 21680142.279 21680144.234
+ 44.700 38.500
+ -11957262.933 6 -9317346.757 5 22887287.764 22887285.374 22887286.659
+ 37.700 34.500
+ -21728436.662 8 -16931243.371 7 20421774.450 20421772.602 20421773.451
+ 48.100 43.000
+ -10433844.462 6 -8130262.472 5 22614075.289 22614072.253 22614074.024
+ 39.300 30.400
+ -1763480.479 4 -1374140.262 2 24285283.116 24285282.240 24285282.120
+ 24.600 17.800
+ 06 1 1 12 53 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14327790.355 6 -11164514.494 5 21933935.611 21933930.548 21933934.258
+ 41.500 34.500
+ -18577585.003 7 -14476041.490 6 21070252.075 21070249.111 21070251.735
+ 44.000 41.100
+ -15592667.900 7 -12150126.524 6 21664779.559 21664775.340 21664777.354
+ 44.400 38.800
+ -12038733.298 6 -9380830.183 5 22871784.260 22871782.026 22871783.247
+ 37.800 34.300
+ -21729920.475 8 -16932399.600 7 20421492.050 20421490.229 20421491.080
+ 48.100 43.000
+ -10351907.546 6 -8066415.559 5 22629667.772 22629664.363 22629666.471
+ 39.500 30.400
+ -1797629.533 3 -1400749.924 2 24278784.661 24278783.001 24278783.364
+ 23.400 17.800
+ 06 1 1 12 54 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14237265.237 6 -11093975.481 5 21951161.617 21951157.179 21951160.622
+ 41.200 35.200
+ -18551163.928 7 -14455453.660 6 21075279.617 21075276.979 21075279.331
+ 44.200 41.200
+ -15673016.289 7 -12212735.648 6 21649488.931 21649485.409 21649487.410
+ 44.600 38.600
+ -12120083.805 6 -9444220.202 5 22856303.888 22856301.418 22856302.835
+ 38.000 33.400
+ -21730791.234 8 -16933078.131 7 20421326.288 20421324.381 20421325.298
+ 48.200 42.800
+ -10269840.420 6 -8002467.190 5 22645284.229 22645281.115 22645282.908
+ 39.400 30.600
+ -1831287.050 3 -1426976.556 3 24272379.352 24272379.445 24272378.474
+ 23.800 21.100
+ 06 1 1 12 54 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14146366.094 6 -11023145.019 5 21968458.961 21968454.511 21968458.085
+ 40.600 34.300
+ -18524122.816 7 -14434382.686 6 21080425.378 21080422.862 21080425.093
+ 43.800 41.200
+ -15752956.826 7 -12275026.970 6 21634277.029 21634273.282 21634275.356
+ 44.700 38.900
+ -12201312.904 6 -9507515.631 5 22840846.350 22840843.733 22840845.301
+ 37.700 33.000
+ -21731049.394 8 -16933279.309 7 20421277.128 20421275.253 20421276.192
+ 48.200 42.500
+ -10187644.610 6 -7938418.559 5 22660925.470 22660922.566 22660924.506
+ 39.800 30.200
+ -1864450.898 3 -1452818.536 2 24266068.184 24266068.178 24266067.668
+ 23.800 17.800
+ 06 1 1 12 55 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14055095.613 6 -10952025.214 5 21985827.972 21985822.886 21985826.673
+ 40.900 34.300
+ -18496462.588 7 -14412829.283 6 21085689.051 21085686.461 21085688.711
+ 43.700 41.200
+ -15832487.245 7 -12336998.717 6 21619143.174 21619139.001 21619141.237
+ 44.700 38.500
+ -12282418.999 6 -9570715.201 5 22825412.527 22825410.197 22825411.488
+ 38.100 34.600
+ -21730695.205 8 -16933003.330 7 20421344.675 20421342.704 20421343.711
+ 48.200 42.700
+ -10105321.188 6 -7874270.477 5 22676591.158 22676588.411 22676590.091
+ 39.100 30.100
+ -1897119.512 4 -1478274.605 2 24259852.949 24259851.279 24259851.650
+ 24.200 17.800
+ 06 1 1 12 55 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13963456.956 6 -10880618.512 5 22003266.228 22003261.303 22003264.938
+ 41.100 34.800
+ -18468184.069 7 -14390794.100 6 21091070.031 21091067.771 21091069.759
+ 43.600 41.200
+ -15911605.676 7 -12398649.445 6 21604087.126 21604083.312 21604085.446
+ 44.800 38.700
+ -12363400.445 6 -9633817.642 5 22810002.206 22810000.500 22810001.019
+ 37.400 35.900
+ -21729729.088 8 -16932250.522 7 20421528.697 20421526.520 20421527.665
+ 48.400 42.600
+ -10022871.271 6 -7810023.835 4 22692280.991 22692277.854 22692279.846
+ 39.300 29.500
+ -1929290.967 4 -1503343.289 3 24253730.757 24253729.587 24253729.664
+ 24.600 21.100
+ 06 1 1 12 56 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13871452.462 6 -10808926.751 5 22020773.659 22020769.403 22020772.882
+ 41.200 34.800
+ -18439288.347 7 -14368277.976 6 21096568.709 21096566.255 21096568.338
+ 43.400 40.800
+ -15990310.029 7 -12459977.524 6 21589110.609 21589106.456 21589108.389
+ 44.600 38.900
+ -12444256.077 6 -9696822.040 5 22794615.620 22794613.777 22794614.654
+ 37.400 35.100
+ -21728151.735 8 -16931021.429 7 20421828.730 20421826.663 20421827.802
+ 48.400 42.600
+ -9940296.032 6 -7745679.530 4 22707994.872 22707991.670 22707993.527
+ 39.100 29.900
+ -1960963.559 3 -1528023.303 3 24247702.509 24247702.721 24247701.356
+ 22.600 19.900
+ 06 1 1 12 56 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13779085.431 6 -10736952.486 5 22038350.673 22038346.157 22038349.724
+ 40.700 34.600
+ -18409776.509 7 -14345281.758 6 21102184.681 21102182.194 21102184.403
+ 43.500 40.800
+ -16068597.964 7 -12520981.115 6 21574212.248 21574208.805 21574210.775
+ 45.200 39.300
+ -12524983.840 6 -9759726.809 5 22779253.881 22779251.777 22779252.969
+ 38.500 35.200
+ -21725963.413 8 -16929316.256 7 20422245.106 20422243.183 20422244.161
+ 48.300 42.700
+ -9857596.472 6 -7681238.370 4 22723731.761 22723728.879 22723730.654
+ 38.600 29.200
+ -1992135.423 3 -1552313.064 3 24241771.294 24241770.800 24241770.291
+ 23.400 19.900
+ 06 1 1 12 57 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13686358.650 6 -10664697.898 5 22055996.464 22055991.347 22055994.997
+ 40.500 33.600
+ -18379649.618 7 -14321806.281 6 21107917.553 21107915.329 21107917.268
+ 43.200 40.900
+ -16146467.305 7 -12581658.519 6 21559394.624 21559390.801 21559392.767
+ 44.900 39.400
+ -12605582.427 6 -9822530.927 5 22763916.562 22763914.473 22763915.537
+ 38.600 35.400
+ -21723164.410 8 -16927135.227 7 20422777.844 20422775.846 20422776.800
+ 48.300 42.700
+ -9774774.056 6 -7616701.460 4 22739492.376 22739489.428 22739491.306
+ 38.900 29.200
+ -2022804.963 3 -1576211.453 3 24235934.831 24235934.753 24235933.663
+ 22.100 21.100
+ 06 1 1 12 57 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13593274.782 6 -10592165.063 5 22073709.542 22073704.509 22073708.351
+ 40.500 33.600
+ -18348908.756 7 -14297852.387 6 21113767.491 21113764.937 21113767.221
+ 43.600 40.400
+ -16223915.871 7 -12642008.053 6 21544656.390 21544652.734 21544654.844
+ 45.200 39.400
+ -12686049.942 6 -9885232.896 5 22748603.921 22748602.189 22748602.967
+ 38.400 35.700
+ -21719755.369 8 -16924478.849 7 20423426.213 20423424.615 20423425.346
+ 48.200 42.700
+ -9691829.829 6 -7552069.641 4 22755276.359 22755273.385 22755275.062
+ 38.500 29.200
+ -2052970.540 4 -1599717.121 3 24230195.538 24230194.296 24230194.464
+ 25.300 20.500
+ 06 1 1 12 58 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13499836.958 6 -10519356.418 5 22091489.475 22091485.263 22091488.856
+ 40.500 33.500
+ -18317555.016 7 -14273420.924 6 21119734.024 21119731.342 21119733.692
+ 43.600 40.300
+ -16300941.607 7 -12702028.114 6 21529999.012 21529995.310 21529997.305
+ 45.300 39.600
+ -12766385.059 6 -9947831.701 5 22733316.631 22733314.885 22733315.656
+ 38.400 35.700
+ -21715736.871 8 -16921347.558 7 20424190.890 20424189.276 20424190.019
+ 48.000 42.700
+ -9608764.752 6 -7487343.654 4 22771082.619 22771080.298 22771081.589
+ 38.300 29.200
+ -2082630.299 4 -1622828.666 3 24224550.539 24224550.374 24224549.810
+ 24.200 19.900
+ 06 1 1 12 58 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13406047.956 6 -10446274.121 5 22109337.217 22109332.796 22109336.236
+ 40.200 33.800
+ -18285589.449 7 -14248512.719 6 21125816.916 21125814.329 21125816.550
+ 43.500 40.500
+ -16377542.393 7 -12761717.048 6 21515422.333 21515418.694 21515420.642
+ 45.500 39.800
+ -12846585.748 6 -10010325.751 5 22718055.013 22718053.223 22718054.053
+ 38.600 35.800
+ -21711109.671 8 -16917741.959 7 20425071.584 20425069.803 20425070.565
+ 48.100 42.600
+ -9525580.219 6 -7422524.588 4 22786912.720 22786909.775 22786911.518
+ 38.600 28.600
+ -2111782.593 4 -1645544.778 3 24219003.806 24219002.214 24219002.820
+ 26.500 19.300
+ 06 1 1 12 59 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13311910.706 6 -10372920.484 5 22127251.921 22127246.557 22127250.249
+ 40.100 33.600
+ -18253012.832 7 -14223128.364 6 21132016.025 21132013.305 21132015.736
+ 43.400 40.300
+ -16453716.000 7 -12821073.109 6 21500927.252 21500923.407 21500925.494
+ 45.700 39.800
+ -12926650.793 6 -10072714.115 6 22702819.258 22702817.431 22702818.319
+ 39.400 36.400
+ -21705874.205 7 -16913662.387 7 20426067.915 20426066.092 20426066.951
+ 47.900 42.600
+ -9442277.362 6 -7357613.328 4 22802764.985 22802761.839 22802763.698
+ 38.500 28.800
+ -2140425.686 4 -1667864.106 3 24213552.685 24213552.479 24213551.609
+ 24.200 19.900
+ 06 1 1 12 59 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13217427.957 6 -10299297.601 5 22145230.065 22145226.047 22145229.793
+ 40.800 33.400
+ -18219826.796 7 -14197269.138 6 21138330.985 21138328.467 21138330.710
+ 43.600 40.200
+ -16529460.475 7 -12880094.782 6 21486513.322 21486509.600 21486511.802
+ 45.600 39.700
+ -13006578.426 6 -10134995.407 5 22687609.252 22687607.339 22687608.454
+ 39.100 35.100
+ -21700030.917 7 -16909109.183 7 20427179.607 20427178.041 20427178.682
+ 47.800 42.600
+ -9358857.110 6 -7292610.581 4 22818639.477 22818636.185 22818638.218
+ 38.000 28.100
+ -2168558.117 3 -1689785.483 3 24208198.441 24208198.403 24208197.508
+ 23.400 19.300
+ 06 1 1 13 0 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13122602.828 6 -10225407.928 5 22163275.381 22163271.099 22163274.509
+ 39.700 34.100
+ -18186032.409 7 -14170935.878 6 21144761.873 21144759.374 21144761.547
+ 43.400 40.200
+ -16604773.756 7 -12938780.466 6 21472181.901 21472177.924 21472180.214
+ 45.900 39.700
+ -13086366.971 6 -10197168.315 5 22672426.081 22672424.307 22672425.215
+ 39.200 35.300
+ -21693580.558 8 -16904082.940 7 20428407.160 20428405.436 20428406.262
+ 48.000 42.500
+ -9275320.741 6 -7227517.354 4 22834535.570 22834532.745 22834534.458
+ 38.000 29.000
+ -2196178.154 4 -1711307.637 3 24202943.673 24202942.816 24202942.468
+ 24.600 20.500
+ 06 1 1 13 0 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13027438.060 6 -10151253.648 5 22181386.063 22181380.414 22181383.942
+ 38.800 33.600
+ -18151630.903 7 -14144129.538 6 21151308.236 21151305.799 21151307.945
+ 43.400 40.100
+ -16679653.876 7 -12997128.619 6 21457932.805 21457928.696 21457930.879
+ 45.700 39.800
+ -13166015.204 6 -10259231.888 5 22657269.574 22657267.711 22657268.637
+ 38.800 35.300
+ -21686523.718 8 -16898584.116 7 20429750.040 20429748.310 20429749.108
+ 48.000 42.400
+ -9191669.156 6 -7162334.345 4 22850453.528 22850450.938 22850452.468
+ 37.400 28.100
+ -2223284.214 4 -1732429.190 3 24197785.409 24197785.004 24197784.417
+ 26.200 22.100
+ 06 1 1 13 1 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12931936.878 6 -10076837.200 5 22199556.882 22199553.547 22199556.921
+ 39.700 33.500
+ -18116623.626 7 -14116851.167 6 21157970.147 21157967.641 21157969.804
+ 43.600 40.200
+ -16754098.621 7 -13055137.518 6 21443765.615 21443762.412 21443764.522
+ 46.100 40.300
+ -13245521.137 6 -10321184.590 5 22642140.234 22642138.057 22642139.213
+ 39.000 35.400
+ -21678861.087 8 -16892613.247 7 20431208.346 20431206.499 20431207.355
+ 48.000 42.400
+ -9107903.892 6 -7097062.764 4 22866393.707 22866391.285 22866392.387
+ 37.600 28.600
+ -2249874.720 4 -1753149.049 3 24192725.391 24192725.027 24192724.426
+ 25.300 23.400
+ 06 1 1 13 1 30.0000000 0 7G23G13G19G27G 3G16G15
+ -12836101.975 6 -10002160.689 5 22217795.201 22217790.332 22217793.866
+ 39.300 33.000
+ -18081011.714 7 -14089101.650 6 21164747.127 21164744.374 21164746.777
+ 44.000 40.300
+ -16828106.107 7 -13112805.686 6 21429683.291 21429679.339 21429681.199
+ 45.500 40.500
+ -13324882.994 6 -10383025.018 6 22627038.079 22627036.398 22627037.238
+ 39.400 36.500
+ -21670593.477 7 -16886170.963 7 20432781.544 20432779.820 20432780.634
+ 47.900 42.600
+ -9024026.219 6 -7031703.594 4 22882355.059 22882352.744 22882354.063
+ 37.800 28.800
+ -2275948.271 4 -1773466.102 4 24187764.042 24187763.742 24187763.018
+ 25.900 25.600
+ 06 1 1 13 2 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12739936.243 6 -9927226.417 5 22236095.002 22236089.933 22236093.580
+ 39.500 32.400
+ -18044796.570 7 -14060882.089 6 21171638.398 21171635.685 21171638.172
+ 43.900 39.700
+ -16901674.245 7 -13170131.506 6 21415683.485 21415679.738 21415681.631
+ 45.800 40.200
+ -13404098.925 6 -10444751.727 6 22611963.372 22611962.090 22611962.812
+ 40.100 36.900
+ -21661721.299 7 -16879257.592 7 20434469.826 20434468.133 20434468.887
+ 47.900 42.600
+ -8940036.479 6 -6966257.085 4 22898338.459 22898335.021 22898337.213
+ 38.000 27.900
+ -2301503.282 4 -1793379.069 3 24182900.660 24182900.419 24182899.406
+ 24.200 23.000
+ 06 1 1 13 2 30.0000000 0 7G23G13G19G27G 3G16G15
+ -12643442.674 6 -9852036.660 5 22254456.149 22254452.358 22254455.661
+ 39.200 32.800
+ -18007979.408 7 -14032193.415 6 21178644.651 21178641.908 21178644.307
+ 43.900 39.800
+ -16974801.023 7 -13227113.407 6 21401767.636 21401764.107 21401765.892
+ 45.600 40.200
+ -13483167.490 6 -10506363.612 6 22596917.483 22596915.850 22596916.669
+ 40.000 36.800
+ -21652245.418 7 -16871873.799 7 20436272.987 20436271.305 20436272.153
+ 47.900 42.500
+ -8855936.112 6 -6900724.385 4 22914342.308 22914339.312 22914341.221
+ 37.700 29.000
+ -2326538.190 4 -1812886.778 3 24178136.712 24178136.096 24178135.730
+ 25.600 22.100
+ 06 1 1 13 3 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12546624.223 6 -9776593.773 5 22272881.680 22272876.519 22272879.958
+ 39.400 33.500
+ -17970561.774 7 -14003036.845 6 21185765.103 21185762.463 21185764.822
+ 43.900 39.800
+ -17047484.389 7 -13283749.774 6 21387936.537 21387932.932 21387934.852
+ 45.800 40.500
+ -13562086.983 6 -10567859.344 6 22581899.886 22581897.797 22581898.940
+ 39.900 36.300
+ -21642166.804 7 -16864020.346 7 20438190.852 20438189.170 20438189.994
+ 47.900 42.500
+ -8771726.151 6 -6835106.284 4 22930366.736 22930363.862 22930365.647
+ 37.700 28.400
+ -2351051.652 4 -1831988.125 3 24173471.559 24173471.438 24173470.413
+ 25.900 23.400
+ 06 1 1 13 3 30.0000000 0 7G23G13G19G27G 3G16G15
+ -12449483.980 6 -9700900.136 5 22291365.216 22291361.390 22291364.838
+ 38.800 32.700
+ -17932544.892 7 -13973413.330 6 21192999.235 21192996.660 21192998.954
+ 43.600 40.000
+ -17119722.543 7 -13340039.239 6 21374190.081 21374186.467 21374188.350
+ 45.900 40.600
+ -13640856.171 6 -10629237.947 6 22566910.671 22566908.828 22566909.664
+ 40.200 37.100
+ -21631485.814 7 -16855697.503 7 20440223.652 20440221.752 20440222.677
+ 47.900 42.500
+ -8687407.702 6 -6769403.645 4 22946411.354 22946409.037 22946410.386
+ 37.700 28.400
+ -2375042.077 4 -1850681.990 4 24168906.544 24168906.765 24168905.481
+ 25.900 24.900
+ 06 1 1 13 4 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12352024.765 6 -9624957.938 5 22309911.839 22309907.370 22309910.825
+ 38.200 32.700
+ -17893929.969 7 -13943323.803 6 21200347.417 21200344.888 21200347.117
+ 43.900 39.800
+ -17191513.289 7 -13395980.059 6 21360529.171 21360525.100 21360527.147
+ 45.800 40.700
+ -13719472.862 6 -10690497.722 6 22551950.418 22551948.333 22551949.484
+ 40.400 36.700
+ -21620203.431 8 -16846906.050 7 20442370.459 20442368.750 20442369.517
+ 48.000 42.500
+ -8602982.036 6 -6703617.465 4 22962477.002 22962474.972 22962476.143
+ 38.100 28.100
+ -2398508.016 4 -1868967.129 3 24164442.247 24164440.985 24164440.955
+ 27.900 23.400
+ 06 1 1 13 4 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -12254249.502 6 -9548769.492 5 22328518.400 22328513.470 22328516.980
+ 38.600 32.600
+ -17854718.584 7 -13912769.507 6 21207809.381 21207806.751 21207809.029
+ 44.100 40.000
+ -17262854.864 7 -13451570.887 6 21346952.535 21346949.223 21346951.312
+ 46.400 40.600
+ -13797935.176 6 -10751637.204 6 22537019.662 22537017.640 22537018.450
+ 39.500 37.000
+ -21608320.691 7 -16837646.786 7 20444631.658 20444630.047 20444630.721
+ 47.900 42.400
+ -8518449.968 6 -6637748.372 4 22978563.201 22978560.945 22978561.971
+ 37.200 27.600
+ -2421448.021 3 -1886842.446 3 24160075.782 24160075.493 24160074.536
+ 23.400 22.100
+ -226594.535 3 -176566.923 3 24726261.876 24726260.395 24726260.714
+ 22.600 22.100
+ 06 1 1 13 5 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -12156161.339 6 -9472337.209 5 22347183.469 22347178.961 22347182.743
+ 39.400 31.800
+ -17814912.015 7 -13881751.432 6 21215384.331 21215381.698 21215383.962
+ 43.800 40.000
+ -17333745.255 7 -13506810.145 6 21333463.159 21333459.291 21333461.285
+ 46.100 40.900
+ -13876241.730 6 -10812655.311 6 22522118.069 22522116.301 22522117.102
+ 39.500 37.000
+ -21595838.562 7 -16827920.466 7 20447006.859 20447005.360 20447005.984
+ 47.800 42.400
+ -8433812.840 6 -6571797.410 4 22994669.379 22994666.926 22994668.274
+ 36.700 28.100
+ -2443860.643 3 -1904306.854 3 24155810.971 24155810.134 24155809.840
+ 23.800 19.900
+ -332815.390 4 -259336.411 4 24706048.911 24706047.350 24706048.149
+ 25.900 24.200
+ 06 1 1 13 5 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -12057762.907 6 -9395663.157 5 22365908.339 22365903.858 22365907.187
+ 38.900 32.700
+ -17774511.850 7 -13850270.815 6 21223071.983 21223069.643 21223071.712
+ 43.400 39.800
+ -17404182.584 7 -13561696.363 6 21320059.699 21320055.372 21320057.602
+ 46.100 40.400
+ -13954390.625 6 -10873550.565 6 22507246.789 22507245.109 22507245.949
+ 40.100 36.500
+ -21582757.657 7 -16817727.568 7 20449496.290 20449494.589 20449495.362
+ 47.700 42.400
+ -8349071.565 6 -6505765.310 4 23010794.873 23010792.869 23010793.784
+ 36.300 28.400
+ -2465744.606 4 -1921359.271 3 24151646.295 24151646.452 24151645.149
+ 25.900 22.600
+ -439037.772 4 -342107.115 3 24685836.049 24685834.093 24685834.922
+ 25.900 23.400
+ 06 1 1 13 6 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11959057.353 6 -9318749.795 5 22384690.638 22384686.832 22384690.160
+ 38.700 31.800
+ -17733519.652 7 -13818328.873 6 21230872.582 21230870.235 21230872.298
+ 43.500 39.800
+ -17474164.868 7 -13616228.006 6 21306741.690 21306738.244 21306740.258
+ 46.300 40.900
+ -14032380.472 6 -10934321.895 5 22492405.940 22492403.890 22492404.981
+ 40.300 35.900
+ -21569078.862 7 -16807068.779 7 20452099.264 20452097.562 20452098.297
+ 47.800 42.400
+ -8264227.338 6 -6439652.976 4 23026940.542 23026938.411 23026939.309
+ 36.400 28.400
+ -2487098.442 4 -1937998.639 3 24147583.665 24147582.338 24147582.364
+ 25.600 21.100
+ -545260.393 3 -424877.956 3 24665623.200 24665620.414 24665622.151
+ 23.400 22.600
+ 06 1 1 13 6 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11860047.682 6 -9241599.470 5 22403532.688 22403527.561 22403531.216
+ 38.000 31.600
+ -17691936.894 7 -13785926.756 6 21238785.614 21238782.977 21238785.275
+ 43.200 39.300
+ -17543690.409 7 -13670403.746 6 21293511.693 21293507.990 21293510.002
+ 46.200 40.900
+ -14110209.151 6 -10994967.645 6 22477595.836 22477593.923 22477594.835
+ 40.600 36.700
+ -21554802.979 7 -16795944.728 7 20454815.854 20454814.157 20454814.875
+ 47.800 42.500
+ -8179280.940 6 -6373461.035 4 23043106.064 23043102.914 23043104.755
+ 36.300 28.100
+ -2507920.977 4 -1954224.023 3 24143620.721 24143620.564 24143619.668
+ 25.900 20.500
+ -651481.518 4 -507647.703 3 24645409.009 24645406.743 24645407.972
+ 24.600 19.300
+ 06 1 1 13 7 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11760737.031 6 -9164214.604 5 22422430.057 22422425.847 22422429.188
+ 37.700 32.000
+ -17649765.102 7 -13753065.648 6 21246810.793 21246808.076 21246810.453
+ 43.600 39.500
+ -17612757.200 7 -13724222.011 6 21280369.095 21280364.856 21280367.126
+ 46.200 40.800
+ -14187874.984 6 -11055486.491 6 22462816.454 22462814.647 22462815.427
+ 40.600 37.300
+ -21539931.231 7 -16784356.372 7 20457645.778 20457644.172 20457644.891
+ 47.900 42.200
+ -8094233.348 6 -6307190.256 4 23059289.521 23059286.597 23059288.434
+ 36.100 26.500
+ -2528210.881 4 -1970034.336 3 24139759.936 24139758.773 24139758.764
+ 24.600 19.900
+ -757699.656 3 -590415.124 2 24625196.310 24625194.433 24625195.326
+ 21.600 17.000
+ 06 1 1 13 7 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11661128.131 6 -9086597.337 5 22441385.915 22441381.044 22441384.585
+ 37.700 32.100
+ -17607006.038 7 -13719746.933 6 21254947.456 21254945.088 21254947.090
+ 43.300 39.600
+ -17681363.385 7 -13777681.366 6 21267313.021 21267309.643 21267311.661
+ 46.400 41.300
+ -14265376.610 6 -11115877.385 6 22448068.160 22448066.513 22448067.287
+ 40.900 37.400
+ -21524464.655 8 -16772304.510 7 20460589.074 20460587.348 20460588.208
+ 48.100 42.200
+ -8009085.917 5 -6240841.660 4 23075492.328 23075489.923 23075491.177
+ 35.800 27.400
+ -2547966.946 4 -1985428.705 3 24136000.558 24135999.902 24135999.375
+ 24.600 22.100
+ -863913.396 3 -673179.090 2 24604984.582 24604982.613 24604983.759
+ 22.100 15.100
+ 06 1 1 13 8 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11561223.999 6 -9008750.026 5 22460396.449 22460392.164 22460395.403
+ 36.900 32.800
+ -17563661.041 7 -13685971.642 6 21263195.774 21263193.441 21263195.458
+ 43.500 39.800
+ -17749507.046 7 -13830780.321 6 21254345.965 21254342.251 21254344.333
+ 46.400 41.000
+ -14342711.903 6 -11176138.670 6 22433351.848 22433350.027 22433350.870
+ 40.900 36.900
+ -21508404.215 8 -16759789.903 7 20463645.303 20463643.603 20463644.346
+ 48.100 42.100
+ -7923839.533 5 -6174415.968 4 23091713.922 23091711.843 23091712.866
+ 35.400 27.100
+ -2567187.664 4 -2000405.921 3 24132342.978 24132342.203 24132341.825
+ 25.900 21.100
+ -970121.685 2 -755938.831 3 24584773.415 24584772.254 24584772.426
+ 17.800 19.900
+ 06 1 1 13 8 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11461028.047 6 -8930675.326 5 22479463.664 22479458.924 22479462.301
+ 37.600 32.100
+ -17519731.790 7 -13651741.088 6 21271555.268 21271552.900 21271554.917
+ 43.100 39.600
+ -17817186.308 7 -13883517.397 6 21241467.356 21241463.292 21241465.484
+ 46.700 41.200
+ -14419879.249 6 -11236269.090 6 22418667.455 22418665.586 22418666.506
+ 40.900 37.100
+ -21491750.712 8 -16746813.164 7 20466814.444 20466812.623 20466813.456
+ 48.000 42.100
+ -7838495.212 5 -6107913.947 4 23107954.624 23107952.430 23107953.669
+ 35.200 26.800
+ -2585871.843 4 -2014965.000 2 24128787.092 24128786.554 24128786.089
+ 26.200 17.800
+ -1076322.960 3 -838693.049 3 24564564.833 24564563.040 24564564.122
+ 23.800 18.600
+ 06 1 1 13 9 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11360542.950 6 -8852375.318 5 22498585.149 22498580.678 22498583.986
+ 37.900 31.600
+ -17475219.829 7 -13617056.477 6 21280025.538 21280023.200 21280025.170
+ 43.000 39.400
+ -17884399.511 7 -13935891.306 6 21228677.031 21228673.186 21228675.416
+ 46.800 41.500
+ -14496876.946 6 -11296267.321 6 22404015.283 22404013.463 22404014.314
+ 41.000 37.400
+ -21474505.230 7 -16733375.141 7 20470096.181 20470094.331 20470095.157
+ 47.900 42.200
+ -7753053.964 5 -6041336.407 4 23124214.361 23124211.389 23124213.229
+ 35.500 27.100
+ -2604018.005 4 -2029104.880 3 24125333.791 24125333.683 24125332.782
+ 25.300 21.100
+ -1182515.143 3 -921440.251 2 24544355.977 24544354.166 24544354.849
+ 23.400 17.000
+ 06 1 1 13 9 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11259771.450 6 -8773852.136 5 22517761.921 22517756.699 22517760.390
+ 37.700 31.100
+ -17430126.861 7 -13581919.130 6 21288606.511 21288604.182 21288606.168
+ 43.000 39.500
+ -17951144.699 7 -13987900.533 6 21215975.686 21215971.997 21215974.111
+ 46.800 41.500
+ -14573702.976 6 -11356131.768 6 22389395.785 22389394.273 22389394.762
+ 40.800 38.300
+ -21456668.784 7 -16719476.629 7 20473490.354 20473488.584 20473489.357
+ 47.900 42.000
+ -7667516.684 5 -5974684.040 4 23140491.254 23140488.731 23140490.134
+ 35.800 27.600
+ -2621625.238 4 -2042824.836 3 24121983.715 24121983.127 24121982.520
+ 24.900 23.000
+ -1288696.996 3 -1004179.410 2 24524151.205 24524148.397 24524149.942
+ 23.800 17.000
+ 06 1 1 13 10 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11158716.730 6 -8695108.245 5 22536990.741 22536987.162 22536990.092
+ 36.800 31.100
+ -17384454.549 7 -13546330.343 6 21297297.435 21297295.300 21297297.143
+ 42.900 39.300
+ -18017420.363 7 -14039543.900 6 21203364.178 21203360.190 21203362.317
+ 46.800 41.800
+ -14650355.893 6 -11415861.322 6 22374809.236 22374807.537 22374808.353
+ 41.100 37.600
+ -21438242.527 8 -16705118.527 7 20476996.817 20476994.996 20476995.816
+ 48.000 42.300
+ -7581884.553 5 -5907957.759 4 23156786.488 23156783.669 23156785.314
+ 35.100 25.300
+ -2638692.487 4 -2056123.991 3 24118735.403 24118735.433 24118734.677
+ 25.300 20.500
+ -1394867.334 3 -1086909.535 3 24503948.116 24503945.265 24503947.200
+ 23.400 21.100
+ 06 1 1 13 10 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11057381.877 6 -8616146.083 5 22556275.040 22556270.358 22556273.862
+ 36.900 30.600
+ -17338204.954 7 -13510291.722 6 21306098.817 21306096.394 21306098.454
+ 43.400 39.200
+ -18083224.627 7 -14090819.945 6 21190842.046 21190838.007 21190840.151
+ 46.800 41.800
+ -14726833.529 6 -11475454.306 6 22360256.230 22360253.935 22360255.171
+ 40.900 36.700
+ -21419227.528 7 -16690301.666 7 20480615.215 20480613.432 20480614.283
+ 47.900 42.100
+ -7496158.392 5 -5841158.223 4 23173100.083 23173096.788 23173098.856
+ 35.900 25.900
+ -2655218.592 4 -2069001.485 3 24115591.510 24115590.356 24115590.177
+ 26.500 21.100
+ -1501024.729 3 -1169629.595 2 24483746.419 24483743.597 24483745.338
+ 22.100 16.100
+ 06 1 1 13 11 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10955769.993 6 -8536968.064 5 22575610.632 22575606.635 22575609.883
+ 36.700 30.400
+ -17291379.256 7 -13473804.196 6 21315009.305 21315007.177 21315008.945
+ 42.800 39.300
+ -18148555.705 7 -14141727.275 6 21178409.738 21178405.948 21178408.107
+ 46.900 41.800
+ -14803134.420 6 -11534909.572 6 22345736.691 22345734.400 22345735.750
+ 41.600 36.900
+ -21399625.008 7 -16675026.997 7 20484345.510 20484343.728 20484344.458
+ 47.800 42.200
+ -7410339.361 6 -5774286.295 4 23189430.883 23189427.167 23189429.670
+ 36.200 24.600
+ -2671202.286 4 -2081456.307 3 24112548.880 24112548.292 24112548.140
+ 24.900 19.300
+ -1607167.469 3 -1252338.262 2 24463547.686 24463545.218 24463546.561
+ 22.600 17.000
+ 06 1 1 13 11 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10853883.984 6 -8457576.427 5 22594999.137 22594994.853 22594998.174
+ 37.000 30.200
+ -17243979.241 7 -13436869.168 6 21324029.393 21324027.127 21324028.984
+ 42.700 39.300
+ -18213411.715 7 -14192264.430 6 21166068.095 21166064.217 21166066.409
+ 47.000 41.900
+ -14879256.720 6 -11594225.667 6 22331250.723 22331249.053 22331249.892
+ 41.400 37.300
+ -21379435.978 7 -16659295.298 7 20488187.246 20488185.565 20488186.300
+ 47.900 42.300
+ -7324428.468 5 -5707342.775 3 23205778.313 23205775.938 23205777.516
+ 35.600 23.400
+ -2686642.409 4 -2093487.585 3 24109611.398 24109610.572 24109610.124
+ 25.300 22.100
+ -1713293.833 3 -1335034.166 2 24443352.286 24443350.825 24443351.502
+ 22.100 16.100
+ 06 1 1 13 12 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10751726.951 6 -8377973.594 5 22614439.104 22614434.911 22614438.149
+ 36.900 30.100
+ -17196006.861 7 -13399488.111 6 21333158.060 21333155.908 21333157.784
+ 42.800 39.100
+ -18277790.966 7 -14242430.081 6 21153817.224 21153813.184 21153815.395
+ 46.800 41.900
+ -14955198.705 6 -11653401.260 6 22316799.711 22316797.700 22316798.658
+ 41.200 37.700
+ -21358661.637 7 -16643107.514 7 20492140.520 20492138.822 20492139.502
+ 47.800 42.100
+ -7238426.462 5 -5640328.286 4 23222144.022 23222142.064 23222143.013
+ 35.300 25.600
+ -2701537.750 4 -2105094.354 3 24106776.769 24106776.885 24106775.667
+ 25.300 23.400
+ -1819402.080 4 -1417715.962 3 24423161.143 24423158.704 24423159.948
+ 24.600 18.600
+ 06 1 1 13 12 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10649302.034 6 -8298162.048 5 22633929.567 22633925.803 22633928.656
+ 36.000 30.600
+ -17147464.026 7 -13361662.560 6 21342395.325 21342393.268 21342395.079
+ 42.600 38.600
+ -18341692.034 7 -14292223.120 6 21141657.376 21141653.292 21141655.427
+ 46.800 41.900
+ -15030958.316 6 -11712434.739 6 22302383.224 22302381.471 22302382.213
+ 41.800 38.200
+ -21337303.008 7 -16626464.444 6 20496204.853 20496203.196 20496203.902
+ 47.800 41.900
+ -7152334.551 5 -5573243.729 4 23238527.256 23238524.873 23238526.197
+ 35.400 25.900
+ -2715887.226 4 -2116275.770 3 24104046.023 24104045.954 24104045.330
+ 25.900 22.600
+ -1925491.115 3 -1500382.783 3 24402972.035 24402970.756 24402971.166
+ 22.100 22.600
+ 06 1 1 13 13 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10546611.950 6 -8218143.857 5 22653471.759 22653467.334 22653470.537
+ 36.600 31.100
+ -17098352.497 7 -13323393.862 6 21351741.284 21351738.937 21351740.937
+ 42.900 38.700
+ -18405113.069 7 -14341642.108 7 21129588.585 21129584.548 21129586.778
+ 46.800 42.000
+ -15106534.165 6 -11771325.028 6 22288001.476 22287999.611 22288000.520
+ 41.600 37.500
+ -21315361.289 7 -16609367.013 7 20500380.223 20500378.654 20500379.347
+ 47.700 42.200
+ -7066153.590 5 -5506089.796 4 23254927.216 23254924.834 23254926.097
+ 34.800 25.600
+ -2729689.935 4 -2127031.139 3 24101419.453 24101419.219 24101418.222
+ 25.900 22.600
+ -2031559.711 3 -1583033.631 3 24382787.933 24382787.031 24382786.984
+ 23.000 23.400
+ 06 1 1 13 13 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10443659.707 6 -8137921.409 5 22673062.960 22673058.530 22673061.575
+ 36.100 31.100
+ -17048673.986 7 -13284683.361 6 21361194.572 21361192.544 21361194.224
+ 42.700 38.600
+ -18468052.340 7 -14390685.695 6 21117611.589 21117607.604 21117609.825
+ 46.900 41.900
+ -15181924.236 6 -11830070.567 6 22273655.113 22273653.217 22273654.305
+ 41.900 37.700
+ -21292837.929 7 -16591816.363 7 20504666.221 20504664.741 20504665.309
+ 47.800 42.300
+ -6979884.522 5 -5438867.206 4 23271343.368 23271341.200 23271342.243
+ 34.800 25.600
+ -2742944.838 4 -2137359.641 3 24098896.990 24098896.702 24098895.992
+ 25.600 21.600
+ -2137605.766 4 -1665666.930 4 24362609.065 24362607.522 24362607.963
+ 25.600 25.600
+ 06 1 1 13 14 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10340448.637 5 -8057497.268 5 22692702.925 22692698.763 22692702.153
+ 35.800 30.200
+ -16998430.230 7 -13245532.416 6 21370755.728 21370753.533 21370755.375
+ 42.700 38.200
+ -18530508.223 7 -14439352.625 6 21105726.346 21105722.558 21105724.823
+ 46.900 41.900
+ -15257126.569 6 -11888669.802 6 22259344.684 22259343.167 22259343.786
+ 41.800 38.400
+ -21269734.065 7 -16573813.370 7 20509062.737 20509061.383 20509061.813
+ 47.800 42.300
+ -6893528.341 5 -5371576.731 4 23287776.922 23287774.343 23287775.971
+ 35.400 25.900
+ -2755650.926 4 -2147260.508 2 24096480.329 24096478.681 24096478.909
+ 25.300 17.800
+ -2243627.576 4 -1748281.374 4 24342434.715 24342431.597 24342433.569
+ 26.800 25.300
+ 06 1 1 13 14 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10236981.822 6 -7976873.838 4 22712391.872 22712387.841 22712390.950
+ 36.200 29.200
+ -16947623.372 7 -13205942.687 6 21380423.827 21380421.784 21380423.659
+ 42.900 38.300
+ -18592479.045 7 -14487641.585 7 21093934.003 21093929.968 21093932.219
+ 46.900 42.000
+ -15332139.622 7 -11947121.540 6 22245070.541 22245068.726 22245069.535
+ 42.300 38.900
+ -21246050.968 7 -16555359.027 7 20513569.677 20513568.143 20513568.677
+ 47.800 42.400
+ -6807086.059 5 -5304219.160 4 23304225.956 23304223.680 23304224.747
+ 34.800 24.600
+ -2767807.306 4 -2156733.027 3 24094166.022 24094164.779 24094164.981
+ 27.600 19.900
+ -2349623.620 4 -1830875.716 3 24322263.976 24322260.996 24322262.593
+ 24.900 23.000
+ 06 1 1 13 15 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10133261.960 6 -7896053.246 4 22732129.203 22732125.152 22732128.338
+ 36.100 29.500
+ -16896255.109 7 -13165915.496 6 21390199.161 21390196.963 21390198.838
+ 42.700 38.500
+ -18653963.195 7 -14535551.320 7 21082233.800 21082229.972 21082232.173
+ 47.000 42.100
+ -15406961.243 7 -12005424.124 6 22230832.386 22230830.379 22230831.329
+ 42.100 38.400
+ -21221790.095 8 -16536454.464 7 20518186.510 20518184.894 20518185.454
+ 48.000 42.500
+ -6720558.566 5 -5236795.204 4 23320691.292 23320689.303 23320690.224
+ 34.300 24.900
+ -2779412.948 4 -2165776.383 3 24091958.118 24091957.428 24091956.910
+ 26.800 22.100
+ -2455592.566 3 -1913448.947 3 24302098.627 24302096.396 24302097.311
+ 21.600 21.600
+ 06 1 1 13 15 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10029292.289 6 -7815037.970 4 22751914.591 22751909.960 22751913.499
+ 36.500 29.000
+ -16844327.605 7 -13125452.540 6 21400080.623 21400078.339 21400080.301
+ 42.200 38.200
+ -18714959.132 7 -14583080.625 7 21070626.605 21070622.792 21070624.917
+ 46.700 42.000
+ -15481589.528 7 -12063576.051 6 22216631.029 22216629.142 22216630.078
+ 42.300 38.100
+ -21196952.523 7 -16517100.526 7 20522912.761 20522911.277 20522911.816
+ 47.900 42.300
+ -6633946.930 5 -5169305.677 4 23337173.357 23337170.770 23337172.333
+ 33.800 25.600
+ -2790466.743 4 -2174389.793 3 24089854.658 24089852.944 24089853.526
+ 26.500 18.600
+ -2561532.376 4 -1995999.470 3 24281938.374 24281936.918 24281937.936
+ 25.300 23.800
+ 06 1 1 13 16 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9925075.825 5 -7733830.394 5 22771745.902 22771742.337 22771744.787
+ 35.800 31.000
+ -16791842.658 7 -13084555.210 6 21410068.009 21410065.850 21410067.703
+ 42.300 37.700
+ -18775465.239 7 -14630228.253 7 21059112.788 21059108.840 21059111.038
+ 47.100 42.000
+ -15556022.678 7 -12121575.935 6 22202466.771 22202464.854 22202465.889
+ 42.300 37.800
+ -21171539.678 7 -16497298.326 6 20527748.464 20527747.084 20527747.547
+ 47.800 41.900
+ -6547251.840 5 -5101751.132 4 23353671.092 23353668.636 23353669.937
+ 33.600 25.900
+ -2800967.986 4 -2182572.595 2 24087855.893 24087854.891 24087854.916
+ 24.900 17.000
+ -2667441.864 3 -2078526.389 3 24261784.623 24261782.966 24261783.354
+ 23.400 22.600
+ 06 1 1 13 16 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9820615.647 5 -7652432.951 5 22791623.714 22791620.304 22791622.822
+ 34.900 31.000
+ -16738802.166 7 -13043224.993 6 21420161.295 21420159.432 21420160.975
+ 42.100 38.200
+ -18835479.951 7 -14676992.960 7 21047692.335 21047688.418 21047690.691
+ 47.200 42.100
+ -15630259.279 7 -12179422.656 6 22188340.135 22188338.160 22188339.258
+ 42.400 38.000
+ -21145552.851 7 -16477048.870 6 20532693.791 20532692.179 20532692.827
+ 47.700 41.800
+ -6460474.340 5 -5034132.374 4 23370184.087 23370181.650 23370183.042
+ 33.500 24.900
+ -2810915.881 4 -2190324.222 3 24085963.130 24085962.268 24085962.014
+ 27.100 21.100
+ -2773319.417 4 -2161028.370 3 24241636.648 24241635.421 24241635.428
+ 24.900 21.100
+ 06 1 1 13 17 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9715914.693 5 -7570847.844 5 22811548.812 22811544.010 22811547.247
+ 34.400 30.800
+ -16685208.170 7 -13001463.479 6 21430360.058 21430357.916 21430359.781
+ 42.300 38.000
+ -18895001.623 7 -14723373.495 7 21036365.886 21036361.941 21036364.057
+ 47.000 42.400
+ -15704297.536 7 -12237114.826 6 22174251.150 22174249.305 22174250.214
+ 42.600 38.300
+ -21118993.270 7 -16456353.111 6 20537748.211 20537746.227 20537747.164
+ 47.900 41.600
+ -6373615.390 5 -4966450.141 4 23386712.258 23386710.306 23386711.336
+ 32.800 24.600
+ -2820309.470 4 -2197643.904 3 24084175.323 24084174.605 24084174.095
+ 25.300 19.300
+ -2879163.132 4 -2243504.057 3 24221495.636 24221493.761 24221494.493
+ 26.500 20.500
+ 06 1 1 13 17 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9610976.013 5 -7489077.517 4 22831517.082 22831513.254 22831516.000
+ 35.600 29.200
+ -16631062.764 6 -12959272.281 6 21440663.563 21440661.263 21440663.283
+ 41.900 37.300
+ -18954028.704 7 -14769368.628 7 21025133.275 21025129.464 21025131.512
+ 47.200 42.800
+ -15778135.005 7 -12294650.538 6 22160200.214 22160198.340 22160199.340
+ 42.700 38.400
+ -21091862.337 7 -16435212.141 6 20542910.996 20542909.141 20542909.982
+ 47.800 41.800
+ -6286675.654 5 -4898704.948 4 23403256.999 23403255.231 23403255.857
+ 33.400 25.600
+ -2829147.981 4 -2204531.091 3 24082493.363 24082492.699 24082492.272
+ 25.600 18.600
+ -2984971.218 4 -2325951.972 2 24201361.569 24201358.443 24201360.346
+ 28.100 15.100
+ 06 1 1 13 18 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9505802.640 5 -7407124.329 4 22851531.316 22851527.408 22851530.237
+ 35.100 29.900
+ -16576367.843 7 -12916652.896 6 21451071.898 21451069.411 21451071.480
+ 42.100 37.700
+ -19012559.713 7 -14814977.223 7 21013995.399 21013991.268 21013993.614
+ 47.100 42.500
+ -15851770.038 7 -12352028.506 6 22146187.984 22146186.203 22146187.060
+ 42.700 38.800
+ -21064161.727 7 -16413627.270 6 20548182.150 20548180.421 20548181.194
+ 47.900 41.800
+ -6199656.291 5 -4830897.725 4 23419816.080 23419814.544 23419815.064
+ 33.500 24.900
+ -2837430.561 4 -2210985.088 3 24080917.249 24080916.638 24080916.145
+ 27.900 18.600
+ -3090742.421 4 -2408371.145 2 24181233.334 24181230.367 24181232.613
+ 28.400 15.100
+ 06 1 1 13 18 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9400397.899 5 -7324990.813 4 22871589.658 22871585.392 22871588.345
+ 35.500 29.200
+ -16521125.235 7 -12873606.748 6 21461583.967 21461581.930 21461583.733
+ 42.200 38.000
+ -19070593.238 7 -14860198.162 7 21002952.155 21002947.847 21002950.278
+ 47.100 42.500
+ -15925200.903 7 -12409247.382 6 22132214.349 22132212.933 22132213.500
+ 42.600 38.900
+ -21035892.732 7 -16391599.501 6 20553561.418 20553559.908 20553560.529
+ 47.700 41.900
+ -6112558.161 5 -4763029.124 4 23436390.849 23436388.942 23436389.792
+ 33.400 25.600
+ -2845156.395 4 -2217005.218 2 24079447.683 24079446.491 24079446.289
+ 26.200 17.800
+ -3196475.301 4 -2490760.464 2 24161112.739 24161109.947 24161111.968
+ 27.900 17.800
+ 06 1 1 13 19 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9294764.379 5 -7242679.054 4 22891690.466 22891686.869 22891689.393
+ 35.500 29.500
+ -16465337.291 7 -12830135.661 6 21472200.158 21472197.892 21472199.856
+ 42.100 37.400
+ -19128127.684 7 -14905030.206 7 20992003.729 20991999.523 20992001.732
+ 46.900 42.900
+ -15998425.933 7 -12466305.863 6 22118280.461 22118278.561 22118279.430
+ 42.800 38.700
+ -21007056.684 7 -16369129.874 6 20559048.896 20559047.224 20559048.020
+ 47.900 41.800
+ -6025382.187 5 -4695099.855 3 23452979.996 23452976.941 23452978.912
+ 33.900 23.000
+ -2852324.716 4 -2222590.923 3 24078082.990 24078082.728 24078082.117
+ 26.500 19.900
+ -3302167.566 4 -2573118.135 3 24140999.677 24140998.420 24140998.611
+ 25.300 20.500
+ 06 1 1 13 19 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9188905.278 5 -7160191.524 4 22911835.517 22911830.983 22911834.107
+ 35.500 29.000
+ -16409005.947 7 -12786241.135 6 21482919.908 21482917.607 21482919.609
+ 42.300 37.700
+ -19185161.659 7 -14949472.262 7 20981150.254 20981146.348 20981148.416
+ 47.100 43.000
+ -16071443.081 7 -12523202.355 6 22104385.386 22104383.968 22104384.578
+ 42.500 38.900
+ -20977655.094 7 -16346219.558 6 20564643.838 20564642.129 20564642.877
+ 47.900 41.600
+ -5938129.151 5 -4627110.525 3 23469583.147 23469580.673 23469581.984
+ 32.600 22.100
+ -2858934.530 4 -2227741.508 2 24076825.543 24076824.358 24076824.580
+ 26.200 17.800
+ -3407817.998 3 -2655443.174 4 24120895.028 24120894.456 24120894.452
+ 21.100 24.900
+ 06 1 1 13 20 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9082823.767 5 -7077530.677 4 22932021.783 22932017.834 22932020.737
+ 35.400 28.100
+ -16352133.755 7 -12741925.177 6 21493742.580 21493740.313 21493742.207
+ 42.200 37.800
+ -19241693.667 7 -14993523.174 7 20970392.507 20970388.733 20970390.656
+ 46.800 43.000
+ -16144250.371 7 -12579935.328 6 22090530.578 22090529.278 22090529.753
+ 42.700 39.100
+ -20947689.352 7 -16322869.649 6 20570346.302 20570344.582 20570345.291
+ 47.700 41.800
+ -5850800.030 5 -4559061.923 3 23486201.160 23486199.520 23486199.965
+ 32.600 23.000
+ -2864985.246 4 -2232456.371 3 24075673.889 24075673.173 24075672.879
+ 24.200 19.900
+ -3513424.634 3 -2737734.088 4 24100799.337 24100798.163 24100797.833
+ 23.000 25.300
+ 06 1 1 13 20 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8976522.857 5 -6994698.866 4 22952249.807 22952246.414 22952248.945
+ 33.800 29.000
+ -16294722.383 7 -12697189.082 6 21504667.509 21504665.056 21504667.117
+ 42.000 37.100
+ -19297722.210 7 -15037181.776 7 20959730.504 20959726.936 20959728.863
+ 47.000 43.200
+ -16216846.076 7 -12636503.424 6 22076716.364 22076714.602 22076715.361
+ 42.700 39.100
+ -20917161.051 7 -16299081.383 6 20576155.638 20576153.855 20576154.610
+ 47.700 41.800
+ -5763395.599 5 -4490954.643 3 23502834.170 23502832.142 23502833.111
+ 33.500 23.800
+ -2870476.347 4 -2236735.198 2 24074629.230 24074628.170 24074628.223
+ 25.600 17.800
+ -3618985.784 4 -2819989.525 4 24080711.309 24080710.652 24080710.717
+ 25.300 26.800
+ 06 1 1 13 21 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8870005.691 5 -6911698.546 4 22972520.030 22972515.583 22972518.751
+ 34.100 27.900
+ -16236773.963 6 -12652034.498 6 21515694.509 21515692.134 21515694.201
+ 41.900 36.800
+ -19353246.104 7 -15080447.148 7 20949164.913 20949161.052 20949163.119
+ 47.000 43.400
+ -16289228.233 7 -12692905.125 6 22062942.455 22062940.823 22062941.523
+ 43.000 39.100
+ -20886071.473 7 -16274855.755 6 20582071.735 20582070.090 20582070.773
+ 47.900 41.600
+ -5675916.876 5 -4422789.478 3 23519481.082 23519478.808 23519479.898
+ 32.800 23.000
+ -2875407.087 4 -2240577.335 2 24073690.981 24073690.098 24073689.778
+ 26.800 16.100
+ -3724500.091 4 -2902208.476 4 24060633.068 24060632.331 24060632.308
+ 24.200 27.600
+ 06 1 1 13 21 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8763275.372 5 -6828532.127 4 22992830.177 22992826.107 22992828.822
+ 32.600 28.400
+ -16178290.872 6 -12606463.293 6 21526823.250 21526821.470 21526822.972
+ 41.600 37.600
+ -19408263.821 7 -15123318.094 7 20938695.403 20938691.463 20938693.660
+ 47.100 43.500
+ -16361394.745 7 -12749138.788 6 22049209.474 22049207.951 22049208.718
+ 43.200 39.200
+ -20854422.182 8 -16250193.992 6 20588094.381 20588092.751 20588093.406
+ 48.000 41.600
+ -5588364.537 5 -4354566.921 4 23536140.644 23536139.711 23536139.695
+ 31.500 24.200
+ -2879776.845 4 -2243982.355 3 24072858.862 24072858.302 24072857.966
+ 24.200 18.600
+ -3829965.429 4 -2984389.308 4 24040564.337 24040562.642 24040563.148
+ 27.100 26.200
+ 06 1 1 13 22 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8656334.806 5 -6745201.872 4 23013180.196 23013176.406 23013179.066
+ 32.800 28.400
+ -16119275.135 6 -12560477.042 6 21538053.997 21538051.897 21538053.587
+ 41.700 37.600
+ -19462773.791 7 -15165793.402 7 20928322.501 20928318.533 20928320.714
+ 47.100 43.600
+ -16433343.976 7 -12805203.135 6 22035518.088 22035516.610 22035517.196
+ 43.300 39.500
+ -20822214.920 8 -16225097.436 6 20594223.186 20594221.622 20594222.263
+ 48.100 41.300
+ -5500739.483 5 -4286287.749 3 23552816.402 23552813.921 23552815.292
+ 32.600 22.600
+ -2883584.919 4 -2246949.700 3 24072135.329 24072134.393 24072134.168
+ 27.100 19.900
+ -3935380.347 4 -3066530.805 4 24020504.362 24020502.434 24020503.416
+ 27.100 24.600
+ 06 1 1 13 22 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8549187.021 5 -6661710.186 4 23033569.462 23033565.883 23033568.540
+ 33.400 27.900
+ -16059729.206 6 -12514077.646 6 21549385.037 21549382.763 21549384.697
+ 41.500 36.700
+ -19516774.848 7 -15207872.155 7 20918046.293 20918042.523 20918044.560
+ 47.100 43.600
+ -16505073.903 7 -12861096.605 6 22021868.300 22021866.740 22021867.522
+ 43.400 39.300
+ -20789451.285 8 -16199567.349 6 20600457.966 20600456.366 20600457.044
+ 48.000 41.500
+ -5413042.844 5 -4217952.767 3 23569504.085 23569502.249 23569502.921
+ 32.300 21.100
+ -2886830.885 4 -2249479.039 3 24071516.804 24071515.762 24071515.740
+ 24.600 18.600
+ -4040742.738 4 -3148631.423 4 24000455.147 24000452.950 24000454.012
+ 28.400 25.900
+ 06 1 1 13 23 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8441835.231 5 -6578059.483 5 23053998.698 23053994.807 23053997.554
+ 35.700 30.200
+ -15999655.122 6 -12467266.701 6 21560816.706 21560814.625 21560816.416
+ 41.600 37.100
+ -19570265.532 7 -15249553.205 7 20907867.442 20907863.505 20907865.589
+ 47.100 43.600
+ -16576582.551 7 -12916817.644 6 22008260.852 22008259.070 22008259.836
+ 43.100 39.300
+ -20756132.637 7 -16173604.778 6 20606798.158 20606796.660 20606797.252
+ 47.900 41.400
+ -5325275.317 5 -4149562.550 3 23586205.725 23586204.168 23586204.866
+ 31.600 23.400
+ -2889513.972 4 -2251569.736 3 24071007.006 24071005.671 24071005.880
+ 27.600 19.900
+ -4146051.345 4 -3230690.093 4 23980415.217 23980413.114 23980414.238
+ 27.900 24.600
+ 06 1 1 13 23 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8334282.122 5 -6494251.949 4 23074464.886 23074461.081 23074464.047
+ 34.900 28.600
+ -15939055.004 6 -12420045.869 6 21572348.695 21572346.691 21572348.353
+ 41.600 37.300
+ -19623244.645 7 -15290835.625 7 20897785.820 20897781.955 20897784.010
+ 47.100 43.700
+ -16647868.443 7 -12972365.113 6 21994695.918 21994693.982 21994694.806
+ 43.500 39.700
+ -20722260.788 7 -16147211.149 6 20613243.711 20613242.347 20613242.822
+ 47.900 41.500
+ -5237437.669 5 -4081117.739 3 23602921.046 23602919.222 23602919.867
+ 31.000 23.800
+ -2891633.616 4 -2253221.409 3 24070603.096 24070602.642 24070602.147
+ 27.100 21.100
+ -4251304.013 4 -3312705.217 3 23960385.563 23960383.864 23960384.694
+ 27.600 21.600
+ 06 1 1 13 24 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8226531.114 5 -6410290.212 4 23094969.874 23094965.358 23094968.644
+ 34.000 28.100
+ -15877931.076 6 -12372416.872 6 21583980.193 21583978.002 21583979.829
+ 41.500 36.500
+ -19675710.687 7 -15331718.252 7 20887802.030 20887797.993 20887800.231
+ 47.300 43.800
+ -16718929.067 7 -13027737.047 6 21981173.420 21981171.663 21981172.317
+ 43.200 40.000
+ -20687837.289 7 -16120387.656 6 20619794.169 20619792.805 20619793.328
+ 47.700 41.400
+ -5149530.709 5 -4012618.873 3 23619649.807 23619647.868 23619648.669
+ 32.700 23.800
+ -2893189.401 4 -2254433.705 3 24070307.192 24070306.175 24070306.096
+ 26.500 20.500
+ -4356499.339 4 -3394675.631 3 23940366.987 23940366.416 23940366.815
+ 28.100 20.500
+ 06 1 1 13 24 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8118585.118 5 -6326176.512 4 23115510.949 23115507.062 23115509.985
+ 33.100 28.100
+ -15816285.999 6 -12324381.773 5 21595710.997 21595708.555 21595710.618
+ 41.400 35.700
+ -19727662.720 7 -15372200.352 7 20877915.815 20877911.940 20877914.019
+ 47.300 43.900
+ -16789762.633 7 -13082932.050 6 21967694.062 21967692.442 21967693.127
+ 43.400 40.000
+ -20652863.713 7 -16093135.535 6 20626449.805 20626448.131 20626448.718
+ 47.700 41.300
+ -5061555.423 5 -3944066.790 4 23636390.283 23636388.592 23636389.338
+ 31.800 24.200
+ -2894180.834 4 -2255206.221 3 24070118.219 24070117.501 24070117.131
+ 25.600 18.600
+ -4461635.054 4 -3476599.641 3 23920362.178 23920359.186 23920360.773
+ 28.600 19.900
+ 06 1 1 13 25 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8010447.241 5 -6241913.282 4 23136089.231 23136085.005 23136087.869
+ 32.400 27.600
+ -15754121.820 6 -12275942.182 6 21607540.092 21607538.198 21607539.845
+ 41.500 36.700
+ -19779099.209 7 -15412280.728 7 20868127.719 20868123.967 20868125.848
+ 47.000 44.100
+ -16860367.230 7 -13137948.629 6 21954258.278 21954256.940 21954257.351
+ 43.300 40.100
+ -20617341.629 7 -16065456.008 6 20633209.365 20633207.662 20633208.448
+ 47.900 41.400
+ -4973512.605 5 -3875462.061 3 23653143.600 23653141.801 23653142.948
+ 31.300 21.100
+ -2894607.423 4 -2255538.643 3 24070037.484 24070036.384 24070036.375
+ 26.200 19.300
+ -4566709.540 4 -3558475.943 3 23900365.976 23900365.021 23900365.162
+ 28.800 23.000
+ 06 1 1 13 25 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7902120.327 5 -6157502.787 4 23156702.700 23156698.987 23156701.834
+ 32.700 27.600
+ -15691440.644 6 -12227099.745 6 21619467.986 21619466.222 21619467.731
+ 41.100 37.000
+ -19830018.926 7 -15451958.427 7 20858437.920 20858434.146 20858436.177
+ 47.300 44.000
+ -16930741.216 7 -13192785.517 6 21940867.084 21940865.099 21940866.015
+ 43.800 40.100
+ -20581272.902 7 -16037350.522 6 20640073.030 20640071.465 20640072.069
+ 47.700 41.300
+ -4885403.018 5 -3806805.341 3 23669911.996 23669909.217 23669910.686
+ 32.300 23.000
+ -2894468.847 4 -2255430.644 2 24070063.370 24070062.674 24070062.274
+ 26.800 17.800
+ -4671721.250 4 -3640303.285 3 23880383.021 23880381.980 23880382.367
+ 26.200 21.600
+ 06 1 1 13 26 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7793607.640 5 -6072947.515 4 23177352.873 23177348.391 23177351.443
+ 33.100 28.400
+ -15628245.232 6 -12177856.598 6 21631493.833 21631491.981 21631493.475
+ 41.400 36.500
+ -19880420.670 7 -15491232.511 7 20848846.944 20848843.047 20848845.008
+ 47.000 44.200
+ -17000882.356 7 -13247440.970 6 21927519.372 21927517.555 21927518.418
+ 43.900 39.800
+ -20544659.125 7 -16008820.326 6 20647040.390 20647038.745 20647039.453
+ 47.600 41.200
+ -4797227.406 5 -3738097.143 3 23686691.826 23686688.392 23686690.611
+ 33.100 20.500
+ -2893764.368 4 -2254881.724 3 24070197.705 24070196.872 24070196.593
+ 25.600 18.600
+ -4776668.334 4 -3722080.277 3 23860413.276 23860409.957 23860412.182
+ 25.600 19.300
+ 06 1 1 13 26 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7684912.391 5 -5988249.995 4 23198036.414 23198032.348 23198035.281
+ 32.700 27.900
+ -15564537.749 6 -12128214.437 6 21643616.826 21643615.220 21643616.519
+ 41.300 36.500
+ -19930303.354 7 -15530102.132 7 20839354.563 20839350.606 20839352.748
+ 47.100 44.200
+ -17070789.167 7 -13301913.831 6 21914216.761 21914214.907 21914215.745
+ 43.900 40.300
+ -20507501.872 7 -15979866.642 6 20654111.215 20654109.573 20654110.176
+ 47.600 41.100
+ -4708986.595 5 -3669338.159 3 23703482.788 23703480.253 23703481.586
+ 31.100 22.100
+ -2892493.751 4 -2253891.614 3 24070439.587 24070438.854 24070438.429
+ 27.900 21.600
+ -4881548.832 4 -3803805.377 3 23840455.347 23840452.409 23840454.061
+ 24.600 22.100
+ 06 1 1 13 27 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7576037.333 5 -5903412.371 4 23218753.730 23218750.659 23218753.419
+ 32.600 27.100
+ -15500320.495 6 -12078175.058 6 21655837.095 21655835.447 21655836.816
+ 40.700 36.500
+ -19979665.676 7 -15568566.278 7 20829961.174 20829957.280 20829959.339
+ 47.100 44.100
+ -17140459.580 7 -13356202.477 6 21900958.719 21900957.057 21900957.845
+ 44.100 40.200
+ -20469803.039 7 -15950490.946 6 20661285.131 20661283.491 20661284.127
+ 47.700 41.100
+ -4620681.450 5 -3600529.048 3 23720286.828 23720284.554 23720285.685
+ 31.000 23.000
+ -2890656.591 4 -2252460.046 3 24070788.141 24070788.227 24070787.424
+ 25.900 19.900
+ -4986360.839 4 -3885477.115 4 23820509.623 23820508.527 23820508.893
+ 26.500 26.500
+ 06 1 1 13 27 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7466985.691 5 -5818437.116 4 23239506.473 23239502.517 23239505.161
+ 33.000 27.100
+ -15435595.866 6 -12027740.321 6 21668154.027 21668152.038 21668153.730
+ 41.100 36.500
+ -20028506.264 7 -15606623.876 7 20820667.009 20820663.193 20820665.226
+ 47.100 44.100
+ -17209891.369 7 -13410305.188 6 21887746.295 21887744.623 21887745.441
+ 44.400 40.400
+ -20431564.264 7 -15920694.515 6 20668561.617 20668560.163 20668560.691
+ 47.600 41.100
+ -4532312.687 5 -3531670.357 3 23737102.614 23737100.508 23737101.636
+ 31.600 21.100
+ -2888252.513 4 -2250586.762 3 24071246.666 24071246.179 24071245.556
+ 27.600 21.600
+ -5091102.404 4 -3967093.934 4 23800578.106 23800576.988 23800577.089
+ 28.800 28.800
+ 06 1 1 13 28 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7357760.471 5 -5733326.626 4 23260291.367 23260287.441 23260290.135
+ 32.600 26.200
+ -15370366.152 6 -11976912.012 5 21680567.116 21680564.636 21680566.674
+ 41.000 35.800
+ -20076824.192 7 -15644274.204 7 20811472.312 20811468.686 20811470.546
+ 47.000 44.400
+ -17279082.593 7 -13464220.444 6 21874579.624 21874577.966 21874578.739
+ 44.300 40.300
+ -20392787.311 7 -15890478.727 6 20675940.558 20675939.170 20675939.681
+ 47.400 40.900
+ -4443881.271 5 -3462762.847 3 23753930.411 23753928.579 23753929.338
+ 31.000 20.500
+ -2885281.430 4 -2248271.598 3 24071811.882 24071811.553 24071810.798
+ 26.200 19.900
+ -5195771.896 5 -4048654.581 4 23780660.108 23780658.928 23780658.969
+ 30.100 28.400
+ 06 1 1 13 28 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7248364.698 5 -5648083.246 4 23281108.456 23281104.868 23281107.569
+ 30.600 26.200
+ -15304633.764 6 -11925692.002 5 21693075.549 21693072.998 21693075.136
+ 41.200 35.600
+ -20124618.257 7 -15681516.326 7 20802377.330 20802373.788 20802375.661
+ 47.200 44.700
+ -17348031.304 7 -13517946.727 6 21861459.302 21861457.612 21861458.256
+ 44.200 40.500
+ -20353474.017 7 -15859845.013 6 20683421.960 20683420.255 20683420.904
+ 47.700 41.100
+ -4355388.013 4 -3393807.136 3 23770770.119 23770767.946 23770769.072
+ 28.400 18.600
+ -2881742.879 4 -2245514.316 2 24072484.960 24072484.577 24072483.939
+ 24.900 17.800
+ -5300367.802 4 -4130157.919 4 23760756.235 23760754.939 23760755.196
+ 28.800 29.700
+ 06 1 1 13 29 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7138801.315 5 -5562709.248 4 23301957.887 23301954.229 23301956.894
+ 31.500 25.900
+ -15238401.296 6 -11874082.324 5 21705678.987 21705676.819 21705678.686
+ 41.100 35.800
+ -20171887.368 7 -15718349.392 7 20793382.434 20793378.714 20793380.715
+ 47.200 44.700
+ -17416735.562 7 -13571482.528 6 21848385.202 21848383.579 21848384.201
+ 44.000 40.700
+ -20313626.093 7 -15828794.702 6 20691004.511 20691003.114 20691003.641
+ 47.800 41.000
+ -4266833.594 5 -3324803.793 3 23787621.738 23787619.670 23787620.683
+ 30.200 18.600
+ -2877636.314 4 -2242314.430 2 24073266.875 24073265.302 24073265.704
+ 27.400 16.100
+ -5404887.983 5 -4211602.253 4 23740867.921 23740865.141 23740866.750
+ 31.300 27.400
+ 06 1 1 13 29 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7029073.459 5 -5477207.094 4 23322838.544 23322834.970 23322837.483
+ 31.100 26.800
+ -15171671.233 6 -11822084.905 5 21718377.253 21718375.284 21718377.005
+ 41.100 35.700
+ -20218630.426 7 -15754772.549 7 20784487.445 20784483.804 20784485.767
+ 47.300 44.800
+ -17485193.468 7 -13624826.369 6 21835358.017 21835356.484 21835357.041
+ 44.000 40.600
+ -20273245.208 7 -15797329.099 6 20698688.830 20698687.275 20698687.936
+ 47.700 40.900
+ -4178218.810 5 -3255753.413 2 23804484.621 23804482.075 23804483.511
+ 31.300 16.100
+ -2872961.469 4 -2238671.691 3 24074156.777 24074155.373 24074155.558
+ 27.900 18.600
+ -5509330.625 4 -4292986.172 4 23720992.280 23720990.335 23720991.182
+ 29.500 27.400
+ 06 1 1 13 30 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6919184.233 5 -5391579.198 4 23343749.591 23343746.304 23343748.576
+ 31.300 27.400
+ -15104445.882 6 -11769701.551 5 21731169.740 21731167.843 21731169.336
+ 40.700 35.700
+ -20264846.242 7 -15790784.870 7 20775692.973 20775689.231 20775691.210
+ 47.400 44.900
+ -17553403.180 7 -13677976.806 6 21822378.375 21822376.725 21822377.346
+ 44.500 40.900
+ -20232333.218 7 -15765449.648 6 20706474.140 20706472.601 20706473.173
+ 47.600 40.900
+ -4089544.057 5 -3186656.277 3 23821358.772 23821357.012 23821357.735
+ 30.800 20.500
+ -2867718.345 4 -2234586.151 2 24075154.332 24075153.154 24075153.150
+ 27.600 17.000
+ -5613693.718 4 -4374308.113 4 23701133.057 23701130.740 23701131.819
+ 28.400 25.600
+ 06 1 1 13 30 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6809136.663 5 -5305827.928 4 23364691.242 23364687.620 23364690.098
+ 32.000 26.200
+ -15036727.781 6 -11716934.237 5 21744056.072 21744054.149 21744055.829
+ 40.700 35.600
+ -20310534.096 7 -15826385.793 7 20766999.000 20766995.136 20766997.188
+ 47.300 44.900
+ -17621362.783 7 -13730932.355 6 21809446.052 21809444.406 21809445.114
+ 44.500 40.900
+ -20190891.949 7 -15733157.771 6 20714360.293 20714358.610 20714359.326
+ 47.600 40.700
+ -4000810.612 4 -3117513.419 3 23838244.112 23838241.928 23838243.265
+ 29.700 19.300
+ -2861906.681 4 -2230057.606 3 24076260.229 24076259.479 24076259.118
+ 26.200 19.300
+ -5717975.225 4 -4455566.437 4 23681287.739 23681286.932 23681286.691
+ 26.200 25.300
+ 06 1 1 13 31 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6698933.698 5 -5219955.535 4 23385662.278 23385658.891 23385661.259
+ 33.400 26.500
+ -14968519.512 6 -11663784.968 5 21757035.704 21757033.833 21757035.522
+ 41.200 35.300
+ -20355692.502 7 -15861574.161 7 20758405.647 20758401.741 20758403.785
+ 47.100 44.900
+ -17689070.046 7 -13783691.277 6 21796561.893 21796560.022 21796560.971
+ 44.500 40.900
+ -20148923.301 7 -15700454.954 6 20722346.598 20722345.064 20722345.642
+ 47.500 40.900
+ -3912019.286 5 -3048325.483 3 23855141.201 23855138.925 23855140.044
+ 31.100 22.600
+ -2855526.256 4 -2225085.897 3 24077474.483 24077473.839 24077473.289
+ 25.300 21.600
+ -5822173.500 4 -4536759.932 4 23661460.751 23661458.665 23661459.788
+ 29.500 25.900
+ 06 1 1 13 31 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6588578.454 5 -5133964.520 4 23406662.342 23406658.489 23406661.102
+ 33.000 27.100
+ -14899823.554 6 -11610255.687 5 21770108.359 21770106.360 21770108.020
+ 40.700 35.400
+ -20400320.640 7 -15896349.335 7 20749912.989 20749909.331 20749911.292
+ 47.100 44.800
+ -17756523.114 7 -13836252.129 6 21783725.976 21783724.178 21783724.917
+ 44.400 40.800
+ -20106429.145 7 -15667342.648 6 20730432.781 20730431.482 20730431.926
+ 47.500 41.000
+ -3823170.755 5 -2979092.933 3 23872047.979 23872045.731 23872047.157
+ 30.600 19.300
+ -2848576.793 4 -2219670.756 3 24078796.997 24078796.097 24078795.942
+ 27.600 21.600
+ -5926286.775 5 -4617887.204 3 23641648.844 23641645.933 23641647.483
+ 30.100 22.100
+ 06 1 1 13 32 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6478073.898 5 -5047857.146 4 23427690.522 23427687.214 23427689.473
+ 32.300 27.100
+ -14830642.295 6 -11556348.256 5 21783273.270 21783271.265 21783273.002
+ 40.900 35.700
+ -20444417.383 7 -15930710.433 7 20741522.024 20741517.897 20741520.067
+ 47.200 44.900
+ -17823720.211 7 -13888613.519 6 21770938.641 21770936.802 21770937.698
+ 44.400 40.600
+ -20063411.202 7 -15633822.200 6 20738618.954 20738617.607 20738618.030
+ 47.400 40.800
+ -3734265.610 5 -2909816.293 3 23888966.060 23888964.662 23888965.210
+ 31.000 21.600
+ -2841058.195 4 -2213812.191 3 24080227.566 24080226.780 24080226.391
+ 27.100 18.600
+ -6030312.778 5 -4698946.470 4 23621852.874 23621851.291 23621851.815
+ 31.100 24.600
+ 06 1 1 13 32 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6367422.775 5 -4961635.563 4 23448745.973 23448743.296 23448745.340
+ 31.300 24.900
+ -14760978.571 6 -11502064.878 5 21796529.984 21796527.599 21796529.654
+ 40.700 34.800
+ -20487981.736 7 -15964656.680 7 20733231.811 20733227.808 20733230.000
+ 47.200 44.800
+ -17890659.470 7 -13940773.993 6 21758200.656 21758198.863 21758199.615
+ 44.400 40.800
+ -20019871.432 7 -15599895.131 6 20746904.390 20746902.917 20746903.412
+ 47.500 40.600
+ -3645304.695 5 -2840496.193 3 23905894.677 23905893.190 23905893.606
+ 30.600 21.100
+ -2832970.538 4 -2207510.143 2 24081766.479 24081766.208 24081765.611
+ 27.100 17.800
+ -6134249.525 5 -4779936.194 4 23602074.455 23602072.877 23602073.264
+ 30.200 25.600
+ 06 1 1 13 33 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6256628.694 5 -4875302.601 4 23469830.190 23469826.709 23469828.857
+ 30.200 24.200
+ -14690834.682 6 -11447407.334 5 21809877.890 21809875.538 21809877.593
+ 40.600 34.700
+ -20531013.206 7 -15998187.699 7 20725043.290 20725039.159 20725041.433
+ 47.400 44.900
+ -17957338.722 7 -13992731.865 6 21745511.925 21745510.328 21745510.894
+ 44.200 41.100
+ -19975811.929 7 -15565563.073 6 20755288.479 20755287.129 20755287.650
+ 47.500 40.500
+ -3556288.647 5 -2771133.115 3 23922834.431 23922833.039 23922833.338
+ 31.000 20.500
+ -2824313.771 4 -2200764.623 3 24083413.916 24083413.527 24083412.686
+ 25.300 19.900
+ -6238095.234 5 -4860854.966 4 23582313.496 23582311.619 23582312.365
+ 30.600 25.600
+ 06 1 1 13 33 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6145694.602 4 -4788860.534 3 23490940.118 23490936.647 23490938.834
+ 28.800 23.400
+ -14620213.185 6 -11392377.634 5 21823316.898 21823314.577 21823316.497
+ 40.500 35.400
+ -20573510.379 7 -16031302.386 7 20716956.307 20716952.223 20716954.533
+ 47.400 45.000
+ -18023755.754 7 -14044485.408 6 21732873.127 21732871.680 21732872.145
+ 44.400 41.200
+ -19931234.215 7 -15530827.216 6 20763771.468 20763769.988 20763770.595
+ 47.600 40.500
+ -3467218.067 4 -2701727.592 3 23939784.117 23939782.744 23939783.120
+ 29.000 21.600
+ -2815087.925 3 -2193575.653 3 24085168.753 24085168.712 24085167.772
+ 23.000 19.300
+ -6341848.230 4 -4941701.464 4 23562569.582 23562568.081 23562568.419
+ 29.200 26.200
+ 06 1 1 13 34 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6034623.538 4 -4702311.696 4 23512075.911 23512072.918 23512074.912
+ 28.800 24.900
+ -14549116.746 6 -11336977.856 5 21836845.678 21836843.725 21836845.380
+ 39.700 34.800
+ -20615472.464 7 -16064000.124 7 20708971.077 20708967.096 20708969.354
+ 47.400 45.100
+ -18089908.797 7 -14096033.246 6 21720284.765 21720283.121 21720283.794
+ 44.700 41.200
+ -19886140.267 7 -15495689.093 6 20772352.685 20772351.062 20772351.681
+ 47.500 40.300
+ -3378093.921 4 -2632280.327 4 23956744.039 23956742.407 23956742.740
+ 29.200 24.200
+ -2805292.680 4 -2185943.073 2 24087033.885 24087032.983 24087032.911
+ 28.600 17.800
+ -6445506.376 4 -5022474.095 4 23542843.644 23542842.109 23542842.486
+ 28.400 25.600
+ 06 1 1 13 34 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5923418.239 5 -4615658.318 3 23533238.498 23533234.051 23533237.173
+ 31.300 22.600
+ -14477547.997 6 -11281210.045 5 21850464.902 21850462.776 21850464.557
+ 39.700 34.700
+ -20656898.460 7 -16096280.130 7 20701087.991 20701084.063 20701086.233
+ 47.400 45.200
+ -18155795.893 7 -14147373.857 6 21707746.772 21707745.133 21707745.931
+ 44.800 41.100
+ -19840532.220 7 -15460150.378 6 20781031.481 20781030.068 20781030.593
+ 47.400 40.300
+ -3288917.024 4 -2562791.943 3 23973713.485 23973712.225 23973712.309
+ 28.600 20.500
+ -2794928.029 4 -2177866.722 3 24089006.029 24089005.115 24089005.020
+ 26.200 18.600
+ -6549067.502 4 -5103171.077 4 23523137.091 23523135.449 23523135.827
+ 28.600 25.900
+ 06 1 1 13 35 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5812081.932 5 -4528902.829 4 23554425.105 23554421.532 23554423.776
+ 30.100 24.200
+ -14405509.580 6 -11225076.246 5 21864173.527 21864171.371 21864173.187
+ 40.100 34.600
+ -20697787.586 7 -16128141.793 7 20693307.334 20693303.175 20693305.448
+ 47.500 45.400
+ -18221414.712 7 -14198505.423 6 21695260.078 21695258.445 21695259.125
+ 44.900 41.400
+ -19794411.863 7 -15424212.458 6 20789808.067 20789806.435 20789807.066
+ 47.300 40.100
+ -3199687.907 4 -2493262.830 3 23990692.992 23990691.687 23990692.238
+ 27.400 19.300
+ -2783994.022 4 -2169346.748 3 24091086.609 24091085.786 24091085.570
+ 27.600 18.600
+ -6652529.711 5 -5183791.022 4 23503449.811 23503447.739 23503448.248
+ 30.400 29.000
+ 06 1 1 13 35 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5700617.383 4 -4442047.388 3 23575635.436 23575632.173 23575634.417
+ 28.600 22.100
+ -14333004.052 6 -11168578.481 5 21877970.790 21877968.881 21877970.476
+ 40.100 34.900
+ -20738139.040 7 -16159584.496 7 20685628.902 20685624.678 20685626.901
+ 47.600 45.700
+ -18286763.413 7 -14249426.501 6 21682824.475 21682822.967 21682823.619
+ 44.900 41.300
+ -19747781.236 7 -15387876.927 6 20798681.825 20798680.049 20798680.789
+ 47.400 40.100
+ -3110407.275 4 -2423693.604 3 24007682.985 24007681.488 24007681.927
+ 28.100 19.900
+ -2772490.655 3 -2160383.123 3 24093274.681 24093275.451 24093273.992
+ 23.400 19.300
+ -6755891.074 5 -5264332.375 4 23483779.589 23483778.124 23483778.702
+ 31.600 26.500
+ 06 1 1 13 36 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5589027.795 5 -4355094.560 4 23596871.400 23596867.363 23596870.110
+ 30.800 24.200
+ -14260034.279 6 -11111718.955 5 21891856.597 21891854.294 21891856.246
+ 40.000 33.800
+ -20777951.988 7 -16190607.584 7 20678052.220 20678048.516 20678050.534
+ 47.300 45.600
+ -18351840.000 7 -14300135.551 6 21670440.907 21670439.342 21670439.892
+ 45.000 41.500
+ -19700642.225 7 -15351145.247 6 20807651.810 20807650.291 20807650.891
+ 47.200 40.200
+ -3021076.111 4 -2354085.028 3 24024682.297 24024680.808 24024681.366
+ 27.900 18.600
+ -2760417.993 4 -2150975.865 3 24095573.157 24095572.275 24095572.124
+ 25.900 18.600
+ -6859149.566 5 -5344793.561 4 23464129.878 23464128.656 23464129.074
+ 31.800 27.100
+ 06 1 1 13 36 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5477316.192 5 -4268046.617 3 23618128.960 23618125.135 23618127.683
+ 30.400 23.400
+ -14186602.701 6 -11054499.573 5 21905829.977 21905827.765 21905829.730
+ 39.500 33.400
+ -20817225.468 7 -16221210.310 7 20670578.865 20670574.989 20670577.129
+ 47.300 45.600
+ -18416642.812 7 -14350631.265 6 21658109.335 21658107.882 21658108.355
+ 44.900 41.500
+ -19652996.874 7 -15314019.021 6 20816718.296 20816716.948 20816717.260
+ 47.000 40.100
+ -2931694.892 4 -2284437.415 3 24041690.676 24041689.649 24041689.812
+ 27.900 20.500
+ -2747776.131 4 -2141125.094 3 24097978.597 24097977.583 24097977.431
+ 26.200 18.600
+ -6962302.872 5 -5425172.809 4 23444500.841 23444499.816 23444500.186
+ 33.000 29.000
+ 06 1 1 13 37 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5365485.737 5 -4180906.066 3 23639409.686 23639405.997 23639408.546
+ 32.000 23.400
+ -14112712.161 6 -10996922.576 5 21919890.774 21919888.947 21919890.402
+ 38.900 33.800
+ -20855958.614 7 -16251391.995 7 20663208.442 20663204.311 20663206.460
+ 47.200 45.700
+ -18481169.998 7 -14400912.211 6 21645830.290 21645828.748 21645829.383
+ 45.100 41.600
+ -19604847.304 7 -15276499.897 6 20825880.868 20825879.443 20825879.885
+ 46.900 39.900
+ -2842264.326 4 -2214751.337 2 24058709.020 24058707.314 24058708.088
+ 28.600 17.800
+ -2734565.349 4 -2130830.975 2 24100492.556 24100492.231 24100491.584
+ 25.600 16.100
+ -7065349.761 5 -5505469.119 4 23424892.201 23424890.724 23424891.214
+ 31.500 28.400
+ 06 1 1 13 37 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5253539.090 5 -4093674.999 4 23660712.748 23660709.205 23660711.467
+ 31.100 25.900
+ -14038364.880 6 -10938989.680 5 21934038.890 21934037.000 21934038.607
+ 39.500 34.500
+ -20894150.832 7 -16281152.173 7 20655940.591 20655936.617 20655938.697
+ 47.300 45.800
+ -18545418.985 7 -14450976.375 6 21633604.055 21633602.607 21633603.043
+ 44.800 41.500
+ -19556195.261 7 -15238589.237 6 20835139.090 20835137.733 20835138.145
+ 47.000 40.200
+ -2752785.029 4 -2145027.331 3 24075735.901 24075735.213 24075735.241
+ 28.800 19.900
+ -2720785.564 3 -2120093.471 2 24103114.135 24103114.356 24103112.849
+ 23.400 15.100
+ -7168287.770 5 -5585680.560 4 23405303.635 23405301.984 23405302.442
+ 30.800 28.400
+ 06 1 1 13 38 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5141479.350 4 -4006355.846 4 23682036.338 23682033.363 23682035.492
+ 29.700 24.900
+ -13963563.936 6 -10880703.283 5 21948272.919 21948271.063 21948272.669
+ 39.300 33.900
+ -20931801.321 7 -16310490.231 7 20648775.855 20648771.976 20648774.012
+ 47.100 45.800
+ -18609387.791 7 -14500822.213 6 21621431.307 21621429.700 21621430.337
+ 44.800 41.500
+ -19507042.798 7 -15200288.640 6 20844492.630 20844491.244 20844491.675
+ 47.200 40.200
+ -2663258.011 4 -2075266.097 3 24092773.349 24092771.675 24092772.165
+ 28.400 19.300
+ -2706437.001 3 -2108912.765 2 24105844.724 24105844.389 24105843.936
+ 23.400 17.000
+ -7271115.032 5 -5665805.728 4 23385736.112 23385734.555 23385734.872
+ 30.100 27.600
+ 06 1 1 13 38 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5029309.813 4 -3918951.045 4 23703381.765 23703378.902 23703380.760
+ 28.600 25.600
+ -13888311.976 6 -10822065.433 5 21962593.323 21962590.943 21962592.949
+ 39.800 33.500
+ -20968909.185 7 -16339405.461 7 20641714.635 20641710.569 20641712.679
+ 47.300 45.900
+ -18673074.727 7 -14550448.420 6 21609312.090 21609310.532 21609311.100
+ 45.200 41.800
+ -19457392.345 7 -15161600.000 6 20853940.792 20853939.420 20853939.795
+ 47.100 40.100
+ -2573683.784 4 -2005468.106 2 24109817.712 24109816.484 24109816.917
+ 28.800 15.100
+ -2691519.641 4 -2097288.887 3 24108684.124 24108683.374 24108683.054
+ 24.900 19.900
+ -7373829.513 4 -5745843.023 4 23366189.074 23366188.350 23366188.740
+ 29.200 25.900
+ 06 1 1 13 39 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4917033.380 4 -3831463.040 4 23724747.647 23724744.212 23724746.034
+ 27.400 24.600
+ -13812611.867 6 -10763078.367 5 21976998.505 21976996.498 21976998.236
+ 39.800 34.600
+ -21005474.056 7 -16367897.576 7 20634756.272 20634752.553 20634754.527
+ 47.300 46.000
+ -18736477.679 7 -14599853.329 6 21597247.017 21597245.404 21597245.995
+ 45.100 41.900
+ -19407245.508 7 -15122524.564 6 20863483.427 20863481.949 20863482.528
+ 47.100 39.800
+ -2484062.705 4 -1935633.592 2 24126872.807 24126871.008 24126872.069
+ 29.700 17.800
+ -2676034.068 4 -2085222.199 2 24111630.348 24111629.891 24111629.272
+ 24.900 17.800
+ -7476428.832 5 -5825790.569 4 23346666.155 23346664.574 23346665.044
+ 31.300 27.100
+ 06 1 1 13 39 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4804653.014 4 -3743893.986 4 23746132.732 23746129.794 23746131.734
+ 27.600 26.200
+ -13736466.249 6 -10703744.180 5 21991488.216 21991486.709 21991487.836
+ 38.500 34.800
+ -21041494.783 7 -16395965.687 7 20627901.763 20627898.019 20627900.082
+ 47.400 46.100
+ -18799594.422 7 -14649035.226 7 21585236.233 21585234.741 21585235.244
+ 45.100 42.000
+ -19356604.387 7 -15083063.975 6 20873120.117 20873118.651 20873119.182
+ 47.100 39.800
+ -2394395.788 4 -1865763.381 2 24143936.451 24143934.604 24143935.275
+ 28.800 17.800
+ -2659980.373 4 -2072712.844 3 24114685.242 24114685.101 24114684.398
+ 25.600 18.600
+ -7578911.096 5 -5905646.908 4 23327164.395 23327162.992 23327163.420
+ 32.400 27.400
+ 06 1 1 13 40 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4692171.488 4 -3656246.166 4 23767537.445 23767534.306 23767536.277
+ 29.200 24.900
+ -13659877.678 6 -10644064.837 5 22006062.693 22006060.840 22006062.290
+ 38.400 33.800
+ -21076970.811 7 -16423609.355 7 20621151.029 20621147.106 20621149.261
+ 47.400 46.100
+ -18862423.283 7 -14697992.798 7 21573280.134 21573278.806 21573279.333
+ 45.300 42.000
+ -19305471.208 7 -15043219.965 6 20882850.410 20882848.950 20882849.500
+ 47.300 39.700
+ -2304683.887 4 -1795858.088 2 24161007.255 24161006.649 24161006.080
+ 27.100 17.000
+ -2643358.577 4 -2059760.819 2 24117848.890 24117847.805 24117847.687
+ 25.600 15.100
+ -7681274.376 5 -5985410.544 4 23307685.995 23307683.900 23307684.720
+ 33.400 27.600
+ 06 1 1 13 40 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4579591.955 4 -3568521.926 3 23788959.836 23788957.212 23788959.508
+ 29.000 23.000
+ -13582848.961 6 -10584042.501 5 22020721.224 22020718.736 22020720.885
+ 39.400 33.400
+ -21111901.737 7 -16450828.259 7 20614503.916 20614499.937 20614502.053
+ 47.300 46.100
+ -18924962.136 7 -14746724.388 7 21561379.530 21561378.101 21561378.604
+ 45.200 42.200
+ -19253848.135 7 -15002994.220 6 20892674.137 20892672.562 20892673.199
+ 47.400 39.700
+ -2214927.431 4 -1725918.112 3 24178087.624 24178086.496 24178086.802
+ 28.600 18.600
+ -2626169.297 4 -2046366.580 2 24121119.792 24121118.919 24121118.822
+ 24.200 16.100
+ -7783516.385 5 -6065079.660 4 23288229.342 23288228.346 23288228.072
+ 32.600 28.400
+ 06 1 1 13 41 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4466917.583 4 -3480723.798 3 23810402.881 23810398.798 23810401.182
+ 29.700 23.000
+ -13505383.138 6 -10523679.562 5 22035461.913 22035460.286 22035461.754
+ 38.800 33.900
+ -21146286.718 7 -16477621.758 7 20607960.563 20607956.811 20607958.811
+ 47.100 46.300
+ -18987209.012 7 -14795228.462 6 21549534.360 21549532.794 21549533.388
+ 45.200 41.900
+ -19201737.166 7 -14962388.296 6 20902590.584 20902588.933 20902589.620
+ 47.400 39.500
+ -2125126.999 4 -1655943.846 3 24195177.655 24195175.291 24195176.333
+ 27.600 18.600
+ -2608412.839 4 -2032530.424 3 24124498.431 24124498.037 24124497.456
+ 26.200 19.900
+ -7885635.023 5 -6144652.654 4 23268797.261 23268795.671 23268796.186
+ 32.400 29.200
+ 06 1 1 13 41 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4354151.042 5 -3392853.808 3 23831861.271 23831856.850 23831860.028
+ 32.300 18.600
+ -13427482.982 6 -10462978.211 5 22050285.871 22050284.269 22050285.511
+ 38.100 33.200
+ -21180125.074 7 -16503989.311 7 20601521.401 20601517.612 20601519.601
+ 47.400 46.400
+ -19049161.701 7 -14843503.305 7 21537745.281 21537743.531 21537744.195
+ 45.400 42.000
+ -19149140.187 7 -14921403.663 6 20912599.267 20912597.866 20912598.416
+ 47.400 39.600
+ -2035283.607 4 -1585936.095 2 24212273.166 24212271.971 24212272.073
+ 27.100 17.000
+ -2590089.288 4 -2018252.340 2 24127985.395 24127984.842 24127984.145
+ 25.300 17.000
+ -7987628.570 5 -6224128.180 4 23249388.037 23249386.712 23249386.890
+ 32.400 28.400
+ 06 1 1 13 42 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4241295.551 4 -3304914.530 3 23853336.513 23853333.004 23853335.262
+ 27.600 23.800
+ -13349151.218 6 -10401940.522 5 22065192.220 22065190.239 22065191.984
+ 38.900 32.400
+ -21213416.403 7 -16529930.610 7 20595185.981 20595182.460 20595184.382
+ 47.300 46.400
+ -19110818.589 7 -14891547.648 7 21526012.051 21526010.654 21526011.124
+ 45.300 42.000
+ -19096059.450 7 -14880042.072 6 20922700.450 20922698.832 20922699.482
+ 47.400 39.600
+ -1945397.427 4 -1515895.017 3 24229377.943 24229377.244 24229377.008
+ 25.900 20.500
+ -2571199.073 3 -2003532.712 2 24131580.317 24131579.497 24131578.857
+ 21.100 15.100
+ -8089494.080 5 -6303503.928 4 23230003.309 23230002.355 23230002.618
+ 31.800 28.400
+ 06 1 1 13 42 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4128353.970 4 -3216908.202 2 23874829.355 23874825.149 23874827.923
+ 29.500 17.800
+ -13270390.574 6 -10340568.631 5 22080180.006 22080177.897 22080179.672
+ 38.300 32.400
+ -21246160.355 7 -16555445.386 7 20588955.294 20588951.450 20588953.616
+ 47.400 46.400
+ -19172177.389 7 -14939359.722 7 21514335.871 21514334.524 21514334.926
+ 45.100 42.300
+ -19042497.058 7 -14838305.170 6 20932893.041 20932891.489 20932892.052
+ 47.000 39.500
+ -1855469.330 4 -1445821.282 2 24246490.510 24246490.082 24246489.359
+ 25.900 17.800
+ -2551742.614 3 -1988371.844 3 24135282.094 24135282.550 24135281.256
+ 23.400 22.100
+ -8191230.193 5 -6382778.848 5 23210644.007 23210642.949 23210643.104
+ 32.600 30.400
+ 06 1 1 13 43 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4015329.040 4 -3128836.902 3 23896335.883 23896333.767 23896335.067
+ 27.400 23.000
+ -13191203.666 6 -10278864.601 5 22095248.439 22095247.049 22095248.201
+ 38.000 33.100
+ -21278355.854 7 -16580532.786 7 20582828.763 20582824.905 20582827.023
+ 47.600 46.600
+ -19233236.168 7 -14986938.007 7 21502716.878 21502715.514 21502715.852
+ 45.100 42.300
+ -18988455.242 7 -14796194.696 6 20943176.681 20943175.294 20943175.816
+ 47.200 39.200
+ -1765500.131 4 -1375715.532 2 24263611.152 24263610.382 24263610.176
+ 25.300 17.000
+ -2531720.183 4 -1972770.004 3 24139092.686 24139092.586 24139091.828
+ 26.500 21.100
+ -8292834.871 5 -6461951.354 4 23191309.594 23191308.091 23191308.664
+ 32.400 29.900
+ 06 1 1 13 43 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3902223.917 4 -3040703.168 3 23917859.215 23917856.158 23917858.844
+ 27.400 19.900
+ -13111593.756 6 -10216830.968 5 22110398.208 22110396.293 22110397.805
+ 38.600 33.000
+ -21310002.342 7 -16605192.392 7 20576806.515 20576802.764 20576804.817
+ 47.400 46.600
+ -19293992.991 7 -15034281.002 7 21491155.033 21491153.883 21491154.156
+ 45.000 42.200
+ -18933936.045 7 -14753712.229 6 20953551.446 20953549.978 20953550.455
+ 46.900 39.300
+ -1675490.367 4 -1305578.167 2 24280740.076 24280739.096 24280739.065
+ 27.100 17.000
+ -2511132.408 4 -1956727.602 3 24143010.960 24143009.919 24143009.678
+ 25.300 21.100
+ -8394305.479 5 -6541019.387 5 23171999.882 23171999.131 23171999.043
+ 32.000 30.600
+ 06 1 1 13 44 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3789042.100 4 -2952509.583 3 23939398.473 23939394.966 23939396.908
+ 27.400 23.400
+ -13031563.638 6 -10154469.881 5 22125627.248 22125625.218 22125626.922
+ 38.200 31.600
+ -21341099.579 7 -16629424.014 7 20570889.260 20570885.066 20570887.257
+ 47.500 46.600
+ -19354445.614 7 -15081386.961 7 21479651.636 21479650.010 21479650.664
+ 45.200 42.300
+ -18878941.521 7 -14710859.378 6 20964016.428 20964015.094 20964015.575
+ 46.800 39.100
+ -1585440.512 4 -1235409.531 2 24297874.471 24297874.525 24297873.715
+ 25.300 13.900
+ -2489979.661 4 -1940244.993 3 24147035.783 24147036.145 24147034.749
+ 24.600 22.600
+ -8495640.307 5 -6619981.600 4 23152716.487 23152715.903 23152715.816
+ 32.700 29.700
+ 06 1 1 13 44 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3675786.244 4 -2864258.402 3 23960949.697 23960946.785 23960948.985
+ 29.500 22.600
+ -12951116.066 6 -10091783.500 5 22140935.762 22140933.661 22140935.465
+ 37.700 31.100
+ -21371647.076 7 -16653227.262 7 20565076.237 20565072.099 20565074.269
+ 47.500 46.500
+ -19414592.217 7 -15128254.460 7 21468206.106 21468204.481 21468205.170
+ 45.400 42.300
+ -18823473.913 7 -14667637.889 6 20974571.647 20974570.189 20974570.735
+ 46.800 39.300
+ -1495351.154 4 -1165210.105 2 24315019.117 24315017.713 24315018.238
+ 28.100 15.100
+ -2468262.469 4 -1923322.526 3 24151168.767 24151167.806 24151167.510
+ 25.300 18.600
+ -8596836.958 5 -6698836.179 4 23133460.020 23133458.410 23133458.966
+ 34.000 29.200
+ 06 1 1 13 45 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3562459.118 4 -2775951.602 3 23982515.363 23982512.008 23982514.234
+ 26.200 20.500
+ -12870253.690 6 -10028773.912 5 22156324.027 22156321.540 22156323.565
+ 38.800 32.000
+ -21401644.140 7 -16676601.608 7 20559367.697 20559363.828 20559365.947
+ 47.400 46.700
+ -19474430.584 7 -15174881.777 7 21456819.347 21456817.640 21456818.416
+ 45.500 42.200
+ -18767535.431 7 -14624049.483 6 20985216.477 20985215.064 20985215.524
+ 46.700 39.300
+ -1405223.327 4 -1094980.735 2 24332169.895 24332168.753 24332168.753
+ 26.500 17.000
+ -2445981.137 3 -1905960.491 3 24155408.242 24155408.215 24155407.313
+ 23.800 18.600
+ -8697893.370 5 -6777581.461 4 23114229.323 23114227.858 23114228.331
+ 34.300 27.400
+ 06 1 1 13 45 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3449063.601 4 -2687591.560 3 24004094.173 24004090.713 24004092.989
+ 28.400 22.600
+ -12788979.770 6 -9965443.624 5 22171789.904 22171787.628 22171789.681
+ 39.000 32.100
+ -21431090.447 7 -16699546.790 7 20553764.361 20553760.357 20553762.556
+ 47.500 46.700
+ -19533959.033 7 -15221267.601 7 21445491.501 21445489.774 21445490.678
+ 45.600 42.300
+ -18711128.290 7 -14580095.893 6 20995950.387 20995948.935 20995949.455
+ 46.800 39.100
+ -1315057.402 4 -1024721.654 2 24349328.341 24349327.086 24349327.371
+ 26.500 16.100
+ -2423136.191 3 -1888159.280 3 24159755.268 24159755.917 24159754.053
+ 22.600 22.100
+ -8798807.246 5 -6856215.693 4 23095026.465 23095025.124 23095025.487
+ 33.900 28.800
+ 06 1 1 13 46 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3335602.621 4 -2599180.494 3 24025684.697 24025681.874 24025683.881
+ 28.100 22.600
+ -12707296.923 6 -9901794.711 5 22187333.577 22187331.443 22187333.067
+ 37.300 32.000
+ -21459985.662 7 -16722062.549 7 20548265.847 20548261.794 20548264.082
+ 47.700 46.800
+ -19593175.518 7 -15267410.335 7 21434222.738 21434221.318 21434221.934
+ 45.400 42.600
+ -18654254.556 7 -14535778.724 6 21006773.145 21006771.713 21006772.175
+ 46.800 39.100
+ -1224854.049 4 -954433.420 2 24366493.583 24366492.309 24366492.562
+ 26.500 17.800
+ -2399728.302 4 -1869919.424 3 24164210.331 24164209.790 24164209.138
+ 26.200 19.300
+ -8899576.656 5 -6934737.336 4 23075850.606 23075848.822 23075849.586
+ 33.800 28.100
+ 06 1 1 13 46 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3222079.212 4 -2510720.771 3 24047287.371 24047284.462 24047286.281
+ 29.200 20.500
+ -12625208.048 6 -9837829.409 5 22202954.385 22202952.474 22202954.134
+ 37.900 32.000
+ -21488329.141 7 -16744148.394 7 20542872.539 20542868.327 20542870.624
+ 47.800 46.900
+ -19652077.590 7 -15313308.069 7 21423014.024 21423012.764 21423013.140
+ 45.600 42.800
+ -18596916.433 7 -14491099.688 6 21017684.159 21017682.716 21017683.271
+ 46.800 38.800
+ -1134613.924 4 -884116.514 2 24383664.897 24383664.500 24383663.877
+ 24.200 12.600
+ -2375758.032 4 -1851241.283 3 24168771.285 24168771.506 24168770.439
+ 24.200 18.600
+ -9000199.328 5 -7013144.648 4 23056702.332 23056701.001 23056701.573
+ 34.000 28.400
+ 06 1 1 13 47 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3108496.441 4 -2422214.856 4 24068902.200 24068899.066 24068900.935
+ 26.500 25.300
+ -12542716.113 6 -9773550.024 5 22218652.153 22218650.516 22218651.871
+ 37.700 32.400
+ -21516120.805 7 -16765804.246 7 20537583.963 20537579.797 20537582.049
+ 47.900 47.100
+ -19710663.582 7 -15358959.505 7 21411865.654 21411864.147 21411864.628
+ 45.300 42.700
+ -18539116.233 7 -14446060.589 6 21028683.242 21028681.865 21028682.314
+ 46.700 38.700
+ -1044337.431 4 -813771.273 2 24400844.503 24400843.410 24400843.482
+ 26.500 16.100
+ -2351225.896 3 -1832125.372 3 24173439.982 24173439.715 24173438.676
+ 23.000 21.100
+ -9100672.861 5 -7091435.732 4 23037583.447 23037581.710 23037582.215
+ 33.500 29.900
+ 06 1 1 13 47 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2994857.247 4 -2333664.898 3 24090526.639 24090523.287 24090525.339
+ 29.900 22.600
+ -12459824.222 6 -9708959.007 5 22234425.739 22234424.351 22234425.348
+ 36.700 32.000
+ -21543360.064 7 -16787029.661 7 20532400.239 20532396.456 20532398.496
+ 47.900 47.300
+ -19768931.310 7 -15404362.948 7 21400777.582 21400776.262 21400776.701
+ 45.600 42.700
+ -18480856.308 7 -14400663.268 6 21039769.705 21039768.314 21039768.742
+ 46.600 38.800
+ -954025.322 4 -743398.281 2 24418030.851 24418029.147 24418029.717
+ 24.900 15.100
+ -2326132.471 3 -1812572.074 3 24178214.747 24178214.867 24178213.470
+ 23.400 19.300
+ -9200995.189 5 -7169609.004 5 23018492.964 23018491.356 23018491.634
+ 33.900 30.600
+ 06 1 1 13 48 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2881164.255 4 -2245073.082 3 24112161.214 24112158.936 24112160.292
+ 27.600 23.400
+ -12376535.143 6 -9644058.489 5 22250275.287 22250273.673 22250275.094
+ 37.500 31.600
+ -21570046.667 7 -16807824.425 7 20527322.023 20527318.091 20527320.178
+ 47.800 47.300
+ -19826878.625 7 -15449516.722 7 21389750.701 21389749.286 21389749.792
+ 45.700 42.700
+ -18422138.571 7 -14354909.207 6 21050943.551 21050942.106 21050942.526
+ 46.300 39.000
+ -863678.042 4 -672997.881 2 24435223.044 24435222.169 24435222.141
+ 27.400 17.000
+ -2300478.477 4 -1792581.986 3 24183096.353 24183096.941 24183095.508
+ 24.600 21.100
+ -9301164.123 5 -7247662.739 5 22999430.765 22999429.748 22999429.856
+ 34.800 30.800
+ 06 1 1 13 48 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2767420.747 4 -2156441.866 3 24133806.324 24133803.756 24133805.181
+ 28.600 22.600
+ -12292851.731 6 -9578850.687 5 22266200.096 22266197.920 22266199.713
+ 37.800 30.800
+ -21596180.136 7 -16828188.183 7 20522349.079 20522345.053 20522347.198
+ 47.800 47.400
+ -19884503.714 7 -15494419.406 7 21378785.063 21378783.556 21378784.099
+ 45.800 42.700
+ -18362965.148 7 -14308800.072 6 21062203.698 21062202.380 21062202.676
+ 46.300 39.000
+ -773296.523 4 -602570.788 2 24452422.345 24452420.842 24452420.905
+ 24.900 15.100
+ -2274264.553 4 -1772155.556 2 24188085.447 24188084.734 24188084.262
+ 25.300 16.100
+ -9401177.574 5 -7325595.320 5 22980399.163 22980397.605 22980398.165
+ 34.100 30.400
+ 06 1 1 13 49 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2653629.541 4 -2067773.458 2 24155459.947 24155457.217 24155458.980
+ 27.400 17.800
+ -12208776.883 6 -9513337.859 5 22282198.547 22282196.989 22282198.342
+ 37.200 31.000
+ -21621760.340 7 -16848120.822 7 20517481.260 20517477.274 20517479.420
+ 47.900 47.400
+ -19941804.894 7 -15539069.693 7 21367881.097 21367879.424 21367880.036
+ 45.700 42.900
+ -18303338.315 7 -14262337.633 6 21073550.360 21073549.124 21073549.362
+ 46.400 38.900
+ -682881.163 4 -532117.372 2 24469627.921 24469627.173 24469627.010
+ 27.400 15.100
+ -2247491.296 3 -1751293.309 2 24193179.707 24193179.229 24193178.589
+ 22.600 13.900
+ -9501033.310 5 -7403405.008 5 22961396.906 22961395.949 22961395.893
+ 34.000 30.200
+ 06 1 1 13 49 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2539793.341 4 -1979070.021 3 24177122.639 24177119.921 24177121.257
+ 25.300 19.900
+ -12124313.689 6 -9447522.445 5 22298271.855 22298270.014 22298271.338
+ 36.900 30.800
+ -21646787.050 8 -16867622.178 7 20512718.942 20512714.866 20512717.104
+ 48.100 47.300
+ -19998780.010 7 -15583465.903 7 21357038.957 21357037.507 21357038.043
+ 45.700 43.000
+ -18243260.605 7 -14215523.855 6 21084982.758 21084981.439 21084981.760
+ 46.300 38.800
+ -592432.401 4 -461637.844 1 24486840.314 24486838.293 24486838.787
+ 25.600 11.000
+ -2220159.525 4 -1729995.813 3 24198381.030 24198380.817 24198379.926
+ 24.900 18.600
+ -9600729.157 5 -7481090.099 5 22942425.625 22942424.353 22942424.622
+ 34.400 30.800
+ 06 1 1 13 50 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2425915.329 4 -1890334.014 3 24198794.167 24198790.065 24198792.370
+ 26.200 19.300
+ -12039465.056 6 -9381406.675 5 22314417.597 22314416.054 22314417.496
+ 36.700 30.800
+ -21671259.846 8 -16886691.899 7 20508061.791 20508057.948 20508060.029
+ 48.000 47.500
+ -20055426.761 7 -15627606.249 7 21346259.512 21346257.938 21346258.566
+ 45.900 42.900
+ -18182734.151 7 -14168360.413 6 21096500.674 21096499.353 21096499.759
+ 46.600 38.700
+ -501951.009 4 -391132.958 2 24504057.789 24504056.789 24504057.014
+ 24.600 15.100
+ -2192269.911 3 -1708263.699 2 24203687.845 24203687.795 24203687.053
+ 23.800 13.900
+ -9700262.704 5 -7558648.731 5 22923484.813 22923484.158 22923483.818
+ 34.400 30.600
+ 06 1 1 13 50 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2311998.565 3 -1801567.852 3 24220470.947 24220467.675 24220469.531
+ 23.800 19.900
+ -11954234.207 6 -9314993.072 5 22330636.684 22330634.871 22330636.332
+ 36.100 30.800
+ -21695178.406 8 -16905329.760 7 20503510.280 20503506.308 20503508.455
+ 48.000 47.500
+ -20111743.372 7 -15671489.337 7 21335542.907 21335541.367 21335542.062
+ 46.100 43.100
+ -18121761.238 7 -14120849.078 6 21108103.304 21108102.101 21108102.452
+ 46.500 38.400
+ -411437.596 3 -320603.113 1 24521282.097 24521281.767 24521280.489
+ 21.100 11.000
+ -2163823.194 4 -1686097.381 2 24209101.589 24209101.633 24209100.454
+ 25.300 17.800
+ -9799631.756 5 -7636079.192 5 22904575.881 22904574.723 22904574.897
+ 35.500 30.600
+ 06 1 1 13 51 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2198045.575 3 -1712773.390 3 24242155.116 24242152.282 24242153.697
+ 22.100 18.600
+ -11868623.985 6 -9248283.864 5 22346927.839 22346926.232 22346927.439
+ 36.400 31.300
+ -21718542.520 8 -16923535.579 7 20499064.226 20499060.371 20499062.424
+ 48.200 47.600
+ -20167727.703 7 -15715113.511 7 21324889.292 21324887.899 21324888.451
+ 46.000 43.200
+ -18060344.051 7 -14072991.555 6 21119790.785 21119789.467 21119789.905
+ 46.500 38.400
+ -320892.719 3 -250048.748 1 24538511.116 24538511.113 24538510.496
+ 23.800 11.000
+ -2134820.017 4 -1663497.506 3 24214620.916 24214620.449 24214619.900
+ 27.100 19.900
+ -9898834.004 5 -7713379.679 4 22885697.933 22885696.678 22885697.128
+ 34.900 29.200
+ 06 1 1 13 51 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2084059.496 4 -1623953.184 3 24263845.273 24263843.820 24263844.966
+ 25.600 21.100
+ -11782637.375 6 -9181281.362 5 22363290.824 22363289.197 22363290.479
+ 37.200 31.600
+ -21741352.179 8 -16941309.357 7 20494723.786 20494719.872 20494722.035
+ 48.200 47.600
+ -20223377.876 7 -15758477.298 7 21314299.521 21314298.107 21314298.651
+ 46.000 43.400
+ -17998485.053 7 -14024789.769 6 21131562.436 21131560.838 21131561.372
+ 46.500 38.400
+ -230316.779 4 -179470.191 2 24555747.866 24555748.147 24555747.229
+ 24.600 17.000
+ -2105261.226 4 -1640464.683 2 24220245.735 24220244.759 24220244.621
+ 26.200 12.600
+ -9997867.078 5 -7790548.331 5 22866852.855 22866851.818 22866851.778
+ 34.100 30.400
+ 06 1 1 13 52 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -1970043.084 4 -1535109.340 2 24285542.509 24285540.122 24285541.553
+ 24.900 16.100
+ -11696277.191 6 -9113987.766 5 22379724.268 22379722.804 22379724.006
+ 36.500 30.800
+ -21763606.921 8 -16958650.727 7 20490488.909 20490484.990 20490487.100
+ 48.100 47.700
+ -20278691.960 7 -15801579.193 7 21303773.643 21303772.064 21303772.664
+ 45.900 43.200
+ -17936186.450 7 -13976245.432 6 21143417.162 21143415.938 21143416.207
+ 46.400 38.500
+ -139710.440 4 -108867.961 2 24572990.075 24572989.937 24572988.855
+ 25.300 17.800
+ -2075147.862 4 -1616999.737 2 24225975.919 24225975.795 24225974.721
+ 24.200 17.000
+ -10096728.697 5 -7867583.365 5 22848039.737 22848038.742 22848038.881
+ 33.600 30.200
+ 06 1 1 13 52 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -1855999.305 4 -1446244.064 2 24307245.103 24307242.483 24307243.863
+ 28.100 12.600
+ -11609546.578 5 -9046405.526 4 22396228.425 22396226.991 22396228.209
+ 35.600 29.900
+ -21785306.892 8 -16975559.811 7 20486359.465 20486355.575 20486357.647
+ 48.000 47.700
+ -20333667.632 7 -15844417.398 7 21293312.047 21293310.572 21293311.168
+ 46.000 43.300
+ -17873450.555 7 -13927360.344 6 21155355.264 21155354.143 21155354.471
+ 46.200 38.200
+ -49074.439 4 -38242.584 3 24590237.697 24590237.181 24590237.012
+ 25.600 18.600
+ -2044480.686 4 -1593103.228 3 24231811.760 24231811.571 24231810.754
+ 25.900 19.900
+ -10195416.723 5 -7944483.152 5 22829260.564 22829258.942 22829259.461
+ 34.600 30.400
+ 06 1 1 13 53 0.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1741930.954 4 -1357359.747 3 24328950.642 24328949.462 24328949.797
+ 24.200 21.600
+ -11522448.511 6 -8978536.941 5 22412803.096 22412801.450 22412802.769
+ 36.200 30.400
+ -21806451.721 7 -16992036.317 7 20482335.615 20482331.832 20482333.833
+ 47.900 47.800
+ -20388302.920 7 -15886990.366 7 21282915.466 21282913.864 21282914.476
+ 45.800 43.400
+ -17810279.526 7 -13878136.201 6 21167376.519 21167375.202 21167375.561
+ 46.100 38.300
+ 41590.824 4 32405.523 3 24607490.421 24607490.805 24607489.773
+ 26.200 18.600
+ -2013260.586 3 -1568775.896 2 24237752.555 24237752.803 24237750.989
+ 21.600 17.800
+ -10293928.810 5 -8021245.846 5 22810514.550 22810513.149 22810513.251
+ 35.500 31.600
+ -114709.563 3 -89383.836 9 24901966.130 24901965.521 24901965.038
+ 23.400 -3.000
+ 06 1 1 13 53 30.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1627841.004 4 -1268458.616 3 24350661.541 24350659.627 24350660.640
+ 25.600 19.300
+ -11434986.112 6 -8910384.477 5 22429446.703 22429445.220 22429446.393
+ 36.200 31.100
+ -21827041.300 8 -17008080.158 7 20478417.822 20478413.732 20478415.899
+ 48.100 47.700
+ -20442596.206 7 -15929296.837 7 21272583.654 21272582.283 21272582.737
+ 45.900 43.700
+ -17746675.555 7 -13828574.694 6 21179479.785 21179478.654 21179478.964
+ 45.900 38.300
+ 132284.572 4 103075.879 2 24624749.968 24624749.027 24624748.897
+ 24.900 17.000
+ -1981488.483 3 -1544018.382 2 24243798.678 24243798.246 24243797.617
+ 23.800 13.900
+ -10392262.492 5 -8097869.516 5 22791802.505 22791801.075 22791801.324
+ 35.900 32.700
+ -200687.527 3 24885605.004 24885603.865
+ 22.100
+ 06 1 1 13 54 0.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1513732.258 4 -1179542.835 3 24372376.052 24372374.050 24372374.932
+ 27.400 19.900
+ -11347162.375 5 -8841950.451 5 22446158.640 22446157.561 22446158.426
+ 35.200 31.500
+ -21847075.842 8 -17023691.509 7 20474605.430 20474601.271 20474603.525
+ 48.100 47.900
+ -20496545.388 7 -15971335.177 7 21262317.641 21262316.145 21262316.696
+ 46.100 43.600
+ -17682640.910 7 -13778677.602 6 21191665.376 21191664.137 21191664.374
+ 45.800 38.100
+ 223006.507 4 173768.174 2 24642014.287 24642012.863 24642013.053
+ 25.300 13.900
+ -1949165.329 3 -1518831.518 3 24249948.876 24249949.599 24249947.535
+ 19.900 19.300
+ -10490416.137 6 -8174352.891 5 22773124.284 22773123.004 22773123.157
+ 36.500 32.300
+ -286619.231 3 -223339.506 1 24869252.259 24869251.648 24869251.413
+ 21.600 6.500
+ 06 1 1 13 54 30.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1399607.525 3 -1090614.555 3 24394093.805 24394091.255 24394092.153
+ 22.100 19.900
+ -11258980.146 5 -8773237.097 5 22462939.311 22462938.175 22462939.045
+ 35.400 31.100
+ -21866555.013 8 -17038870.098 7 20470898.360 20470894.602 20470896.704
+ 48.300 47.900
+ -20550148.033 7 -16013103.484 7 21252117.257 21252115.908 21252116.357
+ 46.100 43.600
+ -17618178.163 7 -13728446.923 6 21203931.968 21203931.119 21203931.108
+ 45.400 38.400
+ 313755.664 3 244481.684 2 24659282.376 24659281.670 24659281.222
+ 21.600 12.600
+ -1916292.010 3 -1493215.974 2 24256205.409 24256204.941 24256204.040
+ 22.600 16.100
+ -10588386.721 5 -8250693.631 5 22754480.355 22754479.743 22754479.514
+ 35.900 32.100
+ -372504.513 3 -290263.094 1 24852909.178 24852907.569 24852908.057
+ 18.600 11.000
+ 06 1 1 13 55 0.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1285469.906 3 -1001676.298 3 24415812.920 24415810.864 24415811.526
+ 23.800 18.600
+ -11170442.809 5 -8704247.024 5 22479787.677 22479786.187 22479787.399
+ 35.600 30.400
+ -21885478.648 8 -17053615.801 7 20467297.357 20467293.555 20467295.589
+ 48.300 47.900
+ -20603402.371 7 -16054600.390 7 21241983.428 21241981.853 21241982.540
+ 46.100 43.600
+ -17553289.624 7 -13677884.456 6 21216280.220 21216278.935 21216279.186
+ 45.600 38.100
+ 404531.990 3 315216.340 1 24676556.288 24676556.341 24676555.717
+ 22.600 11.000
+ -1882869.560 3 -1467172.485 3 24262564.732 24262564.951 24262563.727
+ 22.600 18.600
+ -10686172.162 5 -8326890.090 5 22735872.511 22735871.971 22735871.761
+ 35.700 32.400
+ -458342.982 2 -357150.217 3 24836575.217 24836573.730 24836574.279
+ 17.800 18.600
+ 06 1 1 13 55 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -1171322.015 4 -912729.994 2 24437534.120 24437531.937 24437533.751
+ 26.200 12.600
+ -11081553.058 5 -8634982.339 4 22496702.851 22496701.220 22496702.464
+ 35.500 29.700
+ -21903846.731 8 -17067928.610 7 20463802.167 20463798.143 20463800.306
+ 48.200 47.800
+ -20656306.656 7 -16095824.522 7 21231916.075 21231914.525 21231915.128
+ 46.100 43.700
+ -17487977.576 7 -13626991.982 6 21228708.493 21228707.411 21228707.611
+ 45.600 37.700
+ 495334.906 3 385971.758 2 24693835.231 24693835.252 24693834.666
+ 22.600 16.100
+ -1848898.824 3 -1440701.829 3 24269029.227 24269029.320 24269028.233
+ 23.400 18.600
+ -10783770.037 6 -8402940.403 5 22717300.997 22717299.705 22717299.935
+ 36.200 32.400
+ -544134.161 3 -424000.459 2 24820248.944 24820247.953 24820248.217
+ 21.100 17.000
+ -223458.597 3 -174124.078 2 24445393.302 24445392.595 24445392.066
+ 21.100 12.600
+ 06 1 1 13 56 0.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -1057166.768 3 -823777.921 2 24459258.941 24459255.584 24459257.284
+ 22.600 16.100
+ -10992314.419 5 -8565445.802 4 22513683.992 22513683.012 22513683.804
+ 34.600 29.700
+ -21921659.275 8 -17081808.532 7 20460412.497 20460408.497 20460410.725
+ 48.400 47.800
+ -20708858.664 7 -16136774.153 7 21221915.857 21221914.301 21221914.943
+ 46.100 43.700
+ -17422244.112 7 -13575771.132 6 21241217.335 21241216.061 21241216.327
+ 45.600 37.200
+ 586163.797 4 456747.372 1 24711121.193 24711119.578 24711119.924
+ 24.600 9.000
+ -1814380.531 3 -1413804.501 3 24275598.643 24275598.751 24275597.152
+ 23.800 21.100
+ -10881178.337 6 -8478842.997 5 22698764.718 22698762.948 22698763.708
+ 36.500 31.000
+ -629877.956 3 -490813.779 2 24803933.202 24803931.228 24803932.371
+ 21.100 17.000
+ -328226.264 3 -255761.160 1 24425455.874 24425456.149 24425455.326
+ 18.600 11.000
+ 06 1 1 13 56 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -943007.104 3 -734822.484 2 24480982.207 24480979.389 24480980.930
+ 22.600 17.000
+ -10902729.712 5 -8495639.600 4 22530732.006 22530730.183 22530731.617
+ 35.200 29.200
+ -21938916.439 8 -17095255.694 7 20457128.721 20457124.669 20457126.943
+ 48.200 47.800
+ -20761056.516 7 -16177447.815 7 21211982.862 21211981.368 21211981.896
+ 45.900 43.700
+ -17356091.847 7 -13524223.940 6 21253805.559 21253804.407 21253804.618
+ 45.400 37.300
+ 677018.077 3 527542.770 24728409.911 24728408.895 24728408.426
+ 23.800 3.000
+ -1779315.865 4 -1386481.422 3 24282270.952 24282270.971 24282269.993
+ 25.300 19.300
+ -10978394.598 6 -8554595.963 5 22680264.779 22680263.871 22680263.825
+ 36.400 32.300
+ -715573.721 3 -557589.687 2 24787625.877 24787624.060 24787624.927
+ 23.000 17.800
+ -433004.081 3 -337406.144 1 24405516.646 24405517.154 24405516.810
+ 19.900 11.000
+ 06 1 1 13 57 0.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -828845.848 4 -645865.766 3 24502705.458 24502704.252 24502704.766
+ 24.200 19.300
+ -10812801.961 5 -8425566.085 4 22547844.453 22547842.947 22547844.375
+ 35.500 28.600
+ -21955618.150 8 -17108270.024 8 20453950.240 20453946.466 20453948.561
+ 48.300 48.000
+ -20812898.264 7 -16217843.996 7 21202117.397 21202116.220 21202116.567
+ 45.800 43.900
+ -17289523.014 7 -13472352.149 6 21266473.385 21266472.061 21266472.443
+ 45.600 37.500
+ 767897.118 4 598357.479 9 24745702.787 24745702.787 24745702.379
+ 26.800 -3.000
+ -1743706.044 4 -1358733.581 3 24289047.009 24289047.008 24289046.003
+ 24.600 19.900
+ -11075416.557 6 -8630197.507 5 22661802.287 22661801.345 22661801.257
+ 36.500 33.000
+ -801221.259 3 -624328.030 3 24771327.379 24771325.954 24771326.588
+ 21.600 19.300
+ -537789.204 2 -419056.791 1 24385578.095 24385576.860 24385577.023
+ 17.000 6.500
+ 06 1 1 13 57 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -714685.653 4 -556909.909 3 24524429.951 24524428.079 24524429.119
+ 26.200 21.100
+ -10722534.198 5 -8355227.623 4 22565022.204 22565020.408 22565021.809
+ 34.600 28.800
+ -21971764.537 8 -17120851.643 8 20450877.833 20450873.909 20450875.967
+ 48.200 48.100
+ -20864381.892 7 -16257961.120 7 21192320.527 21192319.165 21192319.682
+ 45.800 43.600
+ -17222540.006 7 -13420157.625 6 21279219.720 21279218.615 21279218.789
+ 45.500 37.700
+ 858800.382 4 669191.030 1 24763001.594 24763000.987 24763000.243
+ 24.600 11.000
+ -1707552.085 3 -1330561.726 3 24295927.005 24295926.780 24295925.942
+ 22.600 19.300
+ -11172241.559 5 -8705645.571 5 22643377.045 22643375.952 22643375.923
+ 35.900 32.800
+ -886820.324 3 -691028.569 3 24755038.687 24755036.758 24755037.459
+ 22.100 18.600
+ -642579.327 3 -500711.365 24365638.128 24365637.384 24365636.781
+ 19.300 3.000
+ 06 1 1 13 58 0.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -600529.548 3 -467957.169 2 24546153.353 24546150.951 24546152.468
+ 23.800 17.800
+ -10631929.508 5 -8284626.633 5 22582263.421 22582262.135 22582262.983
+ 33.800 30.200
+ -21987355.530 8 -17133000.488 8 20447910.932 20447907.062 20447909.121
+ 48.400 48.100
+ -20915505.351 7 -16297797.593 7 21182592.363 21182590.712 21182591.365
+ 46.100 43.700
+ -17155145.086 7 -13367642.129 6 21292044.555 21292043.568 21292043.677
+ 45.600 37.300
+ 949727.738 4 740043.414 2 24780304.153 24780303.984 24780303.627
+ 24.600 12.600
+ -1670854.934 3 -1301966.555 2 24302910.232 24302910.041 24302909.125
+ 23.000 17.800
+ -11268867.703 6 -8780938.700 5 22624989.852 22624988.677 22624988.743
+ 36.500 33.100
+ -972370.936 3 -757691.359 3 24738758.733 24738757.369 24738757.372
+ 22.600 19.300
+ -747371.611 3 -582367.626 1 24345694.971 24345695.426 24345694.424
+ 22.600 11.000
+ 06 1 1 13 58 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -486380.006 4 -379009.586 2 24567876.662 24567873.347 24567874.990
+ 26.200 17.800
+ -10540991.040 5 -8213765.564 4 22599568.692 22599567.282 22599568.361
+ 35.400 29.500
+ -22002391.005 8 -17144716.456 8 20445050.076 20445045.984 20445048.204
+ 48.600 48.200
+ -20966266.788 7 -16337351.976 7 21172932.492 21172931.174 21172931.656
+ 45.900 43.900
+ -17087340.672 7 -13314807.554 6 21304947.413 21304946.192 21304946.428
+ 45.400 37.200
+ 1040678.288 3 810913.851 2 24797612.668 24797611.572 24797611.189
+ 23.400 13.900
+ -1633615.752 3 -1272949.076 3 24309996.696 24309997.027 24309995.654
+ 21.600 19.300
+ -11365292.228 6 -8856074.705 5 22606640.740 22606639.980 22606639.687
+ 36.500 33.600
+ -1057871.916 3 -824315.477 2 24722488.310 24722486.647 24722487.049
+ 20.500 17.000
+ -852163.246 3 -664023.364 2 24325753.365 24325753.998 24325752.943
+ 21.600 13.900
+ 06 1 1 13 59 0.0000000 0 9G23G13G19G27G 3G15G 8G28G11
+ -372240.257 4 -290069.609 2 24589595.673 24589593.119 24589594.325
+ 24.200 16.100
+ -10449721.838 5 -8142646.758 4 22616936.867 22616935.287 22616936.521
+ 34.700 29.200
+ -22016871.613 8 -17156000.062 8 20442294.397 20442290.484 20442292.649
+ 48.700 48.300
+ -21016664.029 7 -16376622.565 7 21163342.358 21163341.011 21163341.432
+ 45.900 44.100
+ -17019129.167 7 -13261655.753 6 21317927.590 21317926.550 21317926.673
+ 45.100 37.200
+ -1595835.771 4 -1243510.179 2 24317186.757 24317186.119 24317185.616
+ 24.900 17.800
+ -11461512.651 6 -8931051.665 5 22588330.853 22588329.560 22588329.607
+ 36.400 32.700
+ -1143323.180 3 -890900.863 2 24706227.581 24706225.628 24706226.542
+ 23.000 17.800
+ -956951.743 3 -745676.647 2 24305813.315 24305813.387 24305812.507
+ 22.600 17.800
+ 06 1 1 13 59 30.0000000 0 9G23G13G19G27G 3G15G 8G28G11
+ -258112.915 3 -201139.309 2 24611313.669 24611311.071 24611312.112
+ 23.000 15.100
+ -10358125.078 5 -8071272.720 4 22634366.929 22634365.661 22634366.681
+ 33.200 29.000
+ -22030797.182 8 -17166851.172 8 20439644.400 20439640.481 20439642.603
+ 48.700 48.300
+ -21066695.206 7 -16415607.908 7 21153821.681 21153820.377 21153820.781
+ 45.900 44.000
+ -16950512.811 7 -13208188.495 6 21330985.016 21330983.751 21330983.947
+ 45.300 37.000
+ -1557516.065 3 -1213650.709 2 24324477.841 24324478.124 24324476.838
+ 22.600 13.900
+ -11557526.710 6 -9005867.835 5 22570059.777 22570058.664 22570058.895
+ 37.300 32.400
+ -1228724.664 3 -957447.466 2 24689976.128 24689974.513 24689975.069
+ 23.400 15.100
+ -1061734.338 3 -827325.334 2 24285873.589 24285873.541 24285872.953
+ 23.800 17.000
+ 06 1 1 14 0 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10266203.924 5 -7999645.917 4 22651858.937 22651857.894 22651858.673
+ 34.300 29.200
+ -22044167.787 8 -17177269.841 8 20437100.048 20437096.107 20437098.270
+ 48.800 48.300
+ -21116358.433 7 -16454306.540 7 21144371.155 21144369.915 21144370.187
+ 46.100 44.200
+ -16881494.056 7 -13154407.680 6 21344118.785 21344117.673 21344117.804
+ 45.400 37.100
+ -1518657.799 3 -1183371.610 1 24331872.231 24331872.125 24331871.435
+ 22.600 11.000
+ -11653332.278 6 -9080521.545 5 22551828.728 22551827.512 22551827.843
+ 37.900 33.400
+ -1314076.031 4 -1023955.023 3 24673734.516 24673732.572 24673733.499
+ 25.900 19.900
+ -1166508.467 3 -908967.462 2 24265936.116 24265935.294 24265935.349
+ 23.000 13.900
+ 06 1 1 14 0 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10173961.392 5 -7927768.681 4 22669412.013 22669410.996 22669411.759
+ 34.000 29.500
+ -22056983.588 8 -17187256.193 8 20434661.200 20434657.396 20434659.509
+ 48.800 48.400
+ -21165651.572 7 -16492716.792 7 21134990.924 21134989.644 21134990.041
+ 46.100 44.200
+ -16812075.375 7 -13100315.232 6 21357328.540 21357327.541 21357327.648
+ 45.000 36.800
+ -1479262.260 3 -1152673.824 2 24339369.426 24339369.167 24339368.049
+ 20.500 17.000
+ -11748926.599 6 -9155010.641 5 22533637.264 22533636.703 22533636.443
+ 37.900 33.200
+ -1399376.844 4 -1090423.164 3 24657502.135 24657500.415 24657501.172
+ 24.200 19.300
+ -1271270.940 3 -990600.471 3 24246000.002 24245999.916 24245999.468
+ 23.800 19.300
+ 06 1 1 14 1 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10081400.527 5 -7855643.400 4 22687026.217 22687024.962 22687025.886
+ 33.600 28.800
+ -22069244.937 8 -17196810.504 8 20432328.088 20432324.164 20432326.259
+ 48.700 48.500
+ -21214572.696 7 -16530837.160 7 21125681.433 21125680.200 21125680.599
+ 46.100 44.100
+ -16742259.081 7 -13045912.957 6 21370614.099 21370613.275 21370613.200
+ 44.800 37.100
+ -1439330.694 4 -1121558.383 1 24346968.216 24346968.226 24346967.307
+ 24.900 6.500
+ -11844307.440 6 -9229333.381 5 22515487.377 22515486.026 22515486.375
+ 37.900 32.600
+ -1484626.766 3 -1156851.667 2 24641279.111 24641277.535 24641278.129
+ 23.800 17.000
+ -1376019.178 3 -1072222.414 3 24226067.687 24226066.717 24226066.503
+ 23.000 18.600
+ 06 1 1 14 1 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9988524.672 5 -7783272.684 4 22704700.032 22704698.533 22704699.560
+ 32.800 27.900
+ -22080951.888 8 -17205932.817 8 20430100.250 20430096.410 20430098.510
+ 48.700 48.400
+ -21263119.902 7 -16568666.169 7 21116443.332 21116441.950 21116442.347
+ 46.000 44.200
+ -16672047.405 7 -12991202.591 6 21383975.265 21383974.147 21383974.221
+ 44.700 37.100
+ -1398864.184 3 -1090026.045 1 24354668.881 24354668.885 24354667.649
+ 23.400 11.000
+ -11939472.606 6 -9303488.082 5 22497377.865 22497376.611 22497376.944
+ 37.600 32.100
+ -1569825.355 3 -1223240.184 2 24625066.754 24625065.230 24625065.714
+ 23.800 17.000
+ -1480750.671 3 -1153831.318 3 24206135.593 24206137.237 24206135.988
+ 22.100 19.300
+ 06 1 1 14 2 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9895336.864 5 -7710658.871 4 22722433.275 22722431.632 22722432.995
+ 35.200 28.400
+ -22092104.769 8 -17214623.388 8 20427978.071 20427974.122 20427976.217
+ 48.600 48.600
+ -21311291.384 7 -16606202.405 7 21107276.806 21107275.411 21107275.848
+ 46.000 44.400
+ -16601442.626 7 -12936185.914 6 21397410.635 21397409.846 21397409.843
+ 44.800 37.000
+ -1357864.029 3 -1058077.926 2 24362471.060 24362470.687 24362469.651
+ 23.000 12.600
+ -12034419.033 6 -9377472.314 5 22479310.543 22479309.130 22479309.336
+ 37.500 32.800
+ -1654972.300 3 -1289588.461 2 24608863.898 24608862.442 24608863.051
+ 21.100 13.900
+ -1585462.941 3 -1235425.194 3 24186210.600 24186211.647 24186210.687
+ 21.600 22.100
+ 06 1 1 14 2 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9801839.908 5 -7637804.145 4 22740224.929 22740223.278 22740224.539
+ 34.400 28.400
+ -22102703.889 8 -17222882.454 8 20425960.783 20425957.216 20425959.042
+ 48.600 48.600
+ -21359085.141 7 -16643444.307 7 21098182.016 21098180.519 21098180.999
+ 46.200 44.500
+ -16530447.315 7 -12880864.930 6 21410920.819 21410919.848 21410919.891
+ 44.800 36.600
+ -1316331.534 3 -1025714.961 2 24370374.043 24370373.955 24370373.102
+ 23.000 15.100
+ -12129144.515 6 -9451284.398 5 22461284.949 22461283.149 22461283.756
+ 38.400 31.600
+ -1740067.555 3 -1355896.451 2 24592670.787 24592668.586 24592669.775
+ 21.600 13.900
+ -1690152.604 3 -1317001.509 2 24166288.835 24166289.011 24166288.967
+ 21.600 15.100
+ 06 1 1 14 3 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9708037.429 5 -7564711.368 4 22758074.652 22758073.878 22758074.404
+ 33.100 28.400
+ -22112749.248 8 -17230710.022 8 20424049.437 20424045.696 20424047.605
+ 48.600 48.700
+ -21406499.277 7 -16680390.403 7 21089159.602 21089157.909 21089158.522
+ 46.300 44.400
+ -16459063.872 7 -12825241.499 6 21424504.710 21424503.532 21424503.813
+ 45.000 36.500
+ -1274267.920 3 -992938.153 2 24378378.362 24378378.605 24378377.574
+ 22.100 16.100
+ -12223646.848 6 -9524922.607 5 22443301.512 22443300.387 22443300.401
+ 38.000 33.000
+ -1825110.582 3 -1422163.721 2 24576487.305 24576485.740 24576486.450
+ 21.100 12.600
+ -1794817.363 3 -1398558.392 3 24146371.240 24146372.376 24146371.208
+ 19.900 18.600
+ 06 1 1 14 3 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9613932.336 5 -7491382.810 4 22775982.187 22775981.330 22775981.930
+ 32.300 27.600
+ -22122241.262 8 -17238106.410 8 20422243.022 20422239.445 20422241.360
+ 48.700 48.700
+ -21453531.785 7 -16717039.129 7 21080209.392 21080207.881 21080208.392
+ 46.300 44.500
+ -16387294.820 7 -12769317.597 6 21438161.924 21438161.008 21438161.003
+ 44.900 36.700
+ -1231674.738 3 -959748.727 2 24386484.529 24386484.267 24386483.391
+ 23.400 17.800
+ -12317923.612 6 -9598385.021 5 22425361.381 22425360.016 22425360.169
+ 38.400 34.300
+ -1910100.953 3 -1488390.008 2 24560314.589 24560312.962 24560313.629
+ 23.000 15.100
+ -1899454.373 3 -1480093.633 1 24126458.322 24126460.160 24126459.291
+ 22.100 6.500
+ 06 1 1 14 4 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9519527.867 5 -7417820.941 4 22793947.372 22793945.902 22793946.910
+ 33.400 25.900
+ -22131180.545 8 -17245072.098 8 20420542.022 20420538.352 20420540.236
+ 48.400 48.700
+ -21500180.533 7 -16753388.820 7 21071332.380 21071330.989 21071331.437
+ 46.100 44.500
+ -16315142.519 7 -12713095.059 6 21451892.201 21451890.835 21451891.247
+ 44.800 36.000
+ -1188552.992 3 -926147.373 2 24394689.855 24394690.330 24394688.817
+ 22.600 17.000
+ -12411972.426 6 -9671669.820 5 22407464.583 22407463.253 22407463.470
+ 38.300 33.900
+ -1995038.499 4 -1554575.120 1 24544151.807 24544149.407 24544150.750
+ 24.200 11.000
+ -2004060.686 3 -1561604.970 2 24106553.055 24106554.675 24106553.042
+ 22.100 17.000
+ 06 1 1 14 4 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9424826.937 5 -7344028.073 4 22811968.078 22811966.921 22811967.870
+ 33.400 27.100
+ -22139567.218 8 -17251607.184 8 20418945.913 20418942.420 20418944.161
+ 48.400 48.700
+ -21546443.887 7 -16789438.203 7 21062528.861 21062527.426 21062527.849
+ 46.100 44.500
+ -16242609.352 7 -12656575.742 6 21465694.705 21465693.712 21465693.737
+ 44.800 36.500
+ -1144904.179 3 -892135.297 1 24402995.754 24402995.274 24402995.004
+ 21.100 6.500
+ -12505790.742 6 -9744775.017 5 22389611.300 22389609.881 22389610.221
+ 38.400 32.700
+ -2079922.315 4 -1620718.359 2 24527998.842 24527997.118 24527997.868
+ 26.500 17.000
+ -2108633.827 4 -1643090.439 2 24086653.882 24086654.376 24086653.621
+ 24.200 12.600
+ 06 1 1 14 5 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9329833.038 5 -7270006.918 4 22830044.674 22830043.705 22830044.410
+ 31.800 27.400
+ -22147401.530 8 -17257711.856 8 20417455.258 20417451.544 20417453.417
+ 48.300 48.800
+ -21592319.896 7 -16825185.760 7 21053798.725 21053797.530 21053797.853
+ 46.100 44.700
+ -16169697.501 7 -12599761.351 6 21479569.634 21479568.357 21479568.584
+ 44.500 36.400
+ -1100729.850 3 -857713.769 2 24411402.131 24411402.166 24411401.117
+ 21.100 12.600
+ -12599375.743 6 -9817698.417 5 22371802.827 22371801.467 22371801.900
+ 39.100 33.200
+ -2164752.888 4 -1686820.099 3 24511856.019 24511854.114 24511854.837
+ 26.200 19.900
+ -2213171.021 3 -1724547.926 2 24066760.197 24066761.281 24066760.492
+ 23.400 13.900
+ 06 1 1 14 5 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9234549.320 5 -7195759.963 4 22848177.096 22848175.997 22848176.590
+ 31.800 28.800
+ -22154683.846 8 -17263386.401 8 20416069.625 20416065.824 20416067.770
+ 48.400 48.900
+ -21637806.616 7 -16860629.976 7 21045143.196 21045141.680 21045142.234
+ 46.100 44.800
+ -16096409.376 7 -12542653.758 6 21493515.594 21493514.841 21493514.677
+ 44.300 36.500
+ -1056031.388 3 -822883.834 2 24419907.762 24419907.662 24419906.770
+ 23.400 15.100
+ -12692725.548 6 -9890438.550 5 22354039.112 22354037.580 22354037.999
+ 39.100 33.200
+ -2249529.422 4 -1752879.717 3 24495723.725 24495721.745 24495722.305
+ 24.900 21.100
+ -2317669.675 4 -1805975.380 1 24046875.649 24046876.216 24046875.421
+ 26.500 9.000
+ 06 1 1 14 6 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9138978.568 5 -7121289.322 4 22866363.371 22866362.750 22866363.152
+ 32.800 28.600
+ -22161414.639 8 -17268631.185 8 20414788.813 20414784.991 20414787.005
+ 48.400 48.700
+ -21682902.037 7 -16895769.284 7 21036561.451 21036560.298 21036560.581
+ 46.000 44.700
+ -16022747.480 7 -12485254.916 6 21507532.965 21507532.187 21507532.095
+ 44.400 36.200
+ -1010810.078 3 -787646.461 2 24428513.049 24428513.068 24428511.777
+ 22.600 16.100
+ -12785837.605 6 -9962993.415 5 22336320.235 22336319.433 22336319.100
+ 39.000 34.900
+ -2334251.720 4 -1818897.094 3 24479601.283 24479599.750 24479600.022
+ 24.900 21.600
+ -2422126.513 4 -1887370.299 2 24026999.707 24026998.534 24026998.359
+ 25.300 13.900
+ 06 1 1 14 6 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9043124.073 5 -7046597.581 4 22884604.000 22884602.910 22884603.686
+ 33.400 27.400
+ -22167594.345 8 -17273446.554 8 20413612.729 20413609.088 20413610.963
+ 48.500 48.800
+ -21727604.311 7 -16930602.242 7 21028054.957 21028053.783 21028054.032
+ 45.700 44.700
+ -15948714.160 7 -12427566.647 6 21521621.240 21521620.257 21521620.344
+ 44.500 36.500
+ -965067.249 3 -752002.713 2 24437217.866 24437218.359 24437216.823
+ 22.100 17.000
+ -12878709.252 6 -10035360.946 5 22318647.193 22318646.570 22318646.251
+ 38.700 35.400
+ -2418919.182 3 -1884871.723 3 24463488.933 24463488.065 24463488.040
+ 22.600 18.600
+ -2526538.831 3 -1968730.525 2 24007131.803 24007129.471 24007129.998
+ 22.100 16.100
+ 06 1 1 14 7 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8946989.204 5 -6971687.347 4 22902898.010 22902896.649 22902897.717
+ 32.800 26.200
+ -22173223.261 8 -17277832.740 8 20412541.577 20412537.948 20412539.784
+ 48.500 48.900
+ -21771911.519 7 -16965127.347 7 21019623.535 21019622.433 21019622.624
+ 45.700 44.700
+ -15874311.986 7 -12369590.971 6 21535779.593 21535778.642 21535778.600
+ 44.400 36.300
+ -12971338.115 6 -10107539.283 5 22301020.787 22301019.752 22301019.757
+ 39.000 34.700
+ -2503531.177 3 -1950803.133 2 24447388.536 24447386.655 24447387.360
+ 23.400 17.800
+ -2630904.211 3 -2050054.132 3 23987270.797 23987270.249 23987269.212
+ 20.500 21.100
+ 06 1 1 14 7 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8850577.196 5 -6896561.172 4 22921244.285 22921243.483 22921243.930
+ 31.300 27.400
+ -22178301.862 8 -17281790.108 8 20411575.288 20411571.533 20411573.359
+ 48.400 48.900
+ -21815821.753 7 -16999343.137 7 21011267.761 21011266.548 21011266.845
+ 45.800 44.800
+ -15799543.529 7 -12311329.873 5 21550007.710 21550006.487 21550006.802
+ 44.800 35.500
+ -13063721.331 6 -10179526.225 5 22283440.868 22283439.557 22283439.739
+ 39.600 34.100
+ -2588088.249 4 -2016691.776 2 24431297.696 24431295.783 24431296.862
+ 25.900 15.100
+ -2735219.773 3 -2131338.907 3 23967420.828 23967419.105 23967418.819
+ 21.600 20.500
+ 06 1 1 14 8 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8753890.937 5 -6821221.296 4 22939643.783 22939642.469 22939643.378
+ 32.300 27.600
+ -22182830.468 8 -17285318.901 8 20410713.283 20410709.809 20410711.555
+ 48.700 49.000
+ -21859332.982 7 -17033248.008 7 21002987.943 21002986.744 21002986.986
+ 45.600 44.900
+ -15724410.752 7 -12252784.890 6 21564304.862 21564303.955 21564303.907
+ 44.400 36.200
+ -13155856.562 6 -10251319.938 5 22265907.910 22265906.803 22265907.084
+ 39.700 33.800
+ -2672589.756 4 -2082537.147 2 24415217.555 24415216.144 24415216.422
+ 26.200 16.100
+ -2839482.375 3 -2212582.444 3 23947579.053 23947578.735 23947577.550
+ 22.600 21.600
+ 06 1 1 14 8 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8656933.713 5 -6745670.284 4 22958093.906 22958092.771 22958093.735
+ 33.600 27.100
+ -22186809.774 8 -17288419.679 8 20409956.321 20409952.614 20409954.497
+ 48.700 48.900
+ -21902443.615 7 -17066840.727 7 20994784.114 20994783.078 20994783.215
+ 45.600 44.900
+ -15648916.429 7 -12193958.181 5 21578671.082 21578669.902 21578670.053
+ 44.300 35.300
+ -13247741.536 6 -10322918.638 5 22248423.057 22248422.012 22248422.042
+ 39.800 34.600
+ -2757035.109 4 -2148338.742 2 24399148.174 24399146.567 24399147.096
+ 26.500 16.100
+ -2943689.737 3 -2293782.902 4 23927749.578 23927748.835 23927747.946
+ 22.100 24.600
+ 06 1 1 14 9 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8559708.783 5 -6669910.667 4 22976595.047 22976594.034 22976594.657
+ 31.100 26.200
+ -22190240.415 8 -17291092.920 8 20409303.439 20409299.821 20409301.694
+ 48.800 48.900
+ -21945151.605 7 -17100119.695 7 20986657.193 20986655.990 20986656.288
+ 45.600 44.800
+ -15573062.858 7 -12134851.533 5 21593105.273 21593104.522 21593104.400
+ 44.100 35.500
+ -13339373.576 6 -10394320.236 5 22230985.718 22230984.990 22230984.871
+ 39.600 35.500
+ -2841423.840 4 -2214096.230 3 24383089.645 24383087.982 24383088.509
+ 25.300 19.900
+ -3047838.906 4 -2374938.045 3 23907931.505 23907929.335 23907929.838
+ 24.600 19.300
+ 06 1 1 14 9 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8462218.955 5 -6593944.621 4 22995147.020 22995145.666 22995146.613
+ 31.000 25.300
+ -22193122.622 8 -17293338.810 8 20408755.245 20408751.329 20408753.237
+ 48.700 49.000
+ -21987455.017 7 -17133083.408 7 20978606.969 20978605.981 20978606.135
+ 45.700 44.900
+ -15496852.249 7 -12075466.684 5 21607607.982 21607606.961 21607606.943
+ 43.900 35.400
+ -13430750.402 6 -10465522.964 5 22213597.434 22213596.607 22213596.533
+ 40.100 35.800
+ -2925755.745 3 -2279809.372 3 24367041.474 24367040.266 24367040.766
+ 23.400 22.100
+ -3151926.878 4 -2456045.521 2 23888123.656 23888122.207 23888122.145
+ 26.500 17.800
+ 06 1 1 14 10 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8364467.652 5 -6517774.841 4 23013747.975 23013747.174 23013747.944
+ 31.100 26.200
+ -22195457.164 8 -17295157.953 8 20408310.705 20408307.075 20408309.032
+ 48.900 48.900
+ -22029352.066 7 -17165730.476 7 20970634.392 20970633.269 20970633.487
+ 45.800 45.100
+ -15420287.052 7 -12015805.523 5 21622177.901 21622176.878 21622176.823
+ 43.800 35.300
+ -13521869.660 6 -10536525.001 5 22196257.983 22196256.868 22196257.039
+ 39.700 34.700
+ -3010030.619 3 -2345478.098 3 24351004.217 24351003.348 24351003.485
+ 21.600 23.400
+ -3255950.896 4 -2537103.173 2 23868327.357 23868326.658 23868326.434
+ 25.600 13.900
+ 06 1 1 14 10 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8266458.142 5 -6441403.847 4 23032399.366 23032397.916 23032398.885
+ 32.100 25.900
+ -22197244.423 8 -17296550.639 8 20407970.708 20407966.928 20407968.982
+ 49.000 48.900
+ -22070841.064 7 -17198059.587 7 20962739.115 20962738.074 20962738.303
+ 45.800 44.800
+ -15343369.822 7 -11955870.056 5 21636814.570 21636813.723 21636813.667
+ 43.800 35.400
+ -13612728.294 6 -10607323.950 5 22178968.184 22178967.192 22178967.069
+ 40.000 35.100
+ -3094248.003 3 -2411102.001 3 24334978.382 24334977.120 24334977.297
+ 23.000 23.000
+ -3359908.204 4 -2618108.835 3 23848544.932 23848544.780 23848544.515
+ 26.500 18.600
+ 06 1 1 14 11 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8168193.666 5 -6364834.188 4 23051098.335 23051097.350 23051097.957
+ 31.100 25.600
+ -22198485.154 8 -17297517.459 8 20407734.717 20407730.845 20407732.902
+ 49.100 48.900
+ -22111920.144 7 -17230069.286 7 20954922.311 20954920.980 20954921.365
+ 45.600 44.900
+ -15266102.967 7 -11895662.164 5 21651517.978 21651516.959 21651517.053
+ 43.300 34.900
+ -13703324.239 6 -10677918.206 5 22161729.105 22161727.143 22161727.664
+ 39.800 34.900
+ -3178407.289 3 -2476680.649 3 24318964.009 24318962.643 24318962.714
+ 23.800 21.600
+ -3463795.914 4 -2699060.267 3 23828774.858 23828775.708 23828774.884
+ 26.500 18.600
+ 06 1 1 14 11 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8069677.480 4 -6288068.399 4 23069844.914 23069844.343 23069844.708
+ 29.700 25.900
+ -22199179.874 8 -17298058.817 8 20407602.596 20407598.744 20407600.779
+ 49.100 48.800
+ -22152587.183 7 -17261757.915 7 20947183.628 20947182.386 20947182.721
+ 45.600 45.000
+ -15188488.778 7 -11835183.608 5 21666287.589 21666286.655 21666286.606
+ 43.500 35.100
+ -13793654.442 6 -10748305.404 5 22144539.162 22144538.146 22144538.213
+ 40.500 35.400
+ -3262508.228 4 -2542213.836 3 24302959.567 24302958.314 24302958.667
+ 26.200 19.900
+ -3567611.539 4 -2779955.517 2 23809018.780 23809019.625 23809019.018
+ 24.600 17.000
+ 06 1 1 14 12 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7970912.533 5 -6211108.785 4 23088640.161 23088638.591 23088639.681
+ 31.100 24.900
+ -22199329.202 8 -17298175.199 8 20407574.132 20407570.358 20407572.385
+ 49.200 49.000
+ -22192840.423 7 -17293124.100 7 20939523.845 20939522.555 20939522.856
+ 45.700 45.300
+ -15110529.712 7 -11774436.331 5 21681122.562 21681121.721 21681121.636
+ 43.200 35.200
+ -13883716.847 6 -10818483.914 6 22127400.974 22127400.082 22127400.036
+ 40.800 36.500
+ -3346550.655 4 -2607701.473 2 24286967.562 24286965.526 24286966.561
+ 26.800 16.100
+ -3671351.966 3 -2860792.170 2 23789277.719 23789278.676 23789277.694
+ 21.100 17.000
+ 06 1 1 14 12 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7871902.251 5 -6133957.965 4 23107480.920 23107479.864 23107480.743
+ 31.100 24.200
+ -22198933.710 8 -17297867.039 8 20407649.366 20407645.613 20407647.651
+ 49.300 49.000
+ -22232678.152 7 -17324166.509 7 20931942.920 20931941.723 20931941.993
+ 45.700 45.200
+ -15032228.299 7 -11713422.272 5 21696023.076 21696022.117 21696022.125
+ 43.000 34.900
+ -13973508.726 6 -10888451.627 5 22110313.815 22110313.178 22110312.981
+ 40.800 35.600
+ -3430534.276 4 -2673143.270 3 24270985.646 24270984.180 24270984.833
+ 25.600 19.900
+ -3775014.390 4 -2941568.102 2 23769551.411 23769551.963 23769551.828
+ 24.900 17.000
+ 06 1 1 14 13 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7772649.615 5 -6056618.327 3 23126368.250 23126366.670 23126367.788
+ 31.000 22.100
+ -22197994.196 8 -17297134.970 8 20407828.181 20407824.336 20407826.424
+ 49.300 48.900
+ -22272098.699 7 -17354883.849 7 20924441.345 20924440.156 20924440.436
+ 45.600 45.200
+ -14953586.770 7 -11652143.206 5 21710987.965 21710986.967 21710987.042
+ 43.100 34.600
+ -14063027.175 6 -10958206.277 5 22093278.966 22093278.154 22093278.148
+ 40.600 35.500
+ -3514458.443 4 -2738538.736 3 24255015.371 24255013.361 24255014.585
+ 24.600 19.900
+ -3878596.044 4 -3022281.075 3 23749840.906 23749841.459 23749840.798
+ 27.600 21.100
+ 06 1 1 14 13 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7673157.889 5 -5979092.379 3 23145300.793 23145299.490 23145300.518
+ 30.200 23.800
+ -22196511.312 8 -17295979.498 8 20408110.522 20408106.512 20408108.677
+ 49.300 48.900
+ -22311100.017 7 -17385274.507 7 20917019.671 20917018.510 20917018.661
+ 45.500 45.300
+ -14874607.768 7 -11590601.158 5 21726017.611 21726016.310 21726016.557
+ 43.300 34.400
+ -14152269.958 6 -11027746.137 5 22076297.053 22076295.739 22076295.999
+ 41.200 34.900
+ -3598322.933 4 -2803887.671 3 24239056.632 24239055.203 24239055.848
+ 27.400 21.600
+ -3982093.971 4 -3102928.836 2 23730145.908 23730145.753 23730145.508
+ 24.600 17.000
+ 06 1 1 14 14 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7573430.168 4 -5901382.572 4 23164278.025 23164277.694 23164277.794
+ 28.600 25.900
+ -22194485.543 8 -17294400.997 8 20408495.909 20408492.010 20408494.153
+ 49.300 48.800
+ -22349680.303 7 -17415337.093 7 20909678.022 20909677.006 20909677.157
+ 45.600 45.400
+ -14795293.783 7 -11528798.090 5 21741110.356 21741109.299 21741109.483
+ 43.600 33.900
+ -14241234.640 6 -11097069.291 5 22059367.328 22059366.186 22059366.485
+ 41.000 34.900
+ -3682127.217 4 -2869189.698 3 24223108.876 24223107.647 24223107.846
+ 26.800 22.600
+ -4085505.678 3 -3183509.446 3 23710468.712 23710467.846 23710467.203
+ 23.400 19.900
+ 06 1 1 14 14 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7473469.721 5 -5823491.401 4 23183299.762 23183299.505 23183299.524
+ 30.400 25.300
+ -22191917.905 8 -17292400.259 8 20408984.390 20408980.693 20408982.613
+ 49.300 48.900
+ -22387837.547 7 -17445070.029 7 20902417.138 20902415.908 20902416.124
+ 45.400 45.300
+ -14715646.948 7 -11466735.658 5 21756266.589 21756265.633 21756265.650
+ 43.300 34.300
+ -14329918.689 6 -11166173.762 5 22042491.229 22042490.440 22042490.299
+ 40.600 35.700
+ -3765871.104 4 -2934444.657 3 24207172.851 24207171.399 24207172.005
+ 26.200 21.100
+ -4188828.083 4 -3264020.466 3 23690808.337 23690806.026 23690806.346
+ 26.200 19.300
+ 06 1 1 14 15 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7373279.965 5 -5745421.547 4 23202365.525 23202365.069 23202365.268
+ 30.800 25.600
+ -22188808.932 8 -17289977.697 8 20409576.067 20409572.318 20409574.299
+ 49.300 48.800
+ -22425570.346 7 -17474472.231 7 20895236.815 20895235.562 20895235.846
+ 45.500 45.200
+ -14635669.701 7 -11404415.766 5 21771486.014 21771484.889 21771485.039
+ 43.500 34.400
+ -14418319.515 6 -11235057.545 6 22025669.666 22025668.589 22025668.479
+ 41.000 36.700
+ -3849554.003 4 -2999652.117 3 24191248.335 24191246.808 24191247.667
+ 26.800 19.300
+ -4292058.272 4 -3344459.638 2 23671163.852 23671161.592 23671162.219
+ 25.900 15.100
+ 06 1 1 14 15 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7272863.819 4 -5667175.288 4 23221474.328 23221473.671 23221474.069
+ 29.200 24.900
+ -22185159.312 8 -17287133.856 8 20410270.770 20410266.804 20410268.919
+ 49.200 48.700
+ -22462876.546 7 -17503542.020 7 20888137.688 20888136.435 20888136.688
+ 45.400 45.300
+ -14555364.638 7 -11341840.433 5 21786767.348 21786766.573 21786766.424
+ 43.100 34.400
+ -14506434.380 6 -11303718.482 6 22008902.130 22008900.773 22008900.965
+ 41.600 36.400
+ -3933175.731 4 -3064811.902 3 24175335.720 24175334.362 24175334.759
+ 24.600 21.100
+ -4395193.519 4 -3424824.866 3 23651536.165 23651536.564 23651535.795
+ 26.500 21.100
+ 06 1 1 14 16 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7172224.871 4 -5588755.405 4 23240624.865 23240624.510 23240624.598
+ 28.600 24.600
+ -22180969.782 8 -17283869.301 8 20411067.885 20411064.091 20411066.156
+ 49.300 48.900
+ -22499754.766 7 -17532278.313 7 20881119.931 20881118.856 20881118.955
+ 45.300 45.400
+ -14474734.227 7 -11279011.590 5 21802110.956 21802109.967 21802110.037
+ 43.100 34.800
+ -14594260.909 6 -11372154.762 6 21992188.946 21992187.881 21992188.074
+ 41.800 36.200
+ -4016735.804 4 -3129923.644 3 24159434.684 24159433.164 24159433.677
+ 25.600 19.900
+ -4498230.933 4 -3505113.859 2 23631928.129 23631928.987 23631928.140
+ 26.800 17.800
+ 06 1 1 14 16 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7071365.763 5 -5510163.987 4 23259818.221 23259817.409 23259818.022
+ 30.200 25.300
+ -22176241.628 8 -17280185.040 8 20411967.511 20411963.829 20411965.780
+ 49.400 48.800
+ -22536203.205 7 -17560679.708 7 20874183.907 20874182.933 20874182.955
+ 45.300 45.400
+ -14393780.551 7 -11215930.855 5 21817515.771 21817515.252 21817514.773
+ 42.400 34.700
+ -14681796.416 6 -11440364.268 6 21975531.225 21975530.637 21975530.395
+ 41.600 36.300
+ -4100233.763 4 -3194986.977 3 24143545.875 24143544.290 24143544.804
+ 25.300 22.600
+ -4601167.501 4 -3585324.263 3 23612340.687 23612341.242 23612340.532
+ 25.600 19.300
+ 06 1 1 14 17 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6970289.996 5 -5431403.736 4 23279052.953 23279051.947 23279052.547
+ 30.200 24.200
+ -22170975.257 8 -17276081.390 8 20412969.805 20412966.014 20412967.927
+ 49.200 48.900
+ -22572219.807 7 -17588744.605 7 20867330.136 20867329.191 20867329.199
+ 45.100 45.400
+ -14312506.163 7 -11152600.212 5 21832981.938 21832981.091 21832980.990
+ 42.700 34.300
+ -14769038.297 6 -11508344.966 5 21958929.773 21958928.843 21958928.903
+ 41.700 35.800
+ -4183669.394 4 -3260001.720 3 24127668.089 24127666.914 24127667.181
+ 26.800 21.600
+ -4704000.565 4 -3665453.976 3 23592772.108 23592773.081 23592772.004
+ 26.200 22.100
+ 06 1 1 14 17 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6869000.798 5 -5352477.190 4 23298327.619 23298326.712 23298327.349
+ 31.000 25.600
+ -22165171.556 8 -17271559.039 8 20414074.040 20414070.411 20414072.298
+ 49.200 48.800
+ -22607802.923 7 -17616471.728 7 20860559.220 20860557.963 20860558.218
+ 45.400 45.400
+ -14230913.526 7 -11089021.583 5 21848508.338 21848507.568 21848507.347
+ 42.200 34.000
+ -14855984.363 7 -11576095.161 6 21942384.897 21942383.591 21942383.823
+ 42.300 36.200
+ -4267042.325 4 -3324967.642 3 24111803.573 24111801.644 24111802.597
+ 29.000 22.100
+ -4806726.940 4 -3745500.549 3 23573224.575 23573224.335 23573223.812
+ 26.200 22.600
+ 06 1 1 14 18 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6767501.224 4 -5273386.687 4 23317641.792 23317641.414 23317641.631
+ 27.900 24.600
+ -22158831.160 8 -17266618.484 8 20415280.670 20415276.966 20415278.936
+ 49.300 48.900
+ -22642951.039 7 -17643859.882 7 20853870.702 20853869.464 20853869.667
+ 45.200 45.500
+ -14149005.069 7 -11025196.866 5 21864095.250 21864094.321 21864094.229
+ 42.500 33.900
+ -14942631.593 7 -11643612.503 6 21925896.328 21925895.290 21925895.269
+ 42.100 36.300
+ -4350352.001 4 -3389884.271 3 24095949.963 24095948.600 24095948.730
+ 27.100 23.400
+ -4909344.227 4 -3825462.090 4 23553697.894 23553697.245 23553696.637
+ 26.500 24.600
+ 06 1 1 14 18 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6665794.361 4 -5194134.696 3 23336996.147 23336995.693 23336995.882
+ 27.900 23.800
+ -22151955.018 8 -17261260.469 8 20416589.303 20416585.440 20416587.464
+ 49.400 48.800
+ -22677662.257 7 -17670907.599 7 20847265.300 20847264.058 20847264.305
+ 45.300 45.300
+ -14066783.333 7 -10961128.027 5 21879741.295 21879740.579 21879740.451
+ 42.300 33.500
+ -15028977.657 6 -11710895.159 6 21909465.079 21909463.939 21909464.018
+ 41.900 36.100
+ -4433598.290 4 -3454751.480 3 24080108.231 24080107.222 24080107.303
+ 25.300 23.000
+ -5011849.478 4 -3905336.284 3 23534192.328 23534191.184 23534190.868
+ 27.400 21.600
+ 06 1 1 14 19 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6563883.848 4 -5114723.987 3 23356389.208 23356388.790 23356388.994
+ 27.900 23.400
+ -22144544.015 8 -17255485.674 8 20417999.436 20417995.780 20417997.674
+ 49.400 48.700
+ -22711934.943 7 -17697613.600 7 20840743.487 20840742.245 20840742.432
+ 45.200 45.300
+ -13984250.516 7 -10896816.791 5 21895447.273 21895446.174 21895446.270
+ 42.600 33.600
+ -15115019.805 6 -11777940.992 6 21893091.826 21893090.583 21893090.842
+ 41.700 36.300
+ -4516780.619 4 -3519568.860 3 24064279.284 24064278.191 24064278.267
+ 25.900 21.100
+ -5114239.636 4 -3985120.763 3 23514707.239 23514706.789 23514706.086
+ 27.400 20.500
+ 06 1 1 14 19 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6461772.694 4 -5035156.944 4 23375820.087 23375819.738 23375819.707
+ 28.400 25.300
+ -22136599.206 8 -17249294.927 8 20419511.487 20419507.632 20419509.658
+ 49.400 48.800
+ -22745767.299 7 -17723976.485 7 20834305.349 20834304.257 20834304.468
+ 45.500 45.600
+ -13901408.967 6 -10832264.975 5 21911211.255 21911210.326 21911210.143
+ 41.900 33.000
+ -15200755.399 7 -11844747.955 6 21876777.022 21876775.817 21876776.048
+ 42.600 36.700
+ -4599898.649 4 -3584336.136 3 24048462.591 24048461.041 24048461.455
+ 26.200 20.500
+ -5216511.700 4 -4064813.234 3 23495245.364 23495245.153 23495244.200
+ 28.100 21.600
+ 06 1 1 14 20 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6359464.072 4 -4955436.008 4 23395289.293 23395288.576 23395288.764
+ 27.400 24.200
+ -22128121.347 8 -17242688.820 8 20421124.583 20421120.940 20421122.849
+ 49.200 48.800
+ -22779157.583 7 -17749994.901 7 20827951.435 20827950.354 20827950.512
+ 45.600 45.600
+ -13818261.285 6 -10767474.618 5 21927033.599 21927032.918 21927032.758
+ 41.700 33.100
+ -15286181.800 7 -11911313.997 6 21860521.109 21860519.817 21860519.949
+ 42.600 36.800
+ -4682951.931 4 -3649052.980 3 24032658.529 24032656.321 24032657.653
+ 28.100 22.600
+ -5318662.950 4 -4144411.495 3 23475806.533 23475806.594 23475805.965
+ 29.500 23.400
+ 06 1 1 14 20 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6256961.176 4 -4875563.703 3 23414794.899 23414794.119 23414794.506
+ 28.600 22.600
+ -22119111.479 8 -17235668.157 8 20422839.151 20422835.403 20422837.257
+ 49.200 48.700
+ -22812104.123 7 -17775667.543 7 20821681.908 20821680.763 20821681.049
+ 45.800 45.600
+ -13734809.745 6 -10702447.495 5 21942913.994 21942913.307 21942912.918
+ 41.400 32.600
+ -15371296.710 7 -11977637.311 6 21844323.954 21844323.023 21844323.056
+ 42.900 37.000
+ -4765940.098 4 -3713719.096 4 24016866.379 24016864.630 24016865.255
+ 28.400 24.200
+ -5420690.741 4 -4223913.576 3 23456389.936 23456390.746 23456390.380
+ 28.400 22.600
+ 06 1 1 14 21 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6154267.120 4 -4795542.441 3 23434337.050 23434336.616 23434336.727
+ 28.800 22.600
+ -22109570.592 8 -17228233.716 8 20424654.764 20424651.029 20424652.965
+ 49.200 48.600
+ -22844605.117 7 -17800993.003 7 20815497.503 20815496.018 20815496.542
+ 45.700 45.600
+ -13651056.672 6 -10637185.400 5 21958852.056 21958850.832 21958850.827
+ 41.500 33.100
+ -15456097.070 7 -12043715.521 6 21828187.037 21828186.102 21828186.037
+ 42.700 37.200
+ -4848862.622 4 -3778334.024 4 24001086.749 24001084.945 24001085.685
+ 26.200 24.200
+ -5522591.783 5 -4303316.866 3 23436999.696 23436999.489 23436999.784
+ 30.600 19.900
+ 06 1 1 14 21 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6051385.188 4 -4715374.777 3 23453915.208 23453914.234 23453914.778
+ 28.800 19.900
+ -22099499.450 8 -17220386.088 8 20426571.181 20426567.495 20426569.429
+ 49.200 48.600
+ -22876658.736 7 -17825969.864 7 20809397.647 20809396.538 20809396.761
+ 45.800 45.700
+ -13567004.526 6 -10571690.256 5 21974846.070 21974845.658 21974845.231
+ 41.400 33.100
+ -15540580.659 7 -12109546.898 6 21812110.451 21812109.313 21812109.446
+ 42.900 36.800
+ -4931719.168 4 -3842897.537 4 23985319.448 23985318.031 23985318.504
+ 27.900 25.600
+ -5624363.240 4 -4382619.182 3 23417632.981 23417632.497 23417632.301
+ 27.900 19.300
+ 06 1 1 14 22 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5948318.467 4 -4635063.116 3 23473528.035 23473527.378 23473527.714
+ 29.000 23.000
+ -22088899.231 8 -17212126.195 8 20428588.543 20428584.634 20428586.645
+ 49.200 48.600
+ -22908263.637 7 -17850597.066 7 20803383.435 20803382.345 20803382.511
+ 45.700 45.700
+ -13482655.674 7 -10505963.921 5 21990897.579 21990896.640 21990896.701
+ 42.100 32.800
+ -15624744.625 7 -12175129.221 6 21796094.339 21796093.587 21796093.426
+ 42.700 37.600
+ -5014509.373 4 -3907409.357 4 23969564.771 23969563.420 23969563.752
+ 28.800 24.600
+ -5726002.555 4 -4461818.553 3 23398292.679 23398290.775 23398291.314
+ 26.800 18.600
+ 06 1 1 14 22 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5845070.343 5 -4554610.105 4 23493175.907 23493174.923 23493175.461
+ 30.200 24.600
+ -22077770.857 8 -17203454.750 8 20430706.132 20430702.312 20430704.308
+ 49.400 48.500
+ -22939418.359 7 -17874873.485 7 20797454.907 20797453.746 20797453.976
+ 45.800 45.600
+ -13398012.677 6 -10440008.373 5 22007004.520 22007003.741 22007003.449
+ 41.400 32.600
+ -15708586.626 7 -12240460.650 6 21780139.633 21780139.061 21780138.652
+ 42.400 37.800
+ -5097233.080 4 -3971869.406 3 23953823.086 23953821.519 23953822.037
+ 28.100 23.400
+ -5827506.917 4 -4540912.746 3 23378977.041 23378976.544 23378975.548
+ 24.900 23.000
+ 06 1 1 14 23 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5741643.974 4 -4474018.216 3 23512856.949 23512856.500 23512856.519
+ 27.100 22.600
+ -22066115.198 8 -17194372.433 8 20432924.124 20432920.394 20432922.343
+ 49.500 48.500
+ -22970121.054 7 -17898797.675 7 20791612.502 20791611.223 20791611.494
+ 45.700 45.600
+ -13313077.845 7 -10373825.414 5 22023167.221 22023166.392 22023166.258
+ 42.000 32.700
+ -15792103.908 7 -12305539.063 6 21764246.790 21764246.109 21764245.866
+ 42.700 37.700
+ -5179889.628 4 -4036277.118 3 23938093.848 23938092.246 23938093.132
+ 29.200 22.600
+ -5928873.084 4 -4619899.298 3 23359687.808 23359686.252 23359686.826
+ 29.200 23.000
+ 06 1 1 14 23 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5638042.456 4 -4393289.851 3 23532571.332 23532571.274 23532570.866
+ 26.500 23.000
+ -22053933.403 8 -17184880.144 8 20435242.420 20435238.449 20435240.544
+ 49.600 48.500
+ -23000369.967 7 -17922368.269 7 20785856.135 20785855.108 20785855.183
+ 45.500 45.800
+ -13227853.616 6 -10307416.953 5 22039384.852 22039383.941 22039383.726
+ 41.400 32.800
+ -15875294.045 7 -12370362.546 6 21748416.502 21748415.614 21748415.585
+ 43.200 37.800
+ -5262478.317 4 -4100631.956 3 23922377.999 23922376.234 23922377.168
+ 29.700 23.400
+ -6030098.319 5 -4698776.025 3 23340423.148 23340423.794 23340423.671
+ 31.100 21.100
+ 06 1 1 14 24 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5534269.101 4 -4312427.599 3 23552318.853 23552318.408 23552318.695
+ 24.900 21.100
+ -22041226.384 8 -17174978.585 8 20437660.517 20437656.583 20437658.661
+ 49.700 48.500
+ -23030163.442 7 -17945583.972 7 20780186.755 20780185.602 20780185.747
+ 45.600 45.700
+ -13142342.245 6 -10240784.751 5 22055657.040 22055656.283 22055656.131
+ 41.100 32.800
+ -15958154.191 7 -12434928.915 6 21732648.841 21732647.753 21732647.875
+ 43.600 37.300
+ -5344998.910 4 -4164933.721 3 23906675.272 23906673.518 23906674.158
+ 29.000 23.800
+ -6131179.788 4 -4777540.703 3 23321187.584 23321188.391 23321187.888
+ 29.700 22.100
+ 06 1 1 14 24 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5430327.172 4 -4231433.945 3 23572098.240 23572097.819 23572097.963
+ 27.100 19.900
+ -22027995.352 8 -17164668.711 8 20440178.323 20440174.409 20440176.496
+ 49.700 48.400
+ -23059500.060 7 -17968443.690 7 20774604.243 20774602.995 20774603.255
+ 45.700 45.700
+ -13056546.128 6 -10173930.665 5 22071983.257 22071982.767 22071982.504
+ 41.100 32.600
+ -16040681.725 7 -12499236.090 6 21716944.364 21716943.402 21716943.321
+ 43.200 37.800
+ -5427451.184 4 -4229182.247 3 23890984.701 23890982.775 23890983.861
+ 28.100 23.000
+ -6232114.576 4 -4856191.128 3 23301980.788 23301981.099 23301980.586
+ 28.800 23.400
+ 06 1 1 14 25 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5326219.658 4 -4150311.280 3 23591909.651 23591909.282 23591909.587
+ 27.600 23.000
+ -22014241.262 8 -17153951.251 8 20442795.674 20442791.809 20442793.881
+ 49.800 48.500
+ -23088378.048 7 -17990946.030 7 20769109.101 20769107.629 20769108.053
+ 45.700 45.600
+ -12970467.807 6 -10106856.677 5 22088363.962 22088362.821 22088363.039
+ 41.200 32.100
+ -16122874.132 7 -12563282.132 6 21701303.415 21701302.857 21701302.458
+ 43.200 38.300
+ -5509834.606 4 -4293377.133 3 23875308.026 23875305.954 23875306.923
+ 27.600 22.600
+ -6332899.857 5 -4934725.043 3 23282802.878 23282802.461 23282802.120
+ 30.100 23.400
+ 06 1 1 14 25 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5221949.759 4 -4069062.074 3 23611751.356 23611750.997 23611751.045
+ 25.900 21.100
+ -21999965.274 8 -17142827.115 8 20445512.122 20445508.356 20445510.385
+ 49.900 48.500
+ -23116795.836 7 -18013089.778 7 20763701.184 20763700.003 20763700.244
+ 45.800 45.700
+ -12884109.553 6 -10039564.567 5 22104797.431 22104796.529 22104796.326
+ 40.700 32.100
+ -16204728.988 7 -12627065.131 6 21685726.891 21685726.338 21685725.936
+ 43.100 38.100
+ -5592148.853 4 -4357518.114 3 23859644.223 23859642.346 23859643.189
+ 29.000 23.000
+ -6433532.504 4 -5013140.045 3 23263654.110 23263652.151 23263652.867
+ 29.200 23.400
+ 06 1 1 14 26 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5117520.641 4 -3987688.821 3 23631623.573 23631623.354 23631623.485
+ 25.900 19.300
+ -21985168.490 8 -17131297.167 8 20448327.865 20448324.089 20448326.135
+ 49.800 48.300
+ -23144751.860 7 -18034873.703 7 20758381.402 20758380.221 20758380.410
+ 45.800 45.800
+ -12797473.843 6 -9972056.254 5 22121283.380 22121282.844 22121282.442
+ 40.600 32.300
+ -16286243.399 7 -12690582.860 6 21670215.511 21670214.465 21670214.540
+ 43.800 37.800
+ -5674393.605 4 -4421604.946 3 23843993.061 23843991.615 23843992.480
+ 29.000 22.100
+ -6534009.688 5 -5091433.909 3 23244533.539 23244532.299 23244532.485
+ 30.400 23.000
+ 06 1 1 14 26 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5012935.672 4 -3906194.101 3 23651526.016 23651525.294 23651525.442
+ 27.400 22.100
+ -21969852.184 8 -17119362.395 8 20451242.433 20451238.687 20451240.674
+ 49.700 48.400
+ -23172244.582 7 -18056296.615 7 20753149.697 20753148.544 20753148.652
+ 45.500 45.900
+ -12710562.863 6 -9904333.453 5 22137822.185 22137821.375 22137821.147
+ 40.400 32.300
+ -16367414.750 7 -12753833.274 6 21654768.964 21654768.242 21654767.999
+ 43.800 38.300
+ -5756568.116 4 -4485637.063 4 23828356.593 23828354.616 23828355.414
+ 29.900 24.200
+ -6634328.782 5 -5169604.565 3 23225442.777 23225441.996 23225442.196
+ 31.100 23.800
+ 06 1 1 14 27 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4908198.013 4 -3824580.414 3 23671456.393 23671456.595 23671456.145
+ 26.500 22.100
+ -21954017.304 8 -17107023.539 8 20454255.641 20454252.059 20454253.885
+ 49.700 48.400
+ -23199272.499 7 -18077357.340 7 20748006.373 20748005.266 20748005.428
+ 45.600 45.800
+ -12623379.129 6 -9836398.119 5 22154412.801 22154412.295 22154411.758
+ 40.400 32.400
+ -16448240.610 7 -12816814.464 6 21639388.549 21639387.428 21639387.485
+ 43.800 38.000
+ -5838672.162 4 -4549614.254 4 23812732.178 23812730.669 23812731.232
+ 29.700 26.200
+ -6734486.521 5 -5247649.524 4 23206383.133 23206383.036 23206382.702
+ 31.000 25.600
+ 06 1 1 14 27 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4803310.555 4 -3742850.000 3 23691416.323 23691415.752 23691415.851
+ 28.400 20.500
+ -21937665.055 8 -17094281.537 8 20457367.519 20457363.831 20457365.717
+ 49.800 48.500
+ -23225833.807 7 -18098054.474 7 20742951.966 20742950.877 20742951.028
+ 45.500 45.900
+ -12535924.906 6 -9768252.010 5 22171054.572 22171054.175 22171053.829
+ 40.700 32.600
+ -16528718.179 7 -12879524.265 6 21624074.141 21624073.138 21624073.182
+ 44.000 38.100
+ -5920705.390 4 -4613536.260 4 23797121.379 23797120.090 23797120.474
+ 29.000 24.600
+ -6834480.217 4 -5325566.673 3 23187354.514 23187354.279 23187354.273
+ 29.200 23.400
+ 06 1 1 14 28 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4698276.910 4 -3661005.672 3 23711403.551 23711403.643 23711403.262
+ 27.900 23.800
+ -21920796.768 8 -17081137.427 8 20460577.593 20460573.814 20460575.708
+ 49.800 48.600
+ -23251927.332 7 -18118387.102 7 20737986.435 20737985.455 20737985.541
+ 45.600 46.000
+ -12448202.569 6 -9699896.986 5 22187747.900 22187747.060 22187746.718
+ 40.300 32.000
+ -16608845.153 7 -12941960.869 6 21608826.191 21608825.519 21608825.331
+ 43.900 38.400
+ -6002667.059 5 -4677402.506 4 23781524.950 23781523.355 23781523.739
+ 30.100 25.300
+ -6934306.790 4 -5403353.572 3 23168359.125 23168357.971 23168358.385
+ 29.900 23.000
+ 06 1 1 14 28 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4593100.043 4 -3579049.735 3 23731418.056 23731417.758 23731417.524
+ 25.600 21.100
+ -21903413.506 8 -17067592.040 8 20463885.448 20463881.730 20463883.693
+ 49.800 48.500
+ -23277551.268 7 -18138353.818 7 20733110.648 20733109.414 20733109.659
+ 45.600 46.000
+ -12360214.502 6 -9631334.900 5 22204491.228 22204490.529 22204490.406
+ 40.300 31.100
+ -16688618.604 7 -13004122.015 6 21593645.697 21593644.821 21593644.858
+ 43.900 37.800
+ -6084556.749 5 -4741212.691 4 23765942.576 23765940.213 23765941.591
+ 31.000 24.600
+ -7033963.669 4 -5481008.287 3 23149395.971 23149393.751 23149394.379
+ 29.900 22.100
+ 06 1 1 14 29 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4487783.048 4 -3496984.621 3 23751458.755 23751458.702 23751458.554
+ 24.600 18.600
+ -21885516.319 8 -17053646.189 8 20467291.047 20467287.446 20467289.286
+ 49.800 48.500
+ -23302704.543 7 -18157953.792 7 20728323.919 20728322.841 20728323.082
+ 45.700 46.000
+ -12271963.055 6 -9562567.595 5 22221285.139 22221284.432 22221284.117
+ 40.200 31.300
+ -16768035.737 7 -13066005.500 6 21578533.268 21578532.498 21578532.361
+ 44.000 38.100
+ -6166374.228 4 -4804966.594 4 23750372.932 23750371.040 23750371.977
+ 29.700 25.300
+ -7133447.735 5 -5558528.335 3 23130463.875 23130462.929 23130462.821
+ 30.100 23.400
+ 06 1 1 14 29 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4382329.273 4 -3414812.898 2 23771526.403 23771526.159 23771526.035
+ 25.300 17.000
+ -21867106.530 8 -17039300.906 8 20470794.279 20470790.701 20470792.456
+ 49.500 48.400
+ -23327385.407 7 -18177185.648 7 20723627.428 20723626.250 20723626.522
+ 45.600 45.900
+ -12183450.520 6 -9493596.830 5 22238128.462 22238127.891 22238127.703
+ 40.500 30.600
+ -16847094.156 7 -13127609.466 6 21563489.067 21563488.267 21563488.140
+ 44.000 38.600
+ -6248119.023 4 -4868663.831 4 23734817.100 23734815.373 23734816.182
+ 28.800 24.900
+ -7232756.148 5 -5635911.535 4 23111565.249 23111565.186 23111564.949
+ 31.500 24.200
+ 06 1 1 14 30 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4276741.784 4 -3332536.994 2 23791618.639 23791618.776 23791618.377
+ 24.600 17.800
+ -21848185.467 8 -17024557.232 8 20474394.834 20474391.298 20474392.995
+ 49.500 48.400
+ -23351592.267 7 -18196048.146 7 20719020.907 20719019.869 20719020.042
+ 45.700 45.900
+ -12094679.329 6 -9424424.524 5 22255021.072 22255020.545 22255020.166
+ 39.800 31.000
+ -16925791.409 7 -13188931.998 6 21548513.645 21548512.685 21548512.578
+ 44.000 39.100
+ -6329790.569 4 -4932304.010 4 23719275.107 23719274.014 23719274.379
+ 29.700 24.900
+ -7331885.529 5 -5713155.217 3 23092701.862 23092701.241 23092701.461
+ 31.000 23.800
+ 06 1 1 14 30 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4171023.772 4 -3250159.390 2 23811737.295 23811736.339 23811736.724
+ 24.900 17.000
+ -21828754.260 8 -17009416.043 8 20478092.462 20478088.894 20478090.637
+ 49.400 48.300
+ -23375323.588 7 -18214540.099 7 20714505.119 20714503.939 20714504.108
+ 45.300 45.800
+ -12005651.729 6 -9355052.427 5 22271962.989 22271961.758 22271961.937
+ 40.200 30.600
+ -17004124.669 7 -13249970.905 6 21533607.290 21533606.610 21533606.270
+ 44.100 39.300
+ -6411388.626 5 -4995886.929 3 23703748.392 23703746.131 23703747.381
+ 30.200 23.000
+ -7430833.701 5 -5790257.716 3 23073873.376 23073872.174 23073872.358
+ 31.000 23.800
+ 06 1 1 14 31 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4065178.367 4 -3167682.499 3 23831878.163 23831878.491 23831878.088
+ 25.300 22.100
+ -21808814.297 8 -16993878.421 8 20481887.004 20481883.364 20481885.089
+ 49.500 48.300
+ -23398577.938 7 -18232660.390 7 20710079.785 20710078.779 20710078.817
+ 45.400 45.800
+ -11916370.175 6 -9285482.428 5 22288951.915 22288951.651 22288951.194
+ 39.400 30.200
+ -17082091.162 7 -13310724.018 6 21518770.552 21518769.833 21518769.568
+ 44.200 38.800
+ -6492912.501 5 -5059412.056 4 23688234.853 23688232.474 23688233.951
+ 31.500 24.200
+ -7529597.433 5 -5867216.508 3 23055079.161 23055077.960 23055078.112
+ 30.200 23.800
+ 06 1 1 14 31 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3959208.736 4 -3085108.846 3 23852043.581 23852043.994 23852043.454
+ 25.300 22.600
+ -21788366.646 8 -16977945.200 8 20485778.058 20485774.437 20485776.258
+ 49.600 48.300
+ -23421354.179 7 -18250408.125 7 20705745.724 20705744.582 20705744.756
+ 45.400 45.800
+ -11826836.950 6 -9215716.343 5 22305990.180 22305989.363 22305989.066
+ 39.500 30.400
+ -17159688.277 7 -13371189.317 6 21504004.581 21504003.433 21504003.494
+ 44.400 38.900
+ -6574361.693 5 -5122878.955 3 23672735.353 23672733.471 23672734.244
+ 30.800 23.400
+ -7628173.968 5 -5944029.437 4 23036320.520 23036319.805 23036319.405
+ 30.800 24.600
+ 06 1 1 14 32 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3853118.079 4 -3002440.874 3 23872232.267 23872232.508 23872232.011
+ 27.400 21.600
+ -21767412.726 8 -16961617.485 8 20489765.381 20489761.924 20489763.703
+ 49.900 48.300
+ -23443650.405 7 -18267781.825 7 20701502.978 20701501.787 20701502.101
+ 45.600 45.700
+ -11737054.456 6 -9145756.009 5 22323074.734 22323074.480 22323073.875
+ 39.000 30.600
+ -17236913.855 7 -13431365.092 6 21489308.766 21489308.201 21489307.847
+ 44.500 39.200
+ -6655735.925 4 -5186287.449 4 23657249.711 23657248.425 23657248.922
+ 29.700 24.900
+ -7726560.333 5 -6020694.171 3 23017597.625 23017597.581 23017597.165
+ 30.400 23.000
+ 06 1 1 14 32 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3746909.397 4 -2919680.939 3 23892442.852 23892443.390 23892442.669
+ 24.200 23.000
+ -21745953.933 8 -16944896.366 8 20493849.119 20493845.433 20493847.308
+ 49.900 48.400
+ -23465465.504 7 -18284780.621 7 20697351.788 20697350.544 20697350.774
+ 45.500 45.800
+ -11647025.117 6 -9075603.343 5 22340206.917 22340207.130 22340206.048
+ 38.700 31.800
+ -17313764.754 7 -13491248.922 6 21474684.795 21474683.784 21474683.785
+ 44.900 39.100
+ -6737034.519 5 -5249636.977 4 23641779.808 23641778.032 23641778.702
+ 30.600 27.100
+ -7824753.508 5 -6097208.384 4 22998912.235 22998911.805 22998911.759
+ 31.300 24.900
+ 06 1 1 14 33 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3640586.152 3 -2836831.709 3 23912675.899 23912675.570 23912675.592
+ 21.600 19.900
+ -21723991.526 8 -16927782.818 8 20498028.431 20498024.771 20498026.666
+ 49.800 48.300
+ -23486797.936 7 -18301403.316 7 20693292.373 20693291.218 20693291.329
+ 45.500 46.100
+ -11556750.977 6 -9005259.920 5 22357385.401 22357385.234 22357384.539
+ 38.400 31.300
+ -17390238.706 7 -13550839.020 6 21460132.088 21460131.400 21460131.109
+ 44.700 39.300
+ -6818257.267 5 -5312927.392 4 23626323.182 23626321.892 23626322.417
+ 32.100 27.900
+ -7922750.569 5 -6173569.753 4 22980264.772 22980263.875 22980263.803
+ 32.100 25.600
+ 06 1 1 14 33 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3534151.237 3 -2753895.529 2 23932929.516 23932929.657 23932929.077
+ 22.600 17.800
+ -21701526.561 8 -16910277.668 8 20502303.407 20502299.673 20502301.503
+ 49.800 48.100
+ -23507646.338 7 -18317648.837 7 20689324.821 20689323.963 20689323.902
+ 45.300 46.200
+ -11466234.517 6 -8934727.671 5 22374610.213 22374610.207 22374609.365
+ 38.600 30.400
+ -17466332.625 7 -13610132.994 6 21445652.196 21445651.247 21445651.100
+ 44.600 39.400
+ -6899403.671 4 -5376158.319 4 23610881.749 23610880.185 23610880.762
+ 29.700 28.100
+ -8020548.719 5 -6249776.132 4 22961654.233 22961653.172 22961653.449
+ 32.700 24.200
+ 06 1 1 14 34 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3427608.057 4 -2670874.894 2 23953204.497 23953203.731 23953204.357
+ 26.200 16.100
+ -21678560.723 8 -16892382.229 8 20506673.576 20506669.930 20506671.769
+ 49.800 48.100
+ -23528009.589 7 -18333516.323 7 20685449.935 20685448.993 20685448.956
+ 45.300 46.100
+ -11375478.097 6 -8864008.441 5 22391880.692 22391880.452 22391879.817
+ 38.900 30.400
+ -17542044.517 7 -13669129.280 6 21431244.558 21431243.515 21431243.614
+ 45.100 39.100
+ -6980473.159 4 -5439329.295 4 23595454.455 23595453.044 23595453.282
+ 29.000 27.400
+ -8118144.976 5 -6325825.185 4 22943081.335 22943081.263 22943081.221
+ 32.600 24.900
+ 06 1 1 14 34 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3320959.360 4 -2587772.070 2 23973498.838 23973498.366 23973498.608
+ 24.900 17.800
+ -21655095.249 8 -16874097.461 8 20511139.029 20511135.322 20511137.109
+ 49.800 48.000
+ -23547885.839 7 -18349004.329 7 20681667.664 20681666.609 20681666.686
+ 45.200 46.100
+ -11284483.677 6 -8793103.751 5 22409196.776 22409196.222 22409195.675
+ 38.700 30.400
+ -17617371.631 7 -13727825.748 6 21416910.659 21416909.393 21416909.580
+ 45.400 39.500
+ -7061465.304 5 -5502440.015 4 23580041.751 23580040.679 23580040.823
+ 30.100 26.200
+ -8215536.683 5 -6401714.827 4 22924548.105 22924548.442 22924547.947
+ 32.400 26.500
+ 06 1 1 14 35 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3214208.436 4 -2504589.569 2 23993813.302 23993812.354 23993812.764
+ 25.300 12.600
+ -21631131.592 8 -16855424.503 8 20515698.997 20515695.452 20515697.213
+ 49.800 48.000
+ -23567273.787 7 -18364111.838 7 20677978.135 20677977.317 20677977.230
+ 45.000 46.100
+ -11193253.730 6 -8722015.549 4 22426556.967 22426556.718 22426556.178
+ 38.400 29.900
+ -17692311.098 7 -13786220.149 6 21402649.868 21402648.928 21402648.969
+ 45.200 39.800
+ -7142379.599 5 -5565490.080 4 23564644.768 23564643.081 23564643.786
+ 30.200 25.600
+ -8312720.434 5 -6477442.402 4 22906056.083 22906055.085 22906055.098
+ 33.400 27.400
+ 06 1 1 14 35 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3107358.467 4 -2421329.886 2 24014146.075 24014145.566 24014145.594
+ 24.900 17.800
+ -21606671.170 8 -16836364.450 8 20520353.766 20520350.140 20520351.997
+ 49.700 48.000
+ -23586172.362 7 -18378838.017 7 20674382.047 20674381.010 20674381.051
+ 45.200 46.100
+ -11101790.724 6 -8650745.721 5 22443961.879 22443961.433 22443961.011
+ 39.000 30.200
+ -17766860.378 7 -13844310.511 6 21388463.672 21388462.597 21388462.589
+ 45.000 39.700
+ -7223215.647 5 -5628479.183 4 23549262.008 23549260.432 23549260.950
+ 31.300 26.800
+ -8409693.205 5 -6553005.576 4 22887602.031 22887601.543 22887601.267
+ 33.400 24.600
+ 06 1 1 14 36 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3000412.726 4 -2337995.617 2 24034497.314 24034497.012 24034496.993
+ 26.200 17.800
+ -21581715.167 8 -16816918.234 7 20525102.801 20525099.092 20525100.995
+ 49.700 47.900
+ -23604580.288 7 -18393181.879 7 20670879.210 20670878.018 20670878.267
+ 45.400 46.100
+ -11010096.874 6 -8579296.019 4 22461411.078 22461410.322 22461410.139
+ 39.200 29.200
+ -17841016.987 7 -13902094.884 6 21374351.870 21374351.196 21374350.898
+ 44.700 40.000
+ -7303973.002 5 -5691406.964 4 23533894.342 23533892.585 23533893.294
+ 30.600 24.600
+ -8506452.727 5 -6628402.574 4 22869189.232 22869188.704 22869188.633
+ 32.100 25.600
+ 06 1 1 14 36 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2893374.250 3 -2254589.070 3 24054866.084 24054865.694 24054865.803
+ 22.600 19.900
+ -21556265.176 8 -16797087.093 7 20529945.736 20529942.075 20529943.919
+ 49.500 47.800
+ -23622496.254 7 -18407142.389 7 20667469.973 20667468.738 20667469.067
+ 45.400 46.200
+ -10918174.422 6 -8507668.176 4 22478903.303 22478902.317 22478902.444
+ 39.100 29.500
+ -17914778.261 7 -13959571.214 6 21360315.865 21360314.817 21360314.837
+ 45.300 39.800
+ -7384650.872 5 -5754272.835 3 23518541.891 23518539.482 23518540.896
+ 30.400 22.600
+ -8602995.806 5 -6703630.886 4 22850816.642 22850817.289 22850816.758
+ 32.300 25.600
+ 06 1 1 14 37 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2786246.196 4 -2171112.724 2 24075252.121 24075251.774 24075251.738
+ 24.900 16.100
+ -21530322.614 8 -16776872.130 7 20534882.366 20534878.749 20534880.553
+ 49.500 47.600
+ -23639918.740 7 -18420718.372 7 20664154.647 20664153.395 20664153.706
+ 45.300 45.900
+ -10826025.798 6 -8435864.102 5 22496438.713 22496438.230 22496437.652
+ 38.800 30.400
+ -17988141.332 7 -14016737.256 6 21346355.117 21346354.340 21346354.132
+ 45.100 40.200
+ -7465248.866 5 -5817076.469 4 23503204.624 23503202.880 23503203.695
+ 31.000 25.300
+ -8699319.555 5 -6778688.284 4 22832488.081 22832487.511 22832487.203
+ 31.800 26.500
+ 06 1 1 14 37 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2679031.504 4 -2087568.859 2 24095654.430 24095653.842 24095653.848
+ 24.200 13.900
+ -21503888.762 8 -16756274.346 7 20539912.635 20539908.988 20539910.799
+ 49.500 47.700
+ -23656846.247 7 -18433908.662 7 20660933.291 20660932.321 20660932.404
+ 45.400 46.100
+ -10733653.075 6 -8363885.404 4 22514016.205 22514016.044 22514015.601
+ 38.300 29.700
+ -18061103.902 7 -14073591.221 6 21332471.033 21332469.989 21332470.017
+ 45.400 40.000
+ -7545766.477 4 -5879817.458 4 23487883.004 23487881.137 23487881.741
+ 29.700 27.400
+ -8795421.291 5 -6853572.682 4 22814201.284 22814200.095 22814199.889
+ 32.600 27.100
+ 06 1 1 14 38 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2571733.438 4 -2003960.019 3 24116071.975 24116072.596 24116071.691
+ 24.600 21.100
+ -21476965.303 8 -16735295.044 7 20545036.091 20545032.405 20545034.162
+ 49.500 47.700
+ -23673278.170 7 -18446712.778 7 20657806.607 20657805.469 20657805.569
+ 45.200 46.200
+ -10641058.492 6 -8291733.840 4 22531636.793 22531636.287 22531635.651
+ 37.700 29.500
+ -18133662.836 7 -14130130.660 6 21318663.146 21318662.525 21318662.195
+ 45.300 40.300
+ -7626203.586 5 -5942495.704 4 23472576.104 23472575.097 23472575.235
+ 31.100 29.500
+ -8891297.847 5 -6928281.629 4 22795954.599 22795954.736 22795954.699
+ 33.200 25.300
+ 06 1 1 14 38 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2464355.043 3 -1920288.630 3 24136505.252 24136506.630 24136504.758
+ 19.900 22.600
+ -21449553.552 8 -16713935.258 7 20550252.359 20550248.770 20550250.451
+ 49.200 47.600
+ -23689212.837 7 -18459129.421 7 20654774.157 20654773.142 20654773.192
+ 45.100 46.200
+ -10548244.385 6 -8219411.195 4 22549298.845 22549298.280 22549297.851
+ 37.800 29.500
+ -18205816.453 7 -14186354.270 6 21304933.208 21304932.251 21304932.172
+ 45.800 40.300
+ -7706559.428 5 -6005110.631 4 23457284.850 23457283.449 23457283.819
+ 31.800 28.600
+ -8986946.671 5 -7002813.123 4 22777753.303 22777753.487 22777753.190
+ 34.100 25.900
+ 06 1 1 14 39 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2356899.285 3 -1836557.000 3 24156953.322 24156954.681 24156953.370
+ 19.900 22.100
+ -21421655.137 8 -16692196.257 7 20555560.932 20555557.657 20555559.214
+ 49.300 47.500
+ -23704649.202 7 -18471157.779 7 20651836.725 20651835.669 20651835.781
+ 45.000 46.100
+ -10455212.874 6 -8146919.164 4 22567001.280 22567001.418 22567000.518
+ 37.100 28.600
+ -18277561.806 7 -14242259.750 6 21291280.399 21291279.639 21291279.407
+ 46.000 40.500
+ -7786833.462 5 -6067661.833 4 23442008.763 23442007.776 23442007.915
+ 32.000 29.000
+ -9082364.504 5 -7077164.624 4 22759597.243 22759596.068 22759596.041
+ 33.200 25.300
+ 06 1 1 14 39 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2249369.647 3 -1752767.757 3 24177416.099 24177416.023 24177415.955
+ 20.500 20.500
+ -21393271.290 8 -16670078.991 7 20560962.244 20560958.917 20560960.544
+ 49.100 47.400
+ -23719585.464 7 -18482796.448 7 20648994.202 20648993.422 20648993.370
+ 44.800 46.100
+ -10361966.473 6 -8074259.675 4 22584746.607 22584745.485 22584745.546
+ 37.900 27.600
+ -18348895.882 7 -14297844.757 6 21277705.993 21277705.080 21277705.103
+ 46.000 40.300
+ -7867025.022 5 -6130148.783 4 23426749.831 23426747.600 23426748.721
+ 33.000 28.400
+ -9177548.457 5 -7151333.906 4 22741484.693 22741482.964 22741483.464
+ 32.800 24.900
+ 06 1 1 14 40 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2141768.872 3 -1668923.100 3 24197891.887 24197892.202 24197891.751
+ 22.100 19.900
+ -21364403.580 8 -16647584.691 7 20566455.705 20566452.261 20566453.915
+ 49.200 47.300
+ -23734020.869 7 -18494044.838 7 20646247.423 20646246.503 20646246.453
+ 45.000 46.100
+ -10268507.567 6 -8001434.592 4 22602530.465 22602530.725 22602529.684
+ 37.600 28.800
+ -18419816.420 7 -14353107.528 6 21264210.021 21264209.338 21264209.130
+ 46.000 40.500
+ -7947133.927 5 -6192571.322 4 23411504.390 23411503.566 23411503.680
+ 32.600 27.900
+ -9272495.817 5 -7225318.832 4 22723415.054 22723415.293 22723415.088
+ 33.900 26.200
+ 06 1 1 14 40 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2034100.277 3 -1585025.558 3 24218381.054 24218381.490 24218380.479
+ 22.600 19.300
+ -21335053.632 8 -16624714.619 7 20572040.760 20572037.451 20572038.932
+ 49.000 47.300
+ -23747954.311 7 -18504902.085 7 20643596.080 20643595.125 20643595.144
+ 45.100 46.200
+ -10174838.181 6 -7928445.534 4 22620355.511 22620354.958 22620354.563
+ 37.200 27.900
+ -18490320.949 7 -14408046.132 6 21250793.607 21250792.836 21250792.667
+ 45.800 40.500
+ -8027159.460 5 -6254928.892 4 23396276.745 23396275.261 23396275.731
+ 33.000 28.400
+ -9367203.585 5 -7299117.041 4 22705392.901 22705393.102 22705392.730
+ 34.000 27.600
+ 06 1 1 14 41 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -1926366.815 4 -1501077.498 3 24238882.021 24238881.908 24238881.875
+ 26.800 19.900
+ -21305222.907 8 -16601469.915 7 20577717.398 20577714.013 20577715.554
+ 48.900 47.200
+ -23761384.341 7 -18515367.063 7 20641040.293 20641039.551 20641039.388
+ 45.100 46.300
+ -10080960.470 6 -7855294.112 4 22638220.193 22638219.681 22638219.164
+ 37.700 28.400
+ -18560406.937 7 -14462658.600 6 21237456.594 21237455.848 21237455.596
+ 45.700 40.800
+ -8107101.071 5 -6317221.097 4 23381064.115 23381062.594 23381063.171
+ 32.600 27.100
+ -9461669.015 5 -7372726.455 4 22687417.995 22687416.689 22687416.588
+ 33.000 26.500
+ 06 1 1 14 41 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -1818571.817 4 -1417081.433 2 24259395.196 24259394.648 24259394.719
+ 27.400 13.900
+ -21274913.043 8 -16577851.859 7 20583485.112 20583481.841 20583483.354
+ 49.000 47.200
+ -23774309.859 7 -18525438.914 7 20638580.834 20638579.845 20638579.870
+ 45.100 46.100
+ -9986876.693 6 -7781982.117 4 22656123.636 22656123.281 22656122.659
+ 37.800 28.400
+ -18630071.719 7 -14516942.858 6 21224199.993 21224199.131 21224198.935
+ 45.800 40.600
+ -8186958.467 5 -6379447.655 4 23365867.939 23365866.611 23365866.826
+ 31.800 28.100
+ -9555889.301 5 -7446144.839 4 22669487.597 22669487.185 22669487.028
+ 33.100 27.100
+ 06 1 1 14 42 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -1710717.960 3 -1333039.513 1 24279918.218 24279918.148 24279918.038
+ 23.800 11.000
+ -21244125.434 8 -16553861.525 7 20589343.820 20589340.495 20589342.045
+ 49.100 46.900
+ -23786729.864 7 -18535116.856 7 20636217.405 20636216.338 20636216.463
+ 45.200 46.100
+ -9892589.053 6 -7708511.299 4 22674066.233 22674065.929 22674065.047
+ 37.400 27.900
+ -18699312.342 7 -14570896.599 6 21211023.799 21211023.114 21211022.847
+ 46.000 41.000
+ -8266730.857 5 -6441607.962 4 23350687.742 23350686.498 23350686.843
+ 32.800 29.000
+ -9649861.050 5 -7519369.570 4 22651604.858 22651604.959 22651604.642
+ 34.000 26.800
+ 06 1 1 14 42 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -1602808.629 3 -1248954.361 2 24300452.873 24300453.324 24300452.442
+ 23.400 15.100
+ -21212861.760 8 -16529500.236 7 20595293.344 20595289.727 20595291.521
+ 49.200 46.900
+ -23798643.391 7 -18544400.141 7 20633950.516 20633949.380 20633949.507
+ 45.000 46.300
+ -9798099.885 6 -7634883.419 4 22692046.730 22692046.329 22692045.766
+ 37.000 28.400
+ -18768126.535 7 -14624518.059 6 21197929.103 21197928.384 21197928.080
+ 46.000 41.100
+ -8346417.827 5 -6503701.720 4 23335523.840 23335522.432 23335522.654
+ 32.600 29.200
+ -9743581.747 5 -7592398.666 4 22633770.617 22633770.534 22633770.127
+ 33.800 27.900
+ 06 1 1 14 43 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -1494846.784 3 -1164828.336 1 24320997.548 24320997.710 24320997.180
+ 19.900 11.000
+ -21181123.483 8 -16504769.124 7 20601333.044 20601329.280 20601331.171
+ 49.500 46.800
+ -23810049.251 7 -18553287.841 7 20631779.861 20631779.009 20631778.925
+ 45.100 46.200
+ -9703411.307 6 -7561100.182 4 22710064.893 22710065.214 22710064.078
+ 36.800 28.100
+ -18836511.717 7 -14677805.227 6 21184915.932 21184915.062 21184914.864
+ 46.300 41.000
+ -8426018.827 5 -6565728.466 4 23320375.905 23320374.518 23320375.114
+ 31.800 28.400
+ -9837048.486 5 -7665229.876 4 22615985.305 22615984.498 22615984.454
+ 34.500 28.800
+ 06 1 1 14 43 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -1386835.222 2 -1080663.540 2 24341551.296 24341552.017 24341550.878
+ 17.000 13.900
+ -21148912.267 8 -16479669.489 7 20607462.559 20607458.911 20607460.795
+ 49.600 46.800
+ -23820946.177 7 -18561778.966 7 20629706.208 20629705.420 20629705.286
+ 45.100 46.300
+ -9608525.586 6 -7487163.318 4 22728121.686 22728121.251 22728120.536
+ 36.500 28.100
+ -18904464.971 7 -14730755.827 6 21171984.698 21171983.891 21171983.757
+ 46.000 41.000
+ -8505533.327 5 -6627687.833 4 23305245.427 23305243.314 23305244.388
+ 32.800 27.900
+ -9930258.328 5 -7737860.904 4 22598247.964 22598247.103 22598247.300
+ 34.700 28.100
+ 06 1 1 14 44 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1278777.389 3 -996462.707 1 24362114.757 24362114.663 24362114.421
+ 22.100 11.000
+ -21116229.711 8 -16454202.576 7 20613681.836 20613678.270 20613680.052
+ 49.500 46.800
+ -23831333.186 7 -18569872.752 7 20627729.577 20627728.885 20627728.700
+ 45.200 46.300
+ -9513444.764 6 -7413074.432 4 22746214.896 22746215.050 22746214.073
+ 36.200 28.400
+ -119274.029 3 -92941.392 3 24765775.742 24765775.894 24765775.092
+ 19.300 22.100
+ -18971984.169 7 -14783368.199 6 21159136.305 21159135.286 21159135.241
+ 45.900 40.600
+ -8584960.741 5 -6689579.335 4 23290130.553 23290129.006 23290129.597
+ 32.700 28.600
+ -10023208.734 5 -7810289.782 4 22580560.409 22580558.808 22580559.382
+ 34.300 26.800
+ 06 1 1 14 44 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1170676.180 3 -912228.086 2 24382684.772 24382686.159 24382684.643
+ 19.300 17.000
+ -21083077.660 8 -16428369.827 7 20619990.534 20619986.897 20619988.634
+ 49.400 46.700
+ -23841209.048 7 -18577568.243 7 20625850.356 20625849.562 20625849.413
+ 45.100 46.300
+ -9418171.168 5 -7338835.326 4 22764344.258 22764344.711 22764343.688
+ 35.600 27.600
+ -174470.264 4 -135951.458 3 24755272.978 24755271.492 24755272.267
+ 24.900 21.600
+ -19039066.911 7 -14835640.478 6 21146370.996 21146369.841 21146369.961
+ 46.200 40.700
+ -8664300.558 5 -6751402.569 4 23275032.935 23275031.224 23275031.962
+ 33.200 27.900
+ -10115896.361 5 -7882513.898 4 22562921.711 22562921.039 22562921.246
+ 34.400 27.900
+ 06 1 1 14 45 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1062534.616 3 -827962.020 1 24403264.175 24403264.410 24403263.829
+ 23.000 11.000
+ -21049457.215 8 -16402172.093 7 20626388.096 20626384.745 20626386.405
+ 49.400 46.700
+ -23850572.774 7 -18584864.667 7 20624068.559 20624067.675 20624067.639
+ 45.100 46.300
+ -9322706.881 6 -7264447.647 4 22782511.263 22782511.633 22782510.252
+ 36.200 28.400
+ -229208.883 3 -178604.960 3 24744856.477 24744855.102 24744855.854
+ 22.600 19.300
+ -19105710.560 7 -14887570.606 6 21133689.060 21133688.160 21133688.097
+ 46.600 40.900
+ -8743552.174 5 -6813157.058 5 23259952.167 23259950.175 23259951.173
+ 33.900 30.400
+ -10208318.425 5 -7954531.071 4 22545334.115 22545333.930 22545333.764
+ 34.400 27.600
+ 06 1 1 14 45 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -954355.967 3 -743666.975 2 24423849.767 24423850.317 24423849.794
+ 22.600 16.100
+ -21015370.338 8 -16375610.909 7 20632874.797 20632871.267 20632873.001
+ 49.200 46.700
+ -23859423.493 7 -18591761.345 7 20622384.506 20622383.414 20622383.522
+ 45.100 46.200
+ -9227054.317 6 -7189913.252 4 22800713.985 22800713.367 22800712.747
+ 36.100 27.400
+ -283487.954 4 -220900.382 3 24734527.330 24734527.011 24734526.452
+ 24.200 23.000
+ -19171912.175 7 -14939156.293 6 21121091.256 21121090.454 21121090.211
+ 46.300 41.000
+ -8822714.999 5 -6874842.364 4 23244888.117 23244885.918 23244887.107
+ 33.800 29.700
+ -10300472.203 5 -8026339.190 4 22527798.267 22527797.579 22527797.561
+ 34.600 27.600
+ 06 1 1 14 46 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -846143.073 3 -659345.330 3 24444442.388 24444442.821 24444442.041
+ 23.400 19.900
+ -20980818.487 8 -16348687.410 7 20639449.942 20639446.324 20639447.987
+ 49.100 46.600
+ -23867759.959 7 -18598257.312 7 20620797.878 20620797.018 20620797.014
+ 45.000 46.200
+ -9131215.449 5 -7115233.677 4 22818951.058 22818950.492 22818950.009
+ 35.800 26.500
+ -337305.799 4 -262836.419 3 24724286.458 24724285.280 24724285.432
+ 24.600 22.100
+ -19237669.443 7 -14990395.736 6 21108577.909 21108577.208 21108576.906
+ 46.000 40.900
+ -8901788.531 5 -6936458.097 4 23229840.682 23229838.766 23229839.634
+ 33.900 29.700
+ -10392354.730 5 -8097935.950 4 22510314.544 22510312.823 22510313.311
+ 35.300 28.600
+ 06 1 1 14 46 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -737898.998 3 -574999.389 2 24465039.954 24465040.524 24465039.811
+ 23.000 15.100
+ -20945803.563 8 -16321403.077 7 20646112.573 20646109.418 20646110.865
+ 49.000 46.600
+ -23875581.196 7 -18604351.799 7 20619309.513 20619308.772 20619308.642
+ 45.100 46.100
+ -9035192.526 6 -7040410.682 4 22837223.587 22837223.677 22837222.700
+ 36.200 28.400
+ -390660.720 4 -304411.706 3 24714133.757 24714132.319 24714132.736
+ 24.600 21.100
+ -19302980.295 7 -15041287.320 6 21096149.629 21096148.960 21096148.585
+ 46.000 41.000
+ -8980772.140 5 -6998003.775 4 23214810.797 23214808.657 23214809.600
+ 33.100 28.600
+ -10483963.185 5 -8169319.148 4 22492880.680 22492880.559 22492880.285
+ 35.400 28.600
+ 06 1 1 14 47 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -629626.831 3 -490631.531 3 24485643.170 24485644.463 24485643.328
+ 21.600 21.100
+ -20910327.032 8 -16293759.052 7 20652863.786 20652860.425 20652861.835
+ 48.800 46.500
+ -23882886.373 7 -18610044.165 7 20617919.609 20617918.618 20617918.670
+ 45.200 46.200
+ -8938987.676 6 -6965445.942 4 22855530.502 22855531.019 22855529.574
+ 36.100 27.100
+ -443551.260 3 -345625.143 3 24704068.546 24704067.181 24704067.591
+ 19.900 18.600
+ -19367841.774 7 -15091828.740 6 21083807.180 21083806.305 21083806.148
+ 46.300 41.100
+ -9059665.431 5 -7059479.055 4 23199797.541 23199795.508 23199796.555
+ 34.300 27.900
+ -10575294.904 5 -8240486.696 4 22475500.678 22475500.560 22475500.521
+ 35.500 28.100
+ 06 1 1 14 47 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -521329.490 3 -406244.103 3 24506252.302 24506252.910 24506251.935
+ 23.000 19.900
+ -20874390.440 8 -16265756.537 7 20659702.252 20659698.906 20659700.463
+ 48.900 46.400
+ -23889674.604 7 -18615333.712 7 20616627.856 20616626.827 20616626.867
+ 45.000 46.000
+ -8842603.072 6 -6890341.122 4 22873871.988 22873872.537 22873871.156
+ 36.100 26.800
+ -495975.554 3 -386475.223 3 24694092.942 24694092.048 24694092.216
+ 19.300 19.300
+ -19432251.383 7 -15142018.056 6 21071550.289 21071549.441 21071549.268
+ 46.400 41.100
+ -9138467.784 5 -7120883.481 4 23184802.038 23184799.998 23184800.917
+ 33.400 27.900
+ -10666346.626 6 -8311436.083 4 22458175.463 22458173.855 22458174.408
+ 36.000 28.600
+ 06 1 1 14 48 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -413010.037 3 -321839.444 2 24526865.159 24526865.069 24526864.601
+ 23.000 15.100
+ -20837995.693 8 -16237397.020 7 20666627.939 20666624.597 20666626.134
+ 48.900 46.400
+ -23895944.650 7 -18620219.484 7 20615434.538 20615433.686 20615433.652
+ 45.000 46.100
+ -8746040.704 5 -6815097.779 4 22892247.664 22892247.221 22892246.641
+ 35.400 26.500
+ -547931.742 3 -426960.632 2 24684205.295 24684205.340 24684205.090
+ 19.300 17.800
+ -19496206.407 7 -15191853.155 6 21059380.290 21059379.245 21059379.267
+ 46.800 41.500
+ -9217178.704 5 -7182216.664 4 23169823.726 23169821.646 23169822.764
+ 34.100 27.600
+ -10757115.791 5 -8382165.279 4 22440901.268 22440901.085 22440900.949
+ 35.400 29.500
+ 06 1 1 14 48 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -304671.567 3 -237419.932 2 24547481.194 24547481.491 24547480.782
+ 23.000 13.900
+ -20801144.342 8 -16208681.704 7 20673640.527 20673637.180 20673638.731
+ 49.000 46.200
+ -23901695.703 7 -18624700.846 7 20614340.150 20614339.430 20614339.335
+ 45.300 46.100
+ -8649302.841 5 -6739717.690 4 22910656.381 22910656.097 22910655.452
+ 35.900 27.100
+ -599418.420 2 -467080.125 2 24674408.083 24674406.722 24674407.090
+ 17.800 12.600
+ -19559704.810 7 -15241332.439 6 21047296.730 21047295.951 21047295.805
+ 46.800 41.600
+ -9295797.497 5 -7243478.071 4 23154862.826 23154861.159 23154861.839
+ 34.400 28.800
+ -10847599.463 6 -8452671.993 4 22423683.801 22423682.457 22423682.713
+ 36.000 29.000
+ 06 1 1 14 49 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -196317.016 2 -152987.866 1 24568099.805 24568100.636 24568099.823
+ 16.100 11.000
+ -20763838.239 8 -16179612.038 7 20680739.828 20680736.402 20680738.032
+ 49.100 46.300
+ -23906926.986 7 -18628777.192 7 20613344.768 20613344.046 20613343.903
+ 45.300 46.200
+ -8552391.693 5 -6664202.565 4 22929097.486 22929097.470 22929096.630
+ 35.200 25.600
+ -650434.063 3 -506832.628 1 24664699.831 24664698.964 24664698.949
+ 19.900 11.000
+ -19622743.783 7 -15290453.730 6 21035301.020 21035300.035 21035300.024
+ 46.800 41.600
+ -9374323.597 5 -7304667.234 4 23139919.842 23139918.015 23139918.939
+ 35.100 29.000
+ -10937794.872 5 -8522954.109 4 22406519.366 22406518.839 22406518.960
+ 35.900 29.200
+ 06 1 1 14 49 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -87949.365 2 -68545.708 2 24588721.697 24588722.344 24588721.761
+ 15.100 17.800
+ -20726078.906 8 -16150189.206 7 20687925.228 20687921.731 20687923.476
+ 49.400 46.100
+ -23911637.290 7 -18632447.578 7 20612448.643 20612447.653 20612447.666
+ 45.400 46.100
+ -8455309.280 5 -6588553.984 4 22947571.662 22947571.566 22947570.781
+ 35.100 25.600
+ -700976.737 1 -546216.567 1 24655081.520 24655081.087 24655080.683
+ 11.000 6.500
+ -19685321.077 7 -15339215.263 6 21023392.950 21023391.856 21023391.921
+ 46.800 41.400
+ -9452756.265 5 -7365783.593 5 23124994.636 23124993.231 23124993.708
+ 34.500 30.400
+ -11027699.112 5 -8593009.302 4 22389411.125 22389410.489 22389410.651
+ 35.900 28.400
+ 06 1 1 14 50 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 20428.559 3 15904.521 2 24609345.495 24609346.280 24609345.596
+ 18.600 15.100
+ -20687868.133 8 -16120414.596 7 20695196.615 20695193.036 20695194.775
+ 49.200 46.000
+ -23915825.782 7 -18635711.358 7 20611651.644 20611650.572 20611650.665
+ 45.300 46.100
+ -8358057.819 5 -6512773.683 4 22966078.632 22966078.518 22966077.376
+ 34.700 27.100
+ -751044.868 3 -585230.803 2 24645554.226 24645553.454 24645553.733
+ 18.600 13.900
+ -19747434.055 7 -15387614.998 6 21011573.185 21011572.158 21011572.169
+ 46.600 41.600
+ -9531095.151 5 -7426826.856 5 23110086.916 23110086.053 23110086.063
+ 33.500 31.600
+ -11117309.319 5 -8662835.384 4 22372359.486 22372358.356 22372358.686
+ 35.900 29.500
+ 06 1 1 14 50 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 128813.709 3 100360.410 1 24629970.950 24629970.973 24629970.522
+ 21.100 9.000
+ -20649207.738 8 -16090289.631 7 20702553.300 20702549.818 20702551.508
+ 49.200 46.000
+ -23919492.022 7 -18638568.186 7 20610953.831 20610952.928 20610952.892
+ 45.100 46.100
+ -8260639.352 5 -6436863.258 4 22984616.529 22984616.948 22984615.257
+ 33.900 27.100
+ -800636.971 2 -623873.978 2 24636117.558 24636116.552 24636116.666
+ 17.800 13.900
+ -19809080.352 7 -15435651.085 6 20999842.230 20999841.468 20999841.252
+ 46.700 41.900
+ -9609339.288 5 -7487796.306 5 23095198.187 23095196.532 23095197.143
+ 35.100 31.100
+ -11206622.795 6 -8732430.227 4 22355363.171 22355362.505 22355362.492
+ 36.100 29.700
+ 06 1 1 14 51 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 237202.920 3 184819.468 9 24650597.104 24650596.919 24650596.264
+ 21.100 -3.000
+ -20610099.228 8 -16059815.488 7 20709995.320 20709991.951 20709993.534
+ 49.000 45.900
+ -23922635.002 7 -18641017.280 7 20610355.970 20610354.918 20610354.933
+ 45.100 46.200
+ -8163055.947 5 -6360824.297 4 23003187.376 23003185.942 23003185.868
+ 35.200 26.800
+ -849751.356 3 -662144.967 2 24626770.919 24626770.839 24626770.577
+ 21.600 16.100
+ -19870257.408 7 -15483321.525 6 20988200.890 20988199.786 20988199.810
+ 46.900 41.700
+ -9687488.282 5 -7548691.614 5 23080326.529 23080325.056 23080325.558
+ 34.100 30.200
+ -11295636.481 6 -8801791.471 5 22338424.538 22338423.775 22338423.810
+ 36.400 30.100
+ 06 1 1 14 51 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 345593.355 3 269279.537 9 24671222.859 24671222.637 24671222.330
+ 21.600 -3.000
+ -20570544.597 8 -16028993.707 7 20717522.315 20717518.997 20717520.530
+ 48.900 45.800
+ -23925253.568 7 -18643057.737 7 20609857.606 20609856.672 20609856.635
+ 45.200 46.100
+ -8065309.770 5 -6284658.498 4 23021786.778 23021786.703 23021785.736
+ 34.900 26.200
+ -898386.605 3 -700042.597 2 24617516.106 24617515.149 24617515.527
+ 19.300 12.600
+ -19930962.613 7 -15530624.292 6 20976648.916 20976647.951 20976647.898
+ 46.900 41.800
+ -9765541.816 5 -7609512.540 4 23065473.344 23065472.058 23065472.484
+ 34.800 29.700
+ -11384347.773 6 -8870917.063 4 22321543.258 22321542.418 22321542.687
+ 36.800 29.500
+ 06 1 1 14 52 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 453981.885 2 353737.993 1 24691847.950 24691849.038 24691847.550
+ 13.900 11.000
+ -20530545.427 8 -15997825.539 7 20725134.053 20725130.726 20725132.217
+ 48.900 45.900
+ -23927346.902 7 -18644688.924 7 20609459.180 20609458.369 20609458.217
+ 45.100 46.100
+ -7967402.852 5 -6208367.463 4 23040417.147 23040417.619 23040416.206
+ 34.000 24.600
+ -946540.958 3 -737565.595 2 24608352.608 24608352.096 24608352.000
+ 22.100 15.100
+ -19991193.731 7 -15577557.636 6 20965187.283 20965186.354 20965186.285
+ 46.800 41.900
+ -9843499.161 5 -7670258.511 5 23050638.650 23050637.174 23050637.717
+ 35.200 30.100
+ -11472753.915 6 -8939804.878 5 22304720.222 22304719.417 22304719.433
+ 36.100 30.400
+ 06 1 1 14 52 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 562365.729 2 438192.885 24712473.543 24712473.869 24712472.888
+ 17.800 3.000
+ -20490103.554 8 -15966312.407 7 20732829.846 20732826.545 20732828.005
+ 48.700 46.000
+ -23928914.565 7 -18645910.497 7 20609160.811 20609160.043 20609159.860
+ 45.100 46.000
+ -7869337.357 5 -6131952.840 4 23059079.065 23059078.987 23059078.141
+ 34.500 24.900
+ -994213.342 4 -774712.905 2 24599281.499 24599279.952 24599280.726
+ 24.600 13.900
+ -20050948.384 7 -15624119.711 7 20953816.320 20953815.386 20953815.306
+ 46.900 42.000
+ -9921359.386 5 -7730928.811 5 23035822.257 23035820.692 23035821.465
+ 34.900 30.100
+ -11560852.036 6 -9008452.674 5 22287956.179 22287954.820 22287955.219
+ 37.200 30.200
+ 06 1 1 14 53 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 670741.967 3 522641.783 1 24733096.277 24733097.330 24733096.042
+ 19.300 11.000
+ -20449220.798 8 -15934455.729 7 20740609.520 20740606.313 20740607.681
+ 48.700 45.900
+ -23929955.538 7 -18646721.661 7 20608962.686 20608961.824 20608961.777
+ 45.100 45.800
+ -7771115.448 5 -6055416.354 4 23077770.221 23077770.602 23077769.238
+ 34.000 25.900
+ -1041401.771 3 -811483.192 3 24590301.106 24590301.201 24590300.344
+ 23.400 18.600
+ -20110223.748 7 -15670308.316 7 20942536.503 20942535.701 20942535.518
+ 46.800 42.000
+ -9999122.147 5 -7791523.159 5 23021024.860 23021023.056 23021023.777
+ 34.700 30.600
+ -11648639.298 6 -9076858.258 4 22271250.256 22271249.123 22271249.487
+ 36.800 29.900
+ 06 1 1 14 53 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20407898.897 8 -15902256.857 7 20748472.762 20748469.633 20748470.964
+ 48.600 45.800
+ -23930469.289 7 -18647122.006 7 20608864.897 20608864.062 20608863.965
+ 45.100 45.800
+ -7672739.117 5 -5978759.539 4 23096490.876 23096491.215 23096489.630
+ 34.900 26.500
+ -1088105.038 3 -847875.366 3 24581414.320 24581413.264 24581413.590
+ 23.000 18.600
+ -20169017.674 7 -15716121.771 7 20931348.291 20931347.567 20931347.270
+ 46.500 42.000
+ -10076786.782 5 -7852041.046 5 23006245.545 23006244.115 23006244.576
+ 35.200 31.000
+ -11736112.842 6 -9145019.363 4 22254604.437 22254603.242 22254603.777
+ 37.200 29.500
+ 06 1 1 14 54 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20366139.315 8 -15869716.940 7 20756419.376 20756416.250 20756417.575
+ 48.700 45.800
+ -23930455.094 7 -18647110.960 7 20608867.731 20608866.838 20608866.718
+ 44.900 45.800
+ -7574210.435 5 -5901983.997 4 23115239.862 23115239.640 23115239.171
+ 35.100 24.900
+ -1134321.693 4 -883888.362 2 24572619.484 24572618.505 24572618.790
+ 24.900 17.800
+ -20227327.631 7 -15761558.105 7 20920252.407 20920251.600 20920251.375
+ 46.700 42.300
+ -10154352.735 5 -7912482.029 5 22991485.260 22991484.037 22991484.296
+ 35.600 32.600
+ -11823269.922 6 -9212933.906 4 22238019.040 22238017.705 22238018.344
+ 37.900 29.900
+ 06 1 1 14 54 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20323944.400 8 -15836837.793 7 20764448.892 20764445.719 20764447.016
+ 48.700 45.700
+ -23929911.822 7 -18646687.651 7 20608971.094 20608970.306 20608970.149
+ 45.000 45.900
+ -7475531.394 5 -5825091.285 4 23134017.441 23134017.963 23134016.653
+ 33.500 24.900
+ -1180050.027 4 -919520.897 3 24563917.797 24563917.241 24563917.223
+ 28.400 19.900
+ -20285151.622 7 -15806615.763 7 20909248.827 20909248.159 20909247.853
+ 46.800 42.400
+ -10231819.071 6 -7972845.390 5 22976744.065 22976742.544 22976743.001
+ 36.000 32.700
+ -11910107.915 6 -9280599.804 5 22221494.065 22221493.043 22221493.472
+ 37.700 30.800
+ 06 1 1 14 55 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20281315.479 8 -15803620.466 7 20772560.889 20772557.673 20772559.138
+ 48.800 45.600
+ -23928839.168 7 -18645851.832 7 20609175.185 20609174.440 20609174.297
+ 45.100 45.900
+ -7376703.929 5 -5748082.957 4 23152824.079 23152824.613 23152823.500
+ 33.600 24.900
+ -1225288.632 4 -954771.841 4 24555309.604 24555309.606 24555308.805
+ 28.800 26.800
+ -20342486.808 7 -15851292.537 7 20898338.159 20898337.569 20898337.301
+ 46.900 42.200
+ -10309185.437 5 -8033130.854 5 22962021.371 22962019.933 22962020.522
+ 35.900 31.500
+ -11996623.705 6 -9348014.617 5 22205030.408 22205029.809 22205029.787
+ 36.700 31.000
+ 06 1 1 14 55 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20238254.660 8 -15770066.597 7 20780755.277 20780751.897 20780753.381
+ 48.900 45.600
+ -23927236.675 7 -18644603.154 7 20609480.306 20609479.374 20609479.283
+ 45.100 45.800
+ -7277730.133 5 -5670960.572 3 23171658.181 23171658.454 23171657.241
+ 33.500 23.400
+ -1270036.355 5 -989640.219 3 24546794.372 24546792.941 24546793.649
+ 30.100 23.800
+ -20399330.949 7 -15895586.678 7 20887521.480 20887520.599 20887520.361
+ 47.000 42.700
+ -10386451.129 5 -8093337.899 4 22947318.317 22947316.496 22947317.346
+ 35.900 29.900
+ -12082814.755 6 -9415176.406 5 22188628.561 22188628.122 22188628.095
+ 37.000 31.300
+ 06 1 1 14 56 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20194763.933 8 -15736177.733 7 20789031.194 20789027.826 20789029.354
+ 48.900 45.300
+ -23925103.296 7 -18642940.798 7 20609886.062 20609885.365 20609885.159
+ 45.100 45.700
+ -7178612.149 5 -5593725.832 3 23190519.658 23190520.015 23190518.685
+ 33.100 23.000
+ -1314291.511 4 -1024124.776 3 24538372.800 24538371.639 24538372.108
+ 27.900 23.800
+ -20455681.738 7 -15939496.385 7 20876798.428 20876797.323 20876797.361
+ 47.400 42.400
+ -10463615.472 6 -8153465.946 5 22932634.751 22932632.721 22932633.646
+ 36.000 31.000
+ -12168678.394 6 -9482083.068 5 22172289.345 22172288.394 22172288.837
+ 37.400 30.600
+ 06 1 1 14 56 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20150844.489 8 -15701954.803 7 20797388.931 20797385.498 20797387.016
+ 48.900 45.200
+ -23922438.486 7 -18640864.339 7 20610393.373 20610392.420 20610392.380
+ 45.100 45.700
+ -7079351.976 5 -5516380.317 4 23209408.136 23209409.044 23209407.485
+ 32.800 25.900
+ -1358052.978 4 -1058224.638 4 24530045.396 24530044.597 24530044.718
+ 28.800 25.600
+ -20511536.189 7 -15983019.339 7 20866169.266 20866168.564 20866168.339
+ 47.100 42.500
+ -10540677.800 5 -8213514.521 5 22917970.220 22917968.431 22917969.237
+ 35.900 31.000
+ -12254211.527 6 -9548732.214 5 22156013.733 22156012.102 22156012.721
+ 37.800 30.800
+ 06 1 1 14 57 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20106498.376 8 -15667399.403 7 20805827.769 20805824.182 20805825.916
+ 49.100 45.200
+ -23919241.417 7 -18638373.133 7 20611001.751 20611000.858 20611000.746
+ 45.300 45.700
+ -6979951.507 5 -5438925.490 4 23228324.379 23228324.447 23228323.379
+ 34.100 25.600
+ -1401319.283 4 -1091938.685 4 24521811.958 24521811.532 24521811.202
+ 29.500 26.800
+ -20566892.774 7 -16026154.339 7 20855635.279 20855634.637 20855634.277
+ 46.800 42.800
+ -10617637.492 5 -8273483.105 5 22903325.292 22903323.738 22903324.193
+ 35.800 32.000
+ -12339411.438 6 -9615121.711 5 22139799.010 22139799.314 22139799.111
+ 37.800 31.600
+ 06 1 1 14 57 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20061727.533 8 -15632513.049 7 20814347.238 20814343.950 20814345.405
+ 49.100 45.100
+ -23915511.571 7 -18635466.774 7 20611711.503 20611710.625 20611710.577
+ 45.100 45.600
+ -6880412.822 5 -5361362.929 4 23247265.018 23247265.456 23247264.030
+ 31.300 24.200
+ -1444088.988 4 -1125265.782 4 24513673.233 24513672.537 24513672.328
+ 28.600 25.300
+ -20621749.291 7 -16068899.672 7 20845196.372 20845195.906 20845195.341
+ 46.900 43.100
+ -10694494.032 5 -8333371.316 5 22888699.980 22888698.050 22888698.902
+ 35.900 30.800
+ -12424275.666 6 -9681249.615 5 22123651.678 22123650.060 22123650.423
+ 37.700 31.600
+ 06 1 1 14 58 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20016533.997 8 -15597297.319 7 20822947.304 20822943.948 20822945.512
+ 49.000 45.000
+ -23911248.421 7 -18632144.857 7 20612522.621 20612521.897 20612521.696
+ 45.200 45.600
+ -6780738.104 5 -5283694.390 4 23266233.020 23266232.701 23266232.202
+ 33.500 24.200
+ -1486360.854 4 -1158204.923 4 24505629.343 24505628.793 24505628.708
+ 26.500 25.300
+ -20676103.075 7 -16111253.264 7 20834853.328 20834852.703 20834852.362
+ 47.200 43.000
+ -10771246.526 6 -8393178.454 5 22874094.396 22874092.786 22874093.281
+ 36.500 32.100
+ -12508801.345 6 -9747113.746 5 22107565.844 22107565.194 22107565.452
+ 37.800 31.300
+ 06 1 1 14 58 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19970919.254 8 -15561753.382 7 20831627.518 20831624.277 20831625.684
+ 48.900 45.200
+ -23906451.450 7 -18628406.969 7 20613435.752 20613434.811 20613434.618
+ 45.200 45.800
+ -6680929.215 5 -5205921.301 3 23285225.348 23285226.693 23285224.570
+ 31.800 23.800
+ -1528133.513 4 -1190755.096 4 24497680.099 24497679.502 24497679.229
+ 25.300 26.800
+ -20729951.435 7 -16153213.025 7 20824606.122 20824605.584 20824605.257
+ 47.300 43.000
+ -10847894.427 6 -8452904.101 5 22859508.875 22859507.031 22859507.774
+ 37.100 32.000
+ -12592985.894 6 -9812712.042 5 22091546.457 22091545.275 22091545.613
+ 37.700 31.100
+ 06 1 1 14 59 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19924885.330 8 -15525882.817 7 20840387.508 20840384.122 20840385.607
+ 48.800 45.000
+ -23901120.091 7 -18624252.683 7 20614450.095 20614449.382 20614449.208
+ 45.300 45.700
+ -6580988.149 5 -5128045.233 3 23304244.206 23304244.261 23304243.253
+ 32.400 22.100
+ -1569405.694 3 -1222915.249 4 24489825.900 24489825.679 24489825.337
+ 22.100 27.600
+ -20783292.556 7 -16194777.530 7 20814455.908 20814455.157 20814454.946
+ 47.200 43.000
+ -10924437.228 6 -8512547.848 5 22844943.009 22844941.281 22844942.008
+ 37.100 31.500
+ -12676826.471 6 -9878042.349 5 22075592.061 22075590.950 22075591.368
+ 38.400 31.500
+ 06 1 1 14 59 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19878434.132 8 -15489687.095 7 20849226.900 20849223.540 20849225.081
+ 48.800 44.900
+ -23895253.767 7 -18619681.531 7 20615566.242 20615565.636 20615565.416
+ 45.200 45.600
+ -6480916.974 5 -5050067.743 3 23323286.598 23323287.053 23323285.816
+ 31.600 23.000
+ -1610176.126 4 -1254684.438 4 24482067.713 24482067.372 24482066.994
+ 24.900 28.400
+ -20836123.714 7 -16235944.662 7 20804402.522 20804401.681 20804401.469
+ 47.300 43.100
+ -11000873.863 6 -8572108.885 5 22830397.609 22830395.705 22830396.539
+ 37.100 31.500
+ -12760320.200 6 -9943102.360 5 22059703.982 22059702.554 22059703.019
+ 37.900 31.800
+ 06 1 1 15 0 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19831567.575 8 -15453167.726 7 20858145.354 20858141.913 20858143.512
+ 48.900 44.800
+ -23888852.094 7 -18614693.237 7 20616784.787 20616783.834 20616783.750
+ 45.200 45.500
+ -6380717.646 5 -4971990.407 3 23342354.005 23342354.819 23342353.298
+ 33.000 22.100
+ -1650443.649 3 -1286061.749 4 24474404.741 24474404.972 24474404.194
+ 21.100 28.100
+ -20888442.803 7 -16276712.782 7 20794446.271 20794445.543 20794445.268
+ 47.100 43.000
+ -11077203.971 6 -8631586.904 5 22815872.430 22815870.887 22815871.443
+ 36.500 32.100
+ -12843464.541 6 -10007890.146 5 22043881.367 22043880.719 22043881.092
+ 39.100 31.300
+ 06 1 1 15 0 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19784287.390 8 -15416326.042 7 20867142.341 20867139.194 20867140.556
+ 48.800 44.800
+ -23881914.558 7 -18609287.379 7 20618104.933 20618104.065 20618103.919
+ 45.100 45.500
+ -6280391.997 5 -4893814.638 3 23361447.073 23361446.569 23361445.748
+ 32.300 23.800
+ -1690206.818 2 -1317046.072 4 24466837.597 24466838.046 24466836.837
+ 12.600 25.900
+ -20940247.820 7 -16317080.327 7 20784588.208 20784587.516 20784587.225
+ 47.100 43.000
+ -11153426.670 6 -8690981.216 5 22801367.788 22801366.264 22801366.879
+ 37.300 32.000
+ -12926256.916 6 -10072403.652 5 22028127.025 22028125.893 22028126.137
+ 37.900 32.100
+ 06 1 1 15 1 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19736595.483 8 -15379163.540 7 20876218.069 20876214.638 20876216.088
+ 48.700 44.700
+ -23874440.548 7 -18603463.494 7 20619526.854 20619526.387 20619525.988
+ 45.100 45.500
+ -6179941.919 5 -4815541.910 4 23380561.551 23380562.020 23380560.529
+ 32.300 24.600
+ -1729464.576 2 -1347636.541 3 24459367.014 24459366.073 24459366.485
+ 17.000 23.800
+ -20991536.129 7 -16357045.243 7 20774828.362 20774827.660 20774827.349
+ 47.300 43.300
+ -11229541.145 6 -8750291.201 5 22786883.994 22786882.026 22786882.967
+ 37.700 31.800
+ -13008694.045 6 -10136640.371 5 22012440.040 22012438.483 22012439.131
+ 38.900 31.300
+ 06 1 1 15 1 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19688493.898 8 -15341681.806 7 20885371.362 20885368.115 20885369.526
+ 48.800 44.800
+ -23866429.709 7 -18597221.298 7 20621051.416 20621050.770 20621050.453
+ 45.200 45.400
+ -6079369.388 5 -4737173.767 3 23399699.588 23399699.862 23399698.396
+ 32.600 23.800
+ -1768215.776 2 -1377832.259 4 24451993.917 24451993.354 24451993.495
+ 13.900 24.200
+ -21042305.480 7 -16396605.773 7 20765167.443 20765166.755 20765166.448
+ 47.300 43.600
+ -11305547.046 6 -8809516.599 5 22772420.576 22772418.437 22772419.506
+ 37.600 32.300
+ -13090773.846 6 -10200598.647 5 21996820.008 21996819.343 21996819.646
+ 39.000 31.800
+ 06 1 1 15 2 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19639984.200 8 -15303882.063 7 20894602.416 20894599.220 20894600.642
+ 48.800 44.700
+ -23857881.820 7 -18590560.623 7 20622678.100 20622677.409 20622677.183
+ 45.100 45.400
+ -5978676.535 5 -4658711.864 3 23418861.062 23418860.304 23418859.874
+ 32.100 20.500
+ -1806458.746 2 -1407632.051 9 24444714.720 24444712.053 24444713.561
+ 15.100 -3.000
+ -21092553.818 7 -16435760.325 7 20755605.117 20755604.743 20755604.235
+ 47.000 43.500
+ -11381443.707 6 -8868656.864 5 22757977.837 22757975.839 22757976.698
+ 37.700 31.800
+ -13172493.432 6 -10264276.241 5 21981269.818 21981268.548 21981269.091
+ 39.100 32.000
+ 06 1 1 15 2 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19591068.321 8 -15265765.812 7 20903910.877 20903907.651 20903909.054
+ 48.800 44.800
+ -23848796.231 7 -18583480.962 7 20624407.047 20624406.363 20624406.108
+ 45.100 45.300
+ -5877865.114 5 -4580157.534 3 23438044.494 23438044.816 23438043.598
+ 32.100 23.000
+ -1844193.204 3 -1437035.439 3 24437535.042 24437534.546 24437534.942
+ 18.600 23.000
+ -21142279.078 7 -16474507.281 7 20746142.984 20746142.107 20746141.944
+ 47.100 43.300
+ -11457230.030 6 -8927711.151 5 22743556.221 22743554.399 22743555.143
+ 37.800 32.300
+ -13253850.054 6 -10327671.009 5 21965787.944 21965786.971 21965787.358
+ 39.100 32.600
+ 06 1 1 15 3 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19541748.475 8 -15227334.784 7 20913296.234 20913292.947 20913294.412
+ 48.900 44.600
+ -23839172.623 7 -18575982.066 7 20626238.329 20626237.665 20626237.404
+ 45.400 45.200
+ -5776937.385 5 -4501512.630 3 23457250.085 23457251.081 23457249.241
+ 31.000 23.000
+ -1881417.182 3 -1466041.215 4 24430452.327 24430451.932 24430451.485
+ 19.300 24.900
+ -21191478.588 7 -16512844.564 7 20736780.627 20736779.745 20736779.629
+ 47.100 43.300
+ -11532905.493 6 -8986679.060 5 22729155.046 22729153.808 22729154.231
+ 37.200 32.700
+ -13334841.098 6 -10390780.912 5 21950375.725 21950374.941 21950375.129
+ 39.300 32.700
+ 06 1 1 15 3 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19492026.471 8 -15188590.385 7 20922757.886 20922754.799 20922756.177
+ 48.700 44.600
+ -23829010.379 7 -18568063.453 7 20628172.173 20628171.493 20628171.273
+ 45.100 45.300
+ -5675895.001 5 -4422778.349 3 23476478.666 23476478.308 23476477.588
+ 31.800 21.600
+ -1918129.886 3 -1494648.507 3 24423465.990 24423466.338 24423465.350
+ 18.600 23.000
+ -21240150.417 7 -16550770.666 7 20727518.654 20727517.904 20727517.660
+ 47.000 43.300
+ -11608469.519 6 -9045560.111 5 22714776.171 22714774.488 22714775.234
+ 38.000 33.100
+ -13415463.910 6 -10453603.871 5 21935033.547 21935032.678 21935033.057
+ 39.400 31.800
+ 06 1 1 15 4 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19441904.131 8 -15149534.034 7 20932295.907 20932292.727 20932294.090
+ 48.700 44.400
+ -23818309.390 7 -18559725.039 7 20630208.577 20630207.820 20630207.643
+ 45.200 45.100
+ -5574739.846 5 -4343956.194 3 23495727.607 23495727.652 23495726.851
+ 31.300 19.900
+ -1954330.477 3 -1522856.795 3 24416577.604 24416576.758 24416576.818
+ 21.100 19.300
+ -21288292.288 7 -16588283.812 7 20718357.585 20718356.996 20718356.563
+ 47.200 43.700
+ -11683921.122 6 -9104353.575 5 22700418.101 22700416.742 22700417.236
+ 38.300 33.400
+ -13495715.822 6 -10516137.846 5 21919762.475 21919761.207 21919761.757
+ 39.700 32.700
+ 06 1 1 15 4 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19391383.324 8 -15110167.187 7 20941909.542 20941906.514 20941907.752
+ 48.600 44.400
+ -23807069.269 7 -18550966.527 7 20632347.736 20632346.692 20632346.641
+ 45.200 45.000
+ -5473473.850 5 -4265047.694 3 23514997.545 23514998.025 23514996.797
+ 31.000 23.000
+ -1990017.461 4 -1550664.909 3 24409786.468 24409786.342 24409785.844
+ 24.600 22.600
+ -21335901.936 7 -16625382.241 7 20709297.653 20709297.139 20709296.706
+ 47.200 43.700
+ -11759259.652 6 -9163058.916 5 22686081.683 22686080.037 22686080.698
+ 37.700 33.200
+ -13575594.109 6 -10578380.658 5 21904561.806 21904561.157 21904561.344
+ 39.800 32.400
+ 06 1 1 15 5 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19340466.013 8 -15070491.382 7 20951598.836 20951595.753 20951597.007
+ 48.500 44.200
+ -23795289.674 7 -18541787.639 7 20634589.055 20634588.307 20634588.151
+ 45.300 44.900
+ -5372098.788 5 -4186054.201 4 23534289.248 23534289.512 23534288.053
+ 30.800 24.900
+ -2025189.858 4 -1578071.983 3 24403093.704 24403093.474 24403092.796
+ 24.200 21.100
+ -21382977.440 7 -16662064.459 7 20700339.768 20700338.688 20700338.699
+ 47.300 43.400
+ -11834484.352 6 -9221675.567 5 22671766.794 22671765.225 22671765.795
+ 37.500 32.700
+ -13655096.200 6 -10640330.349 5 21889433.725 21889432.397 21889432.902
+ 39.700 32.400
+ 06 1 1 15 5 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19289154.234 8 -15030508.194 7 20961363.330 20961360.051 20961361.389
+ 48.400 44.000
+ -23782970.435 7 -18532188.253 7 20636933.322 20636932.575 20636932.379
+ 45.100 44.800
+ -5270616.593 4 -4106977.214 3 23553599.438 23553600.279 23553598.583
+ 29.700 21.600
+ -2059846.770 4 -1605077.399 2 24396498.823 24396497.732 24396498.121
+ 25.900 16.100
+ -21429516.555 7 -16698328.709 7 20691483.635 20691482.620 20691482.580
+ 47.300 43.600
+ -11909594.773 6 -9280203.156 5 22657474.079 22657472.091 22657473.087
+ 38.200 32.800
+ -13734219.403 6 -10701984.775 5 21874376.048 21874375.617 21874375.856
+ 40.000 33.000
+ 06 1 1 15 6 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19237449.546 8 -14990218.844 7 20971202.125 20971199.099 20971200.363
+ 48.400 44.100
+ -23770111.058 7 -18522167.980 7 20639380.435 20639379.606 20639379.467
+ 45.300 44.700
+ -5169029.197 5 -4027818.295 3 23572931.897 23572932.940 23572930.449
+ 30.400 23.400
+ -2093987.082 4 -1631680.276 2 24390002.148 24390000.361 24390001.269
+ 24.200 17.000
+ -21475516.995 7 -16734173.211 7 20682729.797 20682729.138 20682728.877
+ 47.200 43.600
+ -11984589.948 6 -9338640.951 5 22643202.889 22643201.186 22643201.787
+ 38.200 33.400
+ -13812961.215 6 -10763342.042 5 21859392.731 21859391.476 21859392.020
+ 39.900 32.800
+ 06 1 1 15 6 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19185354.250 8 -14949625.129 7 20981115.870 20981112.517 20981113.779
+ 48.200 43.900
+ -23756711.414 7 -18511726.718 7 20641930.448 20641929.497 20641929.505
+ 45.200 44.800
+ -5067338.434 5 -3948578.816 4 23592282.481 23592283.835 23592281.637
+ 31.000 24.200
+ -2127609.630 4 -1657879.712 3 24383604.311 24383603.329 24383603.587
+ 28.800 18.600
+ -21520976.716 7 -16769596.371 7 20674079.076 20674078.520 20674078.129
+ 47.200 44.000
+ -12059469.139 6 -9396988.350 5 22628953.568 22628952.015 22628952.646
+ 38.300 33.000
+ -13891318.988 6 -10824400.030 5 21844481.284 21844480.641 21844480.777
+ 39.300 32.400
+ 06 1 1 15 7 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19132870.329 8 -14908728.586 7 20991103.075 20991099.884 20991101.172
+ 48.300 43.900
+ -23742771.364 7 -18500864.361 7 20644583.043 20644582.269 20644582.114
+ 45.200 44.700
+ -4965546.260 4 -3869260.308 3 23611652.614 23611654.436 23611651.994
+ 29.500 21.600
+ -2160713.894 4 -1683675.299 2 24377304.541 24377302.866 24377303.850
+ 25.900 12.600
+ -21565893.864 7 -16804596.745 7 20665531.934 20665531.127 20665530.891
+ 47.300 43.900
+ -12134231.728 6 -9455244.903 5 22614726.410 22614725.058 22614725.565
+ 38.400 32.800
+ -13969290.268 6 -10885156.859 5 21829644.070 21829643.359 21829643.522
+ 40.000 33.800
+ 06 1 1 15 7 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19079999.863 8 -14867530.843 7 21001164.019 21001160.922 21001162.174
+ 48.500 43.700
+ -23728290.889 7 -18489580.895 7 20647338.559 20647337.931 20647337.539
+ 45.200 44.800
+ -4863654.334 4 -3789864.078 3 23631042.190 23631043.365 23631041.584
+ 29.900 21.100
+ -2193298.558 4 -1709065.988 2 24371103.424 24371103.567 24371102.629
+ 24.600 17.800
+ -21610266.034 7 -16839172.466 7 20657087.919 20657087.351 20657086.912
+ 47.400 44.000
+ -12208876.784 6 -9513409.869 5 22600522.179 22600520.507 22600521.170
+ 38.100 33.000
+ -14046872.322 6 -10945610.383 5 21814881.026 21814879.823 21814880.173
+ 40.200 33.600
+ 06 1 1 15 8 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19026744.351 8 -14826033.063 7 21011298.358 21011295.001 21011296.474
+ 48.500 43.800
+ -23713269.227 7 -18477875.724 7 20650197.063 20650196.433 20650196.157
+ 45.200 44.700
+ -4761664.783 4 -3710391.779 3 23650450.650 23650451.835 23650449.623
+ 29.200 21.100
+ -2225362.740 4 -1734051.098 2 24365002.251 24365000.961 24365001.573
+ 28.100 13.900
+ -21654091.373 7 -16873322.080 7 20648748.445 20648747.591 20648747.393
+ 47.200 44.100
+ -12283403.609 6 -9571482.689 5 22586340.492 22586338.737 22586339.492
+ 38.800 33.900
+ -14124062.534 6 -11005758.587 5 21800191.754 21800190.922 21800191.319
+ 40.100 33.400
+ 06 1 1 15 8 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18973105.777 8 -14784236.787 7 21021505.323 21021502.116 21021503.571
+ 48.600 43.600
+ -23697706.546 7 -18465748.981 7 20653158.724 20653157.957 20653157.739
+ 45.200 44.700
+ -4659579.188 5 -3630844.638 3 23669877.217 23669878.123 23669876.462
+ 30.600 23.000
+ -2256905.433 4 -1758629.826 2 24358999.755 24358998.786 24358999.110
+ 27.900 12.600
+ -21697367.684 7 -16907043.883 7 20640513.057 20640512.448 20640512.047
+ 47.200 44.000
+ -12357811.395 6 -9629462.761 5 22572181.141 22572179.393 22572180.169
+ 39.200 33.900
+ -14200858.536 6 -11065599.600 5 21785578.078 21785577.291 21785577.513
+ 40.700 33.600
+ 06 1 1 15 9 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18919085.881 8 -14742143.383 7 21031785.099 21031781.775 21031783.188
+ 48.300 43.400
+ -23681602.903 7 -18453200.708 7 20656223.001 20656222.476 20656222.065
+ 45.300 44.800
+ -4557399.358 4 -3551224.077 3 23689321.435 23689322.565 23689320.423
+ 29.500 23.400
+ -2287925.836 4 -1782801.628 2 24353096.905 24353096.259 24353096.258
+ 27.400 17.800
+ -21740093.077 7 -16940336.399 7 20632382.799 20632382.090 20632381.817
+ 47.200 44.100
+ -12432099.424 6 -9687349.519 5 22558044.612 22558042.736 22558043.515
+ 39.100 33.900
+ -14277257.570 6 -11125131.283 5 21771040.180 21771038.827 21771039.426
+ 40.300 33.500
+ 06 1 1 15 9 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18864687.300 8 -14699754.902 7 21042136.541 21042133.532 21042134.747
+ 48.100 43.600
+ -23664958.214 7 -18440230.841 7 20659390.602 20659389.828 20659389.553
+ 45.200 44.800
+ -4455127.334 5 -3471531.706 3 23708783.962 23708784.472 23708782.939
+ 31.100 22.600
+ -2318423.093 4 -1806565.779 2 24347293.124 24347292.402 24347292.227
+ 24.900 17.000
+ -21782265.319 7 -16973197.882 7 20624357.629 20624356.986 20624356.623
+ 47.200 44.300
+ -12506266.942 6 -9745142.372 5 22543930.850 22543929.085 22543929.877
+ 38.700 33.600
+ -14353257.172 6 -11184351.733 5 21756577.636 21756576.602 21756576.991
+ 40.600 33.900
+ 06 1 1 15 10 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18809911.870 8 -14657072.774 7 21052560.043 21052557.014 21052558.302
+ 48.400 43.500
+ -23647771.639 7 -18426838.723 7 20662661.130 20662660.179 20662660.106
+ 45.400 44.500
+ -4352764.806 5 -3391768.767 3 23728262.249 23728262.897 23728261.340
+ 30.100 19.900
+ -2348396.277 4 -1829921.534 2 24341589.708 24341588.172 24341589.273
+ 28.100 12.600
+ -21823882.365 7 -17005626.750 7 20616438.110 20616437.509 20616437.121
+ 47.200 44.200
+ -12580313.272 6 -9802840.792 5 22529840.569 22529838.715 22529839.537
+ 39.300 34.100
+ -14428854.730 6 -11243258.883 5 21742191.671 21742190.975 21742191.180
+ 41.100 34.500
+ 06 1 1 15 10 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18754761.249 8 -14614098.288 7 21063055.226 21063051.924 21063053.325
+ 48.500 43.500
+ -23630043.662 7 -18413024.732 7 20666034.658 20666033.773 20666033.646
+ 45.100 44.400
+ -4250313.562 4 -3311936.699 2 23747758.398 23747758.015 23747757.146
+ 27.400 17.000
+ -2377844.571 4 -1852868.315 1 24335985.983 24335984.410 24335985.302
+ 26.500 6.500
+ -21864942.048 7 -17037621.306 7 20608624.764 20608624.140 20608623.824
+ 47.500 44.500
+ -12654237.410 6 -9860443.991 5 22515772.948 22515771.248 22515771.954
+ 38.800 34.000
+ -14504047.729 6 -11301850.792 5 21727883.476 21727881.983 21727882.599
+ 40.900 33.400
+ 06 1 1 15 11 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18699237.476 8 -14570833.038 7 21073620.869 21073617.754 21073619.099
+ 48.500 43.500
+ -23611773.993 7 -18398788.647 7 20669511.251 20669510.534 20669510.277
+ 45.300 44.600
+ -4147775.419 4 -3232036.948 2 23767270.959 23767270.249 23767269.614
+ 28.100 17.000
+ -2406767.299 4 -1875405.561 1 24330482.250 24330481.069 24330481.659
+ 27.400 11.000
+ -21905442.682 7 -17069180.247 7 20600917.920 20600917.005 20600916.930
+ 47.500 44.300
+ -12728038.630 6 -9917951.416 5 22501729.241 22501726.989 22501728.046
+ 38.900 33.400
+ -14578833.797 6 -11360125.621 5 21713651.716 21713650.641 21713651.193
+ 40.900 34.100
+ 06 1 1 15 11 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18643342.468 8 -14527278.514 7 21084257.433 21084254.295 21084255.595
+ 48.400 43.400
+ -23592962.923 7 -18384130.687 7 20673090.964 20673090.201 20673089.934
+ 45.300 44.400
+ -4045152.281 4 -3152070.952 3 23786799.144 23786799.543 23786798.533
+ 29.900 19.900
+ -2435163.326 4 -1897532.351 3 24325078.060 24325077.312 24325077.538
+ 25.900 18.600
+ -21945382.113 7 -17100301.878 7 20593317.861 20593316.895 20593316.748
+ 47.500 44.300
+ -12801716.123 6 -9975362.429 5 22487708.648 22487706.949 22487707.758
+ 39.700 34.000
+ -14653210.325 6 -11418081.333 5 21699498.459 21699497.478 21699497.778
+ 41.000 34.400
+ 06 1 1 15 12 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18587078.316 8 -14483436.345 7 21094964.153 21094960.951 21094962.229
+ 48.300 43.300
+ -23573610.235 7 -18369050.688 7 20676773.632 20676772.885 20676772.677
+ 45.300 44.400
+ -3942446.015 5 -3072040.167 3 23806343.900 23806344.539 23806342.899
+ 30.400 19.900
+ -2463032.149 4 -1919248.373 1 24319775.394 24319774.410 24319774.522
+ 27.100 11.000
+ -21984758.605 7 -17130984.865 7 20585824.695 20585823.822 20585823.658
+ 47.500 44.500
+ -12875269.023 6 -10032676.359 5 22473711.776 22473710.257 22473710.868
+ 39.300 34.600
+ -14727174.940 6 -11475716.054 5 21685423.632 21685422.261 21685422.809
+ 41.100 34.300
+ 06 1 1 15 12 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -92914.214 3 -72400.557 3 24421019.635 24421019.633 24421019.019
+ 23.000 20.500
+ -18530446.895 8 -14439307.994 7 21105740.864 21105737.611 21105738.975
+ 48.300 43.100
+ -23553716.117 7 -18353548.794 7 20680559.252 20680558.575 20680558.354
+ 45.300 44.400
+ -3839658.185 4 -2991945.862 2 23825903.367 23825903.467 23825902.361
+ 27.900 17.800
+ -2490373.036 4 -1940552.999 2 24314572.439 24314571.468 24314571.768
+ 27.600 17.000
+ -22023570.201 7 -17161227.669 7 20578438.946 20578438.193 20578437.949
+ 47.400 44.500
+ -12948696.803 6 -10089892.790 5 22459739.126 22459737.318 22459738.127
+ 39.500 34.600
+ -14800724.834 6 -11533027.626 5 21671426.956 21671426.338 21671426.565
+ 41.400 34.900
+ 06 1 1 15 13 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -135575.181 3 -105642.962 3 24412901.378 24412901.198 24412900.840
+ 23.400 21.100
+ -18473450.371 8 -14394895.152 7 21116586.921 21116583.655 21116585.063
+ 48.200 42.900
+ -23533280.389 7 -18337624.872 7 20684448.027 20684447.389 20684447.151
+ 45.400 44.400
+ -3736790.401 4 -2911789.203 3 23845479.111 23845479.587 23845478.270
+ 29.000 21.600
+ -2517185.127 4 -1961445.554 2 24309470.743 24309469.538 24309469.979
+ 27.900 16.100
+ -22061814.839 7 -17191028.687 7 20571161.045 20571160.566 20571160.128
+ 47.300 44.700
+ -13021998.459 6 -10147010.943 5 22445790.289 22445788.470 22445789.262
+ 39.600 34.400
+ -14873857.948 6 -11590014.421 5 21657510.218 21657509.364 21657509.542
+ 41.000 34.500
+ 06 1 1 15 13 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -177664.353 3 -138439.772 3 24404892.169 24404892.395 24404891.490
+ 23.000 22.100
+ -18416090.542 8 -14350199.206 7 21127501.998 21127498.864 21127500.252
+ 48.200 42.800
+ -23512302.966 7 -18321278.850 7 20688439.784 20688439.315 20688438.939
+ 45.300 44.200
+ -3633844.477 4 -2831571.691 3 23865068.165 23865069.534 23865067.414
+ 27.100 21.100
+ -2543467.654 4 -1981925.507 2 24304468.965 24304468.127 24304468.379
+ 26.800 15.100
+ -22099490.759 7 -17220386.546 7 20563991.867 20563990.969 20563990.772
+ 47.300 44.700
+ -13095173.089 6 -10204030.113 5 22431865.526 22431863.899 22431864.470
+ 39.400 34.800
+ -14946571.479 6 -11646674.283 5 21643673.370 21643672.068 21643672.667
+ 41.200 33.900
+ 06 1 1 15 14 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -219180.262 3 -170789.872 3 24396991.751 24396991.708 24396991.051
+ 21.600 19.300
+ -18358369.263 8 -14305221.613 7 21138486.003 21138482.802 21138484.210
+ 48.100 42.600
+ -23490783.963 7 -18304510.813 7 20692534.991 20692534.287 20692534.042
+ 45.600 44.100
+ -3530822.314 4 -2751294.782 2 23884673.245 23884673.698 23884672.188
+ 27.600 17.800
+ -2569220.051 4 -2001992.360 2 24299568.578 24299567.470 24299567.813
+ 26.200 17.800
+ -22136596.017 7 -17249299.734 7 20556930.610 20556930.064 20556929.636
+ 47.000 44.800
+ -13168220.059 6 -10260949.800 5 22417964.544 22417963.571 22417963.786
+ 39.300 35.400
+ -15018863.190 6 -11703005.444 5 21629916.774 21629915.870 21629916.182
+ 41.400 35.100
+ 06 1 1 15 14 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -260121.598 3 -202692.229 4 24389200.979 24389201.280 24389200.462
+ 18.600 24.200
+ -18300288.957 8 -14259964.257 7 21149538.344 21149535.241 21149536.510
+ 48.200 42.500
+ -23468723.518 7 -18287320.876 7 20696733.148 20696732.177 20696732.065
+ 45.400 44.100
+ -3427725.572 4 -2670959.753 2 23904291.660 23904292.702 23904291.037
+ 27.400 17.000
+ -2594441.637 4 -2021645.549 3 24294769.448 24294769.249 24294768.720
+ 26.800 21.600
+ -22173128.133 7 -17277766.319 7 20549978.765 20549978.232 20549977.781
+ 47.000 44.700
+ -13241138.580 6 -10317769.413 5 22404088.846 22404087.281 22404087.946
+ 39.500 33.900
+ -15090730.489 6 -11759005.889 5 21616240.991 21616239.570 21616240.173
+ 41.600 34.600
+ 06 1 1 15 15 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -300487.068 3 -234145.799 3 24381520.357 24381519.746 24381519.931
+ 22.600 21.100
+ -18241851.131 8 -14214428.308 7 21160658.623 21160655.537 21160656.898
+ 48.100 42.400
+ -23446121.688 7 -18269709.077 7 20701033.945 20701033.150 20701032.927
+ 45.400 44.000
+ -3324555.986 4 -2590567.940 2 23923925.009 23923925.277 23923923.650
+ 25.600 17.800
+ -2619131.713 4 -2040884.617 2 24290070.312 24290069.535 24290069.647
+ 25.900 16.100
+ -22209084.717 7 -17305784.443 7 20543136.500 20543135.952 20543135.447
+ 47.000 44.600
+ -13313927.512 6 -10374488.046 5 22390237.851 22390236.017 22390236.958
+ 40.300 34.400
+ -15162171.206 6 -11814673.939 5 21602645.720 21602644.840 21602645.199
+ 41.600 34.500
+ 06 1 1 15 15 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -340275.002 3 -265149.431 3 24373948.309 24373948.521 24373947.960
+ 22.600 21.100
+ -18183058.158 8 -14168615.624 7 21171846.878 21171843.526 21171844.981
+ 48.100 42.400
+ -23422978.871 7 -18251675.734 7 20705437.549 20705437.045 20705436.786
+ 45.200 43.700
+ -3221315.379 5 -2510120.783 3 23943571.534 23943571.791 23943570.444
+ 30.100 18.600
+ -2643289.727 4 -2059709.058 3 24285473.628 24285472.727 24285473.165
+ 28.600 19.900
+ -22244466.621 7 -17333354.758 7 20536403.644 20536402.955 20536402.623
+ 47.000 44.700
+ -13386586.209 6 -10431105.187 5 22376411.308 22376409.602 22376410.396
+ 39.800 34.400
+ -15233182.844 6 -11870007.631 5 21589132.787 21589131.831 21589132.211
+ 41.300 34.900
+ 06 1 1 15 16 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -379484.213 4 -295702.114 3 24366486.915 24366487.931 24366486.422
+ 24.900 21.600
+ -18123911.587 8 -14122527.400 7 21183101.882 21183098.744 21183100.111
+ 48.200 42.300
+ -23399295.329 7 -18233221.045 7 20709944.437 20709943.966 20709943.534
+ 45.100 44.000
+ -3118005.208 5 -2429619.403 3 23963230.147 23963230.902 23963229.052
+ 30.100 19.300
+ -2666914.965 4 -2078118.402 3 24280977.057 24280977.174 24280976.560
+ 24.900 21.100
+ -22279270.926 7 -17360474.999 7 20529780.605 20529779.926 20529779.568
+ 47.000 44.900
+ -13459113.768 6 -10487620.152 5 22362610.071 22362608.041 22362608.978
+ 40.300 34.600
+ -15303762.773 6 -11925004.933 5 21575702.065 21575700.621 21575701.273
+ 41.300 34.500
+ 06 1 1 15 16 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -418113.481 4 -325802.927 2 24359136.967 24359136.168 24359136.416
+ 25.600 12.600
+ -18064413.839 8 -14076165.535 7 21194424.114 21194420.891 21194422.118
+ 48.200 42.600
+ -23375070.918 7 -18214344.899 7 20714554.298 20714553.842 20714553.301
+ 45.000 44.100
+ -3014627.158 4 -2349065.148 3 23982900.643 23982903.492 23982900.567
+ 27.900 21.600
+ -2690006.806 4 -2096112.058 3 24276583.441 24276583.593 24276582.750
+ 24.200 23.000
+ -22313495.240 7 -17387143.295 7 20523267.656 20523267.406 20523266.746
+ 47.100 45.100
+ -13531509.409 6 -10544032.322 5 22348833.651 22348831.716 22348832.605
+ 40.700 35.500
+ -15373908.704 6 -11979664.051 5 21562353.942 21562352.262 21562353.221
+ 41.700 35.100
+ 06 1 1 15 17 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -456161.634 3 -355450.823 3 24351896.178 24351896.247 24351895.570
+ 22.600 20.500
+ -18004566.934 8 -14029531.598 7 21205812.589 21205809.470 21205810.717
+ 48.400 42.700
+ -23350305.711 7 -18195047.357 7 20719267.001 20719266.585 20719266.130
+ 45.200 44.100
+ -2911183.160 4 -2268459.528 3 24002586.420 24002588.183 24002585.520
+ 27.600 20.500
+ -2712564.770 4 -2113689.712 3 24272291.429 24272290.928 24272290.729
+ 25.300 23.800
+ -22347137.879 7 -17413358.344 7 20516865.943 20516865.422 20516864.916
+ 47.000 44.900
+ -13603772.260 6 -10600341.016 6 22335082.437 22335080.703 22335081.318
+ 40.500 36.000
+ -15443618.408 6 -12033983.257 5 21549088.365 21549087.172 21549087.649
+ 41.900 35.200
+ 06 1 1 15 17 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -493627.331 3 -384644.914 3 24344766.207 24344766.043 24344765.843
+ 21.600 19.300
+ -17944372.721 8 -13982627.031 7 21217267.407 21217264.020 21217265.351
+ 48.400 42.400
+ -23324999.989 7 -18175328.631 7 20724082.542 20724082.036 20724081.578
+ 45.100 44.000
+ -2807674.733 4 -2187803.684 2 24022284.289 24022284.507 24022282.819
+ 26.800 17.000
+ -2734588.310 3 -2130850.920 3 24268099.737 24268099.828 24268099.428
+ 23.000 22.600
+ -22380197.188 7 -17439118.843 7 20510574.905 20510574.404 20510573.903
+ 47.000 44.900
+ -13675901.470 6 -10656545.573 5 22321356.478 22321354.785 22321355.472
+ 40.500 35.700
+ -15512889.450 7 -12087960.644 5 21535906.548 21535905.075 21535905.854
+ 42.000 34.900
+ 06 1 1 15 18 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -530509.347 3 -413384.186 2 24337748.390 24337747.720 24337747.755
+ 23.400 17.000
+ -17883833.004 8 -13935453.232 7 21228787.406 21228784.287 21228785.642
+ 48.500 42.200
+ -23299153.837 7 -18155188.788 7 20729001.007 20729000.331 20729000.017
+ 45.400 43.700
+ -2704103.850 4 -2107099.163 2 24041991.790 24041993.951 24041991.129
+ 27.400 17.800
+ -2756076.901 4 -2147595.275 3 24264011.069 24264010.643 24264010.148
+ 25.300 22.600
+ -22412671.537 7 -17464423.533 7 20504395.201 20504394.671 20504394.294
+ 47.200 45.000
+ -13747896.351 6 -10712645.470 5 22307656.331 22307654.533 22307655.311
+ 40.200 35.600
+ -15581719.560 6 -12141594.458 5 21522808.191 21522807.146 21522807.644
+ 41.900 35.300
+ 06 1 1 15 18 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -566806.375 3 -441667.634 2 24330840.728 24330840.577 24330840.355
+ 23.000 12.600
+ -17822949.961 8 -13888011.908 7 21240373.132 21240369.929 21240371.279
+ 48.300 42.100
+ -23272767.975 7 -18134628.394 7 20734021.802 20734021.382 20734021.055
+ 45.400 43.600
+ -2600471.992 4 -2026347.127 3 24061712.390 24061714.972 24061711.600
+ 25.900 21.100
+ -2777030.084 3 -2163922.450 3 24260023.183 24260023.514 24260022.681
+ 23.400 23.400
+ -22444559.197 7 -17489271.060 7 20498327.262 20498326.648 20498326.294
+ 47.400 45.000
+ -13819755.756 6 -10768639.793 5 22293982.123 22293980.069 22293980.988
+ 40.200 35.200
+ -15650106.356 7 -12194882.832 5 21509794.937 21509793.622 21509794.173
+ 42.100 35.400
+ 06 1 1 15 19 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -602517.327 2 -469494.412 2 24324045.356 24324045.259 24324045.020
+ 17.800 13.900
+ -17761725.349 8 -13840304.425 7 21252023.736 21252020.634 21252021.872
+ 48.100 42.000
+ -23245842.703 7 -18113647.679 7 20739145.801 20739145.122 20739144.869
+ 45.500 43.600
+ -2496780.493 4 -1945548.653 3 24081445.083 24081446.399 24081443.944
+ 25.900 19.300
+ -2797447.307 3 -2179831.991 4 24256138.275 24256138.221 24256137.723
+ 23.400 24.200
+ -22475858.181 7 -17513659.882 7 20492371.300 20492370.657 20492370.331
+ 47.300 45.100
+ -13891478.944 6 -10824527.979 5 22280333.327 22280331.639 22280332.352
+ 40.000 35.500
+ -15718047.453 7 -12247823.921 5 21496865.932 21496864.936 21496865.347
+ 42.300 35.700
+ 06 1 1 15 19 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -637641.113 3 -496863.618 2 24317361.693 24317361.981 24317361.412
+ 19.900 16.100
+ -17700161.413 7 -13792332.538 7 21263738.752 21263735.840 21263737.003
+ 47.900 42.100
+ -23218377.604 7 -18092246.317 7 20744372.270 20744371.644 20744371.251
+ 45.500 43.600
+ -2393031.242 5 -1864705.159 2 24101189.020 24101189.483 24101188.131
+ 30.400 16.100
+ -2817328.201 3 -2195323.639 4 24252354.976 24252355.367 24252354.389
+ 23.800 25.300
+ -22506566.885 7 -17537588.744 7 20486527.610 20486526.948 20486526.650
+ 47.400 45.000
+ -13963064.875 6 -10880309.213 6 22266711.237 22266709.359 22266710.135
+ 40.600 36.100
+ -15785540.418 7 -12300415.806 6 21484022.660 21484021.576 21484021.888
+ 42.400 36.400
+ 06 1 1 15 20 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -672176.573 3 -523774.357 1 24310789.762 24310789.234 24310789.376
+ 20.500 11.000
+ -17638260.243 7 -13744097.872 6 21275518.347 21275515.107 21275516.531
+ 47.800 41.700
+ -23190373.013 7 -18070424.573 7 20749701.079 20749700.799 20749700.270
+ 45.400 43.700
+ -2289225.885 5 -1783817.926 2 24120942.874 24120942.543 24120941.792
+ 30.100 15.100
+ -2836672.238 4 -2210396.946 4 24248674.264 24248674.466 24248673.617
+ 25.300 26.800
+ -22536683.478 7 -17561056.219 7 20480796.767 20480795.959 20480795.761
+ 47.300 45.000
+ -14034512.784 6 -10935982.908 6 22253115.200 22253113.258 22253114.142
+ 40.700 36.100
+ -15852583.107 7 -12352656.844 5 21471264.548 21471263.457 21471264.045
+ 42.400 35.300
+ 06 1 1 15 20 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -706122.461 4 -550225.753 2 24304330.676 24304330.533 24304330.448
+ 25.600 17.800
+ -17576023.646 7 -13695601.838 6 21287361.462 21287358.364 21287359.673
+ 47.600 41.800
+ -23161829.964 7 -18048183.252 7 20755132.961 20755132.305 20755131.980
+ 45.300 43.500
+ -2185366.160 4 -1702888.331 2 24140706.409 24140706.264 24140705.356
+ 27.400 12.600
+ -2855479.044 4 -2225051.614 3 24245095.432 24245095.120 24245094.763
+ 26.200 23.400
+ -22566207.077 7 -17584061.620 7 20475178.665 20475177.875 20475177.672
+ 47.400 45.200
+ -14105821.823 6 -10991548.376 6 22239545.175 22239543.575 22239544.261
+ 40.700 36.200
+ -15919173.213 7 -12404545.222 5 21458593.136 21458591.909 21458592.390
+ 42.600 35.500
+ 06 1 1 15 21 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -739477.796 3 -576216.959 2 24297983.112 24297982.986 24297982.297
+ 23.800 13.900
+ -17513453.939 7 -13646846.238 6 21299268.253 21299265.090 21299266.440
+ 47.600 41.600
+ -23132748.571 7 -18025522.443 7 20760666.661 20760666.401 20760665.850
+ 45.300 43.600
+ -2081453.563 4 -1621917.542 2 24160479.814 24160480.671 24160478.978
+ 26.500 16.100
+ -2873748.280 4 -2239287.390 3 24241618.680 24241618.821 24241618.235
+ 24.900 23.800
+ -22595135.633 7 -17606603.353 7 20469673.563 20469672.971 20469672.608
+ 47.300 45.200
+ -14176990.957 6 -11047004.840 6 22226002.611 22226000.526 22226001.498
+ 41.200 36.000
+ -15985308.632 7 -12456079.299 5 21446007.836 21446006.614 21446007.231
+ 42.600 35.400
+ 06 1 1 15 21 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -772241.491 3 -601747.119 1 24291747.818 24291747.719 24291747.216
+ 21.600 11.000
+ -17450552.665 7 -13597832.279 6 21311237.877 21311234.833 21311236.164
+ 47.500 41.900
+ -23103129.189 7 -18002442.423 7 20766303.195 20766302.847 20766302.332
+ 45.200 43.500
+ -1977489.828 4 -1540906.948 2 24180263.176 24180264.355 24180261.971
+ 24.900 17.800
+ -2891479.664 4 -2253104.070 4 24238244.469 24238245.046 24238243.705
+ 25.600 25.900
+ -137707.569 3 -107305.160 3 24693961.496 24693963.369 24693960.860
+ 21.100 21.100
+ -22623467.431 7 -17628680.080 7 20464282.453 20464281.575 20464281.377
+ 47.200 45.300
+ -14248019.375 6 -11102351.660 5 22212486.318 22212484.064 22212485.278
+ 41.300 35.900
+ -16050986.951 7 -12507257.200 5 21433509.791 21433508.431 21433509.246
+ 43.100 35.700
+ 06 1 1 15 22 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -804412.579 3 -626815.531 1 24285626.256 24285625.867 24285625.533
+ 19.300 9.000
+ -17387321.990 7 -13548561.646 6 21323270.446 21323267.216 21323268.621
+ 47.700 41.500
+ -23072972.178 7 -17978943.465 7 20772042.280 20772041.438 20772041.152
+ 45.300 43.400
+ -1873476.554 4 -1459857.707 2 24200056.382 24200058.012 24200055.322
+ 26.500 17.000
+ -2908672.583 3 -2266501.146 4 24234972.777 24234973.199 24234972.134
+ 23.000 24.600
+ -240857.076 3 -187681.484 3 24674333.727 24674334.536 24674332.786
+ 20.500 23.400
+ -22651200.793 7 -17650290.488 7 20459004.816 20459003.992 20459003.837
+ 47.300 45.100
+ -14318906.157 6 -11157588.110 6 22198996.943 22198994.855 22198995.831
+ 41.400 36.100
+ -16116206.017 7 -12558077.254 5 21421098.926 21421097.749 21421098.295
+ 42.600 35.900
+ 06 1 1 15 22 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -835990.068 3 -651421.502 1 24279617.366 24279617.850 24279616.534
+ 21.100 9.000
+ -17323764.022 7 -13499035.979 6 21335365.042 21335361.977 21335363.249
+ 47.600 41.300
+ -23042277.769 7 -17955025.755 7 20777883.094 20777882.412 20777881.945
+ 45.400 43.600
+ -1769415.265 4 -1378771.068 3 24219858.724 24219860.311 24219857.854
+ 28.800 18.600
+ -2925326.968 3 -2279478.600 4 24231803.657 24231804.021 24231802.881
+ 21.600 24.900
+ -343893.125 3 -267969.411 4 24654726.274 24654727.698 24654725.691
+ 23.000 25.600
+ -22678334.205 7 -17671433.409 7 20453841.382 20453840.750 20453840.416
+ 47.200 45.100
+ -14389650.368 6 -11212713.459 6 22185534.815 22185532.699 22185533.764
+ 41.400 36.600
+ -16180963.654 7 -12608537.739 5 21408775.987 21408774.431 21408775.364
+ 43.100 35.600
+ 06 1 1 15 23 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -866972.853 4 -675563.903 2 24273722.057 24273721.535 24273721.502
+ 26.200 13.900
+ -17259880.705 7 -13449256.796 6 21347521.624 21347518.624 21347519.841
+ 47.600 41.200
+ -23011046.604 7 -17930689.796 7 20783826.027 20783825.562 20783825.085
+ 45.500 43.600
+ -1665307.675 3 -1297648.342 2 24239668.615 24239670.771 24239668.041
+ 23.800 12.600
+ -2941442.346 4 -2292036.075 3 24228737.415 24228737.080 24228736.687
+ 24.900 23.400
+ -446814.732 3 -348168.114 4 24635141.178 24635142.551 24635140.407
+ 21.100 25.300
+ -22704866.115 7 -17692107.625 7 20448792.506 20448791.849 20448791.534
+ 47.200 45.100
+ -14460251.145 6 -11267727.036 6 22172099.889 22172097.969 22172098.795
+ 41.300 36.500
+ -16245257.522 7 -12658636.849 6 21396540.880 21396539.869 21396540.477
+ 42.900 36.100
+ 06 1 1 15 23 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -897360.141 3 -699242.327 1 24267939.011 24267938.816 24267938.333
+ 22.600 9.000
+ -17195674.203 7 -13399225.783 6 21359740.069 21359736.796 21359737.962
+ 47.500 41.300
+ -22979279.090 7 -17905935.909 7 20789871.282 20789870.785 20789870.271
+ 45.400 43.500
+ -1561155.077 4 -1216490.544 2 24259489.667 24259490.884 24259488.585
+ 26.800 17.000
+ -2957018.477 3 -2304173.327 4 24225773.439 24225773.463 24225772.466
+ 23.400 26.200
+ -549620.496 3 -428276.564 4 24615577.424 24615579.365 24615576.937
+ 22.600 24.600
+ -22730795.296 7 -17712312.185 7 20443858.231 20443857.595 20443857.324
+ 47.200 45.200
+ -14530707.516 7 -11322628.098 6 22158692.445 22158690.403 22158691.549
+ 42.000 36.500
+ -16309085.126 7 -12708372.642 6 21384394.781 21384394.209 21384394.382
+ 42.900 36.600
+ 06 1 1 15 24 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -927150.879 4 -722455.873 1 24262270.757 24262270.108 24262270.279
+ 26.500 11.000
+ -17131146.326 7 -13348944.350 6 21372019.120 21372016.011 21372017.246
+ 47.500 41.200
+ -22946975.789 7 -17880764.524 7 20796018.331 20796017.832 20796017.361
+ 45.400 43.200
+ -1456959.207 4 -1135299.045 2 24279317.255 24279318.776 24279316.499
+ 24.900 17.800
+ -2972055.295 4 -2315890.342 4 24222911.777 24222911.798 24222911.005
+ 24.200 26.500
+ -652309.663 4 -508294.150 4 24596037.164 24596038.314 24596036.031
+ 24.600 24.600
+ -22756120.195 7 -17732045.877 7 20439039.196 20439038.474 20439038.187
+ 47.100 44.900
+ -14601018.618 6 -11377415.959 6 22145312.546 22145310.848 22145311.588
+ 41.600 37.100
+ -16372444.917 7 -12757743.891 6 21372338.253 21372337.022 21372337.608
+ 43.100 36.300
+ 06 1 1 15 24 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -956344.047 3 -745203.882 9 24256714.344 24256713.977 24256713.837
+ 23.000 -3.000
+ -17066299.134 7 -13298414.102 6 21384359.048 21384356.007 21384357.286
+ 47.700 41.200
+ -22914137.142 7 -17855175.988 7 20802267.378 20802266.861 20802266.408
+ 45.400 43.200
+ -1352721.710 4 -1054075.121 3 24299154.072 24299154.938 24299152.768
+ 26.200 19.300
+ -2986552.395 3 -2327186.790 4 24220152.381 24220153.309 24220151.727
+ 22.100 26.800
+ -754880.329 4 -588219.418 3 24576518.009 24576519.745 24576517.914
+ 25.600 22.100
+ -22780839.071 7 -17751307.344 7 20434335.484 20434334.670 20434334.477
+ 47.000 45.100
+ -14671183.354 6 -11432089.768 6 22131960.505 22131958.638 22131959.623
+ 41.700 36.600
+ -16435334.190 7 -12806748.498 6 21360371.211 21360369.481 21360370.250
+ 43.000 36.500
+ 06 1 1 15 25 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -984938.927 4 -767485.672 2 24251273.330 24251273.299 24251272.766
+ 27.400 13.900
+ -17001134.786 7 -13247636.717 6 21396759.568 21396756.499 21396757.816
+ 47.700 41.200
+ -22880763.729 7 -17829170.747 7 20808618.066 20808617.710 20808617.151
+ 45.400 43.300
+ -1248443.991 4 -972819.874 2 24318996.865 24318998.365 24318995.943
+ 24.200 17.800
+ -3000509.526 3 -2338062.492 4 24217496.888 24217497.300 24217496.253
+ 22.600 25.900
+ -857331.447 4 -668051.572 3 24557023.010 24557024.025 24557022.325
+ 29.200 23.000
+ -22804950.518 7 -17770095.492 7 20429747.121 20429746.376 20429746.143
+ 47.000 45.200
+ -14741200.916 6 -11486648.898 6 22118636.746 22118634.975 22118635.768
+ 41.800 36.800
+ -16497751.122 7 -12855385.047 6 21348493.258 21348491.901 21348492.665
+ 43.000 36.200
+ 06 1 1 15 25 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1012934.812 4 -789300.648 3 24245945.988 24245946.416 24245945.595
+ 26.500 20.500
+ -16935654.869 7 -13196613.438 6 21409220.386 21409216.972 21409218.333
+ 47.600 41.000
+ -22846856.070 7 -17802749.215 7 20815070.724 20815070.216 20815069.688
+ 45.500 43.200
+ -1144127.645 4 -891534.505 2 24338847.398 24338848.777 24338846.881
+ 24.900 16.100
+ -3013926.642 4 -2348517.429 4 24214943.758 24214944.149 24214943.109
+ 24.900 27.100
+ -959661.858 4 -747789.636 3 24537550.175 24537550.894 24537549.677
+ 29.500 23.000
+ -22828453.549 7 -17788409.549 7 20425274.692 20425274.031 20425273.696
+ 46.900 45.300
+ -14811070.161 6 -11541092.455 6 22105341.064 22105339.299 22105340.131
+ 41.900 37.100
+ -16559693.489 7 -12903651.808 6 21336705.935 21336704.733 21336705.295
+ 43.100 36.400
+ 06 1 1 15 26 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1040330.699 4 -810648.095 3 24240732.699 24240733.426 24240732.267
+ 27.900 23.000
+ -16869861.496 7 -13145345.909 6 21421740.113 21421737.043 21421738.264
+ 47.500 41.000
+ -22812414.928 7 -17775911.983 7 20821624.581 20821624.094 20821623.626
+ 45.600 43.100
+ -1039774.396 4 -810220.327 2 24358704.877 24358706.104 24358703.970
+ 24.900 15.100
+ -3026803.467 3 -2358551.303 4 24212493.615 24212493.311 24212492.705
+ 23.800 26.500
+ -1061870.452 4 -827432.776 3 24518100.381 24518101.382 24518099.971
+ 27.100 19.900
+ -22851346.054 7 -17806247.868 7 20420918.324 20420917.814 20420917.364
+ 47.000 45.300
+ -14880790.460 7 -11595419.950 6 22092073.753 22092071.944 22092072.751
+ 42.000 37.100
+ -16621159.137 7 -12951547.086 6 21325009.541 21325008.218 21325008.754
+ 43.200 36.500
+ 06 1 1 15 26 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1067125.768 4 -831527.368 3 24235634.103 24235633.959 24235633.572
+ 29.200 21.100
+ -16803756.906 7 -13093835.868 6 21434319.583 21434316.388 21434317.668
+ 47.500 41.200
+ -22777440.339 7 -17748659.075 7 20828280.108 20828279.536 20828279.110
+ 45.600 43.000
+ -935385.539 4 -728878.415 2 24378569.042 24378570.620 24378568.540
+ 25.600 12.600
+ -3039139.844 4 -2368164.095 4 24210146.474 24210146.540 24210145.615
+ 24.600 28.800
+ -1163955.903 4 -906979.954 3 24498673.803 24498675.666 24498673.269
+ 24.900 19.300
+ -22873627.144 7 -17823609.761 7 20416678.371 20416677.757 20416677.433
+ 47.000 45.300
+ -14950360.643 6 -11649630.470 6 22078835.047 22078833.027 22078833.926
+ 41.600 37.000
+ -16682145.904 7 -12999069.205 6 21313404.235 21313402.736 21313403.474
+ 43.600 36.900
+ 06 1 1 15 27 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1093319.251 4 -851937.921 3 24230649.258 24230649.357 24230648.863
+ 27.600 19.900
+ -16737342.965 7 -13042084.775 6 21446957.627 21446954.516 21446955.704
+ 47.200 40.900
+ -22741933.300 7 -17720991.270 7 20835036.978 20835036.313 20835035.939
+ 45.600 43.200
+ -830962.699 4 -647510.046 2 24398441.316 24398442.487 24398440.522
+ 27.600 17.800
+ -3050935.748 4 -2377355.746 4 24207900.720 24207901.208 24207900.360
+ 24.200 25.300
+ -1265917.017 3 -986430.218 3 24479271.427 24479272.889 24479270.786
+ 22.600 20.500
+ -22895295.473 7 -17840494.177 7 20412555.036 20412554.419 20412554.104
+ 47.100 45.400
+ -15019779.870 7 -11703723.364 6 22065625.000 22065622.932 22065624.017
+ 42.200 36.800
+ -16742651.807 7 -13046216.623 6 21301890.175 21301888.825 21301889.462
+ 43.600 36.600
+ 06 1 1 15 27 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1118910.476 5 -871879.155 3 24225779.825 24225780.073 24225779.339
+ 30.100 23.000
+ -16670621.567 7 -12990094.109 6 21459654.083 21459651.218 21459652.229
+ 46.900 40.900
+ -22705894.536 7 -17692909.137 7 20841894.663 20841894.221 20841893.748
+ 45.400 42.800
+ -726507.595 4 -566116.555 2 24418317.751 24418319.905 24418317.268
+ 26.200 17.800
+ -3062191.080 3 -2386126.130 4 24205759.789 24205759.606 24205758.901
+ 23.400 25.900
+ -1367752.628 3 -1065782.702 2 24459892.866 24459894.251 24459892.457
+ 21.100 17.800
+ -22916349.432 7 -17856899.867 7 20408548.678 20408547.988 20408547.713
+ 47.100 45.300
+ -15089047.193 7 -11757697.895 6 22052443.680 22052441.818 22052442.761
+ 42.100 37.400
+ -16802674.857 7 -13092987.788 6 21290468.255 21290466.834 21290467.511
+ 43.900 37.000
+ 06 1 1 15 28 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1143898.735 5 -891350.588 4 24221024.662 24221024.930 24221024.244
+ 30.600 25.600
+ -16603594.858 7 -12937865.536 6 21472408.984 21472405.994 21472407.082
+ 46.900 40.800
+ -22669324.577 7 -17664413.086 7 20848853.759 20848853.113 20848852.765
+ 45.400 42.600
+ -622021.483 4 -484698.849 2 24438201.916 24438202.776 24438200.570
+ 25.600 15.100
+ -3072905.729 3 -2394475.277 4 24203719.763 24203720.956 24203719.520
+ 23.000 27.100
+ -1469461.527 3 -1145036.402 3 24440538.657 24440539.737 24440537.921
+ 22.100 19.300
+ -22936787.571 7 -17872825.693 7 20404659.395 20404658.772 20404658.490
+ 47.100 45.300
+ -15158161.474 7 -11811553.166 6 22039291.670 22039290.029 22039290.684
+ 42.300 37.700
+ -16862212.859 7 -13139380.990 6 21279138.140 21279137.225 21279137.640
+ 43.900 37.100
+ 06 1 1 15 28 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1168283.232 4 -910351.491 4 24216384.677 24216384.941 24216384.215
+ 27.600 26.800
+ -16536264.855 7 -12885400.633 6 21485221.495 21485218.367 21485219.537
+ 46.900 40.500
+ -22632223.880 7 -17635503.473 7 20855913.693 20855913.241 20855912.787
+ 45.500 42.500
+ -517505.816 3 -403258.147 2 24458088.876 24458091.619 24458088.350
+ 22.100 17.000
+ -3083079.651 3 -2402403.029 4 24201784.809 24201784.774 24201784.137
+ 22.600 26.800
+ -1571042.320 3 -1224190.307 3 24421208.059 24421209.742 24421207.463
+ 19.900 23.800
+ -22956608.939 7 -17888270.917 7 20400887.852 20400886.893 20400886.831
+ 47.300 45.400
+ -15227121.764 7 -11865288.443 6 22026169.253 22026167.322 22026168.144
+ 42.300 38.100
+ -16921263.633 7 -13185394.534 6 21267901.817 21267900.163 21267900.881
+ 44.200 37.500
+ 06 1 1 15 29 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1192063.230 4 -928881.382 4 24211859.646 24211859.491 24211859.100
+ 28.800 25.900
+ -16468633.521 7 -12832700.919 6 21498091.477 21498088.335 21498089.597
+ 47.100 40.500
+ -22594593.353 7 -17606181.006 7 20863074.689 20863074.120 20863073.683
+ 45.200 42.600
+ -412962.044 4 -321795.557 3 24477984.262 24477985.719 24477983.499
+ 26.800 19.300
+ -3092712.863 4 -2409909.434 4 24199951.113 24199951.858 24199950.516
+ 24.200 27.900
+ -1672493.881 3 -1303243.449 4 24401902.621 24401904.128 24401902.093
+ 23.400 25.600
+ -22975812.147 7 -17903234.457 7 20397233.405 20397232.589 20397232.428
+ 47.100 45.400
+ -15295927.207 7 -11918903.069 6 22013075.695 22013073.762 22013074.743
+ 42.500 37.300
+ -16979825.238 7 -13231026.904 6 21256757.703 21256756.050 21256756.994
+ 44.000 37.200
+ 06 1 1 15 29 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1215238.370 4 -946939.980 4 24207448.747 24207449.679 24207448.510
+ 28.100 27.100
+ -16400702.760 7 -12779767.883 6 21511018.200 21511015.049 21511016.380
+ 47.300 40.500
+ -22556433.599 7 -17576446.155 7 20870336.459 20870335.717 20870335.360
+ 45.200 42.400
+ -308391.832 4 -240312.369 2 24497883.873 24497884.531 24497883.018
+ 26.500 13.900
+ -3101805.206 3 -2416994.386 4 24198220.907 24198221.857 24198220.525
+ 21.600 29.000
+ -1773815.454 4 -1382195.319 4 24382621.871 24382623.227 24382621.512
+ 24.900 26.200
+ -22994395.969 7 -17917715.365 7 20393697.000 20393696.314 20393696.041
+ 47.100 45.500
+ -15364576.724 7 -11972396.205 6 22000011.976 22000010.305 22000011.047
+ 42.400 37.700
+ -17037895.962 7 -13276276.784 6 21245707.048 21245705.412 21245706.485
+ 44.200 37.200
+ 06 1 1 15 30 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1237807.692 4 -964526.540 4 24203154.572 24203154.616 24203154.095
+ 27.400 26.200
+ -16332474.584 7 -12726603.098 6 21524001.672 21523998.520 21523999.726
+ 47.300 40.300
+ -22517745.413 7 -17546299.542 7 20877698.245 20877697.781 20877697.395
+ 45.200 42.200
+ -203796.578 3 -158809.603 1 24517786.223 24517787.338 24517785.169
+ 22.100 6.500
+ -3110356.902 3 -2423658.055 4 24196593.668 24196594.019 24196592.974
+ 22.100 26.800
+ -1875005.713 4 -1461044.879 4 24363365.963 24363367.357 24363365.161
+ 26.500 26.200
+ -23012359.200 7 -17931712.693 7 20390278.917 20390278.057 20390277.880
+ 47.300 45.600
+ -15433069.310 7 -12025767.046 6 21986978.257 21986976.747 21986977.339
+ 42.500 38.100
+ -17095473.760 7 -13321142.566 6 21234750.109 21234748.621 21234749.671
+ 44.600 37.300
+ 06 1 1 15 30 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1259770.870 4 -981640.667 4 24198975.265 24198975.238 24198974.636
+ 25.300 27.900
+ -16263950.986 7 -12673208.110 6 21537041.320 21537038.049 21537039.391
+ 47.100 40.300
+ -22478529.471 7 -17515741.693 7 20885160.986 20885160.402 20885159.901
+ 45.000 42.200
+ -99177.739 3 -77288.521 24537695.100 24537695.500 24537693.708
+ 19.900 3.000
+ -3118367.750 4 -2429900.285 4 24195069.818 24195070.201 24195069.056
+ 24.200 27.900
+ -1976063.306 3 -1539791.044 4 24344134.904 24344136.543 24344134.498
+ 23.400 25.300
+ -23029700.578 7 -17945225.462 7 20386978.740 20386978.009 20386977.759
+ 47.200 45.400
+ -15501403.881 7 -12079014.765 6 21973974.645 21973972.974 21973973.825
+ 42.800 38.200
+ -17152556.159 7 -13365622.327 6 21223887.734 21223886.206 21223887.152
+ 44.400 37.200
+ 06 1 1 15 31 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1281127.214 4 -998282.029 5 24194910.612 24194911.737 24194910.203
+ 24.600 30.200
+ -16195134.014 7 -12619584.525 6 21550136.395 21550133.632 21550134.588
+ 46.900 40.000
+ -22438786.822 7 -17484773.415 7 20892723.607 20892723.207 20892722.604
+ 45.100 42.300
+ 5463.161 4 4249.811 1 24557607.885 24557608.747 24557607.256
+ 24.600 11.000
+ -3125837.949 3 -2435721.240 4 24193648.153 24193648.221 24193647.544
+ 21.600 27.600
+ -2076987.082 4 -1618432.933 4 24324930.141 24324931.684 24324929.024
+ 24.200 26.800
+ -23046418.812 7 -17958252.666 7 20383797.467 20383796.641 20383796.432
+ 47.000 45.400
+ -15569579.463 7 -12132138.603 6 21961001.434 21960999.628 21961000.391
+ 42.700 38.100
+ -17209141.612 7 -13409714.856 6 21213119.713 21213118.500 21213119.273
+ 44.300 37.700
+ 06 1 1 15 31 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1301876.065 3 -1014450.002 4 24190962.330 24190963.148 24190961.800
+ 23.800 29.700
+ -16126025.610 7 -12565733.844 6 21563287.508 21563284.618 21563285.631
+ 46.800 40.300
+ -22398518.319 7 -17453395.394 7 20900386.403 20900386.156 20900385.577
+ 45.400 42.500
+ 110124.798 4 85804.233 2 24577525.156 24577526.582 24577524.159
+ 26.500 12.600
+ -3132767.532 3 -2441120.955 4 24192329.083 24192330.258 24192328.225
+ 21.600 28.400
+ -2177775.971 4 -1696969.715 4 24305750.889 24305752.242 24305750.330
+ 24.900 25.900
+ -23062512.780 7 -17970793.425 7 20380734.571 20380734.030 20380733.690
+ 47.000 45.400
+ -15637595.192 7 -12185137.877 6 21948058.504 21948056.615 21948057.522
+ 42.600 37.900
+ -17265228.094 7 -13453418.576 6 21202447.150 21202445.461 21202446.343
+ 43.900 37.400
+ 06 1 1 15 32 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1322017.214 3 -1030144.461 5 24187129.420 24187130.559 24187128.740
+ 22.600 31.100
+ -16056627.934 7 -12511657.765 6 21576493.519 21576490.522 21576491.564
+ 46.600 40.100
+ -22357724.553 7 -17421608.071 7 20908149.754 20908149.010 20908148.571
+ 45.300 42.400
+ 214805.601 4 167373.588 2 24597444.871 24597446.598 24597444.072
+ 25.300 15.100
+ -3139156.752 3 -2446099.588 4 24191113.659 24191114.066 24191112.635
+ 21.600 29.000
+ -2278428.745 4 -1775400.436 4 24286597.403 24286598.586 24286596.744
+ 25.600 26.200
+ -23077981.317 7 -17982846.840 7 20377791.402 20377790.517 20377790.361
+ 47.000 45.300
+ -15705450.047 7 -12238011.802 6 21935146.068 21935144.284 21935145.145
+ 42.800 38.000
+ -17320813.850 7 -13496732.120 6 21191869.222 21191867.849 21191868.584
+ 44.100 37.700
+ 06 1 1 15 32 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1341549.965 3 -1045364.784 5 24183412.932 24183413.462 24183412.392
+ 23.000 30.200
+ -15986942.748 7 -12457357.653 6 21589754.096 21589751.310 21589752.289
+ 46.700 40.000
+ -22316406.399 7 -17389412.137 7 20916011.806 20916011.572 20916010.983
+ 45.400 42.300
+ 319504.111 3 248956.727 2 24617367.194 24617369.608 24617366.406
+ 21.600 13.900
+ -3145005.706 3 -2450657.244 4 24190000.687 24190000.822 24189999.773
+ 22.600 27.100
+ -2378944.275 4 -1853724.209 4 24267469.609 24267470.749 24267469.122
+ 24.600 26.800
+ -23092823.507 7 -17994412.188 7 20374966.599 20374966.213 20374965.718
+ 46.800 45.300
+ -15773142.942 7 -12290759.519 6 21922264.560 21922262.691 21922263.641
+ 42.700 38.400
+ -17375896.615 7 -13539653.728 6 21181387.588 21181385.827 21181386.823
+ 44.400 37.400
+ 06 1 1 15 33 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1360473.962 3 -1060110.777 4 24179811.494 24179812.577 24179811.430
+ 22.100 28.600
+ -15916971.935 7 -12402834.974 6 21603069.159 21603066.206 21603067.322
+ 46.600 39.800
+ -22274564.760 7 -17356808.299 7 20923974.230 20923973.688 20923973.320
+ 45.400 42.000
+ 424219.191 3 330552.814 2 24637294.447 24637295.449 24637293.597
+ 23.000 12.600
+ -3150314.312 3 -2454793.843 4 24188990.298 24188990.271 24188989.465
+ 19.300 25.900
+ -2479321.440 4 -1931940.164 4 24248369.024 24248369.418 24248368.405
+ 28.100 24.200
+ -23107038.102 7 -18005488.510 7 20372261.870 20372261.184 20372260.838
+ 46.800 45.300
+ -15840672.809 7 -12343380.208 6 21909414.060 21909412.280 21909413.067
+ 42.900 38.100
+ -17430475.007 7 -13582182.325 6 21171001.241 21170999.875 21171000.693
+ 44.200 37.600
+ 06 1 1 15 33 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1378788.633 3 -1074381.993 4 24176326.452 24176327.376 24176325.931
+ 22.600 29.000
+ -15846717.856 7 -12348091.572 6 21616438.169 21616435.255 21616436.213
+ 46.600 40.000
+ -22232200.279 7 -17323797.036 6 20932036.183 20932035.427 20932035.045
+ 45.100 41.900
+ 528949.390 3 412160.710 1 24657224.665 24657225.535 24657223.448
+ 21.600 11.000
+ -3155083.098 3 -2458509.816 4 24188082.781 24188082.940 24188082.305
+ 23.800 26.200
+ -2579559.113 4 -2010047.415 4 24229294.001 24229295.210 24229293.522
+ 29.700 27.600
+ -23120623.941 7 -18016074.883 7 20369676.432 20369675.950 20369675.437
+ 46.700 45.300
+ -15908038.767 7 -12395873.177 6 21896594.706 21896593.004 21896593.827
+ 42.800 38.400
+ -17484546.812 7 -13624316.181 6 21160711.854 21160710.375 21160711.134
+ 44.300 37.700
+ 06 1 1 15 34 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1396493.752 3 -1088178.235 4 24172957.415 24172958.189 24172957.122
+ 20.500 29.500
+ -15776182.114 7 -12293128.692 6 21629860.458 21629857.583 21629858.793
+ 46.600 39.500
+ -22189313.993 7 -17290379.184 6 20940196.547 20940196.520 20940195.924
+ 45.500 41.900
+ 633693.124 3 493779.117 2 24677156.364 24677157.245 24677155.391
+ 22.100 12.600
+ -3159312.062 3 -2461805.147 4 24187278.780 24187278.525 24187277.890
+ 23.400 27.100
+ -2679655.870 5 -2088044.848 4 24210246.443 24210247.413 24210245.564
+ 30.800 27.400
+ -23133580.257 7 -18026170.722 7 20367210.717 20367210.476 20367209.798
+ 46.500 45.400
+ -15975239.593 7 -12448237.480 6 21883807.098 21883805.113 21883806.070
+ 43.100 38.400
+ -17538110.309 7 -13666053.941 6 21150518.872 21150517.588 21150518.275
+ 44.500 38.000
+ 06 1 1 15 34 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1413588.836 3 -1101499.061 4 24169704.333 24169704.924 24169704.019
+ 21.600 27.100
+ -15705367.059 7 -12237948.168 6 21643336.305 21643333.443 21643334.490
+ 46.600 39.500
+ -22145906.921 7 -17256555.524 6 20948457.386 20948456.620 20948456.238
+ 45.500 41.800
+ 738448.948 3 575406.971 3 24697090.514 24697093.209 24697089.738
+ 23.000 19.300
+ -3163001.410 3 -2464679.971 4 24186575.979 24186576.547 24186575.349
+ 20.500 27.900
+ -2779610.738 5 -2165931.713 4 24191225.333 24191226.628 24191224.878
+ 30.600 29.700
+ -23145906.035 7 -18035775.233 7 20364865.356 20364864.909 20364864.366
+ 46.600 45.400
+ -16042274.215 7 -12500472.273 6 21871050.686 21871049.005 21871049.779
+ 43.500 38.800
+ -17591163.436 7 -13707394.018 6 21140423.521 21140421.948 21140422.762
+ 44.600 38.200
+ 06 1 1 15 35 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1430073.490 3 -1114344.323 4 24166567.201 24166568.014 24166566.770
+ 22.100 27.600
+ -15634274.359 7 -12182551.298 6 21656864.813 21656861.919 21656863.091
+ 46.600 39.300
+ -22101979.791 7 -17222326.627 6 20956816.595 20956815.610 20956815.412
+ 45.300 41.500
+ 843215.609 3 657043.204 2 24717026.683 24717029.439 24717026.098
+ 20.500 16.100
+ -3166151.465 3 -2467134.585 4 24185977.055 24185977.240 24185976.378
+ 23.000 28.100
+ -2879422.674 4 -2243707.181 4 24172231.726 24172232.832 24172231.164
+ 29.000 28.800
+ -23157600.121 7 -18044887.518 7 20362640.293 20362639.595 20362639.233
+ 46.500 45.500
+ -16109141.731 7 -12552576.848 6 21858326.461 21858324.435 21858325.380
+ 43.200 38.400
+ -17643704.501 7 -13748335.077 6 21130424.973 21130423.571 21130424.423
+ 44.700 37.700
+ 06 1 1 15 35 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1445947.360 3 -1126713.583 4 24163546.797 24163546.980 24163545.985
+ 18.600 27.600
+ -15562905.873 7 -12126939.535 6 21670445.798 21670443.045 21670444.060
+ 46.500 39.400
+ -22057533.760 7 -17187693.391 6 20965273.945 20965273.641 20965273.163
+ 45.600 41.600
+ 947991.688 3 738686.802 2 24736965.631 24736967.476 24736964.524
+ 23.800 16.100
+ -3168762.398 3 -2469169.135 4 24185479.432 24185480.393 24185478.604
+ 20.500 28.800
+ -2979090.616 5 -2321370.457 4 24153265.588 24153266.554 24153264.934
+ 30.200 27.100
+ -23168661.513 7 -18053506.796 7 20360535.156 20360534.711 20360534.204
+ 46.700 45.400
+ -16175840.846 7 -12604550.203 6 21845633.653 21845632.015 21845632.636
+ 43.000 38.800
+ -17695731.748 7 -13788875.761 6 21120524.748 21120523.013 21120524.078
+ 44.800 37.700
+ 06 1 1 15 36 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1461210.265 3 -1138606.767 4 24160641.910 24160643.252 24160641.540
+ 18.600 26.500
+ -15491263.783 7 -12071114.576 6 21684078.971 21684076.149 21684077.025
+ 46.400 39.500
+ -22012569.593 7 -17152656.402 6 20973830.914 20973830.128 20973829.685
+ 45.600 41.800
+ -3170834.610 3 -2470783.869 4 24185085.351 24185086.304 24185084.735
+ 21.600 28.800
+ -3078613.313 4 -2398920.536 4 24134327.135 24134327.971 24134326.065
+ 28.600 29.000
+ -23179089.494 7 -18061632.504 7 20358551.054 20358550.386 20358550.056
+ 46.700 45.500
+ -16242370.685 7 -12656391.653 6 21832973.833 21832971.827 21832972.657
+ 43.000 39.000
+ -17747243.266 7 -13829014.574 6 21110722.466 21110720.639 21110721.760
+ 44.900 38.300
+ 06 1 1 15 36 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1475861.977 2 -1150023.722 2 24157853.924 24157853.165 24157853.512
+ 17.800 17.000
+ -15419350.206 7 -12015078.067 6 21697763.648 21697760.877 21697761.901
+ 46.400 39.400
+ -21967088.266 7 -17117216.430 6 20982485.375 20982484.865 20982484.410
+ 45.300 41.500
+ -3172368.522 3 -2471979.191 4 24184793.531 24184794.595 24184792.860
+ 21.600 29.700
+ -3177989.463 4 -2476356.433 4 24115415.862 24115417.474 24115415.653
+ 29.000 28.800
+ -23188883.036 7 -18069263.846 7 20356687.365 20356686.766 20356686.413
+ 46.900 45.400
+ -16308730.152 7 -12708100.349 6 21820345.683 21820344.347 21820344.707
+ 43.300 39.500
+ -17798237.062 7 -13868749.967 6 21101018.580 21101016.971 21101018.017
+ 45.300 38.200
+ 06 1 1 15 37 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1489902.066 1 -1160964.056 4 24155181.530 24155186.140 24155180.475
+ 9.000 25.300
+ -15347166.770 7 -11958831.285 6 21711499.612 21711496.944 21711497.721
+ 46.000 39.100
+ -21921091.093 7 -17081374.523 6 20991238.100 20991237.805 20991237.351
+ 45.300 41.300
+ -3173364.186 3 -2472755.081 4 24184604.340 24184604.601 24184603.767
+ 23.400 28.100
+ -3277217.997 4 -2553677.313 4 24096533.252 24096534.754 24096533.041
+ 29.000 29.000
+ -23198041.163 7 -18076400.059 7 20354944.697 20354944.012 20354943.656
+ 46.800 45.400
+ -16374918.128 7 -12759675.407 6 21807750.946 21807749.104 21807749.779
+ 43.600 39.600
+ -17848712.129 7 -13908081.151 6 21091413.658 21091411.717 21091412.902
+ 45.300 38.200
+ 06 1 1 15 37 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1503330.425 3 -1171427.785 4 24152627.549 24152627.334 24152626.986
+ 20.500 25.900
+ -15274715.567 7 -11902375.853 6 21725286.798 21725283.908 21725284.812
+ 45.900 39.100
+ -21874578.851 7 -17045131.255 6 21000089.774 21000088.872 21000088.580
+ 45.100 41.300
+ -3173822.047 4 -2473111.853 4 24184517.938 24184517.573 24184517.397
+ 25.600 27.400
+ -3376297.808 4 -2630882.306 4 24077679.565 24077680.057 24077678.765
+ 29.200 25.900
+ -23206563.178 7 -18083040.600 7 20353322.793 20353322.289 20353321.847
+ 46.500 45.300
+ -16440933.802 7 -12811116.209 6 21795188.359 21795186.697 21795187.445
+ 43.900 39.200
+ -17898666.589 7 -13947006.671 6 21081907.460 21081905.847 21081906.746
+ 45.200 38.500
+ 06 1 1 15 38 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1516147.023 3 -1181414.769 4 24150188.092 24150189.435 24150187.683
+ 19.300 24.200
+ -15201998.556 7 -11845713.293 6 21739124.581 21739121.656 21739122.597
+ 46.100 39.300
+ -21827552.718 7 -17008487.538 6 21009038.520 21009037.575 21009037.299
+ 45.100 41.100
+ -3173742.381 3 -2473049.835 4 24184532.272 24184532.908 24184531.373
+ 21.100 28.600
+ -3475228.264 4 -2707970.908 4 24058853.546 24058854.584 24058852.782
+ 29.500 28.100
+ -23214448.251 7 -18089184.825 7 20351822.463 20351821.854 20351821.420
+ 46.500 45.400
+ -16506775.706 7 -12862421.601 6 21782659.201 21782657.329 21782658.145
+ 43.900 39.100
+ -17948098.442 7 -13985524.954 6 21072500.781 21072499.210 21072500.127
+ 45.300 38.600
+ 06 1 1 15 38 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1528351.427 2 -1190924.669 2 24147865.428 24147866.242 24147864.965
+ 16.100 17.800
+ -15129017.845 7 -11788845.258 6 21753012.427 21753009.435 21753010.381
+ 46.100 39.000
+ -21780013.897 7 -16971444.338 6 21018083.914 21018083.938 21018083.423
+ 45.200 41.200
+ -3173125.834 3 -2472569.451 4 24184649.681 24184650.386 24184648.914
+ 21.100 28.600
+ -3574007.606 5 -2784941.740 4 24040055.869 24040057.314 24040055.434
+ 30.400 27.400
+ -23221695.550 7 -18094832.080 7 20350443.202 20350442.811 20350442.238
+ 46.500 45.400
+ -16572442.934 7 -12913590.884 6 21770163.102 21770161.319 21770162.094
+ 44.000 39.300
+ -17997005.838 7 -14023634.569 6 21063194.099 21063192.452 21063193.446
+ 45.600 38.900
+ 06 1 1 15 39 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1539943.511 3 -1199957.520 4 24145660.070 24145660.848 24145659.661
+ 19.300 24.900
+ -15055775.393 7 -11731773.261 6 21766949.776 21766947.138 21766948.052
+ 46.100 39.200
+ -21731963.254 7 -16934002.313 6 21027228.287 21027227.785 21027227.305
+ 45.100 41.200
+ -3171972.763 3 -2471670.975 4 24184868.463 24184869.807 24184867.601
+ 21.600 27.100
+ -3672634.942 4 -2861794.111 4 24021287.994 24021289.032 24021287.364
+ 29.700 28.600
+ -23228303.895 7 -18099981.452 7 20349185.755 20349185.395 20349184.806
+ 46.500 45.600
+ -16637934.520 7 -12964623.290 6 21757700.230 21757698.556 21757699.377
+ 44.000 39.100
+ -18045387.112 7 -14061334.218 6 21053987.213 21053985.736 21053986.679
+ 45.600 39.100
+ 06 1 1 15 39 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1550923.442 2 -1208513.273 3 24143570.400 24143571.158 24143570.020
+ 17.800 23.800
+ -14982272.830 7 -11674498.581 6 21780936.771 21780934.102 21780935.157
+ 45.900 38.600
+ -21683402.093 7 -16896162.471 6 21036469.559 21036468.875 21036468.306
+ 44.900 41.400
+ -3170283.650 4 -2470354.857 4 24185191.455 24185190.779 24185190.651
+ 25.300 26.500
+ -3771109.133 5 -2938527.162 4 24002549.448 24002549.793 24002548.715
+ 31.500 28.600
+ -23234272.462 7 -18104632.299 7 20348049.909 20348049.471 20348048.964
+ 46.300 45.600
+ -16703249.107 7 -13015517.781 6 21745271.526 21745269.557 21745270.458
+ 43.800 39.200
+ -18093241.102 7 -14098622.997 6 21044881.111 21044879.441 21044880.406
+ 45.600 38.900
+ 06 1 1 15 40 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1561290.809 3 -1216591.868 4 24141597.155 24141599.276 24141596.815
+ 19.300 25.300
+ -14908512.169 7 -11617022.782 6 21794973.095 21794970.284 21794971.403
+ 45.800 38.500
+ -21634331.524 7 -16857925.682 6 21045806.780 21045806.708 21045805.845
+ 44.800 41.300
+ -3168058.846 3 -2468621.271 4 24185614.082 24185614.403 24185613.456
+ 23.400 25.900
+ -3869429.125 5 -3015140.060 4 23983839.385 23983840.028 23983838.770
+ 30.200 28.400
+ -23239600.976 7 -18108784.401 7 20347035.947 20347035.396 20347034.943
+ 46.300 45.300
+ -16768385.876 7 -13066273.710 6 21732876.178 21732874.598 21732875.342
+ 44.100 39.700
+ -18140566.001 7 -14135499.503 6 21035875.253 21035873.680 21035874.646
+ 45.500 39.100
+ 06 1 1 15 40 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1571045.846 1 -1224193.218 2 24139741.186 24139743.403 24139740.701
+ 11.000 17.000
+ -14834495.286 7 -11559347.329 6 21809058.457 21809055.301 21809056.458
+ 45.900 38.600
+ -21584752.547 7 -16819292.741 6 21055241.317 21055241.277 21055240.471
+ 45.000 41.400
+ -3165298.871 3 -2466470.678 4 24186139.327 24186139.621 24186138.598
+ 22.600 25.600
+ -3967594.164 5 -3091632.176 4 23965158.531 23965159.721 23965158.072
+ 30.800 27.900
+ -23244289.211 7 -18112437.583 7 20346143.689 20346143.351 20346142.801
+ 46.600 45.400
+ -16833343.394 7 -13116889.953 6 21720515.522 21720513.764 21720514.468
+ 44.200 40.100
+ -18187359.882 7 -14171962.228 6 21026970.611 21026969.039 21026969.930
+ 45.400 38.900
+ 06 1 1 15 41 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1580188.395 2 -1231317.292 4 24138001.894 24138002.613 24138001.496
+ 16.100 25.300
+ -14760224.428 7 -11501473.972 6 21823191.560 21823188.601 21823189.729
+ 45.700 38.700
+ -21534666.426 7 -16780264.624 6 21064772.696 21064772.384 21064771.742
+ 44.900 41.300
+ -3162004.337 3 -2463903.537 4 24186766.314 24186766.545 24186765.548
+ 21.100 25.900
+ -4065602.483 5 -3168002.154 4 23946508.333 23946509.436 23946507.596
+ 32.400 28.400
+ -23248335.719 7 -18115590.722 7 20345373.964 20345373.332 20345373.019
+ 46.700 45.300
+ -16898120.663 7 -13167365.741 6 21708188.742 21708187.034 21708187.711
+ 44.000 40.200
+ -18233621.500 7 -14208010.204 6 21018167.332 21018165.835 21018166.677
+ 45.200 39.200
+ 06 1 1 15 41 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1588718.498 3 -1237964.148 3 24136378.830 24136379.291 24136378.402
+ 19.300 22.600
+ -14685701.516 7 -11443404.208 6 21837372.727 21837370.026 21837371.029
+ 45.800 38.500
+ -21484074.427 7 -16740842.308 6 21074400.129 21074399.816 21074399.039
+ 44.900 41.000
+ -3158175.580 3 -2460920.154 4 24187494.403 24187495.178 24187494.074
+ 22.100 25.300
+ -4163453.713 4 -3244249.739 4 23927887.972 23927888.642 23927887.263
+ 29.700 28.100
+ -23251740.019 7 -18118243.437 7 20344726.030 20344725.532 20344725.119
+ 46.700 45.300
+ -16962716.634 7 -13217700.253 6 21695896.402 21695894.690 21695895.391
+ 43.900 39.900
+ -18279349.052 7 -14243642.033 6 21009465.753 21009464.082 21009465.021
+ 45.300 39.200
+ 06 1 1 15 42 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1596636.038 3 -1244133.735 3 24134871.504 24134872.741 24134870.928
+ 19.300 22.600
+ -14610928.096 7 -11385139.238 6 21851601.698 21851598.814 21851599.836
+ 45.900 38.100
+ -21432977.605 7 -16701026.634 6 21084123.362 21084123.175 21084122.419
+ 45.000 41.000
+ -3153813.223 3 -2457520.944 4 24188325.239 24188325.216 24188324.581
+ 22.100 24.600
+ -4261146.082 4 -3320373.528 5 23909298.023 23909298.777 23909297.068
+ 29.700 30.100
+ -23254501.468 7 -18120395.228 7 20344200.634 20344200.120 20344199.588
+ 46.600 45.300
+ -17027129.857 7 -13267892.373 6 21683639.264 21683636.914 21683638.152
+ 44.300 39.400
+ -18324541.120 7 -14278856.601 6 21000865.742 21000864.295 21000865.151
+ 45.500 39.500
+ 06 1 1 15 42 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1603941.217 3 -1249826.100 3 24133481.616 24133482.862 24133481.075
+ 21.600 22.600
+ -14535906.440 7 -11326680.842 6 21865878.084 21865875.043 21865876.249
+ 46.000 38.100
+ -21381377.372 7 -16660818.683 6 21093942.776 21093942.370 21093941.804
+ 44.900 41.000
+ -3148918.109 3 -2453706.622 4 24189256.386 24189257.027 24189255.590
+ 21.600 24.900
+ -4358678.708 4 -3396372.863 5 23890737.057 23890738.500 23890737.112
+ 29.900 30.100
+ -23256619.230 7 -18122045.450 7 20343797.548 20343797.122 20343796.522
+ 46.400 45.400
+ -17091359.752 7 -13317941.637 6 21671416.363 21671414.590 21671415.481
+ 44.300 40.000
+ -18369195.830 7 -14313652.452 6 20992368.341 20992366.748 20992367.551
+ 45.200 39.500
+ 06 1 1 15 43 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1610634.021 4 -1255041.303 3 24132208.734 24132209.202 24132208.175
+ 24.200 23.000
+ -14460638.245 7 -11268030.335 6 21880200.887 21880198.132 21880199.199
+ 45.500 38.300
+ -21329274.625 7 -16620219.163 6 21103857.866 21103857.159 21103856.733
+ 44.700 40.900
+ -3143490.640 4 -2449477.474 4 24190289.343 24190290.000 24190288.707
+ 25.300 26.800
+ -4456050.778 5 -3472247.091 5 23872208.301 23872208.965 23872207.671
+ 30.100 30.400
+ -23258092.992 7 -18123193.853 7 20343517.083 20343516.625 20343516.138
+ 46.500 45.300
+ -17155404.671 7 -13367846.752 6 21659229.117 21659227.532 21659228.132
+ 44.000 40.500
+ -18413312.193 7 -14348028.811 6 20983972.976 20983971.732 20983972.378
+ 45.200 39.300
+ 06 1 1 15 43 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1616714.688 3 -1259779.476 3 24131051.727 24131052.009 24131051.132
+ 22.100 23.000
+ -14385125.700 7 -11209189.429 6 21894570.522 21894567.795 21894568.779
+ 45.500 38.100
+ -21276670.674 7 -16579229.095 6 21113867.942 21113867.350 21113866.740
+ 44.500 40.700
+ -3137531.312 3 -2444833.868 4 24191423.797 24191424.067 24191423.276
+ 23.400 26.200
+ -4553260.864 5 -3547995.123 5 23853709.970 23853710.518 23853709.104
+ 31.500 30.400
+ -23258922.211 7 -18123840.011 7 20343359.610 20343358.809 20343358.588
+ 46.800 45.200
+ -17219263.669 7 -13417606.999 6 21647077.158 21647075.414 21647076.166
+ 44.300 40.400
+ -18456888.769 7 -14381984.564 6 20975680.835 20975679.403 20975680.104
+ 45.200 39.900
+ 06 1 1 15 44 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1622183.184 3 -1264040.674 4 24130010.694 24130011.432 24130010.285
+ 23.000 24.200
+ -14309370.395 7 -11150159.358 6 21908986.059 21908983.596 21908984.360
+ 45.000 38.000
+ -21223567.276 7 -16537849.848 6 21123972.919 21123972.598 21123971.937
+ 44.600 40.500
+ -3131041.068 3 -2439776.618 4 24192658.081 24192659.061 24192657.372
+ 22.100 26.800
+ -4650308.225 5 -3623616.361 5 23835242.195 23835242.940 23835241.630
+ 31.300 30.600
+ -23259106.309 7 -18123983.483 7 20343324.629 20343323.864 20343323.577
+ 46.800 45.300
+ -17282935.760 7 -13467221.606 6 21634960.580 21634958.926 21634959.711
+ 44.300 40.300
+ -18499923.647 7 -14415518.220 6 20967491.299 20967490.046 20967490.746
+ 45.400 39.600
+ 06 1 1 15 44 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1627039.798 3 -1267825.104 3 24129086.330 24129086.853 24129085.867
+ 22.100 19.900
+ -14233374.251 7 -11090941.627 6 21923447.986 21923445.117 21923446.278
+ 45.100 38.000
+ -21169965.778 7 -16496082.475 6 21134172.514 21134172.666 21134172.000
+ 44.700 40.600
+ -3124020.433 3 -2434306.005 4 24193994.871 24193995.198 24193994.087
+ 22.600 26.200
+ -4747191.734 5 -3699109.940 4 23816806.158 23816806.387 23816805.410
+ 32.100 29.200
+ -23258644.670 7 -18123623.780 7 20343412.371 20343411.741 20343411.407
+ 46.600 45.300
+ -17346419.742 7 -13516689.639 6 21622879.936 21622878.252 21622879.054
+ 44.300 40.200
+ -18542415.419 7 -14448628.678 6 20959405.579 20959404.065 20959404.895
+ 45.300 39.400
+ 06 1 1 15 45 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1631284.766 3 -1271132.916 4 24128278.398 24128279.824 24128277.551
+ 19.900 25.300
+ -14157139.482 7 -11031537.958 6 21937954.796 21937952.238 21937952.928
+ 44.900 37.900
+ -21115867.376 7 -16453927.908 6 21144467.376 21144467.243 21144466.655
+ 44.900 40.400
+ -3116470.002 3 -2428422.602 4 24195431.860 24195431.858 24195430.997
+ 23.400 24.200
+ -4843910.424 5 -3774475.102 4 23798400.499 23798401.173 23798400.215
+ 32.100 28.600
+ -23257536.791 7 -18122760.515 7 20343623.305 20343622.567 20343622.286
+ 46.900 45.200
+ -17409714.424 7 -13566010.159 6 21610835.399 21610833.928 21610834.465
+ 44.300 40.500
+ -18584362.841 7 -14481314.972 6 20951423.209 20951421.695 20951422.601
+ 45.400 39.500
+ 06 1 1 15 45 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1634918.216 3 -1273964.166 3 24127587.325 24127587.764 24127586.903
+ 23.400 22.100
+ -14080667.908 7 -10971949.761 6 21952506.977 21952504.473 21952505.316
+ 45.000 38.000
+ -21061273.349 7 -16411387.133 6 21154857.024 21154856.113 21154855.759
+ 44.800 40.200
+ -3108390.639 3 -2422127.046 4 24196968.808 24196969.200 24196967.934
+ 22.600 25.900
+ -4940462.973 5 -3849710.815 4 23780027.122 23780027.970 23780026.509
+ 31.800 27.900
+ -23255782.590 7 -18121393.623 7 20343956.946 20343956.343 20343955.927
+ 46.400 45.100
+ -17472818.696 7 -13615182.310 6 21598827.185 21598825.482 21598826.210
+ 44.800 40.700
+ -18625764.649 7 -14513576.113 6 20943544.960 20943543.074 20943544.270
+ 45.500 39.500
+ 06 1 1 15 46 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1637940.349 3 -1276319.117 3 24127012.368 24127013.046 24127011.939
+ 23.000 23.400
+ -14003961.213 7 -10912178.360 6 21967103.981 21967101.070 21967102.058
+ 44.800 37.500
+ -21006184.918 7 -16368461.102 6 21165339.770 21165339.134 21165338.653
+ 44.500 40.000
+ -3099783.051 3 -2415419.853 4 24198607.163 24198607.397 24198606.209
+ 23.400 25.600
+ -5036848.397 5 -3924816.280 4 23761686.170 23761686.450 23761685.351
+ 32.800 28.800
+ -23253381.521 7 -18119522.679 7 20344413.702 20344413.264 20344412.718
+ 46.400 45.100
+ -17535731.385 7 -13664205.177 6 21586855.027 21586853.400 21586854.110
+ 44.800 40.400
+ -18666619.445 7 -14545411.017 6 20935770.236 20935768.699 20935769.705
+ 45.600 39.700
+ 06 1 1 15 46 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1640351.617 4 -1278198.056 3 24126553.857 24126554.346 24126553.259
+ 24.600 23.400
+ -13927021.531 7 -10852225.401 6 21981745.213 21981742.369 21981743.319
+ 45.100 37.600
+ -20950603.769 7 -16325151.143 6 21175915.787 21175915.989 21175915.162
+ 44.500 39.900
+ -3090648.033 3 -2408301.697 4 24200344.644 24200345.798 24200343.997
+ 20.500 25.600
+ -5133065.878 5 -3999790.898 4 23743376.412 23743376.692 23743375.620
+ 32.300 29.500
+ -23250333.034 7 -18117147.254 7 20344993.839 20344993.416 20344992.862
+ 46.400 45.000
+ -17598451.152 7 -13713077.725 6 21574920.221 21574918.243 21574919.189
+ 44.800 40.500
+ -18706925.318 7 -14576818.179 6 20928100.459 20928098.753 20928099.764
+ 45.700 39.800
+ 06 1 1 15 47 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1642152.026 3 -1279601.006 2 24126210.859 24126210.841 24126210.201
+ 21.100 17.800
+ -13849850.704 7 -10792092.339 6 21996430.328 21996427.491 21996428.512
+ 44.900 37.200
+ -20894531.338 7 -16281458.372 6 21186585.878 21186586.226 21186585.427
+ 44.700 40.000
+ -3080986.366 3 -2400773.177 4 24202183.524 24202184.335 24202182.971
+ 20.500 25.900
+ -5229114.165 5 -4074633.665 4 23725098.565 23725099.238 23725097.999
+ 31.600 28.800
+ -23246636.542 7 -18114266.894 7 20345697.427 20345696.849 20345696.410
+ 46.600 45.100
+ -17660976.789 7 -13761798.998 6 21563021.990 21563020.072 21563020.959
+ 44.700 40.900
+ -18746681.317 7 -14607796.874 6 20920534.944 20920533.320 20920534.373
+ 45.600 39.500
+ 06 1 1 15 47 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1643342.201 3 -1280528.475 3 24125984.277 24125984.541 24125983.770
+ 22.100 19.900
+ -13772450.421 7 -10731780.481 6 22011158.969 22011156.541 22011157.201
+ 44.800 37.700
+ -20837968.755 7 -16237383.664 6 21197349.921 21197349.764 21197349.107
+ 44.400 39.900
+ -3070798.750 3 -2392834.833 4 24204122.854 24204123.014 24204121.981
+ 23.400 24.200
+ -5324991.896 5 -4149343.500 4 23706853.381 23706854.481 23706853.017
+ 32.100 29.900
+ -23242292.218 7 -18110881.726 7 20346524.349 20346523.579 20346523.296
+ 46.600 45.200
+ -17723307.370 7 -13810368.276 6 21551160.771 21551159.091 21551159.740
+ 44.600 41.200
+ -18785886.027 7 -14638345.997 6 20913074.610 20913073.005 20913073.941
+ 45.600 39.700
+ 06 1 1 15 48 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1643922.264 3 -1280980.490 3 24125874.395 24125874.670 24125873.807
+ 23.400 21.100
+ -13694822.756 7 -10671291.444 6 22025931.173 22025928.435 22025929.206
+ 44.400 37.500
+ -20780917.174 7 -16192927.918 6 21208207.148 21208206.503 21208205.878
+ 44.100 40.200
+ -3060086.015 3 -2384487.288 3 24206161.266 24206161.705 24206160.534
+ 23.800 23.400
+ -5420698.381 5 -4223919.879 5 23688641.240 23688642.261 23688640.769
+ 32.000 31.100
+ -23237299.496 7 -18106991.314 7 20347474.251 20347473.655 20347473.253
+ 46.600 45.100
+ -17785441.477 7 -13858784.460 6 21539336.958 21539335.300 21539336.030
+ 44.700 41.200
+ -18824538.350 7 -14668464.685 6 20905719.442 20905717.695 20905718.766
+ 45.900 39.900
+ 06 1 1 15 48 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1643892.802 4 -1280957.573 3 24125879.653 24125880.421 24125879.043
+ 24.200 21.100
+ -13616969.546 7 -10610626.654 6 22040746.060 22040743.458 22040744.331
+ 44.500 37.400
+ -20723378.475 7 -16148092.603 6 21219156.312 21219155.783 21219155.025
+ 44.000 40.400
+ -3048849.068 3 -2375731.242 3 24208299.247 24208300.292 24208298.542
+ 22.100 23.800
+ -5516232.567 5 -4298361.989 5 23670461.837 23670462.565 23670461.184
+ 31.100 32.000
+ -23231658.412 7 -18102595.685 7 20348547.634 20348547.162 20348546.692
+ 46.600 45.200
+ -17847378.057 7 -13907046.732 6 21527550.848 21527549.056 21527549.961
+ 44.800 40.900
+ -18862636.833 7 -14698151.814 6 20898469.538 20898467.839 20898468.866
+ 45.900 39.800
+ 06 1 1 15 49 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1643254.033 4 -1280459.843 3 24126001.639 24126002.221 24126001.209
+ 24.200 22.600
+ -13538892.461 7 -10549787.419 6 22055603.719 22055601.145 22055601.849
+ 44.100 37.300
+ -20665353.987 7 -16102878.750 6 21230198.280 21230197.358 21230196.809
+ 43.800 39.800
+ -3037088.870 4 -2366567.474 4 24210537.370 24210538.277 24210536.521
+ 24.600 24.600
+ -5611593.452 5 -4372669.042 5 23652314.639 23652315.804 23652314.174
+ 30.600 31.600
+ -23225368.388 7 -18097694.390 7 20349744.822 20349744.197 20349743.813
+ 46.800 45.200
+ -17909115.818 7 -13955154.079 6 21515802.675 21515800.680 21515801.691
+ 44.800 40.900
+ -18900180.165 7 -14727406.353 6 20891325.091 20891323.509 20891324.528
+ 45.800 40.000
+ 06 1 1 15 49 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1642006.478 4 -1279487.759 3 24126238.570 24126239.381 24126238.114
+ 25.600 20.500
+ -13460593.605 7 -10488775.368 6 22070503.848 22070500.840 22070501.784
+ 44.300 37.200
+ -20606845.461 7 -16057287.722 6 21241331.631 21241331.170 21241330.472
+ 43.900 39.700
+ -3024806.127 4 -2356996.556 3 24212875.093 24212875.173 24212874.291
+ 25.900 21.600
+ -5706779.961 5 -4446840.224 5 23634201.557 23634202.290 23634200.877
+ 32.400 31.800
+ -23218429.158 7 -18092287.217 7 20351065.274 20351064.711 20351064.268
+ 46.600 45.000
+ -17970653.672 7 -14003105.659 6 21504092.481 21504090.481 21504091.425
+ 44.800 41.100
+ -18937167.451 7 -14756227.610 6 20884286.683 20884284.984 20884286.116
+ 46.000 40.000
+ 06 1 1 15 50 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1640150.760 3 -1278041.754 3 24126591.934 24126592.459 24126591.362
+ 22.600 22.600
+ -13382074.651 7 -10427591.811 6 22085445.060 22085442.753 22085443.360
+ 44.000 37.300
+ -20547854.304 7 -16011320.624 6 21252556.769 21252556.890 21252556.114
+ 44.100 39.800
+ -3012001.888 4 -2347019.260 3 24215311.649 24215311.647 24215310.789
+ 25.300 20.500
+ -5801791.099 5 -4520874.749 5 23616121.613 23616122.040 23616120.889
+ 32.400 31.300
+ -23210840.413 7 -18086373.935 7 20352509.422 20352508.662 20352508.371
+ 46.600 45.100
+ -18031990.153 7 -14050900.325 6 21492420.516 21492418.598 21492419.526
+ 45.100 41.400
+ -18973597.076 7 -14784614.330 6 20877354.254 20877352.775 20877353.731
+ 45.800 40.200
+ 06 1 1 15 50 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1637687.072 4 -1276122.059 3 24127061.028 24127061.216 24127060.641
+ 25.300 20.500
+ -13303337.740 7 -10366238.415 6 22100428.561 22100425.801 22100426.637
+ 44.100 36.800
+ -20488381.812 7 -15964978.463 6 21263873.625 21263874.164 21263873.332
+ 44.000 39.700
+ -2998677.052 4 -2336636.296 3 24217847.095 24217847.304 24217846.345
+ 26.800 22.600
+ -5896625.930 5 -4594771.879 5 23598074.891 23598075.611 23598074.303
+ 32.400 32.000
+ -23202602.042 7 -18079954.444 7 20354076.931 20354076.423 20354075.962
+ 46.500 44.800
+ -18093124.347 7 -14098537.363 6 21480787.040 21480785.264 21480786.041
+ 45.200 41.600
+ -19009467.655 7 -14812565.433 6 20870528.331 20870526.922 20870527.729
+ 45.800 40.300
+ 06 1 1 15 51 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1634616.243 3 -1273729.212 3 24127644.621 24127645.430 24127644.098
+ 20.500 20.500
+ -13224384.466 7 -10304716.427 6 22115452.811 22115449.934 22115450.937
+ 43.800 36.500
+ -20428429.742 7 -15918262.613 6 21275282.210 21275282.727 21275281.762
+ 43.900 39.600
+ -2984832.614 4 -2325848.460 3 24220481.654 24220481.895 24220480.867
+ 24.900 21.600
+ -5991283.174 5 -4668530.640 5 23580062.122 23580062.766 23580061.554
+ 32.700 31.800
+ -23193714.189 7 -18073028.867 7 20355768.275 20355767.884 20355767.305
+ 46.600 45.100
+ -18154054.913 7 -14146015.730 6 21469192.248 21469190.412 21469191.262
+ 44.800 41.500
+ -19044778.604 7 -14840080.465 6 20863808.896 20863807.437 20863808.281
+ 45.800 40.300
+ 06 1 1 15 51 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1630938.556 3 -1270863.498 3 24128344.484 24128345.872 24128344.254
+ 22.100 23.000
+ -13145216.837 7 -10243027.406 6 22130517.748 22130515.415 22130515.874
+ 43.600 36.900
+ -20367999.617 7 -15871174.249 6 21286782.319 21286782.272 21286781.377
+ 43.600 39.800
+ -2970469.634 4 -2314656.569 3 24223214.899 24223215.419 24223214.356
+ 27.400 23.400
+ -6085762.167 5 -4742150.511 5 23562083.351 23562083.587 23562082.608
+ 33.000 31.600
+ -23184176.518 7 -18065596.940 7 20357583.386 20357582.823 20357582.361
+ 46.600 45.100
+ -18214780.564 7 -14193334.427 6 21457636.686 21457634.743 21457635.617
+ 45.100 41.500
+ -19079528.448 7 -14867158.271 6 20857196.350 20857194.747 20857195.676
+ 45.900 40.400
+ 06 1 1 15 52 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1626654.706 4 -1267525.471 3 24129160.556 24129160.912 24129159.726
+ 24.900 22.600
+ -13065836.745 7 -10181172.825 6 22145623.218 22145620.772 22145621.433
+ 43.500 36.500
+ -20307093.113 7 -15823714.677 6 21298372.714 21298372.536 21298371.622
+ 43.800 39.700
+ -2955588.868 4 -2303061.189 3 24226046.679 24226047.140 24226045.772
+ 25.900 23.800
+ -6180061.728 5 -4815630.566 5 23544138.409 23544139.012 23544137.903
+ 32.700 31.300
+ -23173989.031 7 -18057658.663 7 20359522.157 20359521.408 20359521.070
+ 46.700 44.900
+ -18275300.254 7 -14240492.630 6 21446119.746 21446118.288 21446118.920
+ 45.100 41.700
+ -19113716.189 7 -14893798.073 6 20850690.710 20850689.098 20850689.932
+ 46.000 40.400
+ 06 1 1 15 52 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1621765.222 4 -1263715.523 3 24130090.449 24130091.114 24130090.091
+ 24.200 19.300
+ -12986245.744 7 -10119153.897 6 22160768.974 22160766.569 22160767.188
+ 43.500 36.600
+ -20245711.639 7 -15775884.999 6 21310053.477 21310053.095 21310052.247
+ 43.700 39.300
+ -2940191.437 4 -2291063.218 3 24228976.829 24228976.628 24228976.209
+ 27.100 20.500
+ -6274180.773 5 -4888969.959 5 23526228.315 23526228.585 23526227.503
+ 33.000 31.300
+ -23163151.542 7 -18049213.893 7 20361584.453 20361583.719 20361583.451
+ 46.700 44.900
+ -18335612.498 7 -14287489.193 6 21434643.172 21434641.356 21434642.171
+ 45.200 41.700
+ -19147340.766 7 -14919999.045 6 20844292.245 20844290.483 20844291.492
+ 45.900 40.500
+ 06 1 1 15 53 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1616270.821 4 -1259434.182 3 24131136.294 24131136.954 24131135.735
+ 24.600 21.100
+ -12906445.640 7 -10056972.042 6 22175954.513 22175951.864 22175952.512
+ 43.300 36.100
+ -20183856.773 7 -15727686.445 6 21321824.409 21321823.577 21321822.969
+ 43.600 39.100
+ -2924278.428 4 -2278663.543 3 24232005.182 24232004.938 24232004.306
+ 25.600 19.900
+ -6368118.534 5 -4962168.107 5 23508352.276 23508352.823 23508351.677
+ 32.700 32.400
+ -23151664.059 7 -18040262.632 7 20363770.370 20363769.825 20363769.351
+ 46.600 45.000
+ -18395716.047 7 -14334323.132 6 21423205.855 21423204.060 21423204.821
+ 45.200 41.900
+ -19180400.908 7 -14945760.204 6 20838000.908 20837999.486 20838000.292
+ 46.000 40.700
+ 06 1 1 15 53 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1610172.154 4 -1254681.974 2 24132296.893 24132296.506 24132296.312
+ 25.300 16.100
+ -12826438.686 7 -9994628.998 6 22191179.417 22191176.664 22191177.473
+ 43.400 36.200
+ -20121530.297 7 -15679120.405 6 21333684.788 21333683.911 21333683.392
+ 43.500 39.100
+ -2907850.895 4 -2265862.896 3 24235130.970 24235131.662 24235130.292
+ 25.900 22.100
+ -6461873.842 5 -5035224.085 5 23490511.222 23490511.591 23490510.576
+ 33.000 31.100
+ -23139526.169 7 -18030804.560 7 20366080.080 20366079.608 20366079.049
+ 46.500 44.800
+ -18455609.850 7 -14380993.637 6 21411808.287 21411806.451 21411807.367
+ 45.200 41.900
+ -19212895.509 7 -14971080.675 6 20831817.301 20831815.816 20831816.717
+ 46.100 40.600
+ 06 1 1 15 54 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1603469.761 3 -1249459.354 3 24133571.899 24133573.113 24133571.448
+ 21.600 19.300
+ -12746226.326 7 -9932125.899 6 22206443.602 22206440.597 22206441.635
+ 43.300 36.200
+ -20058734.026 7 -15630188.289 6 21345634.019 21345633.676 21345632.975
+ 43.400 38.900
+ -2890909.953 4 -2252662.178 3 24238354.989 24238354.459 24238354.064
+ 24.600 19.900
+ -6555445.944 5 -5108137.305 5 23472704.859 23472705.267 23472704.309
+ 33.100 32.000
+ -23126738.187 7 -18020839.924 7 20368513.515 20368513.046 20368512.558
+ 46.600 44.700
+ -18515292.795 7 -14427499.836 6 21400450.966 21400449.244 21400450.028
+ 45.300 41.900
+ -19244823.477 7 -14995959.616 6 20825741.595 20825740.174 20825741.030
+ 46.200 40.600
+ 06 1 1 15 54 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1596164.463 3 -1243766.943 3 24134961.795 24134962.774 24134961.638
+ 21.600 19.900
+ -12665810.390 7 -9869464.168 6 22221746.194 22221743.464 22221744.258
+ 43.400 36.000
+ -19995469.499 7 -15580891.302 6 21357672.491 21357672.592 21357671.681
+ 43.300 38.700
+ -2873456.772 4 -2239062.350 3 24241676.554 24241676.494 24241675.719
+ 25.900 21.100
+ -6648833.622 5 -5180906.837 5 23454934.219 23454933.974 23454933.417
+ 33.200 31.600
+ -23113300.616 7 -18010369.113 7 20371070.665 20371070.229 20371069.682
+ 46.700 44.900
+ -18574763.324 7 -14473840.514 6 21389134.344 21389132.304 21389133.267
+ 45.100 41.900
+ -19276183.957 7 -15020396.361 6 20819773.918 20819772.495 20819773.416
+ 46.200 40.900
+ 06 1 1 15 55 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1588256.936 3 -1237605.216 3 24136467.264 24136467.872 24136466.360
+ 21.100 21.600
+ -12585192.829 7 -9806645.335 5 22237087.110 22237084.384 22237085.324
+ 43.300 35.900
+ -19931738.396 7 -15531230.751 6 21369800.125 21369800.388 21369799.294
+ 42.900 38.700
+ -2855492.331 4 -2225064.122 3 24245094.724 24245095.239 24245094.104
+ 26.200 21.600
+ -6742035.887 5 -5253531.894 5 23437197.877 23437198.261 23437197.481
+ 33.400 33.100
+ -23099213.428 7 -17999392.108 7 20373751.539 20373750.909 20373750.530
+ 46.600 44.700
+ -18634020.232 7 -14520014.734 6 21377858.048 21377856.134 21377857.022
+ 45.100 41.900
+ -19306976.159 7 -15044390.293 6 20813914.765 20813913.002 20813914.017
+ 46.300 40.900
+ 06 1 1 15 55 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1579748.049 4 -1230974.925 3 24138086.529 24138086.818 24138085.889
+ 24.600 21.100
+ -12504375.447 7 -9743670.795 5 22252466.671 22252463.416 22252464.638
+ 43.500 35.400
+ -19867542.388 7 -15481207.940 6 21382016.714 21382016.544 21382015.640
+ 43.200 38.600
+ -2837017.919 4 -2210668.524 3 24248610.336 24248610.501 24248609.430
+ 25.900 21.100
+ -6835051.673 5 -5326011.625 5 23419497.255 23419497.847 23419497.069
+ 32.700 34.100
+ -23084476.232 7 -17987908.600 7 20376555.840 20376555.239 20376554.909
+ 46.800 44.600
+ -18693062.441 7 -14566021.654 7 21366622.794 21366620.722 21366621.683
+ 45.100 42.000
+ -19337198.809 7 -15067940.409 6 20808163.316 20808161.856 20808162.707
+ 46.300 41.100
+ 06 1 1 15 56 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1570638.533 3 -1223876.594 2 24139819.886 24139819.123 24139819.181
+ 23.800 16.100
+ -12423359.923 7 -9680541.858 6 22267883.264 22267880.540 22267881.424
+ 43.600 36.000
+ -19802883.047 7 -15430824.090 6 21394320.532 21394320.993 21394319.748
+ 43.100 38.900
+ -2818034.599 3 -2195876.340 3 24252222.220 24252223.236 24252221.544
+ 23.800 23.000
+ -6927880.291 5 -5398345.535 5 23401832.765 23401833.082 23401832.256
+ 33.800 34.000
+ -23069089.460 7 -17975918.930 7 20379483.761 20379483.301 20379482.853
+ 46.800 44.600
+ -18751888.686 7 -14611860.293 6 21355428.283 21355426.438 21355427.308
+ 45.100 41.900
+ -19366850.805 7 -15091045.860 6 20802520.915 20802519.425 20802520.220
+ 46.500 41.300
+ 06 1 1 15 56 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1560929.081 3 -1216310.813 2 24141667.868 24141667.610 24141667.303
+ 23.400 17.000
+ -12342148.247 7 -9617260.086 5 22283337.036 22283334.399 22283335.282
+ 43.300 35.400
+ -19737762.376 7 -15380080.762 6 21406712.509 21406712.914 21406711.927
+ 43.100 38.200
+ -2798543.552 4 -2180688.566 3 24255932.026 24255931.277 24255931.231
+ 27.600 18.600
+ -7020520.664 5 -5470532.754 5 23384204.247 23384204.136 23384203.232
+ 33.600 33.900
+ -23053052.896 7 -17963422.927 7 20382535.581 20382535.096 20382534.564
+ 46.600 44.700
+ -18810497.373 7 -14657529.399 7 21344275.245 21344273.798 21344274.344
+ 44.800 42.500
+ -19395931.374 7 -15113706.039 6 20796987.034 20796985.571 20796986.404
+ 46.500 41.300
+ 06 1 1 15 57 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1550620.614 3 -1208278.312 3 24143628.833 24143630.319 24143628.229
+ 20.500 22.600
+ -12260742.201 7 -9553826.854 5 22298828.348 22298825.765 22298826.440
+ 43.100 35.900
+ -19672181.996 7 -15328979.218 6 21419192.052 21419192.520 21419191.531
+ 43.200 38.300
+ -2778546.047 4 -2165106.145 3 24259737.396 24259737.587 24259736.704
+ 26.200 20.500
+ -7112972.014 5 -5542572.688 5 23366610.860 23366611.149 23366610.434
+ 34.300 34.600
+ -23036367.024 7 -17950420.973 7 20385710.810 20385710.333 20385709.841
+ 46.800 44.700
+ -18868887.479 7 -14703028.178 7 21333164.195 21333162.459 21333163.186
+ 45.100 42.400
+ -19424439.819 7 -15135920.415 6 20791561.989 20791560.387 20791561.444
+ 46.400 41.100
+ 06 1 1 15 57 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1539714.048 3 -1199779.678 3 24145704.164 24145704.819 24145703.692
+ 22.600 21.100
+ -12179143.268 7 -9490243.320 5 22314355.763 22314353.457 22314353.962
+ 42.500 35.600
+ -19606143.743 7 -15277520.894 6 21431758.811 21431759.334 21431758.426
+ 43.600 38.600
+ -2758043.263 3 -2149129.971 3 24263637.815 24263638.651 24263637.457
+ 23.400 21.100
+ -7205233.012 5 -5614464.305 5 23349054.201 23349054.453 23349053.598
+ 33.500 34.300
+ -23019031.903 7 -17936913.110 7 20389009.626 20389009.161 20389008.577
+ 46.600 44.700
+ -18927057.802 7 -14748355.707 7 21322094.866 21322092.873 21322093.851
+ 45.100 42.300
+ -19452375.086 7 -15157688.156 6 20786245.964 20786244.448 20786245.458
+ 46.500 41.100
+ 06 1 1 15 58 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1528210.163 3 -1190815.630 3 24147893.462 24147894.022 24147893.345
+ 22.600 20.500
+ -12097353.510 7 -9426511.093 5 22329920.139 22329917.635 22329918.261
+ 42.500 35.800
+ -19539649.205 7 -15225707.019 6 21444412.628 21444412.848 21444411.936
+ 43.400 38.400
+ -2737036.475 4 -2132761.092 3 24267636.443 24267636.043 24267635.730
+ 24.900 19.300
+ -7297302.802 5 -5686206.944 5 23331534.003 23331534.137 23331533.323
+ 33.600 34.500
+ -23001048.245 7 -17922899.890 7 20392431.790 20392431.340 20392430.760
+ 46.600 44.700
+ -18985006.821 7 -14793510.788 7 21311067.302 21311065.543 21311066.381
+ 45.200 42.300
+ -19479736.260 7 -15179008.553 6 20781039.724 20781037.695 20781038.988
+ 46.500 40.900
+ 06 1 1 15 58 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1516109.977 4 -1181386.944 3 24150196.413 24150196.956 24150195.965
+ 24.600 19.900
+ -12015374.425 7 -9362631.344 6 22345520.065 22345517.922 22345518.222
+ 42.300 36.100
+ -19472700.551 7 -15173539.286 6 21457152.414 21457152.629 21457151.787
+ 43.000 38.100
+ -2715527.069 4 -2116000.561 3 24271729.435 24271729.766 24271728.772
+ 24.900 22.100
+ -7389180.609 5 -5757799.994 5 23314050.536 23314050.144 23314049.662
+ 33.400 33.800
+ -22982415.797 7 -17908381.120 7 20395977.379 20395977.038 20395976.366
+ 46.600 44.700
+ -19042733.391 7 -14838492.529 7 21300082.460 21300080.702 21300081.409
+ 45.000 42.700
+ -19506522.644 7 -15199881.058 6 20775942.431 20775940.437 20775941.621
+ 46.500 41.100
+ 06 1 1 15 59 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1503414.396 4 -1171494.318 3 24152612.609 24152613.097 24152611.997
+ 24.200 22.600
+ -11933208.038 7 -9298605.648 5 22361156.151 22361153.660 22361154.336
+ 42.600 35.900
+ -19405299.531 7 -15121019.060 6 21469978.291 21469978.770 21469977.707
+ 42.900 37.700
+ -2693516.221 4 -2098849.300 3 24275917.879 24275918.734 24275916.955
+ 24.600 23.000
+ -7480865.240 5 -5829242.532 5 23296603.296 23296603.212 23296602.678
+ 33.000 33.600
+ -22963135.345 7 -17893357.411 7 20399646.252 20399646.034 20399645.296
+ 46.700 44.500
+ -19100235.999 7 -14883299.755 7 21289140.069 21289138.317 21289139.030
+ 45.200 42.700
+ -19532733.200 7 -15220304.866 6 20770954.187 20770952.782 20770953.674
+ 46.400 41.100
+ 06 1 1 15 59 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1490124.446 3 -1161138.500 3 24155140.948 24155141.670 24155140.553
+ 20.500 19.900
+ -11850856.136 6 -9234435.397 5 22376827.098 22376824.886 22376825.128
+ 41.900 35.900
+ -19337447.861 7 -15068147.678 6 21482889.933 21482890.457 21482889.351
+ 42.700 37.700
+ -2671005.277 3 -2081308.338 3 24280201.374 24280202.202 24280200.836
+ 22.100 23.400
+ -7572356.020 5 -5900534.016 5 23279192.565 23279193.052 23279192.089
+ 31.500 33.500
+ -22943206.565 7 -17877828.513 7 20403438.904 20403438.368 20403437.861
+ 46.900 44.700
+ -19157513.706 7 -14927931.732 7 21278240.098 21278238.537 21278239.295
+ 45.200 42.600
+ -19558367.404 7 -15240279.567 6 20766076.338 20766074.717 20766075.707
+ 46.200 41.100
+ 06 1 1 16 0 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1476240.924 3 -1150320.167 2 24157782.844 24157782.696 24157782.580
+ 21.600 17.800
+ -11768320.072 7 -9170121.629 5 22392533.299 22392530.879 22392531.511
+ 42.300 35.400
+ -19269147.487 7 -15014926.658 6 21495887.190 21495887.798 21495886.682
+ 42.600 38.000
+ -2647995.413 3 -2063378.596 3 24284580.254 24284580.315 24284579.423
+ 23.000 21.600
+ -7663651.956 5 -5971673.688 5 23261819.786 23261820.088 23261819.151
+ 31.300 33.100
+ -22922630.212 7 -17861795.009 7 20407354.292 20407353.962 20407353.356
+ 46.900 44.800
+ -19214564.850 7 -14972387.167 7 21267383.930 21267382.068 21267382.993
+ 45.200 42.500
+ -19583424.188 7 -15259804.339 6 20761308.195 20761306.566 20761307.572
+ 46.300 41.100
+ 06 1 1 16 0 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1461765.034 3 -1139040.274 3 24160537.714 24160538.653 24160537.028
+ 21.600 22.600
+ -11685601.996 7 -9105666.043 5 22408273.512 22408271.514 22408271.923
+ 42.200 34.600
+ -19200399.994 7 -14961357.242 6 21508969.581 21508969.876 21508969.005
+ 42.600 37.700
+ -2624488.340 3 -2045061.446 3 24289053.358 24289054.455 24289052.793
+ 23.400 22.100
+ -7754752.023 5 -6042660.734 5 23244484.208 23244484.287 23244483.671
+ 32.000 32.400
+ -22901406.882 7 -17845257.373 7 20411392.913 20411392.605 20411391.927
+ 46.800 44.700
+ -19271388.449 7 -15016665.294 7 21256570.903 21256568.843 21256569.848
+ 45.200 42.700
+ -19607902.997 7 -15278878.739 6 20756649.969 20756648.345 20756649.374
+ 46.300 41.300
+ 06 1 1 16 1 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1446697.797 4 -1127299.586 3 24163405.239 24163405.683 24163404.756
+ 24.900 21.600
+ -11602703.647 7 -9041069.976 5 22424049.293 22424046.721 22424047.370
+ 42.200 35.200
+ -19131207.404 7 -14907440.988 6 21522136.367 21522136.827 21522136.034
+ 42.600 37.400
+ -2600485.252 3 -2026357.806 3 24293621.128 24293621.007 24293620.237
+ 23.000 19.300
+ -7845655.218 5 -6113494.416 5 23227185.938 23227185.769 23227185.401
+ 32.600 31.800
+ -22879536.694 7 -17828215.691 7 20415554.753 20415554.328 20415553.783
+ 46.800 44.400
+ -19327982.919 7 -15060764.875 7 21245801.259 21245799.312 21245800.250
+ 45.300 42.700
+ -19631803.206 7 -15297502.279 6 20752101.996 20752100.342 20752101.331
+ 46.400 41.200
+ 06 1 1 16 1 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1431040.186 3 -1115098.883 3 24166384.883 24166385.592 24166384.264
+ 22.600 23.400
+ -11519626.529 7 -8976334.608 5 22439858.170 22439855.669 22439856.322
+ 42.000 34.800
+ -19061571.857 7 -14853179.569 6 21535387.929 21535388.308 21535387.161
+ 42.300 37.900
+ -2575987.482 3 -2007268.667 3 24298282.427 24298283.211 24298281.524
+ 19.900 19.900
+ -7936360.699 5 -6184174.035 5 23209924.912 23209925.307 23209924.613
+ 31.300 31.000
+ -22857020.041 7 -17810670.270 7 20419839.643 20419839.184 20419838.607
+ 46.700 44.300
+ -19384346.950 7 -15104684.898 7 21235075.454 21235073.678 21235074.538
+ 45.300 43.000
+ -19655124.105 7 -15315674.411 6 20747664.329 20747662.651 20747663.573
+ 46.300 41.200
+ 06 1 1 16 2 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1414793.359 3 -1102439.063 3 24169475.919 24169476.941 24169475.634
+ 22.600 20.500
+ -11436372.431 7 -8911461.334 5 22455701.526 22455698.689 22455699.599
+ 42.600 34.700
+ -18991494.902 7 -14798574.205 6 21548722.971 21548723.461 21548722.362
+ 42.500 37.500
+ -2550996.484 3 -1987795.190 3 24303038.239 24303039.327 24303037.536
+ 21.600 20.500
+ -8026867.759 5 -6254699.043 5 23192702.090 23192702.403 23192701.530
+ 31.000 30.800
+ -22833857.185 7 -17792621.316 7 20424247.324 20424246.995 20424246.307
+ 46.700 44.400
+ -19440479.481 7 -15148424.523 7 21224393.658 21224391.911 21224392.695
+ 45.200 42.900
+ -19677864.834 7 -15333394.466 6 20743336.786 20743335.206 20743336.103
+ 46.400 41.400
+ 06 1 1 16 2 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1397958.429 3 -1089320.946 3 24172680.194 24172680.615 24172679.645
+ 22.600 22.600
+ -11352943.223 7 -8846451.613 5 22471577.051 22471574.708 22471575.060
+ 42.000 34.700
+ -18920978.485 7 -14743626.401 6 21562142.077 21562142.438 21562141.271
+ 42.000 37.400
+ -2525513.625 3 -1967938.437 3 24307887.319 24307888.181 24307886.595
+ 21.100 19.900
+ -8117175.323 5 -6325068.605 5 23175517.270 23175517.526 23175516.567
+ 31.100 31.500
+ -22810049.262 7 -17774069.708 7 20428777.725 20428777.463 20428776.767
+ 46.700 44.400
+ -19496379.491 7 -15191982.967 7 21213756.474 21213754.502 21213755.507
+ 45.500 43.100
+ -19700024.846 7 -15350662.014 6 20739120.065 20739118.255 20739119.346
+ 46.500 41.300
+ -244355.520 2 -190407.387 2 24396626.450 24396630.335 24396624.888
+ 17.000 12.600
+ 06 1 1 16 3 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1380536.553 3 -1075745.508 3 24175994.704 24175996.154 24175994.140
+ 19.900 22.600
+ -11269340.556 7 -8781306.721 5 22487486.270 22487483.631 22487484.401
+ 42.400 34.400
+ -18850024.784 7 -14688337.850 6 21575644.252 21575644.356 21575643.458
+ 42.300 37.400
+ -2499540.454 3 -1947699.658 3 24312830.627 24312830.410 24312829.665
+ 21.600 21.100
+ -8207282.389 5 -6395281.939 5 23158370.741 23158370.606 23158369.800
+ 32.400 30.400
+ -22785596.467 7 -17755015.610 7 20433430.972 20433430.692 20433429.907
+ 46.600 44.300
+ -19552045.020 7 -15235358.700 7 21203163.592 21203161.733 21203162.611
+ 45.500 43.100
+ -19721603.450 7 -15367476.515 6 20735013.717 20735012.041 20735012.984
+ 46.400 41.600
+ -358827.777 3 -279606.628 2 24374841.349 24374846.120 24374841.794
+ 22.100 12.600
+ 06 1 1 16 3 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1362528.921 3 -1061713.622 3 24179421.756 24179422.250 24179421.036
+ 22.600 20.500
+ -11185566.085 6 -8716027.949 5 22503427.640 22503425.575 22503426.085
+ 41.700 33.800
+ -18778635.561 7 -14632709.935 6 21589229.616 21589229.371 21589228.561
+ 42.100 37.200
+ -2473078.420 3 -1927079.914 3 24317865.643 24317866.660 24317864.903
+ 22.100 23.800
+ -8297188.181 5 -6465338.438 5 23141262.339 23141262.212 23141261.440
+ 33.600 31.100
+ -22760499.161 7 -17735459.294 7 20438206.857 20438206.592 20438205.848
+ 46.500 44.300
+ -19607474.795 7 -15278550.728 7 21192615.499 21192613.801 21192614.529
+ 45.300 43.400
+ -19742600.104 7 -15383837.552 6 20731018.033 20731016.485 20731017.356
+ 46.400 41.500
+ -473252.184 3 -368768.565 2 24353067.433 24353073.167 24353067.647
+ 23.800 13.900
+ 06 1 1 16 4 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1343936.751 4 -1047226.225 3 24182959.996 24182960.744 24182959.533
+ 24.600 22.600
+ -11101621.629 6 -8650616.746 5 22519401.778 22519400.074 22519399.894
+ 41.400 34.700
+ -18706812.797 6 -14576744.193 6 21602896.987 21602897.004 21602896.024
+ 41.900 37.400
+ -2446129.009 3 -1906080.443 3 24322994.021 24322994.586 24322993.220
+ 22.100 23.000
+ -8386891.856 5 -6535237.453 5 23124192.128 23124192.065 23124191.487
+ 35.500 30.200
+ -22734757.980 7 -17715401.257 7 20443105.296 20443104.896 20443104.247
+ 46.600 44.200
+ -19662667.751 7 -15321558.218 7 21182112.866 21182111.032 21182111.800
+ 45.600 43.500
+ -19763014.026 7 -15399744.514 6 20727133.231 20727131.965 20727132.618
+ 46.300 41.900
+ -587625.884 4 -457890.938 3 24331304.611 24331309.015 24331303.411
+ 24.200 19.900
+ 06 1 1 16 4 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1324761.239 3 -1032284.306 3 24186608.556 24186609.631 24186608.196
+ 22.100 22.100
+ -11017508.584 6 -8585074.165 5 22535408.011 22535405.806 22535406.346
+ 41.800 33.900
+ -18634558.663 6 -14520442.331 6 21616646.470 21616646.537 21616645.366
+ 41.500 37.200
+ -2418693.790 3 -1884702.348 4 24328215.127 24328215.941 24328214.478
+ 21.100 24.200
+ -8476392.256 6 -6604978.075 5 23107160.776 23107160.725 23107160.283
+ 36.100 30.200
+ -22708373.311 7 -17694841.798 7 20448125.996 20448125.667 20448125.056
+ 46.700 43.900
+ -19717622.349 7 -15364379.982 7 21171655.334 21171653.510 21171654.361
+ 45.500 43.600
+ -19782844.705 7 -15415196.995 6 20723360.024 20723358.281 20723359.227
+ 46.300 41.800
+ -701946.440 3 -546971.790 3 24309551.035 24309554.560 24309549.002
+ 21.100 18.600
+ 06 1 1 16 5 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1305003.585 3 -1016888.739 3 24190368.532 24190369.381 24190368.122
+ 19.300 23.400
+ -10933228.795 6 -8519401.655 5 22551446.261 22551444.122 22551444.370
+ 41.100 34.700
+ -18561875.169 6 -14463805.889 6 21630477.695 21630477.733 21630476.558
+ 41.400 37.000
+ -2390774.197 3 -1862946.903 4 24333527.098 24333528.519 24333526.608
+ 21.100 24.200
+ -8565688.422 5 -6674559.544 5 23090168.435 23090168.436 23090167.799
+ 35.600 31.600
+ -22681346.145 7 -17673781.694 7 20453269.409 20453268.889 20453268.356
+ 46.800 43.900
+ -19772337.070 7 -15407014.827 7 21161243.542 21161241.595 21161242.430
+ 45.200 43.600
+ -19802091.830 7 -15430194.757 6 20719697.073 20719695.691 20719696.447
+ 46.400 41.800
+ -816211.250 3 -636009.151 1 24287804.980 24287809.714 24287804.549
+ 21.600 9.000
+ 06 1 1 16 5 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1284665.012 3 -1001040.582 4 24194238.833 24194239.973 24194237.917
+ 19.900 24.900
+ -10848784.119 6 -8453600.658 5 22567516.059 22567513.032 22567513.776
+ 41.000 33.900
+ -18488764.537 6 -14406836.618 6 21644390.399 21644390.352 21644389.154
+ 41.300 37.200
+ -2362371.701 3 -1840815.134 4 24338932.975 24338933.721 24338932.213
+ 21.100 27.100
+ -8654779.576 5 -6743981.248 5 23073214.791 23073215.026 23073214.261
+ 35.500 33.400
+ -22653677.147 7 -17652221.462 7 20458534.529 20458534.241 20458533.580
+ 46.900 43.900
+ -19826810.929 7 -15449461.988 7 21150877.240 21150875.613 21150876.276
+ 45.300 43.600
+ -19820754.693 7 -15444737.249 6 20716145.650 20716144.289 20716145.070
+ 46.600 41.800
+ -930417.558 3 -725000.924 1 24266071.425 24266076.376 24266070.939
+ 21.100 11.000
+ 06 1 1 16 6 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1263746.895 3 -984740.779 3 24198218.672 24198220.796 24198218.383
+ 20.500 23.400
+ -10764176.191 6 -8387672.451 5 22583615.936 22583613.443 22583613.955
+ 40.700 33.400
+ -18415228.173 6 -14349535.610 6 21658383.640 21658383.833 21658382.609
+ 41.200 36.700
+ -2333488.138 3 -1818308.491 3 24344428.976 24344429.893 24344428.113
+ 19.900 23.400
+ -8743665.036 5 -6813242.651 5 23056300.333 23056300.925 23056299.782
+ 34.600 35.200
+ -22625367.123 7 -17630161.731 7 20463921.676 20463921.481 20463920.709
+ 46.700 43.900
+ -19881042.592 7 -15491720.431 7 21140557.638 21140555.607 21140556.574
+ 45.500 43.700
+ -19838832.845 7 -15458824.126 6 20712705.871 20712704.069 20712705.107
+ 46.800 41.900
+ -1044562.840 3 -813945.040 3 24244351.468 24244355.889 24244350.430
+ 23.400 19.300
+ 06 1 1 16 6 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1242250.605 4 -967990.460 3 24202310.452 24202311.213 24202310.038
+ 24.600 23.000
+ -10679406.753 6 -8321618.403 5 22599747.120 22599744.722 22599745.142
+ 40.700 33.600
+ -18341268.526 6 -14291904.774 6 21672457.607 21672458.075 21672456.685
+ 41.100 36.900
+ -2304124.848 3 -1795428.058 3 24350016.811 24350017.849 24350015.619
+ 21.100 23.800
+ -8832343.769 5 -6882342.950 5 23039425.233 23039425.769 23039424.705
+ 34.500 35.400
+ -22596416.632 7 -17607602.937 7 20469431.030 20469430.533 20469430.047
+ 47.100 44.000
+ -19935030.516 7 -15533788.947 7 21130283.865 21130282.037 21130282.930
+ 45.600 43.800
+ -19856325.923 7 -15472455.100 7 20709377.029 20709375.250 20709376.319
+ 46.800 42.100
+ -1158644.471 4 -902839.590 2 24222641.207 24222646.574 24222640.930
+ 24.200 15.100
+ 06 1 1 16 7 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1220177.475 3 -950790.641 3 24206510.786 24206511.365 24206510.071
+ 23.000 21.600
+ -10594477.000 6 -8255439.425 5 22615909.362 22615906.403 22615907.275
+ 41.100 33.800
+ -18266887.900 6 -14233945.903 6 21686611.371 21686611.898 21686610.842
+ 41.000 36.400
+ -2274283.638 3 -1772175.207 4 24355695.026 24355696.395 24355694.482
+ 21.600 24.900
+ -8920815.009 5 -6951281.558 5 23022589.900 23022590.196 23022589.166
+ 34.400 35.500
+ -22566826.103 7 -17584545.409 7 20475061.689 20475061.547 20475060.770
+ 47.000 44.000
+ -19988773.366 7 -15575666.498 7 21120057.000 21120055.223 21120055.997
+ 45.500 44.100
+ -19873233.322 7 -15485629.695 7 20706159.419 20706157.856 20706158.827
+ 46.700 42.000
+ -1272659.654 4 -991682.401 3 24200945.571 24200949.560 24200944.384
+ 24.200 18.600
+ 06 1 1 16 7 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1197528.877 3 -933142.433 3 24210820.051 24210821.163 24210819.454
+ 20.500 23.000
+ -10509388.895 6 -8189137.056 5 22632100.333 22632098.051 22632098.537
+ 40.800 33.800
+ -18192087.766 6 -14175660.141 6 21700845.569 21700846.027 21700844.818
+ 41.100 36.400
+ -2243965.833 4 -1748550.996 4 24361464.922 24361465.874 24361464.382
+ 26.500 28.100
+ -9009077.401 5 -7020057.404 5 23005794.584 23005794.427 23005793.500
+ 33.800 35.700
+ -22536596.599 7 -17560989.983 7 20480814.269 20480814.029 20480813.261
+ 46.900 43.800
+ -20042269.884 7 -15617352.099 7 21109876.984 21109875.196 21109876.084
+ 45.700 44.100
+ -19889554.812 7 -15498347.743 6 20703053.646 20703051.879 20703052.959
+ 46.700 41.600
+ -1386606.011 3 -1080471.488 2 24179262.035 24179266.052 24179260.369
+ 21.100 16.100
+ 06 1 1 16 8 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1174306.164 3 -915046.827 4 24215239.250 24215240.848 24215238.980
+ 19.900 25.900
+ -10424144.177 6 -8122712.644 5 22648322.118 22648319.936 22648320.225
+ 41.100 34.000
+ -18116870.348 6 -14117049.225 6 21715159.379 21715159.629 21715158.376
+ 41.200 36.500
+ -2213173.471 4 -1724556.962 4 24367324.583 24367325.622 24367324.097
+ 25.900 24.900
+ -9097130.792 5 -7088670.378 5 22989037.843 22989038.340 22989037.437
+ 33.900 35.700
+ -22505728.693 7 -17536937.097 7 20486688.345 20486687.907 20486687.355
+ 47.000 43.600
+ -20095518.659 7 -15658844.658 7 21099744.312 21099742.184 21099743.236
+ 45.600 44.000
+ -19905289.639 7 -15510608.651 6 20700059.784 20700057.686 20700058.943
+ 46.900 41.900
+ -1500480.810 3 -1169204.944 2 24157592.344 24157596.232 24157590.503
+ 21.100 17.000
+ 06 1 1 16 8 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1150510.666 3 -896504.901 4 24219768.087 24219768.847 24219767.520
+ 18.600 26.200
+ -10338744.263 6 -8056167.320 5 22664573.559 22664570.768 22664571.515
+ 40.700 33.400
+ -18041237.894 6 -14058114.906 5 21729552.081 21729551.963 21729550.875
+ 40.800 35.800
+ -2181908.031 4 -1700194.320 3 24373274.035 24373274.488 24373273.278
+ 25.300 22.600
+ -9184973.997 5 -7157119.559 5 22972322.004 22972322.047 22972321.236
+ 33.900 34.500
+ -22474223.530 7 -17512387.644 7 20492683.544 20492683.190 20492682.585
+ 47.000 43.600
+ -20148518.375 7 -15700143.143 7 21089658.516 21089656.679 21089657.540
+ 45.400 44.100
+ -19920437.808 7 -15522412.420 7 20697176.758 20697175.112 20697176.151
+ 46.900 42.100
+ -1614281.524 4 -1257880.612 3 24135936.054 24135940.369 24135935.354
+ 24.200 18.600
+ 06 1 1 16 9 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1126143.879 3 -877517.877 4 24224403.945 24224406.030 24224403.606
+ 21.100 27.400
+ -10253191.067 6 -7989502.528 5 22680854.001 22680850.680 22680851.773
+ 40.700 32.600
+ -17965192.629 6 -13998858.929 6 21744023.291 21744023.019 21744021.923
+ 40.200 36.000
+ -2150171.188 3 -1675464.311 3 24379312.963 24379314.327 24379312.569
+ 23.800 23.000
+ -9272606.021 5 -7225404.192 5 22955646.087 22955646.001 22955645.424
+ 34.600 33.600
+ -22442081.754 7 -17487342.134 7 20498800.075 20498799.711 20498799.047
+ 47.000 43.800
+ -20201267.423 7 -15741246.301 7 21079620.825 21079618.854 21079619.817
+ 45.400 44.200
+ -19934998.911 7 -15533758.736 6 20694405.886 20694404.274 20694405.250
+ 46.900 41.900
+ -1728005.607 3 -1346496.620 2 24114296.165 24114298.847 24114294.809
+ 22.600 16.100
+ 06 1 1 16 9 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1101207.315 3 -858086.818 4 24229150.177 24229151.330 24229149.657
+ 22.100 24.600
+ -10167486.414 6 -7922719.716 5 22697162.423 22697160.177 22697160.708
+ 40.700 33.200
+ -17888736.856 6 -13939283.068 5 21758570.963 21758572.018 21758570.771
+ 40.700 35.500
+ -2117964.623 4 -1650368.341 3 24385442.501 24385442.682 24385441.635
+ 24.900 19.900
+ -9360026.233 5 -7293523.795 5 22939010.263 22939010.447 22939009.765
+ 34.900 32.300
+ -22409304.305 7 -17461801.291 7 20505037.295 20505036.997 20505036.326
+ 46.900 43.700
+ -20253764.708 7 -15782153.282 7 21069630.621 21069629.015 21069629.761
+ 45.500 44.300
+ -19948972.489 7 -15544647.233 7 20691746.896 20691745.216 20691746.165
+ 46.800 42.000
+ -1841650.203 3 -1435050.758 2 24092669.489 24092673.942 24092668.431
+ 22.600 16.100
+ 06 1 1 16 10 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1075702.477 3 -838212.973 4 24234003.295 24234004.475 24234002.649
+ 21.600 24.600
+ -10081631.538 6 -7855819.859 5 22713499.786 22713498.123 22713498.236
+ 40.300 33.500
+ -17811872.385 6 -13879388.721 5 21773198.049 21773198.977 21773197.677
+ 40.600 35.700
+ -2085289.986 3 -1624907.603 3 24391659.890 24391661.007 24391659.177
+ 22.600 22.600
+ -9447233.565 6 -7361477.518 5 22922415.685 22922415.321 22922414.809
+ 36.000 31.800
+ -22375891.906 7 -17435765.684 7 20511395.491 20511395.178 20511394.479
+ 46.900 43.400
+ -20306008.698 7 -15822862.893 7 21059688.942 21059687.234 21059688.041
+ 45.500 44.300
+ -19962358.338 7 -15555077.758 7 20689199.496 20689197.981 20689198.833
+ 46.800 42.100
+ -1955212.505 3 -1523540.772 3 24071058.901 24071063.554 24071057.931
+ 23.400 18.600
+ 06 1 1 16 10 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1049630.797 4 -817897.410 3 24238964.824 24238965.972 24238964.317
+ 24.200 23.800
+ -9995627.875 6 -7788804.067 5 22729866.037 22729864.007 22729864.055
+ 39.800 33.400
+ -17734601.537 6 -13819177.734 5 21787903.419 21787903.242 21787902.011
+ 39.800 35.900
+ -2052149.204 4 -1599083.626 3 24397966.982 24397967.353 24397966.111
+ 24.900 23.000
+ -9534227.270 6 -7429264.790 5 22905861.277 22905861.305 22905860.515
+ 36.500 33.500
+ -22341845.521 7 -17409236.060 7 20517874.336 20517874.049 20517873.360
+ 46.900 43.400
+ -20357998.013 7 -15863374.051 7 21049795.866 21049794.049 21049794.924
+ 45.500 44.500
+ -19975156.144 7 -15565050.083 7 20686764.458 20686762.586 20686763.653
+ 46.900 42.000
+ -2068689.766 3 -1611964.527 3 24049465.356 24049469.154 24049464.104
+ 21.600 20.500
+ 06 1 1 16 11 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1022993.835 3 -797141.383 3 24244033.979 24244034.307 24244033.341
+ 23.800 23.000
+ -9909477.213 6 -7721673.717 5 22746260.028 22746257.387 22746257.979
+ 39.500 31.600
+ -17656926.216 6 -13758651.592 5 21802685.054 21802684.367 21802683.387
+ 39.700 35.800
+ -2018543.824 4 -1572897.680 3 24404361.390 24404362.441 24404360.850
+ 24.600 22.600
+ -9621006.588 5 -7496885.003 5 22889347.609 22889347.744 22889346.883
+ 35.500 34.500
+ -22307165.939 7 -17382213.039 7 20524473.647 20524473.357 20524472.630
+ 46.900 43.300
+ -20409731.319 7 -15903685.724 7 21039951.206 21039949.558 21039950.261
+ 45.400 44.500
+ -19987365.528 7 -15574563.889 7 20684441.180 20684439.190 20684440.380
+ 46.900 42.000
+ -2182079.396 4 -1700319.999 2 24027887.753 24027891.635 24027886.944
+ 24.900 17.800
+ 06 1 1 16 11 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -995793.268 3 -775946.185 4 24249209.999 24249210.968 24249209.450
+ 23.400 25.600
+ -9823181.310 6 -7654430.205 5 22762681.855 22762679.585 22762680.129
+ 40.400 33.100
+ -17578848.741 6 -13697812.076 5 21817542.214 21817542.008 21817541.013
+ 39.800 35.100
+ -1984475.795 3 -1546351.210 3 24410844.167 24410845.224 24410843.639
+ 22.600 19.900
+ -9707570.519 5 -7564337.362 5 22872875.149 22872875.241 22872874.380
+ 34.900 35.400
+ -22271854.481 7 -17354697.643 7 20531193.115 20531192.842 20531192.106
+ 46.800 43.400
+ -20461207.144 7 -15943796.757 7 21030155.653 21030154.054 21030154.729
+ 45.300 44.600
+ -19998986.548 7 -15583619.226 6 20682229.342 20682227.706 20682228.736
+ 47.000 41.900
+ -2295378.871 3 -1788605.208 3 24006326.817 24006331.457 24006326.147
+ 22.100 21.600
+ 06 1 1 16 12 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -968030.439 4 -754312.826 3 24254493.365 24254493.685 24254492.808
+ 26.500 23.800
+ -9736741.745 6 -7587074.745 5 22779130.560 22779128.087 22779128.536
+ 40.000 31.800
+ -17500371.262 6 -13636660.857 5 21832474.310 21832475.967 21832474.420
+ 39.700 35.600
+ -1949946.747 4 -1519445.484 3 24417415.296 24417415.813 24417414.752
+ 26.200 19.900
+ -9793918.386 5 -7631621.368 5 22856443.302 22856443.907 22856442.704
+ 34.700 35.900
+ -22235912.273 7 -17326690.751 7 20538032.800 20538032.544 20538031.822
+ 47.000 43.300
+ -20512424.059 7 -15983706.037 7 21020409.328 21020407.732 21020408.478
+ 45.300 44.600
+ -20010018.989 7 -15592215.943 7 20680130.054 20680128.330 20680129.395
+ 46.900 42.000
+ -2408585.359 4 -1876817.920 3 23984785.097 23984789.082 23984784.404
+ 26.800 19.900
+ 06 1 1 16 12 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -939707.093 3 -732242.745 4 24259882.249 24259883.980 24259881.761
+ 23.800 24.900
+ -9650160.153 6 -7519608.612 5 22795606.820 22795604.361 22795604.546
+ 39.100 32.400
+ -17421496.002 6 -13575199.672 5 21847484.567 21847485.594 21847484.025
+ 39.400 35.500
+ -1914958.644 3 -1492182.046 3 24424072.803 24424073.716 24424072.126
+ 23.800 18.600
+ -9880049.491 5 -7698736.479 6 22840053.212 22840053.544 22840052.500
+ 34.900 36.500
+ -22199340.200 7 -17298193.055 7 20544992.093 20544992.011 20544991.184
+ 47.000 43.300
+ -20563380.870 7 -16023412.639 7 21010712.686 21010711.118 21010711.687
+ 45.300 44.900
+ -20020462.296 7 -15600353.580 7 20678142.930 20678141.124 20678142.195
+ 47.000 42.000
+ -2521696.007 4 -1964956.022 3 23963260.670 23963264.405 23963259.653
+ 25.900 19.300
+ 06 1 1 16 13 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -910824.895 4 -709737.151 4 24265378.881 24265380.079 24265378.407
+ 25.300 24.600
+ -9563438.082 6 -7452033.019 5 22812108.876 22812107.368 22812107.183
+ 39.100 33.000
+ -17342225.051 6 -13513430.179 5 21862570.800 21862570.391 21862569.271
+ 39.400 35.500
+ -1879513.180 3 -1464562.281 2 24430818.278 24430818.628 24430817.509
+ 22.600 17.800
+ -9965962.874 6 -7765681.925 5 22823704.604 22823704.601 22823703.941
+ 36.000 35.900
+ -22162139.269 7 -17269205.344 7 20552071.360 20552071.114 20552070.316
+ 46.800 43.200
+ -20614076.038 7 -16062915.356 7 21001065.850 21001064.095 21001064.910
+ 45.300 44.900
+ -20030316.402 7 -15608032.108 7 20676267.383 20676266.027 20676266.859
+ 46.800 42.100
+ -2634708.467 4 -2053017.534 2 23941755.196 23941758.280 23941754.013
+ 24.200 13.900
+ 06 1 1 16 13 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -881385.540 3 -686797.417 4 24270980.835 24270982.080 24270980.207
+ 23.400 25.900
+ -9476577.132 6 -7384349.216 5 22828638.448 22828636.197 22828636.676
+ 39.300 31.100
+ -17262561.012 6 -13451354.385 5 21877729.042 21877729.933 21877728.422
+ 39.400 35.100
+ -1843612.222 3 -1436587.543 3 24437649.797 24437651.204 24437649.132
+ 21.600 21.600
+ -10051657.537 6 -7832456.971 5 22807397.104 22807397.208 22807396.635
+ 36.700 34.800
+ -22124310.540 7 -17239728.440 7 20559270.063 20559269.698 20559269.106
+ 47.200 43.200
+ -20664508.043 7 -16102213.013 7 20991469.029 20991467.143 20991468.015
+ 45.600 44.900
+ -20039581.230 7 -15615251.456 7 20674504.392 20674502.998 20674503.695
+ 46.800 42.100
+ -2747620.032 3 -2141000.401 3 23920267.118 23920272.424 23920266.992
+ 21.600 21.100
+ 06 1 1 16 14 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -851390.588 4 -663424.763 4 24276688.966 24276690.172 24276688.615
+ 25.900 24.900
+ -9389578.729 6 -7316558.299 5 22845193.898 22845191.576 22845191.923
+ 39.300 32.400
+ -17182505.857 6 -13388973.801 5 21892963.164 21892964.113 21892962.601
+ 39.500 35.100
+ -1807257.731 3 -1408259.457 3 24444568.039 24444568.859 24444567.502
+ 23.800 20.500
+ -10137132.794 6 -7899061.053 5 22791131.655 22791131.959 22791131.150
+ 37.000 34.600
+ -22085855.106 7 -17209763.196 7 20566587.812 20566587.585 20566586.839
+ 47.000 43.200
+ -20714675.763 7 -16141304.731 7 20981922.319 20981920.437 20981921.354
+ 45.300 44.800
+ -20048256.685 7 -15622011.551 7 20672853.568 20672852.031 20672852.893
+ 46.800 42.100
+ -2860427.914 3 -2228902.471 2 23898801.810 23898804.859 23898800.536
+ 23.000 16.100
+ 06 1 1 16 14 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -820841.715 4 -639620.481 3 24282501.821 24282502.813 24282501.447
+ 24.200 22.100
+ -9302444.556 6 -7248661.599 5 22861774.962 22861772.780 22861772.917
+ 39.700 32.300
+ -17102061.875 6 -13326290.258 5 21908271.769 21908272.228 21908270.539
+ 39.000 35.500
+ -1770451.484 3 -1379579.295 3 24451571.447 24451573.253 24451570.600
+ 21.100 21.600
+ -10222387.675 6 -7965493.415 5 22774908.519 22774908.443 22774907.769
+ 36.900 34.700
+ -22046773.864 7 -17179310.306 7 20574024.684 20574024.475 20574023.720
+ 46.900 42.900
+ -20764577.778 7 -16180189.406 7 20972426.220 20972424.420 20972425.246
+ 45.200 44.800
+ -20056342.664 7 -15628312.321 7 20671314.980 20671313.311 20671314.282
+ 47.000 42.100
+ -2973129.572 4 -2316721.768 3 23877355.736 23877359.522 23877354.343
+ 25.600 23.400
+ 06 1 1 16 15 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -789740.828 4 -615386.039 3 24288420.942 24288421.758 24288420.527
+ 24.600 22.100
+ -9215176.078 6 -7180660.245 5 22878380.977 22878379.301 22878379.100
+ 38.800 31.600
+ -17021231.413 6 -13263305.557 5 21923653.796 21923653.921 21923652.481
+ 39.500 35.600
+ -1733195.413 3 -1350548.670 2 24458660.596 24458661.793 24458660.383
+ 22.100 17.000
+ -10307421.599 6 -8031753.603 5 22758726.945 22758727.068 22758726.216
+ 36.700 34.700
+ -22007068.248 7 -17148370.894 7 20581580.676 20581580.222 20581579.635
+ 46.900 42.800
+ -20814212.599 7 -16218865.880 7 20962981.026 20962979.232 20962980.113
+ 45.400 45.300
+ -20063839.174 7 -15634153.753 7 20669888.541 20669886.830 20669887.866
+ 47.000 42.200
+ -3085722.091 4 -2404456.042 2 23855928.891 23855932.272 23855928.361
+ 24.600 16.100
+ 06 1 1 16 15 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -758089.384 3 -590722.643 3 24294443.244 24294444.315 24294442.709
+ 22.600 19.300
+ -9127774.993 6 -7112555.563 5 22895012.808 22895011.161 22895011.351
+ 39.300 31.500
+ -16940016.806 6 -13200021.519 5 21939107.329 21939108.369 21939106.943
+ 39.500 34.700
+ -1695491.305 3 -1321168.901 2 24465837.072 24465837.267 24465836.265
+ 23.000 17.800
+ -10392233.668 5 -8097840.908 5 22742587.473 22742587.834 22742586.903
+ 35.500 34.800
+ -21966739.317 7 -17116945.783 7 20589254.870 20589254.588 20589253.897
+ 46.900 42.900
+ -20863578.657 7 -16257332.928 7 20953586.798 20953585.161 20953585.962
+ 45.200 45.100
+ -20070746.120 7 -15639535.785 7 20668573.972 20668572.492 20668573.421
+ 47.100 42.300
+ -3198202.767 4 -2492103.151 3 23834524.261 23834528.312 23834523.692
+ 25.300 19.300
+ 06 1 1 16 16 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -725889.355 4 -565631.773 3 24300571.672 24300571.951 24300570.974
+ 27.400 21.100
+ -9040242.884 6 -7044348.772 5 22911670.101 22911668.047 22911667.829
+ 38.400 31.300
+ -16858420.021 6 -13136439.673 5 21954634.936 21954635.717 21954634.281
+ 38.500 34.400
+ -1657341.238 3 -1291441.633 2 24473096.469 24473097.039 24473095.989
+ 23.400 17.000
+ -10476823.104 6 -8163754.726 5 22726490.758 22726490.975 22726490.230
+ 36.500 35.200
+ -21925788.414 7 -17085036.018 7 20597047.817 20597047.294 20597046.721
+ 47.000 42.700
+ -20912674.499 7 -16295589.416 7 20944244.040 20944242.499 20944243.214
+ 45.000 45.200
+ -20077063.448 7 -15644458.377 7 20667371.850 20667370.275 20667371.242
+ 47.100 42.200
+ -3310569.235 4 -2579661.258 3 23813142.503 23813145.794 23813141.451
+ 25.900 21.100
+ 06 1 1 16 16 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -693142.396 4 -540114.665 3 24306802.315 24306803.544 24306801.874
+ 24.900 19.300
+ -8952581.186 6 -6976041.023 5 22928351.849 22928349.921 22928349.942
+ 39.100 31.800
+ -16776443.481 6 -13072561.924 5 21970235.585 21970235.582 21970234.197
+ 38.500 35.100
+ -1618747.221 3 -1261368.420 3 24480440.406 24480441.297 24480439.816
+ 23.000 18.600
+ -10561188.970 6 -8229494.331 5 22710436.614 22710436.642 22710435.915
+ 37.100 35.900
+ -21884216.780 7 -17052642.562 7 20604958.323 20604958.204 20604957.414
+ 46.800 42.600
+ -20961498.858 7 -16333634.360 7 20934953.234 20934951.509 20934952.369
+ 45.100 45.300
+ -20082791.394 7 -15648921.711 7 20666281.841 20666280.330 20666281.250
+ 46.900 42.500
+ -3422818.797 3 -2667128.301 2 23791782.130 23791784.354 23791780.803
+ 23.800 13.900
+ 06 1 1 16 17 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -659850.445 4 -514172.915 2 24313137.823 24313138.316 24313137.285
+ 24.900 15.100
+ -8864791.383 6 -6907633.448 5 22945057.709 22945055.559 22945055.732
+ 38.100 31.600
+ -16694089.440 6 -13008390.025 5 21985907.187 21985907.175 21985905.743
+ 38.800 34.900
+ -1579710.893 3 -1230950.582 3 24487869.394 24487870.383 24487868.673
+ 23.000 21.600
+ -10645330.744 6 -8295059.322 5 22694424.721 22694424.942 22694424.310
+ 37.700 35.800
+ -21842025.689 7 -17019766.418 7 20612987.012 20612987.013 20612985.964
+ 46.500 42.700
+ -21010050.198 7 -16371466.561 7 20925714.363 20925712.523 20925713.424
+ 45.400 45.400
+ -20087929.784 7 -15652925.649 7 20665304.092 20665302.573 20665303.426
+ 47.100 42.500
+ -3534948.546 4 -2754501.875 3 23770444.321 23770447.478 23770443.019
+ 26.200 18.600
+ 06 1 1 16 17 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -626015.174 4 -487807.801 3 24319576.750 24319577.667 24319576.141
+ 24.200 21.100
+ -8776874.896 6 -6839127.160 5 22961786.887 22961785.964 22961785.264
+ 37.800 32.300
+ -16611360.441 6 -12943925.940 5 22001648.449 22001650.241 22001648.260
+ 38.400 35.300
+ -1540234.512 3 -1200189.820 3 24495381.573 24495382.017 24495380.939
+ 22.100 19.900
+ -10729247.466 6 -8360448.945 6 22678455.821 22678456.100 22678455.331
+ 36.900 36.000
+ -21799216.479 7 -16986408.620 7 20621133.293 20621133.297 20621132.338
+ 46.800 42.700
+ -21058327.374 7 -16409085.133 7 20916527.570 20916525.698 20916526.556
+ 45.200 45.200
+ -20092478.567 7 -15656470.153 7 20664438.469 20664436.943 20664437.900
+ 47.200 42.600
+ -3646955.995 4 -2841780.244 3 23749130.760 23749132.446 23749129.156
+ 27.100 21.600
+ 06 1 1 16 18 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -591638.577 4 -461020.876 2 24326118.404 24326118.912 24326117.817
+ 26.800 17.800
+ -8688833.179 6 -6770523.298 5 22978541.611 22978539.792 22978539.604
+ 38.100 32.000
+ -16528258.687 6 -12879171.407 5 22017463.494 22017463.937 22017462.341
+ 38.600 34.800
+ -1500319.966 3 -1169087.661 2 24502976.640 24502977.279 24502976.106
+ 23.400 17.800
+ -10812938.379 6 -8425662.590 6 22662530.238 22662530.348 22662529.618
+ 37.100 36.300
+ -21755790.255 7 -16952570.031 7 20629397.182 20629397.056 20629396.229
+ 46.700 42.500
+ -21106328.692 7 -16446488.749 7 20907393.183 20907391.331 20907392.217
+ 45.200 45.300
+ -20096437.836 7 -15659555.297 7 20663685.220 20663683.452 20663684.481
+ 47.100 42.600
+ -3758838.205 4 -2928960.944 4 23727839.274 23727842.665 23727838.113
+ 27.100 24.200
+ 06 1 1 16 18 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -556722.470 4 -433813.568 2 24332762.399 24332763.383 24332761.991
+ 24.200 17.800
+ -8600668.202 6 -6701823.376 5 22995318.995 22995316.697 22995316.942
+ 37.500 31.500
+ -16444786.689 6 -12814128.379 5 22033348.309 22033348.196 22033346.699
+ 37.700 34.500
+ -1459969.281 3 -1137645.620 3 24510655.492 24510656.219 24510654.541
+ 22.100 18.600
+ -10896402.661 6 -8490699.650 5 22646647.526 22646647.539 22646647.007
+ 37.600 35.900
+ -21711748.583 7 -16918251.874 7 20637777.885 20637777.935 20637776.961
+ 46.500 42.600
+ -21154053.009 7 -16483676.522 7 20898311.648 20898309.689 20898310.615
+ 45.100 45.400
+ -20099807.942 7 -15662181.348 7 20663043.782 20663042.177 20663043.073
+ 46.800 42.500
+ -3870592.730 3 -3016042.127 3 23706571.093 23706575.414 23706570.679
+ 23.000 18.600
+ 06 1 1 16 19 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -521268.761 3 -406187.328 3 24339509.068 24339510.271 24339508.611
+ 20.500 18.600
+ -8512380.978 6 -6633028.200 5 23012119.535 23012117.098 23012117.496
+ 37.700 31.000
+ -16360946.574 6 -12748798.496 5 22049300.817 22049302.284 22049300.726
+ 38.100 33.800
+ -1419184.314 3 -1105865.163 2 24518416.550 24518416.729 24518416.010
+ 22.600 17.800
+ -10979639.476 6 -8555559.461 5 22630808.343 22630807.917 22630807.566
+ 38.000 35.900
+ -21667093.063 7 -16883455.395 7 20646275.918 20646275.595 20646274.896
+ 46.800 42.300
+ -21201498.590 7 -16520647.107 7 20889283.087 20889281.035 20889282.099
+ 45.300 45.300
+ -20102588.828 7 -15664348.276 7 20662514.530 20662513.006 20662513.917
+ 46.900 42.500
+ -3982216.963 4 -3103021.830 4 23685332.742 23685334.517 23685330.791
+ 26.500 24.200
+ 06 1 1 16 19 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -485279.383 3 -378143.694 3 24346357.497 24346358.897 24346357.143
+ 22.600 20.500
+ -8423973.429 6 -6564139.258 5 23028943.071 23028940.904 23028941.100
+ 38.200 30.800
+ -16276740.680 6 -12683183.573 5 22065325.682 22065326.447 22065324.506
+ 36.700 34.000
+ -1377967.462 3 -1073748.209 3 24526259.352 24526260.508 24526258.723
+ 21.100 20.500
+ -11062648.262 6 -8620241.587 6 22615012.062 22615011.848 22615011.176
+ 38.000 36.800
+ -21621824.889 7 -16848181.515 7 20654890.037 20654889.886 20654889.109
+ 46.800 42.300
+ -21248664.154 7 -16557399.495 7 20880307.638 20880305.683 20880306.641
+ 45.100 45.400
+ -20104780.655 7 -15666056.193 7 20662097.535 20662095.840 20662096.832
+ 46.800 42.300
+ -4093708.137 4 -3189897.809 3 23664114.477 23664117.629 23664113.603
+ 25.300 18.600
+ 06 1 1 16 20 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -448756.270 4 -349684.189 2 24353308.341 24353308.662 24353307.639
+ 25.300 15.100
+ -8335446.926 6 -6495157.627 5 23045788.883 23045787.194 23045787.131
+ 37.600 32.000
+ -16192171.546 6 -12617285.653 5 22081418.576 22081419.288 22081417.528
+ 37.200 33.500
+ -1336320.557 2 -1041296.102 2 24534184.600 24534185.591 24534183.537
+ 17.000 17.800
+ -11145428.153 6 -8684745.344 6 22599259.071 22599259.313 22599258.620
+ 37.300 36.900
+ -21575945.418 7 -16812431.310 7 20663620.707 20663620.567 20663619.687
+ 46.700 42.500
+ -21295548.241 7 -16593932.553 7 20871385.807 20871384.001 20871384.863
+ 44.900 45.600
+ -20106383.561 7 -15667305.216 7 20661792.421 20661790.729 20661791.748
+ 46.800 42.200
+ -4205063.677 4 -3276668.187 4 23642924.117 23642927.674 23642923.047
+ 24.600 25.600
+ 06 1 1 16 20 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -411701.318 4 -320810.224 2 24360359.633 24360359.783 24360358.970
+ 24.600 17.000
+ -8246802.905 6 -6426084.423 5 23062657.392 23062655.306 23062655.565
+ 38.000 31.100
+ -16107241.757 6 -12551106.665 5 22097579.050 22097581.129 22097579.125
+ 37.500 33.800
+ -1294245.616 2 -1008510.526 3 24542191.474 24542193.010 24542190.181
+ 13.900 21.100
+ -11227978.487 6 -8749070.225 6 22583550.693 22583550.565 22583549.955
+ 38.200 37.500
+ -21529455.812 7 -16776205.669 7 20672467.333 20672467.292 20672466.358
+ 46.700 42.400
+ -21342149.512 7 -16630245.235 7 20862517.841 20862516.164 20862516.908
+ 44.800 45.700
+ -20107397.745 7 -15668095.494 7 20661599.585 20661597.745 20661598.807
+ 46.900 42.100
+ -4316280.757 4 -3363330.583 3 23621760.906 23621763.348 23621759.533
+ 26.500 23.800
+ 06 1 1 16 21 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -374116.555 4 -291523.463 3 24367511.460 24367512.481 24367511.186
+ 24.900 18.600
+ -8158042.668 6 -6356920.648 4 23079547.233 23079545.933 23079545.777
+ 38.000 29.700
+ -16021953.274 6 -12484648.194 5 22113811.147 22113810.793 22113809.505
+ 37.000 33.100
+ -1251744.669 3 -975392.993 3 24550278.700 24550280.557 24550278.092
+ 18.600 23.000
+ -11310298.437 6 -8813215.598 6 22567885.501 22567885.544 22567884.827
+ 38.000 37.200
+ -21482357.887 7 -16739506.012 7 20681429.743 20681429.723 20681428.782
+ 46.600 42.300
+ -21388466.261 7 -16666336.211 7 20853704.207 20853702.348 20853703.154
+ 44.800 45.800
+ -20107823.458 7 -15668427.220 7 20661518.265 20661516.767 20661517.689
+ 46.900 42.000
+ -4427356.748 4 -3449883.125 3 23600623.953 23600625.913 23600622.177
+ 24.600 23.000
+ 06 1 1 16 21 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -336004.052 3 -261825.405 2 24374764.284 24374765.190 24374763.766
+ 21.600 17.800
+ -8069167.730 6 -6287667.503 5 23096460.333 23096458.442 23096458.494
+ 38.300 30.400
+ -15936308.772 6 -12417912.306 5 22130107.109 22130108.610 22130106.959
+ 37.500 33.200
+ -1208819.928 3 -941945.220 3 24558447.328 24558448.900 24558446.575
+ 18.600 21.100
+ -11392387.181 6 -8877180.813 6 22552263.889 22552264.340 22552263.577
+ 37.800 36.100
+ -21434653.064 7 -16702333.452 7 20690507.813 20690507.697 20690506.744
+ 46.700 42.100
+ -21434497.514 7 -16702204.727 7 20844944.753 20844942.797 20844943.786
+ 45.100 45.700
+ -20107661.028 7 -15668300.656 7 20661549.454 20661547.680 20661548.647
+ 46.800 42.100
+ -4538288.836 4 -3536323.503 3 23579513.615 23579516.119 23579512.202
+ 24.200 22.100
+ 06 1 1 16 22 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -297365.567 3 -231717.563 2 24382117.087 24382117.211 24382116.377
+ 22.100 15.100
+ -7980179.771 6 -6218326.281 4 23113394.281 23113391.678 23113392.513
+ 38.600 29.200
+ -15850310.786 6 -12350900.956 5 22146472.546 22146473.512 22146471.661
+ 36.800 33.100
+ -1165473.605 2 -908168.917 3 24566696.434 24566697.259 24566695.837
+ 17.800 21.100
+ -11474243.896 6 -8940965.236 6 22536687.012 22536687.478 22536686.661
+ 37.200 36.200
+ -21386342.837 7 -16664689.148 7 20699700.677 20699700.782 20699699.819
+ 46.500 42.200
+ -21480241.303 7 -16737849.245 7 20836239.949 20836238.067 20836238.965
+ 44.900 45.700
+ -20106910.540 7 -15667715.865 6 20661691.999 20661690.469 20661691.375
+ 46.800 41.900
+ -4649074.493 4 -3622649.829 3 23558432.587 23558433.746 23558430.932
+ 28.400 18.600
+ 06 1 1 16 22 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -258203.390 3 -201201.600 2 24389569.102 24389569.802 24389568.702
+ 23.400 16.100
+ -7891080.141 6 -6148898.032 5 23130349.281 23130347.488 23130347.376
+ 37.800 30.100
+ -15763961.540 6 -12283615.930 5 22162905.545 22162905.200 22162903.943
+ 36.800 32.800
+ -1121707.659 3 -874065.633 2 24575025.087 24575025.936 24575024.266
+ 23.400 17.000
+ -11555867.859 6 -9004568.284 6 22521154.679 22521154.895 22521154.306
+ 37.700 36.500
+ -21337428.568 7 -16626574.152 6 20709009.189 20709008.778 20709008.108
+ 46.700 41.900
+ -21525696.319 7 -16773268.743 7 20827590.191 20827588.336 20827589.163
+ 44.900 46.000
+ -20105572.416 7 -15666673.174 7 20661946.791 20661945.122 20661946.075
+ 46.900 42.000
+ -4759710.746 4 -3708859.708 3 23537377.959 23537380.353 23537376.575
+ 25.900 18.600
+ 06 1 1 16 23 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -218519.419 3 -170279.078 3 24397120.749 24397122.178 24397119.991
+ 21.600 18.600
+ -7801870.310 6 -6079383.931 4 23147324.958 23147323.566 23147323.429
+ 37.300 29.700
+ -15677263.495 6 -12216059.103 5 22179401.959 22179403.739 22179401.718
+ 37.200 33.900
+ -1077524.362 3 -839637.077 2 24583432.549 24583432.916 24583431.345
+ 21.100 13.900
+ -11637258.503 6 -9067989.533 6 22505666.959 22505666.637 22505666.242
+ 38.100 36.500
+ -21287911.856 7 -16587989.731 6 20718431.741 20718431.610 20718430.819
+ 46.700 41.800
+ -21570861.243 7 -16808462.193 7 20818995.650 20818993.687 20818994.652
+ 44.900 46.000
+ -20103646.756 7 -15665172.670 6 20662313.209 20662311.540 20662312.588
+ 47.000 41.900
+ -4870195.297 4 -3794951.416 3 23516353.039 23516355.718 23516351.980
+ 26.500 20.500
+ 06 1 1 16 23 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -178315.855 3 -138951.655 3 24404771.248 24404772.255 24404770.593
+ 21.600 19.900
+ -7712551.488 6 -6009784.905 5 23164322.031 23164320.507 23164320.249
+ 37.000 30.400
+ -15590219.017 6 -12148232.313 5 22195967.617 22195967.629 22195966.073
+ 36.400 33.100
+ -1032925.810 3 -804884.983 2 24591919.526 24591920.425 24591919.003
+ 21.600 12.600
+ -11718415.033 6 -9131228.355 6 22490223.333 22490222.942 22490222.534
+ 38.100 36.100
+ -21237794.609 7 -16548937.355 6 20727968.757 20727968.583 20727967.805
+ 46.500 41.900
+ -21615734.643 7 -16843428.478 7 20810456.445 20810454.557 20810455.463
+ 44.800 46.000
+ -20101134.100 7 -15663214.760 6 20662791.557 20662789.639 20662790.825
+ 47.000 41.800
+ -4980525.220 4 -3880922.526 4 23495357.632 23495361.109 23495356.668
+ 27.600 24.200
+ 06 1 1 16 24 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -137594.701 3 -107220.945 3 24412520.575 24412521.549 24412519.859
+ 21.600 21.100
+ -7623125.430 6 -5940102.318 5 23181339.063 23181337.469 23181337.328
+ 36.900 30.100
+ -15502830.671 6 -12080137.590 5 22212596.715 22212597.213 22212595.565
+ 37.000 32.800
+ -987914.197 3 -769811.043 2 24600484.811 24600485.389 24600483.948
+ 21.600 13.900
+ -11799336.755 6 -9194284.219 6 22474825.077 22474824.121 22474823.982
+ 38.300 36.600
+ -21187078.423 7 -16509418.279 6 20737619.584 20737619.455 20737618.702
+ 46.500 41.600
+ -21660315.026 7 -16878166.441 7 20801973.256 20801971.114 20801972.269
+ 44.900 46.000
+ -20098034.658 7 -15660799.617 7 20663381.264 20663379.523 20663380.596
+ 47.100 42.000
+ -5090697.803 4 -3966771.098 4 23474393.294 23474395.367 23474391.804
+ 29.000 24.200
+ 06 1 1 16 24 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -96358.101 3 -75088.584 2 24420367.236 24420367.793 24420366.638
+ 21.600 13.900
+ -7533593.312 6 -5870337.090 5 23198377.023 23198375.163 23198375.205
+ 37.400 30.200
+ -15415101.040 6 -12011776.902 5 22229290.436 22229291.658 22229289.932
+ 36.300 32.400
+ -942491.644 3 -734416.844 2 24609128.520 24609129.388 24609127.697
+ 22.100 17.000
+ -11880022.710 6 -9257156.357 6 22459470.502 22459470.424 22459469.970
+ 38.600 37.500
+ -21135764.947 7 -16469433.780 6 20747384.542 20747384.146 20747383.481
+ 46.400 41.400
+ -21704600.882 7 -16912674.896 7 20793545.955 20793543.813 20793544.910
+ 44.800 46.000
+ -20094348.821 7 -15657927.545 6 20664082.620 20664080.916 20664081.983
+ 47.100 41.900
+ -5200710.666 4 -4052495.197 3 23453458.060 23453460.615 23453456.946
+ 28.600 23.800
+ 06 1 1 16 25 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -54608.131 3 -42556.139 2 24428312.333 24428313.190 24428311.818
+ 20.500 13.900
+ -7443956.877 6 -5800490.577 4 23215434.238 23215432.287 23215432.266
+ 36.500 29.900
+ -15327032.453 6 -11943152.146 5 22246050.403 22246050.956 22246049.135
+ 36.700 33.100
+ -896660.356 3 -698704.186 3 24617849.558 24617851.232 24617848.605
+ 21.100 19.900
+ -11960472.415 6 -9319844.395 6 22444161.113 22444161.249 22444160.552
+ 38.600 37.800
+ -21083855.509 7 -16428984.894 6 20757262.548 20757262.419 20757261.503
+ 46.400 41.600
+ -21748590.984 7 -16946952.891 7 20785174.740 20785172.784 20785173.739
+ 44.700 46.000
+ -20090077.029 7 -15654598.887 7 20664895.427 20664893.918 20664894.906
+ 47.200 42.000
+ -5310561.033 4 -4138092.696 3 23432553.249 23432556.420 23432552.483
+ 27.900 23.800
+ 06 1 1 16 25 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -12347.130 3 -9625.516 3 24436354.324 24436355.040 24436353.982
+ 21.100 19.900
+ -7354217.432 6 -5730563.784 4 23232511.169 23232508.969 23232509.301
+ 36.400 29.700
+ -15238627.416 6 -11874265.172 5 22262872.104 22262873.775 22262871.599
+ 36.100 32.600
+ -850422.607 3 -662674.802 3 24626648.115 24626650.262 24626647.617
+ 22.600 23.400
+ -12040684.944 6 -9382347.629 6 22428897.462 22428896.982 22428896.797
+ 39.200 37.000
+ -21031351.776 7 -16388072.924 6 20767253.582 20767253.517 20767252.545
+ 46.500 41.400
+ -21792283.514 7 -16980999.010 7 20776860.479 20776858.438 20776859.461
+ 44.700 46.200
+ -20085219.551 7 -15650813.847 7 20665820.055 20665818.259 20665819.312
+ 47.300 42.100
+ -5420245.974 4 -4223561.250 4 23411680.544 23411683.816 23411679.939
+ 27.400 24.200
+ 06 1 1 16 26 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 30422.940 3 23701.759 3 24444493.284 24444494.491 24444492.565
+ 20.500 20.500
+ -7264376.225 5 -5660557.714 4 23249606.781 23249605.599 23249604.811
+ 35.100 29.900
+ -15149888.452 5 -11805118.034 5 22279759.731 22279760.395 22279758.613
+ 35.800 32.600
+ -803780.536 3 -626330.371 3 24635524.514 24635525.760 24635523.642
+ 22.600 22.600
+ -12120659.854 6 -9444665.715 6 22413678.736 22413678.267 22413677.848
+ 38.500 37.100
+ -20978255.553 7 -16346699.267 6 20777357.454 20777357.348 20777356.431
+ 46.100 41.300
+ -21835677.175 7 -17014812.245 7 20768602.790 20768600.887 20768601.733
+ 44.700 46.300
+ -20079777.215 7 -15646573.081 7 20666855.543 20666853.868 20666854.915
+ 47.200 42.200
+ -5529763.078 4 -4308899.050 4 23390840.246 23390843.432 23390839.270
+ 27.600 25.900
+ 06 1 1 16 26 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 73699.719 3 57423.867 2 24452728.156 24452729.149 24452727.460
+ 18.600 15.100
+ -7174434.598 5 -5590473.417 4 23266722.125 23266721.024 23266720.314
+ 35.300 29.200
+ -15060817.896 6 -11735712.472 5 22296707.978 22296709.995 22296707.962
+ 36.200 31.800
+ -756736.667 3 -589672.843 3 24644476.716 24644477.637 24644476.138
+ 23.800 23.800
+ -12200396.157 6 -9506797.864 6 22398504.796 22398505.132 22398504.138
+ 38.400 37.600
+ -20924568.883 7 -16304865.527 6 20787573.668 20787573.712 20787572.661
+ 46.300 41.300
+ -21878770.523 7 -17048391.464 7 20760402.171 20760400.491 20760401.166
+ 44.600 46.400
+ -20073750.264 7 -15641876.759 6 20668002.519 20668000.713 20668001.852
+ 47.300 41.900
+ -5639109.566 4 -4394103.909 3 23370031.654 23370034.877 23370031.251
+ 29.500 22.600
+ 06 1 1 16 27 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 117481.116 2 91539.244 3 24461059.468 24461061.005 24461059.114
+ 17.800 18.600
+ -7084394.008 5 -5520311.972 4 23283856.495 23283854.806 23283855.086
+ 35.800 28.400
+ -14971418.292 6 -11666050.529 5 22313722.009 22313722.050 22313720.576
+ 36.100 31.500
+ -709292.870 3 -552703.711 3 24653504.081 24653505.930 24653503.690
+ 21.600 22.600
+ -12279893.202 6 -9568743.577 6 22383377.337 22383377.339 22383376.711
+ 39.300 38.300
+ -20870293.628 7 -16262573.148 6 20797902.026 20797901.973 20797901.002
+ 46.300 41.200
+ -21921562.231 7 -17081735.639 7 20752259.219 20752257.434 20752258.248
+ 44.500 46.400
+ -20067139.261 7 -15636725.341 6 20669260.621 20669258.707 20669259.888
+ 47.300 41.900
+ -5748282.924 4 -4479173.913 4 23349256.736 23349259.989 23349255.918
+ 25.900 24.600
+ 06 1 1 16 27 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 161764.828 3 126045.955 3 24469486.992 24469487.821 24469486.490
+ 20.500 19.300
+ -6994255.920 6 -5450074.572 5 23301009.760 23301008.738 23301007.596
+ 36.000 30.200
+ -14881692.331 5 -11596134.275 5 22330794.634 22330796.585 22330794.329
+ 35.400 32.000
+ -661451.617 3 -515424.876 3 24662608.366 24662610.112 24662607.647
+ 23.000 23.400
+ -12359150.315 6 -9630502.342 6 22368295.447 22368295.110 22368294.513
+ 39.100 38.100
+ -20815431.095 7 -16219823.152 6 20808342.074 20808341.977 20808341.115
+ 46.300 41.200
+ -21964050.699 7 -17114843.527 7 20744174.082 20744172.145 20744173.075
+ 44.500 46.400
+ -20059944.457 7 -15631119.003 6 20670629.508 20670627.871 20670628.922
+ 47.100 41.900
+ -5857280.433 4 -4564106.892 3 23328515.044 23328517.913 23328514.352
+ 27.400 23.000
+ 06 1 1 16 28 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 206548.627 3 160942.417 3 24478008.504 24478010.075 24478008.046
+ 21.100 19.900
+ -6904021.634 6 -5379762.209 4 23318180.710 23318179.411 23318178.951
+ 36.000 29.500
+ -14791642.740 5 -11525965.850 5 22347931.766 22347932.558 22347930.563
+ 34.800 31.600
+ -613215.150 3 -477838.032 3 24671787.762 24671789.040 24671787.036
+ 19.900 21.600
+ -12438167.023 6 -9692073.772 6 22353258.830 22353258.917 22353258.005
+ 39.300 38.100
+ -20759982.909 7 -16176616.799 6 20818893.531 20818893.543 20818892.571
+ 46.300 41.100
+ -22006234.358 7 -17147713.898 7 20736146.765 20736144.862 20736145.745
+ 44.300 46.500
+ -20052166.596 7 -15625058.344 6 20672109.612 20672108.011 20672108.898
+ 47.000 41.900
+ -5966099.356 5 -4648900.754 4 23307807.581 23307810.562 23307807.115
+ 31.300 24.200
+ 06 1 1 16 28 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -153921.889 1 -119938.384 9 23321528.848 23321530.253 23321528.156
+ 11.000 -3.000
+ 251830.239 3 196226.755 3 24486625.277 24486626.964 24486624.904
+ 19.900 21.600
+ -6813692.581 5 -5309376.010 4 23335369.748 23335368.551 23335367.780
+ 35.600 29.200
+ -14701271.820 5 -11455547.034 5 22365128.455 22365129.704 22365127.424
+ 35.400 32.000
+ -564585.944 3 -439945.185 3 24681042.187 24681043.268 24681041.280
+ 21.600 23.800
+ -12516942.372 6 -9753457.144 6 22338268.502 22338268.333 22338267.771
+ 39.700 38.100
+ -20703951.519 7 -16132956.002 6 20829556.086 20829555.977 20829555.110
+ 46.200 41.200
+ -22048111.913 7 -17180345.743 7 20728177.602 20728175.778 20728176.653
+ 44.300 46.600
+ -20043806.087 7 -15618543.667 6 20673700.276 20673698.987 20673699.801
+ 47.000 41.900
+ -6074736.981 5 -4733553.367 4 23287134.633 23287137.327 23287134.101
+ 30.100 24.600
+ 06 1 1 16 29 0.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -233294.677 2 -181787.233 23306424.412 23306426.182 23306424.281
+ 15.100 3.000
+ 297607.427 3 231897.225 3 24495337.119 24495337.687 24495336.275
+ 19.300 18.600
+ -6723270.242 5 -5238917.128 4 23352576.696 23352575.421 23352575.007
+ 35.500 28.400
+ -14610581.893 5 -11384879.647 5 22382386.487 22382387.406 22382385.103
+ 35.100 31.600
+ -515565.946 3 -401747.849 3 24690370.273 24690371.316 24690369.271
+ 19.900 19.900
+ -12595475.637 6 -9814651.877 6 22323324.172 22323323.595 22323323.314
+ 39.400 37.700
+ -20647338.275 7 -16088841.812 6 20840329.296 20840329.069 20840328.238
+ 46.300 41.100
+ -22089681.938 7 -17212737.958 7 20720267.168 20720265.300 20720266.249
+ 44.400 46.600
+ -20034863.763 7 -15611575.630 7 20675402.274 20675400.698 20675401.545
+ 47.000 42.000
+ -6183190.509 5 -4818062.524 4 23266496.557 23266499.099 23266495.854
+ 30.600 24.200
+ 06 1 1 16 29 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -312502.045 2 -243507.180 2 23291352.986 23291353.724 23291351.803
+ 16.100 12.600
+ 343877.863 3 267952.082 3 24504141.608 24504142.749 24504141.153
+ 20.500 18.600
+ -6632755.663 6 -5168386.348 4 23369801.254 23369799.480 23369799.462
+ 36.100 29.500
+ -14519575.498 5 -11313965.650 5 22399703.110 22399705.496 22399703.078
+ 34.900 31.300
+ -466157.633 2 -363247.938 3 24699772.338 24699773.311 24699771.492
+ 17.000 19.900
+ -12673766.260 6 -9875657.541 6 22308425.652 22308425.426 22308425.065
+ 40.000 37.200
+ -20590145.025 7 -16044275.673 6 20851212.455 20851212.478 20851211.495
+ 45.900 40.700
+ -22130943.018 7 -17244889.439 7 20712415.788 20712413.586 20712414.768
+ 44.500 46.800
+ -20025340.018 7 -15604154.534 6 20677214.454 20677213.060 20677213.842
+ 47.000 41.800
+ -6291457.329 4 -4902426.200 4 23245893.649 23245896.672 23245893.188
+ 29.200 24.900
+ 06 1 1 16 30 0.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -391543.536 3 -305097.875 2 23276311.477 23276312.930 23276310.353
+ 18.600 12.600
+ 390639.165 3 304389.444 2 24513039.597 24513041.332 24513039.157
+ 19.900 17.000
+ -6542150.138 5 -5097784.701 4 23387042.614 23387041.286 23387040.825
+ 35.600 29.500
+ -14428255.719 5 -11242807.450 5 22417082.809 22417082.901 22417081.136
+ 34.000 31.100
+ -416363.404 2 -324447.271 3 24709247.460 24709249.189 24709246.488
+ 17.000 19.300
+ -12751813.543 6 -9936473.597 6 22293573.981 22293573.859 22293573.297
+ 39.900 38.400
+ -20532374.248 7 -15999259.509 6 20862205.991 20862206.080 20862204.999
+ 45.900 41.000
+ -22171893.628 7 -17276799.000 7 20704622.792 20704620.983 20704621.815
+ 44.300 46.900
+ -20015235.526 7 -15596280.902 6 20679137.477 20679135.898 20679136.768
+ 47.100 41.900
+ -6399534.827 4 -4986642.400 3 23225326.260 23225329.592 23225326.564
+ 29.500 22.100
+ 06 1 1 16 30 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -470418.558 2 -366558.882 2 23261302.561 23261303.697 23261301.040
+ 17.800 15.100
+ 437889.153 3 341207.570 3 24522031.616 24522032.908 24522030.804
+ 21.600 21.600
+ -6451455.258 6 -5027113.434 4 23404302.155 23404299.816 23404300.387
+ 36.700 29.000
+ -14336624.777 5 -11171406.781 5 22434517.526 22434520.001 22434517.506
+ 35.100 31.000
+ -366185.618 2 -285347.773 3 24718795.366 24718797.461 24718795.043
+ 17.800 19.300
+ -12829616.746 6 -9997099.440 6 22278768.357 22278768.176 22278767.847
+ 39.800 38.700
+ -20474027.392 7 -15953794.452 6 20873309.137 20873309.138 20873308.192
+ 46.200 40.700
+ -22212532.351 7 -17308465.528 7 20696889.390 20696887.713 20696888.391
+ 44.100 46.800
+ -20004550.830 7 -15587955.168 6 20681170.705 20681169.071 20681170.033
+ 47.000 41.900
+ -6507420.348 4 -5070708.977 4 23204797.660 23204800.196 23204796.837
+ 28.800 24.200
+ 06 1 1 16 31 0.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -549126.796 3 -427889.927 2 23246324.844 23246325.833 23246323.415
+ 22.100 17.800
+ 485625.249 3 378404.492 2 24531115.265 24531116.532 24531114.606
+ 18.600 17.800
+ -6360672.529 5 -4956373.715 4 23421576.654 23421575.828 23421574.985
+ 35.600 29.200
+ -14244685.116 5 -11099765.563 5 22452015.491 22452015.479 22452013.808
+ 34.900 31.500
+ -315626.482 2 -245951.099 2 24728416.500 24728418.822 24728416.020
+ 16.100 17.000
+ -12907175.275 6 -10057534.641 6 22264009.153 22264008.951 22264008.679
+ 39.900 38.100
+ -20415106.635 7 -15907882.202 6 20884521.139 20884521.376 20884520.259
+ 45.900 40.600
+ -22252857.703 7 -17339887.876 7 20689215.781 20689213.973 20689214.824
+ 44.200 46.900
+ -19993286.697 7 -15579177.924 6 20683314.167 20683312.596 20683313.518
+ 47.000 41.900
+ -6615111.395 4 -5154623.992 4 23184304.397 23184307.086 23184303.461
+ 27.900 24.200
+ 06 1 1 16 31 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -627667.689 3 -489090.576 3 23231378.915 23231380.143 23231377.691
+ 23.800 19.900
+ 533845.337 3 415978.572 3 24540291.397 24540292.988 24540290.821
+ 19.900 20.500
+ -6269803.055 5 -4885566.402 4 23438868.705 23438867.506 23438867.066
+ 35.100 27.900
+ -14152439.718 5 -11027886.082 5 22469566.580 22469569.199 22469567.058
+ 34.000 31.100
+ -264688.712 2 -206259.387 2 24738110.535 24738111.768 24738109.650
+ 17.800 15.100
+ -12984488.412 6 -10117778.630 6 22249297.317 22249296.916 22249296.559
+ 40.100 37.900
+ -20355613.685 7 -15861524.087 6 20895842.675 20895842.467 20895841.624
+ 46.100 40.600
+ -22292868.015 7 -17371064.740 7 20681602.153 20681600.229 20681601.174
+ 44.400 46.900
+ -19981443.799 7 -15569949.698 6 20685568.020 20685566.151 20685567.253
+ 47.200 41.800
+ -6722604.866 4 -5238385.030 3 23163848.452 23163851.526 23163848.097
+ 29.900 23.000
+ 06 1 1 16 32 0.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -706041.001 4 -550160.666 3 23216464.842 23216466.125 23216463.955
+ 26.800 21.100
+ 582546.996 3 453927.879 3 24549559.083 24549560.847 24549558.651
+ 22.100 18.600
+ -6178848.135 5 -4814692.490 4 23456177.822 23456175.392 23456175.902
+ 35.200 28.100
+ -14059890.860 5 -10955770.180 5 22487179.755 22487180.835 22487178.918
+ 34.600 30.800
+ -213374.229 3 -166274.142 1 24747875.357 24747876.305 24747874.859
+ 19.900 11.000
+ -13061555.435 6 -10177830.832 6 22234631.910 22234631.837 22234631.249
+ 40.300 39.200
+ -20295550.714 7 -15814721.800 6 20907272.035 20907272.195 20907271.156
+ 45.900 40.300
+ -22332561.910 7 -17401995.044 7 20674048.865 20674046.797 20674047.777
+ 44.300 47.100
+ -19969022.980 7 -15560271.136 6 20687931.226 20687929.796 20687930.659
+ 46.800 41.900
+ -6829898.523 5 -5321990.409 4 23143430.814 23143434.443 23143430.831
+ 30.400 25.900
+ 06 1 1 16 32 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -784246.029 4 -611099.612 4 23201582.520 23201584.243 23201581.673
+ 28.400 25.300
+ 631727.693 3 492250.445 2 24558918.142 24558919.413 24558917.341
+ 23.800 17.000
+ -6087809.220 5 -4743753.142 4 23473502.060 23473500.071 23473500.176
+ 35.400 29.000
+ -13967041.190 5 -10883419.814 4 22504848.983 22504849.535 22504847.822
+ 34.400 29.900
+ -161685.832 3 -125997.516 2 24757711.787 24757713.098 24757710.925
+ 20.500 17.000
+ -13138375.588 6 -10237690.663 6 22220012.908 22220013.341 22220012.370
+ 39.500 39.100
+ -20234919.623 7 -15767476.829 6 20918809.751 20918809.948 20918808.783
+ 45.800 40.300
+ -22371938.097 7 -17432677.784 7 20666555.678 20666553.664 20666554.761
+ 44.600 47.000
+ -19956024.569 7 -15550142.509 6 20690405.001 20690403.445 20690404.265
+ 47.000 41.900
+ -6936989.550 4 -5405437.866 4 23123051.873 23123055.205 23123051.582
+ 29.700 24.900
+ 06 1 1 16 33 0.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -862282.460 4 -671907.187 4 23186732.976 23186734.400 23186731.876
+ 29.500 25.900
+ 681385.010 3 530944.427 2 24568367.484 24568368.533 24568366.931
+ 21.100 17.800
+ -5996687.345 5 -4672749.138 4 23490841.495 23490840.176 23490839.259
+ 34.100 29.200
+ -13873893.200 5 -10810837.060 5 22522574.091 22522574.825 22522573.205
+ 34.500 30.200
+ -109625.797 3 -85431.334 1 24767618.132 24767618.684 24767617.403
+ 21.100 11.000
+ -13214948.416 6 -10297357.759 6 22205442.006 22205442.034 22205441.564
+ 40.200 38.700
+ -20173722.248 7 -15719790.594 6 20930455.428 20930455.399 20930454.360
+ 45.800 40.300
+ -22410994.845 7 -17463111.616 7 20659123.393 20659121.349 20659122.489
+ 44.200 47.000
+ -19942449.571 7 -15539564.590 6 20692987.883 20692986.596 20692987.300
+ 46.800 41.900
+ -7043875.300 5 -5488725.345 4 23102712.308 23102715.865 23102712.131
+ 30.600 26.500
+ 06 1 1 16 33 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -940149.869 5 -732583.074 4 23171915.351 23171916.687 23171914.144
+ 30.600 27.400
+ 731516.563 3 570007.924 3 24577907.269 24577908.831 24577906.757
+ 23.400 18.600
+ -5905484.089 5 -4601681.730 4 23508196.421 23508195.160 23508194.595
+ 34.300 26.800
+ -13780449.696 5 -10738023.990 5 22540356.586 22540357.037 22540355.147
+ 34.600 30.600
+ -57196.287 2 -44577.230 3 24777595.211 24777596.120 24777594.394
+ 16.100 18.600
+ -13291273.163 6 -10356831.552 6 22190918.272 22190917.744 22190917.426
+ 40.600 39.000
+ -20111960.581 7 -15671664.654 6 20942208.343 20942208.271 20942207.294
+ 45.700 40.100
+ -22449731.253 7 -17493295.830 7 20651752.273 20651750.226 20651751.309
+ 44.400 47.400
+ -19928299.125 7 -15528538.266 6 20695680.945 20695679.277 20695680.236
+ 46.900 41.900
+ -7150553.376 4 -5571851.002 4 23082412.243 23082415.424 23082411.649
+ 29.700 27.400
+ 06 1 1 16 34 0.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -1017847.753 5 -793126.869 4 23157129.792 23157131.107 23157128.610
+ 31.600 28.600
+ 782119.759 4 609438.951 3 24587536.877 24587537.913 24587536.334
+ 24.900 19.900
+ -5814200.530 5 -4530551.724 4 23525567.436 23525565.528 23525565.604
+ 34.400 24.900
+ -13686713.305 5 -10664982.709 5 22558192.838 22558194.504 22558192.338
+ 34.500 30.100
+ -4399.997 3 -3437.348 2 24787642.136 24787643.566 24787641.518
+ 21.600 17.800
+ -13367349.242 6 -10416111.552 6 22176440.657 22176440.948 22176440.167
+ 39.800 38.800
+ -20049637.212 7 -15623101.025 6 20954068.223 20954068.142 20954067.162
+ 45.700 40.500
+ -22488145.120 7 -17523228.715 7 20644442.154 20644440.314 20644441.226
+ 44.400 47.400
+ -19913573.430 7 -15517063.702 6 20698483.157 20698481.516 20698482.385
+ 46.900 41.900
+ -7257020.921 4 -5654812.616 4 23062152.651 23062154.850 23062151.690
+ 29.000 24.200
+ 06 1 1 16 34 30.0000000 0 10G 7G26G19G27G29G17G 8G28G11G24
+ -1095375.794 5 -853538.314 5 23142376.676 23142377.970 23142375.470
+ 32.600 30.200
+ 833192.426 3 649235.756 3 24597255.748 24597257.026 24597254.903
+ 23.800 19.300
+ -5722837.908 5 -4459360.119 4 23542953.746 23542951.632 23542951.910
+ 35.100 27.100
+ -13592686.757 5 -10591715.329 4 22576086.262 22576087.000 22576085.066
+ 33.400 29.700
+ 48760.583 3 37986.415 2 24797758.273 24797759.829 24797757.719
+ 20.500 17.800
+ -13443176.095 6 -10475197.350 6 22162011.760 22162011.474 22162011.072
+ 40.700 38.800
+ -19986753.848 7 -15574101.035 6 20966034.260 20966034.548 20966033.336
+ 45.600 40.300
+ -22526235.130 7 -17552909.245 7 20637193.892 20637191.915 20637192.909
+ 44.000 47.300
+ -19898273.577 7 -15505141.742 6 20701394.467 20701392.992 20701393.828
+ 46.800 41.600
+ -7363275.173 4 -5737608.024 4 23041932.313 23041935.538 23041932.090
+ 28.600 25.900
+ 06 1 1 16 35 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1172733.328 5 -913816.895 5 23127656.065 23127657.477 23127654.935
+ 33.500 30.200
+ 884731.890 3 689396.336 3 24607063.281 24607064.670 24607062.699
+ 23.800 18.600
+ -5631397.601 5 -4388107.973 4 23560353.226 23560351.900 23560351.533
+ 33.500 27.600
+ -13498372.427 5 -10518223.683 4 22594033.800 22594034.502 22594032.667
+ 32.800 29.500
+ -13518752.814 6 -10534088.241 6 22147630.050 22147629.713 22147629.297
+ 40.500 39.500
+ -19923312.421 7 -15524666.196 6 20978106.832 20978107.036 20978105.931
+ 45.600 39.900
+ -22564000.238 7 -17582336.602 7 20630007.457 20630005.524 20630006.568
+ 44.100 47.400
+ -19882400.431 7 -15492773.055 6 20704415.042 20704413.465 20704414.342
+ 46.600 41.800
+ -7469313.356 5 -5820235.109 4 23021754.399 23021757.009 23021753.702
+ 30.400 27.100
+ 06 1 1 16 35 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1249920.052 5 -973962.351 5 23112967.909 23112969.284 23112966.857
+ 33.900 31.800
+ 936735.603 4 729918.684 3 24616959.373 24616960.958 24616958.820
+ 26.200 21.600
+ -5539880.861 5 -4316796.295 4 23577768.790 23577767.133 23577766.983
+ 34.600 27.900
+ -13403773.147 5 -10444510.016 4 22612034.302 22612036.110 22612033.805
+ 32.700 28.800
+ -13594078.884 6 -10592783.818 6 22133295.472 22133295.557 22133294.895
+ 40.600 39.300
+ -19859315.511 7 -15474798.504 6 20990285.214 20990285.148 20990284.179
+ 45.200 39.800
+ -22601438.719 7 -17611509.443 7 20622882.967 20622881.226 20622882.123
+ 44.000 47.500
+ -19865954.650 7 -15479958.168 6 20707544.612 20707543.090 20707543.916
+ 46.600 41.600
+ -7575133.197 5 -5902692.020 4 23001617.529 23001620.195 23001616.835
+ 30.800 26.800
+ 06 1 1 16 36 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1326935.550 5 -1033974.391 5 23098312.244 23098313.700 23098311.304
+ 34.100 31.800
+ 989201.207 3 770800.900 3 24626943.601 24626944.790 24626942.972
+ 23.400 22.600
+ -5448289.071 5 -4245426.127 4 23595197.572 23595196.712 23595195.915
+ 35.100 25.900
+ -13308891.425 5 -10370576.289 4 22630091.076 22630091.812 22630089.529
+ 31.800 29.200
+ -13669153.780 6 -10651283.679 6 22119009.625 22119009.242 22119008.799
+ 40.900 39.700
+ -19794765.163 7 -15424499.571 6 21002568.523 21002568.806 21002567.598
+ 45.100 40.000
+ -22638549.040 7 -17640426.573 7 20615821.262 20615819.270 20615820.276
+ 43.800 47.500
+ -19848937.271 7 -15466697.875 6 20710782.700 20710781.433 20710782.162
+ 46.700 41.500
+ -7680731.958 4 -5984976.653 4 22981522.133 22981525.543 22981521.607
+ 29.900 27.100
+ 06 1 1 16 36 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1403779.318 5 -1093852.606 5 23083689.248 23083690.521 23083688.184
+ 32.700 31.500
+ 1042126.175 4 812041.098 3 24637014.514 24637016.095 24637014.084
+ 24.900 23.000
+ -5356623.690 5 -4173998.624 4 23612641.208 23612639.690 23612639.440
+ 33.500 27.400
+ -13213729.945 5 -10296424.527 4 22648198.817 22648200.359 22648197.896
+ 33.400 29.200
+ -13743976.536 6 -10709587.074 6 22104771.156 22104770.755 22104770.518
+ 41.200 39.700
+ -19729663.478 7 -15373771.026 6 21014957.044 21014957.254 21014956.067
+ 45.300 39.800
+ -22675329.846 7 -17669086.942 7 20608822.121 20608820.188 20608821.141
+ 43.700 47.600
+ -19831349.224 7 -15452992.906 6 20714129.803 20714128.245 20714129.092
+ 46.600 41.600
+ -7786107.095 5 -6067087.057 4 22961471.240 22961472.866 22961470.132
+ 30.600 25.900
+ 06 1 1 16 37 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1480451.103 5 -1153596.807 5 23069098.924 23069100.134 23069097.936
+ 31.300 31.000
+ 1095507.830 3 853637.142 3 24647172.461 24647174.423 24647171.673
+ 23.000 23.800
+ -5264885.514 5 -4102514.387 4 23630098.693 23630097.817 23630097.120
+ 34.000 28.100
+ -13118291.432 5 -10222056.929 5 22666359.602 22666361.804 22666359.304
+ 32.700 30.200
+ -13818546.751 6 -10767693.686 6 22090580.501 22090580.612 22090579.800
+ 40.900 39.500
+ -19664012.561 7 -15322614.498 6 21027450.135 21027450.223 21027449.090
+ 45.200 39.900
+ -22711779.856 7 -17697489.540 7 20601885.975 20601884.111 20601884.920
+ 43.600 47.700
+ -19813191.349 7 -15438843.916 6 20717585.280 20717583.610 20717584.504
+ 46.600 41.500
+ -7891255.831 5 -6149021.051 3 22941461.122 22941463.473 22941460.397
+ 30.400 23.400
+ 06 1 1 16 37 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1556950.395 5 -1213206.586 5 23054541.842 23054542.867 23054540.888
+ 31.300 30.100
+ 1149343.576 3 895586.992 3 24657416.926 24657418.825 24657416.568
+ 21.600 23.400
+ -5173075.896 5 -4030974.506 4 23647569.612 23647568.181 23647567.768
+ 34.700 27.400
+ -13022578.439 5 -10147475.438 5 22684574.442 22684575.564 22684573.174
+ 33.000 31.000
+ -13892863.848 6 -10825603.066 6 22076438.636 22076438.420 22076438.166
+ 41.600 39.700
+ -19597814.797 7 -15271031.863 6 21040047.101 21040047.285 21040046.133
+ 45.200 39.800
+ -22747897.339 7 -17725633.022 7 20595013.075 20595011.029 20595012.070
+ 43.800 47.700
+ -19794464.765 7 -15424251.766 6 20721149.026 20721147.177 20721148.225
+ 46.800 41.500
+ -7996175.435 5 -6230776.499 4 22921495.055 22921497.909 22921494.838
+ 31.000 25.600
+ 06 1 1 16 38 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1633276.731 5 -1272681.599 4 23040017.973 23040018.723 23040016.540
+ 31.100 29.500
+ 1203631.066 3 937888.889 4 24667748.012 24667749.481 24667747.128
+ 20.500 24.600
+ -5081196.024 5 -3959379.857 4 23665054.179 23665052.459 23665052.204
+ 33.900 27.600
+ -12926593.621 5 -10072682.115 4 22702839.932 22702840.774 22702838.688
+ 32.600 29.500
+ -13966927.283 6 -10883314.818 6 22062344.698 22062344.579 22062344.251
+ 41.500 39.700
+ -19531072.295 7 -15219024.751 6 21052748.015 21052747.924 21052746.985
+ 45.400 39.300
+ -22783681.076 7 -17753516.452 7 20588203.413 20588201.640 20588202.530
+ 43.700 47.700
+ -19775170.068 7 -15409216.939 6 20724820.460 20724818.822 20724819.714
+ 46.900 41.600
+ -8100863.245 5 -6312351.343 4 22901574.130 22901576.562 22901573.407
+ 32.000 26.800
+ 06 1 1 16 38 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1709429.825 5 -1332021.601 4 23025525.847 23025526.934 23025524.714
+ 30.200 28.600
+ 1258367.524 3 980540.631 4 24678164.144 24678165.909 24678163.698
+ 19.900 25.300
+ -4989247.193 5 -3887731.502 4 23682551.727 23682549.649 23682549.861
+ 34.600 26.200
+ -12830339.585 5 -9997679.030 4 22721155.896 22721157.258 22721155.183
+ 33.000 29.200
+ -14040736.480 6 -10940828.450 6 22048299.198 22048299.282 22048298.548
+ 41.000 39.800
+ -19463787.163 7 -15166594.806 6 21065551.719 21065551.924 21065550.858
+ 45.100 39.200
+ -22819129.296 7 -17781138.437 7 20581457.989 20581456.089 20581456.947
+ 43.600 47.800
+ -19755308.406 7 -15393740.322 6 20728599.955 20728598.473 20728599.245
+ 46.900 41.700
+ -8205316.783 5 -6393743.616 4 22881697.717 22881699.633 22881696.738
+ 32.400 27.600
+ 06 1 1 16 39 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1785409.204 5 -1391226.269 4 23011067.853 23011068.308 23011066.502
+ 31.500 26.800
+ 1313550.340 2 1023540.181 3 24688665.331 24688666.884 24688664.629
+ 17.800 23.000
+ -4897230.725 5 -3816030.410 4 23700061.487 23700060.103 23700059.648
+ 33.500 25.300
+ -12733819.503 5 -9922468.644 4 22739523.716 22739524.638 22739522.599
+ 32.800 29.900
+ -14114290.730 6 -10998143.425 6 22034302.618 22034302.305 22034301.983
+ 41.500 40.200
+ -19395961.844 7 -15113743.940 6 21078458.412 21078458.814 21078457.549
+ 45.300 39.300
+ -22854240.864 7 -17808498.091 7 20574776.511 20574774.463 20574775.510
+ 43.500 47.800
+ -19734880.840 7 -15377822.734 6 20732487.165 20732485.631 20732486.435
+ 47.100 41.600
+ -8309533.535 5 -6474951.387 4 22861864.617 22861867.648 22861864.590
+ 31.100 26.200
+ 06 1 1 16 39 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1861214.368 5 -1450295.203 4 22996642.528 22996643.187 22996641.275
+ 33.000 26.800
+ 1369176.985 2 1066885.589 3 24699249.900 24699251.817 24699249.828
+ 16.100 23.400
+ -4805147.617 5 -3744277.410 4 23717584.222 23717582.501 23717582.802
+ 33.100 24.900
+ -12637035.629 5 -9847052.703 4 22757941.223 22757942.328 22757939.796
+ 32.400 29.200
+ -14187589.062 6 -11055258.996 6 22020354.313 22020353.989 22020353.562
+ 41.900 39.800
+ -19327598.560 7 -15060473.878 6 21091468.010 21091467.960 21091466.825
+ 45.000 39.500
+ -22889014.051 7 -17835594.078 7 20568159.170 20568157.388 20568158.310
+ 43.300 47.800
+ -19713888.369 7 -15361464.966 6 20736481.998 20736480.257 20736481.347
+ 47.500 41.300
+ -8413510.887 5 -6555972.593 4 22842078.207 22842081.550 22842078.119
+ 32.300 27.400
+ 06 1 1 16 40 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -1936845.004 5 -1509228.147 4 22982249.951 22982251.435 22982248.737
+ 32.600 29.000
+ 1425244.889 2 1110574.790 3 24709919.297 24709921.421 24709919.078
+ 15.100 20.500
+ -4712999.240 5 -3672473.548 4 23735119.878 23735118.363 23735117.834
+ 33.800 25.900
+ -12539990.732 5 -9771433.363 4 22776408.130 22776409.058 22776406.819
+ 31.600 29.000
+ -14260631.218 6 -11112174.940 6 22006454.440 22006454.494 22006453.975
+ 41.800 39.800
+ -19258699.455 7 -15006786.293 6 21104579.057 21104579.114 21104577.966
+ 44.900 39.500
+ -22923447.614 7 -17862425.419 7 20561606.862 20561604.873 20561605.878
+ 43.200 47.800
+ -19692332.070 7 -15344667.844 6 20740584.081 20740582.265 20740583.437
+ 47.400 41.300
+ -8517246.290 5 -6636805.258 4 22822339.425 22822341.314 22822338.275
+ 32.300 28.800
+ 06 1 1 16 40 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2012300.705 5 -1568024.755 5 22967891.320 22967892.705 22967890.101
+ 33.000 30.200
+ 1481751.135 2 1154605.585 3 24720672.442 24720674.213 24720671.863
+ 16.100 20.500
+ -4620786.643 5 -3600619.630 4 23752666.691 23752665.596 23752664.929
+ 32.300 24.900
+ -12442687.619 5 -9695612.818 4 22794923.662 22794925.105 22794923.151
+ 32.400 28.100
+ -14333416.619 6 -11168890.815 6 21992604.372 21992603.762 21992603.600
+ 41.900 40.000
+ -19189266.970 7 -14952683.090 6 21117791.135 21117791.697 21117790.315
+ 44.700 39.300
+ -22957539.948 7 -17888990.867 7 20555119.432 20555117.287 20555118.444
+ 43.400 47.800
+ -19670212.866 7 -15327432.096 6 20744793.278 20744791.390 20744792.633
+ 47.700 41.100
+ -8620737.011 5 -6717447.287 4 22802645.011 22802647.395 22802644.550
+ 33.100 26.500
+ 06 1 1 16 41 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2087581.030 5 -1626684.708 5 22953566.171 22953566.950 22953564.994
+ 33.200 30.400
+ 1538693.339 2 1198976.093 3 24731507.878 24731510.095 24731507.589
+ 17.000 21.600
+ -4528511.161 5 -3528716.716 4 23770226.079 23770225.357 23770224.073
+ 31.500 25.900
+ -12345128.838 5 -9619593.045 4 22813489.004 22813489.939 22813487.967
+ 32.000 26.500
+ -14405944.587 6 -11225406.089 6 21978802.422 21978802.113 21978801.929
+ 41.600 39.700
+ -19119303.461 7 -14898166.101 6 21131104.994 21131105.239 21131103.955
+ 44.600 39.100
+ -22991289.686 7 -17915289.358 8 20548696.760 20548694.941 20548695.870
+ 43.200 48.000
+ -19647532.071 7 -15309758.738 6 20749109.288 20749107.374 20749108.609
+ 47.500 41.000
+ -8723980.254 5 -6797896.480 4 22782997.311 22783000.723 22782997.689
+ 33.600 28.400
+ 06 1 1 16 41 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2162685.640 5 -1685207.731 5 22939274.208 22939274.942 22939272.872
+ 31.800 30.400
+ 1596068.825 2 1243684.226 3 24742426.876 24742427.932 24742426.323
+ 17.000 19.300
+ -4436173.980 5 -3456765.765 4 23787797.718 23787796.334 23787795.801
+ 32.300 26.200
+ -12247316.781 5 -9543375.921 4 22832101.909 22832103.163 22832100.718
+ 30.600 26.500
+ -14478214.458 6 -11281720.234 6 21965049.852 21965049.630 21965049.263
+ 41.800 40.300
+ -19048811.259 7 -14843237.137 6 21144519.475 21144519.468 21144518.382
+ 44.900 38.600
+ -23024695.353 7 -17941319.737 8 20542339.958 20542338.122 20542338.998
+ 42.700 48.100
+ -19624290.573 7 -15291648.479 6 20753531.979 20753530.165 20753531.346
+ 47.600 41.100
+ -8826973.569 5 -6878150.919 4 22763399.311 22763401.712 22763398.803
+ 33.000 29.000
+ 06 1 1 16 42 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2237614.216 5 -1743593.555 5 22925015.668 22925016.849 22925014.340
+ 31.500 31.100
+ 1653874.766 3 1288727.744 2 24753426.712 24753428.362 24753426.115
+ 20.500 15.100
+ -4343776.241 5 -3384767.591 4 23805380.445 23805379.082 23805378.795
+ 33.500 26.200
+ -12149254.399 5 -9466963.744 4 22850762.049 22850764.023 22850761.371
+ 31.000 27.100
+ -14550225.691 7 -11337832.839 6 21951346.512 21951346.518 21951345.919
+ 42.000 40.700
+ -18977792.852 7 -14787898.138 6 21158033.521 21158033.801 21158032.668
+ 45.000 38.800
+ -23057755.324 7 -17967080.749 8 20536049.057 20536046.931 20536048.103
+ 43.300 48.100
+ -19600489.503 7 -15273102.189 6 20758061.014 20758059.393 20758060.470
+ 47.500 41.100
+ -8929714.347 5 -6958208.544 4 22743849.603 22743850.858 22743848.073
+ 31.500 29.500
+ 06 1 1 16 42 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2312366.128 5 -1801841.723 5 22910790.985 22910791.981 22910789.911
+ 33.500 30.400
+ 1712108.640 3 1334104.782 9 24764508.612 24764509.057 24764508.035
+ 20.500 -3.000
+ -4251319.143 5 -3312723.138 3 23822974.614 23822972.409 23822972.609
+ 32.300 22.600
+ -12050944.847 4 -9390358.949 4 22869469.473 22869471.811 22869468.961
+ 29.700 27.600
+ -14621977.503 7 -11393743.289 6 21937692.386 21937692.488 21937692.013
+ 42.100 40.800
+ -18906250.647 7 -14732150.998 6 21171647.545 21171648.048 21171646.690
+ 44.300 38.900
+ -23090468.545 7 -17992571.569 8 20529823.945 20529821.808 20529822.925
+ 43.000 48.100
+ -19576130.000 7 -15254120.755 6 20762696.407 20762694.905 20762695.704
+ 47.300 41.100
+ -9032200.107 5 -7038067.478 4 22724345.806 22724348.281 22724345.314
+ 32.100 28.400
+ 06 1 1 16 43 0.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2386941.045 5 -1859952.000 4 22896599.690 22896600.177 22896598.453
+ 33.500 28.600
+ 1770767.538 3 1379813.005 9 24775670.391 24775671.992 24775669.774
+ 21.100 -3.000
+ -4158803.874 5 -3240633.385 4 23840579.476 23840578.599 23840577.673
+ 31.600 25.300
+ -11952390.729 4 -9313563.624 4 22888224.379 22888226.118 22888223.320
+ 29.900 29.000
+ -14693469.654 7 -11449451.400 6 21924088.204 21924087.581 21924087.577
+ 42.300 40.100
+ -18834186.893 7 -14675997.458 6 21185361.325 21185361.446 21185360.023
+ 44.100 38.900
+ -23122833.318 7 -18017790.863 8 20523664.917 20523663.080 20523664.008
+ 43.000 48.300
+ -19551213.369 7 -15234705.198 6 20767437.915 20767436.448 20767437.231
+ 47.400 41.100
+ -9134428.381 5 -7117725.792 4 22704891.289 22704894.754 22704891.638
+ 32.000 28.600
+ 06 1 1 16 43 30.0000000 0 9G 7G26G19G27G17G 8G28G11G24
+ -2461338.831 5 -1917924.245 4 22882441.421 22882442.519 22882440.439
+ 32.800 29.000
+ 1829848.630 3 1425850.227 1 24786913.074 24786914.420 24786912.800
+ 18.600 9.000
+ -4066231.429 5 -3168499.081 4 23858195.384 23858194.074 23858193.200
+ 31.000 25.300
+ -11853594.759 5 -9236579.831 4 22907024.843 22907026.710 22907023.770
+ 30.100 29.200
+ -14764701.426 7 -11504956.629 6 21910533.201 21910532.638 21910532.489
+ 42.400 40.500
+ -18761604.148 7 -14619439.502 6 21199173.054 21199173.339 21199172.012
+ 44.100 38.500
+ -23154848.190 7 -18042737.511 8 20517572.681 20517570.861 20517571.689
+ 42.900 48.400
+ -19525740.754 7 -15214856.406 6 20772285.058 20772283.615 20772284.535
+ 47.500 41.000
+ -9236396.201 5 -7197181.140 4 22685488.772 22685490.670 22685487.939
+ 32.100 28.600
+ 06 1 1 16 44 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2535558.871 5 -1975757.971 5 22868318.655 22868319.561 22868317.539
+ 34.000 31.300
+ -3973603.159 5 -3096321.277 4 23875821.121 23875820.914 23875819.536
+ 31.000 25.600
+ -11754559.275 4 -9159409.381 4 22925870.413 22925872.132 22925869.711
+ 29.900 27.600
+ -14835672.226 7 -11560258.491 6 21897027.705 21897027.288 21897027.156
+ 42.600 40.100
+ -18688504.592 7 -14562478.843 6 21213083.158 21213083.761 21213082.371
+ 44.300 38.900
+ -23186511.804 7 -18067410.451 8 20511547.264 20511545.482 20511546.346
+ 42.800 48.500
+ -19499713.368 7 -15194575.327 6 20777238.387 20777236.421 20777237.650
+ 47.600 40.800
+ -9338101.138 5 -7276431.653 4 22666136.152 22666136.843 22666134.486
+ 33.100 28.800
+ 06 1 1 16 44 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2609600.820 5 -2033452.909 5 22854228.718 22854229.849 22854227.419
+ 33.100 32.700
+ -3880919.955 5 -3024100.648 4 23893458.302 23893458.204 23893456.554
+ 30.600 26.800
+ -11655287.135 4 -9082054.578 4 22944761.280 22944763.293 22944760.396
+ 29.500 26.800
+ -14906381.440 7 -11615356.529 6 21883572.260 21883571.938 21883571.572
+ 42.600 40.900
+ -18614891.155 7 -14505117.761 6 21227091.443 21227091.975 21227090.601
+ 44.000 38.500
+ -23217822.796 7 -18091808.627 8 20505588.965 20505587.196 20505588.058
+ 42.800 48.500
+ -19473132.252 7 -15173862.772 6 20782296.589 20782294.685 20782295.816
+ 47.600 40.700
+ -9439540.643 5 -7355475.331 4 22646831.749 22646833.397 22646830.774
+ 32.800 28.400
+ 06 1 1 16 45 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2683464.398 5 -2091008.850 5 22840172.600 22840173.372 22840171.247
+ 32.600 31.600
+ -3788183.056 4 -2951838.212 4 23911105.965 23911105.868 23911104.144
+ 29.900 27.400
+ -11555781.273 5 -9004517.563 4 22963696.998 22963698.720 22963695.893
+ 31.500 27.600
+ -14976828.795 7 -11670250.522 6 21870166.789 21870165.998 21870166.089
+ 42.800 40.500
+ -18540766.088 7 -14447357.999 6 21241197.572 21241197.500 21241196.274
+ 44.000 38.400
+ -23248779.609 7 -18115930.814 8 20499698.026 20499696.311 20499697.020
+ 42.700 48.500
+ -19445998.678 7 -15152719.732 6 20787459.833 20787457.894 20787459.140
+ 47.500 40.900
+ -9540712.422 5 -7434310.419 4 22627577.897 22627581.076 22627578.285
+ 33.600 29.000
+ 06 1 1 16 45 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2757149.115 5 -2148425.462 5 22826151.357 22826151.544 22826150.257
+ 35.100 30.600
+ -3695393.507 5 -2879534.745 4 23928763.628 23928763.630 23928762.179
+ 31.000 27.100
+ -11456044.092 5 -8926800.365 4 22982677.114 22982677.864 22982675.797
+ 31.100 26.800
+ -15047013.385 7 -11724939.783 6 21856810.844 21856810.303 21856810.331
+ 43.300 40.500
+ -18466131.535 7 -14389201.233 6 21255399.832 21255399.941 21255398.670
+ 43.600 38.100
+ -23279380.762 7 -18139775.867 8 20493874.847 20493873.078 20493873.954
+ 42.600 48.600
+ -19418313.902 7 -15131147.179 6 20792727.919 20792726.262 20792727.229
+ 47.300 41.100
+ -9641613.863 5 -7512934.847 5 22608377.481 22608380.171 22608377.204
+ 33.500 30.100
+ 06 1 1 16 46 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2830654.641 5 -2205702.457 5 22812163.333 22812164.652 22812162.133
+ 34.100 32.400
+ -3602552.594 5 -2807191.252 4 23946431.321 23946430.119 23946429.210
+ 32.000 24.200
+ -11356078.638 5 -8848905.297 4 23001699.102 23001701.183 23001698.481
+ 32.300 27.400
+ -15116934.765 7 -11779423.948 6 21843505.142 21843504.937 21843504.641
+ 42.700 41.000
+ -18390990.334 7 -14330649.692 6 21269698.318 21269698.822 21269697.470
+ 43.600 37.900
+ -23309624.866 7 -18163342.700 8 20488119.811 20488117.763 20488118.778
+ 42.300 48.500
+ -19390079.257 7 -15109146.162 6 20798100.918 20798099.225 20798100.203
+ 47.500 41.100
+ -9742242.266 5 -7591346.516 5 22589229.839 22589231.391 22589228.536
+ 32.600 30.200
+ 06 1 1 16 46 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2903980.702 5 -2262839.553 5 22798208.691 22798211.074 22798207.882
+ 32.400 31.600
+ -3509661.358 5 -2734808.519 3 23964108.089 23964106.446 23964106.459
+ 31.500 23.400
+ -11255887.770 5 -8770834.555 4 23020764.657 23020766.796 23020764.085
+ 30.100 27.900
+ -15186592.390 7 -11833702.589 6 21830249.715 21830249.443 21830249.091
+ 42.800 41.100
+ -18315345.099 7 -14271705.394 6 21284093.018 21284093.820 21284092.391
+ 43.900 38.100
+ -23339510.636 7 -18186630.309 8 20482432.686 20482430.672 20482431.698
+ 42.400 48.500
+ -19361295.957 7 -15086717.614 6 20803578.000 20803576.483 20803577.366
+ 47.300 41.100
+ -9842595.068 5 -7669543.419 4 22570133.618 22570134.603 22570132.086
+ 33.200 29.200
+ 06 1 1 16 47 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -2977126.837 5 -2319836.490 4 22784290.730 22784290.642 22784289.714
+ 34.700 29.200
+ -3416720.931 5 -2662387.494 3 23981793.510 23981792.166 23981791.386
+ 30.400 22.100
+ -11155474.052 4 -8692590.173 4 23039874.094 23039874.460 23039872.349
+ 27.600 24.200
+ -15255985.643 7 -11887775.239 6 21817044.714 21817044.102 21817044.225
+ 43.200 40.900
+ -18239198.240 7 -14212370.220 6 21298584.017 21298584.167 21298582.877
+ 43.800 38.100
+ -23369036.329 7 -18209637.340 8 20476814.178 20476812.051 20476813.192
+ 42.500 48.500
+ -19331965.331 7 -15063862.585 6 20809159.447 20809158.017 20809158.825
+ 47.300 41.100
+ -9942669.566 5 -7747523.462 5 22551089.312 22551091.008 22551088.382
+ 33.900 30.800
+ 06 1 1 16 47 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3050092.639 5 -2376692.941 5 22770405.429 22770406.159 22770404.275
+ 34.600 31.300
+ -3323732.305 5 -2589928.848 3 23999488.320 23999487.055 23999486.667
+ 30.800 20.500
+ -11054840.148 4 -8614174.230 4 23059022.420 23059025.316 23059021.783
+ 28.100 27.100
+ -15325114.298 7 -11941641.714 6 21803889.805 21803889.615 21803889.190
+ 42.900 41.200
+ -18162552.262 7 -14152646.118 6 21313169.177 21313169.441 21313167.976
+ 43.400 37.700
+ -23398200.786 7 -18232362.888 8 20471264.284 20471262.299 20471263.321
+ 42.500 48.600
+ -19302088.668 7 -15040582.072 6 20814844.583 20814843.288 20814843.954
+ 47.200 40.900
+ -10042463.405 5 -7825284.828 4 22532098.324 22532100.607 22532098.046
+ 34.000 28.800
+ 06 1 1 16 48 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3122877.831 5 -2433408.600 5 22756554.153 22756556.591 22756553.035
+ 33.100 33.100
+ -3230696.634 5 -2517433.587 3 24017193.224 24017191.703 24017191.420
+ 31.500 23.800
+ -10953988.847 4 -8535588.853 4 23078213.921 23078216.230 23078213.387
+ 28.600 25.600
+ -15393977.469 7 -11995301.325 6 21790786.002 21790785.174 21790785.401
+ 43.700 40.900
+ -18085409.605 7 -14092535.000 6 21327849.059 21327849.123 21327847.862
+ 43.600 37.400
+ -23427002.505 7 -18254805.783 8 20465783.386 20465781.588 20465782.401
+ 42.100 48.700
+ -19271667.493 7 -15016877.273 6 20820633.772 20820632.182 20820633.100
+ 47.200 40.800
+ -10141973.962 5 -7902825.455 5 22513161.870 22513164.588 22513161.759
+ 35.100 30.400
+ 06 1 1 16 48 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3195482.003 5 -2489983.207 5 22742739.057 22742739.940 22742737.991
+ 35.400 31.600
+ -3137614.945 4 -2444902.439 3 24034905.670 24034904.611 24034903.720
+ 29.700 23.400
+ -10852923.042 4 -8456836.390 3 23097446.467 23097448.116 23097445.913
+ 29.000 23.800
+ -15462574.615 7 -12048753.644 6 21777732.169 21777731.651 21777731.537
+ 43.400 41.100
+ -18007772.903 7 -14032038.911 6 21342622.877 21342622.847 21342621.688
+ 43.300 37.200
+ -23455440.019 7 -18276964.879 8 20460371.765 20460370.115 20460370.826
+ 42.200 48.700
+ -19240703.106 7 -14992749.188 6 20826526.143 20826524.431 20826525.427
+ 47.200 40.700
+ -10241198.825 5 -7980143.471 5 22494279.654 22494282.416 22494279.566
+ 34.000 30.200
+ 06 1 1 16 49 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3267904.755 5 -2546416.508 4 22728956.988 22728957.112 22728955.997
+ 35.500 29.200
+ -3044488.408 5 -2372336.386 4 24052627.081 24052626.774 24052625.466
+ 31.000 24.900
+ -10751645.601 4 -8377918.955 4 23116719.890 23116721.449 23116718.581
+ 29.500 26.800
+ -15530905.145 7 -12101998.200 6 21764728.921 21764728.887 21764728.513
+ 43.100 41.100
+ -17929644.951 7 -13971160.034 6 21357489.672 21357490.193 21357488.823
+ 43.500 37.400
+ -23483512.047 7 -18298839.181 8 20455029.996 20455028.231 20455029.033
+ 42.100 48.800
+ -19209196.896 7 -14968198.902 6 20832521.611 20832519.858 20832520.830
+ 47.300 40.500
+ -10340135.584 5 -8057236.988 5 22475453.516 22475455.526 22475452.661
+ 34.300 30.100
+ 06 1 1 16 49 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3340145.840 5 -2602708.224 5 22715209.606 22715210.981 22715208.455
+ 34.400 32.100
+ -2951318.129 5 -2299736.235 3 24070357.044 24070355.940 24070354.927
+ 30.200 22.600
+ -10650159.194 4 -8298838.702 3 23136031.952 23136033.324 23136030.766
+ 27.400 23.000
+ -15598968.595 7 -12155034.634 6 21751777.227 21751776.841 21751776.547
+ 43.400 41.600
+ -17851028.404 7 -13909900.441 6 21372449.669 21372450.584 21372448.963
+ 43.100 37.600
+ -23511217.234 7 -18320427.635 8 20449757.927 20449755.989 20449756.932
+ 42.000 48.800
+ -19177150.072 7 -14943227.357 6 20838619.729 20838618.276 20838619.080
+ 47.300 40.500
+ -10438781.451 5 -8134103.855 4 22456681.591 22456683.521 22456680.819
+ 34.900 29.900
+ 06 1 1 16 50 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3412204.716 5 -2658857.925 5 22701498.543 22701499.349 22701497.251
+ 35.800 34.500
+ -2858105.165 5 -2227102.804 3 24088095.478 24088093.975 24088093.791
+ 31.800 23.000
+ -10548466.236 4 -8219597.500 4 23155382.598 23155385.438 23155382.257
+ 29.500 27.900
+ -15666764.290 7 -12207862.427 6 21738876.168 21738875.633 21738875.587
+ 43.700 41.400
+ -17771925.810 7 -13848262.108 6 21387502.786 21387503.308 21387501.923
+ 43.100 37.400
+ -23538553.798 7 -18341728.852 8 20444555.864 20444553.963 20444554.889
+ 42.100 48.700
+ -19144564.004 7 -14917835.631 6 20844820.541 20844819.251 20844819.954
+ 47.200 40.300
+ -10537134.123 5 -8210742.247 5 22437965.960 22437967.532 22437965.008
+ 35.200 30.100
+ 06 1 1 16 50 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3484081.268 5 -2714865.567 5 22687819.982 22687820.947 22687819.076
+ 35.500 32.100
+ -2764850.576 4 -2154436.951 3 24105840.619 24105839.977 24105838.985
+ 29.900 23.400
+ -10446569.709 4 -8140197.674 3 23174774.178 23174775.213 23174772.760
+ 29.500 23.400
+ -15734291.950 7 -12260481.343 6 21726025.923 21726025.533 21726025.328
+ 43.600 41.400
+ -17692340.026 7 -13786247.263 6 21402647.668 21402647.955 21402646.554
+ 43.100 37.200
+ -23565520.637 6 -18362741.965 8 20439424.268 20439422.360 20439423.295
+ 41.900 48.800
+ -19111440.325 7 -14892024.979 6 20851123.998 20851122.377 20851123.332
+ 47.300 40.300
+ -10635191.003 5 -8287150.174 4 22419306.885 22419307.720 22419305.615
+ 34.900 29.700
+ 06 1 1 16 51 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3555774.994 5 -2770730.770 5 22674176.621 22674177.090 22674175.491
+ 34.300 30.100
+ -2671555.204 4 -2081739.342 4 24123593.729 24123594.548 24123592.090
+ 29.000 27.900
+ -10344472.354 4 -8060641.406 4 23194202.446 23194204.161 23194201.388
+ 28.600 25.300
+ -15801550.867 7 -12312890.844 6 21713227.036 21713226.205 21713226.446
+ 43.600 41.000
+ -17612273.581 7 -13723857.877 6 21417883.856 21417884.231 21417882.860
+ 42.900 37.100
+ -23592116.377 6 -18383465.910 8 20434363.178 20434361.346 20434362.287
+ 41.900 48.700
+ -19077780.550 7 -14865796.588 6 20857529.353 20857527.617 20857528.639
+ 47.500 40.200
+ -10732949.865 5 -8363325.878 5 22400704.775 22400705.058 22400703.020
+ 34.800 30.200
+ 06 1 1 16 51 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3627285.602 6 -2826453.280 5 22660569.757 22660569.799 22660568.515
+ 36.500 32.600
+ -2578220.135 4 -2009010.821 4 24141355.027 24141354.991 24141353.314
+ 28.600 24.900
+ -10242177.355 4 -7980931.047 4 23213666.896 23213670.339 23213667.012
+ 27.100 25.600
+ -15868540.823 7 -12365090.758 6 21700479.384 21700478.655 21700478.713
+ 43.900 41.400
+ -17531729.355 7 -13661096.198 6 21433210.977 21433211.444 21433209.941
+ 42.700 37.100
+ -23618339.691 6 -18403899.655 8 20429373.098 20429371.175 20429372.178
+ 41.800 48.600
+ -19043586.062 7 -14839151.534 6 20864036.306 20864034.593 20864035.631
+ 47.300 40.200
+ -10830407.865 5 -8439267.141 5 22382158.864 22382159.849 22382157.430
+ 35.600 31.300
+ 06 1 1 16 52 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3698612.642 5 -2882032.732 5 22646995.808 22646997.263 22646994.842
+ 35.800 33.900
+ -2484846.568 5 -1936252.260 3 24159124.360 24159122.933 24159122.241
+ 30.100 23.400
+ -10139686.955 4 -7901068.493 4 23233171.732 23233173.563 23233170.454
+ 28.100 24.900
+ -15935261.089 7 -12417080.498 7 21687782.757 21687782.460 21687782.125
+ 44.400 42.400
+ -17450709.540 7 -13597963.925 6 21448628.198 21448628.993 21448627.412
+ 42.300 37.100
+ -23644189.090 6 -18424042.038 8 20424454.246 20424452.141 20424453.200
+ 41.900 48.600
+ -19008858.167 7 -14812090.844 6 20870644.773 20870643.084 20870644.135
+ 47.400 40.100
+ -10927562.614 5 -8514972.131 5 22363670.082 22363671.461 22363668.943
+ 35.600 30.200
+ 06 1 1 16 52 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3769755.954 5 -2937468.998 5 22633457.228 22633458.402 22633456.069
+ 35.100 32.300
+ -2391435.582 4 -1863464.550 4 24176899.419 24176899.038 24176897.326
+ 28.100 24.600
+ -10037004.231 4 -7821056.070 4 23252711.270 23252713.589 23252710.244
+ 24.900 26.800
+ -16001710.963 7 -12468859.554 6 21675137.771 21675137.027 21675137.220
+ 44.800 41.500
+ -17369216.839 7 -13534463.178 6 21464136.172 21464136.627 21464135.115
+ 42.700 37.200
+ -23669663.013 6 -18443891.842 8 20419606.668 20419604.619 20419605.731
+ 41.900 48.600
+ -18973598.436 7 -14784615.731 6 20877354.453 20877352.796 20877353.808
+ 47.300 39.700
+ -11024411.587 5 -8590438.859 5 22345239.556 22345241.808 22345239.009
+ 35.600 31.000
+ 06 1 1 16 53 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3840715.148 6 -2992761.852 5 22619955.207 22619954.658 22619954.036
+ 36.900 31.000
+ -2297988.102 5 -1790648.434 3 24194682.629 24194680.992 24194680.783
+ 30.200 23.800
+ -9934132.114 4 -7740896.082 4 23272287.322 23272289.616 23272286.436
+ 26.500 26.800
+ -16067890.226 7 -12520427.747 6 21662543.771 21662543.514 21662543.341
+ 44.000 41.900
+ -17287254.169 7 -13470596.221 6 21479732.982 21479733.558 21479731.955
+ 42.600 36.500
+ -23694760.024 6 -18463447.947 8 20414830.910 20414828.861 20414829.949
+ 41.900 48.700
+ -18937808.535 7 -14756727.503 6 20884165.111 20884163.323 20884164.480
+ 47.500 39.900
+ -11120952.249 5 -8665665.332 5 22326868.137 22326870.677 22326867.845
+ 34.900 31.100
+ 06 1 1 16 53 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3911489.785 6 -3047910.883 5 22606486.812 22606487.753 22606485.675
+ 36.500 34.100
+ -2204505.099 4 -1717804.630 4 24212471.738 24212471.380 24212469.773
+ 27.900 25.300
+ -9831073.305 4 -7660590.590 4 23291898.582 23291901.284 23291897.972
+ 27.400 27.900
+ -16133798.171 7 -12571784.518 7 21650002.035 21650001.932 21650001.336
+ 43.600 42.400
+ -17204824.311 7 -13406365.216 6 21495418.985 21495419.628 21495417.975
+ 42.300 36.500
+ -23719478.898 6 -18482709.401 8 20410126.956 20410124.960 20410126.043
+ 41.800 48.700
+ -18901489.891 7 -14728427.258 6 20891076.428 20891074.641 20891075.743
+ 47.600 39.800
+ -11217182.283 5 -8740649.752 5 22308556.063 22308558.880 22308555.938
+ 35.400 32.100
+ 06 1 1 16 54 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -3982079.634 5 -3102915.882 5 22593053.632 22593055.226 22593052.506
+ 35.500 35.200
+ -2110987.638 4 -1644933.993 3 24230267.406 24230266.855 24230265.541
+ 28.400 23.000
+ -9727830.231 4 -7580141.519 4 23311545.376 23311547.280 23311544.333
+ 27.100 24.600
+ -16199434.405 7 -12622929.563 7 21637512.165 21637511.442 21637511.502
+ 44.500 42.000
+ -17121929.989 7 -13341772.293 6 21511193.327 21511193.994 21511192.270
+ 42.200 36.500
+ -23743818.461 6 -18501675.288 8 20405495.265 20405493.338 20405494.293
+ 41.700 48.800
+ -18864644.191 7 -14699716.327 6 20898087.806 20898086.133 20898087.158
+ 47.400 39.700
+ -11313099.252 5 -8815390.225 5 22290303.713 22290306.213 22290303.498
+ 35.800 31.100
+ 06 1 1 16 54 30.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -4052484.300 6 -3157776.605 5 22579656.241 22579656.526 22579655.206
+ 36.300 32.300
+ -2017436.674 4 -1572037.226 3 24248069.947 24248068.209 24248068.022
+ 28.400 21.600
+ -9624406.130 4 -7499551.365 3 23331226.760 23331228.521 23331225.636
+ 27.100 23.800
+ -16264798.338 7 -12673862.441 6 21625073.569 21625072.689 21625072.892
+ 44.100 41.800
+ -17038574.087 7 -13276819.694 6 21527055.455 21527056.065 21527054.472
+ 42.500 36.400
+ -23767777.120 6 -18520344.361 8 20400936.061 20400934.206 20400935.127
+ 41.800 48.900
+ -18827272.709 7 -14670595.691 6 20905199.225 20905197.659 20905198.565
+ 47.400 39.700
+ -11408700.663 6 -8889884.815 5 22272111.710 22272113.826 22272111.298
+ 36.400 31.300
+ 06 1 1 16 55 0.0000000 0 8G 7G19G27G17G 8G28G11G24
+ -4122703.380 5 -3212492.759 5 22566293.423 22566293.961 22566292.546
+ 35.600 32.300
+ -1923853.037 4 -1499115.012 3 24265877.711 24265876.421 24265875.989
+ 29.900 20.500
+ -9520803.799 4 -7418822.358 3 23350941.381 23350943.470 23350940.766
+ 28.100 23.400
+ -16329889.427 7 -12724582.716 7 21612686.906 21612686.545 21612686.308
+ 43.900 42.100
+ -16954759.046 7 -13211509.325 6 21543004.763 21543005.588 21543003.868
+ 42.200 36.500
+ -23791353.730 6 -18538715.737 8 20396449.696 20396447.748 20396448.732
+ 41.800 48.800
+ -18789376.969 7 -14641066.541 6 20912410.698 20912409.033 20912410.062
+ 47.500 39.700
+ -11503984.115 5 -8964131.608 5 22253979.272 22253981.781 22253979.212
+ 35.800 31.000
+ 06 1 1 16 55 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4192736.655 5 -3267064.085 5 22552966.678 22552968.185 22552965.544
+ 35.400 34.700
+ -1830237.869 4 -1426168.218 3 24283692.214 24283691.770 24283690.286
+ 29.200 19.300
+ -9417025.659 4 -7337956.367 3 23370688.887 23370691.825 23370688.598
+ 26.500 23.400
+ -195904.573 3 -152653.223 2 24652708.360 24652710.860 24652707.669
+ 23.400 13.900
+ -16394707.380 7 -12775090.169 7 21600352.414 21600352.159 21600351.837
+ 43.900 42.000
+ -16870487.878 7 -13145843.529 6 21559041.348 21559041.974 21559040.329
+ 42.000 36.400
+ -23814546.806 6 -18556788.257 8 20392036.137 20392034.249 20392035.210
+ 41.700 49.000
+ -18750958.862 7 -14611130.361 6 20919721.303 20919719.745 20919720.672
+ 47.300 39.600
+ -11598946.973 6 -9038128.589 5 22235908.536 22235911.073 22235908.476
+ 36.400 31.500
+ 06 1 1 16 56 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4262583.836 6 -3321490.404 5 22539675.783 22539676.690 22539674.626
+ 36.400 33.800
+ -1736592.267 4 -1353197.686 2 24301512.376 24301511.990 24301510.541
+ 29.000 17.000
+ -9313074.590 4 -7256955.597 3 23390470.610 23390473.257 23390470.048
+ 26.500 23.400
+ -287590.265 3 -224096.520 2 24635261.300 24635263.873 24635260.152
+ 23.800 12.600
+ -16459251.807 7 -12825384.498 6 21588070.002 21588069.297 21588069.542
+ 44.000 41.600
+ -16785763.410 7 -13079824.513 6 21575163.908 21575164.736 21575162.933
+ 42.000 36.600
+ -23837354.890 6 -18574560.782 8 20387695.886 20387693.929 20387694.936
+ 41.600 48.800
+ -18712019.884 7 -14580788.305 6 20927131.231 20927129.610 20927130.592
+ 47.400 39.600
+ -11693586.921 6 -9111873.954 5 22217899.091 22217901.702 22217899.038
+ 36.500 32.000
+ 06 1 1 16 56 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4332244.423 6 -3375771.351 5 22526419.663 22526419.424 22526418.441
+ 36.600 32.100
+ -1642917.183 5 -1280204.202 3 24319338.690 24319337.956 24319336.815
+ 30.200 21.600
+ -9208953.630 4 -7175822.462 3 23410285.449 23410286.652 23410284.207
+ 27.400 20.500
+ -379178.999 3 -295464.289 1 24617831.189 24617834.735 24617830.758
+ 20.500 9.000
+ -16523522.022 7 -12875465.161 7 21575839.816 21575839.297 21575839.268
+ 44.300 42.000
+ -16700588.535 6 -13013454.531 6 21591372.236 21591372.887 21591371.239
+ 41.800 36.100
+ -23859776.514 6 -18592032.177 8 20383429.247 20383427.202 20383428.283
+ 41.400 48.900
+ -18672561.602 7 -14550041.595 6 20934640.006 20934638.282 20934639.228
+ 47.200 39.800
+ -11787901.663 6 -9185365.891 5 22199951.922 22199954.160 22199951.727
+ 37.000 32.100
+ 06 1 1 16 57 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4401718.090 6 -3429906.639 5 22513198.965 22513199.036 22513197.792
+ 36.300 32.100
+ -1549213.091 5 -1207188.074 3 24337170.586 24337169.361 24337168.612
+ 31.300 22.100
+ -9104665.269 4 -7094558.891 3 23430130.263 23430132.069 23430129.339
+ 27.100 22.600
+ -470668.199 3 -366754.430 2 24600423.273 24600425.243 24600421.663
+ 18.600 13.900
+ -16587517.523 7 -12925331.772 7 21563662.128 21563661.539 21563661.479
+ 44.700 42.500
+ -16614965.910 6 -12946735.647 5 21607665.720 21607666.180 21607664.726
+ 41.600 35.800
+ -23881810.604 6 -18609201.592 8 20379236.278 20379234.235 20379235.316
+ 41.700 48.800
+ -18632585.736 7 -14518891.580 6 20942247.124 20942245.436 20942246.409
+ 47.300 39.700
+ -11881888.712 6 -9258602.480 5 22182066.429 22182068.933 22182066.285
+ 36.500 31.800
+ 06 1 1 16 57 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4471004.590 6 -3483896.055 5 22500014.473 22500015.231 22500013.351
+ 37.500 34.400
+ -1455481.513 5 -1134150.569 3 24355007.257 24355005.958 24355005.095
+ 31.300 20.500
+ -9000212.304 4 -7013167.056 4 23450006.505 23450009.482 23450005.789
+ 26.200 25.600
+ -562054.698 3 -437964.508 2 24583032.071 24583035.052 24583030.727
+ 19.900 16.100
+ -16651237.806 7 -12974983.938 7 21551536.590 21551535.780 21551535.895
+ 44.800 42.400
+ -16528898.561 6 -12879670.220 5 21624043.639 21624044.259 21624042.711
+ 41.700 35.500
+ -23903455.678 6 -18626067.880 8 20375117.233 20375115.367 20375116.324
+ 41.300 49.000
+ -18592093.865 7 -14487339.488 6 20949952.418 20949950.835 20949951.712
+ 47.400 39.600
+ -11975545.601 6 -9331581.798 5 22164244.152 22164246.401 22164243.918
+ 36.700 31.600
+ 06 1 1 16 58 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4540103.677 6 -3537739.442 5 22486865.170 22486865.948 22486864.009
+ 37.200 34.000
+ -1361723.284 4 -1061092.249 3 24372847.710 24372847.606 24372845.845
+ 27.400 20.500
+ -8895597.818 4 -6931649.361 4 23469914.330 23469916.863 23469913.684
+ 25.900 24.900
+ -653335.239 3 -509092.045 2 24565661.076 24565664.590 24565660.499
+ 22.100 15.100
+ -16714682.400 7 -13024421.285 7 21539463.408 21539462.602 21539462.872
+ 45.100 42.500
+ -16442389.192 6 -12812260.363 5 21640506.067 21640506.507 21640505.049
+ 41.300 35.300
+ -23924710.205 6 -18642629.844 8 20371072.746 20371070.738 20371071.816
+ 41.700 48.900
+ -18551087.515 7 -14455386.494 6 20957755.903 20957754.107 20957755.153
+ 47.400 39.500
+ -12068869.983 6 -9404302.017 5 22146485.652 22146487.461 22146485.069
+ 37.800 32.700
+ 06 1 1 16 58 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4609014.894 6 -3591436.412 5 22473751.273 22473751.781 22473750.121
+ 36.500 33.800
+ -1267939.302 4 -988013.879 2 24390693.462 24390693.899 24390692.222
+ 26.500 17.800
+ -8790824.713 4 -6850008.096 3 23489852.812 23489854.443 23489851.690
+ 25.900 23.800
+ -744506.753 3 -580134.636 1 24548313.108 24548314.915 24548311.435
+ 23.000 6.500
+ -16777850.915 7 -13073643.504 7 21527442.956 21527442.224 21527442.344
+ 45.300 42.700
+ -16355440.657 6 -12744508.301 5 21657051.762 21657052.344 21657050.705
+ 40.900 35.200
+ -23945572.847 6 -18658886.446 8 20367102.590 20367100.770 20367101.633
+ 41.400 48.900
+ -18509568.709 7 -14423034.191 6 20965656.461 20965654.922 20965655.828
+ 47.300 39.700
+ -12161859.564 6 -9476761.363 5 22128790.635 22128791.937 22128789.745
+ 37.400 32.300
+ 06 1 1 16 59 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4677737.976 6 -3644986.799 5 22460674.279 22460674.335 22460673.105
+ 37.900 33.000
+ -1174130.678 4 -914916.286 3 24408545.552 24408545.702 24408543.988
+ 29.000 22.600
+ -8685895.574 4 -6768245.224 3 23509820.036 23509821.819 23509818.735
+ 26.200 23.400
+ -835566.010 3 -651089.801 2 24530983.950 24530986.824 24530983.013
+ 19.300 15.100
+ -16840742.807 7 -13122650.173 7 21515474.752 21515474.153 21515474.187
+ 44.800 42.500
+ -16268055.729 6 -12676416.188 5 21673680.661 21673681.272 21673679.579
+ 40.900 35.700
+ -23966042.794 6 -18674837.049 8 20363207.291 20363205.402 20363206.376
+ 41.500 49.000
+ -18467539.245 7 -14390283.970 6 20973654.399 20973652.869 20973653.696
+ 47.100 39.500
+ -12254511.855 6 -9548957.888 5 22111159.217 22111160.907 22111158.401
+ 37.000 32.600
+ 06 1 1 16 59 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4746272.625 6 -3698390.354 5 22447632.320 22447633.196 22447631.188
+ 37.600 34.600
+ -1080298.247 4 -841800.184 4 24426402.245 24426401.546 24426400.549
+ 28.400 25.300
+ -8580813.172 4 -6686362.924 3 23529815.238 23529818.374 23529814.964
+ 25.900 22.100
+ -926510.143 3 -721955.168 2 24513678.237 24513680.264 24513677.413
+ 21.100 13.900
+ -16903357.701 7 -13171440.994 7 21503559.611 21503558.853 21503558.931
+ 44.900 42.200
+ -16180237.275 6 -12607986.262 5 21690391.751 21690392.490 21690390.741
+ 40.700 34.900
+ -23986118.660 6 -18690480.580 8 20359387.367 20359385.009 20359386.416
+ 41.800 48.900
+ -18425000.271 7 -14357136.730 6 20981749.212 20981747.797 20981748.529
+ 47.000 39.500
+ -12346824.745 6 -9620889.945 5 22093593.321 22093594.337 22093591.998
+ 37.200 32.700
+ 06 1 1 17 0 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4814618.484 6 -3751646.772 5 22434626.184 22434627.166 22434625.086
+ 37.500 34.600
+ -986442.728 4 -768666.121 3 24444261.292 24444260.848 24444259.354
+ 28.100 23.400
+ -8475580.209 4 -6604363.321 3 23549841.723 23549844.004 23549840.398
+ 25.300 22.600
+ -1017336.020 3 -792728.495 1 24496394.811 24496395.581 24496393.636
+ 22.100 6.500
+ -16965694.923 7 -13220015.445 7 21491697.251 21491696.652 21491696.525
+ 45.000 42.700
+ -16091988.519 6 -12539221.037 5 21707184.790 21707185.743 21707183.946
+ 40.500 35.600
+ -24005798.785 6 -18705815.743 8 20355642.245 20355640.060 20355641.286
+ 41.800 48.900
+ -18381953.689 7 -14323593.948 6 20989940.732 20989939.321 20989940.041
+ 47.300 39.300
+ -12438795.628 6 -9692555.515 5 22076092.333 22076092.707 22076090.656
+ 37.300 32.600
+ 06 1 1 17 0 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4882775.266 6 -3804755.880 5 22421656.633 22421656.678 22421655.419
+ 37.000 33.400
+ -892565.189 4 -695514.843 3 24462126.364 24462125.137 24462124.558
+ 28.400 19.900
+ -8370199.760 4 -6522248.794 3 23569895.196 23569897.042 23569894.098
+ 26.200 22.100
+ -1108040.285 4 -863407.040 2 24479134.760 24479135.994 24479133.640
+ 25.300 12.600
+ -17027754.110 7 -13268373.246 7 21479887.664 21479887.151 21479887.169
+ 45.300 43.000
+ -16003312.252 6 -12470122.691 5 21724059.419 21724060.114 21724058.565
+ 40.600 34.600
+ -24025081.959 6 -18720841.589 8 20351972.605 20351970.660 20351971.722
+ 41.600 49.000
+ -18338401.574 7 -14289657.244 6 20998228.287 20998227.090 20998227.689
+ 47.000 39.300
+ -12530421.897 6 -9763952.566 5 22058656.712 22058656.810 22058654.975
+ 37.600 33.200
+ 06 1 1 17 1 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -4950742.655 6 -3857717.428 5 22408722.621 22408723.186 22408721.550
+ 38.100 34.700
+ -798666.479 4 -622347.069 3 24479994.095 24479993.478 24479992.493
+ 25.600 21.100
+ -8264674.490 3 -6440021.361 3 23589974.453 23589977.791 23589974.183
+ 21.600 23.000
+ -1198619.710 4 -933988.309 1 24461897.995 24461898.867 24461896.843
+ 26.800 9.000
+ -17089534.748 7 -13316513.983 7 21468131.515 21468130.762 21468130.818
+ 45.400 43.100
+ -15914211.019 6 -12400693.186 5 21741015.349 21741015.568 21741014.363
+ 41.100 34.600
+ -24043966.750 6 -18735557.004 8 20348379.096 20348376.992 20348378.124
+ 41.500 48.900
+ -18294345.341 7 -14255327.717 6 21006612.076 21006610.499 21006611.393
+ 47.300 39.300
+ -12621701.562 6 -9835079.525 5 22041286.370 22041287.014 22041284.730
+ 37.200 33.800
+ 06 1 1 17 1 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5018520.439 6 -3910531.202 5 22395824.798 22395825.780 22395823.576
+ 37.100 35.400
+ -704747.787 4 -549163.743 3 24497865.437 24497865.735 24497863.667
+ 26.800 18.600
+ -8159007.174 4 -6357683.327 3 23610085.486 23610085.921 23610083.729
+ 28.100 21.600
+ -1289071.029 3 -1004469.815 1 24444685.244 24444686.663 24444684.094
+ 23.000 11.000
+ -17151036.475 7 -13364437.382 7 21456428.048 21456427.171 21456427.378
+ 45.400 42.800
+ -15824688.379 6 -12330935.321 5 21758051.004 21758051.352 21758049.869
+ 41.000 34.700
+ -24062451.501 6 -18749960.704 8 20344861.557 20344859.347 20344860.575
+ 41.400 48.900
+ -18249786.911 7 -14220606.870 6 21015091.458 21015089.742 21015090.794
+ 47.600 39.200
+ -12712632.109 6 -9905934.465 5 22023982.142 22023983.012 22023980.902
+ 37.100 32.400
+ 06 1 1 17 2 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5086108.199 6 -3963196.937 5 22382963.556 22382963.668 22382962.234
+ 37.600 34.100
+ -610809.894 4 -475965.431 3 24515741.465 24515742.488 24515739.719
+ 25.300 21.100
+ -8053200.766 3 -6275236.909 3 23630218.187 23630220.154 23630217.088
+ 23.000 22.600
+ -1379391.689 3 -1074849.405 2 24427496.999 24427499.873 24427495.819
+ 23.800 13.900
+ -17212258.838 7 -13412143.089 7 21444777.601 21444776.809 21444777.072
+ 45.500 42.800
+ -15734746.631 6 -12260850.871 5 21775166.041 21775166.759 21775165.091
+ 40.200 34.700
+ -24080535.752 6 -18764052.323 8 20341420.161 20341418.071 20341419.217
+ 41.300 49.000
+ -18204727.846 7 -14185495.916 6 21023665.840 21023664.149 21023665.204
+ 47.600 39.100
+ -12803211.373 6 -9976515.665 5 22006744.974 22006746.433 22006744.132
+ 38.100 33.600
+ 06 1 1 17 2 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5153505.707 6 -4015714.438 5 22370137.657 22370138.254 22370136.573
+ 36.800 34.500
+ -516853.510 4 -402752.790 3 24533621.970 24533622.028 24533619.862
+ 27.600 19.900
+ -7947258.106 4 -6192684.286 3 23650378.301 23650380.471 23650377.283
+ 25.300 19.300
+ -1469577.942 4 -1145124.325 2 24410336.029 24410338.075 24410334.955
+ 25.600 13.900
+ -17273201.510 7 -13459630.849 7 21433180.720 21433179.987 21433180.132
+ 45.300 43.300
+ -15644389.181 6 -12190442.510 5 21792360.628 21792361.302 21792359.588
+ 40.500 34.900
+ -24098218.045 6 -18777830.728 8 20338055.323 20338053.260 20338054.309
+ 41.400 49.000
+ -18159170.155 7 -14149996.421 6 21032335.370 21032333.429 21032334.699
+ 47.600 38.600
+ -12893436.929 6 -10046821.238 5 21989575.035 21989576.946 21989574.467
+ 38.000 33.500
+ 06 1 1 17 3 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5220712.571 6 -4068083.375 5 22357348.672 22357349.469 22357347.560
+ 37.100 34.500
+ -422879.510 4 -329526.378 3 24551504.894 24551504.149 24551503.099
+ 29.000 21.100
+ -7841181.799 4 -6110027.527 4 23670565.423 23670567.009 23670563.724
+ 25.900 24.200
+ -1559626.882 3 -1215292.329 9 24393198.962 24393200.785 24393198.217
+ 23.400 -3.000
+ -17333863.674 7 -13506900.026 7 21421636.859 21421636.222 21421636.222
+ 45.200 43.200
+ -15553618.833 6 -12119712.409 5 21809633.876 21809634.484 21809632.743
+ 40.100 34.500
+ -24115496.983 6 -18791294.833 8 20334767.239 20334765.135 20334766.270
+ 41.400 49.000
+ -18113115.595 7 -14114109.757 6 21041099.146 21041097.377 21041098.420
+ 47.400 38.600
+ -12983306.579 6 -10116849.488 5 21972473.150 21972475.306 21972472.838
+ 38.200 33.600
+ 06 1 1 17 3 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5287728.543 6 -4120303.576 5 22344596.154 22344596.595 22344595.061
+ 38.000 34.600
+ -328888.752 4 -256286.918 3 24569391.341 24569390.081 24569389.325
+ 28.100 19.900
+ -7734974.708 4 -6027268.880 3 23690774.609 23690776.714 23690773.448
+ 24.200 19.900
+ -1649535.442 4 -1285350.856 1 24376090.600 24376092.532 24376089.403
+ 25.600 9.000
+ -17394245.038 7 -13553950.398 7 21410146.794 21410145.986 21410146.231
+ 45.300 43.300
+ -15462438.085 6 -12048662.511 5 21826984.762 21826985.709 21826983.715
+ 39.700 34.900
+ -24132370.979 6 -18804443.399 8 20331556.108 20331554.206 20331555.269
+ 41.200 49.100
+ -18066566.107 7 -14077837.435 6 21049957.291 21049955.484 21049956.561
+ 47.500 38.700
+ -13072818.126 6 -10186598.673 5 21955440.722 21955441.995 21955439.611
+ 38.200 33.500
+ 06 1 1 17 4 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5354553.251 6 -4172374.763 5 22331879.735 22331880.016 22331878.698
+ 38.400 34.500
+ -234882.312 4 -183035.250 2 24587278.653 24587278.173 24587276.957
+ 27.400 17.000
+ -7628639.598 4 -5944410.436 3 23711009.253 23711012.179 23711008.600
+ 25.600 21.600
+ -1739300.398 4 -1355297.516 2 24359008.359 24359010.609 24359007.340
+ 24.200 13.900
+ -17454345.305 7 -13600781.727 7 21398710.041 21398709.461 21398709.269
+ 44.900 43.700
+ -15370850.413 6 -11977295.532 5 21844413.135 21844414.157 21844412.194
+ 39.600 34.400
+ -24148839.054 6 -18817275.663 8 20328422.598 20328420.419 20328421.664
+ 41.400 49.000
+ -18019523.219 7 -14041180.648 6 21058909.347 21058907.454 21058908.556
+ 47.400 38.900
+ -13161969.051 6 -10256066.870 5 21938476.172 21938477.031 21938474.837
+ 38.600 33.900
+ 06 1 1 17 4 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5421186.509 6 -4224296.776 5 22319199.985 22319200.374 22319198.732
+ 37.600 34.800
+ -140861.180 4 -109772.118 3 24605171.506 24605170.295 24605169.591
+ 28.400 19.900
+ -7522179.476 4 -5861454.670 3 23731268.336 23731271.192 23731267.269
+ 24.200 21.100
+ -1828918.575 4 -1425129.804 2 24341955.556 24341956.563 24341953.966
+ 24.600 12.600
+ -17514164.042 7 -13647393.687 7 21387326.948 21387326.194 21387326.318
+ 45.500 43.700
+ -15278858.820 6 -11905613.813 5 21861918.378 21861919.525 21861917.581
+ 39.700 34.300
+ -24164899.994 6 -18829790.678 8 20325366.188 20325364.061 20325365.281
+ 41.500 49.100
+ -17971988.915 7 -14004140.933 6 21067954.921 21067953.036 21067954.128
+ 47.400 38.800
+ -13250757.136 6 -10325252.315 5 21921580.210 21921580.824 21921578.998
+ 38.800 33.100
+ 06 1 1 17 5 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5487627.883 6 -4276069.252 5 22306556.604 22306557.363 22306555.424
+ 38.300 35.800
+ -46826.044 4 -36498.065 2 24623065.597 24623064.559 24623064.186
+ 28.600 16.100
+ -7415596.736 4 -5778403.238 3 23751550.269 23751552.990 23751549.555
+ 25.600 19.900
+ -1918386.715 3 -1494845.188 3 24324930.906 24324931.883 24324928.904
+ 23.400 18.600
+ -17573700.612 7 -13693785.787 7 21375997.283 21375996.528 21375996.779
+ 45.500 43.400
+ -15186466.033 6 -11833619.459 5 21879500.126 21879501.312 21879499.331
+ 38.900 33.500
+ -24180552.428 6 -18841987.377 8 20322387.709 20322385.490 20322386.747
+ 41.500 49.000
+ -17923965.049 7 -13966719.750 6 21077093.163 21077091.759 21077092.510
+ 47.300 39.000
+ -13339179.981 6 -10394153.153 5 21904752.729 21904754.566 21904752.265
+ 38.900 33.800
+ 06 1 1 17 5 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5553877.138 6 -4327692.045 5 22293949.696 22293950.039 22293948.598
+ 38.100 34.600
+ 47222.374 4 36786.324 3 24640962.650 24640961.741 24640960.764
+ 24.600 20.500
+ -7308894.559 3 -5695258.813 3 23771856.070 23771858.211 23771854.371
+ 20.500 23.000
+ -2007701.702 3 -1564441.205 2 24307933.454 24307935.982 24307932.618
+ 23.800 16.100
+ -17632954.634 7 -13739957.719 7 21364721.602 21364720.893 21364721.077
+ 45.600 43.400
+ -15093675.455 6 -11761315.148 5 21897158.541 21897158.695 21897157.070
+ 38.900 33.200
+ -24195795.095 6 -18853864.776 8 20319487.097 20319484.958 20319486.197
+ 41.600 49.100
+ -17875453.427 7 -13928918.490 6 21086324.507 21086323.266 21086323.882
+ 47.000 38.800
+ -13427235.383 6 -10462767.663 5 21887996.133 21887998.115 21887995.795
+ 39.300 33.800
+ 06 1 1 17 6 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5619933.999 6 -4379164.933 5 22281379.447 22281379.732 22281378.241
+ 38.100 34.700
+ 141283.200 4 110080.384 3 24658861.560 24658862.375 24658859.598
+ 26.500 20.500
+ -7202075.551 3 -5612023.393 3 23792180.950 23792185.206 23792181.209
+ 23.800 19.300
+ -2096860.424 3 -1633915.489 3 24290967.140 24290969.708 24290965.802
+ 21.100 18.600
+ -17691925.746 7 -13785909.208 7 21353499.886 21353499.097 21353499.289
+ 45.900 43.600
+ -15000489.624 6 -11688702.855 5 21914890.756 21914891.578 21914889.811
+ 39.300 34.500
+ -24210626.915 6 -18865422.034 8 20316664.611 20316662.510 20316663.728
+ 41.800 49.000
+ -17826456.143 7 -13890738.797 6 21095648.564 21095647.025 21095647.850
+ 47.000 38.800
+ -13514921.256 6 -10531094.217 5 21871310.308 21871312.127 21871309.732
+ 39.000 34.500
+ 06 1 1 17 6 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5685798.137 6 -4430487.623 5 22268846.007 22268846.715 22268844.826
+ 38.200 35.900
+ 235355.456 3 183383.389 2 24676762.902 24676762.326 24676760.835
+ 23.400 17.000
+ -7095142.980 4 -5528699.388 3 23812530.522 23812533.976 23812529.928
+ 24.200 21.100
+ -2185859.811 3 -1703265.570 3 24274031.122 24274033.515 24274029.549
+ 22.100 18.600
+ -17750613.562 7 -13831639.955 7 21342332.014 21342331.183 21342331.441
+ 46.100 43.800
+ -14906911.152 6 -11615784.602 5 21932697.858 21932698.910 21932697.225
+ 39.600 33.600
+ -24225046.384 6 -18876657.980 8 20313920.845 20313918.533 20313919.843
+ 41.800 48.900
+ -17776975.003 7 -13852182.068 6 21105064.496 21105063.021 21105063.775
+ 47.000 38.600
+ -13602235.400 6 -10599131.104 5 21854695.302 21854696.577 21854694.376
+ 39.300 34.000
+ 06 1 1 17 7 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5751469.176 6 -4481659.852 6 22256349.262 22256350.070 22256348.127
+ 38.600 36.700
+ 329438.179 4 256694.482 3 24694667.386 24694666.313 24694665.322
+ 25.900 20.500
+ -6988099.492 4 -5445289.023 3 23832901.029 23832904.156 23832900.088
+ 24.600 22.100
+ -2274696.512 4 -1772488.916 2 24257125.812 24257128.078 24257124.863
+ 24.600 12.600
+ -17809017.516 7 -13877149.517 7 21331218.233 21331217.242 21331217.490
+ 45.900 43.700
+ -14812944.371 6 -11542563.773 5 21950579.874 21950580.406 21950578.671
+ 38.900 33.600
+ -24239052.375 6 -18887571.733 8 20311255.427 20311253.279 20311254.540
+ 41.300 49.000
+ -17727011.862 7 -13813249.759 6 21114571.985 21114570.695 21114571.399
+ 46.800 38.800
+ -13689175.459 6 -10666876.506 5 21838151.930 21838152.157 21838150.594
+ 39.600 33.800
+ 06 1 1 17 7 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5816946.935 6 -4532681.456 6 22243889.235 22243889.711 22243888.038
+ 38.900 36.100
+ 423530.802 4 330013.350 2 24712571.416 24712571.127 24712569.658
+ 24.200 12.600
+ -6880947.430 2 -5361794.019 2 23853289.440 23853293.955 23853289.323
+ 17.800 17.000
+ -2363367.331 4 -1841583.043 2 24240253.318 24240254.204 24240251.477
+ 25.600 15.100
+ -17867137.413 7 -13922437.737 7 21320157.837 21320157.330 21320157.466
+ 46.000 43.800
+ -14718592.055 6 -11469042.531 5 21968534.401 21968534.941 21968533.228
+ 39.100 32.800
+ -24252643.775 6 -18898162.430 8 20308669.085 20308666.834 20308668.129
+ 41.300 48.900
+ -17676568.359 7 -13773943.141 6 21124171.048 21124169.696 21124170.498
+ 47.100 38.400
+ -13775739.217 6 -10734328.699 5 21821678.617 21821679.637 21821677.748
+ 40.200 34.300
+ 06 1 1 17 8 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5882231.047 6 -4583552.174 5 22231465.994 22231466.500 22231464.729
+ 38.200 35.800
+ 517632.504 3 403339.296 1 24730478.137 24730478.032 24730476.308
+ 23.400 11.000
+ -6773689.693 4 -5278216.722 3 23873701.905 23873705.098 23873701.128
+ 24.600 22.600
+ -2451869.075 4 -1910545.398 2 24223410.703 24223413.450 24223409.820
+ 25.900 16.100
+ -17924972.655 7 -13967504.146 7 21309152.612 21309151.670 21309152.021
+ 46.200 43.800
+ -14623856.950 6 -11395223.013 5 21986561.367 21986562.424 21986560.571
+ 38.700 32.800
+ -24265819.361 6 -18908429.115 8 20306161.754 20306159.566 20306160.840
+ 41.100 48.800
+ -17625646.868 7 -13734264.061 6 21133861.249 21133859.797 21133860.595
+ 47.100 38.500
+ -13861924.513 6 -10801485.985 5 21805276.537 21805279.063 21805276.798
+ 39.500 34.700
+ 06 1 1 17 8 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -5947321.233 6 -4634271.773 6 22219079.805 22219080.347 22219078.619
+ 38.700 36.000
+ 611742.413 4 476671.621 2 24748387.154 24748387.039 24748385.147
+ 24.600 15.100
+ -6666329.148 4 -5194559.274 3 23894133.158 23894134.708 23894131.939
+ 26.200 19.900
+ -2540198.743 4 -1979373.679 2 24206602.366 24206604.526 24206601.761
+ 27.900 15.100
+ -17982522.859 7 -14012348.453 7 21298201.112 21298200.300 21298200.432
+ 46.000 43.800
+ -14528741.860 6 -11321107.395 5 22004661.078 22004662.352 22004660.202
+ 38.400 33.000
+ -24278577.831 6 -18918370.772 8 20303733.962 20303731.755 20303732.967
+ 41.300 48.900
+ -17574249.000 7 -13694213.777 6 21143641.941 21143640.357 21143641.241
+ 47.000 38.100
+ -13947729.234 6 -10868346.719 5 21788949.757 21788950.929 21788948.904
+ 39.700 34.400
+ 06 1 1 17 9 0.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -6012217.118 6 -4684839.947 6 22206730.399 22206731.052 22206729.183
+ 38.600 36.000
+ 705859.558 4 550009.619 3 24766297.344 24766297.367 24766295.400
+ 24.900 19.300
+ -6558868.589 3 -5110823.876 3 23914580.980 23914584.016 23914579.964
+ 23.000 18.600
+ -2628353.216 4 -2048065.428 2 24189827.522 24189829.435 24189826.397
+ 26.200 13.900
+ -18039787.634 7 -14056970.357 7 21287303.878 21287303.011 21287303.241
+ 45.700 44.000
+ -14433249.985 6 -11246698.177 5 22022833.117 22022833.816 22022832.031
+ 38.600 32.600
+ -24290917.921 6 -18927986.421 8 20301385.746 20301383.572 20301384.792
+ 41.300 48.900
+ -17522376.958 7 -13653794.014 6 21153513.055 21153511.361 21153512.323
+ 47.100 38.400
+ -14033151.021 6 -10934909.087 5 21772695.570 21772695.587 21772694.156
+ 40.000 34.700
+ 06 1 1 17 9 30.0000000 0 9G 7G19G27G20G17G 8G28G11G24
+ -6076918.503 6 -4735256.558 6 22194418.014 22194418.591 22194416.917
+ 38.600 36.100
+ 799983.127 4 623352.572 2 24784208.464 24784207.643 24784206.603
+ 26.200 17.800
+ -6451311.203 3 -5027013.040 3 23935048.729 23935051.764 23935047.822
+ 21.600 19.900
+ -2716329.129 4 -2116618.026 2 24173085.306 24173087.991 24173084.761
+ 24.900 16.100
+ -18096766.360 7 -14101369.363 7 21276461.160 21276460.469 21276460.541
+ 45.700 44.100
+ -14337384.519 6 -11171997.864 5 22041076.122 22041076.699 22041074.908
+ 38.400 33.400
+ -24302838.654 6 -18937275.300 8 20299117.293 20299115.092 20299116.378
+ 41.300 48.900
+ -17470032.542 7 -13613006.165 6 21163473.757 21163472.166 21163473.072
+ 47.100 38.100
+ -14118187.822 6 -11001171.489 5 21756512.249 21756513.511 21756511.708
+ 40.600 34.600
+ 06 1 1 17 10 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6141425.010 6 -4785521.322 5 22182143.005 22182143.242 22182141.931
+ 39.700 35.600
+ -6343659.227 3 -4943128.555 3 23955535.234 23955537.420 23955533.898
+ 23.800 18.600
+ -2804123.392 3 -2185029.095 2 24156379.751 24156380.784 24156377.975
+ 23.800 13.900
+ -18153458.965 7 -14145545.403 7 21265673.020 21265672.091 21265672.284
+ 45.600 44.100
+ -14241148.631 6 -11097008.906 5 22059388.511 22059389.828 22059387.745
+ 38.700 33.200
+ -24314338.890 6 -18946236.517 8 20296928.887 20296926.694 20296927.989
+ 41.200 48.900
+ -17417217.853 7 -13571851.868 6 21173524.079 21173522.412 21173523.417
+ 47.000 38.000
+ -14202837.392 6 -11067132.124 5 21740403.343 21740405.246 21740403.032
+ 40.000 35.100
+ 06 1 1 17 10 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6205736.492 6 -4835634.117 6 22169905.023 22169905.513 22169903.762
+ 39.100 36.900
+ -6235915.826 3 -4859172.776 2 23976037.578 23976039.881 23976036.587
+ 19.300 17.800
+ -2891732.669 4 -2253296.012 1 24139707.607 24139708.758 24139706.918
+ 24.900 9.000
+ -18209864.825 7 -14189498.010 7 21254939.355 21254938.515 21254938.779
+ 46.100 44.200
+ -14144544.976 6 -11021733.363 5 22077772.300 22077772.889 22077770.941
+ 37.700 33.400
+ -24325417.251 6 -18954869.001 8 20294820.870 20294818.521 20294819.843
+ 41.400 48.900
+ -17363934.671 7 -13530332.515 6 21183663.526 21183662.064 21183662.805
+ 46.800 38.100
+ -14287097.723 6 -11132789.474 5 21724370.190 21724371.020 21724369.139
+ 39.700 35.700
+ 06 1 1 17 11 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6269852.604 6 -4885594.676 6 22157703.799 22157704.524 22157702.525
+ 38.600 36.500
+ -6128083.746 3 -4775147.884 3 23996557.383 23996560.562 23996555.999
+ 21.600 19.900
+ -2979153.898 4 -2321416.378 1 24123072.179 24123072.772 24123071.078
+ 26.800 9.000
+ -18265983.347 7 -14233226.714 7 21244260.162 21244259.537 21244259.472
+ 45.700 44.400
+ -14047576.714 6 -10946173.739 5 22096224.385 22096225.431 22096223.404
+ 37.300 33.200
+ -24336072.390 6 -18963171.704 8 20292793.062 20292790.904 20292792.103
+ 41.200 48.900
+ -17310185.019 7 -13488449.681 6 21193891.874 21193890.083 21193891.119
+ 46.900 37.700
+ -14370966.585 6 -11198141.793 5 21708410.963 21708411.179 21708409.616
+ 40.300 35.200
+ 06 1 1 17 11 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6333773.040 6 -4935402.753 6 22145540.228 22145540.584 22145539.039
+ 39.200 36.200
+ -6020165.818 3 -4691056.214 3 24017094.029 24017096.521 24017092.649
+ 22.100 21.600
+ -3066383.777 4 -2389387.652 2 24106473.027 24106474.331 24106471.419
+ 26.800 15.100
+ -18321814.476 7 -14276731.471 7 21233635.904 21233635.136 21233635.246
+ 45.700 44.400
+ -13950247.081 6 -10870332.508 5 22114744.725 22114746.540 22114744.263
+ 37.200 32.700
+ -24346303.302 6 -18971143.838 8 20290846.237 20290844.046 20290845.309
+ 41.200 48.900
+ -17255971.126 7 -13446205.098 6 21204208.213 21204206.776 21204207.656
+ 46.900 38.000
+ -14454441.702 6 -11263187.306 5 21692525.239 21692526.511 21692524.465
+ 40.500 35.200
+ 06 1 1 17 12 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6397497.583 6 -4985058.204 6 22133413.560 22133414.007 22133412.444
+ 39.100 36.100
+ -5912164.844 3 -4606899.723 3 24037645.857 24037648.871 24037644.318
+ 23.800 19.300
+ -3153419.341 4 -2457207.505 2 24089909.698 24089911.644 24089909.018
+ 25.600 12.600
+ -18377358.126 7 -14320012.213 7 21223066.081 21223065.548 21223065.477
+ 45.700 44.400
+ -13852559.104 6 -10794212.070 5 22133335.750 22133335.975 22133334.143
+ 36.900 32.100
+ -24356108.963 6 -18978784.613 8 20288980.313 20288978.079 20288979.374
+ 41.400 48.900
+ -17201294.796 7 -13403600.179 6 21214612.911 21214611.247 21214612.170
+ 46.900 37.900
+ -14537520.964 6 -11327924.356 5 21676715.715 21676717.018 21676715.018
+ 41.100 35.400
+ 06 1 1 17 12 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6461025.897 6 -5034560.749 6 22121324.698 22121325.163 22121323.549
+ 39.500 36.800
+ -5804083.373 3 -4522680.533 2 24058212.433 24058215.338 24058211.838
+ 23.400 15.100
+ -3240257.425 4 -2524873.418 2 24073385.516 24073387.257 24073384.190
+ 24.600 17.800
+ -18432612.820 7 -14363067.788 7 21212551.642 21212550.894 21212550.988
+ 45.900 44.500
+ -13754515.876 6 -10717814.799 5 22151991.453 22151993.115 22151990.874
+ 37.400 32.300
+ -24365488.209 6 -18986093.112 8 20287195.610 20287193.274 20287194.625
+ 41.300 48.900
+ -17146157.923 7 -13360636.395 6 21225105.172 21225103.466 21225104.507
+ 47.000 38.100
+ -14620202.615 6 -11392351.577 5 21660982.428 21660983.240 21660981.239
+ 40.500 35.900
+ 06 1 1 17 13 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6524357.659 6 -5083910.142 6 22109273.379 22109273.517 22109272.165
+ 40.000 37.000
+ -5695924.240 3 -4438400.774 2 24078793.587 24078797.847 24078793.746
+ 23.400 17.000
+ -3326894.896 4 -2592383.033 2 24056899.066 24056900.714 24056897.750
+ 26.500 17.800
+ -18487579.397 7 -14405898.870 7 21202091.765 21202091.091 21202091.294
+ 46.200 44.600
+ -13656120.519 6 -10641143.133 5 22170716.271 22170717.064 22170715.337
+ 37.300 32.000
+ -24374440.052 6 -18993068.573 8 20285492.069 20285489.821 20285491.205
+ 41.400 48.800
+ -17090562.988 7 -13317315.682 6 21235684.346 21235683.152 21235683.739
+ 46.600 38.100
+ -14702484.115 6 -11456466.992 6 21645324.297 21645325.440 21645323.455
+ 40.600 36.000
+ 06 1 1 17 13 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6587492.727 6 -5133106.276 6 22097258.599 22097259.298 22097257.611
+ 39.400 37.100
+ -5587689.936 3 -4354062.477 2 24099391.387 24099393.800 24099390.229
+ 20.500 15.100
+ -3413328.331 4 -2659733.621 2 24040450.500 24040453.179 24040449.519
+ 26.500 17.000
+ -18542256.938 7 -14448504.726 7 21191686.859 21191686.245 21191686.314
+ 46.100 44.600
+ -13557376.438 6 -10564199.751 5 22189507.478 22189507.632 22189506.136
+ 37.400 31.600
+ -24382963.027 6 -18999709.849 8 20283870.167 20283867.966 20283869.195
+ 41.300 48.900
+ -17034511.699 7 -13273639.370 6 21246350.702 21246349.153 21246350.067
+ 46.500 37.900
+ -14784363.614 6 -11520269.144 5 21629742.792 21629744.095 21629742.130
+ 41.000 35.600
+ 06 1 1 17 14 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6650430.719 6 -5182148.850 6 22085282.351 22085282.516 22085281.097
+ 39.800 36.400
+ -5479383.848 2 -4269668.270 2 24119999.748 24120004.229 24119999.672
+ 15.100 15.100
+ -3499554.641 4 -2726922.849 2 24024043.055 24024043.896 24024041.299
+ 24.600 15.100
+ -18596644.773 7 -14490884.830 7 21181337.513 21181336.581 21181336.829
+ 46.400 44.700
+ -13458286.530 6 -10486986.894 5 22208362.556 22208363.840 22208361.801
+ 36.700 31.300
+ -24391056.173 6 -19006016.194 8 20282330.218 20282327.885 20282329.264
+ 41.300 49.000
+ -16978006.006 7 -13229608.969 6 21257103.126 21257102.002 21257102.584
+ 46.400 38.200
+ -14865838.946 6 -11583756.373 6 21614239.208 21614239.909 21614238.106
+ 41.300 36.000
+ 06 1 1 17 14 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6713171.314 6 -5231037.612 6 22073343.225 22073343.310 22073342.092
+ 40.600 37.100
+ -5371008.468 2 -4185220.076 3 24140623.644 24140628.179 24140623.611
+ 17.000 18.600
+ -3585570.733 4 -2793948.232 2 24007672.621 24007676.124 24007673.163
+ 25.900 15.100
+ -18650742.381 7 -14533038.784 7 21171042.773 21171042.154 21171042.260
+ 46.200 44.700
+ -13358853.862 6 -10409506.952 5 22227285.051 22227285.167 22227283.611
+ 36.700 31.500
+ -24398718.326 6 -19011986.703 8 20280872.029 20280869.852 20280871.121
+ 41.300 48.900
+ -16921048.098 7 -13185226.196 6 21267942.060 21267940.768 21267941.381
+ 46.000 38.200
+ -14946908.256 6 -11646927.215 6 21598811.760 21598812.917 21598810.904
+ 41.200 36.100
+ 06 1 1 17 15 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6775714.302 6 -5279772.400 6 22061441.464 22061441.885 22061440.383
+ 40.500 37.700
+ -5262566.722 3 -4100720.146 3 24161260.798 24161263.877 24161259.719
+ 23.800 21.600
+ -3671373.411 4 -2860807.369 2 23991347.393 23991347.422 23991345.462
+ 25.600 13.900
+ -18704549.987 7 -14574966.766 7 21160803.531 21160802.737 21160803.008
+ 46.200 44.700
+ -13259081.849 6 -10331762.583 5 22246269.883 22246271.304 22246269.326
+ 37.200 31.100
+ -24405948.422 6 -19017620.545 8 20279496.107 20279493.982 20279495.152
+ 41.300 48.800
+ -16863640.243 7 -13140492.816 6 21278866.539 21278865.024 21278865.712
+ 46.100 37.600
+ -15027569.328 6 -11709779.934 6 21583462.367 21583463.620 21583461.660
+ 41.500 36.200
+ 06 1 1 17 15 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6838059.333 6 -5328352.927 6 22049577.854 22049578.013 22049576.624
+ 40.600 37.100
+ -5154061.146 3 -4016170.491 3 24181909.527 24181912.130 24181908.351
+ 22.100 21.600
+ -3756959.414 4 -2927497.688 3 23975060.868 23975061.632 23975059.130
+ 26.800 18.600
+ -18758067.288 7 -14616668.540 7 21150619.536 21150618.804 21150619.025
+ 46.200 44.800
+ -13158973.501 6 -10253756.130 5 22265321.075 22265321.475 22265319.729
+ 37.100 31.800
+ -24412745.513 6 -19022916.980 8 20278202.785 20278200.472 20278201.829
+ 41.100 48.800
+ -16805784.302 7 -13095410.274 6 21289876.115 21289874.759 21289875.391
+ 46.100 37.700
+ -15107820.151 6 -11772312.985 6 21568191.384 21568192.330 21568190.479
+ 41.800 36.500
+ 06 1 1 17 16 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6900206.152 6 -5376779.016 6 22037751.537 22037751.821 22037750.293
+ 40.500 37.100
+ -5045495.144 3 -3931573.758 3 24202568.212 24202571.402 24202567.185
+ 20.500 19.900
+ -3842325.904 4 -2994016.925 2 23958815.468 23958816.602 23958814.291
+ 28.600 13.900
+ -18811293.594 7 -14658143.563 7 21140490.926 21140490.095 21140490.377
+ 46.400 44.900
+ -13058531.472 6 -10175489.675 5 22284433.811 22284434.656 22284432.948
+ 37.100 31.000
+ -24419108.390 6 -19027875.064 8 20276991.988 20276989.637 20276991.050
+ 41.300 48.700
+ -16747482.242 7 -13049980.102 6 21300970.349 21300969.127 21300969.831
+ 46.300 37.500
+ -15187658.393 7 -11834524.540 6 21552998.233 21552999.558 21552997.589
+ 42.200 36.600
+ 06 1 1 17 16 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -6962154.434 6 -5425050.387 6 22025963.175 22025963.322 22025962.018
+ 40.700 37.000
+ -4936870.744 3 -3846931.509 2 24223239.119 24223241.951 24223237.941
+ 21.100 15.100
+ -3927469.408 4 -3060362.458 2 23942613.038 23942614.144 23942610.879
+ 24.200 16.100
+ -18864228.476 7 -14699391.509 7 21130417.954 21130417.013 21130417.297
+ 46.500 45.100
+ -12957759.560 6 -10096966.145 5 22303610.428 22303610.958 22303609.225
+ 36.400 31.100
+ -24425036.054 6 -19032494.022 8 20275863.995 20275861.679 20275863.053
+ 41.200 48.800
+ -16688736.343 7 -13004204.081 6 21312149.665 21312148.249 21312148.914
+ 46.100 37.800
+ -15267082.385 6 -11896413.302 6 21537884.699 21537885.514 21537883.669
+ 41.500 36.600
+ 06 1 1 17 17 0.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -7023904.078 6 -5473166.973 6 22014212.262 22014212.738 22014211.265
+ 40.300 37.600
+ -4828190.922 3 -3762246.041 2 24243920.655 24243923.304 24243919.622
+ 23.800 13.900
+ -4012386.702 4 -3126531.704 2 23926452.963 23926454.822 23926452.442
+ 28.100 15.100
+ -18916871.391 7 -14740411.953 7 21120399.944 21120399.443 21120399.438
+ 46.100 45.100
+ -12856660.889 6 -10018188.024 5 22322848.620 22322849.701 22322847.677
+ 36.500 30.600
+ -24430527.398 6 -19036772.991 8 20274819.017 20274816.701 20274818.086
+ 41.300 48.700
+ -16629548.628 7 -12958083.803 6 21323412.595 21323411.297 21323411.810
+ 46.000 37.400
+ -15346090.234 6 -11957977.793 6 21522849.578 21522850.698 21522848.947
+ 41.900 36.400
+ 06 1 1 17 17 30.0000000 0 8G 7G27G20G17G 8G28G11G24
+ -7085454.565 6 -5521128.377 6 22002499.983 22002500.121 22002498.626
+ 40.200 37.600
+ -4719458.426 3 -3677519.522 2 24264610.329 24264614.240 24264609.769
+ 19.900 17.000
+ -4097074.673 4 -3192522.283 3 23910338.048 23910339.915 23910336.846
+ 27.400 18.600
+ -18969222.372 7 -14781204.912 7 21110438.273 21110437.271 21110437.551
+ 46.500 45.200
+ -12755238.416 5 -9939157.577 5 22342148.461 22342149.610 22342147.657
+ 35.600 30.400
+ -24435581.546 6 -19040711.282 8 20273857.155 20273854.880 20273856.238
+ 41.200 48.700
+ -16569921.048 7 -12911620.758 6 21334759.261 21334757.799 21334758.570
+ 46.100 37.000
+ -15424679.911 6 -12019216.434 5 21507894.607 21507895.418 21507893.683
+ 41.900 35.900
+ 06 1 1 17 18 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7146805.789 6 -5568934.500 6 21990825.037 21990825.495 21990823.948
+ 40.900 37.800
+ -4181530.337 4 -3258331.843 2 23894267.123 23894267.598 23894265.261
+ 28.600 15.100
+ -19021280.823 7 -14821769.931 7 21100531.758 21100530.785 21100531.196
+ 46.500 45.000
+ -12653495.121 5 -9859877.146 4 22361509.718 22361510.847 22361508.658
+ 34.700 29.900
+ -24440197.086 6 -19044307.806 8 20272978.770 20272976.585 20272977.926
+ 41.300 48.700
+ -16509856.078 7 -12864816.895 6 21346189.231 21346188.003 21346188.618
+ 46.100 37.200
+ -15502849.086 6 -12080127.419 6 21493019.244 21493020.193 21493018.540
+ 41.800 36.200
+ 06 1 1 17 18 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7207957.346 6 -5616585.038 6 21979188.109 21979188.479 21979187.002
+ 40.500 37.700
+ -4265750.596 4 -3323957.959 3 23878240.516 23878241.238 23878238.836
+ 29.200 18.600
+ -19073046.623 7 -14862106.905 7 21090680.870 21090680.120 21090680.313
+ 46.400 45.100
+ -12551434.353 5 -9780349.334 5 22380931.137 22380932.488 22380930.212
+ 35.700 30.400
+ -24444373.332 6 -19047562.020 8 20272184.171 20272181.915 20272183.179
+ 41.200 48.700
+ -16449355.692 7 -12817673.747 6 21357702.136 21357700.530 21357701.421
+ 45.900 36.600
+ -15580596.313 6 -12140709.610 6 21478224.650 21478225.468 21478223.693
+ 41.900 36.300
+ 06 1 1 17 19 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7268909.000 6 -5664079.804 6 21967589.502 21967589.812 21967588.282
+ 40.500 38.200
+ -4349732.140 4 -3389398.054 2 23862258.966 23862260.053 23862257.399
+ 27.400 17.000
+ -19124519.208 7 -14902215.408 7 21080886.189 21080885.131 21080885.544
+ 46.700 45.100
+ -12449059.484 5 -9700576.779 5 22400412.762 22400413.870 22400411.868
+ 35.300 30.200
+ -24448109.345 6 -19050473.196 8 20271473.120 20271471.014 20271472.191
+ 41.400 48.700
+ -16388422.171 7 -12770193.090 6 21369297.528 21369295.949 21369296.816
+ 46.000 37.000
+ -15657919.444 6 -12200961.342 6 21463510.414 21463511.338 21463509.627
+ 41.900 36.700
+ 06 1 1 17 19 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7329660.481 6 -5711418.590 6 21956028.896 21956029.355 21956027.794
+ 41.000 38.400
+ -4433471.688 4 -3454649.563 3 23846322.824 23846324.779 23846321.663
+ 26.800 18.600
+ -19175698.030 7 -14942094.994 7 21071146.956 21071146.101 21071146.379
+ 46.500 45.200
+ -12346373.690 5 -9620561.926 5 22419952.896 22419954.233 22419952.076
+ 34.800 30.400
+ -24451403.728 6 -19053040.243 8 20270846.396 20270844.067 20270845.406
+ 41.000 48.700
+ -16327057.318 7 -12722376.333 6 21380974.713 21380973.423 21380974.099
+ 45.900 36.500
+ -15734816.453 7 -12260881.030 6 21448877.513 21448878.100 21448876.592
+ 42.100 36.500
+ 06 1 1 17 20 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7390211.499 6 -5758601.168 6 21944506.184 21944506.746 21944505.145
+ 41.000 38.300
+ -4516966.112 5 -3519710.109 2 23830433.873 23830435.894 23830434.176
+ 30.400 15.100
+ -19226583.029 7 -14981745.628 7 21061464.003 21061463.044 21061463.301
+ 46.400 45.200
+ -12243379.925 5 -9540307.095 5 22439552.317 22439553.574 22439551.396
+ 35.600 30.200
+ -24454255.458 6 -19055262.367 8 20270303.608 20270301.439 20270302.749
+ 41.100 48.600
+ -16265263.193 7 -12674225.081 6 21392733.738 21392732.407 21392732.985
+ 45.600 36.600
+ -15811285.506 7 -12320467.249 6 21434325.415 21434326.465 21434324.822
+ 42.100 36.600
+ 06 1 1 17 20 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7450561.836 6 -5805627.370 6 21933022.187 21933022.284 21933021.155
+ 41.600 38.100
+ -4600212.237 4 -3584577.132 3 23814594.314 23814595.328 23814592.543
+ 28.600 18.600
+ -19277173.401 7 -15021166.685 7 21051836.882 21051836.167 21051836.231
+ 46.400 45.600
+ -12140081.511 5 -9459814.882 4 22459209.479 22459210.375 22459208.414
+ 34.500 29.500
+ -24456663.589 6 -19057138.829 8 20269845.433 20269843.178 20269844.479
+ 41.100 48.600
+ -16203042.416 7 -12625741.374 6 21404574.065 21404572.741 21404573.302
+ 45.600 36.800
+ -15887324.809 7 -12379718.592 6 21419856.134 21419856.790 21419855.190
+ 42.400 37.100
+ 06 1 1 17 21 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7510711.212 6 -5852496.988 6 21921576.201 21921576.353 21921574.907
+ 41.200 38.300
+ -4683206.861 4 -3649248.178 3 23798800.699 23798801.622 23798799.037
+ 27.600 19.900
+ -19327469.688 7 -15060358.575 7 21042265.632 21042264.991 21042265.061
+ 46.500 45.600
+ -12036481.582 5 -9379087.724 4 22478923.828 22478924.887 22478922.850
+ 34.600 29.500
+ -24458627.057 6 -19058668.799 8 20269471.759 20269469.460 20269470.787
+ 41.100 48.500
+ -16140396.866 7 -12576926.675 6 21416494.869 21416493.709 21416494.331
+ 46.000 36.800
+ -15962932.179 7 -12438633.374 6 21405468.378 21405469.217 21405467.606
+ 42.900 37.100
+ 06 1 1 17 21 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7570659.361 6 -5899209.807 6 21910168.193 21910168.255 21910167.106
+ 41.400 37.500
+ -4765946.928 4 -3713720.827 2 23783054.217 23783056.357 23783053.791
+ 27.600 16.100
+ -19377470.643 7 -15099320.341 7 21032751.043 21032750.114 21032750.494
+ 46.700 45.500
+ -11932583.077 5 -9298127.908 4 22498695.008 22498696.251 22498693.805
+ 33.900 29.700
+ -24460145.010 6 -19059851.614 8 20269182.949 20269180.584 20269181.984
+ 41.000 48.400
+ -16077328.574 7 -12527782.563 6 21428496.835 21428495.325 21428496.126
+ 46.300 36.700
+ -16038105.989 7 -12497210.307 6 21391163.559 21391163.912 21391162.479
+ 42.700 37.100
+ 06 1 1 17 22 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7630405.983 6 -5945765.589 6 21898798.609 21898799.299 21898797.538
+ 41.200 38.600
+ -4848428.914 4 -3777992.420 3 23767359.301 23767360.731 23767357.872
+ 28.800 19.300
+ -19427176.282 7 -15138051.984 7 21023292.299 21023291.472 21023291.654
+ 46.600 45.600
+ -11828389.271 5 -9216937.986 4 22518522.519 22518523.801 22518521.635
+ 34.500 29.200
+ -24461216.675 6 -19060686.673 8 20268978.986 20268976.678 20268978.016
+ 41.000 48.500
+ -16013839.870 7 -12478310.857 6 21440578.183 21440576.742 21440577.555
+ 46.200 36.600
+ -16112844.285 7 -12555447.886 6 21376940.595 21376941.537 21376940.007
+ 42.700 37.100
+ 06 1 1 17 22 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7689950.726 6 -5992164.065 6 21887467.713 21887468.019 21887466.608
+ 41.400 38.400
+ -4930650.206 4 -3842060.849 2 23751711.761 23751714.098 23751711.848
+ 28.100 17.000
+ -19476586.055 7 -15176553.082 7 21013889.734 21013889.075 21013889.305
+ 46.900 45.800
+ -11723903.792 5 -9135520.784 4 22538406.160 22538406.702 22538404.967
+ 33.900 28.600
+ -24461840.894 6 -19061173.071 8 20268860.197 20268857.949 20268859.251
+ 40.900 48.600
+ -15949932.830 7 -12428513.170 6 21452739.510 21452737.705 21452738.812
+ 46.100 36.400
+ -16187145.074 7 -12613344.552 6 21362802.212 21362802.619 21362801.113
+ 42.800 37.400
+ 06 1 1 17 23 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7749293.386 6 -6038405.085 6 21876175.076 21876175.143 21876174.011
+ 41.600 37.900
+ -5012607.800 4 -3905923.785 3 23736115.670 23736118.122 23736115.289
+ 27.100 19.900
+ -19525699.723 7 -15214823.453 7 21004543.860 21004543.017 21004543.336
+ 46.800 45.900
+ -11619129.431 5 -9053878.484 4 22558343.534 22558344.882 22558342.625
+ 33.900 29.200
+ -24462016.742 6 -19061310.090 8 20268826.780 20268824.455 20268825.812
+ 40.900 48.500
+ -15885609.880 7 -12378391.402 6 21464979.813 21464978.186 21464979.039
+ 45.700 36.900
+ -16261006.840 7 -12670899.120 6 21348746.051 21348747.167 21348745.565
+ 42.800 37.300
+ 06 1 1 17 23 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7808433.680 6 -6084488.409 6 21864921.287 21864921.559 21864920.025
+ 41.200 38.700
+ -5094298.227 4 -3969578.518 3 23720571.458 23720572.949 23720570.170
+ 28.600 21.100
+ -19574517.105 7 -15252862.949 7 20995254.360 20995253.371 20995253.784
+ 46.900 45.700
+ -11514069.735 5 -8972013.865 5 22578335.474 22578337.125 22578334.854
+ 34.100 30.200
+ -24461743.540 6 -19061097.196 8 20268878.610 20268876.413 20268877.692
+ 40.900 48.500
+ -15820873.311 7 -12327947.334 6 21477298.452 21477297.153 21477297.839
+ 45.600 36.500
+ -16334427.779 7 -12728110.196 6 21334775.328 21334775.678 21334774.159
+ 42.700 38.000
+ 06 1 1 17 24 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7867371.465 6 -6130413.931 6 21853705.526 21853705.971 21853704.454
+ 41.600 38.600
+ -5175718.064 4 -4033022.422 3 23705076.857 23705079.416 23705076.548
+ 28.600 19.300
+ -19623038.054 7 -15290671.465 7 20986021.043 20986020.042 20986020.416
+ 46.900 45.800
+ -11408727.897 5 -8889929.373 4 22598382.164 22598383.103 22598381.035
+ 34.500 29.500
+ -24461020.153 6 -19060533.511 8 20269016.248 20269014.133 20269015.277
+ 40.800 48.500
+ -15755725.091 7 -12277182.501 6 21489695.747 21489694.419 21489695.041
+ 45.400 36.400
+ -16407405.670 7 -12784976.031 6 21320887.451 21320888.476 21320886.696
+ 43.200 38.100
+ 06 1 1 17 24 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -7926106.109 7 -6176181.168 6 21842529.084 21842529.028 21842527.863
+ 42.000 38.600
+ -5256864.648 4 -4096253.423 3 23689636.939 23689637.393 23689635.114
+ 28.600 19.300
+ -19671262.027 7 -15328248.569 7 20976844.205 20976843.225 20976843.541
+ 46.700 45.600
+ -11303106.683 5 -8807627.193 4 22618480.922 22618482.035 22618479.967
+ 34.000 28.400
+ -24459845.727 6 -19059618.365 8 20269239.650 20269237.629 20269238.719
+ 40.700 48.600
+ -15690167.725 7 -12226098.850 6 21502171.215 21502169.483 21502170.461
+ 45.600 36.300
+ -16479938.599 7 -12841495.161 6 21307085.066 21307085.872 21307084.152
+ 43.100 38.100
+ 06 1 1 17 25 0.0000000 0 7G 7G20G17G 8G28G11G24
+ -7984637.731 7 -6221790.199 6 21831390.902 21831391.157 21831389.590
+ 42.200 39.200
+ -5337734.893 4 -4159269.068 2 23674246.846 23674247.957 23674245.967
+ 29.900 13.900
+ -19719188.286 7 -15365593.690 7 20967724.143 20967723.163 20967723.558
+ 46.900 45.700
+ -11197209.908 5 -8725110.284 4 22638632.508 22638633.640 22638631.443
+ 33.400 28.400
+ -24458219.600 6 -19058351.249 8 20269549.101 20269547.040 20269548.177
+ 40.600 48.600
+ -15624202.941 7 -12174697.728 6 21514723.754 21514722.182 21514723.029
+ 45.200 36.200
+ -16552025.226 7 -12897666.500 6 21293367.077 21293368.193 21293366.298
+ 43.100 38.400
+ 06 1 1 17 25 30.0000000 0 7G 7G20G17G 8G28G11G24
+ -8042965.883 7 -6267240.689 6 21820291.274 21820291.435 21820290.136
+ 42.300 39.000
+ -5418325.594 4 -4222066.898 2 23658911.615 23658911.932 23658910.037
+ 29.200 16.100
+ -19766816.877 7 -15402706.861 7 20958660.835 20958659.740 20958660.170
+ 47.000 45.800
+ -11091040.434 5 -8642380.901 4 22658835.849 22658837.303 22658834.629
+ 32.800 29.700
+ -24456140.645 6 -19056731.281 8 20269944.774 20269942.605 20269943.844
+ 40.700 48.600
+ -15557833.179 7 -12122981.042 6 21527353.388 21527352.145 21527352.720
+ 45.300 36.500
+ -16623663.689 7 -12953488.636 6 21279735.024 21279735.628 21279734.155
+ 43.400 37.700
+ 06 1 1 17 26 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8101090.212 7 -6312532.353 6 21809230.416 21809230.665 21809229.214
+ 42.100 39.100
+ -157142.098 3 -122448.837 2 24433776.924 24433780.090 24433776.580
+ 18.600 12.600
+ -5498633.502 4 -4284644.341 2 23643629.581 23643629.696 23643628.104
+ 29.900 17.800
+ -19814147.462 7 -15439587.824 7 20949653.787 20949653.099 20949653.254
+ 46.700 46.100
+ -10984601.404 5 -8559441.466 4 22679090.433 22679091.743 22679089.493
+ 34.000 27.600
+ -24453607.959 6 -19054757.755 8 20270426.680 20270424.667 20270425.782
+ 40.900 48.500
+ -15491060.559 7 -12070950.437 5 21540059.786 21540058.429 21540059.158
+ 45.300 35.800
+ -16694852.415 7 -13008960.330 6 21266188.251 21266188.751 21266187.194
+ 42.800 37.800
+ 06 1 1 17 26 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8159010.555 7 -6357665.064 6 21798208.780 21798208.832 21798207.481
+ 42.200 38.900
+ -274897.714 2 -214206.341 1 24411369.541 24411370.430 24411368.842
+ 16.100 9.000
+ -5578655.438 5 -4346998.974 3 23628401.586 23628402.287 23628400.256
+ 31.300 21.600
+ -19861179.718 7 -15476236.320 7 20940704.038 20940703.098 20940703.468
+ 46.800 46.100
+ -10877896.056 5 -8476294.496 4 22699396.185 22699397.150 22699395.054
+ 33.100 27.900
+ -24450620.620 6 -19052429.953 8 20270995.077 20270993.089 20270994.178
+ 40.800 48.400
+ -15423887.472 7 -12018607.786 6 21552842.428 21552841.174 21552841.704
+ 45.100 36.200
+ -16765589.568 7 -13064080.134 6 21252727.084 21252727.973 21252726.158
+ 42.900 38.400
+ 06 1 1 17 27 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8216726.554 7 -6402638.554 6 21787225.677 21787225.617 21787224.501
+ 42.400 38.700
+ -392564.128 4 -305894.374 2 24388978.048 24388980.950 24388977.718
+ 24.200 13.900
+ -5658388.153 5 -4409128.224 3 23613228.429 23613229.088 23613227.243
+ 30.100 18.600
+ -19907913.178 7 -15512651.991 7 20931810.718 20931809.948 20931810.333
+ 47.000 46.200
+ -10770927.707 5 -8392942.620 5 22719751.278 22719752.896 22719750.281
+ 33.100 30.100
+ -24447177.788 6 -19049747.225 8 20271650.424 20271648.188 20271649.439
+ 40.800 48.400
+ -15356316.041 7 -11965954.735 6 21565700.581 21565699.568 21565699.952
+ 44.700 36.000
+ -16835873.297 7 -13118846.626 6 21239352.436 21239353.390 21239351.637
+ 43.100 38.400
+ 06 1 1 17 27 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8274238.016 7 -6447452.672 6 21776281.320 21776281.589 21776280.282
+ 42.100 39.100
+ -510139.300 3 -397511.279 1 24366604.381 24366606.913 24366604.207
+ 22.600 6.500
+ -5737828.957 5 -4471029.979 3 23598111.364 23598112.027 23598110.032
+ 31.000 18.600
+ -19954347.449 7 -15548834.528 7 20922974.857 20922973.732 20922974.304
+ 47.000 46.100
+ -10663699.576 5 -8309388.329 4 22740155.991 22740157.699 22740155.057
+ 32.700 28.400
+ -24443278.799 6 -19046709.050 8 20272392.261 20272390.120 20272391.322
+ 40.500 48.400
+ -15288348.554 7 -11912993.074 5 21578634.845 21578633.263 21578634.024
+ 44.900 35.700
+ -16905701.733 7 -13173258.347 6 21226064.791 21226065.412 21226063.730
+ 43.000 38.600
+ 06 1 1 17 28 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8331544.592 7 -6492107.123 6 21765376.152 21765376.477 21765375.038
+ 42.200 39.200
+ -627620.804 3 -489055.217 3 24344247.632 24344250.796 24344247.426
+ 19.900 18.600
+ -5816974.605 5 -4532701.754 3 23583049.284 23583051.142 23583048.851
+ 30.100 21.100
+ -20000482.449 7 -15584783.861 7 20914195.710 20914194.517 20914194.968
+ 46.900 46.100
+ -10556215.138 5 -8225634.283 4 22760610.091 22760611.371 22760608.957
+ 32.100 28.100
+ -24438922.637 6 -19043314.634 8 20273221.194 20273219.099 20273220.234
+ 41.000 48.300
+ -15219987.268 7 -11859724.559 5 21591643.400 21591642.085 21591642.714
+ 44.900 35.500
+ -16975073.184 7 -13227313.965 6 21212863.216 21212864.311 21212862.623
+ 43.400 38.400
+ 06 1 1 17 28 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8388646.186 7 -6536601.849 6 21754510.408 21754510.399 21754509.213
+ 42.400 38.900
+ -745006.527 3 -580524.499 3 24321910.745 24321912.490 24321910.052
+ 20.500 18.600
+ -5895821.904 5 -4594141.078 3 23568045.616 23568046.776 23568044.700
+ 31.600 19.900
+ -20046317.785 7 -15620499.690 7 20905473.498 20905472.332 20905472.811
+ 47.000 46.100
+ -10448477.298 5 -8141682.798 4 22781111.774 22781113.112 22781110.896
+ 32.300 28.100
+ -24434108.431 6 -19039563.310 8 20274137.249 20274135.249 20274136.385
+ 40.700 48.400
+ -15151234.381 7 -11806150.901 5 21604726.435 21604725.245 21604725.897
+ 44.900 35.800
+ -17043986.139 7 -13281012.325 6 21199749.993 21199750.578 21199748.997
+ 43.400 38.500
+ 06 1 1 17 29 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8445542.216 7 -6580936.402 6 21743683.358 21743683.553 21743682.242
+ 42.600 39.400
+ -862294.171 2 -671917.342 2 24299590.651 24299593.872 24299590.081
+ 16.100 17.800
+ -5974367.958 5 -4655345.650 3 23553099.453 23553099.696 23553098.103
+ 30.200 19.900
+ -20091853.099 7 -15655981.737 7 20896808.161 20896807.223 20896807.675
+ 46.900 46.200
+ -10340489.297 5 -8057536.376 4 22801661.407 22801662.682 22801660.362
+ 33.500 27.900
+ -24428835.600 6 -19035454.611 8 20275140.884 20275138.667 20275139.897
+ 40.700 48.400
+ -15082092.317 7 -11752273.993 5 21617884.149 21617882.670 21617883.349
+ 44.700 35.600
+ -17112439.384 7 -13334352.464 6 21186723.938 21186724.422 21186722.908
+ 43.400 38.500
+ 06 1 1 17 29 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8502232.677 7 -6625110.762 6 21732895.323 21732895.698 21732894.238
+ 42.500 39.500
+ -979481.668 4 -763232.236 3 24277291.012 24277293.563 24277290.741
+ 24.200 20.500
+ -6052609.383 5 -4716312.842 3 23538210.136 23538210.297 23538209.245
+ 31.100 20.500
+ -20137087.967 7 -15691229.669 7 20888200.164 20888199.385 20888199.654
+ 46.900 46.300
+ -10232254.326 5 -7973197.505 4 22822258.144 22822259.134 22822256.952
+ 32.700 27.400
+ -24423103.240 6 -19030987.835 8 20276231.594 20276229.532 20276230.642
+ 40.900 48.400
+ -15012563.120 7 -11698095.420 5 21631114.911 21631113.610 21631114.225
+ 44.800 35.500
+ -17180430.939 7 -13387332.832 6 21173785.158 21173785.867 21173784.306
+ 43.500 38.600
+ 06 1 1 17 30 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8558717.129 7 -6669124.602 6 21722146.678 21722147.171 21722145.603
+ 42.400 40.000
+ -1096566.389 3 -854467.053 3 24255010.280 24255013.465 24255009.841
+ 21.100 19.300
+ -6130543.360 5 -4777040.479 3 23523379.611 23523380.323 23523378.161
+ 30.100 20.500
+ -20182022.402 7 -15726243.499 7 20879649.717 20879648.590 20879649.016
+ 47.100 46.400
+ -10123775.829 5 -7888668.883 4 22842900.067 22842901.860 22842899.574
+ 32.300 27.600
+ -24416910.422 6 -19026162.266 8 20277410.125 20277407.993 20277409.141
+ 41.000 48.300
+ -14942648.986 7 -11643616.901 5 21644419.283 21644417.809 21644418.613
+ 44.900 35.300
+ -17247959.140 7 -13439952.156 6 21160935.067 21160935.718 21160934.233
+ 43.800 38.900
+ 06 1 1 17 30 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8614995.342 7 -6712977.725 6 21711437.409 21711437.776 21711436.204
+ 42.300 40.000
+ -1213546.232 3 -945620.156 3 24232749.922 24232752.551 24232749.826
+ 22.600 21.100
+ -6208166.780 5 -4837526.149 3 23508607.311 23508608.604 23508606.705
+ 30.400 19.900
+ -20226655.823 7 -15761022.775 7 20871156.270 20871155.221 20871155.606
+ 47.200 46.700
+ -10015057.116 5 -7803953.083 4 22863589.515 22863590.503 22863588.379
+ 31.800 27.600
+ -24410256.699 6 -19020977.547 8 20278676.208 20278674.101 20278675.300
+ 40.900 48.200
+ -14872352.310 7 -11588840.300 5 21657796.444 21657795.091 21657795.711
+ 44.900 35.300
+ -17315022.237 7 -13492209.060 6 21148173.304 21148174.032 21148172.506
+ 43.600 39.100
+ 06 1 1 17 31 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8671067.047 7 -6756669.944 6 21700767.478 21700767.456 21700766.197
+ 42.600 39.800
+ -1330419.015 4 -1036689.822 3 24210510.126 24210512.565 24210509.773
+ 24.900 20.500
+ -6285476.427 5 -4897767.321 2 23493896.857 23493896.784 23493895.699
+ 30.100 17.000
+ -20270987.890 7 -15795567.226 7 20862720.004 20862719.128 20862719.436
+ 47.000 46.600
+ -9906101.443 5 -7719052.635 4 22884322.966 22884324.320 22884321.933
+ 31.300 26.800
+ -24403141.278 6 -19015433.064 8 20280030.186 20280028.121 20280029.262
+ 40.800 48.300
+ -14801675.311 7 -11533767.342 5 21671245.554 21671244.089 21671245.027
+ 44.600 34.600
+ -17381618.904 7 -13544102.513 6 21135500.483 21135500.948 21135499.553
+ 44.000 38.900
+ 06 1 1 17 31 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8726932.103 7 -6800201.135 6 21690136.614 21690136.750 21690135.448
+ 42.800 39.900
+ -1447182.402 3 -1127674.269 3 24188291.001 24188293.062 24188290.281
+ 21.600 20.500
+ -6362469.288 5 -4957761.640 3 23479245.901 23479245.858 23479244.251
+ 30.400 19.300
+ -20315018.386 7 -15829876.688 7 20854341.103 20854340.258 20854340.597
+ 47.000 46.600
+ -9796911.773 4 -7633969.837 4 22905100.943 22905102.419 22905099.868
+ 29.900 26.200
+ -24395563.358 6 -19009528.191 8 20281472.094 20281470.257 20281471.279
+ 40.900 48.300
+ -14730620.450 7 -11478399.942 5 21684767.332 21684765.474 21684766.503
+ 44.500 34.800
+ -17447747.522 7 -13595631.256 6 21122916.449 21122916.948 21122915.561
+ 43.900 38.800
+ 06 1 1 17 32 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8782590.146 7 -6843571.021 6 21679545.187 21679545.313 21679544.047
+ 43.000 40.100
+ -1563834.120 4 -1218571.712 3 24166093.473 24166095.172 24166092.716
+ 24.900 18.600
+ -6439142.231 5 -5017506.720 3 23464654.246 23464655.315 23464653.125
+ 30.400 19.900
+ -20358747.002 7 -15863950.917 7 20846019.970 20846019.060 20846019.369
+ 47.100 46.800
+ -9687491.366 4 -7548707.270 4 22925922.396 22925924.245 22925921.674
+ 29.700 25.900
+ -24387522.103 6 -19003262.280 8 20283002.374 20283000.434 20283001.422
+ 41.000 48.200
+ -14659189.618 7 -11422739.582 5 21698360.013 21698358.507 21698359.252
+ 44.300 34.900
+ -17513406.551 7 -13646794.088 6 21110421.785 21110422.520 21110421.066
+ 44.100 38.900
+ 06 1 1 17 32 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8838040.841 7 -6886779.334 6 21668993.108 21668993.334 21668992.194
+ 43.300 39.800
+ -1680371.880 3 -1309380.391 2 24143915.845 24143918.228 24143915.465
+ 23.000 16.100
+ -6515491.915 5 -5076999.870 3 23450125.750 23450126.438 23450124.316
+ 30.800 21.100
+ -20402173.468 7 -15897789.704 7 20837756.209 20837755.299 20837755.547
+ 46.800 46.700
+ -9577843.482 5 -7463267.443 4 22946788.397 22946789.861 22946787.343
+ 31.300 27.400
+ -24379016.747 6 -18996634.731 8 20284620.942 20284618.848 20284620.023
+ 40.500 48.100
+ -14587385.312 7 -11366788.205 5 21712023.940 21712022.422 21712023.130
+ 44.100 34.800
+ -17578594.220 7 -13697589.633 6 21098017.200 21098017.693 21098016.311
+ 43.900 39.500
+ 06 1 1 17 33 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8893283.964 7 -6929825.909 6 21658480.891 21658480.881 21658479.787
+ 43.400 40.000
+ -1796793.541 3 -1400098.559 1 24121761.896 24121764.251 24121761.394
+ 19.900 11.000
+ -6591516.169 5 -5136239.472 3 23435657.998 23435659.481 23435657.219
+ 30.800 19.300
+ -20445297.260 7 -15931392.646 7 20829550.032 20829549.004 20829549.294
+ 47.000 46.800
+ -9467971.274 5 -7377652.804 4 22967696.117 22967698.107 22967695.074
+ 31.800 27.400
+ -24370046.572 6 -18989644.991 7 20286327.815 20286325.858 20286326.919
+ 40.600 47.900
+ -14515209.923 7 -11310547.671 5 21725758.268 21725756.998 21725757.568
+ 44.000 35.100
+ -17643309.051 7 -13748016.732 6 21085702.423 21085702.812 21085701.565
+ 44.100 39.200
+ 06 1 1 17 33 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -8948319.099 7 -6972710.417 6 21648008.024 21648007.782 21648006.843
+ 43.300 39.600
+ -1913096.781 3 -1490724.450 2 24099630.566 24099632.145 24099629.781
+ 20.500 17.000
+ -6667211.526 5 -5195222.795 3 23421254.514 23421254.805 23421253.354
+ 31.500 20.500
+ -20488118.142 7 -15964759.555 7 20821401.338 20821400.548 20821400.766
+ 46.900 46.900
+ -9357877.960 5 -7291865.879 4 22988646.511 22988648.208 22988645.629
+ 31.000 27.400
+ -24360611.045 6 -18982292.636 7 20288123.503 20288121.369 20288122.473
+ 40.700 47.900
+ -14442665.541 7 -11254019.602 5 21739563.153 21739561.726 21739562.391
+ 43.800 34.800
+ -17707549.805 7 -13798074.421 6 21073477.777 21073478.135 21073476.862
+ 43.900 39.300
+ 06 1 1 17 34 0.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -9003146.124 7 -7015432.756 6 21637574.677 21637574.740 21637573.609
+ 43.500 40.000
+ -2029279.360 3 -1581256.289 1 24077521.675 24077523.637 24077521.007
+ 20.500 11.000
+ -6742574.653 5 -5253947.243 3 23406913.416 23406913.746 23406912.160
+ 31.800 20.500
+ -20530636.047 7 -15997890.375 7 20813310.465 20813309.674 20813309.966
+ 47.200 47.000
+ -9247566.579 5 -7205909.037 4 23009637.726 23009639.861 23009636.864
+ 30.400 25.900
+ -24350709.402 6 -18974577.070 8 20290007.525 20290005.556 20290006.671
+ 40.700 48.000
+ -14369754.539 7 -11197205.860 5 21753437.591 21753436.257 21753436.899
+ 44.100 34.500
+ -17771314.702 7 -13847761.319 6 21061343.848 21061344.110 21061342.817
+ 44.100 39.500
+ 06 1 1 17 34 30.0000000 0 8G 7G 4G20G17G 8G28G11G24
+ -9057764.698 7 -7057992.663 6 21627181.223 21627181.299 21627180.082
+ 43.300 40.500
+ -2145338.968 3 -1671692.294 2 24055436.393 24055437.981 24055435.413
+ 21.100 15.100
+ -6817602.756 5 -5312410.628 3 23392635.343 23392636.608 23392634.640
+ 31.500 23.400
+ -20572850.567 7 -16030784.796 7 20805277.612 20805276.361 20805276.826
+ 47.300 46.900
+ -9137040.974 4 -7119785.251 4 23030670.426 23030671.903 23030669.480
+ 28.800 25.300
+ -24340340.900 6 -18966497.718 7 20291981.050 20291978.690 20291979.921
+ 40.700 47.900
+ -14296479.110 7 -11140108.139 5 21767381.340 21767380.257 21767380.714
+ 43.800 34.700
+ -17834602.259 7 -13897076.258 6 21049300.437 21049300.821 21049299.641
+ 44.600 39.300
+ 06 1 1 17 35 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9112174.544 7 -7100389.930 6 21616827.403 21616827.448 21616826.137
+ 43.400 40.600
+ -2261273.387 4 -1762030.782 1 24033373.437 24033375.880 24033373.546
+ 24.900 11.000
+ -106426.462 3 -82929.528 4 24221335.665 24221337.990 24221334.520
+ 21.600 28.100
+ -6892292.837 5 -5370610.596 3 23378423.085 23378423.684 23378421.546
+ 31.000 20.500
+ -20614761.299 7 -16063442.497 7 20797301.787 20797300.954 20797301.246
+ 47.000 47.000
+ -9026303.893 4 -7033496.693 4 23051742.522 23051744.601 23051741.849
+ 29.700 25.600
+ -24329505.130 6 -18958054.264 7 20294042.628 20294040.678 20294041.757
+ 41.000 47.900
+ -14222841.709 7 -11082728.368 5 21781394.136 21781392.773 21781393.473
+ 43.800 34.400
+ -17897410.951 7 -13946018.071 6 21037348.392 21037348.624 21037347.485
+ 44.500 39.500
+ 06 1 1 17 35 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9166375.371 7 -7142624.321 6 21606513.344 21606513.315 21606512.215
+ 43.600 40.300
+ -2377080.384 4 -1852269.994 2 24011336.481 24011338.519 24011336.491
+ 27.400 13.900
+ -185715.269 4 -144712.935 4 24206247.838 24206248.628 24206246.855
+ 25.600 24.900
+ -6966641.783 5 -5428544.773 3 23364274.523 23364275.256 23364273.626
+ 32.000 22.100
+ -20656367.859 7 -16095863.177 7 20789384.385 20789383.526 20789383.771
+ 46.900 47.100
+ -8915358.778 5 -6947046.016 4 23072855.197 23072856.943 23072854.331
+ 30.600 24.600
+ -24318201.093 6 -18949245.925 7 20296193.679 20296191.690 20296192.835
+ 41.000 47.700
+ -14148844.518 7 -11025068.239 5 21795475.376 21795474.164 21795474.654
+ 43.400 34.500
+ -17959739.638 7 -13994585.840 6 21025487.530 21025487.926 21025486.657
+ 44.200 39.800
+ 06 1 1 17 36 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9220366.891 7 -7184695.622 6 21596239.074 21596238.948 21596237.883
+ 43.600 40.200
+ -2492757.755 4 -1942408.161 3 23989324.359 23989326.805 23989323.910
+ 28.100 21.600
+ -264545.979 4 -206139.420 3 24191246.426 24191247.895 24191245.690
+ 26.800 19.900
+ -7040646.581 5 -5486210.779 3 23350192.211 23350192.788 23350190.974
+ 32.600 21.100
+ -20697670.180 7 -16128046.788 7 20781524.956 20781523.902 20781524.185
+ 46.800 47.200
+ -8804209.280 4 -6860436.095 4 23094006.692 23094008.188 23094005.562
+ 29.700 26.800
+ -24306428.372 6 -18940072.384 7 20298434.156 20298431.984 20298433.192
+ 41.100 47.800
+ -14074489.844 7 -10967129.556 5 21809624.984 21809623.434 21809624.105
+ 43.600 34.100
+ -18021586.875 7 -14042778.450 6 21013718.323 21013718.753 21013717.418
+ 44.100 39.700
+ 06 1 1 17 36 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9274148.967 7 -7226603.711 6 21586004.473 21586004.718 21586003.353
+ 43.500 40.500
+ -2608303.303 4 -2032443.595 3 23967336.400 23967338.970 23967335.980
+ 24.900 21.600
+ -342916.031 4 -267207.005 3 24176333.082 24176334.812 24176332.123
+ 25.900 18.600
+ -7114304.209 5 -5543606.270 3 23336175.462 23336176.042 23336174.320
+ 32.000 21.100
+ -20738667.975 7 -16159993.106 7 20773723.106 20773722.331 20773722.491
+ 46.700 47.300
+ -8692857.971 4 -6773668.924 4 23115195.466 23115197.844 23115194.770
+ 29.900 26.800
+ -24294186.484 6 -18930533.250 7 20300763.461 20300761.559 20300762.583
+ 41.100 47.700
+ -13999780.015 7 -10908914.124 5 21823841.533 21823839.991 21823840.910
+ 43.700 34.300
+ -18082951.011 7 -14090594.623 6 21002041.083 21002041.557 21002040.259
+ 44.600 39.800
+ 06 1 1 17 37 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9327721.145 7 -7268348.250 6 21575810.020 21575810.155 21575808.922
+ 43.900 40.600
+ -2723714.740 3 -2122374.524 3 23945374.128 23945376.751 23945373.444
+ 22.600 22.600
+ -420822.444 4 -327913.271 2 24161507.476 24161509.532 24161506.769
+ 25.300 16.100
+ -7187611.903 5 -5600729.089 3 23322224.768 23322225.600 23322224.068
+ 31.000 21.600
+ -20779360.951 7 -16191701.903 7 20765979.635 20765978.697 20765979.116
+ 47.000 47.300
+ -8581307.844 4 -6686746.813 4 23136423.373 23136425.167 23136422.187
+ 28.800 26.500
+ -24281474.372 6 -18920627.709 7 20303182.748 20303180.578 20303181.686
+ 40.800 47.600
+ -13924717.353 7 -10850423.760 5 21838125.424 21838124.521 21838124.779
+ 43.400 35.100
+ -18143830.890 7 -14138033.454 6 20990456.026 20990456.394 20990455.146
+ 44.700 40.000
+ 06 1 1 17 37 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9381083.157 7 -7309929.024 6 21565655.703 21565655.691 21565654.457
+ 43.900 40.700
+ -2838989.616 3 -2212199.013 3 23923437.547 23923440.385 23923436.924
+ 22.100 22.600
+ -498263.104 4 -388256.609 2 24146772.232 24146772.946 24146770.879
+ 24.600 17.800
+ -7260566.423 5 -5657576.697 3 23308342.448 23308342.771 23308341.286
+ 31.100 20.500
+ -20819748.541 7 -16223172.736 7 20758293.987 20758293.146 20758293.523
+ 47.000 47.300
+ -8469562.817 4 -6599672.850 3 23157687.896 23157689.150 23157686.533
+ 29.000 23.800
+ -24268291.991 6 -18910355.730 7 20305691.075 20305689.121 20305690.112
+ 41.000 47.600
+ -13849303.979 7 -10791660.120 5 21852476.615 21852474.815 21852475.579
+ 43.200 34.000
+ -18204224.760 7 -14185093.580 6 20978963.487 20978963.778 20978962.662
+ 45.100 39.700
+ 06 1 1 17 38 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9434234.828 7 -7351345.887 6 21555541.200 21555541.385 21555540.008
+ 43.800 41.100
+ -2954125.947 3 -2301915.538 3 23901526.840 23901530.858 23901527.000
+ 21.600 23.800
+ -575235.471 3 -448235.000 2 24132124.014 24132125.680 24132123.346
+ 23.400 17.000
+ -7333164.962 5 -5714146.923 3 23294527.231 23294527.507 23294525.943
+ 31.800 21.100
+ -20859830.801 7 -16254405.646 7 20750666.747 20750665.740 20750666.185
+ 47.100 47.400
+ -8357625.816 4 -6512449.284 4 23178988.591 23178990.581 23178987.777
+ 29.700 24.900
+ -24254638.543 6 -18899716.680 7 20308289.238 20308287.297 20308288.345
+ 41.100 47.600
+ -13773542.422 7 -10732625.169 5 21866892.628 21866891.929 21866892.164
+ 42.800 34.100
+ -18264131.444 7 -14231774.081 6 20967563.816 20967563.749 20967562.896
+ 45.100 40.000
+ 06 1 1 17 38 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9487175.748 7 -7392598.526 6 21545466.613 21545466.923 21545465.517
+ 43.800 40.900
+ -3069121.490 3 -2391522.384 4 23879644.045 23879648.236 23879644.184
+ 18.600 24.600
+ -651736.752 4 -507846.315 2 24117566.375 24117567.153 24117565.516
+ 24.200 15.100
+ -7405404.553 5 -5770437.439 3 23280779.990 23280780.759 23280779.174
+ 32.400 23.000
+ -20899607.377 7 -16285400.365 7 20743097.809 20743096.477 20743097.025
+ 47.200 47.600
+ -8245500.120 5 -6425078.678 3 23200325.637 23200327.194 23200324.630
+ 30.200 23.400
+ -24240513.479 6 -18888710.136 7 20310977.233 20310975.186 20310976.267
+ 41.100 47.600
+ -13697434.880 7 -10673320.624 5 21881375.804 21881374.853 21881375.109
+ 43.200 34.300
+ -18323549.598 7 -14278073.905 6 20956256.644 20956256.854 20956255.725
+ 44.800 39.800
+ 06 1 1 17 39 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9539905.625 7 -7433686.715 6 21535432.611 21535432.645 21535431.571
+ 44.200 40.700
+ -3183973.939 4 -2481017.712 3 23857789.333 23857791.937 23857789.087
+ 24.900 18.600
+ -727764.197 3 -567088.445 2 24103098.624 24103100.377 24103097.698
+ 22.600 16.100
+ -7477282.012 5 -5826445.789 3 23267102.218 23267103.220 23267101.603
+ 33.100 23.800
+ -20939077.772 7 -16316156.497 7 20735586.596 20735585.605 20735586.076
+ 47.400 47.600
+ -8133188.827 4 -6337563.466 3 23221698.120 23221699.208 23221696.823
+ 28.800 23.800
+ -24225916.121 6 -18877335.576 7 20313754.925 20313752.981 20313753.986
+ 41.200 47.600
+ -13620983.848 7 -10613748.411 5 21895923.831 21895922.690 21895923.267
+ 42.900 33.400
+ -18382477.772 7 -14323991.930 6 20945042.963 20945043.254 20945042.010
+ 44.800 40.200
+ 06 1 1 17 39 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9592424.341 7 -7474610.369 6 21525438.658 21525438.686 21525437.507
+ 43.900 41.000
+ -3298681.070 3 -2570399.881 2 23835961.881 23835964.161 23835961.118
+ 23.400 17.800
+ -803315.805 3 -625959.778 2 24088721.775 24088723.764 24088720.692
+ 23.400 15.100
+ -7548794.663 5 -5882169.876 4 23253494.809 23253495.034 23253492.852
+ 31.600 24.200
+ -20978241.779 7 -16346673.888 7 20728133.697 20728132.906 20728133.202
+ 47.200 47.700
+ -8020695.702 4 -6249906.546 4 23243104.216 23243106.131 23243103.435
+ 28.100 24.600
+ -24210846.078 6 -18865592.684 7 20316622.577 20316620.750 20316621.732
+ 41.100 47.500
+ -13544191.505 7 -10553910.266 5 21910537.330 21910536.285 21910536.607
+ 43.200 34.000
+ -18440914.761 7 -14369527.210 6 20933922.642 20933923.084 20933921.745
+ 44.700 40.400
+ 06 1 1 17 40 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9644731.401 7 -7515369.083 6 21515485.117 21515485.196 21515483.896
+ 43.900 41.400
+ -3413240.515 4 -2659667.007 3 23814161.483 23814164.156 23814161.367
+ 25.300 19.900
+ -878388.595 3 -684458.143 9 24074435.338 24074436.142 24074434.389
+ 23.400 -3.000
+ -7619939.382 5 -5937607.253 3 23239955.392 23239956.044 23239954.316
+ 32.000 22.600
+ -21017099.286 7 -16376952.447 7 20720739.534 20720738.490 20720738.837
+ 47.000 47.700
+ -7908023.395 4 -6162110.053 4 23264545.595 23264547.455 23264544.138
+ 27.900 25.600
+ -24195302.818 6 -18853481.054 7 20319580.512 20319578.559 20319579.591
+ 41.100 47.500
+ -13467059.850 7 -10493807.713 5 21925215.331 21925213.838 21925214.359
+ 43.000 33.500
+ -18498859.357 7 -14414678.801 6 20922896.294 20922896.429 20922895.267
+ 44.500 40.200
+ 06 1 1 17 40 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9696826.676 7 -7555962.772 6 21505571.486 21505571.515 21505570.367
+ 43.800 41.100
+ -3527650.224 4 -2748817.369 3 23792390.299 23792392.424 23792389.566
+ 24.600 19.900
+ -952979.657 4 -742581.004 3 24060241.911 24060243.504 24060240.938
+ 26.500 18.600
+ -7690713.420 5 -5992755.791 3 23226488.148 23226488.261 23226486.631
+ 32.800 23.800
+ -21055649.753 7 -16406991.752 7 20713403.619 20713402.616 20713402.854
+ 47.000 47.900
+ -7795175.101 4 -6074176.396 4 23286019.355 23286021.675 23286018.501
+ 29.700 25.900
+ -24179285.745 6 -18841000.226 7 20322628.633 20322626.582 20322627.598
+ 41.300 47.400
+ -13389591.442 7 -10433442.752 5 21939956.595 21939955.307 21939956.032
+ 43.200 33.200
+ -18556310.304 7 -14459445.734 6 20911963.643 20911963.822 20911962.760
+ 44.500 40.200
+ 06 1 1 17 41 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9748709.800 7 -7596391.152 6 21495698.472 21495698.483 21495697.329
+ 44.000 41.100
+ -3641907.815 4 -2837849.219 2 23770647.319 23770649.582 23770646.662
+ 25.300 15.100
+ -1027086.819 3 -800326.815 2 24046139.108 24046140.280 24046138.270
+ 23.800 12.600
+ -7761113.585 5 -6047613.012 3 23213091.171 23213091.469 23213090.101
+ 33.600 23.000
+ -21093893.130 7 -16436791.774 7 20706125.824 20706125.116 20706125.293
+ 47.000 47.900
+ -7682154.353 4 -5986108.353 4 23307527.416 23307528.856 23307526.192
+ 29.200 25.600
+ -24162794.269 6 -18828149.725 7 20325766.542 20325764.745 20325765.801
+ 41.300 47.400
+ -13311788.937 7 -10372817.456 5 21954762.185 21954760.929 21954761.517
+ 43.000 34.000
+ -18613266.460 7 -14503827.122 6 20901125.225 20901125.415 20901124.345
+ 44.800 40.300
+ 06 1 1 17 41 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9800380.600 7 -7636654.080 6 21485865.690 21485865.828 21485864.511
+ 43.800 41.300
+ -3756011.204 4 -2926760.917 3 23748934.267 23748936.706 23748934.145
+ 26.500 19.300
+ -1100707.909 4 -857693.930 3 24032130.014 24032131.971 24032129.110
+ 27.600 21.100
+ -7831137.351 5 -6102176.923 3 23199765.984 23199766.397 23199764.798
+ 33.600 23.000
+ -21131828.806 7 -16466352.027 7 20698907.009 20698906.188 20698906.521
+ 47.000 47.800
+ -7568964.083 4 -5897908.226 4 23329066.259 23329068.502 23329065.367
+ 28.100 25.900
+ -24145828.041 6 -18814929.284 7 20328995.213 20328993.265 20328994.395
+ 41.400 47.300
+ -13233654.040 7 -10311933.160 5 21969630.946 21969629.343 21969630.113
+ 42.900 33.000
+ -18669726.417 7 -14547821.856 6 20890381.064 20890381.433 20890380.154
+ 44.600 40.500
+ 06 1 1 17 42 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9851838.550 7 -7676751.140 6 21476073.319 21476073.820 21476072.231
+ 43.900 41.600
+ -3869958.090 4 -3015550.657 3 23727250.785 23727253.091 23727250.640
+ 27.100 19.300
+ -1173839.781 4 -914679.754 3 24018213.451 24018214.838 24018212.275
+ 27.100 21.100
+ -7900781.531 5 -6156445.060 3 23186512.989 23186513.589 23186511.946
+ 33.800 23.400
+ -21169456.955 7 -16495672.645 7 20691746.416 20691745.717 20691745.976
+ 47.000 47.800
+ -7455607.480 5 -5809578.495 4 23350637.698 23350639.404 23350636.837
+ 30.400 24.600
+ -24128386.610 6 -18801338.561 7 20332314.247 20332312.221 20332313.330
+ 41.200 47.300
+ -13155189.473 7 -10250791.971 5 21984561.965 21984560.789 21984561.306
+ 42.600 33.600
+ -18725688.846 7 -14591428.909 6 20879731.738 20879732.116 20879730.806
+ 44.600 40.600
+ 06 1 1 17 42 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9903083.637 7 -7716682.341 6 21466321.980 21466321.894 21466320.953
+ 44.200 41.100
+ -3983746.232 4 -3104216.673 3 23705598.576 23705599.886 23705597.605
+ 26.500 19.900
+ -1246480.254 5 -971282.641 3 24004390.230 24004391.445 24004389.469
+ 30.100 23.000
+ -7970043.100 5 -6210415.055 3 23173333.664 23173333.566 23173332.221
+ 34.900 23.800
+ -21206776.865 7 -16524753.084 8 20684644.977 20684644.008 20684644.399
+ 47.200 48.000
+ -7342087.962 4 -5721121.818 4 23372239.552 23372241.594 23372238.732
+ 27.100 24.200
+ -24110469.421 6 -18787377.119 7 20335723.618 20335721.731 20335722.799
+ 41.500 47.100
+ -13076397.489 7 -10189395.654 5 21999555.940 21999554.360 21999555.208
+ 42.600 33.400
+ -18781152.613 7 -14634647.394 6 20869177.198 20869177.672 20869176.318
+ 44.500 40.400
+ 06 1 1 17 43 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -9954115.401 7 -7756447.318 6 21456611.093 21456610.877 21456609.821
+ 44.100 41.300
+ -4097373.343 4 -3192757.230 3 23683974.986 23683977.214 23683974.574
+ 24.600 19.300
+ -1318626.632 5 -1027500.585 4 23990661.224 23990662.954 23990660.444
+ 30.400 25.300
+ -8038919.335 5 -6264084.788 3 23160226.780 23160226.695 23160225.122
+ 33.800 23.400
+ -21243788.621 7 -16553593.397 8 20677601.791 20677600.969 20677601.364
+ 47.400 48.100
+ -7228408.804 3 -5632540.719 4 23393872.317 23393874.087 23393870.937
+ 23.800 24.600
+ -24092076.377 6 -18773044.878 7 20339224.039 20339221.883 20339223.020
+ 41.600 47.100
+ -12997280.283 7 -10127745.903 5 22014611.269 22014609.769 22014610.613
+ 42.500 32.800
+ -18836116.490 7 -14677476.355 6 20858717.979 20858718.305 20858717.092
+ 44.700 40.700
+ 06 1 1 17 43 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10004933.600 7 -7796045.882 6 21446940.535 21446940.441 21446939.323
+ 43.900 41.300
+ -4210837.331 3 -3281170.605 4 23662383.534 23662386.191 23662383.033
+ 23.800 24.600
+ -1390277.184 4 -1083332.111 4 23977026.546 23977028.324 23977025.514
+ 27.400 26.200
+ -8107407.124 5 -6317451.839 3 23147192.696 23147193.344 23147192.030
+ 33.900 23.000
+ -21280491.684 7 -16582193.167 8 20670617.523 20670616.518 20670616.869
+ 47.100 48.000
+ -7114573.141 4 -5543837.700 3 23415534.752 23415536.056 23415533.582
+ 27.100 22.100
+ -24073206.656 6 -18758341.204 7 20342814.753 20342812.711 20342813.776
+ 41.300 47.100
+ -12917840.268 7 -10065844.621 5 22029728.505 22029726.984 22029727.621
+ 42.200 33.200
+ -18890579.553 7 -14719915.065 6 20848354.206 20848354.307 20848353.205
+ 44.800 40.700
+ 06 1 1 17 44 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10055537.933 7 -7835477.801 6 21437310.723 21437310.663 21437309.556
+ 44.000 41.300
+ -4324135.838 4 -3369455.042 3 23640823.471 23640825.928 23640822.856
+ 24.900 22.600
+ -1461428.758 4 -1138774.832 4 23963485.889 23963489.021 23963485.261
+ 27.100 28.400
+ -8175504.047 5 -6370514.320 3 23134234.997 23134234.582 23134233.545
+ 32.700 19.900
+ -21316885.960 7 -16610552.333 7 20663691.887 20663690.759 20663691.381
+ 47.300 47.900
+ -7000583.974 4 -5455015.048 3 23437225.574 23437227.853 23437224.951
+ 28.400 21.600
+ -24053859.877 6 -18743265.798 7 20346496.171 20346494.268 20346495.268
+ 41.500 47.000
+ -12838079.724 7 -10003693.569 5 22044905.786 22044904.675 22044905.297
+ 42.200 32.800
+ -18944540.459 7 -14761962.488 6 20838085.667 20838085.889 20838084.696
+ 44.800 40.700
+ 06 1 1 17 44 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10105928.073 7 -7874742.815 6 21427721.684 21427721.749 21427720.557
+ 44.200 41.400
+ -4437266.738 3 -3457608.848 4 23619294.958 23619297.722 23619294.328
+ 23.800 24.600
+ -1532079.126 4 -1193827.032 4 23950042.394 23950044.142 23950041.405
+ 25.900 28.600
+ -8243207.108 5 -6423269.896 3 23121351.154 23121351.328 23121350.076
+ 33.100 21.600
+ -21352971.350 7 -16638670.809 8 20656825.038 20656823.929 20656824.507
+ 47.400 48.000
+ -6886444.510 4 -5366075.320 3 23458946.055 23458947.758 23458944.931
+ 27.400 22.100
+ -24034036.184 6 -18727818.765 7 20350268.419 20350266.577 20350267.436
+ 41.400 47.000
+ -12758000.941 7 -9941294.534 5 22060144.648 22060143.274 22060143.868
+ 42.100 32.700
+ -18997998.302 7 -14803617.915 6 20827913.125 20827913.206 20827912.076
+ 45.100 41.000
+ 06 1 1 17 45 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10156103.770 7 -7913840.732 6 21418173.457 21418173.781 21418172.394
+ 44.100 41.800
+ -4550227.729 4 -3545630.204 4 23597799.831 23597801.546 23597799.358
+ 25.600 24.200
+ -1602226.260 3 -1248487.019 4 23936693.605 23936695.014 23936693.051
+ 23.400 26.500
+ -8310513.315 5 -6475716.217 3 23108543.510 23108543.494 23108542.343
+ 33.200 23.000
+ -21388747.163 7 -16666548.048 8 20650017.196 20650016.141 20650016.558
+ 47.400 48.100
+ -6772158.013 4 -5277020.973 3 23480693.698 23480695.881 23480693.094
+ 28.100 23.000
+ -24013734.858 6 -18711999.559 7 20354131.596 20354129.816 20354130.691
+ 41.600 47.000
+ -12677606.231 6 -9878649.324 5 22075443.127 22075442.326 22075442.372
+ 41.600 33.100
+ -19050951.727 7 -14844880.292 6 20817836.241 20817836.386 20817835.380
+ 45.100 40.700
+ 06 1 1 17 45 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10206064.783 7 -7952771.363 6 21408666.550 21408666.285 21408665.361
+ 44.600 41.800
+ -4663016.704 4 -3633517.544 3 23576336.502 23576338.518 23576336.027
+ 25.900 23.400
+ -1671867.377 3 -1302752.734 4 23923441.126 23923442.968 23923440.136
+ 19.300 25.600
+ -8377419.946 5 -6527851.197 3 23095811.926 23095811.359 23095810.213
+ 33.500 21.600
+ -21424213.320 7 -16694184.006 8 20643267.958 20643267.058 20643267.458
+ 47.400 48.100
+ -6657727.891 4 -5187854.728 3 23502469.440 23502471.627 23502468.532
+ 27.400 21.600
+ -23992955.211 6 -18695807.633 7 20358085.987 20358084.061 20358084.976
+ 41.600 46.900
+ -12596897.752 6 -9815759.617 5 22090800.944 22090800.543 22090800.458
+ 41.300 33.200
+ -19103399.638 7 -14885748.764 6 20807855.791 20807855.768 20807854.852
+ 45.100 40.900
+ 06 1 1 17 46 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10255810.742 7 -7991534.431 6 21399200.038 21399199.975 21399198.912
+ 44.500 41.800
+ -4775631.415 4 -3721269.117 3 23554906.093 23554908.079 23554905.867
+ 25.300 22.600
+ -1741000.293 3 -1356622.438 4 23910283.972 23910289.701 23910283.699
+ 18.600 24.200
+ -8443924.003 5 -6579672.476 3 23083154.916 23083156.115 23083154.657
+ 33.600 23.000
+ -21459369.699 7 -16721578.579 8 20636578.017 20636576.940 20636577.506
+ 47.400 48.100
+ -6543156.988 4 -5098578.825 3 23524271.290 23524273.800 23524270.349
+ 26.500 23.000
+ -23971697.087 6 -18679242.867 7 20362130.992 20362129.368 20362130.175
+ 41.700 46.800
+ -12515878.107 6 -9752627.436 5 22106219.086 22106217.961 22106218.275
+ 41.400 32.800
+ -19155340.876 7 -14926222.426 6 20797971.660 20797971.663 20797970.724
+ 45.000 40.900
+ 06 1 1 17 46 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10305341.367 7 -8030129.697 6 21389774.616 21389774.693 21389773.455
+ 44.500 41.900
+ -4888069.589 4 -3808883.100 3 23533510.269 23533512.089 23533509.472
+ 25.300 23.400
+ -1809622.279 3 -1410093.985 4 23897226.523 23897228.334 23897225.708
+ 19.900 24.900
+ -8510023.061 5 -6631178.174 3 23070578.066 23070577.769 23070576.603
+ 34.800 21.600
+ -21494215.562 7 -16748731.186 8 20629947.069 20629946.027 20629946.497
+ 47.400 48.100
+ -6428448.836 4 -5009195.931 4 23546099.874 23546102.577 23546098.864
+ 27.100 24.200
+ -23949960.147 6 -18662304.996 7 20366267.500 20366265.818 20366266.651
+ 41.700 46.700
+ -12434549.579 6 -9689254.588 5 22121694.991 22121694.513 22121694.451
+ 41.500 33.000
+ -19206774.401 7 -14966300.475 6 20788184.039 20788184.271 20788183.140
+ 45.000 41.000
+ 06 1 1 17 47 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10354656.261 7 -8068556.864 7 21380390.500 21380390.375 21380389.335
+ 44.600 42.000
+ -5000329.144 4 -3896357.913 2 23512147.506 23512148.698 23512147.058
+ 26.800 17.800
+ -1877731.376 3 -1463165.988 3 23884266.494 23884268.205 23884265.592
+ 23.800 21.600
+ -8575713.851 5 -6682365.747 4 23058076.983 23058077.211 23058075.978
+ 34.500 24.600
+ -21528751.283 7 -16775642.130 8 20623375.114 20623374.178 20623374.643
+ 47.300 48.300
+ -6313606.716 4 -4919708.662 4 23567953.499 23567955.946 23567952.723
+ 28.400 24.600
+ -23927744.036 6 -18644993.745 7 20370495.175 20370493.357 20370494.185
+ 41.900 46.700
+ -12352914.447 6 -9625642.812 5 22137230.023 22137228.984 22137229.429
+ 41.800 32.400
+ -19257699.304 7 -15005982.195 6 20778493.315 20778493.611 20778492.418
+ 44.800 41.100
+ 06 1 1 17 47 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10403755.271 7 -8106815.808 7 21371047.149 21371047.154 21371046.018
+ 44.800 42.200
+ -5112407.853 4 -3983691.829 3 23490818.907 23490821.333 23490818.648
+ 24.600 21.100
+ -1945324.919 4 -1515836.227 3 23871404.109 23871405.693 23871403.285
+ 26.500 19.900
+ -8640993.709 5 -6733233.089 4 23045654.671 23045655.213 23045653.654
+ 34.500 24.900
+ -21562976.498 7 -16802311.121 8 20616862.285 20616861.319 20616861.644
+ 47.200 48.300
+ -6198633.412 4 -4830119.170 3 23589832.301 23589834.869 23589831.366
+ 25.600 23.400
+ -23905048.673 6 -18627309.052 7 20374813.879 20374812.117 20374813.037
+ 41.700 46.600
+ -12270974.768 6 -9561793.746 5 22152822.361 22152821.700 22152821.814
+ 41.400 33.000
+ -19308114.643 7 -15045266.854 6 20768899.628 20768899.804 20768898.716
+ 45.100 41.200
+ 06 1 1 17 48 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10452637.941 7 -8144906.174 7 21361744.803 21361745.061 21361743.786
+ 44.800 42.200
+ -5224303.498 4 -4070883.089 3 23469526.644 23469528.209 23469525.791
+ 25.600 22.600
+ -2012401.056 5 -1568103.366 3 23858640.058 23858640.800 23858639.383
+ 30.200 18.600
+ -8705860.058 5 -6783778.241 4 23033312.205 23033311.589 23033310.384
+ 35.100 24.600
+ -21596890.580 7 -16828737.665 8 20610408.699 20610407.644 20610408.134
+ 47.200 48.400
+ -6083532.329 4 -4740430.128 4 23611736.037 23611738.030 23611734.557
+ 25.900 24.200
+ -23881873.474 7 -18609250.463 7 20379224.119 20379222.276 20379223.191
+ 42.000 46.600
+ -12188733.143 6 -9497709.387 5 22168472.782 22168471.602 22168472.057
+ 41.300 32.400
+ -19358019.444 7 -15084153.697 6 20759403.114 20759403.264 20759402.135
+ 44.800 41.300
+ 06 1 1 17 48 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10501304.095 7 -8182827.832 6 21352484.047 21352483.951 21352482.995
+ 44.900 41.900
+ -5336013.987 4 -4157930.079 4 23448268.861 23448270.536 23448268.511
+ 27.400 24.200
+ -2078956.909 4 -1619965.012 3 23845975.411 23845976.358 23845974.417
+ 26.800 21.600
+ -8770309.932 5 -6833998.858 4 23021046.106 23021046.970 23021045.484
+ 34.900 25.300
+ -21630493.561 7 -16854921.804 8 20604014.414 20604013.296 20604013.753
+ 47.400 48.600
+ -5968306.614 4 -4650643.947 4 23633662.419 23633664.828 23633661.324
+ 26.500 24.200
+ -23858218.245 7 -18590817.822 7 20383725.523 20383723.705 20383724.609
+ 42.100 46.300
+ -12106191.855 6 -9433391.532 5 22184179.687 22184178.521 22184178.984
+ 40.900 31.500
+ -19407412.504 7 -15122641.775 6 20750003.628 20750004.095 20750002.783
+ 44.800 41.300
+ 06 1 1 17 49 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10549753.303 7 -8220580.447 6 21343264.520 21343264.374 21343263.352
+ 44.800 41.900
+ -5447536.964 4 -4244830.975 3 23427046.411 23427048.145 23427046.059
+ 27.400 23.400
+ -2144990.167 4 -1671419.414 1 23833408.879 23833409.863 23833408.079
+ 26.200 9.000
+ -8834340.665 5 -6883892.885 3 23008862.665 23008862.096 23008860.976
+ 34.600 23.000
+ -21663784.663 7 -16880862.915 8 20597679.104 20597678.259 20597678.547
+ 47.300 48.700
+ -5852959.282 4 -4560763.027 3 23655612.588 23655614.810 23655611.449
+ 25.900 23.000
+ -23834083.005 6 -18572011.150 7 20388318.508 20388316.437 20388317.453
+ 41.900 46.300
+ -12023353.182 6 -9368841.946 5 22199943.904 22199942.170 22199942.938
+ 40.900 31.300
+ -19456292.783 7 -15160730.285 6 20740702.025 20740702.518 20740701.125
+ 44.900 41.500
+ 06 1 1 17 49 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10597985.479 7 -8258163.947 7 21334086.249 21334086.150 21334085.163
+ 45.100 42.200
+ -5558870.352 4 -4331584.144 4 23405860.416 23405862.023 23405859.685
+ 26.500 24.200
+ -2210498.508 4 -1722464.930 2 23820942.713 23820944.145 23820941.984
+ 28.100 16.100
+ -8897949.543 5 -6933458.206 3 22996757.710 22996757.267 22996756.502
+ 33.900 22.600
+ -21696764.158 7 -16906561.215 8 20591403.455 20591402.275 20591402.767
+ 47.300 48.700
+ -5737493.652 4 -4470789.905 3 23677584.328 23677587.350 23677583.286
+ 24.200 23.800
+ -23809467.283 7 -18552830.071 7 20393002.531 20393000.644 20393001.673
+ 42.300 46.100
+ -11940219.580 6 -9304062.548 5 22215763.080 22215762.201 22215762.610
+ 41.300 31.300
+ -19504659.656 7 -15198418.741 6 20731498.020 20731498.474 20731497.214
+ 45.000 41.400
+ 06 1 1 17 50 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10646000.071 7 -8295577.895 7 21324949.372 21324949.511 21324948.266
+ 44.900 42.600
+ -5670011.784 3 -4418187.740 3 23384710.194 23384712.647 23384709.806
+ 23.800 23.800
+ -2275480.346 4 -1773100.096 3 23808577.903 23808578.316 23808576.787
+ 25.600 19.300
+ -8961134.081 5 -6982692.863 3 22984733.926 22984733.753 22984732.755
+ 34.700 23.400
+ -21729431.863 7 -16932016.563 8 20585186.933 20585185.786 20585186.300
+ 47.200 48.500
+ -5621912.891 4 -4380727.093 3 23699579.666 23699581.498 23699578.597
+ 27.100 22.600
+ -23784370.937 7 -18533274.484 7 20397778.370 20397776.383 20397777.438
+ 42.100 46.200
+ -11856792.951 6 -9239054.819 5 22231639.096 22231637.663 22231638.326
+ 40.600 31.600
+ -19552512.092 7 -15235706.341 6 20722392.360 20722392.455 20722391.378
+ 44.800 41.300
+ 06 1 1 17 50 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10693796.944 7 -8332822.191 7 21315853.995 21315853.925 21315852.795
+ 44.800 42.300
+ -5780959.254 4 -4504640.206 3 23363598.051 23363599.540 23363597.815
+ 27.900 23.400
+ -2339932.772 4 -1823322.700 2 23796312.456 23796313.506 23796311.428
+ 28.100 17.800
+ -9023891.101 5 -7031594.391 4 22972791.871 22972791.881 22972790.376
+ 34.500 24.600
+ -21761787.563 7 -16957228.784 8 20579029.869 20579028.731 20579029.246
+ 47.100 48.700
+ -5506220.184 4 -4290577.039 3 23721594.690 23721597.006 23721594.092
+ 26.500 19.300
+ -23758793.648 7 -18513344.135 7 20402645.664 20402643.494 20402644.713
+ 42.500 46.000
+ -11773075.940 6 -9173820.812 5 22247570.110 22247568.744 22247569.277
+ 40.900 31.800
+ -19599849.245 7 -15272592.420 6 20713384.199 20713384.439 20713383.282
+ 44.900 41.600
+ 06 1 1 17 51 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10741375.666 7 -8369896.509 7 21306800.043 21306799.991 21306798.932
+ 45.000 42.400
+ -5891710.452 4 -4590939.744 3 23342522.375 23342524.277 23342522.106
+ 29.500 23.800
+ -2403853.984 4 -1873131.446 3 23784148.751 23784150.078 23784147.838
+ 27.900 21.100
+ -9086218.006 5 -7080160.779 4 22960930.599 22960931.470 22960929.928
+ 35.100 24.900
+ -21793830.448 7 -16982197.255 8 20572932.080 20572931.229 20572931.549
+ 47.000 48.700
+ -5390418.491 4 -4200342.009 3 23743630.754 23743633.871 23743630.064
+ 27.100 22.600
+ -23732735.075 7 -18493038.761 7 20407604.347 20407602.321 20407603.360
+ 42.500 46.000
+ -11689070.711 6 -9108362.232 5 22263555.593 22263554.284 22263554.890
+ 40.800 31.300
+ -19646669.869 7 -15309076.005 6 20704474.475 20704474.813 20704473.634
+ 45.100 41.800
+ 06 1 1 17 51 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10788736.059 7 -8406800.703 7 21297787.760 21297787.483 21297786.592
+ 45.200 42.300
+ -6002263.245 4 -4677084.694 4 23321484.500 23321486.782 23321484.361
+ 27.600 24.200
+ -2467241.597 4 -1922524.298 3 23772086.638 23772087.777 23772085.755
+ 27.100 23.800
+ -9148112.184 5 -7128389.974 4 22949152.863 22949153.298 22949151.504
+ 34.400 24.900
+ -21825560.604 7 -17006922.038 8 20566894.081 20566893.012 20566893.492
+ 47.100 48.600
+ -5274511.127 4 -4110024.691 3 23765687.837 23765690.026 23765687.009
+ 28.100 19.900
+ -23706195.286 7 -18472358.416 7 20412654.821 20412652.760 20412653.718
+ 42.600 46.000
+ -11604779.607 6 -9042680.883 5 22279595.716 22279594.367 22279595.064
+ 40.900 30.600
+ -19692973.291 7 -15345156.577 6 20695663.208 20695663.621 20695662.428
+ 45.100 41.900
+ 06 1 1 17 52 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10835877.748 7 -8443534.468 7 21288816.807 21288816.820 21288815.764
+ 45.000 42.700
+ -6112615.456 4 -4763073.334 4 23300485.997 23300487.112 23300485.098
+ 27.600 24.200
+ -2530093.360 4 -1971499.658 3 23760126.467 23760127.395 23760125.677
+ 29.200 23.000
+ -9209570.925 5 -7176279.878 4 22937457.374 22937457.994 22937456.572
+ 34.600 24.600
+ -21856977.774 7 -17031402.943 8 20560915.577 20560914.543 20560914.988
+ 47.000 48.600
+ -5158501.452 4 -4019627.559 3 23787763.326 23787766.408 23787762.521
+ 26.800 23.800
+ -23679174.055 7 -18451302.920 7 20417796.701 20417794.694 20417795.708
+ 42.700 46.000
+ -11520204.821 6 -8976778.469 5 22295689.657 22295688.582 22295688.891
+ 40.000 31.300
+ -19738758.716 7 -15380833.520 6 20686950.739 20686950.908 20686949.832
+ 45.000 41.900
+ 06 1 1 17 52 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10882800.338 7 -8480097.518 7 21279887.784 21279887.648 21279886.680
+ 45.200 42.700
+ -6222765.123 4 -4848904.127 4 23279524.760 23279526.590 23279524.022
+ 25.600 25.300
+ -2592407.055 4 -2020055.721 4 23748268.295 23748269.447 23748267.384
+ 27.100 24.600
+ -9270591.407 5 -7223828.279 4 22925845.704 22925846.442 22925844.714
+ 35.400 24.900
+ -21888081.623 7 -17055639.696 8 20554996.742 20554995.769 20554996.213
+ 47.200 48.800
+ -5042392.091 3 -3929152.877 3 23809858.483 23809860.892 23809857.100
+ 23.000 18.600
+ -23651671.087 7 -18429872.042 7 20423030.203 20423028.294 20423029.285
+ 42.800 45.800
+ -11435349.001 6 -8910657.103 5 22311837.334 22311836.307 22311836.529
+ 39.900 31.300
+ -19784025.455 7 -15416106.287 6 20678336.826 20678336.874 20678335.908
+ 45.200 41.800
+ 06 1 1 17 53 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10929503.544 7 -8516489.614 7 21271000.542 21271000.348 21270999.316
+ 45.100 42.700
+ -6332709.670 4 -4934575.090 4 23258602.290 23258604.569 23258601.962
+ 27.100 25.600
+ -2654180.798 4 -2068191.035 4 23736512.604 23736514.684 23736511.972
+ 25.900 26.500
+ -9331171.286 5 -7271033.352 4 22914318.538 22914318.539 22914316.799
+ 35.900 26.200
+ -21918871.904 7 -17079632.112 8 20549137.316 20549136.431 20549136.792
+ 46.900 48.700
+ -4926186.862 4 -3838603.447 3 23831972.377 23831974.268 23831971.206
+ 25.600 19.900
+ -23623686.322 7 -18408065.741 7 20428355.898 20428353.685 20428354.742
+ 42.600 45.700
+ -11350214.051 6 -8844318.216 5 22328037.772 22328036.965 22328037.105
+ 40.100 31.500
+ -19828772.656 7 -15450974.225 6 20669821.547 20669821.724 20669820.653
+ 45.200 41.900
+ 06 1 1 17 53 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -10975987.245 7 -8552710.667 7 21262155.106 21262154.768 21262153.898
+ 45.200 42.900
+ -6442447.188 4 -5020084.761 3 23237720.184 23237721.412 23237719.913
+ 28.800 22.600
+ -2715412.278 4 -2115903.841 3 23724860.479 23724862.338 23724859.506
+ 25.900 23.000
+ -9391307.927 5 -7317893.047 4 22902873.723 22902874.646 22902873.267
+ 35.700 24.200
+ -21949348.576 7 -17103380.159 8 20543337.839 20543336.938 20543337.363
+ 47.100 48.700
+ -4809888.519 4 -3747981.459 3 23854102.646 23854105.115 23854101.623
+ 24.200 21.600
+ -23595219.532 7 -18385883.837 7 20433772.960 20433770.753 20433771.833
+ 42.800 45.600
+ -11264802.408 6 -8777763.732 5 22344290.941 22344290.393 22344290.323
+ 39.400 31.000
+ -19872999.471 7 -15485436.661 7 20661405.404 20661405.628 20661404.494
+ 45.300 42.100
+ 06 1 1 17 54 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11022250.847 7 -8588760.217 7 21253351.177 21253351.057 21253350.052
+ 45.300 42.700
+ -6551975.660 4 -5105431.539 4 23216877.900 23216879.395 23216877.307
+ 29.500 24.900
+ -2776099.705 4 -2163192.675 4 23713312.429 23713313.859 23713311.676
+ 28.100 26.200
+ -9450998.418 6 -7364405.092 4 22891515.977 22891515.506 22891514.602
+ 36.000 25.900
+ -21979511.185 7 -17126883.487 8 20537598.198 20537597.317 20537597.668
+ 47.300 49.100
+ -4693499.928 4 -3657289.154 3 23876250.443 23876252.962 23876249.919
+ 24.200 19.300
+ -23566270.827 7 -18363326.418 7 20439281.473 20439279.542 20439280.474
+ 42.700 45.600
+ -11179116.342 6 -8710995.411 5 22360596.211 22360595.972 22360595.799
+ 39.300 31.300
+ -19916705.070 7 -15519492.958 7 20653088.425 20653088.719 20653087.584
+ 45.100 42.200
+ 06 1 1 17 54 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11068294.167 7 -8624638.124 7 21244589.628 21244589.259 21244588.287
+ 45.000 42.700
+ -6661292.545 4 -5190613.468 3 23196074.980 23196076.829 23196074.756
+ 27.900 23.400
+ -2836240.385 4 -2210055.479 3 23701868.102 23701869.126 23701867.383
+ 28.100 23.800
+ -9510240.277 6 -7410567.558 4 22880242.302 22880241.825 22880241.286
+ 36.600 24.900
+ -22009359.570 7 -17150141.957 8 20531918.291 20531917.311 20531917.740
+ 47.200 49.000
+ -4577024.436 3 -3566529.139 3 23898416.711 23898418.534 23898415.089
+ 22.600 23.400
+ -23536840.136 7 -18340393.420 7 20444881.813 20444880.078 20444880.922
+ 42.900 45.700
+ -11093158.165 6 -8644015.059 5 22376953.788 22376952.978 22376953.087
+ 39.000 30.600
+ -19959888.568 7 -15553142.430 7 20644871.014 20644871.196 20644870.112
+ 45.100 42.500
+ 06 1 1 17 55 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11114116.927 7 -8660344.156 7 21235869.484 21235869.414 21235868.416
+ 45.100 42.700
+ -6770395.982 4 -5275629.021 3 23175313.475 23175314.687 23175312.871
+ 26.200 23.800
+ -2895832.793 4 -2256491.080 4 23690528.372 23690528.982 23690527.340
+ 29.000 25.300
+ -9569030.857 6 -7456378.369 4 22869055.423 22869054.543 22869054.201
+ 36.800 25.600
+ -22038893.446 7 -17173155.355 8 20526298.220 20526297.082 20526297.549
+ 47.200 49.100
+ -4460465.105 4 -3475703.802 3 23920596.666 23920598.332 23920595.338
+ 24.600 18.600
+ -23506927.048 7 -18317084.534 7 20450574.136 20450572.346 20450573.206
+ 42.800 45.600
+ -11006930.011 6 -8576824.332 5 22393362.804 22393361.833 22393362.139
+ 39.800 31.100
+ -20002549.440 7 -15586384.659 7 20636753.007 20636753.027 20636752.035
+ 45.200 42.200
+ 06 1 1 17 55 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11159718.724 7 -8695878.013 7 21227191.889 21227191.809 21227190.761
+ 45.200 43.000
+ -6879283.666 4 -5360476.445 4 23154593.191 23154594.663 23154592.524
+ 29.200 26.800
+ -2954874.947 4 -2302497.878 4 23679292.410 23679293.561 23679291.562
+ 28.100 25.600
+ -9627367.673 5 -7501835.600 4 22857953.753 22857953.960 22857952.507
+ 35.400 25.300
+ -22068112.658 7 -17195923.566 8 20520738.017 20520736.932 20520737.423
+ 47.200 49.200
+ -4343825.216 3 -3384815.660 3 23942792.252 23942794.496 23942791.110
+ 23.800 19.900
+ -23476531.571 7 -18293399.759 7 20456358.097 20456356.333 20456357.295
+ 43.000 45.300
+ -10920434.463 6 -8509425.249 5 22409822.125 22409821.500 22409821.360
+ 38.900 31.500
+ -20044686.854 7 -15619218.988 7 20628734.475 20628734.512 20628733.490
+ 45.200 42.100
+ 06 1 1 17 56 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11205099.231 7 -8731239.430 7 21218556.206 21218556.222 21218555.000
+ 45.000 43.300
+ -6987953.459 4 -5445154.128 4 23133913.844 23133914.984 23133913.436
+ 29.000 25.600
+ -3013363.843 4 -2348073.591 4 23668162.208 23668163.478 23668161.388
+ 25.300 24.600
+ -9685248.039 5 -7546937.133 4 22846939.006 22846939.645 22846938.253
+ 35.900 25.300
+ -22097017.393 7 -17218446.729 8 20515237.506 20515236.589 20515236.952
+ 47.300 49.400
+ -4227107.912 4 -3293867.227 3 23965002.407 23965005.338 23965001.416
+ 25.900 21.600
+ -23445653.968 7 -18269339.295 7 20462233.885 20462232.195 20462233.126
+ 43.000 45.300
+ -10833673.709 6 -8441819.514 5 22426332.158 22426331.520 22426331.572
+ 39.700 31.300
+ -20086299.940 7 -15651644.752 7 20620815.557 20620815.710 20620814.693
+ 44.800 42.400
+ 06 1 1 17 56 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11250258.080 7 -8766428.124 7 21209962.589 21209962.731 21209961.467
+ 45.000 43.200
+ -7096403.196 5 -5529660.315 4 23113276.511 23113277.454 23113276.155
+ 30.200 25.300
+ -3071298.538 4 -2393217.404 4 23657137.599 23657139.213 23657136.937
+ 25.600 27.400
+ -9742669.594 6 -7591681.177 4 22836012.435 22836012.154 22836011.236
+ 36.400 25.300
+ -22125606.749 7 -17240724.140 8 20509797.317 20509796.141 20509796.663
+ 47.400 49.400
+ -4110316.031 4 -3202860.665 3 23987226.521 23987229.786 23987226.029
+ 24.600 19.300
+ -23414293.959 7 -18244902.937 7 20468201.398 20468199.784 20468200.748
+ 43.100 45.100
+ -10746649.929 6 -8374008.806 5 22442892.396 22442891.386 22442891.787
+ 39.600 30.400
+ -20127388.198 7 -15683661.567 7 20612996.774 20612996.958 20612995.890
+ 44.900 42.400
+ 06 1 1 17 57 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11295195.097 7 -8801443.963 7 21201411.728 21201411.373 21201410.494
+ 45.400 43.200
+ -7204630.803 5 -5613993.423 4 23092681.125 23092682.521 23092680.869
+ 30.100 26.500
+ -3128676.394 3 -2437927.346 4 23646218.412 23646220.444 23646217.456
+ 23.400 25.600
+ -9799629.600 5 -7636065.573 3 22825173.005 22825172.801 22825171.907
+ 35.900 23.400
+ -22153880.577 7 -17262755.690 8 20504416.983 20504415.812 20504416.372
+ 47.500 49.300
+ -3993452.913 3 -3111798.580 4 24009465.272 24009469.241 24009464.229
+ 22.600 24.900
+ -23382451.592 7 -18220090.709 7 20474260.677 20474259.237 20474260.075
+ 43.100 45.000
+ -10659365.536 6 -8305995.038 5 22459502.058 22459501.265 22459501.313
+ 39.400 30.100
+ -20167951.003 7 -15715268.933 7 20605277.957 20605278.109 20605277.099
+ 45.100 42.200
+ 06 1 1 17 57 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11339909.827 7 -8836286.590 7 21192902.683 21192902.492 21192901.527
+ 45.400 43.300
+ -7312634.210 4 -5698151.803 4 23072128.315 23072130.004 23072127.973
+ 27.900 25.900
+ -3185495.476 4 -2482201.910 4 23635406.119 23635407.665 23635405.322
+ 25.900 24.600
+ -9856125.587 5 -7680088.389 4 22814422.547 22814422.171 22814421.030
+ 35.300 24.600
+ -22181838.432 7 -17284541.025 8 20499096.795 20499095.621 20499096.153
+ 47.500 49.400
+ -3876521.536 4 -3020683.397 3 24031716.697 24031719.792 24031715.850
+ 25.300 21.100
+ -23350126.956 7 -18194902.692 7 20480411.994 20480410.319 20480411.346
+ 43.400 44.900
+ -10571822.633 6 -8237779.836 5 22476160.893 22476160.159 22476160.301
+ 39.200 30.100
+ -20207987.727 7 -15746466.360 7 20597659.090 20597659.365 20597658.245
+ 45.000 42.500
+ 06 1 1 17 58 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11384402.077 7 -8870955.857 7 21184435.947 21184435.956 21184434.780
+ 45.200 43.500
+ -7420411.243 4 -5782133.800 4 23051618.959 23051620.798 23051618.445
+ 26.800 26.800
+ -3241754.571 4 -2526040.116 4 23624700.847 23624702.395 23624700.104
+ 29.200 27.100
+ -9912155.145 6 -7723747.742 4 22803760.398 22803760.659 22803759.117
+ 36.400 25.900
+ -22209480.375 7 -17306080.192 8 20493836.727 20493835.522 20493836.104
+ 47.400 49.500
+ -3759524.971 4 -2929517.332 3 24053980.174 24053983.434 24053979.591
+ 24.600 20.500
+ -23317319.813 7 -18169338.700 7 20486655.064 20486653.367 20486654.331
+ 43.300 44.800
+ -10484023.743 6 -8169365.155 5 22492868.846 22492867.966 22492867.941
+ 38.900 30.600
+ -20247497.481 7 -15777253.174 7 20590140.605 20590140.927 20590139.826
+ 44.800 42.400
+ 06 1 1 17 58 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11428671.322 7 -8905451.353 7 21176011.806 21176011.758 21176010.685
+ 45.100 43.500
+ -7527959.684 5 -5865937.664 4 23031153.157 23031154.968 23031152.911
+ 30.100 28.100
+ -3297450.642 4 -2569439.645 4 23614102.439 23614103.770 23614101.584
+ 29.000 26.800
+ -9967715.565 6 -7767041.538 4 22793187.365 22793187.683 22793186.185
+ 36.400 25.300
+ -22236806.101 7 -17327372.961 8 20488636.643 20488635.501 20488636.059
+ 47.500 49.400
+ -3642466.596 3 -2838303.119 3 24076256.315 24076259.552 24076255.260
+ 23.800 22.600
+ -23284030.420 7 -18143398.920 7 20492990.064 20492988.154 20492989.177
+ 43.200 44.800
+ -10395970.890 6 -8100752.586 4 22509624.484 22509623.721 22509623.991
+ 38.900 29.900
+ -20286479.987 7 -15807629.138 7 20582722.723 20582722.720 20582721.731
+ 44.900 42.300
+ 06 1 1 17 59 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11472717.294 7 -8939772.867 7 21167630.193 21167630.110 21167629.000
+ 45.400 43.500
+ -7635277.384 4 -5949561.718 4 23010731.529 23010733.026 23010731.022
+ 29.700 28.400
+ -3352582.387 5 -2612399.398 4 23603610.900 23603612.048 23603610.132
+ 30.400 25.300
+ -10022804.523 6 -7809967.944 4 22782703.924 22782704.028 22782703.009
+ 36.500 24.900
+ -22263815.724 7 -17348419.413 8 20483496.854 20483495.789 20483496.318
+ 47.400 49.600
+ -3525349.195 4 -2747042.900 2 24098543.166 24098545.425 24098542.320
+ 25.900 12.600
+ -23250258.700 7 -18117083.307 7 20499416.570 20499414.620 20499415.628
+ 43.300 44.500
+ -10307666.274 6 -8031943.842 4 22526428.734 22526427.689 22526427.734
+ 38.100 29.900
+ -20324934.709 7 -15837593.840 7 20575404.828 20575404.967 20575403.980
+ 44.800 42.400
+ 06 1 1 17 59 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11516539.705 7 -8973920.186 7 21159291.283 21159290.882 21159290.021
+ 45.400 43.400
+ -7742362.359 4 -6033004.419 4 22990353.530 22990355.203 22990353.403
+ 29.700 26.800
+ -3407148.299 4 -2654918.229 4 23593227.232 23593228.804 23593226.297
+ 28.600 26.200
+ -10077419.394 6 -7852524.915 4 22772311.312 22772311.059 22772310.156
+ 36.100 24.600
+ -22290508.790 7 -17369219.202 8 20478417.277 20478416.302 20478416.784
+ 47.500 49.600
+ -3408176.069 3 -2655739.244 3 24120841.364 24120843.878 24120839.928
+ 21.600 19.900
+ -23216004.874 7 -18090392.026 7 20505935.611 20505932.974 20505934.207
+ 43.200 44.600
+ -10219111.843 6 -7962940.409 4 22543279.349 22543278.830 22543278.962
+ 37.600 29.900
+ -20362861.178 7 -15867146.923 7 20568187.688 20568187.790 20568186.767
+ 44.900 42.400
+ 06 1 1 18 0 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11560138.218 7 -9007893.032 7 21150994.362 21150994.272 21150993.294
+ 45.500 43.400
+ -7849212.430 4 -6116264.098 4 22970021.153 22970022.173 22970020.625
+ 29.900 24.900
+ -3461145.762 4 -2696994.149 3 23582951.882 23582952.828 23582951.225
+ 29.200 22.600
+ -10131557.797 6 -7894710.637 4 22762009.648 22762008.841 22762008.159
+ 37.200 24.900
+ -22316884.970 7 -17389772.059 8 20473397.969 20473396.995 20473397.444
+ 47.500 49.600
+ -3290950.034 3 -2564394.388 3 24143147.908 24143151.216 24143146.526
+ 20.500 18.600
+ -23181268.837 7 -18063325.001 7 20512545.509 20512543.180 20512544.261
+ 43.400 44.600
+ -10130310.757 6 -7893744.791 4 22560178.348 22560177.272 22560177.519
+ 38.300 29.000
+ -20400258.736 7 -15896287.860 7 20561071.330 20561071.221 20561070.339
+ 45.000 42.400
+ 06 1 1 18 0 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11603512.495 7 -9041691.157 7 21142740.702 21142740.461 21142739.544
+ 45.500 43.600
+ -7955825.529 5 -6199339.135 4 22949733.270 22949733.832 22949732.757
+ 30.800 24.900
+ -3514573.055 4 -2738625.759 3 23572785.249 23572785.278 23572784.460
+ 27.900 19.300
+ -10185217.595 6 -7936523.401 4 22751798.011 22751798.066 22751797.049
+ 37.300 25.900
+ -22342943.863 7 -17410077.682 8 20468439.375 20468438.202 20468438.741
+ 47.600 49.600
+ -3173674.064 2 -2473010.647 2 24165465.073 24165468.085 24165463.798
+ 17.800 16.100
+ -23146050.799 7 -18035882.387 7 20519247.070 20519244.980 20519245.920
+ 43.200 44.800
+ -10041265.036 6 -7824358.554 4 22577122.971 22577122.065 22577122.369
+ 38.100 28.400
+ -20437126.848 7 -15925016.240 7 20554055.377 20554055.467 20554054.506
+ 44.800 42.500
+ 06 1 1 18 1 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11646662.226 7 -9075314.317 7 21134529.501 21134529.297 21134528.402
+ 45.500 43.600
+ -8062199.598 5 -6282227.935 4 22929490.484 22929491.398 22929490.244
+ 31.100 24.600
+ -3567428.249 4 -2779811.614 3 23562727.370 23562727.524 23562726.175
+ 28.100 19.900
+ -10238396.214 5 -7977961.224 4 22741678.251 22741678.066 22741676.875
+ 35.900 26.800
+ -22368685.471 7 -17430136.074 8 20463540.922 20463539.755 20463540.414
+ 47.800 49.800
+ -3056351.263 3 -2381590.343 3 24187791.028 24187793.748 24187790.076
+ 22.600 19.300
+ -23110350.747 7 -18008064.179 7 20526040.652 20526038.499 20526039.510
+ 43.500 44.700
+ -9951976.746 6 -7754783.286 4 22594114.049 22594112.955 22594113.414
+ 37.900 29.000
+ -20473464.798 7 -15953331.515 7 20547140.618 20547140.594 20547139.656
+ 44.900 42.600
+ 06 1 1 18 1 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11689586.996 7 -9108762.181 7 21126361.232 21126360.929 21126359.958
+ 45.300 43.600
+ -8168332.517 4 -6364928.795 4 22909293.932 22909295.225 22909293.353
+ 29.900 26.800
+ -3619709.837 4 -2820550.486 3 23552778.002 23552779.402 23552777.389
+ 28.100 22.600
+ -10291091.149 6 -8019022.134 4 22731650.597 22731650.754 22731649.475
+ 36.300 26.200
+ -22394109.657 7 -17449947.124 8 20458702.680 20458701.640 20458702.086
+ 47.600 49.800
+ -2938984.963 3 -2290136.221 2 24210124.769 24210127.701 24210123.492
+ 19.900 16.100
+ -23074168.948 7 -17979870.585 7 20532925.808 20532923.633 20532924.584
+ 43.500 44.400
+ -9862448.043 6 -7685020.693 4 22611150.436 22611149.860 22611149.808
+ 37.100 28.800
+ -20509272.123 7 -15981233.309 7 20540326.547 20540326.748 20540325.673
+ 45.100 42.700
+ 06 1 1 18 2 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11732286.510 7 -9142034.517 7 21118235.829 21118235.489 21118234.634
+ 45.500 43.600
+ -8274222.186 4 -6447440.112 4 22889143.512 22889145.055 22889143.121
+ 28.800 27.400
+ -3671416.024 3 -2860840.971 3 23542938.810 23542939.535 23542937.610
+ 23.400 21.100
+ -10343299.918 6 -8059704.237 4 22721716.030 22721715.382 22721714.551
+ 36.700 25.900
+ -22419215.840 7 -17469510.381 8 20453925.238 20453924.147 20453924.583
+ 47.600 49.900
+ -2821578.089 3 -2198650.471 2 24232466.221 24232469.204 24232465.050
+ 22.600 15.100
+ -23037505.215 7 -17951301.463 7 20539902.475 20539900.474 20539901.408
+ 43.600 44.300
+ -9772681.109 6 -7615072.463 4 22628232.764 22628231.973 22628232.172
+ 37.200 28.800
+ -20544548.635 7 -16008721.491 7 20533613.583 20533613.829 20533612.823
+ 45.100 42.700
+ 06 1 1 18 2 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11774760.412 7 -9175131.059 7 21110153.400 21110153.021 21110152.234
+ 45.600 43.800
+ -8379866.431 4 -6529760.161 4 22869040.315 22869041.658 22869039.801
+ 29.900 28.800
+ -3722544.835 4 -2900681.566 3 23533209.153 23533210.235 23533208.347
+ 25.600 22.100
+ -10395020.420 6 -8100005.874 4 22711873.547 22711873.553 22711872.533
+ 37.400 27.100
+ -22444003.934 7 -17488825.777 8 20449208.112 20449207.158 20449207.589
+ 47.800 50.000
+ -2704133.835 4 -2107135.499 2 24254815.029 24254818.576 24254814.387
+ 24.200 12.600
+ -23000360.282 7 -17922357.375 7 20546970.776 20546968.911 20546969.864
+ 43.700 44.000
+ -9682678.203 6 -7544940.365 4 22645360.239 22645358.963 22645359.492
+ 37.900 28.600
+ -20579293.771 7 -16035795.613 7 20527001.877 20527001.956 20527001.019
+ 45.200 42.600
+ 06 1 1 18 3 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11817008.335 7 -9208051.515 7 21102113.739 21102113.595 21102112.702
+ 45.800 44.000
+ -8485263.111 5 -6611887.339 4 22848983.796 22848984.930 22848983.586
+ 31.500 27.600
+ -3773095.059 4 -2940071.332 4 23523589.023 23523590.981 23523588.278
+ 25.600 24.200
+ -10446250.102 6 -8139925.042 4 22702125.275 22702124.964 22702123.917
+ 37.500 27.100
+ -22468473.933 7 -17507893.307 8 20444551.706 20444550.654 20444551.076
+ 47.700 50.000
+ -2586655.028 3 -2015593.667 2 24277171.391 24277173.948 24277170.510
+ 23.000 16.100
+ -22962733.913 7 -17893038.139 7 20554130.658 20554128.996 20554129.839
+ 43.600 44.100
+ -9592441.789 6 -7474626.310 4 22662531.324 22662530.668 22662530.506
+ 37.300 29.200
+ -20613506.816 7 -16062455.120 7 20520491.255 20520491.456 20520490.513
+ 45.100 42.700
+ 06 1 1 18 3 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11859029.985 7 -9240795.649 7 21094117.393 21094117.059 21094116.216
+ 45.700 43.900
+ -8590410.293 5 -6693820.108 4 22828974.991 22828975.971 22828974.537
+ 30.100 27.100
+ -3823064.089 4 -2979008.214 3 23514080.474 23514081.823 23514079.694
+ 25.600 21.600
+ -10496986.929 6 -8179460.186 4 22692470.350 22692469.734 22692469.000
+ 37.700 25.600
+ -22492625.676 7 -17526712.843 8 20439956.096 20439954.692 20439955.392
+ 47.900 50.100
+ -2469144.580 3 -1924027.201 2 24299532.513 24299535.902 24299531.971
+ 23.800 17.800
+ -22924626.191 7 -17863343.825 7 20561382.547 20561380.635 20561381.635
+ 43.700 43.900
+ -9501973.885 6 -7404131.885 4 22679746.665 22679745.991 22679746.216
+ 37.400 28.400
+ -20647187.769 7 -16088700.005 7 20514082.274 20514082.217 20514081.293
+ 44.900 42.700
+ 06 1 1 18 4 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11900824.880 7 -9273363.094 7 21086164.101 21086163.677 21086162.892
+ 45.800 43.900
+ -8695305.882 4 -6775556.835 4 22809013.876 22809014.743 22809013.330
+ 29.700 26.500
+ -3872450.927 4 -3017491.451 3 23504682.692 23504684.082 23504681.788
+ 27.900 22.600
+ -10547228.603 6 -8218609.501 4 22682909.077 22682908.743 22682907.990
+ 37.100 25.600
+ -22516458.863 8 -17545284.154 8 20435420.509 20435419.401 20435420.012
+ 48.000 50.100
+ -2351605.788 3 -1832438.596 3 24321900.189 24321902.976 24321898.915
+ 23.800 18.600
+ -22886037.623 7 -17833274.826 7 20568725.410 20568723.885 20568724.699
+ 43.600 44.000
+ -9411276.943 6 -7333458.979 4 22697005.837 22697005.061 22697005.062
+ 36.800 28.400
+ -20680336.159 7 -16114529.905 7 20507774.158 20507774.266 20507773.345
+ 45.100 42.900
+ 06 1 1 18 4 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11942392.697 7 -9305753.596 7 21078253.774 21078253.573 21078252.685
+ 45.800 43.800
+ -8799947.856 5 -6857095.910 4 22789100.208 22789102.102 22789100.186
+ 30.400 27.400
+ -3921253.549 4 -3055519.430 3 23495396.235 23495396.679 23495395.311
+ 27.900 19.900
+ -10596972.231 6 -8257370.734 4 22673444.017 22673443.074 22673442.288
+ 37.100 25.900
+ -22539972.871 7 -17563606.754 8 20430945.954 20430944.838 20430945.410
+ 47.900 50.100
+ -2234041.306 3 -1740830.040 3 24344272.775 24344274.973 24344271.180
+ 22.100 19.900
+ -22846968.353 7 -17802831.257 7 20576160.073 20576158.498 20576159.323
+ 43.500 43.800
+ -9320353.028 6 -7262609.220 4 22714308.638 22714307.553 22714307.832
+ 37.300 28.400
+ -20712951.430 7 -16139944.398 7 20501567.807 20501567.748 20501566.863
+ 45.000 42.800
+ 06 1 1 18 5 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -11983733.205 7 -9337966.971 7 21070386.864 21070386.771 21070385.820
+ 45.700 44.000
+ -8904334.054 5 -6938435.700 4 22769236.716 22769238.044 22769236.421
+ 31.300 27.400
+ -3969470.394 4 -3093090.997 4 23486220.680 23486221.785 23486219.816
+ 27.600 24.600
+ -10646215.934 6 -8295742.412 4 22664072.748 22664072.292 22664071.683
+ 37.700 25.900
+ -22563167.737 8 -17581680.672 8 20426532.133 20426530.974 20426531.567
+ 48.000 50.200
+ -2116454.528 3 -1649204.033 2 24366647.746 24366650.993 24366646.957
+ 23.400 13.900
+ -22807418.594 7 -17772013.277 7 20583686.337 20583684.577 20583685.451
+ 43.700 43.700
+ -9229204.435 6 -7191584.399 4 22731653.582 22731652.703 22731652.629
+ 36.400 28.400
+ -20745033.177 7 -16164943.147 7 20495462.755 20495462.757 20495461.876
+ 44.800 42.900
+ 06 1 1 18 5 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12024846.075 7 -9370002.965 7 21062563.542 21062563.324 21062562.401
+ 45.800 44.200
+ -9008462.528 5 -7019574.689 4 22749421.729 22749422.540 22749421.120
+ 31.000 26.200
+ -4017100.023 4 -3130204.952 3 23477156.678 23477157.770 23477155.880
+ 26.800 23.800
+ -10694957.391 6 -8333722.737 4 22654797.563 22654796.983 22654796.246
+ 37.500 26.500
+ -22586043.199 7 -17599505.700 8 20422179.018 20422177.897 20422178.410
+ 47.800 50.100
+ -1998848.389 3 -1557562.978 2 24389027.044 24389030.848 24389026.919
+ 21.100 16.100
+ -22767388.573 7 -17740821.066 7 20591303.661 20591302.000 20591302.916
+ 43.700 43.500
+ -9137833.556 6 -7120386.346 4 22749040.363 22749039.918 22749039.887
+ 36.000 29.200
+ -20776581.363 7 -16189526.149 7 20489459.235 20489459.389 20489458.322
+ 45.000 43.100
+ 06 1 1 18 6 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12065730.824 7 -9401861.200 7 21054783.584 21054783.196 21054782.368
+ 45.900 44.100
+ -9112331.147 5 -7100511.200 4 22729655.613 22729656.988 22729655.464
+ 30.200 26.500
+ -4064140.486 4 -3166859.825 4 23468205.289 23468206.952 23468204.657
+ 27.100 26.800
+ -10743194.435 6 -8371310.007 4 22645618.050 22645617.885 22645616.823
+ 37.000 26.200
+ -22608599.129 7 -17617081.744 8 20417886.806 20417885.565 20417886.200
+ 47.900 50.100
+ -1881225.808 3 -1465909.113 2 24411411.387 24411413.521 24411410.237
+ 21.100 15.100
+ -22726878.786 7 -17709255.015 7 20599012.537 20599010.766 20599011.690
+ 43.800 43.400
+ -9046242.233 6 -7049016.538 4 22766470.080 22766469.558 22766469.254
+ 36.200 29.200
+ -20807595.762 7 -16213693.197 7 20483557.400 20483557.579 20483556.557
+ 44.900 43.200
+ 06 1 1 18 6 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12106387.069 7 -9433541.377 7 21047046.834 21047046.475 21047045.661
+ 45.900 44.200
+ -9215937.755 5 -7181243.533 4 22709940.418 22709941.544 22709940.109
+ 31.800 28.400
+ -4110590.515 4 -3203054.598 4 23459366.159 23459367.362 23459365.318
+ 25.900 25.900
+ -10790924.946 6 -8408502.593 4 22636535.893 22636535.244 22636534.154
+ 37.200 26.800
+ -22630835.303 7 -17634408.633 8 20413655.369 20413654.082 20413654.757
+ 47.900 50.100
+ -1763589.543 3 -1374244.548 2 24433797.228 24433799.055 24433796.034
+ 21.100 16.100
+ -22685889.086 7 -17677315.004 7 20606812.347 20606810.898 20606811.594
+ 43.600 43.400
+ -8954432.885 5 -6977476.828 4 22783940.494 22783940.059 22783939.940
+ 35.800 28.800
+ -20838076.009 7 -16237444.032 7 20477757.097 20477757.352 20477756.259
+ 44.900 43.100
+ 06 1 1 18 7 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12146814.453 7 -9465043.222 7 21039353.764 21039353.391 21039352.608
+ 45.800 44.100
+ -9319280.463 5 -7261770.250 4 22690275.232 22690275.938 22690274.724
+ 33.000 29.500
+ -4156448.381 4 -3238787.951 4 23450639.665 23450641.037 23450638.770
+ 26.800 26.500
+ -10838146.687 6 -8445298.720 4 22627549.048 22627549.194 22627548.166
+ 38.100 27.400
+ -22652751.619 7 -17651486.274 8 20409484.761 20409483.652 20409484.154
+ 47.700 50.300
+ -1645942.939 3 -1282571.975 3 24456184.066 24456186.784 24456182.844
+ 20.500 18.600
+ -22644420.078 7 -17645001.509 7 20614703.978 20614702.254 20614703.027
+ 43.700 43.400
+ -8862407.430 6 -6905768.737 4 22801452.564 22801452.181 22801451.815
+ 36.100 28.800
+ -20868021.975 7 -16260778.540 7 20472058.590 20472058.808 20472057.835
+ 45.000 43.200
+ 06 1 1 18 7 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12187012.745 7 -9496366.557 7 21031704.004 21031703.910 21031702.926
+ 45.800 44.200
+ -9422357.092 5 -7342089.612 4 22670660.149 22670661.249 22670659.736
+ 32.400 29.900
+ -4201712.509 4 -3274058.685 4 23442026.392 23442027.752 23442025.625
+ 29.700 26.200
+ -10884857.315 6 -8481696.585 4 22618660.688 22618660.353 22618659.272
+ 37.700 28.100
+ -22674347.681 7 -17668314.368 8 20405375.186 20405374.093 20405374.607
+ 47.900 50.300
+ -1528288.765 3 -1190893.474 2 24478572.840 24478575.371 24478571.659
+ 21.600 17.000
+ -22602471.917 7 -17612314.646 7 20622686.217 20622684.649 20622685.383
+ 43.700 43.200
+ -8770168.297 6 -6833894.126 4 22819005.561 22819004.202 22819004.573
+ 36.100 27.100
+ -20897433.228 7 -16283696.394 7 20466462.010 20466461.970 20466461.198
+ 45.200 43.100
+ 06 1 1 18 8 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12226981.547 7 -9527511.064 7 21024098.175 21024098.148 21024097.147
+ 45.800 44.500
+ -9525165.755 5 -7422200.178 4 22651096.332 22651096.890 22651095.758
+ 32.100 29.000
+ -4246381.183 4 -3308865.429 4 23433526.185 23433527.603 23433525.384
+ 28.400 28.800
+ -10931054.551 6 -8517694.404 4 22609869.031 22609869.066 22609868.182
+ 37.800 26.800
+ -22695623.139 7 -17684892.642 8 20401326.606 20401325.439 20401326.047
+ 47.700 50.300
+ -1410630.267 3 -1099211.584 2 24500962.044 24500965.095 24500961.417
+ 23.000 16.100
+ -22560044.861 7 -17579254.616 7 20630759.872 20630758.235 20630759.057
+ 44.000 43.000
+ -8677717.753 6 -6761854.791 4 22836597.699 22836597.364 22836597.163
+ 36.300 28.100
+ -20926309.241 7 -16306197.170 7 20460967.256 20460966.981 20460966.291
+ 45.100 43.200
+ 06 1 1 18 8 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12266720.368 7 -9558476.369 7 21016536.297 21016536.145 21016535.156
+ 45.900 44.600
+ -9627704.428 5 -7502100.352 4 22631583.591 22631584.629 22631583.181
+ 31.300 29.900
+ -4290453.215 5 -3343207.228 4 23425139.825 23425140.582 23425139.130
+ 30.100 26.500
+ -10976736.379 6 -8553290.617 4 22601176.393 22601176.027 22601175.044
+ 37.500 26.800
+ -22716577.858 7 -17701220.986 8 20397339.059 20397337.973 20397338.394
+ 47.500 50.500
+ -1292970.095 3 -1007528.412 2 24523353.439 24523355.406 24523352.084
+ 22.100 16.100
+ -22517139.365 7 -17545821.777 7 20638924.998 20638922.987 20638923.952
+ 44.000 43.100
+ -8585057.943 6 -6689652.379 4 22854230.412 22854230.018 22854229.808
+ 36.600 28.600
+ -20954650.038 7 -16328280.903 7 20455573.903 20455573.917 20455572.977
+ 44.900 43.400
+ 06 1 1 18 9 0.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12306228.936 7 -9589262.257 7 21009018.184 21009017.781 21009016.965
+ 45.900 44.400
+ -9729971.042 5 -7581788.541 4 22612122.744 22612123.815 22612122.480
+ 31.800 28.800
+ -4333926.890 4 -3377082.789 4 23416866.734 23416868.153 23416865.738
+ 28.800 27.600
+ -11021901.027 6 -8588483.812 4 22592581.382 22592581.716 22592580.486
+ 38.000 27.100
+ -22737211.868 7 -17717299.427 8 20393412.366 20393411.570 20393411.783
+ 47.500 50.600
+ -1175311.489 3 -915846.446 2 24545742.922 24545744.177 24545741.280
+ 21.100 12.600
+ -22473755.948 7 -17512016.537 7 20647180.465 20647178.702 20647179.545
+ 44.300 43.100
+ -8492190.931 6 -6617288.504 4 22871902.199 22871902.430 22871901.643
+ 36.100 28.600
+ -20982455.454 7 -16349947.446 7 20450282.473 20450282.769 20450281.692
+ 45.000 43.600
+ 06 1 1 18 9 30.0000000 0 9G 7G 4G 9G20G17G 8G28G11G24
+ -12345506.854 7 -9619868.417 7 21001543.543 21001543.402 21001542.436
+ 45.800 44.500
+ -9831963.752 5 -7661263.307 4 22592714.512 22592715.136 22592714.010
+ 32.100 29.500
+ -4376800.664 4 -3410490.913 3 23408707.830 23408708.264 23408707.202
+ 28.800 23.400
+ -11066545.917 6 -8623272.005 4 22584086.365 22584086.083 22584084.771
+ 37.500 27.400
+ -22757524.635 7 -17733127.550 8 20389547.028 20389545.997 20389546.422
+ 47.500 50.500
+ -1057657.147 3 -824167.787 2 24568131.051 24568133.627 24568129.399
+ 19.900 16.100
+ -22429894.893 7 -17477839.109 7 20655527.041 20655525.180 20655526.037
+ 44.100 43.200
+ -8399119.111 5 -6544765.048 4 22889613.726 22889612.718 22889612.973
+ 35.500 26.800
+ -21009725.225 7 -16371196.607 7 20445093.571 20445093.534 20445092.613
+ 44.900 43.500
+ 06 1 1 18 10 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12384553.696 7 -9650294.518 7 20994113.486 20994113.145 20994112.380
+ 46.100 44.600
+ -9933680.197 5 -7740522.794 4 22573358.367 22573359.169 22573357.934
+ 31.600 29.000
+ -4419073.384 5 -3443430.684 4 23400664.101 23400664.711 23400663.367
+ 31.100 24.600
+ -11110669.021 6 -8657653.614 4 22575689.479 22575689.726 22575688.622
+ 38.300 27.100
+ -22777516.130 7 -17748705.334 8 20385742.800 20385741.663 20385742.247
+ 47.700 50.500
+ -22385556.595 7 -17443289.807 7 20663964.303 20663962.450 20663963.281
+ 43.800 43.000
+ -8305844.433 6 -6472083.511 4 22907363.498 22907362.441 22907362.742
+ 36.000 26.200
+ -21036459.414 7 -16392028.434 7 20440006.064 20440006.185 20440005.181
+ 44.800 43.400
+ 06 1 1 18 10 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12423369.202 7 -9680540.363 7 20986726.959 20986726.753 20986725.835
+ 46.000 44.700
+ -10035118.482 5 -7819565.546 4 22554055.123 22554055.641 22554054.880
+ 32.800 28.100
+ -4460743.424 4 -3475900.835 4 23392734.324 23392735.331 23392733.621
+ 29.500 26.200
+ -11154268.269 6 -8691627.020 4 22567393.572 22567392.639 22567392.133
+ 38.400 26.200
+ -22797185.904 7 -17764032.429 8 20381999.622 20381998.761 20381999.105
+ 47.800 50.700
+ -22340741.518 7 -17408368.982 7 20672492.271 20672490.638 20672491.183
+ 43.800 43.100
+ -8212369.221 5 -6399245.704 4 22925151.045 22925149.837 22925150.084
+ 35.300 26.200
+ -21062657.791 7 -16412442.744 7 20435020.898 20435020.759 20435019.848
+ 44.900 43.600
+ 06 1 1 18 11 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12461952.969 7 -9710605.625 7 20979384.675 20979384.560 20979383.475
+ 45.600 44.800
+ -10136276.878 5 -7898390.217 4 22534805.618 22534806.033 22534805.281
+ 33.900 28.400
+ -4501809.418 4 -3507900.283 4 23384919.817 23384920.424 23384919.166
+ 29.900 24.600
+ -11197341.626 6 -8725190.654 4 22559196.556 22559196.258 22559195.516
+ 38.300 27.100
+ -22816534.087 7 -17779108.926 8 20378317.832 20378316.862 20378317.392
+ 47.800 50.700
+ -22295450.416 7 -17373077.234 7 20681111.219 20681109.275 20681110.021
+ 44.000 43.000
+ -8118695.437 5 -6326253.175 4 22942976.333 22942975.614 22942975.807
+ 35.400 26.500
+ -21088320.233 7 -16432439.441 7 20430137.244 20430137.342 20430136.361
+ 44.900 43.400
+ 06 1 1 18 11 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12500304.590 7 -9740489.993 7 20972086.410 20972086.342 20972085.306
+ 45.500 44.700
+ -10237153.154 5 -7976995.055 5 22515609.377 22515610.037 22515608.933
+ 33.400 30.600
+ -4542270.365 4 -3539428.282 4 23377220.582 23377221.170 23377219.580
+ 29.200 26.800
+ -11239887.052 6 -8758342.908 4 22551100.682 22551100.198 22551099.469
+ 38.600 28.100
+ -22835560.187 8 -17793934.457 8 20374697.612 20374696.268 20374696.949
+ 48.000 50.600
+ -22249683.092 7 -17337414.403 7 20689820.170 20689818.410 20689819.095
+ 44.000 42.800
+ -8024825.451 5 -6253107.757 4 22960839.297 22960839.074 22960838.525
+ 34.000 27.400
+ -21113446.719 7 -16452018.515 7 20425355.724 20425355.880 20425354.855
+ 44.900 43.300
+ 06 1 1 18 12 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12538423.565 7 -9770193.086 7 20964832.932 20964832.623 20964831.727
+ 45.600 44.900
+ -10337745.527 5 -8055378.658 5 22496466.997 22496468.078 22496466.471
+ 33.000 30.800
+ -4582124.778 4 -3570483.662 4 23369636.253 23369637.384 23369635.374
+ 29.000 27.400
+ -11281902.538 6 -8791082.221 4 22543105.334 22543105.047 22543104.134
+ 38.800 27.900
+ -22854264.274 7 -17808509.068 8 20371138.289 20371137.048 20371137.673
+ 47.800 50.700
+ -22203440.147 7 -17301380.958 7 20698619.730 20698618.155 20698618.737
+ 44.000 42.700
+ -7930761.356 5 -6179811.119 4 22978739.162 22978738.721 22978738.491
+ 33.900 27.600
+ -21138037.267 7 -16471179.975 7 20420676.450 20420676.345 20420675.535
+ 44.900 43.400
+ 06 1 1 18 12 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12576309.753 7 -9799714.776 7 20957623.328 20957623.201 20957622.168
+ 45.600 44.900
+ -10438051.857 5 -8133539.364 5 22477379.200 22477380.495 22477378.797
+ 33.900 30.800
+ -4621371.184 4 -3601065.206 4 23362167.450 23362168.669 23362166.676
+ 28.100 27.600
+ -11323386.380 6 -8823407.251 4 22535211.412 22535210.981 22535210.071
+ 38.900 28.800
+ -22872645.885 7 -17822832.401 8 20367640.260 20367639.185 20367639.666
+ 47.900 50.800
+ -22156722.369 7 -17264977.514 7 20707510.007 20707508.344 20707508.979
+ 44.100 42.600
+ -7836505.145 5 -6106364.747 4 22996675.806 22996675.025 22996674.961
+ 34.100 27.100
+ -21162091.925 7 -16489923.857 7 20416098.774 20416098.926 20416097.993
+ 45.000 43.400
+ 06 1 1 18 13 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12613962.672 7 -9829054.703 7 20950458.105 20950457.958 20950456.936
+ 45.600 44.900
+ -10538070.144 5 -8211475.636 4 22458346.390 22458347.259 22458346.186
+ 34.900 29.700
+ -4660008.368 4 -3631172.086 4 23354815.196 23354816.354 23354814.217
+ 27.100 26.500
+ -11364336.175 6 -8855316.151 4 22527418.440 22527418.371 22527417.223
+ 38.600 28.600
+ -22890704.804 7 -17836904.282 8 20364203.610 20364202.689 20364203.034
+ 47.800 50.900
+ -22109529.995 7 -17228204.254 7 20716490.281 20716488.947 20716489.408
+ 44.200 42.900
+ -7742059.083 5 -6032770.454 4 23014648.286 23014647.806 23014647.631
+ 34.800 27.400
+ -21185610.148 7 -16508249.738 7 20411623.900 20411623.514 20411622.868
+ 45.100 43.400
+ 06 1 1 18 13 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12651381.861 7 -9858212.500 7 20943337.708 20943337.303 20943336.481
+ 45.500 44.800
+ -10637798.511 5 -8289186.010 4 22439369.059 22439369.423 22439368.483
+ 33.800 29.500
+ -4698035.303 4 -3660803.415 4 23347578.888 23347579.950 23347578.087
+ 28.800 26.800
+ -11404750.193 6 -8886807.547 4 22519727.796 22519727.691 22519726.560
+ 38.600 28.100
+ -22908440.995 7 -17850724.689 8 20360828.564 20360827.632 20360828.076
+ 47.800 50.900
+ -22061863.415 7 -17191061.485 7 20725560.925 20725559.507 20725560.007
+ 44.100 42.600
+ -7647425.369 5 -5959029.928 4 23032656.705 23032655.658 23032655.911
+ 34.800 26.200
+ -21208592.370 7 -16526157.960 7 20407250.375 20407250.210 20407249.502
+ 45.100 43.400
+ 06 1 1 18 14 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12688566.977 7 -9887187.912 7 20936261.578 20936261.202 20936260.368
+ 45.600 44.900
+ -10737235.006 5 -8366668.942 5 22420446.707 22420447.407 22420446.101
+ 33.400 30.800
+ -4735450.293 4 -3689957.908 4 23340459.279 23340460.293 23340458.583
+ 29.000 27.400
+ -11444626.405 6 -8917879.896 4 22512139.530 22512139.339 22512138.336
+ 38.800 28.400
+ -22925854.241 7 -17864293.449 8 20357515.075 20357513.931 20357514.552
+ 47.900 51.000
+ -22013723.277 7 -17153549.708 7 20734721.601 20734720.175 20734720.853
+ 44.400 42.300
+ -7552606.292 5 -5885144.980 4 23050700.943 23050698.762 23050699.699
+ 34.400 25.600
+ -21231038.414 7 -16543648.372 7 20402979.026 20402978.876 20402978.109
+ 45.000 43.700
+ 06 1 1 18 14 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12725517.627 7 -9915980.614 7 20929229.938 20929229.709 20929228.780
+ 45.600 45.000
+ -10836377.658 5 -8443922.902 5 22401580.643 22401580.861 22401580.266
+ 34.600 30.600
+ -4772252.382 4 -3718634.814 4 23333455.651 23333456.651 23333454.796
+ 28.100 25.600
+ -11483962.952 6 -8948531.719 4 22504654.296 22504653.637 22504653.015
+ 39.100 27.600
+ -22942944.428 7 -17877610.473 8 20354262.770 20354261.719 20354262.249
+ 47.800 50.900
+ -21965110.300 7 -17115669.482 7 20743972.340 20743970.914 20743971.586
+ 44.400 42.200
+ -7457603.574 5 -5811116.930 4 23068778.998 23068777.200 23068778.145
+ 34.500 26.500
+ -21252948.342 7 -16560721.042 7 20398809.588 20398809.594 20398808.728
+ 45.100 43.800
+ 06 1 1 18 15 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12762233.400 7 -9944590.302 7 20922242.944 20922242.880 20922241.886
+ 45.700 44.900
+ -10935224.538 5 -8520946.400 5 22382770.265 22382771.076 22382770.012
+ 34.300 31.300
+ -4808440.111 4 -3746832.985 4 23326569.563 23326570.615 23326568.785
+ 29.200 25.600
+ -11522758.095 6 -8978761.685 4 22497271.845 22497271.262 22497270.638
+ 39.000 27.400
+ -22959710.933 7 -17890675.279 8 20351072.277 20351071.161 20351071.690
+ 47.900 51.000
+ -21916025.064 7 -17077421.261 6 20753312.819 20753311.499 20753312.167
+ 44.400 41.900
+ -7362419.444 5 -5736947.520 4 23086891.002 23086890.629 23086890.378
+ 34.000 26.500
+ -21274322.315 7 -16577376.083 7 20394742.347 20394742.266 20394741.426
+ 45.000 43.600
+ 06 1 1 18 15 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12798714.010 7 -9973016.745 7 20915301.105 20915300.906 20915299.956
+ 45.700 44.900
+ -11033773.678 5 -8597737.884 5 22364016.525 22364017.593 22364016.358
+ 33.900 31.300
+ -4844012.850 4 -3774551.967 4 23319800.215 23319801.423 23319799.235
+ 28.600 26.800
+ -11561010.067 6 -9008568.381 4 22489992.833 22489992.078 22489991.496
+ 39.300 27.600
+ -22976153.994 7 -17903488.048 8 20347943.111 20347942.254 20347942.597
+ 47.700 51.100
+ -21866467.937 7 -17038805.333 6 20762743.371 20762741.880 20762742.587
+ 44.300 41.900
+ -7267056.156 5 -5662638.497 4 23105038.285 23105037.820 23105037.792
+ 35.100 25.900
+ -21295160.386 7 -16593613.536 7 20390776.935 20390776.879 20390776.020
+ 44.900 43.700
+ 06 1 1 18 16 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12834959.008 7 -10001259.598 7 20908403.771 20908403.808 20908402.681
+ 45.700 45.100
+ -11132023.304 5 -8674295.981 5 22345320.739 22345321.436 22345320.211
+ 33.800 31.300
+ -4878969.265 5 -3801790.685 4 23313148.367 23313149.517 23313147.744
+ 30.200 27.100
+ -11598716.741 6 -9037950.186 4 22482817.378 22482816.651 22482816.246
+ 39.700 27.900
+ -22992273.149 7 -17916048.425 8 20344875.793 20344874.899 20344875.280
+ 47.900 51.100
+ -21816439.593 7 -16999822.227 6 20772263.335 20772262.016 20772262.605
+ 44.300 41.600
+ -7171515.867 5 -5588191.575 4 23123219.434 23123218.527 23123218.816
+ 34.400 26.800
+ -21315462.591 7 -16609433.430 7 20386913.600 20386913.519 20386912.720
+ 45.100 43.700
+ 06 1 1 18 16 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12870967.997 7 -10029318.544 7 20901551.784 20901551.386 20901550.550
+ 45.700 45.100
+ -11229971.283 5 -8750619.044 5 22326681.889 22326682.240 22326681.335
+ 34.100 30.400
+ -4913308.475 4 -3828548.482 4 23306613.667 23306614.681 23306612.872
+ 29.500 24.900
+ -11635876.154 6 -9066905.542 4 22475745.956 22475745.640 22475744.825
+ 39.700 27.900
+ -23008068.291 7 -17928356.326 8 20341870.133 20341869.228 20341869.579
+ 47.900 51.300
+ -21765940.540 7 -16960472.333 6 20781872.883 20781871.733 20781872.264
+ 44.100 41.800
+ -7075800.755 5 -5513608.418 4 23141433.147 23141432.803 23141432.077
+ 33.000 26.200
+ -21335229.096 7 -16624835.899 7 20383152.453 20383152.075 20383151.443
+ 45.100 43.900
+ 06 1 1 18 17 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12906740.431 7 -10057193.163 7 20894744.305 20894744.104 20894743.205
+ 45.600 45.200
+ -11327615.782 5 -8826705.636 4 22308100.836 22308101.100 22308100.147
+ 34.600 29.900
+ -4947029.156 5 -3854824.284 4 23300196.695 23300197.910 23300196.015
+ 30.400 25.900
+ -11672486.562 6 -9095433.108 4 22468779.065 22468778.936 22468777.863
+ 39.300 28.800
+ -23023539.029 7 -17940411.440 8 20338926.009 20338925.179 20338925.497
+ 47.800 51.300
+ -21714971.553 7 -16920756.260 6 20791571.948 20791570.836 20791571.258
+ 44.000 41.600
+ -6979912.677 5 -5438890.484 4 23159680.728 23159679.017 23159679.828
+ 33.900 24.900
+ -21354460.043 7 -16639821.052 7 20379492.639 20379492.561 20379491.755
+ 44.900 43.900
+ 06 1 1 18 17 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12942276.115 7 -10084883.296 7 20887982.094 20887981.813 20887981.023
+ 45.800 45.100
+ -11424954.907 5 -8902554.282 4 22289577.289 22289577.711 22289577.098
+ 34.500 29.200
+ -4980130.158 5 -3880617.263 4 23293898.105 23293898.795 23293897.368
+ 30.200 25.300
+ -11708546.450 6 -9123531.688 4 22461917.369 22461916.746 22461916.188
+ 39.800 27.600
+ -23038685.481 8 -17952213.869 8 20336043.971 20336042.839 20336043.378
+ 48.000 51.200
+ -21663533.134 7 -16880674.393 6 20801360.690 20801359.181 20801359.839
+ 44.300 41.400
+ -6883853.916 5 -5364039.531 4 23177959.438 23177958.929 23177958.595
+ 32.600 25.300
+ -21373155.339 7 -16654388.813 7 20375935.070 20375934.912 20375934.117
+ 45.200 44.000
+ 06 1 1 18 18 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -12977574.546 7 -10112388.566 7 20881265.170 20881264.828 20881263.974
+ 45.600 45.100
+ -11521986.644 5 -8978163.414 5 22271113.156 22271113.690 22271112.552
+ 34.400 31.000
+ -5012610.995 5 -3905926.989 4 23287717.259 23287717.827 23287716.482
+ 30.200 25.300
+ -11744053.656 6 -9151199.615 4 22455160.025 22455159.999 22455159.244
+ 39.400 27.400
+ -23053507.309 7 -17963763.349 8 20333223.319 20333222.381 20333222.830
+ 47.900 51.300
+ -21611626.258 7 -16840227.498 6 20811238.351 20811236.765 20811237.540
+ 44.400 41.300
+ -6787626.141 5 -5289056.901 4 23196270.362 23196270.379 23196269.735
+ 32.400 25.300
+ -21391315.328 7 -16668539.447 7 20372479.237 20372479.263 20372478.366
+ 44.900 44.000
+ 06 1 1 18 18 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13012635.266 7 -10139708.598 7 20874593.082 20874593.004 20874591.983
+ 45.600 45.300
+ -11618709.177 5 -9053531.590 5 22252707.268 22252708.120 22252706.856
+ 35.200 32.000
+ -5044469.648 5 -3930751.898 4 23281654.736 23281655.533 23281654.119
+ 31.100 25.300
+ -11779007.019 6 -9178435.967 4 22448509.421 22448508.666 22448507.685
+ 39.200 28.400
+ -23068004.488 7 -17975059.850 8 20330464.551 20330463.735 20330463.969
+ 47.700 51.400
+ -21559251.221 7 -16799415.802 6 20821204.993 20821203.454 20821204.203
+ 44.400 41.100
+ -6691231.788 5 -5213944.490 4 23214613.538 23214614.379 23214613.349
+ 33.800 26.500
+ -21408940.103 7 -16682273.040 7 20369125.364 20369125.367 20369124.464
+ 44.900 44.000
+ 06 1 1 18 19 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13047457.943 7 -10166843.145 7 20867966.599 20867966.455 20867965.462
+ 45.500 45.300
+ -11715120.810 5 -9128657.495 5 22234360.602 22234361.942 22234360.353
+ 35.400 33.200
+ -5075705.987 5 -3955091.915 4 23275710.663 23275711.068 23275709.926
+ 31.100 25.900
+ -11813404.460 6 -9205239.125 4 22441962.713 22441963.282 22441962.215
+ 39.800 29.000
+ -23082176.293 7 -17986102.816 8 20327767.777 20327766.849 20327767.148
+ 47.700 51.300
+ -21506408.700 7 -16758239.830 6 20831260.662 20831259.069 20831259.772
+ 44.300 41.100
+ -6594672.960 5 -5138703.898 3 23232988.499 23232988.313 23232987.966
+ 32.300 23.400
+ -21426029.718 7 -16695589.625 7 20365873.301 20365873.273 20365872.345
+ 44.700 44.000
+ 06 1 1 18 19 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13082042.143 7 -10193791.865 7 20861385.541 20861385.190 20861384.359
+ 45.500 45.200
+ -11811219.516 5 -9203539.569 5 22216073.310 22216074.668 22216073.242
+ 35.100 32.400
+ -5106318.875 4 -3978946.072 4 23269884.603 23269885.857 23269883.906
+ 28.600 24.900
+ -11847244.264 6 -9231607.767 4 22435524.670 22435523.637 22435522.937
+ 39.800 28.800
+ -23096023.001 7 -17996892.457 8 20325132.774 20325131.866 20325132.242
+ 47.700 51.300
+ -21453099.418 7 -16716700.151 6 20841405.366 20841403.488 20841404.285
+ 44.200 41.200
+ -6497951.567 5 -5063336.625 4 23251394.386 23251393.593 23251393.911
+ 32.800 24.600
+ -21442584.675 7 -16708489.586 7 20362723.091 20362722.954 20362722.096
+ 44.800 43.900
+ 06 1 1 18 20 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13116387.388 7 -10220554.394 7 20854849.653 20854849.547 20854848.534
+ 45.300 45.100
+ -11907003.423 5 -9278176.348 5 22197846.762 22197847.387 22197846.288
+ 35.100 32.000
+ -5136307.200 5 -4002313.593 4 23264178.691 23264179.370 23264177.937
+ 31.100 25.300
+ -11880524.827 6 -9257540.638 4 22429190.361 22429190.317 22429189.255
+ 39.300 28.100
+ -23109544.293 7 -18007428.535 8 20322559.900 20322558.929 20322559.273
+ 47.700 51.400
+ -21399324.427 7 -16674797.582 6 20851638.313 20851636.556 20851637.238
+ 44.300 41.100
+ -6401069.749 5 -4987844.359 4 23269829.958 23269830.260 23269829.233
+ 31.800 25.900
+ -21458605.336 7 -16720973.217 7 20359674.619 20359674.288 20359673.599
+ 44.900 44.100
+ 06 1 1 18 20 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13150493.367 7 -10247130.474 7 20848359.631 20848359.554 20848358.441
+ 45.200 45.600
+ -12002470.710 5 -9352566.413 5 22179679.739 22179680.577 22179679.269
+ 34.900 31.300
+ -5165670.278 4 -4025193.887 4 23258590.778 23258591.754 23258589.799
+ 28.400 27.400
+ -11913244.715 6 -9283036.610 4 22422964.320 22422963.745 22422962.949
+ 39.600 28.100
+ -23122739.891 7 -18017710.817 8 20320048.809 20320047.921 20320048.250
+ 47.900 51.400
+ -21345084.201 7 -16632532.493 6 20861959.963 20861958.242 20861958.695
+ 44.100 40.900
+ -6304029.383 5 -4912228.552 4 23288296.328 23288296.150 23288295.682
+ 32.100 24.200
+ -21474091.889 7 -16733040.658 7 20356727.305 20356727.383 20356726.474
+ 45.000 44.100
+ 06 1 1 18 21 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13184359.619 7 -10273519.754 7 20841914.932 20841914.999 20841913.917
+ 45.500 45.400
+ -12097619.493 5 -9426708.280 5 22161573.268 22161574.490 22161572.787
+ 34.600 33.000
+ -5194407.494 4 -4047586.491 4 23253122.394 23253122.698 23253121.488
+ 29.500 25.600
+ -11945401.896 6 -9308094.120 4 22416845.404 22416844.489 22416844.030
+ 40.000 28.400
+ -23135609.596 7 -18027739.160 8 20317599.880 20317598.844 20317599.276
+ 47.900 51.400
+ -21290379.748 7 -16589905.669 6 20872369.940 20872368.042 20872368.766
+ 44.100 40.500
+ -6206832.715 5 -4836490.949 3 23306791.960 23306791.965 23306791.362
+ 32.300 22.600
+ -21489044.304 7 -16744691.888 7 20353882.169 20353882.025 20353881.158
+ 44.800 44.100
+ 06 1 1 18 21 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13217985.746 7 -10299721.929 7 20835516.451 20835516.002 20835515.327
+ 45.800 45.500
+ -12192447.906 5 -9500600.508 5 22143527.882 22143529.171 22143527.571
+ 35.300 33.000
+ -5222517.276 4 -4069490.225 4 23247773.068 23247773.422 23247772.377
+ 29.900 25.300
+ -11976994.719 6 -9332711.874 4 22410833.096 22410832.550 22410831.945
+ 39.800 27.600
+ -23148153.423 7 -18037513.577 8 20315212.862 20315211.804 20315212.271
+ 47.800 51.400
+ -21235211.530 7 -16546917.470 6 20882868.066 20882866.294 20882866.880
+ 44.200 40.600
+ -6109481.775 5 -4760633.125 4 23325318.507 23325317.588 23325317.744
+ 33.100 24.900
+ -21503462.976 7 -16755927.214 7 20351138.229 20351138.290 20351137.271
+ 44.800 44.200
+ 06 1 1 18 22 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13251371.361 7 -10325736.691 7 20829163.470 20829163.005 20829162.283
+ 45.800 45.600
+ -12286954.144 5 -9574241.691 5 22125543.924 22125544.996 22125543.617
+ 35.700 32.100
+ -5249999.055 4 -4090904.586 4 23242543.059 23242544.460 23242542.305
+ 28.400 25.900
+ -12008022.073 6 -9356888.992 4 22404928.154 22404928.208 22404927.345
+ 39.800 29.500
+ -23160371.028 7 -18047033.791 8 20312887.904 20312886.935 20312887.326
+ 47.900 51.400
+ -21179580.340 7 -16503568.515 6 20893454.180 20893452.607 20893453.170
+ 44.300 40.700
+ -6011978.554 5 -4684656.627 3 23343871.976 23343871.369 23343871.123
+ 31.800 23.800
+ -21517348.352 7 -16766746.980 7 20348495.852 20348495.955 20348495.013
+ 44.800 44.200
+ 06 1 1 18 22 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13284515.970 7 -10351563.654 7 20822856.089 20822855.761 20822854.984
+ 45.800 45.500
+ -12381136.379 5 -9647630.412 5 22107621.947 22107622.454 22107621.511
+ 35.900 32.400
+ -5276852.403 4 -4111829.262 4 23237433.331 23237434.368 23237432.433
+ 29.500 26.500
+ -12038482.154 6 -9380624.094 4 22399132.469 22399131.854 22399131.155
+ 39.600 28.400
+ -23172262.217 7 -18056299.659 8 20310625.090 20310624.080 20310624.450
+ 47.900 51.400
+ -21123487.026 7 -16459859.466 6 20904128.561 20904126.886 20904127.474
+ 44.300 40.600
+ -5914324.856 5 -4608562.901 4 23362455.020 23362454.861 23362454.276
+ 32.300 24.900
+ -21530700.639 7 -16777151.354 7 20345955.113 20345955.075 20345954.225
+ 44.800 44.200
+ 06 1 1 18 23 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13317419.212 7 -10377202.543 7 20816594.720 20816594.495 20816593.589
+ 45.700 45.500
+ -12474992.765 6 -9720765.230 5 22089762.123 22089762.411 22089761.465
+ 36.300 33.500
+ -5303076.190 5 -4132263.382 4 23232443.176 23232444.032 23232442.401
+ 30.600 25.300
+ -12068373.454 6 -9403915.982 4 22393444.115 22393443.774 22393442.819
+ 39.400 28.600
+ -23183826.846 8 -18065311.062 8 20308424.550 20308423.379 20308423.849
+ 48.000 51.400
+ -21066932.532 7 -16415791.049 6 20914890.274 20914888.964 20914889.309
+ 44.200 40.600
+ -5816523.084 5 -4532353.778 3 23381066.205 23381066.272 23381065.351
+ 32.400 23.800
+ -21543520.436 7 -16787140.803 7 20343515.539 20343515.539 20343514.573
+ 44.600 44.100
+ 06 1 1 18 23 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13350080.631 7 -10402653.000 7 20810379.452 20810379.214 20810378.349
+ 45.700 45.600
+ -12568521.508 6 -9793644.730 5 22071963.856 22071964.432 22071963.355
+ 36.100 33.200
+ -5328670.112 4 -4152206.708 4 23227572.927 23227573.788 23227571.766
+ 28.100 26.200
+ -12097694.394 6 -9426763.437 4 22387864.248 22387864.140 22387863.330
+ 39.900 29.000
+ -23195064.536 7 -18074067.708 8 20306285.876 20306284.921 20306285.353
+ 47.900 51.400
+ -21009917.468 7 -16371363.753 6 20925739.892 20925738.497 20925739.009
+ 44.200 40.300
+ -5718575.006 5 -4456030.668 4 23399705.612 23399704.897 23399704.496
+ 31.300 24.600
+ -21555808.075 7 -16796715.586 7 20341177.181 20341177.245 20341176.312
+ 44.600 44.300
+ 06 1 1 18 24 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13382499.715 7 -10427914.611 7 20804210.389 20804210.112 20804209.179
+ 45.700 45.500
+ -12661720.787 5 -9866267.517 5 22054228.216 22054228.820 22054227.851
+ 35.800 32.300
+ -5353633.222 4 -4171658.479 4 23222822.363 23222823.287 23222821.535
+ 29.200 25.300
+ -12126443.689 6 -9449165.458 4 22382394.260 22382393.333 22382392.547
+ 39.700 29.200
+ -23205975.224 7 -18082569.544 8 20304209.685 20304208.739 20304209.109
+ 47.900 51.500
+ -20952442.785 7 -16326578.317 6 20936676.798 20936675.421 20936676.093
+ 44.100 40.000
+ -5620482.862 5 -4379595.289 3 23418372.021 23418370.975 23418371.139
+ 31.800 22.600
+ -21567563.717 7 -16805875.828 7 20338940.324 20338940.235 20338939.366
+ 44.600 44.200
+ 06 1 1 18 24 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13414676.103 7 -10452987.124 7 20798087.221 20798087.109 20798086.213
+ 45.600 45.600
+ -12754588.967 6 -9938632.315 5 22036555.873 22036556.645 22036555.741
+ 36.400 32.100
+ -5377964.888 4 -4190618.233 4 23218191.902 23218193.612 23218191.234
+ 29.000 25.600
+ -12154619.738 6 -9471120.795 4 22377031.864 22377031.602 22377030.650
+ 40.000 29.000
+ -23216558.709 8 -18090816.419 8 20302195.899 20302194.746 20302195.219
+ 48.100 51.500
+ -20894509.381 7 -16281435.421 6 20947700.964 20947699.894 20947700.378
+ 44.200 40.000
+ -5522248.679 5 -4303049.221 3 23437065.359 23437064.310 23437064.659
+ 32.300 22.100
+ -21578787.846 7 -16814621.900 7 20336804.194 20336804.384 20336803.329
+ 44.400 44.300
+ 06 1 1 18 25 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13446609.428 7 -10477870.232 7 20792010.602 20792010.389 20792009.506
+ 45.700 45.700
+ -12847124.114 6 -10010737.604 5 22018947.390 22018947.946 22018947.104
+ 36.900 33.400
+ -5401664.464 4 -4209085.418 4 23213682.855 23213683.304 23213681.932
+ 28.800 25.900
+ -12182220.933 6 -9492628.198 4 22371779.537 22371779.015 22371778.307
+ 40.200 28.800
+ -23226814.951 8 -18098808.294 8 20300243.929 20300243.003 20300243.387
+ 48.000 51.500
+ -20836118.057 7 -16235935.712 6 20958812.412 20958811.409 20958811.854
+ 44.200 40.200
+ -5423874.045 5 -4226393.687 3 23455784.773 23455784.164 23455784.120
+ 30.200 21.600
+ -21589481.017 7 -16822954.237 7 20334769.416 20334769.527 20334768.553
+ 44.500 44.100
+ 06 1 1 18 25 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13478299.137 7 -10502563.509 7 20785980.373 20785980.042 20785979.202
+ 45.700 45.800
+ -12939324.373 6 -10082581.938 5 22001402.677 22001402.773 22001401.969
+ 36.800 33.200
+ -5424731.335 4 -4227059.616 4 23209292.928 23209293.904 23209292.030
+ 28.400 27.400
+ -12209246.031 6 -9513686.685 4 22366636.365 22366636.493 22366635.569
+ 40.000 28.600
+ -23236743.557 8 -18106544.870 8 20298354.657 20298353.665 20298354.147
+ 48.000 51.500
+ -20777269.684 7 -16190079.859 6 20970011.163 20970010.001 20970010.492
+ 44.200 40.000
+ -5325361.298 5 -4149630.577 3 23474531.006 23474530.877 23474530.411
+ 30.600 23.800
+ -21599643.508 7 -16830873.061 7 20332835.547 20332835.589 20332834.627
+ 44.400 44.300
+ 06 1 1 18 26 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13509744.795 7 -10527066.618 7 20779996.558 20779996.151 20779995.295
+ 45.600 45.700
+ -13031188.185 6 -10154164.110 5 21983921.231 21983921.569 21983920.667
+ 36.500 33.200
+ -5447164.810 4 -4244540.248 4 23205023.503 23205024.628 23205022.719
+ 27.900 26.200
+ -12235693.636 6 -9534295.192 4 22361604.257 22361603.410 22361602.766
+ 40.300 28.600
+ -23246344.410 8 -18114026.055 8 20296527.636 20296526.766 20296527.144
+ 48.200 51.600
+ -20717965.241 7 -16143868.629 6 20981296.119 20981295.349 20981295.614
+ 44.300 40.000
+ -5226712.356 4 -4072761.328 4 23493302.661 23493303.854 23493302.361
+ 29.900 24.600
+ -21609275.859 7 -16838378.793 7 20331002.437 20331002.608 20331001.590
+ 44.400 44.100
+ 06 1 1 18 26 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13540946.032 7 -10551379.268 7 20774058.914 20774058.733 20774057.758
+ 45.500 45.800
+ -13122713.694 6 -10225482.675 5 21966504.594 21966504.863 21966504.071
+ 37.000 33.800
+ -5468964.345 4 -4261526.877 4 23200875.283 23200876.891 23200874.406
+ 28.600 28.100
+ -12261562.300 6 -9554452.575 4 22356681.200 22356680.654 22356680.294
+ 40.500 28.600
+ -23255617.385 8 -18121251.750 8 20294763.028 20294762.167 20294762.453
+ 48.000 51.700
+ -20658205.687 7 -16097302.767 6 20992668.323 20992667.254 20992667.609
+ 44.200 39.800
+ -5127929.152 5 -3995787.475 3 23512101.732 23512101.385 23512100.992
+ 30.200 23.400
+ -21618378.681 7 -16845471.900 7 20329270.343 20329270.434 20329269.398
+ 44.400 44.200
+ 06 1 1 18 27 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13571902.503 7 -10575501.193 7 20768167.963 20768167.935 20768166.931
+ 45.600 45.800
+ -13213899.136 6 -10296536.239 5 21949152.236 21949152.959 21949151.789
+ 36.500 34.300
+ -5490129.247 4 -4278019.028 4 23196848.229 23196849.378 23196847.319
+ 29.200 28.400
+ -12286850.778 6 -9574157.859 4 22351868.799 22351868.607 22351867.874
+ 40.700 29.000
+ -23264562.301 8 -18128221.814 8 20293061.006 20293059.959 20293060.468
+ 48.300 51.700
+ -20597991.729 7 -16050382.820 6 21004126.835 21004125.398 21004126.030
+ 44.400 39.300
+ -5029013.677 4 -3918710.541 3 23530925.140 23530923.982 23530924.003
+ 29.700 23.400
+ -21626952.544 7 -16852152.829 7 20327638.778 20327638.877 20327637.846
+ 44.600 44.200
+ 06 1 1 18 27 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13602613.605 7 -10599431.919 7 20762324.096 20762323.813 20762322.932
+ 45.600 45.900
+ -13304742.737 6 -10367323.428 5 21931865.457 21931866.094 21931864.993
+ 37.200 34.100
+ -5510659.223 4 -4294016.398 4 23192941.321 23192942.588 23192940.522
+ 29.200 27.100
+ -12311557.748 6 -9593410.027 4 22347167.949 22347166.877 22347166.656
+ 40.800 28.800
+ -23273178.917 8 -18134936.059 8 20291421.332 20291420.281 20291420.768
+ 48.000 51.600
+ -20537324.494 7 -16003109.673 6 21015671.607 21015669.942 21015670.733
+ 44.300 39.100
+ -4929967.751 4 -3841531.957 4 23549773.089 23549772.301 23549771.946
+ 28.800 24.600
+ -21634997.798 7 -16858421.858 7 20326107.926 20326107.923 20326107.033
+ 44.300 44.400
+ 06 1 1 18 28 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13633079.007 7 -10623171.196 7 20756526.664 20756526.485 20756525.537
+ 45.400 46.100
+ -13395242.819 6 -10437842.945 5 21914643.950 21914644.371 21914643.583
+ 37.200 34.400
+ -5530553.898 4 -4309518.713 4 23189155.221 23189156.739 23189154.409
+ 29.700 26.500
+ -12335681.870 6 -9612208.033 4 22342577.047 22342576.221 22342575.849
+ 40.700 28.800
+ -23281467.009 8 -18141394.315 8 20289844.021 20289843.119 20289843.517
+ 48.100 51.600
+ -20476205.145 7 -15955484.227 6 21027302.275 21027300.716 21027301.321
+ 44.300 39.000
+ -4830793.545 5 -3764253.413 3 23568645.797 23568644.721 23568644.721
+ 31.500 23.400
+ -21642515.037 7 -16864279.445 7 20324677.400 20324677.479 20324676.517
+ 44.600 44.300
+ 06 1 1 18 28 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13663298.089 7 -10646718.531 7 20750776.242 20750776.039 20750775.026
+ 45.400 46.100
+ -13485397.513 6 -10508093.323 5 21897488.053 21897488.614 21897487.634
+ 37.800 34.700
+ -5549812.467 4 -4324525.383 4 23185490.843 23185491.144 23185489.905
+ 29.500 25.300
+ -12359221.862 6 -9630550.864 4 22338097.552 22338096.893 22338096.206
+ 40.500 29.200
+ -23289426.549 8 -18147596.559 8 20288329.433 20288328.432 20288328.831
+ 48.000 51.600
+ -20414634.745 7 -15907507.314 6 21039018.948 21039017.262 21039017.834
+ 44.100 39.400
+ -4731493.009 4 -3686876.438 3 23587541.294 23587540.929 23587540.354
+ 29.000 22.600
+ -21649504.909 7 -16869726.097 7 20323347.438 20323347.310 20323346.516
+ 44.700 44.400
+ 06 1 1 18 29 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13693270.557 7 -10670073.696 7 20745072.604 20745072.414 20745071.474
+ 45.500 46.000
+ -13575205.373 6 -10578073.433 5 21880398.109 21880398.583 21880397.597
+ 37.400 34.400
+ -5568434.855 5 -4339036.333 4 23181946.964 23181947.899 23181946.026
+ 30.200 25.900
+ -12382176.595 6 -9648437.654 4 22333728.849 22333728.866 22333728.094
+ 40.700 29.700
+ -23297057.150 7 -18153542.483 8 20286877.262 20286876.469 20286876.630
+ 47.800 51.600
+ -20352613.447 7 -15859179.053 6 21050821.405 21050819.526 21050820.190
+ 44.000 39.100
+ -4632067.570 4 -3609402.136 3 23606460.688 23606461.113 23606460.318
+ 29.900 23.800
+ -21655967.677 7 -16874762.024 7 20322117.566 20322117.520 20322116.672
+ 44.800 44.500
+ 06 1 1 18 29 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13722995.853 7 -10693236.265 7 20739415.946 20739415.818 20739414.814
+ 45.300 46.100
+ -13664664.501 6 -10647781.794 5 21863374.715 21863374.944 21863374.294
+ 38.300 34.400
+ -5586420.612 5 -4353051.206 4 23178524.657 23178525.504 23178523.861
+ 31.000 27.400
+ -12404544.575 6 -9665867.239 5 22329473.274 22329472.316 22329471.733
+ 40.500 30.100
+ -23304358.637 8 -18159231.954 8 20285488.023 20285486.993 20285487.400
+ 48.100 51.600
+ -20290143.012 7 -15810500.811 6 21062709.194 21062707.286 21062708.037
+ 44.000 39.100
+ -4532519.937 4 -3531832.591 3 23625404.137 23625404.110 23625403.486
+ 29.700 20.500
+ -21661903.940 7 -16879387.682 7 20320987.933 20320987.899 20320987.033
+ 44.700 44.400
+ 06 1 1 18 30 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13752473.666 7 -10716205.983 7 20733806.527 20733806.360 20733805.356
+ 45.200 46.100
+ -13753773.184 6 -10717217.099 5 21846417.808 21846417.809 21846417.321
+ 38.100 33.600
+ -5603768.810 4 -4366569.260 4 23175223.525 23175224.332 23175222.538
+ 29.900 27.600
+ -12426324.694 6 -9682838.749 4 22325328.109 22325327.622 22325326.801
+ 40.300 29.200
+ -23311330.962 8 -18164664.940 8 20284161.341 20284160.181 20284160.718
+ 48.200 51.600
+ -20227224.221 7 -15761473.210 6 21074682.009 21074680.487 21074681.003
+ 44.000 39.300
+ -4432851.527 4 -3454168.963 3 23644370.615 23644370.440 23644369.718
+ 29.200 21.600
+ -21667314.506 7 -16883603.708 7 20319958.233 20319958.283 20319957.384
+ 44.600 44.400
+ 06 1 1 18 30 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13781703.424 7 -10738982.414 7 20728244.250 20728244.106 20728243.149
+ 45.300 46.000
+ -13842529.882 6 -10786378.117 5 21829527.720 21829528.032 21829527.232
+ 37.800 34.400
+ -5620479.797 5 -4379590.821 4 23172043.210 23172044.478 23172042.411
+ 31.000 28.100
+ -12447516.016 6 -9699351.459 4 22321295.148 22321295.088 22321294.189
+ 40.600 29.700
+ -23317973.886 8 -18169841.248 8 20282897.276 20282896.145 20282896.640
+ 48.300 51.700
+ -20163858.061 7 -15712097.006 6 21086740.026 21086738.715 21086739.055
+ 43.900 39.100
+ -4333064.285 5 -3376412.731 4 23663359.619 23663359.770 23663358.909
+ 30.800 24.200
+ -21672200.080 7 -16887410.646 7 20319028.431 20319028.612 20319027.584
+ 44.700 44.500
+ 06 1 1 18 31 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13810684.704 7 -10761565.229 7 20722729.387 20722729.164 20722728.198
+ 45.400 46.100
+ -13930932.842 6 -10855263.483 5 21812705.282 21812705.853 21812704.729
+ 38.100 35.500
+ -5636553.208 5 -4392115.540 4 23168984.916 23168986.028 23168983.961
+ 31.000 29.000
+ -12468117.258 6 -9715404.353 4 22317375.246 22317374.757 22317373.965
+ 40.800 28.800
+ -23324287.348 8 -18174760.839 8 20281695.574 20281694.741 20281695.108
+ 48.300 51.600
+ -20100045.879 7 -15662373.256 6 21098882.917 21098881.660 21098881.992
+ 43.500 38.800
+ -4233160.378 4 -3298565.619 3 23682371.254 23682370.555 23682370.251
+ 29.700 22.600
+ -21676561.052 7 -16890808.808 7 20318198.659 20318198.823 20318197.762
+ 44.700 44.600
+ 06 1 1 18 31 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13839416.990 7 -10783954.016 7 20717261.831 20717261.581 20717260.711
+ 45.600 46.200
+ -14018980.409 6 -10923871.930 5 21795950.395 21795950.749 21795949.910
+ 38.000 34.700
+ -5651988.246 5 -4404142.817 4 23166047.740 23166048.429 23166047.068
+ 31.600 27.900
+ -12488127.217 6 -9730996.523 5 22313567.360 22313567.166 22313566.285
+ 40.600 30.400
+ -23330271.143 8 -18179423.546 8 20280556.987 20280555.973 20280556.466
+ 48.200 51.600
+ -20035788.571 7 -15612302.647 6 21111110.304 21111109.366 21111109.699
+ 43.300 38.800
+ -4133141.528 5 -3220628.891 3 23701404.673 23701403.380 23701403.887
+ 31.300 20.500
+ -21680398.298 7 -16893798.869 7 20317468.664 20317468.596 20317467.710
+ 44.700 44.500
+ 06 1 1 18 32 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13867899.907 7 -10806148.495 7 20711841.838 20711841.437 20711840.731
+ 45.600 46.200
+ -14106670.959 6 -10992202.183 5 21779262.994 21779263.507 21779262.515
+ 37.800 34.400
+ -5666785.294 5 -4415672.987 4 23163232.051 23163232.884 23163231.189
+ 31.000 28.800
+ -12507544.831 6 -9746127.107 5 22309872.570 22309872.004 22309871.184
+ 40.700 30.100
+ -23335924.952 8 -18183829.121 8 20279481.332 20279480.112 20279480.630
+ 48.200 51.600
+ -19971087.159 7 -15561885.986 6 21123422.817 21123421.777 21123422.009
+ 43.600 38.900
+ -4033009.785 4 -3142604.185 3 23720458.572 23720457.835 23720457.615
+ 28.400 18.600
+ -21683712.427 7 -16896381.304 7 20316837.903 20316837.867 20316837.036
+ 44.700 44.500
+ 06 1 1 18 32 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13896132.981 7 -10828148.291 7 20706469.104 20706468.913 20706467.967
+ 45.500 46.200
+ -14194002.778 6 -11060252.911 5 21762644.548 21762644.871 21762644.075
+ 38.400 34.500
+ -5680944.170 5 -4426705.854 4 23160536.988 23160538.349 23160536.210
+ 30.400 28.600
+ -12526369.126 6 -9760795.384 4 22306290.207 22306289.462 22306289.123
+ 40.900 29.900
+ -23341248.749 8 -18187977.543 8 20278468.021 20278467.043 20278467.390
+ 48.200 51.500
+ -19905942.811 7 -15511124.184 6 21135819.423 21135818.386 21135818.650
+ 43.700 38.900
+ -3932766.853 4 -3064492.869 3 23739534.409 23739534.082 23739533.268
+ 27.400 21.600
+ -21686504.195 7 -16898556.706 7 20316306.889 20316306.489 20316305.876
+ 44.800 44.400
+ 06 1 1 18 33 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13924115.831 7 -10849953.105 7 20701144.065 20701143.974 20701142.896
+ 45.100 46.100
+ -14280974.161 6 -11128022.788 5 21746094.183 21746094.761 21746093.949
+ 38.800 35.300
+ -5694463.911 5 -4437240.704 4 23157964.679 23157965.640 23157963.915
+ 31.300 28.400
+ -12544598.749 6 -9775000.275 4 22302821.135 22302820.442 22302820.046
+ 40.800 29.700
+ -23346242.212 8 -18191868.558 8 20277517.790 20277516.751 20277517.251
+ 48.000 51.300
+ -19840356.696 7 -15460018.147 6 21148299.903 21148298.941 21148299.266
+ 43.400 38.200
+ -3832414.825 4 -2986296.534 3 23758630.402 23758630.359 23758629.667
+ 29.000 20.500
+ -21688774.242 7 -16900325.572 7 20315874.542 20315874.535 20315873.774
+ 44.700 44.100
+ 06 1 1 18 33 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13951847.769 7 -10871562.406 7 20695866.992 20695866.732 20695865.795
+ 45.400 46.300
+ -14367583.432 6 -11195510.493 5 21729613.018 21729613.719 21729612.723
+ 38.800 35.700
+ -5707345.033 4 -4447277.929 4 23155512.878 23155514.453 23155512.087
+ 29.700 28.800
+ -12562232.785 6 -9788741.065 4 22299465.710 22299464.897 22299464.398
+ 40.900 29.700
+ -23350905.135 8 -18195502.017 8 20276630.587 20276629.362 20276630.114
+ 48.500 51.400
+ -19774329.926 7 -15408568.739 6 21160864.255 21160863.450 21160863.752
+ 43.600 38.600
+ -3731955.311 4 -2908016.459 3 23777746.772 23777746.846 23777746.019
+ 29.900 18.600
+ -21690523.346 7 -16901688.510 7 20315541.624 20315541.730 20315540.767
+ 44.900 44.400
+ 06 1 1 18 34 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -13979328.418 7 -10892975.896 7 20690637.520 20690637.298 20690636.406
+ 45.500 46.100
+ -14453829.252 6 -11262714.995 5 21713201.019 21713201.558 21713200.785
+ 39.000 35.800
+ -5719587.044 5 -4456817.144 4 23153183.521 23153184.617 23153182.761
+ 30.400 28.400
+ -12579270.461 6 -9802017.173 5 22296223.241 22296222.917 22296222.167
+ 41.000 30.600
+ -23355237.397 8 -18198877.811 8 20275806.187 20275804.968 20275805.612
+ 48.400 51.400
+ -19707863.718 7 -15356776.912 6 21173513.006 21173511.543 21173512.054
+ 43.500 38.300
+ -3631390.365 4 -2829654.214 3 23796884.192 23796883.688 23796883.419
+ 28.800 20.500
+ -21691752.559 7 -16902646.336 7 20315307.694 20315307.840 20315306.881
+ 44.900 44.500
+ 06 1 1 18 34 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14006557.378 7 -10914193.271 7 20685455.944 20685455.775 20685454.811
+ 45.500 46.200
+ -14539709.913 6 -11329634.960 5 21696858.461 21696858.835 21696858.117
+ 38.300 35.700
+ -5731189.856 5 -4465858.277 4 23150975.779 23150977.102 23150975.007
+ 31.800 28.800
+ -12595710.693 6 -9814827.735 5 22293094.928 22293094.576 22293093.708
+ 40.900 30.100
+ -23359239.047 8 -18201995.983 8 20275044.639 20275043.522 20275044.080
+ 48.400 51.500
+ -19640959.210 7 -15304643.557 6 21186244.457 21186243.064 21186243.499
+ 43.400 37.900
+ -3530721.770 4 -2751211.174 3 23816040.431 23816040.777 23816040.182
+ 27.600 20.500
+ -21692462.208 7 -16903199.316 7 20315172.874 20315172.777 20315172.057
+ 45.100 44.400
+ 06 1 1 18 35 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14033534.163 7 -10935214.141 7 20680322.606 20680322.334 20680321.470
+ 45.700 46.500
+ -14625223.765 6 -11396269.094 5 21680585.571 21680586.067 21680585.088
+ 38.200 35.500
+ -5742153.469 5 -4474401.355 4 23148889.761 23148890.403 23148888.926
+ 31.000 28.100
+ -12611552.728 6 -9827172.166 4 22290080.141 22290079.803 22290078.906
+ 41.100 29.500
+ -23362909.617 8 -18204856.169 8 20274346.149 20274345.070 20274345.600
+ 48.400 51.500
+ -19573617.522 7 -15252169.535 6 21199058.826 21199057.631 21199058.115
+ 43.500 37.700
+ -3429951.311 4 -2672688.818 3 23835216.653 23835216.960 23835215.896
+ 28.400 23.000
+ -21692653.085 7 -16903348.052 7 20315136.627 20315136.460 20315135.704
+ 44.900 44.500
+ 06 1 1 18 35 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14060258.135 7 -10956038.017 7 20675237.249 20675236.925 20675236.092
+ 45.600 46.400
+ -14710369.305 6 -11462616.240 5 21664383.549 21664383.433 21664382.929
+ 39.000 35.900
+ -5752477.847 5 -4482446.313 4 23146925.145 23146925.453 23146924.372
+ 31.500 28.800
+ -12626795.385 6 -9839049.562 4 22287179.596 22287179.085 22287178.638
+ 41.100 29.900
+ -23366249.118 8 -18207458.383 8 20273710.608 20273709.587 20273710.048
+ 48.200 51.500
+ -19505839.694 7 -15199355.664 6 21211956.774 21211955.589 21211956.060
+ 43.400 38.100
+ -3329080.838 5 -2594088.527 3 23854412.687 23854412.307 23854411.744
+ 30.100 23.400
+ -21692325.935 7 -16903093.131 7 20315198.843 20315198.729 20315197.931
+ 44.800 44.500
+ 06 1 1 18 36 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14086729.061 7 -10976664.710 7 20670199.949 20670199.557 20670198.756
+ 45.600 46.400
+ -14795144.650 6 -11528674.929 5 21648250.957 21648251.063 21648250.497
+ 39.100 35.500
+ -5762162.549 5 -4489992.821 4 23145081.735 23145082.934 23145081.023
+ 31.100 28.800
+ -12641437.798 6 -9850459.234 5 22284393.779 22284393.151 22284392.184
+ 41.200 30.100
+ -23369257.524 8 -18209802.596 8 20273138.095 20273137.126 20273137.650
+ 48.400 51.500
+ -19437626.947 7 -15146202.907 6 21224937.408 21224936.028 21224936.496
+ 43.100 37.600
+ -3228112.438 4 -2515411.878 2 23873625.095 23873624.993 23873624.442
+ 26.800 17.800
+ -21691481.824 7 -16902435.379 7 20315359.521 20315359.412 20315358.587
+ 44.800 44.600
+ 06 1 1 18 36 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14112946.381 7 -10997093.789 7 20665211.168 20665210.598 20665209.938
+ 45.700 46.400
+ -14879548.566 6 -11594444.185 6 21632189.788 21632189.671 21632189.167
+ 39.300 36.200
+ -5771208.357 5 -4497041.513 4 23143360.175 23143361.334 23143359.419
+ 31.100 28.400
+ -12655479.232 6 -9861400.600 5 22281720.989 22281721.023 22281720.110
+ 41.500 30.400
+ -23371934.397 8 -18211888.472 8 20272629.015 20272627.713 20272628.394
+ 48.500 51.500
+ -19368980.600 7 -15092712.271 6 21238000.447 21237998.903 21237999.393
+ 43.000 37.700
+ -3127047.715 4 -2436660.225 3 23892857.378 23892856.761 23892856.828
+ 28.400 18.600
+ -21690121.571 7 -16901375.444 7 20315618.246 20315618.284 20315617.303
+ 44.800 44.600
+ 06 1 1 18 37 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14138909.537 7 -11017324.814 7 20660270.345 20660270.073 20660269.261
+ 45.700 46.500
+ -14963579.285 6 -11659922.635 6 21616198.742 21616199.263 21616198.334
+ 39.300 36.500
+ -5779615.052 5 -4503592.199 4 23141760.832 23141761.850 23141759.972
+ 30.600 28.600
+ -12668918.786 6 -9871872.980 5 22279163.951 22279163.244 22279162.792
+ 41.200 30.200
+ -23374279.598 8 -18213715.901 8 20272182.634 20272181.442 20272182.016
+ 48.500 51.500
+ -19299902.005 7 -15038884.826 6 21251145.899 21251144.098 21251144.741
+ 43.100 37.200
+ -3025888.566 5 -2357834.945 3 23912108.050 23912107.141 23912107.499
+ 30.400 21.100
+ -21688245.916 7 -16899913.898 7 20315975.047 20315975.166 20315974.190
+ 44.800 44.600
+ 06 1 1 18 37 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14164618.083 7 -11037357.442 7 20655378.103 20655377.865 20655376.994
+ 45.600 46.400
+ -15047235.440 6 -11725109.220 6 21600279.663 21600279.882 21600279.209
+ 39.600 36.000
+ -5787382.521 5 -4509644.757 4 23140282.878 23140283.496 23140281.993
+ 32.000 28.600
+ -12681755.602 6 -9881875.688 4 22276721.630 22276720.445 22276720.107
+ 41.200 29.900
+ -23376292.937 8 -18215284.737 8 20271799.506 20271798.387 20271798.940
+ 48.600 51.600
+ -19230392.208 7 -14984721.377 6 21264373.093 21264371.389 21264372.141
+ 43.400 37.400
+ -2924636.730 4 -2278937.430 3 23931375.323 23931375.118 23931374.642
+ 27.900 22.100
+ -21685855.532 7 -16898051.266 7 20316430.005 20316430.088 20316429.148
+ 44.600 44.700
+ 06 1 1 18 38 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14190071.516 7 -11057191.281 7 20650534.565 20650534.088 20650533.435
+ 45.700 46.500
+ -15130515.586 6 -11790002.811 6 21584431.615 21584432.006 21584431.240
+ 39.100 36.400
+ -5794511.118 5 -4515199.530 4 23138926.198 23138927.048 23138925.445
+ 31.600 28.600
+ -12693988.506 6 -9891407.819 5 22274393.350 22274392.740 22274392.222
+ 41.300 30.100
+ -23377974.360 8 -18216594.935 8 20271479.576 20271478.401 20271478.957
+ 48.400 51.600
+ -19160452.644 7 -14930223.042 6 21277682.148 21277680.525 21277681.176
+ 43.200 37.300
+ -2823294.178 4 -2199969.274 3 23950659.681 23950660.045 23950659.093
+ 27.100 21.600
+ -21682951.365 7 -16895788.287 7 20316982.715 20316982.740 20316981.747
+ 44.800 44.600
+ 06 1 1 18 38 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14215269.397 7 -11076825.990 7 20645739.771 20645739.065 20645738.500
+ 45.300 46.400
+ -15213417.921 6 -11854602.015 6 21568656.372 21568656.152 21568655.877
+ 40.000 36.500
+ -5801000.640 5 -4520256.303 4 23137691.321 23137692.350 23137690.419
+ 31.300 28.800
+ -12705617.272 6 -9900469.200 5 22272180.213 22272179.696 22272179.144
+ 41.000 30.400
+ -23379323.811 8 -18217646.455 8 20271222.656 20271221.631 20271222.064
+ 48.300 51.600
+ -19090084.358 7 -14875390.650 6 21291072.718 21291071.150 21291071.778
+ 43.100 37.100
+ -2721862.554 4 -2120931.712 3 23969963.167 23969962.045 23969962.126
+ 28.400 21.600
+ -21679534.418 7 -16893125.733 7 20317632.704 20317632.992 20317631.898
+ 44.700 44.600
+ 06 1 1 18 39 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14240211.265 7 -11096261.205 7 20640993.241 20640992.903 20640992.066
+ 45.500 46.600
+ -15295941.107 6 -11918905.773 6 21552952.483 21552952.710 21552951.961
+ 39.500 36.500
+ -5806851.194 5 -4524815.174 4 23136577.377 23136579.033 23136576.729
+ 30.800 29.200
+ -12716641.148 6 -9909059.224 5 22270082.674 22270081.897 22270081.440
+ 41.200 30.200
+ -23380340.976 8 -18218439.054 8 20271029.154 20271028.108 20271028.597
+ 48.500 51.600
+ -19019288.968 7 -14820225.439 6 21304544.347 21304543.212 21304543.649
+ 43.100 36.700
+ -2620343.575 4 -2041826.047 3 23989280.471 23989280.141 23989279.810
+ 27.100 18.600
+ -21675605.796 7 -16890064.472 7 20318380.612 20318380.511 20318379.652
+ 44.800 44.500
+ 06 1 1 18 39 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14264896.503 7 -11115496.451 7 20636295.683 20636295.465 20636294.597
+ 45.400 46.600
+ -15378083.491 6 -11982912.789 6 21537321.060 21537321.427 21537320.684
+ 39.900 36.300
+ -5812063.203 5 -4528876.489 4 23135586.480 23135587.150 23135585.394
+ 31.300 28.800
+ -12727059.176 6 -9917177.172 5 22268100.158 22268099.357 22268099.110
+ 41.400 30.200
+ -23381025.764 8 -18218972.659 8 20270898.957 20270897.755 20270898.273
+ 48.500 51.600
+ -18948067.436 7 -14764728.175 6 21318097.366 21318096.243 21318096.662
+ 42.700 36.600
+ -2518739.210 4 -1962653.865 3 24008615.445 24008614.922 24008614.874
+ 27.600 20.500
+ -21671166.313 7 -16886605.136 7 20319225.251 20319225.341 20319224.431
+ 44.900 44.600
+ 06 1 1 18 40 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14289324.701 7 -11134531.411 7 20631647.191 20631646.856 20631646.072
+ 45.300 46.600
+ -15459843.715 6 -12046622.036 6 21521762.740 21521762.803 21521762.265
+ 40.300 36.400
+ -5816636.381 5 -4532440.005 4 23134715.212 23134717.193 23134714.729
+ 30.400 29.000
+ -12736870.696 6 -9924822.517 4 22266232.768 22266232.512 22266231.807
+ 41.400 29.900
+ -23381377.903 8 -18219247.059 8 20270831.925 20270830.704 20270831.241
+ 48.400 51.500
+ -18876421.385 7 -14708900.113 6 21331730.834 21331730.102 21331730.441
+ 42.900 36.800
+ -2417051.210 4 -1883416.482 2 24027966.211 24027965.246 24027965.400
+ 27.100 17.800
+ -21666216.832 7 -16882748.402 7 20320167.162 20320167.196 20320166.249
+ 44.800 44.700
+ 06 1 1 18 40 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14313495.418 7 -11153365.726 7 20627047.632 20627047.424 20627046.467
+ 45.200 46.600
+ -15541220.262 6 -12110032.300 6 21506277.190 21506277.520 21506276.736
+ 40.200 36.600
+ -5820571.168 5 -4535506.076 4 23133967.362 23133968.152 23133966.303
+ 31.600 29.500
+ -12746075.230 6 -9931994.874 5 22264481.474 22264481.019 22264480.256
+ 41.100 30.800
+ -23381397.427 8 -18219262.274 8 20270828.033 20270827.018 20270827.519
+ 48.300 51.400
+ -18804352.002 7 -14652742.186 6 21345445.456 21345444.643 21345444.808
+ 42.700 36.800
+ -2315281.369 4 -1804115.385 3 24047331.850 24047331.871 24047330.919
+ 24.600 20.500
+ -21660758.489 7 -16878495.149 7 20321205.906 20321205.912 20321205.005
+ 44.900 44.700
+ 06 1 1 18 41 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14337408.051 7 -11171998.948 7 20622497.121 20622497.116 20622495.957
+ 45.100 46.900
+ -15622211.514 6 -12173142.333 6 21490865.094 21490865.481 21490864.646
+ 40.600 37.200
+ -5823867.990 5 -4538075.020 4 23133339.486 23133340.773 23133338.759
+ 31.100 29.200
+ -12754671.894 6 -9938693.560 4 22262845.118 22262845.037 22262844.378
+ 41.400 29.900
+ -23381084.006 8 -18219018.059 8 20270887.792 20270886.678 20270887.181
+ 48.400 51.400
+ -18731860.730 7 -14596255.513 6 21359240.227 21359239.258 21359239.419
+ 42.500 36.800
+ -2213431.395 4 -1724751.811 3 24066713.566 24066713.486 24066712.769
+ 27.600 20.500
+ -21654792.164 7 -16873846.067 7 20322341.163 20322341.273 20322340.318
+ 44.900 44.700
+ 06 1 1 18 41 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14361062.199 7 -11190430.751 7 20617995.863 20617995.716 20617994.725
+ 45.100 46.700
+ -15702816.312 6 -12235951.245 6 21475526.663 21475526.804 21475526.283
+ 40.900 37.100
+ -5826527.439 5 -4540147.321 4 23132833.481 23132834.947 23132832.613
+ 30.800 29.200
+ -12762659.931 6 -9944918.008 5 22261325.476 22261324.730 22261324.309
+ 41.100 30.200
+ -23380437.546 8 -18218514.330 8 20271010.682 20271009.640 20271010.143
+ 48.300 51.300
+ -18658948.782 7 -14539441.042 6 21373115.470 21373113.964 21373114.284
+ 42.500 36.400
+ -2111503.101 4 -1645327.229 2 24086110.605 24086109.425 24086109.615
+ 27.100 17.000
+ -21648318.736 7 -16868801.840 7 20323573.041 20323573.139 20323572.111
+ 44.800 44.600
+ 06 1 1 18 42 0.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14384457.332 7 -11208660.726 7 20613544.154 20613543.772 20613542.887
+ 45.400 46.700
+ -15783033.004 6 -12298457.741 6 21460261.685 21460262.058 21460261.255
+ 40.600 36.900
+ -5828549.183 5 -4541722.719 4 23132448.548 23132449.764 23132447.933
+ 30.100 29.000
+ -12770039.310 6 -9950668.165 5 22259921.588 22259920.690 22259920.127
+ 41.100 30.600
+ -23379457.785 8 -18217750.887 8 20271197.032 20271196.092 20271196.488
+ 48.200 51.400
+ -18585617.559 7 -14482299.870 6 21387070.217 21387068.399 21387068.941
+ 42.500 36.400
+ -2009498.184 4 -1565842.879 2 24105520.613 24105520.378 24105519.933
+ 25.600 13.900
+ -21641339.333 7 -16863363.344 7 20324901.013 20324901.218 20324900.118
+ 44.800 44.600
+ 06 1 1 18 42 30.0000000 0 8G 7G 4G 9G20G17G28G11G24
+ -14407592.869 7 -11226688.417 7 20609141.474 20609141.316 20609140.338
+ 45.300 46.900
+ -15862860.124 6 -12360660.669 6 21445071.332 21445071.476 21445070.767
+ 40.700 37.500
+ -5829933.803 5 -4542801.633 4 23132185.289 23132186.305 23132184.525
+ 30.800 29.500
+ -12776809.388 6 -9955943.539 5 22258632.952 22258632.407 22258631.817
+ 41.300 30.800
+ -23378144.715 8 -18216727.719 8 20271446.906 20271445.999 20271446.315
+ 48.200 51.300
+ -18511868.563 7 -14424833.159 6 21401104.192 21401102.380 21401102.765
+ 42.100 36.200
+ -1907418.456 4 -1486300.267 3 24124946.093 24124945.543 24124945.218
+ 24.900 18.600
+ -21633855.105 7 -16857531.480 7 20326325.192 20326325.423 20326324.324
+ 44.800 44.600
+ 06 1 1 18 43 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14430468.387 7 -11244513.497 7 20604788.437 20604788.168 20604787.293
+ 45.500 46.700
+ -15942296.348 6 -12422558.996 6 21429954.774 21429955.066 21429954.418
+ 40.900 37.200
+ -5830682.129 5 -4543384.725 5 23132042.484 23132044.240 23132041.635
+ 30.600 30.200
+ -12782969.296 6 -9960743.466 4 22257460.570 22257459.946 22257459.503
+ 41.400 29.700
+ -147379.343 2 -114840.309 2 24795411.896 24795411.959 24795410.926
+ 17.800 13.900
+ -23376498.043 8 -18215444.605 8 20271760.141 20271759.349 20271759.685
+ 48.200 51.400
+ -18437702.891 7 -14367041.762 6 21415217.071 21415215.595 21415216.023
+ 42.400 36.300
+ -1805265.484 4 -1406700.602 3 24144385.209 24144384.925 24144384.193
+ 25.900 20.500
+ -21625866.904 7 -16851306.912 7 20327845.483 20327845.514 20327844.575
+ 44.900 44.500
+ 06 1 1 18 43 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14453083.382 7 -11262135.575 7 20600485.031 20600484.618 20600483.771
+ 45.200 46.700
+ -16021340.188 6 -12484151.572 6 21414913.135 21414913.436 21414912.706
+ 40.400 36.800
+ -5830794.069 5 -4543471.954 5 23132021.316 23132023.094 23132020.634
+ 31.100 31.000
+ -12788518.467 6 -9965067.489 4 22256404.889 22256404.036 22256403.518
+ 41.300 29.500
+ -257814.054 4 -200893.159 3 24774397.429 24774397.451 24774396.575
+ 24.600 22.100
+ -23374517.720 8 -18213901.505 8 20272137.295 20272136.182 20272136.656
+ 48.300 51.300
+ -18363122.185 7 -14308926.969 5 21429408.922 21429407.935 21429408.146
+ 42.200 35.800
+ -1703041.039 4 -1327045.226 2 24163837.296 24163837.483 24163836.587
+ 25.600 17.800
+ -21617375.553 7 -16844690.282 7 20329461.342 20329461.383 20329460.422
+ 45.000 44.600
+ 06 1 1 18 44 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14475437.372 7 -11279554.272 7 20596230.974 20596230.893 20596229.827
+ 44.800 46.900
+ -16099990.256 6 -12545437.309 6 21399946.670 21399947.024 21399946.315
+ 41.200 38.000
+ -5830269.914 5 -4543063.502 5 23132121.354 23132122.690 23132120.406
+ 31.100 30.600
+ -12793456.851 6 -9968915.574 5 22255465.116 22255464.355 22255463.954
+ 41.500 30.600
+ -368161.700 3 -286878.176 3 24753399.091 24753398.563 24753397.912
+ 22.600 19.900
+ -23372203.525 8 -18212098.245 8 20272577.634 20272576.533 20272577.011
+ 48.200 51.300
+ -18288127.888 7 -14250489.887 5 21443679.764 21443678.784 21443679.184
+ 42.500 35.700
+ -1600746.886 3 -1247335.545 2 24183303.438 24183303.487 24183302.331
+ 23.400 17.800
+ -21608382.388 7 -16837682.624 7 20331172.642 20331172.716 20331171.707
+ 44.900 44.400
+ 06 1 1 18 44 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14497529.769 7 -11296769.127 7 20592027.263 20592026.813 20592026.099
+ 45.400 46.900
+ -16178245.201 6 -12606415.145 6 21385055.084 21385055.574 21385054.778
+ 41.000 38.200
+ -5829110.795 5 -4542160.287 5 23132341.980 23132343.411 23132341.276
+ 31.300 31.300
+ -12797783.805 6 -9972287.221 5 22254641.619 22254641.099 22254640.492
+ 41.200 30.800
+ -478420.872 3 -372794.269 3 24732416.466 24732416.736 24732416.065
+ 19.900 19.300
+ -23369555.620 8 -18210034.950 8 20273081.536 20273080.434 20273080.961
+ 48.300 51.300
+ -18212721.524 7 -14191731.722 5 21458029.174 21458028.292 21458028.488
+ 42.000 35.700
+ -1498384.747 4 -1167572.869 2 24202782.006 24202782.130 24202781.333
+ 25.300 17.000
+ -21598888.472 7 -16830284.773 7 20332979.230 20332979.320 20332978.352
+ 44.800 44.500
+ 06 1 1 18 45 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14519360.049 7 -11313779.738 7 20587873.053 20587872.626 20587871.890
+ 45.300 46.900
+ -16256103.723 6 -12667084.089 6 21370239.216 21370239.358 21370238.815
+ 41.300 37.200
+ -5827316.723 5 -4540762.308 5 23132683.603 23132684.430 23132682.831
+ 31.600 30.200
+ -12801498.789 6 -9975182.007 5 22253934.652 22253934.323 22253933.395
+ 41.200 30.400
+ -588589.933 3 -458640.151 2 24711452.580 24711451.980 24711451.751
+ 23.400 16.100
+ -23366573.897 8 -18207711.538 8 20273648.934 20273647.870 20273648.387
+ 48.400 51.200
+ -18136904.449 6 -14132653.516 5 21472456.458 21472455.868 21472455.930
+ 41.900 35.600
+ -1395956.063 3 -1087758.343 3 24222273.153 24222273.944 24222272.529
+ 22.100 20.500
+ -21588894.843 7 -16822497.533 7 20334880.896 20334881.001 20334879.970
+ 44.800 44.300
+ 06 1 1 18 45 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14540927.866 7 -11330585.835 7 20583768.843 20583768.457 20583767.626
+ 45.000 47.100
+ -16333564.148 6 -12727442.830 6 21355499.046 21355498.957 21355498.585
+ 41.200 37.200
+ -5824888.357 5 -4538870.063 5 23133146.312 23133146.530 23133145.344
+ 32.000 30.100
+ -12804601.659 6 -9977599.826 5 22253343.970 22253343.739 22253342.873
+ 41.300 30.400
+ -698667.422 3 -544414.658 3 24690505.316 24690504.978 24690504.458
+ 18.600 18.600
+ -23363257.703 8 -18205127.494 8 20274280.060 20274278.879 20274279.428
+ 48.300 51.200
+ -18060678.034 6 -14073256.354 5 21486962.500 21486961.369 21486961.552
+ 41.400 35.700
+ -1293462.860 4 -1007893.589 3 24241777.870 24241778.248 24241777.276
+ 26.800 20.500
+ -21578402.703 7 -16814321.846 7 20336877.571 20336877.636 20336876.649
+ 45.000 44.500
+ 06 1 1 18 46 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14562232.621 7 -11347186.942 7 20579714.465 20579714.436 20579713.376
+ 45.000 47.200
+ -16410625.398 6 -12787490.521 6 21340834.588 21340834.915 21340834.104
+ 40.900 37.900
+ -5821826.282 4 -4536484.024 5 23133727.966 23133729.337 23133727.075
+ 29.700 30.100
+ -12807091.801 6 -9979540.200 4 22252869.917 22252869.846 22252869.043
+ 41.400 29.900
+ -808651.646 3 -630116.530 3 24669575.339 24669576.050 24669574.982
+ 23.400 21.600
+ -23359606.908 8 -18202282.726 8 20274974.552 20274973.631 20274974.137
+ 48.400 51.100
+ -17984043.844 6 -14013541.447 6 21501545.438 21501544.526 21501544.549
+ 41.800 36.000
+ -1190906.833 4 -927979.820 2 24261293.623 24261293.293 24261292.882
+ 25.300 17.800
+ -21567413.071 7 -16805758.504 7 20338969.037 20338968.954 20338968.010
+ 45.200 44.500
+ 06 1 1 18 46 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14583273.809 7 -11363582.679 7 20575710.385 20575710.387 20575709.257
+ 45.100 47.100
+ -16487285.978 6 -12847225.998 6 21326246.452 21326246.783 21326246.051
+ 41.300 38.000
+ -5818131.090 5 -4533604.660 4 23134431.580 23134432.273 23134430.686
+ 30.200 29.200
+ -12808968.711 6 -9981002.730 5 22252512.924 22252512.966 22252511.784
+ 41.100 30.800
+ -918541.095 4 -715744.609 3 24648664.733 24648664.308 24648664.031
+ 24.900 19.900
+ -23355621.535 8 -18199177.248 8 20275733.286 20275732.090 20275732.644
+ 48.500 51.200
+ -17907003.564 6 -13953510.097 5 21516205.900 21516204.752 21516204.783
+ 41.700 35.300
+ -1088289.363 4 -848018.220 3 24280820.218 24280821.356 24280819.474
+ 25.300 19.900
+ -21555927.157 7 -16796808.446 7 20341154.541 20341154.736 20341153.740
+ 45.400 44.500
+ 06 1 1 18 47 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14604050.901 7 -11379772.624 7 20571756.822 20571756.530 20571755.662
+ 45.100 47.100
+ -16563544.575 6 -12906648.243 6 21311734.882 21311735.134 21311734.455
+ 41.200 38.100
+ -5813803.014 4 -4530232.115 4 23135254.394 23135255.976 23135253.722
+ 29.700 29.700
+ -12810232.424 6 -9981987.443 5 22252272.763 22252272.297 22252271.397
+ 41.200 30.100
+ -1028334.489 4 -801297.827 2 24627771.508 24627770.841 24627770.927
+ 27.900 17.800
+ -23351301.717 8 -18195811.162 8 20276555.276 20276554.076 20276554.696
+ 48.600 51.200
+ -17829558.497 6 -13893163.329 5 21530943.824 21530941.990 21530942.510
+ 41.600 35.300
+ -985612.466 3 -768010.292 3 24300359.257 24300360.369 24300358.529
+ 23.400 19.900
+ -21543946.165 7 -16787472.617 7 20343434.687 20343434.670 20343433.726
+ 45.200 44.500
+ 06 1 1 18 47 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14624563.323 7 -11395756.330 7 20567853.431 20567853.188 20567852.277
+ 45.100 47.200
+ -16639399.917 6 -12965756.255 6 21297300.116 21297300.384 21297299.682
+ 41.400 38.500
+ -5808842.611 4 -4526366.867 4 23136198.346 23136199.807 23136197.603
+ 29.200 28.800
+ -12810882.527 6 -9982494.023 5 22252148.683 22252148.381 22252147.572
+ 41.300 30.400
+ -1138030.011 4 -886774.766 3 24606897.577 24606896.770 24606896.407
+ 26.500 19.900
+ -23346646.964 8 -18192184.090 8 20277441.064 20277439.862 20277440.447
+ 48.600 51.100
+ -17751710.079 6 -13832502.262 5 21545757.835 21545755.921 21545756.563
+ 41.600 35.100
+ -882877.637 3 -687957.277 2 24319909.162 24319909.414 24319908.382
+ 23.400 16.100
+ -21531471.103 7 -16777751.796 7 20345808.516 20345808.515 20345807.618
+ 45.200 44.400
+ 06 1 1 18 48 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14644810.581 7 -11411533.418 7 20564000.400 20564000.312 20563999.216
+ 44.900 47.100
+ -16714850.579 6 -13024548.930 6 21282942.292 21282942.537 21282942.008
+ 41.600 38.100
+ -5803250.946 4 -4522009.736 4 23137262.940 23137264.173 23137262.046
+ 29.700 29.500
+ -12810918.802 6 -9982522.292 5 22252142.157 22252141.613 22252140.740
+ 41.200 30.400
+ -1247626.152 3 -972174.254 3 24586040.697 24586041.537 24586040.600
+ 22.600 23.400
+ -23341657.254 8 -18188296.009 8 20278390.595 20278389.431 20278389.998
+ 48.400 51.200
+ -17673459.781 6 -13771528.040 5 21560648.759 21560646.756 21560647.320
+ 41.600 35.500
+ -780086.575 3 -607860.314 2 24339469.128 24339470.244 24339468.787
+ 23.000 13.900
+ -21518503.213 7 -16767646.955 7 20348276.141 20348276.097 20348275.224
+ 45.200 44.400
+ 06 1 1 18 48 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14664792.273 7 -11427103.572 7 20560197.898 20560197.878 20560196.871
+ 45.200 47.100
+ -16789895.510 6 -13083025.465 6 21268661.868 21268661.632 21268661.432
+ 41.800 37.800
+ -5797028.614 5 -4517161.169 4 23138446.909 23138447.966 23138446.185
+ 31.500 29.200
+ -12810341.027 6 -9982072.079 5 22252252.250 22252251.688 22252250.926
+ 41.200 30.200
+ -1357121.676 3 -1057495.338 3 24565204.718 24565204.868 24565204.187
+ 23.800 22.600
+ -23336332.784 8 -18184147.074 8 20279403.561 20279402.647 20279403.125
+ 48.500 51.100
+ -17594809.348 6 -13710242.034 5 21575614.905 21575613.506 21575613.814
+ 41.300 35.700
+ -677240.819 3 -527720.839 3 24359041.667 24359041.680 24359040.414
+ 23.800 18.600
+ -21505043.676 7 -16757159.015 7 20350837.349 20350837.347 20350836.474
+ 45.300 44.400
+ 06 1 1 18 49 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14684507.709 7 -11442466.249 7 20556446.503 20556446.203 20556445.331
+ 45.200 47.400
+ -16864533.226 6 -13141184.692 6 21254458.664 21254458.883 21254458.249
+ 41.900 38.400
+ -5790176.288 5 -4511821.700 5 23139751.156 23139752.199 23139750.276
+ 31.500 30.100
+ -12809149.203 6 -9981143.384 5 22252478.986 22252478.482 22252477.658
+ 41.500 31.000
+ -1466514.785 4 -1142736.637 3 24544387.945 24544387.750 24544387.339
+ 27.100 18.600
+ -23330672.950 8 -18179736.822 8 20280480.643 20280479.636 20280480.172
+ 48.600 51.100
+ -17515760.337 6 -13648645.444 5 21590656.920 21590656.113 21590656.176
+ 41.400 35.400
+ -574342.242 4 -447540.153 3 24378621.887 24378622.688 24378621.274
+ 25.600 18.600
+ -21491093.767 7 -16746288.967 7 20353492.043 20353492.082 20353491.127
+ 45.200 44.500
+ 06 1 1 18 49 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14703956.379 7 -11457621.062 7 20552745.510 20552745.302 20552744.364
+ 45.000 47.300
+ -16938762.655 7 -13199025.763 6 21240333.202 21240333.348 21240332.865
+ 42.000 38.600
+ -5782694.687 5 -4505991.889 5 23141174.811 23141175.921 23141173.827
+ 32.000 30.100
+ -12807342.700 6 -9979735.720 4 22252822.597 22252822.044 22252821.351
+ 41.400 29.200
+ -1575804.014 3 -1227896.980 3 24523590.915 24523591.029 24523590.226
+ 23.800 22.100
+ -23324677.696 8 -18175065.207 8 20281621.651 20281620.533 20281621.006
+ 48.500 51.100
+ -17436314.161 6 -13586739.379 5 21605775.289 21605774.060 21605774.375
+ 41.000 34.600
+ -471392.279 4 -367319.424 3 24398213.627 24398213.316 24398212.806
+ 25.300 19.300
+ -21476654.605 7 -16735037.677 7 20356239.740 20356239.759 20356238.785
+ 45.200 44.500
+ 06 1 1 18 50 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14723137.911 7 -11472567.709 7 20549095.450 20549095.162 20549094.230
+ 44.900 47.200
+ -17012582.309 7 -13256547.535 6 21226285.914 21226285.967 21226285.411
+ 42.200 38.700
+ -5774584.739 5 -4499672.441 5 23142717.953 23142719.094 23142717.334
+ 32.400 30.400
+ -12804921.436 6 -9977849.026 5 22253283.192 22253282.717 22253282.120
+ 41.600 30.200
+ -1684988.194 3 -1312975.486 4 24502813.773 24502813.760 24502813.140
+ 23.400 24.600
+ -23318347.023 8 -18170132.220 8 20282826.276 20282825.256 20282825.670
+ 48.400 51.300
+ -17356472.415 6 -13524525.070 5 21620968.479 21620967.561 21620967.709
+ 41.100 34.300
+ -368392.734 4 -287060.129 3 24417813.347 24417814.096 24417812.503
+ 24.900 20.500
+ -21461727.303 7 -16723406.021 7 20359080.181 20359080.394 20359079.274
+ 45.300 44.700
+ 06 1 1 18 50 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14742051.672 7 -11487305.703 7 20545496.248 20545495.931 20545495.077
+ 44.900 47.200
+ -17085991.026 7 -13313749.093 6 21212316.749 21212316.783 21212316.390
+ 42.400 39.300
+ -5765847.269 5 -4492864.037 5 23144380.967 23144381.943 23144380.148
+ 32.300 30.600
+ -12801885.303 6 -9975483.201 5 22253861.029 22253860.617 22253859.934
+ 41.400 30.400
+ -1794065.264 3 -1397970.512 3 24482057.557 24482056.703 24482056.455
+ 23.400 21.600
+ -23311680.740 8 -18164937.723 8 20284094.818 20284093.821 20284094.239
+ 48.300 51.200
+ -17276236.846 6 -13462003.885 5 21636236.496 21636235.965 21636235.953
+ 40.700 34.300
+ -265344.942 3 -206763.195 2 24437422.327 24437422.984 24437421.461
+ 23.800 17.000
+ -21446313.256 7 -16711395.082 7 20362013.602 20362013.614 20362012.611
+ 45.100 44.400
+ 06 1 1 18 51 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14760697.142 7 -11501834.642 7 20541948.005 20541947.793 20541946.906
+ 44.800 47.100
+ -17158987.547 7 -13370629.462 6 21198425.950 21198425.988 21198425.473
+ 42.500 39.300
+ -5756482.886 5 -4485567.097 4 23146162.693 23146163.633 23146161.953
+ 32.400 29.900
+ -12798234.295 6 -9972638.253 5 22254556.093 22254555.346 22254554.816
+ 41.500 30.200
+ -1903033.882 4 -1482881.006 2 24461321.399 24461320.235 24461320.325
+ 26.200 17.800
+ -23304678.750 8 -18159481.633 8 20285427.294 20285426.243 20285426.705
+ 48.300 51.100
+ -17195609.090 6 -13399177.103 5 21651579.892 21651578.917 21651579.054
+ 40.800 34.400
+ -162250.618 3 -126429.970 2 24457039.626 24457040.858 24457039.176
+ 21.100 17.000
+ -21430413.835 7 -16699005.928 7 20365039.022 20365039.148 20365038.116
+ 45.200 44.700
+ 06 1 1 18 51 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14779073.818 7 -11516154.122 7 20538451.010 20538450.828 20538449.896
+ 45.100 47.400
+ -17231570.648 7 -13427187.686 6 21184613.819 21184613.573 21184613.333
+ 42.600 39.000
+ -5746492.352 5 -4477782.279 5 23148063.524 23148064.821 23148062.726
+ 31.800 30.200
+ -12793968.424 6 -9969314.199 5 22255367.850 22255367.097 22255366.661
+ 41.500 30.400
+ -2011892.497 4 -1567705.821 3 24440606.449 24440605.071 24440605.558
+ 27.600 19.900
+ -23297340.808 8 -18153763.759 8 20286823.571 20286822.602 20286823.052
+ 48.100 51.100
+ -17114590.548 6 -13336045.824 5 21666997.529 21666996.184 21666996.459
+ 40.400 34.000
+ -59111.247 3 -46061.683 2 24476665.160 24476668.373 24476665.320
+ 22.100 15.100
+ -21414030.251 7 -16686239.502 7 20368156.643 20368156.803 20368155.787
+ 45.200 44.400
+ 06 1 1 18 52 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14797181.129 7 -11530263.716 7 20535005.485 20535005.124 20535004.257
+ 45.000 47.000
+ -17303739.214 7 -13483422.905 6 21170880.696 21170880.352 21170880.106
+ 42.600 38.600
+ -5735877.335 5 -4469510.835 5 23150083.811 23150085.128 23150083.023
+ 32.600 31.100
+ -12789087.586 6 -9965510.947 4 22256296.384 22256295.673 22256295.131
+ 41.200 29.200
+ -2120639.734 4 -1652443.888 2 24419911.903 24419911.277 24419911.236
+ 24.600 17.000
+ -23289666.865 8 -18147784.071 8 20288283.947 20288282.968 20288283.382
+ 48.300 51.200
+ -17033182.920 6 -13272611.356 5 21682488.997 21682487.628 21682487.915
+ 40.200 34.300
+ 44071.429 3 34340.396 1 24496301.775 24496302.672 24496300.955
+ 22.100 9.000
+ -21397163.973 7 -16673096.953 7 20371366.325 20371366.355 20371365.408
+ 45.300 44.400
+ 06 1 1 18 52 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14815018.499 7 -11544162.963 7 20531610.808 20531610.755 20531609.759
+ 44.800 47.100
+ -17375491.756 7 -13539333.947 6 21157226.474 21157226.436 21157225.987
+ 42.400 39.300
+ -5724637.608 5 -4460752.620 5 23152222.634 23152223.730 23152221.935
+ 32.700 30.400
+ -12783591.551 6 -9961228.321 5 22257342.048 22257341.589 22257341.068
+ 41.200 30.200
+ -2229274.239 3 -1737094.023 2 24399239.198 24399238.525 24399238.454
+ 21.100 17.800
+ -23281656.894 8 -18141542.543 8 20289808.075 20289807.200 20289807.520
+ 48.100 51.100
+ -16951387.984 6 -13208875.096 5 21698054.221 21698052.909 21698052.962
+ 40.300 34.400
+ 147295.935 3 114775.096 2 24515945.151 24515945.430 24515944.855
+ 22.600 15.100
+ -21379816.109 7 -16659579.142 7 20374667.466 20374667.581 20374666.601
+ 45.400 44.500
+ 06 1 1 18 53 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14832585.538 7 -11557851.562 7 20528268.200 20528267.816 20528267.030
+ 44.800 47.000
+ -17446827.400 7 -13594920.135 6 21143651.628 21143651.624 21143651.190
+ 42.500 39.400
+ -5712774.468 5 -4451508.630 5 23154480.057 23154481.174 23154479.132
+ 31.600 30.400
+ -12777480.562 6 -9956466.515 5 22258505.067 22258504.779 22258503.881
+ 41.200 30.200
+ -2337794.141 4 -1821654.924 2 24378589.002 24378587.676 24378588.233
+ 25.300 16.100
+ -23273310.688 7 -18135039.001 8 20291396.350 20291395.393 20291395.746
+ 47.900 51.000
+ -16869207.420 6 -13144838.350 5 21713692.509 21713691.535 21713691.413
+ 40.400 34.300
+ 250560.884 4 195241.242 2 24535596.574 24535597.158 24535595.556
+ 24.600 17.000
+ -21361987.912 7 -16645687.043 7 20378060.189 20378060.175 20378059.289
+ 45.500 44.500
+ 06 1 1 18 53 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14849881.679 7 -11571329.068 7 20524977.037 20524976.505 20524975.729
+ 44.900 47.400
+ -17517744.797 7 -13650180.413 6 21130156.210 21130156.607 21130155.942
+ 42.400 39.700
+ -5700289.359 5 -4441779.984 5 23156856.031 23156857.245 23156855.059
+ 31.500 30.100
+ -12770754.547 6 -9951225.472 5 22259784.737 22259784.794 22259783.590
+ 41.200 30.800
+ -2446198.249 4 -1906125.596 3 24357960.230 24357959.087 24357959.725
+ 28.100 19.300
+ -23264628.160 7 -18128273.397 8 20293048.629 20293047.637 20293048.037
+ 47.800 51.000
+ -16786642.548 6 -13080502.134 5 21729403.937 21729402.811 21729403.033
+ 40.500 33.600
+ 353864.239 3 275737.342 3 24555255.667 24555255.201 24555254.577
+ 23.800 18.600
+ -21343680.729 7 -16631421.711 7 20381544.004 20381543.929 20381543.113
+ 45.400 44.400
+ 06 1 1 18 54 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14866906.370 7 -11584595.055 7 20521737.143 20521736.802 20521735.955
+ 44.800 47.100
+ -17588242.927 7 -13705113.990 6 21116740.809 21116741.291 21116740.557
+ 42.700 40.000
+ -5687183.006 5 -4431567.258 5 23159349.982 23159351.400 23159349.330
+ 32.400 30.400
+ -12763413.631 6 -9945505.275 4 22261181.608 22261181.565 22261180.633
+ 41.300 29.900
+ -2554484.805 4 -1990504.709 3 24337354.362 24337353.108 24337353.377
+ 26.800 22.600
+ -23255609.107 8 -18121245.569 8 20294764.742 20294763.915 20294764.189
+ 48.000 51.000
+ -16703695.398 6 -13015868.028 5 21745188.384 21745187.202 21745187.504
+ 40.700 33.500
+ 457204.444 3 356262.134 3 24574918.606 24574920.200 24574918.405
+ 22.100 18.600
+ -21324895.799 7 -16616784.106 7 20385118.608 20385118.623 20385117.729
+ 45.400 44.600
+ 06 1 1 18 54 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14883659.012 7 -11597649.053 7 20518549.195 20518548.832 20518548.067
+ 44.800 47.300
+ -17658320.433 7 -13759719.812 6 21103405.763 21103405.737 21103405.395
+ 42.800 39.200
+ -5673456.387 5 -4420871.195 4 23161962.357 23161963.231 23161961.489
+ 32.700 29.500
+ -12755457.821 6 -9939305.947 5 22262696.022 22262695.336 22262694.941
+ 41.600 30.600
+ -2662652.484 4 -2074791.134 4 24316769.395 24316769.573 24316769.014
+ 27.100 24.200
+ -23246253.417 7 -18113955.419 8 20296545.137 20296544.264 20296544.579
+ 47.900 51.000
+ -16620367.282 6 -12950937.077 5 21761044.911 21761044.185 21761044.106
+ 40.100 33.600
+ 560580.321 3 436814.740 2 24594590.848 24594591.191 24594590.155
+ 22.100 13.900
+ -21305634.648 7 -16601775.423 7 20388783.940 20388783.910 20388782.980
+ 45.300 44.500
+ 06 1 1 18 55 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14900139.091 7 -11610490.669 7 20515412.786 20515412.843 20515411.774
+ 44.700 47.100
+ -17727976.237 7 -13813997.038 6 21090150.823 21090150.557 21090150.413
+ 43.000 39.300
+ -5659110.948 5 -4409692.929 4 23164692.005 23164693.069 23164691.437
+ 32.100 29.200
+ -12746887.272 6 -9932627.605 5 22264327.021 22264326.465 22264325.804
+ 41.100 30.400
+ -2770699.546 4 -2158983.594 4 24296209.115 24296208.697 24296208.410
+ 25.900 25.600
+ -23236561.113 8 -18106402.977 8 20298389.620 20298388.679 20298389.058
+ 48.100 51.100
+ -16536660.388 6 -12885710.973 5 21776974.721 21776973.140 21776973.407
+ 40.000 33.400
+ 663989.999 3 517393.697 2 24614269.388 24614269.148 24614268.301
+ 20.500 12.600
+ -21285898.354 7 -16586396.501 7 20392539.604 20392539.592 20392538.658
+ 45.400 44.700
+ 06 1 1 18 55 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14916346.172 7 -11623119.554 7 20512328.848 20512328.710 20512327.734
+ 44.700 47.200
+ -17797209.364 7 -13867944.899 6 21076976.237 21076975.943 21076975.729
+ 43.100 39.600
+ -5644146.786 5 -4398032.548 4 23167539.953 23167540.853 23167538.951
+ 32.100 29.000
+ -12737701.892 6 -9925470.173 5 22266074.405 22266074.398 22266073.359
+ 41.100 30.100
+ -2878624.703 4 -2243081.048 4 24275671.980 24275671.354 24275671.141
+ 24.900 25.300
+ -23226532.010 8 -18098588.093 8 20300297.945 20300297.107 20300297.523
+ 48.200 51.000
+ -16452576.123 6 -12820190.815 5 21792975.147 21792973.949 21792974.253
+ 40.300 33.100
+ 767432.089 3 597997.870 2 24633953.931 24633953.237 24633952.896
+ 18.600 17.800
+ -21265688.560 7 -16570648.614 7 20396385.431 20396385.427 20396384.388
+ 45.300 44.600
+ 06 1 1 18 56 0.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14932279.586 7 -11635535.199 7 20509296.978 20509296.638 20509295.780
+ 44.600 47.000
+ -17866018.387 7 -13921562.294 6 21063882.028 21063881.993 21063881.656
+ 43.200 39.700
+ -5628565.821 5 -4385891.548 4 23170504.405 23170505.818 23170503.652
+ 32.000 28.800
+ -12727901.920 6 -9917833.834 5 22267939.702 22267939.203 22267938.520
+ 41.100 30.200
+ -2986426.554 4 -2327082.400 3 24255157.406 24255156.829 24255156.765
+ 25.600 22.600
+ -23216166.021 8 -18090510.698 8 20302270.654 20302269.655 20302270.106
+ 48.300 51.000
+ -16368116.453 6 -12754378.130 5 21809047.406 21809046.041 21809046.232
+ 39.500 33.200
+ 870905.144 3 678626.215 2 24653642.777 24653643.748 24653642.621
+ 20.500 17.000
+ -21245006.788 7 -16554532.953 7 20400320.863 20400321.040 20400319.864
+ 45.200 44.600
+ 06 1 1 18 56 30.0000000 0 9G 7G 4G 9G20G 2G17G28G11G24
+ -14947938.791 7 -11647737.172 7 20506316.955 20506316.854 20506315.816
+ 44.700 47.100
+ -17934402.493 7 -13974848.588 6 21050868.970 21050868.945 21050868.631
+ 43.100 39.800
+ -5612369.278 5 -4373270.871 4 23173586.966 23173587.576 23173585.951
+ 32.400 29.000
+ -12717487.710 6 -9909718.869 5 22269921.735 22269920.922 22269920.456
+ 41.400 30.100
+ -3094103.441 4 -2410986.395 3 24234667.377 24234666.708 24234666.550
+ 25.600 22.600
+ -23205462.938 8 -18082170.635 8 20304307.384 20304306.443 20304306.833
+ 48.300 50.900
+ -16283282.918 6 -12688274.125 5 21825190.093 21825189.335 21825189.367
+ 39.500 33.100
+ 974407.518 3 759277.402 2 24673339.789 24673340.076 24673338.866
+ 22.600 15.100
+ -21223854.224 7 -16538050.441 7 20404346.271 20404346.256 20404345.156
+ 45.100 44.600
+ 06 1 1 18 57 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -14963323.388 7 -11659725.164 7 20503389.614 20503389.287 20503388.364
+ 44.700 47.000
+ -18002360.563 7 -14027802.896 6 21037936.918 21037936.957 21037936.587
+ 43.100 40.200
+ -5595557.530 5 -4360170.805 4 23176785.932 23176786.777 23176784.955
+ 32.600 27.900
+ -12706459.356 6 -9901125.351 5 22272019.991 22272019.422 22272018.920
+ 41.400 30.200
+ -3201653.809 4 -2494791.811 3 24214201.266 24214200.450 24214200.519
+ 27.400 21.100
+ -23194422.618 8 -18073567.789 8 20306408.398 20306407.422 20306407.834
+ 48.300 51.000
+ -16198077.109 6 -12621880.028 5 21841403.717 21841403.551 21841403.359
+ 39.100 33.000
+ -21202232.344 7 -16521202.232 7 20408460.795 20408460.775 20408459.732
+ 45.500 44.600
+ 06 1 1 18 57 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -14978432.765 7 -11671498.701 7 20500514.384 20500513.973 20500513.233
+ 44.800 47.100
+ -18069891.488 7 -14080424.376 6 21025086.192 21025086.263 21025085.821
+ 43.200 39.800
+ -5578132.166 5 -4346592.596 4 23180101.899 23180102.558 23180101.004
+ 32.100 27.400
+ -12694817.078 6 -9892053.447 5 22274235.248 22274234.690 22274234.139
+ 41.200 30.100
+ -3309076.431 4 -2578497.686 3 24193759.305 24193758.578 24193758.632
+ 27.100 19.900
+ -23183045.193 8 -18064702.270 8 20308573.474 20308572.447 20308572.867
+ 48.300 51.000
+ -16112500.946 6 -12555197.342 5 21857688.799 21857688.296 21857688.085
+ 39.200 33.000
+ -21180142.592 7 -16503989.444 7 20412664.281 20412664.225 20412663.249
+ 45.500 44.400
+ 06 1 1 18 58 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -14993266.337 7 -11683057.330 7 20497691.331 20497691.224 20497690.261
+ 44.600 47.100
+ -18136994.373 7 -14132712.315 6 21012316.900 21012316.847 21012316.453
+ 43.100 39.900
+ -5560094.617 5 -4332537.381 4 23183534.230 23183535.161 23183533.298
+ 31.600 28.800
+ -12682561.208 6 -9882503.412 5 22276567.854 22276567.372 22276566.554
+ 41.100 30.800
+ -3416369.637 4 -2662102.728 2 24173342.192 24173341.045 24173341.215
+ 26.200 17.800
+ -23171330.390 8 -18055573.854 8 20310802.584 20310801.699 20310802.076
+ 48.400 50.900
+ -16026556.259 6 -12488227.502 5 21874043.964 21874043.039 21874042.907
+ 38.800 32.600
+ -21157586.285 7 -16486413.106 7 20416956.526 20416956.581 20416955.611
+ 45.600 44.400
+ 06 1 1 18 58 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15007823.588 7 -11694400.641 7 20494921.375 20494921.072 20494920.180
+ 44.600 47.300
+ -18203668.007 7 -14184665.775 6 20999629.446 20999629.406 20999628.963
+ 43.100 40.300
+ -5541445.548 5 -4318005.630 4 23187083.265 23187083.847 23187082.345
+ 32.000 27.400
+ -12669692.186 6 -9872475.598 4 22279016.868 22279015.969 22279015.675
+ 41.400 29.700
+ -3523532.208 4 -2745605.977 2 24152949.382 24152948.541 24152948.753
+ 26.500 15.100
+ -23159278.166 8 -18046182.511 8 20313096.206 20313095.217 20313095.585
+ 48.200 51.000
+ -15940244.906 6 -12420971.936 5 21890469.257 21890467.645 21890467.829
+ 38.900 33.000
+ -21134564.750 7 -16468474.251 7 20421337.250 20421337.452 20421336.393
+ 45.600 44.400
+ 06 1 1 18 59 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15022103.952 7 -11705528.199 7 20492203.874 20492203.622 20492202.744
+ 44.600 47.100
+ -18269911.207 7 -14236283.834 6 20987023.777 20987023.783 20987023.263
+ 43.200 40.500
+ -5522186.757 5 -4302998.779 4 23190747.746 23190748.867 23190746.991
+ 31.600 28.100
+ -12656210.248 6 -9861970.184 5 22281582.209 22281581.405 22281581.034
+ 41.200 30.100
+ -3630562.389 4 -2829006.104 3 24132582.406 24132581.536 24132581.609
+ 28.100 20.500
+ -23146888.270 8 -18036528.049 8 20315453.852 20315452.877 20315453.255
+ 48.200 50.800
+ -15853568.573 6 -12353431.990 5 21906962.938 21906961.645 21906961.602
+ 38.900 33.000
+ -21111079.698 7 -16450174.212 7 20425806.348 20425806.519 20425805.479
+ 45.700 44.500
+ 06 1 1 18 59 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15036107.029 7 -11716439.688 7 20489539.113 20489538.875 20489537.949
+ 44.600 47.000
+ -18335723.090 7 -14287565.805 6 20974500.190 20974500.361 20974499.730
+ 43.600 40.900
+ -5502319.262 5 -4287517.622 4 23194528.585 23194529.697 23194527.830
+ 32.300 28.600
+ -12642115.597 6 -9850987.329 5 22284264.431 22284263.751 22284262.871
+ 41.200 31.000
+ -3737458.764 4 -2912301.937 3 24112241.082 24112239.932 24112240.036
+ 27.400 21.600
+ -23134160.703 8 -18026610.470 8 20317875.731 20317874.803 20317875.150
+ 48.200 50.800
+ -15766528.951 6 -12285608.943 5 21923525.058 21923524.736 21923524.461
+ 38.900 33.000
+ -21087132.608 7 -16431514.143 7 20430363.351 20430363.426 20430362.536
+ 45.800 44.400
+ 06 1 1 19 0 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15049832.066 7 -11727134.522 7 20486927.551 20486927.111 20486926.333
+ 44.700 47.000
+ -18401102.531 7 -14338510.801 6 20962058.565 20962058.990 20962058.225
+ 43.600 40.800
+ -5481844.769 5 -4271563.476 4 23198424.482 23198425.636 23198423.638
+ 31.100 29.000
+ -12627408.630 6 -9839527.338 5 22287062.907 22287062.606 22287061.660
+ 41.100 31.100
+ -3844219.974 4 -2995492.485 3 24091924.930 24091924.052 24091924.229
+ 29.900 22.100
+ -23121095.541 8 -18016429.827 8 20320361.941 20320360.965 20320361.349
+ 48.200 50.700
+ -15679127.917 6 -12217504.274 5 21940156.962 21940156.558 21940156.466
+ 39.200 32.000
+ -21062724.717 7 -16412495.006 7 20435007.909 20435008.105 20435007.107
+ 45.600 44.300
+ 06 1 1 19 0 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15063278.457 7 -11737612.229 7 20484368.556 20484368.392 20484367.465
+ 44.900 47.000
+ -18466048.596 7 -14389118.110 6 20949699.782 20949699.778 20949699.398
+ 43.600 40.200
+ -5460764.038 5 -4255136.933 4 23202436.165 23202437.442 23202435.384
+ 31.000 29.500
+ -12612089.972 6 -9827590.717 5 22289977.568 22289977.761 22289976.453
+ 41.100 31.100
+ -3950844.457 4 -3078576.496 3 24071635.043 24071634.088 24071634.334
+ 27.100 23.400
+ -23107692.486 8 -18005985.887 8 20322912.574 20322911.471 20322911.931
+ 48.100 50.700
+ -15591367.328 6 -12149119.436 5 21956857.227 21956856.919 21956856.581
+ 38.200 32.400
+ -21037857.695 7 -16393118.109 7 20439739.837 20439740.246 20439739.023
+ 45.600 44.400
+ 06 1 1 19 1 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15076445.891 7 -11747872.565 7 20481863.005 20481862.656 20481861.863
+ 44.900 47.100
+ -18530560.427 7 -14439387.059 6 20937423.873 20937423.677 20937423.330
+ 43.700 40.600
+ -5439078.961 5 -4238239.497 4 23206562.546 23206563.756 23206561.810
+ 31.500 28.600
+ -12596159.779 6 -9815177.569 5 22293009.368 22293009.048 22293007.961
+ 41.000 31.500
+ -4057330.764 4 -3161552.823 4 24051371.973 24051370.531 24051370.531
+ 26.500 25.300
+ -23093951.489 8 -17995278.618 8 20325527.250 20325526.412 20325526.787
+ 48.200 50.600
+ -15503248.832 6 -12080455.716 5 21973626.391 21973625.051 21973625.181
+ 37.700 31.500
+ -21012532.831 7 -16373384.453 7 20444559.133 20444559.446 20444558.210
+ 45.500 44.400
+ 06 1 1 19 1 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15089333.695 7 -11757915.010 7 20479410.763 20479410.135 20479409.526
+ 44.900 47.000
+ -18594636.918 7 -14489316.777 6 20925230.455 20925230.304 20925230.068
+ 44.000 40.800
+ -5416791.094 5 -4220872.329 4 23210803.619 23210804.951 23210802.793
+ 31.100 28.100
+ -12579618.548 6 -9802288.288 5 22296156.797 22296156.632 22296155.685
+ 41.300 30.800
+ -4163677.502 4 -3244420.404 4 24031133.551 24031133.486 24031133.081
+ 27.900 26.200
+ -23079872.432 8 -17984307.928 8 20328206.624 20328205.606 20328205.970
+ 48.200 50.600
+ -15414774.464 6 -12011514.698 5 21990463.151 21990461.454 21990461.592
+ 37.700 32.000
+ -20986751.761 7 -16353295.303 7 20449465.154 20449465.379 20449464.225
+ 45.500 44.300
+ 06 1 1 19 2 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15101941.409 7 -11767739.200 7 20477011.419 20477010.999 20477010.196
+ 44.800 47.100
+ -18658277.256 7 -14538906.639 6 20913120.045 20913120.060 20913119.603
+ 43.800 40.800
+ -5393901.098 5 -4203035.967 4 23215159.893 23215160.923 23215159.038
+ 30.800 29.200
+ -12562466.644 6 -9788923.152 5 22299420.944 22299420.542 22299419.913
+ 41.400 31.000
+ -4269883.376 4 -3327178.201 4 24010923.564 24010923.109 24010922.846
+ 27.100 26.800
+ -23065455.251 8 -17973073.759 8 20330950.026 20330949.156 20330949.524
+ 48.100 50.800
+ -15325946.113 6 -11942297.841 5 22007366.150 22007364.855 22007364.910
+ 37.700 31.500
+ -20960515.883 7 -16332851.763 7 20454457.668 20454457.863 20454456.759
+ 45.700 44.400
+ 06 1 1 19 2 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15114268.372 7 -11777344.620 7 20474665.510 20474665.374 20474664.433
+ 44.700 47.100
+ -18721480.349 7 -14588155.786 6 20901092.939 20901092.920 20901092.483
+ 43.800 41.000
+ -5370410.503 5 -4184731.621 4 23219629.916 23219630.890 23219629.125
+ 31.300 27.600
+ -12544704.627 6 -9775082.610 5 22302801.256 22302800.399 22302799.941
+ 41.500 30.400
+ -4375946.411 4 -3409824.739 4 23990740.459 23990739.972 23990739.810
+ 27.900 25.300
+ -23050699.890 8 -17961576.076 8 20333757.802 20333756.971 20333757.320
+ 48.000 50.500
+ -15236765.506 6 -11872806.497 5 22024336.108 22024335.704 22024335.390
+ 37.700 31.300
+ -20933826.915 7 -16312055.167 7 20459536.531 20459536.614 20459535.580
+ 45.700 44.400
+ 06 1 1 19 3 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15126314.040 7 -11786730.847 7 20472373.379 20472373.120 20472372.283
+ 44.900 47.200
+ -18784245.346 7 -14637063.565 6 20889149.064 20889148.920 20889148.602
+ 43.900 40.700
+ -5346321.355 5 -4165960.871 4 23224213.834 23224214.989 23224213.117
+ 30.400 27.600
+ -12526333.212 6 -9760767.201 5 22306297.020 22306296.406 22306295.742
+ 41.200 30.600
+ -4481865.439 4 -3492359.037 4 23970584.616 23970584.486 23970584.029
+ 27.400 27.400
+ -23035606.331 8 -17949814.862 8 20336630.029 20336629.119 20336629.573
+ 48.400 50.600
+ -15147234.742 6 -11803042.310 5 22041372.633 22041372.818 22041372.364
+ 37.800 31.300
+ -20906686.179 7 -16290906.546 7 20464701.103 20464701.289 20464700.228
+ 45.900 44.500
+ 06 1 1 19 3 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15138077.956 7 -11795897.531 7 20470134.941 20470134.425 20470133.730
+ 44.900 47.100
+ -18846571.127 7 -14685629.099 6 20877288.952 20877288.811 20877288.527
+ 44.000 41.000
+ -5321634.590 5 -4146724.438 4 23228911.677 23228912.568 23228910.811
+ 30.600 27.400
+ -12507352.865 6 -9745977.310 5 22309908.656 22309908.011 22309907.480
+ 41.200 30.600
+ -4587638.932 4 -3574779.900 4 23950457.058 23950456.441 23950456.190
+ 27.400 28.100
+ -23020174.396 8 -17937789.976 8 20339566.524 20339565.686 20339566.021
+ 48.000 50.300
+ -15057355.508 6 -11733006.575 5 22058476.604 22058476.114 22058475.943
+ 37.800 31.800
+ -20879095.387 7 -16269407.226 7 20469951.594 20469951.618 20469950.641
+ 45.800 44.200
+ 06 1 1 19 4 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15149559.532 7 -11804844.205 7 20467949.983 20467949.603 20467948.821
+ 44.900 47.100
+ -18908456.994 7 -14733851.843 6 20865512.546 20865512.401 20865512.128
+ 44.000 41.200
+ -5296352.185 5 -4127023.875 4 23233722.427 23233723.825 23233721.587
+ 31.000 27.100
+ -12487764.094 6 -9730713.328 5 22313636.521 22313635.617 22313635.159
+ 41.100 30.200
+ -4693265.554 4 -3657086.299 4 23930356.640 23930356.097 23930355.630
+ 28.600 26.800
+ -23004403.941 7 -17925501.303 8 20342567.540 20342566.698 20342567.042
+ 47.800 50.200
+ -14967129.829 6 -11662700.891 5 22075646.955 22075645.617 22075645.679
+ 38.100 31.300
+ -20851056.014 7 -16247558.361 7 20475287.359 20475287.313 20475286.409
+ 45.800 44.400
+ 06 1 1 19 4 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15160758.107 7 -11813570.358 7 20465818.816 20465818.567 20465817.695
+ 45.100 47.000
+ -18969902.080 7 -14781731.116 6 20853819.731 20853819.728 20853819.323
+ 44.000 41.300
+ -5270475.412 5 -4106860.180 4 23238646.672 23238648.007 23238645.629
+ 30.100 25.900
+ -12467567.426 6 -9714975.664 5 22317479.523 22317479.238 22317478.221
+ 41.100 30.100
+ -4798743.804 4 -3739277.073 4 23910284.902 23910284.265 23910284.265
+ 27.600 25.600
+ -22988294.892 7 -17912948.793 8 20345633.162 20345632.157 20345632.483
+ 47.900 50.200
+ -14876559.478 6 -11592126.644 5 22092881.693 22092880.306 22092880.520
+ 37.400 30.600
+ -20822569.766 7 -16225361.284 7 20480708.028 20480708.078 20480707.074
+ 45.800 44.200
+ 06 1 1 19 5 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15171673.261 7 -11822075.666 7 20463741.996 20463741.422 20463740.816
+ 45.000 47.000
+ -19030905.487 7 -14829266.225 6 20842211.406 20842211.216 20842210.924
+ 44.000 41.500
+ -5244006.108 5 -4086234.758 4 23243683.544 23243684.956 23243682.822
+ 30.600 27.100
+ -12446763.734 6 -9698764.987 5 22321437.968 22321438.140 22321437.144
+ 41.200 31.000
+ -4904072.266 5 -3821351.104 3 23890241.981 23890240.734 23890240.976
+ 30.200 23.800
+ -22971847.157 7 -17900132.376 8 20348762.836 20348762.080 20348762.340
+ 47.900 50.400
+ -14785646.210 6 -11521285.168 5 22110180.997 22110180.452 22110180.555
+ 37.500 30.200
+ -20793638.053 7 -16202817.089 7 20486213.415 20486213.579 20486212.511
+ 45.800 44.300
+ 06 1 1 19 5 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15182304.384 7 -11830359.651 7 20461718.914 20461718.347 20461717.742
+ 44.900 47.000
+ -19091466.453 7 -14876456.571 6 20830686.831 20830686.744 20830686.414
+ 44.100 41.200
+ -5216945.173 5 -4065148.323 4 23248832.921 23248834.276 23248832.245
+ 30.200 26.500
+ -12425353.585 6 -9682081.746 5 22325512.531 22325512.187 22325511.352
+ 41.100 30.600
+ -5009249.542 4 -3903307.317 3 23870226.959 23870225.612 23870226.119
+ 28.600 22.100
+ -22955060.774 7 -17887052.075 8 20351957.381 20351956.464 20351956.730
+ 47.900 50.400
+ -14694392.084 6 -11450178.096 5 22127545.710 22127546.063 22127545.656
+ 37.300 31.300
+ -20764262.515 7 -16179927.061 7 20491803.478 20491803.564 20491802.581
+ 45.900 44.200
+ 06 1 1 19 6 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15192651.037 7 -11838421.967 7 20459749.837 20459749.471 20459748.713
+ 44.900 47.000
+ -19151583.957 7 -14923301.369 6 20819246.885 20819246.653 20819246.504
+ 44.400 41.200
+ -5189295.049 4 -4043602.780 4 23254094.875 23254096.260 23254093.868
+ 28.600 27.600
+ -12403337.405 6 -9664926.281 5 22329702.417 22329701.709 22329701.096
+ 41.100 31.000
+ -5114273.977 5 -3985144.434 3 23850240.780 23850239.738 23850240.130
+ 30.100 21.100
+ -22937935.650 8 -17873707.820 8 20355216.055 20355215.241 20355215.536
+ 48.000 50.200
+ -14602799.255 6 -11378807.104 5 22144975.857 22144975.635 22144975.445
+ 37.600 31.500
+ -20734444.890 7 -16156692.548 7 20497477.606 20497477.671 20497476.708
+ 46.100 44.000
+ 06 1 1 19 6 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15202712.474 7 -11846262.042 7 20457835.082 20457834.897 20457834.031
+ 44.800 47.200
+ -19211257.132 7 -14969799.918 6 20807891.436 20807891.318 20807890.982
+ 44.200 41.600
+ -5161056.715 4 -4021598.894 4 23259468.690 23259469.908 23259467.624
+ 28.800 27.900
+ -12380716.221 6 -9647299.379 5 22334006.738 22334006.356 22334005.632
+ 40.700 30.600
+ -5219144.226 4 -4066861.397 3 23830284.824 23830283.427 23830283.922
+ 28.400 21.100
+ -22920471.679 8 -17860099.522 8 20358539.380 20358538.483 20358538.818
+ 48.000 50.100
+ -14510869.700 6 -11307173.737 5 22162470.348 22162469.223 22162469.190
+ 36.400 31.300
+ -20704186.398 7 -16133114.504 7 20503235.667 20503235.629 20503234.756
+ 46.100 44.100
+ 06 1 1 19 7 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15212488.236 7 -11853879.511 7 20455974.853 20455974.644 20455973.655
+ 44.600 47.100
+ -19270485.296 7 -15015951.712 6 20796620.547 20796620.612 20796620.131
+ 44.100 41.800
+ -5132232.436 4 -3999138.432 4 23264953.262 23264954.922 23264952.408
+ 29.700 28.600
+ -12357490.681 6 -9629201.537 5 22338426.457 22338425.835 22338425.390
+ 41.000 30.600
+ -5323859.010 4 -4148457.189 3 23810357.789 23810357.068 23810357.183
+ 25.900 23.000
+ -22902669.027 8 -17846227.325 8 20361927.252 20361926.133 20361926.645
+ 48.200 50.100
+ -14418604.928 6 -11235279.166 5 22180027.823 22180026.757 22180026.586
+ 36.600 30.600
+ -20673488.776 7 -16109194.274 7 20509077.322 20509077.174 20509076.366
+ 46.300 44.100
+ 06 1 1 19 7 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15221977.755 7 -11861273.935 7 20454169.179 20454168.835 20454167.990
+ 44.800 47.100
+ -19329267.520 7 -15061756.019 6 20785434.821 20785434.614 20785434.314
+ 44.100 41.600
+ -5102823.619 5 -3976222.472 4 23270549.952 23270551.255 23270549.131
+ 30.200 27.600
+ -12333661.271 6 -9610633.169 5 22342960.878 22342960.325 22342959.562
+ 40.300 30.200
+ -5428416.853 4 -4229930.694 3 23790461.329 23790460.198 23790460.515
+ 28.400 23.800
+ -22884527.333 8 -17832090.938 8 20365379.524 20365378.433 20365378.934
+ 48.200 50.000
+ -14326007.062 5 -11163125.038 5 22197648.166 22197647.487 22197647.256
+ 35.800 30.600
+ -20642353.715 7 -16084933.180 7 20515002.139 20515001.982 20515001.145
+ 46.200 44.200
+ 06 1 1 19 8 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15231180.460 7 -11868444.867 7 20452417.863 20452417.686 20452416.692
+ 44.600 47.100
+ -19387602.951 7 -15107212.171 6 20774333.750 20774333.852 20774333.371
+ 44.200 41.900
+ -5072831.878 5 -3952852.292 4 23276257.453 23276258.258 23276256.597
+ 30.100 27.600
+ -12309228.864 6 -9591594.932 4 22347610.547 22347609.961 22347609.294
+ 40.900 29.900
+ -5532816.396 5 -4311280.836 4 23770594.946 23770593.889 23770594.124
+ 30.200 26.500
+ -22866046.540 8 -17817690.319 8 20368896.274 20368895.243 20368895.699
+ 48.200 49.900
+ -14233078.265 6 -11090713.014 4 22215331.618 22215331.299 22215331.184
+ 36.600 28.800
+ -20610782.818 7 -16060332.480 7 20521009.838 20521009.795 20521008.872
+ 46.100 44.100
+ 06 1 1 19 8 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15240095.806 7 -11875391.876 7 20450721.246 20450721.137 20450720.070
+ 44.600 47.100
+ -19445490.891 7 -15152319.636 6 20763318.085 20763318.004 20763317.616
+ 44.100 41.800
+ -5042259.121 5 -3929029.390 4 23282075.019 23282076.516 23282074.257
+ 30.600 27.600
+ -12284194.384 6 -9572087.539 5 22352374.744 22352374.013 22352373.508
+ 41.200 31.000
+ -5637056.017 5 -4392506.389 4 23750758.895 23750757.699 23750758.013
+ 30.800 28.400
+ -22847226.969 8 -17803025.708 8 20372477.449 20372476.382 20372476.936
+ 48.200 49.900
+ -14139820.390 6 -11018044.576 4 22233078.553 22233077.580 22233077.600
+ 36.500 29.900
+ -20578777.776 7 -16035393.482 7 20527100.152 20527100.206 20527099.214
+ 46.300 44.000
+ 06 1 1 19 9 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15248723.272 7 -11882114.566 7 20449079.520 20449079.214 20449078.357
+ 44.700 47.000
+ -19502930.772 7 -15197077.965 7 20752387.695 20752387.657 20752387.287
+ 44.500 42.300
+ -5011107.073 4 -3904755.079 4 23288002.979 23288004.519 23288002.383
+ 29.500 26.500
+ -12258558.699 6 -9552111.673 5 22357252.883 22357252.301 22357251.658
+ 41.200 30.400
+ -5741134.735 4 -4473606.540 4 23730952.787 23730952.122 23730952.094
+ 28.100 28.600
+ -22828068.014 8 -17788096.649 8 20376123.402 20376122.287 20376122.898
+ 48.300 49.900
+ -14046235.602 6 -10945121.415 4 22250887.491 22250886.102 22250886.319
+ 36.700 28.800
+ -20546340.252 7 -16010117.483 7 20533272.784 20533272.891 20533271.873
+ 46.100 44.000
+ 06 1 1 19 9 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15257062.292 7 -11888612.499 7 20447492.725 20447492.314 20447491.539
+ 44.700 46.900
+ -19559921.764 7 -15241486.505 7 20741542.729 20741542.489 20741542.285
+ 44.500 42.000
+ -4979377.514 4 -3880030.776 4 23294041.220 23294042.214 23294040.458
+ 29.700 26.500
+ -12232322.683 6 -9531668.022 4 22362244.553 22362244.666 22362243.708
+ 40.600 29.700
+ -5845050.664 4 -4554579.837 4 23711178.400 23711177.517 23711177.387
+ 28.400 28.400
+ -22808569.827 8 -17772903.251 8 20379833.713 20379832.673 20379833.098
+ 48.200 50.000
+ -13952325.529 6 -10871944.780 4 22268757.239 22268756.966 22268756.509
+ 36.100 29.900
+ -20513471.692 7 -15984505.613 7 20539527.373 20539527.635 20539526.463
+ 46.100 44.000
+ 06 1 1 19 10 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15265112.368 7 -11894885.275 7 20445960.967 20445960.497 20445959.783
+ 44.800 47.000
+ -19616462.899 7 -15285544.521 7 20730783.127 20730782.952 20730782.811
+ 44.700 42.000
+ -4947072.059 4 -3854857.722 4 23300188.749 23300189.728 23300187.867
+ 29.500 25.900
+ -12205487.140 6 -9510757.205 4 22367351.519 22367351.127 22367350.529
+ 40.800 29.900
+ -5948802.774 4 -4635425.520 4 23691434.594 23691433.788 23691434.137
+ 29.200 28.400
+ -22788732.527 8 -17757445.602 8 20383608.480 20383607.560 20383607.895
+ 48.100 49.800
+ -13858092.608 5 -10798516.576 5 22286688.583 22286688.955 22286688.452
+ 35.800 30.100
+ -20480173.844 7 -15958559.230 7 20545863.710 20545863.977 20545862.837
+ 46.100 44.200
+ 06 1 1 19 10 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15272872.852 7 -11900932.398 7 20444484.112 20444483.795 20444483.000
+ 45.000 47.000
+ -19672553.566 7 -15329251.510 7 20720109.391 20720109.336 20720108.956
+ 44.300 42.100
+ -4914193.058 4 -3829237.740 4 23306445.144 23306446.652 23306444.361
+ 28.100 25.900
+ -12178052.776 6 -9489379.774 4 22372572.569 22372571.648 22372571.195
+ 40.600 29.700
+ -6052389.357 5 -4716142.247 4 23671723.211 23671721.839 23671722.246
+ 31.600 27.900
+ -22768555.891 8 -17741723.540 8 20387448.187 20387447.137 20387447.592
+ 48.200 49.700
+ -13763538.632 5 -10724838.197 5 22304682.586 22304682.108 22304681.693
+ 35.900 30.400
+ -20446448.509 7 -15932279.744 7 20552281.723 20552281.684 20552280.717
+ 46.200 44.100
+ 06 1 1 19 11 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15280343.106 7 -11906753.365 7 20443062.586 20443062.208 20443061.397
+ 44.700 47.000
+ -19728193.100 7 -15372606.969 7 20709521.615 20709521.428 20709521.219
+ 44.700 42.200
+ -4880742.172 4 -3803172.130 3 23312810.054 23312811.512 23312809.166
+ 27.400 23.800
+ -12150020.594 6 -9467536.506 4 22377906.721 22377906.305 22377905.492
+ 40.600 29.900
+ -6155809.008 5 -4796728.932 4 23652042.975 23652041.843 23652042.173
+ 33.800 28.800
+ -22748039.993 8 -17725737.127 8 20391352.075 20391351.167 20391351.511
+ 48.100 49.700
+ -13668665.514 5 -10650911.137 5 22322736.610 22322735.944 22322735.579
+ 35.500 30.600
+ -20412297.098 7 -15905668.249 7 20558780.462 20558780.398 20558779.464
+ 46.100 44.000
+ 06 1 1 19 11 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15287522.733 7 -11912347.873 7 20441696.256 20441695.933 20441695.158
+ 44.800 47.000
+ -19783380.760 7 -15415610.322 7 20699019.628 20699019.607 20699019.223
+ 44.600 42.300
+ -4846720.733 4 -3776661.943 3 23319284.493 23319285.103 23319283.870
+ 29.000 22.100
+ -12121391.771 6 -9445228.328 5 22383354.650 22383353.915 22383353.478
+ 40.900 30.400
+ -6259060.482 5 -4877184.556 4 23632394.505 23632393.587 23632393.949
+ 31.600 29.000
+ -22727184.693 8 -17709486.238 8 20395320.637 20395319.670 20395320.100
+ 48.200 49.600
+ -13573475.296 5 -10576736.999 4 22340850.688 22340849.886 22340849.774
+ 34.900 29.700
+ -20377721.405 7 -15878726.148 7 20565359.899 20565359.917 20565358.949
+ 46.300 43.900
+ 06 1 1 19 12 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15294411.063 7 -11917715.396 7 20440385.636 20440385.101 20440384.459
+ 44.800 47.000
+ -19838115.898 7 -15458261.061 7 20688603.940 20688603.879 20688603.480
+ 44.700 42.500
+ -4812130.997 4 -3749708.943 4 23325866.724 23325867.758 23325866.167
+ 29.000 24.200
+ -12092166.938 6 -9422455.728 4 22388915.768 22388915.370 22388914.651
+ 40.700 29.700
+ -6362142.302 5 -4957507.961 5 23612778.987 23612777.841 23612778.282
+ 32.100 30.100
+ -22705989.807 8 -17692970.736 8 20399354.197 20399352.920 20399353.502
+ 48.200 49.500
+ -13477970.166 5 -10502317.457 4 22359024.651 22359023.918 22359023.840
+ 34.900 28.600
+ -20342723.227 7 -15851454.832 7 20572019.800 20572019.847 20572018.882
+ 46.400 43.900
+ 06 1 1 19 12 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15301007.587 7 -11922855.538 7 20439130.333 20439129.796 20439129.160
+ 44.900 46.900
+ -19892397.889 7 -15500558.691 7 20678274.355 20678274.349 20678273.891
+ 44.300 42.600
+ -4776975.169 5 -3722314.809 4 23332556.997 23332557.885 23332556.294
+ 30.400 24.200
+ -12062347.400 6 -9399219.730 5 22394590.100 22394589.953 22394589.022
+ 40.500 30.200
+ -6465053.324 5 -5037698.286 4 23593195.576 23593194.232 23593194.672
+ 31.000 29.500
+ -22684455.367 8 -17676190.647 8 20403451.816 20403450.852 20403451.267
+ 48.400 49.600
+ -13382152.053 5 -10427654.022 4 22377257.541 22377257.320 22377257.067
+ 35.200 27.900
+ -20307303.989 7 -15823855.426 7 20578759.819 20578759.929 20578758.929
+ 46.400 43.800
+ 06 1 1 19 13 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15307311.816 7 -11927767.919 7 20437930.511 20437930.089 20437929.473
+ 44.800 46.900
+ -19946225.944 7 -15542502.609 7 20668031.391 20668031.225 20668030.919
+ 44.700 42.700
+ -4741254.839 4 -3694480.784 3 23339354.265 23339355.169 23339353.633
+ 29.900 23.400
+ -12031934.123 6 -9375521.079 5 22400378.083 22400377.356 22400376.771
+ 40.700 30.200
+ -6567791.827 4 -5117754.164 4 23573644.289 23573643.471 23573643.760
+ 29.700 27.400
+ -22662581.580 8 -17659146.133 8 20407614.157 20407613.320 20407613.748
+ 48.200 49.600
+ -13286023.039 5 -10352748.343 4 22395551.337 22395550.573 22395550.148
+ 34.700 29.000
+ -20271465.635 7 -15795929.436 7 20585579.609 20585579.725 20585578.749
+ 46.300 43.800
+ 06 1 1 19 13 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15313323.094 7 -11932452.028 7 20436786.652 20436786.173 20436785.518
+ 44.800 46.800
+ -19999599.474 7 -15584092.346 7 20657874.518 20657874.398 20657874.076
+ 44.600 42.500
+ -4704972.241 4 -3666208.643 3 23346258.439 23346259.546 23346257.853
+ 29.000 22.600
+ -12000928.168 6 -9351360.593 5 22406278.426 22406277.569 22406277.005
+ 40.600 30.100
+ -6670356.568 5 -5197674.682 4 23554126.677 23554125.920 23554126.123
+ 30.100 24.600
+ -22640368.313 8 -17641837.094 8 20411841.257 20411840.346 20411840.712
+ 48.300 49.500
+ -13189585.291 5 -10277602.099 4 22413902.874 22413902.152 22413901.774
+ 34.300 29.700
+ -20235210.072 7 -15767678.348 7 20592478.801 20592478.874 20592477.888
+ 46.200 43.800
+ 06 1 1 19 14 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15319040.836 7 -11936907.407 7 20435698.592 20435698.105 20435697.415
+ 44.700 46.800
+ -20052517.924 7 -15625327.476 7 20647804.529 20647804.169 20647804.102
+ 44.700 42.600
+ -4668128.946 4 -3637499.592 4 23353270.000 23353270.840 23353269.157
+ 29.700 24.200
+ -11969330.433 6 -9326738.980 5 22412291.179 22412290.521 22412289.990
+ 40.600 30.200
+ -6772746.104 4 -5277458.650 4 23534642.417 23534641.489 23534641.832
+ 29.500 25.600
+ -22617815.621 8 -17624263.563 8 20416132.953 20416131.956 20416132.404
+ 48.000 49.400
+ -13092840.894 5 -10202216.904 4 22432312.459 22432312.217 22432311.595
+ 34.900 29.500
+ -20198538.523 7 -15739103.116 7 20599457.140 20599457.207 20599456.248
+ 46.100 43.700
+ 06 1 1 19 14 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15324464.604 7 -11941133.717 7 20434666.397 20434666.026 20434665.283
+ 44.800 46.800
+ -20104980.571 7 -15666207.438 7 20637821.151 20637820.971 20637820.775
+ 44.800 42.700
+ -4630727.397 4 -3608355.541 4 23360387.159 23360388.392 23360386.221
+ 29.700 24.600
+ -11937141.936 6 -9301657.054 5 22418416.127 22418415.747 22418415.026
+ 40.100 30.200
+ -6874959.235 4 -5357105.171 4 23515192.529 23515190.934 23515191.549
+ 29.900 24.900
+ -22594923.372 8 -17606425.448 8 20420489.327 20420488.236 20420488.701
+ 48.200 49.200
+ -12995791.785 5 -10126594.273 4 22450779.940 22450779.961 22450779.398
+ 35.100 29.000
+ -20161452.934 7 -15710205.257 7 20606514.260 20606514.342 20606513.351
+ 46.100 43.500
+ 06 1 1 19 15 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15329593.853 7 -11945130.527 7 20433690.381 20433690.050 20433689.239
+ 44.700 46.900
+ -20156987.001 7 -15706731.900 7 20627924.763 20627924.525 20627924.335
+ 45.100 42.900
+ -4592769.478 5 -3578777.954 4 23367610.636 23367611.242 23367609.890
+ 30.800 24.600
+ -11904364.006 6 -9276115.808 5 22424653.551 22424653.196 22424652.409
+ 40.000 30.100
+ -6976994.281 5 -5436612.925 4 23495775.971 23495774.302 23495775.137
+ 31.100 26.200
+ -22571691.387 8 -17588322.601 8 20424909.975 20424909.198 20424909.440
+ 48.100 49.400
+ -12898440.318 5 -10050736.008 4 22469305.497 22469304.917 22469304.753
+ 35.400 27.600
+ -20123955.050 7 -15680986.128 7 20613649.879 20613649.968 20613648.977
+ 46.000 43.500
+ 06 1 1 19 15 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15334427.932 7 -11948897.335 7 20432770.362 20432770.214 20432769.284
+ 44.800 47.000
+ -20208536.453 7 -15746900.277 7 20618114.940 20618114.988 20618114.676
+ 44.900 43.100
+ -4554257.108 5 -3548768.337 3 23374939.266 23374939.953 23374938.459
+ 30.800 23.800
+ -11870997.758 6 -9250116.140 4 22431002.916 22431002.666 22431001.654
+ 40.000 29.200
+ -7078849.988 5 -5515980.924 4 23476392.891 23476391.983 23476392.333
+ 31.600 27.900
+ -22548119.694 7 -17569955.057 8 20429395.481 20429394.676 20429394.952
+ 47.900 49.200
+ -12800788.269 5 -9974643.543 4 22487888.894 22487887.489 22487887.450
+ 33.500 27.900
+ -20086046.372 7 -15651446.903 7 20620863.642 20620863.684 20620862.683
+ 46.100 43.500
+ 06 1 1 19 16 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15338966.325 7 -11952433.738 7 20431906.712 20431906.569 20431905.653
+ 44.700 47.100
+ -20259628.287 7 -15786712.066 7 20608392.744 20608392.475 20608392.326
+ 45.200 42.900
+ -4515192.535 4 -3518328.450 4 23382372.469 23382374.003 23382371.834
+ 29.900 25.300
+ -11837044.263 6 -9223658.868 4 22437464.087 22437463.679 22437462.878
+ 40.000 29.900
+ -7180525.004 5 -5595208.119 4 23457045.410 23457043.694 23457044.507
+ 32.600 28.100
+ -22524207.969 8 -17551322.541 8 20433946.102 20433944.941 20433945.412
+ 48.100 49.100
+ -12702837.749 5 -9898318.516 4 22506527.902 22506526.931 22506526.972
+ 34.300 28.600
+ -20047728.834 7 -15621589.080 7 20628155.293 20628155.355 20628154.364
+ 46.200 43.400
+ 06 1 1 19 16 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15343208.390 7 -11955739.236 7 20431099.610 20431099.296 20431098.397
+ 44.800 47.000
+ -20310262.038 7 -15826166.909 7 20598757.400 20598757.257 20598757.007
+ 45.100 43.100
+ -4475577.779 4 -3487459.836 3 23389911.029 23389912.033 23389910.351
+ 29.900 23.000
+ -11802504.696 6 -9196744.930 5 22444037.379 22444036.532 22444035.869
+ 40.300 30.100
+ -7282018.055 5 -5674293.552 4 23437731.786 23437730.146 23437730.960
+ 33.000 29.000
+ -22499956.947 8 -17532425.644 8 20438560.531 20438559.759 20438560.107
+ 48.100 49.000
+ -12604591.156 5 -9821762.761 4 22525223.184 22525222.902 22525222.631
+ 34.500 28.400
+ -20009004.149 7 -15591414.003 7 20635524.335 20635524.445 20635523.485
+ 46.400 43.400
+ 06 1 1 19 17 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15347153.697 7 -11958813.492 7 20430348.906 20430348.465 20430347.670
+ 44.800 47.100
+ -20360437.218 7 -15865264.420 7 20589209.532 20589209.101 20589208.989
+ 45.100 43.100
+ -4435415.057 5 -3456164.233 4 23397553.768 23397555.115 23397553.192
+ 30.600 24.900
+ -11767380.174 6 -9169375.177 5 22450720.799 22450720.414 22450719.422
+ 40.300 30.400
+ -7383327.571 5 -5753235.944 5 23418453.098 23418451.716 23418452.261
+ 31.600 30.200
+ -22475366.357 7 -17513264.146 8 20443240.178 20443239.129 20443239.580
+ 47.900 49.100
+ -12506050.625 5 -9744977.982 4 22543975.835 22543974.698 22543974.373
+ 33.200 27.900
+ -19969874.095 7 -15560923.055 7 20642970.729 20642970.677 20642969.721
+ 46.400 43.500
+ 06 1 1 19 17 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15350801.570 7 -11961655.981 7 20429654.737 20429654.277 20429653.595
+ 44.900 46.800
+ -20410153.371 7 -15904004.251 7 20579748.709 20579748.363 20579748.268
+ 44.900 43.100
+ -4394706.540 4 -3424443.328 4 23405300.694 23405301.539 23405299.908
+ 29.500 24.600
+ -11731672.028 6 -9141550.653 4 22457515.832 22457515.183 22457514.623
+ 40.300 29.700
+ -7484452.485 5 -5832034.489 5 23399209.375 23399208.395 23399208.519
+ 31.100 30.400
+ -22450435.910 8 -17493837.825 8 20447984.374 20447983.249 20447983.725
+ 48.000 48.900
+ -12407217.905 5 -9667965.533 4 22562782.676 22562781.968 22562781.659
+ 33.000 28.600
+ -19930340.424 7 -15530117.597 7 20650493.672 20650493.675 20650492.740
+ 46.500 43.400
+ 06 1 1 19 18 0.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15354151.533 7 -11964266.332 7 20429017.390 20429016.752 20429016.260
+ 45.100 46.900
+ -20459409.655 7 -15942385.745 7 20570375.539 20570375.106 20570375.054
+ 44.900 43.100
+ -4353454.238 5 -3392298.693 4 23413150.424 23413151.805 23413149.729
+ 30.100 24.900
+ -11695381.463 6 -9113272.286 5 22464421.710 22464421.209 22464420.521
+ 40.300 30.100
+ -7585391.226 5 -5910687.951 4 23380001.451 23380000.084 23380000.716
+ 32.100 29.700
+ -22425165.600 7 -17474146.672 8 20452792.932 20452792.007 20452792.453
+ 47.800 48.800
+ -12308095.035 5 -9590726.994 4 22581643.936 22581644.436 22581643.679
+ 32.300 27.600
+ -19890405.056 7 -15498999.130 7 20658093.204 20658093.083 20658092.181
+ 46.500 43.200
+ 06 1 1 19 18 30.0000000 0 8G 7G 4G 9G20G 2G17G28G24
+ -15357203.153 7 -11966644.209 7 20428436.483 20428436.035 20428435.383
+ 45.200 46.800
+ -20508206.016 7 -15980408.855 7 20561089.592 20561089.539 20561089.269
+ 44.900 43.300
+ -4311660.576 4 -3359732.241 4 23421103.469 23421105.201 23421102.576
+ 28.600 25.300
+ -11658509.858 6 -9084541.178 5 22471438.275 22471437.795 22471436.936
+ 40.200 30.600
+ -7686142.380 5 -5989195.263 5 23360828.893 23360827.735 23360828.158
+ 32.300 30.400
+ -22399555.635 7 -17454190.855 8 20457666.266 20457665.441 20457665.793
+ 47.600 48.700
+ -12208684.648 5 -9513264.389 4 22600562.718 22600561.417 22600561.254
+ 33.000 27.100
+ -19850069.518 7 -15467568.845 7 20665768.699 20665768.670 20665767.740
+ 46.600 43.300
+ 06 1 1 19 19 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15359955.632 7 -11968788.985 7 20427912.761 20427912.277 20427911.568
+ 45.000 46.800
+ -20556541.737 7 -16018073.026 7 20551891.871 20551891.471 20551891.413
+ 45.100 43.300
+ -4269327.425 4 -3326745.405 4 23429159.360 23429160.798 23429158.294
+ 27.900 25.600
+ -11621058.610 6 -9055358.395 4 22478564.916 22478564.423 22478563.750
+ 39.900 29.500
+ -7786704.690 5 -6067555.422 4 23341692.525 23341691.184 23341691.768
+ 32.000 29.200
+ -22373605.841 7 -17433970.238 8 20462604.479 20462603.557 20462603.893
+ 47.700 48.700
+ -219163.088 4 -170776.683 3 24350719.736 24350722.217 24350718.876
+ 24.600 19.300
+ -12108988.497 5 -9435579.130 4 22619534.278 22619533.139 22619532.960
+ 32.700 26.500
+ -19809335.528 7 -15435828.068 7 20673520.086 20673520.083 20673519.172
+ 46.600 43.300
+ 06 1 1 19 19 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15362408.596 7 -11970700.374 7 20427446.113 20427445.467 20427444.920
+ 45.100 46.900
+ -20604416.301 7 -16055377.853 7 20542781.705 20542781.232 20542781.191
+ 45.000 43.400
+ -4226457.368 4 -3293340.193 4 23437317.575 23437318.218 23437316.459
+ 28.600 24.200
+ -11583028.955 6 -9025724.904 4 22485801.245 22485801.236 22485800.203
+ 39.800 29.900
+ -7887076.802 5 -6145767.396 4 23322592.202 23322590.736 23322591.438
+ 31.800 28.600
+ -22347316.232 7 -17413484.824 8 20467607.053 20467606.306 20467606.560
+ 47.700 48.700
+ -321583.381 2 -250584.610 3 24331229.278 24331231.819 24331228.565
+ 17.000 18.600
+ -12009008.850 5 -9357672.978 4 22638559.377 22638558.840 22638558.058
+ 32.400 27.400
+ -19768204.961 7 -15403778.274 7 20681347.086 20681347.054 20681346.125
+ 46.600 43.200
+ 06 1 1 19 20 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15364561.473 7 -11972377.932 7 20427036.128 20427035.820 20427035.076
+ 45.100 46.900
+ -20651829.225 7 -16092322.963 7 20533758.989 20533758.793 20533758.639
+ 45.100 43.500
+ -4183052.112 4 -3259517.955 3 23445576.868 23445577.996 23445576.121
+ 28.600 23.800
+ -11544421.896 6 -8995641.489 4 22493148.291 22493147.909 22493147.026
+ 39.800 29.700
+ -7987257.642 5 -6223830.336 4 23303528.452 23303526.959 23303527.765
+ 33.200 28.600
+ -22320687.143 7 -17392734.875 8 20472674.464 20472673.636 20472673.866
+ 47.600 48.600
+ -423800.875 2 -330234.476 3 24311777.630 24311780.759 24311776.548
+ 17.000 19.900
+ -11908747.960 5 -9279547.660 4 22657637.856 22657637.890 22657637.149
+ 32.600 26.200
+ -19726679.640 7 -15371420.881 7 20689249.040 20689249.032 20689248.127
+ 46.500 43.300
+ 06 1 1 19 20 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15366413.660 7 -11973821.183 7 20426683.742 20426683.394 20426682.620
+ 44.900 46.900
+ -20698780.150 7 -16128908.071 7 20524824.563 20524824.292 20524824.127
+ 44.800 43.400
+ -4139114.198 4 -3225280.650 3 23453938.096 23453939.177 23453937.361
+ 28.400 23.000
+ -11505238.961 6 -8965109.349 4 22500604.625 22500604.222 22500603.537
+ 40.200 29.500
+ -8087245.680 5 -6301743.055 4 23284501.498 23284499.976 23284500.624
+ 33.100 29.000
+ -22293718.279 7 -17371720.172 8 20477806.376 20477805.659 20477805.939
+ 47.700 48.500
+ -525812.838 3 -409724.162 3 24292366.281 24292368.573 24292364.846
+ 22.100 23.800
+ -11808208.301 5 -9201205.101 4 22676770.533 22676769.914 22676769.334
+ 32.300 27.100
+ -19684761.453 7 -15338757.357 7 20697225.717 20697225.874 20697224.818
+ 46.600 43.300
+ 06 1 1 19 21 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15367964.623 7 -11975029.720 7 20426388.788 20426388.242 20426387.598
+ 44.900 46.800
+ -20745268.719 7 -16165132.900 7 20515978.170 20515977.825 20515977.721
+ 45.200 43.600
+ -4094646.210 4 -3190630.309 4 23462399.818 23462401.470 23462399.197
+ 27.900 24.900
+ -11465481.601 6 -8934129.602 4 22508170.302 22508169.997 22508168.952
+ 39.900 29.700
+ -8187039.667 5 -6379504.552 4 23265511.037 23265509.726 23265510.492
+ 32.300 29.200
+ -22266409.668 7 -17350440.731 8 20483003.195 20483002.265 20483002.606
+ 47.800 48.400
+ -627616.661 4 -489051.712 3 24272993.789 24272995.546 24272992.449
+ 25.600 22.600
+ -11707391.601 5 -9122646.704 4 22695955.522 22695954.630 22695954.210
+ 32.000 26.500
+ -19642452.127 7 -15305789.051 7 20705276.976 20705277.056 20705275.978
+ 46.300 43.200
+ 06 1 1 19 21 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15369213.931 7 -11976003.200 7 20426150.935 20426150.497 20426149.738
+ 44.900 47.000
+ -20791294.308 7 -16200996.969 7 20507219.743 20507219.474 20507219.362
+ 45.200 43.700
+ -4049650.293 4 -3155568.586 4 23470962.409 23470963.891 23470961.787
+ 29.500 24.900
+ -11425151.318 6 -8902703.414 5 22515844.405 22515844.598 22515843.369
+ 39.500 30.100
+ -8286638.107 5 -6457113.679 4 23246557.501 23246556.897 23246557.122
+ 31.000 29.900
+ -22238761.180 7 -17328896.453 8 20488264.551 20488263.628 20488263.975
+ 47.700 48.400
+ -729209.871 3 -568215.161 3 24253660.194 24253663.112 24253658.973
+ 22.600 22.100
+ -11606300.221 5 -9043874.247 4 22715191.613 22715191.907 22715191.245
+ 33.100 27.600
+ -19599753.231 7 -15272517.185 7 20713402.261 20713402.442 20713401.262
+ 46.400 43.400
+ 06 1 1 19 22 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15370160.900 7 -11976741.095 7 20425970.534 20425970.279 20425969.433
+ 44.900 46.900
+ -20836856.724 7 -16236500.128 7 20498549.654 20498549.135 20498549.146
+ 45.200 43.700
+ -4004128.716 4 -3120097.245 3 23479625.211 23479626.238 23479624.499
+ 29.900 23.800
+ -11384249.397 6 -8870831.809 4 22523627.958 22523627.529 22523626.848
+ 39.700 29.200
+ -8386039.919 5 -6534569.610 4 23227642.774 23227641.266 23227641.891
+ 32.300 29.000
+ -22210773.238 7 -17307087.662 8 20493590.572 20493589.550 20493589.827
+ 47.600 48.400
+ -830590.014 4 -647212.539 3 24234368.908 24234370.797 24234367.772
+ 24.200 22.100
+ -11504936.228 5 -8964889.356 4 22734481.252 22734480.706 22734480.246
+ 32.000 25.300
+ -19556666.807 7 -15238943.346 7 20721601.171 20721601.431 20721600.308
+ 46.300 43.100
+ 06 1 1 19 22 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15370804.994 7 -11977242.985 7 20425848.101 20425847.733 20425846.967
+ 44.800 46.800
+ -20881955.458 7 -16271641.965 7 20489967.395 20489967.060 20489966.966
+ 44.800 43.800
+ -3958083.600 4 -3084217.954 3 23488387.173 23488388.369 23488386.610
+ 29.900 23.800
+ -11342777.451 6 -8838516.006 4 22531520.370 22531519.197 22531519.200
+ 40.200 28.400
+ -8485243.416 5 -6611871.026 4 23208765.000 23208763.288 23208764.121
+ 33.600 29.000
+ -22182445.357 7 -17285013.989 8 20498981.006 20498980.099 20498980.445
+ 47.800 48.300
+ -931754.389 3 -726041.829 2 24215116.193 24215118.842 24215115.397
+ 23.400 17.800
+ -11403301.851 5 -8885693.802 4 22753821.834 22753821.003 22753820.546
+ 31.100 25.600
+ -19513194.471 7 -15205068.801 7 20729873.889 20729873.841 20729873.002
+ 46.500 42.900
+ 06 1 1 19 23 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15371145.676 7 -11977508.451 7 20425783.158 20425782.895 20425782.049
+ 44.800 46.800
+ -20926590.142 7 -16306422.215 7 20481473.747 20481473.409 20481473.263
+ 44.900 43.800
+ -3911517.531 4 -3047932.748 4 23497248.701 23497249.674 23497247.746
+ 28.100 25.600
+ -11300736.633 6 -8805756.926 4 22539520.413 22539519.464 22539519.044
+ 40.000 28.800
+ -8584247.353 5 -6689016.948 4 23189925.102 23189923.625 23189924.110
+ 32.300 29.900
+ -22153777.707 7 -17262675.556 8 20504436.286 20504435.301 20504435.770
+ 47.800 48.300
+ -1032700.553 3 -804701.083 2 24195908.517 24195909.694 24195907.312
+ 23.400 13.900
+ -11301399.329 5 -8806289.286 4 22773212.771 22773212.530 22773212.066
+ 30.600 25.600
+ -19469337.921 7 -15170894.866 7 20738219.562 20738219.418 20738218.582
+ 46.500 42.900
+ 06 1 1 19 23 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15371182.440 7 -11977537.093 7 20425776.197 20425775.831 20425775.142
+ 44.900 46.900
+ -20970760.522 7 -16340840.665 7 20473068.287 20473068.129 20473067.860
+ 44.900 43.900
+ -3864432.802 4 -3011243.377 4 23506208.786 23506209.548 23506207.981
+ 29.200 25.300
+ -11258128.477 6 -8772555.779 4 22547628.352 22547627.825 22547627.157
+ 39.600 29.200
+ -8683050.582 5 -6766006.458 5 23171123.024 23171122.019 23171122.361
+ 33.000 30.400
+ -22124770.820 8 -17240072.791 8 20509956.266 20509955.241 20509955.704
+ 48.000 48.100
+ -1133425.856 3 -883188.231 1 24176740.744 24176742.420 24176739.377
+ 19.900 11.000
+ -11199230.876 5 -8726677.549 4 22792655.043 22792654.526 22792654.147
+ 31.600 25.900
+ -19425099.348 7 -15136423.250 7 20746637.794 20746637.759 20746636.849
+ 46.400 42.900
+ 06 1 1 19 24 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15370914.661 7 -11977328.430 7 20425827.142 20425826.707 20425826.068
+ 44.800 46.700
+ -21014466.053 7 -16374896.896 7 20464751.334 20464751.169 20464750.973
+ 44.900 44.000
+ -3816831.810 4 -2974151.730 4 23515266.706 23515268.161 23515265.760
+ 29.000 27.400
+ -11214954.754 6 -8738913.919 4 22555843.951 22555843.390 22555842.649
+ 39.600 28.800
+ -8781651.767 5 -6842838.554 4 23152360.169 23152358.366 23152359.474
+ 33.600 29.700
+ -22095424.448 8 -17217205.488 8 20515540.867 20515539.648 20515540.269
+ 48.000 48.100
+ -1233927.692 3 -961501.303 24157614.793 24157616.658 24157613.814
+ 19.900 3.000
+ -11096798.708 5 -8646860.325 4 22812147.961 22812146.787 22812146.693
+ 31.300 25.300
+ -19380480.240 7 -15101655.113 7 20755128.517 20755128.501 20755127.554
+ 46.500 42.600
+ 06 1 1 19 24 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15370341.842 7 -11976882.071 7 20425936.092 20425935.703 20425934.992
+ 44.900 46.700
+ -21057706.553 7 -16408590.763 7 20456523.048 20456522.762 20456522.538
+ 45.000 44.100
+ -3768716.644 4 -2936659.415 4 23524422.665 23524423.933 23524421.990
+ 28.800 26.800
+ -11171216.594 6 -8704832.239 4 22564166.873 22564166.460 22564165.801
+ 39.400 29.200
+ -8880049.625 5 -6919512.221 5 23133635.543 23133634.206 23133634.828
+ 32.800 30.400
+ -22065738.043 8 -17194073.219 7 20521189.836 20521188.732 20521189.288
+ 48.000 47.900
+ -1334203.545 4 -1039638.285 2 24138533.884 24138535.076 24138532.748
+ 24.900 17.000
+ -10994104.862 5 -8566839.218 4 22831688.599 22831689.178 22831688.398
+ 31.100 27.100
+ -19335482.592 7 -15066592.015 7 20763691.105 20763691.235 20763690.357
+ 46.500 42.600
+ 06 1 1 19 25 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15369463.481 7 -11976197.634 7 20426103.446 20426102.907 20426102.267
+ 45.000 46.800
+ -21100481.624 7 -16441921.958 7 20448383.226 20448382.857 20448382.818
+ 44.900 44.100
+ -3720090.284 4 -2898768.770 4 23533676.037 23533677.283 23533675.077
+ 28.600 25.300
+ -11126915.705 6 -8670312.057 4 22572596.915 22572597.182 22572595.981
+ 39.000 29.500
+ -8978242.908 5 -6996026.470 5 23114950.162 23114948.426 23114949.488
+ 32.100 30.200
+ -22035712.149 8 -17170676.418 8 20526903.502 20526902.497 20526903.053
+ 48.100 48.000
+ -1434250.764 4 -1117597.087 3 24119495.076 24119498.079 24119493.676
+ 27.600 21.600
+ -10891151.843 5 -8486616.132 4 22851280.623 22851280.442 22851279.730
+ 30.800 26.500
+ -19290108.271 7 -15031235.404 7 20772325.582 20772325.698 20772324.726
+ 46.700 42.600
+ 06 1 1 19 25 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15368279.095 7 -11975274.736 7 20426328.822 20426328.374 20426327.695
+ 45.200 46.800
+ -21142790.989 7 -16474890.272 7 20440332.030 20440331.665 20440331.539
+ 45.000 44.200
+ -3670954.846 4 -2860481.467 4 23543026.273 23543027.703 23543025.515
+ 28.400 25.300
+ -11082053.942 6 -8635354.838 4 22581133.551 22581133.673 22581132.654
+ 38.500 29.200
+ -9076230.188 5 -7072380.200 5 23096303.946 23096302.324 23096302.843
+ 32.600 30.600
+ -22005346.863 8 -17147015.158 7 20532682.022 20532680.809 20532681.440
+ 48.100 47.900
+ -1534066.812 4 -1195375.736 4 24100500.970 24100502.961 24100499.952
+ 27.900 25.600
+ -10787941.905 5 -8406192.861 4 22870921.644 22870920.626 22870920.228
+ 30.100 24.900
+ -19244359.031 7 -14995586.647 7 20781031.493 20781031.483 20781030.634
+ 46.700 42.500
+ 06 1 1 19 26 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15366787.934 7 -11974112.791 7 20426612.594 20426612.135 20426611.460
+ 45.100 46.700
+ -21184634.343 7 -16507495.457 7 20432369.282 20432369.166 20432368.904
+ 44.900 44.400
+ -3621313.432 4 -2821799.873 4 23552472.614 23552474.355 23552472.012
+ 29.500 25.900
+ -11036632.776 6 -8599961.731 4 22589777.112 22589777.021 22589776.062
+ 38.600 28.800
+ -9174010.185 5 -7148572.401 5 23077696.881 23077695.401 23077696.103
+ 33.100 31.000
+ -21974642.177 8 -17123089.430 7 20538525.033 20538523.736 20538524.402
+ 48.200 47.700
+ -1633649.179 4 -1272972.292 4 24081551.474 24081552.858 24081550.399
+ 26.200 25.600
+ -10684477.127 5 -8325571.012 4 22890609.131 22890609.716 22890608.772
+ 30.200 26.500
+ -19198236.789 7 -14959647.244 7 20789808.261 20789808.336 20789807.402
+ 46.500 42.600
+ 06 1 1 19 26 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15364989.597 7 -11972711.483 7 20426954.932 20426954.272 20426953.742
+ 45.100 46.700
+ -21226011.555 7 -16539737.416 7 20424495.563 20424495.312 20424495.158
+ 44.800 44.300
+ -3571168.032 4 -2782725.567 4 23562015.036 23562016.383 23562014.336
+ 29.200 26.200
+ -10990653.630 6 -8564133.812 4 22598526.781 22598526.596 22598525.801
+ 38.600 28.800
+ -9271581.504 5 -7224602.006 5 23059129.575 23059128.224 23059128.906
+ 33.800 31.500
+ -21943598.123 8 -17098899.256 7 20544432.428 20544431.171 20544431.787
+ 48.100 47.600
+ -1732995.113 4 -1350384.580 4 24062645.402 24062647.891 24062644.533
+ 24.900 28.400
+ -10580759.624 4 -8244752.221 4 22910346.764 22910346.300 22910345.783
+ 29.900 26.200
+ -19151743.267 7 -14923418.533 7 20798655.774 20798655.764 20798654.782
+ 46.300 42.600
+ 06 1 1 19 27 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15362883.524 7 -11971070.385 7 20427355.678 20427355.043 20427354.499
+ 45.300 46.600
+ -21266922.304 7 -16571615.899 7 20416710.436 20416710.195 20416710.071
+ 44.900 44.400
+ -3520520.921 5 -2743260.319 4 23571652.729 23571654.164 23571652.103
+ 30.100 24.900
+ -10944118.173 6 -8527872.418 4 22607382.460 22607381.949 22607381.095
+ 38.400 28.800
+ -9368942.807 5 -7300467.956 5 23040602.330 23040600.838 23040601.537
+ 33.500 31.600
+ -21912214.484 7 -17074444.471 7 20550404.377 20550403.288 20550403.868
+ 47.800 47.500
+ -1832102.055 4 -1427610.650 4 24043787.158 24043788.099 24043786.200
+ 25.900 27.400
+ -10476791.690 5 -8163738.313 4 22930131.435 22930130.759 22930130.293
+ 31.000 24.900
+ -19104880.078 7 -14886901.770 7 20807573.514 20807573.589 20807572.544
+ 46.300 42.600
+ 06 1 1 19 27 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15360469.241 7 -11969189.124 7 20427814.692 20427814.475 20427813.718
+ 45.200 46.600
+ -21307366.325 7 -16603130.702 7 20409014.289 20409013.962 20409013.847
+ 45.100 44.600
+ -3469375.091 4 -2703406.471 4 23581385.556 23581386.706 23581384.921
+ 29.000 24.900
+ -10897028.054 6 -8491178.832 4 22616343.468 22616342.758 22616342.057
+ 38.400 28.400
+ -9466093.030 5 -7376169.407 5 23022115.865 23022113.723 23022114.853
+ 34.900 31.300
+ -21880491.590 7 -17049725.339 7 20556441.095 20556439.982 20556440.474
+ 47.800 47.500
+ -1930967.504 2 -1504648.539 4 24024971.635 24024974.550 24024970.827
+ 16.100 25.600
+ -10372575.783 5 -8082531.157 4 22949962.651 22949962.417 22949961.781
+ 31.500 24.900
+ -19057649.396 7 -14850098.652 7 20816561.209 20816561.279 20816560.279
+ 46.300 42.400
+ 06 1 1 19 28 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15357746.121 7 -11967067.209 7 20428333.158 20428332.606 20428331.946
+ 45.100 46.500
+ -21347343.292 7 -16634281.564 7 20401406.848 20401406.542 20401406.466
+ 45.100 44.400
+ -3417732.663 4 -2663165.675 4 23591213.515 23591214.657 23591212.572
+ 29.700 24.900
+ -10849384.977 6 -8454054.367 4 22625409.373 22625408.633 22625408.418
+ 38.600 27.900
+ -9563030.982 5 -7451705.459 5 23003669.014 23003667.173 23003668.163
+ 35.100 32.000
+ -21848429.533 7 -17024741.914 7 20562542.072 20562541.187 20562541.582
+ 47.700 47.500
+ -2029588.828 3 -1581496.126 4 24006205.461 24006208.512 24006205.005
+ 22.100 26.800
+ -10268113.964 5 -8001132.388 4 22969841.715 22969840.925 22969840.500
+ 31.800 24.200
+ -19010053.070 7 -14813010.609 7 20825618.484 20825618.600 20825617.583
+ 46.300 42.500
+ 06 1 1 19 28 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15354713.731 7 -11964704.304 7 20428910.245 20428909.691 20428909.049
+ 45.200 46.600
+ -21386853.123 7 -16665068.432 7 20393888.332 20393888.093 20393887.956
+ 45.200 44.600
+ -3365596.515 4 -2622540.124 4 23601134.205 23601135.798 23601133.465
+ 28.800 24.600
+ -10801190.818 6 -8416500.484 4 22634580.639 22634579.906 22634579.365
+ 38.500 27.900
+ -9659755.190 5 -7527074.926 5 22985262.250 22985261.148 22985261.762
+ 34.300 32.300
+ -21816028.198 7 -16999494.125 7 20568708.168 20568706.976 20568707.495
+ 47.800 47.500
+ -2127963.266 3 -1658151.372 3 23987485.413 23987487.434 23987484.386
+ 21.600 19.900
+ -10163408.818 4 -7919544.021 4 22989766.181 22989765.846 22989765.186
+ 29.500 25.600
+ -18962092.650 7 -14775638.867 7 20834745.097 20834745.075 20834744.174
+ 46.300 42.400
+ 06 1 1 19 29 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15351371.490 7 -11962099.955 7 20429546.223 20429545.744 20429545.090
+ 45.200 46.500
+ -21425895.464 7 -16695491.018 7 20386458.796 20386458.562 20386458.461
+ 45.200 44.600
+ -3312969.337 4 -2581531.981 4 23611148.608 23611150.143 23611147.766
+ 28.400 24.600
+ -10752446.970 6 -8378518.269 4 22643855.814 22643855.846 22643854.963
+ 38.600 28.800
+ -9756264.460 5 -7602276.905 5 22966897.675 22966896.036 22966896.698
+ 33.800 32.400
+ -21783287.616 7 -16973981.987 7 20574938.377 20574937.271 20574937.832
+ 47.800 47.400
+ -2226088.429 4 -1734612.417 2 23968813.153 23968814.088 23968811.983
+ 26.200 17.800
+ -10058462.268 4 -7837767.559 4 23009736.556 23009736.536 23009735.733
+ 29.000 24.600
+ -18913770.046 7 -14737984.898 7 20843940.760 20843940.577 20843939.673
+ 46.400 42.400
+ 06 1 1 19 29 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15347718.860 7 -11959253.750 7 20430241.406 20430240.820 20430240.183
+ 45.100 46.600
+ -21464470.084 7 -16725549.148 7 20379118.315 20379118.061 20379117.995
+ 45.300 44.600
+ -3259853.158 4 -2540142.771 4 23621256.268 23621257.798 23621255.338
+ 27.100 24.600
+ -10703155.358 6 -8340109.231 4 22653235.830 22653235.837 22653234.760
+ 38.200 27.600
+ -9852557.437 5 -7677310.343 5 22948573.740 22948571.792 22948572.767
+ 33.200 30.800
+ -21750208.028 7 -16948205.688 7 20581233.150 20581232.106 20581232.609
+ 47.800 47.300
+ -2323961.598 4 -1810877.125 3 23950187.876 23950190.036 23950186.762
+ 24.200 19.300
+ -9953276.586 4 -7755804.768 3 23029753.331 23029752.679 23029752.315
+ 27.900 23.400
+ -18865087.288 7 -14700050.290 7 20853204.626 20853204.609 20853203.605
+ 46.400 42.200
+ 06 1 1 19 30 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15343755.354 7 -11956165.302 7 20430995.463 20430995.064 20430994.329
+ 45.300 46.600
+ -21502577.137 7 -16755242.943 7 20371866.848 20371866.457 20371866.415
+ 45.100 44.700
+ -3206250.898 4 -2498374.823 3 23631456.667 23631457.788 23631455.718
+ 26.800 23.400
+ -10653317.483 6 -8301274.551 4 22662719.749 22662719.706 22662718.864
+ 38.800 27.900
+ -9948632.931 5 -7752174.317 5 22930290.912 22930289.170 22930289.901
+ 33.000 30.200
+ -21716789.481 7 -16922165.264 7 20587592.521 20587591.455 20587591.959
+ 47.600 47.400
+ -2421580.233 4 -1886943.450 2 23931611.787 23931613.471 23931610.572
+ 27.900 16.100
+ -9847854.268 4 -7673657.580 3 23049814.174 23049813.657 23049813.293
+ 27.600 22.600
+ -18816046.244 7 -14661836.494 7 20862536.711 20862536.834 20862535.757
+ 46.600 42.500
+ 06 1 1 19 30 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15339480.398 7 -11952834.165 7 20431809.003 20431808.471 20431807.751
+ 45.100 46.600
+ -21540216.271 7 -16784572.125 7 20364704.338 20364703.913 20364703.906
+ 45.100 44.700
+ -3152164.956 4 -2456229.987 3 23641749.133 23641749.720 23641748.024
+ 25.600 22.600
+ -10602935.041 6 -8262015.512 4 22672307.481 22672306.689 22672306.431
+ 39.000 27.900
+ -10044489.600 5 -7826867.767 5 22912049.580 22912048.039 22912048.901
+ 34.400 30.800
+ -21683032.034 7 -16895860.764 7 20594016.317 20594015.237 20594015.781
+ 47.600 47.200
+ -2518941.736 4 -1962809.517 2 23913084.873 23913085.225 23913083.686
+ 27.900 12.600
+ -9742197.482 4 -7591327.677 4 23069919.667 23069919.652 23069919.003
+ 29.700 24.200
+ -18766648.586 7 -14623344.813 7 20871936.996 20871936.860 20871936.019
+ 46.400 42.100
+ 06 1 1 19 31 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15334893.537 7 -11949259.985 7 20432681.875 20432681.240 20432680.684
+ 45.000 46.400
+ -21577387.184 7 -16813536.460 7 20357630.893 20357630.449 20357630.466
+ 44.800 44.700
+ -3097598.735 4 -2413710.869 3 23652132.540 23652133.692 23652131.723
+ 27.100 22.100
+ -10552010.264 6 -8222333.871 4 22681997.983 22681997.489 22681996.874
+ 38.800 28.400
+ -10140126.422 5 -7901389.900 5 22893850.679 22893849.364 22893849.911
+ 34.300 32.100
+ -21648935.564 7 -16869292.094 7 20600504.823 20600503.620 20600504.082
+ 47.500 47.200
+ -2616043.596 4 -2038473.201 2 23894605.646 23894607.091 23894604.947
+ 27.100 17.000
+ -9636308.756 4 -7508817.040 4 23090070.875 23090069.751 23090069.533
+ 29.500 24.200
+ -18716896.367 7 -14584576.852 7 20881404.507 20881404.338 20881403.595
+ 46.900 42.000
+ 06 1 1 19 31 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15329994.163 7 -11945442.291 7 20433614.204 20433613.569 20433613.071
+ 45.100 46.400
+ -21614089.846 7 -16842135.925 7 20350646.703 20350646.127 20350646.218
+ 45.100 44.700
+ -3042553.974 4 -2370818.877 3 23662606.600 23662608.697 23662605.956
+ 24.900 23.800
+ -10500544.630 6 -8182230.784 4 22691792.164 22691791.716 22691790.638
+ 38.400 28.600
+ -10235541.876 5 -7975739.523 5 22875693.430 22875692.171 22875692.846
+ 34.700 32.600
+ -21614500.306 7 -16842459.433 7 20607057.432 20607056.459 20607056.825
+ 47.400 47.100
+ -2712883.002 4 -2113932.450 3 23876179.212 23876179.482 23876178.067
+ 27.600 20.500
+ -9530189.736 4 -7426126.979 4 23110263.551 23110263.830 23110262.916
+ 28.100 24.600
+ -18666791.056 7 -14545533.755 7 20890939.271 20890939.103 20890938.339
+ 46.900 42.300
+ 06 1 1 19 32 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15324781.806 7 -11941380.714 7 20434606.123 20434605.463 20434604.928
+ 45.100 46.300
+ -21650324.141 7 -16870370.424 7 20343751.355 20343751.014 20343751.021
+ 45.100 44.700
+ -2987033.748 4 -2327556.411 3 23673172.024 23673173.820 23673171.286
+ 26.800 23.000
+ -10448540.144 6 -8141707.831 4 22701687.894 22701687.689 22701686.741
+ 38.300 27.900
+ -10330735.077 5 -8049915.967 5 22857579.021 22857577.341 22857578.203
+ 34.600 32.400
+ -21579726.307 7 -16815362.812 7 20613674.834 20613673.767 20613674.180
+ 47.500 47.100
+ -2809457.498 4 -2189185.220 4 23857800.708 23857802.837 23857799.829
+ 25.600 24.600
+ -9423843.308 4 -7343259.678 3 23130500.193 23130500.583 23130499.852
+ 28.100 23.000
+ -18616334.754 7 -14506217.153 7 20900540.780 20900540.637 20900539.822
+ 46.800 42.200
+ 06 1 1 19 32 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15319255.944 7 -11937074.846 7 20435657.620 20435656.951 20435656.419
+ 45.100 46.200
+ -21686090.078 7 -16898239.971 7 20336945.400 20336944.974 20336944.922
+ 44.900 44.700
+ -2931040.408 4 -2283925.260 3 23683827.810 23683828.763 23683826.853
+ 27.400 23.000
+ -10395998.546 6 -8100766.340 4 22711686.202 22711685.471 22711685.136
+ 38.600 26.500
+ -10425704.602 5 -8123918.112 5 22839507.177 22839505.113 22839506.154
+ 35.100 32.600
+ -21544613.634 7 -16788002.291 7 20620356.516 20620355.509 20620355.969
+ 47.700 47.200
+ -2905764.382 4 -2264229.447 3 23839474.190 23839476.239 23839473.149
+ 25.300 23.000
+ -9317271.772 4 -7260216.981 3 23150781.464 23150780.440 23150780.193
+ 27.900 22.600
+ -18565529.417 7 -14466628.578 7 20910208.554 20910208.635 20910207.615
+ 46.600 42.100
+ 06 1 1 19 33 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15313416.053 7 -11932524.281 7 20436768.704 20436768.234 20436767.627
+ 45.000 46.200
+ -21721387.366 7 -16925744.342 7 20330228.517 20330228.168 20330228.181
+ 45.100 45.000
+ -2874577.036 4 -2239927.857 4 23694572.253 23694573.883 23694571.401
+ 26.800 24.600
+ -10342921.602 6 -8059407.682 4 22721786.043 22721786.030 22721784.928
+ 38.100 27.400
+ -10520449.125 5 -8197744.948 5 22821477.720 22821475.842 22821476.783
+ 35.100 32.400
+ -21509162.614 7 -16760378.123 7 20627102.669 20627101.637 20627102.089
+ 47.900 47.100
+ -3001801.112 4 -2339063.208 4 23821198.718 23821200.503 23821197.587
+ 24.600 25.600
+ -9210477.274 4 -7177000.558 4 23171102.302 23171103.389 23171102.127
+ 28.400 24.600
+ -18514376.833 7 -14426769.417 6 20919942.460 20919942.675 20919941.557
+ 46.500 41.900
+ 06 1 1 19 33 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15307261.641 7 -11927728.636 7 20437940.099 20437939.453 20437938.912
+ 44.900 46.300
+ -21756215.942 7 -16952883.477 7 20323600.941 20323600.560 20323600.508
+ 45.000 45.000
+ -2817646.158 4 -2195566.177 4 23705405.946 23705406.830 23705405.086
+ 25.900 24.200
+ -10289311.210 6 -8017633.368 4 22731987.858 22731987.628 22731986.760
+ 37.600 27.400
+ -10614967.307 5 -8271395.411 5 22803491.677 22803489.598 22803490.639
+ 34.500 33.400
+ -21473373.089 7 -16732490.182 7 20633913.223 20633912.212 20633912.671
+ 47.900 47.200
+ -3097564.997 4 -2413684.306 4 23802976.251 23802977.941 23802974.640
+ 24.200 27.100
+ -9103462.147 4 -7093612.198 4 23191467.421 23191467.572 23191466.581
+ 27.100 24.200
+ -18462878.819 7 -14386641.096 7 20929742.205 20929742.560 20929741.273
+ 46.300 42.000
+ 06 1 1 19 34 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15300792.190 7 -11922687.507 7 20439171.135 20439170.636 20439169.986
+ 45.000 46.400
+ -21790575.896 7 -16979657.449 7 20317062.333 20317061.972 20317061.909
+ 44.900 45.100
+ -2760250.651 4 -2150842.450 4 23716327.908 23716329.590 23716327.060
+ 26.800 24.900
+ -10235169.305 6 -7975444.875 4 22742291.199 22742290.238 22742289.837
+ 37.400 27.100
+ -10709258.204 5 -8344868.787 5 22785548.611 22785546.633 22785547.760
+ 35.400 32.300
+ -21437245.218 7 -16704338.596 7 20640788.063 20640787.106 20640787.444
+ 47.700 47.000
+ -3193053.348 4 -2488090.727 3 23784805.613 23784805.964 23784804.478
+ 26.500 22.600
+ -8996228.517 4 -7010053.603 3 23211872.685 23211873.650 23211872.128
+ 27.900 23.400
+ -18411037.387 7 -14346245.168 7 20939607.384 20939607.535 20939606.438
+ 46.400 42.000
+ 06 1 1 19 34 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15294007.205 7 -11917400.506 7 20440461.966 20440461.761 20440460.960
+ 45.200 46.400
+ -21824467.118 7 -17006066.185 7 20310613.094 20310612.658 20310612.646
+ 45.000 45.100
+ -2702393.577 4 -2105759.065 4 23727337.448 23727339.446 23727336.936
+ 27.600 25.600
+ -10180497.695 6 -7932843.647 4 22752695.023 22752694.389 22752693.680
+ 38.400 27.600
+ -10803320.709 5 -8418164.205 5 22767648.678 22767646.983 22767647.971
+ 35.300 31.300
+ -21400779.038 7 -16675923.389 7 20647727.259 20647726.336 20647726.715
+ 47.700 47.000
+ -3288263.654 4 -2562280.538 3 23766687.453 23766688.061 23766686.064
+ 26.200 23.800
+ -8888779.094 4 -6926326.827 3 23232321.262 23232320.357 23232319.577
+ 26.200 23.000
+ -18358854.172 7 -14305582.921 7 20949537.372 20949537.694 20949536.507
+ 46.500 42.100
+ 06 1 1 19 35 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15286906.131 7 -11911867.206 7 20441813.469 20441813.004 20441812.365
+ 45.200 46.300
+ -21857889.580 7 -17032109.651 7 20304253.074 20304252.664 20304252.627
+ 44.900 45.200
+ -2644077.166 4 -2060317.744 3 23738434.295 23738436.327 23738433.758
+ 26.800 23.000
+ -10125298.470 6 -7889831.266 4 22763198.700 22763198.214 22763197.303
+ 37.700 27.600
+ -10897153.115 6 -8491280.343 5 22749793.474 22749791.335 22749792.597
+ 36.000 32.600
+ -21363974.683 7 -16647244.671 7 20654730.998 20654730.011 20654730.408
+ 47.600 47.000
+ -3383193.230 3 -2636251.475 4 23748621.931 23748624.338 23748621.113
+ 23.400 26.800
+ -8781115.827 4 -6842433.474 3 23252807.432 23252808.138 23252806.856
+ 25.600 23.000
+ -18306331.119 7 -14264655.867 6 20959532.254 20959532.395 20959531.371
+ 46.500 41.800
+ 06 1 1 19 35 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15279488.548 7 -11906087.270 7 20443225.045 20443224.554 20443223.902
+ 45.000 46.300
+ -21890843.151 7 -17057787.745 7 20297981.934 20297981.808 20297981.562
+ 44.700 45.400
+ -2585304.182 4 -2014520.659 3 23749619.370 23749620.601 23749618.664
+ 28.600 22.100
+ -10069573.326 6 -7846409.098 4 22773802.695 22773802.513 22773801.413
+ 37.400 27.400
+ -10990754.591 5 -8564216.533 5 22731981.547 22731979.585 22731980.676
+ 35.900 33.100
+ -21326832.402 7 -16618302.632 7 20661798.907 20661797.876 20661798.330
+ 47.700 46.900
+ -3477839.520 4 -2710001.761 3 23730611.594 23730612.939 23730610.932
+ 26.200 23.000
+ -8673241.267 4 -6758375.412 3 23273335.140 23273336.205 23273334.686
+ 27.400 22.100
+ -18253470.199 7 -14223465.540 6 20969591.335 20969591.558 20969590.440
+ 46.500 41.900
+ 06 1 1 19 36 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15271753.831 7 -11900060.214 7 20444696.877 20444696.366 20444695.699
+ 44.900 46.300
+ -21923327.931 7 -17083100.547 7 20291800.383 20291800.209 20291799.970
+ 44.800 45.600
+ -2526077.669 4 -1968370.160 3 23760889.628 23760891.159 23760888.934
+ 27.400 23.400
+ -10013324.412 6 -7802578.783 4 22784506.710 22784506.639 22784505.518
+ 37.400 28.400
+ -11084123.949 5 -8636971.845 5 22714213.882 22714211.799 22714213.079
+ 35.600 32.600
+ -21289352.186 7 -16589097.271 7 20668930.984 20668930.181 20668930.524
+ 47.600 46.900
+ -3572199.917 4 -2783529.217 4 23712656.029 23712657.123 23712654.926
+ 27.100 26.200
+ -8565157.563 4 -6674154.395 3 23293903.749 23293903.303 23293902.559
+ 26.800 18.600
+ -18200273.140 7 -14182013.292 6 20979714.511 20979714.559 20979713.556
+ 46.400 41.800
+ 06 1 1 19 36 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15263701.639 7 -11893785.782 7 20446229.235 20446228.655 20446228.058
+ 44.800 46.200
+ -21955343.787 7 -17108047.961 7 20285707.809 20285707.716 20285707.462
+ 45.000 45.400
+ -2466400.589 4 -1921868.589 3 23772245.514 23772247.169 23772244.726
+ 26.200 23.400
+ -9956553.526 6 -7758341.747 4 22795310.202 22795309.719 22795308.717
+ 37.400 27.600
+ -11177259.753 5 -8709545.179 5 22696490.539 22696488.640 22696489.830
+ 35.700 33.200
+ -21251534.363 7 -16559628.839 7 20676127.601 20676126.737 20676127.053
+ 47.800 47.000
+ -3666271.661 4 -2856831.773 3 23694753.987 23694755.442 23694752.886
+ 27.900 23.800
+ -8456867.259 4 -6589772.393 3 23314510.275 23314510.880 23314509.645
+ 28.800 22.600
+ -18146741.934 7 -14140300.668 6 20989900.946 20989901.261 20989900.160
+ 46.300 41.900
+ 06 1 1 19 37 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15255331.384 7 -11887263.503 7 20447821.967 20447821.522 20447820.860
+ 45.000 46.300
+ -21986891.073 7 -17132630.254 7 20279704.840 20279704.469 20279704.329
+ 44.900 45.500
+ -2406275.228 4 -1875017.702 3 23783686.996 23783688.359 23783686.574
+ 26.500 21.100
+ -9899262.729 6 -7713699.583 4 22806211.888 22806211.599 22806210.650
+ 37.200 27.900
+ -11270160.838 5 -8781935.608 5 22678811.726 22678810.159 22678811.018
+ 35.800 33.500
+ -21213378.719 7 -16529897.171 7 20683388.368 20683387.494 20683387.852
+ 47.800 46.800
+ -3760052.356 4 -2929907.571 4 23676908.629 23676909.689 23676907.443
+ 28.400 25.300
+ -8348372.493 4 -6505231.079 3 23335157.635 23335156.670 23335156.049
+ 26.800 23.000
+ -18092878.318 7 -14098329.029 6 21000151.122 21000151.157 21000150.131
+ 46.500 41.800
+ 06 1 1 19 37 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15246642.457 7 -11880492.911 7 20449475.520 20449474.941 20449474.283
+ 44.800 46.200
+ -22017969.368 7 -17156847.096 7 20273790.687 20273790.446 20273790.327
+ 45.000 45.700
+ -2345704.324 4 -1827819.644 3 23795213.470 23795215.220 23795212.794
+ 25.900 22.100
+ -9841454.041 6 -7668653.860 4 22817212.975 22817212.076 22817211.301
+ 37.000 26.200
+ -11362825.964 6 -8854142.169 5 22661178.180 22661176.682 22661177.485
+ 36.200 33.900
+ -21174885.451 7 -16499902.419 7 20690713.512 20690712.479 20690712.923
+ 47.700 46.800
+ -3853539.246 4 -3002754.399 3 23659118.743 23659119.277 23659117.476
+ 29.200 21.600
+ -8239675.623 4 -6420532.303 3 23355839.807 23355841.349 23355839.832
+ 26.500 23.800
+ -18038684.401 7 -14056100.014 6 21010463.948 21010463.974 21010462.972
+ 46.500 41.900
+ 06 1 1 19 38 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15237634.529 7 -11873473.741 7 20451189.411 20451189.051 20451188.273
+ 44.800 46.100
+ -22048579.052 7 -17180698.787 7 20267965.960 20267965.601 20267965.449
+ 44.900 45.600
+ -2284691.128 4 -1780276.955 3 23806823.868 23806825.531 23806823.118
+ 26.200 22.600
+ -9783129.430 6 -7623206.123 4 22828311.519 22828311.069 22828310.328
+ 37.700 27.600
+ -11455254.040 6 -8926164.017 5 22643589.599 22643588.082 22643588.851
+ 36.300 33.400
+ -21136054.794 7 -16469644.764 7 20698102.632 20698101.703 20698102.218
+ 47.800 46.700
+ -3946729.708 4 -3075370.267 4 23641384.376 23641385.400 23641383.269
+ 26.200 24.200
+ -8130779.267 4 -6335678.079 3 23376564.284 23376563.371 23376562.782
+ 24.600 19.900
+ -17984162.055 7 -14013615.079 6 21020839.234 21020839.165 21020838.267
+ 46.800 41.600
+ 06 1 1 19 38 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15228307.101 7 -11866205.613 7 20452964.306 20452964.018 20452963.179
+ 44.800 46.200
+ -22078719.937 7 -17204185.182 7 20262230.047 20262229.982 20262229.670
+ 44.700 45.700
+ -2223238.610 4 -1732391.924 3 23818518.134 23818519.857 23818517.077
+ 26.200 23.000
+ -9724291.082 6 -7577358.067 4 22839507.996 22839507.349 22839506.795
+ 37.200 27.400
+ -11547443.844 6 -8998000.193 5 22626046.848 22626044.679 22626046.114
+ 36.600 33.200
+ -21096886.806 7 -16439124.259 7 20705556.314 20705555.117 20705555.767
+ 47.900 46.500
+ -4039621.171 4 -3147753.131 3 23623707.329 23623708.676 23623706.630
+ 26.500 20.500
+ -8021685.642 4 -6250670.119 3 23397322.183 23397322.968 23397321.856
+ 24.900 18.600
+ -17929313.090 7 -13970875.634 6 21031276.642 21031276.724 21031275.733
+ 46.800 41.800
+ 06 1 1 19 39 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15218659.642 7 -11858688.109 7 20454800.409 20454799.888 20454799.188
+ 44.900 46.200
+ -22108392.129 7 -17227306.366 7 20256583.884 20256583.499 20256583.423
+ 44.900 45.700
+ -2161349.554 4 -1684166.742 3 23830295.375 23830296.822 23830294.550
+ 26.200 23.800
+ -9664941.033 6 -7531111.293 4 22850801.683 22850801.283 22850800.670
+ 37.400 27.100
+ -11639394.143 6 -9069649.736 5 22608549.201 22608547.276 22608548.405
+ 36.400 33.200
+ -21057381.751 7 -16408341.102 7 20713073.731 20713072.683 20713073.224
+ 47.800 46.400
+ -4132211.037 4 -3219901.042 3 23606088.123 23606089.383 23606087.028
+ 26.200 18.600
+ -7912397.269 4 -6165510.405 3 23418121.003 23418120.059 23418119.560
+ 27.900 19.300
+ -17874139.056 7 -13927882.886 6 21041775.929 21041775.896 21041775.004
+ 46.500 41.500
+ 06 1 1 19 39 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15208691.675 7 -11850920.852 7 20456697.230 20456696.725 20456696.078
+ 44.800 46.100
+ -22137595.871 7 -17250062.523 7 20251026.668 20251026.216 20251026.257
+ 45.100 45.700
+ -2099026.563 4 -1635603.436 3 23842154.690 23842156.617 23842153.965
+ 24.900 23.400
+ -9605081.214 6 -7484467.290 4 22862193.182 22862192.350 22862191.732
+ 37.400 27.100
+ -11731103.939 6 -9141111.862 5 22591097.396 22591095.573 22591096.640
+ 36.700 34.300
+ -21017539.760 7 -16377295.399 7 20720655.356 20720654.418 20720654.841
+ 47.800 46.500
+ -4224496.691 4 -3291811.861 3 23588527.160 23588528.097 23588526.120
+ 28.400 19.300
+ -7802916.187 4 -6080200.572 3 23438953.998 23438953.874 23438953.247
+ 28.600 20.500
+ -17818642.123 7 -13884638.528 6 21052336.548 21052336.693 21052335.658
+ 46.400 41.400
+ 06 1 1 19 40 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15198402.707 7 -11842903.471 7 20458655.156 20458654.672 20458653.964
+ 44.900 46.300
+ -22166331.151 7 -17272453.637 7 20245558.584 20245558.055 20245558.100
+ 45.100 45.800
+ -2036272.610 4 -1586704.321 4 23854096.700 23854098.420 23854095.940
+ 26.200 24.200
+ -9544713.333 6 -7437427.382 4 22873680.477 22873679.541 22873679.464
+ 37.100 26.200
+ -11822571.910 6 -9212385.546 5 22573691.734 22573689.749 22573690.807
+ 37.100 34.400
+ -20977360.818 7 -16345987.137 7 20728301.199 20728300.162 20728300.637
+ 47.700 46.200
+ -4316475.415 4 -3363483.575 3 23571023.998 23571024.883 23571022.517
+ 26.200 22.600
+ -7693244.915 4 -5994742.480 3 23459824.133 23459823.629 23459822.886
+ 27.900 22.100
+ -17762823.747 7 -13841143.690 6 21062958.321 21062958.478 21062957.480
+ 46.400 41.400
+ 06 1 1 19 40 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15187792.287 7 -11834635.606 7 20460674.096 20460673.775 20460672.985
+ 44.900 46.300
+ -22194598.185 7 -17294479.892 7 20240179.339 20240178.971 20240178.973
+ 45.100 45.800
+ -1973090.748 4 -1537471.744 3 23866119.853 23866121.264 23866119.221
+ 27.600 22.100
+ -9483840.261 6 -7389993.828 4 22885263.968 22885263.576 22885262.822
+ 36.200 25.600
+ -11913797.088 6 -9283470.055 5 22556332.115 22556330.010 22556331.234
+ 37.400 34.100
+ -20936845.070 7 -16314416.428 7 20736011.055 20736009.925 20736010.546
+ 47.900 45.900
+ -4408144.655 4 -3434914.076 4 23553579.776 23553581.526 23553578.767
+ 25.900 26.200
+ -7583385.702 4 -5909137.984 3 23480729.649 23480728.701 23480728.455
+ 24.900 20.500
+ -17706686.199 7 -13797400.149 6 21073641.016 21073641.177 21073640.056
+ 46.300 41.400
+ 06 1 1 19 41 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15176859.936 7 -11826116.883 7 20462754.410 20462754.102 20462753.283
+ 44.800 46.100
+ -22222396.866 7 -17316141.190 7 20234889.385 20234889.041 20234888.992
+ 45.100 45.800
+ -1909483.581 4 -1487907.783 3 23878223.710 23878225.485 23878222.946
+ 27.100 22.600
+ -9422463.738 6 -7342167.962 4 22896943.617 22896943.621 22896942.410
+ 36.600 27.600
+ -12004777.958 6 -9354364.187 5 22539018.881 22539017.013 22539017.909
+ 36.700 34.600
+ -20895992.833 7 -16282583.516 7 20743784.942 20743783.793 20743784.521
+ 47.700 45.800
+ -4499501.759 4 -3506101.348 4 23536194.890 23536196.691 23536193.492
+ 24.900 25.900
+ -7473341.004 4 -5823388.928 3 23501669.257 23501670.332 23501669.167
+ 24.900 21.100
+ -17650231.383 7 -13753409.383 6 21084383.940 21084384.113 21084382.994
+ 46.200 41.200
+ 06 1 1 19 41 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15165605.131 7 -11817346.903 7 20464896.247 20464895.813 20464895.041
+ 44.800 46.100
+ -22249727.570 7 -17337437.838 7 20229688.655 20229688.127 20229688.278
+ 45.200 45.700
+ -1845454.594 4 -1438015.122 3 23890408.003 23890410.332 23890407.281
+ 26.500 23.000
+ -9360585.787 6 -7293951.396 4 22908718.798 22908718.461 22908717.725
+ 37.200 25.600
+ -12095513.583 6 -9425067.216 5 22521752.025 22521750.536 22521751.268
+ 36.500 34.300
+ -20854804.098 7 -16250488.402 7 20751622.889 20751621.862 20751622.414
+ 47.900 45.900
+ -4590544.185 4 -3577043.409 4 23518870.714 23518871.716 23518869.637
+ 29.900 25.600
+ -7363113.073 4 -5737497.108 3 23522645.822 23522645.767 23522644.678
+ 25.300 19.900
+ -17593461.121 7 -13709172.812 6 21095186.926 21095187.216 21095186.057
+ 46.100 41.100
+ 06 1 1 19 42 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15154027.527 7 -11808325.385 7 20467099.423 20467099.000 20467098.276
+ 44.800 46.100
+ -22276590.492 7 -17358369.979 7 20224577.079 20224576.298 20224576.579
+ 45.200 45.900
+ -1781006.542 4 -1387795.914 3 23902672.185 23902674.281 23902671.428
+ 25.300 23.800
+ -9298208.750 6 -7245345.922 4 22920588.291 22920588.534 22920587.287
+ 36.400 26.200
+ -12186002.915 6 -9495578.346 5 22504532.708 22504530.642 22504531.904
+ 36.900 33.900
+ -20813279.255 7 -16218131.383 7 20759524.853 20759523.745 20759524.360
+ 47.900 45.800
+ -4681269.215 5 -3647738.191 4 23501605.639 23501607.414 23501604.565
+ 30.600 25.900
+ -7252704.532 4 -5651464.525 3 23543655.495 23543656.357 23543654.829
+ 26.800 23.400
+ -17536377.109 7 -13664691.762 6 21106049.794 21106049.918 21106048.871
+ 46.200 41.300
+ 06 1 1 19 42 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15142126.485 7 -11799051.844 7 20469364.097 20469363.711 20469362.902
+ 44.900 46.100
+ -22302985.513 7 -17378937.519 7 20219554.093 20219553.551 20219553.596
+ 45.100 46.000
+ -1716141.941 4 -1337252.124 3 23915015.975 23915017.541 23915014.835
+ 25.300 22.100
+ -9235334.694 6 -7196353.142 4 22932553.225 22932552.894 22932551.793
+ 36.200 25.900
+ -12276244.748 6 -9565896.619 5 22487360.335 22487358.418 22487359.481
+ 37.300 34.000
+ -20771418.368 8 -16185512.511 7 20767490.994 20767489.555 20767490.338
+ 48.000 45.700
+ -4771674.333 5 -3718183.667 3 23484402.639 23484403.104 23484401.588
+ 31.000 23.000
+ -7142117.631 4 -5565293.010 3 23564700.308 23564700.048 23564699.579
+ 26.200 22.100
+ -17478981.320 7 -13619967.771 6 21116971.944 21116972.026 21116970.958
+ 46.500 41.100
+ 06 1 1 19 43 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15129901.696 7 -11789526.034 7 20471690.174 20471689.918 20471689.057
+ 44.900 45.900
+ -22328912.941 7 -17399140.699 7 20214620.178 20214619.723 20214619.773
+ 45.000 46.100
+ -1650864.142 4 -1286386.351 3 23927437.578 23927439.342 23927436.737
+ 26.200 21.100
+ -9171965.754 6 -7146974.773 4 22944612.006 22944612.040 22944610.924
+ 36.800 26.800
+ -12366237.779 6 -9636021.024 5 22470235.509 22470233.267 22470234.537
+ 37.700 34.700
+ -20729221.636 8 -16152631.935 7 20775520.810 20775519.340 20775520.155
+ 48.100 45.600
+ -4861756.792 4 -3788377.757 4 23467260.224 23467261.790 23467258.781
+ 27.600 26.800
+ -7031354.683 4 -5478984.329 3 23585776.374 23585778.024 23585776.268
+ 24.600 22.600
+ -17421275.741 7 -13575002.375 6 21127952.850 21127952.891 21127951.962
+ 46.600 40.800
+ 06 1 1 19 43 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15117352.640 7 -11779747.547 7 20474078.268 20474077.876 20474077.142
+ 44.800 46.100
+ -22354373.004 7 -17418979.702 7 20209775.092 20209774.821 20209774.817
+ 44.900 46.200
+ -1585176.145 4 -1235200.930 3 23939937.847 23939939.385 23939936.945
+ 26.200 21.100
+ -9108104.050 5 -7097212.404 4 22956764.420 22956763.922 22956763.086
+ 35.300 26.200
+ -12455980.880 6 -9705950.684 5 22453157.673 22453155.662 22453156.851
+ 37.700 35.100
+ -20686689.010 8 -16119489.632 7 20783614.616 20783613.014 20783613.914
+ 48.300 45.600
+ -4951514.079 4 -3858318.394 4 23450179.896 23450180.860 23450178.541
+ 27.600 24.900
+ -6920418.045 4 -5392540.254 3 23606888.399 23606888.201 23606887.603
+ 25.300 18.600
+ -17363262.206 7 -13529797.016 6 21138992.650 21138992.509 21138991.708
+ 46.600 40.700
+ 06 1 1 19 44 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15104478.870 7 -11769716.036 7 20476528.106 20476527.715 20476527.004
+ 45.100 45.800
+ -22379365.828 7 -17438454.624 7 20205019.325 20205018.820 20205018.912
+ 45.100 46.100
+ -1519080.243 4 -1183697.672 3 23952515.074 23952517.429 23952514.689
+ 25.600 21.100
+ -9043751.781 6 -7047067.810 4 22969010.752 22969009.949 22969009.294
+ 36.000 26.200
+ -12545473.183 6 -9775684.916 5 22436127.854 22436126.014 22436126.900
+ 37.400 35.800
+ -20643820.856 8 -16086085.871 7 20791771.866 20791770.617 20791771.268
+ 48.000 45.500
+ -5040943.672 4 -3928003.711 4 23433161.176 23433163.136 23433160.066
+ 25.300 26.500
+ -6809310.195 3 -5305962.770 2 23628031.211 23628030.973 23628030.154
+ 23.400 15.100
+ -17304942.395 7 -13484353.003 6 21150090.278 21150090.420 21150089.427
+ 46.500 40.900
+ 06 1 1 19 44 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15091279.953 7 -11759431.161 7 20479040.043 20479039.419 20479038.683
+ 45.200 45.900
+ -22403891.721 7 -17457565.700 7 20200352.256 20200351.657 20200351.798
+ 45.100 46.200
+ -1452580.449 4 -1131879.710 3 23965169.665 23965171.831 23965168.863
+ 25.600 21.600
+ -8978911.074 6 -6996542.617 4 22981348.791 22981348.769 22981347.770
+ 36.300 25.300
+ -12634713.267 6 -9845222.613 5 22419145.914 22419144.027 22419145.034
+ 37.800 35.200
+ -20600617.635 8 -16052421.026 7 20799993.186 20799991.985 20799992.629
+ 48.000 45.600
+ -5130042.882 4 -3997431.558 4 23416206.482 23416207.823 23416205.452
+ 27.600 25.600
+ -6698033.695 3 -5219253.851 2 23649206.840 23649206.392 23649205.693
+ 23.000 17.800
+ -17246318.045 7 -13438671.692 6 21161246.113 21161246.327 21161245.195
+ 46.400 40.600
+ 06 1 1 19 45 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15077755.455 7 -11748892.596 7 20481613.668 20481613.088 20481612.425
+ 45.200 45.900
+ -22427950.707 7 -17476312.950 7 20195773.705 20195773.391 20195773.367
+ 44.900 46.200
+ -1385678.861 4 -1079748.647 3 23977900.707 23977902.648 23977900.181
+ 27.400 20.500
+ -8913584.428 6 -6945638.751 4 22993780.419 22993780.194 22993779.388
+ 36.500 25.600
+ -12723700.197 6 -9914563.056 5 22402212.108 22402210.270 22402211.365
+ 38.100 35.100
+ -20557079.106 7 -16018494.896 7 20808278.156 20808277.067 20808277.702
+ 47.800 45.500
+ -5218808.981 4 -4066599.908 3 23399314.432 23399315.938 23399313.601
+ 29.000 22.600
+ -6586590.846 4 -5132415.340 3 23670413.127 23670413.634 23670412.538
+ 24.900 19.300
+ -17187391.254 7 -13392754.711 6 21172459.593 21172459.526 21172458.660
+ 46.300 40.600
+ 06 1 1 19 45 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15063904.663 7 -11738099.769 7 20484249.402 20484248.807 20484248.158
+ 45.200 45.800
+ -22451543.387 7 -17494696.849 7 20191284.219 20191283.896 20191283.805
+ 44.900 46.300
+ -1318379.194 4 -1027307.370 3 23990707.489 23990709.629 23990706.904
+ 25.600 22.100
+ -8847773.937 6 -6894357.881 4 23006304.065 23006303.619 23006302.695
+ 36.100 26.500
+ -12812432.800 6 -9983705.315 5 22385326.801 22385324.790 22385325.904
+ 37.300 34.900
+ -20513205.674 7 -15984307.812 7 20816627.050 20816625.927 20816626.515
+ 47.900 45.400
+ -5307239.488 4 -4135506.689 3 23382487.066 23382487.870 23382486.186
+ 29.500 22.600
+ -6474983.681 3 -5045448.824 3 23691650.684 23691652.203 23691650.512
+ 23.400 22.600
+ -17128163.817 7 -13346603.466 6 21183730.126 21183730.212 21183729.263
+ 46.200 40.600
+ 06 1 1 19 46 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15049727.517 7 -11727052.641 7 20486947.175 20486946.572 20486945.922
+ 45.400 45.700
+ -22474669.694 7 -17512717.339 7 20186883.378 20186883.104 20186883.031
+ 44.900 46.400
+ -1250684.147 4 -974558.018 4 24003589.239 24003591.835 24003588.755
+ 24.600 24.600
+ -8781481.895 5 -6842701.779 4 23018918.055 23018918.804 23018917.167
+ 35.500 27.100
+ -12900909.750 6 -10052648.360 5 22368490.280 22368488.288 22368489.403
+ 37.900 35.400
+ -20468997.438 8 -15949859.838 7 20825039.485 20825038.534 20825039.037
+ 48.000 45.400
+ -5395331.803 4 -4204150.030 4 23365723.364 23365724.777 23365722.236
+ 26.800 24.600
+ -6363214.792 4 -4958356.256 2 23712920.771 23712920.988 23712919.702
+ 26.500 16.100
+ -17068637.784 7 -13300219.548 6 21195057.662 21195057.613 21195056.702
+ 46.300 40.400
+ 06 1 1 19 46 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15035223.308 7 -11715750.662 7 20489707.014 20489706.605 20489705.925
+ 45.400 45.800
+ -22497330.084 7 -17530374.773 7 20182571.406 20182570.952 20182570.923
+ 44.600 46.400
+ -1182596.852 3 -921503.034 3 24016545.954 24016548.279 24016545.161
+ 21.600 23.800
+ -8714710.318 5 -6790672.015 4 23031624.545 23031624.561 23031623.563
+ 35.300 24.900
+ -12989129.863 6 -10121391.270 5 22351702.670 22351700.544 22351701.747
+ 38.100 35.500
+ -20424454.474 7 -15915151.039 7 20833515.911 20833514.669 20833515.319
+ 47.500 45.300
+ -5483083.296 4 -4272527.690 4 23349025.462 23349026.809 23349024.171
+ 29.900 28.400
+ -6251286.452 4 -4871139.453 3 23734219.967 23734220.222 23734219.232
+ 26.500 18.600
+ -17008815.074 7 -13253604.455 6 21206441.546 21206441.604 21206440.709
+ 46.400 40.300
+ 06 1 1 19 47 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15020391.726 7 -11704193.582 7 20492529.367 20492528.957 20492528.231
+ 45.300 45.700
+ -22519524.791 7 -17547669.341 7 20178347.579 20178347.397 20178347.269
+ 44.600 46.400
+ -1114120.141 4 -868144.609 3 24029577.022 24029578.927 24029575.992
+ 24.600 23.400
+ -8647461.865 5 -6738270.642 4 23044422.155 23044421.558 23044420.850
+ 35.900 24.200
+ -13077092.477 6 -10189933.536 5 22334964.044 22334961.702 22334963.029
+ 38.800 34.900
+ -20379577.151 7 -15880181.700 7 20842055.618 20842054.638 20842055.097
+ 47.500 45.400
+ -5570491.443 4 -4340637.825 4 23332391.890 23332393.060 23332390.429
+ 28.600 28.600
+ -6139201.687 3 -4783800.686 2 23755548.790 23755549.021 23755547.534
+ 22.100 17.000
+ -16948697.405 7 -13206759.522 6 21217881.567 21217881.522 21217880.620
+ 46.000 40.000
+ 06 1 1 19 47 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -15005232.398 7 -11692381.115 7 20495414.093 20495413.635 20495412.960
+ 45.500 45.600
+ -22541254.137 7 -17564601.284 7 20174212.796 20174212.410 20174212.450
+ 44.800 46.400
+ -1045257.140 4 -814485.169 4 24042681.326 24042683.209 24042680.336
+ 24.200 24.200
+ -8579738.648 5 -6685499.326 4 23057309.341 23057308.835 23057308.119
+ 35.600 25.300
+ -13164796.461 6 -10258274.270 5 22318274.270 22318272.202 22318273.353
+ 38.100 35.500
+ -20334365.590 7 -15844951.914 7 20850659.178 20850658.134 20850658.551
+ 47.400 45.300
+ -5657553.621 4 -4408478.366 4 23315823.658 23315825.280 23315822.609
+ 27.900 26.800
+ -6026962.194 3 -4696341.449 3 23776907.232 23776908.493 23776906.764
+ 23.800 20.500
+ -16888286.397 7 -13159686.017 6 21229377.136 21229377.314 21229376.283
+ 45.900 39.800
+ 06 1 1 19 48 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14989744.759 7 -11680312.821 7 20498361.416 20498360.812 20498360.232
+ 45.500 45.500
+ -22562518.229 7 -17581170.698 7 20170166.382 20170165.916 20170165.994
+ 44.800 46.300
+ -976011.072 3 -760527.251 3 24055858.435 24055860.206 24055857.411
+ 23.000 23.000
+ -8511542.869 5 -6632359.792 4 23070287.095 23070286.080 23070285.582
+ 35.600 24.600
+ -13252240.431 6 -10326412.393 6 22301634.132 22301632.289 22301633.307
+ 38.600 36.100
+ -20288820.156 7 -15809461.970 7 20859326.018 20859325.133 20859325.652
+ 47.400 45.300
+ -5744267.236 4 -4476047.319 4 23299323.364 23299324.645 23299322.055
+ 28.100 27.900
+ -5914570.608 3 -4608763.706 3 23798295.881 23798295.471 23798293.774
+ 22.600 19.300
+ -16827584.087 7 -13112385.522 6 21240928.741 21240928.531 21240927.765
+ 45.900 39.500
+ 06 1 1 19 48 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14973928.427 7 -11667988.400 7 20501371.219 20501370.576 20501370.004
+ 45.600 45.500
+ -22583317.579 7 -17597377.970 7 20166208.437 20166207.881 20166208.030
+ 44.700 46.300
+ -906384.917 4 -706273.161 3 24069107.602 24069109.803 24069107.037
+ 24.900 23.000
+ -8442876.830 5 -6578853.806 4 23083353.248 23083352.956 23083352.159
+ 34.900 24.900
+ -13339423.268 6 -10394347.022 6 22285043.829 22285041.961 22285043.067
+ 38.500 36.500
+ -20242941.075 7 -15773712.045 7 20868056.438 20868055.721 20868056.125
+ 47.400 45.300
+ -5830629.723 5 -4543342.689 4 23282888.869 23282889.625 23282888.134
+ 31.300 25.300
+ -5802029.274 4 -4521069.242 3 23819710.355 23819711.469 23819710.208
+ 25.600 20.500
+ -16766592.399 7 -13064859.538 6 21252534.943 21252534.944 21252534.009
+ 45.800 39.900
+ 06 1 1 19 49 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14957782.910 7 -11655407.473 7 20504443.649 20504443.012 20504442.462
+ 45.400 45.500
+ -22603652.402 7 -17613223.277 7 20162338.809 20162338.285 20162338.380
+ 44.700 46.300
+ -836381.335 4 -651724.965 3 24082428.722 24082431.175 24082428.138
+ 25.900 23.400
+ -8373742.932 6 -6524983.254 4 23096509.301 23096508.439 23096508.068
+ 36.200 24.900
+ -13426344.189 6 -10462077.560 6 22268503.475 22268501.433 22268502.725
+ 39.200 36.500
+ -20196728.267 7 -15737702.072 7 20876850.597 20876849.637 20876850.027
+ 47.400 45.200
+ -5916638.445 5 -4610362.376 4 23266521.991 23266523.564 23266520.835
+ 31.000 28.400
+ -5689340.825 3 -4433260.131 2 23841155.978 23841155.471 23841154.335
+ 21.100 15.100
+ -16705313.216 7 -13017109.529 6 21264195.915 21264195.975 21264195.042
+ 46.000 39.900
+ 06 1 1 19 49 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14941307.865 7 -11642569.772 7 20507578.578 20507578.055 20507577.462
+ 45.600 45.300
+ -22623523.138 7 -17628706.953 7 20158557.656 20158557.069 20158557.146
+ 44.700 46.600
+ -766004.228 4 -596885.719 3 24095821.611 24095823.436 24095820.859
+ 27.100 23.400
+ -8304143.417 5 -6470749.861 4 23109753.550 23109753.254 23109752.226
+ 34.900 25.300
+ -13513001.878 6 -10529602.990 6 22252012.775 22252010.742 22252012.135
+ 38.900 36.000
+ -20150182.520 7 -15701432.659 7 20885708.007 20885706.870 20885707.419
+ 47.400 45.000
+ -6002290.892 5 -4677104.488 4 23250222.815 23250223.631 23250221.655
+ 31.600 26.200
+ -5576507.493 3 -4345338.056 3 23862625.592 23862626.551 23862625.195
+ 22.600 18.600
+ -16643748.147 7 -12969136.746 6 21275911.446 21275911.520 21275910.565
+ 46.100 40.000
+ 06 1 1 19 50 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14924502.982 7 -11629475.049 7 20510776.565 20510775.869 20510775.402
+ 45.600 45.300
+ -22642930.120 7 -17643829.262 7 20154864.540 20154864.074 20154864.105
+ 44.600 46.500
+ -695256.159 4 -541757.399 3 24109284.792 24109286.282 24109283.792
+ 27.600 22.100
+ -8234080.830 5 -6416155.661 4 23123085.593 23123085.334 23123084.490
+ 34.500 25.300
+ -13599395.388 6 -10596922.567 6 22235573.003 22235570.649 22235572.047
+ 39.000 36.100
+ -20103303.783 7 -15664903.776 7 20894628.872 20894627.703 20894628.116
+ 47.300 45.100
+ -6087584.368 5 -4743566.875 4 23233992.072 23233992.740 23233990.837
+ 30.600 25.600
+ -5463531.539 3 -4257304.991 3 23884126.165 23884125.216 23884124.941
+ 23.800 19.300
+ -16581899.236 7 -12920942.793 6 21287681.128 21287681.042 21287680.109
+ 46.000 40.200
+ 06 1 1 19 50 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14907367.669 7 -11616122.855 7 20514037.263 20514036.599 20514036.155
+ 45.900 45.200
+ -22661873.773 7 -17658590.535 7 20151259.656 20151259.196 20151259.246
+ 44.600 46.500
+ -624140.294 4 -486342.495 3 24122818.046 24122819.327 24122816.858
+ 26.200 19.900
+ -8163557.019 6 -6361202.057 4 23136506.042 23136506.249 23136505.105
+ 36.300 26.800
+ -13685523.451 6 -10664035.302 6 22219182.855 22219181.005 22219182.067
+ 38.600 36.000
+ -20056092.059 7 -15628115.423 7 20903612.788 20903611.901 20903612.299
+ 47.500 45.200
+ -6172516.440 5 -4809747.635 4 23217830.387 23217831.093 23217829.077
+ 31.000 26.800
+ -5350415.844 4 -4169162.931 3 23905649.766 23905650.983 23905648.986
+ 24.200 21.100
+ -16519767.967 7 -12872528.821 6 21299504.298 21299504.264 21299503.266
+ 46.000 39.800
+ 06 1 1 19 51 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14889901.605 7 -11602512.929 7 20517361.087 20517360.297 20517359.853
+ 45.700 45.300
+ -22680354.293 7 -17672990.924 7 20147742.877 20147742.488 20147742.429
+ 44.500 46.700
+ -552659.602 4 -430643.320 2 24136419.765 24136421.314 24136418.895
+ 25.600 17.000
+ -8092574.737 5 -6305891.215 4 23150013.248 23150013.329 23150012.303
+ 34.900 25.300
+ -13771385.162 6 -10730940.490 5 22202843.885 22202841.868 22202843.048
+ 38.600 35.700
+ -20008547.858 7 -15591067.999 7 20912660.351 20912659.120 20912659.720
+ 47.500 44.800
+ -6257084.505 5 -4875644.782 4 23201736.900 23201737.243 23201735.661
+ 30.600 24.600
+ -5237162.458 3 -4080913.635 3 23927201.049 23927202.573 23927200.692
+ 22.600 21.600
+ -16457356.722 7 -12823896.680 6 21311380.642 21311380.587 21311379.661
+ 46.100 39.600
+ 06 1 1 19 51 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14872104.385 7 -11588644.961 7 20520747.684 20520747.034 20520746.508
+ 45.700 45.200
+ -22698372.260 7 -17687030.882 7 20144314.099 20144313.676 20144313.651
+ 44.500 46.600
+ -480817.128 4 -374662.237 2 24150091.261 24150092.380 24150090.269
+ 26.500 17.000
+ -8021136.582 5 -6250225.131 4 23163607.594 23163607.192 23163606.203
+ 34.400 24.200
+ -13856979.432 6 -10797637.282 6 22186555.985 22186553.755 22186555.252
+ 39.500 36.000
+ -19960671.299 7 -15553761.595 7 20921771.030 20921769.683 20921770.434
+ 47.700 44.700
+ -6341286.002 5 -4941256.301 4 23185713.791 23185714.454 23185712.586
+ 30.100 27.100
+ -5123773.812 3 -3992558.933 2 23948778.858 23948779.421 23948777.881
+ 19.900 17.800
+ -16394667.130 7 -12775047.646 6 21323310.068 21323310.023 21323309.137
+ 46.200 39.500
+ 06 1 1 19 52 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14853975.527 7 -11574518.577 7 20524197.486 20524196.842 20524196.291
+ 45.600 45.200
+ -22715927.995 7 -17700710.663 7 20140973.310 20140972.982 20140972.935
+ 44.500 46.600
+ -408616.665 4 -318402.204 3 24163830.348 24163832.234 24163829.581
+ 25.900 19.300
+ -7949244.580 5 -6194205.412 3 23177287.637 23177288.183 23177286.711
+ 33.900 23.800
+ -13942305.318 6 -10864124.955 6 22170318.741 22170316.863 22170318.203
+ 40.000 36.800
+ -19912462.615 7 -15516196.387 7 20930944.967 20930943.605 20930944.214
+ 47.700 44.700
+ -6425118.321 5 -5006580.137 4 23169761.280 23169762.098 23169760.016
+ 31.100 28.600
+ -5010252.207 3 -3904100.643 2 23970380.594 23970381.563 23970380.073
+ 22.600 12.600
+ -16331701.010 7 -12725983.132 6 21335292.046 21335292.131 21335291.177
+ 46.100 39.700
+ 06 1 1 19 52 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14835514.720 7 -11560133.529 7 20527710.420 20527709.744 20527709.251
+ 45.600 45.200
+ -22733021.718 7 -17714030.433 7 20137720.604 20137720.227 20137720.166
+ 44.500 46.700
+ -336060.962 4 -261865.353 3 24177637.292 24177639.139 24177636.642
+ 25.300 22.100
+ -7876901.373 5 -6137834.107 4 23191054.764 23191054.670 23191053.466
+ 33.800 25.300
+ -14027361.701 6 -10930402.619 6 22154132.925 22154131.286 22154132.211
+ 39.300 37.500
+ -19863922.102 7 -15478372.609 7 20940181.762 20940180.435 20940181.081
+ 47.700 44.400
+ -6508578.900 5 -5071614.273 4 23153878.901 23153880.194 23153877.688
+ 30.400 27.900
+ -4896600.272 4 -3815540.762 2 23992008.681 23992008.927 23992008.103
+ 24.200 17.000
+ -16268460.298 7 -12676704.658 6 21347326.451 21347326.469 21347325.529
+ 46.000 39.500
+ 06 1 1 19 53 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14816721.659 7 -11545489.584 7 20531286.647 20531285.953 20531285.490
+ 45.800 45.300
+ -22749654.168 7 -17726990.766 7 20134555.440 20134555.134 20134555.058
+ 44.500 46.800
+ -263152.830 4 -205053.902 3 24191511.472 24191513.152 24191510.842
+ 25.300 23.000
+ -7804109.232 5 -6081112.963 4 23204907.257 23204906.831 23204905.965
+ 34.900 25.600
+ -14112147.454 6 -10996469.392 6 22137998.596 22137996.926 22137997.930
+ 39.300 36.700
+ -19815050.210 7 -15440290.617 7 20949481.626 20949480.403 20949481.159
+ 47.700 44.400
+ -6591665.200 5 -5136356.771 4 23138067.949 23138069.158 23138066.997
+ 30.400 27.400
+ -4782820.413 3 -3726881.174 2 24013659.922 24013660.103 24013659.410
+ 23.800 12.600
+ -16204946.762 7 -12627213.593 6 21359412.585 21359412.735 21359411.676
+ 45.800 39.600
+ 06 1 1 19 53 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14797595.773 7 -11530586.296 7 20534926.147 20534925.514 20534925.011
+ 45.800 45.200
+ -22765825.637 7 -17739591.899 7 20131478.325 20131477.700 20131477.814
+ 44.500 46.700
+ -189895.949 3 -147970.711 3 24205451.783 24205453.742 24205450.847
+ 23.800 22.600
+ -7730870.637 5 -6024043.964 4 23218843.771 23218843.636 23218842.582
+ 34.400 24.900
+ -14196661.394 6 -11062324.385 6 22121916.539 22121914.370 22121915.669
+ 39.500 36.500
+ -19765847.078 7 -15401950.518 7 20958844.413 20958843.538 20958844.100
+ 47.800 44.400
+ -6674374.731 5 -5200805.672 4 23122328.773 23122329.640 23122327.719
+ 30.100 26.200
+ -4668914.880 3 -3638123.660 2 24035336.096 24035336.532 24035335.099
+ 22.100 13.900
+ -16141162.089 7 -12577511.248 6 21371550.445 21371550.491 21371549.561
+ 45.800 39.300
+ 06 1 1 19 54 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14778136.836 7 -11515423.489 7 20538628.936 20538628.502 20538627.809
+ 45.600 45.200
+ -22781536.654 7 -17751834.236 7 20128488.526 20128487.909 20128488.046
+ 44.300 46.600
+ -116292.858 4 -90617.737 3 24219458.161 24219459.875 24219457.198
+ 25.300 22.100
+ -7657187.735 5 -5966628.764 3 23232865.070 23232864.512 23232863.620
+ 33.200 23.400
+ -14280902.634 6 -11127966.871 6 22105885.932 22105883.887 22105884.992
+ 39.700 37.300
+ -19716313.037 7 -15363352.563 7 20968270.782 20968269.502 20968270.229
+ 47.700 44.200
+ -6756704.860 5 -5264958.965 4 23106662.285 23106662.605 23106661.317
+ 31.300 25.900
+ -4554886.153 3 -3549270.206 2 24057036.305 24057035.721 24057034.620
+ 22.600 16.100
+ -16077108.200 7 -12527599.130 6 21383739.356 21383739.574 21383738.446
+ 45.600 39.100
+ 06 1 1 19 54 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14758344.370 7 -11500000.787 7 20542395.536 20542394.846 20542394.346
+ 45.700 45.300
+ -22796787.693 7 -17763718.149 7 20125586.269 20125585.747 20125585.776
+ 44.300 46.600
+ -42346.865 4 -32997.521 3 24233528.915 24233531.368 24233528.469
+ 25.300 19.900
+ -7583063.133 5 -5908869.321 3 23246971.189 23246970.160 23246969.579
+ 33.600 23.000
+ -14364870.459 6 -11193396.310 6 22089907.024 22089905.376 22089906.306
+ 39.500 37.600
+ -19666448.171 7 -15324496.821 7 20977759.719 20977758.444 20977759.104
+ 47.700 44.000
+ -6838653.125 5 -5328814.705 4 23091068.108 23091069.078 23091067.021
+ 32.300 29.200
+ -4440736.661 3 -3460322.593 2 24078754.733 24078757.119 24078755.575
+ 19.300 15.100
+ -16012786.724 7 -12477478.505 6 21395979.414 21395979.567 21395978.471
+ 45.500 39.100
+ 06 1 1 19 55 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14738218.043 7 -11484317.931 7 20546225.377 20546224.751 20546224.186
+ 45.800 45.100
+ -22811579.003 7 -17775243.834 7 20122771.385 20122771.074 20122771.016
+ 44.300 46.700
+ 31938.661 4 24887.232 2 24247665.138 24247667.665 24247664.533
+ 24.600 17.800
+ -7508499.388 5 -5850767.722 4 23261159.531 23261159.823 23261158.490
+ 33.800 25.600
+ -14448563.328 6 -11258611.493 6 22073980.806 22073979.055 22073980.069
+ 39.300 37.200
+ -19616252.941 7 -15285383.656 7 20987311.303 20987310.391 20987310.880
+ 47.500 44.300
+ -6920216.946 5 -5392370.869 4 23075546.629 23075547.690 23075545.447
+ 32.300 28.100
+ -4326468.963 3 -3371282.968 3 24100502.133 24100502.543 24100501.129
+ 21.100 20.500
+ -15948199.757 7 -12427151.006 6 21408269.719 21408270.057 21408268.918
+ 45.500 39.100
+ 06 1 1 19 55 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14717757.396 7 -11468374.573 7 20550119.007 20550118.277 20550117.781
+ 45.800 45.100
+ -22825911.351 7 -17786411.884 7 20120044.186 20120043.738 20120043.660
+ 44.400 46.900
+ 106560.609 4 83034.141 2 24261865.807 24261867.936 24261864.736
+ 24.600 17.000
+ -7433499.057 5 -5792325.960 3 23275431.356 23275431.095 23275430.472
+ 32.300 22.600
+ -14531980.119 6 -11323611.555 6 22058107.337 22058105.269 22058106.652
+ 40.000 37.300
+ -19565727.497 7 -15246013.182 7 20996926.019 20996925.077 20996925.569
+ 47.300 44.200
+ -7001393.878 5 -5455625.540 4 23060099.509 23060100.044 23060098.545
+ 33.200 29.000
+ -4212085.528 2 -3282153.104 3 24122267.505 24122268.619 24122266.381
+ 13.900 19.300
+ -15883349.019 7 -12376617.969 6 21420610.532 21420610.709 21420609.656
+ 45.400 39.100
+ 06 1 1 19 56 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14696962.290 7 -11452170.592 7 20554076.359 20554075.452 20554075.110
+ 46.000 45.100
+ -22839785.178 7 -17797222.647 7 20117404.066 20117403.556 20117403.645
+ 44.400 46.700
+ 181515.906 4 141440.825 2 24276129.419 24276131.138 24276128.666
+ 24.200 16.100
+ -7358064.396 5 -5733545.717 4 23289786.399 23289786.578 23289785.126
+ 33.000 25.600
+ -14615120.416 6 -11388396.168 6 22042286.457 22042284.148 22042285.619
+ 40.400 37.100
+ -19514872.258 7 -15206385.726 7 21006603.503 21006602.389 21006602.960
+ 47.100 44.000
+ -7082181.342 5 -5518576.746 5 23044725.936 23044727.115 23044724.802
+ 32.700 30.400
+ -4097588.572 3 -3192934.837 2 24144054.785 24144056.479 24144054.838
+ 22.600 17.000
+ -15818236.505 7 -12325880.946 6 21433000.974 21433001.159 21433000.081
+ 45.300 38.900
+ 06 1 1 19 56 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14675832.105 7 -11435705.508 7 20558097.099 20558096.473 20558095.948
+ 45.900 45.000
+ -22853200.801 7 -17807676.364 7 20114851.177 20114850.629 20114850.766
+ 44.600 46.900
+ 256801.046 3 200104.548 2 24290455.424 24290457.604 24290454.885
+ 23.800 15.100
+ -7282197.956 5 -5674429.048 3 23304222.840 23304223.040 23304221.754
+ 32.600 22.600
+ -14697982.823 6 -11452964.247 6 22026517.913 22026515.763 22026517.214
+ 40.100 36.800
+ -19463687.604 7 -15166501.581 7 21016343.881 21016342.598 21016343.088
+ 46.800 44.000
+ -7162576.825 5 -5581222.523 4 23029427.296 23029427.571 23029426.243
+ 32.700 26.800
+ -3982980.696 3 -3103630.091 2 24165866.750 24165866.350 24165864.626
+ 21.100 16.100
+ -15752864.074 7 -12274941.398 6 21445440.924 21445441.171 21445440.088
+ 45.400 39.100
+ 06 1 1 19 57 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14654366.652 7 -11418979.179 7 20562181.611 20562181.238 20562180.533
+ 45.800 44.900
+ -22866158.901 7 -17817773.568 7 20112385.296 20112384.869 20112384.932
+ 44.600 46.900
+ 332412.988 3 259022.888 2 24304843.975 24304846.043 24304843.257
+ 23.400 12.600
+ -7205902.170 5 -5614977.809 4 23318741.804 23318741.835 23318740.667
+ 33.600 24.600
+ -14780566.552 6 -11517315.176 6 22010802.766 22010800.618 22010802.011
+ 40.700 37.300
+ -19412173.457 7 -15126360.690 7 21026146.395 21026145.461 21026145.844
+ 46.800 44.200
+ -7242577.781 5 -5643560.837 4 23014202.814 23014203.931 23014201.812
+ 30.600 26.200
+ -3868264.541 4 -3014240.928 2 24187696.229 24187695.740 24187694.767
+ 24.900 15.100
+ -15687233.244 7 -12223800.503 6 21457930.300 21457930.254 21457929.249
+ 45.400 38.800
+ 06 1 1 19 57 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14632565.541 7 -11401991.298 7 20566330.374 20566329.782 20566329.212
+ 45.900 44.900
+ -22878660.021 7 -17827514.685 7 20110006.502 20110005.983 20110006.070
+ 44.600 46.900
+ 408348.423 2 318193.302 2 24319293.681 24319296.146 24319292.773
+ 17.000 16.100
+ -7129179.506 5 -5555193.953 3 23333342.044 23333341.498 23333340.588
+ 33.000 23.400
+ -14862870.378 6 -11581447.993 6 21995141.029 21995138.799 21995140.177
+ 40.700 37.800
+ -19360330.478 7 -15085963.570 7 21036011.827 21036010.882 21036011.312
+ 47.000 44.100
+ -7322181.762 5 -5705589.858 4 22999054.406 22999055.881 22999053.502
+ 30.400 27.400
+ -3753441.685 3 -2924768.649 2 24209545.049 24209546.263 24209544.379
+ 22.600 17.800
+ -15621345.748 7 -12172459.605 6 21470468.030 21470468.262 21470467.214
+ 45.400 38.400
+ 06 1 1 19 58 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14610428.455 7 -11384741.618 7 20570543.012 20570542.315 20570541.802
+ 45.800 44.700
+ -22890704.630 7 -17836900.080 7 20107714.451 20107713.892 20107713.973
+ 44.600 46.800
+ 484604.546 2 377613.584 2 24333804.811 24333807.159 24333804.379
+ 16.100 13.900
+ -7052032.454 5 -5495079.413 3 23348022.676 23348022.198 23348021.459
+ 33.100 23.800
+ -14944893.493 6 -11645362.070 6 21979532.701 21979530.266 21979531.812
+ 40.700 37.500
+ -19308159.039 7 -15045310.508 7 21045939.848 21045938.891 21045939.157
+ 46.900 44.100
+ -7401386.320 5 -5767307.647 4 22983982.996 22983983.338 22983981.863
+ 32.600 27.600
+ -3638514.886 3 -2835215.406 3 24231415.423 24231415.904 24231414.751
+ 19.300 19.300
+ -15555203.731 7 -12120920.382 6 21483054.596 21483054.623 21483053.662
+ 45.400 38.700
+ 06 1 1 19 58 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14587954.998 7 -11367229.828 7 20574819.551 20574818.808 20574818.304
+ 45.800 44.700
+ -22902293.277 7 -17845930.178 7 20105509.083 20105508.542 20105508.666
+ 44.500 46.800
+ 561177.753 3 437280.955 2 24348376.393 24348378.128 24348375.847
+ 19.300 13.900
+ -6974463.407 5 -5434636.002 3 23362783.350 23362782.879 23362782.293
+ 33.400 23.400
+ -15026634.794 6 -11709056.558 6 21963977.490 21963975.372 21963976.790
+ 40.800 37.700
+ -19255659.259 7 -15004401.590 7 21055930.168 21055929.192 21055929.516
+ 46.900 44.000
+ -7480188.862 5 -5828712.164 4 22968987.510 22968988.019 22968986.215
+ 33.200 28.400
+ -3523486.933 2 -2745583.372 3 24253302.430 24253305.516 24253303.606
+ 16.100 19.300
+ -15488808.585 7 -12069183.911 6 21495689.238 21495689.276 21495688.354
+ 45.500 38.900
+ 06 1 1 19 59 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14565144.815 7 -11349455.659 7 20579159.991 20579159.411 20579158.867
+ 45.600 44.700
+ -22913426.536 7 -17854605.435 7 20103390.491 20103389.934 20103390.109
+ 44.400 46.800
+ 638065.208 3 497193.193 2 24363007.852 24363009.836 24363007.012
+ 23.000 13.900
+ -6896474.966 5 -5373865.831 3 23377623.831 23377624.088 23377622.516
+ 32.400 23.000
+ -15108093.377 6 -11772530.735 6 21948476.328 21948474.246 21948475.615
+ 40.500 38.000
+ -19202831.442 7 -14963237.065 7 21065982.871 21065981.921 21065982.446
+ 47.100 44.000
+ -7558586.884 5 -5889801.478 4 22954069.113 22954069.164 22954067.751
+ 33.000 29.200
+ -3408360.159 3 -2655874.348 3 24275213.193 24275213.611 24275212.331
+ 20.500 18.600
+ -15422162.196 7 -12017251.666 6 21508371.822 21508371.715 21508370.860
+ 45.700 38.700
+ 06 1 1 19 59 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14541997.743 7 -11331418.977 7 20583564.866 20583564.210 20583563.635
+ 45.700 44.700
+ -22924105.078 7 -17862926.362 7 20101358.480 20101357.945 20101358.030
+ 44.300 46.900
+ 715263.627 3 557347.732 3 24377698.559 24377700.327 24377697.599
+ 23.800 18.600
+ -6818070.196 5 -5312771.232 3 23392544.304 23392543.599 23392543.023
+ 32.400 22.600
+ -15189268.155 6 -11835783.773 6 21933029.532 21933027.189 21933028.595
+ 40.800 37.700
+ -19149675.940 7 -14921817.201 7 21076098.152 21076097.074 21076097.619
+ 47.300 43.800
+ -7636578.063 5 -5950573.735 5 22939227.585 22939228.274 22939226.431
+ 32.800 30.600
+ -3293136.819 3 -2566090.010 2 24297139.603 24297139.938 24297138.062
+ 23.800 13.900
+ -15355266.373 7 -11965125.056 6 21521101.579 21521101.624 21521100.644
+ 45.300 38.700
+ 06 1 1 20 0 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14518513.226 7 -11313119.352 7 20588033.633 20588033.211 20588032.504
+ 45.600 44.500
+ -22934329.386 7 -17870893.336 7 20099412.790 20099412.323 20099412.342
+ 44.400 47.000
+ 792769.455 4 617741.835 2 24392447.238 24392449.620 24392446.391
+ 25.600 17.800
+ -6739251.093 5 -5251353.777 4 23407542.787 23407542.699 23407541.742
+ 32.600 24.200
+ -15270158.067 6 -11898814.837 6 21917636.304 21917634.277 21917635.589
+ 41.000 38.400
+ -19096193.069 7 -14880142.244 7 21086275.789 21086274.478 21086275.113
+ 47.500 43.600
+ -7714159.824 5 -6011027.006 4 22924464.141 22924464.802 22924462.953
+ 33.000 29.900
+ -3177819.424 3 -2476232.349 1 24319082.889 24319083.899 24319081.984
+ 21.600 9.000
+ -15288123.029 7 -11912805.576 6 21533878.636 21533878.475 21533877.701
+ 45.400 38.400
+ 06 1 1 20 0 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14494691.049 7 -11294556.613 7 20592566.843 20592566.326 20592565.725
+ 45.500 44.500
+ -22944100.027 7 -17878506.809 7 20097553.556 20097552.973 20097553.148
+ 44.600 46.800
+ 870579.457 4 678372.953 2 24407253.951 24407256.286 24407253.199
+ 26.500 17.000
+ -6660020.318 5 -5189615.550 4 23422620.247 23422620.057 23422619.029
+ 32.800 25.300
+ -15350762.280 6 -11961623.273 6 21902297.821 21902295.809 21902297.155
+ 40.800 38.400
+ -19042383.341 7 -14838212.585 7 21096515.391 21096514.192 21096514.875
+ 47.500 43.700
+ -7791329.651 5 -6071159.298 4 22909779.336 22909779.578 22909778.259
+ 34.500 28.400
+ -3062410.325 3 -2386303.291 9 24341043.381 24341044.053 24341043.505
+ 19.300 -3.000
+ -15220734.041 7 -11860294.681 6 21546702.089 21546702.307 21546701.226
+ 45.000 38.600
+ 06 1 1 20 1 0.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14470530.881 7 -11275730.505 7 20597164.570 20597163.881 20597163.406
+ 45.700 44.400
+ -22953417.862 7 -17885767.443 7 20095780.466 20095779.782 20095779.999
+ 44.500 46.900
+ 948690.719 4 739238.834 3 24422118.133 24422120.556 24422117.373
+ 27.100 19.300
+ -6580380.095 5 -5127558.264 3 23437774.736 23437774.738 23437773.624
+ 31.100 22.100
+ -15431079.834 6 -12024208.342 6 21887014.288 21887011.742 21887013.469
+ 41.200 38.200
+ -18988247.043 7 -14796028.471 7 21106817.174 21106815.977 21106816.701
+ 47.600 43.800
+ -7868085.204 5 -6130968.767 4 22895173.057 22895173.225 22895172.073
+ 33.100 27.600
+ -2946911.948 2 -2296304.539 1 24363021.771 24363023.432 24363021.489
+ 17.800 6.500
+ -15153100.962 7 -11807593.588 6 21559572.273 21559572.346 21559571.376
+ 45.000 38.100
+ 06 1 1 20 1 30.0000000 0 9G 7G 4G 9G20G 2G17G 5G28G24
+ -14446032.437 7 -11256640.806 7 20601826.468 20601825.773 20601825.278
+ 45.900 44.300
+ -22962283.317 7 -17892675.578 7 20094093.424 20094092.755 20094092.964
+ 44.800 46.800
+ 1027099.763 4 800336.720 3 24437039.016 24437041.374 24437038.173
+ 26.500 23.000
+ -6500333.145 5 -5065184.028 3 23453007.406 23453007.589 23453006.265
+ 32.800 22.600
+ -15511109.799 6 -12086569.314 6 21871784.803 21871782.583 21871784.078
+ 41.000 38.300
+ -18933784.050 7 -14753589.779 7 21117181.314 21117180.004 21117180.638
+ 47.600 43.500
+ -7944424.012 5 -6190453.514 4 22880646.076 22880646.416 22880645.007
+ 32.300 27.900
+ -2831326.652 2 -2206238.181 1 24385018.256 24385019.484 24385017.753
+ 17.800 11.000
+ -15085225.711 7 -11754703.789 6 21572488.297 21572488.646 21572487.462
+ 44.700 38.300
+ 06 1 1 20 2 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14421195.364 7 -11237287.242 7 20606552.665 20606552.099 20606551.527
+ 45.600 44.300
+ -22970697.000 7 -17899231.676 7 20092492.240 20092491.726 20092491.802
+ 44.600 47.000
+ 1105803.729 4 861664.435 3 24452016.167 24452018.350 24452015.286
+ 25.600 22.600
+ -6419882.348 5 -5002495.153 3 23468317.477 23468317.089 23468316.179
+ 32.300 22.100
+ -15590851.184 6 -12148705.414 6 21856610.579 21856608.071 21856609.808
+ 41.300 38.000
+ -18878995.370 7 -14710897.311 7 21127607.022 21127606.059 21127606.594
+ 47.600 43.800
+ -8020343.603 5 -6249611.569 4 22866199.218 22866198.733 22866198.206
+ 33.400 26.500
+ -15017109.987 7 -11701626.614 6 21585450.521 21585450.681 21585449.560
+ 44.600 38.300
+ 06 1 1 20 2 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14396019.427 7 -11217669.625 7 20611343.686 20611342.875 20611342.477
+ 45.500 44.100
+ -22978659.513 7 -17905436.217 7 20090977.014 20090976.452 20090976.573
+ 44.700 47.000
+ 1184799.488 4 923219.497 3 24467048.365 24467050.902 24467047.734
+ 24.600 23.000
+ -6339030.013 5 -4939493.355 3 23483703.018 23483702.375 23483701.446
+ 32.400 21.600
+ -15670303.103 7 -12210615.961 6 21841491.441 21841489.208 21841490.773
+ 42.000 38.800
+ -18823881.268 7 -14667951.268 7 21138094.904 21138093.920 21138094.400
+ 47.500 43.600
+ -8095841.550 5 -6308441.082 4 22851831.984 22851832.453 22851830.943
+ 33.500 28.400
+ -14948755.294 7 -11648363.221 6 21598458.120 21598458.074 21598457.095
+ 44.600 37.900
+ 06 1 1 20 3 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14370504.305 7 -11197787.714 7 20616198.914 20616198.220 20616197.786
+ 45.700 44.100
+ -22986171.563 7 -17911289.749 7 20089547.534 20089546.873 20089547.142
+ 45.100 47.000
+ 1264083.200 3 984998.948 3 24482135.264 24482138.098 24482134.644
+ 22.600 21.600
+ -6257778.728 4 -4876180.677 3 23499163.470 23499163.769 23499162.460
+ 29.900 22.100
+ -15749464.345 6 -12272300.005 6 21826427.334 21826425.246 21826426.592
+ 41.300 38.900
+ -18768441.790 7 -14624751.680 7 21148644.811 21148643.590 21148644.203
+ 47.300 43.600
+ -8170915.453 5 -6366940.182 4 22837545.889 22837546.262 22837544.685
+ 32.800 28.100
+ -14880163.759 7 -11594915.285 6 21611510.430 21611510.666 21611509.596
+ 44.700 38.100
+ 06 1 1 20 3 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14344649.722 7 -11177641.284 7 20621118.859 20621118.250 20621117.700
+ 45.600 44.100
+ -22993233.786 7 -17916792.767 7 20088203.767 20088202.924 20088203.347
+ 45.300 47.000
+ 1343652.118 3 1047000.639 3 24497277.170 24497279.613 24497276.249
+ 21.600 22.600
+ -6176131.220 5 -4812559.279 3 23514700.674 23514700.994 23514699.463
+ 31.000 21.100
+ -15828333.883 6 -12333756.746 6 21811418.749 21811416.598 21811417.857
+ 41.300 38.600
+ -18712677.543 7 -14581299.028 7 21159256.355 21159255.158 21159255.721
+ 47.100 43.400
+ -8245562.755 5 -6425106.850 4 22823341.141 22823341.717 22823339.931
+ 33.200 29.200
+ -14811337.231 7 -11541284.233 6 21624607.765 21624607.883 21624606.876
+ 44.700 38.100
+ 06 1 1 20 4 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14318455.288 7 -11157230.036 7 20626103.613 20626102.916 20626102.353
+ 45.600 44.000
+ -22999846.901 7 -17921945.830 7 20086945.385 20086944.579 20086944.978
+ 45.200 47.100
+ 1423502.434 3 1109221.591 4 24512472.076 24512474.424 24512471.390
+ 22.600 24.200
+ -6094089.938 5 -4748631.040 3 23530313.211 23530313.108 23530311.972
+ 32.800 23.000
+ -15906911.269 6 -12394985.826 6 21796465.986 21796463.942 21796465.167
+ 41.000 38.700
+ -18656588.693 7 -14537593.447 7 21169929.388 21169928.634 21169928.987
+ 46.900 43.500
+ -8319781.224 5 -6482939.345 5 22809217.968 22809218.141 22809216.880
+ 33.200 30.100
+ -14742277.390 7 -11487471.380 6 21637749.426 21637749.653 21637748.539
+ 44.700 37.800
+ 06 1 1 20 4 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14291920.820 7 -11136553.825 7 20631152.593 20631152.170 20631151.570
+ 45.700 44.000
+ -23006011.659 7 -17926749.525 7 20085772.262 20085771.427 20085771.777
+ 45.000 47.100
+ 1503631.416 3 1171659.678 3 24527720.323 24527722.838 24527719.699
+ 20.500 22.100
+ -6011657.460 5 -4684397.979 3 23545999.598 23545999.211 23545998.525
+ 32.700 22.100
+ -15985195.389 6 -12455986.403 6 21781569.249 21781566.913 21781568.480
+ 41.900 38.500
+ -18600175.959 7 -14493635.481 7 21180664.716 21180663.639 21180664.047
+ 46.900 43.400
+ -8393568.365 5 -6540435.739 5 22795176.108 22795177.100 22795175.128
+ 34.100 30.800
+ -14672985.846 7 -11433477.984 6 21650935.258 21650935.292 21650934.217
+ 44.600 37.500
+ 06 1 1 20 5 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14265046.001 7 -11115612.409 7 20636266.950 20636266.253 20636265.749
+ 45.500 43.900
+ -23011728.671 7 -17931204.326 7 20084684.273 20084683.439 20084683.834
+ 45.100 47.000
+ 1584035.430 3 1234312.093 3 24543021.070 24543022.596 24543019.872
+ 23.800 22.100
+ -5928836.129 5 -4619861.884 3 23561759.603 23561760.361 23561758.419
+ 30.400 23.400
+ -16063185.338 6 -12516757.747 6 21766727.821 21766725.804 21766727.117
+ 41.400 38.900
+ -18543439.407 7 -14449425.193 7 21191461.196 21191460.166 21191460.704
+ 46.900 43.100
+ -8466921.831 5 -6597594.231 5 22781217.780 22781218.260 22781216.737
+ 34.400 30.600
+ -14603464.394 7 -11379305.436 6 21664164.598 21664164.738 21664163.724
+ 44.700 37.600
+ 06 1 1 20 5 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14237830.581 7 -11094405.585 7 20641446.004 20641445.267 20641444.756
+ 45.500 44.000
+ -23016998.473 7 -17935310.652 7 20083681.344 20083680.614 20083680.920
+ 44.900 47.000
+ 1664711.419 3 1297176.437 3 24558372.698 24558375.208 24558372.070
+ 21.600 22.600
+ -5845629.093 5 -4555025.282 3 23577593.676 23577593.386 23577592.742
+ 30.800 21.600
+ -16140880.250 6 -12577299.201 6 21751943.456 21751940.704 21751942.628
+ 41.900 38.400
+ -18486379.538 7 -14404962.969 7 21202319.398 21202318.318 21202318.809
+ 46.800 43.300
+ -8539839.288 5 -6654412.974 4 22767341.760 22767342.273 22767340.843
+ 34.100 29.900
+ -14533714.893 7 -11324955.186 6 21677437.835 21677437.619 21677436.730
+ 44.600 37.200
+ 06 1 1 20 6 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14210274.321 7 -11072933.173 7 20646689.469 20646689.103 20646688.409
+ 45.500 44.000
+ -23021822.226 7 -17939069.410 7 20082763.451 20082762.763 20082763.004
+ 45.000 47.100
+ 1745656.383 3 1360250.358 3 24573776.100 24573778.582 24573775.205
+ 21.600 23.000
+ -5762038.735 5 -4489889.955 3 23593500.720 23593500.236 23593499.750
+ 32.800 21.600
+ -16218279.024 6 -12637609.899 6 21737214.530 21737212.527 21737213.932
+ 41.900 39.000
+ -18428996.780 7 -14360249.140 7 21213238.981 21213238.033 21213238.369
+ 46.900 43.200
+ -8612318.195 5 -6710889.993 4 22753549.203 22753550.084 22753548.185
+ 34.300 29.700
+ -14463738.906 7 -11270428.450 6 21690753.762 21690753.629 21690752.730
+ 44.500 37.500
+ 06 1 1 20 6 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14182376.996 7 -11051195.001 7 20651998.271 20651997.762 20651997.123
+ 45.500 44.000
+ -23026200.284 7 -17942480.870 7 20081930.305 20081929.620 20081929.892
+ 45.100 47.100
+ 1826867.104 3 1423531.380 3 24589229.705 24589232.743 24589228.663
+ 21.100 22.100
+ -5678067.637 5 -4424457.954 3 23609479.865 23609479.564 23609478.428
+ 31.500 22.100
+ -16295380.762 6 -12697689.124 6 21722542.456 21722540.654 21722541.582
+ 41.500 39.700
+ -18371291.624 7 -14315284.091 7 21224219.835 21224218.893 21224219.330
+ 46.700 43.100
+ -8684356.312 5 -6767023.534 5 22739840.852 22739841.699 22739839.831
+ 34.300 30.800
+ -14393538.301 7 -11215726.696 6 21704112.305 21704112.408 21704111.384
+ 44.200 37.300
+ 06 1 1 20 7 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14154138.196 7 -11029190.740 7 20657372.117 20657371.499 20657370.905
+ 45.600 44.000
+ -23030133.545 7 -17945545.734 7 20081181.959 20081181.104 20081181.508
+ 45.200 47.100
+ 1908339.743 3 1487016.483 3 24604733.229 24604736.230 24604732.552
+ 21.600 21.100
+ -5593718.417 4 -4358731.325 3 23625530.116 23625530.861 23625529.322
+ 29.900 21.100
+ -16372184.828 7 -12757536.405 6 21707927.516 21707924.884 21707926.751
+ 42.100 39.300
+ -18313264.239 7 -14270067.954 7 21235262.430 21235261.140 21235261.675
+ 46.600 43.100
+ -8755951.321 5 -6822811.808 5 22726216.890 22726217.566 22726215.894
+ 34.300 31.000
+ -14323114.569 7 -11160851.073 6 21717513.517 21717513.533 21717512.553
+ 44.100 37.300
+ 06 1 1 20 7 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14125557.741 7 -11006920.255 7 20662810.733 20662810.148 20662809.588
+ 45.700 43.800
+ -23033622.598 7 -17948264.471 7 20080518.078 20080517.203 20080517.616
+ 45.300 47.200
+ 1990071.431 4 1550703.454 3 24620287.065 24620289.500 24620286.201
+ 25.300 19.900
+ -5508993.767 5 -4292712.161 3 23641653.590 23641653.072 23641652.108
+ 32.000 21.600
+ -16448690.055 7 -12817150.838 6 21693368.817 21693366.329 21693368.121
+ 42.100 39.300
+ -18254915.247 7 -14224601.208 7 21246365.548 21246364.420 21246365.095
+ 46.600 42.800
+ -8827100.765 5 -6878252.875 5 22712677.882 22712678.205 22712676.836
+ 34.700 30.400
+ -14252469.648 7 -11105803.092 6 21730956.422 21730957.017 21730955.678
+ 44.100 37.200
+ 06 1 1 20 8 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14096635.567 7 -10984383.501 7 20668314.407 20668313.813 20668313.275
+ 45.700 44.000
+ -23036668.385 7 -17950637.802 7 20079938.367 20079937.631 20079937.879
+ 45.200 47.200
+ 2072058.397 4 1614589.352 3 24635888.647 24635890.831 24635888.115
+ 26.500 18.600
+ -5423896.199 5 -4226402.368 3 23657847.548 23657846.775 23657845.982
+ 30.600 20.500
+ -16524895.455 6 -12876531.617 6 21678867.151 21678865.130 21678866.335
+ 41.900 39.400
+ -18196244.923 7 -14178884.083 7 21257530.085 21257529.021 21257529.584
+ 46.500 42.700
+ -8897802.412 5 -6933345.019 5 22699223.059 22699224.263 22699222.261
+ 34.700 30.400
+ -14181605.077 7 -11050583.959 6 21744441.911 21744441.984 21744440.896
+ 44.100 36.900
+ 06 1 1 20 8 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14067371.273 7 -10961580.155 7 20673883.271 20673882.634 20673882.120
+ 45.600 43.900
+ -23039271.483 7 -17952666.177 7 20079442.887 20079442.213 20079442.499
+ 45.100 47.300
+ 2154298.046 4 1678672.157 2 24651538.582 24651540.205 24651537.576
+ 24.900 13.900
+ -5338428.349 5 -4159804.095 3 23674111.014 23674110.642 23674109.919
+ 31.500 21.100
+ -16600800.283 7 -12935678.190 6 21664423.167 21664420.965 21664422.375
+ 42.200 39.500
+ -18137253.872 7 -14132917.034 7 21268756.013 21268754.683 21268755.288
+ 46.700 42.700
+ -8968053.875 5 -6988086.389 4 22685854.995 22685855.523 22685854.004
+ 34.800 28.600
+ -14110522.572 7 -10995195.008 6 21757968.415 21757968.590 21757967.435
+ 44.000 37.200
+ 06 1 1 20 9 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14037764.736 7 -10938510.132 7 20679517.151 20679516.572 20679516.034
+ 45.700 43.800
+ -23041432.735 7 -17954350.262 7 20079031.669 20079030.931 20079031.244
+ 45.300 47.300
+ 2236786.983 3 1742949.206 2 24667235.058 24667237.524 24667234.365
+ 22.100 16.100
+ -5252593.095 5 -4092919.498 3 23690444.883 23690444.695 23690443.762
+ 30.400 19.900
+ -16676403.714 7 -12994589.914 6 21650036.425 21650033.952 21650035.688
+ 42.700 39.700
+ -18077942.267 7 -14086700.205 7 21280042.271 21280041.409 21280041.939
+ 46.800 42.700
+ -9037852.773 5 -7042475.092 4 22672572.678 22672573.262 22672571.672
+ 34.900 29.000
+ -14039224.089 7 -10939637.762 6 21771536.020 21771536.081 21771535.085
+ 44.000 36.700
+ 06 1 1 20 9 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -14007815.595 7 -10915173.141 7 20685216.488 20685215.639 20685215.190
+ 45.500 43.700
+ -23043152.858 7 -17955690.603 7 20078704.269 20078703.499 20078703.909
+ 45.300 47.200
+ 2319521.458 3 1807417.571 2 24682978.996 24682981.725 24682978.175
+ 22.100 17.000
+ -5166392.870 4 -4025750.515 3 23706848.895 23706848.188 23706847.130
+ 29.700 21.600
+ -16751704.911 7 -13053266.125 6 21635706.684 21635704.641 21635706.118
+ 42.700 39.800
+ -18018310.783 7 -14040234.119 7 21291389.974 21291389.033 21291389.391
+ 46.800 42.800
+ -9107196.859 5 -7096509.406 4 22659377.238 22659377.096 22659376.180
+ 35.500 29.200
+ -13967711.041 7 -10883913.319 6 21785144.601 21785144.635 21785143.532
+ 43.800 36.700
+ 06 1 1 20 10 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -13977523.733 7 -10891569.093 7 20690980.501 20690979.934 20690979.423
+ 45.600 43.700
+ -23044432.641 7 -17956687.825 7 20078460.718 20078459.964 20078460.320
+ 45.300 47.100
+ 2402498.468 3 1872074.937 2 24698769.353 24698771.723 24698768.728
+ 23.800 16.100
+ -5079830.266 5 -3958299.178 3 23723320.532 23723320.680 23723319.349
+ 30.100 21.100
+ -16826702.657 7 -13111705.875 6 21621435.173 21621432.956 21621434.351
+ 42.000 39.800
+ -17958359.568 7 -13993518.891 7 21302798.323 21302797.354 21302797.793
+ 46.700 42.800
+ -9176083.901 5 -7150187.565 5 22646268.359 22646268.664 22646267.245
+ 35.500 30.600
+ -13895985.160 7 -10828023.037 6 21798793.553 21798793.731 21798792.548
+ 43.800 36.500
+ 06 1 1 20 10 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -13946888.839 7 -10867697.752 7 20696810.305 20696809.605 20696809.135
+ 45.800 43.500
+ -23045272.927 7 -17957342.577 7 20078300.800 20078300.125 20078300.366
+ 45.200 47.300
+ 2485714.581 3 1936918.592 2 24714604.841 24714607.455 24714604.151
+ 23.800 15.100
+ -4992908.189 5 -3890567.713 2 23739861.531 23739861.065 23739860.257
+ 30.400 17.800
+ -16901396.597 7 -13169908.901 6 21607221.801 21607218.955 21607220.943
+ 42.900 39.700
+ -17898089.427 7 -13946555.150 7 21314267.534 21314266.356 21314266.899
+ 46.700 42.600
+ -9244511.588 5 -7203507.784 5 22633246.824 22633247.085 22633245.824
+ 34.800 30.200
+ -13824048.330 7 -10771968.371 6 21812482.447 21812482.832 21812481.620
+ 44.000 36.600
+ 06 1 1 20 11 0.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -13915910.754 7 -10843558.981 7 20702705.385 20702704.632 20702704.129
+ 45.600 43.600
+ -23045674.630 7 -17957655.577 7 20078224.316 20078223.692 20078223.921
+ 45.300 47.400
+ 2569167.380 3 2001946.719 2 24730485.113 24730487.479 24730484.668
+ 23.400 15.100
+ -4905629.193 5 -3822558.136 3 23756471.002 23756469.383 23756469.424
+ 31.300 19.300
+ -16975785.669 7 -13227874.365 6 21593065.889 21593063.193 21593065.137
+ 43.100 39.700
+ -17837500.672 7 -13899343.138 7 21325797.218 21325795.991 21325796.608
+ 46.600 42.600
+ -9312477.581 5 -7256468.225 5 22620313.278 22620313.538 22620312.096
+ 34.700 30.200
+ -13751902.238 7 -10715750.652 6 21826211.696 21826211.888 21826210.696
+ 43.600 36.500
+ 06 1 1 20 11 30.0000000 0 8G 7G 4G 9G20G 2G17G 5G24
+ -13884589.302 7 -10819152.659 7 20708665.431 20708664.924 20708664.282
+ 45.700 43.600
+ -23045638.661 7 -17957627.531 7 20078230.990 20078230.495 20078230.670
+ 45.400 47.300
+ 2652852.718 4 2067156.011 2 24746410.459 24746412.619 24746409.735
+ 25.300 12.600
+ -4817995.855 4 -3754272.434 3 23773145.843 23773145.506 23773144.617
+ 26.800 19.900
+ -17049869.019 7 -13285601.605 6 21578968.001 21578965.657 21578967.219
+ 42.700 40.200
+ -17776593.666 7 -13851883.139 7 21337387.430 21337386.142 21337386.775
+ 46.700 42.400
+ -9379979.632 5 -7309067.159 5 22607468.260 22607468.579 22607467.071
+ 34.700 31.300
+ -13679548.496 7 -10659371.122 6 21839980.030 21839980.229 21839979.304
+ 43.800 36.400
+ 06 1 1 20 12 0.0000000 0 7G 7G 4G20G 2G17G 5G24
+ -13852924.381 7 -10794478.696 7 20714691.312 20714690.579 20714690.081
+ 45.700 43.400
+ -23045165.563 7 -17957258.871 7 20078321.403 20078320.538 20078320.940
+ 45.500 47.300
+ -4730010.804 5 -3685712.695 3 23789890.053 23789889.381 23789888.508
+ 32.000 22.100
+ -17123645.825 7 -13343089.972 6 21564928.664 21564926.384 21564927.890
+ 42.600 40.100
+ -17715368.882 7 -13804175.520 7 21349037.876 21349036.802 21349037.492
+ 46.600 42.300
+ -9447015.503 5 -7361302.853 5 22594711.418 22594711.609 22594710.351
+ 34.800 31.100
+ -13606988.770 7 -10602831.087 6 21853787.646 21853788.032 21853786.884
+ 43.500 36.700
+ 06 1 1 20 12 30.0000000 0 7G 7G 4G20G 2G17G 5G24
+ -13820915.693 7 -10769536.859 7 20720782.223 20720781.577 20720781.113
+ 45.700 43.200
+ -23044256.163 7 -17956550.237 7 20078494.667 20078493.627 20078494.171
+ 45.500 47.400
+ -4641676.534 5 -3616880.851 3 23806698.818 23806698.741 23806697.501
+ 30.200 19.300
+ -17197115.063 7 -13400338.668 6 21550947.868 21550945.776 21550947.052
+ 42.400 40.500
+ -17653826.869 7 -13756220.709 7 21360749.068 21360747.945 21360748.492
+ 46.400 42.400
+ -9513582.955 5 -7413173.525 5 22582044.315 22582044.584 22582043.200
+ 35.500 32.400
+ -13534224.734 7 -10546131.855 6 21867634.262 21867634.559 21867633.452
+ 43.400 36.800
+ 06 1 1 20 13 0.0000000 0 7G 7G 4G20G 2G17G 5G24
+ -13788563.076 7 -10744327.028 7 20726938.874 20726937.994 20726937.656
+ 45.700 43.200
+ -23042911.435 7 -17955502.381 7 20078750.059 20078749.494 20078749.748
+ 45.400 47.400
+ -4552996.048 4 -3547779.184 3 23823573.719 23823573.567 23823572.452
+ 29.700 19.300
+ -17270276.097 7 -13457347.207 6 21537025.819 21537023.191 21537024.969
+ 42.600 40.000
+ -17591968.206 7 -13708019.154 7 21372520.554 21372519.344 21372519.721
+ 46.200 42.400
+ -9579679.773 6 -7464677.470 5 22569466.109 22569466.788 22569465.195
+ 36.200 32.600
+ -13461258.129 7 -10489274.773 6 21881519.134 21881519.672 21881518.408
+ 43.400 36.500
+ 06 1 1 20 13 30.0000000 0 7G 7G 4G20G 2G17G 5G24
+ -13755866.257 7 -10718848.983 7 20733160.806 20733159.934 20733159.639
+ 45.900 43.100
+ -23041132.184 7 -17954115.934 7 20079088.743 20079087.972 20079088.265
+ 45.400 47.400
+ -4463972.053 4 -3478409.878 3 23840514.133 23840514.480 23840512.936
+ 28.400 19.300
+ -17343127.914 7 -13514114.804 6 21523162.521 21523160.026 21523161.792
+ 42.700 40.300
+ -17529793.264 7 -13659571.159 7 21384351.299 21384350.783 21384351.154
+ 46.100 42.200
+ -9645303.681 6 -7515812.918 5 22556978.571 22556978.917 22556977.443
+ 37.200 32.000
+ -13388090.520 7 -10432261.062 6 21895442.598 21895443.280 21895441.770
+ 43.400 36.500
+ 06 1 1 20 14 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13722825.168 7 -10693102.681 7 20739448.113 20739447.398 20739447.036
+ 45.700 43.100
+ -23038919.317 7 -17952391.607 7 20079509.697 20079509.017 20079509.301
+ 45.400 47.200
+ -121872.089 4 -94965.207 2 24667814.227 24667811.111 24667813.051
+ 26.500 17.000
+ -4374607.066 4 -3408774.835 2 23857520.463 23857520.104 23857519.317
+ 29.000 17.800
+ -17415669.800 7 -13570640.894 6 21509357.964 21509355.796 21509357.157
+ 42.600 40.300
+ -17467302.409 7 -13610876.993 7 21396243.601 21396242.369 21396242.894
+ 45.900 42.000
+ -9710452.528 6 -7566578.192 5 22544580.990 22544581.379 22544579.859
+ 36.500 32.300
+ -13314723.637 7 -10375092.074 6 21909404.223 21909404.300 21909403.262
+ 43.500 36.100
+ 06 1 1 20 14 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13689439.631 7 -10667087.975 7 20745801.590 20745800.524 20745800.241
+ 45.800 43.200
+ -23036273.699 7 -17950330.071 7 20080013.294 20080012.454 20080012.805
+ 45.300 47.300
+ -178405.971 4 -139017.576 2 24657056.028 24657053.506 24657055.005
+ 27.600 16.100
+ -4284903.826 4 -3338876.246 3 23874590.851 23874590.528 23874589.479
+ 29.900 18.600
+ -17487900.843 7 -13626924.758 6 21495612.849 21495610.576 21495612.113
+ 42.700 40.700
+ -17404496.214 7 -13561937.110 6 21408194.841 21408193.988 21408194.446
+ 45.900 41.900
+ -9775124.144 5 -7616971.602 5 22532274.286 22532274.487 22532273.192
+ 35.900 31.600
+ -13241158.956 7 -10317768.955 6 21923402.859 21923403.237 21923401.949
+ 43.500 36.100
+ 06 1 1 20 15 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13655709.605 7 -10640804.836 7 20752219.903 20752219.195 20752218.700
+ 45.600 43.200
+ -23033196.160 7 -17947931.977 7 20080598.651 20080598.155 20080598.303
+ 45.300 47.300
+ -234557.388 4 -182771.916 2 24646369.754 24646367.837 24646369.064
+ 25.600 16.100
+ -4194865.181 4 -3268716.271 3 23891724.509 23891724.027 23891723.134
+ 28.600 19.300
+ -17559820.396 7 -13682965.916 6 21481927.236 21481924.469 21481926.515
+ 43.200 40.600
+ -17341375.245 7 -13512751.957 6 21420206.790 21420205.420 21420205.937
+ 45.600 41.700
+ -9839316.350 5 -7666991.451 5 22520058.828 22520059.429 22520057.728
+ 35.900 32.000
+ -13167398.153 7 -10260293.017 5 21937439.044 21937439.369 21937438.214
+ 43.600 35.900
+ 06 1 1 20 15 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13621634.847 7 -10614253.081 7 20758704.082 20758703.423 20758702.965
+ 45.700 43.100
+ -23029687.683 7 -17945198.084 7 20081266.457 20081265.794 20081265.999
+ 45.500 47.300
+ -290323.680 4 -226226.149 3 24635758.716 24635756.094 24635757.963
+ 26.200 18.600
+ -4104493.634 4 -3198296.917 3 23908921.135 23908921.722 23908920.138
+ 28.400 22.100
+ -17631427.451 7 -13738763.568 6 21468300.934 21468298.186 21468300.099
+ 43.300 40.600
+ -17277939.870 7 -13463321.804 6 21432277.524 21432276.973 21432277.215
+ 45.500 41.900
+ -9903026.891 6 -7716635.979 5 22507935.192 22507935.427 22507934.154
+ 36.300 32.700
+ -13093442.938 7 -10202665.587 5 21951512.588 21951512.456 21951511.523
+ 43.100 35.700
+ 06 1 1 20 16 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13587215.223 7 -10587432.591 7 20765254.148 20765253.320 20765252.982
+ 45.700 43.000
+ -23025749.205 7 -17942129.128 7 20082016.005 20082015.178 20082015.608
+ 45.500 47.400
+ -345702.282 4 -269378.295 3 24625220.883 24625217.791 24625219.397
+ 24.600 18.600
+ -4013791.804 4 -3127620.232 3 23926180.655 23926181.548 23926179.711
+ 27.600 19.900
+ -17702721.389 7 -13794317.234 6 21454733.890 21454731.411 21454733.132
+ 43.200 40.700
+ -17214190.479 7 -13413646.974 6 21444409.326 21444407.990 21444408.471
+ 45.500 41.900
+ -9966253.654 6 -7765903.535 5 22495903.688 22495903.616 22495902.557
+ 36.600 32.000
+ -13019294.993 7 -10144887.976 5 21965622.405 21965622.423 21965621.528
+ 43.100 35.700
+ 06 1 1 20 16 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13552450.502 7 -10560343.196 7 20771869.318 20771868.755 20771868.260
+ 45.900 43.100
+ -23021381.400 7 -17938725.634 7 20082847.316 20082846.332 20082846.853
+ 45.700 47.400
+ -400690.877 4 -312226.502 2 24614756.215 24614753.719 24614755.127
+ 26.200 17.800
+ -3922762.553 4 -3056688.355 3 23943502.806 23943503.191 23943501.806
+ 27.900 18.600
+ -17773701.263 7 -13849626.171 6 21441226.697 21441224.025 21441226.015
+ 43.200 40.300
+ -17150128.162 7 -13363728.288 6 21456599.657 21456598.523 21456599.105
+ 45.600 41.500
+ -10028994.502 5 -7814792.453 5 22483964.197 22483964.559 22483963.140
+ 35.900 32.600
+ -12944955.746 7 -10086961.300 5 21979768.555 21979768.763 21979767.604
+ 42.900 35.600
+ 06 1 1 20 17 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13517340.728 7 -10532984.930 7 20778550.714 20778549.914 20778549.417
+ 45.700 42.900
+ -23016585.300 7 -17934988.403 7 20083759.891 20083759.038 20083759.459
+ 46.000 47.300
+ -455286.354 3 -354768.379 2 24604366.289 24604364.467 24604365.347
+ 22.600 17.000
+ -3831408.338 4 -2985503.275 2 23960888.322 23960887.637 23960886.917
+ 27.900 17.800
+ -17844366.279 7 -13904689.769 6 21427779.610 21427777.110 21427778.972
+ 43.600 40.600
+ -17085752.969 7 -13313565.821 6 21468849.966 21468848.788 21468849.310
+ 45.700 41.500
+ -10091247.368 5 -7863301.128 5 22472117.599 22472117.952 22472116.486
+ 35.700 31.800
+ -12870426.833 7 -10028886.838 5 21993950.890 21993951.294 21993950.033
+ 42.800 35.600
+ 06 1 1 20 17 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13481885.604 7 -10505357.558 7 20785297.497 20785296.752 20785296.415
+ 46.000 42.700
+ -23011361.903 7 -17930918.215 7 20084753.842 20084753.001 20084753.483
+ 46.000 47.400
+ -509486.412 4 -397002.141 2 24594053.433 24594050.450 24594052.297
+ 24.900 17.000
+ -3739731.848 4 -2914067.075 3 23978332.497 23978333.601 23978331.529
+ 27.600 18.600
+ -17914715.809 7 -13959507.536 6 21414392.707 21414390.054 21414391.784
+ 43.300 40.800
+ -17021065.462 7 -13263159.975 6 21481159.468 21481158.417 21481159.051
+ 45.900 41.200
+ -10153010.003 6 -7911427.803 5 22460364.640 22460365.094 22460363.610
+ 36.500 31.600
+ -12795710.114 7 -9970666.030 5 22008169.061 22008169.184 22008168.090
+ 42.600 35.300
+ 06 1 1 20 18 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13446085.111 7 -10477461.071 7 20792110.157 20792109.333 20792109.018
+ 45.900 42.600
+ -23005711.953 7 -17926515.650 7 20085829.044 20085828.126 20085828.579
+ 45.900 47.400
+ -563288.547 4 -438925.850 3 24583815.864 24583812.549 24583814.057
+ 24.900 21.100
+ -3647736.085 4 -2842382.107 3 23995839.570 23995839.403 23995838.375
+ 28.400 18.600
+ -17984748.941 7 -14014078.748 6 21401065.607 21401063.233 21401064.858
+ 43.400 41.200
+ -16956066.245 7 -13212511.250 6 21493528.666 21493527.313 21493527.909
+ 45.400 41.000
+ -10214280.380 6 -7959170.911 5 22448705.587 22448705.412 22448704.391
+ 37.300 31.800
+ -12720807.080 7 -9912300.044 5 22022422.734 22022422.793 22022421.796
+ 42.300 35.400
+ 06 1 1 20 18 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13409939.158 7 -10449295.387 7 20798988.541 20798987.663 20798987.325
+ 45.800 42.500
+ -22999636.623 7 -17921781.618 7 20086985.101 20086984.254 20086984.706
+ 45.900 47.400
+ -616690.236 4 -480537.456 3 24573652.891 24573651.168 24573651.300
+ 26.500 22.100
+ -3555423.301 4 -2770450.085 3 24013406.391 24013406.022 24013404.953
+ 28.400 21.100
+ -18054464.905 7 -14068402.820 6 21387799.279 21387796.459 21387798.446
+ 43.600 41.100
+ -16890755.803 7 -13161620.000 6 21505956.604 21505955.510 21505956.183
+ 45.800 41.000
+ -10275056.348 6 -8006528.765 5 22437140.386 22437140.147 22437139.138
+ 38.000 32.300
+ -12645719.342 7 -9853790.137 5 22036711.471 22036711.837 22036710.506
+ 42.200 35.700
+ 06 1 1 20 19 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13373447.633 7 -10420860.433 7 20805932.639 20805931.893 20805931.478
+ 45.800 42.600
+ -22993136.698 7 -17916716.738 7 20088222.037 20088221.195 20088221.553
+ 45.700 47.400
+ -669688.943 4 -521835.081 2 24563567.355 24563564.459 24563566.244
+ 25.600 17.000
+ -3462796.872 4 -2698273.686 3 24031032.279 24031032.540 24031031.002
+ 29.200 19.300
+ -18123862.847 7 -14122479.088 6 21374593.100 21374590.329 21374592.328
+ 43.500 41.000
+ -16825134.637 7 -13110486.637 6 21518444.214 21518442.933 21518443.489
+ 45.600 41.200
+ -10335335.912 6 -8053499.803 5 22425669.379 22425669.301 22425668.135
+ 37.600 32.000
+ -12570448.667 7 -9795137.671 5 22051034.973 22051035.078 22051034.038
+ 42.000 35.100
+ 06 1 1 20 19 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13336610.483 7 -10392156.161 7 20812942.534 20812941.782 20812941.288
+ 45.600 42.700
+ -22986213.089 7 -17911321.712 7 20089539.543 20089538.671 20089539.080
+ 45.700 47.400
+ -722282.034 4 -562816.712 2 24553559.328 24553556.873 24553557.937
+ 25.300 17.000
+ -3369859.089 4 -2625854.634 2 24048718.098 24048716.922 24048716.412
+ 29.500 17.800
+ -18192942.199 7 -14176307.105 6 21361447.970 21361445.103 21361447.176
+ 44.000 41.100
+ -16759203.409 7 -13059111.657 6 21530990.390 21530989.219 21530989.948
+ 45.800 41.200
+ -10395117.028 6 -8100082.436 5 22414293.020 22414293.226 22414291.955
+ 36.900 32.400
+ -12494996.257 6 -9736343.607 5 22065392.902 22065393.358 22065392.086
+ 41.900 35.100
+ 06 1 1 20 20 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13299427.501 7 -10363182.408 7 20820017.832 20820017.371 20820016.790
+ 45.600 42.400
+ -22978866.748 7 -17905597.286 7 20090937.379 20090936.560 20090936.983
+ 45.800 47.400
+ -774466.981 4 -603480.228 3 24543629.113 24543626.224 24543627.993
+ 28.800 19.300
+ -3276612.569 4 -2553195.013 2 24066461.760 24066461.139 24066460.619
+ 26.800 15.100
+ -18261702.039 7 -14229886.144 6 21348363.235 21348360.449 21348362.413
+ 43.700 41.100
+ -16692962.601 7 -13007495.451 6 21543595.816 21543594.677 21543595.101
+ 45.700 41.200
+ -10454397.567 6 -8146275.005 5 22403011.941 22403012.428 22403011.030
+ 36.200 32.800
+ -12419363.981 7 -9677409.381 5 22079785.589 22079785.495 22079784.648
+ 42.400 34.600
+ 06 1 1 20 20 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13261898.573 7 -10333939.086 7 20827159.698 20827158.801 20827158.413
+ 45.500 42.200
+ -22971098.705 7 -17899544.261 7 20092415.397 20092414.749 20092415.142
+ 45.700 47.400
+ -826241.371 4 -643823.842 2 24533776.546 24533773.695 24533775.253
+ 28.100 17.000
+ -3183060.072 4 -2480296.982 3 24084264.057 24084265.200 24084262.844
+ 26.200 19.900
+ -18330141.856 7 -14283215.818 6 21335339.452 21335336.667 21335338.633
+ 43.500 41.400
+ -16626412.909 7 -12955638.559 6 21556259.407 21556258.533 21556258.981
+ 45.600 41.300
+ -10513175.473 6 -8192075.916 5 22391826.870 22391827.607 22391825.884
+ 36.100 33.100
+ -12343553.366 7 -9618336.186 5 22094211.592 22094211.846 22094210.714
+ 42.400 34.500
+ 06 1 1 20 21 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13224023.813 7 -10304426.285 7 20834366.705 20834366.223 20834365.683
+ 45.600 42.400
+ -22962909.882 7 -17893163.357 7 20093973.911 20093973.091 20093973.508
+ 45.900 47.500
+ -877602.567 4 -683845.480 3 24524002.709 24524000.052 24524001.636
+ 27.400 21.100
+ -3089204.449 4 -2407162.786 2 24102125.179 24102124.335 24102123.780
+ 28.600 17.800
+ -18398260.594 7 -14336295.307 6 21322376.597 21322374.086 21322375.879
+ 43.400 41.700
+ -16559554.745 7 -12903541.299 6 21568982.264 21568981.166 21568981.757
+ 45.600 41.200
+ -10571448.773 6 -8237483.631 5 22380737.870 22380738.563 22380736.930
+ 36.800 32.800
+ -12267566.145 7 -9559125.366 5 22108671.546 22108671.799 22108670.853
+ 42.500 34.700
+ 06 1 1 20 21 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13185803.070 7 -10274643.891 7 20841640.081 20841639.466 20841638.891
+ 45.400 42.300
+ -22954301.443 7 -17886455.477 7 20095612.053 20095611.237 20095611.590
+ 45.900 47.500
+ -928548.168 4 -723543.296 3 24514307.626 24514305.425 24514306.699
+ 27.100 18.600
+ -2995048.257 4 -2333794.310 2 24120041.939 24120041.363 24120040.862
+ 29.500 16.100
+ -18466057.644 7 -14389124.120 6 21309475.255 21309472.850 21309474.532
+ 43.400 41.900
+ -16492388.837 7 -12851204.232 6 21581763.400 21581762.254 21581762.978
+ 45.300 40.900
+ -10629215.503 6 -8282496.626 5 22369745.684 22369745.672 22369744.524
+ 37.100 32.800
+ -12191403.740 7 -9499778.055 5 22123164.846 22123164.914 22123163.829
+ 42.100 34.500
+ 06 1 1 20 22 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13147236.245 7 -10244591.822 7 20848978.829 20848978.384 20848977.744
+ 45.500 42.300
+ -22945274.188 7 -17879421.248 7 20097329.868 20097329.024 20097329.431
+ 45.800 47.400
+ -979075.743 4 -762915.382 3 24504693.059 24504690.274 24504691.935
+ 25.900 18.600
+ -2900594.334 4 -2260193.861 2 24138015.979 24138015.487 24138014.672
+ 26.800 17.800
+ -18533532.153 7 -14441701.611 6 21296635.245 21296633.014 21296634.530
+ 43.700 41.900
+ -16424915.510 7 -12798627.630 6 21594603.700 21594602.225 21594602.752
+ 45.200 41.100
+ -10686473.611 6 -8327113.282 5 22358850.031 22358849.652 22358848.763
+ 37.900 32.700
+ -12115067.665 7 -9440295.408 5 22137691.166 22137691.287 22137690.293
+ 42.200 35.100
+ 06 1 1 20 22 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13108323.430 7 -10214270.150 7 20856383.863 20856383.249 20856382.696
+ 45.300 42.000
+ -22935829.216 7 -17872061.526 7 20099127.278 20099126.352 20099126.828
+ 45.900 47.400
+ -1029182.734 4 -801959.764 3 24495157.429 24495155.018 24495156.573
+ 26.500 20.500
+ -2805845.516 4 -2186363.644 2 24156044.839 24156046.334 24156044.084
+ 24.200 17.000
+ -18600683.463 7 -14494027.252 6 21283856.981 21283854.146 21283856.208
+ 44.000 41.700
+ -16357135.427 7 -12745811.991 6 21607501.033 21607500.423 21607500.733
+ 45.000 41.100
+ -10743221.104 6 -8371332.075 5 22348051.421 22348050.819 22348050.054
+ 38.400 32.300
+ -12038559.487 6 -9380678.661 5 22152250.096 22152250.468 22152249.145
+ 41.800 34.400
+ 06 1 1 20 23 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13069064.343 7 -10183678.651 7 20863854.553 20863854.029 20863853.415
+ 45.200 42.100
+ -22925967.393 7 -17864376.982 7 20101003.815 20101003.055 20101003.407
+ 45.700 47.500
+ -1078866.951 4 -840674.706 3 24485702.807 24485700.579 24485701.703
+ 25.300 21.100
+ -2710803.708 4 -2112305.147 3 24174132.379 24174131.586 24174130.972
+ 26.800 18.600
+ -18667510.780 7 -14546100.442 6 21271140.316 21271137.051 21271139.467
+ 44.200 41.500
+ -16289049.163 7 -12692757.775 6 21620458.192 21620456.729 21620457.307
+ 45.100 40.900
+ -10799456.046 6 -8415151.476 5 22337350.042 22337349.606 22337348.744
+ 38.100 32.600
+ -11961880.710 6 -9320928.972 5 22166841.590 22166841.863 22166840.697
+ 41.800 34.500
+ 06 1 1 20 23 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -13029459.081 7 -10152817.415 6 20871391.106 20871390.624 20871389.982
+ 45.100 41.900
+ -22915689.819 7 -17856368.478 7 20102959.593 20102958.782 20102959.143
+ 45.900 47.500
+ -1128126.058 4 -879058.361 3 24476328.985 24476327.110 24476327.895
+ 26.200 22.100
+ -2615472.493 4 -2038021.071 2 24192272.854 24192272.795 24192271.629
+ 27.900 16.100
+ -18734013.630 7 -14597920.799 6 21258484.689 21258482.237 21258483.999
+ 43.800 41.900
+ -16220657.792 7 -12639465.802 6 21633471.903 21633471.210 21633471.610
+ 44.900 40.800
+ -10855176.515 6 -8458569.991 5 22326746.849 22326746.557 22326745.719
+ 38.900 33.800
+ -11885032.727 6 -9261047.440 5 22181465.273 22181465.798 22181464.399
+ 41.400 34.800
+ 06 1 1 20 24 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -12989507.641 7 -10121686.429 6 20878993.736 20878993.097 20878992.499
+ 45.200 41.800
+ -22904997.458 7 -17848036.761 7 20104994.246 20104993.355 20104993.844
+ 46.000 47.400
+ -1176957.221 4 -917108.562 2 24467037.497 24467034.615 24467035.985
+ 28.100 17.800
+ -2519854.381 4 -1963513.470 2 24210468.187 24210468.565 24210467.353
+ 27.400 15.100
+ -18800191.065 7 -14649487.579 7 21245891.737 21245889.122 21245890.944
+ 43.900 42.100
+ -16151961.324 7 -12585936.103 6 21646544.733 21646543.853 21646544.073
+ 44.600 40.900
+ -10910380.552 6 -8501586.082 5 22316241.653 22316241.614 22316240.550
+ 38.400 33.800
+ -11808017.279 6 -9201035.417 5 22196121.101 22196121.344 22196120.148
+ 41.400 34.300
+ 06 1 1 20 24 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -12949209.932 7 -10090285.623 6 20886662.147 20886661.565 20886660.954
+ 45.000 41.700
+ -22893891.435 7 -17839382.715 7 20107107.636 20107106.745 20107107.260
+ 46.100 47.400
+ -1225358.078 4 -954823.520 3 24457827.358 24457824.095 24457826.351
+ 29.700 19.900
+ -2423952.062 4 -1888784.408 3 24228717.613 24228717.982 24228716.636
+ 27.100 18.600
+ -18866042.413 7 -14700800.277 6 21233360.628 21233357.723 21233359.890
+ 44.300 41.900
+ -16082960.335 7 -12532169.119 6 21659675.055 21659674.208 21659674.571
+ 44.800 40.900
+ -10965066.212 6 -8544198.243 5 22305835.348 22305835.151 22305834.246
+ 38.300 33.500
+ -11730835.899 6 -9140894.091 5 22210807.838 22210808.224 22210806.877
+ 40.700 33.800
+ 06 1 1 20 25 0.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -12908565.996 7 -10058615.026 6 20894396.547 20894395.973 20894395.288
+ 45.200 41.900
+ -22882372.632 7 -17830407.015 7 20109299.546 20109298.725 20109299.187
+ 46.000 47.500
+ -1273326.536 4 -992201.503 3 24448699.020 24448696.044 24448697.451
+ 27.400 19.300
+ -2327768.010 4 -1813835.815 2 24247021.953 24247021.146 24247020.277
+ 26.200 16.100
+ -18931567.029 7 -14751858.380 7 21220891.644 21220888.719 21220890.840
+ 44.200 42.000
+ -16013655.848 7 -12478165.633 6 21672863.132 21672862.324 21672862.689
+ 44.600 40.300
+ -11019231.622 6 -8586405.015 5 22295527.980 22295527.469 22295526.757
+ 38.200 33.000
+ -11653490.072 6 -9080624.631 5 22225526.401 22225526.959 22225525.516
+ 41.100 34.100
+ 06 1 1 20 25 30.0000000 0 8G 7G 4G23G20G 2G17G 5G24
+ -12867575.736 7 -10026674.577 6 20902196.651 20902196.073 20902195.590
+ 45.500 41.800
+ -22870442.199 7 -17821110.571 7 20111569.814 20111569.045 20111569.433
+ 46.200 47.500
+ -1320860.081 4 -1029240.555 3 24439653.643 24439650.301 24439652.109
+ 25.900 21.600
+ -2231305.097 4 -1738669.924 2 24265377.108 24265377.397 24265376.078
+ 24.900 16.100
+ -18996763.938 7 -14802661.123 7 21208485.169 21208482.490 21208484.418
+ 44.400 42.500
+ -15944048.103 7 -12423925.846 6 21686109.226 21686108.176 21686108.709
+ 44.700 40.200
+ -11072874.905 6 -8628204.951 5 22285319.518 22285319.650 22285318.469
+ 37.900 32.700
+ -11575981.366 6 -9020228.244 5 22240275.610 22240275.938 22240274.811
+ 41.100 33.600
+ 06 1 1 20 26 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12826239.265 7 -9994464.345 6 20910062.916 20910062.153 20910061.648
+ 45.200 41.600
+ -22858101.154 7 -17811494.164 7 20113918.407 20113917.412 20113917.918
+ 46.100 47.400
+ -1367956.583 4 -1065939.097 3 24430690.970 24430688.233 24430689.858
+ 25.600 19.900
+ -2134566.122 4 -1663288.921 2 24283786.228 24283787.179 24283785.043
+ 25.900 15.100
+ -19061632.847 7 -14853208.283 7 21196140.896 21196138.365 21196140.124
+ 44.300 42.400
+ -15874138.397 7 -12369450.764 6 21699412.796 21699411.514 21699412.139
+ 44.800 39.900
+ -11125994.238 6 -8669596.608 5 22275211.318 22275211.232 22275210.183
+ 37.800 33.200
+ -128835.001 2 -100390.523 2 24443915.857 24443917.576 24443915.871
+ 17.000 17.000
+ -11498311.462 6 -8959706.245 5 22255056.380 22255056.390 22255055.317
+ 41.100 33.900
+ 06 1 1 20 26 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12784556.438 7 -9961984.232 6 20917994.621 20917994.128 20917993.564
+ 45.400 41.400
+ -22845350.487 7 -17801558.577 7 20116344.706 20116343.715 20116344.307
+ 46.100 47.400
+ -1414613.415 4 -1102295.026 3 24421812.526 24421810.155 24421811.461
+ 24.200 20.500
+ -2037553.545 4 -1587694.714 2 24302248.161 24302247.841 24302246.587
+ 26.200 15.100
+ -19126172.863 7 -14903499.164 7 21183859.242 21183856.369 21183858.385
+ 44.100 42.100
+ -15803926.619 7 -12314740.298 6 21712773.622 21712772.387 21712773.138
+ 45.100 40.100
+ -11178587.653 6 -8710578.447 5 22265203.158 22265203.204 22265202.020
+ 38.100 33.400
+ -225116.193 3 -175414.703 3 24425594.792 24425595.699 24425594.934
+ 18.600 18.600
+ -11420481.615 6 -8899059.629 5 22269866.484 22269867.012 22269865.691
+ 41.200 33.900
+ 06 1 1 20 27 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12742527.483 7 -9929234.403 6 20925992.895 20925991.982 20925991.625
+ 45.400 41.500
+ -22832191.217 7 -17791304.597 7 20118848.841 20118847.921 20118848.432
+ 46.100 47.300
+ -1460828.520 4 -1138306.785 2 24413017.854 24413014.950 24413016.418
+ 24.200 15.100
+ -1940270.415 4 -1511889.683 2 24320759.173 24320759.749 24320758.377
+ 26.800 17.000
+ -19190383.279 7 -14953533.220 7 21171640.621 21171637.633 21171639.817
+ 44.400 42.600
+ -15733413.482 7 -12259795.008 6 21726191.779 21726190.658 21726191.292
+ 44.700 39.700
+ -11230653.438 6 -8751149.159 5 22255295.314 22255295.424 22255294.321
+ 38.600 33.400
+ -321098.908 3 -250206.353 3 24407329.939 24407331.840 24407329.312
+ 19.900 21.100
+ -11342493.399 6 -8838289.598 5 22284707.507 22284707.070 22284706.452
+ 41.300 32.800
+ 06 1 1 20 27 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12700152.097 7 -9896214.634 6 20934056.348 20934055.659 20934055.326
+ 45.600 41.400
+ -22818624.588 7 -17780733.193 7 20121430.439 20121429.552 20121430.033
+ 45.900 47.300
+ -1506599.411 3 -1173972.327 3 24404307.049 24404305.149 24404306.349
+ 23.400 18.600
+ -1842719.252 4 -1435875.843 2 24339322.902 24339324.212 24339321.731
+ 26.200 16.100
+ -19254263.512 7 -15003309.989 7 21159484.302 21159481.773 21159483.591
+ 44.100 42.700
+ -15662599.853 7 -12204615.561 6 21739667.361 21739666.053 21739666.722
+ 44.600 39.800
+ -11282189.718 6 -8791307.269 5 22245488.157 22245488.149 22245487.133
+ 38.300 32.800
+ -416780.691 3 -324763.472 3 24389122.824 24389123.681 24389122.461
+ 22.100 19.300
+ -11264348.508 6 -8777397.477 5 22299577.809 22299577.821 22299576.932
+ 41.400 33.500
+ 06 1 1 20 28 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12657430.550 7 -9862925.121 6 20942186.369 20942185.379 20942185.116
+ 45.500 41.700
+ -22804651.389 7 -17769844.980 7 20124089.267 20124088.525 20124088.900
+ 46.000 47.300
+ -1551923.799 4 -1209289.990 3 24395683.328 24395679.689 24395682.044
+ 26.200 18.600
+ -1744902.809 4 -1359655.280 2 24357937.209 24357937.059 24357935.505
+ 26.500 13.900
+ -19317812.704 7 -15052828.803 7 21147391.496 21147388.465 21147390.714
+ 44.500 42.300
+ -15591486.574 7 -12149202.633 6 21753199.879 21753198.291 21753199.116
+ 44.700 39.700
+ -11333194.680 6 -8831051.367 5 22235782.173 22235781.838 22235781.124
+ 38.100 32.400
+ -512158.620 4 -399083.853 2 24370972.532 24370974.264 24370972.494
+ 25.600 17.000
+ -11186048.041 6 -8716384.139 5 22314478.085 22314477.824 22314477.123
+ 41.200 33.400
+ 06 1 1 20 28 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12614362.881 7 -9829365.908 6 20950381.533 20950380.989 20950380.618
+ 45.800 41.600
+ -22790272.968 7 -17758641.011 7 20126825.421 20126824.612 20126825.028
+ 45.900 47.300
+ -1596799.445 4 -1244257.998 2 24387143.508 24387140.365 24387142.246
+ 25.600 17.800
+ -1646823.625 4 -1283229.944 1 24376600.750 24376600.255 24376599.250
+ 25.300 11.000
+ -19381030.366 7 -15102089.296 7 21135361.652 21135358.584 21135360.819
+ 44.600 42.700
+ -15520074.024 7 -12093556.505 6 21766788.851 21766788.216 21766788.589
+ 44.500 40.700
+ -11383666.503 6 -8870380.035 5 22226177.905 22226177.538 22226176.726
+ 38.100 32.600
+ -607230.130 3 -473165.477 3 24352882.119 24352882.565 24352881.448
+ 23.400 21.100
+ -11107593.591 6 -8655250.816 5 22329407.477 22329407.273 22329406.433
+ 40.500 33.200
+ 06 1 1 20 29 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12570949.118 7 -9795537.006 6 20958643.466 20958642.309 20958642.066
+ 45.400 41.600
+ -22775490.053 7 -17747121.853 7 20129638.395 20129637.836 20129638.030
+ 45.700 47.400
+ -1641223.986 4 -1278874.475 3 24378689.934 24378687.226 24378689.016
+ 29.000 22.100
+ -1548484.458 4 -1206602.041 1 24395312.603 24395313.859 24395311.960
+ 25.900 11.000
+ -19443915.896 7 -15151090.975 7 21123394.670 21123392.110 21123393.912
+ 44.300 42.800
+ -15448362.563 7 -12037677.464 6 21780435.808 21780434.289 21780434.768
+ 44.200 40.200
+ -11433603.480 6 -8909291.934 5 22216675.344 22216674.701 22216674.149
+ 38.500 32.800
+ -701992.433 4 -547006.145 2 24334848.360 24334849.133 24334848.167
+ 25.600 16.100
+ -11028986.677 6 -8593998.684 5 22344365.412 22344366.146 22344364.595
+ 40.500 33.900
+ 06 1 1 20 29 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12527189.177 7 -9761438.360 6 20966969.960 20966969.572 20966969.037
+ 45.500 41.400
+ -22760303.947 7 -17735288.523 7 20132528.427 20132527.667 20132527.956
+ 45.800 47.400
+ -1685195.505 4 -1313137.944 3 24370321.972 24370319.850 24370321.254
+ 28.800 23.400
+ -1449888.048 4 -1129773.685 2 24414076.261 24414075.801 24414075.261
+ 26.200 13.900
+ -19506468.564 7 -15199833.284 7 21111491.587 21111488.349 21111490.680
+ 44.600 42.600
+ -15376353.472 7 -11981566.507 6 21794138.292 21794137.167 21794137.740
+ 44.300 39.900
+ -11483003.875 6 -8947785.719 5 22207274.924 22207274.450 22207273.724
+ 38.600 33.100
+ -796442.574 4 -620603.618 3 24316875.106 24316875.861 24316874.736
+ 25.600 19.300
+ -10950228.690 6 -8532628.840 5 22359352.962 22359353.147 22359351.983
+ 40.900 33.000
+ 06 1 1 20 30 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12483083.239 7 -9727070.103 6 20975363.490 20975362.709 20975362.234
+ 45.500 41.300
+ -22744715.918 7 -17723142.007 7 20135494.757 20135493.882 20135494.269
+ 45.900 47.300
+ -1728711.381 4 -1347046.404 3 24362041.995 24362038.568 24362040.271
+ 27.600 20.500
+ -1351037.171 4 -1052747.024 2 24432886.347 24432887.335 24432885.120
+ 24.200 17.000
+ -19568687.627 7 -15248315.644 7 21099651.463 21099648.419 21099650.670
+ 44.700 42.700
+ -15304047.204 7 -11925223.974 6 21807897.191 21807896.551 21807897.020
+ 43.900 39.900
+ -11531865.872 6 -8985859.973 5 22197976.422 22197976.367 22197975.437
+ 39.200 33.200
+ -890578.099 3 -693955.845 3 24298961.529 24298963.374 24298961.107
+ 22.600 19.300
+ -10871321.182 6 -8471142.478 5 22374368.041 22374368.770 22374367.346
+ 40.600 33.100
+ 06 1 1 20 30 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12438631.422 7 -9692432.329 6 20983822.043 20983821.620 20983821.002
+ 45.200 41.400
+ -22728726.807 7 -17710682.957 7 20138537.296 20138536.556 20138536.901
+ 45.900 47.500
+ -1771769.615 4 -1380598.212 3 24353847.982 24353845.445 24353846.920
+ 28.600 23.800
+ -1251934.569 3 -975524.261 2 24451746.524 24451746.004 24451744.924
+ 22.600 13.900
+ -19630572.512 7 -15296537.604 7 21087875.246 21087872.210 21087874.459
+ 44.800 43.000
+ -15231444.260 7 -11868650.269 6 21821713.727 21821712.310 21821712.940
+ 43.900 39.500
+ -11580187.884 6 -9023513.465 5 22188781.243 22188780.844 22188780.190
+ 39.600 33.500
+ -984396.010 3 -767060.628 24281106.985 24281107.944 24281107.223
+ 22.100 3.000
+ -10792265.837 6 -8409540.929 5 22389411.992 22389412.245 22389411.112
+ 40.300 32.600
+ 06 1 1 20 31 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12393833.673 7 -9657525.001 6 20992346.934 20992346.429 20992345.771
+ 45.100 41.400
+ -22712337.650 7 -17697912.186 7 20141656.025 20141655.314 20141655.687
+ 46.000 47.400
+ -1814368.132 4 -1413791.843 3 24345741.580 24345739.079 24345740.496
+ 28.400 22.600
+ -1152582.676 4 -898107.249 2 24470651.947 24470651.534 24470650.529
+ 24.600 17.000
+ -19692122.230 7 -15344498.395 7 21076162.621 21076159.732 21076161.834
+ 44.700 43.200
+ -15158545.415 7 -11811845.987 6 21835585.268 21835584.489 21835585.008
+ 44.000 39.400
+ -11627968.098 6 -9060744.783 5 22179688.861 22179688.728 22179687.694
+ 39.700 33.600
+ -1077893.657 3 -839915.908 1 24263316.805 24263317.345 24263315.980
+ 20.500 9.000
+ -10713063.661 6 -8347824.954 5 22404484.127 22404483.875 22404483.149
+ 40.600 32.600
+ 06 1 1 20 31 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12348690.074 7 -9622348.181 6 21000937.429 21000937.019 21000936.290
+ 45.100 41.500
+ -22695549.834 7 -17684830.770 7 20144850.665 20144849.889 20144850.305
+ 46.100 47.400
+ -1856504.608 4 -1446625.419 3 24337723.307 24337720.709 24337721.942
+ 28.100 23.800
+ -1052984.381 3 -820498.195 2 24489604.102 24489604.293 24489603.099
+ 23.400 13.900
+ -19753336.682 7 -15392197.941 7 21064513.943 21064510.933 21064513.224
+ 45.100 43.300
+ -15085351.405 7 -11754811.708 6 21849514.279 21849512.920 21849513.548
+ 43.900 39.300
+ -11675204.891 6 -9097552.640 5 22170700.185 22170699.593 22170698.981
+ 39.600 33.500
+ -1171068.340 4 -912519.493 1 24245586.318 24245585.930 24245585.500
+ 24.600 11.000
+ -10633716.102 6 -8285995.699 5 22419582.933 22419583.592 22419582.110
+ 40.000 33.200
+ 06 1 1 20 32 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12303200.806 7 -9586901.997 6 21009593.734 21009593.153 21009592.464
+ 44.700 40.900
+ -22678364.251 7 -17671439.409 7 20148121.178 20148120.195 20148120.671
+ 46.100 47.400
+ -1898176.579 4 -1479097.056 3 24329793.867 24329790.694 24329792.499
+ 29.500 22.100
+ -953142.172 3 -742699.086 2 24508603.227 24508604.103 24508602.451
+ 20.500 16.100
+ -19814214.848 7 -15439635.445 7 21052929.074 21052926.215 21052928.336
+ 44.700 43.300
+ -15011862.718 7 -11697547.808 6 21863498.404 21863497.209 21863497.865
+ 43.800 39.100
+ -11721896.552 6 -9133935.729 5 22161814.590 22161814.378 22161813.577
+ 39.700 33.600
+ -1263917.340 4 -984869.315 2 24227917.577 24227918.573 24227917.061
+ 26.500 17.800
+ -10554224.725 6 -8224054.391 5 22434709.935 22434710.172 22434709.042
+ 40.300 32.800
+ 06 1 1 20 32 30.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12257365.890 7 -9551186.486 6 21018315.843 21018315.283 21018314.575
+ 44.700 41.000
+ -22660782.084 7 -17657739.021 7 20151466.758 20151465.998 20151466.345
+ 46.000 47.300
+ -1939382.368 4 -1511205.395 3 24321952.539 24321950.063 24321950.953
+ 29.200 23.800
+ -853058.868 3 -664712.141 2 24527649.419 24527649.125 24527647.548
+ 23.800 16.100
+ -19874756.548 7 -15486810.769 7 21041408.497 21041405.467 21041407.702
+ 45.200 43.400
+ -14938080.373 7 -11640055.090 6 21877538.522 21877537.650 21877538.391
+ 44.000 39.100
+ -11768041.492 6 -9169892.797 5 22153033.410 22153033.245 22153032.480
+ 39.300 33.400
+ -1356437.837 4 -1056963.094 3 24210310.114 24210312.471 24210310.337
+ 29.700 23.800
+ -10474591.036 6 -8162002.177 5 22449863.533 22449863.853 22449862.706
+ 39.800 32.600
+ 06 1 1 20 33 0.0000000 0 9G 7G 4G23G20G 2G17G 5G30G24
+ -12211185.462 7 -9515201.741 6 21027103.558 21027103.137 21027102.481
+ 44.900 40.900
+ -22642804.402 7 -17643730.436 7 20154887.782 20154887.070 20154887.384
+ 46.100 47.400
+ -1980119.647 4 -1542948.690 3 24314200.214 24314197.029 24314198.868
+ 28.800 23.000
+ -752737.189 4 -586539.426 2 24546739.670 24546739.806 24546738.368
+ 25.600 17.000
+ -19934960.850 7 -15533723.188 7 21029951.725 21029949.043 21029950.990
+ 44.900 43.700
+ -14864005.070 7 -11582334.086 6 21891635.339 21891633.861 21891634.393
+ 43.400 39.400
+ -11813638.110 6 -9205422.604 5 22144356.722 22144356.437 22144355.719
+ 38.900 33.800
+ -1448627.092 4 -1128798.801 4 24192767.716 24192769.695 24192767.557
+ 27.900 26.500
+ -10394816.361 6 -8099840.105 5 22465044.399 22465044.654 22465043.512
+ 39.700 33.000
+ 06 1 1 20 33 30.0000000 0 10G 7G 4G23G20G 2G17G 5G30G13G24
+ -12164659.643 7 -9478947.862 6 21035957.477 21035956.739 21035956.196
+ 44.700 40.900
+ -22624432.462 7 -17629414.638 7 20158383.961 20158383.104 20158383.520
+ 46.100 47.300
+ -2020386.516 5 -1574325.424 3 24306537.567 24306534.827 24306536.555
+ 30.200 23.400
+ -652179.851 4 -508183.059 2 24565874.798 24565875.259 24565873.879
+ 25.900 17.800
+ -19994827.265 7 -15580372.319 7 21018559.655 21018556.820 21018558.841
+ 45.100 43.900
+ -14789637.414 7 -11524385.286 6 21905786.642 21905785.704 21905785.920
+ 43.100 39.400
+ -11858684.697 6 -9240523.809 5 22135784.763 22135784.291 22135783.595
+ 39.300 33.800
+ -1540482.491 4 -1200374.305 4 24175288.341 24175290.017 24175288.091
+ 26.800 28.100
+ -110127.537 3 -85813.617 3 24612036.399 24612034.454 24612034.753
+ 21.100 18.600
+ -10314902.236 6 -8037569.376 5 22480251.892 22480251.796 22480250.779
+ 39.400 32.800
+ 06 1 1 20 34 0.0000000 0 10G 7G 4G23G20G 2G17G 5G30G13G24
+ -12117788.598 7 -9442424.971 6 21044876.412 21044875.877 21044875.390
+ 45.000 40.500
+ -22605667.219 7 -17614792.367 7 20161954.850 20161954.038 20161954.410
+ 46.100 47.300
+ -2060180.763 4 -1605333.904 3 24298965.136 24298961.817 24298963.682
+ 29.200 19.300
+ -551389.267 4 -429644.969 2 24585054.922 24585055.939 24585053.792
+ 24.600 15.100
+ -20054354.710 7 -15626757.309 7 21007231.854 21007229.096 21007231.134
+ 45.200 43.900
+ -14714978.101 7 -11466209.216 6 21919993.416 21919992.825 21919993.115
+ 43.100 39.600
+ -11903179.740 6 -9275195.243 5 22127317.626 22127317.363 22127316.374
+ 39.100 34.000
+ -1632001.217 3 -1271687.457 4 24157872.832 24157874.367 24157872.404
+ 23.000 28.600
+ -192462.592 3 -149970.718 3 24596367.781 24596367.064 24596366.309
+ 20.500 18.600
+ -10234850.083 6 -7975191.091 5 22495485.377 22495484.991 22495484.286
+ 39.800 32.300
+ 06 1 1 20 34 30.0000000 0 10G 7G 4G23G20G 2G17G 5G30G13G24
+ -12070572.420 7 -9405633.153 6 21053861.814 21053860.858 21053860.394
+ 44.800 40.600
+ -22586509.874 7 -17599864.564 7 20165600.306 20165599.542 20165599.834
+ 46.000 47.200
+ -2099500.130 5 -1635972.316 3 24291482.850 24291478.778 24291481.591
+ 30.100 19.900
+ -450368.395 3 -350927.428 2 24604278.224 24604279.205 24604276.875
+ 23.400 12.600
+ -20113543.020 7 -15672878.050 7 20995968.927 20995965.873 20995968.101
+ 45.300 43.600
+ -14640027.565 7 -11407806.224 6 21934256.583 21934255.589 21934255.775
+ 43.100 39.300
+ -11947121.674 6 -9309435.684 5 22118955.688 22118955.382 22118954.649
+ 39.700 33.800
+ -1723180.603 3 -1342736.228 4 24140522.093 24140522.910 24140521.605
+ 22.100 27.100
+ -274570.880 3 -213951.070 2 24580740.561 24580741.297 24580741.058
+ 19.900 12.600
+ -10154661.293 6 -7912706.326 5 22510744.236 22510744.622 22510743.304
+ 39.400 32.000
+ 06 1 1 20 35 0.0000000 0 10G 7G 4G23G20G 2G17G 5G30G13G24
+ -12023011.100 7 -9368572.389 6 21062911.995 21062911.457 21062910.927
+ 44.800 40.500
+ -22566961.608 7 -17584632.149 7 20169319.971 20169319.484 20169319.633
+ 46.100 47.300
+ -2138342.706 4 -1666239.261 3 24284091.505 24284087.846 24284089.823
+ 28.400 19.900
+ -349119.801 3 -272032.451 2 24623545.165 24623546.298 24623544.163
+ 23.400 12.600
+ -20172391.648 7 -15718734.098 7 20984770.218 20984767.254 20984769.473
+ 45.300 43.800
+ -14564786.967 7 -11349177.203 6 21948574.663 21948573.314 21948573.575
+ 42.900 39.200
+ -11990508.936 6 -9343243.911 5 22110699.221 22110699.051 22110698.210
+ 39.600 34.700
+ -1814017.886 2 -1413518.387 4 24123234.473 24123236.287 24123234.299
+ 13.900 26.800
+ -356448.605 3 -277751.800 1 24565160.534 24565160.693 24565160.446
+ 21.100 11.000
+ -10074336.998 6 -7850115.983 5 22526029.554 22526029.992 22526028.485
+ 38.900 32.400
+ 06 1 1 20 35 30.0000000 0 10G 7G 4G23G20G 2G17G 5G30G13G24
+ -11975104.862 7 -9331242.856 6 21072028.713 21072027.805 21072027.255
+ 44.900 40.300
+ -22547023.451 7 -17569095.915 7 20173114.304 20173113.582 20173113.868
+ 45.900 47.400
+ -2176706.485 4 -1696133.054 3 24276790.944 24276787.520 24276789.551
+ 29.500 19.300
+ -247646.259 4 -192962.150 1 24642855.637 24642855.582 24642854.274
+ 24.600 11.000
+ -20230899.926 7 -15764324.942 7 20973636.590 20973633.431 20973635.771
+ 45.300 43.700
+ -14489256.888 7 -11290322.615 6 21962946.835 21962945.978 21962946.550
+ 43.000 38.600
+ -12033339.960 6 -9376618.712 5 22102549.028 22102548.611 22102547.865
+ 39.700 34.600
+ -1904510.472 2 -1484031.910 4 24106013.586 24106014.780 24106014.415
+ 15.100 27.400
+ -438092.906 3 -341370.690 9 24549624.143 24549623.650 24549623.668
+ 19.900 -3.000
+ -9993878.980 6 -7787421.437 5 22541340.310 22541340.265 22541339.439
+ 39.300 32.000
+ 06 1 1 20 36 0.0000000 0 10G 7G 4G23G20G 2G17G 5G30G13G24
+ -11926854.006 7 -9293644.794 6 21081210.000 21081209.577 21081209.038
+ 45.100 40.200
+ -22526696.697 7 -17553256.883 7 20176982.495 20176981.605 20176982.008
+ 46.200 47.300
+ -2214589.350 4 -1725652.136 3 24269581.934 24269578.870 24269580.852
+ 28.800 21.600
+ -145950.442 3 -113718.658 2 24662207.504 24662207.913 24662206.349
+ 22.100 13.900
+ -20289066.915 7 -15809649.851 7 20962567.540 20962564.634 20962566.801
+ 45.300 43.800
+ -14413438.202 7 -11231243.139 6 21977374.811 21977374.164 21977374.434
+ 43.100 39.200
+ -12075613.310 6 -9409558.956 5 22094504.623 22094504.343 22094503.451
+ 39.300 34.800
+ -1994655.549 3 -1554274.707 4 24088860.830 24088863.403 24088860.651
+ 19.300 24.900
+ -519500.417 2 -404805.020 1 24534130.476 24534131.891 24534132.044
+ 17.000 6.500
+ -9913288.286 6 -7724623.513 5 22556676.140 22556676.311 22556675.298
+ 39.300 31.600
+ 06 1 1 20 36 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11878258.563 7 -9255778.211 6 21090458.019 21090456.833 21090456.682
+ 44.900 40.000
+ -22505982.378 7 -17537115.849 7 20180924.225 20180923.407 20180923.760
+ 45.900 47.200
+ -2251989.319 4 -1754794.935 3 24262464.794 24262462.062 24262462.938
+ 28.100 20.500
+ -20346892.689 7 -15854708.879 7 20951563.743 20951560.743 20951562.929
+ 45.100 43.800
+ -14337331.429 7 -11171939.178 6 21991857.960 21991856.686 21991856.994
+ 42.900 38.900
+ -12117327.421 6 -9442063.424 5 22086566.476 22086566.364 22086565.197
+ 39.100 34.900
+ -2084450.386 3 -1624244.659 2 24071774.003 24071775.676 24071773.621
+ 23.800 17.800
+ -600668.040 2 -468052.401 1 24518686.748 24518686.232 24518686.522
+ 17.000 6.500
+ -9832566.394 6 -7661723.352 5 22572037.149 22572037.166 22572036.150
+ 39.000 31.800
+ 06 1 1 20 37 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11829318.766 7 -9217643.316 6 21099770.520 21099769.887 21099769.480
+ 45.000 40.200
+ -22484881.645 7 -17520673.716 7 20184939.485 20184938.736 20184939.076
+ 46.100 47.100
+ -2288904.413 4 -1783559.896 3 24255440.181 24255436.378 24255438.822
+ 29.900 19.300
+ -20404376.166 7 -15899501.182 7 20940624.800 20940622.014 20940624.006
+ 44.900 43.800
+ -14260937.288 7 -11112411.288 6 22006394.593 22006393.801 22006394.386
+ 43.000 38.400
+ -12158480.884 6 -9474131.029 5 22078735.257 22078734.992 22078734.001
+ 39.400 34.600
+ -2173892.185 4 -1693939.468 3 24054754.000 24054755.907 24054753.809
+ 27.900 20.500
+ -681592.299 3 -531110.170 1 24503288.243 24503287.460 24503287.448
+ 21.100 9.000
+ -9751714.478 6 -7598721.867 5 22587422.508 22587423.070 22587421.681
+ 39.000 31.800
+ 06 1 1 20 37 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11780034.667 7 -9179240.127 6 21109149.133 21109148.487 21109147.899
+ 44.800 40.300
+ -22463395.771 7 -17503931.470 7 20189027.985 20189027.329 20189027.597
+ 46.100 47.200
+ -2325332.945 4 -1811945.737 3 24248507.442 24248504.758 24248506.331
+ 28.100 19.300
+ -20461516.948 7 -15944026.455 7 20929751.256 20929748.409 20929750.473
+ 44.700 43.900
+ -14184256.728 7 -11052660.209 6 22020986.612 22020985.684 22020986.288
+ 43.100 38.400
+ -12199072.222 6 -9505760.616 5 22071011.153 22071010.769 22071009.962
+ 40.000 34.700
+ -2262978.261 4 -1763357.144 2 24037801.172 24037802.471 24037800.909
+ 26.500 16.100
+ -762270.132 3 -593975.949 2 24487934.914 24487935.321 24487934.721
+ 21.600 15.100
+ -9670734.157 6 -7535620.336 5 22602832.588 22602832.946 22602831.644
+ 39.000 32.000
+ 06 1 1 20 38 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11730406.664 7 -9140568.968 6 21118593.114 21118592.322 21118591.827
+ 44.600 40.200
+ -22441525.742 7 -17486889.885 7 20193189.754 20193189.015 20193189.299
+ 45.800 47.000
+ -2361272.579 4 -1839950.611 3 24241669.237 24241665.824 24241667.827
+ 29.700 21.600
+ -20518314.681 7 -15988284.415 7 20918943.009 20918940.243 20918942.251
+ 44.700 44.000
+ -14107290.788 7 -10992686.771 6 22035633.609 22035632.103 22035632.426
+ 42.700 38.400
+ -12239100.023 6 -9536951.082 5 22063394.200 22063393.609 22063393.144
+ 40.900 34.900
+ -2351706.044 4 -1832495.588 2 24020917.074 24020917.069 24020916.646
+ 28.800 13.900
+ -842698.226 3 -656647.097 3 24472630.144 24472630.273 24472629.984
+ 22.600 19.900
+ -9589626.847 6 -7472419.846 5 22618266.900 22618267.183 22618266.007
+ 38.600 31.000
+ 06 1 1 20 38 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11680434.736 7 -9101629.809 6 21128101.987 21128101.625 21128101.033
+ 44.400 40.200
+ -22419272.952 7 -17469550.045 7 20197424.175 20197423.591 20197423.832
+ 46.000 47.200
+ -2396721.482 5 -1867573.107 3 24234923.088 24234920.457 24234921.802
+ 31.000 23.400
+ -20574768.586 7 -16032274.453 7 20908200.241 20908197.303 20908199.467
+ 45.000 44.100
+ -14030040.016 7 -10932491.383 6 22050333.170 22050332.305 22050332.733
+ 42.600 38.600
+ -12278562.822 6 -9567701.286 5 22055884.464 22055884.145 22055883.394
+ 40.400 34.800
+ -2440072.736 4 -1901352.691 1 24004101.594 24004102.012 24004101.385
+ 28.100 11.000
+ -922873.339 3 -719121.145 3 24457374.219 24457373.372 24457373.258
+ 23.400 19.300
+ -9508393.653 6 -7409121.269 5 22633725.732 22633725.301 22633724.452
+ 38.600 31.100
+ 06 1 1 20 39 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11630119.263 7 -9062422.961 6 21137677.144 21137676.219 21137675.836
+ 44.400 39.900
+ -22396638.524 7 -17451912.824 7 20201731.483 20201730.863 20201731.090
+ 46.000 47.100
+ -2431677.831 5 -1894811.775 3 24228271.406 24228268.485 24228269.955
+ 30.800 23.000
+ -20630878.117 7 -16075996.152 7 20897522.952 20897520.004 20897522.236
+ 45.300 44.100
+ -13952505.002 7 -10872074.507 6 22065086.916 22065086.757 22065087.158
+ 42.300 38.200
+ -12317459.260 6 -9598010.179 5 22048482.422 22048482.564 22048481.448
+ 40.300 35.200
+ -2528075.760 4 -1969926.461 2 23987354.895 23987354.919 23987354.451
+ 28.600 15.100
+ -1002792.198 3 -781395.528 2 24442165.028 24442165.423 24442164.541
+ 22.600 17.800
+ -9427036.210 6 -7345725.870 5 22649207.556 22649207.347 22649206.507
+ 38.700 31.500
+ 06 1 1 20 39 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11579460.318 7 -9022948.466 6 21147316.773 21147316.357 21147315.827
+ 44.500 39.800
+ -22373623.414 7 -17433978.969 7 20206111.052 20206110.517 20206110.652
+ 46.100 47.300
+ -2466139.717 5 -1921665.187 3 24221712.976 24221709.990 24221712.092
+ 30.200 20.500
+ -20686642.417 7 -16119448.842 7 20886911.626 20886908.409 20886910.820
+ 45.600 44.200
+ -13874686.561 7 -10811436.772 6 22079896.470 22079895.159 22079895.558
+ 42.200 38.100
+ -12355787.969 6 -9627876.673 5 22041188.930 22041188.723 22041187.772
+ 40.500 34.900
+ -2615712.296 4 -2038214.564 3 23970677.504 23970678.345 23970677.326
+ 26.200 20.500
+ -1082451.502 3 -843467.664 2 24427006.459 24427006.824 24427006.020
+ 18.600 17.800
+ -9345555.557 6 -7282234.470 5 22664712.306 22664712.671 22664711.306
+ 38.400 31.300
+ 06 1 1 20 40 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11528458.136 7 -8983206.515 6 21157022.695 21157021.785 21157021.403
+ 44.400 40.000
+ -22350229.044 7 -17415749.588 7 20210562.866 20210562.293 20210562.500
+ 46.100 47.200
+ -2500105.064 4 -1948131.667 3 24215250.090 24215246.866 24215248.597
+ 29.900 21.600
+ -20742060.984 7 -16162632.132 7 20876365.941 20876362.641 20876365.056
+ 45.500 44.400
+ -13796585.537 6 -10750578.857 6 22094758.312 22094757.227 22094757.621
+ 41.900 37.600
+ -12393547.603 6 -9657299.735 5 22034003.482 22034003.297 22034002.357
+ 40.600 35.700
+ -2702979.763 4 -2106215.085 3 23954071.425 23954071.278 23954071.278
+ 27.600 21.100
+ -1161848.245 3 -905335.207 2 24411897.436 24411897.699 24411896.970
+ 18.600 15.100
+ -9263953.139 6 -7218648.186 5 22680240.799 22680240.742 22680239.857
+ 38.200 30.800
+ 06 1 1 20 40 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11477112.970 7 -8943197.307 6 21166793.256 21166792.510 21166792.034
+ 44.100 39.700
+ -22326456.361 7 -17397225.419 7 20215086.955 20215086.056 20215086.401
+ 46.100 47.200
+ -2533572.361 5 -1974210.066 3 24208881.316 24208877.916 24208879.894
+ 30.100 21.100
+ -20797133.799 7 -16205546.000 7 20865885.676 20865882.546 20865884.973
+ 45.500 44.400
+ -13718202.694 6 -10689501.335 6 22109673.142 22109673.010 22109673.460
+ 41.800 37.900
+ -12430736.764 6 -9686278.262 6 22026926.750 22026926.545 22026925.533
+ 40.500 36.400
+ -2789875.502 4 -2173925.920 3 23937536.319 23937536.589 23937535.601
+ 24.600 22.600
+ -1240979.007 3 -966995.497 2 24396839.503 24396839.940 24396838.855
+ 19.900 15.100
+ -9182230.362 6 -7154968.104 5 22695792.005 22695792.302 22695791.066
+ 38.300 31.000
+ 06 1 1 20 41 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11425425.043 7 -8902921.010 6 21176628.758 21176628.334 21176627.793
+ 44.400 39.500
+ -22302306.678 7 -17378407.486 7 20219682.357 20219681.592 20219681.924
+ 46.100 47.100
+ -2566539.671 4 -1999898.875 3 24202607.581 24202604.511 24202606.270
+ 29.700 19.900
+ -20851860.169 7 -16248189.912 7 20855471.633 20855468.547 20855470.804
+ 45.600 44.700
+ -13639538.980 6 -10628204.957 6 22124642.996 22124642.440 22124642.668
+ 41.900 38.200
+ -12467354.264 6 -9714811.345 6 22019958.435 22019958.676 22019957.316
+ 40.200 36.700
+ -2876396.724 4 -2241344.956 4 23921071.255 23921072.243 23921070.944
+ 25.900 24.900
+ -1319840.677 3 -1028446.157 1 24381832.179 24381831.938 24381832.101
+ 21.100 11.000
+ -9100388.563 6 -7091195.293 5 22711365.940 22711366.323 22711365.053
+ 38.100 31.300
+ 06 1 1 20 41 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11373394.562 7 -8862377.792 6 21186530.266 21186529.565 21186528.959
+ 44.200 39.700
+ -22277781.190 7 -17359296.717 7 20224349.097 20224348.623 20224348.793
+ 46.100 47.100
+ -2599005.105 4 -2025196.587 3 24196429.246 24196426.176 24196428.241
+ 29.900 19.300
+ -20906239.468 7 -16290563.378 7 20845123.492 20845120.499 20845122.680
+ 45.500 44.800
+ -13560595.268 6 -10566690.404 6 22139666.419 22139664.912 22139665.282
+ 41.700 38.400
+ -12503398.707 6 -9742897.889 6 22013099.395 22013099.623 22013098.290
+ 40.900 36.900
+ -2962540.867 4 -2308470.169 4 23904678.755 23904679.665 23904678.261
+ 27.100 26.200
+ -1398429.928 3 -1089684.504 2 24366877.902 24366877.770 24366877.459
+ 23.400 16.100
+ -9018428.864 6 -7027330.601 5 22726962.411 22726962.565 22726961.491
+ 38.000 31.300
+ 06 1 1 20 42 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11321021.885 7 -8821567.931 6 21196495.938 21196495.835 21196495.038
+ 43.900 39.800
+ -22252881.098 7 -17339894.051 7 20229087.467 20229086.944 20229087.123
+ 46.100 47.100
+ -2630967.042 4 -2050101.995 3 24190347.532 24190344.661 24190346.201
+ 28.600 21.100
+ -20960271.252 7 -16332666.053 7 20834841.340 20834838.534 20834840.647
+ 45.500 44.800
+ -13481372.118 6 -10504958.117 6 22154741.421 22154740.405 22154740.847
+ 41.900 37.700
+ -12538868.881 6 -9770536.952 6 22006349.638 22006349.703 22006348.580
+ 41.000 36.200
+ -3048305.311 4 -2375299.490 4 23888358.121 23888358.889 23888357.830
+ 25.300 25.300
+ -1476743.582 3 -1150708.112 3 24351974.577 24351974.835 24351974.459
+ 22.600 18.600
+ -8936352.487 6 -6963374.997 5 22742580.786 22742581.355 22742579.999
+ 38.100 31.300
+ 06 1 1 20 42 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11268307.154 7 -8780491.529 6 21206527.920 21206527.048 21206526.479
+ 44.100 39.600
+ -22227607.557 7 -17320200.383 7 20233897.051 20233896.391 20233896.583
+ 46.100 47.100
+ -2662423.842 4 -2074613.761 3 24184361.558 24184357.736 24184360.288
+ 29.500 19.300
+ -21013954.779 7 -16374497.356 7 20824625.724 20824622.769 20824624.966
+ 45.500 44.700
+ -13401870.636 6 -10443008.926 6 22169869.850 22169869.051 22169869.711
+ 41.900 37.600
+ -12573763.540 6 -9797727.576 6 21999709.458 21999709.255 21999708.391
+ 40.700 36.100
+ -3133687.260 4 -2441830.796 4 23872109.950 23872111.291 23872109.867
+ 26.500 27.600
+ -1554778.277 3 -1211514.319 2 24337125.889 24337125.127 24337125.212
+ 21.100 13.900
+ -8854160.741 6 -6899329.488 5 22758221.579 22758221.895 22758220.612
+ 37.900 31.500
+ 06 1 1 20 43 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11215250.700 7 -8739148.853 6 21216623.822 21216623.207 21216622.731
+ 44.100 39.100
+ -22201961.832 7 -17300216.707 7 20238777.273 20238776.623 20238776.801
+ 45.900 47.100
+ -2693372.942 4 -2098729.934 3 24178471.389 24178468.951 24178470.119
+ 27.600 19.300
+ -21067289.648 7 -16416056.984 7 20814476.812 20814473.504 20814475.971
+ 45.700 44.700
+ -13322091.282 6 -10380843.226 6 22185052.038 22185051.014 22185051.107
+ 41.500 38.200
+ -12608081.467 6 -9824468.791 5 21993179.037 21993178.650 21993177.946
+ 41.200 35.700
+ -3218684.116 4 -2508062.058 4 23855936.348 23855936.140 23855935.930
+ 26.500 24.900
+ -1632531.175 3 -1272100.932 2 24322329.462 24322328.597 24322329.021
+ 19.300 15.100
+ -8771855.054 6 -6835195.200 5 22773883.715 22773884.251 22773882.719
+ 37.200 31.600
+ 06 1 1 20 43 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11161852.709 7 -8697540.038 6 21226785.017 21226784.570 21226784.031
+ 44.300 39.500
+ -22175945.017 7 -17279943.865 7 20243727.719 20243727.431 20243727.485
+ 46.000 47.000
+ -2723813.152 4 -2122449.544 2 24172678.963 24172675.665 24172677.886
+ 28.100 17.800
+ -21120275.363 7 -16457344.542 7 20804393.700 20804390.698 20804393.058
+ 45.900 44.800
+ -13242035.112 6 -10318461.824 6 22200286.553 22200284.799 22200285.238
+ 41.200 37.200
+ -12641821.451 6 -9850759.667 5 21986758.472 21986757.901 21986757.286
+ 41.000 34.800
+ -3303293.312 3 -2573991.177 4 23839835.022 23839836.124 23839834.683
+ 23.000 25.900
+ -1709998.910 3 -1332465.358 2 24307586.961 24307587.656 24307586.732
+ 19.300 17.800
+ -8689436.458 6 -6770972.925 5 22789568.148 22789567.739 22789566.992
+ 37.900 31.300
+ 06 1 1 20 44 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11108113.612 7 -8655665.434 6 21237011.524 21237011.063 21237010.369
+ 44.200 39.800
+ -22149558.362 7 -17259382.837 7 20248749.103 20248748.662 20248748.744
+ 46.100 47.000
+ -2753742.904 4 -2145771.392 3 24166983.063 24166980.104 24166981.932
+ 25.900 19.300
+ -21172911.489 7 -16498359.692 7 20794377.589 20794374.314 20794376.808
+ 45.800 45.100
+ -13161702.715 6 -10255865.185 6 22215572.332 22215571.691 22215572.001
+ 41.600 36.900
+ -12674982.367 6 -9876599.337 5 21980448.216 21980447.722 21980447.126
+ 41.300 35.900
+ -3387512.112 4 -2639616.134 4 23823808.724 23823810.052 23823808.323
+ 24.900 25.900
+ -1787178.044 3 -1392604.887 2 24292900.701 24292901.446 24292900.320
+ 18.600 17.800
+ -8606906.255 6 -6706663.689 5 22805272.650 22805272.751 22805271.533
+ 37.200 30.400
+ 06 1 1 20 44 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -11054033.561 7 -8613525.148 6 21247302.598 21247302.053 21247301.480
+ 44.100 39.300
+ -22122803.073 7 -17238534.564 7 20253840.583 20253840.037 20253840.182
+ 46.200 46.900
+ -2783160.220 4 -2168693.952 3 24161386.067 24161381.779 24161384.540
+ 28.100 19.300
+ -21225197.356 7 -16539101.917 7 20784427.854 20784424.801 20784427.097
+ 45.600 45.300
+ -13081095.293 6 -10193054.233 6 22230911.211 22230910.951 22230911.169
+ 41.500 37.500
+ -12707563.008 6 -9901986.828 5 21974248.573 21974247.817 21974247.345
+ 41.400 35.700
+ -3471337.933 4 -2704934.878 4 23807856.986 23807858.212 23807856.745
+ 27.900 25.900
+ -1864065.636 3 -1452517.203 2 24278270.838 24278269.856 24278270.019
+ 22.100 17.800
+ -8524265.800 6 -6642268.549 5 22820998.988 22820998.458 22820997.824
+ 37.500 30.400
+ 06 1 1 20 45 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10999613.023 7 -8571119.550 6 21257658.748 21257658.016 21257657.402
+ 44.200 39.400
+ -22095680.424 7 -17217400.028 7 20259001.972 20259001.291 20259001.536
+ 46.400 47.100
+ -2812063.458 4 -2191215.924 2 24155886.176 24155882.093 24155884.921
+ 28.800 17.800
+ -21277132.575 7 -16579570.911 7 20774544.799 20774541.849 20774544.055
+ 45.600 45.300
+ -13000213.540 6 -10130029.515 6 22246303.077 22246302.145 22246302.445
+ 41.200 37.200
+ -12739562.261 6 -9926921.302 6 21968158.814 21968158.603 21968157.681
+ 41.200 36.000
+ -3554768.130 4 -2769945.380 4 23791980.750 23791982.145 23791980.328
+ 28.600 25.600
+ -1940658.215 3 -1512199.681 2 24263694.944 24263694.432 24263694.616
+ 22.100 17.000
+ -8441516.564 6 -6577788.629 5 22836745.254 22836745.382 22836744.260
+ 37.200 30.200
+ 06 1 1 20 45 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10944852.152 7 -8528448.756 6 21268078.974 21268078.594 21268078.006
+ 44.200 39.200
+ -22068191.580 7 -17195980.145 7 20264233.031 20264232.198 20264232.585
+ 46.600 46.900
+ -2840450.918 4 -2213336.018 2 24150483.613 24150480.305 24150482.418
+ 28.400 17.800
+ -21328716.614 7 -16619766.255 7 20764728.615 20764725.692 20764727.792
+ 45.500 45.500
+ -12919058.287 6 -10066791.682 6 22261747.043 22261745.290 22261745.809
+ 40.900 37.000
+ -12770979.000 6 -9951401.863 5 21962180.247 21962180.356 21962179.123
+ 40.500 35.800
+ -3637800.113 5 -2834645.555 3 23776180.658 23776181.162 23776180.334
+ 30.600 23.000
+ -2016952.808 3 -1571649.968 2 24249176.241 24249175.734 24249175.790
+ 22.100 13.900
+ -8358659.577 6 -6513224.747 5 22852512.281 22852512.782 22852511.429
+ 37.100 30.400
+ 06 1 1 20 46 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10889751.335 7 -8485513.064 6 21278564.798 21278564.079 21278563.499
+ 44.000 39.300
+ -22040337.724 7 -17174275.842 7 20269533.341 20269532.609 20269532.950
+ 46.500 46.900
+ -2868321.179 4 -2235053.051 3 24145180.785 24145177.535 24145179.218
+ 29.500 19.900
+ -21379949.211 7 -16659687.747 7 20754979.434 20754976.411 20754978.588
+ 45.400 45.500
+ -12837630.456 6 -10003341.455 6 22277241.491 22277240.623 22277240.974
+ 41.300 36.900
+ -12801812.092 6 -9975427.627 6 21956312.924 21956312.820 21956311.931
+ 40.900 36.300
+ -3720431.173 4 -2899033.342 3 23760456.165 23760456.217 23760455.947
+ 29.000 21.600
+ -2092946.222 3 -1630865.570 2 24234714.643 24234715.099 24234714.771
+ 22.600 17.000
+ -8275696.437 6 -6448578.147 5 22868299.942 22868300.420 22868298.903
+ 36.800 30.800
+ 06 1 1 20 46 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10834311.022 7 -8442312.844 6 21289114.573 21289113.901 21289113.314
+ 43.800 39.100
+ -22012120.182 7 -17152288.141 7 20274902.873 20274902.256 20274902.513
+ 46.600 46.800
+ -2895672.487 4 -2256365.737 3 24139975.244 24139972.154 24139974.254
+ 27.900 20.500
+ -21430829.586 7 -16699334.788 7 20745297.157 20745294.186 20745296.387
+ 45.700 45.500
+ -12755931.049 6 -9939679.598 6 22292787.678 22292787.571 22292787.808
+ 40.900 37.200
+ -12832060.485 6 -9998997.783 6 21950557.106 21950556.776 21950556.060
+ 41.300 36.200
+ -3802658.883 4 -2963106.825 3 23744808.569 23744808.614 23744808.189
+ 25.600 19.900
+ -2168635.221 3 -1689843.959 2 24220311.917 24220311.601 24220311.720
+ 21.100 13.900
+ -8192628.194 6 -6383849.667 4 22884106.882 22884107.266 22884105.897
+ 36.600 29.900
+ 06 1 1 20 47 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10778531.298 7 -8398848.134 6 21299728.695 21299728.535 21299727.747
+ 43.800 39.100
+ -21983540.033 7 -17130017.893 7 20280341.569 20280340.873 20280341.076
+ 46.200 46.900
+ -2922503.288 5 -2277272.805 3 24134870.661 24134866.771 24134869.238
+ 32.000 21.600
+ -21481357.482 7 -16738707.163 7 20735682.046 20735678.953 20735681.230
+ 45.500 45.400
+ -12673960.694 6 -9875806.612 6 22308386.903 22308386.070 22308386.355
+ 40.900 37.300
+ -12861723.149 6 -10022111.526 6 21944912.695 21944912.207 21944911.528
+ 41.500 36.200
+ -3884480.601 4 -3026863.938 3 23729238.593 23729238.810 23729238.203
+ 26.200 21.600
+ -2244016.686 3 -1748582.746 2 24205966.784 24205967.248 24205966.698
+ 21.100 17.000
+ -8109456.071 6 -6319040.211 4 22899934.246 22899934.226 22899933.269
+ 36.900 29.200
+ 06 1 1 20 47 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10722412.571 7 -8355119.273 6 21310408.104 21310407.641 21310406.908
+ 43.800 39.300
+ -21954598.559 7 -17107466.091 7 20285848.864 20285848.279 20285848.470
+ 46.400 46.800
+ -2948812.068 4 -2297773.137 3 24129862.981 24129859.860 24129861.897
+ 29.700 20.500
+ -21531532.207 7 -16777804.347 7 20726134.060 20726131.062 20726133.352
+ 45.700 45.600
+ -12591720.263 6 -9811723.188 6 22324037.388 22324035.763 22324036.117
+ 40.600 36.700
+ -12890799.022 6 -10044768.029 5 21939379.300 21939379.056 21939378.252
+ 41.200 35.800
+ -3965893.628 4 -3090302.586 3 23713745.777 23713746.304 23713745.608
+ 26.500 20.500
+ -2319087.411 4 -1807079.374 2 24191682.349 24191681.277 24191681.923
+ 24.200 17.000
+ -8026180.877 6 -6254150.462 4 22915780.912 22915781.311 22915780.052
+ 36.900 29.500
+ 06 1 1 20 48 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10665955.301 7 -8311126.605 6 21321151.383 21321151.029 21321150.177
+ 43.200 38.900
+ -21925297.006 7 -17084633.709 7 20291424.642 20291424.205 20291424.305
+ 46.400 46.800
+ -2974597.215 4 -2317865.428 3 24124956.539 24124953.634 24124955.392
+ 29.700 21.600
+ -21581353.470 7 -16816626.108 7 20716653.536 20716650.463 20716652.754
+ 45.900 45.700
+ -12509210.904 6 -9747430.203 6 22339738.136 22339736.940 22339737.366
+ 40.800 36.400
+ -12919287.193 6 -10066966.595 6 21933958.491 21933958.045 21933957.329
+ 41.600 36.000
+ -4046895.476 4 -3153420.889 3 23698331.463 23698332.186 23698331.092
+ 26.800 22.600
+ -2393844.257 3 -1865331.412 3 24177456.746 24177456.019 24177455.896
+ 23.400 18.600
+ -7942804.264 6 -6189181.674 5 22931647.648 22931647.351 22931646.647
+ 37.100 30.100
+ 06 1 1 20 48 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10609159.782 7 -8266870.380 6 21331959.316 21331958.945 21331958.038
+ 43.200 39.000
+ -21895636.618 7 -17061521.712 7 20297068.961 20297068.347 20297068.586
+ 46.500 46.700
+ -2999857.296 4 -2337548.537 3 24120149.170 24120146.310 24120148.097
+ 27.400 21.600
+ -21630820.823 7 -16855172.094 7 20707240.204 20707237.134 20707239.441
+ 45.900 45.700
+ -12426433.372 6 -9682928.263 6 22355489.253 22355489.043 22355489.323
+ 40.500 36.500
+ -12947186.638 6 -10088706.401 6 21928649.063 21928648.995 21928648.122
+ 41.700 36.100
+ -4127483.563 4 -3216216.704 4 23682996.626 23682997.052 23682996.368
+ 27.600 24.200
+ -2468284.193 3 -1923336.509 2 24163290.376 24163289.910 24163290.012
+ 22.100 17.800
+ -7859327.156 6 -6124134.579 4 22947532.382 22947532.517 22947531.454
+ 36.100 29.500
+ 06 1 1 20 49 0.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10552026.341 7 -8222350.830 6 21342831.606 21342831.075 21342830.259
+ 43.000 38.800
+ -21865618.441 7 -17038130.921 7 20302781.309 20302780.543 20302780.854
+ 46.500 46.700
+ -3024590.477 4 -2356821.118 3 24115443.445 24115439.715 24115441.914
+ 28.100 22.100
+ -21679934.007 7 -16893442.100 7 20697894.318 20697891.219 20697893.481
+ 45.900 45.900
+ -12343388.143 6 -9618217.711 6 22371292.501 22371292.105 22371292.304
+ 39.900 36.500
+ -12974496.377 6 -10109986.697 6 21923452.417 21923452.002 21923451.300
+ 41.500 36.100
+ -4207655.167 4 -3278688.044 3 23667740.349 23667741.129 23667740.068
+ 27.100 23.000
+ -2542403.807 3 -1981092.005 3 24149186.087 24149185.587 24149185.716
+ 23.000 19.300
+ -7775750.898 6 -6059010.229 4 22963435.873 22963436.869 22963435.232
+ 36.500 29.900
+ 06 1 1 20 49 30.0000000 0 9G 7G 4G23G 2G17G 5G30G13G24
+ -10494555.481 7 -8177568.356 6 21353767.602 21353767.458 21353766.636
+ 43.300 38.800
+ -21835243.876 7 -17014462.427 7 20308561.478 20308560.678 20308561.003
+ 46.600 46.700
+ -3048795.796 4 -2375682.343 3 24110836.683 24110833.983 24110835.427
+ 28.100 23.400
+ -21728692.395 7 -16931435.640 7 20688615.789 20688612.716 20688614.991
+ 46.000 45.700
+ -12260076.568 6 -9553299.635 6 22387146.727 22387145.932 22387145.790
+ 39.500 36.800
+ -13001215.439 6 -10130806.728 6 21918368.115 21918367.549 21918366.955
+ 41.600 36.000
+ -4287407.783 5 -3340832.864 4 23652564.446 23652564.364 23652564.195
+ 31.600 25.900
+ -2616200.181 4 -2038595.638 2 24135143.056 24135142.396 24135142.924
+ 24.600 15.100
+ -7692076.685 6 -5993809.537 4 22979358.868 22979359.119 22979357.880
+ 36.100 28.800
+ 06 1 1 20 50 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10436747.582 7 -8132523.264 6 21364768.560 21364767.899 21364767.188
+ 43.100 38.700
+ -21804514.125 7 -16990517.161 7 20314409.092 20314408.428 20314408.667
+ 46.600 46.800
+ -3072471.437 4 -2394130.869 3 24106331.383 24106328.099 24106329.838
+ 28.400 22.100
+ -257848.631 3 -200919.738 3 24452580.046 24452581.453 24452577.844
+ 21.100 19.300
+ -21777095.628 7 -16969152.438 7 20679405.209 20679401.875 20679404.329
+ 46.200 45.800
+ -12176499.724 6 -9488174.852 6 22403051.487 22403049.776 22403050.259
+ 40.200 36.100
+ -13027343.025 6 -10151165.862 6 21913395.855 21913395.421 21913394.783
+ 41.300 36.400
+ -4366739.004 4 -3402649.334 4 23637467.680 23637467.935 23637467.415
+ 28.100 25.300
+ -2689670.170 4 -2095844.968 2 24121162.214 24121161.032 24121162.161
+ 25.300 15.100
+ -7608305.788 6 -5928533.521 4 22995299.656 22995300.539 22995298.812
+ 36.000 29.200
+ 06 1 1 20 50 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10378602.831 7 -8087215.685 6 21375833.267 21375832.374 21375831.828
+ 42.800 38.200
+ -21773430.407 7 -16966296.078 7 20320324.039 20320323.396 20320323.681
+ 46.600 46.700
+ -3095616.147 5 -2412165.649 3 24101927.478 24101924.456 24101926.472
+ 30.600 23.800
+ -378612.414 3 -295021.257 3 24429598.976 24429600.915 24429597.706
+ 22.100 20.500
+ -21825142.954 7 -17006591.906 7 20670261.954 20670258.746 20670261.133
+ 46.100 45.800
+ -12092658.289 6 -9422843.888 5 22419005.659 22419004.396 22419004.667
+ 39.800 35.900
+ -13052878.185 6 -10171063.381 5 21908536.693 21908536.017 21908535.699
+ 41.600 35.400
+ -4445646.186 4 -3464135.371 4 23622450.978 23622452.405 23622450.929
+ 25.900 26.200
+ -2762810.405 3 -2152837.334 2 24107243.160 24107243.645 24107243.552
+ 23.800 15.100
+ -7524439.259 5 -5863182.989 4 23011259.043 23011259.911 23011258.236
+ 35.600 28.600
+ 06 1 1 20 51 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10320121.854 7 -8041646.115 6 21386960.954 21386960.957 21386960.098
+ 42.800 38.100
+ -21741994.003 7 -16941800.179 7 20326306.354 20326305.548 20326305.884
+ 46.800 46.600
+ -3118228.236 5 -2429785.422 4 24097624.379 24097621.339 24097623.201
+ 30.100 24.600
+ -499307.185 3 -389069.033 2 24406631.401 24406633.204 24406630.495
+ 21.600 17.000
+ -21872834.004 7 -17043753.756 7 20661186.549 20661183.364 20661185.789
+ 46.100 45.800
+ -12008553.396 6 -9357307.637 5 22435009.393 22435008.950 22435009.321
+ 39.500 35.800
+ -13077820.019 6 -10190498.566 5 21903790.703 21903789.696 21903789.597
+ 41.900 35.700
+ -4524126.885 4 -3525289.087 4 23607517.141 23607518.185 23607516.744
+ 25.300 26.200
+ -2835617.940 3 -2209570.477 3 24093388.785 24093388.812 24093388.903
+ 23.400 18.600
+ -7440478.111 5 -5797758.725 4 23027236.373 23027237.041 23027235.519
+ 35.400 29.500
+ 06 1 1 20 51 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10261304.841 7 -7995814.695 6 21398154.163 21398153.519 21398152.859
+ 42.900 38.100
+ -21710206.143 7 -16917030.412 7 20332355.367 20332354.601 20332354.941
+ 46.900 46.700
+ -3140306.346 5 -2446989.131 4 24093423.047 24093419.866 24093422.002
+ 30.400 24.200
+ -619930.324 2 -483061.014 2 24383676.570 24383678.371 24383675.379
+ 16.100 17.000
+ -21920168.558 7 -17080637.808 7 20652179.174 20652175.972 20652178.320
+ 46.100 46.000
+ -11924185.785 6 -9291566.672 6 22451063.880 22451064.047 22451063.818
+ 39.400 36.500
+ -13102167.787 6 -10209470.843 5 21899157.223 21899156.573 21899156.154
+ 41.900 35.400
+ -4602178.486 4 -3586108.410 4 23592664.403 23592665.745 23592663.973
+ 27.900 26.500
+ -2908089.584 3 -2266041.838 3 24079598.549 24079598.204 24079597.769
+ 19.900 19.300
+ -7356423.866 5 -5732261.927 4 23043231.592 23043231.847 23043230.687
+ 35.700 28.600
+ 06 1 1 20 52 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10202152.498 7 -7949721.977 6 21409410.355 21409409.775 21409409.172
+ 42.800 37.700
+ -21678067.917 7 -16891987.639 7 20338471.146 20338470.302 20338470.666
+ 47.000 46.600
+ -3161849.518 4 -2463775.943 4 24089323.054 24089320.503 24089321.947
+ 28.400 25.300
+ -740479.453 3 -576995.262 3 24360736.883 24360739.977 24360736.120
+ 20.500 20.500
+ -21967146.087 7 -17117243.657 7 20643239.551 20643236.340 20643238.793
+ 46.100 46.000
+ -11839556.286 6 -9225621.631 6 22467169.474 22467168.443 22467168.558
+ 39.700 36.300
+ -13125920.585 6 -10227979.504 5 21894637.247 21894636.750 21894636.084
+ 41.800 35.900
+ -4679798.489 4 -3646591.505 3 23577893.286 23577893.966 23577893.287
+ 28.800 22.600
+ -2980222.412 4 -2322249.203 3 24065872.406 24065871.417 24065871.700
+ 24.200 18.600
+ -7272277.480 6 -5666693.308 4 23059244.094 23059243.768 23059243.221
+ 36.100 27.600
+ 06 1 1 20 52 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10142665.030 7 -7903368.125 6 21420730.602 21420729.929 21420729.371
+ 42.700 37.900
+ -21645580.810 7 -16866673.008 7 20344653.257 20344652.365 20344652.805
+ 47.100 46.600
+ -3182855.978 4 -2480144.564 4 24085325.079 24085322.844 24085323.883
+ 26.200 24.600
+ -860952.022 4 -670869.918 3 24337812.610 24337814.108 24337811.273
+ 24.200 19.300
+ -22013766.223 7 -17153571.020 7 20634368.121 20634364.847 20634367.299
+ 46.200 46.000
+ -11754665.831 6 -9159473.250 5 22483323.536 22483322.137 22483322.474
+ 38.900 35.100
+ -13149077.691 6 -10246023.989 5 21890230.514 21890229.921 21890229.414
+ 41.600 35.600
+ -4756984.445 4 -3706736.328 3 23563205.695 23563205.998 23563205.467
+ 29.000 23.800
+ -3052013.102 3 -2378190.002 3 24052210.500 24052210.472 24052210.491
+ 23.400 18.600
+ -7188040.109 5 -5601053.816 4 23075274.146 23075274.305 23075273.064
+ 35.200 28.800
+ 06 1 1 20 53 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10082843.059 7 -7856753.618 6 21432114.413 21432113.656 21432113.129
+ 43.100 37.700
+ -21612745.842 7 -16841087.316 7 20350901.431 20350900.617 20350901.042
+ 47.200 46.400
+ -3203324.396 4 -2496093.947 4 24081430.675 24081428.054 24081429.632
+ 29.000 25.600
+ -981345.599 3 -764683.034 2 24314901.506 24314903.139 24314900.236
+ 21.100 17.800
+ -22060028.705 7 -17189619.690 7 20625564.620 20625561.399 20625563.877
+ 46.300 46.200
+ -11669515.511 6 -9093122.387 6 22499527.290 22499525.825 22499526.046
+ 38.500 36.000
+ -13171638.301 6 -10263603.684 5 21885937.100 21885936.979 21885936.021
+ 41.100 35.700
+ -4833733.817 4 -3766540.998 4 23548600.597 23548601.465 23548600.366
+ 29.200 25.600
+ -3123458.578 3 -2433861.761 3 24038614.854 24038614.853 24038614.229
+ 22.600 19.900
+ -7103712.913 5 -5535344.339 4 23091320.635 23091321.324 23091319.654
+ 35.600 28.800
+ 06 1 1 20 53 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -10022686.857 7 -7809878.673 6 21443561.751 21443561.087 21443560.573
+ 43.000 38.000
+ -21579564.402 7 -16815231.648 7 20357215.743 20357214.857 20357215.312
+ 47.400 46.400
+ -3223253.505 4 -2511623.099 3 24077638.728 24077635.360 24077637.253
+ 29.500 23.800
+ -1101657.487 3 -858432.481 3 24292007.731 24292009.151 24292006.086
+ 20.500 20.500
+ -22105933.040 7 -17225389.278 7 20616829.263 20616825.991 20616828.393
+ 46.100 46.100
+ -11584106.329 6 -9026569.802 5 22515778.690 22515779.004 22515778.844
+ 38.700 35.800
+ -13193601.658 6 -10280717.974 5 21881757.757 21881757.237 21881756.629
+ 41.300 35.600
+ -4910044.028 4 -3826003.431 4 23534079.398 23534080.904 23534079.067
+ 27.400 27.400
+ -3194555.782 3 -2489262.105 2 24025084.895 24025084.671 24025084.264
+ 22.100 16.100
+ -7019296.896 5 -5469565.641 4 23107384.550 23107384.856 23107383.781
+ 35.600 27.900
+ 06 1 1 20 54 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9962196.950 7 -7762743.693 6 21455072.119 21455072.049 21455071.182
+ 42.700 37.700
+ -21546037.681 7 -16789106.935 7 20363595.706 20363594.801 20363595.212
+ 47.100 46.300
+ -3242641.995 4 -2526730.975 3 24073948.622 24073945.715 24073947.285
+ 29.200 23.400
+ -1221885.312 3 -952116.415 3 24269127.770 24269130.770 24269127.230
+ 21.600 19.900
+ -22151478.691 7 -17260879.370 7 20608162.065 20608158.963 20608161.330
+ 46.300 46.200
+ -11498438.941 6 -8959816.015 5 22532080.361 22532080.585 22532080.750
+ 38.600 35.100
+ -13214967.111 6 -10297366.373 5 21877692.070 21877691.548 21877690.939
+ 41.400 35.300
+ -4985912.715 4 -3885121.850 4 23519641.746 23519642.935 23519641.346
+ 27.400 26.200
+ -3265301.865 3 -2544388.907 2 24011622.549 24011622.310 24011622.486
+ 23.400 17.000
+ -6934793.374 5 -5403718.755 4 23123465.238 23123465.719 23123464.285
+ 35.100 28.600
+ 06 1 1 20 54 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9901373.829 7 -7715349.069 6 21466647.152 21466646.126 21466645.608
+ 42.400 37.500
+ -21512166.920 7 -16762714.135 7 20370040.866 20370040.159 20370040.467
+ 47.100 46.300
+ -3261489.007 4 -2541416.931 4 24070362.523 24070359.374 24070361.357
+ 27.600 25.600
+ -1342026.704 3 -1045733.020 2 24246265.721 24246267.431 24246264.521
+ 22.600 17.800
+ -22196665.630 7 -17296089.951 7 20599563.318 20599560.149 20599562.568
+ 46.100 46.300
+ -11412514.515 6 -8892861.948 5 22548432.320 22548431.416 22548431.663
+ 38.700 34.800
+ -13235733.831 6 -10313548.223 5 21873740.336 21873739.891 21873739.324
+ 41.600 35.900
+ -5061337.451 4 -3943894.284 4 23505288.910 23505290.231 23505288.628
+ 27.100 27.100
+ -3335693.851 3 -2599239.780 3 23998226.725 23998227.818 23998227.151
+ 22.600 19.900
+ -6850203.481 5 -5337804.582 4 23139562.126 23139562.119 23139561.314
+ 35.400 27.900
+ 06 1 1 20 55 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9840217.970 7 -7667695.177 6 21478284.735 21478283.567 21478283.331
+ 42.600 37.200
+ -21477953.295 7 -16736054.167 7 20376551.430 20376550.726 20376551.057
+ 46.900 46.200
+ -3279793.007 4 -2555679.776 4 24066878.727 24066876.119 24066877.972
+ 28.100 24.200
+ -1462078.920 3 -1139280.139 3 24223420.948 24223423.529 24223419.941
+ 23.000 20.500
+ -22241492.988 7 -17331020.336 7 20591032.983 20591029.690 20591032.184
+ 46.000 46.400
+ -11326334.213 6 -8825708.490 5 22564832.705 22564831.131 22564831.611
+ 39.600 35.200
+ -13255901.208 6 -10329263.049 5 21869902.443 21869902.009 21869901.406
+ 41.700 35.800
+ -5136315.621 4 -4002318.764 4 23491020.958 23491022.196 23491021.023
+ 27.900 25.600
+ -3405728.036 4 -2653811.845 3 23984900.477 23984900.052 23984900.036
+ 25.600 20.500
+ -6765528.269 5 -5271823.909 4 23155675.494 23155675.206 23155674.406
+ 34.400 28.400
+ 06 1 1 20 55 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9778729.713 7 -7619782.255 6 21489984.894 21489984.567 21489984.027
+ 42.800 37.600
+ -21443398.108 7 -16709128.049 7 20383127.093 20383126.370 20383126.697
+ 47.000 46.100
+ -3297552.578 4 -2569518.367 4 24063499.299 24063496.332 24063497.919
+ 27.100 24.200
+ -1582039.363 3 -1232755.714 3 24200592.291 24200594.642 24200591.358
+ 20.500 19.300
+ -22285960.459 7 -17365670.292 7 20582571.129 20582567.961 20582570.351
+ 46.300 46.600
+ -11239898.600 6 -8758356.104 5 22581280.533 22581279.479 22581279.672
+ 38.900 35.300
+ -13275468.594 6 -10344510.361 6 21866178.889 21866178.615 21866177.761
+ 41.500 36.200
+ -5210844.783 4 -4060393.358 3 23476839.127 23476839.287 23476838.853
+ 29.500 23.000
+ -3475401.590 4 -2708102.889 3 23971643.228 23971642.052 23971642.231
+ 24.200 22.100
+ -6680768.925 5 -5205777.691 4 23171804.306 23171804.768 23171803.394
+ 34.800 28.100
+ 06 1 1 20 56 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9716909.766 7 -7571610.880 6 21501749.218 21501748.732 21501747.945
+ 42.400 37.700
+ -21408502.592 7 -16681936.740 7 20389767.406 20389766.801 20389767.071
+ 47.100 46.100
+ -3314766.777 4 -2582932.003 3 24060223.431 24060220.531 24060222.071
+ 26.800 23.800
+ -1701905.877 3 -1326158.111 2 24177783.679 24177784.735 24177782.068
+ 21.600 17.800
+ -22330067.817 7 -17400039.643 7 20574177.803 20574174.579 20574176.993
+ 46.200 46.600
+ -11153208.857 6 -8690805.687 5 22597776.433 22597775.766 22597776.102
+ 38.700 35.100
+ -13294435.418 6 -10359289.693 6 21862569.804 21862569.257 21862568.685
+ 41.800 36.100
+ -5284922.658 4 -4118116.310 4 23462742.536 23462742.652 23462742.261
+ 29.000 25.600
+ -3544711.922 3 -2762110.905 3 23958451.129 23958452.765 23958452.006
+ 23.800 23.400
+ -6595926.268 5 -5139666.557 4 23187949.687 23187949.654 23187948.665
+ 35.100 27.600
+ 06 1 1 20 56 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9654758.543 7 -7523181.373 6 21513576.246 21513575.760 21513574.837
+ 42.300 37.500
+ -21373268.206 7 -16654481.372 7 20396472.510 20396471.686 20396472.043
+ 47.200 46.000
+ -3331434.316 4 -2595919.674 3 24057052.002 24057048.891 24057050.517
+ 27.900 23.000
+ -1821675.793 3 -1419485.220 3 24154992.098 24154993.345 24154990.530
+ 20.500 19.300
+ -22373814.726 7 -17434128.126 7 20565853.008 20565849.872 20565852.256
+ 46.200 46.800
+ -11066266.191 6 -8623058.190 5 22614320.852 22614320.753 22614320.670
+ 38.200 35.500
+ -13312800.977 6 -10373600.506 6 21859074.928 21859074.403 21859073.795
+ 41.600 36.500
+ -5358546.730 4 -4175485.681 3 23448731.918 23448732.482 23448731.575
+ 29.900 23.800
+ -3613655.661 3 -2815833.215 3 23945334.989 23945333.447 23945333.442
+ 23.800 22.100
+ -6511001.727 5 -5073491.602 4 23204110.244 23204110.539 23204109.323
+ 34.900 27.900
+ 06 1 1 20 57 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9592276.485 7 -7474494.064 6 21525465.714 21525465.686 21525464.707
+ 42.300 37.300
+ -21337695.933 7 -16626762.718 7 20403241.550 20403240.873 20403241.203
+ 47.300 46.000
+ -3347554.011 4 -2608480.450 3 24053984.625 24053981.815 24053983.286
+ 27.600 23.800
+ -1941346.571 3 -1512735.048 3 24132218.607 24132220.499 24132217.420
+ 22.100 18.600
+ -22417200.707 7 -17467935.371 7 20557596.842 20557593.795 20557596.041
+ 46.100 46.900
+ -10979071.351 6 -8555114.193 6 22630914.344 22630913.634 22630913.559
+ 38.800 36.000
+ -13330564.804 6 -10387442.437 6 21855694.800 21855694.143 21855693.585
+ 41.900 36.400
+ -5431714.659 5 -4232499.595 4 23434808.365 23434809.391 23434808.201
+ 30.100 25.300
+ -3682229.818 3 -2869267.587 3 23932285.474 23932283.525 23932283.970
+ 23.000 22.600
+ -6425996.329 5 -5007253.642 4 23220286.173 23220286.510 23220285.278
+ 34.700 28.400
+ 06 1 1 20 57 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9529464.073 7 -7425549.344 6 21537418.668 21537418.643 21537417.585
+ 42.000 37.600
+ -21301787.057 7 -16598781.773 7 20410074.692 20410074.139 20410074.331
+ 47.300 46.000
+ -3363124.625 4 -2620613.375 4 24051021.328 24051018.774 24051020.191
+ 27.400 25.600
+ -2060915.941 3 -1605905.848 2 24109465.234 24109467.138 24109464.461
+ 21.100 16.100
+ -22460225.548 7 -17501461.204 7 20549409.423 20549406.355 20549408.661
+ 46.100 46.800
+ -10891625.415 6 -8486974.528 5 22647554.637 22647553.650 22647554.093
+ 38.400 34.400
+ -13347726.288 6 -10400815.011 6 21852428.824 21852428.304 21852427.729
+ 41.800 36.200
+ -5504423.926 5 -4289156.076 4 23420972.852 23420973.007 23420972.593
+ 31.800 25.900
+ -3750431.306 4 -2922411.543 3 23919304.851 23919305.055 23919305.128
+ 25.900 18.600
+ -6340911.167 5 -4940953.535 4 23236477.019 23236477.513 23236476.207
+ 33.500 27.900
+ 06 1 1 20 58 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9466321.953 6 -7376347.709 6 21549434.641 21549434.228 21549433.243
+ 41.800 37.700
+ -21265542.966 7 -16570539.621 7 20416971.667 20416971.222 20416971.310
+ 47.100 46.100
+ -3378145.459 4 -2632317.875 4 24048163.087 24048160.067 24048161.708
+ 26.200 24.200
+ -2180381.348 3 -1698995.631 3 24086731.054 24086733.820 24086729.961
+ 23.000 20.500
+ -22502888.864 7 -17534705.331 7 20541291.094 20541287.779 20541290.221
+ 46.100 47.000
+ -10803929.282 6 -8418639.913 5 22664242.370 22664241.523 22664242.029
+ 38.000 34.100
+ -13364284.925 6 -10413717.833 6 21849277.601 21849277.539 21849276.607
+ 41.400 37.100
+ -5576672.145 5 -4345453.342 4 23407224.210 23407224.763 23407224.077
+ 30.600 28.600
+ -3818257.234 4 -2975262.888 2 23906398.071 23906397.496 23906398.295
+ 26.200 16.100
+ -6255747.305 5 -4874592.104 4 23252683.710 23252683.835 23252682.659
+ 34.500 27.400
+ 06 1 1 20 58 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9402850.620 6 -7326889.549 6 21561512.712 21561512.203 21561511.401
+ 41.500 37.100
+ -21228964.858 7 -16542037.199 7 20423932.460 20423931.773 20423932.030
+ 47.300 46.000
+ -3392615.349 4 -2643593.113 4 24045409.155 24045406.759 24045407.702
+ 25.900 25.300
+ -2299740.062 3 -1792002.243 3 24064018.267 24064020.238 24064017.485
+ 23.800 19.300
+ -22545190.156 7 -17567667.368 7 20533241.272 20533238.137 20533240.463
+ 46.200 47.000
+ -10715984.175 6 -8350111.296 5 22680977.364 22680977.237 22680977.162
+ 37.200 34.800
+ -13380240.223 6 -10426150.523 6 21846241.517 21846241.361 21846240.432
+ 41.800 36.600
+ -5648457.103 4 -4401389.569 4 23393564.288 23393564.125 23393563.625
+ 29.900 26.500
+ -3885704.296 4 -3027819.018 3 23893563.959 23893563.031 23893563.556
+ 25.300 18.600
+ -6170505.716 5 -4808170.094 4 23268904.796 23268904.686 23268903.770
+ 34.500 26.200
+ 06 1 1 20 59 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9339050.652 6 -7277175.296 6 21573652.809 21573652.676 21573651.923
+ 41.700 36.600
+ -21192053.886 7 -16513275.397 7 20430956.409 20430955.696 20430955.960
+ 47.400 45.800
+ -3406532.779 4 -2654437.840 4 24042760.635 24042758.398 24042759.666
+ 27.900 24.900
+ -2418989.478 3 -1884923.697 3 24041324.810 24041327.682 24041324.231
+ 23.000 21.100
+ -22587129.387 7 -17600347.276 7 20525260.424 20525257.323 20525259.637
+ 46.200 47.000
+ -10627790.455 6 -8281388.964 5 22697761.042 22697760.335 22697760.317
+ 38.200 34.800
+ -13395591.698 6 -10438112.704 6 21843320.309 21843320.009 21843319.149
+ 41.800 36.500
+ -5719776.197 4 -4456962.807 4 23379991.624 23379992.136 23379991.334
+ 27.600 25.900
+ -3952769.773 4 -3080077.752 3 23880802.183 23880801.501 23880801.372
+ 25.300 21.600
+ -6085187.246 5 -4741688.169 4 23285139.968 23285139.767 23285139.001
+ 34.100 25.900
+ 06 1 1 20 59 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9274922.543 6 -7227205.358 6 21585856.269 21585856.074 21585855.169
+ 41.500 36.900
+ -21154811.310 7 -16484255.201 7 20438043.424 20438042.729 20438042.995
+ 47.300 45.700
+ -3419896.919 4 -2664851.442 3 24040217.699 24040214.953 24040216.460
+ 27.600 23.800
+ -2538127.308 3 -1977758.197 2 24018653.937 24018655.910 24018652.988
+ 21.100 15.100
+ -22628705.809 7 -17632744.479 7 20517348.811 20517345.393 20517348.107
+ 46.500 46.800
+ -10539350.024 6 -8212474.371 5 22714590.391 22714589.435 22714589.757
+ 37.200 33.200
+ -13410338.824 6 -10449603.957 6 21840514.029 21840513.511 21840512.875
+ 41.800 36.300
+ -5790627.295 5 -4512171.375 4 23366509.308 23366510.100 23366509.218
+ 30.100 26.200
+ -4019450.857 4 -3132036.975 3 23868112.959 23868112.545 23868112.397
+ 26.500 19.300
+ -5999793.289 5 -4675147.442 4 23301389.709 23301390.021 23301388.839
+ 34.300 27.100
+ 06 1 1 21 0 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9210466.886 6 -7176980.184 6 21598122.364 21598121.511 21598120.909
+ 41.400 36.600
+ -21117238.540 7 -16454977.712 7 20445193.113 20445192.575 20445192.812
+ 47.400 45.800
+ -3432706.889 4 -2674833.179 3 24037780.326 24037776.932 24037779.178
+ 28.800 23.800
+ -2657150.903 3 -2070503.686 3 23996004.973 23996007.094 23996003.738
+ 23.400 23.400
+ -22669919.287 7 -17664858.876 7 20509506.168 20509502.777 20509505.348
+ 46.300 47.000
+ -10450663.309 6 -8143367.878 5 22731467.524 22731466.053 22731466.451
+ 36.800 33.900
+ -13424481.265 6 -10460624.033 6 21837822.742 21837822.133 21837821.749
+ 41.900 36.200
+ -5861007.853 4 -4567013.309 4 23353116.198 23353116.706 23353116.140
+ 29.900 27.100
+ -4085744.403 4 -3183694.265 3 23855496.936 23855497.199 23855497.050
+ 24.600 19.900
+ -5914324.490 5 -4608548.394 4 23317654.114 23317654.884 23317653.154
+ 34.400 28.600
+ 06 1 1 21 0 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9145684.288 6 -7126500.250 6 21610449.930 21610449.261 21610448.712
+ 41.600 36.400
+ -21079336.662 7 -16425443.775 7 20452405.813 20452404.986 20452405.315
+ 47.500 45.600
+ -3444961.632 4 -2684382.323 3 24035448.190 24035445.292 24035446.803
+ 27.100 22.600
+ -2776057.843 3 -2163158.288 3 23973377.471 23973379.194 23973376.240
+ 22.100 21.600
+ -22710769.528 7 -17696690.222 7 20501732.483 20501729.369 20501731.735
+ 46.200 47.200
+ -10361731.822 6 -8074070.655 5 22748390.575 22748389.325 22748389.620
+ 37.200 34.100
+ -13438018.534 7 -10471172.539 6 21835246.863 21835246.191 21835245.809
+ 42.200 36.500
+ -5930915.599 5 -4621486.843 4 23339813.447 23339813.822 23339813.195
+ 30.400 26.200
+ -4151647.322 4 -3235047.113 3 23842956.088 23842956.734 23842956.302
+ 24.900 22.600
+ -5828782.104 5 -4541892.005 4 23333932.951 23333932.989 23333931.986
+ 34.600 27.900
+ 06 1 1 21 1 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9080575.224 6 -7075765.925 6 21622839.409 21622839.133 21622838.452
+ 41.500 36.500
+ -21041106.967 7 -16395654.394 7 20459680.647 20459679.831 20459680.230
+ 47.500 45.600
+ -3456660.383 4 -2693498.212 4 24033221.882 24033219.430 24033220.942
+ 28.800 25.300
+ -2894845.502 4 -2255719.982 3 23950772.894 23950774.756 23950772.083
+ 24.600 22.100
+ -22751256.090 7 -17728238.180 7 20494028.188 20494025.043 20494027.400
+ 46.300 47.300
+ -10272556.340 6 -8004583.301 5 22765359.614 22765359.191 22765358.786
+ 36.600 35.400
+ -13450950.325 6 -10481249.250 6 21832786.111 21832785.250 21832784.920
+ 41.900 36.000
+ -6000348.302 5 -4675590.197 4 23326601.236 23326601.032 23326600.743
+ 31.600 26.200
+ -4217157.000 4 -3286093.524 3 23830490.222 23830490.307 23830489.928
+ 25.300 23.000
+ -5743167.303 5 -4475179.170 4 23350224.782 23350224.810 23350223.909
+ 34.000 27.400
+ 06 1 1 21 1 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -9015140.378 6 -7024777.743 6 21635291.772 21635291.007 21635290.451
+ 41.400 36.500
+ -21002550.873 7 -16365610.681 7 20467017.825 20467016.810 20467017.347
+ 47.400 45.600
+ -3467801.989 4 -2702179.941 3 24031102.640 24031098.736 24031100.945
+ 28.400 23.400
+ -3013511.681 3 -2348186.985 4 23928191.487 23928193.663 23928190.356
+ 23.000 25.300
+ -22791378.786 7 -17759502.610 7 20486393.183 20486389.842 20486392.392
+ 46.500 47.100
+ -10183137.738 6 -7934906.517 5 22782374.945 22782374.885 22782374.550
+ 36.700 34.800
+ -13463276.292 6 -10490853.888 6 21830440.410 21830439.833 21830439.222
+ 41.400 36.500
+ -6069303.515 5 -4729321.473 4 23313478.860 23313479.089 23313478.525
+ 31.000 25.900
+ -4282270.423 4 -3336831.232 3 23818099.340 23818099.256 23818099.352
+ 26.800 19.300
+ -5657480.952 5 -4408410.601 4 23366530.089 23366530.223 23366529.151
+ 33.200 25.600
+ 06 1 1 21 2 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8949380.198 6 -6973536.063 6 21647805.840 21647804.672 21647804.332
+ 41.500 36.500
+ -20963669.500 7 -16335313.504 7 20474416.572 20474415.726 20474416.174
+ 47.800 45.700
+ -3478385.575 4 -2710426.864 3 24029088.033 24029084.160 24029086.843
+ 27.900 20.500
+ -3132053.520 4 -2440557.102 3 23905633.363 23905635.154 23905632.608
+ 24.200 20.500
+ -22831137.115 7 -17790483.113 7 20478827.500 20478824.029 20478826.760
+ 46.500 47.200
+ -10093477.413 6 -7865041.374 5 22799437.233 22799436.637 22799436.633
+ 36.900 33.900
+ -13474996.000 7 -10499986.120 6 21828210.101 21828209.614 21828209.058
+ 42.000 36.500
+ -6137778.927 5 -4782678.892 4 23300448.152 23300448.204 23300448.050
+ 30.600 25.300
+ -4346984.523 4 -3387257.754 3 23805784.829 23805784.840 23805784.970
+ 26.200 22.600
+ -5571724.151 5 -4341587.132 4 23382848.398 23382849.302 23382847.558
+ 33.100 27.100
+ 06 1 1 21 2 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8883295.515 6 -6922041.519 6 21660380.782 21660380.430 21660379.631
+ 41.400 36.600
+ -20924464.076 7 -16304763.816 7 20481876.958 20481876.236 20481876.609
+ 47.800 45.500
+ -3488410.344 4 -2718238.361 3 24027180.384 24027177.043 24027179.294
+ 28.400 22.600
+ -3250468.559 3 -2532828.437 3 23883100.014 23883101.701 23883098.571
+ 22.100 20.500
+ -22870530.920 7 -17821179.578 7 20471330.939 20471327.680 20471330.262
+ 46.600 47.400
+ -10003576.117 6 -7794988.442 5 22816544.988 22816544.295 22816544.244
+ 36.700 34.300
+ -13486109.302 7 -10508645.821 6 21826095.492 21826094.773 21826094.395
+ 42.100 36.500
+ -6205772.498 5 -4835660.843 4 23287510.182 23287509.585 23287509.773
+ 30.200 24.900
+ -4411296.346 4 -3437370.790 4 23793544.598 23793547.032 23793545.649
+ 24.200 24.600
+ -5485898.003 5 -4274709.628 4 23399180.844 23399181.439 23399179.744
+ 33.200 26.200
+ 06 1 1 21 3 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8816886.806 6 -6870294.488 6 21673017.607 21673017.540 21673016.719
+ 41.200 36.400
+ -20884935.787 7 -16273962.548 7 20489399.243 20489398.210 20489398.782
+ 47.800 45.500
+ -3497875.202 4 -2725613.528 3 24025379.776 24025375.766 24025378.376
+ 28.800 22.100
+ -3368754.511 3 -2624999.253 3 23860590.049 23860592.585 23860589.674
+ 22.100 23.400
+ -22909559.848 7 -17851591.716 7 20463903.952 20463900.635 20463903.178
+ 46.500 47.200
+ -9913434.868 6 -7724748.548 5 22833698.866 22833697.755 22833697.616
+ 36.000 34.500
+ -13496615.846 7 -10516832.724 6 21824095.831 21824095.446 21824094.835
+ 42.000 36.900
+ -6273281.690 4 -4888265.368 4 23274662.822 23274662.966 23274662.663
+ 29.200 25.900
+ -4475202.936 3 -3487168.054 3 23781385.688 23781385.482 23781384.974
+ 23.400 21.100
+ -5400003.316 5 -4207778.701 4 23415525.979 23415526.370 23415525.124
+ 32.700 25.900
+ 06 1 1 21 3 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8750154.754 6 -6818295.491 6 21685716.674 21685716.067 21685715.540
+ 41.100 36.100
+ -20845086.081 7 -16242910.830 7 20496981.976 20496981.347 20496981.682
+ 47.600 45.400
+ -3506779.378 4 -2732551.820 3 24023684.783 24023681.609 24023683.736
+ 29.000 23.000
+ -3486908.560 3 -2717067.195 3 23838106.851 23838108.523 23838105.789
+ 22.100 21.600
+ -22948223.569 7 -17881719.283 7 20456546.604 20456543.096 20456545.746
+ 46.400 47.300
+ -9823054.812 6 -7654322.577 5 22850897.918 22850896.373 22850896.559
+ 36.800 33.600
+ -13506515.406 6 -10524546.658 6 21822212.245 21822211.670 21822210.969
+ 41.400 36.600
+ -6340304.387 5 -4940490.829 4 23261909.251 23261909.615 23261908.906
+ 31.600 28.100
+ -4538701.175 4 -3536647.172 3 23769303.184 23769302.149 23769302.256
+ 25.600 19.300
+ -5314041.193 5 -4140795.234 4 23431883.892 23431884.680 23431883.112
+ 33.000 26.200
+ 06 1 1 21 4 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8683099.929 6 -6766044.995 5 21698477.122 21698476.266 21698475.667
+ 40.700 35.900
+ -20804916.021 7 -16211609.477 7 20504626.049 20504625.456 20504625.780
+ 47.500 45.400
+ -3515122.014 4 -2739052.567 3 24022097.685 24022093.975 24022096.112
+ 28.100 23.800
+ -3604928.397 4 -2809030.574 4 23815649.335 23815650.385 23815647.722
+ 24.600 24.900
+ -22986521.899 7 -17911562.124 7 20449258.484 20449255.140 20449257.635
+ 46.200 47.300
+ -9732437.099 6 -7583711.401 5 22868141.437 22868140.412 22868140.507
+ 36.600 33.800
+ -13515807.705 6 -10531787.401 6 21820443.739 21820443.409 21820442.556
+ 41.400 36.500
+ -6406838.299 5 -4992335.392 4 23249248.702 23249248.896 23249248.252
+ 33.400 28.100
+ -4601788.720 4 -3585806.238 3 23757297.124 23757297.717 23757296.588
+ 25.900 23.000
+ -5228012.548 5 -4073759.922 4 23448254.812 23448255.391 23448254.036
+ 33.200 26.500
+ 06 1 1 21 4 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8615722.971 6 -6713543.480 6 21711297.449 21711297.849 21711296.913
+ 41.000 36.000
+ -20764426.991 7 -16180059.588 7 20512330.990 20512330.347 20512330.620
+ 47.600 45.300
+ -3522902.449 4 -2745115.208 3 24020616.428 24020613.574 24020615.468
+ 28.800 23.800
+ -3722811.327 4 -2900887.293 3 23793216.659 23793217.217 23793215.441
+ 27.100 23.400
+ -23024454.246 7 -17941119.787 7 20442040.167 20442036.847 20442039.353
+ 46.200 47.300
+ -9641582.697 6 -7512915.810 5 22885429.974 22885429.685 22885429.640
+ 36.800 33.400
+ -13524492.554 6 -10538554.799 6 21818791.048 21818790.800 21818789.929
+ 41.600 36.900
+ -6472881.187 5 -5043797.326 4 23236680.932 23236681.426 23236680.362
+ 31.500 28.600
+ -4664462.589 4 -3634642.961 3 23745369.037 23745370.448 23745369.833
+ 26.500 21.600
+ -5141918.476 5 -4006673.652 4 23464638.377 23464638.935 23464637.440
+ 33.100 27.100
+ 06 1 1 21 5 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8548024.521 6 -6660791.447 6 21724179.718 21724180.488 21724179.312
+ 40.500 36.400
+ -20723620.033 7 -16148261.956 7 20520096.485 20520095.654 20520096.025
+ 47.600 45.400
+ -3530119.955 4 -2750739.235 3 24019243.406 24019239.443 24019241.870
+ 28.400 22.100
+ -3840554.893 4 -2992635.415 2 23770810.238 23770810.843 23770808.924
+ 24.900 16.100
+ -23062020.743 7 -17970392.368 7 20434891.392 20434888.256 20434890.687
+ 46.300 47.300
+ -9550493.011 6 -7441936.864 5 22902763.773 22902763.330 22902763.688
+ 36.500 32.400
+ -13532569.778 6 -10544848.727 6 21817254.037 21817253.896 21817252.873
+ 41.500 37.300
+ -6538430.894 4 -5094874.961 4 23224206.477 23224207.697 23224206.179
+ 29.900 28.400
+ -4726719.884 4 -3683155.079 3 23733523.466 23733523.130 23733523.156
+ 27.400 22.100
+ -5055759.950 5 -3939537.158 4 23481033.650 23481034.227 23481032.769
+ 32.800 26.800
+ 06 1 1 21 5 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8480005.349 6 -6607789.508 5 21737124.779 21737123.982 21737123.165
+ 40.300 35.600
+ -20682496.687 7 -16116217.786 7 20527921.896 20527921.146 20527921.501
+ 47.500 45.200
+ -3536773.812 4 -2755924.025 3 24017976.574 24017973.515 24017975.486
+ 28.100 21.600
+ -3958156.606 4 -3084272.987 3 23748430.994 23748432.328 23748429.953
+ 25.600 21.100
+ -23099221.041 7 -17999379.603 7 20427812.590 20427809.251 20427811.655
+ 46.200 47.500
+ -9459168.970 5 -7370775.295 5 22920141.907 22920141.455 22920142.005
+ 35.700 32.100
+ -13540039.282 6 -10550669.107 6 21815832.730 21815832.460 21815831.533
+ 41.800 37.000
+ -6603485.109 4 -5145566.538 4 23211827.215 23211827.534 23211826.783
+ 29.500 27.400
+ -4788557.885 4 -3731340.474 3 23721756.988 23721755.363 23721755.879
+ 27.600 21.100
+ -4969537.856 5 -3872351.143 4 23497440.924 23497441.674 23497440.070
+ 32.800 25.600
+ 06 1 1 21 6 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8411665.979 6 -6554538.071 6 21750129.228 21750128.721 21750127.681
+ 39.900 36.200
+ -20641058.069 7 -16083927.949 7 20535807.344 20535806.502 20535806.946
+ 47.400 45.100
+ -3542863.074 4 -2760668.884 3 24016818.079 24016814.774 24016816.695
+ 27.400 22.100
+ -4075614.006 4 -3175798.139 3 23726079.455 23726080.686 23726078.167
+ 25.300 19.900
+ -23136054.514 7 -18028080.994 7 20420803.285 20420800.070 20420802.480
+ 46.100 47.600
+ -9367611.477 6 -7299431.823 5 22937564.654 22937564.719 22937564.658
+ 36.400 32.400
+ -13546900.851 7 -10556015.771 6 21814527.042 21814526.667 21814525.795
+ 42.000 37.100
+ -6668041.682 4 -5195870.315 4 23199542.382 23199541.684 23199542.093
+ 29.200 24.600
+ -4849973.473 4 -3779196.719 3 23710069.550 23710068.504 23710068.814
+ 26.500 21.100
+ -4883253.295 5 -3805116.408 4 23513860.727 23513860.531 23513859.789
+ 32.400 24.600
+ 06 1 1 21 6 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8343007.146 6 -6501037.703 6 21763193.175 21763194.004 21763192.895
+ 40.700 36.200
+ -20599305.267 7 -16051393.294 7 20543752.570 20543751.838 20543752.106
+ 47.300 44.900
+ -3548387.119 4 -2764973.311 3 24015767.451 24015763.776 24015766.022
+ 28.400 23.800
+ -4192924.670 3 -3267208.924 3 23703755.783 23703757.210 23703754.751
+ 22.600 21.600
+ -23172521.080 7 -18056496.487 7 20413863.804 20413860.742 20413863.041
+ 46.200 47.600
+ -9275821.597 6 -7227907.251 5 22955032.540 22955031.383 22955031.849
+ 36.100 31.800
+ -13553154.486 7 -10560888.718 6 21813337.035 21813336.611 21813335.904
+ 42.100 37.100
+ -6732098.444 5 -5245784.645 4 23187352.851 23187352.984 23187352.540
+ 31.800 26.500
+ -4910964.104 4 -3826721.829 3 23698463.019 23698461.865 23698462.793
+ 27.100 21.100
+ -4796907.197 5 -3737833.743 4 23530291.361 23530291.983 23530290.769
+ 32.700 24.900
+ 06 1 1 21 7 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8274029.534 6 -6447288.921 6 21776319.546 21776320.003 21776318.905
+ 40.400 36.000
+ -20557239.922 7 -16018615.100 7 20551757.196 20551756.626 20551756.855
+ 47.200 44.900
+ -3553345.269 4 -2768836.804 3 24014823.192 24014819.742 24014822.527
+ 29.700 21.100
+ -4310085.894 4 -3358503.271 3 23681460.754 23681462.306 23681459.966
+ 26.200 22.100
+ -23208620.385 7 -18084625.803 7 20406994.268 20406991.279 20406993.585
+ 46.300 47.800
+ -9183800.815 5 -7156202.790 5 22972543.193 22972542.893 22972542.547
+ 35.700 34.000
+ -13558800.099 7 -10565287.879 6 21812262.578 21812262.262 21812261.506
+ 42.100 36.900
+ -6795653.306 5 -5295307.882 4 23175259.016 23175259.431 23175258.638
+ 32.400 28.400
+ -4971526.783 4 -3873913.446 3 23686937.147 23686937.571 23686937.327
+ 25.900 22.600
+ -4710500.447 5 -3670503.815 4 23546734.058 23546735.063 23546732.980
+ 32.100 25.900
+ 06 1 1 21 7 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8204733.846 6 -6393292.303 5 21789507.669 21789506.498 21789505.755
+ 40.000 35.500
+ -20514862.913 7 -15985594.052 7 20559821.642 20559820.740 20559821.157
+ 47.400 44.900
+ -3557736.839 4 -2772258.783 4 24013987.633 24013984.381 24013986.408
+ 27.900 24.200
+ -4427095.190 4 -3449679.226 4 23659194.693 23659196.083 23659193.586
+ 26.500 24.200
+ -23244352.350 7 -18112468.876 7 20400195.059 20400191.632 20400194.190
+ 46.300 47.700
+ -9091549.978 6 -7084319.062 5 22990099.212 22990097.600 22990097.975
+ 36.200 33.500
+ -13563837.590 6 -10569213.183 6 21811304.112 21811303.460 21811302.850
+ 41.900 36.800
+ -6858703.995 5 -5344438.258 4 23163260.246 23163260.665 23163260.313
+ 32.100 27.100
+ -5031658.614 4 -3920769.361 3 23675495.488 23675494.753 23675495.254
+ 28.400 22.600
+ -4624033.891 5 -3603127.319 4 23563188.283 23563189.215 23563187.318
+ 31.500 25.900
+ 06 1 1 21 8 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8135120.833 6 -6339048.420 5 21802754.425 21802753.220 21802752.802
+ 40.300 35.100
+ -20472175.586 7 -15952331.194 7 20567944.563 20567943.774 20567944.156
+ 47.500 44.900
+ -3561561.152 4 -2775238.772 3 24013259.837 24013256.666 24013258.341
+ 27.400 23.000
+ -4543950.313 4 -3540735.074 4 23636958.372 23636958.976 23636957.211
+ 26.500 24.600
+ -23279716.578 7 -18140025.400 7 20393465.386 20393462.102 20393464.567
+ 46.400 47.800
+ -8999070.259 6 -7012256.979 5 23007697.562 23007695.808 23007696.205
+ 36.600 32.600
+ -13568266.970 6 -10572664.632 6 21810461.067 21810460.690 21810459.827
+ 41.700 36.700
+ -6921248.588 5 -5393174.283 4 23151358.620 23151359.251 23151358.416
+ 31.600 29.500
+ -5091357.004 4 -3967287.523 3 23664136.358 23664134.314 23664135.310
+ 28.100 21.600
+ -4537508.710 5 -3535705.090 4 23579653.704 23579654.203 23579652.723
+ 31.600 25.900
+ 06 1 1 21 8 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -8065191.130 6 -6284557.758 5 21816059.723 21816060.836 21816059.678
+ 40.400 35.400
+ -20429179.328 7 -15918827.610 7 20576126.454 20576125.689 20576126.061
+ 47.600 44.800
+ -3564817.932 4 -2777776.513 3 24012640.172 24012636.480 24012639.168
+ 28.800 21.100
+ -4660648.388 4 -3631668.531 4 23614751.319 23614752.253 23614750.060
+ 27.600 25.300
+ -23314712.912 7 -18167295.257 8 20386805.794 20386802.510 20386804.963
+ 46.400 48.000
+ -8906362.727 6 -6940017.379 5 23025338.641 23025337.385 23025337.829
+ 36.200 32.000
+ -13572088.163 6 -10575642.175 6 21809733.574 21809733.413 21809732.575
+ 41.700 36.500
+ -6983284.880 5 -5441514.176 4 23139553.948 23139554.021 23139553.556
+ 32.700 28.100
+ -5150619.121 4 -4013465.753 3 23652858.752 23652856.898 23652858.003
+ 28.100 21.100
+ -4450925.993 5 -3468238.058 4 23596129.324 23596130.385 23596128.415
+ 31.000 24.900
+ 06 1 1 21 9 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7994945.433 6 -6229820.854 5 21829428.009 21829427.969 21829427.072
+ 39.800 35.300
+ -20385875.229 7 -15885084.152 7 20584367.040 20584366.238 20584366.631
+ 47.600 44.600
+ -3567506.254 4 -2779871.287 3 24012129.001 24012124.982 24012127.910
+ 28.800 19.900
+ -4777186.992 4 -3722477.764 4 23592574.568 23592575.515 23592573.334
+ 26.800 24.600
+ -23349341.006 7 -18194278.172 7 20380216.204 20380212.857 20380215.492
+ 46.400 47.900
+ -8813428.640 5 -6867601.236 5 23043023.483 23043022.344 23043022.288
+ 34.400 33.000
+ -13575301.360 7 -10578145.951 6 21809122.622 21809121.914 21809121.461
+ 42.100 36.700
+ -7044810.577 5 -5489456.264 4 23127846.107 23127846.093 23127845.585
+ 31.800 29.500
+ -5209442.189 4 -4059301.851 3 23641663.608 23641663.250 23641663.416
+ 27.100 22.100
+ -4364286.405 5 -3400726.704 4 23612616.394 23612617.223 23612615.574
+ 31.300 24.900
+ 06 1 1 21 9 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7924384.471 6 -6174838.321 5 21842857.084 21842855.141 21842854.957
+ 39.500 34.800
+ -20342264.723 7 -15851101.937 7 20592665.858 20592665.062 20592665.460
+ 47.600 44.600
+ -3569625.620 4 -2781522.709 3 24011725.927 24011721.965 24011724.443
+ 29.700 21.100
+ -4893563.837 4 -3813160.906 4 23570428.244 23570429.462 23570427.353
+ 27.400 24.600
+ -23383600.781 7 -18220974.086 8 20373696.777 20373693.451 20373696.059
+ 46.500 48.000
+ -8720268.802 5 -6795009.190 5 23060749.663 23060750.387 23060749.854
+ 34.500 33.100
+ -13577906.505 7 -10580175.920 6 21808626.862 21808626.170 21808625.597
+ 42.200 36.400
+ -7105823.710 5 -5536998.930 4 23116235.595 23116235.592 23116235.305
+ 33.000 28.600
+ -5267823.689 4 -4104793.848 3 23630553.753 23630553.646 23630553.859
+ 27.100 20.500
+ -4277590.593 5 -3333171.522 4 23629114.671 23629115.074 23629113.589
+ 31.500 24.200
+ 06 1 1 21 10 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7853509.005 6 -6119610.710 5 21856342.761 21856342.305 21856341.640
+ 39.800 34.700
+ -20298348.831 7 -15816881.760 7 20601022.511 20601021.936 20601022.260
+ 47.500 44.700
+ -3571175.668 4 -2782730.529 4 24011430.603 24011427.459 24011429.306
+ 29.000 24.900
+ -5009775.942 4 -3903715.721 4 23548313.748 23548315.112 23548312.540
+ 27.100 25.600
+ -23417491.792 7 -18247382.651 8 20367247.511 20367244.199 20367246.752
+ 46.500 48.100
+ -8626884.417 5 -6722242.194 5 23078519.759 23078520.926 23078520.416
+ 35.300 33.400
+ -13579903.648 7 -10581732.116 6 21808246.762 21808246.074 21808245.628
+ 42.400 36.600
+ -7166322.403 5 -5584140.734 4 23104723.090 23104722.844 23104722.860
+ 34.500 26.500
+ -5325760.756 4 -4149939.541 3 23619529.022 23619528.676 23619528.586
+ 27.900 23.400
+ -4190839.554 5 -3265573.335 4 23645622.388 23645622.749 23645621.551
+ 30.800 24.600
+ 06 1 1 21 10 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7782319.787 6 -6064138.603 5 21869888.424 21869889.180 21869888.297
+ 39.700 34.700
+ -20254128.838 7 -15782424.618 7 20609437.434 20609436.694 20609437.070
+ 47.500 44.500
+ -3572155.677 4 -2783494.145 3 24011243.938 24011240.137 24011242.374
+ 28.600 22.600
+ -5125821.247 4 -3994140.563 4 23526230.986 23526232.231 23526229.893
+ 27.100 24.200
+ -23451014.048 7 -18273503.876 8 20360868.372 20360865.107 20360867.684
+ 46.600 48.100
+ -8533276.466 5 -6649300.967 5 23096333.167 23096333.804 23096333.584
+ 34.700 32.300
+ -13581292.945 7 -10582814.669 6 21807982.310 21807981.746 21807981.263
+ 42.300 36.500
+ -7226304.440 5 -5630879.960 4 23093308.896 23093308.496 23093308.569
+ 33.000 27.600
+ -5383250.687 4 -4194736.863 3 23608589.349 23608588.610 23608588.989
+ 27.600 23.000
+ -4104034.310 5 -3197932.886 3 23662140.981 23662140.994 23662140.084
+ 30.200 23.800
+ 06 1 1 21 11 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7710817.569 6 -6008422.601 5 21883495.888 21883495.768 21883494.898
+ 39.300 35.200
+ -20209605.968 7 -15747731.471 7 20617910.016 20617909.133 20617909.534
+ 47.200 44.500
+ -3572565.294 4 -2783813.305 4 24011166.033 24011162.694 24011164.906
+ 29.200 24.200
+ -5241697.190 4 -4084433.413 4 23504181.355 23504181.733 23504180.015
+ 26.500 24.600
+ -23484167.041 7 -18299337.364 8 20354559.718 20354556.318 20354558.946
+ 46.700 48.200
+ -8439446.772 5 -6576186.955 5 23114188.699 23114188.527 23114188.879
+ 35.600 30.600
+ -13582074.480 7 -10583423.645 6 21807833.629 21807832.979 21807832.560
+ 42.300 36.600
+ -7285767.679 5 -5677214.913 4 23081992.948 23081993.438 23081992.522
+ 32.000 28.100
+ -5440290.679 4 -4239183.548 3 23597733.801 23597734.330 23597734.666
+ 28.100 22.600
+ -4017175.907 5 -3130251.022 3 23678670.039 23678669.912 23678669.014
+ 31.000 23.000
+ 06 1 1 21 11 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7639003.219 6 -5952463.401 5 21897162.962 21897161.414 21897161.010
+ 39.100 34.800
+ -20164781.603 7 -15712803.392 7 20626439.673 20626438.911 20626439.285
+ 47.300 44.500
+ -3572403.973 4 -2783687.602 3 24011196.710 24011193.185 24011195.489
+ 27.600 20.500
+ -5357401.082 4 -4174592.203 3 23482163.047 23482163.712 23482161.814
+ 26.800 23.800
+ -23516950.683 7 -18324883.048 8 20348321.243 20348317.754 20348320.380
+ 46.600 48.300
+ -8345396.262 5 -6502900.870 5 23132086.243 23132085.697 23132085.955
+ 33.500 30.100
+ -13582248.500 7 -10583559.236 6 21807800.644 21807799.840 21807799.404
+ 42.100 36.500
+ -7344710.208 5 -5723144.132 4 23070776.930 23070776.324 23070776.383
+ 32.000 26.800
+ -5496878.182 4 -4283277.647 3 23586964.583 23586966.417 23586965.640
+ 27.100 22.600
+ -3930265.220 5 -3062528.407 4 23695207.532 23695208.667 23695207.057
+ 30.800 24.900
+ 06 1 1 21 12 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7566877.396 6 -5896261.491 5 21910887.599 21910886.549 21910886.081
+ 39.200 34.500
+ -20119656.848 7 -15677641.248 7 20635026.830 20635025.872 20635026.333
+ 47.300 44.300
+ -3571671.429 4 -2783116.738 3 24011335.849 24011332.593 24011334.808
+ 28.800 21.600
+ -5472930.472 4 -4264615.035 4 23460178.182 23460179.331 23460176.901
+ 26.500 25.300
+ -23549364.701 7 -18350140.707 8 20342153.079 20342149.591 20342152.250
+ 46.700 48.300
+ -8251125.943 5 -6429443.503 5 23150025.508 23150025.131 23150025.031
+ 33.100 31.800
+ -13581815.153 7 -10583221.552 6 21807882.986 21807882.279 21807881.861
+ 42.200 36.600
+ -7403130.171 5 -5768666.131 4 23059659.552 23059660.155 23059659.237
+ 31.300 29.500
+ -5553010.520 4 -4327017.068 4 23576284.252 23576284.362 23576284.551
+ 28.800 24.600
+ -3843303.129 5 -2994765.766 4 23711756.474 23711757.346 23711755.574
+ 30.600 24.900
+ 06 1 1 21 12 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7494440.754 6 -5839817.374 5 21924669.992 21924670.931 21924669.820
+ 39.100 34.000
+ -20074232.995 7 -15642246.037 7 20643670.845 20643669.674 20643670.247
+ 47.300 44.200
+ -3570367.345 4 -2782100.559 3 24011584.421 24011580.471 24011582.945
+ 29.000 21.600
+ -5588283.086 4 -4354500.097 4 23438227.735 23438228.341 23438226.422
+ 28.100 25.600
+ -23581408.974 7 -18375110.256 8 20336055.322 20336051.700 20336054.530
+ 46.900 48.400
+ -8156636.970 5 -6355815.777 5 23168006.586 23168005.810 23168005.791
+ 33.800 32.000
+ -13580774.590 7 -10582410.713 6 21808081.048 21808080.294 21808079.882
+ 42.200 37.100
+ -7461025.373 5 -5813779.216 4 23048642.403 23048642.424 23048642.253
+ 32.100 27.400
+ -5608685.134 4 -4370399.840 3 23565690.333 23565689.325 23565690.087
+ 28.400 22.600
+ -3756290.370 4 -2926963.622 4 23728314.193 23728315.339 23728313.231
+ 29.900 24.200
+ 06 1 1 21 13 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7421694.314 6 -5783131.855 5 21938513.348 21938514.072 21938513.024
+ 39.200 34.100
+ -20028511.393 7 -15606618.813 7 20652370.875 20652370.245 20652370.588
+ 47.400 44.100
+ -3568491.073 4 -2780638.486 3 24011941.298 24011937.749 24011939.976
+ 27.600 23.400
+ -5703456.171 4 -4444245.250 4 23416310.126 23416311.150 23416309.420
+ 26.200 24.200
+ -23613083.302 7 -18399791.541 8 20330027.888 20330024.365 20330027.052
+ 46.800 48.500
+ -8061930.434 5 -6282018.523 5 23186028.605 23186028.223 23186027.643
+ 34.100 32.000
+ -13579127.125 7 -10581126.958 6 21808394.549 21808393.799 21808393.474
+ 42.200 36.700
+ -7518393.828 5 -5858481.858 4 23037725.535 23037725.806 23037725.349
+ 32.700 29.200
+ -5663899.039 4 -4413423.619 3 23555183.244 23555182.538 23555182.892
+ 28.100 23.000
+ -3669227.774 5 -2859122.631 4 23744881.839 23744883.183 23744881.034
+ 31.300 25.600
+ 06 1 1 21 13 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7348638.754 6 -5726205.477 5 21952417.457 21952416.249 21952415.362
+ 38.500 34.400
+ -19982493.143 7 -15570760.435 7 20661128.045 20661127.133 20661127.607
+ 47.400 44.100
+ -3566042.542 5 -2778730.515 3 24012407.717 24012403.474 24012406.528
+ 30.100 23.000
+ -5818447.179 4 -4533848.557 4 23394429.561 23394429.452 23394427.817
+ 26.800 24.600
+ -23644387.285 7 -18424184.242 8 20324070.694 20324067.417 20324069.883
+ 46.800 48.700
+ -7967007.450 5 -6208052.600 5 23204092.788 23204091.407 23204091.136
+ 34.600 31.000
+ -13576872.965 6 -10579370.460 6 21808823.136 21808822.743 21808822.073
+ 41.600 36.600
+ -7575233.659 5 -5902772.602 4 23026909.634 23026909.558 23026909.264
+ 33.200 28.400
+ -5718649.929 4 -4456086.593 3 23544763.541 23544764.203 23544763.996
+ 28.400 22.600
+ -3582116.309 4 -2791243.588 3 23761458.577 23761459.225 23761457.640
+ 29.900 23.400
+ 06 1 1 21 14 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7275274.863 6 -5669038.834 5 21966377.810 21966376.871 21966376.265
+ 38.600 33.900
+ -19936179.456 7 -15534671.843 7 20669941.067 20669940.368 20669940.693
+ 47.400 44.100
+ -3563021.106 4 -2776376.150 3 24012981.786 24012978.659 24012980.424
+ 27.900 23.000
+ -5933253.760 4 -4623308.150 4 23372581.830 23372582.231 23372580.619
+ 28.100 24.900
+ -23675320.716 7 -18448288.205 8 20318184.289 20318180.867 20318183.454
+ 46.800 48.600
+ -7871869.503 5 -6133919.165 5 23222196.690 23222195.712 23222194.732
+ 32.400 31.800
+ -13574012.387 6 -10577141.432 6 21809367.732 21809367.052 21809366.506
+ 41.900 36.500
+ -7631543.004 5 -5946649.962 4 23016194.426 23016194.001 23016193.884
+ 33.100 28.100
+ -5772935.136 4 -4498386.678 3 23534433.839 23534433.831 23534433.840
+ 28.400 23.000
+ -3494956.904 4 -2723327.183 4 23778044.735 23778045.145 23778043.977
+ 29.700 25.300
+ 06 1 1 21 14 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7201603.504 6 -5611632.605 5 21980395.704 21980395.982 21980395.227
+ 38.900 33.800
+ -19889571.608 7 -15498354.038 7 20678810.459 20678809.491 20678810.015
+ 47.500 43.800
+ -3559426.599 4 -2773575.180 3 24013665.861 24013662.671 24013664.879
+ 28.400 22.600
+ -6047873.448 4 -4712622.062 4 23350769.751 23350770.770 23350769.060
+ 29.700 25.600
+ -23705883.625 7 -18472103.445 8 20312368.254 20312364.989 20312367.438
+ 46.700 48.700
+ -7776517.482 5 -6059618.947 5 23240341.579 23240340.438 23240339.884
+ 33.100 30.600
+ -13570545.773 7 -10574440.166 6 21810027.466 21810026.716 21810026.323
+ 42.000 36.400
+ -7687319.909 5 -5990112.445 4 23005579.597 23005580.209 23005579.480
+ 32.100 29.000
+ -5826752.070 4 -4540321.929 3 23524193.783 23524193.187 23524193.293
+ 29.200 23.400
+ -3407750.195 5 -2655373.914 4 23794640.107 23794639.696 23794639.135
+ 30.200 24.200
+ 06 1 1 21 15 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7127625.520 6 -5553987.443 5 21994472.914 21994473.817 21994472.726
+ 39.100 34.300
+ -19842670.698 7 -15461807.872 7 20687735.541 20687734.522 20687735.074
+ 47.600 43.800
+ -3555258.518 4 -2770327.337 3 24014459.605 24014455.580 24014458.031
+ 27.900 22.600
+ -6162303.753 4 -4801788.457 4 23328994.790 23328995.311 23328993.512
+ 26.800 24.600
+ -23736075.687 7 -18495629.715 8 20306622.867 20306619.560 20306622.074
+ 46.700 48.800
+ -7680952.654 5 -5985152.885 5 23258527.279 23258525.656 23258525.808
+ 34.400 30.800
+ -13566473.394 7 -10571266.880 6 21810802.242 21810801.621 21810801.133
+ 42.200 36.200
+ -7742562.378 5 -6033158.492 4 22995067.764 22995067.913 22995067.488
+ 33.000 29.000
+ -5880098.026 4 -4581890.162 4 23514042.975 23514041.489 23514042.033
+ 29.700 24.600
+ -3320497.206 4 -2587384.579 4 23811243.201 23811243.657 23811242.324
+ 29.000 24.900
+ 06 1 1 21 15 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -7053341.697 6 -5496103.961 5 22008609.423 22008609.321 22008608.415
+ 38.400 34.100
+ -19795478.180 7 -15425034.476 7 20696715.741 20696714.921 20696715.433
+ 47.800 43.700
+ -3550516.954 4 -2766632.580 3 24015361.424 24015357.909 24015360.136
+ 27.600 22.100
+ -6276542.208 4 -4890805.327 4 23307256.289 23307256.372 23307254.758
+ 24.900 25.300
+ -23765896.764 7 -18518866.912 8 20300948.305 20300944.820 20300947.477
+ 47.000 48.800
+ -7585176.484 5 -5910522.139 5 23276752.122 23276751.669 23276751.385
+ 33.100 32.300
+ -13561795.620 6 -10567621.853 6 21811692.435 21811691.657 21811691.382
+ 41.900 36.500
+ -7797268.598 5 -6075786.692 4 22984657.550 22984657.417 22984657.252
+ 33.000 29.200
+ -5932970.555 4 -4623089.475 4 23503981.202 23503980.294 23503980.848
+ 29.700 24.200
+ -3233198.887 4 -2519359.925 3 23827854.749 23827855.512 23827853.952
+ 28.800 22.100
+ 06 1 1 21 16 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6978752.935 6 -5437982.878 5 22022805.139 22022803.431 22022802.857
+ 38.000 34.100
+ -19747995.053 7 -15388034.631 7 20705751.491 20705750.682 20705751.154
+ 47.700 43.800
+ -3545201.331 4 -2762490.543 4 24016373.128 24016369.767 24016371.799
+ 29.000 24.200
+ -6390586.234 5 -4979670.709 4 23285553.919 23285554.329 23285552.696
+ 30.100 25.600
+ -23795346.689 7 -18541814.892 8 20295343.967 20295340.695 20295343.219
+ 47.000 48.900
+ -7489189.796 5 -5835727.380 4 23295017.339 23295016.868 23295017.155
+ 32.600 29.500
+ -13556512.827 6 -10563505.390 6 21812697.721 21812696.961 21812696.516
+ 41.900 36.100
+ -7851436.690 5 -6117995.550 5 22974349.292 22974349.815 22974349.052
+ 33.000 30.400
+ -5985367.066 4 -4663917.877 4 23494008.806 23494008.907 23494009.129
+ 28.800 24.200
+ -3145855.915 4 -2451300.449 3 23844475.900 23844476.229 23844474.998
+ 28.600 22.100
+ 06 1 1 21 16 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6903859.987 6 -5379624.781 5 22037055.744 22037054.981 22037054.121
+ 37.700 34.300
+ -19700222.770 7 -15350809.472 7 20714842.236 20714841.459 20714841.919
+ 47.900 43.900
+ -3539311.833 4 -2757901.299 4 24017493.199 24017490.730 24017492.075
+ 27.100 25.600
+ -6504433.367 4 -5068382.672 4 23263889.055 23263890.014 23263887.997
+ 29.700 24.900
+ -23824425.080 7 -18564473.369 8 20289810.526 20289807.169 20289809.775
+ 47.100 49.000
+ -7392993.827 5 -5760769.509 4 23313322.894 23313322.637 23313323.060
+ 34.000 29.900
+ -13550625.486 6 -10558917.842 6 21813817.963 21813817.365 21813816.821
+ 41.600 36.200
+ -7905064.782 5 -6159783.641 4 22964144.659 22964144.402 22964144.250
+ 33.900 29.500
+ -6037285.146 4 -4704373.463 3 23484130.537 23484129.687 23484130.124
+ 29.500 23.400
+ -3058469.074 5 -2383206.796 3 23861105.678 23861105.847 23861104.731
+ 30.100 21.100
+ 06 1 1 21 17 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6828663.851 6 -5321030.421 5 22051363.226 22051364.389 22051363.284
+ 38.600 34.100
+ -19652162.470 7 -15313359.882 7 20723988.006 20723986.999 20723987.558
+ 47.600 43.700
+ -3532848.088 4 -2752864.623 3 24018723.969 24018720.183 24018722.982
+ 29.200 22.100
+ -6618081.086 4 -5156939.237 4 23242262.806 23242263.934 23242261.650
+ 29.700 27.600
+ -23853131.980 7 -18586842.368 8 20284348.030 20284344.417 20284347.174
+ 47.200 48.800
+ -7296589.912 5 -5685649.624 4 23331666.950 23331667.772 23331667.605
+ 32.100 29.700
+ -13544134.039 6 -10553859.564 6 21815053.296 21815052.731 21815052.233
+ 41.900 36.600
+ -7958151.155 5 -6201149.593 4 22954042.261 22954042.632 22954041.948
+ 33.000 29.200
+ -6088722.289 4 -4744454.312 3 23474342.807 23474341.630 23474342.206
+ 29.500 23.800
+ -2971039.231 4 -2315079.642 3 23877742.807 23877743.099 23877742.017
+ 29.000 22.600
+ 06 1 1 21 17 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6753165.357 6 -5262200.446 5 22065730.475 22065731.402 22065730.047
+ 38.200 33.900
+ -19603815.363 7 -15275686.807 7 20733188.171 20733187.178 20733187.723
+ 47.600 43.700
+ -3525809.832 4 -2747380.264 3 24020063.126 24020059.592 24020061.969
+ 27.900 23.000
+ -6731526.850 4 -5245338.464 4 23220674.432 23220675.160 23220673.427
+ 29.200 25.300
+ -23881466.769 7 -18608921.409 8 20278956.137 20278952.552 20278955.308
+ 47.200 49.000
+ -7199979.400 5 -5610368.750 5 23350051.837 23350052.386 23350052.163
+ 34.500 31.100
+ -13537038.844 6 -10548330.835 6 21816403.490 21816403.006 21816402.383
+ 41.900 36.400
+ -8010693.846 5 -6242091.924 4 22944043.497 22944044.072 22944043.351
+ 33.400 29.500
+ -6139675.896 4 -4784158.367 4 23464646.032 23464644.790 23464645.553
+ 28.400 24.200
+ -2883567.251 4 -2246919.657 3 23894388.059 23894389.302 23894386.937
+ 28.800 23.000
+ 06 1 1 21 18 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6677365.267 6 -5203135.471 5 22080156.745 22080155.643 22080154.844
+ 37.800 33.500
+ -19555182.618 7 -15237791.157 7 20742442.769 20742441.679 20742442.241
+ 47.600 43.600
+ -3518197.067 4 -2741448.212 3 24021511.676 24021507.899 24021510.317
+ 27.100 21.600
+ -6844768.302 4 -5333578.496 4 23199125.846 23199125.742 23199124.331
+ 28.100 24.200
+ -23909430.056 7 -18630710.971 8 20273634.774 20273631.333 20273634.009
+ 47.400 49.200
+ -7103163.487 5 -5534927.777 4 23368475.515 23368475.417 23368475.341
+ 33.000 29.000
+ -13529340.512 6 -10542332.132 6 21817868.490 21817868.059 21817867.233
+ 41.700 36.900
+ -8062691.235 5 -6282609.340 4 22934148.763 22934148.732 22934148.450
+ 32.800 28.100
+ -6190143.381 4 -4823483.647 4 23455040.992 23455041.440 23455041.289
+ 28.800 24.200
+ -2796054.025 4 -2178727.554 3 23911041.403 23911041.716 23911040.275
+ 29.200 22.100
+ 06 1 1 21 18 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6601264.485 6 -5143836.204 5 22094638.805 22094637.104 22094636.633
+ 37.500 33.100
+ -19506265.496 7 -15199673.915 7 20751751.118 20751750.360 20751750.754
+ 47.500 43.600
+ -3510009.788 4 -2735068.493 3 24023069.671 24023065.679 24023068.311
+ 28.800 19.300
+ -6957802.920 4 -5421657.339 4 23177615.431 23177616.369 23177614.158
+ 27.600 26.200
+ -23937021.293 7 -18652210.622 8 20268384.281 20268380.814 20268383.563
+ 47.400 49.200
+ -7006143.022 5 -5459327.470 5 23386936.965 23386937.759 23386937.687
+ 31.500 30.100
+ -13521039.514 7 -10535863.820 6 21819448.189 21819447.689 21819446.984
+ 42.100 36.900
+ -8114141.376 5 -6322700.337 4 22924358.192 22924358.522 22924357.980
+ 33.500 29.200
+ -6240122.459 4 -4862428.330 3 23445530.736 23445530.638 23445530.904
+ 29.000 22.600
+ -2708500.346 5 -2110503.893 3 23927702.298 23927702.694 23927701.473
+ 30.200 22.600
+ 06 1 1 21 19 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6524864.028 6 -5084303.420 5 22109175.362 22109175.675 22109174.620
+ 38.000 33.400
+ -19457065.125 7 -15161335.955 7 20761113.735 20761112.773 20761113.330
+ 47.500 43.600
+ -3501247.796 4 -2728240.935 3 24024736.389 24024733.242 24024735.586
+ 28.100 21.100
+ -7070628.111 4 -5509572.984 4 23156145.221 23156146.703 23156144.180
+ 28.800 28.100
+ -23964240.313 7 -18673420.233 8 20263204.735 20263201.168 20263204.019
+ 47.400 49.100
+ -6908919.334 5 -5383568.805 5 23405437.765 23405439.305 23405438.934
+ 32.600 30.600
+ -13512136.356 6 -10528926.293 6 21821142.337 21821141.739 21821141.210
+ 41.700 36.500
+ -8165042.493 5 -6362363.506 4 22914671.993 22914671.953 22914671.794
+ 33.200 27.600
+ -6289610.685 4 -4900990.537 4 23436114.646 23436113.451 23436114.028
+ 29.500 24.600
+ -2620906.818 4 -2042249.204 3 23944371.516 23944370.923 23944370.436
+ 29.000 20.500
+ 06 1 1 21 19 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6448164.693 6 -5024537.716 5 22123770.714 22123770.784 22123769.979
+ 37.200 32.400
+ -19407582.739 7 -15122778.249 7 20770529.791 20770528.878 20770529.484
+ 47.500 43.400
+ -3491910.944 4 -2720965.463 3 24026514.252 24026509.803 24026512.745
+ 29.900 22.600
+ -7183241.540 4 -5597323.634 4 23134715.858 23134716.704 23134714.558
+ 28.100 26.200
+ -23991086.933 7 -18694339.666 8 20258095.942 20258092.417 20258095.221
+ 47.400 49.100
+ -6811494.018 5 -5307653.027 4 23423978.241 23423978.835 23423978.199
+ 31.600 29.700
+ -13502631.641 7 -10521520.013 6 21822951.084 21822950.143 21822949.976
+ 42.200 36.300
+ -8215393.022 5 -6401597.653 4 22905090.517 22905090.780 22905090.245
+ 33.600 29.200
+ -6338605.777 4 -4939168.479 3 23426790.434 23426789.525 23426789.930
+ 29.000 23.400
+ -2533274.407 5 -1973964.197 3 23961046.714 23961047.096 23961046.105
+ 30.800 22.100
+ 06 1 1 21 20 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6371167.346 6 -4964539.820 5 22138422.976 22138423.559 22138422.090
+ 37.200 33.000
+ -19357819.704 7 -15084001.851 7 20779999.472 20779998.486 20779999.063
+ 47.700 43.400
+ -3481999.274 4 -2713242.053 3 24028400.259 24028396.189 24028398.976
+ 27.900 21.600
+ -7295640.653 4 -5684907.271 4 23113326.866 23113327.861 23113325.429
+ 29.500 26.800
+ -24017561.103 7 -18714968.879 8 20253057.956 20253054.519 20253057.246
+ 47.300 49.200
+ -6713868.132 5 -5231580.925 5 23442557.009 23442556.595 23442556.083
+ 33.200 31.100
+ -13492525.896 6 -10513645.404 6 21824873.903 21824873.363 21824872.853
+ 41.900 36.200
+ -8265191.257 5 -6440401.460 4 22895613.910 22895614.314 22895613.775
+ 33.500 29.200
+ -6387105.222 4 -4976960.199 3 23417561.069 23417560.131 23417560.990
+ 28.600 23.800
+ -2445603.809 5 -1905649.449 3 23977729.942 23977730.522 23977729.054
+ 30.400 23.000
+ 06 1 1 21 20 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6293873.087 6 -4904310.563 5 22153132.316 22153131.680 22153130.953
+ 37.200 32.600
+ -19307777.030 7 -15045007.555 7 20789522.151 20789521.398 20789521.806
+ 47.700 43.500
+ -3471512.791 4 -2705070.750 3 24030395.153 24030391.800 24030394.060
+ 27.600 21.600
+ -7407823.124 4 -5772322.123 4 23091979.335 23091980.169 23091978.146
+ 29.000 27.900
+ -24043662.602 7 -18735307.693 8 20248091.019 20248087.576 20248090.236
+ 47.300 49.300
+ -6616042.889 5 -5155353.521 4 23461172.256 23461171.813 23461171.931
+ 33.200 29.700
+ -13481819.846 7 -10505303.018 5 21826911.425 21826910.615 21826910.329
+ 42.000 35.900
+ -8314435.379 5 -6478773.467 4 22886243.997 22886243.265 22886243.410
+ 34.000 29.200
+ -6435106.596 4 -5014363.797 3 23408426.203 23408425.819 23408426.475
+ 29.200 22.600
+ -2357895.881 4 -1837305.619 3 23994420.626 23994420.761 23994419.648
+ 29.700 23.800
+ 06 1 1 21 21 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6216282.583 6 -4843850.468 5 22167897.498 22167896.850 22167896.035
+ 37.600 32.600
+ -19257456.204 7 -15005796.514 7 20799097.924 20799097.146 20799097.542
+ 47.600 43.300
+ -3460451.550 4 -2696451.589 3 24032499.529 24032496.593 24032498.623
+ 25.300 23.000
+ -7519786.637 4 -5859566.341 4 23070672.670 23070673.816 23070671.990
+ 29.000 27.100
+ -24069391.211 7 -18755355.943 8 20243194.970 20243191.490 20243194.251
+ 47.400 49.200
+ -6518019.368 5 -5078971.592 5 23479824.997 23479825.534 23479824.567
+ 30.400 31.600
+ -13470514.126 6 -10496493.364 6 21829062.794 21829061.963 21829061.564
+ 41.600 36.200
+ -8363123.620 5 -6516712.333 4 22876978.496 22876978.188 22876978.216
+ 34.100 29.000
+ -6482607.441 4 -5051377.404 4 23399388.090 23399387.247 23399387.569
+ 28.800 24.600
+ -2270151.385 4 -1768933.299 4 24011118.407 24011117.421 24011117.473
+ 29.900 24.600
+ 06 1 1 21 21 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6138397.045 6 -4783160.475 5 22182718.567 22182717.954 22182717.191
+ 37.700 32.600
+ -19206858.124 7 -14966369.438 7 20808726.440 20808725.714 20808726.063
+ 47.500 43.600
+ -3448815.630 4 -2687384.596 3 24034714.920 24034711.346 24034713.112
+ 27.400 23.000
+ -7631528.395 5 -5946637.777 4 23049409.303 23049410.088 23049408.250
+ 31.100 27.600
+ -24094746.975 7 -18775113.670 8 20238370.116 20238366.353 20238369.355
+ 47.500 49.200
+ -6419799.082 5 -5002436.368 4 23498516.246 23498515.868 23498515.403
+ 30.400 29.200
+ -13458609.274 6 -10487216.850 6 21831328.039 21831327.278 21831327.003
+ 41.500 36.400
+ -8411254.506 5 -6554216.901 5 22867819.031 22867819.570 22867818.807
+ 33.500 30.200
+ -6529605.330 4 -5087999.091 3 23390444.737 23390443.760 23390444.042
+ 29.000 23.800
+ -2182371.208 4 -1700533.167 3 24027821.016 24027821.763 24027820.030
+ 28.100 23.000
+ 06 1 1 21 22 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -6060217.268 6 -4722241.200 5 22197594.359 22197595.117 22197593.903
+ 37.200 32.400
+ -19155984.071 7 -14926727.317 7 20818407.623 20818406.798 20818407.162
+ 47.600 43.600
+ -3436604.857 4 -2677869.691 3 24037037.293 24037033.790 24037036.289
+ 26.800 19.300
+ -7743046.039 4 -6033534.574 4 23028188.263 23028189.353 23028186.941
+ 28.400 27.400
+ -24119729.568 7 -18794580.612 8 20233616.025 20233612.434 20233615.245
+ 47.500 49.400
+ -6321383.101 5 -4925748.646 4 23517245.020 23517243.821 23517243.634
+ 32.400 29.200
+ -13446106.084 6 -10477474.100 6 21833707.294 21833706.662 21833706.188
+ 41.500 36.300
+ -8458826.392 5 -6591285.881 5 22858766.365 22858766.763 22858766.258
+ 33.900 30.100
+ -6576098.194 5 -5124227.249 3 23381597.139 23381595.723 23381597.046
+ 30.200 23.000
+ -2094555.973 4 -1632105.730 3 24044532.275 24044532.488 24044531.457
+ 29.500 23.000
+ 06 1 1 21 22 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5981744.275 6 -4661093.441 5 22212526.732 22212527.902 22212526.815
+ 36.500 32.100
+ -19104835.384 7 -14886871.196 7 20828140.779 20828139.984 20828140.431
+ 47.400 43.400
+ -3423819.257 4 -2667906.862 3 24039470.772 24039467.385 24039469.679
+ 28.100 21.600
+ -7854337.086 5 -6120254.819 4 23007010.170 23007011.236 23007009.056
+ 30.200 28.800
+ -24144338.768 7 -18813756.597 8 20228933.066 20228929.587 20228932.332
+ 47.600 49.600
+ -6222772.730 5 -4848909.422 4 23536009.741 23536008.434 23536008.479
+ 31.500 27.600
+ -13433005.277 6 -10467265.679 6 21836200.497 21836199.854 21836199.198
+ 41.300 36.600
+ -8505837.539 5 -6627917.913 5 22849821.383 22849820.943 22849820.822
+ 33.900 30.400
+ -6622083.661 4 -5160060.058 3 23372845.854 23372844.992 23372845.932
+ 29.900 23.400
+ -2006706.435 4 -1563651.569 3 24061249.140 24061250.396 24061248.360
+ 28.800 23.800
+ 06 1 1 21 23 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5902978.859 6 -4599717.829 5 22227516.528 22227516.781 22227515.569
+ 36.500 32.100
+ -19053413.102 7 -14846801.886 7 20837925.951 20837925.305 20837925.603
+ 47.400 43.100
+ -3410459.440 4 -2657496.578 3 24042013.561 24042009.238 24042012.022
+ 28.100 19.900
+ -7965399.262 4 -6206796.704 4 22985875.795 22985876.242 22985874.602
+ 28.600 26.800
+ -24168574.975 7 -18832641.944 8 20224321.147 20224317.538 20224320.307
+ 47.600 49.600
+ -6123969.218 5 -4771919.697 4 23554811.921 23554810.687 23554810.660
+ 33.400 29.900
+ -13419307.590 6 -10456592.152 6 21838806.979 21838806.648 21838805.883
+ 41.700 36.600
+ -8552286.414 5 -6664111.801 5 22840982.478 22840981.784 22840982.025
+ 34.000 30.400
+ -6667559.494 4 -5195495.716 4 23364192.074 23364191.716 23364191.846
+ 29.700 25.300
+ -1918823.370 4 -1495171.255 3 24077973.508 24077973.562 24077972.487
+ 27.400 21.600
+ 06 1 1 21 23 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5823922.241 6 -4538115.300 5 22242562.108 22242560.694 22242560.166
+ 36.500 32.000
+ -19001718.487 7 -14806520.371 7 20847763.348 20847762.337 20847762.872
+ 47.400 43.100
+ -3396525.259 4 -2646638.762 3 24044664.602 24044661.384 24044663.597
+ 25.900 22.600
+ -8076229.997 5 -6293158.247 4 22964785.152 22964785.671 22964783.940
+ 30.200 26.200
+ -24192437.537 7 -18851236.133 8 20219780.110 20219776.616 20219779.269
+ 47.300 49.700
+ -6024973.988 5 -4694780.605 4 23573650.094 23573648.439 23573648.496
+ 31.000 27.100
+ -13405013.717 6 -10445454.077 6 21841527.090 21841526.798 21841525.943
+ 41.700 37.400
+ -8598171.343 5 -6699866.261 5 22832250.205 22832250.329 22832249.889
+ 33.500 31.100
+ -6712523.290 5 -5230532.408 3 23355636.427 23355635.362 23355635.764
+ 30.100 22.600
+ -1830907.271 4 -1426665.233 3 24094703.515 24094703.447 24094702.406
+ 27.600 23.000
+ 06 1 1 21 24 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5744575.112 6 -4476286.410 5 22257660.681 22257660.196 22257659.310
+ 36.600 32.400
+ -18949752.644 7 -14766027.510 7 20857652.112 20857651.250 20857651.649
+ 47.400 43.100
+ -3382016.736 4 -2635333.392 3 24047425.636 24047422.093 24047424.527
+ 28.400 21.600
+ -8186826.680 4 -6379337.419 4 22943739.085 22943740.246 22943738.068
+ 29.900 27.900
+ -24215926.386 7 -18869539.117 8 20215310.285 20215306.765 20215309.511
+ 47.300 49.700
+ -5925788.270 4 -4617493.082 4 23592523.686 23592523.621 23592522.440
+ 29.500 29.200
+ -13390124.541 6 -10433852.117 6 21844360.386 21844359.985 21844359.245
+ 41.800 37.000
+ -8643490.972 5 -6735180.224 5 22823625.880 22823626.411 22823625.882
+ 34.000 31.300
+ -6756972.857 5 -5265168.403 4 23347177.814 23347176.397 23347177.355
+ 30.400 24.900
+ -1742959.172 4 -1358134.257 3 24111438.548 24111439.210 24111437.928
+ 27.600 21.600
+ 06 1 1 21 24 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5664938.632 6 -4414232.034 5 22272813.670 22272814.234 22272813.481
+ 36.600 32.300
+ -18897516.921 7 -14725324.353 7 20867592.095 20867591.322 20867591.711
+ 47.400 42.800
+ -3366934.034 4 -2623580.647 3 24050296.376 24050292.085 24050294.916
+ 29.200 19.900
+ -8297187.038 5 -6465332.446 4 22922738.923 22922739.181 22922737.637
+ 31.300 28.800
+ -24239041.558 7 -18887550.924 8 20210911.571 20210908.084 20210910.754
+ 47.100 49.700
+ -5826413.126 4 -4540057.947 4 23611434.752 23611432.914 23611433.118
+ 27.900 25.600
+ -13374640.827 6 -10421786.882 6 21847306.903 21847306.359 21847305.818
+ 41.500 37.000
+ -8688243.572 5 -6770052.346 5 22815110.280 22815109.786 22815109.866
+ 34.600 30.100
+ -6800905.794 4 -5299401.812 4 23338816.147 23338816.531 23338816.427
+ 29.500 24.900
+ -1654979.615 4 -1289578.767 3 24128181.267 24128181.532 24128180.190
+ 27.900 22.600
+ 06 1 1 21 25 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5585013.736 6 -4351952.915 5 22288022.779 22288023.703 22288022.489
+ 36.700 31.800
+ -18845012.316 7 -14684411.675 7 20877583.372 20877582.686 20877583.071
+ 47.500 42.900
+ -3351277.667 4 -2611380.826 3 24053274.831 24053271.355 24053273.770
+ 26.500 21.100
+ -8407308.662 4 -6551141.419 4 22901782.641 22901783.342 22901781.596
+ 29.200 28.100
+ -24261782.921 7 -18905271.455 8 20206583.822 20206580.596 20206583.205
+ 47.500 49.900
+ -5726850.086 5 -4462476.401 4 23630380.910 23630380.248 23630379.583
+ 30.200 28.400
+ -13358563.398 6 -10409259.017 6 21850366.467 21850365.551 21850365.291
+ 41.700 36.500
+ -8732427.863 5 -6804481.646 5 22806702.441 22806702.217 22806701.875
+ 34.500 31.000
+ -6844320.449 5 -5333231.385 4 23330555.560 23330555.026 23330555.416
+ 31.000 26.200
+ -1566969.400 4 -1220999.387 3 24144928.412 24144929.507 24144927.689
+ 28.600 19.300
+ 06 1 1 21 25 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5504801.446 6 -4289449.867 5 22303288.787 22303287.417 22303286.841
+ 36.400 31.800
+ -18792240.240 7 -14643290.577 7 20887625.522 20887624.817 20887625.227
+ 47.500 42.900
+ -3335048.257 4 -2598734.524 3 24056362.972 24056359.832 24056361.886
+ 25.600 22.100
+ -8517189.151 5 -6636762.523 4 22880873.297 22880874.025 22880872.175
+ 31.000 27.900
+ -24284150.619 7 -18922700.821 8 20202327.698 20202324.173 20202326.888
+ 47.400 50.000
+ -5627100.546 5 -4384749.507 4 23649361.892 23649360.998 23649361.386
+ 30.400 25.300
+ -13341893.191 6 -10396269.241 6 21853538.418 21853537.735 21853537.383
+ 41.500 36.200
+ -8776042.128 5 -6838466.754 5 22798402.671 22798402.522 22798402.242
+ 34.100 31.300
+ -6887213.719 5 -5366654.698 4 23322394.340 23322392.747 23322393.733
+ 31.000 25.900
+ -1478929.110 4 -1152396.583 3 24161681.954 24161682.720 24161680.955
+ 27.400 21.100
+ 06 1 1 21 26 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5424302.799 6 -4226723.672 5 22318607.813 22318605.743 22318605.604
+ 36.100 31.800
+ -18739201.663 7 -14601961.815 7 20897718.556 20897717.666 20897718.211
+ 47.600 42.600
+ -3318245.195 4 -2585641.182 3 24059560.679 24059557.321 24059559.628
+ 27.400 22.100
+ -8626825.839 4 -6722193.650 4 22860009.995 22860011.032 22860008.776
+ 29.500 29.500
+ -24306144.307 7 -18939838.745 8 20198142.300 20198138.894 20198141.537
+ 47.400 50.000
+ -5527165.626 5 -4306878.213 4 23668379.643 23668378.944 23668378.809
+ 32.700 29.900
+ -13324631.153 6 -10382818.310 6 21856823.302 21856822.583 21856822.167
+ 41.100 36.500
+ -8819084.993 5 -6872006.628 5 22790211.625 22790211.814 22790211.306
+ 34.400 31.100
+ -6929584.027 4 -5399670.491 4 23314330.698 23314329.533 23314330.210
+ 29.000 24.900
+ -1390859.612 4 -1083770.986 3 24178441.538 24178441.671 24178440.545
+ 27.400 21.100
+ 06 1 1 21 26 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5343518.710 6 -4163775.068 5 22333979.564 22333978.559 22333977.968
+ 36.300 31.500
+ -18685897.671 7 -14560426.238 7 20907861.692 20907861.219 20907861.498
+ 47.500 42.600
+ -3300868.992 4 -2572101.286 3 24062867.465 24062864.101 24062866.353
+ 26.200 20.500
+ -8736216.638 4 -6807433.160 4 22839193.649 22839194.290 22839192.501
+ 29.700 28.400
+ -24327763.809 7 -18956685.097 8 20194028.287 20194024.864 20194027.442
+ 47.300 50.100
+ -5427046.615 5 -4228863.425 5 23687431.865 23687431.058 23687430.516
+ 30.400 30.100
+ -13306778.093 6 -10368906.832 5 21860220.679 21860219.580 21860219.415
+ 41.000 35.800
+ -8861554.952 5 -6905100.073 5 22782129.806 22782130.139 22782129.442
+ 34.500 30.600
+ -6971429.161 5 -5432277.053 3 23306367.700 23306366.198 23306367.572
+ 30.400 23.800
+ -1302761.703 4 -1015123.289 3 24195206.275 24195206.296 24195205.281
+ 28.600 22.100
+ 06 1 1 21 27 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5262450.396 5 -4100604.970 5 22349402.957 22349405.759 22349404.258
+ 35.800 32.300
+ -18632329.796 7 -14518685.038 7 20918055.625 20918054.746 20918055.231
+ 47.700 42.400
+ -3282920.187 4 -2558115.214 3 24066282.785 24066279.008 24066281.107
+ 27.100 20.500
+ -8845358.902 5 -6892479.002 4 22818424.385 22818424.758 22818423.222
+ 30.400 27.900
+ -24349009.049 7 -18973239.821 8 20189985.348 20189982.031 20189984.567
+ 47.500 50.200
+ -5326744.660 4 -4150706.112 4 23706517.200 23706517.893 23706516.980
+ 29.900 29.900
+ -13288334.968 6 -10354535.565 5 21863729.938 21863729.274 21863728.968
+ 41.400 35.500
+ -8903450.490 5 -6937745.919 5 22774157.542 22774156.995 22774157.293
+ 34.700 30.100
+ -7012746.904 5 -5464472.664 4 23298504.761 23298504.542 23298504.902
+ 30.100 25.600
+ -1214636.056 4 -946453.968 3 24211974.599 24211976.054 24211973.820
+ 26.500 21.100
+ 06 1 1 21 27 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5181098.693 5 -4037214.062 5 22364884.264 22364886.217 22364884.948
+ 35.400 31.600
+ -18578498.969 7 -14476738.937 7 20928299.065 20928298.434 20928298.787
+ 47.500 42.300
+ -3264399.072 4 -2543683.172 3 24069806.557 24069804.207 24069806.011
+ 26.800 21.600
+ -8954250.133 5 -6977329.275 4 22797703.344 22797703.467 22797702.147
+ 31.500 28.800
+ -24369880.180 7 -18989503.025 8 20186013.828 20186010.322 20186013.009
+ 47.600 50.100
+ -5226260.896 5 -4072407.122 4 23725639.050 23725639.167 23725638.775
+ 30.100 28.100
+ -13269302.781 6 -10339705.287 5 21867351.759 21867351.118 21867350.681
+ 41.400 35.900
+ -8944770.393 5 -6969943.237 5 22766294.982 22766294.670 22766294.455
+ 35.100 31.100
+ -7053535.082 4 -5496255.628 4 23290743.464 23290742.702 23290742.999
+ 29.700 25.600
+ -1126483.488 4 -877763.649 3 24228750.771 24228750.297 24228749.853
+ 27.400 19.300
+ 06 1 1 21 28 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5099464.780 5 -3973603.232 5 22380421.254 22380420.542 22380419.767
+ 35.100 31.000
+ -18524406.356 7 -14434588.847 7 20938592.840 20938591.884 20938592.415
+ 47.400 42.200
+ -3245305.820 4 -2528805.296 3 24073441.249 24073437.048 24073439.946
+ 27.900 18.600
+ -9062888.249 5 -7061982.299 4 22777030.134 22777030.648 22777028.918
+ 31.800 29.200
+ -24390376.846 7 -19005474.439 8 20182113.433 20182109.900 20182112.604
+ 47.500 50.100
+ -5125597.144 4 -3993967.865 4 23744794.195 23744794.491 23744793.944
+ 29.500 27.400
+ -13249682.505 6 -10324416.755 6 21871085.677 21871084.914 21871084.500
+ 41.400 36.100
+ -8985513.230 5 -7001690.873 5 22758541.478 22758541.354 22758541.123
+ 34.700 30.200
+ -7093791.526 5 -5527624.262 4 23283082.908 23283081.791 23283082.699
+ 30.800 24.600
+ -1038304.344 4 -809052.656 3 24245530.234 24245530.563 24245529.262
+ 27.400 18.600
+ 06 1 1 21 28 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -5017549.616 5 -3909773.271 5 22396011.355 22396008.249 22396008.782
+ 34.400 30.200
+ -18470052.988 7 -14392235.574 7 20948936.010 20948934.884 20948935.503
+ 47.200 42.100
+ -3225641.078 4 -2513482.116 3 24077182.267 24077179.043 24077181.157
+ 25.600 20.500
+ -9171270.593 5 -7146436.004 4 22756405.921 22756405.838 22756404.634
+ 32.600 29.200
+ -24410498.831 7 -19021153.896 8 20178284.435 20178280.790 20178283.644
+ 47.600 50.200
+ -5024754.894 5 -3915389.494 4 23763984.737 23763984.684 23763984.338
+ 32.400 27.900
+ -13229475.048 6 -10308670.687 6 21874931.245 21874930.597 21874930.147
+ 41.600 36.500
+ -9025677.592 5 -7032987.752 5 22750898.239 22750898.286 22750898.005
+ 34.500 30.100
+ -7133514.335 5 -5558577.074 4 23275523.514 23275522.808 23275523.603
+ 30.600 26.200
+ -950099.347 4 -740321.444 3 24262314.736 24262315.841 24262313.977
+ 27.900 21.100
+ 06 1 1 21 29 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4935354.332 5 -3845725.027 5 22411650.038 22411649.875 22411648.915
+ 35.100 31.100
+ -18415440.368 7 -14349680.283 6 20959328.177 20959327.369 20959327.767
+ 47.100 41.900
+ -3205405.090 4 -2497713.797 3 24081033.833 24081029.995 24081032.458
+ 27.400 21.100
+ -9279394.715 5 -7230688.502 4 22735830.607 22735830.532 22735829.269
+ 32.600 27.400
+ -24430246.487 7 -19036541.669 8 20174526.522 20174522.920 20174525.707
+ 47.800 50.100
+ -4923734.979 4 -3836672.700 4 23783207.779 23783207.655 23783207.468
+ 29.200 24.900
+ -13208681.658 6 -10292468.041 6 21878888.023 21878887.552 21878886.873
+ 41.200 36.800
+ -9065262.047 5 -7063832.773 4 22743365.768 22743365.423 22743365.335
+ 34.500 29.900
+ -7172701.550 5 -5589112.520 4 23268066.744 23268066.015 23268066.642
+ 30.400 26.200
+ -861869.531 4 -671570.976 3 24279103.895 24279105.536 24279103.087
+ 27.400 22.100
+ 06 1 1 21 29 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4852879.966 5 -3781459.320 5 22427342.741 22427344.143 22427343.050
+ 35.500 30.400
+ -18360569.573 7 -14306923.820 7 20969769.784 20969768.931 20969769.382
+ 47.100 42.000
+ -3184598.423 4 -2481500.790 4 24084992.508 24084989.970 24084991.553
+ 27.600 24.600
+ -9387258.463 5 -7314738.120 5 22715304.113 22715305.078 22715303.241
+ 31.800 31.000
+ -24449619.675 7 -19051637.648 8 20170839.787 20170836.323 20170839.018
+ 47.600 50.200
+ -4822539.003 4 -3757818.737 4 23802464.751 23802465.102 23802464.871
+ 29.900 27.900
+ -13187303.296 6 -10275809.581 6 21882956.025 21882955.743 21882954.870
+ 41.300 36.800
+ -9104265.412 5 -7094224.978 5 22735943.143 22735943.715 22735942.771
+ 34.000 30.200
+ -7211350.951 5 -5619228.894 4 23260712.505 23260711.032 23260712.037
+ 31.500 26.200
+ -773615.403 4 -602801.507 3 24295899.056 24295899.486 24295898.098
+ 27.600 19.900
+ 06 1 1 21 30 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4770127.539 5 -3716976.920 4 22443089.749 22443091.243 22443090.224
+ 34.900 29.900
+ -18305441.590 7 -14263966.949 6 20980260.304 20980259.468 20980259.929
+ 47.200 41.900
+ -3163221.313 4 -2464843.301 3 24089060.793 24089057.633 24089059.460
+ 27.900 23.000
+ -9494859.413 5 -7398582.974 5 22694828.192 22694829.232 22694827.343
+ 32.700 31.100
+ -24468618.071 7 -19066441.582 8 20167224.626 20167221.113 20167223.753
+ 47.600 50.300
+ -4721168.080 4 -3678828.460 4 23821754.084 23821755.493 23821754.176
+ 28.100 26.200
+ -13165340.982 6 -10258696.083 6 21887135.015 21887134.886 21887133.895
+ 41.000 36.500
+ -9142686.341 5 -7124163.353 5 22728632.159 22728632.239 22728631.813
+ 34.700 30.600
+ -7249460.526 4 -5648924.633 4 23253460.069 23253458.638 23253459.497
+ 29.900 25.300
+ -685337.621 4 -534013.627 2 24312697.731 24312698.146 24312696.651
+ 25.900 17.800
+ 06 1 1 21 30 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4687098.169 5 -3652278.747 5 22458891.705 22458891.807 22458890.272
+ 34.300 31.800
+ -18250057.748 7 -14220810.709 6 20990799.552 20990798.685 20990799.109
+ 47.000 41.900
+ -3141274.489 4 -2447741.861 3 24093237.012 24093234.072 24093235.926
+ 27.600 23.800
+ -9602195.080 5 -7482221.105 4 22674403.379 22674403.781 22674402.050
+ 32.300 29.900
+ -24487241.885 7 -19080953.638 8 20163680.345 20163677.080 20163679.619
+ 47.500 50.200
+ -4619623.555 4 -3599702.877 4 23841077.526 23841078.713 23841078.288
+ 29.500 28.800
+ -13142796.024 6 -10241128.577 6 21891424.934 21891425.080 21891423.917
+ 40.700 36.200
+ -9180523.495 5 -7153646.830 5 22721432.129 22721432.142 22721431.901
+ 35.200 31.100
+ -7287028.362 5 -5678198.222 4 23246311.204 23246310.559 23246310.770
+ 31.000 27.100
+ -597036.938 4 -465207.915 3 24329500.522 24329501.443 24329499.666
+ 25.300 20.500
+ 06 1 1 21 31 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4603793.040 5 -3587365.720 5 22474745.773 22474743.861 22474743.439
+ 34.000 30.400
+ -18194419.019 7 -14177455.856 6 21001387.180 21001386.370 21001386.770
+ 47.000 41.900
+ -3118758.441 4 -2430196.886 3 24097521.288 24097518.512 24097520.043
+ 25.900 22.100
+ -9709263.097 5 -7565650.665 4 22654028.955 22654029.238 22654027.703
+ 31.800 29.900
+ -24505490.912 7 -19095173.644 8 20160207.884 20160204.324 20160207.083
+ 47.600 50.200
+ -4517906.909 4 -3520443.194 4 23860433.504 23860434.436 23860434.080
+ 28.600 26.500
+ -13119669.366 6 -10223107.797 6 21895825.963 21895825.834 21895824.927
+ 40.700 36.500
+ -9217775.699 5 -7182674.506 5 22714343.201 22714342.992 22714343.039
+ 34.600 31.000
+ -7324052.412 5 -5707048.086 4 23239265.866 23239264.890 23239265.586
+ 31.500 27.100
+ -508713.880 4 -396384.744 3 24346307.638 24346308.669 24346306.848
+ 27.400 20.500
+ 06 1 1 21 31 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4520213.177 5 -3522238.598 5 22490649.367 22490648.973 22490647.763
+ 33.900 31.300
+ -18138526.716 7 -14133903.414 6 21012023.170 21012022.288 21012022.747
+ 47.100 41.600
+ -3095673.428 4 -2412208.541 3 24101914.699 24101911.085 24101913.737
+ 27.900 21.600
+ -9816060.982 5 -7648869.736 4 22633705.419 22633706.158 22633704.522
+ 32.100 29.500
+ -24523365.000 7 -19109101.494 8 20156806.427 20156802.912 20156805.703
+ 47.700 50.200
+ -4416019.369 4 -3441050.331 4 23879822.233 23879823.276 23879823.095
+ 29.500 27.100
+ -13095962.250 6 -10204634.719 6 21900337.559 21900337.168 21900336.411
+ 41.200 36.400
+ -9254441.696 5 -7211245.387 5 22707365.656 22707366.024 22707365.432
+ 34.700 31.800
+ -7360530.648 5 -5735472.650 4 23232323.835 23232323.243 23232323.449
+ 30.600 26.200
+ -420369.294 4 -327544.769 3 24363119.209 24363119.633 24363118.203
+ 24.900 18.600
+ 06 1 1 21 32 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4436359.596 5 -3456898.185 5 22506604.294 22506605.593 22506604.446
+ 34.700 30.400
+ -18082381.986 7 -14090154.270 6 21022707.140 21022706.209 21022706.707
+ 46.900 41.600
+ -3072020.236 4 -2393777.486 3 24106416.170 24106412.325 24106414.764
+ 28.100 23.000
+ -9922586.351 5 -7731876.459 4 22613435.030 22613434.806 22613433.583
+ 32.700 29.500
+ -24540864.318 7 -19122737.316 8 20153476.448 20153472.865 20153475.665
+ 47.600 50.100
+ -4313962.415 5 -3361525.450 3 23899244.575 23899243.139 23899244.199
+ 32.400 23.800
+ -13071675.786 6 -10185710.202 6 21904959.067 21904958.688 21904957.875
+ 40.800 36.300
+ -9290520.316 5 -7239358.576 5 22700500.687 22700500.318 22700500.332
+ 34.900 31.100
+ -7396461.363 5 -5763470.556 4 23225487.507 23225485.849 23225486.880
+ 32.100 25.600
+ -332003.426 3 -258688.260 3 24379933.894 24379935.597 24379933.110
+ 22.100 22.100
+ 06 1 1 21 32 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4352233.527 5 -3391345.439 5 22522612.806 22522614.449 22522612.954
+ 34.100 31.000
+ -18025985.759 7 -14046209.155 6 21033438.837 21033438.095 21033438.548
+ 47.100 41.500
+ -3047799.334 5 -2374904.048 3 24111025.452 24111021.292 24111024.141
+ 30.600 23.800
+ -10028836.826 5 -7814669.002 5 22593215.875 22593216.148 22593214.653
+ 33.100 30.100
+ -24557988.780 7 -19136081.043 8 20150217.719 20150214.285 20150216.915
+ 47.500 50.300
+ -4211737.363 4 -3281869.555 4 23918696.092 23918696.691 23918695.986
+ 26.200 26.200
+ -13046811.309 6 -10166335.289 6 21909690.700 21909690.076 21909689.593
+ 40.900 36.300
+ -9326010.339 5 -7267013.110 5 22693747.092 22693747.015 22693746.678
+ 35.100 32.000
+ -7431842.732 5 -5791040.415 4 23218754.179 23218752.792 23218753.870
+ 32.100 26.200
+ -243617.103 4 -189815.843 3 24396754.682 24396754.824 24396753.885
+ 24.900 20.500
+ 06 1 1 21 33 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4267836.171 5 -3325581.296 5 22538674.939 22538674.542 22538673.592
+ 34.600 30.200
+ -17969339.461 7 -14002069.177 6 21044218.257 21044217.606 21044217.949
+ 47.000 41.600
+ -3023011.589 4 -2355588.918 3 24115741.917 24115738.512 24115740.679
+ 29.000 23.000
+ -10134810.166 5 -7897245.603 5 22573049.545 22573050.171 22573048.523
+ 34.300 30.800
+ -24574738.333 7 -19149132.635 8 20147030.413 20147026.979 20147029.578
+ 47.500 50.400
+ -4109345.386 4 -3202083.661 4 23938181.662 23938181.083 23938180.973
+ 28.100 24.900
+ -13021370.002 6 -10146510.891 5 21914532.050 21914531.251 21914530.974
+ 40.900 35.800
+ -9360910.595 5 -7294208.097 5 22687105.238 22687105.704 22687104.893
+ 34.600 31.800
+ -7466672.843 5 -5818180.725 4 23212124.692 23212124.762 23212125.002
+ 31.600 25.300
+ -155211.295 4 -120928.174 3 24413577.227 24413578.493 24413576.475
+ 24.900 22.600
+ 06 1 1 21 33 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4183168.475 5 -3259606.498 5 22554788.431 22554786.352 22554785.935
+ 32.800 30.800
+ -17912444.109 7 -13957735.137 6 21055045.186 21055044.532 21055044.798
+ 46.800 41.600
+ -2997657.351 4 -2335832.323 3 24120566.495 24120562.763 24120565.514
+ 28.800 18.600
+ -10240504.077 5 -7979604.455 5 22552936.525 22552937.216 22552935.434
+ 33.500 30.200
+ -24591112.858 7 -19161891.996 8 20143914.580 20143910.951 20143913.747
+ 47.600 50.300
+ -4006787.829 4 -3122168.685 4 23957696.757 23957697.781 23957697.107
+ 27.600 27.100
+ -12995353.060 6 -10126237.957 6 21919483.125 21919482.420 21919481.895
+ 41.000 36.400
+ -9395219.876 5 -7320942.592 5 22680576.567 22680576.703 22680576.254
+ 34.900 31.500
+ -7500949.695 5 -5844889.939 4 23205602.983 23205602.091 23205602.726
+ 31.800 25.300
+ -66786.316 4 -52025.626 3 24430403.170 24430405.422 24430402.506
+ 24.900 19.300
+ 06 1 1 21 34 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4098231.617 5 -3193422.007 4 22570950.935 22570949.518 22570948.806
+ 33.400 29.900
+ -17855300.669 7 -13913207.779 6 21065919.401 21065918.467 21065918.935
+ 46.800 41.600
+ -2971737.342 4 -2315634.906 3 24125499.109 24125495.940 24125498.020
+ 29.700 23.400
+ -10345916.085 5 -8061743.648 5 22532877.489 22532877.973 22532876.264
+ 33.200 31.000
+ -24607112.237 7 -19174359.037 8 20140869.783 20140866.340 20140869.072
+ 47.700 50.400
+ -3904066.276 4 -3042125.973 4 23977243.832 23977244.973 23977243.582
+ 26.200 25.600
+ -12968761.804 6 -10105517.497 6 21924543.340 21924542.575 21924542.071
+ 41.000 36.200
+ -9428937.229 5 -7347215.822 5 22674160.137 22674160.465 22674159.915
+ 34.900 31.800
+ -7534671.308 5 -5871166.492 3 23199186.066 23199184.439 23199185.792
+ 32.300 23.800
+ 21657.125 4 16891.347 2 24447233.977 24447234.414 24447232.968
+ 24.900 16.100
+ 06 1 1 21 34 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -4013026.840 5 -3127028.713 4 22587162.731 22587163.365 22587162.233
+ 34.000 29.700
+ -17797910.476 7 -13868488.148 6 21076840.245 21076839.386 21076839.792
+ 46.800 41.400
+ -2945252.206 4 -2294997.124 3 24130538.999 24130535.235 24130537.426
+ 28.600 23.000
+ -10451043.786 5 -8143661.288 5 22512872.495 22512872.795 22512871.452
+ 34.000 31.000
+ -24622736.464 7 -19186533.752 8 20137896.633 20137893.235 20137895.861
+ 47.800 50.500
+ -3801182.093 4 -2961956.498 4 23996821.854 23996823.012 23996822.248
+ 27.100 24.600
+ -12941597.586 6 -10084350.578 5 21929712.056 21929711.728 21929711.134
+ 41.100 35.900
+ -9462061.608 5 -7373027.000 5 22667857.251 22667856.926 22667856.956
+ 35.100 31.800
+ -7567835.883 5 -5897008.985 4 23192875.050 23192873.798 23192874.587
+ 31.800 24.900
+ 110118.491 3 85822.307 2 24464068.325 24464067.889 24464067.441
+ 23.800 16.100
+ 06 1 1 21 35 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3927555.163 5 -3060427.438 5 22603426.406 22603428.562 22603426.845
+ 33.600 30.200
+ -17740274.415 7 -13823576.931 6 21087807.936 21087807.155 21087807.584
+ 46.900 41.300
+ -2918202.528 4 -2273919.445 3 24135686.343 24135682.761 24135685.410
+ 29.700 21.600
+ -10555884.909 5 -8225355.626 5 22492922.092 22492922.184 22492920.886
+ 34.500 31.000
+ -24637985.662 7 -19198416.237 8 20134995.001 20134991.479 20134994.192
+ 47.700 50.600
+ -3698136.690 4 -2881661.429 3 24016432.399 24016431.907 24016431.580
+ 28.800 23.000
+ -12913861.686 6 -10062738.191 6 21934990.571 21934989.671 21934989.273
+ 41.300 36.400
+ -9494591.723 5 -7398375.118 5 22661666.636 22661666.666 22661666.325
+ 34.800 31.000
+ -7600441.962 5 -5922416.286 4 23186670.045 23186668.740 23186669.724
+ 31.600 25.600
+ 198597.255 4 154766.802 3 24480905.129 24480905.622 24480904.249
+ 26.800 18.600
+ 06 1 1 21 35 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3841817.860 5 -2993619.179 4 22619742.033 22619743.462 22619742.048
+ 33.400 29.200
+ -17682393.892 7 -13778475.215 6 21098822.199 21098821.442 21098821.903
+ 47.000 41.100
+ -2890589.126 4 -2252402.469 2 24140940.820 24140937.026 24140939.431
+ 28.100 17.800
+ -10660437.188 5 -8306824.895 5 22473026.046 22473026.333 22473024.899
+ 33.200 31.000
+ -24652859.612 7 -19210006.323 8 20132164.495 20132160.986 20132163.715
+ 47.800 50.600
+ -3594931.461 4 -2801241.784 4 24036071.471 24036071.731 24036071.041
+ 29.000 27.100
+ -12885555.379 6 -10040681.330 6 21940376.891 21940376.305 21940375.738
+ 40.700 36.700
+ -9526526.589 5 -7423259.403 5 22655589.751 22655589.980 22655589.389
+ 35.600 31.800
+ -7632487.472 5 -5947386.792 3 23180572.482 23180570.492 23180571.849
+ 31.300 23.400
+ 287092.902 4 223724.444 3 24497745.587 24497745.893 24497744.585
+ 25.600 18.600
+ 06 1 1 21 36 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3755816.057 5 -2926604.816 4 22636110.488 22636109.269 22636108.355
+ 32.100 29.900
+ -17624269.793 7 -13733183.707 6 21109883.150 21109882.026 21109882.686
+ 46.900 40.900
+ -2862412.925 4 -2230446.952 3 24146303.206 24146299.203 24146301.815
+ 29.900 21.600
+ -10764698.140 5 -8388067.151 5 22453185.860 22453186.221 22453184.621
+ 33.200 31.100
+ -24667358.495 7 -19221304.151 8 20129405.389 20129401.837 20129404.600
+ 47.500 50.500
+ -3491567.465 5 -2720698.453 4 24055741.603 24055740.779 24055741.053
+ 31.100 24.600
+ -12856680.221 6 -10018181.212 6 21945871.360 21945871.177 21945870.347
+ 40.600 36.500
+ -9557865.186 6 -7447679.074 5 22649626.282 22649625.822 22649625.970
+ 36.500 31.000
+ -7663970.512 5 -5971918.999 4 23174581.138 23174580.382 23174580.695
+ 31.800 25.900
+ 375604.707 4 292694.696 2 24514588.422 24514588.500 24514587.423
+ 26.200 16.100
+ 06 1 1 21 36 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3669550.863 5 -2859385.239 4 22652527.103 22652524.802 22652524.608
+ 32.300 28.800
+ -17565903.479 7 -13687703.453 6 21120989.696 21120988.771 21120989.313
+ 46.900 41.000
+ -2833674.372 5 -2208053.268 4 24151772.074 24151768.361 24151770.661
+ 30.800 24.600
+ -10868665.496 5 -8469080.640 5 22433401.894 22433402.135 22433400.533
+ 33.400 31.800
+ -24681482.443 7 -19232309.821 8 20126717.418 20126714.197 20126716.693
+ 47.400 50.500
+ -3388046.512 4 -2640032.762 4 24075441.237 24075440.216 24075440.090
+ 27.600 24.200
+ -12827237.468 6 -9995238.813 6 21951474.174 21951473.870 21951473.015
+ 40.300 36.800
+ -9588606.585 5 -7471633.396 5 22643776.189 22643775.700 22643776.046
+ 35.900 31.100
+ -7694889.639 5 -5996011.791 4 23168696.656 23168696.427 23168696.507
+ 31.300 26.500
+ 464131.787 4 361676.848 2 24531434.169 24531434.436 24531433.354
+ 25.900 15.100
+ 06 1 1 21 37 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3583023.574 5 -2791961.420 4 22668991.333 22668990.540 22668989.700
+ 33.600 28.800
+ -17507296.097 7 -13642035.364 6 21132142.170 21132141.372 21132141.818
+ 46.900 40.500
+ -2804374.415 4 -2185222.150 3 24157347.068 24157343.329 24157345.807
+ 28.400 20.500
+ -10972336.913 5 -8549863.513 5 22413673.060 22413673.912 22413672.046
+ 33.500 32.000
+ -24695231.123 7 -19243023.074 8 20124101.270 20124097.929 20124100.477
+ 47.500 50.600
+ -3284369.576 4 -2559245.623 4 24095169.809 24095170.115 24095169.197
+ 29.000 28.100
+ -12797228.538 6 -9971855.246 6 21957184.783 21957184.287 21957183.609
+ 40.200 36.700
+ -9618749.768 5 -7495121.567 5 22638040.452 22638039.926 22638040.019
+ 35.800 31.100
+ -7725243.320 5 -6019663.989 4 23162920.661 23162919.813 23162920.592
+ 31.100 25.600
+ 552673.629 4 430670.514 2 24548283.655 24548283.554 24548282.662
+ 24.200 17.000
+ 06 1 1 21 37 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3496235.303 5 -2724334.213 4 22685504.405 22685505.565 22685504.103
+ 32.300 28.100
+ -17448448.572 7 -13596180.148 6 21143340.800 21143339.706 21143340.286
+ 46.800 40.900
+ -2774514.037 4 -2161954.288 3 24163029.270 24163025.803 24163028.007
+ 29.000 22.600
+ -11075710.251 5 -8630414.119 5 22394001.996 22394002.607 22394000.929
+ 34.600 31.300
+ -24708604.178 7 -19253443.631 8 20121556.596 20121553.043 20121555.803
+ 47.700 50.500
+ -3180538.392 4 -2478338.183 3 24114928.488 24114927.464 24114927.079
+ 24.600 21.600
+ -12766654.864 6 -9948031.613 5 21963002.510 21963002.117 21963001.406
+ 40.000 35.900
+ -9648293.807 5 -7518142.864 5 22632418.130 22632417.700 22632417.831
+ 35.700 31.100
+ -7755029.705 5 -6042874.119 4 23157253.074 23157251.895 23157252.789
+ 32.000 24.600
+ 641229.674 4 499675.194 2 24565134.861 24565135.711 24565133.944
+ 25.300 16.100
+ 06 1 1 21 38 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3409187.289 5 -2656504.614 4 22702069.054 22702070.377 22702068.954
+ 32.600 29.000
+ -17389361.939 7 -13550138.609 6 21154584.534 21154583.538 21154584.101
+ 46.800 40.800
+ -2744093.895 5 -2138250.269 3 24168818.302 24168814.903 24168817.026
+ 30.400 23.400
+ -11178783.183 5 -8710730.638 5 22374388.183 22374388.594 22374386.909
+ 34.300 32.700
+ -24721602.346 7 -19263572.071 8 20119083.045 20119079.533 20119082.249
+ 47.600 50.400
+ -3076554.226 5 -2397311.610 5 24134716.204 24134716.512 24134715.489
+ 30.100 30.100
+ -12735517.926 6 -9923769.071 5 21968927.686 21968927.140 21968926.517
+ 39.700 35.400
+ -9677237.788 5 -7540696.594 5 22626910.165 22626910.509 22626910.005
+ 35.800 32.000
+ -7784247.102 5 -6065640.885 4 23151692.986 23151692.160 23151692.588
+ 31.600 25.300
+ 729799.362 4 568690.515 3 24581989.312 24581990.216 24581988.408
+ 24.900 19.900
+ 06 1 1 21 38 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3321880.772 5 -2588473.583 4 22718684.392 22718684.440 22718683.095
+ 31.600 28.800
+ -17330037.437 7 -13503911.724 6 21165873.411 21165872.637 21165873.061
+ 46.700 40.700
+ -2713114.757 4 -2114110.663 3 24174712.999 24174709.821 24174712.002
+ 27.900 22.100
+ -11281553.383 5 -8790811.256 5 22354831.253 22354831.923 22354830.108
+ 34.900 32.400
+ -24734225.565 7 -19273408.342 8 20116681.165 20116677.453 20116680.223
+ 47.600 50.500
+ -2972418.382 4 -2316166.818 4 24154533.264 24154531.991 24154531.609
+ 27.400 24.200
+ -12703819.264 6 -9899068.830 5 21974959.693 21974959.172 21974958.661
+ 40.200 35.400
+ -9705580.810 5 -7562782.051 5 22621516.818 22621516.467 22621516.307
+ 35.700 30.800
+ -7812893.895 5 -6087963.043 4 23146242.048 23146240.624 23146241.600
+ 32.100 24.900
+ 818382.035 4 637715.980 3 24598846.160 24598847.144 24598845.229
+ 24.600 18.600
+ 06 1 1 21 39 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3234316.897 5 -2520242.037 4 22735348.886 22735347.632 22735346.723
+ 32.600 29.500
+ -17270475.985 7 -13457500.201 6 21177207.875 21177206.845 21177207.356
+ 46.700 40.700
+ -2681577.722 5 -2089536.319 3 24180715.102 24180710.541 24180713.796
+ 30.800 19.900
+ -11384018.431 5 -8870654.092 5 22335332.922 22335333.283 22335331.784
+ 35.200 32.100
+ -24746473.576 7 -19282952.241 8 20114350.115 20114346.684 20114349.349
+ 47.500 50.400
+ -2868132.551 4 -2234905.134 4 24174377.202 24174376.697 24174376.101
+ 28.100 25.300
+ -12671560.355 6 -9873932.020 5 21981098.530 21981097.697 21981097.330
+ 39.800 34.600
+ -9733321.983 6 -7584398.534 5 22616237.747 22616237.555 22616237.477
+ 36.300 31.000
+ -7840968.424 5 -6109839.273 4 23140899.573 23140898.313 23140899.338
+ 32.400 25.900
+ 906977.462 3 706751.380 3 24615704.640 24615706.264 24615703.845
+ 23.800 19.300
+ 06 1 1 21 39 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3146496.930 5 -2451810.933 4 22752058.075 22752058.957 22752057.364
+ 31.500 28.400
+ -17210678.844 7 -13410905.028 6 21188586.930 21188585.812 21188586.402
+ 46.900 40.300
+ -2649483.573 4 -2064527.858 3 24186821.531 24186818.249 24186820.360
+ 27.400 21.100
+ -11486176.090 5 -8950257.406 5 22315892.787 22315893.182 22315891.578
+ 34.500 32.600
+ -24758346.275 7 -19292203.689 8 20112090.784 20112087.341 20112090.017
+ 47.600 50.500
+ -2763698.011 4 -2153527.647 4 24194250.350 24194249.762 24194249.209
+ 25.900 26.500
+ -12638742.629 6 -9848359.776 5 21987343.758 21987342.624 21987342.655
+ 40.500 34.800
+ -9760460.384 6 -7605545.315 5 22611073.333 22611072.989 22611073.093
+ 36.100 30.800
+ -7868469.265 5 -6131268.481 4 23135665.796 23135664.893 23135665.588
+ 32.100 25.600
+ 995584.803 3 775796.072 2 24632566.563 24632567.239 24632565.641
+ 22.100 17.800
+ 06 1 1 21 40 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -3058422.144 5 -2383181.256 4 22768816.842 22768818.961 22768817.322
+ 32.100 27.900
+ -17150647.072 7 -13364127.020 6 21200010.355 21200009.523 21200009.986
+ 46.700 40.500
+ -2616833.176 5 -2039086.005 3 24193034.973 24193031.333 24193034.191
+ 30.400 21.600
+ -11588024.071 5 -9029619.409 5 22296511.819 22296512.166 22296510.626
+ 35.200 32.400
+ -24769843.520 7 -19301162.574 8 20109903.057 20109899.518 20109902.214
+ 47.500 50.500
+ -2659116.191 4 -2072035.279 3 24214152.061 24214151.039 24214151.025
+ 27.600 23.800
+ -12605367.828 6 -9822353.442 5 21993694.789 21993693.927 21993693.632
+ 40.500 35.600
+ -9786995.301 6 -7626221.853 5 22606024.198 22606023.571 22606023.892
+ 36.500 30.400
+ -7895394.782 5 -6152249.369 4 23130542.154 23130541.535 23130541.935
+ 32.300 26.500
+ 1084203.356 3 844849.498 2 24649429.685 24649430.166 24649428.726
+ 23.000 17.000
+ 06 1 1 21 40 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2970093.696 5 -2314353.900 4 22785626.605 22785627.337 22785625.824
+ 31.100 28.100
+ -17090381.771 7 -13317167.046 6 21211478.451 21211477.587 21211477.974
+ 46.500 40.500
+ -2583627.715 4 -2013211.608 3 24199353.697 24199350.734 24199352.388
+ 27.400 23.400
+ -11689560.190 5 -9108738.429 5 22277189.815 22277190.264 22277188.883
+ 35.900 32.000
+ -24780965.529 7 -19309829.069 8 20107786.621 20107783.046 20107785.815
+ 47.600 50.500
+ -2554388.183 4 -1990429.127 4 24234081.666 24234080.410 24234079.775
+ 26.500 26.200
+ -12571437.388 6 -9795914.148 5 22000151.429 22000150.885 22000150.265
+ 39.900 35.400
+ -9812925.868 6 -7646427.465 5 22601089.803 22601089.270 22601089.418
+ 36.100 30.400
+ -7921743.280 5 -6172780.664 4 23125528.492 23125527.170 23125528.254
+ 33.100 24.200
+ 1172832.617 4 913911.243 2 24666296.221 24666295.878 24666295.277
+ 25.900 15.100
+ 06 1 1 21 41 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2881512.828 5 -2245329.867 4 22802485.336 22802484.056 22802483.050
+ 31.800 28.400
+ -17029883.940 7 -13270025.879 6 21222990.948 21222990.068 21222990.530
+ 46.600 40.600
+ -2549868.024 4 -1986905.352 2 24205777.827 24205773.858 24205776.817
+ 27.600 17.800
+ -11790782.040 5 -9187612.549 5 22257927.884 22257928.502 22257926.938
+ 35.700 32.300
+ -24791712.586 7 -19318203.394 8 20105741.458 20105737.974 20105740.747
+ 47.600 50.500
+ -2449515.637 4 -1908710.262 4 24254038.050 24254036.780 24254036.111
+ 26.200 24.900
+ -12536952.897 6 -9769043.123 5 22006713.740 22006713.055 22006712.596
+ 40.200 35.300
+ -9838251.290 6 -7666161.543 4 22596270.201 22596269.836 22596270.005
+ 36.500 29.900
+ -7947513.502 5 -6192861.333 4 23120624.597 23120623.086 23120624.398
+ 32.800 25.900
+ 1261472.291 4 982981.139 3 24683163.099 24683163.117 24683162.276
+ 26.200 19.300
+ 06 1 1 21 41 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2792680.839 4 -2176110.178 4 22819390.461 22819388.000 22819387.713
+ 29.900 29.200
+ -16969154.824 7 -13222704.494 6 21234547.215 21234546.492 21234546.794
+ 46.400 40.500
+ -2515554.930 4 -1960167.873 3 24212307.780 24212303.900 24212306.588
+ 27.400 19.300
+ -11891687.503 5 -9266240.132 5 22238726.433 22238726.825 22238725.317
+ 35.900 32.400
+ -24802084.569 7 -19326285.449 8 20103767.893 20103764.240 20103767.077
+ 47.700 50.500
+ -2344499.822 4 -1826879.834 4 24274022.025 24274020.998 24274020.315
+ 26.500 24.200
+ -12501916.044 6 -9741741.689 5 22013381.106 22013380.326 22013379.993
+ 40.300 35.800
+ -9862970.871 6 -7685423.533 4 22591566.598 22591565.862 22591566.239
+ 36.200 29.700
+ -7972703.637 5 -6212489.980 4 23115831.042 23115829.064 23115830.855
+ 33.400 24.600
+ 1350121.740 4 1052058.661 3 24700032.717 24700033.198 24700031.986
+ 25.600 18.600
+ 06 1 1 21 42 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2703598.892 5 -2106695.731 4 22836340.464 22836339.734 22836338.817
+ 31.000 29.000
+ -16908195.443 7 -13175203.680 6 21246147.360 21246146.450 21246146.992
+ 46.600 40.400
+ -2480689.692 4 -1933000.146 2 24218942.303 24218938.032 24218940.986
+ 27.600 16.100
+ -11992274.365 5 -9344619.453 5 22219585.524 22219585.694 22219584.241
+ 35.700 32.800
+ -24812081.497 7 -19334075.253 8 20101865.500 20101861.881 20101864.699
+ 47.700 50.500
+ -2239342.621 4 -1744939.147 3 24294032.430 24294031.580 24294031.038
+ 27.100 23.000
+ -12466328.422 6 -9714011.091 5 22020153.274 22020152.372 22020152.044
+ 40.000 35.700
+ -9887083.814 5 -7704212.827 5 22586977.956 22586977.426 22586977.549
+ 35.400 31.000
+ -7997312.507 5 -6231665.707 3 23111148.028 23111146.478 23111147.706
+ 32.300 23.400
+ 1438780.352 4 1121143.309 3 24716904.175 24716904.449 24716903.435
+ 24.900 19.900
+ 06 1 1 21 42 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2614268.377 5 -2037087.541 4 22853336.223 22853338.760 22853337.414
+ 31.000 27.900
+ -16847006.794 7 -13127524.212 6 21257791.282 21257790.416 21257790.817
+ 46.500 40.200
+ -2445273.224 4 -1905402.907 2 24225680.675 24225677.944 24225679.780
+ 26.200 17.800
+ -12092540.107 5 -9422748.554 5 22200505.728 22200505.954 22200504.541
+ 35.900 33.500
+ -24821703.598 7 -19341572.982 8 20100034.360 20100030.863 20100033.574
+ 47.700 50.500
+ -2134045.101 4 -1662889.139 4 24314070.236 24314069.126 24314068.703
+ 27.100 24.200
+ -12430191.636 6 -9685852.558 5 22027030.025 22027028.871 22027028.768
+ 40.100 35.300
+ -9910589.558 5 -7722528.970 5 22582504.717 22582504.272 22582504.522
+ 35.500 31.000
+ -8021338.625 5 -6250387.346 4 23106576.243 23106574.685 23106575.996
+ 32.800 24.900
+ 1527447.492 4 1190234.560 3 24733776.744 24733777.553 24733775.759
+ 24.900 19.900
+ 06 1 1 21 43 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2524690.532 5 -1967286.632 4 22870382.779 22870384.997 22870383.216
+ 31.300 27.600
+ -16785589.940 7 -13079666.927 6 21269478.587 21269477.537 21269478.132
+ 46.300 40.200
+ -2409306.490 4 -1877376.879 3 24232525.801 24232521.608 24232524.714
+ 28.100 18.600
+ -12192482.530 6 -9500625.716 5 22181486.907 22181487.534 22181485.847
+ 36.000 33.600
+ -24830950.473 7 -19348778.326 8 20098274.811 20098271.262 20098274.073
+ 47.900 50.600
+ -2028608.897 4 -1580731.109 4 24334134.822 24334133.424 24334132.787
+ 27.100 25.300
+ -12393507.571 6 -9657267.573 5 22034010.637 22034009.716 22034009.475
+ 40.300 35.200
+ -9933487.267 5 -7740371.322 5 22578147.146 22578146.975 22578147.183
+ 35.500 31.000
+ -8044780.576 5 -6268653.786 4 23102115.004 23102114.273 23102114.612
+ 32.300 26.800
+ 1616122.696 4 1259332.127 3 24750650.532 24750651.971 24750649.825
+ 25.900 21.100
+ 06 1 1 21 43 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2434866.584 5 -1897293.976 4 22887479.108 22887477.653 22887476.920
+ 30.100 26.500
+ -16723945.927 7 -13031632.634 6 21281208.641 21281208.043 21281208.416
+ 46.200 40.200
+ -2372790.771 4 -1848923.039 3 24239474.621 24239470.484 24239473.504
+ 29.000 18.600
+ -12292099.524 6 -9578249.290 5 22162530.815 22162530.783 22162529.443
+ 36.600 33.800
+ -24839822.043 8 -19355691.234 8 20096586.813 20096582.981 20096585.973
+ 48.000 50.500
+ -1923035.237 4 -1498465.939 3 24354222.603 24354223.096 24354221.549
+ 24.200 23.000
+ -12356277.699 6 -9628257.295 5 22041095.183 22041094.528 22041094.130
+ 39.900 35.700
+ -9955776.449 6 -7757739.492 5 22573906.054 22573905.345 22573905.687
+ 36.300 30.800
+ -8067636.968 5 -6286463.936 4 23097765.364 23097764.313 23097765.011
+ 32.000 25.300
+ 1704805.340 3 1328435.449 3 24767527.279 24767527.255 24767526.029
+ 22.100 18.600
+ 06 1 1 21 44 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2344797.900 4 -1827110.625 4 22904619.855 22904617.478 22904617.162
+ 29.900 27.400
+ -16662075.968 7 -12983422.281 6 21292982.321 21292981.613 21292981.896
+ 46.100 40.100
+ -2335727.096 4 -1820042.225 3 24246527.842 24246523.904 24246526.599
+ 29.900 21.100
+ -12391388.911 6 -9655617.598 5 22143636.818 22143636.426 22143635.463
+ 36.800 33.500
+ -24848318.766 7 -19362312.048 8 20094969.592 20094966.085 20094968.820
+ 47.700 50.400
+ -1817325.827 3 -1416094.945 4 24374338.389 24374339.028 24374337.552
+ 23.800 24.900
+ -12318503.875 6 -9598823.158 5 22048283.069 22048282.667 22048281.930
+ 39.700 35.400
+ -9977456.307 6 -7774632.871 5 22569780.846 22569779.652 22569780.295
+ 36.200 30.600
+ -8089906.424 5 -6303816.745 4 23093527.888 23093527.084 23093527.255
+ 32.100 26.800
+ 1793494.740 3 1397544.115 2 24784403.715 24784403.845 24784402.710
+ 23.400 16.100
+ 06 1 1 21 44 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2254485.777 5 -1756737.586 4 22921804.007 22921803.618 22921802.242
+ 30.600 27.600
+ -16599981.129 7 -12935036.701 6 21304798.363 21304797.725 21304798.106
+ 46.100 40.000
+ -2298116.635 4 -1790735.384 3 24253684.884 24253681.211 24253683.807
+ 29.200 22.100
+ -12490348.574 6 -9732728.976 5 22124805.410 22124804.952 22124804.002
+ 37.500 33.600
+ -24856440.510 7 -19368640.671 8 20093424.094 20093420.602 20093423.301
+ 47.700 50.500
+ -1711481.931 4 -1333619.233 4 24394480.587 24394480.645 24394479.885
+ 26.500 25.300
+ -12280187.855 6 -9568966.527 5 22055574.346 22055573.811 22055573.068
+ 39.100 34.800
+ -9998526.272 5 -7791051.011 5 22565771.017 22565770.402 22565770.558
+ 35.700 30.600
+ -8111587.580 5 -6320711.140 4 23089401.931 23089401.104 23089401.689
+ 32.400 25.900
+ 1882190.787 3 1466657.885 3 24801282.018 24801282.786 24801280.756
+ 19.900 21.100
+ 06 1 1 21 45 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2163931.484 5 -1686175.814 4 22939033.903 22939035.135 22939033.919
+ 31.000 26.800
+ -16537662.041 7 -12886476.374 6 21316657.671 21316656.846 21316657.245
+ 46.100 39.800
+ -2259960.738 4 -1761003.478 3 24260945.099 24260941.977 24260944.076
+ 27.100 21.600
+ -12588975.970 6 -9809581.440 5 22106036.589 22106037.071 22106035.481
+ 36.700 34.000
+ -24864187.417 7 -19374677.209 8 20091949.844 20091946.367 20091949.084
+ 47.800 50.500
+ -1605505.075 3 -1251039.861 3 24414647.069 24414646.865 24414646.041
+ 22.100 23.000
+ -12241331.413 6 -9538688.794 5 22062968.596 22062968.026 22062967.434
+ 39.500 35.200
+ -10018985.775 5 -7806993.475 5 22561877.570 22561877.311 22561877.208
+ 35.600 31.100
+ -8132679.103 5 -6337146.063 4 23085388.476 23085387.056 23085388.043
+ 33.100 25.300
+ 1970892.951 3 1535776.448 2 24818161.458 24818162.005 24818160.436
+ 19.900 17.000
+ 06 1 1 21 45 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -2073136.204 5 -1615426.257 4 22956311.075 22956312.865 22956311.319
+ 30.800 27.400
+ -16475120.217 7 -12837742.490 6 21328558.812 21328558.068 21328558.410
+ 46.100 39.800
+ -2221260.509 4 -1730847.446 3 24268309.997 24268306.285 24268308.801
+ 28.100 21.100
+ -12687269.112 6 -9886173.420 5 22087332.228 22087332.291 22087330.859
+ 36.100 33.600
+ -24871559.412 7 -19380421.610 8 20090546.970 20090543.477 20090546.194
+ 47.900 50.400
+ -1499396.662 3 -1168358.087 3 24434838.132 24434838.709 24434837.142
+ 21.100 22.100
+ -12201936.211 6 -9507991.243 5 22070465.393 22070464.708 22070464.148
+ 39.500 34.900
+ -10038834.417 5 -7822459.922 5 22558100.225 22558100.367 22558100.137
+ 35.600 32.000
+ -8153179.881 5 -6353120.696 4 23081487.226 23081485.956 23081487.155
+ 33.000 26.200
+ 2059600.672 3 1604899.326 3 24835041.923 24835042.690 24835040.521
+ 22.100 19.300
+ 06 1 1 21 46 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -1982101.420 5 -1544490.098 4 22973636.746 22973636.492 22973635.025
+ 30.200 26.500
+ -16412356.606 7 -12788835.784 6 21340502.381 21340501.698 21340501.975
+ 46.100 39.700
+ -2182016.823 4 -1700267.973 3 24275777.758 24275774.599 24275776.624
+ 28.800 21.100
+ -12785225.714 6 -9962503.173 5 22068691.379 22068691.482 22068690.202
+ 36.800 33.800
+ -24878556.536 7 -19385873.905 8 20089215.546 20089212.000 20089214.715
+ 47.900 50.500
+ -1393158.272 4 -1085574.908 3 24455054.917 24455054.848 24455054.292
+ 25.600 19.900
+ -12162004.142 6 -9476875.356 5 22078063.615 22078063.589 22078062.547
+ 38.800 34.900
+ -10058071.487 5 -7837449.832 5 22554439.484 22554439.586 22554439.365
+ 35.200 32.300
+ -8173088.528 5 -6368633.904 4 23077699.007 23077697.486 23077698.620
+ 33.200 26.200
+ 2148313.159 4 1674025.925 3 24851923.473 24851924.054 24851922.785
+ 24.200 18.600
+ 06 1 1 21 46 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -1890828.362 4 -1473368.273 4 22991007.142 22991005.051 22991004.583
+ 29.200 26.200
+ -16349372.014 7 -12739756.892 6 21352487.944 21352487.213 21352487.536
+ 46.000 39.500
+ -2142230.834 4 -1669265.893 3 24283348.362 24283344.767 24283347.308
+ 29.200 19.900
+ -12882843.675 6 -10038569.043 5 22050115.441 22050115.431 22050114.291
+ 38.000 34.100
+ -24885179.017 7 -19391034.267 8 20087955.247 20087951.791 20087954.527
+ 47.900 50.500
+ -1286791.231 4 -1002691.535 3 24475295.084 24475295.881 24475295.722
+ 26.200 20.500
+ -12121536.923 6 -9445342.474 5 22085764.523 22085764.160 22085763.298
+ 38.400 34.400
+ -10076696.589 5 -7851962.879 5 22550895.137 22550895.368 22550894.897
+ 35.200 32.300
+ -8192403.655 5 -6383684.621 4 23074023.679 23074021.247 23074023.302
+ 33.400 25.300
+ 2237029.990 3 1743155.915 3 24868806.021 24868806.272 24868804.612
+ 23.000 19.300
+ 06 1 1 21 47 0.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -1799318.365 5 -1402061.811 4 23008420.217 23008419.026 23008418.178
+ 31.300 27.600
+ -16286167.759 7 -12690506.829 6 21364515.510 21364514.447 21364515.105
+ 46.100 39.400
+ -2101904.179 4 -1637842.510 3 24291022.637 24291019.115 24291021.311
+ 28.400 21.600
+ -12980120.987 6 -10114369.469 5 22031603.869 22031604.043 22031602.716
+ 37.600 33.900
+ -24891426.794 7 -19395902.650 8 20086766.274 20086762.853 20086765.611
+ 47.800 50.500
+ -1180296.853 4 -919708.898 2 24495560.015 24495561.075 24495561.138
+ 25.300 17.000
+ -12080536.607 6 -9413394.188 5 22093566.709 22093566.141 22093565.640
+ 38.800 34.600
+ -10094709.268 6 -7865998.721 5 22547467.943 22547467.567 22547467.596
+ 36.000 31.800
+ -8211124.408 5 -6398272.209 4 23070460.740 23070459.026 23070460.434
+ 33.000 25.300
+ 2325750.845 4 1812289.070 2 24885689.271 24885689.424 24885688.181
+ 25.600 12.600
+ 06 1 1 21 47 30.0000000 0 10G 7G 4G23G10G 2G17G 5G30G13G24
+ -1707572.860 4 -1330571.840 4 23025876.305 23025877.904 23025876.126
+ 29.700 27.400
+ -16222744.866 7 -12641086.399 6 21376584.229 21376583.496 21376583.893
+ 46.000 39.400
+ -2061037.836 4 -1605998.565 3 24298798.961 24298795.436 24298797.611
+ 26.500 18.600
+ -13077055.158 6 -10189902.506 5 22013157.564 22013158.108 22013156.634
+ 37.700 34.400
+ -24897300.083 7 -19400479.232 8 20085648.777 20085645.168 20085647.977
+ 47.900 50.400
+ -1073676.894 4 -836628.385 3 24515849.701 24515850.537 24515850.029
+ 26.800 19.300
+ -12039004.929 6 -9381031.852 5 22101470.033 22101469.179 22101468.752
+ 38.600 34.100
+ -10112109.034 6 -7879556.955 5 22544156.796 22544156.357 22544156.458
+ 36.900 31.600
+ -8229249.273 5 -6412395.463 4 23067012.166 23067010.354 23067011.719
+ 33.000 25.300
+ 2414475.432 3 1881425.132 1 24902572.846 24902572.477 24902571.837
+ 23.400 9.000
+ 06 1 1 21 48 0.0000000 0 9G 7G 4G23G10G 2G17G 5G30G13
+ -1615593.292 4 -1258899.483 4 23043378.948 23043380.992 23043378.764
+ 29.200 27.600
+ -16159104.382 7 -12591496.416 6 21388694.784 21388693.737 21388694.386
+ 45.900 39.000
+ -2019633.129 4 -1573735.164 2 24306678.248 24306673.926 24306677.038
+ 27.600 17.000
+ -13173644.152 6 -10265166.574 5 21994777.378 21994777.697 21994776.419
+ 38.000 34.600
+ -24902798.914 7 -19404764.021 8 20084602.373 20084598.749 20084601.583
+ 47.800 50.500
+ -966932.382 3 -753450.855 3 24536160.862 24536163.753 24536162.298
+ 22.600 22.100
+ -11996943.816 6 -9348256.971 5 22109473.571 22109473.357 22109472.559
+ 38.600 33.900
+ -10128895.499 6 -7892637.298 5 22540962.606 22540962.021 22540962.243
+ 37.100 32.000
+ -8246777.250 5 -6426053.612 4 23063676.928 23063674.320 23063676.368
+ 33.800 25.600
+ 06 1 1 21 48 30.0000000 0 9G 7G 4G23G10G 2G17G 5G30G13
+ -1523380.690 4 -1187045.541 4 23060927.566 23060928.235 23060926.291
+ 28.600 26.200
+ -16095247.020 7 -12541737.440 6 21400846.620 21400845.524 21400846.077
+ 45.900 39.200
+ -1977691.436 4 -1541053.302 3 24314659.409 24314656.246 24314658.370
+ 28.800 21.600
+ -13269885.985 6 -10340160.127 5 21976463.195 21976463.297 21976462.173
+ 38.200 34.100
+ -24907923.118 8 -19408756.900 8 20083627.262 20083623.659 20083626.460
+ 48.000 50.500
+ -860065.068 4 -670177.679 3 24556497.657 24556499.734 24556499.118
+ 24.600 22.100
+ -11954355.020 6 -9315070.899 5 22117578.079 22117577.816 22117576.884
+ 38.500 34.000
+ -10145068.269 6 -7905239.448 5 22537885.008 22537884.512 22537884.651
+ 36.700 32.100
+ -8263707.229 5 -6439245.785 4 23060454.850 23060452.620 23060454.648
+ 34.000 25.300
+ 06 1 1 21 49 0.0000000 0 9G 7G 4G23G10G 2G17G 5G30G13
+ -1430936.621 4 -1115011.261 4 23078519.956 23078519.592 23078518.412
+ 29.200 26.500
+ -16031174.218 7 -12491810.593 6 21413039.079 21413038.418 21413038.753
+ 46.000 39.500
+ -1935213.982 4 -1507954.025 3 24322741.319 24322739.130 24322740.209
+ 25.300 23.000
+ -13365778.518 6 -10414881.493 5 21958215.388 21958215.469 21958214.382
+ 38.100 34.300
+ -24912672.909 8 -19412458.028 8 20082723.094 20082719.832 20082722.383
+ 48.000 50.500
+ -753076.678 3 -586810.079 3 24576857.382 24576858.866 24576858.085
+ 18.600 23.800
+ -11911240.662 6 -9281475.305 5 22125782.420 22125782.460 22125781.434
+ 38.900 34.700
+ -10160626.912 6 -7917363.050 5 22534924.051 22534923.609 22534923.951
+ 36.800 32.000
+ -8280038.032 5 -6451971.069 4 23057347.005 23057345.281 23057346.641
+ 33.400 25.600
+ 06 1 1 21 49 30.0000000 0 9G 7G 4G23G10G 2G17G 5G30G13
+ -1338262.404 4 -1042797.618 4 23096154.431 23096155.087 23096153.567
+ 29.700 26.800
+ -15966886.627 7 -12441716.375 6 21425272.490 21425271.823 21425272.199
+ 45.800 39.100
+ -1892202.127 4 -1474438.271 2 24330927.329 24330923.325 24330926.424
+ 28.100 17.000
+ -13461319.355 6 -10489328.821 5 21940034.836 21940034.536 21940033.806
+ 38.600 34.100
+ -24917048.282 7 -19415867.401 8 20081890.590 20081887.186 20081889.863
+ 47.900 50.500
+ -645968.421 3 -503349.224 3 24597238.714 24597239.675 24597240.493
+ 22.100 19.900
+ -11867602.611 6 -9247471.652 5 22134086.526 22134086.699 22134085.254
+ 37.800 35.300
+ -10175571.114 6 -7929007.859 5 22532080.381 22532079.952 22532080.164
+ 36.500 32.300
+ -8295768.643 5 -6464228.665 4 23054353.613 23054352.066 23054353.267
+ 33.800 25.900
+ 06 1 1 21 50 0.0000000 0 9G 7G 4G23G10G 2G17G 5G30G13
+ -1245359.389 5 -970405.687 4 23113833.332 23113833.593 23113832.608
+ 30.100 24.200
+ -15902385.450 7 -12391455.722 6 21437546.705 21437545.998 21437546.442
+ 45.700 39.100
+ -1848657.331 4 -1440507.217 3 24339213.671 24339210.315 24339212.581
+ 27.600 19.900
+ -13556506.380 6 -10563500.443 5 21921921.180 21921921.026 21921920.043
+ 38.300 34.700
+ -24921049.290 8 -19418985.066 8 20081129.545 20081125.842 20081128.681
+ 48.100 50.500
+ -538741.988 3 -419796.113 4 24617644.183 24617645.775 24617644.742
+ 23.800 27.400
+ -11823442.858 6 -9213061.473 5 22142489.873 22142490.008 22142488.743
+ 38.100 35.400
+ -10189900.565 5 -7940173.673 5 22529353.482 22529352.954 22529353.247
+ 35.800 32.000
+ -8310897.919 5 -6476017.696 4 23051474.935 23051473.498 23051474.584
+ 34.100 26.200
+ 06 1 1 21 50 30.0000000 0 9G 7G 4G23G10G 2G17G 5G30G13
+ -1152228.999 4 -897836.552 4 23131555.093 23131555.853 23131554.165
+ 29.500 25.900
+ -15837671.730 7 -12341029.453 6 21449861.590 21449860.508 21449861.134
+ 45.600 38.900
+ -1804581.173 4 -1406162.148 3 24347601.332 24347597.424 24347599.916
+ 26.500 21.600
+ -13651337.583 6 -10637394.814 5 21903875.434 21903875.124 21903874.208
+ 37.900 35.100
+ -24924676.361 8 -19421811.348 8 20080439.203 20080435.607 20080438.437
+ 48.100 50.400
+ -431398.878 3 -336152.158 2 24638069.039 24638071.829 24638070.897
+ 20.500 16.100
+ -11778763.429 6 -9178246.347 5 22150992.120 22150992.115 22150991.051
+ 38.400 34.900
+ -10203614.995 5 -7950860.228 5 22526743.641 22526743.656 22526743.277
+ 35.700 32.100
+ -8325424.801 5 -6487337.327 4 23048709.767 23048708.594 23048709.521
+ 33.000 26.500
+ 06 1 1 21 51 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -1058872.581 4 -825091.336 4 23149320.374 23149321.243 23149319.692
+ 28.400 25.600
+ -15772746.440 7 -12290438.322 6 21462216.412 21462215.361 21462215.927
+ 45.400 38.600
+ -1759974.686 4 -1371403.856 3 24356089.792 24356085.621 24356088.537
+ 28.400 19.900
+ -13745810.981 6 -10711010.362 5 21885897.159 21885897.255 21885896.080
+ 38.100 34.700
+ -24927929.401 8 -19424346.177 8 20079820.162 20079816.544 20079819.385
+ 48.000 50.300
+ -11733566.189 6 -9143027.723 5 22159593.309 22159592.840 22159591.949
+ 38.600 34.800
+ -10216714.121 5 -7961067.329 5 22524251.317 22524250.676 22524250.795
+ 35.800 32.400
+ -8339348.472 5 -6498186.928 4 23046060.633 23046059.065 23046060.242
+ 33.500 25.600
+ 06 1 1 21 51 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -965291.500 4 -752171.051 4 23167129.724 23167129.124 23167127.816
+ 28.800 25.600
+ -15707610.462 7 -12239683.021 6 21474611.312 21474610.501 21474610.799
+ 45.000 38.900
+ -1714839.149 4 -1336233.267 3 24364678.945 24364674.808 24364677.855
+ 29.000 19.300
+ -13839924.514 6 -10784345.515 5 21867988.087 21867987.879 21867986.984
+ 38.500 34.500
+ -24930808.352 8 -19426589.511 8 20079272.267 20079268.705 20079271.488
+ 48.000 50.500
+ -11687853.266 6 -9107407.278 5 22168291.675 22168291.653 22168290.747
+ 38.300 34.800
+ -10229197.734 5 -7970794.803 5 22521875.441 22521875.126 22521875.059
+ 35.900 32.100
+ -8352667.932 5 -6508565.712 4 23043525.951 23043524.179 23043525.679
+ 33.500 25.900
+ 06 1 1 21 52 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -871487.274 4 -679076.888 4 23184978.650 23184979.897 23184977.925
+ 27.900 26.800
+ -15642265.008 7 -12188764.491 6 21487045.897 21487045.126 21487045.543
+ 45.000 38.600
+ -1669176.356 4 -1300651.832 3 24373367.936 24373364.568 24373367.004
+ 29.500 22.100
+ -13933675.944 6 -10857398.518 5 21850147.594 21850147.616 21850146.636
+ 38.600 34.600
+ -24933313.412 8 -19428541.498 8 20078795.551 20078791.983 20078794.816
+ 48.100 50.300
+ -11641626.782 6 -9071386.658 5 22177088.344 22177088.090 22177087.263
+ 38.100 34.800
+ -10241065.629 6 -7980042.501 5 22519616.967 22519616.610 22519616.588
+ 36.000 31.500
+ -8365382.140 5 -6518472.876 4 23041106.857 23041104.947 23041106.407
+ 34.100 25.300
+ 06 1 1 21 52 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -777461.202 4 -605809.831 4 23202870.693 23202872.184 23202870.536
+ 29.500 26.200
+ -15576710.925 7 -12137683.391 6 21499520.708 21499519.633 21499520.185
+ 44.900 38.500
+ -1622987.799 4 -1264660.777 3 24382157.107 24382153.279 24382156.124
+ 29.500 18.600
+ -14027063.289 6 -10930167.818 5 21832376.513 21832376.606 21832375.516
+ 38.900 35.100
+ -24935444.498 8 -19430202.081 8 20078390.112 20078386.501 20078389.328
+ 48.200 50.400
+ -11594888.674 6 -9034967.367 5 22185982.260 22185982.038 22185981.083
+ 38.000 34.300
+ -10252317.592 6 -7988810.261 5 22517475.832 22517475.401 22517475.686
+ 36.200 31.800
+ -8377490.193 5 -6527907.696 4 23038802.346 23038800.490 23038802.104
+ 33.600 25.600
+ 06 1 1 21 53 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -683214.614 4 -532370.977 4 23220806.473 23220807.165 23220805.118
+ 28.100 25.900
+ -15510949.253 7 -12086440.533 6 21512034.613 21512033.755 21512034.202
+ 44.900 38.600
+ -1576274.681 4 -1228260.917 3 24391046.811 24391042.559 24391045.363
+ 28.600 21.100
+ -14120084.452 6 -11002651.788 5 21814675.487 21814675.193 21814674.383
+ 39.000 35.100
+ -24937201.989 8 -19431571.548 8 20078055.699 20078052.058 20078054.896
+ 48.300 50.400
+ -11547641.000 6 -8998151.001 5 22194973.239 22194973.050 22194971.976
+ 37.900 33.400
+ -10262953.455 6 -7997097.932 5 22515451.703 22515451.344 22515451.529
+ 36.600 31.800
+ -8388991.160 5 -6536869.480 4 23036613.770 23036611.932 23036613.494
+ 34.400 25.300
+ 06 1 1 21 53 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -588749.056 4 -458761.473 3 23238784.794 23238782.306 23238782.427
+ 27.900 22.100
+ -15444981.135 7 -12035036.811 6 21524587.799 21524586.992 21524587.434
+ 44.900 38.500
+ -1529038.474 4 -1191453.475 3 24400035.085 24400031.580 24400033.989
+ 27.900 19.900
+ -14212737.221 6 -11074848.695 5 21797044.280 21797043.735 21797043.146
+ 39.300 35.300
+ -24938586.039 8 -19432650.026 8 20077792.355 20077788.677 20077791.536
+ 48.300 50.400
+ -11499885.855 6 -8960939.207 5 22204060.567 22204060.716 22204059.486
+ 37.600 34.000
+ -10272973.116 5 -8004905.450 5 22513545.014 22513544.875 22513544.765
+ 35.800 31.800
+ -8399884.227 5 -6545357.569 4 23034540.584 23034539.105 23034540.579
+ 33.900 24.900
+ 06 1 1 21 54 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -494065.860 4 -384982.418 3 23256802.085 23256800.846 23256800.340
+ 28.800 23.400
+ -15378807.153 7 -11983472.671 6 21537180.514 21537179.610 21537180.090
+ 44.900 38.400
+ -1481280.859 4 -1154239.718 3 24409123.036 24409119.563 24409122.007
+ 27.100 19.900
+ -14305019.574 6 -11146756.970 5 21779483.332 21779482.966 21779482.332
+ 39.500 35.300
+ -24939596.532 8 -19433437.416 8 20077600.035 20077596.324 20077599.201
+ 48.300 50.300
+ -11451625.385 6 -8923333.659 5 22213244.412 22213244.421 22213243.266
+ 37.800 34.600
+ -10282376.562 5 -8012232.794 5 22511755.662 22511755.371 22511755.440
+ 35.700 31.800
+ -8410168.608 5 -6553371.358 4 23032583.882 23032581.891 23032583.414
+ 33.400 25.300
+ 06 1 1 21 54 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -399166.629 4 -311034.971 3 23274857.956 23274858.777 23274857.738
+ 29.000 23.000
+ -15312428.544 7 -11931749.082 6 21549812.161 21549810.883 21549811.619
+ 44.900 37.800
+ -1433003.486 4 -1116621.014 3 24418310.433 24418306.262 24418308.951
+ 28.400 21.100
+ -14396929.580 6 -11218375.109 5 21761993.407 21761993.121 21761992.296
+ 39.200 35.500
+ -24940233.605 8 -19433933.829 8 20077478.770 20077475.078 20077478.000
+ 48.200 50.300
+ -11402861.766 6 -8885336.044 5 22222524.047 22222523.973 22222522.877
+ 38.100 34.900
+ -10291163.544 5 -8019079.787 5 22510083.588 22510083.401 22510083.260
+ 35.700 32.100
+ -8419843.451 5 -6560910.188 4 23030742.505 23030741.006 23030742.265
+ 33.100 25.900
+ 06 1 1 21 55 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -304052.760 4 -236920.265 4 23292957.908 23292959.342 23292957.692
+ 28.400 27.100
+ -15245846.353 7 -11879866.852 6 21562481.977 21562481.165 21562481.588
+ 44.700 38.000
+ -1384207.958 4 -1078598.518 3 24427595.387 24427591.746 24427594.305
+ 26.500 20.500
+ -14488465.445 6 -11289701.702 5 21744574.829 21744574.477 21744573.639
+ 39.500 35.800
+ -24940497.303 8 -19434139.305 8 20077428.614 20077424.921 20077427.823
+ 48.300 50.300
+ -11353597.084 6 -8846947.994 5 22231898.730 22231898.920 22231897.630
+ 37.600 34.600
+ -10299334.099 5 -8025446.448 5 22508528.746 22508528.487 22508528.384
+ 35.800 32.100
+ -8428907.990 5 -6567973.444 4 23029017.980 23029016.544 23029017.654
+ 33.900 26.800
+ 06 1 1 21 55 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -208725.391 4 -162639.246 4 23311099.543 23311099.162 23311097.584
+ 27.600 25.300
+ -15179061.500 7 -11827826.709 6 21575190.765 21575190.061 21575190.379
+ 44.700 38.300
+ -1334895.836 4 -1040173.522 3 24436978.964 24436975.626 24436977.942
+ 27.600 21.100
+ -14579625.010 6 -11360735.079 5 21727227.716 21727227.263 21727226.622
+ 40.100 35.700
+ -24940387.712 8 -19434053.904 8 20077449.379 20077445.764 20077448.613
+ 48.400 50.300
+ -11303833.548 6 -8808171.225 5 22241368.418 22241368.714 22241367.232
+ 37.200 34.700
+ -10306888.262 5 -8031332.794 5 22507091.458 22507090.928 22507091.012
+ 35.900 31.800
+ -8437361.132 5 -6574560.295 4 23027409.671 23027407.988 23027409.197
+ 34.000 26.200
+ 06 1 1 21 56 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -113186.338 4 -88193.243 4 23329280.577 23329279.852 23329278.502
+ 29.500 26.200
+ -15112074.932 7 -11775629.386 6 21587937.860 21587937.029 21587937.473
+ 44.500 37.700
+ -1285068.439 4 -1001346.943 3 24446461.704 24446457.382 24446460.422
+ 29.000 19.900
+ -14670406.039 6 -11431473.498 5 21709952.665 21709952.171 21709951.521
+ 39.600 35.500
+ -24939905.050 8 -19433677.796 8 20077541.227 20077537.671 20077540.455
+ 48.200 50.400
+ -11253573.367 6 -8769007.455 5 22250932.548 22250932.902 22250931.557
+ 37.000 34.400
+ -10313825.987 5 -8036738.809 5 22505771.172 22505770.764 22505770.688
+ 35.600 32.000
+ -8445202.577 5 -6580670.481 4 23025917.267 23025915.523 23025916.856
+ 33.200 26.200
+ 06 1 1 21 56 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ -17436.852 4 -13583.315 4 23347499.452 23347500.536 23347498.372
+ 24.600 25.600
+ -15044887.479 7 -11723275.529 6 21600723.067 21600722.417 21600722.754
+ 44.600 38.000
+ -1234727.584 4 -962120.330 2 24456040.143 24456036.879 24456039.117
+ 25.900 17.800
+ -14760806.395 6 -11501915.285 6 21692749.900 21692749.640 21692748.718
+ 39.300 36.100
+ -24939049.676 8 -19433011.266 8 20077704.024 20077700.418 20077703.269
+ 48.300 50.200
+ -11202818.640 6 -8729458.325 5 22260590.972 22260591.126 22260589.791
+ 37.300 34.100
+ -10320147.272 5 -8041664.473 5 22504568.215 22504567.893 22504567.935
+ 35.900 31.600
+ -8452431.614 5 -6586303.486 4 23024541.012 23024539.960 23024540.839
+ 33.800 26.500
+ 06 1 1 21 57 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 78521.401 4 61189.327 4 23365758.502 23365760.876 23365758.618
+ 26.200 25.600
+ -14977500.318 7 -11670766.054 6 21613546.593 21613545.928 21613546.137
+ 44.600 38.300
+ -1183874.706 4 -922494.701 3 24465718.000 24465714.302 24465716.566
+ 26.800 22.100
+ -14850824.406 6 -11572059.147 6 21675620.172 21675619.747 21675618.914
+ 39.500 36.400
+ -24937821.504 8 -19432054.243 8 20077937.695 20077934.085 20077936.949
+ 48.400 50.300
+ -11151571.700 6 -8689525.653 5 22270342.551 22270343.013 22270341.425
+ 37.000 33.800
+ -10325852.136 6 -8046109.799 5 22503482.894 22503482.358 22503482.522
+ 36.400 32.100
+ -8459047.374 5 -6591458.603 4 23023282.463 23023280.869 23023282.251
+ 33.800 25.300
+ 06 1 1 21 57 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 174687.103 4 136123.602 3 23384058.264 23384060.101 23384058.567
+ 27.900 22.600
+ -14909914.193 7 -11618101.545 6 21626407.520 21626406.883 21626407.313
+ 44.400 37.900
+ -1132511.546 4 -882471.444 3 24475491.314 24475488.097 24475490.173
+ 27.400 22.100
+ -14940457.886 6 -11641903.360 6 21658563.422 21658562.892 21658562.179
+ 40.300 36.300
+ -24936220.355 8 -19430806.587 8 20078242.453 20078238.760 20078241.614
+ 48.200 50.300
+ -11099834.744 6 -8649211.157 5 22280187.639 22280188.054 22280186.621
+ 36.500 33.800
+ -10330940.687 6 -8050074.901 5 22502514.142 22502513.911 22502513.864
+ 36.100 31.800
+ -8465049.427 5 -6596135.529 4 23022140.471 23022138.543 23022140.059
+ 33.200 25.300
+ 06 1 1 21 58 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 271058.850 4 211218.467 3 23402398.599 23402398.806 23402397.366
+ 25.900 19.900
+ -14842130.208 7 -11565282.864 6 21639306.878 21639305.872 21639306.411
+ 44.500 38.000
+ -1080640.113 4 -842052.122 3 24485362.672 24485358.795 24485361.631
+ 29.700 19.900
+ -15029705.079 6 -11711446.584 6 21641579.918 21641579.647 21641578.774
+ 40.300 36.500
+ -24934246.625 8 -19429268.612 8 20078617.878 20078614.427 20078617.120
+ 48.100 50.200
+ -11047609.984 6 -8608516.550 5 22290126.024 22290126.015 22290124.859
+ 36.800 33.200
+ -10335413.004 6 -8053559.814 5 22501663.296 22501662.879 22501662.948
+ 36.200 32.000
+ -8470436.858 5 -6600333.513 4 23021115.538 23021113.548 23021115.028
+ 33.200 26.200
+ 06 1 1 21 58 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 367635.174 4 286472.688 4 23420776.873 23420777.467 23420775.709
+ 26.200 24.200
+ -14774149.348 7 -11512310.770 6 21652243.525 21652242.210 21652242.838
+ 44.300 37.700
+ -1028261.594 4 -801237.717 3 24495329.701 24495325.920 24495328.568
+ 27.400 19.300
+ -15118563.950 6 -11780687.215 6 21624670.760 21624670.333 21624669.565
+ 40.300 36.200
+ -24931900.460 8 -19427440.426 8 20079064.432 20079060.880 20079063.617
+ 48.100 50.300
+ -10994899.718 6 -8567443.626 5 22300156.565 22300156.365 22300155.426
+ 36.700 33.100
+ -10339269.384 6 -8056564.779 5 22500929.313 22500928.829 22500929.027
+ 36.400 31.800
+ -8475208.992 5 -6604052.058 4 23020206.784 23020205.243 23020206.509
+ 33.000 25.600
+ 06 1 1 21 59 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 464414.351 4 361885.000 3 23439193.722 23439193.380 23439192.004
+ 24.900 21.600
+ -14705972.345 7 -11459185.840 6 21665216.268 21665215.863 21665216.083
+ 44.200 37.200
+ -975377.846 4 -760029.608 2 24505393.341 24505389.428 24505392.190
+ 28.400 17.000
+ -15207032.513 6 -11849623.711 6 21607835.973 21607835.326 21607834.575
+ 40.400 36.200
+ -24929182.201 8 -19425322.294 8 20079581.663 20079578.048 20079580.889
+ 48.200 50.300
+ -10941706.227 6 -8525994.159 5 22310278.683 22310278.643 22310277.662
+ 37.100 32.700
+ -10342509.851 6 -8059089.803 5 22500312.664 22500312.486 22500312.356
+ 36.300 31.800
+ -8479365.525 5 -6607290.901 4 23019416.049 23019414.479 23019415.804
+ 33.400 26.500
+ 06 1 1 21 59 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 561395.100 4 437454.418 4 23457648.387 23457648.772 23457647.151
+ 27.400 24.200
+ -14637600.445 7 -11405909.042 6 21678227.187 21678226.610 21678226.876
+ 44.100 37.500
+ -921990.505 4 -718429.089 2 24515552.494 24515548.775 24515551.387
+ 28.400 16.100
+ -15295108.847 6 -11918254.572 6 21591075.469 21591074.933 21591074.205
+ 40.900 36.800
+ -24926091.949 8 -19422914.300 8 20080169.927 20080166.048 20080169.103
+ 48.100 50.100
+ -10888031.789 6 -8484169.926 5 22320492.809 22320492.743 22320491.624
+ 37.400 33.400
+ -10345134.513 6 -8061134.996 5 22499813.462 22499813.070 22499813.207
+ 37.200 32.600
+ -8482905.938 5 -6610049.650 4 23018741.826 23018740.825 23018741.851
+ 33.500 27.100
+ 06 1 1 22 0 0.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 658575.823 3 513179.602 3 23476140.085 23476141.648 23476139.128
+ 23.000 23.800
+ -14569034.303 7 -11352480.887 6 21691275.307 21691274.271 21691274.822
+ 44.300 37.700
+ -868101.565 4 -676437.685 3 24525807.561 24525803.759 24525806.125
+ 26.200 19.300
+ -15382790.998 6 -11986578.281 6 21574389.832 21574389.582 21574388.704
+ 40.700 37.300
+ -24922629.665 8 -19420216.413 8 20080828.647 20080824.891 20080827.887
+ 48.200 50.000
+ -10833878.824 6 -8441972.820 5 22330797.833 22330797.914 22330796.729
+ 37.200 33.800
+ -10347143.738 6 -8062700.616 5 22499431.097 22499430.552 22499430.871
+ 37.200 32.000
+ -8485829.560 5 -6612327.800 4 23018186.246 23018184.595 23018185.980
+ 34.300 26.800
+ 06 1 1 22 0 30.0000000 0 8G 7G 4G23G10G 2G 5G30G13
+ 755955.096 4 589059.518 3 23494671.657 23494672.041 23494670.304
+ 26.800 22.600
+ -14500275.139 7 -11298902.323 6 21704359.633 21704358.807 21704359.139
+ 44.100 37.400
+ -813712.884 3 -634056.879 2 24536156.206 24536153.441 24536155.549
+ 21.600 17.800
+ -15470076.977 6 -12054593.282 6 21557780.199 21557779.527 21557778.893
+ 41.000 37.100
+ -24918795.176 8 -19417228.494 8 20081558.124 20081554.538 20081557.343
+ 48.000 49.900
+ -10779249.545 6 -8399404.556 5 22341193.684 22341193.475 22341192.493
+ 36.700 33.900
+ -10348537.905 6 -8063786.969 5 22499165.835 22499165.284 22499165.520
+ 37.500 32.100
+ -8488135.985 5 -6614125.005 4 23017746.557 23017746.114 23017746.503
+ 33.600 27.400
+ 06 1 1 22 1 0.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 853531.328 4 665092.915 4 23513239.922 23513240.970 23513238.564
+ 25.600 25.300
+ -176199.535 3 -137297.684 2 24775191.637 24775194.068 24775192.051
+ 20.500 16.100
+ -14431323.493 7 -11245173.776 6 21717480.757 21717479.967 21717480.292
+ 44.200 37.300
+ -758825.955 3 -591287.866 3 24546601.440 24546597.880 24546600.378
+ 22.600 18.600
+ -15556964.941 6 -12122298.145 6 21541245.717 21541245.236 21541244.653
+ 41.300 37.200
+ -24914589.139 8 -19413951.053 8 20082358.654 20082354.965 20082357.810
+ 48.000 50.000
+ -10724146.327 5 -8356466.996 5 22351679.131 22351679.089 22351678.025
+ 35.900 33.400
+ -10349317.031 6 -8064394.067 5 22499017.505 22499016.857 22499017.139
+ 37.500 31.600
+ -8489824.683 5 -6615440.868 4 23017425.487 23017424.138 23017425.359
+ 34.000 26.800
+ 06 1 1 22 1 30.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 951303.050 4 741278.661 3 23531845.851 23531845.224 23531844.059
+ 26.200 20.500
+ -277779.081 3 -216450.526 2 24755863.258 24755863.653 24755862.739
+ 22.600 17.800
+ -14362180.553 7 -11191296.172 6 21730638.044 21730637.240 21730637.730
+ 44.100 37.100
+ -703442.410 5 -548131.819 2 24557141.241 24557137.068 24557140.144
+ 30.400 16.100
+ -15643453.142 6 -12189691.503 6 21524787.701 21524787.070 21524786.419
+ 41.300 37.300
+ -24910011.646 7 -19410384.171 8 20083229.758 20083226.055 20083228.896
+ 47.900 50.000
+ -10668571.593 5 -8313162.024 5 22362254.565 22362254.369 22362253.520
+ 35.300 33.000
+ -10349481.516 6 -8064522.230 5 22498986.493 22498985.564 22498986.028
+ 37.400 32.000
+ -8490895.366 5 -6616275.156 4 23017221.848 23017220.588 23017221.579
+ 33.200 27.900
+ 06 1 1 22 2 0.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 1049268.809 4 817615.580 3 23550487.537 23550488.172 23550485.951
+ 24.600 23.000
+ -379302.552 2 -295559.634 2 24736543.422 24736544.144 24736542.340
+ 17.000 17.000
+ -14292847.234 7 -11137270.211 6 21743831.717 21743830.924 21743831.387
+ 44.100 37.100
+ -647564.424 4 -504590.528 3 24567774.044 24567770.338 24567772.490
+ 27.100 18.600
+ -15729539.839 6 -12256772.007 6 21508405.867 21508405.258 21508404.745
+ 41.400 37.600
+ -24905062.815 7 -19406527.930 8 20084171.245 20084167.765 20084170.520
+ 47.900 49.900
+ -10612527.722 6 -8269491.489 5 22372919.733 22372919.114 22372918.532
+ 36.700 32.600
+ -10349031.603 6 -8064171.633 5 22499071.746 22499071.239 22499071.467
+ 36.600 32.100
+ -8491347.589 5 -6616627.515 4 23017135.471 23017134.659 23017135.281
+ 33.000 27.100
+ 06 1 1 22 2 30.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 1147427.049 4 894102.488 3 23569167.148 23569166.905 23569165.354
+ 25.600 20.500
+ -480768.332 4 -374623.797 2 24717234.956 24717235.801 24717234.463
+ 24.200 12.600
+ -14223324.479 7 -11083096.649 6 21757061.592 21757060.864 21757061.185
+ 43.900 37.300
+ -591193.426 3 -460665.079 2 24578500.978 24578497.600 24578499.836
+ 23.000 17.000
+ -15815222.861 6 -12323537.962 6 21492101.219 21492100.066 21492099.911
+ 41.800 37.000
+ -24899742.532 7 -19402382.250 8 20085183.634 20085180.144 20085182.953
+ 47.900 49.800
+ -10556017.033 6 -8225457.192 5 22383673.549 22383672.915 22383672.396
+ 36.900 32.700
+ -10347967.713 6 -8063342.623 5 22499274.064 22499273.582 22499273.726
+ 36.500 32.300
+ -8491180.990 5 -6616497.693 4 23017167.612 23017166.156 23017167.443
+ 33.900 27.400
+ 06 1 1 22 3 0.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 1245776.121 3 970738.104 3 23587880.870 23587882.125 23587880.056
+ 23.000 22.100
+ -582174.552 3 -453641.568 3 24697938.448 24697939.552 24697937.786
+ 23.800 20.500
+ -14153613.154 7 -11028776.140 6 21770327.340 21770326.425 21770326.835
+ 43.600 37.000
+ -534331.649 3 -416357.185 3 24589321.116 24589317.359 24589320.333
+ 20.500 20.500
+ -15900500.411 6 -12389987.972 6 21475873.027 21475872.461 21475871.880
+ 41.700 37.300
+ -24894051.210 7 -19397947.448 8 20086266.808 20086263.132 20086266.015
+ 47.900 49.700
+ -10499042.033 6 -8181061.084 5 22394515.792 22394514.935 22394514.628
+ 37.400 32.600
+ -10346290.230 6 -8062035.486 5 22499593.060 22499593.262 22499592.868
+ 36.600 33.000
+ -8490395.013 5 -6615885.232 4 23017316.626 23017315.685 23017316.594
+ 33.500 26.800
+ 06 1 1 22 3 30.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 1344314.549 4 1047521.247 4 23606632.384 23606633.911 23606631.907
+ 27.400 24.900
+ -683519.245 3 -532611.344 3 24678652.786 24678654.068 24678652.669
+ 21.600 22.100
+ -14083714.105 7 -10974309.350 6 21783628.681 21783627.629 21783628.234
+ 43.700 36.800
+ -476980.799 3 -371668.262 2 24600234.426 24600231.124 24600232.934
+ 22.600 16.100
+ -15985370.626 6 -12456120.570 6 21459722.868 21459722.088 21459721.650
+ 41.600 37.700
+ -24887988.859 8 -19393223.532 8 20087420.449 20087416.779 20087419.673
+ 48.200 49.700
+ -10441605.070 6 -8136305.011 5 22405445.202 22405445.069 22405444.092
+ 36.600 33.500
+ -10343999.508 6 -8060250.495 5 22500029.055 22500029.177 22500028.886
+ 37.000 32.600
+ -8488989.577 5 -6614790.076 4 23017584.136 23017583.172 23017583.963
+ 33.000 27.400
+ 06 1 1 22 4 0.0000000 0 9G 7G 6G 4G23G10G 2G 5G30G13
+ 1443040.787 3 1124450.756 3 23625420.538 23625420.173 23625418.775
+ 22.600 21.600
+ -784800.649 4 -611531.812 3 24659380.395 24659380.674 24659379.333
+ 25.900 21.600
+ -14013628.244 7 -10919697.004 6 21796965.615 21796964.599 21796965.119
+ 43.500 36.500
+ -419142.928 4 -326599.764 2 24611241.394 24611237.353 24611240.045
+ 26.500 16.100
+ -16069831.990 6 -12521934.593 6 21443650.180 21443649.555 21443649.063
+ 41.900 37.900
+ -24881555.765 8 -19388210.724 8 20088644.707 20088640.968 20088643.893
+ 48.000 49.800
+ -10383708.580 5 -8091190.888 5 22416462.386 22416462.455 22416461.285
+ 35.500 33.600
+ -10341095.970 6 -8057987.990 5 22500581.815 22500581.359 22500581.568
+ 36.600 32.300
+ -8486964.208 5 -6613211.861 4 23017969.634 23017968.717 23017969.340
+ 32.400 27.100
+ 06 1 1 22 4 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 1541953.330 4 1201525.431 3 23644243.509 23644243.093 23644242.045
+ 26.200 23.800
+ -886017.123 4 -690401.733 3 24640119.017 24640119.653 24640118.025
+ 24.600 19.900
+ -13943356.471 7 -10864939.786 6 21810337.906 21810336.726 21810337.499
+ 43.700 36.600
+ -16153882.464 6 -12587428.446 6 21427656.029 21427655.536 21427654.777
+ 41.900 38.300
+ -24874752.186 8 -19382909.228 8 20089939.270 20089935.635 20089938.503
+ 48.100 49.700
+ -10325355.019 6 -8045720.591 5 22427567.165 22427566.675 22427566.007
+ 36.500 33.800
+ -10337580.168 6 -8055248.393 5 22501250.776 22501250.482 22501250.549
+ 36.500 32.400
+ -8484318.709 5 -6611150.427 4 23018473.179 23018472.222 23018472.885
+ 32.600 27.600
+ 06 1 1 22 5 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 1641050.634 3 1278744.043 3 23663099.408 23663100.522 23663098.498
+ 23.800 23.400
+ -987166.747 3 -769219.543 3 24620870.834 24620871.743 24620869.787
+ 22.600 23.000
+ -13872899.683 7 -10810038.395 6 21823744.940 21823744.421 21823744.569
+ 43.400 36.400
+ -16237520.208 6 -12652600.681 6 21411740.176 21411739.666 21411738.992
+ 41.800 38.100
+ -24867578.180 8 -19377319.088 8 20091304.485 20091300.806 20091303.720
+ 48.100 49.800
+ -10266546.916 6 -7999896.110 5 22438758.147 22438757.502 22438756.961
+ 36.700 33.600
+ -10333452.478 5 -8052031.999 5 22502035.876 22502035.978 22502035.551
+ 35.400 32.400
+ -8481052.965 5 -6608605.674 4 23019094.601 23019093.382 23019094.314
+ 32.300 26.800
+ 06 1 1 22 5 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 1740331.133 4 1356105.461 3 23681992.322 23681992.501 23681991.558
+ 24.200 21.600
+ -1088247.646 3 -847983.748 3 24601635.991 24601636.420 24601634.657
+ 21.100 21.100
+ -13802258.823 7 -10754993.576 6 21837187.650 21837186.877 21837187.247
+ 43.500 36.400
+ -16320743.303 7 -12717449.828 6 21395903.476 21395902.697 21395902.264
+ 42.000 37.800
+ -24860034.048 8 -19371440.539 8 20092739.976 20092736.430 20092739.198
+ 48.100 49.800
+ -10207286.727 6 -7953719.350 5 22450034.734 22450034.251 22450033.584
+ 36.900 33.000
+ -10328713.577 5 -8048339.342 5 22502937.837 22502937.958 22502937.452
+ 35.800 32.700
+ -8477166.525 5 -6605577.268 4 23019834.365 23019833.043 23019833.954
+ 32.800 27.400
+ 06 1 1 22 6 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 1839793.163 3 1433608.305 3 23700918.301 23700919.849 23700918.238
+ 22.600 21.100
+ -1189257.969 4 -926693.042 3 24582414.769 24582414.883 24582413.474
+ 24.200 19.300
+ -13731434.877 7 -10699806.087 6 21850664.983 21850664.065 21850664.567
+ 43.300 36.500
+ -16403549.866 7 -12781974.399 6 21380145.984 21380145.057 21380144.750
+ 42.300 37.900
+ -24852119.997 8 -19365273.741 8 20094246.048 20094242.445 20094245.299
+ 48.000 49.800
+ -10147576.996 6 -7907192.290 5 22461396.722 22461396.472 22461395.607
+ 36.500 32.100
+ -10323363.838 5 -8044170.705 5 22503955.914 22503955.987 22503955.604
+ 35.700 32.800
+ -8472659.325 5 -6602065.138 4 23020692.135 23020690.313 23020691.706
+ 32.300 26.200
+ 06 1 1 22 6 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 1939435.316 4 1511251.509 3 23719880.771 23719881.401 23719879.661
+ 24.200 21.600
+ -1290196.178 3 -1005346.054 3 24563205.132 24563207.137 24563204.966
+ 21.600 20.500
+ -13660428.614 7 -10644476.535 6 21864177.264 21864176.140 21864176.820
+ 43.400 36.100
+ -16485938.422 7 -12846173.267 6 21364467.912 21364467.071 21364466.738
+ 42.500 38.000
+ -24843835.767 8 -19358818.491 8 20095822.479 20095818.853 20095821.642
+ 48.000 49.800
+ -10087420.147 6 -7860316.835 5 22472844.445 22472844.109 22472843.244
+ 36.400 32.700
+ -10317403.829 6 -8039526.532 5 22505090.110 22505089.927 22505089.750
+ 36.100 32.600
+ -8467531.218 5 -6598069.207 4 23021667.706 23021666.080 23021667.440
+ 33.200 26.200
+ 06 1 1 22 7 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2039255.895 3 1589033.762 3 23738876.227 23738876.489 23738874.549
+ 22.100 21.600
+ -1391060.090 4 -1083941.228 2 24544011.833 24544012.004 24544011.423
+ 24.600 15.100
+ -13589240.777 7 -10589005.488 5 21877723.667 21877722.591 21877723.183
+ 42.900 35.500
+ -16567906.966 7 -12910044.837 6 21348869.848 21348868.988 21348868.559
+ 42.500 38.500
+ -24835181.779 8 -19352075.119 8 20097469.177 20097465.673 20097468.504
+ 48.100 49.800
+ -10026818.726 6 -7813094.959 5 22484376.717 22484376.227 22484375.593
+ 36.600 32.300
+ -10310834.159 6 -8034407.297 5 22506340.349 22506340.061 22506340.110
+ 37.000 32.300
+ -8461782.032 5 -6593589.311 4 23022761.764 23022760.295 23022761.425
+ 33.100 25.600
+ 06 1 1 22 7 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2139253.450 3 1666953.874 3 23757905.208 23757905.413 23757903.732
+ 23.400 21.100
+ -1491847.908 4 -1162477.156 3 24524832.823 24524833.236 24524831.765
+ 24.900 21.100
+ -13517872.497 7 -10533393.841 5 21891304.736 21891303.520 21891304.388
+ 43.200 35.600
+ -16649453.683 7 -12973587.708 6 21333351.892 21333351.153 21333350.649
+ 42.600 38.400
+ -24826158.279 8 -19345043.813 8 20099186.397 20099182.811 20099185.657
+ 48.000 49.800
+ -9965775.282 6 -7765528.648 5 22495993.052 22495992.447 22495991.838
+ 36.400 32.000
+ -10303655.499 6 -8028813.527 5 22507706.520 22507706.017 22507706.227
+ 36.500 32.100
+ -8455411.753 5 -6588625.454 4 23023974.196 23023972.264 23023973.756
+ 33.000 25.300
+ 06 1 1 22 8 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2239426.258 4 1745010.564 3 23776965.970 23776967.124 23776965.832
+ 24.600 18.600
+ -1592557.834 4 -1240952.331 3 24505668.514 24505668.906 24505667.481
+ 25.900 22.100
+ -13446324.549 7 -10477642.191 6 21904920.140 21904918.907 21904919.473
+ 43.100 36.000
+ -16730576.957 7 -13036800.634 6 21317914.709 21317913.976 21317913.496
+ 42.700 38.700
+ -24816765.434 7 -19337724.707 8 20100973.783 20100970.171 20100973.009
+ 47.900 49.800
+ -9904292.377 6 -7717619.896 5 22507692.833 22507692.438 22507691.622
+ 36.400 32.400
+ -10295868.481 6 -8022745.721 5 22509188.272 22509187.692 22509187.953
+ 36.600 31.300
+ -8448420.205 5 -6583177.483 4 23025304.943 23025302.654 23025304.261
+ 33.000 25.600
+ 06 1 1 22 8 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2339772.863 4 1823202.698 3 23796061.362 23796063.649 23796060.826
+ 24.200 23.000
+ -1693188.031 4 -1319365.410 3 24486518.252 24486519.752 24486517.929
+ 25.600 22.600
+ -13374597.811 7 -10421751.231 6 21918569.108 21918568.121 21918568.623
+ 43.300 36.300
+ -16811275.301 7 -13099682.435 6 21302558.327 21302557.551 21302557.074
+ 42.500 38.600
+ -24807003.555 7 -19330118.046 8 20102831.399 20102827.823 20102830.605
+ 47.900 49.700
+ -9842372.576 5 -7669370.709 5 22519475.465 22519475.302 22519474.359
+ 35.400 32.000
+ -10287473.671 6 -8016204.292 5 22510785.734 22510785.186 22510785.328
+ 36.200 31.100
+ -8440807.442 5 -6577245.448 4 23026752.851 23026751.328 23026752.579
+ 33.400 26.800
+ 06 1 1 22 9 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2440291.516 4 1901528.895 2 23815190.760 23815190.981 23815189.510
+ 24.600 17.800
+ -1793736.493 4 -1397714.770 4 24467384.172 24467386.348 24467383.738
+ 24.200 24.900
+ -13302693.157 7 -10365721.629 5 21932252.118 21932251.028 21932251.705
+ 43.200 35.700
+ -16891546.874 7 -13162231.683 6 21287282.482 21287282.178 21287281.534
+ 42.600 38.400
+ -24796872.699 8 -19322223.869 8 20104759.229 20104755.699 20104758.460
+ 48.000 49.800
+ -9780018.444 5 -7620783.083 5 22531340.920 22531340.908 22531339.891
+ 34.800 31.800
+ -10278471.868 5 -8009189.892 5 22512498.696 22512498.069 22512498.225
+ 35.900 31.100
+ -8432573.252 5 -6570829.187 4 23028320.060 23028318.368 23028319.718
+ 33.000 26.200
+ 06 1 1 22 9 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2540980.712 4 1979987.952 3 23834351.538 23834351.381 23834350.177
+ 25.900 19.900
+ -1894201.476 3 -1475999.074 4 24448266.314 24448268.396 24448265.495
+ 22.600 25.900
+ -13230611.285 7 -10309553.935 6 21945968.688 21945967.856 21945968.194
+ 42.800 36.100
+ -16971390.035 7 -13224447.111 6 21272088.777 21272088.544 21272087.817
+ 42.600 38.700
+ -24786373.059 7 -19314042.327 8 20106757.225 20106753.728 20106756.399
+ 47.900 49.900
+ -9717232.558 5 -7571859.022 5 22543288.906 22543288.561 22543287.737
+ 35.100 30.800
+ -10268863.770 6 -8001703.058 5 22514327.292 22514326.403 22514326.849
+ 36.700 30.800
+ -8423717.911 5 -6563928.903 4 23030005.186 23030003.126 23030004.691
+ 32.100 25.600
+ 06 1 1 22 10 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2641838.690 4 2058578.588 3 23853545.023 23853544.266 23853543.471
+ 24.900 19.300
+ -1994581.192 3 -1554216.921 4 24429165.160 24429167.108 24429164.256
+ 22.100 28.100
+ -13158353.214 7 -10253248.948 5 21959718.836 21959718.140 21959718.576
+ 43.000 35.800
+ -17050803.309 7 -13286327.554 6 21256977.382 21256976.895 21256976.130
+ 42.600 39.300
+ -24775504.874 7 -19305573.606 8 20108825.518 20108821.826 20108824.609
+ 47.700 49.700
+ -9654017.550 5 -7522600.584 5 22555318.055 22555317.978 22555317.089
+ 35.400 31.800
+ -10258650.137 6 -7993744.386 5 22516270.685 22516270.013 22516270.185
+ 36.100 30.800
+ -8414241.206 5 -6556544.446 4 23031808.604 23031806.840 23031808.170
+ 32.700 25.900
+ 06 1 1 22 10 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2742864.138 4 2137299.700 3 23872768.208 23872769.164 23872767.563
+ 24.900 19.900
+ -2094873.196 3 -1632366.413 4 24410079.596 24410081.536 24410079.026
+ 21.100 24.200
+ -13085919.836 7 -10196807.357 5 21973502.638 21973501.655 21973502.136
+ 42.700 35.900
+ -17129784.634 7 -13347871.407 6 21241947.666 21241947.193 21241946.457
+ 42.700 39.200
+ -24764268.329 7 -19296817.850 8 20110963.639 20110960.025 20110962.826
+ 47.800 49.700
+ -9590376.021 6 -7473009.785 5 22567428.743 22567428.402 22567427.633
+ 36.100 32.000
+ -10247831.726 5 -7985314.452 5 22518329.197 22518328.603 22518328.794
+ 35.900 30.600
+ -8404143.404 5 -6548676.007 4 23033729.943 23033728.392 23033729.782
+ 33.100 25.300
+ 06 1 1 22 11 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2844055.270 3 2216149.839 3 23892024.935 23892025.209 23892023.605
+ 23.800 20.500
+ -2195076.210 4 -1710446.569 3 24391011.174 24391013.350 24391011.173
+ 24.900 23.000
+ -13013311.945 7 -10140229.781 5 21987319.440 21987318.709 21987319.066
+ 42.500 35.900
+ -17208332.491 7 -13409077.485 6 21227000.358 21226999.905 21226999.158
+ 42.500 39.000
+ -24752663.643 7 -19287775.236 8 20113171.870 20113168.338 20113171.050
+ 47.800 49.600
+ -9526310.681 5 -7423088.737 5 22579620.005 22579619.795 22579618.919
+ 35.800 32.100
+ -10236409.294 5 -7976413.861 5 22520502.866 22520502.171 22520502.416
+ 35.900 31.100
+ -8393424.522 5 -6540323.631 4 23035769.302 23035768.226 23035769.050
+ 31.800 25.600
+ 06 1 1 22 11 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 2945410.488 3 2295127.928 3 23911310.889 23911312.386 23911310.135
+ 21.100 19.900
+ -2295187.906 3 -1788455.595 3 24371960.621 24371961.919 24371960.323
+ 23.400 21.100
+ -12940530.418 7 -10083516.903 5 22001169.044 22001168.476 22001168.804
+ 42.600 35.500
+ -17286445.134 7 -13469944.447 6 21212136.047 21212135.431 21212134.900
+ 43.000 39.100
+ -24740691.025 7 -19278445.915 8 20115450.327 20115446.587 20115449.458
+ 47.900 49.500
+ -9461824.020 5 -7372839.401 5 22591891.499 22591891.533 22591890.425
+ 35.800 32.300
+ -10224383.689 6 -7967043.257 5 22522791.546 22522790.665 22522791.170
+ 37.000 31.000
+ -8382084.684 5 -6531487.375 4 23037927.507 23037926.251 23037927.202
+ 32.800 26.500
+ 06 1 1 22 12 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3046928.094 3 2374232.515 2 23930629.338 23930630.242 23930628.097
+ 22.100 17.000
+ -2395206.841 4 -1866392.353 2 24352928.396 24352928.385 24352927.795
+ 27.100 17.000
+ -12867575.975 7 -10026669.288 5 22015051.760 22015051.113 22015051.519
+ 42.300 35.700
+ -17364120.937 7 -13530471.007 6 21197355.058 21197354.059 21197353.821
+ 43.200 39.100
+ -24728350.795 7 -19268830.148 8 20117798.462 20117794.840 20117797.702
+ 47.900 49.400
+ -9396918.789 6 -7322263.907 5 22604242.915 22604242.438 22604241.658
+ 36.100 32.300
+ -10211755.804 6 -7957203.342 5 22525194.523 22525193.896 22525193.943
+ 36.100 31.300
+ -8370124.027 5 -6522167.384 4 23040203.176 23040201.984 23040203.074
+ 32.600 24.600
+ 06 1 1 22 12 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3148606.545 3 2453462.432 3 23949978.960 23949979.830 23949977.648
+ 22.100 21.600
+ -2495130.664 4 -1944254.980 3 24333913.589 24333913.718 24333912.804
+ 26.500 18.600
+ -12794449.684 7 -9969687.770 5 22028967.750 22028966.834 22028967.265
+ 42.400 35.600
+ -17441358.359 7 -13590655.979 6 21182656.876 21182656.310 21182655.780
+ 43.100 39.400
+ -24715643.203 7 -19258928.117 8 20120216.634 20120213.084 20120215.843
+ 47.700 49.400
+ -9331597.596 5 -7271364.293 5 22616672.917 22616672.446 22616671.890
+ 35.600 32.000
+ -10198526.494 6 -7946894.781 5 22527711.595 22527711.442 22527711.259
+ 36.400 31.300
+ -8357542.684 4 -6512363.701 4 23042597.074 23042596.709 23042597.015
+ 28.800 28.800
+ 06 1 1 22 13 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3250444.199 4 2532816.444 3 23969358.200 23969358.946 23969357.297
+ 24.200 20.500
+ -2594957.634 4 -2022042.156 2 24314916.668 24314917.262 24314915.963
+ 26.200 17.800
+ -12721152.135 7 -9912572.800 5 22042915.647 22042914.741 22042915.199
+ 42.100 35.300
+ -17518155.855 7 -13650498.148 6 21168042.981 21168042.246 21168041.775
+ 43.400 39.500
+ -24702568.342 8 -19248739.912 8 20122704.684 20122701.162 20122703.907
+ 48.000 49.200
+ -9265863.200 5 -7220142.696 5 22629181.831 22629181.090 22629180.729
+ 35.400 31.000
+ -10184696.643 6 -7936118.285 5 22530343.745 22530343.065 22530343.355
+ 36.900 32.300
+ -8344340.908 5 -6502076.614 4 23045109.707 23045108.710 23045109.261
+ 31.800 26.800
+ 06 1 1 22 13 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3352439.414 3 2612293.175 3 23988766.639 23988767.502 23988765.360
+ 19.300 18.600
+ -2694685.659 4 -2099752.257 3 24295938.544 24295939.039 24295938.498
+ 26.800 18.600
+ -12647684.277 7 -9855325.122 5 22056896.333 22056895.070 22056895.816
+ 42.000 34.900
+ -17594511.806 7 -13709996.253 6 21153512.630 21153512.149 21153511.558
+ 43.400 39.700
+ -24689126.372 7 -19238265.640 8 20125262.945 20125258.952 20125262.031
+ 47.900 49.200
+ -9199718.223 5 -7168601.160 5 22641769.189 22641768.293 22641767.858
+ 35.100 31.000
+ -10170267.244 6 -7924874.595 5 22533089.448 22533089.031 22533089.148
+ 37.000 32.100
+ -8330518.845 5 -6491306.158 4 23047740.469 23047738.961 23047740.068
+ 32.400 26.500
+ 06 1 1 22 14 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3454590.514 3 2691891.400 3 24008206.795 24008206.658 24008205.249
+ 21.600 23.400
+ -2794313.048 4 -2177383.922 3 24276981.202 24276980.933 24276980.448
+ 28.800 18.600
+ -12574046.884 6 -9797945.335 5 22070909.114 22070907.808 22070908.516
+ 41.600 35.100
+ -17670424.555 7 -13769149.009 6 21139066.985 21139066.434 21139065.886
+ 43.700 40.000
+ -24675317.539 8 -19227505.506 8 20127890.409 20127886.670 20127889.664
+ 48.000 49.100
+ -9133165.315 5 -7116741.765 5 22654433.391 22654433.027 22654432.232
+ 34.900 30.200
+ -10155239.180 6 -7913164.412 5 22535949.081 22535948.635 22535948.721
+ 36.400 32.300
+ -8316077.037 5 -6480052.797 4 23050488.213 23050487.246 23050488.045
+ 32.400 26.200
+ 06 1 1 22 14 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3556895.908 3 2771609.835 2 24027674.006 24027674.242 24027672.945
+ 21.600 17.800
+ -2893837.535 4 -2254935.411 3 24258041.257 24258042.247 24258040.784
+ 25.900 19.900
+ -12500240.799 6 -9740434.108 5 22084953.833 22084952.732 22084953.375
+ 41.900 34.900
+ -17745892.625 7 -13827955.268 6 21124706.071 21124705.206 21124704.904
+ 43.800 39.600
+ -24661142.098 8 -19216459.702 8 20130588.095 20130584.229 20130587.281
+ 48.100 49.200
+ -9066207.268 5 -7064566.677 5 22667174.970 22667174.628 22667173.813
+ 34.600 30.400
+ -10139613.371 6 -7900988.452 5 22538922.724 22538922.378 22538922.336
+ 36.400 32.600
+ -8301015.494 5 -6468316.528 4 23053353.616 23053353.264 23053353.786
+ 32.000 26.200
+ 06 1 1 22 15 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3659353.862 3 2851447.194 3 24047171.751 24047171.525 24047170.329
+ 20.500 20.500
+ -2993257.074 4 -2332405.109 3 24239122.181 24239123.654 24239121.691
+ 26.200 22.600
+ -12426266.923 6 -9682792.130 5 22099029.884 22099029.424 22099029.788
+ 41.700 34.700
+ -17820914.516 7 -13886413.856 6 21110429.717 21110429.073 21110428.617
+ 43.700 39.800
+ -24646600.185 7 -19205128.337 8 20133354.965 20133351.469 20133354.306
+ 47.800 49.100
+ -8998846.835 5 -7012078.045 5 22679993.046 22679992.768 22679991.902
+ 34.000 30.400
+ -10123390.918 6 -7888347.591 5 22542009.701 22542009.163 22542009.404
+ 36.800 32.400
+ -8285334.353 5 -6456097.441 4 23056338.890 23056337.071 23056338.348
+ 33.000 26.200
+ 06 1 1 22 15 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3761962.948 3 2931402.228 3 24066697.363 24066697.405 24066695.796
+ 19.300 19.300
+ -3092570.116 4 -2409791.805 4 24220225.156 24220225.334 24220223.867
+ 26.200 25.600
+ -12352126.032 6 -9625020.016 5 22113138.748 22113137.687 22113138.325
+ 41.500 34.100
+ -17895488.605 7 -13944523.503 6 21096238.910 21096237.970 21096237.693
+ 43.800 39.500
+ -24631692.231 7 -19193511.748 8 20136191.938 20136188.285 20136191.162
+ 47.800 49.100
+ -8931086.693 5 -6959277.947 5 22692887.641 22692887.064 22692886.414
+ 34.500 30.100
+ -10106572.826 6 -7875242.585 5 22545210.151 22545209.603 22545209.763
+ 36.500 32.400
+ -8269034.144 5 -6443395.972 4 23059440.430 23059438.786 23059440.094
+ 32.400 26.200
+ 06 1 1 22 16 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3864721.222 3 3011473.585 2 24086252.027 24086251.383 24086250.534
+ 23.400 17.800
+ -3191774.480 3 -2487093.799 4 24201345.483 24201346.788 24201344.396
+ 23.800 25.300
+ -12277818.808 6 -9567118.280 5 22127278.973 22127278.000 22127278.653
+ 41.800 34.300
+ -17969613.367 7 -14002283.028 6 21082133.338 21082132.603 21082132.156
+ 43.800 40.100
+ -24616418.610 7 -19181610.218 8 20139098.349 20139094.791 20139097.603
+ 47.900 49.100
+ -8862929.580 5 -6906168.514 5 22705857.428 22705856.973 22705856.335
+ 34.900 30.200
+ -10089160.184 6 -7861674.293 5 22548523.592 22548522.957 22548523.263
+ 36.700 31.500
+ -8252115.211 5 -6430212.375 4 23062659.701 23062658.291 23062659.428
+ 32.400 25.900
+ 06 1 1 22 16 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 3967627.173 4 3091660.023 2 24105833.583 24105833.321 24105832.686
+ 24.200 17.000
+ -3290867.888 3 -2564309.349 4 24182488.404 24182489.997 24182487.554
+ 23.000 28.100
+ -12203346.260 6 -9509087.723 5 22141450.647 22141449.595 22141450.302
+ 41.500 34.300
+ -18043287.171 7 -14059691.149 6 21068113.807 21068112.955 21068112.574
+ 43.800 40.500
+ -24600779.083 7 -19169423.569 8 20142074.574 20142070.977 20142073.718
+ 47.700 49.100
+ -8794378.164 5 -6852751.844 4 22718902.386 22718901.984 22718901.159
+ 35.100 29.900
+ -10071153.999 6 -7847643.503 5 22551950.199 22551949.345 22551949.831
+ 36.400 31.600
+ -8234578.210 5 -6416547.158 4 23065997.356 23065995.534 23065997.089
+ 33.000 25.900
+ 06 1 1 22 17 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4070678.992 3 3171960.129 2 24125442.531 24125443.623 24125442.444
+ 23.400 16.100
+ -3389848.821 4 -2641437.218 4 24163654.139 24163654.164 24163653.021
+ 26.500 26.800
+ -12128709.130 6 -9450928.931 5 22155654.057 22155652.899 22155653.509
+ 41.600 34.400
+ -18116508.553 7 -14116746.744 6 21054180.208 21054179.349 21054178.996
+ 43.800 40.300
+ -24584774.022 7 -19156952.089 8 20145120.152 20145116.606 20145119.390
+ 47.700 49.100
+ -8725435.350 5 -6799030.181 5 22732021.430 22732021.466 22732020.458
+ 35.300 30.400
+ -10052555.464 6 -7833151.133 5 22555489.311 22555488.894 22555488.934
+ 36.000 31.600
+ -8216423.232 5 -6402400.401 4 23069452.096 23069450.032 23069451.692
+ 32.800 25.900
+ 06 1 1 22 17 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4173875.195 3 3252372.802 1 24145081.631 24145080.539 24145079.871
+ 21.100 11.000
+ -3488715.074 3 -2718475.795 4 24144839.862 24144840.614 24144839.137
+ 22.600 28.100
+ -12053908.166 6 -9392642.481 5 22169887.767 22169887.132 22169887.440
+ 41.400 34.400
+ -18189276.082 7 -14173448.684 6 21040332.824 21040332.105 21040331.665
+ 43.900 40.500
+ -24568403.718 7 -19144196.003 8 20148235.319 20148231.705 20148234.556
+ 47.900 48.900
+ -8656103.812 5 -6745005.618 4 22745215.365 22745214.880 22745214.040
+ 35.400 29.900
+ -10033365.655 6 -7818198.038 5 22559140.733 22559140.502 22559140.481
+ 36.000 31.800
+ -8197650.665 5 -6387772.434 4 23073023.913 23073022.544 23073023.488
+ 32.100 26.500
+ 06 1 1 22 18 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4277214.067 3 3332896.583 1 24164747.148 24164745.918 24164745.016
+ 20.500 9.000
+ -3587464.649 4 -2795423.422 4 24126047.979 24126048.910 24126047.292
+ 26.200 26.200
+ -11978944.187 6 -9334228.995 5 22184153.230 22184152.196 22184152.830
+ 41.800 34.700
+ -18261588.340 7 -14229795.868 6 21026572.127 21026571.452 21026570.936
+ 43.800 40.500
+ -24551668.486 7 -19131155.561 8 20151420.016 20151416.345 20151419.200
+ 47.600 49.000
+ -8586386.394 5 -6690680.359 4 22758481.756 22758481.594 22758480.833
+ 34.800 29.700
+ -10013585.817 6 -7802785.177 5 22562904.784 22562904.407 22562904.632
+ 36.500 31.500
+ -8178261.144 5 -6372663.699 4 23076713.265 23076712.085 23076713.232
+ 31.600 24.900
+ 06 1 1 22 18 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4380693.811 3 3413530.148 2 24184437.199 24184437.647 24184436.111
+ 22.100 12.600
+ -3686095.602 4 -2872278.613 4 24107278.523 24107280.866 24107278.129
+ 26.500 27.400
+ -11903818.234 6 -9275689.290 5 22198448.909 22198448.192 22198448.537
+ 41.000 34.400
+ -18333443.780 7 -14285787.089 6 21012898.433 21012897.673 21012897.262
+ 43.900 40.200
+ -24534568.686 7 -19117831.034 8 20154673.850 20154670.394 20154673.053
+ 47.600 49.000
+ -8516285.884 5 -6636056.599 4 22771821.623 22771821.158 22771820.395
+ 33.900 29.700
+ -9993216.928 6 -7786913.307 5 22566781.023 22566780.690 22566780.804
+ 36.400 31.800
+ -8158255.194 5 -6357074.647 4 23080520.842 23080519.403 23080520.583
+ 33.100 26.200
+ 06 1 1 22 19 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4484312.872 3 3494272.269 3 24204153.780 24204156.337 24204154.233
+ 21.100 21.100
+ -3784605.815 4 -2949039.703 4 24088533.814 24088534.349 24088533.031
+ 29.200 25.300
+ -11828530.603 6 -9217023.619 5 22212775.728 22212774.999 22212775.307
+ 41.100 34.100
+ -18404841.078 7 -14341421.325 6 20999311.898 20999311.244 20999310.766
+ 44.000 40.600
+ -24517104.365 7 -19104222.469 8 20157997.169 20157993.659 20157996.436
+ 47.800 48.900
+ -8445805.002 5 -6581136.447 4 22785233.237 22785233.129 22785232.194
+ 33.200 29.500
+ -9972260.453 6 -7770583.578 5 22570768.765 22570768.216 22570768.519
+ 36.200 31.100
+ -8137633.163 5 -6341005.527 4 23084445.076 23084443.897 23084444.696
+ 32.800 26.800
+ 06 1 1 22 19 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4588069.397 2 3575121.455 3 24223898.776 24223900.311 24223897.855
+ 17.800 21.600
+ -3882993.160 4 -3025705.099 4 24069811.107 24069811.113 24069810.202
+ 29.900 24.200
+ -11753082.330 6 -9158232.755 5 22227133.486 22227132.326 22227133.048
+ 41.200 34.500
+ -18475778.962 7 -14396697.574 6 20985813.120 20985812.242 20985811.835
+ 43.900 40.600
+ -24499275.987 7 -19090330.222 8 20161389.818 20161386.306 20161389.051
+ 47.700 48.900
+ -8374946.672 5 -6525922.178 5 22798717.555 22798717.188 22798716.290
+ 34.100 30.100
+ -9950717.379 5 -7753796.759 5 22574868.075 22574867.939 22574867.877
+ 35.900 32.400
+ -8116395.835 5 -6324456.935 4 23088486.632 23088485.046 23088486.315
+ 33.400 26.200
+ 06 1 1 22 20 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4691961.883 2 3656076.546 3 24243670.144 24243670.490 24243668.616
+ 15.100 21.600
+ -3981255.925 5 -3102273.428 3 24051112.659 24051111.997 24051112.057
+ 30.200 21.100
+ -11677474.145 6 -9099317.292 5 22241521.143 22241520.258 22241520.576
+ 40.400 34.400
+ -18546255.704 7 -14451614.485 6 20972401.721 20972400.851 20972400.578
+ 44.300 40.900
+ -24481083.559 7 -19076154.295 8 20164851.799 20164848.270 20164851.071
+ 47.700 48.900
+ -8303713.629 5 -6470415.918 5 22812272.992 22812272.483 22812271.789
+ 35.100 30.400
+ -9928589.115 5 -7736553.960 5 22579079.096 22579078.944 22579078.753
+ 35.400 31.800
+ -8094543.882 5 -6307429.410 4 23092644.417 23092643.443 23092644.145
+ 32.100 25.600
+ 06 1 1 22 20 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4795988.529 3 3737136.249 2 24263466.694 24263465.619 24263464.901
+ 19.300 17.000
+ -4079391.889 4 -3178742.922 3 24032436.852 24032438.038 24032435.833
+ 24.200 23.000
+ -11601706.927 6 -9040277.912 5 22255938.895 22255938.195 22255938.513
+ 40.400 34.100
+ -18616270.230 7 -14506171.233 6 20959078.299 20959077.461 20959077.167
+ 44.300 40.500
+ -24462527.451 7 -19061694.987 8 20168382.878 20168379.344 20168382.116
+ 47.700 48.700
+ -8232108.776 5 -6414619.931 5 22825898.973 22825898.380 22825897.894
+ 34.800 30.100
+ -9905876.887 5 -7718856.107 5 22583400.883 22583401.018 22583400.734
+ 35.900 32.700
+ -8072077.460 5 -6289923.098 4 23096920.092 23096918.337 23096919.824
+ 33.200 25.900
+ 06 1 1 22 21 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 4900147.592 3 3818299.162 3 24283286.684 24283286.965 24283285.523
+ 23.400 19.900
+ -4177399.091 4 -3255112.116 2 24013788.063 24013787.001 24013786.786
+ 27.600 16.100
+ -11525781.624 6 -8981115.356 5 22270386.957 22270386.151 22270386.518
+ 40.700 34.000
+ -18685821.289 7 -14560366.846 6 20945843.336 20945842.253 20945842.130
+ 44.400 40.700
+ -24443607.994 7 -19046952.553 8 20171983.228 20171979.560 20171982.432
+ 47.800 48.700
+ -8160134.831 5 -6358536.367 4 22839595.026 22839594.696 22839593.844
+ 34.100 29.900
+ -9882581.930 5 -7700704.189 5 22587833.803 22587833.961 22587833.538
+ 35.600 32.400
+ -8048997.631 5 -6271938.837 4 23101312.249 23101310.207 23101311.930
+ 33.800 25.300
+ 06 1 1 22 21 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 5004437.362 3 3899563.889 3 24303131.518 24303133.033 24303130.730
+ 20.500 22.100
+ -4275275.348 4 -3331379.315 3 23995161.910 23995161.875 23995160.990
+ 26.500 20.500
+ -11449698.674 6 -8921829.958 5 22284864.992 22284864.375 22284864.561
+ 40.100 34.100
+ -18754907.374 7 -14614200.140 6 20932696.663 20932695.693 20932695.502
+ 44.400 40.700
+ -24424325.280 7 -19031927.053 8 20175652.549 20175648.967 20175651.779
+ 47.800 48.600
+ -8087794.735 5 -6302167.475 5 22853360.573 22853360.686 22853359.526
+ 33.500 30.600
+ -9858705.714 5 -7682099.356 5 22592377.588 22592377.600 22592377.024
+ 35.100 33.600
+ -8025304.990 5 -6253477.037 4 23105820.030 23105819.119 23105819.825
+ 33.100 26.500
+ 06 1 1 22 22 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 5108856.255 3 3980929.236 3 24323003.111 24323002.856 24323001.827
+ 21.600 19.900
+ -4373018.752 4 -3407542.916 4 23976561.929 23976562.308 23976561.156
+ 28.100 24.200
+ -11373458.968 6 -8862422.395 5 22299372.845 22299372.256 22299372.513
+ 40.200 33.800
+ -18823526.947 7 -14667669.910 6 20919638.621 20919637.867 20919637.493
+ 44.500 41.000
+ -24404679.799 7 -19016618.880 8 20179390.851 20179387.383 20179390.141
+ 47.800 48.600
+ -8015091.288 5 -6245515.447 5 22867196.163 22867195.603 22867194.822
+ 33.200 30.800
+ -9834249.580 5 -7663042.624 5 22597031.513 22597031.351 22597031.042
+ 35.400 32.600
+ -8000999.901 5 -6234537.993 4 23110445.497 23110443.798 23110445.228
+ 32.300 25.900
+ 06 1 1 22 22 30.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 5213402.591 3 4062393.851 3 24342895.864 24342897.527 24342895.869
+ 19.300 19.900
+ -4470627.067 4 -3483601.253 4 23957988.079 23957988.460 23957987.125
+ 28.400 26.200
+ -11297063.157 6 -8802893.179 5 22313910.305 22313909.946 22313910.159
+ 40.200 33.600
+ -18891678.491 7 -14720774.975 6 20906669.691 20906669.184 20906668.615
+ 44.500 41.400
+ -24384671.617 8 -19001028.074 8 20183198.363 20183194.779 20183197.606
+ 48.000 48.500
+ -7942027.350 5 -6188582.534 5 22881099.415 22881099.232 22881098.201
+ 32.600 31.000
+ -9809214.765 5 -7643534.969 5 22601795.573 22601795.212 22601795.156
+ 35.300 32.600
+ -7976083.130 5 -6215122.277 4 23115187.068 23115185.265 23115186.635
+ 32.600 25.900
+ 06 1 1 22 23 0.0000000 0 8G 7G 6G 4G10G 2G 5G30G13
+ 5318074.535 3 4143956.412 1 24362814.089 24362815.565 24362813.977
+ 22.100 11.000
+ -4568098.321 4 -3559552.793 4 23939438.582 23939439.709 23939438.370
+ 26.200 27.400
+ -11220512.167 6 -8743243.066 5 22328478.076 22328477.069 22328477.619
+ 40.500 33.500
+ -18959360.783 7 -14773514.401 6 20893790.142 20893789.611 20893789.100
+ 44.500 41.500
+ -24364301.079 7 -18985154.918 8 20187074.835 20187071.109 20187074.033
+ 47.900 48.500
+ -7868605.921 5 -6131371.038 5 22895071.083 22895070.742 22895069.988
+ 32.300 31.000
+ -9783602.749 5 -7623577.540 5 22606668.948 22606669.093 22606668.680
+ 35.400 32.300
+ -7950555.640 5 -6195230.699 4 23120044.352 23120043.312 23120044.161
+ 32.600 26.500
+ 06 1 1 22 23 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -4665430.441 4 -3635395.916 4 23920916.955 23920917.855 23920916.527
+ 29.000 27.400
+ -11143806.849 6 -8683472.690 5 22343074.518 22343073.560 22343074.145
+ 40.500 33.400
+ -19026572.651 7 -14825887.266 6 20881000.331 20880999.487 20880999.224
+ 44.700 41.200
+ -24343568.523 7 -18968999.674 8 20191020.032 20191016.375 20191019.190
+ 47.800 48.400
+ -7794829.729 5 -6073883.114 5 22909109.768 22909110.038 22909108.886
+ 31.300 31.500
+ -9757414.941 5 -7603171.452 5 22611652.592 22611652.349 22611652.242
+ 35.600 32.700
+ -7924418.134 5 -6174863.805 4 23125019.089 23125016.823 23125018.498
+ 33.100 25.600
+ 06 1 1 22 24 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -4762621.355 4 -3711129.018 4 23902422.329 23902423.512 23902421.645
+ 28.400 28.800
+ -11066947.884 6 -8623582.590 5 22357700.208 22357699.281 22357699.833
+ 40.000 33.200
+ -19093312.835 7 -14877892.582 6 20868300.274 20868299.147 20868299.015
+ 44.700 41.400
+ -24322474.195 7 -18952562.526 8 20195034.181 20195030.497 20195033.318
+ 47.800 48.300
+ -7720701.700 5 -6016121.047 5 22923216.644 22923216.170 22923215.447
+ 32.100 31.000
+ -9730652.957 5 -7582317.947 5 22616745.434 22616744.926 22616744.935
+ 35.500 32.000
+ -7897671.384 5 -6154022.186 4 23130107.794 23130106.687 23130107.667
+ 31.800 25.900
+ 06 1 1 22 24 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -4859669.026 4 -3786750.517 4 23883955.395 23883955.523 23883954.555
+ 29.000 26.800
+ -10989935.832 6 -8563573.201 5 22372354.878 22372354.565 22372354.573
+ 39.800 33.800
+ -19159580.358 7 -14929529.591 6 20855689.981 20855688.932 20855688.764
+ 44.700 41.400
+ -24301018.269 7 -18935843.616 8 20199117.109 20199113.334 20199116.289
+ 47.700 48.100
+ -7646224.773 5 -5958087.100 5 22937389.080 22937388.669 22937387.925
+ 33.100 30.400
+ -9703318.026 5 -7561017.997 5 22621947.137 22621946.773 22621946.613
+ 35.600 32.600
+ -7870316.085 5 -6132706.366 4 23135313.729 23135312.542 23135313.368
+ 32.400 26.500
+ 06 1 1 22 25 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -4956571.222 4 -3862258.679 4 23865515.152 23865515.730 23865514.198
+ 28.800 26.800
+ -10912771.638 6 -8503445.268 5 22387038.788 22387038.186 22387038.362
+ 39.200 33.500
+ -19225373.559 7 -14980797.003 6 20843169.783 20843168.766 20843168.588
+ 44.700 41.300
+ -24279201.035 7 -18918843.166 8 20203268.550 20203265.020 20203267.774
+ 47.700 48.100
+ -7571401.847 5 -5899783.533 4 22951627.465 22951626.907 22951626.354
+ 33.600 29.900
+ -9675411.773 5 -7539272.858 5 22627256.938 22627257.192 22627256.739
+ 35.200 32.800
+ -7842353.167 5 -6110917.070 4 23140634.792 23140632.966 23140634.436
+ 32.000 25.300
+ 06 1 1 22 25 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5053325.868 4 -3937651.810 4 23847102.762 23847103.749 23847102.259
+ 27.600 26.500
+ -10835455.829 6 -8443199.186 5 22401751.647 22401750.901 22401751.367
+ 39.700 33.500
+ -19290691.178 7 -15031693.826 6 20830740.386 20830739.275 20830739.082
+ 44.800 41.600
+ -24257022.822 7 -18901561.433 8 20207488.992 20207485.457 20207488.241
+ 47.700 48.100
+ -7496235.758 5 -5841212.574 4 22965931.227 22965930.547 22965930.052
+ 33.800 29.700
+ -9646935.689 5 -7517083.695 5 22632675.979 22632675.879 22632675.757
+ 35.900 32.100
+ -7813783.471 5 -6088654.947 4 23146071.361 23146069.533 23146071.159
+ 32.400 25.600
+ 06 1 1 22 26 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5149930.910 4 -4012928.402 4 23828719.721 23828720.326 23828719.156
+ 26.800 25.300
+ -10757989.376 6 -8382835.714 5 22416493.088 22416492.251 22416492.681
+ 39.400 33.000
+ -19355531.919 7 -15082219.056 6 20818401.397 20818400.699 20818400.226
+ 45.100 41.900
+ -24234483.985 7 -18883998.696 8 20211778.135 20211774.471 20211777.328
+ 47.800 48.000
+ -7420729.458 5 -5782376.501 4 22980299.416 22980298.949 22980298.362
+ 33.900 29.700
+ -9617891.326 5 -7494451.720 5 22638202.749 22638202.791 22638202.514
+ 34.700 32.700
+ -7784608.020 5 -6065920.819 4 23151623.663 23151621.811 23151623.208
+ 32.400 26.200
+ 06 1 1 22 26 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5246384.287 4 -4088086.812 4 23810364.969 23810365.631 23810364.315
+ 28.800 24.600
+ -10680372.838 6 -8322355.306 5 22431262.606 22431262.516 22431262.396
+ 39.000 33.500
+ -19419894.917 7 -15132372.021 6 20806153.669 20806152.676 20806152.476
+ 45.000 41.800
+ -24211584.776 7 -18866155.152 8 20216135.682 20216132.049 20216134.885
+ 47.800 48.100
+ -7344885.894 5 -5723277.635 4 22994731.962 22994731.588 22994730.842
+ 33.000 29.000
+ -9588280.296 5 -7471378.197 5 22643837.568 22643837.355 22643837.305
+ 35.400 32.000
+ -7754827.648 5 -6042715.314 4 23157290.312 23157288.455 23157290.116
+ 32.600 24.600
+ 06 1 1 22 27 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5342683.937 5 -4163125.461 3 23792040.113 23792040.084 23792039.627
+ 31.100 23.800
+ -10602607.195 6 -8261758.712 5 22446061.279 22446060.431 22446060.979
+ 39.000 32.300
+ -19483778.938 7 -15182151.756 6 20793996.884 20793995.797 20793995.697
+ 45.200 41.800
+ -24188325.765 7 -18848031.243 8 20220561.735 20220558.085 20220560.976
+ 47.900 48.000
+ -7268707.995 5 -5663918.256 4 23009228.081 23009227.709 23009226.885
+ 32.100 28.600
+ -9558104.055 5 -7447864.236 5 22649580.136 22649579.927 22649579.789
+ 34.900 32.000
+ -7724443.285 5 -6019039.170 4 23163071.955 23163070.376 23163071.706
+ 31.300 25.300
+ 06 1 1 22 27 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5438827.554 4 -4238042.528 4 23773744.934 23773744.554 23773743.770
+ 29.500 24.200
+ -10524693.016 6 -8201046.363 5 22460888.022 22460887.244 22460887.632
+ 39.100 33.000
+ -19547182.807 7 -15231557.344 6 20781931.482 20781930.522 20781930.297
+ 45.000 41.900
+ -24164707.006 7 -18829627.010 7 20225056.204 20225052.563 20225055.384
+ 47.700 47.900
+ -7192198.557 5 -5604300.533 4 23023787.483 23023786.892 23023786.245
+ 31.500 28.400
+ -9527364.288 5 -7423911.169 5 22655429.423 22655429.592 22655429.152
+ 35.100 31.500
+ -7693455.501 5 -5994892.849 4 23168969.353 23168967.351 23168968.804
+ 31.600 24.900
+ 06 1 1 22 28 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5534813.040 4 -4312836.343 4 23755479.796 23755480.049 23755478.760
+ 29.700 26.200
+ -10446631.089 6 -8140218.888 5 22475742.761 22475741.791 22475742.289
+ 39.100 32.300
+ -19610105.226 7 -15280587.782 7 20769957.667 20769956.701 20769956.529
+ 45.300 42.300
+ -24140728.523 7 -18810942.470 7 20229618.993 20229615.482 20229618.181
+ 47.600 47.700
+ -7115360.671 5 -5544426.880 4 23038408.980 23038408.755 23038407.929
+ 31.500 27.900
+ -9496062.558 5 -7399520.212 5 22661386.083 22661385.902 22661385.652
+ 34.400 31.600
+ -7661866.055 5 -5970277.670 3 23174980.691 23174978.465 23174979.869
+ 31.600 23.400
+ 06 1 1 22 28 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5630638.347 4 -4387505.340 4 23737244.601 23737244.349 23737243.594
+ 28.600 25.900
+ -10368422.153 6 -8079276.863 5 22490625.158 22490624.428 22490624.938
+ 39.300 32.300
+ -19672545.106 7 -15329242.211 7 20758075.690 20758074.808 20758074.530
+ 45.200 42.100
+ -24116390.872 7 -18791978.065 7 20234250.300 20234246.737 20234249.566
+ 47.600 47.700
+ -7038197.259 5 -5484299.572 4 23053092.971 23053092.357 23053091.673
+ 31.500 26.200
+ -9464200.596 5 -7374692.713 5 22667449.206 22667449.073 22667448.959
+ 35.100 32.000
+ -7629675.449 5 -5945194.086 4 23181105.751 23181104.446 23181105.304
+ 31.800 25.600
+ 06 1 1 22 29 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5726301.395 4 -4462047.866 4 23719039.192 23719040.564 23719038.848
+ 27.900 27.600
+ -10290066.850 6 -8018220.790 5 22505535.986 22505534.845 22505535.494
+ 39.100 31.600
+ -19734501.413 7 -15377519.830 7 20746285.680 20746284.867 20746284.557
+ 45.200 42.400
+ -24091694.251 7 -18772733.940 7 20238949.986 20238946.371 20238949.194
+ 47.500 47.500
+ -6960711.358 5 -5423920.953 4 23067837.872 23067837.292 23067836.823
+ 31.500 25.900
+ -9431780.120 5 -7349430.011 5 22673618.540 22673618.298 22673618.301
+ 35.200 31.100
+ -7596884.917 5 -5919643.013 4 23187346.170 23187344.369 23187345.724
+ 32.400 25.900
+ 06 1 1 22 29 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5821799.755 5 -4536462.118 4 23700867.177 23700867.664 23700866.653
+ 31.000 26.800
+ -10211565.754 6 -7957051.113 5 22520474.429 22520473.331 22520473.882
+ 38.600 32.100
+ -19795972.919 7 -15425419.676 7 20734588.242 20734587.186 20734587.038
+ 45.300 42.300
+ -24066639.179 7 -18753210.505 7 20243717.930 20243714.204 20243717.081
+ 47.700 47.500
+ -6882905.776 5 -5363293.246 4 23082644.188 23082643.201 23082642.796
+ 31.600 27.100
+ -9398802.830 5 -7323733.424 5 22679894.129 22679893.913 22679893.757
+ 35.100 31.800
+ -7563495.307 5 -5893625.132 4 23193699.605 23193698.418 23193699.280
+ 30.400 26.200
+ 06 1 1 22 30 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -5917131.551 5 -4610746.553 4 23682725.564 23682726.422 23682725.271
+ 30.800 26.200
+ -10132919.861 6 -7895768.604 5 22535439.914 22535439.058 22535439.541
+ 39.100 32.100
+ -19856958.446 7 -15472940.840 7 20722982.981 20722982.102 20722981.745
+ 45.100 42.600
+ -24041225.809 7 -18733407.874 7 20248553.862 20248550.180 20248553.016
+ 47.700 47.400
+ -6804783.485 5 -5302418.756 4 23097509.939 23097509.535 23097508.868
+ 31.500 26.500
+ -9365270.325 5 -7297604.203 5 22686274.964 22686275.197 22686274.534
+ 33.800 32.300
+ -7529507.739 5 -5867141.314 4 23200167.403 23200165.477 23200167.085
+ 31.800 24.600
+ 06 1 1 22 30 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6012294.513 5 -4684899.440 4 23664616.841 23664617.393 23664616.382
+ 30.400 27.100
+ -10054129.807 6 -7834373.751 5 22550432.960 22550432.281 22550432.509
+ 38.600 32.000
+ -19917456.966 7 -15520082.521 7 20711470.267 20711469.637 20711469.161
+ 45.100 42.500
+ -24015454.469 7 -18713326.305 7 20253457.977 20253454.263 20253457.226
+ 47.700 47.200
+ -6726347.635 5 -5241299.923 4 23112435.706 23112435.298 23112434.510
+ 31.000 27.100
+ -9331184.386 5 -7271043.738 5 22692761.330 22692761.218 22692760.959
+ 34.700 31.600
+ -7494923.439 5 -5840192.488 4 23206749.059 23206746.744 23206748.472
+ 32.100 24.200
+ 06 1 1 22 31 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6107286.388 4 -4758919.020 4 23646540.692 23646540.949 23646539.778
+ 29.900 27.100
+ -9975196.202 6 -7772867.043 5 22565453.258 22565452.804 22565453.037
+ 38.300 32.000
+ -19977467.497 7 -15566843.950 7 20700050.869 20700049.941 20700049.668
+ 45.100 42.600
+ -23989325.450 7 -18692966.026 7 20258430.195 20258426.452 20258429.401
+ 47.700 47.200
+ -6647600.988 5 -5179938.924 4 23127421.061 23127420.568 23127419.748
+ 31.000 26.800
+ -9296546.801 5 -7244053.413 5 22699352.847 22699352.311 22699352.530
+ 34.700 31.300
+ -7459743.469 5 -5812779.512 4 23213442.444 23213441.802 23213442.356
+ 30.400 25.300
+ 06 1 1 22 31 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6202105.329 4 -4832803.824 4 23628497.625 23628497.750 23628496.554
+ 29.700 27.900
+ -9896119.955 6 -7711249.200 5 22580501.221 22580501.041 22580500.907
+ 38.100 32.800
+ -20036988.992 7 -15613224.318 7 20688724.282 20688723.290 20688723.097
+ 45.300 42.600
+ -23962839.222 7 -18672327.405 7 20263470.234 20263466.552 20263469.424
+ 47.700 47.100
+ -6568546.647 5 -5118338.151 4 23142464.205 23142464.084 23142463.176
+ 31.000 26.800
+ -9261359.408 5 -7216634.662 5 22706048.774 22706048.360 22706048.383
+ 34.900 31.100
+ -7423969.136 5 -5784903.402 4 23220250.329 23220248.897 23220250.074
+ 31.500 24.600
+ 06 1 1 22 32 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6296748.898 4 -4906551.978 4 23610487.379 23610487.318 23610486.398
+ 29.500 28.600
+ -9816901.527 6 -7649520.579 5 22595576.105 22595575.419 22595575.779
+ 38.100 32.000
+ -20096020.446 7 -15659222.827 7 20677490.914 20677489.854 20677489.732
+ 45.100 42.600
+ -23935996.210 7 -18651410.768 7 20268578.389 20268574.648 20268577.607
+ 47.800 47.100
+ -6489187.543 5 -5056499.904 4 23157565.921 23157565.666 23157564.828
+ 31.600 27.400
+ -9225623.975 5 -7188788.877 5 22712848.634 22712848.353 22712848.417
+ 34.100 30.200
+ -7387601.464 5 -5756564.956 3 23227171.131 23227169.068 23227170.662
+ 31.000 23.000
+ 06 1 1 22 32 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6391214.922 5 -4980161.806 4 23592510.806 23592511.108 23592510.099
+ 31.300 28.100
+ -9737541.696 6 -7587681.753 5 22610678.342 22610676.955 22610677.644
+ 37.900 31.500
+ -20154560.780 7 -15704838.652 7 20666351.115 20666350.084 20666349.894
+ 45.300 42.600
+ -23908796.173 7 -18630215.933 7 20273754.471 20273750.744 20273753.636
+ 47.900 47.100
+ -6409526.745 5 -4994426.580 4 23172725.051 23172724.540 23172723.821
+ 31.500 27.100
+ -9189342.404 5 -7160517.520 5 22719753.006 22719752.703 22719752.669
+ 34.400 30.800
+ -7350641.733 5 -5727765.159 4 23234203.751 23234202.859 23234203.534
+ 30.800 24.900
+ 06 1 1 22 33 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6485501.272 5 -5053631.615 4 23574568.931 23574568.657 23574567.955
+ 31.600 27.900
+ -9658041.411 6 -7525733.487 5 22625806.323 22625805.808 22625805.774
+ 37.700 32.600
+ -20212608.856 7 -15750070.896 7 20655304.888 20655303.855 20655303.742
+ 45.300 42.800
+ -23881239.938 7 -18608743.544 7 20278998.211 20278994.499 20278997.488
+ 47.800 47.000
+ -6329567.195 5 -4932120.447 4 23187940.771 23187940.374 23187939.750
+ 31.600 27.400
+ -9152516.490 5 -7131822.014 5 22726760.680 22726760.464 22726760.478
+ 34.100 31.000
+ -7313091.100 5 -5698504.904 3 23241349.954 23241348.330 23241349.709
+ 31.800 23.000
+ 06 1 1 22 33 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6579605.844 5 -5126959.798 4 23556660.713 23556661.366 23556660.235
+ 32.000 28.100
+ -9578401.069 6 -7463676.084 5 22640961.368 22640960.629 22640960.866
+ 37.200 32.400
+ -20270163.979 7 -15794919.026 7 20644352.572 20644351.483 20644351.398
+ 45.400 42.900
+ -23853327.691 7 -18586993.739 7 20284309.697 20284306.014 20284308.916
+ 47.800 47.000
+ -6249311.876 5 -4869583.847 4 23203212.635 23203212.488 23203211.729
+ 31.500 27.400
+ -9115148.062 5 -7102703.763 5 22733871.399 22733871.441 22733871.272
+ 34.500 30.200
+ -7274950.979 5 -5668785.357 4 23248607.320 23248606.745 23248606.982
+ 30.400 25.600
+ 06 1 1 22 34 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6673526.238 5 -5200144.453 4 23538789.180 23538788.301 23538788.286
+ 32.100 26.500
+ -9498621.451 6 -7401510.169 5 22656142.624 22656142.225 22656142.338
+ 37.500 31.800
+ -20327225.111 7 -15839382.228 7 20633494.076 20633493.213 20633492.850
+ 45.400 43.100
+ -23825059.889 7 -18564966.873 7 20289688.904 20289685.116 20289688.146
+ 47.900 46.800
+ -6168763.845 5 -4806819.168 4 23218540.857 23218540.491 23218539.557
+ 31.100 27.900
+ -9077239.023 5 -7073164.260 5 22741085.401 22741085.272 22741085.149
+ 34.400 30.100
+ -7236222.709 5 -5638607.477 4 23255977.646 23255975.902 23255977.177
+ 31.300 24.900
+ 06 1 1 22 34 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6767260.535 5 -5273184.081 4 23520951.180 23520951.603 23520950.427
+ 30.600 27.900
+ -9418703.272 6 -7339236.275 5 22671350.455 22671350.056 22671350.293
+ 37.700 31.600
+ -20383791.229 7 -15883459.696 7 20622729.940 20622728.873 20622728.781
+ 45.600 43.100
+ -23796436.634 7 -18542663.033 7 20295135.842 20295131.943 20295135.013
+ 47.900 46.700
+ -6087926.082 5 -4743828.731 4 23233923.530 23233923.637 23233922.285
+ 31.500 28.400
+ -9038791.336 5 -7043205.036 4 22748401.789 22748401.504 22748401.588
+ 34.600 29.900
+ -7196907.338 5 -5607972.123 4 23263459.321 23263457.591 23263458.918
+ 31.300 25.600
+ 06 1 1 22 35 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6860806.366 5 -5346076.872 4 23503150.345 23503150.460 23503149.347
+ 30.200 27.600
+ -9338647.131 6 -7276854.885 5 22686584.710 22686584.280 22686584.607
+ 37.900 31.300
+ -20439861.380 7 -15927150.700 7 20612059.805 20612059.022 20612058.766
+ 45.400 43.100
+ -23767458.117 7 -18520082.364 7 20300650.242 20300646.459 20300649.398
+ 47.700 46.700
+ -6006801.635 5 -4680614.898 4 23249360.907 23249361.040 23249359.897
+ 31.600 27.900
+ -8999806.861 5 -7012827.527 4 22755820.381 22755820.100 22755820.057
+ 34.300 29.500
+ -7157006.235 5 -5576880.351 3 23271051.893 23271050.215 23271051.529
+ 31.000 23.400
+ 06 1 1 22 35 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -6954161.498 4 -5418821.074 4 23485385.194 23485385.176 23485384.328
+ 29.700 27.400
+ -9258453.779 6 -7214366.561 5 22701845.333 22701844.358 22701844.870
+ 37.300 30.800
+ -20495434.784 7 -15970454.634 7 20601484.553 20601483.824 20601483.505
+ 45.400 43.300
+ -23738124.981 7 -18497225.370 7 20306232.051 20306228.309 20306231.268
+ 47.800 46.600
+ -5925393.506 5 -4617180.017 4 23264852.989 23264852.555 23264851.717
+ 32.300 28.400
+ -8960287.671 5 -6982033.371 5 22763340.644 22763340.478 22763340.131
+ 33.400 30.400
+ -7116521.059 5 -5545333.445 4 23278755.699 23278754.473 23278755.439
+ 30.200 24.600
+ 06 1 1 22 36 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7047323.776 5 -5491415.000 4 23467657.291 23467657.459 23467656.332
+ 31.000 28.400
+ -9178123.865 6 -7151771.830 5 22717132.080 22717130.698 22717131.424
+ 37.700 30.400
+ -20550510.601 7 -16013370.832 7 20591004.278 20591003.230 20591003.055
+ 45.500 43.100
+ -23708437.521 7 -18474092.280 7 20311881.219 20311877.619 20311880.487
+ 47.600 46.700
+ -5843704.717 5 -4553526.431 4 23280397.442 23280397.255 23280396.353
+ 31.600 28.100
+ -8920235.739 5 -6950824.089 4 22770962.286 22770961.871 22770961.799
+ 33.800 29.500
+ -7075452.752 5 -5513332.172 3 23286571.239 23286569.122 23286570.920
+ 31.300 23.800
+ 06 1 1 22 36 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7140290.964 5 -5563856.914 4 23449965.628 23449965.931 23449965.032
+ 31.800 29.900
+ -9097658.099 6 -7089071.236 5 22732443.812 22732443.031 22732443.401
+ 37.300 30.800
+ -20605087.799 7 -16055898.496 7 20580618.433 20580617.465 20580617.255
+ 45.400 43.400
+ -23678395.899 7 -18450683.223 7 20317598.060 20317594.420 20317597.250
+ 47.600 46.600
+ -5761738.267 5 -4489656.487 4 23295995.102 23295995.053 23295994.030
+ 31.600 27.100
+ -8879652.894 5 -6919201.094 4 22778684.887 22778684.663 22778684.479
+ 33.500 28.600
+ -7033802.812 5 -5480877.651 3 23294497.050 23294494.808 23294496.618
+ 32.100 23.400
+ 06 1 1 22 37 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7233060.892 5 -5636145.098 4 23432312.751 23432312.589 23432311.862
+ 33.500 29.200
+ -9017057.082 6 -7026265.250 5 22747781.621 22747780.663 22747781.375
+ 37.500 30.600
+ -20659165.595 7 -16098037.019 7 20570327.632 20570326.714 20570326.528
+ 45.400 43.300
+ -23648000.747 7 -18426998.691 7 20323382.141 20323378.309 20323381.252
+ 47.400 46.400
+ -5679497.172 5 -4425572.541 4 23311644.958 23311645.165 23311643.800
+ 30.400 27.900
+ -8838541.302 5 -6887166.101 4 22786508.236 22786507.755 22786507.954
+ 33.900 29.000
+ -6991572.775 5 -5447971.128 4 23302532.661 23302531.275 23302532.477
+ 32.000 24.600
+ 06 1 1 22 37 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7325631.306 5 -5708277.818 4 23414697.570 23414696.547 23414696.427
+ 33.500 28.100
+ -8936321.554 6 -6963354.467 5 22763145.189 22763144.296 22763144.727
+ 36.500 30.200
+ -20712743.136 7 -16139785.737 7 20560132.298 20560131.195 20560131.128
+ 45.500 43.300
+ -23617252.287 7 -18403038.850 7 20329233.381 20329229.513 20329232.562
+ 47.600 46.300
+ -5596984.555 5 -4361277.023 4 23327346.673 23327346.581 23327345.492
+ 31.000 26.500
+ -8796903.008 5 -6854720.687 4 22794431.704 22794431.025 22794431.513
+ 34.100 28.400
+ -6948764.031 5 -5414613.659 4 23310678.777 23310676.927 23310678.584
+ 30.800 24.200
+ 06 1 1 22 38 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7417999.967 5 -5780253.345 4 23397118.801 23397119.679 23397118.448
+ 32.400 28.800
+ -8855452.141 6 -6900339.347 4 22778534.032 22778533.293 22778533.545
+ 36.100 29.900
+ -20765819.464 7 -16181143.897 7 20550032.178 20550031.159 20550030.949
+ 45.400 43.500
+ -23586150.812 7 -18378803.929 7 20335151.722 20335148.060 20335150.868
+ 47.400 46.400
+ -5514203.405 5 -4296772.261 4 23343099.334 23343099.088 23343098.151
+ 30.400 25.300
+ -8754739.940 5 -6821866.350 4 22802455.095 22802454.503 22802454.793
+ 33.100 28.100
+ -6905378.035 5 -5380806.391 4 23318935.116 23318933.147 23318934.928
+ 31.300 24.900
+ 06 1 1 22 38 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7510164.583 5 -5852069.867 4 23379580.946 23379581.009 23379580.106
+ 31.000 28.800
+ -8774449.578 6 -6837220.470 5 22793948.012 22793947.883 22793947.601
+ 36.000 30.800
+ -20818393.815 7 -16222110.903 7 20540027.769 20540026.514 20540026.617
+ 45.500 43.400
+ -23554696.553 7 -18354294.114 7 20341137.321 20341133.574 20341136.491
+ 47.500 46.300
+ -5431156.742 4 -4232060.580 4 23358902.571 23358902.199 23358901.347
+ 29.000 24.200
+ -8712054.403 5 -6788604.909 4 22810578.095 22810577.223 22810577.709
+ 33.600 27.900
+ -6861416.310 5 -5346550.520 4 23327300.369 23327299.120 23327300.159
+ 30.800 25.300
+ 06 1 1 22 39 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7602123.091 5 -5923725.804 4 23362082.453 23362081.931 23362081.381
+ 31.500 28.800
+ -8693314.396 5 -6773998.271 5 22809387.310 22809387.268 22809387.092
+ 35.600 31.000
+ -20870465.366 7 -16262686.123 7 20530118.811 20530117.681 20530117.632
+ 45.500 43.600
+ -23522890.084 7 -18329509.850 7 20347189.792 20347186.128 20347189.018
+ 47.700 46.200
+ -5347847.647 5 -4167144.404 3 23374755.665 23374755.417 23374754.657
+ 30.100 22.600
+ -8668848.287 5 -6754937.819 4 22818799.570 22818799.203 22818799.388
+ 33.400 29.500
+ -6816880.456 5 -5311847.256 4 23335775.761 23335774.570 23335775.267
+ 31.600 25.300
+ 06 1 1 22 39 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7693873.014 5 -5995219.187 4 23344622.406 23344622.612 23344621.976
+ 32.600 29.700
+ -8612047.385 6 -6710673.338 5 22824852.824 22824851.962 22824852.307
+ 36.400 31.300
+ -20922033.486 7 -16302869.052 7 20520305.761 20520304.748 20520304.557
+ 45.600 43.800
+ -23490731.813 7 -18304451.454 7 20353309.215 20353305.609 20353308.478
+ 47.600 46.200
+ -5264279.149 4 -4102026.098 3 23390658.645 23390658.116 23390657.370
+ 28.800 23.800
+ -8625123.664 5 -6720866.704 4 22827120.328 22827120.032 22827120.248
+ 33.600 29.700
+ -6771771.766 5 -5276697.635 4 23344359.762 23344358.324 23344359.368
+ 32.100 24.600
+ 06 1 1 22 40 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7785412.290 5 -6066548.450 4 23327202.999 23327202.817 23327202.364
+ 32.400 28.800
+ -8530649.313 6 -6647246.272 5 22840342.753 22840341.105 22840341.975
+ 36.500 30.600
+ -20973097.329 7 -16342659.043 7 20510588.351 20510587.516 20510587.273
+ 45.400 43.900
+ -23458221.954 7 -18279119.087 7 20359495.750 20359492.022 20359494.956
+ 47.600 46.100
+ -5180454.301 4 -4036708.030 4 23406609.850 23406609.681 23406608.578
+ 29.000 24.900
+ -8580882.860 5 -6686393.358 4 22835539.316 22835538.799 22835538.995
+ 34.100 29.000
+ -6726091.773 5 -5241102.823 4 23353052.295 23353050.532 23353052.125
+ 31.100 24.600
+ 06 1 1 22 40 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7876738.572 5 -6137711.729 4 23309824.230 23309824.402 23309823.550
+ 32.800 29.000
+ -8449120.562 5 -6583717.380 5 22855856.304 22855855.906 22855855.941
+ 35.900 31.300
+ -21023656.114 7 -16382055.486 7 20500967.429 20500966.514 20500966.198
+ 45.400 43.900
+ -23425360.953 7 -18253513.115 7 20365748.843 20365745.360 20365748.108
+ 47.500 46.000
+ -5096376.143 4 -3971192.605 4 23422609.658 23422609.214 23422608.464
+ 28.800 25.300
+ -8536127.882 5 -6651519.364 5 22844055.917 22844055.583 22844055.680
+ 33.800 30.400
+ -6679842.217 5 -5205064.192 4 23361852.425 23361851.876 23361852.485
+ 32.000 25.900
+ 06 1 1 22 41 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -7967849.623 5 -6208707.307 4 23292486.468 23292486.341 23292485.785
+ 33.200 29.200
+ -8367461.942 5 -6520087.307 5 22871395.486 22871394.998 22871395.086
+ 35.700 30.800
+ -21073709.234 7 -16421057.898 7 20491442.668 20491441.637 20491441.370
+ 45.200 43.900
+ -23392149.353 7 -18227633.939 7 20372068.944 20372065.330 20372068.118
+ 47.600 46.100
+ -5012047.721 5 -3905482.151 4 23438656.788 23438656.415 23438655.577
+ 30.400 24.900
+ -8490860.994 5 -6616246.469 5 22852669.712 22852669.459 22852669.507
+ 33.900 30.100
+ -6633024.804 5 -5168583.117 4 23370761.898 23370760.508 23370761.737
+ 30.800 24.600
+ 06 1 1 22 41 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8058743.106 5 -6279533.344 4 23275190.321 23275189.837 23275189.558
+ 34.300 29.700
+ -8285674.143 5 -6456356.566 4 22886959.174 22886958.440 22886958.771
+ 35.400 29.700
+ -21123255.831 7 -16459665.623 7 20482014.302 20482013.250 20482013.080
+ 45.400 44.000
+ -23358587.045 7 -18201481.489 7 20378455.459 20378451.989 20378454.812
+ 47.500 45.900
+ -4927472.219 5 -3839579.177 4 23454750.763 23454750.657 23454749.683
+ 31.000 25.900
+ -8445084.294 5 -6580576.322 5 22861380.861 22861380.599 22861380.491
+ 33.100 30.100
+ -6585640.886 5 -5131660.570 3 23379779.021 23379777.089 23379778.803
+ 31.100 23.400
+ 06 1 1 22 42 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8149416.888 5 -6350188.168 5 23257935.160 23257935.290 23257934.396
+ 33.500 30.100
+ -8203757.713 5 -6392525.595 5 22902547.787 22902546.796 22902547.136
+ 35.500 30.400
+ -21172295.100 7 -16497878.025 7 20472682.372 20472681.388 20472681.238
+ 45.500 44.100
+ -23324674.882 7 -18175056.426 7 20384909.033 20384905.280 20384908.174
+ 47.800 45.900
+ -4842652.502 5 -3773485.912 4 23470891.874 23470891.374 23470890.627
+ 31.500 26.200
+ -8398800.117 5 -6544510.720 4 22870188.348 22870188.265 22870188.083
+ 32.600 29.500
+ -6537692.286 5 -5094298.016 3 23388903.719 23388901.475 23388903.323
+ 32.300 23.800
+ 06 1 1 22 42 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8239868.732 5 -6420670.063 4 23240722.872 23240722.784 23240722.126
+ 34.300 29.200
+ -8121713.330 5 -6328594.907 4 22918159.840 22918159.121 22918159.399
+ 35.400 29.700
+ -21220826.650 7 -16535694.803 7 20463447.273 20463446.091 20463446.074
+ 45.500 44.000
+ -23290413.057 7 -18148358.891 7 20391428.824 20391425.086 20391428.017
+ 47.700 45.700
+ -4757591.712 5 -3707204.808 4 23487078.295 23487078.066 23487077.127
+ 32.800 26.800
+ -8352010.521 5 -6508051.313 4 22879091.849 22879091.904 22879091.667
+ 31.800 29.500
+ -6489180.533 5 -5056496.667 3 23398134.817 23398133.114 23398134.621
+ 31.600 23.400
+ 06 1 1 22 43 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8330096.274 5 -6490977.185 4 23223553.431 23223552.752 23223552.317
+ 34.300 29.000
+ -8039541.573 5 -6264564.986 4 22933796.599 22933795.978 22933796.243
+ 35.200 29.200
+ -21268849.849 7 -16573115.464 7 20454308.512 20454307.517 20454307.405
+ 45.600 44.200
+ -23255801.683 7 -18121388.984 7 20398015.151 20398011.323 20398014.395
+ 47.800 45.600
+ -4672293.007 5 -3640738.287 4 23503310.063 23503309.834 23503308.793
+ 31.800 26.800
+ -8304717.922 5 -6471199.970 4 22888091.430 22888091.425 22888091.154
+ 31.600 29.900
+ -6440107.280 5 -5018257.769 4 23407473.031 23407472.042 23407472.983
+ 30.600 24.600
+ 06 1 1 22 43 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8420097.228 5 -6561107.763 4 23206426.174 23206426.043 23206425.296
+ 33.500 28.800
+ -7957243.189 5 -6200436.389 4 22949458.011 22949456.554 22949457.293
+ 35.700 29.700
+ -21316363.951 7 -16610139.426 7 20445266.974 20445265.856 20445265.819
+ 45.600 44.300
+ -23220841.468 7 -18094147.252 7 20404667.903 20404663.970 20404667.062
+ 47.800 45.600
+ -4586759.272 5 -3574088.652 4 23519586.337 23519586.338 23519585.391
+ 31.300 25.900
+ -8256924.506 5 -6433958.361 5 22897186.147 22897186.137 22897185.751
+ 31.600 30.100
+ -6390474.559 5 -4979582.924 4 23416918.302 23416916.495 23416917.973
+ 31.300 24.600
+ 06 1 1 22 44 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8509869.611 5 -6631060.209 5 23189343.113 23189343.187 23189342.535
+ 33.200 30.200
+ -7874818.783 5 -6136209.577 4 22965142.524 22965141.422 22965142.142
+ 35.500 29.000
+ -21363368.415 7 -16646766.269 7 20436322.334 20436321.256 20436321.151
+ 45.700 44.200
+ -23185532.462 7 -18066633.735 7 20411386.831 20411383.046 20411386.125
+ 47.800 45.600
+ -4500993.678 5 -3507258.344 4 23535906.904 23535906.964 23535905.820
+ 30.200 24.200
+ -8208632.600 5 -6396328.314 4 22906375.647 22906375.851 22906375.344
+ 30.800 28.600
+ -6340283.965 5 -4940473.368 3 23426469.203 23426467.499 23426468.824
+ 30.400 23.400
+ 06 1 1 22 44 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8599410.663 5 -6700832.378 5 23172303.965 23172303.960 23172303.265
+ 33.500 30.400
+ -7792268.952 5 -6071885.065 5 22980850.845 22980850.797 22980850.672
+ 34.900 30.100
+ -21409862.523 7 -16682995.427 7 20427474.865 20427473.714 20427473.602
+ 45.500 44.300
+ -23149875.292 7 -18038848.924 7 20418172.055 20418168.401 20418171.355
+ 47.700 45.500
+ -4414999.310 4 -3440249.765 4 23552271.160 23552271.040 23552269.903
+ 29.200 24.200
+ -8159844.473 5 -6358311.609 4 22915659.594 22915659.848 22915659.352
+ 31.000 29.200
+ -6289536.882 5 -4900930.151 3 23436125.836 23436123.886 23436125.592
+ 31.300 21.600
+ 06 1 1 22 45 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8688718.478 5 -6770422.846 5 23155309.124 23155309.225 23155308.483
+ 33.600 31.300
+ -7709594.364 5 -6007463.311 4 22996583.222 22996582.645 22996582.902
+ 34.900 28.800
+ -21455845.661 7 -16718826.428 7 20418724.180 20418723.398 20418723.078
+ 45.400 44.400
+ -23113870.490 7 -18010793.228 7 20425023.788 20425019.929 20425022.952
+ 47.800 45.500
+ -4328779.199 4 -3373065.285 3 23568677.719 23568678.338 23568676.837
+ 27.400 23.400
+ -8110562.372 5 -6319909.988 5 22925038.307 22925037.801 22925037.755
+ 32.700 30.100
+ -6238235.078 5 -4860954.732 3 23445888.551 23445886.720 23445888.374
+ 31.600 23.400
+ 06 1 1 22 45 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8777790.579 5 -6839829.615 5 23138359.310 23138359.460 23138358.541
+ 33.400 31.300
+ -7626795.580 5 -5942944.790 5 23012339.613 23012339.323 23012339.369
+ 34.800 30.200
+ -21501317.398 7 -16754258.931 7 20410071.420 20410070.439 20410070.287
+ 45.300 44.400
+ -23077518.413 7 -17982466.929 7 20431941.294 20431937.581 20431940.524
+ 47.800 45.500
+ -4242336.435 4 -3305707.313 3 23585127.911 23585127.898 23585126.480
+ 25.900 23.800
+ -8060788.754 5 -6281125.373 4 22934509.620 22934509.463 22934509.365
+ 32.400 29.900
+ -6186380.569 4 -4820548.604 3 23455755.489 23455754.507 23455755.319
+ 29.900 23.000
+ 06 1 1 22 46 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8866624.784 5 -6909051.014 5 23121454.766 23121454.589 23121453.975
+ 33.600 31.100
+ -7543873.271 5 -5878330.029 4 23028119.216 23028118.643 23028119.074
+ 35.100 29.500
+ -21546277.253 7 -16789292.572 7 20401515.970 20401514.760 20401514.715
+ 45.400 44.400
+ -23040819.343 7 -17953870.247 7 20438924.995 20438921.049 20438924.128
+ 47.800 45.300
+ -4155674.059 4 -3238178.222 3 23601619.081 23601619.386 23601618.018
+ 26.200 23.400
+ -8010525.858 5 -6241959.501 4 22944074.598 22944074.134 22944074.209
+ 32.000 29.000
+ -6133975.134 5 -4779713.199 3 23465728.373 23465726.448 23465728.021
+ 30.800 22.100
+ 06 1 1 22 46 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -8955218.617 5 -6978085.105 5 23104596.449 23104595.776 23104595.309
+ 34.100 30.200
+ -7460828.084 5 -5813619.501 4 23043922.806 23043921.521 23043922.088
+ 34.500 28.600
+ -21590724.579 7 -16823926.835 7 20393057.655 20393056.610 20393056.532
+ 45.400 44.400
+ -23003773.706 7 -17925003.512 7 20445974.401 20445970.629 20445973.654
+ 47.800 45.300
+ -4068795.195 4 -3170480.432 3 23618151.488 23618151.787 23618150.383
+ 28.100 23.000
+ -7959776.052 5 -6202414.209 4 22953731.887 22953731.518 22953731.669
+ 33.400 28.100
+ -6081020.735 4 -4738450.027 3 23475804.820 23475803.441 23475804.442
+ 29.900 22.600
+ 06 1 1 22 47 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -9043570.012 5 -7046930.293 5 23087783.150 23087782.597 23087782.252
+ 33.800 30.400
+ -7377660.765 5 -5748813.819 4 23059748.829 23059747.756 23059748.361
+ 34.600 28.800
+ -21634658.858 7 -16858161.320 7 20384697.164 20384696.251 20384696.092
+ 45.300 44.600
+ -22966381.327 7 -17895866.592 7 20453090.002 20453086.199 20453089.119
+ 47.700 45.300
+ -3981702.867 4 -3102616.297 3 23634724.853 23634724.374 23634723.628
+ 28.100 22.100
+ -7908541.823 5 -6162491.426 4 22963481.804 22963481.120 22963481.467
+ 34.300 29.500
+ -6027519.210 4 -4696760.507 3 23485986.036 23485984.482 23485985.518
+ 28.800 23.800
+ 06 1 1 22 47 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -9131676.604 5 -7115584.723 5 23071016.872 23071016.569 23071016.205
+ 34.600 30.400
+ -7294371.648 5 -5683913.233 4 23075597.539 23075597.143 23075597.538
+ 34.900 27.900
+ -21678079.329 7 -16891995.441 7 20376434.575 20376433.568 20376433.452
+ 45.300 44.500
+ -22928643.320 7 -17866460.348 7 20460271.435 20460267.531 20460270.577
+ 47.800 45.300
+ -3894400.168 4 -3034588.237 3 23651337.923 23651337.891 23651336.702
+ 29.200 22.600
+ -7856825.603 5 -6122193.082 4 22973323.154 22973322.412 22973322.679
+ 34.300 29.900
+ -5973471.935 4 -4654645.746 3 23496271.211 23496269.444 23496271.019
+ 29.900 23.000
+ 06 1 1 22 48 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -9219536.079 5 -7184046.622 4 23054298.078 23054297.051 23054297.150
+ 35.600 29.900
+ -7210961.506 5 -5618918.317 4 23091470.765 23091470.046 23091469.935
+ 34.600 29.500
+ -21720985.684 7 -16925428.951 7 20368269.925 20368268.745 20368268.785
+ 45.600 44.500
+ -22890560.025 7 -17836785.048 7 20467518.141 20467514.549 20467517.409
+ 47.900 45.200
+ -3806890.204 4 -2966398.651 3 23667991.066 23667990.248 23667989.782
+ 29.500 21.600
+ -7804629.696 5 -6081520.964 4 22983255.323 22983255.172 22983255.111
+ 32.000 29.700
+ -5918881.212 4 -4612107.527 3 23506658.967 23506657.731 23506658.880
+ 29.700 23.400
+ 06 1 1 22 48 30.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -9307145.987 5 -7252314.051 5 23037626.124 23037626.028 23037625.536
+ 35.700 31.300
+ -7127431.039 5 -5553829.667 4 23107365.524 23107364.845 23107365.407
+ 34.400 28.100
+ -21763377.790 7 -16958461.750 7 20360203.093 20360201.715 20360201.912
+ 45.600 44.500
+ -22852131.740 7 -17806840.924 7 20474830.721 20474827.049 20474830.035
+ 47.700 45.000
+ -3719175.979 4 -2898049.901 3 23684682.263 23684681.698 23684680.919
+ 29.000 22.100
+ -7751956.505 5 -6040476.946 5 22993278.846 22993278.763 22993278.461
+ 32.100 30.100
+ -5863748.807 5 -4569147.193 3 23517150.618 23517149.122 23517150.388
+ 30.200 23.400
+ 06 1 1 22 49 0.0000000 0 7G 6G 4G10G 2G 5G30G13
+ -9394504.083 5 -7320385.248 5 23021002.484 23021002.141 23021001.651
+ 34.800 31.100
+ -7043780.657 5 -5488647.564 4 23123283.996 23123283.002 23123283.517
+ 33.800 28.100
+ -21805255.218 7 -16991093.498 7 20352233.967 20352232.752 20352232.774
+ 45.300 44.600
+ -22813359.188 7 -17776628.543 7 20482208.842 20482205.192 20482208.170
+ 47.700 44.900
+ -3631260.624 5 -2829544.432 3 23701412.088 23701411.602 23701410.721
+ 30.200 19.300
+ -7698808.569 5 -5999062.976 4 23003392.520 23003392.615 23003392.244
+ 32.700 29.700
+ -5808076.757 5 -4525766.356 3 23527745.120 23527742.692 23527744.777
+ 30.400 23.000
+ 06 1 1 22 49 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -194686.770 2 -151703.451 3 24280066.987 24280069.119 24280066.626
+ 17.800 19.300
+ -9481608.325 5 -7388258.635 5 23004426.822 23004426.988 23004426.238
+ 34.800 32.000
+ -6960011.041 5 -5423372.551 4 23139224.791 23139224.081 23139224.143
+ 33.500 28.100
+ -21846617.127 7 -17023323.540 7 20344363.066 20344361.919 20344361.881
+ 45.400 44.900
+ -22774242.098 7 -17746147.689 7 20489652.642 20489649.046 20489651.945
+ 47.900 44.800
+ -3543147.228 5 -2760884.643 3 23718179.808 23718178.999 23718178.417
+ 31.300 20.500
+ -7645188.243 5 -5957280.900 4 23013596.461 23013596.198 23013596.085
+ 33.800 29.000
+ -5751866.896 5 -4481966.473 4 23538441.709 23538439.763 23538441.258
+ 30.400 24.900
+ 06 1 1 22 50 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -306973.123 3 -239199.156 3 24258700.165 24258701.678 24258699.998
+ 19.300 19.900
+ -9568456.270 5 -7455932.310 5 22987900.458 22987900.092 22987899.719
+ 35.200 31.800
+ -6876122.791 5 -5358005.097 4 23155187.644 23155187.345 23155187.743
+ 34.100 28.800
+ -21887463.284 7 -17055151.701 7 20336590.323 20336589.139 20336589.124
+ 45.500 44.800
+ -22734781.078 7 -17715398.838 7 20497161.788 20497158.171 20497161.064
+ 47.700 44.800
+ -3454838.875 5 -2692072.951 3 23734983.942 23734983.751 23734982.797
+ 30.600 22.600
+ -7591098.118 5 -5915132.756 4 23023889.380 23023889.126 23023888.996
+ 33.000 28.800
+ -5695121.159 4 -4437749.019 3 23549239.341 23549237.737 23549238.954
+ 29.500 23.800
+ 06 1 1 22 50 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -419232.116 3 -326673.598 2 24237337.944 24237338.665 24237337.835
+ 20.500 16.100
+ -9655045.523 5 -7523404.412 5 22971422.823 22971422.876 22971422.163
+ 35.400 32.400
+ -6792116.650 5 -5292545.778 4 23171174.616 23171173.028 23171173.725
+ 33.500 28.800
+ -21927793.052 7 -17086577.479 7 20328915.773 20328914.597 20328914.558
+ 45.300 45.100
+ -22694976.726 7 -17684382.462 7 20504736.551 20504732.653 20504735.726
+ 47.800 44.700
+ -3366338.541 4 -2623111.671 4 23751824.777 23751824.975 23751823.693
+ 29.200 24.900
+ -7536540.673 5 -5872620.477 4 23034270.765 23034270.987 23034270.553
+ 31.600 29.000
+ -5637841.512 5 -4393115.523 3 23560139.266 23560137.339 23560138.808
+ 30.400 22.600
+ 06 1 1 22 51 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -531460.690 3 -414124.340 3 24215982.299 24215982.735 24215981.493
+ 22.100 19.900
+ -9741373.815 6 -7590673.162 5 22954995.370 22954994.968 22954994.630
+ 36.500 32.300
+ -6707993.271 5 -5226995.111 4 23187181.511 23187181.978 23187181.522
+ 33.500 29.900
+ -21967606.212 7 -17117600.708 7 20321339.665 20321338.384 20321338.395
+ 45.300 44.800
+ -22654829.581 7 -17653098.967 7 20512376.143 20512372.450 20512375.395
+ 47.700 44.600
+ -3277649.444 4 -2554003.313 4 23768701.680 23768701.765 23768700.495
+ 27.600 24.600
+ -7481518.336 5 -5829745.957 4 23044741.231 23044741.272 23044740.776
+ 30.400 29.500
+ -5580029.775 5 -4348067.421 3 23571140.229 23571139.157 23571139.972
+ 30.100 23.000
+ 06 1 1 22 51 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -643656.038 2 -501549.175 2 24194631.029 24194632.130 24194630.572
+ 17.000 17.000
+ -9827438.806 6 -7657736.749 5 22938617.898 22938617.341 22938616.937
+ 36.000 32.100
+ -6623753.092 5 -5161353.429 4 23203212.589 23203211.650 23203212.244
+ 33.900 26.800
+ -22006902.534 7 -17148221.203 7 20313861.515 20313860.600 20313860.418
+ 45.200 45.100
+ -22614339.746 7 -17621548.444 7 20520081.057 20520077.394 20520080.288
+ 47.700 44.600
+ -3188774.645 4 -2484750.246 4 23785614.258 23785614.372 23785613.311
+ 27.900 25.300
+ -7426033.641 5 -5786511.164 4 23055299.516 23055299.728 23055299.379
+ 31.300 29.500
+ -5521688.458 4 -4302606.620 3 23582242.909 23582240.592 23582242.400
+ 29.500 19.900
+ 06 1 1 22 52 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -755815.276 3 -588945.861 2 24173288.158 24173289.138 24173287.769
+ 20.500 15.100
+ -9913238.225 5 -7724593.403 5 22922290.432 22922289.879 22922289.636
+ 35.800 31.500
+ -6539396.597 5 -5095621.103 4 23219265.313 23219264.026 23219264.670
+ 33.400 26.500
+ -22045681.666 7 -17178438.696 7 20306482.206 20306481.149 20306481.040
+ 45.500 45.100
+ -22573507.798 7 -17589731.339 7 20527851.195 20527847.409 20527850.401
+ 47.800 44.500
+ -3099717.098 4 -2415354.763 3 23802561.684 23802561.334 23802560.168
+ 25.300 23.800
+ -7370089.245 5 -5742918.147 4 23065945.896 23065945.442 23065945.632
+ 32.800 27.600
+ -5462819.174 4 -4256734.446 3 23593444.396 23593443.305 23593444.180
+ 27.600 23.000
+ 06 1 1 22 52 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -867935.456 3 -676312.159 1 24151952.462 24151952.807 24151951.653
+ 20.500 9.000
+ -9998769.646 5 -7791241.219 5 22906014.249 22906013.740 22906013.507
+ 35.800 31.500
+ -6454924.619 5 -5029798.789 4 23235339.492 23235338.763 23235339.040
+ 33.400 28.400
+ -22083943.163 7 -17208252.833 7 20299201.343 20299200.128 20299200.128
+ 45.400 44.900
+ -22532334.220 7 -17557648.028 7 20535686.183 20535682.465 20535685.336
+ 47.600 44.400
+ -3010479.991 3 -2345819.406 3 23819542.138 23819542.590 23819541.078
+ 23.800 23.000
+ -7313687.666 5 -5698968.873 4 23076678.692 23076678.080 23076678.403
+ 32.600 25.300
+ -5403424.020 4 -4210452.510 3 23604746.711 23604745.839 23604746.688
+ 29.000 22.600
+ 06 1 1 22 53 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -980013.667 3 -763645.774 3 24130625.554 24130625.538 24130624.027
+ 21.100 18.600
+ -10084030.910 6 -7857678.531 5 22889789.628 22889789.093 22889789.002
+ 36.400 32.100
+ -6370337.630 5 -4963886.858 4 23251436.035 23251435.131 23251435.564
+ 33.600 27.900
+ -22121686.670 7 -17237663.344 7 20292018.886 20292017.698 20292017.783
+ 45.400 44.900
+ -22490819.500 7 -17525298.890 7 20543586.270 20543582.467 20543585.447
+ 47.900 44.600
+ -2921066.279 4 -2276146.432 4 23836557.469 23836557.645 23836556.174
+ 26.200 24.200
+ -7256831.400 5 -5654665.273 3 23087497.935 23087497.053 23087497.805
+ 32.600 23.800
+ -5343505.050 4 -4163762.393 3 23616149.475 23616147.556 23616149.212
+ 28.600 22.100
+ 06 1 1 22 53 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1092047.018 3 -850944.375 2 24109305.909 24109306.339 24109304.908
+ 20.500 17.800
+ -10169019.667 6 -7923903.495 5 22873616.986 22873616.124 22873616.088
+ 36.400 31.800
+ -6285636.342 5 -4897885.866 4 23267552.986 23267553.868 23267553.219
+ 33.000 28.800
+ -22158912.104 7 -17266670.160 7 20284935.140 20284933.884 20284934.026
+ 45.300 44.900
+ -22448963.721 8 -17492683.993 7 20551551.304 20551547.452 20551550.444
+ 48.000 44.400
+ -2831479.146 4 -2206338.288 4 23853605.208 23853605.267 23853604.209
+ 28.400 25.300
+ -7199523.180 5 -5610009.503 3 23098403.255 23098402.202 23098403.012
+ 31.000 21.600
+ -5283064.261 5 -4116665.667 3 23627651.483 23627649.515 23627651.085
+ 30.800 23.000
+ 06 1 1 22 54 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1204032.624 3 -938205.793 3 24087994.994 24087996.329 24087994.128
+ 19.300 21.600
+ -10253733.414 6 -7989914.173 5 22857496.132 22857495.671 22857495.360
+ 36.400 31.500
+ -6200821.301 5 -4831796.245 4 23283694.283 23283693.247 23283693.456
+ 33.600 27.400
+ -22195619.186 7 -17295273.067 7 20277950.047 20277948.879 20277948.888
+ 45.400 45.200
+ -22406767.719 8 -17459803.988 7 20559581.077 20559577.132 20559580.236
+ 48.200 44.400
+ -2741721.612 4 -2136397.365 3 23870685.802 23870685.863 23870684.585
+ 29.200 23.000
+ -7141765.386 4 -5565003.415 3 23109394.164 23109393.162 23109393.915
+ 29.900 23.400
+ -5222103.934 4 -4069164.104 3 23639251.859 23639249.980 23639251.446
+ 29.700 23.400
+ 06 1 1 22 54 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1315967.502 3 -1025427.650 3 24066694.755 24066695.294 24066693.914
+ 20.500 21.100
+ -10338170.118 6 -8055708.965 5 22841428.181 22841428.093 22841427.422
+ 36.000 32.700
+ -6115893.183 5 -4765618.488 4 23299855.246 23299854.196 23299854.850
+ 33.500 26.800
+ -22231807.614 7 -17323471.820 7 20271063.638 20271062.420 20271062.488
+ 45.400 45.200
+ -22364232.052 8 -17426659.309 7 20567675.194 20567671.381 20567674.416
+ 48.100 44.400
+ -2651796.761 4 -2066326.085 3 23887797.797 23887797.770 23887796.545
+ 27.600 22.600
+ -7083560.750 4 -5519649.158 4 23120470.254 23120469.431 23120469.853
+ 29.000 24.600
+ -5160626.174 4 -4021259.320 3 23650949.964 23650948.881 23650949.857
+ 28.600 23.000
+ 06 1 1 22 55 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1427848.656 3 -1112607.703 3 24045404.198 24045404.883 24045403.678
+ 21.600 18.600
+ -10422327.166 5 -8121285.844 5 22825413.710 22825413.635 22825412.812
+ 35.700 33.200
+ -6030852.266 5 -4699352.846 4 23316037.675 23316037.025 23316037.419
+ 32.800 27.400
+ -22267477.141 7 -17351266.239 7 20264276.105 20264274.767 20264274.935
+ 45.500 45.400
+ -22321356.585 8 -17393249.852 7 20575834.068 20575830.318 20575833.333
+ 48.100 44.400
+ -2561707.675 4 -1996126.824 3 23904940.770 23904941.579 23904939.829
+ 26.500 23.800
+ -7024911.848 4 -5473948.732 4 23131631.073 23131630.178 23131630.491
+ 29.500 27.600
+ -5098633.067 4 -3972953.034 3 23662746.794 23662745.764 23662746.513
+ 27.600 22.600
+ 06 1 1 22 55 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1539673.300 3 -1199743.731 2 24024124.743 24024124.708 24024124.081
+ 21.100 15.100
+ -10506202.466 6 -8186643.172 5 22809452.810 22809452.695 22809452.037
+ 36.700 33.100
+ -5945699.416 5 -4632999.993 4 23332241.989 23332241.681 23332241.511
+ 32.800 27.600
+ -22302627.529 7 -17378656.133 7 20257587.078 20257585.813 20257585.931
+ 45.500 45.400
+ -22278142.059 8 -17359576.193 7 20584057.134 20584053.638 20584056.490
+ 48.000 44.100
+ -2471457.413 4 -1925801.987 3 23922115.658 23922115.704 23922114.160
+ 26.800 23.400
+ -6965821.354 5 -5427904.215 5 23142874.892 23142874.928 23142874.774
+ 30.600 30.100
+ -5036126.528 4 -3924246.608 3 23674641.284 23674640.398 23674640.997
+ 27.400 23.400
+ 06 1 1 22 56 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1651438.403 3 -1286833.356 2 24002856.585 24002856.762 24002855.932
+ 21.600 17.000
+ -10589793.592 6 -8251779.068 5 22793546.217 22793545.691 22793545.395
+ 36.900 33.100
+ -5860435.236 5 -4566560.389 4 23348466.849 23348466.415 23348466.562
+ 31.600 27.400
+ -22337258.617 7 -17405641.378 7 20250996.803 20250995.776 20250995.659
+ 45.300 45.400
+ -22234588.902 7 -17325638.669 7 20592345.382 20592341.573 20592344.496
+ 47.800 44.300
+ -2381049.011 4 -1855353.908 3 23939319.295 23939319.419 23939318.268
+ 25.300 22.100
+ -6906291.965 5 -5381517.695 5 23154203.411 23154203.065 23154203.028
+ 32.700 30.400
+ -4973109.015 4 -3875142.061 3 23686633.415 23686632.092 23686633.347
+ 28.100 21.600
+ 06 1 1 22 56 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1763141.093 3 -1373874.330 3 23981598.457 23981600.367 23981598.535
+ 18.600 19.900
+ -10673098.160 6 -8316691.674 5 22777693.400 22777693.352 22777692.645
+ 36.200 32.800
+ -5775060.108 5 -4500034.333 4 23364713.450 23364712.899 23364713.089
+ 32.600 27.400
+ -22371370.118 7 -17432221.748 7 20244505.458 20244504.499 20244504.290
+ 45.200 45.400
+ -22190697.661 7 -17291437.696 7 20600697.564 20600693.862 20600696.805
+ 47.900 44.300
+ -2290485.597 4 -1784785.049 3 23956553.032 23956553.178 23956551.726
+ 25.900 21.100
+ -6846326.401 5 -5334791.289 5 23165614.729 23165614.440 23165614.227
+ 33.500 31.100
+ -4909582.689 4 -3825641.030 3 23698722.344 23698721.179 23698722.016
+ 29.000 20.500
+ 06 1 1 22 57 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1874778.381 3 -1460864.353 3 23960354.839 23960356.327 23960355.313
+ 19.300 20.500
+ -10756113.990 6 -8381379.290 5 22761896.053 22761895.757 22761895.146
+ 36.500 33.200
+ -5689574.937 5 -4433422.531 4 23380980.553 23380980.260 23380980.364
+ 32.300 27.100
+ -22404962.067 7 -17458397.272 7 20238113.261 20238112.165 20238112.074
+ 45.400 45.300
+ -22146468.573 7 -17256973.474 7 20609113.927 20609110.323 20609113.172
+ 47.700 44.300
+ -2199770.202 4 -1714097.734 3 23973815.665 23973815.614 23973814.620
+ 26.200 19.900
+ -6785927.058 5 -5287726.885 5 23177108.337 23177108.088 23177108.029
+ 33.800 30.200
+ -4845549.602 4 -3775745.099 3 23710907.208 23710905.528 23710906.987
+ 29.200 22.100
+ 06 1 1 22 57 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -1986347.256 3 -1547801.083 3 23939124.285 23939125.959 23939124.674
+ 19.300 23.000
+ -10838838.685 6 -8445840.050 5 22746153.907 22746153.656 22746153.287
+ 37.000 33.000
+ -5603979.993 5 -4366725.180 4 23397269.219 23397268.415 23397268.438
+ 32.100 26.800
+ -22438034.242 7 -17484167.783 7 20231819.938 20231818.682 20231818.836
+ 45.300 45.400
+ -22101902.342 7 -17222246.533 7 20617594.694 20617591.065 20617593.902
+ 47.800 44.200
+ -2108905.856 4 -1643294.372 3 23991107.081 23991106.524 23991105.670
+ 28.100 18.600
+ -6725096.887 5 -5240326.757 4 23188684.099 23188683.636 23188683.617
+ 33.400 29.900
+ -4781011.752 4 -3725455.841 3 23723188.351 23723186.298 23723188.121
+ 28.400 19.900
+ 06 1 1 22 58 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2097845.155 3 -1634682.475 3 23917908.751 23917908.084 23917907.727
+ 19.300 20.500
+ -10921269.893 6 -8510072.125 5 22730468.163 22730467.457 22730467.048
+ 37.100 33.100
+ -5518275.963 5 -4299942.843 4 23413577.284 23413577.024 23413577.103
+ 30.200 26.500
+ -22470586.489 7 -17509533.153 7 20225625.420 20225624.134 20225624.253
+ 45.500 45.400
+ -22056999.364 7 -17187257.198 7 20626139.511 20626135.718 20626138.640
+ 47.700 43.900
+ -2017895.725 4 -1572377.392 3 24008425.113 24008425.075 24008424.210
+ 26.500 18.600
+ -6663838.527 5 -5192592.982 4 23200340.737 23200340.785 23200340.549
+ 32.800 28.600
+ -4715971.819 4 -3674775.387 2 23735565.155 23735563.108 23735564.765
+ 27.900 17.800
+ 06 1 1 22 58 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2209268.621 3 -1721505.936 2 23896705.397 23896704.430 23896704.495
+ 23.400 16.100
+ -11003405.136 6 -8574073.583 5 22714837.571 22714837.961 22714837.258
+ 37.100 33.900
+ -5432463.299 5 -4233075.844 4 23429907.471 23429906.955 23429906.898
+ 31.100 25.600
+ -22502618.588 7 -17534493.215 7 20219529.781 20219528.619 20219528.607
+ 45.400 45.600
+ -22011759.920 7 -17152005.678 7 20634748.054 20634744.489 20634747.401
+ 47.800 44.000
+ -1926742.747 4 -1501349.121 2 24025770.945 24025770.789 24025769.778
+ 26.800 17.800
+ -6602154.605 5 -5144527.600 4 23212078.750 23212079.039 23212078.580
+ 32.100 27.100
+ -4650431.837 4 -3623705.239 3 23748037.097 23748034.698 23748036.561
+ 27.900 18.600
+ 06 1 1 22 59 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2320614.861 4 -1808269.208 3 23875516.392 23875516.090 23875515.978
+ 25.300 19.900
+ -11085242.215 6 -8637842.697 5 22699265.219 22699264.859 22699264.418
+ 37.900 34.400
+ -5346542.843 5 -4166124.857 4 23446257.745 23446257.477 23446257.462
+ 31.600 27.100
+ -22534130.625 7 -17559048.036 7 20213533.275 20213532.108 20213532.111
+ 45.300 45.500
+ -21966184.521 7 -17116492.382 7 20643420.962 20643417.226 20643420.095
+ 47.600 43.800
+ -1835450.027 4 -1430211.988 3 24043143.429 24043143.443 24043142.442
+ 27.600 18.600
+ -6540048.074 5 -5096132.910 4 23223897.389 23223897.280 23223897.029
+ 30.600 26.200
+ -4584394.006 5 -3572247.187 3 23760604.272 23760602.153 23760603.731
+ 30.200 23.800
+ 06 1 1 22 59 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2431880.991 4 -1894970.070 2 23854343.477 23854342.729 23854342.934
+ 24.900 17.000
+ -11166778.984 6 -8701377.803 5 22683748.823 22683748.667 22683748.179
+ 37.700 33.900
+ -5260514.932 5 -4099090.160 4 23462627.353 23462627.679 23462627.403
+ 31.100 26.800
+ -22565122.390 7 -17583197.447 7 20207635.737 20207634.578 20207634.596
+ 45.300 45.600
+ -21920273.800 7 -17080717.790 7 20652157.542 20652153.698 20652156.722
+ 47.800 43.600
+ -1744020.560 4 -1358968.246 3 24060542.260 24060542.019 24060540.811
+ 25.900 18.600
+ -6477521.453 4 -5047410.874 4 23235795.439 23235795.753 23235795.187
+ 28.400 24.600
+ -4517860.519 4 -3520402.931 3 23773264.420 23773262.854 23773264.178
+ 28.600 22.100
+ 06 1 1 23 0 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2543064.068 3 -1981606.193 2 23833185.675 23833185.357 23833184.905
+ 23.400 13.900
+ -11248013.054 6 -8764677.049 5 22668290.382 22668290.175 22668289.679
+ 37.400 33.400
+ -5174380.236 5 -4031972.231 4 23479019.873 23479018.385 23479019.096
+ 32.100 24.600
+ -22595593.870 7 -17606941.442 7 20201837.207 20201836.036 20201836.056
+ 45.200 45.600
+ -21874028.071 7 -17044682.154 7 20660957.703 20660953.923 20660956.920
+ 47.700 43.500
+ -1652457.484 4 -1287620.431 3 24077965.882 24077966.080 24077965.037
+ 26.500 21.100
+ -6414577.581 4 -4998363.713 3 23247773.514 23247773.579 23247772.870
+ 26.800 22.600
+ -4450833.824 4 -3468174.319 3 23786019.832 23786017.388 23786019.267
+ 29.500 20.500
+ 06 1 1 23 0 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2654160.993 4 -2068175.235 3 23812043.767 23812044.784 23812043.597
+ 24.600 19.300
+ -11328941.772 6 -8827738.360 5 22652890.242 22652890.029 22652889.604
+ 37.900 33.400
+ -5088139.510 5 -3964771.696 4 23495428.888 23495429.785 23495429.633
+ 30.400 25.600
+ -22625544.968 7 -17630279.942 7 20196137.743 20196136.524 20196136.531
+ 45.200 45.800
+ -21827447.637 7 -17008385.711 7 20669821.522 20669817.903 20669820.826
+ 47.700 43.500
+ -1560763.963 4 -1216170.930 3 24095415.175 24095414.659 24095413.887
+ 25.600 21.100
+ -6351219.261 3 -4948993.609 3 23259829.666 23259830.452 23259829.775
+ 23.400 21.600
+ -4383316.167 4 -3415563.142 3 23798867.526 23798865.950 23798867.084
+ 26.800 21.600
+ 06 1 1 23 1 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2765168.956 3 -2154674.867 2 23790919.104 23790920.217 23790919.722
+ 21.100 16.100
+ -11409563.105 6 -8890560.152 5 22637548.786 22637547.950 22637547.981
+ 37.600 32.100
+ -5001792.967 5 -3897488.702 3 23511862.258 23511860.498 23511861.288
+ 32.000 23.800
+ -22654975.738 7 -17653212.996 7 20190537.284 20190535.951 20190536.009
+ 44.900 45.600
+ -21780533.303 7 -16971829.083 7 20678749.168 20678745.455 20678748.336
+ 47.900 43.400
+ -1468942.822 4 -1144622.050 3 24112887.476 24112888.066 24112886.423
+ 25.600 21.600
+ -6287449.193 3 -4899302.650 3 23271965.264 23271965.407 23271964.885
+ 22.100 18.600
+ -4315309.885 4 -3362571.213 3 23811808.488 23811806.792 23811808.307
+ 28.100 20.500
+ 06 1 1 23 1 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2876084.744 3 -2241102.715 3 23769812.930 23769814.353 23769812.962
+ 22.600 23.400
+ -11489874.769 6 -8953140.642 5 22622265.810 22622264.941 22622265.161
+ 37.800 32.400
+ -4915341.385 5 -3830123.853 4 23528312.378 23528312.253 23528312.320
+ 31.800 24.600
+ -22683886.090 7 -17675740.530 7 20185035.542 20185034.420 20185034.415
+ 44.900 45.700
+ -21733285.499 7 -16935012.612 7 20687740.162 20687736.446 20687739.401
+ 47.900 43.400
+ -1376997.255 4 -1072976.178 3 24130384.368 24130384.091 24130383.358
+ 26.200 21.100
+ -6223270.276 3 -4849293.111 2 23284177.604 23284177.794 23284177.383
+ 18.600 15.100
+ -4246817.176 4 -3309200.276 2 23824842.699 23824839.964 23824842.106
+ 29.000 17.000
+ 06 1 1 23 2 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -2986905.560 3 -2327456.515 4 23748724.920 23748725.910 23748724.564
+ 19.900 24.600
+ -11569874.256 6 -9015477.879 5 22607042.247 22607041.928 22607041.495
+ 37.600 33.500
+ -4828785.264 5 -3762677.549 4 23544784.485 23544782.827 23544783.559
+ 31.300 24.200
+ -22712276.184 7 -17697862.665 7 20179633.244 20179631.937 20179632.120
+ 45.200 45.600
+ -21685704.621 7 -16897936.601 7 20696794.484 20696790.812 20696793.708
+ 47.900 43.500
+ -1284930.210 4 -1001235.671 3 24147904.457 24147904.077 24147903.157
+ 27.100 21.100
+ -6158685.131 3 -4798967.045 1 23296468.505 23296467.993 23296468.131
+ 18.600 9.000
+ -4177840.512 4 -3255452.229 3 23837968.005 23837966.906 23837967.616
+ 28.100 20.500
+ 06 1 1 23 2 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3097628.339 3 -2413733.937 4 23727653.958 23727656.138 23727654.708
+ 22.600 25.900
+ -11649559.299 6 -9077570.078 5 22591879.113 22591878.409 22591878.310
+ 38.400 34.300
+ -4742125.166 5 -3695150.220 4 23561274.163 23561274.290 23561274.225
+ 30.400 26.200
+ -22740146.235 7 -17719579.576 7 20174329.827 20174328.455 20174328.591
+ 45.100 45.800
+ -21637791.140 8 -16860601.419 7 20705911.915 20705908.343 20705911.256
+ 48.000 43.300
+ -1192744.804 4 -929402.904 3 24165446.688 24165446.521 24165445.400
+ 26.800 18.600
+ -6093696.729 2 -4748326.721 1 23308835.790 23308834.662 23308835.532
+ 17.000 9.000
+ -4108382.268 4 -3201328.910 3 23851185.525 23851183.855 23851185.240
+ 27.400 19.300
+ 06 1 1 23 3 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3208250.323 3 -2499932.796 3 23706602.624 23706604.968 23706603.456
+ 18.600 23.400
+ -11728927.544 6 -9139415.435 5 22576775.605 22576775.243 22576774.899
+ 39.000 34.500
+ -4655361.757 5 -3627542.413 4 23577785.439 23577785.062 23577784.907
+ 31.800 26.200
+ -22767495.967 7 -17740891.040 7 20169125.115 20169123.978 20169124.037
+ 45.100 45.700
+ -21589545.516 8 -16823007.422 7 20715092.950 20715089.337 20715092.208
+ 48.000 43.600
+ -1100443.954 4 -857480.192 2 24183010.645 24183010.642 24183009.370
+ 24.200 17.800
+ -6028307.792 2 -4697374.298 23321278.076 23321278.137 23321278.034
+ 13.900 3.000
+ -4038444.416 4 -3146831.893 2 23864493.987 23864492.393 23864493.680
+ 26.800 16.100
+ 06 1 1 23 3 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3318768.327 4 -2586050.689 3 23685574.085 23685573.930 23685573.163
+ 24.600 21.100
+ -11807976.708 6 -9201012.154 5 22561733.209 22561732.405 22561732.287
+ 38.600 34.000
+ -4568495.431 5 -3559854.392 4 23594315.697 23594314.403 23594315.242
+ 31.600 24.600
+ -22794325.468 7 -17761797.126 7 20164019.760 20164018.503 20164018.561
+ 45.000 45.800
+ -21540968.410 8 -16785155.131 7 20724336.850 20724333.269 20724336.111
+ 48.100 43.500
+ -1008030.840 3 -785469.970 3 24200596.218 24200596.433 24200595.202
+ 23.800 19.900
+ -5962521.203 2 -4646112.033 9 23333797.307 23333797.167 23333797.062
+ 17.000 -3.000
+ -3968029.543 4 -3091963.131 3 23877893.090 23877892.310 23877893.125
+ 26.500 19.900
+ 06 1 1 23 4 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3429179.360 3 -2672085.203 3 23664564.329 23664563.046 23664562.736
+ 21.600 21.100
+ -11886704.461 6 -9262358.423 5 22546751.956 22546750.785 22546751.148
+ 38.900 33.500
+ -4481526.785 5 -3492086.629 4 23610864.251 23610864.397 23610864.302
+ 30.600 25.300
+ -22820634.859 7 -17782297.932 7 20159013.221 20159011.888 20159012.062
+ 45.000 45.800
+ -21492060.278 8 -16747044.891 7 20733643.827 20733640.085 20733643.080
+ 48.000 43.600
+ -915508.451 4 -713374.627 3 24218202.860 24218202.879 24218201.911
+ 25.300 19.900
+ -5896339.766 2 -4594542.083 23346391.780 23346391.385 23346390.211
+ 12.600 3.000
+ -3897140.431 4 -3036724.882 3 23891384.320 23891382.459 23891383.705
+ 28.400 23.400
+ 06 1 1 23 4 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3539480.583 3 -2758034.153 3 23643572.782 23643574.042 23643572.509
+ 23.800 23.800
+ -11965108.414 6 -9323452.381 5 22531832.041 22531831.132 22531831.316
+ 39.300 33.900
+ -4394456.624 5 -3424239.792 4 23627432.602 23627433.276 23627432.996
+ 30.400 24.200
+ -22846424.179 7 -17802393.491 7 20154105.503 20154104.295 20154104.354
+ 44.800 45.600
+ -21442821.335 7 -16708676.885 7 20743013.454 20743010.033 20743012.738
+ 47.800 43.500
+ -822879.731 4 -641196.443 2 24235829.588 24235829.809 24235828.225
+ 24.600 17.000
+ -5829766.287 -4542666.682 1 23359059.995 23359060.190 23359059.563
+ 3.000 9.000
+ -3825779.188 4 -2981118.725 3 23904962.918 23904960.452 23904962.795
+ 27.100 19.300
+ 06 1 1 23 5 0.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3649668.847 4 -2843895.076 3 23622604.892 23622605.783 23622604.974
+ 25.600 22.600
+ -12043186.307 6 -9384292.269 5 22516974.197 22516973.250 22516973.355
+ 39.200 34.100
+ -4307285.390 5 -3356314.164 4 23644021.139 23644021.332 23644021.242
+ 30.200 24.900
+ -22871693.765 7 -17822084.064 7 20149296.838 20149295.607 20149295.669
+ 44.800 45.800
+ -21393252.449 7 -16670051.779 7 20752446.532 20752442.667 20752445.628
+ 47.800 43.400
+ -730147.842 4 -568937.851 2 24253475.082 24253475.807 24253474.557
+ 25.300 15.100
+ -5762803.646 1 -4490488.034 1 23371802.443 23371802.807 23371802.760
+ 9.000 6.500
+ -3753948.053 4 -2925146.386 3 23918632.846 23918631.130 23918632.224
+ 26.800 23.000
+ 06 1 1 23 5 30.0000000 0 8G29G 6G 4G10G 2G 5G30G13
+ -3759741.145 4 -2929665.647 4 23601660.483 23601659.969 23601658.780
+ 24.900 24.900
+ -12120935.700 6 -9444876.173 5 22502178.680 22502177.997 22502178.171
+ 39.500 34.600
+ -4220013.461 4 -3288310.096 3 23660629.352 23660628.997 23660628.915
+ 29.700 23.800
+ -22896443.461 7 -17841369.530 7 20144587.157 20144585.990 20144585.978
+ 44.700 45.900
+ -21343353.751 7 -16631169.677 7 20761941.517 20761938.065 20761940.889
+ 47.700 43.400
+ -637315.720 3 -496601.186 2 24271141.813 24271140.980 24271140.294
+ 23.800 17.800
+ -5695454.896 23384618.173 23384618.272
+ 3.000
+ -3681649.620 4 -2868809.977 3 23932390.100 23932388.611 23932389.843
+ 28.100 22.100
+ 06 1 1 23 6 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -3869694.492 4 -3015343.546 3 23580737.225 23580735.053 23580735.560
+ 24.600 18.600
+ -12198354.454 6 -9505202.443 5 22487446.558 22487445.728 22487445.642
+ 38.600 34.100
+ -4132641.485 4 -3220228.055 4 23677255.950 23677255.460 23677255.270
+ 29.900 25.300
+ -22920673.426 7 -17860250.008 7 20139976.431 20139975.207 20139975.230
+ 44.600 46.000
+ -21293125.784 7 -16592031.002 7 20771499.781 20771496.140 20771498.982
+ 47.800 43.300
+ -544386.412 4 -424188.782 2 24288825.020 24288824.586 24288824.009
+ 24.900 17.000
+ -3608886.218 4 -2812111.244 3 23946236.242 23946235.004 23946235.901
+ 25.300 19.900
+ 06 1 1 23 6 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -3979526.130 3 -3100926.593 3 23559834.132 23559835.312 23559834.826
+ 19.900 19.900
+ -12275440.065 6 -9565269.101 5 22472777.316 22472776.707 22472776.597
+ 38.300 34.400
+ -4045170.004 4 -3152068.503 3 23693901.798 23693900.227 23693900.951
+ 29.900 23.400
+ -22944383.989 7 -17878725.758 7 20135464.554 20135463.229 20135463.318
+ 44.800 46.100
+ -21242569.165 7 -16552636.236 7 20781120.144 20781116.627 20781119.459
+ 47.700 43.000
+ -451362.916 4 -351702.971 3 24306527.561 24306526.973 24306526.288
+ 26.200 18.600
+ -3535660.428 4 -2755052.168 3 23960170.663 23960169.019 23960170.213
+ 25.600 19.300
+ 06 1 1 23 7 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4089232.816 3 -3186412.331 2 23538956.753 23538958.820 23538958.143
+ 23.000 17.800
+ -12352190.369 6 -9625074.496 5 22458172.791 22458171.610 22458171.978
+ 39.300 34.300
+ -3957599.792 5 -3083831.997 3 23710565.482 23710564.112 23710564.902
+ 30.400 23.000
+ -22967575.370 7 -17896796.951 7 20131051.352 20131049.991 20131050.173
+ 44.800 46.000
+ -21191684.501 7 -16512985.848 7 20790803.356 20790799.674 20790802.612
+ 47.800 43.000
+ -358248.227 4 -279146.085 3 24324246.460 24324246.203 24324245.461
+ 27.600 20.500
+ -3461974.807 4 -2697634.788 3 23974193.066 23974191.532 23974192.500
+ 25.300 20.500
+ 06 1 1 23 7 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4198811.611 4 -3271798.343 3 23518106.934 23518106.180 23518106.359
+ 26.200 18.600
+ -12428603.050 6 -9684616.810 5 22443631.888 22443630.636 22443630.985
+ 39.100 33.600
+ -3869931.045 4 -3015518.725 4 23727248.094 23727247.556 23727247.756
+ 29.900 25.300
+ -22990247.653 7 -17914463.650 7 20126736.944 20126735.620 20126735.798
+ 45.000 46.200
+ -21140472.248 7 -16473080.195 7 20800548.725 20800545.073 20800547.923
+ 47.700 43.000
+ -265045.376 4 -206520.536 3 24341982.230 24341982.676 24341980.861
+ 25.600 21.600
+ -3387831.717 4 -2639860.978 3 23988301.829 23988300.497 23988301.747
+ 27.400 22.100
+ 06 1 1 23 8 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4308259.552 4 -3357082.389 3 23497280.750 23497279.202 23497279.336
+ 24.600 23.000
+ -12504675.845 6 -9743894.277 5 22429154.947 22429154.537 22429154.536
+ 39.300 34.100
+ -3782164.612 4 -2947129.336 4 23743949.469 23743949.063 23743949.008
+ 29.200 24.600
+ -23012400.941 7 -17931725.939 7 20122521.092 20122520.005 20122519.965
+ 44.600 46.000
+ -21088932.796 7 -16432919.578 7 20810356.558 20810352.694 20810355.627
+ 47.500 43.100
+ -171757.337 3 -133828.593 3 24359733.967 24359734.621 24359733.097
+ 23.800 19.900
+ -3313233.542 4 -2581732.535 3 24002497.858 24002495.743 24002497.353
+ 28.400 19.900
+ 06 1 1 23 8 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4417573.543 3 -3442262.081 3 23476476.213 23476477.361 23476476.796
+ 22.100 21.600
+ -12580406.267 6 -9802904.961 5 22414744.593 22414743.642 22414743.773
+ 40.000 34.800
+ -3694300.885 4 -2878664.110 3 23760670.719 23760668.079 23760669.178
+ 28.800 21.100
+ -23034035.719 7 -17948584.190 7 20118404.203 20118403.026 20118403.026
+ 44.700 46.000
+ -21037066.894 7 -16392504.588 7 20820226.139 20820222.477 20820225.240
+ 47.400 42.900
+ -78387.187 3 -61072.713 2 24377501.752 24377501.797 24377500.536
+ 21.100 12.600
+ -3238183.128 4 -2523251.647 3 24016778.891 24016777.003 24016778.583
+ 27.400 18.600
+ 06 1 1 23 9 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4526750.815 3 -3527335.244 4 23455700.407 23455702.000 23455700.981
+ 23.400 24.600
+ -12655792.163 6 -9861647.177 5 22400399.028 22400398.116 22400398.358
+ 40.200 35.300
+ -3606340.488 4 -2810123.538 3 23777407.456 23777406.950 23777407.259
+ 29.700 23.400
+ -23055152.164 7 -17965038.551 7 20114386.014 20114384.685 20114384.823
+ 44.900 46.300
+ -20984874.713 7 -16351835.361 7 20830157.852 20830154.304 20830157.084
+ 47.500 42.900
+ 15062.158 4 11744.918 2 24395284.901 24395284.884 24395283.685
+ 25.300 16.100
+ -3162682.620 4 -2464420.051 2 24031145.548 24031144.024 24031145.538
+ 25.300 17.800
+ 06 1 1 23 9 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4635788.160 4 -3612299.346 4 23434953.992 23434952.744 23434952.392
+ 24.900 26.800
+ -12730831.131 6 -9920119.068 5 22386119.632 22386118.732 22386118.819
+ 40.200 35.200
+ -3518283.936 4 -2741508.068 4 23794164.375 23794164.214 23794164.072
+ 28.800 25.300
+ -23075750.568 7 -17981089.243 7 20110466.346 20110464.890 20110465.106
+ 44.800 46.000
+ -20932356.905 7 -16310912.394 7 20840151.865 20840148.143 20840150.975
+ 47.300 42.700
+ 108587.638 3 84621.919 2 24413081.869 24413082.329 24413080.824
+ 23.800 16.100
+ -3086734.642 4 -2405239.816 3 24045597.757 24045597.385 24045597.817
+ 27.400 21.600
+ 06 1 1 23 10 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4744682.712 4 -3697152.160 4 23414232.042 23414230.771 23414230.601
+ 25.900 24.900
+ -12805520.895 6 -9978318.844 5 22371906.415 22371905.736 22371905.684
+ 40.500 35.500
+ -3430131.710 4 -2672818.053 3 23810939.516 23810938.218 23810938.671
+ 28.600 23.400
+ -23095831.101 7 -17996736.395 7 20106644.990 20106643.692 20106643.915
+ 45.200 46.200
+ -20879514.143 7 -16269736.220 7 20850207.192 20850203.752 20850206.515
+ 47.400 42.600
+ 202186.349 4 157555.939 2 24430893.599 24430893.633 24430892.066
+ 24.600 17.800
+ -3010341.655 4 -2345712.812 3 24060135.087 24060134.293 24060134.907
+ 27.100 19.300
+ 06 1 1 23 10 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4853431.380 4 -3781891.290 4 23393536.907 23393536.493 23393536.053
+ 25.900 25.600
+ -12879859.172 6 -10036244.745 6 22357760.351 22357759.799 22357759.525
+ 40.300 36.200
+ -3341884.545 4 -2604054.033 4 23827730.636 23827731.307 23827731.177
+ 28.100 24.600
+ -23115394.163 7 -18011980.327 7 20102922.467 20102920.949 20102921.313
+ 45.200 46.200
+ -20826347.026 7 -16228307.299 7 20860324.725 20860321.097 20860323.944
+ 47.300 42.300
+ 295855.250 4 230544.650 2 24448717.772 24448718.560 24448716.735
+ 25.300 17.800
+ -2933506.289 4 -2285841.097 3 24074756.594 24074755.675 24074756.360
+ 25.600 19.300
+ 06 1 1 23 11 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -4962031.040 4 -3866514.373 4 23372868.998 23372870.624 23372869.696
+ 26.200 25.300
+ -12953843.674 6 -10093894.958 5 22343681.339 22343680.831 22343680.545
+ 39.800 35.700
+ -3253542.992 4 -2535216.492 4 23844543.305 23844542.370 23844542.600
+ 28.400 24.900
+ -23134440.062 7 -18026821.274 7 20099298.081 20099296.662 20099296.933
+ 45.100 46.300
+ -20772856.077 7 -16186626.044 7 20870503.653 20870500.037 20870502.854
+ 47.300 42.500
+ 389591.359 4 303585.720 2 24466555.016 24466555.635 24466553.963
+ 26.500 15.100
+ -2856231.047 4 -2225626.593 3 24089461.808 24089460.601 24089461.754
+ 27.400 19.300
+ 06 1 1 23 11 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5070478.709 4 -3951019.002 3 23352232.417 23352233.626 23352232.612
+ 25.300 23.800
+ -13027472.102 6 -10151267.730 5 22329670.269 22329669.476 22329669.545
+ 40.300 35.400
+ -3165107.278 5 -2466305.572 3 23861372.326 23861370.799 23861371.807
+ 30.800 23.400
+ -23152969.099 7 -18041259.465 7 20095772.175 20095770.696 20095770.915
+ 44.900 46.300
+ -20719041.513 7 -16144692.617 7 20880744.482 20880740.686 20880743.674
+ 47.400 42.300
+ 483391.646 4 376676.824 2 24484405.316 24484405.146 24484404.385
+ 25.600 15.100
+ -2778518.684 4 -2165071.544 3 24104249.845 24104248.853 24104249.554
+ 25.600 20.500
+ 06 1 1 23 12 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5178771.544 4 -4035402.988 3 23331626.504 23331626.034 23331625.515
+ 24.200 23.000
+ -13100742.097 6 -10208361.206 5 22315727.487 22315726.426 22315726.683
+ 40.000 34.500
+ -3076578.246 4 -2397321.904 3 23878217.240 23878217.354 23878217.607
+ 29.200 23.000
+ -23170981.485 7 -18055295.077 7 20092344.268 20092343.066 20092343.082
+ 44.900 46.400
+ -20664904.046 7 -16102507.581 7 20891046.259 20891042.602 20891045.574
+ 47.600 42.000
+ 577253.197 4 449815.656 2 24502266.157 24502266.630 24502265.115
+ 24.600 17.000
+ -2700371.829 4 -2104177.863 2 24119120.898 24119119.623 24119120.466
+ 24.200 17.800
+ 06 1 1 23 12 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5286906.484 4 -4119663.946 3 23311049.709 23311048.668 23311048.341
+ 26.500 23.000
+ -13173651.464 6 -10265173.658 6 22301853.191 22301852.502 22301852.433
+ 40.300 36.000
+ -2987956.382 4 -2328265.931 3 23895082.295 23895082.191 23895081.944
+ 29.900 22.600
+ -23188477.784 7 -18068928.543 7 20089014.913 20089013.669 20089013.680
+ 44.700 46.300
+ -20610444.112 7 -16060071.268 7 20901409.741 20901405.906 20901409.042
+ 47.600 42.100
+ 671173.130 3 522999.984 2 24520138.906 24520139.345 24520137.779
+ 22.100 13.900
+ -2621792.587 4 -2042947.306 3 24134074.229 24134072.531 24134073.843
+ 25.300 19.900
+ 06 1 1 23 13 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5394880.454 4 -4203799.458 3 23290502.895 23290501.633 23290501.538
+ 27.400 22.100
+ -13246197.957 6 -10321703.359 5 22288047.930 22288047.454 22288047.214
+ 40.700 35.600
+ -2899242.168 4 -2259137.994 3 23911965.660 23911963.414 23911964.508
+ 28.600 21.600
+ -23205458.246 7 -18082160.059 7 20085783.653 20085782.241 20085782.469
+ 44.800 46.200
+ -20555662.341 7 -16017384.173 6 20911834.303 20911830.487 20911833.573
+ 47.500 41.800
+ 765148.389 3 596227.440 2 24538022.040 24538021.764 24538020.862
+ 22.100 17.000
+ -2542783.891 4 -1981382.097 3 24149108.457 24149107.944 24149108.347
+ 25.600 21.600
+ 06 1 1 23 13 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5502690.485 4 -4287807.251 3 23269986.287 23269985.975 23269985.975
+ 27.400 23.800
+ -13318379.176 6 -10377948.439 5 22274312.272 22274311.696 22274311.546
+ 40.700 35.200
+ -2810436.125 4 -2189938.519 4 23928863.632 23928863.467 23928862.922
+ 27.600 24.200
+ -23221923.380 7 -18094990.018 7 20082650.325 20082648.943 20082649.193
+ 44.600 46.200
+ -20500559.434 7 -15974446.846 7 20922320.279 20922316.275 20922319.431
+ 47.400 42.000
+ 859176.014 3 669495.647 2 24555914.397 24555914.697 24555913.227
+ 20.500 12.600
+ -2463348.377 4 -1919484.242 2 24164225.207 24164223.492 24164225.236
+ 28.100 17.800
+ 06 1 1 23 14 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5610333.599 4 -4371684.989 4 23249500.755 23249502.716 23249501.640
+ 25.600 25.300
+ -13390192.713 6 -10433907.009 5 22260646.692 22260645.815 22260645.813
+ 40.500 35.100
+ -2721538.796 4 -2120667.914 3 23945779.174 23945779.629 23945779.216
+ 27.400 22.600
+ -23237873.427 7 -18107418.612 7 20079615.061 20079613.740 20079613.908
+ 44.700 46.200
+ -20445135.654 7 -15931259.492 7 20932866.868 20932863.369 20932866.114
+ 47.500 42.200
+ 953253.058 3 742802.433 2 24573817.504 24573817.064 24573816.118
+ 23.000 15.100
+ -2383488.595 3 -1857255.838 2 24179421.635 24179419.881 24179421.256
+ 22.100 16.100
+ 06 1 1 23 14 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5717806.694 4 -4455430.212 3 23229050.642 23229050.429 23229050.255
+ 26.200 22.100
+ -13461636.636 6 -10489577.571 5 22247051.145 22247050.524 22247050.556
+ 40.700 35.100
+ -2632550.900 4 -2051326.701 3 23962713.488 23962712.804 23962713.285
+ 27.900 18.600
+ -23253308.981 7 -18119446.306 7 20076677.959 20076676.496 20076676.715
+ 44.800 46.300
+ -20389391.675 7 -15887822.626 7 20943474.767 20943470.985 20943474.030
+ 47.700 42.200
+ 1047376.596 3 816145.383 2 24591727.443 24591728.476 24591726.611
+ 19.900 17.800
+ -2303206.894 4 -1794698.664 2 24194698.906 24194697.420 24194698.756
+ 26.800 17.800
+ 06 1 1 23 15 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5825106.787 3 -4539040.638 4 23208633.737 23208632.073 23208631.941
+ 23.800 24.200
+ -13532708.478 6 -10544958.186 5 22233526.828 22233525.845 22233525.984
+ 40.500 35.200
+ -2543472.885 4 -1981915.271 3 23979663.372 23979664.069 23979664.276
+ 28.800 19.300
+ -23268230.601 7 -18131073.529 7 20073838.301 20073837.060 20073837.129
+ 44.900 46.400
+ -20333328.152 7 -15844136.763 7 20954143.168 20954139.461 20954142.426
+ 47.400 42.100
+ 1141543.650 3 889522.272 2 24609647.250 24609647.769 24609646.089
+ 19.900 17.800
+ -2222506.052 4 -1731814.867 2 24210055.362 24210054.209 24210055.361
+ 25.600 17.000
+ 06 1 1 23 15 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -5932230.930 4 -4622513.953 4 23188249.539 23188247.711 23188247.714
+ 26.800 27.600
+ -13603406.063 6 -10600047.187 5 22220073.644 22220072.651 22220072.791
+ 40.700 35.500
+ -2454305.309 4 -1912434.057 3 23996629.613 23996631.741 23996632.045
+ 27.600 19.300
+ -23282638.635 7 -18142300.555 7 20071096.568 20071095.244 20071095.407
+ 44.900 46.300
+ -20276945.490 7 -15800202.227 7 20964872.592 20964868.831 20964871.708
+ 47.500 42.100
+ 1235751.411 3 962930.848 2 24627574.109 24627574.385 24627573.176
+ 19.300 12.600
+ -2141388.870 4 -1668606.681 2 24225492.482 24225489.971 24225492.245
+ 26.200 17.800
+ 06 1 1 23 16 0.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -6039176.098 4 -4705847.811 4 23167896.940 23167896.539 23167895.734
+ 28.400 26.500
+ -13673727.099 6 -10654842.769 5 22206691.924 22206691.048 22206691.246
+ 41.300 35.900
+ -2365048.559 4 -1842883.350 3 24013616.913 24013616.742 24013617.358
+ 28.100 19.900
+ -23296533.350 7 -18153127.592 7 20068452.504 20068451.118 20068451.346
+ 44.800 46.400
+ -20220244.156 7 -15756019.370 6 20975662.251 20975658.595 20975661.541
+ 47.400 41.700
+ 1329996.803 2 1036368.783 2 24645508.210 24645509.171 24645507.386
+ 17.800 15.100
+ -2059857.830 3 -1605076.006 2 24241006.076 24241004.612 24241006.041
+ 22.600 17.000
+ 06 1 1 23 16 30.0000000 0 7G29G 6G 4G10G 2G 5G13
+ -6145939.191 4 -4789039.799 4 23147579.899 23147580.254 23147579.344
+ 28.600 26.200
+ -13743669.217 6 -10709343.082 6 22193382.292 22193381.639 22193381.603
+ 41.400 36.500
+ -2275703.258 4 -1773263.620 3 24030619.278 24030618.747 24030619.304
+ 28.600 20.500
+ -23309915.443 7 -18163555.182 7 20065905.892 20065904.603 20065904.781
+ 44.700 46.300
+ -20163224.748 7 -15711588.660 6 20986512.783 20986509.104 20986512.045
+ 47.400 41.800
+ 1424276.942 3 1109833.800 1 24663450.083 24663449.836 24663448.879
+ 21.100 9.000
+ -1977915.845 4 -1541225.094 2 24256600.178 24256597.296 24256599.754
+ 26.500 13.900
+ 06 1 1 23 17 0.0000000 0 8G29G 6G 4G10G 2G26G 5G13
+ -6252517.365 4 -4872087.723 4 23127298.462 23127298.624 23127298.470
+ 27.100 24.900
+ -13813230.302 6 -10763546.486 6 22180145.378 22180144.461 22180144.525
+ 41.200 36.500
+ -2186270.010 4 -1703575.402 3 24047637.074 24047638.389 24047637.686
+ 27.400 23.400
+ -23322785.358 7 -18173583.676 7 20063456.883 20063455.532 20063455.713
+ 44.900 46.200
+ -20105887.952 7 -15666910.636 6 20997423.513 20997420.026 20997422.772
+ 47.400 41.900
+ -219126.451 3 -170747.649 2 24440579.245 24440580.278 24440578.751
+ 23.000 17.000
+ 1518588.909 3 1183323.608 3 24681396.617 24681397.553 24681395.300
+ 18.600 18.600
+ -1895565.413 4 -1477055.887 1 24272270.188 24272268.309 24272269.916
+ 24.900 9.000
+ 06 1 1 23 17 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6358907.447 4 -4954989.057 4 23107053.445 23107053.553 23107052.903
+ 26.800 27.100
+ -13882408.110 6 -10817451.240 5 22166981.131 22166980.065 22166980.424
+ 41.300 35.900
+ -2096749.205 4 -1633818.957 3 24064671.373 24064673.131 24064672.561
+ 27.400 21.600
+ -23335143.560 7 -18183213.435 7 20061105.216 20061103.808 20061104.057
+ 45.000 46.400
+ -20048234.531 7 -15621985.895 6 21008394.846 21008390.945 21008393.951
+ 47.400 41.500
+ -345535.896 3 -269248.477 3 24416523.185 24416525.123 24416523.535
+ 23.000 18.600
+ -1812809.172 4 -1412570.488 2 24288018.823 24288017.012 24288018.365
+ 25.900 17.000
+ 06 1 1 23 18 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6465106.409 4 -5037741.446 4 23086844.477 23086844.534 23086843.785
+ 26.800 27.100
+ -13951200.302 6 -10871055.518 6 22153890.467 22153889.328 22153889.611
+ 41.200 36.400
+ -2007141.600 4 -1563994.837 3 24081724.975 24081725.168 24081724.746
+ 27.100 21.600
+ -23346990.664 7 -18192444.935 7 20058850.976 20058849.342 20058849.788
+ 45.000 46.200
+ -19990264.856 7 -15576814.717 6 21019425.972 21019422.238 21019425.245
+ 47.200 41.500
+ -471934.563 3 -367740.841 2 24392471.686 24392472.404 24392470.649
+ 21.100 17.800
+ -1729649.629 4 -1347770.858 2 24303843.876 24303841.500 24303843.454
+ 24.200 15.100
+ 06 1 1 23 18 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6571111.388 4 -5120342.689 4 23066674.006 23066672.179 23066672.475
+ 26.800 26.200
+ -14019604.606 6 -10924357.537 6 22140873.449 22140872.628 22140872.774
+ 41.800 37.200
+ -1917447.594 4 -1494103.440 3 24098794.554 24098793.403 24098793.073
+ 27.600 21.600
+ -23358327.396 7 -18201278.736 7 20056693.666 20056692.063 20056692.450
+ 45.200 46.200
+ -19931979.361 7 -15531397.450 6 21030517.401 21030513.581 21030516.562
+ 47.200 41.400
+ -598319.484 3 -466222.507 2 24368419.967 24368421.980 24368420.217
+ 20.500 16.100
+ -1646089.712 3 -1282659.225 3 24319744.644 24319742.831 24319744.104
+ 23.000 19.300
+ 06 1 1 23 19 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6676919.280 4 -5202790.361 4 23046539.135 23046537.412 23046537.511
+ 27.100 24.200
+ -14087618.859 7 -10977355.620 6 22127930.793 22127929.925 22127930.063
+ 42.000 37.100
+ -1827667.800 4 -1424145.194 3 24115878.706 24115877.188 24115877.868
+ 29.000 20.500
+ -23369154.141 7 -18209715.148 7 20054633.243 20054631.774 20054632.090
+ 45.100 46.300
+ -19873378.654 7 -15485734.563 6 21041668.899 21041664.891 21041668.030
+ 47.200 41.300
+ -724687.684 3 -564691.131 3 24344372.547 24344374.955 24344372.383
+ 21.600 18.600
+ -1562132.050 4 -1217237.703 2 24335721.325 24335719.216 24335720.998
+ 25.900 15.100
+ 06 1 1 23 19 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6782527.154 4 -5285082.172 4 23026442.201 23026440.632 23026440.973
+ 28.400 26.200
+ -14155241.016 6 -11030048.188 6 22115062.833 22115061.805 22115061.905
+ 41.800 36.800
+ -1737802.595 4 -1354120.366 3 24132977.956 24132978.561 24132978.188
+ 27.100 21.600
+ -23379471.593 7 -18217754.713 7 20052669.925 20052668.350 20052668.734
+ 45.100 46.300
+ -19814463.557 7 -15439826.695 6 21052879.947 21052876.111 21052879.100
+ 47.000 41.300
+ -851035.911 4 -663144.213 2 24320328.714 24320331.255 24320329.569
+ 24.600 13.900
+ -1477779.462 4 -1151508.398 2 24351772.620 24351770.836 24351772.348
+ 27.400 16.100
+ 06 1 1 23 20 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6887931.781 4 -5367215.619 4 23006383.432 23006383.139 23006382.584
+ 27.600 26.200
+ -14222468.659 6 -11082433.332 6 22102269.546 22102268.853 22102268.796
+ 41.500 37.000
+ -1647852.652 4 -1284029.549 3 24150095.783 24150095.638 24150095.318
+ 26.800 23.000
+ -23389280.142 7 -18225397.725 7 20050803.263 20050801.814 20050802.127
+ 44.900 46.200
+ -19755234.420 7 -15393674.122 6 21064150.706 21064147.055 21064149.916
+ 47.000 41.300
+ -977361.109 4 -761579.368 2 24296290.748 24296292.944 24296291.298
+ 25.300 17.000
+ -1393034.676 4 -1085473.489 2 24367899.426 24367896.891 24367899.210
+ 25.600 17.800
+ 06 1 1 23 20 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -6993130.542 4 -5449188.639 4 22986364.161 22986364.502 22986363.982
+ 27.600 26.500
+ -14289299.775 6 -11134509.495 6 22089551.939 22089551.143 22089551.284
+ 41.800 36.500
+ -1557818.525 4 -1213873.126 4 24167227.789 24167228.770 24167228.007
+ 28.100 24.900
+ -23398580.602 7 -18232644.825 7 20049033.680 20049031.989 20049032.486
+ 45.200 46.300
+ -19695691.986 7 -15347277.423 6 21075481.418 21075477.608 21075480.644
+ 47.100 41.400
+ -1103660.146 4 -859994.174 2 24272257.645 24272258.643 24272257.564
+ 26.200 17.800
+ -1307900.175 3 -1019134.938 3 24384098.622 24384098.133 24384098.343
+ 20.500 19.300
+ 06 1 1 23 21 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7098120.013 4 -5530998.579 4 22966385.081 22966385.662 22966385.175
+ 29.200 26.500
+ -14355731.868 6 -11186274.738 5 22076910.528 22076909.269 22076909.717
+ 41.600 35.800
+ -1467700.816 4 -1143651.587 3 24184377.515 24184377.615 24184377.160
+ 25.300 22.600
+ -23407373.649 7 -18239496.540 7 20047360.396 20047358.736 20047359.196
+ 45.100 46.300
+ -19635836.845 7 -15300637.056 6 21086871.494 21086867.646 21086870.739
+ 47.000 41.300
+ -1229930.096 4 -958386.272 3 24248228.880 24248230.074 24248228.327
+ 24.200 22.100
+ -1222378.767 4 -952494.869 3 24400373.709 24400371.964 24400373.721
+ 25.300 19.300
+ 06 1 1 23 21 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7202897.513 5 -5612643.330 4 22946447.394 22946446.876 22946446.795
+ 30.200 27.100
+ -14421762.875 6 -11237727.450 6 22064345.125 22064344.160 22064344.282
+ 41.800 36.500
+ -1377499.856 4 -1073365.148 3 24201542.800 24201541.903 24201542.047
+ 27.400 21.600
+ -23415659.644 7 -18245953.146 7 20045783.513 20045781.976 20045782.354
+ 45.300 46.300
+ -19575669.329 7 -15253753.281 6 21098320.848 21098317.183 21098320.094
+ 46.800 41.300
+ -1356167.698 3 -1056753.127 4 24224207.369 24224208.110 24224206.315
+ 19.900 24.900
+ -1136473.230 4 -885555.485 3 24416720.555 24416719.955 24416720.523
+ 25.300 20.500
+ 06 1 1 23 22 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7307459.856 5 -5694120.413 4 22926550.320 22926549.667 22926549.450
+ 31.000 28.400
+ -14487390.538 7 -11288865.860 6 22051856.460 22051855.928 22051855.839
+ 42.000 37.200
+ -1287216.260 4 -1003014.294 3 24218723.272 24218721.667 24218722.537
+ 27.100 21.100
+ -23423439.557 7 -18252015.405 7 20044302.933 20044301.490 20044301.776
+ 45.100 46.300
+ -19515190.258 7 -15206626.731 6 21109829.595 21109825.966 21109828.823
+ 46.800 41.100
+ -1482369.848 4 -1155092.354 3 24200191.972 24200192.225 24200191.360
+ 24.200 20.500
+ -1050186.309 4 -818318.901 2 24433140.504 24433139.364 24433140.753
+ 24.200 17.800
+ 06 1 1 23 22 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7411804.242 4 -5775427.651 4 22906693.804 22906693.426 22906692.870
+ 27.900 27.600
+ -14552612.653 7 -11339688.272 6 22039445.274 22039444.548 22039444.557
+ 42.200 37.200
+ -1196850.681 4 -932599.590 3 24235917.803 24235918.330 24235917.561
+ 25.300 21.100
+ -23430714.138 7 -18257683.896 7 20042918.591 20042917.202 20042917.456
+ 45.100 46.400
+ -19454400.140 7 -15159257.815 6 21121397.562 21121393.883 21121396.687
+ 46.500 41.200
+ -1608533.381 3 -1253401.537 3 24176182.848 24176183.513 24176181.883
+ 22.100 19.900
+ -963520.705 3 -750787.279 3 24449632.120 24449631.155 24449631.854
+ 22.100 19.900
+ 06 1 1 23 23 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7515927.499 4 -5856562.585 4 22886880.147 22886879.207 22886878.943
+ 28.600 26.500
+ -14617427.285 7 -11390193.155 6 22027111.270 22027110.280 22027110.536
+ 42.000 36.800
+ -1106403.491 4 -862121.311 3 24253129.126 24253130.147 24253129.437
+ 25.300 19.300
+ -23437483.932 7 -18262959.046 7 20041630.315 20041629.002 20041629.197
+ 45.100 46.400
+ -19393299.788 7 -15111647.149 6 21133024.406 21133020.857 21133023.735
+ 46.600 41.100
+ -1734655.345 3 -1351678.331 2 24152181.562 24152183.232 24152181.869
+ 20.500 17.000
+ -876478.697 4 -682962.365 2 24466196.407 24466193.960 24466195.824
+ 24.600 15.100
+ 06 1 1 23 23 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7619826.566 4 -5937522.845 4 22867108.961 22867107.685 22867107.599
+ 29.700 27.100
+ -14681832.011 7 -11440378.640 6 22014855.418 22014854.503 22014854.715
+ 42.000 36.600
+ -1015875.272 4 -791579.834 3 24270357.286 24270356.963 24270356.720
+ 24.900 20.500
+ -23443749.499 7 -18267841.292 7 20040438.178 20040436.661 20040436.966
+ 45.000 46.400
+ -19331889.691 7 -15063795.127 6 21144710.621 21144706.905 21144709.774
+ 46.700 41.000
+ -1860732.390 3 -1449920.116 2 24128191.702 24128192.016 24128190.875
+ 23.800 17.800
+ -789063.758 4 -614846.813 2 24482831.091 24482829.202 24482830.771
+ 24.200 15.100
+ 06 1 1 23 24 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7723498.529 5 -6018306.133 4 22847380.610 22847379.631 22847379.570
+ 30.100 27.600
+ -14745824.786 7 -11490243.120 6 22002678.166 22002677.172 22002677.270
+ 42.000 36.900
+ -925266.566 4 -720975.665 3 24287599.557 24287598.918 24287598.912
+ 24.200 18.600
+ -23449511.566 7 -18272331.202 7 20039341.642 20039340.167 20039340.481
+ 45.100 46.500
+ -19270170.248 7 -15015702.057 6 21156455.460 21156451.931 21156454.655
+ 46.800 41.200
+ -1986761.552 4 -1548124.645 2 24104208.302 24104208.670 24104208.026
+ 24.900 15.100
+ -701278.512 4 -546442.735 1 24499536.184 24499533.576 24499536.032
+ 25.900 9.000
+ 06 1 1 23 24 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7826940.492 5 -6098910.195 4 22827695.676 22827695.343 22827695.045
+ 31.000 29.000
+ -14809403.369 7 -11539784.852 6 21990579.353 21990578.591 21990578.665
+ 42.200 36.700
+ -834578.010 4 -650309.279 2 24304857.532 24304856.168 24304856.882
+ 25.900 15.100
+ -23454770.980 7 -18276429.434 7 20038340.856 20038339.247 20038339.646
+ 45.100 46.500
+ -19208142.228 7 -14967368.538 6 21168259.405 21168255.243 21168258.433
+ 46.900 40.700
+ -2112739.479 4 -1646289.242 3 24080235.731 24080236.632 24080235.227
+ 24.600 22.100
+ -613125.655 4 -477752.142 2 24516309.970 24516308.491 24516310.118
+ 25.300 15.100
+ 06 1 1 23 25 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -7930149.353 4 -6179332.624 4 22808055.310 22808055.037 22808054.846
+ 29.200 27.600
+ -14872565.547 7 -11589002.123 6 21978560.128 21978558.970 21978559.428
+ 42.600 36.900
+ -743809.888 4 -579580.869 2 24322130.477 24322128.978 24322129.834
+ 26.200 16.100
+ -23459528.506 7 -18280136.586 7 20037435.366 20037433.891 20037434.180
+ 45.100 46.400
+ -19145806.237 7 -14918795.035 6 21180121.590 21180117.423 21180120.627
+ 46.900 41.000
+ -2238663.273 3 -1744411.595 3 24056273.090 24056273.926 24056272.470
+ 23.800 19.300
+ -524607.816 3 -408777.195 2 24533154.687 24533153.740 24533154.369
+ 23.000 15.100
+ 06 1 1 23 25 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8033122.119 4 -6259571.084 4 22788460.001 22788459.767 22788459.718
+ 29.500 27.400
+ -14935309.356 7 -11637893.392 6 21966620.343 21966619.334 21966619.565
+ 42.500 37.200
+ -652962.896 4 -508791.008 2 24339417.272 24339415.761 24339416.546
+ 25.600 16.100
+ -23463784.782 7 -18283453.150 7 20036625.496 20036623.944 20036624.353
+ 45.100 46.400
+ -19083162.958 7 -14869982.093 6 21192041.897 21192038.215 21192041.114
+ 46.800 41.300
+ -2364529.498 4 -1842489.118 3 24032322.169 24032322.595 24032321.408
+ 25.300 22.100
+ -435727.816 3 -339520.074 2 24550068.772 24550067.000 24550068.427
+ 21.600 13.900
+ 06 1 1 23 26 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8135855.907 5 -6339623.325 4 22768910.956 22768910.334 22768910.178
+ 30.600 27.600
+ -14997632.450 7 -11686456.823 6 21954760.491 21954759.824 21954759.799
+ 42.500 37.700
+ -562037.646 4 -437940.180 3 24356719.488 24356718.956 24356718.875
+ 25.900 19.300
+ -23467540.714 7 -18286379.838 7 20035910.830 20035909.143 20035909.646
+ 45.300 46.400
+ -19020212.637 7 -14820929.895 6 21204020.803 21204017.254 21204020.100
+ 46.700 41.100
+ -2490335.195 4 -1940519.485 3 24008380.844 24008382.258 24008381.107
+ 24.900 21.100
+ -346488.533 3 -269982.933 1 24567050.657 24567049.344 24567050.365
+ 22.100 6.500
+ 06 1 1 23 26 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8238347.629 5 -6419486.937 4 22749406.348 22749406.869 22749406.478
+ 30.400 28.400
+ -15059532.964 7 -11734690.968 6 21942981.608 21942980.588 21942980.744
+ 42.700 37.800
+ -471034.577 4 -367028.732 3 24374036.812 24374036.859 24374036.430
+ 24.200 18.600
+ -23470797.026 7 -18288917.211 7 20035291.192 20035289.466 20035289.981
+ 45.300 46.200
+ -18956956.393 7 -14771639.317 6 21216058.117 21216054.499 21216057.290
+ 46.500 41.100
+ -2616077.106 4 -2038500.179 3 23984454.064 23984453.918 23984453.207
+ 24.600 19.300
+ -256892.595 3 -200167.915 1 24584099.322 24584097.745 24584098.845
+ 22.100 11.000
+ 06 1 1 23 27 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8340594.378 4 -6499159.658 4 22729948.538 22729950.060 22729949.210
+ 29.700 29.200
+ -15121008.553 7 -11782594.007 6 21931283.087 21931281.932 21931282.264
+ 42.600 37.400
+ -379954.403 4 -296057.199 3 24391368.407 24391369.118 24391368.317
+ 24.900 18.600
+ -23473554.554 7 -18291065.923 7 20034766.220 20034764.730 20034765.114
+ 45.300 46.300
+ -18893394.722 7 -14722110.739 6 21228153.177 21228149.796 21228152.537
+ 46.400 40.700
+ -2741751.966 3 -2136428.593 4 23960537.775 23960539.651 23960537.327
+ 21.600 24.200
+ -166943.109 3 -130077.411 2 24601216.201 24601214.602 24601216.148
+ 23.800 16.100
+ 06 1 1 23 27 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8442593.185 4 -6578639.186 4 22710538.657 22710540.038 22710539.609
+ 28.800 27.900
+ -15182057.071 7 -11830164.270 6 21919665.631 21919664.751 21919664.891
+ 42.700 37.300
+ -288797.259 4 -225025.684 2 24408715.981 24408715.099 24408715.474
+ 25.900 16.100
+ -23475813.972 7 -18292826.494 7 20034336.440 20034334.856 20034335.216
+ 45.200 46.400
+ -18829528.117 7 -14672344.556 6 21240306.761 21240303.154 21240305.961
+ 46.100 40.800
+ -2867356.637 4 -2234302.322 3 23936637.301 23936637.189 23936636.738
+ 25.900 20.500
+ -76642.650 3 -59713.407 2 24618399.913 24618398.552 24618399.617
+ 20.500 15.100
+ 06 1 1 23 28 0.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8544341.219 5 -6657923.314 4 22691177.726 22691178.152 22691177.503
+ 30.200 28.100
+ -15242676.690 7 -11877400.316 6 21908129.948 21908129.335 21908129.329
+ 42.700 37.800
+ -197563.974 4 -153934.808 1 24426076.946 24426076.181 24426076.439
+ 24.900 11.000
+ -23477576.303 7 -18294199.727 7 20034001.101 20033999.468 20033999.966
+ 45.400 46.300
+ -18765357.332 7 -14622341.346 6 21252518.084 21252514.518 21252517.200
+ 46.000 40.900
+ -2992888.123 3 -2332119.069 3 23912748.497 23912749.077 23912747.870
+ 23.800 21.100
+ 14006.222 3 10922.054 2 24635650.177 24635647.772 24635649.562
+ 18.600 13.900
+ 06 1 1 23 28 30.0000000 0 7G29G 6G 4G10G 2G26G13
+ -8645835.176 5 -6737009.445 4 22671864.043 22671864.281 22671863.910
+ 30.800 28.800
+ -15302865.055 7 -11924300.325 6 21896676.839 21896675.935 21896675.964
+ 42.400 38.100
+ -106255.229 4 -82785.178 3 24443453.094 24443452.124 24443452.222
+ 24.200 19.300
+ -23478842.278 7 -18295186.188 7 20033760.131 20033758.452 20033758.971
+ 45.400 46.200
+ -18700883.039 7 -14572101.636 6 21264786.963 21264783.547 21264786.196
+ 45.700 40.700
+ -3118342.969 3 -2429876.059 3 23888876.458 23888876.350 23888875.561
+ 23.800 21.100
+ 105000.462 3 81826.677 2 24652965.533 24652963.920 24652965.163
+ 18.600 15.100
+ 06 1 1 23 29 0.0000000 0 6G29G 6G 4G10G 2G26
+ -8747072.311 5 -6815895.476 4 22652599.938 22652599.662 22652599.331
+ 31.800 29.200
+ -15362620.153 7 -11970862.713 6 21885305.635 21885304.854 21885304.818
+ 42.500 37.800
+ -14871.307 4 -11576.977 2 24460842.317 24460841.666 24460841.908
+ 25.300 17.000
+ -23479612.614 7 -18295786.430 7 20033613.348 20033611.884 20033612.215
+ 45.300 46.400
+ -18636105.709 7 -14521625.794 6 21277113.798 21277110.135 21277113.092
+ 46.100 40.500
+ -3243718.108 4 -2527570.972 3 23865017.711 23865017.578 23865017.178
+ 25.900 21.100
+ 06 1 1 23 29 30.0000000 0 6G29G 6G 4G10G 2G26
+ -8848049.698 5 -6894579.108 4 22633384.326 22633384.007 22633383.659
+ 30.400 28.800
+ -15421939.966 7 -12017085.921 6 21874017.380 21874016.600 21874016.703
+ 43.100 37.800
+ 76587.208 3 59689.378 2 24478246.416 24478245.894 24478245.699
+ 23.400 13.900
+ -23479888.301 7 -18296001.235 7 20033560.984 20033559.443 20033559.836
+ 45.100 46.400
+ -18571026.083 7 -14470914.391 6 21289497.895 21289494.380 21289497.272
+ 46.100 40.300
+ -3369010.126 4 -2625201.114 3 23841174.514 23841175.594 23841174.129
+ 25.300 22.600
+ 06 1 1 23 30 0.0000000 0 6G29G 6G 4G10G 2G26
+ -8948764.137 5 -6973057.835 4 22614219.228 22614218.556 22614218.271
+ 30.800 28.800
+ -15480822.216 7 -12062968.173 6 21862812.658 21862811.708 21862811.888
+ 43.100 38.200
+ 168119.755 3 131013.426 3 24495664.983 24495664.150 24495664.229
+ 23.800 20.500
+ -23479670.564 7 -18295831.553 7 20033602.511 20033600.898 20033601.368
+ 45.500 46.400
+ -18505644.787 7 -14419967.931 6 21301939.617 21301936.059 21301938.992
+ 46.200 40.200
+ -3494216.037 4 -2722764.124 3 23817349.132 23817350.044 23817348.638
+ 25.300 22.600
+ 06 1 1 23 30 30.0000000 0 6G29G 6G 4G10G 2G26
+ -9049212.775 5 -7051329.452 4 22595104.325 22595103.836 22595103.538
+ 30.400 28.800
+ -15539264.678 7 -12108507.732 6 21851691.260 21851690.354 21851690.432
+ 42.700 37.900
+ 259725.887 4 202394.750 3 24513096.209 24513096.325 24513096.163
+ 24.600 19.300
+ -23478959.997 7 -18295277.853 7 20033737.703 20033736.104 20033736.532
+ 45.400 46.400
+ -18439962.527 7 -14368786.948 6 21314438.619 21314434.941 21314437.889
+ 45.900 40.000
+ -3619332.460 4 -2820257.432 3 23793539.846 23793540.987 23793539.675
+ 25.600 21.600
+ 06 1 1 23 31 0.0000000 0 6G29G 6G 4G10G 2G26
+ -9149392.735 5 -7129391.705 5 22576040.792 22576040.503 22576040.144
+ 31.600 30.100
+ -15597265.762 7 -12153703.356 6 21840653.921 21840653.118 21840653.270
+ 43.000 38.200
+ 351404.946 3 273832.972 2 24530540.817 24530542.049 24530541.228
+ 21.100 15.100
+ -23477757.582 7 -18294340.896 7 20033966.438 20033964.875 20033965.297
+ 45.400 46.400
+ -18373979.888 7 -14317371.901 6 21326994.934 21326991.139 21326993.951
+ 46.000 40.300
+ -3744356.341 4 -2917678.576 3 23769749.233 23769749.388 23769748.820
+ 25.300 20.500
+ 06 1 1 23 31 30.0000000 0 6G29G 6G 4G10G 2G26
+ -9249300.956 5 -7207242.221 4 22557029.014 22557028.192 22557028.151
+ 31.100 29.200
+ -15654823.245 7 -12198553.320 6 21829701.267 21829700.371 21829700.480
+ 43.300 38.300
+ 443156.546 3 345327.681 2 24548001.852 24548001.271 24548001.356
+ 20.500 13.900
+ -23476064.289 7 -18293021.433 7 20034288.604 20034287.108 20034287.472
+ 45.300 46.500
+ -18307697.516 7 -14265723.298 6 21339608.147 21339604.089 21339607.221
+ 46.200 40.000
+ -3869284.187 4 -3015024.929 3 23745976.953 23745976.400 23745975.933
+ 24.200 22.100
+ 06 1 1 23 32 0.0000000 0 6G29G 6G 4G10G 2G26
+ -9348934.585 5 -7284878.780 4 22538069.240 22538068.464 22538068.436
+ 31.800 29.900
+ -15711935.067 7 -12243056.016 6 21818833.116 21818832.297 21818832.303
+ 43.000 38.300
+ 534979.996 3 416878.383 2 24565476.029 24565475.172 24565475.269
+ 23.400 17.800
+ -23473880.932 7 -18291320.108 7 20034704.071 20034702.532 20034702.866
+ 45.400 46.400
+ -18241115.979 7 -14213841.578 6 21352277.741 21352274.316 21352277.112
+ 46.100 40.200
+ -3994112.985 4 -3112294.091 4 23722222.061 23722222.725 23722221.134
+ 25.300 24.200
+ 06 1 1 23 32 30.0000000 0 6G29G 6G 4G10G 2G26
+ -9448290.867 5 -7362299.201 5 22519162.220 22519161.684 22519161.455
+ 32.300 30.400
+ -15768599.227 7 -12287209.880 6 21808050.306 21808049.346 21808049.644
+ 43.300 38.000
+ 626874.784 4 488484.676 2 24582963.436 24582961.857 24582962.382
+ 24.900 15.100
+ -23471208.430 7 -18289237.625 7 20035212.726 20035211.023 20035211.475
+ 45.400 46.400
+ -18174236.036 7 -14161727.343 6 21365004.701 21365001.156 21365003.920
+ 45.900 40.100
+ -4118839.345 4 -3209483.427 4 23698487.529 23698487.964 23698487.305
+ 27.600 24.900
+ 06 1 1 23 33 0.0000000 0 6G29G 6G 4G10G 2G26
+ -9547366.600 5 -7439501.034 5 22500308.803 22500308.080 22500308.270
+ 32.400 30.400
+ -15824813.665 7 -12331013.316 6 21797353.340 21797351.955 21797352.519
+ 43.500 38.000
+ 718840.507 4 560146.276 2 24600463.072 24600462.493 24600462.943
+ 24.600 16.100
+ -23468047.814 7 -18286774.791 7 20035814.221 20035812.472 20035813.048
+ 45.700 46.400
+ -18107058.620 7 -14109381.308 6 21377788.326 21377784.632 21377787.540
+ 46.200 39.800
+ -4243459.900 4 -3306590.305 4 23674771.887 23674773.342 23674771.998
+ 24.900 24.600
+ 06 1 1 23 33 30.0000000 0 6G29G 6G 4G10G 2G26
+ -9646158.824 5 -7516481.947 5 22481509.312 22481508.548 22481508.712
+ 32.800 30.100
+ -15880576.329 7 -12374464.719 6 21786742.050 21786740.494 21786741.114
+ 43.300 37.800
+ 810876.553 3 631862.662 2 24617975.736 24617976.163 24617975.781
+ 20.500 13.900
+ -23464400.260 7 -18283932.530 7 20036508.287 20036506.540 20036507.182
+ 45.700 46.400
+ -18039584.207 7 -14056803.841 6 21390628.240 21390624.361 21390627.462
+ 45.900 39.800
+ -4367971.667 4 -3403612.416 4 23651078.764 23651079.866 23651078.585
+ 28.100 24.900
+ 06 1 1 23 34 0.0000000 0 6G29G 6G 4G10G 2G26
+ -9744664.769 5 -7593239.779 4 22462763.982 22462763.527 22462763.418
+ 31.600 29.900
+ -15935885.257 7 -12417562.561 6 21776216.897 21776215.799 21776216.138
+ 43.600 38.200
+ 902982.292 3 703633.320 2 24635504.738 24635504.212 24635503.977
+ 22.600 15.100
+ -23460266.589 7 -18280711.476 7 20037295.098 20037293.144 20037293.904
+ 45.800 46.400
+ -17971813.257 7 -14003995.310 6 21403524.986 21403520.710 21403524.012
+ 45.800 39.500
+ -4492371.175 4 -3500547.073 3 23627406.979 23627406.444 23627406.154
+ 26.200 20.500
+ 06 1 1 23 34 30.0000000 0 6G29G 6G 4G10G 2G26
+ -9842881.455 5 -7669772.215 4 22444073.774 22444073.165 22444073.229
+ 32.000 29.900
+ -15990738.600 7 -12460305.400 6 21765778.789 21765777.587 21765777.969
+ 43.900 38.200
+ 995157.255 4 775457.938 3 24653044.460 24653044.521 24653044.062
+ 24.200 21.100
+ -23455647.848 7 -18277112.447 7 20038173.970 20038172.141 20038172.775
+ 45.700 46.500
+ -17903746.503 7 -13950956.289 6 21416477.301 21416473.483 21416476.606
+ 46.000 39.700
+ -4616655.375 4 -3597391.864 3 23603755.662 23603756.639 23603755.533
+ 28.100 23.400
+ 06 1 1 23 35 0.0000000 0 6G29G 6G 4G10G 2G26
+ -9940805.891 5 -7746076.926 5 22425438.785 22425438.761 22425438.672
+ 32.600 30.200
+ -16045134.283 7 -12502691.621 6 21755427.547 21755426.303 21755426.734
+ 43.900 38.200
+ 1087400.828 4 847336.023 3 24670597.481 24670597.768 24670597.294
+ 24.600 19.300
+ -23450545.041 7 -18273136.224 7 20039144.831 20039143.212 20039143.682
+ 45.600 46.500
+ -17835384.808 7 -13897687.441 6 21429486.028 21429482.311 21429485.255
+ 45.700 39.400
+ -4740820.868 4 -3694144.176 3 23580127.487 23580127.942 23580127.369
+ 27.600 21.100
+ 06 1 1 23 35 30.0000000 0 6G29G 6G 4G10G 2G26
+ -10038435.289 5 -7822151.711 5 22406860.018 22406860.629 22406860.416
+ 33.000 31.000
+ -16099070.297 7 -12544719.665 6 21745163.887 21745162.584 21745163.187
+ 44.000 38.300
+ 1179712.470 3 919267.148 3 24688163.340 24688164.467 24688163.206
+ 22.600 20.500
+ -23444959.216 7 -18268783.624 7 20040207.886 20040206.139 20040206.613
+ 45.600 46.400
+ -17766728.773 7 -13844189.233 6 21442551.136 21442546.890 21442550.190
+ 45.600 39.400
+ -4864864.474 4 -3790801.520 3 23556523.815 23556523.893 23556522.693
+ 27.400 23.400
+ 06 1 1 23 36 0.0000000 0 6G29G 6G 4G10G 2G26
+ -10135766.574 5 -7897994.226 5 22388338.224 22388338.886 22388338.970
+ 33.600 30.400
+ -16152544.653 7 -12586387.973 6 21734988.203 21734986.748 21734987.271
+ 43.900 38.200
+ 1272091.826 3 991251.006 2 24705742.569 24705743.319 24705742.501
+ 20.500 17.800
+ -23438891.278 7 -18264055.349 7 20041362.372 20041360.802 20041361.190
+ 45.600 46.400
+ -17697779.083 7 -13790462.207 6 21455671.648 21455667.713 21455670.772
+ 45.400 39.600
+ -4988782.752 4 -3887361.201 3 23532942.184 23532942.581 23532941.842
+ 28.800 20.500
+ 06 1 1 23 36 30.0000000 0 6G29G 6G 4G10G 2G26
+ -10232797.061 5 -7973602.344 5 22369873.347 22369874.689 22369874.252
+ 32.600 30.400
+ -16205555.516 7 -12627695.114 6 21724900.263 21724898.926 21724899.499
+ 44.000 38.200
+ 1364538.182 3 1063287.094 2 24723335.840 24723334.976 24723334.989
+ 23.400 13.900
+ -23432342.090 7 -18258952.076 7 20042608.543 20042607.052 20042607.434
+ 45.700 46.400
+ -17628536.331 7 -13736506.822 6 21468847.819 21468844.450 21468847.126
+ 45.300 39.500
+ -5112572.631 4 -3983820.826 4 23509385.825 23509386.747 23509385.565
+ 25.900 24.900
+ 06 1 1 23 37 0.0000000 0 6G29G 6G 4G10G 2G26
+ -10329523.933 5 -8048973.872 5 22351467.286 22351467.946 22351467.936
+ 33.400 31.000
+ -16258101.007 7 -12668639.627 6 21714901.244 21714899.926 21714900.469
+ 44.200 38.500
+ 1457050.898 3 1135374.923 1 24740939.563 24740938.940 24740939.447
+ 23.400 9.000
+ -23425313.118 7 -18253474.943 7 20043946.060 20043944.629 20043944.956
+ 45.700 46.600
+ -17559001.171 7 -13682323.595 6 21482080.015 21482076.477 21482079.296
+ 45.200 39.500
+ -5236230.647 4 -4080177.673 3 23485854.314 23485854.899 23485853.482
+ 24.200 23.000
+ 06 1 1 23 37 30.0000000 0 6G29G 6G 4G10G 2G26
+ -10425943.990 5 -8124106.337 5 22333119.443 22333119.832 22333119.769
+ 32.600 30.100
+ -16310179.084 7 -12709219.919 6 21704991.077 21704989.973 21704990.319
+ 44.200 39.100
+ 1549629.736 3 1207514.277 1 24758556.642 24758556.126 24758556.562
+ 21.100 11.000
+ -23417805.380 7 -18247624.743 7 20045374.947 20045373.295 20045373.744
+ 45.600 46.700
+ -17489174.420 7 -13627913.141 6 21495367.808 21495363.804 21495366.923
+ 45.200 39.200
+ -5359753.471 4 -4176429.190 4 23462348.623 23462349.351 23462348.436
+ 28.100 24.200
+ 06 1 1 23 38 0.0000000 0 6G29G 6G 4G10G 2G26
+ -10522054.422 5 -8198997.531 5 22314831.177 22314830.705 22314830.605
+ 33.400 31.100
+ -16361787.722 7 -12749434.419 6 21695170.210 21695169.098 21695169.401
+ 44.100 39.100
+ 1642273.993 4 1279704.599 2 24776186.763 24776186.382 24776186.381
+ 24.200 15.100
+ -23409819.820 7 -18241402.217 7 20046894.593 20046892.895 20046893.366
+ 45.800 46.500
+ -17419056.576 7 -13573275.868 6 21508710.576 21508706.942 21508709.762
+ 45.000 39.300
+ -5483137.963 4 -4272572.937 4 23438869.967 23438870.166 23438869.146
+ 28.100 24.900
+ 06 1 1 23 38 30.0000000 0 6G29G 6G 4G10G 2G26
+ -10617852.514 5 -8273645.325 5 22296601.340 22296600.661 22296600.888
+ 33.200 31.300
+ -16412925.254 7 -12789281.817 6 21685438.878 21685437.952 21685438.147
+ 44.000 38.900
+ 1734983.091 3 1351945.433 2 24793828.619 24793828.132 24793827.954
+ 21.100 16.100
+ -23401357.753 7 -18234808.388 7 20048504.723 20048503.143 20048503.559
+ 45.800 46.600
+ -17348648.924 7 -13518412.775 6 21522108.576 21522105.133 21522107.896
+ 44.800 39.400
+ -5606380.732 4 -4368606.203 4 23415418.740 23415417.659 23415417.209
+ 27.400 25.600
+ 06 1 1 23 39 0.0000000 0 6G29G 6G 4G10G 2G26
+ -10713335.175 5 -8348047.348 5 22278431.770 22278431.029 22278431.087
+ 33.500 31.800
+ -16463589.695 7 -12828760.584 6 21675797.954 21675796.862 21675797.126
+ 44.200 38.800
+ 1827756.528 3 1424236.391 2 24811482.744 24811483.156 24811483.024
+ 23.800 17.000
+ -23392420.075 7 -18227843.951 7 20050205.468 20050203.895 20050204.356
+ 45.900 46.600
+ -17277951.697 7 -13463324.045 6 21535561.887 21535558.550 21535561.221
+ 45.000 39.500
+ -5729478.412 4 -4464526.414 4 23391992.859 23391992.931 23391992.037
+ 26.800 25.600
+ 06 1 1 23 39 30.0000000 0 6G29G 6G 4G10G 2G26
+ -10808499.653 5 -8422201.412 5 22260322.344 22260321.849 22260321.569
+ 33.600 31.600
+ -16513779.169 7 -12867869.241 6 21666247.081 21666246.034 21666246.259
+ 43.800 39.000
+ 1920593.691 3 1496577.042 2 24829150.867 24829149.622 24829149.418
+ 23.000 17.800
+ -23383007.981 7 -18220509.839 7 20051996.687 20051994.931 20051995.455
+ 45.900 46.700
+ -17206965.597 7 -13408010.204 6 21549070.412 21549066.589 21549069.529
+ 45.000 39.200
+ -5852427.795 4 -4560331.104 4 23368596.018 23368596.458 23368595.585
+ 28.400 25.600
+ 06 1 1 23 40 0.0000000 0 6G29G 6G 4G10G 2G26
+ -10903343.152 5 -8496105.394 5 22242275.122 22242273.369 22242273.845
+ 33.600 31.100
+ -16563491.818 7 -12906606.347 6 21656787.041 21656785.963 21656786.328
+ 44.100 39.200
+ 2013494.083 4 1568966.947 2 24846829.707 24846827.463 24846827.908
+ 25.600 17.800
+ -23373122.403 7 -18212806.778 7 20053877.735 20053876.112 20053876.598
+ 46.000 46.600
+ -17135691.359 7 -13352471.847 6 21562633.570 21562629.812 21562632.715
+ 45.200 39.300
+ -5975225.484 4 -4656017.538 4 23345230.118 23345228.449 23345228.587
+ 28.800 24.600
+ 06 1 1 23 40 30.0000000 0 7G29G 6G 4G10G 2G26G21
+ -10997862.750 5 -8569756.967 5 22224288.719 22224287.174 22224287.336
+ 33.500 32.600
+ -16612725.915 7 -12944970.553 6 21647418.178 21647417.138 21647417.396
+ 44.300 39.300
+ 2106457.211 3 1641405.752 3 24864518.522 24864517.909 24864517.846
+ 23.000 19.900
+ -23362764.618 7 -18204735.763 7 20055848.761 20055847.168 20055847.589
+ 45.900 46.500
+ -17064129.738 7 -13296709.559 6 21576251.075 21576247.551 21576250.377
+ 45.300 39.500
+ -6097868.250 4 -4751583.278 3 23321890.857 23321890.085 23321889.956
+ 29.200 23.000
+ -203255.992 3 -158381.006 1 24866305.942 24866304.880 24866305.275
+ 21.600 9.000
+ 06 1 1 23 41 0.0000000 0 6G29G 6G10G 2G26G21
+ -11092055.700 5 -8643154.009 5 22206363.862 22206362.653 22206362.755
+ 34.300 31.500
+ -16661479.468 7 -12982960.307 6 21638140.436 21638139.504 21638139.763
+ 44.100 39.100
+ -23351935.876 7 -18196297.765 7 20057909.318 20057907.686 20057908.183
+ 45.800 46.600
+ -16992281.519 7 -13240723.935 6 21589923.448 21589919.750 21589922.565
+ 44.800 39.000
+ -6220352.613 4 -4847025.616 3 23298581.764 23298582.241 23298581.574
+ 28.400 23.000
+ -298554.822 3 -232639.670 2 24848170.944 24848170.179 24848169.940
+ 19.900 15.100
+ 06 1 1 23 41 30.0000000 0 6G29G 6G10G 2G26G21
+ -11185918.905 5 -8716294.115 5 22188501.677 22188500.953 22188501.055
+ 34.300 31.300
+ -16709750.731 7 -13020574.268 6 21628954.923 21628953.599 21628954.086
+ 44.300 39.000
+ -23340637.349 7 -18187493.703 7 20060059.536 20060057.657 20060058.343
+ 45.800 46.500
+ -16920147.352 7 -13184515.505 6 21603649.862 21603646.186 21603649.146
+ 44.900 38.500
+ -6342675.436 4 -4942342.054 3 23275306.232 23275304.612 23275304.726
+ 29.000 21.600
+ -393867.375 3 -306909.038 3 24830034.858 24830032.727 24830033.475
+ 22.100 19.300
+ 06 1 1 23 42 0.0000000 0 6G29G 6G10G 2G26G21
+ -11279449.667 5 -8789175.171 5 22170703.183 22170702.783 22170702.876
+ 34.900 31.600
+ -16757537.688 7 -13057810.838 6 21619861.244 21619860.291 21619860.497
+ 44.000 39.600
+ -23328870.312 7 -18178324.570 7 20062298.528 20062296.902 20062297.424
+ 45.800 46.400
+ -16847728.070 7 -13128084.905 6 21617431.210 21617427.171 21617430.269
+ 45.100 38.300
+ -6464833.290 4 -5037529.926 4 23252059.970 23252058.943 23252058.881
+ 28.100 24.900
+ -489192.765 3 -381188.448 3 24811894.390 24811892.324 24811893.087
+ 21.100 18.600
+ 06 1 1 23 42 30.0000000 0 6G29G 6G10G 2G26G21
+ -11372645.346 5 -8861795.135 5 22152968.860 22152968.093 22152968.187
+ 34.600 32.700
+ -16804838.431 7 -13094668.536 6 21610860.341 21610859.366 21610859.553
+ 44.100 39.800
+ -23316635.669 7 -18168791.070 7 20064626.858 20064625.102 20064625.623
+ 45.700 46.600
+ -16775024.122 7 -13071432.479 6 21631266.181 21631262.205 21631265.364
+ 44.700 37.900
+ -6586822.858 4 -5132586.677 4 23228843.486 23228845.304 23228844.187
+ 27.900 26.200
+ -584530.527 3 -455477.485 3 24793752.341 24793750.505 24793750.992
+ 22.100 21.100
+ 06 1 1 23 43 0.0000000 0 6G29G 6G10G 2G26G21
+ -11465502.979 5 -8934151.666 5 22135298.756 22135297.788 22135297.832
+ 34.600 32.400
+ -16851651.495 7 -13131146.230 6 21601951.905 21601950.961 21601951.167
+ 44.200 39.400
+ -23303934.707 7 -18158894.204 7 20067043.573 20067041.994 20067042.419
+ 45.700 46.400
+ -16702036.454 7 -13014558.974 6 21645155.142 21645151.397 21645154.358
+ 44.400 38.000
+ -6708640.796 4 -5227509.694 4 23205663.766 23205663.709 23205663.152
+ 24.200 25.600
+ -679879.787 3 -529775.468 4 24775607.265 24775606.487 24775606.374
+ 23.800 24.200
+ 06 1 1 23 43 30.0000000 0 6G29G 6G10G 2G26G21
+ -11558019.676 5 -9006242.545 5 22117693.334 22117692.383 22117692.651
+ 35.600 32.600
+ -16897975.196 7 -13167242.599 6 21593137.173 21593135.710 21593136.294
+ 44.400 39.500
+ -23290768.606 7 -18148634.893 7 20069549.098 20069547.356 20069547.898
+ 45.700 46.600
+ -16628765.752 7 -12957464.923 6 21659098.104 21659094.206 21659097.320
+ 44.500 37.800
+ -6830283.823 4 -5322296.379 4 23182517.563 23182516.206 23182516.005
+ 28.400 26.800
+ -775239.914 4 -604081.955 3 24757461.120 24757459.929 24757460.058
+ 25.600 23.800
+ 06 1 1 23 44 0.0000000 0 6G29G 6G10G 2G26G21
+ -11650192.824 5 -9078065.726 5 22100153.782 22100152.418 22100152.670
+ 34.800 33.000
+ -16943807.628 7 -13202956.174 6 21584415.315 21584414.141 21584414.642
+ 44.500 39.500
+ -23277138.477 7 -18138014.007 7 20072142.590 20072141.086 20072141.476
+ 45.600 46.600
+ -16555213.025 7 -12900151.113 6 21673095.074 21673091.056 21673093.980
+ 43.900 38.100
+ -6951748.569 5 -5416944.183 4 23159401.468 23159401.866 23159401.579
+ 30.200 26.500
+ -870609.749 4 -678396.000 3 24739313.222 24739310.891 24739312.242
+ 26.500 19.300
+ 06 1 1 23 44 30.0000000 0 6G29G 6G10G 2G26G21
+ -11742019.439 5 -9149618.872 5 22082679.968 22082678.078 22082678.719
+ 35.400 32.600
+ -16989146.647 7 -13238285.253 6 21575787.475 21575786.463 21575786.715
+ 44.500 39.500
+ -23263045.784 7 -18127032.676 7 20074824.503 20074822.843 20074823.279
+ 45.700 46.400
+ -16481378.628 7 -12842617.825 6 21687144.745 21687141.325 21687144.178
+ 44.100 38.400
+ -7073031.765 5 -5511450.549 4 23136321.903 23136322.276 23136321.992
+ 30.100 25.600
+ -965988.725 4 -752717.197 2 24721162.192 24721160.712 24721161.377
+ 26.200 16.100
+ 06 1 1 23 45 0.0000000 0 6G29G 6G10G 2G26G21
+ -11833496.867 5 -9220899.941 5 22065272.233 22065270.583 22065271.035
+ 35.300 32.400
+ -17033991.037 7 -13273228.918 6 21567253.700 21567252.747 21567252.928
+ 44.200 39.300
+ -23248491.694 7 -18115691.820 7 20077593.938 20077592.454 20077592.832
+ 45.700 46.600
+ -16407263.331 7 -12784865.661 6 21701248.829 21701245.024 21701247.877
+ 43.900 38.400
+ -7194129.873 4 -5605812.636 4 23113279.883 23113278.426 23113278.341
+ 29.500 27.900
+ -1061376.248 4 -827045.063 2 24703010.961 24703009.007 24703009.889
+ 25.600 15.100
+ 06 1 1 23 45 30.0000000 0 6G29G 6G10G 2G26G21
+ -11924622.182 5 -9291906.629 5 22047930.825 22047930.034 22047930.240
+ 35.800 33.100
+ -17078339.057 7 -13307785.801 6 21558814.733 21558813.539 21558813.984
+ 44.400 39.500
+ -23233477.546 7 -18103992.472 7 20080451.172 20080449.508 20080449.982
+ 45.800 46.500
+ -16332867.971 7 -12726895.255 6 21715405.623 21715401.937 21715404.724
+ 43.900 38.300
+ -7315039.649 5 -5700027.986 4 23090271.606 23090270.056 23090270.168
+ 30.100 28.400
+ -1156771.552 3 -901378.955 2 24684858.196 24684855.902 24684857.010
+ 21.600 13.900
+ 06 1 1 23 46 0.0000000 0 6G29G 6G10G 2G26G21
+ -12015392.890 6 -9362636.990 5 22030657.001 22030656.725 22030657.145
+ 36.600 33.400
+ -17122188.620 7 -13341954.277 6 21550470.536 21550469.283 21550469.728
+ 44.500 39.500
+ -23218004.488 7 -18091935.537 7 20083395.585 20083393.873 20083394.451
+ 45.900 46.600
+ -16258193.279 7 -12668707.196 6 21729615.602 21729612.061 21729614.804
+ 43.500 38.200
+ -7435757.717 5 -5794093.947 4 23067296.690 23067297.822 23067297.245
+ 30.400 27.100
+ -1252173.910 3 -975718.407 2 24666702.675 24666701.903 24666701.656
+ 19.900 17.000
+ 06 1 1 23 46 30.0000000 0 6G29G 6G10G 2G26G21
+ -12105805.879 6 -9433088.616 5 22013452.167 22013451.645 22013452.063
+ 36.300 32.700
+ -17165538.437 7 -13375733.334 6 21542221.371 21542220.130 21542220.560
+ 44.600 39.700
+ -23202073.513 7 -18079521.780 7 20086427.135 20086425.402 20086425.972
+ 45.900 46.600
+ -16183239.987 7 -12610302.044 6 21743879.151 21743875.339 21743878.220
+ 43.800 38.400
+ -7556280.766 5 -5888007.965 4 23044361.659 23044363.328 23044362.184
+ 30.200 27.900
+ -1347582.442 3 -1050062.646 2 24648547.968 24648545.166 24648546.818
+ 18.600 12.600
+ 06 1 1 23 47 0.0000000 0 6G29G 6G10G 2G26G21
+ -12195858.522 6 -9503259.444 5 21996316.748 21996315.325 21996315.779
+ 36.500 33.100
+ -17208386.681 7 -13409121.549 6 21534067.606 21534066.366 21534066.771
+ 44.800 40.100
+ -23185686.145 7 -18066752.397 7 20089545.527 20089543.850 20089544.368
+ 45.900 46.600
+ -16108008.947 7 -12551680.456 6 21758194.535 21758191.185 21758194.107
+ 44.000 37.900
+ -7676605.391 4 -5981767.323 4 23021465.851 23021466.449 23021465.474
+ 29.000 29.200
+ -1442996.310 4 -1124411.027 2 24630391.101 24630388.556 24630390.063
+ 24.200 17.800
+ 06 1 1 23 47 30.0000000 0 6G29G 6G10G 2G26G21
+ -12285548.184 6 -9573147.445 5 21979250.102 21979247.787 21979248.613
+ 36.000 33.200
+ -17250731.659 7 -13442117.618 6 21526009.274 21526008.322 21526008.628
+ 44.400 39.900
+ -23168843.670 7 -18053628.382 7 20092750.580 20092748.846 20092749.351
+ 45.600 46.500
+ -16032500.872 7 -12492842.993 6 21772563.382 21772559.766 21772562.583
+ 43.200 37.700
+ -7796728.274 4 -6075369.496 4 22998607.887 22998607.319 22998607.048
+ 29.500 26.800
+ -1538414.748 4 -1198762.987 3 24612233.278 24612231.424 24612232.397
+ 24.900 19.900
+ 06 1 1 23 48 0.0000000 0 6G29G 6G10G 2G26G21
+ -12374872.001 6 -9642750.373 5 21962251.661 21962250.015 21962250.473
+ 36.200 34.000
+ -17292571.658 7 -13474720.196 6 21518047.504 21518046.416 21518046.741
+ 44.600 39.800
+ -23151547.387 7 -18040150.753 7 20096041.726 20096040.201 20096040.600
+ 45.700 46.500
+ -15956716.619 7 -12433790.335 6 21786984.553 21786981.276 21786983.975
+ 43.500 37.900
+ -7916646.030 5 -6168811.806 4 22975787.447 22975787.426 22975786.825
+ 30.400 25.600
+ -1633837.007 4 -1273117.891 3 24594075.255 24594073.288 24594074.265
+ 25.900 18.600
+ 06 1 1 23 48 30.0000000 0 6G29G 6G10G 2G26G21
+ -12463827.329 5 -9712066.164 5 21945323.359 21945322.397 21945322.656
+ 35.700 33.600
+ -17333905.256 7 -13506928.180 6 21510181.902 21510180.860 21510181.190
+ 44.700 39.800
+ -23133798.740 7 -18026320.633 7 20099419.229 20099417.674 20099418.043
+ 45.600 46.500
+ -15880656.901 7 -12374523.034 6 21801458.553 21801455.039 21801457.805
+ 43.600 38.200
+ -8036355.319 5 -6262091.690 4 22953007.217 22953007.576 22953007.183
+ 30.800 27.100
+ -1729262.495 3 -1347475.343 3 24575916.397 24575913.918 24575915.079
+ 23.800 20.500
+ 06 1 1 23 49 0.0000000 0 6G29G 6G10G 2G26G21
+ -12552411.521 6 -9781092.745 5 21928465.795 21928465.157 21928465.671
+ 37.000 33.600
+ -17374730.614 7 -13538740.129 6 21502413.119 21502412.143 21502412.431
+ 44.800 40.100
+ -23115598.870 7 -18012138.909 7 20102882.573 20102881.019 20102881.362
+ 45.600 46.600
+ -15804322.289 7 -12315041.522 6 21815984.345 21815980.995 21815983.544
+ 42.900 38.100
+ -8155852.745 5 -6355206.512 4 22930267.652 22930267.971 22930267.554
+ 31.100 27.900
+ -1824689.642 3 -1421834.074 3 24557756.416 24557755.096 24557755.491
+ 23.000 18.600
+ 06 1 1 23 49 30.0000000 0 6G29G 6G10G 2G26G21
+ -12640621.754 6 -9849827.959 5 21911680.780 21911679.392 21911679.889
+ 36.800 33.400
+ -17415046.301 7 -13570154.936 6 21494741.489 21494740.264 21494740.719
+ 44.800 40.200
+ -23096948.722 7 -17997606.324 7 20106431.591 20106430.018 20106430.370
+ 45.400 46.400
+ -15727713.853 7 -12255346.647 6 21830562.423 21830558.994 21830561.677
+ 42.900 37.300
+ -8275134.968 5 -6448153.619 4 22907569.480 22907569.188 22907568.987
+ 32.000 28.400
+ -1920118.252 4 -1496193.940 2 24539596.647 24539595.070 24539595.959
+ 25.900 17.000
+ 06 1 1 23 50 0.0000000 0 6G29G 6G10G 2G26G21
+ -12728455.214 6 -9918269.576 5 21894967.001 21894965.240 21894965.787
+ 36.800 33.800
+ -17454850.471 7 -13601171.155 6 21487166.803 21487165.823 21487166.025
+ 44.600 40.200
+ -23077850.092 7 -17982724.266 7 20110065.960 20110064.423 20110064.762
+ 45.700 46.600
+ -15650832.105 7 -12195438.809 6 21845192.725 21845189.000 21845191.929
+ 43.200 37.200
+ -8394198.606 5 -6540930.401 4 22884912.334 22884912.269 22884911.679
+ 31.100 27.900
+ -2015547.351 4 -1570554.217 2 24521437.881 24521435.871 24521436.804
+ 24.900 13.900
+ 06 1 1 23 50 30.0000000 0 6G29G 6G10G 2G26G21
+ -12815909.406 6 -9986415.668 5 21878324.902 21878323.185 21878323.805
+ 37.200 33.800
+ -17494141.841 7 -13631787.788 6 21479689.997 21479688.809 21479689.223
+ 44.800 40.000
+ -23058304.265 7 -17967493.748 7 20113785.270 20113783.856 20113784.125
+ 45.700 46.500
+ -15573677.871 7 -12135318.638 6 21859874.592 21859871.084 21859874.000
+ 43.300 37.200
+ -8513040.313 5 -6633534.248 4 22862296.253 22862297.340 22862296.472
+ 30.600 28.100
+ -2110976.264 4 -1644914.320 2 24503277.817 24503275.333 24503276.974
+ 24.900 16.100
+ 06 1 1 23 51 0.0000000 0 6G29G 6G10G 2G26G21
+ -12902981.581 6 -10054264.075 5 21861754.492 21861754.085 21861754.145
+ 36.800 34.500
+ -17532918.753 7 -13662003.553 6 21472311.059 21472309.751 21472310.359
+ 45.000 40.000
+ -23038312.525 7 -17951915.758 7 20117589.588 20117588.064 20117588.464
+ 45.700 46.500
+ -15496252.165 7 -12074986.920 6 21874608.634 21874604.828 21874607.683
+ 43.400 37.700
+ -8631656.652 5 -6725962.481 4 22839723.792 22839725.254 22839724.495
+ 31.000 29.000
+ -2206404.061 4 -1719273.589 2 24485118.747 24485115.908 24485117.712
+ 27.600 17.000
+ 06 1 1 23 51 30.0000000 0 6G29G 6G10G 2G26G21
+ -12989669.073 6 -10121812.716 5 21845258.609 21845257.594 21845258.198
+ 37.300 33.800
+ -17571179.547 7 -13691817.141 6 21465030.116 21465029.056 21465029.371
+ 44.600 40.200
+ -23017876.266 7 -17935991.393 7 20121478.546 20121477.004 20121477.352
+ 45.600 46.400
+ -15418555.662 7 -12014444.199 6 21889393.387 21889389.942 21889392.816
+ 43.400 37.200
+ -8750044.346 5 -6818212.548 5 22817196.163 22817197.079 22817196.201
+ 32.000 30.100
+ -2301829.621 4 -1793631.115 2 24466960.104 24466957.726 24466959.004
+ 25.900 16.100
+ 06 1 1 23 52 0.0000000 0 6G29G 6G10G 2G26G21
+ -13075969.254 6 -10189059.579 5 21828836.221 21828835.319 21828835.591
+ 36.700 33.900
+ -17608922.884 7 -13721227.520 6 21457847.694 21457846.714 21457846.928
+ 44.600 40.200
+ -22996996.911 7 -17919721.761 7 20125451.637 20125450.177 20125450.495
+ 45.600 46.300
+ -15340589.213 7 -11953691.120 6 21904230.334 21904226.215 21904229.472
+ 43.200 36.800
+ -8868199.834 5 -6910281.670 4 22794712.874 22794712.327 22794711.983
+ 32.000 29.700
+ -2397252.671 4 -1867986.630 2 24448801.241 24448799.292 24448800.046
+ 27.100 17.800
+ 06 1 1 23 52 30.0000000 0 6G29G 6G10G 2G26G21
+ -13161879.533 6 -10256002.614 5 21812488.385 21812487.160 21812487.487
+ 36.900 34.400
+ -17646147.239 7 -13750233.499 6 21450764.323 21450763.085 21450763.555
+ 45.000 40.300
+ -22975675.846 7 -17903107.938 7 20129508.784 20129507.391 20129507.695
+ 45.700 46.300
+ -15262353.529 7 -11892728.257 6 21919117.498 21919114.059 21919116.902
+ 42.600 37.000
+ -8986119.948 5 -7002167.389 4 22772273.922 22772272.490 22772272.795
+ 31.800 29.000
+ -2492671.874 4 -1942339.216 2 24430642.700 24430641.320 24430641.700
+ 25.300 16.100
+ 06 1 1 23 53 0.0000000 0 6G29G 6G10G 2G26G21
+ -13247397.202 6 -10322639.715 5 21796214.516 21796213.633 21796213.897
+ 36.700 34.400
+ -17682850.867 7 -13778833.720 6 21443779.936 21443778.723 21443779.149
+ 44.900 40.400
+ -22953914.305 7 -17886150.890 7 20133650.072 20133648.478 20133648.932
+ 45.800 46.200
+ -15183849.263 7 -11831556.110 6 21934056.570 21934053.092 21934055.775
+ 42.200 37.300
+ -9103801.156 5 -7093866.941 4 22749879.363 22749878.793 22749878.396
+ 31.500 29.500
+ -2588086.500 4 -2016688.206 3 24412486.188 24412484.818 24412485.090
+ 24.900 19.900
+ 06 1 1 23 53 30.0000000 0 6G29G 6G10G 2G26G21
+ -13332519.458 6 -10388968.702 5 21780016.724 21780015.268 21780015.929
+ 37.700 34.600
+ -17719032.575 7 -13807027.247 6 21436894.530 21436893.647 21436893.820
+ 44.900 40.500
+ -22931713.782 7 -17868851.774 7 20137874.731 20137873.137 20137873.586
+ 45.900 46.300
+ -15105077.267 7 -11770175.352 6 21949046.673 21949042.808 21949045.842
+ 42.500 36.700
+ -9221240.276 5 -7185377.831 4 22727530.491 22727530.842 22727530.124
+ 31.000 29.500
+ -2683495.671 4 -2091032.921 3 24394330.855 24394329.359 24394329.753
+ 25.900 22.100
+ 06 1 1 23 54 0.0000000 0 6G29G 6G10G 2G26G21
+ -13417243.979 6 -10454987.778 5 21763894.512 21763892.686 21763893.538
+ 38.300 34.600
+ -17754690.686 7 -13834812.777 6 21430109.055 21430107.976 21430108.360
+ 45.000 40.300
+ -22909075.710 7 -17851211.714 7 20142182.698 20142181.118 20142181.476
+ 45.900 46.400
+ -15026038.523 7 -11708586.727 6 21964086.989 21964083.347 21964086.357
+ 42.600 36.700
+ -9338433.796 5 -7276697.374 4 22705229.089 22705229.487 22705229.162
+ 32.100 28.600
+ -2778898.551 4 -2165372.744 3 24376176.003 24376174.490 24376174.984
+ 24.900 23.400
+ 06 1 1 23 54 30.0000000 0 6G29G 6G10G 2G26G21
+ -13501567.820 6 -10520694.640 5 21747848.284 21747846.384 21747847.138
+ 37.700 34.900
+ -17789824.098 7 -13862189.450 6 21423423.424 21423422.265 21423422.700
+ 44.900 40.300
+ -22886001.248 7 -17833231.607 7 20146573.434 20146572.053 20146572.299
+ 45.600 46.300
+ -14946733.714 7 -11646790.790 6 21979178.537 21979174.664 21979177.625
+ 42.300 36.600
+ -9455378.289 5 -7367822.878 4 22682975.450 22682975.238 22682975.445
+ 32.700 29.200
+ -2874294.341 4 -2239707.042 3 24358023.298 24358021.536 24358022.252
+ 24.600 23.000
+ 06 1 1 23 55 0.0000000 0 6G29G 6G10G 2G26G21
+ -13585488.896 6 -10586087.648 5 21731877.505 21731876.750 21731877.252
+ 38.500 35.100
+ -17824431.127 7 -13889155.959 6 21416838.092 21416836.698 21416837.288
+ 44.800 40.200
+ -22862491.855 7 -17814912.595 7 20151047.080 20151045.617 20151045.981
+ 45.800 46.100
+ -14867163.845 7 -11584788.302 6 21994319.684 21994316.057 21994319.151
+ 42.300 36.200
+ -9572070.583 5 -7458751.860 4 22660769.984 22660769.646 22660769.457
+ 32.400 29.700
+ -2969681.993 4 -2314035.014 3 24339870.238 24339869.285 24339869.311
+ 24.900 21.600
+ 06 1 1 23 55 30.0000000 0 6G29G 6G10G 2G26G21
+ -13669004.078 6 -10651164.372 5 21715984.935 21715984.416 21715984.638
+ 37.800 35.400
+ -17858510.287 7 -13915711.144 6 21410352.912 21410351.709 21410352.166
+ 44.800 40.300
+ -22838548.973 7 -17796255.798 7 20155603.342 20155601.715 20155602.164
+ 45.700 46.100
+ -14787329.447 6 -11522579.694 6 22009511.861 22009508.316 22009510.978
+ 41.900 36.300
+ -9688507.060 5 -7549481.507 5 22638613.716 22638612.789 22638612.719
+ 32.700 30.800
+ -3065061.072 3 -2388356.299 3 24321720.805 24321719.159 24321719.264
+ 23.400 21.600
+ 06 1 1 23 56 0.0000000 0 6G29G 6G10G 2G26G21
+ -13752111.060 6 -10715923.027 5 21700171.284 21700169.388 21700170.324
+ 38.600 34.600
+ -17892060.232 7 -13941853.947 6 21403968.578 21403967.466 21403967.846
+ 44.700 40.500
+ -22814174.026 7 -17777262.328 7 20160241.719 20160240.132 20160240.554
+ 45.800 46.200
+ -14707231.497 6 -11460165.717 6 22024753.774 22024750.448 22024753.155
+ 41.500 36.400
+ -9804684.448 5 -7640009.285 5 22616505.988 22616504.936 22616504.921
+ 33.600 30.800
+ -3160430.026 4 -2462669.711 3 24303571.878 24303571.402 24303571.236
+ 25.600 22.600
+ 06 1 1 23 56 30.0000000 0 6G29G 6G10G 2G26G21
+ -13834807.279 6 -10780361.609 5 21684433.836 21684432.982 21684433.293
+ 37.600 35.100
+ -17925079.580 7 -13967583.302 6 21397685.047 21397684.162 21397684.375
+ 44.800 40.700
+ -22789368.218 7 -17757933.121 7 20164961.992 20164960.590 20164960.869
+ 45.700 46.300
+ -14626871.011 6 -11397547.173 6 22040046.131 22040042.500 22040045.380
+ 41.700 36.200
+ -9920599.504 5 -7730332.642 4 22594448.289 22594446.710 22594446.931
+ 32.000 29.700
+ -3255788.210 4 -2536974.725 2 24285426.988 24285424.874 24285425.913
+ 28.100 17.000
+ 06 1 1 23 57 0.0000000 0 6G29G 6G10G 2G26G21
+ -13917090.172 6 -10844478.099 5 21668775.977 21668775.083 21668775.597
+ 38.900 35.800
+ -17957567.136 7 -13992898.271 6 21391502.880 21391501.786 21391502.067
+ 44.700 40.600
+ -22764133.226 7 -17738269.487 7 20169763.928 20169762.653 20169762.830
+ 45.600 46.200
+ -14546248.639 6 -11334724.554 6 22055387.955 22055384.447 22055387.292
+ 41.900 36.500
+ -10036248.697 5 -7820448.818 4 22572440.647 22572439.105 22572439.428
+ 33.200 29.700
+ -3351134.659 4 -2611270.602 3 24267283.578 24267280.880 24267282.413
+ 27.900 18.600
+ 06 1 1 23 57 30.0000000 0 6G29G 6G10G 2G26G21
+ -13998957.125 6 -10908270.499 6 21653198.037 21653196.273 21653196.955
+ 38.600 36.100
+ -17989521.453 7 -14017797.731 6 21385422.474 21385421.172 21385421.611
+ 44.900 40.700
+ -22738470.627 7 -17718272.650 7 20174647.380 20174646.101 20174646.250
+ 45.500 46.400
+ -14465365.091 6 -11271698.429 6 22070779.620 22070776.099 22070778.887
+ 41.600 36.600
+ -10151628.650 5 -7910355.209 4 22550482.655 22550483.045 22550482.855
+ 33.100 28.800
+ -3446468.473 4 -2685556.645 2 24249141.931 24249139.415 24249140.820
+ 27.900 17.000
+ 06 1 1 23 58 0.0000000 0 6G29G 6G10G 2G26G21
+ -14080405.701 6 -10971736.880 5 21637698.273 21637696.838 21637697.638
+ 39.000 35.400
+ -18020941.187 7 -14042280.632 6 21379443.377 21379442.286 21379442.661
+ 45.000 40.900
+ -22712381.866 7 -17697943.738 7 20179611.995 20179610.645 20179610.799
+ 45.600 46.200
+ -14384221.093 6 -11208469.351 6 22086220.792 22086217.383 22086220.103
+ 41.900 36.600
+ -10266736.042 5 -8000049.216 5 22528577.964 22528578.749 22528578.561
+ 33.000 30.200
+ -3541788.633 4 -2759832.075 2 24231002.699 24231000.542 24231001.683
+ 28.100 12.600
+ 06 1 1 23 58 30.0000000 0 6G29G 6G10G 2G26G21
+ -14161433.494 6 -11034875.388 5 21622279.307 21622277.784 21622278.579
+ 38.900 35.600
+ -18051824.939 7 -14066345.885 6 21373566.577 21373565.120 21373565.777
+ 45.400 40.700
+ -22685868.306 7 -17677283.816 7 20184657.322 20184656.074 20184656.175
+ 45.400 46.300
+ -14302817.661 6 -11145038.123 6 22101711.623 22101707.997 22101710.876
+ 41.300 36.500
+ -10381567.363 5 -8089528.098 5 22506726.258 22506726.813 22506727.006
+ 34.700 30.200
+ -3637094.382 4 -2834096.261 3 24212866.173 24212864.069 24212865.324
+ 29.000 19.300
+ 06 1 1 23 59 0.0000000 0 6G29G 6G10G 2G26G21
+ -14242037.787 6 -11097683.882 5 21606941.132 21606939.342 21606940.033
+ 38.600 35.600
+ -18082171.775 7 -14089992.763 6 21367791.719 21367790.275 21367790.946
+ 45.200 40.600
+ -22658931.308 7 -17656293.941 7 20189783.323 20189781.998 20189782.143
+ 45.500 46.400
+ -14221155.594 6 -11081405.364 6 22117250.975 22117247.776 22117250.483
+ 41.200 36.300
+ -10496119.469 5 -8178789.422 5 22484928.237 22484928.439 22484928.351
+ 34.100 31.100
+ -3732384.859 4 -2908348.537 3 24194733.771 24194731.185 24194732.553
+ 27.600 20.500
+ 06 1 1 23 59 30.0000000 0 6G29G 6G10G 2G26G21
+ -14322216.254 6 -11160160.578 6 21591683.602 21591681.817 21591682.714
+ 39.300 36.200
+ -18111980.063 7 -14113219.992 6 21362119.211 21362117.958 21362118.400
+ 45.000 40.500
+ -22631572.233 7 -17634975.178 7 20194989.510 20194988.202 20194988.288
+ 45.500 46.300
+ -14139235.912 6 -11017571.849 5 22132840.320 22132836.505 22132839.324
+ 41.200 35.800
+ -10610388.857 5 -8267830.427 5 22463183.615 22463183.830 22463183.427
+ 33.800 31.100
+ -3827658.738 4 -2982587.884 3 24176603.793 24176601.609 24176602.844
+ 27.900 23.400
diff --git a/ref/usersguide/arl2800thin.06o b/ref/usersguide/arl2800thin.06o
new file mode 100644
index 0000000..cb287fd
--- /dev/null
+++ b/ref/usersguide/arl2800thin.06o
@@ -0,0 +1,24356 @@
+ 2.10 Observation G (GPS) RINEX VERSION / TYPE
+teqc 2005Sep1 01/04/2007 15:37:37 PGM / RUN BY / DATE
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+-Unknown- GEOD. SURVEY, NATURAL RESOURCES CANADA OBSERVER / AGENCY
+1103 AOA BENCHMARK ACT 3.3.32.2N REC # / TYPE / VERS
+386 AOAD/M_T NONE ANT # / TYPE
+ 918129.4000 -4346071.2000 4561977.8000 APPROX POSITION XYZ
+ 0.1000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 7 L1 L2 C1 P2 P1 S1 S2 # / TYPES OF OBSERV
+ 60.000 INTERVAL
+ 2006 1 1 0 0 0.0000000 GPS TIME OF FIRST OBS
+40104M002 MARKER NUMBER
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+L1 PHASE CENTRE .110m ABOVE ARP COMMENT
+L2 PHASE CENTRE .128m ABOVE ARP COMMENT
+where ARP is the Antenna Reference Point for HI measurement COMMENT
+P1 = P1 TurboRogue; = Y1 Benchmark COMMENT
+L1 = L1(CA) COMMENT
+P2 = P2 TurboRogue; = Y2 Benchmark COMMENT
+L2 = L2(P2) TurboRogue; = L2(Y2) Benchmark COMMENT
+SNR is mapped to RINEX snr flag value [0-9] COMMENT
+L1 & L2: min(max(int(snr_dBHz/6), 0), 9) COMMENT
+ END OF HEADER
+ 06 1 1 0 0 0.0000000 0 6G02G06G10G21G26G29
+ -14648524.249 6 -11414415.680 6 22020494.612 22020490.815 22020493.909
+ 41.600 36.200
+ -17872031.175 7 -13926243.585 6 21407579.072 21407577.646 21407578.248
+ 44.900 40.500
+ -22878236.630 7 -17827175.316 7 20160590.275 20160588.580 20160589.169
+ 45.900 46.400
+ -3121997.571 4 -2432722.223 3 24304026.964 24304026.203 24304026.414
+ 24.900 21.100
+ -9857646.978 5 -7681275.854 4 22621054.862 22621052.894 22621053.626
+ 33.900 29.900
+ -13756450.979 6 -10719302.137 5 21703413.911 21703411.878 21703413.070
+ 38.500 34.700
+ 06 1 1 0 1 0.0000000 0 6G02G06G10G21G26G29
+ -14487690.455 6 -11289090.664 6 22051100.591 22051096.520 22051099.690
+ 41.900 36.400
+ -17937852.343 7 -13977532.775 6 21395053.499 21395052.183 21395052.696
+ 45.000 40.600
+ -22828113.228 7 -17788118.102 7 20170128.185 20170126.808 20170127.158
+ 45.900 46.500
+ -3312682.806 4 -2581307.978 2 24267742.385 24267739.532 24267741.217
+ 27.900 17.800
+ -10089330.554 5 -7861808.397 4 22576966.333 22576964.550 22576965.249
+ 33.500 29.500
+ -13921563.744 6 -10847961.367 5 21671993.345 21671992.162 21671992.929
+ 38.400 35.900
+ 06 1 1 0 2 0.0000000 0 6G02G06G10G21G26G29
+ -14325811.437 7 -11162951.188 6 22081904.931 22081901.099 22081904.126
+ 42.000 36.500
+ -18001542.057 7 -14027161.091 6 21382933.828 21382932.544 21382933.136
+ 45.400 40.700
+ -22776278.674 7 -17747727.538 7 20179992.203 20179990.658 20179991.010
+ 45.800 46.700
+ -3503317.657 4 -2729854.513 1 24231465.427 24231462.564 24231464.222
+ 29.000 11.000
+ -10319940.375 5 -8041504.293 5 22533080.420 22533080.939 22533081.257
+ 33.000 30.100
+ -14085014.784 6 -10975325.775 5 21640890.024 21640888.245 21640889.395
+ 39.000 35.700
+ 06 1 1 0 3 0.0000000 0 6G02G06G10G21G26G29
+ -14162893.750 6 -11036002.366 6 22112907.275 22112903.440 22112906.538
+ 41.300 36.300
+ -18063089.661 7 -14075120.231 6 21371222.031 21371220.176 21371221.182
+ 45.600 40.600
+ -22722744.282 7 -17706012.416 7 20190179.489 20190177.964 20190178.274
+ 45.600 46.600
+ -3693894.344 4 -2878355.737 3 24195199.879 24195197.148 24195198.673
+ 28.100 20.500
+ -10549449.179 5 -8220342.242 5 22489407.194 22489406.581 22489407.287
+ 34.700 30.100
+ -14246784.009 6 -11101379.661 6 21610106.730 21610104.615 21610105.657
+ 38.700 36.000
+ 06 1 1 0 4 0.0000000 0 6G02G06G10G21G26G29
+ -13998943.688 6 -10908249.076 6 22144106.163 22144102.028 22144105.040
+ 41.000 36.200
+ -18122485.107 7 -14121402.369 6 21359918.909 21359917.643 21359918.158
+ 45.000 40.700
+ -22667522.363 7 -17662982.344 7 20200687.813 20200686.182 20200686.579
+ 45.800 46.400
+ -3884405.907 4 -3026806.166 3 24158945.784 24158943.881 24158945.014
+ 25.900 22.100
+ -10777830.086 5 -8398301.290 5 22445948.184 22445947.306 22445947.673
+ 33.100 30.800
+ -14406851.377 6 -11226107.420 6 21579646.658 21579644.690 21579645.963
+ 39.600 36.200
+ 06 1 1 0 5 0.0000000 0 6G02G06G10G21G26G29
+ -13833968.453 6 -10779696.963 5 22175499.872 22175495.713 22175498.859
+ 41.100 35.700
+ -18179718.049 7 -14165999.432 6 21349028.099 21349026.635 21349027.274
+ 45.200 40.800
+ -22610624.413 7 -17618646.272 7 20211515.197 20211513.477 20211513.989
+ 46.200 46.300
+ -4074844.120 4 -3175199.412 3 24122707.312 24122704.496 24122706.274
+ 26.800 23.800
+ -11005056.127 5 -8575360.476 5 22402708.550 22402707.313 22402708.109
+ 34.000 30.400
+ -14565196.917 6 -11349493.499 6 21549514.023 21549512.627 21549513.556
+ 39.800 36.800
+ 06 1 1 0 6 0.0000000 0 6G02G06G10G21G26G29
+ -13667974.578 6 -10650351.106 5 22207086.798 22207083.401 22207086.418
+ 40.600 35.500
+ -18234779.196 7 -14208904.191 6 21338550.154 21338548.471 21338549.404
+ 45.300 40.300
+ -22552062.566 7 -17573013.652 7 20222659.185 20222657.520 20222658.038
+ 46.400 46.300
+ -4265201.330 4 -3323529.597 3 24086482.604 24086480.014 24086481.495
+ 27.100 20.500
+ -11231100.202 5 -8751498.623 5 22359694.811 22359692.590 22359693.603
+ 34.700 30.400
+ -14721801.455 6 -11471522.935 6 21519713.965 21519711.724 21519712.858
+ 39.700 36.600
+ 06 1 1 0 7 0.0000000 0 6G02G06G10G21G26G29
+ -13500969.102 6 -10520217.004 5 22238866.931 22238863.277 22238866.594
+ 40.900 34.700
+ -18287659.003 7 -14250109.207 6 21328487.580 21328485.941 21328486.807
+ 44.800 40.500
+ -22491848.145 7 -17526093.316 7 20234117.516 20234115.878 20234116.347
+ 46.000 46.100
+ -4455469.845 4 -3471790.685 3 24050276.803 24050273.765 24050275.460
+ 29.900 19.300
+ -11455935.589 5 -8926694.942 5 22316909.654 22316907.896 22316908.727
+ 35.500 31.300
+ -14876645.551 6 -11592180.618 6 21490247.804 21490245.729 21490246.853
+ 40.200 36.600
+ 06 1 1 0 8 0.0000000 0 6G02G06G10G21G26G29
+ -13332959.140 6 -10389300.166 5 22270838.705 22270834.648 22270837.920
+ 40.400 35.100
+ -18338348.274 7 -14289607.311 6 21318841.450 21318840.041 21318840.703
+ 44.800 40.700
+ -22429993.981 7 -17477895.253 7 20245887.956 20245886.332 20245886.845
+ 46.300 46.300
+ -4645641.226 4 -3619976.119 2 24014088.325 24014084.760 24014087.027
+ 29.200 17.800
+ -11679535.267 5 -9100928.375 5 22274360.163 22274357.932 22274358.866
+ 35.100 31.100
+ -15029709.952 6 -11711451.516 6 21461119.881 21461118.470 21461119.382
+ 40.000 37.100
+ 06 1 1 0 9 0.0000000 0 6G02G06G10G21G26G29
+ -13163951.518 6 -10257605.921 5 22302999.987 22302995.754 22302999.030
+ 40.000 34.400
+ -18386838.249 7 -14327391.691 6 21309613.893 21309612.730 21309613.210
+ 44.600 40.700
+ -22366511.968 7 -17428428.749 7 20257968.272 20257966.504 20257967.033
+ 46.200 46.100
+ -4835707.734 4 -3768079.795 3 23977918.833 23977916.423 23977917.812
+ 27.100 19.300
+ -11901872.605 5 -9274178.139 5 22232051.153 22232048.495 22232049.654
+ 34.900 32.400
+ -15180975.637 6 -11829320.835 6 21432334.615 21432333.465 21432334.488
+ 40.800 36.900
+ 06 1 1 0 10 0.0000000 0 7G02G06G10G21G26G27G29
+ -12993953.562 6 -10125140.006 5 22335349.660 22335345.135 22335348.658
+ 40.000 34.300
+ -18433120.634 7 -14363455.868 6 21300806.975 21300805.416 21300806.136
+ 44.800 40.700
+ -22301414.147 7 -17377703.172 7 20270356.053 20270354.310 20270354.796
+ 46.300 46.000
+ -5025660.721 4 -3916095.003 3 23941772.318 23941769.191 23941771.240
+ 28.600 22.100
+ -12122920.444 6 -9446423.126 5 22189986.655 22189984.242 22189985.599
+ 36.700 31.300
+ -35506.228 4 -27666.263 2 25211142.694 25211140.611 25211141.880
+ 25.900 17.800
+ -15330424.291 6 -11945774.292 6 21403896.288 21403894.359 21403895.534
+ 40.700 37.200
+ 06 1 1 0 11 0.0000000 0 7G02G06G10G21G26G27G29
+ -12822972.089 6 -9991907.715 5 22367885.292 22367882.031 22367885.074
+ 39.400 34.500
+ -18477186.935 7 -14397793.235 6 21292421.266 21292419.826 21292420.429
+ 44.500 40.900
+ -22234712.380 7 -17325727.758 7 20283049.000 20283047.206 20283047.800
+ 46.600 45.900
+ -5215491.988 4 -4064015.380 3 23905648.370 23905645.503 23905647.104
+ 28.800 22.100
+ -12342652.376 5 -9617642.711 5 22148172.922 22148170.780 22148171.807
+ 35.900 32.100
+ -74886.450 3 -58352.118 3 25203648.827 25203647.291 25203648.090
+ 23.400 18.600
+ -15478037.202 6 -12060797.292 6 21375806.323 21375804.325 21375805.687
+ 40.800 37.200
+ 06 1 1 0 12 0.0000000 0 7G02G06G10G21G26G27G29
+ -12651014.668 6 -9857914.959 5 22400608.368 22400604.818 22400607.540
+ 39.200 34.900
+ -18519029.491 7 -14430397.802 6 21284458.827 21284457.412 21284458.137
+ 44.900 40.700
+ -22166419.731 7 -17272512.700 7 20296044.500 20296042.794 20296043.363
+ 46.900 45.700
+ -5405192.987 4 -4211834.230 4 23869549.369 23869547.383 23869548.269
+ 29.500 25.300
+ -12561041.796 6 -9787816.205 5 22106614.534 22106612.621 22106613.512
+ 36.300 32.700
+ -112555.597 3 -87704.694 2 25196480.813 25196478.761 25196479.676
+ 23.000 17.800
+ -15623796.082 6 -12174375.588 6 21348068.927 21348067.544 21348068.332
+ 40.800 38.000
+ 06 1 1 0 13 0.0000000 0 7G02G06G10G21G26G27G29
+ -12478088.200 6 -9723167.094 5 22433515.580 22433511.345 22433514.499
+ 38.900 34.400
+ -18558640.837 7 -14461263.766 6 21276921.041 21276919.766 21276920.371
+ 45.100 41.000
+ -22096548.646 7 -17218067.692 7 20309340.587 20309338.816 20309339.408
+ 46.900 45.700
+ -5594755.055 4 -4359544.835 3 23833476.892 23833474.489 23833475.756
+ 29.500 21.600
+ -12778061.606 6 -9956922.485 5 22065316.159 22065314.960 22065315.719
+ 37.100 32.400
+ -148505.285 3 -115717.414 3 25189639.722 25189638.276 25189638.562
+ 23.800 19.300
+ -15767683.014 6 -12286495.238 6 21320688.693 21320686.481 21320687.840
+ 41.200 37.700
+ 06 1 1 0 14 0.0000000 0 7G02G06G10G21G26G27G29
+ -12304199.680 6 -9587669.578 5 22466604.788 22466601.485 22466604.322
+ 39.200 34.500
+ -18596013.891 7 -14490385.617 6 21269809.566 21269807.709 21269808.796
+ 45.200 41.000
+ -22025111.545 7 -17162402.402 7 20322934.587 20322932.773 20322933.387
+ 46.600 45.500
+ -5784169.191 5 -4507140.197 3 23797433.125 23797429.968 23797432.138
+ 30.800 22.600
+ -12993685.448 6 -10124940.971 5 22024283.650 22024282.962 22024283.879
+ 37.500 33.000
+ -182726.467 4 -142383.268 2 25183127.541 25183125.542 25183127.040
+ 25.300 13.900
+ -15909680.445 6 -12397142.547 6 21293667.113 21293665.306 21293666.427
+ 41.300 38.100
+ 06 1 1 0 15 0.0000000 0 7G02G06G10G21G26G27G29
+ -12129357.014 6 -9451428.565 5 22499876.332 22499872.723 22499875.749
+ 38.600 33.800
+ -18631141.433 7 -14517757.712 6 21263124.572 21263123.296 21263123.838
+ 44.800 41.000
+ -21952120.912 7 -17105526.568 7 20336824.252 20336822.428 20336823.049
+ 46.800 45.400
+ -5973427.070 5 -4654613.795 3 23761418.080 23761415.578 23761417.038
+ 31.300 23.000
+ -13207887.031 6 -10291851.239 5 21983523.252 21983521.837 21983522.850
+ 38.400 33.500
+ -215210.984 3 -167695.836 2 25176945.438 25176944.206 25176945.257
+ 23.400 17.800
+ -16049770.970 6 -12506303.964 6 21267008.866 21267006.888 21267008.086
+ 41.300 37.800
+ 06 1 1 0 16 0.0000000 0 7G02G06G10G21G26G27G29
+ -11953567.462 6 -9314449.711 5 22533328.294 22533324.394 22533327.412
+ 37.800 33.900
+ -18664016.918 7 -14543374.956 6 21256868.671 21256867.080 21256867.865
+ 44.900 40.800
+ -21877589.321 7 -17047449.988 7 20351006.961 20351005.387 20351005.806
+ 46.900 45.400
+ -6162519.511 5 -4801958.475 3 23725435.318 23725431.588 23725434.171
+ 31.300 23.000
+ -13420639.879 6 -10457632.615 5 21943038.164 21943036.349 21943037.208
+ 37.700 34.300
+ -245950.196 3 -191648.483 2 25171095.601 25171094.871 25171095.147
+ 22.100 16.100
+ -16187937.098 6 -12613965.825 6 21240716.228 21240714.716 21240715.949
+ 41.700 37.900
+ 06 1 1 0 17 0.0000000 0 7G02G06G10G21G26G27G29
+ -11776838.183 6 -9176738.610 5 22566958.483 22566954.755 22566957.893
+ 37.900 33.100
+ -18694634.794 7 -14567233.020 6 21251042.211 21251040.867 21251041.419
+ 44.800 41.000
+ -21801529.517 7 -16988182.590 7 20365480.795 20365479.021 20365479.627
+ 47.000 45.400
+ -6351437.412 4 -4949167.144 3 23689485.477 23689482.163 23689484.083
+ 28.800 22.600
+ -13631917.576 6 -10622264.527 5 21902833.418 21902831.290 21902832.450
+ 38.100 33.800
+ -274936.146 4 -214234.854 2 25165580.495 25165578.561 25165579.879
+ 24.600 17.000
+ -16324161.827 6 -12720114.924 6 21214793.588 21214791.875 21214793.130
+ 41.600 38.000
+ 06 1 1 0 18 0.0000000 0 7G02G06G10G21G26G27G29
+ -11599177.402 6 -9038301.698 5 22600766.764 22600762.638 22600765.767
+ 37.200 33.000
+ -18722988.443 7 -14589326.760 6 21245647.056 21245645.396 21245646.302
+ 45.100 41.300
+ -21723954.472 7 -16927734.491 7 20380242.748 20380241.004 20380241.538
+ 46.900 45.200
+ -6540171.420 5 -5096232.532 3 23653570.565 23653566.879 23653569.307
+ 31.800 21.100
+ -13841693.740 6 -10785726.440 5 21862913.419 21862912.169 21862913.075
+ 38.500 34.400
+ -302160.502 3 -235448.680 2 25160399.360 25160398.116 25160399.025
+ 23.800 17.000
+ -16458428.749 7 -12824738.451 6 21189243.693 21189241.926 21189243.148
+ 42.100 38.600
+ 06 1 1 0 19 0.0000000 0 7G02G06G10G21G26G27G29
+ -11420592.177 6 -8899144.395 5 22634749.634 22634745.921 22634749.210
+ 37.000 31.800
+ -18749072.509 7 -14609651.997 6 21240683.184 21240681.593 21240682.386
+ 44.900 41.000
+ -21644876.370 7 -16866115.176 7 20395290.985 20395289.098 20395289.742
+ 47.000 45.000
+ -6728712.521 5 -5243147.634 3 23617692.034 23617688.843 23617690.919
+ 31.600 23.000
+ -14049942.621 6 -10947998.214 5 21823284.445 21823283.674 21823284.558
+ 38.600 34.700
+ -327615.514 4 -255283.757 2 25155556.116 25155554.099 25155555.449
+ 26.500 17.800
+ -16590721.367 7 -12927823.569 6 21164069.461 21164067.286 21164068.685
+ 42.300 38.600
+ 06 1 1 0 20 0.0000000 0 7G02G06G10G21G26G27G29
+ -11241089.909 6 -8759272.530 5 22668908.224 22668904.553 22668907.523
+ 36.500 33.000
+ -18772882.364 7 -14628205.121 6 21236152.391 21236150.796 21236151.579
+ 44.600 41.100
+ -21564308.288 7 -16803334.845 7 20410622.519 20410620.709 20410621.346
+ 47.200 45.000
+ -6917050.391 5 -5389904.349 4 23581851.517 23581849.493 23581850.901
+ 31.500 25.900
+ -14256637.946 6 -11109059.485 5 21783953.088 21783950.911 21783951.893
+ 38.600 34.800
+ -351294.512 4 -273734.915 2 25151050.134 25151048.161 25151049.288
+ 25.300 17.000
+ -16721023.528 7 -13029357.684 6 21139273.688 21139271.677 21139272.805
+ 42.000 38.900
+ 06 1 1 0 21 0.0000000 0 7G02G06G10G21G26G27G29
+ -11060678.936 6 -8618692.593 5 22703239.003 22703235.611 22703238.413
+ 36.500 33.200
+ -18794412.833 7 -14644982.094 6 21232054.956 21232053.751 21232054.220
+ 44.500 41.100
+ -21482263.109 7 -16739403.534 7 20426235.174 20426233.331 20426233.950
+ 47.100 44.900
+ -7105176.078 5 -5536495.714 4 23546052.934 23546050.552 23546051.859
+ 33.100 27.400
+ -14461753.816 6 -11268889.992 5 21744919.786 21744918.507 21744919.390
+ 39.300 34.600
+ -373190.745 4 -290796.886 3 25146883.497 25146881.820 25146882.681
+ 25.300 19.300
+ -16849319.368 7 -13129328.423 6 21114859.508 21114857.702 21114858.936
+ 42.600 39.100
+ 06 1 1 0 22 0.0000000 0 7G02G06G10G21G26G27G29
+ -10879366.860 6 -8477410.496 5 22737742.516 22737738.234 22737741.381
+ 36.500 32.800
+ -18813659.339 7 -14659979.356 6 21228392.642 21228391.246 21228391.880
+ 44.600 41.100
+ -21398753.535 7 -16674331.136 7 20442126.326 20442124.710 20442125.174
+ 47.000 44.700
+ -7293079.949 5 -5682914.270 4 23510295.722 23510293.381 23510294.660
+ 31.300 26.200
+ -14665264.525 6 -11427469.706 5 21706192.846 21706191.484 21706192.414
+ 39.200 34.600
+ -393297.033 4 -306464.131 2 25143057.457 25143054.738 25143056.751
+ 24.600 12.600
+ -16975593.303 7 -13227723.659 6 21090830.381 21090828.285 21090829.774
+ 42.700 38.800
+ 06 1 1 0 23 0.0000000 0 7G02G06G10G21G26G27G29
+ -10697161.184 6 -8335432.065 5 22772414.575 22772410.411 22772413.883
+ 36.500 31.000
+ -18830617.645 7 -14673193.614 6 21225165.521 21225164.092 21225164.777
+ 44.800 41.100
+ -21313792.810 7 -16608127.977 7 20458293.853 20458292.172 20458292.685
+ 47.000 44.600
+ -7480752.094 5 -5829152.227 4 23474582.812 23474580.449 23474581.883
+ 32.100 26.200
+ -14867144.009 6 -11584778.340 5 21667776.800 21667775.205 21667776.160
+ 39.600 35.500
+ -411607.074 4 -320731.700 2 25139573.034 25139571.020 25139572.200
+ 24.200 17.000
+ -17099830.175 7 -13324531.563 6 21067189.129 21067186.969 21067188.218
+ 42.500 39.300
+ 06 1 1 0 24 0.0000000 0 7G02G06G10G21G26G27G29
+ -10514070.106 5 -8192763.729 5 22807255.414 22807252.003 22807254.682
+ 35.300 31.500
+ -18845284.462 7 -14684622.294 6 21222374.520 21222373.003 21222373.841
+ 44.700 40.900
+ -21227393.410 7 -16540803.765 7 20474735.230 20474733.412 20474734.041
+ 47.000 44.400
+ -7668182.308 5 -5975201.685 4 23438916.523 23438913.456 23438915.515
+ 33.200 24.900
+ -15067367.082 6 -11740796.259 5 21629675.018 21629673.891 21629674.775
+ 39.500 35.500
+ -428115.077 3 -333595.088 3 25136431.147 25136429.988 25136430.615
+ 23.000 18.600
+ -17222014.816 7 -13419740.334 6 21043938.034 21043936.089 21043937.254
+ 43.000 39.800
+ 06 1 1 0 25 0.0000000 0 7G02G06G10G21G26G27G29
+ -10330101.132 5 -8049411.323 5 22842263.644 22842260.181 22842263.203
+ 35.900 31.800
+ -18857655.929 7 -14694262.387 6 21220020.402 21220018.893 21220019.601
+ 44.500 41.000
+ -21139568.322 7 -16472368.631 7 20491447.821 20491445.926 20491446.622
+ 47.000 44.400
+ -7855360.296 5 -6121054.618 4 23403298.126 23403294.828 23403296.927
+ 33.500 25.300
+ -15265908.232 6 -11895503.601 6 21591894.621 21591892.915 21591893.858
+ 40.200 36.200
+ -442814.934 3 -345049.513 3 25133634.019 25133632.713 25133633.365
+ 23.800 19.300
+ -17342132.800 7 -13513338.729 6 21021080.087 21021078.323 21021079.477
+ 42.900 40.000
+ 06 1 1 0 26 0.0000000 0 7G02G06G10G21G26G27G29
+ -10145262.499 5 -7905381.237 5 22877438.410 22877433.708 22877437.151
+ 35.300 31.100
+ -18867729.482 7 -14702111.896 6 21218103.319 21218101.854 21218102.637
+ 44.600 40.900
+ -21050330.846 7 -16402832.934 7 20508429.126 20508427.329 20508427.964
+ 47.100 44.400
+ -8042276.395 5 -6266703.453 4 23367728.574 23367725.617 23367727.566
+ 33.900 25.900
+ -15462742.130 6 -12048880.608 5 21554438.105 21554436.397 21554437.586
+ 40.400 35.600
+ -455701.003 4 -355090.585 2 25131182.629 25131180.354 25131181.922
+ 26.200 17.000
+ -17460169.583 7 -13605315.403 6 20998618.858 20998616.650 20998617.957
+ 43.000 40.000
+ 06 1 1 0 27 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9959562.222 5 -7760679.757 5 22912774.925 22912771.315 22912774.403
+ 34.300 31.100
+ -18875501.945 7 -14708168.352 6 21216624.356 21216622.694 21216623.610
+ 44.400 40.700
+ -196059.505 4 -152773.453 2 24814686.762 24814685.302 24814685.957
+ 26.200 16.100
+ -20959693.712 7 -16332206.590 7 20525676.808 20525674.900 20525675.660
+ 47.300 44.200
+ -8228919.939 5 -6412139.922 4 23332211.617 23332208.471 23332210.534
+ 32.700 27.400
+ -15657843.800 6 -12200907.855 6 21517311.187 21517310.101 21517310.964
+ 41.000 36.400
+ -466767.883 3 -363714.125 2 25129076.459 25129074.445 25129075.472
+ 23.400 17.800
+ -17576111.032 7 -13695659.360 6 20976555.318 20976553.615 20976554.762
+ 43.000 40.100
+ 06 1 1 0 28 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9773008.359 5 -7615313.141 5 22948275.489 22948271.312 22948274.587
+ 34.400 30.400
+ -18880971.100 7 -14712430.016 6 21215583.659 21215582.100 21215582.841
+ 44.100 41.000
+ -319388.452 3 -248873.818 2 24791217.721 24791216.551 24791216.321
+ 22.600 15.100
+ -20867669.796 7 -16260499.643 7 20543188.502 20543186.493 20543187.273
+ 47.100 44.100
+ -8415280.357 5 -6557355.743 4 23296748.084 23296745.400 23296747.007
+ 34.100 27.400
+ -15851187.910 6 -12351565.554 6 21480519.799 21480517.804 21480518.900
+ 40.800 37.000
+ -476011.082 4 -370916.653 2 25127317.969 25127314.911 25127316.965
+ 24.600 16.100
+ -17689943.518 7 -13784359.955 6 20954894.062 20954891.823 20954893.193
+ 42.800 39.900
+ 06 1 1 0 29 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9585609.062 5 -7469287.754 5 22983936.188 22983932.553 22983935.416
+ 34.000 31.100
+ -18884135.142 7 -14714895.484 6 21214981.549 21214979.781 21214980.738
+ 44.300 40.600
+ -441277.243 3 -343852.011 2 24768022.633 24768021.683 24768021.364
+ 19.300 17.800
+ -20774272.216 7 -16187722.307 7 20560961.332 20560959.579 20560960.103
+ 47.000 44.100
+ -8601347.543 5 -6702343.077 4 23261341.159 23261337.650 23261339.853
+ 33.800 26.800
+ -16042750.096 6 -12500834.761 6 21444065.900 21444064.727 21444065.584
+ 41.200 36.500
+ -483425.958 3 -376694.486 2 25125906.363 25125903.994 25125905.251
+ 22.100 17.000
+ -17801653.509 7 -13871406.669 6 20933636.137 20933634.180 20933635.451
+ 43.100 40.300
+ 06 1 1 0 30 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9397372.710 5 -7322610.123 4 23019755.209 23019752.275 23019755.355
+ 34.700 28.800
+ -18884992.149 7 -14715563.270 6 21214818.525 21214816.747 21214817.795
+ 44.500 40.600
+ -561703.907 4 -437690.847 2 24745106.462 24745105.026 24745105.474
+ 24.200 17.800
+ -20679514.177 7 -16113884.869 7 20578992.852 20578991.507 20578991.777
+ 46.700 44.300
+ -8787110.383 5 -6847093.286 4 23225991.326 23225988.427 23225990.245
+ 34.500 27.600
+ -16232505.303 6 -12648695.921 6 21407956.556 21407955.464 21407956.361
+ 41.500 37.200
+ -489007.516 3 -381043.759 2 25124844.658 25124842.208 25124843.626
+ 23.800 17.800
+ -17911227.947 7 -13956789.302 6 20912785.115 20912782.830 20912784.216
+ 43.300 40.400
+ 06 1 1 0 31 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9208307.516 5 -7175286.620 4 23055734.409 23055730.476 23055733.820
+ 34.700 29.500
+ -18883541.097 7 -14714432.569 6 21215094.484 21215093.002 21215093.729
+ 44.200 40.900
+ -680646.581 4 -530373.402 3 24722472.453 24722470.842 24722471.404
+ 24.600 18.600
+ -20583407.971 7 -16038996.913 7 20597281.528 20597279.871 20597280.298
+ 46.700 44.000
+ -8972558.183 5 -6991597.982 4 23190701.807 23190698.827 23190700.492
+ 33.900 27.900
+ -16420429.179 6 -12795130.075 6 21372196.543 21372194.679 21372195.649
+ 41.400 37.600
+ -492752.236 3 -383961.706 2 25124131.281 25124129.600 25124130.422
+ 22.100 17.800
+ -18018654.061 7 -14040497.921 6 20892342.542 20892340.297 20892341.812
+ 43.600 40.600
+ 06 1 1 0 32 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -9018421.531 5 -7027323.548 4 23091868.768 23091864.437 23091867.684
+ 34.300 29.200
+ -18879781.456 7 -14711502.966 6 21215809.660 21215808.446 21215808.873
+ 43.700 40.900
+ -798084.315 3 -621883.240 3 24700124.377 24700123.476 24700123.320
+ 23.400 22.100
+ -20485967.202 7 -15963069.038 7 20615823.786 20615822.170 20615822.630
+ 46.900 43.600
+ -9157679.868 5 -7135848.600 4 23155474.556 23155470.538 23155473.215
+ 34.100 26.800
+ -16606497.382 6 -12940118.250 6 21336788.549 21336787.056 21336788.049
+ 41.900 37.600
+ -494656.277 3 -385445.383 2 25123769.619 25123766.829 25123768.759
+ 23.400 16.100
+ -18123919.260 7 -14122522.722 6 20872311.184 20872309.018 20872310.377
+ 43.400 40.800
+ 06 1 1 0 33 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8827722.903 5 -6878727.195 4 23128156.250 23128152.953 23128156.253
+ 33.200 28.800
+ -18873712.593 7 -14706773.977 6 21216964.580 21216963.293 21216963.870
+ 43.800 40.800
+ -913995.467 4 -712203.524 2 24678067.947 24678065.780 24678066.714
+ 26.500 17.800
+ -20387204.513 7 -15886111.097 7 20634617.772 20634616.009 20634616.615
+ 47.000 43.600
+ -9342464.235 5 -7279836.382 4 23120311.385 23120307.750 23120310.115
+ 35.500 28.400
+ -16790685.894 6 -13083641.723 6 21301738.224 21301737.077 21301738.011
+ 41.900 37.700
+ -494715.872 4 -385491.818 3 25123757.910 25123756.268 25123756.742
+ 24.200 19.900
+ -18227011.573 7 -14202854.356 6 20852693.220 20852691.058 20852692.487
+ 43.600 40.700
+ 06 1 1 0 34 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8636220.672 5 -6729504.688 4 23164598.848 23164595.259 23164597.630
+ 32.100 28.800
+ -18865333.880 7 -14700245.104 6 21218559.341 21218557.867 21218558.433
+ 43.800 41.000
+ -1028358.203 4 -801317.318 3 24656304.569 24656303.565 24656303.745
+ 25.300 19.300
+ -20287133.253 7 -15808133.484 7 20653660.848 20653659.028 20653659.666
+ 47.300 43.400
+ -9526900.283 5 -7423552.731 4 23085213.679 23085210.699 23085212.487
+ 35.100 27.900
+ -16972970.659 7 -13225681.744 6 21267050.869 21267049.310 21267050.412
+ 42.400 37.500
+ -492928.131 3 -384098.792 3 25124098.220 25124096.201 25124097.114
+ 22.600 19.300
+ -18327919.169 7 -14281483.620 6 20833490.987 20833488.958 20833490.292
+ 43.400 40.900
+ 06 1 1 0 35 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8443923.238 5 -6579662.560 4 23201192.151 23201187.944 23201190.978
+ 31.600 28.800
+ -18854645.815 7 -14691916.732 6 21220593.021 21220591.548 21220592.217
+ 43.800 40.700
+ -1141152.331 4 -889208.739 2 24634841.320 24634839.067 24634840.187
+ 28.100 16.100
+ -20185765.750 7 -15729145.812 7 20672950.221 20672948.604 20672949.153
+ 47.400 43.100
+ -9710976.688 5 -7566988.833 4 23050184.398 23050181.587 23050183.565
+ 35.400 26.800
+ -17153327.998 7 -13366219.874 6 21232730.096 21232728.338 21232729.363
+ 42.100 37.900
+ -489289.986 3 -381263.907 3 25124790.639 25124788.705 25124789.368
+ 22.100 21.600
+ -18426630.342 7 -14358401.376 6 20814707.030 20814704.967 20814706.261
+ 43.600 41.400
+ 06 1 1 0 36 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8250838.999 5 -6429207.316 4 23237933.959 23237930.709 23237933.615
+ 32.400 28.600
+ -18841649.306 7 -14681789.579 6 21223066.214 21223064.761 21223065.507
+ 44.000 40.700
+ -1252356.540 4 -975861.335 2 24613679.793 24613677.547 24613678.611
+ 26.500 15.100
+ -20083115.454 7 -15649158.564 7 20692484.040 20692482.154 20692482.862
+ 47.000 42.900
+ -9894681.570 6 -7710135.461 4 23015227.345 23015223.758 23015226.306
+ 36.500 27.900
+ -17331734.571 7 -13505237.930 6 21198780.506 21198778.723 21198779.673
+ 42.200 38.400
+ -483798.800 4 -376985.097 3 25125835.259 25125833.770 25125834.384
+ 24.600 21.100
+ -18523134.335 7 -14433599.262 6 20796342.944 20796340.720 20796342.202
+ 43.700 41.200
+ 06 1 1 0 37 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -8056976.258 5 -6278145.445 4 23274825.165 23274821.478 23274824.338
+ 32.100 27.400
+ -18826344.985 7 -14669864.128 6 21225978.675 21225977.079 21225977.884
+ 44.200 40.700
+ -1361950.420 4 -1061259.102 2 24592824.627 24592822.751 24592823.670
+ 26.500 17.800
+ -19979195.361 7 -15568181.862 7 20712259.398 20712257.590 20712258.181
+ 47.000 42.800
+ -10078003.374 6 -7852983.577 4 22980342.167 22980339.093 22980341.188
+ 36.700 29.700
+ -17508166.797 7 -13642717.544 6 21165206.305 21165204.498 21165205.714
+ 42.700 37.900
+ -476452.171 4 -371260.453 3 25127233.750 25127231.703 25127232.785
+ 24.900 18.600
+ -18617420.255 7 -14507068.780 6 20778400.336 20778398.751 20778399.809
+ 43.600 41.300
+ 06 1 1 0 38 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7862343.528 5 -6126483.569 4 23311863.136 23311859.022 23311862.279
+ 32.000 28.800
+ -18808734.898 7 -14656141.979 6 21229329.825 21229328.136 21229328.990
+ 44.100 40.900
+ -1469912.591 4 -1145385.402 2 24572279.266 24572278.421 24572278.611
+ 24.200 17.800
+ -19874018.442 7 -15486225.817 7 20732273.863 20732272.074 20732272.646
+ 46.700 42.800
+ -10260930.557 6 -7995524.183 4 22945532.063 22945529.155 22945531.193
+ 36.500 29.500
+ -17682601.790 7 -13778640.870 6 21132012.380 21132010.892 21132011.834
+ 42.700 38.600
+ -467248.450 3 -364088.723 3 25128984.766 25128983.361 25128984.057
+ 23.400 18.600
+ -18709477.413 7 -14578801.603 6 20760882.753 20760880.729 20760882.185
+ 43.900 41.500
+ 06 1 1 0 39 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7666950.362 5 -5974229.209 4 23349045.123 23349041.158 23349044.149
+ 30.200 27.900
+ -18788819.631 7 -14640623.582 6 21233119.459 21233117.971 21233118.669
+ 44.000 40.700
+ -1576223.236 3 -1228224.805 2 24552049.484 24552047.722 24552048.274
+ 23.400 13.900
+ -19767597.143 7 -15403300.132 7 20752524.916 20752523.339 20752523.866
+ 47.000 42.800
+ -10443451.416 6 -8137748.199 4 22910800.080 22910796.528 22910798.677
+ 36.600 29.700
+ -17855016.612 7 -13912990.010 6 21099202.700 21099201.350 21099202.291
+ 43.100 38.900
+ -456185.928 3 -355468.598 2 25131090.371 25131088.058 25131089.295
+ 23.400 15.100
+ -18799295.994 7 -14648790.084 6 20743790.760 20743788.812 20743790.164
+ 44.000 41.600
+ 06 1 1 0 40 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7470804.551 5 -5821388.330 4 23386370.640 23386366.045 23386369.509
+ 30.400 25.900
+ -18766603.064 7 -14623311.971 6 21237347.198 21237345.553 21237346.413
+ 44.000 40.700
+ -1680862.842 4 -1309762.068 2 24532137.638 24532135.248 24532136.820
+ 25.300 16.100
+ -19659944.415 7 -15319414.888 7 20773010.911 20773009.039 20773009.684
+ 47.000 42.700
+ -10625553.531 6 -8279645.903 4 22876147.004 22876143.162 22876145.876
+ 37.100 27.900
+ -18025388.546 7 -14045747.296 6 21066782.042 21066780.553 21066781.466
+ 43.000 39.100
+ -443262.209 3 -345398.203 2 25133548.942 25133546.786 25133548.033
+ 19.900 16.100
+ -18886866.149 7 -14717026.543 6 20727126.874 20727124.767 20727126.149
+ 43.800 41.600
+ 06 1 1 0 41 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7273915.740 5 -5667968.529 4 23423836.425 23423833.488 23423835.778
+ 31.600 28.100
+ -18742086.488 7 -14604208.145 6 21242012.524 21242010.913 21242011.731
+ 43.900 40.400
+ -1783811.298 4 -1389981.587 3 24512546.570 24512545.441 24512545.594
+ 26.800 21.100
+ -19551073.484 7 -15234580.399 7 20793728.293 20793726.416 20793727.097
+ 47.000 42.500
+ -10807225.202 6 -8421208.214 5 22841575.895 22841572.651 22841574.715
+ 36.400 30.800
+ -18193695.565 7 -14176895.568 6 21034754.087 21034752.811 21034753.666
+ 43.100 39.200
+ -428477.033 3 -333877.298 3 25136362.654 25136361.192 25136361.559
+ 19.300 19.300
+ -18972178.593 7 -14783503.746 6 20710892.585 20710890.285 20710891.789
+ 43.900 41.900
+ 06 1 1 0 42 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -7076292.431 5 -5513976.345 4 23461443.729 23461439.492 23461442.604
+ 30.200 27.100
+ -18715272.378 7 -14583314.027 6 21247114.898 21247113.433 21247114.059
+ 43.300 40.400
+ -1885049.265 4 -1468868.249 3 24493281.761 24493280.262 24493280.749
+ 27.400 23.800
+ -19440996.889 7 -15148806.430 7 20814675.300 20814673.337 20814674.027
+ 46.900 42.500
+ -10988454.200 6 -8562425.570 5 22807089.146 22807085.613 22807087.992
+ 37.500 30.200
+ -18359915.370 7 -14306417.450 6 21003123.485 21003122.081 21003123.167
+ 43.900 39.300
+ -411829.469 3 -320905.176 2 25139530.467 25139528.907 25139529.749
+ 21.600 17.000
+ -19055224.429 7 -14848214.758 7 20695089.375 20695087.085 20695088.633
+ 44.000 42.000
+ 06 1 1 0 43 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6877943.196 5 -5359418.559 4 23499188.368 23499184.447 23499187.330
+ 31.500 27.600
+ -18686164.871 7 -14560632.849 6 21252653.803 21252652.409 21252652.996
+ 43.300 40.500
+ -1984556.521 4 -1546406.301 3 24474345.966 24474344.007 24474344.845
+ 24.200 19.300
+ -19329727.559 7 -15062103.056 7 20835848.941 20835847.145 20835847.724
+ 46.600 42.200
+ -11169227.147 6 -8703287.579 5 22772689.003 22772685.712 22772687.880
+ 37.300 30.800
+ -18524025.801 7 -14434295.659 6 20971894.051 20971892.874 20971893.861
+ 43.800 39.300
+ -393319.198 3 -306481.617 3 25143052.824 25143051.383 25143051.997
+ 23.000 21.600
+ -19135994.719 7 -14911152.624 7 20679719.055 20679717.151 20679718.438
+ 44.200 42.200
+ 06 1 1 0 44 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6678877.642 5 -5204302.597 4 23537069.167 23537065.326 23537068.250
+ 30.400 26.800
+ -18654767.347 7 -14536167.244 6 21258628.591 21258626.950 21258627.874
+ 43.600 40.100
+ -2082314.227 4 -1622581.076 2 24455742.713 24455741.028 24455741.731
+ 25.300 15.100
+ -19217277.882 7 -14974479.940 7 20857247.233 20857245.658 20857246.179
+ 46.600 42.000
+ -11349533.230 6 -8843785.786 5 22738377.543 22738374.694 22738376.502
+ 36.700 30.400
+ -18686005.486 7 -14560513.551 6 20941070.862 20941069.116 20941070.188
+ 43.900 39.200
+ -372945.600 3 -290606.121 2 25146930.713 25146927.947 25146929.613
+ 20.500 13.900
+ -19214481.277 7 -14972310.950 7 20664783.755 20664781.563 20664783.073
+ 44.600 42.300
+ 06 1 1 0 45 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6479104.236 4 -5048635.057 4 23575083.985 23575080.947 23575083.488
+ 29.200 25.900
+ -18621083.483 7 -14509920.080 6 21265038.589 21265036.969 21265037.805
+ 43.500 40.000
+ -2178303.158 4 -1697377.597 2 24437477.621 24437475.483 24437475.982
+ 24.600 17.000
+ -19103661.066 7 -14885947.361 6 20878868.001 20878866.137 20878866.736
+ 46.800 41.900
+ -11529358.488 6 -8983909.342 5 22704157.590 22704154.829 22704156.961
+ 38.000 30.200
+ -18845833.182 7 -14685054.564 6 20910656.731 20910654.728 20910656.020
+ 44.000 39.500
+ -350708.954 3 -273278.912 2 25151161.544 25151159.524 25151160.608
+ 19.900 15.100
+ -19290676.500 7 -15031683.830 7 20650284.285 20650281.917 20650283.577
+ 44.300 42.500
+ 06 1 1 0 46 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6278632.105 4 -4892422.989 4 23613232.180 23613229.791 23613232.181
+ 28.400 27.100
+ -18585117.580 7 -14481894.698 6 21271882.738 21271881.008 21271881.954
+ 43.700 39.900
+ -2272505.548 4 -1770782.024 3 24419550.547 24419549.401 24419549.843
+ 25.300 19.900
+ -18988889.388 7 -14796514.882 6 20900708.397 20900706.521 20900707.276
+ 47.000 41.800
+ -11708691.048 6 -9123648.993 4 22670032.114 22670028.867 22670031.191
+ 38.400 29.700
+ -19003487.839 7 -14807902.310 6 20880655.924 20880654.098 20880655.405
+ 44.400 39.900
+ -326609.266 3 -254499.989 2 25155748.294 25155745.516 25155747.398
+ 23.400 17.000
+ -19364572.495 7 -15089265.097 7 20636222.320 20636220.146 20636221.594
+ 44.200 42.700
+ 06 1 1 0 47 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -6077470.466 4 -4735673.721 4 23651511.329 23651509.179 23651512.023
+ 29.000 24.900
+ -18546874.480 7 -14452094.881 6 21279159.836 21279158.627 21279159.140
+ 43.300 40.300
+ -2364902.081 4 -1842779.287 2 24401968.364 24401966.104 24401967.552
+ 26.500 15.100
+ -18872975.608 7 -14706192.462 6 20922766.271 20922764.130 20922765.046
+ 46.800 41.500
+ -11887517.483 6 -9262994.232 5 22636003.152 22635999.650 22636001.901
+ 38.400 31.600
+ -19158948.707 7 -14929040.615 6 20851072.613 20851070.792 20851071.960
+ 44.000 39.800
+ -300647.844 3 -234270.289 2 25160688.197 25160685.797 25160687.350
+ 21.600 13.900
+ -19436162.283 7 -15145049.323 7 20622598.992 20622597.027 20622598.433
+ 44.300 42.700
+ 06 1 1 0 48 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5875628.969 4 -4578394.666 4 23689921.001 23689918.803 23689920.939
+ 28.600 26.200
+ -18506359.872 7 -14420525.052 6 21286869.587 21286868.164 21286868.841
+ 43.200 40.200
+ -2455473.085 4 -1913354.034 3 24384733.098 24384731.844 24384732.268
+ 26.500 19.900
+ -18755932.540 7 -14614990.069 6 20945038.691 20945036.726 20945037.483
+ 46.600 41.300
+ -12065824.674 6 -9401934.883 5 22602072.237 22602068.819 22602071.028
+ 38.900 32.100
+ -19312195.196 7 -15048453.419 6 20821910.845 20821908.903 20821910.304
+ 44.700 40.200
+ -272825.015 3 -212590.183 2 25165982.713 25165981.135 25165981.611
+ 22.600 16.100
+ -19505438.868 7 -15199031.053 7 20609416.181 20609414.090 20609415.560
+ 44.300 42.800
+ 06 1 1 0 49 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5673116.116 4 -4420592.464 3 23728458.977 23728455.376 23728458.540
+ 28.600 22.600
+ -18463578.807 7 -14387189.162 6 21295010.822 21295009.168 21295010.000
+ 43.400 39.900
+ -2544203.709 4 -1982494.749 3 24367848.500 24367847.341 24367847.535
+ 27.100 20.500
+ -18637772.616 7 -14522917.401 6 20967523.867 20967521.853 20967522.685
+ 46.600 41.200
+ -12243600.191 6 -9540461.239 5 22568242.393 22568239.163 22568241.502
+ 38.800 31.100
+ -19463207.188 7 -15166125.061 6 20793174.050 20793172.332 20793173.514
+ 44.800 40.800
+ -243141.995 4 -189460.551 2 25171631.543 25171629.224 25171630.564
+ 26.200 16.100
+ -19572396.180 7 -15251205.559 7 20596674.674 20596672.475 20596673.964
+ 44.300 42.800
+ 06 1 1 0 50 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5469941.465 4 -4262274.615 4 23767123.138 23767118.282 23767121.819
+ 27.400 25.600
+ -18418536.852 7 -14352091.533 6 21303581.976 21303580.090 21303581.153
+ 43.100 39.600
+ -2631075.208 3 -2050186.744 2 24351317.051 24351315.566 24351316.059
+ 23.800 17.800
+ -18518508.383 7 -14429984.237 6 20990218.794 20990216.972 20990217.675
+ 46.100 40.900
+ -12420830.068 6 -9678562.434 5 22534517.167 22534513.596 22534515.933
+ 39.300 32.000
+ -19611964.793 7 -15282040.042 6 20764866.721 20764864.731 20764866.038
+ 44.700 40.900
+ -211601.003 3 -164883.201 2 25177633.001 25177631.311 25177631.882
+ 22.600 16.100
+ -19637027.987 7 -15301567.989 7 20584375.749 20584373.447 20584374.958
+ 44.400 43.200
+ 06 1 1 0 51 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5266114.161 4 -4103448.194 4 23805909.776 23805906.143 23805908.594
+ 28.400 27.100
+ -18371240.912 7 -14315237.561 6 21312581.847 21312580.472 21312581.126
+ 43.200 39.700
+ -2716069.526 4 -2116416.073 2 24335143.288 24335140.608 24335142.160
+ 24.900 15.100
+ -18398152.051 7 -14336200.080 6 21013121.873 21013120.129 21013120.697
+ 46.300 40.700
+ -12597501.699 6 -9816228.614 5 22500896.918 22500893.973 22500896.039
+ 39.300 32.300
+ -19758448.379 7 -15396183.069 6 20736991.286 20736989.667 20736990.930
+ 45.200 40.800
+ -178203.032 3 -138858.848 2 25183988.566 25183987.023 25183987.518
+ 21.100 17.800
+ -19699328.520 7 -15350113.838 7 20572520.469 20572518.069 20572519.729
+ 44.600 43.100
+ 06 1 1 0 52 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -5061643.533 4 -3944120.460 4 23844819.656 23844815.209 23844818.102
+ 27.400 25.300
+ -18321697.386 7 -14276632.223 6 21322009.921 21322008.153 21322009.103
+ 43.000 39.300
+ -2799169.495 4 -2181169.229 2 24319330.067 24319327.071 24319329.169
+ 26.200 15.100
+ -18276716.057 7 -14241574.630 6 21036230.489 21036228.624 21036229.308
+ 46.300 40.600
+ -12773600.668 6 -9953448.579 5 22467386.592 22467383.117 22467385.429
+ 39.400 31.500
+ -19902638.589 7 -15508539.048 6 20709552.827 20709551.294 20709552.373
+ 44.900 41.100
+ -142950.861 3 -111389.669 2 25190696.646 25190695.319 25190695.772
+ 22.100 16.100
+ -19759292.477 7 -15396838.982 7 20561109.767 20561107.314 20561108.980
+ 44.400 43.200
+ 06 1 1 0 53 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -4856539.105 4 -3784298.917 3 23883849.780 23883844.748 23883848.336
+ 26.200 22.600
+ -18269912.942 7 -14236280.713 6 21331864.077 21331862.429 21331863.369
+ 42.900 39.200
+ -2880358.313 4 -2244433.225 2 24303880.609 24303878.367 24303879.359
+ 27.400 16.100
+ -18154212.901 7 -14146117.626 6 21059542.037 21059540.284 21059540.888
+ 46.200 41.100
+ -12949114.252 6 -10090212.398 5 22433987.651 22433984.250 22433986.430
+ 39.600 32.800
+ -20044516.671 7 -15619093.375 6 20682554.419 20682552.693 20682554.008
+ 45.200 41.100
+ -105846.753 3 -82477.432 2 25197757.498 25197755.406 25197756.594
+ 23.000 17.000
+ -19816915.113 7 -15441739.722 7 20550144.452 20550142.059 20550143.646
+ 44.400 43.400
+ 06 1 1 0 54 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -4650810.602 4 -3623991.048 3 23922998.622 23922994.198 23922997.179
+ 25.900 23.400
+ -18215894.674 7 -14194188.565 6 21342143.287 21342141.817 21342142.547
+ 42.700 39.400
+ -2959619.098 4 -2306194.826 3 24288797.558 24288796.067 24288796.711
+ 28.400 20.500
+ -18030654.406 7 -14049838.279 6 21083054.618 21083052.599 21083053.381
+ 46.500 40.700
+ -13124028.308 6 -10226509.023 5 22400702.116 22400699.370 22400701.268
+ 40.000 33.200
+ -20184063.821 7 -15727831.389 6 20655999.702 20655997.556 20655999.065
+ 45.400 40.800
+ -66893.736 4 -52124.468 2 25205170.794 25205168.384 25205170.060
+ 25.300 17.800
+ -19872192.197 7 -15484812.755 7 20539625.479 20539623.076 20539624.728
+ 44.200 43.400
+ 06 1 1 0 55 0.0000000 0 8G02G06G08G10G21G26G27G29
+ -4444467.615 4 -3463204.360 3 23962262.571 23962259.493 23962261.973
+ 24.600 19.900
+ -18159650.203 7 -14150361.716 6 21352846.248 21352844.660 21352845.561
+ 42.900 38.700
+ -3036935.910 4 -2366441.656 3 24274084.355 24274082.769 24274083.330
+ 27.400 22.100
+ -17906053.408 7 -13952746.585 6 21106765.248 21106763.449 21106764.067
+ 46.200 40.600
+ -13298329.128 6 -10362327.837 5 22367534.160 22367530.673 22367533.191
+ 41.000 32.600
+ -20321261.982 7 -15834739.021 6 20629891.696 20629889.706 20629891.077
+ 45.200 41.300
+ -26094.393 3 -20332.815 2 25212934.083 25212932.366 25212933.062
+ 20.500 17.800
+ -19925118.932 7 -15526054.353 7 20529553.463 20529551.619 20529552.823
+ 44.100 43.800
+ 06 1 1 0 56 0.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -4237519.187 4 -3301945.933 3 24001645.512 24001640.577 24001644.380
+ 29.700 21.100
+ -18101188.029 7 -14104806.784 6 21363971.280 21363969.814 21363970.488
+ 42.700 39.200
+ -3112292.502 4 -2425161.053 3 24259744.378 24259742.587 24259743.516
+ 26.500 19.300
+ -17780421.690 7 -13854851.742 6 21130672.015 21130670.517 21130670.896
+ 46.000 40.700
+ -222917.379 2 -173701.538 3 24539122.212 24539121.706 24539121.300
+ 17.800 23.000
+ -13472002.347 6 -10497657.612 5 22334485.135 22334481.747 22334484.166
+ 40.500 32.600
+ -20456093.128 7 -15939802.211 6 20604234.188 20604232.014 20604233.507
+ 45.300 41.200
+ 16548.272 3 12895.162 2 25221049.072 25221047.213 25221047.929
+ 23.000 13.900
+ -19975692.024 7 -15565461.943 7 20519929.919 20519927.786 20519929.185
+ 44.100 43.600
+ 06 1 1 0 57 0.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -4029975.276 4 -3140223.425 3 24041139.425 24041135.158 24041138.300
+ 26.500 23.400
+ -18040516.320 7 -14057530.137 6 21375516.875 21375515.301 21375516.098
+ 42.800 39.100
+ -3185672.952 4 -2482340.587 3 24245780.961 24245778.911 24245779.775
+ 25.300 20.500
+ -17653771.416 7 -13756163.213 6 21154772.920 21154771.043 21154771.692
+ 45.700 40.200
+ -431915.321 3 -336556.975 4 24499351.236 24499351.221 24499350.603
+ 23.000 26.500
+ -13645034.700 6 -10632487.991 5 22301558.489 22301554.841 22301557.295
+ 40.800 33.400
+ -20588539.715 7 -16043007.307 6 20579030.184 20579028.331 20579029.786
+ 45.800 41.300
+ 61030.160 3 47556.342 2 25229513.996 25229511.753 25229512.649
+ 21.600 12.600
+ -20023907.976 7 -15603032.808 7 20510754.638 20510752.573 20510753.922
+ 44.200 43.700
+ 06 1 1 0 58 0.0000000 0 9G02G06G08G10G15G21G26G27G29
+ -3821845.162 4 -2978044.163 3 24080743.857 24080740.946 24080743.357
+ 25.300 19.300
+ -17977643.457 7 -14008538.307 6 21387481.095 21387479.654 21387480.315
+ 42.500 38.900
+ -3257061.810 3 -2537968.237 2 24232194.880 24232193.576 24232194.103
+ 23.400 17.800
+ -17526114.566 7 -13656690.346 6 21179065.350 21179063.352 21179064.056
+ 45.600 40.000
+ -640915.655 4 -499414.278 3 24459580.893 24459578.620 24459579.841
+ 24.600 21.100
+ -13817411.353 6 -10766807.442 5 22268756.146 22268752.545 22268755.165
+ 41.400 33.500
+ -20718584.654 7 -16144340.994 6 20554283.360 20554281.729 20554282.834
+ 45.500 41.700
+ 107347.816 4 83647.948 2 25238327.198 25238325.810 25238326.299
+ 24.600 16.100
+ -20069763.782 7 -15638764.592 7 20502028.919 20502026.529 20502028.139
+ 44.600 43.800
+ 06 1 1 0 59 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3613139.206 3 -2815416.159 3 24120458.018 24120456.555 24120458.485
+ 23.800 20.500
+ -17912579.301 7 -13957838.975 6 21399862.409 21399860.795 21399861.639
+ 42.600 38.600
+ -3326443.988 3 -2592032.220 3 24218992.385 24218991.424 24218991.058
+ 23.400 22.100
+ -17397463.257 7 -13556442.567 6 21203546.590 21203544.893 21203545.337
+ 45.600 39.800
+ -849907.761 3 -662265.224 3 24419809.808 24419809.119 24419808.989
+ 23.000 22.100
+ -13989118.122 6 -10900604.889 5 22236081.494 22236077.899 22236080.289
+ 41.500 34.100
+ -20846210.769 7 -16243789.886 6 20529996.996 20529995.129 20529996.460
+ 45.700 41.700
+ -20113257.015 7 -15672655.416 7 20493752.188 20493749.929 20493751.523
+ 44.600 43.700
+ 06 1 1 1 0 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3403866.995 4 -2652346.955 4 24160283.252 24160280.172 24160282.628
+ 27.400 24.900
+ -17845332.544 7 -13905438.910 6 21412658.970 21412657.239 21412658.192
+ 42.200 38.300
+ -3393804.839 4 -2644521.107 3 24206173.650 24206172.442 24206172.774
+ 24.900 21.600
+ -17267828.876 7 -13455428.757 6 21228215.130 21228213.440 21228214.037
+ 45.400 39.700
+ -1058881.584 3 -825101.895 3 24380043.747 24380042.748 24380042.926
+ 23.400 22.100
+ -14160140.275 6 -11033868.895 5 22203536.819 22203533.332 22203535.814
+ 41.800 33.500
+ -20971401.841 7 -16341341.338 7 20506174.028 20506172.017 20506173.437
+ 45.600 42.100
+ -20154385.288 7 -15704703.411 7 20485925.648 20485923.533 20485925.026
+ 44.400 43.800
+ 06 1 1 1 1 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -3194037.553 4 -2488843.585 4 24200213.287 24200209.557 24200212.374
+ 26.800 25.300
+ -17775913.213 7 -13851345.935 6 21425868.994 21425867.759 21425868.244
+ 42.100 38.900
+ -3459129.182 4 -2695423.192 3 24193742.945 24193741.711 24193742.398
+ 26.200 19.900
+ -17137223.619 7 -13353658.423 6 21253068.637 21253066.861 21253067.437
+ 45.400 39.700
+ -1267826.251 3 -987915.891 2 24340282.449 24340280.911 24340281.344
+ 23.400 16.100
+ -14330464.193 6 -11166588.805 5 22171125.208 22171121.880 22171124.190
+ 41.800 34.000
+ -21094141.797 7 -16436982.836 6 20482817.201 20482815.311 20482816.607
+ 45.600 41.900
+ -20193146.620 7 -15734907.034 7 20478549.834 20478547.492 20478549.041
+ 44.700 43.900
+ 06 1 1 1 2 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2983661.547 3 -2324914.257 3 24240247.288 24240242.063 24240245.890
+ 23.000 21.100
+ -17704331.629 7 -13795568.096 6 21439490.907 21439488.839 21439490.041
+ 42.400 38.300
+ -3522403.050 4 -2744727.468 3 24181703.296 24181700.481 24181701.684
+ 26.200 19.300
+ -17005658.802 7 -13251140.381 6 21278104.807 21278102.686 21278103.467
+ 45.200 39.400
+ -1476731.067 3 -1150698.796 3 24300529.197 24300528.266 24300528.089
+ 22.600 23.400
+ -14500074.476 7 -11298752.630 5 22138849.691 22138846.349 22138848.484
+ 42.000 34.700
+ -21214414.786 7 -16530702.015 7 20459929.860 20459928.224 20459929.446
+ 45.800 42.300
+ -20229539.768 7 -15763265.323 7 20471624.394 20471622.050 20471623.595
+ 44.400 43.900
+ 06 1 1 1 3 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2772748.796 3 -2160566.744 3 24280380.649 24280377.851 24280379.901
+ 23.000 22.600
+ -17630597.847 7 -13738113.211 6 21453521.824 21453519.831 21453521.125
+ 42.400 38.000
+ -3583612.777 4 -2792423.319 3 24170054.676 24170052.901 24170053.586
+ 25.900 18.600
+ -16873146.563 7 -13147884.085 6 21303320.888 21303319.165 21303319.647
+ 45.100 39.400
+ -1685585.544 3 -1313442.501 2 24260785.413 24260784.164 24260784.188
+ 22.100 15.100
+ -14668956.371 7 -11430348.894 5 22106712.380 22106709.111 22106711.361
+ 42.600 34.800
+ -21332205.421 7 -16622486.904 7 20437515.081 20437513.195 20437514.543
+ 45.600 42.100
+ -20263563.714 7 -15789777.479 7 20465149.737 20465147.590 20465149.049
+ 44.400 44.100
+ 06 1 1 1 4 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2561308.600 4 -1995808.203 2 24320617.124 24320613.189 24320615.886
+ 26.500 13.900
+ -17554722.369 7 -13678989.468 6 21467960.502 21467958.913 21467959.678
+ 42.400 38.200
+ -3642744.445 4 -2838499.915 3 24158803.140 24158800.200 24158802.077
+ 27.100 19.300
+ -16739698.345 7 -13043898.454 6 21328715.106 21328713.429 21328713.928
+ 44.900 39.300
+ -1894378.178 4 -1476138.096 3 24221053.517 24221052.638 24221052.638
+ 24.600 20.500
+ -14837095.246 7 -11561366.177 5 22074716.364 22074713.395 22074715.452
+ 42.700 35.400
+ -21447498.965 7 -16712326.003 7 20415575.635 20415573.741 20415575.021
+ 45.800 42.400
+ -20295217.731 7 -15814442.944 7 20459126.339 20459123.951 20459125.529
+ 44.600 44.100
+ 06 1 1 1 5 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2349351.696 4 -1830646.991 2 24360952.372 24360947.339 24360951.195
+ 26.500 16.100
+ -17476717.035 6 -13618206.098 6 21482804.249 21482802.493 21482803.398
+ 41.500 37.700
+ -3699784.457 4 -2882946.662 3 24147948.469 24147946.210 24147947.387
+ 27.100 21.100
+ -16605325.915 7 -12939192.654 6 21354285.228 21354283.684 21354284.065
+ 44.600 39.100
+ -2103097.430 4 -1638776.400 4 24181336.723 24181334.777 24181335.757
+ 27.600 25.600
+ -15004476.177 7 -11691792.856 5 22042865.149 22042861.561 22042863.918
+ 42.400 34.900
+ -21560280.769 7 -16800207.903 7 20394113.917 20394112.113 20394113.306
+ 46.000 42.700
+ -20324501.583 7 -15837261.525 7 20453553.655 20453551.417 20453552.965
+ 44.700 44.200
+ 06 1 1 1 6 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -2136888.175 4 -1665091.092 4 24401381.895 24401378.763 24401380.643
+ 24.600 24.900
+ -17396592.947 6 -13555771.762 6 21498051.279 21498049.785 21498050.540
+ 41.900 38.100
+ -3754720.735 4 -2925754.114 3 24137494.049 24137491.548 24137493.230
+ 28.800 18.600
+ -16470040.660 7 -12833775.562 6 21380029.131 21380027.447 21380027.981
+ 44.800 38.600
+ -2311731.985 4 -1801348.793 4 24141633.737 24141632.628 24141632.557
+ 24.200 24.600
+ -15171084.030 7 -11821617.149 5 22011160.501 22011157.163 22011159.472
+ 42.900 35.500
+ -21670536.517 7 -16886121.447 7 20373133.017 20373131.023 20373132.425
+ 46.300 42.700
+ -20351415.421 7 -15858233.344 7 20448432.236 20448429.884 20448431.417
+ 44.500 44.300
+ 06 1 1 1 7 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1923927.347 3 -1499147.644 2 24441907.327 24441902.869 24441906.310
+ 22.100 13.900
+ -17314361.878 6 -13491695.611 6 21513699.685 21513698.009 21513698.918
+ 41.800 37.900
+ -3807540.538 4 -2966912.419 3 24127443.178 24127440.620 24127442.172
+ 26.800 19.300
+ -16333853.472 7 -12727655.658 6 21405945.156 21405942.962 21405943.882
+ 44.700 38.400
+ -2520270.727 3 -1963846.446 4 24101950.341 24101948.940 24101949.234
+ 23.000 24.900
+ -15336903.586 7 -11950827.178 5 21979606.195 21979602.670 21979605.037
+ 43.100 35.500
+ -21778252.466 7 -16970055.926 7 20352635.054 20352633.329 20352634.554
+ 46.000 42.900
+ -20375959.514 7 -15877358.609 7 20443761.405 20443759.208 20443760.606
+ 44.200 44.400
+ 06 1 1 1 8 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1710479.615 3 -1332824.834 3 24482524.173 24482520.973 24482523.387
+ 23.000 19.300
+ -17230036.009 6 -13425987.160 6 21529746.170 21529744.665 21529745.369
+ 41.500 37.800
+ -3858231.011 4 -3006411.472 3 24117796.340 24117795.006 24117795.713
+ 28.800 21.600
+ -16196776.062 7 -12620842.084 6 21432029.518 21432027.987 21432028.375
+ 44.300 38.200
+ -2728702.278 4 -2126260.574 3 24062288.061 24062285.171 24062286.953
+ 24.600 22.600
+ -15501919.727 7 -12079411.181 5 21948204.673 21948201.199 21948203.602
+ 43.400 35.300
+ -21883415.446 7 -17052001.089 7 20332623.105 20332621.456 20332622.633
+ 45.800 43.000
+ -20398135.003 7 -15894638.205 7 20439541.757 20439539.543 20439540.968
+ 44.600 44.600
+ 06 1 1 1 9 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1496555.665 4 -1166130.948 3 24523234.070 24523229.652 24523232.590
+ 27.400 18.600
+ -17143627.933 6 -13358656.193 6 21546188.919 21546187.434 21546188.223
+ 41.200 37.400
+ -3906780.243 4 -3044241.992 3 24108558.668 24108556.610 24108557.562
+ 28.600 19.300
+ -16058819.807 7 -12513343.687 6 21458282.227 21458280.207 21458280.911
+ 44.500 38.500
+ -2937014.056 4 -2288581.401 3 24022647.075 24022645.015 24022645.884
+ 26.200 20.500
+ -15666117.112 7 -12207357.186 6 21916958.630 21916955.624 21916957.518
+ 42.700 36.200
+ -21986012.599 7 -17131946.902 7 20313099.513 20313097.810 20313099.054
+ 45.900 43.100
+ -20417942.843 7 -15910072.884 7 20435772.308 20435770.068 20435771.690
+ 44.800 44.600
+ 06 1 1 1 10 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1282165.272 3 -999073.520 3 24564031.154 24564026.771 24564029.183
+ 18.600 23.000
+ -17055149.861 6 -13289712.265 6 21563025.971 21563024.420 21563025.155
+ 41.700 37.400
+ -3953177.324 4 -3080395.561 3 24099728.983 24099727.168 24099727.924
+ 25.600 20.500
+ -15919995.870 7 -12405169.178 6 21484699.177 21484697.441 21484698.063
+ 44.400 37.900
+ -3145194.852 4 -2450800.167 3 23983031.609 23983029.667 23983030.339
+ 27.400 21.100
+ -15829479.550 7 -12334652.581 6 21885872.054 21885868.579 21885870.939
+ 43.400 36.100
+ -22086031.319 7 -17209883.548 7 20294066.649 20294064.811 20294066.071
+ 46.000 43.200
+ -20435384.800 7 -15923664.015 7 20432453.286 20432450.954 20432452.636
+ 44.900 44.500
+ 06 1 1 1 11 0.0000000 0 8G02G06G08G10G15G21G26G29
+ -1067318.463 3 -831660.596 3 24604914.961 24604910.862 24604913.429
+ 21.100 22.600
+ -16964615.082 6 -13219165.689 6 21580254.041 21580252.236 21580253.306
+ 41.200 36.800
+ -3997410.836 4 -3114863.226 3 24091311.886 24091309.753 24091310.959
+ 27.100 21.100
+ -15780315.278 7 -12296327.140 6 21511279.812 21511277.718 21511278.599
+ 44.000 38.000
+ -3353232.164 4 -2612907.156 3 23943442.125 23943441.591 23943441.414
+ 28.800 22.100
+ -15991992.379 7 -12461285.947 5 21854946.876 21854943.435 21854945.804
+ 43.600 35.900
+ -22183459.460 7 -17285801.563 7 20275526.798 20275524.860 20275526.218
+ 46.100 43.300
+ -20450462.829 7 -15935413.124 7 20429583.895 20429581.801 20429583.362
+ 44.700 44.800
+ 06 1 1 1 12 0.0000000 0 7G06G08G10G15G21G26G29
+ -16872036.891 6 -13147026.850 6 21597871.127 21597869.671 21597870.401
+ 41.200 37.000
+ -4039469.373 4 -3147636.071 3 24083308.921 24083306.524 24083307.654
+ 26.800 23.000
+ -15639788.806 7 -12186825.979 6 21538020.733 21538019.042 21538019.620
+ 43.800 37.700
+ -3561114.216 3 -2774893.121 4 23903884.797 23903883.073 23903883.537
+ 23.000 26.500
+ -16153639.909 7 -12587245.058 6 21824186.111 21824183.035 21824185.363
+ 44.100 36.500
+ -22278285.429 7 -17359691.918 7 20257482.154 20257480.258 20257481.602
+ 46.300 43.800
+ -20463179.220 7 -15945321.996 7 20427164.192 20427161.948 20427163.460
+ 44.600 44.800
+ 06 1 1 1 13 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16777429.144 6 -13073306.542 6 21615874.897 21615872.925 21615874.090
+ 41.800 37.300
+ -4079342.718 4 -3178706.188 3 24075721.704 24075719.081 24075720.204
+ 29.500 22.100
+ -15498427.123 7 -12076674.004 6 21564921.196 21564919.048 21564920.009
+ 44.200 37.200
+ -3768828.706 4 -2936748.496 4 23864357.198 23864356.840 23864355.817
+ 24.900 28.400
+ -164690.873 2 -128330.434 9 23647918.868 23647917.361 23647917.633
+ 13.900 -3.000
+ -16314405.665 7 -12712517.068 6 21793593.576 21793590.219 21793592.574
+ 44.100 36.700
+ -22370497.982 7 -17431545.834 7 20239934.522 20239932.661 20239933.940
+ 46.100 43.800
+ -20473536.964 7 -15953392.961 7 20425193.162 20425190.937 20425192.464
+ 44.400 44.800
+ 06 1 1 1 14 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16680805.610 6 -12998015.498 6 21634261.514 21634260.066 21634260.752
+ 41.200 37.700
+ -4117020.638 4 -3208065.602 3 24068550.674 24068549.041 24068549.640
+ 27.400 21.600
+ -15356241.166 7 -11965879.739 6 21591978.001 21591976.533 21591977.036
+ 43.700 37.600
+ -3976362.803 4 -3098463.323 4 23824865.614 23824864.048 23824864.594
+ 28.100 27.600
+ -334517.237 3 -260662.626 23615602.095 23615600.416 23615601.177
+ 18.600 3.000
+ -16474274.298 7 -12837090.012 6 21763171.719 21763168.213 21763170.806
+ 44.600 36.700
+ -22460086.484 7 -17501355.037 7 20222886.437 20222884.501 20222885.910
+ 46.200 43.800
+ -20481539.068 7 -15959628.367 7 20423670.385 20423668.102 20423669.673
+ 44.500 44.700
+ 06 1 1 1 15 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16582180.409 6 -12921164.708 6 21653028.693 21653027.590 21653027.997
+ 40.400 36.800
+ -4152493.812 4 -3235707.009 3 24061800.600 24061798.530 24061799.270
+ 27.600 21.100
+ -15213241.852 7 -11854451.697 6 21619189.906 21619188.171 21619188.792
+ 43.600 37.200
+ -4183704.074 4 -3260027.904 4 23785409.418 23785408.205 23785408.329
+ 26.500 26.200
+ -503788.334 3 -392562.155 2 23583391.055 23583388.716 23583389.799
+ 20.500 15.100
+ -16633229.400 7 -12960951.124 6 21732923.524 21732920.039 21732922.452
+ 44.500 36.500
+ -22547040.590 7 -17569111.474 7 20206339.515 20206337.626 20206339.055
+ 46.400 43.700
+ -20487188.937 7 -15964030.852 7 20422595.221 20422592.937 20422594.393
+ 44.400 44.800
+ 06 1 1 1 16 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16481568.310 6 -12842765.690 6 21672175.190 21672173.439 21672174.406
+ 40.800 37.100
+ -4185752.404 4 -3261622.762 3 24055471.961 24055469.574 24055470.712
+ 28.400 21.600
+ -15069439.962 7 -11742398.266 6 21646554.533 21646552.743 21646553.473
+ 43.400 36.700
+ -4390839.469 4 -3421432.116 2 23745992.295 23745990.584 23745991.328
+ 28.400 17.000
+ -672499.946 4 -524025.692 3 23551286.294 23551283.415 23551285.250
+ 25.900 19.300
+ -16791255.515 7 -13084088.348 6 21702852.102 21702848.902 21702851.086
+ 44.800 37.500
+ -22631350.598 7 -17634807.569 7 20190295.850 20190293.920 20190295.366
+ 46.400 43.900
+ -20490490.436 7 -15966603.440 7 20421966.886 20421964.817 20421966.154
+ 44.500 44.800
+ 06 1 1 1 17 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16378983.909 6 -12762829.818 6 21691695.840 21691694.420 21691695.145
+ 40.000 36.100
+ -4216787.277 4 -3285805.803 3 24049565.829 24049563.545 24049564.826
+ 28.100 19.900
+ -14924845.761 7 -11629727.456 6 21674070.019 21674068.118 21674068.897
+ 43.200 36.600
+ -4597755.963 4 -3582665.789 3 23706618.417 23706615.705 23706617.656
+ 28.400 20.500
+ -840647.771 4 -655049.939 3 23519288.018 23519286.110 23519287.491
+ 27.600 21.100
+ -16948336.523 7 -13206489.119 6 21672960.338 21672957.214 21672959.454
+ 44.800 37.600
+ -22713006.946 7 -17698435.878 7 20174757.076 20174755.246 20174756.613
+ 46.200 44.000
+ -20491447.602 7 -15967349.280 7 20421784.819 20421782.646 20421784.091
+ 44.700 44.800
+ 06 1 1 1 18 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16274442.489 6 -12681368.991 6 21711589.291 21711588.273 21711588.528
+ 39.600 36.800
+ -4245590.494 4 -3308249.844 3 24044084.413 24044082.102 24044083.422
+ 27.100 20.500
+ -14779469.927 7 -11516447.579 6 21701734.101 21701732.155 21701732.978
+ 43.000 36.400
+ -4804441.133 4 -3743719.180 3 23667285.546 23667285.735 23667284.892
+ 24.600 23.800
+ -1008227.527 5 -785631.514 4 23487399.138 23487396.801 23487398.407
+ 32.300 25.600
+ -17104455.922 7 -13328140.588 6 21643252.268 21643248.584 21643251.150
+ 45.000 37.800
+ -22792000.345 7 -17759989.160 7 20159725.374 20159723.359 20159724.765
+ 46.300 44.200
+ -20490065.460 7 -15966272.278 7 20422047.947 20422045.591 20422047.291
+ 44.900 44.900
+ 06 1 1 1 19 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16167959.287 6 -12598395.086 5 21731852.951 21731851.024 21731852.157
+ 40.200 35.700
+ -4272152.846 4 -3328947.782 3 24039030.315 24039027.886 24039029.159
+ 27.600 21.100
+ -14633322.634 7 -11402566.568 6 21729545.185 21729543.098 21729543.960
+ 42.700 36.300
+ -5010881.240 4 -3904581.617 4 23628002.257 23628001.392 23628001.432
+ 26.800 25.300
+ -1175235.406 5 -915767.495 4 23455618.584 23455615.784 23455617.661
+ 32.300 26.500
+ -17259597.483 7 -13449030.103 6 21613729.595 21613726.165 21613728.609
+ 45.300 37.800
+ -22868322.719 7 -17819461.130 7 20145201.446 20145199.640 20145200.849
+ 46.100 44.300
+ -20486348.454 7 -15963375.904 7 20422755.153 20422752.934 20422754.423
+ 44.700 45.100
+ 06 1 1 1 20 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -16059550.136 6 -12513920.442 6 21752482.488 21752480.946 21752481.683
+ 40.400 36.500
+ -4296466.802 4 -3347893.725 3 24034403.348 24034401.784 24034402.258
+ 25.900 21.100
+ -14486414.174 7 -11288092.437 6 21757500.745 21757498.775 21757499.600
+ 42.700 36.100
+ -5217062.765 4 -4065242.537 5 23588767.752 23588767.069 23588766.574
+ 27.900 31.300
+ -1341666.870 5 -1045454.315 4 23423948.053 23423945.098 23423947.153
+ 32.800 26.500
+ -17413744.387 7 -13569144.572 6 21584396.516 21584393.016 21584395.414
+ 45.400 38.000
+ -22941965.919 7 -17876845.427 7 20131187.605 20131185.952 20131187.063
+ 46.000 44.700
+ -20480302.205 7 -15958664.536 7 20423905.734 20423903.468 20423904.986
+ 44.800 44.800
+ 06 1 1 1 21 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15949231.174 6 -12427957.638 6 21773475.269 21773473.973 21773474.567
+ 39.700 36.000
+ -4318524.864 4 -3365081.814 3 24030205.469 24030204.201 24030204.649
+ 28.100 23.000
+ -14338754.844 7 -11173033.211 5 21785599.528 21785597.310 21785598.325
+ 42.500 35.800
+ -5422972.229 4 -4225691.431 4 23549584.084 23549582.699 23549583.045
+ 28.400 27.900
+ -1507518.096 4 -1174688.978 4 23392387.533 23392384.730 23392386.269
+ 28.600 25.600
+ -17566881.113 7 -13688471.877 6 21555255.458 21555252.222 21555254.472
+ 45.800 38.800
+ -23012922.391 7 -17932136.174 7 20117684.915 20117683.289 20117684.500
+ 46.300 44.600
+ -20471932.364 7 -15952142.579 7 20425498.315 20425496.128 20425497.640
+ 44.900 44.700
+ 06 1 1 1 22 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15837017.931 6 -12340518.778 6 21794828.922 21794827.572 21794828.221
+ 39.700 36.300
+ -4338319.317 4 -3380506.052 3 24026438.963 24026437.050 24026437.932
+ 28.100 19.900
+ -14190354.530 7 -11057396.594 6 21813839.084 21813837.212 21813837.998
+ 42.400 36.000
+ -5628596.411 4 -4385918.077 4 23510455.840 23510454.281 23510454.590
+ 28.800 28.100
+ -1672784.642 5 -1303468.081 3 23360938.182 23360935.006 23360937.163
+ 30.200 21.600
+ -17718990.755 7 -13806998.863 6 21526309.954 21526306.449 21526308.936
+ 45.600 38.500
+ -23081185.000 7 -17985327.802 7 20104695.192 20104693.274 20104694.723
+ 46.400 44.700
+ -20461244.798 7 -15943814.597 7 20427532.204 20427529.910 20427531.529
+ 44.900 44.800
+ 06 1 1 1 23 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15722927.550 6 -12251617.190 5 21816539.819 21816537.946 21816538.905
+ 39.300 35.200
+ -4355844.584 4 -3394162.083 3 24023104.051 24023102.286 24023103.101
+ 27.900 19.300
+ -14041223.414 7 -10941190.517 5 21842217.732 21842215.841 21842216.622
+ 42.200 35.800
+ -5833921.330 4 -4545911.521 4 23471382.981 23471381.763 23471382.137
+ 29.200 26.200
+ -1837462.186 5 -1431788.214 4 23329601.160 23329598.468 23329600.249
+ 33.100 25.300
+ -17870056.902 7 -13924712.737 6 21497563.081 21497559.556 21497562.114
+ 46.000 38.600
+ -23146747.085 7 -18036415.135 7 20092219.302 20092217.241 20092218.705
+ 46.600 44.800
+ -20448245.854 7 -15933685.549 7 20430006.042 20430003.519 20430005.236
+ 45.100 44.800
+ 06 1 1 1 24 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15606976.453 6 -12161265.717 5 21838604.523 21838602.875 21838603.657
+ 39.300 35.900
+ -4371093.202 4 -3406044.113 3 24020202.041 24020200.200 24020201.242
+ 27.600 22.100
+ -13891371.549 6 -10824422.823 5 21870733.827 21870731.146 21870732.636
+ 41.800 34.700
+ -6038932.520 5 -4705660.500 4 23432371.560 23432369.485 23432370.399
+ 30.100 27.100
+ -2001547.113 5 -1559646.605 4 23298376.812 23298373.731 23298375.683
+ 32.800 26.200
+ -18020062.615 7 -14041600.302 6 21469017.927 21469014.563 21469016.930
+ 46.000 38.900
+ -23209602.517 7 -18085393.391 7 20080258.243 20080256.129 20080257.716
+ 46.600 44.700
+ -20432942.277 7 -15921760.676 7 20432918.181 20432915.698 20432917.384
+ 45.200 44.800
+ 06 1 1 1 25 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15489181.568 6 -12069477.523 5 21861019.706 21861018.247 21861018.936
+ 38.700 34.500
+ -4384059.805 4 -3416147.960 3 24017734.846 24017733.191 24017734.033
+ 29.200 21.100
+ -13740808.158 6 -10707100.698 5 21899384.712 21899382.870 21899383.675
+ 41.600 34.900
+ -6243616.307 4 -4865154.328 4 23393421.453 23393419.224 23393420.368
+ 26.500 25.600
+ -2165035.285 5 -1687039.925 4 23267266.359 23267263.631 23267265.380
+ 31.800 29.500
+ -18168991.333 7 -14157648.648 6 21440677.614 21440674.364 21440676.723
+ 46.100 39.100
+ -23269745.464 7 -18132258.016 7 20068813.413 20068811.351 20068812.842
+ 46.800 44.900
+ -20415340.924 7 -15908045.334 7 20436267.462 20436265.149 20436266.733
+ 45.100 45.100
+ 06 1 1 1 26 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15369560.348 6 -11976266.215 6 21883783.185 21883781.909 21883782.484
+ 39.100 36.000
+ -4394737.996 4 -3424468.607 3 24015702.646 24015700.895 24015701.930
+ 27.900 19.300
+ -13589543.686 6 -10589232.261 5 21928169.367 21928167.698 21928168.166
+ 41.500 35.300
+ -6447958.387 4 -5024381.888 4 23354535.438 23354534.320 23354534.268
+ 28.400 25.300
+ -2327922.744 5 -1813965.187 4 23236269.683 23236266.259 23236268.610
+ 32.800 24.600
+ -18316826.792 7 -14272845.109 6 21412545.352 21412542.177 21412544.379
+ 46.200 39.300
+ -23327170.853 7 -18177005.063 7 20057885.662 20057883.722 20057885.166
+ 46.800 44.900
+ -20395449.484 7 -15892545.512 7 20440052.705 20440050.371 20440051.980
+ 45.300 44.900
+ 06 1 1 1 27 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15248129.957 6 -11881645.165 5 21906890.739 21906888.946 21906889.946
+ 38.800 34.400
+ -4403122.782 4 -3431002.232 3 24014107.430 24014105.224 24014106.452
+ 27.400 21.100
+ -13437587.384 6 -10470824.737 5 21957085.774 21957083.955 21957084.544
+ 41.200 35.200
+ -6651944.410 5 -5183332.024 4 23315718.895 23315716.991 23315717.958
+ 30.400 25.300
+ -2490205.100 5 -1940418.985 4 23205388.011 23205385.534 23205387.174
+ 31.600 27.600
+ -18463551.074 7 -14387175.712 6 21384624.862 21384621.537 21384623.926
+ 46.600 39.700
+ -23381873.856 7 -18219630.767 7 20047476.233 20047474.033 20047475.590
+ 46.800 45.000
+ -20373275.513 7 -15875267.089 7 20444272.111 20444269.993 20444271.447
+ 45.000 45.100
+ 06 1 1 1 28 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -15124908.289 6 -11785628.305 5 21930338.907 21930337.352 21930338.033
+ 38.100 34.100
+ -4409210.407 4 -3435745.809 3 24012949.347 24012947.311 24012948.356
+ 28.800 22.600
+ -13284948.629 6 -10351885.437 5 21986131.812 21986129.867 21986130.727
+ 41.200 34.400
+ -6855559.793 5 -5341993.322 4 23276972.507 23276970.773 23276971.285
+ 31.500 29.200
+ -2651878.341 5 -2066398.070 4 23174622.625 23174619.898 23174621.740
+ 33.200 27.900
+ -18609147.476 7 -14500627.448 6 21356918.727 21356915.376 21356917.573
+ 46.100 39.800
+ -23433850.277 7 -18260131.861 7 20037585.104 20037583.227 20037584.553
+ 46.600 44.900
+ -20348826.911 7 -15856216.225 7 20448924.613 20448922.376 20448923.894
+ 45.300 44.900
+ 06 1 1 1 29 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14999913.138 6 -11688229.520 5 21954124.633 21954123.337 21954123.815
+ 38.300 34.800
+ -4412995.782 4 -3438695.479 3 24012228.935 24012227.098 24012227.564
+ 26.200 23.800
+ -13131637.081 6 -10232421.876 5 22015306.039 22015304.212 22015304.956
+ 41.100 34.700
+ -7058789.612 5 -5500354.171 5 23238298.762 23238297.138 23238297.701
+ 30.800 31.600
+ -2812938.707 5 -2191899.673 4 23143973.887 23143971.149 23143972.869
+ 32.800 26.500
+ -18753600.108 7 -14613187.926 6 21329430.324 21329426.929 21329429.259
+ 46.500 40.000
+ -23483096.131 7 -18298505.242 7 20028214.047 20028211.946 20028213.606
+ 46.900 44.800
+ -20322112.117 7 -15835399.497 7 20454008.399 20454006.061 20454007.581
+ 45.200 45.200
+ 06 1 1 1 30 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14873162.507 6 -11589462.822 5 21978244.627 21978243.190 21978243.849
+ 38.200 34.500
+ -4414474.712 4 -3439847.877 3 24011946.841 24011944.825 24011945.499
+ 24.200 19.300
+ -12977662.438 6 -10112441.633 5 22044606.487 22044604.699 22044605.323
+ 40.600 34.500
+ -7261619.302 5 -5658403.230 5 23199702.375 23199700.079 23199700.897
+ 30.600 30.400
+ -2973381.447 5 -2316919.940 4 23113442.551 23113440.000 23113441.499
+ 32.400 28.600
+ -18896891.345 7 -14724843.423 6 21302163.032 21302159.512 21302161.907
+ 46.400 39.800
+ -23529608.517 7 -18334748.647 7 20019362.990 20019361.064 20019362.594
+ 46.900 45.100
+ -20293139.691 7 -15812823.579 7 20459521.703 20459519.254 20459520.878
+ 45.200 45.000
+ 06 1 1 1 31 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14744675.125 6 -11489342.812 5 22002694.822 22002693.373 22002694.090
+ 37.900 33.900
+ -4413643.656 4 -3439200.308 3 24012105.171 24012103.404 24012104.301
+ 26.200 23.400
+ -12823034.223 6 -9991952.100 5 22074031.168 22074029.450 22074030.078
+ 40.500 34.500
+ -7464033.977 4 -5816128.913 4 23161183.555 23161181.379 23161182.120
+ 29.700 27.400
+ -3133203.736 5 -2441456.777 4 23083029.510 23083026.646 23083028.802
+ 33.500 27.600
+ -19039004.294 7 -14835580.770 6 21275119.682 21275116.288 21275118.616
+ 46.700 40.000
+ -23573384.282 7 -18368859.629 7 20011032.618 20011030.813 20011032.247
+ 47.000 45.500
+ -20261918.630 7 -15788495.474 7 20465462.483 20465460.505 20465461.857
+ 45.200 45.100
+ 06 1 1 1 32 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14614469.303 6 -11387883.768 5 22027472.232 22027470.745 22027471.501
+ 37.200 33.400
+ -4410499.379 4 -3436750.261 3 24012703.329 24012701.456 24012702.350
+ 27.100 20.500
+ -12667761.063 6 -9870960.008 5 22103578.856 22103576.683 22103577.759
+ 40.600 34.100
+ -7666018.289 5 -5973519.282 4 23122747.224 23122745.008 23122746.013
+ 33.800 27.400
+ -3292400.808 5 -2565506.415 4 23052734.818 23052732.360 23052734.095
+ 33.900 27.600
+ -19179921.860 7 -14945386.650 6 21248303.608 21248300.483 21248302.692
+ 46.400 40.100
+ -23614421.074 7 -18400836.340 7 20003223.685 20003221.805 20003223.106
+ 46.700 45.600
+ -20228458.266 7 -15762422.458 7 20471830.047 20471827.826 20471829.298
+ 45.300 45.000
+ 06 1 1 1 33 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14482564.034 6 -11285100.468 5 22052572.954 22052571.556 22052572.223
+ 38.300 33.400
+ -4405038.630 4 -3432495.084 3 24013742.017 24013740.437 24013741.191
+ 27.100 19.900
+ -12511851.927 6 -9749472.350 5 22133247.675 22133245.486 22133246.452
+ 40.500 33.900
+ -7867557.225 5 -6130562.592 4 23084395.502 23084393.729 23084394.410
+ 32.300 29.900
+ -3450968.960 5 -2689066.018 4 23022560.555 23022557.531 23022559.659
+ 33.600 26.800
+ -19319626.221 7 -15054247.169 6 21221718.965 21221715.689 21221717.941
+ 46.600 40.700
+ -23652717.123 7 -18430677.410 7 19995936.110 19995934.197 19995935.677
+ 46.900 45.600
+ -20192768.420 7 -15734612.185 7 20478621.405 20478619.357 20478620.636
+ 45.200 44.900
+ 06 1 1 1 34 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14348978.068 6 -11181007.538 5 22077994.118 22077992.363 22077993.238
+ 37.700 33.600
+ -4397259.480 4 -3426433.395 3 24015222.257 24015221.483 24015221.413
+ 26.500 22.100
+ -12355316.483 6 -9627496.662 5 22163034.466 22163033.021 22163033.507
+ 39.900 33.500
+ -8068635.317 5 -6287246.809 4 23046131.239 23046129.500 23046129.986
+ 31.600 29.200
+ -3608903.908 5 -2812132.172 5 22992506.701 22992504.454 22992505.782
+ 34.900 31.000
+ -19458101.693 7 -15162150.116 6 21195368.075 21195364.494 21195366.920
+ 46.800 40.600
+ -23688271.220 7 -18458381.897 7 19989170.246 19989168.479 19989169.852
+ 46.600 45.600
+ -20154858.794 7 -15705072.213 7 20485835.322 20485833.229 20485834.670
+ 45.500 44.800
+ 06 1 1 1 35 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14213730.833 6 -11075620.114 5 22103730.424 22103729.140 22103729.630
+ 37.200 33.900
+ -4387159.966 4 -3418563.656 3 24017145.600 24017142.786 24017144.548
+ 28.600 19.900
+ -12198163.120 6 -9505039.488 5 22192940.201 22192938.397 22192938.963
+ 39.600 33.200
+ -8269237.181 5 -6443559.931 5 23007957.557 23007956.527 23007956.866
+ 32.600 30.600
+ -3766202.448 5 -2934702.443 4 22962573.340 22962570.267 22962572.498
+ 34.100 26.800
+ -19595329.752 7 -15269081.053 6 21169254.598 21169250.907 21169253.471
+ 47.000 40.900
+ -23721082.223 7 -18483948.911 7 19982926.815 19982924.860 19982926.371
+ 47.000 45.900
+ -20114739.504 7 -15673810.421 7 20493469.839 20493467.712 20493469.198
+ 45.600 44.700
+ 06 1 1 1 36 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -14076841.814 6 -10968953.377 5 22129779.437 22129778.224 22129778.719
+ 36.500 33.900
+ -4374738.278 4 -3408884.415 3 24019508.703 24019506.605 24019507.674
+ 28.100 18.600
+ -12040400.583 6 -9382107.625 5 22222961.445 22222959.449 22222960.288
+ 39.500 32.600
+ -8469347.020 5 -6599489.667 5 22969878.557 22969876.732 22969877.413
+ 32.700 30.800
+ -3922859.568 5 -3056772.921 5 22932763.567 22932760.441 22932762.353
+ 34.800 30.100
+ -19731294.244 7 -15375027.391 6 21143381.219 21143377.751 21143380.208
+ 46.900 41.000
+ -23751149.783 7 -18507378.174 7 19977205.221 19977203.176 19977204.684
+ 47.000 46.000
+ -20072421.369 7 -15640835.242 7 20501523.001 20501520.604 20501522.243
+ 45.600 44.800
+ 06 1 1 1 37 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13938330.394 6 -10861022.440 5 22156137.702 22156136.018 22156136.851
+ 37.200 32.800
+ -4359993.524 4 -3397395.006 3 24022314.698 24022312.714 24022313.283
+ 27.100 21.600
+ -11882038.005 6 -9258708.198 5 22253096.773 22253094.992 22253095.617
+ 38.900 33.100
+ -8668948.893 5 -6755023.599 4 22931895.413 22931893.490 22931894.383
+ 32.600 29.700
+ -4078871.933 5 -3178340.956 4 22903074.189 22903071.103 22903073.343
+ 34.300 26.200
+ -19865977.247 7 -15479975.167 6 21117751.852 21117748.380 21117750.760
+ 46.800 41.100
+ -23778473.949 7 -18528669.732 7 19972005.518 19972003.499 19972004.939
+ 46.800 46.100
+ -20027914.960 7 -15606154.918 7 20509992.224 20509989.808 20509991.385
+ 45.400 44.700
+ 06 1 1 1 38 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13798216.918 6 -10751843.131 5 22182800.454 22182798.651 22182799.569
+ 36.700 32.400
+ -4342924.573 4 -3384094.517 3 24025563.150 24025560.189 24025562.093
+ 28.600 19.900
+ -11723083.921 6 -9134847.861 5 22283344.726 22283342.733 22283343.555
+ 38.700 32.000
+ -8868027.069 5 -6910149.438 5 22894011.757 22894010.403 22894010.758
+ 33.500 30.100
+ -4234235.927 5 -3299403.807 5 22873509.688 22873507.517 22873508.807
+ 35.400 30.400
+ -19999361.889 7 -15583911.237 6 21092369.582 21092366.111 21092368.544
+ 47.100 41.400
+ -23803055.488 7 -18547824.167 7 19967327.782 19967325.862 19967327.259
+ 46.900 46.100
+ -19981231.431 7 -15569778.134 7 20518875.625 20518873.304 20518874.927
+ 45.700 44.500
+ 06 1 1 1 39 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13656520.775 6 -10641430.581 5 22209764.706 22209762.531 22209763.826
+ 37.500 32.400
+ -4323531.441 4 -3368982.982 3 24029253.521 24029251.043 24029252.468
+ 28.600 20.500
+ -11563546.752 6 -9010533.165 5 22313703.896 22313701.959 22313702.765
+ 39.100 32.800
+ -9066565.542 5 -7064854.734 5 22856231.448 22856229.601 22856230.423
+ 33.600 30.400
+ -4388946.832 5 -3419957.726 4 22844069.123 22844065.932 22844068.448
+ 35.900 27.100
+ -20131430.568 7 -15686821.878 6 21067237.921 21067234.281 21067236.779
+ 47.100 41.300
+ -23824895.167 7 -18564842.094 7 19963171.699 19963169.831 19963171.243
+ 46.600 46.100
+ -19932381.819 7 -15531713.491 7 20528171.473 20528169.050 20528170.745
+ 45.700 44.500
+ 06 1 1 1 40 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13513262.339 5 -10529800.669 5 22237025.085 22237024.106 22237024.392
+ 35.800 32.800
+ -4301813.584 4 -3352059.957 2 24033386.003 24033383.422 24033385.075
+ 28.400 16.100
+ -11403434.780 6 -8885770.583 5 22344171.844 22344170.071 22344170.901
+ 38.800 32.100
+ -9264547.655 5 -7219126.491 5 22818556.762 22818555.167 22818555.677
+ 34.000 32.000
+ -4543001.293 5 -3540000.131 5 22814753.537 22814751.352 22814752.685
+ 35.400 31.100
+ -20262166.192 7 -15788693.779 6 21042359.427 21042356.060 21042358.464
+ 47.100 41.600
+ -23843994.558 7 -18579724.727 7 19959537.230 19959535.402 19959536.675
+ 46.600 46.100
+ -19881378.320 7 -15491970.502 7 20537877.080 20537874.736 20537876.384
+ 46.100 44.400
+ 06 1 1 1 41 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13368461.928 6 -10416969.211 5 22264579.842 22264578.580 22264579.226
+ 36.700 32.400
+ -4277771.153 4 -3333325.601 3 24037960.804 24037958.385 24037959.761
+ 25.900 18.600
+ -11242756.757 6 -8760566.924 5 22374747.980 22374746.147 22374746.898
+ 38.600 32.600
+ -9461957.103 5 -7372951.997 5 22780990.529 22780989.583 22780989.730
+ 34.300 32.600
+ -4696394.886 6 -3659527.594 4 22785564.080 22785560.812 22785563.167
+ 36.900 29.900
+ -20391551.309 7 -15889513.336 6 21017738.175 21017734.954 21017737.109
+ 46.800 41.800
+ -23860355.601 7 -18592473.589 7 19956424.006 19956421.960 19956423.432
+ 46.800 46.200
+ -19828232.380 7 -15450558.074 7 20547990.399 20547988.083 20547989.745
+ 45.900 44.400
+ 06 1 1 1 42 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13222140.073 5 -10302952.216 5 22292424.097 22292422.667 22292423.388
+ 35.900 31.800
+ -4251405.359 4 -3312780.801 3 24042977.411 24042976.091 24042976.478
+ 24.200 21.600
+ -11081520.858 6 -8634928.532 5 22405430.105 22405428.410 22405428.924
+ 38.000 31.800
+ -9658777.398 5 -7526318.439 5 22743537.118 22743535.616 22743536.131
+ 34.600 31.300
+ -4849123.975 6 -3778537.249 5 22756500.395 22756498.489 22756499.649
+ 36.700 32.700
+ -20519569.131 7 -15989267.467 6 20993377.469 20993373.821 20993376.350
+ 46.800 41.800
+ -23873980.882 7 -18603090.677 7 19953831.018 19953829.094 19953830.558
+ 46.700 46.300
+ -19772956.458 7 -15407485.924 7 20558509.151 20558506.835 20558508.474
+ 46.000 44.500
+ 06 1 1 1 43 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -13074317.296 5 -10187765.664 5 22320553.895 22320552.532 22320553.061
+ 35.600 32.000
+ -4222717.408 4 -3290426.611 3 24048436.928 24048435.343 24048436.195
+ 28.100 23.000
+ -10919735.654 6 -8508862.121 5 22436216.850 22436214.966 22436215.833
+ 38.400 32.000
+ -9854992.562 5 -7679213.357 5 22706198.789 22706197.139 22706197.681
+ 34.400 31.300
+ -5001184.884 5 -3897026.243 4 22727563.909 22727560.843 22727563.057
+ 35.900 29.200
+ -20646202.037 7 -16087942.447 6 20969280.031 20969276.376 20969279.080
+ 47.500 41.900
+ -23884873.229 7 -18611578.214 7 19951758.113 19951756.371 19951757.665
+ 46.500 46.300
+ -19715562.772 7 -15362763.564 7 20569430.805 20569428.479 20569430.020
+ 45.700 44.500
+ 06 1 1 1 44 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12925014.540 5 -10071425.894 5 22348965.198 22348963.763 22348964.442
+ 35.500 31.600
+ -4191708.962 4 -3266264.185 3 24054338.084 24054335.750 24054336.987
+ 26.800 20.500
+ -10757408.750 6 -8382373.609 5 22467106.862 22467104.948 22467105.683
+ 37.800 32.300
+ -10050585.491 5 -7831623.395 5 22668978.177 22668977.101 22668977.319
+ 34.400 32.700
+ -5152573.085 5 -4014991.043 5 22698755.324 22698753.901 22698754.647
+ 35.800 32.100
+ -20771432.289 7 -16185524.454 7 20945449.284 20945445.975 20945448.219
+ 47.100 42.200
+ -23893036.035 7 -18617938.829 7 19950204.865 19950203.054 19950204.437
+ 46.700 46.200
+ -19656064.001 7 -15316400.877 7 20580753.134 20580750.713 20580752.301
+ 45.600 44.500
+ 06 1 1 1 45 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12774252.844 5 -9953949.269 5 22377654.104 22377652.885 22377653.515
+ 35.500 31.500
+ -4158382.252 4 -3240295.326 3 24060680.006 24060677.985 24060679.004
+ 27.600 21.600
+ -10594547.834 6 -8255468.987 5 22498097.646 22498095.940 22498096.652
+ 37.100 31.100
+ -10245539.699 5 -7983535.736 5 22631879.867 22631878.230 22631878.928
+ 35.400 31.800
+ -5303284.791 6 -4132428.709 4 22670077.077 22670073.167 22670076.199
+ 38.100 29.700
+ -20895243.251 7 -16282000.513 7 20921888.897 20921885.522 20921887.925
+ 47.300 42.500
+ -23898473.210 7 -18622175.586 7 19949170.262 19949168.407 19949169.681
+ 46.600 46.400
+ -19594473.412 7 -15268408.207 7 20592473.011 20592471.091 20592472.283
+ 45.400 44.500
+ 06 1 1 1 46 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12622053.483 5 -9835352.398 5 22406616.758 22406615.328 22406616.070
+ 35.100 31.000
+ -4122739.409 4 -3212521.707 3 24067462.719 24067460.125 24067461.342
+ 25.600 19.300
+ -10431161.027 6 -8128154.571 5 22529189.029 22529187.427 22529187.962
+ 37.200 31.000
+ -10439837.970 5 -8134936.957 5 22594906.373 22594904.777 22594905.213
+ 35.300 33.100
+ -5453316.593 6 -4249336.577 5 22641525.880 22641523.938 22641525.003
+ 36.100 31.600
+ -21017617.705 7 -16377357.224 7 20898601.790 20898598.328 20898600.834
+ 47.500 42.400
+ -23901189.016 7 -18624291.795 7 19948653.567 19948651.526 19948652.904
+ 46.800 46.500
+ -19530803.791 7 -15218795.514 7 20604589.137 20604586.943 20604588.372
+ 45.500 44.200
+ 06 1 1 1 47 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12468437.401 5 -9715651.577 5 22435848.678 22435847.431 22435848.117
+ 34.100 31.000
+ -4084782.335 4 -3182944.770 2 24074685.391 24074683.570 24074684.510
+ 26.800 17.800
+ -10267256.281 6 -8000436.570 5 22560379.197 22560377.499 22560378.159
+ 37.000 31.000
+ -10633463.213 6 -8285813.757 5 22558060.459 22558059.190 22558059.457
+ 36.100 33.200
+ -5602664.314 6 -4365711.418 4 22613106.683 22613102.807 22613105.679
+ 37.700 29.000
+ -21138538.022 7 -16471580.832 7 20875591.376 20875587.942 20875590.290
+ 47.100 42.700
+ -23901188.343 7 -18624291.258 7 19948653.630 19948651.670 19948653.090
+ 46.900 46.300
+ -19465068.799 7 -15167573.433 7 20617098.244 20617095.812 20617097.489
+ 45.900 44.200
+ 06 1 1 1 48 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12313426.045 5 -9594863.552 5 22465346.943 22465345.499 22465346.226
+ 35.600 31.300
+ -4044515.114 4 -3151567.711 3 24082348.220 24082346.124 24082347.236
+ 27.600 19.300
+ -10102841.088 6 -7872320.829 5 22591666.704 22591664.889 22591665.723
+ 37.000 30.600
+ -10826398.087 6 -8436152.580 5 22521346.368 22521344.939 22521345.364
+ 36.500 34.100
+ -5751323.532 6 -4481549.730 5 22584817.698 22584815.187 22584816.970
+ 38.700 32.600
+ -21257987.125 7 -16564658.044 7 20852860.883 20852857.530 20852859.938
+ 47.400 42.800
+ -23898476.405 7 -18622178.054 7 19949169.611 19949167.889 19949169.121
+ 46.800 46.600
+ -19397281.986 7 -15114752.532 7 20629997.702 20629995.316 20629996.890
+ 46.100 44.100
+ 06 1 1 1 49 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -12157041.183 5 -9473005.232 5 22495105.976 22495104.300 22495105.235
+ 35.100 30.200
+ -4001941.799 4 -3118393.711 2 24090449.137 24090447.114 24090448.444
+ 26.200 17.800
+ -9937923.406 6 -7743813.535 4 22623049.655 22623047.154 22623048.555
+ 36.600 29.700
+ -11018624.924 6 -8585939.708 5 22484766.927 22484765.003 22484765.818
+ 36.600 33.600
+ -5899290.667 6 -4596848.766 5 22556660.157 22556657.078 22556659.218
+ 37.900 31.000
+ -21375947.565 7 -16656575.250 7 20830413.783 20830410.376 20830412.759
+ 47.300 43.100
+ -23893058.545 7 -18617956.335 7 19950200.686 19950198.773 19950200.117
+ 46.700 46.500
+ -19327457.121 7 -15060343.535 7 20643284.691 20643282.485 20643283.989
+ 46.100 44.100
+ 06 1 1 1 50 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11999304.225 5 -9350093.353 5 22525122.267 22525120.997 22525121.368
+ 34.600 30.800
+ -3957065.668 4 -3083425.306 3 24098988.821 24098986.482 24098987.779
+ 25.600 18.600
+ -9772510.432 6 -7614920.297 5 22654526.016 22654524.661 22654525.065
+ 36.400 30.400
+ -11210126.317 6 -8735161.546 5 22448325.463 22448323.710 22448324.335
+ 36.700 34.400
+ -6046561.735 6 -4711605.425 5 22528635.713 22528632.802 22528634.780
+ 38.600 32.400
+ -21492402.710 7 -16747319.502 7 20808253.203 20808249.762 20808252.167
+ 47.300 43.400
+ -23884941.488 7 -18611631.350 7 19951745.227 19951743.284 19951744.666
+ 46.800 46.300
+ -19255608.348 7 -15004357.471 7 20656957.172 20656954.961 20656956.433
+ 46.000 44.100
+ 06 1 1 1 51 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11840237.084 5 -9226144.975 4 22555391.315 22555390.311 22555390.503
+ 32.700 29.700
+ -3909891.034 4 -3046665.851 2 24107966.272 24107963.556 24107965.166
+ 27.600 15.100
+ -9606610.108 6 -7485647.320 5 22686096.709 22686094.201 22686095.477
+ 36.600 30.200
+ -11400884.656 6 -8883804.380 5 22412024.917 22412023.609 22412023.921
+ 36.100 34.500
+ -6193132.653 6 -4825816.504 5 22500744.219 22500740.450 22500743.353
+ 39.500 30.400
+ -21607334.915 7 -16836877.055 7 20786382.457 20786378.863 20786381.420
+ 47.300 43.500
+ -23874131.599 7 -18603208.048 7 19953802.388 19953800.428 19953801.867
+ 47.000 46.400
+ -19181750.184 7 -14946805.651 7 20671011.817 20671009.664 20671011.123
+ 45.800 44.100
+ 06 1 1 1 52 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11679861.834 5 -9101177.278 4 22585910.272 22585908.850 22585909.547
+ 33.900 29.900
+ -3860422.371 4 -3008118.853 3 24117379.969 24117377.788 24117379.020
+ 28.400 21.100
+ -9440229.643 6 -7356000.198 4 22717757.707 22717755.392 22717756.527
+ 36.800 29.500
+ -11590882.535 6 -9031854.650 5 22375869.200 22375867.764 22375868.469
+ 37.300 33.400
+ -6338999.263 6 -4939478.781 5 22472986.008 22472984.339 22472984.961
+ 37.200 34.000
+ -21720727.372 7 -16925234.802 7 20764804.428 20764801.003 20764803.393
+ 47.100 43.600
+ -23860635.960 7 -18592691.952 7 19956370.689 19956368.569 19956370.072
+ 47.200 46.400
+ -19105896.839 7 -14887699.147 7 20685446.157 20685444.015 20685445.486
+ 46.000 44.000
+ 06 1 1 1 53 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11518200.343 5 -8975207.316 5 22616673.169 22616672.160 22616672.474
+ 33.100 30.100
+ -3808664.758 4 -2967788.258 3 24127228.667 24127227.349 24127228.011
+ 27.400 20.500
+ -9273376.099 6 -7225984.452 4 22749508.560 22749506.575 22749507.548
+ 36.500 29.500
+ -11780101.999 6 -9179298.380 5 22339862.089 22339860.780 22339861.176
+ 37.200 34.900
+ -6484157.966 6 -5052589.451 5 22445363.896 22445360.118 22445363.046
+ 39.500 31.100
+ -21832562.736 7 -17012379.230 7 20743522.884 20743519.430 20743521.820
+ 47.300 43.800
+ -23844461.898 7 -18580088.781 7 19959448.000 19959446.312 19959447.537
+ 46.900 46.400
+ -19028063.183 7 -14827049.544 7 20700257.564 20700255.221 20700256.778
+ 46.100 44.000
+ 06 1 1 1 54 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11355274.635 5 -8848252.254 4 22647676.854 22647675.699 22647676.308
+ 32.800 29.000
+ -3754624.098 3 -2925678.659 3 24137512.311 24137510.721 24137511.314
+ 23.800 19.300
+ -9106056.589 5 -7095605.611 5 22781348.017 22781346.618 22781346.996
+ 35.100 30.400
+ -11968524.928 6 -9326121.407 5 22304006.533 22304004.957 22304005.398
+ 37.000 34.500
+ -6628604.368 6 -5165145.056 5 22417876.941 22417873.748 22417876.023
+ 40.300 32.700
+ -21942824.165 7 -17098297.222 7 20722540.795 20722537.274 20722539.752
+ 47.300 43.900
+ -23825617.740 7 -18565405.010 7 19963034.203 19963032.135 19963033.660
+ 47.200 46.100
+ -18948264.142 7 -14764868.466 7 20715442.808 20715440.484 20715442.043
+ 46.100 43.700
+ 06 1 1 1 55 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11191107.135 5 -8720329.555 4 22678917.254 22678915.860 22678916.318
+ 32.300 29.200
+ -3698306.540 4 -2881794.856 3 24148229.231 24148227.580 24148228.523
+ 27.600 19.900
+ -8938278.797 5 -6964869.676 4 22813275.078 22813273.581 22813274.102
+ 35.200 28.600
+ -12156133.411 6 -9472309.815 5 22268306.071 22268304.222 22268304.815
+ 37.600 34.600
+ -6772335.251 6 -5277143.153 5 22390525.380 22390522.477 22390524.386
+ 38.900 33.200
+ -22051494.414 7 -17182975.321 7 20701861.252 20701858.071 20701860.335
+ 46.900 43.900
+ -23804111.502 7 -18548646.896 7 19967126.671 19967124.701 19967126.162
+ 47.300 46.100
+ -18866514.806 7 -14701167.680 7 20730999.215 20730996.765 20730998.453
+ 46.300 43.700
+ 06 1 1 1 56 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -11025720.180 5 -8591456.650 4 22710389.333 22710388.003 22710388.695
+ 33.100 28.600
+ -3639718.453 4 -2836141.831 2 24159379.220 24159376.268 24159377.949
+ 27.900 16.100
+ -8770049.741 5 -6833782.093 4 22845288.210 22845286.542 22845287.120
+ 35.400 28.800
+ -12342909.143 6 -9617849.325 5 22232763.780 22232762.006 22232762.545
+ 37.700 34.800
+ -6915345.843 6 -5388579.947 5 22363311.297 22363308.334 22363310.404
+ 39.600 33.500
+ -22158557.043 7 -17266400.742 7 20681488.171 20681484.664 20681487.084
+ 46.900 44.100
+ -23779952.067 7 -18529821.357 7 19971724.239 19971722.078 19971723.723
+ 47.500 46.200
+ -18782830.528 7 -14635959.147 7 20746923.678 20746921.493 20746922.923
+ 45.900 43.800
+ 06 1 1 1 57 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10859136.285 5 -8461651.049 4 22742089.945 22742088.035 22742088.878
+ 31.800 29.500
+ -3578865.614 4 -2788724.031 2 24170958.277 24170955.903 24170957.167
+ 24.900 17.000
+ -8601375.662 5 -6702347.754 4 22877385.630 22877383.863 22877384.572
+ 34.500 28.800
+ -12528833.770 6 -9762725.630 5 22197383.888 22197381.755 22197382.609
+ 38.600 35.900
+ -7057632.519 6 -5499452.676 5 22336235.077 22336232.256 22336234.223
+ 40.200 33.100
+ -22263995.217 7 -17348560.348 7 20661424.028 20661420.400 20661422.983
+ 46.800 44.200
+ -23753148.652 7 -18508935.572 7 19976824.678 19976822.597 19976824.146
+ 47.400 46.100
+ -18697226.694 7 -14569254.857 7 20763213.531 20763211.433 20763212.790
+ 46.000 43.700
+ 06 1 1 1 58 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10691377.649 5 -8330930.100 4 22774012.701 22774011.329 22774012.021
+ 33.000 28.800
+ -3515755.565 4 -2739547.376 2 24182968.091 24182965.327 24182966.973
+ 27.100 15.100
+ -8432264.375 5 -6570572.738 4 22909566.257 22909564.842 22909565.301
+ 34.700 28.800
+ -12713888.983 6 -9906924.485 5 22162168.416 22162167.063 22162167.433
+ 38.800 35.800
+ -7199190.903 6 -5609757.907 5 22309297.207 22309294.300 22309296.401
+ 39.700 32.600
+ -22367791.746 7 -17429440.753 7 20641672.062 20641668.572 20641671.016
+ 46.900 44.300
+ -23723710.861 7 -18485997.033 7 19982426.384 19982424.548 19982425.912
+ 47.600 46.400
+ -18609719.035 7 -14501067.065 7 20779865.653 20779863.549 20779864.938
+ 45.900 43.800
+ 06 1 1 1 59 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10522467.359 5 -8199311.715 4 22806155.483 22806153.612 22806154.639
+ 32.000 26.800
+ -3450395.416 4 -2688617.436 3 24195405.259 24195403.762 24195404.156
+ 25.900 18.600
+ -8262722.178 5 -6438461.937 4 22941829.753 22941827.614 22941828.737
+ 34.700 28.400
+ -12898056.428 6 -10050431.571 5 22127122.467 22127120.933 22127121.588
+ 38.600 35.700
+ -7340017.372 6 -5719492.811 5 22282499.054 22282496.189 22282498.182
+ 40.400 33.900
+ -22469930.291 7 -17509029.232 7 20622235.823 20622232.164 20622234.811
+ 46.900 44.300
+ -23691648.949 7 -18461013.720 7 19988527.709 19988525.657 19988527.196
+ 47.400 46.100
+ -18520323.522 7 -14431408.213 7 20796877.044 20796874.891 20796876.362
+ 46.000 43.600
+ 06 1 1 2 0 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10352427.838 5 -8066813.432 4 22838512.580 22838511.658 22838511.907
+ 31.500 28.600
+ -3382793.379 4 -2635940.514 3 24208268.907 24208267.908 24208268.112
+ 24.900 20.500
+ -8092755.612 5 -6306020.468 4 22974172.902 22974171.331 22974171.821
+ 34.300 28.400
+ -13081317.539 6 -10193232.394 5 22092249.530 22092247.490 22092248.486
+ 39.300 35.300
+ -7480107.711 6 -5828654.102 5 22255840.692 22255837.795 22255839.690
+ 40.200 33.900
+ -22570394.121 7 -17587312.728 7 20603118.263 20603114.669 20603117.174
+ 46.900 44.700
+ -23656973.156 7 -18433993.622 7 19995126.274 19995124.166 19995125.722
+ 47.700 46.000
+ -18429056.000 7 -14360290.654 7 20814244.469 20814242.550 20814243.819
+ 45.900 43.600
+ 06 1 1 2 1 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10181281.848 5 -7933452.993 4 22871080.784 22871079.171 22871079.971
+ 30.200 27.600
+ -3312957.110 4 -2581522.691 3 24221559.687 24221557.428 24221558.595
+ 27.600 19.300
+ -7922371.819 5 -6173253.876 4 23006596.684 23006593.990 23006595.382
+ 34.100 27.400
+ -13263653.467 6 -10335312.322 6 22057552.157 22057550.185 22057551.045
+ 39.600 36.100
+ -7619457.408 6 -5937238.269 5 22229322.955 22229320.099 22229322.217
+ 40.300 33.400
+ -22669166.645 7 -17664278.326 7 20584322.384 20584318.898 20584321.470
+ 46.900 44.900
+ -23619694.317 7 -18404945.176 7 20002220.103 20002218.156 20002219.577
+ 47.700 46.100
+ -18335932.511 7 -14287726.886 7 20831965.549 20831963.388 20831964.790
+ 45.900 43.500
+ 06 1 1 2 2 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -10009052.346 5 -7799248.240 4 22903855.354 22903853.643 22903854.337
+ 30.800 25.900
+ -3240895.311 4 -2525370.664 2 24235272.195 24235269.800 24235270.974
+ 24.600 17.800
+ -7751577.046 5 -6040167.054 4 23039096.576 23039095.335 23039095.789
+ 33.000 27.600
+ -13445045.443 6 -10476656.690 6 22023033.921 22023032.684 22023032.799
+ 38.900 36.900
+ -7758062.302 6 -6045242.066 5 22202947.818 22202945.058 22202946.879
+ 40.800 34.800
+ -22766231.472 7 -17739913.257 7 20565851.458 20565848.057 20565850.401
+ 46.400 44.800
+ -23579823.564 7 -18373877.054 7 20009807.199 20009805.266 20009806.630
+ 47.600 46.000
+ -18240969.598 7 -14213729.800 7 20850036.448 20850034.123 20850035.725
+ 46.000 43.300
+ 06 1 1 2 3 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9835762.135 5 -7664216.937 4 22936831.408 22936829.582 22936830.556
+ 30.800 26.800
+ -3166616.394 4 -2467491.020 2 24249406.406 24249404.829 24249405.383
+ 25.300 12.600
+ -7580377.484 5 -5906764.812 4 23071675.912 23071674.046 23071674.711
+ 33.900 28.400
+ -13625474.616 6 -10617250.817 6 21988699.537 21988697.928 21988698.420
+ 39.400 37.200
+ -7895918.984 6 -6152662.838 5 22176714.556 22176711.246 22176713.573
+ 41.100 33.900
+ -22861571.975 7 -17814204.551 7 20547708.615 20547705.332 20547707.593
+ 46.300 45.100
+ -23537372.897 7 -18340798.607 7 20017885.528 20017883.364 20017884.978
+ 47.900 45.900
+ -18144183.789 7 -14138312.276 7 20868454.009 20868451.893 20868453.279
+ 45.800 43.400
+ 06 1 1 2 4 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9661434.140 5 -7528377.007 4 22970004.252 22970003.144 22970003.718
+ 30.100 25.900
+ -3090129.531 4 -2407890.911 2 24263961.942 24263959.477 24263960.921
+ 26.800 15.100
+ -7408779.814 5 -5773052.356 4 23104329.220 23104327.500 23104328.215
+ 33.000 26.800
+ -13804922.213 6 -10757080.095 6 21954551.950 21954549.851 21954550.722
+ 39.800 36.500
+ -8033023.130 6 -6259497.222 5 22150624.326 22150621.425 22150623.499
+ 41.300 34.000
+ -22955172.176 7 -17887139.775 7 20529897.467 20529893.820 20529896.390
+ 46.400 45.200
+ -23492354.002 7 -18305718.945 7 20026452.266 20026450.198 20026451.666
+ 47.800 45.900
+ -18045591.551 7 -14061487.144 7 20887215.477 20887213.379 20887214.755
+ 45.700 43.100
+ 06 1 1 2 5 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9486091.734 4 -7391746.593 4 23003370.889 23003369.601 23003370.157
+ 29.900 24.900
+ -3011444.937 4 -2346578.262 3 24278935.533 24278933.223 24278934.729
+ 28.600 19.900
+ -7236790.199 5 -5639034.472 4 23137057.998 23137056.241 23137056.844
+ 33.200 27.900
+ -13983368.964 6 -10896129.473 6 21920594.747 21920592.853 21920593.442
+ 40.200 37.200
+ -8169369.890 6 -6365741.435 5 22124678.554 22124675.572 22124677.639
+ 41.200 35.100
+ -23047016.121 7 -17958706.480 7 20512420.195 20512416.490 20512419.137
+ 46.400 45.400
+ -23444779.593 7 -18268647.976 7 20035505.420 20035503.269 20035504.896
+ 47.900 45.900
+ -17945209.561 7 -13983267.395 7 20906317.676 20906315.397 20906316.899
+ 45.800 43.100
+ 06 1 1 2 6 0.0000000 0 8G06G08G10G15G18G21G26G29
+ -9309757.818 4 -7254343.612 4 23036925.763 23036925.141 23036925.221
+ 28.100 26.200
+ -2930571.617 4 -2283560.107 3 24294324.599 24294322.629 24294323.569
+ 25.300 19.300
+ -7064415.114 5 -5504716.255 4 23169859.577 23169858.578 23169858.791
+ 32.400 28.100
+ -14160795.727 6 -11034384.077 6 21886831.523 21886829.398 21886830.407
+ 40.900 36.500
+ -8304955.936 6 -6471392.884 5 22098877.383 22098874.527 22098876.447
+ 41.600 35.400
+ -23137087.340 7 -18028891.851 7 20495279.942 20495276.502 20495278.964
+ 46.300 45.400
+ -23394662.347 7 -18229595.573 7 20045042.085 20045040.352 20045041.658
+ 47.700 45.900
+ -17843054.837 7 -13903666.299 7 20925757.059 20925754.754 20925756.354
+ 46.100 43.000
+ 06 1 1 2 7 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -9132455.395 5 -7116185.943 4 23070665.859 23070664.330 23070665.048
+ 30.200 25.300
+ -2847520.781 4 -2218845.194 2 24310127.978 24310126.955 24310126.965
+ 24.200 15.100
+ -272086.093 3 -212015.477 9 24620340.343 24620340.010 24620339.826
+ 20.500 -3.000
+ -6891660.778 5 -5370102.512 4 23202734.415 23202732.508 23202733.237
+ 33.000 28.100
+ -14337183.525 6 -11171829.101 6 21853265.892 21853264.206 21853264.729
+ 40.600 37.700
+ -8439776.656 6 -6576447.967 5 22073221.596 22073218.812 22073220.749
+ 41.900 35.500
+ -23225370.273 7 -18097683.747 7 20478480.314 20478476.773 20478479.215
+ 45.900 45.300
+ -23342015.284 7 -18188571.885 7 20055060.548 20055058.760 20055060.065
+ 47.600 45.900
+ -17739144.262 7 -13822697.000 7 20945530.407 20945528.251 20945529.718
+ 45.900 42.600
+ 06 1 1 2 8 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8954207.975 4 -6977291.874 4 23104585.434 23104584.068 23104584.630
+ 29.700 26.200
+ -2762302.124 4 -2152441.056 3 24326345.428 24326343.502 24326344.405
+ 25.300 20.500
+ -505391.589 3 -393811.967 1 24575944.261 24575944.030 24575943.237
+ 23.000 11.000
+ -6718533.150 5 -5235197.895 4 23235678.971 23235677.210 23235677.900
+ 32.600 26.800
+ -14512512.848 6 -11308449.328 6 21819901.598 21819900.156 21819900.537
+ 40.500 38.300
+ -8573828.040 7 -6680903.584 5 22047712.610 22047709.576 22047711.646
+ 42.000 35.500
+ -23311848.793 7 -18165069.615 7 20462024.117 20462020.469 20462023.033
+ 45.800 45.500
+ -23286851.955 7 -18145587.465 7 20065557.857 20065555.853 20065557.299
+ 47.600 45.600
+ -17633495.140 7 -13740372.989 7 20965634.964 20965632.549 20965634.183
+ 45.700 42.400
+ 06 1 1 2 9 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8775038.585 4 -6837679.427 4 23138680.197 23138679.196 23138679.308
+ 27.900 27.100
+ -2674926.870 4 -2084356.529 2 24342972.141 24342970.190 24342971.131
+ 24.900 16.100
+ -738753.540 3 -575652.365 2 24531538.307 24531536.371 24531536.833
+ 18.600 17.000
+ -6545038.543 5 -5100007.296 4 23268694.234 23268692.060 23268692.889
+ 32.000 26.500
+ -14686764.524 6 -11444229.841 6 21786742.877 21786740.954 21786741.705
+ 41.000 38.200
+ -8707105.351 6 -6784756.018 6 22022350.423 22022347.838 22022349.518
+ 41.400 36.100
+ -23396507.592 7 -18231037.514 7 20445913.773 20445910.384 20445912.846
+ 45.800 45.500
+ -23229186.149 7 -18100653.059 7 20076531.061 20076529.234 20076530.566
+ 47.400 45.600
+ -17526124.407 7 -13656707.464 7 20986066.918 20986064.489 20986066.161
+ 45.800 42.500
+ 06 1 1 2 10 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8594970.604 4 -6697366.776 4 23172945.929 23172945.259 23172945.373
+ 29.000 26.200
+ -2585406.951 4 -2014600.772 2 24360007.322 24360005.742 24360006.320
+ 24.900 17.000
+ -972147.559 3 -757517.719 3 24487124.623 24487122.911 24487122.902
+ 18.600 18.600
+ -6371182.280 5 -4964534.901 4 23301777.458 23301776.223 23301776.372
+ 32.300 25.600
+ -14859919.022 6 -11579155.417 6 21753792.392 21753790.530 21753791.333
+ 41.200 37.800
+ -8839604.664 7 -6888002.219 6 21997136.710 21997134.013 21997135.962
+ 42.200 36.000
+ -23479330.414 7 -18295574.792 7 20430153.413 20430149.792 20430152.360
+ 45.800 45.800
+ -23169032.113 7 -18053779.777 7 20087978.120 20087976.233 20087977.547
+ 47.200 45.600
+ -17417049.458 7 -13571713.979 7 21006822.955 21006820.848 21006822.293
+ 45.600 42.400
+ 06 1 1 2 11 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8414027.167 4 -6556371.976 4 23207378.290 23207377.168 23207377.355
+ 26.200 24.200
+ -2493753.275 4 -1943182.362 2 24377448.842 24377447.277 24377448.017
+ 26.200 17.000
+ -1205549.287 3 -939389.110 3 24442709.033 24442708.545 24442707.127
+ 21.600 19.300
+ -6196970.674 5 -4828785.622 4 23334929.131 23334927.495 23334927.925
+ 31.600 25.300
+ -15031956.773 6 -11713210.805 6 21721054.849 21721053.009 21721053.809
+ 41.800 37.900
+ -8971322.010 7 -6990639.101 5 21972071.748 21972068.944 21972070.938
+ 42.300 35.800
+ -23560302.751 7 -18358670.126 7 20414744.857 20414741.336 20414743.792
+ 45.900 46.000
+ -23106404.448 7 -18004978.989 7 20099895.703 20099893.916 20099895.121
+ 47.300 45.200
+ -17306287.980 7 -13485406.315 7 21027900.310 21027898.003 21027899.566
+ 45.600 42.300
+ 06 1 1 2 12 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8232231.724 4 -6414713.240 4 23241973.464 23241971.990 23241972.454
+ 27.900 24.900
+ -2399977.166 4 -1870110.083 3 24395293.227 24395292.105 24395292.535
+ 26.200 19.300
+ -1438934.478 3 -1121247.630 3 24398297.798 24398296.234 24398296.015
+ 19.300 21.100
+ -6022409.696 5 -4692764.081 4 23368146.790 23368145.573 23368145.676
+ 31.000 25.900
+ -15202858.197 6 -11846380.743 6 21688533.421 21688531.771 21688532.301
+ 41.500 38.800
+ -9102252.856 7 -7092663.123 6 21947156.670 21947153.802 21947155.726
+ 42.600 36.600
+ -23639408.654 7 -18420311.086 7 20399691.356 20399688.090 20399690.430
+ 45.700 46.200
+ -23041317.910 7 -17954262.195 7 20112281.442 20112279.332 20112280.811
+ 47.400 45.100
+ -17193857.212 7 -13397797.912 7 21049295.043 21049292.920 21049294.295
+ 45.500 42.100
+ 06 1 1 2 13 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -8049607.834 4 -6272408.954 3 23276725.319 23276724.034 23276724.399
+ 28.100 22.100
+ -2304091.296 3 -1795393.855 3 24413539.392 24413538.511 24413538.267
+ 21.600 19.300
+ -1672278.053 3 -1303073.660 3 24353892.904 24353892.870 24353891.606
+ 18.600 21.100
+ -5847504.532 5 -4556474.363 4 23401430.396 23401428.704 23401429.470
+ 31.000 25.300
+ -15372603.913 7 -11978650.119 6 21656231.942 21656230.000 21656230.828
+ 42.000 38.700
+ -9232392.779 7 -7194070.837 6 21922391.916 21922388.882 21922391.040
+ 43.000 36.500
+ -23716633.459 7 -18480486.261 7 20384995.908 20384992.615 20384994.962
+ 45.700 46.100
+ -22973787.701 7 -17901641.241 7 20125132.011 20125129.955 20125131.515
+ 47.900 45.100
+ -17079775.319 7 -13308902.907 6 21071004.027 21071001.877 21071003.316
+ 45.500 41.700
+ 06 1 1 2 14 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7866178.680 4 -6129477.209 4 23311630.488 23311629.576 23311629.810
+ 27.900 24.200
+ -2206108.433 4 -1719043.647 3 24432186.257 24432184.222 24432185.100
+ 24.900 18.600
+ -1905555.109 3 -1484847.921 2 24309503.568 24309500.887 24309501.330
+ 18.600 15.100
+ -5672260.815 4 -4419920.843 4 23434777.760 23434776.505 23434776.794
+ 29.900 25.600
+ -15541174.368 7 -12110003.714 6 21624154.129 21624151.962 21624153.046
+ 42.300 38.400
+ -9361737.014 7 -7294858.557 6 21897778.274 21897775.471 21897777.458
+ 43.100 36.500
+ -23791961.492 7 -18539183.429 7 20370661.709 20370658.118 20370660.658
+ 45.600 46.300
+ -22903829.575 7 -17847128.403 7 20138444.662 20138442.621 20138444.155
+ 47.900 45.300
+ -16964059.387 7 -13218734.625 6 21093024.205 21093021.823 21093023.439
+ 45.300 41.500
+ 06 1 1 2 15 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7681967.728 4 -5985936.257 4 23346685.392 23346683.886 23346684.587
+ 28.400 24.200
+ -2106040.829 4 -1641068.938 2 24451227.571 24451226.322 24451226.608
+ 24.600 17.000
+ -2138740.178 4 -1666550.515 2 24265128.785 24265127.619 24265127.711
+ 26.800 15.100
+ -5496684.451 5 -4283108.138 4 23468189.704 23468187.436 23468188.330
+ 30.400 24.600
+ -15708549.521 7 -12240425.904 6 21592303.686 21592301.745 21592302.547
+ 42.200 39.100
+ -9490281.579 7 -7395023.142 6 21873316.971 21873314.157 21873316.049
+ 42.400 36.900
+ -23865378.775 7 -18596391.701 7 20356690.823 20356687.260 20356689.759
+ 45.400 46.400
+ -22831459.204 7 -17790735.892 7 20152216.164 20152214.204 20152215.617
+ 47.600 45.200
+ -16846727.892 7 -13127307.462 6 21115351.751 21115349.166 21115350.966
+ 45.300 41.200
+ 06 1 1 2 16 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7496998.243 4 -5841804.261 3 23381883.207 23381882.407 23381882.626
+ 26.200 23.400
+ -2003901.923 3 -1561480.235 2 24470663.859 24470662.902 24470663.106
+ 20.500 15.100
+ -2371808.437 3 -1848162.106 3 24220778.058 24220776.239 24220776.371
+ 23.000 19.300
+ -5320780.496 4 -4146040.148 4 23501662.571 23501661.230 23501661.342
+ 29.200 24.600
+ -15874709.701 7 -12369901.350 6 21560684.052 21560682.376 21560683.020
+ 42.200 39.200
+ -9618021.863 7 -7494561.019 6 21849008.811 21849005.969 21849008.070
+ 43.100 36.900
+ -23936869.682 7 -18652098.889 7 20343086.465 20343082.964 20343085.482
+ 45.500 46.600
+ -22756692.783 7 -17732476.331 7 20166443.668 20166441.738 20166443.149
+ 47.500 45.000
+ -16727798.325 7 -13034635.051 6 21137983.170 21137980.756 21137982.395
+ 45.500 41.500
+ 06 1 1 2 17 0.0000000 0 9G06G08G09G10G15G18G21G26G29
+ -7311293.980 4 -5697099.710 4 23417221.798 23417221.050 23417220.807
+ 25.900 24.900
+ -1899704.952 3 -1480287.852 2 24490492.570 24490490.302 24490491.140
+ 23.800 12.600
+ -2604735.079 3 -2029663.263 3 24176451.989 24176451.747 24176451.071
+ 22.600 22.600
+ -5144554.904 5 -4008721.529 4 23535197.163 23535196.139 23535196.232
+ 30.400 24.900
+ -16039634.751 7 -12498414.366 6 21529299.690 21529298.189 21529298.806
+ 42.600 39.300
+ -9744954.063 7 -7593469.226 6 21824854.641 21824851.727 21824853.731
+ 43.400 37.100
+ -24006420.322 7 -18706294.182 7 20329851.470 20329847.889 20329850.454
+ 45.400 46.700
+ -22679546.631 7 -17672362.437 7 20181124.037 20181122.230 20181123.562
+ 47.500 45.100
+ -16607288.400 7 -12940731.198 6 21160915.368 21160913.136 21160914.652
+ 45.500 41.400
+ 06 1 1 2 18 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -7124878.000 4 -5551840.563 3 23452695.829 23452694.569 23452695.128
+ 27.400 22.600
+ -1793464.569 4 -1397503.184 2 24510709.115 24510707.438 24510708.080
+ 24.900 17.000
+ -2837494.536 4 -2211034.146 3 24132158.825 24132158.680 24132158.489
+ 24.200 21.600
+ -4968013.154 4 -3871156.560 4 23568792.309 23568790.586 23568791.019
+ 29.500 24.200
+ -16203305.187 7 -12625949.760 6 21498154.364 21498152.677 21498153.284
+ 42.400 39.300
+ -9871073.369 7 -7691744.006 6 21800854.908 21800852.035 21800854.089
+ 43.800 37.700
+ -24074016.039 7 -18758966.165 7 20316988.619 20316984.911 20316987.492
+ 45.200 46.800
+ -206339.189 4 -160783.743 1 24679148.871 24679143.835 24679148.101
+ 26.800 11.000
+ -22600037.393 7 -17610407.172 7 20196254.509 20196252.308 20196253.832
+ 47.600 44.900
+ -16485216.649 7 -12845610.329 6 21184144.783 21184142.525 21184144.132
+ 45.400 41.100
+ 06 1 1 2 19 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6937774.129 4 -5406045.381 3 23488300.360 23488299.321 23488299.560
+ 27.100 23.000
+ -1685193.449 4 -1313136.188 2 24531312.812 24531311.263 24531312.065
+ 24.600 15.100
+ -3070061.374 3 -2392254.971 2 24087899.405 24087901.959 24087902.238
+ 22.100 16.100
+ -4791160.445 4 -3733349.277 3 23602445.855 23602444.188 23602444.735
+ 28.400 23.800
+ -16365700.928 7 -12752491.872 6 21467251.620 21467250.139 21467250.502
+ 42.700 40.300
+ -9996374.740 7 -7789381.428 6 21777010.784 21777007.860 21777009.982
+ 44.000 37.300
+ -24139643.835 7 -18810104.695 7 20304499.489 20304496.328 20304498.638
+ 45.200 46.800
+ -382946.864 3 -298400.123 2 24645540.916 24645536.649 24645540.442
+ 21.600 17.800
+ -22518182.064 8 -17546623.784 7 20211830.761 20211828.706 20211830.282
+ 48.000 44.700
+ -16361600.917 7 -12749286.363 6 21207668.065 21207665.806 21207667.420
+ 45.300 41.000
+ 06 1 1 2 20 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6750005.823 4 -5259732.482 3 23524031.832 23524030.596 23524031.193
+ 27.600 23.400
+ -1574906.377 3 -1227198.195 2 24552299.932 24552298.634 24552298.722
+ 23.800 17.000
+ -3302410.173 4 -2573305.927 3 24043686.972 24043688.395 24043687.497
+ 24.600 21.600
+ -4614002.032 4 -3595303.801 4 23636158.083 23636156.648 23636157.170
+ 29.500 24.600
+ -16526802.034 7 -12878025.179 6 21436595.111 21436593.372 21436593.980
+ 42.800 39.800
+ -10120854.132 7 -7886378.363 6 21753323.190 21753320.196 21753322.453
+ 44.300 37.700
+ -24203288.519 7 -18859697.947 7 20292388.852 20292385.246 20292387.790
+ 45.200 47.000
+ -559316.675 2 -435831.085 3 24611978.437 24611975.381 24611977.950
+ 13.900 23.800
+ -22433998.100 7 -17481025.868 7 20227850.503 20227848.333 20227849.937
+ 47.800 44.500
+ -16236459.552 7 -12651773.599 6 21231481.694 21231479.346 21231480.998
+ 45.100 40.900
+ 06 1 1 2 21 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6561596.016 4 -5112919.711 4 23559884.906 23559884.036 23559884.373
+ 28.800 24.900
+ -1462618.337 3 -1139701.140 2 24573666.875 24573666.090 24573666.328
+ 22.600 17.800
+ -3534514.815 3 -2754166.555 3 23999520.703 23999519.553 23999519.574
+ 23.400 21.100
+ -4436542.957 5 -3457024.039 4 23669928.191 23669926.287 23669926.880
+ 30.400 25.300
+ -16686588.660 7 -13002534.222 6 21406188.982 21406186.784 21406187.797
+ 43.500 39.700
+ -10244506.255 7 -7982730.651 6 21729792.905 21729790.023 21729792.015
+ 43.800 38.000
+ -24264936.845 7 -18907735.606 7 20280657.495 20280653.800 20280656.377
+ 45.000 47.000
+ -735444.793 2 -573073.656 4 24578462.693 24578458.875 24578462.182
+ 17.800 24.600
+ -22347502.894 7 -17413626.991 7 20244309.884 20244307.954 20244309.346
+ 47.500 44.700
+ -16109810.514 7 -12553086.024 6 21255582.114 21255579.860 21255581.476
+ 44.900 40.600
+ 06 1 1 2 22 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6372568.582 4 -4965625.711 3 23595855.379 23595855.015 23595854.559
+ 25.600 20.500
+ -1348343.363 3 -1050655.768 2 24595413.327 24595412.237 24595412.183
+ 21.600 17.000
+ -3766349.204 3 -2934816.594 3 23955403.910 23955403.354 23955402.913
+ 21.600 18.600
+ -4258788.153 5 -3318513.836 3 23703754.187 23703751.716 23703752.744
+ 30.400 23.800
+ -16845040.633 7 -13126003.288 6 21376036.155 21376034.523 21376035.089
+ 43.400 39.900
+ -10367327.746 7 -8078435.701 6 21706420.766 21706417.920 21706419.948
+ 44.200 38.100
+ -24324575.250 7 -18954207.079 7 20269308.769 20269305.028 20269307.653
+ 44.900 47.000
+ -911328.377 4 -710125.785 3 24544993.241 24544989.265 24544992.868
+ 24.900 23.800
+ -22258714.397 7 -17344441.138 7 20261205.691 20261203.849 20261205.155
+ 47.400 44.700
+ -15981672.003 7 -12453237.814 6 21279966.123 21279963.707 21279965.405
+ 44.800 40.300
+ 06 1 1 2 23 0.0000000 0 10G06G08G09G10G15G18G21G22G26G29
+ -6182947.140 4 -4817868.769 2 23631938.550 23631938.147 23631938.022
+ 24.600 16.100
+ -1232097.185 3 -960074.365 1 24617534.511 24617532.209 24617533.606
+ 22.100 6.500
+ -3997887.252 4 -3115235.794 3 23911344.933 23911342.451 23911343.594
+ 27.900 21.600
+ -4080742.909 4 -3179777.315 4 23737634.676 23737632.959 23737633.300
+ 28.100 24.600
+ -17002137.574 7 -13248416.476 6 21346141.575 21346139.894 21346140.512
+ 43.600 40.200
+ -10489313.443 7 -8173489.480 6 21683207.805 21683204.760 21683206.808
+ 44.100 38.200
+ -24382190.560 7 -18999102.125 7 20258344.727 20258341.256 20258343.633
+ 44.700 47.100
+ -1086963.319 4 -846984.169 3 24511571.165 24511566.930 24511570.398
+ 25.900 21.100
+ -22167650.573 7 -17273482.300 7 20278534.594 20278532.726 20278534.055
+ 47.500 44.700
+ -15852062.477 7 -12352243.366 6 21304629.964 21304627.603 21304629.252
+ 44.800 40.300
+ 06 1 1 2 24 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5992754.870 4 -4669667.045 3 23668132.183 23668130.460 23668131.244
+ 25.300 19.900
+ -4229104.206 3 -3295404.780 2 23867344.514 23867343.053 23867343.252
+ 23.400 17.800
+ -3902412.516 5 -3040818.628 3 23771569.242 23771567.729 23771568.231
+ 30.200 23.800
+ -17157860.315 7 -13369758.852 6 21316508.608 21316506.864 21316507.418
+ 43.300 40.600
+ -10610458.502 7 -8267888.210 6 21660154.635 21660151.620 21660153.691
+ 44.300 38.500
+ -24437769.505 7 -19042410.384 7 20247768.354 20247764.836 20247767.444
+ 44.800 47.100
+ -1262346.304 4 -983646.246 3 24478197.153 24478192.550 24478196.441
+ 25.900 20.500
+ -22074329.682 7 -17200764.707 7 20296293.188 20296291.036 20296292.538
+ 47.500 44.400
+ -15721000.272 7 -12250116.955 6 21329570.228 21329567.810 21329569.578
+ 44.900 40.000
+ 06 1 1 2 25 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5802015.079 4 -4521038.715 3 23704428.680 23704427.755 23704427.909
+ 25.900 23.000
+ -4459973.131 4 -3475302.551 3 23823411.503 23823411.285 23823410.619
+ 24.900 22.600
+ -3723801.877 4 -2901641.562 3 23805557.017 23805556.295 23805556.397
+ 27.400 22.100
+ -17312188.269 7 -13490014.381 6 21287140.646 21287139.183 21287139.775
+ 43.800 40.500
+ -10730758.361 7 -8361628.353 6 21637262.115 21637259.263 21637261.272
+ 44.300 38.600
+ -24491298.070 7 -19084120.952 7 20237582.339 20237578.716 20237581.284
+ 44.600 47.200
+ -1437474.062 4 -1120109.405 3 24444870.689 24444867.109 24444870.198
+ 25.300 22.600
+ -21978770.386 7 -17126302.911 7 20314477.408 20314475.296 20314476.851
+ 47.700 44.100
+ -15588503.629 7 -12146872.801 6 21354783.614 21354781.145 21354782.962
+ 44.900 39.800
+ 06 1 1 2 26 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5610751.235 4 -4372002.031 3 23740824.670 23740824.040 23740824.322
+ 24.600 22.600
+ -4690467.771 3 -3654908.684 3 23779547.699 23779548.759 23779548.443
+ 22.600 20.500
+ -3544915.555 4 -2762249.648 3 23839597.245 23839597.954 23839597.100
+ 27.900 21.600
+ -17465100.995 7 -13609167.142 6 21258042.724 21258040.897 21258041.569
+ 44.100 40.700
+ -10850208.258 7 -8454706.177 6 21614531.758 21614528.695 21614530.935
+ 45.100 38.900
+ -24542765.575 7 -19124225.497 7 20227788.265 20227784.772 20227787.235
+ 44.400 47.400
+ -1612342.618 3 -1256370.604 3 24411593.358 24411590.787 24411593.304
+ 22.100 21.100
+ -21880991.348 7 -17050111.432 7 20333084.351 20333081.961 20333083.667
+ 47.600 43.900
+ -15454590.958 7 -12042525.249 6 21380266.310 21380263.891 21380265.585
+ 44.300 39.700
+ 06 1 1 2 27 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5418986.491 3 -4222575.084 2 23777315.848 23777315.597 23777315.417
+ 22.100 17.000
+ -4920561.816 4 -3834202.603 3 23735763.740 23735763.060 23735763.195
+ 25.600 23.400
+ -3365758.587 4 -2622646.818 3 23873690.587 23873689.711 23873689.848
+ 27.600 20.500
+ -17616579.047 7 -13727201.975 6 21229217.514 21229215.683 21229216.378
+ 44.400 41.200
+ -10968803.443 7 -8547118.005 6 21591963.735 21591960.554 21591962.853
+ 44.800 38.400
+ -24592157.705 7 -19162712.861 7 20218389.298 20218385.707 20218388.273
+ 44.400 47.400
+ -1786948.759 4 -1392427.298 3 24378367.978 24378364.047 24378367.380
+ 25.300 19.900
+ -21781011.420 7 -16972204.977 7 20352109.640 20352107.563 20352109.070
+ 47.500 43.800
+ -15319280.611 7 -11937088.606 6 21406014.977 21406012.626 21406014.237
+ 44.200 39.700
+ 06 1 1 2 28 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5226744.481 4 -4072776.119 3 23813899.303 23813898.177 23813898.556
+ 25.300 18.600
+ -5150228.792 4 -4013163.780 3 23692061.353 23692059.128 23692059.767
+ 25.300 22.600
+ -3186336.010 3 -2482837.056 3 23907833.086 23907832.216 23907832.810
+ 23.400 19.900
+ -17766602.641 7 -13844103.486 6 21200668.870 21200667.034 21200667.824
+ 44.500 41.200
+ -11086539.038 7 -8638860.013 6 21569559.376 21569556.693 21569558.536
+ 44.800 39.700
+ -24639462.561 7 -19199573.784 7 20209387.351 20209383.896 20209386.389
+ 44.100 47.400
+ -1961288.696 3 -1528276.556 3 24345191.480 24345188.021 24345190.972
+ 22.600 21.100
+ -21678850.046 7 -16892598.696 7 20371550.246 20371548.282 20371549.723
+ 47.600 44.000
+ -15182591.158 7 -11830577.328 6 21432026.278 21432023.749 21432025.497
+ 44.600 39.500
+ 06 1 1 2 29 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -5034048.436 4 -3922623.416 3 23850568.063 23850566.493 23850567.565
+ 25.900 18.600
+ -5379442.654 4 -4191771.858 3 23648443.621 23648440.958 23648441.585
+ 25.600 23.000
+ -3006652.588 4 -2342824.037 3 23942026.888 23942024.955 23942025.878
+ 28.100 21.100
+ -17915151.169 7 -13959855.595 6 21172400.987 21172399.270 21172399.893
+ 44.500 41.500
+ -11203410.066 7 -8729928.333 6 21547319.559 21547316.573 21547318.653
+ 45.000 39.300
+ -24684669.062 7 -19234799.623 7 20200784.814 20200781.456 20200783.868
+ 44.000 47.600
+ -2135358.710 4 -1663915.469 3 24312067.924 24312064.048 24312067.367
+ 26.200 19.900
+ -21574526.542 7 -16811307.640 7 20391402.253 20391400.402 20391401.764
+ 47.500 43.800
+ -15044540.930 7 -11723005.703 6 21458296.304 21458293.905 21458295.517
+ 44.300 39.400
+ 06 1 1 2 30 0.0000000 0 9G06G09G10G15G18G21G22G26G29
+ -4840921.590 4 -3772135.028 2 23887319.136 23887318.136 23887318.088
+ 25.600 17.000
+ -5608176.057 4 -4370005.580 4 23604915.495 23604914.514 23604914.788
+ 28.400 24.200
+ -2826712.260 4 -2202610.827 3 23976268.184 23976267.216 23976267.355
+ 27.400 22.100
+ -18062204.906 7 -14074442.921 6 21144417.615 21144415.892 21144416.548
+ 44.600 41.400
+ -11319412.140 7 -8820319.561 6 21525245.528 21525242.176 21525244.561
+ 45.600 39.500
+ -24727763.922 7 -19268380.029 7 20192584.215 20192580.781 20192583.220
+ 43.800 47.600
+ -2309155.581 4 -1799341.582 3 24278994.918 24278991.150 24278994.611
+ 25.600 21.100
+ -21468060.425 7 -16728347.012 7 20411661.922 20411660.126 20411661.500
+ 47.500 43.800
+ -14905148.467 7 -11614388.183 6 21484821.589 21484819.267 21484820.902
+ 43.600 39.100
+ 06 1 1 2 31 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -70366.104 3 -54830.771 3 24576796.904 24576795.430 24576796.047
+ 21.100 21.100
+ -4647387.078 3 -3621328.958 2 23924147.226 23924146.056 23924146.541
+ 23.000 12.600
+ -5836403.512 4 -4547845.101 3 23561484.565 23561483.738 23561484.178
+ 27.100 23.000
+ -2646520.109 4 -2062201.419 3 24010556.938 24010556.060 24010556.663
+ 27.100 19.900
+ -18207744.069 7 -14187850.062 6 21116722.568 21116720.617 21116721.414
+ 45.000 41.800
+ -11434540.338 7 -8910029.841 6 21503337.113 21503333.945 21503336.110
+ 45.000 39.500
+ -24768736.737 7 -19300306.894 7 20184787.417 20184783.822 20184786.342
+ 43.800 47.600
+ -2482675.371 4 -1934551.747 3 24245975.458 24245971.769 24245974.765
+ 25.300 23.800
+ -21359471.647 7 -16643732.360 7 20432325.936 20432323.879 20432325.405
+ 47.600 43.700
+ -14764432.329 7 -11504739.229 6 21511598.872 21511596.715 21511598.209
+ 43.600 39.100
+ 06 1 1 2 32 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -160381.547 2 -124972.671 3 24559666.953 24559665.466 24559665.913
+ 16.100 21.100
+ -4453468.331 3 -3470223.517 4 23961048.391 23961048.208 23961048.066
+ 22.600 24.600
+ -6064097.512 4 -4725268.862 3 23518156.434 23518155.078 23518155.747
+ 26.200 23.800
+ -2466080.804 4 -1921599.389 3 24044893.512 24044892.816 24044892.983
+ 26.200 19.900
+ -18351748.447 7 -14300061.264 7 21089319.429 21089317.500 21089318.348
+ 45.200 42.000
+ -11548788.699 7 -8999054.531 6 21481596.181 21481593.341 21481595.357
+ 45.400 40.000
+ -24807576.376 7 -19330571.540 7 20177396.440 20177393.016 20177395.378
+ 43.700 47.800
+ -2655914.191 4 -2069542.987 4 24213009.117 24213005.776 24213008.603
+ 26.500 24.600
+ -21248780.096 7 -16557479.184 7 20453389.761 20453387.836 20453389.234
+ 47.500 43.500
+ -14622410.871 7 -11394073.144 6 21538624.785 21538622.512 21538623.990
+ 43.600 38.800
+ 06 1 1 2 33 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -248387.817 3 -193548.922 3 24542920.395 24542918.557 24542919.429
+ 23.000 21.100
+ -4259188.125 3 -3318836.469 3 23998018.824 23998018.545 23998018.091
+ 22.600 23.000
+ -6291230.036 4 -4902255.202 3 23474935.137 23474933.178 23474933.389
+ 26.200 22.100
+ -2285398.753 4 -1780808.196 3 24079275.866 24079275.621 24079275.469
+ 24.900 19.300
+ -18494197.977 7 -14411060.891 7 21062212.118 21062210.301 21062210.982
+ 45.100 42.200
+ -11662153.677 7 -9087390.885 6 21460023.704 21460020.558 21460022.806
+ 45.500 39.900
+ -24844270.707 7 -19359164.519 7 20170413.827 20170410.240 20170412.770
+ 43.500 47.800
+ -2828868.438 4 -2204312.488 4 24180097.214 24180092.895 24180096.466
+ 25.600 24.900
+ -21136006.075 7 -16469603.308 7 20474850.031 20474847.958 20474849.491
+ 47.600 43.300
+ -14479102.352 7 -11282404.163 6 21565895.690 21565893.102 21565894.843
+ 43.600 39.000
+ 06 1 1 2 34 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -334374.483 3 -260551.424 3 24526557.859 24526555.770 24526556.849
+ 22.600 22.600
+ -4064569.837 4 -3167185.999 3 24035053.854 24035053.863 24035053.297
+ 24.900 22.100
+ -6517776.367 4 -5078784.684 4 23431823.475 23431822.762 23431823.135
+ 28.100 24.900
+ -2104478.359 4 -1639831.342 3 24113705.219 24113704.219 24113704.481
+ 24.600 22.100
+ -18635072.320 7 -14520833.098 7 21035404.680 21035402.781 21035403.582
+ 45.300 42.300
+ -11774629.728 7 -9175034.559 6 21438620.299 21438617.200 21438619.331
+ 45.600 40.300
+ -24878809.612 7 -19386077.938 7 20163841.028 20163837.673 20163840.064
+ 43.400 47.800
+ -3001534.838 4 -2338857.697 3 24147239.737 24147236.119 24147239.173
+ 25.600 23.400
+ -21021169.612 7 -16380120.322 7 20496702.486 20496700.554 20496701.969
+ 47.200 43.000
+ -14334525.477 7 -11169746.845 6 21593407.582 21593405.064 21593406.916
+ 44.000 38.400
+ 06 1 1 2 35 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -418330.889 3 -325971.983 3 24510581.018 24510579.253 24510580.207
+ 23.800 23.000
+ -3869636.479 4 -3015289.956 3 24072149.142 24072147.917 24072148.379
+ 27.400 18.600
+ -6743708.078 4 -5254835.242 4 23388828.926 23388829.147 23388829.588
+ 27.400 26.500
+ -1923324.419 4 -1498672.455 3 24148177.891 24148175.678 24148176.162
+ 25.300 20.500
+ -18774352.053 7 -14629362.748 7 21008900.377 21008898.805 21008899.327
+ 45.400 42.500
+ -11886211.584 7 -9261981.454 6 21417386.697 21417383.604 21417385.798
+ 45.600 40.100
+ -24911182.680 7 -19411303.694 7 20157680.646 20157677.248 20157679.685
+ 43.000 47.800
+ -3173909.481 4 -2473175.527 4 24114437.867 24114434.083 24114437.241
+ 25.300 24.200
+ -20904291.339 7 -16289046.326 7 20518943.638 20518941.715 20518943.156
+ 47.200 42.900
+ -14188698.266 7 -11056115.237 6 21621157.738 21621155.179 21621156.969
+ 43.500 38.300
+ 06 1 1 2 36 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -500247.379 3 -389802.965 3 24494992.573 24494991.174 24494991.516
+ 22.600 21.600
+ -3674410.997 4 -2863166.218 1 24109299.022 24109297.312 24109298.300
+ 24.600 9.000
+ -6968998.471 4 -5430386.080 4 23345960.335 23345958.144 23345958.804
+ 29.200 28.400
+ -1741940.967 4 -1357334.737 3 24182694.113 24182692.303 24182692.767
+ 26.200 20.500
+ -18912017.591 7 -14736634.571 7 20982703.428 20982701.773 20982702.336
+ 45.300 42.300
+ -11996894.098 7 -9348227.567 6 21396324.577 21396321.509 21396323.661
+ 45.600 40.100
+ -24941379.164 7 -19434833.413 7 20151934.401 20151930.996 20151933.419
+ 43.000 47.700
+ -3345988.149 4 -2607262.762 3 24081692.302 24081688.202 24081691.494
+ 28.600 23.400
+ -20785391.874 7 -16196397.370 7 20541569.681 20541567.411 20541569.109
+ 47.100 42.700
+ -14041639.449 7 -10941523.944 6 21649141.824 21649139.577 21649141.146
+ 43.200 38.400
+ 06 1 1 2 37 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -580114.588 3 -452037.144 4 24479794.806 24479793.026 24479793.621
+ 21.100 26.500
+ -3478916.455 3 -2710832.892 2 24146499.216 24146499.758 24146498.750
+ 20.500 16.100
+ -7193620.083 4 -5605415.801 3 23303215.385 23303213.402 23303213.788
+ 27.900 23.800
+ -1560332.355 4 -1215821.528 3 24217252.122 24217251.305 24217251.461
+ 25.300 18.600
+ -19048048.924 7 -14842632.999 7 20956817.642 20956815.937 20956816.540
+ 45.500 42.600
+ -12106672.512 7 -9433769.181 6 21375434.422 21375431.415 21375433.559
+ 45.800 40.300
+ -24969389.085 7 -19456659.325 7 20146604.502 20146600.995 20146603.472
+ 43.200 47.900
+ -3517767.194 4 -2741116.552 2 24049003.618 24048999.180 24049003.227
+ 27.400 17.800
+ -20664492.245 7 -16102189.855 7 20564575.924 20564573.773 20564575.386
+ 47.000 42.400
+ -13893367.532 7 -10825987.378 6 21677357.136 21677354.679 21677356.346
+ 42.900 37.900
+ 06 1 1 2 38 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -657922.619 4 -512666.755 3 24464988.308 24464986.286 24464987.449
+ 24.900 23.400
+ -3283175.710 2 -2558307.687 2 24183748.695 24183748.432 24183748.305
+ 17.800 12.600
+ -7417545.727 4 -5779903.244 4 23260602.766 23260601.238 23260602.450
+ 29.500 24.200
+ -1378503.314 4 -1074136.584 2 24251854.127 24251851.637 24251853.106
+ 27.600 13.900
+ -19182426.088 7 -14947342.467 7 20931246.376 20931244.709 20931245.291
+ 45.400 42.300
+ -12215541.600 7 -9518602.228 6 21354717.364 21354714.450 21354716.411
+ 45.700 40.700
+ -24995203.582 7 -19476774.514 7 20141692.241 20141688.602 20141691.146
+ 43.100 47.900
+ -3689242.848 4 -2874733.923 3 24016373.426 24016368.795 24016372.735
+ 27.900 21.600
+ -20541613.000 7 -16006439.772 7 20587959.149 20587956.950 20587958.608
+ 47.300 42.200
+ -13743900.603 7 -10709519.637 6 21705799.775 21705797.200 21705799.048
+ 43.100 37.400
+ 06 1 1 2 39 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -733662.469 4 -571684.797 3 24450575.983 24450573.358 24450574.942
+ 27.400 23.000
+ -3087211.536 3 -2405608.495 2 24221040.059 24221039.256 24221039.315
+ 19.900 15.100
+ -7640748.899 4 -5953827.701 4 23218128.726 23218127.671 23218128.239
+ 29.000 25.900
+ -1196457.886 4 -932283.016 3 24286495.044 24286494.997 24286494.066
+ 24.600 20.500
+ -19315129.702 7 -15050747.860 7 20905993.712 20905992.030 20905992.718
+ 45.500 42.600
+ -12323495.658 7 -9602722.262 6 21334174.348 21334171.385 21334173.470
+ 45.800 41.000
+ -25018811.867 7 -19495170.573 8 20137199.608 20137196.154 20137198.629
+ 42.800 48.000
+ -3860410.938 4 -3008111.622 4 23983800.431 23983796.891 23983799.933
+ 26.500 24.600
+ -20416775.374 7 -15909163.682 7 20611714.986 20611712.877 20611714.440
+ 47.300 42.600
+ -13593257.086 7 -10592135.062 6 21734466.324 21734463.664 21734465.626
+ 43.000 37.200
+ 06 1 1 2 40 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -807325.853 4 -629084.813 3 24436557.880 24436555.662 24436556.768
+ 24.200 19.300
+ -2891046.807 3 -2252752.899 3 24258368.649 24258367.710 24258367.869
+ 23.400 20.500
+ -7863201.546 4 -6127167.318 4 23175798.770 23175796.311 23175796.868
+ 28.600 26.200
+ -1014200.234 4 -790264.112 2 24321178.409 24321177.326 24321177.412
+ 24.900 17.800
+ -19446140.091 7 -15152833.866 7 20881063.436 20881061.592 20881062.354
+ 45.800 43.000
+ -12430530.020 7 -9686125.650 6 21313806.512 21313803.531 21313805.592
+ 45.900 41.400
+ -25040205.191 7 -19511840.690 7 20133128.684 20133125.100 20133127.545
+ 42.600 47.900
+ -4031268.159 4 -3141247.052 4 23951287.821 23951283.982 23951287.302
+ 27.900 26.200
+ -20290000.680 7 -15810378.193 7 20635839.476 20635837.197 20635838.882
+ 47.200 42.300
+ -13441455.255 7 -10473847.915 6 21763353.209 21763350.743 21763352.626
+ 42.800 37.200
+ 06 1 1 2 41 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -878903.635 3 -684859.633 3 24422936.762 24422934.727 24422935.722
+ 22.600 19.300
+ -2694704.204 3 -2099758.739 3 24295731.293 24295730.270 24295730.421
+ 23.800 18.600
+ -8084876.797 4 -6299901.181 4 23133613.966 23133613.068 23133613.131
+ 29.500 26.800
+ -831734.435 4 -648083.023 2 24355900.273 24355898.211 24355899.124
+ 24.200 17.800
+ -19575437.620 7 -15253585.175 7 20856459.089 20856457.083 20856457.976
+ 46.100 43.100
+ -12536639.318 7 -9768808.216 6 21293614.509 21293611.473 21293613.553
+ 45.800 41.100
+ -25059375.278 7 -19526778.415 8 20129480.737 20129477.167 20129479.602
+ 42.400 48.000
+ -4201809.945 4 -3274136.745 4 23918835.247 23918830.865 23918834.606
+ 29.200 25.900
+ -20161310.113 7 -15710099.812 6 20660328.567 20660326.226 20660327.880
+ 47.100 41.800
+ -13288513.229 7 -10354672.303 6 21792457.548 21792454.638 21792456.624
+ 42.700 37.300
+ 06 1 1 2 42 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -948388.858 2 -739003.995 2 24409713.440 24409712.370 24409712.536
+ 17.800 13.900
+ -2498206.190 3 -1946643.559 3 24333124.099 24333123.438 24333122.865
+ 22.100 18.600
+ -8305746.878 5 -6472007.603 4 23091583.849 23091582.716 23091583.125
+ 31.300 27.400
+ -649064.436 3 -505742.763 2 24390662.272 24390659.217 24390660.593
+ 23.800 15.100
+ -19703003.083 7 -15352986.819 7 20832184.061 20832182.042 20832182.935
+ 45.900 43.000
+ -12641818.442 7 -9850765.961 6 21273599.626 21273596.501 21273598.747
+ 46.100 41.400
+ -25076313.718 7 -19539977.192 7 20126257.353 20126253.838 20126256.223
+ 42.300 47.900
+ -4372032.695 4 -3406777.829 4 23886442.879 23886438.558 23886442.007
+ 28.600 25.300
+ -20030724.963 7 -15608345.133 6 20685177.743 20685175.738 20685177.207
+ 46.700 41.500
+ -13134449.671 7 -10234622.769 6 21821774.617 21821771.942 21821773.760
+ 42.700 36.900
+ 06 1 1 2 43 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1015772.916 3 -791510.996 2 24396891.495 24396889.624 24396890.599
+ 20.500 13.900
+ -2301575.649 3 -1793424.987 2 24370542.515 24370540.481 24370541.537
+ 22.600 15.100
+ -8525784.555 5 -6643465.440 4 23049712.504 23049710.346 23049711.248
+ 30.400 26.800
+ -466194.501 4 -363246.773 3 24425460.803 24425459.192 24425459.702
+ 24.600 19.300
+ -19828817.093 7 -15451023.690 7 20808242.481 20808240.454 20808241.381
+ 46.100 43.200
+ -12746061.849 7 -9931994.577 6 21253762.536 21253759.590 21253761.746
+ 46.300 41.500
+ -25091011.386 7 -19551429.917 7 20123460.233 20123457.005 20123459.222
+ 42.200 47.900
+ -4541932.263 4 -3539167.069 4 23854111.549 23854107.778 23854110.993
+ 26.800 25.300
+ -19898266.888 7 -15505131.028 6 20710383.835 20710381.674 20710383.222
+ 46.600 41.400
+ -12979282.352 7 -10113713.168 6 21851301.606 21851299.228 21851301.005
+ 42.200 36.500
+ 06 1 1 2 44 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1081048.436 3 -842375.014 2 24384469.940 24384468.203 24384468.861
+ 21.600 17.000
+ -2104834.872 2 -1640120.639 2 24407978.972 24407978.829 24407978.122
+ 17.800 17.000
+ -8744962.299 4 -6814253.185 4 23008003.265 23008002.387 23008002.951
+ 29.900 27.100
+ -283128.880 3 -220598.347 3 24460295.208 24460295.227 24460294.220
+ 19.900 19.300
+ -19952859.838 7 -15547680.349 7 20784637.813 20784635.789 20784636.747
+ 46.200 43.200
+ -12849364.085 7 -10012489.810 6 21234104.898 21234101.872 21234103.969
+ 46.100 41.800
+ -25103461.100 7 -19561130.988 8 20121091.008 20121087.922 20121090.053
+ 42.300 48.000
+ -4711504.303 4 -3671301.117 3 23821843.232 23821839.037 23821842.487
+ 27.900 23.400
+ -19763957.381 7 -15400474.257 6 20735941.924 20735939.965 20735941.453
+ 46.800 41.300
+ -12823029.709 7 -9991957.855 6 21881035.555 21881033.179 21881034.870
+ 42.100 36.600
+ 06 1 1 2 45 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1144208.704 3 -891590.843 9 24372451.318 24372448.984 24372450.296
+ 22.100 -3.000
+ -1908006.340 3 -1486747.874 1 24445434.458 24445434.593 24445433.970
+ 19.900 6.500
+ -8963251.955 4 -6984348.932 4 22966465.681 22966463.223 22966463.999
+ 29.900 28.100
+ -99871.572 3 -77800.512 3 24495170.934 24495167.722 24495169.273
+ 22.600 19.300
+ -20075112.628 7 -15642942.238 7 20761373.820 20761371.955 20761372.640
+ 45.900 43.300
+ -12951719.712 7 -10092247.427 6 21214627.172 21214624.192 21214626.311
+ 46.100 41.800
+ -25113653.883 7 -19569073.412 7 20119151.864 20119148.273 20119150.812
+ 42.500 47.900
+ -4880745.007 4 -3803176.966 4 23789637.630 23789633.702 23789636.915
+ 29.700 27.100
+ -19627818.053 7 -15294391.649 6 20761848.338 20761846.415 20761847.904
+ 46.800 41.200
+ -12665709.579 6 -9869370.735 6 21910972.586 21910970.222 21910971.870
+ 41.800 36.200
+ 06 1 1 2 46 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1205246.664 4 -939152.885 1 24360835.724 24360833.358 24360834.836
+ 25.900 11.000
+ -1711112.495 3 -1333324.111 1 24482903.059 24482902.499 24482901.989
+ 19.300 6.500
+ -9180625.645 5 -7153730.960 4 22925100.248 22925098.036 22925099.133
+ 31.600 27.600
+ 83573.075 3 65143.292 3 24530076.895 24530076.700 24530076.842
+ 22.600 18.600
+ -20195556.175 7 -15736794.315 7 20738454.073 20738452.298 20738452.991
+ 46.100 43.600
+ -13053122.863 7 -10171262.855 7 21195330.914 21195327.906 21195329.961
+ 46.200 42.000
+ -25121583.322 7 -19575252.198 7 20117642.816 20117639.333 20117641.807
+ 42.500 47.900
+ -5049650.114 4 -3934791.317 4 23757496.634 23757492.145 23757495.657
+ 29.700 27.100
+ -19489871.040 7 -15186900.452 6 20788098.934 20788096.787 20788098.458
+ 46.900 41.100
+ -12507340.116 6 -9745965.954 6 21941109.285 21941106.894 21941108.595
+ 41.500 36.200
+ 06 1 1 2 47 0.0000000 0 10G03G06G09G10G15G18G21G22G26G29
+ -1264155.952 4 -985056.246 2 24349625.474 24349623.138 24349624.439
+ 24.600 12.600
+ -1514175.570 3 -1179866.962 1 24520378.578 24520378.274 24520377.023
+ 18.600 9.000
+ -9397057.069 5 -7322378.705 4 22883912.981 22883912.687 22883913.047
+ 32.000 27.400
+ 267201.415 3 208230.296 1 24565020.898 24565019.014 24565019.733
+ 22.100 9.000
+ -20314171.562 7 -15829221.869 7 20715882.335 20715880.534 20715881.212
+ 46.200 43.600
+ -13153569.086 7 -10249532.618 7 21176216.612 21176213.482 21176215.684
+ 46.100 42.000
+ -25127241.697 7 -19579661.319 7 20116566.040 20116562.578 20116565.027
+ 42.300 47.700
+ -5218215.546 5 -4066140.999 4 23725419.251 23725415.250 23725418.649
+ 31.000 28.600
+ -19350137.865 7 -15078017.442 6 20814689.237 20814687.029 20814688.700
+ 46.500 41.000
+ -12347939.347 6 -9621757.560 6 21971442.073 21971439.848 21971441.342
+ 41.300 36.000
+ 06 1 1 2 48 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1320931.053 4 -1029296.605 2 24338821.642 24338819.568 24338820.655
+ 26.200 16.100
+ -9612518.954 5 -7490271.000 4 22842913.016 22842911.583 22842911.955
+ 31.300 29.000
+ 451009.764 4 351457.458 2 24599998.947 24599996.847 24599997.971
+ 24.200 13.900
+ -20430939.918 7 -15920210.183 7 20693662.274 20693660.251 20693661.202
+ 46.600 43.900
+ -13253052.198 7 -10327051.922 7 21157285.586 21157282.552 21157284.660
+ 46.200 42.400
+ -25130623.152 7 -19582296.218 7 20115922.656 20115919.058 20115921.662
+ 42.400 47.600
+ -5386436.974 4 -4197222.633 4 23693407.511 23693403.304 23693406.831
+ 28.600 24.900
+ -19208640.556 7 -14967759.789 6 20841615.263 20841613.116 20841614.651
+ 46.100 40.600
+ -12187525.199 6 -9496759.523 5 22001967.939 22001965.516 22001967.271
+ 41.300 35.600
+ 06 1 1 2 49 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1375565.507 4 -1071868.885 3 24328425.427 24328423.299 24328424.637
+ 26.500 19.900
+ -9826983.025 5 -7657385.850 4 22802102.087 22802100.040 22802101.337
+ 33.400 27.900
+ 634993.865 4 494821.713 2 24635010.402 24635008.352 24635008.774
+ 25.600 12.600
+ -20545842.732 7 -16009744.827 7 20671796.793 20671794.979 20671795.742
+ 46.600 44.200
+ -13351565.979 7 -10403815.893 7 21138539.141 21138535.948 21138538.182
+ 46.300 42.400
+ -25131721.766 7 -19583152.282 7 20115713.495 20115710.048 20115712.450
+ 42.500 47.600
+ -5554309.961 4 -4328032.741 4 23661462.199 23661458.284 23661461.730
+ 28.600 25.600
+ -19065401.070 7 -14856144.594 6 20868872.826 20868870.599 20868872.264
+ 46.000 40.300
+ -12026115.635 6 -9370985.837 5 22032683.127 22032680.948 22032682.524
+ 41.000 35.700
+ 06 1 1 2 50 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1428054.844 4 -1112769.665 4 24318437.073 24318435.111 24318436.220
+ 25.900 25.900
+ -10040421.045 5 -7823701.126 4 22761486.243 22761484.381 22761485.145
+ 32.100 29.500
+ 819150.303 2 638320.147 1 24670054.043 24670052.218 24670053.033
+ 17.800 11.000
+ -20658861.160 7 -16097811.118 7 20650290.363 20650288.180 20650289.222
+ 46.800 44.000
+ -13449105.741 7 -10479820.882 7 21119977.947 21119974.814 21119976.985
+ 46.100 42.700
+ -25130530.893 7 -19582224.328 7 20115940.096 20115936.591 20115939.159
+ 42.500 47.600
+ -5721830.149 5 -4458567.949 4 23629584.288 23629580.082 23629583.759
+ 31.500 27.600
+ -18920441.480 7 -14743189.064 6 20896457.780 20896455.581 20896457.209
+ 46.100 40.600
+ -11863727.895 6 -9244449.943 5 22063585.147 22063582.301 22063584.084
+ 40.800 35.700
+ 06 1 1 2 51 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1478393.794 4 -1151994.755 4 24308857.827 24308855.828 24308857.046
+ 27.600 25.600
+ -10252805.721 5 -7989195.564 5 22721069.749 22721068.718 22721069.454
+ 32.100 30.600
+ 1003475.123 3 781949.834 2 24705129.810 24705128.649 24705128.502
+ 20.500 15.100
+ -20769976.831 7 -16184394.748 7 20629145.696 20629143.588 20629144.589
+ 46.800 44.200
+ -13545665.961 7 -10555062.588 7 21101603.086 21101599.908 21101602.183
+ 46.400 42.700
+ -25127044.108 7 -19579507.350 7 20116603.336 20116600.277 20116602.456
+ 42.300 47.600
+ -5888993.269 5 -4588824.904 4 23597774.769 23597770.563 23597774.149
+ 31.500 28.100
+ -18773783.792 7 -14628910.345 6 20924365.755 20924363.503 20924365.234
+ 46.200 40.200
+ -11700380.357 6 -9117166.142 5 22094668.495 22094666.274 22094667.902
+ 40.500 34.900
+ 06 1 1 2 52 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1526576.838 4 -1189540.014 4 24299689.008 24299686.860 24299688.118
+ 29.000 25.900
+ -10464109.503 5 -8153847.784 4 22680861.219 22680858.833 22680859.796
+ 33.500 28.800
+ 1187964.257 3 925707.518 1 24740236.841 24740235.434 24740235.844
+ 19.300 11.000
+ -20879171.109 7 -16269481.179 7 20608366.222 20608364.600 20608365.198
+ 46.500 44.100
+ -13641240.534 7 -10629536.264 7 21083415.682 21083412.789 21083414.882
+ 46.200 43.000
+ -25121256.464 7 -19574997.499 7 20117704.916 20117701.566 20117703.945
+ 42.400 47.700
+ -6055795.250 5 -4718800.477 4 23566033.499 23566029.097 23566032.884
+ 31.600 28.100
+ -18625450.108 7 -14513325.647 6 20952592.723 20952590.525 20952592.193
+ 46.100 40.000
+ -11536090.521 6 -8989148.084 5 22125932.093 22125929.725 22125931.299
+ 40.300 34.700
+ 06 1 1 2 53 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1572600.270 4 -1225402.374 3 24290930.910 24290928.569 24290929.918
+ 26.200 23.800
+ -10674305.038 5 -8317636.463 4 22640861.534 22640859.501 22640860.909
+ 33.900 28.400
+ 1372614.028 3 1069590.398 3 24775374.918 24775373.562 24775373.723
+ 19.900 20.500
+ -20986426.223 7 -16353056.579 7 20587956.293 20587954.642 20587955.266
+ 46.600 44.300
+ -13735823.206 7 -10703237.040 7 21065417.192 21065414.014 21065416.308
+ 46.300 42.700
+ -25113162.737 7 -19568690.696 7 20119245.210 20119241.738 20119244.184
+ 42.300 47.500
+ -6222231.046 5 -4848490.689 4 23534361.417 23534357.263 23534360.829
+ 30.100 27.400
+ -18475462.639 7 -14396452.294 6 20981134.184 20981132.319 20981133.698
+ 45.700 40.000
+ -11370875.729 6 -8860409.286 5 22157371.703 22157368.882 22157370.717
+ 40.000 34.900
+ 06 1 1 2 54 0.0000000 0 9G03G09G10G15G18G21G22G26G29
+ -1616460.011 3 -1259578.795 4 24282584.856 24282582.626 24282583.633
+ 23.800 26.800
+ -10883364.288 5 -8480539.703 4 22601079.158 22601076.988 22601078.306
+ 34.100 29.900
+ 1557420.881 3 1213595.581 1 24810542.569 24810541.017 24810541.405
+ 21.600 9.000
+ -21091724.023 7 -16435106.804 7 20567918.965 20567916.942 20567917.842
+ 46.500 44.200
+ -13829409.140 7 -10776161.122 7 21047608.251 21047605.372 21047607.372
+ 46.100 43.200
+ -25102758.315 7 -19560583.356 7 20121225.140 20121221.568 20121224.115
+ 42.800 47.400
+ -6388296.407 5 -4977892.265 4 23502760.056 23502756.222 23502759.406
+ 30.200 27.100
+ -18323843.608 7 -14278307.596 6 21009986.578 21009984.515 21009985.991
+ 45.500 40.200
+ -11204753.485 6 -8730963.391 5 22188983.416 22188981.223 22188982.666
+ 40.300 34.900
+ 06 1 1 2 55 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1658152.888 4 -1292066.730 4 24274650.614 24274648.839 24274649.885
+ 24.600 28.600
+ -11091259.862 5 -8642536.197 5 22561516.552 22561515.930 22561516.687
+ 34.100 31.000
+ -21195046.669 7 -16515617.953 7 20548257.294 20548255.372 20548256.206
+ 46.600 44.700
+ -13921991.974 7 -10848303.572 7 21029990.434 21029987.446 21029989.478
+ 46.100 43.400
+ -25090038.839 7 -19550672.076 7 20123645.272 20123642.031 20123644.317
+ 42.600 47.200
+ -6553987.070 5 -5107001.881 4 23471230.305 23471226.495 23471229.735
+ 32.400 29.500
+ -18170615.233 7 -14158908.858 6 21039144.877 21039142.765 21039144.423
+ 45.600 39.600
+ -11037741.490 6 -8600824.174 5 22220764.775 22220762.424 22220764.054
+ 40.300 34.600
+ 06 1 1 2 56 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1697675.546 3 -1322863.591 4 24267129.632 24267127.637 24267128.740
+ 22.600 25.900
+ -11297963.857 5 -8803604.202 4 22522183.343 22522181.163 22522182.178
+ 34.100 29.900
+ -21296376.101 7 -16594575.939 7 20528975.045 20528973.066 20528973.973
+ 47.000 44.700
+ -14013566.675 7 -10919660.471 7 21012564.301 21012561.240 21012563.417
+ 46.100 43.300
+ -25075000.238 7 -19538953.682 7 20126507.155 20126503.606 20126506.110
+ 42.500 47.000
+ -6719297.987 5 -5235815.563 5 23439772.574 23439768.733 23439771.982
+ 32.700 30.400
+ -18015799.605 7 -14038273.306 6 21068605.234 21068603.129 21068604.696
+ 45.200 39.500
+ -10869856.846 6 -8470004.970 5 22252712.400 22252709.961 22252711.400
+ 39.800 34.800
+ 06 1 1 2 57 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1735024.918 3 -1351966.973 3 24260022.220 24260020.309 24260021.325
+ 21.100 23.800
+ -11503448.846 5 -8963722.314 5 22483080.309 22483078.810 22483079.505
+ 35.100 31.100
+ -21395695.318 7 -16671967.537 7 20510075.353 20510073.220 20510074.142
+ 46.700 44.600
+ -14104126.640 7 -10990226.674 7 20995331.452 20995328.293 20995330.472
+ 46.100 43.500
+ -25057638.377 7 -19525424.960 7 20129811.211 20129807.652 20129810.142
+ 42.800 47.100
+ -6884224.772 5 -5364329.921 5 23408388.452 23408384.374 23408387.705
+ 33.000 30.400
+ -17859419.035 7 -13916418.314 6 21098363.349 21098361.310 21098362.908
+ 45.200 39.100
+ -10701116.936 6 -8338519.337 5 22284822.279 22284820.044 22284821.465
+ 39.300 34.700
+ 06 1 1 2 58 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1770198.068 4 -1379374.568 3 24253328.912 24253326.963 24253328.036
+ 24.600 23.800
+ -11707687.593 5 -9122869.326 5 22444214.211 22444213.464 22444214.015
+ 34.800 31.100
+ -21492986.582 7 -16747778.904 7 20491561.116 20491559.357 20491560.041
+ 46.900 44.800
+ -14193665.747 7 -11059997.400 7 20978292.585 20978289.614 20978291.730
+ 46.300 43.800
+ -25037950.344 7 -19510083.635 7 20133557.511 20133554.158 20133556.576
+ 42.900 47.100
+ -7048762.539 5 -5492541.153 5 23377078.044 23377074.009 23377077.397
+ 33.000 30.600
+ -17701495.752 7 -13793361.212 6 21128415.401 21128413.173 21128414.817
+ 44.900 39.000
+ -10531538.976 6 -8206380.684 5 22317091.481 22317089.312 22317090.934
+ 38.800 33.900
+ 06 1 1 2 59 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1803193.639 3 -1405085.442 3 24247050.057 24247048.263 24247049.020
+ 22.100 22.600
+ -11910652.338 5 -9281023.608 5 22405591.376 22405590.196 22405590.810
+ 34.100 30.800
+ -21588233.051 7 -16821996.937 7 20473436.562 20473434.553 20473435.435
+ 47.000 44.700
+ -14282178.745 7 -11128968.566 7 20961449.241 20961446.063 20961448.322
+ 46.300 43.900
+ -25015932.608 7 -19492926.955 7 20137747.280 20137744.067 20137746.335
+ 42.900 47.200
+ -7212906.498 5 -5620445.535 4 23345841.919 23345837.471 23345841.330
+ 32.600 26.500
+ -17542052.009 7 -13669119.340 6 21158756.544 21158754.313 21158755.905
+ 44.700 38.900
+ -10361139.863 6 -8073602.153 5 22349517.312 22349515.604 22349516.836
+ 38.900 34.300
+ 06 1 1 3 0 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1834009.943 3 -1429098.117 3 24241185.986 24241183.870 24241185.280
+ 23.800 23.400
+ -12112315.723 5 -9438163.846 5 22367217.263 22367215.377 22367216.156
+ 35.300 32.400
+ -21681417.529 7 -16894608.214 7 20455704.046 20455702.220 20455702.957
+ 46.800 45.000
+ -14369658.856 7 -11197134.871 7 20944801.991 20944799.309 20944801.131
+ 45.900 44.100
+ -24991583.553 7 -19473953.666 7 20142380.995 20142377.523 20142379.900
+ 43.200 47.100
+ -7376651.718 5 -5748039.232 4 23314682.153 23314677.936 23314681.670
+ 33.500 26.800
+ -17381109.933 7 -13543709.932 6 21189382.835 21189380.745 21189382.249
+ 44.900 38.900
+ -10189936.738 6 -7940197.124 5 22382096.331 22382094.344 22382095.693
+ 39.100 33.100
+ 06 1 1 3 1 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1862644.736 3 -1451410.932 3 24235736.289 24235735.217 24235735.214
+ 19.300 22.100
+ -12312649.721 5 -9594268.227 5 22329094.113 22329092.726 22329093.568
+ 35.300 31.500
+ -21772522.858 7 -16965599.376 7 20438367.255 20438365.340 20438366.175
+ 46.800 44.900
+ -14456100.515 7 -11264491.990 7 20928352.680 20928349.775 20928351.875
+ 45.800 44.200
+ -24964899.547 7 -19453160.934 7 20147458.786 20147455.215 20147457.769
+ 43.200 46.800
+ -7539993.651 5 -5875318.643 5 23283599.453 23283595.667 23283598.809
+ 33.400 31.100
+ -17218691.957 7 -13417150.470 6 21220289.977 21220287.721 21220289.395
+ 45.100 38.500
+ -10017946.533 6 -7806178.773 5 22414824.981 22414822.808 22414824.302
+ 38.500 33.400
+ 06 1 1 3 2 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1889097.130 3 -1472023.226 3 24230703.351 24230701.355 24230702.691
+ 23.800 22.600
+ -12511627.542 6 -9749315.855 5 22291230.402 22291228.584 22291229.519
+ 36.100 32.600
+ -21861533.164 7 -17034958.053 7 20421429.147 20421427.375 20421428.039
+ 47.000 45.400
+ -14541497.588 7 -11331035.135 7 20912102.340 20912099.159 20912101.468
+ 46.100 44.200
+ -24935879.454 7 -19430547.875 7 20152981.156 20152977.432 20152980.124
+ 43.200 46.600
+ -7702927.200 5 -6002279.855 5 23252593.902 23252590.200 23252593.345
+ 33.900 30.800
+ -17054820.095 7 -13289458.101 6 21251473.664 21251471.580 21251473.128
+ 44.600 38.600
+ -9845185.885 6 -7671560.098 5 22447700.409 22447698.131 22447699.750
+ 38.200 33.000
+ 06 1 1 3 3 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1913366.733 3 -1490934.562 4 24226084.317 24226083.180 24226083.575
+ 19.300 24.200
+ -12709220.876 6 -9903284.645 5 22253629.874 22253627.741 22253628.883
+ 36.700 33.200
+ -21948431.653 7 -17102671.155 7 20404893.099 20404891.048 20404891.904
+ 46.800 45.400
+ -14625844.670 7 -11396760.134 7 20896051.518 20896048.560 20896050.702
+ 45.900 44.300
+ -24904521.519 7 -19406113.120 7 20158948.189 20158944.805 20158947.184
+ 43.100 46.600
+ -7865447.187 5 -6128918.774 5 23221667.318 23221663.570 23221666.780
+ 33.400 30.200
+ -16889516.508 7 -13160650.118 6 21282929.790 21282927.669 21282929.233
+ 44.300 38.100
+ -9671671.525 6 -7536354.104 5 22480719.016 22480716.959 22480718.447
+ 38.400 32.700
+ 06 1 1 3 4 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1935452.882 3 -1508144.586 4 24221882.428 24221880.392 24221881.379
+ 23.400 24.900
+ -12905403.651 6 -10056154.306 5 22216297.320 22216295.445 22216296.440
+ 36.800 32.100
+ -22033202.305 7 -17168726.195 7 20388761.627 20388759.796 20388760.557
+ 46.800 45.600
+ -14709135.153 7 -11461661.783 7 20880201.896 20880198.978 20880201.008
+ 46.000 44.700
+ -24870824.136 7 -19379855.419 7 20165360.679 20165357.152 20165359.678
+ 43.400 46.500
+ -8027548.507 5 -6255231.482 5 23190820.735 23190816.743 23190820.295
+ 35.200 30.600
+ -16722803.636 7 -13030743.985 6 21314654.313 21314652.074 21314653.748
+ 44.000 37.600
+ -9497420.118 6 -7400573.783 5 22513878.455 22513875.731 22513877.503
+ 37.700 32.600
+ 06 1 1 3 5 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1955355.818 4 -1523653.349 3 24218094.785 24218092.725 24218093.971
+ 24.200 22.100
+ -13100148.675 6 -10207903.638 5 22179238.292 22179236.834 22179237.474
+ 36.800 33.000
+ -22115828.916 7 -17233110.554 7 20373038.173 20373036.457 20373037.054
+ 46.700 45.600
+ -14791361.985 7 -11525734.623 7 20864554.563 20864551.595 20864553.712
+ 45.900 44.600
+ -24834786.701 7 -19351774.301 7 20172218.546 20172214.936 20172217.433
+ 43.300 46.400
+ -8189226.887 5 -6381214.615 5 23160054.439 23160050.287 23160053.720
+ 33.900 30.800
+ -16554703.457 7 -12899756.834 6 21346642.745 21346640.412 21346642.172
+ 44.100 37.300
+ -9322447.912 6 -7264231.817 5 22547174.020 22547171.741 22547173.404
+ 37.800 31.800
+ 06 1 1 3 6 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1973075.562 4 -1537460.977 4 24214722.344 24214721.090 24214721.557
+ 24.200 24.600
+ -13293428.687 6 -10358511.425 5 22142458.084 22142456.178 22142457.536
+ 36.500 31.600
+ -22196295.541 7 -17295811.805 7 20357725.939 20357724.150 20357724.877
+ 46.700 45.600
+ -14872519.644 7 -11588974.339 7 20849110.905 20849107.925 20849109.948
+ 45.800 45.000
+ -24796408.233 7 -19321869.005 7 20179521.436 20179518.118 20179520.431
+ 43.300 46.300
+ -8350475.713 5 -6506863.020 5 23129369.633 23129365.491 23129369.168
+ 34.600 30.800
+ -16385237.939 7 -12767705.781 6 21378890.689 21378888.699 21378890.245
+ 43.800 37.300
+ -9146771.458 6 -7127341.070 5 22580603.979 22580601.923 22580603.436
+ 37.200 32.000
+ 06 1 1 3 7 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1988613.576 3 -1549568.537 4 24211765.267 24211764.214 24211764.217
+ 21.600 24.600
+ -13485216.390 6 -10507956.365 5 22105961.992 22105960.786 22105961.584
+ 36.900 33.200
+ -22274586.954 7 -17356818.097 7 20342827.660 20342825.659 20342826.479
+ 46.800 45.500
+ -14952601.446 7 -11651375.711 7 20833872.107 20833868.781 20833871.036
+ 45.800 45.000
+ -24755689.447 7 -19290140.081 7 20187269.891 20187266.602 20187268.922
+ 43.400 46.100
+ -8511290.961 5 -6632173.576 5 23098768.240 23098763.564 23098767.545
+ 35.900 30.600
+ -16214429.267 7 -12634608.118 6 21411394.947 21411392.580 21411394.350
+ 43.900 37.200
+ -8970407.211 6 -6989914.382 5 22614165.267 22614163.119 22614164.632
+ 37.200 32.000
+ 06 1 1 3 8 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2001970.630 2 -1559976.640 3 24209223.360 24209222.590 24209222.677
+ 17.800 23.800
+ -13675484.833 6 -10656217.446 5 22069756.393 22069753.820 22069755.045
+ 37.500 33.800
+ -22350688.145 7 -17416117.718 7 20328346.172 20328344.113 20328345.084
+ 46.900 45.600
+ -15031602.193 7 -11712934.707 7 20818838.351 20818835.382 20818837.529
+ 45.700 45.100
+ -24712629.672 7 -19256587.019 7 20195463.858 20195460.606 20195462.921
+ 43.100 45.900
+ -8671666.707 5 -6757141.688 5 23068248.969 23068245.090 23068248.413
+ 35.800 31.600
+ -16042299.168 7 -12500480.767 6 21444149.977 21444147.874 21444149.497
+ 43.600 37.100
+ -8793371.205 6 -6851964.254 5 22647854.685 22647851.742 22647853.849
+ 37.200 31.600
+ 06 1 1 3 9 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2013148.321 3 -1568686.541 3 24207097.698 24207095.174 24207096.561
+ 22.600 22.600
+ -13864206.195 6 -10803273.027 5 22033843.470 22033841.227 22033842.043
+ 36.800 33.500
+ -22424584.528 7 -17473699.313 7 20314283.930 20314282.279 20314282.864
+ 46.800 45.800
+ -15109514.664 7 -11773645.685 7 20804011.926 20804009.107 20804011.086
+ 45.700 45.300
+ -24667229.957 7 -19221210.621 7 20204103.121 20204099.781 20204102.135
+ 43.400 45.500
+ -8831597.966 5 -6881763.401 5 23037815.005 23037811.005 23037814.491
+ 34.700 31.600
+ -15868869.810 7 -12365341.009 6 21477152.509 21477150.476 21477152.036
+ 43.500 37.200
+ -8615679.556 6 -6713503.221 5 22681667.745 22681665.553 22681666.972
+ 36.900 31.100
+ 06 1 1 3 10 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2022148.922 4 -1575700.044 3 24205384.304 24205382.036 24205383.145
+ 25.300 18.600
+ -14051354.674 6 -10949102.986 5 21998229.778 21998228.166 21998229.064
+ 38.400 34.800
+ -22496260.823 7 -17529550.952 7 20300644.649 20300642.536 20300643.459
+ 46.800 45.600
+ -15186333.413 7 -11833504.404 7 20789393.938 20789390.914 20789393.046
+ 45.500 45.400
+ -24619491.090 7 -19184011.506 7 20213187.641 20213184.314 20213186.624
+ 43.300 45.500
+ -8991079.580 5 -7006034.768 5 23007466.395 23007462.632 23007465.943
+ 35.200 30.800
+ -15694163.040 7 -12229205.871 6 21510397.972 21510396.004 21510397.578
+ 43.200 36.300
+ -8437348.082 6 -6574543.642 5 22715602.976 22715600.807 22715602.433
+ 36.400 31.100
+ 06 1 1 3 11 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2028974.682 3 -1581018.836 3 24204085.574 24204083.605 24204084.653
+ 23.400 21.100
+ -14236903.876 6 -11093686.759 5 21962920.315 21962919.172 21962919.925
+ 38.400 34.500
+ -22565702.624 7 -17583661.430 7 20287430.066 20287428.145 20287429.069
+ 47.000 45.600
+ -15262051.782 7 -11892505.715 7 20774985.341 20774982.210 20774984.383
+ 45.600 45.600
+ -24569414.425 7 -19144990.722 7 20222716.832 20222713.609 20222715.792
+ 43.400 45.500
+ -9150105.472 5 -7129951.039 5 22977205.013 22977201.271 22977204.443
+ 35.300 32.100
+ -15518200.727 7 -12092092.376 6 21543882.653 21543880.509 21543882.161
+ 42.800 36.400
+ -8258392.697 6 -6435097.880 5 22749657.104 22749654.854 22749656.521
+ 36.100 30.800
+ 06 1 1 3 12 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2033627.470 4 -1584644.369 3 24203200.490 24203198.549 24203199.559
+ 24.200 22.100
+ -14420827.161 6 -11237003.578 5 21927920.656 21927920.046 21927920.406
+ 38.800 35.600
+ -22632895.615 7 -17636019.597 7 20274643.773 20274641.758 20274642.649
+ 47.000 45.800
+ -15336662.923 7 -11950644.253 7 20760787.102 20760784.132 20760786.278
+ 45.600 45.600
+ -24517001.633 7 -19104149.587 7 20232690.735 20232687.277 20232689.745
+ 43.700 45.200
+ -9308670.184 5 -7253507.932 5 22947030.990 22947027.253 22947030.501
+ 35.500 32.800
+ -15341004.542 7 -11954017.429 6 21577601.822 21577599.780 21577601.340
+ 42.600 36.200
+ -8078829.118 5 -6295178.217 5 22783826.840 22783824.421 22783826.069
+ 35.600 30.200
+ 06 1 1 3 13 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2036110.697 3 -1586579.386 3 24202727.175 24202725.737 24202726.244
+ 21.100 21.100
+ -14603097.116 6 -11379032.089 5 21893235.942 21893234.742 21893235.579
+ 38.600 34.000
+ -22697825.946 7 -17686614.648 7 20262287.803 20262285.918 20262286.688
+ 46.600 45.700
+ -15410161.027 7 -12007915.472 7 20746800.764 20746797.919 20746799.979
+ 45.600 45.700
+ -24462254.549 7 -19061489.524 7 20243109.035 20243105.393 20243107.872
+ 43.800 45.000
+ -9466768.576 6 -7376701.448 5 22916946.127 22916942.382 22916945.417
+ 36.000 34.100
+ -15162596.202 7 -11814997.941 6 21611551.862 21611549.616 21611551.266
+ 42.400 36.000
+ -7898673.035 5 -6154796.851 4 22818109.651 22818107.040 22818108.865
+ 35.400 29.500
+ 06 1 1 3 14 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2036427.630 3 -1586826.421 3 24202667.410 24202665.382 24202666.647
+ 23.400 23.000
+ -14783688.785 6 -11519752.872 5 21858871.129 21858869.540 21858870.361
+ 38.900 35.400
+ -22760480.078 7 -17735436.043 7 20250365.011 20250363.259 20250363.945
+ 46.700 45.700
+ -15482539.495 7 -12064314.275 7 20733027.808 20733024.722 20733026.947
+ 45.600 45.900
+ -24405175.720 7 -19017012.517 7 20253970.473 20253967.093 20253969.582
+ 44.000 44.800
+ -9624394.417 6 -7499526.774 5 22886951.032 22886946.792 22886950.410
+ 36.900 32.300
+ -14982997.208 7 -11675050.674 5 21645728.429 21645726.262 21645727.844
+ 42.200 35.900
+ -7717939.779 5 -6013965.752 5 22852501.469 22852499.319 22852501.043
+ 35.400 30.200
+ 06 1 1 3 15 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2034582.342 4 -1585388.566 2 24203018.846 24203015.764 24203017.759
+ 25.300 17.800
+ -14962575.449 6 -11659145.059 5 21824830.616 21824828.398 21824829.429
+ 39.300 35.100
+ -22820844.891 7 -17782473.553 7 20238878.374 20238876.247 20238877.170
+ 46.800 45.900
+ -15553791.673 7 -12119835.437 7 20719469.010 20719465.861 20719468.105
+ 45.400 46.000
+ -24345767.672 7 -18970720.536 7 20265275.407 20265272.190 20265274.577
+ 44.100 44.800
+ -9781542.233 6 -7621979.608 5 22857046.348 22857042.804 22857045.865
+ 36.400 33.000
+ -14802229.201 7 -11534192.487 6 21680127.505 21680125.366 21680126.885
+ 42.000 36.000
+ -7536645.041 5 -5872697.124 5 22887001.268 22886998.990 22887000.338
+ 35.100 30.400
+ 06 1 1 3 16 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2030578.443 3 -1582268.673 3 24203780.497 24203778.639 24203779.327
+ 23.800 21.600
+ -15139731.357 6 -11797188.638 5 21791118.987 21791116.717 21791117.847
+ 39.800 35.600
+ -22878906.978 7 -17827716.726 7 20227829.354 20227827.424 20227828.297
+ 46.900 45.900
+ -15623910.995 7 -12174473.850 7 20706125.440 20706122.631 20706124.619
+ 45.100 46.000
+ -24284033.868 7 -18922616.276 7 20277023.123 20277019.618 20277022.117
+ 44.000 44.500
+ -9938206.197 6 -7744055.410 5 22827234.342 22827230.421 22827233.839
+ 36.500 33.400
+ -14620313.503 6 -11392440.004 5 21714744.875 21714742.811 21714744.241
+ 41.600 35.400
+ -7354803.837 5 -5731002.705 4 22921604.536 22921601.926 22921603.872
+ 34.000 29.700
+ 06 1 1 3 17 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2024420.456 3 -1577470.269 3 24204951.766 24204950.020 24204950.916
+ 19.900 20.500
+ -15315130.447 6 -11933863.222 5 21757740.880 21757739.635 21757740.313
+ 40.000 35.900
+ -22934653.661 7 -17871155.695 7 20217221.184 20217219.021 20217220.028
+ 46.600 45.800
+ -15692891.066 7 -12228224.531 7 20692999.094 20692996.093 20692998.218
+ 45.200 46.100
+ -24219977.285 7 -18872702.059 7 20289212.459 20289209.141 20289211.568
+ 43.800 44.300
+ -10094380.357 6 -7865749.535 5 22797515.277 22797511.593 22797514.755
+ 36.400 34.100
+ -14437271.677 6 -11249810.010 5 21749576.597 21749574.473 21749575.939
+ 41.300 34.900
+ -7172431.318 5 -5588894.243 4 22956308.531 22956306.796 22956307.844
+ 34.100 29.900
+ 06 1 1 3 18 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2016112.845 3 -1570996.859 3 24206533.027 24206531.500 24206532.115
+ 23.000 22.600
+ -15488746.497 6 -12069148.433 6 21724703.051 21724701.296 21724702.191
+ 40.100 36.300
+ -22988072.257 7 -17912780.564 7 20207055.688 20207053.858 20207054.688
+ 46.400 45.800
+ -15760725.320 7 -12281082.381 7 20680090.797 20680087.701 20680089.928
+ 45.200 46.200
+ -24153602.111 7 -18820981.153 7 20301843.363 20301840.028 20301842.357
+ 43.900 44.300
+ -10250058.899 6 -7987057.467 5 22767891.214 22767886.978 22767890.549
+ 38.200 33.800
+ -14253124.885 6 -11106319.007 5 21784618.610 21784616.393 21784617.911
+ 40.800 34.700
+ -6989542.533 5 -5446383.498 4 22991111.081 22991109.320 22991110.664
+ 34.600 29.200
+ 06 1 1 3 19 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -2005661.463 3 -1562852.995 3 24208521.563 24208520.640 24208520.679
+ 22.600 23.400
+ -15660554.787 6 -12203024.993 6 21692009.068 21692007.369 21692008.206
+ 40.300 36.000
+ -23039150.781 7 -17952582.001 7 20197335.663 20197333.804 20197334.594
+ 46.300 45.700
+ -15827407.734 7 -12333042.692 7 20667401.475 20667398.422 20667400.545
+ 45.300 46.400
+ -24084912.593 7 -18767456.863 7 20314914.575 20314911.185 20314913.484
+ 44.100 44.100
+ -10405235.661 6 -8107974.412 5 22738361.959 22738357.772 22738361.331
+ 38.100 33.900
+ -14067894.226 6 -10961983.430 5 21819866.796 21819864.692 21819866.277
+ 41.200 34.800
+ -6806152.430 5 -5303482.140 4 23026008.658 23026007.289 23026008.174
+ 33.600 29.200
+ 06 1 1 3 20 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1993071.578 3 -1553042.714 3 24210917.709 24210915.884 24210916.634
+ 23.000 19.900
+ -15830529.174 6 -12335472.548 6 21659664.319 21659662.449 21659663.249
+ 40.700 36.200
+ -23087877.396 7 -17990550.775 7 20188063.235 20188061.494 20188062.231
+ 46.300 45.800
+ -15892930.862 7 -12384099.635 7 20654932.848 20654929.702 20654931.911
+ 45.300 46.500
+ -24013913.235 7 -18712132.692 7 20328425.571 20328421.968 20328424.434
+ 44.300 44.000
+ -10559905.041 6 -8228495.978 5 22708929.440 22708924.686 22708928.728
+ 37.700 32.700
+ -13881600.721 6 -10816819.664 5 21855317.163 21855315.077 21855316.806
+ 41.300 34.300
+ -6622275.714 5 -5160201.574 4 23060999.641 23060997.595 23060998.799
+ 33.100 28.100
+ 06 1 1 3 21 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1978349.255 3 -1541570.824 3 24213719.536 24213717.606 24213718.496
+ 23.400 21.100
+ -15998644.527 6 -12466471.455 6 21627672.577 21627670.921 21627671.700
+ 41.400 36.000
+ -23134240.250 7 -18026677.660 7 20179240.594 20179239.001 20179239.545
+ 46.100 45.900
+ -15957288.732 7 -12434248.623 7 20642686.092 20642682.819 20642685.199
+ 45.400 46.600
+ -23940609.449 7 -18655012.868 7 20342374.560 20342371.184 20342373.508
+ 44.400 43.700
+ -10714059.759 6 -8348616.532 5 22679594.475 22679590.234 22679593.827
+ 38.100 33.200
+ -13694265.542 6 -10670844.202 5 21890966.064 21890963.807 21890965.513
+ 40.900 34.300
+ -6437926.883 5 -5016553.148 4 23096080.712 23096077.798 23096079.791
+ 33.100 27.400
+ 06 1 1 3 22 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1961500.579 4 -1528442.101 3 24216926.061 24216923.003 24216925.096
+ 25.300 19.300
+ -16164876.297 6 -12596002.651 6 21596039.301 21596037.826 21596038.826
+ 41.900 36.200
+ -23178228.117 7 -18060953.906 7 20170870.304 20170868.368 20170869.246
+ 46.400 45.900
+ -16020474.514 7 -12483484.277 7 20630662.066 20630658.950 20630661.187
+ 45.200 46.600
+ -23865005.625 7 -18596100.803 7 20356761.418 20356758.097 20356760.558
+ 44.800 43.600
+ -10867694.812 6 -8468332.144 5 22650358.652 22650354.645 22650358.078
+ 38.900 34.300
+ -13505909.538 6 -10524073.291 5 21926808.663 21926806.960 21926808.271
+ 40.700 34.500
+ -6253120.454 5 -4872548.136 4 23131247.812 23131245.780 23131247.053
+ 33.100 28.400
+ 06 1 1 3 23 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1942532.109 3 -1513661.533 3 24220535.363 24220533.668 24220534.453
+ 23.400 21.600
+ -16329199.330 7 -12724046.542 6 21564769.896 21564768.274 21564769.299
+ 42.500 36.800
+ -23219830.518 7 -18093371.351 7 20162953.599 20162951.732 20162952.515
+ 46.200 45.900
+ -16082481.697 7 -12531801.558 7 20618862.618 20618859.356 20618861.629
+ 44.900 46.800
+ -23787107.776 7 -18535401.189 7 20371585.252 20371581.597 20371584.130
+ 45.000 43.400
+ -11020803.658 6 -8587637.724 5 22621223.325 22621219.025 22621222.527
+ 38.600 34.900
+ -13316553.343 6 -10376523.012 5 21962842.524 21962840.263 21962841.801
+ 40.000 34.300
+ -6067871.029 5 -4728197.952 4 23166499.500 23166497.485 23166499.050
+ 33.200 27.900
+ 06 1 1 3 24 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1921450.418 3 -1497234.269 3 24224547.338 24224545.106 24224546.368
+ 22.600 19.300
+ -16491589.534 7 -12850584.340 6 21533868.180 21533866.358 21533867.392
+ 42.300 36.900
+ -23259036.887 7 -18123921.763 7 20155492.896 20155490.996 20155491.871
+ 46.400 46.000
+ -16143303.664 7 -12579195.281 7 20607288.495 20607285.249 20607287.599
+ 44.900 46.800
+ -23706922.109 7 -18472918.864 7 20386843.799 20386840.400 20386842.963
+ 45.100 43.300
+ -11173379.517 6 -8706527.992 5 22592188.903 22592184.389 22592188.269
+ 39.100 33.800
+ -13126217.628 6 -10228209.479 5 21999062.003 21999060.049 21999061.500
+ 40.000 34.400
+ -5882192.721 5 -4583513.555 4 23201832.698 23201830.622 23201831.956
+ 32.100 26.200
+ 06 1 1 3 25 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1898263.013 3 -1479166.248 3 24228959.971 24228957.702 24228959.039
+ 23.000 21.600
+ -16652021.968 7 -12975596.595 6 21503339.270 21503337.225 21503338.238
+ 42.500 37.400
+ -23295837.223 7 -18152597.339 7 20148489.743 20148488.064 20148488.704
+ 46.100 46.100
+ -16202933.607 7 -12625660.161 7 20595941.238 20595938.173 20595940.390
+ 44.900 47.100
+ -23624454.749 7 -18408658.593 7 20402537.195 20402533.436 20402535.994
+ 44.900 42.900
+ -11325415.885 6 -8824997.885 5 22563257.085 22563252.748 22563256.545
+ 39.100 34.500
+ -12934922.909 6 -10079148.661 5 22035464.042 22035462.153 22035463.429
+ 39.400 33.500
+ -5696099.620 5 -4438505.957 4 23237245.863 23237242.973 23237244.859
+ 31.000 27.900
+ 06 1 1 3 26 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1872977.992 3 -1459463.729 3 24233771.216 24233769.339 24233770.164
+ 21.600 22.600
+ -16810471.803 7 -13099063.964 6 21473187.413 21473185.021 21473186.275
+ 42.600 37.600
+ -23330221.283 7 -18179390.103 7 20141947.021 20141944.985 20141945.937
+ 46.100 46.100
+ -16261364.586 7 -12671190.781 7 20584822.220 20584818.946 20584821.287
+ 44.600 46.900
+ -23539712.776 7 -18342625.906 7 20418662.826 20418659.363 20418661.842
+ 44.900 42.800
+ -11476906.589 6 -8943042.582 5 22534429.282 22534425.121 22534428.712
+ 38.800 34.700
+ -12742689.650 6 -9929356.518 5 22072044.736 22072042.819 22072044.201
+ 39.400 32.800
+ -5509605.712 5 -4293186.040 4 23272733.814 23272731.954 23272733.341
+ 32.400 26.800
+ 06 1 1 3 27 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1845603.413 3 -1438132.960 3 24238980.307 24238978.505 24238979.491
+ 23.000 22.100
+ -16966916.417 7 -13220968.822 6 21443416.500 21443414.767 21443415.683
+ 42.900 38.100
+ -23362179.297 7 -18204292.449 7 20135865.507 20135863.623 20135864.397
+ 46.100 45.900
+ -16318590.365 7 -12715782.272 7 20573932.360 20573929.301 20573931.513
+ 44.600 47.100
+ -23452702.869 7 -18274825.987 7 20435220.259 20435216.796 20435219.259
+ 45.200 42.600
+ -11627845.018 6 -9060656.913 5 22505707.149 22505702.691 22505706.511
+ 40.100 35.600
+ -12549538.312 6 -9778848.978 5 22108800.201 22108798.260 22108799.772
+ 39.300 32.700
+ -5322724.920 5 -4147564.639 4 23308296.199 23308294.125 23308295.637
+ 32.100 26.500
+ 06 1 1 3 28 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1816147.492 3 -1415180.385 3 24244586.284 24244584.292 24244585.105
+ 23.800 21.600
+ -17121331.278 7 -13341292.044 6 21414032.154 21414030.391 21414031.466
+ 43.000 37.600
+ -23391702.570 7 -18227297.590 7 20130247.317 20130245.502 20130246.227
+ 45.900 46.000
+ -16374604.350 7 -12759429.519 7 20563273.426 20563270.157 20563272.471
+ 44.400 47.300
+ -23363432.720 7 -18205264.855 7 20452208.063 20452204.429 20452206.850
+ 45.200 42.700
+ -11778224.612 6 -9177835.808 5 22477090.445 22477086.164 22477089.880
+ 39.400 35.200
+ -12355488.983 6 -9627641.719 5 22145726.699 22145724.613 22145726.082
+ 39.000 32.600
+ -5135471.160 5 -4001652.618 4 23343929.559 23343927.027 23343928.813
+ 31.600 24.900
+ 06 1 1 3 29 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1784618.291 4 -1390612.226 4 24250585.478 24250584.344 24250584.779
+ 24.900 24.200
+ -17273692.373 7 -13460014.938 6 21385038.840 21385036.995 21385038.214
+ 43.800 37.300
+ -23418782.046 7 -18248398.481 7 20125094.278 20125092.388 20125093.177
+ 46.100 45.800
+ -16429399.365 7 -12802126.912 7 20552846.134 20552842.995 20552845.219
+ 44.100 47.300
+ -23271910.249 7 -18133948.643 7 20469624.088 20469620.469 20469623.061
+ 45.400 42.400
+ -11928038.586 6 -9294573.936 6 22448582.108 22448577.775 22448581.339
+ 39.800 36.300
+ -12160561.608 6 -9475750.257 5 22182820.012 22182817.934 22182819.580
+ 38.600 31.800
+ -4947857.694 5 -3855460.306 4 23379631.135 23379628.842 23379630.507
+ 32.300 25.900
+ 06 1 1 3 30 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1751025.132 3 -1364435.822 3 24256978.639 24256976.809 24256977.601
+ 23.800 23.000
+ -17423976.791 7 -13577119.637 6 21356440.657 21356438.807 21356439.921
+ 44.100 37.400
+ -23443409.234 7 -18267588.498 7 20120408.113 20120405.969 20120406.938
+ 45.800 45.900
+ -16482968.913 7 -12843869.394 7 20542652.206 20542649.061 20542651.246
+ 44.100 47.300
+ -23178143.216 7 -18060883.446 7 20487467.194 20487463.917 20487466.287
+ 45.500 42.300
+ -12077279.683 6 -9410865.662 5 22420182.315 22420177.905 22420181.633
+ 40.400 35.900
+ -11964776.079 6 -9323190.111 5 22220076.733 22220074.842 22220076.102
+ 37.900 32.600
+ -4759898.253 5 -3708998.418 4 23415398.875 23415396.719 23415398.012
+ 30.800 27.100
+ 06 1 1 3 31 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1715377.224 4 -1336658.338 3 24263762.711 24263760.635 24263761.490
+ 25.900 23.800
+ -17572162.042 7 -13692588.651 6 21328242.151 21328240.112 21328241.243
+ 44.000 37.400
+ -23465575.916 7 -18284861.233 7 20116189.658 20116187.841 20116188.542
+ 45.700 45.800
+ -16535306.304 7 -12884651.775 7 20532692.467 20532689.486 20532691.640
+ 43.700 47.500
+ -23082140.497 7 -17986076.140 6 20505736.080 20505732.557 20505734.927
+ 45.200 41.900
+ -12225941.597 6 -9526706.068 6 22391892.626 22391888.752 22391892.106
+ 40.200 36.500
+ -11768152.353 6 -9169976.833 5 22257492.938 22257490.922 22257492.401
+ 38.100 32.300
+ -4571606.153 4 -3562277.315 4 23451229.225 23451227.370 23451228.525
+ 29.700 25.900
+ 06 1 1 3 32 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1677684.542 4 -1307287.483 3 24270935.379 24270933.077 24270934.283
+ 27.600 23.400
+ -17718224.736 7 -13806403.695 6 21300446.841 21300445.157 21300446.434
+ 44.800 37.200
+ -23485274.824 7 -18300211.031 7 20112441.042 20112439.106 20112439.891
+ 45.500 45.600
+ -16586404.704 7 -12924468.704 7 20522968.835 20522965.923 20522968.041
+ 43.800 47.700
+ -22983910.664 7 -17909533.434 6 20524428.115 20524425.006 20524427.343
+ 45.400 41.800
+ -12374016.939 6 -9642089.390 6 22363714.791 22363710.620 22363714.151
+ 40.200 36.000
+ -11570709.936 6 -9016125.601 5 22295065.526 22295063.205 22295064.856
+ 37.700 32.100
+ -4382994.490 4 -3415307.204 3 23487120.379 23487118.446 23487119.947
+ 29.900 23.800
+ 06 1 1 3 33 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1637957.365 4 -1276331.348 3 24278494.532 24278493.319 24278493.478
+ 25.300 23.400
+ -17862142.111 7 -13918547.066 6 21273060.466 21273058.606 21273059.667
+ 44.400 37.400
+ -23502498.869 7 -18313632.361 7 20109163.534 20109161.429 20109162.480
+ 45.700 45.600
+ -16636257.268 7 -12963314.845 7 20513482.408 20513479.282 20513481.409
+ 43.700 47.800
+ -22883462.530 7 -17831262.173 6 20543543.328 20543539.603 20543542.223
+ 45.500 41.200
+ -12521499.093 6 -9757010.502 6 22335649.986 22335645.768 22335649.279
+ 40.400 36.300
+ -11372468.496 6 -8861651.753 5 22332789.135 22332787.327 22332788.552
+ 37.300 31.800
+ -4194076.177 5 -3268098.099 3 23523071.058 23523068.474 23523070.377
+ 31.500 22.600
+ 06 1 1 3 34 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1596205.676 4 -1243797.662 3 24286440.063 24286438.182 24286439.185
+ 26.800 22.100
+ -18003892.356 7 -14029001.774 6 21246086.642 21246084.302 21246085.689
+ 44.700 37.400
+ -23517240.810 7 -18325119.581 7 20106358.292 20106356.341 20106357.209
+ 45.800 46.000
+ -16684857.627 7 -13001185.252 8 20504233.945 20504230.924 20504233.097
+ 43.800 48.000
+ -22780806.380 7 -17751270.394 6 20563077.767 20563074.502 20563076.903
+ 45.400 41.200
+ -12668381.030 6 -9871463.903 6 22307699.354 22307695.139 22307698.772
+ 41.400 36.800
+ -11173447.314 6 -8706570.312 5 22370662.044 22370659.745 22370661.468
+ 37.700 31.000
+ -4004864.387 4 -3120660.360 4 23559076.371 23559074.511 23559075.509
+ 29.000 24.600
+ 06 1 1 3 35 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -1552439.957 4 -1209694.539 4 24294768.557 24294767.122 24294767.641
+ 28.400 24.900
+ -18143453.388 7 -14137750.591 6 21219528.655 21219526.882 21219527.916
+ 44.900 38.100
+ -23529493.877 7 -18334667.424 7 20104026.738 20104024.768 20104025.550
+ 45.600 46.100
+ -16732198.547 7 -13038074.277 7 20495225.252 20495222.239 20495224.378
+ 43.400 47.900
+ -22675951.465 7 -17669565.272 6 20583031.448 20583027.758 20583030.322
+ 45.500 41.200
+ -12814654.622 6 -9985443.270 6 22279864.607 22279860.091 22279863.961
+ 41.500 37.000
+ -10973665.864 6 -8550896.465 5 22408679.087 22408676.853 22408678.506
+ 37.400 31.000
+ -3815371.801 4 -2973003.810 3 23595136.163 23595133.235 23595135.196
+ 29.700 23.000
+ 06 1 1 3 36 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1506671.463 4 -1174030.864 3 24303477.313 24303475.879 24303476.114
+ 25.300 21.100
+ -18280803.621 7 -14244776.704 6 21193391.864 21193389.886 21193391.019
+ 44.800 38.000
+ -315454.536 3 -245808.574 2 24648329.984 24648327.872 24648328.674
+ 21.100 12.600
+ -23539251.453 7 -18342270.722 7 20102169.599 20102167.920 20102168.568
+ 45.900 45.900
+ -16778273.936 7 -13073977.177 8 20486457.516 20486454.382 20486456.493
+ 43.300 48.100
+ -22568908.334 7 -17586155.057 6 20603400.824 20603397.416 20603399.910
+ 45.600 40.900
+ -12960313.743 6 -10098943.827 6 22252145.903 22252142.113 22252145.375
+ 41.000 37.400
+ -10773143.198 6 -8394645.045 5 22446837.417 22446834.844 22446836.813
+ 37.400 30.200
+ -3625611.052 4 -2825138.289 3 23631246.522 23631243.573 23631245.625
+ 28.800 23.000
+ 06 1 1 3 37 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1458911.333 4 -1136815.241 2 24312566.327 24312564.074 24312565.454
+ 24.200 15.100
+ -18415921.671 7 -14350063.460 6 21167679.623 21167677.774 21167679.104
+ 45.200 38.100
+ -516157.888 3 -402200.737 2 24610137.717 24610134.930 24610136.401
+ 20.500 17.000
+ -23546508.366 7 -18347925.452 7 20100788.731 20100786.911 20100787.675
+ 45.700 46.000
+ -16823076.620 7 -13108888.360 8 20477931.625 20477928.784 20477930.788
+ 43.500 48.200
+ -22459687.049 7 -17501047.575 6 20624184.952 20624181.662 20624183.900
+ 45.400 40.700
+ -13105350.752 6 -10211959.640 6 22224546.811 22224542.106 22224546.042
+ 41.900 36.400
+ -10571897.997 6 -8237830.601 5 22485133.146 22485130.616 22485132.042
+ 36.100 30.200
+ -3435594.910 4 -2677073.744 4 23667405.373 23667403.329 23667404.607
+ 28.600 25.600
+ 06 1 1 3 38 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1409171.620 3 -1098057.058 3 24322031.704 24322029.759 24322030.534
+ 23.400 20.500
+ -18548786.086 7 -14453594.154 6 21142396.675 21142394.467 21142395.655
+ 45.000 38.700
+ -716343.723 2 -558189.627 2 24572042.708 24572040.674 24572041.714
+ 17.000 17.000
+ -23551259.106 7 -18351627.316 7 20099884.684 20099882.837 20099883.567
+ 45.400 45.900
+ -16866600.242 7 -13142802.871 8 20469649.698 20469646.452 20469648.693
+ 43.300 48.200
+ -22348298.925 7 -17414251.653 6 20645381.748 20645378.072 20645380.563
+ 45.400 40.600
+ -13249757.943 6 -10324484.678 6 22197066.886 22197062.649 22197066.187
+ 41.600 37.300
+ -10369949.251 5 -8080467.943 4 22523562.267 22523560.314 22523561.513
+ 35.900 29.200
+ -3245335.480 4 -2528819.680 4 23703609.644 23703608.419 23703609.037
+ 27.400 24.600
+ 06 1 1 3 39 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1357463.867 4 -1057765.290 3 24331871.182 24331869.764 24331870.403
+ 26.500 19.300
+ -18679375.954 7 -14555352.462 6 21117546.307 21117543.935 21117545.387
+ 45.400 38.900
+ -916003.009 3 -713768.281 1 24534049.452 24534046.830 24534048.381
+ 23.400 11.000
+ -23553498.703 7 -18353372.450 7 20099458.842 20099456.655 20099457.682
+ 45.800 46.000
+ -16908837.490 7 -13175715.013 8 20461611.948 20461608.995 20461611.091
+ 43.200 48.200
+ -22234755.029 7 -17325775.903 6 20666987.666 20666984.781 20666986.960
+ 45.600 40.500
+ -13393527.850 6 -10436513.129 6 22169708.163 22169703.891 22169707.544
+ 41.900 37.700
+ -10167315.578 6 -7922571.582 4 22562122.760 22562120.158 22562121.976
+ 36.100 29.900
+ -3054845.294 4 -2380385.787 4 23739859.934 23739857.672 23739858.909
+ 29.200 24.900
+ 06 1 1 3 40 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1303800.623 4 -1015949.802 2 24342082.961 24342081.320 24342082.072
+ 24.900 15.100
+ -18807671.845 7 -14655323.257 6 21093132.147 21093130.216 21093131.217
+ 45.100 39.200
+ -1115126.847 3 -868929.706 2 24496157.063 24496155.006 24496155.910
+ 21.100 15.100
+ -23553222.642 7 -18353157.334 7 20099511.155 20099509.207 20099510.023
+ 45.700 45.900
+ -16949781.985 7 -13207619.815 8 20453820.546 20453817.516 20453819.683
+ 43.100 48.300
+ -22119066.394 7 -17235628.943 6 20689002.587 20688999.733 20689001.870
+ 45.600 40.600
+ -13536653.203 7 -10548039.339 6 22142472.561 22142467.956 22142471.929
+ 42.100 37.100
+ -9964015.599 5 -7764156.014 4 22600808.686 22600807.031 22600808.496
+ 35.400 29.200
+ -2864135.893 4 -2231781.079 3 23776149.591 23776147.774 23776148.859
+ 28.600 22.600
+ 06 1 1 3 41 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1248194.197 3 -972620.118 2 24352664.634 24352662.632 24352663.463
+ 23.400 13.900
+ -18933652.282 7 -14753489.801 6 21069158.882 21069156.781 21069158.020
+ 44.900 38.900
+ -1313706.495 2 -1023667.027 2 24458368.229 24458366.263 24458367.635
+ 17.000 13.900
+ -23550426.665 7 -18350978.644 7 20100043.137 20100041.172 20100042.037
+ 45.600 45.900
+ -16989427.042 7 -13238512.066 8 20446276.267 20446273.301 20446275.401
+ 42.800 48.400
+ -22001245.452 7 -17143820.441 6 20711423.585 20711420.330 20711422.648
+ 45.900 40.200
+ -13679126.460 7 -10659057.416 6 22115360.493 22115356.268 22115359.901
+ 42.300 37.900
+ -9760067.694 5 -7605235.572 4 22639619.133 22639616.796 22639618.549
+ 35.700 28.800
+ -2673219.823 4 -2083015.285 3 23812479.870 23812477.987 23812479.242
+ 26.800 22.600
+ 06 1 1 3 42 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1190657.200 4 -927786.086 2 24363613.888 24363611.165 24363612.758
+ 24.600 13.900
+ -19057297.606 7 -14849836.777 6 21045629.882 21045627.883 21045629.003
+ 44.400 39.300
+ -1511733.218 3 -1177973.529 9 24420685.215 24420683.546 24420684.499
+ 20.500 -3.000
+ -23545106.958 7 -18346833.416 7 20101055.538 20101053.628 20101054.440
+ 45.600 45.900
+ -17027765.586 7 -13268386.257 8 20438980.747 20438977.737 20438979.866
+ 43.000 48.400
+ -21881303.685 7 -17050359.319 6 20734248.144 20734244.273 20734246.879
+ 45.700 39.800
+ -13820939.629 7 -10769561.145 6 22088374.296 22088369.982 22088373.642
+ 42.200 38.000
+ -9555490.199 5 -7445824.549 4 22678549.083 22678546.678 22678548.538
+ 35.300 29.500
+ -2482108.944 4 -1934097.753 3 23848847.087 23848845.408 23848846.603
+ 27.900 23.000
+ 06 1 1 3 43 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1131203.237 3 -881458.356 3 24374926.326 24374925.456 24374925.771
+ 23.400 19.300
+ -19178588.179 7 -14944348.875 6 21022548.820 21022546.827 21022547.952
+ 44.200 39.100
+ -1709198.726 3 -1331842.719 1 24383108.400 24383107.096 24383107.865
+ 19.300 6.500
+ -23537260.232 7 -18340719.086 7 20102548.522 20102546.810 20102547.469
+ 45.500 45.900
+ -17064791.443 7 -13297237.576 8 20431934.894 20431931.898 20431934.000
+ 42.900 48.500
+ -21759253.576 7 -16955255.362 6 20757473.229 20757469.782 20757472.093
+ 45.500 39.600
+ -13962084.849 7 -10879544.406 6 22061515.116 22061510.914 22061514.662
+ 42.500 38.100
+ -9350301.073 5 -7285936.921 4 22717595.339 22717592.856 22717594.802
+ 35.700 28.400
+ -2290814.656 4 -1785037.270 3 23885249.804 23885246.710 23885249.546
+ 29.200 20.500
+ 06 1 1 3 44 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1069845.528 4 -833647.152 2 24386603.277 24386601.454 24386602.312
+ 25.600 17.000
+ -19297505.458 7 -15037011.668 6 20999919.649 20999917.688 20999918.860
+ 44.800 39.500
+ -1906093.891 2 -1485267.455 1 24345640.838 24345638.857 24345639.979
+ 17.000 11.000
+ -23526883.418 7 -18332633.257 7 20104523.443 20104521.453 20104522.295
+ 45.600 46.000
+ -17100497.583 7 -13325060.538 8 20425140.268 20425137.301 20425139.396
+ 42.600 48.600
+ -21635108.548 7 -16858519.014 6 20781096.933 20781093.880 20781096.162
+ 45.600 39.500
+ -14102554.273 7 -10989001.061 6 22034784.808 22034780.436 22034784.132
+ 42.300 38.300
+ -9144518.340 5 -7125586.742 4 22756754.079 22756752.325 22756753.455
+ 34.300 28.800
+ -2099348.581 4 -1635842.956 3 23921684.156 23921682.390 23921683.545
+ 26.800 20.500
+ 06 1 1 3 45 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -1006597.772 4 -784363.194 2 24398639.158 24398637.209 24398637.873
+ 24.900 17.000
+ -19414030.159 7 -15127810.120 6 20977745.762 20977743.821 20977745.037
+ 45.400 39.500
+ -2102410.719 2 -1638241.556 9 24308282.956 24308281.560 24308282.163
+ 17.800 -3.000
+ -23513973.969 7 -18322573.949 7 20106979.823 20106977.854 20106978.739
+ 45.600 45.500
+ -17134877.417 7 -13351850.019 8 20418598.085 20418595.054 20418597.154
+ 42.700 48.700
+ -21508881.031 7 -16760159.946 6 20805117.353 20805114.115 20805116.567
+ 45.600 39.000
+ -14242339.981 7 -11097924.945 6 22008184.530 22008180.208 22008183.941
+ 42.800 38.400
+ -8938159.455 5 -6964787.616 4 22796022.424 22796020.635 22796022.040
+ 34.000 28.400
+ -1907722.473 4 -1486523.878 3 23958149.436 23958147.344 23958148.897
+ 27.100 22.100
+ 06 1 1 3 46 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -941474.353 4 -733617.691 3 24411031.516 24411029.684 24411030.523
+ 24.900 21.100
+ -19528144.535 7 -15216730.362 6 20956030.897 20956028.567 20956030.023
+ 45.900 39.700
+ -2298140.436 2 -1790758.194 1 24271036.938 24271035.705 24271035.284
+ 13.900 9.000
+ -23498530.012 7 -18310539.698 7 20109918.819 20109916.916 20109917.772
+ 45.600 45.600
+ -17167924.327 7 -13377600.858 8 20412309.600 20412306.360 20412308.584
+ 42.800 48.600
+ -21380584.514 7 -16660188.661 6 20829531.390 20829528.259 20829530.580
+ 45.500 39.000
+ -14381434.243 7 -11206310.046 6 21981715.597 21981711.446 21981715.036
+ 43.100 38.700
+ -8731242.256 5 -6803553.452 4 22835397.442 22835395.783 22835397.291
+ 33.500 26.200
+ -1715947.173 4 -1337088.591 4 23994643.864 23994641.529 23994643.258
+ 27.400 24.200
+ 06 1 1 3 47 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -874489.333 3 -681421.574 3 24423778.307 24423776.546 24423777.315
+ 23.000 19.300
+ -19639830.712 7 -15303758.518 6 20934777.321 20934775.316 20934776.596
+ 45.600 39.700
+ -2493275.003 2 -1942811.039 1 24233904.072 24233902.562 24233902.991
+ 17.000 6.500
+ -23480549.513 7 -18296528.922 7 20113340.358 20113338.442 20113339.214
+ 45.500 45.600
+ -17199631.972 7 -13402308.108 8 20406275.534 20406272.652 20406274.702
+ 42.500 48.700
+ -21250232.444 7 -16558615.650 6 20854337.133 20854333.322 20854335.940
+ 45.400 38.900
+ -14519828.663 7 -11314149.834 6 21955380.038 21955375.653 21955379.445
+ 43.200 38.500
+ -8523784.347 5 -6641897.928 4 22874875.815 22874873.953 22874875.307
+ 34.300 26.500
+ -1524034.269 4 -1187546.089 3 24031163.352 24031161.206 24031162.725
+ 25.300 23.000
+ 06 1 1 3 48 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -805657.120 3 -627786.090 3 24436876.625 24436875.076 24436875.778
+ 23.800 19.900
+ -19749069.639 7 -15388879.734 6 20913989.576 20913987.862 20913989.016
+ 45.700 39.700
+ -2687806.016 2 -2094393.615 9 24196885.524 24196884.254 24196884.905
+ 12.600 -3.000
+ -23460031.220 7 -18280540.641 7 20117244.940 20117243.006 20117243.822
+ 45.600 45.700
+ -17229993.183 7 -13425966.202 8 20400498.138 20400495.070 20400497.260
+ 42.500 48.500
+ -21117838.738 7 -16455451.753 6 20879530.854 20879527.108 20879529.514
+ 45.200 38.900
+ -14657515.404 7 -11421438.182 6 21929179.364 21929174.954 21929178.693
+ 43.700 39.000
+ -8315802.770 5 -6479834.367 4 22914453.113 22914451.670 22914452.641
+ 33.400 27.900
+ -1331994.522 4 -1037904.747 3 24067707.453 24067705.270 24067706.719
+ 28.800 18.600
+ 06 1 1 3 49 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -734992.937 3 -572723.102 2 24450323.040 24450321.529 24450322.026
+ 21.600 16.100
+ -19855844.399 7 -15472080.830 6 20893671.497 20893669.383 20893670.664
+ 45.900 39.800
+ -2881724.747 2 -2245499.131 9 24159984.452 24159982.166 24159982.683
+ 12.600 -3.000
+ -23436974.269 7 -18262574.189 7 20121632.321 20121630.567 20121631.219
+ 45.300 45.500
+ -17259001.686 7 -13448570.227 8 20394977.977 20394974.845 20394977.132
+ 42.800 48.500
+ -20983417.899 7 -16350708.283 6 20905110.078 20905106.567 20905108.928
+ 45.100 38.200
+ -14794485.878 7 -11528168.405 6 21903114.398 21903110.367 21903113.811
+ 43.700 39.500
+ -8107314.850 5 -6317376.266 4 22954127.684 22954125.478 22954127.167
+ 33.000 27.400
+ -1139839.010 4 -888173.153 3 24104273.213 24104271.059 24104272.245
+ 24.900 21.600
+ 06 1 1 3 50 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -662511.472 3 -516244.042 3 24464116.909 24464114.901 24464115.558
+ 21.600 19.900
+ -19960138.408 7 -15553348.865 6 20873824.766 20873822.722 20873824.024
+ 45.500 39.800
+ -3075023.284 2 0.000 24123201.222 0.000 24123200.377
+ 12.600 0.000
+ -23411377.932 7 -18242628.986 7 20126503.026 20126501.249 20126502.006
+ 45.300 45.300
+ -17286651.419 7 -13470115.476 8 20389716.432 20389713.338 20389715.537
+ 42.900 48.600
+ -20846984.185 7 -16244396.330 6 20931072.926 20931069.127 20931071.651
+ 45.100 38.100
+ -14930732.054 7 -11634334.220 6 21877187.784 21877183.313 21877187.160
+ 43.900 38.700
+ -7898337.131 5 -6154536.489 4 22993893.833 22993892.399 22993893.458
+ 32.600 26.200
+ -947578.253 4 -738359.621 3 24140859.702 24140857.272 24140858.863
+ 26.500 20.500
+ 06 1 1 3 51 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -588228.240 2 -458361.110 2 24478251.659 24478250.355 24478250.362
+ 17.000 15.100
+ -20061935.560 7 -15632671.300 6 20854453.500 20854451.365 20854452.611
+ 45.300 40.000
+ -3267693.850 2 -2546254.177 9 24086536.766 24086535.984 24086536.862
+ 13.900 -3.000
+ -23383242.390 7 -18220705.188 7 20131857.163 20131855.336 20131856.063
+ 45.200 45.200
+ -17312934.852 7 -13490596.072 8 20384714.824 20384711.760 20384713.924
+ 42.700 48.700
+ -20708552.573 7 -16136527.568 6 20957415.326 20957411.787 20957414.063
+ 44.700 38.000
+ -15066245.199 7 -11739928.860 6 21851400.758 21851396.045 21851400.012
+ 44.100 39.500
+ -7688886.983 5 -5991328.589 4 23033751.199 23033749.431 23033750.718
+ 33.600 25.900
+ -755223.291 3 -588472.644 3 24177463.009 24177460.989 24177462.096
+ 23.800 22.100
+ 06 1 1 3 52 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -512159.023 3 -399086.397 3 24492727.622 24492725.723 24492726.584
+ 20.500 21.100
+ -20161218.729 7 -15710034.781 6 20835560.213 20835558.285 20835559.554
+ 45.400 39.900
+ -3459728.426 2 -2695891.495 9 24049993.651 24049991.496 24049992.358
+ 15.100 -3.000
+ -23352568.043 7 -18196803.104 7 20137694.426 20137692.450 20137693.345
+ 45.500 45.400
+ -17337845.999 7 -13510007.353 8 20379974.398 20379971.303 20379973.486
+ 42.600 48.500
+ -20568137.494 7 -16027113.250 6 20984135.096 20984131.942 20984134.064
+ 44.600 37.800
+ -15201016.696 7 -11844945.566 6 21825754.176 21825750.047 21825753.551
+ 44.000 39.900
+ -7478980.927 5 -5827765.445 4 23073695.691 23073693.551 23073695.018
+ 31.500 27.400
+ -562784.105 3 -438520.033 3 24214082.910 24214080.794 24214082.193
+ 23.800 22.100
+ 06 1 1 3 53 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -434319.363 3 -338432.114 2 24507539.759 24507538.417 24507538.990
+ 19.900 12.600
+ -20257972.233 7 -15785427.102 6 20817148.801 20817146.792 20817147.959
+ 45.700 40.200
+ -3651118.663 1 0.000 24013573.827 0.000 24013571.789
+ 6.500 0.000
+ -23319355.655 7 -18170923.329 7 20144014.507 20144012.640 20144013.412
+ 45.300 45.400
+ -17361377.982 7 -13528343.967 8 20375496.497 20375493.339 20375495.582
+ 42.600 48.600
+ -20425754.952 7 -15916165.869 6 21011229.791 21011226.608 21011228.743
+ 44.800 37.800
+ -15335038.351 7 -11949377.981 6 21800250.726 21800246.238 21800250.004
+ 44.100 39.600
+ -7268635.344 5 -5663859.789 4 23113723.175 23113720.612 23113722.541
+ 32.000 25.600
+ -370271.191 4 -288510.007 3 24250717.420 24250714.535 24250716.621
+ 27.100 18.600
+ 06 1 1 3 54 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -354726.019 3 -276411.336 24522686.066 24522683.979 24522684.975
+ 21.600 3.000
+ -20352180.957 7 -15858836.480 6 20799221.451 20799219.525 20799220.723
+ 45.800 40.700
+ -3841856.935 -2993653.945 9 23977277.394 23977274.335 23977276.722
+ 3.000 -3.000
+ -23283606.353 7 -18143066.733 7 20150817.567 20150815.521 20150816.482
+ 45.600 45.400
+ -17383525.302 7 -13545601.621 8 20371282.068 20371278.869 20371281.136
+ 42.600 48.700
+ -20281419.967 7 -15803697.082 6 21038695.749 21038692.595 21038694.709
+ 44.600 37.600
+ -15468301.483 7 -12053219.344 6 21774891.438 21774887.237 21774890.860
+ 44.200 39.700
+ -7057866.515 5 -5499624.356 4 23153831.542 23153828.955 23153830.704
+ 31.800 25.600
+ -177695.156 3 -138450.722 2 24287362.620 24287360.495 24287361.693
+ 22.600 17.000
+ 06 1 1 3 55 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -273395.178 3 -213036.609 2 24538162.586 24538160.913 24538161.643
+ 23.400 17.000
+ -20443829.955 7 -15930251.270 6 20781780.902 20781779.279 20781780.261
+ 45.900 40.700
+ -4031935.859 2 -3141767.291 9 23941104.479 23941104.794 23941106.090
+ 12.600 -3.000
+ -23245321.709 7 -18113234.550 7 20158102.815 20158100.787 20158101.694
+ 45.400 45.200
+ -17404280.709 7 -13561774.669 8 20367332.378 20367329.144 20367331.496
+ 42.600 48.500
+ -20135148.738 7 -15689719.535 6 21066530.417 21066527.296 21066529.237
+ 44.500 37.300
+ -15600797.524 7 -12156462.990 6 21749678.304 21749673.746 21749677.755
+ 44.600 39.500
+ -6846690.588 5 -5335071.684 4 23194016.282 23194014.442 23194015.770
+ 30.600 25.900
+ 14934.374 3 11650.179 3 24324019.490 24324016.989 24324018.540
+ 23.800 19.900
+ 06 1 1 3 56 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -190343.147 4 -148320.773 2 24553966.962 24553965.428 24553966.175
+ 26.200 17.800
+ -20532904.881 7 -15999660.292 6 20764830.831 20764828.715 20764829.987
+ 46.100 41.100
+ -4221347.106 0.000 23905062.787 0.000 23905061.488
+ 3.000 0.000
+ -23204503.991 7 -18081428.539 7 20165870.160 20165868.223 20165869.103
+ 45.500 45.200
+ -17423638.001 7 -13576858.275 8 20363648.764 20363645.619 20363647.843
+ 42.600 48.500
+ -19986957.059 7 -15574245.518 6 21094730.996 21094727.129 21094729.514
+ 44.500 37.100
+ -15732517.351 7 -12259101.800 6 21724612.878 21724608.768 21724612.281
+ 44.700 40.700
+ -6635123.557 5 -5170214.261 4 23234275.934 23234273.771 23234275.621
+ 30.400 24.600
+ 207607.250 3 161784.888 3 24360683.856 24360681.241 24360682.627
+ 21.600 18.600
+ 06 1 1 3 57 0.0000000 0 8G03G09G15G18G21G22G26G29
+ -105587.165 4 -82277.187 3 24570095.553 24570093.939 24570094.569
+ 24.600 22.600
+ -20619391.038 7 -16067052.088 6 20748373.057 20748371.043 20748372.357
+ 46.700 41.000
+ -23161155.590 7 -18047650.570 7 20174118.921 20174117.112 20174117.821
+ 45.500 45.200
+ -17441590.988 7 -13590847.618 8 20360232.427 20360229.306 20360231.508
+ 42.600 48.400
+ -19836862.250 7 -15457288.561 6 21123293.028 21123289.184 21123291.604
+ 44.100 36.900
+ -15863452.560 7 -12361129.214 6 21699697.150 21699692.272 21699696.374
+ 44.600 40.000
+ -6423181.290 5 -5005064.461 4 23274607.005 23274605.046 23274606.296
+ 30.800 25.600
+ 400313.756 3 311945.800 3 24397354.455 24397352.185 24397353.472
+ 22.600 19.300
+ 06 1 1 3 58 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ -19144.838 4 -14919.519 3 24586545.213 24586543.224 24586544.337
+ 25.600 20.500
+ -20703274.376 7 -16132415.719 6 20732410.465 20732408.751 20732409.714
+ 46.400 41.900
+ -106479.274 1 0.000 23833362.517 0.000 23833361.894
+ 9.000 0.000
+ -23115279.390 7 -18011902.892 7 20182849.115 20182847.120 20182848.085
+ 45.600 45.100
+ -17458133.477 7 -13603737.874 8 20357084.567 20357081.356 20357083.637
+ 42.700 48.600
+ -19684879.629 7 -15338860.599 6 21152213.799 21152210.455 21152212.700
+ 44.100 36.300
+ -15993593.586 7 -12462537.790 6 21674931.799 21674927.329 21674931.187
+ 44.800 40.400
+ -6210879.574 5 -4839634.551 3 23315006.617 23315005.090 23315006.405
+ 30.600 23.400
+ 593044.053 3 462125.220 3 24434030.031 24434027.427 24434029.112
+ 23.400 19.300
+ 06 1 1 3 59 0.0000000 0 8G03G09G15G18G21G22G26G29
+ 68967.274 4 53739.224 3 24603312.183 24603310.274 24603311.587
+ 24.200 19.300
+ -20784542.828 7 -16195741.772 6 20716945.634 20716943.652 20716944.828
+ 46.400 41.500
+ -23066878.537 7 -17974187.947 7 20192059.406 20192057.517 20192058.361
+ 45.500 45.100
+ -17473259.004 7 -13615523.997 8 20354206.243 20354203.079 20354205.322
+ 42.800 48.500
+ -19531026.497 7 -15218975.081 6 21181490.911 21181487.801 21181490.167
+ 44.300 36.200
+ -16122932.213 7 -12563321.119 6 21650319.674 21650314.953 21650318.959
+ 45.100 40.300
+ -5998233.773 5 -4673936.523 4 23355472.726 23355470.277 23355472.135
+ 31.100 24.900
+ 785788.726 3 612315.808 2 24470707.806 24470704.982 24470707.103
+ 22.100 13.900
+ 06 1 1 4 0 0.0000000 0 8G03G09G15G18G21G22G26G29
+ 158731.209 3 123685.129 3 24620393.744 24620391.981 24620392.551
+ 21.600 19.900
+ -20863182.530 7 -16257019.455 6 20701981.055 20701978.890 20701980.211
+ 46.800 41.800
+ -23015956.727 7 -17934508.625 7 20201749.416 20201747.576 20201748.365
+ 45.500 44.900
+ -17486961.545 7 -13626201.309 8 20351598.841 20351595.593 20351597.963
+ 43.000 48.700
+ -19375319.181 7 -15097644.754 6 21211121.003 21211117.998 21211120.286
+ 44.200 36.200
+ -16251459.192 7 -12663472.006 6 21625861.132 21625857.121 21625860.752
+ 45.200 40.600
+ -5785259.312 5 -4507982.389 3 23395999.537 23395997.598 23395999.287
+ 30.800 23.800
+ 978538.352 3 762510.330 2 24507386.584 24507384.571 24507386.088
+ 23.800 17.800
+ 06 1 1 4 1 0.0000000 0 8G03G09G15G18G21G22G26G29
+ 250129.398 3 194904.487 2 24637785.977 24637784.603 24637784.764
+ 19.300 17.000
+ -20939182.249 7 -16316240.003 6 20687519.057 20687516.607 20687518.122
+ 47.400 41.900
+ -22962518.614 7 -17892868.548 7 20211918.535 20211916.429 20211917.472
+ 45.500 44.700
+ -17499234.928 7 -13635764.983 8 20349263.166 20349260.027 20349262.324
+ 43.000 48.600
+ -19217775.572 7 -14974883.541 6 21241100.495 21241097.699 21241099.791
+ 44.000 36.300
+ -16379164.920 7 -12762982.950 6 21601559.860 21601555.499 21601559.206
+ 45.000 40.700
+ -5571971.335 4 -4341783.978 3 23436586.893 23436585.536 23436586.647
+ 29.000 23.400
+ 1171283.536 3 912701.343 2 24544065.248 24544062.481 24544064.492
+ 23.000 17.800
+ 06 1 1 4 2 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 343144.074 3 267383.430 2 24655486.361 24655484.609 24655485.688
+ 19.300 15.100
+ -21012528.593 7 -16373392.983 7 20673561.346 20673559.301 20673560.505
+ 47.300 42.000
+ -271942.990 9 0.000 23691547.602 0.000 23691547.286
+ -3.000 0.000
+ -22906568.117 7 -17849270.760 7 20222565.428 20222563.471 20222564.364
+ 45.500 44.600
+ -17510072.934 7 -13644210.177 8 20347200.797 20347197.586 20347199.897
+ 42.700 48.500
+ -19058414.219 7 -14850705.907 6 21271426.819 21271423.105 21271425.536
+ 43.500 36.000
+ -16506040.751 7 -12861847.220 6 21577416.297 21577411.630 21577415.618
+ 45.200 40.600
+ -5358384.902 4 -4175352.989 4 23477231.172 23477229.979 23477230.779
+ 29.500 25.300
+ 1364015.292 3 1062881.894 3 24580740.635 24580739.179 24580740.194
+ 22.600 21.100
+ 06 1 1 4 3 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 437756.834 3 341107.650 3 24673490.029 24673489.593 24673489.423
+ 18.600 19.900
+ -21083211.164 7 -16428470.296 6 20660111.234 20660108.773 20660110.316
+ 47.800 41.800
+ -456472.360 2 -355691.663 23656432.717 23656430.367 23656431.555
+ 12.600 3.000
+ -22848111.003 7 -17803719.779 7 20233689.302 20233687.655 20233688.237
+ 45.300 44.600
+ -17519469.355 7 -13651532.070 8 20345412.799 20345409.571 20345411.823
+ 42.500 48.600
+ -18897251.306 7 -14725124.447 5 21302095.065 21302091.482 21302093.797
+ 43.400 35.900
+ -16632076.867 7 -12960057.170 6 21553432.374 21553427.929 21553431.819
+ 45.400 41.000
+ -5144514.654 4 -4008700.866 3 23517929.537 23517927.234 23517929.034
+ 29.500 23.000
+ 1556724.606 3 1213044.987 2 24617412.196 24617409.582 24617411.812
+ 21.600 12.600
+ 06 1 1 4 4 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 533948.957 2 416062.537 2 24691794.722 24691793.927 24691794.016
+ 17.800 17.800
+ -21151218.455 7 -16481462.987 6 20647169.687 20647167.446 20647168.821
+ 47.800 41.900
+ -640275.039 2 -498914.504 9 23621455.879 23621454.492 23621454.665
+ 15.100 -3.000
+ -22787152.365 7 -17756219.558 7 20245289.711 20245287.657 20245288.548
+ 45.200 44.600
+ -17527418.769 7 -13657726.402 8 20343900.046 20343896.793 20343899.088
+ 42.700 48.600
+ -18734305.839 7 -14598153.979 5 21333102.208 21333098.811 21333101.315
+ 43.600 34.800
+ -16757264.457 7 -13057605.939 6 21529609.968 21529605.462 21529609.379
+ 45.200 41.000
+ -4930375.613 4 -3841839.298 3 23558679.214 23558676.849 23558678.527
+ 28.800 22.600
+ 1749402.421 2 1363183.554 1 24654076.887 24654074.950 24654076.020
+ 15.100 6.500
+ 06 1 1 4 5 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 631702.465 2 492234.064 2 24710396.497 24710395.156 24710396.092
+ 17.800 15.100
+ -21216539.798 8 -16532362.734 7 20634739.492 20634737.228 20634738.596
+ 48.100 42.000
+ -823344.156 1 -641565.694 9 23586618.830 23586617.109 23586618.815
+ 9.000 -3.000
+ -22723697.597 7 -17706774.290 7 20257364.772 20257362.690 20257363.630
+ 45.500 44.400
+ -17533914.420 7 -13662787.948 8 20342663.805 20342660.777 20342662.922
+ 42.600 48.700
+ -18569595.647 7 -14469808.397 5 21364444.976 21364442.341 21364444.452
+ 43.400 35.100
+ -16881593.681 7 -13154485.837 6 21505950.895 21505946.480 21505950.309
+ 45.500 41.300
+ -4715981.908 4 -3674779.269 3 23599476.148 23599474.465 23599475.790
+ 28.400 21.100
+ 1942039.933 3 1513290.699 2 24690736.140 24690732.458 24690735.407
+ 21.600 15.100
+ 06 1 1 4 6 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 730998.022 3 569607.225 2 24729292.538 24729291.215 24729291.840
+ 20.500 17.000
+ -21279166.324 8 -16581162.607 7 20622821.902 20622819.909 20622821.141
+ 48.200 42.200
+ -1005672.900 2 -783639.993 2 23551923.359 23551920.991 23551922.585
+ 13.900 13.900
+ -22657753.682 7 -17655389.434 7 20269913.229 20269911.457 20269912.128
+ 45.200 44.500
+ -17538951.270 7 -13666712.782 8 20341705.546 20341702.310 20341704.521
+ 42.600 48.500
+ -18403139.097 7 -14340102.029 5 21396121.406 21396117.985 21396120.239
+ 42.700 34.900
+ -17005055.430 7 -13250689.800 6 21482457.009 21482452.221 21482456.433
+ 46.000 41.100
+ -4501348.003 4 -3507532.077 3 23640320.080 23640318.763 23640319.770
+ 27.400 23.800
+ 2134628.595 3 1663359.728 2 24727384.067 24727381.463 24727383.353
+ 22.100 16.100
+ 06 1 1 4 7 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 831816.468 3 648167.019 2 24748477.602 24748475.832 24748476.278
+ 21.600 16.100
+ -21339087.677 8 -16627854.564 7 20611419.377 20611417.131 20611418.550
+ 48.300 42.400
+ -1187254.241 2 -925131.905 1 23517368.988 23517366.665 23517367.710
+ 17.800 9.000
+ -22589327.282 7 -17602070.175 7 20282934.408 20282932.473 20282933.334
+ 45.100 44.200
+ -17542522.723 7 -13669495.726 8 20341026.027 20341022.600 20341024.999
+ 42.600 48.500
+ -18234954.943 7 -14209049.477 5 21428125.889 21428122.236 21428124.767
+ 42.600 34.100
+ -17127639.709 7 -13346210.011 6 21459130.118 21459125.384 21459129.443
+ 46.100 41.800
+ -4286488.246 4 -3340108.914 3 23681206.683 23681204.259 23681206.170
+ 28.800 22.100
+ 2327159.997 3 1813384.146 1 24764022.213 24764018.774 24764020.995
+ 22.600 11.000
+ 06 1 1 4 8 0.0000000 0 9G03G09G14G15G18G21G22G26G29
+ 934139.131 3 727898.967 2 24767949.320 24767947.403 24767948.103
+ 22.600 15.100
+ -21396294.627 8 -16672431.406 7 20600533.341 20600531.026 20600532.357
+ 48.200 42.700
+ -1368081.405 3 -1066036.134 2 23482958.787 23482956.560 23482958.017
+ 20.500 13.900
+ -22518425.288 7 -17546821.887 7 20296426.645 20296424.690 20296425.625
+ 45.500 44.100
+ -17544623.906 7 -13671133.016 8 20340625.942 20340622.810 20340625.025
+ 42.500 48.600
+ -18065061.671 7 -14076665.150 5 21460454.829 21460452.083 21460454.121
+ 42.400 34.500
+ -17249337.482 7 -13441039.442 6 21435971.767 21435967.079 21435971.026
+ 45.800 41.600
+ -4071416.341 4 -3172520.414 3 23722133.930 23722131.081 23722133.391
+ 26.800 21.100
+ 2519625.633 3 1963357.354 2 24800646.239 24800644.078 24800645.299
+ 22.100 16.100
+ 06 1 1 4 9 0.0000000 0 8G09G14G15G18G21G22G26G29
+ -21450778.039 8 -16714886.002 7 20590165.376 20590163.262 20590164.542
+ 48.400 43.000
+ -1548147.633 3 -1206347.453 2 23448693.018 23448691.170 23448692.235
+ 21.100 12.600
+ -22445054.944 7 -17489650.201 7 20310388.612 20310386.791 20310387.561
+ 45.600 44.400
+ -17545247.983 7 -13671619.314 8 20340507.339 20340504.092 20340506.340
+ 42.700 48.500
+ -17893478.256 6 -13942963.832 5 21493106.481 21493103.286 21493105.382
+ 41.700 33.600
+ -17370138.620 7 -13535170.192 6 21412983.995 21412979.412 21412983.326
+ 45.700 41.900
+ -3856146.229 4 -3004777.485 3 23763097.859 23763096.013 23763097.541
+ 27.900 20.500
+ 2712017.349 4 2113272.870 2 24837257.621 24837254.442 24837257.058
+ 24.900 13.900
+ 06 1 1 4 10 0.0000000 0 7G09G14G15G18G21G22G26
+ -21502530.185 8 -16755212.341 7 20580317.289 20580315.043 20580316.473
+ 48.400 42.800
+ -1727446.096 3 -1346060.502 2 23414574.538 23414571.846 23414573.213
+ 22.600 17.000
+ -22369224.217 7 -17430561.339 7 20324818.905 20324816.776 20324817.758
+ 45.300 44.000
+ -17544390.430 7 -13670951.081 8 20340670.528 20340667.233 20340669.551
+ 43.000 48.400
+ -17720224.300 6 -13807960.801 5 21526074.810 21526072.594 21526074.370
+ 41.300 33.900
+ -17490033.690 7 -13628594.914 6 21390168.864 21390163.979 21390168.068
+ 45.700 41.600
+ -3640691.700 4 -2836890.825 2 23804097.256 23804095.453 23804096.756
+ 28.100 17.800
+ 06 1 1 4 11 0.0000000 0 7G09G14G15G18G21G22G26
+ -21551542.922 8 -16793404.077 7 20570990.623 20570988.236 20570989.683
+ 48.500 42.900
+ -1905970.212 3 -1485170.183 3 23380601.890 23380599.606 23380601.162
+ 23.000 18.600
+ -22290941.639 7 -17369561.951 7 20339715.670 20339713.623 20339714.471
+ 45.600 43.900
+ -17542045.580 7 -13669123.938 8 20341116.666 20341113.371 20341115.786
+ 42.800 48.300
+ -17545318.906 6 -13671670.927 5 21559359.409 21559356.014 21559358.041
+ 41.000 33.500
+ -17609012.763 7 -13721305.884 7 21367527.672 21367523.119 21367527.040
+ 46.100 42.100
+ -3425066.084 4 -2668870.909 3 23845128.905 23845128.145 23845128.764
+ 24.600 21.600
+ 06 1 1 4 12 0.0000000 0 7G09G14G15G18G21G22G26
+ -21597810.067 8 -16829456.387 7 20562185.970 20562183.762 20562185.189
+ 48.400 42.600
+ -2083713.668 4 -1623671.544 3 23346778.474 23346776.129 23346777.495
+ 27.100 19.900
+ -22210215.890 7 -17306658.787 7 20355077.172 20355075.137 20355075.997
+ 45.300 43.700
+ -17538207.305 7 -13666133.071 8 20341847.102 20341843.853 20341846.222
+ 43.100 48.500
+ -17368781.774 6 -13534109.571 5 21592952.473 21592949.866 21592951.789
+ 41.200 33.100
+ -17727065.913 7 -13813295.342 7 21345062.969 21345058.320 21345062.328
+ 46.100 42.100
+ -3209282.948 4 -2500728.210 3 23886192.037 23886190.142 23886192.030
+ 26.800 21.600
+ 06 1 1 4 13 0.0000000 0 7G09G14G15G18G21G22G26
+ -21641324.324 8 -16863363.592 7 20553905.840 20553903.356 20553904.867
+ 48.600 42.400
+ -2260669.460 4 -1761559.153 3 23313105.124 23313102.442 23313103.948
+ 28.400 21.600
+ -22127055.948 7 -17241858.846 7 20370901.482 20370899.861 20370900.489
+ 45.200 43.600
+ -17532870.645 7 -13661974.634 8 20342862.734 20342859.404 20342861.777
+ 43.100 48.400
+ -17190632.535 6 -13395292.014 5 21626854.239 21626850.471 21626852.783
+ 40.700 33.000
+ -17844183.418 7 -13904555.741 7 21322776.133 21322771.573 21322775.456
+ 46.000 42.200
+ -2993355.271 4 -2332472.891 3 23927281.596 23927279.119 23927281.208
+ 27.100 18.600
+ 06 1 1 4 14 0.0000000 0 7G09G14G15G18G21G22G26
+ -21682078.463 8 -16895120.054 7 20546150.167 20546148.121 20546149.461
+ 48.600 42.200
+ -2436832.424 4 -1898828.958 3 23279581.695 23279579.762 23279580.969
+ 28.400 23.800
+ -22041471.717 7 -17175169.848 7 20387187.954 20387186.036 20387186.973
+ 45.200 43.500
+ -17526029.647 7 -13656643.978 8 20344164.375 20344161.114 20344163.481
+ 43.000 48.200
+ -17010891.136 6 -13255233.804 5 21661057.175 21661054.226 21661056.301
+ 40.500 32.400
+ -17960354.943 7 -13995079.002 7 21300669.604 21300664.960 21300668.948
+ 46.400 42.600
+ -2777296.033 4 -2164115.039 3 23968396.303 23968394.873 23968396.013
+ 24.200 23.400
+ 06 1 1 4 15 0.0000000 0 7G09G14G15G18G21G22G26
+ -21720068.495 8 -16924722.674 7 20538921.129 20538918.798 20538920.254
+ 48.800 42.300
+ -2612195.117 5 -2035475.161 4 23246211.841 23246209.113 23246210.792
+ 30.600 24.600
+ -21953472.625 7 -17106599.147 7 20403933.864 20403931.836 20403932.636
+ 45.400 43.600
+ -17517679.485 7 -13650137.361 8 20345753.275 20345750.051 20345752.333
+ 43.000 48.100
+ -16829577.845 6 -13113950.774 5 21695559.961 21695556.902 21695558.844
+ 39.400 31.800
+ -18075570.905 7 -14084857.677 7 21278744.490 21278740.095 21278743.911
+ 46.200 42.600
+ -2561118.138 4 -1995664.768 3 24009534.002 24009531.838 24009533.373
+ 26.500 21.600
+ 06 1 1 4 16 0.0000000 0 7G09G14G15G18G21G22G26
+ -21755288.249 8 -16952166.629 7 20532219.074 20532216.797 20532218.158
+ 48.600 42.400
+ -2786751.195 5 -2171492.854 4 23212994.806 23212992.283 23212994.024
+ 31.000 25.300
+ -21863069.116 7 -17036154.878 7 20421136.916 20421135.087 20421135.784
+ 45.100 43.500
+ -17507815.417 7 -13642451.076 8 20347630.459 20347627.101 20347629.493
+ 43.000 48.100
+ -16646712.519 6 -12971458.347 5 21730357.882 21730354.978 21730357.010
+ 39.600 32.100
+ -18189820.705 7 -14173883.490 7 21257003.661 21256998.970 21257003.026
+ 46.400 42.600
+ -2344834.275 4 -1827131.902 3 24050690.103 24050689.113 24050689.563
+ 24.600 21.600
+ 06 1 1 4 17 0.0000000 0 7G09G14G15G18G21G22G26
+ -21787733.395 8 -16977448.554 7 20526044.825 20526042.634 20526044.057
+ 48.600 42.200
+ -2960495.629 5 -2306878.091 4 23179932.221 23179929.893 23179931.288
+ 30.400 26.800
+ -21770271.282 7 -16963844.892 7 20438795.727 20438793.903 20438794.701
+ 45.200 43.300
+ -17496432.110 7 -13633580.977 8 20349796.690 20349793.427 20349795.698
+ 42.800 48.100
+ -16462316.059 6 -12827772.870 5 21765447.909 21765444.407 21765446.871
+ 39.500 31.300
+ -18303094.766 7 -14262148.990 7 21235448.183 21235443.658 21235447.508
+ 45.900 42.900
+ -2128457.093 4 -1658526.378 3 24091866.000 24091864.567 24091865.608
+ 26.500 21.600
+ 06 1 1 4 18 0.0000000 0 7G09G14G15G18G21G22G26
+ -21817398.881 8 -17000564.512 7 20520399.787 20520397.611 20520398.916
+ 48.700 42.400
+ -3133421.483 5 -2441625.467 4 23147025.429 23147023.127 23147024.687
+ 30.100 27.100
+ -21675090.415 7 -16889678.003 7 20456908.013 20456906.228 20456906.991
+ 45.200 43.400
+ -17483524.339 7 -13623522.970 8 20352252.991 20352249.653 20352252.026
+ 43.000 48.100
+ -16276408.320 6 -12682909.726 5 21800825.283 21800821.783 21800824.017
+ 39.500 31.100
+ -18415382.593 7 -14349645.991 7 21214080.502 21214076.021 21214079.860
+ 46.200 43.100
+ -1911998.784 4 -1489857.548 2 24133056.712 24133054.881 24133056.200
+ 25.600 12.600
+ 06 1 1 4 19 0.0000000 0 7G09G14G15G18G21G22G26
+ -21844281.067 8 -17021511.665 7 20515284.159 20515281.993 20515283.426
+ 48.500 42.600
+ -3305522.986 4 -2575730.505 4 23114275.838 23114273.385 23114275.078
+ 29.500 27.600
+ -21577538.430 7 -16813663.498 7 20475471.666 20475469.701 20475470.539
+ 44.800 42.900
+ -17469086.904 7 -13612273.022 8 20355000.309 20354996.959 20354999.307
+ 43.100 48.100
+ -16089010.319 6 -12536885.368 5 21836484.864 21836482.514 21836484.456
+ 39.100 31.500
+ -18526674.000 7 -14436366.568 7 21192902.496 21192897.934 21192901.933
+ 46.400 43.000
+ -1695471.546 4 -1321135.032 2 24174260.770 24174257.664 24174260.247
+ 25.600 13.900
+ 06 1 1 4 20 0.0000000 0 7G09G14G15G18G21G22G26
+ -21868377.474 8 -17040288.074 7 20510698.669 20510696.675 20510697.832
+ 48.000 42.700
+ -3476794.037 4 -2709188.417 4 23081683.660 23081681.750 23081683.182
+ 28.800 27.600
+ -21477626.802 7 -16735810.307 7 20494484.339 20494482.477 20494483.142
+ 45.000 43.200
+ -17453115.238 7 -13599827.575 8 20358039.655 20358036.331 20358038.681
+ 43.200 48.000
+ -15900142.888 6 -12389715.990 5 21872426.754 21872422.610 21872425.252
+ 38.600 30.800
+ -18636958.527 7 -14522302.563 7 21171915.969 21171911.556 21171915.228
+ 45.900 43.100
+ -1478887.423 4 -1152368.217 2 24215475.796 24215473.454 24215475.101
+ 24.600 17.000
+ 06 1 1 4 21 0.0000000 0 7G09G14G15G18G21G22G26
+ -21889685.131 7 -17056891.436 7 20506644.116 20506641.857 20506643.268
+ 47.900 42.500
+ -3647229.267 4 -2841995.029 4 23049251.211 23049248.770 23049250.304
+ 27.400 25.900
+ -21375367.830 7 -16656128.002 7 20513943.508 20513941.617 20513942.463
+ 45.200 42.800
+ -17435604.975 7 -13586183.216 7 20361371.602 20361368.365 20361370.601
+ 43.000 47.900
+ -15709827.269 6 -12241418.121 5 21908642.660 21908638.721 21908641.158
+ 38.100 30.600
+ -18746226.266 7 -14607446.250 7 21151122.853 21151118.505 21151122.300
+ 46.100 43.200
+ -1262258.338 4 -983566.332 2 24256699.273 24256695.707 24256698.643
+ 27.100 15.100
+ 06 1 1 4 22 0.0000000 0 7G09G14G15G18G21G22G26
+ -21908201.644 7 -17071319.886 7 20503120.559 20503118.331 20503119.652
+ 47.800 42.900
+ -3816822.284 4 -2974145.391 4 23016978.758 23016976.214 23016977.736
+ 29.900 24.200
+ -21270774.122 7 -16574626.440 7 20533846.793 20533845.223 20533845.829
+ 45.200 42.700
+ -17416551.341 7 -13571336.224 7 20364997.363 20364994.202 20364996.464
+ 43.400 47.800
+ -15518084.205 6 -12092007.993 4 21945128.921 21945126.070 21945128.173
+ 37.800 29.900
+ -18854466.145 7 -14691789.007 7 21130525.786 21130521.065 21130525.011
+ 46.300 43.300
+ -1045596.074 4 -814738.579 3 24297928.613 24297926.461 24297928.000
+ 25.900 20.500
+ 06 1 1 4 23 0.0000000 0 7G09G14G15G18G21G22G26
+ -21923925.521 7 -17083572.259 7 20500128.386 20500126.117 20500127.561
+ 47.700 42.800
+ -3985567.906 5 -3105635.471 3 22984867.519 22984864.628 22984866.646
+ 31.600 22.100
+ -21163858.386 7 -16491315.497 7 20554192.345 20554190.581 20554191.224
+ 45.000 42.700
+ -17395948.963 7 -13555282.426 8 20368917.885 20368914.790 20368916.941
+ 43.200 48.000
+ -15324935.116 6 -11941502.271 4 21981883.493 21981881.215 21981883.294
+ 38.100 29.200
+ -18961668.100 7 -14775322.996 7 21110125.654 21110121.306 21110125.126
+ 46.300 43.600
+ -828911.908 3 -645893.882 2 24339161.979 24339159.766 24339161.403
+ 23.000 16.100
+ 06 1 1 4 24 0.0000000 0 7G09G14G15G18G21G22G26
+ -21936855.482 7 -17093647.550 7 20497667.656 20497665.748 20497666.954
+ 47.400 42.900
+ -4153460.171 5 -3236460.599 4 22952918.764 22952915.761 22952917.943
+ 32.300 24.600
+ -21054633.936 7 -16406205.567 7 20574977.111 20574975.299 20574976.047
+ 44.900 42.400
+ -17373794.072 7 -13538018.881 7 20373133.815 20373130.634 20373132.858
+ 43.400 47.900
+ -15130401.308 6 -11789917.550 5 22018903.517 22018899.913 22018902.237
+ 37.700 30.100
+ -19067821.913 7 -14858040.250 7 21089925.460 21089920.872 21089924.829
+ 46.500 43.700
+ -612217.332 3 -477040.968 2 24380396.899 24380395.024 24380397.021
+ 22.100 15.100
+ 06 1 1 4 25 0.0000000 0 7G09G14G15G18G21G22G26
+ -21946990.022 7 -17101544.595 7 20495739.133 20495737.108 20495738.351
+ 47.200 42.700
+ -4320493.366 5 -3366616.308 4 22921132.969 22921130.565 22921132.130
+ 31.800 26.200
+ -20943114.171 7 -16319307.092 7 20596198.735 20596196.837 20596197.647
+ 44.900 42.200
+ -17350082.482 7 -13519542.320 7 20377645.921 20377642.796 20377644.990
+ 43.400 47.600
+ -14934503.887 6 -11637270.267 4 22056181.859 22056178.058 22056180.385
+ 36.900 28.600
+ -19172916.753 7 -14939932.329 7 21069926.788 21069922.111 21069926.075
+ 46.700 44.000
+ -395523.682 4 -308188.783 2 24421632.939 24421629.991 24421632.467
+ 25.300 17.800
+ 06 1 1 4 26 0.0000000 0 7G09G14G15G18G21G22G26
+ -21954329.799 7 -17107263.900 7 20494342.454 20494340.374 20494341.691
+ 47.400 42.800
+ -4486662.153 4 -3496098.401 4 22889512.104 22889509.680 22889511.126
+ 29.200 28.800
+ -20829313.271 7 -16230631.090 6 20617854.064 20617852.490 20617853.065
+ 44.700 41.900
+ -17324809.711 7 -13499849.250 7 20382455.449 20382452.070 20382454.491
+ 43.600 47.600
+ -14737264.773 6 -11483577.493 4 22093714.819 22093711.349 22093713.762
+ 37.100 28.400
+ -19276942.113 7 -15020991.050 7 21050131.306 21050126.705 21050130.536
+ 46.600 44.000
+ -178841.780 4 -139345.797 3 24462865.266 24462864.420 24462865.121
+ 24.900 19.300
+ 06 1 1 4 27 0.0000000 0 7G09G14G15G18G21G22G26
+ -21958875.104 7 -17110805.696 7 20493477.453 20493475.430 20493476.635
+ 47.100 42.700
+ -4651961.201 5 -3624902.793 4 22858056.984 22858054.343 22858055.911
+ 32.100 27.400
+ -20713245.754 7 -16140188.892 6 20639941.295 20639939.331 20639940.160
+ 44.700 41.900
+ -17297971.928 7 -13478936.699 7 20387562.245 20387559.130 20387561.394
+ 43.600 47.500
+ -14538705.983 5 -11328856.413 4 22131498.390 22131495.972 22131498.022
+ 35.900 29.900
+ -19379887.641 7 -15101208.343 7 21030541.442 21030536.747 21030540.808
+ 47.000 44.100
+ 37817.261 4 29479.384 2 24504095.530 24504093.124 24504095.219
+ 27.400 13.900
+ 06 1 1 4 28 0.0000000 0 7G09G14G15G18G21G22G26
+ -21960626.219 7 -17112170.198 7 20493144.249 20493142.087 20493143.438
+ 47.200 42.300
+ -4816384.976 5 -3753025.179 4 22826767.645 22826765.485 22826766.837
+ 32.000 26.500
+ -20594926.090 7 -16047991.775 7 20662456.761 20662454.993 20662455.613
+ 44.300 42.000
+ -17269564.385 7 -13456800.953 7 20392968.228 20392964.883 20392967.285
+ 44.000 47.400
+ -14338849.378 6 -11173124.045 4 22169529.313 22169527.268 22169529.295
+ 36.200 28.400
+ -19481742.040 7 -15180575.405 7 21011159.265 21011154.654 21011158.589
+ 47.000 44.600
+ 254442.652 3 198278.358 9 24545317.090 24545315.522 24545316.524
+ 19.900 -3.000
+ 06 1 1 4 29 0.0000000 0 7G09G14G15G18G21G22G26
+ -21959584.790 7 -17111358.688 7 20493342.411 20493340.269 20493341.589
+ 47.300 42.300
+ -4979928.633 5 -3880461.749 4 22795646.770 22795644.173 22795645.688
+ 31.500 28.400
+ -20474368.993 7 -15954051.221 6 20685397.842 20685396.147 20685396.828
+ 44.300 41.600
+ -17239583.620 7 -13433439.321 7 20398673.242 20398669.980 20398672.298
+ 43.800 47.100
+ -14137716.561 6 -11016397.224 4 22207803.671 22207802.031 22207803.863
+ 36.100 28.600
+ -19582495.116 7 -15259084.296 7 20991986.532 20991981.883 20991985.900
+ 46.600 44.400
+ 471023.855 3 367042.939 2 24586531.824 24586529.915 24586531.121
+ 23.000 12.600
+ 06 1 1 4 30 0.0000000 0 7G09G14G15G18G21G22G26
+ -21955752.055 7 -17108372.138 7 20494072.145 20494069.775 20494071.211
+ 47.700 42.500
+ -5142586.288 5 -4007207.913 4 22764694.052 22764691.468 22764692.947
+ 32.100 28.400
+ -20351589.888 7 -15858379.219 6 20708762.496 20708760.346 20708761.142
+ 44.400 41.500
+ -17208026.083 7 -13408849.030 7 20404678.546 20404675.227 20404677.642
+ 44.100 47.000
+ -13935328.938 6 -10858692.631 4 22246317.205 22246315.045 22246317.086
+ 36.400 27.900
+ -19682135.847 7 -15336726.417 7 20973025.427 20973020.832 20973024.851
+ 46.800 44.600
+ 687550.367 3 535764.886 1 24627735.295 24627732.725 24627734.532
+ 22.600 11.000
+ 06 1 1 4 31 0.0000000 0 7G09G14G15G18G21G22G26
+ -21949131.438 7 -17103213.206 7 20495331.691 20495329.440 20495330.806
+ 47.600 42.600
+ -5304353.124 5 -4133259.950 4 22733910.648 22733907.963 22733909.802
+ 33.500 26.200
+ -20226604.474 7 -15760988.015 6 20732545.560 20732544.222 20732544.739
+ 44.300 41.200
+ -17174887.554 7 -13383026.810 7 20410984.577 20410981.228 20410983.606
+ 44.300 46.800
+ -13731709.576 5 -10700028.239 4 22285064.959 22285062.492 22285064.550
+ 35.400 26.800
+ -19780653.988 7 -15413493.797 7 20954277.918 20954273.471 20954277.343
+ 46.800 44.700
+ 904012.244 3 704436.438 1 24668926.700 24668924.764 24668926.155
+ 21.100 9.000
+ 06 1 1 4 32 0.0000000 0 7G09G14G15G18G21G22G26
+ -21939724.555 7 -17095883.161 7 20497121.705 20497119.588 20497120.931
+ 47.800 42.400
+ -5465224.492 5 -4258614.235 4 22703297.527 22703294.964 22703296.684
+ 32.000 26.800
+ -20099428.886 7 -15661890.182 6 20756746.733 20756744.968 20756745.696
+ 44.100 41.200
+ -17140164.403 7 -13355969.803 7 20417592.287 20417588.859 20417591.387
+ 44.700 46.700
+ -13526880.055 5 -10540420.892 4 22324042.229 22324040.565 22324042.018
+ 34.600 28.600
+ -19878038.335 7 -15489377.700 7 20935746.467 20935741.857 20935745.712
+ 46.700 45.000
+ 1120399.000 3 873049.454 1 24710103.662 24710101.350 24710103.027
+ 23.000 11.000
+ 06 1 1 4 33 0.0000000 0 6G09G14G15G18G21G22
+ -21927534.883 7 -17086384.708 7 20499441.768 20499439.094 20499440.786
+ 47.900 42.000
+ -5625194.544 5 -4383266.165 4 22672856.676 22672853.776 22672855.761
+ 33.800 28.800
+ -19970078.806 7 -15561097.946 6 20781361.743 20781359.556 20781360.424
+ 44.000 41.200
+ -17103853.032 7 -13327675.227 7 20424502.137 20424498.593 20424501.140
+ 44.600 46.500
+ -13320862.819 5 -10379888.039 4 22363246.296 22363244.199 22363246.066
+ 34.900 26.200
+ -19974278.427 7 -15564369.976 7 20917432.485 20917428.035 20917431.863
+ 46.700 45.200
+ 06 1 1 4 34 0.0000000 0 6G09G14G15G18G21G22
+ -21912566.699 8 -17074721.180 7 20502290.134 20502287.463 20502289.232
+ 48.100 42.100
+ -5784258.985 5 -4507212.426 4 22642587.264 22642585.010 22642586.243
+ 32.700 29.000
+ -19838571.016 7 -15458624.364 6 20806386.129 20806384.685 20806385.274
+ 44.000 41.100
+ -17065950.852 7 -13298141.059 7 20431714.698 20431711.131 20431713.715
+ 44.700 46.400
+ -13113680.321 5 -10218447.189 4 22402671.874 22402669.622 22402671.336
+ 33.500 25.900
+ -20069363.028 7 -15638461.864 7 20899338.684 20899334.018 20899338.011
+ 46.900 45.300
+ 06 1 1 4 35 0.0000000 0 6G09G14G15G18G21G22
+ -21894823.897 7 -17060895.609 7 20505666.117 20505663.914 20505665.323
+ 47.900 42.100
+ -5942412.942 5 -4630449.217 5 22612492.278 22612489.233 22612491.246
+ 34.800 30.100
+ -19704922.757 7 -15354482.893 6 20831819.364 20831816.973 20831817.967
+ 43.700 40.600
+ -17026454.077 7 -13267364.352 7 20439230.416 20439227.232 20439229.614
+ 44.600 46.400
+ -12905355.125 5 -10056115.954 4 22442314.726 22442312.846 22442314.364
+ 33.100 26.200
+ -20163281.515 7 -15711645.100 7 20881466.362 20881461.829 20881465.757
+ 46.800 45.300
+ 06 1 1 4 36 0.0000000 0 6G09G14G15G18G21G22
+ -21874311.259 7 -17044911.727 6 20509569.489 20509567.118 20509568.747
+ 47.900 41.900
+ -6099651.192 5 -4752972.466 4 22582570.108 22582567.777 22582569.209
+ 33.200 29.700
+ -19569151.333 7 -15248687.005 6 20857654.763 20857653.568 20857654.069
+ 44.000 40.600
+ -16985360.180 7 -13235343.137 7 20447050.355 20447047.094 20447049.392
+ 44.800 46.400
+ -12695909.481 5 -9892911.600 4 22482171.153 22482169.063 22482170.763
+ 33.000 27.100
+ -20256023.321 7 -15783911.439 7 20863818.138 20863813.643 20863817.616
+ 46.900 45.400
+ 06 1 1 4 37 0.0000000 0 6G09G14G15G18G21G22
+ -21851034.179 7 -17026773.735 7 20513999.004 20513996.732 20513998.192
+ 47.600 42.000
+ -6255968.877 5 -4874778.425 4 22552824.181 22552821.366 22552823.142
+ 34.400 29.700
+ -19431273.978 7 -15141250.162 6 20883893.031 20883890.857 20883891.728
+ 43.500 40.500
+ -16942665.083 7 -13202074.235 7 20455175.070 20455171.776 20455174.234
+ 44.900 46.200
+ -12485365.769 5 -9728851.645 4 22522237.225 22522234.395 22522236.328
+ 33.900 26.200
+ -20347576.841 7 -15855251.843 7 20846396.025 20846391.644 20846395.418
+ 46.600 45.700
+ 06 1 1 4 38 0.0000000 0 6G09G14G15G18G21G22
+ -21824997.487 7 -17006485.394 7 20518953.728 20518951.290 20518952.874
+ 47.600 42.000
+ -6411362.143 5 -4995864.024 5 22523253.962 22523251.034 22523253.025
+ 34.300 30.400
+ -19291308.313 7 -15032186.042 6 20910526.811 20910525.500 20910525.986
+ 43.500 40.500
+ -16898366.612 7 -13167555.956 7 20463604.756 20463601.485 20463603.797
+ 44.900 46.200
+ -12273746.784 5 -9563953.799 4 22562508.252 22562503.778 22562506.458
+ 32.300 24.200
+ -20437931.802 7 -15925658.299 7 20829202.157 20829197.508 20829201.558
+ 46.700 45.500
+ 06 1 1 4 39 0.0000000 0 6G09G14G15G18G21G22
+ -21796208.196 7 -16984052.179 7 20524432.030 20524429.787 20524431.248
+ 47.800 42.100
+ -6565826.005 5 -5116225.424 4 22493859.560 22493857.064 22493858.583
+ 33.200 29.000
+ -19149272.663 7 -14921508.942 6 20937556.232 20937553.941 20937554.909
+ 43.600 39.800
+ -16852462.452 7 -13131786.481 7 20472339.935 20472336.774 20472339.033
+ 45.100 46.100
+ -12061075.179 5 -9398235.759 4 22602977.754 22602974.165 22602976.306
+ 32.400 24.600
+ -20527077.013 7 -15995122.101 7 20812238.568 20812233.861 20812237.890
+ 46.900 45.700
+ 06 1 1 4 40 0.0000000 0 6G09G14G15G18G21G22
+ -21764673.879 7 -16959479.975 6 20530432.822 20530430.655 20530432.052
+ 47.900 41.900
+ -6719355.962 5 -5235859.136 5 22464644.180 22464641.705 22464643.309
+ 34.700 30.200
+ -19005184.814 7 -14809232.752 6 20964974.874 20964972.992 20964973.755
+ 43.600 39.800
+ -16804948.663 7 -13094762.750 7 20481381.584 20481378.276 20481380.708
+ 45.000 45.700
+ -11847373.096 5 -9231714.680 4 22643642.821 22643640.212 22643642.220
+ 32.300 24.200
+ -20615001.584 7 -16063634.755 7 20795507.000 20795502.260 20795506.321
+ 46.700 45.900
+ 06 1 1 4 41 0.0000000 0 6G09G14G15G18G21G22
+ -21730399.380 7 -16932772.569 7 20536955.163 20536952.736 20536954.231
+ 47.700 42.000
+ -6871946.926 5 -5354761.130 4 22435607.095 22435604.242 22435606.187
+ 34.400 29.900
+ -18859063.773 7 -14695372.258 6 20992780.319 20992778.940 20992779.483
+ 43.100 39.700
+ -16755823.819 7 -13056483.656 7 20490729.896 20490726.411 20490728.937
+ 45.200 45.400
+ -11632663.952 5 -9064408.879 4 22684501.247 22684498.419 22684500.130
+ 32.100 25.600
+ -20701694.555 7 -16131187.712 7 20779009.723 20779005.237 20779009.151
+ 46.700 46.000
+ 06 1 1 4 42 0.0000000 0 6G09G14G15G18G21G22
+ -21693393.622 7 -16903936.905 7 20543997.035 20543994.909 20543996.139
+ 47.400 42.100
+ -7023595.271 5 -5472928.634 5 22406748.894 22406746.781 22406748.130
+ 34.700 30.800
+ -18710928.228 7 -14579941.984 6 21020970.475 21020968.338 21020969.079
+ 43.100 40.000
+ -16705085.857 7 -13016947.585 7 20500384.859 20500381.571 20500383.953
+ 45.200 45.400
+ -11416971.217 5 -8896336.671 4 22725546.389 22725543.395 22725545.171
+ 31.000 25.600
+ -20787144.922 7 -16197772.411 7 20762749.030 20762744.518 20762748.425
+ 46.600 46.100
+ 06 1 1 4 43 0.0000000 0 6G09G14G15G18G21G22
+ -21653664.353 7 -16872979.034 6 20551557.193 20551554.944 20551556.381
+ 47.600 41.900
+ -7174296.549 6 -5590358.169 5 22378072.022 22378069.020 22378071.226
+ 36.300 30.800
+ -18560797.508 7 -14462957.073 6 21049538.540 21049537.381 21049537.679
+ 42.600 39.300
+ -16652731.956 7 -12976152.347 7 20510347.665 20510344.121 20510346.719
+ 45.300 45.100
+ -11200316.792 5 -8727515.120 4 22766774.914 22766771.165 22766773.668
+ 30.800 24.200
+ -20871341.773 7 -16263380.344 7 20746726.975 20746722.475 20746726.331
+ 46.700 46.400
+ 06 1 1 4 44 0.0000000 0 6G09G14G15G18G21G22
+ -21611220.281 7 -16839905.724 6 20559634.089 20559631.766 20559633.210
+ 47.500 41.800
+ -7324045.634 6 -5707045.720 5 22349575.636 22349572.528 22349574.656
+ 36.300 30.400
+ -18408690.833 7 -14344432.454 6 21078483.383 21078482.409 21078482.614
+ 42.700 39.600
+ -16598759.999 7 -12934096.276 7 20520617.988 20520614.651 20520617.133
+ 45.600 44.900
+ -10982723.721 5 -8557962.146 3 22808180.374 22808177.877 22808179.609
+ 31.300 23.400
+ -20954274.362 7 -16328003.139 7 20730945.476 20730940.801 20730944.817
+ 46.700 46.400
+ 06 1 1 4 45 0.0000000 0 6G09G14G15G18G21G22
+ -21566069.823 7 -16804723.548 6 20568225.959 20568223.638 20568225.051
+ 47.600 41.800
+ -7472839.544 5 -5822988.990 5 22321260.867 22321258.274 22321259.756
+ 35.600 31.800
+ -18254627.659 7 -14224383.262 6 21107800.528 21107799.560 21107799.993
+ 42.700 38.900
+ -16543168.292 7 -12890778.065 7 20531196.839 20531193.391 20531195.909
+ 45.500 44.900
+ -10764215.528 4 -8387696.042 3 22849761.881 22849758.290 22849760.665
+ 29.500 20.500
+ -21035931.784 7 -16391632.294 7 20715406.729 20715401.966 20715406.073
+ 47.000 46.500
+ 06 1 1 4 46 0.0000000 0 7G05G09G14G15G18G21G22
+ -198246.502 2 -154477.710 2 24430938.533 24430940.214 24430938.755
+ 12.600 16.100
+ -21518223.216 7 -16767440.468 6 20577330.921 20577328.453 20577330.043
+ 47.600 41.500
+ -7620673.520 5 -5938184.263 5 22293129.088 22293126.216 22293128.144
+ 35.800 31.100
+ -18098627.658 7 -14102824.855 6 21137486.761 21137485.276 21137485.769
+ 42.200 38.600
+ -16485954.627 7 -12846195.995 7 20542084.192 20542080.838 20542083.327
+ 45.700 44.800
+ -10544814.056 5 -8216733.919 3 22891512.252 22891509.025 22891511.327
+ 30.200 22.100
+ -21116302.562 7 -16454258.872 7 20700112.480 20700107.889 20700111.786
+ 46.500 46.600
+ 06 1 1 4 47 0.0000000 0 7G05G09G14G15G18G21G22
+ -383751.051 4 -299026.593 2 24395640.961 24395640.307 24395639.966
+ 24.200 17.000
+ -21467690.040 7 -16728063.968 6 20586946.965 20586944.565 20586946.124
+ 47.600 41.300
+ -7767543.477 6 -6052628.330 5 22265180.607 22265177.656 22265179.616
+ 36.400 31.100
+ -17940711.479 7 -13979773.280 6 21167537.814 21167535.697 21167536.534
+ 42.300 38.400
+ -16427117.562 7 -12800348.934 7 20553280.589 20553277.187 20553279.612
+ 45.600 44.600
+ -10324543.926 4 -8045094.870 3 22933428.628 22933425.732 22933427.432
+ 28.100 23.800
+ -21195376.110 7 -16515874.628 7 20685065.243 20685060.693 20685064.644
+ 46.700 46.700
+ 06 1 1 4 48 0.0000000 0 7G05G09G14G15G18G21G22
+ -568890.817 3 -443291.304 2 24360409.094 24360409.060 24360408.359
+ 21.100 15.100
+ -21414479.901 7 -16686601.516 6 20597072.539 20597070.131 20597071.690
+ 47.600 41.100
+ -7913445.155 6 -6166317.910 5 22237416.308 22237413.666 22237415.335
+ 36.500 32.100
+ -17780899.428 6 -13855244.458 6 21197949.110 21197947.074 21197947.686
+ 41.800 38.600
+ -16366656.888 7 -12753236.720 7 20564785.837 20564782.342 20564784.888
+ 45.500 44.300
+ -10103426.950 4 -7872796.035 4 22975506.411 22975502.669 22975504.754
+ 29.200 24.900
+ -21273141.705 7 -16576471.192 7 20670266.848 20670262.431 20670266.234
+ 46.700 47.000
+ 06 1 1 4 49 0.0000000 0 7G05G09G14G15G18G21G22
+ -753640.821 2 -587252.175 2 24325252.629 24325251.504 24325251.696
+ 17.000 12.600
+ -21358604.431 7 -16643062.179 6 20607705.390 20607702.852 20607704.519
+ 47.600 41.000
+ -8058374.963 6 -6279250.183 5 22209837.311 22209834.316 22209836.214
+ 36.500 32.100
+ -17619211.834 6 -13729254.153 6 21228717.661 21228715.196 21228716.151
+ 41.900 38.400
+ -16304569.464 7 -12704856.914 7 20576600.718 20576597.408 20576599.688
+ 45.600 44.400
+ -9881486.428 4 -7699855.440 3 23017739.189 23017736.854 23017738.489
+ 29.700 23.400
+ -21349587.923 7 -16636039.668 7 20655719.748 20655715.190 20655719.153
+ 46.700 47.200
+ 06 1 1 4 50 0.0000000 0 7G05G09G14G15G18G21G22
+ -937976.035 3 -730889.872 3 24290175.460 24290174.188 24290173.597
+ 21.100 22.100
+ -21300074.049 7 -16597454.083 6 20618843.104 20618840.876 20618842.326
+ 47.500 41.100
+ -8202328.818 6 -6391421.987 5 22182443.482 22182440.546 22182442.552
+ 36.600 31.800
+ -17455669.260 6 -13601818.427 6 21259838.222 21259836.359 21259836.867
+ 41.500 38.000
+ -16240854.381 7 -12655208.801 7 20588725.444 20588721.927 20588724.372
+ 45.600 44.400
+ -9658745.535 4 -7526291.181 3 23060125.692 23060122.675 23060124.507
+ 28.100 21.100
+ -21424704.461 7 -16694572.034 7 20641425.466 20641420.975 20641424.867
+ 46.800 47.200
+ 06 1 1 4 51 0.0000000 0 7G05G09G14G15G18G21G22
+ -1121871.401 3 -874184.830 24255180.529 24255179.420 24255179.540
+ 20.500 3.000
+ -21238901.045 7 -16549786.806 6 20630484.079 20630481.782 20630483.257
+ 47.600 41.200
+ -8345303.163 6 -6502830.522 5 22155236.594 22155233.696 22155235.567
+ 37.500 32.300
+ -17290292.841 6 -13472953.720 6 21291308.575 21291306.566 21291307.180
+ 41.300 38.000
+ -16175511.173 7 -12604292.022 7 20601159.653 20601156.297 20601158.665
+ 45.600 44.000
+ -9435227.143 4 -7352121.067 3 23102659.592 23102656.990 23102658.449
+ 26.800 22.100
+ -21498480.014 7 -16752059.473 7 20627386.486 20627382.066 20627385.888
+ 46.900 47.300
+ 06 1 1 4 52 0.0000000 0 7G05G09G14G15G18G21G22
+ -1305301.629 3 -1017117.392 24220274.304 24220273.255 24220273.473
+ 23.800 3.000
+ -21175096.874 7 -16500069.265 6 20642625.531 20642623.373 20642624.713
+ 47.600 41.300
+ -8487293.682 6 -6613472.444 5 22128216.280 22128213.642 22128215.433
+ 37.600 33.000
+ -17123103.821 6 -13342676.585 6 21323123.626 21323121.647 21323122.228
+ 41.100 37.800
+ -16108538.847 7 -12552105.798 7 20613904.013 20613900.663 20613903.081
+ 45.700 43.900
+ -9210953.998 4 -7177362.838 2 23145336.993 23145334.682 23145336.886
+ 29.000 17.800
+ -21570903.614 7 -16808493.451 7 20613604.826 20613600.101 20613604.213
+ 47.100 47.300
+ 06 1 1 4 53 0.0000000 0 7G05G09G14G15G18G21G22
+ -1488241.684 3 -1159668.018 2 24185461.566 24185461.593 24185460.968
+ 23.800 17.800
+ -21108673.942 7 -16448311.133 6 20655265.411 20655263.148 20655264.639
+ 47.500 41.200
+ -8628296.962 6 -6723345.087 5 22101384.611 22101381.586 22101383.631
+ 37.700 32.400
+ -16954123.532 6 -13211003.703 6 21355279.259 21355277.520 21355277.991
+ 40.900 37.200
+ -16039936.384 7 -12498649.339 7 20626958.523 20626955.427 20626957.603
+ 45.500 44.000
+ -8985949.725 4 -7002034.867 2 23188155.499 23188151.696 23188153.996
+ 27.900 16.100
+ -21641964.586 7 -16863865.633 7 20600082.464 20600077.707 20600081.793
+ 47.300 47.500
+ 06 1 1 4 54 0.0000000 0 7G05G09G14G15G18G21G22
+ -1670666.222 3 -1301816.908 3 24150747.634 24150747.070 24150746.841
+ 21.100 19.900
+ -21039645.189 7 -16394522.494 6 20668401.234 20668398.879 20668400.347
+ 47.300 41.000
+ -8768309.578 6 -6832445.797 5 22074741.005 22074738.166 22074740.006
+ 37.700 33.200
+ -16783373.580 6 -13077951.796 6 21387771.729 21387770.245 21387770.577
+ 40.700 37.600
+ -15969703.307 7 -12443922.278 7 20640323.881 20640320.342 20640322.735
+ 45.600 43.800
+ -8760237.283 4 -6826155.158 3 23231105.920 23231103.786 23231105.420
+ 27.100 21.600
+ -21711652.168 7 -16918167.646 7 20586821.362 20586816.693 20586820.696
+ 47.300 47.800
+ 06 1 1 4 55 0.0000000 0 7G05G09G14G15G18G21G22
+ -1852549.907 3 -1443544.399 3 24116136.673 24116135.378 24116135.406
+ 21.100 19.300
+ -20968023.350 7 -16338713.269 6 20682030.098 20682028.113 20682029.376
+ 47.200 41.000
+ -8907327.256 6 -6940771.211 5 22048286.938 22048283.673 22048285.869
+ 38.000 33.200
+ -16610876.184 6 -12943538.298 6 21420596.829 21420595.356 21420595.755
+ 40.700 37.200
+ -15897839.096 7 -12387924.201 7 20653999.096 20653995.618 20653998.124
+ 46.200 43.600
+ -8533839.793 4 -6649741.597 3 23274188.955 23274186.048 23274187.588
+ 25.300 21.600
+ -21779955.459 7 -16971390.986 7 20573823.605 20573818.933 20573823.001
+ 47.300 47.900
+ 06 1 1 4 56 0.0000000 0 7G05G09G14G15G18G21G22
+ -2033867.499 2 -1584830.704 2 24081633.739 24081632.119 24081632.161
+ 17.800 17.000
+ -20893822.065 7 -16280894.081 6 20696150.230 20696148.041 20696149.422
+ 47.200 40.700
+ -9045346.887 6 -7048318.959 5 22022022.300 22022019.624 22022021.424
+ 38.100 33.800
+ -16436652.980 6 -12807780.035 6 21453750.673 21453749.229 21453749.644
+ 40.900 37.400
+ -15824343.696 7 -12330655.065 7 20667984.751 20667981.260 20667983.766
+ 46.100 43.300
+ -8306779.829 4 -6472811.828 3 23317396.973 23317394.190 23317395.699
+ 28.100 23.400
+ -21846863.669 7 -17023527.254 8 20561091.347 20561086.767 20561090.782
+ 47.400 48.000
+ 06 1 1 4 57 0.0000000 0 7G05G09G14G15G18G21G22
+ -2214593.477 4 -1725656.013 3 24047242.543 24047241.029 24047240.842
+ 25.300 22.100
+ -20817055.882 7 -16221076.274 6 20710758.423 20710756.108 20710757.647
+ 47.400 40.800
+ -9182364.665 6 -7155086.026 5 21995948.718 21995945.742 21995947.762
+ 38.400 33.400
+ -16260725.921 6 -12670694.019 5 21487228.349 21487226.659 21487227.260
+ 40.100 35.800
+ -15749216.327 7 -12272114.256 7 20682280.760 20682277.595 20682279.879
+ 46.100 43.200
+ -8079081.149 4 -6295384.410 3 23360726.015 23360723.427 23360725.263
+ 25.300 19.300
+ -21912366.301 7 -17074568.270 8 20548626.655 20548622.082 20548626.026
+ 47.300 48.200
+ 06 1 1 4 58 0.0000000 0 7G05G09G14G15G18G21G22
+ -2394702.490 4 -1866000.607 3 24012968.889 24012966.867 24012967.425
+ 25.900 18.600
+ -20737739.152 7 -16159271.027 6 20725852.078 20725849.643 20725851.171
+ 47.500 40.600
+ -9318377.661 6 -7261070.140 5 21970066.756 21970063.647 21970065.563
+ 38.900 34.400
+ -16083117.301 6 -12532297.679 6 21521026.368 21521024.769 21521025.271
+ 40.200 36.400
+ -15672457.644 7 -12212302.302 7 20696887.796 20696884.287 20696886.652
+ 45.900 43.100
+ -7850766.724 4 -6117477.115 3 23404173.017 23404170.249 23404171.947
+ 24.900 19.300
+ -21976452.407 7 -17124505.495 8 20536431.319 20536426.752 20536430.716
+ 47.100 48.200
+ 06 1 1 4 59 0.0000000 0 7G05G09G14G15G18G21G22
+ -2574169.025 4 -2005844.545 3 23978817.275 23978816.256 23978815.941
+ 24.900 22.600
+ -20655885.889 7 -16095489.258 6 20741427.965 20741425.637 20741427.287
+ 47.400 40.200
+ -9453382.175 6 -7366268.413 5 21944376.091 21944372.662 21944374.950
+ 39.500 33.500
+ -15903850.448 6 -12392609.255 5 21555139.366 21555137.875 21555138.428
+ 39.800 35.600
+ -15594067.828 7 -12151219.338 7 20711804.829 20711801.197 20711803.769
+ 46.100 42.600
+ -7621859.750 4 -5939108.126 2 23447732.683 23447729.936 23447731.657
+ 27.100 15.100
+ -22039111.101 7 -17173330.451 8 20524507.880 20524503.382 20524507.139
+ 46.900 48.400
+ 06 1 1 5 0 0.0000000 0 7G05G09G14G15G18G21G22
+ -2752967.591 4 -2145167.988 3 23944792.305 23944792.142 23944791.099
+ 25.300 20.500
+ -20571511.569 7 -16029743.033 6 20757483.945 20757481.706 20757483.147
+ 47.200 40.400
+ -9587373.999 6 -7470677.580 5 21918878.008 21918875.063 21918876.860
+ 39.300 34.400
+ -15722947.359 6 -12251645.860 5 21589564.833 21589562.928 21589563.401
+ 39.700 35.900
+ -15514047.009 7 -12088865.454 7 20727032.308 20727028.855 20727031.224
+ 46.200 42.600
+ -7392382.244 4 -5760294.555 2 23491401.315 23491398.454 23491399.827
+ 26.500 17.000
+ -22100332.121 7 -17221035.138 8 20512857.709 20512853.254 20512857.155
+ 47.000 48.500
+ 06 1 1 5 1 0.0000000 0 7G05G09G14G15G18G21G22
+ -2931072.760 4 -2283951.193 3 23910900.545 23910899.331 23910899.331
+ 25.900 18.600
+ -20484631.248 7 -15962044.079 6 20774016.856 20774014.559 20774015.956
+ 47.100 40.200
+ -9720351.137 6 -7574296.070 5 21893573.295 21893570.378 21893572.316
+ 39.700 34.900
+ -15540430.765 6 -12109425.177 5 21624295.973 21624294.586 21624295.122
+ 39.700 35.200
+ -15432395.731 7 -12025241.086 7 20742570.203 20742566.604 20742569.106
+ 46.400 42.700
+ -7162358.073 4 -5581055.022 2 23535172.727 23535170.282 23535171.685
+ 25.300 17.800
+ -22160105.310 7 -17267611.651 8 20501483.505 20501478.770 20501482.841
+ 47.100 48.600
+ 06 1 1 5 2 0.0000000 0 7G05G09G14G15G18G21G22
+ -3108458.789 4 -2422173.969 3 23877143.437 23877144.048 23877142.937
+ 25.300 20.500
+ -20395261.088 7 -15892404.990 6 20791023.286 20791020.985 20791022.493
+ 46.800 40.300
+ -9852309.628 6 -7677120.828 5 21868462.184 21868459.349 21868461.307
+ 39.300 34.800
+ -15356323.980 6 -11965965.405 5 21659330.989 21659329.035 21659329.711
+ 39.200 35.200
+ -15349114.234 7 -11960346.421 7 20758417.819 20758414.612 20758416.868
+ 46.300 42.500
+ -6931810.107 4 -5401407.336 3 23579045.041 23579042.068 23579044.069
+ 26.800 19.300
+ -22218419.336 7 -17313051.149 8 20490386.526 20490382.009 20490385.930
+ 47.300 48.800
+ 06 1 1 5 3 0.0000000 0 7G05G09G14G15G18G21G22
+ -3285100.348 4 -2559816.618 2 23843530.322 23843529.181 23843529.492
+ 25.600 17.800
+ -20303417.073 7 -15820838.226 6 20808500.556 20808498.260 20808499.790
+ 47.000 39.900
+ -9983246.513 6 -7779149.537 5 21843545.744 21843542.871 21843544.708
+ 39.600 35.400
+ -15170649.467 6 -11821284.041 5 21694662.453 21694661.618 21694661.965
+ 38.700 34.300
+ -15264204.094 7 -11894182.682 7 20774575.395 20774572.407 20774574.576
+ 46.300 42.400
+ -6700761.190 3 -5221369.327 3 23623012.801 23623010.077 23623011.396
+ 23.800 20.500
+ -22275264.233 7 -17357345.870 8 20479569.606 20479564.825 20479568.915
+ 47.400 48.900
+ 06 1 1 5 4 0.0000000 0 7G05G09G14G15G18G21G22
+ -3460971.891 4 -2696859.299 3 23810064.352 23810062.219 23810062.506
+ 25.300 18.600
+ -20209115.768 7 -15747356.692 6 20826445.709 20826443.356 20826444.798
+ 46.700 40.000
+ -10113158.848 6 -7880379.893 5 21818824.020 21818821.325 21818823.126
+ 39.700 35.500
+ -14983430.841 6 -11675399.417 5 21730290.965 21730288.045 21730289.301
+ 38.400 34.600
+ -15177666.036 7 -11826750.438 7 20791042.822 20791040.169 20791042.233
+ 46.100 42.100
+ -6469234.282 4 -5040958.858 3 23667070.370 23667068.047 23667069.470
+ 24.600 20.500
+ -22330629.770 7 -17400487.847 8 20469033.494 20469029.132 20469032.952
+ 47.400 49.000
+ 06 1 1 5 5 0.0000000 0 7G05G09G14G15G18G21G22
+ -3636047.956 3 -2833282.057 3 23776747.765 23776746.241 23776746.207
+ 22.600 19.300
+ -20112372.684 7 -15671972.465 6 20844855.134 20844853.028 20844854.361
+ 46.600 39.800
+ -10242043.014 6 -7980809.085 5 21794298.718 21794295.631 21794297.632
+ 40.500 35.700
+ -14794691.383 6 -11528329.761 5 21766204.713 21766204.212 21766204.397
+ 38.400 34.500
+ -15089500.991 7 -11758050.412 6 20807820.591 20807817.364 20807819.691
+ 46.200 41.900
+ -6237251.776 3 -4860193.410 3 23711214.209 23711213.099 23711213.792
+ 23.800 18.600
+ -22384504.871 7 -17442468.446 8 20458781.559 20458777.003 20458780.949
+ 47.400 49.100
+ 06 1 1 5 6 0.0000000 0 7G05G09G14G15G18G21G22
+ -3810302.639 4 -2969064.836 3 23743588.031 23743586.532 23743586.737
+ 26.800 19.900
+ -20013206.783 7 -15594700.331 6 20863725.873 20863723.639 20863725.025
+ 46.800 40.000
+ -10369896.141 6 -8080434.888 5 21769968.914 21769965.715 21769967.895
+ 40.300 35.700
+ -14604454.373 6 -11380093.164 5 21802406.667 21802405.164 21802405.469
+ 37.400 34.500
+ -14999710.805 7 -11688084.046 6 20824906.709 20824903.799 20824905.882
+ 46.100 41.600
+ -6004837.163 4 -4679091.193 2 23755442.106 23755439.866 23755441.288
+ 24.200 13.900
+ -22436879.976 7 -17483280.215 8 20448814.961 20448810.415 20448814.305
+ 47.500 49.300
+ 06 1 1 5 7 0.0000000 0 7G05G09G14G15G18G21G22
+ -3983710.744 4 -3104187.912 4 23710589.186 23710588.674 23710588.333
+ 26.200 24.600
+ -19911635.004 7 -15515553.488 6 20883054.342 20883052.087 20883053.545
+ 46.600 39.700
+ -10496715.216 6 -8179254.911 6 21745835.930 21745832.945 21745834.998
+ 41.000 36.000
+ -14412743.580 6 -11230708.132 5 21838888.097 21838886.585 21838886.915
+ 38.300 33.900
+ -14908296.081 7 -11616851.803 6 20842302.752 20842299.478 20842301.713
+ 46.000 41.700
+ -5772013.117 3 -4497669.921 2 23799745.862 23799744.942 23799745.466
+ 22.100 12.600
+ -22487744.462 7 -17522914.880 8 20439135.825 20439131.185 20439135.181
+ 47.500 49.400
+ 06 1 1 5 8 0.0000000 0 7G05G09G14G15G18G21G22
+ -4156246.487 4 -3238631.267 3 23677755.468 23677755.783 23677755.727
+ 25.600 23.800
+ -19807674.874 7 -15434545.593 6 20902837.191 20902834.992 20902836.309
+ 46.100 39.700
+ -10622497.491 6 -8277267.027 6 21721900.622 21721897.217 21721899.551
+ 41.200 36.200
+ -14219582.429 6 -11080192.984 5 21875644.368 21875643.717 21875643.836
+ 37.500 33.000
+ -14815259.125 7 -11544355.483 6 20860007.221 20860003.814 20860006.154
+ 46.300 41.200
+ -5538802.483 3 -4315947.408 3 23844125.223 23844124.330 23844124.604
+ 23.800 18.600
+ -22537088.099 7 -17561364.466 8 20429746.073 20429741.457 20429745.456
+ 47.700 49.500
+ 06 1 1 5 9 0.0000000 0 7G05G09G14G15G18G21G22
+ -4327884.472 4 -3372375.054 4 23645094.453 23645094.335 23645094.116
+ 26.800 24.600
+ -19701343.746 7 -15351690.175 6 20923071.410 20923069.145 20923070.489
+ 46.000 39.700
+ -10747239.530 6 -8374468.588 6 21698162.924 21698159.710 21698161.868
+ 41.300 36.800
+ -14024995.689 6 -10928566.985 5 21912674.727 21912672.676 21912673.247
+ 36.800 34.400
+ -14720601.731 7 -11470596.484 6 20878019.799 20878016.660 20878018.929
+ 46.600 41.200
+ -5305227.642 3 -4133941.138 3 23888574.351 23888571.947 23888572.984
+ 22.600 19.300
+ -22584901.221 7 -17598621.442 8 20420647.369 20420642.828 20420646.794
+ 47.500 49.400
+ 06 1 1 5 10 0.0000000 0 7G05G09G14G15G18G21G22
+ -4498598.974 4 -3505399.229 3 23612608.982 23612608.022 23612608.105
+ 25.900 23.000
+ -19592660.726 7 -15267002.111 6 20943753.269 20943750.803 20943752.293
+ 46.000 39.100
+ -10870938.964 6 -8470857.736 6 21674623.352 21674620.463 21674622.419
+ 40.900 36.500
+ -13829007.429 6 -10775848.893 5 21949970.220 21949967.640 21949968.501
+ 37.100 33.400
+ -14624325.658 7 -11395576.178 6 20896340.409 20896337.303 20896339.728
+ 46.600 41.000
+ -5071311.355 3 -3951668.823 1 23933086.104 23933084.358 23933085.122
+ 18.600 6.500
+ -22631173.768 7 -17634677.973 8 20411842.006 20411837.423 20411841.405
+ 47.400 49.400
+ 06 1 1 5 11 0.0000000 0 7G05G09G14G15G18G21G22
+ -4668364.576 4 -3637684.070 4 23580304.595 23580302.339 23580303.044
+ 28.600 24.200
+ -19481644.067 7 -15180495.623 6 20964878.741 20964876.603 20964877.893
+ 45.700 39.100
+ -10993592.829 6 -8566432.147 6 21651283.202 21651280.192 21651282.260
+ 41.300 36.700
+ -13631641.055 6 -10622056.913 5 21987527.203 21987525.434 21987525.930
+ 36.600 32.800
+ -14526433.307 7 -11319296.441 6 20914968.751 20914965.599 20914967.945
+ 46.700 40.700
+ -4837076.750 3 -3769148.492 2 23977660.545 23977658.623 23977659.157
+ 22.100 16.100
+ -22675895.375 7 -17669525.982 8 20403331.722 20403327.235 20403331.076
+ 47.300 49.600
+ 06 1 1 5 12 0.0000000 0 7G05G09G14G15G18G21G22
+ -4837155.776 4 -3769209.600 4 23548184.773 23548182.837 23548183.512
+ 28.400 24.200
+ -19368312.585 7 -15092185.373 6 20986444.949 20986443.002 20986444.223
+ 46.000 39.300
+ -11115197.946 6 -8661189.360 6 21628142.168 21628139.482 21628141.256
+ 41.300 36.600
+ -13432920.883 6 -10467210.092 5 22025340.980 22025340.855 22025340.848
+ 36.500 33.000
+ -14426927.062 7 -11241759.122 6 20933904.575 20933900.921 20933903.392
+ 46.500 40.500
+ -4602545.459 3 -3586396.915 1 24022289.769 24022288.017 24022289.296
+ 18.600 9.000
+ -22719056.553 7 -17703158.069 8 20395118.423 20395113.889 20395117.866
+ 47.600 49.600
+ 06 1 1 5 13 0.0000000 0 7G05G09G14G15G18G21G22
+ -5004947.158 4 -3899956.032 3 23516254.791 23516252.103 23516253.319
+ 26.500 22.100
+ -19252685.483 7 -15002086.334 6 21008448.279 21008445.837 21008447.389
+ 45.900 38.900
+ -11235752.218 6 -8755127.728 6 21605201.922 21605198.797 21605200.738
+ 41.400 37.200
+ -13232870.537 5 -10311326.767 5 22063409.727 22063409.061 22063409.317
+ 35.900 32.800
+ -14325809.181 7 -11162965.980 6 20953146.333 20953143.031 20953145.371
+ 46.400 40.300
+ -4367740.801 2 -3403432.314 2 24066971.086 24066969.913 24066970.173
+ 17.000 13.900
+ -22760647.289 7 -17735566.434 8 20387204.222 20387199.461 20387203.535
+ 47.800 49.600
+ 06 1 1 5 14 0.0000000 0 7G05G09G14G15G18G21G22
+ -5171713.276 4 -4029903.544 3 23484519.151 23484518.374 23484518.497
+ 27.600 23.000
+ -19134782.268 7 -14910213.701 6 21030884.609 21030882.222 21030883.709
+ 46.100 38.600
+ -11355252.409 6 -8848244.735 6 21582461.431 21582458.662 21582460.470
+ 41.500 37.700
+ -13031514.713 6 -10154426.215 5 22101726.925 22101726.026 22101726.309
+ 36.400 32.600
+ -14223082.089 7 -11082918.918 6 20972694.204 20972691.335 20972693.653
+ 46.300 40.200
+ -4132684.820 3 -3220271.932 2 24111701.757 24111699.415 24111700.617
+ 22.100 17.800
+ -22800658.246 7 -17766743.801 8 20379590.023 20379585.606 20379589.383
+ 47.500 49.700
+ 06 1 1 5 15 0.0000000 0 7G05G09G14G15G18G21G22
+ -5337428.622 4 -4159032.326 3 23452983.829 23452983.025 23452983.204
+ 27.100 22.100
+ -19014622.504 7 -14816582.711 6 21053750.021 21053747.679 21053749.290
+ 45.800 38.500
+ -11473695.952 7 -8940538.390 6 21559922.488 21559919.464 21559921.496
+ 42.100 37.200
+ -12828877.878 5 -9996527.451 5 22140287.563 22140286.527 22140286.895
+ 35.900 31.800
+ -14118748.606 7 -11001620.118 6 20992548.526 20992545.347 20992547.761
+ 46.500 39.700
+ -3897399.961 3 -3036933.214 1 24156475.502 24156473.357 24156474.037
+ 21.600 9.000
+ -22839079.941 7 -17796682.788 8 20372278.730 20372274.223 20372278.155
+ 47.800 49.700
+ 06 1 1 5 16 0.0000000 0 7G05G09G14G15G18G21G22
+ -5502068.019 4 -4287322.679 3 23421654.842 23421653.276 23421654.056
+ 29.000 23.000
+ -18892226.157 7 -14721208.935 6 21077041.257 21077039.140 21077040.403
+ 45.300 38.500
+ -11591080.341 6 -9032006.726 6 21537585.004 21537582.081 21537583.868
+ 41.800 38.100
+ -12624984.333 5 -9837649.385 5 22179087.611 22179086.203 22179086.733
+ 35.900 32.600
+ -14012812.762 7 -10919072.725 6 21012707.911 21012704.432 21012706.831
+ 46.600 39.700
+ -3661908.834 3 -2853433.727 2 24201286.750 24201285.389 24201285.960
+ 19.300 12.600
+ -22875902.605 8 -17825375.775 8 20365271.695 20365267.082 20365271.091
+ 48.000 49.800
+ 06 1 1 5 17 0.0000000 0 7G05G09G14G15G18G21G22
+ -5665606.161 4 -4414754.930 3 23390534.852 23390533.050 23390533.598
+ 27.400 23.800
+ -18767613.367 7 -14624108.069 6 21100754.220 21100752.260 21100753.458
+ 45.400 38.600
+ -11707402.444 7 -9122647.306 6 21515449.674 21515446.327 21515448.627
+ 42.100 37.300
+ -12419858.556 5 -9677811.165 5 22218121.449 22218120.402 22218120.587
+ 35.300 32.300
+ -13905276.721 7 -10835278.421 6 21033171.148 21033167.842 21033170.159
+ 46.300 39.800
+ -3426234.005 3 -2669791.202 2 24246135.530 24246133.024 24246134.098
+ 19.900 13.900
+ -22911116.395 8 -17852815.098 8 20358570.841 20358566.171 20358570.199
+ 48.000 49.900
+ 06 1 1 5 18 0.0000000 0 7G05G09G14G15G18G21G22
+ -5828017.697 4 -4541309.284 3 23359628.552 23359627.481 23359627.500
+ 29.500 23.400
+ -18640804.009 7 -14525295.581 6 21124885.570 21124883.206 21124884.646
+ 45.600 38.600
+ -11822660.592 7 -9212458.851 6 21493516.751 21493513.810 21493515.781
+ 42.400 38.300
+ -12213525.135 5 -9517031.933 5 22257385.067 22257384.277 22257384.465
+ 34.500 30.600
+ -13796144.617 7 -10750240.446 6 21053937.587 21053935.124 21053936.986
+ 46.200 39.900
+ -3190397.221 3 -2486022.422 24291013.275 24291011.375 24291012.840
+ 21.600 3.000
+ -22944712.710 7 -17878994.045 8 20352177.451 20352172.954 20352176.839
+ 47.800 50.000
+ 06 1 1 5 19 0.0000000 0 7G05G09G14G15G18G21G22
+ -5989277.509 4 -4666966.221 3 23328941.288 23328940.227 23328940.101
+ 27.100 22.100
+ -18511818.683 7 -14424787.527 6 21149430.545 21149428.181 21149429.674
+ 45.400 38.200
+ -11936851.910 7 -9301439.082 6 21471786.820 21471783.708 21471785.823
+ 42.400 38.100
+ -12006008.514 5 -9355330.685 5 22296874.791 22296873.540 22296873.945
+ 34.700 31.100
+ -13685419.129 7 -10663960.860 6 21075009.070 21075005.462 21075007.800
+ 46.100 39.400
+ -2954420.629 2 -2302144.724 2 24335917.694 24335916.486 24335916.937
+ 15.100 13.900
+ -22976682.199 7 -17903905.338 8 20346093.899 20346089.365 20346093.228
+ 47.800 49.900
+ 06 1 1 5 20 0.0000000 0 7G05G09G14G15G18G21G22
+ -6149360.326 5 -4791706.009 4 23298479.989 23298477.500 23298478.551
+ 30.800 24.600
+ -18380678.264 7 -14322600.188 6 21174385.752 21174383.462 21174384.813
+ 45.000 38.200
+ -12049973.626 7 -9389585.860 6 21450260.577 21450257.443 21450259.617
+ 42.700 38.700
+ -11797334.196 5 -9192727.389 5 22336584.112 22336583.142 22336583.384
+ 34.700 30.600
+ -13573104.533 7 -10576443.013 6 21096381.266 21096378.429 21096380.370
+ 46.000 39.400
+ -2718326.599 3 -2118175.477 1 24380846.686 24380844.698 24380845.315
+ 23.000 9.000
+ -23007015.561 7 -17927541.721 8 20340321.713 20340317.105 20340321.084
+ 47.800 50.000
+ 06 1 1 5 21 0.0000000 0 6G05G09G14G15G18G22
+ -6308241.336 4 -4915509.333 4 23268245.428 23268243.551 23268243.950
+ 29.000 25.300
+ -18247404.242 7 -14218750.304 6 21199746.634 21199744.712 21199745.930
+ 44.700 37.700
+ -12162023.615 7 -9476897.531 6 21428937.887 21428935.007 21428936.941
+ 42.600 38.700
+ -11587526.434 5 -9029240.866 5 22376509.440 22376508.332 22376508.445
+ 34.000 30.800
+ -13459204.780 7 -10487689.982 6 21118055.827 21118052.618 21118054.907
+ 46.100 39.100
+ -23035704.348 8 -17949896.623 8 20334862.456 20334857.795 20334861.874
+ 48.300 49.900
+ 06 1 1 5 22 0.0000000 0 6G05G09G14G15G18G22
+ -6465895.500 5 -5038356.645 4 23238244.410 23238242.787 23238243.453
+ 30.200 24.600
+ -18112017.529 7 -14113254.166 6 21225509.873 21225508.081 21225509.082
+ 44.400 38.000
+ -12272999.013 7 -9563371.847 6 21407820.120 21407817.123 21407819.116
+ 42.800 39.000
+ -11376610.318 5 -8864890.717 5 22416645.839 22416644.468 22416644.575
+ 33.600 31.000
+ -13343723.744 7 -10397704.785 6 21140031.266 21140027.950 21140030.292
+ 46.100 39.000
+ -23062739.288 8 -17970962.814 8 20329717.998 20329713.130 20329717.324
+ 48.200 49.900
+ 06 1 1 5 23 0.0000000 0 6G05G09G14G15G18G22
+ -6622297.783 4 -5160228.518 4 23208481.868 23208480.760 23208480.600
+ 28.600 25.300
+ -17974538.944 7 -14006128.002 6 21251671.421 21251669.336 21251670.567
+ 44.800 37.800
+ -12382898.141 7 -9649007.517 6 21386907.180 21386903.912 21386906.049
+ 42.800 38.900
+ -11164610.677 5 -8699696.242 5 22456987.874 22456986.554 22456986.940
+ 33.600 30.200
+ -13226665.354 7 -10306490.474 6 21162306.635 21162303.448 21162305.615
+ 45.700 38.800
+ -23088111.896 8 -17990733.681 8 20324889.716 20324885.037 20324889.021
+ 48.100 50.000
+ 06 1 1 5 24 0.0000000 0 7G05G09G14G15G18G22G30
+ -6777423.504 4 -5281105.613 4 23178962.646 23178960.813 23178961.479
+ 29.700 25.900
+ -17834991.264 7 -13897389.545 6 21278226.244 21278224.173 21278225.578
+ 45.000 37.300
+ -12491717.750 7 -9733802.003 6 21366199.518 21366196.207 21366198.397
+ 43.200 39.000
+ -10951552.439 5 -8533676.891 4 22497531.897 22497530.263 22497530.760
+ 33.400 28.800
+ -13108034.672 7 -10214051.013 6 21184880.906 21184878.072 21184880.297
+ 45.800 38.400
+ -23111813.244 8 -18009202.264 8 20320379.417 20320374.812 20320378.780
+ 48.300 50.100
+ -238353.552 3 -185730.043 1 24622147.739 24622146.769 24622146.144
+ 23.800 9.000
+ 06 1 1 5 25 0.0000000 0 7G05G09G14G15G18G22G30
+ -6931247.837 5 -5400968.678 4 23149690.904 23149688.461 23149689.868
+ 31.100 24.600
+ -17693394.502 7 -13787054.400 6 21305171.478 21305169.050 21305170.644
+ 44.300 36.800
+ -12599456.130 7 -9817753.974 6 21345697.408 21345694.225 21345696.390
+ 43.400 39.000
+ -10737460.417 5 -8366851.988 5 22538272.054 22538270.894 22538270.918
+ 32.400 30.100
+ -12987836.182 7 -10120389.880 6 21207754.696 21207750.956 21207753.503
+ 45.800 38.100
+ -23133835.098 8 -18026362.153 8 20316188.707 20316184.098 20316188.046
+ 48.100 50.100
+ -442573.950 3 -344862.673 3 24583284.743 24583284.011 24583283.930
+ 20.500 21.600
+ 06 1 1 5 26 0.0000000 0 7G05G09G14G15G18G22G30
+ -7083746.218 5 -5519798.546 4 23120671.201 23120669.618 23120670.050
+ 31.100 27.100
+ -17549771.180 7 -13675140.131 6 21332502.077 21332499.814 21332501.203
+ 44.100 37.100
+ -12706111.101 7 -9900861.729 6 21325401.758 21325398.527 21325400.691
+ 43.200 39.300
+ -10522359.864 5 -8199241.241 4 22579204.128 22579202.866 22579203.118
+ 32.600 29.700
+ -12866074.083 7 -10025510.344 6 21230924.626 21230921.845 21230923.945
+ 46.000 38.100
+ -23154168.895 8 -18042206.673 8 20312319.252 20312314.790 20312318.720
+ 48.300 50.100
+ -646692.711 2 -503916.125 3 24544440.859 24544440.970 24544441.318
+ 17.000 21.100
+ 06 1 1 5 27 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -269686.880 2 -210145.035 9 24207294.024 24207292.677 24207292.855
+ 15.100 -3.000
+ -7234894.085 5 -5637576.064 4 23091908.351 23091906.771 23091907.069
+ 30.100 25.300
+ -17404144.596 7 -13561664.871 6 21360213.701 21360211.625 21360213.016
+ 43.800 36.700
+ -12811679.886 7 -9983123.107 6 21305312.644 21305309.447 21305311.669
+ 43.500 39.700
+ -10306275.128 5 -8030863.549 4 22620323.815 22620322.400 22620322.891
+ 32.700 29.500
+ -12742753.383 7 -9929416.326 6 21254392.075 21254388.985 21254391.176
+ 45.900 37.700
+ -23172806.840 8 -18056729.745 8 20308772.830 20308768.017 20308772.172
+ 48.600 50.100
+ -850685.851 3 -662871.676 2 24505623.925 24505622.318 24505622.566
+ 19.900 16.100
+ 06 1 1 5 28 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -441256.565 1 -343835.544 24174644.487 24174642.916 24174643.266
+ 11.000 3.000
+ -7384667.020 5 -5754282.192 4 23063408.473 23063405.790 23063406.897
+ 31.000 25.900
+ -17256535.568 7 -13446644.845 6 21388302.669 21388300.760 21388301.942
+ 43.600 36.700
+ -12916160.216 7 -10064536.341 6 21285430.590 21285427.556 21285429.514
+ 43.200 39.800
+ -10089231.465 5 -7861738.644 4 22661625.586 22661624.542 22661624.721
+ 31.000 28.400
+ -12617879.622 7 -9832112.120 6 21278154.916 21278151.575 21278153.985
+ 46.100 37.700
+ -23189740.537 8 -18069924.838 8 20305550.650 20305545.674 20305549.872
+ 48.500 50.100
+ -1054528.794 3 -821710.198 2 24466833.740 24466831.765 24466833.032
+ 18.600 17.000
+ 06 1 1 5 29 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -612377.956 2 -477176.801 24142080.563 24142080.038 24142079.915
+ 15.100 3.000
+ -7533040.645 5 -5869897.946 4 23035173.089 23035171.562 23035171.704
+ 30.200 26.200
+ -17106966.630 7 -13330097.618 6 21416764.974 21416762.616 21416764.116
+ 43.600 36.300
+ -13019550.193 7 -10145099.949 6 21265756.149 21265752.985 21265755.205
+ 43.400 40.000
+ -9871253.796 5 -7691886.003 4 22703105.743 22703104.306 22703104.870
+ 31.600 28.800
+ -12491457.553 7 -9733601.451 6 21302211.865 21302208.900 21302211.199
+ 45.700 37.200
+ -23204961.850 8 -18081785.604 8 20302654.027 20302649.154 20302653.421
+ 48.800 49.900
+ -1258197.155 3 -980412.713 2 24428074.740 24428074.735 24428075.367
+ 23.000 12.600
+ 06 1 1 5 30 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -783047.571 3 -610166.058 9 24109603.264 24109602.407 24109602.197
+ 19.300 -3.000
+ -7679990.999 5 -5984404.660 4 23007210.072 23007207.693 23007208.617
+ 31.800 25.900
+ -16955461.120 7 -13212041.377 6 21445595.513 21445593.207 21445594.581
+ 43.400 36.400
+ -13121847.648 7 -10224812.250 6 21246289.574 21246286.501 21246288.526
+ 43.200 40.200
+ -9652367.164 5 -7521325.047 4 22744758.644 22744757.178 22744757.611
+ 32.000 26.800
+ -12363493.290 7 -9633889.056 6 21326563.018 21326559.767 21326561.989
+ 45.100 37.200
+ -23218462.958 8 -18092305.952 8 20300084.766 20300079.953 20300084.134
+ 48.700 50.000
+ -1461666.442 3 -1138960.167 9 24389358.012 24389356.290 24389356.751
+ 21.100 -3.000
+ 06 1 1 5 31 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -953262.214 3 -742800.792 1 24077212.802 24077211.377 24077211.804
+ 21.100 11.000
+ -7825493.821 5 -6097783.430 4 22979520.903 22979519.427 22979519.956
+ 32.400 27.100
+ -16802040.135 7 -13092492.560 6 21474790.530 21474788.111 21474789.690
+ 43.000 36.000
+ -13223050.271 7 -10303671.433 6 21227031.386 21227028.440 21227030.327
+ 43.400 40.700
+ -9432596.425 5 -7350075.172 4 22786579.471 22786578.398 22786578.109
+ 30.400 27.900
+ -12233992.015 7 -9532979.005 6 21351206.162 21351203.028 21351205.300
+ 44.900 37.100
+ -23230236.565 8 -18101480.191 8 20297844.354 20297839.510 20297843.737
+ 48.700 50.000
+ -1664911.843 3 -1297333.214 2 24350680.345 24350679.448 24350680.314
+ 23.000 15.100
+ 06 1 1 5 32 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1123018.397 3 -875078.256 2 24044908.881 24044907.782 24044908.226
+ 23.400 17.000
+ -7969525.227 5 -6210015.656 4 22952112.375 22952110.959 22952111.623
+ 33.000 26.800
+ -16646726.981 7 -12971469.325 6 21504345.652 21504343.367 21504344.877
+ 43.200 36.000
+ -13323155.798 7 -10381675.728 6 21207981.850 21207978.785 21207980.828
+ 43.500 40.500
+ -9211967.128 5 -7178156.292 4 22828563.994 22828562.803 22828562.965
+ 31.300 28.600
+ -12102959.096 7 -9430875.457 6 21376140.752 21376137.915 21376140.014
+ 44.900 36.600
+ -23240275.334 8 -18109302.611 8 20295933.968 20295929.226 20295933.324
+ 48.700 50.000
+ -1867908.747 3 -1455512.508 3 24312051.165 24312050.281 24312050.919
+ 23.000 19.300
+ 06 1 1 5 33 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1292312.820 4 -1006995.935 2 24012693.511 24012692.526 24012692.428
+ 27.100 17.800
+ -8112061.419 5 -6321082.769 4 22924988.904 22924987.299 22924987.912
+ 32.600 26.200
+ -16489544.741 7 -12848989.655 5 21534256.525 21534254.146 21534255.655
+ 43.000 35.600
+ -13422162.515 7 -10458823.818 6 21189141.442 21189138.380 21189140.586
+ 43.900 40.600
+ -8990504.267 4 -7005587.919 4 22870707.064 22870706.002 22870705.824
+ 29.200 28.600
+ -11970401.336 7 -9327583.732 6 21401365.828 21401362.762 21401364.999
+ 44.900 36.700
+ -23248571.207 8 -18115766.930 8 20294355.308 20294350.611 20294354.649
+ 48.700 50.000
+ -2070632.260 2 -1613478.810 2 24273473.651 24273473.175 24273473.682
+ 17.800 17.000
+ 06 1 1 5 34 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1461142.297 4 -1138551.312 3 23980565.765 23980564.864 23980565.116
+ 25.300 21.600
+ -8253078.662 5 -6430966.290 4 22898154.765 22898152.876 22898153.202
+ 32.600 27.600
+ -16330516.690 7 -12725071.689 5 21564518.395 21564516.185 21564517.512
+ 42.600 35.900
+ -13520067.879 7 -10535113.712 6 21170510.844 21170507.648 21170509.880
+ 43.900 40.900
+ -8768232.540 5 -6832389.250 4 22913004.144 22913002.857 22913002.988
+ 30.100 26.800
+ -11836324.015 7 -9223107.930 6 21426879.844 21426876.926 21426878.995
+ 44.700 36.700
+ -23255117.180 8 -18120867.689 8 20293109.527 20293104.933 20293108.938
+ 48.600 50.000
+ -2273057.254 3 -1771212.436 3 24234954.751 24234953.353 24234954.243
+ 19.900 19.900
+ 06 1 1 5 35 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1629503.377 4 -1269741.660 4 23948527.932 23948527.309 23948526.926
+ 27.900 25.600
+ -8392553.542 5 -6539647.960 4 22871613.705 22871611.650 22871612.330
+ 33.000 27.600
+ -16169664.922 7 -12599732.651 6 21595127.317 21595125.242 21595126.494
+ 42.200 36.000
+ -13616869.916 7 -10610543.860 6 21152089.725 21152086.617 21152088.859
+ 43.700 40.700
+ -8545176.852 4 -6658579.688 4 22955449.664 22955449.210 22955448.736
+ 29.500 27.900
+ -11700733.982 7 -9117453.408 6 21452682.290 21452678.776 21452681.039
+ 44.700 36.100
+ -23259906.632 8 -18124599.732 8 20292198.064 20292193.578 20292197.526
+ 48.600 50.000
+ -2475158.853 3 -1928694.090 3 24196496.028 24196494.604 24196495.562
+ 22.600 19.300
+ 06 1 1 5 36 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1797393.195 4 -1400564.787 4 23916580.057 23916578.446 23916578.979
+ 29.200 26.500
+ -8530462.616 5 -6647109.507 4 22845370.424 22845368.088 22845368.918
+ 32.100 28.600
+ -16007013.130 7 -12472991.003 5 21626079.243 21626076.763 21626078.249
+ 42.100 34.800
+ -13712566.471 7 -10685112.600 6 21133879.311 21133876.359 21133878.252
+ 43.400 41.000
+ -8321362.565 4 -6484179.050 4 22998040.499 22998039.799 22998039.366
+ 29.900 26.800
+ -11563637.870 7 -9010625.299 6 21478770.228 21478767.556 21478769.537
+ 44.600 36.300
+ -23262932.258 8 -18126957.366 8 20291622.460 20291617.722 20291621.778
+ 48.500 49.800
+ -2676912.089 3 -2085904.313 3 24158103.570 24158102.576 24158103.258
+ 23.400 19.300
+ 06 1 1 5 37 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -1964808.423 4 -1531018.128 4 23884722.285 23884720.186 23884721.035
+ 29.200 25.300
+ -8666782.749 5 -6753332.946 4 22819428.679 22819427.268 22819427.866
+ 33.800 28.600
+ -15842585.472 7 -12344865.561 5 21657368.711 21657366.501 21657367.937
+ 42.400 34.900
+ -13807155.893 7 -10758818.638 6 21115879.706 21115876.613 21115878.674
+ 43.800 41.300
+ -8096814.275 4 -6309206.394 4 23040770.149 23040769.436 23040769.479
+ 29.500 24.200
+ -11425041.704 7 -8902628.317 5 21505144.610 21505141.351 21505143.513
+ 44.100 35.700
+ -23264186.906 8 -18127935.019 8 20291383.673 20291378.983 20291383.104
+ 48.500 49.800
+ -2878291.696 3 -2242823.490 3 24119780.911 24119780.570 24119780.800
+ 22.100 20.500
+ 06 1 1 5 38 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2131745.700 4 -1661099.062 3 23852955.044 23852953.049 23852953.701
+ 27.100 23.800
+ -8801490.908 5 -6858300.316 4 22793795.509 22793793.080 22793793.788
+ 33.000 27.600
+ -15676404.004 7 -12215373.504 5 21688991.961 21688989.757 21688991.214
+ 42.400 34.800
+ -13900635.778 7 -10831660.100 6 21098090.938 21098087.917 21098090.013
+ 44.000 41.500
+ -7871556.543 4 -6133680.955 4 23083635.296 23083634.669 23083634.384
+ 29.000 24.900
+ -11284953.133 7 -8793468.414 6 21531802.315 21531799.644 21531801.474
+ 43.800 36.000
+ -23263664.828 8 -18127528.209 8 20291483.232 20291478.410 20291482.561
+ 48.700 49.800
+ -3079272.362 4 -2399431.710 2 24081535.784 24081535.174 24081535.672
+ 24.600 17.800
+ 06 1 1 5 39 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2298201.782 4 -1790805.020 4 23821279.386 23821277.570 23821278.265
+ 25.900 24.600
+ -8934564.256 5 -6961993.795 4 22768472.400 22768470.202 22768470.673
+ 33.600 29.500
+ -15508492.216 7 -12084533.147 5 21720944.694 21720942.199 21720943.856
+ 42.200 34.600
+ -13993004.517 7 -10903635.733 6 21080513.768 21080510.738 21080512.752
+ 44.000 41.500
+ -7645615.150 4 -5957622.795 3 23126630.973 23126629.822 23126629.931
+ 28.600 23.400
+ -11143378.667 7 -8683150.686 5 21558742.741 21558740.179 21558742.066
+ 43.800 35.700
+ -23261359.460 8 -18125731.819 8 20291921.706 20291917.033 20291921.066
+ 48.400 49.800
+ -3279828.876 3 -2555709.458 3 24043371.850 24043370.418 24043371.158
+ 20.500 19.300
+ 06 1 1 5 40 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2464173.675 4 -1920133.679 3 23789695.038 23789694.197 23789694.132
+ 26.500 22.600
+ -9065980.044 5 -7064395.657 4 22743464.263 22743462.526 22743462.936
+ 33.400 29.000
+ -15338873.719 6 -11952362.900 5 21753222.326 21753219.636 21753221.269
+ 41.200 34.500
+ -14084259.637 7 -10974743.617 6 21063148.780 21063145.646 21063147.656
+ 44.100 41.900
+ -7419014.760 5 -5781051.149 3 23169751.885 23169750.576 23169750.939
+ 30.200 23.800
+ -11000325.274 7 -8571680.541 5 21585965.685 21585962.256 21585964.318
+ 43.100 34.900
+ -23257264.524 8 -18122540.966 8 20292700.979 20292696.360 20292700.398
+ 48.400 49.800
+ -3479935.895 4 -2711636.930 3 24005291.435 24005291.537 24005291.698
+ 24.200 21.600
+ 06 1 1 5 41 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2629658.165 4 -2049082.600 4 23758204.698 23758203.391 23758204.009
+ 28.600 24.200
+ -9195715.687 5 -7165488.333 4 22718776.687 22718774.501 22718775.092
+ 33.100 28.100
+ -15167572.240 6 -11818881.231 5 21785819.361 21785817.099 21785818.547
+ 41.200 33.600
+ -14174399.551 7 -11044982.506 7 21045995.513 21045992.588 21045994.600
+ 44.100 42.100
+ -7191780.024 4 -5603985.216 4 23212992.760 23212992.543 23212991.993
+ 27.600 25.900
+ -10855800.051 7 -8459063.516 5 21613466.978 21613464.610 21613466.487
+ 43.300 34.600
+ -23251373.636 8 -18117950.665 8 20293821.995 20293817.288 20293821.329
+ 48.100 49.700
+ -3679567.776 3 -2867194.160 3 23967303.568 23967303.111 23967302.893
+ 19.900 19.900
+ 06 1 1 5 42 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2794652.163 4 -2177649.283 4 23726807.418 23726806.198 23726806.493
+ 29.700 24.900
+ -9323749.027 5 -7265254.535 4 22694412.187 22694410.421 22694410.920
+ 33.900 28.100
+ -14994610.413 6 -11684105.782 5 21818732.797 21818730.840 21818732.029
+ 40.700 34.300
+ -14263422.036 7 -11114350.675 7 21029055.363 21029052.199 21029054.212
+ 44.100 42.500
+ -6963936.246 4 -5426444.724 4 23256350.548 23256349.800 23256349.298
+ 27.600 26.800
+ -10709810.771 7 -8345305.671 5 21641248.909 21641245.334 21641247.606
+ 43.100 34.500
+ -23243680.918 8 -18111956.340 8 20295285.985 20295281.215 20295285.287
+ 48.200 49.700
+ -3878699.181 4 -3022361.415 3 23929410.665 23929409.368 23929410.192
+ 24.600 19.300
+ 06 1 1 5 43 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -2959152.531 4 -2305831.349 4 23695503.978 23695502.653 23695503.199
+ 29.500 24.900
+ -9450057.784 5 -7363676.916 4 22670376.473 22670374.304 22670375.313
+ 34.000 29.500
+ -14820012.929 6 -11548055.796 5 21851957.656 21851955.589 21851956.744
+ 40.800 33.800
+ -14351325.515 7 -11182846.890 7 21012327.790 21012324.620 21012326.794
+ 44.400 42.300
+ -6735507.614 4 -5248448.454 4 23299818.553 23299818.322 23299817.848
+ 27.600 25.300
+ -10562364.863 7 -8230412.793 5 21669306.254 21669303.692 21669305.591
+ 43.200 34.900
+ -23234180.719 8 -18104553.591 8 20297093.669 20297089.056 20297093.035
+ 48.300 49.700
+ -4077304.386 4 -3177118.585 3 23891616.491 23891615.194 23891616.385
+ 24.600 19.300
+ 06 1 1 5 44 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3123156.034 4 -2433626.239 4 23664294.916 23664293.703 23664294.075
+ 27.900 24.600
+ -9574620.296 5 -7460738.573 4 22646672.595 22646671.210 22646671.517
+ 33.800 29.900
+ -14643803.063 6 -11410749.396 5 21885489.447 21885487.312 21885488.641
+ 41.000 34.100
+ -14438107.592 7 -11250469.287 7 20995813.560 20995810.389 20995812.479
+ 43.900 42.300
+ -6506519.011 4 -5070015.889 3 23343394.055 23343393.345 23343393.183
+ 29.000 22.600
+ -10413470.720 7 -8114391.420 5 21697640.426 21697637.312 21697639.464
+ 42.900 34.400
+ -23222867.746 8 -18095738.287 8 20299246.534 20299241.854 20299245.860
+ 48.200 49.600
+ -4275358.024 4 -3331445.974 4 23853928.114 23853927.787 23853928.124
+ 27.100 24.200
+ 06 1 1 5 45 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3286659.930 5 -2561031.824 3 23633181.511 23633179.596 23633180.635
+ 30.100 23.800
+ -9697414.553 5 -7556422.364 5 22623306.333 22623304.153 22623305.364
+ 35.400 30.100
+ -14466003.438 6 -11272204.250 5 21919323.462 21919321.403 21919322.769
+ 40.700 33.400
+ -14523766.472 7 -11317216.465 7 20979513.019 20979510.058 20979512.052
+ 43.900 42.400
+ -6276995.330 4 -4891166.313 3 23387070.765 23387070.135 23387070.046
+ 28.100 21.600
+ -10263136.015 7 -7997247.540 5 21726248.367 21726245.124 21726247.097
+ 42.700 34.500
+ -23209736.813 8 -18085506.397 8 20301745.296 20301740.605 20301744.666
+ 48.400 49.600
+ -4472834.277 4 -3485323.491 3 23816350.080 23816348.554 23816348.975
+ 25.300 21.600
+ 06 1 1 5 46 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3449660.926 4 -2688045.548 3 23602163.448 23602161.164 23602162.196
+ 27.900 23.800
+ -9818419.265 5 -7650711.706 4 22600279.184 22600277.584 22600278.409
+ 34.800 29.500
+ -14286639.893 6 -11132440.447 5 21953455.293 21953453.165 21953454.431
+ 40.400 32.800
+ -14608300.473 7 -11383087.116 7 20963427.204 20963423.723 20963426.036
+ 44.300 42.500
+ -6046961.358 4 -4711919.158 3 23430845.218 23430844.227 23430844.165
+ 26.500 21.600
+ -10111368.558 7 -7878987.216 5 21755127.403 21755125.422 21755127.195
+ 42.300 33.600
+ -23194782.047 8 -18073853.333 8 20304591.042 20304586.309 20304590.466
+ 48.300 49.500
+ -4669707.533 4 -3638731.110 3 23778886.135 23778884.434 23778885.726
+ 26.200 18.600
+ 06 1 1 5 47 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3612156.064 4 -2814665.065 4 23571241.631 23571239.897 23571240.583
+ 29.000 26.200
+ -9937613.164 6 -7743590.043 4 22577597.762 22577595.522 22577596.721
+ 36.000 29.200
+ -14105734.379 6 -10991475.109 5 21987880.337 21987878.318 21987879.607
+ 40.500 33.100
+ -14691707.521 7 -11448079.619 7 20947555.338 20947551.962 20947554.185
+ 44.200 42.700
+ -5816441.379 4 -4532293.275 4 23474712.152 23474711.276 23474710.720
+ 24.900 24.600
+ -9958177.394 6 -7759617.524 5 21784280.844 21784276.733 21784279.052
+ 41.800 33.600
+ -23177999.364 7 -18060775.923 8 20307784.486 20307780.049 20307783.973
+ 47.900 49.500
+ -4865951.749 4 -3791648.595 3 23741541.232 23741540.660 23741541.509
+ 26.200 20.500
+ 06 1 1 5 48 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3774141.624 5 -2940887.503 4 23540416.603 23540414.947 23540415.609
+ 30.600 25.900
+ -10054975.072 6 -7835040.866 5 22555264.379 22555262.658 22555263.342
+ 36.200 30.600
+ -13923311.106 6 -10849327.105 5 22022594.364 22022592.085 22022593.584
+ 40.000 32.100
+ -14773985.957 7 -11512192.684 7 20931898.316 20931894.992 20931897.223
+ 44.400 42.800
+ -5585460.308 4 -4352308.154 3 23518665.893 23518665.174 23518664.801
+ 24.900 19.900
+ -9803569.884 7 -7639144.177 5 21813700.373 21813697.481 21813699.812
+ 42.500 32.400
+ -23159383.326 7 -18046269.926 8 20311327.038 20311322.459 20311326.477
+ 47.700 49.400
+ -5061541.431 4 -3944056.065 3 23704323.778 23704321.365 23704322.375
+ 25.900 22.600
+ 06 1 1 5 49 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -3935614.836 4 -3066710.736 3 23509689.185 23509687.312 23509688.101
+ 29.000 23.800
+ -10170484.229 6 -7925047.950 5 22533283.864 22533281.916 22533282.790
+ 36.100 30.200
+ -13739393.116 6 -10706014.382 5 22057592.821 22057590.574 22057592.038
+ 39.400 32.300
+ -14855133.894 7 -11575424.839 7 20916456.138 20916452.998 20916455.188
+ 44.400 43.100
+ -5354042.612 4 -4171982.775 3 23562703.945 23562702.946 23562702.357
+ 24.200 23.800
+ -9647555.580 7 -7517574.621 5 21843389.599 21843386.054 21843388.463
+ 42.500 32.800
+ -23138929.340 7 -18030331.760 8 20315219.355 20315214.804 20315218.791
+ 47.900 49.200
+ -5256450.669 3 -4095933.298 3 23667232.356 23667230.776 23667231.506
+ 23.400 21.100
+ 06 1 1 5 50 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4096572.523 4 -3192132.255 4 23479059.827 23479058.499 23479059.021
+ 29.500 27.400
+ -10284119.976 6 -8013595.264 4 22511659.335 22511657.682 22511658.561
+ 36.400 29.700
+ -13554004.806 6 -10561555.964 5 22092871.650 22092869.139 22092870.596
+ 39.500 32.700
+ -14935149.121 7 -11637774.361 7 20901229.628 20901226.424 20901228.690
+ 44.500 43.100
+ -5122212.191 4 -3991335.769 3 23606819.991 23606818.770 23606818.434
+ 26.500 21.100
+ -9490142.891 6 -7394915.425 5 21873344.349 21873340.729 21873343.078
+ 41.600 32.400
+ -23116633.505 7 -18012958.383 8 20319462.149 20319457.532 20319461.545
+ 47.500 49.100
+ -5450653.530 4 -4247260.075 3 23630275.030 23630275.382 23630276.086
+ 26.800 23.000
+ 06 1 1 5 51 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4257011.532 4 -3317149.585 4 23448529.228 23448527.712 23448528.190
+ 29.700 25.600
+ -10395862.053 6 -8100666.984 5 22490396.007 22490393.850 22490394.789
+ 36.500 30.600
+ -13367170.175 6 -10415970.551 5 22128424.780 22128422.214 22128423.876
+ 39.300 32.000
+ -15014030.113 7 -11699240.066 7 20886219.246 20886216.021 20886218.229
+ 44.500 43.300
+ -4889993.846 4 -3810386.494 3 23651008.487 23651008.557 23651008.026
+ 27.100 21.600
+ -9331340.691 6 -7271173.486 5 21903561.894 21903559.924 21903561.763
+ 41.500 33.000
+ -23092491.455 7 -17994146.396 8 20324056.229 20324051.659 20324055.615
+ 47.600 49.100
+ -5644124.032 4 -4398016.278 3 23593461.224 23593459.143 23593460.335
+ 24.200 22.100
+ 06 1 1 5 52 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4416929.045 5 -3441760.603 4 23418097.759 23418096.564 23418097.052
+ 30.600 26.800
+ -10505690.393 6 -8186247.464 4 22469495.554 22469494.115 22469494.620
+ 36.300 29.900
+ -13178912.770 6 -10269276.464 5 22164249.069 22164246.450 22164248.177
+ 39.300 31.300
+ -15091775.063 7 -11759820.545 7 20871424.897 20871421.729 20871423.880
+ 44.700 43.500
+ -4657412.333 3 -3629154.284 3 23695268.290 23695267.046 23695266.730
+ 21.100 21.600
+ -9171157.597 6 -7146355.518 5 21934044.024 21934041.886 21934043.690
+ 41.300 32.800
+ -23066499.288 7 -17973892.763 8 20329002.296 20328997.772 20329001.659
+ 47.400 49.000
+ -5836836.531 4 -4548181.776 3 23556789.505 23556786.521 23556788.172
+ 25.600 19.900
+ 06 1 1 5 53 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4576321.946 5 -3565962.760 4 23387765.751 23387765.197 23387765.155
+ 30.100 29.200
+ -10613585.012 6 -8270321.180 5 22448964.223 22448962.301 22448963.104
+ 36.400 31.000
+ -12989256.116 6 -10121492.062 5 22200339.255 22200336.953 22200338.470
+ 38.600 31.600
+ -15168381.976 7 -11819514.247 7 20856846.955 20856843.815 20856845.970
+ 44.300 43.600
+ -4424491.536 3 -3447657.652 3 23739590.359 23739590.936 23739589.959
+ 23.000 19.900
+ -9009603.455 6 -7020469.217 5 21964788.554 21964784.436 21964786.771
+ 40.700 32.300
+ -23038653.101 7 -17952194.448 8 20334301.661 20334296.720 20334300.963
+ 47.500 48.800
+ -6028764.664 4 -4697736.047 4 23520264.543 23520264.323 23520264.807
+ 26.800 25.900
+ 06 1 1 5 54 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4735187.080 5 -3689753.727 4 23357535.126 23357533.219 23357534.362
+ 32.100 24.600
+ -10719526.450 5 -8352872.917 5 22428804.330 22428802.853 22428803.220
+ 35.900 31.100
+ -12798223.759 6 -9972635.679 5 22236691.292 22236689.080 22236690.663
+ 38.600 30.400
+ -15243848.864 7 -11878319.617 7 20842486.120 20842483.021 20842485.150
+ 44.500 43.900
+ -4191255.799 3 -3265915.618 3 23783974.621 23783974.223 23783974.025
+ 22.100 21.600
+ -8846687.653 6 -6893521.874 5 21995788.586 21995786.492 21995788.324
+ 40.600 32.100
+ -23008949.094 7 -17929048.470 8 20339953.812 20339949.237 20339953.251
+ 47.400 48.900
+ -6219882.861 4 -4846659.236 3 23483896.241 23483895.405 23483896.674
+ 29.000 22.100
+ 06 1 1 5 55 0.0000000 0 8G01G05G09G14G15G18G22G30
+ -4893521.501 4 -3813131.136 4 23327404.853 23327403.634 23327404.112
+ 29.700 27.900
+ -10823495.322 6 -8433887.585 5 22409019.983 22409017.744 22409018.722
+ 36.700 30.200
+ -12605839.291 6 -9822725.697 5 22273300.980 22273298.661 22273300.083
+ 38.300 30.200
+ -15318174.050 7 -11936235.343 7 20828342.481 20828339.319 20828341.440
+ 44.000 43.900
+ -3957728.534 4 -3083946.468 3 23828413.580 23828413.129 23828412.842
+ 25.600 19.300
+ -8682419.402 6 -6765520.669 5 22027048.678 22027045.584 22027047.827
+ 40.700 31.100
+ -22977384.253 7 -17904452.492 8 20345960.522 20345955.959 20345959.907
+ 47.300 48.900
+ -6410164.862 4 -4994930.872 3 23447688.537 23447685.865 23447687.096
+ 27.400 23.800
+ 06 1 1 5 56 0.0000000 0 9G01G05G09G11G14G15G18G22G30
+ -5051322.361 5 -3936092.792 4 23297376.999 23297374.849 23297376.023
+ 31.600 25.900
+ -10925472.697 6 -8513350.448 5 22389614.489 22389611.658 22389612.948
+ 36.800 30.200
+ -12412126.592 6 -9671780.755 5 22310163.203 22310161.034 22310162.419
+ 37.900 30.800
+ -124976.132 3 -97384.374 2 24575982.787 24575980.200 24575981.803
+ 21.600 12.600
+ -15391355.558 7 -11993259.890 7 20814416.324 20814413.514 20814415.417
+ 44.100 44.400
+ -3723934.326 4 -2901769.271 3 23872903.501 23872902.451 23872902.564
+ 25.300 19.300
+ -8516808.514 6 -6636473.241 5 22058563.654 22058560.354 22058562.572
+ 40.500 31.100
+ -22943955.327 7 -17878403.983 8 20352321.989 20352317.178 20352321.234
+ 47.100 48.800
+ -6599584.801 4 -5142530.735 3 23411641.770 23411640.156 23411641.632
+ 28.600 23.000
+ 06 1 1 5 57 0.0000000 0 9G01G05G09G11G14G15G18G22G30
+ -5208586.422 5 -4058636.154 4 23267450.021 23267448.371 23267449.235
+ 31.300 27.400
+ -11025439.778 6 -8591246.849 5 22370591.322 22370589.037 22370589.866
+ 37.200 30.400
+ -12217109.271 6 -9519819.193 5 22347273.634 22347271.396 22347272.900
+ 37.100 30.100
+ -230144.948 3 -179334.067 2 24555969.742 24555966.302 24555969.243
+ 23.000 13.900
+ -15463392.225 7 -12049392.359 7 20800708.483 20800705.155 20800707.465
+ 44.400 44.000
+ -3489897.042 4 -2719402.673 3 23917439.894 23917438.448 23917438.651
+ 24.200 19.300
+ -8349865.353 6 -6506387.700 5 22090331.287 22090328.695 22090330.716
+ 40.000 31.300
+ -22908659.319 7 -17850900.599 8 20359038.456 20359033.767 20359037.757
+ 47.000 48.700
+ -6788116.736 4 -5289438.676 4 23375764.635 23375764.029 23375764.865
+ 28.100 25.600
+ 06 1 1 5 58 0.0000000 0 9G01G05G09G11G14G15G18G22G30
+ -5365310.487 5 -4180758.751 4 23237626.741 23237624.977 23237625.756
+ 32.600 28.100
+ -11123378.130 6 -8667562.415 5 22351954.368 22351951.514 22351952.994
+ 37.200 30.800
+ -12020811.336 6 -9366859.777 5 22384628.001 22384625.918 22384627.245
+ 37.500 30.400
+ -333497.994 3 -259868.861 2 24536302.486 24536298.831 24536301.551
+ 23.400 16.100
+ -15534281.634 7 -12104630.860 7 20787218.548 20787215.430 20787217.582
+ 44.100 44.300
+ -3255641.049 3 -2536865.617 3 23962016.993 23962016.274 23962015.983
+ 21.600 19.300
+ -8181598.836 6 -6375270.968 5 22122351.626 22122348.794 22122350.727
+ 39.800 30.800
+ -22871493.721 7 -17821940.416 8 20366110.699 20366106.158 20366110.113
+ 46.900 48.500
+ -6975734.542 4 -5435634.299 4 23340060.827 23340061.567 23340061.951
+ 27.900 25.600
+ 06 1 1 5 59 0.0000000 0 9G01G05G09G11G14G15G18G22G30
+ -5521491.082 5 -4302457.860 4 23207906.606 23207904.534 23207905.692
+ 33.400 27.900
+ -11219269.548 6 -8742282.984 5 22333706.459 22333704.405 22333705.180
+ 37.500 31.300
+ -11823255.633 6 -9212920.272 5 22422221.748 22422219.752 22422220.841
+ 36.900 31.000
+ -435022.516 4 -338978.860 2 24516982.693 24516978.821 24516981.970
+ 24.200 17.000
+ -15604022.057 7 -12158974.046 7 20773947.480 20773944.319 20773946.392
+ 44.000 44.400
+ -3021189.441 4 -2354176.169 3 24006632.512 24006631.235 24006631.397
+ 24.200 19.900
+ -8012020.098 6 -6243131.730 5 22154621.043 22154618.444 22154620.404
+ 39.600 30.400
+ -22832455.498 7 -17791521.026 8 20373539.395 20373534.840 20373538.733
+ 46.700 48.400
+ -7162412.413 5 -5581097.502 3 23304538.856 23304537.248 23304538.755
+ 30.600 23.400
+ 06 1 1 6 0 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5677125.244 5 -4423731.206 4 23178290.468 23178288.496 23178289.532
+ 33.600 27.600
+ -11313096.069 6 -8815394.528 5 22315852.028 22315849.812 22315850.832
+ 37.800 32.000
+ -11624465.411 6 -9058018.795 4 22460050.229 22460048.060 22460049.574
+ 37.300 29.500
+ -534707.033 4 -416655.047 2 24498013.849 24498009.495 24498013.228
+ 25.600 17.000
+ -15672611.812 7 -12212420.609 7 20760895.359 20760892.063 20760894.351
+ 44.400 44.400
+ -2786566.005 3 -2171352.819 3 24051279.828 24051278.412 24051278.270
+ 21.100 19.300
+ -7841138.345 6 -6109977.138 5 22187140.197 22187136.205 22187138.746
+ 39.500 30.200
+ -22791543.146 7 -17759641.285 8 20381324.706 20381320.349 20381324.189
+ 46.800 48.300
+ -281056.218 4 -219004.717 3 24148649.996 24148648.655 24148649.319
+ 27.600 19.300
+ -7348124.101 4 -5725807.822 4 23269199.951 23269198.133 23269199.173
+ 29.900 25.300
+ 06 1 1 6 1 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5832210.143 5 -4544576.531 4 23148778.478 23148776.767 23148777.649
+ 32.600 28.600
+ -11404840.136 6 -8886883.389 5 22298393.429 22298391.382 22298392.291
+ 38.200 32.100
+ -11424464.570 6 -8902174.003 4 22498109.761 22498106.840 22498108.526
+ 36.800 29.200
+ -632540.324 3 -492888.803 3 24479396.143 24479392.663 24479395.510
+ 23.400 21.100
+ -15740049.021 7 -12264969.087 7 20748062.487 20748059.278 20748061.452
+ 44.200 44.600
+ -2551794.631 3 -1988414.208 2 24095954.112 24095953.985 24095953.443
+ 22.600 17.000
+ -7668964.727 6 -5975815.925 5 22219902.569 22219900.095 22219901.929
+ 39.300 30.800
+ -22748753.975 7 -17726299.086 8 20389467.281 20389462.785 20389466.630
+ 46.500 48.100
+ -485952.213 4 -378663.808 3 24109659.370 24109658.452 24109658.948
+ 28.100 22.600
+ -7532843.852 5 -5869745.230 4 23234049.055 23234046.723 23234048.478
+ 30.800 24.900
+ 06 1 1 6 2 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -5986742.656 5 -4664991.433 5 23119372.175 23119370.416 23119371.108
+ 33.000 30.800
+ -11494484.609 6 -8956736.198 5 22281334.410 22281332.414 22281333.544
+ 38.700 31.500
+ -11223275.902 6 -8745403.615 4 22536394.002 22536391.574 22536393.296
+ 36.700 27.900
+ -728509.893 4 -567670.245 2 24461133.117 24461130.189 24461132.482
+ 24.600 17.800
+ -15806331.970 7 -12316618.135 7 20735449.093 20735445.973 20735448.121
+ 44.100 44.700
+ -2316898.671 3 -1805378.472 2 24140654.028 24140653.729 24140652.660
+ 22.600 17.800
+ -7495510.487 6 -5840656.810 5 22252909.432 22252907.385 22252909.099
+ 39.300 30.100
+ -22704086.422 7 -17691493.207 8 20397967.438 20397962.733 20397966.767
+ 46.900 48.100
+ -690196.180 4 -537814.821 3 24070792.272 24070791.683 24070791.964
+ 24.600 22.600
+ -7716545.674 4 -6012889.418 3 23199089.731 23199089.452 23199090.160
+ 29.700 23.800
+ 06 1 1 6 3 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6140719.814 5 -4784973.578 5 23090070.605 23090069.487 23090069.780
+ 32.700 30.400
+ -11582012.354 6 -9024939.614 5 22264678.768 22264676.519 22264677.677
+ 38.600 32.100
+ -11020923.505 6 -8587726.407 4 22574900.568 22574897.755 22574899.836
+ 36.500 26.800
+ -822605.344 3 -640991.338 3 24443228.600 24443224.614 24443227.781
+ 23.800 18.600
+ -15871458.929 7 -12367366.412 7 20723055.738 20723052.700 20723054.813
+ 43.900 44.700
+ -2081901.475 4 -1622263.931 3 24185372.984 24185372.999 24185371.809
+ 24.600 21.600
+ -7320785.473 6 -5704507.501 4 22286160.172 22286156.340 22286158.516
+ 38.100 29.500
+ -22657538.752 7 -17655222.300 8 20406824.957 20406820.642 20406824.354
+ 46.600 48.000
+ -893774.823 3 -696447.367 3 24032053.070 24032051.738 24032052.281
+ 21.600 21.600
+ -7899203.567 5 -6155220.213 4 23164331.678 23164330.496 23164331.944
+ 31.300 24.200
+ 06 1 1 6 4 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6294138.374 5 -4904520.438 5 23060876.635 23060874.934 23060875.695
+ 34.000 31.100
+ -11667406.753 6 -9091480.677 5 22248428.759 22248426.561 22248427.834
+ 39.100 31.600
+ -10817429.864 5 -8429159.944 4 22613623.883 22613621.772 22613623.007
+ 35.800 28.800
+ -914815.907 3 -712843.747 2 24425680.484 24425677.448 24425679.640
+ 19.900 17.800
+ -15935427.670 7 -12417212.184 7 20710882.959 20710879.900 20710881.910
+ 43.800 44.900
+ -1846826.747 3 -1439088.951 2 24230106.042 24230105.581 24230104.618
+ 20.500 16.100
+ -7144800.199 6 -5567376.178 4 22319648.894 22319644.985 22319647.379
+ 37.800 29.000
+ -22609109.670 7 -17617485.358 7 20416040.767 20416036.298 20416040.157
+ 46.700 47.900
+ -1096675.265 4 -854551.498 2 23993442.246 23993440.793 23993441.634
+ 27.100 17.000
+ -8080791.846 5 -6296717.518 4 23129776.410 23129775.979 23129776.802
+ 31.300 27.100
+ 06 1 1 6 5 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6446994.925 5 -5023629.415 4 23031788.426 23031786.528 23031787.593
+ 33.000 27.100
+ -11750651.515 6 -9156346.711 5 22232587.455 22232585.347 22232586.419
+ 38.200 31.300
+ -10612818.257 5 -8269722.326 4 22652560.480 22652557.925 22652559.557
+ 35.800 27.600
+ -1005130.770 3 -783218.947 2 24408494.026 24408491.072 24408493.368
+ 22.600 17.000
+ -15998236.623 7 -12466154.221 7 20698930.899 20698927.739 20698929.951
+ 43.800 45.000
+ -1611697.362 3 -1255871.403 2 24274849.942 24274849.311 24274848.641
+ 23.000 17.000
+ -6967566.058 6 -5429271.700 5 22353374.088 22353372.011 22353373.606
+ 37.800 30.100
+ -22558797.911 7 -17578281.403 7 20425614.749 20425610.287 20425614.259
+ 46.700 47.700
+ -1298884.407 4 -1012116.952 2 23954963.165 23954961.630 23954962.668
+ 28.800 17.000
+ -8261284.396 5 -6437360.976 4 23095430.979 23095429.292 23095430.168
+ 30.400 28.400
+ 06 1 1 6 6 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6599286.500 5 -5142298.154 5 23002808.989 23002806.977 23002808.161
+ 35.500 30.200
+ -11831730.712 6 -9219525.283 5 22217158.881 22217157.020 22217157.688
+ 38.900 33.200
+ -10407111.844 5 -8109431.640 4 22691705.352 22691702.542 22691704.300
+ 35.600 27.100
+ -1093539.178 4 -852108.596 1 24391671.368 24391667.479 24391670.720
+ 25.300 9.000
+ -16059884.021 7 -12514191.157 7 20687199.812 20687196.564 20687198.819
+ 43.900 45.000
+ -1376537.025 3 -1072629.715 3 24319599.176 24319598.856 24319598.019
+ 23.400 18.600
+ -6789093.591 6 -5290202.309 4 22387337.835 22387333.990 22387336.334
+ 37.700 29.200
+ -22506602.772 7 -17537609.900 7 20435547.286 20435542.741 20435546.713
+ 46.700 47.500
+ -1500389.276 4 -1169133.701 2 23916617.724 23916616.754 23916617.062
+ 27.100 17.800
+ -8440655.660 5 -6577130.721 4 23061297.548 23061295.903 23061297.050
+ 31.800 26.500
+ 06 1 1 6 7 0.0000000 0 10G01G05G09G11G14G15G18G22G25G30
+ -6751010.159 5 -5260524.317 4 22973936.349 22973934.631 22973935.490
+ 34.100 29.700
+ -11910628.543 6 -9281004.083 5 22202144.988 22202143.051 22202143.804
+ 38.800 32.800
+ -10200332.996 5 -7948305.265 4 22731053.900 22731051.265 22731052.933
+ 35.300 28.600
+ -1180031.681 3 -919505.339 1 24375211.490 24375208.235 24375210.919
+ 22.600 6.500
+ -16120368.365 7 -12561321.810 7 20675689.975 20675686.773 20675689.033
+ 43.800 44.900
+ -1141368.026 3 -889381.277 3 24364350.658 24364350.267 24364349.994
+ 21.600 19.300
+ -6609395.423 6 -5150177.829 4 22421533.076 22421529.588 22421531.580
+ 37.700 29.700
+ -22452523.099 7 -17495469.926 7 20445838.475 20445833.775 20445837.790
+ 46.700 47.400
+ -1701177.225 4 -1325591.747 3 23878409.119 23878408.397 23878408.469
+ 26.800 22.100
+ -8618879.690 5 -6716006.532 4 23027383.587 23027380.691 23027382.325
+ 31.000 26.800
+ 06 1 1 6 8 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -6902162.650 5 -5378305.478 4 22945172.980 22945171.110 22945172.108
+ 35.400 29.900
+ -11987329.688 6 -9340771.192 5 22187549.780 22187546.851 22187548.268
+ 39.100 32.100
+ -9992505.252 5 -7786361.570 4 22770601.287 22770599.901 22770600.804
+ 35.100 27.600
+ -1264598.214 3 -985401.408 2 24359119.985 24359116.237 24359119.169
+ 23.000 13.900
+ -16179687.085 7 -12607544.194 7 20664402.229 20664398.922 20664401.110
+ 43.700 45.300
+ -6428481.858 6 -5009206.278 4 22455958.319 22455956.318 22455958.368
+ 37.200 28.600
+ -22396559.065 7 -17451861.576 7 20456487.831 20456483.401 20456487.281
+ 46.600 47.200
+ -1901235.435 4 -1481481.159 3 23840338.984 23840338.057 23840338.355
+ 24.900 21.600
+ -8795930.738 5 -6853968.324 4 22993691.173 22993688.870 22993690.576
+ 31.800 27.100
+ 06 1 1 6 9 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7052740.480 5 -5495638.788 5 22916519.209 22916517.650 22916518.387
+ 35.500 32.300
+ -12061819.262 6 -9398815.011 5 22173374.220 22173372.073 22173373.111
+ 39.400 31.800
+ -9783651.082 5 -7623618.080 4 22810345.750 22810343.275 22810345.117
+ 35.900 27.400
+ -1347229.124 4 -1049789.162 24343394.988 24343392.679 24343394.391
+ 24.200 3.000
+ -16237839.146 7 -12652857.486 7 20653336.195 20653332.977 20653335.121
+ 43.800 45.500
+ -6246364.807 6 -4867296.946 4 22490615.544 22490611.943 22490613.986
+ 36.500 27.400
+ -22338709.558 7 -17406784.046 7 20467496.345 20467491.759 20467495.686
+ 46.400 47.100
+ -2100551.381 4 -1636792.161 4 23802410.275 23802409.830 23802409.932
+ 24.200 24.600
+ -8971783.208 5 -6990996.150 4 22960226.657 22960225.090 22960226.420
+ 31.600 24.200
+ 06 1 1 6 10 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7202740.425 5 -5612521.844 4 22887974.466 22887972.522 22887973.721
+ 34.500 29.500
+ -12134082.651 6 -9455124.132 5 22159622.539 22159620.495 22159621.659
+ 38.600 31.100
+ -9573793.348 5 -7460092.562 4 22850280.811 22850278.088 22850279.731
+ 34.600 26.200
+ -1427915.510 4 -1112661.623 2 24328041.404 24328037.661 24328040.763
+ 25.300 13.900
+ -16294822.267 7 -12697259.917 7 20642492.651 20642489.469 20642491.728
+ 44.000 45.700
+ -6063055.257 6 -4724458.414 4 22525498.534 22525494.836 22525497.033
+ 36.500 28.100
+ -22278975.204 7 -17360237.819 7 20478863.190 20478859.001 20478862.731
+ 46.400 46.900
+ -2299112.432 4 -1791514.933 3 23764625.580 23764624.678 23764624.706
+ 27.100 23.000
+ -9146411.299 5 -7127069.940 4 22926994.699 22926994.326 22926995.570
+ 32.600 25.900
+ 06 1 1 6 11 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7352159.101 6 -5728951.944 5 22859541.515 22859540.112 22859540.711
+ 36.300 32.300
+ -12204105.401 6 -9509687.300 5 22146297.878 22146295.943 22146296.985
+ 39.100 32.600
+ -9362954.760 5 -7295802.754 4 22890401.891 22890399.393 22890400.824
+ 34.500 25.900
+ -1506648.266 4 -1174011.860 3 24313058.834 24313055.731 24313058.186
+ 25.300 23.800
+ -16350635.152 7 -12740750.477 7 20631871.819 20631868.637 20631870.789
+ 43.700 45.700
+ -5878566.061 5 -4580700.662 4 22560604.452 22560602.171 22560603.688
+ 35.500 27.900
+ -22217356.115 7 -17312222.972 7 20490588.939 20490584.619 20490588.481
+ 46.500 46.700
+ -2496906.136 4 -1945639.835 3 23726986.702 23726985.618 23726986.147
+ 28.100 22.100
+ -9319789.518 5 -7262169.793 4 22894002.595 22894001.625 22894003.207
+ 33.200 27.600
+ 06 1 1 6 12 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7500993.315 5 -5844926.617 5 22831219.338 22831217.239 22831218.377
+ 35.300 30.400
+ -12271873.792 6 -9562493.817 5 22133402.554 22133400.264 22133401.324
+ 39.400 32.600
+ -9151157.085 5 -7130765.604 4 22930705.363 22930702.658 22930704.350
+ 33.100 24.900
+ -1583418.514 4 -1233832.749 3 24298449.828 24298446.370 24298449.140
+ 26.500 23.800
+ -16405275.508 7 -12783327.375 7 20621474.136 20621470.868 20621473.007
+ 43.400 45.800
+ -5692908.367 6 -4436032.379 4 22595933.987 22595931.565 22595933.377
+ 36.500 27.600
+ -22153852.632 7 -17262739.765 7 20502673.411 20502668.932 20502672.863
+ 46.300 46.500
+ -2693919.993 4 -2099157.071 2 23689495.981 23689494.305 23689495.395
+ 29.000 17.000
+ -9491892.378 5 -7396275.863 4 22861252.961 22861251.792 22861253.114
+ 33.500 28.400
+ 06 1 1 6 13 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7649239.684 5 -5960443.249 5 22803008.817 22803007.530 22803007.892
+ 35.200 32.400
+ -12337374.103 6 -9613533.000 5 22120938.065 22120935.735 22120936.743
+ 39.400 33.100
+ -8938423.784 5 -6964999.423 4 22971187.173 22971184.592 22971186.705
+ 34.800 24.200
+ -1658218.283 4 -1292118.291 4 24284216.189 24284213.118 24284215.551
+ 25.900 24.600
+ -16458741.535 7 -12824989.212 7 20611299.935 20611296.562 20611298.757
+ 43.400 45.900
+ -5506094.259 5 -4290463.005 4 22631484.615 22631481.366 22631482.999
+ 34.900 27.900
+ -22088465.519 7 -17211788.774 7 20515116.589 20515111.713 20515115.722
+ 46.100 46.300
+ -2890141.945 4 -2252057.241 3 23652156.390 23652155.063 23652155.620
+ 28.100 20.500
+ -9662694.468 5 -7529368.325 4 22828751.473 22828748.916 22828750.889
+ 33.400 27.900
+ 06 1 1 6 14 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7796895.179 6 -6075499.440 5 22774910.901 22774909.128 22774910.077
+ 36.000 30.800
+ -12400593.347 6 -9662794.730 5 22108907.783 22108905.563 22108906.817
+ 40.000 32.400
+ -8724776.876 5 -6798521.313 4 23011842.497 23011840.394 23011841.793
+ 32.800 24.900
+ -1731039.034 3 -1348861.738 4 24270358.264 24270355.496 24270357.481
+ 21.600 24.200
+ -16511031.701 7 -12865734.793 7 20601348.979 20601346.048 20601348.111
+ 43.200 45.900
+ -5318136.045 5 -4144002.118 4 22667252.078 22667248.549 22667250.534
+ 35.400 27.400
+ -22021195.623 7 -17159370.689 7 20527917.231 20527912.790 20527916.543
+ 46.000 46.100
+ -3085559.553 4 -2404330.618 3 23614969.080 23614968.250 23614968.618
+ 28.100 23.000
+ -9832170.502 5 -7661427.498 4 22796501.348 22796498.765 22796500.479
+ 33.500 28.100
+ 06 1 1 6 15 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -7943956.361 5 -6190092.553 5 22746926.182 22746924.686 22746925.136
+ 35.500 32.600
+ -12461518.586 6 -9710268.919 5 22097313.504 22097311.642 22097312.741
+ 39.500 32.100
+ -8510237.918 5 -6631348.083 4 23052667.835 23052665.940 23052667.240
+ 33.400 25.300
+ -1801873.151 4 -1404057.125 3 24256879.276 24256875.926 24256878.803
+ 24.600 21.600
+ -16562143.664 7 -12905562.299 7 20591623.027 20591619.660 20591621.973
+ 43.600 45.700
+ -5129046.062 5 -3996659.340 4 22703232.737 22703230.875 22703233.165
+ 34.800 24.200
+ -21952044.239 7 -17105486.527 7 20541076.603 20541071.900 20541075.793
+ 46.100 46.000
+ -3280160.938 4 -2555967.941 3 23577937.507 23577936.571 23577937.209
+ 25.600 22.600
+ -10000295.078 5 -7792433.580 4 22764508.003 22764505.761 22764507.175
+ 33.500 28.600
+ 06 1 1 6 16 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8090419.961 5 -6304220.005 5 22719054.527 22719053.575 22719053.834
+ 35.900 33.500
+ -12520137.290 6 -9755945.810 5 22086159.466 22086156.903 22086158.096
+ 39.700 32.800
+ -8294829.088 5 -6463497.084 4 23093660.023 23093657.222 23093658.939
+ 34.500 25.600
+ -1870713.473 3 -1457698.872 3 24243779.457 24243776.188 24243779.021
+ 23.400 22.600
+ -16612076.023 7 -12944470.628 7 20582121.049 20582117.910 20582120.062
+ 43.600 45.900
+ -4938836.274 5 -3848444.005 4 22739429.224 22739427.131 22739428.499
+ 33.900 26.200
+ -21881012.834 7 -17050137.422 7 20554593.661 20554588.767 20554592.783
+ 46.100 45.900
+ -3473933.966 4 -2706959.841 3 23541064.003 23541062.435 23541063.460
+ 29.000 22.600
+ -10167043.434 5 -7922367.311 4 22732776.532 22732774.307 22732775.815
+ 33.900 28.600
+ 06 1 1 6 17 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8236282.698 6 -6417879.243 5 22691298.425 22691296.685 22691297.622
+ 37.100 33.200
+ -12576437.450 6 -9799816.060 5 22075445.462 22075443.243 22075444.362
+ 39.800 32.600
+ -8078573.145 5 -6294985.943 4 23134810.435 23134808.914 23134809.790
+ 32.000 25.300
+ -1937552.472 3 -1509781.219 3 24231060.097 24231057.334 24231059.435
+ 21.600 23.400
+ -16660826.920 7 -12982458.339 7 20572844.238 20572840.843 20572843.277
+ 43.500 45.800
+ -4747519.468 5 -3699366.068 4 22775837.903 22775833.394 22775835.705
+ 34.500 25.900
+ -21808102.988 7 -16993324.575 7 20568467.810 20568463.108 20568466.983
+ 46.000 45.800
+ -3666866.813 4 -2857297.084 3 23504350.360 23504348.872 23504349.702
+ 29.900 22.600
+ -10332390.038 5 -8051208.759 4 22701311.779 22701309.958 22701311.316
+ 33.900 28.800
+ 06 1 1 6 18 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8381540.961 6 -6531067.468 5 22663656.429 22663654.779 22663655.571
+ 37.000 32.800
+ -12630407.330 6 -9841870.480 5 22065175.272 22065173.315 22065174.485
+ 40.400 33.000
+ -7861491.210 5 -6125831.201 4 23176120.447 23176118.834 23176119.704
+ 31.000 27.100
+ -2002383.285 3 -1560298.745 3 24218724.039 24218719.889 24218723.272
+ 23.800 21.600
+ -16708394.430 7 -13019523.935 7 20563792.555 20563789.264 20563791.529
+ 43.700 46.100
+ -4555108.535 5 -3549435.563 4 22812449.586 22812448.098 22812449.798
+ 33.500 26.500
+ -21733315.979 7 -16935048.997 7 20582699.362 20582694.502 20582698.435
+ 45.600 45.300
+ -3858947.731 5 -3006970.462 4 23467798.703 23467797.358 23467797.890
+ 30.100 25.600
+ -10496310.190 5 -8178938.693 4 22670117.975 22670117.140 22670117.820
+ 34.100 29.000
+ 06 1 1 6 19 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8526191.213 6 -6643781.935 5 22636130.424 22636128.697 22636129.520
+ 36.600 33.100
+ -12682035.719 6 -9882100.385 5 22055350.994 22055348.758 22055349.965
+ 40.400 33.400
+ -7643605.346 5 -5956050.023 4 23217583.275 23217580.742 23217582.299
+ 31.600 25.900
+ -2065199.556 4 -1609246.449 2 24206769.974 24206766.448 24206769.387
+ 26.800 16.100
+ -16754776.846 7 -13055666.079 7 20554966.155 20554962.784 20554965.199
+ 43.500 46.100
+ -4361616.430 5 -3398662.554 4 22849269.629 22849268.833 22849269.945
+ 33.600 25.900
+ -21656654.373 7 -16875312.708 7 20597287.479 20597282.772 20597286.625
+ 45.700 45.300
+ -4050164.788 5 -3155970.708 3 23431410.786 23431409.710 23431410.415
+ 31.800 23.800
+ -10658778.916 5 -8305537.654 4 22639201.736 22639200.101 22639201.228
+ 34.800 29.900
+ 06 1 1 6 20 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8670230.034 6 -6756019.940 5 22608720.697 22608719.029 22608719.952
+ 37.300 33.100
+ -12731311.695 6 -9920497.232 5 22045974.660 22045971.857 22045973.073
+ 40.300 33.600
+ -7424936.960 5 -5785659.103 3 23259193.370 23259191.586 23259192.675
+ 30.600 21.600
+ -2125994.636 3 -1656619.241 3 24195201.079 24195197.875 24195200.543
+ 22.600 19.300
+ -16799972.278 7 -13090883.302 7 20546365.902 20546362.589 20546364.817
+ 43.500 46.300
+ -4167055.068 5 -3247056.423 4 22886296.411 22886292.531 22886294.324
+ 32.700 26.800
+ -21578120.752 7 -16814117.704 7 20612232.048 20612227.299 20612231.113
+ 45.600 45.200
+ -4240506.681 4 -3304289.023 3 23395190.334 23395188.563 23395189.236
+ 29.200 23.400
+ -10819771.383 5 -8430986.271 4 22608566.532 22608564.085 22608565.841
+ 35.700 29.200
+ 06 1 1 6 21 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8813653.877 6 -6867778.760 5 22581427.675 22581426.168 22581426.851
+ 36.900 32.700
+ -12778224.638 6 -9957052.748 5 22037047.030 22037044.541 22037045.667
+ 40.200 33.100
+ -7205507.898 5 -5614675.408 3 23300949.470 23300947.666 23300949.002
+ 32.100 22.600
+ -2184763.072 4 -1702412.832 2 24184017.326 24184014.492 24184016.742
+ 24.200 16.100
+ -16843978.776 7 -13125174.083 7 20537991.550 20537988.276 20537990.533
+ 43.600 46.300
+ -3971437.829 5 -3094627.515 4 22923520.139 22923517.554 22923519.181
+ 33.500 25.600
+ -21497717.255 7 -16751465.663 7 20627532.138 20627527.636 20627531.391
+ 45.600 45.000
+ -4429961.780 5 -3451916.309 4 23359138.252 23359136.309 23359137.371
+ 30.800 24.200
+ -10979263.071 5 -8555265.475 4 22578215.777 22578213.928 22578215.355
+ 35.300 29.200
+ 06 1 1 6 22 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -8956459.763 6 -6979056.056 5 22554252.839 22554251.021 22554252.031
+ 37.600 33.100
+ -12822764.643 6 -9991759.236 5 22028571.041 22028568.814 22028569.806
+ 40.200 33.500
+ -6985338.629 5 -5443114.948 3 23342847.812 23342844.087 23342846.527
+ 31.300 22.600
+ -2241499.060 3 -1746622.731 3 24173221.443 24173217.746 24173220.624
+ 23.800 18.600
+ -16886794.016 7 -13158536.603 7 20529844.191 20529840.903 20529843.135
+ 43.400 46.500
+ -3774777.994 5 -2941386.158 4 22960942.653 22960940.512 22960942.033
+ 32.600 24.900
+ -21415447.096 7 -16687359.065 7 20643187.685 20643183.121 20643186.984
+ 45.600 44.700
+ -4618518.610 4 -3598843.635 4 23323256.539 23323254.755 23323255.909
+ 28.600 24.200
+ -11137229.659 5 -8678356.276 4 22548156.140 22548153.551 22548155.261
+ 34.500 28.800
+ 06 1 1 6 23 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9098644.130 6 -7089849.038 5 22527196.209 22527194.077 22527195.395
+ 38.400 33.500
+ -12864921.871 6 -10024609.005 5 22020549.188 22020546.737 22020547.738
+ 40.300 34.100
+ -6764450.957 5 -5270994.700 3 23384880.322 23384877.866 23384879.395
+ 31.800 21.100
+ -2296197.066 4 -1789244.538 2 24162812.909 24162808.880 24162812.238
+ 24.600 17.000
+ -16928416.896 7 -13190970.018 7 20521923.491 20521920.397 20521922.569
+ 43.400 46.500
+ -3577088.285 5 -2787342.318 3 22998562.425 22998559.267 22998561.123
+ 32.000 22.100
+ -21331313.218 7 -16621800.214 7 20659198.018 20659193.280 20659197.196
+ 45.500 44.600
+ -4806165.884 5 -3745062.226 4 23287548.955 23287547.103 23287548.117
+ 31.500 26.500
+ -11293646.605 5 -8800239.562 4 22518391.231 22518388.503 22518390.598
+ 35.700 29.500
+ 06 1 1 6 24 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9240203.204 6 -7200154.792 5 22500258.515 22500256.640 22500257.499
+ 37.700 34.300
+ -12904687.024 6 -10055594.827 5 22012981.288 22012979.630 22012980.505
+ 40.600 33.400
+ -6542865.439 5 -5098330.653 3 23427046.787 23427044.882 23427045.726
+ 30.100 23.400
+ -2348852.285 4 -1830274.587 2 24152793.100 24152789.013 24152792.471
+ 27.600 13.900
+ -16968845.343 7 -13222472.706 7 20514230.075 20514226.958 20514229.184
+ 43.100 46.600
+ -3378382.414 5 -2632506.668 4 23036375.318 23036372.249 23036374.198
+ 33.000 25.300
+ -21245318.989 7 -16554791.750 7 20675561.914 20675557.488 20675561.194
+ 45.400 44.400
+ -4992892.542 5 -3890563.473 4 23252015.570 23252014.322 23252014.874
+ 32.000 27.400
+ -11448489.773 6 -8920896.534 4 22488925.022 22488922.702 22488924.486
+ 36.200 29.700
+ 06 1 1 6 25 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9381133.176 6 -7309970.326 5 22473440.837 22473438.289 22473439.739
+ 38.600 34.000
+ -12942051.202 6 -10084709.745 5 22005871.553 22005869.503 22005870.518
+ 40.700 33.900
+ -6320603.280 4 -4925139.362 3 23469341.413 23469339.556 23469340.571
+ 29.000 22.600
+ -2399460.123 4 -1869709.266 2 24143162.604 24143158.747 24143161.898
+ 27.400 16.100
+ -17008077.093 7 -13253042.896 7 20506764.474 20506761.442 20506763.644
+ 43.100 46.700
+ -3178673.363 5 -2476889.330 4 23074378.427 23074375.538 23074377.229
+ 32.300 24.200
+ -21157467.961 7 -16486336.425 7 20692279.397 20692274.868 20692278.814
+ 45.600 44.300
+ -5178687.470 5 -4035338.670 4 23216659.776 23216658.603 23216659.103
+ 30.600 26.500
+ -11601734.939 6 -9040308.304 5 22459763.500 22459761.209 22459762.692
+ 36.000 30.400
+ 06 1 1 6 26 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9521430.376 6 -7419292.807 5 22446742.761 22446740.695 22446741.980
+ 38.500 34.400
+ -12977005.964 6 -10111947.201 5 21999219.876 21999217.863 21999218.717
+ 40.600 34.000
+ -6097685.639 4 -4751437.317 3 23511760.414 23511759.000 23511760.176
+ 27.600 23.000
+ -2448016.259 4 -1907545.242 2 24133922.431 24133918.753 24133921.764
+ 25.900 17.800
+ -17046110.642 7 -13282679.433 7 20499527.163 20499523.887 20499526.154
+ 42.900 46.800
+ -2977975.457 5 -2320501.447 3 23112570.349 23112567.105 23112568.848
+ 30.800 23.000
+ -21067763.803 7 -16416437.107 7 20709349.750 20709345.124 20709348.887
+ 45.300 44.000
+ -5363539.641 5 -4179379.244 4 23181483.673 23181482.444 23181483.127
+ 32.400 27.600
+ -11753358.166 5 -9158456.230 5 22430910.409 22430908.319 22430909.816
+ 35.900 31.000
+ 06 1 1 6 27 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9661091.473 6 -7528119.625 5 22420165.647 22420164.046 22420164.982
+ 38.100 34.600
+ -13009543.148 6 -10137300.832 5 21993028.252 21993025.826 21993027.274
+ 40.700 33.200
+ -5874132.825 5 -4577240.349 3 23554302.400 23554300.363 23554301.931
+ 31.000 23.400
+ -2494516.953 4 -1943779.528 2 24125073.664 24125069.865 24125073.146
+ 27.600 16.100
+ -17082944.008 7 -13311380.762 7 20492518.054 20492514.733 20492516.979
+ 42.900 46.800
+ -2776301.190 5 -2163352.779 3 23150947.065 23150944.932 23150946.417
+ 31.600 23.800
+ -20976210.444 7 -16345096.828 7 20726771.803 20726767.109 20726770.925
+ 45.300 43.800
+ -5547438.326 5 -4322676.831 4 23146488.839 23146487.333 23146488.131
+ 31.000 27.600
+ -11903335.771 6 -9275321.850 5 22402369.748 22402368.423 22402369.433
+ 36.300 30.800
+ 06 1 1 6 28 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9800112.916 6 -7636448.007 5 22393711.213 22393709.160 22393710.260
+ 38.600 34.600
+ -13039655.160 6 -10160764.723 5 21987298.162 21987295.678 21987296.973
+ 40.300 32.800
+ -5649965.169 5 -4402564.252 2 23596959.527 23596957.348 23596959.135
+ 30.200 17.800
+ -2538957.924 4 -1978408.845 1 24116616.139 24116612.975 24116615.508
+ 24.200 11.000
+ -17118575.240 7 -13339145.362 7 20485737.607 20485734.388 20485736.601
+ 43.100 46.900
+ -2573664.654 5 -2005454.241 3 23189507.278 23189505.076 23189506.476
+ 30.800 21.100
+ -20882812.296 7 -16272319.059 7 20744544.871 20744540.268 20744544.116
+ 45.500 44.000
+ -5730372.669 5 -4465223.030 4 23111677.642 23111675.640 23111676.956
+ 33.400 24.200
+ -12051644.124 6 -9390886.771 5 22374148.103 22374146.501 22374147.664
+ 37.100 31.500
+ 06 1 1 6 29 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -9938490.418 6 -7744274.632 5 22367378.649 22367376.949 22367377.775
+ 38.800 35.100
+ -13067334.687 6 -10182333.175 5 21982031.043 21982028.690 21982029.807
+ 40.600 33.800
+ -5425203.076 4 -4227424.938 3 23639730.715 23639728.496 23639729.963
+ 29.500 23.400
+ -2581335.800 4 -2011430.594 2 24108552.557 24108548.560 24108551.549
+ 24.600 15.100
+ -17153002.570 7 -13365971.854 7 20479186.215 20479183.068 20479185.227
+ 42.700 46.900
+ -2370079.926 4 -1846816.904 3 23228250.091 23228245.818 23228248.118
+ 29.700 20.500
+ -20787573.725 7 -16198107.193 7 20762668.056 20762663.590 20762667.241
+ 45.500 43.800
+ -5912332.131 5 -4607009.572 4 23077052.015 23077050.261 23077051.183
+ 31.600 26.800
+ -12198259.777 6 -9505132.695 5 22346248.153 22346246.190 22346247.676
+ 36.900 31.800
+ 06 1 1 6 30 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10076220.097 6 -7851596.445 5 22341169.626 22341167.883 22341168.652
+ 38.900 35.200
+ -13092575.008 6 -10202000.940 5 21977227.411 21977224.955 21977226.334
+ 40.600 32.800
+ -5199867.309 4 -4051838.664 3 23682610.472 23682608.762 23682609.825
+ 29.700 19.900
+ -2621648.151 4 -2042842.794 1 24100881.970 24100877.021 24100881.204
+ 28.100 6.500
+ -17186223.786 7 -13391858.515 7 20472864.665 20472861.291 20472863.612
+ 42.700 47.000
+ -2165560.813 4 -1687451.464 3 23267165.339 23267165.078 23267166.381
+ 29.700 23.800
+ -20690499.702 7 -16122465.112 7 20781141.011 20781136.179 20781140.079
+ 45.600 43.400
+ -6093306.322 5 -4748028.333 4 23042613.879 23042611.833 23042613.061
+ 33.000 27.600
+ -12343159.499 6 -9618041.535 5 22318674.633 22318672.678 22318674.231
+ 37.400 31.600
+ 06 1 1 6 31 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10213298.109 6 -7958410.482 5 22315084.658 22315082.656 22315083.710
+ 39.100 35.400
+ -13115369.661 6 -10219762.995 5 21972889.973 21972887.762 21972888.875
+ 40.800 33.600
+ -4973977.884 4 -3875820.902 3 23725594.451 23725594.431 23725594.465
+ 27.900 22.600
+ -2659891.719 4 -2072643.036 2 24093604.331 24093600.327 24093603.638
+ 29.200 13.900
+ -17218236.875 7 -13416803.782 7 20466772.505 20466769.368 20466771.497
+ 42.500 47.000
+ -1960120.985 4 -1527368.571 3 23306261.679 23306258.972 23306260.240
+ 29.700 22.100
+ -20591595.263 7 -16045396.735 7 20799961.782 20799957.025 20799960.996
+ 45.700 43.200
+ -6273284.598 5 -4888271.103 4 23008364.927 23008363.081 23008364.045
+ 32.600 27.600
+ -12486320.075 6 -9729595.209 5 22291431.739 22291429.923 22291431.439
+ 36.900 30.600
+ 06 1 1 6 32 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10349720.324 6 -8064713.488 6 22289124.454 22289122.562 22289123.641
+ 39.500 36.100
+ -13135712.678 6 -10235614.675 5 21969018.949 21969016.731 21969018.021
+ 41.000 33.800
+ -4747554.344 4 -3699387.011 3 23768683.348 23768680.784 23768682.428
+ 29.000 20.500
+ -2696064.317 4 -2100829.444 2 24086720.758 24086716.729 24086720.053
+ 29.500 16.100
+ -17249040.702 7 -13440806.765 7 20460910.663 20460907.544 20460909.712
+ 42.200 47.100
+ -1753774.600 4 -1366579.266 3 23345528.440 23345525.424 23345527.234
+ 29.000 18.600
+ -20490865.401 7 -15966905.958 7 20819130.216 20819125.321 20819129.270
+ 45.500 43.100
+ -6452256.888 5 -5027729.954 4 22974306.955 22974305.713 22974306.395
+ 33.100 28.400
+ -12627718.737 6 -9839775.957 5 22264524.144 22264522.722 22264524.272
+ 37.600 31.500
+ 06 1 1 6 33 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10485482.969 6 -8170502.570 5 22263289.472 22263287.699 22263288.479
+ 39.600 35.900
+ -13153598.465 6 -10249551.647 5 21965615.422 21965613.187 21965614.078
+ 41.100 33.500
+ -4520616.374 4 -3522552.211 2 23811867.812 23811865.413 23811867.221
+ 26.800 15.100
+ -2730164.271 4 -2127400.866 2 24080231.566 24080227.650 24080230.890
+ 27.600 17.000
+ -17278632.991 7 -13463865.698 7 20455279.892 20455276.420 20455278.782
+ 42.800 47.200
+ -1546536.125 4 -1205094.796 3 23384963.789 23384961.575 23384963.313
+ 29.900 21.100
+ -20388315.468 7 -15886996.936 7 20838644.183 20838639.925 20838643.673
+ 45.600 42.800
+ -6630212.975 5 -5166396.981 4 22940443.313 22940441.746 22940442.420
+ 32.400 28.100
+ -12767332.641 6 -9948565.982 5 22237956.688 22237955.208 22237956.549
+ 37.500 32.300
+ 06 1 1 6 34 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10620582.524 6 -8275774.951 6 22237580.813 22237579.095 22237579.833
+ 39.400 36.100
+ -13169021.970 6 -10261569.948 5 21962679.803 21962678.170 21962679.127
+ 41.400 33.800
+ -4293183.317 4 -3345331.678 3 23855146.510 23855145.137 23855145.642
+ 26.800 23.000
+ -2762189.541 4 -2152355.600 2 24074137.582 24074133.767 24074137.010
+ 28.800 15.100
+ -17307011.198 7 -13485978.583 7 20449879.602 20449876.192 20449878.555
+ 42.700 47.300
+ -1338419.111 4 -1042925.762 3 23424567.828 23424565.185 23424566.537
+ 27.900 20.500
+ -20283951.372 7 -15805674.285 7 20858504.058 20858499.854 20858503.546
+ 45.600 42.700
+ -6807142.780 5 -5304264.306 4 22906774.401 22906773.108 22906773.944
+ 33.200 28.800
+ -12905139.459 6 -10055947.878 5 22211732.717 22211731.349 22211732.538
+ 37.600 32.700
+ 06 1 1 6 35 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10755015.113 6 -8380527.612 6 22211999.645 22211997.310 22211998.561
+ 40.300 36.300
+ -13181978.453 6 -10271665.901 5 21960214.840 21960212.315 21960213.610
+ 41.200 33.400
+ -4065274.978 4 -3167740.802 3 23898514.781 23898514.695 23898514.868
+ 26.500 20.500
+ -2792138.917 4 -2175692.806 2 24068438.013 24068433.966 24068437.306
+ 26.500 15.100
+ -17334174.021 7 -13507144.421 7 20444710.322 20444707.373 20444709.424
+ 42.400 47.400
+ -1129438.101 4 -880083.528 3 23464335.630 23464333.123 23464334.508
+ 29.000 21.100
+ -20177779.359 7 -15722942.861 7 20878708.214 20878703.759 20878707.581
+ 45.600 42.500
+ -6983036.417 5 -5441324.210 4 22873303.485 22873301.613 22873302.666
+ 33.200 28.800
+ -13041116.860 6 -10161904.260 5 22185857.133 22185855.742 22185857.089
+ 38.200 32.600
+ 06 1 1 6 36 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -10888776.572 6 -8484757.304 6 22186545.221 22186543.503 22186544.281
+ 39.700 36.700
+ -13192463.599 6 -10279836.130 5 21958219.229 21958217.685 21958218.256
+ 41.100 34.500
+ -3836910.708 4 -2989794.586 3 23941973.239 23941969.969 23941972.165
+ 28.600 18.600
+ -2820011.359 4 -2197411.611 2 24063134.062 24063130.580 24063133.306
+ 28.800 17.800
+ -17360119.493 7 -13527361.676 7 20439773.172 20439769.939 20439772.275
+ 42.600 47.200
+ -919607.618 4 -716579.305 3 23504264.703 23504262.386 23504263.791
+ 28.800 19.900
+ -20069805.090 7 -15638807.087 7 20899254.865 20899250.544 20899254.294
+ 45.600 42.500
+ -7157884.203 5 -5577569.205 4 22840031.200 22840028.728 22840030.365
+ 35.400 27.100
+ -13175242.612 6 -10266417.818 5 22160333.639 22160332.208 22160333.758
+ 38.500 31.300
+ 06 1 1 6 37 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11021863.030 6 -8588461.017 6 22161219.686 22161218.028 22161218.740
+ 40.600 37.100
+ -13200473.641 6 -10286077.712 5 21956695.299 21956692.791 21956694.144
+ 41.500 33.600
+ -3608109.503 4 -2811507.937 3 23985512.947 23985510.166 23985512.279
+ 25.900 20.500
+ -2845805.951 4 -2217511.295 2 24058225.848 24058222.150 24058224.910
+ 27.400 17.000
+ -17384845.351 7 -13546628.578 7 20435068.172 20435064.871 20435067.190
+ 42.600 47.400
+ -708942.709 4 -552424.893 3 23544353.043 23544350.850 23544352.014
+ 28.100 20.500
+ -19960034.988 7 -15553271.955 7 20920143.287 20920139.126 20920142.770
+ 45.400 42.300
+ -7331676.474 5 -5712991.722 4 22806958.918 22806957.403 22806958.363
+ 34.000 29.500
+ -13307494.963 6 -10369471.571 5 22135167.424 22135165.182 22135167.120
+ 38.900 31.800
+ 06 1 1 6 38 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11154269.824 6 -8691635.150 6 22136023.820 22136021.766 22136022.832
+ 40.900 36.400
+ -13206005.201 6 -10290388.009 5 21955642.703 21955640.306 21955641.682
+ 41.600 34.000
+ -3378890.127 4 -2632895.424 3 24029132.241 24029129.275 24029131.184
+ 29.700 19.300
+ -2869522.535 4 -2235991.770 3 24053712.826 24053708.675 24053712.232
+ 27.400 19.900
+ -17408349.781 7 -13564943.725 7 20430595.285 20430592.188 20430594.266
+ 42.200 47.400
+ -497456.894 4 -387630.820 3 23584598.337 23584595.025 23584596.775
+ 26.800 18.600
+ -19848475.965 7 -15466342.867 7 20941372.327 20941368.121 20941371.744
+ 45.200 42.100
+ -7504403.524 5 -5847584.171 4 22774090.044 22774088.510 22774089.414
+ 34.500 29.500
+ -13437852.291 6 -10471048.686 5 22110361.107 22110359.156 22110360.747
+ 38.800 32.300
+ 06 1 1 6 39 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11285993.055 6 -8794276.629 6 22110957.638 22110955.414 22110956.672
+ 40.800 36.100
+ -13209055.289 6 -10292764.688 5 21955062.374 21955059.924 21955061.115
+ 41.300 34.000
+ -3149272.493 4 -2453972.593 3 24072826.621 24072824.162 24072825.726
+ 26.500 22.100
+ -2891161.244 4 -2252853.135 2 24049594.400 24049590.947 24049593.843
+ 24.900 17.800
+ -17430630.575 7 -13582305.393 7 20426355.253 20426352.177 20426354.323
+ 42.300 47.300
+ -285165.892 4 -222209.302 3 23624995.706 23624992.790 23624994.413
+ 28.600 19.300
+ -19735134.856 7 -15378025.137 6 20962940.329 20962936.223 20962939.840
+ 45.600 41.800
+ -7676055.985 5 -5981339.300 5 22741425.372 22741424.492 22741424.837
+ 33.800 30.400
+ -13566292.946 6 -10571132.290 5 22085919.685 22085917.800 22085919.305
+ 39.300 32.300
+ 06 1 1 6 40 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11417028.212 6 -8896381.938 6 22086022.262 22086020.284 22086021.424
+ 41.100 37.000
+ -13209621.329 6 -10293205.754 5 21954955.082 21954951.948 21954953.724
+ 41.400 34.000
+ -2919274.213 3 -2274753.170 2 24116594.195 24116591.261 24116592.556
+ 23.000 13.900
+ -2910722.397 4 -2268095.591 3 24045872.331 24045868.574 24045871.707
+ 24.900 18.600
+ -17451686.293 7 -13598712.456 7 20422348.705 20422345.372 20422347.628
+ 42.300 47.400
+ -72083.612 4 -56171.164 3 23665543.104 23665541.267 23665542.671
+ 27.400 19.300
+ -19620018.174 7 -15288323.844 6 20984846.446 20984842.128 20984845.989
+ 45.500 41.400
+ -7846624.550 5 -6114249.819 5 22708967.725 22708966.097 22708967.017
+ 35.400 30.400
+ -13692796.068 6 -10669706.142 5 22061847.231 22061844.915 22061846.475
+ 39.300 32.100
+ 06 1 1 6 41 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11547371.425 6 -8997948.076 6 22061218.608 22061216.687 22061217.903
+ 41.600 36.500
+ -13207701.208 6 -10291709.549 5 21955320.012 21955317.568 21955318.878
+ 41.200 34.400
+ -2688914.273 3 -2095251.944 1 24160429.080 24160427.231 24160428.454
+ 23.400 9.000
+ -2928206.580 4 -2281719.646 3 24042545.479 24042541.477 24042544.819
+ 27.600 20.500
+ -17471514.559 7 -13614163.050 7 20418575.524 20418572.220 20418574.577
+ 42.500 47.400
+ 141775.207 4 110472.034 3 23706241.093 23706237.331 23706238.998
+ 27.600 18.600
+ -19503133.545 7 -15197244.941 6 21007088.610 21007084.524 21007088.367
+ 45.500 41.100
+ -8016100.002 5 -6246308.555 4 22676717.524 22676715.745 22676716.820
+ 35.600 29.700
+ -13817340.497 6 -10766753.719 5 22038147.081 22038145.371 22038146.670
+ 39.100 34.000
+ 06 1 1 6 42 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11677018.124 6 -9098971.474 6 22036547.825 22036545.794 22036546.995
+ 41.600 37.300
+ -13203293.299 6 -10288274.802 5 21956158.827 21956156.675 21956157.617
+ 41.000 34.600
+ -2458210.479 4 -1915482.729 1 24204330.537 24204328.449 24204329.951
+ 26.500 9.000
+ -2943614.656 4 -2293725.909 3 24039612.968 24039610.367 24039612.274
+ 26.800 22.100
+ -17490113.299 7 -13628655.589 7 20415036.359 20415033.147 20415035.338
+ 42.200 47.500
+ 356394.880 4 277708.086 2 23747078.491 23747077.646 23747078.828
+ 27.400 17.800
+ -19384488.823 7 -15104794.534 6 21029665.904 21029661.930 21029665.689
+ 45.600 41.100
+ -8184473.378 5 -6377508.495 5 22644677.044 22644675.417 22644676.327
+ 35.200 31.300
+ -13939905.598 6 -10862258.965 5 22014822.664 22014821.523 22014822.986
+ 39.500 32.700
+ 06 1 1 6 43 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11805963.944 7 -9199448.731 6 22012010.660 22012008.223 22012009.738
+ 42.000 36.800
+ -13196396.354 6 -10282900.550 5 21957470.455 21957468.965 21957469.501
+ 40.900 34.500
+ -2227180.689 4 -1735459.512 2 24248293.940 24248292.489 24248293.213
+ 25.900 17.800
+ -2956948.153 5 -2304115.678 3 24037076.509 24037072.823 24037075.653
+ 30.100 22.100
+ -17507481.049 6 -13642188.901 7 20411731.278 20411728.067 20411730.288
+ 41.900 47.500
+ 571761.333 4 445526.036 2 23788063.078 23788060.856 23788062.090
+ 25.900 17.000
+ -19264091.487 7 -15010978.478 6 21052576.983 21052572.996 21052576.587
+ 45.300 41.200
+ -8351735.848 5 -6507842.818 5 22612847.612 22612846.137 22612847.047
+ 34.500 30.100
+ -14060471.008 6 -10956206.027 5 21991880.725 21991878.365 21991880.268
+ 39.400 31.800
+ 06 1 1 6 44 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -11934204.893 6 -9299376.745 6 21987607.001 21987604.783 21987606.051
+ 41.800 37.600
+ -13187009.561 6 -10275586.164 5 21959257.471 21959255.234 21959256.279
+ 41.300 34.300
+ -1995843.659 3 -1555196.919 2 24292315.868 24292313.608 24292315.468
+ 23.000 17.000
+ -2968209.193 4 -2312890.517 3 24034933.303 24034929.545 24034932.524
+ 26.800 21.100
+ -17523615.404 6 -13654761.130 7 20408661.018 20408657.869 20408659.936
+ 41.900 47.400
+ 787859.534 4 613914.148 3 23829184.516 23829183.432 23829184.318
+ 25.600 19.300
+ -19141949.948 7 -14915803.284 6 21075819.736 21075815.617 21075819.378
+ 45.400 40.700
+ -8517878.659 6 -6637304.725 5 22581232.196 22581230.432 22581231.264
+ 36.000 31.300
+ -14179016.497 6 -11048579.123 5 21969322.267 21969320.083 21969321.873
+ 39.800 32.800
+ 06 1 1 6 45 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12061736.286 6 -9398751.855 6 21963338.286 21963336.596 21963337.405
+ 41.800 38.000
+ -13175132.532 6 -10266331.323 5 21961517.636 21961515.155 21961516.394
+ 41.100 33.900
+ -1764216.695 3 -1374708.389 2 24336393.171 24336391.081 24336392.273
+ 23.400 16.100
+ -2977399.583 4 -2320051.870 3 24033183.680 24033180.629 24033183.029
+ 25.900 19.900
+ -17538514.513 7 -13666370.838 7 20405825.756 20405822.600 20405824.798
+ 42.200 47.500
+ 1004673.160 4 782859.739 3 23870443.129 23870441.563 23870443.004
+ 27.900 19.900
+ -19018072.309 7 -14819275.286 6 21099393.195 21099388.742 21099392.663
+ 45.500 40.600
+ -8682893.022 5 -6765887.294 5 22549830.690 22549829.040 22549830.092
+ 35.900 31.300
+ -14295522.247 6 -11139362.794 5 21947151.817 21947149.981 21947151.456
+ 40.200 33.200
+ 06 1 1 6 46 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12188553.440 7 -9497570.410 6 21939205.960 21939204.006 21939205.152
+ 42.200 38.000
+ -13160765.412 6 -10255136.164 5 21964251.323 21964249.315 21964250.302
+ 41.300 34.100
+ -1532317.771 4 -1194007.921 2 24380522.560 24380519.910 24380521.541
+ 24.200 13.900
+ -2984521.165 4 -2325601.160 3 24031829.648 24031825.920 24031828.719
+ 28.600 21.600
+ -17552176.064 7 -13677016.197 7 20403226.006 20403222.942 20403225.097
+ 42.200 47.500
+ 1222188.705 4 952352.290 2 23911836.985 23911833.335 23911835.015
+ 24.900 17.000
+ -18892466.507 7 -14721400.677 6 21123295.161 21123290.619 21123294.673
+ 45.300 40.300
+ -8846770.451 6 -6893583.918 5 22518645.710 22518644.253 22518645.246
+ 36.500 32.000
+ -14409968.516 6 -11228541.680 5 21925373.245 21925371.465 21925373.167
+ 40.500 33.200
+ 06 1 1 6 47 0.0000000 0 9G01G05G09G11G14G18G22G25G30
+ -12314651.846 7 -9595828.906 6 21915210.239 21915208.258 21915209.401
+ 42.500 38.200
+ -13143908.558 6 -10242000.944 5 21967458.867 21967456.728 21967457.889
+ 41.000 33.500
+ -1300164.385 3 -1013109.216 2 24424699.293 24424697.438 24424698.495
+ 22.600 12.600
+ -2989577.108 4 -2329540.862 3 24030867.441 24030863.755 24030866.436
+ 25.300 22.600
+ -17564598.872 7 -13686696.314 7 20400862.188 20400858.981 20400861.157
+ 42.100 47.600
+ 1440390.542 4 1122379.629 2 23953357.448 23953356.058 23953356.829
+ 24.900 16.100
+ -18765141.128 7 -14622186.141 6 21147524.334 21147520.064 21147523.873
+ 45.200 40.200
+ -9009502.658 6 -7020388.147 5 22487679.072 22487677.129 22487678.449
+ 37.100 31.500
+ -14522336.131 6 -11316100.835 5 21903990.129 21903988.768 21903990.147
+ 40.300 34.400
+ 06 1 1 6 48 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12440026.529 7 -9693523.460 6 21891352.093 21891350.365 21891351.259
+ 42.600 38.400
+ -13124562.974 6 -10226926.458 5 21971140.633 21971138.457 21971139.330
+ 41.100 34.100
+ -2992570.666 4 -2331873.496 3 24030297.655 24030294.177 24030296.742
+ 26.500 23.000
+ -17575780.278 7 -13695409.105 7 20398734.255 20398731.168 20398733.376
+ 42.300 47.500
+ 1659263.349 4 1292929.824 2 23995009.101 23995005.916 23995007.912
+ 27.100 13.900
+ -18636105.544 7 -14521638.990 6 21172078.892 21172074.937 21172078.404
+ 44.900 40.300
+ -9171081.284 6 -7146293.536 5 22456931.475 22456929.551 22456930.685
+ 36.400 31.600
+ -14632605.873 6 -11402025.289 5 21883006.777 21883005.163 21883006.559
+ 40.700 34.100
+ 06 1 1 6 49 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12564672.899 7 -9790650.500 6 21867632.737 21867630.895 21867632.006
+ 42.900 38.800
+ -13102729.953 6 -10209913.701 5 21975295.143 21975292.879 21975293.983
+ 40.900 33.600
+ -2993505.204 4 -2332601.755 3 24030119.192 24030116.096 24030118.682
+ 26.800 21.100
+ -17585718.762 7 -13703153.389 7 20396843.175 20396840.062 20396842.092
+ 42.100 47.500
+ 1878791.505 4 1463990.606 1 24036784.451 24036780.460 24036782.652
+ 24.900 9.000
+ -18505368.961 7 -14419766.372 6 21196957.624 21196953.394 21196956.944
+ 44.900 40.500
+ -9331498.209 6 -7271293.687 5 22426405.537 22426403.543 22426404.772
+ 37.500 32.600
+ -14740758.981 6 -11486300.409 5 21862426.059 21862424.288 21862425.678
+ 40.500 34.300
+ 06 1 1 6 50 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12688586.395 7 -9887206.475 6 21844052.820 21844050.761 21844051.969
+ 42.800 38.600
+ -13078411.378 6 -10190964.155 5 21979923.357 21979920.281 21979922.026
+ 41.400 33.400
+ -2992384.182 4 -2331728.229 3 24030332.917 24030329.328 24030332.188
+ 25.600 21.600
+ -17594411.775 7 -13709927.179 7 20395188.983 20395185.719 20395187.960
+ 42.300 47.500
+ 2098959.699 4 1635550.167 2 24078678.824 24078677.669 24078678.619
+ 24.200 16.100
+ -18372940.084 7 -14316575.067 6 21222158.035 21222153.633 21222157.245
+ 44.700 39.900
+ -9490745.563 6 -7395382.508 5 22396101.481 22396099.665 22396100.818
+ 37.700 32.600
+ -14846777.131 6 -11568911.928 5 21842251.633 21842249.431 21842251.205
+ 40.800 33.900
+ 06 1 1 6 51 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12811762.576 7 -9983187.896 6 21820613.374 21820611.317 21820612.446
+ 43.000 39.100
+ -13051609.429 6 -10170079.502 5 21985023.009 21985020.671 21985021.815
+ 40.800 33.600
+ -2989211.958 4 -2329256.389 3 24030936.458 24030933.334 24030935.663
+ 25.900 19.900
+ -17601857.656 7 -13715729.152 7 20393771.963 20393768.897 20393770.974
+ 42.000 47.700
+ 2319752.952 3 1807596.764 2 24120696.402 24120692.688 24120694.446
+ 19.900 16.100
+ -18238828.927 7 -14212072.905 6 21247678.386 21247674.109 21247677.785
+ 44.800 39.700
+ -9648815.487 6 -7518553.862 5 22366021.543 22366019.821 22366020.799
+ 37.100 32.100
+ -14950642.085 6 -11649845.638 5 21822487.099 21822484.856 21822486.472
+ 40.900 34.600
+ 06 1 1 6 52 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -12934196.513 7 -10078590.970 6 21797314.840 21797312.886 21797313.899
+ 42.800 39.400
+ -13022326.648 6 -10147261.758 5 21990595.539 21990592.852 21990594.364
+ 41.000 33.200
+ -2983992.605 4 -2325189.344 2 24031929.735 24031925.599 24031929.099
+ 27.600 16.100
+ -17608054.566 6 -13720557.931 7 20392592.735 20392589.704 20392591.757
+ 41.800 47.600
+ 2541155.422 3 1980118.084 2 24162826.300 24162824.702 24162826.801
+ 21.100 15.100
+ -18103044.809 7 -14106267.136 6 21273517.472 21273513.162 21273516.715
+ 44.800 40.000
+ -9805700.129 6 -7640801.613 5 22336167.484 22336165.953 22336166.832
+ 38.400 33.800
+ -15052336.035 6 -11729087.648 5 21803134.787 21803133.013 21803134.516
+ 40.900 34.700
+ 06 1 1 6 53 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13055883.108 7 -10173411.687 6 21774158.835 21774156.621 21774157.875
+ 43.400 39.400
+ -12990566.187 6 -10122513.337 5 21996639.156 21996636.936 21996638.106
+ 41.100 34.000
+ -2976731.232 4 -2319531.148 3 24033311.417 24033308.049 24033310.714
+ 25.600 20.500
+ -17612999.971 6 -13724411.484 7 20391651.702 20391648.579 20391650.703
+ 41.900 47.600
+ 2763151.702 3 2153102.084 2 24205071.932 24205070.007 24205069.992
+ 22.100 13.900
+ -17965598.361 7 -13999166.052 6 21299672.466 21299668.223 21299671.867
+ 44.600 39.300
+ -9961391.864 6 -7762119.779 5 22306540.150 22306538.410 22306539.537
+ 38.100 32.700
+ -15151841.463 6 -11806624.319 5 21784199.328 21784197.822 21784199.212
+ 41.000 34.900
+ 06 1 1 6 54 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13176817.673 7 -10267646.410 6 21751145.465 21751143.701 21751144.551
+ 43.400 39.500
+ -12956331.469 6 -10095836.931 5 22003154.018 22003151.604 22003152.892
+ 40.700 33.900
+ -2967432.849 4 -2312285.653 2 24035080.561 24035077.321 24035080.019
+ 25.900 17.800
+ -17616692.491 6 -13727288.783 7 20390949.012 20390945.869 20390947.945
+ 41.800 47.400
+ 2985726.350 4 2326536.729 1 24247425.314 24247423.741 24247425.441
+ 25.900 6.500
+ -17826499.105 7 -13890777.056 6 21326142.269 21326138.130 21326141.551
+ 44.500 39.300
+ -10115883.581 6 -7882502.912 5 22277141.660 22277139.769 22277140.895
+ 38.200 33.800
+ -15249141.078 6 -11882442.188 5 21765684.329 21765682.275 21765683.861
+ 41.300 34.700
+ 06 1 1 6 55 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13296994.918 7 -10361291.018 6 21728276.546 21728274.877 21728275.670
+ 43.500 40.100
+ -12919626.393 6 -10067235.581 5 22010138.636 22010136.155 22010137.447
+ 40.900 33.800
+ -2956102.559 4 -2303456.874 3 24037236.986 24037233.279 24037235.982
+ 25.600 19.300
+ -17619130.003 7 -13729188.155 7 20390485.210 20390481.938 20390484.226
+ 42.000 47.300
+ 3208863.819 3 2500410.069 1 24289888.699 24289886.786 24289887.392
+ 22.600 6.500
+ -17685757.932 7 -13781108.654 6 21352924.219 21352920.252 21352923.807
+ 44.500 39.300
+ -10269167.735 6 -8001945.060 5 22247972.694 22247970.555 22247972.044
+ 39.400 34.000
+ -15344218.151 6 -11956528.202 5 21747591.521 21747589.448 21747591.154
+ 41.200 34.600
+ 06 1 1 6 56 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13416409.575 7 -10454341.399 6 21705552.860 21705550.715 21705551.887
+ 43.800 39.700
+ -12880455.335 6 -10036712.662 5 22017592.589 22017590.460 22017591.434
+ 40.700 34.000
+ -2942746.851 4 -2293049.875 3 24039778.894 24039774.886 24039778.016
+ 26.800 19.300
+ -17620310.047 7 -13730107.670 7 20390260.826 20390257.476 20390259.824
+ 42.000 47.300
+ 3432547.347 3 2674708.874 1 24332453.195 24332451.845 24332453.142
+ 23.400 9.000
+ -17543384.765 7 -13670168.558 6 21380017.033 21380013.047 21380016.583
+ 44.300 39.000
+ -10421237.414 6 -8120440.879 5 22219034.761 22219032.436 22219033.966
+ 38.600 33.500
+ -15437056.201 6 -12028869.520 5 21729925.231 21729922.876 21729924.756
+ 41.500 34.500
+ 06 1 1 6 57 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13535056.818 7 -10546793.791 6 21682974.724 21682973.133 21682973.919
+ 43.700 40.300
+ -12838823.011 6 -10004271.898 5 22025514.433 22025512.984 22025513.496
+ 40.600 34.400
+ -2927371.429 4 -2281069.028 3 24042704.184 24042701.144 24042703.750
+ 27.400 18.600
+ -17620231.156 7 -13730046.194 7 20390275.654 20390272.519 20390274.639
+ 42.200 47.400
+ 3656762.526 2 2849421.911 2 24375120.651 24375119.016 24375118.919
+ 17.800 17.800
+ -17399390.653 7 -13557965.401 6 21407417.685 21407414.085 21407417.508
+ 43.800 38.700
+ -10572085.227 6 -8237984.587 5 22190329.152 22190327.302 22190328.542
+ 39.100 35.500
+ -15527638.822 7 -12099453.369 5 21712687.765 21712685.643 21712687.548
+ 42.100 34.500
+ 06 1 1 6 58 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13652931.537 7 -10638644.207 6 21660544.218 21660542.091 21660543.325
+ 44.000 40.200
+ -12794734.426 6 -9969917.159 5 22033904.529 22033902.549 22033903.587
+ 41.100 34.000
+ -2909982.285 4 -2267519.045 2 24046013.459 24046009.767 24046012.593
+ 26.500 17.000
+ -17618891.090 7 -13729001.993 7 20390530.838 20390527.473 20390529.735
+ 42.000 47.300
+ 3881493.144 3 3024536.469 2 24417884.746 24417883.646 24417883.991
+ 19.900 17.800
+ -17253786.586 7 -13444507.732 6 21435125.326 21435121.748 21435125.217
+ 44.000 38.900
+ -10721704.586 6 -8354571.065 5 22161857.680 22161855.665 22161856.916
+ 39.700 34.800
+ -15615950.217 7 -12168267.421 5 21695882.906 21695880.462 21695882.483
+ 42.200 34.500
+ 06 1 1 6 59 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13770028.475 7 -10729888.578 6 21638261.591 21638259.093 21638260.588
+ 44.000 39.800
+ -12748195.363 6 -9933652.939 5 22042761.251 22042758.593 22042759.970
+ 40.700 33.500
+ -2890586.869 4 -2252405.756 2 24049704.264 24049700.366 24049703.455
+ 25.600 16.100
+ -17616288.354 7 -13726973.898 7 20391025.800 20391022.865 20391024.940
+ 42.000 47.500
+ 4106723.665 3 3200040.641 2 24460746.073 24460742.984 24460744.314
+ 21.100 16.100
+ -17106583.664 7 -13329804.196 6 21463137.164 21463133.483 21463136.842
+ 43.300 38.100
+ -10870088.660 6 -8470194.989 5 22133621.020 22133619.125 22133620.311
+ 39.700 35.800
+ -15701975.077 7 -12235299.773 5 21679512.608 21679510.696 21679512.236
+ 42.000 34.800
+ 06 1 1 7 0 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -13886342.381 7 -10820522.787 6 21616127.625 21616125.509 21616126.753
+ 44.400 40.300
+ -12699211.661 6 -9895483.821 5 22052081.822 22052079.752 22052080.843
+ 40.900 33.800
+ -2869191.598 4 -2235734.109 1 24053775.198 24053771.636 24053774.681
+ 26.500 11.000
+ -17612420.567 7 -13723960.043 7 20391762.092 20391758.919 20391761.103
+ 42.100 47.500
+ 4332437.874 3 3375921.736 24503696.774 24503696.157 24503696.859
+ 21.600 3.000
+ -16957793.334 7 -13213863.730 6 21491451.628 21491447.605 21491450.905
+ 43.500 38.400
+ -11017231.013 6 -8584851.352 5 22105621.107 22105618.602 22105620.356
+ 40.300 35.700
+ -15785698.025 7 -12300538.409 5 21663580.565 21663578.834 21663580.395
+ 42.200 35.500
+ 06 1 1 7 1 0.0000000 0 8G01G05G11G14G18G22G25G30
+ -14001868.213 7 -10910542.919 6 21594143.347 21594141.627 21594142.578
+ 44.100 40.100
+ -12647789.636 6 -9855414.716 5 22061867.654 22061865.332 22061866.438
+ 40.900 33.800
+ -2845804.216 4 -2217510.148 2 24058226.299 24058222.132 24058225.705
+ 29.500 15.100
+ -17607285.651 7 -13719958.805 7 20392739.033 20392736.028 20392738.199
+ 42.000 47.500
+ 4558620.760 2 3552167.990 2 24546739.684 24546736.809 24546738.101
+ 17.000 13.900
+ -16807426.590 7 -13096694.890 6 21520065.850 21520061.332 21520065.060
+ 43.600 38.100
+ -11163124.925 6 -8698534.891 6 22077858.104 22077856.191 22077857.469
+ 40.300 36.500
+ -15867104.380 7 -12363971.917 5 21648089.599 21648087.377 21648089.249
+ 42.400 35.100
+ 06 1 1 7 2 0.0000000 0 7G01G05G11G14G22G25G30
+ -14116600.720 7 -10999944.874 6 21572310.989 21572308.947 21572310.032
+ 44.600 40.900
+ -12593936.029 6 -9813450.870 5 22072115.400 22072113.272 22072114.358
+ 40.700 34.100
+ -2820432.481 4 -2197739.994 2 24063054.075 24063050.344 24063053.336
+ 28.400 17.000
+ -17600881.894 7 -13714968.873 7 20393957.703 20393954.606 20393956.695
+ 42.100 47.300
+ -16655495.738 7 -12978307.249 6 21548977.195 21548973.017 21548976.489
+ 43.300 38.200
+ -11307764.185 6 -8811240.783 6 22050333.799 22050332.229 22050333.142
+ 39.700 36.400
+ -15946179.647 7 -12425588.992 5 21633042.111 21633039.942 21633041.731
+ 42.300 34.800
+ 06 1 1 7 3 0.0000000 0 7G01G05G11G14G22G25G30
+ -14230534.221 7 -11088724.226 6 21550629.849 21550627.976 21550629.038
+ 44.400 40.600
+ -12537658.192 6 -9769598.004 5 22082824.518 22082822.496 22082823.490
+ 40.100 34.300
+ -2793084.441 4 -2176429.837 1 24068258.747 24068254.127 24068257.971
+ 29.000 11.000
+ -17593207.312 7 -13708988.676 7 20395418.358 20395415.102 20395417.254
+ 42.300 47.400
+ -16502012.902 7 -12858710.265 6 21578183.801 21578179.676 21578183.236
+ 43.500 37.700
+ -11451142.655 6 -8922964.259 6 22023050.301 22023048.004 22023049.455
+ 40.700 36.200
+ -16022909.843 7 -12485378.745 5 21618440.761 21618438.635 21618440.468
+ 42.500 35.100
+ 06 1 1 7 4 0.0000000 0 7G01G05G11G14G22G25G30
+ -14343663.066 7 -11176876.569 6 21529102.447 21529100.402 21529101.493
+ 44.400 40.900
+ -12478963.462 6 -9723861.859 5 22093994.090 22093991.713 22093992.963
+ 40.700 33.500
+ -2763768.461 4 -2153586.197 2 24073837.224 24073832.907 24073836.683
+ 28.400 16.100
+ -17584260.340 7 -13702017.015 7 20397120.599 20397117.549 20397119.679
+ 42.200 47.200
+ -16346989.666 7 -12737912.987 6 21607683.848 21607679.842 21607683.222
+ 43.100 38.000
+ -11593254.187 6 -9033700.497 6 21996007.208 21996005.379 21996006.586
+ 41.100 37.000
+ -16097281.208 7 -12543330.446 5 21604288.320 21604286.190 21604287.907
+ 42.300 35.300
+ 06 1 1 7 5 0.0000000 0 7G01G05G11G14G22G25G30
+ -14455981.457 7 -11264397.398 6 21507728.483 21507726.631 21507727.709
+ 44.400 40.500
+ -12417859.888 6 -9676248.688 5 22105621.796 22105619.314 22105620.468
+ 40.300 33.400
+ -2732493.212 4 -2129215.880 2 24079788.400 24079784.891 24079787.959
+ 28.100 17.000
+ -17574038.431 7 -13694051.901 7 20399065.976 20399062.702 20399064.911
+ 42.200 47.100
+ -16190438.612 7 -12615925.201 6 21637474.849 21637470.262 21637474.053
+ 42.900 37.200
+ -11734092.970 6 -9143444.980 6 21969206.201 21969204.307 21969205.711
+ 41.500 36.700
+ -16169280.519 7 -12599433.798 5 21590587.045 21590585.158 21590586.778
+ 42.500 35.300
+ 06 1 1 7 6 0.0000000 0 7G01G05G11G14G22G25G30
+ -14567483.627 7 -11351282.205 6 21486510.490 21486508.460 21486509.632
+ 44.700 40.500
+ -12354355.836 6 -9626765.009 5 22117706.072 22117703.546 22117704.856
+ 40.100 32.700
+ -2699267.372 4 -2103325.616 2 24086111.551 24086107.896 24086110.581
+ 25.600 16.100
+ -17562539.988 7 -13685092.075 7 20401254.003 20401250.815 20401253.019
+ 42.200 47.100
+ -16032372.090 7 -12492756.537 6 21667553.916 21667549.701 21667553.115
+ 42.800 37.600
+ -11873653.454 6 -9252193.397 6 21942649.052 21942646.787 21942648.211
+ 41.400 36.900
+ -16238894.885 7 -12653678.742 5 21577340.065 21577338.228 21577339.704
+ 42.600 35.800
+ 06 1 1 7 7 0.0000000 0 7G01G05G11G14G22G25G30
+ -14678164.102 7 -11437526.736 6 21465448.791 21465446.859 21465447.897
+ 44.900 41.100
+ -12288459.860 6 -9575417.488 5 22130245.541 22130243.425 22130244.488
+ 39.900 33.200
+ -2664100.356 4 -2075922.726 3 24092802.871 24092800.356 24092802.429
+ 25.900 19.300
+ -17549763.188 7 -13675136.130 7 20403685.414 20403682.138 20403684.400
+ 42.400 47.000
+ -15872802.921 7 -12368416.984 6 21697918.856 21697914.593 21697918.098
+ 42.700 37.000
+ -12011929.809 6 -9359941.162 6 21916335.749 21916333.807 21916334.932
+ 41.800 37.700
+ -16306111.703 7 -12706055.463 5 21564548.942 21564547.148 21564548.744
+ 42.800 35.800
+ 06 1 1 7 8 0.0000000 0 7G01G05G11G14G22G25G30
+ -14788017.324 7 -11523126.649 6 21444544.114 21444542.554 21444543.293
+ 44.800 41.400
+ -12220181.090 6 -9522213.256 5 22143238.630 22143236.442 22143237.516
+ 40.400 33.100
+ -2627001.863 4 -2047014.850 3 24099863.004 24099859.653 24099862.274
+ 24.600 21.600
+ -17535706.182 7 -13664182.613 7 20406360.252 20406357.061 20406359.251
+ 42.400 46.900
+ -15711743.691 7 -12242916.352 6 21728567.192 21728563.236 21728566.599
+ 42.200 36.600
+ -12148916.493 6 -9466683.976 6 21890267.741 21890265.557 21890267.152
+ 41.900 36.200
+ -16370918.931 7 -12756554.593 5 21552216.793 21552214.742 21552216.453
+ 43.000 35.800
+ 06 1 1 7 9 0.0000000 0 7G01G05G11G14G22G25G30
+ -14897037.400 7 -11608077.363 6 21423798.741 21423796.497 21423797.809
+ 45.500 41.200
+ -12149529.060 6 -9467159.725 5 22156683.242 22156681.070 22156682.162
+ 40.300 32.400
+ -2587981.809 4 -2016609.628 3 24107287.409 24107285.212 24107286.705
+ 24.600 21.600
+ -17520366.595 7 -13652229.698 7 20409279.252 20409276.101 20409278.231
+ 42.500 46.900
+ -15549207.615 7 -12116264.934 6 21759496.382 21759492.811 21759496.237
+ 42.600 36.600
+ -12284608.297 6 -9572417.807 6 21864446.429 21864444.761 21864445.713
+ 41.900 37.700
+ -16433304.728 7 -12805166.880 6 21540344.799 21540343.074 21540344.606
+ 42.800 36.100
+ 06 1 1 7 10 0.0000000 0 7G01G05G11G14G22G25G30
+ -15005218.629 7 -11692374.431 6 21403212.409 21403210.528 21403211.499
+ 45.000 41.600
+ -12076513.633 6 -9410264.588 5 22170577.801 22170575.378 22170576.470
+ 39.700 32.800
+ -2547050.415 4 -1984715.063 3 24115077.329 24115073.882 24115076.644
+ 25.300 20.500
+ -17503743.410 7 -13639276.566 7 20412442.778 20412439.417 20412441.749
+ 42.700 46.700
+ -15385207.733 7 -11988472.874 6 21790705.288 21790701.244 21790704.586
+ 42.100 37.000
+ -12419000.191 7 -9677138.712 6 21838872.542 21838870.787 21838871.916
+ 42.400 37.800
+ -16493257.829 7 -12851883.570 5 21528936.425 21528934.370 21528936.223
+ 43.300 35.900
+ 06 1 1 7 11 0.0000000 0 7G01G05G11G14G22G25G30
+ -15112554.838 7 -11776013.039 6 21382786.956 21382785.028 21382786.170
+ 45.400 41.600
+ -12001144.919 6 -9351535.728 5 22184920.012 22184917.712 22184918.864
+ 40.100 33.000
+ -2504218.056 3 -1951339.194 3 24123227.907 24123224.620 24123227.198
+ 23.000 21.100
+ -17485834.182 7 -13625321.327 7 20415850.650 20415847.379 20415849.599
+ 42.400 46.700
+ -15219757.539 7 -11859550.692 5 21822189.478 21822185.226 21822188.910
+ 42.300 35.900
+ -12552087.068 7 -9780842.742 6 21813547.095 21813544.736 21813546.305
+ 42.400 36.500
+ -16550767.300 7 -12896696.136 6 21517992.581 21517990.656 21517992.301
+ 43.100 36.000
+ 06 1 1 7 12 0.0000000 0 7G01G05G11G14G22G25G30
+ -15219039.959 7 -11858988.463 6 21362523.529 21362521.666 21362522.751
+ 45.600 41.800
+ -11923433.525 6 -9290981.390 5 22199708.045 22199705.765 22199706.771
+ 39.400 32.800
+ -2459495.631 3 -1916490.595 3 24131737.628 24131735.076 24131737.151
+ 22.600 22.600
+ -17466637.554 7 -13610362.917 7 20419503.666 20419500.481 20419502.571
+ 42.300 46.800
+ -15052870.247 7 -11729508.688 5 21853946.800 21853942.900 21853946.392
+ 42.100 35.900
+ -12683864.206 7 -9883526.204 6 21788470.449 21788468.669 21788469.873
+ 42.700 37.700
+ -16605822.745 7 -12939596.469 6 21507516.425 21507514.115 21507516.008
+ 43.500 36.100
+ 06 1 1 7 13 0.0000000 0 7G01G05G11G14G22G25G30
+ -15324668.468 7 -11941296.394 6 21342423.178 21342421.148 21342422.425
+ 45.900 41.700
+ -11843390.439 6 -9228610.155 5 22214939.461 22214937.191 22214938.446
+ 40.100 32.700
+ -2412894.118 3 -1880177.744 3 24140606.110 24140603.325 24140605.361
+ 23.000 23.400
+ -17446151.439 7 -13594399.718 7 20423401.981 20423398.817 20423401.074
+ 42.400 46.600
+ -14884559.458 6 -11598357.467 5 21885975.213 21885971.223 21885974.710
+ 41.400 35.500
+ -12814326.538 7 -9985185.161 6 21763644.696 21763642.616 21763643.929
+ 43.200 38.100
+ -16658413.974 7 -12980576.638 6 21497508.193 21497506.175 21497507.925
+ 43.200 36.000
+ 06 1 1 7 14 0.0000000 0 7G01G05G11G14G22G25G30
+ -15429434.086 7 -12022931.953 6 21322487.081 21322484.843 21322486.208
+ 46.000 41.700
+ -11761026.750 6 -9164430.659 5 22230612.874 22230610.604 22230611.547
+ 39.300 33.100
+ -2364425.085 4 -1842409.703 3 24149829.226 24149826.535 24149828.847
+ 25.300 23.000
+ -17424374.024 7 -13577430.309 7 20427546.046 20427542.970 20427545.016
+ 42.100 46.600
+ -14714839.259 6 -11466108.007 5 21918272.326 21918268.111 21918271.593
+ 41.400 35.800
+ -12943469.304 7 -10085815.836 6 21739069.390 21739067.472 21739068.695
+ 43.200 38.100
+ -16708531.227 7 -13019629.036 6 21487971.107 21487969.350 21487970.806
+ 43.200 36.800
+ 06 1 1 7 15 0.0000000 0 7G01G05G11G14G22G25G30
+ -15533330.308 7 -12103890.049 7 21302716.393 21302714.197 21302715.390
+ 46.000 42.000
+ -11676354.173 6 -9098452.029 5 22246725.471 22246723.201 22246724.298
+ 39.300 32.400
+ -2314100.254 4 -1803195.569 3 24159406.447 24159402.841 24159405.479
+ 25.300 21.600
+ -17401303.522 7 -13559453.306 7 20431936.123 20431933.130 20431935.141
+ 42.300 46.500
+ -14543724.297 6 -11332771.719 5 21950834.470 21950830.313 21950833.629
+ 40.700 35.500
+ -13071288.441 7 -10185415.136 6 21714746.398 21714743.990 21714745.653
+ 43.600 38.300
+ -16756165.338 7 -13056746.514 6 21478906.673 21478904.871 21478906.352
+ 43.000 36.200
+ 06 1 1 7 16 0.0000000 0 7G01G05G11G14G22G25G30
+ -15636351.235 7 -12184166.104 6 21283111.794 21283109.761 21283110.970
+ 45.600 41.800
+ -11589384.653 6 -9030683.569 5 22263275.399 22263272.804 22263274.194
+ 39.400 32.100
+ -2261931.319 4 -1762544.479 3 24169333.845 24169330.912 24169333.164
+ 26.800 23.800
+ -17376938.086 7 -13540467.258 7 20436572.945 20436569.772 20436571.862
+ 42.400 46.500
+ -14371227.370 6 -11198358.565 5 21983659.703 21983655.345 21983658.761
+ 40.700 35.600
+ -13197779.508 7 -10283979.562 6 21690675.789 21690673.536 21690675.109
+ 43.400 38.500
+ -16801307.424 7 -13091922.156 6 21470316.361 21470314.450 21470316.150
+ 43.400 36.500
+ 06 1 1 7 17 0.0000000 0 7G01G05G11G14G22G25G30
+ -15738490.747 7 -12263755.333 7 21263675.471 21263673.473 21263674.551
+ 45.800 42.200
+ -11500130.505 6 -8961134.882 5 22280259.698 22280257.259 22280258.572
+ 39.600 31.500
+ -2207930.195 4 -1720465.712 3 24179609.652 24179606.432 24179609.018
+ 25.300 19.900
+ -17351276.531 7 -13520471.243 7 20441456.090 20441452.973 20441455.113
+ 42.600 46.500
+ -14197363.566 6 -11062880.323 5 22016744.329 22016740.450 22016743.856
+ 40.900 34.700
+ -13322938.381 7 -10381505.921 6 21666858.795 21666856.750 21666858.140
+ 43.800 38.900
+ -16843949.084 7 -13125149.409 6 21462202.228 21462199.975 21462201.855
+ 43.400 36.600
+ 06 1 1 7 18 0.0000000 0 7G01G05G11G14G22G25G30
+ -15839742.451 7 -12342652.764 7 21244407.827 21244405.951 21244406.952
+ 45.900 42.200
+ -11408604.312 6 -8889815.761 5 22297676.516 22297674.531 22297675.364
+ 39.300 32.100
+ -2152110.283 4 -1676969.692 2 24190231.900 24190228.377 24190231.110
+ 24.600 16.100
+ -17324316.563 7 -13499463.478 7 20446586.320 20446583.240 20446585.406
+ 42.600 46.300
+ -14022147.096 6 -10926348.026 5 22050086.515 22050083.137 22050086.507
+ 40.700 34.400
+ -13446761.015 7 -10477991.061 6 21643295.919 21643293.675 21643295.210
+ 43.500 38.700
+ -16884082.467 7 -13156422.166 6 21454564.693 21454562.784 21454564.435
+ 43.400 36.400
+ 06 1 1 7 19 0.0000000 0 7G01G05G11G14G22G25G30
+ -15940099.613 7 -12420853.159 7 21225310.370 21225308.438 21225309.566
+ 45.900 42.200
+ -11314819.004 6 -8816736.306 5 22315523.252 22315521.040 22315522.245
+ 39.600 32.000
+ -2094483.870 3 -1632066.044 3 24201197.700 24201194.546 24201196.556
+ 22.100 20.500
+ -17296056.462 7 -13477442.618 7 20451964.138 20451960.933 20451963.108
+ 42.600 46.300
+ -13845592.608 6 -10788773.134 5 22083684.592 22083680.528 22083683.828
+ 40.100 34.600
+ -13569243.598 7 -10573432.012 6 21619988.432 21619986.352 21619987.767
+ 44.100 39.300
+ -16921699.931 7 -13185734.469 6 21447406.393 21447404.209 21447406.173
+ 43.800 36.100
+ 06 1 1 7 20 0.0000000 0 7G01G05G11G14G22G25G30
+ -16039555.949 7 -12498351.612 7 21206384.755 21206382.529 21206383.880
+ 46.100 42.200
+ -11218787.824 6 -8741906.810 5 22333797.391 22333795.299 22333796.169
+ 38.200 31.600
+ -2035063.913 4 -1585764.817 3 24212504.572 24212501.892 24212503.750
+ 24.200 19.300
+ -17266495.169 7 -13454407.847 7 20457589.445 20457586.389 20457588.407
+ 42.600 46.100
+ -13667714.970 6 -10650167.217 5 22117533.394 22117529.193 22117532.781
+ 39.800 33.500
+ -13690382.249 7 -10667825.727 6 21596936.499 21596934.224 21596935.836
+ 44.100 39.400
+ -16956794.289 7 -13213080.710 6 21440728.368 21440726.167 21440728.099
+ 43.900 36.600
+ 06 1 1 7 21 0.0000000 0 7G01G05G11G14G22G25G30
+ -16138104.917 7 -12575143.016 7 21187631.520 21187629.496 21187630.591
+ 46.300 42.700
+ -11120524.441 6 -8665337.935 5 22352496.269 22352494.551 22352495.261
+ 39.000 32.000
+ -1973863.897 4 -1538076.504 3 24224150.667 24224148.017 24224150.042
+ 24.600 18.600
+ -17235630.915 7 -13430357.783 7 20463462.865 20463459.547 20463461.829
+ 43.000 46.000
+ -13488528.733 6 -10510541.632 5 22151631.242 22151627.717 22151630.758
+ 39.400 34.800
+ -13810173.481 7 -10761169.528 6 21574140.937 21574138.666 21574140.279
+ 44.100 39.300
+ -16989358.796 7 -13238455.642 6 21434531.353 21434529.263 21434531.040
+ 43.900 36.500
+ 06 1 1 7 22 0.0000000 0 7G01G05G11G14G22G25G30
+ -16235740.066 7 -12651222.353 7 21169051.862 21169050.028 21169051.012
+ 45.900 42.700
+ -11020042.605 6 -8587040.416 5 22371617.868 22371615.012 22371616.390
+ 38.300 31.000
+ -1910897.485 3 -1489011.830 2 24236132.212 24236129.922 24236131.983
+ 23.800 17.000
+ -17203462.244 7 -13405291.291 7 20469584.298 20469581.059 20469583.318
+ 43.000 45.900
+ -13308049.029 6 -10369908.147 5 22185976.176 22185971.793 22185975.108
+ 39.100 33.800
+ -13928613.907 7 -10853460.766 6 21551602.721 21551600.316 21551601.917
+ 44.000 39.900
+ -17019387.337 7 -13261854.502 6 21428817.686 21428815.296 21428817.122
+ 43.600 37.100
+ 06 1 1 7 23 0.0000000 0 7G01G05G11G14G22G25G30
+ -16332454.820 7 -12726584.512 7 21150647.634 21150645.916 21150646.844
+ 46.200 42.700
+ -10917356.638 6 -8507025.356 5 22391157.928 22391155.436 22391156.846
+ 38.400 30.400
+ -1846178.159 4 -1438581.197 2 24248449.046 24248445.763 24248448.444
+ 25.600 17.800
+ -17169987.088 7 -13379206.757 7 20475954.345 20475951.268 20475953.480
+ 43.100 45.800
+ -13126291.300 6 -10228278.800 5 22220562.460 22220559.124 22220562.412
+ 39.600 34.100
+ -14045699.995 7 -10944696.670 6 21529321.816 21529319.615 21529321.079
+ 44.100 40.100
+ -17046874.108 7 -13283272.756 6 21423586.668 21423584.605 21423586.331
+ 43.700 36.900
+ 06 1 1 7 24 0.0000000 0 7G01G05G11G14G22G25G30
+ -16428242.300 7 -12801224.110 7 21132420.198 21132418.041 21132419.328
+ 46.500 42.800
+ -10812481.069 6 -8425304.132 5 22411114.600 22411112.831 22411113.672
+ 38.100 31.500
+ -1779720.454 4 -1386795.995 2 24261095.429 24261091.991 24261094.750
+ 24.900 17.000
+ -17135204.313 7 -13352103.304 7 20482573.210 20482570.212 20482572.255
+ 43.100 45.700
+ -12943270.663 6 -10085665.355 5 22255391.368 22255386.990 22255390.407
+ 38.900 33.900
+ -14161428.700 7 -11034874.885 6 21507298.942 21507297.190 21507298.472
+ 44.200 40.200
+ -17071813.624 7 -13302706.141 6 21418840.873 21418838.741 21418840.482
+ 43.600 37.000
+ 06 1 1 7 25 0.0000000 0 7G01G05G11G14G22G25G30
+ -16523095.607 7 -12875135.783 7 21114370.222 21114368.130 21114369.345
+ 46.500 43.100
+ -10705430.639 6 -8341888.210 5 22431486.558 22431483.593 22431485.284
+ 38.900 30.600
+ -1711538.810 4 -1333667.454 3 24274070.195 24274066.747 24274069.418
+ 25.600 18.600
+ -17099111.953 7 -13323979.392 7 20489441.554 20489438.221 20489440.512
+ 43.200 45.600
+ -12759002.301 6 -9942079.650 5 22290455.735 22290452.132 22290455.274
+ 38.600 33.800
+ -14275797.037 7 -11123993.053 6 21485535.673 21485533.514 21485534.957
+ 44.300 40.000
+ -17094200.967 7 -13320150.813 6 21414580.421 21414578.554 21414580.312
+ 43.700 37.000
+ 06 1 1 7 26 0.0000000 0 7G01G05G11G14G22G25G30
+ -16617008.148 7 -12948314.392 7 21096499.094 21096497.202 21096498.292
+ 46.600 43.000
+ -10596220.295 6 -8256789.241 5 22452267.806 22452265.817 22452266.882
+ 38.100 30.400
+ -1641647.080 4 -1279206.413 3 24287369.704 24287366.741 24287369.137
+ 24.900 19.900
+ -17061709.251 7 -13294834.433 7 20496558.922 20496555.844 20496557.976
+ 43.400 45.500
+ -12573501.970 6 -9797533.974 5 22325754.987 22325751.766 22325754.755
+ 38.100 33.500
+ -14388801.927 7 -11212048.797 6 21464031.452 21464029.489 21464030.754
+ 44.200 39.800
+ -17114031.752 7 -13335603.366 6 21410807.060 21410804.854 21410806.690
+ 44.000 36.900
+ 06 1 1 7 27 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16709973.414 7 -13020754.859 7 21078808.581 21078806.456 21078807.668
+ 46.700 43.100
+ -10484865.469 6 -8170019.236 4 22473458.417 22473455.512 22473457.152
+ 38.000 29.500
+ -1570060.944 4 -1223425.038 2 24300992.591 24300988.633 24300991.864
+ 24.200 16.100
+ -17022994.061 7 -13264666.768 7 20503926.235 20503923.036 20503925.296
+ 43.400 45.300
+ -329250.980 3 -256559.034 2 24585053.913 24585051.705 24585053.566
+ 19.300 12.600
+ -12386785.685 6 -9652040.817 5 22361286.961 22361282.373 22361285.970
+ 38.100 32.400
+ -14500440.771 7 -11299040.090 6 21442787.496 21442785.269 21442786.802
+ 44.700 40.500
+ -17131301.900 7 -13349060.626 6 21407520.718 21407518.565 21407520.293
+ 44.000 36.900
+ 06 1 1 7 28 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16801984.389 7 -13092451.733 7 21061299.410 21061297.417 21061298.522
+ 46.800 43.400
+ -10371381.786 6 -8081590.396 5 22495053.422 22495050.879 22495052.386
+ 37.600 31.100
+ -1496795.216 3 -1166334.877 3 24314934.502 24314931.200 24314933.797
+ 23.400 18.600
+ -16982965.443 7 -13233475.632 7 20511543.403 20511540.209 20511542.405
+ 43.400 45.300
+ -538561.823 3 -419658.384 2 24545225.157 24545220.946 24545223.837
+ 22.600 16.100
+ -12198868.716 6 -9505612.042 5 22397045.647 22397042.059 22397045.190
+ 38.000 33.000
+ -14610710.934 7 -11384964.872 6 21421803.717 21421801.391 21421803.000
+ 44.900 39.900
+ -17146007.811 7 -13360519.769 6 21404721.995 21404719.992 21404721.721
+ 43.600 37.100
+ 06 1 1 7 29 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16893034.080 7 -13163399.542 7 21043973.339 21043971.188 21043972.423
+ 46.800 43.300
+ -10255785.271 6 -7991515.194 5 22517050.934 22517048.647 22517049.707
+ 37.100 30.400
+ -1421864.995 3 -1107947.735 2 24329192.907 24329189.375 24329192.314
+ 23.000 16.100
+ -16941621.925 7 -13201259.919 7 20519410.739 20519407.681 20519409.724
+ 43.200 45.200
+ -747187.369 4 -582223.681 3 24505525.143 24505522.264 24505523.691
+ 27.100 22.600
+ -12009767.271 6 -9358260.297 5 22433031.459 22433027.011 22433030.462
+ 38.500 32.800
+ -14719609.888 7 -11469821.182 6 21401081.047 21401078.708 21401080.335
+ 45.300 40.300
+ -17158146.373 7 -13369978.383 6 21402412.036 21402410.061 21402411.895
+ 43.600 37.000
+ 06 1 1 7 30 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -16983115.540 7 -13233592.888 7 21026831.405 21026829.231 21026830.459
+ 46.700 43.500
+ -10138091.943 6 -7899806.101 5 22539447.274 22539445.026 22539446.105
+ 36.600 31.000
+ -1345285.377 3 -1048275.338 2 24343765.675 24343761.848 24343764.615
+ 23.000 15.100
+ -16898962.094 7 -13168018.495 7 20527528.792 20527525.565 20527527.742
+ 43.400 44.900
+ -955106.925 3 -744238.945 2 24465957.599 24465955.522 24465956.556
+ 19.300 13.900
+ -11819496.864 6 -9209997.687 5 22469237.363 22469234.125 22469237.262
+ 37.100 32.400
+ -14827135.411 7 -11553607.293 6 21380619.943 21380617.169 21380619.108
+ 45.800 40.500
+ -17167714.799 7 -13377434.288 6 21400591.200 21400589.349 21400591.006
+ 43.700 37.200
+ 06 1 1 7 31 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17072221.935 7 -13303026.447 7 21009874.758 21009872.897 21009873.987
+ 47.000 43.700
+ -10018318.295 6 -7806475.986 5 22562239.420 22562237.118 22562238.130
+ 36.900 30.400
+ -1267073.205 3 -987330.845 2 24358649.714 24358645.713 24358648.668
+ 21.600 16.100
+ -16854984.730 7 -13133750.427 7 20535897.346 20535894.084 20535896.343
+ 43.400 44.700
+ -1162301.122 3 -905688.900 1 24426530.581 24426529.085 24426529.828
+ 21.600 9.000
+ -11628073.927 6 -9060837.006 5 22505665.360 22505660.995 22505664.319
+ 37.700 33.200
+ -14933285.239 7 -11636321.432 6 21360419.682 21360417.580 21360419.065
+ 45.400 40.500
+ -17174711.063 7 -13382885.916 6 21399260.407 21399257.856 21399259.854
+ 44.000 37.100
+ 06 1 1 7 32 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17160345.853 7 -13371694.438 7 20993105.502 20993103.415 20993104.522
+ 46.600 43.700
+ -9896480.853 6 -7711537.727 4 22585424.120 22585421.904 22585423.069
+ 37.200 29.900
+ -1187243.828 3 -925126.148 2 24373840.336 24373837.319 24373839.535
+ 18.600 15.100
+ -16809688.662 7 -13098454.790 7 20544516.797 20544513.858 20544515.856
+ 43.600 44.800
+ -1368749.319 4 -1066557.761 2 24387245.776 24387242.425 24387244.701
+ 28.600 16.100
+ -11435514.770 6 -8910790.963 5 22542306.737 22542303.352 22542306.680
+ 36.500 31.100
+ -15038057.287 7 -11717961.973 6 21340482.523 21340480.105 21340481.836
+ 45.200 40.300
+ -17179133.400 7 -13386331.881 6 21398418.312 21398416.520 21398418.073
+ 43.800 37.100
+ 06 1 1 7 33 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17247480.230 7 -13439591.362 7 20976524.383 20976522.418 20976523.465
+ 46.700 44.000
+ -9772596.762 5 -7615004.649 5 22608998.324 22608996.438 22608997.244
+ 35.800 30.600
+ -1105813.391 3 -861673.892 2 24389336.213 24389332.622 24389335.610
+ 21.600 16.100
+ -16763072.518 7 -13062130.529 7 20553387.816 20553384.497 20553386.704
+ 43.700 44.400
+ -1574431.081 4 -1226829.246 3 24348104.846 24348102.683 24348103.973
+ 29.700 23.800
+ -11241835.914 6 -8759872.408 5 22579163.615 22579159.311 22579162.791
+ 36.100 31.000
+ -15141449.557 7 -11798527.362 6 21320807.410 21320805.243 21320806.735
+ 44.900 40.500
+ -17180980.159 7 -13387770.910 6 21398067.366 21398064.821 21398067.018
+ 44.200 37.000
+ 06 1 1 7 34 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17333617.763 7 -13506711.520 7 20960132.977 20960130.924 20960132.119
+ 47.000 44.100
+ -9646683.087 6 -7516890.110 4 22632959.021 22632956.895 22632957.843
+ 36.300 29.000
+ -1022798.882 3 -796987.324 3 24405133.160 24405129.989 24405132.494
+ 21.600 19.900
+ -16715135.280 7 -13024776.860 7 20562509.826 20562506.616 20562508.761
+ 43.600 44.200
+ -1779325.364 3 -1386487.048 4 24309115.665 24309112.384 24309114.112
+ 23.800 24.900
+ -11047053.504 6 -8608093.982 5 22616228.350 22616225.415 22616228.571
+ 36.600 31.300
+ -15243460.389 7 -11878016.303 6 21301395.546 21301393.242 21301394.837
+ 45.300 40.800
+ -17180250.648 7 -13387202.452 6 21398205.708 21398203.720 21398205.440
+ 43.800 37.200
+ 06 1 1 7 35 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17418751.349 7 -13573049.381 7 20943932.458 20943930.587 20943931.574
+ 46.800 44.000
+ -9518757.140 6 -7417207.548 4 22657302.920 22657300.449 22657301.515
+ 36.500 29.500
+ -938216.701 3 -731079.190 3 24421227.418 24421225.385 24421227.192
+ 21.600 19.900
+ -16665875.702 7 -12986392.779 7 20571883.509 20571880.399 20571882.536
+ 43.500 44.000
+ -1983412.306 2 -1545515.757 3 24270278.686 24270275.566 24270277.604
+ 17.000 23.400
+ -10851184.439 6 -8455468.779 5 22653502.776 22653498.106 22653501.705
+ 36.500 31.500
+ -15344088.054 7 -11956427.462 6 21282246.503 21282244.252 21282245.895
+ 45.100 40.800
+ -17176944.392 7 -13384626.143 6 21398835.025 21398833.168 21398834.685
+ 44.000 37.400
+ 06 1 1 7 36 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17502873.719 7 -13638599.286 7 20927924.445 20927922.537 20927923.594
+ 46.900 43.800
+ -9388836.597 5 -7315970.748 4 22682025.110 22682022.828 22682024.106
+ 35.500 28.100
+ -852083.682 3 -663962.605 3 24437619.079 24437616.334 24437618.424
+ 22.600 21.600
+ -16615292.991 7 -12946977.708 7 20581509.230 20581506.062 20581508.218
+ 43.700 44.200
+ -2186671.210 4 -1703899.291 3 24231599.958 24231596.574 24231598.463
+ 24.900 18.600
+ -10654245.123 6 -8302009.627 5 22690977.728 22690974.528 22690977.609
+ 36.200 30.600
+ -15443331.115 7 -12033759.696 6 21263361.395 21263359.122 21263360.626
+ 45.200 41.300
+ -17171061.291 7 -13380041.908 6 21399954.618 21399952.488 21399954.252
+ 44.000 37.300
+ 06 1 1 7 37 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17585977.604 7 -13703355.558 7 20912110.517 20912108.457 20912109.585
+ 46.800 44.000
+ -9256939.227 5 -7213193.565 4 22707124.864 22707122.280 22707123.732
+ 35.800 28.600
+ -764416.553 4 -595650.615 3 24454301.866 24454298.496 24454301.242
+ 24.600 20.500
+ -16563385.537 7 -12906530.357 7 20591387.084 20591383.779 20591385.929
+ 43.900 44.200
+ -2389080.854 4 -1861621.111 24193082.273 24193080.130 24193081.508
+ 29.000 3.000
+ -10456252.379 5 -8147729.647 4 22728655.709 22728651.228 22728654.604
+ 35.600 29.200
+ -15541188.123 7 -12110011.900 6 21244739.755 21244737.494 21244739.079
+ 45.500 41.500
+ -17162601.942 7 -13373450.194 6 21401564.203 21401562.260 21401563.850
+ 43.700 37.200
+ 06 1 1 7 38 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17668055.614 7 -13767312.456 7 20896491.543 20896489.569 20896490.592
+ 46.900 44.200
+ -9123083.228 5 -7108890.199 4 22732596.653 22732594.091 22732595.501
+ 35.800 27.600
+ -675233.094 4 -526157.066 3 24471272.578 24471270.099 24471271.857
+ 25.600 19.900
+ -16510152.824 7 -12865050.340 7 20601516.712 20601513.518 20601515.708
+ 43.800 44.000
+ -2590620.648 5 -2018665.189 2 24154731.058 24154727.866 24154730.008
+ 30.100 13.900
+ -10257223.070 5 -7992641.953 5 22766528.453 22766525.471 22766528.396
+ 34.700 30.800
+ -15637657.840 7 -12185183.093 6 21226382.228 21226379.866 21226381.554
+ 45.600 41.900
+ -17151567.212 7 -13364851.700 6 21403664.338 21403662.140 21403663.982
+ 44.000 37.200
+ 06 1 1 7 39 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17749100.605 7 -13830464.405 7 20881069.263 20881067.261 20881068.361
+ 47.200 44.300
+ -8987286.841 6 -7003074.819 4 22758437.959 22758435.373 22758436.845
+ 36.400 28.400
+ -584550.504 4 -455495.338 3 24488529.467 24488526.304 24488528.740
+ 25.900 18.600
+ -16455593.954 7 -12822536.954 7 20611899.055 20611895.814 20611898.017
+ 44.000 43.900
+ -2791269.911 4 -2175015.277 2 24116547.301 24116544.914 24116546.722
+ 28.100 17.800
+ -10057174.478 5 -7836760.043 5 22804598.290 22804593.490 22804597.292
+ 34.900 30.400
+ -15732739.156 7 -12259272.421 7 21208288.687 21208286.493 21208287.935
+ 45.100 42.000
+ -17137958.263 7 -13354247.317 6 21406253.973 21406251.768 21406253.532
+ 44.100 37.200
+ 06 1 1 7 40 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17829104.887 7 -13892805.403 7 20865844.832 20865842.825 20865843.933
+ 46.900 44.100
+ -8849568.408 5 -6895761.754 4 22784644.690 22784642.408 22784643.582
+ 34.900 28.400
+ -492386.138 3 -383678.991 3 24506067.506 24506064.594 24506066.818
+ 23.800 18.600
+ -16399707.973 7 -12778989.454 7 20622533.702 20622530.571 20622532.738
+ 44.000 43.900
+ -2991007.784 4 -2330655.137 3 24078538.896 24078536.037 24078538.091
+ 25.900 23.400
+ -9856123.370 5 -7680096.946 4 22842857.022 22842852.050 22842855.940
+ 34.700 29.200
+ -15826430.977 7 -12332279.025 7 21190459.764 21190457.498 21190459.032
+ 45.100 42.100
+ -17121777.028 7 -13341638.558 6 21409333.058 21409330.954 21409332.742
+ 44.300 37.200
+ 06 1 1 7 41 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17908060.760 7 -13954329.461 7 20850820.086 20850818.052 20850819.242
+ 47.100 44.400
+ -8709946.614 5 -6786965.537 4 22811213.449 22811211.574 22811212.535
+ 34.400 28.400
+ -398758.186 4 -310722.182 2 24523884.896 24523880.446 24523884.107
+ 26.500 17.000
+ -16342493.946 7 -12734407.120 7 20633421.311 20633418.059 20633420.315
+ 44.300 43.600
+ -3189813.583 4 -2485568.714 3 24040708.133 24040705.083 24040706.973
+ 26.200 21.600
+ -9654086.835 5 -7522665.979 4 22881301.814 22881298.509 22881301.592
+ 34.600 29.200
+ -15918732.433 7 -12404202.237 7 21172895.214 21172893.051 21172894.595
+ 45.200 42.000
+ -17103025.836 7 -13327027.238 6 21412901.228 21412899.220 21412900.837
+ 43.800 37.000
+ 06 1 1 7 42 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -17985961.122 7 -14015031.047 7 20835996.123 20835994.063 20835995.239
+ 47.100 44.100
+ -8568440.330 5 -6676700.919 4 22838141.736 22838139.837 22838140.566
+ 35.200 29.200
+ -303684.577 3 -236638.898 2 24541976.979 24541973.395 24541976.017
+ 23.800 17.800
+ -16283950.872 7 -12688789.157 7 20644561.766 20644558.448 20644560.718
+ 44.000 43.500
+ -3387665.766 4 -2639739.221 3 24003057.785 24003055.074 24003057.028
+ 28.800 23.800
+ -9451082.225 5 -7364480.671 4 22919933.541 22919929.344 22919932.501
+ 34.100 29.500
+ -16009643.052 7 -12475041.680 7 21155595.642 21155593.561 21155594.916
+ 44.900 42.500
+ -17081707.199 7 -13310415.306 6 21416957.915 21416955.944 21416957.538
+ 43.800 36.900
+ 06 1 1 7 43 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18062797.984 7 -14074903.927 7 20821374.480 20821372.557 20821373.658
+ 47.000 44.400
+ -8425068.635 5 -6564982.703 4 22865424.603 22865422.079 22865423.358
+ 35.300 28.100
+ -207183.560 3 -161443.346 3 24560339.613 24560337.133 24560338.938
+ 19.900 18.600
+ -16224078.411 7 -12642135.312 7 20655954.880 20655951.887 20655953.923
+ 44.000 43.300
+ -3584543.280 4 -2793150.294 3 23965593.299 23965590.336 23965592.172
+ 28.400 22.100
+ -9247126.579 5 -7205554.335 4 22958744.023 22958740.943 22958743.611
+ 33.100 28.800
+ -16099161.862 7 -12544796.593 7 21138560.595 21138558.534 21138559.954
+ 45.200 42.700
+ -17057824.207 7 -13291805.176 6 21421502.792 21421500.642 21421502.482
+ 44.100 36.900
+ 06 1 1 7 44 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18138563.668 7 -14133942.126 7 20806956.902 20806954.708 20806955.919
+ 47.100 44.200
+ -8279850.683 5 -6451825.861 4 22893058.649 22893056.464 22893057.537
+ 35.900 28.100
+ -109273.521 3 -85149.841 2 24578971.420 24578968.518 24578970.570
+ 21.600 17.000
+ -16162875.619 7 -12594444.847 7 20667601.389 20667598.477 20667600.403
+ 44.000 43.300
+ -3780425.040 4 -2945785.421 3 23928318.441 23928314.597 23928317.109
+ 27.900 19.300
+ -9042237.245 5 -7045900.442 4 22997733.130 22997730.197 22997733.057
+ 33.500 29.000
+ -16187288.557 7 -12613466.739 7 21121790.804 21121788.847 21121790.155
+ 45.400 43.200
+ -17031380.450 7 -13271199.639 6 21426534.932 21426532.751 21426534.542
+ 44.000 36.800
+ 06 1 1 7 45 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18213250.632 7 -14192139.758 7 20792744.250 20792742.282 20792743.358
+ 46.900 44.400
+ -8132805.924 5 -6337245.528 4 22921040.592 22921037.894 22921039.310
+ 34.600 27.600
+ -9972.859 3 -7772.778 2 24597868.491 24597864.816 24597867.377
+ 21.600 15.100
+ -16100341.996 7 -12545717.372 7 20679501.230 20679498.019 20679500.219
+ 44.200 42.900
+ -3975290.304 4 -3097628.488 3 23891236.883 23891233.481 23891235.444
+ 25.600 18.600
+ -8836432.283 5 -6885532.995 4 23036897.364 23036893.695 23036896.695
+ 31.500 28.600
+ -16274022.719 7 -12681051.802 7 21105285.763 21105283.600 21105285.051
+ 45.000 43.000
+ -17002379.828 7 -13248601.748 6 21432053.526 21432051.465 21432053.223
+ 44.100 37.100
+ 06 1 1 7 46 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18286850.926 7 -14249490.638 7 20778738.462 20778736.681 20778737.684
+ 47.000 44.600
+ -7983953.862 5 -6221256.881 4 22949365.826 22949363.776 22949364.771
+ 34.700 28.400
+ 90699.715 3 70673.323 2 24617025.264 24617022.051 24617024.173
+ 20.500 12.600
+ -16036477.310 7 -12495952.720 7 20691654.335 20691651.292 20691653.290
+ 44.200 43.000
+ -4169117.888 4 -3248663.013 3 23854352.994 23854349.592 23854351.800
+ 29.900 19.900
+ -8629728.388 5 -6724465.120 4 23076232.071 23076228.063 23076231.307
+ 33.200 28.800
+ -16359364.045 7 -12747551.527 7 21089045.974 21089043.735 21089045.291
+ 45.200 43.300
+ -16970826.875 7 -13224015.022 6 21438057.925 21438055.694 21438057.585
+ 44.100 36.700
+ 06 1 1 7 47 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18359357.283 7 -14305989.099 7 20764941.096 20764939.163 20764940.260
+ 46.900 44.600
+ -7833314.159 5 -6103875.285 4 22978031.290 22978029.616 22978030.145
+ 32.800 27.600
+ 192725.460 3 150173.874 2 24636439.822 24636437.252 24636439.470
+ 22.100 13.900
+ -15971280.466 7 -12445150.013 7 20704060.969 20704057.788 20704059.910
+ 44.300 43.100
+ -4361886.097 5 -3398872.045 3 23817670.512 23817667.504 23817669.441
+ 30.800 23.400
+ -8422143.280 5 -6562710.586 4 23115733.618 23115730.212 23115733.426
+ 33.100 27.900
+ -16443312.710 7 -12812966.058 7 21073071.058 21073068.759 21073070.381
+ 45.300 43.000
+ -16936726.395 7 -13197443.212 6 21444546.694 21444544.921 21444546.482
+ 43.900 37.000
+ 06 1 1 7 48 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18430761.828 7 -14361629.004 7 20751353.336 20751351.322 20751352.447
+ 47.100 44.800
+ -7680906.834 5 -5985116.324 4 23007033.063 23007031.661 23007032.116
+ 33.600 27.400
+ 296085.235 3 230713.898 2 24656109.181 24656106.241 24656108.518
+ 22.600 12.600
+ -15904751.369 7 -12393309.190 7 20716720.935 20716718.009 20716720.016
+ 44.400 43.000
+ -4553574.315 4 -3548239.454 3 23781193.161 23781190.058 23781191.892
+ 29.200 22.600
+ -8213695.217 5 -6400283.566 4 23155400.428 23155396.716 23155399.422
+ 30.600 27.900
+ -16525868.502 7 -12877295.239 7 21057361.225 21057358.966 21057360.500
+ 45.300 43.100
+ -16900083.713 7 -13168890.468 6 21451519.554 21451517.654 21451519.282
+ 43.900 36.600
+ 06 1 1 7 49 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18501056.942 7 -14416404.410 7 20737976.625 20737974.613 20737975.702
+ 47.000 44.800
+ -7526751.746 5 -5864995.490 4 23036367.769 23036366.208 23036366.764
+ 32.800 27.900
+ 400759.924 3 312278.532 1 24676028.021 24676024.588 24676027.074
+ 20.500 6.500
+ -15836889.288 7 -12340429.678 7 20729634.676 20729631.704 20729633.644
+ 44.300 42.700
+ -4744160.849 4 -3696748.429 3 23744924.811 23744922.556 23744923.809
+ 28.800 22.600
+ -8004401.786 5 -6237197.857 4 23195227.658 23195223.884 23195226.853
+ 31.300 26.500
+ -16607031.433 7 -12940539.074 7 21041916.274 21041914.087 21041915.594
+ 45.400 43.100
+ -16860904.271 7 -13138361.034 6 21458975.648 21458973.175 21458975.229
+ 44.400 36.700
+ 06 1 1 7 50 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18570234.529 7 -14470309.023 7 20724812.575 20724810.546 20724811.705
+ 47.100 45.000
+ -7370869.107 5 -5743528.483 4 23066032.237 23066029.488 23066030.807
+ 33.500 25.300
+ 506730.066 3 394852.644 2 24696192.625 24696190.527 24696192.310
+ 21.600 16.100
+ -15767694.252 7 -12286511.495 7 20742802.106 20742799.153 20742801.116
+ 44.200 42.700
+ -4933624.673 5 -3844382.575 4 23708871.885 23708868.816 23708870.590
+ 30.400 24.600
+ -7794280.660 4 -6073467.155 4 23235211.706 23235208.880 23235211.337
+ 29.500 27.900
+ -16686801.961 7 -13002697.911 7 21026736.388 21026734.271 21026735.735
+ 45.400 43.300
+ -16819194.404 7 -13105859.829 6 21466912.491 21466910.095 21466912.246
+ 44.100 36.400
+ 06 1 1 7 51 0.0000000 0 8G01G05G11G14G20G22G25G30
+ -18638286.707 7 -14523336.692 7 20711862.590 20711860.700 20711861.780
+ 47.100 45.100
+ -7213279.153 5 -5620731.125 4 23096019.777 23096018.404 23096018.608
+ 31.800 27.100
+ 613976.463 3 478421.225 2 24716602.370 24716598.762 24716601.833
+ 22.600 15.100
+ -15697166.096 7 -12231554.513 7 20756223.129 20756220.291 20756222.050
+ 44.400 42.600
+ -5121944.205 4 -3991125.051 3 23673035.415 23673032.753 23673034.519
+ 27.600 23.000
+ -7583349.501 5 -5909105.321 4 23275350.252 23275347.718 23275350.249
+ 30.400 26.500
+ -16765180.354 7 -13063771.972 7 21011821.751 21011819.447 21011820.982
+ 45.700 43.400
+ -16774960.623 7 -13071391.947 6 21475329.671 21475327.840 21475329.579
+ 44.100 36.700
+ 06 1 1 7 52 0.0000000 0 7G01G05G14G20G22G25G30
+ -18705205.644 7 -14575481.319 7 20699128.313 20699126.310 20699127.438
+ 47.000 44.900
+ -7054002.347 5 -5496619.319 4 23126328.975 23126327.226 23126328.196
+ 32.800 24.900
+ -15625304.320 7 -12175558.352 7 20769897.995 20769895.144 20769896.981
+ 44.600 42.500
+ -5309098.354 4 -4136959.443 3 23637421.624 23637418.249 23637420.538
+ 28.600 21.600
+ -7371626.328 5 -5744126.312 4 23315640.574 23315637.540 23315640.254
+ 30.400 26.200
+ -16842167.104 7 -13123761.638 7 20997171.486 20997169.295 20997170.867
+ 45.900 43.300
+ -16728209.773 7 -13034962.714 6 21484226.291 21484224.370 21484225.887
+ 43.800 37.000
+ 06 1 1 7 53 0.0000000 0 7G01G05G14G20G22G25G30
+ -18770983.350 7 -14626736.677 7 20686611.501 20686609.443 20686610.595
+ 47.200 45.500
+ -6893059.156 5 -5371209.038 4 23156956.329 23156953.733 23156955.306
+ 33.900 25.900
+ -15552109.072 7 -12118523.136 7 20783826.984 20783823.712 20783825.824
+ 44.500 42.300
+ -5495066.235 5 -4281869.515 4 23602032.654 23602030.325 23602031.756
+ 32.600 24.200
+ -7159128.932 4 -5578543.969 4 23356077.724 23356074.595 23356077.206
+ 29.500 25.600
+ -16917762.763 7 -13182667.338 7 20982786.052 20982783.931 20982785.338
+ 45.500 43.600
+ -16678949.404 7 -12996578.007 6 21493600.589 21493598.256 21493600.164
+ 43.900 36.900
+ 06 1 1 7 54 0.0000000 0 7G01G05G14G20G22G25G30
+ -18835612.000 7 -14677096.665 7 20674312.895 20674310.886 20674312.024
+ 47.100 45.400
+ -6730470.329 5 -5244516.443 4 23187896.218 23187893.760 23187894.902
+ 33.200 26.800
+ -15477580.087 7 -12060448.621 7 20798009.210 20798006.170 20798008.166
+ 44.700 42.000
+ -5679825.967 5 -4425838.160 4 23566874.437 23566871.775 23566873.283
+ 31.100 24.600
+ -6945875.629 5 -5412372.606 4 23396659.071 23396655.409 23396658.263
+ 31.500 27.100
+ -16991968.078 7 -13240489.656 7 20968665.393 20968663.137 20968664.685
+ 45.800 43.800
+ -16627187.033 7 -12956243.694 6 21503450.146 21503448.159 21503449.915
+ 43.500 36.500
+ 06 1 1 7 55 0.0000000 0 7G01G05G14G20G22G25G30
+ -18899083.461 7 -14726554.946 7 20662234.662 20662232.756 20662233.809
+ 47.100 45.400
+ -6566256.604 5 -5116557.680 4 23219144.682 23219142.042 23219143.681
+ 33.000 24.200
+ -15401716.931 7 -12001334.494 6 20812445.437 20812442.407 20812444.390
+ 44.600 41.800
+ -5863356.127 4 -4568848.692 4 23531948.906 23531947.150 23531948.012
+ 29.000 24.900
+ -6731883.950 5 -5245625.923 4 23437380.545 23437376.560 23437379.382
+ 30.100 27.100
+ -17064783.863 7 -13297229.225 7 20954809.048 20954806.638 20954808.252
+ 45.900 43.700
+ -16572931.004 7 -12913966.267 6 21513774.587 21513772.687 21513774.332
+ 43.500 36.500
+ 06 1 1 7 56 0.0000000 0 7G01G05G14G20G22G25G30
+ -18961389.862 7 -14775105.396 7 20650377.929 20650376.179 20650377.188
+ 47.100 45.600
+ -6400438.834 5 -4987349.018 4 23250698.380 23250696.502 23250697.461
+ 31.100 24.600
+ -15324520.533 7 -11941181.495 6 20827135.271 20827132.277 20827134.310
+ 44.600 41.500
+ -6045635.377 5 -4710884.433 4 23497263.552 23497260.353 23497262.293
+ 32.800 26.500
+ -6517172.620 5 -5078318.471 4 23478238.979 23478234.846 23478237.696
+ 30.100 26.200
+ -17136211.067 7 -13352886.773 7 20941216.722 20941214.470 20941216.028
+ 45.900 43.800
+ -16516189.661 7 -12869752.231 6 21524572.233 21524570.267 21524572.037
+ 43.800 36.400
+ 06 1 1 7 57 0.0000000 0 7G01G05G14G20G22G25G30
+ -19022523.251 7 -14822741.805 7 20638744.864 20638742.916 20638744.100
+ 47.300 45.600
+ -6233037.977 5 -4856906.799 4 23282553.389 23282551.906 23282552.152
+ 30.200 25.300
+ -15245991.000 7 -11879989.657 6 20842078.970 20842076.082 20842078.108
+ 45.000 41.500
+ -6226643.056 5 -4851929.375 3 23462818.101 23462815.397 23462816.925
+ 32.000 23.800
+ -6301759.673 5 -4910464.309 4 23519230.557 23519226.622 23519229.850
+ 31.500 26.200
+ -17206250.563 7 -13407463.006 7 20927888.353 20927886.443 20927887.742
+ 45.600 44.100
+ -16456972.076 7 -12823608.653 5 21535841.258 21535838.789 21535840.936
+ 43.700 35.800
+ 06 1 1 7 58 0.0000000 0 7G01G05G14G20G22G25G30
+ -19082475.415 7 -14869457.781 7 20627336.332 20627334.374 20627335.522
+ 47.300 45.500
+ -6064075.097 5 -4725247.389 4 23314707.289 23314704.152 23314705.730
+ 31.100 24.900
+ -15166127.795 7 -11817758.609 6 20857276.619 20857273.531 20857275.691
+ 45.000 41.200
+ -6406357.363 5 -4991966.513 4 23428619.903 23428617.117 23428618.777
+ 32.400 24.600
+ -6085663.266 4 -4742077.609 3 23560352.599 23560348.518 23560351.361
+ 26.500 22.600
+ -17274903.691 7 -13460958.937 7 20914824.618 20914822.259 20914823.942
+ 46.200 44.400
+ -16395287.628 7 -12775542.844 6 21547579.388 21547577.167 21547579.006
+ 43.900 36.200
+ 06 1 1 7 59 0.0000000 0 7G01G05G14G20G22G25G30
+ -19141238.341 7 -14915247.077 7 20616154.217 20616152.194 20616153.327
+ 47.200 45.600
+ -5893571.338 5 -4592387.356 4 23347151.696 23347149.723 23347150.614
+ 30.200 24.600
+ -15084931.568 7 -11754488.827 6 20872727.682 20872724.591 20872726.896
+ 45.100 41.000
+ -6584756.732 5 -5130979.015 4 23394672.161 23394668.948 23394670.798
+ 32.600 25.600
+ -5868901.704 4 -4573172.561 4 23601600.172 23601596.761 23601599.640
+ 29.200 24.200
+ -17342171.734 7 -13513375.590 7 20902023.960 20902021.613 20902023.253
+ 46.400 44.600
+ -16331146.013 7 -12725562.370 6 21559785.084 21559782.989 21559784.724
+ 43.800 36.100
+ 06 1 1 8 0 0.0000000 0 7G01G05G14G20G22G25G30
+ -19198803.860 7 -14960103.332 7 20605199.847 20605197.828 20605198.983
+ 47.300 45.500
+ -5721548.111 5 -4458343.233 3 23379886.842 23379884.971 23379885.894
+ 31.500 23.000
+ -15002402.992 7 -11690180.853 6 20888432.449 20888429.262 20888431.373
+ 44.700 41.000
+ -6761820.730 5 -5268950.953 4 23360977.243 23360974.976 23360976.330
+ 34.000 25.600
+ -5651493.647 4 -4403763.773 4 23642971.386 23642968.365 23642971.185
+ 28.800 24.200
+ -17408055.870 7 -13564713.878 7 20889486.457 20889484.124 20889485.780
+ 46.200 44.500
+ -16264557.377 7 -12673675.111 6 21572456.514 21572454.500 21572456.175
+ 43.800 36.600
+ 06 1 1 8 1 0.0000000 0 7G01G05G14G20G22G25G30
+ -19255164.397 7 -15004020.644 7 20594474.853 20594472.757 20594474.009
+ 47.400 45.600
+ -5548026.638 5 -4323131.703 3 23412907.478 23412904.963 23412906.035
+ 31.600 23.000
+ -14918542.348 7 -11624834.903 6 20904390.436 20904387.505 20904389.596
+ 44.800 41.000
+ -6937527.713 5 -5405865.493 4 23327541.884 23327538.785 23327540.642
+ 31.600 26.200
+ -5433456.364 4 -4233864.681 3 23684462.832 23684459.549 23684462.407
+ 29.500 23.800
+ -17472557.798 7 -13614975.119 7 20877212.146 20877209.804 20877211.375
+ 46.000 44.400
+ -16195532.136 7 -12619889.214 6 21585591.281 21585589.296 21585591.118
+ 43.800 36.200
+ 06 1 1 8 2 0.0000000 0 7G01G05G14G20G22G25G30
+ -19310311.903 7 -15046992.730 7 20583980.600 20583978.611 20583979.717
+ 47.000 45.800
+ -5373028.220 5 -4186769.289 3 23446208.110 23446205.963 23446207.127
+ 30.400 22.100
+ -14833349.864 7 -11558451.137 6 20920602.006 20920599.140 20920601.084
+ 44.500 40.900
+ -7111856.470 5 -5541706.074 4 23294368.440 23294364.940 23294367.282
+ 33.800 25.300
+ -5214808.554 4 -4063489.868 4 23726070.299 23726067.471 23726069.912
+ 28.600 26.500
+ -17535678.969 7 -13664160.446 7 20865200.708 20865198.145 20865200.007
+ 46.400 44.300
+ -16124081.319 7 -12564213.255 6 21599187.956 21599186.108 21599187.709
+ 43.400 36.300
+ 06 1 1 8 3 0.0000000 0 7G01G05G14G20G22G25G30
+ -19364238.181 7 -15089013.212 7 20573718.695 20573716.821 20573717.825
+ 47.100 45.900
+ -5196574.378 4 -4049272.796 3 23479786.523 23479784.050 23479785.147
+ 29.500 23.000
+ -14746826.803 7 -11491030.586 6 20937066.902 20937064.113 20937065.906
+ 44.400 41.000
+ -7284786.340 5 -5676456.660 4 23261460.421 23261457.635 23261459.273
+ 33.400 24.900
+ -4995569.018 4 -3892653.986 3 23767790.762 23767786.951 23767789.822
+ 27.100 23.400
+ -17597420.975 7 -13712271.099 7 20853451.548 20853449.163 20853450.871
+ 46.200 44.500
+ -16050215.919 7 -12506655.793 5 21613244.485 21613241.886 21613244.036
+ 43.500 35.400
+ 06 1 1 8 4 0.0000000 0 7G01G05G14G20G22G25G30
+ -19416935.134 7 -15130075.783 7 20563690.628 20563688.743 20563689.877
+ 46.900 45.700
+ -5018686.707 4 -3910659.012 3 23513636.760 23513634.738 23513635.550
+ 28.400 21.600
+ -14658973.087 7 -11422573.159 6 20953784.759 20953781.950 20953783.947
+ 44.400 40.700
+ -7456295.500 5 -5810100.151 4 23228823.850 23228820.536 23228822.576
+ 34.900 25.600
+ -4775755.953 4 -3721371.169 3 23809620.555 23809615.940 23809619.124
+ 26.800 20.500
+ -17657785.478 7 -13759308.379 7 20841964.676 20841962.155 20841963.958
+ 46.400 44.700
+ -15973947.765 7 -12447226.051 5 21627757.404 21627755.555 21627757.245
+ 43.500 35.900
+ 06 1 1 8 5 0.0000000 0 7G01G05G14G20G22G25G30
+ -19468394.606 7 -15170174.085 7 20553898.321 20553896.444 20553897.505
+ 47.000 45.900
+ -4839386.659 4 -3770944.673 3 23547756.581 23547754.654 23547755.405
+ 27.600 22.100
+ -14569789.548 7 -11353079.511 6 20970756.114 20970752.981 20970754.952
+ 44.300 40.500
+ -7626363.092 5 -5942620.352 4 23196460.392 23196457.979 23196459.228
+ 32.700 27.600
+ -4555387.883 4 -3549655.861 2 23851554.643 23851550.133 23851553.675
+ 27.100 16.100
+ -17716774.599 7 -13805273.929 7 20830739.339 20830736.984 20830738.586
+ 46.200 44.900
+ -15895288.731 7 -12385933.292 5 21642725.845 21642723.660 21642725.552
+ 43.200 35.600
+ 06 1 1 8 6 0.0000000 0 7G01G05G14G20G22G25G30
+ -19518608.479 7 -15209301.782 7 20544343.034 20544340.951 20544342.203
+ 46.900 45.900
+ -4658695.868 5 -3630146.654 3 23582140.889 23582139.282 23582139.987
+ 30.100 23.800
+ -14479277.717 7 -11282550.830 6 20987979.625 20987976.810 20987978.657
+ 44.400 40.200
+ -7794968.110 5 -6074000.883 4 23164376.066 23164373.213 23164375.032
+ 34.800 26.500
+ -4334482.963 4 -3377522.244 3 23893592.102 23893587.695 23893590.945
+ 29.200 23.800
+ -17774390.159 7 -13850169.176 7 20819775.313 20819773.082 20819774.617
+ 46.100 45.000
+ -15814250.963 7 -12322786.972 5 21658146.755 21658144.799 21658146.471
+ 42.900 35.800
+ 06 1 1 8 7 0.0000000 0 7G01G05G14G20G22G25G30
+ -19567568.458 7 -15247452.428 7 20535026.344 20535024.448 20535025.397
+ 46.800 46.100
+ -4476636.089 4 -3488281.919 3 23616785.920 23616783.834 23616784.344
+ 29.700 22.100
+ -14387437.964 7 -11210987.392 6 21005456.264 21005453.391 21005455.312
+ 44.700 40.000
+ -7962089.843 5 -6204225.626 4 23132574.090 23132570.904 23132572.712
+ 33.200 26.500
+ -4113060.111 4 -3204985.068 3 23935727.004 23935722.907 23935726.374
+ 24.200 22.100
+ -17830634.194 7 -13893995.700 7 20809072.494 20809070.096 20809071.773
+ 46.200 45.000
+ -15730847.216 7 -12257797.039 5 21674017.801 21674015.508 21674017.594
+ 42.900 34.600
+ 06 1 1 8 8 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19615266.792 7 -15284619.979 7 20525949.482 20525947.687 20525948.754
+ 46.900 46.200
+ -4293229.041 5 -3345367.307 3 23651687.040 23651685.195 23651686.127
+ 30.600 21.600
+ -14294271.116 7 -11138389.855 6 21023185.488 21023182.403 21023184.449
+ 44.800 39.600
+ -200620.002 3 -156327.271 2 24561396.667 24561395.945 24561396.102
+ 23.000 12.600
+ -8127707.347 6 -6333278.196 4 23101058.720 23101055.245 23101057.451
+ 37.200 24.600
+ -3891137.458 3 -3032058.407 3 23977958.081 23977953.863 23977956.812
+ 23.800 23.400
+ -17885508.771 7 -13936755.110 7 20798630.178 20798627.874 20798629.447
+ 46.100 45.000
+ -15645090.502 7 -12190973.605 5 21690337.109 21690335.226 21690336.665
+ 42.700 35.900
+ 06 1 1 8 9 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19661695.393 7 -15320798.127 7 20517114.477 20517112.602 20517113.619
+ 46.800 46.200
+ -4108496.384 5 -3201419.776 3 23686840.803 23686838.657 23686840.008
+ 30.100 22.600
+ -14199778.732 7 -11064759.428 6 21041166.908 21041163.731 21041165.933
+ 44.900 39.400
+ -431975.560 3 -336604.277 2 24517371.830 24517370.328 24517370.720
+ 22.600 17.000
+ -8291798.980 5 -6461141.858 4 23069832.443 23069829.423 23069831.250
+ 34.600 26.800
+ -3668733.671 3 -2858756.903 3 24020279.172 24020275.847 24020278.507
+ 23.800 19.300
+ -17939016.322 7 -13978449.311 7 20788448.036 20788445.753 20788447.387
+ 46.400 45.200
+ -15556994.021 7 -12122326.994 5 21707100.873 21707098.973 21707100.718
+ 42.700 35.400
+ 06 1 1 8 10 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19706845.980 7 -15355980.402 7 20508522.778 20508520.757 20508521.914
+ 46.900 46.200
+ -3922459.904 4 -3056456.293 3 23722241.164 23722240.546 23722240.761
+ 28.600 23.000
+ -14103962.052 7 -10990097.088 6 21059399.971 21059396.950 21059399.003
+ 44.700 39.300
+ -663174.672 3 -516759.345 1 24473375.660 24473375.043 24473375.107
+ 23.800 11.000
+ -8454345.596 5 -6587801.549 4 23038900.838 23038898.160 23038899.766
+ 34.800 28.400
+ -3445867.318 3 -2685094.876 3 24062689.039 24062685.875 24062688.184
+ 23.800 18.600
+ -17991159.094 7 -14019080.043 7 20778525.788 20778523.374 20778525.030
+ 46.300 45.300
+ -15466571.516 7 -12051867.890 5 21724307.768 21724305.964 21724307.536
+ 42.700 35.300
+ 06 1 1 8 11 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19750710.514 7 -15390160.558 7 20500175.593 20500173.627 20500174.661
+ 46.900 46.300
+ -3735141.381 4 -2910493.803 3 23757888.077 23757885.761 23757886.726
+ 27.600 22.600
+ -14006821.896 7 -10914403.476 6 21077885.403 21077882.241 21077884.221
+ 44.600 39.300
+ -894196.518 3 -696776.300 2 24429413.540 24429412.503 24429412.703
+ 23.000 13.900
+ -8615325.637 6 -6713240.523 4 23008267.499 23008264.678 23008266.431
+ 36.100 27.400
+ -3222556.849 4 -2511086.868 4 24105184.240 24105181.035 24105183.361
+ 25.600 25.900
+ -18041939.409 7 -14058649.124 7 20768862.266 20768860.223 20768861.607
+ 46.100 45.400
+ -15373837.026 7 -11979607.233 5 21741954.571 21741952.395 21741954.274
+ 42.300 34.400
+ 06 1 1 8 12 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19793281.010 7 -15423332.383 7 20492074.765 20492072.723 20492073.854
+ 46.600 46.300
+ -3546562.772 4 -2763549.468 3 23793773.196 23793770.936 23793771.780
+ 28.800 21.600
+ -13908359.798 7 -10837679.782 6 21096621.959 21096619.035 21096620.845
+ 44.100 39.100
+ -1125020.769 3 -876639.288 2 24385489.946 24385488.421 24385488.446
+ 21.100 15.100
+ -8774718.500 6 -6837442.791 4 22977936.115 22977933.155 22977934.892
+ 36.800 27.900
+ -2998821.340 3 -2336747.676 3 24147761.862 24147756.859 24147760.336
+ 23.400 21.100
+ -18091359.914 7 -14097158.609 7 20759458.075 20759455.700 20759457.360
+ 46.200 45.400
+ -15278804.772 7 -11905556.122 5 21760038.946 21760036.788 21760038.549
+ 42.300 35.300
+ 06 1 1 8 13 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19834549.403 7 -15455489.606 7 20484221.630 20484219.718 20484220.768
+ 46.800 46.400
+ -3356745.887 4 -2615640.205 3 23829893.898 23829892.131 23829893.003
+ 28.100 19.900
+ -13808576.975 7 -10759926.959 6 21115609.779 21115607.021 21115608.811
+ 43.900 39.100
+ -1355627.358 4 -1056332.585 2 24341606.628 24341605.274 24341605.638
+ 24.600 12.600
+ -8932503.812 5 -6960392.388 4 22947910.153 22947907.825 22947908.986
+ 35.700 28.400
+ -2774678.651 4 -2162091.131 2 24190412.100 24190409.531 24190412.235
+ 27.600 17.000
+ -18139423.061 7 -14134610.420 7 20750311.906 20750309.642 20750311.263
+ 46.400 45.400
+ -15181489.348 7 -11829725.907 5 21778557.481 21778555.292 21778557.000
+ 42.400 34.800
+ 06 1 1 8 14 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19874507.596 7 -15486625.893 7 20476617.779 20476615.862 20476616.907
+ 46.500 46.400
+ -3165712.522 4 -2466782.990 3 23866246.029 23866243.831 23866245.241
+ 26.200 18.600
+ -13707475.471 7 -10681146.578 6 21134848.717 21134846.219 21134847.815
+ 44.100 39.200
+ -1585996.375 3 -1235840.890 2 24297767.693 24297767.478 24297767.505
+ 22.600 13.900
+ -9088661.052 6 -7082073.356 4 22918194.852 22918192.597 22918193.734
+ 37.100 29.900
+ -2550147.420 4 -1987131.857 2 24233139.630 24233136.190 24233138.783
+ 25.600 16.100
+ -18186131.541 7 -14171006.641 7 20741423.638 20741421.232 20741422.905
+ 46.400 45.300
+ -15081905.561 7 -11752128.145 5 21797507.423 21797505.090 21797507.190
+ 42.400 34.400
+ 06 1 1 8 15 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19913147.681 7 -15516735.060 7 20469264.700 20469263.057 20469263.879
+ 46.400 46.500
+ -2973484.517 4 -2316994.967 3 23902825.987 23902824.290 23902825.103
+ 29.500 22.100
+ -13605056.554 7 -10601339.645 6 21154338.680 21154335.676 21154337.650
+ 44.300 38.700
+ -1816107.568 4 -1415148.199 2 24253979.716 24253978.066 24253978.770
+ 24.200 17.000
+ -9243170.156 6 -7202470.069 4 22888792.276 22888790.147 22888791.358
+ 36.100 29.700
+ -2325246.328 3 -1811884.422 2 24275937.505 24275933.355 24275936.598
+ 23.800 13.900
+ -18231488.021 7 -14206349.356 7 20732792.594 20732790.339 20732791.901
+ 46.400 45.700
+ -14980068.708 7 -11672774.738 5 21816886.655 21816884.449 21816886.181
+ 42.300 34.900
+ 06 1 1 8 16 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19950461.659 7 -15545810.885 7 20462164.125 20462162.393 20462163.291
+ 46.400 46.500
+ -2780083.816 4 -2166293.096 2 23939629.544 23939626.217 23939628.145
+ 26.500 16.100
+ -13501321.918 7 -10520507.475 6 21174079.037 21174075.919 21174077.896
+ 44.400 38.900
+ -2045939.895 4 -1594238.206 2 24210244.933 24210242.295 24210243.772
+ 24.600 17.000
+ -9396010.741 6 -7321566.635 4 22859708.029 22859704.954 22859706.656
+ 36.500 27.400
+ -2099994.087 4 -1636363.325 3 24318801.091 24318798.324 24318800.610
+ 24.200 22.100
+ -18275495.351 7 -14240640.783 7 20724418.191 20724416.100 20724417.557
+ 46.500 46.000
+ -14875994.306 7 -11591677.792 5 21836690.839 21836688.860 21836690.601
+ 42.100 34.300
+ 06 1 1 8 17 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -19986441.929 7 -15573847.461 7 20455317.272 20455315.603 20455316.406
+ 46.300 46.600
+ -2585532.123 4 -2014694.405 3 23976651.422 23976648.321 23976650.477
+ 27.900 18.600
+ -13396273.460 7 -10438651.561 6 21194068.951 21194065.940 21194067.939
+ 44.800 38.600
+ -2275472.990 4 -1773095.089 3 24166565.178 24166564.496 24166564.304
+ 25.900 19.900
+ -9547162.778 6 -7439347.474 4 22830944.691 22830941.936 22830943.452
+ 36.500 29.000
+ -1874409.226 3 -1460583.063 3 24361728.098 24361725.668 24361727.843
+ 22.100 21.600
+ -18318156.499 7 -14273883.253 7 20716300.409 20716297.842 20716299.629
+ 46.800 45.800
+ -14769698.206 7 -11508849.650 5 21856918.521 21856916.384 21856918.201
+ 42.100 33.900
+ 06 1 1 8 18 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20021080.134 7 -15600838.271 7 20448725.908 20448724.070 20448725.003
+ 46.400 46.500
+ -2389851.609 3 -1862216.072 3 24013887.779 24013886.009 24013886.769
+ 23.400 18.600
+ -13289913.132 7 -10355773.408 6 21214308.591 21214305.730 21214307.538
+ 44.200 38.400
+ -2504686.802 3 -1951703.086 2 24122945.735 24122945.729 24122946.010
+ 22.600 15.100
+ -9696606.539 6 -7555797.152 5 22802506.438 22802504.032 22802505.293
+ 37.600 31.000
+ -1648510.340 3 -1284558.191 3 24404715.963 24404712.924 24404715.055
+ 21.100 19.900
+ -18359474.357 7 -14306079.008 7 20708437.692 20708435.312 20708436.968
+ 46.700 45.800
+ -14661196.295 6 -11424302.693 5 21877565.733 21877563.592 21877565.419
+ 41.900 34.300
+ 06 1 1 8 19 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20054368.229 7 -15626777.061 7 20442391.393 20442389.659 20442390.581
+ 46.400 46.600
+ -2193063.745 4 -1708874.893 3 24051335.372 24051333.469 24051334.288
+ 25.900 19.300
+ -13182242.817 7 -10271874.475 6 21234797.570 21234794.502 21234796.524
+ 44.200 37.900
+ -2733560.558 4 -2130046.150 2 24079392.591 24079392.162 24079392.535
+ 25.600 15.100
+ -9844321.889 6 -7670900.021 5 22774397.546 22774394.398 22774396.162
+ 37.400 30.200
+ -1422316.016 3 -1108303.088 3 24447757.606 24447757.475 24447757.803
+ 20.500 19.300
+ -18399452.039 7 -14337230.474 7 20700830.045 20700827.813 20700829.423
+ 46.500 45.800
+ -14550504.860 7 -11338049.628 5 21898629.930 21898627.462 21898629.549
+ 42.200 34.400
+ 06 1 1 8 20 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20086298.515 7 -15651657.805 7 20436315.328 20436313.396 20436314.472
+ 46.500 46.500
+ -1995190.634 4 -1554688.041 2 24088989.847 24088987.035 24088988.794
+ 25.900 13.900
+ -13073264.598 7 -10186956.392 6 21255535.663 21255532.507 21255534.507
+ 44.300 38.200
+ -2962074.059 4 -2308108.532 2 24035908.679 24035908.006 24035908.041
+ 26.800 17.800
+ -9990289.397 6 -7784640.947 4 22746620.341 22746617.569 22746619.280
+ 38.000 28.600
+ -1195844.839 4 -931832.254 2 24490855.766 24490851.835 24490855.177
+ 26.500 16.100
+ -18438092.548 7 -14367339.970 7 20693477.122 20693474.845 20693476.442
+ 46.400 46.100
+ -14437640.647 6 -11250103.466 5 21920106.706 21920104.713 21920106.507
+ 41.400 33.800
+ 06 1 1 8 21 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20116863.126 7 -15675474.396 7 20430499.163 20430497.165 20430498.240
+ 46.400 46.300
+ -1796253.886 4 -1399672.426 3 24126846.225 24126844.090 24126844.937
+ 27.400 21.100
+ -12962980.669 7 -10101020.887 6 21276521.930 21276518.930 21276520.780
+ 44.000 37.700
+ -3190207.253 4 -2485874.527 2 23992495.869 23992495.266 23992495.511
+ 24.600 13.900
+ -10134489.726 6 -7897004.864 4 22719179.777 22719177.158 22719178.684
+ 37.800 28.800
+ -969114.919 3 -755159.786 9 24534000.752 24533999.630 24534000.128
+ 23.400 -3.000
+ -18475399.085 7 -14396409.998 7 20686377.979 20686375.598 20686377.307
+ 46.600 46.000
+ -14322620.488 6 -11160477.367 5 21941994.572 21941992.221 21941994.249
+ 41.200 33.500
+ 06 1 1 8 22 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20146054.335 7 -15698220.801 7 20424944.112 20424942.309 20424943.300
+ 46.400 46.400
+ -1596275.414 4 -1243845.061 2 24164899.484 24164898.245 24164899.195
+ 24.200 17.000
+ -12851393.111 7 -10014069.558 6 21297756.263 21297753.251 21297755.137
+ 43.800 37.600
+ -3417938.651 4 -2663327.463 2 23949161.428 23949159.250 23949159.550
+ 24.200 17.000
+ -10276902.795 6 -8007976.088 4 22692079.707 22692077.111 22692078.511
+ 37.900 29.900
+ -742145.256 2 -578300.412 2 24577193.256 24577189.522 24577192.017
+ 17.800 16.100
+ -18511374.987 7 -14424443.172 7 20679531.914 20679529.642 20679531.219
+ 46.400 46.100
+ -14205461.599 6 -11069184.720 5 21964289.183 21964287.279 21964288.823
+ 41.400 34.600
+ 06 1 1 8 23 0.0000000 0 8G01G05G14G16G20G22G25G30
+ -20173864.455 7 -15719891.051 7 20419652.024 20419650.211 20419651.173
+ 46.300 46.400
+ -1395276.855 4 -1087222.810 3 24203149.020 24203147.500 24203147.900
+ 26.500 18.600
+ -12738504.449 7 -9926104.370 6 21319238.422 21319235.343 21319237.200
+ 43.700 37.600
+ -3645248.166 4 -2840451.561 3 23905904.688 23905903.546 23905903.628
+ 25.900 18.600
+ -10417509.653 6 -8117539.887 4 22665323.149 22665320.364 22665322.103
+ 38.600 29.200
+ -514954.160 3 -401268.593 3 24620424.041 24620422.278 24620423.887
+ 21.600 19.300
+ -18546023.463 7 -14451441.990 7 20672938.582 20672936.226 20672937.849
+ 46.300 46.100
+ -14086181.315 6 -10976239.033 5 21986987.732 21986985.177 21986987.267
+ 41.300 33.800
+ 06 1 1 8 24 0.0000000 0 7G01G05G14G16G20G25G30
+ -20200285.499 7 -15740478.905 7 20414624.228 20414622.528 20414623.403
+ 46.200 46.400
+ -1193280.128 4 -929822.757 2 24241587.684 24241586.016 24241586.799
+ 26.500 17.000
+ -12624316.995 7 -9837127.125 6 21340967.242 21340964.481 21340966.213
+ 43.600 37.400
+ -3872115.933 4 -3017231.505 2 23862733.817 23862731.808 23862732.571
+ 27.100 16.100
+ -10556291.538 6 -8225681.622 4 22638914.210 22638910.960 22638912.863
+ 38.600 29.000
+ -18579347.963 7 -14477409.149 7 20666597.224 20666594.770 20666596.417
+ 46.500 46.100
+ -13964797.102 6 -10881653.930 5 22010086.097 22010083.977 22010085.814
+ 40.900 33.900
+ 06 1 1 8 25 0.0000000 0 7G01G05G14G16G20G25G30
+ -20225309.626 7 -15759978.247 7 20409862.376 20409860.525 20409861.525
+ 46.400 46.400
+ -990306.774 4 -771661.742 3 24280213.187 24280210.026 24280211.335
+ 24.600 18.600
+ -12508833.960 7 -9747140.327 6 21362942.985 21362940.087 21362941.953
+ 43.500 37.200
+ -4098520.264 4 -3193650.335 3 23819649.021 23819648.698 23819649.114
+ 26.500 21.600
+ -10693229.075 6 -8332386.207 5 22612855.366 22612852.863 22612854.412
+ 38.700 30.200
+ -18611351.904 7 -14502347.280 7 20660506.989 20660504.745 20660506.283
+ 46.700 46.400
+ -13841326.858 6 -10785443.344 5 22033581.572 22033579.764 22033581.281
+ 40.600 34.100
+ 06 1 1 8 26 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20248929.370 7 -15778383.255 7 20405368.003 20405365.966 20405367.015
+ 46.200 46.600
+ -786378.547 3 -612756.628 2 24319017.660 24319016.600 24319017.386
+ 23.400 16.100
+ -216380.312 3 -168607.978 2 24674317.207 24674315.088 24674315.636
+ 22.100 17.000
+ -12392057.527 7 -9656145.690 6 21385164.915 21385161.903 21385163.785
+ 43.600 37.100
+ -4324441.184 3 -3369692.430 3 23776658.062 23776657.071 23776657.204
+ 23.000 21.100
+ -10828303.682 6 -8437639.141 5 22587152.145 22587149.001 22587150.758
+ 39.400 30.400
+ -18642038.797 7 -14526259.157 7 20654667.472 20654665.263 20654666.800
+ 46.600 46.400
+ -13715788.747 6 -10687621.438 5 22057470.746 22057468.696 22057470.470
+ 40.700 33.400
+ 06 1 1 8 27 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20271137.097 7 -15795688.002 7 20401141.779 20401139.899 20401140.925
+ 46.400 46.400
+ -581516.795 3 -453124.090 3 24358003.168 24358000.793 24358001.509
+ 21.100 18.600
+ -353386.453 3 -275365.973 2 24648244.676 24648242.995 24648243.899
+ 23.000 15.100
+ -12273990.340 7 -9564145.272 6 21407632.501 21407629.313 21407631.239
+ 43.600 36.800
+ -4549857.725 4 -3545341.532 3 23733763.713 23733761.708 23733762.541
+ 26.500 22.600
+ -10961496.689 6 -8541425.914 5 22561806.061 22561803.206 22561804.997
+ 40.000 30.400
+ -18671412.258 7 -14549147.569 7 20649077.904 20649075.658 20649077.301
+ 46.800 46.500
+ -13588201.012 6 -10588202.412 5 22081749.800 22081747.904 22081749.656
+ 41.000 33.100
+ 06 1 1 8 28 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20291925.156 7 -15811886.523 7 20397186.071 20397184.185 20397185.169
+ 46.200 46.400
+ -375743.377 4 -292781.207 3 24397160.931 24397157.872 24397159.490
+ 26.500 18.600
+ -489502.257 3 -381430.190 1 24622342.887 24622341.373 24622342.055
+ 20.500 9.000
+ -12154635.606 7 -9471141.575 6 21430344.968 21430341.935 21430343.827
+ 43.600 37.000
+ -4774749.653 4 -3720581.882 3 23690968.859 23690966.074 23690966.864
+ 28.400 21.100
+ -11092789.646 6 -8643732.125 5 22536821.816 22536819.224 22536820.449
+ 39.500 31.600
+ -18699475.800 7 -14571015.264 7 20643737.638 20643735.268 20643736.928
+ 46.700 46.400
+ -13458582.228 6 -10487200.754 5 22106415.431 22106413.231 22106415.134
+ 40.600 32.800
+ 06 1 1 8 29 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20311286.154 7 -15826973.022 7 20393501.681 20393499.764 20393500.830
+ 46.300 46.300
+ -169079.662 3 -131744.603 2 24436487.569 24436484.792 24436485.378
+ 19.900 16.100
+ -624705.571 3 -486783.436 2 24596614.352 24596613.244 24596613.401
+ 22.100 15.100
+ -12033996.256 7 -9377136.884 6 21453301.416 21453298.561 21453300.715
+ 43.800 36.400
+ -4999097.006 4 -3895397.866 3 23648275.748 23648274.300 23648274.370
+ 25.300 23.000
+ -11222164.082 6 -8744543.381 5 22512202.838 22512199.844 22512201.667
+ 39.800 30.800
+ -18726233.106 7 -14591865.110 7 20638645.861 20638643.543 20638645.128
+ 46.600 46.600
+ -13326950.993 6 -10384630.936 5 22131464.145 22131461.989 22131463.754
+ 40.500 32.000
+ 06 1 1 8 30 0.0000000 0 8G01G05G06G14G16G20G25G30
+ -20329212.696 7 -15840941.775 7 20390090.230 20390088.481 20390089.502
+ 46.300 46.200
+ 38452.881 4 29969.101 9 24475980.453 24475978.230 24475978.636
+ 25.300 -3.000
+ -758974.201 3 -591408.266 3 24571063.889 24571062.733 24571063.124
+ 23.800 19.300
+ -11912075.037 7 -9282133.342 6 21476502.074 21476499.669 21476501.275
+ 43.200 36.800
+ -5222878.557 4 -4069772.975 3 23605691.488 23605689.916 23605690.426
+ 25.900 21.600
+ -11349602.712 6 -8843846.214 5 22487951.649 22487949.088 22487950.684
+ 39.700 30.200
+ -18751688.054 7 -14611700.144 7 20633801.870 20633799.617 20633801.236
+ 46.600 46.600
+ -13193326.416 6 -10280507.874 5 22156892.185 22156889.577 22156891.845
+ 40.300 31.800
+ 06 1 1 8 31 0.0000000 0 7G01G06G14G16G20G25G30
+ -20345697.645 7 -15853787.206 7 20386953.622 20386951.621 20386952.688
+ 46.300 46.400
+ -892286.030 3 -695287.558 3 24545694.168 24545694.480 24545694.381
+ 22.600 20.500
+ -11788875.518 7 -9186133.732 6 21499946.514 21499943.686 21499945.633
+ 43.100 36.300
+ -5446073.664 4 -4243691.113 3 23563219.599 23563217.026 23563218.154
+ 27.600 23.800
+ -11475086.919 6 -8941626.137 4 22464072.772 22464069.973 22464071.702
+ 39.600 29.700
+ -18775844.275 7 -14630523.175 7 20629205.184 20629202.885 20629204.447
+ 46.600 46.600
+ -13057727.388 6 -10174846.288 5 22182695.768 22182693.472 22182695.412
+ 40.000 32.100
+ 06 1 1 8 32 0.0000000 0 7G01G06G14G16G20G25G30
+ -20360733.162 7 -15865503.199 7 20384092.469 20384090.547 20384091.554
+ 46.400 46.400
+ -1024618.922 3 -798404.063 2 24520513.646 24520512.111 24520513.165
+ 22.100 17.000
+ -11664400.816 7 -9089140.466 6 21523633.554 21523630.454 21523632.331
+ 42.600 36.300
+ -5668661.910 4 -4417136.387 3 23520861.793 23520859.665 23520860.468
+ 25.900 22.600
+ -11598599.486 6 -9037869.709 5 22440569.240 22440566.508 22440568.164
+ 40.400 30.400
+ -18798705.543 7 -14648337.146 7 20624854.767 20624852.459 20624854.051
+ 46.500 46.500
+ -12920173.336 6 -10067661.308 5 22208871.438 22208869.243 22208870.970
+ 39.600 32.400
+ 06 1 1 8 33 0.0000000 0 7G01G06G14G16G20G25G30
+ -20374312.027 7 -15876084.138 7 20381508.288 20381506.438 20381507.454
+ 46.500 46.400
+ -1155951.065 3 -900740.741 3 24495520.849 24495520.085 24495520.051
+ 22.100 18.600
+ -11538654.082 7 -8991156.009 5 21547562.223 21547559.021 21547561.116
+ 42.700 35.300
+ -5890622.954 4 -4590092.892 3 23478623.850 23478621.332 23478622.716
+ 29.700 22.600
+ -11720122.152 6 -9132562.700 5 22417444.191 22417441.734 22417443.139
+ 40.500 31.100
+ -18820275.792 7 -14665145.130 7 20620750.083 20620747.784 20620749.348
+ 46.500 46.600
+ -12780683.655 6 -9958968.039 5 22235415.175 22235413.327 22235414.748
+ 39.100 32.600
+ 06 1 1 8 34 0.0000000 0 7G01G06G14G16G20G25G30
+ -20386427.013 7 -15885524.391 7 20379203.098 20379201.091 20379202.178
+ 46.500 46.200
+ -1286260.588 3 -1002280.547 3 24470724.512 24470723.524 24470723.688
+ 23.000 19.900
+ -11411638.843 7 -8892183.105 5 21571732.514 21571729.412 21571731.480
+ 42.600 35.600
+ -6111936.322 4 -4762544.794 3 23436509.769 23436506.679 23436508.213
+ 29.500 22.600
+ -11839638.336 6 -9225692.209 5 22394701.381 22394698.502 22394700.106
+ 41.200 31.100
+ -18840559.105 7 -14680950.306 7 20616890.390 20616888.023 20616889.629
+ 46.500 46.600
+ -12639278.167 6 -9848781.932 5 22262323.707 22262321.705 22262323.507
+ 39.600 31.600
+ 06 1 1 8 35 0.0000000 0 7G01G06G14G16G20G25G30
+ -20397071.033 7 -15893818.437 7 20377177.606 20377175.612 20377176.761
+ 46.600 46.300
+ -1415525.606 4 -1103006.523 2 24446126.764 24446124.772 24446125.791
+ 24.900 17.800
+ -11283359.205 7 -8792224.965 5 21596142.997 21596140.208 21596142.132
+ 42.600 35.100
+ -6332581.083 4 -4934475.654 3 23394522.312 23394518.987 23394520.829
+ 28.800 20.500
+ -11957131.433 6 -9317245.289 5 22372342.888 22372340.192 22372341.773
+ 40.700 30.800
+ -18859559.281 7 -14695755.635 7 20613274.771 20613272.391 20613274.031
+ 46.400 46.500
+ -12495976.512 6 -9737118.295 5 22289593.246 22289591.316 22289592.869
+ 39.700 32.100
+ 06 1 1 8 36 0.0000000 0 7G01G06G14G16G20G25G30
+ -20406237.439 7 -15900961.094 7 20375433.087 20375431.287 20375432.324
+ 46.700 46.300
+ -1543724.374 3 -1202901.630 3 24421730.352 24421729.099 24421729.312
+ 21.600 18.600
+ -11153818.583 7 -8691284.237 5 21620794.037 21620790.948 21620793.010
+ 42.700 35.300
+ -6552536.869 4 -5105869.689 3 23352665.375 23352662.981 23352664.166
+ 27.900 21.600
+ -12072584.235 6 -9407208.518 5 22350373.270 22350370.375 22350372.072
+ 40.600 31.300
+ -18877280.383 7 -14709564.290 7 20609902.536 20609900.111 20609901.857
+ 46.600 46.400
+ -12350798.883 6 -9623992.866 5 22317219.914 22317217.381 22317219.466
+ 39.500 30.800
+ 06 1 1 8 37 0.0000000 0 7G01G06G14G16G20G25G30
+ -20413919.249 7 -15906946.920 7 20373971.121 20373969.503 20373970.408
+ 46.600 46.400
+ -1670835.195 4 -1301948.919 2 24397542.527 24397540.482 24397541.695
+ 24.600 17.800
+ -11023020.575 7 -8589363.737 5 21645684.443 21645681.070 21645683.056
+ 42.100 34.900
+ -6771783.280 4 -5276710.941 3 23310944.191 23310942.276 23310942.984
+ 29.700 23.800
+ -12185979.792 6 -9495568.697 5 22328794.516 22328791.783 22328793.496
+ 41.000 31.100
+ -18893726.370 7 -14722379.351 7 20606772.855 20606770.603 20606772.085
+ 46.200 46.600
+ -12203765.468 6 -9509421.347 5 22345199.216 22345196.857 22345198.819
+ 39.300 30.600
+ 06 1 1 8 38 0.0000000 0 7G01G06G14G16G20G25G30
+ -20420109.089 7 -15911770.174 7 20372793.303 20372791.618 20372792.529
+ 46.600 46.400
+ -1796836.766 4 -1400131.909 3 24373565.101 24373563.770 24373564.426
+ 24.900 19.300
+ -10890969.268 7 -8486466.634 5 21670812.280 21670809.743 21670811.464
+ 42.100 35.100
+ -6990299.984 5 -5446983.630 4 23269361.940 23269359.532 23269360.489
+ 30.200 24.600
+ -12297302.457 6 -9582313.631 5 22307610.539 22307607.646 22307609.398
+ 41.100 31.500
+ -18908901.431 7 -14734204.068 7 20603885.116 20603882.852 20603884.360
+ 46.300 46.600
+ -12054896.475 6 -9393419.526 5 22373527.958 22373525.629 22373527.676
+ 39.200 31.000
+ 06 1 1 8 39 0.0000000 0 7G01G06G14G16G20G25G30
+ -20424799.545 7 -15915425.080 7 20371900.936 20371899.127 20371900.122
+ 46.700 46.500
+ -1921707.436 4 -1497433.662 3 24349801.776 24349800.794 24349801.766
+ 25.600 19.300
+ -10757668.863 6 -8382596.218 5 21696178.730 21696175.964 21696177.714
+ 41.900 35.100
+ -7208066.557 5 -5616671.778 4 23227922.366 23227919.658 23227921.496
+ 31.800 24.200
+ -12406535.442 6 -9667430.256 5 22286824.590 22286821.302 22286823.328
+ 41.900 30.200
+ -18922809.628 7 -14745041.624 7 20601238.274 20601236.240 20601237.652
+ 46.400 46.600
+ -11904212.229 6 -9276003.220 5 22402202.099 22402200.032 22402201.862
+ 38.600 30.200
+ 06 1 1 8 40 0.0000000 0 7G01G06G14G16G20G25G30
+ -20427984.274 7 -15917906.686 7 20371294.826 20371293.106 20371294.055
+ 46.700 46.500
+ -2045425.412 4 -1593837.246 2 24326261.220 24326258.442 24326259.507
+ 24.900 16.100
+ -10623123.197 6 -8277755.467 5 21721782.203 21721779.297 21721780.865
+ 41.400 35.200
+ -7425062.461 5 -5785759.412 3 23186629.620 23186626.564 23186628.067
+ 30.100 23.400
+ -12513663.373 6 -9750906.580 5 22266438.508 22266435.602 22266437.333
+ 41.600 31.100
+ -18935455.111 7 -14754895.245 7 20598832.339 20598829.926 20598831.558
+ 46.400 46.700
+ -11751733.613 6 -9157188.687 4 22431218.070 22431215.496 22431217.605
+ 38.400 29.500
+ 06 1 1 8 41 0.0000000 0 7G01G06G14G16G20G25G30
+ -20429656.606 7 -15919209.801 7 20370976.523 20370974.779 20370975.749
+ 46.500 46.300
+ -2167970.369 3 -1689326.751 3 24302940.210 24302938.563 24302939.358
+ 23.800 19.900
+ -10487336.703 6 -8171947.832 5 21747621.143 21747618.694 21747620.151
+ 41.300 34.900
+ -7641267.759 4 -5954231.003 4 23145486.914 23145484.611 23145485.560
+ 29.500 26.500
+ -12618670.944 7 -9832730.668 5 22246456.371 22246453.751 22246455.205
+ 42.100 32.300
+ -18946842.103 7 -14763768.222 7 20596665.440 20596662.986 20596664.654
+ 46.600 46.700
+ -11597481.190 6 -9036991.991 4 22460570.971 22460568.775 22460570.615
+ 37.700 29.700
+ 06 1 1 8 42 0.0000000 0 7G01G06G14G16G20G25G30
+ -20429809.823 7 -15919329.194 7 20370947.544 20370945.708 20370946.765
+ 46.700 46.400
+ -2289320.681 4 -1783885.356 3 24279848.437 24279847.004 24279847.492
+ 27.100 19.300
+ -10350313.454 6 -8065176.501 5 21773695.866 21773693.099 21773694.899
+ 41.200 34.400
+ -7856661.373 5 -6122070.105 4 23104498.778 23104496.230 23104497.446
+ 31.500 26.200
+ -12721542.689 6 -9912890.468 5 22226880.659 22226877.798 22226879.304
+ 41.600 32.100
+ -18956974.975 7 -14771663.958 7 20594736.992 20594734.801 20594736.254
+ 46.400 46.800
+ -11441475.753 6 -8915429.286 4 22490257.804 22490255.652 22490257.633
+ 38.400 29.700
+ 06 1 1 8 43 0.0000000 0 7G01G06G14G16G20G25G30
+ -20428437.140 7 -15918259.577 7 20371208.739 20371206.875 20371207.955
+ 46.700 46.400
+ -2409455.700 4 -1877497.002 3 24256986.145 24256985.916 24256985.805
+ 24.900 19.900
+ -10212058.338 6 -7957445.256 5 21800005.200 21800002.152 21800004.036
+ 41.100 33.900
+ -8071223.555 4 -6289261.344 4 23063668.512 23063666.207 23063667.209
+ 29.900 25.300
+ -12822263.118 6 -9991373.919 5 22207714.050 22207711.176 22207712.800
+ 41.900 31.500
+ -18965857.763 7 -14778585.605 7 20593046.796 20593044.411 20593046.073
+ 46.700 46.500
+ -11283738.241 6 -8792516.935 4 22520274.879 22520272.091 22520274.324
+ 38.100 29.200
+ 06 1 1 8 44 0.0000000 0 7G01G06G14G16G20G25G30
+ -20425532.393 7 -15915996.137 7 20371761.520 20371759.613 20371760.594
+ 46.400 46.300
+ -2528354.694 4 -1970145.506 3 24234361.425 24234360.072 24234360.764
+ 25.900 19.300
+ -10072575.675 6 -7848757.493 5 21826547.647 21826545.039 21826546.851
+ 41.500 34.300
+ -8284933.630 5 -6455788.596 4 23023000.631 23022998.293 23022999.740
+ 32.400 25.300
+ -12920817.687 7 -10068169.701 5 22188959.838 22188956.815 22188958.691
+ 42.000 31.500
+ -18973494.910 7 -14784536.626 7 20591593.493 20591591.113 20591592.771
+ 46.600 46.600
+ -11124289.718 6 -8668271.320 5 22550616.635 22550614.587 22550616.314
+ 37.400 31.000
+ 06 1 1 8 45 0.0000000 0 7G01G06G14G16G20G25G30
+ -20421089.138 7 -15912533.864 7 20372606.952 20372605.077 20372606.059
+ 46.400 46.200
+ -2645995.887 4 -2061813.901 3 24211975.118 24211973.517 24211974.212
+ 25.300 19.300
+ -9931870.170 6 -7739116.859 5 21853323.351 21853320.157 21853322.011
+ 40.700 33.100
+ -8497771.854 5 -6621636.510 4 22982499.720 22982496.727 22982497.947
+ 32.100 26.200
+ -13017191.902 7 -10143266.499 5 22170620.220 22170617.305 22170619.231
+ 42.400 31.800
+ -18979890.517 7 -14789520.215 7 20590376.174 20590374.084 20590375.579
+ 46.600 46.700
+ -10963151.568 6 -8542709.122 4 22581279.891 22581277.680 22581279.751
+ 37.100 29.700
+ 06 1 1 8 46 0.0000000 0 7G01G06G14G16G20G25G30
+ -20415101.597 7 -15907868.250 7 20373746.105 20373744.530 20373745.309
+ 46.200 46.200
+ -2762358.996 4 -2152486.358 3 24189832.092 24189830.629 24189831.227
+ 25.600 23.000
+ -9789946.765 6 -7628527.225 5 21880330.018 21880327.564 21880329.162
+ 40.700 33.500
+ -8709718.512 5 -6786789.674 4 22942166.740 22942164.581 22942165.530
+ 31.800 27.400
+ -13111371.772 7 -10216653.418 5 22152698.597 22152695.625 22152697.484
+ 42.500 32.000
+ -18985049.031 7 -14793539.830 7 20589394.727 20589392.523 20589394.059
+ 46.600 46.700
+ -10800344.887 6 -8415846.767 5 22612261.326 22612259.153 22612260.898
+ 37.300 30.100
+ 06 1 1 8 47 0.0000000 0 7G01G06G14G16G20G25G30
+ -20407563.628 7 -15901994.515 7 20375180.850 20375178.953 20375180.007
+ 46.300 46.200
+ -2877424.049 4 -2242147.375 3 24167935.038 24167933.651 24167934.846
+ 25.900 19.300
+ -9646810.084 6 -7516992.169 5 21907568.337 21907565.335 21907567.146
+ 39.900 32.300
+ -8920752.241 5 -6951231.462 4 22902008.601 22902006.211 22902007.347
+ 33.000 27.900
+ -13203343.488 7 -10288319.708 5 22135196.802 22135194.074 22135195.619
+ 42.100 32.600
+ -18988974.938 7 -14796598.979 7 20588647.541 20588645.409 20588646.915
+ 46.800 46.700
+ -10635891.130 6 -8287700.963 4 22643555.828 22643553.471 22643555.578
+ 37.200 29.000
+ 06 1 1 8 48 0.0000000 0 7G01G06G14G16G20G25G30
+ -20398469.275 7 -15894908.011 7 20376911.262 20376909.534 20376910.443
+ 46.300 46.000
+ -2991170.696 4 -2330781.119 3 24146290.836 24146288.653 24146289.458
+ 26.200 19.300
+ -9502464.958 6 -7404515.478 5 21935035.840 21935033.728 21935034.871
+ 39.700 33.100
+ -9130853.898 5 -7114946.961 4 22862028.213 22862025.098 22862026.437
+ 32.600 28.600
+ -13293093.140 7 -10358254.508 5 22118117.912 22118115.478 22118116.778
+ 42.200 33.200
+ -18991672.414 7 -14798700.908 7 20588134.371 20588132.127 20588133.633
+ 46.700 46.700
+ -10469811.836 6 -8158288.537 4 22675159.783 22675157.348 22675159.475
+ 37.500 29.000
+ 06 1 1 8 49 0.0000000 0 7G01G06G14G16G20G25G30
+ -20387812.571 7 -15886604.086 7 20378939.273 20378937.393 20378938.402
+ 46.300 46.000
+ -3103578.584 4 -2418371.598 3 24124899.508 24124898.274 24124898.778
+ 24.600 21.600
+ -9356917.276 6 -7291101.732 5 21962733.019 21962730.253 21962731.914
+ 39.600 32.600
+ -9340003.262 5 -7277920.435 4 22822227.516 22822225.220 22822226.290
+ 33.900 28.600
+ -13380607.873 7 -10426447.819 5 22101464.589 22101461.674 22101463.420
+ 42.300 32.700
+ -18993145.946 7 -14799849.112 7 20587853.851 20587851.593 20587853.160
+ 46.700 46.500
+ -10302128.458 6 -8027626.136 4 22707068.843 22707066.126 22707068.276
+ 36.100 27.900
+ 06 1 1 8 50 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20375587.336 7 -15877077.935 7 20381265.681 20381263.881 20381264.810
+ 46.300 46.000
+ -3214627.677 4 -2504903.353 3 24103769.354 24103765.686 24103767.731
+ 26.800 21.600
+ -9210171.324 6 -7176754.256 5 21990657.483 21990655.227 21990656.821
+ 39.800 32.800
+ -9548180.346 5 -7440136.262 4 22782613.681 22782610.126 22782611.766
+ 33.200 27.600
+ -13465874.414 7 -10492889.283 5 22085239.126 22085236.092 22085237.803
+ 42.200 33.100
+ -137522.613 3 -107160.141 3 24634251.031 24634246.204 24634250.425
+ 21.100 22.600
+ -18993399.958 7 -14800047.040 7 20587805.656 20587803.315 20587804.878
+ 46.700 46.500
+ -10132862.584 6 -7895730.643 4 22739279.194 22739276.795 22739278.665
+ 36.200 29.000
+ 06 1 1 8 51 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20361787.860 7 -15866325.102 7 20383891.583 20383889.757 20383890.732
+ 46.300 45.900
+ -3324297.971 4 -2590360.638 3 24082898.672 24082896.505 24082897.300
+ 25.600 22.100
+ -9062233.265 6 -7061477.882 5 22018809.404 22018806.815 22018808.621
+ 39.500 32.400
+ -9755365.466 5 -7601579.158 4 22743186.257 22743184.330 22743185.444
+ 34.700 29.000
+ -13548879.374 7 -10557568.482 5 22069443.519 22069441.130 22069442.438
+ 42.500 33.200
+ -343779.707 4 -267879.923 3 24595002.851 24594996.661 24595001.615
+ 25.600 22.100
+ -18992438.930 7 -14799298.181 7 20587988.488 20587986.076 20587987.763
+ 46.600 46.400
+ -9962035.907 6 -7762618.936 4 22771786.534 22771783.673 22771786.056
+ 36.500 27.600
+ 06 1 1 8 52 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20346408.654 7 -15854341.308 7 20386818.193 20386816.302 20386817.290
+ 46.200 45.900
+ -3432570.068 4 -2674728.466 3 24062294.066 24062292.957 24062293.599
+ 27.900 22.100
+ -8913107.831 6 -6945276.264 5 22047187.492 22047184.611 22047186.274
+ 39.600 32.600
+ -9961538.648 5 -7762233.517 4 22703953.014 22703950.986 22703951.618
+ 33.600 29.000
+ -13629611.169 7 -10620476.382 5 22054080.835 22054077.898 22054079.641
+ 42.600 33.100
+ -549996.784 4 -428568.605 3 24555760.236 24555754.196 24555758.976
+ 28.600 20.500
+ -18990267.193 7 -14797605.915 7 20588401.871 20588399.492 20588401.101
+ 46.700 46.600
+ -9789670.205 6 -7628307.993 4 22804585.991 22804583.688 22804585.757
+ 36.000 27.600
+ 06 1 1 8 53 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20329443.867 7 -15841122.009 7 20390046.522 20390044.667 20390045.648
+ 46.300 45.700
+ -3539423.996 4 -2757991.201 3 24041962.222 24041959.463 24041961.016
+ 27.400 22.100
+ -8762800.609 6 -6828153.787 5 22075789.930 22075787.024 22075788.757
+ 39.100 32.600
+ -10166680.164 5 -7922083.981 5 22664915.311 22664913.672 22664914.677
+ 34.700 30.100
+ -13708057.837 7 -10681603.682 5 22039153.323 22039149.999 22039152.009
+ 43.200 32.800
+ -756162.521 4 -589217.184 3 24516528.106 24516522.734 24516527.080
+ 24.200 21.100
+ -18986889.249 7 -14794973.746 7 20589044.418 20589042.208 20589043.725
+ 46.600 46.500
+ -9615787.329 5 -7492814.833 4 22837674.641 22837672.745 22837674.381
+ 35.700 27.900
+ 06 1 1 8 54 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20310888.314 7 -15826663.144 7 20393577.527 20393575.674 20393576.688
+ 46.400 45.700
+ -3644840.459 4 -2840133.863 3 24021900.550 24021899.955 24021899.516
+ 25.900 22.600
+ -8611317.842 6 -6710115.296 5 22104616.034 22104613.023 22104614.955
+ 39.000 31.000
+ -10370770.565 5 -8081115.385 4 22626080.517 22626076.256 22626078.382
+ 34.800 29.200
+ -13784207.366 7 -10740940.993 5 22024662.224 22024659.527 22024661.054
+ 42.700 33.500
+ -962266.161 4 -749817.411 2 24477307.796 24477302.645 24477306.697
+ 26.200 17.000
+ -18982309.637 7 -14791405.213 7 20589916.034 20589913.756 20589915.321
+ 46.900 46.700
+ -9440409.226 6 -7356156.567 4 22871048.512 22871045.979 22871048.088
+ 36.000 27.600
+ 06 1 1 8 55 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20290736.887 7 -15810960.739 7 20397412.137 20397410.375 20397411.336
+ 46.200 45.700
+ -3748800.266 4 -2921141.459 3 24002117.940 24002117.025 24002117.060
+ 27.400 23.800
+ -8458665.393 6 -6591165.361 5 22133664.480 22133661.863 22133663.649
+ 38.600 31.100
+ -10573790.101 5 -8239312.352 4 22587443.730 22587442.501 22587444.086
+ 34.900 29.200
+ -13858048.530 7 -10798479.574 5 22010610.504 22010607.664 22010609.451
+ 42.800 32.600
+ -1168296.811 4 -910360.800 3 24438102.993 24438095.607 24438101.155
+ 26.500 21.600
+ -18976532.764 7 -14786903.747 7 20591015.451 20591013.052 20591014.668
+ 47.000 46.500
+ -9263557.640 5 -7218350.138 4 22904702.260 22904699.892 22904701.869
+ 35.200 27.100
+ 06 1 1 8 56 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20268984.530 7 -15794010.857 7 20401551.392 20401549.743 20401550.599
+ 46.200 45.700
+ -3851284.489 4 -3000999.245 4 23982617.059 23982614.881 23982615.368
+ 29.000 24.900
+ -8304848.820 6 -6471308.308 5 22162935.798 22162932.314 22162934.228
+ 38.400 30.800
+ -10775719.365 6 -8396659.804 5 22549020.363 22549017.081 22549018.650
+ 36.100 31.000
+ -13929569.955 7 -10854210.576 5 21997000.969 21996997.655 21996999.717
+ 43.200 32.700
+ -1374243.242 4 -1070838.472 4 24398912.392 24398906.089 24398911.035
+ 25.900 24.900
+ -18969563.243 7 -14781472.947 7 20592341.616 20592339.232 20592340.967
+ 47.300 46.400
+ -9085254.618 5 -7079412.690 4 22938631.945 22938629.252 22938631.659
+ 35.400 26.500
+ 06 1 1 8 57 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20245626.395 7 -15775809.713 7 20405996.575 20405994.627 20405995.654
+ 46.200 45.700
+ -3952274.096 4 -3079692.428 3 23963396.442 23963396.067 23963396.447
+ 26.800 21.100
+ -8149873.828 6 -6350548.599 5 22192425.653 22192423.010 22192424.744
+ 38.300 30.800
+ -10976539.035 6 -8553142.572 5 22510805.720 22510802.253 22510803.977
+ 36.200 30.400
+ -13998761.198 7 -10908125.850 5 21983834.059 21983831.134 21983832.928
+ 43.100 33.000
+ -1580093.670 4 -1231241.390 3 24359739.408 24359733.611 24359738.111
+ 25.300 19.900
+ -18961405.542 7 -14775116.296 7 20593894.005 20593891.635 20593893.307
+ 47.100 46.500
+ -8905522.347 5 -6939361.567 4 22972834.076 22972831.714 22972833.799
+ 34.600 27.400
+ 06 1 1 8 58 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20220657.520 7 -15756353.450 7 20410747.908 20410746.034 20410747.037
+ 46.300 45.600
+ -4051750.528 4 -3157206.481 3 23944468.590 23944466.882 23944467.655
+ 29.200 23.800
+ -7993747.069 6 -6228891.410 5 22222135.626 22222133.107 22222134.771
+ 37.600 30.800
+ -11176229.337 5 -8708745.346 5 22472804.289 22472802.262 22472803.478
+ 35.900 30.200
+ -14065611.487 7 -10960217.006 5 21971113.058 21971109.931 21971111.735
+ 43.300 32.800
+ -1785836.845 4 -1391560.771 3 24320587.903 24320582.057 24320586.301
+ 24.900 21.100
+ -18952064.083 7 -14767837.239 7 20595671.462 20595669.190 20595670.828
+ 47.000 46.400
+ -8724382.516 5 -6798213.651 4 23007303.517 23007301.355 23007303.294
+ 35.500 26.500
+ 06 1 1 8 59 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20194073.181 7 -15735638.393 7 20415806.639 20415804.901 20415805.840
+ 46.300 45.600
+ -4149694.886 4 -3233526.731 3 23925829.770 23925828.499 23925829.406
+ 27.600 21.600
+ -7836474.200 6 -6106341.144 4 22252064.378 22252061.260 22252063.102
+ 37.900 29.900
+ -11374771.333 6 -8863453.349 5 22435021.978 22435021.050 22435022.261
+ 36.500 31.000
+ -14130111.618 7 -11010476.865 5 21958838.858 21958835.915 21958837.709
+ 43.200 32.800
+ -1991461.164 4 -1551787.511 4 24281459.539 24281453.954 24281458.191
+ 27.900 25.900
+ -18941543.478 7 -14759639.360 7 20597673.552 20597671.204 20597672.869
+ 47.000 46.400
+ -8541857.250 5 -6655986.164 4 23042036.211 23042034.559 23042036.405
+ 33.900 26.200
+ 06 1 1 9 0 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20165868.528 7 -15713660.750 7 20421173.800 20421172.100 20421172.981
+ 46.400 45.400
+ -4246088.991 4 -3308638.985 3 23907486.380 23907484.774 23907486.239
+ 28.400 21.600
+ -7678062.157 6 -5982903.213 5 22282208.911 22282206.001 22282207.899
+ 37.300 30.600
+ -11572145.915 6 -9017251.671 5 22397463.719 22397461.888 22397462.931
+ 36.800 31.500
+ -14192251.435 7 -11058897.506 5 21947013.662 21947011.222 21947012.659
+ 42.700 33.600
+ -2196954.758 4 -1711912.388 3 24242353.738 24242348.464 24242352.493
+ 25.300 21.600
+ -18929848.149 7 -14750526.111 7 20599899.080 20599896.803 20599898.339
+ 46.900 46.500
+ -8357968.900 5 -6512696.534 4 23077030.295 23077027.370 23077029.615
+ 32.800 25.300
+ 06 1 1 9 1 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20136039.027 7 -15690416.981 7 20426850.387 20426848.324 20426849.500
+ 46.300 45.500
+ -4340914.794 4 -3382529.160 4 23889442.612 23889440.404 23889440.903
+ 26.800 24.600
+ -7518516.909 6 -5858582.272 5 22312568.257 22312566.648 22312568.130
+ 37.800 30.200
+ -11768333.944 6 -9170125.408 5 22360131.057 22360128.319 22360129.746
+ 36.900 31.500
+ -14252021.737 7 -11105471.784 5 21935640.108 21935637.306 21935638.777
+ 42.800 33.400
+ -2402305.823 4 -1871926.189 4 24203276.905 24203272.382 24203275.730
+ 25.600 24.900
+ -18916982.616 7 -14740501.016 7 20602347.241 20602344.989 20602346.539
+ 47.000 46.400
+ -8172739.239 5 -6368361.747 4 23112277.293 23112275.648 23112277.109
+ 33.100 26.200
+ 06 1 1 9 2 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20104580.573 7 -15665903.906 7 20432836.688 20432834.751 20432835.864
+ 46.500 45.500
+ -4434154.722 4 -3455183.612 3 23871697.560 23871697.523 23871697.425
+ 26.800 23.000
+ -7357845.175 6 -5733383.545 5 22343144.189 22343141.495 22343143.161
+ 37.300 30.200
+ -11963316.433 6 -9322059.742 5 22323027.454 22323024.196 22323025.799
+ 36.700 31.300
+ -14309413.535 7 -11150192.681 5 21924719.110 21924716.122 21924717.803
+ 43.100 33.500
+ -2607501.803 4 -2031819.164 3 24164229.976 24164224.244 24164228.882
+ 26.800 22.100
+ -18902951.454 7 -14729567.644 7 20605017.339 20605015.065 20605016.651
+ 46.900 46.500
+ -7986190.533 5 -6222999.095 4 23147777.099 23147774.301 23147776.405
+ 33.400 24.600
+ 06 1 1 9 3 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20071488.919 7 -15640118.202 7 20439133.740 20439131.903 20439132.872
+ 46.200 45.400
+ -4525792.031 4 -3526589.276 4 23854261.290 23854259.612 23854260.103
+ 28.400 24.200
+ -7196053.830 6 -5607312.394 5 22373932.432 22373929.342 22373931.008
+ 36.200 30.200
+ -12157074.306 6 -9473039.859 5 22286157.410 22286153.475 22286155.415
+ 37.900 32.000
+ -14364418.030 7 -11193053.342 5 21914251.992 21914249.112 21914250.767
+ 43.200 33.800
+ -2812530.727 4 -2191581.950 3 24125215.713 24125208.607 24125213.933
+ 28.800 20.500
+ -18887759.158 7 -14717729.483 7 20607908.518 20607906.069 20607907.725
+ 47.100 46.500
+ -7798344.903 5 -6076625.882 4 23183522.725 23183520.261 23183522.288
+ 33.500 25.300
+ 06 1 1 9 4 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20036759.740 7 -15613056.511 7 20445742.489 20445740.741 20445741.711
+ 46.600 45.600
+ -4615807.524 4 -3596731.159 3 23837130.740 23837129.256 23837130.666
+ 28.800 21.100
+ -7033149.375 6 -5480373.885 5 22404930.974 22404929.123 22404930.769
+ 36.700 30.100
+ -12349589.747 6 -9623051.838 5 22249522.315 22249518.732 22249520.547
+ 38.000 31.800
+ -14417027.363 7 -11234047.658 5 21904240.716 21904237.765 21904239.532
+ 43.500 33.800
+ -3017380.400 5 -2351205.073 3 24086233.748 24086226.948 24086232.021
+ 30.400 19.300
+ -18871410.297 7 -14704990.099 7 20611019.479 20611017.255 20611018.731
+ 47.000 46.500
+ -7609224.459 5 -5929259.294 4 23219510.877 23219509.041 23219510.680
+ 33.400 26.200
+ 06 1 1 9 5 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -20000388.993 7 -15584715.680 7 20452663.635 20452661.935 20452662.852
+ 46.600 45.500
+ -4704185.035 4 -3665596.691 4 23820314.219 23820312.216 23820313.119
+ 29.700 24.600
+ -6869138.808 6 -5352573.466 4 22436142.197 22436139.017 22436141.089
+ 36.300 29.200
+ -12540843.471 6 -9772080.649 5 22213128.122 22213124.364 22213126.305
+ 37.700 32.400
+ -14467233.785 7 -11273169.561 5 21894686.427 21894684.045 21894685.309
+ 43.100 33.800
+ -3222038.156 4 -2510678.730 4 24047287.657 24047282.985 24047286.426
+ 29.200 25.900
+ -18853909.304 7 -14691352.955 7 20614349.709 20614347.401 20614349.060
+ 47.200 46.400
+ -7418851.302 5 -5780916.564 4 23255737.690 23255735.623 23255737.504
+ 33.100 25.300
+ 06 1 1 9 6 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19962373.205 7 -15555092.991 7 20459897.609 20459895.991 20459896.854
+ 46.500 45.500
+ -4790906.949 4 -3733172.183 3 23803810.873 23803808.644 23803810.771
+ 29.200 20.500
+ -6704029.146 5 -5223916.633 4 22467561.552 22467558.422 22467560.054
+ 35.500 28.600
+ -12730816.577 6 -9920111.589 5 22176977.137 22176973.672 22176975.422
+ 38.100 32.800
+ -14515029.490 7 -11310412.969 5 21885591.513 21885588.885 21885590.214
+ 43.100 34.400
+ -3426491.926 4 -2669993.366 4 24008381.472 24008376.167 24008379.988
+ 25.600 26.500
+ -18835260.778 7 -14676821.636 7 20617898.398 20617896.139 20617897.731
+ 47.100 46.400
+ -7227247.463 5 -5631614.869 4 23292199.360 23292196.599 23292198.737
+ 31.000 24.200
+ 06 1 1 9 7 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19922708.742 7 -15524185.619 7 20467445.582 20467443.891 20467444.790
+ 46.600 45.400
+ -4875956.152 5 -3799444.247 4 23787626.296 23787625.174 23787626.221
+ 30.200 24.200
+ -6537827.446 5 -5094408.848 4 22499188.395 22499185.758 22499187.314
+ 35.700 29.700
+ -12919491.233 6 -10067130.747 5 22141072.685 22141070.028 22141071.532
+ 39.000 32.700
+ -14560407.691 7 -11345772.622 5 21876956.484 21876953.654 21876955.248
+ 43.400 34.500
+ -3630728.180 4 -2829138.458 4 23969516.957 23969510.912 23969515.818
+ 29.000 28.400
+ -18815469.153 7 -14661399.586 7 20621664.609 20621662.435 20621663.906
+ 47.000 46.400
+ -7034435.176 5 -5481371.526 4 23328889.910 23328887.604 23328889.550
+ 30.800 24.200
+ 06 1 1 9 8 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19881392.357 7 -15491991.045 7 20475307.797 20475306.192 20475307.000
+ 46.500 45.400
+ -4959317.235 5 -3864400.889 3 23771765.094 23771761.972 23771763.567
+ 30.400 23.400
+ -6370540.779 6 -4964055.628 4 22531021.721 22531019.364 22531021.144
+ 36.000 29.000
+ -13106849.517 6 -10213124.173 5 22105418.767 22105416.994 22105418.348
+ 38.900 33.600
+ -14603361.638 7 -11379243.243 5 21868782.653 21868779.633 21868781.370
+ 43.500 34.400
+ -3834734.539 5 -2988104.426 4 23930696.463 23930690.249 23930694.878
+ 31.000 28.400
+ -18794538.905 7 -14645090.297 7 20625647.627 20625645.240 20625646.865
+ 47.200 46.400
+ -6840436.428 5 -5330203.671 3 23365806.304 23365804.035 23365806.199
+ 32.100 23.400
+ 06 1 1 9 9 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19838420.682 7 -15458506.630 7 20483485.058 20483483.438 20483484.294
+ 46.600 45.400
+ -5040972.088 5 -3928028.002 4 23756224.423 23756223.639 23756224.622
+ 30.600 24.900
+ -6202176.906 5 -4832863.030 4 22563061.066 22563058.125 22563059.719
+ 35.600 28.800
+ -13292872.484 6 -10358077.081 5 22070021.089 22070017.958 22070019.710
+ 39.600 33.600
+ -14643885.553 7 -11410820.339 5 21861070.895 21861068.227 21861069.700
+ 43.400 34.500
+ -4038497.387 5 -3146880.673 4 23891921.429 23891915.022 23891920.049
+ 31.300 26.500
+ -18772474.494 7 -14627897.252 7 20629846.241 20629844.006 20629845.561
+ 47.200 46.300
+ -6645273.224 5 -5178128.469 3 23402944.641 23402942.258 23402944.468
+ 31.100 23.000
+ 06 1 1 9 10 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19793790.411 7 -15423729.798 7 20491978.126 20491976.354 20491977.258
+ 46.600 45.400
+ -5120906.132 4 -3990314.227 3 23741015.072 23741011.859 23741013.819
+ 29.900 23.400
+ -6032742.655 5 -4700836.380 4 22595302.939 22595299.871 22595301.974
+ 35.200 27.900
+ -13477542.242 6 -10501975.553 5 22034879.500 22034876.355 22034878.232
+ 39.800 33.100
+ -14681973.022 7 -11440498.917 5 21853823.331 21853820.635 21853822.196
+ 43.800 34.500
+ -4242003.730 5 -3305457.055 3 23853195.040 23853189.272 23853193.598
+ 30.600 22.600
+ -18749280.502 7 -14609824.012 7 20634259.910 20634257.672 20634259.213
+ 47.100 46.400
+ -6448967.677 5 -5025163.090 3 23440300.672 23440297.768 23440300.311
+ 32.300 20.500
+ 06 1 1 9 11 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19747498.398 7 -15387658.096 7 20500787.140 20500785.417 20500786.302
+ 46.700 45.200
+ -5199103.406 5 -4051247.120 4 23726133.959 23726132.390 23726133.147
+ 30.200 24.200
+ -5862245.972 5 -4567981.854 4 22627747.941 22627744.732 22627746.855
+ 34.800 28.400
+ -13660841.049 6 -10644805.726 5 21999997.984 21999995.744 21999997.372
+ 40.300 34.000
+ -14717618.584 7 -11468274.701 5 21847039.961 21847037.560 21847038.690
+ 43.100 34.800
+ -4445240.579 5 -3463823.473 3 23814520.481 23814514.260 23814519.063
+ 30.100 22.100
+ -18724961.273 7 -14590873.961 7 20638887.946 20638885.390 20638887.163
+ 47.400 46.300
+ -6251541.589 5 -4871324.585 3 23477869.426 23477867.003 23477869.065
+ 30.800 22.600
+ 06 1 1 9 12 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19699541.911 7 -15350289.405 7 20509913.044 20509911.136 20509912.274
+ 47.000 45.000
+ -5275547.328 4 -4110813.787 4 23711586.523 23711585.578 23711585.981
+ 29.000 25.300
+ -5690694.376 5 -4434305.315 4 22660392.349 22660390.320 22660391.761
+ 35.200 29.000
+ -13842751.508 6 -10786554.061 5 21965381.615 21965379.189 21965380.840
+ 40.400 34.000
+ -14750817.310 7 -11494143.848 5 21840722.641 21840720.131 21840721.455
+ 43.500 34.700
+ -4648194.116 4 -3621969.111 4 23775899.498 23775893.859 23775898.167
+ 28.400 24.600
+ -18699521.401 7 -14571050.677 7 20643728.816 20643726.381 20643728.147
+ 47.300 46.000
+ -6053017.246 5 -4716630.251 3 23515647.251 23515644.966 23515647.016
+ 30.200 22.100
+ 06 1 1 9 13 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19649918.245 7 -15311621.604 7 20519356.221 20519354.235 20519355.331
+ 46.900 44.900
+ -5350223.836 5 -4169003.224 4 23697377.618 23697374.625 23697376.049
+ 30.400 24.900
+ -5518095.567 5 -4299812.789 4 22693237.505 22693234.510 22693236.415
+ 34.000 27.900
+ -14023255.413 6 -10927206.384 5 21931034.189 21931030.506 21931032.325
+ 40.000 34.800
+ -14781564.412 7 -11518102.638 5 21834871.646 21834868.885 21834870.482
+ 43.700 35.100
+ -4850850.805 4 -3779883.423 4 23737334.001 23737329.912 23737333.473
+ 29.700 27.900
+ -18672965.238 7 -14550357.553 7 20648782.257 20648779.845 20648781.523
+ 47.100 46.100
+ -5853416.278 5 -4561097.066 3 23553629.990 23553628.400 23553629.580
+ 30.400 23.000
+ 06 1 1 9 14 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19598624.713 7 -15271652.599 7 20529116.854 20529115.097 20529116.019
+ 47.000 44.800
+ -5423117.057 4 -4225803.095 3 23683504.312 23683502.665 23683504.049
+ 29.500 23.800
+ -5344457.473 5 -4164510.404 4 22726279.310 22726276.500 22726278.414
+ 34.300 25.600
+ -14202335.607 6 -11066749.327 5 21896954.614 21896952.850 21896954.177
+ 41.100 35.400
+ -14809855.833 7 -11540147.924 5 21829487.881 21829485.468 21829486.717
+ 43.300 34.800
+ -5053197.063 5 -3937555.824 5 23698829.588 23698824.704 23698828.801
+ 32.100 30.600
+ -18645297.141 7 -14528797.993 7 20654047.442 20654044.992 20654046.685
+ 47.400 46.100
+ -5652760.682 5 -4404742.041 3 23591813.651 23591811.068 23591813.789
+ 31.000 19.900
+ 06 1 1 9 15 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19545658.866 7 -15230380.477 7 20539195.711 20539194.029 20539195.075
+ 46.900 44.600
+ -5494212.203 5 -4281201.881 3 23669976.979 23669974.377 23669975.796
+ 30.100 23.800
+ -5169788.046 5 -4028404.395 4 22759517.615 22759515.101 22759517.225
+ 34.300 26.500
+ -14379974.731 6 -11205169.372 5 21863152.602 21863149.021 21863150.869
+ 40.700 35.400
+ -14835687.388 7 -11560276.429 5 21824572.346 21824569.733 21824571.235
+ 43.400 34.700
+ -5255218.706 5 -4094975.273 4 23660387.077 23660381.111 23660385.718
+ 32.800 28.100
+ -18616521.576 7 -14506375.472 7 20659523.226 20659520.802 20659522.451
+ 47.300 46.300
+ -5451072.350 4 -4247582.317 3 23630193.701 23630191.023 23630193.379
+ 28.600 19.300
+ 06 1 1 9 16 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19491018.387 7 -15187803.429 7 20549593.888 20549591.732 20549592.883
+ 46.800 44.500
+ -5563494.843 5 -4335188.311 4 23656791.885 23656790.577 23656791.416
+ 30.200 25.300
+ -4994095.589 5 -3891501.221 4 22792951.208 22792948.405 22792950.114
+ 32.700 26.500
+ -14556155.490 6 -11342453.036 5 21829625.792 21829622.801 21829624.548
+ 41.200 35.300
+ -14859055.710 7 -11578485.530 5 21820125.661 21820122.939 21820124.342
+ 43.400 34.800
+ -5456901.540 5 -4252130.711 4 23622006.929 23622001.726 23622006.239
+ 31.100 26.800
+ -18586642.911 7 -14483093.390 7 20665208.822 20665206.586 20665208.164
+ 47.300 46.200
+ -5248372.963 4 -4089634.740 4 23668765.994 23668764.835 23668765.287
+ 27.600 24.600
+ 06 1 1 9 17 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19434701.409 7 -15143920.036 7 20560310.060 20560308.536 20560309.441
+ 46.800 44.500
+ -5630950.524 4 -4387751.143 3 23643955.602 23643954.212 23643954.886
+ 29.900 23.800
+ -4817387.879 5 -3753806.942 4 22826576.835 22826574.568 22826576.118
+ 32.100 26.200
+ -14730861.246 6 -11478587.323 5 21796380.182 21796377.312 21796379.035
+ 41.400 35.300
+ -14879958.171 7 -11594773.169 5 21816147.635 21816145.465 21816146.593
+ 43.200 35.400
+ -5658232.239 5 -4409011.773 4 23583696.403 23583690.187 23583694.824
+ 32.600 25.600
+ -18555665.505 7 -14458955.142 7 20671103.553 20671101.344 20671102.855
+ 47.200 46.200
+ -5044684.333 4 -3930916.341 2 23707527.130 23707523.938 23707526.486
+ 29.200 17.000
+ 06 1 1 9 18 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19376706.041 7 -15098728.814 7 20571346.712 20571344.633 20571345.624
+ 46.400 44.400
+ -5696565.148 5 -4438879.397 3 23631469.814 23631467.462 23631468.855
+ 30.200 21.600
+ -4639673.314 5 -3615328.100 4 22860395.183 22860392.812 22860394.375
+ 32.600 26.500
+ -14904075.114 7 -11613559.119 6 21763418.741 21763415.907 21763417.711
+ 42.100 36.500
+ -14898391.806 7 -11609137.055 5 21812640.461 21812637.630 21812639.091
+ 43.600 35.400
+ -5859195.587 5 -4565606.609 4 23545453.696 23545448.048 23545452.739
+ 32.600 24.600
+ -18523593.911 7 -14433964.280 7 20677206.502 20677204.429 20677205.810
+ 47.200 46.300
+ -4840027.979 5 -3771443.858 3 23746472.099 23746469.419 23746471.919
+ 30.400 18.600
+ 06 1 1 9 19 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19317030.741 7 -15052228.568 7 20582701.965 20582700.393 20582701.417
+ 46.800 44.300
+ -5760325.116 4 -4488562.467 3 23619335.626 23619334.768 23619335.429
+ 29.900 23.400
+ -4460960.585 5 -3476071.464 4 22894402.635 22894400.918 22894402.217
+ 32.400 25.600
+ -15075780.009 6 -11747355.086 6 21730744.260 21730741.514 21730742.995
+ 41.400 36.500
+ -14914354.501 7 -11621575.537 5 21809602.638 21809600.231 21809601.495
+ 43.800 35.900
+ -6059777.708 5 -4721904.392 4 23507284.450 23507278.268 23507282.867
+ 31.500 25.600
+ -18490432.159 7 -14408123.953 7 20683516.933 20683514.822 20683516.346
+ 47.300 46.100
+ -4634425.587 4 -3611234.188 3 23785595.663 23785593.784 23785595.943
+ 28.100 19.300
+ 06 1 1 9 20 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19255674.004 7 -15004418.117 7 20594378.084 20594376.142 20594377.105
+ 46.500 44.000
+ -5822217.426 4 -4536790.206 3 23607558.661 23607557.279 23607557.912
+ 29.900 23.800
+ -4281257.865 5 -3336043.405 4 22928599.153 22928596.648 22928598.926
+ 32.700 24.200
+ -15245959.654 7 -11879962.535 6 21698360.000 21698357.156 21698358.921
+ 42.100 36.300
+ -14927844.224 7 -11632087.019 5 21807035.857 21807033.092 21807034.637
+ 44.000 35.600
+ -6259963.750 5 -4877893.493 4 23469188.681 23469183.938 23469187.840
+ 31.100 25.900
+ -18456184.780 7 -14381437.682 7 20690033.975 20690031.842 20690033.332
+ 46.900 45.800
+ -4427898.896 4 -3450304.272 3 23824896.864 23824894.709 23824896.954
+ 27.600 21.100
+ 06 1 1 9 21 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19192634.503 7 -14955296.434 7 20606374.040 20606372.256 20606373.273
+ 46.700 43.900
+ -5882228.283 5 -4583551.904 3 23596139.717 23596137.033 23596139.170
+ 31.800 23.800
+ -4100573.840 5 -3195250.698 4 22962983.175 22962979.807 22962981.746
+ 32.000 25.300
+ -15414597.333 7 -12011368.461 6 21666268.839 21666266.391 21666268.111
+ 42.500 36.400
+ -14938860.092 7 -11640670.823 5 21804939.432 21804936.906 21804938.188
+ 43.800 35.700
+ -6459739.321 5 -5033562.777 4 23431174.266 23431168.555 23431172.825
+ 33.500 28.100
+ -18420855.981 7 -14353908.742 7 20696756.908 20696754.619 20696756.199
+ 47.400 45.800
+ -4220469.070 4 -3288670.691 3 23864370.067 23864367.308 23864369.619
+ 27.600 21.600
+ 06 1 1 9 22 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19127910.855 7 -14904862.419 7 20618690.619 20618688.770 20618689.821
+ 46.900 44.000
+ -5940344.699 5 -4628837.394 3 23585079.962 23585078.033 23585079.372
+ 31.300 23.000
+ -3918917.330 5 -3053700.201 4 22997551.405 22997548.177 22997550.038
+ 32.400 24.200
+ -15581677.204 7 -12141560.493 6 21634474.700 21634472.190 21634473.857
+ 42.700 36.800
+ -14947400.560 7 -11647325.751 5 21803314.282 21803311.752 21803312.996
+ 43.500 35.700
+ -6659089.127 5 -5188900.271 4 23393239.537 23393233.174 23393238.077
+ 35.300 28.400
+ -18384449.899 7 -14325540.355 7 20703684.851 20703682.525 20703684.118
+ 47.500 45.900
+ -4012157.747 4 -3126350.179 2 23904009.472 23904007.529 23904009.376
+ 26.200 17.000
+ 06 1 1 9 23 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -19061501.829 7 -14853115.139 7 20631327.713 20631326.031 20631326.935
+ 46.800 43.900
+ -5996554.206 5 -4672636.970 4 23574383.882 23574381.893 23574383.001
+ 31.600 24.200
+ -3736297.047 5 -2911398.735 4 23032302.099 23032300.199 23032301.401
+ 31.000 26.200
+ -15747183.158 7 -12270526.108 6 21602980.173 21602977.454 21602979.117
+ 42.800 37.300
+ -14953465.259 7 -11652051.503 5 21802160.196 21802157.698 21802159.040
+ 43.500 35.900
+ -6857998.558 5 -5343894.633 4 23355388.097 23355382.071 23355386.709
+ 32.700 29.200
+ -18346970.978 7 -14296335.991 7 20710816.676 20710814.465 20710816.053
+ 47.400 45.600
+ -3802985.898 4 -2963359.149 2 23943813.737 23943811.826 23943813.444
+ 26.500 17.800
+ 06 1 1 9 24 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18993406.823 7 -14800054.100 7 20644285.776 20644283.945 20644285.040
+ 46.800 43.800
+ -6050844.578 5 -4714941.122 4 23564052.105 23564050.514 23564051.486
+ 30.600 24.600
+ -3552721.768 5 -2768353.105 4 23067235.735 23067233.136 23067234.609
+ 30.800 24.900
+ -15911099.409 7 -12398253.014 6 21571788.245 21571784.989 21571786.976
+ 42.900 37.200
+ -14957054.326 7 -11654848.194 6 21801477.298 21801474.667 21801476.025
+ 43.600 36.000
+ -7056452.077 5 -5498533.734 5 23317623.178 23317617.988 23317621.868
+ 32.400 30.100
+ -18308423.378 7 -14266298.903 7 20718152.097 20718149.952 20718151.422
+ 47.500 45.700
+ -3592975.207 4 -2799714.421 3 23983777.654 23983775.553 23983777.223
+ 26.200 19.900
+ 06 1 1 9 25 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18923625.130 7 -14745678.766 7 20657565.148 20657563.067 20657564.150
+ 46.600 43.700
+ -6103203.810 5 -4755740.498 4 23554088.257 23554087.617 23554087.924
+ 31.100 25.900
+ -3368200.476 5 -2624570.316 4 23102348.562 23102346.385 23102347.835
+ 30.600 24.200
+ -16073410.452 7 -12524729.089 6 21540901.096 21540898.159 21540900.015
+ 43.300 37.500
+ -14958167.999 7 -11655716.005 6 21801265.168 21801262.807 21801264.059
+ 43.500 36.000
+ -7254434.888 5 -5652806.030 4 23279948.849 23279942.912 23279947.361
+ 33.800 28.800
+ -18268811.339 7 -14235432.373 7 20725690.124 20725687.820 20725689.397
+ 47.300 45.800
+ -3382146.571 4 -2635432.396 2 24023897.557 24023894.819 24023897.258
+ 28.800 17.800
+ 06 1 1 9 26 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18852156.175 7 -14689988.675 7 20671164.395 20671163.146 20671163.974
+ 46.700 43.600
+ -6153620.060 5 -4795025.877 4 23544495.221 23544492.826 23544494.310
+ 31.500 24.900
+ -3182742.481 5 -2480057.636 3 23137640.720 23137637.768 23137639.427
+ 30.400 23.800
+ -16234100.362 7 -12649941.965 6 21510323.154 21510319.953 21510321.848
+ 43.300 37.900
+ -14956806.656 7 -11654655.229 6 21801524.530 21801521.958 21801523.337
+ 43.800 36.100
+ -7451931.219 5 -5806699.299 4 23242365.997 23242360.060 23242364.885
+ 35.200 27.100
+ -18228138.835 7 -14203739.501 7 20733429.883 20733427.521 20733429.142
+ 47.500 45.700
+ -3170521.088 4 -2470529.421 2 24064167.525 24064165.428 24064167.856
+ 27.100 17.000
+ 06 1 1 9 27 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18779000.061 7 -14632983.917 7 20685086.407 20685084.241 20685085.376
+ 46.400 43.400
+ -6202082.051 5 -4832788.430 4 23535272.998 23535270.817 23535272.087
+ 31.800 24.600
+ -2996356.988 5 -2334822.248 3 23173108.708 23173105.574 23173107.435
+ 30.800 23.400
+ -16393154.117 7 -12773879.902 6 21480056.135 21480052.987 21480054.857
+ 43.300 38.200
+ -14952971.904 7 -11651667.121 6 21802253.994 21802251.641 21802252.795
+ 43.500 36.000
+ -7648926.001 5 -5960201.716 4 23204878.822 23204873.880 23204877.825
+ 34.100 29.700
+ -18186410.177 7 -14171223.655 7 20741370.481 20741368.250 20741369.765
+ 47.400 45.600
+ -2958119.974 4 -2305022.030 2 24104586.408 24104584.255 24104586.212
+ 26.200 17.000
+ 06 1 1 9 28 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18704156.407 7 -14574664.197 7 20699328.118 20699326.600 20699327.444
+ 46.500 43.400
+ -6248578.622 5 -4869019.487 4 23526425.503 23526422.626 23526424.161
+ 31.600 24.900
+ -2809052.799 4 -2188870.977 3 23208751.676 23208748.924 23208750.211
+ 29.500 23.400
+ -16550556.641 7 -12896531.190 6 21450103.158 21450100.247 21450102.066
+ 43.600 37.900
+ -14946665.049 7 -11646752.701 5 21803454.282 21803451.661 21803453.168
+ 43.600 35.600
+ -7845402.981 5 -6113300.675 4 23167490.977 23167484.862 23167489.616
+ 34.500 29.200
+ -18143629.553 7 -14137888.108 7 20749511.350 20749509.108 20749510.668
+ 47.600 45.700
+ -2744963.788 4 -2138926.322 2 24145148.260 24145147.047 24145148.135
+ 24.900 13.900
+ 06 1 1 9 29 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18627625.397 7 -14515029.647 7 20713891.841 20713890.047 20713890.986
+ 46.500 43.400
+ -6293099.058 5 -4903710.715 3 23517952.646 23517950.401 23517952.050
+ 31.100 23.400
+ -2620839.773 4 -2042211.506 4 23244567.825 23244564.644 23244566.081
+ 29.900 25.300
+ -16706293.235 7 -13017884.335 6 21420467.223 21420464.614 21420466.235
+ 43.800 38.400
+ -14937888.512 7 -11639913.854 5 21805124.309 21805121.791 21805123.118
+ 43.300 35.800
+ -8041346.942 5 -6265984.277 5 23130204.671 23130198.630 23130203.034
+ 35.900 32.000
+ -18099800.892 7 -14103735.902 7 20757851.604 20757849.467 20757851.012
+ 47.700 45.600
+ -2531073.832 4 -1972258.813 3 24185851.862 24185849.025 24185851.021
+ 27.600 19.900
+ 06 1 1 9 30 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18549407.285 7 -14454080.478 7 20728776.454 20728774.308 20728775.457
+ 46.500 43.100
+ -6335632.656 5 -4936853.752 4 23509859.326 23509856.685 23509858.449
+ 31.800 24.900
+ -2431727.446 4 -1894851.297 4 23280554.804 23280551.762 23280553.101
+ 29.200 24.600
+ -16860349.066 7 -13137927.810 6 21391151.646 21391148.581 21391150.469
+ 43.900 38.600
+ -14926644.281 7 -11631152.126 6 21807264.435 21807261.660 21807263.062
+ 43.300 36.000
+ -8236741.775 5 -6418239.976 5 23093021.400 23093015.845 23093020.295
+ 35.500 31.100
+ -18054928.248 7 -14068770.195 7 20766390.833 20766388.410 20766390.104
+ 47.600 45.600
+ -2316470.331 4 -1805035.345 3 24226688.239 24226686.167 24226687.678
+ 24.200 20.500
+ 06 1 1 9 31 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18469502.678 7 -14391817.157 7 20743981.519 20743979.606 20743980.730
+ 46.400 42.900
+ -6376169.432 5 -4968440.811 4 23502144.955 23502143.088 23502144.354
+ 31.800 24.900
+ -2241725.232 4 -1746797.687 3 23316710.915 23316707.588 23316709.352
+ 29.200 21.100
+ -17012709.477 7 -13256650.173 6 21362158.879 21362155.244 21362157.376
+ 43.900 38.600
+ -14912935.510 7 -11620469.977 6 21809872.709 21809870.394 21809871.554
+ 43.100 36.000
+ -8431571.587 5 -6570055.419 4 23055946.538 23055940.567 23055945.200
+ 34.900 29.900
+ -18009015.690 7 -14032994.169 7 20775127.866 20775125.297 20775127.066
+ 47.900 45.500
+ -2101174.117 3 -1637272.077 2 24267656.905 24267655.429 24267657.692
+ 23.800 17.000
+ 06 1 1 9 32 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18387912.097 7 -14328240.090 7 20759507.884 20759505.901 20759506.968
+ 46.600 42.900
+ -6414699.512 5 -4998464.239 4 23494813.261 23494811.090 23494812.554
+ 31.800 25.300
+ -2050842.928 4 -1598058.251 3 23353035.135 23353031.179 23353032.927
+ 26.500 21.600
+ -17163360.370 7 -13374040.461 6 21333490.728 21333487.273 21333489.247
+ 43.500 38.700
+ -14896765.170 7 -11607869.715 6 21812949.883 21812947.483 21812948.658
+ 43.000 36.000
+ -8625820.065 6 -6721417.871 4 23018982.870 23018976.674 23018981.753
+ 37.100 29.700
+ -17962067.258 7 -13996410.962 7 20784061.756 20784059.288 20784060.920
+ 47.600 45.400
+ -1885205.585 3 -1468984.920 1 24308755.374 24308753.281 24308754.842
+ 23.800 9.000
+ 06 1 1 9 33 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18304636.207 7 -14263349.794 7 20775354.769 20775352.752 20775353.921
+ 46.600 42.700
+ -6451213.275 5 -5026916.499 4 23487864.713 23487862.744 23487864.090
+ 32.600 26.500
+ -1859090.388 4 -1448640.765 3 23389523.900 23389520.912 23389522.257
+ 28.600 23.000
+ -17312287.534 7 -13490087.569 6 21305150.033 21305147.458 21305149.123
+ 44.100 39.200
+ -14878136.902 7 -11593354.191 5 21816494.785 21816492.127 21816493.510
+ 42.700 35.500
+ -8819471.440 6 -6872315.044 5 22982132.182 22982126.187 22982130.818
+ 36.400 31.300
+ -17914086.915 7 -13959023.671 7 20793191.838 20793189.643 20793191.140
+ 47.600 45.300
+ -1668585.279 4 -1300189.846 2 24349977.833 24349975.583 24349977.279
+ 26.500 17.800
+ 06 1 1 9 34 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18219676.067 7 -14197147.096 7 20791521.553 20791520.259 20791521.028
+ 46.500 42.900
+ -6485701.540 5 -5053790.447 4 23481301.997 23481300.367 23481301.251
+ 32.000 26.800
+ -1666477.414 4 -1298552.771 3 23426176.976 23426173.911 23426175.135
+ 28.400 21.100
+ -17459477.102 7 -13604780.699 6 21277140.935 21277138.248 21277139.986
+ 44.400 39.700
+ -14857055.083 7 -11576926.802 5 21820506.586 21820503.912 21820505.372
+ 43.000 35.700
+ -9012508.482 6 -7022733.510 5 22945398.007 22945392.438 22945396.940
+ 36.300 31.500
+ -17865078.640 7 -13920835.397 7 20802517.863 20802515.593 20802517.140
+ 47.600 45.300
+ -1451333.529 4 -1130902.791 3 24391319.088 24391317.267 24391318.858
+ 24.900 20.500
+ 06 1 1 9 35 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18133033.099 7 -14129633.098 7 20808009.730 20808007.883 20808008.734
+ 46.400 42.900
+ -6518155.582 5 -5079079.297 4 23475126.065 23475124.320 23475125.297
+ 32.400 26.500
+ -1473013.554 4 -1147801.739 3 23462992.085 23462988.814 23462990.404
+ 27.100 23.000
+ -17604915.823 7 -13718109.549 6 21249465.213 21249462.059 21249464.001
+ 44.700 39.600
+ -14833524.342 7 -11558591.166 5 21824984.159 21824981.697 21824982.952
+ 42.900 35.700
+ -9204915.102 6 -7172660.742 5 22908784.273 22908778.637 22908783.233
+ 36.500 31.300
+ -17815046.276 7 -13881849.126 7 20812038.589 20812036.462 20812037.993
+ 47.800 45.300
+ -1233470.388 3 -961139.355 2 24432776.110 24432774.454 24432776.282
+ 22.600 17.800
+ 06 1 1 9 36 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -18044708.641 7 -14060808.857 7 20824817.271 20824815.502 20824816.367
+ 46.200 42.800
+ -6548566.740 5 -5102776.287 4 23469338.676 23469336.697 23469337.955
+ 32.100 25.600
+ -1278709.395 4 -996395.955 3 23499966.781 23499963.402 23499965.337
+ 27.400 19.900
+ -17748590.465 7 -13830063.779 6 21222124.407 21222121.850 21222123.527
+ 44.700 40.200
+ -14807549.884 7 -11538351.327 5 21829926.959 21829924.616 21829925.636
+ 42.400 35.500
+ -9396674.619 6 -7322083.721 5 22872293.728 22872287.937 22872292.080
+ 36.800 32.000
+ -17763993.684 7 -13842067.878 7 20821753.634 20821751.356 20821752.939
+ 47.900 45.000
+ -1015016.084 4 -790915.209 2 24474347.283 24474345.095 24474346.965
+ 24.200 15.100
+ 06 1 1 9 37 0.0000000 0 8G01G06G14G16G20G23G25G30
+ -17954704.216 7 -13990675.549 7 20841944.138 20841942.648 20841943.439
+ 46.000 42.700
+ -6576926.656 5 -5124874.902 4 23463941.979 23463940.834 23463941.327
+ 32.300 26.200
+ -1083574.670 4 -844343.014 3 23537100.051 23537097.021 23537098.077
+ 26.200 21.100
+ -17890486.792 7 -13940632.323 6 21195122.994 21195119.848 21195121.648
+ 44.400 40.200
+ -14779136.612 7 -11516211.125 5 21835333.710 21835331.433 21835332.600
+ 42.400 35.200
+ -9587770.387 6 -7470989.517 4 22835930.142 22835923.278 22835928.358
+ 36.800 29.900
+ -17711924.858 7 -13801494.758 7 20831662.141 20831659.595 20831661.393
+ 47.800 44.900
+ -795990.439 3 -620245.861 2 24516025.726 24516024.570 24516025.856
+ 22.600 16.100
+ 06 1 1 9 38 0.0000000 0 7G01G06G14G16G20G23G25
+ -17863021.823 7 -13919234.734 7 20859391.069 20859389.254 20859390.191
+ 46.100 42.400
+ -6603227.686 5 -5145369.188 4 23458936.996 23458935.446 23458936.282
+ 31.800 25.300
+ -887620.248 4 -691651.315 2 23574388.207 23574385.225 23574386.828
+ 25.900 17.800
+ -18030592.353 7 -14049805.456 6 21168461.053 21168458.445 21168460.148
+ 44.700 40.500
+ -14748290.001 7 -11492174.813 5 21841204.145 21841200.985 21841202.783
+ 43.000 34.500
+ -9778185.467 6 -7619364.907 5 22799694.719 22799688.749 22799693.372
+ 36.500 32.000
+ -17658843.461 7 -13760132.608 7 20841762.734 20841760.714 20841762.198
+ 47.900 44.900
+ 06 1 1 9 39 0.0000000 0 7G01G06G14G16G20G23G25
+ -17769663.152 7 -13846487.730 7 20877156.635 20877154.935 20877155.708
+ 46.100 42.400
+ -6627462.106 5 -5164253.142 4 23454325.321 23454323.832 23454324.627
+ 31.500 26.500
+ -690856.422 4 -538328.906 3 23611831.943 23611828.570 23611830.120
+ 27.100 19.300
+ -18168894.908 7 -14157573.666 6 21142143.306 21142140.260 21142142.074
+ 44.800 40.400
+ -14715016.916 7 -11466247.729 5 21847535.281 21847532.814 21847534.146
+ 42.300 34.900
+ -9967902.980 6 -7767196.738 5 22763592.521 22763586.749 22763591.127
+ 36.500 32.000
+ -17604753.335 7 -13717984.453 7 20852056.190 20852053.712 20852055.450
+ 47.800 44.800
+ 06 1 1 9 40 0.0000000 0 7G01G06G14G16G20G23G25
+ -17674630.404 7 -13772436.252 7 20895240.584 20895239.059 20895239.873
+ 46.300 42.200
+ -6649622.684 5 -5181521.100 4 23450108.503 23450107.078 23450107.607
+ 31.800 26.500
+ -493292.921 4 -384383.359 2 23649427.208 23649423.721 23649425.437
+ 26.500 17.800
+ -18305381.212 7 -14263926.598 6 21116170.709 21116167.865 21116169.542
+ 44.800 40.900
+ -14679323.623 7 -11438434.769 5 21854327.804 21854325.160 21854326.547
+ 42.700 34.800
+ -10156905.414 6 -7914471.335 5 22727626.756 22727621.063 22727625.366
+ 38.400 33.200
+ -17549658.109 7 -13675053.108 7 20862540.441 20862537.962 20862539.595
+ 47.700 44.800
+ 06 1 1 9 41 0.0000000 0 7G01G06G14G16G20G23G25
+ -17577925.858 7 -13697082.071 7 20913643.257 20913641.313 20913642.279
+ 46.400 42.200
+ -6669702.599 5 -5197167.773 4 23446287.384 23446285.880 23446286.562
+ 32.100 26.500
+ -294940.499 4 -229823.128 3 23687171.894 23687169.293 23687170.505
+ 25.600 21.600
+ -18440039.355 7 -14368855.000 6 21090545.989 21090543.187 21090545.007
+ 44.800 40.700
+ -14641217.774 7 -11408741.894 5 21861579.079 21861576.387 21861577.750
+ 42.400 34.900
+ -10345175.955 6 -8061175.675 5 22691799.900 22691794.250 22691798.550
+ 38.100 33.200
+ -17493561.658 7 -13631341.576 7 20873215.169 20873212.793 20873214.408
+ 47.800 44.700
+ 06 1 1 9 42 0.0000000 0 7G01G06G14G16G20G23G25
+ -17479552.239 7 -13620427.319 6 20932363.076 20932361.100 20932362.230
+ 46.600 41.800
+ -6687695.475 5 -5211188.179 4 23442863.291 23442861.866 23442862.545
+ 31.800 26.500
+ -95809.760 4 -74656.365 3 23725065.262 23725062.134 23725063.829
+ 25.900 19.900
+ -18572857.443 7 -14472349.594 6 21065271.918 21065268.735 21065270.771
+ 45.200 41.100
+ -14600706.020 7 -11377174.309 5 21869288.012 21869285.551 21869286.710
+ 42.100 34.600
+ -10532697.309 6 -8207296.186 5 22656115.155 22656110.060 22656114.330
+ 38.000 33.100
+ -17436467.599 8 -13586852.677 7 20884079.669 20884077.383 20884079.011
+ 48.000 44.600
+ 06 1 1 9 43 0.0000000 0 7G01G06G14G16G20G23G25
+ -17379512.502 7 -13542474.284 6 20951399.554 20951398.067 20951399.030
+ 46.400 41.800
+ -6703595.127 5 -5223577.505 4 23439837.704 23439836.354 23439836.842
+ 31.300 26.800
+ 104088.234 4 81108.232 2 23763105.856 23763101.551 23763103.569
+ 25.900 17.800
+ -18703823.787 7 -14574401.261 6 21040349.807 21040346.488 21040348.594
+ 45.100 41.200
+ -14557796.753 7 -11343738.533 5 21877453.528 21877450.827 21877452.363
+ 42.800 34.600
+ -10719451.882 6 -8352819.240 5 22620577.689 22620572.105 22620576.259
+ 38.200 33.900
+ -17378379.538 8 -13541589.241 7 20895133.518 20895131.097 20895132.853
+ 48.000 44.400
+ 06 1 1 9 44 0.0000000 0 7G01G06G14G16G20G23G25
+ -17277809.586 7 -13463225.269 6 20970753.070 20970751.489 20970752.367
+ 46.300 41.600
+ -6717395.443 5 -5234330.996 4 23437211.512 23437210.025 23437210.879
+ 31.500 27.100
+ 304743.122 3 237462.644 2 23801289.026 23801285.457 23801287.072
+ 23.800 17.800
+ -18832926.137 7 -14675000.469 6 21015782.140 21015779.062 21015781.096
+ 45.100 41.200
+ -14512497.810 7 -11308440.671 5 21886073.867 21886071.008 21886072.686
+ 43.000 34.100
+ -10905421.739 6 -8497730.811 5 22585188.981 22585182.799 22585187.621
+ 39.100 33.000
+ -17319301.103 7 -13495554.088 7 20906375.644 20906373.381 20906374.990
+ 47.900 44.400
+ 06 1 1 9 45 0.0000000 0 7G01G06G14G16G20G23G25
+ -17174446.541 7 -13382682.651 6 20990423.038 20990420.878 20990421.961
+ 46.100 41.600
+ -6729091.027 5 -5243444.432 4 23434985.774 23434984.268 23434984.953
+ 31.800 25.600
+ 506144.118 3 394398.453 3 23839613.486 23839610.951 23839611.993
+ 23.400 22.600
+ -18960153.907 7 -14774138.966 6 20991571.518 20991568.438 20991570.429
+ 45.100 41.400
+ -14464818.112 7 -11271287.687 5 21895147.212 21895144.407 21895145.930
+ 42.800 34.900
+ -11090590.292 6 -8642017.991 5 22549952.636 22549946.391 22549951.192
+ 39.500 33.900
+ -17259235.880 7 -13448750.013 7 20917805.859 20917803.489 20917805.139
+ 47.900 44.300
+ 06 1 1 9 46 0.0000000 0 7G01G06G14G16G20G23G25
+ -17069426.546 7 -13300848.906 6 21010407.484 21010405.485 21010406.455
+ 45.700 41.300
+ -6738676.741 5 -5250913.806 4 23433161.806 23433160.863 23433161.023
+ 32.400 27.600
+ 708279.938 4 551906.794 3 23878078.733 23878075.892 23878077.733
+ 24.600 18.600
+ -19085495.595 7 -14871807.795 6 20967719.835 20967716.791 20967718.750
+ 45.100 41.800
+ -14414766.652 6 -11232286.575 5 21904671.123 21904668.650 21904669.937
+ 41.800 34.300
+ -11274939.052 6 -8785666.392 5 22514872.261 22514865.959 22514870.724
+ 39.400 33.500
+ -17198187.405 7 -13401179.777 7 20929422.872 20929420.675 20929422.149
+ 47.800 44.500
+ 06 1 1 9 47 0.0000000 0 7G01G06G14G16G20G23G25
+ -16962753.154 7 -13217726.794 6 21030706.527 21030704.782 21030705.694
+ 45.600 41.100
+ -6746147.948 5 -5256735.521 4 23431740.081 23431738.391 23431739.333
+ 32.300 25.900
+ 911139.378 4 709979.006 2 23916680.851 23916679.107 23916679.626
+ 24.600 17.800
+ -19208940.980 7 -14967998.974 7 20944228.648 20944225.976 20944227.620
+ 45.100 42.200
+ -14362353.106 6 -11191444.884 5 21914645.098 21914642.537 21914643.826
+ 41.300 33.600
+ -11458450.011 6 -8928661.924 5 22479950.602 22479945.218 22479949.589
+ 40.200 34.400
+ -17136159.206 7 -13352846.106 7 20941226.124 20941224.202 20941225.635
+ 47.900 44.300
+ 06 1 1 9 48 0.0000000 0 7G01G06G14G16G20G23G25
+ -16854429.954 7 -13133319.120 6 21051319.448 21051318.013 21051318.829
+ 45.600 41.300
+ -6751499.983 5 -5260905.928 4 23430722.321 23430720.138 23430721.406
+ 32.800 25.600
+ 1114711.916 3 868606.900 2 23955419.403 23955417.359 23955418.632
+ 22.600 17.800
+ -19330478.897 7 -15062703.832 7 20921101.103 20921098.089 20921099.894
+ 45.300 42.500
+ -14307586.948 6 -11148769.983 5 21925066.417 21925064.218 21925065.259
+ 41.000 34.100
+ -11641106.036 6 -9070991.296 5 22445192.195 22445186.805 22445190.973
+ 39.500 33.800
+ -17073154.810 8 -13303751.762 7 20953215.815 20953213.489 20953215.126
+ 48.000 44.100
+ 06 1 1 9 49 0.0000000 0 7G01G06G14G16G20G23G25
+ -16744460.907 7 -13047628.971 6 21072245.840 21072244.482 21072245.234
+ 45.500 40.900
+ -6754728.810 5 -5263421.876 4 23430106.870 23430105.505 23430106.323
+ 32.400 25.600
+ 1318986.244 3 1027781.652 2 23994292.950 23994290.049 23994290.944
+ 22.600 17.000
+ -19450099.552 7 -15155914.714 7 20898337.918 20898335.001 20898336.791
+ 45.300 42.600
+ -14250479.033 6 -11104270.339 5 21935933.983 21935931.513 21935932.830
+ 41.100 34.000
+ -11822888.386 6 -9212639.900 5 22410600.381 22410594.580 22410598.952
+ 39.900 33.500
+ -17009177.454 7 -13253899.284 7 20965390.166 20965387.973 20965389.484
+ 47.900 44.000
+ 06 1 1 9 50 0.0000000 0 7G01G06G14G16G20G23G25
+ -16632850.266 7 -12960659.659 6 21093485.342 21093483.303 21093484.278
+ 45.500 40.900
+ -6755830.647 5 -5264280.434 4 23429897.727 23429896.482 23429896.814
+ 31.800 27.400
+ 1523950.814 4 1187494.182 2 24033294.931 24033292.769 24033294.712
+ 24.200 17.000
+ -19567792.371 7 -15247623.382 7 20875941.731 20875938.666 20875940.550
+ 45.200 42.600
+ -14191039.570 6 -11057953.890 5 21947245.247 21947242.662 21947243.957
+ 41.200 33.800
+ -12003779.013 6 -9353593.629 5 22376178.562 22376172.726 22376176.983
+ 40.600 35.200
+ -16944230.731 7 -13203291.441 7 20977749.443 20977746.940 20977748.644
+ 47.900 43.900
+ 06 1 1 9 51 0.0000000 0 7G01G06G14G16G20G23G25
+ -16519602.391 7 -12872414.585 6 21115035.404 21115033.585 21115034.580
+ 45.700 40.500
+ -6754802.096 5 -5263478.979 4 23430093.497 23430091.296 23430092.851
+ 32.600 26.200
+ 1729594.646 3 1347736.053 2 24072428.533 24072426.402 24072427.275
+ 22.600 16.100
+ -19683548.040 7 -15337822.587 7 20853913.813 20853911.149 20853912.827
+ 45.000 42.800
+ -14129279.633 6 -11009829.274 5 21958997.756 21958995.261 21958996.424
+ 41.000 33.600
+ -12183759.970 6 -9493838.528 5 22341928.838 22341923.187 22341927.659
+ 41.000 33.900
+ -16878317.865 7 -13151930.764 7 20990292.072 20990289.729 20990291.336
+ 47.900 43.800
+ 06 1 1 9 52 0.0000000 0 7G01G06G14G16G20G23G25
+ -16404722.246 7 -12782897.602 6 21136896.054 21136894.634 21136895.568
+ 45.800 40.600
+ -6751640.208 5 -5261015.155 4 23430695.344 23430693.619 23430694.591
+ 32.700 27.100
+ 1935906.079 3 1508498.190 2 24111688.260 24111685.863 24111686.855
+ 22.100 17.800
+ -19797357.201 7 -15426505.037 7 20832257.004 20832253.944 20832255.841
+ 45.200 42.800
+ -14065210.312 6 -10959905.161 5 21971189.438 21971187.118 21971188.267
+ 40.900 33.200
+ -12362813.067 6 -9633360.440 5 22307856.246 22307850.784 22307855.025
+ 41.200 35.400
+ -16811442.286 7 -13099819.920 7 21003017.872 21003015.776 21003017.220
+ 47.700 43.800
+ 06 1 1 9 53 0.0000000 0 7G01G06G14G16G20G23G25
+ -16288214.487 7 -12692112.348 6 21159066.832 21159065.295 21159066.289
+ 45.600 40.000
+ -6746342.182 5 -5256886.805 4 23431703.482 23431701.861 23431702.698
+ 33.000 27.600
+ 2142873.794 3 1669771.658 2 24151072.840 24151070.158 24151072.332
+ 23.000 15.100
+ -19909210.249 7 -15513663.242 7 20810972.332 20810968.975 20810971.038
+ 45.200 43.200
+ -13998843.365 6 -10908190.654 5 21983819.030 21983816.088 21983817.730
+ 40.700 33.200
+ -12540919.632 6 -9772144.774 6 22273964.047 22273958.344 22273962.364
+ 40.600 36.000
+ -16743607.201 7 -13046961.411 7 21015926.597 21015924.330 21015925.927
+ 47.700 44.000
+ 06 1 1 9 54 0.0000000 0 7G01G06G14G16G20G23G25
+ -16170083.763 7 -12600062.448 6 21181546.849 21181544.876 21181545.944
+ 45.300 40.200
+ -6738905.595 5 -5251092.059 4 23433118.618 23433116.737 23433117.717
+ 32.000 26.500
+ 2350486.218 3 1831547.471 2 24190580.117 24190578.020 24190579.343
+ 21.100 17.000
+ -20019098.417 7 -15599290.374 7 20790060.989 20790058.096 20790059.792
+ 45.000 43.700
+ -13930191.424 6 -10854695.636 5 21996882.880 21996880.211 21996881.639
+ 40.700 32.800
+ -12718060.982 6 -9910177.008 5 22240255.054 22240249.044 22240253.544
+ 41.200 34.700
+ -16674815.979 7 -12993357.859 7 21029017.018 21029014.902 21029016.402
+ 47.700 43.700
+ 06 1 1 9 55 0.0000000 0 7G01G06G14G16G20G23G25
+ -16050335.154 7 -12506751.868 6 21204334.350 21204332.320 21204333.243
+ 45.000 40.000
+ -6729328.706 5 -5243629.543 4 23434941.079 23434939.397 23434940.278
+ 33.000 26.800
+ 2558731.371 3 1993816.371 3 24230207.596 24230206.215 24230206.940
+ 21.600 18.600
+ -20127012.942 7 -15683379.609 7 20769525.489 20769522.548 20769524.406
+ 45.200 43.700
+ -13859266.848 6 -10799429.744 5 22010379.342 22010376.870 22010378.228
+ 41.100 32.800
+ -12894219.215 6 -10047443.169 5 22206732.706 22206727.500 22206731.797
+ 41.400 35.800
+ -16605071.825 7 -12939011.758 7 21042288.785 21042286.754 21042288.067
+ 47.400 43.800
+ 06 1 1 9 56 0.0000000 0 7G01G06G14G16G20G23G25
+ -15928974.269 7 -12412184.964 6 21227428.489 21227426.632 21227427.421
+ 44.900 39.900
+ -6717609.691 5 -5234497.843 4 23437171.174 23437169.047 23437170.362
+ 33.100 26.500
+ 2767598.127 3 2156569.542 2 24269953.651 24269952.345 24269952.655
+ 23.400 13.900
+ -20232945.605 7 -15765924.531 7 20749367.368 20749364.282 20749366.164
+ 45.400 44.100
+ -13786082.408 6 -10742402.887 5 22024305.905 22024303.253 22024304.602
+ 40.300 32.400
+ -13069375.217 6 -10183928.353 6 22173401.888 22173396.394 22173400.731
+ 41.600 36.200
+ -16534377.753 7 -12883925.471 7 21055741.647 21055739.352 21055740.928
+ 47.800 43.500
+ 06 1 1 9 57 0.0000000 0 7G01G06G14G16G20G23G25
+ -15806005.992 7 -12316365.548 6 21250828.493 21250826.736 21250827.515
+ 44.800 39.800
+ -6703747.333 5 -5223695.988 4 23439809.326 23439806.769 23439808.417
+ 33.000 26.200
+ 2977073.976 3 2319797.413 3 24309815.367 24309814.799 24309814.597
+ 22.600 19.900
+ -20336888.063 7 -15846918.644 7 20729587.506 20729584.562 20729586.480
+ 45.100 44.000
+ -13710651.463 6 -10683625.528 5 22038659.940 22038657.428 22038658.671
+ 40.400 32.800
+ -13243510.363 6 -10319618.074 5 22140264.933 22140259.369 22140263.710
+ 41.600 35.300
+ -16462737.102 8 -12828101.578 7 21069374.454 21069372.046 21069373.808
+ 48.100 43.200
+ 06 1 1 9 58 0.0000000 0 7G01G06G14G16G20G23G25
+ -15681436.377 7 -12219298.343 6 21274533.065 21274531.554 21274532.313
+ 44.900 40.100
+ -6687740.754 5 -5211223.330 4 23442854.790 23442852.759 23442854.079
+ 32.700 26.200
+ 3187147.802 3 2483491.308 2 24349791.134 24349789.277 24349790.558
+ 19.300 15.100
+ -20438833.073 7 -15926356.300 7 20710188.226 20710185.066 20710187.023
+ 45.100 44.300
+ -13632987.472 6 -10623108.143 5 22053439.099 22053436.641 22053437.855
+ 40.600 33.400
+ -13416606.031 7 -10454497.834 6 22107326.593 22107320.472 22107325.058
+ 42.400 36.500
+ -16390152.885 8 -12771542.450 7 21083186.802 21083184.465 21083186.040
+ 48.100 43.300
+ 06 1 1 9 59 0.0000000 0 7G01G06G14G16G20G23G25
+ -15555271.394 7 -12120987.986 6 21298541.727 21298539.916 21298540.867
+ 45.000 39.500
+ -6669589.289 5 -5197079.336 4 23446308.717 23446306.978 23446307.771
+ 32.100 25.900
+ 3397807.370 3 2647641.515 2 24389878.568 24389877.083 24389877.465
+ 18.600 16.100
+ -20538771.969 7 -16004230.745 7 20691170.169 20691167.295 20691169.124
+ 44.900 44.400
+ -13553104.673 6 -10560861.825 5 22068640.062 22068637.975 22068638.873
+ 39.900 32.700
+ -13588643.466 7 -10588552.975 6 22074588.527 22074582.623 22074587.166
+ 42.300 36.000
+ -16316628.195 7 -12714250.479 7 21097177.987 21097175.663 21097177.288
+ 47.900 43.100
+ 06 1 1 10 0 0.0000000 0 7G01G06G14G16G20G23G25
+ -15427517.047 7 -12021439.169 6 21322852.521 21322850.762 21322851.749
+ 45.000 39.300
+ -6649292.924 5 -5181263.968 3 23450170.887 23450168.320 23450170.171
+ 31.500 23.000
+ 3609040.903 3 2812239.026 2 24430077.065 24430073.210 24430075.175
+ 22.600 13.900
+ -20636698.266 7 -16080536.936 7 20672535.638 20672532.549 20672534.487
+ 44.900 44.700
+ -13471017.175 6 -10496897.558 5 22084261.213 22084258.534 22084259.940
+ 40.300 33.100
+ -13759603.501 7 -10721768.604 6 22042056.120 22042050.328 22042054.922
+ 43.200 36.500
+ -16242166.203 8 -12656228.146 7 21111347.751 21111345.244 21111346.991
+ 48.000 42.800
+ 06 1 1 10 1 0.0000000 0 7G01G06G14G16G20G23G25
+ -15298179.977 7 -11920657.057 6 21347464.322 21347462.799 21347463.696
+ 44.800 39.000
+ -6626851.680 5 -5163777.264 4 23454441.918 23454439.331 23454441.081
+ 31.600 24.200
+ 3820835.616 3 2977273.843 9 24470379.788 24470378.005 24470377.723
+ 21.100 -3.000
+ -20732604.978 7 -16155269.425 7 20654285.205 20654282.129 20654284.068
+ 45.000 44.700
+ -13386739.514 6 -10431226.663 5 22100298.262 22100295.902 22100297.174
+ 39.700 32.000
+ -13929467.569 7 -10854130.216 6 22009731.951 22009726.203 22009730.545
+ 42.600 36.900
+ -16166769.818 8 -12597477.717 7 21125695.125 21125692.749 21125694.482
+ 48.100 42.900
+ 06 1 1 10 2 0.0000000 0 7G01G06G14G16G20G23G25
+ -15167266.327 7 -11818646.446 6 21372376.697 21372374.781 21372375.734
+ 44.300 38.900
+ -6602265.974 5 -5144619.577 4 23459119.897 23459118.057 23459119.016
+ 31.300 25.300
+ 4033180.334 3 3142737.260 1 24510787.522 24510784.736 24510785.677
+ 19.300 9.000
+ -20826484.994 7 -16228422.665 7 20636420.410 20636417.299 20636419.315
+ 44.900 44.900
+ -13300286.810 6 -10363860.967 5 22116749.732 22116747.810 22116748.604
+ 39.700 32.800
+ -14098216.306 7 -10985622.733 6 21977620.321 21977614.275 21977618.988
+ 43.500 36.900
+ -16090441.933 7 -12538001.440 7 21140220.050 21140217.507 21140219.251
+ 47.900 42.700
+ 06 1 1 10 3 0.0000000 0 7G01G06G14G16G20G23G25
+ -15034782.895 7 -11715412.626 6 21397587.514 21397585.668 21397586.538
+ 44.000 38.800
+ -6575536.530 5 -5123791.418 4 23464206.509 23464204.262 23464205.750
+ 32.100 25.900
+ 4246062.089 3 3308619.101 1 24551298.485 24551294.683 24551296.580
+ 19.300 6.500
+ -20918332.212 7 -16299991.913 7 20618942.356 20618939.409 20618941.225
+ 44.700 45.300
+ -13211674.088 6 -10294812.130 5 22133612.511 22133610.040 22133611.264
+ 40.300 31.800
+ -14265830.718 7 -11116231.372 6 21945723.983 21945718.340 21945722.792
+ 43.300 36.900
+ -16013185.577 7 -12477801.684 7 21154921.212 21154918.965 21154920.526
+ 47.800 42.800
+ 06 1 1 10 4 0.0000000 0 7G01G06G14G16G20G23G25
+ -14900736.538 7 -11610960.942 6 21423095.662 21423093.805 21423094.772
+ 44.000 38.400
+ -6546664.822 5 -5101293.980 4 23469700.940 23469698.495 23469699.909
+ 32.000 25.600
+ 4459469.387 2 3474910.427 2 24591906.986 24591904.658 24591905.724
+ 17.800 15.100
+ -21008139.873 7 -16369971.901 7 20601852.595 20601849.595 20601851.366
+ 44.500 45.300
+ -13120917.483 6 -10224092.743 5 22150882.607 22150880.185 22150881.432
+ 39.500 31.500
+ -14432291.433 7 -11245941.023 6 21914047.780 21914041.836 21914046.543
+ 44.100 37.000
+ -15935003.753 7 -12416880.784 7 21169798.649 21169796.421 21169797.979
+ 47.800 42.700
+ 06 1 1 10 5 0.0000000 0 7G01G06G14G16G20G23G25
+ -14765134.293 7 -11505296.880 6 21448899.954 21448898.098 21448899.148
+ 44.100 38.100
+ -6515652.061 5 -5077128.190 4 23475602.312 23475600.446 23475601.611
+ 32.100 27.100
+ 4673389.580 3 3641601.436 2 24632614.886 24632612.035 24632613.505
+ 18.600 17.000
+ -21095902.671 7 -16438358.486 7 20585151.741 20585148.766 20585150.719
+ 44.600 45.500
+ -13028032.704 6 -10151715.041 5 22168557.565 22168555.623 22168556.315
+ 38.600 31.500
+ -14597579.841 7 -11374737.199 6 21882594.067 21882588.477 21882592.910
+ 43.500 37.000
+ -15855899.242 7 -12355240.907 7 21184851.994 21184849.550 21184851.201
+ 47.900 42.600
+ 06 1 1 10 6 0.0000000 0 6G01G06G16G20G23G25
+ -14627983.281 7 -11398425.983 6 21474998.620 21474997.067 21474998.032
+ 43.900 38.200
+ -6482500.262 5 -5051295.609 4 23481910.529 23481908.862 23481909.826
+ 30.800 26.200
+ -21181614.863 7 -16505147.193 7 20568841.367 20568838.183 20568840.302
+ 44.500 45.600
+ -12933036.086 6 -10077691.749 5 22186634.998 22186633.154 22186633.751
+ 38.500 31.600
+ -14761676.715 7 -11502604.890 6 21851367.690 21851361.977 21851366.350
+ 44.000 37.600
+ -15775874.954 8 -12292884.319 7 21200079.917 21200077.689 21200079.344
+ 48.000 42.500
+ 06 1 1 10 7 0.0000000 0 6G01G06G16G20G23G25
+ -14489290.976 7 -11290354.078 6 21501391.477 21501389.514 21501390.422
+ 44.000 38.300
+ -6447211.868 5 -5023798.160 4 23488626.128 23488623.998 23488625.546
+ 32.300 25.900
+ -21265271.268 7 -16570333.990 7 20552922.001 20552918.998 20552920.930
+ 44.600 45.900
+ -12835943.893 6 -10002035.538 5 22205111.717 22205109.082 22205110.431
+ 39.300 31.600
+ -14924562.343 7 -11629528.753 6 21820371.605 21820366.008 21820370.286
+ 43.900 37.900
+ -15694933.601 7 -12229813.136 7 21215482.268 21215480.251 21215481.719
+ 47.700 42.400
+ 06 1 1 10 8 0.0000000 0 6G01G06G16G20G23G25
+ -14349064.758 7 -11181086.921 6 21528075.080 21528073.788 21528074.422
+ 43.600 38.300
+ -6409789.058 5 -4994637.546 4 23495747.530 23495745.585 23495746.470
+ 31.000 25.600
+ -21346866.960 7 -16633915.028 7 20537395.064 20537391.778 20537393.817
+ 44.500 46.000
+ -12736773.328 6 -9924759.794 5 22223983.124 22223980.604 22223981.816
+ 39.100 31.100
+ -15086217.812 7 -11755494.056 6 21789609.648 21789603.902 21789608.358
+ 44.300 37.900
+ -15613077.959 7 -12166029.522 7 21231059.066 21231056.806 21231058.360
+ 47.500 42.200
+ 06 1 1 10 9 0.0000000 0 6G01G06G16G20G23G25
+ -14207312.489 7 -11070630.630 6 21555050.000 21555048.247 21555049.012
+ 43.000 37.700
+ -6370235.036 5 -4963816.209 4 23503274.223 23503271.726 23503273.311
+ 31.100 24.900
+ -21426397.031 7 -16695886.487 7 20522260.847 20522257.731 20522259.732
+ 44.500 46.300
+ -12635541.220 6 -9845877.658 5 22243247.005 22243244.536 22243245.818
+ 39.100 31.300
+ -15246623.569 7 -11880485.545 6 21759085.416 21759079.684 21759084.197
+ 44.600 38.200
+ -15530310.879 7 -12101535.699 7 21246809.128 21246806.972 21246808.480
+ 47.700 42.100
+ 06 1 1 10 10 0.0000000 0 6G01G06G16G20G23G25
+ -14064042.433 7 -10958991.655 6 21582313.540 21582311.703 21582312.482
+ 42.800 37.600
+ -6328553.052 5 -4931336.745 3 23511206.011 23511203.489 23511205.237
+ 32.000 23.000
+ -21503857.235 7 -16756245.048 7 20507520.591 20507517.440 20507519.474
+ 44.400 46.400
+ -12532266.167 6 -9765403.630 5 22262899.617 22262897.398 22262898.299
+ 38.600 31.000
+ -15405760.494 7 -12004488.350 6 21728803.007 21728796.969 21728801.600
+ 44.900 38.100
+ -15446635.092 7 -12036333.784 6 21262732.168 21262729.897 21262731.481
+ 47.800 41.900
+ 06 1 1 10 11 0.0000000 0 6G01G06G16G20G23G25
+ -13919262.745 7 -10846176.338 6 21609863.981 21609862.366 21609863.025
+ 42.600 37.400
+ -6284746.644 5 -4897201.875 3 23519542.426 23519539.147 23519541.470
+ 32.300 21.100
+ -21579243.237 7 -16814987.344 7 20493175.066 20493172.035 20493174.005
+ 44.400 46.600
+ -12426965.119 6 -9683350.899 5 22282937.598 22282935.554 22282936.490
+ 39.200 30.800
+ -15563608.665 7 -12127486.929 6 21698764.980 21698759.558 21698763.771
+ 44.300 38.900
+ -15362053.211 7 -11970425.830 7 21278827.386 21278825.318 21278826.730
+ 47.600 42.000
+ 06 1 1 10 12 0.0000000 0 6G01G06G16G20G23G25
+ -13772981.701 7 -10732191.135 6 21637700.235 21637698.666 21637699.438
+ 42.800 37.100
+ -6238819.786 5 -4861414.677 3 23528281.999 23528278.666 23528281.150
+ 32.700 23.400
+ -21652551.551 7 -16872110.665 7 20479225.112 20479221.849 20479223.863
+ 44.000 46.700
+ -12319656.049 6 -9599733.479 5 22303358.172 22303355.602 22303356.994
+ 38.900 30.800
+ -15720149.596 7 -12249466.864 6 21668976.526 21668970.693 21668975.172
+ 44.800 38.400
+ -15276567.918 7 -11903813.915 6 21295094.995 21295092.636 21295094.293
+ 47.600 41.800
+ 06 1 1 10 13 0.0000000 0 6G01G06G16G20G23G25
+ -13625207.410 7 -10617042.357 6 21665820.119 21665819.254 21665819.718
+ 42.300 36.600
+ -6190776.531 5 -4823978.373 4 23537423.779 23537421.538 23537423.004
+ 31.800 24.600
+ -21723778.393 7 -16927612.053 7 20465670.798 20465667.829 20465669.725
+ 43.900 47.000
+ -12210357.406 6 -9514565.744 5 22324157.107 22324154.455 22324155.905
+ 38.900 30.600
+ -15875363.573 7 -12370412.826 6 21639440.015 21639434.463 21639438.718
+ 44.700 38.600
+ -15190181.729 7 -11836500.003 6 21311533.471 21311531.376 21311532.896
+ 47.600 41.800
+ 06 1 1 10 14 0.0000000 0 7G01G06G13G16G20G23G25
+ -13475948.920 7 -10500737.061 6 21694222.806 21694222.287 21694222.753
+ 42.600 36.700
+ -6140621.674 5 -4784896.674 4 23546967.863 23546965.975 23546966.926
+ 31.300 25.300
+ -186090.258 3 -145005.430 1 24570035.982 24570034.109 24570035.604
+ 22.100 9.000
+ -21792920.602 7 -16981489.051 7 20452513.533 20452510.353 20452512.434
+ 43.900 47.000
+ -12099088.175 6 -9427862.464 4 22345330.960 22345328.480 22345329.668
+ 38.600 29.900
+ -16029230.837 7 -12490309.395 6 21610160.256 21610154.622 21610158.927
+ 45.300 39.000
+ -15102897.400 7 -11768486.247 6 21328143.242 21328140.992 21328142.661
+ 47.500 41.400
+ 06 1 1 10 15 0.0000000 0 7G01G06G13G16G20G23G25
+ -13325215.235 7 -10383282.263 6 21722906.653 21722905.994 21722906.491
+ 42.200 36.700
+ -6088360.119 5 -4744173.380 4 23556912.544 23556911.058 23556911.993
+ 31.100 24.200
+ -400573.152 3 -312134.933 2 24529221.369 24529218.532 24529220.777
+ 19.900 15.100
+ -21859975.087 7 -17033739.262 7 20439753.309 20439750.265 20439752.328
+ 43.800 47.100
+ -11985867.235 6 -9339638.404 4 22366876.225 22366873.411 22366874.902
+ 38.300 29.700
+ -16181732.482 7 -12609141.852 6 21581140.004 21581134.268 21581138.805
+ 45.300 38.200
+ -15014717.516 7 -11699774.652 6 21344923.543 21344921.079 21344922.769
+ 47.600 41.300
+ 06 1 1 10 16 0.0000000 0 7G01G06G13G16G20G23G25
+ -13173015.486 7 -10264685.081 6 21751869.338 21751868.697 21751869.242
+ 42.100 36.600
+ -6033997.169 5 -4701812.631 4 23567257.606 23567255.802 23567256.898
+ 31.000 24.900
+ -614787.251 3 -479055.009 3 24488456.986 24488455.114 24488457.282
+ 23.400 22.100
+ -21924939.889 7 -17084361.152 7 20427391.164 20427387.818 20427390.015
+ 43.800 47.300
+ -11870713.448 6 -9249908.221 4 22388789.294 22388786.547 22388788.096
+ 38.800 29.200
+ -16332848.651 7 -12726894.711 6 21552383.610 21552377.970 21552382.229
+ 45.100 39.000
+ -14925644.413 7 -11630367.042 6 21361873.519 21361871.127 21361872.780
+ 47.500 41.100
+ 06 1 1 10 17 0.0000000 0 7G01G06G13G16G20G23G25
+ -13019358.772 6 -10144952.598 5 21781109.736 21781108.519 21781109.142
+ 41.700 35.800
+ -5977538.488 5 -4657818.841 3 23578002.004 23577999.050 23578000.919
+ 31.500 23.800
+ -828715.922 3 -645752.669 3 24447748.016 24447745.161 24447747.784
+ 19.300 19.900
+ -21987811.958 7 -17133352.340 7 20415426.751 20415423.712 20415425.768
+ 43.800 47.600
+ -11753646.585 6 -9158687.325 5 22411066.279 22411063.847 22411065.148
+ 38.300 30.200
+ -16482560.275 7 -12843553.115 6 21523894.099 21523888.862 21523892.889
+ 45.100 39.400
+ -14835680.807 7 -11560265.527 6 21378992.997 21378990.585 21378992.308
+ 47.500 40.900
+ 06 1 1 10 18 0.0000000 0 7G01G06G13G16G20G23G25
+ -12864254.599 6 -10024092.238 6 21810625.775 21810624.082 21810624.747
+ 41.700 36.000
+ -5918989.959 5 -4612196.618 4 23589143.051 23589141.088 23589142.397
+ 31.800 24.900
+ -1042343.314 2 -812215.575 1 24407096.116 24407092.456 24407096.143
+ 12.600 9.000
+ -22048589.547 7 -17180711.477 7 20403861.085 20403858.105 20403860.075
+ 43.800 47.800
+ -11634685.924 6 -9065990.766 5 22433704.016 22433701.588 22433702.745
+ 38.400 30.800
+ -16630847.659 7 -12959101.726 6 21495676.182 21495670.602 21495674.938
+ 45.500 39.500
+ -14744829.131 7 -11489472.016 6 21396281.358 21396279.005 21396280.769
+ 47.500 40.700
+ 06 1 1 10 19 0.0000000 0 7G01G06G13G16G20G23G25
+ -12707712.323 6 -9902111.275 5 21840414.931 21840412.793 21840413.676
+ 40.900 35.300
+ -5858357.978 5 -4564950.920 4 23600680.862 23600679.067 23600680.030
+ 31.100 25.600
+ -1255652.519 4 -978430.531 1 24366505.658 24366501.736 24366505.413
+ 25.600 11.000
+ -22107270.592 7 -17226436.945 7 20392694.548 20392691.411 20392693.533
+ 43.700 47.800
+ -11513851.603 6 -8971834.192 4 22456697.914 22456695.287 22456696.569
+ 38.300 29.700
+ -16777691.623 7 -13073525.598 6 21467732.785 21467727.095 21467731.536
+ 45.900 39.500
+ -14653091.690 7 -11417988.297 6 21413738.690 21413736.135 21413737.987
+ 47.400 40.800
+ 06 1 1 10 20 0.0000000 0 7G01G06G13G16G20G23G25
+ -12549741.821 6 -9779017.411 5 21870475.559 21870473.678 21870474.495
+ 41.300 35.400
+ -5795648.575 5 -4516086.440 3 23612614.455 23612611.968 23612613.449
+ 31.000 23.000
+ -1468626.772 4 -1144384.521 3 24325978.064 24325974.587 24325977.872
+ 26.800 19.300
+ -22163854.111 7 -17270527.977 7 20381927.090 20381923.884 20381925.947
+ 43.700 47.900
+ -11391163.855 6 -8876233.385 4 22480044.314 22480041.765 22480043.188
+ 37.700 28.100
+ -16923072.585 7 -13186809.459 6 21440067.611 21440062.103 21440066.232
+ 45.500 39.700
+ -14560471.176 7 -11345816.467 6 21431363.403 21431361.191 21431362.829
+ 47.300 40.700
+ 06 1 1 10 21 0.0000000 0 7G01G06G13G16G20G23G25
+ -12390353.339 6 -9654818.620 5 21900806.398 21900804.245 21900805.293
+ 41.000 35.200
+ -5730868.909 5 -4465608.774 4 23624941.728 23624939.337 23624940.751
+ 31.300 24.200
+ -1681249.121 3 -1310064.271 4 24285514.839 24285514.175 24285515.311
+ 20.500 24.900
+ -22218338.746 7 -17312983.519 8 20371558.963 20371555.850 20371557.860
+ 43.300 48.100
+ -11266643.350 5 -8779204.485 4 22503739.819 22503737.697 22503738.509
+ 35.900 29.200
+ -17066971.556 7 -13298938.528 6 21412684.830 21412679.157 21412683.506
+ 46.500 40.000
+ -14466969.852 7 -11272958.293 6 21449155.991 21449154.007 21449155.404
+ 47.100 40.600
+ 06 1 1 10 22 0.0000000 0 7G01G06G13G16G20G23G25
+ -12229556.832 6 -9529522.666 5 21931404.592 21931403.114 21931403.679
+ 40.700 35.100
+ -5664026.369 5 -4413523.668 4 23637661.094 23637659.439 23637660.484
+ 31.000 26.500
+ -1893503.131 3 -1475456.990 3 24245127.311 24245123.083 24245126.298
+ 22.600 21.100
+ -22270723.441 7 -17353802.742 8 20361590.530 20361587.322 20361589.389
+ 43.100 48.200
+ -11140310.276 6 -8680763.192 4 22527780.448 22527778.314 22527779.059
+ 36.600 29.900
+ -17209369.124 7 -13409897.671 6 21385587.132 21385581.721 21385585.894
+ 46.000 40.000
+ -14372590.210 7 -11199415.717 6 21467115.921 21467113.861 21467115.344
+ 47.300 40.600
+ 06 1 1 10 23 0.0000000 0 7G01G06G13G16G20G23G25
+ -12067362.580 6 -9403137.559 5 21962268.704 21962267.494 21962267.994
+ 40.200 35.100
+ -5595128.356 5 -4359836.895 4 23650771.669 23650770.531 23650770.797
+ 30.600 26.200
+ -2105371.491 3 -1640549.148 3 24204808.736 24204805.935 24204808.516
+ 23.000 18.600
+ -22321007.822 7 -17392985.362 8 20352021.740 20352018.569 20352020.535
+ 43.100 48.500
+ -11012185.573 6 -8580925.812 4 22552161.875 22552159.241 22552160.650
+ 38.000 27.900
+ -17350245.575 7 -13519671.527 6 21358779.420 21358773.777 21358778.069
+ 46.100 40.100
+ -14277334.427 7 -11125190.431 6 21485242.685 21485240.504 21485241.983
+ 46.800 40.500
+ 06 1 1 10 24 0.0000000 0 7G01G06G13G16G20G23G25
+ -11903780.865 6 -9275671.322 5 21993397.272 21993396.311 21993396.550
+ 39.800 35.200
+ -5524182.936 5 -4304554.755 4 23664272.174 23664270.581 23664271.508
+ 30.400 25.900
+ -2316836.892 4 -1805327.427 2 24164568.626 24164565.322 24164568.244
+ 25.900 16.100
+ -22369191.388 7 -17430530.983 8 20342852.522 20342849.511 20342851.413
+ 43.100 48.500
+ -10882290.351 6 -8479708.804 4 22576879.842 22576877.525 22576878.634
+ 37.200 27.100
+ -17489582.110 7 -13628245.445 6 21332264.746 21332258.913 21332263.501
+ 46.500 40.200
+ -14181204.926 7 -11050284.334 6 21503535.485 21503533.341 21503534.842
+ 47.000 40.300
+ 06 1 1 10 25 0.0000000 0 7G01G06G13G16G20G23G25
+ -11738822.151 6 -9147132.093 5 22024787.788 22024786.569 22024787.260
+ 39.900 34.300
+ -5451197.905 5 -4247683.302 4 23678160.940 23678159.582 23678160.136
+ 30.600 26.500
+ -2527882.169 4 -1969778.312 2 24124408.190 24124404.729 24124407.836
+ 27.100 13.900
+ -22415274.458 7 -17466439.859 8 20334083.194 20334080.066 20334082.152
+ 43.100 48.700
+ -10750646.395 6 -8377129.135 4 22601931.209 22601928.700 22601929.900
+ 36.800 27.600
+ -17627359.445 7 -13735604.406 6 21306046.520 21306040.790 21306045.234
+ 46.600 40.600
+ -14084204.118 7 -10974699.290 6 21521994.035 21521991.865 21521993.422
+ 46.900 40.200
+ 06 1 1 10 26 0.0000000 0 7G01G06G13G16G20G23G25
+ -11572497.427 6 -9017528.440 5 22056438.209 22056437.341 22056437.822
+ 40.000 34.500
+ -5376181.667 4 -4189229.093 4 23692435.056 23692433.895 23692434.503
+ 29.000 24.600
+ -2738489.747 4 -2133888.145 2 24084330.858 24084326.971 24084330.449
+ 25.600 16.100
+ -22459257.021 7 -17500711.975 8 20325713.581 20325710.457 20325712.558
+ 43.400 48.700
+ -10617274.430 6 -8273202.978 4 22627310.774 22627308.882 22627309.666
+ 36.200 29.700
+ -17763558.190 7 -13841733.299 6 21280128.592 21280123.000 21280127.395
+ 47.000 40.500
+ -13986334.118 7 -10898436.961 6 21540618.355 21540615.850 21540617.601
+ 47.000 39.800
+ 06 1 1 10 27 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -11404817.419 6 -8886868.710 5 22088347.245 22088345.745 22088346.392
+ 39.600 33.600
+ -261477.459 3 -203748.693 2 24506805.049 24506804.836 24506804.304
+ 21.100 15.100
+ -5299143.029 5 -4129198.994 4 23707096.117 23707094.140 23707095.352
+ 31.000 24.600
+ -2948641.685 3 -2297642.901 3 24044339.505 24044337.485 24044339.383
+ 23.000 23.000
+ -22501140.013 7 -17533348.053 8 20317743.763 20317740.493 20317742.555
+ 43.200 48.800
+ -10482196.717 5 -8167947.700 4 22653015.200 22653013.368 22653014.091
+ 35.600 29.200
+ -17898159.227 7 -13946617.223 6 21254514.820 21254509.392 21254513.565
+ 46.700 40.800
+ -13887597.296 7 -10821499.183 6 21559407.528 21559404.909 21559406.761
+ 47.100 39.800
+ 06 1 1 10 28 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -11235793.189 6 -8755161.545 5 22120511.600 22120510.176 22120510.772
+ 39.300 34.500
+ -485644.800 3 -378424.455 2 24464148.720 24464146.849 24464146.960
+ 19.900 12.600
+ -5220091.079 5 -4067600.049 4 23722139.761 23722137.186 23722138.687
+ 30.600 24.600
+ -3158320.596 3 -2461029.028 4 24004439.253 24004436.845 24004439.039
+ 22.600 25.600
+ -22540924.034 7 -17564348.574 8 20310173.145 20310169.828 20310172.050
+ 43.100 49.100
+ -10345435.397 6 -8061380.503 4 22679040.296 22679038.052 22679039.335
+ 36.800 27.900
+ -18031144.024 7 -14050241.736 6 21229208.769 21229203.225 21229207.452
+ 46.700 40.900
+ -13787995.885 7 -10743887.697 6 21578360.763 21578358.327 21578360.085
+ 46.800 39.700
+ 06 1 1 10 29 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -11065435.924 6 -8622415.655 5 22152929.542 22152927.857 22152928.576
+ 38.900 33.000
+ -709829.748 3 -553113.918 2 24421487.853 24421486.408 24421485.743
+ 20.500 17.800
+ -5139035.095 4 -4004439.551 4 23737562.555 23737562.188 23737561.905
+ 28.800 26.500
+ -3367508.682 4 -2624032.727 3 23964633.036 23964629.501 23964632.446
+ 24.900 23.800
+ -22578610.719 7 -17593714.808 8 20303001.305 20302998.265 20303000.329
+ 43.000 49.100
+ -10207011.596 6 -7953517.827 4 22705381.837 22705379.191 22705380.570
+ 37.300 26.200
+ -18162492.580 7 -14152591.256 6 21204213.958 21204208.523 21204212.625
+ 46.900 41.300
+ -13687532.099 7 -10665604.231 6 21597478.712 21597475.948 21597477.857
+ 46.700 39.600
+ 06 1 1 10 30 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10893757.085 6 -8488639.961 5 22185599.499 22185597.636 22185598.134
+ 38.300 33.900
+ -934010.188 3 -727799.858 1 24378825.899 24378825.824 24378825.119
+ 23.000 9.000
+ -5055984.823 5 -3939725.057 3 23753367.500 23753365.304 23753366.949
+ 30.100 23.400
+ -3576187.474 4 -2786639.548 3 23924921.638 23924918.977 23924921.598
+ 27.600 23.800
+ -22614200.719 7 -17621447.263 8 20296228.677 20296225.687 20296227.647
+ 42.900 49.100
+ -10066948.432 6 -7844377.733 4 22732034.561 22732032.070 22732033.433
+ 36.600 24.900
+ -18292187.168 7 -14253651.967 6 21179533.648 21179528.271 21179532.352
+ 46.400 41.200
+ -13586208.225 7 -10586650.571 6 21616759.636 21616757.648 21616758.921
+ 46.500 39.700
+ 06 1 1 10 31 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10720768.645 6 -8353843.823 5 22218518.398 22218516.170 22218516.778
+ 38.100 33.500
+ -1158163.688 4 -902464.852 3 24336171.082 24336171.299 24336170.127
+ 24.200 18.600
+ -4970950.124 5 -3873464.257 3 23769549.244 23769546.945 23769548.374
+ 30.400 22.600
+ -3784339.128 4 -2948835.666 3 23885312.013 23885309.073 23885311.647
+ 27.600 22.100
+ -22647696.266 7 -17647547.672 8 20289854.903 20289851.613 20289853.770
+ 42.600 49.200
+ -9925268.064 5 -7733977.482 4 22758995.721 22758993.293 22758994.430
+ 35.800 26.200
+ -18420207.819 7 -14353408.320 6 21155172.207 21155166.730 21155171.009
+ 47.000 41.000
+ -13484026.485 7 -10507028.438 6 21636203.913 21636202.061 21636203.374
+ 46.500 39.700
+ 06 1 1 10 32 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10546482.288 6 -8218036.306 5 22251683.757 22251681.666 22251682.508
+ 38.300 33.000
+ -1382268.261 3 -1077091.662 3 24293524.181 24293525.080 24293524.172
+ 20.500 20.500
+ -4883941.071 4 -3805664.973 3 23786105.646 23786104.047 23786104.842
+ 29.200 22.100
+ -3991945.513 4 -3110606.881 2 23845805.448 23845802.258 23845805.231
+ 25.300 12.600
+ -22679099.310 7 -17672017.562 8 20283879.100 20283875.862 20283877.903
+ 42.700 49.400
+ -9781993.219 5 -7622334.789 4 22786259.640 22786257.692 22786258.534
+ 35.100 27.400
+ -18546536.599 7 -14451846.333 6 21131132.563 21131127.151 21131131.341
+ 46.900 41.200
+ -13380988.888 7 -10426739.407 6 21655811.647 21655809.522 21655810.998
+ 46.800 39.500
+ 06 1 1 10 33 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10370909.838 6 -8081226.636 5 22285093.066 22285092.197 22285092.600
+ 37.700 33.000
+ -1606300.998 3 -1251662.464 2 24250892.764 24250892.329 24250892.122
+ 20.500 16.100
+ -4794968.132 5 -3736335.428 3 23803037.047 23803035.268 23803036.507
+ 30.100 23.400
+ -4198987.784 4 -3271938.566 3 23806406.632 23806403.921 23806406.347
+ 25.600 21.100
+ -22708412.236 7 -17694858.793 8 20278300.894 20278297.797 20278299.802
+ 42.800 49.400
+ -9637146.546 5 -7509467.323 4 22813823.494 22813821.223 22813822.280
+ 34.900 27.100
+ -18671154.663 7 -14548951.315 6 21107418.675 21107413.128 21107417.374
+ 46.800 41.400
+ -13277097.696 7 -10345785.236 6 21675581.786 21675579.237 21675580.974
+ 46.600 39.400
+ 06 1 1 10 34 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10194063.283 6 -7943424.167 5 22318745.400 22318744.758 22318745.215
+ 37.700 32.100
+ -1830239.319 3 -1426159.724 3 24208277.380 24208278.864 24208277.846
+ 21.100 20.500
+ -4704042.015 4 -3665483.899 4 23820340.020 23820338.339 23820339.161
+ 28.600 25.300
+ -4405447.620 4 -3432816.336 4 23767119.325 23767116.418 23767118.955
+ 27.100 24.200
+ -22735637.439 7 -17716073.228 8 20273120.190 20273116.967 20273119.121
+ 42.700 49.400
+ -9490751.073 5 -7395393.003 4 22841681.106 22841679.266 22841679.911
+ 33.000 26.200
+ -18794043.184 7 -14644708.602 6 21084033.674 21084028.163 21084032.491
+ 47.200 41.400
+ -13172355.147 7 -10264167.673 6 21695513.122 21695511.098 21695512.601
+ 46.400 39.100
+ 06 1 1 10 35 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -10015954.778 6 -7804638.347 5 22352638.293 22352637.559 22352637.866
+ 36.800 31.600
+ -2054060.791 3 -1600565.930 3 24165687.275 24165686.472 24165685.741
+ 21.100 18.600
+ -4611173.675 5 -3593118.963 3 23838011.993 23838010.041 23838011.198
+ 30.400 22.100
+ -4611306.258 4 -3593225.619 3 23727945.530 23727942.214 23727945.277
+ 27.100 23.000
+ -22760777.920 7 -17735663.197 8 20268336.196 20268332.963 20268335.086
+ 42.700 49.500
+ -9342829.959 5 -7280129.859 4 22869830.259 22869827.854 22869828.948
+ 34.400 26.200
+ -18915183.625 7 -14739103.751 6 21060981.517 21060976.021 21060980.353
+ 47.400 41.800
+ -13066763.266 7 -10181888.288 6 21715606.695 21715604.462 21715606.032
+ 46.100 39.100
+ 06 1 1 10 36 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9836596.351 6 -7664878.564 5 22386769.206 22386768.708 22386768.882
+ 37.000 32.400
+ -2277742.567 3 -1774863.284 3 24123120.104 24123120.534 24123120.294
+ 23.000 19.300
+ -4516374.424 4 -3519249.406 3 23856051.559 23856049.893 23856050.937
+ 28.400 23.000
+ -4816545.337 4 -3753152.230 3 23688889.867 23688886.780 23688889.629
+ 27.100 22.100
+ -22783836.842 7 -17753631.175 8 20263948.342 20263944.751 20263947.121
+ 42.700 49.400
+ -9193406.544 5 -7163696.094 4 22898264.262 22898262.522 22898263.090
+ 34.700 27.600
+ -19034557.954 7 -14832122.710 6 21038265.400 21038259.631 21038264.141
+ 47.300 41.600
+ -12960324.210 7 -10098948.768 6 21735861.479 21735859.221 21735860.820
+ 46.100 38.900
+ 06 1 1 10 37 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9656000.731 6 -7524154.738 5 22421136.625 22421135.046 22421135.678
+ 36.900 31.800
+ -2501261.787 4 -1949033.968 2 24080587.436 24080586.843 24080586.262
+ 24.900 15.100
+ -4419655.689 4 -3443884.161 3 23874457.162 23874455.243 23874456.483
+ 29.500 23.000
+ -5021145.771 4 -3912581.090 3 23649955.334 23649952.323 23649955.195
+ 25.900 23.400
+ -22804817.694 7 -17769979.880 8 20259955.568 20259952.312 20259954.467
+ 42.700 49.300
+ -9042504.642 5 -7046110.285 4 22926980.190 22926977.952 22926978.872
+ 33.500 25.600
+ -19152147.114 7 -14923750.626 6 21015888.953 21015883.367 21015887.685
+ 47.400 41.800
+ -12853040.119 7 -10015350.779 6 21756276.957 21756274.681 21756276.380
+ 46.100 38.600
+ 06 1 1 10 38 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9474180.579 6 -7382476.735 5 22455735.920 22455733.898 22455734.916
+ 36.600 30.600
+ -2724595.680 4 -2123060.311 1 24038089.619 24038087.629 24038088.042
+ 24.900 9.000
+ -4321029.493 4 -3367032.597 3 23893224.772 23893221.963 23893224.238
+ 28.800 19.300
+ -5225088.423 4 -4071497.452 3 23611146.237 23611143.257 23611146.074
+ 27.600 21.100
+ -22823723.897 7 -17784711.979 8 20256357.631 20256354.624 20256356.631
+ 42.600 49.600
+ -8890146.436 5 -6927389.681 4 22955972.731 22955971.066 22955971.705
+ 34.100 26.200
+ -19267933.585 7 -15013973.853 7 20993855.667 20993849.883 20993854.309
+ 47.400 42.000
+ -12744913.041 7 -9931095.920 6 21776852.893 21776850.575 21776852.213
+ 46.000 38.600
+ 06 1 1 10 39 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9291148.644 6 -7239854.480 5 22490565.463 22490564.120 22490564.744
+ 37.200 31.500
+ -2947721.696 3 -2296924.670 2 23995628.309 23995627.624 23995627.696
+ 23.800 17.000
+ -4220507.855 4 -3288704.031 3 23912353.992 23912351.242 23912353.294
+ 29.000 22.100
+ -5428354.479 4 -4229886.593 3 23572466.047 23572463.181 23572465.804
+ 28.600 23.000
+ -22840559.445 7 -17797830.573 8 20253154.028 20253150.868 20253153.053
+ 42.800 49.500
+ -8736356.224 5 -6807553.219 4 22985238.373 22985236.251 22985237.260
+ 34.500 27.400
+ -19381899.327 7 -15102778.327 7 20972168.514 20972162.841 20972167.243
+ 47.400 42.000
+ -12635945.237 7 -9846185.946 6 21797588.800 21797586.538 21797588.141
+ 46.100 38.400
+ 06 1 1 10 40 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -9106917.489 6 -7096297.784 5 22525623.597 22525621.943 22525622.668
+ 36.100 30.800
+ -3170616.023 4 -2470608.396 4 23953212.913 23953213.324 23953212.584
+ 25.300 25.300
+ -4118102.756 4 -3208907.823 2 23931839.996 23931837.772 23931839.427
+ 28.100 17.800
+ -5630924.572 4 -4387733.402 4 23533918.578 23533915.473 23533918.106
+ 28.800 25.600
+ -22855328.645 7 -17809339.030 8 20250343.863 20250340.322 20250342.690
+ 43.000 49.400
+ -8581158.513 5 -6686619.993 4 23014771.638 23014769.725 23014770.334
+ 34.000 26.800
+ -19494026.536 7 -15190150.177 6 20950831.459 20950825.709 20950830.053
+ 47.000 41.900
+ -12526138.492 7 -9760622.255 6 21818484.084 21818482.147 21818483.534
+ 45.800 38.300
+ 06 1 1 10 41 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8921500.184 5 -6951816.813 5 22560906.782 22560905.752 22560906.047
+ 35.600 30.400
+ -3393255.855 4 -2644093.842 4 23910845.495 23910846.070 23910844.982
+ 24.600 24.900
+ -4013827.003 4 -3127654.007 3 23951683.332 23951681.873 23951682.705
+ 28.600 23.000
+ -5832779.268 4 -4545022.786 3 23495507.327 23495503.469 23495506.852
+ 29.900 21.600
+ -22868035.674 7 -17819240.600 8 20247925.540 20247922.207 20247924.488
+ 43.100 49.600
+ -8424576.631 5 -6564608.169 4 23044567.772 23044565.881 23044566.645
+ 33.600 24.600
+ -19604296.918 7 -15276075.149 7 20929847.477 20929842.042 20929846.331
+ 47.300 42.000
+ -12415495.013 7 -9674406.563 6 21839539.152 21839536.850 21839538.471
+ 45.700 38.200
+ 06 1 1 10 42 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8734909.782 5 -6806421.715 5 22596413.307 22596412.940 22596413.033
+ 35.500 30.600
+ -3615618.243 4 -2817363.127 3 23868532.713 23868531.676 23868531.356
+ 24.600 21.600
+ -3907693.241 4 -3044952.377 3 23971879.677 23971877.849 23971879.164
+ 28.400 19.900
+ -6033899.220 4 -4701739.644 3 23457234.897 23457231.989 23457234.659
+ 28.800 23.400
+ -22878685.987 7 -17827539.540 8 20245898.944 20245895.566 20245897.832
+ 43.100 49.700
+ -8266634.694 5 -6441536.571 4 23074623.125 23074621.621 23074622.056
+ 33.400 25.900
+ -19712692.868 7 -15360539.527 7 20909220.854 20909215.069 20909219.532
+ 47.600 42.500
+ -12304016.948 7 -9587540.540 6 21860752.979 21860750.422 21860752.237
+ 45.600 38.000
+ 06 1 1 10 43 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8547159.451 5 -6660122.810 5 22632141.482 22632140.657 22632140.883
+ 35.200 30.800
+ -3837679.543 3 -2990397.787 3 23826276.194 23826274.751 23826274.228
+ 23.400 22.600
+ -3799714.718 4 -2960813.280 3 23992427.176 23992426.058 23992426.708
+ 29.000 23.400
+ -6234265.128 4 -4857868.909 3 23419106.392 23419103.189 23419105.959
+ 29.200 22.100
+ -22887283.928 7 -17834239.224 8 20244262.819 20244259.420 20244261.781
+ 43.100 49.700
+ -8107357.240 5 -6317424.333 4 23104932.866 23104931.065 23104931.741
+ 33.600 24.200
+ -19819197.064 7 -15443529.811 7 20888953.357 20888947.921 20888952.116
+ 47.300 42.500
+ -12191706.169 7 -9500025.653 6 21882124.816 21882122.536 21882124.107
+ 45.300 38.400
+ 06 1 1 10 44 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8358262.471 5 -6512930.382 5 22668087.476 22668086.770 22668086.851
+ 34.800 30.800
+ -4059416.376 4 -3163179.636 3 23784079.327 23784079.339 23784078.948
+ 28.600 23.400
+ -3689903.966 4 -2875246.481 3 24013324.395 24013321.899 24013323.445
+ 28.600 20.500
+ -6433857.047 4 -5013395.087 4 23381125.840 23381122.797 23381125.282
+ 29.700 26.500
+ -22893834.823 7 -17839343.807 8 20243016.214 20243012.827 20243015.015
+ 43.000 49.700
+ -7946767.920 5 -6192289.826 3 23135492.340 23135490.024 23135490.928
+ 33.500 23.800
+ -19923791.838 7 -15525032.226 7 20869049.710 20869044.331 20869048.483
+ 47.400 42.800
+ -12078564.843 7 -9411863.591 6 21903654.819 21903652.442 21903654.046
+ 45.100 37.600
+ 06 1 1 10 45 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -8168232.437 5 -6364855.064 4 22704249.192 22704248.160 22704248.537
+ 35.400 29.500
+ -4280805.234 4 -3335690.344 2 23741949.672 23741950.221 23741949.452
+ 25.600 17.800
+ -3578275.622 4 -2788263.348 3 24034565.570 24034563.904 24034565.054
+ 28.400 20.500
+ -6632655.187 4 -5168302.724 3 23343295.409 23343291.924 23343294.911
+ 28.600 23.800
+ -22898344.444 7 -17842857.787 8 20242158.069 20242154.663 20242156.973
+ 43.200 49.800
+ -7784891.236 5 -6066152.208 4 23166296.157 23166294.368 23166294.787
+ 31.800 24.600
+ -20026460.444 7 -15605033.737 7 20849512.587 20849507.042 20849511.349
+ 47.700 42.800
+ -11964595.013 7 -9323055.927 6 21925342.625 21925340.225 21925341.875
+ 44.800 37.400
+ 06 1 1 10 46 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7977083.158 5 -6215907.615 4 22740623.638 22740622.698 22740622.959
+ 34.300 29.700
+ -4501822.746 4 -3507911.693 3 23699891.841 23699891.477 23699891.627
+ 26.200 18.600
+ -3464842.691 4 -2699874.022 3 24056151.017 24056149.833 24056150.415
+ 27.900 21.100
+ -6830640.295 4 -5322576.861 4 23305620.357 23305617.039 23305619.985
+ 29.900 24.200
+ -22900818.681 7 -17844785.758 8 20241687.260 20241683.839 20241686.159
+ 43.300 49.700
+ -7621751.983 5 -5939030.773 4 23197340.537 23197338.930 23197339.431
+ 32.700 24.200
+ -20127185.615 7 -15683520.883 7 20830345.201 20830339.550 20830343.928
+ 47.600 42.600
+ -11849798.740 7 -9233604.294 6 21947187.326 21947185.232 21947186.774
+ 44.700 37.200
+ 06 1 1 10 47 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7784828.139 5 -6066098.556 4 22777208.598 22777207.603 22777207.991
+ 34.400 29.500
+ -4722445.479 4 -3679825.392 3 23657909.851 23657908.680 23657908.746
+ 26.800 23.800
+ -3349618.911 4 -2610089.298 3 24078077.814 24078076.001 24078077.097
+ 27.100 20.500
+ -7027791.853 5 -5476201.426 4 23268103.523 23268100.337 23268103.279
+ 31.500 24.600
+ -22901263.031 7 -17845131.992 8 20241602.690 20241599.221 20241601.610
+ 43.400 49.700
+ -7457374.282 5 -5810944.298 4 23228621.224 23228618.949 23228619.890
+ 32.800 25.300
+ -20225950.065 7 -15760480.195 7 20811550.921 20811545.419 20811549.695
+ 47.500 42.900
+ -11734177.978 7 -9143510.201 6 21969189.434 21969187.231 21969188.702
+ 44.600 37.300
+ 06 1 1 10 48 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7591481.339 5 -5915438.749 4 22814001.178 22814000.357 22814000.705
+ 34.500 29.500
+ -4942649.612 4 -3851412.859 3 23616008.070 23616005.162 23616005.826
+ 25.900 23.800
+ -3232618.913 4 -2518920.425 3 24100343.113 24100340.413 24100342.122
+ 29.900 22.100
+ -7224090.022 5 -5629161.046 4 23230749.374 23230746.213 23230748.726
+ 30.200 26.500
+ -22899683.983 7 -17843901.557 8 20241903.121 20241899.742 20241902.014
+ 43.400 49.600
+ -7291782.601 5 -5681911.873 3 23260132.189 23260130.081 23260130.741
+ 32.700 23.000
+ -20322737.783 7 -15835899.192 7 20793132.905 20793127.495 20793131.740
+ 47.600 43.400
+ -11617734.840 7 -9052775.296 6 21991347.430 21991345.557 21991346.926
+ 44.500 37.200
+ 06 1 1 10 49 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7397057.195 5 -5763939.437 4 22850998.039 22850998.250 22850998.066
+ 33.000 29.700
+ -5162411.804 4 -4022655.971 4 23574188.035 23574185.679 23574186.281
+ 29.500 24.900
+ -3113856.712 4 -2426378.460 3 24122942.311 24122939.732 24122941.542
+ 28.600 22.100
+ -7419515.098 5 -5781440.324 4 23193561.275 23193558.117 23193560.854
+ 32.100 27.600
+ -22896088.047 7 -17841099.519 8 20242587.386 20242583.992 20242586.283
+ 43.200 49.600
+ -7125002.248 5 -5551953.188 3 23291869.267 23291867.205 23291868.194
+ 31.800 23.400
+ -20417531.607 7 -15909764.510 7 20775094.191 20775088.598 20775092.957
+ 47.400 43.000
+ -11500471.399 7 -8961401.199 6 22013662.427 22013660.092 22013661.651
+ 44.400 36.700
+ 06 1 1 10 50 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7201569.595 5 -5611611.465 4 22888199.051 22888197.911 22888198.420
+ 33.400 28.400
+ -5381708.293 4 -4193536.220 4 23532457.247 23532454.957 23532455.328
+ 27.900 24.600
+ -2993346.562 4 -2332474.477 3 24145873.476 24145872.252 24145873.367
+ 25.600 21.100
+ -7614046.852 5 -5933023.481 4 23156542.661 23156540.061 23156542.294
+ 30.200 27.600
+ -22890482.167 7 -17836731.295 8 20243654.086 20243650.708 20243652.995
+ 43.300 49.600
+ -6957057.704 5 -5421087.391 4 23323827.945 23323826.234 23323826.711
+ 31.000 24.900
+ -20510315.584 7 -15982063.708 7 20757438.192 20757432.541 20757436.839
+ 47.500 43.200
+ -11382389.705 7 -8869389.498 6 22036132.610 22036130.175 22036131.930
+ 44.400 36.700
+ 06 1 1 10 51 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -7005032.765 5 -5458465.927 4 22925600.364 22925597.574 22925598.721
+ 33.100 27.900
+ -5600515.271 4 -4364035.063 3 23490818.415 23490817.007 23490817.043
+ 28.600 23.000
+ -2871103.802 4 -2237220.401 3 24169136.228 24169134.533 24169135.237
+ 25.300 23.400
+ -7807664.448 5 -6083894.362 4 23119698.490 23119695.724 23119698.299
+ 31.300 26.800
+ -22882873.044 7 -17830802.102 8 20245102.239 20245098.676 20245101.064
+ 43.500 49.500
+ -6787973.593 5 -5289333.610 4 23356003.875 23356001.992 23356002.675
+ 31.300 24.200
+ -20601073.628 7 -16052784.258 7 20740167.256 20740161.723 20740166.025
+ 47.600 43.400
+ -11263491.621 7 -8776741.646 6 22058758.178 22058755.827 22058757.395
+ 44.200 36.300
+ 06 1 1 10 52 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6807461.092 5 -5304514.023 4 22963195.535 22963194.082 22963194.878
+ 32.400 26.200
+ -5818808.641 5 -4534133.700 3 23449278.288 23449276.755 23449277.236
+ 30.400 20.500
+ -2747143.339 4 -2140627.811 3 24192726.101 24192723.671 24192724.944
+ 28.100 23.800
+ -8000347.698 5 -6234037.142 4 23083031.931 23083029.265 23083031.839
+ 32.400 26.800
+ -22873267.690 7 -17823317.407 8 20246929.955 20246926.540 20246928.852
+ 43.500 49.600
+ -6617774.863 4 -5156711.296 3 23388391.057 23388389.745 23388389.923
+ 29.000 23.000
+ -20689789.137 7 -16121913.229 7 20723285.201 20723279.623 20723283.998
+ 47.500 43.200
+ -11143779.302 7 -8683459.335 6 22081538.014 22081536.191 22081537.734
+ 44.000 36.200
+ 06 1 1 10 53 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6608868.778 5 -5149766.774 4 23000985.253 23000985.778 23000985.649
+ 33.000 28.600
+ -6036564.857 4 -4703813.835 3 23407839.511 23407838.940 23407839.110
+ 27.400 23.000
+ -2621480.201 4 -2042708.509 2 24216638.924 24216635.576 24216638.147
+ 28.400 17.800
+ -8192076.546 5 -6383436.255 4 23046547.300 23046544.383 23046546.956
+ 31.000 27.100
+ -22861674.045 7 -17814283.393 8 20249136.132 20249132.824 20249135.024
+ 43.700 49.700
+ -6446486.821 4 -5023240.143 3 23420986.662 23420984.431 23420985.324
+ 29.900 21.100
+ -20776446.961 7 -16189438.803 7 20706794.919 20706789.424 20706793.647
+ 47.500 43.800
+ -11023254.815 7 -8589544.160 6 22104473.727 22104471.469 22104472.979
+ 43.800 36.200
+ 06 1 1 10 54 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6409270.340 5 -4994235.564 4 23038968.744 23038967.388 23038967.838
+ 31.600 26.500
+ -6253759.934 4 -4873056.607 4 23366509.163 23366508.568 23366508.105
+ 26.800 25.600
+ -2494129.668 4 -1943474.318 3 24240872.446 24240870.461 24240871.752
+ 25.300 18.600
+ -8382830.346 5 -6532075.568 4 23010248.228 23010245.344 23010248.082
+ 33.400 28.600
+ -22848099.489 7 -17803705.809 8 20251719.374 20251715.877 20251718.206
+ 43.600 49.600
+ -6274134.046 4 -4888939.349 3 23453783.839 23453782.099 23453782.745
+ 28.100 19.300
+ -20861031.475 7 -16255348.815 7 20690698.942 20690693.513 20690697.635
+ 47.400 43.800
+ -10901920.109 7 -8494997.657 6 22127562.944 22127560.720 22127562.311
+ 44.000 36.300
+ 06 1 1 10 55 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6208680.814 5 -4837932.086 4 23077140.856 23077138.728 23077139.364
+ 31.500 26.500
+ -6470369.743 5 -5041843.373 4 23325290.845 23325289.173 23325289.485
+ 31.600 25.900
+ -2365107.424 4 -1842937.518 3 24265424.297 24265422.159 24265423.117
+ 24.900 19.900
+ -8572588.614 5 -6679939.164 4 22974139.067 22974135.528 22974138.497
+ 33.800 28.400
+ -22832551.966 7 -17791590.852 8 20254677.873 20254674.489 20254676.809
+ 43.900 49.500
+ -6100742.019 4 -4753828.732 2 23486779.434 23486777.453 23486778.299
+ 29.200 16.100
+ -20943526.967 7 -16319631.016 7 20675000.609 20674995.083 20674999.306
+ 47.300 43.800
+ -10779777.368 7 -8399821.515 6 22150806.112 22150803.677 22150805.326
+ 43.600 36.400
+ 06 1 1 10 56 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -6007114.828 5 -4680867.736 4 23115495.848 23115495.460 23115495.719
+ 31.300 26.800
+ -6686370.489 4 -5210155.524 3 23284186.824 23284184.743 23284185.682
+ 28.800 23.400
+ -2234429.036 4 -1741110.189 3 24290291.493 24290289.866 24290290.638
+ 25.900 19.900
+ -8761330.461 5 -6827010.739 4 22938221.974 22938219.310 22938221.727
+ 32.800 29.500
+ -22815039.422 7 -17777944.707 8 20258010.633 20258006.989 20258009.487
+ 43.800 49.400
+ -5926335.647 5 -4617927.709 3 23519968.365 23519966.209 23519967.234
+ 31.500 19.900
+ -21023918.610 7 -16382273.849 7 20659702.515 20659697.055 20659701.302
+ 47.300 43.900
+ -10656828.637 7 -8304017.327 6 22174202.690 22174200.330 22174201.765
+ 43.500 36.500
+ 06 1 1 10 57 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5804587.256 5 -4523054.079 4 23154036.371 23154035.324 23154035.557
+ 31.600 26.500
+ -6901738.278 4 -5377974.452 4 23243203.892 23243202.189 23243202.207
+ 28.800 28.600
+ -2102110.124 4 -1638004.530 2 24315470.914 24315468.494 24315470.318
+ 27.600 16.100
+ -8949035.596 5 -6973274.495 4 22902503.296 22902500.011 22902502.751
+ 34.000 28.800
+ -22795570.246 7 -17762773.913 8 20261715.217 20261711.816 20261714.182
+ 43.900 49.400
+ -5750939.958 5 -4481255.816 3 23553345.194 23553343.165 23553343.870
+ 31.600 22.100
+ -21102191.469 7 -16443265.686 7 20644807.868 20644802.328 20644806.607
+ 47.600 44.200
+ -10533075.859 7 -8207586.608 5 22197751.846 22197749.324 22197750.966
+ 43.000 35.600
+ 06 1 1 10 58 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5601112.699 5 -4364502.512 4 23192756.939 23192755.177 23192755.899
+ 31.600 26.500
+ -7116448.792 5 -5545281.211 4 23202345.264 23202343.735 23202344.234
+ 32.100 26.500
+ -1968166.943 4 -1533633.253 3 24340959.344 24340957.282 24340958.609
+ 26.200 18.600
+ -9135683.063 5 -7118714.074 4 22866985.205 22866982.411 22866984.728
+ 32.800 29.200
+ -22774153.137 7 -17746085.249 8 20265790.721 20265787.397 20265789.646
+ 43.700 49.500
+ -5574580.353 5 -4343832.819 3 23586905.298 23586903.439 23586904.153
+ 30.800 22.600
+ -21178330.883 7 -16502595.102 7 20630318.882 20630313.430 20630317.677
+ 47.700 44.300
+ -10408521.325 7 -8110531.133 5 22221453.163 22221451.435 22221452.771
+ 42.900 35.600
+ 06 1 1 10 59 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5396706.508 5 -4205225.001 4 23231653.242 23231652.611 23231652.592
+ 30.200 25.600
+ -7330477.861 5 -5712056.999 4 23161616.663 23161615.439 23161615.269
+ 31.100 26.500
+ -1832615.758 4 -1428008.959 3 24366754.137 24366752.178 24366753.628
+ 25.600 21.100
+ -9321252.572 5 -7263313.694 4 22831672.440 22831669.828 22831672.103
+ 33.100 29.700
+ -22750797.396 7 -17727885.966 8 20270235.213 20270231.890 20270234.092
+ 43.700 49.400
+ -5397281.968 4 -4205678.277 3 23620644.049 23620642.297 23620642.711
+ 29.700 22.600
+ -21252322.551 7 -16560250.944 7 20616238.844 20616233.330 20616237.496
+ 47.200 44.200
+ -10283166.786 7 -8012852.280 5 22245308.033 22245305.483 22245307.135
+ 42.500 35.100
+ 06 1 1 11 0 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -5191383.874 5 -4045233.387 4 23270724.526 23270724.098 23270724.309
+ 30.400 24.200
+ -7543801.461 5 -5878283.116 4 23121023.367 23121021.048 23121021.673
+ 30.800 25.300
+ -1695472.855 4 -1321144.361 3 24392852.696 24392849.873 24392851.484
+ 26.200 19.900
+ -9505722.678 5 -7407056.610 5 22796568.888 22796566.219 22796568.648
+ 34.800 30.400
+ -22725510.483 7 -17708181.872 8 20275046.952 20275043.839 20275045.834
+ 43.600 49.400
+ -5219070.169 4 -4066812.024 3 23654555.944 23654554.761 23654555.064
+ 25.600 22.600
+ -21324152.152 7 -16616222.059 7 20602569.847 20602564.599 20602568.699
+ 47.400 44.400
+ -10157014.648 7 -7914551.927 5 22269313.668 22269311.487 22269313.081
+ 42.600 34.700
+ 06 1 1 11 1 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4985160.045 5 -3884539.538 4 23309968.597 23309967.009 23309967.789
+ 30.800 25.300
+ -7756395.824 5 -6043940.918 4 23080567.175 23080565.357 23080565.718
+ 31.000 26.500
+ -1556754.783 3 -1213052.376 2 24419248.242 24419246.190 24419247.642
+ 23.000 12.600
+ -9689072.304 5 -7549926.468 5 22761678.514 22761675.915 22761678.432
+ 35.500 30.100
+ -22698302.273 7 -17686980.666 8 20280224.694 20280221.265 20280223.575
+ 43.600 49.300
+ -5039969.422 4 -3927253.074 3 23688638.612 23688636.436 23688637.110
+ 27.900 19.900
+ -21393805.751 7 -16670497.584 7 20589315.348 20589309.840 20589314.071
+ 47.200 44.300
+ -10030066.900 7 -7815631.620 5 22293471.074 22293468.600 22293470.375
+ 42.500 34.500
+ 06 1 1 11 2 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4778050.420 4 -3723155.473 4 23349379.769 23349378.786 23349379.130
+ 29.200 24.600
+ -7968237.027 5 -6209011.910 4 23040254.675 23040253.375 23040253.757
+ 31.100 27.100
+ -1416478.381 4 -1103746.079 3 24445942.825 24445940.930 24445941.948
+ 25.900 19.300
+ -9871281.014 5 -7691907.302 5 22727005.222 22727002.649 22727005.036
+ 35.400 30.200
+ -22669182.233 7 -17664289.724 8 20285765.996 20285762.680 20285764.877
+ 43.800 49.300
+ -4860005.831 4 -3787021.778 2 23722884.164 23722882.319 23722883.017
+ 29.000 13.900
+ -21461269.764 7 -16723066.946 7 20576477.143 20576471.985 20576475.963
+ 47.100 44.600
+ -9902325.686 7 -7716093.020 5 22317779.852 22317777.097 22317778.877
+ 42.500 34.500
+ 06 1 1 11 3 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4570070.149 4 -3561092.950 3 23388956.454 23388956.387 23388956.250
+ 27.600 23.400
+ -8179300.371 5 -6373476.778 4 23000090.784 23000089.349 23000089.766
+ 32.300 26.800
+ -1274660.201 4 -993238.413 3 24472929.130 24472928.252 24472928.678
+ 25.900 21.600
+ -10052327.641 5 -7832982.593 5 22692553.896 22692550.879 22692553.501
+ 35.600 31.500
+ -22638159.806 7 -17640116.399 8 20291669.403 20291666.105 20291668.318
+ 44.100 49.300
+ -4679204.483 4 -3646137.653 1 23757289.373 23757287.760 23757287.940
+ 25.300 6.500
+ -21526530.388 7 -16773919.379 7 20564058.763 20564053.208 20564057.379
+ 47.100 44.700
+ -9773793.093 7 -7615937.769 5 22342238.099 22342236.166 22342237.595
+ 42.100 34.500
+ 06 1 1 11 4 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4361234.765 4 -3398364.126 4 23428697.663 23428696.438 23428696.652
+ 29.000 24.600
+ -8389561.712 5 -6537316.728 4 22960078.692 22960078.029 22960077.900
+ 32.600 28.100
+ -1131317.333 4 -881542.654 2 24500206.744 24500205.206 24500206.009
+ 26.800 17.000
+ -10232191.538 5 -7973136.280 5 22658326.362 22658323.707 22658325.934
+ 34.700 31.000
+ -22605244.753 7 -17614468.302 8 20297932.782 20297929.528 20297931.736
+ 44.100 49.100
+ -4497590.791 4 -3504620.557 2 23791849.932 23791847.855 23791848.517
+ 28.600 17.000
+ -21589575.342 7 -16823045.313 7 20552061.602 20552056.193 20552060.340
+ 47.100 44.700
+ -9644471.336 6 -7515167.571 5 22366847.222 22366845.189 22366846.728
+ 41.900 34.000
+ 06 1 1 11 5 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -4151560.032 4 -3234981.273 4 23468597.641 23468596.034 23468596.744
+ 29.500 24.600
+ -8598997.221 5 -6700513.139 4 22920225.173 22920223.578 22920224.078
+ 33.600 28.100
+ -986466.823 4 -768672.166 2 24527771.513 24527768.998 24527770.769
+ 24.900 17.800
+ -10410851.161 5 -8112351.579 5 22624328.367 22624325.888 22624328.168
+ 34.800 31.300
+ -22570446.952 7 -17587353.125 8 20304554.608 20304551.304 20304553.521
+ 44.000 49.100
+ -4315189.966 4 -3362490.107 3 23826559.636 23826558.108 23826558.359
+ 28.600 21.100
+ -21650390.867 7 -16870434.030 7 20540488.888 20540483.303 20540487.603
+ 47.200 44.700
+ -9514362.478 6 -7413784.071 5 22391606.419 22391604.503 22391605.584
+ 41.300 34.800
+ 06 1 1 11 6 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3941061.396 4 -3070956.439 4 23508654.362 23508652.749 23508653.319
+ 29.700 24.900
+ -8807582.799 5 -6863047.293 4 22880532.750 22880531.048 22880531.605
+ 33.100 28.400
+ -840126.097 4 -654640.440 2 24555618.707 24555616.830 24555617.989
+ 24.200 17.800
+ -10588285.675 6 -8250612.234 5 22590564.378 22590561.130 22590564.048
+ 37.400 31.800
+ -22533776.368 7 -17558778.643 8 20311532.859 20311529.535 20311531.785
+ 44.100 48.900
+ -4132027.016 4 -3219765.796 3 23861414.487 23861412.994 23861413.295
+ 26.500 23.400
+ -21708964.819 7 -16916076.071 7 20529342.646 20529337.117 20529341.460
+ 47.500 44.800
+ -9383468.986 6 -7311789.152 5 22416514.471 22416512.080 22416513.879
+ 41.800 33.100
+ 06 1 1 11 7 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3729754.962 4 -2906302.115 3 23548864.889 23548863.152 23548863.383
+ 27.900 23.000
+ -9015294.575 5 -7024900.566 4 22841006.557 22841004.616 22841005.109
+ 31.600 27.900
+ -692312.374 3 -539460.926 2 24583746.441 24583744.830 24583745.830
+ 23.000 16.100
+ -10764474.118 6 -8387901.928 5 22557036.487 22557033.891 22557036.281
+ 36.500 31.600
+ -22495243.170 7 -17528752.771 8 20318865.543 20318862.170 20318864.474
+ 44.400 49.000
+ -3948127.513 4 -3076467.583 3 23896409.303 23896407.927 23896408.080
+ 25.900 21.600
+ -21765284.954 7 -16959961.891 7 20518625.337 20518619.764 20518624.031
+ 47.400 44.800
+ -9251792.720 6 -7209184.287 5 22441572.168 22441569.940 22441571.390
+ 41.600 34.300
+ 06 1 1 11 8 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3517656.560 4 -2741030.684 4 23589225.038 23589224.556 23589224.486
+ 27.900 24.200
+ -9222107.845 5 -7186053.703 4 22801650.495 22801649.309 22801649.613
+ 33.600 26.500
+ -543043.044 3 -423147.145 3 24612151.444 24612149.605 24612150.662
+ 22.600 18.600
+ -10939395.640 6 -8524204.423 5 22523750.167 22523746.959 22523749.739
+ 36.400 30.800
+ -22454858.102 7 -17497283.884 8 20326550.443 20326547.223 20326549.356
+ 44.500 49.000
+ -3763516.523 4 -2932614.934 3 23931539.181 23931537.743 23931538.380
+ 26.500 19.300
+ -21819338.994 7 -17002081.921 7 20508339.130 20508333.609 20508337.882
+ 47.200 44.900
+ -9119336.034 6 -7105971.289 5 22466776.902 22466775.150 22466776.611
+ 41.000 33.200
+ 06 1 1 11 9 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3304782.066 4 -2575154.520 3 23629734.636 23629732.972 23629733.388
+ 28.800 23.400
+ -9427998.434 5 -7346487.889 4 22762470.516 22762469.729 22762470.135
+ 34.000 29.000
+ -392335.970 3 -305713.102 3 24640829.745 24640828.401 24640829.243
+ 22.600 19.900
+ -11113028.122 6 -8659502.452 5 22490708.867 22490706.048 22490708.588
+ 37.600 32.000
+ -22412631.398 7 -17464379.954 8 20334585.847 20334582.635 20334584.794
+ 44.500 48.900
+ -3578219.413 4 -2788227.670 3 23966800.295 23966798.986 23966799.200
+ 24.900 19.300
+ -21871115.324 7 -17042427.112 7 20498486.447 20498481.021 20498485.192
+ 47.400 45.100
+ -8986101.187 6 -7002151.941 5 22492131.393 22492129.162 22492130.662
+ 40.800 34.000
+ 06 1 1 11 10 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -3091147.064 4 -2408685.735 2 23670386.581 23670386.077 23670386.434
+ 27.600 17.800
+ -9632942.563 5 -7506184.553 4 22723471.990 22723469.877 22723470.513
+ 34.100 28.600
+ -240208.775 3 -187172.435 2 24669779.528 24669776.861 24669778.638
+ 23.400 17.800
+ -11285351.393 6 -8793780.334 5 22457916.941 22457913.882 22457916.670
+ 37.600 31.600
+ -22368574.125 7 -17430049.608 8 20342969.602 20342966.511 20342968.579
+ 44.600 48.900
+ -3392261.195 4 -2643325.231 2 24002187.680 24002185.760 24002186.267
+ 28.100 17.800
+ -21920602.672 7 -17080988.684 7 20489069.363 20489063.737 20489068.016
+ 47.100 45.000
+ -8852090.455 6 -6897728.013 5 22517632.798 22517630.680 22517631.966
+ 40.300 33.400
+ 06 1 1 11 11 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2876767.874 4 -2241637.032 3 23711183.191 23711181.463 23711181.626
+ 25.900 20.500
+ -9836916.030 5 -7665124.859 5 22684657.128 22684655.267 22684655.632
+ 33.500 30.200
+ -86679.217 4 -67539.057 3 24698994.770 24698993.134 24698994.347
+ 25.300 19.900
+ -11456343.634 6 -8927021.043 5 22425378.328 22425375.454 22425377.981
+ 37.700 33.000
+ -22322697.307 7 -17394301.435 8 20351699.902 20351696.654 20351698.767
+ 44.500 48.900
+ -3205667.584 4 -2497927.666 2 24037694.915 24037693.212 24037693.807
+ 25.600 17.000
+ -21967789.708 7 -17117757.803 7 20480089.840 20480084.239 20480088.593
+ 47.100 44.700
+ -8717306.039 6 -6792701.209 5 22543281.898 22543279.073 22543280.818
+ 40.300 32.800
+ 06 1 1 11 12 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2661660.102 4 -2074020.702 3 23752115.351 23752115.536 23752114.992
+ 25.600 23.800
+ -10039894.647 5 -7823289.928 4 22646029.937 22646029.364 22646029.788
+ 34.600 29.000
+ 68234.751 3 53173.112 3 24728474.010 24728472.632 24728473.122
+ 23.800 18.600
+ -11625984.130 6 -9059208.438 5 22393096.409 22393093.939 22393096.234
+ 38.100 33.100
+ -22275011.611 7 -17357143.749 8 20360774.101 20360770.896 20360772.974
+ 44.800 48.700
+ -3018463.726 4 -2352054.585 1 24073318.588 24073316.901 24073317.396
+ 27.600 6.500
+ -22012665.643 7 -17152726.064 7 20471550.306 20471544.745 20471549.066
+ 47.300 44.900
+ -8581750.252 6 -6687073.349 5 22569076.991 22569074.589 22569076.091
+ 40.100 33.400
+ 06 1 1 11 13 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2445840.303 4 -1905849.460 3 23793185.478 23793184.570 23793184.314
+ 27.400 23.400
+ -10241854.720 6 -7980661.380 5 22607599.579 22607598.030 22607598.259
+ 36.000 30.800
+ 224514.856 3 174949.829 3 24758212.875 24758212.390 24758211.773
+ 19.300 20.500
+ -11794252.130 6 -9190326.366 5 22361076.611 22361073.382 22361076.233
+ 39.200 32.600
+ -22225528.107 7 -17318585.168 8 20370190.555 20370187.240 20370189.421
+ 44.800 48.600
+ -2830673.923 4 -2205724.939 1 24109054.331 24109052.053 24109053.242
+ 25.600 6.500
+ -22055220.165 7 -17185885.430 7 20463452.379 20463446.801 20463451.142
+ 47.200 44.900
+ -8445425.528 6 -6580846.312 5 22595018.344 22595016.297 22595017.743
+ 40.000 32.600
+ 06 1 1 11 14 0.0000000 0 8G01G03G06G13G16G20G23G25
+ -2229324.850 4 -1737136.202 3 23834384.727 23834386.168 23834385.730
+ 25.600 21.100
+ -10442771.949 5 -8137220.204 5 22569366.324 22569364.642 22569364.975
+ 35.700 31.000
+ 382143.343 3 297777.227 3 24788209.196 24788207.620 24788208.601
+ 22.100 20.500
+ -11961126.100 6 -9320358.034 5 22329321.137 22329318.225 22329320.866
+ 37.700 32.700
+ -22174258.682 7 -17278634.966 8 20379946.509 20379943.520 20379945.479
+ 44.800 48.600
+ -2642324.396 4 -2058959.118 2 24144895.593 24144894.362 24144894.315
+ 24.600 16.100
+ -22095442.768 7 -17217227.720 7 20455798.260 20455792.814 20455797.032
+ 46.900 45.100
+ -8308334.217 6 -6474021.933 5 22621106.319 22621103.903 22621105.742
+ 40.500 32.300
+ 06 1 1 11 15 0.0000000 0 7G01G03G13G16G20G23G25
+ -2012130.071 3 -1567893.576 2 23875717.773 23875716.458 23875716.671
+ 23.400 17.800
+ -10642622.239 5 -8292947.628 5 22531334.924 22531334.103 22531334.453
+ 35.400 31.000
+ -12126584.863 6 -9449286.937 5 22297835.731 22297832.611 22297835.371
+ 38.700 33.100
+ -22121215.055 7 -17237302.267 8 20390040.546 20390037.416 20390039.530
+ 45.200 48.600
+ -2453439.798 4 -1911776.416 3 24180840.279 24180837.593 24180838.646
+ 25.900 19.300
+ -22133323.830 7 -17246745.431 7 20448589.823 20448584.160 20448588.621
+ 47.300 45.100
+ -8170478.680 6 -6366602.050 5 22647338.897 22647336.898 22647338.443
+ 40.000 31.800
+ 06 1 1 11 16 0.0000000 0 7G01G03G13G16G20G23G25
+ -1794272.445 4 -1398134.444 3 23917173.159 23917173.870 23917173.468
+ 26.500 20.500
+ -10841381.676 5 -8447825.071 5 22493514.081 22493511.207 22493512.315
+ 35.500 30.400
+ -12290607.335 6 -9577096.663 5 22266622.831 22266620.170 22266622.610
+ 38.600 33.600
+ -22066408.191 7 -17194595.615 8 20400469.894 20400466.728 20400468.907
+ 45.400 48.300
+ -2264045.159 4 -1764196.265 2 24216879.913 24216878.319 24216878.753
+ 25.600 17.800
+ -22168854.167 7 -17274431.406 7 20441828.716 20441823.089 20441827.473
+ 47.100 45.200
+ -8031861.283 6 -6258588.507 5 22673717.187 22673715.048 22673716.365
+ 39.700 32.100
+ 06 1 1 11 17 0.0000000 0 7G01G03G13G16G20G23G25
+ -1575768.438 4 -1227871.636 2 23958755.751 23958753.643 23958754.011
+ 24.600 17.800
+ -11039026.467 6 -8601833.960 5 22455901.862 22455900.768 22455901.254
+ 36.600 31.500
+ -12453172.852 6 -9703771.091 5 22235687.419 22235685.234 22235687.266
+ 38.600 35.100
+ -22009850.095 7 -17150524.371 8 20411232.665 20411229.391 20411231.594
+ 45.400 48.200
+ -2074165.954 3 -1616238.488 2 24253012.664 24253011.444 24253011.442
+ 22.600 17.000
+ -22202024.445 7 -17300278.379 7 20435516.472 20435510.812 20435515.265
+ 47.000 44.900
+ -7892484.458 6 -6149983.223 5 22700240.378 22700237.609 22700239.259
+ 39.300 32.300
+ 06 1 1 11 18 0.0000000 0 7G01G03G13G16G20G23G25
+ -1356634.502 4 -1057117.976 2 24000454.506 24000453.031 24000453.932
+ 26.800 17.800
+ -11235532.621 6 -8754955.593 5 22418508.729 22418506.825 22418507.479
+ 36.500 31.500
+ -12614260.086 6 -9829293.608 5 22205033.911 22205030.970 22205033.579
+ 38.900 33.800
+ -21951552.627 7 -17105097.771 8 20422326.201 20422323.029 20422325.204
+ 45.500 48.100
+ -1883826.303 3 -1467921.951 2 24289233.144 24289231.577 24289232.168
+ 23.400 12.600
+ -22232825.104 7 -17324278.898 7 20429655.319 20429649.718 20429654.065
+ 47.000 45.100
+ -7752350.729 6 -6040788.133 5 22726906.534 22726903.969 22726905.614
+ 38.900 31.300
+ 06 1 1 11 19 0.0000000 0 7G01G03G13G16G20G23G25
+ -1136886.843 4 -885886.104 3 24042271.817 24042269.937 24042270.810
+ 25.300 20.500
+ -11430876.681 6 -8907171.702 5 22381336.451 22381333.982 22381334.990
+ 37.300 31.800
+ -12773847.878 6 -9953647.752 5 22174665.468 22174662.551 22174665.130
+ 39.300 34.000
+ -21891528.120 7 -17058325.423 7 20433748.476 20433745.258 20433747.506
+ 45.600 47.900
+ -1693051.748 3 -1319266.480 1 24325536.255 24325535.120 24325535.264
+ 21.600 11.000
+ -22261248.325 7 -17346426.861 7 20424246.620 20424240.985 20424245.410
+ 47.000 45.100
+ -7611462.547 6 -5931005.177 5 22753716.140 22753714.540 22753715.448
+ 37.900 32.100
+ 06 1 1 11 20 0.0000000 0 7G01G03G13G16G20G23G25
+ -916542.254 3 -714189.060 3 24084200.312 24084200.861 24084200.634
+ 23.400 20.500
+ -11625034.315 6 -9058463.317 5 22344388.564 22344386.976 22344387.507
+ 36.800 30.800
+ -12931915.457 6 -10076817.286 5 22144586.061 22144583.339 22144585.819
+ 39.700 34.600
+ -21829788.479 7 -17010216.609 7 20445497.251 20445493.910 20445496.193
+ 45.700 47.800
+ -1501866.909 3 -1170291.308 2 24361917.833 24361916.367 24361916.629
+ 23.000 13.900
+ -22287286.092 7 -17366716.030 7 20419291.766 20419286.189 20419290.557
+ 46.900 45.100
+ -7469822.527 6 -5820636.362 5 22780670.217 22780667.739 22780669.228
+ 38.600 31.500
+ 06 1 1 11 21 0.0000000 0 7G01G03G13G16G20G23G25
+ -695617.187 4 -542039.780 3 24126242.197 24126241.628 24126241.612
+ 24.900 22.100
+ -11817982.543 6 -9208812.536 5 22307671.527 22307670.499 22307670.614
+ 37.200 32.400
+ -13088442.009 6 -10198786.038 5 22114800.304 22114797.233 22114799.921
+ 40.100 34.600
+ -21766346.191 7 -16960781.059 7 20457569.894 20457566.652 20457568.746
+ 45.900 47.700
+ -1310296.769 3 -1021015.924 2 24398372.646 24398371.027 24398371.229
+ 23.400 15.100
+ -22310929.821 7 -17385139.722 7 20414792.631 20414787.047 20414791.338
+ 46.800 45.400
+ -7327433.159 6 -5709683.625 5 22807766.252 22807763.443 22807765.175
+ 38.400 31.500
+ 06 1 1 11 22 0.0000000 0 7G01G03G13G16G20G23G25
+ -474128.097 3 -369450.975 3 24168390.358 24168389.746 24168389.379
+ 22.100 20.500
+ -12009697.407 6 -9358200.677 5 22271189.176 22271188.032 22271188.236
+ 37.600 32.400
+ -13243406.617 6 -10319537.682 5 22085311.435 22085308.590 22085311.149
+ 40.200 35.200
+ -21701213.864 7 -16910028.589 7 20469964.353 20469960.929 20469963.255
+ 46.100 47.700
+ -1118366.221 3 -871459.688 1 24434894.909 24434893.732 24434894.278
+ 23.800 6.500
+ -22332172.740 7 -17401692.650 7 20410750.208 20410744.605 20410748.950
+ 46.900 45.300
+ -7184297.012 6 -5598148.993 5 22835004.062 22835001.041 22835002.899
+ 37.900 30.800
+ 06 1 1 11 23 0.0000000 0 7G01G03G13G16G20G23G25
+ -252092.213 4 -196436.068 2 24210642.226 24210641.243 24210641.434
+ 24.900 13.900
+ -12200155.142 6 -9506609.259 5 22234945.906 22234944.926 22234945.515
+ 38.100 32.400
+ -13396788.569 6 -10439056.078 5 22056123.834 22056120.895 22056123.463
+ 40.200 35.200
+ -21634403.240 7 -16857968.365 7 20482677.776 20482674.533 20482676.771
+ 46.300 47.400
+ -926099.561 3 -721641.488 2 24471482.575 24471481.493 24471481.276
+ 19.900 15.100
+ -22351007.673 7 -17416369.226 7 20407165.663 20407160.464 20407164.485
+ 46.500 45.300
+ -7040416.916 6 -5486034.676 5 22862382.977 22862380.851 22862382.297
+ 37.800 30.600
+ 06 1 1 11 24 0.0000000 0 7G01G03G13G16G20G23G25
+ -29526.229 4 -23008.051 1 24252994.753 24252993.400 24252994.851
+ 26.200 9.000
+ -12389332.709 6 -9654020.303 5 22198947.854 22198945.657 22198946.490
+ 38.600 32.700
+ -13548566.846 6 -10557324.881 5 22027241.324 22027238.319 22027241.044
+ 41.000 35.200
+ -21565927.543 7 -16804610.676 7 20495708.226 20495705.026 20495707.194
+ 46.200 47.400
+ -733521.866 3 -571581.046 2 24508128.427 24508127.929 24508127.183
+ 23.800 13.900
+ -22367427.847 7 -17429164.168 7 20404041.123 20404035.721 20404039.929
+ 46.500 45.200
+ -6895795.302 6 -5373342.526 5 22889902.769 22889901.584 22889902.652
+ 37.000 30.400
+ 06 1 1 11 25 0.0000000 0 7G01G03G13G16G20G23G25
+ 193553.102 3 150819.971 2 24295447.576 24295445.325 24295445.806
+ 23.400 12.600
+ -12577206.416 6 -9800415.345 5 22163195.594 22163194.153 22163194.951
+ 38.600 31.800
+ -13698721.145 6 -10674328.224 5 21998668.187 21998664.989 21998667.860
+ 41.300 35.700
+ -21495799.466 7 -16749965.419 7 20509053.189 20509049.952 20509052.050
+ 45.800 47.100
+ -540657.497 4 -421297.092 2 24544829.782 24544828.838 24544828.571
+ 25.900 12.600
+ -22381426.733 7 -17440072.394 7 20401377.439 20401371.843 20401376.247
+ 46.800 45.200
+ -6750435.017 6 -5260074.813 4 22917564.789 22917562.310 22917564.193
+ 37.100 29.500
+ 06 1 1 11 26 0.0000000 0 7G01G03G13G16G20G23G25
+ 417128.529 3 325034.476 3 24337989.991 24337990.825 24337989.529
+ 20.500 23.800
+ -12763752.951 6 -9945776.230 5 22127697.040 22127695.756 22127696.352
+ 38.800 33.500
+ -13847230.442 6 -10790049.754 6 21970407.392 21970404.783 21970407.094
+ 40.800 36.200
+ -21424031.507 7 -16694042.334 7 20522710.075 20522706.934 20522709.023
+ 46.100 46.800
+ -347530.924 2 -270808.913 2 24581580.961 24581579.482 24581579.776
+ 17.800 12.600
+ -22392998.605 7 -17449089.439 7 20399175.306 20399169.680 20399174.055
+ 46.600 45.100
+ -6604338.739 6 -5146233.589 5 22945365.694 22945364.086 22945365.032
+ 36.500 31.000
+ 06 1 1 11 27 0.0000000 0 7G01G03G13G16G20G23G25
+ 641183.368 3 499622.506 3 24380626.025 24380627.148 24380625.967
+ 19.300 21.600
+ -12948949.547 6 -10090085.195 5 22092455.941 22092453.865 22092454.791
+ 39.700 33.400
+ -13994075.395 6 -10904474.385 5 21942463.733 21942460.925 21942463.467
+ 41.100 35.600
+ -21350636.568 7 -16636851.471 7 20536676.806 20536673.517 20536675.780
+ 46.500 46.600
+ -154166.674 3 -120135.543 1 24618377.191 24618375.288 24618375.480
+ 21.100 11.000
+ -22402137.626 7 -17456210.756 7 20397436.115 20397430.736 20397434.867
+ 46.500 45.300
+ -6457509.235 6 -5031821.024 5 22973307.039 22973304.601 22973306.170
+ 37.100 30.400
+ 06 1 1 11 28 0.0000000 0 7G01G03G13G16G20G23G25
+ 865700.856 4 674571.142 2 24423351.917 24423350.633 24423351.184
+ 24.600 12.600
+ -13132772.312 6 -10233323.662 5 22057474.320 22057473.538 22057474.116
+ 39.300 33.200
+ -14139234.214 6 -11017585.158 6 21914841.285 21914838.300 21914840.931
+ 41.600 36.300
+ -21275627.908 7 -16578403.160 7 20550950.620 20550947.201 20550949.492
+ 46.800 46.600
+ 39411.084 3 30704.247 2 24655213.798 24655212.258 24655212.493
+ 21.100 15.100
+ -22408838.531 7 -17461432.242 7 20396161.111 20396155.612 20396159.964
+ 46.700 45.400
+ -6309949.314 6 -4916839.314 5 23001385.833 23001384.345 23001385.545
+ 36.100 30.200
+ 06 1 1 11 29 0.0000000 0 7G01G03G13G16G20G23G25
+ 1090664.169 3 849867.166 2 24466161.872 24466159.297 24466159.903
+ 19.900 12.600
+ -13315198.829 6 -10375474.149 5 22022760.345 22022759.318 22022759.611
+ 39.800 34.800
+ -14282686.823 6 -11129366.411 6 21887543.016 21887540.184 21887542.682
+ 41.900 36.200
+ -21199018.463 7 -16518707.485 7 20565528.603 20565525.481 20565527.551
+ 46.700 46.500
+ 233177.900 3 181691.348 1 24692086.307 24692084.808 24692085.327
+ 18.600 11.000
+ -22413096.461 7 -17464750.115 7 20395350.914 20395345.321 20395349.704
+ 46.800 45.300
+ -6161662.013 6 -4801290.806 4 23029604.527 23029602.407 23029604.023
+ 36.100 29.000
+ 06 1 1 11 30 0.0000000 0 7G01G03G13G16G20G23G25
+ 1316056.334 2 1025497.306 2 24509050.034 24509050.695 24509049.535
+ 17.000 13.900
+ -13496206.231 6 -10516518.818 5 21988316.225 21988314.050 21988315.039
+ 39.600 33.200
+ -14424413.209 7 -11239802.562 6 21860573.280 21860570.358 21860573.002
+ 42.100 36.200
+ -21120821.639 7 -16457774.894 7 20580409.103 20580405.700 20580408.106
+ 46.900 46.200
+ 427109.624 3 332806.996 1 24728990.505 24728989.129 24728989.294
+ 23.400 11.000
+ -22414906.908 7 -17466160.856 7 20395006.267 20395000.750 20395005.208
+ 46.600 45.200
+ -6012649.946 6 -4685177.548 4 23057961.001 23057958.498 23057960.049
+ 36.500 29.200
+ 06 1 1 11 31 0.0000000 0 6G01G03G13G16G23G25
+ 1541860.301 3 1201448.372 1 24552020.075 24552019.195 24552019.725
+ 23.000 11.000
+ -13675771.330 6 -10656439.639 5 21954146.066 21954143.988 21954144.992
+ 40.100 33.500
+ -14564393.398 6 -11348878.036 6 21833935.845 21833933.295 21833935.501
+ 41.200 37.000
+ -21041050.457 7 -16395615.528 7 20595589.194 20595585.710 20595588.082
+ 46.900 46.100
+ -22414265.794 7 -17465661.288 7 20395128.334 20395122.811 20395127.109
+ 46.500 45.100
+ -5862916.246 5 -4568501.967 4 23086453.663 23086452.300 23086453.312
+ 35.600 28.800
+ 06 1 1 11 32 0.0000000 0 6G01G03G13G16G23G25
+ 1768059.007 3 1377706.983 1 24595063.587 24595063.276 24595063.872
+ 18.600 9.000
+ -13853871.521 6 -10795218.966 5 21920254.446 21920252.882 21920253.536
+ 40.200 34.500
+ -14702607.310 6 -11456577.186 6 21807634.550 21807631.853 21807634.222
+ 41.600 36.500
+ -20959717.900 7 -16332239.508 7 20611066.051 20611062.915 20611064.964
+ 46.900 46.100
+ -22411169.794 7 -17463248.824 7 20395717.196 20395711.901 20395716.082
+ 46.300 45.200
+ -5712463.896 5 -4451266.425 4 23115083.749 23115082.333 23115083.472
+ 35.900 29.500
+ 06 1 1 11 33 0.0000000 0 5G03G13G16G23G25
+ -14030484.412 6 -10932839.370 5 21886646.336 21886644.231 21886645.334
+ 41.000 34.000
+ -14839034.815 7 -11562884.337 6 21781673.531 21781670.577 21781673.246
+ 42.500 36.900
+ -20876837.684 7 -16267657.520 7 20626837.784 20626834.520 20626836.637
+ 46.800 46.000
+ -22405615.186 7 -17458920.566 7 20396774.562 20396768.941 20396773.345
+ 46.400 45.100
+ -5561295.900 6 -4333473.230 4 23143851.616 23143848.663 23143850.228
+ 36.000 29.700
+ 06 1 1 11 34 0.0000000 0 5G03G13G16G23G25
+ -14205587.803 6 -11069283.527 5 21853325.572 21853323.486 21853324.166
+ 40.700 34.900
+ -14973656.264 7 -11667784.170 6 21756055.851 21756053.065 21756055.468
+ 42.000 37.300
+ -20792423.398 7 -16201880.151 7 20642901.262 20642897.967 20642900.188
+ 47.100 45.600
+ -22397598.921 7 -17452674.126 7 20398299.736 20398294.408 20398298.595
+ 46.400 45.100
+ -5409415.315 5 -4215124.759 4 23172752.286 23172750.339 23172751.858
+ 35.100 28.400
+ 06 1 1 11 35 0.0000000 0 5G03G13G16G23G25
+ -14379159.144 6 -11204533.887 5 21820295.490 21820293.505 21820294.479
+ 41.000 34.400
+ -15106451.816 7 -11771261.217 6 21730785.643 21730782.892 21730785.280
+ 42.200 37.600
+ -20706488.033 7 -16134917.528 7 20659254.360 20659250.908 20659253.250
+ 47.400 45.400
+ -22387118.929 7 -17444507.906 7 20400294.452 20400288.693 20400293.165
+ 46.500 45.200
+ -5256825.257 5 -4096223.474 4 23201789.917 23201787.930 23201788.813
+ 34.400 29.000
+ 06 1 1 11 36 0.0000000 0 5G03G13G16G23G25
+ -14551176.155 6 -11338573.078 5 21787561.468 21787559.979 21787560.633
+ 41.400 35.200
+ -15237402.477 7 -11873300.700 6 21705866.401 21705863.890 21705866.112
+ 42.200 37.700
+ -20619045.651 7 -16066780.602 7 20675893.973 20675890.529 20675892.950
+ 47.600 45.300
+ -22374172.529 7 -17434419.807 7 20402757.756 20402752.396 20402756.529
+ 46.500 45.100
+ -5103528.984 5 -3976771.874 4 23230960.406 23230958.755 23230959.832
+ 33.800 28.400
+ 06 1 1 11 37 0.0000000 0 5G03G13G16G23G25
+ -14721616.922 6 -11471384.029 5 21755127.427 21755126.277 21755126.841
+ 41.900 35.500
+ -15366488.071 7 -11973886.877 6 21681302.590 21681299.566 21681302.225
+ 42.700 37.600
+ -20530109.752 7 -15997479.901 7 20692818.115 20692814.634 20692816.897
+ 47.300 45.200
+ -22358758.312 7 -17422408.735 7 20405690.869 20405685.659 20405689.721
+ 46.500 45.200
+ -4949529.601 5 -3856772.420 4 23260265.764 23260263.748 23260265.235
+ 33.900 27.900
+ 06 1 1 11 38 0.0000000 0 6G03G13G16G19G23G25
+ -14890459.898 6 -11602949.942 5 21722998.026 21722996.341 21722997.070
+ 41.500 35.700
+ -15493689.944 7 -12073005.217 6 21657096.654 21657093.814 21657096.435
+ 42.700 37.600
+ -20439693.885 7 -15927025.979 7 20710023.447 20710020.128 20710022.315
+ 47.100 44.900
+ -240457.674 4 -187368.884 3 24586210.212 24586207.351 24586208.575
+ 24.200 21.100
+ -22340875.018 7 -17408473.705 7 20409094.105 20409088.651 20409092.949
+ 46.500 45.000
+ -4794830.441 5 -3736227.662 4 23289705.064 23289702.410 23289703.849
+ 34.400 27.100
+ 06 1 1 11 39 0.0000000 0 6G03G13G16G19G23G25
+ -15057682.536 6 -11733253.255 5 21691176.447 21691174.982 21691175.636
+ 41.900 35.800
+ -15618989.021 7 -12170640.876 6 21633253.206 21633250.040 21633252.894
+ 43.300 37.400
+ -20347811.376 7 -15855429.224 7 20727508.104 20727504.781 20727507.021
+ 47.300 44.800
+ -465841.460 4 -362992.558 3 24543320.658 24543318.139 24543319.253
+ 26.800 21.600
+ -22320521.213 7 -17392613.602 7 20412967.159 20412961.899 20412965.954
+ 46.200 45.000
+ -4639434.621 5 -3615140.061 4 23319273.749 23319273.559 23319274.067
+ 33.100 28.400
+ 06 1 1 11 40 0.0000000 0 6G03G13G16G19G23G25
+ -15223263.608 7 -11862277.443 5 21659667.044 21659665.656 21659666.381
+ 42.000 35.400
+ -15742366.158 7 -12266778.906 6 21609775.373 21609772.262 21609775.012
+ 43.000 37.800
+ -20254476.492 7 -15782700.743 7 20745269.058 20745265.758 20745268.043
+ 47.400 44.600
+ -691160.847 3 -538566.015 2 24500443.755 24500441.352 24500442.202
+ 23.000 15.100
+ -22297696.809 7 -17374828.364 7 20417310.703 20417305.259 20417309.502
+ 46.200 44.900
+ -4483345.795 5 -3493512.468 4 23348978.353 23348975.656 23348977.378
+ 33.400 25.300
+ 06 1 1 11 41 0.0000000 0 6G03G13G16G19G23G25
+ -15387182.251 7 -11990006.216 6 21628475.119 21628472.976 21628474.005
+ 42.700 36.100
+ -15863802.474 7 -12361404.612 6 21586666.608 21586663.767 21586666.386
+ 42.900 38.300
+ -20159702.876 7 -15708851.173 7 20763303.967 20763300.544 20763302.844
+ 47.600 44.300
+ -916394.702 3 -714072.837 3 24457584.978 24457580.386 24457581.963
+ 23.400 18.600
+ -22272401.328 7 -17355117.612 7 20422124.360 20422118.693 20422123.104
+ 46.400 44.600
+ -4326567.186 5 -3371347.366 4 23378811.533 23378810.094 23378811.037
+ 32.100 27.900
+ 06 1 1 11 42 0.0000000 0 6G03G13G16G19G23G25
+ -15549417.004 7 -12116422.880 6 21597602.801 21597600.765 21597601.902
+ 43.100 36.100
+ -15983279.654 7 -12454503.714 6 21563930.892 21563927.936 21563930.613
+ 43.000 38.300
+ -20063504.397 7 -15633891.317 7 20781610.058 20781606.584 20781608.900
+ 47.600 44.400
+ -1141522.137 4 -889496.681 3 24414743.501 24414739.833 24414741.698
+ 29.000 20.500
+ -22244634.906 7 -17333481.446 7 20427407.950 20427402.593 20427406.804
+ 46.500 44.700
+ -4169102.389 5 -3248647.562 4 23408776.412 23408774.404 23408775.906
+ 32.800 27.100
+ 06 1 1 11 43 0.0000000 0 6G03G13G16G19G23G25
+ -15709946.602 7 -12241510.851 6 21567055.413 21567053.130 21567054.136
+ 42.900 36.800
+ -16100779.325 7 -12546061.899 6 21541571.780 21541568.616 21541571.365
+ 43.500 38.900
+ -19965894.448 7 -15557831.618 7 20800184.384 20800181.209 20800183.337
+ 47.600 44.200
+ -1366521.772 4 -1064820.936 4 24371926.689 24371924.157 24371925.672
+ 26.200 24.600
+ -22214398.849 7 -17309920.888 7 20433161.983 20433156.208 20433160.744
+ 46.500 44.600
+ -4010954.837 5 -3125415.765 4 23438871.215 23438869.516 23438870.516
+ 32.800 28.800
+ 06 1 1 11 44 0.0000000 0 7G03G13G16G19G23G25G27
+ -15868750.056 7 -12365253.769 6 21536835.614 21536833.769 21536834.649
+ 43.200 36.900
+ -16216282.892 7 -12636064.690 6 21519591.777 21519589.068 21519591.516
+ 43.400 38.800
+ -19866887.367 7 -15480683.248 7 20819024.820 20819021.528 20819023.757
+ 47.500 44.000
+ -1591372.468 4 -1240029.181 3 24329139.886 24329135.561 24329137.743
+ 25.900 19.900
+ -22181693.829 7 -17284436.466 7 20439385.236 20439379.806 20439384.029
+ 46.200 44.400
+ -3852128.032 5 -3001654.690 4 23469094.754 23469093.241 23469094.445
+ 32.600 27.100
+ -149510.843 3 -116501.486 2 25134226.460 25134226.088 25134225.901
+ 19.300 17.800
+ 06 1 1 11 45 0.0000000 0 7G03G13G16G19G23G25G27
+ -16025807.006 7 -12487635.772 6 21506948.899 21506946.803 21506947.647
+ 42.900 37.100
+ -16329772.388 7 -12724498.069 6 21497995.592 21497992.729 21497995.179
+ 43.400 39.100
+ -19766497.069 7 -15402457.040 7 20838128.483 20838125.187 20838127.379
+ 47.500 44.000
+ -1816053.111 4 -1415104.877 2 24286384.918 24286380.005 24286382.198
+ 27.400 13.900
+ -22146521.354 7 -17257029.348 7 20446078.528 20446073.049 20446077.190
+ 46.100 44.400
+ -3692625.843 5 -2877367.307 4 23499447.929 23499445.202 23499446.780
+ 31.600 24.900
+ -322121.728 3 -251003.342 4 25101380.995 25101379.478 25101380.286
+ 21.600 24.600
+ 06 1 1 11 46 0.0000000 0 7G03G13G16G19G23G25G27
+ -16181096.926 7 -12608640.884 6 21477397.881 21477396.050 21477396.924
+ 43.400 37.000
+ -16441230.313 7 -12811348.398 6 21476786.094 21476783.020 21476785.780
+ 44.000 39.400
+ -19664737.031 7 -15323163.507 7 20857492.542 20857489.601 20857491.563
+ 47.300 44.000
+ -2040541.809 4 -1590031.073 3 24243665.569 24243661.995 24243662.954
+ 27.100 23.400
+ -22108883.213 7 -17227700.937 7 20453240.711 20453235.334 20453239.497
+ 46.100 44.400
+ -3532451.604 5 -2752556.268 4 23529926.344 23529925.742 23529926.772
+ 33.000 26.200
+ -494833.785 4 -385584.109 4 25068515.688 25068514.161 25068514.736
+ 24.900 26.500
+ 06 1 1 11 47 0.0000000 0 7G03G13G16G19G23G25G27
+ -16334599.901 7 -12728253.570 6 21448187.150 21448185.553 21448186.167
+ 43.200 37.900
+ -16550638.777 7 -12896601.746 6 21455966.180 21455963.220 21455965.836
+ 43.800 39.300
+ -19561621.225 7 -15242813.532 7 20877115.014 20877111.974 20877113.924
+ 47.500 44.000
+ -2264817.799 4 -1764791.484 3 24200987.051 24200982.849 24200984.855
+ 27.100 19.300
+ -22068781.699 7 -17196453.013 7 20460871.846 20460866.372 20460870.633
+ 46.400 44.400
+ -3371609.229 5 -2627224.618 4 23560535.014 23560532.878 23560534.291
+ 32.300 24.900
+ -667642.464 4 -520240.158 3 25035630.248 25035628.699 25035629.533
+ 25.300 23.800
+ 06 1 1 11 48 0.0000000 0 7G03G13G16G19G23G25G27
+ -16486294.890 7 -12846457.422 6 21419320.414 21419318.552 21419319.596
+ 44.000 37.200
+ -16657980.437 7 -12980244.609 6 21435539.776 21435536.802 21435539.460
+ 44.200 39.400
+ -19457164.195 7 -15161418.451 7 20896992.749 20896989.479 20896991.555
+ 47.700 43.700
+ -2488859.490 4 -1939369.281 3 24158351.822 24158349.453 24158351.574
+ 29.500 19.300
+ -22026219.864 7 -17163287.962 7 20468971.113 20468965.689 20468969.868
+ 46.400 44.200
+ -3210102.506 5 -2501375.261 4 23591267.852 23591266.343 23591267.735
+ 31.000 24.600
+ -840543.155 4 -654967.967 2 25002729.024 25002726.662 25002728.206
+ 25.300 17.800
+ 06 1 1 11 49 0.0000000 0 7G03G13G16G19G23G25G27
+ -16636162.669 7 -12963237.480 6 21390801.810 21390799.637 21390800.750
+ 44.000 37.100
+ -16763238.093 7 -13062263.563 6 21415509.734 21415506.805 21415509.402
+ 43.800 39.500
+ -19351379.188 8 -15078988.577 7 20917123.001 20917119.600 20917121.912
+ 48.000 43.400
+ -2712645.197 4 -2113747.659 3 24115767.292 24115764.462 24115765.692
+ 24.900 23.000
+ -21981200.114 7 -17128207.650 7 20477538.182 20477532.542 20477536.980
+ 46.200 43.900
+ -3047935.269 5 -2375011.284 4 23622128.834 23622126.255 23622127.436
+ 30.600 26.800
+ -1013530.240 3 -789763.088 2 24969810.716 24969807.772 24969810.021
+ 21.100 13.900
+ 06 1 1 11 50 0.0000000 0 7G03G13G16G19G23G25G27
+ -16784182.903 7 -13078577.890 6 21362634.201 21362632.434 21362633.385
+ 44.600 37.700
+ -16866394.601 7 -13142645.253 6 21395879.532 21395876.895 21395879.281
+ 43.800 39.500
+ -19244280.161 8 -14995534.792 7 20937503.181 20937499.870 20937502.120
+ 48.000 43.000
+ -2936153.761 4 -2287910.128 3 24073236.650 24073232.226 24073233.770
+ 28.600 23.400
+ -21933726.307 7 -17091215.085 7 20486571.971 20486566.503 20486570.748
+ 46.300 43.800
+ -2885111.589 5 -2248135.764 4 23653112.677 23653110.171 23653111.713
+ 31.500 25.900
+ -1186599.045 3 -924621.873 2 24936875.605 24936874.187 24936875.038
+ 18.600 16.100
+ 06 1 1 11 51 0.0000000 0 7G03G13G16G19G23G25G27
+ -16930336.259 7 -13192463.596 6 21334822.170 21334820.471 21334821.354
+ 44.700 37.900
+ -16967433.318 7 -13221376.727 6 21376652.387 21376649.836 21376652.110
+ 43.700 39.600
+ -19135881.300 7 -14911068.154 7 20958130.746 20958127.530 20958129.714
+ 47.900 43.000
+ -3159363.019 4 -2461839.314 4 24030760.067 24030756.904 24030758.312
+ 26.200 24.200
+ -21883802.580 7 -17052313.495 7 20496072.029 20496066.797 20496070.771
+ 46.100 44.000
+ -2721635.178 4 -2120751.662 4 23684220.443 23684219.470 23684219.778
+ 28.600 27.100
+ -1359744.481 3 -1059540.333 3 24903927.638 24903926.295 24903926.259
+ 22.100 22.600
+ 06 1 1 11 52 0.0000000 0 7G03G13G16G19G23G25G27
+ -17074603.793 7 -13304879.832 6 21307369.366 21307367.253 21307368.245
+ 44.700 38.200
+ -17066337.682 7 -13298445.066 6 21357831.567 21357829.020 21357831.360
+ 43.900 39.900
+ -19026196.340 7 -14825599.355 7 20979003.013 20978999.859 20979001.967
+ 47.800 42.700
+ -3382251.648 4 -2635518.734 2 23988346.345 23988341.889 23988344.188
+ 28.800 17.800
+ -21831432.829 7 -17011505.914 7 20506037.657 20506032.441 20506036.424
+ 46.100 43.800
+ -2557510.309 5 -1992862.230 3 23715454.124 23715450.670 23715452.353
+ 30.600 23.000
+ -1532960.881 4 -1194514.087 3 24870966.429 24870964.394 24870965.361
+ 25.300 19.300
+ 06 1 1 11 53 0.0000000 0 7G03G13G16G19G23G25G27
+ -17216966.793 7 -13415812.024 6 21280278.409 21280276.362 21280277.284
+ 44.500 38.400
+ -17163091.355 7 -13373837.530 6 21339420.397 21339417.406 21339420.041
+ 43.900 40.000
+ -18915239.969 7 -14739139.854 7 21000117.553 21000114.194 21000116.446
+ 47.900 42.400
+ -3604798.321 4 -2808931.635 3 23945996.504 23945992.993 23945994.713
+ 27.600 23.000
+ -21776621.715 7 -16968795.966 7 20516468.074 20516462.617 20516466.823
+ 46.100 43.600
+ -2392740.721 5 -1864470.426 4 23746808.277 23746805.839 23746807.474
+ 31.500 25.900
+ -1706243.907 4 -1329539.823 2 24837992.584 24837988.942 24837991.565
+ 25.600 13.900
+ 06 1 1 11 54 0.0000000 0 7G03G13G16G19G23G25G27
+ -17357406.165 7 -13525245.275 6 21253553.088 21253551.586 21253552.417
+ 44.800 38.400
+ -17257678.406 7 -13447541.729 6 21321421.097 21321417.940 21321420.723
+ 44.200 39.700
+ -18803025.376 8 -14651699.910 7 21021471.067 21021467.854 21021470.133
+ 48.100 42.200
+ -3826980.754 5 -2982060.649 4 23903716.238 23903712.984 23903714.536
+ 30.400 24.200
+ -21719374.449 7 -16924187.719 7 20527361.682 20527356.491 20527360.534
+ 46.200 43.800
+ -2227330.855 4 -1735579.734 3 23778282.818 23778282.227 23778283.149
+ 28.600 21.600
+ -1879587.906 4 -1464613.068 3 24805004.520 24805004.061 24805003.886
+ 25.900 21.600
+ 06 1 1 11 55 0.0000000 0 7G03G13G16G19G23G25G27
+ -17495903.509 7 -13633165.262 6 21227198.564 21227196.358 21227197.396
+ 44.800 38.400
+ -17350083.311 7 -13519545.556 6 21303836.797 21303833.981 21303836.420
+ 43.700 40.200
+ -18689566.114 7 -14563290.105 7 21043061.885 21043058.449 21043060.689
+ 47.800 42.300
+ -4048777.628 4 -3154889.325 3 23861510.297 23861506.236 23861508.033
+ 27.900 22.600
+ -21659696.634 7 -16877685.535 7 20538717.937 20538712.763 20538716.823
+ 46.100 43.400
+ -2061284.716 5 -1606193.215 3 23809882.622 23809879.162 23809881.090
+ 30.400 19.900
+ -2052986.257 4 -1599728.621 4 24772009.365 24772006.838 24772008.617
+ 28.100 25.600
+ 06 1 1 11 56 0.0000000 0 7G03G13G16G19G23G25G27
+ -17632440.503 7 -13739557.713 6 21201216.044 21201214.184 21201215.151
+ 45.100 38.900
+ -17440290.238 7 -13589836.669 6 21286671.050 21286668.318 21286670.759
+ 44.300 40.600
+ -18574876.967 7 -14473921.944 6 21064886.230 21064882.999 21064885.207
+ 47.900 41.900
+ -4270167.070 5 -3327400.482 3 23819379.851 23819377.294 23819379.084
+ 31.100 23.800
+ -21597594.415 7 -16829294.209 7 20550535.680 20550530.425 20550534.596
+ 46.300 43.400
+ -1894606.691 4 -1476314.365 3 23841599.931 23841598.026 23841598.854
+ 29.200 23.400
+ -2226433.778 4 -1734882.512 3 24739002.822 24739000.035 24739002.136
+ 24.900 22.100
+ 06 1 1 11 57 0.0000000 0 7G03G13G16G19G23G25G27
+ -17766999.427 7 -13844408.806 6 21175610.855 21175608.404 21175609.758
+ 45.500 38.600
+ -17528283.606 7 -13658402.941 6 21269926.379 21269923.519 21269926.079
+ 44.100 40.500
+ -18458971.608 7 -14383606.090 6 21086942.528 21086939.175 21086941.447
+ 47.800 41.600
+ -4491127.256 4 -3499577.194 3 23777334.653 23777329.397 23777332.224
+ 29.200 20.500
+ -21533073.589 7 -16779018.257 7 20562813.843 20562808.341 20562812.640
+ 46.300 43.300
+ -1727300.911 5 -1345946.334 3 23873435.813 23873435.024 23873436.363
+ 30.800 22.100
+ -2399925.557 4 -1870070.863 4 24705989.319 24705986.092 24705987.907
+ 25.900 25.600
+ 06 1 1 11 58 0.0000000 0 7G03G13G16G19G23G25G27
+ -17899562.332 7 -13947704.556 6 21150384.424 21150382.525 21150383.623
+ 45.700 38.900
+ -17614049.198 7 -13725233.274 6 21253605.652 21253602.872 21253605.333
+ 44.100 40.500
+ -18341863.326 7 -14292352.888 6 21109227.313 21109223.998 21109226.231
+ 47.400 41.300
+ -4711636.493 4 -3671402.494 3 23735371.992 23735367.801 23735369.632
+ 28.100 21.100
+ -21466141.010 7 -16726863.018 7 20575550.489 20575545.214 20575549.343
+ 46.400 43.100
+ -1559371.842 4 -1215092.641 3 23905392.686 23905391.488 23905391.785
+ 28.400 23.400
+ -2573454.975 3 -2005288.514 3 24672965.642 24672964.253 24672965.201
+ 21.100 22.100
+ 06 1 1 11 59 0.0000000 0 7G03G13G16G19G23G25G27
+ -18030111.102 7 -14049430.850 6 21125541.817 21125539.832 21125540.989
+ 45.600 38.800
+ -17697571.577 7 -13790315.648 6 21237711.922 21237709.359 21237711.566
+ 43.800 41.000
+ -18223566.333 7 -14200173.421 6 21131738.640 21131735.175 21131737.459
+ 47.500 41.200
+ -4931672.974 5 -3842859.427 3 23693499.388 23693496.504 23693498.575
+ 30.800 22.600
+ -21396803.865 7 -16672834.087 7 20588744.689 20588739.603 20588743.615
+ 46.200 43.300
+ -1390824.038 4 -1083756.810 3 23937466.427 23937464.984 23937465.473
+ 29.000 23.000
+ -2747016.507 4 -2140531.258 3 24639940.062 24639936.970 24639939.142
+ 25.900 22.600
+ 06 1 1 12 0 0.0000000 0 7G03G13G16G19G23G25G27
+ -18158628.869 7 -14149574.546 6 21101085.810 21101083.666 21101084.854
+ 45.600 39.100
+ -17778836.551 7 -13853639.007 6 21222247.762 21222244.858 21222247.536
+ 44.300 40.600
+ -18104094.511 7 -14107078.505 6 21154473.393 21154470.051 21154472.310
+ 47.600 41.200
+ -5151214.857 5 -4013930.993 4 23651723.371 23651719.225 23651721.332
+ 31.500 25.600
+ -21325069.407 7 -16616937.117 7 20602395.536 20602390.360 20602394.420
+ 46.200 43.000
+ -1221661.888 4 -951942.263 3 23969657.060 23969655.661 23969656.419
+ 29.500 22.600
+ -2920603.802 4 -2275794.087 3 24606906.484 24606904.005 24606905.374
+ 27.900 21.600
+ 06 1 1 12 1 0.0000000 0 7G03G13G16G19G23G25G27
+ -18285098.712 7 -14248122.460 6 21077019.521 21077017.413 21077018.452
+ 45.700 39.400
+ -17857830.170 7 -13915192.484 6 21207216.047 21207213.109 21207215.685
+ 44.300 41.200
+ -17983461.898 7 -14013079.078 6 21177429.026 21177425.719 21177427.795
+ 47.500 41.200
+ -5370240.218 4 -4184600.028 4 23610042.879 23610040.342 23610041.830
+ 29.900 27.100
+ -21250945.615 7 -16559178.335 7 20616500.981 20616495.522 20616499.768
+ 46.100 42.700
+ -1051890.009 4 -819652.636 3 24001964.879 24001962.350 24001963.410
+ 27.400 21.600
+ -3094211.077 4 -2411072.516 3 24573870.068 24573867.581 24573869.517
+ 27.600 19.300
+ 06 1 1 12 2 0.0000000 0 7G03G13G16G19G23G25G27
+ -18409503.815 7 -14345061.483 6 21053346.005 21053344.064 21053344.969
+ 46.000 39.800
+ -17934538.330 7 -13974965.084 6 21192618.764 21192615.875 21192618.496
+ 44.500 41.200
+ -17861681.801 7 -13918185.509 6 21200602.717 21200599.622 21200601.732
+ 47.700 40.400
+ -5588727.819 4 -4354850.040 4 23568466.351 23568463.531 23568464.743
+ 28.800 26.500
+ -21174440.885 7 -16499564.276 7 20631059.187 20631053.855 20631058.031
+ 46.300 42.500
+ -881512.962 4 -686891.428 3 24034386.303 24034384.262 24034384.664
+ 26.200 22.100
+ -3267831.608 4 -2546361.221 4 24540831.338 24540829.432 24540830.162
+ 25.600 26.500
+ 06 1 1 12 3 0.0000000 0 7G03G13G16G19G23G25G27
+ -18531828.264 7 -14440379.215 6 21030068.306 21030066.430 21030067.331
+ 46.100 39.900
+ -18008947.603 7 -14032946.340 6 21178459.167 21178456.399 21178458.856
+ 44.300 41.400
+ -17738767.796 7 -13822408.367 6 21223992.740 21223989.354 21223991.624
+ 47.600 40.700
+ -5806654.389 5 -4524662.895 4 23526997.246 23526993.325 23526994.776
+ 32.400 27.400
+ -21095563.165 7 -16438101.129 7 20646069.390 20646063.802 20646068.222
+ 46.400 42.600
+ -710535.660 4 -553662.511 3 24066919.263 24066920.231 24066920.524
+ 26.800 21.600
+ -3441459.346 3 -2681655.466 4 24507789.432 24507788.809 24507788.963
+ 21.600 26.800
+ 06 1 1 12 4 0.0000000 0 7G03G13G16G19G23G25G27
+ -18652055.390 7 -14534062.684 6 21007189.880 21007187.907 21007188.830
+ 46.000 40.000
+ -18081045.091 7 -14089126.206 6 21164739.516 21164736.617 21164739.235
+ 44.400 41.300
+ -17614734.119 7 -13725758.763 6 21247595.624 21247592.127 21247594.517
+ 47.300 40.300
+ -6023998.972 5 -4694022.279 4 23485635.940 23485633.706 23485635.918
+ 33.400 25.300
+ -21014322.046 7 -16374796.380 7 20661528.771 20661523.544 20661527.764
+ 46.400 42.500
+ -538962.539 4 -419969.287 3 24099569.956 24099568.575 24099569.932
+ 26.800 19.300
+ -3615087.526 4 -2816950.116 4 24474750.088 24474748.973 24474749.119
+ 26.500 28.600
+ 06 1 1 12 5 0.0000000 0 7G03G13G16G19G23G25G27
+ -18770169.359 7 -14626099.524 6 20984713.413 20984711.417 20984712.384
+ 46.000 39.900
+ -18150817.521 7 -14143494.343 6 21151462.263 21151459.387 21151461.927
+ 44.300 41.400
+ -17489594.242 7 -13628247.183 6 21271409.063 21271405.462 21271407.826
+ 47.000 40.100
+ -6240739.781 5 -4862911.180 4 23444392.307 23444389.345 23444390.822
+ 31.600 26.500
+ -20930726.800 7 -16309657.244 7 20677436.276 20677431.229 20677435.239
+ 46.000 42.300
+ -366798.669 4 -285815.741 3 24132332.636 24132331.144 24132332.057
+ 26.200 21.600
+ -3788709.551 4 -2952239.988 3 24441710.750 24441709.371 24441710.161
+ 27.600 23.400
+ 06 1 1 12 6 0.0000000 0 7G03G13G16G19G23G25G27
+ -18886154.910 7 -14716477.864 6 20962641.984 20962640.132 20962641.048
+ 46.100 39.900
+ -18218252.339 7 -14196040.957 6 21138629.751 21138626.900 21138629.458
+ 44.200 41.600
+ -17363361.520 7 -13529884.043 6 21295429.916 21295426.746 21295429.016
+ 47.400 39.900
+ -6456854.563 5 -5031312.277 4 23403267.176 23403263.802 23403265.813
+ 32.300 26.200
+ -20844787.187 7 -16242691.331 7 20693790.095 20693784.990 20693789.189
+ 46.200 42.200
+ -194048.935 4 -151205.675 3 24165205.392 24165204.294 24165205.560
+ 26.200 18.600
+ -3962318.560 4 -3087519.758 2 24408675.290 24408672.356 24408674.134
+ 25.600 17.800
+ 06 1 1 12 7 0.0000000 0 7G03G13G16G19G23G25G27
+ -18999997.092 7 -14805186.046 6 20940978.518 20940976.565 20940977.545
+ 46.000 39.800
+ -18283337.911 7 -14246756.987 6 21126244.624 21126241.608 21126244.227
+ 44.300 41.600
+ -17236049.361 7 -13430679.777 6 21319656.835 21319653.582 21319655.798
+ 47.300 39.900
+ -6672321.761 5 -5199208.727 4 23362265.341 23362261.499 23362263.549
+ 32.600 25.900
+ -20756513.714 7 -16173906.829 7 20710588.140 20710582.935 20710587.044
+ 46.100 42.200
+ -20718.208 4 -16142.938 3 24198188.695 24198188.555 24198188.649
+ 25.600 20.500
+ -4135908.249 4 -3222784.449 3 24375641.391 24375639.282 24375640.392
+ 25.900 23.400
+ 06 1 1 12 8 0.0000000 0 7G03G13G16G19G23G25G27
+ -19111680.309 7 -14892211.922 6 20919725.824 20919723.960 20919725.059
+ 46.500 40.000
+ -18346061.272 7 -14295632.344 6 21114308.610 21114305.765 21114308.361
+ 44.500 41.900
+ -17107671.639 7 -13330645.209 6 21344086.225 21344083.117 21344085.234
+ 47.300 39.800
+ -6887119.215 5 -5366583.335 5 23321392.090 23321387.631 23321389.041
+ 33.500 30.400
+ -20665916.342 7 -16103311.492 6 20727828.214 20727823.101 20727827.094
+ 46.000 41.900
+ 153188.415 4 119368.587 2 24231283.042 24231281.883 24231282.627
+ 26.500 17.000
+ -4309471.234 4 -3358028.309 4 24342613.578 24342611.700 24342612.644
+ 26.500 25.900
+ 06 1 1 12 9 0.0000000 0 7G03G13G16G19G23G25G27
+ -19221190.094 7 -14977544.210 6 20898886.836 20898884.973 20898885.929
+ 46.500 40.600
+ -18406411.396 7 -14342658.421 6 21102824.326 21102821.533 21102823.996
+ 44.200 41.800
+ -16978241.855 7 -13229790.845 6 21368715.924 21368712.781 21368715.011
+ 47.300 39.700
+ -7101225.164 5 -5533419.051 4 23280646.961 23280644.165 23280646.102
+ 34.000 29.500
+ -20573006.069 7 -16030913.897 6 20745508.591 20745503.348 20745507.483
+ 46.200 41.900
+ 327665.892 4 255324.922 3 24264485.289 24264483.483 24264484.472
+ 26.200 21.100
+ -4483000.713 4 -3493246.050 4 24309591.112 24309590.383 24309590.486
+ 26.200 27.900
+ 06 1 1 12 10 0.0000000 0 7G03G13G16G19G23G25G27
+ -19328512.058 7 -15061171.707 6 20878464.389 20878462.280 20878463.364
+ 46.500 40.500
+ -18464377.093 7 -14387826.502 6 21091793.777 21091791.056 21091793.473
+ 44.200 41.900
+ -16847772.977 7 -13128126.799 6 21393543.561 21393540.155 21393542.323
+ 47.100 39.300
+ -7314617.351 5 -5699698.624 4 23240041.935 23240037.031 23240039.074
+ 32.800 29.500
+ -20477794.250 7 -15956722.890 6 20763627.064 20763621.539 20763625.809
+ 46.200 41.800
+ 502709.139 4 391722.116 3 24297794.075 24297794.191 24297794.062
+ 24.200 20.500
+ -4656489.578 4 -3628432.141 4 24276578.292 24276576.169 24276577.303
+ 27.400 27.100
+ 06 1 1 12 11 0.0000000 0 7G03G13G16G19G23G25G27
+ -19433632.358 7 -15143083.614 6 20858460.442 20858458.721 20858459.585
+ 46.600 40.700
+ -18519946.990 7 -14431127.730 7 21081219.266 21081216.493 21081218.890
+ 44.100 42.000
+ -16716278.508 7 -13025663.590 6 21418565.775 21418562.779 21418564.879
+ 47.100 39.000
+ -7527274.474 5 -5865405.405 4 23199571.836 23199569.645 23199571.518
+ 33.100 28.100
+ -20380292.592 7 -15880747.600 6 20782180.958 20782175.535 20782179.680
+ 46.200 41.500
+ 678312.755 4 528555.933 2 24331210.786 24331210.273 24331210.471
+ 24.900 17.800
+ -4829930.305 4 -3763580.712 4 24243572.848 24243571.343 24243571.946
+ 26.800 28.400
+ 06 1 1 12 12 0.0000000 0 7G03G13G16G19G23G25G27
+ -19536537.419 7 -15223269.375 6 20838878.577 20838876.466 20838877.515
+ 46.700 40.700
+ -18573110.804 7 -14472554.088 7 21071102.444 21071099.761 21071102.138
+ 44.200 42.100
+ -16583772.220 7 -12922411.953 6 21443780.934 21443777.852 21443779.919
+ 46.500 38.900
+ -7739174.270 5 -6030522.093 4 23159251.348 23159246.060 23159248.677
+ 34.600 27.100
+ -20280512.109 7 -15802996.595 6 20801168.589 20801162.963 20801167.344
+ 46.200 41.300
+ 854471.530 4 665822.384 2 24364733.643 24364732.170 24364733.437
+ 28.800 17.800
+ -5003315.922 4 -3898686.354 4 24210578.265 24210577.213 24210577.969
+ 25.900 25.600
+ 06 1 1 12 13 0.0000000 0 7G03G13G16G19G23G25G27
+ -19637213.819 7 -15301718.509 6 20819720.197 20819718.271 20819719.229
+ 46.700 40.800
+ -18623858.245 7 -14512097.563 6 21061445.581 21061442.784 21061445.299
+ 44.200 41.900
+ -16450266.966 7 -12818381.913 6 21469186.595 21469182.963 21469185.333
+ 46.400 38.600
+ -7950295.289 5 -6195031.940 4 23119074.807 23119071.256 23119073.278
+ 35.200 29.000
+ -20178466.061 7 -15723480.224 6 20820586.952 20820581.729 20820585.876
+ 46.100 41.200
+ 1031179.980 4 803517.098 2 24398357.963 24398358.742 24398358.544
+ 24.600 16.100
+ -5176638.680 4 -4033743.052 4 24177597.401 24177594.985 24177596.353
+ 27.400 26.200
+ 06 1 1 12 14 0.0000000 0 7G03G13G16G19G23G25G27
+ -19735648.759 7 -15378421.058 6 20800988.704 20800986.807 20800987.798
+ 46.900 41.200
+ -18672179.753 7 -14549750.697 7 21052250.523 21052247.580 21052250.167
+ 44.300 42.100
+ -16315775.892 7 -12713583.699 6 21494779.059 21494775.891 21494778.026
+ 46.400 38.400
+ -8160615.559 5 -6358917.780 5 23079052.067 23079048.787 23079050.560
+ 34.900 31.100
+ -20074166.753 7 -15642208.061 6 20840434.647 20840429.321 20840433.516
+ 46.100 41.200
+ 1208432.830 4 941636.016 3 24432090.221 24432088.931 24432089.557
+ 24.200 19.300
+ -5349890.867 4 -4168744.751 4 24144628.916 24144626.093 24144627.571
+ 28.800 25.600
+ 06 1 1 12 15 0.0000000 0 7G03G13G16G19G23G25G27
+ -19831830.082 7 -15453367.532 6 20782686.259 20782684.083 20782685.257
+ 47.300 41.100
+ -18718065.778 7 -14585506.045 7 21043518.657 21043515.823 21043518.275
+ 44.400 42.400
+ -16180312.210 7 -12608027.607 6 21520557.286 21520553.896 21520556.069
+ 46.600 38.300
+ -8370113.195 5 -6522162.644 5 23039187.577 23039182.259 23039184.715
+ 34.700 30.100
+ -19967627.179 7 -15559190.239 6 20860708.560 20860703.149 20860707.431
+ 46.200 41.000
+ 1386224.518 3 1080174.830 3 24465922.912 24465922.275 24465922.415
+ 23.400 22.100
+ -5523065.068 4 -4303685.679 4 24111674.779 24111672.078 24111673.560
+ 27.600 24.600
+ 06 1 1 12 16 0.0000000 0 7G03G13G16G19G23G25G27
+ -19925744.854 7 -15526547.876 6 20764814.769 20764812.823 20764813.736
+ 47.100 41.200
+ -18761506.926 7 -14619356.305 7 21035251.894 21035249.068 21035251.605
+ 44.200 42.000
+ -16043888.784 7 -12501723.664 6 21546517.792 21546514.450 21546516.594
+ 46.400 38.400
+ -8578766.359 5 -6684749.469 5 22999480.111 22999477.175 22999479.117
+ 35.200 31.500
+ -19858860.807 7 -15474437.248 6 20881406.129 20881400.917 20881404.995
+ 46.200 41.100
+ 1564549.586 3 1219129.221 3 24499855.949 24499856.769 24499855.756
+ 22.100 19.900
+ -5696153.067 4 -4438559.424 4 24078736.493 24078734.724 24078735.429
+ 27.600 25.900
+ 06 1 1 12 17 0.0000000 0 7G03G13G16G19G23G25G27
+ -20017380.931 7 -15597952.606 6 20747377.072 20747374.994 20747376.041
+ 47.300 41.400
+ -18802494.743 7 -14651294.872 7 21027452.298 21027449.406 21027451.936
+ 44.200 42.300
+ -15906518.826 7 -12394682.165 6 21572658.002 21572655.069 21572657.001
+ 46.100 38.100
+ -8786553.651 6 -6846661.617 4 22959940.283 22959936.195 22959938.428
+ 36.300 29.500
+ -19747880.829 7 -15387959.367 6 20902524.716 20902519.490 20902523.564
+ 45.600 40.800
+ 1743402.209 3 1358494.713 2 24533891.265 24533890.617 24533890.907
+ 23.400 17.800
+ -5869146.699 4 -4573359.642 4 24045816.860 24045814.943 24045816.220
+ 28.600 24.200
+ 06 1 1 12 18 0.0000000 0 7G03G13G16G19G23G25G27
+ -20106726.884 7 -15667572.831 6 20730374.912 20730372.961 20730373.955
+ 47.100 41.300
+ -18841020.763 7 -14681315.158 7 21020120.863 21020118.112 21020120.543
+ 44.100 42.300
+ -15768215.139 7 -12286913.082 6 21598976.538 21598973.341 21598975.527
+ 46.300 37.800
+ -8993453.341 5 -7007882.130 5 22920570.175 22920564.843 22920567.101
+ 35.200 30.200
+ -19634701.425 7 -15299767.656 6 20924061.995 20924056.934 20924060.848
+ 45.600 40.800
+ 1922776.792 3 1498266.985 2 24568024.901 24568024.821 24568024.571
+ 22.600 17.800
+ -6042038.386 4 -4708080.463 4 24012916.685 24012914.626 24012915.573
+ 27.600 26.200
+ 06 1 1 12 19 0.0000000 0 7G03G13G16G19G23G25G27
+ -20193771.777 7 -15735400.023 6 20713810.791 20713808.877 20713809.875
+ 47.100 41.500
+ -18877076.968 7 -14709410.914 7 21013259.802 21013256.948 21013259.473
+ 44.300 42.200
+ -15628990.627 7 -12178426.483 6 21625470.361 21625466.894 21625469.174
+ 46.100 37.700
+ -9199443.495 6 -7168393.899 5 22881368.932 22881366.018 22881368.042
+ 36.900 30.800
+ -19519337.130 7 -15209873.436 6 20946015.151 20946010.107 20946014.066
+ 45.500 40.600
+ 2102667.542 3 1638441.402 2 24602257.570 24602257.106 24602257.665
+ 23.400 17.800
+ -6214819.783 5 -4842715.311 4 23980037.493 23980035.539 23980036.481
+ 30.100 28.800
+ 06 1 1 12 20 0.0000000 0 7G03G13G16G19G23G25G27
+ -20278504.160 7 -15801425.259 6 20697687.049 20697684.896 20697685.999
+ 47.300 41.600
+ -18910655.812 7 -14735576.254 7 21006869.775 21006867.070 21006869.407
+ 43.700 42.300
+ -15488858.265 7 -12069232.460 6 21652136.729 21652133.258 21652135.548
+ 45.900 37.000
+ -9404503.032 6 -7328180.522 5 22842347.482 22842344.520 22842346.989
+ 37.200 31.000
+ -19401802.294 7 -15118287.884 6 20968381.447 20968376.233 20968380.325
+ 45.600 40.500
+ 2283068.653 4 1779013.482 3 24636586.825 24636586.631 24636587.008
+ 24.600 19.300
+ -6387482.332 4 -4977257.543 5 23947181.451 23947179.295 23947180.581
+ 29.900 31.000
+ 06 1 1 12 21 0.0000000 0 7G03G13G16G19G23G25G27
+ -20360913.591 7 -15865640.405 6 20682004.899 20682002.854 20682003.938
+ 47.500 41.600
+ -18941750.164 7 -14759805.638 7 21000952.869 21000950.058 21000952.502
+ 44.000 42.400
+ -15347830.046 7 -11959340.364 6 21678973.156 21678969.971 21678972.151
+ 46.000 36.900
+ -9608609.712 6 -7487224.688 5 22803507.866 22803504.318 22803506.249
+ 37.700 31.800
+ -19282112.121 7 -15025022.855 6 20991157.888 20991152.481 20991156.658
+ 45.800 39.800
+ 2463974.112 3 1919978.570 2 24671012.144 24671012.394 24671012.047
+ 22.100 17.800
+ -6560017.765 4 -5111700.696 4 23914348.348 23914346.880 23914347.321
+ 29.000 29.900
+ 06 1 1 12 22 0.0000000 0 7G03G13G16G19G23G25G27
+ -20440989.990 7 -15928037.603 6 20666766.933 20666764.880 20666765.924
+ 47.500 41.800
+ -18970353.514 7 -14782093.975 7 20995509.742 20995506.983 20995509.389
+ 44.000 42.700
+ -15205919.344 7 -11848760.633 6 21705978.094 21705974.800 21705977.069
+ 45.600 37.100
+ -9811742.572 6 -7645509.998 5 22764853.938 22764849.113 22764851.290
+ 36.300 31.800
+ -19160281.502 7 -14930089.948 6 21014341.675 21014336.134 21014340.427
+ 45.900 40.000
+ 2645377.818 3 2061331.903 2 24705532.205 24705531.608 24705531.913
+ 22.600 12.600
+ -6732417.386 4 -5246038.082 4 23881541.954 23881540.093 23881540.899
+ 29.900 26.800
+ 06 1 1 12 23 0.0000000 0 7G03G13G16G19G23G25G27
+ -20518723.869 7 -15988609.467 6 20651974.582 20651972.586 20651973.666
+ 47.600 41.900
+ -18996458.375 7 -14802435.440 7 20990542.124 20990539.366 20990541.843
+ 43.800 42.400
+ -15063138.242 7 -11737502.666 6 21733148.214 21733145.328 21733147.184
+ 45.300 37.200
+ -10013880.177 6 -7803019.792 5 22726388.156 22726383.731 22726385.522
+ 36.400 31.800
+ -19036326.045 7 -14833501.327 6 21037929.563 21037924.238 21037928.270
+ 45.500 40.100
+ 2827273.840 3 2203068.832 3 24740145.803 24740146.728 24740146.318
+ 20.500 18.600
+ -6904673.066 5 -5380263.293 4 23848763.371 23848760.340 23848762.084
+ 30.200 26.200
+ 06 1 1 12 24 0.0000000 0 6G03G13G16G19G23G27
+ -20594105.610 7 -16047348.491 6 20637629.948 20637627.845 20637629.102
+ 47.900 41.800
+ -19020059.705 7 -14820826.102 7 20986050.926 20986048.234 20986050.628
+ 43.900 42.400
+ -14919499.639 7 -11625576.515 6 21760481.756 21760478.848 21760480.854
+ 45.500 36.900
+ -10215000.720 6 -7959737.067 5 22688116.758 22688111.741 22688114.051
+ 38.100 32.700
+ -18910262.049 7 -14735269.693 6 21061918.363 21061913.485 21061917.343
+ 45.600 39.900
+ -7076775.202 5 -5514368.866 4 23816013.529 23816010.549 23816012.069
+ 30.400 27.100
+ 06 1 1 12 25 0.0000000 0 6G03G13G16G19G23G27
+ -20667126.248 8 -16104247.697 6 20623734.494 20623732.499 20623733.677
+ 48.100 41.700
+ -19041151.829 7 -14837261.539 7 20982037.206 20982034.619 20982036.850
+ 43.600 42.400
+ -14775015.881 7 -11512991.803 6 21787976.297 21787973.325 21787975.295
+ 45.200 36.500
+ -10415082.958 6 -8115645.261 5 22650041.293 22650037.696 22650039.271
+ 37.300 33.900
+ -18782105.503 7 -14635407.511 6 21086305.987 21086300.944 21086304.930
+ 45.400 39.800
+ -7248715.497 5 -5648348.302 4 23783294.626 23783292.245 23783293.323
+ 31.100 29.500
+ 06 1 1 12 26 0.0000000 0 6G03G13G16G19G23G27
+ -20737776.970 7 -16159300.218 6 20610290.320 20610288.151 20610289.383
+ 47.900 41.900
+ -19059729.594 7 -14851737.733 7 20978502.004 20978499.371 20978501.698
+ 44.000 42.700
+ -14629698.627 7 -11399757.619 5 21815629.367 21815626.072 21815628.170
+ 45.100 35.900
+ -10614105.716 6 -8270727.906 5 22612168.007 22612164.368 22612166.716
+ 38.100 32.400
+ -18651872.068 7 -14533926.971 6 21111088.848 21111083.422 21111087.564
+ 45.300 39.700
+ -7420484.671 5 -5782194.420 4 23750607.353 23750605.182 23750606.372
+ 31.500 29.000
+ 06 1 1 12 27 0.0000000 0 6G03G13G16G19G23G27
+ -20806049.190 7 -16212499.366 7 20597298.375 20597296.444 20597297.433
+ 47.800 42.100
+ -19075787.749 7 -14864250.600 7 20975446.523 20975443.691 20975446.228
+ 44.300 42.700
+ -14483560.715 7 -11285883.954 6 21843438.400 21843435.348 21843437.290
+ 44.700 36.000
+ -10812047.812 6 -8424968.488 5 22574500.763 22574497.463 22574499.633
+ 38.800 33.200
+ -18519579.535 7 -14430841.927 6 21136263.252 21136258.097 21136262.054
+ 45.700 39.400
+ -7592073.671 5 -5915900.146 4 23717955.619 23717952.665 23717954.417
+ 31.500 27.900
+ 06 1 1 12 28 0.0000000 0 6G03G13G16G19G23G27
+ -20871934.821 7 -16263838.833 7 20584760.676 20584758.901 20584759.770
+ 47.600 42.100
+ -19089322.000 7 -14874796.790 7 20972870.989 20972868.209 20972870.692
+ 43.900 42.700
+ -14336614.222 7 -11171380.239 6 21871401.175 21871398.384 21871400.180
+ 44.400 36.100
+ -11008888.218 6 -8578350.588 5 22537043.047 22537040.059 22537041.777
+ 38.900 33.000
+ -18385244.185 7 -14326165.075 6 21161826.552 21161821.196 21161825.399
+ 45.500 39.300
+ -7763473.211 5 -6049458.222 4 23685338.809 23685336.419 23685337.842
+ 30.600 29.000
+ 06 1 1 12 29 0.0000000 0 6G03G13G16G19G23G27
+ -20935426.980 7 -16313313.258 7 20572678.720 20572676.701 20572677.759
+ 47.700 42.200
+ -19100328.798 7 -14883373.534 7 20970776.433 20970773.659 20970776.104
+ 44.000 42.500
+ -14188870.908 7 -11056255.616 5 21899516.073 21899513.191 21899514.967
+ 44.300 35.600
+ -11204605.763 6 -8730857.729 5 22499799.448 22499796.184 22499798.389
+ 39.300 34.100
+ -18248884.080 7 -14219910.501 6 21187775.307 21187769.668 21187773.877
+ 45.100 39.200
+ -7934673.357 5 -6182860.935 4 23652760.837 23652758.167 23652759.697
+ 31.300 29.500
+ 06 1 1 12 30 0.0000000 0 6G03G13G16G19G23G27
+ -20996518.481 7 -16360917.039 7 20561053.348 20561051.436 20561052.370
+ 47.800 42.400
+ -19108804.370 7 -14889977.890 7 20969163.430 20969160.773 20969163.124
+ 43.800 42.500
+ -14040343.179 7 -10940519.768 5 21927780.115 21927776.849 21927778.919
+ 44.400 35.500
+ -11399179.136 6 -8882473.319 5 22462773.407 22462769.957 22462771.794
+ 39.100 33.400
+ -18110515.876 7 -14112091.175 6 21214105.454 21214100.411 21214104.387
+ 45.400 39.100
+ -8105665.134 5 -6316101.280 5 23620221.331 23620219.851 23620220.621
+ 32.600 30.800
+ 06 1 1 12 31 0.0000000 0 6G03G13G16G19G23G27
+ -21055202.623 7 -16406644.952 7 20549886.077 20549884.255 20549885.099
+ 47.700 42.700
+ -19114746.028 7 -14894607.773 7 20968033.129 20968030.121 20968032.759
+ 44.000 42.600
+ -13891042.957 7 -10824181.983 5 21956191.199 21956187.848 21956189.928
+ 44.100 34.800
+ -11592588.010 6 -9033181.495 5 22425969.718 22425965.369 22425967.399
+ 39.700 33.800
+ -17970157.832 7 -14002721.335 6 21240815.281 21240809.776 21240813.950
+ 45.300 38.700
+ -8276439.073 5 -6449171.898 4 23587724.659 23587722.400 23587723.663
+ 32.100 29.700
+ 06 1 1 12 32 0.0000000 0 6G03G13G16G19G23G27
+ -21111472.606 8 -16450491.711 7 20539178.461 20539176.442 20539177.438
+ 48.000 42.400
+ -19118150.305 7 -14897260.477 7 20967384.959 20967382.432 20967384.725
+ 43.900 42.800
+ -13740981.515 7 -10707251.034 5 21984746.670 21984743.599 21984745.649
+ 44.100 34.900
+ -11784811.444 6 -9182965.958 5 22389391.164 22389386.812 22389388.707
+ 40.200 34.700
+ -17827828.399 7 -13891815.349 6 21267899.004 21267894.285 21267898.228
+ 45.400 39.100
+ -8446985.324 5 -6582065.082 5 23555270.329 23555268.633 23555269.663
+ 32.300 30.600
+ 06 1 1 12 33 0.0000000 0 6G03G13G16G19G23G27
+ -21165322.444 7 -16492452.637 7 20528930.757 20528929.121 20528929.930
+ 47.500 42.500
+ -19119015.165 7 -14897934.418 7 20967220.534 20967217.952 20967220.201
+ 43.900 42.700
+ -13590170.999 7 -10589736.399 5 22013445.055 22013442.082 22013444.033
+ 44.300 34.700
+ -11975828.409 6 -9331810.339 5 22353041.507 22353037.272 22353039.121
+ 40.200 34.600
+ -17683544.987 7 -13779386.762 6 21295355.936 21295350.358 21295354.543
+ 44.900 38.600
+ -8617294.108 5 -6714773.228 5 23522861.953 23522860.284 23522861.230
+ 33.600 30.600
+ 06 1 1 12 34 0.0000000 0 7G03G13G15G16G19G23G27
+ -21216746.699 7 -16532523.497 7 20519145.191 20519143.502 20519144.180
+ 47.400 42.600
+ -19117339.139 7 -14896628.447 7 20967539.722 20967536.828 20967539.350
+ 44.200 42.500
+ -121299.930 3 -94519.385 1 24597780.395 24597778.776 24597778.930
+ 21.600 11.000
+ -13438622.910 7 -10471647.029 5 22042283.863 22042280.683 22042282.767
+ 43.600 34.600
+ -12165618.825 6 -9479698.950 5 22316924.957 22316921.069 22316923.359
+ 40.500 33.800
+ -17537326.912 7 -13665450.655 6 21323179.342 21323174.808 21323178.649
+ 44.600 38.700
+ -8787355.255 5 -6847288.428 5 23490500.306 23490498.329 23490499.661
+ 33.400 30.600
+ 06 1 1 12 35 0.0000000 0 7G03G13G15G16G19G23G27
+ -21265740.352 7 -16570700.389 7 20509822.142 20509820.189 20509821.121
+ 47.500 42.300
+ -19113120.512 7 -14893341.231 7 20968342.150 20968339.513 20968341.912
+ 43.800 42.400
+ -223507.293 3 -174161.495 2 24578330.734 24578328.986 24578329.659
+ 21.600 15.100
+ -13286348.683 7 -10352991.849 5 22071260.667 22071257.502 22071259.532
+ 43.600 34.500
+ -12354161.407 6 -9626615.228 5 22281045.880 22281043.012 22281044.867
+ 40.600 35.600
+ -17389192.800 7 -13550021.533 6 21351369.657 21351363.812 21351367.994
+ 44.600 38.600
+ -8957158.231 5 -6979602.434 4 23458187.873 23458185.557 23458187.062
+ 33.200 29.500
+ 06 1 1 12 36 0.0000000 0 7G03G13G15G16G19G23G27
+ -21312298.513 7 -16606979.497 7 20500962.446 20500960.486 20500961.463
+ 47.800 42.400
+ -19106358.411 7 -14888072.090 7 20969629.221 20969626.360 20969628.913
+ 44.000 42.300
+ -324066.054 4 -252519.005 2 24559193.950 24559193.611 24559192.962
+ 24.200 15.100
+ -13133359.834 7 -10233779.820 5 22100373.790 22100370.505 22100372.695
+ 43.600 34.100
+ -12541436.200 6 -9772543.606 5 22245408.790 22245405.705 22245407.669
+ 41.200 35.600
+ -17239161.814 7 -13433114.325 6 21379918.702 21379913.953 21379917.604
+ 44.200 38.300
+ -9126693.381 5 -7111707.770 5 23425926.322 23425924.481 23425925.496
+ 33.500 30.600
+ 06 1 1 12 37 0.0000000 0 7G03G13G15G16G19G23G27
+ -21356416.716 7 -16641357.332 7 20492566.910 20492565.084 20492566.001
+ 47.600 42.400
+ -19097052.262 7 -14880820.569 7 20971400.187 20971397.479 20971399.848
+ 44.000 42.600
+ -422956.904 3 -329576.815 2 24540376.501 24540375.199 24540375.418
+ 23.800 13.900
+ -12979668.175 7 -10114020.132 5 22129620.183 22129616.994 22129619.096
+ 43.300 34.100
+ -12727422.696 6 -9917468.150 5 22210017.968 22210013.549 22210015.766
+ 41.800 35.700
+ -17087253.128 7 -13314743.977 6 21408825.469 21408821.191 21408824.951
+ 44.400 37.600
+ -9295950.178 5 -7243596.193 5 23393718.284 23393716.304 23393717.181
+ 33.100 32.100
+ 06 1 1 12 38 0.0000000 0 7G03G13G15G16G19G23G27
+ -21398090.967 7 -16673830.794 7 20484636.573 20484634.889 20484635.690
+ 47.800 42.500
+ -19085201.929 7 -14871586.572 7 20973655.066 20973652.405 20973654.773
+ 44.000 42.400
+ -520160.592 3 -405319.956 2 24521879.825 24521878.289 24521878.630
+ 23.000 17.000
+ -12825284.221 7 -9993721.005 5 22158998.404 22158995.261 22158997.309
+ 42.900 33.600
+ -12912100.813 6 -10061373.186 6 22174874.671 22174870.429 22174872.429
+ 41.100 36.000
+ -16933486.103 7 -13194925.585 6 21438087.366 21438082.189 21438086.022
+ 44.100 38.100
+ -9464917.870 5 -7375259.351 5 23361565.176 23361562.645 23361563.878
+ 34.000 31.600
+ 06 1 1 12 39 0.0000000 0 7G03G13G15G16G19G23G27
+ -21437317.751 8 -16704397.140 7 20477172.119 20477170.212 20477171.217
+ 48.100 42.500
+ -19070808.016 7 -14860370.570 7 20976394.075 20976391.318 20976393.779
+ 43.800 42.100
+ -615658.013 3 -479733.567 3 24503705.893 24503706.302 24503704.927
+ 19.900 22.100
+ -12670219.483 7 -9872891.393 5 22188505.976 22188503.142 22188505.136
+ 43.100 33.200
+ -13095450.672 7 -10204243.200 5 22139983.460 22139979.914 22139982.361
+ 42.200 35.300
+ -16777881.196 7 -13073675.068 6 21467698.105 21467692.839 21467696.734
+ 44.300 37.800
+ -9633586.084 5 -7506689.132 5 23329467.645 23329466.496 23329466.967
+ 33.800 32.600
+ 06 1 1 12 40 0.0000000 0 7G03G13G15G16G19G23G27
+ -21474093.829 7 -16733053.850 7 20470174.041 20470172.015 20470172.996
+ 47.800 42.700
+ -19053870.576 7 -14847172.599 7 20979617.269 20979614.477 20979616.981
+ 44.000 42.000
+ -709431.155 3 -552803.525 3 24485862.606 24485861.139 24485861.142
+ 23.000 18.600
+ -12514484.441 7 -9751539.473 5 22218141.619 22218138.765 22218140.588
+ 42.500 33.100
+ -13277451.946 6 -10346062.371 5 22105351.165 22105346.320 22105348.879
+ 41.800 35.700
+ -16620458.195 7 -12951007.860 6 21497654.551 21497649.429 21497653.349
+ 43.800 37.200
+ -9801943.604 5 -7637876.841 5 23297430.675 23297428.542 23297429.745
+ 34.100 31.300
+ 06 1 1 12 41 0.0000000 0 7G03G13G15G16G19G23G27
+ -21508416.194 7 -16759798.569 7 20463642.648 20463640.641 20463641.668
+ 47.900 42.600
+ -19034391.189 7 -14831993.887 6 20983324.294 20983321.361 20983323.947
+ 44.200 41.900
+ -801461.141 4 -624515.188 3 24468349.661 24468348.587 24468348.568
+ 24.600 18.600
+ -12358091.022 7 -9629674.536 5 22247902.180 22247899.683 22247901.123
+ 42.000 33.200
+ -13458085.061 7 -10486815.434 6 22070976.944 22070973.274 22070975.210
+ 42.500 36.900
+ -16461237.068 7 -12826939.522 6 21527953.346 21527948.319 21527952.075
+ 43.400 37.400
+ -9969979.692 5 -7768814.055 5 23265454.454 23265452.746 23265453.569
+ 35.200 32.300
+ 06 1 1 12 42 0.0000000 0 7G03G13G15G16G19G23G27
+ -21540282.322 7 -16784629.345 7 20457578.420 20457576.849 20457577.518
+ 47.600 42.800
+ -19012371.413 7 -14814835.656 6 20987514.496 20987511.647 20987514.133
+ 44.000 41.900
+ -891729.343 4 -694854.055 3 24451172.042 24451171.677 24451171.030
+ 26.800 19.300
+ -12201049.704 6 -9507304.735 5 22277786.360 22277783.220 22277785.293
+ 41.900 31.600
+ -13637330.396 7 -10626487.108 6 22036868.065 22036863.842 22036865.911
+ 42.600 36.900
+ -16300237.678 7 -12701485.528 6 21558590.636 21558585.668 21558589.397
+ 43.800 37.400
+ -10137684.313 5 -7899493.006 5 23233541.700 23233539.198 23233540.504
+ 35.100 31.500
+ 06 1 1 12 43 0.0000000 0 7G03G13G15G16G19G23G27
+ -21569690.433 7 -16807544.780 7 20451982.205 20451980.601 20451981.306
+ 47.700 42.600
+ -18987813.482 7 -14795699.634 7 20992187.453 20992184.955 20992187.147
+ 43.600 42.000
+ -980218.331 4 -763806.508 3 24434333.609 24434332.596 24434332.334
+ 26.200 19.900
+ -12043371.169 7 -9384438.407 5 22307791.917 22307788.783 22307790.840
+ 42.100 32.600
+ -13815167.394 7 -10765061.384 6 22003026.207 22003022.554 22003024.620
+ 42.700 36.700
+ -16137481.296 7 -12574662.439 6 21589562.007 21589557.150 21589560.942
+ 43.600 37.200
+ -10305045.874 5 -8029904.628 5 23201693.277 23201691.536 23201692.440
+ 34.500 32.300
+ 06 1 1 12 44 0.0000000 0 7G03G13G15G16G19G23G27
+ -21596639.201 7 -16828543.844 7 20446854.192 20446852.339 20446853.287
+ 47.800 42.600
+ -18960719.660 7 -14774587.602 7 20997343.247 20997340.718 20997342.934
+ 43.500 42.000
+ -1066910.179 4 -831358.492 2 24417836.143 24417835.234 24417834.829
+ 24.600 16.100
+ -11885066.326 6 -9261084.055 5 22337916.086 22337913.333 22337914.995
+ 41.900 32.700
+ -13991577.623 7 -10902523.874 6 21969456.187 21969452.757 21969454.888
+ 43.300 36.500
+ -15972988.647 7 -12446486.432 6 21620864.023 21620859.148 21620862.921
+ 43.400 36.600
+ -10472052.980 6 -8160040.058 5 23169913.537 23169911.378 23169912.568
+ 36.400 32.800
+ 06 1 1 12 45 0.0000000 0 7G03G13G15G16G19G23G27
+ -21621127.465 7 -16847625.631 7 20442194.254 20442192.523 20442193.352
+ 47.800 42.600
+ -18931093.082 7 -14751501.993 7 21002981.058 21002978.622 21002980.802
+ 43.900 42.000
+ -1151787.423 4 -897496.590 2 24401684.208 24401683.028 24401682.898
+ 24.600 16.100
+ -11726145.409 6 -9137249.646 5 22368158.264 22368154.756 22368157.052
+ 41.700 32.300
+ -14166541.440 7 -11038859.318 6 21936162.041 21936158.249 21936160.396
+ 43.300 37.200
+ -15806780.399 7 -12316973.582 6 21652493.164 21652487.619 21652491.742
+ 43.900 36.600
+ -10638694.565 6 -8289890.673 5 23138202.570 23138200.153 23138201.690
+ 36.200 32.600
+ 06 1 1 12 46 0.0000000 0 7G03G13G15G16G19G23G27
+ -21643154.172 7 -16864789.319 7 20438002.809 20438000.913 20438001.862
+ 47.700 42.600
+ -18898937.061 7 -14726445.388 6 21009100.197 21009097.645 21009099.966
+ 44.000 41.800
+ -1234833.254 4 -962207.563 3 24385881.204 24385880.477 24385880.212
+ 25.300 20.500
+ -11566619.325 6 -9012943.678 5 22398514.925 22398511.985 22398513.660
+ 41.000 32.400
+ -14340039.916 7 -11174052.904 6 21903146.800 21903142.483 21903144.692
+ 43.100 37.100
+ -15638878.173 7 -12186140.751 6 21684443.480 21684438.414 21684442.336
+ 43.100 36.500
+ -10804958.762 6 -8419447.215 5 23106563.294 23106561.486 23106562.423
+ 36.100 33.500
+ 06 1 1 12 47 0.0000000 0 7G03G13G15G16G19G23G27
+ -21662718.902 7 -16880034.581 7 20434279.924 20434277.819 20434278.897
+ 47.800 42.400
+ -18864255.014 7 -14699420.451 6 21015700.336 21015697.366 21015699.952
+ 44.100 41.800
+ -1316030.216 4 -1025477.834 3 24370429.939 24370429.309 24370429.057
+ 27.400 19.900
+ -11406498.211 6 -8888174.040 5 22428984.861 22428982.269 22428983.811
+ 41.100 32.700
+ -14512053.823 7 -11308089.702 6 21870412.316 21870409.431 21870411.580
+ 43.600 37.600
+ -15469303.024 7 -12054004.343 6 21716712.366 21716707.661 21716711.409
+ 43.000 36.600
+ -10970834.061 6 -8548700.716 5 23074998.281 23074996.348 23074997.395
+ 36.400 32.800
+ 06 1 1 12 48 0.0000000 0 7G03G13G15G16G19G23G27
+ -21679821.520 7 -16893361.320 7 20431025.488 20431023.536 20431024.381
+ 47.700 42.800
+ -18827051.061 7 -14670430.396 7 21022779.866 21022777.294 21022779.509
+ 43.900 42.000
+ -1395361.876 4 -1087294.689 3 24355333.886 24355332.978 24355332.769
+ 25.900 19.300
+ -11245792.373 6 -8762948.782 5 22459566.150 22459563.344 22459565.104
+ 40.700 31.000
+ -14682563.949 7 -11440954.712 6 21837967.019 21837962.318 21837964.730
+ 43.600 37.700
+ -15298076.489 7 -11920581.150 5 21749295.914 21749290.929 21749294.716
+ 42.800 35.800
+ -11136309.312 6 -8677642.501 5 23043509.434 23043507.502 23043508.546
+ 36.500 33.400
+ 06 1 1 12 49 0.0000000 0 7G03G13G15G16G19G23G27
+ -21694462.784 7 -16904770.119 7 20428239.080 20428237.354 20428238.145
+ 47.900 42.900
+ -18787330.490 7 -14639479.344 6 21030338.695 21030335.762 21030338.328
+ 44.000 41.600
+ -1472812.069 3 -1147645.446 3 24340595.176 24340594.720 24340593.976
+ 23.000 19.900
+ -11084511.665 6 -8637275.582 5 22490257.018 22490254.228 22490255.829
+ 40.500 30.400
+ -14851552.140 7 -11572633.792 6 21805808.358 21805805.011 21805807.151
+ 44.000 38.000
+ -15125220.394 7 -11785888.171 5 21782189.391 21782184.373 21782188.092
+ 42.300 35.600
+ -11301372.383 6 -8806263.100 5 23012098.914 23012097.004 23012098.156
+ 36.800 32.300
+ 06 1 1 12 50 0.0000000 0 7G03G13G15G16G19G23G27
+ -21706643.689 7 -16914261.756 7 20425921.200 20425919.505 20425920.233
+ 47.800 42.700
+ -18745098.593 7 -14606571.413 6 21038375.130 21038372.333 21038374.778
+ 44.200 41.600
+ -1548364.610 3 -1206517.505 3 24326218.270 24326217.472 24326217.052
+ 22.100 19.300
+ -10922666.626 6 -8511162.631 5 22521055.200 22521052.341 22521054.136
+ 40.800 31.100
+ -15018999.943 7 -11703112.584 6 21773944.136 21773940.555 21773942.633
+ 44.300 38.200
+ -14950756.157 7 -11649942.097 5 21815388.950 21815383.957 21815387.757
+ 42.400 35.600
+ -11466011.189 6 -8934553.107 5 22980769.258 22980767.414 22980768.245
+ 36.600 33.000
+ 06 1 1 12 51 0.0000000 0 7G03G13G15G16G19G23G27
+ -21716365.153 7 -16921836.948 7 20424071.143 20424069.491 20424070.282
+ 47.900 42.700
+ -18700359.194 7 -14571709.581 6 21046888.643 21046885.958 21046888.352
+ 44.300 41.300
+ -1622003.990 4 -1263898.852 2 24312204.467 24312203.479 24312203.748
+ 24.900 17.000
+ -10760267.207 6 -8384617.702 5 22551958.898 22551955.611 22551957.806
+ 40.500 30.200
+ -15184888.252 7 -11832376.183 6 21742377.527 21742373.136 21742375.210
+ 44.000 38.100
+ -14774706.469 6 -11512760.595 5 21848889.638 21848885.079 21848888.623
+ 41.500 34.800
+ -11630214.303 6 -9062503.624 5 22949522.847 22949520.589 22949521.872
+ 37.700 33.500
+ 06 1 1 12 52 0.0000000 0 7G03G13G15G16G19G23G27
+ -21723628.635 8 -16927496.832 7 20422689.250 20422687.324 20422688.320
+ 48.200 42.700
+ -18653119.418 7 -14534899.406 6 21055878.232 21055875.428 21055877.898
+ 44.100 41.200
+ -1693714.427 4 -1319777.118 3 24298559.092 24298558.193 24298557.727
+ 24.200 19.300
+ -10597323.168 6 -8257648.412 5 22582965.816 22582963.114 22582964.838
+ 40.200 30.400
+ -15349199.239 7 -11960410.698 6 21711109.713 21711105.771 21711107.815
+ 44.300 38.400
+ -14597093.224 6 -11374360.744 5 21882688.752 21882683.873 21882687.715
+ 41.800 35.200
+ -11793968.951 6 -9190104.672 5 22918360.983 22918359.192 22918360.075
+ 37.500 35.200
+ 06 1 1 12 53 0.0000000 0 7G03G13G15G16G19G23G27
+ -21728436.662 8 -16931243.371 7 20421774.450 20421772.602 20421773.451
+ 48.100 43.000
+ -18603385.152 7 -14496145.479 6 21065342.319 21065339.416 21065341.984
+ 44.000 41.000
+ -1763480.479 4 -1374140.262 2 24285283.116 24285282.240 24285282.120
+ 24.600 17.800
+ -10433844.462 6 -8130262.472 5 22614075.289 22614072.253 22614074.024
+ 39.300 30.400
+ -15511914.076 7 -12087201.468 6 21680145.757 21680142.279 21680144.234
+ 44.700 38.500
+ -14417938.572 6 -11234759.811 5 21916780.744 21916776.107 21916779.597
+ 41.500 35.600
+ -11957262.933 6 -9317346.757 5 22887287.764 22887285.374 22887286.659
+ 37.700 34.500
+ 06 1 1 12 54 0.0000000 0 7G03G13G15G16G19G23G27
+ -21730791.234 8 -16933078.131 7 20421326.288 20421324.381 20421325.298
+ 48.200 42.800
+ -18551163.928 7 -14455453.660 6 21075279.617 21075276.979 21075279.331
+ 44.200 41.200
+ -1831287.050 3 -1426976.556 3 24272379.352 24272379.445 24272378.474
+ 23.800 21.100
+ -10269840.420 6 -8002467.190 5 22645284.229 22645281.115 22645282.908
+ 39.400 30.600
+ -15673016.289 7 -12212735.648 6 21649488.931 21649485.409 21649487.410
+ 44.600 38.600
+ -14237265.237 6 -11093975.481 5 21951161.617 21951157.179 21951160.622
+ 41.200 35.200
+ -12120083.805 6 -9444220.202 5 22856303.888 22856301.418 22856302.835
+ 38.000 33.400
+ 06 1 1 12 55 0.0000000 0 7G03G13G15G16G19G23G27
+ -21730695.205 8 -16933003.330 7 20421344.675 20421342.704 20421343.711
+ 48.200 42.700
+ -18496462.588 7 -14412829.283 6 21085689.051 21085686.461 21085688.711
+ 43.700 41.200
+ -1897119.512 4 -1478274.605 2 24259852.949 24259851.279 24259851.650
+ 24.200 17.800
+ -10105321.188 6 -7874270.477 5 22676591.158 22676588.411 22676590.091
+ 39.100 30.100
+ -15832487.245 7 -12336998.717 6 21619143.174 21619139.001 21619141.237
+ 44.700 38.500
+ -14055095.613 6 -10952025.214 5 21985827.972 21985822.886 21985826.673
+ 40.900 34.300
+ -12282418.999 6 -9570715.201 5 22825412.527 22825410.197 22825411.488
+ 38.100 34.600
+ 06 1 1 12 56 0.0000000 0 7G03G13G15G16G19G23G27
+ -21728151.735 8 -16931021.429 7 20421828.730 20421826.663 20421827.802
+ 48.400 42.600
+ -18439288.347 7 -14368277.976 6 21096568.709 21096566.255 21096568.338
+ 43.400 40.800
+ -1960963.559 3 -1528023.303 3 24247702.509 24247702.721 24247701.356
+ 22.600 19.900
+ -9940296.032 6 -7745679.530 4 22707994.872 22707991.670 22707993.527
+ 39.100 29.900
+ -15990310.029 7 -12459977.524 6 21589110.609 21589106.456 21589108.389
+ 44.600 38.900
+ -13871452.462 6 -10808926.751 5 22020773.659 22020769.403 22020772.882
+ 41.200 34.800
+ -12444256.077 6 -9696822.040 5 22794615.620 22794613.777 22794614.654
+ 37.400 35.100
+ 06 1 1 12 57 0.0000000 0 7G03G13G15G16G19G23G27
+ -21723164.410 8 -16927135.227 7 20422777.844 20422775.846 20422776.800
+ 48.300 42.700
+ -18379649.618 7 -14321806.281 6 21107917.553 21107915.329 21107917.268
+ 43.200 40.900
+ -2022804.963 3 -1576211.453 3 24235934.831 24235934.753 24235933.663
+ 22.100 21.100
+ -9774774.056 6 -7616701.460 4 22739492.376 22739489.428 22739491.306
+ 38.900 29.200
+ -16146467.305 7 -12581658.519 6 21559394.624 21559390.801 21559392.767
+ 44.900 39.400
+ -13686358.650 6 -10664697.898 5 22055996.464 22055991.347 22055994.997
+ 40.500 33.600
+ -12605582.427 6 -9822530.927 5 22763916.562 22763914.473 22763915.537
+ 38.600 35.400
+ 06 1 1 12 58 0.0000000 0 7G03G13G15G16G19G23G27
+ -21715736.871 8 -16921347.558 7 20424190.890 20424189.276 20424190.019
+ 48.000 42.700
+ -18317555.016 7 -14273420.924 6 21119734.024 21119731.342 21119733.692
+ 43.600 40.300
+ -2082630.299 4 -1622828.666 3 24224550.539 24224550.374 24224549.810
+ 24.200 19.900
+ -9608764.752 6 -7487343.654 4 22771082.619 22771080.298 22771081.589
+ 38.300 29.200
+ -16300941.607 7 -12702028.114 6 21529999.012 21529995.310 21529997.305
+ 45.300 39.600
+ -13499836.958 6 -10519356.418 5 22091489.475 22091485.263 22091488.856
+ 40.500 33.500
+ -12766385.059 6 -9947831.701 5 22733316.631 22733314.885 22733315.656
+ 38.400 35.700
+ 06 1 1 12 59 0.0000000 0 7G03G13G15G16G19G23G27
+ -21705874.205 7 -16913662.387 7 20426067.915 20426066.092 20426066.951
+ 47.900 42.600
+ -18253012.832 7 -14223128.364 6 21132016.025 21132013.305 21132015.736
+ 43.400 40.300
+ -2140425.686 4 -1667864.106 3 24213552.685 24213552.479 24213551.609
+ 24.200 19.900
+ -9442277.362 6 -7357613.328 4 22802764.985 22802761.839 22802763.698
+ 38.500 28.800
+ -16453716.000 7 -12821073.109 6 21500927.252 21500923.407 21500925.494
+ 45.700 39.800
+ -13311910.706 6 -10372920.484 5 22127251.921 22127246.557 22127250.249
+ 40.100 33.600
+ -12926650.793 6 -10072714.115 6 22702819.258 22702817.431 22702818.319
+ 39.400 36.400
+ 06 1 1 13 0 0.0000000 0 7G03G13G15G16G19G23G27
+ -21693580.558 8 -16904082.940 7 20428407.160 20428405.436 20428406.262
+ 48.000 42.500
+ -18186032.409 7 -14170935.878 6 21144761.873 21144759.374 21144761.547
+ 43.400 40.200
+ -2196178.154 4 -1711307.637 3 24202943.673 24202942.816 24202942.468
+ 24.600 20.500
+ -9275320.741 6 -7227517.354 4 22834535.570 22834532.745 22834534.458
+ 38.000 29.000
+ -16604773.756 7 -12938780.466 6 21472181.901 21472177.924 21472180.214
+ 45.900 39.700
+ -13122602.828 6 -10225407.928 5 22163275.381 22163271.099 22163274.509
+ 39.700 34.100
+ -13086366.971 6 -10197168.315 5 22672426.081 22672424.307 22672425.215
+ 39.200 35.300
+ 06 1 1 13 1 0.0000000 0 7G03G13G15G16G19G23G27
+ -21678861.087 8 -16892613.247 7 20431208.346 20431206.499 20431207.355
+ 48.000 42.400
+ -18116623.626 7 -14116851.167 6 21157970.147 21157967.641 21157969.804
+ 43.600 40.200
+ -2249874.720 4 -1753149.049 3 24192725.391 24192725.027 24192724.426
+ 25.300 23.400
+ -9107903.892 6 -7097062.764 4 22866393.707 22866391.285 22866392.387
+ 37.600 28.600
+ -16754098.621 7 -13055137.518 6 21443765.615 21443762.412 21443764.522
+ 46.100 40.300
+ -12931936.878 6 -10076837.200 5 22199556.882 22199553.547 22199556.921
+ 39.700 33.500
+ -13245521.137 6 -10321184.590 5 22642140.234 22642138.057 22642139.213
+ 39.000 35.400
+ 06 1 1 13 2 0.0000000 0 7G03G13G15G16G19G23G27
+ -21661721.299 7 -16879257.592 7 20434469.826 20434468.133 20434468.887
+ 47.900 42.600
+ -18044796.570 7 -14060882.089 6 21171638.398 21171635.685 21171638.172
+ 43.900 39.700
+ -2301503.282 4 -1793379.069 3 24182900.660 24182900.419 24182899.406
+ 24.200 23.000
+ -8940036.479 6 -6966257.085 4 22898338.459 22898335.021 22898337.213
+ 38.000 27.900
+ -16901674.245 7 -13170131.506 6 21415683.485 21415679.738 21415681.631
+ 45.800 40.200
+ -12739936.243 6 -9927226.417 5 22236095.002 22236089.933 22236093.580
+ 39.500 32.400
+ -13404098.925 6 -10444751.727 6 22611963.372 22611962.090 22611962.812
+ 40.100 36.900
+ 06 1 1 13 3 0.0000000 0 7G03G13G15G16G19G23G27
+ -21642166.804 7 -16864020.346 7 20438190.852 20438189.170 20438189.994
+ 47.900 42.500
+ -17970561.774 7 -14003036.845 6 21185765.103 21185762.463 21185764.822
+ 43.900 39.800
+ -2351051.652 4 -1831988.125 3 24173471.559 24173471.438 24173470.413
+ 25.900 23.400
+ -8771726.151 6 -6835106.284 4 22930366.736 22930363.862 22930365.647
+ 37.700 28.400
+ -17047484.389 7 -13283749.774 6 21387936.537 21387932.932 21387934.852
+ 45.800 40.500
+ -12546624.223 6 -9776593.773 5 22272881.680 22272876.519 22272879.958
+ 39.400 33.500
+ -13562086.983 6 -10567859.344 6 22581899.886 22581897.797 22581898.940
+ 39.900 36.300
+ 06 1 1 13 4 0.0000000 0 7G03G13G15G16G19G23G27
+ -21620203.431 8 -16846906.050 7 20442370.459 20442368.750 20442369.517
+ 48.000 42.500
+ -17893929.969 7 -13943323.803 6 21200347.417 21200344.888 21200347.117
+ 43.900 39.800
+ -2398508.016 4 -1868967.129 3 24164442.247 24164440.985 24164440.955
+ 27.900 23.400
+ -8602982.036 6 -6703617.465 4 22962477.002 22962474.972 22962476.143
+ 38.100 28.100
+ -17191513.289 7 -13395980.059 6 21360529.171 21360525.100 21360527.147
+ 45.800 40.700
+ -12352024.765 6 -9624957.938 5 22309911.839 22309907.370 22309910.825
+ 38.200 32.700
+ -13719472.862 6 -10690497.722 6 22551950.418 22551948.333 22551949.484
+ 40.400 36.700
+ 06 1 1 13 5 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21595838.562 7 -16827920.466 7 20447006.859 20447005.360 20447005.984
+ 47.800 42.400
+ -332815.390 4 -259336.411 4 24706048.911 24706047.350 24706048.149
+ 25.900 24.200
+ -17814912.015 7 -13881751.432 6 21215384.331 21215381.698 21215383.962
+ 43.800 40.000
+ -2443860.643 3 -1904306.854 3 24155810.971 24155810.134 24155809.840
+ 23.800 19.900
+ -8433812.840 6 -6571797.410 4 22994669.379 22994666.926 22994668.274
+ 36.700 28.100
+ -17333745.255 7 -13506810.145 6 21333463.159 21333459.291 21333461.285
+ 46.100 40.900
+ -12156161.339 6 -9472337.209 5 22347183.469 22347178.961 22347182.743
+ 39.400 31.800
+ -13876241.730 6 -10812655.311 6 22522118.069 22522116.301 22522117.102
+ 39.500 37.000
+ 06 1 1 13 6 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21569078.862 7 -16807068.779 7 20452099.264 20452097.562 20452098.297
+ 47.800 42.400
+ -545260.393 3 -424877.956 3 24665623.200 24665620.414 24665622.151
+ 23.400 22.600
+ -17733519.652 7 -13818328.873 6 21230872.582 21230870.235 21230872.298
+ 43.500 39.800
+ -2487098.442 4 -1937998.639 3 24147583.665 24147582.338 24147582.364
+ 25.600 21.100
+ -8264227.338 6 -6439652.976 4 23026940.542 23026938.411 23026939.309
+ 36.400 28.400
+ -17474164.868 7 -13616228.006 6 21306741.690 21306738.244 21306740.258
+ 46.300 40.900
+ -11959057.353 6 -9318749.795 5 22384690.638 22384686.832 22384690.160
+ 38.700 31.800
+ -14032380.472 6 -10934321.895 5 22492405.940 22492403.890 22492404.981
+ 40.300 35.900
+ 06 1 1 13 7 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21539931.231 7 -16784356.372 7 20457645.778 20457644.172 20457644.891
+ 47.900 42.200
+ -757699.656 3 -590415.124 2 24625196.310 24625194.433 24625195.326
+ 21.600 17.000
+ -17649765.102 7 -13753065.648 6 21246810.793 21246808.076 21246810.453
+ 43.600 39.500
+ -2528210.881 4 -1970034.336 3 24139759.936 24139758.773 24139758.764
+ 24.600 19.900
+ -8094233.348 6 -6307190.256 4 23059289.521 23059286.597 23059288.434
+ 36.100 26.500
+ -17612757.200 7 -13724222.011 6 21280369.095 21280364.856 21280367.126
+ 46.200 40.800
+ -11760737.031 6 -9164214.604 5 22422430.057 22422425.847 22422429.188
+ 37.700 32.000
+ -14187874.984 6 -11055486.491 6 22462816.454 22462814.647 22462815.427
+ 40.600 37.300
+ 06 1 1 13 8 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21508404.215 8 -16759789.903 7 20463645.303 20463643.603 20463644.346
+ 48.100 42.100
+ -970121.685 2 -755938.831 3 24584773.415 24584772.254 24584772.426
+ 17.800 19.900
+ -17563661.041 7 -13685971.642 6 21263195.774 21263193.441 21263195.458
+ 43.500 39.800
+ -2567187.664 4 -2000405.921 3 24132342.978 24132342.203 24132341.825
+ 25.900 21.100
+ -7923839.533 5 -6174415.968 4 23091713.922 23091711.843 23091712.866
+ 35.400 27.100
+ -17749507.046 7 -13830780.321 6 21254345.965 21254342.251 21254344.333
+ 46.400 41.000
+ -11561223.999 6 -9008750.026 5 22460396.449 22460392.164 22460395.403
+ 36.900 32.800
+ -14342711.903 6 -11176138.670 6 22433351.848 22433350.027 22433350.870
+ 40.900 36.900
+ 06 1 1 13 9 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21474505.230 7 -16733375.141 7 20470096.181 20470094.331 20470095.157
+ 47.900 42.200
+ -1182515.143 3 -921440.251 2 24544355.977 24544354.166 24544354.849
+ 23.400 17.000
+ -17475219.829 7 -13617056.477 6 21280025.538 21280023.200 21280025.170
+ 43.000 39.400
+ -2604018.005 4 -2029104.880 3 24125333.791 24125333.683 24125332.782
+ 25.300 21.100
+ -7753053.964 5 -6041336.407 4 23124214.361 23124211.389 23124213.229
+ 35.500 27.100
+ -17884399.511 7 -13935891.306 6 21228677.031 21228673.186 21228675.416
+ 46.800 41.500
+ -11360542.950 6 -8852375.318 5 22498585.149 22498580.678 22498583.986
+ 37.900 31.600
+ -14496876.946 6 -11296267.321 6 22404015.283 22404013.463 22404014.314
+ 41.000 37.400
+ 06 1 1 13 10 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21438242.527 8 -16705118.527 7 20476996.817 20476994.996 20476995.816
+ 48.000 42.300
+ -1394867.334 3 -1086909.535 3 24503948.116 24503945.265 24503947.200
+ 23.400 21.100
+ -17384454.549 7 -13546330.343 6 21297297.435 21297295.300 21297297.143
+ 42.900 39.300
+ -2638692.487 4 -2056123.991 3 24118735.403 24118735.433 24118734.677
+ 25.300 20.500
+ -7581884.553 5 -5907957.759 4 23156786.488 23156783.669 23156785.314
+ 35.100 25.300
+ -18017420.363 7 -14039543.900 6 21203364.178 21203360.190 21203362.317
+ 46.800 41.800
+ -11158716.730 6 -8695108.245 5 22536990.741 22536987.162 22536990.092
+ 36.800 31.100
+ -14650355.893 6 -11415861.322 6 22374809.236 22374807.537 22374808.353
+ 41.100 37.600
+ 06 1 1 13 11 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21399625.008 7 -16675026.997 7 20484345.510 20484343.728 20484344.458
+ 47.800 42.200
+ -1607167.469 3 -1252338.262 2 24463547.686 24463545.218 24463546.561
+ 22.600 17.000
+ -17291379.256 7 -13473804.196 6 21315009.305 21315007.177 21315008.945
+ 42.800 39.300
+ -2671202.286 4 -2081456.307 3 24112548.880 24112548.292 24112548.140
+ 24.900 19.300
+ -7410339.361 6 -5774286.295 4 23189430.883 23189427.167 23189429.670
+ 36.200 24.600
+ -18148555.705 7 -14141727.275 6 21178409.738 21178405.948 21178408.107
+ 46.900 41.800
+ -10955769.993 6 -8536968.064 5 22575610.632 22575606.635 22575609.883
+ 36.700 30.400
+ -14803134.420 6 -11534909.572 6 22345736.691 22345734.400 22345735.750
+ 41.600 36.900
+ 06 1 1 13 12 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21358661.637 7 -16643107.514 7 20492140.520 20492138.822 20492139.502
+ 47.800 42.100
+ -1819402.080 4 -1417715.962 3 24423161.143 24423158.704 24423159.948
+ 24.600 18.600
+ -17196006.861 7 -13399488.111 6 21333158.060 21333155.908 21333157.784
+ 42.800 39.100
+ -2701537.750 4 -2105094.354 3 24106776.769 24106776.885 24106775.667
+ 25.300 23.400
+ -7238426.462 5 -5640328.286 4 23222144.022 23222142.064 23222143.013
+ 35.300 25.600
+ -18277790.966 7 -14242430.081 6 21153817.224 21153813.184 21153815.395
+ 46.800 41.900
+ -10751726.951 6 -8377973.594 5 22614439.104 22614434.911 22614438.149
+ 36.900 30.100
+ -14955198.705 6 -11653401.260 6 22316799.711 22316797.700 22316798.658
+ 41.200 37.700
+ 06 1 1 13 13 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21315361.289 7 -16609367.013 7 20500380.223 20500378.654 20500379.347
+ 47.700 42.200
+ -2031559.711 3 -1583033.631 3 24382787.933 24382787.031 24382786.984
+ 23.000 23.400
+ -17098352.497 7 -13323393.862 6 21351741.284 21351738.937 21351740.937
+ 42.900 38.700
+ -2729689.935 4 -2127031.139 3 24101419.453 24101419.219 24101418.222
+ 25.900 22.600
+ -7066153.590 5 -5506089.796 4 23254927.216 23254924.834 23254926.097
+ 34.800 25.600
+ -18405113.069 7 -14341642.108 7 21129588.585 21129584.548 21129586.778
+ 46.800 42.000
+ -10546611.950 6 -8218143.857 5 22653471.759 22653467.334 22653470.537
+ 36.600 31.100
+ -15106534.165 6 -11771325.028 6 22288001.476 22287999.611 22288000.520
+ 41.600 37.500
+ 06 1 1 13 14 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21269734.065 7 -16573813.370 7 20509062.737 20509061.383 20509061.813
+ 47.800 42.300
+ -2243627.576 4 -1748281.374 4 24342434.715 24342431.597 24342433.569
+ 26.800 25.300
+ -16998430.230 7 -13245532.416 6 21370755.728 21370753.533 21370755.375
+ 42.700 38.200
+ -2755650.926 4 -2147260.508 2 24096480.329 24096478.681 24096478.909
+ 25.300 17.800
+ -6893528.341 5 -5371576.731 4 23287776.922 23287774.343 23287775.971
+ 35.400 25.900
+ -18530508.223 7 -14439352.625 6 21105726.346 21105722.558 21105724.823
+ 46.900 41.900
+ -10340448.637 5 -8057497.268 5 22692702.925 22692698.763 22692702.153
+ 35.800 30.200
+ -15257126.569 6 -11888669.802 6 22259344.684 22259343.167 22259343.786
+ 41.800 38.400
+ 06 1 1 13 15 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21221790.095 8 -16536454.464 7 20518186.510 20518184.894 20518185.454
+ 48.000 42.500
+ -2455592.566 3 -1913448.947 3 24302098.627 24302096.396 24302097.311
+ 21.600 21.600
+ -16896255.109 7 -13165915.496 6 21390199.161 21390196.963 21390198.838
+ 42.700 38.500
+ -2779412.948 4 -2165776.383 3 24091958.118 24091957.428 24091956.910
+ 26.800 22.100
+ -6720558.566 5 -5236795.204 4 23320691.292 23320689.303 23320690.224
+ 34.300 24.900
+ -18653963.195 7 -14535551.320 7 21082233.800 21082229.972 21082232.173
+ 47.000 42.100
+ -10133261.960 6 -7896053.246 4 22732129.203 22732125.152 22732128.338
+ 36.100 29.500
+ -15406961.243 7 -12005424.124 6 22230832.386 22230830.379 22230831.329
+ 42.100 38.400
+ 06 1 1 13 16 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21171539.678 7 -16497298.326 6 20527748.464 20527747.084 20527747.547
+ 47.800 41.900
+ -2667441.864 3 -2078526.389 3 24261784.623 24261782.966 24261783.354
+ 23.400 22.600
+ -16791842.658 7 -13084555.210 6 21410068.009 21410065.850 21410067.703
+ 42.300 37.700
+ -2800967.986 4 -2182572.595 2 24087855.893 24087854.891 24087854.916
+ 24.900 17.000
+ -6547251.840 5 -5101751.132 4 23353671.092 23353668.636 23353669.937
+ 33.600 25.900
+ -18775465.239 7 -14630228.253 7 21059112.788 21059108.840 21059111.038
+ 47.100 42.000
+ -9925075.825 5 -7733830.394 5 22771745.902 22771742.337 22771744.787
+ 35.800 31.000
+ -15556022.678 7 -12121575.935 6 22202466.771 22202464.854 22202465.889
+ 42.300 37.800
+ 06 1 1 13 17 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21118993.270 7 -16456353.111 6 20537748.211 20537746.227 20537747.164
+ 47.900 41.600
+ -2879163.132 4 -2243504.057 3 24221495.636 24221493.761 24221494.493
+ 26.500 20.500
+ -16685208.170 7 -13001463.479 6 21430360.058 21430357.916 21430359.781
+ 42.300 38.000
+ -2820309.470 4 -2197643.904 3 24084175.323 24084174.605 24084174.095
+ 25.300 19.300
+ -6373615.390 5 -4966450.141 4 23386712.258 23386710.306 23386711.336
+ 32.800 24.600
+ -18895001.623 7 -14723373.495 7 21036365.886 21036361.941 21036364.057
+ 47.000 42.400
+ -9715914.693 5 -7570847.844 5 22811548.812 22811544.010 22811547.247
+ 34.400 30.800
+ -15704297.536 7 -12237114.826 6 22174251.150 22174249.305 22174250.214
+ 42.600 38.300
+ 06 1 1 13 18 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21064161.727 7 -16413627.270 6 20548182.150 20548180.421 20548181.194
+ 47.900 41.800
+ -3090742.421 4 -2408371.145 2 24181233.334 24181230.367 24181232.613
+ 28.400 15.100
+ -16576367.843 7 -12916652.896 6 21451071.898 21451069.411 21451071.480
+ 42.100 37.700
+ -2837430.561 4 -2210985.088 3 24080917.249 24080916.638 24080916.145
+ 27.900 18.600
+ -6199656.291 5 -4830897.725 4 23419816.080 23419814.544 23419815.064
+ 33.500 24.900
+ -19012559.713 7 -14814977.223 7 21013995.399 21013991.268 21013993.614
+ 47.100 42.500
+ -9505802.640 5 -7407124.329 4 22851531.316 22851527.408 22851530.237
+ 35.100 29.900
+ -15851770.038 7 -12352028.506 6 22146187.984 22146186.203 22146187.060
+ 42.700 38.800
+ 06 1 1 13 19 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -21007056.684 7 -16369129.874 6 20559048.896 20559047.224 20559048.020
+ 47.900 41.800
+ -3302167.566 4 -2573118.135 3 24140999.677 24140998.420 24140998.611
+ 25.300 20.500
+ -16465337.291 7 -12830135.661 6 21472200.158 21472197.892 21472199.856
+ 42.100 37.400
+ -2852324.716 4 -2222590.923 3 24078082.990 24078082.728 24078082.117
+ 26.500 19.900
+ -6025382.187 5 -4695099.855 3 23452979.996 23452976.941 23452978.912
+ 33.900 23.000
+ -19128127.684 7 -14905030.206 7 20992003.729 20991999.523 20992001.732
+ 46.900 42.900
+ -9294764.379 5 -7242679.054 4 22891690.466 22891686.869 22891689.393
+ 35.500 29.500
+ -15998425.933 7 -12466305.863 6 22118280.461 22118278.561 22118279.430
+ 42.800 38.700
+ 06 1 1 13 20 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20947689.352 7 -16322869.649 6 20570346.302 20570344.582 20570345.291
+ 47.700 41.800
+ -3513424.634 3 -2737734.088 4 24100799.337 24100798.163 24100797.833
+ 23.000 25.300
+ -16352133.755 7 -12741925.177 6 21493742.580 21493740.313 21493742.207
+ 42.200 37.800
+ -2864985.246 4 -2232456.371 3 24075673.889 24075673.173 24075672.879
+ 24.200 19.900
+ -5850800.030 5 -4559061.923 3 23486201.160 23486199.520 23486199.965
+ 32.600 23.000
+ -19241693.667 7 -14993523.174 7 20970392.507 20970388.733 20970390.656
+ 46.800 43.000
+ -9082823.767 5 -7077530.677 4 22932021.783 22932017.834 22932020.737
+ 35.400 28.100
+ -16144250.371 7 -12579935.328 6 22090530.578 22090529.278 22090529.753
+ 42.700 39.100
+ 06 1 1 13 21 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20886071.473 7 -16274855.755 6 20582071.735 20582070.090 20582070.773
+ 47.900 41.600
+ -3724500.091 4 -2902208.476 4 24060633.068 24060632.331 24060632.308
+ 24.200 27.600
+ -16236773.963 6 -12652034.498 6 21515694.509 21515692.134 21515694.201
+ 41.900 36.800
+ -2875407.087 4 -2240577.335 2 24073690.981 24073690.098 24073689.778
+ 26.800 16.100
+ -5675916.876 5 -4422789.478 3 23519481.082 23519478.808 23519479.898
+ 32.800 23.000
+ -19353246.104 7 -15080447.148 7 20949164.913 20949161.052 20949163.119
+ 47.000 43.400
+ -8870005.691 5 -6911698.546 4 22972520.030 22972515.583 22972518.751
+ 34.100 27.900
+ -16289228.233 7 -12692905.125 6 22062942.455 22062940.823 22062941.523
+ 43.000 39.100
+ 06 1 1 13 22 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20822214.920 8 -16225097.436 6 20594223.186 20594221.622 20594222.263
+ 48.100 41.300
+ -3935380.347 4 -3066530.805 4 24020504.362 24020502.434 24020503.416
+ 27.100 24.600
+ -16119275.135 6 -12560477.042 6 21538053.997 21538051.897 21538053.587
+ 41.700 37.600
+ -2883584.919 4 -2246949.700 3 24072135.329 24072134.393 24072134.168
+ 27.100 19.900
+ -5500739.483 5 -4286287.749 3 23552816.402 23552813.921 23552815.292
+ 32.600 22.600
+ -19462773.791 7 -15165793.402 7 20928322.501 20928318.533 20928320.714
+ 47.100 43.600
+ -8656334.806 5 -6745201.872 4 23013180.196 23013176.406 23013179.066
+ 32.800 28.400
+ -16433343.976 7 -12805203.135 6 22035518.088 22035516.610 22035517.196
+ 43.300 39.500
+ 06 1 1 13 23 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20756132.637 7 -16173604.778 6 20606798.158 20606796.660 20606797.252
+ 47.900 41.400
+ -4146051.345 4 -3230690.093 4 23980415.217 23980413.114 23980414.238
+ 27.900 24.600
+ -15999655.122 6 -12467266.701 6 21560816.706 21560814.625 21560816.416
+ 41.600 37.100
+ -2889513.972 4 -2251569.736 3 24071007.006 24071005.671 24071005.880
+ 27.600 19.900
+ -5325275.317 5 -4149562.550 3 23586205.725 23586204.168 23586204.866
+ 31.600 23.400
+ -19570265.532 7 -15249553.205 7 20907867.442 20907863.505 20907865.589
+ 47.100 43.600
+ -8441835.231 5 -6578059.483 5 23053998.698 23053994.807 23053997.554
+ 35.700 30.200
+ -16576582.551 7 -12916817.644 6 22008260.852 22008259.070 22008259.836
+ 43.100 39.300
+ 06 1 1 13 24 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20687837.289 7 -16120387.656 6 20619794.169 20619792.805 20619793.328
+ 47.700 41.400
+ -4356499.339 4 -3394675.631 3 23940366.987 23940366.416 23940366.815
+ 28.100 20.500
+ -15877931.076 6 -12372416.872 6 21583980.193 21583978.002 21583979.829
+ 41.500 36.500
+ -2893189.401 4 -2254433.705 3 24070307.192 24070306.175 24070306.096
+ 26.500 20.500
+ -5149530.709 5 -4012618.873 3 23619649.807 23619647.868 23619648.669
+ 32.700 23.800
+ -19675710.687 7 -15331718.252 7 20887802.030 20887797.993 20887800.231
+ 47.300 43.800
+ -8226531.114 5 -6410290.212 4 23094969.874 23094965.358 23094968.644
+ 34.000 28.100
+ -16718929.067 7 -13027737.047 6 21981173.420 21981171.663 21981172.317
+ 43.200 40.000
+ 06 1 1 13 25 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20617341.629 7 -16065456.008 6 20633209.365 20633207.662 20633208.448
+ 47.900 41.400
+ -4566709.540 4 -3558475.943 3 23900365.976 23900365.021 23900365.162
+ 28.800 23.000
+ -15754121.820 6 -12275942.182 6 21607540.092 21607538.198 21607539.845
+ 41.500 36.700
+ -2894607.423 4 -2255538.643 3 24070037.484 24070036.384 24070036.375
+ 26.200 19.300
+ -4973512.605 5 -3875462.061 3 23653143.600 23653141.801 23653142.948
+ 31.300 21.100
+ -19779099.209 7 -15412280.728 7 20868127.719 20868123.967 20868125.848
+ 47.000 44.100
+ -8010447.241 5 -6241913.282 4 23136089.231 23136085.005 23136087.869
+ 32.400 27.600
+ -16860367.230 7 -13137948.629 6 21954258.278 21954256.940 21954257.351
+ 43.300 40.100
+ 06 1 1 13 26 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20544659.125 7 -16008820.326 6 20647040.390 20647038.745 20647039.453
+ 47.600 41.200
+ -4776668.334 4 -3722080.277 3 23860413.276 23860409.957 23860412.182
+ 25.600 19.300
+ -15628245.232 6 -12177856.598 6 21631493.833 21631491.981 21631493.475
+ 41.400 36.500
+ -2893764.368 4 -2254881.724 3 24070197.705 24070196.872 24070196.593
+ 25.600 18.600
+ -4797227.406 5 -3738097.143 3 23686691.826 23686688.392 23686690.611
+ 33.100 20.500
+ -19880420.670 7 -15491232.511 7 20848846.944 20848843.047 20848845.008
+ 47.000 44.200
+ -7793607.640 5 -6072947.515 4 23177352.873 23177348.391 23177351.443
+ 33.100 28.400
+ -17000882.356 7 -13247440.970 6 21927519.372 21927517.555 21927518.418
+ 43.900 39.800
+ 06 1 1 13 27 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20469803.039 7 -15950490.946 6 20661285.131 20661283.491 20661284.127
+ 47.700 41.100
+ -4986360.839 4 -3885477.115 4 23820509.623 23820508.527 23820508.893
+ 26.500 26.500
+ -15500320.495 6 -12078175.058 6 21655837.095 21655835.447 21655836.816
+ 40.700 36.500
+ -2890656.591 4 -2252460.046 3 24070788.141 24070788.227 24070787.424
+ 25.900 19.900
+ -4620681.450 5 -3600529.048 3 23720286.828 23720284.554 23720285.685
+ 31.000 23.000
+ -19979665.676 7 -15568566.278 7 20829961.174 20829957.280 20829959.339
+ 47.100 44.100
+ -7576037.333 5 -5903412.371 4 23218753.730 23218750.659 23218753.419
+ 32.600 27.100
+ -17140459.580 7 -13356202.477 6 21900958.719 21900957.057 21900957.845
+ 44.100 40.200
+ 06 1 1 13 28 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20392787.311 7 -15890478.727 6 20675940.558 20675939.170 20675939.681
+ 47.400 40.900
+ -5195771.896 5 -4048654.581 4 23780660.108 23780658.928 23780658.969
+ 30.100 28.400
+ -15370366.152 6 -11976912.012 5 21680567.116 21680564.636 21680566.674
+ 41.000 35.800
+ -2885281.430 4 -2248271.598 3 24071811.882 24071811.553 24071810.798
+ 26.200 19.900
+ -4443881.271 5 -3462762.847 3 23753930.411 23753928.579 23753929.338
+ 31.000 20.500
+ -20076824.192 7 -15644274.204 7 20811472.312 20811468.686 20811470.546
+ 47.000 44.400
+ -7357760.471 5 -5733326.626 4 23260291.367 23260287.441 23260290.135
+ 32.600 26.200
+ -17279082.593 7 -13464220.444 6 21874579.624 21874577.966 21874578.739
+ 44.300 40.300
+ 06 1 1 13 29 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20313626.093 7 -15828794.702 6 20691004.511 20691003.114 20691003.641
+ 47.800 41.000
+ -5404887.983 5 -4211602.253 4 23740867.921 23740865.141 23740866.750
+ 31.300 27.400
+ -15238401.296 6 -11874082.324 5 21705678.987 21705676.819 21705678.686
+ 41.100 35.800
+ -2877636.314 4 -2242314.430 2 24073266.875 24073265.302 24073265.704
+ 27.400 16.100
+ -4266833.594 5 -3324803.793 3 23787621.738 23787619.670 23787620.683
+ 30.200 18.600
+ -20171887.368 7 -15718349.392 7 20793382.434 20793378.714 20793380.715
+ 47.200 44.700
+ -7138801.315 5 -5562709.248 4 23301957.887 23301954.229 23301956.894
+ 31.500 25.900
+ -17416735.562 7 -13571482.528 6 21848385.202 21848383.579 21848384.201
+ 44.000 40.700
+ 06 1 1 13 30 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20232333.218 7 -15765449.648 6 20706474.140 20706472.601 20706473.173
+ 47.600 40.900
+ -5613693.718 4 -4374308.113 4 23701133.057 23701130.740 23701131.819
+ 28.400 25.600
+ -15104445.882 6 -11769701.551 5 21731169.740 21731167.843 21731169.336
+ 40.700 35.700
+ -2867718.345 4 -2234586.151 2 24075154.332 24075153.154 24075153.150
+ 27.600 17.000
+ -4089544.057 5 -3186656.277 3 23821358.772 23821357.012 23821357.735
+ 30.800 20.500
+ -20264846.242 7 -15790784.870 7 20775692.973 20775689.231 20775691.210
+ 47.400 44.900
+ -6919184.233 5 -5391579.198 4 23343749.591 23343746.304 23343748.576
+ 31.300 27.400
+ -17553403.180 7 -13677976.806 6 21822378.375 21822376.725 21822377.346
+ 44.500 40.900
+ 06 1 1 13 31 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20148923.301 7 -15700454.954 6 20722346.598 20722345.064 20722345.642
+ 47.500 40.900
+ -5822173.500 4 -4536759.932 4 23661460.751 23661458.665 23661459.788
+ 29.500 25.900
+ -14968519.512 6 -11663784.968 5 21757035.704 21757033.833 21757035.522
+ 41.200 35.300
+ -2855526.256 4 -2225085.897 3 24077474.483 24077473.839 24077473.289
+ 25.300 21.600
+ -3912019.286 5 -3048325.483 3 23855141.201 23855138.925 23855140.044
+ 31.100 22.600
+ -20355692.502 7 -15861574.161 7 20758405.647 20758401.741 20758403.785
+ 47.100 44.900
+ -6698933.698 5 -5219955.535 4 23385662.278 23385658.891 23385661.259
+ 33.400 26.500
+ -17689070.046 7 -13783691.277 6 21796561.893 21796560.022 21796560.971
+ 44.500 40.900
+ 06 1 1 13 32 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -20063411.202 7 -15633822.200 6 20738618.954 20738617.607 20738618.030
+ 47.400 40.800
+ -6030312.778 5 -4698946.470 4 23621852.874 23621851.291 23621851.815
+ 31.100 24.600
+ -14830642.295 6 -11556348.256 5 21783273.270 21783271.265 21783273.002
+ 40.900 35.700
+ -2841058.195 4 -2213812.191 3 24080227.566 24080226.780 24080226.391
+ 27.100 18.600
+ -3734265.610 5 -2909816.293 3 23888966.060 23888964.662 23888965.210
+ 31.000 21.600
+ -20444417.383 7 -15930710.433 7 20741522.024 20741517.897 20741520.067
+ 47.200 44.900
+ -6478073.898 5 -5047857.146 4 23427690.522 23427687.214 23427689.473
+ 32.300 27.100
+ -17823720.211 7 -13888613.519 6 21770938.641 21770936.802 21770937.698
+ 44.400 40.600
+ 06 1 1 13 33 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19975811.929 7 -15565563.073 6 20755288.479 20755287.129 20755287.650
+ 47.500 40.500
+ -6238095.234 5 -4860854.966 4 23582313.496 23582311.619 23582312.365
+ 30.600 25.600
+ -14690834.682 6 -11447407.334 5 21809877.890 21809875.538 21809877.593
+ 40.600 34.700
+ -2824313.771 4 -2200764.623 3 24083413.916 24083413.527 24083412.686
+ 25.300 19.900
+ -3556288.647 5 -2771133.115 3 23922834.431 23922833.039 23922833.338
+ 31.000 20.500
+ -20531013.206 7 -15998187.699 7 20725043.290 20725039.159 20725041.433
+ 47.400 44.900
+ -6256628.694 5 -4875302.601 4 23469830.190 23469826.709 23469828.857
+ 30.200 24.200
+ -17957338.722 7 -13992731.865 6 21745511.925 21745510.328 21745510.894
+ 44.200 41.100
+ 06 1 1 13 34 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19886140.267 7 -15495689.093 6 20772352.685 20772351.062 20772351.681
+ 47.500 40.300
+ -6445506.376 4 -5022474.095 4 23542843.644 23542842.109 23542842.486
+ 28.400 25.600
+ -14549116.746 6 -11336977.856 5 21836845.678 21836843.725 21836845.380
+ 39.700 34.800
+ -2805292.680 4 -2185943.073 2 24087033.885 24087032.983 24087032.911
+ 28.600 17.800
+ -3378093.921 4 -2632280.327 4 23956744.039 23956742.407 23956742.740
+ 29.200 24.200
+ -20615472.464 7 -16064000.124 7 20708971.077 20708967.096 20708969.354
+ 47.400 45.100
+ -6034623.538 4 -4702311.696 4 23512075.911 23512072.918 23512074.912
+ 28.800 24.900
+ -18089908.797 7 -14096033.246 6 21720284.765 21720283.121 21720283.794
+ 44.700 41.200
+ 06 1 1 13 35 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19794411.863 7 -15424212.458 6 20789808.067 20789806.435 20789807.066
+ 47.300 40.100
+ -6652529.711 5 -5183791.022 4 23503449.811 23503447.739 23503448.248
+ 30.400 29.000
+ -14405509.580 6 -11225076.246 5 21864173.527 21864171.371 21864173.187
+ 40.100 34.600
+ -2783994.022 4 -2169346.748 3 24091086.609 24091085.786 24091085.570
+ 27.600 18.600
+ -3199687.907 4 -2493262.830 3 23990692.992 23990691.687 23990692.238
+ 27.400 19.300
+ -20697787.586 7 -16128141.793 7 20693307.334 20693303.175 20693305.448
+ 47.500 45.400
+ -5812081.932 5 -4528902.829 4 23554425.105 23554421.532 23554423.776
+ 30.100 24.200
+ -18221414.712 7 -14198505.423 6 21695260.078 21695258.445 21695259.125
+ 44.900 41.400
+ 06 1 1 13 36 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19700642.225 7 -15351145.247 6 20807651.810 20807650.291 20807650.891
+ 47.200 40.200
+ -6859149.566 5 -5344793.561 4 23464129.878 23464128.656 23464129.074
+ 31.800 27.100
+ -14260034.279 6 -11111718.955 5 21891856.597 21891854.294 21891856.246
+ 40.000 33.800
+ -2760417.993 4 -2150975.865 3 24095573.157 24095572.275 24095572.124
+ 25.900 18.600
+ -3021076.111 4 -2354085.028 3 24024682.297 24024680.808 24024681.366
+ 27.900 18.600
+ -20777951.988 7 -16190607.584 7 20678052.220 20678048.516 20678050.534
+ 47.300 45.600
+ -5589027.795 5 -4355094.560 4 23596871.400 23596867.363 23596870.110
+ 30.800 24.200
+ -18351840.000 7 -14300135.551 6 21670440.907 21670439.342 21670439.892
+ 45.000 41.500
+ 06 1 1 13 37 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19604847.304 7 -15276499.897 6 20825880.868 20825879.443 20825879.885
+ 46.900 39.900
+ -7065349.761 5 -5505469.119 4 23424892.201 23424890.724 23424891.214
+ 31.500 28.400
+ -14112712.161 6 -10996922.576 5 21919890.774 21919888.947 21919890.402
+ 38.900 33.800
+ -2734565.349 4 -2130830.975 2 24100492.556 24100492.231 24100491.584
+ 25.600 16.100
+ -2842264.326 4 -2214751.337 2 24058709.020 24058707.314 24058708.088
+ 28.600 17.800
+ -20855958.614 7 -16251391.995 7 20663208.442 20663204.311 20663206.460
+ 47.200 45.700
+ -5365485.737 5 -4180906.066 3 23639409.686 23639405.997 23639408.546
+ 32.000 23.400
+ -18481169.998 7 -14400912.211 6 21645830.290 21645828.748 21645829.383
+ 45.100 41.600
+ 06 1 1 13 38 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19507042.798 7 -15200288.640 6 20844492.630 20844491.244 20844491.675
+ 47.200 40.200
+ -7271115.032 5 -5665805.728 4 23385736.112 23385734.555 23385734.872
+ 30.100 27.600
+ -13963563.936 6 -10880703.283 5 21948272.919 21948271.063 21948272.669
+ 39.300 33.900
+ -2706437.001 3 -2108912.765 2 24105844.724 24105844.389 24105843.936
+ 23.400 17.000
+ -2663258.011 4 -2075266.097 3 24092773.349 24092771.675 24092772.165
+ 28.400 19.300
+ -20931801.321 7 -16310490.231 7 20648775.855 20648771.976 20648774.012
+ 47.100 45.800
+ -5141479.350 4 -4006355.846 4 23682036.338 23682033.363 23682035.492
+ 29.700 24.900
+ -18609387.791 7 -14500822.213 6 21621431.307 21621429.700 21621430.337
+ 44.800 41.500
+ 06 1 1 13 39 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19407245.508 7 -15122524.564 6 20863483.427 20863481.949 20863482.528
+ 47.100 39.800
+ -7476428.832 5 -5825790.569 4 23346666.155 23346664.574 23346665.044
+ 31.300 27.100
+ -13812611.867 6 -10763078.367 5 21976998.505 21976996.498 21976998.236
+ 39.800 34.600
+ -2676034.068 4 -2085222.199 2 24111630.348 24111629.891 24111629.272
+ 24.900 17.800
+ -2484062.705 4 -1935633.592 2 24126872.807 24126871.008 24126872.069
+ 29.700 17.800
+ -21005474.056 7 -16367897.576 7 20634756.272 20634752.553 20634754.527
+ 47.300 46.000
+ -4917033.380 4 -3831463.040 4 23724747.647 23724744.212 23724746.034
+ 27.400 24.600
+ -18736477.679 7 -14599853.329 6 21597247.017 21597245.404 21597245.995
+ 45.100 41.900
+ 06 1 1 13 40 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19305471.208 7 -15043219.965 6 20882850.410 20882848.950 20882849.500
+ 47.300 39.700
+ -7681274.376 5 -5985410.544 4 23307685.995 23307683.900 23307684.720
+ 33.400 27.600
+ -13659877.678 6 -10644064.837 5 22006062.693 22006060.840 22006062.290
+ 38.400 33.800
+ -2643358.577 4 -2059760.819 2 24117848.890 24117847.805 24117847.687
+ 25.600 15.100
+ -2304683.887 4 -1795858.088 2 24161007.255 24161006.649 24161006.080
+ 27.100 17.000
+ -21076970.811 7 -16423609.355 7 20621151.029 20621147.106 20621149.261
+ 47.400 46.100
+ -4692171.488 4 -3656246.166 4 23767537.445 23767534.306 23767536.277
+ 29.200 24.900
+ -18862423.283 7 -14697992.798 7 21573280.134 21573278.806 21573279.333
+ 45.300 42.000
+ 06 1 1 13 41 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19201737.166 7 -14962388.296 6 20902590.584 20902588.933 20902589.620
+ 47.400 39.500
+ -7885635.023 5 -6144652.654 4 23268797.261 23268795.671 23268796.186
+ 32.400 29.200
+ -13505383.138 6 -10523679.562 5 22035461.913 22035460.286 22035461.754
+ 38.800 33.900
+ -2608412.839 4 -2032530.424 3 24124498.431 24124498.037 24124497.456
+ 26.200 19.900
+ -2125126.999 4 -1655943.846 3 24195177.655 24195175.291 24195176.333
+ 27.600 18.600
+ -21146286.718 7 -16477621.758 7 20607960.563 20607956.811 20607958.811
+ 47.100 46.300
+ -4466917.583 4 -3480723.798 3 23810402.881 23810398.798 23810401.182
+ 29.700 23.000
+ -18987209.012 7 -14795228.462 6 21549534.360 21549532.794 21549533.388
+ 45.200 41.900
+ 06 1 1 13 42 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -19096059.450 7 -14880042.072 6 20922700.450 20922698.832 20922699.482
+ 47.400 39.600
+ -8089494.080 5 -6303503.928 4 23230003.309 23230002.355 23230002.618
+ 31.800 28.400
+ -13349151.218 6 -10401940.522 5 22065192.220 22065190.239 22065191.984
+ 38.900 32.400
+ -2571199.073 3 -2003532.712 2 24131580.317 24131579.497 24131578.857
+ 21.100 15.100
+ -1945397.427 4 -1515895.017 3 24229377.943 24229377.244 24229377.008
+ 25.900 20.500
+ -21213416.403 7 -16529930.610 7 20595185.981 20595182.460 20595184.382
+ 47.300 46.400
+ -4241295.551 4 -3304914.530 3 23853336.513 23853333.004 23853335.262
+ 27.600 23.800
+ -19110818.589 7 -14891547.648 7 21526012.051 21526010.654 21526011.124
+ 45.300 42.000
+ 06 1 1 13 43 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18988455.242 7 -14796194.696 6 20943176.681 20943175.294 20943175.816
+ 47.200 39.200
+ -8292834.871 5 -6461951.354 4 23191309.594 23191308.091 23191308.664
+ 32.400 29.900
+ -13191203.666 6 -10278864.601 5 22095248.439 22095247.049 22095248.201
+ 38.000 33.100
+ -2531720.183 4 -1972770.004 3 24139092.686 24139092.586 24139091.828
+ 26.500 21.100
+ -1765500.131 4 -1375715.532 2 24263611.152 24263610.382 24263610.176
+ 25.300 17.000
+ -21278355.854 7 -16580532.786 7 20582828.763 20582824.905 20582827.023
+ 47.600 46.600
+ -4015329.040 4 -3128836.902 3 23896335.883 23896333.767 23896335.067
+ 27.400 23.000
+ -19233236.168 7 -14986938.007 7 21502716.878 21502715.514 21502715.852
+ 45.100 42.300
+ 06 1 1 13 44 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18878941.521 7 -14710859.378 6 20964016.428 20964015.094 20964015.575
+ 46.800 39.100
+ -8495640.307 5 -6619981.600 4 23152716.487 23152715.903 23152715.816
+ 32.700 29.700
+ -13031563.638 6 -10154469.881 5 22125627.248 22125625.218 22125626.922
+ 38.200 31.600
+ -2489979.661 4 -1940244.993 3 24147035.783 24147036.145 24147034.749
+ 24.600 22.600
+ -1585440.512 4 -1235409.531 2 24297874.471 24297874.525 24297873.715
+ 25.300 13.900
+ -21341099.579 7 -16629424.014 7 20570889.260 20570885.066 20570887.257
+ 47.500 46.600
+ -3789042.100 4 -2952509.583 3 23939398.473 23939394.966 23939396.908
+ 27.400 23.400
+ -19354445.614 7 -15081386.961 7 21479651.636 21479650.010 21479650.664
+ 45.200 42.300
+ 06 1 1 13 45 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18767535.431 7 -14624049.483 6 20985216.477 20985215.064 20985215.524
+ 46.700 39.300
+ -8697893.370 5 -6777581.461 4 23114229.323 23114227.858 23114228.331
+ 34.300 27.400
+ -12870253.690 6 -10028773.912 5 22156324.027 22156321.540 22156323.565
+ 38.800 32.000
+ -2445981.137 3 -1905960.491 3 24155408.242 24155408.215 24155407.313
+ 23.800 18.600
+ -1405223.327 4 -1094980.735 2 24332169.895 24332168.753 24332168.753
+ 26.500 17.000
+ -21401644.140 7 -16676601.608 7 20559367.697 20559363.828 20559365.947
+ 47.400 46.700
+ -3562459.118 4 -2775951.602 3 23982515.363 23982512.008 23982514.234
+ 26.200 20.500
+ -19474430.584 7 -15174881.777 7 21456819.347 21456817.640 21456818.416
+ 45.500 42.200
+ 06 1 1 13 46 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18654254.556 7 -14535778.724 6 21006773.145 21006771.713 21006772.175
+ 46.800 39.100
+ -8899576.656 5 -6934737.336 4 23075850.606 23075848.822 23075849.586
+ 33.800 28.100
+ -12707296.923 6 -9901794.711 5 22187333.577 22187331.443 22187333.067
+ 37.300 32.000
+ -2399728.302 4 -1869919.424 3 24164210.331 24164209.790 24164209.138
+ 26.200 19.300
+ -1224854.049 4 -954433.420 2 24366493.583 24366492.309 24366492.562
+ 26.500 17.800
+ -21459985.662 7 -16722062.549 7 20548265.847 20548261.794 20548264.082
+ 47.700 46.800
+ -3335602.621 4 -2599180.494 3 24025684.697 24025681.874 24025683.881
+ 28.100 22.600
+ -19593175.518 7 -15267410.335 7 21434222.738 21434221.318 21434221.934
+ 45.400 42.600
+ 06 1 1 13 47 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18539116.233 7 -14446060.589 6 21028683.242 21028681.865 21028682.314
+ 46.700 38.700
+ -9100672.861 5 -7091435.732 4 23037583.447 23037581.710 23037582.215
+ 33.500 29.900
+ -12542716.113 6 -9773550.024 5 22218652.153 22218650.516 22218651.871
+ 37.700 32.400
+ -2351225.896 3 -1832125.372 3 24173439.982 24173439.715 24173438.676
+ 23.000 21.100
+ -1044337.431 4 -813771.273 2 24400844.503 24400843.410 24400843.482
+ 26.500 16.100
+ -21516120.805 7 -16765804.246 7 20537583.963 20537579.797 20537582.049
+ 47.900 47.100
+ -3108496.441 4 -2422214.856 4 24068902.200 24068899.066 24068900.935
+ 26.500 25.300
+ -19710663.582 7 -15358959.505 7 21411865.654 21411864.147 21411864.628
+ 45.300 42.700
+ 06 1 1 13 48 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18422138.571 7 -14354909.207 6 21050943.551 21050942.106 21050942.526
+ 46.300 39.000
+ -9301164.123 5 -7247662.739 5 22999430.765 22999429.748 22999429.856
+ 34.800 30.800
+ -12376535.143 6 -9644058.489 5 22250275.287 22250273.673 22250275.094
+ 37.500 31.600
+ -2300478.477 4 -1792581.986 3 24183096.353 24183096.941 24183095.508
+ 24.600 21.100
+ -863678.042 4 -672997.881 2 24435223.044 24435222.169 24435222.141
+ 27.400 17.000
+ -21570046.667 7 -16807824.425 7 20527322.023 20527318.091 20527320.178
+ 47.800 47.300
+ -2881164.255 4 -2245073.082 3 24112161.214 24112158.936 24112160.292
+ 27.600 23.400
+ -19826878.625 7 -15449516.722 7 21389750.701 21389749.286 21389749.792
+ 45.700 42.700
+ 06 1 1 13 49 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18303338.315 7 -14262337.633 6 21073550.360 21073549.124 21073549.362
+ 46.400 38.900
+ -9501033.310 5 -7403405.008 5 22961396.906 22961395.949 22961395.893
+ 34.000 30.200
+ -12208776.883 6 -9513337.859 5 22282198.547 22282196.989 22282198.342
+ 37.200 31.000
+ -2247491.296 3 -1751293.309 2 24193179.707 24193179.229 24193178.589
+ 22.600 13.900
+ -682881.163 4 -532117.372 2 24469627.921 24469627.173 24469627.010
+ 27.400 15.100
+ -21621760.340 7 -16848120.822 7 20517481.260 20517477.274 20517479.420
+ 47.900 47.400
+ -2653629.541 4 -2067773.458 2 24155459.947 24155457.217 24155458.980
+ 27.400 17.800
+ -19941804.894 7 -15539069.693 7 21367881.097 21367879.424 21367880.036
+ 45.700 42.900
+ 06 1 1 13 50 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18182734.151 7 -14168360.413 6 21096500.674 21096499.353 21096499.759
+ 46.600 38.700
+ -9700262.704 5 -7558648.731 5 22923484.813 22923484.158 22923483.818
+ 34.400 30.600
+ -12039465.056 6 -9381406.675 5 22314417.597 22314416.054 22314417.496
+ 36.700 30.800
+ -2192269.911 3 -1708263.699 2 24203687.845 24203687.795 24203687.053
+ 23.800 13.900
+ -501951.009 4 -391132.958 2 24504057.789 24504056.789 24504057.014
+ 24.600 15.100
+ -21671259.846 8 -16886691.899 7 20508061.791 20508057.948 20508060.029
+ 48.000 47.500
+ -2425915.329 4 -1890334.014 3 24198794.167 24198790.065 24198792.370
+ 26.200 19.300
+ -20055426.761 7 -15627606.249 7 21346259.512 21346257.938 21346258.566
+ 45.900 42.900
+ 06 1 1 13 51 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -18060344.051 7 -14072991.555 6 21119790.785 21119789.467 21119789.905
+ 46.500 38.400
+ -9898834.004 5 -7713379.679 4 22885697.933 22885696.678 22885697.128
+ 34.900 29.200
+ -11868623.985 6 -9248283.864 5 22346927.839 22346926.232 22346927.439
+ 36.400 31.300
+ -2134820.017 4 -1663497.506 3 24214620.916 24214620.449 24214619.900
+ 27.100 19.900
+ -320892.719 3 -250048.748 1 24538511.116 24538511.113 24538510.496
+ 23.800 11.000
+ -21718542.520 8 -16923535.579 7 20499064.226 20499060.371 20499062.424
+ 48.200 47.600
+ -2198045.575 3 -1712773.390 3 24242155.116 24242152.282 24242153.697
+ 22.100 18.600
+ -20167727.703 7 -15715113.511 7 21324889.292 21324887.899 21324888.451
+ 46.000 43.200
+ 06 1 1 13 52 0.0000000 0 8G03G08G13G15G16G19G23G27
+ -17936186.450 7 -13976245.432 6 21143417.162 21143415.938 21143416.207
+ 46.400 38.500
+ -10096728.697 5 -7867583.365 5 22848039.737 22848038.742 22848038.881
+ 33.600 30.200
+ -11696277.191 6 -9113987.766 5 22379724.268 22379722.804 22379724.006
+ 36.500 30.800
+ -2075147.862 4 -1616999.737 2 24225975.919 24225975.795 24225974.721
+ 24.200 17.000
+ -139710.440 4 -108867.961 2 24572990.075 24572989.937 24572988.855
+ 25.300 17.800
+ -21763606.921 8 -16958650.727 7 20490488.909 20490484.990 20490487.100
+ 48.100 47.700
+ -1970043.084 4 -1535109.340 2 24285542.509 24285540.122 24285541.553
+ 24.900 16.100
+ -20278691.960 7 -15801579.193 7 21303773.643 21303772.064 21303772.664
+ 45.900 43.200
+ 06 1 1 13 53 0.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17810279.526 7 -13878136.201 6 21167376.519 21167375.202 21167375.561
+ 46.100 38.300
+ -10293928.810 5 -8021245.846 5 22810514.550 22810513.149 22810513.251
+ 35.500 31.600
+ -11522448.511 6 -8978536.941 5 22412803.096 22412801.450 22412802.769
+ 36.200 30.400
+ -2013260.586 3 -1568775.896 2 24237752.555 24237752.803 24237750.989
+ 21.600 17.800
+ 41590.824 4 32405.523 3 24607490.421 24607490.805 24607489.773
+ 26.200 18.600
+ -21806451.721 7 -16992036.317 7 20482335.615 20482331.832 20482333.833
+ 47.900 47.800
+ -1741930.954 4 -1357359.747 3 24328950.642 24328949.462 24328949.797
+ 24.200 21.600
+ -20388302.920 7 -15886990.366 7 21282915.466 21282913.864 21282914.476
+ 45.800 43.400
+ -114709.563 3 -89383.836 9 24901966.130 24901965.521 24901965.038
+ 23.400 -3.000
+ 06 1 1 13 54 0.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17682640.910 7 -13778677.602 6 21191665.376 21191664.137 21191664.374
+ 45.800 38.100
+ -10490416.137 6 -8174352.891 5 22773124.284 22773123.004 22773123.157
+ 36.500 32.300
+ -11347162.375 5 -8841950.451 5 22446158.640 22446157.561 22446158.426
+ 35.200 31.500
+ -1949165.329 3 -1518831.518 3 24249948.876 24249949.599 24249947.535
+ 19.900 19.300
+ 223006.507 4 173768.174 2 24642014.287 24642012.863 24642013.053
+ 25.300 13.900
+ -21847075.842 8 -17023691.509 7 20474605.430 20474601.271 20474603.525
+ 48.100 47.900
+ -1513732.258 4 -1179542.835 3 24372376.052 24372374.050 24372374.932
+ 27.400 19.900
+ -20496545.388 7 -15971335.177 7 21262317.641 21262316.145 21262316.696
+ 46.100 43.600
+ -286619.231 3 -223339.506 1 24869252.259 24869251.648 24869251.413
+ 21.600 6.500
+ 06 1 1 13 55 0.0000000 0 9G03G08G13G15G16G19G23G27G28
+ -17553289.624 7 -13677884.456 6 21216280.220 21216278.935 21216279.186
+ 45.600 38.100
+ -10686172.162 5 -8326890.090 5 22735872.511 22735871.971 22735871.761
+ 35.700 32.400
+ -11170442.809 5 -8704247.024 5 22479787.677 22479786.187 22479787.399
+ 35.600 30.400
+ -1882869.560 3 -1467172.485 3 24262564.732 24262564.951 24262563.727
+ 22.600 18.600
+ 404531.990 3 315216.340 1 24676556.288 24676556.341 24676555.717
+ 22.600 11.000
+ -21885478.648 8 -17053615.801 7 20467297.357 20467293.555 20467295.589
+ 48.300 47.900
+ -1285469.906 3 -1001676.298 3 24415812.920 24415810.864 24415811.526
+ 23.800 18.600
+ -20603402.371 7 -16054600.390 7 21241983.428 21241981.853 21241982.540
+ 46.100 43.600
+ -458342.982 2 -357150.217 3 24836575.217 24836573.730 24836574.279
+ 17.800 18.600
+ 06 1 1 13 56 0.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17422244.112 7 -13575771.132 6 21241217.335 21241216.061 21241216.327
+ 45.600 37.200
+ -10881178.337 6 -8478842.997 5 22698764.718 22698762.948 22698763.708
+ 36.500 31.000
+ -328226.264 3 -255761.160 1 24425455.874 24425456.149 24425455.326
+ 18.600 11.000
+ -10992314.419 5 -8565445.802 4 22513683.992 22513683.012 22513683.804
+ 34.600 29.700
+ -1814380.531 3 -1413804.501 3 24275598.643 24275598.751 24275597.152
+ 23.800 21.100
+ 586163.797 4 456747.372 1 24711121.193 24711119.578 24711119.924
+ 24.600 9.000
+ -21921659.275 8 -17081808.532 7 20460412.497 20460408.497 20460410.725
+ 48.400 47.800
+ -1057166.768 3 -823777.921 2 24459258.941 24459255.584 24459257.284
+ 22.600 16.100
+ -20708858.664 7 -16136774.153 7 21221915.857 21221914.301 21221914.943
+ 46.100 43.700
+ -629877.956 3 -490813.779 2 24803933.202 24803931.228 24803932.371
+ 21.100 17.000
+ 06 1 1 13 57 0.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17289523.014 7 -13472352.149 6 21266473.385 21266472.061 21266472.443
+ 45.600 37.500
+ -11075416.557 6 -8630197.507 5 22661802.287 22661801.345 22661801.257
+ 36.500 33.000
+ -537789.204 2 -419056.791 1 24385578.095 24385576.860 24385577.023
+ 17.000 6.500
+ -10812801.961 5 -8425566.085 4 22547844.453 22547842.947 22547844.375
+ 35.500 28.600
+ -1743706.044 4 -1358733.581 3 24289047.009 24289047.008 24289046.003
+ 24.600 19.900
+ 767897.118 4 598357.479 9 24745702.787 24745702.787 24745702.379
+ 26.800 -3.000
+ -21955618.150 8 -17108270.024 8 20453950.240 20453946.466 20453948.561
+ 48.300 48.000
+ -828845.848 4 -645865.766 3 24502705.458 24502704.252 24502704.766
+ 24.200 19.300
+ -20812898.264 7 -16217843.996 7 21202117.397 21202116.220 21202116.567
+ 45.800 43.900
+ -801221.259 3 -624328.030 3 24771327.379 24771325.954 24771326.588
+ 21.600 19.300
+ 06 1 1 13 58 0.0000000 0 10G03G08G11G13G15G16G19G23G27G28
+ -17155145.086 7 -13367642.129 6 21292044.555 21292043.568 21292043.677
+ 45.600 37.300
+ -11268867.703 6 -8780938.700 5 22624989.852 22624988.677 22624988.743
+ 36.500 33.100
+ -747371.611 3 -582367.626 1 24345694.971 24345695.426 24345694.424
+ 22.600 11.000
+ -10631929.508 5 -8284626.633 5 22582263.421 22582262.135 22582262.983
+ 33.800 30.200
+ -1670854.934 3 -1301966.555 2 24302910.232 24302910.041 24302909.125
+ 23.000 17.800
+ 949727.738 4 740043.414 2 24780304.153 24780303.984 24780303.627
+ 24.600 12.600
+ -21987355.530 8 -17133000.488 8 20447910.932 20447907.062 20447909.121
+ 48.400 48.100
+ -600529.548 3 -467957.169 2 24546153.353 24546150.951 24546152.468
+ 23.800 17.800
+ -20915505.351 7 -16297797.593 7 21182592.363 21182590.712 21182591.365
+ 46.100 43.700
+ -972370.936 3 -757691.359 3 24738758.733 24738757.369 24738757.372
+ 22.600 19.300
+ 06 1 1 13 59 0.0000000 0 9G03G08G11G13G15G19G23G27G28
+ -17019129.167 7 -13261655.753 6 21317927.590 21317926.550 21317926.673
+ 45.100 37.200
+ -11461512.651 6 -8931051.665 5 22588330.853 22588329.560 22588329.607
+ 36.400 32.700
+ -956951.743 3 -745676.647 2 24305813.315 24305813.387 24305812.507
+ 22.600 17.800
+ -10449721.838 5 -8142646.758 4 22616936.867 22616935.287 22616936.521
+ 34.700 29.200
+ -1595835.771 4 -1243510.179 2 24317186.757 24317186.119 24317185.616
+ 24.900 17.800
+ -22016871.613 8 -17156000.062 8 20442294.397 20442290.484 20442292.649
+ 48.700 48.300
+ -372240.257 4 -290069.609 2 24589595.673 24589593.119 24589594.325
+ 24.200 16.100
+ -21016664.029 7 -16376622.565 7 21163342.358 21163341.011 21163341.432
+ 45.900 44.100
+ -1143323.180 3 -890900.863 2 24706227.581 24706225.628 24706226.542
+ 23.000 17.800
+ 06 1 1 14 0 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16881494.056 7 -13154407.680 6 21344118.785 21344117.673 21344117.804
+ 45.400 37.100
+ -11653332.278 6 -9080521.545 5 22551828.728 22551827.512 22551827.843
+ 37.900 33.400
+ -1166508.467 3 -908967.462 2 24265936.116 24265935.294 24265935.349
+ 23.000 13.900
+ -10266203.924 5 -7999645.917 4 22651858.937 22651857.894 22651858.673
+ 34.300 29.200
+ -1518657.799 3 -1183371.610 1 24331872.231 24331872.125 24331871.435
+ 22.600 11.000
+ -22044167.787 8 -17177269.841 8 20437100.048 20437096.107 20437098.270
+ 48.800 48.300
+ -21116358.433 7 -16454306.540 7 21144371.155 21144369.915 21144370.187
+ 46.100 44.200
+ -1314076.031 4 -1023955.023 3 24673734.516 24673732.572 24673733.499
+ 25.900 19.900
+ 06 1 1 14 1 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16742259.081 7 -13045912.957 6 21370614.099 21370613.275 21370613.200
+ 44.800 37.100
+ -11844307.440 6 -9229333.381 5 22515487.377 22515486.026 22515486.375
+ 37.900 32.600
+ -1376019.178 3 -1072222.414 3 24226067.687 24226066.717 24226066.503
+ 23.000 18.600
+ -10081400.527 5 -7855643.400 4 22687026.217 22687024.962 22687025.886
+ 33.600 28.800
+ -1439330.694 4 -1121558.383 1 24346968.216 24346968.226 24346967.307
+ 24.900 6.500
+ -22069244.937 8 -17196810.504 8 20432328.088 20432324.164 20432326.259
+ 48.700 48.500
+ -21214572.696 7 -16530837.160 7 21125681.433 21125680.200 21125680.599
+ 46.100 44.100
+ -1484626.766 3 -1156851.667 2 24641279.111 24641277.535 24641278.129
+ 23.800 17.000
+ 06 1 1 14 2 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16601442.626 7 -12936185.914 6 21397410.635 21397409.846 21397409.843
+ 44.800 37.000
+ -12034419.033 6 -9377472.314 5 22479310.543 22479309.130 22479309.336
+ 37.500 32.800
+ -1585462.941 3 -1235425.194 3 24186210.600 24186211.647 24186210.687
+ 21.600 22.100
+ -9895336.864 5 -7710658.871 4 22722433.275 22722431.632 22722432.995
+ 35.200 28.400
+ -1357864.029 3 -1058077.926 2 24362471.060 24362470.687 24362469.651
+ 23.000 12.600
+ -22092104.769 8 -17214623.388 8 20427978.071 20427974.122 20427976.217
+ 48.600 48.600
+ -21311291.384 7 -16606202.405 7 21107276.806 21107275.411 21107275.848
+ 46.000 44.400
+ -1654972.300 3 -1289588.461 2 24608863.898 24608862.442 24608863.051
+ 21.100 13.900
+ 06 1 1 14 3 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16459063.872 7 -12825241.499 6 21424504.710 21424503.532 21424503.813
+ 45.000 36.500
+ -12223646.848 6 -9524922.607 5 22443301.512 22443300.387 22443300.401
+ 38.000 33.000
+ -1794817.363 3 -1398558.392 3 24146371.240 24146372.376 24146371.208
+ 19.900 18.600
+ -9708037.429 5 -7564711.368 4 22758074.652 22758073.878 22758074.404
+ 33.100 28.400
+ -1274267.920 3 -992938.153 2 24378378.362 24378378.605 24378377.574
+ 22.100 16.100
+ -22112749.248 8 -17230710.022 8 20424049.437 20424045.696 20424047.605
+ 48.600 48.700
+ -21406499.277 7 -16680390.403 7 21089159.602 21089157.909 21089158.522
+ 46.300 44.400
+ -1825110.582 3 -1422163.721 2 24576487.305 24576485.740 24576486.450
+ 21.100 12.600
+ 06 1 1 14 4 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16315142.519 7 -12713095.059 6 21451892.201 21451890.835 21451891.247
+ 44.800 36.000
+ -12411972.426 6 -9671669.820 5 22407464.583 22407463.253 22407463.470
+ 38.300 33.900
+ -2004060.686 3 -1561604.970 2 24106553.055 24106554.675 24106553.042
+ 22.100 17.000
+ -9519527.867 5 -7417820.941 4 22793947.372 22793945.902 22793946.910
+ 33.400 25.900
+ -1188552.992 3 -926147.373 2 24394689.855 24394690.330 24394688.817
+ 22.600 17.000
+ -22131180.545 8 -17245072.098 8 20420542.022 20420538.352 20420540.236
+ 48.400 48.700
+ -21500180.533 7 -16753388.820 7 21071332.380 21071330.989 21071331.437
+ 46.100 44.500
+ -1995038.499 4 -1554575.120 1 24544151.807 24544149.407 24544150.750
+ 24.200 11.000
+ 06 1 1 14 5 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16169697.501 7 -12599761.351 6 21479569.634 21479568.357 21479568.584
+ 44.500 36.400
+ -12599375.743 6 -9817698.417 5 22371802.827 22371801.467 22371801.900
+ 39.100 33.200
+ -2213171.021 3 -1724547.926 2 24066760.197 24066761.281 24066760.492
+ 23.400 13.900
+ -9329833.038 5 -7270006.918 4 22830044.674 22830043.705 22830044.410
+ 31.800 27.400
+ -1100729.850 3 -857713.769 2 24411402.131 24411402.166 24411401.117
+ 21.100 12.600
+ -22147401.530 8 -17257711.856 8 20417455.258 20417451.544 20417453.417
+ 48.300 48.800
+ -21592319.896 7 -16825185.760 7 21053798.725 21053797.530 21053797.853
+ 46.100 44.700
+ -2164752.888 4 -1686820.099 3 24511856.019 24511854.114 24511854.837
+ 26.200 19.900
+ 06 1 1 14 6 0.0000000 0 8G03G08G11G13G15G19G27G28
+ -16022747.480 7 -12485254.916 6 21507532.965 21507532.187 21507532.095
+ 44.400 36.200
+ -12785837.605 6 -9962993.415 5 22336320.235 22336319.433 22336319.100
+ 39.000 34.900
+ -2422126.513 4 -1887370.299 2 24026999.707 24026998.534 24026998.359
+ 25.300 13.900
+ -9138978.568 5 -7121289.322 4 22866363.371 22866362.750 22866363.152
+ 32.800 28.600
+ -1010810.078 3 -787646.461 2 24428513.049 24428513.068 24428511.777
+ 22.600 16.100
+ -22161414.639 8 -17268631.185 8 20414788.813 20414784.991 20414787.005
+ 48.400 48.700
+ -21682902.037 7 -16895769.284 7 21036561.451 21036560.298 21036560.581
+ 46.000 44.700
+ -2334251.720 4 -1818897.094 3 24479601.283 24479599.750 24479600.022
+ 24.900 21.600
+ 06 1 1 14 7 0.0000000 0 7G03G08G11G13G19G27G28
+ -15874311.986 7 -12369590.971 6 21535779.593 21535778.642 21535778.600
+ 44.400 36.300
+ -12971338.115 6 -10107539.283 5 22301020.787 22301019.752 22301019.757
+ 39.000 34.700
+ -2630904.211 3 -2050054.132 3 23987270.797 23987270.249 23987269.212
+ 20.500 21.100
+ -8946989.204 5 -6971687.347 4 22902898.010 22902896.649 22902897.717
+ 32.800 26.200
+ -22173223.261 8 -17277832.740 8 20412541.577 20412537.948 20412539.784
+ 48.500 48.900
+ -21771911.519 7 -16965127.347 7 21019623.535 21019622.433 21019622.624
+ 45.700 44.700
+ -2503531.177 3 -1950803.133 2 24447388.536 24447386.655 24447387.360
+ 23.400 17.800
+ 06 1 1 14 8 0.0000000 0 7G03G08G11G13G19G27G28
+ -15724410.752 7 -12252784.890 6 21564304.862 21564303.955 21564303.907
+ 44.400 36.200
+ -13155856.562 6 -10251319.938 5 22265907.910 22265906.803 22265907.084
+ 39.700 33.800
+ -2839482.375 3 -2212582.444 3 23947579.053 23947578.735 23947577.550
+ 22.600 21.600
+ -8753890.937 5 -6821221.296 4 22939643.783 22939642.469 22939643.378
+ 32.300 27.600
+ -22182830.468 8 -17285318.901 8 20410713.283 20410709.809 20410711.555
+ 48.700 49.000
+ -21859332.982 7 -17033248.008 7 21002987.943 21002986.744 21002986.986
+ 45.600 44.900
+ -2672589.756 4 -2082537.147 2 24415217.555 24415216.144 24415216.422
+ 26.200 16.100
+ 06 1 1 14 9 0.0000000 0 7G03G08G11G13G19G27G28
+ -15573062.858 7 -12134851.533 5 21593105.273 21593104.522 21593104.400
+ 44.100 35.500
+ -13339373.576 6 -10394320.236 5 22230985.718 22230984.990 22230984.871
+ 39.600 35.500
+ -3047838.906 4 -2374938.045 3 23907931.505 23907929.335 23907929.838
+ 24.600 19.300
+ -8559708.783 5 -6669910.667 4 22976595.047 22976594.034 22976594.657
+ 31.100 26.200
+ -22190240.415 8 -17291092.920 8 20409303.439 20409299.821 20409301.694
+ 48.800 48.900
+ -21945151.605 7 -17100119.695 7 20986657.193 20986655.990 20986656.288
+ 45.600 44.800
+ -2841423.840 4 -2214096.230 3 24383089.645 24383087.982 24383088.509
+ 25.300 19.900
+ 06 1 1 14 10 0.0000000 0 7G03G08G11G13G19G27G28
+ -15420287.052 7 -12015805.523 5 21622177.901 21622176.878 21622176.823
+ 43.800 35.300
+ -13521869.660 6 -10536525.001 5 22196257.983 22196256.868 22196257.039
+ 39.700 34.700
+ -3255950.896 4 -2537103.173 2 23868327.357 23868326.658 23868326.434
+ 25.600 13.900
+ -8364467.652 5 -6517774.841 4 23013747.975 23013747.174 23013747.944
+ 31.100 26.200
+ -22195457.164 8 -17295157.953 8 20408310.705 20408307.075 20408309.032
+ 48.900 48.900
+ -22029352.066 7 -17165730.476 7 20970634.392 20970633.269 20970633.487
+ 45.800 45.100
+ -3010030.619 3 -2345478.098 3 24351004.217 24351003.348 24351003.485
+ 21.600 23.400
+ 06 1 1 14 11 0.0000000 0 7G03G08G11G13G19G27G28
+ -15266102.967 7 -11895662.164 5 21651517.978 21651516.959 21651517.053
+ 43.300 34.900
+ -13703324.239 6 -10677918.206 5 22161729.105 22161727.143 22161727.664
+ 39.800 34.900
+ -3463795.914 4 -2699060.267 3 23828774.858 23828775.708 23828774.884
+ 26.500 18.600
+ -8168193.666 5 -6364834.188 4 23051098.335 23051097.350 23051097.957
+ 31.100 25.600
+ -22198485.154 8 -17297517.459 8 20407734.717 20407730.845 20407732.902
+ 49.100 48.900
+ -22111920.144 7 -17230069.286 7 20954922.311 20954920.980 20954921.365
+ 45.600 44.900
+ -3178407.289 3 -2476680.649 3 24318964.009 24318962.643 24318962.714
+ 23.800 21.600
+ 06 1 1 14 12 0.0000000 0 7G03G08G11G13G19G27G28
+ -15110529.712 7 -11774436.331 5 21681122.562 21681121.721 21681121.636
+ 43.200 35.200
+ -13883716.847 6 -10818483.914 6 22127400.974 22127400.082 22127400.036
+ 40.800 36.500
+ -3671351.966 3 -2860792.170 2 23789277.719 23789278.676 23789277.694
+ 21.100 17.000
+ -7970912.533 5 -6211108.785 4 23088640.161 23088638.591 23088639.681
+ 31.100 24.900
+ -22199329.202 8 -17298175.199 8 20407574.132 20407570.358 20407572.385
+ 49.200 49.000
+ -22192840.423 7 -17293124.100 7 20939523.845 20939522.555 20939522.856
+ 45.700 45.300
+ -3346550.655 4 -2607701.473 2 24286967.562 24286965.526 24286966.561
+ 26.800 16.100
+ 06 1 1 14 13 0.0000000 0 7G03G08G11G13G19G27G28
+ -14953586.770 7 -11652143.206 5 21710987.965 21710986.967 21710987.042
+ 43.100 34.600
+ -14063027.175 6 -10958206.277 5 22093278.966 22093278.154 22093278.148
+ 40.600 35.500
+ -3878596.044 4 -3022281.075 3 23749840.906 23749841.459 23749840.798
+ 27.600 21.100
+ -7772649.615 5 -6056618.327 3 23126368.250 23126366.670 23126367.788
+ 31.000 22.100
+ -22197994.196 8 -17297134.970 8 20407828.181 20407824.336 20407826.424
+ 49.300 48.900
+ -22272098.699 7 -17354883.849 7 20924441.345 20924440.156 20924440.436
+ 45.600 45.200
+ -3514458.443 4 -2738538.736 3 24255015.371 24255013.361 24255014.585
+ 24.600 19.900
+ 06 1 1 14 14 0.0000000 0 7G03G08G11G13G19G27G28
+ -14795293.783 7 -11528798.090 5 21741110.356 21741109.299 21741109.483
+ 43.600 33.900
+ -14241234.640 6 -11097069.291 5 22059367.328 22059366.186 22059366.485
+ 41.000 34.900
+ -4085505.678 3 -3183509.446 3 23710468.712 23710467.846 23710467.203
+ 23.400 19.900
+ -7573430.168 4 -5901382.572 4 23164278.025 23164277.694 23164277.794
+ 28.600 25.900
+ -22194485.543 8 -17294400.997 8 20408495.909 20408492.010 20408494.153
+ 49.300 48.800
+ -22349680.303 7 -17415337.093 7 20909678.022 20909677.006 20909677.157
+ 45.600 45.400
+ -3682127.217 4 -2869189.698 3 24223108.876 24223107.647 24223107.846
+ 26.800 22.600
+ 06 1 1 14 15 0.0000000 0 7G03G08G11G13G19G27G28
+ -14635669.701 7 -11404415.766 5 21771486.014 21771484.889 21771485.039
+ 43.500 34.400
+ -14418319.515 6 -11235057.545 6 22025669.666 22025668.589 22025668.479
+ 41.000 36.700
+ -4292058.272 4 -3344459.638 2 23671163.852 23671161.592 23671162.219
+ 25.900 15.100
+ -7373279.965 5 -5745421.547 4 23202365.525 23202365.069 23202365.268
+ 30.800 25.600
+ -22188808.932 8 -17289977.697 8 20409576.067 20409572.318 20409574.299
+ 49.300 48.800
+ -22425570.346 7 -17474472.231 7 20895236.815 20895235.562 20895235.846
+ 45.500 45.200
+ -3849554.003 4 -2999652.117 3 24191248.335 24191246.808 24191247.667
+ 26.800 19.300
+ 06 1 1 14 16 0.0000000 0 7G03G08G11G13G19G27G28
+ -14474734.227 7 -11279011.590 5 21802110.956 21802109.967 21802110.037
+ 43.100 34.800
+ -14594260.909 6 -11372154.762 6 21992188.946 21992187.881 21992188.074
+ 41.800 36.200
+ -4498230.933 4 -3505113.859 2 23631928.129 23631928.987 23631928.140
+ 26.800 17.800
+ -7172224.871 4 -5588755.405 4 23240624.865 23240624.510 23240624.598
+ 28.600 24.600
+ -22180969.782 8 -17283869.301 8 20411067.885 20411064.091 20411066.156
+ 49.300 48.900
+ -22499754.766 7 -17532278.313 7 20881119.931 20881118.856 20881118.955
+ 45.300 45.400
+ -4016735.804 4 -3129923.644 3 24159434.684 24159433.164 24159433.677
+ 25.600 19.900
+ 06 1 1 14 17 0.0000000 0 7G03G08G11G13G19G27G28
+ -14312506.163 7 -11152600.212 5 21832981.938 21832981.091 21832980.990
+ 42.700 34.300
+ -14769038.297 6 -11508344.966 5 21958929.773 21958928.843 21958928.903
+ 41.700 35.800
+ -4704000.565 4 -3665453.976 3 23592772.108 23592773.081 23592772.004
+ 26.200 22.100
+ -6970289.996 5 -5431403.736 4 23279052.953 23279051.947 23279052.547
+ 30.200 24.200
+ -22170975.257 8 -17276081.390 8 20412969.805 20412966.014 20412967.927
+ 49.200 48.900
+ -22572219.807 7 -17588744.605 7 20867330.136 20867329.191 20867329.199
+ 45.100 45.400
+ -4183669.394 4 -3260001.720 3 24127668.089 24127666.914 24127667.181
+ 26.800 21.600
+ 06 1 1 14 18 0.0000000 0 7G03G08G11G13G19G27G28
+ -14149005.069 7 -11025196.866 5 21864095.250 21864094.321 21864094.229
+ 42.500 33.900
+ -14942631.593 7 -11643612.503 6 21925896.328 21925895.290 21925895.269
+ 42.100 36.300
+ -4909344.227 4 -3825462.090 4 23553697.894 23553697.245 23553696.637
+ 26.500 24.600
+ -6767501.224 4 -5273386.687 4 23317641.792 23317641.414 23317641.631
+ 27.900 24.600
+ -22158831.160 8 -17266618.484 8 20415280.670 20415276.966 20415278.936
+ 49.300 48.900
+ -22642951.039 7 -17643859.882 7 20853870.702 20853869.464 20853869.667
+ 45.200 45.500
+ -4350352.001 4 -3389884.271 3 24095949.963 24095948.600 24095948.730
+ 27.100 23.400
+ 06 1 1 14 19 0.0000000 0 7G03G08G11G13G19G27G28
+ -13984250.516 7 -10896816.791 5 21895447.273 21895446.174 21895446.270
+ 42.600 33.600
+ -15115019.805 6 -11777940.992 6 21893091.826 21893090.583 21893090.842
+ 41.700 36.300
+ -5114239.636 4 -3985120.763 3 23514707.239 23514706.789 23514706.086
+ 27.400 20.500
+ -6563883.848 4 -5114723.987 3 23356389.208 23356388.790 23356388.994
+ 27.900 23.400
+ -22144544.015 8 -17255485.674 8 20417999.436 20417995.780 20417997.674
+ 49.400 48.700
+ -22711934.943 7 -17697613.600 7 20840743.487 20840742.245 20840742.432
+ 45.200 45.300
+ -4516780.619 4 -3519568.860 3 24064279.284 24064278.191 24064278.267
+ 25.900 21.100
+ 06 1 1 14 20 0.0000000 0 7G03G08G11G13G19G27G28
+ -13818261.285 6 -10767474.618 5 21927033.599 21927032.918 21927032.758
+ 41.700 33.100
+ -15286181.800 7 -11911313.997 6 21860521.109 21860519.817 21860519.949
+ 42.600 36.800
+ -5318662.950 4 -4144411.495 3 23475806.533 23475806.594 23475805.965
+ 29.500 23.400
+ -6359464.072 4 -4955436.008 4 23395289.293 23395288.576 23395288.764
+ 27.400 24.200
+ -22128121.347 8 -17242688.820 8 20421124.583 20421120.940 20421122.849
+ 49.200 48.800
+ -22779157.583 7 -17749994.901 7 20827951.435 20827950.354 20827950.512
+ 45.600 45.600
+ -4682951.931 4 -3649052.980 3 24032658.529 24032656.321 24032657.653
+ 28.100 22.600
+ 06 1 1 14 21 0.0000000 0 7G03G08G11G13G19G27G28
+ -13651056.672 6 -10637185.400 5 21958852.056 21958850.832 21958850.827
+ 41.500 33.100
+ -15456097.070 7 -12043715.521 6 21828187.037 21828186.102 21828186.037
+ 42.700 37.200
+ -5522591.783 5 -4303316.866 3 23436999.696 23436999.489 23436999.784
+ 30.600 19.900
+ -6154267.120 4 -4795542.441 3 23434337.050 23434336.616 23434336.727
+ 28.800 22.600
+ -22109570.592 8 -17228233.716 8 20424654.764 20424651.029 20424652.965
+ 49.200 48.600
+ -22844605.117 7 -17800993.003 7 20815497.503 20815496.018 20815496.542
+ 45.700 45.600
+ -4848862.622 4 -3778334.024 4 24001086.749 24001084.945 24001085.685
+ 26.200 24.200
+ 06 1 1 14 22 0.0000000 0 7G03G08G11G13G19G27G28
+ -13482655.674 7 -10505963.921 5 21990897.579 21990896.640 21990896.701
+ 42.100 32.800
+ -15624744.625 7 -12175129.221 6 21796094.339 21796093.587 21796093.426
+ 42.700 37.600
+ -5726002.555 4 -4461818.553 3 23398292.679 23398290.775 23398291.314
+ 26.800 18.600
+ -5948318.467 4 -4635063.116 3 23473528.035 23473527.378 23473527.714
+ 29.000 23.000
+ -22088899.231 8 -17212126.195 8 20428588.543 20428584.634 20428586.645
+ 49.200 48.600
+ -22908263.637 7 -17850597.066 7 20803383.435 20803382.345 20803382.511
+ 45.700 45.700
+ -5014509.373 4 -3907409.357 4 23969564.771 23969563.420 23969563.752
+ 28.800 24.600
+ 06 1 1 14 23 0.0000000 0 7G03G08G11G13G19G27G28
+ -13313077.845 7 -10373825.414 5 22023167.221 22023166.392 22023166.258
+ 42.000 32.700
+ -15792103.908 7 -12305539.063 6 21764246.790 21764246.109 21764245.866
+ 42.700 37.700
+ -5928873.084 4 -4619899.298 3 23359687.808 23359686.252 23359686.826
+ 29.200 23.000
+ -5741643.974 4 -4474018.216 3 23512856.949 23512856.500 23512856.519
+ 27.100 22.600
+ -22066115.198 8 -17194372.433 8 20432924.124 20432920.394 20432922.343
+ 49.500 48.500
+ -22970121.054 7 -17898797.675 7 20791612.502 20791611.223 20791611.494
+ 45.700 45.600
+ -5179889.628 4 -4036277.118 3 23938093.848 23938092.246 23938093.132
+ 29.200 22.600
+ 06 1 1 14 24 0.0000000 0 7G03G08G11G13G19G27G28
+ -13142342.245 6 -10240784.751 5 22055657.040 22055656.283 22055656.131
+ 41.100 32.800
+ -15958154.191 7 -12434928.915 6 21732648.841 21732647.753 21732647.875
+ 43.600 37.300
+ -6131179.788 4 -4777540.703 3 23321187.584 23321188.391 23321187.888
+ 29.700 22.100
+ -5534269.101 4 -4312427.599 3 23552318.853 23552318.408 23552318.695
+ 24.900 21.100
+ -22041226.384 8 -17174978.585 8 20437660.517 20437656.583 20437658.661
+ 49.700 48.500
+ -23030163.442 7 -17945583.972 7 20780186.755 20780185.602 20780185.747
+ 45.600 45.700
+ -5344998.910 4 -4164933.721 3 23906675.272 23906673.518 23906674.158
+ 29.000 23.800
+ 06 1 1 14 25 0.0000000 0 7G03G08G11G13G19G27G28
+ -12970467.807 6 -10106856.677 5 22088363.962 22088362.821 22088363.039
+ 41.200 32.100
+ -16122874.132 7 -12563282.132 6 21701303.415 21701302.857 21701302.458
+ 43.200 38.300
+ -6332899.857 5 -4934725.043 3 23282802.878 23282802.461 23282802.120
+ 30.100 23.400
+ -5326219.658 4 -4150311.280 3 23591909.651 23591909.282 23591909.587
+ 27.600 23.000
+ -22014241.262 8 -17153951.251 8 20442795.674 20442791.809 20442793.881
+ 49.800 48.500
+ -23088378.048 7 -17990946.030 7 20769109.101 20769107.629 20769108.053
+ 45.700 45.600
+ -5509834.606 4 -4293377.133 3 23875308.026 23875305.954 23875306.923
+ 27.600 22.600
+ 06 1 1 14 26 0.0000000 0 7G03G08G11G13G19G27G28
+ -12797473.843 6 -9972056.254 5 22121283.380 22121282.844 22121282.442
+ 40.600 32.300
+ -16286243.399 7 -12690582.860 6 21670215.511 21670214.465 21670214.540
+ 43.800 37.800
+ -6534009.688 5 -5091433.909 3 23244533.539 23244532.299 23244532.485
+ 30.400 23.000
+ -5117520.641 4 -3987688.821 3 23631623.573 23631623.354 23631623.485
+ 25.900 19.300
+ -21985168.490 8 -17131297.167 8 20448327.865 20448324.089 20448326.135
+ 49.800 48.300
+ -23144751.860 7 -18034873.703 7 20758381.402 20758380.221 20758380.410
+ 45.800 45.800
+ -5674393.605 4 -4421604.946 3 23843993.061 23843991.615 23843992.480
+ 29.000 22.100
+ 06 1 1 14 27 0.0000000 0 7G03G08G11G13G19G27G28
+ -12623379.129 6 -9836398.119 5 22154412.801 22154412.295 22154411.758
+ 40.400 32.400
+ -16448240.610 7 -12816814.464 6 21639388.549 21639387.428 21639387.485
+ 43.800 38.000
+ -6734486.521 5 -5247649.524 4 23206383.133 23206383.036 23206382.702
+ 31.000 25.600
+ -4908198.013 4 -3824580.414 3 23671456.393 23671456.595 23671456.145
+ 26.500 22.100
+ -21954017.304 8 -17107023.539 8 20454255.641 20454252.059 20454253.885
+ 49.700 48.400
+ -23199272.499 7 -18077357.340 7 20748006.373 20748005.266 20748005.428
+ 45.600 45.800
+ -5838672.162 4 -4549614.254 4 23812732.178 23812730.669 23812731.232
+ 29.700 26.200
+ 06 1 1 14 28 0.0000000 0 7G03G08G11G13G19G27G28
+ -12448202.569 6 -9699896.986 5 22187747.900 22187747.060 22187746.718
+ 40.300 32.000
+ -16608845.153 7 -12941960.869 6 21608826.191 21608825.519 21608825.331
+ 43.900 38.400
+ -6934306.790 4 -5403353.572 3 23168359.125 23168357.971 23168358.385
+ 29.900 23.000
+ -4698276.910 4 -3661005.672 3 23711403.551 23711403.643 23711403.262
+ 27.900 23.800
+ -21920796.768 8 -17081137.427 8 20460577.593 20460573.814 20460575.708
+ 49.800 48.600
+ -23251927.332 7 -18118387.102 7 20737986.435 20737985.455 20737985.541
+ 45.600 46.000
+ -6002667.059 5 -4677402.506 4 23781524.950 23781523.355 23781523.739
+ 30.100 25.300
+ 06 1 1 14 29 0.0000000 0 7G03G08G11G13G19G27G28
+ -12271963.055 6 -9562567.595 5 22221285.139 22221284.432 22221284.117
+ 40.200 31.300
+ -16768035.737 7 -13066005.500 6 21578533.268 21578532.498 21578532.361
+ 44.000 38.100
+ -7133447.735 5 -5558528.335 3 23130463.875 23130462.929 23130462.821
+ 30.100 23.400
+ -4487783.048 4 -3496984.621 3 23751458.755 23751458.702 23751458.554
+ 24.600 18.600
+ -21885516.319 8 -17053646.189 8 20467291.047 20467287.446 20467289.286
+ 49.800 48.500
+ -23302704.543 7 -18157953.792 7 20728323.919 20728322.841 20728323.082
+ 45.700 46.000
+ -6166374.228 4 -4804966.594 4 23750372.932 23750371.040 23750371.977
+ 29.700 25.300
+ 06 1 1 14 30 0.0000000 0 7G03G08G11G13G19G27G28
+ -12094679.329 6 -9424424.524 5 22255021.072 22255020.545 22255020.166
+ 39.800 31.000
+ -16925791.409 7 -13188931.998 6 21548513.645 21548512.685 21548512.578
+ 44.000 39.100
+ -7331885.529 5 -5713155.217 3 23092701.862 23092701.241 23092701.461
+ 31.000 23.800
+ -4276741.784 4 -3332536.994 2 23791618.639 23791618.776 23791618.377
+ 24.600 17.800
+ -21848185.467 8 -17024557.232 8 20474394.834 20474391.298 20474392.995
+ 49.500 48.400
+ -23351592.267 7 -18196048.146 7 20719020.907 20719019.869 20719020.042
+ 45.700 45.900
+ -6329790.569 4 -4932304.010 4 23719275.107 23719274.014 23719274.379
+ 29.700 24.900
+ 06 1 1 14 31 0.0000000 0 7G03G08G11G13G19G27G28
+ -11916370.175 6 -9285482.428 5 22288951.915 22288951.651 22288951.194
+ 39.400 30.200
+ -17082091.162 7 -13310724.018 6 21518770.552 21518769.833 21518769.568
+ 44.200 38.800
+ -7529597.433 5 -5867216.508 3 23055079.161 23055077.960 23055078.112
+ 30.200 23.800
+ -4065178.367 4 -3167682.499 3 23831878.163 23831878.491 23831878.088
+ 25.300 22.100
+ -21808814.297 8 -16993878.421 8 20481887.004 20481883.364 20481885.089
+ 49.500 48.300
+ -23398577.938 7 -18232660.390 7 20710079.785 20710078.779 20710078.817
+ 45.400 45.800
+ -6492912.501 5 -5059412.056 4 23688234.853 23688232.474 23688233.951
+ 31.500 24.200
+ 06 1 1 14 32 0.0000000 0 7G03G08G11G13G19G27G28
+ -11737054.456 6 -9145756.009 5 22323074.734 22323074.480 22323073.875
+ 39.000 30.600
+ -17236913.855 7 -13431365.092 6 21489308.766 21489308.201 21489307.847
+ 44.500 39.200
+ -7726560.333 5 -6020694.171 3 23017597.625 23017597.581 23017597.165
+ 30.400 23.000
+ -3853118.079 4 -3002440.874 3 23872232.267 23872232.508 23872232.011
+ 27.400 21.600
+ -21767412.726 8 -16961617.485 8 20489765.381 20489761.924 20489763.703
+ 49.900 48.300
+ -23443650.405 7 -18267781.825 7 20701502.978 20701501.787 20701502.101
+ 45.600 45.700
+ -6655735.925 4 -5186287.449 4 23657249.711 23657248.425 23657248.922
+ 29.700 24.900
+ 06 1 1 14 33 0.0000000 0 7G03G08G11G13G19G27G28
+ -11556750.977 6 -9005259.920 5 22357385.401 22357385.234 22357384.539
+ 38.400 31.300
+ -17390238.706 7 -13550839.020 6 21460132.088 21460131.400 21460131.109
+ 44.700 39.300
+ -7922750.569 5 -6173569.753 4 22980264.772 22980263.875 22980263.803
+ 32.100 25.600
+ -3640586.152 3 -2836831.709 3 23912675.899 23912675.570 23912675.592
+ 21.600 19.900
+ -21723991.526 8 -16927782.818 8 20498028.431 20498024.771 20498026.666
+ 49.800 48.300
+ -23486797.936 7 -18301403.316 7 20693292.373 20693291.218 20693291.329
+ 45.500 46.100
+ -6818257.267 5 -5312927.392 4 23626323.182 23626321.892 23626322.417
+ 32.100 27.900
+ 06 1 1 14 34 0.0000000 0 7G03G08G11G13G19G27G28
+ -11375478.097 6 -8864008.441 5 22391880.692 22391880.452 22391879.817
+ 38.900 30.400
+ -17542044.517 7 -13669129.280 6 21431244.558 21431243.515 21431243.614
+ 45.100 39.100
+ -8118144.976 5 -6325825.185 4 22943081.335 22943081.263 22943081.221
+ 32.600 24.900
+ -3427608.057 4 -2670874.894 2 23953204.497 23953203.731 23953204.357
+ 26.200 16.100
+ -21678560.723 8 -16892382.229 8 20506673.576 20506669.930 20506671.769
+ 49.800 48.100
+ -23528009.589 7 -18333516.323 7 20685449.935 20685448.993 20685448.956
+ 45.300 46.100
+ -6980473.159 4 -5439329.295 4 23595454.455 23595453.044 23595453.282
+ 29.000 27.400
+ 06 1 1 14 35 0.0000000 0 7G03G08G11G13G19G27G28
+ -11193253.730 6 -8722015.549 4 22426556.967 22426556.718 22426556.178
+ 38.400 29.900
+ -17692311.098 7 -13786220.149 6 21402649.868 21402648.928 21402648.969
+ 45.200 39.800
+ -8312720.434 5 -6477442.402 4 22906056.083 22906055.085 22906055.098
+ 33.400 27.400
+ -3214208.436 4 -2504589.569 2 23993813.302 23993812.354 23993812.764
+ 25.300 12.600
+ -21631131.592 8 -16855424.503 8 20515698.997 20515695.452 20515697.213
+ 49.800 48.000
+ -23567273.787 7 -18364111.838 7 20677978.135 20677977.317 20677977.230
+ 45.000 46.100
+ -7142379.599 5 -5565490.080 4 23564644.768 23564643.081 23564643.786
+ 30.200 25.600
+ 06 1 1 14 36 0.0000000 0 7G03G08G11G13G19G27G28
+ -11010096.874 6 -8579296.019 4 22461411.078 22461410.322 22461410.139
+ 39.200 29.200
+ -17841016.987 7 -13902094.884 6 21374351.870 21374351.196 21374350.898
+ 44.700 40.000
+ -8506452.727 5 -6628402.574 4 22869189.232 22869188.704 22869188.633
+ 32.100 25.600
+ -3000412.726 4 -2337995.617 2 24034497.314 24034497.012 24034496.993
+ 26.200 17.800
+ -21581715.167 8 -16816918.234 7 20525102.801 20525099.092 20525100.995
+ 49.700 47.900
+ -23604580.288 7 -18393181.879 7 20670879.210 20670878.018 20670878.267
+ 45.400 46.100
+ -7303973.002 5 -5691406.964 4 23533894.342 23533892.585 23533893.294
+ 30.600 24.600
+ 06 1 1 14 37 0.0000000 0 7G03G08G11G13G19G27G28
+ -10826025.798 6 -8435864.102 5 22496438.713 22496438.230 22496437.652
+ 38.800 30.400
+ -17988141.332 7 -14016737.256 6 21346355.117 21346354.340 21346354.132
+ 45.100 40.200
+ -8699319.555 5 -6778688.284 4 22832488.081 22832487.511 22832487.203
+ 31.800 26.500
+ -2786246.196 4 -2171112.724 2 24075252.121 24075251.774 24075251.738
+ 24.900 16.100
+ -21530322.614 8 -16776872.130 7 20534882.366 20534878.749 20534880.553
+ 49.500 47.600
+ -23639918.740 7 -18420718.372 7 20664154.647 20664153.395 20664153.706
+ 45.300 45.900
+ -7465248.866 5 -5817076.469 4 23503204.624 23503202.880 23503203.695
+ 31.000 25.300
+ 06 1 1 14 38 0.0000000 0 7G03G08G11G13G19G27G28
+ -10641058.492 6 -8291733.840 4 22531636.793 22531636.287 22531635.651
+ 37.700 29.500
+ -18133662.836 7 -14130130.660 6 21318663.146 21318662.525 21318662.195
+ 45.300 40.300
+ -8891297.847 5 -6928281.629 4 22795954.599 22795954.736 22795954.699
+ 33.200 25.300
+ -2571733.438 4 -2003960.019 3 24116071.975 24116072.596 24116071.691
+ 24.600 21.100
+ -21476965.303 8 -16735295.044 7 20545036.091 20545032.405 20545034.162
+ 49.500 47.700
+ -23673278.170 7 -18446712.778 7 20657806.607 20657805.469 20657805.569
+ 45.200 46.200
+ -7626203.586 5 -5942495.704 4 23472576.104 23472575.097 23472575.235
+ 31.100 29.500
+ 06 1 1 14 39 0.0000000 0 7G03G08G11G13G19G27G28
+ -10455212.874 6 -8146919.164 4 22567001.280 22567001.418 22567000.518
+ 37.100 28.600
+ -18277561.806 7 -14242259.750 6 21291280.399 21291279.639 21291279.407
+ 46.000 40.500
+ -9082364.504 5 -7077164.624 4 22759597.243 22759596.068 22759596.041
+ 33.200 25.300
+ -2356899.285 3 -1836557.000 3 24156953.322 24156954.681 24156953.370
+ 19.900 22.100
+ -21421655.137 8 -16692196.257 7 20555560.932 20555557.657 20555559.214
+ 49.300 47.500
+ -23704649.202 7 -18471157.779 7 20651836.725 20651835.669 20651835.781
+ 45.000 46.100
+ -7786833.462 5 -6067661.833 4 23442008.763 23442007.776 23442007.915
+ 32.000 29.000
+ 06 1 1 14 40 0.0000000 0 7G03G08G11G13G19G27G28
+ -10268507.567 6 -8001434.592 4 22602530.465 22602530.725 22602529.684
+ 37.600 28.800
+ -18419816.420 7 -14353107.528 6 21264210.021 21264209.338 21264209.130
+ 46.000 40.500
+ -9272495.817 5 -7225318.832 4 22723415.054 22723415.293 22723415.088
+ 33.900 26.200
+ -2141768.872 3 -1668923.100 3 24197891.887 24197892.202 24197891.751
+ 22.100 19.900
+ -21364403.580 8 -16647584.691 7 20566455.705 20566452.261 20566453.915
+ 49.200 47.300
+ -23734020.869 7 -18494044.838 7 20646247.423 20646246.503 20646246.453
+ 45.000 46.100
+ -7947133.927 5 -6192571.322 4 23411504.390 23411503.566 23411503.680
+ 32.600 27.900
+ 06 1 1 14 41 0.0000000 0 7G03G08G11G13G19G27G28
+ -10080960.470 6 -7855294.112 4 22638220.193 22638219.681 22638219.164
+ 37.700 28.400
+ -18560406.937 7 -14462658.600 6 21237456.594 21237455.848 21237455.596
+ 45.700 40.800
+ -9461669.015 5 -7372726.455 4 22687417.995 22687416.689 22687416.588
+ 33.000 26.500
+ -1926366.815 4 -1501077.498 3 24238882.021 24238881.908 24238881.875
+ 26.800 19.900
+ -21305222.907 8 -16601469.915 7 20577717.398 20577714.013 20577715.554
+ 48.900 47.200
+ -23761384.341 7 -18515367.063 7 20641040.293 20641039.551 20641039.388
+ 45.100 46.300
+ -8107101.071 5 -6317221.097 4 23381064.115 23381062.594 23381063.171
+ 32.600 27.100
+ 06 1 1 14 42 0.0000000 0 7G03G08G11G13G19G27G28
+ -9892589.053 6 -7708511.299 4 22674066.233 22674065.929 22674065.047
+ 37.400 27.900
+ -18699312.342 7 -14570896.599 6 21211023.799 21211023.114 21211022.847
+ 46.000 41.000
+ -9649861.050 5 -7519369.570 4 22651604.858 22651604.959 22651604.642
+ 34.000 26.800
+ -1710717.960 3 -1333039.513 1 24279918.218 24279918.148 24279918.038
+ 23.800 11.000
+ -21244125.434 8 -16553861.525 7 20589343.820 20589340.495 20589342.045
+ 49.100 46.900
+ -23786729.864 7 -18535116.856 7 20636217.405 20636216.338 20636216.463
+ 45.200 46.100
+ -8266730.857 5 -6441607.962 4 23350687.742 23350686.498 23350686.843
+ 32.800 29.000
+ 06 1 1 14 43 0.0000000 0 7G03G08G11G13G19G27G28
+ -9703411.307 6 -7561100.182 4 22710064.893 22710065.214 22710064.078
+ 36.800 28.100
+ -18836511.717 7 -14677805.227 6 21184915.932 21184915.062 21184914.864
+ 46.300 41.000
+ -9837048.486 5 -7665229.876 4 22615985.305 22615984.498 22615984.454
+ 34.500 28.800
+ -1494846.784 3 -1164828.336 1 24320997.548 24320997.710 24320997.180
+ 19.900 11.000
+ -21181123.483 8 -16504769.124 7 20601333.044 20601329.280 20601331.171
+ 49.500 46.800
+ -23810049.251 7 -18553287.841 7 20631779.861 20631779.009 20631778.925
+ 45.100 46.200
+ -8426018.827 5 -6565728.466 4 23320375.905 23320374.518 23320375.114
+ 31.800 28.400
+ 06 1 1 14 44 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -9513444.764 6 -7413074.432 4 22746214.896 22746215.050 22746214.073
+ 36.200 28.400
+ -18971984.169 7 -14783368.199 6 21159136.305 21159135.286 21159135.241
+ 45.900 40.600
+ -10023208.734 5 -7810289.782 4 22580560.409 22580558.808 22580559.382
+ 34.300 26.800
+ -1278777.389 3 -996462.707 1 24362114.757 24362114.663 24362114.421
+ 22.100 11.000
+ -21116229.711 8 -16454202.576 7 20613681.836 20613678.270 20613680.052
+ 49.500 46.800
+ -23831333.186 7 -18569872.752 7 20627729.577 20627728.885 20627728.700
+ 45.200 46.300
+ -8584960.741 5 -6689579.335 4 23290130.553 23290129.006 23290129.597
+ 32.700 28.600
+ -119274.029 3 -92941.392 3 24765775.742 24765775.894 24765775.092
+ 19.300 22.100
+ 06 1 1 14 45 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -9322706.881 6 -7264447.647 4 22782511.263 22782511.633 22782510.252
+ 36.200 28.400
+ -19105710.560 7 -14887570.606 6 21133689.060 21133688.160 21133688.097
+ 46.600 40.900
+ -10208318.425 5 -7954531.071 4 22545334.115 22545333.930 22545333.764
+ 34.400 27.600
+ -1062534.616 3 -827962.020 1 24403264.175 24403264.410 24403263.829
+ 23.000 11.000
+ -21049457.215 8 -16402172.093 7 20626388.096 20626384.745 20626386.405
+ 49.400 46.700
+ -23850572.774 7 -18584864.667 7 20624068.559 20624067.675 20624067.639
+ 45.100 46.300
+ -8743552.174 5 -6813157.058 5 23259952.167 23259950.175 23259951.173
+ 33.900 30.400
+ -229208.883 3 -178604.960 3 24744856.477 24744855.102 24744855.854
+ 22.600 19.300
+ 06 1 1 14 46 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -9131215.449 5 -7115233.677 4 22818951.058 22818950.492 22818950.009
+ 35.800 26.500
+ -19237669.443 7 -14990395.736 6 21108577.909 21108577.208 21108576.906
+ 46.000 40.900
+ -10392354.730 5 -8097935.950 4 22510314.544 22510312.823 22510313.311
+ 35.300 28.600
+ -846143.073 3 -659345.330 3 24444442.388 24444442.821 24444442.041
+ 23.400 19.900
+ -20980818.487 8 -16348687.410 7 20639449.942 20639446.324 20639447.987
+ 49.100 46.600
+ -23867759.959 7 -18598257.312 7 20620797.878 20620797.018 20620797.014
+ 45.000 46.200
+ -8901788.531 5 -6936458.097 4 23229840.682 23229838.766 23229839.634
+ 33.900 29.700
+ -337305.799 4 -262836.419 3 24724286.458 24724285.280 24724285.432
+ 24.600 22.100
+ 06 1 1 14 47 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8938987.676 6 -6965445.942 4 22855530.502 22855531.019 22855529.574
+ 36.100 27.100
+ -19367841.774 7 -15091828.740 6 21083807.180 21083806.305 21083806.148
+ 46.300 41.100
+ -10575294.904 5 -8240486.696 4 22475500.678 22475500.560 22475500.521
+ 35.500 28.100
+ -629626.831 3 -490631.531 3 24485643.170 24485644.463 24485643.328
+ 21.600 21.100
+ -20910327.032 8 -16293759.052 7 20652863.786 20652860.425 20652861.835
+ 48.800 46.500
+ -23882886.373 7 -18610044.165 7 20617919.609 20617918.618 20617918.670
+ 45.200 46.200
+ -9059665.431 5 -7059479.055 4 23199797.541 23199795.508 23199796.555
+ 34.300 27.900
+ -443551.260 3 -345625.143 3 24704068.546 24704067.181 24704067.591
+ 19.900 18.600
+ 06 1 1 14 48 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8746040.704 5 -6815097.779 4 22892247.664 22892247.221 22892246.641
+ 35.400 26.500
+ -19496206.407 7 -15191853.155 6 21059380.290 21059379.245 21059379.267
+ 46.800 41.500
+ -10757115.791 5 -8382165.279 4 22440901.268 22440901.085 22440900.949
+ 35.400 29.500
+ -413010.037 3 -321839.444 2 24526865.159 24526865.069 24526864.601
+ 23.000 15.100
+ -20837995.693 8 -16237397.020 7 20666627.939 20666624.597 20666626.134
+ 48.900 46.400
+ -23895944.650 7 -18620219.484 7 20615434.538 20615433.686 20615433.652
+ 45.000 46.100
+ -9217178.704 5 -7182216.664 4 23169823.726 23169821.646 23169822.764
+ 34.100 27.600
+ -547931.742 3 -426960.632 2 24684205.295 24684205.340 24684205.090
+ 19.300 17.800
+ 06 1 1 14 49 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8552391.693 5 -6664202.565 4 22929097.486 22929097.470 22929096.630
+ 35.200 25.600
+ -19622743.783 7 -15290453.730 6 21035301.020 21035300.035 21035300.024
+ 46.800 41.600
+ -10937794.872 5 -8522954.109 4 22406519.366 22406518.839 22406518.960
+ 35.900 29.200
+ -196317.016 2 -152987.866 1 24568099.805 24568100.636 24568099.823
+ 16.100 11.000
+ -20763838.239 8 -16179612.038 7 20680739.828 20680736.402 20680738.032
+ 49.100 46.300
+ -23906926.986 7 -18628777.192 7 20613344.768 20613344.046 20613343.903
+ 45.300 46.200
+ -9374323.597 5 -7304667.234 4 23139919.842 23139918.015 23139918.939
+ 35.100 29.000
+ -650434.063 3 -506832.628 1 24664699.831 24664698.964 24664698.949
+ 19.900 11.000
+ 06 1 1 14 50 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8358057.819 5 -6512773.683 4 22966078.632 22966078.518 22966077.376
+ 34.700 27.100
+ -19747434.055 7 -15387614.998 6 21011573.185 21011572.158 21011572.169
+ 46.600 41.600
+ -11117309.319 5 -8662835.384 4 22372359.486 22372358.356 22372358.686
+ 35.900 29.500
+ 20428.559 3 15904.521 2 24609345.495 24609346.280 24609345.596
+ 18.600 15.100
+ -20687868.133 8 -16120414.596 7 20695196.615 20695193.036 20695194.775
+ 49.200 46.000
+ -23915825.782 7 -18635711.358 7 20611651.644 20611650.572 20611650.665
+ 45.300 46.100
+ -9531095.151 5 -7426826.856 5 23110086.916 23110086.053 23110086.063
+ 33.500 31.600
+ -751044.868 3 -585230.803 2 24645554.226 24645553.454 24645553.733
+ 18.600 13.900
+ 06 1 1 14 51 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -8163055.947 5 -6360824.297 4 23003187.376 23003185.942 23003185.868
+ 35.200 26.800
+ -19870257.408 7 -15483321.525 6 20988200.890 20988199.786 20988199.810
+ 46.900 41.700
+ -11295636.481 6 -8801791.471 5 22338424.538 22338423.775 22338423.810
+ 36.400 30.100
+ 237202.920 3 184819.468 9 24650597.104 24650596.919 24650596.264
+ 21.100 -3.000
+ -20610099.228 8 -16059815.488 7 20709995.320 20709991.951 20709993.534
+ 49.000 45.900
+ -23922635.002 7 -18641017.280 7 20610355.970 20610354.918 20610354.933
+ 45.100 46.200
+ -9687488.282 5 -7548691.614 5 23080326.529 23080325.056 23080325.558
+ 34.100 30.200
+ -849751.356 3 -662144.967 2 24626770.919 24626770.839 24626770.577
+ 21.600 16.100
+ 06 1 1 14 52 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -7967402.852 5 -6208367.463 4 23040417.147 23040417.619 23040416.206
+ 34.000 24.600
+ -19991193.731 7 -15577557.636 6 20965187.283 20965186.354 20965186.285
+ 46.800 41.900
+ -11472753.915 6 -8939804.878 5 22304720.222 22304719.417 22304719.433
+ 36.100 30.400
+ 453981.885 2 353737.993 1 24691847.950 24691849.038 24691847.550
+ 13.900 11.000
+ -20530545.427 8 -15997825.539 7 20725134.053 20725130.726 20725132.217
+ 48.900 45.900
+ -23927346.902 7 -18644688.924 7 20609459.180 20609458.369 20609458.217
+ 45.100 46.100
+ -9843499.161 5 -7670258.511 5 23050638.650 23050637.174 23050637.717
+ 35.200 30.100
+ -946540.958 3 -737565.595 2 24608352.608 24608352.096 24608352.000
+ 22.100 15.100
+ 06 1 1 14 53 0.0000000 0 8G03G08G11G13G19G27G28G29
+ -7771115.448 5 -6055416.354 4 23077770.221 23077770.602 23077769.238
+ 34.000 25.900
+ -20110223.748 7 -15670308.316 7 20942536.503 20942535.701 20942535.518
+ 46.800 42.000
+ -11648639.298 6 -9076858.258 4 22271250.256 22271249.123 22271249.487
+ 36.800 29.900
+ 670741.967 3 522641.783 1 24733096.277 24733097.330 24733096.042
+ 19.300 11.000
+ -20449220.798 8 -15934455.729 7 20740609.520 20740606.313 20740607.681
+ 48.700 45.900
+ -23929955.538 7 -18646721.661 7 20608962.686 20608961.824 20608961.777
+ 45.100 45.800
+ -9999122.147 5 -7791523.159 5 23021024.860 23021023.056 23021023.777
+ 34.700 30.600
+ -1041401.771 3 -811483.192 3 24590301.106 24590301.201 24590300.344
+ 23.400 18.600
+ 06 1 1 14 54 0.0000000 0 7G03G08G11G19G27G28G29
+ -7574210.435 5 -5901983.997 4 23115239.862 23115239.640 23115239.171
+ 35.100 24.900
+ -20227327.631 7 -15761558.105 7 20920252.407 20920251.600 20920251.375
+ 46.700 42.300
+ -11823269.922 6 -9212933.906 4 22238019.040 22238017.705 22238018.344
+ 37.900 29.900
+ -20366139.315 8 -15869716.940 7 20756419.376 20756416.250 20756417.575
+ 48.700 45.800
+ -23930455.094 7 -18647110.960 7 20608867.731 20608866.838 20608866.718
+ 44.900 45.800
+ -10154352.735 5 -7912482.029 5 22991485.260 22991484.037 22991484.296
+ 35.600 32.600
+ -1134321.693 4 -883888.362 2 24572619.484 24572618.505 24572618.790
+ 24.900 17.800
+ 06 1 1 14 55 0.0000000 0 7G03G08G11G19G27G28G29
+ -7376703.929 5 -5748082.957 4 23152824.079 23152824.613 23152823.500
+ 33.600 24.900
+ -20342486.808 7 -15851292.537 7 20898338.159 20898337.569 20898337.301
+ 46.900 42.200
+ -11996623.705 6 -9348014.617 5 22205030.408 22205029.809 22205029.787
+ 36.700 31.000
+ -20281315.479 8 -15803620.466 7 20772560.889 20772557.673 20772559.138
+ 48.800 45.600
+ -23928839.168 7 -18645851.832 7 20609175.185 20609174.440 20609174.297
+ 45.100 45.900
+ -10309185.437 5 -8033130.854 5 22962021.371 22962019.933 22962020.522
+ 35.900 31.500
+ -1225288.632 4 -954771.841 4 24555309.604 24555309.606 24555308.805
+ 28.800 26.800
+ 06 1 1 14 56 0.0000000 0 7G03G08G11G19G27G28G29
+ -7178612.149 5 -5593725.832 3 23190519.658 23190520.015 23190518.685
+ 33.100 23.000
+ -20455681.738 7 -15939496.385 7 20876798.428 20876797.323 20876797.361
+ 47.400 42.400
+ -12168678.394 6 -9482083.068 5 22172289.345 22172288.394 22172288.837
+ 37.400 30.600
+ -20194763.933 8 -15736177.733 7 20789031.194 20789027.826 20789029.354
+ 48.900 45.300
+ -23925103.296 7 -18642940.798 7 20609886.062 20609885.365 20609885.159
+ 45.100 45.700
+ -10463615.472 6 -8153465.946 5 22932634.751 22932632.721 22932633.646
+ 36.000 31.000
+ -1314291.511 4 -1024124.776 3 24538372.800 24538371.639 24538372.108
+ 27.900 23.800
+ 06 1 1 14 57 0.0000000 0 7G03G08G11G19G27G28G29
+ -6979951.507 5 -5438925.490 4 23228324.379 23228324.447 23228323.379
+ 34.100 25.600
+ -20566892.774 7 -16026154.339 7 20855635.279 20855634.637 20855634.277
+ 46.800 42.800
+ -12339411.438 6 -9615121.711 5 22139799.010 22139799.314 22139799.111
+ 37.800 31.600
+ -20106498.376 8 -15667399.403 7 20805827.769 20805824.182 20805825.916
+ 49.100 45.200
+ -23919241.417 7 -18638373.133 7 20611001.751 20611000.858 20611000.746
+ 45.300 45.700
+ -10617637.492 5 -8273483.105 5 22903325.292 22903323.738 22903324.193
+ 35.800 32.000
+ -1401319.283 4 -1091938.685 4 24521811.958 24521811.532 24521811.202
+ 29.500 26.800
+ 06 1 1 14 58 0.0000000 0 7G03G08G11G19G27G28G29
+ -6780738.104 5 -5283694.390 4 23266233.020 23266232.701 23266232.202
+ 33.500 24.200
+ -20676103.075 7 -16111253.264 7 20834853.328 20834852.703 20834852.362
+ 47.200 43.000
+ -12508801.345 6 -9747113.746 5 22107565.844 22107565.194 22107565.452
+ 37.800 31.300
+ -20016533.997 8 -15597297.319 7 20822947.304 20822943.948 20822945.512
+ 49.000 45.000
+ -23911248.421 7 -18632144.857 7 20612522.621 20612521.897 20612521.696
+ 45.200 45.600
+ -10771246.526 6 -8393178.454 5 22874094.396 22874092.786 22874093.281
+ 36.500 32.100
+ -1486360.854 4 -1158204.923 4 24505629.343 24505628.793 24505628.708
+ 26.500 25.300
+ 06 1 1 14 59 0.0000000 0 7G03G08G11G19G27G28G29
+ -6580988.149 5 -5128045.233 3 23304244.206 23304244.261 23304243.253
+ 32.400 22.100
+ -20783292.556 7 -16194777.530 7 20814455.908 20814455.157 20814454.946
+ 47.200 43.000
+ -12676826.471 6 -9878042.349 5 22075592.061 22075590.950 22075591.368
+ 38.400 31.500
+ -19924885.330 8 -15525882.817 7 20840387.508 20840384.122 20840385.607
+ 48.800 45.000
+ -23901120.091 7 -18624252.683 7 20614450.095 20614449.382 20614449.208
+ 45.300 45.700
+ -10924437.228 6 -8512547.848 5 22844943.009 22844941.281 22844942.008
+ 37.100 31.500
+ -1569405.694 3 -1222915.249 4 24489825.900 24489825.679 24489825.337
+ 22.100 27.600
+ 06 1 1 15 0 0.0000000 0 7G03G08G11G19G27G28G29
+ -6380717.646 5 -4971990.407 3 23342354.005 23342354.819 23342353.298
+ 33.000 22.100
+ -20888442.803 7 -16276712.782 7 20794446.271 20794445.543 20794445.268
+ 47.100 43.000
+ -12843464.541 6 -10007890.146 5 22043881.367 22043880.719 22043881.092
+ 39.100 31.300
+ -19831567.575 8 -15453167.726 7 20858145.354 20858141.913 20858143.512
+ 48.900 44.800
+ -23888852.094 7 -18614693.237 7 20616784.787 20616783.834 20616783.750
+ 45.200 45.500
+ -11077203.971 6 -8631586.904 5 22815872.430 22815870.887 22815871.443
+ 36.500 32.100
+ -1650443.649 3 -1286061.749 4 24474404.741 24474404.972 24474404.194
+ 21.100 28.100
+ 06 1 1 15 1 0.0000000 0 7G03G08G11G19G27G28G29
+ -6179941.919 5 -4815541.910 4 23380561.551 23380562.020 23380560.529
+ 32.300 24.600
+ -20991536.129 7 -16357045.243 7 20774828.362 20774827.660 20774827.349
+ 47.300 43.300
+ -13008694.045 6 -10136640.371 5 22012440.040 22012438.483 22012439.131
+ 38.900 31.300
+ -19736595.483 8 -15379163.540 7 20876218.069 20876214.638 20876216.088
+ 48.700 44.700
+ -23874440.548 7 -18603463.494 7 20619526.854 20619526.387 20619525.988
+ 45.100 45.500
+ -11229541.145 6 -8750291.201 5 22786883.994 22786882.026 22786882.967
+ 37.700 31.800
+ -1729464.576 2 -1347636.541 3 24459367.014 24459366.073 24459366.485
+ 17.000 23.800
+ 06 1 1 15 2 0.0000000 0 7G03G08G11G19G27G28G29
+ -5978676.535 5 -4658711.864 3 23418861.062 23418860.304 23418859.874
+ 32.100 20.500
+ -21092553.818 7 -16435760.325 7 20755605.117 20755604.743 20755604.235
+ 47.000 43.500
+ -13172493.432 6 -10264276.241 5 21981269.818 21981268.548 21981269.091
+ 39.100 32.000
+ -19639984.200 8 -15303882.063 7 20894602.416 20894599.220 20894600.642
+ 48.800 44.700
+ -23857881.820 7 -18590560.623 7 20622678.100 20622677.409 20622677.183
+ 45.100 45.400
+ -11381443.707 6 -8868656.864 5 22757977.837 22757975.839 22757976.698
+ 37.700 31.800
+ -1806458.746 2 -1407632.051 9 24444714.720 24444712.053 24444713.561
+ 15.100 -3.000
+ 06 1 1 15 3 0.0000000 0 7G03G08G11G19G27G28G29
+ -5776937.385 5 -4501512.630 3 23457250.085 23457251.081 23457249.241
+ 31.000 23.000
+ -21191478.588 7 -16512844.564 7 20736780.627 20736779.745 20736779.629
+ 47.100 43.300
+ -13334841.098 6 -10390780.912 5 21950375.725 21950374.941 21950375.129
+ 39.300 32.700
+ -19541748.475 8 -15227334.784 7 20913296.234 20913292.947 20913294.412
+ 48.900 44.600
+ -23839172.623 7 -18575982.066 7 20626238.329 20626237.665 20626237.404
+ 45.400 45.200
+ -11532905.493 6 -8986679.060 5 22729155.046 22729153.808 22729154.231
+ 37.200 32.700
+ -1881417.182 3 -1466041.215 4 24430452.327 24430451.932 24430451.485
+ 19.300 24.900
+ 06 1 1 15 4 0.0000000 0 7G03G08G11G19G27G28G29
+ -5574739.846 5 -4343956.194 3 23495727.607 23495727.652 23495726.851
+ 31.300 19.900
+ -21288292.288 7 -16588283.812 7 20718357.585 20718356.996 20718356.563
+ 47.200 43.700
+ -13495715.822 6 -10516137.846 5 21919762.475 21919761.207 21919761.757
+ 39.700 32.700
+ -19441904.131 8 -15149534.034 7 20932295.907 20932292.727 20932294.090
+ 48.700 44.400
+ -23818309.390 7 -18559725.039 7 20630208.577 20630207.820 20630207.643
+ 45.200 45.100
+ -11683921.122 6 -9104353.575 5 22700418.101 22700416.742 22700417.236
+ 38.300 33.400
+ -1954330.477 3 -1522856.795 3 24416577.604 24416576.758 24416576.818
+ 21.100 19.300
+ 06 1 1 15 5 0.0000000 0 7G03G08G11G19G27G28G29
+ -5372098.788 5 -4186054.201 4 23534289.248 23534289.512 23534288.053
+ 30.800 24.900
+ -21382977.440 7 -16662064.459 7 20700339.768 20700338.688 20700338.699
+ 47.300 43.400
+ -13655096.200 6 -10640330.349 5 21889433.725 21889432.397 21889432.902
+ 39.700 32.400
+ -19340466.013 8 -15070491.382 7 20951598.836 20951595.753 20951597.007
+ 48.500 44.200
+ -23795289.674 7 -18541787.639 7 20634589.055 20634588.307 20634588.151
+ 45.300 44.900
+ -11834484.352 6 -9221675.567 5 22671766.794 22671765.225 22671765.795
+ 37.500 32.700
+ -2025189.858 4 -1578071.983 3 24403093.704 24403093.474 24403092.796
+ 24.200 21.100
+ 06 1 1 15 6 0.0000000 0 7G03G08G11G19G27G28G29
+ -5169029.197 5 -4027818.295 3 23572931.897 23572932.940 23572930.449
+ 30.400 23.400
+ -21475516.995 7 -16734173.211 7 20682729.797 20682729.138 20682728.877
+ 47.200 43.600
+ -13812961.215 6 -10763342.042 5 21859392.731 21859391.476 21859392.020
+ 39.900 32.800
+ -19237449.546 8 -14990218.844 7 20971202.125 20971199.099 20971200.363
+ 48.400 44.100
+ -23770111.058 7 -18522167.980 7 20639380.435 20639379.606 20639379.467
+ 45.300 44.700
+ -11984589.948 6 -9338640.951 5 22643202.889 22643201.186 22643201.787
+ 38.200 33.400
+ -2093987.082 4 -1631680.276 2 24390002.148 24390000.361 24390001.269
+ 24.200 17.000
+ 06 1 1 15 7 0.0000000 0 7G03G08G11G19G27G28G29
+ -4965546.260 4 -3869260.308 3 23611652.614 23611654.436 23611651.994
+ 29.500 21.600
+ -21565893.864 7 -16804596.745 7 20665531.934 20665531.127 20665530.891
+ 47.300 43.900
+ -13969290.268 6 -10885156.859 5 21829644.070 21829643.359 21829643.522
+ 40.000 33.800
+ -19132870.329 8 -14908728.586 7 20991103.075 20991099.884 20991101.172
+ 48.300 43.900
+ -23742771.364 7 -18500864.361 7 20644583.043 20644582.269 20644582.114
+ 45.200 44.700
+ -12134231.728 6 -9455244.903 5 22614726.410 22614725.058 22614725.565
+ 38.400 32.800
+ -2160713.894 4 -1683675.299 2 24377304.541 24377302.866 24377303.850
+ 25.900 12.600
+ 06 1 1 15 8 0.0000000 0 7G03G08G11G19G27G28G29
+ -4761664.783 4 -3710391.779 3 23650450.650 23650451.835 23650449.623
+ 29.200 21.100
+ -21654091.373 7 -16873322.080 7 20648748.445 20648747.591 20648747.393
+ 47.200 44.100
+ -14124062.534 6 -11005758.587 5 21800191.754 21800190.922 21800191.319
+ 40.100 33.400
+ -19026744.351 8 -14826033.063 7 21011298.358 21011295.001 21011296.474
+ 48.500 43.800
+ -23713269.227 7 -18477875.724 7 20650197.063 20650196.433 20650196.157
+ 45.200 44.700
+ -12283403.609 6 -9571482.689 5 22586340.492 22586338.737 22586339.492
+ 38.800 33.900
+ -2225362.740 4 -1734051.098 2 24365002.251 24365000.961 24365001.573
+ 28.100 13.900
+ 06 1 1 15 9 0.0000000 0 7G03G08G11G19G27G28G29
+ -4557399.358 4 -3551224.077 3 23689321.435 23689322.565 23689320.423
+ 29.500 23.400
+ -21740093.077 7 -16940336.399 7 20632382.799 20632382.090 20632381.817
+ 47.200 44.100
+ -14277257.570 6 -11125131.283 5 21771040.180 21771038.827 21771039.426
+ 40.300 33.500
+ -18919085.881 8 -14742143.383 7 21031785.099 21031781.775 21031783.188
+ 48.300 43.400
+ -23681602.903 7 -18453200.708 7 20656223.001 20656222.476 20656222.065
+ 45.300 44.800
+ -12432099.424 6 -9687349.519 5 22558044.612 22558042.736 22558043.515
+ 39.100 33.900
+ -2287925.836 4 -1782801.628 2 24353096.905 24353096.259 24353096.258
+ 27.400 17.800
+ 06 1 1 15 10 0.0000000 0 7G03G08G11G19G27G28G29
+ -4352764.806 5 -3391768.767 3 23728262.249 23728262.897 23728261.340
+ 30.100 19.900
+ -21823882.365 7 -17005626.750 7 20616438.110 20616437.509 20616437.121
+ 47.200 44.200
+ -14428854.730 6 -11243258.883 5 21742191.671 21742190.975 21742191.180
+ 41.100 34.500
+ -18809911.870 8 -14657072.774 7 21052560.043 21052557.014 21052558.302
+ 48.400 43.500
+ -23647771.639 7 -18426838.723 7 20662661.130 20662660.179 20662660.106
+ 45.400 44.500
+ -12580313.272 6 -9802840.792 5 22529840.569 22529838.715 22529839.537
+ 39.300 34.100
+ -2348396.277 4 -1829921.534 2 24341589.708 24341588.172 24341589.273
+ 28.100 12.600
+ 06 1 1 15 11 0.0000000 0 7G03G08G11G19G27G28G29
+ -4147775.419 4 -3232036.948 2 23767270.959 23767270.249 23767269.614
+ 28.100 17.000
+ -21905442.682 7 -17069180.247 7 20600917.920 20600917.005 20600916.930
+ 47.500 44.300
+ -14578833.797 6 -11360125.621 5 21713651.716 21713650.641 21713651.193
+ 40.900 34.100
+ -18699237.476 8 -14570833.038 7 21073620.869 21073617.754 21073619.099
+ 48.500 43.500
+ -23611773.993 7 -18398788.647 7 20669511.251 20669510.534 20669510.277
+ 45.300 44.600
+ -12728038.630 6 -9917951.416 5 22501729.241 22501726.989 22501728.046
+ 38.900 33.400
+ -2406767.299 4 -1875405.561 1 24330482.250 24330481.069 24330481.659
+ 27.400 11.000
+ 06 1 1 15 12 0.0000000 0 7G03G08G11G19G27G28G29
+ -3942446.015 5 -3072040.167 3 23806343.900 23806344.539 23806342.899
+ 30.400 19.900
+ -21984758.605 7 -17130984.865 7 20585824.695 20585823.822 20585823.658
+ 47.500 44.500
+ -14727174.940 6 -11475716.054 5 21685423.632 21685422.261 21685422.809
+ 41.100 34.300
+ -18587078.316 8 -14483436.345 7 21094964.153 21094960.951 21094962.229
+ 48.300 43.300
+ -23573610.235 7 -18369050.688 7 20676773.632 20676772.885 20676772.677
+ 45.300 44.400
+ -12875269.023 6 -10032676.359 5 22473711.776 22473710.257 22473710.868
+ 39.300 34.600
+ -2463032.149 4 -1919248.373 1 24319775.394 24319774.410 24319774.522
+ 27.100 11.000
+ 06 1 1 15 13 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3736790.401 4 -2911789.203 3 23845479.111 23845479.587 23845478.270
+ 29.000 21.600
+ -22061814.839 7 -17191028.687 7 20571161.045 20571160.566 20571160.128
+ 47.300 44.700
+ -14873857.948 6 -11590014.421 5 21657510.218 21657509.364 21657509.542
+ 41.000 34.500
+ -18473450.371 8 -14394895.152 7 21116586.921 21116583.655 21116585.063
+ 48.200 42.900
+ -135575.181 3 -105642.962 3 24412901.378 24412901.198 24412900.840
+ 23.400 21.100
+ -23533280.389 7 -18337624.872 7 20684448.027 20684447.389 20684447.151
+ 45.400 44.400
+ -13021998.459 6 -10147010.943 5 22445790.289 22445788.470 22445789.262
+ 39.600 34.400
+ -2517185.127 4 -1961445.554 2 24309470.743 24309469.538 24309469.979
+ 27.900 16.100
+ 06 1 1 15 14 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3530822.314 4 -2751294.782 2 23884673.245 23884673.698 23884672.188
+ 27.600 17.800
+ -22136596.017 7 -17249299.734 7 20556930.610 20556930.064 20556929.636
+ 47.000 44.800
+ -15018863.190 6 -11703005.444 5 21629916.774 21629915.870 21629916.182
+ 41.400 35.100
+ -18358369.263 8 -14305221.613 7 21138486.003 21138482.802 21138484.210
+ 48.100 42.600
+ -219180.262 3 -170789.872 3 24396991.751 24396991.708 24396991.051
+ 21.600 19.300
+ -23490783.963 7 -18304510.813 7 20692534.991 20692534.287 20692534.042
+ 45.600 44.100
+ -13168220.059 6 -10260949.800 5 22417964.544 22417963.571 22417963.786
+ 39.300 35.400
+ -2569220.051 4 -2001992.360 2 24299568.578 24299567.470 24299567.813
+ 26.200 17.800
+ 06 1 1 15 15 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3324555.986 4 -2590567.940 2 23923925.009 23923925.277 23923923.650
+ 25.600 17.800
+ -22209084.717 7 -17305784.443 7 20543136.500 20543135.952 20543135.447
+ 47.000 44.600
+ -15162171.206 6 -11814673.939 5 21602645.720 21602644.840 21602645.199
+ 41.600 34.500
+ -18241851.131 8 -14214428.308 7 21160658.623 21160655.537 21160656.898
+ 48.100 42.400
+ -300487.068 3 -234145.799 3 24381520.357 24381519.746 24381519.931
+ 22.600 21.100
+ -23446121.688 7 -18269709.077 7 20701033.945 20701033.150 20701032.927
+ 45.400 44.000
+ -13313927.512 6 -10374488.046 5 22390237.851 22390236.017 22390236.958
+ 40.300 34.400
+ -2619131.713 4 -2040884.617 2 24290070.312 24290069.535 24290069.647
+ 25.900 16.100
+ 06 1 1 15 16 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -3118005.208 5 -2429619.403 3 23963230.147 23963230.902 23963229.052
+ 30.100 19.300
+ -22279270.926 7 -17360474.999 7 20529780.605 20529779.926 20529779.568
+ 47.000 44.900
+ -15303762.773 6 -11925004.933 5 21575702.065 21575700.621 21575701.273
+ 41.300 34.500
+ -18123911.587 8 -14122527.400 7 21183101.882 21183098.744 21183100.111
+ 48.200 42.300
+ -379484.213 4 -295702.114 3 24366486.915 24366487.931 24366486.422
+ 24.900 21.600
+ -23399295.329 7 -18233221.045 7 20709944.437 20709943.966 20709943.534
+ 45.100 44.000
+ -13459113.768 6 -10487620.152 5 22362610.071 22362608.041 22362608.978
+ 40.300 34.600
+ -2666914.965 4 -2078118.402 3 24280977.057 24280977.174 24280976.560
+ 24.900 21.100
+ 06 1 1 15 17 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2911183.160 4 -2268459.528 3 24002586.420 24002588.183 24002585.520
+ 27.600 20.500
+ -22347137.879 7 -17413358.344 7 20516865.943 20516865.422 20516864.916
+ 47.000 44.900
+ -15443618.408 6 -12033983.257 5 21549088.365 21549087.172 21549087.649
+ 41.900 35.200
+ -18004566.934 8 -14029531.598 7 21205812.589 21205809.470 21205810.717
+ 48.400 42.700
+ -456161.634 3 -355450.823 3 24351896.178 24351896.247 24351895.570
+ 22.600 20.500
+ -23350305.711 7 -18195047.357 7 20719267.001 20719266.585 20719266.130
+ 45.200 44.100
+ -13603772.260 6 -10600341.016 6 22335082.437 22335080.703 22335081.318
+ 40.500 36.000
+ -2712564.770 4 -2113689.712 3 24272291.429 24272290.928 24272290.729
+ 25.300 23.800
+ 06 1 1 15 18 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2704103.850 4 -2107099.163 2 24041991.790 24041993.951 24041991.129
+ 27.400 17.800
+ -22412671.537 7 -17464423.533 7 20504395.201 20504394.671 20504394.294
+ 47.200 45.000
+ -15581719.560 6 -12141594.458 5 21522808.191 21522807.146 21522807.644
+ 41.900 35.300
+ -17883833.004 8 -13935453.232 7 21228787.406 21228784.287 21228785.642
+ 48.500 42.200
+ -530509.347 3 -413384.186 2 24337748.390 24337747.720 24337747.755
+ 23.400 17.000
+ -23299153.837 7 -18155188.788 7 20729001.007 20729000.331 20729000.017
+ 45.400 43.700
+ -13747896.351 6 -10712645.470 5 22307656.331 22307654.533 22307655.311
+ 40.200 35.600
+ -2756076.901 4 -2147595.275 3 24264011.069 24264010.643 24264010.148
+ 25.300 22.600
+ 06 1 1 15 19 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2496780.493 4 -1945548.653 3 24081445.083 24081446.399 24081443.944
+ 25.900 19.300
+ -22475858.181 7 -17513659.882 7 20492371.300 20492370.657 20492370.331
+ 47.300 45.100
+ -15718047.453 7 -12247823.921 5 21496865.932 21496864.936 21496865.347
+ 42.300 35.700
+ -17761725.349 8 -13840304.425 7 21252023.736 21252020.634 21252021.872
+ 48.100 42.000
+ -602517.327 2 -469494.412 2 24324045.356 24324045.259 24324045.020
+ 17.800 13.900
+ -23245842.703 7 -18113647.679 7 20739145.801 20739145.122 20739144.869
+ 45.500 43.600
+ -13891478.944 6 -10824527.979 5 22280333.327 22280331.639 22280332.352
+ 40.000 35.500
+ -2797447.307 3 -2179831.991 4 24256138.275 24256138.221 24256137.723
+ 23.400 24.200
+ 06 1 1 15 20 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2289225.885 5 -1783817.926 2 24120942.874 24120942.543 24120941.792
+ 30.100 15.100
+ -22536683.478 7 -17561056.219 7 20480796.767 20480795.959 20480795.761
+ 47.300 45.000
+ -15852583.107 7 -12352656.844 5 21471264.548 21471263.457 21471264.045
+ 42.400 35.300
+ -17638260.243 7 -13744097.872 6 21275518.347 21275515.107 21275516.531
+ 47.800 41.700
+ -672176.573 3 -523774.357 1 24310789.762 24310789.234 24310789.376
+ 20.500 11.000
+ -23190373.013 7 -18070424.573 7 20749701.079 20749700.799 20749700.270
+ 45.400 43.700
+ -14034512.784 6 -10935982.908 6 22253115.200 22253113.258 22253114.142
+ 40.700 36.100
+ -2836672.238 4 -2210396.946 4 24248674.264 24248674.466 24248673.617
+ 25.300 26.800
+ 06 1 1 15 21 0.0000000 0 8G03G08G11G19G26G27G28G29
+ -2081453.563 4 -1621917.542 2 24160479.814 24160480.671 24160478.978
+ 26.500 16.100
+ -22595135.633 7 -17606603.353 7 20469673.563 20469672.971 20469672.608
+ 47.300 45.200
+ -15985308.632 7 -12456079.299 5 21446007.836 21446006.614 21446007.231
+ 42.600 35.400
+ -17513453.939 7 -13646846.238 6 21299268.253 21299265.090 21299266.440
+ 47.600 41.600
+ -739477.796 3 -576216.959 2 24297983.112 24297982.986 24297982.297
+ 23.800 13.900
+ -23132748.571 7 -18025522.443 7 20760666.661 20760666.401 20760665.850
+ 45.300 43.600
+ -14176990.957 6 -11047004.840 6 22226002.611 22226000.526 22226001.498
+ 41.200 36.000
+ -2873748.280 4 -2239287.390 3 24241618.680 24241618.821 24241618.235
+ 24.900 23.800
+ 06 1 1 15 22 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1873476.554 4 -1459857.707 2 24200056.382 24200058.012 24200055.322
+ 26.500 17.000
+ -22651200.793 7 -17650290.488 7 20459004.816 20459003.992 20459003.837
+ 47.300 45.100
+ -16116206.017 7 -12558077.254 5 21421098.926 21421097.749 21421098.295
+ 42.600 35.900
+ -240857.076 3 -187681.484 3 24674333.727 24674334.536 24674332.786
+ 20.500 23.400
+ -17387321.990 7 -13548561.646 6 21323270.446 21323267.216 21323268.621
+ 47.700 41.500
+ -804412.579 3 -626815.531 1 24285626.256 24285625.867 24285625.533
+ 19.300 9.000
+ -23072972.178 7 -17978943.465 7 20772042.280 20772041.438 20772041.152
+ 45.300 43.400
+ -14318906.157 6 -11157588.110 6 22198996.943 22198994.855 22198995.831
+ 41.400 36.100
+ -2908672.583 3 -2266501.146 4 24234972.777 24234973.199 24234972.134
+ 23.000 24.600
+ 06 1 1 15 23 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1665307.675 3 -1297648.342 2 24239668.615 24239670.771 24239668.041
+ 23.800 12.600
+ -22704866.115 7 -17692107.625 7 20448792.506 20448791.849 20448791.534
+ 47.200 45.100
+ -16245257.522 7 -12658636.849 6 21396540.880 21396539.869 21396540.477
+ 42.900 36.100
+ -446814.732 3 -348168.114 4 24635141.178 24635142.551 24635140.407
+ 21.100 25.300
+ -17259880.705 7 -13449256.796 6 21347521.624 21347518.624 21347519.841
+ 47.600 41.200
+ -866972.853 4 -675563.903 2 24273722.057 24273721.535 24273721.502
+ 26.200 13.900
+ -23011046.604 7 -17930689.796 7 20783826.027 20783825.562 20783825.085
+ 45.500 43.600
+ -14460251.145 6 -11267727.036 6 22172099.889 22172097.969 22172098.795
+ 41.300 36.500
+ -2941442.346 4 -2292036.075 3 24228737.415 24228737.080 24228736.687
+ 24.900 23.400
+ 06 1 1 15 24 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1456959.207 4 -1135299.045 2 24279317.255 24279318.776 24279316.499
+ 24.900 17.800
+ -22756120.195 7 -17732045.877 7 20439039.196 20439038.474 20439038.187
+ 47.100 44.900
+ -16372444.917 7 -12757743.891 6 21372338.253 21372337.022 21372337.608
+ 43.100 36.300
+ -652309.663 4 -508294.150 4 24596037.164 24596038.314 24596036.031
+ 24.600 24.600
+ -17131146.326 7 -13348944.350 6 21372019.120 21372016.011 21372017.246
+ 47.500 41.200
+ -927150.879 4 -722455.873 1 24262270.757 24262270.108 24262270.279
+ 26.500 11.000
+ -22946975.789 7 -17880764.524 7 20796018.331 20796017.832 20796017.361
+ 45.400 43.200
+ -14601018.618 6 -11377415.959 6 22145312.546 22145310.848 22145311.588
+ 41.600 37.100
+ -2972055.295 4 -2315890.342 4 24222911.777 24222911.798 24222911.005
+ 24.200 26.500
+ 06 1 1 15 25 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1248443.991 4 -972819.874 2 24318996.865 24318998.365 24318995.943
+ 24.200 17.800
+ -22804950.518 7 -17770095.492 7 20429747.121 20429746.376 20429746.143
+ 47.000 45.200
+ -16497751.122 7 -12855385.047 6 21348493.258 21348491.901 21348492.665
+ 43.000 36.200
+ -857331.447 4 -668051.572 3 24557023.010 24557024.025 24557022.325
+ 29.200 23.000
+ -17001134.786 7 -13247636.717 6 21396759.568 21396756.499 21396757.816
+ 47.700 41.200
+ -984938.927 4 -767485.672 2 24251273.330 24251273.299 24251272.766
+ 27.400 13.900
+ -22880763.729 7 -17829170.747 7 20808618.066 20808617.710 20808617.151
+ 45.400 43.300
+ -14741200.916 6 -11486648.898 6 22118636.746 22118634.975 22118635.768
+ 41.800 36.800
+ -3000509.526 3 -2338062.492 4 24217496.888 24217497.300 24217496.253
+ 22.600 25.900
+ 06 1 1 15 26 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -1039774.396 4 -810220.327 2 24358704.877 24358706.104 24358703.970
+ 24.900 15.100
+ -22851346.054 7 -17806247.868 7 20420918.324 20420917.814 20420917.364
+ 47.000 45.300
+ -16621159.137 7 -12951547.086 6 21325009.541 21325008.218 21325008.754
+ 43.200 36.500
+ -1061870.452 4 -827432.776 3 24518100.381 24518101.382 24518099.971
+ 27.100 19.900
+ -16869861.496 7 -13145345.909 6 21421740.113 21421737.043 21421738.264
+ 47.500 41.000
+ -1040330.699 4 -810648.095 3 24240732.699 24240733.426 24240732.267
+ 27.900 23.000
+ -22812414.928 7 -17775911.983 7 20821624.581 20821624.094 20821623.626
+ 45.600 43.100
+ -14880790.460 7 -11595419.950 6 22092073.753 22092071.944 22092072.751
+ 42.000 37.100
+ -3026803.467 3 -2358551.303 4 24212493.615 24212493.311 24212492.705
+ 23.800 26.500
+ 06 1 1 15 27 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -830962.699 4 -647510.046 2 24398441.316 24398442.487 24398440.522
+ 27.600 17.800
+ -22895295.473 7 -17840494.177 7 20412555.036 20412554.419 20412554.104
+ 47.100 45.400
+ -16742651.807 7 -13046216.623 6 21301890.175 21301888.825 21301889.462
+ 43.600 36.600
+ -1265917.017 3 -986430.218 3 24479271.427 24479272.889 24479270.786
+ 22.600 20.500
+ -16737342.965 7 -13042084.775 6 21446957.627 21446954.516 21446955.704
+ 47.200 40.900
+ -1093319.251 4 -851937.921 3 24230649.258 24230649.357 24230648.863
+ 27.600 19.900
+ -22741933.300 7 -17720991.270 7 20835036.978 20835036.313 20835035.939
+ 45.600 43.200
+ -15019779.870 7 -11703723.364 6 22065625.000 22065622.932 22065624.017
+ 42.200 36.800
+ -3050935.748 4 -2377355.746 4 24207900.720 24207901.208 24207900.360
+ 24.200 25.300
+ 06 1 1 15 28 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -622021.483 4 -484698.849 2 24438201.916 24438202.776 24438200.570
+ 25.600 15.100
+ -22936787.571 7 -17872825.693 7 20404659.395 20404658.772 20404658.490
+ 47.100 45.300
+ -16862212.859 7 -13139380.990 6 21279138.140 21279137.225 21279137.640
+ 43.900 37.100
+ -1469461.527 3 -1145036.402 3 24440538.657 24440539.737 24440537.921
+ 22.100 19.300
+ -16603594.858 7 -12937865.536 6 21472408.984 21472405.994 21472407.082
+ 46.900 40.800
+ -1143898.735 5 -891350.588 4 24221024.662 24221024.930 24221024.244
+ 30.600 25.600
+ -22669324.577 7 -17664413.086 7 20848853.759 20848853.113 20848852.765
+ 45.400 42.600
+ -15158161.474 7 -11811553.166 6 22039291.670 22039290.029 22039290.684
+ 42.300 37.700
+ -3072905.729 3 -2394475.277 4 24203719.763 24203720.956 24203719.520
+ 23.000 27.100
+ 06 1 1 15 29 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -412962.044 4 -321795.557 3 24477984.262 24477985.719 24477983.499
+ 26.800 19.300
+ -22975812.147 7 -17903234.457 7 20397233.405 20397232.589 20397232.428
+ 47.100 45.400
+ -16979825.238 7 -13231026.904 6 21256757.703 21256756.050 21256756.994
+ 44.000 37.200
+ -1672493.881 3 -1303243.449 4 24401902.621 24401904.128 24401902.093
+ 23.400 25.600
+ -16468633.521 7 -12832700.919 6 21498091.477 21498088.335 21498089.597
+ 47.100 40.500
+ -1192063.230 4 -928881.382 4 24211859.646 24211859.491 24211859.100
+ 28.800 25.900
+ -22594593.353 7 -17606181.006 7 20863074.689 20863074.120 20863073.683
+ 45.200 42.600
+ -15295927.207 7 -11918903.069 6 22013075.695 22013073.762 22013074.743
+ 42.500 37.300
+ -3092712.863 4 -2409909.434 4 24199951.113 24199951.858 24199950.516
+ 24.200 27.900
+ 06 1 1 15 30 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ -203796.578 3 -158809.603 1 24517786.223 24517787.338 24517785.169
+ 22.100 6.500
+ -23012359.200 7 -17931712.693 7 20390278.917 20390278.057 20390277.880
+ 47.300 45.600
+ -17095473.760 7 -13321142.566 6 21234750.109 21234748.621 21234749.671
+ 44.600 37.300
+ -1875005.713 4 -1461044.879 4 24363365.963 24363367.357 24363365.161
+ 26.500 26.200
+ -16332474.584 7 -12726603.098 6 21524001.672 21523998.520 21523999.726
+ 47.300 40.300
+ -1237807.692 4 -964526.540 4 24203154.572 24203154.616 24203154.095
+ 27.400 26.200
+ -22517745.413 7 -17546299.542 7 20877698.245 20877697.781 20877697.395
+ 45.200 42.200
+ -15433069.310 7 -12025767.046 6 21986978.257 21986976.747 21986977.339
+ 42.500 38.100
+ -3110356.902 3 -2423658.055 4 24196593.668 24196594.019 24196592.974
+ 22.100 26.800
+ 06 1 1 15 31 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 5463.161 4 4249.811 1 24557607.885 24557608.747 24557607.256
+ 24.600 11.000
+ -23046418.812 7 -17958252.666 7 20383797.467 20383796.641 20383796.432
+ 47.000 45.400
+ -17209141.612 7 -13409714.856 6 21213119.713 21213118.500 21213119.273
+ 44.300 37.700
+ -2076987.082 4 -1618432.933 4 24324930.141 24324931.684 24324929.024
+ 24.200 26.800
+ -16195134.014 7 -12619584.525 6 21550136.395 21550133.632 21550134.588
+ 46.900 40.000
+ -1281127.214 4 -998282.029 5 24194910.612 24194911.737 24194910.203
+ 24.600 30.200
+ -22438786.822 7 -17484773.415 7 20892723.607 20892723.207 20892722.604
+ 45.100 42.300
+ -15569579.463 7 -12132138.603 6 21961001.434 21960999.628 21961000.391
+ 42.700 38.100
+ -3125837.949 3 -2435721.240 4 24193648.153 24193648.221 24193647.544
+ 21.600 27.600
+ 06 1 1 15 32 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 214805.601 4 167373.588 2 24597444.871 24597446.598 24597444.072
+ 25.300 15.100
+ -23077981.317 7 -17982846.840 7 20377791.402 20377790.517 20377790.361
+ 47.000 45.300
+ -17320813.850 7 -13496732.120 6 21191869.222 21191867.849 21191868.584
+ 44.100 37.700
+ -2278428.745 4 -1775400.436 4 24286597.403 24286598.586 24286596.744
+ 25.600 26.200
+ -16056627.934 7 -12511657.765 6 21576493.519 21576490.522 21576491.564
+ 46.600 40.100
+ -1322017.214 3 -1030144.461 5 24187129.420 24187130.559 24187128.740
+ 22.600 31.100
+ -22357724.553 7 -17421608.071 7 20908149.754 20908149.010 20908148.571
+ 45.300 42.400
+ -15705450.047 7 -12238011.802 6 21935146.068 21935144.284 21935145.145
+ 42.800 38.000
+ -3139156.752 3 -2446099.588 4 24191113.659 24191114.066 24191112.635
+ 21.600 29.000
+ 06 1 1 15 33 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 424219.191 3 330552.814 2 24637294.447 24637295.449 24637293.597
+ 23.000 12.600
+ -23107038.102 7 -18005488.510 7 20372261.870 20372261.184 20372260.838
+ 46.800 45.300
+ -17430475.007 7 -13582182.325 6 21171001.241 21170999.875 21171000.693
+ 44.200 37.600
+ -2479321.440 4 -1931940.164 4 24248369.024 24248369.418 24248368.405
+ 28.100 24.200
+ -15916971.935 7 -12402834.974 6 21603069.159 21603066.206 21603067.322
+ 46.600 39.800
+ -1360473.962 3 -1060110.777 4 24179811.494 24179812.577 24179811.430
+ 22.100 28.600
+ -22274564.760 7 -17356808.299 7 20923974.230 20923973.688 20923973.320
+ 45.400 42.000
+ -15840672.809 7 -12343380.208 6 21909414.060 21909412.280 21909413.067
+ 42.900 38.100
+ -3150314.312 3 -2454793.843 4 24188990.298 24188990.271 24188989.465
+ 19.300 25.900
+ 06 1 1 15 34 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 633693.124 3 493779.117 2 24677156.364 24677157.245 24677155.391
+ 22.100 12.600
+ -23133580.257 7 -18026170.722 7 20367210.717 20367210.476 20367209.798
+ 46.500 45.400
+ -17538110.309 7 -13666053.941 6 21150518.872 21150517.588 21150518.275
+ 44.500 38.000
+ -2679655.870 5 -2088044.848 4 24210246.443 24210247.413 24210245.564
+ 30.800 27.400
+ -15776182.114 7 -12293128.692 6 21629860.458 21629857.583 21629858.793
+ 46.600 39.500
+ -1396493.752 3 -1088178.235 4 24172957.415 24172958.189 24172957.122
+ 20.500 29.500
+ -22189313.993 7 -17290379.184 6 20940196.547 20940196.520 20940195.924
+ 45.500 41.900
+ -15975239.593 7 -12448237.480 6 21883807.098 21883805.113 21883806.070
+ 43.100 38.400
+ -3159312.062 3 -2461805.147 4 24187278.780 24187278.525 24187277.890
+ 23.400 27.100
+ 06 1 1 15 35 0.0000000 0 9G03G08G11G17G19G26G27G28G29
+ 843215.609 3 657043.204 2 24717026.683 24717029.439 24717026.098
+ 20.500 16.100
+ -23157600.121 7 -18044887.518 7 20362640.293 20362639.595 20362639.233
+ 46.500 45.500
+ -17643704.501 7 -13748335.077 6 21130424.973 21130423.571 21130424.423
+ 44.700 37.700
+ -2879422.674 4 -2243707.181 4 24172231.726 24172232.832 24172231.164
+ 29.000 28.800
+ -15634274.359 7 -12182551.298 6 21656864.813 21656861.919 21656863.091
+ 46.600 39.300
+ -1430073.490 3 -1114344.323 4 24166567.201 24166568.014 24166566.770
+ 22.100 27.600
+ -22101979.791 7 -17222326.627 6 20956816.595 20956815.610 20956815.412
+ 45.300 41.500
+ -16109141.731 7 -12552576.848 6 21858326.461 21858324.435 21858325.380
+ 43.200 38.400
+ -3166151.465 3 -2467134.585 4 24185977.055 24185977.240 24185976.378
+ 23.000 28.100
+ 06 1 1 15 36 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23179089.494 7 -18061632.504 7 20358551.054 20358550.386 20358550.056
+ 46.700 45.500
+ -17747243.266 7 -13829014.574 6 21110722.466 21110720.639 21110721.760
+ 44.900 38.300
+ -3078613.313 4 -2398920.536 4 24134327.135 24134327.971 24134326.065
+ 28.600 29.000
+ -15491263.783 7 -12071114.576 6 21684078.971 21684076.149 21684077.025
+ 46.400 39.500
+ -1461210.265 3 -1138606.767 4 24160641.910 24160643.252 24160641.540
+ 18.600 26.500
+ -22012569.593 7 -17152656.402 6 20973830.914 20973830.128 20973829.685
+ 45.600 41.800
+ -16242370.685 7 -12656391.653 6 21832973.833 21832971.827 21832972.657
+ 43.000 39.000
+ -3170834.610 3 -2470783.869 4 24185085.351 24185086.304 24185084.735
+ 21.600 28.800
+ 06 1 1 15 37 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23198041.163 7 -18076400.059 7 20354944.697 20354944.012 20354943.656
+ 46.800 45.400
+ -17848712.129 7 -13908081.151 6 21091413.658 21091411.717 21091412.902
+ 45.300 38.200
+ -3277217.997 4 -2553677.313 4 24096533.252 24096534.754 24096533.041
+ 29.000 29.000
+ -15347166.770 7 -11958831.285 6 21711499.612 21711496.944 21711497.721
+ 46.000 39.100
+ -1489902.066 1 -1160964.056 4 24155181.530 24155186.140 24155180.475
+ 9.000 25.300
+ -21921091.093 7 -17081374.523 6 20991238.100 20991237.805 20991237.351
+ 45.300 41.300
+ -16374918.128 7 -12759675.407 6 21807750.946 21807749.104 21807749.779
+ 43.600 39.600
+ -3173364.186 3 -2472755.081 4 24184604.340 24184604.601 24184603.767
+ 23.400 28.100
+ 06 1 1 15 38 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23214448.251 7 -18089184.825 7 20351822.463 20351821.854 20351821.420
+ 46.500 45.400
+ -17948098.442 7 -13985524.954 6 21072500.781 21072499.210 21072500.127
+ 45.300 38.600
+ -3475228.264 4 -2707970.908 4 24058853.546 24058854.584 24058852.782
+ 29.500 28.100
+ -15201998.556 7 -11845713.293 6 21739124.581 21739121.656 21739122.597
+ 46.100 39.300
+ -1516147.023 3 -1181414.769 4 24150188.092 24150189.435 24150187.683
+ 19.300 24.200
+ -21827552.718 7 -17008487.538 6 21009038.520 21009037.575 21009037.299
+ 45.100 41.100
+ -16506775.706 7 -12862421.601 6 21782659.201 21782657.329 21782658.145
+ 43.900 39.100
+ -3173742.381 3 -2473049.835 4 24184532.272 24184532.908 24184531.373
+ 21.100 28.600
+ 06 1 1 15 39 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23228303.895 7 -18099981.452 7 20349185.755 20349185.395 20349184.806
+ 46.500 45.600
+ -18045387.112 7 -14061334.218 6 21053987.213 21053985.736 21053986.679
+ 45.600 39.100
+ -3672634.942 4 -2861794.111 4 24021287.994 24021289.032 24021287.364
+ 29.700 28.600
+ -15055775.393 7 -11731773.261 6 21766949.776 21766947.138 21766948.052
+ 46.100 39.200
+ -1539943.511 3 -1199957.520 4 24145660.070 24145660.848 24145659.661
+ 19.300 24.900
+ -21731963.254 7 -16934002.313 6 21027228.287 21027227.785 21027227.305
+ 45.100 41.200
+ -16637934.520 7 -12964623.290 6 21757700.230 21757698.556 21757699.377
+ 44.000 39.100
+ -3171972.763 3 -2471670.975 4 24184868.463 24184869.807 24184867.601
+ 21.600 27.100
+ 06 1 1 15 40 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23239600.976 7 -18108784.401 7 20347035.947 20347035.396 20347034.943
+ 46.300 45.300
+ -18140566.001 7 -14135499.503 6 21035875.253 21035873.680 21035874.646
+ 45.500 39.100
+ -3869429.125 5 -3015140.060 4 23983839.385 23983840.028 23983838.770
+ 30.200 28.400
+ -14908512.169 7 -11617022.782 6 21794973.095 21794970.284 21794971.403
+ 45.800 38.500
+ -1561290.809 3 -1216591.868 4 24141597.155 24141599.276 24141596.815
+ 19.300 25.300
+ -21634331.524 7 -16857925.682 6 21045806.780 21045806.708 21045805.845
+ 44.800 41.300
+ -16768385.876 7 -13066273.710 6 21732876.178 21732874.598 21732875.342
+ 44.100 39.700
+ -3168058.846 3 -2468621.271 4 24185614.082 24185614.403 24185613.456
+ 23.400 25.900
+ 06 1 1 15 41 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23248335.719 7 -18115590.722 7 20345373.964 20345373.332 20345373.019
+ 46.700 45.300
+ -18233621.500 7 -14208010.204 6 21018167.332 21018165.835 21018166.677
+ 45.200 39.200
+ -4065602.483 5 -3168002.154 4 23946508.333 23946509.436 23946507.596
+ 32.400 28.400
+ -14760224.428 7 -11501473.972 6 21823191.560 21823188.601 21823189.729
+ 45.700 38.700
+ -1580188.395 2 -1231317.292 4 24138001.894 24138002.613 24138001.496
+ 16.100 25.300
+ -21534666.426 7 -16780264.624 6 21064772.696 21064772.384 21064771.742
+ 44.900 41.300
+ -16898120.663 7 -13167365.741 6 21708188.742 21708187.034 21708187.711
+ 44.000 40.200
+ -3162004.337 3 -2463903.537 4 24186766.314 24186766.545 24186765.548
+ 21.100 25.900
+ 06 1 1 15 42 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23254501.468 7 -18120395.228 7 20344200.634 20344200.120 20344199.588
+ 46.600 45.300
+ -18324541.120 7 -14278856.601 6 21000865.742 21000864.295 21000865.151
+ 45.500 39.500
+ -4261146.082 4 -3320373.528 5 23909298.023 23909298.777 23909297.068
+ 29.700 30.100
+ -14610928.096 7 -11385139.238 6 21851601.698 21851598.814 21851599.836
+ 45.900 38.100
+ -1596636.038 3 -1244133.735 3 24134871.504 24134872.741 24134870.928
+ 19.300 22.600
+ -21432977.605 7 -16701026.634 6 21084123.362 21084123.175 21084122.419
+ 45.000 41.000
+ -17027129.857 7 -13267892.373 6 21683639.264 21683636.914 21683638.152
+ 44.300 39.400
+ -3153813.223 3 -2457520.944 4 24188325.239 24188325.216 24188324.581
+ 22.100 24.600
+ 06 1 1 15 43 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23258092.992 7 -18123193.853 7 20343517.083 20343516.625 20343516.138
+ 46.500 45.300
+ -18413312.193 7 -14348028.811 6 20983972.976 20983971.732 20983972.378
+ 45.200 39.300
+ -4456050.778 5 -3472247.091 5 23872208.301 23872208.965 23872207.671
+ 30.100 30.400
+ -14460638.245 7 -11268030.335 6 21880200.887 21880198.132 21880199.199
+ 45.500 38.300
+ -1610634.021 4 -1255041.303 3 24132208.734 24132209.202 24132208.175
+ 24.200 23.000
+ -21329274.625 7 -16620219.163 6 21103857.866 21103857.159 21103856.733
+ 44.700 40.900
+ -17155404.671 7 -13367846.752 6 21659229.117 21659227.532 21659228.132
+ 44.000 40.500
+ -3143490.640 4 -2449477.474 4 24190289.343 24190290.000 24190288.707
+ 25.300 26.800
+ 06 1 1 15 44 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23259106.309 7 -18123983.483 7 20343324.629 20343323.864 20343323.577
+ 46.800 45.300
+ -18499923.647 7 -14415518.220 6 20967491.299 20967490.046 20967490.746
+ 45.400 39.600
+ -4650308.225 5 -3623616.361 5 23835242.195 23835242.940 23835241.630
+ 31.300 30.600
+ -14309370.395 7 -11150159.358 6 21908986.059 21908983.596 21908984.360
+ 45.000 38.000
+ -1622183.184 3 -1264040.674 4 24130010.694 24130011.432 24130010.285
+ 23.000 24.200
+ -21223567.276 7 -16537849.848 6 21123972.919 21123972.598 21123971.937
+ 44.600 40.500
+ -17282935.760 7 -13467221.606 6 21634960.580 21634958.926 21634959.711
+ 44.300 40.300
+ -3131041.068 3 -2439776.618 4 24192658.081 24192659.061 24192657.372
+ 22.100 26.800
+ 06 1 1 15 45 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23257536.791 7 -18122760.515 7 20343623.305 20343622.567 20343622.286
+ 46.900 45.200
+ -18584362.841 7 -14481314.972 6 20951423.209 20951421.695 20951422.601
+ 45.400 39.500
+ -4843910.424 5 -3774475.102 4 23798400.499 23798401.173 23798400.215
+ 32.100 28.600
+ -14157139.482 7 -11031537.958 6 21937954.796 21937952.238 21937952.928
+ 44.900 37.900
+ -1631284.766 3 -1271132.916 4 24128278.398 24128279.824 24128277.551
+ 19.900 25.300
+ -21115867.376 7 -16453927.908 6 21144467.376 21144467.243 21144466.655
+ 44.900 40.400
+ -17409714.424 7 -13566010.159 6 21610835.399 21610833.928 21610834.465
+ 44.300 40.500
+ -3116470.002 3 -2428422.602 4 24195431.860 24195431.858 24195430.997
+ 23.400 24.200
+ 06 1 1 15 46 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23253381.521 7 -18119522.679 7 20344413.702 20344413.264 20344412.718
+ 46.400 45.100
+ -18666619.445 7 -14545411.017 6 20935770.236 20935768.699 20935769.705
+ 45.600 39.700
+ -5036848.397 5 -3924816.280 4 23761686.170 23761686.450 23761685.351
+ 32.800 28.800
+ -14003961.213 7 -10912178.360 6 21967103.981 21967101.070 21967102.058
+ 44.800 37.500
+ -1637940.349 3 -1276319.117 3 24127012.368 24127013.046 24127011.939
+ 23.000 23.400
+ -21006184.918 7 -16368461.102 6 21165339.770 21165339.134 21165338.653
+ 44.500 40.000
+ -17535731.385 7 -13664205.177 6 21586855.027 21586853.400 21586854.110
+ 44.800 40.400
+ -3099783.051 3 -2415419.853 4 24198607.163 24198607.397 24198606.209
+ 23.400 25.600
+ 06 1 1 15 47 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23246636.542 7 -18114266.894 7 20345697.427 20345696.849 20345696.410
+ 46.600 45.100
+ -18746681.317 7 -14607796.874 6 20920534.944 20920533.320 20920534.373
+ 45.600 39.500
+ -5229114.165 5 -4074633.665 4 23725098.565 23725099.238 23725097.999
+ 31.600 28.800
+ -13849850.704 7 -10792092.339 6 21996430.328 21996427.491 21996428.512
+ 44.900 37.200
+ -1642152.026 3 -1279601.006 2 24126210.859 24126210.841 24126210.201
+ 21.100 17.800
+ -20894531.338 7 -16281458.372 6 21186585.878 21186586.226 21186585.427
+ 44.700 40.000
+ -17660976.789 7 -13761798.998 6 21563021.990 21563020.072 21563020.959
+ 44.700 40.900
+ -3080986.366 3 -2400773.177 4 24202183.524 24202184.335 24202182.971
+ 20.500 25.900
+ 06 1 1 15 48 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23237299.496 7 -18106991.314 7 20347474.251 20347473.655 20347473.253
+ 46.600 45.100
+ -18824538.350 7 -14668464.685 6 20905719.442 20905717.695 20905718.766
+ 45.900 39.900
+ -5420698.381 5 -4223919.879 5 23688641.240 23688642.261 23688640.769
+ 32.000 31.100
+ -13694822.756 7 -10671291.444 6 22025931.173 22025928.435 22025929.206
+ 44.400 37.500
+ -1643922.264 3 -1280980.490 3 24125874.395 24125874.670 24125873.807
+ 23.400 21.100
+ -20780917.174 7 -16192927.918 6 21208207.148 21208206.503 21208205.878
+ 44.100 40.200
+ -17785441.477 7 -13858784.460 6 21539336.958 21539335.300 21539336.030
+ 44.700 41.200
+ -3060086.015 3 -2384487.288 3 24206161.266 24206161.705 24206160.534
+ 23.800 23.400
+ 06 1 1 15 49 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23225368.388 7 -18097694.390 7 20349744.822 20349744.197 20349743.813
+ 46.800 45.200
+ -18900180.165 7 -14727406.353 6 20891325.091 20891323.509 20891324.528
+ 45.800 40.000
+ -5611593.452 5 -4372669.042 5 23652314.639 23652315.804 23652314.174
+ 30.600 31.600
+ -13538892.461 7 -10549787.419 6 22055603.719 22055601.145 22055601.849
+ 44.100 37.300
+ -1643254.033 4 -1280459.843 3 24126001.639 24126002.221 24126001.209
+ 24.200 22.600
+ -20665353.987 7 -16102878.750 6 21230198.280 21230197.358 21230196.809
+ 43.800 39.800
+ -17909115.818 7 -13955154.079 6 21515802.675 21515800.680 21515801.691
+ 44.800 40.900
+ -3037088.870 4 -2366567.474 4 24210537.370 24210538.277 24210536.521
+ 24.600 24.600
+ 06 1 1 15 50 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23210840.413 7 -18086373.935 7 20352509.422 20352508.662 20352508.371
+ 46.600 45.100
+ -18973597.076 7 -14784614.330 6 20877354.254 20877352.775 20877353.731
+ 45.800 40.200
+ -5801791.099 5 -4520874.749 5 23616121.613 23616122.040 23616120.889
+ 32.400 31.300
+ -13382074.651 7 -10427591.811 6 22085445.060 22085442.753 22085443.360
+ 44.000 37.300
+ -1640150.760 3 -1278041.754 3 24126591.934 24126592.459 24126591.362
+ 22.600 22.600
+ -20547854.304 7 -16011320.624 6 21252556.769 21252556.890 21252556.114
+ 44.100 39.800
+ -18031990.153 7 -14050900.325 6 21492420.516 21492418.598 21492419.526
+ 45.100 41.400
+ -3012001.888 4 -2347019.260 3 24215311.649 24215311.647 24215310.789
+ 25.300 20.500
+ 06 1 1 15 51 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23193714.189 7 -18073028.867 7 20355768.275 20355767.884 20355767.305
+ 46.600 45.100
+ -19044778.604 7 -14840080.465 6 20863808.896 20863807.437 20863808.281
+ 45.800 40.300
+ -5991283.174 5 -4668530.640 5 23580062.122 23580062.766 23580061.554
+ 32.700 31.800
+ -13224384.466 7 -10304716.427 6 22115452.811 22115449.934 22115450.937
+ 43.800 36.500
+ -1634616.243 3 -1273729.212 3 24127644.621 24127645.430 24127644.098
+ 20.500 20.500
+ -20428429.742 7 -15918262.613 6 21275282.210 21275282.727 21275281.762
+ 43.900 39.600
+ -18154054.913 7 -14146015.730 6 21469192.248 21469190.412 21469191.262
+ 44.800 41.500
+ -2984832.614 4 -2325848.460 3 24220481.654 24220481.895 24220480.867
+ 24.900 21.600
+ 06 1 1 15 52 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23173989.031 7 -18057658.663 7 20359522.157 20359521.408 20359521.070
+ 46.700 44.900
+ -19113716.189 7 -14893798.073 6 20850690.710 20850689.098 20850689.932
+ 46.000 40.400
+ -6180061.728 5 -4815630.566 5 23544138.409 23544139.012 23544137.903
+ 32.700 31.300
+ -13065836.745 7 -10181172.825 6 22145623.218 22145620.772 22145621.433
+ 43.500 36.500
+ -1626654.706 4 -1267525.471 3 24129160.556 24129160.912 24129159.726
+ 24.900 22.600
+ -20307093.113 7 -15823714.677 6 21298372.714 21298372.536 21298371.622
+ 43.800 39.700
+ -18275300.254 7 -14240492.630 6 21446119.746 21446118.288 21446118.920
+ 45.100 41.700
+ -2955588.868 4 -2303061.189 3 24226046.679 24226047.140 24226045.772
+ 25.900 23.800
+ 06 1 1 15 53 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23151664.059 7 -18040262.632 7 20363770.370 20363769.825 20363769.351
+ 46.600 45.000
+ -19180400.908 7 -14945760.204 6 20838000.908 20837999.486 20838000.292
+ 46.000 40.700
+ -6368118.534 5 -4962168.107 5 23508352.276 23508352.823 23508351.677
+ 32.700 32.400
+ -12906445.640 7 -10056972.042 6 22175954.513 22175951.864 22175952.512
+ 43.300 36.100
+ -1616270.821 4 -1259434.182 3 24131136.294 24131136.954 24131135.735
+ 24.600 21.100
+ -20183856.773 7 -15727686.445 6 21321824.409 21321823.577 21321822.969
+ 43.600 39.100
+ -18395716.047 7 -14334323.132 6 21423205.855 21423204.060 21423204.821
+ 45.200 41.900
+ -2924278.428 4 -2278663.543 3 24232005.182 24232004.938 24232004.306
+ 25.600 19.900
+ 06 1 1 15 54 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23126738.187 7 -18020839.924 7 20368513.515 20368513.046 20368512.558
+ 46.600 44.700
+ -19244823.477 7 -14995959.616 6 20825741.595 20825740.174 20825741.030
+ 46.200 40.600
+ -6555445.944 5 -5108137.305 5 23472704.859 23472705.267 23472704.309
+ 33.100 32.000
+ -12746226.326 7 -9932125.899 6 22206443.602 22206440.597 22206441.635
+ 43.300 36.200
+ -1603469.761 3 -1249459.354 3 24133571.899 24133573.113 24133571.448
+ 21.600 19.300
+ -20058734.026 7 -15630188.289 6 21345634.019 21345633.676 21345632.975
+ 43.400 38.900
+ -18515292.795 7 -14427499.836 6 21400450.966 21400449.244 21400450.028
+ 45.300 41.900
+ -2890909.953 4 -2252662.178 3 24238354.989 24238354.459 24238354.064
+ 24.600 19.900
+ 06 1 1 15 55 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23099213.428 7 -17999392.108 7 20373751.539 20373750.909 20373750.530
+ 46.600 44.700
+ -19306976.159 7 -15044390.293 6 20813914.765 20813913.002 20813914.017
+ 46.300 40.900
+ -6742035.887 5 -5253531.894 5 23437197.877 23437198.261 23437197.481
+ 33.400 33.100
+ -12585192.829 7 -9806645.335 5 22237087.110 22237084.384 22237085.324
+ 43.300 35.900
+ -1588256.936 3 -1237605.216 3 24136467.264 24136467.872 24136466.360
+ 21.100 21.600
+ -19931738.396 7 -15531230.751 6 21369800.125 21369800.388 21369799.294
+ 42.900 38.700
+ -18634020.232 7 -14520014.734 6 21377858.048 21377856.134 21377857.022
+ 45.100 41.900
+ -2855492.331 4 -2225064.122 3 24245094.724 24245095.239 24245094.104
+ 26.200 21.600
+ 06 1 1 15 56 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23069089.460 7 -17975918.930 7 20379483.761 20379483.301 20379482.853
+ 46.800 44.600
+ -19366850.805 7 -15091045.860 6 20802520.915 20802519.425 20802520.220
+ 46.500 41.300
+ -6927880.291 5 -5398345.535 5 23401832.765 23401833.082 23401832.256
+ 33.800 34.000
+ -12423359.923 7 -9680541.858 6 22267883.264 22267880.540 22267881.424
+ 43.600 36.000
+ -1570638.533 3 -1223876.594 2 24139819.886 24139819.123 24139819.181
+ 23.800 16.100
+ -19802883.047 7 -15430824.090 6 21394320.532 21394320.993 21394319.748
+ 43.100 38.900
+ -18751888.686 7 -14611860.293 6 21355428.283 21355426.438 21355427.308
+ 45.100 41.900
+ -2818034.599 3 -2195876.340 3 24252222.220 24252223.236 24252221.544
+ 23.800 23.000
+ 06 1 1 15 57 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23036367.024 7 -17950420.973 7 20385710.810 20385710.333 20385709.841
+ 46.800 44.700
+ -19424439.819 7 -15135920.415 6 20791561.989 20791560.387 20791561.444
+ 46.400 41.100
+ -7112972.014 5 -5542572.688 5 23366610.860 23366611.149 23366610.434
+ 34.300 34.600
+ -12260742.201 7 -9553826.854 5 22298828.348 22298825.765 22298826.440
+ 43.100 35.900
+ -1550620.614 3 -1208278.312 3 24143628.833 24143630.319 24143628.229
+ 20.500 22.600
+ -19672181.996 7 -15328979.218 6 21419192.052 21419192.520 21419191.531
+ 43.200 38.300
+ -18868887.479 7 -14703028.178 7 21333164.195 21333162.459 21333163.186
+ 45.100 42.400
+ -2778546.047 4 -2165106.145 3 24259737.396 24259737.587 24259736.704
+ 26.200 20.500
+ 06 1 1 15 58 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -23001048.245 7 -17922899.890 7 20392431.790 20392431.340 20392430.760
+ 46.600 44.700
+ -19479736.260 7 -15179008.553 6 20781039.724 20781037.695 20781038.988
+ 46.500 40.900
+ -7297302.802 5 -5686206.944 5 23331534.003 23331534.137 23331533.323
+ 33.600 34.500
+ -12097353.510 7 -9426511.093 5 22329920.139 22329917.635 22329918.261
+ 42.500 35.800
+ -1528210.163 3 -1190815.630 3 24147893.462 24147894.022 24147893.345
+ 22.600 20.500
+ -19539649.205 7 -15225707.019 6 21444412.628 21444412.848 21444411.936
+ 43.400 38.400
+ -18985006.821 7 -14793510.788 7 21311067.302 21311065.543 21311066.381
+ 45.200 42.300
+ -2737036.475 4 -2132761.092 3 24267636.443 24267636.043 24267635.730
+ 24.900 19.300
+ 06 1 1 15 59 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22963135.345 7 -17893357.411 7 20399646.252 20399646.034 20399645.296
+ 46.700 44.500
+ -19532733.200 7 -15220304.866 6 20770954.187 20770952.782 20770953.674
+ 46.400 41.100
+ -7480865.240 5 -5829242.532 5 23296603.296 23296603.212 23296602.678
+ 33.000 33.600
+ -11933208.038 7 -9298605.648 5 22361156.151 22361153.660 22361154.336
+ 42.600 35.900
+ -1503414.396 4 -1171494.318 3 24152612.609 24152613.097 24152611.997
+ 24.200 22.600
+ -19405299.531 7 -15121019.060 6 21469978.291 21469978.770 21469977.707
+ 42.900 37.700
+ -19100235.999 7 -14883299.755 7 21289140.069 21289138.317 21289139.030
+ 45.200 42.700
+ -2693516.221 4 -2098849.300 3 24275917.879 24275918.734 24275916.955
+ 24.600 23.000
+ 06 1 1 16 0 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22922630.212 7 -17861795.009 7 20407354.292 20407353.962 20407353.356
+ 46.900 44.800
+ -19583424.188 7 -15259804.339 6 20761308.195 20761306.566 20761307.572
+ 46.300 41.100
+ -7663651.956 5 -5971673.688 5 23261819.786 23261820.088 23261819.151
+ 31.300 33.100
+ -11768320.072 7 -9170121.629 5 22392533.299 22392530.879 22392531.511
+ 42.300 35.400
+ -1476240.924 3 -1150320.167 2 24157782.844 24157782.696 24157782.580
+ 21.600 17.800
+ -19269147.487 7 -15014926.658 6 21495887.190 21495887.798 21495886.682
+ 42.600 38.000
+ -19214564.850 7 -14972387.167 7 21267383.930 21267382.068 21267382.993
+ 45.200 42.500
+ -2647995.413 3 -2063378.596 3 24284580.254 24284580.315 24284579.423
+ 23.000 21.600
+ 06 1 1 16 1 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22879536.694 7 -17828215.691 7 20415554.753 20415554.328 20415553.783
+ 46.800 44.400
+ -19631803.206 7 -15297502.279 6 20752101.996 20752100.342 20752101.331
+ 46.400 41.200
+ -7845655.218 5 -6113494.416 5 23227185.938 23227185.769 23227185.401
+ 32.600 31.800
+ -11602703.647 7 -9041069.976 5 22424049.293 22424046.721 22424047.370
+ 42.200 35.200
+ -1446697.797 4 -1127299.586 3 24163405.239 24163405.683 24163404.756
+ 24.900 21.600
+ -19131207.404 7 -14907440.988 6 21522136.367 21522136.827 21522136.034
+ 42.600 37.400
+ -19327982.919 7 -15060764.875 7 21245801.259 21245799.312 21245800.250
+ 45.300 42.700
+ -2600485.252 3 -2026357.806 3 24293621.128 24293621.007 24293620.237
+ 23.000 19.300
+ 06 1 1 16 2 0.0000000 0 8G08G11G17G19G26G27G28G29
+ -22833857.185 7 -17792621.316 7 20424247.324 20424246.995 20424246.307
+ 46.700 44.400
+ -19677864.834 7 -15333394.466 6 20743336.786 20743335.206 20743336.103
+ 46.400 41.400
+ -8026867.759 5 -6254699.043 5 23192702.090 23192702.403 23192701.530
+ 31.000 30.800
+ -11436372.431 7 -8911461.334 5 22455701.526 22455698.689 22455699.599
+ 42.600 34.700
+ -1414793.359 3 -1102439.063 3 24169475.919 24169476.941 24169475.634
+ 22.600 20.500
+ -18991494.902 7 -14798574.205 6 21548722.971 21548723.461 21548722.362
+ 42.500 37.500
+ -19440479.481 7 -15148424.523 7 21224393.658 21224391.911 21224392.695
+ 45.200 42.900
+ -2550996.484 3 -1987795.190 3 24303038.239 24303039.327 24303037.536
+ 21.600 20.500
+ 06 1 1 16 3 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22785596.467 7 -17755015.610 7 20433430.972 20433430.692 20433429.907
+ 46.600 44.300
+ -19721603.450 7 -15367476.515 6 20735013.717 20735012.041 20735012.984
+ 46.400 41.600
+ -8207282.389 5 -6395281.939 5 23158370.741 23158370.606 23158369.800
+ 32.400 30.400
+ -11269340.556 7 -8781306.721 5 22487486.270 22487483.631 22487484.401
+ 42.400 34.400
+ -358827.777 3 -279606.628 2 24374841.349 24374846.120 24374841.794
+ 22.100 12.600
+ -1380536.553 3 -1075745.508 3 24175994.704 24175996.154 24175994.140
+ 19.900 22.600
+ -18850024.784 7 -14688337.850 6 21575644.252 21575644.356 21575643.458
+ 42.300 37.400
+ -19552045.020 7 -15235358.700 7 21203163.592 21203161.733 21203162.611
+ 45.500 43.100
+ -2499540.454 3 -1947699.658 3 24312830.627 24312830.410 24312829.665
+ 21.600 21.100
+ 06 1 1 16 4 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22734757.980 7 -17715401.257 7 20443105.296 20443104.896 20443104.247
+ 46.600 44.200
+ -19763014.026 7 -15399744.514 6 20727133.231 20727131.965 20727132.618
+ 46.300 41.900
+ -8386891.856 5 -6535237.453 5 23124192.128 23124192.065 23124191.487
+ 35.500 30.200
+ -11101621.629 6 -8650616.746 5 22519401.778 22519400.074 22519399.894
+ 41.400 34.700
+ -587625.884 4 -457890.938 3 24331304.611 24331309.015 24331303.411
+ 24.200 19.900
+ -1343936.751 4 -1047226.225 3 24182959.996 24182960.744 24182959.533
+ 24.600 22.600
+ -18706812.797 6 -14576744.193 6 21602896.987 21602897.004 21602896.024
+ 41.900 37.400
+ -19662667.751 7 -15321558.218 7 21182112.866 21182111.032 21182111.800
+ 45.600 43.500
+ -2446129.009 3 -1906080.443 3 24322994.021 24322994.586 24322993.220
+ 22.100 23.000
+ 06 1 1 16 5 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22681346.145 7 -17673781.694 7 20453269.409 20453268.889 20453268.356
+ 46.800 43.900
+ -19802091.830 7 -15430194.757 6 20719697.073 20719695.691 20719696.447
+ 46.400 41.800
+ -8565688.422 5 -6674559.544 5 23090168.435 23090168.436 23090167.799
+ 35.600 31.600
+ -10933228.795 6 -8519401.655 5 22551446.261 22551444.122 22551444.370
+ 41.100 34.700
+ -816211.250 3 -636009.151 1 24287804.980 24287809.714 24287804.549
+ 21.600 9.000
+ -1305003.585 3 -1016888.739 3 24190368.532 24190369.381 24190368.122
+ 19.300 23.400
+ -18561875.169 6 -14463805.889 6 21630477.695 21630477.733 21630476.558
+ 41.400 37.000
+ -19772337.070 7 -15407014.827 7 21161243.542 21161241.595 21161242.430
+ 45.200 43.600
+ -2390774.197 3 -1862946.903 4 24333527.098 24333528.519 24333526.608
+ 21.100 24.200
+ 06 1 1 16 6 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22625367.123 7 -17630161.731 7 20463921.676 20463921.481 20463920.709
+ 46.700 43.900
+ -19838832.845 7 -15458824.126 6 20712705.871 20712704.069 20712705.107
+ 46.800 41.900
+ -8743665.036 5 -6813242.651 5 23056300.333 23056300.925 23056299.782
+ 34.600 35.200
+ -10764176.191 6 -8387672.451 5 22583615.936 22583613.443 22583613.955
+ 40.700 33.400
+ -1044562.840 3 -813945.040 3 24244351.468 24244355.889 24244350.430
+ 23.400 19.300
+ -1263746.895 3 -984740.779 3 24198218.672 24198220.796 24198218.383
+ 20.500 23.400
+ -18415228.173 6 -14349535.610 6 21658383.640 21658383.833 21658382.609
+ 41.200 36.700
+ -19881042.592 7 -15491720.431 7 21140557.638 21140555.607 21140556.574
+ 45.500 43.700
+ -2333488.138 3 -1818308.491 3 24344428.976 24344429.893 24344428.113
+ 19.900 23.400
+ 06 1 1 16 7 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22566826.103 7 -17584545.409 7 20475061.689 20475061.547 20475060.770
+ 47.000 44.000
+ -19873233.322 7 -15485629.695 7 20706159.419 20706157.856 20706158.827
+ 46.700 42.000
+ -8920815.009 5 -6951281.558 5 23022589.900 23022590.196 23022589.166
+ 34.400 35.500
+ -10594477.000 6 -8255439.425 5 22615909.362 22615906.403 22615907.275
+ 41.100 33.800
+ -1272659.654 4 -991682.401 3 24200945.571 24200949.560 24200944.384
+ 24.200 18.600
+ -1220177.475 3 -950790.641 3 24206510.786 24206511.365 24206510.071
+ 23.000 21.600
+ -18266887.900 6 -14233945.903 6 21686611.371 21686611.898 21686610.842
+ 41.000 36.400
+ -19988773.366 7 -15575666.498 7 21120057.000 21120055.223 21120055.997
+ 45.500 44.100
+ -2274283.638 3 -1772175.207 4 24355695.026 24355696.395 24355694.482
+ 21.600 24.900
+ 06 1 1 16 8 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22505728.693 7 -17536937.097 7 20486688.345 20486687.907 20486687.355
+ 47.000 43.600
+ -19905289.639 7 -15510608.651 6 20700059.784 20700057.686 20700058.943
+ 46.900 41.900
+ -9097130.792 5 -7088670.378 5 22989037.843 22989038.340 22989037.437
+ 33.900 35.700
+ -10424144.177 6 -8122712.644 5 22648322.118 22648319.936 22648320.225
+ 41.100 34.000
+ -1500480.810 3 -1169204.944 2 24157592.344 24157596.232 24157590.503
+ 21.100 17.000
+ -1174306.164 3 -915046.827 4 24215239.250 24215240.848 24215238.980
+ 19.900 25.900
+ -18116870.348 6 -14117049.225 6 21715159.379 21715159.629 21715158.376
+ 41.200 36.500
+ -20095518.659 7 -15658844.658 7 21099744.312 21099742.184 21099743.236
+ 45.600 44.000
+ -2213173.471 4 -1724556.962 4 24367324.583 24367325.622 24367324.097
+ 25.900 24.900
+ 06 1 1 16 9 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22442081.754 7 -17487342.134 7 20498800.075 20498799.711 20498799.047
+ 47.000 43.800
+ -19934998.911 7 -15533758.736 6 20694405.886 20694404.274 20694405.250
+ 46.900 41.900
+ -9272606.021 5 -7225404.192 5 22955646.087 22955646.001 22955645.424
+ 34.600 33.600
+ -10253191.067 6 -7989502.528 5 22680854.001 22680850.680 22680851.773
+ 40.700 32.600
+ -1728005.607 3 -1346496.620 2 24114296.165 24114298.847 24114294.809
+ 22.600 16.100
+ -1126143.879 3 -877517.877 4 24224403.945 24224406.030 24224403.606
+ 21.100 27.400
+ -17965192.629 6 -13998858.929 6 21744023.291 21744023.019 21744021.923
+ 40.200 36.000
+ -20201267.423 7 -15741246.301 7 21079620.825 21079618.854 21079619.817
+ 45.400 44.200
+ -2150171.188 3 -1675464.311 3 24379312.963 24379314.327 24379312.569
+ 23.800 23.000
+ 06 1 1 16 10 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22375891.906 7 -17435765.684 7 20511395.491 20511395.178 20511394.479
+ 46.900 43.400
+ -19962358.338 7 -15555077.758 7 20689199.496 20689197.981 20689198.833
+ 46.800 42.100
+ -9447233.565 6 -7361477.518 5 22922415.685 22922415.321 22922414.809
+ 36.000 31.800
+ -10081631.538 6 -7855819.859 5 22713499.786 22713498.123 22713498.236
+ 40.300 33.500
+ -1955212.505 3 -1523540.772 3 24071058.901 24071063.554 24071057.931
+ 23.400 18.600
+ -1075702.477 3 -838212.973 4 24234003.295 24234004.475 24234002.649
+ 21.600 24.600
+ -17811872.385 6 -13879388.721 5 21773198.049 21773198.977 21773197.677
+ 40.600 35.700
+ -20306008.698 7 -15822862.893 7 21059688.942 21059687.234 21059688.041
+ 45.500 44.300
+ -2085289.986 3 -1624907.603 3 24391659.890 24391661.007 24391659.177
+ 22.600 22.600
+ 06 1 1 16 11 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22307165.939 7 -17382213.039 7 20524473.647 20524473.357 20524472.630
+ 46.900 43.300
+ -19987365.528 7 -15574563.889 7 20684441.180 20684439.190 20684440.380
+ 46.900 42.000
+ -9621006.588 5 -7496885.003 5 22889347.609 22889347.744 22889346.883
+ 35.500 34.500
+ -9909477.213 6 -7721673.717 5 22746260.028 22746257.387 22746257.979
+ 39.500 31.600
+ -2182079.396 4 -1700319.999 2 24027887.753 24027891.635 24027886.944
+ 24.900 17.800
+ -1022993.835 3 -797141.383 3 24244033.979 24244034.307 24244033.341
+ 23.800 23.000
+ -17656926.216 6 -13758651.592 5 21802685.054 21802684.367 21802683.387
+ 39.700 35.800
+ -20409731.319 7 -15903685.724 7 21039951.206 21039949.558 21039950.261
+ 45.400 44.500
+ -2018543.824 4 -1572897.680 3 24404361.390 24404362.441 24404360.850
+ 24.600 22.600
+ 06 1 1 16 12 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22235912.273 7 -17326690.751 7 20538032.800 20538032.544 20538031.822
+ 47.000 43.300
+ -20010018.989 7 -15592215.943 7 20680130.054 20680128.330 20680129.395
+ 46.900 42.000
+ -9793918.386 5 -7631621.368 5 22856443.302 22856443.907 22856442.704
+ 34.700 35.900
+ -9736741.745 6 -7587074.745 5 22779130.560 22779128.087 22779128.536
+ 40.000 31.800
+ -2408585.359 4 -1876817.920 3 23984785.097 23984789.082 23984784.404
+ 26.800 19.900
+ -968030.439 4 -754312.826 3 24254493.365 24254493.685 24254492.808
+ 26.500 23.800
+ -17500371.262 6 -13636660.857 5 21832474.310 21832475.967 21832474.420
+ 39.700 35.600
+ -20512424.059 7 -15983706.037 7 21020409.328 21020407.732 21020408.478
+ 45.300 44.600
+ -1949946.747 4 -1519445.484 3 24417415.296 24417415.813 24417414.752
+ 26.200 19.900
+ 06 1 1 16 13 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22162139.269 7 -17269205.344 7 20552071.360 20552071.114 20552070.316
+ 46.800 43.200
+ -20030316.402 7 -15608032.108 7 20676267.383 20676266.027 20676266.859
+ 46.800 42.100
+ -9965962.874 6 -7765681.925 5 22823704.604 22823704.601 22823703.941
+ 36.000 35.900
+ -9563438.082 6 -7452033.019 5 22812108.876 22812107.368 22812107.183
+ 39.100 33.000
+ -2634708.467 4 -2053017.534 2 23941755.196 23941758.280 23941754.013
+ 24.200 13.900
+ -910824.895 4 -709737.151 4 24265378.881 24265380.079 24265378.407
+ 25.300 24.600
+ -17342225.051 6 -13513430.179 5 21862570.800 21862570.391 21862569.271
+ 39.400 35.500
+ -20614076.038 7 -16062915.356 7 21001065.850 21001064.095 21001064.910
+ 45.300 44.900
+ -1879513.180 3 -1464562.281 2 24430818.278 24430818.628 24430817.509
+ 22.600 17.800
+ 06 1 1 16 14 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22085855.106 7 -17209763.196 7 20566587.812 20566587.585 20566586.839
+ 47.000 43.200
+ -20048256.685 7 -15622011.551 7 20672853.568 20672852.031 20672852.893
+ 46.800 42.100
+ -10137132.794 6 -7899061.053 5 22791131.655 22791131.959 22791131.150
+ 37.000 34.600
+ -9389578.729 6 -7316558.299 5 22845193.898 22845191.576 22845191.923
+ 39.300 32.400
+ -2860427.914 3 -2228902.471 2 23898801.810 23898804.859 23898800.536
+ 23.000 16.100
+ -851390.588 4 -663424.763 4 24276688.966 24276690.172 24276688.615
+ 25.900 24.900
+ -17182505.857 6 -13388973.801 5 21892963.164 21892964.113 21892962.601
+ 39.500 35.100
+ -20714675.763 7 -16141304.731 7 20981922.319 20981920.437 20981921.354
+ 45.300 44.800
+ -1807257.731 3 -1408259.457 3 24444568.039 24444568.859 24444567.502
+ 23.800 20.500
+ 06 1 1 16 15 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -22007068.248 7 -17148370.894 7 20581580.676 20581580.222 20581579.635
+ 46.900 42.800
+ -20063839.174 7 -15634153.753 7 20669888.541 20669886.830 20669887.866
+ 47.000 42.200
+ -10307421.599 6 -8031753.603 5 22758726.945 22758727.068 22758726.216
+ 36.700 34.700
+ -9215176.078 6 -7180660.245 5 22878380.977 22878379.301 22878379.100
+ 38.800 31.600
+ -3085722.091 4 -2404456.042 2 23855928.891 23855932.272 23855928.361
+ 24.600 16.100
+ -789740.828 4 -615386.039 3 24288420.942 24288421.758 24288420.527
+ 24.600 22.100
+ -17021231.413 6 -13263305.557 5 21923653.796 21923653.921 21923652.481
+ 39.500 35.600
+ -20814212.599 7 -16218865.880 7 20962981.026 20962979.232 20962980.113
+ 45.400 45.300
+ -1733195.413 3 -1350548.670 2 24458660.596 24458661.793 24458660.383
+ 22.100 17.000
+ 06 1 1 16 16 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21925788.414 7 -17085036.018 7 20597047.817 20597047.294 20597046.721
+ 47.000 42.700
+ -20077063.448 7 -15644458.377 7 20667371.850 20667370.275 20667371.242
+ 47.100 42.200
+ -10476823.104 6 -8163754.726 5 22726490.758 22726490.975 22726490.230
+ 36.500 35.200
+ -9040242.884 6 -7044348.772 5 22911670.101 22911668.047 22911667.829
+ 38.400 31.300
+ -3310569.235 4 -2579661.258 3 23813142.503 23813145.794 23813141.451
+ 25.900 21.100
+ -725889.355 4 -565631.773 3 24300571.672 24300571.951 24300570.974
+ 27.400 21.100
+ -16858420.021 6 -13136439.673 5 21954634.936 21954635.717 21954634.281
+ 38.500 34.400
+ -20912674.499 7 -16295589.416 7 20944244.040 20944242.499 20944243.214
+ 45.000 45.200
+ -1657341.238 3 -1291441.633 2 24473096.469 24473097.039 24473095.989
+ 23.400 17.000
+ 06 1 1 16 17 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21842025.689 7 -17019766.418 7 20612987.012 20612987.013 20612985.964
+ 46.500 42.700
+ -20087929.784 7 -15652925.649 7 20665304.092 20665302.573 20665303.426
+ 47.100 42.500
+ -10645330.744 6 -8295059.322 5 22694424.721 22694424.942 22694424.310
+ 37.700 35.800
+ -8864791.383 6 -6907633.448 5 22945057.709 22945055.559 22945055.732
+ 38.100 31.600
+ -3534948.546 4 -2754501.875 3 23770444.321 23770447.478 23770443.019
+ 26.200 18.600
+ -659850.445 4 -514172.915 2 24313137.823 24313138.316 24313137.285
+ 24.900 15.100
+ -16694089.440 6 -13008390.025 5 21985907.187 21985907.175 21985905.743
+ 38.800 34.900
+ -21010050.198 7 -16371466.561 7 20925714.363 20925712.523 20925713.424
+ 45.400 45.400
+ -1579710.893 3 -1230950.582 3 24487869.394 24487870.383 24487868.673
+ 23.000 21.600
+ 06 1 1 16 18 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21755790.255 7 -16952570.031 7 20629397.182 20629397.056 20629396.229
+ 46.700 42.500
+ -20096437.836 7 -15659555.297 7 20663685.220 20663683.452 20663684.481
+ 47.100 42.600
+ -10812938.379 6 -8425662.590 6 22662530.238 22662530.348 22662529.618
+ 37.100 36.300
+ -8688833.179 6 -6770523.298 5 22978541.611 22978539.792 22978539.604
+ 38.100 32.000
+ -3758838.205 4 -2928960.944 4 23727839.274 23727842.665 23727838.113
+ 27.100 24.200
+ -591638.577 4 -461020.876 2 24326118.404 24326118.912 24326117.817
+ 26.800 17.800
+ -16528258.687 6 -12879171.407 5 22017463.494 22017463.937 22017462.341
+ 38.600 34.800
+ -21106328.692 7 -16446488.749 7 20907393.183 20907391.331 20907392.217
+ 45.200 45.300
+ -1500319.966 3 -1169087.661 2 24502976.640 24502977.279 24502976.106
+ 23.400 17.800
+ 06 1 1 16 19 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21667093.063 7 -16883455.395 7 20646275.918 20646275.595 20646274.896
+ 46.800 42.300
+ -20102588.828 7 -15664348.276 7 20662514.530 20662513.006 20662513.917
+ 46.900 42.500
+ -10979639.476 6 -8555559.461 5 22630808.343 22630807.917 22630807.566
+ 38.000 35.900
+ -8512380.978 6 -6633028.200 5 23012119.535 23012117.098 23012117.496
+ 37.700 31.000
+ -3982216.963 4 -3103021.830 4 23685332.742 23685334.517 23685330.791
+ 26.500 24.200
+ -521268.761 3 -406187.328 3 24339509.068 24339510.271 24339508.611
+ 20.500 18.600
+ -16360946.574 6 -12748798.496 5 22049300.817 22049302.284 22049300.726
+ 38.100 33.800
+ -21201498.590 7 -16520647.107 7 20889283.087 20889281.035 20889282.099
+ 45.300 45.300
+ -1419184.314 3 -1105865.163 2 24518416.550 24518416.729 24518416.010
+ 22.600 17.800
+ 06 1 1 16 20 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21575945.418 7 -16812431.310 7 20663620.707 20663620.567 20663619.687
+ 46.700 42.500
+ -20106383.561 7 -15667305.216 7 20661792.421 20661790.729 20661791.748
+ 46.800 42.200
+ -11145428.153 6 -8684745.344 6 22599259.071 22599259.313 22599258.620
+ 37.300 36.900
+ -8335446.926 6 -6495157.627 5 23045788.883 23045787.194 23045787.131
+ 37.600 32.000
+ -4205063.677 4 -3276668.187 4 23642924.117 23642927.674 23642923.047
+ 24.600 25.600
+ -448756.270 4 -349684.189 2 24353308.341 24353308.662 24353307.639
+ 25.300 15.100
+ -16192171.546 6 -12617285.653 5 22081418.576 22081419.288 22081417.528
+ 37.200 33.500
+ -21295548.241 7 -16593932.553 7 20871385.807 20871384.001 20871384.863
+ 44.900 45.600
+ -1336320.557 2 -1041296.102 2 24534184.600 24534185.591 24534183.537
+ 17.000 17.800
+ 06 1 1 16 21 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21482357.887 7 -16739506.012 7 20681429.743 20681429.723 20681428.782
+ 46.600 42.300
+ -20107823.458 7 -15668427.220 7 20661518.265 20661516.767 20661517.689
+ 46.900 42.000
+ -11310298.437 6 -8813215.598 6 22567885.501 22567885.544 22567884.827
+ 38.000 37.200
+ -8158042.668 6 -6356920.648 4 23079547.233 23079545.933 23079545.777
+ 38.000 29.700
+ -4427356.748 4 -3449883.125 3 23600623.953 23600625.913 23600622.177
+ 24.600 23.000
+ -374116.555 4 -291523.463 3 24367511.460 24367512.481 24367511.186
+ 24.900 18.600
+ -16021953.274 6 -12484648.194 5 22113811.147 22113810.793 22113809.505
+ 37.000 33.100
+ -21388466.261 7 -16666336.211 7 20853704.207 20853702.348 20853703.154
+ 44.800 45.800
+ -1251744.669 3 -975392.993 3 24550278.700 24550280.557 24550278.092
+ 18.600 23.000
+ 06 1 1 16 22 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21386342.837 7 -16664689.148 7 20699700.677 20699700.782 20699699.819
+ 46.500 42.200
+ -20106910.540 7 -15667715.865 6 20661691.999 20661690.469 20661691.375
+ 46.800 41.900
+ -11474243.896 6 -8940965.236 6 22536687.012 22536687.478 22536686.661
+ 37.200 36.200
+ -7980179.771 6 -6218326.281 4 23113394.281 23113391.678 23113392.513
+ 38.600 29.200
+ -4649074.493 4 -3622649.829 3 23558432.587 23558433.746 23558430.932
+ 28.400 18.600
+ -297365.567 3 -231717.563 2 24382117.087 24382117.211 24382116.377
+ 22.100 15.100
+ -15850310.786 6 -12350900.956 5 22146472.546 22146473.512 22146471.661
+ 36.800 33.100
+ -21480241.303 7 -16737849.245 7 20836239.949 20836238.067 20836238.965
+ 44.900 45.700
+ -1165473.605 2 -908168.917 3 24566696.434 24566697.259 24566695.837
+ 17.800 21.100
+ 06 1 1 16 23 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21287911.856 7 -16587989.731 6 20718431.741 20718431.610 20718430.819
+ 46.700 41.800
+ -20103646.756 7 -15665172.670 6 20662313.209 20662311.540 20662312.588
+ 47.000 41.900
+ -11637258.503 6 -9067989.533 6 22505666.959 22505666.637 22505666.242
+ 38.100 36.500
+ -7801870.310 6 -6079383.931 4 23147324.958 23147323.566 23147323.429
+ 37.300 29.700
+ -4870195.297 4 -3794951.416 3 23516353.039 23516355.718 23516351.980
+ 26.500 20.500
+ -218519.419 3 -170279.078 3 24397120.749 24397122.178 24397119.991
+ 21.600 18.600
+ -15677263.495 6 -12216059.103 5 22179401.959 22179403.739 22179401.718
+ 37.200 33.900
+ -21570861.243 7 -16808462.193 7 20818995.650 20818993.687 20818994.652
+ 44.900 46.000
+ -1077524.362 3 -839637.077 2 24583432.549 24583432.916 24583431.345
+ 21.100 13.900
+ 06 1 1 16 24 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21187078.423 7 -16509418.279 6 20737619.584 20737619.455 20737618.702
+ 46.500 41.600
+ -20098034.658 7 -15660799.617 7 20663381.264 20663379.523 20663380.596
+ 47.100 42.000
+ -11799336.755 6 -9194284.219 6 22474825.077 22474824.121 22474823.982
+ 38.300 36.600
+ -7623125.430 6 -5940102.318 5 23181339.063 23181337.469 23181337.328
+ 36.900 30.100
+ -5090697.803 4 -3966771.098 4 23474393.294 23474395.367 23474391.804
+ 29.000 24.200
+ -137594.701 3 -107220.945 3 24412520.575 24412521.549 24412519.859
+ 21.600 21.100
+ -15502830.671 6 -12080137.590 5 22212596.715 22212597.213 22212595.565
+ 37.000 32.800
+ -21660315.026 7 -16878166.441 7 20801973.256 20801971.114 20801972.269
+ 44.900 46.000
+ -987914.197 3 -769811.043 2 24600484.811 24600485.389 24600483.948
+ 21.600 13.900
+ 06 1 1 16 25 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -21083855.509 7 -16428984.894 6 20757262.548 20757262.419 20757261.503
+ 46.400 41.600
+ -20090077.029 7 -15654598.887 7 20664895.427 20664893.918 20664894.906
+ 47.200 42.000
+ -11960472.415 6 -9319844.395 6 22444161.113 22444161.249 22444160.552
+ 38.600 37.800
+ -7443956.877 6 -5800490.577 4 23215434.238 23215432.287 23215432.266
+ 36.500 29.900
+ -5310561.033 4 -4138092.696 3 23432553.249 23432556.420 23432552.483
+ 27.900 23.800
+ -54608.131 3 -42556.139 2 24428312.333 24428313.190 24428311.818
+ 20.500 13.900
+ -15327032.453 6 -11943152.146 5 22246050.403 22246050.956 22246049.135
+ 36.700 33.100
+ -21748590.984 7 -16946952.891 7 20785174.740 20785172.784 20785173.739
+ 44.700 46.000
+ -896660.356 3 -698704.186 3 24617849.558 24617851.232 24617848.605
+ 21.100 19.900
+ 06 1 1 16 26 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20978255.553 7 -16346699.267 6 20777357.454 20777357.348 20777356.431
+ 46.100 41.300
+ -20079777.215 7 -15646573.081 7 20666855.543 20666853.868 20666854.915
+ 47.200 42.200
+ -12120659.854 6 -9444665.715 6 22413678.736 22413678.267 22413677.848
+ 38.500 37.100
+ -7264376.225 5 -5660557.714 4 23249606.781 23249605.599 23249604.811
+ 35.100 29.900
+ -5529763.078 4 -4308899.050 4 23390840.246 23390843.432 23390839.270
+ 27.600 25.900
+ 30422.940 3 23701.759 3 24444493.284 24444494.491 24444492.565
+ 20.500 20.500
+ -15149888.452 5 -11805118.034 5 22279759.731 22279760.395 22279758.613
+ 35.800 32.600
+ -21835677.175 7 -17014812.245 7 20768602.790 20768600.887 20768601.733
+ 44.700 46.300
+ -803780.536 3 -626330.371 3 24635524.514 24635525.760 24635523.642
+ 22.600 22.600
+ 06 1 1 16 27 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20870293.628 7 -16262573.148 6 20797902.026 20797901.973 20797901.002
+ 46.300 41.200
+ -20067139.261 7 -15636725.341 6 20669260.621 20669258.707 20669259.888
+ 47.300 41.900
+ -12279893.202 6 -9568743.577 6 22383377.337 22383377.339 22383376.711
+ 39.300 38.300
+ -7084394.008 5 -5520311.972 4 23283856.495 23283854.806 23283855.086
+ 35.800 28.400
+ -5748282.924 4 -4479173.913 4 23349256.736 23349259.989 23349255.918
+ 25.900 24.600
+ 117481.116 2 91539.244 3 24461059.468 24461061.005 24461059.114
+ 17.800 18.600
+ -14971418.292 6 -11666050.529 5 22313722.009 22313722.050 22313720.576
+ 36.100 31.500
+ -21921562.231 7 -17081735.639 7 20752259.219 20752257.434 20752258.248
+ 44.500 46.400
+ -709292.870 3 -552703.711 3 24653504.081 24653505.930 24653503.690
+ 21.600 22.600
+ 06 1 1 16 28 0.0000000 0 9G08G11G17G19G24G26G27G28G29
+ -20759982.909 7 -16176616.799 6 20818893.531 20818893.543 20818892.571
+ 46.300 41.100
+ -20052166.596 7 -15625058.344 6 20672109.612 20672108.011 20672108.898
+ 47.000 41.900
+ -12438167.023 6 -9692073.772 6 22353258.830 22353258.917 22353258.005
+ 39.300 38.100
+ -6904021.634 6 -5379762.209 4 23318180.710 23318179.411 23318178.951
+ 36.000 29.500
+ -5966099.356 5 -4648900.754 4 23307807.581 23307810.562 23307807.115
+ 31.300 24.200
+ 206548.627 3 160942.417 3 24478008.504 24478010.075 24478008.046
+ 21.100 19.900
+ -14791642.740 5 -11525965.850 5 22347931.766 22347932.558 22347930.563
+ 34.800 31.600
+ -22006234.358 7 -17147713.898 7 20736146.765 20736144.862 20736145.745
+ 44.300 46.500
+ -613215.150 3 -477838.032 3 24671787.762 24671789.040 24671787.036
+ 19.900 21.600
+ 06 1 1 16 29 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -233294.677 2 -181787.233 23306424.412 23306426.182 23306424.281
+ 15.100 3.000
+ -20647338.275 7 -16088841.812 6 20840329.296 20840329.069 20840328.238
+ 46.300 41.100
+ -20034863.763 7 -15611575.630 7 20675402.274 20675400.698 20675401.545
+ 47.000 42.000
+ -12595475.637 6 -9814651.877 6 22323324.172 22323323.595 22323323.314
+ 39.400 37.700
+ -6723270.242 5 -5238917.128 4 23352576.696 23352575.421 23352575.007
+ 35.500 28.400
+ -6183190.509 5 -4818062.524 4 23266496.557 23266499.099 23266495.854
+ 30.600 24.200
+ 297607.427 3 231897.225 3 24495337.119 24495337.687 24495336.275
+ 19.300 18.600
+ -14610581.893 5 -11384879.647 5 22382386.487 22382387.406 22382385.103
+ 35.100 31.600
+ -22089681.938 7 -17212737.958 7 20720267.168 20720265.300 20720266.249
+ 44.400 46.600
+ -515565.946 3 -401747.849 3 24690370.273 24690371.316 24690369.271
+ 19.900 19.900
+ 06 1 1 16 30 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -391543.536 3 -305097.875 2 23276311.477 23276312.930 23276310.353
+ 18.600 12.600
+ -20532374.248 7 -15999259.509 6 20862205.991 20862206.080 20862204.999
+ 45.900 41.000
+ -20015235.526 7 -15596280.902 6 20679137.477 20679135.898 20679136.768
+ 47.100 41.900
+ -12751813.543 6 -9936473.597 6 22293573.981 22293573.859 22293573.297
+ 39.900 38.400
+ -6542150.138 5 -5097784.701 4 23387042.614 23387041.286 23387040.825
+ 35.600 29.500
+ -6399534.827 4 -4986642.400 3 23225326.260 23225329.592 23225326.564
+ 29.500 22.100
+ 390639.165 3 304389.444 2 24513039.597 24513041.332 24513039.157
+ 19.900 17.000
+ -14428255.719 5 -11242807.450 5 22417082.809 22417082.901 22417081.136
+ 34.000 31.100
+ -22171893.628 7 -17276799.000 7 20704622.792 20704620.983 20704621.815
+ 44.300 46.900
+ -416363.404 2 -324447.271 3 24709247.460 24709249.189 24709246.488
+ 17.000 19.300
+ 06 1 1 16 31 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -549126.796 3 -427889.927 2 23246324.844 23246325.833 23246323.415
+ 22.100 17.800
+ -20415106.635 7 -15907882.202 6 20884521.139 20884521.376 20884520.259
+ 45.900 40.600
+ -19993286.697 7 -15579177.924 6 20683314.167 20683312.596 20683313.518
+ 47.000 41.900
+ -12907175.275 6 -10057534.641 6 22264009.153 22264008.951 22264008.679
+ 39.900 38.100
+ -6360672.529 5 -4956373.715 4 23421576.654 23421575.828 23421574.985
+ 35.600 29.200
+ -6615111.395 4 -5154623.992 4 23184304.397 23184307.086 23184303.461
+ 27.900 24.200
+ 485625.249 3 378404.492 2 24531115.265 24531116.532 24531114.606
+ 18.600 17.800
+ -14244685.116 5 -11099765.563 5 22452015.491 22452015.479 22452013.808
+ 34.900 31.500
+ -22252857.703 7 -17339887.876 7 20689215.781 20689213.973 20689214.824
+ 44.200 46.900
+ -315626.482 2 -245951.099 2 24728416.500 24728418.822 24728416.020
+ 16.100 17.000
+ 06 1 1 16 32 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -706041.001 4 -550160.666 3 23216464.842 23216466.125 23216463.955
+ 26.800 21.100
+ -20295550.714 7 -15814721.800 6 20907272.035 20907272.195 20907271.156
+ 45.900 40.300
+ -19969022.980 7 -15560271.136 6 20687931.226 20687929.796 20687930.659
+ 46.800 41.900
+ -13061555.435 6 -10177830.832 6 22234631.910 22234631.837 22234631.249
+ 40.300 39.200
+ -6178848.135 5 -4814692.490 4 23456177.822 23456175.392 23456175.902
+ 35.200 28.100
+ -6829898.523 5 -5321990.409 4 23143430.814 23143434.443 23143430.831
+ 30.400 25.900
+ 582546.996 3 453927.879 3 24549559.083 24549560.847 24549558.651
+ 22.100 18.600
+ -14059890.860 5 -10955770.180 5 22487179.755 22487180.835 22487178.918
+ 34.600 30.800
+ -22332561.910 7 -17401995.044 7 20674048.865 20674046.797 20674047.777
+ 44.300 47.100
+ -213374.229 3 -166274.142 1 24747875.357 24747876.305 24747874.859
+ 19.900 11.000
+ 06 1 1 16 33 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -862282.460 4 -671907.187 4 23186732.976 23186734.400 23186731.876
+ 29.500 25.900
+ -20173722.248 7 -15719790.594 6 20930455.428 20930455.399 20930454.360
+ 45.800 40.300
+ -19942449.571 7 -15539564.590 6 20692987.883 20692986.596 20692987.300
+ 46.800 41.900
+ -13214948.416 6 -10297357.759 6 22205442.006 22205442.034 22205441.564
+ 40.200 38.700
+ -5996687.345 5 -4672749.138 4 23490841.495 23490840.176 23490839.259
+ 34.100 29.200
+ -7043875.300 5 -5488725.345 4 23102712.308 23102715.865 23102712.131
+ 30.600 26.500
+ 681385.010 3 530944.427 2 24568367.484 24568368.533 24568366.931
+ 21.100 17.800
+ -13873893.200 5 -10810837.060 5 22522574.091 22522574.825 22522573.205
+ 34.500 30.200
+ -22410994.845 7 -17463111.616 7 20659123.393 20659121.349 20659122.489
+ 44.200 47.000
+ -109625.797 3 -85431.334 1 24767618.132 24767618.684 24767617.403
+ 21.100 11.000
+ 06 1 1 16 34 0.0000000 0 10G07G08G11G17G19G24G26G27G28G29
+ -1017847.753 5 -793126.869 4 23157129.792 23157131.107 23157128.610
+ 31.600 28.600
+ -20049637.212 7 -15623101.025 6 20954068.223 20954068.142 20954067.162
+ 45.700 40.500
+ -19913573.430 7 -15517063.702 6 20698483.157 20698481.516 20698482.385
+ 46.900 41.900
+ -13367349.242 6 -10416111.552 6 22176440.657 22176440.948 22176440.167
+ 39.800 38.800
+ -5814200.530 5 -4530551.724 4 23525567.436 23525565.528 23525565.604
+ 34.400 24.900
+ -7257020.921 4 -5654812.616 4 23062152.651 23062154.850 23062151.690
+ 29.000 24.200
+ 782119.759 4 609438.951 3 24587536.877 24587537.913 24587536.334
+ 24.900 19.900
+ -13686713.305 5 -10664982.709 5 22558192.838 22558194.504 22558192.338
+ 34.500 30.100
+ -22488145.120 7 -17523228.715 7 20644442.154 20644440.314 20644441.226
+ 44.400 47.400
+ -4399.997 3 -3437.348 2 24787642.136 24787643.566 24787641.518
+ 21.600 17.800
+ 06 1 1 16 35 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1172733.328 5 -913816.895 5 23127656.065 23127657.477 23127654.935
+ 33.500 30.200
+ -19923312.421 7 -15524666.196 6 20978106.832 20978107.036 20978105.931
+ 45.600 39.900
+ -19882400.431 7 -15492773.055 6 20704415.042 20704413.465 20704414.342
+ 46.600 41.800
+ -13518752.814 6 -10534088.241 6 22147630.050 22147629.713 22147629.297
+ 40.500 39.500
+ -5631397.601 5 -4388107.973 4 23560353.226 23560351.900 23560351.533
+ 33.500 27.600
+ -7469313.356 5 -5820235.109 4 23021754.399 23021757.009 23021753.702
+ 30.400 27.100
+ 884731.890 3 689396.336 3 24607063.281 24607064.670 24607062.699
+ 23.800 18.600
+ -13498372.427 5 -10518223.683 4 22594033.800 22594034.502 22594032.667
+ 32.800 29.500
+ -22564000.238 7 -17582336.602 7 20630007.457 20630005.524 20630006.568
+ 44.100 47.400
+ 06 1 1 16 36 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1326935.550 5 -1033974.391 5 23098312.244 23098313.700 23098311.304
+ 34.100 31.800
+ -19794765.163 7 -15424499.571 6 21002568.523 21002568.806 21002567.598
+ 45.100 40.000
+ -19848937.271 7 -15466697.875 6 20710782.700 20710781.433 20710782.162
+ 46.700 41.500
+ -13669153.780 6 -10651283.679 6 22119009.625 22119009.242 22119008.799
+ 40.900 39.700
+ -5448289.071 5 -4245426.127 4 23595197.572 23595196.712 23595195.915
+ 35.100 25.900
+ -7680731.958 4 -5984976.653 4 22981522.133 22981525.543 22981521.607
+ 29.900 27.100
+ 989201.207 3 770800.900 3 24626943.601 24626944.790 24626942.972
+ 23.400 22.600
+ -13308891.425 5 -10370576.289 4 22630091.076 22630091.812 22630089.529
+ 31.800 29.200
+ -22638549.040 7 -17640426.573 7 20615821.262 20615819.270 20615820.276
+ 43.800 47.500
+ 06 1 1 16 37 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1480451.103 5 -1153596.807 5 23069098.924 23069100.134 23069097.936
+ 31.300 31.000
+ -19664012.561 7 -15322614.498 6 21027450.135 21027450.223 21027449.090
+ 45.200 39.900
+ -19813191.349 7 -15438843.916 6 20717585.280 20717583.610 20717584.504
+ 46.600 41.500
+ -13818546.751 6 -10767693.686 6 22090580.501 22090580.612 22090579.800
+ 40.900 39.500
+ -5264885.514 5 -4102514.387 4 23630098.693 23630097.817 23630097.120
+ 34.000 28.100
+ -7891255.831 5 -6149021.051 3 22941461.122 22941463.473 22941460.397
+ 30.400 23.400
+ 1095507.830 3 853637.142 3 24647172.461 24647174.423 24647171.673
+ 23.000 23.800
+ -13118291.432 5 -10222056.929 5 22666359.602 22666361.804 22666359.304
+ 32.700 30.200
+ -22711779.856 7 -17697489.540 7 20601885.975 20601884.111 20601884.920
+ 43.600 47.700
+ 06 1 1 16 38 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1633276.731 5 -1272681.599 4 23040017.973 23040018.723 23040016.540
+ 31.100 29.500
+ -19531072.295 7 -15219024.751 6 21052748.015 21052747.924 21052746.985
+ 45.400 39.300
+ -19775170.068 7 -15409216.939 6 20724820.460 20724818.822 20724819.714
+ 46.900 41.600
+ -13966927.283 6 -10883314.818 6 22062344.698 22062344.579 22062344.251
+ 41.500 39.700
+ -5081196.024 5 -3959379.857 4 23665054.179 23665052.459 23665052.204
+ 33.900 27.600
+ -8100863.245 5 -6312351.343 4 22901574.130 22901576.562 22901573.407
+ 32.000 26.800
+ 1203631.066 3 937888.889 4 24667748.012 24667749.481 24667747.128
+ 20.500 24.600
+ -12926593.621 5 -10072682.115 4 22702839.932 22702840.774 22702838.688
+ 32.600 29.500
+ -22783681.076 7 -17753516.452 7 20588203.413 20588201.640 20588202.530
+ 43.700 47.700
+ 06 1 1 16 39 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1785409.204 5 -1391226.269 4 23011067.853 23011068.308 23011066.502
+ 31.500 26.800
+ -19395961.844 7 -15113743.940 6 21078458.412 21078458.814 21078457.549
+ 45.300 39.300
+ -19734880.840 7 -15377822.734 6 20732487.165 20732485.631 20732486.435
+ 47.100 41.600
+ -14114290.730 6 -10998143.425 6 22034302.618 22034302.305 22034301.983
+ 41.500 40.200
+ -4897230.725 5 -3816030.410 4 23700061.487 23700060.103 23700059.648
+ 33.500 25.300
+ -8309533.535 5 -6474951.387 4 22861864.617 22861867.648 22861864.590
+ 31.100 26.200
+ 1313550.340 2 1023540.181 3 24688665.331 24688666.884 24688664.629
+ 17.800 23.000
+ -12733819.503 5 -9922468.644 4 22739523.716 22739524.638 22739522.599
+ 32.800 29.900
+ -22854240.864 7 -17808498.091 7 20574776.511 20574774.463 20574775.510
+ 43.500 47.800
+ 06 1 1 16 40 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -1936845.004 5 -1509228.147 4 22982249.951 22982251.435 22982248.737
+ 32.600 29.000
+ -19258699.455 7 -15006786.293 6 21104579.057 21104579.114 21104577.966
+ 44.900 39.500
+ -19692332.070 7 -15344667.844 6 20740584.081 20740582.265 20740583.437
+ 47.400 41.300
+ -14260631.218 6 -11112174.940 6 22006454.440 22006454.494 22006453.975
+ 41.800 39.800
+ -4712999.240 5 -3672473.548 4 23735119.878 23735118.363 23735117.834
+ 33.800 25.900
+ -8517246.290 5 -6636805.258 4 22822339.425 22822341.314 22822338.275
+ 32.300 28.800
+ 1425244.889 2 1110574.790 3 24709919.297 24709921.421 24709919.078
+ 15.100 20.500
+ -12539990.732 5 -9771433.363 4 22776408.130 22776409.058 22776406.819
+ 31.600 29.000
+ -22923447.614 7 -17862425.419 7 20561606.862 20561604.873 20561605.878
+ 43.200 47.800
+ 06 1 1 16 41 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2087581.030 5 -1626684.708 5 22953566.171 22953566.950 22953564.994
+ 33.200 30.400
+ -19119303.461 7 -14898166.101 6 21131104.994 21131105.239 21131103.955
+ 44.600 39.100
+ -19647532.071 7 -15309758.738 6 20749109.288 20749107.374 20749108.609
+ 47.500 41.000
+ -14405944.587 6 -11225406.089 6 21978802.422 21978802.113 21978801.929
+ 41.600 39.700
+ -4528511.161 5 -3528716.716 4 23770226.079 23770225.357 23770224.073
+ 31.500 25.900
+ -8723980.254 5 -6797896.480 4 22782997.311 22783000.723 22782997.689
+ 33.600 28.400
+ 1538693.339 2 1198976.093 3 24731507.878 24731510.095 24731507.589
+ 17.000 21.600
+ -12345128.838 5 -9619593.045 4 22813489.004 22813489.939 22813487.967
+ 32.000 26.500
+ -22991289.686 7 -17915289.358 8 20548696.760 20548694.941 20548695.870
+ 43.200 48.000
+ 06 1 1 16 42 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2237614.216 5 -1743593.555 5 22925015.668 22925016.849 22925014.340
+ 31.500 31.100
+ -18977792.852 7 -14787898.138 6 21158033.521 21158033.801 21158032.668
+ 45.000 38.800
+ -19600489.503 7 -15273102.189 6 20758061.014 20758059.393 20758060.470
+ 47.500 41.100
+ -14550225.691 7 -11337832.839 6 21951346.512 21951346.518 21951345.919
+ 42.000 40.700
+ -4343776.241 5 -3384767.591 4 23805380.445 23805379.082 23805378.795
+ 33.500 26.200
+ -8929714.347 5 -6958208.544 4 22743849.603 22743850.858 22743848.073
+ 31.500 29.500
+ 1653874.766 3 1288727.744 2 24753426.712 24753428.362 24753426.115
+ 20.500 15.100
+ -12149254.399 5 -9466963.744 4 22850762.049 22850764.023 22850761.371
+ 31.000 27.100
+ -23057755.324 7 -17967080.749 8 20536049.057 20536046.931 20536048.103
+ 43.300 48.100
+ 06 1 1 16 43 0.0000000 0 9G07G08G11G17G19G24G26G27G28
+ -2386941.045 5 -1859952.000 4 22896599.690 22896600.177 22896598.453
+ 33.500 28.600
+ -18834186.893 7 -14675997.458 6 21185361.325 21185361.446 21185360.023
+ 44.100 38.900
+ -19551213.369 7 -15234705.198 6 20767437.915 20767436.448 20767437.231
+ 47.400 41.100
+ -14693469.654 7 -11449451.400 6 21924088.204 21924087.581 21924087.577
+ 42.300 40.100
+ -4158803.874 5 -3240633.385 4 23840579.476 23840578.599 23840577.673
+ 31.600 25.300
+ -9134428.381 5 -7117725.792 4 22704891.289 22704894.754 22704891.638
+ 32.000 28.600
+ 1770767.538 3 1379813.005 9 24775670.391 24775671.992 24775669.774
+ 21.100 -3.000
+ -11952390.729 4 -9313563.624 4 22888224.379 22888226.118 22888223.320
+ 29.900 29.000
+ -23122833.318 7 -18017790.863 8 20523664.917 20523663.080 20523664.008
+ 43.000 48.300
+ 06 1 1 16 44 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2535558.871 5 -1975757.971 5 22868318.655 22868319.561 22868317.539
+ 34.000 31.300
+ -18688504.592 7 -14562478.843 6 21213083.158 21213083.761 21213082.371
+ 44.300 38.900
+ -19499713.368 7 -15194575.327 6 20777238.387 20777236.421 20777237.650
+ 47.600 40.800
+ -14835672.226 7 -11560258.491 6 21897027.705 21897027.288 21897027.156
+ 42.600 40.100
+ -3973603.159 5 -3096321.277 4 23875821.121 23875820.914 23875819.536
+ 31.000 25.600
+ -9338101.138 5 -7276431.653 4 22666136.152 22666136.843 22666134.486
+ 33.100 28.800
+ -11754559.275 4 -9159409.381 4 22925870.413 22925872.132 22925869.711
+ 29.900 27.600
+ -23186511.804 7 -18067410.451 8 20511547.264 20511545.482 20511546.346
+ 42.800 48.500
+ 06 1 1 16 45 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2683464.398 5 -2091008.850 5 22840172.600 22840173.372 22840171.247
+ 32.600 31.600
+ -18540766.088 7 -14447357.999 6 21241197.572 21241197.500 21241196.274
+ 44.000 38.400
+ -19445998.678 7 -15152719.732 6 20787459.833 20787457.894 20787459.140
+ 47.500 40.900
+ -14976828.795 7 -11670250.522 6 21870166.789 21870165.998 21870166.089
+ 42.800 40.500
+ -3788183.056 4 -2951838.212 4 23911105.965 23911105.868 23911104.144
+ 29.900 27.400
+ -9540712.422 5 -7434310.419 4 22627577.897 22627581.076 22627578.285
+ 33.600 29.000
+ -11555781.273 5 -9004517.563 4 22963696.998 22963698.720 22963695.893
+ 31.500 27.600
+ -23248779.609 7 -18115930.814 8 20499698.026 20499696.311 20499697.020
+ 42.700 48.500
+ 06 1 1 16 46 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2830654.641 5 -2205702.457 5 22812163.333 22812164.652 22812162.133
+ 34.100 32.400
+ -18390990.334 7 -14330649.692 6 21269698.318 21269698.822 21269697.470
+ 43.600 37.900
+ -19390079.257 7 -15109146.162 6 20798100.918 20798099.225 20798100.203
+ 47.500 41.100
+ -15116934.765 7 -11779423.948 6 21843505.142 21843504.937 21843504.641
+ 42.700 41.000
+ -3602552.594 5 -2807191.252 4 23946431.321 23946430.119 23946429.210
+ 32.000 24.200
+ -9742242.266 5 -7591346.516 5 22589229.839 22589231.391 22589228.536
+ 32.600 30.200
+ -11356078.638 5 -8848905.297 4 23001699.102 23001701.183 23001698.481
+ 32.300 27.400
+ -23309624.866 7 -18163342.700 8 20488119.811 20488117.763 20488118.778
+ 42.300 48.500
+ 06 1 1 16 47 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -2977126.837 5 -2319836.490 4 22784290.730 22784290.642 22784289.714
+ 34.700 29.200
+ -18239198.240 7 -14212370.220 6 21298584.017 21298584.167 21298582.877
+ 43.800 38.100
+ -19331965.331 7 -15063862.585 6 20809159.447 20809158.017 20809158.825
+ 47.300 41.100
+ -15255985.643 7 -11887775.239 6 21817044.714 21817044.102 21817044.225
+ 43.200 40.900
+ -3416720.931 5 -2662387.494 3 23981793.510 23981792.166 23981791.386
+ 30.400 22.100
+ -9942669.566 5 -7747523.462 5 22551089.312 22551091.008 22551088.382
+ 33.900 30.800
+ -11155474.052 4 -8692590.173 4 23039874.094 23039874.460 23039872.349
+ 27.600 24.200
+ -23369036.329 7 -18209637.340 8 20476814.178 20476812.051 20476813.192
+ 42.500 48.500
+ 06 1 1 16 48 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3122877.831 5 -2433408.600 5 22756554.153 22756556.591 22756553.035
+ 33.100 33.100
+ -18085409.605 7 -14092535.000 6 21327849.059 21327849.123 21327847.862
+ 43.600 37.400
+ -19271667.493 7 -15016877.273 6 20820633.772 20820632.182 20820633.100
+ 47.200 40.800
+ -15393977.469 7 -11995301.325 6 21790786.002 21790785.174 21790785.401
+ 43.700 40.900
+ -3230696.634 5 -2517433.587 3 24017193.224 24017191.703 24017191.420
+ 31.500 23.800
+ -10141973.962 5 -7902825.455 5 22513161.870 22513164.588 22513161.759
+ 35.100 30.400
+ -10953988.847 4 -8535588.853 4 23078213.921 23078216.230 23078213.387
+ 28.600 25.600
+ -23427002.505 7 -18254805.783 8 20465783.386 20465781.588 20465782.401
+ 42.100 48.700
+ 06 1 1 16 49 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3267904.755 5 -2546416.508 4 22728956.988 22728957.112 22728955.997
+ 35.500 29.200
+ -17929644.951 7 -13971160.034 6 21357489.672 21357490.193 21357488.823
+ 43.500 37.400
+ -19209196.896 7 -14968198.902 6 20832521.611 20832519.858 20832520.830
+ 47.300 40.500
+ -15530905.145 7 -12101998.200 6 21764728.921 21764728.887 21764728.513
+ 43.100 41.100
+ -3044488.408 5 -2372336.386 4 24052627.081 24052626.774 24052625.466
+ 31.000 24.900
+ -10340135.584 5 -8057236.988 5 22475453.516 22475455.526 22475452.661
+ 34.300 30.100
+ -10751645.601 4 -8377918.955 4 23116719.890 23116721.449 23116718.581
+ 29.500 26.800
+ -23483512.047 7 -18298839.181 8 20455029.996 20455028.231 20455029.033
+ 42.100 48.800
+ 06 1 1 16 50 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3412204.716 5 -2658857.925 5 22701498.543 22701499.349 22701497.251
+ 35.800 34.500
+ -17771925.810 7 -13848262.108 6 21387502.786 21387503.308 21387501.923
+ 43.100 37.400
+ -19144564.004 7 -14917835.631 6 20844820.541 20844819.251 20844819.954
+ 47.200 40.300
+ -15666764.290 7 -12207862.427 6 21738876.168 21738875.633 21738875.587
+ 43.700 41.400
+ -2858105.165 5 -2227102.804 3 24088095.478 24088093.975 24088093.791
+ 31.800 23.000
+ -10537134.123 5 -8210742.247 5 22437965.960 22437967.532 22437965.008
+ 35.200 30.100
+ -10548466.236 4 -8219597.500 4 23155382.598 23155385.438 23155382.257
+ 29.500 27.900
+ -23538553.798 7 -18341728.852 8 20444555.864 20444553.963 20444554.889
+ 42.100 48.700
+ 06 1 1 16 51 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3555774.994 5 -2770730.770 5 22674176.621 22674177.090 22674175.491
+ 34.300 30.100
+ -17612273.581 7 -13723857.877 6 21417883.856 21417884.231 21417882.860
+ 42.900 37.100
+ -19077780.550 7 -14865796.588 6 20857529.353 20857527.617 20857528.639
+ 47.500 40.200
+ -15801550.867 7 -12312890.844 6 21713227.036 21713226.205 21713226.446
+ 43.600 41.000
+ -2671555.204 4 -2081739.342 4 24123593.729 24123594.548 24123592.090
+ 29.000 27.900
+ -10732949.865 5 -8363325.878 5 22400704.775 22400705.058 22400703.020
+ 34.800 30.200
+ -10344472.354 4 -8060641.406 4 23194202.446 23194204.161 23194201.388
+ 28.600 25.300
+ -23592116.377 6 -18383465.910 8 20434363.178 20434361.346 20434362.287
+ 41.900 48.700
+ 06 1 1 16 52 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3698612.642 5 -2882032.732 5 22646995.808 22646997.263 22646994.842
+ 35.800 33.900
+ -17450709.540 7 -13597963.925 6 21448628.198 21448628.993 21448627.412
+ 42.300 37.100
+ -19008858.167 7 -14812090.844 6 20870644.773 20870643.084 20870644.135
+ 47.400 40.100
+ -15935261.089 7 -12417080.498 7 21687782.757 21687782.460 21687782.125
+ 44.400 42.400
+ -2484846.568 5 -1936252.260 3 24159124.360 24159122.933 24159122.241
+ 30.100 23.400
+ -10927562.614 5 -8514972.131 5 22363670.082 22363671.461 22363668.943
+ 35.600 30.200
+ -10139686.955 4 -7901068.493 4 23233171.732 23233173.563 23233170.454
+ 28.100 24.900
+ -23644189.090 6 -18424042.038 8 20424454.246 20424452.141 20424453.200
+ 41.900 48.600
+ 06 1 1 16 53 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3840715.148 6 -2992761.852 5 22619955.207 22619954.658 22619954.036
+ 36.900 31.000
+ -17287254.169 7 -13470596.221 6 21479732.982 21479733.558 21479731.955
+ 42.600 36.500
+ -18937808.535 7 -14756727.503 6 20884165.111 20884163.323 20884164.480
+ 47.500 39.900
+ -16067890.226 7 -12520427.747 6 21662543.771 21662543.514 21662543.341
+ 44.000 41.900
+ -2297988.102 5 -1790648.434 3 24194682.629 24194680.992 24194680.783
+ 30.200 23.800
+ -11120952.249 5 -8665665.332 5 22326868.137 22326870.677 22326867.845
+ 34.900 31.100
+ -9934132.114 4 -7740896.082 4 23272287.322 23272289.616 23272286.436
+ 26.500 26.800
+ -23694760.024 6 -18463447.947 8 20414830.910 20414828.861 20414829.949
+ 41.900 48.700
+ 06 1 1 16 54 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -3982079.634 5 -3102915.882 5 22593053.632 22593055.226 22593052.506
+ 35.500 35.200
+ -17121929.989 7 -13341772.293 6 21511193.327 21511193.994 21511192.270
+ 42.200 36.500
+ -18864644.191 7 -14699716.327 6 20898087.806 20898086.133 20898087.158
+ 47.400 39.700
+ -16199434.405 7 -12622929.563 7 21637512.165 21637511.442 21637511.502
+ 44.500 42.000
+ -2110987.638 4 -1644933.993 3 24230267.406 24230266.855 24230265.541
+ 28.400 23.000
+ -11313099.252 5 -8815390.225 5 22290303.713 22290306.213 22290303.498
+ 35.800 31.100
+ -9727830.231 4 -7580141.519 4 23311545.376 23311547.280 23311544.333
+ 27.100 24.600
+ -23743818.461 6 -18501675.288 8 20405495.265 20405493.338 20405494.293
+ 41.700 48.800
+ 06 1 1 16 55 0.0000000 0 8G07G08G11G17G19G24G27G28
+ -4122703.380 5 -3212492.759 5 22566293.423 22566293.961 22566292.546
+ 35.600 32.300
+ -16954759.046 7 -13211509.325 6 21543004.763 21543005.588 21543003.868
+ 42.200 36.500
+ -18789376.969 7 -14641066.541 6 20912410.698 20912409.033 20912410.062
+ 47.500 39.700
+ -16329889.427 7 -12724582.716 7 21612686.906 21612686.545 21612686.308
+ 43.900 42.100
+ -1923853.037 4 -1499115.012 3 24265877.711 24265876.421 24265875.989
+ 29.900 20.500
+ -11503984.115 5 -8964131.608 5 22253979.272 22253981.781 22253979.212
+ 35.800 31.000
+ -9520803.799 4 -7418822.358 3 23350941.381 23350943.470 23350940.766
+ 28.100 23.400
+ -23791353.730 6 -18538715.737 8 20396449.696 20396447.748 20396448.732
+ 41.800 48.800
+ 06 1 1 16 56 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4262583.836 6 -3321490.404 5 22539675.783 22539676.690 22539674.626
+ 36.400 33.800
+ -16785763.410 7 -13079824.513 6 21575163.908 21575164.736 21575162.933
+ 42.000 36.600
+ -18712019.884 7 -14580788.305 6 20927131.231 20927129.610 20927130.592
+ 47.400 39.600
+ -16459251.807 7 -12825384.498 6 21588070.002 21588069.297 21588069.542
+ 44.000 41.600
+ -1736592.267 4 -1353197.686 2 24301512.376 24301511.990 24301510.541
+ 29.000 17.000
+ -287590.265 3 -224096.520 2 24635261.300 24635263.873 24635260.152
+ 23.800 12.600
+ -11693586.921 6 -9111873.954 5 22217899.091 22217901.702 22217899.038
+ 36.500 32.000
+ -9313074.590 4 -7256955.597 3 23390470.610 23390473.257 23390470.048
+ 26.500 23.400
+ -23837354.890 6 -18574560.782 8 20387695.886 20387693.929 20387694.936
+ 41.600 48.800
+ 06 1 1 16 57 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4401718.090 6 -3429906.639 5 22513198.965 22513199.036 22513197.792
+ 36.300 32.100
+ -16614965.910 6 -12946735.647 5 21607665.720 21607666.180 21607664.726
+ 41.600 35.800
+ -18632585.736 7 -14518891.580 6 20942247.124 20942245.436 20942246.409
+ 47.300 39.700
+ -16587517.523 7 -12925331.772 7 21563662.128 21563661.539 21563661.479
+ 44.700 42.500
+ -1549213.091 5 -1207188.074 3 24337170.586 24337169.361 24337168.612
+ 31.300 22.100
+ -470668.199 3 -366754.430 2 24600423.273 24600425.243 24600421.663
+ 18.600 13.900
+ -11881888.712 6 -9258602.480 5 22182066.429 22182068.933 22182066.285
+ 36.500 31.800
+ -9104665.269 4 -7094558.891 3 23430130.263 23430132.069 23430129.339
+ 27.100 22.600
+ -23881810.604 6 -18609201.592 8 20379236.278 20379234.235 20379235.316
+ 41.700 48.800
+ 06 1 1 16 58 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4540103.677 6 -3537739.442 5 22486865.170 22486865.948 22486864.009
+ 37.200 34.000
+ -16442389.192 6 -12812260.363 5 21640506.067 21640506.507 21640505.049
+ 41.300 35.300
+ -18551087.515 7 -14455386.494 6 20957755.903 20957754.107 20957755.153
+ 47.400 39.500
+ -16714682.400 7 -13024421.285 7 21539463.408 21539462.602 21539462.872
+ 45.100 42.500
+ -1361723.284 4 -1061092.249 3 24372847.710 24372847.606 24372845.845
+ 27.400 20.500
+ -653335.239 3 -509092.045 2 24565661.076 24565664.590 24565660.499
+ 22.100 15.100
+ -12068869.983 6 -9404302.017 5 22146485.652 22146487.461 22146485.069
+ 37.800 32.700
+ -8895597.818 4 -6931649.361 4 23469914.330 23469916.863 23469913.684
+ 25.900 24.900
+ -23924710.205 6 -18642629.844 8 20371072.746 20371070.738 20371071.816
+ 41.700 48.900
+ 06 1 1 16 59 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4677737.976 6 -3644986.799 5 22460674.279 22460674.335 22460673.105
+ 37.900 33.000
+ -16268055.729 6 -12676416.188 5 21673680.661 21673681.272 21673679.579
+ 40.900 35.700
+ -18467539.245 7 -14390283.970 6 20973654.399 20973652.869 20973653.696
+ 47.100 39.500
+ -16840742.807 7 -13122650.173 7 21515474.752 21515474.153 21515474.187
+ 44.800 42.500
+ -1174130.678 4 -914916.286 3 24408545.552 24408545.702 24408543.988
+ 29.000 22.600
+ -835566.010 3 -651089.801 2 24530983.950 24530986.824 24530983.013
+ 19.300 15.100
+ -12254511.855 6 -9548957.888 5 22111159.217 22111160.907 22111158.401
+ 37.000 32.600
+ -8685895.574 4 -6768245.224 3 23509820.036 23509821.819 23509818.735
+ 26.200 23.400
+ -23966042.794 6 -18674837.049 8 20363207.291 20363205.402 20363206.376
+ 41.500 49.000
+ 06 1 1 17 0 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4814618.484 6 -3751646.772 5 22434626.184 22434627.166 22434625.086
+ 37.500 34.600
+ -16091988.519 6 -12539221.037 5 21707184.790 21707185.743 21707183.946
+ 40.500 35.600
+ -18381953.689 7 -14323593.948 6 20989940.732 20989939.321 20989940.041
+ 47.300 39.300
+ -16965694.923 7 -13220015.445 7 21491697.251 21491696.652 21491696.525
+ 45.000 42.700
+ -986442.728 4 -768666.121 3 24444261.292 24444260.848 24444259.354
+ 28.100 23.400
+ -1017336.020 3 -792728.495 1 24496394.811 24496395.581 24496393.636
+ 22.100 6.500
+ -12438795.628 6 -9692555.515 5 22076092.333 22076092.707 22076090.656
+ 37.300 32.600
+ -8475580.209 4 -6604363.321 3 23549841.723 23549844.004 23549840.398
+ 25.300 22.600
+ -24005798.785 6 -18705815.743 8 20355642.245 20355640.060 20355641.286
+ 41.800 48.900
+ 06 1 1 17 1 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -4950742.655 6 -3857717.428 5 22408722.621 22408723.186 22408721.550
+ 38.100 34.700
+ -15914211.019 6 -12400693.186 5 21741015.349 21741015.568 21741014.363
+ 41.100 34.600
+ -18294345.341 7 -14255327.717 6 21006612.076 21006610.499 21006611.393
+ 47.300 39.300
+ -17089534.748 7 -13316513.983 7 21468131.515 21468130.762 21468130.818
+ 45.400 43.100
+ -798666.479 4 -622347.069 3 24479994.095 24479993.478 24479992.493
+ 25.600 21.100
+ -1198619.710 4 -933988.309 1 24461897.995 24461898.867 24461896.843
+ 26.800 9.000
+ -12621701.562 6 -9835079.525 5 22041286.370 22041287.014 22041284.730
+ 37.200 33.800
+ -8264674.490 3 -6440021.361 3 23589974.453 23589977.791 23589974.183
+ 21.600 23.000
+ -24043966.750 6 -18735557.004 8 20348379.096 20348376.992 20348378.124
+ 41.500 48.900
+ 06 1 1 17 2 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5086108.199 6 -3963196.937 5 22382963.556 22382963.668 22382962.234
+ 37.600 34.100
+ -15734746.631 6 -12260850.871 5 21775166.041 21775166.759 21775165.091
+ 40.200 34.700
+ -18204727.846 7 -14185495.916 6 21023665.840 21023664.149 21023665.204
+ 47.600 39.100
+ -17212258.838 7 -13412143.089 7 21444777.601 21444776.809 21444777.072
+ 45.500 42.800
+ -610809.894 4 -475965.431 3 24515741.465 24515742.488 24515739.719
+ 25.300 21.100
+ -1379391.689 3 -1074849.405 2 24427496.999 24427499.873 24427495.819
+ 23.800 13.900
+ -12803211.373 6 -9976515.665 5 22006744.974 22006746.433 22006744.132
+ 38.100 33.600
+ -8053200.766 3 -6275236.909 3 23630218.187 23630220.154 23630217.088
+ 23.000 22.600
+ -24080535.752 6 -18764052.323 8 20341420.161 20341418.071 20341419.217
+ 41.300 49.000
+ 06 1 1 17 3 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5220712.571 6 -4068083.375 5 22357348.672 22357349.469 22357347.560
+ 37.100 34.500
+ -15553618.833 6 -12119712.409 5 21809633.876 21809634.484 21809632.743
+ 40.100 34.500
+ -18113115.595 7 -14114109.757 6 21041099.146 21041097.377 21041098.420
+ 47.400 38.600
+ -17333863.674 7 -13506900.026 7 21421636.859 21421636.222 21421636.222
+ 45.200 43.200
+ -422879.510 4 -329526.378 3 24551504.894 24551504.149 24551503.099
+ 29.000 21.100
+ -1559626.882 3 -1215292.329 9 24393198.962 24393200.785 24393198.217
+ 23.400 -3.000
+ -12983306.579 6 -10116849.488 5 21972473.150 21972475.306 21972472.838
+ 38.200 33.600
+ -7841181.799 4 -6110027.527 4 23670565.423 23670567.009 23670563.724
+ 25.900 24.200
+ -24115496.983 6 -18791294.833 8 20334767.239 20334765.135 20334766.270
+ 41.400 49.000
+ 06 1 1 17 4 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5354553.251 6 -4172374.763 5 22331879.735 22331880.016 22331878.698
+ 38.400 34.500
+ -15370850.413 6 -11977295.532 5 21844413.135 21844414.157 21844412.194
+ 39.600 34.400
+ -18019523.219 7 -14041180.648 6 21058909.347 21058907.454 21058908.556
+ 47.400 38.900
+ -17454345.305 7 -13600781.727 7 21398710.041 21398709.461 21398709.269
+ 44.900 43.700
+ -234882.312 4 -183035.250 2 24587278.653 24587278.173 24587276.957
+ 27.400 17.000
+ -1739300.398 4 -1355297.516 2 24359008.359 24359010.609 24359007.340
+ 24.200 13.900
+ -13161969.051 6 -10256066.870 5 21938476.172 21938477.031 21938474.837
+ 38.600 33.900
+ -7628639.598 4 -5944410.436 3 23711009.253 23711012.179 23711008.600
+ 25.600 21.600
+ -24148839.054 6 -18817275.663 8 20328422.598 20328420.419 20328421.664
+ 41.400 49.000
+ 06 1 1 17 5 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5487627.883 6 -4276069.252 5 22306556.604 22306557.363 22306555.424
+ 38.300 35.800
+ -15186466.033 6 -11833619.459 5 21879500.126 21879501.312 21879499.331
+ 38.900 33.500
+ -17923965.049 7 -13966719.750 6 21077093.163 21077091.759 21077092.510
+ 47.300 39.000
+ -17573700.612 7 -13693785.787 7 21375997.283 21375996.528 21375996.779
+ 45.500 43.400
+ -46826.044 4 -36498.065 2 24623065.597 24623064.559 24623064.186
+ 28.600 16.100
+ -1918386.715 3 -1494845.188 3 24324930.906 24324931.883 24324928.904
+ 23.400 18.600
+ -13339179.981 6 -10394153.153 5 21904752.729 21904754.566 21904752.265
+ 38.900 33.800
+ -7415596.736 4 -5778403.238 3 23751550.269 23751552.990 23751549.555
+ 25.600 19.900
+ -24180552.428 6 -18841987.377 8 20322387.709 20322385.490 20322386.747
+ 41.500 49.000
+ 06 1 1 17 6 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5619933.999 6 -4379164.933 5 22281379.447 22281379.732 22281378.241
+ 38.100 34.700
+ -15000489.624 6 -11688702.855 5 21914890.756 21914891.578 21914889.811
+ 39.300 34.500
+ -17826456.143 7 -13890738.797 6 21095648.564 21095647.025 21095647.850
+ 47.000 38.800
+ -17691925.746 7 -13785909.208 7 21353499.886 21353499.097 21353499.289
+ 45.900 43.600
+ 141283.200 4 110080.384 3 24658861.560 24658862.375 24658859.598
+ 26.500 20.500
+ -2096860.424 3 -1633915.489 3 24290967.140 24290969.708 24290965.802
+ 21.100 18.600
+ -13514921.256 6 -10531094.217 5 21871310.308 21871312.127 21871309.732
+ 39.000 34.500
+ -7202075.551 3 -5612023.393 3 23792180.950 23792185.206 23792181.209
+ 23.800 19.300
+ -24210626.915 6 -18865422.034 8 20316664.611 20316662.510 20316663.728
+ 41.800 49.000
+ 06 1 1 17 7 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5751469.176 6 -4481659.852 6 22256349.262 22256350.070 22256348.127
+ 38.600 36.700
+ -14812944.371 6 -11542563.773 5 21950579.874 21950580.406 21950578.671
+ 38.900 33.600
+ -17727011.862 7 -13813249.759 6 21114571.985 21114570.695 21114571.399
+ 46.800 38.800
+ -17809017.516 7 -13877149.517 7 21331218.233 21331217.242 21331217.490
+ 45.900 43.700
+ 329438.179 4 256694.482 3 24694667.386 24694666.313 24694665.322
+ 25.900 20.500
+ -2274696.512 4 -1772488.916 2 24257125.812 24257128.078 24257124.863
+ 24.600 12.600
+ -13689175.459 6 -10666876.506 5 21838151.930 21838152.157 21838150.594
+ 39.600 33.800
+ -6988099.492 4 -5445289.023 3 23832901.029 23832904.156 23832900.088
+ 24.600 22.100
+ -24239052.375 6 -18887571.733 8 20311255.427 20311253.279 20311254.540
+ 41.300 49.000
+ 06 1 1 17 8 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -5882231.047 6 -4583552.174 5 22231465.994 22231466.500 22231464.729
+ 38.200 35.800
+ -14623856.950 6 -11395223.013 5 21986561.367 21986562.424 21986560.571
+ 38.700 32.800
+ -17625646.868 7 -13734264.061 6 21133861.249 21133859.797 21133860.595
+ 47.100 38.500
+ -17924972.655 7 -13967504.146 7 21309152.612 21309151.670 21309152.021
+ 46.200 43.800
+ 517632.504 3 403339.296 1 24730478.137 24730478.032 24730476.308
+ 23.400 11.000
+ -2451869.075 4 -1910545.398 2 24223410.703 24223413.450 24223409.820
+ 25.900 16.100
+ -13861924.513 6 -10801485.985 5 21805276.537 21805279.063 21805276.798
+ 39.500 34.700
+ -6773689.693 4 -5278216.722 3 23873701.905 23873705.098 23873701.128
+ 24.600 22.600
+ -24265819.361 6 -18908429.115 8 20306161.754 20306159.566 20306160.840
+ 41.100 48.800
+ 06 1 1 17 9 0.0000000 0 9G07G08G11G17G19G20G24G27G28
+ -6012217.118 6 -4684839.947 6 22206730.399 22206731.052 22206729.183
+ 38.600 36.000
+ -14433249.985 6 -11246698.177 5 22022833.117 22022833.816 22022832.031
+ 38.600 32.600
+ -17522376.958 7 -13653794.014 6 21153513.055 21153511.361 21153512.323
+ 47.100 38.400
+ -18039787.634 7 -14056970.357 7 21287303.878 21287303.011 21287303.241
+ 45.700 44.000
+ 705859.558 4 550009.619 3 24766297.344 24766297.367 24766295.400
+ 24.900 19.300
+ -2628353.216 4 -2048065.428 2 24189827.522 24189829.435 24189826.397
+ 26.200 13.900
+ -14033151.021 6 -10934909.087 5 21772695.570 21772695.587 21772694.156
+ 40.000 34.700
+ -6558868.589 3 -5110823.876 3 23914580.980 23914584.016 23914579.964
+ 23.000 18.600
+ -24290917.921 6 -18927986.421 8 20301385.746 20301383.572 20301384.792
+ 41.300 48.900
+ 06 1 1 17 10 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6141425.010 6 -4785521.322 5 22182143.005 22182143.242 22182141.931
+ 39.700 35.600
+ -14241148.631 6 -11097008.906 5 22059388.511 22059389.828 22059387.745
+ 38.700 33.200
+ -17417217.853 7 -13571851.868 6 21173524.079 21173522.412 21173523.417
+ 47.000 38.000
+ -18153458.965 7 -14145545.403 7 21265673.020 21265672.091 21265672.284
+ 45.600 44.100
+ -2804123.392 3 -2185029.095 2 24156379.751 24156380.784 24156377.975
+ 23.800 13.900
+ -14202837.392 6 -11067132.124 5 21740403.343 21740405.246 21740403.032
+ 40.000 35.100
+ -6343659.227 3 -4943128.555 3 23955535.234 23955537.420 23955533.898
+ 23.800 18.600
+ -24314338.890 6 -18946236.517 8 20296928.887 20296926.694 20296927.989
+ 41.200 48.900
+ 06 1 1 17 11 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6269852.604 6 -4885594.676 6 22157703.799 22157704.524 22157702.525
+ 38.600 36.500
+ -14047576.714 6 -10946173.739 5 22096224.385 22096225.431 22096223.404
+ 37.300 33.200
+ -17310185.019 7 -13488449.681 6 21193891.874 21193890.083 21193891.119
+ 46.900 37.700
+ -18265983.347 7 -14233226.714 7 21244260.162 21244259.537 21244259.472
+ 45.700 44.400
+ -2979153.898 4 -2321416.378 1 24123072.179 24123072.772 24123071.078
+ 26.800 9.000
+ -14370966.585 6 -11198141.793 5 21708410.963 21708411.179 21708409.616
+ 40.300 35.200
+ -6128083.746 3 -4775147.884 3 23996557.383 23996560.562 23996555.999
+ 21.600 19.900
+ -24336072.390 6 -18963171.704 8 20292793.062 20292790.904 20292792.103
+ 41.200 48.900
+ 06 1 1 17 12 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6397497.583 6 -4985058.204 6 22133413.560 22133414.007 22133412.444
+ 39.100 36.100
+ -13852559.104 6 -10794212.070 5 22133335.750 22133335.975 22133334.143
+ 36.900 32.100
+ -17201294.796 7 -13403600.179 6 21214612.911 21214611.247 21214612.170
+ 46.900 37.900
+ -18377358.126 7 -14320012.213 7 21223066.081 21223065.548 21223065.477
+ 45.700 44.400
+ -3153419.341 4 -2457207.505 2 24089909.698 24089911.644 24089909.018
+ 25.600 12.600
+ -14537520.964 6 -11327924.356 5 21676715.715 21676717.018 21676715.018
+ 41.100 35.400
+ -5912164.844 3 -4606899.723 3 24037645.857 24037648.871 24037644.318
+ 23.800 19.300
+ -24356108.963 6 -18978784.613 8 20288980.313 20288978.079 20288979.374
+ 41.400 48.900
+ 06 1 1 17 13 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6524357.659 6 -5083910.142 6 22109273.379 22109273.517 22109272.165
+ 40.000 37.000
+ -13656120.519 6 -10641143.133 5 22170716.271 22170717.064 22170715.337
+ 37.300 32.000
+ -17090562.988 7 -13317315.682 6 21235684.346 21235683.152 21235683.739
+ 46.600 38.100
+ -18487579.397 7 -14405898.870 7 21202091.765 21202091.091 21202091.294
+ 46.200 44.600
+ -3326894.896 4 -2592383.033 2 24056899.066 24056900.714 24056897.750
+ 26.500 17.800
+ -14702484.115 6 -11456466.992 6 21645324.297 21645325.440 21645323.455
+ 40.600 36.000
+ -5695924.240 3 -4438400.774 2 24078793.587 24078797.847 24078793.746
+ 23.400 17.000
+ -24374440.052 6 -18993068.573 8 20285492.069 20285489.821 20285491.205
+ 41.400 48.800
+ 06 1 1 17 14 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6650430.719 6 -5182148.850 6 22085282.351 22085282.516 22085281.097
+ 39.800 36.400
+ -13458286.530 6 -10486986.894 5 22208362.556 22208363.840 22208361.801
+ 36.700 31.300
+ -16978006.006 7 -13229608.969 6 21257103.126 21257102.002 21257102.584
+ 46.400 38.200
+ -18596644.773 7 -14490884.830 7 21181337.513 21181336.581 21181336.829
+ 46.400 44.700
+ -3499554.641 4 -2726922.849 2 24024043.055 24024043.896 24024041.299
+ 24.600 15.100
+ -14865838.946 6 -11583756.373 6 21614239.208 21614239.909 21614238.106
+ 41.300 36.000
+ -5479383.848 2 -4269668.270 2 24119999.748 24120004.229 24119999.672
+ 15.100 15.100
+ -24391056.173 6 -19006016.194 8 20282330.218 20282327.885 20282329.264
+ 41.300 49.000
+ 06 1 1 17 15 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6775714.302 6 -5279772.400 6 22061441.464 22061441.885 22061440.383
+ 40.500 37.700
+ -13259081.849 6 -10331762.583 5 22246269.883 22246271.304 22246269.326
+ 37.200 31.100
+ -16863640.243 7 -13140492.816 6 21278866.539 21278865.024 21278865.712
+ 46.100 37.600
+ -18704549.987 7 -14574966.766 7 21160803.531 21160802.737 21160803.008
+ 46.200 44.700
+ -3671373.411 4 -2860807.369 2 23991347.393 23991347.422 23991345.462
+ 25.600 13.900
+ -15027569.328 6 -11709779.934 6 21583462.367 21583463.620 21583461.660
+ 41.500 36.200
+ -5262566.722 3 -4100720.146 3 24161260.798 24161263.877 24161259.719
+ 23.800 21.600
+ -24405948.422 6 -19017620.545 8 20279496.107 20279493.982 20279495.152
+ 41.300 48.800
+ 06 1 1 17 16 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -6900206.152 6 -5376779.016 6 22037751.537 22037751.821 22037750.293
+ 40.500 37.100
+ -13058531.472 6 -10175489.675 5 22284433.811 22284434.656 22284432.948
+ 37.100 31.000
+ -16747482.242 7 -13049980.102 6 21300970.349 21300969.127 21300969.831
+ 46.300 37.500
+ -18811293.594 7 -14658143.563 7 21140490.926 21140490.095 21140490.377
+ 46.400 44.900
+ -3842325.904 4 -2994016.925 2 23958815.468 23958816.602 23958814.291
+ 28.600 13.900
+ -15187658.393 7 -11834524.540 6 21552998.233 21552999.558 21552997.589
+ 42.200 36.600
+ -5045495.144 3 -3931573.758 3 24202568.212 24202571.402 24202567.185
+ 20.500 19.900
+ -24419108.390 6 -19027875.064 8 20276991.988 20276989.637 20276991.050
+ 41.300 48.700
+ 06 1 1 17 17 0.0000000 0 8G07G08G11G17G20G24G27G28
+ -7023904.078 6 -5473166.973 6 22014212.262 22014212.738 22014211.265
+ 40.300 37.600
+ -12856660.889 6 -10018188.024 5 22322848.620 22322849.701 22322847.677
+ 36.500 30.600
+ -16629548.628 7 -12958083.803 6 21323412.595 21323411.297 21323411.810
+ 46.000 37.400
+ -18916871.391 7 -14740411.953 7 21120399.944 21120399.443 21120399.438
+ 46.100 45.100
+ -4012386.702 4 -3126531.704 2 23926452.963 23926454.822 23926452.442
+ 28.100 15.100
+ -15346090.234 6 -11957977.793 6 21522849.578 21522850.698 21522848.947
+ 41.900 36.400
+ -4828190.922 3 -3762246.041 2 24243920.655 24243923.304 24243919.622
+ 23.800 13.900
+ -24430527.398 6 -19036772.991 8 20274819.017 20274816.701 20274818.086
+ 41.300 48.700
+ 06 1 1 17 18 0.0000000 0 7G07G08G11G17G20G24G28
+ -7146805.789 6 -5568934.500 6 21990825.037 21990825.495 21990823.948
+ 40.900 37.800
+ -12653495.121 5 -9859877.146 4 22361509.718 22361510.847 22361508.658
+ 34.700 29.900
+ -16509856.078 7 -12864816.895 6 21346189.231 21346188.003 21346188.618
+ 46.100 37.200
+ -19021280.823 7 -14821769.931 7 21100531.758 21100530.785 21100531.196
+ 46.500 45.000
+ -4181530.337 4 -3258331.843 2 23894267.123 23894267.598 23894265.261
+ 28.600 15.100
+ -15502849.086 6 -12080127.419 6 21493019.244 21493020.193 21493018.540
+ 41.800 36.200
+ -24440197.086 6 -19044307.806 8 20272978.770 20272976.585 20272977.926
+ 41.300 48.700
+ 06 1 1 17 19 0.0000000 0 7G07G08G11G17G20G24G28
+ -7268909.000 6 -5664079.804 6 21967589.502 21967589.812 21967588.282
+ 40.500 38.200
+ -12449059.484 5 -9700576.779 5 22400412.762 22400413.870 22400411.868
+ 35.300 30.200
+ -16388422.171 7 -12770193.090 6 21369297.528 21369295.949 21369296.816
+ 46.000 37.000
+ -19124519.208 7 -14902215.408 7 21080886.189 21080885.131 21080885.544
+ 46.700 45.100
+ -4349732.140 4 -3389398.054 2 23862258.966 23862260.053 23862257.399
+ 27.400 17.000
+ -15657919.444 6 -12200961.342 6 21463510.414 21463511.338 21463509.627
+ 41.900 36.700
+ -24448109.345 6 -19050473.196 8 20271473.120 20271471.014 20271472.191
+ 41.400 48.700
+ 06 1 1 17 20 0.0000000 0 7G07G08G11G17G20G24G28
+ -7390211.499 6 -5758601.168 6 21944506.184 21944506.746 21944505.145
+ 41.000 38.300
+ -12243379.925 5 -9540307.095 5 22439552.317 22439553.574 22439551.396
+ 35.600 30.200
+ -16265263.193 7 -12674225.081 6 21392733.738 21392732.407 21392732.985
+ 45.600 36.600
+ -19226583.029 7 -14981745.628 7 21061464.003 21061463.044 21061463.301
+ 46.400 45.200
+ -4516966.112 5 -3519710.109 2 23830433.873 23830435.894 23830434.176
+ 30.400 15.100
+ -15811285.506 7 -12320467.249 6 21434325.415 21434326.465 21434324.822
+ 42.100 36.600
+ -24454255.458 6 -19055262.367 8 20270303.608 20270301.439 20270302.749
+ 41.100 48.600
+ 06 1 1 17 21 0.0000000 0 7G07G08G11G17G20G24G28
+ -7510711.212 6 -5852496.988 6 21921576.201 21921576.353 21921574.907
+ 41.200 38.300
+ -12036481.582 5 -9379087.724 4 22478923.828 22478924.887 22478922.850
+ 34.600 29.500
+ -16140396.866 7 -12576926.675 6 21416494.869 21416493.709 21416494.331
+ 46.000 36.800
+ -19327469.688 7 -15060358.575 7 21042265.632 21042264.991 21042265.061
+ 46.500 45.600
+ -4683206.861 4 -3649248.178 3 23798800.699 23798801.622 23798799.037
+ 27.600 19.900
+ -15962932.179 7 -12438633.374 6 21405468.378 21405469.217 21405467.606
+ 42.900 37.100
+ -24458627.057 6 -19058668.799 8 20269471.759 20269469.460 20269470.787
+ 41.100 48.500
+ 06 1 1 17 22 0.0000000 0 7G07G08G11G17G20G24G28
+ -7630405.983 6 -5945765.589 6 21898798.609 21898799.299 21898797.538
+ 41.200 38.600
+ -11828389.271 5 -9216937.986 4 22518522.519 22518523.801 22518521.635
+ 34.500 29.200
+ -16013839.870 7 -12478310.857 6 21440578.183 21440576.742 21440577.555
+ 46.200 36.600
+ -19427176.282 7 -15138051.984 7 21023292.299 21023291.472 21023291.654
+ 46.600 45.600
+ -4848428.914 4 -3777992.420 3 23767359.301 23767360.731 23767357.872
+ 28.800 19.300
+ -16112844.285 7 -12555447.886 6 21376940.595 21376941.537 21376940.007
+ 42.700 37.100
+ -24461216.675 6 -19060686.673 8 20268978.986 20268976.678 20268978.016
+ 41.000 48.500
+ 06 1 1 17 23 0.0000000 0 7G07G08G11G17G20G24G28
+ -7749293.386 6 -6038405.085 6 21876175.076 21876175.143 21876174.011
+ 41.600 37.900
+ -11619129.431 5 -9053878.484 4 22558343.534 22558344.882 22558342.625
+ 33.900 29.200
+ -15885609.880 7 -12378391.402 6 21464979.813 21464978.186 21464979.039
+ 45.700 36.900
+ -19525699.723 7 -15214823.453 7 21004543.860 21004543.017 21004543.336
+ 46.800 45.900
+ -5012607.800 4 -3905923.785 3 23736115.670 23736118.122 23736115.289
+ 27.100 19.900
+ -16261006.840 7 -12670899.120 6 21348746.051 21348747.167 21348745.565
+ 42.800 37.300
+ -24462016.742 6 -19061310.090 8 20268826.780 20268824.455 20268825.812
+ 40.900 48.500
+ 06 1 1 17 24 0.0000000 0 7G07G08G11G17G20G24G28
+ -7867371.465 6 -6130413.931 6 21853705.526 21853705.971 21853704.454
+ 41.600 38.600
+ -11408727.897 5 -8889929.373 4 22598382.164 22598383.103 22598381.035
+ 34.500 29.500
+ -15755725.091 7 -12277182.501 6 21489695.747 21489694.419 21489695.041
+ 45.400 36.400
+ -19623038.054 7 -15290671.465 7 20986021.043 20986020.042 20986020.416
+ 46.900 45.800
+ -5175718.064 4 -4033022.422 3 23705076.857 23705079.416 23705076.548
+ 28.600 19.300
+ -16407405.670 7 -12784976.031 6 21320887.451 21320888.476 21320886.696
+ 43.200 38.100
+ -24461020.153 6 -19060533.511 8 20269016.248 20269014.133 20269015.277
+ 40.800 48.500
+ 06 1 1 17 25 0.0000000 0 7G07G08G11G17G20G24G28
+ -7984637.731 7 -6221790.199 6 21831390.902 21831391.157 21831389.590
+ 42.200 39.200
+ -11197209.908 5 -8725110.284 4 22638632.508 22638633.640 22638631.443
+ 33.400 28.400
+ -15624202.941 7 -12174697.728 6 21514723.754 21514722.182 21514723.029
+ 45.200 36.200
+ -19719188.286 7 -15365593.690 7 20967724.143 20967723.163 20967723.558
+ 46.900 45.700
+ -5337734.893 4 -4159269.068 2 23674246.846 23674247.957 23674245.967
+ 29.900 13.900
+ -16552025.226 7 -12897666.500 6 21293367.077 21293368.193 21293366.298
+ 43.100 38.400
+ -24458219.600 6 -19058351.249 8 20269549.101 20269547.040 20269548.177
+ 40.600 48.600
+ 06 1 1 17 26 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -157142.098 3 -122448.837 2 24433776.924 24433780.090 24433776.580
+ 18.600 12.600
+ -8101090.212 7 -6312532.353 6 21809230.416 21809230.665 21809229.214
+ 42.100 39.100
+ -10984601.404 5 -8559441.466 4 22679090.433 22679091.743 22679089.493
+ 34.000 27.600
+ -15491060.559 7 -12070950.437 5 21540059.786 21540058.429 21540059.158
+ 45.300 35.800
+ -19814147.462 7 -15439587.824 7 20949653.787 20949653.099 20949653.254
+ 46.700 46.100
+ -5498633.502 4 -4284644.341 2 23643629.581 23643629.696 23643628.104
+ 29.900 17.800
+ -16694852.415 7 -13008960.330 6 21266188.251 21266188.751 21266187.194
+ 42.800 37.800
+ -24453607.959 6 -19054757.755 8 20270426.680 20270424.667 20270425.782
+ 40.900 48.500
+ 06 1 1 17 27 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -392564.128 4 -305894.374 2 24388978.048 24388980.950 24388977.718
+ 24.200 13.900
+ -8216726.554 7 -6402638.554 6 21787225.677 21787225.617 21787224.501
+ 42.400 38.700
+ -10770927.707 5 -8392942.620 5 22719751.278 22719752.896 22719750.281
+ 33.100 30.100
+ -15356316.041 7 -11965954.735 6 21565700.581 21565699.568 21565699.952
+ 44.700 36.000
+ -19907913.178 7 -15512651.991 7 20931810.718 20931809.948 20931810.333
+ 47.000 46.200
+ -5658388.153 5 -4409128.224 3 23613228.429 23613229.088 23613227.243
+ 30.100 18.600
+ -16835873.297 7 -13118846.626 6 21239352.436 21239353.390 21239351.637
+ 43.100 38.400
+ -24447177.788 6 -19049747.225 8 20271650.424 20271648.188 20271649.439
+ 40.800 48.400
+ 06 1 1 17 28 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -627620.804 3 -489055.217 3 24344247.632 24344250.796 24344247.426
+ 19.900 18.600
+ -8331544.592 7 -6492107.123 6 21765376.152 21765376.477 21765375.038
+ 42.200 39.200
+ -10556215.138 5 -8225634.283 4 22760610.091 22760611.371 22760608.957
+ 32.100 28.100
+ -15219987.268 7 -11859724.559 5 21591643.400 21591642.085 21591642.714
+ 44.900 35.500
+ -20000482.449 7 -15584783.861 7 20914195.710 20914194.517 20914194.968
+ 46.900 46.100
+ -5816974.605 5 -4532701.754 3 23583049.284 23583051.142 23583048.851
+ 30.100 21.100
+ -16975073.184 7 -13227313.965 6 21212863.216 21212864.311 21212862.623
+ 43.400 38.400
+ -24438922.637 6 -19043314.634 8 20273221.194 20273219.099 20273220.234
+ 41.000 48.300
+ 06 1 1 17 29 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -862294.171 2 -671917.342 2 24299590.651 24299593.872 24299590.081
+ 16.100 17.800
+ -8445542.216 7 -6580936.402 6 21743683.358 21743683.553 21743682.242
+ 42.600 39.400
+ -10340489.297 5 -8057536.376 4 22801661.407 22801662.682 22801660.362
+ 33.500 27.900
+ -15082092.317 7 -11752273.993 5 21617884.149 21617882.670 21617883.349
+ 44.700 35.600
+ -20091853.099 7 -15655981.737 7 20896808.161 20896807.223 20896807.675
+ 46.900 46.200
+ -5974367.958 5 -4655345.650 3 23553099.453 23553099.696 23553098.103
+ 30.200 19.900
+ -17112439.384 7 -13334352.464 6 21186723.938 21186724.422 21186722.908
+ 43.400 38.500
+ -24428835.600 6 -19035454.611 8 20275140.884 20275138.667 20275139.897
+ 40.700 48.400
+ 06 1 1 17 30 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1096566.389 3 -854467.053 3 24255010.280 24255013.465 24255009.841
+ 21.100 19.300
+ -8558717.129 7 -6669124.602 6 21722146.678 21722147.171 21722145.603
+ 42.400 40.000
+ -10123775.829 5 -7888668.883 4 22842900.067 22842901.860 22842899.574
+ 32.300 27.600
+ -14942648.986 7 -11643616.901 5 21644419.283 21644417.809 21644418.613
+ 44.900 35.300
+ -20182022.402 7 -15726243.499 7 20879649.717 20879648.590 20879649.016
+ 47.100 46.400
+ -6130543.360 5 -4777040.479 3 23523379.611 23523380.323 23523378.161
+ 30.100 20.500
+ -17247959.140 7 -13439952.156 6 21160935.067 21160935.718 21160934.233
+ 43.800 38.900
+ -24416910.422 6 -19026162.266 8 20277410.125 20277407.993 20277409.141
+ 41.000 48.300
+ 06 1 1 17 31 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1330419.015 4 -1036689.822 3 24210510.126 24210512.565 24210509.773
+ 24.900 20.500
+ -8671067.047 7 -6756669.944 6 21700767.478 21700767.456 21700766.197
+ 42.600 39.800
+ -9906101.443 5 -7719052.635 4 22884322.966 22884324.320 22884321.933
+ 31.300 26.800
+ -14801675.311 7 -11533767.342 5 21671245.554 21671244.089 21671245.027
+ 44.600 34.600
+ -20270987.890 7 -15795567.226 7 20862720.004 20862719.128 20862719.436
+ 47.000 46.600
+ -6285476.427 5 -4897767.321 2 23493896.857 23493896.784 23493895.699
+ 30.100 17.000
+ -17381618.904 7 -13544102.513 6 21135500.483 21135500.948 21135499.553
+ 44.000 38.900
+ -24403141.278 6 -19015433.064 8 20280030.186 20280028.121 20280029.262
+ 40.800 48.300
+ 06 1 1 17 32 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1563834.120 4 -1218571.712 3 24166093.473 24166095.172 24166092.716
+ 24.900 18.600
+ -8782590.146 7 -6843571.021 6 21679545.187 21679545.313 21679544.047
+ 43.000 40.100
+ -9687491.366 4 -7548707.270 4 22925922.396 22925924.245 22925921.674
+ 29.700 25.900
+ -14659189.618 7 -11422739.582 5 21698360.013 21698358.507 21698359.252
+ 44.300 34.900
+ -20358747.002 7 -15863950.917 7 20846019.970 20846019.060 20846019.369
+ 47.100 46.800
+ -6439142.231 5 -5017506.720 3 23464654.246 23464655.315 23464653.125
+ 30.400 19.900
+ -17513406.551 7 -13646794.088 6 21110421.785 21110422.520 21110421.066
+ 44.100 38.900
+ -24387522.103 6 -19003262.280 8 20283002.374 20283000.434 20283001.422
+ 41.000 48.200
+ 06 1 1 17 33 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -1796793.541 3 -1400098.559 1 24121761.896 24121764.251 24121761.394
+ 19.900 11.000
+ -8893283.964 7 -6929825.909 6 21658480.891 21658480.881 21658479.787
+ 43.400 40.000
+ -9467971.274 5 -7377652.804 4 22967696.117 22967698.107 22967695.074
+ 31.800 27.400
+ -14515209.923 7 -11310547.671 5 21725758.268 21725756.998 21725757.568
+ 44.000 35.100
+ -20445297.260 7 -15931392.646 7 20829550.032 20829549.004 20829549.294
+ 47.000 46.800
+ -6591516.169 5 -5136239.472 3 23435657.998 23435659.481 23435657.219
+ 30.800 19.300
+ -17643309.051 7 -13748016.732 6 21085702.423 21085702.812 21085701.565
+ 44.100 39.200
+ -24370046.572 6 -18989644.991 7 20286327.815 20286325.858 20286326.919
+ 40.600 47.900
+ 06 1 1 17 34 0.0000000 0 8G04G07G08G11G17G20G24G28
+ -2029279.360 3 -1581256.289 1 24077521.675 24077523.637 24077521.007
+ 20.500 11.000
+ -9003146.124 7 -7015432.756 6 21637574.677 21637574.740 21637573.609
+ 43.500 40.000
+ -9247566.579 5 -7205909.037 4 23009637.726 23009639.861 23009636.864
+ 30.400 25.900
+ -14369754.539 7 -11197205.860 5 21753437.591 21753436.257 21753436.899
+ 44.100 34.500
+ -20530636.047 7 -15997890.375 7 20813310.465 20813309.674 20813309.966
+ 47.200 47.000
+ -6742574.653 5 -5253947.243 3 23406913.416 23406913.746 23406912.160
+ 31.800 20.500
+ -17771314.702 7 -13847761.319 6 21061343.848 21061344.110 21061342.817
+ 44.100 39.500
+ -24350709.402 6 -18974577.070 8 20290007.525 20290005.556 20290006.671
+ 40.700 48.000
+ 06 1 1 17 35 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2261273.387 4 -1762030.782 1 24033373.437 24033375.880 24033373.546
+ 24.900 11.000
+ -9112174.544 7 -7100389.930 6 21616827.403 21616827.448 21616826.137
+ 43.400 40.600
+ -9026303.893 4 -7033496.693 4 23051742.522 23051744.601 23051741.849
+ 29.700 25.600
+ -106426.462 3 -82929.528 4 24221335.665 24221337.990 24221334.520
+ 21.600 28.100
+ -14222841.709 7 -11082728.368 5 21781394.136 21781392.773 21781393.473
+ 43.800 34.400
+ -20614761.299 7 -16063442.497 7 20797301.787 20797300.954 20797301.246
+ 47.000 47.000
+ -6892292.837 5 -5370610.596 3 23378423.085 23378423.684 23378421.546
+ 31.000 20.500
+ -17897410.951 7 -13946018.071 6 21037348.392 21037348.624 21037347.485
+ 44.500 39.500
+ -24329505.130 6 -18958054.264 7 20294042.628 20294040.678 20294041.757
+ 41.000 47.900
+ 06 1 1 17 36 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2492757.755 4 -1942408.161 3 23989324.359 23989326.805 23989323.910
+ 28.100 21.600
+ -9220366.891 7 -7184695.622 6 21596239.074 21596238.948 21596237.883
+ 43.600 40.200
+ -8804209.280 4 -6860436.095 4 23094006.692 23094008.188 23094005.562
+ 29.700 26.800
+ -264545.979 4 -206139.420 3 24191246.426 24191247.895 24191245.690
+ 26.800 19.900
+ -14074489.844 7 -10967129.556 5 21809624.984 21809623.434 21809624.105
+ 43.600 34.100
+ -20697670.180 7 -16128046.788 7 20781524.956 20781523.902 20781524.185
+ 46.800 47.200
+ -7040646.581 5 -5486210.779 3 23350192.211 23350192.788 23350190.974
+ 32.600 21.100
+ -18021586.875 7 -14042778.450 6 21013718.323 21013718.753 21013717.418
+ 44.100 39.700
+ -24306428.372 6 -18940072.384 7 20298434.156 20298431.984 20298433.192
+ 41.100 47.800
+ 06 1 1 17 37 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2723714.740 3 -2122374.524 3 23945374.128 23945376.751 23945373.444
+ 22.600 22.600
+ -9327721.145 7 -7268348.250 6 21575810.020 21575810.155 21575808.922
+ 43.900 40.600
+ -8581307.844 4 -6686746.813 4 23136423.373 23136425.167 23136422.187
+ 28.800 26.500
+ -420822.444 4 -327913.271 2 24161507.476 24161509.532 24161506.769
+ 25.300 16.100
+ -13924717.353 7 -10850423.760 5 21838125.424 21838124.521 21838124.779
+ 43.400 35.100
+ -20779360.951 7 -16191701.903 7 20765979.635 20765978.697 20765979.116
+ 47.000 47.300
+ -7187611.903 5 -5600729.089 3 23322224.768 23322225.600 23322224.068
+ 31.000 21.600
+ -18143830.890 7 -14138033.454 6 20990456.026 20990456.394 20990455.146
+ 44.700 40.000
+ -24281474.372 6 -18920627.709 7 20303182.748 20303180.578 20303181.686
+ 40.800 47.600
+ 06 1 1 17 38 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -2954125.947 3 -2301915.538 3 23901526.840 23901530.858 23901527.000
+ 21.600 23.800
+ -9434234.828 7 -7351345.887 6 21555541.200 21555541.385 21555540.008
+ 43.800 41.100
+ -8357625.816 4 -6512449.284 4 23178988.591 23178990.581 23178987.777
+ 29.700 24.900
+ -575235.471 3 -448235.000 2 24132124.014 24132125.680 24132123.346
+ 23.400 17.000
+ -13773542.422 7 -10732625.169 5 21866892.628 21866891.929 21866892.164
+ 42.800 34.100
+ -20859830.801 7 -16254405.646 7 20750666.747 20750665.740 20750666.185
+ 47.100 47.400
+ -7333164.962 5 -5714146.923 3 23294527.231 23294527.507 23294525.943
+ 31.800 21.100
+ -18264131.444 7 -14231774.081 6 20967563.816 20967563.749 20967562.896
+ 45.100 40.000
+ -24254638.543 6 -18899716.680 7 20308289.238 20308287.297 20308288.345
+ 41.100 47.600
+ 06 1 1 17 39 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3183973.939 4 -2481017.712 3 23857789.333 23857791.937 23857789.087
+ 24.900 18.600
+ -9539905.625 7 -7433686.715 6 21535432.611 21535432.645 21535431.571
+ 44.200 40.700
+ -8133188.827 4 -6337563.466 3 23221698.120 23221699.208 23221696.823
+ 28.800 23.800
+ -727764.197 3 -567088.445 2 24103098.624 24103100.377 24103097.698
+ 22.600 16.100
+ -13620983.848 7 -10613748.411 5 21895923.831 21895922.690 21895923.267
+ 42.900 33.400
+ -20939077.772 7 -16316156.497 7 20735586.596 20735585.605 20735586.076
+ 47.400 47.600
+ -7477282.012 5 -5826445.789 3 23267102.218 23267103.220 23267101.603
+ 33.100 23.800
+ -18382477.772 7 -14323991.930 6 20945042.963 20945043.254 20945042.010
+ 44.800 40.200
+ -24225916.121 6 -18877335.576 7 20313754.925 20313752.981 20313753.986
+ 41.200 47.600
+ 06 1 1 17 40 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3413240.515 4 -2659667.007 3 23814161.483 23814164.156 23814161.367
+ 25.300 19.900
+ -9644731.401 7 -7515369.083 6 21515485.117 21515485.196 21515483.896
+ 43.900 41.400
+ -7908023.395 4 -6162110.053 4 23264545.595 23264547.455 23264544.138
+ 27.900 25.600
+ -878388.595 3 -684458.143 9 24074435.338 24074436.142 24074434.389
+ 23.400 -3.000
+ -13467059.850 7 -10493807.713 5 21925215.331 21925213.838 21925214.359
+ 43.000 33.500
+ -21017099.286 7 -16376952.447 7 20720739.534 20720738.490 20720738.837
+ 47.000 47.700
+ -7619939.382 5 -5937607.253 3 23239955.392 23239956.044 23239954.316
+ 32.000 22.600
+ -18498859.357 7 -14414678.801 6 20922896.294 20922896.429 20922895.267
+ 44.500 40.200
+ -24195302.818 6 -18853481.054 7 20319580.512 20319578.559 20319579.591
+ 41.100 47.500
+ 06 1 1 17 41 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3641907.815 4 -2837849.219 2 23770647.319 23770649.582 23770646.662
+ 25.300 15.100
+ -9748709.800 7 -7596391.152 6 21495698.472 21495698.483 21495697.329
+ 44.000 41.100
+ -7682154.353 4 -5986108.353 4 23307527.416 23307528.856 23307526.192
+ 29.200 25.600
+ -1027086.819 3 -800326.815 2 24046139.108 24046140.280 24046138.270
+ 23.800 12.600
+ -13311788.937 7 -10372817.456 5 21954762.185 21954760.929 21954761.517
+ 43.000 34.000
+ -21093893.130 7 -16436791.774 7 20706125.824 20706125.116 20706125.293
+ 47.000 47.900
+ -7761113.585 5 -6047613.012 3 23213091.171 23213091.469 23213090.101
+ 33.600 23.000
+ -18613266.460 7 -14503827.122 6 20901125.225 20901125.415 20901124.345
+ 44.800 40.300
+ -24162794.269 6 -18828149.725 7 20325766.542 20325764.745 20325765.801
+ 41.300 47.400
+ 06 1 1 17 42 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -3869958.090 4 -3015550.657 3 23727250.785 23727253.091 23727250.640
+ 27.100 19.300
+ -9851838.550 7 -7676751.140 6 21476073.319 21476073.820 21476072.231
+ 43.900 41.600
+ -7455607.480 5 -5809578.495 4 23350637.698 23350639.404 23350636.837
+ 30.400 24.600
+ -1173839.781 4 -914679.754 3 24018213.451 24018214.838 24018212.275
+ 27.100 21.100
+ -13155189.473 7 -10250791.971 5 21984561.965 21984560.789 21984561.306
+ 42.600 33.600
+ -21169456.955 7 -16495672.645 7 20691746.416 20691745.717 20691745.976
+ 47.000 47.800
+ -7900781.531 5 -6156445.060 3 23186512.989 23186513.589 23186511.946
+ 33.800 23.400
+ -18725688.846 7 -14591428.909 6 20879731.738 20879732.116 20879730.806
+ 44.600 40.600
+ -24128386.610 6 -18801338.561 7 20332314.247 20332312.221 20332313.330
+ 41.200 47.300
+ 06 1 1 17 43 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4097373.343 4 -3192757.230 3 23683974.986 23683977.214 23683974.574
+ 24.600 19.300
+ -9954115.401 7 -7756447.318 6 21456611.093 21456610.877 21456609.821
+ 44.100 41.300
+ -7228408.804 3 -5632540.719 4 23393872.317 23393874.087 23393870.937
+ 23.800 24.600
+ -1318626.632 5 -1027500.585 4 23990661.224 23990662.954 23990660.444
+ 30.400 25.300
+ -12997280.283 7 -10127745.903 5 22014611.269 22014609.769 22014610.613
+ 42.500 32.800
+ -21243788.621 7 -16553593.397 8 20677601.791 20677600.969 20677601.364
+ 47.400 48.100
+ -8038919.335 5 -6264084.788 3 23160226.780 23160226.695 23160225.122
+ 33.800 23.400
+ -18836116.490 7 -14677476.355 6 20858717.979 20858718.305 20858717.092
+ 44.700 40.700
+ -24092076.377 6 -18773044.878 7 20339224.039 20339221.883 20339223.020
+ 41.600 47.100
+ 06 1 1 17 44 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4324135.838 4 -3369455.042 3 23640823.471 23640825.928 23640822.856
+ 24.900 22.600
+ -10055537.933 7 -7835477.801 6 21437310.723 21437310.663 21437309.556
+ 44.000 41.300
+ -7000583.974 4 -5455015.048 3 23437225.574 23437227.853 23437224.951
+ 28.400 21.600
+ -1461428.758 4 -1138774.832 4 23963485.889 23963489.021 23963485.261
+ 27.100 28.400
+ -12838079.724 7 -10003693.569 5 22044905.786 22044904.675 22044905.297
+ 42.200 32.800
+ -21316885.960 7 -16610552.333 7 20663691.887 20663690.759 20663691.381
+ 47.300 47.900
+ -8175504.047 5 -6370514.320 3 23134234.997 23134234.582 23134233.545
+ 32.700 19.900
+ -18944540.459 7 -14761962.488 6 20838085.667 20838085.889 20838084.696
+ 44.800 40.700
+ -24053859.877 6 -18743265.798 7 20346496.171 20346494.268 20346495.268
+ 41.500 47.000
+ 06 1 1 17 45 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4550227.729 4 -3545630.204 4 23597799.831 23597801.546 23597799.358
+ 25.600 24.200
+ -10156103.770 7 -7913840.732 6 21418173.457 21418173.781 21418172.394
+ 44.100 41.800
+ -6772158.013 4 -5277020.973 3 23480693.698 23480695.881 23480693.094
+ 28.100 23.000
+ -1602226.260 3 -1248487.019 4 23936693.605 23936695.014 23936693.051
+ 23.400 26.500
+ -12677606.231 6 -9878649.324 5 22075443.127 22075442.326 22075442.372
+ 41.600 33.100
+ -21388747.163 7 -16666548.048 8 20650017.196 20650016.141 20650016.558
+ 47.400 48.100
+ -8310513.315 5 -6475716.217 3 23108543.510 23108543.494 23108542.343
+ 33.200 23.000
+ -19050951.727 7 -14844880.292 6 20817836.241 20817836.386 20817835.380
+ 45.100 40.700
+ -24013734.858 6 -18711999.559 7 20354131.596 20354129.816 20354130.691
+ 41.600 47.000
+ 06 1 1 17 46 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -4775631.415 4 -3721269.117 3 23554906.093 23554908.079 23554905.867
+ 25.300 22.600
+ -10255810.742 7 -7991534.431 6 21399200.038 21399199.975 21399198.912
+ 44.500 41.800
+ -6543156.988 4 -5098578.825 3 23524271.290 23524273.800 23524270.349
+ 26.500 23.000
+ -1741000.293 3 -1356622.438 4 23910283.972 23910289.701 23910283.699
+ 18.600 24.200
+ -12515878.107 6 -9752627.436 5 22106219.086 22106217.961 22106218.275
+ 41.400 32.800
+ -21459369.699 7 -16721578.579 8 20636578.017 20636576.940 20636577.506
+ 47.400 48.100
+ -8443924.003 5 -6579672.476 3 23083154.916 23083156.115 23083154.657
+ 33.600 23.000
+ -19155340.876 7 -14926222.426 6 20797971.660 20797971.663 20797970.724
+ 45.000 40.900
+ -23971697.087 6 -18679242.867 7 20362130.992 20362129.368 20362130.175
+ 41.700 46.800
+ 06 1 1 17 47 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5000329.144 4 -3896357.913 2 23512147.506 23512148.698 23512147.058
+ 26.800 17.800
+ -10354656.261 7 -8068556.864 7 21380390.500 21380390.375 21380389.335
+ 44.600 42.000
+ -6313606.716 4 -4919708.662 4 23567953.499 23567955.946 23567952.723
+ 28.400 24.600
+ -1877731.376 3 -1463165.988 3 23884266.494 23884268.205 23884265.592
+ 23.800 21.600
+ -12352914.447 6 -9625642.812 5 22137230.023 22137228.984 22137229.429
+ 41.800 32.400
+ -21528751.283 7 -16775642.130 8 20623375.114 20623374.178 20623374.643
+ 47.300 48.300
+ -8575713.851 5 -6682365.747 4 23058076.983 23058077.211 23058075.978
+ 34.500 24.600
+ -19257699.304 7 -15005982.195 6 20778493.315 20778493.611 20778492.418
+ 44.800 41.100
+ -23927744.036 6 -18644993.745 7 20370495.175 20370493.357 20370494.185
+ 41.900 46.700
+ 06 1 1 17 48 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5224303.498 4 -4070883.089 3 23469526.644 23469528.209 23469525.791
+ 25.600 22.600
+ -10452637.941 7 -8144906.174 7 21361744.803 21361745.061 21361743.786
+ 44.800 42.200
+ -6083532.329 4 -4740430.128 4 23611736.037 23611738.030 23611734.557
+ 25.900 24.200
+ -2012401.056 5 -1568103.366 3 23858640.058 23858640.800 23858639.383
+ 30.200 18.600
+ -12188733.143 6 -9497709.387 5 22168472.782 22168471.602 22168472.057
+ 41.300 32.400
+ -21596890.580 7 -16828737.665 8 20610408.699 20610407.644 20610408.134
+ 47.200 48.400
+ -8705860.058 5 -6783778.241 4 23033312.205 23033311.589 23033310.384
+ 35.100 24.600
+ -19358019.444 7 -15084153.697 6 20759403.114 20759403.264 20759402.135
+ 44.800 41.300
+ -23881873.474 7 -18609250.463 7 20379224.119 20379222.276 20379223.191
+ 42.000 46.600
+ 06 1 1 17 49 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5447536.964 4 -4244830.975 3 23427046.411 23427048.145 23427046.059
+ 27.400 23.400
+ -10549753.303 7 -8220580.447 6 21343264.520 21343264.374 21343263.352
+ 44.800 41.900
+ -5852959.282 4 -4560763.027 3 23655612.588 23655614.810 23655611.449
+ 25.900 23.000
+ -2144990.167 4 -1671419.414 1 23833408.879 23833409.863 23833408.079
+ 26.200 9.000
+ -12023353.182 6 -9368841.946 5 22199943.904 22199942.170 22199942.938
+ 40.900 31.300
+ -21663784.663 7 -16880862.915 8 20597679.104 20597678.259 20597678.547
+ 47.300 48.700
+ -8834340.665 5 -6883892.885 3 23008862.665 23008862.096 23008860.976
+ 34.600 23.000
+ -19456292.783 7 -15160730.285 6 20740702.025 20740702.518 20740701.125
+ 44.900 41.500
+ -23834083.005 6 -18572011.150 7 20388318.508 20388316.437 20388317.453
+ 41.900 46.300
+ 06 1 1 17 50 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5670011.784 3 -4418187.740 3 23384710.194 23384712.647 23384709.806
+ 23.800 23.800
+ -10646000.071 7 -8295577.895 7 21324949.372 21324949.511 21324948.266
+ 44.900 42.600
+ -5621912.891 4 -4380727.093 3 23699579.666 23699581.498 23699578.597
+ 27.100 22.600
+ -2275480.346 4 -1773100.096 3 23808577.903 23808578.316 23808576.787
+ 25.600 19.300
+ -11856792.951 6 -9239054.819 5 22231639.096 22231637.663 22231638.326
+ 40.600 31.600
+ -21729431.863 7 -16932016.563 8 20585186.933 20585185.786 20585186.300
+ 47.200 48.500
+ -8961134.081 5 -6982692.863 3 22984733.926 22984733.753 22984732.755
+ 34.700 23.400
+ -19552512.092 7 -15235706.341 6 20722392.360 20722392.455 20722391.378
+ 44.800 41.300
+ -23784370.937 7 -18533274.484 7 20397778.370 20397776.383 20397777.438
+ 42.100 46.200
+ 06 1 1 17 51 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -5891710.452 4 -4590939.744 3 23342522.375 23342524.277 23342522.106
+ 29.500 23.800
+ -10741375.666 7 -8369896.509 7 21306800.043 21306799.991 21306798.932
+ 45.000 42.400
+ -5390418.491 4 -4200342.009 3 23743630.754 23743633.871 23743630.064
+ 27.100 22.600
+ -2403853.984 4 -1873131.446 3 23784148.751 23784150.078 23784147.838
+ 27.900 21.100
+ -11689070.711 6 -9108362.232 5 22263555.593 22263554.284 22263554.890
+ 40.800 31.300
+ -21793830.448 7 -16982197.255 8 20572932.080 20572931.229 20572931.549
+ 47.000 48.700
+ -9086218.006 5 -7080160.779 4 22960930.599 22960931.470 22960929.928
+ 35.100 24.900
+ -19646669.869 7 -15309076.005 6 20704474.475 20704474.813 20704473.634
+ 45.100 41.800
+ -23732735.075 7 -18493038.761 7 20407604.347 20407602.321 20407603.360
+ 42.500 46.000
+ 06 1 1 17 52 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6112615.456 4 -4763073.334 4 23300485.997 23300487.112 23300485.098
+ 27.600 24.200
+ -10835877.748 7 -8443534.468 7 21288816.807 21288816.820 21288815.764
+ 45.000 42.700
+ -5158501.452 4 -4019627.559 3 23787763.326 23787766.408 23787762.521
+ 26.800 23.800
+ -2530093.360 4 -1971499.658 3 23760126.467 23760127.395 23760125.677
+ 29.200 23.000
+ -11520204.821 6 -8976778.469 5 22295689.657 22295688.582 22295688.891
+ 40.000 31.300
+ -21856977.774 7 -17031402.943 8 20560915.577 20560914.543 20560914.988
+ 47.000 48.600
+ -9209570.925 5 -7176279.878 4 22937457.374 22937457.994 22937456.572
+ 34.600 24.600
+ -19738758.716 7 -15380833.520 6 20686950.739 20686950.908 20686949.832
+ 45.000 41.900
+ -23679174.055 7 -18451302.920 7 20417796.701 20417794.694 20417795.708
+ 42.700 46.000
+ 06 1 1 17 53 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6332709.670 4 -4934575.090 4 23258602.290 23258604.569 23258601.962
+ 27.100 25.600
+ -10929503.544 7 -8516489.614 7 21271000.542 21271000.348 21270999.316
+ 45.100 42.700
+ -4926186.862 4 -3838603.447 3 23831972.377 23831974.268 23831971.206
+ 25.600 19.900
+ -2654180.798 4 -2068191.035 4 23736512.604 23736514.684 23736511.972
+ 25.900 26.500
+ -11350214.051 6 -8844318.216 5 22328037.772 22328036.965 22328037.105
+ 40.100 31.500
+ -21918871.904 7 -17079632.112 8 20549137.316 20549136.431 20549136.792
+ 46.900 48.700
+ -9331171.286 5 -7271033.352 4 22914318.538 22914318.539 22914316.799
+ 35.900 26.200
+ -19828772.656 7 -15450974.225 6 20669821.547 20669821.724 20669820.653
+ 45.200 41.900
+ -23623686.322 7 -18408065.741 7 20428355.898 20428353.685 20428354.742
+ 42.600 45.700
+ 06 1 1 17 54 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6551975.660 4 -5105431.539 4 23216877.900 23216879.395 23216877.307
+ 29.500 24.900
+ -11022250.847 7 -8588760.217 7 21253351.177 21253351.057 21253350.052
+ 45.300 42.700
+ -4693499.928 4 -3657289.154 3 23876250.443 23876252.962 23876249.919
+ 24.200 19.300
+ -2776099.705 4 -2163192.675 4 23713312.429 23713313.859 23713311.676
+ 28.100 26.200
+ -11179116.342 6 -8710995.411 5 22360596.211 22360595.972 22360595.799
+ 39.300 31.300
+ -21979511.185 7 -17126883.487 8 20537598.198 20537597.317 20537597.668
+ 47.300 49.100
+ -9450998.418 6 -7364405.092 4 22891515.977 22891515.506 22891514.602
+ 36.000 25.900
+ -19916705.070 7 -15519492.958 7 20653088.425 20653088.719 20653087.584
+ 45.100 42.200
+ -23566270.827 7 -18363326.418 7 20439281.473 20439279.542 20439280.474
+ 42.700 45.600
+ 06 1 1 17 55 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6770395.982 4 -5275629.021 3 23175313.475 23175314.687 23175312.871
+ 26.200 23.800
+ -11114116.927 7 -8660344.156 7 21235869.484 21235869.414 21235868.416
+ 45.100 42.700
+ -4460465.105 4 -3475703.802 3 23920596.666 23920598.332 23920595.338
+ 24.600 18.600
+ -2895832.793 4 -2256491.080 4 23690528.372 23690528.982 23690527.340
+ 29.000 25.300
+ -11006930.011 6 -8576824.332 5 22393362.804 22393361.833 22393362.139
+ 39.800 31.100
+ -22038893.446 7 -17173155.355 8 20526298.220 20526297.082 20526297.549
+ 47.200 49.100
+ -9569030.857 6 -7456378.369 4 22869055.423 22869054.543 22869054.201
+ 36.800 25.600
+ -20002549.440 7 -15586384.659 7 20636753.007 20636753.027 20636752.035
+ 45.200 42.200
+ -23506927.048 7 -18317084.534 7 20450574.136 20450572.346 20450573.206
+ 42.800 45.600
+ 06 1 1 17 56 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -6987953.459 4 -5445154.128 4 23133913.844 23133914.984 23133913.436
+ 29.000 25.600
+ -11205099.231 7 -8731239.430 7 21218556.206 21218556.222 21218555.000
+ 45.000 43.300
+ -4227107.912 4 -3293867.227 3 23965002.407 23965005.338 23965001.416
+ 25.900 21.600
+ -3013363.843 4 -2348073.591 4 23668162.208 23668163.478 23668161.388
+ 25.300 24.600
+ -10833673.709 6 -8441819.514 5 22426332.158 22426331.520 22426331.572
+ 39.700 31.300
+ -22097017.393 7 -17218446.729 8 20515237.506 20515236.589 20515236.952
+ 47.300 49.400
+ -9685248.039 5 -7546937.133 4 22846939.006 22846939.645 22846938.253
+ 35.900 25.300
+ -20086299.940 7 -15651644.752 7 20620815.557 20620815.710 20620814.693
+ 44.800 42.400
+ -23445653.968 7 -18269339.295 7 20462233.885 20462232.195 20462233.126
+ 43.000 45.300
+ 06 1 1 17 57 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7204630.803 5 -5613993.423 4 23092681.125 23092682.521 23092680.869
+ 30.100 26.500
+ -11295195.097 7 -8801443.963 7 21201411.728 21201411.373 21201410.494
+ 45.400 43.200
+ -3993452.913 3 -3111798.580 4 24009465.272 24009469.241 24009464.229
+ 22.600 24.900
+ -3128676.394 3 -2437927.346 4 23646218.412 23646220.444 23646217.456
+ 23.400 25.600
+ -10659365.536 6 -8305995.038 5 22459502.058 22459501.265 22459501.313
+ 39.400 30.100
+ -22153880.577 7 -17262755.690 8 20504416.983 20504415.812 20504416.372
+ 47.500 49.300
+ -9799629.600 5 -7636065.573 3 22825173.005 22825172.801 22825171.907
+ 35.900 23.400
+ -20167951.003 7 -15715268.933 7 20605277.957 20605278.109 20605277.099
+ 45.100 42.200
+ -23382451.592 7 -18220090.709 7 20474260.677 20474259.237 20474260.075
+ 43.100 45.000
+ 06 1 1 17 58 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7420411.243 4 -5782133.800 4 23051618.959 23051620.798 23051618.445
+ 26.800 26.800
+ -11384402.077 7 -8870955.857 7 21184435.947 21184435.956 21184434.780
+ 45.200 43.500
+ -3759524.971 4 -2929517.332 3 24053980.174 24053983.434 24053979.591
+ 24.600 20.500
+ -3241754.571 4 -2526040.116 4 23624700.847 23624702.395 23624700.104
+ 29.200 27.100
+ -10484023.743 6 -8169365.155 5 22492868.846 22492867.966 22492867.941
+ 38.900 30.600
+ -22209480.375 7 -17306080.192 8 20493836.727 20493835.522 20493836.104
+ 47.400 49.500
+ -9912155.145 6 -7723747.742 4 22803760.398 22803760.659 22803759.117
+ 36.400 25.900
+ -20247497.481 7 -15777253.174 7 20590140.605 20590140.927 20590139.826
+ 44.800 42.400
+ -23317319.813 7 -18169338.700 7 20486655.064 20486653.367 20486654.331
+ 43.300 44.800
+ 06 1 1 17 59 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7635277.384 4 -5949561.718 4 23010731.529 23010733.026 23010731.022
+ 29.700 28.400
+ -11472717.294 7 -8939772.867 7 21167630.193 21167630.110 21167629.000
+ 45.400 43.500
+ -3525349.195 4 -2747042.900 2 24098543.166 24098545.425 24098542.320
+ 25.900 12.600
+ -3352582.387 5 -2612399.398 4 23603610.900 23603612.048 23603610.132
+ 30.400 25.300
+ -10307666.274 6 -8031943.842 4 22526428.734 22526427.689 22526427.734
+ 38.100 29.900
+ -22263815.724 7 -17348419.413 8 20483496.854 20483495.789 20483496.318
+ 47.400 49.600
+ -10022804.523 6 -7809967.944 4 22782703.924 22782704.028 22782703.009
+ 36.500 24.900
+ -20324934.709 7 -15837593.840 7 20575404.828 20575404.967 20575403.980
+ 44.800 42.400
+ -23250258.700 7 -18117083.307 7 20499416.570 20499414.620 20499415.628
+ 43.300 44.500
+ 06 1 1 18 0 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -7849212.430 4 -6116264.098 4 22970021.153 22970022.173 22970020.625
+ 29.900 24.900
+ -11560138.218 7 -9007893.032 7 21150994.362 21150994.272 21150993.294
+ 45.500 43.400
+ -3290950.034 3 -2564394.388 3 24143147.908 24143151.216 24143146.526
+ 20.500 18.600
+ -3461145.762 4 -2696994.149 3 23582951.882 23582952.828 23582951.225
+ 29.200 22.600
+ -10130310.757 6 -7893744.791 4 22560178.348 22560177.272 22560177.519
+ 38.300 29.000
+ -22316884.970 7 -17389772.059 8 20473397.969 20473396.995 20473397.444
+ 47.500 49.600
+ -10131557.797 6 -7894710.637 4 22762009.648 22762008.841 22762008.159
+ 37.200 24.900
+ -20400258.736 7 -15896287.860 7 20561071.330 20561071.221 20561070.339
+ 45.000 42.400
+ -23181268.837 7 -18063325.001 7 20512545.509 20512543.180 20512544.261
+ 43.400 44.600
+ 06 1 1 18 1 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8062199.598 5 -6282227.935 4 22929490.484 22929491.398 22929490.244
+ 31.100 24.600
+ -11646662.226 7 -9075314.317 7 21134529.501 21134529.297 21134528.402
+ 45.500 43.600
+ -3056351.263 3 -2381590.343 3 24187791.028 24187793.748 24187790.076
+ 22.600 19.300
+ -3567428.249 4 -2779811.614 3 23562727.370 23562727.524 23562726.175
+ 28.100 19.900
+ -9951976.746 6 -7754783.286 4 22594114.049 22594112.955 22594113.414
+ 37.900 29.000
+ -22368685.471 7 -17430136.074 8 20463540.922 20463539.755 20463540.414
+ 47.800 49.800
+ -10238396.214 5 -7977961.224 4 22741678.251 22741678.066 22741676.875
+ 35.900 26.800
+ -20473464.798 7 -15953331.515 7 20547140.618 20547140.594 20547139.656
+ 44.900 42.600
+ -23110350.747 7 -18008064.179 7 20526040.652 20526038.499 20526039.510
+ 43.500 44.700
+ 06 1 1 18 2 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8274222.186 4 -6447440.112 4 22889143.512 22889145.055 22889143.121
+ 28.800 27.400
+ -11732286.510 7 -9142034.517 7 21118235.829 21118235.489 21118234.634
+ 45.500 43.600
+ -2821578.089 3 -2198650.471 2 24232466.221 24232469.204 24232465.050
+ 22.600 15.100
+ -3671416.024 3 -2860840.971 3 23542938.810 23542939.535 23542937.610
+ 23.400 21.100
+ -9772681.109 6 -7615072.463 4 22628232.764 22628231.973 22628232.172
+ 37.200 28.800
+ -22419215.840 7 -17469510.381 8 20453925.238 20453924.147 20453924.583
+ 47.600 49.900
+ -10343299.918 6 -8059704.237 4 22721716.030 22721715.382 22721714.551
+ 36.700 25.900
+ -20544548.635 7 -16008721.491 7 20533613.583 20533613.829 20533612.823
+ 45.100 42.700
+ -23037505.215 7 -17951301.463 7 20539902.475 20539900.474 20539901.408
+ 43.600 44.300
+ 06 1 1 18 3 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8485263.111 5 -6611887.339 4 22848983.796 22848984.930 22848983.586
+ 31.500 27.600
+ -11817008.335 7 -9208051.515 7 21102113.739 21102113.595 21102112.702
+ 45.800 44.000
+ -2586655.028 3 -2015593.667 2 24277171.391 24277173.948 24277170.510
+ 23.000 16.100
+ -3773095.059 4 -2940071.332 4 23523589.023 23523590.981 23523588.278
+ 25.600 24.200
+ -9592441.789 6 -7474626.310 4 22662531.324 22662530.668 22662530.506
+ 37.300 29.200
+ -22468473.933 7 -17507893.307 8 20444551.706 20444550.654 20444551.076
+ 47.700 50.000
+ -10446250.102 6 -8139925.042 4 22702125.275 22702124.964 22702123.917
+ 37.500 27.100
+ -20613506.816 7 -16062455.120 7 20520491.255 20520491.456 20520490.513
+ 45.100 42.700
+ -22962733.913 7 -17893038.139 7 20554130.658 20554128.996 20554129.839
+ 43.600 44.100
+ 06 1 1 18 4 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8695305.882 4 -6775556.835 4 22809013.876 22809014.743 22809013.330
+ 29.700 26.500
+ -11900824.880 7 -9273363.094 7 21086164.101 21086163.677 21086162.892
+ 45.800 43.900
+ -2351605.788 3 -1832438.596 3 24321900.189 24321902.976 24321898.915
+ 23.800 18.600
+ -3872450.927 4 -3017491.451 3 23504682.692 23504684.082 23504681.788
+ 27.900 22.600
+ -9411276.943 6 -7333458.979 4 22697005.837 22697005.061 22697005.062
+ 36.800 28.400
+ -22516458.863 8 -17545284.154 8 20435420.509 20435419.401 20435420.012
+ 48.000 50.100
+ -10547228.603 6 -8218609.501 4 22682909.077 22682908.743 22682907.990
+ 37.100 25.600
+ -20680336.159 7 -16114529.905 7 20507774.158 20507774.266 20507773.345
+ 45.100 42.900
+ -22886037.623 7 -17833274.826 7 20568725.410 20568723.885 20568724.699
+ 43.600 44.000
+ 06 1 1 18 5 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -8904334.054 5 -6938435.700 4 22769236.716 22769238.044 22769236.421
+ 31.300 27.400
+ -11983733.205 7 -9337966.971 7 21070386.864 21070386.771 21070385.820
+ 45.700 44.000
+ -2116454.528 3 -1649204.033 2 24366647.746 24366650.993 24366646.957
+ 23.400 13.900
+ -3969470.394 4 -3093090.997 4 23486220.680 23486221.785 23486219.816
+ 27.600 24.600
+ -9229204.435 6 -7191584.399 4 22731653.582 22731652.703 22731652.629
+ 36.400 28.400
+ -22563167.737 8 -17581680.672 8 20426532.133 20426530.974 20426531.567
+ 48.000 50.200
+ -10646215.934 6 -8295742.412 4 22664072.748 22664072.292 22664071.683
+ 37.700 25.900
+ -20745033.177 7 -16164943.147 7 20495462.755 20495462.757 20495461.876
+ 44.800 42.900
+ -22807418.594 7 -17772013.277 7 20583686.337 20583684.577 20583685.451
+ 43.700 43.700
+ 06 1 1 18 6 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9112331.147 5 -7100511.200 4 22729655.613 22729656.988 22729655.464
+ 30.200 26.500
+ -12065730.824 7 -9401861.200 7 21054783.584 21054783.196 21054782.368
+ 45.900 44.100
+ -1881225.808 3 -1465909.113 2 24411411.387 24411413.521 24411410.237
+ 21.100 15.100
+ -4064140.486 4 -3166859.825 4 23468205.289 23468206.952 23468204.657
+ 27.100 26.800
+ -9046242.233 6 -7049016.538 4 22766470.080 22766469.558 22766469.254
+ 36.200 29.200
+ -22608599.129 7 -17617081.744 8 20417886.806 20417885.565 20417886.200
+ 47.900 50.100
+ -10743194.435 6 -8371310.007 4 22645618.050 22645617.885 22645616.823
+ 37.000 26.200
+ -20807595.762 7 -16213693.197 7 20483557.400 20483557.579 20483556.557
+ 44.900 43.200
+ -22726878.786 7 -17709255.015 7 20599012.537 20599010.766 20599011.690
+ 43.800 43.400
+ 06 1 1 18 7 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9319280.463 5 -7261770.250 4 22690275.232 22690275.938 22690274.724
+ 33.000 29.500
+ -12146814.453 7 -9465043.222 7 21039353.764 21039353.391 21039352.608
+ 45.800 44.100
+ -1645942.939 3 -1282571.975 3 24456184.066 24456186.784 24456182.844
+ 20.500 18.600
+ -4156448.381 4 -3238787.951 4 23450639.665 23450641.037 23450638.770
+ 26.800 26.500
+ -8862407.430 6 -6905768.737 4 22801452.564 22801452.181 22801451.815
+ 36.100 28.800
+ -22652751.619 7 -17651486.274 8 20409484.761 20409483.652 20409484.154
+ 47.700 50.300
+ -10838146.687 6 -8445298.720 4 22627549.048 22627549.194 22627548.166
+ 38.100 27.400
+ -20868021.975 7 -16260778.540 7 20472058.590 20472058.808 20472057.835
+ 45.000 43.200
+ -22644420.078 7 -17645001.509 7 20614703.978 20614702.254 20614703.027
+ 43.700 43.400
+ 06 1 1 18 8 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9525165.755 5 -7422200.178 4 22651096.332 22651096.890 22651095.758
+ 32.100 29.000
+ -12226981.547 7 -9527511.064 7 21024098.175 21024098.148 21024097.147
+ 45.800 44.500
+ -1410630.267 3 -1099211.584 2 24500962.044 24500965.095 24500961.417
+ 23.000 16.100
+ -4246381.183 4 -3308865.429 4 23433526.185 23433527.603 23433525.384
+ 28.400 28.800
+ -8677717.753 6 -6761854.791 4 22836597.699 22836597.364 22836597.163
+ 36.300 28.100
+ -22695623.139 7 -17684892.642 8 20401326.606 20401325.439 20401326.047
+ 47.700 50.300
+ -10931054.551 6 -8517694.404 4 22609869.031 22609869.066 22609868.182
+ 37.800 26.800
+ -20926309.241 7 -16306197.170 7 20460967.256 20460966.981 20460966.291
+ 45.100 43.200
+ -22560044.861 7 -17579254.616 7 20630759.872 20630758.235 20630759.057
+ 44.000 43.000
+ 06 1 1 18 9 0.0000000 0 9G04G07G08G09G11G17G20G24G28
+ -9729971.042 5 -7581788.541 4 22612122.744 22612123.815 22612122.480
+ 31.800 28.800
+ -12306228.936 7 -9589262.257 7 21009018.184 21009017.781 21009016.965
+ 45.900 44.400
+ -1175311.489 3 -915846.446 2 24545742.922 24545744.177 24545741.280
+ 21.100 12.600
+ -4333926.890 4 -3377082.789 4 23416866.734 23416868.153 23416865.738
+ 28.800 27.600
+ -8492190.931 6 -6617288.504 4 22871902.199 22871902.430 22871901.643
+ 36.100 28.600
+ -22737211.868 7 -17717299.427 8 20393412.366 20393411.570 20393411.783
+ 47.500 50.600
+ -11021901.027 6 -8588483.812 4 22592581.382 22592581.716 22592580.486
+ 38.000 27.100
+ -20982455.454 7 -16349947.446 7 20450282.473 20450282.769 20450281.692
+ 45.000 43.600
+ -22473755.948 7 -17512016.537 7 20647180.465 20647178.702 20647179.545
+ 44.300 43.100
+ 06 1 1 18 10 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -9933680.197 5 -7740522.794 4 22573358.367 22573359.169 22573357.934
+ 31.600 29.000
+ -12384553.696 7 -9650294.518 7 20994113.486 20994113.145 20994112.380
+ 46.100 44.600
+ -4419073.384 5 -3443430.684 4 23400664.101 23400664.711 23400663.367
+ 31.100 24.600
+ -8305844.433 6 -6472083.511 4 22907363.498 22907362.441 22907362.742
+ 36.000 26.200
+ -22777516.130 7 -17748705.334 8 20385742.800 20385741.663 20385742.247
+ 47.700 50.500
+ -11110669.021 6 -8657653.614 4 22575689.479 22575689.726 22575688.622
+ 38.300 27.100
+ -21036459.414 7 -16392028.434 7 20440006.064 20440006.185 20440005.181
+ 44.800 43.400
+ -22385556.595 7 -17443289.807 7 20663964.303 20663962.450 20663963.281
+ 43.800 43.000
+ 06 1 1 18 11 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10136276.878 5 -7898390.217 4 22534805.618 22534806.033 22534805.281
+ 33.900 28.400
+ -12461952.969 7 -9710605.625 7 20979384.675 20979384.560 20979383.475
+ 45.600 44.800
+ -4501809.418 4 -3507900.283 4 23384919.817 23384920.424 23384919.166
+ 29.900 24.600
+ -8118695.437 5 -6326253.175 4 22942976.333 22942975.614 22942975.807
+ 35.400 26.500
+ -22816534.087 7 -17779108.926 8 20378317.832 20378316.862 20378317.392
+ 47.800 50.700
+ -11197341.626 6 -8725190.654 4 22559196.556 22559196.258 22559195.516
+ 38.300 27.100
+ -21088320.233 7 -16432439.441 7 20430137.244 20430137.342 20430136.361
+ 44.900 43.400
+ -22295450.416 7 -17373077.234 7 20681111.219 20681109.275 20681110.021
+ 44.000 43.000
+ 06 1 1 18 12 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10337745.527 5 -8055378.658 5 22496466.997 22496468.078 22496466.471
+ 33.000 30.800
+ -12538423.565 7 -9770193.086 7 20964832.932 20964832.623 20964831.727
+ 45.600 44.900
+ -4582124.778 4 -3570483.662 4 23369636.253 23369637.384 23369635.374
+ 29.000 27.400
+ -7930761.356 5 -6179811.119 4 22978739.162 22978738.721 22978738.491
+ 33.900 27.600
+ -22854264.274 7 -17808509.068 8 20371138.289 20371137.048 20371137.673
+ 47.800 50.700
+ -11281902.538 6 -8791082.221 4 22543105.334 22543105.047 22543104.134
+ 38.800 27.900
+ -21138037.267 7 -16471179.975 7 20420676.450 20420676.345 20420675.535
+ 44.900 43.400
+ -22203440.147 7 -17301380.958 7 20698619.730 20698618.155 20698618.737
+ 44.000 42.700
+ 06 1 1 18 13 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10538070.144 5 -8211475.636 4 22458346.390 22458347.259 22458346.186
+ 34.900 29.700
+ -12613962.672 7 -9829054.703 7 20950458.105 20950457.958 20950456.936
+ 45.600 44.900
+ -4660008.368 4 -3631172.086 4 23354815.196 23354816.354 23354814.217
+ 27.100 26.500
+ -7742059.083 5 -6032770.454 4 23014648.286 23014647.806 23014647.631
+ 34.800 27.400
+ -22890704.804 7 -17836904.282 8 20364203.610 20364202.689 20364203.034
+ 47.800 50.900
+ -11364336.175 6 -8855316.151 4 22527418.440 22527418.371 22527417.223
+ 38.600 28.600
+ -21185610.148 7 -16508249.738 7 20411623.900 20411623.514 20411622.868
+ 45.100 43.400
+ -22109529.995 7 -17228204.254 7 20716490.281 20716488.947 20716489.408
+ 44.200 42.900
+ 06 1 1 18 14 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10737235.006 5 -8366668.942 5 22420446.707 22420447.407 22420446.101
+ 33.400 30.800
+ -12688566.977 7 -9887187.912 7 20936261.578 20936261.202 20936260.368
+ 45.600 44.900
+ -4735450.293 4 -3689957.908 4 23340459.279 23340460.293 23340458.583
+ 29.000 27.400
+ -7552606.292 5 -5885144.980 4 23050700.943 23050698.762 23050699.699
+ 34.400 25.600
+ -22925854.241 7 -17864293.449 8 20357515.075 20357513.931 20357514.552
+ 47.900 51.000
+ -11444626.405 6 -8917879.896 4 22512139.530 22512139.339 22512138.336
+ 38.800 28.400
+ -21231038.414 7 -16543648.372 7 20402979.026 20402978.876 20402978.109
+ 45.000 43.700
+ -22013723.277 7 -17153549.708 7 20734721.601 20734720.175 20734720.853
+ 44.400 42.300
+ 06 1 1 18 15 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -10935224.538 5 -8520946.400 5 22382770.265 22382771.076 22382770.012
+ 34.300 31.300
+ -12762233.400 7 -9944590.302 7 20922242.944 20922242.880 20922241.886
+ 45.700 44.900
+ -4808440.111 4 -3746832.985 4 23326569.563 23326570.615 23326568.785
+ 29.200 25.600
+ -7362419.444 5 -5736947.520 4 23086891.002 23086890.629 23086890.378
+ 34.000 26.500
+ -22959710.933 7 -17890675.279 8 20351072.277 20351071.161 20351071.690
+ 47.900 51.000
+ -11522758.095 6 -8978761.685 4 22497271.845 22497271.262 22497270.638
+ 39.000 27.400
+ -21274322.315 7 -16577376.083 7 20394742.347 20394742.266 20394741.426
+ 45.000 43.600
+ -21916025.064 7 -17077421.261 6 20753312.819 20753311.499 20753312.167
+ 44.400 41.900
+ 06 1 1 18 16 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11132023.304 5 -8674295.981 5 22345320.739 22345321.436 22345320.211
+ 33.800 31.300
+ -12834959.008 7 -10001259.598 7 20908403.771 20908403.808 20908402.681
+ 45.700 45.100
+ -4878969.265 5 -3801790.685 4 23313148.367 23313149.517 23313147.744
+ 30.200 27.100
+ -7171515.867 5 -5588191.575 4 23123219.434 23123218.527 23123218.816
+ 34.400 26.800
+ -22992273.149 7 -17916048.425 8 20344875.793 20344874.899 20344875.280
+ 47.900 51.100
+ -11598716.741 6 -9037950.186 4 22482817.378 22482816.651 22482816.246
+ 39.700 27.900
+ -21315462.591 7 -16609433.430 7 20386913.600 20386913.519 20386912.720
+ 45.100 43.700
+ -21816439.593 7 -16999822.227 6 20772263.335 20772262.016 20772262.605
+ 44.300 41.600
+ 06 1 1 18 17 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11327615.782 5 -8826705.636 4 22308100.836 22308101.100 22308100.147
+ 34.600 29.900
+ -12906740.431 7 -10057193.163 7 20894744.305 20894744.104 20894743.205
+ 45.600 45.200
+ -4947029.156 5 -3854824.284 4 23300196.695 23300197.910 23300196.015
+ 30.400 25.900
+ -6979912.677 5 -5438890.484 4 23159680.728 23159679.017 23159679.828
+ 33.900 24.900
+ -23023539.029 7 -17940411.440 8 20338926.009 20338925.179 20338925.497
+ 47.800 51.300
+ -11672486.562 6 -9095433.108 4 22468779.065 22468778.936 22468777.863
+ 39.300 28.800
+ -21354460.043 7 -16639821.052 7 20379492.639 20379492.561 20379491.755
+ 44.900 43.900
+ -21714971.553 7 -16920756.260 6 20791571.948 20791570.836 20791571.258
+ 44.000 41.600
+ 06 1 1 18 18 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11521986.644 5 -8978163.414 5 22271113.156 22271113.690 22271112.552
+ 34.400 31.000
+ -12977574.546 7 -10112388.566 7 20881265.170 20881264.828 20881263.974
+ 45.600 45.100
+ -5012610.995 5 -3905926.989 4 23287717.259 23287717.827 23287716.482
+ 30.200 25.300
+ -6787626.141 5 -5289056.901 4 23196270.362 23196270.379 23196269.735
+ 32.400 25.300
+ -23053507.309 7 -17963763.349 8 20333223.319 20333222.381 20333222.830
+ 47.900 51.300
+ -11744053.656 6 -9151199.615 4 22455160.025 22455159.999 22455159.244
+ 39.400 27.400
+ -21391315.328 7 -16668539.447 7 20372479.237 20372479.263 20372478.366
+ 44.900 44.000
+ -21611626.258 7 -16840227.498 6 20811238.351 20811236.765 20811237.540
+ 44.400 41.300
+ 06 1 1 18 19 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11715120.810 5 -9128657.495 5 22234360.602 22234361.942 22234360.353
+ 35.400 33.200
+ -13047457.943 7 -10166843.145 7 20867966.599 20867966.455 20867965.462
+ 45.500 45.300
+ -5075705.987 5 -3955091.915 4 23275710.663 23275711.068 23275709.926
+ 31.100 25.900
+ -6594672.960 5 -5138703.898 3 23232988.499 23232988.313 23232987.966
+ 32.300 23.400
+ -23082176.293 7 -17986102.816 8 20327767.777 20327766.849 20327767.148
+ 47.700 51.300
+ -11813404.460 6 -9205239.125 4 22441962.713 22441963.282 22441962.215
+ 39.800 29.000
+ -21426029.718 7 -16695589.625 7 20365873.301 20365873.273 20365872.345
+ 44.700 44.000
+ -21506408.700 7 -16758239.830 6 20831260.662 20831259.069 20831259.772
+ 44.300 41.100
+ 06 1 1 18 20 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -11907003.423 5 -9278176.348 5 22197846.762 22197847.387 22197846.288
+ 35.100 32.000
+ -13116387.388 7 -10220554.394 7 20854849.653 20854849.547 20854848.534
+ 45.300 45.100
+ -5136307.200 5 -4002313.593 4 23264178.691 23264179.370 23264177.937
+ 31.100 25.300
+ -6401069.749 5 -4987844.359 4 23269829.958 23269830.260 23269829.233
+ 31.800 25.900
+ -23109544.293 7 -18007428.535 8 20322559.900 20322558.929 20322559.273
+ 47.700 51.400
+ -11880524.827 6 -9257540.638 4 22429190.361 22429190.317 22429189.255
+ 39.300 28.100
+ -21458605.336 7 -16720973.217 7 20359674.619 20359674.288 20359673.599
+ 44.900 44.100
+ -21399324.427 7 -16674797.582 6 20851638.313 20851636.556 20851637.238
+ 44.300 41.100
+ 06 1 1 18 21 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12097619.493 5 -9426708.280 5 22161573.268 22161574.490 22161572.787
+ 34.600 33.000
+ -13184359.619 7 -10273519.754 7 20841914.932 20841914.999 20841913.917
+ 45.500 45.400
+ -5194407.494 4 -4047586.491 4 23253122.394 23253122.698 23253121.488
+ 29.500 25.600
+ -6206832.715 5 -4836490.949 3 23306791.960 23306791.965 23306791.362
+ 32.300 22.600
+ -23135609.596 7 -18027739.160 8 20317599.880 20317598.844 20317599.276
+ 47.900 51.400
+ -11945401.896 6 -9308094.120 4 22416845.404 22416844.489 22416844.030
+ 40.000 28.400
+ -21489044.304 7 -16744691.888 7 20353882.169 20353882.025 20353881.158
+ 44.800 44.100
+ -21290379.748 7 -16589905.669 6 20872369.940 20872368.042 20872368.766
+ 44.100 40.500
+ 06 1 1 18 22 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12286954.144 5 -9574241.691 5 22125543.924 22125544.996 22125543.617
+ 35.700 32.100
+ -13251371.361 7 -10325736.691 7 20829163.470 20829163.005 20829162.283
+ 45.800 45.600
+ -5249999.055 4 -4090904.586 4 23242543.059 23242544.460 23242542.305
+ 28.400 25.900
+ -6011978.554 5 -4684656.627 3 23343871.976 23343871.369 23343871.123
+ 31.800 23.800
+ -23160371.028 7 -18047033.791 8 20312887.904 20312886.935 20312887.326
+ 47.900 51.400
+ -12008022.073 6 -9356888.992 4 22404928.154 22404928.208 22404927.345
+ 39.800 29.500
+ -21517348.352 7 -16766746.980 7 20348495.852 20348495.955 20348495.013
+ 44.800 44.200
+ -21179580.340 7 -16503568.515 6 20893454.180 20893452.607 20893453.170
+ 44.300 40.700
+ 06 1 1 18 23 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12474992.765 6 -9720765.230 5 22089762.123 22089762.411 22089761.465
+ 36.300 33.500
+ -13317419.212 7 -10377202.543 7 20816594.720 20816594.495 20816593.589
+ 45.700 45.500
+ -5303076.190 5 -4132263.382 4 23232443.176 23232444.032 23232442.401
+ 30.600 25.300
+ -5816523.084 5 -4532353.778 3 23381066.205 23381066.272 23381065.351
+ 32.400 23.800
+ -23183826.846 8 -18065311.062 8 20308424.550 20308423.379 20308423.849
+ 48.000 51.400
+ -12068373.454 6 -9403915.982 4 22393444.115 22393443.774 22393442.819
+ 39.400 28.600
+ -21543520.436 7 -16787140.803 7 20343515.539 20343515.539 20343514.573
+ 44.600 44.100
+ -21066932.532 7 -16415791.049 6 20914890.274 20914888.964 20914889.309
+ 44.200 40.600
+ 06 1 1 18 24 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12661720.787 5 -9866267.517 5 22054228.216 22054228.820 22054227.851
+ 35.800 32.300
+ -13382499.715 7 -10427914.611 7 20804210.389 20804210.112 20804209.179
+ 45.700 45.500
+ -5353633.222 4 -4171658.479 4 23222822.363 23222823.287 23222821.535
+ 29.200 25.300
+ -5620482.862 5 -4379595.289 3 23418372.021 23418370.975 23418371.139
+ 31.800 22.600
+ -23205975.224 7 -18082569.544 8 20304209.685 20304208.739 20304209.109
+ 47.900 51.500
+ -12126443.689 6 -9449165.458 4 22382394.260 22382393.333 22382392.547
+ 39.700 29.200
+ -21567563.717 7 -16805875.828 7 20338940.324 20338940.235 20338939.366
+ 44.600 44.200
+ -20952442.785 7 -16326578.317 6 20936676.798 20936675.421 20936676.093
+ 44.100 40.000
+ 06 1 1 18 25 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -12847124.114 6 -10010737.604 5 22018947.390 22018947.946 22018947.104
+ 36.900 33.400
+ -13446609.428 7 -10477870.232 7 20792010.602 20792010.389 20792009.506
+ 45.700 45.700
+ -5401664.464 4 -4209085.418 4 23213682.855 23213683.304 23213681.932
+ 28.800 25.900
+ -5423874.045 5 -4226393.687 3 23455784.773 23455784.164 23455784.120
+ 30.200 21.600
+ -23226814.951 8 -18098808.294 8 20300243.929 20300243.003 20300243.387
+ 48.000 51.500
+ -12182220.933 6 -9492628.198 4 22371779.537 22371779.015 22371778.307
+ 40.200 28.800
+ -21589481.017 7 -16822954.237 7 20334769.416 20334769.527 20334768.553
+ 44.500 44.100
+ -20836118.057 7 -16235935.712 6 20958812.412 20958811.409 20958811.854
+ 44.200 40.200
+ 06 1 1 18 26 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13031188.185 6 -10154164.110 5 21983921.231 21983921.569 21983920.667
+ 36.500 33.200
+ -13509744.795 7 -10527066.618 7 20779996.558 20779996.151 20779995.295
+ 45.600 45.700
+ -5447164.810 4 -4244540.248 4 23205023.503 23205024.628 23205022.719
+ 27.900 26.200
+ -5226712.356 4 -4072761.328 4 23493302.661 23493303.854 23493302.361
+ 29.900 24.600
+ -23246344.410 8 -18114026.055 8 20296527.636 20296526.766 20296527.144
+ 48.200 51.600
+ -12235693.636 6 -9534295.192 4 22361604.257 22361603.410 22361602.766
+ 40.300 28.600
+ -21609275.859 7 -16838378.793 7 20331002.437 20331002.608 20331001.590
+ 44.400 44.100
+ -20717965.241 7 -16143868.629 6 20981296.119 20981295.349 20981295.614
+ 44.300 40.000
+ 06 1 1 18 27 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13213899.136 6 -10296536.239 5 21949152.236 21949152.959 21949151.789
+ 36.500 34.300
+ -13571902.503 7 -10575501.193 7 20768167.963 20768167.935 20768166.931
+ 45.600 45.800
+ -5490129.247 4 -4278019.028 4 23196848.229 23196849.378 23196847.319
+ 29.200 28.400
+ -5029013.677 4 -3918710.541 3 23530925.140 23530923.982 23530924.003
+ 29.700 23.400
+ -23264562.301 8 -18128221.814 8 20293061.006 20293059.959 20293060.468
+ 48.300 51.700
+ -12286850.778 6 -9574157.859 4 22351868.799 22351868.607 22351867.874
+ 40.700 29.000
+ -21626952.544 7 -16852152.829 7 20327638.778 20327638.877 20327637.846
+ 44.600 44.200
+ -20597991.729 7 -16050382.820 6 21004126.835 21004125.398 21004126.030
+ 44.400 39.300
+ 06 1 1 18 28 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13395242.819 6 -10437842.945 5 21914643.950 21914644.371 21914643.583
+ 37.200 34.400
+ -13633079.007 7 -10623171.196 7 20756526.664 20756526.485 20756525.537
+ 45.400 46.100
+ -5530553.898 4 -4309518.713 4 23189155.221 23189156.739 23189154.409
+ 29.700 26.500
+ -4830793.545 5 -3764253.413 3 23568645.797 23568644.721 23568644.721
+ 31.500 23.400
+ -23281467.009 8 -18141394.315 8 20289844.021 20289843.119 20289843.517
+ 48.100 51.600
+ -12335681.870 6 -9612208.033 4 22342577.047 22342576.221 22342575.849
+ 40.700 28.800
+ -21642515.037 7 -16864279.445 7 20324677.400 20324677.479 20324676.517
+ 44.600 44.300
+ -20476205.145 7 -15955484.227 6 21027302.275 21027300.716 21027301.321
+ 44.300 39.000
+ 06 1 1 18 29 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13575205.373 6 -10578073.433 5 21880398.109 21880398.583 21880397.597
+ 37.400 34.400
+ -13693270.557 7 -10670073.696 7 20745072.604 20745072.414 20745071.474
+ 45.500 46.000
+ -5568434.855 5 -4339036.333 4 23181946.964 23181947.899 23181946.026
+ 30.200 25.900
+ -4632067.570 4 -3609402.136 3 23606460.688 23606461.113 23606460.318
+ 29.900 23.800
+ -23297057.150 7 -18153542.483 8 20286877.262 20286876.469 20286876.630
+ 47.800 51.600
+ -12382176.595 6 -9648437.654 4 22333728.849 22333728.866 22333728.094
+ 40.700 29.700
+ -21655967.677 7 -16874762.024 7 20322117.566 20322117.520 20322116.672
+ 44.800 44.500
+ -20352613.447 7 -15859179.053 6 21050821.405 21050819.526 21050820.190
+ 44.000 39.100
+ 06 1 1 18 30 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13753773.184 6 -10717217.099 5 21846417.808 21846417.809 21846417.321
+ 38.100 33.600
+ -13752473.666 7 -10716205.983 7 20733806.527 20733806.360 20733805.356
+ 45.200 46.100
+ -5603768.810 4 -4366569.260 4 23175223.525 23175224.332 23175222.538
+ 29.900 27.600
+ -4432851.527 4 -3454168.963 3 23644370.615 23644370.440 23644369.718
+ 29.200 21.600
+ -23311330.962 8 -18164664.940 8 20284161.341 20284160.181 20284160.718
+ 48.200 51.600
+ -12426324.694 6 -9682838.749 4 22325328.109 22325327.622 22325326.801
+ 40.300 29.200
+ -21667314.506 7 -16883603.708 7 20319958.233 20319958.283 20319957.384
+ 44.600 44.400
+ -20227224.221 7 -15761473.210 6 21074682.009 21074680.487 21074681.003
+ 44.000 39.300
+ 06 1 1 18 31 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -13930932.842 6 -10855263.483 5 21812705.282 21812705.853 21812704.729
+ 38.100 35.500
+ -13810684.704 7 -10761565.229 7 20722729.387 20722729.164 20722728.198
+ 45.400 46.100
+ -5636553.208 5 -4392115.540 4 23168984.916 23168986.028 23168983.961
+ 31.000 29.000
+ -4233160.378 4 -3298565.619 3 23682371.254 23682370.555 23682370.251
+ 29.700 22.600
+ -23324287.348 8 -18174760.839 8 20281695.574 20281694.741 20281695.108
+ 48.300 51.600
+ -12468117.258 6 -9715404.353 4 22317375.246 22317374.757 22317373.965
+ 40.800 28.800
+ -21676561.052 7 -16890808.808 7 20318198.659 20318198.823 20318197.762
+ 44.700 44.600
+ -20100045.879 7 -15662373.256 6 21098882.917 21098881.660 21098881.992
+ 43.500 38.800
+ 06 1 1 18 32 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14106670.959 6 -10992202.183 5 21779262.994 21779263.507 21779262.515
+ 37.800 34.400
+ -13867899.907 7 -10806148.495 7 20711841.838 20711841.437 20711840.731
+ 45.600 46.200
+ -5666785.294 5 -4415672.987 4 23163232.051 23163232.884 23163231.189
+ 31.000 28.800
+ -4033009.785 4 -3142604.185 3 23720458.572 23720457.835 23720457.615
+ 28.400 18.600
+ -23335924.952 8 -18183829.121 8 20279481.332 20279480.112 20279480.630
+ 48.200 51.600
+ -12507544.831 6 -9746127.107 5 22309872.570 22309872.004 22309871.184
+ 40.700 30.100
+ -21683712.427 7 -16896381.304 7 20316837.903 20316837.867 20316837.036
+ 44.700 44.500
+ -19971087.159 7 -15561885.986 6 21123422.817 21123421.777 21123422.009
+ 43.600 38.900
+ 06 1 1 18 33 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14280974.161 6 -11128022.788 5 21746094.183 21746094.761 21746093.949
+ 38.800 35.300
+ -13924115.831 7 -10849953.105 7 20701144.065 20701143.974 20701142.896
+ 45.100 46.100
+ -5694463.911 5 -4437240.704 4 23157964.679 23157965.640 23157963.915
+ 31.300 28.400
+ -3832414.825 4 -2986296.534 3 23758630.402 23758630.359 23758629.667
+ 29.000 20.500
+ -23346242.212 8 -18191868.558 8 20277517.790 20277516.751 20277517.251
+ 48.000 51.300
+ -12544598.749 6 -9775000.275 4 22302821.135 22302820.442 22302820.046
+ 40.800 29.700
+ -21688774.242 7 -16900325.572 7 20315874.542 20315874.535 20315873.774
+ 44.700 44.100
+ -19840356.696 7 -15460018.147 6 21148299.903 21148298.941 21148299.266
+ 43.400 38.200
+ 06 1 1 18 34 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14453829.252 6 -11262714.995 5 21713201.019 21713201.558 21713200.785
+ 39.000 35.800
+ -13979328.418 7 -10892975.896 7 20690637.520 20690637.298 20690636.406
+ 45.500 46.100
+ -5719587.044 5 -4456817.144 4 23153183.521 23153184.617 23153182.761
+ 30.400 28.400
+ -3631390.365 4 -2829654.214 3 23796884.192 23796883.688 23796883.419
+ 28.800 20.500
+ -23355237.397 8 -18198877.811 8 20275806.187 20275804.968 20275805.612
+ 48.400 51.400
+ -12579270.461 6 -9802017.173 5 22296223.241 22296222.917 22296222.167
+ 41.000 30.600
+ -21691752.559 7 -16902646.336 7 20315307.694 20315307.840 20315306.881
+ 44.900 44.500
+ -19707863.718 7 -15356776.912 6 21173513.006 21173511.543 21173512.054
+ 43.500 38.300
+ 06 1 1 18 35 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14625223.765 6 -11396269.094 5 21680585.571 21680586.067 21680585.088
+ 38.200 35.500
+ -14033534.163 7 -10935214.141 7 20680322.606 20680322.334 20680321.470
+ 45.700 46.500
+ -5742153.469 5 -4474401.355 4 23148889.761 23148890.403 23148888.926
+ 31.000 28.100
+ -3429951.311 4 -2672688.818 3 23835216.653 23835216.960 23835215.896
+ 28.400 23.000
+ -23362909.617 8 -18204856.169 8 20274346.149 20274345.070 20274345.600
+ 48.400 51.500
+ -12611552.728 6 -9827172.166 4 22290080.141 22290079.803 22290078.906
+ 41.100 29.500
+ -21692653.085 7 -16903348.052 7 20315136.627 20315136.460 20315135.704
+ 44.900 44.500
+ -19573617.522 7 -15252169.535 6 21199058.826 21199057.631 21199058.115
+ 43.500 37.700
+ 06 1 1 18 36 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14795144.650 6 -11528674.929 5 21648250.957 21648251.063 21648250.497
+ 39.100 35.500
+ -14086729.061 7 -10976664.710 7 20670199.949 20670199.557 20670198.756
+ 45.600 46.400
+ -5762162.549 5 -4489992.821 4 23145081.735 23145082.934 23145081.023
+ 31.100 28.800
+ -3228112.438 4 -2515411.878 2 23873625.095 23873624.993 23873624.442
+ 26.800 17.800
+ -23369257.524 8 -18209802.596 8 20273138.095 20273137.126 20273137.650
+ 48.400 51.500
+ -12641437.798 6 -9850459.234 5 22284393.779 22284393.151 22284392.184
+ 41.200 30.100
+ -21691481.824 7 -16902435.379 7 20315359.521 20315359.412 20315358.587
+ 44.800 44.600
+ -19437626.947 7 -15146202.907 6 21224937.408 21224936.028 21224936.496
+ 43.100 37.600
+ 06 1 1 18 37 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -14963579.285 6 -11659922.635 6 21616198.742 21616199.263 21616198.334
+ 39.300 36.500
+ -14138909.537 7 -11017324.814 7 20660270.345 20660270.073 20660269.261
+ 45.700 46.500
+ -5779615.052 5 -4503592.199 4 23141760.832 23141761.850 23141759.972
+ 30.600 28.600
+ -3025888.566 5 -2357834.945 3 23912108.050 23912107.141 23912107.499
+ 30.400 21.100
+ -23374279.598 8 -18213715.901 8 20272182.634 20272181.442 20272182.016
+ 48.500 51.500
+ -12668918.786 6 -9871872.980 5 22279163.951 22279163.244 22279162.792
+ 41.200 30.200
+ -21688245.916 7 -16899913.898 7 20315975.047 20315975.166 20315974.190
+ 44.800 44.600
+ -19299902.005 7 -15038884.826 6 21251145.899 21251144.098 21251144.741
+ 43.100 37.200
+ 06 1 1 18 38 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15130515.586 6 -11790002.811 6 21584431.615 21584432.006 21584431.240
+ 39.100 36.400
+ -14190071.516 7 -11057191.281 7 20650534.565 20650534.088 20650533.435
+ 45.700 46.500
+ -5794511.118 5 -4515199.530 4 23138926.198 23138927.048 23138925.445
+ 31.600 28.600
+ -2823294.178 4 -2199969.274 3 23950659.681 23950660.045 23950659.093
+ 27.100 21.600
+ -23377974.360 8 -18216594.935 8 20271479.576 20271478.401 20271478.957
+ 48.400 51.600
+ -12693988.506 6 -9891407.819 5 22274393.350 22274392.740 22274392.222
+ 41.300 30.100
+ -21682951.365 7 -16895788.287 7 20316982.715 20316982.740 20316981.747
+ 44.800 44.600
+ -19160452.644 7 -14930223.042 6 21277682.148 21277680.525 21277681.176
+ 43.200 37.300
+ 06 1 1 18 39 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15295941.107 6 -11918905.773 6 21552952.483 21552952.710 21552951.961
+ 39.500 36.500
+ -14240211.265 7 -11096261.205 7 20640993.241 20640992.903 20640992.066
+ 45.500 46.600
+ -5806851.194 5 -4524815.174 4 23136577.377 23136579.033 23136576.729
+ 30.800 29.200
+ -2620343.575 4 -2041826.047 3 23989280.471 23989280.141 23989279.810
+ 27.100 18.600
+ -23380340.976 8 -18218439.054 8 20271029.154 20271028.108 20271028.597
+ 48.500 51.600
+ -12716641.148 6 -9909059.224 5 22270082.674 22270081.897 22270081.440
+ 41.200 30.200
+ -21675605.796 7 -16890064.472 7 20318380.612 20318380.511 20318379.652
+ 44.800 44.500
+ -19019288.968 7 -14820225.439 6 21304544.347 21304543.212 21304543.649
+ 43.100 36.700
+ 06 1 1 18 40 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15459843.715 6 -12046622.036 6 21521762.740 21521762.803 21521762.265
+ 40.300 36.400
+ -14289324.701 7 -11134531.411 7 20631647.191 20631646.856 20631646.072
+ 45.300 46.600
+ -5816636.381 5 -4532440.005 4 23134715.212 23134717.193 23134714.729
+ 30.400 29.000
+ -2417051.210 4 -1883416.482 2 24027966.211 24027965.246 24027965.400
+ 27.100 17.800
+ -23381377.903 8 -18219247.059 8 20270831.925 20270830.704 20270831.241
+ 48.400 51.500
+ -12736870.696 6 -9924822.517 4 22266232.768 22266232.512 22266231.807
+ 41.400 29.900
+ -21666216.832 7 -16882748.402 7 20320167.162 20320167.196 20320166.249
+ 44.800 44.700
+ -18876421.385 7 -14708900.113 6 21331730.834 21331730.102 21331730.441
+ 42.900 36.800
+ 06 1 1 18 41 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15622211.514 6 -12173142.333 6 21490865.094 21490865.481 21490864.646
+ 40.600 37.200
+ -14337408.051 7 -11171998.948 7 20622497.121 20622497.116 20622495.957
+ 45.100 46.900
+ -5823867.990 5 -4538075.020 4 23133339.486 23133340.773 23133338.759
+ 31.100 29.200
+ -2213431.395 4 -1724751.811 3 24066713.566 24066713.486 24066712.769
+ 27.600 20.500
+ -23381084.006 8 -18219018.059 8 20270887.792 20270886.678 20270887.181
+ 48.400 51.400
+ -12754671.894 6 -9938693.560 4 22262845.118 22262845.037 22262844.378
+ 41.400 29.900
+ -21654792.164 7 -16873846.067 7 20322341.163 20322341.273 20322340.318
+ 44.900 44.700
+ -18731860.730 7 -14596255.513 6 21359240.227 21359239.258 21359239.419
+ 42.500 36.800
+ 06 1 1 18 42 0.0000000 0 8G04G07G09G11G17G20G24G28
+ -15783033.004 6 -12298457.741 6 21460261.685 21460262.058 21460261.255
+ 40.600 36.900
+ -14384457.332 7 -11208660.726 7 20613544.154 20613543.772 20613542.887
+ 45.400 46.700
+ -5828549.183 5 -4541722.719 4 23132448.548 23132449.764 23132447.933
+ 30.100 29.000
+ -2009498.184 4 -1565842.879 2 24105520.613 24105520.378 24105519.933
+ 25.600 13.900
+ -23379457.785 8 -18217750.887 8 20271197.032 20271196.092 20271196.488
+ 48.200 51.400
+ -12770039.310 6 -9950668.165 5 22259921.588 22259920.690 22259920.127
+ 41.100 30.600
+ -21641339.333 7 -16863363.344 7 20324901.013 20324901.218 20324900.118
+ 44.800 44.600
+ -18585617.559 7 -14482299.870 6 21387070.217 21387068.399 21387068.941
+ 42.500 36.400
+ 06 1 1 18 43 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -147379.343 2 -114840.309 2 24795411.896 24795411.959 24795410.926
+ 17.800 13.900
+ -15942296.348 6 -12422558.996 6 21429954.774 21429955.066 21429954.418
+ 40.900 37.200
+ -14430468.387 7 -11244513.497 7 20604788.437 20604788.168 20604787.293
+ 45.500 46.700
+ -5830682.129 5 -4543384.725 5 23132042.484 23132044.240 23132041.635
+ 30.600 30.200
+ -1805265.484 4 -1406700.602 3 24144385.209 24144384.925 24144384.193
+ 25.900 20.500
+ -23376498.043 8 -18215444.605 8 20271760.141 20271759.349 20271759.685
+ 48.200 51.400
+ -12782969.296 6 -9960743.466 4 22257460.570 22257459.946 22257459.503
+ 41.400 29.700
+ -21625866.904 7 -16851306.912 7 20327845.483 20327845.514 20327844.575
+ 44.900 44.500
+ -18437702.891 7 -14367041.762 6 21415217.071 21415215.595 21415216.023
+ 42.400 36.300
+ 06 1 1 18 44 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -368161.700 3 -286878.176 3 24753399.091 24753398.563 24753397.912
+ 22.600 19.900
+ -16099990.256 6 -12545437.309 6 21399946.670 21399947.024 21399946.315
+ 41.200 38.000
+ -14475437.372 7 -11279554.272 7 20596230.974 20596230.893 20596229.827
+ 44.800 46.900
+ -5830269.914 5 -4543063.502 5 23132121.354 23132122.690 23132120.406
+ 31.100 30.600
+ -1600746.886 3 -1247335.545 2 24183303.438 24183303.487 24183302.331
+ 23.400 17.800
+ -23372203.525 8 -18212098.245 8 20272577.634 20272576.533 20272577.011
+ 48.200 51.300
+ -12793456.851 6 -9968915.574 5 22255465.116 22255464.355 22255463.954
+ 41.500 30.600
+ -21608382.388 7 -16837682.624 7 20331172.642 20331172.716 20331171.707
+ 44.900 44.400
+ -18288127.888 7 -14250489.887 5 21443679.764 21443678.784 21443679.184
+ 42.500 35.700
+ 06 1 1 18 45 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -588589.933 3 -458640.151 2 24711452.580 24711451.980 24711451.751
+ 23.400 16.100
+ -16256103.723 6 -12667084.089 6 21370239.216 21370239.358 21370238.815
+ 41.300 37.200
+ -14519360.049 7 -11313779.738 7 20587873.053 20587872.626 20587871.890
+ 45.300 46.900
+ -5827316.723 5 -4540762.308 5 23132683.603 23132684.430 23132682.831
+ 31.600 30.200
+ -1395956.063 3 -1087758.343 3 24222273.153 24222273.944 24222272.529
+ 22.100 20.500
+ -23366573.897 8 -18207711.538 8 20273648.934 20273647.870 20273648.387
+ 48.400 51.200
+ -12801498.789 6 -9975182.007 5 22253934.652 22253934.323 22253933.395
+ 41.200 30.400
+ -21588894.843 7 -16822497.533 7 20334880.896 20334881.001 20334879.970
+ 44.800 44.300
+ -18136904.449 6 -14132653.516 5 21472456.458 21472455.868 21472455.930
+ 41.900 35.600
+ 06 1 1 18 46 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -808651.646 3 -630116.530 3 24669575.339 24669576.050 24669574.982
+ 23.400 21.600
+ -16410625.398 6 -12787490.521 6 21340834.588 21340834.915 21340834.104
+ 40.900 37.900
+ -14562232.621 7 -11347186.942 7 20579714.465 20579714.436 20579713.376
+ 45.000 47.200
+ -5821826.282 4 -4536484.024 5 23133727.966 23133729.337 23133727.075
+ 29.700 30.100
+ -1190906.833 4 -927979.820 2 24261293.623 24261293.293 24261292.882
+ 25.300 17.800
+ -23359606.908 8 -18202282.726 8 20274974.552 20274973.631 20274974.137
+ 48.400 51.100
+ -12807091.801 6 -9979540.200 4 22252869.917 22252869.846 22252869.043
+ 41.400 29.900
+ -21567413.071 7 -16805758.504 7 20338969.037 20338968.954 20338968.010
+ 45.200 44.500
+ -17984043.844 6 -14013541.447 6 21501545.438 21501544.526 21501544.549
+ 41.800 36.000
+ 06 1 1 18 47 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1028334.489 4 -801297.827 2 24627771.508 24627770.841 24627770.927
+ 27.900 17.800
+ -16563544.575 6 -12906648.243 6 21311734.882 21311735.134 21311734.455
+ 41.200 38.100
+ -14604050.901 7 -11379772.624 7 20571756.822 20571756.530 20571755.662
+ 45.100 47.100
+ -5813803.014 4 -4530232.115 4 23135254.394 23135255.976 23135253.722
+ 29.700 29.700
+ -985612.466 3 -768010.292 3 24300359.257 24300360.369 24300358.529
+ 23.400 19.900
+ -23351301.717 8 -18195811.162 8 20276555.276 20276554.076 20276554.696
+ 48.600 51.200
+ -12810232.424 6 -9981987.443 5 22252272.763 22252272.297 22252271.397
+ 41.200 30.100
+ -21543946.165 7 -16787472.617 7 20343434.687 20343434.670 20343433.726
+ 45.200 44.500
+ -17829558.497 6 -13893163.329 5 21530943.824 21530941.990 21530942.510
+ 41.600 35.300
+ 06 1 1 18 48 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1247626.152 3 -972174.254 3 24586040.697 24586041.537 24586040.600
+ 22.600 23.400
+ -16714850.579 6 -13024548.930 6 21282942.292 21282942.537 21282942.008
+ 41.600 38.100
+ -14644810.581 7 -11411533.418 7 20564000.400 20564000.312 20563999.216
+ 44.900 47.100
+ -5803250.946 4 -4522009.736 4 23137262.940 23137264.173 23137262.046
+ 29.700 29.500
+ -780086.575 3 -607860.314 2 24339469.128 24339470.244 24339468.787
+ 23.000 13.900
+ -23341657.254 8 -18188296.009 8 20278390.595 20278389.431 20278389.998
+ 48.400 51.200
+ -12810918.802 6 -9982522.292 5 22252142.157 22252141.613 22252140.740
+ 41.200 30.400
+ -21518503.213 7 -16767646.955 7 20348276.141 20348276.097 20348275.224
+ 45.200 44.400
+ -17673459.781 6 -13771528.040 5 21560648.759 21560646.756 21560647.320
+ 41.600 35.500
+ 06 1 1 18 49 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1466514.785 4 -1142736.637 3 24544387.945 24544387.750 24544387.339
+ 27.100 18.600
+ -16864533.226 6 -13141184.692 6 21254458.664 21254458.883 21254458.249
+ 41.900 38.400
+ -14684507.709 7 -11442466.249 7 20556446.503 20556446.203 20556445.331
+ 45.200 47.400
+ -5790176.288 5 -4511821.700 5 23139751.156 23139752.199 23139750.276
+ 31.500 30.100
+ -574342.242 4 -447540.153 3 24378621.887 24378622.688 24378621.274
+ 25.600 18.600
+ -23330672.950 8 -18179736.822 8 20280480.643 20280479.636 20280480.172
+ 48.600 51.100
+ -12809149.203 6 -9981143.384 5 22252478.986 22252478.482 22252477.658
+ 41.500 31.000
+ -21491093.767 7 -16746288.967 7 20353492.043 20353492.082 20353491.127
+ 45.200 44.500
+ -17515760.337 6 -13648645.444 5 21590656.920 21590656.113 21590656.176
+ 41.400 35.400
+ 06 1 1 18 50 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1684988.194 3 -1312975.486 4 24502813.773 24502813.760 24502813.140
+ 23.400 24.600
+ -17012582.309 7 -13256547.535 6 21226285.914 21226285.967 21226285.411
+ 42.200 38.700
+ -14723137.911 7 -11472567.709 7 20549095.450 20549095.162 20549094.230
+ 44.900 47.200
+ -5774584.739 5 -4499672.441 5 23142717.953 23142719.094 23142717.334
+ 32.400 30.400
+ -368392.734 4 -287060.129 3 24417813.347 24417814.096 24417812.503
+ 24.900 20.500
+ -23318347.023 8 -18170132.220 8 20282826.276 20282825.256 20282825.670
+ 48.400 51.300
+ -12804921.436 6 -9977849.026 5 22253283.192 22253282.717 22253282.120
+ 41.600 30.200
+ -21461727.303 7 -16723406.021 7 20359080.181 20359080.394 20359079.274
+ 45.300 44.700
+ -17356472.415 6 -13524525.070 5 21620968.479 21620967.561 21620967.709
+ 41.100 34.300
+ 06 1 1 18 51 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -1903033.882 4 -1482881.006 2 24461321.399 24461320.235 24461320.325
+ 26.200 17.800
+ -17158987.547 7 -13370629.462 6 21198425.950 21198425.988 21198425.473
+ 42.500 39.300
+ -14760697.142 7 -11501834.642 7 20541948.005 20541947.793 20541946.906
+ 44.800 47.100
+ -5756482.886 5 -4485567.097 4 23146162.693 23146163.633 23146161.953
+ 32.400 29.900
+ -162250.618 3 -126429.970 2 24457039.626 24457040.858 24457039.176
+ 21.100 17.000
+ -23304678.750 8 -18159481.633 8 20285427.294 20285426.243 20285426.705
+ 48.300 51.100
+ -12798234.295 6 -9972638.253 5 22254556.093 22254555.346 22254554.816
+ 41.500 30.200
+ -21430413.835 7 -16699005.928 7 20365039.022 20365039.148 20365038.116
+ 45.200 44.700
+ -17195609.090 6 -13399177.103 5 21651579.892 21651578.917 21651579.054
+ 40.800 34.400
+ 06 1 1 18 52 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2120639.734 4 -1652443.888 2 24419911.903 24419911.277 24419911.236
+ 24.600 17.000
+ -17303739.214 7 -13483422.905 6 21170880.696 21170880.352 21170880.106
+ 42.600 38.600
+ -14797181.129 7 -11530263.716 7 20535005.485 20535005.124 20535004.257
+ 45.000 47.000
+ -5735877.335 5 -4469510.835 5 23150083.811 23150085.128 23150083.023
+ 32.600 31.100
+ 44071.429 3 34340.396 1 24496301.775 24496302.672 24496300.955
+ 22.100 9.000
+ -23289666.865 8 -18147784.071 8 20288283.947 20288282.968 20288283.382
+ 48.300 51.200
+ -12789087.586 6 -9965510.947 4 22256296.384 22256295.673 22256295.131
+ 41.200 29.200
+ -21397163.973 7 -16673096.953 7 20371366.325 20371366.355 20371365.408
+ 45.300 44.400
+ -17033182.920 6 -13272611.356 5 21682488.997 21682487.628 21682487.915
+ 40.200 34.300
+ 06 1 1 18 53 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2337794.141 4 -1821654.924 2 24378589.002 24378587.676 24378588.233
+ 25.300 16.100
+ -17446827.400 7 -13594920.135 6 21143651.628 21143651.624 21143651.190
+ 42.500 39.400
+ -14832585.538 7 -11557851.562 7 20528268.200 20528267.816 20528267.030
+ 44.800 47.000
+ -5712774.468 5 -4451508.630 5 23154480.057 23154481.174 23154479.132
+ 31.600 30.400
+ 250560.884 4 195241.242 2 24535596.574 24535597.158 24535595.556
+ 24.600 17.000
+ -23273310.688 7 -18135039.001 8 20291396.350 20291395.393 20291395.746
+ 47.900 51.000
+ -12777480.562 6 -9956466.515 5 22258505.067 22258504.779 22258503.881
+ 41.200 30.200
+ -21361987.912 7 -16645687.043 7 20378060.189 20378060.175 20378059.289
+ 45.500 44.500
+ -16869207.420 6 -13144838.350 5 21713692.509 21713691.535 21713691.413
+ 40.400 34.300
+ 06 1 1 18 54 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2554484.805 4 -1990504.709 3 24337354.362 24337353.108 24337353.377
+ 26.800 22.600
+ -17588242.927 7 -13705113.990 6 21116740.809 21116741.291 21116740.557
+ 42.700 40.000
+ -14866906.370 7 -11584595.055 7 20521737.143 20521736.802 20521735.955
+ 44.800 47.100
+ -5687183.006 5 -4431567.258 5 23159349.982 23159351.400 23159349.330
+ 32.400 30.400
+ 457204.444 3 356262.134 3 24574918.606 24574920.200 24574918.405
+ 22.100 18.600
+ -23255609.107 8 -18121245.569 8 20294764.742 20294763.915 20294764.189
+ 48.000 51.000
+ -12763413.631 6 -9945505.275 4 22261181.608 22261181.565 22261180.633
+ 41.300 29.900
+ -21324895.799 7 -16616784.106 7 20385118.608 20385118.623 20385117.729
+ 45.400 44.600
+ -16703695.398 6 -13015868.028 5 21745188.384 21745187.202 21745187.504
+ 40.700 33.500
+ 06 1 1 18 55 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2770699.546 4 -2158983.594 4 24296209.115 24296208.697 24296208.410
+ 25.900 25.600
+ -17727976.237 7 -13813997.038 6 21090150.823 21090150.557 21090150.413
+ 43.000 39.300
+ -14900139.091 7 -11610490.669 7 20515412.786 20515412.843 20515411.774
+ 44.700 47.100
+ -5659110.948 5 -4409692.929 4 23164692.005 23164693.069 23164691.437
+ 32.100 29.200
+ 663989.999 3 517393.697 2 24614269.388 24614269.148 24614268.301
+ 20.500 12.600
+ -23236561.113 8 -18106402.977 8 20298389.620 20298388.679 20298389.058
+ 48.100 51.100
+ -12746887.272 6 -9932627.605 5 22264327.021 22264326.465 22264325.804
+ 41.100 30.400
+ -21285898.354 7 -16586396.501 7 20392539.604 20392539.592 20392538.658
+ 45.400 44.700
+ -16536660.388 6 -12885710.973 5 21776974.721 21776973.140 21776973.407
+ 40.000 33.400
+ 06 1 1 18 56 0.0000000 0 9G02G04G07G09G11G17G20G24G28
+ -2986426.554 4 -2327082.400 3 24255157.406 24255156.829 24255156.765
+ 25.600 22.600
+ -17866018.387 7 -13921562.294 6 21063882.028 21063881.993 21063881.656
+ 43.200 39.700
+ -14932279.586 7 -11635535.199 7 20509296.978 20509296.638 20509295.780
+ 44.600 47.000
+ -5628565.821 5 -4385891.548 4 23170504.405 23170505.818 23170503.652
+ 32.000 28.800
+ 870905.144 3 678626.215 2 24653642.777 24653643.748 24653642.621
+ 20.500 17.000
+ -23216166.021 8 -18090510.698 8 20302270.654 20302269.655 20302270.106
+ 48.300 51.000
+ -12727901.920 6 -9917833.834 5 22267939.702 22267939.203 22267938.520
+ 41.100 30.200
+ -21245006.788 7 -16554532.953 7 20400320.863 20400321.040 20400319.864
+ 45.200 44.600
+ -16368116.453 6 -12754378.130 5 21809047.406 21809046.041 21809046.232
+ 39.500 33.200
+ 06 1 1 18 57 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3201653.809 4 -2494791.811 3 24214201.266 24214200.450 24214200.519
+ 27.400 21.100
+ -18002360.563 7 -14027802.896 6 21037936.918 21037936.957 21037936.587
+ 43.100 40.200
+ -14963323.388 7 -11659725.164 7 20503389.614 20503389.287 20503388.364
+ 44.700 47.000
+ -5595557.530 5 -4360170.805 4 23176785.932 23176786.777 23176784.955
+ 32.600 27.900
+ -23194422.618 8 -18073567.789 8 20306408.398 20306407.422 20306407.834
+ 48.300 51.000
+ -12706459.356 6 -9901125.351 5 22272019.991 22272019.422 22272018.920
+ 41.400 30.200
+ -21202232.344 7 -16521202.232 7 20408460.795 20408460.775 20408459.732
+ 45.500 44.600
+ -16198077.109 6 -12621880.028 5 21841403.717 21841403.551 21841403.359
+ 39.100 33.000
+ 06 1 1 18 58 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3416369.637 4 -2662102.728 2 24173342.192 24173341.045 24173341.215
+ 26.200 17.800
+ -18136994.373 7 -14132712.315 6 21012316.900 21012316.847 21012316.453
+ 43.100 39.900
+ -14993266.337 7 -11683057.330 7 20497691.331 20497691.224 20497690.261
+ 44.600 47.100
+ -5560094.617 5 -4332537.381 4 23183534.230 23183535.161 23183533.298
+ 31.600 28.800
+ -23171330.390 8 -18055573.854 8 20310802.584 20310801.699 20310802.076
+ 48.400 50.900
+ -12682561.208 6 -9882503.412 5 22276567.854 22276567.372 22276566.554
+ 41.100 30.800
+ -21157586.285 7 -16486413.106 7 20416956.526 20416956.581 20416955.611
+ 45.600 44.400
+ -16026556.259 6 -12488227.502 5 21874043.964 21874043.039 21874042.907
+ 38.800 32.600
+ 06 1 1 18 59 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3630562.389 4 -2829006.104 3 24132582.406 24132581.536 24132581.609
+ 28.100 20.500
+ -18269911.207 7 -14236283.834 6 20987023.777 20987023.783 20987023.263
+ 43.200 40.500
+ -15022103.952 7 -11705528.199 7 20492203.874 20492203.622 20492202.744
+ 44.600 47.100
+ -5522186.757 5 -4302998.779 4 23190747.746 23190748.867 23190746.991
+ 31.600 28.100
+ -23146888.270 8 -18036528.049 8 20315453.852 20315452.877 20315453.255
+ 48.200 50.800
+ -12656210.248 6 -9861970.184 5 22281582.209 22281581.405 22281581.034
+ 41.200 30.100
+ -21111079.698 7 -16450174.212 7 20425806.348 20425806.519 20425805.479
+ 45.700 44.500
+ -15853568.573 6 -12353431.990 5 21906962.938 21906961.645 21906961.602
+ 38.900 33.000
+ 06 1 1 19 0 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -3844219.974 4 -2995492.485 3 24091924.930 24091924.052 24091924.229
+ 29.900 22.100
+ -18401102.531 7 -14338510.801 6 20962058.565 20962058.990 20962058.225
+ 43.600 40.800
+ -15049832.066 7 -11727134.522 7 20486927.551 20486927.111 20486926.333
+ 44.700 47.000
+ -5481844.769 5 -4271563.476 4 23198424.482 23198425.636 23198423.638
+ 31.100 29.000
+ -23121095.541 8 -18016429.827 8 20320361.941 20320360.965 20320361.349
+ 48.200 50.700
+ -12627408.630 6 -9839527.338 5 22287062.907 22287062.606 22287061.660
+ 41.100 31.100
+ -21062724.717 7 -16412495.006 7 20435007.909 20435008.105 20435007.107
+ 45.600 44.300
+ -15679127.917 6 -12217504.274 5 21940156.962 21940156.558 21940156.466
+ 39.200 32.000
+ 06 1 1 19 1 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4057330.764 4 -3161552.823 4 24051371.973 24051370.531 24051370.531
+ 26.500 25.300
+ -18530560.427 7 -14439387.059 6 20937423.873 20937423.677 20937423.330
+ 43.700 40.600
+ -15076445.891 7 -11747872.565 7 20481863.005 20481862.656 20481861.863
+ 44.900 47.100
+ -5439078.961 5 -4238239.497 4 23206562.546 23206563.756 23206561.810
+ 31.500 28.600
+ -23093951.489 8 -17995278.618 8 20325527.250 20325526.412 20325526.787
+ 48.200 50.600
+ -12596159.779 6 -9815177.569 5 22293009.368 22293009.048 22293007.961
+ 41.000 31.500
+ -21012532.831 7 -16373384.453 7 20444559.133 20444559.446 20444558.210
+ 45.500 44.400
+ -15503248.832 6 -12080455.716 5 21973626.391 21973625.051 21973625.181
+ 37.700 31.500
+ 06 1 1 19 2 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4269883.376 4 -3327178.201 4 24010923.564 24010923.109 24010922.846
+ 27.100 26.800
+ -18658277.256 7 -14538906.639 6 20913120.045 20913120.060 20913119.603
+ 43.800 40.800
+ -15101941.409 7 -11767739.200 7 20477011.419 20477010.999 20477010.196
+ 44.800 47.100
+ -5393901.098 5 -4203035.967 4 23215159.893 23215160.923 23215159.038
+ 30.800 29.200
+ -23065455.251 8 -17973073.759 8 20330950.026 20330949.156 20330949.524
+ 48.100 50.800
+ -12562466.644 6 -9788923.152 5 22299420.944 22299420.542 22299419.913
+ 41.400 31.000
+ -20960515.883 7 -16332851.763 7 20454457.668 20454457.863 20454456.759
+ 45.700 44.400
+ -15325946.113 6 -11942297.841 5 22007366.150 22007364.855 22007364.910
+ 37.700 31.500
+ 06 1 1 19 3 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4481865.439 4 -3492359.037 4 23970584.616 23970584.486 23970584.029
+ 27.400 27.400
+ -18784245.346 7 -14637063.565 6 20889149.064 20889148.920 20889148.602
+ 43.900 40.700
+ -15126314.040 7 -11786730.847 7 20472373.379 20472373.120 20472372.283
+ 44.900 47.200
+ -5346321.355 5 -4165960.871 4 23224213.834 23224214.989 23224213.117
+ 30.400 27.600
+ -23035606.331 8 -17949814.862 8 20336630.029 20336629.119 20336629.573
+ 48.400 50.600
+ -12526333.212 6 -9760767.201 5 22306297.020 22306296.406 22306295.742
+ 41.200 30.600
+ -20906686.179 7 -16290906.546 7 20464701.103 20464701.289 20464700.228
+ 45.900 44.500
+ -15147234.742 6 -11803042.310 5 22041372.633 22041372.818 22041372.364
+ 37.800 31.300
+ 06 1 1 19 4 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4693265.554 4 -3657086.299 4 23930356.640 23930356.097 23930355.630
+ 28.600 26.800
+ -18908456.994 7 -14733851.843 6 20865512.546 20865512.401 20865512.128
+ 44.000 41.200
+ -15149559.532 7 -11804844.205 7 20467949.983 20467949.603 20467948.821
+ 44.900 47.100
+ -5296352.185 5 -4127023.875 4 23233722.427 23233723.825 23233721.587
+ 31.000 27.100
+ -23004403.941 7 -17925501.303 8 20342567.540 20342566.698 20342567.042
+ 47.800 50.200
+ -12487764.094 6 -9730713.328 5 22313636.521 22313635.617 22313635.159
+ 41.100 30.200
+ -20851056.014 7 -16247558.361 7 20475287.359 20475287.313 20475286.409
+ 45.800 44.400
+ -14967129.829 6 -11662700.891 5 22075646.955 22075645.617 22075645.679
+ 38.100 31.300
+ 06 1 1 19 5 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -4904072.266 5 -3821351.104 3 23890241.981 23890240.734 23890240.976
+ 30.200 23.800
+ -19030905.487 7 -14829266.225 6 20842211.406 20842211.216 20842210.924
+ 44.000 41.500
+ -15171673.261 7 -11822075.666 7 20463741.996 20463741.422 20463740.816
+ 45.000 47.000
+ -5244006.108 5 -4086234.758 4 23243683.544 23243684.956 23243682.822
+ 30.600 27.100
+ -22971847.157 7 -17900132.376 8 20348762.836 20348762.080 20348762.340
+ 47.900 50.400
+ -12446763.734 6 -9698764.987 5 22321437.968 22321438.140 22321437.144
+ 41.200 31.000
+ -20793638.053 7 -16202817.089 7 20486213.415 20486213.579 20486212.511
+ 45.800 44.300
+ -14785646.210 6 -11521285.168 5 22110180.997 22110180.452 22110180.555
+ 37.500 30.200
+ 06 1 1 19 6 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5114273.977 5 -3985144.434 3 23850240.780 23850239.738 23850240.130
+ 30.100 21.100
+ -19151583.957 7 -14923301.369 6 20819246.885 20819246.653 20819246.504
+ 44.400 41.200
+ -15192651.037 7 -11838421.967 7 20459749.837 20459749.471 20459748.713
+ 44.900 47.000
+ -5189295.049 4 -4043602.780 4 23254094.875 23254096.260 23254093.868
+ 28.600 27.600
+ -22937935.650 8 -17873707.820 8 20355216.055 20355215.241 20355215.536
+ 48.000 50.200
+ -12403337.405 6 -9664926.281 5 22329702.417 22329701.709 22329701.096
+ 41.100 31.000
+ -20734444.890 7 -16156692.548 7 20497477.606 20497477.671 20497476.708
+ 46.100 44.000
+ -14602799.255 6 -11378807.104 5 22144975.857 22144975.635 22144975.445
+ 37.600 31.500
+ 06 1 1 19 7 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5323859.010 4 -4148457.189 3 23810357.789 23810357.068 23810357.183
+ 25.900 23.000
+ -19270485.296 7 -15015951.712 6 20796620.547 20796620.612 20796620.131
+ 44.100 41.800
+ -15212488.236 7 -11853879.511 7 20455974.853 20455974.644 20455973.655
+ 44.600 47.100
+ -5132232.436 4 -3999138.432 4 23264953.262 23264954.922 23264952.408
+ 29.700 28.600
+ -22902669.027 8 -17846227.325 8 20361927.252 20361926.133 20361926.645
+ 48.200 50.100
+ -12357490.681 6 -9629201.537 5 22338426.457 22338425.835 22338425.390
+ 41.000 30.600
+ -20673488.776 7 -16109194.274 7 20509077.322 20509077.174 20509076.366
+ 46.300 44.100
+ -14418604.928 6 -11235279.166 5 22180027.823 22180026.757 22180026.586
+ 36.600 30.600
+ 06 1 1 19 8 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5532816.396 5 -4311280.836 4 23770594.946 23770593.889 23770594.124
+ 30.200 26.500
+ -19387602.951 7 -15107212.171 6 20774333.750 20774333.852 20774333.371
+ 44.200 41.900
+ -15231180.460 7 -11868444.867 7 20452417.863 20452417.686 20452416.692
+ 44.600 47.100
+ -5072831.878 5 -3952852.292 4 23276257.453 23276258.258 23276256.597
+ 30.100 27.600
+ -22866046.540 8 -17817690.319 8 20368896.274 20368895.243 20368895.699
+ 48.200 49.900
+ -12309228.864 6 -9591594.932 4 22347610.547 22347609.961 22347609.294
+ 40.900 29.900
+ -20610782.818 7 -16060332.480 7 20521009.838 20521009.795 20521008.872
+ 46.100 44.100
+ -14233078.265 6 -11090713.014 4 22215331.618 22215331.299 22215331.184
+ 36.600 28.800
+ 06 1 1 19 9 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5741134.735 4 -4473606.540 4 23730952.787 23730952.122 23730952.094
+ 28.100 28.600
+ -19502930.772 7 -15197077.965 7 20752387.695 20752387.657 20752387.287
+ 44.500 42.300
+ -15248723.272 7 -11882114.566 7 20449079.520 20449079.214 20449078.357
+ 44.700 47.000
+ -5011107.073 4 -3904755.079 4 23288002.979 23288004.519 23288002.383
+ 29.500 26.500
+ -22828068.014 8 -17788096.649 8 20376123.402 20376122.287 20376122.898
+ 48.300 49.900
+ -12258558.699 6 -9552111.673 5 22357252.883 22357252.301 22357251.658
+ 41.200 30.400
+ -20546340.252 7 -16010117.483 7 20533272.784 20533272.891 20533271.873
+ 46.100 44.000
+ -14046235.602 6 -10945121.415 4 22250887.491 22250886.102 22250886.319
+ 36.700 28.800
+ 06 1 1 19 10 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -5948802.774 4 -4635425.520 4 23691434.594 23691433.788 23691434.137
+ 29.200 28.400
+ -19616462.899 7 -15285544.521 7 20730783.127 20730782.952 20730782.811
+ 44.700 42.000
+ -15265112.368 7 -11894885.275 7 20445960.967 20445960.497 20445959.783
+ 44.800 47.000
+ -4947072.059 4 -3854857.722 4 23300188.749 23300189.728 23300187.867
+ 29.500 25.900
+ -22788732.527 8 -17757445.602 8 20383608.480 20383607.560 20383607.895
+ 48.100 49.800
+ -12205487.140 6 -9510757.205 4 22367351.519 22367351.127 22367350.529
+ 40.800 29.900
+ -20480173.844 7 -15958559.230 7 20545863.710 20545863.977 20545862.837
+ 46.100 44.200
+ -13858092.608 5 -10798516.576 5 22286688.583 22286688.955 22286688.452
+ 35.800 30.100
+ 06 1 1 19 11 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6155809.008 5 -4796728.932 4 23652042.975 23652041.843 23652042.173
+ 33.800 28.800
+ -19728193.100 7 -15372606.969 7 20709521.615 20709521.428 20709521.219
+ 44.700 42.200
+ -15280343.106 7 -11906753.365 7 20443062.586 20443062.208 20443061.397
+ 44.700 47.000
+ -4880742.172 4 -3803172.130 3 23312810.054 23312811.512 23312809.166
+ 27.400 23.800
+ -22748039.993 8 -17725737.127 8 20391352.075 20391351.167 20391351.511
+ 48.100 49.700
+ -12150020.594 6 -9467536.506 4 22377906.721 22377906.305 22377905.492
+ 40.600 29.900
+ -20412297.098 7 -15905668.249 7 20558780.462 20558780.398 20558779.464
+ 46.100 44.000
+ -13668665.514 5 -10650911.137 5 22322736.610 22322735.944 22322735.579
+ 35.500 30.600
+ 06 1 1 19 12 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6362142.302 5 -4957507.961 5 23612778.987 23612777.841 23612778.282
+ 32.100 30.100
+ -19838115.898 7 -15458261.061 7 20688603.940 20688603.879 20688603.480
+ 44.700 42.500
+ -15294411.063 7 -11917715.396 7 20440385.636 20440385.101 20440384.459
+ 44.800 47.000
+ -4812130.997 4 -3749708.943 4 23325866.724 23325867.758 23325866.167
+ 29.000 24.200
+ -22705989.807 8 -17692970.736 8 20399354.197 20399352.920 20399353.502
+ 48.200 49.500
+ -12092166.938 6 -9422455.728 4 22388915.768 22388915.370 22388914.651
+ 40.700 29.700
+ -20342723.227 7 -15851454.832 7 20572019.800 20572019.847 20572018.882
+ 46.400 43.900
+ -13477970.166 5 -10502317.457 4 22359024.651 22359023.918 22359023.840
+ 34.900 28.600
+ 06 1 1 19 13 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6567791.827 4 -5117754.164 4 23573644.289 23573643.471 23573643.760
+ 29.700 27.400
+ -19946225.944 7 -15542502.609 7 20668031.391 20668031.225 20668030.919
+ 44.700 42.700
+ -15307311.816 7 -11927767.919 7 20437930.511 20437930.089 20437929.473
+ 44.800 46.900
+ -4741254.839 4 -3694480.784 3 23339354.265 23339355.169 23339353.633
+ 29.900 23.400
+ -22662581.580 8 -17659146.133 8 20407614.157 20407613.320 20407613.748
+ 48.200 49.600
+ -12031934.123 6 -9375521.079 5 22400378.083 22400377.356 22400376.771
+ 40.700 30.200
+ -20271465.635 7 -15795929.436 7 20585579.609 20585579.725 20585578.749
+ 46.300 43.800
+ -13286023.039 5 -10352748.343 4 22395551.337 22395550.573 22395550.148
+ 34.700 29.000
+ 06 1 1 19 14 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6772746.104 4 -5277458.650 4 23534642.417 23534641.489 23534641.832
+ 29.500 25.600
+ -20052517.924 7 -15625327.476 7 20647804.529 20647804.169 20647804.102
+ 44.700 42.600
+ -15319040.836 7 -11936907.407 7 20435698.592 20435698.105 20435697.415
+ 44.700 46.800
+ -4668128.946 4 -3637499.592 4 23353270.000 23353270.840 23353269.157
+ 29.700 24.200
+ -22617815.621 8 -17624263.563 8 20416132.953 20416131.956 20416132.404
+ 48.000 49.400
+ -11969330.433 6 -9326738.980 5 22412291.179 22412290.521 22412289.990
+ 40.600 30.200
+ -20198538.523 7 -15739103.116 7 20599457.140 20599457.207 20599456.248
+ 46.100 43.700
+ -13092840.894 5 -10202216.904 4 22432312.459 22432312.217 22432311.595
+ 34.900 29.500
+ 06 1 1 19 15 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -6976994.281 5 -5436612.925 4 23495775.971 23495774.302 23495775.137
+ 31.100 26.200
+ -20156987.001 7 -15706731.900 7 20627924.763 20627924.525 20627924.335
+ 45.100 42.900
+ -15329593.853 7 -11945130.527 7 20433690.381 20433690.050 20433689.239
+ 44.700 46.900
+ -4592769.478 5 -3578777.954 4 23367610.636 23367611.242 23367609.890
+ 30.800 24.600
+ -22571691.387 8 -17588322.601 8 20424909.975 20424909.198 20424909.440
+ 48.100 49.400
+ -11904364.006 6 -9276115.808 5 22424653.551 22424653.196 22424652.409
+ 40.000 30.100
+ -20123955.050 7 -15680986.128 7 20613649.879 20613649.968 20613648.977
+ 46.000 43.500
+ -12898440.318 5 -10050736.008 4 22469305.497 22469304.917 22469304.753
+ 35.400 27.600
+ 06 1 1 19 16 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -7180525.004 5 -5595208.119 4 23457045.410 23457043.694 23457044.507
+ 32.600 28.100
+ -20259628.287 7 -15786712.066 7 20608392.744 20608392.475 20608392.326
+ 45.200 42.900
+ -15338966.325 7 -11952433.738 7 20431906.712 20431906.569 20431905.653
+ 44.700 47.100
+ -4515192.535 4 -3518328.450 4 23382372.469 23382374.003 23382371.834
+ 29.900 25.300
+ -22524207.969 8 -17551322.541 8 20433946.102 20433944.941 20433945.412
+ 48.100 49.100
+ -11837044.263 6 -9223658.868 4 22437464.087 22437463.679 22437462.878
+ 40.000 29.900
+ -20047728.834 7 -15621589.080 7 20628155.293 20628155.355 20628154.364
+ 46.200 43.400
+ -12702837.749 5 -9898318.516 4 22506527.902 22506526.931 22506526.972
+ 34.300 28.600
+ 06 1 1 19 17 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -7383327.571 5 -5753235.944 5 23418453.098 23418451.716 23418452.261
+ 31.600 30.200
+ -20360437.218 7 -15865264.420 7 20589209.532 20589209.101 20589208.989
+ 45.100 43.100
+ -15347153.697 7 -11958813.492 7 20430348.906 20430348.465 20430347.670
+ 44.800 47.100
+ -4435415.057 5 -3456164.233 4 23397553.768 23397555.115 23397553.192
+ 30.600 24.900
+ -22475366.357 7 -17513264.146 8 20443240.178 20443239.129 20443239.580
+ 47.900 49.100
+ -11767380.174 6 -9169375.177 5 22450720.799 22450720.414 22450719.422
+ 40.300 30.400
+ -19969874.095 7 -15560923.055 7 20642970.729 20642970.677 20642969.721
+ 46.400 43.500
+ -12506050.625 5 -9744977.982 4 22543975.835 22543974.698 22543974.373
+ 33.200 27.900
+ 06 1 1 19 18 0.0000000 0 8G02G04G07G09G17G20G24G28
+ -7585391.226 5 -5910687.951 4 23380001.451 23380000.084 23380000.716
+ 32.100 29.700
+ -20459409.655 7 -15942385.745 7 20570375.539 20570375.106 20570375.054
+ 44.900 43.100
+ -15354151.533 7 -11964266.332 7 20429017.390 20429016.752 20429016.260
+ 45.100 46.900
+ -4353454.238 5 -3392298.693 4 23413150.424 23413151.805 23413149.729
+ 30.100 24.900
+ -22425165.600 7 -17474146.672 8 20452792.932 20452792.007 20452792.453
+ 47.800 48.800
+ -11695381.463 6 -9113272.286 5 22464421.710 22464421.209 22464420.521
+ 40.300 30.100
+ -19890405.056 7 -15498999.130 7 20658093.204 20658093.083 20658092.181
+ 46.500 43.200
+ -12308095.035 5 -9590726.994 4 22581643.936 22581644.436 22581643.679
+ 32.300 27.600
+ 06 1 1 19 19 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -7786704.690 5 -6067555.422 4 23341692.525 23341691.184 23341691.768
+ 32.000 29.200
+ -20556541.737 7 -16018073.026 7 20551891.871 20551891.471 20551891.413
+ 45.100 43.300
+ -219163.088 4 -170776.683 3 24350719.736 24350722.217 24350718.876
+ 24.600 19.300
+ -15359955.632 7 -11968788.985 7 20427912.761 20427912.277 20427911.568
+ 45.000 46.800
+ -4269327.425 4 -3326745.405 4 23429159.360 23429160.798 23429158.294
+ 27.900 25.600
+ -22373605.841 7 -17433970.238 8 20462604.479 20462603.557 20462603.893
+ 47.700 48.700
+ -11621058.610 6 -9055358.395 4 22478564.916 22478564.423 22478563.750
+ 39.900 29.500
+ -19809335.528 7 -15435828.068 7 20673520.086 20673520.083 20673519.172
+ 46.600 43.300
+ -12108988.497 5 -9435579.130 4 22619534.278 22619533.139 22619532.960
+ 32.700 26.500
+ 06 1 1 19 20 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -7987257.642 5 -6223830.336 4 23303528.452 23303526.959 23303527.765
+ 33.200 28.600
+ -20651829.225 7 -16092322.963 7 20533758.989 20533758.793 20533758.639
+ 45.100 43.500
+ -423800.875 2 -330234.476 3 24311777.630 24311780.759 24311776.548
+ 17.000 19.900
+ -15364561.473 7 -11972377.932 7 20427036.128 20427035.820 20427035.076
+ 45.100 46.900
+ -4183052.112 4 -3259517.955 3 23445576.868 23445577.996 23445576.121
+ 28.600 23.800
+ -22320687.143 7 -17392734.875 8 20472674.464 20472673.636 20472673.866
+ 47.600 48.600
+ -11544421.896 6 -8995641.489 4 22493148.291 22493147.909 22493147.026
+ 39.800 29.700
+ -19726679.640 7 -15371420.881 7 20689249.040 20689249.032 20689248.127
+ 46.500 43.300
+ -11908747.960 5 -9279547.660 4 22657637.856 22657637.890 22657637.149
+ 32.600 26.200
+ 06 1 1 19 21 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8187039.667 5 -6379504.552 4 23265511.037 23265509.726 23265510.492
+ 32.300 29.200
+ -20745268.719 7 -16165132.900 7 20515978.170 20515977.825 20515977.721
+ 45.200 43.600
+ -627616.661 4 -489051.712 3 24272993.789 24272995.546 24272992.449
+ 25.600 22.600
+ -15367964.623 7 -11975029.720 7 20426388.788 20426388.242 20426387.598
+ 44.900 46.800
+ -4094646.210 4 -3190630.309 4 23462399.818 23462401.470 23462399.197
+ 27.900 24.900
+ -22266409.668 7 -17350440.731 8 20483003.195 20483002.265 20483002.606
+ 47.800 48.400
+ -11465481.601 6 -8934129.602 4 22508170.302 22508169.997 22508168.952
+ 39.900 29.700
+ -19642452.127 7 -15305789.051 7 20705276.976 20705277.056 20705275.978
+ 46.300 43.200
+ -11707391.601 5 -9122646.704 4 22695955.522 22695954.630 22695954.210
+ 32.000 26.500
+ 06 1 1 19 22 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8386039.919 5 -6534569.610 4 23227642.774 23227641.266 23227641.891
+ 32.300 29.000
+ -20836856.724 7 -16236500.128 7 20498549.654 20498549.135 20498549.146
+ 45.200 43.700
+ -830590.014 4 -647212.539 3 24234368.908 24234370.797 24234367.772
+ 24.200 22.100
+ -15370160.900 7 -11976741.095 7 20425970.534 20425970.279 20425969.433
+ 44.900 46.900
+ -4004128.716 4 -3120097.245 3 23479625.211 23479626.238 23479624.499
+ 29.900 23.800
+ -22210773.238 7 -17307087.662 8 20493590.572 20493589.550 20493589.827
+ 47.600 48.400
+ -11384249.397 6 -8870831.809 4 22523627.958 22523627.529 22523626.848
+ 39.700 29.200
+ -19556666.807 7 -15238943.346 7 20721601.171 20721601.431 20721600.308
+ 46.300 43.100
+ -11504936.228 5 -8964889.356 4 22734481.252 22734480.706 22734480.246
+ 32.000 25.300
+ 06 1 1 19 23 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8584247.353 5 -6689016.948 4 23189925.102 23189923.625 23189924.110
+ 32.300 29.900
+ -20926590.142 7 -16306422.215 7 20481473.747 20481473.409 20481473.263
+ 44.900 43.800
+ -1032700.553 3 -804701.083 2 24195908.517 24195909.694 24195907.312
+ 23.400 13.900
+ -15371145.676 7 -11977508.451 7 20425783.158 20425782.895 20425782.049
+ 44.800 46.800
+ -3911517.531 4 -3047932.748 4 23497248.701 23497249.674 23497247.746
+ 28.100 25.600
+ -22153777.707 7 -17262675.556 8 20504436.286 20504435.301 20504435.770
+ 47.800 48.300
+ -11300736.633 6 -8805756.926 4 22539520.413 22539519.464 22539519.044
+ 40.000 28.800
+ -19469337.921 7 -15170894.866 7 20738219.562 20738219.418 20738218.582
+ 46.500 42.900
+ -11301399.329 5 -8806289.286 4 22773212.771 22773212.530 22773212.066
+ 30.600 25.600
+ 06 1 1 19 24 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8781651.767 5 -6842838.554 4 23152360.169 23152358.366 23152359.474
+ 33.600 29.700
+ -21014466.053 7 -16374896.896 7 20464751.334 20464751.169 20464750.973
+ 44.900 44.000
+ -1233927.692 3 -961501.303 24157614.793 24157616.658 24157613.814
+ 19.900 3.000
+ -15370914.661 7 -11977328.430 7 20425827.142 20425826.707 20425826.068
+ 44.800 46.700
+ -3816831.810 4 -2974151.730 4 23515266.706 23515268.161 23515265.760
+ 29.000 27.400
+ -22095424.448 8 -17217205.488 8 20515540.867 20515539.648 20515540.269
+ 48.000 48.100
+ -11214954.754 6 -8738913.919 4 22555843.951 22555843.390 22555842.649
+ 39.600 28.800
+ -19380480.240 7 -15101655.113 7 20755128.517 20755128.501 20755127.554
+ 46.500 42.600
+ -11096798.708 5 -8646860.325 4 22812147.961 22812146.787 22812146.693
+ 31.300 25.300
+ 06 1 1 19 25 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -8978242.908 5 -6996026.470 5 23114950.162 23114948.426 23114949.488
+ 32.100 30.200
+ -21100481.624 7 -16441921.958 7 20448383.226 20448382.857 20448382.818
+ 44.900 44.100
+ -1434250.764 4 -1117597.087 3 24119495.076 24119498.079 24119493.676
+ 27.600 21.600
+ -15369463.481 7 -11976197.634 7 20426103.446 20426102.907 20426102.267
+ 45.000 46.800
+ -3720090.284 4 -2898768.770 4 23533676.037 23533677.283 23533675.077
+ 28.600 25.300
+ -22035712.149 8 -17170676.418 8 20526903.502 20526902.497 20526903.053
+ 48.100 48.000
+ -11126915.705 6 -8670312.057 4 22572596.915 22572597.182 22572595.981
+ 39.000 29.500
+ -19290108.271 7 -15031235.404 7 20772325.582 20772325.698 20772324.726
+ 46.700 42.600
+ -10891151.843 5 -8486616.132 4 22851280.623 22851280.442 22851279.730
+ 30.800 26.500
+ 06 1 1 19 26 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9174010.185 5 -7148572.401 5 23077696.881 23077695.401 23077696.103
+ 33.100 31.000
+ -21184634.343 7 -16507495.457 7 20432369.282 20432369.166 20432368.904
+ 44.900 44.400
+ -1633649.179 4 -1272972.292 4 24081551.474 24081552.858 24081550.399
+ 26.200 25.600
+ -15366787.934 7 -11974112.791 7 20426612.594 20426612.135 20426611.460
+ 45.100 46.700
+ -3621313.432 4 -2821799.873 4 23552472.614 23552474.355 23552472.012
+ 29.500 25.900
+ -21974642.177 8 -17123089.430 7 20538525.033 20538523.736 20538524.402
+ 48.200 47.700
+ -11036632.776 6 -8599961.731 4 22589777.112 22589777.021 22589776.062
+ 38.600 28.800
+ -19198236.789 7 -14959647.244 7 20789808.261 20789808.336 20789807.402
+ 46.500 42.600
+ -10684477.127 5 -8325571.012 4 22890609.131 22890609.716 22890608.772
+ 30.200 26.500
+ 06 1 1 19 27 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9368942.807 5 -7300467.956 5 23040602.330 23040600.838 23040601.537
+ 33.500 31.600
+ -21266922.304 7 -16571615.899 7 20416710.436 20416710.195 20416710.071
+ 44.900 44.400
+ -1832102.055 4 -1427610.650 4 24043787.158 24043788.099 24043786.200
+ 25.900 27.400
+ -15362883.524 7 -11971070.385 7 20427355.678 20427355.043 20427354.499
+ 45.300 46.600
+ -3520520.921 5 -2743260.319 4 23571652.729 23571654.164 23571652.103
+ 30.100 24.900
+ -21912214.484 7 -17074444.471 7 20550404.377 20550403.288 20550403.868
+ 47.800 47.500
+ -10944118.173 6 -8527872.418 4 22607382.460 22607381.949 22607381.095
+ 38.400 28.800
+ -19104880.078 7 -14886901.770 7 20807573.514 20807573.589 20807572.544
+ 46.300 42.600
+ -10476791.690 5 -8163738.313 4 22930131.435 22930130.759 22930130.293
+ 31.000 24.900
+ 06 1 1 19 28 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9563030.982 5 -7451705.459 5 23003669.014 23003667.173 23003668.163
+ 35.100 32.000
+ -21347343.292 7 -16634281.564 7 20401406.848 20401406.542 20401406.466
+ 45.100 44.400
+ -2029588.828 3 -1581496.126 4 24006205.461 24006208.512 24006205.005
+ 22.100 26.800
+ -15357746.121 7 -11967067.209 7 20428333.158 20428332.606 20428331.946
+ 45.100 46.500
+ -3417732.663 4 -2663165.675 4 23591213.515 23591214.657 23591212.572
+ 29.700 24.900
+ -21848429.533 7 -17024741.914 7 20562542.072 20562541.187 20562541.582
+ 47.700 47.500
+ -10849384.977 6 -8454054.367 4 22625409.373 22625408.633 22625408.418
+ 38.600 27.900
+ -19010053.070 7 -14813010.609 7 20825618.484 20825618.600 20825617.583
+ 46.300 42.500
+ -10268113.964 5 -8001132.388 4 22969841.715 22969840.925 22969840.500
+ 31.800 24.200
+ 06 1 1 19 29 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9756264.460 5 -7602276.905 5 22966897.675 22966896.036 22966896.698
+ 33.800 32.400
+ -21425895.464 7 -16695491.018 7 20386458.796 20386458.562 20386458.461
+ 45.200 44.600
+ -2226088.429 4 -1734612.417 2 23968813.153 23968814.088 23968811.983
+ 26.200 17.800
+ -15351371.490 7 -11962099.955 7 20429546.223 20429545.744 20429545.090
+ 45.200 46.500
+ -3312969.337 4 -2581531.981 4 23611148.608 23611150.143 23611147.766
+ 28.400 24.600
+ -21783287.616 7 -16973981.987 7 20574938.377 20574937.271 20574937.832
+ 47.800 47.400
+ -10752446.970 6 -8378518.269 4 22643855.814 22643855.846 22643854.963
+ 38.600 28.800
+ -18913770.046 7 -14737984.898 7 20843940.760 20843940.577 20843939.673
+ 46.400 42.400
+ -10058462.268 4 -7837767.559 4 23009736.556 23009736.536 23009735.733
+ 29.000 24.600
+ 06 1 1 19 30 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -9948632.931 5 -7752174.317 5 22930290.912 22930289.170 22930289.901
+ 33.000 30.200
+ -21502577.137 7 -16755242.943 7 20371866.848 20371866.457 20371866.415
+ 45.100 44.700
+ -2421580.233 4 -1886943.450 2 23931611.787 23931613.471 23931610.572
+ 27.900 16.100
+ -15343755.354 7 -11956165.302 7 20430995.463 20430995.064 20430994.329
+ 45.300 46.600
+ -3206250.898 4 -2498374.823 3 23631456.667 23631457.788 23631455.718
+ 26.800 23.400
+ -21716789.481 7 -16922165.264 7 20587592.521 20587591.455 20587591.959
+ 47.600 47.400
+ -10653317.483 6 -8301274.551 4 22662719.749 22662719.706 22662718.864
+ 38.800 27.900
+ -18816046.244 7 -14661836.494 7 20862536.711 20862536.834 20862535.757
+ 46.600 42.500
+ -9847854.268 4 -7673657.580 3 23049814.174 23049813.657 23049813.293
+ 27.600 22.600
+ 06 1 1 19 31 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10140126.422 5 -7901389.900 5 22893850.679 22893849.364 22893849.911
+ 34.300 32.100
+ -21577387.184 7 -16813536.460 7 20357630.893 20357630.449 20357630.466
+ 44.800 44.700
+ -2616043.596 4 -2038473.201 2 23894605.646 23894607.091 23894604.947
+ 27.100 17.000
+ -15334893.537 7 -11949259.985 7 20432681.875 20432681.240 20432680.684
+ 45.000 46.400
+ -3097598.735 4 -2413710.869 3 23652132.540 23652133.692 23652131.723
+ 27.100 22.100
+ -21648935.564 7 -16869292.094 7 20600504.823 20600503.620 20600504.082
+ 47.500 47.200
+ -10552010.264 6 -8222333.871 4 22681997.983 22681997.489 22681996.874
+ 38.800 28.400
+ -18716896.367 7 -14584576.852 7 20881404.507 20881404.338 20881403.595
+ 46.900 42.000
+ -9636308.756 4 -7508817.040 4 23090070.875 23090069.751 23090069.533
+ 29.500 24.200
+ 06 1 1 19 32 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10330735.077 5 -8049915.967 5 22857579.021 22857577.341 22857578.203
+ 34.600 32.400
+ -21650324.141 7 -16870370.424 7 20343751.355 20343751.014 20343751.021
+ 45.100 44.700
+ -2809457.498 4 -2189185.220 4 23857800.708 23857802.837 23857799.829
+ 25.600 24.600
+ -15324781.806 7 -11941380.714 7 20434606.123 20434605.463 20434604.928
+ 45.100 46.300
+ -2987033.748 4 -2327556.411 3 23673172.024 23673173.820 23673171.286
+ 26.800 23.000
+ -21579726.307 7 -16815362.812 7 20613674.834 20613673.767 20613674.180
+ 47.500 47.100
+ -10448540.144 6 -8141707.831 4 22701687.894 22701687.689 22701686.741
+ 38.300 27.900
+ -18616334.754 7 -14506217.153 7 20900540.780 20900540.637 20900539.822
+ 46.800 42.200
+ -9423843.308 4 -7343259.678 3 23130500.193 23130500.583 23130499.852
+ 28.100 23.000
+ 06 1 1 19 33 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10520449.125 5 -8197744.948 5 22821477.720 22821475.842 22821476.783
+ 35.100 32.400
+ -21721387.366 7 -16925744.342 7 20330228.517 20330228.168 20330228.181
+ 45.100 45.000
+ -3001801.112 4 -2339063.208 4 23821198.718 23821200.503 23821197.587
+ 24.600 25.600
+ -15313416.053 7 -11932524.281 7 20436768.704 20436768.234 20436767.627
+ 45.000 46.200
+ -2874577.036 4 -2239927.857 4 23694572.253 23694573.883 23694571.401
+ 26.800 24.600
+ -21509162.614 7 -16760378.123 7 20627102.669 20627101.637 20627102.089
+ 47.900 47.100
+ -10342921.602 6 -8059407.682 4 22721786.043 22721786.030 22721784.928
+ 38.100 27.400
+ -18514376.833 7 -14426769.417 6 20919942.460 20919942.675 20919941.557
+ 46.500 41.900
+ -9210477.274 4 -7177000.558 4 23171102.302 23171103.389 23171102.127
+ 28.400 24.600
+ 06 1 1 19 34 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10709258.204 5 -8344868.787 5 22785548.611 22785546.633 22785547.760
+ 35.400 32.300
+ -21790575.896 7 -16979657.449 7 20317062.333 20317061.972 20317061.909
+ 44.900 45.100
+ -3193053.348 4 -2488090.727 3 23784805.613 23784805.964 23784804.478
+ 26.500 22.600
+ -15300792.190 7 -11922687.507 7 20439171.135 20439170.636 20439169.986
+ 45.000 46.400
+ -2760250.651 4 -2150842.450 4 23716327.908 23716329.590 23716327.060
+ 26.800 24.900
+ -21437245.218 7 -16704338.596 7 20640788.063 20640787.106 20640787.444
+ 47.700 47.000
+ -10235169.305 6 -7975444.875 4 22742291.199 22742290.238 22742289.837
+ 37.400 27.100
+ -18411037.387 7 -14346245.168 7 20939607.384 20939607.535 20939606.438
+ 46.400 42.000
+ -8996228.517 4 -7010053.603 3 23211872.685 23211873.650 23211872.128
+ 27.900 23.400
+ 06 1 1 19 35 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -10897153.115 6 -8491280.343 5 22749793.474 22749791.335 22749792.597
+ 36.000 32.600
+ -21857889.580 7 -17032109.651 7 20304253.074 20304252.664 20304252.627
+ 44.900 45.200
+ -3383193.230 3 -2636251.475 4 23748621.931 23748624.338 23748621.113
+ 23.400 26.800
+ -15286906.131 7 -11911867.206 7 20441813.469 20441813.004 20441812.365
+ 45.200 46.300
+ -2644077.166 4 -2060317.744 3 23738434.295 23738436.327 23738433.758
+ 26.800 23.000
+ -21363974.683 7 -16647244.671 7 20654730.998 20654730.011 20654730.408
+ 47.600 47.000
+ -10125298.470 6 -7889831.266 4 22763198.700 22763198.214 22763197.303
+ 37.700 27.600
+ -18306331.119 7 -14264655.867 6 20959532.254 20959532.395 20959531.371
+ 46.500 41.800
+ -8781115.827 4 -6842433.474 3 23252807.432 23252808.138 23252806.856
+ 25.600 23.000
+ 06 1 1 19 36 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11084123.949 5 -8636971.845 5 22714213.882 22714211.799 22714213.079
+ 35.600 32.600
+ -21923327.931 7 -17083100.547 7 20291800.383 20291800.209 20291799.970
+ 44.800 45.600
+ -3572199.917 4 -2783529.217 4 23712656.029 23712657.123 23712654.926
+ 27.100 26.200
+ -15271753.831 7 -11900060.214 7 20444696.877 20444696.366 20444695.699
+ 44.900 46.300
+ -2526077.669 4 -1968370.160 3 23760889.628 23760891.159 23760888.934
+ 27.400 23.400
+ -21289352.186 7 -16589097.271 7 20668930.984 20668930.181 20668930.524
+ 47.600 46.900
+ -10013324.412 6 -7802578.783 4 22784506.710 22784506.639 22784505.518
+ 37.400 28.400
+ -18200273.140 7 -14182013.292 6 20979714.511 20979714.559 20979713.556
+ 46.400 41.800
+ -8565157.563 4 -6674154.395 3 23293903.749 23293903.303 23293902.559
+ 26.800 18.600
+ 06 1 1 19 37 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11270160.838 5 -8781935.608 5 22678811.726 22678810.159 22678811.018
+ 35.800 33.500
+ -21986891.073 7 -17132630.254 7 20279704.840 20279704.469 20279704.329
+ 44.900 45.500
+ -3760052.356 4 -2929907.571 4 23676908.629 23676909.689 23676907.443
+ 28.400 25.300
+ -15255331.384 7 -11887263.503 7 20447821.967 20447821.522 20447820.860
+ 45.000 46.300
+ -2406275.228 4 -1875017.702 3 23783686.996 23783688.359 23783686.574
+ 26.500 21.100
+ -21213378.719 7 -16529897.171 7 20683388.368 20683387.494 20683387.852
+ 47.800 46.800
+ -9899262.729 6 -7713699.583 4 22806211.888 22806211.599 22806210.650
+ 37.200 27.900
+ -18092878.318 7 -14098329.029 6 21000151.122 21000151.157 21000150.131
+ 46.500 41.800
+ -8348372.493 4 -6505231.079 3 23335157.635 23335156.670 23335156.049
+ 26.800 23.000
+ 06 1 1 19 38 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11455254.040 6 -8926164.017 5 22643589.599 22643588.082 22643588.851
+ 36.300 33.400
+ -22048579.052 7 -17180698.787 7 20267965.960 20267965.601 20267965.449
+ 44.900 45.600
+ -3946729.708 4 -3075370.267 4 23641384.376 23641385.400 23641383.269
+ 26.200 24.200
+ -15237634.529 7 -11873473.741 7 20451189.411 20451189.051 20451188.273
+ 44.800 46.100
+ -2284691.128 4 -1780276.955 3 23806823.868 23806825.531 23806823.118
+ 26.200 22.600
+ -21136054.794 7 -16469644.764 7 20698102.632 20698101.703 20698102.218
+ 47.800 46.700
+ -9783129.430 6 -7623206.123 4 22828311.519 22828311.069 22828310.328
+ 37.700 27.600
+ -17984162.055 7 -14013615.079 6 21020839.234 21020839.165 21020838.267
+ 46.800 41.600
+ -8130779.267 4 -6335678.079 3 23376564.284 23376563.371 23376562.782
+ 24.600 19.900
+ 06 1 1 19 39 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11639394.143 6 -9069649.736 5 22608549.201 22608547.276 22608548.405
+ 36.400 33.200
+ -22108392.129 7 -17227306.366 7 20256583.884 20256583.499 20256583.423
+ 44.900 45.700
+ -4132211.037 4 -3219901.042 3 23606088.123 23606089.383 23606087.028
+ 26.200 18.600
+ -15218659.642 7 -11858688.109 7 20454800.409 20454799.888 20454799.188
+ 44.900 46.200
+ -2161349.554 4 -1684166.742 3 23830295.375 23830296.822 23830294.550
+ 26.200 23.800
+ -21057381.751 7 -16408341.102 7 20713073.731 20713072.683 20713073.224
+ 47.800 46.400
+ -9664941.033 6 -7531111.293 4 22850801.683 22850801.283 22850800.670
+ 37.400 27.100
+ -17874139.056 7 -13927882.886 6 21041775.929 21041775.896 21041775.004
+ 46.500 41.500
+ -7912397.269 4 -6165510.405 3 23418121.003 23418120.059 23418119.560
+ 27.900 19.300
+ 06 1 1 19 40 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -11822571.910 6 -9212385.546 5 22573691.734 22573689.749 22573690.807
+ 37.100 34.400
+ -22166331.151 7 -17272453.637 7 20245558.584 20245558.055 20245558.100
+ 45.100 45.800
+ -4316475.415 4 -3363483.575 3 23571023.998 23571024.883 23571022.517
+ 26.200 22.600
+ -15198402.707 7 -11842903.471 7 20458655.156 20458654.672 20458653.964
+ 44.900 46.300
+ -2036272.610 4 -1586704.321 4 23854096.700 23854098.420 23854095.940
+ 26.200 24.200
+ -20977360.818 7 -16345987.137 7 20728301.199 20728300.162 20728300.637
+ 47.700 46.200
+ -9544713.333 6 -7437427.382 4 22873680.477 22873679.541 22873679.464
+ 37.100 26.200
+ -17762823.747 7 -13841143.690 6 21062958.321 21062958.478 21062957.480
+ 46.400 41.400
+ -7693244.915 4 -5994742.480 3 23459824.133 23459823.629 23459822.886
+ 27.900 22.100
+ 06 1 1 19 41 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12004777.958 6 -9354364.187 5 22539018.881 22539017.013 22539017.909
+ 36.700 34.600
+ -22222396.866 7 -17316141.190 7 20234889.385 20234889.041 20234888.992
+ 45.100 45.800
+ -4499501.759 4 -3506101.348 4 23536194.890 23536196.691 23536193.492
+ 24.900 25.900
+ -15176859.936 7 -11826116.883 7 20462754.410 20462754.102 20462753.283
+ 44.800 46.100
+ -1909483.581 4 -1487907.783 3 23878223.710 23878225.485 23878222.946
+ 27.100 22.600
+ -20895992.833 7 -16282583.516 7 20743784.942 20743783.793 20743784.521
+ 47.700 45.800
+ -9422463.738 6 -7342167.962 4 22896943.617 22896943.621 22896942.410
+ 36.600 27.600
+ -17650231.383 7 -13753409.383 6 21084383.940 21084384.113 21084382.994
+ 46.200 41.200
+ -7473341.004 4 -5823388.928 3 23501669.257 23501670.332 23501669.167
+ 24.900 21.100
+ 06 1 1 19 42 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12186002.915 6 -9495578.346 5 22504532.708 22504530.642 22504531.904
+ 36.900 33.900
+ -22276590.492 7 -17358369.979 7 20224577.079 20224576.298 20224576.579
+ 45.200 45.900
+ -4681269.215 5 -3647738.191 4 23501605.639 23501607.414 23501604.565
+ 30.600 25.900
+ -15154027.527 7 -11808325.385 7 20467099.423 20467099.000 20467098.276
+ 44.800 46.100
+ -1781006.542 4 -1387795.914 3 23902672.185 23902674.281 23902671.428
+ 25.300 23.800
+ -20813279.255 7 -16218131.383 7 20759524.853 20759523.745 20759524.360
+ 47.900 45.800
+ -9298208.750 6 -7245345.922 4 22920588.291 22920588.534 22920587.287
+ 36.400 26.200
+ -17536377.109 7 -13664691.762 6 21106049.794 21106049.918 21106048.871
+ 46.200 41.300
+ -7252704.532 4 -5651464.525 3 23543655.495 23543656.357 23543654.829
+ 26.800 23.400
+ 06 1 1 19 43 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12366237.779 6 -9636021.024 5 22470235.509 22470233.267 22470234.537
+ 37.700 34.700
+ -22328912.941 7 -17399140.699 7 20214620.178 20214619.723 20214619.773
+ 45.000 46.100
+ -4861756.792 4 -3788377.757 4 23467260.224 23467261.790 23467258.781
+ 27.600 26.800
+ -15129901.696 7 -11789526.034 7 20471690.174 20471689.918 20471689.057
+ 44.900 45.900
+ -1650864.142 4 -1286386.351 3 23927437.578 23927439.342 23927436.737
+ 26.200 21.100
+ -20729221.636 8 -16152631.935 7 20775520.810 20775519.340 20775520.155
+ 48.100 45.600
+ -9171965.754 6 -7146974.773 4 22944612.006 22944612.040 22944610.924
+ 36.800 26.800
+ -17421275.741 7 -13575002.375 6 21127952.850 21127952.891 21127951.962
+ 46.600 40.800
+ -7031354.683 4 -5478984.329 3 23585776.374 23585778.024 23585776.268
+ 24.600 22.600
+ 06 1 1 19 44 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12545473.183 6 -9775684.916 5 22436127.854 22436126.014 22436126.900
+ 37.400 35.800
+ -22379365.828 7 -17438454.624 7 20205019.325 20205018.820 20205018.912
+ 45.100 46.100
+ -5040943.672 4 -3928003.711 4 23433161.176 23433163.136 23433160.066
+ 25.300 26.500
+ -15104478.870 7 -11769716.036 7 20476528.106 20476527.715 20476527.004
+ 45.100 45.800
+ -1519080.243 4 -1183697.672 3 23952515.074 23952517.429 23952514.689
+ 25.600 21.100
+ -20643820.856 8 -16086085.871 7 20791771.866 20791770.617 20791771.268
+ 48.000 45.500
+ -9043751.781 6 -7047067.810 4 22969010.752 22969009.949 22969009.294
+ 36.000 26.200
+ -17304942.395 7 -13484353.003 6 21150090.278 21150090.420 21150089.427
+ 46.500 40.900
+ -6809310.195 3 -5305962.770 2 23628031.211 23628030.973 23628030.154
+ 23.400 15.100
+ 06 1 1 19 45 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12723700.197 6 -9914563.056 5 22402212.108 22402210.270 22402211.365
+ 38.100 35.100
+ -22427950.707 7 -17476312.950 7 20195773.705 20195773.391 20195773.367
+ 44.900 46.200
+ -5218808.981 4 -4066599.908 3 23399314.432 23399315.938 23399313.601
+ 29.000 22.600
+ -15077755.455 7 -11748892.596 7 20481613.668 20481613.088 20481612.425
+ 45.200 45.900
+ -1385678.861 4 -1079748.647 3 23977900.707 23977902.648 23977900.181
+ 27.400 20.500
+ -20557079.106 7 -16018494.896 7 20808278.156 20808277.067 20808277.702
+ 47.800 45.500
+ -8913584.428 6 -6945638.751 4 22993780.419 22993780.194 22993779.388
+ 36.500 25.600
+ -17187391.254 7 -13392754.711 6 21172459.593 21172459.526 21172458.660
+ 46.300 40.600
+ -6586590.846 4 -5132415.340 3 23670413.127 23670413.634 23670412.538
+ 24.900 19.300
+ 06 1 1 19 46 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -12900909.750 6 -10052648.360 5 22368490.280 22368488.288 22368489.403
+ 37.900 35.400
+ -22474669.694 7 -17512717.339 7 20186883.378 20186883.104 20186883.031
+ 44.900 46.400
+ -5395331.803 4 -4204150.030 4 23365723.364 23365724.777 23365722.236
+ 26.800 24.600
+ -15049727.517 7 -11727052.641 7 20486947.175 20486946.572 20486945.922
+ 45.400 45.700
+ -1250684.147 4 -974558.018 4 24003589.239 24003591.835 24003588.755
+ 24.600 24.600
+ -20468997.438 8 -15949859.838 7 20825039.485 20825038.534 20825039.037
+ 48.000 45.400
+ -8781481.895 5 -6842701.779 4 23018918.055 23018918.804 23018917.167
+ 35.500 27.100
+ -17068637.784 7 -13300219.548 6 21195057.662 21195057.613 21195056.702
+ 46.300 40.400
+ -6363214.792 4 -4958356.256 2 23712920.771 23712920.988 23712919.702
+ 26.500 16.100
+ 06 1 1 19 47 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13077092.477 6 -10189933.536 5 22334964.044 22334961.702 22334963.029
+ 38.800 34.900
+ -22519524.791 7 -17547669.341 7 20178347.579 20178347.397 20178347.269
+ 44.600 46.400
+ -5570491.443 4 -4340637.825 4 23332391.890 23332393.060 23332390.429
+ 28.600 28.600
+ -15020391.726 7 -11704193.582 7 20492529.367 20492528.957 20492528.231
+ 45.300 45.700
+ -1114120.141 4 -868144.609 3 24029577.022 24029578.927 24029575.992
+ 24.600 23.400
+ -20379577.151 7 -15880181.700 7 20842055.618 20842054.638 20842055.097
+ 47.500 45.400
+ -8647461.865 5 -6738270.642 4 23044422.155 23044421.558 23044420.850
+ 35.900 24.200
+ -16948697.405 7 -13206759.522 6 21217881.567 21217881.522 21217880.620
+ 46.000 40.000
+ -6139201.687 3 -4783800.686 2 23755548.790 23755549.021 23755547.534
+ 22.100 17.000
+ 06 1 1 19 48 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13252240.431 6 -10326412.393 6 22301634.132 22301632.289 22301633.307
+ 38.600 36.100
+ -22562518.229 7 -17581170.698 7 20170166.382 20170165.916 20170165.994
+ 44.800 46.300
+ -5744267.236 4 -4476047.319 4 23299323.364 23299324.645 23299322.055
+ 28.100 27.900
+ -14989744.759 7 -11680312.821 7 20498361.416 20498360.812 20498360.232
+ 45.500 45.500
+ -976011.072 3 -760527.251 3 24055858.435 24055860.206 24055857.411
+ 23.000 23.000
+ -20288820.156 7 -15809461.970 7 20859326.018 20859325.133 20859325.652
+ 47.400 45.300
+ -8511542.869 5 -6632359.792 4 23070287.095 23070286.080 23070285.582
+ 35.600 24.600
+ -16827584.087 7 -13112385.522 6 21240928.741 21240928.531 21240927.765
+ 45.900 39.500
+ -5914570.608 3 -4608763.706 3 23798295.881 23798295.471 23798293.774
+ 22.600 19.300
+ 06 1 1 19 49 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13426344.189 6 -10462077.560 6 22268503.475 22268501.433 22268502.725
+ 39.200 36.500
+ -22603652.402 7 -17613223.277 7 20162338.809 20162338.285 20162338.380
+ 44.700 46.300
+ -5916638.445 5 -4610362.376 4 23266521.991 23266523.564 23266520.835
+ 31.000 28.400
+ -14957782.910 7 -11655407.473 7 20504443.649 20504443.012 20504442.462
+ 45.400 45.500
+ -836381.335 4 -651724.965 3 24082428.722 24082431.175 24082428.138
+ 25.900 23.400
+ -20196728.267 7 -15737702.072 7 20876850.597 20876849.637 20876850.027
+ 47.400 45.200
+ -8373742.932 6 -6524983.254 4 23096509.301 23096508.439 23096508.068
+ 36.200 24.900
+ -16705313.216 7 -13017109.529 6 21264195.915 21264195.975 21264195.042
+ 46.000 39.900
+ -5689340.825 3 -4433260.131 2 23841155.978 23841155.471 23841154.335
+ 21.100 15.100
+ 06 1 1 19 50 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13599395.388 6 -10596922.567 6 22235573.003 22235570.649 22235572.047
+ 39.000 36.100
+ -22642930.120 7 -17643829.262 7 20154864.540 20154864.074 20154864.105
+ 44.600 46.500
+ -6087584.368 5 -4743566.875 4 23233992.072 23233992.740 23233990.837
+ 30.600 25.600
+ -14924502.982 7 -11629475.049 7 20510776.565 20510775.869 20510775.402
+ 45.600 45.300
+ -695256.159 4 -541757.399 3 24109284.792 24109286.282 24109283.792
+ 27.600 22.100
+ -20103303.783 7 -15664903.776 7 20894628.872 20894627.703 20894628.116
+ 47.300 45.100
+ -8234080.830 5 -6416155.661 4 23123085.593 23123085.334 23123084.490
+ 34.500 25.300
+ -16581899.236 7 -12920942.793 6 21287681.128 21287681.042 21287680.109
+ 46.000 40.200
+ -5463531.539 3 -4257304.991 3 23884126.165 23884125.216 23884124.941
+ 23.800 19.300
+ 06 1 1 19 51 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13771385.162 6 -10730940.490 5 22202843.885 22202841.868 22202843.048
+ 38.600 35.700
+ -22680354.293 7 -17672990.924 7 20147742.877 20147742.488 20147742.429
+ 44.500 46.700
+ -6257084.505 5 -4875644.782 4 23201736.900 23201737.243 23201735.661
+ 30.600 24.600
+ -14889901.605 7 -11602512.929 7 20517361.087 20517360.297 20517359.853
+ 45.700 45.300
+ -552659.602 4 -430643.320 2 24136419.765 24136421.314 24136418.895
+ 25.600 17.000
+ -20008547.858 7 -15591067.999 7 20912660.351 20912659.120 20912659.720
+ 47.500 44.800
+ -8092574.737 5 -6305891.215 4 23150013.248 23150013.329 23150012.303
+ 34.900 25.300
+ -16457356.722 7 -12823896.680 6 21311380.642 21311380.587 21311379.661
+ 46.100 39.600
+ -5237162.458 3 -4080913.635 3 23927201.049 23927202.573 23927200.692
+ 22.600 21.600
+ 06 1 1 19 52 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -13942305.318 6 -10864124.955 6 22170318.741 22170316.863 22170318.203
+ 40.000 36.800
+ -22715927.995 7 -17700710.663 7 20140973.310 20140972.982 20140972.935
+ 44.500 46.600
+ -6425118.321 5 -5006580.137 4 23169761.280 23169762.098 23169760.016
+ 31.100 28.600
+ -14853975.527 7 -11574518.577 7 20524197.486 20524196.842 20524196.291
+ 45.600 45.200
+ -408616.665 4 -318402.204 3 24163830.348 24163832.234 24163829.581
+ 25.900 19.300
+ -19912462.615 7 -15516196.387 7 20930944.967 20930943.605 20930944.214
+ 47.700 44.700
+ -7949244.580 5 -6194205.412 3 23177287.637 23177288.183 23177286.711
+ 33.900 23.800
+ -16331701.010 7 -12725983.132 6 21335292.046 21335292.131 21335291.177
+ 46.100 39.700
+ -5010252.207 3 -3904100.643 2 23970380.594 23970381.563 23970380.073
+ 22.600 12.600
+ 06 1 1 19 53 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14112147.454 6 -10996469.392 6 22137998.596 22137996.926 22137997.930
+ 39.300 36.700
+ -22749654.168 7 -17726990.766 7 20134555.440 20134555.134 20134555.058
+ 44.500 46.800
+ -6591665.200 5 -5136356.771 4 23138067.949 23138069.158 23138066.997
+ 30.400 27.400
+ -14816721.659 7 -11545489.584 7 20531286.647 20531285.953 20531285.490
+ 45.800 45.300
+ -263152.830 4 -205053.902 3 24191511.472 24191513.152 24191510.842
+ 25.300 23.000
+ -19815050.210 7 -15440290.617 7 20949481.626 20949480.403 20949481.159
+ 47.700 44.400
+ -7804109.232 5 -6081112.963 4 23204907.257 23204906.831 23204905.965
+ 34.900 25.600
+ -16204946.762 7 -12627213.593 6 21359412.585 21359412.735 21359411.676
+ 45.800 39.600
+ -4782820.413 3 -3726881.174 2 24013659.922 24013660.103 24013659.410
+ 23.800 12.600
+ 06 1 1 19 54 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14280902.634 6 -11127966.871 6 22105885.932 22105883.887 22105884.992
+ 39.700 37.300
+ -22781536.654 7 -17751834.236 7 20128488.526 20128487.909 20128488.046
+ 44.300 46.600
+ -6756704.860 5 -5264958.965 4 23106662.285 23106662.605 23106661.317
+ 31.300 25.900
+ -14778136.836 7 -11515423.489 7 20538628.936 20538628.502 20538627.809
+ 45.600 45.200
+ -116292.858 4 -90617.737 3 24219458.161 24219459.875 24219457.198
+ 25.300 22.100
+ -19716313.037 7 -15363352.563 7 20968270.782 20968269.502 20968270.229
+ 47.700 44.200
+ -7657187.735 5 -5966628.764 3 23232865.070 23232864.512 23232863.620
+ 33.200 23.400
+ -16077108.200 7 -12527599.130 6 21383739.356 21383739.574 21383738.446
+ 45.600 39.100
+ -4554886.153 3 -3549270.206 2 24057036.305 24057035.721 24057034.620
+ 22.600 16.100
+ 06 1 1 19 55 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14448563.328 6 -11258611.493 6 22073980.806 22073979.055 22073980.069
+ 39.300 37.200
+ -22811579.003 7 -17775243.834 7 20122771.385 20122771.074 20122771.016
+ 44.300 46.700
+ -6920216.946 5 -5392370.869 4 23075546.629 23075547.690 23075545.447
+ 32.300 28.100
+ -14738218.043 7 -11484317.931 7 20546225.377 20546224.751 20546224.186
+ 45.800 45.100
+ 31938.661 4 24887.232 2 24247665.138 24247667.665 24247664.533
+ 24.600 17.800
+ -19616252.941 7 -15285383.656 7 20987311.303 20987310.391 20987310.880
+ 47.500 44.300
+ -7508499.388 5 -5850767.722 4 23261159.531 23261159.823 23261158.490
+ 33.800 25.600
+ -15948199.757 7 -12427151.006 6 21408269.719 21408270.057 21408268.918
+ 45.500 39.100
+ -4326468.963 3 -3371282.968 3 24100502.133 24100502.543 24100501.129
+ 21.100 20.500
+ 06 1 1 19 56 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14615120.416 6 -11388396.168 6 22042286.457 22042284.148 22042285.619
+ 40.400 37.100
+ -22839785.178 7 -17797222.647 7 20117404.066 20117403.556 20117403.645
+ 44.400 46.700
+ -7082181.342 5 -5518576.746 5 23044725.936 23044727.115 23044724.802
+ 32.700 30.400
+ -14696962.290 7 -11452170.592 7 20554076.359 20554075.452 20554075.110
+ 46.000 45.100
+ 181515.906 4 141440.825 2 24276129.419 24276131.138 24276128.666
+ 24.200 16.100
+ -19514872.258 7 -15206385.726 7 21006603.503 21006602.389 21006602.960
+ 47.100 44.000
+ -7358064.396 5 -5733545.717 4 23289786.399 23289786.578 23289785.126
+ 33.000 25.600
+ -15818236.505 7 -12325880.946 6 21433000.974 21433001.159 21433000.081
+ 45.300 38.900
+ -4097588.572 3 -3192934.837 2 24144054.785 24144056.479 24144054.838
+ 22.600 17.000
+ 06 1 1 19 57 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14780566.552 6 -11517315.176 6 22010802.766 22010800.618 22010802.011
+ 40.700 37.300
+ -22866158.901 7 -17817773.568 7 20112385.296 20112384.869 20112384.932
+ 44.600 46.900
+ -7242577.781 5 -5643560.837 4 23014202.814 23014203.931 23014201.812
+ 30.600 26.200
+ -14654366.652 7 -11418979.179 7 20562181.611 20562181.238 20562180.533
+ 45.800 44.900
+ 332412.988 3 259022.888 2 24304843.975 24304846.043 24304843.257
+ 23.400 12.600
+ -19412173.457 7 -15126360.690 7 21026146.395 21026145.461 21026145.844
+ 46.800 44.200
+ -7205902.170 5 -5614977.809 4 23318741.804 23318741.835 23318740.667
+ 33.600 24.600
+ -15687233.244 7 -12223800.503 6 21457930.300 21457930.254 21457929.249
+ 45.400 38.800
+ -3868264.541 4 -3014240.928 2 24187696.229 24187695.740 24187694.767
+ 24.900 15.100
+ 06 1 1 19 58 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -14944893.493 6 -11645362.070 6 21979532.701 21979530.266 21979531.812
+ 40.700 37.500
+ -22890704.630 7 -17836900.080 7 20107714.451 20107713.892 20107713.973
+ 44.600 46.800
+ -7401386.320 5 -5767307.647 4 22983982.996 22983983.338 22983981.863
+ 32.600 27.600
+ -14610428.455 7 -11384741.618 7 20570543.012 20570542.315 20570541.802
+ 45.800 44.700
+ 484604.546 2 377613.584 2 24333804.811 24333807.159 24333804.379
+ 16.100 13.900
+ -19308159.039 7 -15045310.508 7 21045939.848 21045938.891 21045939.157
+ 46.900 44.100
+ -7052032.454 5 -5495079.413 3 23348022.676 23348022.198 23348021.459
+ 33.100 23.800
+ -15555203.731 7 -12120920.382 6 21483054.596 21483054.623 21483053.662
+ 45.400 38.700
+ -3638514.886 3 -2835215.406 3 24231415.423 24231415.904 24231414.751
+ 19.300 19.300
+ 06 1 1 19 59 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15108093.377 6 -11772530.735 6 21948476.328 21948474.246 21948475.615
+ 40.500 38.000
+ -22913426.536 7 -17854605.435 7 20103390.491 20103389.934 20103390.109
+ 44.400 46.800
+ -7558586.884 5 -5889801.478 4 22954069.113 22954069.164 22954067.751
+ 33.000 29.200
+ -14565144.815 7 -11349455.659 7 20579159.991 20579159.411 20579158.867
+ 45.600 44.700
+ 638065.208 3 497193.193 2 24363007.852 24363009.836 24363007.012
+ 23.000 13.900
+ -19202831.442 7 -14963237.065 7 21065982.871 21065981.921 21065982.446
+ 47.100 44.000
+ -6896474.966 5 -5373865.831 3 23377623.831 23377624.088 23377622.516
+ 32.400 23.000
+ -15422162.196 7 -12017251.666 6 21508371.822 21508371.715 21508370.860
+ 45.700 38.700
+ -3408360.159 3 -2655874.348 3 24275213.193 24275213.611 24275212.331
+ 20.500 18.600
+ 06 1 1 20 0 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15270158.067 6 -11898814.837 6 21917636.304 21917634.277 21917635.589
+ 41.000 38.400
+ -22934329.386 7 -17870893.336 7 20099412.790 20099412.323 20099412.342
+ 44.400 47.000
+ -7714159.824 5 -6011027.006 4 22924464.141 22924464.802 22924462.953
+ 33.000 29.900
+ -14518513.226 7 -11313119.352 7 20588033.633 20588033.211 20588032.504
+ 45.600 44.500
+ 792769.455 4 617741.835 2 24392447.238 24392449.620 24392446.391
+ 25.600 17.800
+ -19096193.069 7 -14880142.244 7 21086275.789 21086274.478 21086275.113
+ 47.500 43.600
+ -6739251.093 5 -5251353.777 4 23407542.787 23407542.699 23407541.742
+ 32.600 24.200
+ -15288123.029 7 -11912805.576 6 21533878.636 21533878.475 21533877.701
+ 45.400 38.400
+ -3177819.424 3 -2476232.349 1 24319082.889 24319083.899 24319081.984
+ 21.600 9.000
+ 06 1 1 20 1 0.0000000 0 9G02G04G05G07G09G17G20G24G28
+ -15431079.834 6 -12024208.342 6 21887014.288 21887011.742 21887013.469
+ 41.200 38.200
+ -22953417.862 7 -17885767.443 7 20095780.466 20095779.782 20095779.999
+ 44.500 46.900
+ -7868085.204 5 -6130968.767 4 22895173.057 22895173.225 22895172.073
+ 33.100 27.600
+ -14470530.881 7 -11275730.505 7 20597164.570 20597163.881 20597163.406
+ 45.700 44.400
+ 948690.719 4 739238.834 3 24422118.133 24422120.556 24422117.373
+ 27.100 19.300
+ -18988247.043 7 -14796028.471 7 21106817.174 21106815.977 21106816.701
+ 47.600 43.800
+ -6580380.095 5 -5127558.264 3 23437774.736 23437774.738 23437773.624
+ 31.100 22.100
+ -15153100.962 7 -11807593.588 6 21559572.273 21559572.346 21559571.376
+ 45.000 38.100
+ -2946911.948 2 -2296304.539 1 24363021.771 24363023.432 24363021.489
+ 17.800 6.500
+ 06 1 1 20 2 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -15590851.184 6 -12148705.414 6 21856610.579 21856608.071 21856609.808
+ 41.300 38.000
+ -22970697.000 7 -17899231.676 7 20092492.240 20092491.726 20092491.802
+ 44.600 47.000
+ -8020343.603 5 -6249611.569 4 22866199.218 22866198.733 22866198.206
+ 33.400 26.500
+ -14421195.364 7 -11237287.242 7 20606552.665 20606552.099 20606551.527
+ 45.600 44.300
+ 1105803.729 4 861664.435 3 24452016.167 24452018.350 24452015.286
+ 25.600 22.600
+ -18878995.370 7 -14710897.311 7 21127607.022 21127606.059 21127606.594
+ 47.600 43.800
+ -6419882.348 5 -5002495.153 3 23468317.477 23468317.089 23468316.179
+ 32.300 22.100
+ -15017109.987 7 -11701626.614 6 21585450.521 21585450.681 21585449.560
+ 44.600 38.300
+ 06 1 1 20 3 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -15749464.345 6 -12272300.005 6 21826427.334 21826425.246 21826426.592
+ 41.300 38.900
+ -22986171.563 7 -17911289.749 7 20089547.534 20089546.873 20089547.142
+ 45.100 47.000
+ -8170915.453 5 -6366940.182 4 22837545.889 22837546.262 22837544.685
+ 32.800 28.100
+ -14370504.305 7 -11197787.714 7 20616198.914 20616198.220 20616197.786
+ 45.700 44.100
+ 1264083.200 3 984998.948 3 24482135.264 24482138.098 24482134.644
+ 22.600 21.600
+ -18768441.790 7 -14624751.680 7 21148644.811 21148643.590 21148644.203
+ 47.300 43.600
+ -6257778.728 4 -4876180.677 3 23499163.470 23499163.769 23499162.460
+ 29.900 22.100
+ -14880163.759 7 -11594915.285 6 21611510.430 21611510.666 21611509.596
+ 44.700 38.100
+ 06 1 1 20 4 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -15906911.269 6 -12394985.826 6 21796465.986 21796463.942 21796465.167
+ 41.000 38.700
+ -22999846.901 7 -17921945.830 7 20086945.385 20086944.579 20086944.978
+ 45.200 47.100
+ -8319781.224 5 -6482939.345 5 22809217.968 22809218.141 22809216.880
+ 33.200 30.100
+ -14318455.288 7 -11157230.036 7 20626103.613 20626102.916 20626102.353
+ 45.600 44.000
+ 1423502.434 3 1109221.591 4 24512472.076 24512474.424 24512471.390
+ 22.600 24.200
+ -18656588.693 7 -14537593.447 7 21169929.388 21169928.634 21169928.987
+ 46.900 43.500
+ -6094089.938 5 -4748631.040 3 23530313.211 23530313.108 23530311.972
+ 32.800 23.000
+ -14742277.390 7 -11487471.380 6 21637749.426 21637749.653 21637748.539
+ 44.700 37.800
+ 06 1 1 20 5 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16063185.338 6 -12516757.747 6 21766727.821 21766725.804 21766727.117
+ 41.400 38.900
+ -23011728.671 7 -17931204.326 7 20084684.273 20084683.439 20084683.834
+ 45.100 47.000
+ -8466921.831 5 -6597594.231 5 22781217.780 22781218.260 22781216.737
+ 34.400 30.600
+ -14265046.001 7 -11115612.409 7 20636266.950 20636266.253 20636265.749
+ 45.500 43.900
+ 1584035.430 3 1234312.093 3 24543021.070 24543022.596 24543019.872
+ 23.800 22.100
+ -18543439.407 7 -14449425.193 7 21191461.196 21191460.166 21191460.704
+ 46.900 43.100
+ -5928836.129 5 -4619861.884 3 23561759.603 23561760.361 23561758.419
+ 30.400 23.400
+ -14603464.394 7 -11379305.436 6 21664164.598 21664164.738 21664163.724
+ 44.700 37.600
+ 06 1 1 20 6 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16218279.024 6 -12637609.899 6 21737214.530 21737212.527 21737213.932
+ 41.900 39.000
+ -23021822.226 7 -17939069.410 7 20082763.451 20082762.763 20082763.004
+ 45.000 47.100
+ -8612318.195 5 -6710889.993 4 22753549.203 22753550.084 22753548.185
+ 34.300 29.700
+ -14210274.321 7 -11072933.173 7 20646689.469 20646689.103 20646688.409
+ 45.500 44.000
+ 1745656.383 3 1360250.358 3 24573776.100 24573778.582 24573775.205
+ 21.600 23.000
+ -18428996.780 7 -14360249.140 7 21213238.981 21213238.033 21213238.369
+ 46.900 43.200
+ -5762038.735 5 -4489889.955 3 23593500.720 23593500.236 23593499.750
+ 32.800 21.600
+ -14463738.906 7 -11270428.450 6 21690753.762 21690753.629 21690752.730
+ 44.500 37.500
+ 06 1 1 20 7 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16372184.828 7 -12757536.405 6 21707927.516 21707924.884 21707926.751
+ 42.100 39.300
+ -23030133.545 7 -17945545.734 7 20081181.959 20081181.104 20081181.508
+ 45.200 47.100
+ -8755951.321 5 -6822811.808 5 22726216.890 22726217.566 22726215.894
+ 34.300 31.000
+ -14154138.196 7 -11029190.740 7 20657372.117 20657371.499 20657370.905
+ 45.600 44.000
+ 1908339.743 3 1487016.483 3 24604733.229 24604736.230 24604732.552
+ 21.600 21.100
+ -18313264.239 7 -14270067.954 7 21235262.430 21235261.140 21235261.675
+ 46.600 43.100
+ -5593718.417 4 -4358731.325 3 23625530.116 23625530.861 23625529.322
+ 29.900 21.100
+ -14323114.569 7 -11160851.073 6 21717513.517 21717513.533 21717512.553
+ 44.100 37.300
+ 06 1 1 20 8 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16524895.455 6 -12876531.617 6 21678867.151 21678865.130 21678866.335
+ 41.900 39.400
+ -23036668.385 7 -17950637.802 7 20079938.367 20079937.631 20079937.879
+ 45.200 47.200
+ -8897802.412 5 -6933345.019 5 22699223.059 22699224.263 22699222.261
+ 34.700 30.400
+ -14096635.567 7 -10984383.501 7 20668314.407 20668313.813 20668313.275
+ 45.700 44.000
+ 2072058.397 4 1614589.352 3 24635888.647 24635890.831 24635888.115
+ 26.500 18.600
+ -18196244.923 7 -14178884.083 7 21257530.085 21257529.021 21257529.584
+ 46.500 42.700
+ -5423896.199 5 -4226402.368 3 23657847.548 23657846.775 23657845.982
+ 30.600 20.500
+ -14181605.077 7 -11050583.959 6 21744441.911 21744441.984 21744440.896
+ 44.100 36.900
+ 06 1 1 20 9 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16676403.714 7 -12994589.914 6 21650036.425 21650033.952 21650035.688
+ 42.700 39.700
+ -23041432.735 7 -17954350.262 7 20079031.669 20079030.931 20079031.244
+ 45.300 47.300
+ -9037852.773 5 -7042475.092 4 22672572.678 22672573.262 22672571.672
+ 34.900 29.000
+ -14037764.736 7 -10938510.132 7 20679517.151 20679516.572 20679516.034
+ 45.700 43.800
+ 2236786.983 3 1742949.206 2 24667235.058 24667237.524 24667234.365
+ 22.100 16.100
+ -18077942.267 7 -14086700.205 7 21280042.271 21280041.409 21280041.939
+ 46.800 42.700
+ -5252593.095 5 -4092919.498 3 23690444.883 23690444.695 23690443.762
+ 30.400 19.900
+ -14039224.089 7 -10939637.762 6 21771536.020 21771536.081 21771535.085
+ 44.000 36.700
+ 06 1 1 20 10 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16826702.657 7 -13111705.875 6 21621435.173 21621432.956 21621434.351
+ 42.000 39.800
+ -23044432.641 7 -17956687.825 7 20078460.718 20078459.964 20078460.320
+ 45.300 47.100
+ -9176083.901 5 -7150187.565 5 22646268.359 22646268.664 22646267.245
+ 35.500 30.600
+ -13977523.733 7 -10891569.093 7 20690980.501 20690979.934 20690979.423
+ 45.600 43.700
+ 2402498.468 3 1872074.937 2 24698769.353 24698771.723 24698768.728
+ 23.800 16.100
+ -17958359.568 7 -13993518.891 7 21302798.323 21302797.354 21302797.793
+ 46.700 42.800
+ -5079830.266 5 -3958299.178 3 23723320.532 23723320.680 23723319.349
+ 30.100 21.100
+ -13895985.160 7 -10828023.037 6 21798793.553 21798793.731 21798792.548
+ 43.800 36.500
+ 06 1 1 20 11 0.0000000 0 8G02G04G05G07G09G17G20G24
+ -16975785.669 7 -13227874.365 6 21593065.889 21593063.193 21593065.137
+ 43.100 39.700
+ -23045674.630 7 -17957655.577 7 20078224.316 20078223.692 20078223.921
+ 45.300 47.400
+ -9312477.581 5 -7256468.225 5 22620313.278 22620313.538 22620312.096
+ 34.700 30.200
+ -13915910.754 7 -10843558.981 7 20702705.385 20702704.632 20702704.129
+ 45.600 43.600
+ 2569167.380 3 2001946.719 2 24730485.113 24730487.479 24730484.668
+ 23.400 15.100
+ -17837500.672 7 -13899343.138 7 21325797.218 21325795.991 21325796.608
+ 46.600 42.600
+ -4905629.193 5 -3822558.136 3 23756471.002 23756469.383 23756469.424
+ 31.300 19.300
+ -13751902.238 7 -10715750.652 6 21826211.696 21826211.888 21826210.696
+ 43.600 36.500
+ 06 1 1 20 12 0.0000000 0 7G02G04G05G07G17G20G24
+ -17123645.825 7 -13343089.972 6 21564928.664 21564926.384 21564927.890
+ 42.600 40.100
+ -23045165.563 7 -17957258.871 7 20078321.403 20078320.538 20078320.940
+ 45.500 47.300
+ -9447015.503 5 -7361302.853 5 22594711.418 22594711.609 22594710.351
+ 34.800 31.100
+ -13852924.381 7 -10794478.696 7 20714691.312 20714690.579 20714690.081
+ 45.700 43.400
+ -17715368.882 7 -13804175.520 7 21349037.876 21349036.802 21349037.492
+ 46.600 42.300
+ -4730010.804 5 -3685712.695 3 23789890.053 23789889.381 23789888.508
+ 32.000 22.100
+ -13606988.770 7 -10602831.087 6 21853787.646 21853788.032 21853786.884
+ 43.500 36.700
+ 06 1 1 20 13 0.0000000 0 7G02G04G05G07G17G20G24
+ -17270276.097 7 -13457347.207 6 21537025.819 21537023.191 21537024.969
+ 42.600 40.000
+ -23042911.435 7 -17955502.381 7 20078750.059 20078749.494 20078749.748
+ 45.400 47.400
+ -9579679.773 6 -7464677.470 5 22569466.109 22569466.788 22569465.195
+ 36.200 32.600
+ -13788563.076 7 -10744327.028 7 20726938.874 20726937.994 20726937.656
+ 45.700 43.200
+ -17591968.206 7 -13708019.154 7 21372520.554 21372519.344 21372519.721
+ 46.200 42.400
+ -4552996.048 4 -3547779.184 3 23823573.719 23823573.567 23823572.452
+ 29.700 19.300
+ -13461258.129 7 -10489274.773 6 21881519.134 21881519.672 21881518.408
+ 43.400 36.500
+ 06 1 1 20 14 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17415669.800 7 -13570640.894 6 21509357.964 21509355.796 21509357.157
+ 42.600 40.300
+ -23038919.317 7 -17952391.607 7 20079509.697 20079509.017 20079509.301
+ 45.400 47.200
+ -9710452.528 6 -7566578.192 5 22544580.990 22544581.379 22544579.859
+ 36.500 32.300
+ -13722825.168 7 -10693102.681 7 20739448.113 20739447.398 20739447.036
+ 45.700 43.100
+ -17467302.409 7 -13610876.993 7 21396243.601 21396242.369 21396242.894
+ 45.900 42.000
+ -4374607.066 4 -3408774.835 2 23857520.463 23857520.104 23857519.317
+ 29.000 17.800
+ -121872.089 4 -94965.207 2 24667814.227 24667811.111 24667813.051
+ 26.500 17.000
+ -13314723.637 7 -10375092.074 6 21909404.223 21909404.300 21909403.262
+ 43.500 36.100
+ 06 1 1 20 15 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17559820.396 7 -13682965.916 6 21481927.236 21481924.469 21481926.515
+ 43.200 40.600
+ -23033196.160 7 -17947931.977 7 20080598.651 20080598.155 20080598.303
+ 45.300 47.300
+ -9839316.350 5 -7666991.451 5 22520058.828 22520059.429 22520057.728
+ 35.900 32.000
+ -13655709.605 7 -10640804.836 7 20752219.903 20752219.195 20752218.700
+ 45.600 43.200
+ -17341375.245 7 -13512751.957 6 21420206.790 21420205.420 21420205.937
+ 45.600 41.700
+ -4194865.181 4 -3268716.271 3 23891724.509 23891724.027 23891723.134
+ 28.600 19.300
+ -234557.388 4 -182771.916 2 24646369.754 24646367.837 24646369.064
+ 25.600 16.100
+ -13167398.153 7 -10260293.017 5 21937439.044 21937439.369 21937438.214
+ 43.600 35.900
+ 06 1 1 20 16 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17702721.389 7 -13794317.234 6 21454733.890 21454731.411 21454733.132
+ 43.200 40.700
+ -23025749.205 7 -17942129.128 7 20082016.005 20082015.178 20082015.608
+ 45.500 47.400
+ -9966253.654 6 -7765903.535 5 22495903.688 22495903.616 22495902.557
+ 36.600 32.000
+ -13587215.223 7 -10587432.591 7 20765254.148 20765253.320 20765252.982
+ 45.700 43.000
+ -17214190.479 7 -13413646.974 6 21444409.326 21444407.990 21444408.471
+ 45.500 41.900
+ -4013791.804 4 -3127620.232 3 23926180.655 23926181.548 23926179.711
+ 27.600 19.900
+ -345702.282 4 -269378.295 3 24625220.883 24625217.791 24625219.397
+ 24.600 18.600
+ -13019294.993 7 -10144887.976 5 21965622.405 21965622.423 21965621.528
+ 43.100 35.700
+ 06 1 1 20 17 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17844366.279 7 -13904689.769 6 21427779.610 21427777.110 21427778.972
+ 43.600 40.600
+ -23016585.300 7 -17934988.403 7 20083759.891 20083759.038 20083759.459
+ 46.000 47.300
+ -10091247.368 5 -7863301.128 5 22472117.599 22472117.952 22472116.486
+ 35.700 31.800
+ -13517340.728 7 -10532984.930 7 20778550.714 20778549.914 20778549.417
+ 45.700 42.900
+ -17085752.969 7 -13313565.821 6 21468849.966 21468848.788 21468849.310
+ 45.700 41.500
+ -3831408.338 4 -2985503.275 2 23960888.322 23960887.637 23960886.917
+ 27.900 17.800
+ -455286.354 3 -354768.379 2 24604366.289 24604364.467 24604365.347
+ 22.600 17.000
+ -12870426.833 7 -10028886.838 5 21993950.890 21993951.294 21993950.033
+ 42.800 35.600
+ 06 1 1 20 18 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -17984748.941 7 -14014078.748 6 21401065.607 21401063.233 21401064.858
+ 43.400 41.200
+ -23005711.953 7 -17926515.650 7 20085829.044 20085828.126 20085828.579
+ 45.900 47.400
+ -10214280.380 6 -7959170.911 5 22448705.587 22448705.412 22448704.391
+ 37.300 31.800
+ -13446085.111 7 -10477461.071 7 20792110.157 20792109.333 20792109.018
+ 45.900 42.600
+ -16956066.245 7 -13212511.250 6 21493528.666 21493527.313 21493527.909
+ 45.400 41.000
+ -3647736.085 4 -2842382.107 3 23995839.570 23995839.403 23995838.375
+ 28.400 18.600
+ -563288.547 4 -438925.850 3 24583815.864 24583812.549 24583814.057
+ 24.900 21.100
+ -12720807.080 7 -9912300.044 5 22022422.734 22022422.793 22022421.796
+ 42.300 35.400
+ 06 1 1 20 19 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18123862.847 7 -14122479.088 6 21374593.100 21374590.329 21374592.328
+ 43.500 41.000
+ -22993136.698 7 -17916716.738 7 20088222.037 20088221.195 20088221.553
+ 45.700 47.400
+ -10335335.912 6 -8053499.803 5 22425669.379 22425669.301 22425668.135
+ 37.600 32.000
+ -13373447.633 7 -10420860.433 7 20805932.639 20805931.893 20805931.478
+ 45.800 42.600
+ -16825134.637 7 -13110486.637 6 21518444.214 21518442.933 21518443.489
+ 45.600 41.200
+ -3462796.872 4 -2698273.686 3 24031032.279 24031032.540 24031031.002
+ 29.200 19.300
+ -669688.943 4 -521835.081 2 24563567.355 24563564.459 24563566.244
+ 25.600 17.000
+ -12570448.667 7 -9795137.671 5 22051034.973 22051035.078 22051034.038
+ 42.000 35.100
+ 06 1 1 20 20 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18261702.039 7 -14229886.144 6 21348363.235 21348360.449 21348362.413
+ 43.700 41.100
+ -22978866.748 7 -17905597.286 7 20090937.379 20090936.560 20090936.983
+ 45.800 47.400
+ -10454397.567 6 -8146275.005 5 22403011.941 22403012.428 22403011.030
+ 36.200 32.800
+ -13299427.501 7 -10363182.408 7 20820017.832 20820017.371 20820016.790
+ 45.600 42.400
+ -16692962.601 7 -13007495.451 6 21543595.816 21543594.677 21543595.101
+ 45.700 41.200
+ -3276612.569 4 -2553195.013 2 24066461.760 24066461.139 24066460.619
+ 26.800 15.100
+ -774466.981 4 -603480.228 3 24543629.113 24543626.224 24543627.993
+ 28.800 19.300
+ -12419363.981 7 -9677409.381 5 22079785.589 22079785.495 22079784.648
+ 42.400 34.600
+ 06 1 1 20 21 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18398260.594 7 -14336295.307 6 21322376.597 21322374.086 21322375.879
+ 43.400 41.700
+ -22962909.882 7 -17893163.357 7 20093973.911 20093973.091 20093973.508
+ 45.900 47.500
+ -10571448.773 6 -8237483.631 5 22380737.870 22380738.563 22380736.930
+ 36.800 32.800
+ -13224023.813 7 -10304426.285 7 20834366.705 20834366.223 20834365.683
+ 45.600 42.400
+ -16559554.745 7 -12903541.299 6 21568982.264 21568981.166 21568981.757
+ 45.600 41.200
+ -3089204.449 4 -2407162.786 2 24102125.179 24102124.335 24102123.780
+ 28.600 17.800
+ -877602.567 4 -683845.480 3 24524002.709 24524000.052 24524001.636
+ 27.400 21.100
+ -12267566.145 7 -9559125.366 5 22108671.546 22108671.799 22108670.853
+ 42.500 34.700
+ 06 1 1 20 22 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18533532.153 7 -14441701.611 6 21296635.245 21296633.014 21296634.530
+ 43.700 41.900
+ -22945274.188 7 -17879421.248 7 20097329.868 20097329.024 20097329.431
+ 45.800 47.400
+ -10686473.611 6 -8327113.282 5 22358850.031 22358849.652 22358848.763
+ 37.900 32.700
+ -13147236.245 7 -10244591.822 7 20848978.829 20848978.384 20848977.744
+ 45.500 42.300
+ -16424915.510 7 -12798627.630 6 21594603.700 21594602.225 21594602.752
+ 45.200 41.100
+ -2900594.334 4 -2260193.861 2 24138015.979 24138015.487 24138014.672
+ 26.800 17.800
+ -979075.743 4 -762915.382 3 24504693.059 24504690.274 24504691.935
+ 25.900 18.600
+ -12115067.665 7 -9440295.408 5 22137691.166 22137691.287 22137690.293
+ 42.200 35.100
+ 06 1 1 20 23 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18667510.780 7 -14546100.442 6 21271140.316 21271137.051 21271139.467
+ 44.200 41.500
+ -22925967.393 7 -17864376.982 7 20101003.815 20101003.055 20101003.407
+ 45.700 47.500
+ -10799456.046 6 -8415151.476 5 22337350.042 22337349.606 22337348.744
+ 38.100 32.600
+ -13069064.343 7 -10183678.651 7 20863854.553 20863854.029 20863853.415
+ 45.200 42.100
+ -16289049.163 7 -12692757.775 6 21620458.192 21620456.729 21620457.307
+ 45.100 40.900
+ -2710803.708 4 -2112305.147 3 24174132.379 24174131.586 24174130.972
+ 26.800 18.600
+ -1078866.951 4 -840674.706 3 24485702.807 24485700.579 24485701.703
+ 25.300 21.100
+ -11961880.710 6 -9320928.972 5 22166841.590 22166841.863 22166840.697
+ 41.800 34.500
+ 06 1 1 20 24 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18800191.065 7 -14649487.579 7 21245891.737 21245889.122 21245890.944
+ 43.900 42.100
+ -22904997.458 7 -17848036.761 7 20104994.246 20104993.355 20104993.844
+ 46.000 47.400
+ -10910380.552 6 -8501586.082 5 22316241.653 22316241.614 22316240.550
+ 38.400 33.800
+ -12989507.641 7 -10121686.429 6 20878993.736 20878993.097 20878992.499
+ 45.200 41.800
+ -16151961.324 7 -12585936.103 6 21646544.733 21646543.853 21646544.073
+ 44.600 40.900
+ -2519854.381 4 -1963513.470 2 24210468.187 24210468.565 24210467.353
+ 27.400 15.100
+ -1176957.221 4 -917108.562 2 24467037.497 24467034.615 24467035.985
+ 28.100 17.800
+ -11808017.279 6 -9201035.417 5 22196121.101 22196121.344 22196120.148
+ 41.400 34.300
+ 06 1 1 20 25 0.0000000 0 8G02G04G05G07G17G20G23G24
+ -18931567.029 7 -14751858.380 7 21220891.644 21220888.719 21220890.840
+ 44.200 42.000
+ -22882372.632 7 -17830407.015 7 20109299.546 20109298.725 20109299.187
+ 46.000 47.500
+ -11019231.622 6 -8586405.015 5 22295527.980 22295527.469 22295526.757
+ 38.200 33.000
+ -12908565.996 7 -10058615.026 6 20894396.547 20894395.973 20894395.288
+ 45.200 41.900
+ -16013655.848 7 -12478165.633 6 21672863.132 21672862.324 21672862.689
+ 44.600 40.300
+ -2327768.010 4 -1813835.815 2 24247021.953 24247021.146 24247020.277
+ 26.200 16.100
+ -1273326.536 4 -992201.503 3 24448699.020 24448696.044 24448697.451
+ 27.400 19.300
+ -11653490.072 6 -9080624.631 5 22225526.401 22225526.959 22225525.516
+ 41.100 34.100
+ 06 1 1 20 26 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19061632.847 7 -14853208.283 7 21196140.896 21196138.365 21196140.124
+ 44.300 42.400
+ -22858101.154 7 -17811494.164 7 20113918.407 20113917.412 20113917.918
+ 46.100 47.400
+ -11125994.238 6 -8669596.608 5 22275211.318 22275211.232 22275210.183
+ 37.800 33.200
+ -12826239.265 7 -9994464.345 6 20910062.916 20910062.153 20910061.648
+ 45.200 41.600
+ -15874138.397 7 -12369450.764 6 21699412.796 21699411.514 21699412.139
+ 44.800 39.900
+ -2134566.122 4 -1663288.921 2 24283786.228 24283787.179 24283785.043
+ 25.900 15.100
+ -1367956.583 4 -1065939.097 3 24430690.970 24430688.233 24430689.858
+ 25.600 19.900
+ -11498311.462 6 -8959706.245 5 22255056.380 22255056.390 22255055.317
+ 41.100 33.900
+ -128835.001 2 -100390.523 2 24443915.857 24443917.576 24443915.871
+ 17.000 17.000
+ 06 1 1 20 27 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19190383.279 7 -14953533.220 7 21171640.621 21171637.633 21171639.817
+ 44.400 42.600
+ -22832191.217 7 -17791304.597 7 20118848.841 20118847.921 20118848.432
+ 46.100 47.300
+ -11230653.438 6 -8751149.159 5 22255295.314 22255295.424 22255294.321
+ 38.600 33.400
+ -12742527.483 7 -9929234.403 6 20925992.895 20925991.982 20925991.625
+ 45.400 41.500
+ -15733413.482 7 -12259795.008 6 21726191.779 21726190.658 21726191.292
+ 44.700 39.700
+ -1940270.415 4 -1511889.683 2 24320759.173 24320759.749 24320758.377
+ 26.800 17.000
+ -1460828.520 4 -1138306.785 2 24413017.854 24413014.950 24413016.418
+ 24.200 15.100
+ -11342493.399 6 -8838289.598 5 22284707.507 22284707.070 22284706.452
+ 41.300 32.800
+ -321098.908 3 -250206.353 3 24407329.939 24407331.840 24407329.312
+ 19.900 21.100
+ 06 1 1 20 28 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19317812.704 7 -15052828.803 7 21147391.496 21147388.465 21147390.714
+ 44.500 42.300
+ -22804651.389 7 -17769844.980 7 20124089.267 20124088.525 20124088.900
+ 46.000 47.300
+ -11333194.680 6 -8831051.367 5 22235782.173 22235781.838 22235781.124
+ 38.100 32.400
+ -12657430.550 7 -9862925.121 6 20942186.369 20942185.379 20942185.116
+ 45.500 41.700
+ -15591486.574 7 -12149202.633 6 21753199.879 21753198.291 21753199.116
+ 44.700 39.700
+ -1744902.809 4 -1359655.280 2 24357937.209 24357937.059 24357935.505
+ 26.500 13.900
+ -1551923.799 4 -1209289.990 3 24395683.328 24395679.689 24395682.044
+ 26.200 18.600
+ -11186048.041 6 -8716384.139 5 22314478.085 22314477.824 22314477.123
+ 41.200 33.400
+ -512158.620 4 -399083.853 2 24370972.532 24370974.264 24370972.494
+ 25.600 17.000
+ 06 1 1 20 29 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19443915.896 7 -15151090.975 7 21123394.670 21123392.110 21123393.912
+ 44.300 42.800
+ -22775490.053 7 -17747121.853 7 20129638.395 20129637.836 20129638.030
+ 45.700 47.400
+ -11433603.480 6 -8909291.934 5 22216675.344 22216674.701 22216674.149
+ 38.500 32.800
+ -12570949.118 7 -9795537.006 6 20958643.466 20958642.309 20958642.066
+ 45.400 41.600
+ -15448362.563 7 -12037677.464 6 21780435.808 21780434.289 21780434.768
+ 44.200 40.200
+ -1548484.458 4 -1206602.041 1 24395312.603 24395313.859 24395311.960
+ 25.900 11.000
+ -1641223.986 4 -1278874.475 3 24378689.934 24378687.226 24378689.016
+ 29.000 22.100
+ -11028986.677 6 -8593998.684 5 22344365.412 22344366.146 22344364.595
+ 40.500 33.900
+ -701992.433 4 -547006.145 2 24334848.360 24334849.133 24334848.167
+ 25.600 16.100
+ 06 1 1 20 30 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19568687.627 7 -15248315.644 7 21099651.463 21099648.419 21099650.670
+ 44.700 42.700
+ -22744715.918 7 -17723142.007 7 20135494.757 20135493.882 20135494.269
+ 45.900 47.300
+ -11531865.872 6 -8985859.973 5 22197976.422 22197976.367 22197975.437
+ 39.200 33.200
+ -12483083.239 7 -9727070.103 6 20975363.490 20975362.709 20975362.234
+ 45.500 41.300
+ -15304047.204 7 -11925223.974 6 21807897.191 21807896.551 21807897.020
+ 43.900 39.900
+ -1351037.171 4 -1052747.024 2 24432886.347 24432887.335 24432885.120
+ 24.200 17.000
+ -1728711.381 4 -1347046.404 3 24362041.995 24362038.568 24362040.271
+ 27.600 20.500
+ -10871321.182 6 -8471142.478 5 22374368.041 22374368.770 22374367.346
+ 40.600 33.100
+ -890578.099 3 -693955.845 3 24298961.529 24298963.374 24298961.107
+ 22.600 19.300
+ 06 1 1 20 31 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19692122.230 7 -15344498.395 7 21076162.621 21076159.732 21076161.834
+ 44.700 43.200
+ -22712337.650 7 -17697912.186 7 20141656.025 20141655.314 20141655.687
+ 46.000 47.400
+ -11627968.098 6 -9060744.783 5 22179688.861 22179688.728 22179687.694
+ 39.700 33.600
+ -12393833.673 7 -9657525.001 6 20992346.934 20992346.429 20992345.771
+ 45.100 41.400
+ -15158545.415 7 -11811845.987 6 21835585.268 21835584.489 21835585.008
+ 44.000 39.400
+ -1152582.676 4 -898107.249 2 24470651.947 24470651.534 24470650.529
+ 24.600 17.000
+ -1814368.132 4 -1413791.843 3 24345741.580 24345739.079 24345740.496
+ 28.400 22.600
+ -10713063.661 6 -8347824.954 5 22404484.127 22404483.875 22404483.149
+ 40.600 32.600
+ -1077893.657 3 -839915.908 1 24263316.805 24263317.345 24263315.980
+ 20.500 9.000
+ 06 1 1 20 32 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19814214.848 7 -15439635.445 7 21052929.074 21052926.215 21052928.336
+ 44.700 43.300
+ -22678364.251 7 -17671439.409 7 20148121.178 20148120.195 20148120.671
+ 46.100 47.400
+ -11721896.552 6 -9133935.729 5 22161814.590 22161814.378 22161813.577
+ 39.700 33.600
+ -12303200.806 7 -9586901.997 6 21009593.734 21009593.153 21009592.464
+ 44.700 40.900
+ -15011862.718 7 -11697547.808 6 21863498.404 21863497.209 21863497.865
+ 43.800 39.100
+ -953142.172 3 -742699.086 2 24508603.227 24508604.103 24508602.451
+ 20.500 16.100
+ -1898176.579 4 -1479097.056 3 24329793.867 24329790.694 24329792.499
+ 29.500 22.100
+ -10554224.725 6 -8224054.391 5 22434709.935 22434710.172 22434709.042
+ 40.300 32.800
+ -1263917.340 4 -984869.315 2 24227917.577 24227918.573 24227917.061
+ 26.500 17.800
+ 06 1 1 20 33 0.0000000 0 9G02G04G05G07G17G20G23G24G30
+ -19934960.850 7 -15533723.188 7 21029951.725 21029949.043 21029950.990
+ 44.900 43.700
+ -22642804.402 7 -17643730.436 7 20154887.782 20154887.070 20154887.384
+ 46.100 47.400
+ -11813638.110 6 -9205422.604 5 22144356.722 22144356.437 22144355.719
+ 38.900 33.800
+ -12211185.462 7 -9515201.741 6 21027103.558 21027103.137 21027102.481
+ 44.900 40.900
+ -14864005.070 7 -11582334.086 6 21891635.339 21891633.861 21891634.393
+ 43.400 39.400
+ -752737.189 4 -586539.426 2 24546739.670 24546739.806 24546738.368
+ 25.600 17.000
+ -1980119.647 4 -1542948.690 3 24314200.214 24314197.029 24314198.868
+ 28.800 23.000
+ -10394816.361 6 -8099840.105 5 22465044.399 22465044.654 22465043.512
+ 39.700 33.000
+ -1448627.092 4 -1128798.801 4 24192767.716 24192769.695 24192767.557
+ 27.900 26.500
+ 06 1 1 20 34 0.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20054354.710 7 -15626757.309 7 21007231.854 21007229.096 21007231.134
+ 45.200 43.900
+ -22605667.219 7 -17614792.367 7 20161954.850 20161954.038 20161954.410
+ 46.100 47.300
+ -11903179.740 6 -9275195.243 5 22127317.626 22127317.363 22127316.374
+ 39.100 34.000
+ -12117788.598 7 -9442424.971 6 21044876.412 21044875.877 21044875.390
+ 45.000 40.500
+ -192462.592 3 -149970.718 3 24596367.781 24596367.064 24596366.309
+ 20.500 18.600
+ -14714978.101 7 -11466209.216 6 21919993.416 21919992.825 21919993.115
+ 43.100 39.600
+ -551389.267 4 -429644.969 2 24585054.922 24585055.939 24585053.792
+ 24.600 15.100
+ -2060180.763 4 -1605333.904 3 24298965.136 24298961.817 24298963.682
+ 29.200 19.300
+ -10234850.083 6 -7975191.091 5 22495485.377 22495484.991 22495484.286
+ 39.800 32.300
+ -1632001.217 3 -1271687.457 4 24157872.832 24157874.367 24157872.404
+ 23.000 28.600
+ 06 1 1 20 35 0.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20172391.648 7 -15718734.098 7 20984770.218 20984767.254 20984769.473
+ 45.300 43.800
+ -22566961.608 7 -17584632.149 7 20169319.971 20169319.484 20169319.633
+ 46.100 47.300
+ -11990508.936 6 -9343243.911 5 22110699.221 22110699.051 22110698.210
+ 39.600 34.700
+ -12023011.100 7 -9368572.389 6 21062911.995 21062911.457 21062910.927
+ 44.800 40.500
+ -356448.605 3 -277751.800 1 24565160.534 24565160.693 24565160.446
+ 21.100 11.000
+ -14564786.967 7 -11349177.203 6 21948574.663 21948573.314 21948573.575
+ 42.900 39.200
+ -349119.801 3 -272032.451 2 24623545.165 24623546.298 24623544.163
+ 23.400 12.600
+ -2138342.706 4 -1666239.261 3 24284091.505 24284087.846 24284089.823
+ 28.400 19.900
+ -10074336.998 6 -7850115.983 5 22526029.554 22526029.992 22526028.485
+ 38.900 32.400
+ -1814017.886 2 -1413518.387 4 24123234.473 24123236.287 24123234.299
+ 13.900 26.800
+ 06 1 1 20 36 0.0000000 0 10G02G04G05G07G13G17G20G23G24G30
+ -20289066.915 7 -15809649.851 7 20962567.540 20962564.634 20962566.801
+ 45.300 43.800
+ -22526696.697 7 -17553256.883 7 20176982.495 20176981.605 20176982.008
+ 46.200 47.300
+ -12075613.310 6 -9409558.956 5 22094504.623 22094504.343 22094503.451
+ 39.300 34.800
+ -11926854.006 7 -9293644.794 6 21081210.000 21081209.577 21081209.038
+ 45.100 40.200
+ -519500.417 2 -404805.020 1 24534130.476 24534131.891 24534132.044
+ 17.000 6.500
+ -14413438.202 7 -11231243.139 6 21977374.811 21977374.164 21977374.434
+ 43.100 39.200
+ -145950.442 3 -113718.658 2 24662207.504 24662207.913 24662206.349
+ 22.100 13.900
+ -2214589.350 4 -1725652.136 3 24269581.934 24269578.870 24269580.852
+ 28.800 21.600
+ -9913288.286 6 -7724623.513 5 22556676.140 22556676.311 22556675.298
+ 39.300 31.600
+ -1994655.549 3 -1554274.707 4 24088860.830 24088863.403 24088860.651
+ 19.300 24.900
+ 06 1 1 20 37 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20404376.166 7 -15899501.182 7 20940624.800 20940622.014 20940624.006
+ 44.900 43.800
+ -22484881.645 7 -17520673.716 7 20184939.485 20184938.736 20184939.076
+ 46.100 47.100
+ -12158480.884 6 -9474131.029 5 22078735.257 22078734.992 22078734.001
+ 39.400 34.600
+ -11829318.766 7 -9217643.316 6 21099770.520 21099769.887 21099769.480
+ 45.000 40.200
+ -681592.299 3 -531110.170 1 24503288.243 24503287.460 24503287.448
+ 21.100 9.000
+ -14260937.288 7 -11112411.288 6 22006394.593 22006393.801 22006394.386
+ 43.000 38.400
+ -2288904.413 4 -1783559.896 3 24255440.181 24255436.378 24255438.822
+ 29.900 19.300
+ -9751714.478 6 -7598721.867 5 22587422.508 22587423.070 22587421.681
+ 39.000 31.800
+ -2173892.185 4 -1693939.468 3 24054754.000 24054755.907 24054753.809
+ 27.900 20.500
+ 06 1 1 20 38 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20518314.681 7 -15988284.415 7 20918943.009 20918940.243 20918942.251
+ 44.700 44.000
+ -22441525.742 7 -17486889.885 7 20193189.754 20193189.015 20193189.299
+ 45.800 47.000
+ -12239100.023 6 -9536951.082 5 22063394.200 22063393.609 22063393.144
+ 40.900 34.900
+ -11730406.664 7 -9140568.968 6 21118593.114 21118592.322 21118591.827
+ 44.600 40.200
+ -842698.226 3 -656647.097 3 24472630.144 24472630.273 24472629.984
+ 22.600 19.900
+ -14107290.788 7 -10992686.771 6 22035633.609 22035632.103 22035632.426
+ 42.700 38.400
+ -2361272.579 4 -1839950.611 3 24241669.237 24241665.824 24241667.827
+ 29.700 21.600
+ -9589626.847 6 -7472419.846 5 22618266.900 22618267.183 22618266.007
+ 38.600 31.000
+ -2351706.044 4 -1832495.588 2 24020917.074 24020917.069 24020916.646
+ 28.800 13.900
+ 06 1 1 20 39 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20630878.117 7 -16075996.152 7 20897522.952 20897520.004 20897522.236
+ 45.300 44.100
+ -22396638.524 7 -17451912.824 7 20201731.483 20201730.863 20201731.090
+ 46.000 47.100
+ -12317459.260 6 -9598010.179 5 22048482.422 22048482.564 22048481.448
+ 40.300 35.200
+ -11630119.263 7 -9062422.961 6 21137677.144 21137676.219 21137675.836
+ 44.400 39.900
+ -1002792.198 3 -781395.528 2 24442165.028 24442165.423 24442164.541
+ 22.600 17.800
+ -13952505.002 7 -10872074.507 6 22065086.916 22065086.757 22065087.158
+ 42.300 38.200
+ -2431677.831 5 -1894811.775 3 24228271.406 24228268.485 24228269.955
+ 30.800 23.000
+ -9427036.210 6 -7345725.870 5 22649207.556 22649207.347 22649206.507
+ 38.700 31.500
+ -2528075.760 4 -1969926.461 2 23987354.895 23987354.919 23987354.451
+ 28.600 15.100
+ 06 1 1 20 40 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20742060.984 7 -16162632.132 7 20876365.941 20876362.641 20876365.056
+ 45.500 44.400
+ -22350229.044 7 -17415749.588 7 20210562.866 20210562.293 20210562.500
+ 46.100 47.200
+ -12393547.603 6 -9657299.735 5 22034003.482 22034003.297 22034002.357
+ 40.600 35.700
+ -11528458.136 7 -8983206.515 6 21157022.695 21157021.785 21157021.403
+ 44.400 40.000
+ -1161848.245 3 -905335.207 2 24411897.436 24411897.699 24411896.970
+ 18.600 15.100
+ -13796585.537 6 -10750578.857 6 22094758.312 22094757.227 22094757.621
+ 41.900 37.600
+ -2500105.064 4 -1948131.667 3 24215250.090 24215246.866 24215248.597
+ 29.900 21.600
+ -9263953.139 6 -7218648.186 5 22680240.799 22680240.742 22680239.857
+ 38.200 30.800
+ -2702979.763 4 -2106215.085 3 23954071.425 23954071.278 23954071.278
+ 27.600 21.100
+ 06 1 1 20 41 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20851860.169 7 -16248189.912 7 20855471.633 20855468.547 20855470.804
+ 45.600 44.700
+ -22302306.678 7 -17378407.486 7 20219682.357 20219681.592 20219681.924
+ 46.100 47.100
+ -12467354.264 6 -9714811.345 6 22019958.435 22019958.676 22019957.316
+ 40.200 36.700
+ -11425425.043 7 -8902921.010 6 21176628.758 21176628.334 21176627.793
+ 44.400 39.500
+ -1319840.677 3 -1028446.157 1 24381832.179 24381831.938 24381832.101
+ 21.100 11.000
+ -13639538.980 6 -10628204.957 6 22124642.996 22124642.440 22124642.668
+ 41.900 38.200
+ -2566539.671 4 -1999898.875 3 24202607.581 24202604.511 24202606.270
+ 29.700 19.900
+ -9100388.563 6 -7091195.293 5 22711365.940 22711366.323 22711365.053
+ 38.100 31.300
+ -2876396.724 4 -2241344.956 4 23921071.255 23921072.243 23921070.944
+ 25.900 24.900
+ 06 1 1 20 42 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -20960271.252 7 -16332666.053 7 20834841.340 20834838.534 20834840.647
+ 45.500 44.800
+ -22252881.098 7 -17339894.051 7 20229087.467 20229086.944 20229087.123
+ 46.100 47.100
+ -12538868.881 6 -9770536.952 6 22006349.638 22006349.703 22006348.580
+ 41.000 36.200
+ -11321021.885 7 -8821567.931 6 21196495.938 21196495.835 21196495.038
+ 43.900 39.800
+ -1476743.582 3 -1150708.112 3 24351974.577 24351974.835 24351974.459
+ 22.600 18.600
+ -13481372.118 6 -10504958.117 6 22154741.421 22154740.405 22154740.847
+ 41.900 37.700
+ -2630967.042 4 -2050101.995 3 24190347.532 24190344.661 24190346.201
+ 28.600 21.100
+ -8936352.487 6 -6963374.997 5 22742580.786 22742581.355 22742579.999
+ 38.100 31.300
+ -3048305.311 4 -2375299.490 4 23888358.121 23888358.889 23888357.830
+ 25.300 25.300
+ 06 1 1 20 43 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21067289.648 7 -16416056.984 7 20814476.812 20814473.504 20814475.971
+ 45.700 44.700
+ -22201961.832 7 -17300216.707 7 20238777.273 20238776.623 20238776.801
+ 45.900 47.100
+ -12608081.467 6 -9824468.791 5 21993179.037 21993178.650 21993177.946
+ 41.200 35.700
+ -11215250.700 7 -8739148.853 6 21216623.822 21216623.207 21216622.731
+ 44.100 39.100
+ -1632531.175 3 -1272100.932 2 24322329.462 24322328.597 24322329.021
+ 19.300 15.100
+ -13322091.282 6 -10380843.226 6 22185052.038 22185051.014 22185051.107
+ 41.500 38.200
+ -2693372.942 4 -2098729.934 3 24178471.389 24178468.951 24178470.119
+ 27.600 19.300
+ -8771855.054 6 -6835195.200 5 22773883.715 22773884.251 22773882.719
+ 37.200 31.600
+ -3218684.116 4 -2508062.058 4 23855936.348 23855936.140 23855935.930
+ 26.500 24.900
+ 06 1 1 20 44 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21172911.489 7 -16498359.692 7 20794377.589 20794374.314 20794376.808
+ 45.800 45.100
+ -22149558.362 7 -17259382.837 7 20248749.103 20248748.662 20248748.744
+ 46.100 47.000
+ -12674982.367 6 -9876599.337 5 21980448.216 21980447.722 21980447.126
+ 41.300 35.900
+ -11108113.612 7 -8655665.434 6 21237011.524 21237011.063 21237010.369
+ 44.200 39.800
+ -1787178.044 3 -1392604.887 2 24292900.701 24292901.446 24292900.320
+ 18.600 17.800
+ -13161702.715 6 -10255865.185 6 22215572.332 22215571.691 22215572.001
+ 41.600 36.900
+ -2753742.904 4 -2145771.392 3 24166983.063 24166980.104 24166981.932
+ 25.900 19.300
+ -8606906.255 6 -6706663.689 5 22805272.650 22805272.751 22805271.533
+ 37.200 30.400
+ -3387512.112 4 -2639616.134 4 23823808.724 23823810.052 23823808.323
+ 24.900 25.900
+ 06 1 1 20 45 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21277132.575 7 -16579570.911 7 20774544.799 20774541.849 20774544.055
+ 45.600 45.300
+ -22095680.424 7 -17217400.028 7 20259001.972 20259001.291 20259001.536
+ 46.400 47.100
+ -12739562.261 6 -9926921.302 6 21968158.814 21968158.603 21968157.681
+ 41.200 36.000
+ -10999613.023 7 -8571119.550 6 21257658.748 21257658.016 21257657.402
+ 44.200 39.400
+ -1940658.215 3 -1512199.681 2 24263694.944 24263694.432 24263694.616
+ 22.100 17.000
+ -13000213.540 6 -10130029.515 6 22246303.077 22246302.145 22246302.445
+ 41.200 37.200
+ -2812063.458 4 -2191215.924 2 24155886.176 24155882.093 24155884.921
+ 28.800 17.800
+ -8441516.564 6 -6577788.629 5 22836745.254 22836745.382 22836744.260
+ 37.200 30.200
+ -3554768.130 4 -2769945.380 4 23791980.750 23791982.145 23791980.328
+ 28.600 25.600
+ 06 1 1 20 46 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21379949.211 7 -16659687.747 7 20754979.434 20754976.411 20754978.588
+ 45.400 45.500
+ -22040337.724 7 -17174275.842 7 20269533.341 20269532.609 20269532.950
+ 46.500 46.900
+ -12801812.092 6 -9975427.627 6 21956312.924 21956312.820 21956311.931
+ 40.900 36.300
+ -10889751.335 7 -8485513.064 6 21278564.798 21278564.079 21278563.499
+ 44.000 39.300
+ -2092946.222 3 -1630865.570 2 24234714.643 24234715.099 24234714.771
+ 22.600 17.000
+ -12837630.456 6 -10003341.455 6 22277241.491 22277240.623 22277240.974
+ 41.300 36.900
+ -2868321.179 4 -2235053.051 3 24145180.785 24145177.535 24145179.218
+ 29.500 19.900
+ -8275696.437 6 -6448578.147 5 22868299.942 22868300.420 22868298.903
+ 36.800 30.800
+ -3720431.173 4 -2899033.342 3 23760456.165 23760456.217 23760455.947
+ 29.000 21.600
+ 06 1 1 20 47 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21481357.482 7 -16738707.163 7 20735682.046 20735678.953 20735681.230
+ 45.500 45.400
+ -21983540.033 7 -17130017.893 7 20280341.569 20280340.873 20280341.076
+ 46.200 46.900
+ -12861723.149 6 -10022111.526 6 21944912.695 21944912.207 21944911.528
+ 41.500 36.200
+ -10778531.298 7 -8398848.134 6 21299728.695 21299728.535 21299727.747
+ 43.800 39.100
+ -2244016.686 3 -1748582.746 2 24205966.784 24205967.248 24205966.698
+ 21.100 17.000
+ -12673960.694 6 -9875806.612 6 22308386.903 22308386.070 22308386.355
+ 40.900 37.300
+ -2922503.288 5 -2277272.805 3 24134870.661 24134866.771 24134869.238
+ 32.000 21.600
+ -8109456.071 6 -6319040.211 4 22899934.246 22899934.226 22899933.269
+ 36.900 29.200
+ -3884480.601 4 -3026863.938 3 23729238.593 23729238.810 23729238.203
+ 26.200 21.600
+ 06 1 1 20 48 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21581353.470 7 -16816626.108 7 20716653.536 20716650.463 20716652.754
+ 45.900 45.700
+ -21925297.006 7 -17084633.709 7 20291424.642 20291424.205 20291424.305
+ 46.400 46.800
+ -12919287.193 6 -10066966.595 6 21933958.491 21933958.045 21933957.329
+ 41.600 36.000
+ -10665955.301 7 -8311126.605 6 21321151.383 21321151.029 21321150.177
+ 43.200 38.900
+ -2393844.257 3 -1865331.412 3 24177456.746 24177456.019 24177455.896
+ 23.400 18.600
+ -12509210.904 6 -9747430.203 6 22339738.136 22339736.940 22339737.366
+ 40.800 36.400
+ -2974597.215 4 -2317865.428 3 24124956.539 24124953.634 24124955.392
+ 29.700 21.600
+ -7942804.264 6 -6189181.674 5 22931647.648 22931647.351 22931646.647
+ 37.100 30.100
+ -4046895.476 4 -3153420.889 3 23698331.463 23698332.186 23698331.092
+ 26.800 22.600
+ 06 1 1 20 49 0.0000000 0 9G02G04G05G07G13G17G23G24G30
+ -21679934.007 7 -16893442.100 7 20697894.318 20697891.219 20697893.481
+ 45.900 45.900
+ -21865618.441 7 -17038130.921 7 20302781.309 20302780.543 20302780.854
+ 46.500 46.700
+ -12974496.377 6 -10109986.697 6 21923452.417 21923452.002 21923451.300
+ 41.500 36.100
+ -10552026.341 7 -8222350.830 6 21342831.606 21342831.075 21342830.259
+ 43.000 38.800
+ -2542403.807 3 -1981092.005 3 24149186.087 24149185.587 24149185.716
+ 23.000 19.300
+ -12343388.143 6 -9618217.711 6 22371292.501 22371292.105 22371292.304
+ 39.900 36.500
+ -3024590.477 4 -2356821.118 3 24115443.445 24115439.715 24115441.914
+ 28.100 22.100
+ -7775750.898 6 -6059010.229 4 22963435.873 22963436.869 22963435.232
+ 36.500 29.900
+ -4207655.167 4 -3278688.044 3 23667740.349 23667741.129 23667740.068
+ 27.100 23.000
+ 06 1 1 20 50 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21777095.628 7 -16969152.438 7 20679405.209 20679401.875 20679404.329
+ 46.200 45.800
+ -21804514.125 7 -16990517.161 7 20314409.092 20314408.428 20314408.667
+ 46.600 46.800
+ -13027343.025 6 -10151165.862 6 21913395.855 21913395.421 21913394.783
+ 41.300 36.400
+ -10436747.582 7 -8132523.264 6 21364768.560 21364767.899 21364767.188
+ 43.100 38.700
+ -257848.631 3 -200919.738 3 24452580.046 24452581.453 24452577.844
+ 21.100 19.300
+ -2689670.170 4 -2095844.968 2 24121162.214 24121161.032 24121162.161
+ 25.300 15.100
+ -12176499.724 6 -9488174.852 6 22403051.487 22403049.776 22403050.259
+ 40.200 36.100
+ -3072471.437 4 -2394130.869 3 24106331.383 24106328.099 24106329.838
+ 28.400 22.100
+ -7608305.788 6 -5928533.521 4 22995299.656 22995300.539 22995298.812
+ 36.000 29.200
+ -4366739.004 4 -3402649.334 4 23637467.680 23637467.935 23637467.415
+ 28.100 25.300
+ 06 1 1 20 51 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21872834.004 7 -17043753.756 7 20661186.549 20661183.364 20661185.789
+ 46.100 45.800
+ -21741994.003 7 -16941800.179 7 20326306.354 20326305.548 20326305.884
+ 46.800 46.600
+ -13077820.019 6 -10190498.566 5 21903790.703 21903789.696 21903789.597
+ 41.900 35.700
+ -10320121.854 7 -8041646.115 6 21386960.954 21386960.957 21386960.098
+ 42.800 38.100
+ -499307.185 3 -389069.033 2 24406631.401 24406633.204 24406630.495
+ 21.600 17.000
+ -2835617.940 3 -2209570.477 3 24093388.785 24093388.812 24093388.903
+ 23.400 18.600
+ -12008553.396 6 -9357307.637 5 22435009.393 22435008.950 22435009.321
+ 39.500 35.800
+ -3118228.236 5 -2429785.422 4 24097624.379 24097621.339 24097623.201
+ 30.100 24.600
+ -7440478.111 5 -5797758.725 4 23027236.373 23027237.041 23027235.519
+ 35.400 29.500
+ -4524126.885 4 -3525289.087 4 23607517.141 23607518.185 23607516.744
+ 25.300 26.200
+ 06 1 1 20 52 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -21967146.087 7 -17117243.657 7 20643239.551 20643236.340 20643238.793
+ 46.100 46.000
+ -21678067.917 7 -16891987.639 7 20338471.146 20338470.302 20338470.666
+ 47.000 46.600
+ -13125920.585 6 -10227979.504 5 21894637.247 21894636.750 21894636.084
+ 41.800 35.900
+ -10202152.498 7 -7949721.977 6 21409410.355 21409409.775 21409409.172
+ 42.800 37.700
+ -740479.453 3 -576995.262 3 24360736.883 24360739.977 24360736.120
+ 20.500 20.500
+ -2980222.412 4 -2322249.203 3 24065872.406 24065871.417 24065871.700
+ 24.200 18.600
+ -11839556.286 6 -9225621.631 6 22467169.474 22467168.443 22467168.558
+ 39.700 36.300
+ -3161849.518 4 -2463775.943 4 24089323.054 24089320.503 24089321.947
+ 28.400 25.300
+ -7272277.480 6 -5666693.308 4 23059244.094 23059243.768 23059243.221
+ 36.100 27.600
+ -4679798.489 4 -3646591.505 3 23577893.286 23577893.966 23577893.287
+ 28.800 22.600
+ 06 1 1 20 53 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22060028.705 7 -17189619.690 7 20625564.620 20625561.399 20625563.877
+ 46.300 46.200
+ -21612745.842 7 -16841087.316 7 20350901.431 20350900.617 20350901.042
+ 47.200 46.400
+ -13171638.301 6 -10263603.684 5 21885937.100 21885936.979 21885936.021
+ 41.100 35.700
+ -10082843.059 7 -7856753.618 6 21432114.413 21432113.656 21432113.129
+ 43.100 37.700
+ -981345.599 3 -764683.034 2 24314901.506 24314903.139 24314900.236
+ 21.100 17.800
+ -3123458.578 3 -2433861.761 3 24038614.854 24038614.853 24038614.229
+ 22.600 19.900
+ -11669515.511 6 -9093122.387 6 22499527.290 22499525.825 22499526.046
+ 38.500 36.000
+ -3203324.396 4 -2496093.947 4 24081430.675 24081428.054 24081429.632
+ 29.000 25.600
+ -7103712.913 5 -5535344.339 4 23091320.635 23091321.324 23091319.654
+ 35.600 28.800
+ -4833733.817 4 -3766540.998 4 23548600.597 23548601.465 23548600.366
+ 29.200 25.600
+ 06 1 1 20 54 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22151478.691 7 -17260879.370 7 20608162.065 20608158.963 20608161.330
+ 46.300 46.200
+ -21546037.681 7 -16789106.935 7 20363595.706 20363594.801 20363595.212
+ 47.100 46.300
+ -13214967.111 6 -10297366.373 5 21877692.070 21877691.548 21877690.939
+ 41.400 35.300
+ -9962196.950 7 -7762743.693 6 21455072.119 21455072.049 21455071.182
+ 42.700 37.700
+ -1221885.312 3 -952116.415 3 24269127.770 24269130.770 24269127.230
+ 21.600 19.900
+ -3265301.865 3 -2544388.907 2 24011622.549 24011622.310 24011622.486
+ 23.400 17.000
+ -11498438.941 6 -8959816.015 5 22532080.361 22532080.585 22532080.750
+ 38.600 35.100
+ -3242641.995 4 -2526730.975 3 24073948.622 24073945.715 24073947.285
+ 29.200 23.400
+ -6934793.374 5 -5403718.755 4 23123465.238 23123465.719 23123464.285
+ 35.100 28.600
+ -4985912.715 4 -3885121.850 4 23519641.746 23519642.935 23519641.346
+ 27.400 26.200
+ 06 1 1 20 55 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22241492.988 7 -17331020.336 7 20591032.983 20591029.690 20591032.184
+ 46.000 46.400
+ -21477953.295 7 -16736054.167 7 20376551.430 20376550.726 20376551.057
+ 46.900 46.200
+ -13255901.208 6 -10329263.049 5 21869902.443 21869902.009 21869901.406
+ 41.700 35.800
+ -9840217.970 7 -7667695.177 6 21478284.735 21478283.567 21478283.331
+ 42.600 37.200
+ -1462078.920 3 -1139280.139 3 24223420.948 24223423.529 24223419.941
+ 23.000 20.500
+ -3405728.036 4 -2653811.845 3 23984900.477 23984900.052 23984900.036
+ 25.600 20.500
+ -11326334.213 6 -8825708.490 5 22564832.705 22564831.131 22564831.611
+ 39.600 35.200
+ -3279793.007 4 -2555679.776 4 24066878.727 24066876.119 24066877.972
+ 28.100 24.200
+ -6765528.269 5 -5271823.909 4 23155675.494 23155675.206 23155674.406
+ 34.400 28.400
+ -5136315.621 4 -4002318.764 4 23491020.958 23491022.196 23491021.023
+ 27.900 25.600
+ 06 1 1 20 56 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22330067.817 7 -17400039.643 7 20574177.803 20574174.579 20574176.993
+ 46.200 46.600
+ -21408502.592 7 -16681936.740 7 20389767.406 20389766.801 20389767.071
+ 47.100 46.100
+ -13294435.418 6 -10359289.693 6 21862569.804 21862569.257 21862568.685
+ 41.800 36.100
+ -9716909.766 7 -7571610.880 6 21501749.218 21501748.732 21501747.945
+ 42.400 37.700
+ -1701905.877 3 -1326158.111 2 24177783.679 24177784.735 24177782.068
+ 21.600 17.800
+ -3544711.922 3 -2762110.905 3 23958451.129 23958452.765 23958452.006
+ 23.800 23.400
+ -11153208.857 6 -8690805.687 5 22597776.433 22597775.766 22597776.102
+ 38.700 35.100
+ -3314766.777 4 -2582932.003 3 24060223.431 24060220.531 24060222.071
+ 26.800 23.800
+ -6595926.268 5 -5139666.557 4 23187949.687 23187949.654 23187948.665
+ 35.100 27.600
+ -5284922.658 4 -4118116.310 4 23462742.536 23462742.652 23462742.261
+ 29.000 25.600
+ 06 1 1 20 57 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22417200.707 7 -17467935.371 7 20557596.842 20557593.795 20557596.041
+ 46.100 46.900
+ -21337695.933 7 -16626762.718 7 20403241.550 20403240.873 20403241.203
+ 47.300 46.000
+ -13330564.804 6 -10387442.437 6 21855694.800 21855694.143 21855693.585
+ 41.900 36.400
+ -9592276.485 7 -7474494.064 6 21525465.714 21525465.686 21525464.707
+ 42.300 37.300
+ -1941346.571 3 -1512735.048 3 24132218.607 24132220.499 24132217.420
+ 22.100 18.600
+ -3682229.818 3 -2869267.587 3 23932285.474 23932283.525 23932283.970
+ 23.000 22.600
+ -10979071.351 6 -8555114.193 6 22630914.344 22630913.634 22630913.559
+ 38.800 36.000
+ -3347554.011 4 -2608480.450 3 24053984.625 24053981.815 24053983.286
+ 27.600 23.800
+ -6425996.329 5 -5007253.642 4 23220286.173 23220286.510 23220285.278
+ 34.700 28.400
+ -5431714.659 5 -4232499.595 4 23434808.365 23434809.391 23434808.201
+ 30.100 25.300
+ 06 1 1 20 58 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22502888.864 7 -17534705.331 7 20541291.094 20541287.779 20541290.221
+ 46.100 47.000
+ -21265542.966 7 -16570539.621 7 20416971.667 20416971.222 20416971.310
+ 47.100 46.100
+ -13364284.925 6 -10413717.833 6 21849277.601 21849277.539 21849276.607
+ 41.400 37.100
+ -9466321.953 6 -7376347.709 6 21549434.641 21549434.228 21549433.243
+ 41.800 37.700
+ -2180381.348 3 -1698995.631 3 24086731.054 24086733.820 24086729.961
+ 23.000 20.500
+ -3818257.234 4 -2975262.888 2 23906398.071 23906397.496 23906398.295
+ 26.200 16.100
+ -10803929.282 6 -8418639.913 5 22664242.370 22664241.523 22664242.029
+ 38.000 34.100
+ -3378145.459 4 -2632317.875 4 24048163.087 24048160.067 24048161.708
+ 26.200 24.200
+ -6255747.305 5 -4874592.104 4 23252683.710 23252683.835 23252682.659
+ 34.500 27.400
+ -5576672.145 5 -4345453.342 4 23407224.210 23407224.763 23407224.077
+ 30.600 28.600
+ 06 1 1 20 59 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22587129.387 7 -17600347.276 7 20525260.424 20525257.323 20525259.637
+ 46.200 47.000
+ -21192053.886 7 -16513275.397 7 20430956.409 20430955.696 20430955.960
+ 47.400 45.800
+ -13395591.698 6 -10438112.704 6 21843320.309 21843320.009 21843319.149
+ 41.800 36.500
+ -9339050.652 6 -7277175.296 6 21573652.809 21573652.676 21573651.923
+ 41.700 36.600
+ -2418989.478 3 -1884923.697 3 24041324.810 24041327.682 24041324.231
+ 23.000 21.100
+ -3952769.773 4 -3080077.752 3 23880802.183 23880801.501 23880801.372
+ 25.300 21.600
+ -10627790.455 6 -8281388.964 5 22697761.042 22697760.335 22697760.317
+ 38.200 34.800
+ -3406532.779 4 -2654437.840 4 24042760.635 24042758.398 24042759.666
+ 27.900 24.900
+ -6085187.246 5 -4741688.169 4 23285139.968 23285139.767 23285139.001
+ 34.100 25.900
+ -5719776.197 4 -4456962.807 4 23379991.624 23379992.136 23379991.334
+ 27.600 25.900
+ 06 1 1 21 0 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22669919.287 7 -17664858.876 7 20509506.168 20509502.777 20509505.348
+ 46.300 47.000
+ -21117238.540 7 -16454977.712 7 20445193.113 20445192.575 20445192.812
+ 47.400 45.800
+ -13424481.265 6 -10460624.033 6 21837822.742 21837822.133 21837821.749
+ 41.900 36.200
+ -9210466.886 6 -7176980.184 6 21598122.364 21598121.511 21598120.909
+ 41.400 36.600
+ -2657150.903 3 -2070503.686 3 23996004.973 23996007.094 23996003.738
+ 23.400 23.400
+ -4085744.403 4 -3183694.265 3 23855496.936 23855497.199 23855497.050
+ 24.600 19.900
+ -10450663.309 6 -8143367.878 5 22731467.524 22731466.053 22731466.451
+ 36.800 33.900
+ -3432706.889 4 -2674833.179 3 24037780.326 24037776.932 24037779.178
+ 28.800 23.800
+ -5914324.490 5 -4608548.394 4 23317654.114 23317654.884 23317653.154
+ 34.400 28.600
+ -5861007.853 4 -4567013.309 4 23353116.198 23353116.706 23353116.140
+ 29.900 27.100
+ 06 1 1 21 1 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22751256.090 7 -17728238.180 7 20494028.188 20494025.043 20494027.400
+ 46.300 47.300
+ -21041106.967 7 -16395654.394 7 20459680.647 20459679.831 20459680.230
+ 47.500 45.600
+ -13450950.325 6 -10481249.250 6 21832786.111 21832785.250 21832784.920
+ 41.900 36.000
+ -9080575.224 6 -7075765.925 6 21622839.409 21622839.133 21622838.452
+ 41.500 36.500
+ -2894845.502 4 -2255719.982 3 23950772.894 23950774.756 23950772.083
+ 24.600 22.100
+ -4217157.000 4 -3286093.524 3 23830490.222 23830490.307 23830489.928
+ 25.300 23.000
+ -10272556.340 6 -8004583.301 5 22765359.614 22765359.191 22765358.786
+ 36.600 35.400
+ -3456660.383 4 -2693498.212 4 24033221.882 24033219.430 24033220.942
+ 28.800 25.300
+ -5743167.303 5 -4475179.170 4 23350224.782 23350224.810 23350223.909
+ 34.000 27.400
+ -6000348.302 5 -4675590.197 4 23326601.236 23326601.032 23326600.743
+ 31.600 26.200
+ 06 1 1 21 2 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22831137.115 7 -17790483.113 7 20478827.500 20478824.029 20478826.760
+ 46.500 47.200
+ -20963669.500 7 -16335313.504 7 20474416.572 20474415.726 20474416.174
+ 47.800 45.700
+ -13474996.000 7 -10499986.120 6 21828210.101 21828209.614 21828209.058
+ 42.000 36.500
+ -8949380.198 6 -6973536.063 6 21647805.840 21647804.672 21647804.332
+ 41.500 36.500
+ -3132053.520 4 -2440557.102 3 23905633.363 23905635.154 23905632.608
+ 24.200 20.500
+ -4346984.523 4 -3387257.754 3 23805784.829 23805784.840 23805784.970
+ 26.200 22.600
+ -10093477.413 6 -7865041.374 5 22799437.233 22799436.637 22799436.633
+ 36.900 33.900
+ -3478385.575 4 -2710426.864 3 24029088.033 24029084.160 24029086.843
+ 27.900 20.500
+ -5571724.151 5 -4341587.132 4 23382848.398 23382849.302 23382847.558
+ 33.100 27.100
+ -6137778.927 5 -4782678.892 4 23300448.152 23300448.204 23300448.050
+ 30.600 25.300
+ 06 1 1 21 3 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22909559.848 7 -17851591.716 7 20463903.952 20463900.635 20463903.178
+ 46.500 47.200
+ -20884935.787 7 -16273962.548 7 20489399.243 20489398.210 20489398.782
+ 47.800 45.500
+ -13496615.846 7 -10516832.724 6 21824095.831 21824095.446 21824094.835
+ 42.000 36.900
+ -8816886.806 6 -6870294.488 6 21673017.607 21673017.540 21673016.719
+ 41.200 36.400
+ -3368754.511 3 -2624999.253 3 23860590.049 23860592.585 23860589.674
+ 22.100 23.400
+ -4475202.936 3 -3487168.054 3 23781385.688 23781385.482 23781384.974
+ 23.400 21.100
+ -9913434.868 6 -7724748.548 5 22833698.866 22833697.755 22833697.616
+ 36.000 34.500
+ -3497875.202 4 -2725613.528 3 24025379.776 24025375.766 24025378.376
+ 28.800 22.100
+ -5400003.316 5 -4207778.701 4 23415525.979 23415526.370 23415525.124
+ 32.700 25.900
+ -6273281.690 4 -4888265.368 4 23274662.822 23274662.966 23274662.663
+ 29.200 25.900
+ 06 1 1 21 4 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -22986521.899 7 -17911562.124 7 20449258.484 20449255.140 20449257.635
+ 46.200 47.300
+ -20804916.021 7 -16211609.477 7 20504626.049 20504625.456 20504625.780
+ 47.500 45.400
+ -13515807.705 6 -10531787.401 6 21820443.739 21820443.409 21820442.556
+ 41.400 36.500
+ -8683099.929 6 -6766044.995 5 21698477.122 21698476.266 21698475.667
+ 40.700 35.900
+ -3604928.397 4 -2809030.574 4 23815649.335 23815650.385 23815647.722
+ 24.600 24.900
+ -4601788.720 4 -3585806.238 3 23757297.124 23757297.717 23757296.588
+ 25.900 23.000
+ -9732437.099 6 -7583711.401 5 22868141.437 22868140.412 22868140.507
+ 36.600 33.800
+ -3515122.014 4 -2739052.567 3 24022097.685 24022093.975 24022096.112
+ 28.100 23.800
+ -5228012.548 5 -4073759.922 4 23448254.812 23448255.391 23448254.036
+ 33.200 26.500
+ -6406838.299 5 -4992335.392 4 23249248.702 23249248.896 23249248.252
+ 33.400 28.100
+ 06 1 1 21 5 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23062020.743 7 -17970392.368 7 20434891.392 20434888.256 20434890.687
+ 46.300 47.300
+ -20723620.033 7 -16148261.956 7 20520096.485 20520095.654 20520096.025
+ 47.600 45.400
+ -13532569.778 6 -10544848.727 6 21817254.037 21817253.896 21817252.873
+ 41.500 37.300
+ -8548024.521 6 -6660791.447 6 21724179.718 21724180.488 21724179.312
+ 40.500 36.400
+ -3840554.893 4 -2992635.415 2 23770810.238 23770810.843 23770808.924
+ 24.900 16.100
+ -4726719.884 4 -3683155.079 3 23733523.466 23733523.130 23733523.156
+ 27.400 22.100
+ -9550493.011 6 -7441936.864 5 22902763.773 22902763.330 22902763.688
+ 36.500 32.400
+ -3530119.955 4 -2750739.235 3 24019243.406 24019239.443 24019241.870
+ 28.400 22.100
+ -5055759.950 5 -3939537.158 4 23481033.650 23481034.227 23481032.769
+ 32.800 26.800
+ -6538430.894 4 -5094874.961 4 23224206.477 23224207.697 23224206.179
+ 29.900 28.400
+ 06 1 1 21 6 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23136054.514 7 -18028080.994 7 20420803.285 20420800.070 20420802.480
+ 46.100 47.600
+ -20641058.069 7 -16083927.949 7 20535807.344 20535806.502 20535806.946
+ 47.400 45.100
+ -13546900.851 7 -10556015.771 6 21814527.042 21814526.667 21814525.795
+ 42.000 37.100
+ -8411665.979 6 -6554538.071 6 21750129.228 21750128.721 21750127.681
+ 39.900 36.200
+ -4075614.006 4 -3175798.139 3 23726079.455 23726080.686 23726078.167
+ 25.300 19.900
+ -4849973.473 4 -3779196.719 3 23710069.550 23710068.504 23710068.814
+ 26.500 21.100
+ -9367611.477 6 -7299431.823 5 22937564.654 22937564.719 22937564.658
+ 36.400 32.400
+ -3542863.074 4 -2760668.884 3 24016818.079 24016814.774 24016816.695
+ 27.400 22.100
+ -4883253.295 5 -3805116.408 4 23513860.727 23513860.531 23513859.789
+ 32.400 24.600
+ -6668041.682 4 -5195870.315 4 23199542.382 23199541.684 23199542.093
+ 29.200 24.600
+ 06 1 1 21 7 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23208620.385 7 -18084625.803 7 20406994.268 20406991.279 20406993.585
+ 46.300 47.800
+ -20557239.922 7 -16018615.100 7 20551757.196 20551756.626 20551756.855
+ 47.200 44.900
+ -13558800.099 7 -10565287.879 6 21812262.578 21812262.262 21812261.506
+ 42.100 36.900
+ -8274029.534 6 -6447288.921 6 21776319.546 21776320.003 21776318.905
+ 40.400 36.000
+ -4310085.894 4 -3358503.271 3 23681460.754 23681462.306 23681459.966
+ 26.200 22.100
+ -4971526.783 4 -3873913.446 3 23686937.147 23686937.571 23686937.327
+ 25.900 22.600
+ -9183800.815 5 -7156202.790 5 22972543.193 22972542.893 22972542.547
+ 35.700 34.000
+ -3553345.269 4 -2768836.804 3 24014823.192 24014819.742 24014822.527
+ 29.700 21.100
+ -4710500.447 5 -3670503.815 4 23546734.058 23546735.063 23546732.980
+ 32.100 25.900
+ -6795653.306 5 -5295307.882 4 23175259.016 23175259.431 23175258.638
+ 32.400 28.400
+ 06 1 1 21 8 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23279716.578 7 -18140025.400 7 20393465.386 20393462.102 20393464.567
+ 46.400 47.800
+ -20472175.586 7 -15952331.194 7 20567944.563 20567943.774 20567944.156
+ 47.500 44.900
+ -13568266.970 6 -10572664.632 6 21810461.067 21810460.690 21810459.827
+ 41.700 36.700
+ -8135120.833 6 -6339048.420 5 21802754.425 21802753.220 21802752.802
+ 40.300 35.100
+ -4543950.313 4 -3540735.074 4 23636958.372 23636958.976 23636957.211
+ 26.500 24.600
+ -5091357.004 4 -3967287.523 3 23664136.358 23664134.314 23664135.310
+ 28.100 21.600
+ -8999070.259 6 -7012256.979 5 23007697.562 23007695.808 23007696.205
+ 36.600 32.600
+ -3561561.152 4 -2775238.772 3 24013259.837 24013256.666 24013258.341
+ 27.400 23.000
+ -4537508.710 5 -3535705.090 4 23579653.704 23579654.203 23579652.723
+ 31.600 25.900
+ -6921248.588 5 -5393174.283 4 23151358.620 23151359.251 23151358.416
+ 31.600 29.500
+ 06 1 1 21 9 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23349341.006 7 -18194278.172 7 20380216.204 20380212.857 20380215.492
+ 46.400 47.900
+ -20385875.229 7 -15885084.152 7 20584367.040 20584366.238 20584366.631
+ 47.600 44.600
+ -13575301.360 7 -10578145.951 6 21809122.622 21809121.914 21809121.461
+ 42.100 36.700
+ -7994945.433 6 -6229820.854 5 21829428.009 21829427.969 21829427.072
+ 39.800 35.300
+ -4777186.992 4 -3722477.764 4 23592574.568 23592575.515 23592573.334
+ 26.800 24.600
+ -5209442.189 4 -4059301.851 3 23641663.608 23641663.250 23641663.416
+ 27.100 22.100
+ -8813428.640 5 -6867601.236 5 23043023.483 23043022.344 23043022.288
+ 34.400 33.000
+ -3567506.254 4 -2779871.287 3 24012129.001 24012124.982 24012127.910
+ 28.800 19.900
+ -4364286.405 5 -3400726.704 4 23612616.394 23612617.223 23612615.574
+ 31.300 24.900
+ -7044810.577 5 -5489456.264 4 23127846.107 23127846.093 23127845.585
+ 31.800 29.500
+ 06 1 1 21 10 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23417491.792 7 -18247382.651 8 20367247.511 20367244.199 20367246.752
+ 46.500 48.100
+ -20298348.831 7 -15816881.760 7 20601022.511 20601021.936 20601022.260
+ 47.500 44.700
+ -13579903.648 7 -10581732.116 6 21808246.762 21808246.074 21808245.628
+ 42.400 36.600
+ -7853509.005 6 -6119610.710 5 21856342.761 21856342.305 21856341.640
+ 39.800 34.700
+ -5009775.942 4 -3903715.721 4 23548313.748 23548315.112 23548312.540
+ 27.100 25.600
+ -5325760.756 4 -4149939.541 3 23619529.022 23619528.676 23619528.586
+ 27.900 23.400
+ -8626884.417 5 -6722242.194 5 23078519.759 23078520.926 23078520.416
+ 35.300 33.400
+ -3571175.668 4 -2782730.529 4 24011430.603 24011427.459 24011429.306
+ 29.000 24.900
+ -4190839.554 5 -3265573.335 4 23645622.388 23645622.749 23645621.551
+ 30.800 24.600
+ -7166322.403 5 -5584140.734 4 23104723.090 23104722.844 23104722.860
+ 34.500 26.500
+ 06 1 1 21 11 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23484167.041 7 -18299337.364 8 20354559.718 20354556.318 20354558.946
+ 46.700 48.200
+ -20209605.968 7 -15747731.471 7 20617910.016 20617909.133 20617909.534
+ 47.200 44.500
+ -13582074.480 7 -10583423.645 6 21807833.629 21807832.979 21807832.560
+ 42.300 36.600
+ -7710817.569 6 -6008422.601 5 21883495.888 21883495.768 21883494.898
+ 39.300 35.200
+ -5241697.190 4 -4084433.413 4 23504181.355 23504181.733 23504180.015
+ 26.500 24.600
+ -5440290.679 4 -4239183.548 3 23597733.801 23597734.330 23597734.666
+ 28.100 22.600
+ -8439446.772 5 -6576186.955 5 23114188.699 23114188.527 23114188.879
+ 35.600 30.600
+ -3572565.294 4 -2783813.305 4 24011166.033 24011162.694 24011164.906
+ 29.200 24.200
+ -4017175.907 5 -3130251.022 3 23678670.039 23678669.912 23678669.014
+ 31.000 23.000
+ -7285767.679 5 -5677214.913 4 23081992.948 23081993.438 23081992.522
+ 32.000 28.100
+ 06 1 1 21 12 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23549364.701 7 -18350140.707 8 20342153.079 20342149.591 20342152.250
+ 46.700 48.300
+ -20119656.848 7 -15677641.248 7 20635026.830 20635025.872 20635026.333
+ 47.300 44.300
+ -13581815.153 7 -10583221.552 6 21807882.986 21807882.279 21807881.861
+ 42.200 36.600
+ -7566877.396 6 -5896261.491 5 21910887.599 21910886.549 21910886.081
+ 39.200 34.500
+ -5472930.472 4 -4264615.035 4 23460178.182 23460179.331 23460176.901
+ 26.500 25.300
+ -5553010.520 4 -4327017.068 4 23576284.252 23576284.362 23576284.551
+ 28.800 24.600
+ -8251125.943 5 -6429443.503 5 23150025.508 23150025.131 23150025.031
+ 33.100 31.800
+ -3571671.429 4 -2783116.738 3 24011335.849 24011332.593 24011334.808
+ 28.800 21.600
+ -3843303.129 5 -2994765.766 4 23711756.474 23711757.346 23711755.574
+ 30.600 24.900
+ -7403130.171 5 -5768666.131 4 23059659.552 23059660.155 23059659.237
+ 31.300 29.500
+ 06 1 1 21 13 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23613083.302 7 -18399791.541 8 20330027.888 20330024.365 20330027.052
+ 46.800 48.500
+ -20028511.393 7 -15606618.813 7 20652370.875 20652370.245 20652370.588
+ 47.400 44.100
+ -13579127.125 7 -10581126.958 6 21808394.549 21808393.799 21808393.474
+ 42.200 36.700
+ -7421694.314 6 -5783131.855 5 21938513.348 21938514.072 21938513.024
+ 39.200 34.100
+ -5703456.171 4 -4444245.250 4 23416310.126 23416311.150 23416309.420
+ 26.200 24.200
+ -5663899.039 4 -4413423.619 3 23555183.244 23555182.538 23555182.892
+ 28.100 23.000
+ -8061930.434 5 -6282018.523 5 23186028.605 23186028.223 23186027.643
+ 34.100 32.000
+ -3568491.073 4 -2780638.486 3 24011941.298 24011937.749 24011939.976
+ 27.600 23.400
+ -3669227.774 5 -2859122.631 4 23744881.839 23744883.183 23744881.034
+ 31.300 25.600
+ -7518393.828 5 -5858481.858 4 23037725.535 23037725.806 23037725.349
+ 32.700 29.200
+ 06 1 1 21 14 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23675320.716 7 -18448288.205 8 20318184.289 20318180.867 20318183.454
+ 46.800 48.600
+ -19936179.456 7 -15534671.843 7 20669941.067 20669940.368 20669940.693
+ 47.400 44.100
+ -13574012.387 6 -10577141.432 6 21809367.732 21809367.052 21809366.506
+ 41.900 36.500
+ -7275274.863 6 -5669038.834 5 21966377.810 21966376.871 21966376.265
+ 38.600 33.900
+ -5933253.760 4 -4623308.150 4 23372581.830 23372582.231 23372580.619
+ 28.100 24.900
+ -5772935.136 4 -4498386.678 3 23534433.839 23534433.831 23534433.840
+ 28.400 23.000
+ -7871869.503 5 -6133919.165 5 23222196.690 23222195.712 23222194.732
+ 32.400 31.800
+ -3563021.106 4 -2776376.150 3 24012981.786 24012978.659 24012980.424
+ 27.900 23.000
+ -3494956.904 4 -2723327.183 4 23778044.735 23778045.145 23778043.977
+ 29.700 25.300
+ -7631543.004 5 -5946649.962 4 23016194.426 23016194.001 23016193.884
+ 33.100 28.100
+ 06 1 1 21 15 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23736075.687 7 -18495629.715 8 20306622.867 20306619.560 20306622.074
+ 46.700 48.800
+ -19842670.698 7 -15461807.872 7 20687735.541 20687734.522 20687735.074
+ 47.600 43.800
+ -13566473.394 7 -10571266.880 6 21810802.242 21810801.621 21810801.133
+ 42.200 36.200
+ -7127625.520 6 -5553987.443 5 21994472.914 21994473.817 21994472.726
+ 39.100 34.300
+ -6162303.753 4 -4801788.457 4 23328994.790 23328995.311 23328993.512
+ 26.800 24.600
+ -5880098.026 4 -4581890.162 4 23514042.975 23514041.489 23514042.033
+ 29.700 24.600
+ -7680952.654 5 -5985152.885 5 23258527.279 23258525.656 23258525.808
+ 34.400 30.800
+ -3555258.518 4 -2770327.337 3 24014459.605 24014455.580 24014458.031
+ 27.900 22.600
+ -3320497.206 4 -2587384.579 4 23811243.201 23811243.657 23811242.324
+ 29.000 24.900
+ -7742562.378 5 -6033158.492 4 22995067.764 22995067.913 22995067.488
+ 33.000 29.000
+ 06 1 1 21 16 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23795346.689 7 -18541814.892 8 20295343.967 20295340.695 20295343.219
+ 47.000 48.900
+ -19747995.053 7 -15388034.631 7 20705751.491 20705750.682 20705751.154
+ 47.700 43.800
+ -13556512.827 6 -10563505.390 6 21812697.721 21812696.961 21812696.516
+ 41.900 36.100
+ -6978752.935 6 -5437982.878 5 22022805.139 22022803.431 22022802.857
+ 38.000 34.100
+ -6390586.234 5 -4979670.709 4 23285553.919 23285554.329 23285552.696
+ 30.100 25.600
+ -5985367.066 4 -4663917.877 4 23494008.806 23494008.907 23494009.129
+ 28.800 24.200
+ -7489189.796 5 -5835727.380 4 23295017.339 23295016.868 23295017.155
+ 32.600 29.500
+ -3545201.331 4 -2762490.543 4 24016373.128 24016369.767 24016371.799
+ 29.000 24.200
+ -3145855.915 4 -2451300.449 3 23844475.900 23844476.229 23844474.998
+ 28.600 22.100
+ -7851436.690 5 -6117995.550 5 22974349.292 22974349.815 22974349.052
+ 33.000 30.400
+ 06 1 1 21 17 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23853131.980 7 -18586842.368 8 20284348.030 20284344.417 20284347.174
+ 47.200 48.800
+ -19652162.470 7 -15313359.882 7 20723988.006 20723986.999 20723987.558
+ 47.600 43.700
+ -13544134.039 6 -10553859.564 6 21815053.296 21815052.731 21815052.233
+ 41.900 36.600
+ -6828663.851 6 -5321030.421 5 22051363.226 22051364.389 22051363.284
+ 38.600 34.100
+ -6618081.086 4 -5156939.237 4 23242262.806 23242263.934 23242261.650
+ 29.700 27.600
+ -6088722.289 4 -4744454.312 3 23474342.807 23474341.630 23474342.206
+ 29.500 23.800
+ -7296589.912 5 -5685649.624 4 23331666.950 23331667.772 23331667.605
+ 32.100 29.700
+ -3532848.088 4 -2752864.623 3 24018723.969 24018720.183 24018722.982
+ 29.200 22.100
+ -2971039.231 4 -2315079.642 3 23877742.807 23877743.099 23877742.017
+ 29.000 22.600
+ -7958151.155 5 -6201149.593 4 22954042.261 22954042.632 22954041.948
+ 33.000 29.200
+ 06 1 1 21 18 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23909430.056 7 -18630710.971 8 20273634.774 20273631.333 20273634.009
+ 47.400 49.200
+ -19555182.618 7 -15237791.157 7 20742442.769 20742441.679 20742442.241
+ 47.600 43.600
+ -13529340.512 6 -10542332.132 6 21817868.490 21817868.059 21817867.233
+ 41.700 36.900
+ -6677365.267 6 -5203135.471 5 22080156.745 22080155.643 22080154.844
+ 37.800 33.500
+ -6844768.302 4 -5333578.496 4 23199125.846 23199125.742 23199124.331
+ 28.100 24.200
+ -6190143.381 4 -4823483.647 4 23455040.992 23455041.440 23455041.289
+ 28.800 24.200
+ -7103163.487 5 -5534927.777 4 23368475.515 23368475.417 23368475.341
+ 33.000 29.000
+ -3518197.067 4 -2741448.212 3 24021511.676 24021507.899 24021510.317
+ 27.100 21.600
+ -2796054.025 4 -2178727.554 3 23911041.403 23911041.716 23911040.275
+ 29.200 22.100
+ -8062691.235 5 -6282609.340 4 22934148.763 22934148.732 22934148.450
+ 32.800 28.100
+ 06 1 1 21 19 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -23964240.313 7 -18673420.233 8 20263204.735 20263201.168 20263204.019
+ 47.400 49.100
+ -19457065.125 7 -15161335.955 7 20761113.735 20761112.773 20761113.330
+ 47.500 43.600
+ -13512136.356 6 -10528926.293 6 21821142.337 21821141.739 21821141.210
+ 41.700 36.500
+ -6524864.028 6 -5084303.420 5 22109175.362 22109175.675 22109174.620
+ 38.000 33.400
+ -7070628.111 4 -5509572.984 4 23156145.221 23156146.703 23156144.180
+ 28.800 28.100
+ -6289610.685 4 -4900990.537 4 23436114.646 23436113.451 23436114.028
+ 29.500 24.600
+ -6908919.334 5 -5383568.805 5 23405437.765 23405439.305 23405438.934
+ 32.600 30.600
+ -3501247.796 4 -2728240.935 3 24024736.389 24024733.242 24024735.586
+ 28.100 21.100
+ -2620906.818 4 -2042249.204 3 23944371.516 23944370.923 23944370.436
+ 29.000 20.500
+ -8165042.493 5 -6362363.506 4 22914671.993 22914671.953 22914671.794
+ 33.200 27.600
+ 06 1 1 21 20 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24017561.103 7 -18714968.879 8 20253057.956 20253054.519 20253057.246
+ 47.300 49.200
+ -19357819.704 7 -15084001.851 7 20779999.472 20779998.486 20779999.063
+ 47.700 43.400
+ -13492525.896 6 -10513645.404 6 21824873.903 21824873.363 21824872.853
+ 41.900 36.200
+ -6371167.346 6 -4964539.820 5 22138422.976 22138423.559 22138422.090
+ 37.200 33.000
+ -7295640.653 4 -5684907.271 4 23113326.866 23113327.861 23113325.429
+ 29.500 26.800
+ -6387105.222 4 -4976960.199 3 23417561.069 23417560.131 23417560.990
+ 28.600 23.800
+ -6713868.132 5 -5231580.925 5 23442557.009 23442556.595 23442556.083
+ 33.200 31.100
+ -3481999.274 4 -2713242.053 3 24028400.259 24028396.189 24028398.976
+ 27.900 21.600
+ -2445603.809 5 -1905649.449 3 23977729.942 23977730.522 23977729.054
+ 30.400 23.000
+ -8265191.257 5 -6440401.460 4 22895613.910 22895614.314 22895613.775
+ 33.500 29.200
+ 06 1 1 21 21 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24069391.211 7 -18755355.943 8 20243194.970 20243191.490 20243194.251
+ 47.400 49.200
+ -19257456.204 7 -15005796.514 7 20799097.924 20799097.146 20799097.542
+ 47.600 43.300
+ -13470514.126 6 -10496493.364 6 21829062.794 21829061.963 21829061.564
+ 41.600 36.200
+ -6216282.583 6 -4843850.468 5 22167897.498 22167896.850 22167896.035
+ 37.600 32.600
+ -7519786.637 4 -5859566.341 4 23070672.670 23070673.816 23070671.990
+ 29.000 27.100
+ -6482607.441 4 -5051377.404 4 23399388.090 23399387.247 23399387.569
+ 28.800 24.600
+ -6518019.368 5 -5078971.592 5 23479824.997 23479825.534 23479824.567
+ 30.400 31.600
+ -3460451.550 4 -2696451.589 3 24032499.529 24032496.593 24032498.623
+ 25.300 23.000
+ -2270151.385 4 -1768933.299 4 24011118.407 24011117.421 24011117.473
+ 29.900 24.600
+ -8363123.620 5 -6516712.333 4 22876978.496 22876978.188 22876978.216
+ 34.100 29.000
+ 06 1 1 21 22 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24119729.568 7 -18794580.612 8 20233616.025 20233612.434 20233615.245
+ 47.500 49.400
+ -19155984.071 7 -14926727.317 7 20818407.623 20818406.798 20818407.162
+ 47.600 43.600
+ -13446106.084 6 -10477474.100 6 21833707.294 21833706.662 21833706.188
+ 41.500 36.300
+ -6060217.268 6 -4722241.200 5 22197594.359 22197595.117 22197593.903
+ 37.200 32.400
+ -7743046.039 4 -6033534.574 4 23028188.263 23028189.353 23028186.941
+ 28.400 27.400
+ -6576098.194 5 -5124227.249 3 23381597.139 23381595.723 23381597.046
+ 30.200 23.000
+ -6321383.101 5 -4925748.646 4 23517245.020 23517243.821 23517243.634
+ 32.400 29.200
+ -3436604.857 4 -2677869.691 3 24037037.293 24037033.790 24037036.289
+ 26.800 19.300
+ -2094555.973 4 -1632105.730 3 24044532.275 24044532.488 24044531.457
+ 29.500 23.000
+ -8458826.392 5 -6591285.881 5 22858766.365 22858766.763 22858766.258
+ 33.900 30.100
+ 06 1 1 21 23 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24168574.975 7 -18832641.944 8 20224321.147 20224317.538 20224320.307
+ 47.600 49.600
+ -19053413.102 7 -14846801.886 7 20837925.951 20837925.305 20837925.603
+ 47.400 43.100
+ -13419307.590 6 -10456592.152 6 21838806.979 21838806.648 21838805.883
+ 41.700 36.600
+ -5902978.859 6 -4599717.829 5 22227516.528 22227516.781 22227515.569
+ 36.500 32.100
+ -7965399.262 4 -6206796.704 4 22985875.795 22985876.242 22985874.602
+ 28.600 26.800
+ -6667559.494 4 -5195495.716 4 23364192.074 23364191.716 23364191.846
+ 29.700 25.300
+ -6123969.218 5 -4771919.697 4 23554811.921 23554810.687 23554810.660
+ 33.400 29.900
+ -3410459.440 4 -2657496.578 3 24042013.561 24042009.238 24042012.022
+ 28.100 19.900
+ -1918823.370 4 -1495171.255 3 24077973.508 24077973.562 24077972.487
+ 27.400 21.600
+ -8552286.414 5 -6664111.801 5 22840982.478 22840981.784 22840982.025
+ 34.000 30.400
+ 06 1 1 21 24 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24215926.386 7 -18869539.117 8 20215310.285 20215306.765 20215309.511
+ 47.300 49.700
+ -18949752.644 7 -14766027.510 7 20857652.112 20857651.250 20857651.649
+ 47.400 43.100
+ -13390124.541 6 -10433852.117 6 21844360.386 21844359.985 21844359.245
+ 41.800 37.000
+ -5744575.112 6 -4476286.410 5 22257660.681 22257660.196 22257659.310
+ 36.600 32.400
+ -8186826.680 4 -6379337.419 4 22943739.085 22943740.246 22943738.068
+ 29.900 27.900
+ -6756972.857 5 -5265168.403 4 23347177.814 23347176.397 23347177.355
+ 30.400 24.900
+ -5925788.270 4 -4617493.082 4 23592523.686 23592523.621 23592522.440
+ 29.500 29.200
+ -3382016.736 4 -2635333.392 3 24047425.636 24047422.093 24047424.527
+ 28.400 21.600
+ -1742959.172 4 -1358134.257 3 24111438.548 24111439.210 24111437.928
+ 27.600 21.600
+ -8643490.972 5 -6735180.224 5 22823625.880 22823626.411 22823625.882
+ 34.000 31.300
+ 06 1 1 21 25 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24261782.921 7 -18905271.455 8 20206583.822 20206580.596 20206583.205
+ 47.500 49.900
+ -18845012.316 7 -14684411.675 7 20877583.372 20877582.686 20877583.071
+ 47.500 42.900
+ -13358563.398 6 -10409259.017 6 21850366.467 21850365.551 21850365.291
+ 41.700 36.500
+ -5585013.736 6 -4351952.915 5 22288022.779 22288023.703 22288022.489
+ 36.700 31.800
+ -8407308.662 4 -6551141.419 4 22901782.641 22901783.342 22901781.596
+ 29.200 28.100
+ -6844320.449 5 -5333231.385 4 23330555.560 23330555.026 23330555.416
+ 31.000 26.200
+ -5726850.086 5 -4462476.401 4 23630380.910 23630380.248 23630379.583
+ 30.200 28.400
+ -3351277.667 4 -2611380.826 3 24053274.831 24053271.355 24053273.770
+ 26.500 21.100
+ -1566969.400 4 -1220999.387 3 24144928.412 24144929.507 24144927.689
+ 28.600 19.300
+ -8732427.863 5 -6804481.646 5 22806702.441 22806702.217 22806701.875
+ 34.500 31.000
+ 06 1 1 21 26 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24306144.307 7 -18939838.745 8 20198142.300 20198138.894 20198141.537
+ 47.400 50.000
+ -18739201.663 7 -14601961.815 7 20897718.556 20897717.666 20897718.211
+ 47.600 42.600
+ -13324631.153 6 -10382818.310 6 21856823.302 21856822.583 21856822.167
+ 41.100 36.500
+ -5424302.799 6 -4226723.672 5 22318607.813 22318605.743 22318605.604
+ 36.100 31.800
+ -8626825.839 4 -6722193.650 4 22860009.995 22860011.032 22860008.776
+ 29.500 29.500
+ -6929584.027 4 -5399670.491 4 23314330.698 23314329.533 23314330.210
+ 29.000 24.900
+ -5527165.626 5 -4306878.213 4 23668379.643 23668378.944 23668378.809
+ 32.700 29.900
+ -3318245.195 4 -2585641.182 3 24059560.679 24059557.321 24059559.628
+ 27.400 22.100
+ -1390859.612 4 -1083770.986 3 24178441.538 24178441.671 24178440.545
+ 27.400 21.100
+ -8819084.993 5 -6872006.628 5 22790211.625 22790211.814 22790211.306
+ 34.400 31.100
+ 06 1 1 21 27 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24349009.049 7 -18973239.821 8 20189985.348 20189982.031 20189984.567
+ 47.500 50.200
+ -18632329.796 7 -14518685.038 7 20918055.625 20918054.746 20918055.231
+ 47.700 42.400
+ -13288334.968 6 -10354535.565 5 21863729.938 21863729.274 21863728.968
+ 41.400 35.500
+ -5262450.396 5 -4100604.970 5 22349402.957 22349405.759 22349404.258
+ 35.800 32.300
+ -8845358.902 5 -6892479.002 4 22818424.385 22818424.758 22818423.222
+ 30.400 27.900
+ -7012746.904 5 -5464472.664 4 23298504.761 23298504.542 23298504.902
+ 30.100 25.600
+ -5326744.660 4 -4150706.112 4 23706517.200 23706517.893 23706516.980
+ 29.900 29.900
+ -3282920.187 4 -2558115.214 3 24066282.785 24066279.008 24066281.107
+ 27.100 20.500
+ -1214636.056 4 -946453.968 3 24211974.599 24211976.054 24211973.820
+ 26.500 21.100
+ -8903450.490 5 -6937745.919 5 22774157.542 22774156.995 22774157.293
+ 34.700 30.100
+ 06 1 1 21 28 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24390376.846 7 -19005474.439 8 20182113.433 20182109.900 20182112.604
+ 47.500 50.100
+ -18524406.356 7 -14434588.847 7 20938592.840 20938591.884 20938592.415
+ 47.400 42.200
+ -13249682.505 6 -10324416.755 6 21871085.677 21871084.914 21871084.500
+ 41.400 36.100
+ -5099464.780 5 -3973603.232 5 22380421.254 22380420.542 22380419.767
+ 35.100 31.000
+ -9062888.249 5 -7061982.299 4 22777030.134 22777030.648 22777028.918
+ 31.800 29.200
+ -7093791.526 5 -5527624.262 4 23283082.908 23283081.791 23283082.699
+ 30.800 24.600
+ -5125597.144 4 -3993967.865 4 23744794.195 23744794.491 23744793.944
+ 29.500 27.400
+ -3245305.820 4 -2528805.296 3 24073441.249 24073437.048 24073439.946
+ 27.900 18.600
+ -1038304.344 4 -809052.656 3 24245530.234 24245530.563 24245529.262
+ 27.400 18.600
+ -8985513.230 5 -7001690.873 5 22758541.478 22758541.354 22758541.123
+ 34.700 30.200
+ 06 1 1 21 29 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24430246.487 7 -19036541.669 8 20174526.522 20174522.920 20174525.707
+ 47.800 50.100
+ -18415440.368 7 -14349680.283 6 20959328.177 20959327.369 20959327.767
+ 47.100 41.900
+ -13208681.658 6 -10292468.041 6 21878888.023 21878887.552 21878886.873
+ 41.200 36.800
+ -4935354.332 5 -3845725.027 5 22411650.038 22411649.875 22411648.915
+ 35.100 31.100
+ -9279394.715 5 -7230688.502 4 22735830.607 22735830.532 22735829.269
+ 32.600 27.400
+ -7172701.550 5 -5589112.520 4 23268066.744 23268066.015 23268066.642
+ 30.400 26.200
+ -4923734.979 4 -3836672.700 4 23783207.779 23783207.655 23783207.468
+ 29.200 24.900
+ -3205405.090 4 -2497713.797 3 24081033.833 24081029.995 24081032.458
+ 27.400 21.100
+ -861869.531 4 -671570.976 3 24279103.895 24279105.536 24279103.087
+ 27.400 22.100
+ -9065262.047 5 -7063832.773 4 22743365.768 22743365.423 22743365.335
+ 34.500 29.900
+ 06 1 1 21 30 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24468618.071 7 -19066441.582 8 20167224.626 20167221.113 20167223.753
+ 47.600 50.300
+ -18305441.590 7 -14263966.949 6 20980260.304 20980259.468 20980259.929
+ 47.200 41.900
+ -13165340.982 6 -10258696.083 6 21887135.015 21887134.886 21887133.895
+ 41.000 36.500
+ -4770127.539 5 -3716976.920 4 22443089.749 22443091.243 22443090.224
+ 34.900 29.900
+ -9494859.413 5 -7398582.974 5 22694828.192 22694829.232 22694827.343
+ 32.700 31.100
+ -7249460.526 4 -5648924.633 4 23253460.069 23253458.638 23253459.497
+ 29.900 25.300
+ -4721168.080 4 -3678828.460 4 23821754.084 23821755.493 23821754.176
+ 28.100 26.200
+ -3163221.313 4 -2464843.301 3 24089060.793 24089057.633 24089059.460
+ 27.900 23.000
+ -685337.621 4 -534013.627 2 24312697.731 24312698.146 24312696.651
+ 25.900 17.800
+ -9142686.341 5 -7124163.353 5 22728632.159 22728632.239 22728631.813
+ 34.700 30.600
+ 06 1 1 21 31 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24505490.912 7 -19095173.644 8 20160207.884 20160204.324 20160207.083
+ 47.600 50.200
+ -18194419.019 7 -14177455.856 6 21001387.180 21001386.370 21001386.770
+ 47.000 41.900
+ -13119669.366 6 -10223107.797 6 21895825.963 21895825.834 21895824.927
+ 40.700 36.500
+ -4603793.040 5 -3587365.720 5 22474745.773 22474743.861 22474743.439
+ 34.000 30.400
+ -9709263.097 5 -7565650.665 4 22654028.955 22654029.238 22654027.703
+ 31.800 29.900
+ -7324052.412 5 -5707048.086 4 23239265.866 23239264.890 23239265.586
+ 31.500 27.100
+ -4517906.909 4 -3520443.194 4 23860433.504 23860434.436 23860434.080
+ 28.600 26.500
+ -3118758.441 4 -2430196.886 3 24097521.288 24097518.512 24097520.043
+ 25.900 22.100
+ -508713.880 4 -396384.744 3 24346307.638 24346308.669 24346306.848
+ 27.400 20.500
+ -9217775.699 5 -7182674.506 5 22714343.201 22714342.992 22714343.039
+ 34.600 31.000
+ 06 1 1 21 32 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24540864.318 7 -19122737.316 8 20153476.448 20153472.865 20153475.665
+ 47.600 50.100
+ -18082381.986 7 -14090154.270 6 21022707.140 21022706.209 21022706.707
+ 46.900 41.600
+ -13071675.786 6 -10185710.202 6 21904959.067 21904958.688 21904957.875
+ 40.800 36.300
+ -4436359.596 5 -3456898.185 5 22506604.294 22506605.593 22506604.446
+ 34.700 30.400
+ -9922586.351 5 -7731876.459 4 22613435.030 22613434.806 22613433.583
+ 32.700 29.500
+ -7396461.363 5 -5763470.556 4 23225487.507 23225485.849 23225486.880
+ 32.100 25.600
+ -4313962.415 5 -3361525.450 3 23899244.575 23899243.139 23899244.199
+ 32.400 23.800
+ -3072020.236 4 -2393777.486 3 24106416.170 24106412.325 24106414.764
+ 28.100 23.000
+ -332003.426 3 -258688.260 3 24379933.894 24379935.597 24379933.110
+ 22.100 22.100
+ -9290520.316 5 -7239358.576 5 22700500.687 22700500.318 22700500.332
+ 34.900 31.100
+ 06 1 1 21 33 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24574738.333 7 -19149132.635 8 20147030.413 20147026.979 20147029.578
+ 47.500 50.400
+ -17969339.461 7 -14002069.177 6 21044218.257 21044217.606 21044217.949
+ 47.000 41.600
+ -13021370.002 6 -10146510.891 5 21914532.050 21914531.251 21914530.974
+ 40.900 35.800
+ -4267836.171 5 -3325581.296 5 22538674.939 22538674.542 22538673.592
+ 34.600 30.200
+ -10134810.166 5 -7897245.603 5 22573049.545 22573050.171 22573048.523
+ 34.300 30.800
+ -7466672.843 5 -5818180.725 4 23212124.692 23212124.762 23212125.002
+ 31.600 25.300
+ -4109345.386 4 -3202083.661 4 23938181.662 23938181.083 23938180.973
+ 28.100 24.900
+ -3023011.589 4 -2355588.918 3 24115741.917 24115738.512 24115740.679
+ 29.000 23.000
+ -155211.295 4 -120928.174 3 24413577.227 24413578.493 24413576.475
+ 24.900 22.600
+ -9360910.595 5 -7294208.097 5 22687105.238 22687105.704 22687104.893
+ 34.600 31.800
+ 06 1 1 21 34 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24607112.237 7 -19174359.037 8 20140869.783 20140866.340 20140869.072
+ 47.700 50.400
+ -17855300.669 7 -13913207.779 6 21065919.401 21065918.467 21065918.935
+ 46.800 41.600
+ -12968761.804 6 -10105517.497 6 21924543.340 21924542.575 21924542.071
+ 41.000 36.200
+ -4098231.617 5 -3193422.007 4 22570950.935 22570949.518 22570948.806
+ 33.400 29.900
+ -10345916.085 5 -8061743.648 5 22532877.489 22532877.973 22532876.264
+ 33.200 31.000
+ -7534671.308 5 -5871166.492 3 23199186.066 23199184.439 23199185.792
+ 32.300 23.800
+ -3904066.276 4 -3042125.973 4 23977243.832 23977244.973 23977243.582
+ 26.200 25.600
+ -2971737.342 4 -2315634.906 3 24125499.109 24125495.940 24125498.020
+ 29.700 23.400
+ 21657.125 4 16891.347 2 24447233.977 24447234.414 24447232.968
+ 24.900 16.100
+ -9428937.229 5 -7347215.822 5 22674160.137 22674160.465 22674159.915
+ 34.900 31.800
+ 06 1 1 21 35 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24637985.662 7 -19198416.237 8 20134995.001 20134991.479 20134994.192
+ 47.700 50.600
+ -17740274.415 7 -13823576.931 6 21087807.936 21087807.155 21087807.584
+ 46.900 41.300
+ -12913861.686 6 -10062738.191 6 21934990.571 21934989.671 21934989.273
+ 41.300 36.400
+ -3927555.163 5 -3060427.438 5 22603426.406 22603428.562 22603426.845
+ 33.600 30.200
+ -10555884.909 5 -8225355.626 5 22492922.092 22492922.184 22492920.886
+ 34.500 31.000
+ -7600441.962 5 -5922416.286 4 23186670.045 23186668.740 23186669.724
+ 31.600 25.600
+ -3698136.690 4 -2881661.429 3 24016432.399 24016431.907 24016431.580
+ 28.800 23.000
+ -2918202.528 4 -2273919.445 3 24135686.343 24135682.761 24135685.410
+ 29.700 21.600
+ 198597.255 4 154766.802 3 24480905.129 24480905.622 24480904.249
+ 26.800 18.600
+ -9494591.723 5 -7398375.118 5 22661666.636 22661666.666 22661666.325
+ 34.800 31.000
+ 06 1 1 21 36 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24667358.495 7 -19221304.151 8 20129405.389 20129401.837 20129404.600
+ 47.500 50.500
+ -17624269.793 7 -13733183.707 6 21109883.150 21109882.026 21109882.686
+ 46.900 40.900
+ -12856680.221 6 -10018181.212 6 21945871.360 21945871.177 21945870.347
+ 40.600 36.500
+ -3755816.057 5 -2926604.816 4 22636110.488 22636109.269 22636108.355
+ 32.100 29.900
+ -10764698.140 5 -8388067.151 5 22453185.860 22453186.221 22453184.621
+ 33.200 31.100
+ -7663970.512 5 -5971918.999 4 23174581.138 23174580.382 23174580.695
+ 31.800 25.900
+ -3491567.465 5 -2720698.453 4 24055741.603 24055740.779 24055741.053
+ 31.100 24.600
+ -2862412.925 4 -2230446.952 3 24146303.206 24146299.203 24146301.815
+ 29.900 21.600
+ 375604.707 4 292694.696 2 24514588.422 24514588.500 24514587.423
+ 26.200 16.100
+ -9557865.186 6 -7447679.074 5 22649626.282 22649625.822 22649625.970
+ 36.500 31.000
+ 06 1 1 21 37 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24695231.123 7 -19243023.074 8 20124101.270 20124097.929 20124100.477
+ 47.500 50.600
+ -17507296.097 7 -13642035.364 6 21132142.170 21132141.372 21132141.818
+ 46.900 40.500
+ -12797228.538 6 -9971855.246 6 21957184.783 21957184.287 21957183.609
+ 40.200 36.700
+ -3583023.574 5 -2791961.420 4 22668991.333 22668990.540 22668989.700
+ 33.600 28.800
+ -10972336.913 5 -8549863.513 5 22413673.060 22413673.912 22413672.046
+ 33.500 32.000
+ -7725243.320 5 -6019663.989 4 23162920.661 23162919.813 23162920.592
+ 31.100 25.600
+ -3284369.576 4 -2559245.623 4 24095169.809 24095170.115 24095169.197
+ 29.000 28.100
+ -2804374.415 4 -2185222.150 3 24157347.068 24157343.329 24157345.807
+ 28.400 20.500
+ 552673.629 4 430670.514 2 24548283.655 24548283.554 24548282.662
+ 24.200 17.000
+ -9618749.768 5 -7495121.567 5 22638040.452 22638039.926 22638040.019
+ 35.800 31.100
+ 06 1 1 21 38 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24721602.346 7 -19263572.071 8 20119083.045 20119079.533 20119082.249
+ 47.600 50.400
+ -17389361.939 7 -13550138.609 6 21154584.534 21154583.538 21154584.101
+ 46.800 40.800
+ -12735517.926 6 -9923769.071 5 21968927.686 21968927.140 21968926.517
+ 39.700 35.400
+ -3409187.289 5 -2656504.614 4 22702069.054 22702070.377 22702068.954
+ 32.600 29.000
+ -11178783.183 5 -8710730.638 5 22374388.183 22374388.594 22374386.909
+ 34.300 32.700
+ -7784247.102 5 -6065640.885 4 23151692.986 23151692.160 23151692.588
+ 31.600 25.300
+ -3076554.226 5 -2397311.610 5 24134716.204 24134716.512 24134715.489
+ 30.100 30.100
+ -2744093.895 5 -2138250.269 3 24168818.302 24168814.903 24168817.026
+ 30.400 23.400
+ 729799.362 4 568690.515 3 24581989.312 24581990.216 24581988.408
+ 24.900 19.900
+ -9677237.788 5 -7540696.594 5 22626910.165 22626910.509 22626910.005
+ 35.800 32.000
+ 06 1 1 21 39 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24746473.576 7 -19282952.241 8 20114350.115 20114346.684 20114349.349
+ 47.500 50.400
+ -17270475.985 7 -13457500.201 6 21177207.875 21177206.845 21177207.356
+ 46.700 40.700
+ -12671560.355 6 -9873932.020 5 21981098.530 21981097.697 21981097.330
+ 39.800 34.600
+ -3234316.897 5 -2520242.037 4 22735348.886 22735347.632 22735346.723
+ 32.600 29.500
+ -11384018.431 5 -8870654.092 5 22335332.922 22335333.283 22335331.784
+ 35.200 32.100
+ -7840968.424 5 -6109839.273 4 23140899.573 23140898.313 23140899.338
+ 32.400 25.900
+ -2868132.551 4 -2234905.134 4 24174377.202 24174376.697 24174376.101
+ 28.100 25.300
+ -2681577.722 5 -2089536.319 3 24180715.102 24180710.541 24180713.796
+ 30.800 19.900
+ 906977.462 3 706751.380 3 24615704.640 24615706.264 24615703.845
+ 23.800 19.300
+ -9733321.983 6 -7584398.534 5 22616237.747 22616237.555 22616237.477
+ 36.300 31.000
+ 06 1 1 21 40 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24769843.520 7 -19301162.574 8 20109903.057 20109899.518 20109902.214
+ 47.500 50.500
+ -17150647.072 7 -13364127.020 6 21200010.355 21200009.523 21200009.986
+ 46.700 40.500
+ -12605367.828 6 -9822353.442 5 21993694.789 21993693.927 21993693.632
+ 40.500 35.600
+ -3058422.144 5 -2383181.256 4 22768816.842 22768818.961 22768817.322
+ 32.100 27.900
+ -11588024.071 5 -9029619.409 5 22296511.819 22296512.166 22296510.626
+ 35.200 32.400
+ -7895394.782 5 -6152249.369 4 23130542.154 23130541.535 23130541.935
+ 32.300 26.500
+ -2659116.191 4 -2072035.279 3 24214152.061 24214151.039 24214151.025
+ 27.600 23.800
+ -2616833.176 5 -2039086.005 3 24193034.973 24193031.333 24193034.191
+ 30.400 21.600
+ 1084203.356 3 844849.498 2 24649429.685 24649430.166 24649428.726
+ 23.000 17.000
+ -9786995.301 6 -7626221.853 5 22606024.198 22606023.571 22606023.892
+ 36.500 30.400
+ 06 1 1 21 41 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24791712.586 7 -19318203.394 8 20105741.458 20105737.974 20105740.747
+ 47.600 50.500
+ -17029883.940 7 -13270025.879 6 21222990.948 21222990.068 21222990.530
+ 46.600 40.600
+ -12536952.897 6 -9769043.123 5 22006713.740 22006713.055 22006712.596
+ 40.200 35.300
+ -2881512.828 5 -2245329.867 4 22802485.336 22802484.056 22802483.050
+ 31.800 28.400
+ -11790782.040 5 -9187612.549 5 22257927.884 22257928.502 22257926.938
+ 35.700 32.300
+ -7947513.502 5 -6192861.333 4 23120624.597 23120623.086 23120624.398
+ 32.800 25.900
+ -2449515.637 4 -1908710.262 4 24254038.050 24254036.780 24254036.111
+ 26.200 24.900
+ -2549868.024 4 -1986905.352 2 24205777.827 24205773.858 24205776.817
+ 27.600 17.800
+ 1261472.291 4 982981.139 3 24683163.099 24683163.117 24683162.276
+ 26.200 19.300
+ -9838251.290 6 -7666161.543 4 22596270.201 22596269.836 22596270.005
+ 36.500 29.900
+ 06 1 1 21 42 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24812081.497 7 -19334075.253 8 20101865.500 20101861.881 20101864.699
+ 47.700 50.500
+ -16908195.443 7 -13175203.680 6 21246147.360 21246146.450 21246146.992
+ 46.600 40.400
+ -12466328.422 6 -9714011.091 5 22020153.274 22020152.372 22020152.044
+ 40.000 35.700
+ -2703598.892 5 -2106695.731 4 22836340.464 22836339.734 22836338.817
+ 31.000 29.000
+ -11992274.365 5 -9344619.453 5 22219585.524 22219585.694 22219584.241
+ 35.700 32.800
+ -7997312.507 5 -6231665.707 3 23111148.028 23111146.478 23111147.706
+ 32.300 23.400
+ -2239342.621 4 -1744939.147 3 24294032.430 24294031.580 24294031.038
+ 27.100 23.000
+ -2480689.692 4 -1933000.146 2 24218942.303 24218938.032 24218940.986
+ 27.600 16.100
+ 1438780.352 4 1121143.309 3 24716904.175 24716904.449 24716903.435
+ 24.900 19.900
+ -9887083.814 5 -7704212.827 5 22586977.956 22586977.426 22586977.549
+ 35.400 31.000
+ 06 1 1 21 43 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24830950.473 7 -19348778.326 8 20098274.811 20098271.262 20098274.073
+ 47.900 50.600
+ -16785589.940 7 -13079666.927 6 21269478.587 21269477.537 21269478.132
+ 46.300 40.200
+ -12393507.571 6 -9657267.573 5 22034010.637 22034009.716 22034009.475
+ 40.300 35.200
+ -2524690.532 5 -1967286.632 4 22870382.779 22870384.997 22870383.216
+ 31.300 27.600
+ -12192482.530 6 -9500625.716 5 22181486.907 22181487.534 22181485.847
+ 36.000 33.600
+ -8044780.576 5 -6268653.786 4 23102115.004 23102114.273 23102114.612
+ 32.300 26.800
+ -2028608.897 4 -1580731.109 4 24334134.822 24334133.424 24334132.787
+ 27.100 25.300
+ -2409306.490 4 -1877376.879 3 24232525.801 24232521.608 24232524.714
+ 28.100 18.600
+ 1616122.696 4 1259332.127 3 24750650.532 24750651.971 24750649.825
+ 25.900 21.100
+ -9933487.267 5 -7740371.322 5 22578147.146 22578146.975 22578147.183
+ 35.500 31.000
+ 06 1 1 21 44 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24848318.766 7 -19362312.048 8 20094969.592 20094966.085 20094968.820
+ 47.700 50.400
+ -16662075.968 7 -12983422.281 6 21292982.321 21292981.613 21292981.896
+ 46.100 40.100
+ -12318503.875 6 -9598823.158 5 22048283.069 22048282.667 22048281.930
+ 39.700 35.400
+ -2344797.900 4 -1827110.625 4 22904619.855 22904617.478 22904617.162
+ 29.900 27.400
+ -12391388.911 6 -9655617.598 5 22143636.818 22143636.426 22143635.463
+ 36.800 33.500
+ -8089906.424 5 -6303816.745 4 23093527.888 23093527.084 23093527.255
+ 32.100 26.800
+ -1817325.827 3 -1416094.945 4 24374338.389 24374339.028 24374337.552
+ 23.800 24.900
+ -2335727.096 4 -1820042.225 3 24246527.842 24246523.904 24246526.599
+ 29.900 21.100
+ 1793494.740 3 1397544.115 2 24784403.715 24784403.845 24784402.710
+ 23.400 16.100
+ -9977456.307 6 -7774632.871 5 22569780.846 22569779.652 22569780.295
+ 36.200 30.600
+ 06 1 1 21 45 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24864187.417 7 -19374677.209 8 20091949.844 20091946.367 20091949.084
+ 47.800 50.500
+ -16537662.041 7 -12886476.374 6 21316657.671 21316656.846 21316657.245
+ 46.100 39.800
+ -12241331.413 6 -9538688.794 5 22062968.596 22062968.026 22062967.434
+ 39.500 35.200
+ -2163931.484 5 -1686175.814 4 22939033.903 22939035.135 22939033.919
+ 31.000 26.800
+ -12588975.970 6 -9809581.440 5 22106036.589 22106037.071 22106035.481
+ 36.700 34.000
+ -8132679.103 5 -6337146.063 4 23085388.476 23085387.056 23085388.043
+ 33.100 25.300
+ -1605505.075 3 -1251039.861 3 24414647.069 24414646.865 24414646.041
+ 22.100 23.000
+ -2259960.738 4 -1761003.478 3 24260945.099 24260941.977 24260944.076
+ 27.100 21.600
+ 1970892.951 3 1535776.448 2 24818161.458 24818162.005 24818160.436
+ 19.900 17.000
+ -10018985.775 5 -7806993.475 5 22561877.570 22561877.311 22561877.208
+ 35.600 31.100
+ 06 1 1 21 46 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24878556.536 7 -19385873.905 8 20089215.546 20089212.000 20089214.715
+ 47.900 50.500
+ -16412356.606 7 -12788835.784 6 21340502.381 21340501.698 21340501.975
+ 46.100 39.700
+ -12162004.142 6 -9476875.356 5 22078063.615 22078063.589 22078062.547
+ 38.800 34.900
+ -1982101.420 5 -1544490.098 4 22973636.746 22973636.492 22973635.025
+ 30.200 26.500
+ -12785225.714 6 -9962503.173 5 22068691.379 22068691.482 22068690.202
+ 36.800 33.800
+ -8173088.528 5 -6368633.904 4 23077699.007 23077697.486 23077698.620
+ 33.200 26.200
+ -1393158.272 4 -1085574.908 3 24455054.917 24455054.848 24455054.292
+ 25.600 19.900
+ -2182016.823 4 -1700267.973 3 24275777.758 24275774.599 24275776.624
+ 28.800 21.100
+ 2148313.159 4 1674025.925 3 24851923.473 24851924.054 24851922.785
+ 24.200 18.600
+ -10058071.487 5 -7837449.832 5 22554439.484 22554439.586 22554439.365
+ 35.200 32.300
+ 06 1 1 21 47 0.0000000 0 10G02G04G05G07G10G13G17G23G24G30
+ -24891426.794 7 -19395902.650 8 20086766.274 20086762.853 20086765.611
+ 47.800 50.500
+ -16286167.759 7 -12690506.829 6 21364515.510 21364514.447 21364515.105
+ 46.100 39.400
+ -12080536.607 6 -9413394.188 5 22093566.709 22093566.141 22093565.640
+ 38.800 34.600
+ -1799318.365 5 -1402061.811 4 23008420.217 23008419.026 23008418.178
+ 31.300 27.600
+ -12980120.987 6 -10114369.469 5 22031603.869 22031604.043 22031602.716
+ 37.600 33.900
+ -8211124.408 5 -6398272.209 4 23070460.740 23070459.026 23070460.434
+ 33.000 25.300
+ -1180296.853 4 -919708.898 2 24495560.015 24495561.075 24495561.138
+ 25.300 17.000
+ -2101904.179 4 -1637842.510 3 24291022.637 24291019.115 24291021.311
+ 28.400 21.600
+ 2325750.845 4 1812289.070 2 24885689.271 24885689.424 24885688.181
+ 25.600 12.600
+ -10094709.268 6 -7865998.721 5 22547467.943 22547467.567 22547467.596
+ 36.000 31.800
+ 06 1 1 21 48 0.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24902798.914 7 -19404764.021 8 20084602.373 20084598.749 20084601.583
+ 47.800 50.500
+ -16159104.382 7 -12591496.416 6 21388694.784 21388693.737 21388694.386
+ 45.900 39.000
+ -11996943.816 6 -9348256.971 5 22109473.571 22109473.357 22109472.559
+ 38.600 33.900
+ -1615593.292 4 -1258899.483 4 23043378.948 23043380.992 23043378.764
+ 29.200 27.600
+ -13173644.152 6 -10265166.574 5 21994777.378 21994777.697 21994776.419
+ 38.000 34.600
+ -8246777.250 5 -6426053.612 4 23063676.928 23063674.320 23063676.368
+ 33.800 25.600
+ -966932.382 3 -753450.855 3 24536160.862 24536163.753 24536162.298
+ 22.600 22.100
+ -2019633.129 4 -1573735.164 2 24306678.248 24306673.926 24306677.038
+ 27.600 17.000
+ -10128895.499 6 -7892637.298 5 22540962.606 22540962.021 22540962.243
+ 37.100 32.000
+ 06 1 1 21 49 0.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24912672.909 8 -19412458.028 8 20082723.094 20082719.832 20082722.383
+ 48.000 50.500
+ -16031174.218 7 -12491810.593 6 21413039.079 21413038.418 21413038.753
+ 46.000 39.500
+ -11911240.662 6 -9281475.305 5 22125782.420 22125782.460 22125781.434
+ 38.900 34.700
+ -1430936.621 4 -1115011.261 4 23078519.956 23078519.592 23078518.412
+ 29.200 26.500
+ -13365778.518 6 -10414881.493 5 21958215.388 21958215.469 21958214.382
+ 38.100 34.300
+ -8280038.032 5 -6451971.069 4 23057347.005 23057345.281 23057346.641
+ 33.400 25.600
+ -753076.678 3 -586810.079 3 24576857.382 24576858.866 24576858.085
+ 18.600 23.800
+ -1935213.982 4 -1507954.025 3 24322741.319 24322739.130 24322740.209
+ 25.300 23.000
+ -10160626.912 6 -7917363.050 5 22534924.051 22534923.609 22534923.951
+ 36.800 32.000
+ 06 1 1 21 50 0.0000000 0 9G02G04G05G07G10G13G17G23G30
+ -24921049.290 8 -19418985.066 8 20081129.545 20081125.842 20081128.681
+ 48.100 50.500
+ -15902385.450 7 -12391455.722 6 21437546.705 21437545.998 21437546.442
+ 45.700 39.100
+ -11823442.858 6 -9213061.473 5 22142489.873 22142490.008 22142488.743
+ 38.100 35.400
+ -1245359.389 5 -970405.687 4 23113833.332 23113833.593 23113832.608
+ 30.100 24.200
+ -13556506.380 6 -10563500.443 5 21921921.180 21921921.026 21921920.043
+ 38.300 34.700
+ -8310897.919 5 -6476017.696 4 23051474.935 23051473.498 23051474.584
+ 34.100 26.200
+ -538741.988 3 -419796.113 4 24617644.183 24617645.775 24617644.742
+ 23.800 27.400
+ -1848657.331 4 -1440507.217 3 24339213.671 24339210.315 24339212.581
+ 27.600 19.900
+ -10189900.565 5 -7940173.673 5 22529353.482 22529352.954 22529353.247
+ 35.800 32.000
+ 06 1 1 21 51 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24927929.401 8 -19424346.177 8 20079820.162 20079816.544 20079819.385
+ 48.000 50.300
+ -15772746.440 7 -12290438.322 6 21462216.412 21462215.361 21462215.927
+ 45.400 38.600
+ -11733566.189 6 -9143027.723 5 22159593.309 22159592.840 22159591.949
+ 38.600 34.800
+ -1058872.581 4 -825091.336 4 23149320.374 23149321.243 23149319.692
+ 28.400 25.600
+ -13745810.981 6 -10711010.362 5 21885897.159 21885897.255 21885896.080
+ 38.100 34.700
+ -8339348.472 5 -6498186.928 4 23046060.633 23046059.065 23046060.242
+ 33.500 25.600
+ -1759974.686 4 -1371403.856 3 24356089.792 24356085.621 24356088.537
+ 28.400 19.900
+ -10216714.121 5 -7961067.329 5 22524251.317 22524250.676 22524250.795
+ 35.800 32.400
+ 06 1 1 21 52 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24933313.412 8 -19428541.498 8 20078795.551 20078791.983 20078794.816
+ 48.100 50.300
+ -15642265.008 7 -12188764.491 6 21487045.897 21487045.126 21487045.543
+ 45.000 38.600
+ -11641626.782 6 -9071386.658 5 22177088.344 22177088.090 22177087.263
+ 38.100 34.800
+ -871487.274 4 -679076.888 4 23184978.650 23184979.897 23184977.925
+ 27.900 26.800
+ -13933675.944 6 -10857398.518 5 21850147.594 21850147.616 21850146.636
+ 38.600 34.600
+ -8365382.140 5 -6518472.876 4 23041106.857 23041104.947 23041106.407
+ 34.100 25.300
+ -1669176.356 4 -1300651.832 3 24373367.936 24373364.568 24373367.004
+ 29.500 22.100
+ -10241065.629 6 -7980042.501 5 22519616.967 22519616.610 22519616.588
+ 36.000 31.500
+ 06 1 1 21 53 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24937201.989 8 -19431571.548 8 20078055.699 20078052.058 20078054.896
+ 48.300 50.400
+ -15510949.253 7 -12086440.533 6 21512034.613 21512033.755 21512034.202
+ 44.900 38.600
+ -11547641.000 6 -8998151.001 5 22194973.239 22194973.050 22194971.976
+ 37.900 33.400
+ -683214.614 4 -532370.977 4 23220806.473 23220807.165 23220805.118
+ 28.100 25.900
+ -14120084.452 6 -11002651.788 5 21814675.487 21814675.193 21814674.383
+ 39.000 35.100
+ -8388991.160 5 -6536869.480 4 23036613.770 23036611.932 23036613.494
+ 34.400 25.300
+ -1576274.681 4 -1228260.917 3 24391046.811 24391042.559 24391045.363
+ 28.600 21.100
+ -10262953.455 6 -7997097.932 5 22515451.703 22515451.344 22515451.529
+ 36.600 31.800
+ 06 1 1 21 54 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24939596.532 8 -19433437.416 8 20077600.035 20077596.324 20077599.201
+ 48.300 50.300
+ -15378807.153 7 -11983472.671 6 21537180.514 21537179.610 21537180.090
+ 44.900 38.400
+ -11451625.385 6 -8923333.659 5 22213244.412 22213244.421 22213243.266
+ 37.800 34.600
+ -494065.860 4 -384982.418 3 23256802.085 23256800.846 23256800.340
+ 28.800 23.400
+ -14305019.574 6 -11146756.970 5 21779483.332 21779482.966 21779482.332
+ 39.500 35.300
+ -8410168.608 5 -6553371.358 4 23032583.882 23032581.891 23032583.414
+ 33.400 25.300
+ -1481280.859 4 -1154239.718 3 24409123.036 24409119.563 24409122.007
+ 27.100 19.900
+ -10282376.562 5 -8012232.794 5 22511755.662 22511755.371 22511755.440
+ 35.700 31.800
+ 06 1 1 21 55 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24940497.303 8 -19434139.305 8 20077428.614 20077424.921 20077427.823
+ 48.300 50.300
+ -15245846.353 7 -11879866.852 6 21562481.977 21562481.165 21562481.588
+ 44.700 38.000
+ -11353597.084 6 -8846947.994 5 22231898.730 22231898.920 22231897.630
+ 37.600 34.600
+ -304052.760 4 -236920.265 4 23292957.908 23292959.342 23292957.692
+ 28.400 27.100
+ -14488465.445 6 -11289701.702 5 21744574.829 21744574.477 21744573.639
+ 39.500 35.800
+ -8428907.990 5 -6567973.444 4 23029017.980 23029016.544 23029017.654
+ 33.900 26.800
+ -1384207.958 4 -1078598.518 3 24427595.387 24427591.746 24427594.305
+ 26.500 20.500
+ -10299334.099 5 -8025446.448 5 22508528.746 22508528.487 22508528.384
+ 35.800 32.100
+ 06 1 1 21 56 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24939905.050 8 -19433677.796 8 20077541.227 20077537.671 20077540.455
+ 48.200 50.400
+ -15112074.932 7 -11775629.386 6 21587937.860 21587937.029 21587937.473
+ 44.500 37.700
+ -11253573.367 6 -8769007.455 5 22250932.548 22250932.902 22250931.557
+ 37.000 34.400
+ -113186.338 4 -88193.243 4 23329280.577 23329279.852 23329278.502
+ 29.500 26.200
+ -14670406.039 6 -11431473.498 5 21709952.665 21709952.171 21709951.521
+ 39.600 35.500
+ -8445202.577 5 -6580670.481 4 23025917.267 23025915.523 23025916.856
+ 33.200 26.200
+ -1285068.439 4 -1001346.943 3 24446461.704 24446457.382 24446460.422
+ 29.000 19.900
+ -10313825.987 5 -8036738.809 5 22505771.172 22505770.764 22505770.688
+ 35.600 32.000
+ 06 1 1 21 57 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24937821.504 8 -19432054.243 8 20077937.695 20077934.085 20077936.949
+ 48.400 50.300
+ -14977500.318 7 -11670766.054 6 21613546.593 21613545.928 21613546.137
+ 44.600 38.300
+ -11151571.700 6 -8689525.653 5 22270342.551 22270343.013 22270341.425
+ 37.000 33.800
+ 78521.401 4 61189.327 4 23365758.502 23365760.876 23365758.618
+ 26.200 25.600
+ -14850824.406 6 -11572059.147 6 21675620.172 21675619.747 21675618.914
+ 39.500 36.400
+ -8459047.374 5 -6591458.603 4 23023282.463 23023280.869 23023282.251
+ 33.800 25.300
+ -1183874.706 4 -922494.701 3 24465718.000 24465714.302 24465716.566
+ 26.800 22.100
+ -10325852.136 6 -8046109.799 5 22503482.894 22503482.358 22503482.522
+ 36.400 32.100
+ 06 1 1 21 58 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24934246.625 8 -19429268.612 8 20078617.878 20078614.427 20078617.120
+ 48.100 50.200
+ -14842130.208 7 -11565282.864 6 21639306.878 21639305.872 21639306.411
+ 44.500 38.000
+ -11047609.984 6 -8608516.550 5 22290126.024 22290126.015 22290124.859
+ 36.800 33.200
+ 271058.850 4 211218.467 3 23402398.599 23402398.806 23402397.366
+ 25.900 19.900
+ -15029705.079 6 -11711446.584 6 21641579.918 21641579.647 21641578.774
+ 40.300 36.500
+ -8470436.858 5 -6600333.513 4 23021115.538 23021113.548 23021115.028
+ 33.200 26.200
+ -1080640.113 4 -842052.122 3 24485362.672 24485358.795 24485361.631
+ 29.700 19.900
+ -10335413.004 6 -8053559.814 5 22501663.296 22501662.879 22501662.948
+ 36.200 32.000
+ 06 1 1 21 59 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24929182.201 8 -19425322.294 8 20079581.663 20079578.048 20079580.889
+ 48.200 50.300
+ -14705972.345 7 -11459185.840 6 21665216.268 21665215.863 21665216.083
+ 44.200 37.200
+ -10941706.227 6 -8525994.159 5 22310278.683 22310278.643 22310277.662
+ 37.100 32.700
+ 464414.351 4 361885.000 3 23439193.722 23439193.380 23439192.004
+ 24.900 21.600
+ -15207032.513 6 -11849623.711 6 21607835.973 21607835.326 21607834.575
+ 40.400 36.200
+ -8479365.525 5 -6607290.901 4 23019416.049 23019414.479 23019415.804
+ 33.400 26.500
+ -975377.846 4 -760029.608 2 24505393.341 24505389.428 24505392.190
+ 28.400 17.000
+ -10342509.851 6 -8059089.803 5 22500312.664 22500312.486 22500312.356
+ 36.300 31.800
+ 06 1 1 22 0 0.0000000 0 8G02G04G05G07G10G13G23G30
+ -24922629.665 8 -19420216.413 8 20080828.647 20080824.891 20080827.887
+ 48.200 50.000
+ -14569034.303 7 -11352480.887 6 21691275.307 21691274.271 21691274.822
+ 44.300 37.700
+ -10833878.824 6 -8441972.820 5 22330797.833 22330797.914 22330796.729
+ 37.200 33.800
+ 658575.823 3 513179.602 3 23476140.085 23476141.648 23476139.128
+ 23.000 23.800
+ -15382790.998 6 -11986578.281 6 21574389.832 21574389.582 21574388.704
+ 40.700 37.300
+ -8485829.560 5 -6612327.800 4 23018186.246 23018184.595 23018185.980
+ 34.300 26.800
+ -868101.565 4 -676437.685 3 24525807.561 24525803.759 24525806.125
+ 26.200 19.300
+ -10347143.738 6 -8062700.616 5 22499431.097 22499430.552 22499430.871
+ 37.200 32.000
+ 06 1 1 22 1 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24914589.139 8 -19413951.053 8 20082358.654 20082354.965 20082357.810
+ 48.000 50.000
+ -14431323.493 7 -11245173.776 6 21717480.757 21717479.967 21717480.292
+ 44.200 37.300
+ -10724146.327 5 -8356466.996 5 22351679.131 22351679.089 22351678.025
+ 35.900 33.400
+ -176199.535 3 -137297.684 2 24775191.637 24775194.068 24775192.051
+ 20.500 16.100
+ 853531.328 4 665092.915 4 23513239.922 23513240.970 23513238.564
+ 25.600 25.300
+ -15556964.941 6 -12122298.145 6 21541245.717 21541245.236 21541244.653
+ 41.300 37.200
+ -8489824.683 5 -6615440.868 4 23017425.487 23017424.138 23017425.359
+ 34.000 26.800
+ -758825.955 3 -591287.866 3 24546601.440 24546597.880 24546600.378
+ 22.600 18.600
+ -10349317.031 6 -8064394.067 5 22499017.505 22499016.857 22499017.139
+ 37.500 31.600
+ 06 1 1 22 2 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24905062.815 7 -19406527.930 8 20084171.245 20084167.765 20084170.520
+ 47.900 49.900
+ -14292847.234 7 -11137270.211 6 21743831.717 21743830.924 21743831.387
+ 44.100 37.100
+ -10612527.722 6 -8269491.489 5 22372919.733 22372919.114 22372918.532
+ 36.700 32.600
+ -379302.552 2 -295559.634 2 24736543.422 24736544.144 24736542.340
+ 17.000 17.000
+ 1049268.809 4 817615.580 3 23550487.537 23550488.172 23550485.951
+ 24.600 23.000
+ -15729539.839 6 -12256772.007 6 21508405.867 21508405.258 21508404.745
+ 41.400 37.600
+ -8491347.589 5 -6616627.515 4 23017135.471 23017134.659 23017135.281
+ 33.000 27.100
+ -647564.424 4 -504590.528 3 24567774.044 24567770.338 24567772.490
+ 27.100 18.600
+ -10349031.603 6 -8064171.633 5 22499071.746 22499071.239 22499071.467
+ 36.600 32.100
+ 06 1 1 22 3 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24894051.210 7 -19397947.448 8 20086266.808 20086263.132 20086266.015
+ 47.900 49.700
+ -14153613.154 7 -11028776.140 6 21770327.340 21770326.425 21770326.835
+ 43.600 37.000
+ -10499042.033 6 -8181061.084 5 22394515.792 22394514.935 22394514.628
+ 37.400 32.600
+ -582174.552 3 -453641.568 3 24697938.448 24697939.552 24697937.786
+ 23.800 20.500
+ 1245776.121 3 970738.104 3 23587880.870 23587882.125 23587880.056
+ 23.000 22.100
+ -15900500.411 6 -12389987.972 6 21475873.027 21475872.461 21475871.880
+ 41.700 37.300
+ -8490395.013 5 -6615885.232 4 23017316.626 23017315.685 23017316.594
+ 33.500 26.800
+ -534331.649 3 -416357.185 3 24589321.116 24589317.359 24589320.333
+ 20.500 20.500
+ -10346290.230 6 -8062035.486 5 22499593.060 22499593.262 22499592.868
+ 36.600 33.000
+ 06 1 1 22 4 0.0000000 0 9G02G04G05G06G07G10G13G23G30
+ -24881555.765 8 -19388210.724 8 20088644.707 20088640.968 20088643.893
+ 48.000 49.800
+ -14013628.244 7 -10919697.004 6 21796965.615 21796964.599 21796965.119
+ 43.500 36.500
+ -10383708.580 5 -8091190.888 5 22416462.386 22416462.455 22416461.285
+ 35.500 33.600
+ -784800.649 4 -611531.812 3 24659380.395 24659380.674 24659379.333
+ 25.900 21.600
+ 1443040.787 3 1124450.756 3 23625420.538 23625420.173 23625418.775
+ 22.600 21.600
+ -16069831.990 6 -12521934.593 6 21443650.180 21443649.555 21443649.063
+ 41.900 37.900
+ -8486964.208 5 -6613211.861 4 23017969.634 23017968.717 23017969.340
+ 32.400 27.100
+ -419142.928 4 -326599.764 2 24611241.394 24611237.353 24611240.045
+ 26.500 16.100
+ -10341095.970 6 -8057987.990 5 22500581.815 22500581.359 22500581.568
+ 36.600 32.300
+ 06 1 1 22 5 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24867578.180 8 -19377319.088 8 20091304.485 20091300.806 20091303.720
+ 48.100 49.800
+ -13872899.683 7 -10810038.395 6 21823744.940 21823744.421 21823744.569
+ 43.400 36.400
+ -10266546.916 6 -7999896.110 5 22438758.147 22438757.502 22438756.961
+ 36.700 33.600
+ -987166.747 3 -769219.543 3 24620870.834 24620871.743 24620869.787
+ 22.600 23.000
+ 1641050.634 3 1278744.043 3 23663099.408 23663100.522 23663098.498
+ 23.800 23.400
+ -16237520.208 6 -12652600.681 6 21411740.176 21411739.666 21411738.992
+ 41.800 38.100
+ -8481052.965 5 -6608605.674 4 23019094.601 23019093.382 23019094.314
+ 32.300 26.800
+ -10333452.478 5 -8052031.999 5 22502035.876 22502035.978 22502035.551
+ 35.400 32.400
+ 06 1 1 22 6 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24852119.997 8 -19365273.741 8 20094246.048 20094242.445 20094245.299
+ 48.000 49.800
+ -13731434.877 7 -10699806.087 6 21850664.983 21850664.065 21850664.567
+ 43.300 36.500
+ -10147576.996 6 -7907192.290 5 22461396.722 22461396.472 22461395.607
+ 36.500 32.100
+ -1189257.969 4 -926693.042 3 24582414.769 24582414.883 24582413.474
+ 24.200 19.300
+ 1839793.163 3 1433608.305 3 23700918.301 23700919.849 23700918.238
+ 22.600 21.100
+ -16403549.866 7 -12781974.399 6 21380145.984 21380145.057 21380144.750
+ 42.300 37.900
+ -8472659.325 5 -6602065.138 4 23020692.135 23020690.313 23020691.706
+ 32.300 26.200
+ -10323363.838 5 -8044170.705 5 22503955.914 22503955.987 22503955.604
+ 35.700 32.800
+ 06 1 1 22 7 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24835181.779 8 -19352075.119 8 20097469.177 20097465.673 20097468.504
+ 48.100 49.800
+ -13589240.777 7 -10589005.488 5 21877723.667 21877722.591 21877723.183
+ 42.900 35.500
+ -10026818.726 6 -7813094.959 5 22484376.717 22484376.227 22484375.593
+ 36.600 32.300
+ -1391060.090 4 -1083941.228 2 24544011.833 24544012.004 24544011.423
+ 24.600 15.100
+ 2039255.895 3 1589033.762 3 23738876.227 23738876.489 23738874.549
+ 22.100 21.600
+ -16567906.966 7 -12910044.837 6 21348869.848 21348868.988 21348868.559
+ 42.500 38.500
+ -8461782.032 5 -6593589.311 4 23022761.764 23022760.295 23022761.425
+ 33.100 25.600
+ -10310834.159 6 -8034407.297 5 22506340.349 22506340.061 22506340.110
+ 37.000 32.300
+ 06 1 1 22 8 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24816765.434 7 -19337724.707 8 20100973.783 20100970.171 20100973.009
+ 47.900 49.800
+ -13446324.549 7 -10477642.191 6 21904920.140 21904918.907 21904919.473
+ 43.100 36.000
+ -9904292.377 6 -7717619.896 5 22507692.833 22507692.438 22507691.622
+ 36.400 32.400
+ -1592557.834 4 -1240952.331 3 24505668.514 24505668.906 24505667.481
+ 25.900 22.100
+ 2239426.258 4 1745010.564 3 23776965.970 23776967.124 23776965.832
+ 24.600 18.600
+ -16730576.957 7 -13036800.634 6 21317914.709 21317913.976 21317913.496
+ 42.700 38.700
+ -8448420.205 5 -6583177.483 4 23025304.943 23025302.654 23025304.261
+ 33.000 25.600
+ -10295868.481 6 -8022745.721 5 22509188.272 22509187.692 22509187.953
+ 36.600 31.300
+ 06 1 1 22 9 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24796872.699 8 -19322223.869 8 20104759.229 20104755.699 20104758.460
+ 48.000 49.800
+ -13302693.157 7 -10365721.629 5 21932252.118 21932251.028 21932251.705
+ 43.200 35.700
+ -9780018.444 5 -7620783.083 5 22531340.920 22531340.908 22531339.891
+ 34.800 31.800
+ -1793736.493 4 -1397714.770 4 24467384.172 24467386.348 24467383.738
+ 24.200 24.900
+ 2440291.516 4 1901528.895 2 23815190.760 23815190.981 23815189.510
+ 24.600 17.800
+ -16891546.874 7 -13162231.683 6 21287282.482 21287282.178 21287281.534
+ 42.600 38.400
+ -8432573.252 5 -6570829.187 4 23028320.060 23028318.368 23028319.718
+ 33.000 26.200
+ -10278471.868 5 -8009189.892 5 22512498.696 22512498.069 22512498.225
+ 35.900 31.100
+ 06 1 1 22 10 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24775504.874 7 -19305573.606 8 20108825.518 20108821.826 20108824.609
+ 47.700 49.700
+ -13158353.214 7 -10253248.948 5 21959718.836 21959718.140 21959718.576
+ 43.000 35.800
+ -9654017.550 5 -7522600.584 5 22555318.055 22555317.978 22555317.089
+ 35.400 31.800
+ -1994581.192 3 -1554216.921 4 24429165.160 24429167.108 24429164.256
+ 22.100 28.100
+ 2641838.690 4 2058578.588 3 23853545.023 23853544.266 23853543.471
+ 24.900 19.300
+ -17050803.309 7 -13286327.554 6 21256977.382 21256976.895 21256976.130
+ 42.600 39.300
+ -8414241.206 5 -6556544.446 4 23031808.604 23031806.840 23031808.170
+ 32.700 25.900
+ -10258650.137 6 -7993744.386 5 22516270.685 22516270.013 22516270.185
+ 36.100 30.800
+ 06 1 1 22 11 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24752663.643 7 -19287775.236 8 20113171.870 20113168.338 20113171.050
+ 47.800 49.600
+ -13013311.945 7 -10140229.781 5 21987319.440 21987318.709 21987319.066
+ 42.500 35.900
+ -9526310.681 5 -7423088.737 5 22579620.005 22579619.795 22579618.919
+ 35.800 32.100
+ -2195076.210 4 -1710446.569 3 24391011.174 24391013.350 24391011.173
+ 24.900 23.000
+ 2844055.270 3 2216149.839 3 23892024.935 23892025.209 23892023.605
+ 23.800 20.500
+ -17208332.491 7 -13409077.485 6 21227000.358 21226999.905 21226999.158
+ 42.500 39.000
+ -8393424.522 5 -6540323.631 4 23035769.302 23035768.226 23035769.050
+ 31.800 25.600
+ -10236409.294 5 -7976413.861 5 22520502.866 22520502.171 22520502.416
+ 35.900 31.100
+ 06 1 1 22 12 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24728350.795 7 -19268830.148 8 20117798.462 20117794.840 20117797.702
+ 47.900 49.400
+ -12867575.975 7 -10026669.288 5 22015051.760 22015051.113 22015051.519
+ 42.300 35.700
+ -9396918.789 6 -7322263.907 5 22604242.915 22604242.438 22604241.658
+ 36.100 32.300
+ -2395206.841 4 -1866392.353 2 24352928.396 24352928.385 24352927.795
+ 27.100 17.000
+ 3046928.094 3 2374232.515 2 23930629.338 23930630.242 23930628.097
+ 22.100 17.000
+ -17364120.937 7 -13530471.007 6 21197355.058 21197354.059 21197353.821
+ 43.200 39.100
+ -8370124.027 5 -6522167.384 4 23040203.176 23040201.984 23040203.074
+ 32.600 24.600
+ -10211755.804 6 -7957203.342 5 22525194.523 22525193.896 22525193.943
+ 36.100 31.300
+ 06 1 1 22 13 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24702568.342 8 -19248739.912 8 20122704.684 20122701.162 20122703.907
+ 48.000 49.200
+ -12721152.135 7 -9912572.800 5 22042915.647 22042914.741 22042915.199
+ 42.100 35.300
+ -9265863.200 5 -7220142.696 5 22629181.831 22629181.090 22629180.729
+ 35.400 31.000
+ -2594957.634 4 -2022042.156 2 24314916.668 24314917.262 24314915.963
+ 26.200 17.800
+ 3250444.199 4 2532816.444 3 23969358.200 23969358.946 23969357.297
+ 24.200 20.500
+ -17518155.855 7 -13650498.148 6 21168042.981 21168042.246 21168041.775
+ 43.400 39.500
+ -8344340.908 5 -6502076.614 4 23045109.707 23045108.710 23045109.261
+ 31.800 26.800
+ -10184696.643 6 -7936118.285 5 22530343.745 22530343.065 22530343.355
+ 36.900 32.300
+ 06 1 1 22 14 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24675317.539 8 -19227505.506 8 20127890.409 20127886.670 20127889.664
+ 48.000 49.100
+ -12574046.884 6 -9797945.335 5 22070909.114 22070907.808 22070908.516
+ 41.600 35.100
+ -9133165.315 5 -7116741.765 5 22654433.391 22654433.027 22654432.232
+ 34.900 30.200
+ -2794313.048 4 -2177383.922 3 24276981.202 24276980.933 24276980.448
+ 28.800 18.600
+ 3454590.514 3 2691891.400 3 24008206.795 24008206.658 24008205.249
+ 21.600 23.400
+ -17670424.555 7 -13769149.009 6 21139066.985 21139066.434 21139065.886
+ 43.700 40.000
+ -8316077.037 5 -6480052.797 4 23050488.213 23050487.246 23050488.045
+ 32.400 26.200
+ -10155239.180 6 -7913164.412 5 22535949.081 22535948.635 22535948.721
+ 36.400 32.300
+ 06 1 1 22 15 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24646600.185 7 -19205128.337 8 20133354.965 20133351.469 20133354.306
+ 47.800 49.100
+ -12426266.923 6 -9682792.130 5 22099029.884 22099029.424 22099029.788
+ 41.700 34.700
+ -8998846.835 5 -7012078.045 5 22679993.046 22679992.768 22679991.902
+ 34.000 30.400
+ -2993257.074 4 -2332405.109 3 24239122.181 24239123.654 24239121.691
+ 26.200 22.600
+ 3659353.862 3 2851447.194 3 24047171.751 24047171.525 24047170.329
+ 20.500 20.500
+ -17820914.516 7 -13886413.856 6 21110429.717 21110429.073 21110428.617
+ 43.700 39.800
+ -8285334.353 5 -6456097.441 4 23056338.890 23056337.071 23056338.348
+ 33.000 26.200
+ -10123390.918 6 -7888347.591 5 22542009.701 22542009.163 22542009.404
+ 36.800 32.400
+ 06 1 1 22 16 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24616418.610 7 -19181610.218 8 20139098.349 20139094.791 20139097.603
+ 47.900 49.100
+ -12277818.808 6 -9567118.280 5 22127278.973 22127278.000 22127278.653
+ 41.800 34.300
+ -8862929.580 5 -6906168.514 5 22705857.428 22705856.973 22705856.335
+ 34.900 30.200
+ -3191774.480 3 -2487093.799 4 24201345.483 24201346.788 24201344.396
+ 23.800 25.300
+ 3864721.222 3 3011473.585 2 24086252.027 24086251.383 24086250.534
+ 23.400 17.800
+ -17969613.367 7 -14002283.028 6 21082133.338 21082132.603 21082132.156
+ 43.800 40.100
+ -8252115.211 5 -6430212.375 4 23062659.701 23062658.291 23062659.428
+ 32.400 25.900
+ -10089160.184 6 -7861674.293 5 22548523.592 22548522.957 22548523.263
+ 36.700 31.500
+ 06 1 1 22 17 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24584774.022 7 -19156952.089 8 20145120.152 20145116.606 20145119.390
+ 47.700 49.100
+ -12128709.130 6 -9450928.931 5 22155654.057 22155652.899 22155653.509
+ 41.600 34.400
+ -8725435.350 5 -6799030.181 5 22732021.430 22732021.466 22732020.458
+ 35.300 30.400
+ -3389848.821 4 -2641437.218 4 24163654.139 24163654.164 24163653.021
+ 26.500 26.800
+ 4070678.992 3 3171960.129 2 24125442.531 24125443.623 24125442.444
+ 23.400 16.100
+ -18116508.553 7 -14116746.744 6 21054180.208 21054179.349 21054178.996
+ 43.800 40.300
+ -8216423.232 5 -6402400.401 4 23069452.096 23069450.032 23069451.692
+ 32.800 25.900
+ -10052555.464 6 -7833151.133 5 22555489.311 22555488.894 22555488.934
+ 36.000 31.600
+ 06 1 1 22 18 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24551668.486 7 -19131155.561 8 20151420.016 20151416.345 20151419.200
+ 47.600 49.000
+ -11978944.187 6 -9334228.995 5 22184153.230 22184152.196 22184152.830
+ 41.800 34.700
+ -8586386.394 5 -6690680.359 4 22758481.756 22758481.594 22758480.833
+ 34.800 29.700
+ -3587464.649 4 -2795423.422 4 24126047.979 24126048.910 24126047.292
+ 26.200 26.200
+ 4277214.067 3 3332896.583 1 24164747.148 24164745.918 24164745.016
+ 20.500 9.000
+ -18261588.340 7 -14229795.868 6 21026572.127 21026571.452 21026570.936
+ 43.800 40.500
+ -8178261.144 5 -6372663.699 4 23076713.265 23076712.085 23076713.232
+ 31.600 24.900
+ -10013585.817 6 -7802785.177 5 22562904.784 22562904.407 22562904.632
+ 36.500 31.500
+ 06 1 1 22 19 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24517104.365 7 -19104222.469 8 20157997.169 20157993.659 20157996.436
+ 47.800 48.900
+ -11828530.603 6 -9217023.619 5 22212775.728 22212774.999 22212775.307
+ 41.100 34.100
+ -8445805.002 5 -6581136.447 4 22785233.237 22785233.129 22785232.194
+ 33.200 29.500
+ -3784605.815 4 -2949039.703 4 24088533.814 24088534.349 24088533.031
+ 29.200 25.300
+ 4484312.872 3 3494272.269 3 24204153.780 24204156.337 24204154.233
+ 21.100 21.100
+ -18404841.078 7 -14341421.325 6 20999311.898 20999311.244 20999310.766
+ 44.000 40.600
+ -8137633.163 5 -6341005.527 4 23084445.076 23084443.897 23084444.696
+ 32.800 26.800
+ -9972260.453 6 -7770583.578 5 22570768.765 22570768.216 22570768.519
+ 36.200 31.100
+ 06 1 1 22 20 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24481083.559 7 -19076154.295 8 20164851.799 20164848.270 20164851.071
+ 47.700 48.900
+ -11677474.145 6 -9099317.292 5 22241521.143 22241520.258 22241520.576
+ 40.400 34.400
+ -8303713.629 5 -6470415.918 5 22812272.992 22812272.483 22812271.789
+ 35.100 30.400
+ -3981255.925 5 -3102273.428 3 24051112.659 24051111.997 24051112.057
+ 30.200 21.100
+ 4691961.883 2 3656076.546 3 24243670.144 24243670.490 24243668.616
+ 15.100 21.600
+ -18546255.704 7 -14451614.485 6 20972401.721 20972400.851 20972400.578
+ 44.300 40.900
+ -8094543.882 5 -6307429.410 4 23092644.417 23092643.443 23092644.145
+ 32.100 25.600
+ -9928589.115 5 -7736553.960 5 22579079.096 22579078.944 22579078.753
+ 35.400 31.800
+ 06 1 1 22 21 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24443607.994 7 -19046952.553 8 20171983.228 20171979.560 20171982.432
+ 47.800 48.700
+ -11525781.624 6 -8981115.356 5 22270386.957 22270386.151 22270386.518
+ 40.700 34.000
+ -8160134.831 5 -6358536.367 4 22839595.026 22839594.696 22839593.844
+ 34.100 29.900
+ -4177399.091 4 -3255112.116 2 24013788.063 24013787.001 24013786.786
+ 27.600 16.100
+ 4900147.592 3 3818299.162 3 24283286.684 24283286.965 24283285.523
+ 23.400 19.900
+ -18685821.289 7 -14560366.846 6 20945843.336 20945842.253 20945842.130
+ 44.400 40.700
+ -8048997.631 5 -6271938.837 4 23101312.249 23101310.207 23101311.930
+ 33.800 25.300
+ -9882581.930 5 -7700704.189 5 22587833.803 22587833.961 22587833.538
+ 35.600 32.400
+ 06 1 1 22 22 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24404679.799 7 -19016618.880 8 20179390.851 20179387.383 20179390.141
+ 47.800 48.600
+ -11373458.968 6 -8862422.395 5 22299372.845 22299372.256 22299372.513
+ 40.200 33.800
+ -8015091.288 5 -6245515.447 5 22867196.163 22867195.603 22867194.822
+ 33.200 30.800
+ -4373018.752 4 -3407542.916 4 23976561.929 23976562.308 23976561.156
+ 28.100 24.200
+ 5108856.255 3 3980929.236 3 24323003.111 24323002.856 24323001.827
+ 21.600 19.900
+ -18823526.947 7 -14667669.910 6 20919638.621 20919637.867 20919637.493
+ 44.500 41.000
+ -8000999.901 5 -6234537.993 4 23110445.497 23110443.798 23110445.228
+ 32.300 25.900
+ -9834249.580 5 -7663042.624 5 22597031.513 22597031.351 22597031.042
+ 35.400 32.600
+ 06 1 1 22 23 0.0000000 0 8G02G04G05G06G07G10G13G30
+ -24364301.079 7 -18985154.918 8 20187074.835 20187071.109 20187074.033
+ 47.900 48.500
+ -11220512.167 6 -8743243.066 5 22328478.076 22328477.069 22328477.619
+ 40.500 33.500
+ -7868605.921 5 -6131371.038 5 22895071.083 22895070.742 22895069.988
+ 32.300 31.000
+ -4568098.321 4 -3559552.793 4 23939438.582 23939439.709 23939438.370
+ 26.200 27.400
+ 5318074.535 3 4143956.412 1 24362814.089 24362815.565 24362813.977
+ 22.100 11.000
+ -18959360.783 7 -14773514.401 6 20893790.142 20893789.611 20893789.100
+ 44.500 41.500
+ -7950555.640 5 -6195230.699 4 23120044.352 23120043.312 23120044.161
+ 32.600 26.500
+ -9783602.749 5 -7623577.540 5 22606668.948 22606669.093 22606668.680
+ 35.400 32.300
+ 06 1 1 22 24 0.0000000 0 7G02G04G05G06G10G13G30
+ -24322474.195 7 -18952562.526 8 20195034.181 20195030.497 20195033.318
+ 47.800 48.300
+ -11066947.884 6 -8623582.590 5 22357700.208 22357699.281 22357699.833
+ 40.000 33.200
+ -7720701.700 5 -6016121.047 5 22923216.644 22923216.170 22923215.447
+ 32.100 31.000
+ -4762621.355 4 -3711129.018 4 23902422.329 23902423.512 23902421.645
+ 28.400 28.800
+ -19093312.835 7 -14877892.582 6 20868300.274 20868299.147 20868299.015
+ 44.700 41.400
+ -7897671.384 5 -6154022.186 4 23130107.794 23130106.687 23130107.667
+ 31.800 25.900
+ -9730652.957 5 -7582317.947 5 22616745.434 22616744.926 22616744.935
+ 35.500 32.000
+ 06 1 1 22 25 0.0000000 0 7G02G04G05G06G10G13G30
+ -24279201.035 7 -18918843.166 8 20203268.550 20203265.020 20203267.774
+ 47.700 48.100
+ -10912771.638 6 -8503445.268 5 22387038.788 22387038.186 22387038.362
+ 39.200 33.500
+ -7571401.847 5 -5899783.533 4 22951627.465 22951626.907 22951626.354
+ 33.600 29.900
+ -4956571.222 4 -3862258.679 4 23865515.152 23865515.730 23865514.198
+ 28.800 26.800
+ -19225373.559 7 -14980797.003 6 20843169.783 20843168.766 20843168.588
+ 44.700 41.300
+ -7842353.167 5 -6110917.070 4 23140634.792 23140632.966 23140634.436
+ 32.000 25.300
+ -9675411.773 5 -7539272.858 5 22627256.938 22627257.192 22627256.739
+ 35.200 32.800
+ 06 1 1 22 26 0.0000000 0 7G02G04G05G06G10G13G30
+ -24234483.985 7 -18883998.696 8 20211778.135 20211774.471 20211777.328
+ 47.800 48.000
+ -10757989.376 6 -8382835.714 5 22416493.088 22416492.251 22416492.681
+ 39.400 33.000
+ -7420729.458 5 -5782376.501 4 22980299.416 22980298.949 22980298.362
+ 33.900 29.700
+ -5149930.910 4 -4012928.402 4 23828719.721 23828720.326 23828719.156
+ 26.800 25.300
+ -19355531.919 7 -15082219.056 6 20818401.397 20818400.699 20818400.226
+ 45.100 41.900
+ -7784608.020 5 -6065920.819 4 23151623.663 23151621.811 23151623.208
+ 32.400 26.200
+ -9617891.326 5 -7494451.720 5 22638202.749 22638202.791 22638202.514
+ 34.700 32.700
+ 06 1 1 22 27 0.0000000 0 7G02G04G05G06G10G13G30
+ -24188325.765 7 -18848031.243 8 20220561.735 20220558.085 20220560.976
+ 47.900 48.000
+ -10602607.195 6 -8261758.712 5 22446061.279 22446060.431 22446060.979
+ 39.000 32.300
+ -7268707.995 5 -5663918.256 4 23009228.081 23009227.709 23009226.885
+ 32.100 28.600
+ -5342683.937 5 -4163125.461 3 23792040.113 23792040.084 23792039.627
+ 31.100 23.800
+ -19483778.938 7 -15182151.756 6 20793996.884 20793995.797 20793995.697
+ 45.200 41.800
+ -7724443.285 5 -6019039.170 4 23163071.955 23163070.376 23163071.706
+ 31.300 25.300
+ -9558104.055 5 -7447864.236 5 22649580.136 22649579.927 22649579.789
+ 34.900 32.000
+ 06 1 1 22 28 0.0000000 0 7G02G04G05G06G10G13G30
+ -24140728.523 7 -18810942.470 7 20229618.993 20229615.482 20229618.181
+ 47.600 47.700
+ -10446631.089 6 -8140218.888 5 22475742.761 22475741.791 22475742.289
+ 39.100 32.300
+ -7115360.671 5 -5544426.880 4 23038408.980 23038408.755 23038407.929
+ 31.500 27.900
+ -5534813.040 4 -4312836.343 4 23755479.796 23755480.049 23755478.760
+ 29.700 26.200
+ -19610105.226 7 -15280587.782 7 20769957.667 20769956.701 20769956.529
+ 45.300 42.300
+ -7661866.055 5 -5970277.670 3 23174980.691 23174978.465 23174979.869
+ 31.600 23.400
+ -9496062.558 5 -7399520.212 5 22661386.083 22661385.902 22661385.652
+ 34.400 31.600
+ 06 1 1 22 29 0.0000000 0 7G02G04G05G06G10G13G30
+ -24091694.251 7 -18772733.940 7 20238949.986 20238946.371 20238949.194
+ 47.500 47.500
+ -10290066.850 6 -8018220.790 5 22505535.986 22505534.845 22505535.494
+ 39.100 31.600
+ -6960711.358 5 -5423920.953 4 23067837.872 23067837.292 23067836.823
+ 31.500 25.900
+ -5726301.395 4 -4462047.866 4 23719039.192 23719040.564 23719038.848
+ 27.900 27.600
+ -19734501.413 7 -15377519.830 7 20746285.680 20746284.867 20746284.557
+ 45.200 42.400
+ -7596884.917 5 -5919643.013 4 23187346.170 23187344.369 23187345.724
+ 32.400 25.900
+ -9431780.120 5 -7349430.011 5 22673618.540 22673618.298 22673618.301
+ 35.200 31.100
+ 06 1 1 22 30 0.0000000 0 7G02G04G05G06G10G13G30
+ -24041225.809 7 -18733407.874 7 20248553.862 20248550.180 20248553.016
+ 47.700 47.400
+ -10132919.861 6 -7895768.604 5 22535439.914 22535439.058 22535439.541
+ 39.100 32.100
+ -6804783.485 5 -5302418.756 4 23097509.939 23097509.535 23097508.868
+ 31.500 26.500
+ -5917131.551 5 -4610746.553 4 23682725.564 23682726.422 23682725.271
+ 30.800 26.200
+ -19856958.446 7 -15472940.840 7 20722982.981 20722982.102 20722981.745
+ 45.100 42.600
+ -7529507.739 5 -5867141.314 4 23200167.403 23200165.477 23200167.085
+ 31.800 24.600
+ -9365270.325 5 -7297604.203 5 22686274.964 22686275.197 22686274.534
+ 33.800 32.300
+ 06 1 1 22 31 0.0000000 0 7G02G04G05G06G10G13G30
+ -23989325.450 7 -18692966.026 7 20258430.195 20258426.452 20258429.401
+ 47.700 47.200
+ -9975196.202 6 -7772867.043 5 22565453.258 22565452.804 22565453.037
+ 38.300 32.000
+ -6647600.988 5 -5179938.924 4 23127421.061 23127420.568 23127419.748
+ 31.000 26.800
+ -6107286.388 4 -4758919.020 4 23646540.692 23646540.949 23646539.778
+ 29.900 27.100
+ -19977467.497 7 -15566843.950 7 20700050.869 20700049.941 20700049.668
+ 45.100 42.600
+ -7459743.469 5 -5812779.512 4 23213442.444 23213441.802 23213442.356
+ 30.400 25.300
+ -9296546.801 5 -7244053.413 5 22699352.847 22699352.311 22699352.530
+ 34.700 31.300
+ 06 1 1 22 32 0.0000000 0 7G02G04G05G06G10G13G30
+ -23935996.210 7 -18651410.768 7 20268578.389 20268574.648 20268577.607
+ 47.800 47.100
+ -9816901.527 6 -7649520.579 5 22595576.105 22595575.419 22595575.779
+ 38.100 32.000
+ -6489187.543 5 -5056499.904 4 23157565.921 23157565.666 23157564.828
+ 31.600 27.400
+ -6296748.898 4 -4906551.978 4 23610487.379 23610487.318 23610486.398
+ 29.500 28.600
+ -20096020.446 7 -15659222.827 7 20677490.914 20677489.854 20677489.732
+ 45.100 42.600
+ -7387601.464 5 -5756564.956 3 23227171.131 23227169.068 23227170.662
+ 31.000 23.000
+ -9225623.975 5 -7188788.877 5 22712848.634 22712848.353 22712848.417
+ 34.100 30.200
+ 06 1 1 22 33 0.0000000 0 7G02G04G05G06G10G13G30
+ -23881239.938 7 -18608743.544 7 20278998.211 20278994.499 20278997.488
+ 47.800 47.000
+ -9658041.411 6 -7525733.487 5 22625806.323 22625805.808 22625805.774
+ 37.700 32.600
+ -6329567.195 5 -4932120.447 4 23187940.771 23187940.374 23187939.750
+ 31.600 27.400
+ -6485501.272 5 -5053631.615 4 23574568.931 23574568.657 23574567.955
+ 31.600 27.900
+ -20212608.856 7 -15750070.896 7 20655304.888 20655303.855 20655303.742
+ 45.300 42.800
+ -7313091.100 5 -5698504.904 3 23241349.954 23241348.330 23241349.709
+ 31.800 23.000
+ -9152516.490 5 -7131822.014 5 22726760.680 22726760.464 22726760.478
+ 34.100 31.000
+ 06 1 1 22 34 0.0000000 0 7G02G04G05G06G10G13G30
+ -23825059.889 7 -18564966.873 7 20289688.904 20289685.116 20289688.146
+ 47.900 46.800
+ -9498621.451 6 -7401510.169 5 22656142.624 22656142.225 22656142.338
+ 37.500 31.800
+ -6168763.845 5 -4806819.168 4 23218540.857 23218540.491 23218539.557
+ 31.100 27.900
+ -6673526.238 5 -5200144.453 4 23538789.180 23538788.301 23538788.286
+ 32.100 26.500
+ -20327225.111 7 -15839382.228 7 20633494.076 20633493.213 20633492.850
+ 45.400 43.100
+ -7236222.709 5 -5638607.477 4 23255977.646 23255975.902 23255977.177
+ 31.300 24.900
+ -9077239.023 5 -7073164.260 5 22741085.401 22741085.272 22741085.149
+ 34.400 30.100
+ 06 1 1 22 35 0.0000000 0 7G02G04G05G06G10G13G30
+ -23767458.117 7 -18520082.364 7 20300650.242 20300646.459 20300649.398
+ 47.700 46.700
+ -9338647.131 6 -7276854.885 5 22686584.710 22686584.280 22686584.607
+ 37.900 31.300
+ -6006801.635 5 -4680614.898 4 23249360.907 23249361.040 23249359.897
+ 31.600 27.900
+ -6860806.366 5 -5346076.872 4 23503150.345 23503150.460 23503149.347
+ 30.200 27.600
+ -20439861.380 7 -15927150.700 7 20612059.805 20612059.022 20612058.766
+ 45.400 43.100
+ -7157006.235 5 -5576880.351 3 23271051.893 23271050.215 23271051.529
+ 31.000 23.400
+ -8999806.861 5 -7012827.527 4 22755820.381 22755820.100 22755820.057
+ 34.300 29.500
+ 06 1 1 22 36 0.0000000 0 7G02G04G05G06G10G13G30
+ -23708437.521 7 -18474092.280 7 20311881.219 20311877.619 20311880.487
+ 47.600 46.700
+ -9178123.865 6 -7151771.830 5 22717132.080 22717130.698 22717131.424
+ 37.700 30.400
+ -5843704.717 5 -4553526.431 4 23280397.442 23280397.255 23280396.353
+ 31.600 28.100
+ -7047323.776 5 -5491415.000 4 23467657.291 23467657.459 23467656.332
+ 31.000 28.400
+ -20550510.601 7 -16013370.832 7 20591004.278 20591003.230 20591003.055
+ 45.500 43.100
+ -7075452.752 5 -5513332.172 3 23286571.239 23286569.122 23286570.920
+ 31.300 23.800
+ -8920235.739 5 -6950824.089 4 22770962.286 22770961.871 22770961.799
+ 33.800 29.500
+ 06 1 1 22 37 0.0000000 0 7G02G04G05G06G10G13G30
+ -23648000.747 7 -18426998.691 7 20323382.141 20323378.309 20323381.252
+ 47.400 46.400
+ -9017057.082 6 -7026265.250 5 22747781.621 22747780.663 22747781.375
+ 37.500 30.600
+ -5679497.172 5 -4425572.541 4 23311644.958 23311645.165 23311643.800
+ 30.400 27.900
+ -7233060.892 5 -5636145.098 4 23432312.751 23432312.589 23432311.862
+ 33.500 29.200
+ -20659165.595 7 -16098037.019 7 20570327.632 20570326.714 20570326.528
+ 45.400 43.300
+ -6991572.775 5 -5447971.128 4 23302532.661 23302531.275 23302532.477
+ 32.000 24.600
+ -8838541.302 5 -6887166.101 4 22786508.236 22786507.755 22786507.954
+ 33.900 29.000
+ 06 1 1 22 38 0.0000000 0 7G02G04G05G06G10G13G30
+ -23586150.812 7 -18378803.929 7 20335151.722 20335148.060 20335150.868
+ 47.400 46.400
+ -8855452.141 6 -6900339.347 4 22778534.032 22778533.293 22778533.545
+ 36.100 29.900
+ -5514203.405 5 -4296772.261 4 23343099.334 23343099.088 23343098.151
+ 30.400 25.300
+ -7417999.967 5 -5780253.345 4 23397118.801 23397119.679 23397118.448
+ 32.400 28.800
+ -20765819.464 7 -16181143.897 7 20550032.178 20550031.159 20550030.949
+ 45.400 43.500
+ -6905378.035 5 -5380806.391 4 23318935.116 23318933.147 23318934.928
+ 31.300 24.900
+ -8754739.940 5 -6821866.350 4 22802455.095 22802454.503 22802454.793
+ 33.100 28.100
+ 06 1 1 22 39 0.0000000 0 7G02G04G05G06G10G13G30
+ -23522890.084 7 -18329509.850 7 20347189.792 20347186.128 20347189.018
+ 47.700 46.200
+ -8693314.396 5 -6773998.271 5 22809387.310 22809387.268 22809387.092
+ 35.600 31.000
+ -5347847.647 5 -4167144.404 3 23374755.665 23374755.417 23374754.657
+ 30.100 22.600
+ -7602123.091 5 -5923725.804 4 23362082.453 23362081.931 23362081.381
+ 31.500 28.800
+ -20870465.366 7 -16262686.123 7 20530118.811 20530117.681 20530117.632
+ 45.500 43.600
+ -6816880.456 5 -5311847.256 4 23335775.761 23335774.570 23335775.267
+ 31.600 25.300
+ -8668848.287 5 -6754937.819 4 22818799.570 22818799.203 22818799.388
+ 33.400 29.500
+ 06 1 1 22 40 0.0000000 0 7G02G04G05G06G10G13G30
+ -23458221.954 7 -18279119.087 7 20359495.750 20359492.022 20359494.956
+ 47.600 46.100
+ -8530649.313 6 -6647246.272 5 22840342.753 22840341.105 22840341.975
+ 36.500 30.600
+ -5180454.301 4 -4036708.030 4 23406609.850 23406609.681 23406608.578
+ 29.000 24.900
+ -7785412.290 5 -6066548.450 4 23327202.999 23327202.817 23327202.364
+ 32.400 28.800
+ -20973097.329 7 -16342659.043 7 20510588.351 20510587.516 20510587.273
+ 45.400 43.900
+ -6726091.773 5 -5241102.823 4 23353052.295 23353050.532 23353052.125
+ 31.100 24.600
+ -8580882.860 5 -6686393.358 4 22835539.316 22835538.799 22835538.995
+ 34.100 29.000
+ 06 1 1 22 41 0.0000000 0 7G02G04G05G06G10G13G30
+ -23392149.353 7 -18227633.939 7 20372068.944 20372065.330 20372068.118
+ 47.600 46.100
+ -8367461.942 5 -6520087.307 5 22871395.486 22871394.998 22871395.086
+ 35.700 30.800
+ -5012047.721 5 -3905482.151 4 23438656.788 23438656.415 23438655.577
+ 30.400 24.900
+ -7967849.623 5 -6208707.307 4 23292486.468 23292486.341 23292485.785
+ 33.200 29.200
+ -21073709.234 7 -16421057.898 7 20491442.668 20491441.637 20491441.370
+ 45.200 43.900
+ -6633024.804 5 -5168583.117 4 23370761.898 23370760.508 23370761.737
+ 30.800 24.600
+ -8490860.994 5 -6616246.469 5 22852669.712 22852669.459 22852669.507
+ 33.900 30.100
+ 06 1 1 22 42 0.0000000 0 7G02G04G05G06G10G13G30
+ -23324674.882 7 -18175056.426 7 20384909.033 20384905.280 20384908.174
+ 47.800 45.900
+ -8203757.713 5 -6392525.595 5 22902547.787 22902546.796 22902547.136
+ 35.500 30.400
+ -4842652.502 5 -3773485.912 4 23470891.874 23470891.374 23470890.627
+ 31.500 26.200
+ -8149416.888 5 -6350188.168 5 23257935.160 23257935.290 23257934.396
+ 33.500 30.100
+ -21172295.100 7 -16497878.025 7 20472682.372 20472681.388 20472681.238
+ 45.500 44.100
+ -6537692.286 5 -5094298.016 3 23388903.719 23388901.475 23388903.323
+ 32.300 23.800
+ -8398800.117 5 -6544510.720 4 22870188.348 22870188.265 22870188.083
+ 32.600 29.500
+ 06 1 1 22 43 0.0000000 0 7G02G04G05G06G10G13G30
+ -23255801.683 7 -18121388.984 7 20398015.151 20398011.323 20398014.395
+ 47.800 45.600
+ -8039541.573 5 -6264564.986 4 22933796.599 22933795.978 22933796.243
+ 35.200 29.200
+ -4672293.007 5 -3640738.287 4 23503310.063 23503309.834 23503308.793
+ 31.800 26.800
+ -8330096.274 5 -6490977.185 4 23223553.431 23223552.752 23223552.317
+ 34.300 29.000
+ -21268849.849 7 -16573115.464 7 20454308.512 20454307.517 20454307.405
+ 45.600 44.200
+ -6440107.280 5 -5018257.769 4 23407473.031 23407472.042 23407472.983
+ 30.600 24.600
+ -8304717.922 5 -6471199.970 4 22888091.430 22888091.425 22888091.154
+ 31.600 29.900
+ 06 1 1 22 44 0.0000000 0 7G02G04G05G06G10G13G30
+ -23185532.462 7 -18066633.735 7 20411386.831 20411383.046 20411386.125
+ 47.800 45.600
+ -7874818.783 5 -6136209.577 4 22965142.524 22965141.422 22965142.142
+ 35.500 29.000
+ -4500993.678 5 -3507258.344 4 23535906.904 23535906.964 23535905.820
+ 30.200 24.200
+ -8509869.611 5 -6631060.209 5 23189343.113 23189343.187 23189342.535
+ 33.200 30.200
+ -21363368.415 7 -16646766.269 7 20436322.334 20436321.256 20436321.151
+ 45.700 44.200
+ -6340283.965 5 -4940473.368 3 23426469.203 23426467.499 23426468.824
+ 30.400 23.400
+ -8208632.600 5 -6396328.314 4 22906375.647 22906375.851 22906375.344
+ 30.800 28.600
+ 06 1 1 22 45 0.0000000 0 7G02G04G05G06G10G13G30
+ -23113870.490 7 -18010793.228 7 20425023.788 20425019.929 20425022.952
+ 47.800 45.500
+ -7709594.364 5 -6007463.311 4 22996583.222 22996582.645 22996582.902
+ 34.900 28.800
+ -4328779.199 4 -3373065.285 3 23568677.719 23568678.338 23568676.837
+ 27.400 23.400
+ -8688718.478 5 -6770422.846 5 23155309.124 23155309.225 23155308.483
+ 33.600 31.300
+ -21455845.661 7 -16718826.428 7 20418724.180 20418723.398 20418723.078
+ 45.400 44.400
+ -6238235.078 5 -4860954.732 3 23445888.551 23445886.720 23445888.374
+ 31.600 23.400
+ -8110562.372 5 -6319909.988 5 22925038.307 22925037.801 22925037.755
+ 32.700 30.100
+ 06 1 1 22 46 0.0000000 0 7G02G04G05G06G10G13G30
+ -23040819.343 7 -17953870.247 7 20438924.995 20438921.049 20438924.128
+ 47.800 45.300
+ -7543873.271 5 -5878330.029 4 23028119.216 23028118.643 23028119.074
+ 35.100 29.500
+ -4155674.059 4 -3238178.222 3 23601619.081 23601619.386 23601618.018
+ 26.200 23.400
+ -8866624.784 5 -6909051.014 5 23121454.766 23121454.589 23121453.975
+ 33.600 31.100
+ -21546277.253 7 -16789292.572 7 20401515.970 20401514.760 20401514.715
+ 45.400 44.400
+ -6133975.134 5 -4779713.199 3 23465728.373 23465726.448 23465728.021
+ 30.800 22.100
+ -8010525.858 5 -6241959.501 4 22944074.598 22944074.134 22944074.209
+ 32.000 29.000
+ 06 1 1 22 47 0.0000000 0 7G02G04G05G06G10G13G30
+ -22966381.327 7 -17895866.592 7 20453090.002 20453086.199 20453089.119
+ 47.700 45.300
+ -7377660.765 5 -5748813.819 4 23059748.829 23059747.756 23059748.361
+ 34.600 28.800
+ -3981702.867 4 -3102616.297 3 23634724.853 23634724.374 23634723.628
+ 28.100 22.100
+ -9043570.012 5 -7046930.293 5 23087783.150 23087782.597 23087782.252
+ 33.800 30.400
+ -21634658.858 7 -16858161.320 7 20384697.164 20384696.251 20384696.092
+ 45.300 44.600
+ -6027519.210 4 -4696760.507 3 23485986.036 23485984.482 23485985.518
+ 28.800 23.800
+ -7908541.823 5 -6162491.426 4 22963481.804 22963481.120 22963481.467
+ 34.300 29.500
+ 06 1 1 22 48 0.0000000 0 7G02G04G05G06G10G13G30
+ -22890560.025 7 -17836785.048 7 20467518.141 20467514.549 20467517.409
+ 47.900 45.200
+ -7210961.506 5 -5618918.317 4 23091470.765 23091470.046 23091469.935
+ 34.600 29.500
+ -3806890.204 4 -2966398.651 3 23667991.066 23667990.248 23667989.782
+ 29.500 21.600
+ -9219536.079 5 -7184046.622 4 23054298.078 23054297.051 23054297.150
+ 35.600 29.900
+ -21720985.684 7 -16925428.951 7 20368269.925 20368268.745 20368268.785
+ 45.600 44.500
+ -5918881.212 4 -4612107.527 3 23506658.967 23506657.731 23506658.880
+ 29.700 23.400
+ -7804629.696 5 -6081520.964 4 22983255.323 22983255.172 22983255.111
+ 32.000 29.700
+ 06 1 1 22 49 0.0000000 0 7G02G04G05G06G10G13G30
+ -22813359.188 7 -17776628.543 7 20482208.842 20482205.192 20482208.170
+ 47.700 44.900
+ -7043780.657 5 -5488647.564 4 23123283.996 23123283.002 23123283.517
+ 33.800 28.100
+ -3631260.624 5 -2829544.432 3 23701412.088 23701411.602 23701410.721
+ 30.200 19.300
+ -9394504.083 5 -7320385.248 5 23021002.484 23021002.141 23021001.651
+ 34.800 31.100
+ -21805255.218 7 -16991093.498 7 20352233.967 20352232.752 20352232.774
+ 45.300 44.600
+ -5808076.757 5 -4525766.356 3 23527745.120 23527742.692 23527744.777
+ 30.400 23.000
+ -7698808.569 5 -5999062.976 4 23003392.520 23003392.615 23003392.244
+ 32.700 29.700
+ 06 1 1 22 50 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22734781.078 7 -17715398.838 7 20497161.788 20497158.171 20497161.064
+ 47.700 44.800
+ -6876122.791 5 -5358005.097 4 23155187.644 23155187.345 23155187.743
+ 34.100 28.800
+ -3454838.875 5 -2692072.951 3 23734983.942 23734983.751 23734982.797
+ 30.600 22.600
+ -9568456.270 5 -7455932.310 5 22987900.458 22987900.092 22987899.719
+ 35.200 31.800
+ -21887463.284 7 -17055151.701 7 20336590.323 20336589.139 20336589.124
+ 45.500 44.800
+ -5695121.159 4 -4437749.019 3 23549239.341 23549237.737 23549238.954
+ 29.500 23.800
+ -306973.123 3 -239199.156 3 24258700.165 24258701.678 24258699.998
+ 19.300 19.900
+ -7591098.118 5 -5915132.756 4 23023889.380 23023889.126 23023888.996
+ 33.000 28.800
+ 06 1 1 22 51 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22654829.581 7 -17653098.967 7 20512376.143 20512372.450 20512375.395
+ 47.700 44.600
+ -6707993.271 5 -5226995.111 4 23187181.511 23187181.978 23187181.522
+ 33.500 29.900
+ -3277649.444 4 -2554003.313 4 23768701.680 23768701.765 23768700.495
+ 27.600 24.600
+ -9741373.815 6 -7590673.162 5 22954995.370 22954994.968 22954994.630
+ 36.500 32.300
+ -21967606.212 7 -17117600.708 7 20321339.665 20321338.384 20321338.395
+ 45.300 44.800
+ -5580029.775 5 -4348067.421 3 23571140.229 23571139.157 23571139.972
+ 30.100 23.000
+ -531460.690 3 -414124.340 3 24215982.299 24215982.735 24215981.493
+ 22.100 19.900
+ -7481518.336 5 -5829745.957 4 23044741.231 23044741.272 23044740.776
+ 30.400 29.500
+ 06 1 1 22 52 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22573507.798 7 -17589731.339 7 20527851.195 20527847.409 20527850.401
+ 47.800 44.500
+ -6539396.597 5 -5095621.103 4 23219265.313 23219264.026 23219264.670
+ 33.400 26.500
+ -3099717.098 4 -2415354.763 3 23802561.684 23802561.334 23802560.168
+ 25.300 23.800
+ -9913238.225 5 -7724593.403 5 22922290.432 22922289.879 22922289.636
+ 35.800 31.500
+ -22045681.666 7 -17178438.696 7 20306482.206 20306481.149 20306481.040
+ 45.500 45.100
+ -5462819.174 4 -4256734.446 3 23593444.396 23593443.305 23593444.180
+ 27.600 23.000
+ -755815.276 3 -588945.861 2 24173288.158 24173289.138 24173287.769
+ 20.500 15.100
+ -7370089.245 5 -5742918.147 4 23065945.896 23065945.442 23065945.632
+ 32.800 27.600
+ 06 1 1 22 53 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22490819.500 7 -17525298.890 7 20543586.270 20543582.467 20543585.447
+ 47.900 44.600
+ -6370337.630 5 -4963886.858 4 23251436.035 23251435.131 23251435.564
+ 33.600 27.900
+ -2921066.279 4 -2276146.432 4 23836557.469 23836557.645 23836556.174
+ 26.200 24.200
+ -10084030.910 6 -7857678.531 5 22889789.628 22889789.093 22889789.002
+ 36.400 32.100
+ -22121686.670 7 -17237663.344 7 20292018.886 20292017.698 20292017.783
+ 45.400 44.900
+ -5343505.050 4 -4163762.393 3 23616149.475 23616147.556 23616149.212
+ 28.600 22.100
+ -980013.667 3 -763645.774 3 24130625.554 24130625.538 24130624.027
+ 21.100 18.600
+ -7256831.400 5 -5654665.273 3 23087497.935 23087497.053 23087497.805
+ 32.600 23.800
+ 06 1 1 22 54 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22406767.719 8 -17459803.988 7 20559581.077 20559577.132 20559580.236
+ 48.200 44.400
+ -6200821.301 5 -4831796.245 4 23283694.283 23283693.247 23283693.456
+ 33.600 27.400
+ -2741721.612 4 -2136397.365 3 23870685.802 23870685.863 23870684.585
+ 29.200 23.000
+ -10253733.414 6 -7989914.173 5 22857496.132 22857495.671 22857495.360
+ 36.400 31.500
+ -22195619.186 7 -17295273.067 7 20277950.047 20277948.879 20277948.888
+ 45.400 45.200
+ -5222103.934 4 -4069164.104 3 23639251.859 23639249.980 23639251.446
+ 29.700 23.400
+ -1204032.624 3 -938205.793 3 24087994.994 24087996.329 24087994.128
+ 19.300 21.600
+ -7141765.386 4 -5565003.415 3 23109394.164 23109393.162 23109393.915
+ 29.900 23.400
+ 06 1 1 22 55 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22321356.585 8 -17393249.852 7 20575834.068 20575830.318 20575833.333
+ 48.100 44.400
+ -6030852.266 5 -4699352.846 4 23316037.675 23316037.025 23316037.419
+ 32.800 27.400
+ -2561707.675 4 -1996126.824 3 23904940.770 23904941.579 23904939.829
+ 26.500 23.800
+ -10422327.166 5 -8121285.844 5 22825413.710 22825413.635 22825412.812
+ 35.700 33.200
+ -22267477.141 7 -17351266.239 7 20264276.105 20264274.767 20264274.935
+ 45.500 45.400
+ -5098633.067 4 -3972953.034 3 23662746.794 23662745.764 23662746.513
+ 27.600 22.600
+ -1427848.656 3 -1112607.703 3 24045404.198 24045404.883 24045403.678
+ 21.600 18.600
+ -7024911.848 4 -5473948.732 4 23131631.073 23131630.178 23131630.491
+ 29.500 27.600
+ 06 1 1 22 56 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22234588.902 7 -17325638.669 7 20592345.382 20592341.573 20592344.496
+ 47.800 44.300
+ -5860435.236 5 -4566560.389 4 23348466.849 23348466.415 23348466.562
+ 31.600 27.400
+ -2381049.011 4 -1855353.908 3 23939319.295 23939319.419 23939318.268
+ 25.300 22.100
+ -10589793.592 6 -8251779.068 5 22793546.217 22793545.691 22793545.395
+ 36.900 33.100
+ -22337258.617 7 -17405641.378 7 20250996.803 20250995.776 20250995.659
+ 45.300 45.400
+ -4973109.015 4 -3875142.061 3 23686633.415 23686632.092 23686633.347
+ 28.100 21.600
+ -1651438.403 3 -1286833.356 2 24002856.585 24002856.762 24002855.932
+ 21.600 17.000
+ -6906291.965 5 -5381517.695 5 23154203.411 23154203.065 23154203.028
+ 32.700 30.400
+ 06 1 1 22 57 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22146468.573 7 -17256973.474 7 20609113.927 20609110.323 20609113.172
+ 47.700 44.300
+ -5689574.937 5 -4433422.531 4 23380980.553 23380980.260 23380980.364
+ 32.300 27.100
+ -2199770.202 4 -1714097.734 3 23973815.665 23973815.614 23973814.620
+ 26.200 19.900
+ -10756113.990 6 -8381379.290 5 22761896.053 22761895.757 22761895.146
+ 36.500 33.200
+ -22404962.067 7 -17458397.272 7 20238113.261 20238112.165 20238112.074
+ 45.400 45.300
+ -4845549.602 4 -3775745.099 3 23710907.208 23710905.528 23710906.987
+ 29.200 22.100
+ -1874778.381 3 -1460864.353 3 23960354.839 23960356.327 23960355.313
+ 19.300 20.500
+ -6785927.058 5 -5287726.885 5 23177108.337 23177108.088 23177108.029
+ 33.800 30.200
+ 06 1 1 22 58 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -22056999.364 7 -17187257.198 7 20626139.511 20626135.718 20626138.640
+ 47.700 43.900
+ -5518275.963 5 -4299942.843 4 23413577.284 23413577.024 23413577.103
+ 30.200 26.500
+ -2017895.725 4 -1572377.392 3 24008425.113 24008425.075 24008424.210
+ 26.500 18.600
+ -10921269.893 6 -8510072.125 5 22730468.163 22730467.457 22730467.048
+ 37.100 33.100
+ -22470586.489 7 -17509533.153 7 20225625.420 20225624.134 20225624.253
+ 45.500 45.400
+ -4715971.819 4 -3674775.387 2 23735565.155 23735563.108 23735564.765
+ 27.900 17.800
+ -2097845.155 3 -1634682.475 3 23917908.751 23917908.084 23917907.727
+ 19.300 20.500
+ -6663838.527 5 -5192592.982 4 23200340.737 23200340.785 23200340.549
+ 32.800 28.600
+ 06 1 1 22 59 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21966184.521 7 -17116492.382 7 20643420.962 20643417.226 20643420.095
+ 47.600 43.800
+ -5346542.843 5 -4166124.857 4 23446257.745 23446257.477 23446257.462
+ 31.600 27.100
+ -1835450.027 4 -1430211.988 3 24043143.429 24043143.443 24043142.442
+ 27.600 18.600
+ -11085242.215 6 -8637842.697 5 22699265.219 22699264.859 22699264.418
+ 37.900 34.400
+ -22534130.625 7 -17559048.036 7 20213533.275 20213532.108 20213532.111
+ 45.300 45.500
+ -4584394.006 5 -3572247.187 3 23760604.272 23760602.153 23760603.731
+ 30.200 23.800
+ -2320614.861 4 -1808269.208 3 23875516.392 23875516.090 23875515.978
+ 25.300 19.900
+ -6540048.074 5 -5096132.910 4 23223897.389 23223897.280 23223897.029
+ 30.600 26.200
+ 06 1 1 23 0 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21874028.071 7 -17044682.154 7 20660957.703 20660953.923 20660956.920
+ 47.700 43.500
+ -5174380.236 5 -4031972.231 4 23479019.873 23479018.385 23479019.096
+ 32.100 24.600
+ -1652457.484 4 -1287620.431 3 24077965.882 24077966.080 24077965.037
+ 26.500 21.100
+ -11248013.054 6 -8764677.049 5 22668290.382 22668290.175 22668289.679
+ 37.400 33.400
+ -22595593.870 7 -17606941.442 7 20201837.207 20201836.036 20201836.056
+ 45.200 45.600
+ -4450833.824 4 -3468174.319 3 23786019.832 23786017.388 23786019.267
+ 29.500 20.500
+ -2543064.068 3 -1981606.193 2 23833185.675 23833185.357 23833184.905
+ 23.400 13.900
+ -6414577.581 4 -4998363.713 3 23247773.514 23247773.579 23247772.870
+ 26.800 22.600
+ 06 1 1 23 1 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21780533.303 7 -16971829.083 7 20678749.168 20678745.455 20678748.336
+ 47.900 43.400
+ -5001792.967 5 -3897488.702 3 23511862.258 23511860.498 23511861.288
+ 32.000 23.800
+ -1468942.822 4 -1144622.050 3 24112887.476 24112888.066 24112886.423
+ 25.600 21.600
+ -11409563.105 6 -8890560.152 5 22637548.786 22637547.950 22637547.981
+ 37.600 32.100
+ -22654975.738 7 -17653212.996 7 20190537.284 20190535.951 20190536.009
+ 44.900 45.600
+ -4315309.885 4 -3362571.213 3 23811808.488 23811806.792 23811808.307
+ 28.100 20.500
+ -2765168.956 3 -2154674.867 2 23790919.104 23790920.217 23790919.722
+ 21.100 16.100
+ -6287449.193 3 -4899302.650 3 23271965.264 23271965.407 23271964.885
+ 22.100 18.600
+ 06 1 1 23 2 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21685704.621 7 -16897936.601 7 20696794.484 20696790.812 20696793.708
+ 47.900 43.500
+ -4828785.264 5 -3762677.549 4 23544784.485 23544782.827 23544783.559
+ 31.300 24.200
+ -1284930.210 4 -1001235.671 3 24147904.457 24147904.077 24147903.157
+ 27.100 21.100
+ -11569874.256 6 -9015477.879 5 22607042.247 22607041.928 22607041.495
+ 37.600 33.500
+ -22712276.184 7 -17697862.665 7 20179633.244 20179631.937 20179632.120
+ 45.200 45.600
+ -4177840.512 4 -3255452.229 3 23837968.005 23837966.906 23837967.616
+ 28.100 20.500
+ -2986905.560 3 -2327456.515 4 23748724.920 23748725.910 23748724.564
+ 19.900 24.600
+ -6158685.131 3 -4798967.045 1 23296468.505 23296467.993 23296468.131
+ 18.600 9.000
+ 06 1 1 23 3 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21589545.516 8 -16823007.422 7 20715092.950 20715089.337 20715092.208
+ 48.000 43.600
+ -4655361.757 5 -3627542.413 4 23577785.439 23577785.062 23577784.907
+ 31.800 26.200
+ -1100443.954 4 -857480.192 2 24183010.645 24183010.642 24183009.370
+ 24.200 17.800
+ -11728927.544 6 -9139415.435 5 22576775.605 22576775.243 22576774.899
+ 39.000 34.500
+ -22767495.967 7 -17740891.040 7 20169125.115 20169123.978 20169124.037
+ 45.100 45.700
+ -4038444.416 4 -3146831.893 2 23864493.987 23864492.393 23864493.680
+ 26.800 16.100
+ -3208250.323 3 -2499932.796 3 23706602.624 23706604.968 23706603.456
+ 18.600 23.400
+ -6028307.792 2 -4697374.298 23321278.076 23321278.137 23321278.034
+ 13.900 3.000
+ 06 1 1 23 4 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21492060.278 8 -16747044.891 7 20733643.827 20733640.085 20733643.080
+ 48.000 43.600
+ -4481526.785 5 -3492086.629 4 23610864.251 23610864.397 23610864.302
+ 30.600 25.300
+ -915508.451 4 -713374.627 3 24218202.860 24218202.879 24218201.911
+ 25.300 19.900
+ -11886704.461 6 -9262358.423 5 22546751.956 22546750.785 22546751.148
+ 38.900 33.500
+ -22820634.859 7 -17782297.932 7 20159013.221 20159011.888 20159012.062
+ 45.000 45.800
+ -3897140.431 4 -3036724.882 3 23891384.320 23891382.459 23891383.705
+ 28.400 23.400
+ -3429179.360 3 -2672085.203 3 23664564.329 23664563.046 23664562.736
+ 21.600 21.100
+ -5896339.766 2 -4594542.083 23346391.780 23346391.385 23346390.211
+ 12.600 3.000
+ 06 1 1 23 5 0.0000000 0 8G02G04G05G06G10G13G29G30
+ -21393252.449 7 -16670051.779 7 20752446.532 20752442.667 20752445.628
+ 47.800 43.400
+ -4307285.390 5 -3356314.164 4 23644021.139 23644021.332 23644021.242
+ 30.200 24.900
+ -730147.842 4 -568937.851 2 24253475.082 24253475.807 24253474.557
+ 25.300 15.100
+ -12043186.307 6 -9384292.269 5 22516974.197 22516973.250 22516973.355
+ 39.200 34.100
+ -22871693.765 7 -17822084.064 7 20149296.838 20149295.607 20149295.669
+ 44.800 45.800
+ -3753948.053 4 -2925146.386 3 23918632.846 23918631.130 23918632.224
+ 26.800 23.000
+ -3649668.847 4 -2843895.076 3 23622604.892 23622605.783 23622604.974
+ 25.600 22.600
+ -5762803.646 1 -4490488.034 1 23371802.443 23371802.807 23371802.760
+ 9.000 6.500
+ 06 1 1 23 6 0.0000000 0 7G02G04G05G06G10G13G29
+ -21293125.784 7 -16592031.002 7 20771499.781 20771496.140 20771498.982
+ 47.800 43.300
+ -4132641.485 4 -3220228.055 4 23677255.950 23677255.460 23677255.270
+ 29.900 25.300
+ -544386.412 4 -424188.782 2 24288825.020 24288824.586 24288824.009
+ 24.900 17.000
+ -12198354.454 6 -9505202.443 5 22487446.558 22487445.728 22487445.642
+ 38.600 34.100
+ -22920673.426 7 -17860250.008 7 20139976.431 20139975.207 20139975.230
+ 44.600 46.000
+ -3608886.218 4 -2812111.244 3 23946236.242 23946235.004 23946235.901
+ 25.300 19.900
+ -3869694.492 4 -3015343.546 3 23580737.225 23580735.053 23580735.560
+ 24.600 18.600
+ 06 1 1 23 7 0.0000000 0 7G02G04G05G06G10G13G29
+ -21191684.501 7 -16512985.848 7 20790803.356 20790799.674 20790802.612
+ 47.800 43.000
+ -3957599.792 5 -3083831.997 3 23710565.482 23710564.112 23710564.902
+ 30.400 23.000
+ -358248.227 4 -279146.085 3 24324246.460 24324246.203 24324245.461
+ 27.600 20.500
+ -12352190.369 6 -9625074.496 5 22458172.791 22458171.610 22458171.978
+ 39.300 34.300
+ -22967575.370 7 -17896796.951 7 20131051.352 20131049.991 20131050.173
+ 44.800 46.000
+ -3461974.807 4 -2697634.788 3 23974193.066 23974191.532 23974192.500
+ 25.300 20.500
+ -4089232.816 3 -3186412.331 2 23538956.753 23538958.820 23538958.143
+ 23.000 17.800
+ 06 1 1 23 8 0.0000000 0 7G02G04G05G06G10G13G29
+ -21088932.796 7 -16432919.578 7 20810356.558 20810352.694 20810355.627
+ 47.500 43.100
+ -3782164.612 4 -2947129.336 4 23743949.469 23743949.063 23743949.008
+ 29.200 24.600
+ -171757.337 3 -133828.593 3 24359733.967 24359734.621 24359733.097
+ 23.800 19.900
+ -12504675.845 6 -9743894.277 5 22429154.947 22429154.537 22429154.536
+ 39.300 34.100
+ -23012400.941 7 -17931725.939 7 20122521.092 20122520.005 20122519.965
+ 44.600 46.000
+ -3313233.542 4 -2581732.535 3 24002497.858 24002495.743 24002497.353
+ 28.400 19.900
+ -4308259.552 4 -3357082.389 3 23497280.750 23497279.202 23497279.336
+ 24.600 23.000
+ 06 1 1 23 9 0.0000000 0 7G02G04G05G06G10G13G29
+ -20984874.713 7 -16351835.361 7 20830157.852 20830154.304 20830157.084
+ 47.500 42.900
+ -3606340.488 4 -2810123.538 3 23777407.456 23777406.950 23777407.259
+ 29.700 23.400
+ 15062.158 4 11744.918 2 24395284.901 24395284.884 24395283.685
+ 25.300 16.100
+ -12655792.163 6 -9861647.177 5 22400399.028 22400398.116 22400398.358
+ 40.200 35.300
+ -23055152.164 7 -17965038.551 7 20114386.014 20114384.685 20114384.823
+ 44.900 46.300
+ -3162682.620 4 -2464420.051 2 24031145.548 24031144.024 24031145.538
+ 25.300 17.800
+ -4526750.815 3 -3527335.244 4 23455700.407 23455702.000 23455700.981
+ 23.400 24.600
+ 06 1 1 23 10 0.0000000 0 7G02G04G05G06G10G13G29
+ -20879514.143 7 -16269736.220 7 20850207.192 20850203.752 20850206.515
+ 47.400 42.600
+ -3430131.710 4 -2672818.053 3 23810939.516 23810938.218 23810938.671
+ 28.600 23.400
+ 202186.349 4 157555.939 2 24430893.599 24430893.633 24430892.066
+ 24.600 17.800
+ -12805520.895 6 -9978318.844 5 22371906.415 22371905.736 22371905.684
+ 40.500 35.500
+ -23095831.101 7 -17996736.395 7 20106644.990 20106643.692 20106643.915
+ 45.200 46.200
+ -3010341.655 4 -2345712.812 3 24060135.087 24060134.293 24060134.907
+ 27.100 19.300
+ -4744682.712 4 -3697152.160 4 23414232.042 23414230.771 23414230.601
+ 25.900 24.900
+ 06 1 1 23 11 0.0000000 0 7G02G04G05G06G10G13G29
+ -20772856.077 7 -16186626.044 7 20870503.653 20870500.037 20870502.854
+ 47.300 42.500
+ -3253542.992 4 -2535216.492 4 23844543.305 23844542.370 23844542.600
+ 28.400 24.900
+ 389591.359 4 303585.720 2 24466555.016 24466555.635 24466553.963
+ 26.500 15.100
+ -12953843.674 6 -10093894.958 5 22343681.339 22343680.831 22343680.545
+ 39.800 35.700
+ -23134440.062 7 -18026821.274 7 20099298.081 20099296.662 20099296.933
+ 45.100 46.300
+ -2856231.047 4 -2225626.593 3 24089461.808 24089460.601 24089461.754
+ 27.400 19.300
+ -4962031.040 4 -3866514.373 4 23372868.998 23372870.624 23372869.696
+ 26.200 25.300
+ 06 1 1 23 12 0.0000000 0 7G02G04G05G06G10G13G29
+ -20664904.046 7 -16102507.581 7 20891046.259 20891042.602 20891045.574
+ 47.600 42.000
+ -3076578.246 4 -2397321.904 3 23878217.240 23878217.354 23878217.607
+ 29.200 23.000
+ 577253.197 4 449815.656 2 24502266.157 24502266.630 24502265.115
+ 24.600 17.000
+ -13100742.097 6 -10208361.206 5 22315727.487 22315726.426 22315726.683
+ 40.000 34.500
+ -23170981.485 7 -18055295.077 7 20092344.268 20092343.066 20092343.082
+ 44.900 46.400
+ -2700371.829 4 -2104177.863 2 24119120.898 24119119.623 24119120.466
+ 24.200 17.800
+ -5178771.544 4 -4035402.988 3 23331626.504 23331626.034 23331625.515
+ 24.200 23.000
+ 06 1 1 23 13 0.0000000 0 7G02G04G05G06G10G13G29
+ -20555662.341 7 -16017384.173 6 20911834.303 20911830.487 20911833.573
+ 47.500 41.800
+ -2899242.168 4 -2259137.994 3 23911965.660 23911963.414 23911964.508
+ 28.600 21.600
+ 765148.389 3 596227.440 2 24538022.040 24538021.764 24538020.862
+ 22.100 17.000
+ -13246197.957 6 -10321703.359 5 22288047.930 22288047.454 22288047.214
+ 40.700 35.600
+ -23205458.246 7 -18082160.059 7 20085783.653 20085782.241 20085782.469
+ 44.800 46.200
+ -2542783.891 4 -1981382.097 3 24149108.457 24149107.944 24149108.347
+ 25.600 21.600
+ -5394880.454 4 -4203799.458 3 23290502.895 23290501.633 23290501.538
+ 27.400 22.100
+ 06 1 1 23 14 0.0000000 0 7G02G04G05G06G10G13G29
+ -20445135.654 7 -15931259.492 7 20932866.868 20932863.369 20932866.114
+ 47.500 42.200
+ -2721538.796 4 -2120667.914 3 23945779.174 23945779.629 23945779.216
+ 27.400 22.600
+ 953253.058 3 742802.433 2 24573817.504 24573817.064 24573816.118
+ 23.000 15.100
+ -13390192.713 6 -10433907.009 5 22260646.692 22260645.815 22260645.813
+ 40.500 35.100
+ -23237873.427 7 -18107418.612 7 20079615.061 20079613.740 20079613.908
+ 44.700 46.200
+ -2383488.595 3 -1857255.838 2 24179421.635 24179419.881 24179421.256
+ 22.100 16.100
+ -5610333.599 4 -4371684.989 4 23249500.755 23249502.716 23249501.640
+ 25.600 25.300
+ 06 1 1 23 15 0.0000000 0 7G02G04G05G06G10G13G29
+ -20333328.152 7 -15844136.763 7 20954143.168 20954139.461 20954142.426
+ 47.400 42.100
+ -2543472.885 4 -1981915.271 3 23979663.372 23979664.069 23979664.276
+ 28.800 19.300
+ 1141543.650 3 889522.272 2 24609647.250 24609647.769 24609646.089
+ 19.900 17.800
+ -13532708.478 6 -10544958.186 5 22233526.828 22233525.845 22233525.984
+ 40.500 35.200
+ -23268230.601 7 -18131073.529 7 20073838.301 20073837.060 20073837.129
+ 44.900 46.400
+ -2222506.052 4 -1731814.867 2 24210055.362 24210054.209 24210055.361
+ 25.600 17.000
+ -5825106.787 3 -4539040.638 4 23208633.737 23208632.073 23208631.941
+ 23.800 24.200
+ 06 1 1 23 16 0.0000000 0 7G02G04G05G06G10G13G29
+ -20220244.156 7 -15756019.370 6 20975662.251 20975658.595 20975661.541
+ 47.400 41.700
+ -2365048.559 4 -1842883.350 3 24013616.913 24013616.742 24013617.358
+ 28.100 19.900
+ 1329996.803 2 1036368.783 2 24645508.210 24645509.171 24645507.386
+ 17.800 15.100
+ -13673727.099 6 -10654842.769 5 22206691.924 22206691.048 22206691.246
+ 41.300 35.900
+ -23296533.350 7 -18153127.592 7 20068452.504 20068451.118 20068451.346
+ 44.800 46.400
+ -2059857.830 3 -1605076.006 2 24241006.076 24241004.612 24241006.041
+ 22.600 17.000
+ -6039176.098 4 -4705847.811 4 23167896.940 23167896.539 23167895.734
+ 28.400 26.500
+ 06 1 1 23 17 0.0000000 0 8G02G04G05G06G10G13G26G29
+ -20105887.952 7 -15666910.636 6 20997423.513 20997420.026 20997422.772
+ 47.400 41.900
+ -2186270.010 4 -1703575.402 3 24047637.074 24047638.389 24047637.686
+ 27.400 23.400
+ 1518588.909 3 1183323.608 3 24681396.617 24681397.553 24681395.300
+ 18.600 18.600
+ -13813230.302 6 -10763546.486 6 22180145.378 22180144.461 22180144.525
+ 41.200 36.500
+ -23322785.358 7 -18173583.676 7 20063456.883 20063455.532 20063455.713
+ 44.900 46.200
+ -1895565.413 4 -1477055.887 1 24272270.188 24272268.309 24272269.916
+ 24.900 9.000
+ -219126.451 3 -170747.649 2 24440579.245 24440580.278 24440578.751
+ 23.000 17.000
+ -6252517.365 4 -4872087.723 4 23127298.462 23127298.624 23127298.470
+ 27.100 24.900
+ 06 1 1 23 18 0.0000000 0 7G02G04G06G10G13G26G29
+ -19990264.856 7 -15576814.717 6 21019425.972 21019422.238 21019425.245
+ 47.200 41.500
+ -2007141.600 4 -1563994.837 3 24081724.975 24081725.168 24081724.746
+ 27.100 21.600
+ -13951200.302 6 -10871055.518 6 22153890.467 22153889.328 22153889.611
+ 41.200 36.400
+ -23346990.664 7 -18192444.935 7 20058850.976 20058849.342 20058849.788
+ 45.000 46.200
+ -1729649.629 4 -1347770.858 2 24303843.876 24303841.500 24303843.454
+ 24.200 15.100
+ -471934.563 3 -367740.841 2 24392471.686 24392472.404 24392470.649
+ 21.100 17.800
+ -6465106.409 4 -5037741.446 4 23086844.477 23086844.534 23086843.785
+ 26.800 27.100
+ 06 1 1 23 19 0.0000000 0 7G02G04G06G10G13G26G29
+ -19873378.654 7 -15485734.563 6 21041668.899 21041664.891 21041668.030
+ 47.200 41.300
+ -1827667.800 4 -1424145.194 3 24115878.706 24115877.188 24115877.868
+ 29.000 20.500
+ -14087618.859 7 -10977355.620 6 22127930.793 22127929.925 22127930.063
+ 42.000 37.100
+ -23369154.141 7 -18209715.148 7 20054633.243 20054631.774 20054632.090
+ 45.100 46.300
+ -1562132.050 4 -1217237.703 2 24335721.325 24335719.216 24335720.998
+ 25.900 15.100
+ -724687.684 3 -564691.131 3 24344372.547 24344374.955 24344372.383
+ 21.600 18.600
+ -6676919.280 4 -5202790.361 4 23046539.135 23046537.412 23046537.511
+ 27.100 24.200
+ 06 1 1 23 20 0.0000000 0 7G02G04G06G10G13G26G29
+ -19755234.420 7 -15393674.122 6 21064150.706 21064147.055 21064149.916
+ 47.000 41.300
+ -1647852.652 4 -1284029.549 3 24150095.783 24150095.638 24150095.318
+ 26.800 23.000
+ -14222468.659 6 -11082433.332 6 22102269.546 22102268.853 22102268.796
+ 41.500 37.000
+ -23389280.142 7 -18225397.725 7 20050803.263 20050801.814 20050802.127
+ 44.900 46.200
+ -1393034.676 4 -1085473.489 2 24367899.426 24367896.891 24367899.210
+ 25.600 17.800
+ -977361.109 4 -761579.368 2 24296290.748 24296292.944 24296291.298
+ 25.300 17.000
+ -6887931.781 4 -5367215.619 4 23006383.432 23006383.139 23006382.584
+ 27.600 26.200
+ 06 1 1 23 21 0.0000000 0 7G02G04G06G10G13G26G29
+ -19635836.845 7 -15300637.056 6 21086871.494 21086867.646 21086870.739
+ 47.000 41.300
+ -1467700.816 4 -1143651.587 3 24184377.515 24184377.615 24184377.160
+ 25.300 22.600
+ -14355731.868 6 -11186274.738 5 22076910.528 22076909.269 22076909.717
+ 41.600 35.800
+ -23407373.649 7 -18239496.540 7 20047360.396 20047358.736 20047359.196
+ 45.100 46.300
+ -1222378.767 4 -952494.869 3 24400373.709 24400371.964 24400373.721
+ 25.300 19.300
+ -1229930.096 4 -958386.272 3 24248228.880 24248230.074 24248228.327
+ 24.200 22.100
+ -7098120.013 4 -5530998.579 4 22966385.081 22966385.662 22966385.175
+ 29.200 26.500
+ 06 1 1 23 22 0.0000000 0 7G02G04G06G10G13G26G29
+ -19515190.258 7 -15206626.731 6 21109829.595 21109825.966 21109828.823
+ 46.800 41.100
+ -1287216.260 4 -1003014.294 3 24218723.272 24218721.667 24218722.537
+ 27.100 21.100
+ -14487390.538 7 -11288865.860 6 22051856.460 22051855.928 22051855.839
+ 42.000 37.200
+ -23423439.557 7 -18252015.405 7 20044302.933 20044301.490 20044301.776
+ 45.100 46.300
+ -1050186.309 4 -818318.901 2 24433140.504 24433139.364 24433140.753
+ 24.200 17.800
+ -1482369.848 4 -1155092.354 3 24200191.972 24200192.225 24200191.360
+ 24.200 20.500
+ -7307459.856 5 -5694120.413 4 22926550.320 22926549.667 22926549.450
+ 31.000 28.400
+ 06 1 1 23 23 0.0000000 0 7G02G04G06G10G13G26G29
+ -19393299.788 7 -15111647.149 6 21133024.406 21133020.857 21133023.735
+ 46.600 41.100
+ -1106403.491 4 -862121.311 3 24253129.126 24253130.147 24253129.437
+ 25.300 19.300
+ -14617427.285 7 -11390193.155 6 22027111.270 22027110.280 22027110.536
+ 42.000 36.800
+ -23437483.932 7 -18262959.046 7 20041630.315 20041629.002 20041629.197
+ 45.100 46.400
+ -876478.697 4 -682962.365 2 24466196.407 24466193.960 24466195.824
+ 24.600 15.100
+ -1734655.345 3 -1351678.331 2 24152181.562 24152183.232 24152181.869
+ 20.500 17.000
+ -7515927.499 4 -5856562.585 4 22886880.147 22886879.207 22886878.943
+ 28.600 26.500
+ 06 1 1 23 24 0.0000000 0 7G02G04G06G10G13G26G29
+ -19270170.248 7 -15015702.057 6 21156455.460 21156451.931 21156454.655
+ 46.800 41.200
+ -925266.566 4 -720975.665 3 24287599.557 24287598.918 24287598.912
+ 24.200 18.600
+ -14745824.786 7 -11490243.120 6 22002678.166 22002677.172 22002677.270
+ 42.000 36.900
+ -23449511.566 7 -18272331.202 7 20039341.642 20039340.167 20039340.481
+ 45.100 46.500
+ -701278.512 4 -546442.735 1 24499536.184 24499533.576 24499536.032
+ 25.900 9.000
+ -1986761.552 4 -1548124.645 2 24104208.302 24104208.670 24104208.026
+ 24.900 15.100
+ -7723498.529 5 -6018306.133 4 22847380.610 22847379.631 22847379.570
+ 30.100 27.600
+ 06 1 1 23 25 0.0000000 0 7G02G04G06G10G13G26G29
+ -19145806.237 7 -14918795.035 6 21180121.590 21180117.423 21180120.627
+ 46.900 41.000
+ -743809.888 4 -579580.869 2 24322130.477 24322128.978 24322129.834
+ 26.200 16.100
+ -14872565.547 7 -11589002.123 6 21978560.128 21978558.970 21978559.428
+ 42.600 36.900
+ -23459528.506 7 -18280136.586 7 20037435.366 20037433.891 20037434.180
+ 45.100 46.400
+ -524607.816 3 -408777.195 2 24533154.687 24533153.740 24533154.369
+ 23.000 15.100
+ -2238663.273 3 -1744411.595 3 24056273.090 24056273.926 24056272.470
+ 23.800 19.300
+ -7930149.353 4 -6179332.624 4 22808055.310 22808055.037 22808054.846
+ 29.200 27.600
+ 06 1 1 23 26 0.0000000 0 7G02G04G06G10G13G26G29
+ -19020212.637 7 -14820929.895 6 21204020.803 21204017.254 21204020.100
+ 46.700 41.100
+ -562037.646 4 -437940.180 3 24356719.488 24356718.956 24356718.875
+ 25.900 19.300
+ -14997632.450 7 -11686456.823 6 21954760.491 21954759.824 21954759.799
+ 42.500 37.700
+ -23467540.714 7 -18286379.838 7 20035910.830 20035909.143 20035909.646
+ 45.300 46.400
+ -346488.533 3 -269982.933 1 24567050.657 24567049.344 24567050.365
+ 22.100 6.500
+ -2490335.195 4 -1940519.485 3 24008380.844 24008382.258 24008381.107
+ 24.900 21.100
+ -8135855.907 5 -6339623.325 4 22768910.956 22768910.334 22768910.178
+ 30.600 27.600
+ 06 1 1 23 27 0.0000000 0 7G02G04G06G10G13G26G29
+ -18893394.722 7 -14722110.739 6 21228153.177 21228149.796 21228152.537
+ 46.400 40.700
+ -379954.403 4 -296057.199 3 24391368.407 24391369.118 24391368.317
+ 24.900 18.600
+ -15121008.553 7 -11782594.007 6 21931283.087 21931281.932 21931282.264
+ 42.600 37.400
+ -23473554.554 7 -18291065.923 7 20034766.220 20034764.730 20034765.114
+ 45.300 46.300
+ -166943.109 3 -130077.411 2 24601216.201 24601214.602 24601216.148
+ 23.800 16.100
+ -2741751.966 3 -2136428.593 4 23960537.775 23960539.651 23960537.327
+ 21.600 24.200
+ -8340594.378 4 -6499159.658 4 22729948.538 22729950.060 22729949.210
+ 29.700 29.200
+ 06 1 1 23 28 0.0000000 0 7G02G04G06G10G13G26G29
+ -18765357.332 7 -14622341.346 6 21252518.084 21252514.518 21252517.200
+ 46.000 40.900
+ -197563.974 4 -153934.808 1 24426076.946 24426076.181 24426076.439
+ 24.900 11.000
+ -15242676.690 7 -11877400.316 6 21908129.948 21908129.335 21908129.329
+ 42.700 37.800
+ -23477576.303 7 -18294199.727 7 20034001.101 20033999.468 20033999.966
+ 45.400 46.300
+ 14006.222 3 10922.054 2 24635650.177 24635647.772 24635649.562
+ 18.600 13.900
+ -2992888.123 3 -2332119.069 3 23912748.497 23912749.077 23912747.870
+ 23.800 21.100
+ -8544341.219 5 -6657923.314 4 22691177.726 22691178.152 22691177.503
+ 30.200 28.100
+ 06 1 1 23 29 0.0000000 0 6G02G04G06G10G26G29
+ -18636105.709 7 -14521625.794 6 21277113.798 21277110.135 21277113.092
+ 46.100 40.500
+ -14871.307 4 -11576.977 2 24460842.317 24460841.666 24460841.908
+ 25.300 17.000
+ -15362620.153 7 -11970862.713 6 21885305.635 21885304.854 21885304.818
+ 42.500 37.800
+ -23479612.614 7 -18295786.430 7 20033613.348 20033611.884 20033612.215
+ 45.300 46.400
+ -3243718.108 4 -2527570.972 3 23865017.711 23865017.578 23865017.178
+ 25.900 21.100
+ -8747072.311 5 -6815895.476 4 22652599.938 22652599.662 22652599.331
+ 31.800 29.200
+ 06 1 1 23 30 0.0000000 0 6G02G04G06G10G26G29
+ -18505644.787 7 -14419967.931 6 21301939.617 21301936.059 21301938.992
+ 46.200 40.200
+ 168119.755 3 131013.426 3 24495664.983 24495664.150 24495664.229
+ 23.800 20.500
+ -15480822.216 7 -12062968.173 6 21862812.658 21862811.708 21862811.888
+ 43.100 38.200
+ -23479670.564 7 -18295831.553 7 20033602.511 20033600.898 20033601.368
+ 45.500 46.400
+ -3494216.037 4 -2722764.124 3 23817349.132 23817350.044 23817348.638
+ 25.300 22.600
+ -8948764.137 5 -6973057.835 4 22614219.228 22614218.556 22614218.271
+ 30.800 28.800
+ 06 1 1 23 31 0.0000000 0 6G02G04G06G10G26G29
+ -18373979.888 7 -14317371.901 6 21326994.934 21326991.139 21326993.951
+ 46.000 40.300
+ 351404.946 3 273832.972 2 24530540.817 24530542.049 24530541.228
+ 21.100 15.100
+ -15597265.762 7 -12153703.356 6 21840653.921 21840653.118 21840653.270
+ 43.000 38.200
+ -23477757.582 7 -18294340.896 7 20033966.438 20033964.875 20033965.297
+ 45.400 46.400
+ -3744356.341 4 -2917678.576 3 23769749.233 23769749.388 23769748.820
+ 25.300 20.500
+ -9149392.735 5 -7129391.705 5 22576040.792 22576040.503 22576040.144
+ 31.600 30.100
+ 06 1 1 23 32 0.0000000 0 6G02G04G06G10G26G29
+ -18241115.979 7 -14213841.578 6 21352277.741 21352274.316 21352277.112
+ 46.100 40.200
+ 534979.996 3 416878.383 2 24565476.029 24565475.172 24565475.269
+ 23.400 17.800
+ -15711935.067 7 -12243056.016 6 21818833.116 21818832.297 21818832.303
+ 43.000 38.300
+ -23473880.932 7 -18291320.108 7 20034704.071 20034702.532 20034702.866
+ 45.400 46.400
+ -3994112.985 4 -3112294.091 4 23722222.061 23722222.725 23722221.134
+ 25.300 24.200
+ -9348934.585 5 -7284878.780 4 22538069.240 22538068.464 22538068.436
+ 31.800 29.900
+ 06 1 1 23 33 0.0000000 0 6G02G04G06G10G26G29
+ -18107058.620 7 -14109381.308 6 21377788.326 21377784.632 21377787.540
+ 46.200 39.800
+ 718840.507 4 560146.276 2 24600463.072 24600462.493 24600462.943
+ 24.600 16.100
+ -15824813.665 7 -12331013.316 6 21797353.340 21797351.955 21797352.519
+ 43.500 38.000
+ -23468047.814 7 -18286774.791 7 20035814.221 20035812.472 20035813.048
+ 45.700 46.400
+ -4243459.900 4 -3306590.305 4 23674771.887 23674773.342 23674771.998
+ 24.900 24.600
+ -9547366.600 5 -7439501.034 5 22500308.803 22500308.080 22500308.270
+ 32.400 30.400
+ 06 1 1 23 34 0.0000000 0 6G02G04G06G10G26G29
+ -17971813.257 7 -14003995.310 6 21403524.986 21403520.710 21403524.012
+ 45.800 39.500
+ 902982.292 3 703633.320 2 24635504.738 24635504.212 24635503.977
+ 22.600 15.100
+ -15935885.257 7 -12417562.561 6 21776216.897 21776215.799 21776216.138
+ 43.600 38.200
+ -23460266.589 7 -18280711.476 7 20037295.098 20037293.144 20037293.904
+ 45.800 46.400
+ -4492371.175 4 -3500547.073 3 23627406.979 23627406.444 23627406.154
+ 26.200 20.500
+ -9744664.769 5 -7593239.779 4 22462763.982 22462763.527 22462763.418
+ 31.600 29.900
+ 06 1 1 23 35 0.0000000 0 6G02G04G06G10G26G29
+ -17835384.808 7 -13897687.441 6 21429486.028 21429482.311 21429485.255
+ 45.700 39.400
+ 1087400.828 4 847336.023 3 24670597.481 24670597.768 24670597.294
+ 24.600 19.300
+ -16045134.283 7 -12502691.621 6 21755427.547 21755426.303 21755426.734
+ 43.900 38.200
+ -23450545.041 7 -18273136.224 7 20039144.831 20039143.212 20039143.682
+ 45.600 46.500
+ -4740820.868 4 -3694144.176 3 23580127.487 23580127.942 23580127.369
+ 27.600 21.100
+ -9940805.891 5 -7746076.926 5 22425438.785 22425438.761 22425438.672
+ 32.600 30.200
+ 06 1 1 23 36 0.0000000 0 6G02G04G06G10G26G29
+ -17697779.083 7 -13790462.207 6 21455671.648 21455667.713 21455670.772
+ 45.400 39.600
+ 1272091.826 3 991251.006 2 24705742.569 24705743.319 24705742.501
+ 20.500 17.800
+ -16152544.653 7 -12586387.973 6 21734988.203 21734986.748 21734987.271
+ 43.900 38.200
+ -23438891.278 7 -18264055.349 7 20041362.372 20041360.802 20041361.190
+ 45.600 46.400
+ -4988782.752 4 -3887361.201 3 23532942.184 23532942.581 23532941.842
+ 28.800 20.500
+ -10135766.574 5 -7897994.226 5 22388338.224 22388338.886 22388338.970
+ 33.600 30.400
+ 06 1 1 23 37 0.0000000 0 6G02G04G06G10G26G29
+ -17559001.171 7 -13682323.595 6 21482080.015 21482076.477 21482079.296
+ 45.200 39.500
+ 1457050.898 3 1135374.923 1 24740939.563 24740938.940 24740939.447
+ 23.400 9.000
+ -16258101.007 7 -12668639.627 6 21714901.244 21714899.926 21714900.469
+ 44.200 38.500
+ -23425313.118 7 -18253474.943 7 20043946.060 20043944.629 20043944.956
+ 45.700 46.600
+ -5236230.647 4 -4080177.673 3 23485854.314 23485854.899 23485853.482
+ 24.200 23.000
+ -10329523.933 5 -8048973.872 5 22351467.286 22351467.946 22351467.936
+ 33.400 31.000
+ 06 1 1 23 38 0.0000000 0 6G02G04G06G10G26G29
+ -17419056.576 7 -13573275.868 6 21508710.576 21508706.942 21508709.762
+ 45.000 39.300
+ 1642273.993 4 1279704.599 2 24776186.763 24776186.382 24776186.381
+ 24.200 15.100
+ -16361787.722 7 -12749434.419 6 21695170.210 21695169.098 21695169.401
+ 44.100 39.100
+ -23409819.820 7 -18241402.217 7 20046894.593 20046892.895 20046893.366
+ 45.800 46.500
+ -5483137.963 4 -4272572.937 4 23438869.967 23438870.166 23438869.146
+ 28.100 24.900
+ -10522054.422 5 -8198997.531 5 22314831.177 22314830.705 22314830.605
+ 33.400 31.100
+ 06 1 1 23 39 0.0000000 0 6G02G04G06G10G26G29
+ -17277951.697 7 -13463324.045 6 21535561.887 21535558.550 21535561.221
+ 45.000 39.500
+ 1827756.528 3 1424236.391 2 24811482.744 24811483.156 24811483.024
+ 23.800 17.000
+ -16463589.695 7 -12828760.584 6 21675797.954 21675796.862 21675797.126
+ 44.200 38.800
+ -23392420.075 7 -18227843.951 7 20050205.468 20050203.895 20050204.356
+ 45.900 46.600
+ -5729478.412 4 -4464526.414 4 23391992.859 23391992.931 23391992.037
+ 26.800 25.600
+ -10713335.175 5 -8348047.348 5 22278431.770 22278431.029 22278431.087
+ 33.500 31.800
+ 06 1 1 23 40 0.0000000 0 6G02G04G06G10G26G29
+ -17135691.359 7 -13352471.847 6 21562633.570 21562629.812 21562632.715
+ 45.200 39.300
+ 2013494.083 4 1568966.947 2 24846829.707 24846827.463 24846827.908
+ 25.600 17.800
+ -16563491.818 7 -12906606.347 6 21656787.041 21656785.963 21656786.328
+ 44.100 39.200
+ -23373122.403 7 -18212806.778 7 20053877.735 20053876.112 20053876.598
+ 46.000 46.600
+ -5975225.484 4 -4656017.538 4 23345230.118 23345228.449 23345228.587
+ 28.800 24.600
+ -10903343.152 5 -8496105.394 5 22242275.122 22242273.369 22242273.845
+ 33.600 31.100
+ 06 1 1 23 41 0.0000000 0 6G02G06G10G21G26G29
+ -16992281.519 7 -13240723.935 6 21589923.448 21589919.750 21589922.565
+ 44.800 39.000
+ -16661479.468 7 -12982960.307 6 21638140.436 21638139.504 21638139.763
+ 44.100 39.100
+ -23351935.876 7 -18196297.765 7 20057909.318 20057907.686 20057908.183
+ 45.800 46.600
+ -298554.822 3 -232639.670 2 24848170.944 24848170.179 24848169.940
+ 19.900 15.100
+ -6220352.613 4 -4847025.616 3 23298581.764 23298582.241 23298581.574
+ 28.400 23.000
+ -11092055.700 5 -8643154.009 5 22206363.862 22206362.653 22206362.755
+ 34.300 31.500
+ 06 1 1 23 42 0.0000000 0 6G02G06G10G21G26G29
+ -16847728.070 7 -13128084.905 6 21617431.210 21617427.171 21617430.269
+ 45.100 38.300
+ -16757537.688 7 -13057810.838 6 21619861.244 21619860.291 21619860.497
+ 44.000 39.600
+ -23328870.312 7 -18178324.570 7 20062298.528 20062296.902 20062297.424
+ 45.800 46.400
+ -489192.765 3 -381188.448 3 24811894.390 24811892.324 24811893.087
+ 21.100 18.600
+ -6464833.290 4 -5037529.926 4 23252059.970 23252058.943 23252058.881
+ 28.100 24.900
+ -11279449.667 5 -8789175.171 5 22170703.183 22170702.783 22170702.876
+ 34.900 31.600
+ 06 1 1 23 43 0.0000000 0 6G02G06G10G21G26G29
+ -16702036.454 7 -13014558.974 6 21645155.142 21645151.397 21645154.358
+ 44.400 38.000
+ -16851651.495 7 -13131146.230 6 21601951.905 21601950.961 21601951.167
+ 44.200 39.400
+ -23303934.707 7 -18158894.204 7 20067043.573 20067041.994 20067042.419
+ 45.700 46.400
+ -679879.787 3 -529775.468 4 24775607.265 24775606.487 24775606.374
+ 23.800 24.200
+ -6708640.796 4 -5227509.694 4 23205663.766 23205663.709 23205663.152
+ 24.200 25.600
+ -11465502.979 5 -8934151.666 5 22135298.756 22135297.788 22135297.832
+ 34.600 32.400
+ 06 1 1 23 44 0.0000000 0 6G02G06G10G21G26G29
+ -16555213.025 7 -12900151.113 6 21673095.074 21673091.056 21673093.980
+ 43.900 38.100
+ -16943807.628 7 -13202956.174 6 21584415.315 21584414.141 21584414.642
+ 44.500 39.500
+ -23277138.477 7 -18138014.007 7 20072142.590 20072141.086 20072141.476
+ 45.600 46.600
+ -870609.749 4 -678396.000 3 24739313.222 24739310.891 24739312.242
+ 26.500 19.300
+ -6951748.569 5 -5416944.183 4 23159401.468 23159401.866 23159401.579
+ 30.200 26.500
+ -11650192.824 5 -9078065.726 5 22100153.782 22100152.418 22100152.670
+ 34.800 33.000
+ 06 1 1 23 45 0.0000000 0 6G02G06G10G21G26G29
+ -16407263.331 7 -12784865.661 6 21701248.829 21701245.024 21701247.877
+ 43.900 38.400
+ -17033991.037 7 -13273228.918 6 21567253.700 21567252.747 21567252.928
+ 44.200 39.300
+ -23248491.694 7 -18115691.820 7 20077593.938 20077592.454 20077592.832
+ 45.700 46.600
+ -1061376.248 4 -827045.063 2 24703010.961 24703009.007 24703009.889
+ 25.600 15.100
+ -7194129.873 4 -5605812.636 4 23113279.883 23113278.426 23113278.341
+ 29.500 27.900
+ -11833496.867 5 -9220899.941 5 22065272.233 22065270.583 22065271.035
+ 35.300 32.400
+ 06 1 1 23 46 0.0000000 0 6G02G06G10G21G26G29
+ -16258193.279 7 -12668707.196 6 21729615.602 21729612.061 21729614.804
+ 43.500 38.200
+ -17122188.620 7 -13341954.277 6 21550470.536 21550469.283 21550469.728
+ 44.500 39.500
+ -23218004.488 7 -18091935.537 7 20083395.585 20083393.873 20083394.451
+ 45.900 46.600
+ -1252173.910 3 -975718.407 2 24666702.675 24666701.903 24666701.656
+ 19.900 17.000
+ -7435757.717 5 -5794093.947 4 23067296.690 23067297.822 23067297.245
+ 30.400 27.100
+ -12015392.890 6 -9362636.990 5 22030657.001 22030656.725 22030657.145
+ 36.600 33.400
+ 06 1 1 23 47 0.0000000 0 6G02G06G10G21G26G29
+ -16108008.947 7 -12551680.456 6 21758194.535 21758191.185 21758194.107
+ 44.000 37.900
+ -17208386.681 7 -13409121.549 6 21534067.606 21534066.366 21534066.771
+ 44.800 40.100
+ -23185686.145 7 -18066752.397 7 20089545.527 20089543.850 20089544.368
+ 45.900 46.600
+ -1442996.310 4 -1124411.027 2 24630391.101 24630388.556 24630390.063
+ 24.200 17.800
+ -7676605.391 4 -5981767.323 4 23021465.851 23021466.449 23021465.474
+ 29.000 29.200
+ -12195858.522 6 -9503259.444 5 21996316.748 21996315.325 21996315.779
+ 36.500 33.100
+ 06 1 1 23 48 0.0000000 0 6G02G06G10G21G26G29
+ -15956716.619 7 -12433790.335 6 21786984.553 21786981.276 21786983.975
+ 43.500 37.900
+ -17292571.658 7 -13474720.196 6 21518047.504 21518046.416 21518046.741
+ 44.600 39.800
+ -23151547.387 7 -18040150.753 7 20096041.726 20096040.201 20096040.600
+ 45.700 46.500
+ -1633837.007 4 -1273117.891 3 24594075.255 24594073.288 24594074.265
+ 25.900 18.600
+ -7916646.030 5 -6168811.806 4 22975787.447 22975787.426 22975786.825
+ 30.400 25.600
+ -12374872.001 6 -9642750.373 5 21962251.661 21962250.015 21962250.473
+ 36.200 34.000
+ 06 1 1 23 49 0.0000000 0 6G02G06G10G21G26G29
+ -15804322.289 7 -12315041.522 6 21815984.345 21815980.995 21815983.544
+ 42.900 38.100
+ -17374730.614 7 -13538740.129 6 21502413.119 21502412.143 21502412.431
+ 44.800 40.100
+ -23115598.870 7 -18012138.909 7 20102882.573 20102881.019 20102881.362
+ 45.600 46.600
+ -1824689.642 3 -1421834.074 3 24557756.416 24557755.096 24557755.491
+ 23.000 18.600
+ -8155852.745 5 -6355206.512 4 22930267.652 22930267.971 22930267.554
+ 31.100 27.900
+ -12552411.521 6 -9781092.745 5 21928465.795 21928465.157 21928465.671
+ 37.000 33.600
+ 06 1 1 23 50 0.0000000 0 6G02G06G10G21G26G29
+ -15650832.105 7 -12195438.809 6 21845192.725 21845189.000 21845191.929
+ 43.200 37.200
+ -17454850.471 7 -13601171.155 6 21487166.803 21487165.823 21487166.025
+ 44.600 40.200
+ -23077850.092 7 -17982724.266 7 20110065.960 20110064.423 20110064.762
+ 45.700 46.600
+ -2015547.351 4 -1570554.217 2 24521437.881 24521435.871 24521436.804
+ 24.900 13.900
+ -8394198.606 5 -6540930.401 4 22884912.334 22884912.269 22884911.679
+ 31.100 27.900
+ -12728455.214 6 -9918269.576 5 21894967.001 21894965.240 21894965.787
+ 36.800 33.800
+ 06 1 1 23 51 0.0000000 0 6G02G06G10G21G26G29
+ -15496252.165 7 -12074986.920 6 21874608.634 21874604.828 21874607.683
+ 43.400 37.700
+ -17532918.753 7 -13662003.553 6 21472311.059 21472309.751 21472310.359
+ 45.000 40.000
+ -23038312.525 7 -17951915.758 7 20117589.588 20117588.064 20117588.464
+ 45.700 46.500
+ -2206404.061 4 -1719273.589 2 24485118.747 24485115.908 24485117.712
+ 27.600 17.000
+ -8631656.652 5 -6725962.481 4 22839723.792 22839725.254 22839724.495
+ 31.000 29.000
+ -12902981.581 6 -10054264.075 5 21861754.492 21861754.085 21861754.145
+ 36.800 34.500
+ 06 1 1 23 52 0.0000000 0 6G02G06G10G21G26G29
+ -15340589.213 7 -11953691.120 6 21904230.334 21904226.215 21904229.472
+ 43.200 36.800
+ -17608922.884 7 -13721227.520 6 21457847.694 21457846.714 21457846.928
+ 44.600 40.200
+ -22996996.911 7 -17919721.761 7 20125451.637 20125450.177 20125450.495
+ 45.600 46.300
+ -2397252.671 4 -1867986.630 2 24448801.241 24448799.292 24448800.046
+ 27.100 17.800
+ -8868199.834 5 -6910281.670 4 22794712.874 22794712.327 22794711.983
+ 32.000 29.700
+ -13075969.254 6 -10189059.579 5 21828836.221 21828835.319 21828835.591
+ 36.700 33.900
+ 06 1 1 23 53 0.0000000 0 6G02G06G10G21G26G29
+ -15183849.263 7 -11831556.110 6 21934056.570 21934053.092 21934055.775
+ 42.200 37.300
+ -17682850.867 7 -13778833.720 6 21443779.936 21443778.723 21443779.149
+ 44.900 40.400
+ -22953914.305 7 -17886150.890 7 20133650.072 20133648.478 20133648.932
+ 45.800 46.200
+ -2588086.500 4 -2016688.206 3 24412486.188 24412484.818 24412485.090
+ 24.900 19.900
+ -9103801.156 5 -7093866.941 4 22749879.363 22749878.793 22749878.396
+ 31.500 29.500
+ -13247397.202 6 -10322639.715 5 21796214.516 21796213.633 21796213.897
+ 36.700 34.400
+ 06 1 1 23 54 0.0000000 0 6G02G06G10G21G26G29
+ -15026038.523 7 -11708586.727 6 21964086.989 21964083.347 21964086.357
+ 42.600 36.700
+ -17754690.686 7 -13834812.777 6 21430109.055 21430107.976 21430108.360
+ 45.000 40.300
+ -22909075.710 7 -17851211.714 7 20142182.698 20142181.118 20142181.476
+ 45.900 46.400
+ -2778898.551 4 -2165372.744 3 24376176.003 24376174.490 24376174.984
+ 24.900 23.400
+ -9338433.796 5 -7276697.374 4 22705229.089 22705229.487 22705229.162
+ 32.100 28.600
+ -13417243.979 6 -10454987.778 5 21763894.512 21763892.686 21763893.538
+ 38.300 34.600
+ 06 1 1 23 55 0.0000000 0 6G02G06G10G21G26G29
+ -14867163.845 7 -11584788.302 6 21994319.684 21994316.057 21994319.151
+ 42.300 36.200
+ -17824431.127 7 -13889155.959 6 21416838.092 21416836.698 21416837.288
+ 44.800 40.200
+ -22862491.855 7 -17814912.595 7 20151047.080 20151045.617 20151045.981
+ 45.800 46.100
+ -2969681.993 4 -2314035.014 3 24339870.238 24339869.285 24339869.311
+ 24.900 21.600
+ -9572070.583 5 -7458751.860 4 22660769.984 22660769.646 22660769.457
+ 32.400 29.700
+ -13585488.896 6 -10586087.648 5 21731877.505 21731876.750 21731877.252
+ 38.500 35.100
+ 06 1 1 23 56 0.0000000 0 6G02G06G10G21G26G29
+ -14707231.497 6 -11460165.717 6 22024753.774 22024750.448 22024753.155
+ 41.500 36.400
+ -17892060.232 7 -13941853.947 6 21403968.578 21403967.466 21403967.846
+ 44.700 40.500
+ -22814174.026 7 -17777262.328 7 20160241.719 20160240.132 20160240.554
+ 45.800 46.200
+ -3160430.026 4 -2462669.711 3 24303571.878 24303571.402 24303571.236
+ 25.600 22.600
+ -9804684.448 5 -7640009.285 5 22616505.988 22616504.936 22616504.921
+ 33.600 30.800
+ -13752111.060 6 -10715923.027 5 21700171.284 21700169.388 21700170.324
+ 38.600 34.600
+ 06 1 1 23 57 0.0000000 0 6G02G06G10G21G26G29
+ -14546248.639 6 -11334724.554 6 22055387.955 22055384.447 22055387.292
+ 41.900 36.500
+ -17957567.136 7 -13992898.271 6 21391502.880 21391501.786 21391502.067
+ 44.700 40.600
+ -22764133.226 7 -17738269.487 7 20169763.928 20169762.653 20169762.830
+ 45.600 46.200
+ -3351134.659 4 -2611270.602 3 24267283.578 24267280.880 24267282.413
+ 27.900 18.600
+ -10036248.697 5 -7820448.818 4 22572440.647 22572439.105 22572439.428
+ 33.200 29.700
+ -13917090.172 6 -10844478.099 5 21668775.977 21668775.083 21668775.597
+ 38.900 35.800
+ 06 1 1 23 58 0.0000000 0 6G02G06G10G21G26G29
+ -14384221.093 6 -11208469.351 6 22086220.792 22086217.383 22086220.103
+ 41.900 36.600
+ -18020941.187 7 -14042280.632 6 21379443.377 21379442.286 21379442.661
+ 45.000 40.900
+ -22712381.866 7 -17697943.738 7 20179611.995 20179610.645 20179610.799
+ 45.600 46.200
+ -3541788.633 4 -2759832.075 2 24231002.699 24231000.542 24231001.683
+ 28.100 12.600
+ -10266736.042 5 -8000049.216 5 22528577.964 22528578.749 22528578.561
+ 33.000 30.200
+ -14080405.701 6 -10971736.880 5 21637698.273 21637696.838 21637697.638
+ 39.000 35.400
+ 06 1 1 23 59 0.0000000 0 6G02G06G10G21G26G29
+ -14221155.594 6 -11081405.364 6 22117250.975 22117247.776 22117250.483
+ 41.200 36.300
+ -18082171.775 7 -14089992.763 6 21367791.719 21367790.275 21367790.946
+ 45.200 40.600
+ -22658931.308 7 -17656293.941 7 20189783.323 20189781.998 20189782.143
+ 45.500 46.400
+ -3732384.859 4 -2908348.537 3 24194733.771 24194731.185 24194732.553
+ 27.600 20.500
+ -10496119.469 5 -8178789.422 5 22484928.237 22484928.439 22484928.351
+ 34.100 31.100
+ -14242037.787 6 -11097683.882 5 21606941.132 21606939.342 21606940.033
+ 38.600 35.600
diff --git a/ref/usersguide/arl2810.06m b/ref/usersguide/arl2810.06m
new file mode 100644
index 0000000..cf70b86
--- /dev/null
+++ b/ref/usersguide/arl2810.06m
@@ -0,0 +1,299 @@
+ 2 METEOROLOGICAL DATA RINEX VERSION / TYPE
+ACSMET NRCan 02-JAN-06 00:34 PGM / RUN BY / DATE
+ COMMENT
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+40104M002 MARKER NUMBER
+ 3 PR TD HR # / TYPES OF OBSERV
+VAISALA PTB-100A 0.1 PR SENSOR MOD/TYPE/ACC
+YSI 44212 0.2 TD SENSOR MOD/TYPE/ACC
+VAISALA HMP-35A 3.0 HR SENSOR MOD/TYPE/ACC
+ 0.0 0.0 0.0 200.9 PR SENSOR POS XYZ/H
+ END OF HEADER
+ 06 01 02 00 00 34 991.4 -7.3 91.8
+ 06 01 02 00 05 22 991.5 -7.2 91.4
+ 06 01 02 00 10 21 991.6 -7.2 90.9
+ 06 01 02 00 15 35 991.6 -7.2 90.9
+ 06 01 02 00 20 22 991.6 -7.1 90.8
+ 06 01 02 00 25 19 991.7 -7.1 90.7
+ 06 01 02 00 30 33 991.8 -7.1 90.9
+ 06 01 02 00 35 20 991.7 -7.1 91.0
+ 06 01 02 00 40 22 991.8 -7.0 90.9
+ 06 01 02 00 45 31 991.8 -7.0 91.0
+ 06 01 02 00 50 21 991.9 -7.0 91.4
+ 06 01 02 00 55 24 992.0 -7.0 91.6
+ 06 01 02 01 00 32 992.0 -7.0 92.0
+ 06 01 02 01 05 21 991.9 -7.0 92.5
+ 06 01 02 01 10 23 992.0 -7.0 92.8
+ 06 01 02 01 15 27 992.1 -7.0 92.8
+ 06 01 02 01 20 21 992.0 -7.0 92.9
+ 06 01 02 01 25 21 991.9 -7.0 93.0
+ 06 01 02 01 30 30 991.9 -7.0 92.9
+ 06 01 02 01 35 23 991.9 -7.0 92.9
+ 06 01 02 01 40 21 991.9 -7.0 92.9
+ 06 01 02 01 45 32 991.8 -6.9 92.9
+ 06 01 02 01 50 19 991.9 -7.0 93.1
+ 06 01 02 01 55 19 992.0 -7.0 93.1
+ 06 01 02 02 00 46 991.9 -6.9 93.2
+ 06 01 02 02 05 20 992.0 -6.9 92.9
+ 06 01 02 02 10 19 992.0 -6.9 92.7
+ 06 01 02 02 15 33 992.1 -6.8 92.6
+ 06 01 02 02 20 18 992.0 -6.8 92.6
+ 06 01 02 02 25 20 992.1 -6.8 92.6
+ 06 01 02 02 30 32 992.0 -6.8 92.8
+ 06 01 02 02 35 19 992.1 -6.8 92.7
+ 06 01 02 02 40 19 992.1 -6.7 92.6
+ 06 01 02 02 45 28 992.2 -6.8 93.0
+ 06 01 02 02 50 19 992.2 -6.8 93.3
+ 06 01 02 02 55 21 992.1 -6.8 93.1
+ 06 01 02 03 00 29 992.1 -6.8 92.9
+ 06 01 02 03 05 20 992.2 -6.7 92.8
+ 06 01 02 03 10 21 992.1 -6.7 92.7
+ 06 01 02 03 15 32 992.2 -6.7 92.6
+ 06 01 02 03 20 19 992.1 -6.7 92.5
+ 06 01 02 03 25 19 992.3 -6.7 92.4
+ 06 01 02 03 30 32 992.3 -6.7 92.7
+ 06 01 02 03 35 22 992.4 -6.7 92.5
+ 06 01 02 03 40 19 992.4 -6.7 92.5
+ 06 01 02 03 45 32 992.3 -6.7 92.3
+ 06 01 02 03 50 23 992.4 -6.6 92.4
+ 06 01 02 03 55 20 992.4 -6.6 92.2
+ 06 01 02 04 00 35 992.4 -6.6 91.7
+ 06 01 02 04 05 20 992.4 -6.6 92.0
+ 06 01 02 04 10 19 992.4 -6.6 92.1
+ 06 01 02 04 15 31 992.4 -6.6 92.3
+ 06 01 02 04 20 19 992.3 -6.6 92.3
+ 06 01 02 04 25 23 992.4 -6.6 92.5
+ 06 01 02 04 30 32 992.6 -6.7 92.5
+ 06 01 02 04 35 22 992.5 -6.6 92.5
+ 06 01 02 04 40 20 992.4 -6.5 92.1
+ 06 01 02 04 45 34 992.4 -6.6 92.6
+ 06 01 02 04 50 21 992.4 -6.6 92.8
+ 06 01 02 04 55 21 992.5 -6.6 92.8
+ 06 01 02 05 00 30 992.5 -6.6 93.0
+ 06 01 02 05 05 21 992.4 -6.6 93.1
+ 06 01 02 05 10 19 992.5 -6.6 93.0
+ 06 01 02 05 15 34 992.5 -6.6 93.0
+ 06 01 02 05 20 19 992.6 -6.6 92.9
+ 06 01 02 05 25 20 992.6 -6.7 93.1
+ 06 01 02 05 30 28 992.6 -6.7 93.0
+ 06 01 02 05 35 24 992.7 -6.6 92.7
+ 06 01 02 05 40 21 992.8 -6.5 92.7
+ 06 01 02 05 45 38 992.8 -6.5 93.0
+ 06 01 02 05 50 21 992.9 -6.5 92.8
+ 06 01 02 05 55 20 992.9 -6.5 92.8
+ 06 01 02 06 00 37 992.9 -6.5 93.0
+ 06 01 02 06 05 24 992.9 -6.5 92.8
+ 06 01 02 06 10 19 993.0 -6.5 92.9
+ 06 01 02 06 15 38 993.1 -6.5 93.0
+ 06 01 02 06 20 24 993.1 -6.6 93.2
+ 06 01 02 06 25 22 993.2 -6.5 93.1
+ 06 01 02 06 30 34 993.2 -6.5 92.9
+ 06 01 02 06 35 22 993.2 -6.4 92.9
+ 06 01 02 06 40 20 993.4 -6.5 93.0
+ 06 01 02 06 45 31 993.5 -6.5 93.3
+ 06 01 02 06 50 20 993.6 -6.4 93.2
+ 06 01 02 06 55 22 993.7 -6.4 93.0
+ 06 01 02 07 00 34 993.7 -6.3 92.8
+ 06 01 02 07 05 19 993.7 -6.3 92.8
+ 06 01 02 07 10 22 993.8 -6.4 93.1
+ 06 01 02 07 15 30 993.9 -6.3 92.5
+ 06 01 02 07 20 19 994.0 -6.2 92.0
+ 06 01 02 07 25 20 994.0 -6.2 91.8
+ 06 01 02 07 30 38 994.1 -6.2 92.1
+ 06 01 02 07 35 20 994.1 -6.2 92.7
+ 06 01 02 07 40 21 994.1 -6.3 93.1
+ 06 01 02 07 45 37 994.1 -6.2 93.1
+ 06 01 02 07 50 23 994.1 -6.2 93.0
+ 06 01 02 07 55 24 994.2 -6.3 92.9
+ 06 01 02 08 00 39 994.2 -6.4 93.4
+ 06 01 02 08 05 18 994.2 -6.3 93.4
+ 06 01 02 08 10 18 994.2 -6.4 93.5
+ 06 01 02 08 15 40 994.2 -6.4 93.5
+ 06 01 02 08 20 18 994.3 -6.4 93.2
+ 06 01 02 08 25 23 994.3 -6.4 93.2
+ 06 01 02 08 30 31 994.2 -6.5 93.3
+ 06 01 02 08 35 21 994.2 -6.6 93.6
+ 06 01 02 08 40 20 994.3 -6.6 93.6
+ 06 01 02 08 45 30 994.3 -6.6 93.5
+ 06 01 02 08 50 20 994.4 -6.6 93.7
+ 06 01 02 08 55 18 994.3 -6.7 93.9
+ 06 01 02 09 00 27 994.3 -6.6 94.0
+ 06 01 02 09 05 19 994.4 -6.7 93.8
+ 06 01 02 09 10 23 994.3 -6.7 93.8
+ 06 01 02 09 15 28 994.3 -6.7 94.3
+ 06 01 02 09 20 19 994.3 -6.7 94.0
+ 06 01 02 09 25 19 994.4 -6.7 93.6
+ 06 01 02 09 30 28 994.4 -6.8 93.5
+ 06 01 02 09 35 21 994.3 -6.9 93.2
+ 06 01 02 09 40 18 994.3 -7.0 94.0
+ 06 01 02 09 45 27 994.4 -7.2 93.6
+ 06 01 02 09 50 22 994.3 -7.3 94.1
+ 06 01 02 09 55 19 994.3 -7.4 93.5
+ 06 01 02 10 00 30 994.2 -7.6 93.1
+ 06 01 02 10 05 18 994.2 -7.6 93.5
+ 06 01 02 10 10 19 994.3 -7.6 93.6
+ 06 01 02 10 15 30 994.3 -7.7 93.5
+ 06 01 02 10 20 19 994.4 -7.6 94.5
+ 06 01 02 10 25 19 994.4 -7.6 93.7
+ 06 01 02 10 30 28 994.5 -7.6 93.4
+ 06 01 02 10 35 19 994.6 -7.6 93.6
+ 06 01 02 10 40 19 994.6 -7.5 93.9
+ 06 01 02 10 45 28 994.6 -7.5 93.3
+ 06 01 02 10 50 19 994.7 -7.5 93.4
+ 06 01 02 10 55 19 994.7 -7.4 93.7
+ 06 01 02 11 00 28 994.7 -7.4 92.9
+ 06 01 02 11 05 21 994.6 -7.4 93.7
+ 06 01 02 11 10 19 994.7 -7.3 94.3
+ 06 01 02 11 15 27 994.8 -7.2 93.8
+ 06 01 02 11 20 21 994.9 -7.2 93.6
+ 06 01 02 11 25 19 994.8 -7.1 93.9
+ 06 01 02 11 30 29 994.9 -7.0 93.4
+ 06 01 02 11 35 19 994.9 -7.1 92.9
+ 06 01 02 11 40 18 994.9 -7.2 92.5
+ 06 01 02 11 45 32 994.9 -7.3 92.9
+ 06 01 02 11 50 19 994.8 -7.3 93.3
+ 06 01 02 11 55 19 994.9 -7.3 93.4
+ 06 01 02 12 00 28 994.8 -7.3 93.2
+ 06 01 02 12 05 18 994.8 -7.3 93.3
+ 06 01 02 12 10 18 994.8 -7.3 93.8
+ 06 01 02 12 15 28 994.7 -7.3 93.7
+ 06 01 02 12 20 18 994.8 -7.3 94.2
+ 06 01 02 12 25 18 994.9 -7.3 94.4
+ 06 01 02 12 30 26 994.9 -7.3 95.0
+ 06 01 02 12 35 19 995.0 -7.3 95.4
+ 06 01 02 12 40 19 995.0 -7.3 95.7
+ 06 01 02 12 45 27 994.9 -7.2 96.1
+ 06 01 02 12 50 21 995.0 -7.2 96.4
+ 06 01 02 12 55 18 994.9 -7.2 96.6
+ 06 01 02 13 00 30 995.0 -7.2 96.6
+ 06 01 02 13 05 19 995.1 -7.2 96.5
+ 06 01 02 13 10 19 995.1 -7.1 96.3
+ 06 01 02 13 15 30 995.2 -7.1 96.3
+ 06 01 02 13 20 19 995.2 -7.1 96.8
+ 06 01 02 13 25 18 995.3 -7.1 96.8
+ 06 01 02 13 30 30 995.3 -7.1 96.8
+ 06 01 02 13 35 19 995.3 -7.1 96.9
+ 06 01 02 13 40 19 995.3 -7.1 96.9
+ 06 01 02 13 45 28 995.4 -7.0 96.5
+ 06 01 02 13 50 19 995.4 -6.9 96.2
+ 06 01 02 13 55 21 995.5 -6.9 95.9
+ 06 01 02 14 00 29 995.7 -6.8 95.8
+ 06 01 02 14 05 19 995.8 -6.6 95.6
+ 06 01 02 14 10 18 995.9 -6.5 95.1
+ 06 01 02 14 15 28 996.0 -6.4 95.1
+ 06 01 02 14 20 22 996.2 -6.4 94.7
+ 06 01 02 14 25 20 996.3 -6.5 95.3
+ 06 01 02 14 30 41 996.4 -6.4 95.2
+ 06 01 02 14 35 20 996.4 -6.2 95.2
+ 06 01 02 14 40 19 996.4 -6.0 95.2
+ 06 01 02 14 45 32 996.3 -5.6 95.6
+ 06 01 02 14 50 23 996.2 -5.3 94.9
+ 06 01 02 14 55 19 996.2 -5.4 94.0
+ 06 01 02 15 00 31 996.2 -5.5 94.0
+ 06 01 02 15 05 19 996.2 -5.7 94.1
+ 06 01 02 15 10 19 996.2 -5.7 95.0
+ 06 01 02 15 15 29 996.2 -5.5 95.2
+ 06 01 02 15 20 21 996.3 -5.5 94.7
+ 06 01 02 15 25 24 996.2 -5.6 95.0
+ 06 01 02 15 30 37 996.1 -5.5 95.7
+ 06 01 02 15 35 25 996.2 -5.4 95.2
+ 06 01 02 15 40 21 996.2 -5.4 94.6
+ 06 01 02 15 45 36 996.3 -5.2 94.8
+ 06 01 02 15 50 20 996.3 -4.8 95.6
+ 06 01 02 15 55 21 996.3 -4.9 93.7
+ 06 01 02 16 00 29 996.1 -5.1 94.2
+ 06 01 02 16 05 19 996.2 -5.2 94.6
+ 06 01 02 16 10 19 996.1 -5.2 95.2
+ 06 01 02 16 15 32 996.0 -5.1 94.8
+ 06 01 02 16 20 25 995.9 -5.0 95.5
+ 06 01 02 16 25 24 996.0 -4.8 94.8
+ 06 01 02 16 30 29 995.9 -4.8 94.6
+ 06 01 02 16 35 24 995.9 -4.6 94.6
+ 06 01 02 16 40 20 995.9 -4.6 94.3
+ 06 01 02 16 45 27 995.9 -4.5 94.4
+ 06 01 02 16 50 20 995.9 -4.6 94.4
+ 06 01 02 16 55 19 995.8 -4.6 95.0
+ 06 01 02 17 00 32 995.7 -4.5 95.0
+ 06 01 02 17 05 19 995.7 -4.6 95.0
+ 06 01 02 17 10 22 995.7 -4.6 94.9
+ 06 01 02 17 15 28 995.6 -4.5 95.2
+ 06 01 02 17 20 20 995.5 -4.4 94.7
+ 06 01 02 17 25 19 995.4 -4.4 95.1
+ 06 01 02 17 30 31 995.4 -4.3 94.7
+ 06 01 02 17 35 20 995.4 -4.3 94.9
+ 06 01 02 17 40 20 995.5 -4.3 94.6
+ 06 01 02 17 45 34 995.5 -4.2 94.7
+ 06 01 02 17 50 18 995.5 -4.2 94.6
+ 06 01 02 17 55 20 995.3 -4.3 94.9
+ 06 01 02 18 00 28 995.0 -4.2 95.0
+ 06 01 02 18 05 21 994.9 -4.2 94.5
+ 06 01 02 18 10 19 995.0 -4.2 94.9
+ 06 01 02 18 15 30 995.1 -4.1 95.2
+ 06 01 02 18 20 23 995.0 -4.2 94.8
+ 06 01 02 18 25 20 994.9 -4.2 95.0
+ 06 01 02 18 30 27 995.1 -4.1 95.0
+ 06 01 02 18 35 19 995.1 -4.1 94.8
+ 06 01 02 18 40 19 995.0 -4.0 94.8
+ 06 01 02 18 45 32 994.9 -4.1 94.7
+ 06 01 02 18 50 19 994.8 -4.0 94.8
+ 06 01 02 18 55 20 994.8 -4.0 94.3
+ 06 01 02 19 00 32 994.9 -3.9 94.4
+ 06 01 02 19 05 20 994.9 -3.9 94.2
+ 06 01 02 19 10 19 994.8 -3.9 94.4
+ 06 01 02 19 15 29 995.0 -3.9 94.4
+ 06 01 02 19 20 19 995.0 -4.0 94.3
+ 06 01 02 19 25 19 995.0 -4.1 94.6
+ 06 01 02 19 30 29 995.0 -4.1 94.9
+ 06 01 02 19 35 20 995.0 -4.0 94.6
+ 06 01 02 19 40 19 995.0 -4.0 94.5
+ 06 01 02 19 45 27 995.0 -3.9 94.7
+ 06 01 02 19 50 19 994.8 -3.9 94.5
+ 06 01 02 19 55 19 994.8 -3.9 94.4
+ 06 01 02 20 00 28 994.7 -4.0 94.8
+ 06 01 02 20 05 22 994.6 -4.1 94.7
+ 06 01 02 20 10 19 994.6 -4.1 95.0
+ 06 01 02 20 15 29 994.6 -4.1 95.3
+ 06 01 02 20 20 19 994.5 -4.1 94.9
+ 06 01 02 20 25 19 994.3 -4.2 95.1
+ 06 01 02 20 30 33 994.4 -4.3 94.9
+ 06 01 02 20 35 19 994.5 -4.3 95.4
+ 06 01 02 20 40 19 994.3 -4.4 95.5
+ 06 01 02 20 45 33 994.1 -4.4 95.4
+ 06 01 02 20 50 18 994.2 -4.5 95.3
+ 06 01 02 20 55 22 994.1 -4.5 95.3
+ 06 01 02 21 00 30 994.2 -4.5 95.6
+ 06 01 02 21 05 19 994.0 -4.6 95.5
+ 06 01 02 21 10 18 994.0 -4.7 95.8
+ 06 01 02 21 15 32 994.1 -4.7 95.7
+ 06 01 02 21 20 19 993.9 -4.8 96.0
+ 06 01 02 21 25 18 993.9 -4.8 96.1
+ 06 01 02 21 30 32 993.9 -4.8 96.1
+ 06 01 02 21 35 19 994.1 -4.8 96.1
+ 06 01 02 21 40 19 994.4 -4.8 96.1
+ 06 01 02 21 45 29 994.5 -4.7 96.0
+ 06 01 02 21 50 18 994.4 -4.8 96.0
+ 06 01 02 21 55 18 994.4 -4.8 96.2
+ 06 01 02 22 00 29 994.5 -4.8 96.2
+ 06 01 02 22 05 19 994.5 -4.8 96.2
+ 06 01 02 22 10 19 994.5 -4.8 96.2
+ 06 01 02 22 15 28 994.4 -4.8 96.2
+ 06 01 02 22 20 19 994.5 -4.8 96.3
+ 06 01 02 22 25 21 994.8 -4.8 96.3
+ 06 01 02 22 30 28 994.9 -4.8 96.2
+ 06 01 02 22 35 18 994.9 -4.8 96.1
+ 06 01 02 22 40 19 994.8 -4.9 96.2
+ 06 01 02 22 45 28 994.9 -4.9 96.3
+ 06 01 02 22 50 19 995.0 -4.9 96.3
+ 06 01 02 22 55 19 994.9 -4.9 96.5
+ 06 01 02 23 00 28 994.9 -5.0 96.6
+ 06 01 02 23 05 21 994.8 -5.0 96.7
+ 06 01 02 23 10 19 994.6 -5.0 96.7
+ 06 01 02 23 15 28 994.4 -5.0 96.7
+ 06 01 02 23 20 19 994.6 -5.0 96.7
+ 06 01 02 23 25 19 994.8 -5.0 96.6
+ 06 01 02 23 30 32 994.8 -5.0 96.5
+ 06 01 02 23 35 19 994.7 -5.0 96.5
+ 06 01 02 23 40 18 994.7 -5.1 96.4
+ 06 01 02 23 45 27 994.7 -5.1 96.4
+ 06 01 02 23 50 18 994.7 -5.1 96.4
+ 06 01 02 23 55 18 994.7 -5.1 96.4
diff --git a/ref/usersguide/arl2810.06n b/ref/usersguide/arl2810.06n
new file mode 100644
index 0000000..0c5a682
--- /dev/null
+++ b/ref/usersguide/arl2810.06n
@@ -0,0 +1,1285 @@
+ 2.10 N: GPS NAV DATA RINEX VERSION / TYPE
+teqc 2005Sep1 20060103 00:24:56UTCPGM / RUN BY / DATE
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+teqc 2005Sep1 20060102 01:18:13UTCCOMMENT
+ END OF HEADER
+ 2 06 1 2 0 0 0.0-2.317875623703D-05 1.023181539495D-12 0.000000000000D+00
+ 2.140000000000D+02 8.343750000000D+00 4.815200572432D-09 6.443774175459D-01
+ 3.799796104431D-07 9.061537333764D-03 1.058541238308D-05 5.153634239197D+03
+ 8.640000000000D+04-5.960464477539D-08 2.938091523602D+00-9.126961231232D-08
+ 9.522994280993D-01 1.752500000000D+02 1.956197477808D+00-8.064264480413D-09
+ -6.207401420328D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.140000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+ 4 06 1 2 0 0 0.0 1.047626137733D-04 1.227817847393D-11 0.000000000000D+00
+ 4.200000000000D+01 1.303125000000D+01 4.698052835615D-09 3.005372095983D+00
+ 6.947666406631D-07 7.416905951686D-03 1.063756644726D-05 5.153762599945D+03
+ 8.640000000000D+04-1.341104507446D-07 2.957878893563D+00 3.725290298462D-08
+ 9.518933556876D-01 1.711562500000D+02 1.130609230184D-01-7.791395971488D-09
+ -6.318120317929D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 2.980000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+ 5 06 1 2 0 0 0.0 4.499121569097D-04 2.398792275926D-11 0.000000000000D+00
+ 8.100000000000D+01-4.531250000000D+01 4.676623371564D-09 2.665684552896D+00
+ -2.298504114151D-06 6.785582634620D-03 1.199729740620D-05 5.153685922623D+03
+ 8.640000000000D+04 2.793967723846D-08 7.640985033354D-01-2.048909664154D-08
+ 9.374356201164D-01 1.335312500000D+02 1.039437303776D+00-7.845683947085D-09
+ 7.268159890890D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 8.100000000000D+01
+ 7.921800000000D+04 4.000000000000D+00
+ 7 06 1 2 0 0 0.0 4.604952409863D-04 1.023181539495D-11 0.000000000000D+00
+ 1.630000000000D+02 1.040625000000D+01 5.773811931014D-09-2.426958213465D-01
+ 4.786998033524D-07 1.323255465832D-02 5.224719643593D-06 5.153803689957D+03
+ 8.640000000000D+04-1.452863216400D-07 1.834302374331D+00 9.126961231232D-08
+ 9.350061666913D-01 2.697812500000D+02-1.767591617320D+00-8.807152567541D-09
+ 2.350097891010D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 4.190000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+10 06 1 2 0 0 0.0 7.641175761819D-05 6.821210263297D-13 0.000000000000D+00
+ 4.400000000000D+01 1.528125000000D+02 4.098384999900D-09 9.400693759029D-01
+ 8.232891559601D-06 6.802955758758D-03 7.700175046921D-06 5.153792322159D+03
+ 8.640000000000D+04 2.048909664154D-08-2.277081682781D+00 8.754432201385D-08
+ 9.756474777593D-01 2.366562500000D+02 3.583371797133D-01-7.909972339241D-09
+ -2.250093725435D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 3.000000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+13 06 1 2 0 0 0.0 3.252271562815D-05 2.273736754432D-12 0.000000000000D+00
+ 3.500000000000D+01 9.656250000000D+00 4.047668601644D-09 8.937616681667D-01
+ 4.600733518600D-07 2.572151832283D-03 3.352761268616D-08 5.153609968185D+03
+ 8.640000000000D+04-2.235174179077D-08-1.228409452619D+00 5.587935447693D-08
+ 9.903257965074D-01 3.936250000000D+02 1.095534857836D+00-8.251772290866D-09
+ -8.000333245992D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 3.500000000000D+01
+ 7.921800000000D+04 4.000000000000D+00
+23 06 1 2 0 0 0.0 1.564030535519D-04-1.705302565824D-12 0.000000000000D+00
+ 1.000000000000D+00 2.281250000000D+01 4.607334771129D-09 1.110267720021D-01
+ 1.015141606331D-06 4.178477451205D-03-3.147870302200D-07 5.153605798721D+03
+ 8.640000000000D+04 2.048909664154D-08-1.251807020593D+00-3.725290298462D-08
+ 9.667791454777D-01 3.888750000000D+02 2.423957253538D+00-8.515711856437D-09
+ -6.714565402886D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 1.000000000000D+00
+ 7.921800000000D+04 4.000000000000D+00
+30 06 1 2 0 0 0.0 9.573996067047D-06 5.798028723802D-12 0.000000000000D+00
+ 1.410000000000D+02-4.078125000000D+01 4.600191616446D-09 1.941068742676D+00
+ -2.099201083183D-06 8.714219904505D-03 1.187995076180D-05 5.153608665466D+03
+ 8.640000000000D+04 3.725290298462D-09 8.095694190044D-01-1.657754182816D-07
+ 9.440548957900D-01 1.397187500000D+02 1.296129887892D+00-7.869613515277D-09
+ 7.571743964957D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.410000000000D+02
+ 7.921800000000D+04 4.000000000000D+00
+ 6 06 1 2 0 0 0.0 1.747133210301D-04 4.433786671143D-11 0.000000000000D+00
+ 2.000000000000D+01 5.875000000000D+00 5.629877364133D-09-2.337693961491D+00
+ 1.527369022369D-07 5.970326019451D-03 4.785135388374D-06 5.153618072510D+03
+ 8.640000000000D+04 1.024454832077D-07 1.861027949273D+00 1.862645149231D-08
+ 9.334776162553D-01 2.674375000000D+02-1.861404960817D+00-8.378206128772D-09
+ 2.625109346341D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 2.760000000000D+02
+ 7.924800000000D+04 4.000000000000D+00
+29 06 1 2 0 0 0.0 4.826420918107D-04 1.477928890381D-11 0.000000000000D+00
+ 1.080000000000D+02 8.156250000000D+00 4.277321024732D-09 1.211219303529D+00
+ 8.568167686462D-08 9.275490301661D-03-7.487833499908D-07 5.153685186386D+03
+ 8.640000000000D+04 1.769512891769D-07-1.261441193415D+00-2.086162567139D-07
+ 9.852527374684D-01 4.024062500000D+02-1.012766041131D+00-8.355705191517D-09
+ -1.039329006511D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.080000000000D+02
+ 8.215800000000D+04 4.000000000000D+00
+26 06 1 2 0 0 0.0-7.546972483397D-06-7.275957614183D-12 0.000000000000D+00
+ 5.100000000000D+01 3.656250000000D+00 4.271606500985D-09-7.551716792002D-01
+ 3.650784492493D-07 1.676288200542D-02-4.786998033524D-07 5.153648803711D+03
+ 8.640000000000D+04 1.993030309677D-07-1.227230072933D+00 2.272427082062D-07
+ 9.885155553435D-01 4.004062500000D+02 7.471069439116D-01-8.501425547069D-09
+ -1.150047904111D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 5.100000000000D+01
+ 8.380800000000D+04 4.000000000000D+00
+21 06 1 2 0 0 0.0 1.639910042286D-04 3.865352482535D-12 0.000000000000D+00
+ 2.050000000000D+02 2.368750000000D+01 4.836630036483D-09-2.442420537808D+00
+ 1.089647412300D-06 1.051642862149D-02 1.101754605770D-05 5.153742439270D+03
+ 8.640000000000D+04-1.322478055954D-07 2.979010183457D+00-2.346932888031D-07
+ 9.454869448349D-01 1.624375000000D+02-3.028548583388D+00-7.897828976278D-09
+ -6.400266596794D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 4.610000000000D+02
+ 8.521800000000D+04 4.000000000000D+00
+ 2 06 1 2 2 0 0.0-2.317177131772D-05 1.023181539495D-12 0.000000000000D+00
+ 2.150000000000D+02 2.812500000000D+00 4.759841123631D-09 1.694550350035D+00
+ 8.009374141693D-08 9.062062366866D-03 1.016072928905D-05 5.153635162354D+03
+ 9.360000000000D+04 1.266598701477D-07 2.938034112845D+00-6.519258022308D-08
+ 9.522957576379D-01 1.785312500000D+02 1.956230762121D+00-7.883542666910D-09
+ -6.257403503115D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.150000000000D+02
+ 8.641800000000D+04 4.000000000000D+00
+ 6 06 1 2 2 0 0.0 1.750322990119D-04 4.433786671143D-11 0.000000000000D+00
+ 1.500000000000D+01 7.625000000000D+00 5.614519581562D-09-1.287498520544D+00
+ 6.295740604401D-07 5.970451864414D-03 4.969537258148D-06 5.153617710114D+03
+ 9.360000000000D+04 4.656612873077D-08 1.860967646327D+00 1.806765794754D-07
+ 9.334787514798D-01 2.678750000000D+02-1.861377659840D+00-8.526069430729D-09
+ 2.096515899731D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 5.270000000000D+02
+ 8.641800000000D+04 4.000000000000D+00
+10 06 1 2 2 0 0.0 7.641687989235D-05 6.821210263297D-13 0.000000000000D+00
+ 4.500000000000D+01 1.418437500000D+02 4.065526488354D-09 1.989816514382D+00
+ 7.512047886848D-06 6.803017924540D-03 8.666887879372D-06 5.153796895981D+03
+ 9.360000000000D+04-1.583248376846D-07-2.277139140351D+00 1.080334186554D-07
+ 9.756477601025D-01 2.230000000000D+02 3.586945384159D-01-7.841040896541D-09
+ 9.250385315679D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 3.010000000000D+02
+ 8.641800000000D+04 4.000000000000D+00
+21 06 1 2 2 0 0.0 1.640184782445D-04 3.865352482535D-12 0.000000000000D+00
+ 2.060000000000D+02 2.031250000000D+01 4.865916970687D-09-1.392431546786D+00
+ 7.748603820801D-07 1.051684468985D-02 1.017563045025D-05 5.153739336014D+03
+ 9.360000000000D+04 1.098960638046D-07 2.978951808637D+00-1.080334186554D-07
+ 9.454829452169D-01 1.741562500000D+02-3.028394871659D+00-7.984618305688D-09
+ -4.418041172006D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 4.620000000000D+02
+ 8.641800000000D+04 4.000000000000D+00
+26 06 1 2 2 0 0.0-7.599592208862D-06-7.275957614183D-12 0.000000000000D+00
+ 5.200000000000D+01 1.265625000000D+01 4.292678807303D-09 2.949893100260D-01
+ 8.735805749893D-07 1.676360249985D-02-1.844018697739D-07 5.153649904251D+03
+ 9.360000000000D+04-9.313225746155D-09-1.227291543288D+00 2.421438694000D-07
+ 9.885144830246D-01 3.934062500000D+02 7.471410620870D-01-8.538212793692D-09
+ -1.550064566411D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 5.200000000000D+01
+ 8.641800000000D+04 4.000000000000D+00
+29 06 1 2 2 0 0.0 4.827482625842D-04 1.477928890381D-11 0.000000000000D+00
+ 1.090000000000D+02 2.315625000000D+01 4.281249759808D-09 2.261173465397D+00
+ 1.387670636177D-06 9.274900658056D-03-7.357448339462D-07 5.153689123154D+03
+ 9.360000000000D+04 2.030283212662D-07-1.261500309934D+00-1.303851604462D-08
+ 9.852521742449D-01 4.004375000000D+02-1.012549257152D+00-8.234271561891D-09
+ -1.521491947675D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.090000000000D+02
+ 8.641800000000D+04 4.000000000000D+00
+27 06 1 2 2 0 0.0 2.975761890411D-05 1.591615728103D-12 0.000000000000D+00
+ 1.230000000000D+02-1.650937500000D+02 4.232319150224D-09-2.412480924531D+00
+ -8.581206202507D-06 1.963064621668D-02 5.396082997322D-06 5.153722867966D+03
+ 9.360000000000D+04 2.086162567139D-07-2.626655147873D-01-1.154839992523D-07
+ 9.568896993026D-01 2.676875000000D+02-1.979833391710D+00-7.753180093929D-09
+ -1.435774091468D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 1.230000000000D+02
+ 8.674800000000D+04 4.000000000000D+00
+21 06 1 2 1 59 44.0 1.640189439058D-04 3.865352482535D-12 0.000000000000D+00
+ 2.260000000000D+02 2.031250000000D+01 4.865916970687D-09-1.394765146893D+00
+ 7.748603820801D-07 1.051684515551D-02 1.017563045025D-05 5.153739343643D+03
+ 9.358400000000D+04 1.098960638046D-07 2.978951938837D+00-1.080334186554D-07
+ 9.454829569202D-01 1.741562500000D+02-3.028395001859D+00-7.984618305688D-09
+ -4.418041172006D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.260000000000D+02
+ 8.743800000000D+04 4.000000000000D+00
+10 06 1 2 1 59 44.0 7.641594856977D-05 6.821210263297D-13 0.000000000000D+00
+ 6.500000000000D+01 1.418437500000D+02 4.065526488354D-09 1.987482800168D+00
+ 7.512047886848D-06 6.803027004935D-03 8.666887879372D-06 5.153796894073D+03
+ 9.358400000000D+04-1.583248376846D-07-2.277139011614D+00 1.080334186554D-07
+ 9.756477601025D-01 2.230000000000D+02 3.586946788560D-01-7.841040896541D-09
+ 9.250385315679D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 6.500000000000D+01
+ 8.752800000000D+04 4.000000000000D+00
+ 8 06 1 2 2 0 0.0-5.206791684031D-05-1.364242052659D-12 0.000000000000D+00
+ 2.150000000000D+02-1.506875000000D+02 3.985880313628D-09-1.236422356720D+00
+ -8.018687367439D-06 9.588934481144D-03 7.519498467445D-06 5.153684452057D+03
+ 9.360000000000D+04-1.378357410431D-07-1.628951761865D-01-7.823109626770D-08
+ 9.716415764975D-01 2.409375000000D+02 2.621754046077D+00-7.931044645558D-09
+ -9.500395729616D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.725290298462D-09 4.710000000000D+02
+ 8.773800000000D+04 4.000000000000D+00
+15 06 1 2 2 0 0.0 5.434667691588D-04 5.798028723802D-12 0.000000000000D+00
+ 3.800000000000D+01 2.518750000000D+01 4.574476259583D-09-1.111851618500D+00
+ 1.009553670883D-06 9.261547122151D-03 1.087784767151D-05 5.153721338272D+03
+ 9.360000000000D+04 9.313225746155D-09 3.014178197192D+00-1.322478055954D-07
+ 9.589875999000D-01 1.725312500000D+02 2.538676329831D+00-7.931758961027D-09
+ -4.943063041274D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 2.940000000000D+02
+ 8.947800000000D+04 4.000000000000D+00
+18 06 1 2 2 0 0.0-2.122810110450D-04-2.387423592154D-12 0.000000000000D+00
+ 6.100000000000D+01 1.675937500000D+02 4.323037214709D-09-2.765889253818D+00
+ 8.588656783104D-06 6.692082737572D-03 8.190050721169D-06 5.153659778595D+03
+ 9.360000000000D+04-5.215406417847D-08-2.253223139079D+00-1.322478055954D-07
+ 9.596272652189D-01 2.211250000000D+02-2.691654928563D+00-7.922830017672D-09
+ 1.117903708034D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 3.170000000000D+02
+ 9.049800000000D+04 4.000000000000D+00
+ 6 06 1 2 1 59 44.0 1.750318333507D-04 4.433786671143D-11 0.000000000000D+00
+ 4.100000000000D+01 7.625000000000D+00 5.614519581562D-09-1.289833606976D+00
+ 6.295740604401D-07 5.970446858555D-03 4.969537258148D-06 5.153617691040D+03
+ 9.358400000000D+04 4.656612873077D-08 1.860967777989D+00 1.806765794754D-07
+ 9.334787192956D-01 2.678750000000D+02-1.861376220328D+00-8.526069430729D-09
+ 2.096515899731D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 4.100000000000D+01
+ 9.160800000000D+04 4.000000000000D+00
+ 6 06 1 2 3 59 44.0 1.753508113325D-04 4.433786671143D-11 0.000000000000D+00
+ 4.200000000000D+01 1.168750000000D+01 5.597376010321D-09-2.395452999890D-01
+ 6.798654794693D-07 5.970922764391D-03 5.047768354416D-06 5.153618864059D+03
+ 1.007840000000D+05-6.519258022308D-08 1.860905723930D+00 1.005828380585D-07
+ 9.334799276659D-01 2.695000000000D+02-1.861441700541D+00-8.620359072557D-09
+ 2.232235838726D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 4.200000000000D+01
+ 9.361800000000D+04 4.000000000000D+00
+ 8 06 1 2 4 0 0.0-5.207816138864D-05-1.364242052659D-12 0.000000000000D+00
+ 2.160000000000D+02-1.516562500000D+02 4.108028258723D-09-1.863976090543D-01
+ -8.121132850647D-06 9.588242974132D-03 6.852671504021D-06 5.153681682587D+03
+ 1.008000000000D+05 1.434236764908D-07-1.629513200566D-01-2.048909664154D-07
+ 9.716398063666D-01 2.546250000000D+02 2.621901069344D+00-8.045335120501D-09
+ -3.303709041314D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.725290298462D-09 4.720000000000D+02
+ 9.361800000000D+04 4.000000000000D+00
+10 06 1 2 3 59 44.0 7.642060518265D-05 6.821210263297D-13 0.000000000000D+00
+ 6.600000000000D+01 1.430312500000D+02 4.055883229531D-09 3.037695134893D+00
+ 7.454305887222D-06 6.804804201238D-03 9.380280971527D-06 5.153793378830D+03
+ 1.007840000000D+05-8.754432201385D-08-2.277195181817D+00-6.705522537231D-08
+ 9.756493517574D-01 2.080937500000D+02 3.585853827834D-01-7.682462862558D-09
+ 1.453631978178D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 6.600000000000D+01
+ 9.361800000000D+04 4.000000000000D+00
+15 06 1 2 4 0 0.0 5.435086786747D-04 5.798028723802D-12 0.000000000000D+00
+ 3.900000000000D+01 1.862500000000D+01 4.509473551960D-09-6.172285004445D-02
+ 8.661299943924D-07 9.262065403163D-03 1.049041748047D-05 5.153721935272D+03
+ 1.008000000000D+05 8.009374141693D-08 3.014121169719D+00-9.685754776001D-08
+ 9.589839704002D-01 1.756875000000D+02 2.538699816980D+00-7.962831683902D-09
+ -5.175215568501D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-2.328306436539D-09 2.950000000000D+02
+ 9.361800000000D+04 4.000000000000D+00
+18 06 1 2 4 0 0.0-2.122977748513D-04-2.387423592154D-12 0.000000000000D+00
+ 6.200000000000D+01 1.513437500000D+02 4.428755904031D-09-1.715865379515D+00
+ 7.849186658859D-06 6.693912320770D-03 7.819384336472D-06 5.153656011581D+03
+ 1.008000000000D+05 7.450580596924D-08-2.253280984323D+00-5.029141902924D-08
+ 9.596284179983D-01 2.293125000000D+02-2.691487915984D+00-7.967117576712D-09
+ 2.210806374674D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 3.180000000000D+02
+ 9.361800000000D+04 4.000000000000D+00
+21 06 1 2 3 59 44.0 1.640464179218D-04 3.865352482535D-12 0.000000000000D+00
+ 2.270000000000D+02 9.250000000000D+00 4.832701301407D-09-3.445266844507D-01
+ 5.215406417847D-07 1.051810767967D-02 9.916722774506D-06 5.153742361069D+03
+ 1.007840000000D+05 1.881271600723D-07 2.978894716796D+00 8.381903171539D-08
+ 9.454789134147D-01 1.794062500000D+02-3.028491292590D+00-8.141767708734D-09
+ -5.407368095729D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.270000000000D+02
+ 9.361800000000D+04 4.000000000000D+00
+26 06 1 2 4 0 0.0-7.652211934328D-06-7.275957614183D-12 0.000000000000D+00
+ 5.300000000000D+01 2.234375000000D+01 4.352324148913D-09 1.345178416538D+00
+ 1.249834895134D-06 1.676454499830D-02 5.140900611877D-07 5.153651220322D+03
+ 1.008000000000D+05-2.011656761169D-07-1.227353075085D+00 2.719461917877D-07
+ 9.885133360968D-01 3.882812500000D+02 7.471448071573D-01-8.484639133562D-09
+ -1.132190017402D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 5.300000000000D+01
+ 9.361800000000D+04 4.000000000000D+00
+29 06 1 2 4 0 0.0 4.828548990190D-04 1.477928890381D-11 0.000000000000D+00
+ 1.100000000000D+02 2.990625000000D+01 4.300893435189D-09-2.971890023651D+00
+ 1.702457666397D-06 9.275097283535D-03-3.632158041000D-07 5.153689065933D+03
+ 1.008000000000D+05 3.725290298462D-09-1.261560756246D+00 2.365559339523D-07
+ 9.852521566899D-01 3.977187500000D+02-1.012501005725D+00-8.166768750128D-09
+ 1.003613233091D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.100000000000D+02
+ 9.361800000000D+04 4.000000000000D+00
+ 9 06 1 2 3 59 44.0 1.925975084305D-06 1.477928890381D-12 0.000000000000D+00
+ 3.400000000000D+01-1.314062500000D+02 4.544832167645D-09-5.261677221633D-01
+ -6.852671504021D-06 1.744334911928D-02 6.360933184624D-06 5.153662851334D+03
+ 1.007840000000D+05-1.657754182816D-07-2.402699930325D-01 1.769512891769D-07
+ 9.590552481578D-01 2.555000000000D+02 1.211423736090D+00-8.500711231601D-09
+ -2.889406069646D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 2.900000000000D+02
+ 9.373800000000D+04 4.000000000000D+00
+22 06 1 2 4 0 0.0 5.943980067968D-05 2.273736754432D-12 0.000000000000D+00
+ 4.500000000000D+01 1.552812500000D+02 4.462328731046D-09 2.848379487033D+00
+ 7.990747690201D-06 4.997392999940D-03 7.834285497665D-06 5.153690187454D+03
+ 1.008000000000D+05 9.499490261078D-08-2.244829930406D+00-3.352761268616D-08
+ 9.571238100828D-01 2.267812500000D+02-1.563034103947D+00-7.949974005471D-09
+ 1.178620522847D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 4.500000000000D+01
+ 9.439800000000D+04 4.000000000000D+00
+ 3 06 1 2 4 0 0.0 6.332853808999D-05 3.069544618484D-12 0.000000000000D+00
+ 1.200000000000D+02 1.368750000000D+01 5.782026558900D-09 1.862876488169D+00
+ 6.835907697678D-07 7.780030136928D-03 5.280598998070D-06 5.153648807526D+03
+ 1.008000000000D+05-1.285225152969D-07 1.803428006141D+00 1.303851604462D-08
+ 9.259528191602D-01 2.589687500000D+02 6.565639625587D-01-8.603215501315D-09
+ 2.507247294057D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.760000000000D+02
+ 9.520800000000D+04 4.000000000000D+00
+15 06 1 2 3 59 44.0 5.434975028038D-04 5.798028723802D-12 0.000000000000D+00
+ 6.000000000000D+01 1.862500000000D+01 4.509473551960D-09-6.405559141821D-02
+ 8.661299943924D-07 9.262067032978D-03 1.049041748047D-05 5.153721960068D+03
+ 1.007840000000D+05 8.009374141693D-08 3.014121256032D+00-9.685754776001D-08
+ 9.589839923440D-01 1.756875000000D+02 2.538698750513D+00-7.962831683902D-09
+ -5.175215568501D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 6.000000000000D+01
+ 9.634800000000D+04 4.000000000000D+00
+14 06 1 2 4 0 0.0-2.160388976336D-05 5.684341886081D-13 0.000000000000D+00
+ 1.990000000000D+02 1.615625000000D+01 4.322322899241D-09 2.175049636256D+00
+ 7.711350917816D-07 2.383633400314D-03-3.837049007416D-07 5.153598846436D+03
+ 1.008000000000D+05 1.490116119385D-08-1.240897136392D+00-1.154839992523D-07
+ 9.845491133710D-01 3.992187500000D+02-2.001412979684D+00-8.312131947945D-09
+ -2.500104139373D-12 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-09 4.550000000000D+02
+ 9.904800000000D+04 4.000000000000D+00
+ 3 06 1 2 6 0 0.0 6.335042417049D-05 3.069544618484D-12 0.000000000000D+00
+ 1.150000000000D+02 1.431250000000D+01 5.671307661300D-09 2.913053335427D+00
+ 7.282942533493D-07 7.779690437019D-03 5.185604095459D-06 5.153649543762D+03
+ 1.080000000000D+05-7.450580596924D-09 1.803366475807D+00-6.332993507385D-08
+ 9.259553236759D-01 2.620312500000D+02 6.565918443144D-01-8.465352615916D-09
+ 2.707255625206D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-4.190951585770D-09 6.270000000000D+02
+ 1.008180000000D+05 4.000000000000D+00
+ 9 06 1 2 6 0 0.0 1.936685293913D-06 1.477928890381D-12 0.000000000000D+00
+ 3.500000000000D+01-1.377812500000D+02 4.666622955006D-09 5.263790450686D-01
+ -7.092952728271D-06 1.744095550384D-02 5.748122930527D-06 5.153658212662D+03
+ 1.080000000000D+05-2.253800630569D-07-2.403308474987D-01 1.862645149231D-08
+ 9.590529762460D-01 2.721562500000D+02 1.211399439946D+00-8.486782079967D-09
+ -3.939449808183D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 3.500000000000D+01
+ 1.008180000000D+05 4.000000000000D+00
+14 06 1 2 6 0 0.0-2.160016447306D-05 5.684341886081D-13 0.000000000000D+00
+ 2.000000000000D+02 2.184375000000D+01 4.346966782901D-09-3.057874565435D+00
+ 1.255422830582D-06 2.382850623690D-03-1.750886440277D-07 5.153600116730D+03
+ 1.080000000000D+05 9.685754776001D-08-1.240956921465D+00-7.823109626770D-08
+ 9.845491528698D-01 3.939375000000D+02-2.001448607591D+00-8.303203004591D-09
+ 1.821504444400D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-09 4.560000000000D+02
+ 1.008180000000D+05 4.000000000000D+00
+15 06 1 2 5 59 44.0 5.435389466584D-04 5.798028723802D-12 0.000000000000D+00
+ 6.100000000000D+01 1.068750000000D+01 4.439827793792D-09 9.860858941841D-01
+ 5.345791578293D-07 9.263161919080D-03 1.020357012749D-05 5.153723903656D+03
+ 1.079840000000D+05 1.788139343262D-07 3.014064111526D+00-1.303851604462D-08
+ 9.589805076731D-01 1.808750000000D+02 2.538707187162D+00-7.893543083468D-09
+ -5.371652322309D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 6.100000000000D+01
+ 1.008180000000D+05 4.000000000000D+00
+18 06 1 2 6 0 0.0-2.123150043190D-04-2.387423592154D-12 0.000000000000D+00
+ 6.300000000000D+01 1.347187500000D+02 4.369467720155D-09-6.653342134977D-01
+ 7.161870598793D-06 6.694238516502D-03 8.162111043930D-06 5.153660266876D+03
+ 1.080000000000D+05 1.061707735062D-07-2.253338220993D+00 6.146728992462D-08
+ 9.596295751665D-01 2.225312500000D+02-2.691830468492D+00-8.049621013311D-09
+ 1.732215010851D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 3.190000000000D+02
+ 1.008180000000D+05 4.000000000000D+00
+21 06 1 2 6 0 0.0 1.640738919377D-04 3.865352482535D-12 0.000000000000D+00
+ 2.280000000000D+02 1.125000000000D+00 4.830558355002D-09 7.080005850091D-01
+ 1.452863216400D-07 1.051748299506D-02 1.001358032227D-05 5.153740995407D+03
+ 1.080000000000D+05 1.005828380585D-07 2.978836113761D+00 2.067536115646D-07
+ 9.454749898684D-01 1.787812500000D+02-3.028543950326D+00-8.114980878669D-09
+ -5.832385799422D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.280000000000D+02
+ 1.008180000000D+05 4.000000000000D+00
+22 06 1 2 6 0 0.0 5.945563316345D-05 2.273736754432D-12 0.000000000000D+00
+ 4.600000000000D+01 1.426875000000D+02 4.370896351092D-09-2.384457297989D+00
+ 7.435679435730D-06 4.995676339604D-03 8.203089237213D-06 5.153693695068D+03
+ 1.080000000000D+05 4.842877388000D-08-2.244887550360D+00 7.078051567078D-08
+ 9.571250506373D-01 2.180000000000D+02-1.563212714541D+00-7.934616222900D-09
+ 2.017941198208D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 4.600000000000D+01
+ 1.008180000000D+05 4.000000000000D+00
+26 06 1 2 6 0 0.0-7.704831659794D-06-7.275957614183D-12 0.000000000000D+00
+ 4.800000000000D+01 3.503125000000D+01 4.254462929744D-09 2.395466866890D+00
+ 1.534819602966D-06 1.676461903844D-02 4.041939973831D-07 5.153648357391D+03
+ 1.080000000000D+05-1.955777406693D-07-1.227414096324D+00-2.346932888031D-07
+ 9.885151252456D-01 3.878750000000D+02 7.470517304575D-01-8.058907114400D-09
+ 9.500395729616D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 3.040000000000D+02
+ 1.008180000000D+05 4.000000000000D+00
+29 06 1 2 6 0 0.0 4.829615354538D-04 1.477928890381D-11 0.000000000000D+00
+ 1.050000000000D+02 4.487500000000D+01 4.386254133662D-09-1.921905485752D+00
+ 2.566725015640D-06 9.277490200475D-03 6.295740604401D-07 5.153683540344D+03
+ 1.080000000000D+05-1.993030309677D-07-1.261619686975D+00 2.216547727585D-07
+ 9.852525107161D-01 3.825312500000D+02-1.012313468405D+00-8.266772915703D-09
+ 1.153619481453D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 3.610000000000D+02
+ 1.008180000000D+05 4.000000000000D+00
+19 06 1 2 6 0 0.0-2.441136166453D-05 6.821210263297D-13 0.000000000000D+00
+ 1.610000000000D+02 6.218750000000D+00 5.021637742797D-09-1.993177289252D+00
+ 4.693865776062D-07 3.113192156889D-03 5.230307579041D-06 5.153763256073D+03
+ 1.080000000000D+05 7.264316082001D-08 1.950312658693D+00 9.685754776001D-08
+ 9.580066943099D-01 2.765937500000D+02-1.362788215382D+00-8.175697693483D-09
+ 8.357490980188D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.443549990654D-08 6.730000000000D+02
+ 1.013280000000D+05 4.000000000000D+00
+ 5 06 1 2 6 0 0.0 4.504299722612D-04 2.387423592154D-11 0.000000000000D+00
+ 7.800000000000D+01-3.915625000000D+01 4.846273295307D-09-4.669461767654D-01
+ -2.065673470497D-06 6.785426754504D-03 1.111626625061D-05 5.153688499451D+03
+ 1.080000000000D+05 2.235174179077D-08 7.639291266802D-01 9.872019290924D-08
+ 9.374465217819D-01 1.530312500000D+02 1.039403172434D+00-8.153196756228D-09
+ 4.296607542379D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.340000000000D+02
+ 1.032780000000D+05 4.000000000000D+00
+30 06 1 2 6 0 0.0 9.699258953333D-06 5.798028723802D-12 0.000000000000D+00
+ 1.380000000000D+02-3.190625000000D+01 4.683766526247D-09-1.191396317364D+00
+ -1.676380634308D-06 8.713891496882D-03 1.097656786442D-05 5.153612598419D+03
+ 1.080000000000D+05 2.235174179077D-08 8.094034377821D-01 1.993030309677D-07
+ 9.440671506548D-01 1.591562500000D+02 1.296068186397D+00-8.051406801982D-09
+ 4.160887603384D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-8.381903171539D-09 3.940000000000D+02
+ 1.055880000000D+05 4.000000000000D+00
+ 1 06 1 2 6 0 0.0 2.835551276803D-05 2.501110429876D-12 0.000000000000D+00
+ 1.940000000000D+02 1.093750000000D+01 4.303036381594D-09 2.341195747034D+00
+ 5.122274160385D-07 6.317115272395D-03-3.539025783539D-07 5.153675729752D+03
+ 1.080000000000D+05 9.499490261078D-08-1.213649486950D+00-1.005828380585D-07
+ 9.861437438166D-01 3.984375000000D+02-1.720905259572D+00-8.195698526598D-09
+ -3.214419607765D-12 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.259629011154D-09 4.500000000000D+02
+ 1.057080000000D+05 4.000000000000D+00
+25 06 1 2 6 0 0.0-9.186472743750D-05-1.233502189280D-10 2.775557561563D-17
+ 3.100000000000D+01-1.517500000000D+02 4.662337062196D-09 1.251159821246D+00
+ -8.268281817436D-06 1.238269521855D-02 5.960464477539D-06 5.153675428391D+03
+ 1.080000000000D+05-6.146728992462D-08-2.939253472619D-01-3.110617399216D-07
+ 9.523375678366D-01 2.624375000000D+02-1.408690219362D+00-8.323203837706D-09
+ -3.325138505366D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 3.100000000000D+01
+ 1.072080000000D+05 4.000000000000D+00
+11 06 1 2 5 59 44.0 2.958988770843D-04 3.069544618484D-12 0.000000000000D+00
+ 1.470000000000D+02-7.031250000000D+00 6.039537285256D-09 1.423704639150D+00
+ -4.358589649200D-07 5.164754809812D-03 8.601695299149D-06 5.153691263199D+03
+ 1.079840000000D+05 2.421438694000D-08 2.800938604416D+00 8.381903171539D-08
+ 8.991703132985D-01 1.795000000000D+02 3.146866461562D-01-8.670003997610D-09
+ -6.575273886550D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.470000000000D+02
+ 1.075080000000D+05 4.000000000000D+00
+ 1 06 1 2 8 0 0.0 2.837320789695D-05 2.501110429876D-12 0.000000000000D+00
+ 1.950000000000D+02 2.034375000000D+01 4.276606709264D-09-2.891879272734D+00
+ 1.076608896255D-06 6.315199658275D-03 1.899898052216D-07 5.153679395676D+03
+ 1.152000000000D+05 1.993030309677D-07-1.213709102324D+00 5.029141902924D-08
+ 9.861438974230D-01 3.878437500000D+02-1.720838190629D+00-8.223199672131D-09
+ 1.103617398666D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-3.259629011154D-09 1.950000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+ 5 06 1 2 8 0 0.0 4.506018012762D-04 2.387423592154D-11 0.000000000000D+00
+ 7.900000000000D+01-5.040625000000D+01 4.878060333650D-09 5.831597335951D-01
+ -2.568587660789D-06 6.784272962250D-03 1.124292612076D-05 5.153686367035D+03
+ 1.152000000000D+05-6.519258022308D-08 7.638708996148D-01 7.636845111847D-08
+ 9.374495046718D-01 1.512500000000D+02 1.039472744429D+00-8.117480982809D-09
+ 3.682296239562D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.350000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+ 9 06 1 2 8 0 0.0 1.947395503521D-06 1.477928890381D-12 0.000000000000D+00
+ 3.600000000000D+01-1.610312500000D+02 4.544832167645D-09 1.576392870588D+00
+ -8.609145879745D-06 1.744185283314D-02 5.491077899933D-06 5.153664171219D+03
+ 1.152000000000D+05-2.495944499969D-07-2.403923675927D-01-2.905726432800D-07
+ 9.590510027695D-01 2.793437500000D+02 1.211576381351D+00-8.290345326160D-09
+ -2.950122884460D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 3.600000000000D+01
+ 1.080180000000D+05 4.000000000000D+00
+11 06 1 2 8 0 0.0 2.959207631648D-04 3.069544618484D-12 0.000000000000D+00
+ 1.480000000000D+02-1.506250000000D+01 5.929175545389D-09 2.476022287078D+00
+ -7.394701242447D-07 5.164269125089D-03 8.609145879745D-06 5.153693380356D+03
+ 1.152000000000D+05-7.823109626770D-08 2.800875813046D+00 1.862645149231D-08
+ 8.991661030202D-01 1.792500000000D+02 3.148832257731D-01-8.588572034213D-09
+ -5.832385799422D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.480000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+14 06 1 2 8 0 0.0-2.159643918276D-05 5.684341886081D-13 0.000000000000D+00
+ 2.010000000000D+02 2.678125000000D+01 4.320894268304D-09-2.007643713093D+00
+ 1.501291990280D-06 2.381990081631D-03 2.440065145493D-07 5.153601461411D+03
+ 1.152000000000D+05 1.303851604462D-08-1.241017408739D+00 8.940696716309D-08
+ 9.845499252906D-01 3.866562500000D+02-2.001455475991D+00-8.274630385855D-09
+ 1.689356082747D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-09 4.570000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+15 06 1 2 8 0 0.0 5.435808561742D-04 5.798028723802D-12 0.000000000000D+00
+ 6.200000000000D+01 1.250000000000D-01 4.423755695753D-09 2.038723052198D+00
+ 1.098960638046D-07 9.262905572541D-03 1.019798219204D-05 5.153721204758D+03
+ 1.152000000000D+05-1.676380634308D-08 3.014008707892D+00 1.061707735062D-07
+ 9.589765680347D-01 1.809062500000D+02 2.538553792886D+00-7.743893992840D-09
+ -6.807426413777D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 6.200000000000D+01
+ 1.080180000000D+05 4.000000000000D+00
+18 06 1 2 8 0 0.0-2.123317681253D-04-2.387423592154D-12 0.000000000000D+00
+ 6.400000000000D+01 1.284375000000D+02 4.421612749348D-09 3.847477518196D-01
+ 6.763264536858D-06 6.691718241200D-03 9.164214134216D-06 5.153655326843D+03
+ 1.152000000000D+05 3.911554813385D-08-2.253396180344D+00 1.266598701477D-07
+ 9.596307455010D-01 2.043125000000D+02-2.691722212554D+00-8.049978171046D-09
+ 1.500062483624D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 3.200000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+22 06 1 2 8 0 0.0 5.947193130851D-05 2.273736754432D-12 0.000000000000D+00
+ 4.100000000000D+01 1.383437500000D+02 4.388397080067D-09-1.334510099611D+00
+ 7.357448339462D-06 4.995337687433D-03 8.966773748398D-06 5.153691890717D+03
+ 1.152000000000D+05-4.470348358154D-08-2.244944822140D+00 1.229345798492D-07
+ 9.571260702912D-01 2.070312500000D+02-1.562992619979D+00-8.024262814183D-09
+ 1.889364413897D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.816079020500D-08 2.970000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+25 06 1 2 8 0 0.0-9.275181218982D-05-1.230091584148D-10 2.775557561563D-17
+ 3.200000000000D+01-1.463750000000D+02 4.627692761979D-09 2.301188182319D+00
+ -7.528811693192D-06 1.238264190033D-02 4.874542355537D-06 5.153678890228D+03
+ 1.152000000000D+05 1.396983861923D-07-2.939838142459D-01-1.229345798492D-07
+ 9.523359659413D-01 2.755312500000D+02-1.408539727516D+00-8.091408468212D-09
+ -3.807301446530D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 3.200000000000D+01
+ 1.080180000000D+05 4.000000000000D+00
+30 06 1 2 8 0 0.0 9.741168469191D-06 5.798028723802D-12 0.000000000000D+00
+ 1.390000000000D+02-4.578125000000D+01 4.799842789861D-09-1.412840711058D-01
+ -2.318993210793D-06 8.712257375009D-03 1.100637018681D-05 5.153609041214D+03
+ 1.152000000000D+05-5.960464477539D-08 8.093448479130D-01 9.872019290924D-08
+ 9.440699419025D-01 1.587812500000D+02 1.296176696882D+00-8.131052976708D-09
+ 4.321608583773D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-8.381903171539D-09 3.950000000000D+02
+ 1.080180000000D+05 4.000000000000D+00
+20 06 1 2 8 0 0.0-3.639562055469D-05 1.023181539495D-12 0.000000000000D+00
+ 1.910000000000D+02 1.439062500000D+02 4.359110145863D-09 1.954802222616D-01
+ 7.230788469315D-06 2.524445531890D-03 8.657574653625D-06 5.153577089310D+03
+ 1.152000000000D+05-9.313225746155D-09-2.306167836964D+00 1.303851604462D-08
+ 9.592931288779D-01 2.135625000000D+02 1.352698210453D+00-8.007833558410D-09
+ 1.257195224370D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.910000000000D+02
+ 1.129080000000D+05 4.000000000000D+00
+ 1 06 1 2 7 59 44.0 2.837134525180D-05 2.387423592154D-12 0.000000000000D+00
+ 2.160000000000D+02 2.034375000000D+01 4.276606709264D-09-2.894215141826D+00
+ 1.076608896255D-06 6.315193139017D-03 1.899898052216D-07 5.153679376602D+03
+ 1.151840000000D+05 1.993030309677D-07-1.213708977976D+00 5.029141902924D-08
+ 9.861439047376D-01 3.878437500000D+02-1.720835947976D+00-8.223199672131D-09
+ 1.103617398666D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 2.160000000000D+02
+ 1.137780000000D+05 4.000000000000D+00
+ 1 06 1 2 9 59 44.0 2.838904038072D-05 2.387423592154D-12 0.000000000000D+00
+ 2.170000000000D+02 3.337500000000D+01 4.258391664820D-09-1.844265598391D+00
+ 1.918524503708D-06 6.316065904684D-03 2.495944499969D-07 5.153676326752D+03
+ 1.223840000000D+05 7.078051567078D-08-1.213768407560D+00 1.247972249985D-07
+ 9.861452374560D-01 3.856875000000D+02-1.720609273208D+00-8.186769583243D-09
+ 1.953652806053D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 2.170000000000D+02
+ 1.152180000000D+05 4.000000000000D+00
+ 5 06 1 2 10 0 0.0 4.507736302912D-04 2.387423592154D-11 0.000000000000D+00
+ 8.000000000000D+01-6.425000000000D+01 4.771627328860D-09 1.633027592074D+00
+ -3.375113010406D-06 6.785895326175D-03 1.197680830956D-05 5.153691246033D+03
+ 1.224000000000D+05-1.769512891769D-07 7.638121590652D-01-2.235174179077D-08
+ 9.374526294649D-01 1.366562500000D+02 1.039778378737D+00-8.029263022462D-09
+ 4.446613790741D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 3.360000000000D+02
+ 1.152180000000D+05 4.000000000000D+00
+14 06 1 2 10 0 0.0-2.159271389246D-05 5.684341886081D-13 0.000000000000D+00
+ 2.020000000000D+02 4.018750000000D+01 4.399111812093D-09-9.583594316542D-01
+ 2.196058630943D-06 2.382083097473D-03 7.990747690201D-07 5.153597257614D+03
+ 1.224000000000D+05-7.450580596924D-08-1.241077046058D+00 9.126961231232D-08
+ 9.845509493332D-01 3.771250000000D+02-2.000514224259D+00-8.324275310908D-09
+ 1.732215010851D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-9.313225746155D-09 4.580000000000D+02
+ 1.152180000000D+05 4.000000000000D+00
+20 06 1 2 10 0 0.0-3.638770431280D-05 1.023181539495D-12 0.000000000000D+00
+ 1.920000000000D+02 1.282500000000D+02 4.188745906652D-09 1.245042477154D+00
+ 6.694346666336D-06 2.526335068978D-03 8.929520845413D-06 5.153581897736D+03
+ 1.224000000000D+05-4.284083843231D-08-2.306225578341D+00-1.490116119385D-08
+ 9.592941412172D-01 2.042812500000D+02 1.353372792701D+00-7.985332621156D-09
+ 1.453631978178D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.920000000000D+02
+ 1.152180000000D+05 4.000000000000D+00
+22 06 1 2 10 0 0.0 5.948776379228D-05 2.273736754432D-12 0.000000000000D+00
+ 4.200000000000D+01 1.367500000000D+02 4.366967616016D-09-2.844831019774D-01
+ 7.065013051033D-06 4.995668423362D-03 9.510666131973D-06 5.153691343307D+03
+ 1.224000000000D+05-1.005828380585D-07-2.245002919006D+00 4.656612873077D-08
+ 9.571273459558D-01 1.960625000000D+02-1.562849613885D+00-8.062121534008D-09
+ 1.882221259213D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.816079020500D-08 2.980000000000D+02
+ 1.152180000000D+05 4.000000000000D+00
+25 06 1 2 10 0 0.0-9.363656863570D-05-1.226680979016D-10 2.775557561563D-17
+ 3.300000000000D+01-1.495937500000D+02 4.738768817314D-09-2.931777319013D+00
+ -7.534399628639D-06 1.238424773328D-02 4.425644874573D-06 5.153675773621D+03
+ 1.224000000000D+05 2.067536115646D-07-2.940431867761D-01 1.117587089539D-07
+ 9.523337788788D-01 2.872812500000D+02-1.408579006867D+00-8.115338036403D-09
+ -1.917937032633D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 3.300000000000D+01
+ 1.152180000000D+05 4.000000000000D+00
+30 06 1 2 10 0 0.0 9.783077985048D-06 5.798028723802D-12 0.000000000000D+00
+ 1.400000000000D+02-5.681250000000D+01 4.730911347161D-09 9.087756871151D-01
+ -2.885237336159D-06 8.714443189092D-03 1.191906630993D-05 5.153613918304D+03
+ 1.224000000000D+05-1.415610313416D-07 8.092863224123D-01 6.519258022308D-08
+ 9.440729862350D-01 1.427812500000D+02 1.296338330312D+00-8.104623304378D-09
+ 4.353752779850D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-8.381903171539D-09 3.960000000000D+02
+ 1.152180000000D+05 4.000000000000D+00
+16 06 1 2 10 0 0.0 2.015382051468D-05 1.591615728103D-12 0.000000000000D+00
+ 6.100000000000D+01-4.012500000000D+01 4.320537110570D-09 1.547920287653D+00
+ -2.093613147736D-06 2.995365299284D-03 1.100450754166D-05 5.153635931015D+03
+ 1.224000000000D+05 8.009374141693D-08 8.511535968666D-01-3.725290298462D-08
+ 9.618829634749D-01 1.635937500000D+02-9.506220476926D-01-7.751394305258D-09
+ 3.896590880079D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-9.778887033463D-09 5.730000000000D+02
+ 1.154280000000D+05 4.000000000000D+00
+16 06 1 2 9 59 44.0 2.015475183725D-05 1.591615728103D-12 0.000000000000D+00
+ 8.500000000000D+01-4.012500000000D+01 4.320537110570D-09 1.545587895917D+00
+ -2.093613147736D-06 2.995365299284D-03 1.100450754166D-05 5.153635921478D+03
+ 1.223840000000D+05 8.009374141693D-08 8.511537036596D-01-3.725290298462D-08
+ 9.618829590862D-01 1.635937500000D+02-9.506233716334D-01-7.751394305258D-09
+ 3.896590880079D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 8.500000000000D+01
+ 1.160880000000D+05 4.000000000000D+00
+ 6 06 1 2 10 0 0.0 1.763077452779D-04 4.422417987371D-11 0.000000000000D+00
+ 4.500000000000D+01 1.315625000000D+01 5.537016353242D-09 2.913494713904D+00
+ 6.146728992462D-07 5.972034414299D-03 5.431473255157D-06 5.153619960785D+03
+ 1.224000000000D+05 5.960464477539D-08 1.860722038473D+00-5.401670932770D-08
+ 9.334847260372D-01 2.576562500000D+02-1.861484675223D+00-8.333204254263D-09
+ 1.600066649198D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 4.500000000000D+01
+ 1.164780000000D+05 4.000000000000D+00
+23 06 1 2 10 0 0.0 1.563425175846D-04-1.705302565824D-12 0.000000000000D+00
+ 0.000000000000D+00 3.240625000000D+01 4.713053460452D-09-9.211212791186D-01
+ 1.482665538788D-06 4.179501091130D-03 3.259629011154D-07 5.153607240677D+03
+ 1.224000000000D+05 3.725290298462D-08-1.252116714498D+00-2.235174179077D-08
+ 9.667808395368D-01 3.775000000000D+02 2.424042175932D+00-8.564999623756D-09
+ 1.925080187317D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 2.560000000000D+02
+ 1.179480000000D+05 4.000000000000D+00
+ 1 06 1 2 12 0 0.0 2.840673550963D-05 2.387423592154D-12 0.000000000000D+00
+ 2.180000000000D+02 3.875000000000D+01 4.342680890090D-09-7.918840311827D-01
+ 2.117827534676D-06 6.316299666651D-03 8.419156074524D-07 5.153674911499D+03
+ 1.296000000000D+05-1.564621925354D-07-1.213828486680D+00 5.401670932770D-08
+ 9.861456075743D-01 3.794062500000D+02-1.720478302541D+00-8.424279476483D-09
+ 2.157232714544D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.259629011154D-09 2.180000000000D+02
+ 1.224180000000D+05 4.000000000000D+00
+ 6 06 1 2 12 0 0.0 1.766262575984D-04 4.422417987371D-11 0.000000000000D+00
+ 4.600000000000D+01 1.446875000000D+01 5.544873823394D-09-2.319491239023D+00
+ 6.966292858124D-07 5.972165730782D-03 5.366280674934D-06 5.153619653702D+03
+ 1.296000000000D+05 8.568167686462D-08 1.860661880356D+00-2.048909664154D-08
+ 9.334859943872D-01 2.588125000000D+02-1.861462841171D+00-8.340704566681D-09
+ 1.850077063136D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 4.600000000000D+01
+ 1.224180000000D+05 4.000000000000D+00
+14 06 1 2 12 0 0.0-2.158898860216D-05 5.684341886081D-13 0.000000000000D+00
+ 2.030000000000D+02 4.762500000000D+01 4.352324148913D-09 9.210276655278D-02
+ 2.318993210793D-06 2.383019193076D-03 6.798654794693D-07 5.153599306107D+03
+ 1.296000000000D+05-5.215406417847D-08-1.241137741066D+00-2.235174179077D-08
+ 9.845520611510D-01 3.800937500000D+02-2.000750345088D+00-8.413921902191D-09
+ 2.242950570751D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-9.313225746155D-09 4.590000000000D+02
+ 1.224180000000D+05 4.000000000000D+00
+16 06 1 2 11 59 44.0 2.016592770815D-05 1.591615728103D-12 0.000000000000D+00
+ 8.600000000000D+01-4.746875000000D+01 4.417684014271D-09 2.595990582616D+00
+ -2.190470695496D-06 2.995066926815D-03 1.139752566814D-05 5.153635219574D+03
+ 1.295840000000D+05 1.396983861923D-07 8.510975510121D-01 6.146728992462D-08
+ 9.618858600527D-01 1.589687500000D+02-9.508220110390D-01-7.765323456891D-09
+ 4.589476884420D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 8.600000000000D+01
+ 1.224180000000D+05 4.000000000000D+00
+20 06 1 2 12 0 0.0-3.638025373220D-05 1.023181539495D-12 0.000000000000D+00
+ 1.930000000000D+02 1.239062500000D+02 4.163744865258D-09 2.296299405607D+00
+ 6.515532732010D-06 2.527198987082D-03 1.005455851555D-05 5.153576803207D+03
+ 1.296000000000D+05 8.195638656616D-08-2.306282633609D+00-1.862645149231D-09
+ 9.592957533529D-01 1.848437500000D+02 1.352351535441D+00-7.860684571922D-09
+ 1.428630936784D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.930000000000D+02
+ 1.224180000000D+05 4.000000000000D+00
+23 06 1 2 12 0 0.0 1.563304103911D-04-1.705302565824D-12 0.000000000000D+00
+ 1.000000000000D+00 4.228125000000D+01 4.653408118841D-09 1.291567011293D-01
+ 2.171844244003D-06 4.178538220003D-03 2.738088369370D-07 5.153605726242D+03
+ 1.296000000000D+05-1.490116119385D-08-1.252178541805D+00 0.000000000000D+00
+ 9.667824633759D-01 3.740625000000D+02 2.423986702079D+00-8.542855844236D-09
+ 2.353669468352D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 2.570000000000D+02
+ 1.224180000000D+05 4.000000000000D+00
+25 06 1 2 12 0 0.0-9.451853111386D-05-1.223270373885D-10 2.775557561563D-17
+ 3.400000000000D+01-1.441875000000D+02 4.807700260013D-09-1.881635827559D+00
+ -7.128342986107D-06 1.238483504858D-02 4.528090357780D-06 5.153674327850D+03
+ 1.296000000000D+05 1.247972249985D-07-2.941014650437D-01 3.185123205185D-07
+ 9.523318405123D-01 2.864687500000D+02-1.408538915597D+00-8.250700817664D-09
+ -2.310810540249D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 3.400000000000D+01
+ 1.224180000000D+05 4.000000000000D+00
+13 06 1 2 12 0 0.0 3.261910751462D-05 2.273736754432D-12 0.000000000000D+00
+ 3.500000000000D+01 2.984375000000D+01 4.097670684432D-09 9.122622246634D-01
+ 1.396983861923D-06 2.573238569312D-03 6.314367055893D-07 5.153609262466D+03
+ 1.296000000000D+05 7.450580596924D-09-1.228769127121D+00 9.685754776001D-08
+ 9.903286696785D-01 3.797187500000D+02 1.095168882546D+00-8.284273644678D-09
+ 1.828647599084D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.910000000000D+02
+ 1.229580000000D+05 4.000000000000D+00
+ 3 06 1 2 12 0 0.0 6.340444087982D-05 2.955857780762D-12 0.000000000000D+00
+ 1.440000000000D+02 1.734375000000D+01 5.848457897461D-09-2.195082581886D-01
+ 9.182840585709D-07 7.778131170198D-03 5.559995770454D-06 5.153649995804D+03
+ 1.296000000000D+05 2.235174179077D-08 1.803182619188D+00 7.636845111847D-08
+ 9.259595032329D-01 2.500937500000D+02 6.565777959121D-01-8.726792077347D-09
+ 1.739358165535D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.440000000000D+02
+ 1.237380000000D+05 4.000000000000D+00
+19 06 1 2 12 0 0.0-2.439925447106D-05 6.821210263297D-13 0.000000000000D+00
+ 1.890000000000D+02 9.062500000000D+00 5.021994900531D-09 1.157406467631D+00
+ 2.719461917877D-07 3.113998565823D-03 5.591660737991D-06 5.153765140533D+03
+ 1.296000000000D+05-3.539025783539D-08 1.950134599619D+00-8.195638656616D-08
+ 9.580077402963D-01 2.710312500000D+02-1.362985084657D+00-8.221056725725D-09
+ 3.500145795122D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 1.890000000000D+02
+ 1.279980000000D+05 4.000000000000D+00
+27 06 1 2 12 0 0.0 2.981629222631D-05 1.591615728103D-12 0.000000000000D+00
+ 1.220000000000D+02-1.521250000000D+02 4.522331230391D-09 2.838037027794D+00
+ -7.944181561470D-06 1.963197928853D-02 5.403533577919D-06 5.153724895477D+03
+ 1.296000000000D+05 9.685754776001D-08-2.629642002345D-01-3.017485141754D-07
+ 9.568776243767D-01 2.733125000000D+02-1.979587854077D+00-7.893185925733D-09
+ -2.392956819114D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 8.900000000000D+02
+ 1.283580000000D+05 4.000000000000D+00
+ 3 06 1 2 14 0 0.0 6.342586129904D-05 2.955857780762D-12 0.000000000000D+00
+ 1.450000000000D+02 1.890625000000D+01 5.900245768919D-09 8.306671437065D-01
+ 1.244246959686D-06 7.778407889418D-03 5.790963768959D-06 5.153650627136D+03
+ 1.368000000000D+05 3.725290298462D-09 1.803119854151D+00 7.450580596924D-08
+ 9.259607393987D-01 2.473750000000D+02 6.566075063153D-01-8.720720395866D-09
+ 1.642925577302D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.450000000000D+02
+ 1.296180000000D+05 4.000000000000D+00
+13 06 1 2 14 0 0.0 3.263540565968D-05 2.273736754432D-12 0.000000000000D+00
+ 3.600000000000D+01 4.678125000000D+01 4.068026592493D-09 1.963457687151D+00
+ 2.468004822731D-06 2.572906552814D-03 1.020729541779D-06 5.153604471207D+03
+ 1.368000000000D+05-5.215406417847D-08-1.228828831733D+00-1.490116119385D-08
+ 9.903306051191D-01 3.734062500000D+02 1.094192253065D+00-8.190698318319D-09
+ 2.460816788611D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 2.920000000000D+02
+ 1.296180000000D+05 4.000000000000D+00
+16 06 1 2 14 0 0.0 2.017710357904D-05 1.591615728103D-12 0.000000000000D+00
+ 8.700000000000D+01-5.175000000000D+01 4.382325398586D-09-2.634871470733D+00
+ -2.540647983551D-06 2.993953647092D-03 1.204013824463D-05 5.153637325287D+03
+ 1.368000000000D+05-1.303851604462D-08 8.510411994077D-01 8.754432201385D-08
+ 9.618898245607D-01 1.474375000000D+02-9.506090233329D-01-7.699249276065D-09
+ 5.625234313588D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 8.700000000000D+01
+ 1.296180000000D+05 4.000000000000D+00
+19 06 1 2 14 0 0.0-2.439459785819D-05 6.821210263297D-13 0.000000000000D+00
+ 1.900000000000D+02 8.968750000000D+00 5.110927176346D-09 2.207618691174D+00
+ 5.308538675308D-07 3.113940940239D-03 5.343928933144D-06 5.153764669418D+03
+ 1.368000000000D+05 3.539025783539D-08 1.950075704000D+00-6.891787052155D-08
+ 9.580082025784D-01 2.688125000000D+02-1.363068157923D+00-8.170340327470D-09
+ 3.357282701443D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 1.900000000000D+02
+ 1.296180000000D+05 4.000000000000D+00
+23 06 1 2 14 0 0.0 1.563183031976D-04-1.705302565824D-12 0.000000000000D+00
+ 2.000000000000D+00 5.106250000000D+01 4.618763818624D-09 1.179395791163D+00
+ 2.633780241013D-06 4.177564405836D-03 6.221234798431D-07 5.153604187012D+03
+ 1.368000000000D+05 3.725290298462D-08-1.252239868794D+00 0.000000000000D+00
+ 9.667844236861D-01 3.693437500000D+02 2.423972096305D+00-8.486424922233D-09
+ 2.364384200378D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.142041921616D-08 2.580000000000D+02
+ 1.296180000000D+05 4.000000000000D+00
+25 06 1 2 14 0 0.0-9.539816528559D-05-1.219859768753D-10 2.775557561563D-17
+ 2.900000000000D+01-1.456875000000D+02 4.927705258703D-09-8.315208076079D-01
+ -7.582828402519D-06 1.238486834336D-02 5.198642611504D-06 5.153672763824D+03
+ 1.368000000000D+05-1.974403858185D-07-2.941631621507D-01 6.705522537231D-08
+ 9.523288225123D-01 2.799687500000D+02-1.408469586446D+00-8.631788120051D-09
+ -1.532206679701D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 6.300000000000D+01-7.450580596924D-09 2.850000000000D+02
+ 1.296180000000D+05 4.000000000000D+00
+27 06 1 2 14 0 0.0 2.982839941978D-05 1.591615728103D-12 0.000000000000D+00
+ 1.230000000000D+02-1.530937500000D+02 4.494830084858D-09-2.395025460618D+00
+ -8.059665560722D-06 1.963340374641D-02 4.384666681290D-06 5.153722099304D+03
+ 1.368000000000D+05 2.942979335785D-07-2.630227345126D-01-2.421438694000D-08
+ 9.568766690912D-01 2.844375000000D+02-1.979559624147D+00-7.957474317889D-09
+ 1.892935991239D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 3.790000000000D+02
+ 1.296180000000D+05 4.000000000000D+00
+15 06 1 2 14 0 0.0 5.437075160444D-04 5.798028723802D-12 0.000000000000D+00
+ 8.800000000000D+01 1.065625000000D+01 4.473757778540D-09-1.093990613215D+00
+ 3.911554813385D-07 9.263546206057D-03 1.018866896629D-05 5.153719650269D+03
+ 1.368000000000D+05-8.940696716309D-08 3.013839816926D+00-8.381903171539D-08
+ 9.589615116819D-01 1.841250000000D+02 2.538538247919D+00-7.914615389785D-09
+ -6.118111986779D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 8.800000000000D+01
+ 1.313580000000D+05 4.000000000000D+00
+ 8 06 1 2 13 59 44.0-5.212659016252D-05-1.364242052659D-12 0.000000000000D+00
+ 2.000000000000D+00-1.431875000000D+02 4.247676932794D-09-1.221056820501D+00
+ -7.767230272293D-06 9.588985703886D-03 6.822869181633D-06 5.153683492661D+03
+ 1.367840000000D+05-4.656612873077D-08-1.632411607010D-01-1.322478055954D-07
+ 9.716296112905D-01 2.560312500000D+02 2.621905923306D+00-8.116052351872D-09
+ -1.214336296267D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 2.000000000000D+00
+ 1.331880000000D+05 4.000000000000D+00
+28 06 1 2 14 0 0.0 3.587454557419D-05-6.821210263297D-13 0.000000000000D+00
+ 2.060000000000D+02-3.878125000000D+01 4.329108896191D-09 2.707905436594D+00
+ -2.058222889900D-06 1.077308494132D-02 1.160614192486D-05 5.153664690018D+03
+ 1.368000000000D+05 1.117587089539D-08 8.608323652833D-01-1.862645149231D-07
+ 9.599241629801D-01 1.554687500000D+02-2.304101472492D+00-7.597102164085D-09
+ 5.057353516217D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 2.060000000000D+02
+ 1.360980000000D+05 4.000000000000D+00
+11 06 1 2 14 0 0.0 2.959864214063D-04 3.069544618484D-12 0.000000000000D+00
+ 1.510000000000D+02-2.256250000000D+01 6.147756078717D-09-6.572856741752D-01
+ -1.288950443268D-06 5.165420938283D-03 7.631257176399D-06 5.153686727524D+03
+ 1.368000000000D+05 1.545995473862D-07 2.800690129243D+00 1.117587089539D-08
+ 8.991524730125D-01 1.999375000000D+02 3.155477036456D-01-8.795009204579D-09
+ -7.368164056465D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 1.510000000000D+02
+ 1.362480000000D+05 4.000000000000D+00
+ 3 06 1 2 16 0 0.0 6.344774737954D-05 2.955857780762D-12 0.000000000000D+00
+ 1.460000000000D+02 2.184375000000D+01 5.932747122731D-09 1.880914162756D+00
+ 1.130625605583D-06 7.778470870107D-03 6.001442670822D-06 5.153650053024D+03
+ 1.440000000000D+05-1.825392246246D-07 1.803056556611D+00 3.725290298462D-08
+ 9.259625665833D-01 2.472187500000D+02 6.565660867158D-01-8.622502018962D-09
+ 2.878691337620D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.190951585770D-09 1.460000000000D+02
+ 1.368180000000D+05 4.000000000000D+00
+ 8 06 1 2 16 0 0.0-5.213683471084D-05-1.364242052659D-12 0.000000000000D+00
+ 3.000000000000D+00-1.388750000000D+02 4.280535444340D-09-1.687299561885D-01
+ -7.379800081253D-06 9.587653912604D-03 5.740672349930D-06 5.153679409027D+03
+ 1.440000000000D+05 1.415610313416D-07-1.632992370858D-01-1.471489667892D-07
+ 9.716289866245D-01 2.721562500000D+02 2.622087256390D+00-8.195341368863D-09
+ -1.342913080577D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 3.000000000000D+00
+ 1.368180000000D+05 4.000000000000D+00
+11 06 1 2 16 0 0.0 2.960083074868D-04 3.069544618484D-12 0.000000000000D+00
+ 1.460000000000D+02-2.040625000000D+01 6.253474768039D-09 3.928864785788D-01
+ -1.043081283569D-06 5.165710113943D-03 7.256865501404D-06 5.153687257767D+03
+ 1.440000000000D+05 7.450580596924D-08 2.800626568378D+00 6.332993507385D-08
+ 8.991469124609D-01 2.011875000000D+02 3.155605948797D-01-8.844296971898D-09
+ -7.503883995460D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 4.020000000000D+02
+ 1.368180000000D+05 4.000000000000D+00
+13 06 1 2 16 0 0.0 3.265170380473D-05 2.273736754432D-12 0.000000000000D+00
+ 3.700000000000D+01 5.275000000000D+01 4.022310402516D-09 3.013521728796D+00
+ 2.739951014519D-06 2.572165220045D-03 9.853392839432D-07 5.153606025696D+03
+ 1.440000000000D+05-3.539025783539D-08-1.228887769777D+00-2.048909664154D-08
+ 9.903324074342D-01 3.757187500000D+02 1.094347674945D+00-8.185698110040D-09
+ 2.485817830005D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 2.930000000000D+02
+ 1.368180000000D+05 4.000000000000D+00
+15 06 1 2 16 0 0.0 5.437494255602D-04 5.798028723802D-12 0.000000000000D+00
+ 8.900000000000D+01 4.125000000000D+00 4.521974072657D-09-4.384829082303D-02
+ 0.000000000000D+00 9.264142368920D-03 1.012347638607D-05 5.153720508575D+03
+ 1.440000000000D+05 9.313225746155D-08 3.013783371694D+00-1.378357410431D-07
+ 9.589564236528D-01 1.861875000000D+02 2.538548366923D+00-7.992118618106D-09
+ -7.511027150144D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 8.900000000000D+01
+ 1.368180000000D+05 4.000000000000D+00
+19 06 1 2 16 0 0.0-2.438994124532D-05 6.821210263297D-13 0.000000000000D+00
+ 1.910000000000D+02 1.053125000000D+01 5.193787770679D-09-3.025477339024D+00
+ 7.431954145432D-07 3.113882266916D-03 5.614012479782D-06 5.153764865875D+03
+ 1.440000000000D+05 9.685754776001D-08 1.950016167623D+00 6.332993507385D-08
+ 9.580087658019D-01 2.686875000000D+02-1.363027379081D+00-8.192841264724D-09
+ 1.500062483624D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 1.910000000000D+02
+ 1.368180000000D+05 4.000000000000D+00
+27 06 1 2 16 0 0.0 2.984004095197D-05 1.591615728103D-12 0.000000000000D+00
+ 1.240000000000D+02-1.320312500000D+02 4.635907389865D-09-1.345010293603D+00
+ -6.431713700294D-06 1.963451202027D-02 4.418194293976D-06 5.153716615677D+03
+ 1.440000000000D+05 3.892928361893D-07-2.630795220666D-01 4.246830940247D-07
+ 9.568750964543D-01 2.855000000000D+02-1.979422153735D+00-8.287488064286D-09
+ -1.596495071856D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-4.656612873077D-09 3.800000000000D+02
+ 1.368180000000D+05 4.000000000000D+00
+28 06 1 2 16 0 0.0 3.586988896132D-05-6.821210263297D-13 0.000000000000D+00
+ 2.070000000000D+02-5.137500000000D+01 4.384111187257D-09-2.525080035033D+00
+ -2.771615982056D-06 1.077473443002D-02 1.156516373158D-05 5.153661663055D+03
+ 1.440000000000D+05 1.844018697739D-07 8.607770318699D-01-1.266598701477D-07
+ 9.599278890325D-01 1.545625000000D+02-2.304114457353D+00-7.648890035543D-09
+ 6.078824636017D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 2.070000000000D+02
+ 1.368180000000D+05 4.000000000000D+00
+29 06 1 2 16 0 0.0 4.834933206439D-04 1.477928890381D-11 0.000000000000D+00
+ 1.100000000000D+02 4.890625000000D+01 4.080884270924D-09-2.954632485240D+00
+ 2.576038241386D-06 9.277649107389D-03 4.414469003677D-07 5.153690105438D+03
+ 1.440000000000D+05 2.980232238770D-08-1.261921254371D+00 1.695007085800D-07
+ 9.852596556080D-01 3.797812500000D+02-1.011910105318D+00-8.107480566251D-09
+ 2.471531520637D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.519258022308D-09 3.660000000000D+02
+ 1.391580000000D+05 4.000000000000D+00
+26 06 1 2 16 0 0.0-7.968861609697D-06-7.389644451905D-12 0.000000000000D+00
+ 5.300000000000D+01 4.090625000000D+01 4.129814880509D-09 1.363168015248D+00
+ 2.060085535049D-06 1.676565816160D-02 1.229345798492D-06 5.153652542114D+03
+ 1.440000000000D+05-2.011656761169D-07-1.227712702773D+00 1.937150955200D-07
+ 9.885199572640D-01 3.722500000000D+02 7.471322948190D-01-8.412136113520D-09
+ 4.178745490094D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 3.090000000000D+02
+ 1.408680000000D+05 4.000000000000D+00
+17 06 1 2 16 0 0.0 1.686345785856D-05 1.034550223267D-11 0.000000000000D+00
+ 3.800000000000D+01 1.765625000000D+01 5.023780689202D-09-2.406588635757D+00
+ 9.238719940186D-07 1.759570557624D-03 6.016343832016D-06 5.153628707886D+03
+ 1.440000000000D+05-5.774199962616D-08 1.890051585652D+00-1.676380634308D-08
+ 9.599550788279D-01 2.625937500000D+02 2.681632441692D+00-8.132481607645D-09
+ 1.985797002130D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 3.800000000000D+01
+ 1.414380000000D+05 4.000000000000D+00
+24 06 1 2 15 59 44.0 7.423013448715D-05 2.955857780762D-12 0.000000000000D+00
+ 2.200000000000D+01-8.250000000000D+00 4.569118893571D-09 5.780050481160D-01
+ -6.426125764847D-07 9.025732404552D-03 9.605661034584D-06 5.153755208969D+03
+ 1.439840000000D+05 7.450580596924D-09 2.989743553425D+00-1.601874828339D-07
+ 9.621416381126D-01 1.987500000000D+02-9.961355489069D-01-8.071764792832D-09
+ -8.014619555360D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 5.340000000000D+02
+ 1.438980000000D+05 4.000000000000D+00
+ 8 06 1 2 18 0 0.0-5.214661359787D-05-1.364242052659D-12 0.000000000000D+00
+ 4.000000000000D+00-1.462187500000D+02 4.205889477893D-09 8.814535166256D-01
+ -7.631257176399D-06 9.588543674909D-03 5.654990673065D-06 5.153680942535D+03
+ 1.512000000000D+05 2.551823854446D-07-1.633581648890D-01-9.313225746155D-09
+ 9.716280050064D-01 2.757812500000D+02 2.622078183373D+00-8.164268645988D-09
+ -1.725071856167D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 4.000000000000D+00
+ 1.440180000000D+05 4.000000000000D+00
+11 06 1 2 18 0 0.0 2.960301935673D-04 3.069544618484D-12 0.000000000000D+00
+ 1.470000000000D+02-1.478125000000D+01 6.279190124901D-09 1.442875235534D+00
+ -5.606561899185D-07 5.166485905647D-03 7.841736078262D-06 5.153689680099D+03
+ 1.512000000000D+05 4.097819328308D-08 2.800562932905D+00 1.266598701477D-07
+ 8.991414967381D-01 1.941875000000D+02 3.157563069862D-01-8.828224873859D-09
+ -7.353877747097D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 4.030000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+17 06 1 2 18 0 0.0 1.693749800324D-05 1.023181539495D-11 0.000000000000D+00
+ 3.900000000000D+01 1.409375000000D+01 5.104855494865D-09-1.356623875047D+00
+ 8.419156074524D-07 1.759834471159D-03 6.098300218582D-06 5.153627767563D+03
+ 1.512000000000D+05 3.911554813385D-08 1.889992347710D+00-7.450580596924D-08
+ 9.599564788405D-01 2.609062500000D+02 2.681880698890D+00-8.204984627687D-09
+ 2.671539851787D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 3.900000000000D+01
+ 1.440180000000D+05 4.000000000000D+00
+19 06 1 2 18 0 0.0-2.438528463244D-05 6.821210263297D-13 0.000000000000D+00
+ 1.860000000000D+02 1.468750000000D+01 5.227717755428D-09-1.975441809652D+00
+ 8.884817361832D-07 3.114372608252D-03 5.649402737617D-06 5.153763793945D+03
+ 1.512000000000D+05 2.235174179077D-08 1.949957171063D+00 9.685754776001D-08
+ 9.580099610060D-01 2.690000000000D+02-1.362932309887D+00-8.197127157534D-09
+ 1.721500278825D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.443549990654D-08 4.420000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+24 06 1 2 18 0 0.0 7.425155490637D-05 2.955857780762D-12 0.000000000000D+00
+ 2.300000000000D+01-5.437500000000D+00 4.587333938015D-09 1.630436809506D+00
+ -3.278255462646D-07 9.025693638250D-03 8.938834071159D-06 5.153755701065D+03
+ 1.512000000000D+05 2.067536115646D-07 2.989686338699D+00-4.097819328308D-08
+ 9.621367973167D-01 1.997500000000D+02-9.961022367993D-01-7.839969423338D-09
+ -8.332489938795D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 5.350000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+26 06 1 2 18 0 0.0-8.021946996450D-06-7.389644451905D-12 0.000000000000D+00
+ 4.800000000000D+01 5.462500000000D+01 4.009095566351D-09 2.413473486652D+00
+ 2.620741724968D-06 1.676603779197D-02 1.415610313416D-06 5.153648929596D+03
+ 1.512000000000D+05-1.471489667892D-07-1.227773162252D+00-2.458691596985D-07
+ 9.885225305369D-01 3.679062500000D+02 7.470195872214D-01-8.032477442070D-09
+ 2.132231673151D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 5.600000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+27 06 1 2 18 0 0.0 2.985168248415D-05 1.591615728103D-12 0.000000000000D+00
+ 1.250000000000D+02-1.324687500000D+02 4.724839665680D-09-2.948780273106D-01
+ -6.804242730141D-06 1.963425683789D-02 5.185604095459D-06 5.153715595245D+03
+ 1.512000000000D+05-1.080334186554D-07-2.631415731999D-01 3.222376108170D-07
+ 9.568722788741D-01 2.815312500000D+02-1.979397652783D+00-8.705005455561D-09
+ -1.303625729816D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 4.000000000000D+00 0.000000000000D+00-4.656612873077D-09 3.810000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+28 06 1 2 18 0 0.0 3.586523234844D-05-6.821210263297D-13 0.000000000000D+00
+ 2.080000000000D+02-5.281250000000D+01 4.324823003380D-09-1.474837861168D+00
+ -2.680346369743D-06 1.077418203931D-02 1.173838973045D-05 5.153663106918D+03
+ 1.512000000000D+05 2.421438694000D-07 8.607219076537D-01 1.862645149231D-08
+ 9.599324474852D-01 1.479062500000D+02-2.304170353990D+00-7.686391597634D-09
+ 6.271689812483D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.024454832077D-08 2.080000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+29 06 1 2 18 0 0.0 4.835999570787D-04 1.477928890381D-11 0.000000000000D+00
+ 1.050000000000D+02 6.259375000000D+01 4.127314776370D-09-1.904672113284D+00
+ 3.533437848091D-06 9.280044934712D-03 1.702457666397D-06 5.153684333801D+03
+ 1.512000000000D+05-1.396983861923D-07-1.261979803279D+00 2.067536115646D-07
+ 9.852608786075D-01 3.624375000000D+02-1.011700868533D+00-8.230342826815D-09
+ 2.421529437849D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.519258022308D-09 6.170000000000D+02
+ 1.440180000000D+05 4.000000000000D+00
+ 7 06 1 2 18 0 0.0 4.611550830305D-04 1.023181539495D-11 0.000000000000D+00
+ 1.900000000000D+02 1.865625000000D+01 5.576303704003D-09 2.925152237018D+00
+ 9.965151548386D-07 1.323645259254D-02 5.844980478287D-06 5.153806970596D+03
+ 1.512000000000D+05 1.955777406693D-07 1.833751573971D+00-2.067536115646D-07
+ 9.350221622376D-01 2.489062500000D+02-1.767652049003D+00-8.249272186727D-09
+ 2.707255625206D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 1.900000000000D+02
+ 1.454280000000D+05 4.000000000000D+00
+20 06 1 2 18 0 0.0-3.635697066784D-05 1.023181539495D-12 0.000000000000D+00
+ 1.900000000000D+02 1.399062500000D+02 4.208746739767D-09-8.357666830256D-01
+ 7.137656211853D-06 2.526316326112D-03 1.006014645100D-05 5.153581983566D+03
+ 1.512000000000D+05-1.490116119385D-08-2.306450664379D+00 3.166496753693D-08
+ 9.592948770650D-01 1.835000000000D+02 1.351939647930D+00-7.964260314838D-09
+ -1.071473202588D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 4.460000000000D+02
+ 1.470780000000D+05 4.000000000000D+00
+ 4 06 1 2 18 0 0.0 1.055607572198D-04 1.227817847393D-11 0.000000000000D+00
+ 6.400000000000D+01-8.062500000000D+00 4.899132639968D-09-1.109889043677D-01
+ -5.252659320831D-07 7.418857072480D-03 8.925795555115D-06 5.153753326416D+03
+ 1.512000000000D+05 1.192092895508D-07 2.957362585885D+00 1.862645149231D-09
+ 9.518511446494D-01 2.018437500000D+02 1.142292679132D-01-8.187841056445D-09
+ -7.568172387615D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 3.200000000000D+02
+ 1.489680000000D+05 4.000000000000D+00
+ 9 06 1 2 18 0 0.0 1.990236341953D-06 1.477928890381D-12 0.000000000000D+00
+ 6.300000000000D+01-1.254375000000D+02 4.628764235181D-09 5.441476114865D-01
+ -6.726011633873D-06 1.744308741763D-02 5.019828677177D-06 5.153657768250D+03
+ 1.512000000000D+05-2.309679985046D-07-2.406878741189D-01-2.048909664154D-08
+ 9.590431015490D-01 2.856562500000D+02 1.211581340643D+00-8.538212793692D-09
+ -2.650110387735D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 6.300000000000D+01
+ 1.494180000000D+05 4.000000000000D+00
+ 4 06 1 2 20 0 0.0 1.056496985257D-04 1.227817847393D-11 0.000000000000D+00
+ 6.500000000000D+01-3.031250000000D+00 4.932705466982D-09 9.390930053588D-01
+ 5.960464477539D-08 7.419411442243D-03 8.735805749893D-06 5.153754598618D+03
+ 1.584000000000D+05 7.264316082001D-08 2.957304096957D+00 8.195638656616D-08
+ 9.518458137759D-01 2.023437500000D+02 1.142820851076D-01-8.123909822024D-09
+ -7.989618513966D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 3.210000000000D+02
+ 1.512180000000D+05 4.000000000000D+00
+ 7 06 1 2 20 0 0.0 4.612281918526D-04 1.023181539495D-11 0.000000000000D+00
+ 1.910000000000D+02 2.143750000000D+01 5.583089700953D-09-2.307945343873D+00
+ 1.192092895508D-06 1.323677459732D-02 5.727633833885D-06 5.153806255341D+03
+ 1.584000000000D+05 2.011656761169D-07 1.833691114492D+00 5.774199962616D-08
+ 9.350249695774D-01 2.511562500000D+02-1.767631990933D+00-8.247843555790D-09
+ 4.675194740627D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 1.910000000000D+02
+ 1.512180000000D+05 4.000000000000D+00
+ 8 06 1 2 20 0 0.0-5.215685814619D-05-1.364242052659D-12 0.000000000000D+00
+ 5.000000000000D+00-1.480000000000D+02 4.155173079637D-09 1.931615348493D+00
+ -7.502734661102D-06 9.588002809323D-03 6.092712283134D-06 5.153681016922D+03
+ 1.584000000000D+05 1.862645149231D-08-1.634151119011D-01 1.601874828339D-07
+ 9.716267059352D-01 2.676875000000D+02 2.622090438237D+00-7.981403886080D-09
+ -3.389426897521D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-3.725290298462D-09 5.000000000000D+00
+ 1.512180000000D+05 4.000000000000D+00
+ 9 06 1 2 20 0 0.0 2.000946551561D-06 1.477928890381D-12 0.000000000000D+00
+ 6.400000000000D+01-1.423750000000D+02 4.470186201198D-09 1.594204287339D+00
+ -7.588416337967D-06 1.744353619870D-02 4.617497324944D-06 5.153662099838D+03
+ 1.584000000000D+05-1.899898052216D-07-2.407496487606D-01-2.961605787277D-07
+ 9.590417863856D-01 2.943437500000D+02 1.211715618968D+00-8.379991917443D-09
+ -2.067943280995D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 6.400000000000D+01
+ 1.512180000000D+05 4.000000000000D+00
+11 06 1 2 20 0 0.0 2.960520796478D-04 3.069544618484D-12 0.000000000000D+00
+ 1.480000000000D+02-2.106250000000D+01 6.219901941025D-09 2.492901078925D+00
+ -1.100823283195D-06 5.166117916815D-03 7.923692464828D-06 5.153691368103D+03
+ 1.584000000000D+05-1.341104507446D-07 2.800498993144D+00 1.303851604462D-08
+ 8.991371401681D-01 1.937187500000D+02 3.159141426807D-01-8.686790411117D-09
+ -6.071681481333D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 4.040000000000D+02
+ 1.512180000000D+05 4.000000000000D+00
+17 06 1 2 20 0 0.0 1.701153814793D-05 1.023181539495D-11 0.000000000000D+00
+ 4.000000000000D+01 1.537500000000D+01 5.130213693993D-09-3.064737962638D-01
+ 8.605420589447D-07 1.759674516506D-03 6.129965186119D-06 5.153627408981D+03
+ 1.584000000000D+05 2.980232238770D-08 1.889933068807D+00-5.587935447693D-09
+ 9.599586424964D-01 2.617187500000D+02 2.681944087131D+00-8.201770208079D-09
+ 3.125130174216D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 4.000000000000D+01
+ 1.512180000000D+05 4.000000000000D+00
+20 06 1 2 20 0 0.0-3.634952008724D-05 1.023181539495D-12 0.000000000000D+00
+ 1.910000000000D+02 1.254062500000D+02 4.310179536278D-09 2.142120470887D-01
+ 6.513670086861D-06 2.523976494558D-03 9.613111615181D-06 5.153577398300D+03
+ 1.584000000000D+05-2.793967723846D-08-2.306507963955D+00 1.676380634308D-08
+ 9.592940929409D-01 1.932500000000D+02 1.352197286822D+00-7.962117368433D-09
+ -1.171477368163D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 4.470000000000D+02
+ 1.512180000000D+05 4.000000000000D+00
+24 06 1 2 20 0 0.0 7.427297532558D-05 2.955857780762D-12 0.000000000000D+00
+ 2.400000000000D+01 3.875000000000D+00 4.645193490954D-09 2.680415934608D+00
+ 4.768371582031D-07 9.024921222590D-03 9.523704648018D-06 5.153758642197D+03
+ 1.584000000000D+05 2.402812242508D-07 2.989629536516D+00 1.322478055954D-07
+ 9.621309061456D-01 1.933750000000D+02-9.959507004300D-01-7.842112369743D-09
+ -7.432452448621D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 2.800000000000D+02
+ 1.512180000000D+05 4.000000000000D+00
+28 06 1 2 20 0 0.0 3.586057573557D-05-6.821210263297D-13 0.000000000000D+00
+ 2.030000000000D+02-4.571875000000D+01 4.440184951526D-09-4.247386963230D-01
+ -2.238899469376D-06 1.077397703193D-02 1.234188675880D-05 5.153661407471D+03
+ 1.584000000000D+05-2.421438694000D-08 8.606657008782D-01 1.974403858185D-07
+ 9.599353528405D-01 1.431562500000D+02-2.304082267303D+00-8.003904823334D-09
+ 5.800241603344D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.024454832077D-08 4.590000000000D+02
+ 1.512180000000D+05 4.000000000000D+00
+ 2 06 1 2 20 0 0.0-2.310844138265D-05 1.023181539495D-12 0.000000000000D+00
+ 2.120000000000D+02-5.156250000000D+00 4.941634410337D-09-1.419952069949D+00
+ -1.955777406693D-07 9.067246573977D-03 9.017065167427D-06 5.153628778458D+03
+ 1.584000000000D+05-1.974403858185D-07 2.937518647808D+00 4.284083843231D-08
+ 9.522516448061D-01 2.018750000000D+02 1.956236250989D+00-8.175340535748D-09
+ -6.961004239482D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.722946763039D-08 7.240000000000D+02
+ 1.535580000000D+05 4.000000000000D+00
+ 5 06 1 2 20 0 0.0 4.516290500760D-04 2.364686224610D-11 0.000000000000D+00
+ 1.050000000000D+02-5.962500000000D+01 4.878060333650D-09 6.008417347614D-01
+ -3.304332494736D-06 6.785998120904D-03 1.139380037785D-05 5.153686563492D+03
+ 1.584000000000D+05-6.146728992462D-08 7.635228904217D-01 5.774199962616D-08
+ 9.374697968085D-01 1.495000000000D+02 1.039653131006D+00-8.157482649039D-09
+ 4.278749655669D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.050000000000D+02
+ 1.556580000000D+05 4.000000000000D+00
+ 2 06 1 2 22 0 0.0-2.310145646334D-05 1.023181539495D-12 0.000000000000D+00
+ 2.130000000000D+02-4.468750000000D+00 5.014137430379D-09-3.697334402876D-01
+ -1.210719347000D-07 9.067195234820D-03 9.039416909218D-06 5.153628810883D+03
+ 1.656000000000D+05-5.029141902924D-08 2.937458684259D+00-4.284083843231D-08
+ 9.522467864552D-01 2.028125000000D+02 1.956229578620D+00-8.273558912652D-09
+ -5.968105738417D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.722946763039D-08 7.250000000000D+02
+ 1.584180000000D+05 4.000000000000D+00
+ 4 06 1 2 22 0 0.0 1.057381741703D-04 1.227817847393D-11 0.000000000000D+00
+ 6.600000000000D+01-3.000000000000D+00 4.959849454781D-09 1.989054114625D+00
+ 5.401670932770D-08 7.419559638947D-03 9.540468454361D-06 5.153757047653D+03
+ 1.656000000000D+05-4.097819328308D-08 2.957245072602D+00 2.104789018631D-07
+ 9.518403848869D-01 1.932812500000D+02 1.144551161321D-01-8.091408468212D-09
+ -6.825284300487D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 3.220000000000D+02
+ 1.584180000000D+05 4.000000000000D+00
+ 5 06 1 2 22 0 0.0 4.517990164459D-04 2.353317540837D-11 0.000000000000D+00
+ 1.060000000000D+02-7.615625000000D+01 4.670194532348D-09 1.650660687889D+00
+ -3.874301910400D-06 6.787736434489D-03 1.198984682560D-05 5.153692081451D+03
+ 1.656000000000D+05-1.434236764908D-07 7.634639304343D-01-3.725290298462D-08
+ 9.374732434435D-01 1.344375000000D+02 1.040006889467D+00-8.083550998060D-09
+ 4.853773607725D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.060000000000D+02
+ 1.584180000000D+05 4.000000000000D+00
+ 7 06 1 2 22 0 0.0 4.613017663360D-04 1.023181539495D-11 0.000000000000D+00
+ 1.860000000000D+02 2.409375000000D+01 5.695237229491D-09-1.257849363801D+00
+ 1.609325408936D-06 1.323697098996D-02 5.986541509628D-06 5.153805877686D+03
+ 1.656000000000D+05-1.676380634308D-08 1.833631518136D+00 3.762543201447D-07
+ 9.350265700098D-01 2.520937500000D+02-1.767620299292D+00-8.596072346631D-09
+ 3.728726745007D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 4.420000000000D+02
+ 1.584180000000D+05 4.000000000000D+00
+ 9 06 1 2 22 0 0.0 2.011191099882D-06 1.477928890381D-12 0.000000000000D+00
+ 5.900000000000D+01-1.559687500000D+02 4.399468969827D-09 2.644437914837D+00
+ -7.996335625648D-06 1.744486938696D-02 4.513189196587D-06 5.153659526825D+03
+ 1.656000000000D+05 1.769512891769D-07-2.408080177291D-01-8.754432201385D-08
+ 9.590418492911D-01 2.893125000000D+02 1.211668848014D+00-7.996047353182D-09
+ -2.592965150264D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-5.587935447693D-09 8.270000000000D+02
+ 1.584180000000D+05 4.000000000000D+00
+17 06 1 2 22 0 0.0 1.708557829261D-05 1.023181539495D-11 0.000000000000D+00
+ 4.100000000000D+01 1.556250000000D+01 5.131999482664D-09 7.435895446435D-01
+ 8.400529623032D-07 1.760176150128D-03 5.917623639107D-06 5.153628448486D+03
+ 1.656000000000D+05 5.587935447693D-09 1.889873953750D+00 1.676380634308D-08
+ 9.599607286175D-01 2.661562500000D+02 2.682094224950D+00-8.233557246422D-09
+ 3.057270204718D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.778887033463D-09 4.100000000000D+01
+ 1.584180000000D+05 4.000000000000D+00
+20 06 1 2 22 0 0.0-3.634160384536D-05 1.023181539495D-12 0.000000000000D+00
+ 1.920000000000D+02 1.100937500000D+02 4.251605667870D-09 1.263794914497D+00
+ 5.651265382767D-06 2.525499905460D-03 9.929761290550D-06 5.153581626892D+03
+ 1.656000000000D+05-5.960464477539D-08-2.306565377638D+00-1.490116119385D-08
+ 9.592933614819D-01 1.876875000000D+02 1.352851524268D+00-7.937116327040D-09
+ -9.714690370134D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 4.480000000000D+02
+ 1.584180000000D+05 4.000000000000D+00
+24 06 1 2 22 0 0.0 7.429439574480D-05 2.955857780762D-12 0.000000000000D+00
+ 2.500000000000D+01 7.812500000000D-01 4.623049711434D-09-2.552624441797D+00
+ 1.750886440277D-07 9.024538099766D-03 9.601935744286D-06 5.153759380341D+03
+ 1.656000000000D+05 3.725290298462D-09 2.989572667039D+00 1.732259988785D-07
+ 9.621264954476D-01 1.942187500000D+02-9.959654232376D-01-7.750679989789D-09
+ -5.971677315759D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-9.313225746155D-10 2.500000000000D+01
+ 1.584180000000D+05 4.000000000000D+00
+ 2 06 1 2 21 59 44.0-2.310238778591D-05 1.023181539495D-12 0.000000000000D+00
+ 2.370000000000D+02-4.468750000000D+00 5.014137430379D-09-3.720670667268D-01
+ -1.210719347000D-07 9.067200357094D-03 9.039416909218D-06 5.153628805161D+03
+ 1.655840000000D+05-5.029141902924D-08 2.937458832014D+00-4.284083843231D-08
+ 9.522468113248D-01 2.028125000000D+02 1.956229401607D+00-8.273558912652D-09
+ -5.968105738417D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.370000000000D+02
+ 1.589580000000D+05 4.000000000000D+00
+23 06 1 2 22 0 0.0 1.562680117786D-04-1.705302565824D-12 0.000000000000D+00
+ 2.500000000000D+01 5.115625000000D+01 4.528402911872D-09-9.030365483084D-01
+ 2.611428499222D-06 4.178410279565D-03 1.208856701851D-06 5.153606397629D+03
+ 1.656000000000D+05-7.264316082001D-08-1.252482869727D+00 0.000000000000D+00
+ 9.667896609328D-01 3.600625000000D+02 2.424111360254D+00-8.433208419838D-09
+ 1.096474243982D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.142041921616D-08 2.500000000000D+01
+ 1.589580000000D+05 4.000000000000D+00
+30 06 1 2 22 0 0.0 1.002615317702D-05 5.684341886081D-12 0.000000000000D+00
+ 1.660000000000D+02-6.718750000000D+01 4.611620663940D-09 9.268702165506D-01
+ -3.527849912643D-06 8.716217591427D-03 1.199170947075D-05 5.153615076065D+03
+ 1.656000000000D+05-1.136213541031D-07 8.089412449070D-01 1.676380634308D-08
+ 9.440949373208D-01 1.386875000000D+02 1.296381476155D+00-8.127481399366D-09
+ 4.621621080497D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.660000000000D+02
+ 1.597080000000D+05 4.000000000000D+00
+13 06 1 2 21 59 44.0 3.270106390119D-05 2.273736754432D-12 0.000000000000D+00
+ 5.900000000000D+01 4.246875000000D+01 4.095884895761D-09-1.212933145706D-01
+ 2.209097146988D-06 2.572021330707D-03 1.028180122375D-06 5.153605396271D+03
+ 1.655840000000D+05 3.166496753693D-08-1.229064444930D+00 9.313225746155D-08
+ 9.903356375573D-01 3.748437500000D+02 1.094300789883D+00-8.222842514396D-09
+ 7.464596644698D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 5.900000000000D+01
+ 1.601880000000D+05 4.000000000000D+00
+10 06 1 2 22 0 0.0 7.646484300494D-05 6.821210263297D-13 0.000000000000D+00
+ 6.900000000000D+01 1.275000000000D+02 3.940164123651D-09-7.521127511436D-02
+ 6.526708602905D-06 6.807108991779D-03 1.023150980473D-05 5.153795579910D+03
+ 1.656000000000D+05 5.587935447693D-08-2.277695691442D+00 4.470348358154D-08
+ 9.756533455237D-01 1.877500000000D+02 3.583763127719D-01-7.862470360593D-09
+ -1.460775132862D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-2.328306436539D-09 3.250000000000D+02
+ 1.611180000000D+05 4.000000000000D+00
+10 06 1 2 21 59 44.0 7.645413279533D-05 6.821210263297D-13 0.000000000000D+00
+ 9.100000000000D+01 1.275000000000D+02 3.940164123651D-09-7.754503614201D-02
+ 6.526708602905D-06 6.807106663473D-03 1.023150980473D-05 5.153795604706D+03
+ 1.655840000000D+05 5.587935447693D-08-2.277695558317D+00 4.470348358154D-08
+ 9.756533396721D-01 1.877500000000D+02 3.583763859178D-01-7.862470360593D-09
+ -1.460775132862D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 9.100000000000D+01
+ 1.615680000000D+05 4.000000000000D+00
+ 6 06 1 2 22 0 0.0 1.782169565558D-04 4.411049303599D-11 0.000000000000D+00
+ 4.500000000000D+01 2.031250000000D+01 5.640592096159D-09 2.931722389365D+00
+ 8.922070264816D-07 5.974007654004D-03 6.180256605148D-06 5.153620952606D+03
+ 1.656000000000D+05 8.568167686462D-08 1.860352179136D+00-1.173466444016D-07
+ 9.334945495321D-01 2.480937500000D+02-1.861566570840D+00-8.392492438140D-09
+ 3.725155167665D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 3.010000000000D+02
+ 1.653780000000D+05 4.000000000000D+00
+29 06 1 3 0 0 0.0 4.839175380766D-04 1.477928890381D-11 0.000000000000D+00
+ 1.330000000000D+02 5.246875000000D+01 4.243748197718D-09 1.245698623708D+00
+ 2.402812242508D-06 9.281079401262D-03 9.778887033463D-07 5.153685886383D+03
+ 1.728000000000D+05 2.086162567139D-07-1.262159821200D+00-1.844018697739D-07
+ 9.852643939996D-01 3.688125000000D+02-1.011555379868D+00-8.301417215920D-09
+ 4.357324357192D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.519258022308D-09 1.330000000000D+02
+ 1.683180000000D+05 4.000000000000D+00
+ 2 06 1 2 23 59 44.0-2.309540286660D-05 1.023181539495D-12 0.000000000000D+00
+ 2.380000000000D+02-1.337500000000D+01 5.010208695303D-09 6.781001545304D-01
+ -7.748603820801D-07 9.068349725567D-03 9.180977940559D-06 5.153631103516D+03
+ 1.727840000000D+05-8.195638656616D-08 2.937399137642D+00-9.685754776001D-08
+ 9.522426741925D-01 2.017500000000D+02 1.956273798245D+00-8.236414508296D-09
+ -5.707380592453D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.722946763039D-08 2.380000000000D+02
+ 1.656180000000D+05 4.000000000000D+00
+ 4 06 1 3 0 0 0.0 1.058266498148D-04 1.227817847393D-11 0.000000000000D+00
+ 6.700000000000D+01-1.156250000000D+01 4.887346434739D-09 3.039075174274D+00
+ -5.774199962616D-07 7.418369874358D-03 9.186565876007D-06 5.153759761810D+03
+ 1.728000000000D+05-1.508742570877D-07 2.957186826518D+00 2.793967723846D-08
+ 9.518363940464D-01 1.990937500000D+02 1.145664398092D-01-7.957831475623D-09
+ -5.900245768919D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-6.053596735001D-09 3.230000000000D+02
+ 1.656180000000D+05 4.000000000000D+00
+ 5 06 1 3 0 0 0.0 4.519685171545D-04 2.353317540837D-11 0.000000000000D+00
+ 1.070000000000D+02-6.987500000000D+01 4.616263714484D-09 2.701094900473D+00
+ -3.552064299583D-06 6.788291735575D-03 1.266039907932D-05 5.153688758850D+03
+ 1.728000000000D+05 4.656612873077D-08 7.634065562502D-01-2.793967723846D-08
+ 9.374776292719D-01 1.202812500000D+02 1.039744915949D+00-7.885685613315D-09
+ 4.814486256963D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.190951585770D-09 1.070000000000D+02
+ 1.656180000000D+05 4.000000000000D+00
+ 6 06 1 3 0 0 0.0 1.785350032151D-04 4.411049303599D-11 0.000000000000D+00
+ 4.600000000000D+01 2.296875000000D+01 5.548445400736D-09-2.301276725436D+00
+ 1.050531864166D-06 5.974082858302D-03 5.733221769333D-06 5.153620687485D+03
+ 1.728000000000D+05 1.192092895508D-07 1.860291137416D+00 1.862645149231D-08
+ 9.334976626218D-01 2.488437500000D+02-1.861531658300D+00-8.401064223760D-09
+ 4.789485215569D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-4.656612873077D-09 3.020000000000D+02
+ 1.656180000000D+05 4.000000000000D+00
+ 7 06 1 3 0 0 0.0 4.613748751581D-04 1.023181539495D-11 0.000000000000D+00
+ 1.870000000000D+02 2.809375000000D+01 5.680593762389D-09-2.077114681992D-01
+ 1.391395926476D-06 1.323741849046D-02 6.096437573433D-06 5.153807024002D+03
+ 1.728000000000D+05-1.639127731323D-07 1.833568071379D+00 1.378357410431D-07
+ 9.350287819419D-01 2.531875000000D+02-1.767649525469D+00-8.795009204579D-09
+ 4.278749655669D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.862645149231D-09 4.430000000000D+02
+ 1.656180000000D+05 4.000000000000D+00
+10 06 1 2 23 59 44.0 7.645878940821D-05 6.821210263297D-13 0.000000000000D+00
+ 9.200000000000D+01 1.199687500000D+02 4.055883229531D-09 9.726751851743D-01
+ 6.515532732010D-06 6.806274759583D-03 9.957700967789D-06 5.153793519974D+03
+ 1.727840000000D+05 3.352761268616D-08-2.277752009400D+00 6.705522537231D-08
+ 9.756522878340D-01 1.934375000000D+02 3.582589296882D-01-7.844969631617D-09
+ -1.603638226540D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-2.328306436539D-09 9.200000000000D+01
+ 1.656180000000D+05 4.000000000000D+00
+13 06 1 3 0 0 0.0 3.271736204624D-05 2.273736754432D-12 0.000000000000D+00
+ 6.000000000000D+01 4.659375000000D+01 4.018738825174D-09 9.309594149050D-01
+ 2.397224307060D-06 2.574135316536D-03 1.832842826843D-06 5.153609649658D+03
+ 1.728000000000D+05-4.284083843231D-08-1.229123513174D+00 6.519258022308D-08
+ 9.903359974351D-01 3.592812500000D+02 1.094599623085D+00-8.201055892610D-09
+ 4.107313943255D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-1.164153218269D-08 6.000000000000D+01
+ 1.656180000000D+05 4.000000000000D+00
+30 06 1 3 0 0 0.0 1.006713137031D-05 5.684341886081D-12 0.000000000000D+00
+ 1.670000000000D+02-6.496875000000D+01 4.529474385075D-09 1.977297819671D+00
+ -3.335997462273D-06 8.716638898477D-03 1.272559165955D-05 5.153611745834D+03
+ 1.728000000000D+05 3.166496753693D-08 8.088829578620D-01-1.806765794754D-07
+ 9.440994445714D-01 1.230937500000D+02 1.296171465487D+00-7.901757711354D-09
+ 5.239503960657D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-8.381903171539D-09 1.670000000000D+02
+ 1.656180000000D+05 4.000000000000D+00
+26 06 1 3 0 0 0.0-8.174218237400D-06-7.275957614183D-12 0.000000000000D+00
+ 7.600000000000D+01 4.775000000000D+01 4.241605251313D-09-7.191322432016D-01
+ 2.644956111908D-06 1.676566759124D-02 1.076608896255D-06 5.153649944305D+03
+ 1.728000000000D+05 1.974403858185D-07-1.227946747722D+00 2.402812242508D-07
+ 9.885253744497D-01 3.717187500000D+02 7.470156212505D-01-8.481781871689D-09
+ 3.571577341961D-11 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.000000000000D+00 0.000000000000D+00-6.053596735001D-09 7.600000000000D+01
+ 1.699680000000D+05 4.000000000000D+00
+21 06 1 3 0 0 0.0 1.643206924200D-04 3.865352482535D-12 0.000000000000D+00
+ 2.310000000000D+02-6.625000000000D+00 5.067353932774D-09-2.406819981622D+00
+ -4.544854164124D-07 1.051905599888D-02 9.320676326752D-06 5.153738023758D+03
+ 1.728000000000D+05-1.080334186554D-07 2.978312413958D+00-2.123415470123D-07
+ 9.454302830919D-01 1.952500000000D+02-3.028802270938D+00-8.105337619846D-09
+ -5.664521664350D-10 1.000000000000D+00 1.356000000000D+03 0.000000000000D+00
+ 2.800000000000D+00 0.000000000000D+00-1.164153218269D-08 4.870000000000D+02
+ 1.713480000000D+05 4.000000000000D+00
diff --git a/ref/usersguide/arl2810.06o b/ref/usersguide/arl2810.06o
new file mode 100644
index 0000000..2c03795
--- /dev/null
+++ b/ref/usersguide/arl2810.06o
@@ -0,0 +1,48828 @@
+ 2.10 OBSERVATION DATA G (GPS) RINEX VERSION / TYPE
+teqc 2005Sep1 20060102 01:17:09UTCPGM / RUN BY / DATE
+Linux 2.4.20-8|Pentium IV|gcc|Linux|486/DX+ COMMENT
+ALGO CACS-ACP 883160 ALGONQUIN PARK ONT CANADA MARKER NAME
+40104M002 MARKER NUMBER
+-Unknown- GEOD. SURVEY, NATURAL RESOURCES CANADA OBSERVER / AGENCY
+1103 AOA BENCHMARK ACT 3.3.32.2N REC # / TYPE / VERS
+386 AOAD/M_T NONE ANT # / TYPE
+ 918129.4000 -4346071.2000 4561977.8000 APPROX POSITION XYZ
+ 0.1000 0.0000 0.0000 ANTENNA: DELTA H/E/N
+ 1 1 WAVELENGTH FACT L1/2
+ 7 L1 L2 C1 P2 P1 S1 S2 # / TYPES OF OBSERV
+ 30.0000 INTERVAL
+L1 PHASE CENTRE .110m ABOVE ARP COMMENT
+L2 PHASE CENTRE .128m ABOVE ARP COMMENT
+where ARP is the Antenna Reference Point for HI measurement COMMENT
+ P1 = P1 TurboRogue; = Y1 Benchmark COMMENT
+ L1 = L1(CA) COMMENT
+ P2 = P2 TurboRogue; = Y2 Benchmark COMMENT
+ L2 = L2(P2) TurboRogue; = L2(Y2) Benchmark COMMENT
+ SNR is mapped to RINEX snr flag value [0-9] COMMENT
+ L1 & L2: min(max(int(snr_dBHz/6), 0), 9) COMMENT
+ 2006 1 2 0 0 0.0000000 GPS TIME OF FIRST OBS
+ END OF HEADER
+ 06 1 2 0 0 0.0000000 0 6G29G 6G10G 2G26G21
+ -14401966.278 6 -11222303.412 6 21576507.476 21576505.887 21576506.782
+ 39.800 36.400
+ -18141248.465 7 -14136026.526 6 21356549.412 21356548.478 21356548.655
+ 44.800 40.700
+ -22603792.668 7 -17613328.758 7 20200275.771 20200274.402 20200274.572
+ 45.500 46.200
+ -14057059.327 6 -10953538.160 6 22148477.678 22148474.326 22148476.848
+ 40.900 36.100
+ -10724372.090 5 -8356648.452 5 22441493.796 22441493.207 22441493.391
+ 33.600 30.800
+ -3922915.233 4 -3056813.649 3 24158475.904 24158474.477 24158475.393
+ 26.200 23.000
+ 06 1 2 0 0 30.0000000 0 6G29G 6G10G 2G26G21
+ -14481285.336 6 -11284110.438 6 21561413.408 21561411.871 21561412.634
+ 39.500 36.300
+ -18169976.048 7 -14158411.645 6 21351082.891 21351081.704 21351082.037
+ 44.800 40.700
+ -22575594.158 7 -17591355.887 7 20205641.815 20205640.320 20205640.611
+ 45.800 46.100
+ -13974626.777 6 -10889305.011 5 22164163.781 22164160.395 22164163.305
+ 41.000 35.500
+ -10838065.873 5 -8445240.963 5 22419858.497 22419857.826 22419857.973
+ 34.600 30.800
+ -4018153.626 3 -3131025.321 3 24140353.626 24140350.975 24140352.297
+ 23.800 23.800
+ 06 1 2 0 1 0.0000000 0 6G29G 6G10G 2G26G21
+ -14560171.155 6 -11345579.865 6 21546401.626 21546400.543 21546401.120
+ 39.600 36.700
+ -18198161.312 7 -14180374.175 6 21345719.482 21345718.156 21345718.727
+ 44.900 40.700
+ -22546978.168 7 -17569057.704 7 20211087.376 20211085.772 20211086.173
+ 45.800 46.200
+ -13891939.041 6 -10824873.018 6 22179899.766 22179895.649 22179898.460
+ 40.600 36.100
+ -10951466.777 5 -8533605.211 5 22398278.907 22398278.415 22398278.595
+ 34.100 31.500
+ -4113372.453 4 -3205221.708 4 24122234.084 24122231.463 24122232.973
+ 28.400 24.200
+ 06 1 2 0 1 30.0000000 0 6G29G 6G10G 2G26G21
+ -14638621.233 6 -11406709.758 6 21531473.098 21531471.916 21531472.441
+ 39.100 36.400
+ -18225803.489 7 -14201913.525 6 21340459.385 21340457.813 21340458.597
+ 45.000 40.400
+ -22517946.238 7 -17546435.413 7 20216611.835 20216610.427 20216610.685
+ 46.000 46.100
+ -13808996.902 6 -10760242.799 5 22195682.405 22195678.740 22195681.807
+ 41.200 34.900
+ -11064571.507 5 -8621738.733 5 22376756.226 22376755.411 22376755.519
+ 35.300 31.100
+ -4208570.886 4 -3279402.254 3 24104117.409 24104114.963 24104116.949
+ 28.800 22.100
+ 06 1 2 0 2 0.0000000 0 6G29G 6G10G 2G26G21
+ -14716633.246 6 -11467498.302 6 21516628.657 21516626.705 21516627.570
+ 39.700 36.500
+ -18252901.160 7 -14223028.581 6 21335302.659 21335301.297 21335301.950
+ 45.000 40.500
+ -22488499.834 7 -17523490.154 7 20222215.465 20222213.917 20222214.271
+ 46.100 46.200
+ -13725801.313 6 -10695415.084 6 22211514.111 22211510.720 22211513.403
+ 41.000 36.000
+ -11177376.618 5 -8709638.757 5 22355290.564 22355289.064 22355289.509
+ 34.500 31.300
+ -4303748.251 4 -3353566.388 3 24086005.904 24086003.441 24086004.913
+ 28.400 21.100
+ 06 1 2 0 2 30.0000000 0 6G29G 6G10G 2G26G21
+ -14794204.716 6 -11527943.580 6 21501866.582 21501865.136 21501866.073
+ 40.100 36.500
+ -18279453.145 7 -14243718.425 6 21330250.065 21330248.738 21330249.330
+ 45.000 40.700
+ -22458640.351 7 -17500223.019 7 20227897.565 20227895.960 20227896.397
+ 46.100 46.100
+ -13642353.267 6 -10630390.664 6 22227394.019 22227390.447 22227393.206
+ 40.800 36.100
+ -11289878.846 5 -8797302.776 5 22333881.822 22333880.677 22333880.833
+ 34.000 31.100
+ -4398903.286 5 -3427713.114 3 24067898.221 24067896.083 24067897.404
+ 30.100 19.900
+ 06 1 2 0 3 0.0000000 0 6G29G 6G10G 2G26G21
+ -14871333.236 6 -11588043.696 6 21487189.856 21487188.136 21487188.887
+ 39.800 36.600
+ -18305457.976 7 -14263981.914 6 21325301.609 21325300.084 21325300.758
+ 44.700 40.600
+ -22428369.513 7 -17476635.346 7 20233657.724 20233656.298 20233656.587
+ 46.000 46.000
+ -13558653.372 6 -10565169.969 5 22243320.970 22243317.624 22243320.511
+ 40.600 35.100
+ -11402074.933 5 -8884728.216 5 22312531.556 22312530.347 22312530.615
+ 35.500 31.600
+ -4494035.054 5 -3501841.718 3 24049796.484 24049793.493 24049795.190
+ 30.600 19.900
+ 06 1 2 0 3 30.0000000 0 6G29G 6G10G 2G26G21
+ -14948016.322 6 -11647796.723 6 21472597.162 21472595.796 21472596.345
+ 39.600 36.900
+ -18330914.986 7 -14283818.529 6 21320457.154 21320455.803 21320456.365
+ 44.800 40.600
+ -22397688.619 7 -17452728.148 7 20239496.256 20239494.689 20239494.989
+ 45.900 46.000
+ -13474702.424 6 -10499753.667 5 22259297.027 22259293.101 22259295.917
+ 40.200 35.300
+ -11513961.176 5 -8971912.254 5 22291240.769 22291238.853 22291239.467
+ 35.200 31.800
+ -4589142.544 4 -3575951.410 3 24031698.061 24031695.461 24031697.084
+ 29.700 19.300
+ 06 1 2 0 4 0.0000000 0 6G29G 6G10G 2G26G21
+ -15024251.648 6 -11707200.833 6 21458090.013 21458088.669 21458089.400
+ 40.000 37.000
+ -18355822.903 7 -14303227.285 6 21315717.058 21315716.004 21315716.395
+ 44.600 40.700
+ -22366599.135 7 -17428502.572 7 20245412.222 20245410.823 20245411.101
+ 46.000 46.100
+ -13390501.602 6 -10434142.649 5 22275319.488 22275316.010 22275318.824
+ 40.300 34.900
+ -11625534.599 5 -9058852.542 5 22270008.620 22270007.193 22270007.453
+ 35.100 31.800
+ -4684224.848 4 -3650041.464 2 24013604.547 24013601.152 24013603.173
+ 28.600 17.800
+ 06 1 2 0 4 30.0000000 0 6G29G 6G10G 2G26G21
+ -15100037.033 6 -11766254.363 6 21443668.463 21443667.072 21443667.822
+ 40.000 36.800
+ -18380180.755 7 -14322207.423 6 21311081.884 21311080.951 21311081.114
+ 44.200 40.700
+ -22335102.681 7 -17403959.873 7 20251405.738 20251404.313 20251404.628
+ 46.000 45.900
+ -13306051.898 6 -10368337.688 5 22291390.163 22291386.200 22291389.203
+ 40.000 34.800
+ -11736791.766 5 -9145546.372 5 22248837.018 22248835.711 22248835.938
+ 34.900 32.300
+ -4779280.934 4 -3724111.066 3 23995514.640 23995512.420 23995513.755
+ 26.800 20.500
+ 06 1 2 0 5 0.0000000 0 6G29G 6G10G 2G26G21
+ -15175370.005 6 -11824955.345 6 21429332.639 21429331.731 21429332.424
+ 40.500 36.900
+ -18403987.454 7 -14340758.080 6 21306551.571 21306550.634 21306550.879
+ 44.300 40.800
+ -22303200.985 7 -17379101.405 7 20257476.506 20257475.023 20257475.344
+ 45.900 46.000
+ -13221353.834 6 -10302339.211 5 22307507.342 22307503.786 22307506.560
+ 40.100 34.600
+ -11847729.153 5 -9231991.040 5 22227726.922 22227724.954 22227725.523
+ 34.700 32.000
+ -4874309.495 4 -3798159.239 3 23977431.602 23977429.297 23977430.453
+ 27.100 21.600
+ 06 1 2 0 5 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15250248.239 6 -11883301.994 6 21415084.682 21415082.793 21415083.619
+ 39.700 36.800
+ -18427241.829 7 -14358878.355 6 21302126.491 21302125.452 21302125.774
+ 44.500 40.600
+ -27690.532 3 -21576.432 3 25214084.418 25214083.945 25214083.293
+ 21.600 19.300
+ -22270895.250 7 -17353928.101 7 20263624.141 20263622.639 20263622.967
+ 45.900 46.000
+ -13136408.313 6 -10236147.912 5 22323672.088 22323668.476 22323671.337
+ 40.200 34.800
+ -11958343.431 5 -9318183.929 5 22206677.530 22206675.564 22206676.336
+ 35.900 31.500
+ -4969309.683 4 -3872185.282 3 23959353.918 23959350.550 23959352.754
+ 28.100 20.500
+ 06 1 2 0 6 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15324669.292 6 -11941292.396 6 21400922.407 21400921.037 21400921.769
+ 40.100 37.400
+ -18449943.034 7 -14376567.593 6 21297806.890 21297805.450 21297805.971
+ 44.500 40.700
+ -47962.985 3 -37373.123 3 25210227.008 25210225.992 25210226.417
+ 23.800 20.500
+ -22238187.151 7 -17328441.266 7 20269848.358 20269846.801 20269847.142
+ 46.100 46.000
+ -13051216.554 6 -10169764.752 5 22339883.941 22339879.578 22339882.878
+ 39.800 33.800
+ -12068631.299 6 -9404122.491 5 22185690.327 22185688.347 22185689.146
+ 36.500 31.800
+ -5064280.381 4 -3946188.365 3 23941281.695 23941278.682 23941280.597
+ 28.600 23.400
+ 06 1 2 0 6 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15398631.093 6 -11998924.933 6 21386848.294 21386846.340 21386847.373
+ 40.500 37.000
+ -18472089.907 7 -14393824.891 6 21293592.091 21293591.040 21293591.402
+ 44.400 40.800
+ -67809.842 4 -52838.177 3 25206450.486 25206449.939 25206449.534
+ 24.900 22.600
+ -22205078.519 7 -17302642.325 7 20276148.656 20276147.106 20276147.487
+ 46.100 45.700
+ -12965779.267 6 -10103190.254 5 22356141.561 22356138.007 22356140.878
+ 39.500 34.600
+ -12178589.480 5 -9489804.135 5 22164765.621 22164764.341 22164764.505
+ 35.600 32.800
+ -5159220.703 4 -4020167.771 3 23923214.453 23923212.411 23923213.520
+ 28.400 23.400
+ 06 1 2 0 7 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15472131.440 6 -12056197.911 6 21372861.355 21372859.742 21372860.667
+ 40.500 37.600
+ -18493681.626 7 -14410649.591 6 21289483.216 21289482.344 21289482.462
+ 44.300 40.700
+ -87230.027 3 -67970.758 3 25202754.622 25202753.887 25202753.806
+ 23.000 19.900
+ -22171570.641 7 -17276532.287 7 20282525.091 20282523.475 20282523.902
+ 46.400 45.800
+ -12880097.305 6 -10036425.098 5 22372446.019 22372442.895 22372445.533
+ 39.100 34.700
+ -12288214.520 6 -9575226.186 5 22143904.952 22143903.059 22143903.825
+ 36.000 32.600
+ -5254129.372 4 -4094122.515 3 23905154.381 23905151.548 23905153.029
+ 28.600 23.000
+ 06 1 2 0 7 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15545167.751 6 -12113109.286 6 21358962.675 21358961.519 21358962.004
+ 40.300 38.100
+ -18514717.109 7 -14427040.860 6 21285480.465 21285479.384 21285479.688
+ 44.500 40.800
+ -106222.202 3 -82769.845 3 25199141.378 25199139.852 25199140.417
+ 22.100 19.300
+ -22137664.819 7 -17250112.163 7 20288977.036 20288975.539 20288975.907
+ 46.600 45.700
+ -12794171.681 6 -9969470.098 5 22388797.734 22388793.924 22388796.701
+ 39.100 34.500
+ -12397503.154 6 -9660386.120 5 22123107.647 22123106.204 22123106.580
+ 36.000 33.100
+ -5349005.482 4 -4168051.870 4 23887099.278 23887097.757 23887098.502
+ 29.900 26.500
+ 06 1 2 0 8 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15617737.867 6 -12169657.391 6 21345152.938 21345151.836 21345152.394
+ 40.900 37.800
+ -18535195.635 7 -14442998.142 6 21281583.679 21281582.327 21281582.930
+ 44.600 40.800
+ -124785.746 3 -97234.910 2 25195608.190 25195607.097 25195607.381
+ 23.000 17.800
+ -22103362.838 7 -17223383.341 7 20295504.446 20295502.940 20295503.306
+ 46.500 45.700
+ -12708003.030 6 -9902325.734 5 22405194.974 22405191.720 22405194.102
+ 38.900 35.400
+ -12506452.074 6 -9745281.327 5 22102375.263 22102373.929 22102374.305
+ 36.600 33.200
+ -5443847.801 5 -4241954.907 4 23869052.024 23869050.167 23869051.054
+ 30.100 25.600
+ 06 1 2 0 8 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15689839.676 6 -12225840.589 6 21331432.700 21331431.050 21331431.955
+ 40.800 37.500
+ -18555115.803 7 -14458520.339 6 21277792.983 21277791.703 21277792.243
+ 44.700 40.800
+ -142919.337 4 -111364.933 3 25192157.924 25192156.485 25192157.004
+ 25.900 21.100
+ -22068666.261 7 -17196347.044 7 20302106.963 20302105.445 20302105.846
+ 46.400 45.600
+ -12621592.506 6 -9834992.883 5 22421638.401 22421634.816 22421637.625
+ 39.200 34.700
+ -12615057.961 6 -9829909.231 5 22081707.855 22081706.667 22081707.184
+ 37.200 32.800
+ -5538655.440 4 -4315830.901 4 23851010.444 23851008.885 23851009.389
+ 29.200 24.200
+ 06 1 2 0 9 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15761470.942 6 -12281657.140 6 21317801.905 21317800.076 21317801.052
+ 41.000 37.500
+ -18574476.656 7 -14473606.702 6 21274108.599 21274107.547 21274107.884
+ 44.800 40.900
+ -160621.718 3 -125159.004 3 25188788.691 25188788.068 25188787.634
+ 23.400 19.900
+ -22033576.648 7 -17169004.481 7 20308784.338 20308782.793 20308783.192
+ 46.600 45.600
+ -12534940.911 6 -9767472.196 5 22438127.822 22438123.997 22438126.779
+ 38.900 34.300
+ -12723317.509 6 -9914267.263 5 22061105.830 22061105.505 22061105.701
+ 36.700 32.800
+ -5633427.179 4 -4389678.965 3 23832976.177 23832973.934 23832974.897
+ 28.800 22.600
+ 06 1 2 0 9 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15832629.471 6 -12337105.311 6 21304260.595 21304259.002 21304259.833
+ 40.900 37.800
+ -18593278.027 7 -14488257.110 6 21270530.984 21270529.646 21270530.257
+ 45.000 40.700
+ -177891.811 3 -138616.209 2 25185502.235 25185500.902 25185500.989
+ 22.100 17.000
+ -21998095.550 7 -17141356.873 7 20315536.324 20315534.606 20315535.098
+ 46.400 45.500
+ -12448049.140 6 -9699764.338 5 22454662.186 22454659.176 22454661.820
+ 39.400 34.600
+ -12831227.365 6 -9998352.803 5 22040571.099 22040571.040 22040571.262
+ 37.400 33.200
+ -5728162.006 4 -4463498.274 3 23814948.530 23814946.219 23814947.300
+ 28.800 23.800
+ 06 1 2 0 10 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -15903312.799 6 -12392183.206 6 21290809.861 21290808.537 21290809.328
+ 41.400 37.900
+ -18611518.566 7 -14502470.506 6 21267060.122 21267058.541 21267059.387
+ 45.000 40.700
+ -194728.656 4 -151735.797 2 25182298.458 25182297.017 25182297.760
+ 24.900 17.000
+ -21962224.485 7 -17113405.393 7 20322362.254 20322360.614 20322361.049
+ 46.500 45.400
+ -12360918.040 6 -9631869.996 5 22471243.217 22471239.522 22471242.312
+ 39.100 34.500
+ -12938784.117 6 -10082163.216 5 22020103.915 22020103.357 22020103.926
+ 37.100 33.000
+ -5822858.996 5 -4537288.087 3 23796929.057 23796926.027 23796927.942
+ 31.100 23.000
+ 06 1 2 0 10 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -15973519.091 6 -12446889.374 6 21277450.344 21277448.546 21277449.649
+ 41.100 37.700
+ -18629197.456 7 -14516246.253 6 21263695.654 21263694.443 21263694.902
+ 44.700 40.700
+ -211131.092 3 -164516.876 2 25179177.189 25179175.883 25179175.967
+ 22.100 17.000
+ -21925964.910 7 -17085151.176 7 20329262.234 20329260.573 20329260.994
+ 46.400 45.300
+ -12273548.764 6 -9563790.052 5 22487868.607 22487865.205 22487867.946
+ 38.200 33.900
+ -13045984.725 6 -10165696.117 5 21999704.343 21999703.722 21999704.269
+ 37.200 32.800
+ -5917516.695 5 -4611047.294 4 23778915.974 23778913.503 23778914.720
+ 31.100 24.200
+ 06 1 2 0 11 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16043245.944 6 -12501221.967 6 21264181.400 21264180.071 21264180.815
+ 41.100 38.100
+ -18646313.944 7 -14529583.764 6 21260438.303 21260437.269 21260437.619
+ 44.500 40.900
+ -227098.147 4 -176958.722 3 25176138.188 25176137.457 25176137.985
+ 24.200 18.600
+ -21889318.541 7 -17056595.563 7 20336235.879 20336234.172 20336234.629
+ 46.400 45.300
+ -12185942.175 6 -9495525.195 5 22504539.769 22504536.257 22504539.127
+ 38.100 33.900
+ -13152825.708 6 -10248948.795 5 21979373.850 21979372.862 21979373.269
+ 37.900 34.000
+ -6012133.994 5 -4684775.028 3 23760910.668 23760908.048 23760909.492
+ 31.600 23.000
+ 06 1 2 0 11 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16112491.364 6 -12555179.403 6 21251004.730 21251003.093 21251003.787
+ 40.700 38.100
+ -18662867.553 7 -14542482.667 6 21257288.421 21257287.035 21257287.621
+ 44.600 40.600
+ -242628.740 3 -189060.473 3 25173183.761 25173182.272 25173182.159
+ 23.000 19.300
+ -21852287.066 7 -17027739.865 7 20343282.463 20343281.097 20343281.398
+ 46.600 45.300
+ -12098099.368 6 -9427076.275 5 22521256.104 22521252.399 22521255.218
+ 38.100 34.100
+ -13259303.672 6 -10331918.578 5 21959111.807 21959110.727 21959111.026
+ 37.600 34.500
+ -6106709.871 5 -4758470.477 4 23742912.990 23742910.445 23742911.984
+ 30.200 24.600
+ 06 1 2 0 12 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16181253.159 6 -12608760.002 6 21237919.243 21237918.044 21237918.990
+ 41.600 37.900
+ -18678856.948 7 -14554941.925 6 21254245.693 21254244.271 21254244.952
+ 44.500 40.600
+ -257721.898 3 -200821.366 3 25170310.356 25170310.274 25170309.931
+ 22.600 19.300
+ -21814871.987 7 -16998585.255 7 20350402.428 20350400.916 20350401.227
+ 46.700 45.300
+ -12010020.987 6 -9358443.805 5 22538016.426 22538013.072 22538015.718
+ 38.100 33.600
+ -13365415.535 6 -10414603.087 5 21938919.456 21938918.081 21938918.577
+ 37.200 34.400
+ -6201243.405 5 -4832132.928 3 23724924.533 23724921.290 23724923.425
+ 30.600 23.800
+ 06 1 2 0 12 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16249529.465 6 -12661962.293 6 21224927.515 21224925.329 21224926.535
+ 41.300 37.700
+ -18694281.668 7 -14566961.177 6 21251310.475 21251309.139 21251309.790
+ 44.500 40.900
+ -272376.610 4 -212240.587 2 25167522.829 25167520.475 25167521.677
+ 25.300 13.900
+ -21777074.744 7 -16969132.853 7 20357594.941 20357593.472 20357593.792
+ 46.800 45.300
+ -11921708.098 6 -9289628.581 5 22554821.536 22554818.473 22554821.007
+ 37.700 33.200
+ -13471157.823 6 -10496999.628 5 21918797.375 21918795.851 21918796.403
+ 37.300 33.900
+ -6295733.116 4 -4905761.219 3 23706942.890 23706940.423 23706941.909
+ 28.100 22.100
+ 06 1 2 0 13 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16317317.911 6 -12714784.438 6 21212027.015 21212025.723 21212026.581
+ 41.400 38.100
+ -18709141.026 7 -14578539.883 6 21248482.736 21248481.691 21248481.972
+ 44.500 40.800
+ -286591.847 3 -223317.333 2 25164817.211 25164816.012 25164816.459
+ 23.000 16.100
+ -21738897.183 7 -16939384.100 7 20364860.009 20364858.418 20364858.845
+ 46.700 45.300
+ -11833161.437 6 -9220631.198 5 22571671.767 22571668.161 22571671.028
+ 37.600 32.800
+ -13576527.364 6 -10579105.719 5 21898746.218 21898744.653 21898745.420
+ 38.100 34.000
+ -6390177.900 4 -4979354.512 3 23688971.229 23688968.448 23688969.970
+ 29.200 23.400
+ 06 1 2 0 13 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16384616.538 6 -12767224.895 6 21199221.363 21199219.396 21199220.362
+ 41.800 38.700
+ -18723434.280 7 -14589677.474 6 21245763.087 21245761.803 21245762.306
+ 44.700 41.200
+ -300366.723 3 -234051.006 2 25162196.020 25162194.649 25162194.836
+ 21.100 17.000
+ -21700340.637 7 -16909340.036 7 20372197.047 20372195.436 20372195.899
+ 46.600 45.100
+ -11744382.129 6 -9151452.536 5 22588566.340 22588562.673 22588565.374
+ 37.600 33.600
+ -13681520.995 6 -10660918.913 5 21878766.089 21878764.990 21878765.574
+ 38.400 33.900
+ -6484576.707 5 -5052911.992 3 23671007.492 23671004.461 23671006.627
+ 30.200 21.600
+ 06 1 2 0 14 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16451423.117 6 -12819281.942 6 21186507.916 21186506.418 21186507.374
+ 41.900 38.600
+ -18737160.484 7 -14600373.207 6 21243151.132 21243149.739 21243150.358
+ 44.700 41.200
+ -313699.904 3 -244440.512 3 25159658.001 25159657.753 25159657.995
+ 23.800 18.600
+ -21661406.863 7 -16879002.028 7 20379605.800 20379604.282 20379604.639
+ 46.600 45.000
+ -11655371.192 6 -9082093.393 5 22605504.473 22605500.597 22605503.618
+ 37.700 32.600
+ -13786135.182 6 -10742436.438 5 21858858.160 21858857.591 21858858.115
+ 38.400 34.400
+ -6578928.199 5 -5126432.593 3 23653053.317 23653050.060 23653052.144
+ 31.100 22.600
+ 06 1 2 0 14 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16517735.816 7 -12870954.154 6 21173889.336 21173887.443 21173888.519
+ 42.100 38.300
+ -18750318.903 7 -14610626.512 6 21240647.085 21240645.680 21240646.288
+ 44.700 41.200
+ -326590.957 3 -254485.470 2 25157205.983 25157204.454 25157205.048
+ 23.800 17.000
+ -21622097.310 7 -16848371.203 7 20387086.140 20387084.591 20387085.023
+ 46.700 45.100
+ -11566129.589 6 -9012554.483 5 22622486.323 22622482.603 22622485.719
+ 37.500 32.600
+ -13890366.827 6 -10823655.846 5 21839022.376 21839023.132 21839023.339
+ 38.600 35.200
+ -6673231.545 5 -5199915.710 3 23635107.335 23635104.454 23635106.574
+ 31.800 22.100
+ 06 1 2 0 15 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16583552.618 7 -12922239.948 6 21161364.738 21161362.895 21161363.917
+ 42.200 38.600
+ -18762909.372 7 -14620437.262 6 21238251.131 21238249.770 21238250.381
+ 44.700 40.900
+ -339038.802 4 -264185.086 3 25154837.157 25154835.919 25154836.110
+ 26.200 18.600
+ -21582413.831 7 -16817449.008 7 20394637.895 20394636.172 20394636.686
+ 46.700 44.900
+ -11476658.256 6 -8942836.565 5 22639512.131 22639508.342 22639511.353
+ 36.800 32.100
+ -13994212.468 6 -10904574.475 5 21819262.452 21819261.646 21819262.218
+ 38.600 34.600
+ -6767485.301 5 -5273360.158 4 23617171.821 23617169.157 23617170.693
+ 31.000 24.200
+ 06 1 2 0 15 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16648871.490 7 -12973137.743 6 21148934.643 21148933.190 21148933.929
+ 42.100 38.800
+ -18774930.850 7 -14629804.643 6 21235963.676 21235962.192 21235962.852
+ 44.800 41.100
+ -351042.311 3 -273538.471 3 25152552.692 25152551.403 25152551.378
+ 22.600 18.600
+ -21542357.939 7 -16786236.624 7 20402260.257 20402258.521 20402259.053
+ 46.900 44.900
+ -11386958.007 6 -8872940.284 5 22656581.557 22656578.032 22656580.711
+ 36.700 32.700
+ -14097669.055 6 -10985189.974 5 21799576.048 21799574.404 21799575.077
+ 38.400 34.100
+ -6861688.297 4 -5346765.055 4 23599245.384 23599242.771 23599244.293
+ 29.200 25.600
+ 06 1 2 0 16 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16713690.270 7 -13023645.856 6 21136600.215 21136598.570 21136599.402
+ 42.000 39.100
+ -18786383.015 7 -14638728.399 6 21233784.287 21233782.944 21233783.396
+ 44.400 41.200
+ -362601.056 3 -282545.238 2 25150353.171 25150352.248 25150352.158
+ 22.600 17.800
+ -21501931.121 7 -16754735.205 7 20409953.235 20409951.564 20409952.034
+ 46.900 44.800
+ -11297029.774 6 -8802866.354 5 22673694.137 22673691.019 22673693.556
+ 36.500 33.200
+ -14200733.429 6 -11065499.835 5 21779963.955 21779962.078 21779962.683
+ 38.600 35.100
+ -6955839.315 5 -5420129.449 4 23581328.889 23581326.622 23581327.939
+ 31.600 27.100
+ 06 1 2 0 16 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16778007.162 7 -13073762.894 6 21124360.986 21124359.536 21124360.277
+ 42.100 39.100
+ -18797265.167 7 -14647207.989 6 21231713.276 21231712.173 21231712.584
+ 44.400 41.200
+ -373713.856 3 -291204.566 2 25148238.383 25148237.107 25148237.419
+ 23.400 15.100
+ -21461135.173 7 -16722946.152 7 20417716.281 20417714.722 20417715.190
+ 47.000 44.800
+ -11206874.481 6 -8732615.506 5 22690849.750 22690846.728 22690849.343
+ 36.500 32.600
+ -14303402.157 6 -11145501.411 5 21760426.002 21760424.706 21760425.250
+ 38.800 34.700
+ -7049937.268 5 -5493452.475 4 23563422.994 23563420.522 23563421.935
+ 33.200 28.400
+ 06 1 2 0 17 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16841820.136 7 -13123487.265 6 21112217.547 21112216.112 21112217.044
+ 42.200 39.000
+ -18807576.523 7 -14655242.805 6 21229751.093 21229749.973 21229750.314
+ 44.300 41.100
+ -384379.848 4 -299515.686 3 25146208.535 25146208.024 25146207.908
+ 24.900 19.300
+ -21419971.342 7 -16690870.436 7 20425549.620 20425547.941 20425548.373
+ 46.800 44.700
+ -11116493.377 6 -8662188.705 5 22708049.827 22708045.973 22708048.582
+ 36.400 33.200
+ -14405672.126 6 -11225192.251 5 21740963.929 21740963.386 21740963.845
+ 38.900 34.600
+ -7143980.758 5 -5566733.076 4 23545526.868 23545524.689 23545525.739
+ 33.100 28.600
+ 06 1 2 0 17 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -16905127.357 7 -13172817.537 6 21100171.021 21100169.130 21100170.139
+ 42.200 38.800
+ -18817316.950 7 -14662832.743 6 21227897.586 21227896.404 21227896.831
+ 44.300 41.100
+ -394598.445 4 -307478.203 3 25144264.764 25144262.951 25144263.494
+ 26.200 19.900
+ -21378441.307 7 -16658509.365 7 20433452.579 20433450.821 20433451.309
+ 46.800 44.800
+ -11025887.096 6 -8591586.447 5 22725291.850 22725287.653 22725290.643
+ 36.300 33.000
+ -14507540.178 6 -11304569.905 5 21721578.718 21721578.474 21721578.792
+ 38.900 34.600
+ -7237968.724 5 -5639970.428 4 23527641.391 23527638.695 23527640.484
+ 32.600 26.500
+ 06 1 2 0 18 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -16967926.924 7 -13221752.242 6 21088220.285 21088218.517 21088219.687
+ 42.500 38.900
+ -18826485.603 7 -14669977.139 6 21226152.921 21226151.651 21226152.122
+ 44.600 41.100
+ -404368.582 4 -315091.296 1 25142404.975 25142403.242 25142404.199
+ 25.300 11.000
+ -21336546.799 7 -16625864.290 7 20441424.478 20441423.095 20441423.407
+ 46.700 44.600
+ -10935056.821 6 -8520809.644 5 22742575.248 22742572.245 22742574.695
+ 36.000 32.600
+ -14609003.059 6 -11383631.847 5 21702271.902 21702270.496 21702271.193
+ 39.000 34.700
+ -7331899.819 5 -5713163.465 4 23509766.678 23509764.676 23509765.688
+ 31.800 27.100
+ 06 1 2 0 18 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17030216.701 7 -13270289.711 6 21076366.985 21076365.283 21076366.326
+ 42.300 38.900
+ -18835082.186 7 -14676675.770 6 21224516.922 21224515.712 21224516.209
+ 44.500 41.200
+ -413689.738 3 -322354.527 3 25140631.514 25140630.123 25140630.648
+ 21.100 18.600
+ -21294289.454 7 -16592936.484 7 20449465.787 20449464.430 20449464.664
+ 46.800 44.600
+ -10844003.572 5 -8449859.081 5 22759901.420 22759898.907 22759901.389
+ 35.800 31.800
+ -14710057.320 6 -11462375.386 5 21683042.295 21683040.664 21683041.257
+ 38.900 35.400
+ -7425772.842 5 -5786311.250 4 23491902.920 23491900.638 23491901.914
+ 31.500 25.300
+ 06 1 2 0 19 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17091994.934 7 -13318428.569 6 21064611.132 21064609.453 21064610.295
+ 42.400 39.500
+ -18843105.967 7 -14682928.061 6 21222990.040 21222988.758 21222989.301
+ 44.500 41.000
+ -422560.786 3 -329267.018 3 25138943.052 25138942.059 25138942.115
+ 23.000 18.600
+ -21251670.913 7 -16559727.228 7 20457575.912 20457574.426 20457574.783
+ 46.800 44.600
+ -10752728.294 6 -8378735.508 5 22777272.465 22777267.960 22777271.226
+ 36.500 31.100
+ -14810699.975 6 -11540798.196 5 21663889.973 21663888.952 21663889.489
+ 39.300 35.600
+ -7519586.761 5 -5859412.965 4 23474050.986 23474048.812 23474050.100
+ 32.000 25.600
+ 06 1 2 0 19 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17153260.007 7 -13366167.562 6 21052952.396 21052951.168 21052951.864
+ 42.700 39.700
+ -18850556.941 7 -14688734.011 6 21221572.323 21221570.843 21221571.565
+ 44.400 40.900
+ -430981.322 3 -335828.459 3 25137340.912 25137339.746 25137339.634
+ 23.000 20.500
+ -21208692.899 7 -16526237.865 7 20465754.171 20465752.915 20465753.100
+ 46.800 44.300
+ -10661231.846 5 -8307439.598 5 22794683.161 22794679.496 22794682.123
+ 35.600 31.600
+ -14910927.889 6 -11618897.825 5 21644816.960 21644816.125 21644816.622
+ 39.200 35.700
+ -7613340.206 5 -5932467.581 4 23456210.977 23456207.938 23456209.839
+ 31.600 25.300
+ 06 1 2 0 20 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17214009.689 7 -13413504.950 6 21041392.414 21041390.762 21041391.653
+ 42.700 39.500
+ -18857434.360 7 -14694093.036 6 21220263.687 21220262.202 21220262.857
+ 44.400 40.800
+ -438950.700 3 -342038.364 2 25135823.778 25135823.147 25135822.866
+ 22.100 17.800
+ -21165356.769 7 -16492469.446 7 20474000.970 20473999.448 20473999.859
+ 46.800 44.300
+ -10569515.436 5 -8235972.304 5 22812135.073 22812132.609 22812134.809
+ 35.100 31.500
+ -15010737.875 6 -11696671.798 5 21625823.615 21625822.885 21625823.284
+ 39.400 35.400
+ -7707031.938 5 -6005474.102 4 23438381.794 23438378.889 23438380.675
+ 33.000 25.300
+ 06 1 2 0 20 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17274242.377 7 -13460439.481 6 21029930.491 21029928.698 21029929.695
+ 42.600 39.600
+ -18863737.813 7 -14699004.810 6 21219063.894 21219062.820 21219063.242
+ 44.200 41.100
+ -446468.155 4 -347896.082 2 25134393.896 25134392.286 25134392.947
+ 24.600 17.000
+ -21121664.101 7 -16458423.211 7 20482315.551 20482313.904 20482314.403
+ 46.800 44.300
+ -10477579.851 5 -8164334.225 5 22829629.973 22829627.042 22829629.822
+ 35.200 30.600
+ -15110126.622 6 -11774117.541 6 21606911.314 21606910.033 21606910.443
+ 39.800 36.100
+ -7800660.471 5 -6078431.394 4 23420564.991 23420561.896 23420563.858
+ 33.800 24.900
+ 06 1 2 0 21 0.0000000 0 7G29G 6G27G10G 2G26G21
+ -17333956.348 7 -13506969.824 6 21018567.225 21018565.657 21018566.528
+ 42.900 39.700
+ -18869466.836 7 -14703468.978 6 21217973.684 21217972.481 21217972.990
+ 44.300 40.800
+ -453532.524 3 -353400.771 3 25133048.945 25133048.572 25133048.085
+ 23.400 19.900
+ -21077616.744 7 -16424100.594 7 20490697.523 20490695.761 20490696.319
+ 46.800 44.100
+ -10385426.212 5 -8092526.219 5 22847167.358 22847163.621 22847166.549
+ 35.600 31.100
+ -15209090.989 6 -11851232.594 6 21588078.656 21588077.605 21588078.083
+ 40.000 36.000
+ -7894224.595 5 -6151338.478 4 23402760.520 23402757.401 23402759.335
+ 33.100 25.600
+ 06 1 2 0 21 30.0000000 0 7G29G 6G27G10G 2G26G21
+ -17393149.506 7 -13553094.340 6 21007303.144 21007301.571 21007302.453
+ 42.800 40.000
+ -18874621.271 7 -14707485.414 6 21216993.024 21216991.491 21216992.235
+ 44.400 40.800
+ -460143.445 4 -358552.108 3 25131791.634 25131789.951 25131790.763
+ 27.100 19.300
+ -21033216.262 7 -16389502.810 7 20499146.505 20499144.929 20499145.343
+ 46.800 44.200
+ -10293055.395 5 -8020548.965 5 22864745.083 22864741.053 22864744.068
+ 35.600 31.600
+ -15307627.887 6 -11928014.556 5 21569327.262 21569326.553 21569327.076
+ 40.100 35.900
+ -7987723.251 5 -6224194.535 4 23384967.638 23384965.063 23384966.695
+ 32.800 25.900
+ 06 1 2 0 22 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17451820.414 7 -13598811.897 6 20996138.761 20996136.803 20996137.832
+ 42.700 39.800
+ -18879200.626 7 -14711053.741 6 21216121.467 21216120.159 21216120.818
+ 44.300 40.900
+ -466299.977 4 -363349.382 3 25130620.201 25130618.194 25130619.470
+ 26.800 18.600
+ -83869.123 4 -65352.671 2 24836575.451 24836574.153 24836574.863
+ 27.600 13.900
+ -20988464.351 7 -16354631.192 7 20507662.641 20507660.957 20507661.475
+ 46.700 44.100
+ -10200468.543 5 -7948403.394 5 22882363.789 22882359.835 22882362.734
+ 35.200 31.800
+ -15405734.070 6 -12004460.910 5 21550658.868 21550657.442 21550658.210
+ 40.500 35.600
+ -8081155.119 5 -6296998.564 4 23367188.397 23367185.666 23367187.380
+ 33.600 26.800
+ 06 1 2 0 22 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17509967.046 7 -13644120.929 6 20985073.455 20985071.789 20985072.772
+ 43.000 40.100
+ -18883204.676 7 -14714173.778 6 21215359.719 21215358.213 21215358.885
+ 44.200 40.800
+ -472001.870 3 -367792.399 3 25129534.500 25129533.686 25129533.706
+ 22.600 19.900
+ -146363.965 4 -114049.935 1 24824682.593 24824681.928 24824681.926
+ 25.600 11.000
+ -20943362.433 7 -16319486.835 7 20516245.272 20516243.622 20516244.131
+ 47.000 44.100
+ -10107666.799 5 -7876090.370 5 22900022.399 22900019.550 22900022.128
+ 34.700 31.500
+ -15503406.483 6 -12080569.259 6 21532072.357 21532071.194 21532071.801
+ 40.600 36.300
+ -8174518.670 5 -6369749.359 4 23349422.207 23349419.051 23349420.786
+ 33.500 27.100
+ 06 1 2 0 23 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17567587.818 7 -13689020.207 6 20974108.003 20974106.857 20974107.583
+ 42.600 40.100
+ -18886633.196 7 -14716845.347 6 21214707.250 21214705.694 21214706.386
+ 44.100 40.800
+ -477248.458 4 -371880.594 3 25128536.206 25128535.177 25128535.219
+ 24.600 18.600
+ -208506.477 4 -162472.647 2 24812858.038 24812857.027 24812856.745
+ 25.900 13.900
+ -20897912.090 7 -16284070.979 7 20524894.131 20524892.404 20524892.993
+ 47.100 44.100
+ -10014650.916 5 -7803610.481 5 22917723.636 22917719.830 22917722.612
+ 34.300 31.100
+ -15600642.088 6 -12156337.229 6 21513568.574 21513567.986 21513568.316
+ 40.600 36.800
+ -8267812.909 5 -6442446.141 4 23331668.840 23331665.848 23331667.701
+ 32.800 27.100
+ 06 1 2 0 23 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17624681.149 7 -13733508.485 6 20963244.135 20963242.285 20963243.208
+ 42.700 39.900
+ -18889485.721 7 -14719068.090 6 21214164.163 21214162.991 21214163.440
+ 44.000 40.800
+ -482038.873 3 -375613.405 3 25127624.688 25127623.549 25127623.479
+ 23.400 18.600
+ -270294.050 3 -210618.767 2 24801100.615 24801098.779 24801099.174
+ 21.600 13.900
+ -20852115.158 7 -16248385.055 7 20533608.996 20533607.277 20533607.812
+ 46.900 44.100
+ -9921421.890 5 -7730964.512 5 22935464.732 22935460.615 22935463.510
+ 34.000 30.800
+ -15697437.750 6 -12231762.386 6 21495149.497 21495148.219 21495148.742
+ 40.400 36.600
+ -8361036.256 5 -6515087.660 4 23313928.811 23313925.898 23313927.809
+ 32.800 27.100
+ 06 1 2 0 24 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17681245.254 7 -13777584.385 6 20952480.278 20952478.342 20952479.432
+ 42.700 39.700
+ -18891761.773 7 -14720841.631 6 21213731.292 21213729.975 21213730.430
+ 44.100 41.000
+ -486372.837 4 -378990.502 3 25126800.352 25126798.297 25126799.340
+ 24.600 18.600
+ -331723.898 3 -258486.129 3 24789409.392 24789409.466 24789408.157
+ 21.600 18.600
+ -20805973.239 7 -16212430.311 7 20542389.633 20542387.770 20542388.420
+ 47.000 44.100
+ -9827980.750 5 -7658153.237 5 22953245.610 22953242.052 22953244.620
+ 34.000 31.500
+ -15793790.237 6 -12306842.220 6 21476814.382 21476812.880 21476813.675
+ 40.800 37.000
+ -8454187.318 5 -6587672.868 4 23296202.314 23296200.061 23296201.403
+ 33.100 27.900
+ 06 1 2 0 24 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17737278.250 7 -13821246.433 6 20941817.169 20941815.737 20941816.592
+ 42.800 40.100
+ -18893461.752 7 -14722166.289 6 21213407.672 21213406.298 21213406.908
+ 44.000 40.800
+ -490249.353 3 -382011.157 2 25126062.516 25126060.861 25126061.455
+ 19.900 17.000
+ -392793.324 3 -306072.672 3 24777787.859 24777788.210 24777787.333
+ 19.900 19.900
+ -20759487.771 7 -16176207.868 7 20551235.419 20551233.670 20551234.203
+ 46.800 43.900
+ -9734328.658 5 -7585177.616 5 22971067.875 22971063.544 22971066.399
+ 33.800 31.300
+ -15889696.443 6 -12381574.304 6 21458563.417 21458562.320 21458563.146
+ 41.100 36.100
+ -8547265.041 5 -6660200.921 4 23278489.575 23278487.711 23278488.805
+ 32.300 27.400
+ 06 1 2 0 25 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17792778.861 7 -13864493.641 6 20931255.909 20931254.289 20931255.234
+ 42.900 40.300
+ -18894585.428 7 -14723041.870 6 21213193.963 21213192.386 21213193.117
+ 44.000 40.500
+ -493668.052 3 -384675.064 2 25125411.538 25125410.025 25125410.730
+ 22.100 17.800
+ -453499.416 3 -353376.055 3 24766235.892 24766236.335 24766234.989
+ 18.600 19.300
+ -20712660.385 7 -16139718.994 7 20560146.336 20560144.746 20560145.115
+ 46.800 44.000
+ -9640466.549 5 -7512038.337 5 22988928.155 22988925.058 22988927.411
+ 34.300 31.500
+ -15985153.440 6 -12455956.349 6 21440398.735 21440397.638 21440398.270
+ 41.200 37.100
+ -8640267.996 5 -6732670.715 4 23260792.687 23260789.737 23260791.713
+ 34.100 27.100
+ 06 1 2 0 25 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17847745.265 7 -13907324.579 6 20920796.352 20920794.544 20920795.510
+ 42.900 40.500
+ -18895132.294 7 -14723468.001 6 21213089.936 21213088.355 21213089.137
+ 44.200 40.700
+ -496628.382 3 -386981.760 2 25124848.395 25124847.106 25124847.436
+ 22.600 17.800
+ -513839.554 3 -400394.264 2 24754754.164 24754753.931 24754753.302
+ 22.600 17.800
+ -20665492.861 7 -16102965.075 7 20569121.782 20569120.471 20569120.699
+ 46.700 44.000
+ -9546395.544 5 -7438736.278 5 23006828.685 23006825.888 23006828.383
+ 33.500 30.600
+ -16080157.989 6 -12529985.834 6 21422320.177 21422318.755 21422319.448
+ 41.000 37.200
+ -8733194.460 5 -6805080.914 4 23243108.724 23243106.465 23243108.013
+ 34.300 28.800
+ 06 1 2 0 26 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17902175.959 7 -13949738.078 6 20910438.607 20910436.662 20910437.777
+ 43.200 40.400
+ -18895101.984 7 -14723444.386 6 21213095.657 21213094.202 21213094.916
+ 44.300 40.500
+ -499129.849 3 -388930.980 2 25124372.497 25124371.158 25124371.821
+ 21.600 15.100
+ -573810.974 3 -447125.237 2 24743341.968 24743341.097 24743341.096
+ 21.600 13.900
+ -20617986.721 7 -16065947.302 7 20578161.815 20578160.668 20578160.721
+ 46.600 44.100
+ -9452116.518 5 -7365272.119 5 23024768.590 23024766.521 23024769.186
+ 33.600 30.100
+ -16174707.156 6 -12603660.475 6 21404327.412 21404326.635 21404327.270
+ 41.400 37.200
+ -8826043.477 5 -6877430.759 4 23225440.649 23225438.010 23225439.769
+ 34.100 28.100
+ 06 1 2 0 26 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -17956069.098 7 -13991732.705 6 20900183.248 20900181.145 20900182.297
+ 43.300 40.500
+ -18894494.520 7 -14722971.033 6 21213211.246 21213209.824 21213210.480
+ 44.200 40.800
+ -501172.189 3 -390522.366 2 25123982.976 25123981.999 25123982.435
+ 20.500 15.100
+ -633411.278 3 -493567.019 2 24731999.844 24731999.331 24731998.703
+ 22.100 17.800
+ -20570143.539 7 -16028666.899 7 20587266.205 20587264.830 20587265.074
+ 46.400 43.900
+ -9357630.440 5 -7291646.624 4 23042749.585 23042746.645 23042749.482
+ 34.400 28.600
+ -16268797.705 6 -12676977.750 6 21386422.845 21386421.793 21386422.249
+ 41.200 37.000
+ -8918813.905 5 -6949719.366 4 23207786.937 23207783.787 23207785.762
+ 32.800 28.100
+ 06 1 2 0 27 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18009423.413 7 -14033307.475 6 20890030.048 20890028.112 20890029.336
+ 43.400 40.500
+ -18893310.064 7 -14722048.080 6 21213436.484 21213435.333 21213435.718
+ 43.800 41.000
+ -502754.740 3 -391755.514 3 25123682.062 25123681.339 25123681.461
+ 23.800 19.300
+ -692637.364 3 -539717.153 3 24720730.162 24720729.407 24720729.155
+ 23.400 20.500
+ -20521965.067 7 -15991125.234 7 20596434.384 20596432.900 20596433.179
+ 46.300 43.900
+ -9262938.692 5 -7217860.874 4 23060770.700 23060766.238 23060769.401
+ 34.900 29.700
+ -16362426.879 6 -12749935.521 6 21368606.278 21368604.809 21368605.422
+ 41.300 37.600
+ -9011504.194 5 -7021945.505 4 23190148.597 23190145.917 23190147.366
+ 34.100 28.100
+ 06 1 2 0 27 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18062237.277 7 -14074461.119 6 20879979.826 20879978.018 20879979.157
+ 43.600 40.400
+ -18891548.360 7 -14720675.318 6 21213771.698 21213770.693 21213770.877
+ 43.800 41.000
+ -503877.210 3 -392630.115 3 25123469.033 25123467.981 25123468.042
+ 22.100 20.500
+ -751486.800 4 -585573.822 3 24709531.208 24709530.581 24709530.648
+ 25.900 19.900
+ -20473452.974 7 -15953323.602 7 20605665.961 20605664.476 20605664.721
+ 46.500 43.900
+ -9168042.196 5 -7143915.568 4 23078828.703 23078824.075 23078827.345
+ 33.800 28.800
+ -16455591.438 6 -12822531.260 6 21350877.056 21350876.147 21350876.629
+ 41.400 37.500
+ -9104112.695 5 -7094107.956 4 23172525.453 23172522.553 23172524.492
+ 34.400 28.100
+ 06 1 2 0 28 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18114509.007 7 -14115192.313 6 20870032.894 20870031.013 20870032.070
+ 43.200 40.800
+ -18889209.328 7 -14718852.696 6 21214216.646 21214215.635 21214215.885
+ 43.600 40.900
+ -504539.026 4 -393145.818 3 25123343.243 25123341.570 25123342.216
+ 24.200 18.600
+ -809956.809 3 -631134.782 3 24698404.719 24698404.432 24698403.913
+ 23.400 23.000
+ -20424608.708 7 -15915263.132 7 20614960.651 20614959.158 20614959.482
+ 46.600 43.800
+ -9072941.845 5 -7069811.415 5 23096924.853 23096921.259 23096924.063
+ 33.600 30.100
+ -16548288.496 6 -12894762.704 6 21333237.597 21333236.380 21333237.130
+ 41.500 37.800
+ -9196638.167 5 -7166205.683 4 23154918.955 23154915.384 23154917.749
+ 33.200 26.200
+ 06 1 2 0 28 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18166237.323 7 -14155500.069 6 20860189.179 20860187.432 20860188.433
+ 43.100 40.800
+ -18886293.004 7 -14716580.234 6 21214771.782 21214770.553 21214771.005
+ 43.700 41.000
+ -504739.858 4 -393302.273 3 25123304.395 25123303.618 25123303.709
+ 24.900 20.500
+ -868044.722 4 -676398.046 3 24687351.544 24687350.662 24687350.387
+ 25.300 23.800
+ -20375434.189 7 -15876945.324 7 20624318.080 20624316.726 20624317.040
+ 46.800 43.600
+ -8977638.752 5 -6995549.298 4 23115059.094 23115056.744 23115059.517
+ 34.000 29.900
+ -16640514.865 6 -12966627.383 6 21315687.408 21315686.267 21315686.912
+ 41.900 37.900
+ -9289079.289 5 -7238237.713 4 23137327.489 23137324.742 23137326.300
+ 34.400 27.400
+ 06 1 2 0 29 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18217420.604 7 -14195383.118 6 20850449.298 20850447.419 20850448.611
+ 43.200 40.600
+ -18882799.167 7 -14713857.765 6 21215436.556 21215435.401 21215435.836
+ 43.600 40.600
+ -504478.839 4 -393098.877 3 25123354.174 25123353.524 25123353.378
+ 24.900 22.100
+ -925748.227 4 -721361.771 3 24676370.954 24676369.307 24676369.773
+ 25.600 18.600
+ -20325930.899 7 -15838371.329 7 20633738.374 20633736.829 20633737.224
+ 46.800 43.600
+ -8882133.744 5 -6921129.839 4 23133234.022 23133230.726 23133233.488
+ 32.000 28.800
+ -16732267.684 6 -13038123.046 6 21298226.981 21298226.225 21298226.814
+ 41.800 37.600
+ -9381434.557 5 -7310202.816 4 23119753.681 23119750.368 23119752.447
+ 35.300 29.000
+ 06 1 2 0 29 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18268057.347 7 -14234840.306 6 20840813.384 20840811.493 20840812.634
+ 43.300 40.700
+ -18878728.046 7 -14710685.460 6 21216211.376 21216210.176 21216210.605
+ 43.600 41.000
+ -503756.022 3 -392535.635 3 25123491.317 25123490.902 25123490.700
+ 23.000 20.500
+ -983063.867 4 -766023.275 3 24665463.512 24665462.830 24665462.081
+ 24.200 21.100
+ -20276100.370 7 -15799542.343 7 20643220.761 20643219.324 20643219.607
+ 46.800 43.500
+ -8786428.304 5 -6846554.202 4 23151446.698 23151443.277 23151445.683
+ 32.300 28.600
+ -16823543.993 6 -13109247.407 6 21280858.236 21280856.936 21280857.524
+ 41.900 37.600
+ -9473702.628 5 -7382099.982 4 23102195.202 23102192.286 23102194.051
+ 34.800 28.400
+ 06 1 2 0 30 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18318146.253 7 -14273870.600 6 20831281.671 20831279.959 20831281.037
+ 43.200 41.100
+ -18874079.465 7 -14707063.195 6 21217095.915 21217094.892 21217095.117
+ 43.400 41.000
+ -502571.004 3 -391612.227 3 25123717.553 25123716.110 25123716.522
+ 22.100 18.600
+ -1039989.179 4 -810380.641 3 24654631.010 24654630.655 24654630.045
+ 24.900 21.100
+ -20225944.191 7 -15760459.603 7 20652765.364 20652763.729 20652764.197
+ 47.000 43.300
+ -8690523.536 5 -6771823.245 5 23169696.918 23169693.530 23169695.597
+ 32.300 30.200
+ -16914340.670 7 -13179998.033 6 21263579.936 21263578.743 21263579.539
+ 42.300 37.700
+ -9565882.210 5 -7453928.193 4 23084653.699 23084650.956 23084652.618
+ 34.700 27.900
+ 06 1 2 0 30 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18367685.867 7 -14312472.875 6 20821854.662 20821852.951 20821853.984
+ 43.400 41.000
+ -18868853.676 7 -14702991.150 6 21218090.186 21218089.192 21218089.371
+ 43.500 40.800
+ -500923.428 4 -390328.416 3 25124031.245 25124029.997 25124030.361
+ 24.900 21.600
+ -1096522.171 4 -854432.252 3 24643873.644 24643873.053 24643872.292
+ 25.900 23.400
+ -20175464.155 7 -15721124.510 7 20662371.200 20662369.813 20662370.157
+ 47.100 43.400
+ -8594420.157 5 -6696937.511 4 23187984.671 23187981.155 23187983.576
+ 32.100 29.000
+ -17004654.938 6 -13250372.759 6 21246393.765 21246392.404 21246393.122
+ 41.800 37.700
+ -9657971.811 5 -7525686.298 4 23067130.048 23067126.776 23067128.744
+ 35.400 27.600
+ 06 1 2 0 31 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18416674.762 7 -14350646.017 6 20812532.490 20812530.655 20812531.720
+ 43.400 41.300
+ -18863050.861 7 -14698469.470 6 21219194.616 21219193.392 21219193.867
+ 43.600 40.700
+ -498812.736 3 -388683.698 3 25124432.866 25124431.258 25124431.906
+ 23.400 22.600
+ -1152659.955 4 -898175.936 2 24633191.295 24633189.071 24633190.180
+ 28.400 17.000
+ -20124661.788 7 -15681538.242 7 20672038.550 20672037.153 20672037.511
+ 47.100 43.200
+ -8498119.187 5 -6621897.833 4 23206310.072 23206306.514 23206309.121
+ 32.100 29.000
+ -17094483.834 7 -13320369.280 6 21229299.780 21229298.636 21229299.237
+ 42.000 38.200
+ -9749970.026 5 -7597373.174 4 23049622.551 23049619.753 23049621.611
+ 34.800 27.400
+ 06 1 2 0 31 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18465111.422 7 -14388388.851 6 20803315.235 20803313.432 20803314.514
+ 43.400 41.300
+ -18856670.682 7 -14693497.900 6 21220408.810 21220407.504 21220408.018
+ 43.600 40.700
+ -496238.648 4 -386677.907 3 25124922.604 25124921.396 25124921.589
+ 24.200 22.100
+ -1208399.879 4 -941609.649 2 24622584.476 24622582.353 24622582.945
+ 26.200 15.100
+ -20073538.567 7 -15641701.961 7 20681767.054 20681765.493 20681765.930
+ 46.800 43.000
+ -8401621.950 5 -6546705.205 4 23224672.564 23224669.302 23224672.073
+ 31.800 28.100
+ -17183824.218 7 -13389985.129 6 21212298.491 21212297.749 21212298.175
+ 42.000 38.300
+ -9841875.250 5 -7668987.609 4 23032134.114 23032130.676 23032132.973
+ 35.700 27.100
+ 06 1 2 0 32 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18512994.707 7 -14425700.483 6 20794203.375 20794201.481 20794202.623
+ 43.300 41.100
+ -18849713.572 7 -14688076.781 6 21221732.753 21221731.471 21221731.981
+ 43.800 40.900
+ -493200.932 4 -384310.871 3 25125500.300 25125499.526 25125499.319
+ 24.600 22.100
+ -1263739.241 4 -984731.177 2 24612052.964 24612051.530 24612051.910
+ 25.300 15.100
+ -20022096.261 7 -15601617.049 7 20691556.298 20691554.557 20691555.095
+ 46.800 42.800
+ -8304929.301 5 -6471360.289 4 23243071.914 23243069.597 23243071.711
+ 31.600 28.600
+ -17272673.527 7 -13459218.331 6 21195391.651 21195390.175 21195390.834
+ 42.000 38.300
+ -9933686.048 6 -7740528.468 4 23014663.133 23014659.744 23014662.130
+ 36.300 28.800
+ 06 1 2 0 32 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18560323.314 7 -14462579.898 6 20785196.872 20785195.119 20785196.158
+ 43.400 41.200
+ -18842179.327 7 -14682205.938 6 21223166.478 21223164.988 21223165.781
+ 44.000 40.300
+ -489699.392 3 -381582.374 3 25126167.005 25126165.410 25126165.886
+ 23.400 19.900
+ -1318675.414 4 -1027538.550 2 24601598.935 24601598.024 24601597.855
+ 27.900 17.000
+ -19970336.465 7 -15561284.735 7 20701405.852 20701404.138 20701404.654
+ 46.800 42.700
+ -8208042.406 5 -6395864.054 4 23261509.060 23261506.294 23261508.737
+ 32.100 27.900
+ -17361028.615 7 -13528066.418 6 21178577.457 21178576.590 21178577.281
+ 42.200 38.000
+ -10025400.893 6 -7811994.557 4 22997209.778 22997207.122 22997208.927
+ 36.300 29.200
+ 06 1 2 0 33 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18607095.833 7 -14499025.996 6 20776296.003 20776294.663 20776295.430
+ 43.600 41.300
+ -18834068.677 7 -14675885.948 6 21224709.912 21224708.525 21224709.138
+ 44.100 40.500
+ -485733.619 4 -378492.142 3 25126921.493 25126920.308 25126920.768
+ 24.600 21.100
+ -1373206.195 4 -1070030.032 2 24591222.152 24591220.860 24591221.138
+ 27.100 17.000
+ -19918260.852 7 -15520706.333 7 20711315.469 20711313.890 20711314.264
+ 46.700 42.800
+ -8110962.407 5 -6320217.315 4 23279983.366 23279980.053 23279982.522
+ 31.100 27.600
+ -17448886.490 7 -13596527.074 6 21161859.427 21161857.656 21161858.667
+ 42.500 37.700
+ -10117018.496 6 -7883384.869 5 22979775.996 22979773.082 22979774.968
+ 36.500 30.200
+ 06 1 2 0 33 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18653310.796 7 -14535037.637 6 20767501.932 20767500.186 20767501.209
+ 43.400 41.400
+ -18825381.487 7 -14669116.707 6 21226363.313 21226361.589 21226362.529
+ 44.100 40.600
+ -481303.543 3 -375040.119 3 25127764.594 25127762.785 25127763.322
+ 22.100 20.500
+ -1427328.754 4 -1112203.422 2 24580922.467 24580921.706 24580921.733
+ 24.200 17.000
+ -19865870.851 7 -15479882.955 7 20721284.890 20721283.390 20721283.754
+ 46.500 42.800
+ -8013690.394 5 -6244420.958 4 23298494.748 23298490.090 23298493.398
+ 31.600 27.600
+ -17536244.507 7 -13664598.236 6 21145235.512 21145234.076 21145234.984
+ 42.700 38.000
+ -10208537.191 5 -7954698.109 4 22962360.649 22962357.673 22962359.460
+ 35.600 29.700
+ 06 1 2 0 34 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18698967.356 7 -14570614.157 6 20758813.712 20758811.961 20758813.120
+ 43.700 41.200
+ -18816117.989 7 -14661898.396 6 21228125.754 21228124.469 21228124.978
+ 43.700 40.500
+ -476409.132 3 -371226.262 3 25128695.855 25128694.908 25128694.991
+ 23.000 21.600
+ -1481040.798 4 -1154056.909 2 24570700.532 24570700.703 24570699.894
+ 24.200 17.000
+ -19813168.197 7 -15438815.953 7 20731313.950 20731312.322 20731312.743
+ 46.600 42.700
+ -7916227.420 5 -6168475.793 4 23317040.539 23317037.259 23317039.844
+ 32.000 29.200
+ -17623099.739 7 -13732277.608 6 21128707.502 21128706.295 21128706.922
+ 42.600 38.900
+ -10299955.855 6 -8025933.399 4 22944963.940 22944961.260 22944963.004
+ 36.300 29.900
+ 06 1 2 0 34 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18744063.873 7 -14605754.285 6 20750232.062 20750230.350 20750231.423
+ 43.600 41.400
+ -18806278.214 7 -14654231.038 6 21229998.212 21229996.919 21229997.426
+ 43.800 40.600
+ -471049.767 3 -367050.123 2 25129715.711 25129714.571 25129714.916
+ 21.600 17.000
+ -1534339.657 4 -1195588.470 3 24560558.914 24560557.798 24560557.870
+ 24.900 19.300
+ -19760154.556 7 -15397506.626 7 20741402.268 20741400.567 20741400.996
+ 46.500 42.800
+ -7818574.558 4 -6092382.685 4 23335622.900 23335619.848 23335622.066
+ 29.700 28.800
+ -17709449.339 7 -13799562.982 6 21112275.289 21112274.466 21112275.049
+ 42.700 38.500
+ -10391273.027 6 -8097089.608 4 22927587.048 22927584.016 22927586.037
+ 37.000 29.900
+ 06 1 2 0 35 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18788599.324 7 -14640457.216 6 20741757.279 20741755.538 20741756.616
+ 43.600 41.600
+ -18795862.638 7 -14646115.000 6 21231980.111 21231978.957 21231979.413
+ 43.600 40.700
+ -465225.273 3 -362511.532 3 25130824.175 25130822.540 25130823.304
+ 23.000 19.300
+ -1587222.934 4 -1236796.186 2 24550495.629 24550494.949 24550494.377
+ 24.200 17.800
+ -19706831.337 7 -15355956.066 7 20751548.931 20751547.549 20751547.926
+ 46.600 42.700
+ -7720732.793 5 -6016142.391 4 23354241.702 23354238.798 23354240.952
+ 31.000 28.400
+ -17795290.453 7 -13866452.128 6 21095940.532 21095939.372 21095940.112
+ 43.000 38.800
+ -10482486.801 6 -8168165.258 4 22910229.798 22910226.545 22910228.577
+ 36.500 29.900
+ 06 1 2 0 35 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18832572.516 7 -14674722.029 6 20733389.637 20733387.738 20733388.853
+ 43.500 41.900
+ -18784871.678 7 -14637550.619 6 21234071.795 21234070.439 21234071.000
+ 43.600 40.500
+ -458935.654 3 -357610.530 3 25132020.673 25132019.666 25132019.942
+ 23.400 21.100
+ -1639687.806 4 -1277677.874 2 24540512.168 24540511.029 24540510.993
+ 24.200 16.100
+ -19653200.378 7 -15314165.711 7 20761754.793 20761753.193 20761753.609
+ 46.600 42.500
+ -7622703.329 5 -5939755.822 4 23372896.389 23372892.508 23372895.369
+ 30.800 25.900
+ -17880620.272 7 -13932942.868 6 21079702.983 21079701.466 21079702.315
+ 42.500 38.600
+ -10573595.882 6 -8239159.323 4 22892892.304 22892888.830 22892891.177
+ 36.500 28.100
+ 06 1 2 0 36 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18875982.048 7 -14708547.619 6 20725128.954 20725127.161 20725128.248
+ 43.500 41.900
+ -18773305.465 7 -14628537.983 6 21236272.745 21236271.499 21236271.955
+ 43.700 40.500
+ -452181.260 3 -352347.359 2 25133305.829 25133304.473 25133304.759
+ 19.300 17.000
+ -1691732.177 4 -1318231.890 3 24530608.698 24530606.854 24530607.544
+ 26.800 18.600
+ -19599263.141 7 -15272136.693 7 20772018.824 20772017.119 20772017.612
+ 46.700 42.400
+ -7524487.258 5 -5863223.838 4 23391585.807 23391582.609 23391585.066
+ 30.600 26.800
+ -17965435.929 7 -13999032.959 6 21063562.719 21063561.746 21063562.286
+ 42.800 39.300
+ -10664598.645 6 -8310070.548 4 22875575.156 22875571.336 22875573.962
+ 37.300 27.400
+ 06 1 2 0 36 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18918826.865 7 -14741933.170 6 20716975.878 20716974.059 20716975.125
+ 43.600 41.900
+ -18761164.342 7 -14619077.369 6 21238583.066 21238581.893 21238582.261
+ 43.600 40.300
+ -444961.322 3 -346721.418 3 25134680.148 25134678.724 25134679.349
+ 23.800 20.500
+ -1743353.468 4 -1358456.266 2 24520785.279 24520783.590 24520783.962
+ 27.600 17.000
+ -19545021.326 7 -15229870.343 7 20782340.766 20782339.056 20782339.490
+ 46.700 42.300
+ -7426085.784 4 -5786547.395 4 23410310.467 23410308.271 23410310.011
+ 29.000 28.100
+ -18049734.705 7 -14064720.281 6 21047521.374 21047520.098 21047520.816
+ 43.000 38.900
+ -10755493.358 6 -8380897.592 4 22858278.128 22858274.889 22858277.133
+ 36.500 29.000
+ 06 1 2 0 37 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -18961105.985 7 -14774877.919 6 20708930.549 20708928.565 20708929.737
+ 43.700 41.800
+ -18748448.798 7 -14609169.151 6 21241002.890 21241001.432 21241002.101
+ 43.600 40.300
+ -437275.821 3 -340732.717 3 25136142.321 25136141.351 25136141.055
+ 21.600 20.500
+ -1794549.238 4 -1398349.042 3 24511042.883 24511041.974 24511041.962
+ 26.500 21.100
+ -19490476.387 7 -15187367.794 7 20792720.227 20792718.463 20792718.983
+ 46.800 42.400
+ -7327499.909 5 -5709727.274 4 23429071.194 23429068.514 23429070.688
+ 30.200 28.100
+ -18133513.839 7 -14130002.699 6 21031578.429 21031577.568 21031578.045
+ 43.000 39.300
+ -10846279.234 6 -8451639.806 5 22841002.187 22840999.154 22841001.053
+ 36.400 30.200
+ 06 1 2 0 37 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19002818.208 7 -14807380.932 6 20700992.762 20700990.949 20700992.053
+ 43.900 41.800
+ -18735159.126 7 -14598813.562 6 21243531.504 21243530.375 21243530.797
+ 43.300 40.300
+ -429124.649 3 -334381.125 3 25137693.163 25137692.680 25137692.290
+ 19.900 19.900
+ -1845316.526 4 -1437907.909 3 24501381.700 24501381.061 24501381.052
+ 24.900 22.600
+ -19435629.835 7 -15144630.216 7 20803157.009 20803155.530 20803155.875
+ 46.800 42.200
+ -7228730.669 5 -5632764.240 4 23447867.569 23447863.447 23447866.245
+ 31.100 27.400
+ -18216770.669 7 -14194878.121 6 21015735.948 21015734.167 21015735.154
+ 43.500 39.100
+ -10936954.388 6 -8522295.749 5 22823746.998 22823744.328 22823746.144
+ 37.700 31.500
+ 06 1 2 0 38 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19043962.438 7 -14839441.350 7 20693163.374 20693161.352 20693162.625
+ 44.000 42.000
+ -18721295.518 7 -14588010.750 6 21246169.752 21246168.455 21246169.000
+ 43.400 40.300
+ -420507.798 3 -327666.679 3 25139332.620 25139332.083 25139332.235
+ 21.100 18.600
+ -1895653.112 4 -1477131.208 3 24491803.474 24491802.515 24491802.568
+ 27.900 23.400
+ -19380483.513 7 -15101659.058 7 20813651.246 20813649.464 20813649.987
+ 46.600 42.200
+ -7129779.190 4 -5555659.184 4 23466696.576 23466693.602 23466695.468
+ 28.800 27.900
+ -18299502.216 7 -14259344.236 6 20999991.777 20999990.879 20999991.608
+ 43.600 39.300
+ -11027517.127 6 -8592864.096 5 22806513.595 22806510.423 22806512.591
+ 37.200 30.600
+ 06 1 2 0 38 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19084537.818 7 -14871058.511 7 20685442.062 20685440.188 20685441.405
+ 43.900 42.000
+ -18706858.646 7 -14576761.241 6 21248916.868 21248915.795 21248916.171
+ 43.300 40.400
+ -411425.079 3 -320589.215 3 25141061.814 25141060.158 25141061.102
+ 23.800 18.600
+ -1945556.594 4 -1516017.020 3 24482307.483 24482306.456 24482306.252
+ 26.800 22.600
+ -19325039.070 7 -15058455.591 7 20824201.822 20824200.301 20824200.563
+ 46.500 42.100
+ -7030646.681 4 -5478413.123 4 23485560.406 23485557.650 23485559.764
+ 29.500 27.600
+ -18381705.936 7 -14323399.058 6 20984349.384 20984347.983 20984348.835
+ 43.600 39.300
+ -11117965.943 6 -8663343.679 5 22789302.101 22789298.564 22789300.792
+ 37.200 30.800
+ 06 1 2 0 39 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19124542.880 7 -14902231.270 7 20677829.220 20677827.557 20677828.563
+ 43.900 42.200
+ -18691848.940 7 -14565065.366 6 21251773.391 21251772.062 21251772.559
+ 43.400 40.300
+ -401876.657 3 -313148.853 3 25142878.430 25142877.613 25142877.495
+ 21.600 21.100
+ -1995024.871 4 -1554563.701 3 24472893.330 24472892.453 24472892.461
+ 25.900 21.100
+ -19269298.163 7 -15015021.121 7 20834808.926 20834807.311 20834807.688
+ 46.500 42.000
+ -6931334.363 4 -5401026.921 4 23504460.056 23504456.392 23504458.977
+ 29.000 26.800
+ -18463379.292 7 -14387040.596 6 20968807.176 20968806.007 20968806.795
+ 43.600 39.300
+ -11208299.171 6 -8733733.198 5 22772112.146 22772108.813 22772110.915
+ 37.100 30.400
+ 06 1 2 0 39 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19163977.106 7 -14932959.222 7 20670325.233 20670323.400 20670324.505
+ 43.900 42.200
+ -18676266.853 7 -14552923.479 6 21254738.634 21254737.144 21254737.859
+ 43.400 40.300
+ -391862.309 4 -305345.473 3 25144784.273 25144783.049 25144783.221
+ 24.200 18.600
+ -2044055.363 4 -1592769.235 3 24463563.718 24463562.124 24463562.463
+ 25.600 18.600
+ -19213262.081 7 -14971356.642 6 20845472.277 20845470.602 20845471.136
+ 46.400 41.800
+ -6831843.164 5 -5323501.328 4 23523392.660 23523388.944 23523391.853
+ 31.300 27.100
+ -18544519.290 7 -14450266.551 6 20953366.813 20953365.580 20953366.344
+ 43.700 39.400
+ -11298514.542 6 -8804030.871 5 22754944.058 22754941.625 22754943.072
+ 36.900 30.800
+ 06 1 2 0 40 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19202839.031 7 -14963241.222 7 20662930.091 20662928.142 20662929.444
+ 44.300 42.100
+ -18660112.760 7 -14540335.873 6 21257812.410 21257810.932 21257811.740
+ 43.300 39.700
+ -381382.330 3 -297179.246 2 25146779.198 25146776.781 25146778.094
+ 22.100 13.900
+ -2092645.821 4 -1630631.924 2 24454316.106 24454314.943 24454314.938
+ 25.300 17.000
+ -19156932.474 7 -14927463.440 6 20856191.341 20856189.789 20856190.212
+ 46.400 41.900
+ -6732174.360 4 -5245837.352 4 23542358.283 23542355.295 23542357.424
+ 29.900 27.400
+ -18625123.305 7 -14513074.846 6 20938028.638 20938027.059 20938027.899
+ 43.500 39.300
+ -11388612.280 6 -8874236.875 5 22737799.098 22737796.484 22737798.130
+ 36.900 30.800
+ 06 1 2 0 40 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19241127.875 7 -14993076.673 7 20655643.945 20655641.977 20655643.280
+ 44.300 42.100
+ -18643387.437 7 -14527303.149 6 21260995.287 21260993.874 21260994.525
+ 43.300 40.000
+ -370436.542 3 -288650.047 3 25148861.244 25148860.550 25148859.873
+ 18.600 19.300
+ -2140794.088 4 -1668150.055 2 24445153.923 24445152.957 24445153.205
+ 24.900 17.000
+ -19100311.127 7 -14883342.909 6 20866966.000 20866964.524 20866964.792
+ 46.500 41.900
+ -6632328.842 5 -5168035.661 4 23561357.716 23561354.764 23561357.505
+ 30.200 24.200
+ -18705188.675 7 -14575463.421 6 20922792.420 20922791.080 20922791.904
+ 43.700 39.700
+ -11478589.853 6 -8944349.260 5 22720677.243 22720674.173 22720676.189
+ 37.600 30.200
+ 06 1 2 0 41 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19278842.704 7 -15022464.837 7 20648467.187 20648464.995 20648466.402
+ 44.100 42.100
+ -18626091.156 7 -14513825.529 6 21264286.608 21264285.325 21264285.750
+ 43.100 39.900
+ -359024.832 3 -279757.819 2 25151032.916 25151031.813 25151032.017
+ 19.900 17.800
+ -2188497.479 4 -1705321.491 3 24436077.347 24436075.545 24436075.642
+ 26.200 19.300
+ -19043399.431 7 -14838996.131 6 20877796.051 20877794.376 20877794.796
+ 46.500 41.800
+ -6532307.773 4 -5090097.197 4 23580390.786 23580388.525 23580390.635
+ 28.400 25.900
+ -18784712.916 7 -14637430.335 6 20907659.632 20907658.026 20907659.081
+ 44.000 39.300
+ -11568445.706 6 -9014366.790 4 22703577.762 22703575.061 22703576.976
+ 37.800 29.500
+ 06 1 2 0 41 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19315982.580 7 -15051404.981 7 20641399.623 20641397.662 20641398.931
+ 44.200 42.500
+ -18608224.787 7 -14499903.679 6 21267686.129 21267685.051 21267685.507
+ 42.900 40.000
+ -347147.659 3 -270502.857 3 25153292.947 25153292.318 25153291.848
+ 19.900 19.300
+ -2235753.789 4 -1742144.561 3 24427084.086 24427083.061 24427083.245
+ 24.900 18.600
+ -18986198.955 7 -14794424.330 6 20888681.150 20888679.218 20888679.963
+ 46.700 41.700
+ -6432112.678 4 -5012023.103 4 23599457.841 23599455.349 23599457.479
+ 29.700 27.400
+ -18863693.356 7 -14698973.506 6 20892630.094 20892628.707 20892629.502
+ 44.000 39.800
+ -11658178.135 6 -9084288.153 4 22686503.066 22686499.604 22686502.034
+ 38.400 29.900
+ 06 1 2 0 42 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19352546.571 7 -15079896.388 7 20634441.671 20634439.757 20634440.943
+ 44.100 42.500
+ -18589788.412 7 -14485537.676 6 21271194.948 21271193.429 21271194.150
+ 43.400 40.100
+ -334804.800 4 -260885.056 3 25155642.103 25155640.645 25155641.302
+ 24.600 19.300
+ -2282560.531 4 -1778617.313 3 24418176.733 24418176.400 24418176.039
+ 24.900 21.600
+ -18928711.403 7 -14749628.830 6 20899620.539 20899618.791 20899619.423
+ 46.700 41.600
+ -6331744.422 4 -4933814.119 4 23618556.642 23618554.771 23618556.607
+ 27.600 27.400
+ -18942127.228 7 -14760090.779 6 20877704.839 20877703.121 20877704.187
+ 44.100 39.700
+ -11747785.411 6 -9154112.007 4 22669450.879 22669447.724 22669449.937
+ 38.000 29.900
+ 06 1 2 0 42 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19388533.919 7 -15107938.454 7 20627593.391 20627591.677 20627592.726
+ 44.000 42.600
+ -18570783.124 7 -14470728.361 6 21274811.457 21274809.973 21274810.652
+ 43.200 39.800
+ -321996.472 3 -250904.484 2 25158079.911 25158077.755 25158078.728
+ 22.100 13.900
+ -2328915.194 4 -1814737.818 2 24409356.015 24409354.365 24409355.022
+ 24.900 17.800
+ -18870938.127 7 -14704610.691 6 20910614.611 20910612.790 20910613.386
+ 46.600 41.700
+ -6231204.133 4 -4855471.085 4 23637689.068 23637686.959 23637688.767
+ 27.600 26.800
+ -19020012.146 7 -14820780.301 6 20862883.476 20862882.082 20862882.963
+ 43.900 39.800
+ -11837265.952 6 -9223837.085 5 22652422.948 22652420.790 22652422.095
+ 37.500 31.600
+ 06 1 2 0 43 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19423943.712 7 -15135530.485 7 20620855.045 20620853.252 20620854.445
+ 44.000 42.700
+ -18551209.491 7 -14455476.176 6 21278536.009 21278535.095 21278535.289
+ 42.900 40.300
+ -308722.786 3 -240561.355 2 25160605.355 25160603.735 25160604.388
+ 22.100 16.100
+ -2374815.716 4 -1850504.421 3 24400621.514 24400619.752 24400620.646
+ 27.100 19.300
+ -18812880.988 7 -14659371.361 6 20921662.459 20921660.558 20921661.321
+ 46.500 41.800
+ -6130492.790 4 -4776994.718 3 23656853.387 23656851.420 23656853.705
+ 29.000 23.800
+ -19097345.521 7 -14881040.041 6 20848167.486 20848165.985 20848166.845
+ 43.900 39.900
+ -11926618.293 6 -9293462.257 5 22635420.549 22635417.185 22635419.304
+ 38.700 31.500
+ 06 1 2 0 43 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19458775.046 7 -15162671.770 7 20614227.105 20614225.057 20614226.301
+ 44.000 42.500
+ -18531067.716 7 -14439781.284 6 21282368.888 21282367.758 21282368.100
+ 42.900 40.200
+ -294983.790 3 -229855.633 3 25163219.787 25163218.455 25163218.759
+ 23.400 19.900
+ -2420260.124 4 -1885915.642 3 24391973.595 24391972.875 24391972.650
+ 25.900 21.100
+ -18754541.362 7 -14613911.911 6 20932764.144 20932762.226 20932762.915
+ 46.600 41.500
+ -6029611.822 5 -4698386.189 4 23676051.268 23676048.791 23676050.679
+ 30.200 25.600
+ -19174124.577 7 -14940867.838 6 20833556.621 20833555.357 20833556.219
+ 44.300 40.000
+ -12015841.024 6 -9362986.446 5 22618441.972 22618438.658 22618440.855
+ 39.100 31.800
+ 06 1 2 0 44 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19493027.005 7 -15189361.594 7 20607708.984 20607707.117 20607708.374
+ 44.000 42.600
+ -18510358.994 7 -14423644.616 6 21286309.676 21286308.278 21286308.856
+ 43.000 40.000
+ -280779.679 3 -218787.493 3 25165922.631 25165921.524 25165921.645
+ 22.600 18.600
+ -2465245.870 4 -1920969.438 3 24383412.806 24383412.381 24383412.052
+ 26.500 22.100
+ -18695920.803 7 -14568233.549 6 20943919.201 20943917.413 20943917.991
+ 46.400 41.400
+ -5928562.343 4 -4619646.353 4 23695280.013 23695278.105 23695279.688
+ 28.400 27.100
+ -19250347.143 7 -15000262.017 6 20819052.242 20819050.675 20819051.723
+ 44.600 40.200
+ -12104932.202 6 -9432408.131 5 22601488.318 22601485.159 22601487.226
+ 38.800 31.800
+ 06 1 2 0 44 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19526699.073 7 -15215599.555 7 20601301.485 20601299.544 20601300.806
+ 44.200 42.700
+ -18489083.738 7 -14407066.493 6 21290358.473 21290356.848 21290357.659
+ 43.100 39.900
+ -266110.551 4 -207356.990 3 25168714.285 25168712.960 25168713.337
+ 26.800 19.300
+ -2509771.362 4 -1955664.611 3 24374940.421 24374939.003 24374939.682
+ 28.100 20.500
+ -18637021.201 7 -14522337.754 6 20955127.345 20955125.546 20955126.152
+ 46.300 41.400
+ -5827345.375 4 -4540776.074 4 23714540.843 23714538.585 23714540.606
+ 27.900 24.600
+ -19326010.556 7 -15059220.488 6 20804653.813 20804652.377 20804653.349
+ 44.500 40.400
+ -12193890.196 6 -9501726.026 5 22584560.162 22584557.055 22584559.144
+ 39.300 31.800
+ 06 1 2 0 45 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19559790.335 7 -15241384.939 7 20595004.392 20595002.388 20595003.683
+ 44.300 42.700
+ -18467242.920 7 -14390047.672 6 21294514.420 21294513.255 21294513.637
+ 43.100 39.800
+ -250976.776 4 -195564.437 2 25171594.460 25171592.417 25171593.346
+ 24.200 16.100
+ -2553833.285 4 -1989998.540 3 24366555.292 24366555.099 24366554.498
+ 26.500 21.100
+ -18577843.881 7 -14476225.553 6 20966388.558 20966386.746 20966387.382
+ 46.300 41.200
+ -5725962.294 4 -4461776.244 4 23733834.793 23733831.357 23733833.742
+ 28.400 24.200
+ -19401112.256 7 -15117741.256 6 20790362.428 20790361.025 20790361.938
+ 44.400 40.600
+ -12282713.323 6 -9570938.839 5 22567657.544 22567654.320 22567656.593
+ 38.900 31.500
+ 06 1 2 0 45 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19592300.084 7 -15266717.198 7 20588818.029 20588815.977 20588817.297
+ 44.300 42.700
+ -18444837.067 7 -14372588.567 6 21298778.063 21298776.754 21298777.282
+ 43.100 39.600
+ -235378.380 3 -183409.827 2 25174561.899 25174561.204 25174561.188
+ 23.000 17.000
+ -2597429.642 4 -2023969.697 3 24358259.409 24358258.136 24358258.299
+ 26.500 18.600
+ -18518390.387 7 -14429898.155 6 20977702.039 20977700.270 20977700.858
+ 46.100 40.900
+ -5624413.840 4 -4382647.631 3 23753160.175 23753155.014 23753158.433
+ 28.400 23.000
+ -19475649.780 7 -15175822.407 6 20776178.315 20776176.963 20776177.915
+ 44.500 40.700
+ -12371400.061 6 -9640045.377 5 22550780.940 22550777.715 22550779.988
+ 38.400 31.000
+ 06 1 2 0 46 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19624227.593 7 -15291595.764 7 20582742.408 20582740.379 20582741.687
+ 44.300 42.700
+ -18421867.108 7 -14354689.899 6 21303149.332 21303147.533 21303148.517
+ 43.000 39.400
+ -219315.723 3 -170893.478 3 25177618.642 25177617.388 25177617.400
+ 23.000 19.300
+ -2640558.933 4 -2057576.912 3 24350051.784 24350051.119 24350050.931
+ 25.300 19.900
+ -18458662.322 7 -14383356.808 6 20989067.784 20989066.113 20989066.650
+ 45.900 40.600
+ -5522701.590 4 -4303391.354 4 23772514.488 23772510.432 23772513.257
+ 28.800 25.600
+ -19549620.769 7 -15233462.107 6 20762102.263 20762100.793 20762101.806
+ 44.800 40.700
+ -12459948.684 6 -9709044.289 5 22533931.015 22533927.834 22533929.966
+ 39.200 32.300
+ 06 1 2 0 46 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19655572.198 7 -15316020.116 7 20576777.995 20576775.729 20576777.138
+ 44.500 42.800
+ -18398333.875 7 -14336352.311 6 21307627.210 21307625.856 21307626.523
+ 43.000 39.500
+ -202788.846 4 -158015.399 3 25180763.828 25180762.763 25180763.169
+ 24.900 20.500
+ -2683218.450 4 -2090818.088 2 24341934.870 24341932.725 24341933.450
+ 25.600 17.800
+ -18398661.189 7 -14336602.680 6 21000485.665 21000483.916 21000484.452
+ 45.800 40.600
+ -5420826.545 4 -4224008.226 4 23791900.027 23791896.619 23791899.174
+ 29.000 24.600
+ -19623022.750 7 -15290658.421 6 20748134.458 20748132.645 20748133.765
+ 44.600 40.900
+ -12548357.442 6 -9777934.211 5 22517107.152 22517104.082 22517106.166
+ 39.100 32.400
+ 06 1 2 0 47 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19686333.279 7 -15339989.775 7 20570924.214 20570922.042 20570923.497
+ 44.400 42.800
+ -18374237.962 7 -14317576.270 6 21312212.731 21312211.501 21312211.864
+ 43.000 39.600
+ -185798.355 3 -144776.039 3 25183997.021 25183995.599 25183996.002
+ 21.100 18.600
+ -2725406.631 4 -2123691.983 2 24333905.717 24333904.280 24333904.748
+ 24.200 17.000
+ -18338388.639 7 -14289637.054 6 21011955.075 21011953.538 21011953.927
+ 45.800 40.800
+ -5318789.984 4 -4144499.281 4 23811317.415 23811314.044 23811316.028
+ 27.900 26.200
+ -19695853.222 7 -15347409.413 6 20734274.844 20734273.430 20734274.467
+ 44.800 40.800
+ -12636624.656 6 -9846713.837 5 22500310.186 22500307.324 22500309.269
+ 38.900 32.100
+ 06 1 2 0 47 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19716509.885 7 -15363504.005 7 20565181.905 20565179.642 20565181.108
+ 44.500 43.100
+ -18349580.284 7 -14298362.497 6 21316904.865 21316903.596 21316904.112
+ 42.800 39.400
+ -168344.309 3 -131175.481 2 25187318.108 25187316.625 25187317.171
+ 22.600 17.000
+ -2767120.909 4 -2156196.571 2 24325967.734 24325966.123 24325966.765
+ 25.300 17.000
+ -18277846.056 7 -14242461.019 6 21023475.944 21023474.409 21023474.715
+ 45.800 40.800
+ -5216592.949 4 -4064865.246 3 23830764.951 23830760.294 23830763.411
+ 27.600 21.600
+ -19768109.939 7 -15403713.336 6 20720524.879 20720523.520 20720524.455
+ 44.800 40.900
+ -12724748.919 6 -9915382.082 5 22483540.966 22483537.614 22483539.873
+ 39.200 31.500
+ 06 1 2 0 48 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19746101.818 7 -15386562.643 7 20559550.637 20559548.534 20559549.901
+ 44.400 43.100
+ -18324361.778 7 -14278711.712 6 21321703.763 21321702.316 21321703.007
+ 42.800 39.400
+ -150427.033 3 -117213.960 2 25190727.518 25190726.737 25190726.764
+ 21.100 17.800
+ -2808359.069 4 -2188330.186 2 24318120.842 24318118.865 24318119.928
+ 25.900 17.000
+ -18217034.899 7 -14195075.700 6 21035048.010 21035046.363 21035046.843
+ 45.900 40.800
+ -5114236.705 4 -3985107.166 4 23850242.581 23850239.226 23850241.213
+ 27.100 24.600
+ -19839790.385 7 -15459568.202 6 20706884.485 20706883.233 20706884.071
+ 44.900 41.000
+ -12812728.303 6 -9983937.431 5 22466798.858 22466795.583 22466797.744
+ 38.700 31.600
+ 06 1 2 0 48 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19775108.290 7 -15409165.077 7 20554030.718 20554028.787 20554029.983
+ 44.300 43.100
+ -18298583.210 7 -14258624.519 6 21326609.472 21326607.856 21326608.562
+ 42.700 39.300
+ -132046.774 4 -102891.671 3 25194226.099 25194224.141 25194224.977
+ 24.600 18.600
+ -2849119.486 4 -2220091.519 2 24310364.162 24310362.902 24310362.923
+ 24.600 16.100
+ -18155956.868 7 -14147482.433 6 21046670.752 21046669.109 21046669.564
+ 45.900 40.600
+ -5011722.230 4 -3905225.771 3 23869750.321 23869746.694 23869749.299
+ 25.600 23.800
+ -19910892.259 7 -15514972.240 6 20693354.423 20693352.930 20693353.883
+ 44.800 40.900
+ -12900561.183 6 -10052378.618 5 22450085.048 22450081.801 22450083.867
+ 39.200 32.600
+ 06 1 2 0 49 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19803528.707 7 -15431310.843 7 20548622.619 20548620.486 20548621.864
+ 44.200 43.400
+ -18272245.629 7 -14238101.729 6 21331621.171 21331619.793 21331620.509
+ 42.500 39.100
+ -113203.749 3 -88208.797 2 25197811.129 25197809.574 25197810.323
+ 21.100 13.900
+ -2889399.454 4 -2251478.525 2 24302699.441 24302697.907 24302698.614
+ 27.900 17.000
+ -18094613.471 7 -14099682.388 6 21058344.016 21058342.466 21058342.914
+ 45.900 40.700
+ -4909050.923 4 -3825222.226 3 23889288.062 23889284.031 23889287.132
+ 27.100 21.600
+ -19981413.309 7 -15569923.687 6 20679934.862 20679933.145 20679934.264
+ 44.900 40.900
+ -12988245.804 6 -10120704.280 5 22433399.219 22433395.943 22433397.948
+ 39.400 32.800
+ 06 1 2 0 49 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19831362.486 7 -15452999.493 7 20543325.991 20543323.840 20543325.209
+ 44.100 43.200
+ -18245349.827 7 -14217143.961 6 21336739.078 21336737.828 21336738.314
+ 42.600 38.900
+ -93898.432 4 -73165.687 3 25201485.377 25201483.318 25201484.023
+ 24.600 18.600
+ -2929197.080 4 -2282489.609 2 24295126.075 24295124.604 24295125.084
+ 28.100 17.800
+ -18033006.266 7 -14051676.781 6 21070067.443 21070065.938 21070066.345
+ 46.300 40.700
+ -4806223.965 4 -3745097.303 4 23908854.892 23908851.563 23908854.100
+ 26.800 24.200
+ -20051351.113 7 -15624420.654 6 20666625.784 20666624.320 20666625.448
+ 45.200 40.900
+ -13075780.628 6 -10188913.207 5 22416741.469 22416738.921 22416740.394
+ 39.100 33.900
+ 06 1 2 0 50 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19858609.255 7 -15474230.729 7 20538140.998 20538138.936 20538140.308
+ 44.000 43.400
+ -18217896.807 7 -14195752.008 6 21341963.312 21341962.097 21341962.555
+ 42.500 39.500
+ -74131.147 4 -57762.604 2 25205246.634 25205245.269 25205246.077
+ 24.200 17.800
+ -2968510.034 4 -2313123.081 3 24287645.087 24287644.267 24287644.482
+ 27.900 21.100
+ -17971136.881 7 -14003466.873 6 21081841.058 21081839.204 21081839.841
+ 46.200 40.500
+ -4703242.540 4 -3664852.104 3 23928452.331 23928448.666 23928451.157
+ 25.900 22.600
+ -20120703.495 7 -15678461.448 6 20653428.701 20653426.869 20653428.152
+ 45.100 40.800
+ -13163163.447 6 -10257003.679 5 22400113.092 22400110.299 22400112.137
+ 39.800 33.600
+ 06 1 2 0 50 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19885268.365 7 -15495004.050 7 20533067.760 20533065.969 20533067.099
+ 44.000 43.500
+ -18189887.824 7 -14173926.826 6 21347293.374 21347292.083 21347292.653
+ 42.700 39.100
+ -53902.476 4 -42000.017 2 25209096.270 25209094.513 25209095.327
+ 24.900 17.000
+ -3007336.696 4 -2343377.583 3 24280257.206 24280255.900 24280255.967
+ 28.100 20.500
+ -17909006.501 7 -13955053.593 6 21093664.083 21093662.265 21093662.791
+ 46.100 40.500
+ -4600107.522 4 -3584487.172 3 23948077.534 23948074.179 23948076.950
+ 27.400 23.000
+ -20189468.136 7 -15732044.259 6 20640343.298 20640341.422 20640342.768
+ 45.300 40.700
+ -13250392.759 6 -10324974.562 5 22383514.264 22383510.835 22383513.205
+ 40.200 32.400
+ 06 1 2 0 51 0.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19911339.377 7 -15515319.113 7 20528106.413 20528104.878 20528105.788
+ 43.900 43.600
+ -18161323.231 7 -14151668.705 6 21352729.044 21352727.511 21352728.267
+ 42.900 38.900
+ -33212.623 3 -25878.065 2 25213032.917 25213031.475 25213031.874
+ 21.600 17.000
+ -3045674.979 4 -2373251.537 3 24272960.746 24272959.916 24272959.760
+ 27.100 22.100
+ -17846616.834 7 -13906438.267 6 21105536.344 21105534.679 21105535.136
+ 46.000 40.200
+ -4496820.513 3 -3504003.799 3 23967731.060 23967729.388 23967731.046
+ 23.800 23.400
+ -20257642.712 7 -15785167.281 6 20627369.861 20627368.322 20627369.395
+ 45.200 41.100
+ -13337467.045 6 -10392824.642 5 22366944.306 22366941.010 22366943.502
+ 41.100 32.400
+ 06 1 2 0 51 30.0000000 0 8G29G 6G27G 8G10G 2G26G21
+ -19936821.838 7 -15535175.565 7 20523257.445 20523255.627 20523256.746
+ 44.000 43.500
+ -18132204.489 7 -14128978.779 6 21358269.915 21358268.766 21358269.259
+ 42.500 38.900
+ -12062.274 3 -9397.288 2 25217057.453 25217056.257 25217056.808
+ 21.100 17.800
+ -3083523.113 4 -2402743.581 3 24265758.433 24265757.549 24265757.484
+ 27.400 19.300
+ -17783969.578 7 -13857622.228 6 21117457.597 21117456.083 21117456.462
+ 45.800 40.500
+ -4393382.665 4 -3423402.937 4 23987416.142 23987413.227 23987415.285
+ 26.800 25.300
+ -20325225.164 7 -15837828.906 6 20614509.493 20614507.696 20614508.884
+ 45.100 41.100
+ -13424384.208 6 -10460552.297 5 22350404.564 22350401.398 22350403.602
+ 41.000 32.700
+ 06 1 2 0 52 0.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -19961715.380 7 -15554573.119 7 20518520.333 20518518.527 20518519.676
+ 43.800 43.500
+ -18102532.669 7 -14105857.884 6 21363916.605 21363915.015 21363915.776
+ 42.700 39.100
+ 9548.219 3 7442.060 2 25221170.352 25221169.034 25221169.362
+ 23.400 17.000
+ -3120878.965 4 -2431852.015 3 24258650.038 24258648.457 24258649.175
+ 25.900 19.900
+ -17721066.177 7 -13808606.595 6 21129427.624 21129426.369 21129426.495
+ 45.700 40.600
+ -4289795.168 5 -3342685.425 3 24007129.183 24007125.030 24007128.275
+ 30.100 23.800
+ -20392213.202 7 -15890027.353 6 20601762.133 20601760.208 20601761.484
+ 45.200 41.100
+ -13511142.844 6 -10528156.413 5 22333895.129 22333891.666 22333894.012
+ 40.400 33.000
+ -222934.368 3 -173714.714 4 24537686.295 24537686.392 24537685.409
+ 20.500 24.900
+ 06 1 2 0 52 30.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -19986019.562 7 -15573511.434 7 20513895.212 20513893.579 20513894.623
+ 43.800 43.500
+ -18072308.930 7 -14082306.919 6 21369668.029 21369666.367 21369667.291
+ 42.700 39.000
+ 31618.606 3 24639.816 2 25225369.817 25225368.846 25225368.967
+ 21.100 17.000
+ -3157740.672 4 -2460575.402 3 24251634.944 24251634.254 24251633.876
+ 24.600 19.900
+ -17657908.007 7 -13759392.439 6 21141446.222 21141444.834 21141445.096
+ 45.600 40.100
+ -4186059.121 4 -3261852.197 4 24026868.485 24026866.030 24026867.700
+ 27.100 25.300
+ -20458604.527 7 -15941760.837 6 20589128.263 20589126.378 20589127.712
+ 45.500 41.200
+ -13597740.979 6 -10595635.460 5 22317415.662 22317412.708 22317414.818
+ 40.600 33.100
+ -327440.002 3 -255147.609 4 24517798.647 24517799.428 24517797.807
+ 19.300 25.300
+ 06 1 2 0 53 0.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20009733.928 7 -15591990.151 7 20509382.590 20509380.864 20509381.955
+ 44.000 43.500
+ -18041533.923 7 -14058326.400 6 21375524.233 21375522.979 21375523.401
+ 42.500 39.100
+ 54148.134 3 42195.269 2 25229657.935 25229656.373 25229656.716
+ 21.600 17.800
+ -3194106.227 4 -2488912.177 3 24244715.538 24244714.073 24244714.483
+ 24.900 21.600
+ -17594496.591 7 -13709980.946 6 21153513.145 21153511.448 21153511.987
+ 45.400 40.100
+ -4082175.756 4 -3180904.167 3 24046636.593 24046633.580 24046635.728
+ 24.600 21.100
+ -20524397.220 7 -15993027.850 6 20576608.173 20576606.519 20576607.676
+ 45.600 41.400
+ -13684176.771 6 -10662988.013 5 22300967.711 22300964.523 22300966.681
+ 40.800 33.500
+ -431947.482 3 -336581.964 4 24497912.322 24497912.587 24497911.285
+ 23.400 26.500
+ 06 1 2 0 53 30.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20032858.268 7 -15610009.104 7 20504982.445 20504980.431 20504981.649
+ 44.300 43.600
+ -18010209.137 7 -14033917.479 6 21381485.000 21381484.009 21381484.245
+ 42.600 39.300
+ 77136.829 3 60108.529 2 25234031.878 25234029.889 25234030.991
+ 20.500 13.900
+ -3229973.425 4 -2516860.624 3 24237889.195 24237888.576 24237888.446
+ 24.200 20.500
+ -17530833.532 7 -13660373.369 6 21165627.413 21165626.203 21165626.480
+ 45.600 40.000
+ -3978146.180 4 -3099842.191 3 24066432.010 24066429.828 24066432.063
+ 24.900 21.100
+ -20589589.027 7 -16043826.644 6 20564202.398 20564200.986 20564201.925
+ 45.400 41.700
+ -13770448.684 6 -10730212.867 5 22284550.520 22284547.470 22284549.518
+ 41.100 33.400
+ -536455.517 3 -418016.723 3 24478026.192 24478024.460 24478024.818
+ 23.400 23.800
+ 06 1 2 0 54 0.0000000 0 9G29G 6G27G 8G10G 2G26G21G15
+ -20055392.055 7 -15627567.888 7 20500694.563 20500692.434 20500693.782
+ 44.300 43.700
+ -17978335.553 7 -14009080.924 6 21387550.354 21387549.108 21387549.617
+ 42.100 38.900
+ 100583.600 3 78378.709 2 25238493.427 25238492.403 25238492.430
+ 22.600 17.800
+ -3265340.437 3 -2544419.318 3 24231159.025 24231158.246 24231157.672
+ 23.800 21.100
+ -17466920.300 7 -13610570.851 6 21177790.259 21177788.467 21177788.992
+ 45.300 39.800
+ -3873971.701 4 -3018667.321 3 24086255.907 24086253.821 24086255.713
+ 26.200 19.900
+ -20654177.750 7 -16094155.494 6 20551911.630 20551910.205 20551911.116
+ 45.400 41.800
+ -13856554.890 6 -10797308.603 5 22268165.245 22268161.837 22268164.279
+ 41.100 33.800
+ -640962.799 4 -499450.942 3 24458138.915 24458137.209 24458138.108
+ 24.900 21.600
+ 06 1 2 0 54 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20077335.099 7 -15644666.355 7 20496518.838 20496516.796 20496518.085
+ 44.400 43.800
+ -17945914.386 7 -13983817.685 6 21393719.875 21393718.520 21393719.080
+ 42.200 38.600
+ -3300205.900 3 -2571587.175 3 24224524.915 24224524.718 24224523.864
+ 23.800 23.800
+ -17402758.278 7 -13560574.467 6 21189999.877 21189998.148 21189998.582
+ 45.300 39.800
+ -3769653.655 4 -2937380.516 3 24106106.954 24106104.783 24106106.968
+ 26.800 21.600
+ -20718161.439 7 -16144012.890 6 20539735.862 20539734.519 20539735.431
+ 45.400 41.900
+ -13942493.438 6 -10864273.691 5 22251811.479 22251808.665 22251810.515
+ 40.800 34.700
+ -745467.870 4 -580883.452 3 24438251.786 24438251.130 24438250.652
+ 24.600 21.100
+ 06 1 2 0 55 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20098687.070 7 -15661304.241 7 20492455.580 20492453.545 20492454.915
+ 44.500 43.800
+ -17912946.794 7 -13958128.650 6 21399993.373 21399992.138 21399992.663
+ 42.400 38.600
+ -3334567.517 3 -2598362.440 3 24217985.976 24217985.535 24217984.657
+ 21.600 23.000
+ -17338348.956 7 -13510385.383 6 21202256.343 21202254.851 21202255.130
+ 45.300 39.700
+ -3665193.111 4 -2855982.717 3 24125984.317 24125983.058 24125984.734
+ 24.900 22.100
+ -20781537.976 7 -16193397.203 6 20527675.822 20527674.163 20527675.279
+ 45.400 41.700
+ -14028262.447 6 -10931106.661 5 22235490.408 22235487.086 22235489.306
+ 41.300 34.000
+ -849969.529 4 -662313.271 3 24418365.080 24418364.731 24418364.403
+ 24.600 21.600
+ 06 1 2 0 55 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20119447.937 7 -15677481.527 7 20488504.885 20488502.856 20488504.244
+ 44.400 43.600
+ -17879433.958 6 -13932014.752 6 21406370.683 21406369.269 21406369.920
+ 41.900 38.100
+ -3368423.170 4 -2624743.435 3 24211543.432 24211542.849 24211542.394
+ 25.300 22.600
+ -17273693.772 7 -13460004.719 6 21214559.766 21214558.278 21214558.582
+ 45.300 39.700
+ -3560591.187 3 -2774474.757 4 24145890.631 24145888.675 24145890.214
+ 23.800 25.300
+ -20844305.218 7 -16242306.732 6 20515731.699 20515729.889 20515731.152
+ 45.600 41.600
+ -14113860.524 6 -10997806.450 5 22219201.343 22219198.211 22219200.426
+ 41.400 33.400
+ -954466.570 3 -743739.493 3 24398480.230 24398479.327 24398479.396
+ 23.000 23.000
+ 06 1 2 0 56 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20139617.218 7 -15693197.844 7 20484666.792 20484664.840 20484666.090
+ 44.400 43.700
+ -17845376.964 6 -13905476.844 6 21412851.521 21412850.019 21412850.789
+ 41.900 38.200
+ -3401771.439 4 -2650729.059 3 24205197.433 24205196.797 24205196.649
+ 24.600 23.000
+ -17208794.451 7 -13409433.816 6 21226909.790 21226908.121 21226908.631
+ 45.300 39.700
+ -3455849.296 4 -2692857.719 3 24165822.533 24165820.404 24165822.016
+ 27.400 23.400
+ -20906461.338 7 -16290740.050 6 20503903.922 20503902.048 20503903.274
+ 45.600 41.800
+ -14199285.581 6 -11064371.430 5 22202945.901 22202942.384 22202944.688
+ 41.400 33.500
+ -1058957.492 3 -825160.945 3 24378596.684 24378596.126 24378595.896
+ 23.400 23.000
+ 06 1 2 0 56 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20159194.764 7 -15708453.059 7 20480941.446 20480939.356 20480940.670
+ 44.400 44.000
+ -17810777.139 7 -13878515.941 6 21419435.712 21419434.437 21419434.994
+ 42.200 38.700
+ -3434609.990 4 -2676317.511 3 24198949.093 24198947.682 24198947.855
+ 26.500 21.100
+ -17143652.520 7 -13358673.872 6 21239305.901 21239304.451 21239304.685
+ 45.300 39.900
+ -3350968.436 4 -2611132.418 3 24185780.899 24185778.680 24185780.662
+ 26.500 23.000
+ -20968004.156 7 -16338695.475 6 20492192.347 20492190.783 20492191.955
+ 45.600 41.900
+ -14284535.625 6 -11130800.017 5 22186723.193 22186720.031 22186722.142
+ 41.600 33.800
+ -1163441.109 3 -906576.711 3 24358715.162 24358712.930 24358713.830
+ 23.400 21.600
+ 06 1 2 0 57 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20178180.454 7 -15723247.089 7 20477328.464 20477326.479 20477327.752
+ 44.400 43.800
+ -17775635.926 6 -13851133.184 6 21426122.830 21426121.735 21426121.977
+ 41.900 38.600
+ -3466937.520 4 -2701507.809 3 24192796.641 24192796.017 24192795.981
+ 24.200 21.100
+ -17078269.292 7 -13307725.901 6 21251747.933 21251746.338 21251746.756
+ 45.200 39.500
+ -3245950.153 4 -2529300.024 4 24205765.780 24205762.992 24205765.188
+ 24.600 24.600
+ -21028931.768 7 -16386171.512 6 20480598.244 20480596.600 20480597.650
+ 45.500 41.900
+ -14369609.147 6 -11197091.070 5 22170534.187 22170530.937 22170533.135
+ 41.500 34.400
+ -1267916.029 3 -987985.725 2 24338832.609 24338831.590 24338831.348
+ 23.400 17.000
+ 06 1 2 0 57 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20196573.994 7 -15737579.713 7 20473828.263 20473826.252 20473827.558
+ 44.300 43.900
+ -17739954.273 7 -13823329.308 6 21432912.984 21432911.434 21432912.156
+ 42.000 38.100
+ -3498752.377 4 -2726298.571 3 24186743.924 24186741.840 24186742.661
+ 27.600 22.600
+ -17012646.163 7 -13256590.994 6 21264235.365 21264233.926 21264234.246
+ 44.900 39.300
+ -3140795.618 4 -2447361.443 3 24225776.245 24225772.517 24225775.331
+ 24.200 19.300
+ -21089242.202 7 -16433166.634 7 20469121.387 20469119.930 20469120.955
+ 45.400 42.100
+ -14454504.241 7 -11263243.076 5 22154379.121 22154376.132 22154378.131
+ 42.000 34.600
+ -1372380.976 3 -1069386.919 3 24318952.926 24318953.114 24318951.969
+ 21.100 20.500
+ 06 1 2 0 58 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20214375.263 7 -15751450.817 7 20470440.845 20470438.756 20470440.082
+ 44.300 43.900
+ -17703733.728 7 -13795105.507 6 21439805.642 21439803.836 21439804.830
+ 42.300 38.000
+ -3530052.467 4 -2750688.236 3 24180786.840 24180784.993 24180785.201
+ 26.200 19.900
+ -16946784.350 7 -13205270.099 6 21276768.756 21276766.927 21276767.503
+ 45.000 39.200
+ -3035505.985 3 -2365317.604 3 24245812.631 24245808.654 24245811.335
+ 23.000 22.600
+ -21148933.608 7 -16479679.398 7 20457762.472 20457761.095 20457762.119
+ 45.700 42.200
+ -14539218.913 6 -11329254.492 5 22138258.750 22138255.437 22138257.496
+ 41.700 34.600
+ -1476834.376 3 -1150779.132 3 24299076.848 24299075.979 24299075.732
+ 20.500 23.800
+ 06 1 2 0 58 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20231584.239 7 -15764860.397 7 20467165.912 20467164.014 20467165.261
+ 44.300 43.800
+ -17666975.435 7 -13766462.686 6 21446800.544 21446798.845 21446799.661
+ 42.000 38.100
+ -3560836.121 4 -2774675.469 3 24174928.569 24174927.747 24174927.844
+ 28.400 21.600
+ -16880685.604 7 -13153764.583 6 21289346.911 21289345.296 21289345.759
+ 45.000 39.600
+ -2930082.386 4 -2283169.373 3 24265873.093 24265870.133 24265872.411
+ 25.300 23.800
+ -21208004.083 7 -16525708.324 7 20446521.719 20446520.174 20446521.330
+ 45.600 42.000
+ -14623751.458 6 -11395123.996 5 22122172.357 22122169.158 22122171.295
+ 41.900 34.100
+ -1581274.980 3 -1232161.332 3 24279201.832 24279201.553 24279201.087
+ 23.400 19.900
+ 06 1 2 0 59 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20248200.705 7 -15777808.286 7 20464004.017 20464002.047 20464003.309
+ 44.300 44.000
+ -17629680.937 7 -13737402.050 6 21453897.173 21453895.489 21453896.515
+ 42.200 37.700
+ -3591101.978 4 -2798259.230 3 24169169.179 24169168.055 24169168.439
+ 25.300 21.600
+ -16814351.300 7 -13102075.515 6 21301969.842 21301968.391 21301968.667
+ 44.900 39.700
+ -2824526.149 3 -2200917.817 3 24285959.366 24285957.114 24285958.803
+ 23.800 23.800
+ -21266451.657 7 -16571251.873 7 20435399.591 20435397.922 20435399.058
+ 45.600 42.000
+ -14708099.684 7 -11460849.878 5 22106121.668 22106118.496 22106120.589
+ 42.300 34.900
+ -1685701.368 3 -1313532.551 2 24259330.567 24259329.400 24259329.716
+ 23.000 17.800
+ 06 1 2 0 59 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20264224.659 7 -15790294.471 7 20460954.886 20460952.726 20460954.055
+ 44.400 44.000
+ -17591851.356 7 -13707924.449 6 21461096.080 21461094.421 21461095.308
+ 42.100 38.300
+ -3620848.343 4 -2821438.203 3 24163508.714 24163507.606 24163508.078
+ 28.400 21.600
+ -16747782.955 7 -13050204.070 6 21314637.573 21314635.819 21314636.285
+ 44.700 39.500
+ -2718838.695 4 -2118564.032 3 24306071.344 24306069.293 24306071.021
+ 26.200 22.600
+ -21324274.575 7 -16616308.679 7 20424396.339 20424394.673 20424395.830
+ 45.600 42.400
+ -14792262.006 7 -11526430.894 5 22090105.863 22090102.832 22090104.820
+ 42.100 34.800
+ -1790112.173 4 -1394891.601 2 24239462.568 24239460.333 24239461.483
+ 24.200 17.000
+ 06 1 2 1 0 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20279656.126 7 -15802318.982 7 20458018.224 20458016.213 20458017.555
+ 44.300 43.900
+ -17553488.361 7 -13678031.216 6 21468396.338 21468394.915 21468395.539
+ 42.100 38.100
+ -3650072.975 4 -2844210.630 3 24157947.981 24157945.707 24157947.036
+ 28.100 19.300
+ -16680982.117 7 -12998151.466 6 21327349.154 21327347.592 21327347.955
+ 44.700 39.100
+ -2613020.926 4 -2036108.583 2 24326207.833 24326204.593 24326207.071
+ 24.900 16.100
+ -21381470.925 7 -16660877.249 7 20413512.189 20413510.695 20413511.720
+ 45.500 42.500
+ -14876236.701 7 -11591865.710 5 22074125.924 22074123.092 22074124.986
+ 42.400 35.300
+ -1894505.898 4 -1476237.373 3 24219596.733 24219595.697 24219595.590
+ 24.900 22.600
+ 06 1 2 1 0 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20294494.938 7 -15813881.686 7 20455194.556 20455192.488 20455193.865
+ 44.500 44.100
+ -17514593.137 7 -13647723.253 6 21475797.841 21475796.197 21475797.124
+ 42.100 37.800
+ -3678774.413 4 -2866575.372 3 24152485.717 24152484.285 24152484.976
+ 27.900 22.100
+ -16613950.073 7 -12945918.697 6 21340104.962 21340103.241 21340103.773
+ 44.700 38.900
+ -2507074.369 4 -1953552.837 3 24346368.951 24346365.474 24346368.220
+ 24.900 19.900
+ -21438039.049 7 -16704956.293 7 20402747.710 20402746.092 20402747.169
+ 45.600 42.600
+ -14960021.911 7 -11657152.879 5 22058182.203 22058179.152 22058181.160
+ 42.200 34.900
+ -1998881.231 4 -1557568.741 4 24199735.080 24199733.983 24199734.104
+ 24.900 24.900
+ 06 1 2 1 1 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20308741.352 7 -15824982.779 7 20452483.373 20452481.443 20452482.745
+ 44.300 44.000
+ -17475167.445 6 -13617001.939 6 21483300.118 21483298.617 21483299.319
+ 41.500 37.700
+ -3706951.300 4 -2888531.374 3 24147124.041 24147122.459 24147122.987
+ 27.400 21.600
+ -16546688.451 7 -12893507.048 6 21352904.237 21352902.921 21352903.089
+ 44.400 39.100
+ -2401000.331 3 -1870897.748 3 24366555.324 24366551.259 24366554.022
+ 23.800 18.600
+ -21493976.938 7 -16748544.240 7 20392103.005 20392101.492 20392102.487
+ 45.800 42.700
+ -15043615.562 7 -11722290.776 5 22042275.134 22042271.646 22042273.909
+ 42.300 34.700
+ -2103236.706 4 -1638884.660 4 24179877.358 24179875.663 24179876.286
+ 28.600 24.600
+ 06 1 2 1 1 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20322395.099 7 -15835622.057 7 20449885.160 20449883.207 20449884.485
+ 44.100 44.000
+ -17435212.379 6 -13585868.134 6 21490903.413 21490901.945 21490902.522
+ 41.400 38.000
+ -3734602.082 4 -2910077.415 3 24141862.660 24141860.525 24141861.529
+ 28.600 20.500
+ -16479198.456 7 -12840917.449 6 21365747.172 21365745.700 21365746.045
+ 44.400 38.500
+ -2294799.887 3 -1788144.160 3 24386763.211 24386761.183 24386762.251
+ 21.600 23.800
+ -21549283.025 7 -16791639.873 7 20381578.746 20381576.994 20381578.106
+ 45.800 42.600
+ -15127015.718 7 -11787277.904 5 22026404.690 22026400.956 22026403.463
+ 42.200 34.600
+ -2207571.054 4 -1720184.140 3 24160022.703 24160021.040 24160021.548
+ 28.600 23.400
+ 06 1 2 1 2 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20335456.534 7 -15845799.789 7 20447399.707 20447397.717 20447398.987
+ 44.400 44.100
+ -17394729.365 6 -13554322.936 6 21498606.763 21498605.586 21498606.079
+ 41.500 37.800
+ -3761725.374 4 -2931212.454 3 24136700.485 24136698.847 24136699.618
+ 27.900 18.600
+ -16411481.427 7 -12788150.929 6 21378633.136 21378631.782 21378632.047
+ 44.600 38.600
+ -2188474.130 3 -1705293.007 4 24406996.736 24406994.188 24406995.933
+ 22.600 24.600
+ -21603955.482 7 -16834241.775 7 20371174.915 20371173.180 20371174.348
+ 46.000 42.800
+ -15210220.583 7 -11852112.855 5 22010571.044 22010567.828 22010569.983
+ 42.700 35.100
+ -2311882.754 3 -1801465.988 3 24140172.035 24140171.339 24140170.934
+ 23.000 23.400
+ 06 1 2 1 2 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20347925.352 7 -15855515.745 7 20445026.728 20445024.927 20445026.061
+ 44.100 44.100
+ -17353720.127 6 -13522367.687 6 21506410.800 21506409.470 21506410.041
+ 41.800 37.700
+ -3788318.951 4 -2951934.706 3 24131640.913 24131639.212 24131639.742
+ 29.900 21.100
+ -16343538.914 7 -12735208.709 6 21391562.533 21391560.791 21391561.327
+ 44.500 38.600
+ -2082024.623 4 -1622345.375 3 24427254.351 24427250.636 24427253.392
+ 28.400 18.600
+ -21657992.727 7 -16876348.701 7 20360891.980 20360890.177 20360891.350
+ 46.000 42.700
+ -15293228.274 7 -11916794.165 5 21994775.124 21994772.147 21994774.223
+ 43.000 35.800
+ -2416170.540 3 -1882729.141 4 24120326.746 24120326.204 24120325.641
+ 21.100 25.600
+ 06 1 2 1 3 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20359801.887 7 -15864770.183 7 20442766.862 20442764.835 20442766.052
+ 44.000 44.200
+ -17312186.026 6 -13490003.457 6 21514314.735 21514313.266 21514313.936
+ 41.600 37.700
+ -3814381.482 4 -2972243.180 3 24126680.989 24126679.060 24126679.808
+ 27.900 18.600
+ -16275372.321 7 -12682091.875 6 21404534.399 21404532.419 21404533.182
+ 44.400 38.600
+ -1975452.629 3 -1539302.253 2 24447533.822 24447530.156 24447532.805
+ 22.100 16.100
+ -21711392.991 7 -16917959.279 7 20350729.951 20350728.477 20350729.449
+ 45.600 42.700
+ -15376036.956 7 -11981320.396 5 21979017.205 21979013.936 21979016.126
+ 42.800 35.300
+ -2520432.860 3 -1963972.484 4 24100486.591 24100485.450 24100485.468
+ 23.000 24.900
+ 06 1 2 1 3 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20371086.319 7 -15873563.240 7 20440619.485 20440617.584 20440618.766
+ 44.300 44.300
+ -17270128.645 6 -13457231.482 6 21522317.586 21522316.546 21522316.890
+ 41.200 38.000
+ -3839910.747 4 -2992136.074 3 24121822.712 24121821.189 24121821.915
+ 29.200 22.100
+ -16206983.059 7 -12628801.538 6 21417548.141 21417546.592 21417546.919
+ 44.200 38.500
+ -1868759.164 3 -1456164.531 2 24467836.513 24467833.546 24467835.631
+ 22.600 17.000
+ -21764154.650 7 -16959072.246 7 20340689.778 20340688.199 20340689.214
+ 45.600 42.700
+ -15458644.524 7 -12045689.924 5 21963297.245 21963294.267 21963296.504
+ 43.200 35.700
+ -2624667.994 3 -2045194.627 3 24080652.147 24080649.673 24080650.987
+ 22.100 23.400
+ 06 1 2 1 4 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20381778.748 7 -15881894.995 7 20438585.028 20438582.964 20438584.189
+ 44.600 44.300
+ -17227549.352 6 -13424052.820 6 21530420.449 21530419.050 21530419.629
+ 41.400 37.800
+ -3864906.510 4 -3011613.290 3 24117066.013 24117064.885 24117065.133
+ 28.400 22.600
+ -16138372.709 7 -12575338.930 6 21430604.082 21430602.648 21430602.877
+ 44.200 38.600
+ -1761945.832 3 -1372933.417 3 24488161.428 24488159.351 24488161.164
+ 19.300 18.600
+ -21816276.117 7 -16999686.363 7 20330771.190 20330769.836 20330770.776
+ 45.800 43.000
+ -15541049.144 7 -12109901.313 5 21947616.526 21947613.224 21947615.456
+ 43.100 35.500
+ -2728874.487 4 -2126394.461 3 24060822.366 24060819.981 24060821.345
+ 24.600 23.000
+ 06 1 2 1 4 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20391879.211 7 -15889765.478 7 20436662.773 20436660.842 20436662.116
+ 44.600 44.400
+ -17184450.006 6 -13390468.918 6 21538621.971 21538620.439 21538621.299
+ 41.400 37.500
+ -3889367.054 4 -3030673.439 3 24112410.878 24112410.072 24112409.645
+ 25.300 22.600
+ -16069542.667 7 -12521705.131 6 21443702.097 21443700.541 21443700.908
+ 44.200 38.300
+ -1655013.645 3 -1289609.659 2 24508511.093 24508507.653 24508510.002
+ 19.300 17.800
+ -21867755.783 7 -17039800.376 7 20320975.091 20320973.568 20320974.610
+ 45.700 42.800
+ -15623248.898 7 -12173953.066 5 21931974.229 21931971.204 21931973.310
+ 43.000 35.600
+ -2833051.073 4 -2207571.003 3 24040998.025 24040996.058 24040996.825
+ 24.900 22.100
+ 06 1 2 1 5 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20401388.105 7 -15897175.004 7 20434853.336 20434851.239 20434852.640
+ 44.800 44.300
+ -17140832.254 6 -13356481.069 6 21546922.081 21546920.690 21546921.229
+ 40.700 37.600
+ -3913290.769 4 -3049315.265 3 24107859.099 24107857.596 24107857.933
+ 27.900 22.600
+ -16000494.218 7 -12467901.145 6 21456841.979 21456840.062 21456840.605
+ 44.200 38.300
+ -1547963.851 4 -1206194.256 3 24528882.488 24528878.713 24528881.443
+ 26.500 18.600
+ -21918592.001 7 -17079412.996 7 20311301.298 20311299.699 20311300.744
+ 45.800 43.000
+ -15705241.756 7 -12237843.591 6 21916371.361 21916368.532 21916370.287
+ 42.600 36.300
+ -2937196.306 3 -2288723.116 3 24021179.812 24021177.927 24021178.355
+ 23.800 21.600
+ 06 1 2 1 5 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20410305.576 7 -15904123.669 7 20433156.501 20433154.259 20433155.759
+ 44.600 44.200
+ -17096697.418 6 -13322090.298 6 21555320.703 21555319.357 21555319.912
+ 41.000 37.700
+ -3936675.807 4 -3067537.341 3 24103408.263 24103407.474 24103407.322
+ 25.900 21.100
+ -15931228.885 7 -12413928.162 6 21470022.471 21470020.778 21470021.327
+ 44.300 38.000
+ -1440798.011 4 -1122688.336 3 24549275.367 24549271.282 24549273.943
+ 25.300 18.600
+ -21968783.235 7 -17118523.035 7 20301750.051 20301748.517 20301749.581
+ 45.600 42.900
+ -15787026.035 7 -12301571.586 6 21900808.531 21900805.462 21900807.503
+ 43.300 36.300
+ -3041308.494 4 -2369849.469 3 24001367.275 24001365.465 24001366.258
+ 25.300 21.100
+ 06 1 2 1 6 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20418631.854 7 -15910611.675 7 20431572.075 20431569.854 20431571.316
+ 44.800 44.400
+ -17052047.229 6 -13287297.949 6 21563817.206 21563816.016 21563816.479
+ 41.400 37.400
+ -3959521.078 4 -3085338.850 3 24099061.639 24099060.255 24099060.601
+ 26.800 21.100
+ -15861747.906 7 -12359787.138 6 21483243.963 21483242.570 21483242.915
+ 44.200 37.900
+ -1333516.936 3 -1039092.759 3 24569690.933 24569687.002 24569689.090
+ 21.100 22.600
+ -22018328.098 7 -17157129.405 7 20292322.183 20292320.418 20292321.593
+ 45.900 42.900
+ -15868599.611 7 -12365135.407 5 21885285.537 21885282.370 21885284.546
+ 43.200 35.900
+ -3145386.294 4 -2450949.029 3 23981562.039 23981560.661 23981560.795
+ 27.600 21.600
+ 06 1 2 1 6 30.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20426367.169 7 -15916639.180 7 20430100.155 20430097.926 20430099.402
+ 44.700 44.400
+ -17006883.161 6 -13252105.175 6 21572411.685 21572410.148 21572411.034
+ 41.300 36.700
+ -3981825.233 4 -3102718.711 3 24094817.384 24094815.810 24094816.439
+ 28.400 21.600
+ -15792052.547 7 -12305479.068 6 21496507.200 21496505.092 21496505.921
+ 44.100 37.700
+ -1226122.173 3 -955408.547 3 24590126.615 24590123.624 24590125.082
+ 21.100 20.500
+ -22067225.029 7 -17195230.897 7 20283017.189 20283015.643 20283016.754
+ 45.700 43.000
+ -15949960.350 7 -12428533.379 6 21869803.218 21869800.023 21869802.205
+ 43.400 36.100
+ -3249428.079 4 -2532020.534 4 23961763.503 23961762.393 23961762.252
+ 28.400 24.200
+ 06 1 2 1 7 0.0000000 0 8G29G 6G 8G10G 2G26G21G15
+ -20433511.751 7 -15922206.385 7 20428740.282 20428738.404 20428739.709
+ 44.700 44.500
+ -16961207.141 6 -13216513.480 6 21581103.647 21581102.056 21581102.915
+ 41.100 36.800
+ -4003587.045 4 -3119675.983 3 24090676.087 24090674.814 24090674.926
+ 26.800 23.000
+ -15722144.223 7 -12251005.051 6 21509810.115 21509808.199 21509808.919
+ 43.900 37.700
+ -1118614.951 3 -871636.744 3 24610585.320 24610581.317 24610583.737
+ 19.900 22.600
+ -22115472.570 7 -17232826.375 7 20273836.174 20273834.530 20273835.663
+ 45.900 43.100
+ -16031106.513 7 -12491764.147 6 21854361.490 21854358.309 21854360.535
+ 43.300 36.100
+ -3353432.395 4 -2613062.871 3 23941971.323 23941970.693 23941970.710
+ 28.400 22.600
+ 06 1 2 1 7 30.0000000 0 7G29G 6G 8G10G26G21G15
+ -20440066.043 7 -15927313.613 7 20427493.367 20427491.136 20427492.517
+ 44.400 44.500
+ -16915020.629 6 -13180524.000 6 21589892.755 21589891.263 21589891.889
+ 41.100 36.700
+ -4024804.891 4 -3136209.349 3 24086638.802 24086637.321 24086637.607
+ 27.900 23.400
+ -15652024.174 7 -12196366.055 6 21523153.524 21523151.627 21523152.267
+ 44.000 37.700
+ -22163069.284 7 -17269914.712 7 20264778.971 20264777.205 20264778.418
+ 46.400 43.500
+ -16112036.135 7 -12554826.181 6 21838961.174 21838957.981 21838960.111
+ 43.500 36.800
+ -3457397.730 4 -2694074.784 4 23922189.419 23922187.195 23922187.787
+ 26.200 26.800
+ 06 1 2 1 8 0.0000000 0 7G29G 6G 8G10G26G21G15
+ -20446030.179 7 -15931960.990 7 20426358.248 20426356.164 20426357.486
+ 44.300 44.500
+ -16868325.366 6 -13144138.091 6 21598778.473 21598777.167 21598777.751
+ 41.100 37.200
+ -4045477.556 4 -3152317.869 3 24082704.858 24082703.362 24082703.821
+ 28.600 22.600
+ -15581693.986 7 -12141563.315 6 21536536.445 21536535.017 21536535.437
+ 43.700 37.700
+ -22210013.715 7 -17306494.775 7 20255845.826 20255844.092 20255845.218
+ 46.200 43.800
+ -16192747.463 7 -12617718.120 6 21823602.205 21823599.160 21823601.343
+ 44.100 36.400
+ -3561322.377 3 -2775054.986 4 23902412.066 23902410.806 23902410.784
+ 23.000 27.100
+ 06 1 2 1 8 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20451404.804 7 -15936148.996 7 20425335.537 20425333.365 20425334.797
+ 44.400 44.700
+ -16821123.251 6 -13107357.237 6 21607760.879 21607759.346 21607760.151
+ 41.200 37.100
+ -164892.002 2 23660718.605 23660716.666
+ 15.100
+ -4065603.711 4 -3168000.589 3 24078873.883 24078873.552 24078873.395
+ 28.600 23.400
+ -15511155.054 7 -12086597.918 6 21549959.846 21549958.327 21549958.661
+ 43.700 37.900
+ -22256304.510 7 -17342565.506 7 20247036.771 20247035.114 20247036.270
+ 46.100 43.600
+ -16273238.251 7 -12680438.205 6 21808285.254 21808282.068 21808284.368
+ 44.000 36.200
+ -3665205.030 4 -2856002.461 4 23882642.789 23882642.705 23882641.998
+ 24.200 27.600
+ 06 1 2 1 9 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20456190.116 7 -15939877.808 7 20424424.965 20424422.825 20424424.145
+ 44.400 44.600
+ -16773416.008 6 -13070182.766 6 21616839.442 21616837.906 21616838.716
+ 41.500 37.200
+ -249979.334 2 -194788.587 9 23644527.116 23644525.233 23644525.702
+ 12.600 -3.000
+ -4085182.288 4 -3183256.609 3 24075149.800 24075147.765 24075148.486
+ 27.400 22.600
+ -15440408.537 7 -12031470.760 6 21563422.637 21563420.696 21563421.417
+ 43.800 37.500
+ -22301940.428 7 -17378125.950 7 20238352.395 20238350.887 20238351.932
+ 46.100 43.600
+ -16353506.592 7 -12742984.958 6 21793010.824 21793007.637 21793009.793
+ 43.800 36.800
+ -3769044.120 3 -2936915.993 4 23862882.835 23862882.972 23862881.671
+ 23.800 28.400
+ 06 1 2 1 9 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20460386.674 7 -15943147.841 7 20423626.199 20423624.237 20423625.544
+ 44.200 44.700
+ -16725205.300 6 -13032615.994 6 21626013.384 21626012.274 21626012.713
+ 41.100 37.700
+ -334928.825 2 -260982.976 9 23628362.057 23628360.058 23628361.048
+ 17.000 -3.000
+ -4104211.833 4 -3198084.821 3 24071527.533 24071526.521 24071526.614
+ 27.900 21.600
+ -15369455.779 7 -11976182.897 6 21576923.952 21576922.377 21576922.971
+ 44.000 37.300
+ -22346920.001 7 -17413174.961 7 20229793.070 20229791.555 20229792.550
+ 46.100 43.400
+ -16433550.426 7 -12805356.765 6 21777779.101 21777776.034 21777778.007
+ 44.000 37.200
+ -3872837.973 4 -3017794.272 4 23843132.180 23843131.191 23843131.078
+ 25.600 28.400
+ 06 1 2 1 10 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20463994.738 7 -15945959.323 7 20422939.693 20422937.556 20422938.925
+ 44.300 44.500
+ -16676493.091 6 -12994658.448 6 21635283.235 21635281.941 21635282.367
+ 41.000 37.600
+ -419739.750 3 -327069.400 1 23612222.398 23612220.664 23612221.790
+ 18.600 6.500
+ -4122691.178 4 -3212484.307 3 24068011.060 24068009.786 24068009.760
+ 28.100 22.100
+ -15298298.254 7 -11920735.474 6 21590464.898 21590463.710 21590463.929
+ 43.700 37.700
+ -22391241.883 7 -17447711.481 7 20221359.112 20221357.309 20221358.552
+ 46.300 43.600
+ -16513367.723 7 -12867552.048 6 21762590.408 21762586.998 21762589.460
+ 44.400 36.700
+ -3976584.984 4 -3098636.067 4 23823390.360 23823388.955 23823389.230
+ 28.100 28.800
+ 06 1 2 1 10 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20467014.731 7 -15948312.551 7 20422364.856 20422362.760 20422364.187
+ 44.300 44.700
+ -16627280.908 6 -12956311.302 6 21644647.694 21644646.485 21644647.010
+ 40.600 37.100
+ -504411.490 3 -393047.335 2 23596109.813 23596108.247 23596108.942
+ 21.100 15.100
+ -4140619.611 4 -3226454.501 3 24064599.159 24064597.900 24064598.253
+ 28.400 21.100
+ -15226937.347 7 -11865129.576 6 21604044.691 21604043.128 21604043.529
+ 43.400 37.200
+ -22434905.004 7 -17481734.676 7 20213050.233 20213048.470 20213049.721
+ 46.100 43.600
+ -16592956.613 7 -12929569.359 6 21747445.086 21747441.863 21747443.976
+ 44.200 36.900
+ -4080283.565 4 -3179440.125 4 23803656.127 23803655.834 23803655.492
+ 26.200 28.100
+ 06 1 2 1 11 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20469447.264 7 -15950208.027 7 20421902.038 20421899.943 20421901.196
+ 44.200 44.800
+ -16577570.619 6 -12917576.021 6 21654107.095 21654106.089 21654106.362
+ 40.200 37.200
+ -588943.736 2 -458916.595 2 23580024.401 23580021.986 23580022.847
+ 17.800 16.100
+ -4157995.149 4 -3239993.860 3 24061292.944 24061291.580 24061291.712
+ 25.900 20.500
+ -15155374.319 7 -11809366.187 6 21617662.450 21617661.004 21617661.394
+ 43.300 37.500
+ -22477907.990 7 -17515243.489 7 20204866.848 20204865.266 20204866.414
+ 46.200 43.800
+ -16672315.114 7 -12991407.140 6 21732343.569 21732340.263 21732342.562
+ 44.300 36.900
+ -4183932.039 4 -3260205.116 4 23783933.129 23783932.052 23783932.106
+ 26.800 25.900
+ 06 1 2 1 11 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20471292.705 7 -15951646.023 7 20421550.614 20421548.894 20421549.983
+ 44.100 44.800
+ -16527364.205 6 -12878454.158 6 21663661.418 21663660.080 21663660.640
+ 40.500 36.900
+ -673336.347 3 -524677.020 2 23563964.424 23563962.481 23563963.785
+ 22.600 17.000
+ -4174816.454 4 -3253101.361 3 24058091.203 24058090.266 24058090.806
+ 27.900 20.500
+ -15083610.495 7 -11753446.327 6 21631318.799 21631317.171 21631317.745
+ 43.300 37.200
+ -22520249.776 7 -17548237.074 7 20196809.418 20196807.817 20196808.942
+ 46.100 43.800
+ -16751441.049 7 -13053063.702 6 21717286.211 21717283.163 21717285.238
+ 44.200 37.000
+ -4287528.846 4 -3340929.914 4 23764219.087 23764217.943 23764218.091
+ 28.600 24.200
+ 06 1 2 1 12 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20472551.758 7 -15952627.094 7 20421311.165 20421309.296 20421310.453
+ 44.200 44.800
+ -16476663.294 6 -12838946.971 6 21673309.577 21673308.088 21673308.841
+ 40.600 36.800
+ -757588.144 4 -590327.736 3 23547932.221 23547929.809 23547931.396
+ 25.600 19.300
+ -4191082.217 4 -3265775.946 3 24054996.896 24054995.209 24054995.794
+ 26.500 22.600
+ -15011647.066 7 -11697370.930 6 21645012.973 21645011.365 21645011.895
+ 43.200 37.100
+ -22561928.893 7 -17580714.296 7 20188878.290 20188876.563 20188877.790
+ 46.100 43.700
+ -16830332.494 7 -13114537.544 6 21702273.768 21702270.820 21702272.831
+ 44.600 37.500
+ -4391072.568 4 -3421613.297 3 23744515.401 23744513.368 23744514.451
+ 28.600 19.900
+ 06 1 2 1 12 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20473224.903 7 -15953151.622 7 20421183.088 20421181.159 20421182.364
+ 44.100 44.800
+ -16425469.986 6 -12799056.100 6 21683051.093 21683049.773 21683050.374
+ 40.200 36.300
+ -841699.156 4 -655868.754 3 23531925.770 23531923.769 23531925.155
+ 26.800 21.600
+ -4206791.937 4 -3278017.313 3 24052007.542 24052005.702 24052006.314
+ 28.400 19.900
+ -14939485.564 7 -11641141.188 6 21658744.957 21658743.355 21658743.801
+ 43.000 37.100
+ -22602944.327 7 -17612674.362 7 20181073.178 20181071.552 20181072.722
+ 45.900 43.700
+ -16908987.717 7 -13175827.319 6 21687306.393 21687303.001 21687305.184
+ 44.300 37.500
+ -4494561.343 4 -3502253.873 3 23724822.485 23724819.989 23724821.195
+ 26.500 22.600
+ 06 1 2 1 13 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20473312.580 7 -15953219.930 7 20421166.517 20421164.490 20421165.736
+ 44.400 44.600
+ -16373785.932 6 -12758782.822 6 21692886.151 21692884.849 21692885.386
+ 40.300 36.400
+ -925668.471 4 -721299.339 3 23515946.786 23515945.227 23515946.091
+ 28.100 23.400
+ -4221944.883 4 -3289824.798 3 24049123.716 24049122.003 24049122.714
+ 29.200 21.100
+ -14867127.086 7 -11584757.966 6 21672514.331 21672512.630 21672513.134
+ 43.100 36.500
+ -22643295.116 7 -17644116.523 7 20173394.647 20173393.127 20173394.205
+ 46.100 44.000
+ -16987404.407 7 -13236931.223 6 21672383.851 21672380.830 21672383.003
+ 44.600 37.300
+ -4597993.670 4 -3582850.506 3 23705139.931 23705137.611 23705139.271
+ 27.900 19.900
+ 06 1 2 1 13 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20472815.488 7 -15952832.580 7 20421261.175 20421258.975 20421260.420
+ 44.600 44.800
+ -16321613.168 6 -12718128.734 6 21702814.004 21702813.156 21702813.404
+ 39.800 36.200
+ -1009495.227 5 -786618.841 4 23499995.351 23499993.669 23499994.650
+ 30.200 24.900
+ -4236539.818 4 -3301197.450 3 24046346.341 24046344.914 24046345.404
+ 28.600 22.100
+ -14794573.314 7 -11528222.559 6 21686320.630 21686319.139 21686319.643
+ 42.900 36.700
+ -22682979.854 7 -17675039.680 7 20165843.143 20165841.396 20165842.497
+ 46.100 44.200
+ -17065580.503 7 -13297847.650 6 21657507.481 21657504.382 21657506.538
+ 44.700 37.300
+ -4701367.850 4 -3663401.790 4 23685467.946 23685466.920 23685467.228
+ 27.600 24.600
+ 06 1 2 1 14 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20471734.161 7 -15951989.979 7 20421466.922 20421464.759 20421466.242
+ 44.600 44.600
+ -16268953.513 6 -12677095.261 6 21712834.937 21712834.114 21712834.205
+ 39.200 36.600
+ -1093179.452 5 -851827.297 4 23484071.007 23484068.956 23484070.299
+ 32.400 26.800
+ -4250575.839 4 -3312134.603 3 24043675.343 24043673.417 24043674.404
+ 29.500 21.100
+ -14721825.358 7 -11471535.842 6 21700164.273 21700162.629 21700163.173
+ 42.700 36.400
+ -22721997.770 7 -17705443.238 7 20158418.185 20158416.478 20158417.660
+ 46.100 44.100
+ -17143514.099 7 -13358575.120 6 21642677.586 21642674.062 21642676.480
+ 44.700 37.600
+ -4804682.539 4 -3743906.711 4 23665806.849 23665806.810 23665805.882
+ 25.600 24.600
+ 06 1 2 1 14 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20470069.178 7 -15950692.580 7 20421783.767 20421781.663 20421783.026
+ 44.500 44.800
+ -16215809.042 6 -12635684.010 6 21722948.496 21722946.951 21722947.662
+ 39.800 36.100
+ -1176720.504 5 -916924.181 4 23468173.558 23468171.302 23468172.742
+ 32.000 26.800
+ -4264051.193 4 -3322634.881 3 24041111.253 24041109.538 24041109.942
+ 27.900 21.100
+ -14648884.174 7 -11414698.559 6 21714044.653 21714042.485 21714043.536
+ 42.700 36.000
+ -22760347.570 7 -17735326.188 7 20151120.512 20151118.732 20151119.875
+ 46.100 44.300
+ -17221203.076 7 -13419111.972 6 21627893.479 21627890.480 21627892.476
+ 44.600 38.400
+ -4907935.698 4 -3824363.695 3 23646160.326 23646158.151 23646158.855
+ 26.500 23.800
+ 06 1 2 1 15 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20467821.443 7 -15948941.094 7 20422211.413 20422209.316 20422210.681
+ 44.800 44.700
+ -16162181.540 6 -12593896.354 5 21733153.211 21733151.804 21733152.590
+ 39.700 35.700
+ -1260117.691 5 -981908.971 4 23452303.443 23452301.187 23452302.641
+ 32.000 26.800
+ -4276965.276 4 -3332697.789 3 24038653.885 24038652.176 24038652.809
+ 27.600 21.100
+ -14575751.364 7 -11357711.955 6 21727961.488 21727959.467 21727960.174
+ 42.600 36.500
+ -22798028.503 7 -17764687.939 7 20143949.814 20143948.266 20143949.290
+ 45.900 44.400
+ -17298645.151 7 -13479456.434 6 21613156.807 21613153.618 21613155.974
+ 45.200 37.700
+ -5011125.776 4 -3904771.525 4 23626522.765 23626521.958 23626521.840
+ 26.500 26.500
+ 06 1 2 1 15 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20464991.484 7 -15946735.922 7 20422749.775 20422747.758 20422749.124
+ 44.500 44.800
+ -16108073.355 6 -12551734.146 5 21743449.887 21743448.474 21743449.034
+ 39.700 35.800
+ -1343370.957 5 -1046781.610 4 23436461.115 23436458.619 23436460.398
+ 32.600 27.600
+ -4289316.990 4 -3342322.490 3 24036303.294 24036301.742 24036302.412
+ 28.100 22.100
+ -14502428.097 7 -11300576.949 6 21741914.164 21741912.521 21741913.028
+ 42.600 36.400
+ -22835039.361 7 -17793527.561 7 20136906.814 20136905.442 20136906.311
+ 45.800 44.500
+ -17375838.334 7 -13539606.965 6 21598467.669 21598464.180 21598466.560
+ 45.200 37.900
+ -5114250.959 4 -3985128.791 4 23606898.851 23606897.928 23606897.790
+ 28.600 29.900
+ 06 1 2 1 16 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20461580.015 7 -15944077.628 7 20423399.068 20423396.995 20423398.354
+ 44.700 44.600
+ -16053485.925 6 -12509198.511 6 21753837.278 21753836.308 21753836.686
+ 40.100 36.700
+ -1426479.637 5 -1111541.595 4 23420646.501 23420643.792 23420645.443
+ 32.600 27.900
+ -4301105.465 4 -3351508.310 3 24034060.037 24034058.704 24034058.795
+ 25.600 22.100
+ -14428915.715 7 -11243294.569 6 21755903.022 21755901.341 21755901.964
+ 42.600 36.000
+ -22871379.235 7 -17821844.332 7 20129991.761 20129990.208 20129991.203
+ 46.000 44.500
+ -17452780.995 7 -13599562.278 6 21583825.944 21583822.613 21583824.832
+ 45.100 38.100
+ -5217309.846 4 -4065434.382 5 23587287.322 23587286.882 23587286.304
+ 28.100 31.500
+ 06 1 2 1 16 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20457587.636 7 -15940966.680 7 20424158.649 20424156.624 20424158.044
+ 44.700 44.700
+ -15998421.573 6 -12466291.237 6 21764316.100 21764314.687 21764315.256
+ 39.900 36.100
+ -1509443.306 5 -1176188.567 4 23404858.839 23404856.406 23404857.665
+ 30.600 28.400
+ -4312329.937 4 -3360254.639 3 24031924.263 24031922.588 24031923.285
+ 29.200 22.600
+ -14355215.458 7 -11185865.802 6 21769928.109 21769926.224 21769926.814
+ 42.500 36.000
+ -22907047.207 7 -17849637.545 7 20123204.275 20123202.791 20123203.805
+ 46.100 44.600
+ -17529470.871 7 -13659320.612 6 21569231.923 21569229.017 21569230.970
+ 45.000 38.000
+ -5320300.584 4 -4145686.867 5 23567689.533 23567688.069 23567688.174
+ 28.400 30.600
+ 06 1 2 1 17 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20453015.264 7 -15937403.783 7 20425028.691 20425026.761 20425028.054
+ 44.600 44.700
+ -15942882.177 6 -12423013.798 5 21774884.423 21774883.402 21774883.776
+ 39.500 35.600
+ -1592261.141 4 -1240721.890 4 23389099.063 23389096.320 23389097.725
+ 28.600 25.900
+ -4322989.535 4 -3368560.805 3 24029895.397 24029894.562 24029894.246
+ 27.600 23.000
+ -14281328.568 7 -11128291.603 5 21783988.140 21783986.221 21783986.991
+ 42.600 35.800
+ -22942042.428 7 -17876906.540 7 20116544.859 20116543.343 20116544.405
+ 46.100 44.500
+ -17605905.774 7 -13718880.264 6 21554687.147 21554684.035 21554686.191
+ 45.500 38.600
+ -5423221.485 4 -4225884.941 4 23548103.290 23548102.168 23548102.393
+ 27.100 27.600
+ 06 1 2 1 17 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20447863.535 7 -15933389.446 7 20426009.151 20426007.178 20426008.458
+ 44.700 44.700
+ -15886870.132 6 -12379368.070 6 21785543.356 21785542.307 21785542.562
+ 39.100 36.100
+ -1674932.570 4 -1305141.167 3 23373366.990 23373364.245 23373366.079
+ 29.900 22.100
+ -4333083.245 4 -3376426.026 3 24027974.708 24027972.949 24027973.855
+ 27.600 19.300
+ -14207256.501 7 -11070573.110 6 21798083.810 21798081.845 21798082.519
+ 42.500 36.000
+ -22976364.016 7 -17903650.619 7 20110013.850 20110012.078 20110013.364
+ 46.100 44.600
+ -17682083.583 7 -13778239.588 6 21540191.112 21540187.754 21540190.107
+ 45.600 38.400
+ -5526070.898 5 -4306027.342 4 23528532.584 23528530.802 23528531.500
+ 30.600 27.900
+ 06 1 2 1 18 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20442133.301 7 -15928924.318 7 20427099.739 20427097.473 20427098.988
+ 44.700 44.700
+ -15830387.056 6 -12335355.310 6 21796292.029 21796290.800 21796291.204
+ 39.400 36.000
+ -1757457.111 5 -1369446.001 3 23357663.023 23357660.468 23357662.023
+ 30.100 23.000
+ -4342609.777 4 -3383849.284 3 24026161.856 24026160.440 24026160.972
+ 28.400 21.100
+ -14133000.486 7 -11012711.283 6 21812214.091 21812212.440 21812212.990
+ 42.400 36.000
+ -23010011.178 7 -17929869.183 7 20103610.868 20103609.280 20103610.454
+ 46.300 44.700
+ -17758002.567 7 -13837397.235 6 21525744.054 21525740.754 21525743.080
+ 45.500 38.200
+ -5628847.069 4 -4386112.653 4 23508975.043 23508973.616 23508973.925
+ 29.000 28.800
+ 06 1 2 1 18 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20435825.331 7 -15924009.011 7 20428300.049 20428297.850 20428299.374
+ 44.800 44.600
+ -15773435.310 6 -12290977.347 5 21807129.523 21807128.135 21807128.839
+ 39.500 35.600
+ -1839834.233 5 -1433635.939 4 23341987.073 23341985.026 23341986.191
+ 31.000 25.300
+ -4351568.935 4 -3390830.442 3 24024457.160 24024455.854 24024456.232
+ 28.100 23.000
+ -14058561.708 7 -10954707.045 5 21826379.060 21826377.635 21826378.041
+ 42.000 35.800
+ -23042982.970 7 -17955561.476 7 20097336.602 20097334.991 20097336.082
+ 46.500 44.800
+ -17833660.599 7 -13896351.536 6 21511346.783 21511343.605 21511345.695
+ 45.300 38.600
+ -5731548.204 5 -4466139.506 4 23489431.492 23489429.781 23489430.376
+ 30.100 27.900
+ 06 1 2 1 19 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20428940.579 7 -15918644.264 7 20429610.285 20429607.971 20429609.497
+ 44.800 44.600
+ -15716016.853 6 -12246235.705 5 21818055.832 21818054.297 21818054.969
+ 39.000 35.200
+ -1922063.145 5 -1497710.398 4 23326339.694 23326337.317 23326338.739
+ 33.400 25.300
+ -4359959.757 4 -3397368.720 3 24022860.318 24022858.951 24022859.236
+ 27.600 21.100
+ -13983941.488 6 -10896561.415 5 21840578.836 21840577.312 21840577.734
+ 41.800 35.700
+ -23075278.761 7 -17980727.019 7 20091190.982 20091189.239 20091190.513
+ 46.200 44.600
+ -17909055.594 7 -13955100.879 6 21496999.737 21496996.321 21496998.755
+ 45.700 38.400
+ -5834172.684 4 -4546106.621 4 23469901.943 23469900.658 23469901.020
+ 29.200 27.400
+ 06 1 2 1 19 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20421479.796 7 -15912830.661 7 20431029.947 20431027.628 20431029.245
+ 44.700 44.600
+ -15658133.756 6 -12201132.016 5 21829070.402 21829069.307 21829069.670
+ 38.800 35.500
+ -2004144.096 5 -1561669.580 4 23310720.573 23310717.442 23310719.409
+ 33.200 25.900
+ -4367781.432 4 -3403463.502 3 24021371.857 24021370.677 24021370.698
+ 28.100 21.600
+ -13909140.944 6 -10838275.283 5 21854813.401 21854811.231 21854812.255
+ 41.900 35.500
+ -23106897.673 7 -18005365.124 7 20085174.340 20085172.298 20085173.688
+ 46.400 44.700
+ -17984185.467 7 -14013643.629 6 21482703.118 21482699.607 21482702.030
+ 45.700 38.800
+ -5936718.685 4 -4626012.592 4 23450388.803 23450386.880 23450387.616
+ 29.700 25.900
+ 06 1 2 1 20 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20413443.660 7 -15906568.730 7 20432559.276 20432556.945 20432558.482
+ 44.800 44.600
+ -15599788.253 6 -12155668.010 5 21840173.454 21840172.144 21840172.690
+ 38.900 35.600
+ -2086076.440 5 -1625512.960 4 23295129.100 23295126.269 23295127.969
+ 32.700 27.900
+ -4375033.153 4 -3409114.199 3 24019991.920 24019990.201 24019990.987
+ 27.900 21.600
+ -13834161.203 6 -10779849.510 5 21869081.252 21869078.998 21869080.151
+ 41.800 34.800
+ -23137839.047 7 -18029475.273 7 20079286.027 20079284.306 20079285.685
+ 46.500 44.700
+ -18059047.892 7 -14071977.977 6 21468457.117 21468453.839 21468456.089
+ 45.700 39.000
+ -6039184.277 4 -4705855.906 4 23430890.082 23430888.322 23430888.952
+ 29.700 27.100
+ 06 1 2 1 20 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20404833.274 7 -15899859.335 7 20434197.571 20434195.458 20434196.837
+ 44.900 44.700
+ -15540982.365 6 -12109845.257 5 21851363.499 21851362.373 21851362.838
+ 38.600 34.800
+ -2167859.420 5 -1689239.919 4 23279566.321 23279563.968 23279565.349
+ 32.300 29.200
+ -4381714.406 4 -3414320.389 3 24018720.531 24018718.452 24018719.417
+ 26.500 21.600
+ -13759003.640 6 -10721285.173 5 21883383.249 21883381.592 21883382.115
+ 41.400 35.500
+ -23168102.231 7 -18053056.970 7 20073527.305 20073525.485 20073526.768
+ 46.800 44.800
+ -18133640.917 7 -14130102.409 6 21454262.455 21454259.114 21454261.439
+ 45.600 38.600
+ -6141567.706 4 -4785635.188 4 23411406.853 23411405.458 23411405.695
+ 29.200 27.600
+ 06 1 2 1 21 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20395649.700 7 -15892703.296 7 20435945.190 20435943.047 20435944.444
+ 44.900 44.800
+ -15481718.309 6 -12063665.489 5 21862641.114 21862639.856 21862640.340
+ 38.100 34.700
+ -2249492.311 5 -1752849.931 4 23264032.061 23264029.841 23264031.127
+ 31.500 28.800
+ -4387823.876 4 -3419080.990 3 24017557.923 24017556.465 24017557.014
+ 28.800 22.100
+ -13683669.287 6 -10662583.092 5 21897718.599 21897717.169 21897717.573
+ 41.400 35.200
+ -23197686.504 7 -18076109.636 7 20067897.468 20067895.766 20067897.061
+ 46.500 44.700
+ -18207962.413 7 -14188015.253 6 21440119.477 21440116.322 21440118.594
+ 46.100 39.100
+ -6243867.335 4 -4865349.161 4 23391940.254 23391938.243 23391939.221
+ 27.100 25.300
+ 06 1 2 1 21 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20385893.563 7 -15885101.106 7 20437801.672 20437799.633 20437801.018
+ 44.800 44.700
+ -15421998.250 6 -12017130.405 5 21874005.700 21874004.686 21874004.865
+ 38.500 35.500
+ -2330974.840 5 -1816342.780 4 23248526.370 23248523.759 23248525.346
+ 32.000 26.200
+ -4393361.523 4 -3423396.029 3 24016504.909 24016502.661 24016503.584
+ 27.600 21.100
+ -13608159.283 6 -10603744.118 5 21912088.220 21912086.141 21912086.973
+ 41.300 35.100
+ -23226591.348 7 -18098632.889 7 20062397.171 20062395.366 20062396.655
+ 46.500 44.800
+ -18282010.283 7 -14245714.884 6 21426028.948 21426025.342 21426027.836
+ 46.100 39.100
+ -6346081.323 4 -4944996.429 4 23372489.303 23372487.287 23372488.195
+ 28.600 25.300
+ 06 1 2 1 22 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20375565.954 7 -15877053.617 7 20439767.026 20439764.852 20439766.292
+ 44.900 44.700
+ -15361824.319 6 -11970241.650 5 21885456.485 21885455.495 21885455.740
+ 39.100 35.700
+ -2412306.386 5 -1879718.015 4 23233049.418 23233046.404 23233048.495
+ 32.400 24.200
+ -4398326.252 4 -3427264.627 3 24015559.144 24015557.889 24015558.229
+ 28.100 21.100
+ -13532475.329 6 -10544769.617 5 21926489.929 21926488.595 21926488.844
+ 41.100 34.700
+ -23254815.930 7 -18120626.055 7 20057026.197 20057024.440 20057025.725
+ 46.500 44.800
+ -18355782.531 7 -14303199.747 6 21411990.164 21411987.050 21411989.163
+ 45.900 39.500
+ -6448207.925 4 -5024575.581 4 23353054.915 23353053.650 23353053.660
+ 28.600 25.600
+ 06 1 2 1 22 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20364667.841 7 -15868561.577 7 20441840.839 20441838.736 20441840.090
+ 44.800 44.800
+ -15301198.801 6 -11923001.010 5 21896993.281 21896992.050 21896992.424
+ 38.900 35.600
+ -2493486.738 5 -1942975.455 4 23217601.324 23217598.450 23217600.330
+ 32.100 24.600
+ -4402717.748 5 -3430686.579 3 24014724.406 24014722.465 24014723.449
+ 30.200 23.400
+ -13456618.338 6 -10485660.282 5 21940925.067 21940923.599 21940923.989
+ 41.100 34.900
+ -23282359.634 7 -18142088.679 7 20051784.891 20051783.041 20051784.314
+ 46.600 44.900
+ -18429276.788 7 -14360467.992 6 21398004.858 21398001.535 21398003.753
+ 46.100 39.400
+ -6550245.271 4 -5104085.197 4 23333638.184 23333636.748 23333637.280
+ 29.900 26.500
+ 06 1 2 1 23 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20353200.405 7 -15859625.905 7 20444022.837 20444020.918 20444022.171
+ 44.700 44.800
+ -15240123.690 6 -11875410.031 5 21908615.316 21908613.895 21908614.573
+ 38.600 34.500
+ -2574515.328 5 -2006114.594 4 23202181.900 23202179.826 23202180.944
+ 31.100 27.400
+ -4406535.296 4 -3433661.289 3 24013997.563 24013995.685 24013996.285
+ 27.900 22.100
+ -13380589.450 6 -10426416.995 5 21955393.116 21955391.378 21955391.878
+ 40.900 34.900
+ -23309222.300 7 -18163020.616 7 20046672.947 20046671.174 20046672.498
+ 46.500 44.800
+ -18502491.162 7 -14417518.148 6 21384072.584 21384069.360 21384071.674
+ 46.300 39.800
+ -6652191.717 5 -5183524.003 4 23314238.892 23314236.838 23314237.712
+ 30.200 26.200
+ 06 1 2 1 23 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20341164.468 7 -15850247.249 7 20446313.215 20446311.197 20446312.553
+ 44.900 44.800
+ -15178601.387 6 -11827470.594 5 21920322.366 21920321.130 21920321.625
+ 38.200 34.100
+ -2655391.268 5 -2069134.766 4 23186791.746 23186789.577 23186790.871
+ 31.800 28.600
+ -4409778.309 4 -3436188.309 3 24013379.841 24013378.252 24013379.240
+ 26.500 19.300
+ -13304389.914 6 -10367040.734 5 21969893.383 21969891.941 21969892.177
+ 41.100 35.500
+ -23335403.214 7 -18183421.321 7 20041690.963 20041689.151 20041690.322
+ 46.500 44.800
+ -18575423.469 7 -14474348.508 6 21370194.003 21370190.929 21370192.976
+ 46.100 40.100
+ -6754045.259 5 -5262890.403 4 23294856.635 23294855.100 23294855.482
+ 30.200 27.400
+ 06 1 2 1 24 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20328561.066 7 -15840426.411 7 20448711.585 20448709.596 20448710.943
+ 44.900 44.800
+ -15116634.189 6 -11779184.484 5 21932114.578 21932113.307 21932113.758
+ 38.000 34.500
+ -2736114.505 5 -2132035.969 4 23171430.579 23171428.002 23171429.718
+ 33.100 27.600
+ -4412446.490 4 -3438267.387 3 24012872.879 24012871.116 24012871.592
+ 27.900 22.100
+ -13228020.970 6 -10307532.472 5 21984425.921 21984424.081 21984424.782
+ 41.100 34.900
+ -23360901.792 7 -18203290.330 7 20036838.416 20036836.891 20036838.000
+ 46.300 44.800
+ -18648071.739 7 -14530957.541 6 21356369.412 21356366.233 21356368.332
+ 45.700 39.700
+ -6855804.103 5 -5342182.974 4 23275492.704 23275491.169 23275491.658
+ 31.600 29.900
+ 06 1 2 1 24 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20315391.199 7 -15830164.172 7 20451217.858 20451215.713 20451217.140
+ 45.100 44.900
+ -15054224.247 6 -11730553.382 5 21943990.787 21943989.554 21943990.018
+ 37.900 34.600
+ -2816684.005 5 -2194817.400 4 23156098.751 23156095.971 23156097.774
+ 34.100 26.200
+ -4414538.654 4 -3439897.652 3 24012473.612 24012473.049 24012472.876
+ 25.900 23.000
+ -13151483.649 6 -10247893.007 5 21998990.385 21998988.776 21998989.347
+ 41.300 34.800
+ -23385717.893 7 -18222627.540 7 20032116.422 20032114.467 20032115.808
+ 46.500 44.900
+ -18720433.894 7 -14587343.629 6 21342599.064 21342596.235 21342598.152
+ 45.900 39.900
+ -6957466.340 5 -5421400.294 5 23256146.858 23256145.316 23256145.795
+ 30.800 30.800
+ 06 1 2 1 25 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20301656.102 7 -15819461.492 7 20453831.543 20453829.478 20453830.828
+ 44.900 44.900
+ -14991373.798 6 -11681579.033 5 21955950.806 21955949.736 21955950.001
+ 38.100 34.600
+ -2897099.417 5 -2257478.755 4 23140796.278 23140793.969 23140795.260
+ 32.600 28.400
+ -4416054.285 4 -3441078.674 3 24012185.928 24012184.491 24012184.609
+ 26.800 23.400
+ -13074779.136 6 -10188123.255 5 22013586.895 22013585.187 22013585.699
+ 41.000 34.600
+ -23409850.788 7 -18241432.388 7 20027523.873 20027522.098 20027523.548
+ 46.700 44.800
+ -18792507.702 7 -14643505.029 6 21328884.309 21328880.970 21328883.209
+ 46.100 40.000
+ -7059030.370 5 -5500541.075 5 23236819.787 23236818.289 23236818.731
+ 30.800 31.300
+ 06 1 2 1 25 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20287356.765 7 -15808319.151 7 20456552.641 20456550.493 20456551.916
+ 44.900 44.900
+ -14928085.138 6 -11632263.216 5 21967994.468 21967993.214 21967993.733
+ 38.300 34.400
+ -2977360.851 5 -2320020.100 4 23125522.923 23125520.950 23125522.021
+ 31.800 28.400
+ -4416992.740 4 -3441809.932 3 24012006.642 24012005.921 24012006.055
+ 28.100 21.600
+ -12997908.734 6 -10128224.257 5 22028214.874 22028213.063 22028213.668
+ 40.500 34.500
+ -23433300.142 7 -18259704.597 7 20023061.887 20023059.880 20023061.328
+ 46.800 44.800
+ -18864290.723 7 -14699439.843 6 21315224.299 21315221.109 21315223.327
+ 46.000 39.900
+ -7160494.117 5 -5579603.728 5 23217511.811 23217510.666 23217510.787
+ 31.100 31.500
+ 06 1 2 1 26 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20272494.344 7 -15796738.035 7 20459380.904 20459378.688 20459380.135
+ 45.000 44.900
+ -14864360.635 6 -11582607.779 5 21980120.693 21980119.661 21980119.965
+ 37.700 34.400
+ -3057467.406 5 -2382440.747 4 23110279.047 23110276.652 23110278.036
+ 32.100 28.100
+ -4417354.436 4 -3442091.761 3 24011937.912 24011936.811 24011936.555
+ 25.600 21.100
+ -12920873.511 6 -10068196.813 5 22042874.005 22042872.491 22042872.854
+ 40.500 34.600
+ -23456065.618 7 -18277443.925 7 20018729.651 20018727.808 20018729.163
+ 46.800 45.100
+ -18935781.344 7 -14755146.816 6 21301620.392 21301616.886 21301619.198
+ 46.200 39.900
+ -7261855.851 5 -5658586.876 4 23198224.344 23198222.043 23198222.784
+ 30.600 29.700
+ 06 1 2 1 26 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20257070.054 7 -15784719.106 7 20462315.913 20462313.915 20462315.220
+ 44.900 44.900
+ -14800202.534 6 -11532614.473 5 21992329.603 21992328.348 21992328.824
+ 37.700 34.000
+ -3137418.970 5 -2444740.660 4 23095064.739 23095062.070 23095063.873
+ 33.200 26.500
+ -4417139.093 4 -3441923.913 3 24011979.831 24011977.796 24011978.779
+ 27.900 21.600
+ -12843674.745 6 -10008041.933 5 22057564.549 22057562.768 22057563.432
+ 40.500 34.100
+ -23478146.905 7 -18294650.109 7 20014527.720 20014525.816 20014527.275
+ 46.700 45.100
+ -19006977.161 7 -14810624.072 6 21288071.957 21288068.639 21288070.906
+ 46.100 39.700
+ -7363113.555 4 -5737488.990 4 23178953.977 23178953.594 23178953.447
+ 29.900 29.200
+ 06 1 2 1 27 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20241084.956 7 -15772263.180 7 20465357.541 20465355.752 20465356.925
+ 45.100 44.800
+ -14735613.178 6 -11482285.120 5 22004620.537 22004619.277 22004619.741
+ 37.300 34.300
+ -3217214.638 5 -2506919.085 4 23079880.404 23079877.716 23079879.665
+ 34.000 28.400
+ -4416345.674 4 -3441305.707 3 24012130.116 24012129.086 24012129.305
+ 27.600 22.600
+ -12766313.617 6 -9947760.537 5 22072285.718 22072284.253 22072284.665
+ 40.500 34.300
+ -23499543.779 7 -18311322.994 7 20010456.045 20010454.194 20010455.461
+ 46.800 45.300
+ -19077875.975 7 -14865869.897 6 21274580.424 21274577.156 21274579.400
+ 46.500 40.100
+ -7464265.501 4 -5816308.673 4 23159706.385 23159704.123 23159704.929
+ 29.500 27.400
+ 06 1 2 1 27 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20224540.134 7 -15759371.106 7 20468506.293 20468504.147 20468505.508
+ 45.200 45.000
+ -14670594.952 6 -11431621.591 5 22016993.279 22016991.812 22016992.458
+ 37.200 33.600
+ -3296853.553 5 -2568975.357 4 23064725.600 23064723.142 23064724.595
+ 33.900 27.600
+ -4414974.197 4 -3440237.030 3 24012391.221 24012389.379 24012390.226
+ 26.500 20.500
+ -12688791.269 6 -9887353.517 5 22087037.749 22087036.234 22087036.643
+ 40.100 34.300
+ -23520255.800 7 -18327462.225 7 20006514.459 20006512.857 20006513.949
+ 46.400 45.300
+ -19148475.677 7 -14920882.647 6 21261145.585 21261142.426 21261144.595
+ 46.600 40.000
+ -7565309.789 5 -5895044.485 4 23140477.782 23140476.269 23140476.854
+ 32.000 28.600
+ 06 1 2 1 28 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20207436.992 7 -15746043.978 7 20471760.805 20471758.776 20471760.061
+ 45.000 45.000
+ -14605150.098 6 -11380625.622 5 22029446.915 22029445.700 22029446.049
+ 37.100 33.100
+ -3376335.679 5 -2630909.460 4 23049599.992 23049597.546 23049599.415
+ 34.000 27.400
+ -4413023.683 4 -3438717.163 3 24012762.015 24012760.990 24012761.027
+ 27.100 21.100
+ -12611108.722 6 -9826821.674 5 22101820.418 22101818.702 22101819.283
+ 40.500 33.900
+ -23540282.855 7 -18343067.711 7 20002703.523 20002701.770 20002703.010
+ 46.500 45.300
+ -19218774.366 7 -14975660.841 6 21247768.106 21247765.023 21247767.110
+ 46.300 40.100
+ -7666244.479 5 -5973694.910 4 23121270.966 23121269.001 23121269.835
+ 33.100 27.900
+ 06 1 2 1 28 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20189776.608 7 -15732282.634 7 20475121.309 20475119.453 20475120.626
+ 44.900 44.900
+ -14539281.063 6 -11329299.119 5 22041981.249 22041980.202 22041980.440
+ 37.400 33.500
+ -3455660.523 5 -2692721.028 4 23034505.582 23034502.108 23034504.664
+ 34.000 27.400
+ -4410493.447 4 -3436745.527 3 24013243.599 24013242.389 24013242.635
+ 25.600 19.900
+ -12533267.244 6 -9766165.968 5 22116633.156 22116631.410 22116631.940
+ 40.000 33.900
+ -23559624.757 7 -18358139.320 7 19999022.939 19999021.027 19999022.445
+ 46.800 45.300
+ -19288769.925 7 -15030202.832 6 21234448.454 21234445.319 21234447.451
+ 46.200 40.200
+ -7767067.494 5 -6052258.293 4 23102084.570 23102083.243 23102083.348
+ 31.500 29.000
+ 06 1 2 1 29 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20171560.059 7 -15718087.917 7 20478587.645 20478585.882 20478586.999
+ 44.800 44.900
+ -14472990.221 6 -11277643.930 5 22054595.860 22054594.930 22054595.277
+ 37.700 33.200
+ -3534827.554 5 -2754409.610 4 23019440.062 23019437.846 23019439.399
+ 32.800 28.100
+ -4407384.254 4 -3434322.763 3 24013834.714 24013833.810 24013834.039
+ 26.200 20.500
+ -12455267.822 6 -9705387.209 5 22131476.372 22131474.434 22131475.144
+ 40.200 34.000
+ -23578281.245 7 -18372676.838 7 19995472.518 19995470.861 19995472.149
+ 46.600 45.500
+ -19358460.105 7 -15084506.856 6 21221186.933 21221183.771 21221185.935
+ 46.300 40.500
+ -7867776.892 5 -6130733.130 5 23082920.517 23082918.873 23082919.566
+ 32.000 30.200
+ 06 1 2 1 29 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20152789.059 7 -15703461.158 7 20482159.893 20482157.809 20482159.142
+ 45.100 44.800
+ -14406279.690 6 -11225661.720 5 22067290.903 22067289.770 22067290.073
+ 37.800 34.100
+ -3613836.167 5 -2815974.728 4 23004405.449 23004403.677 23004404.467
+ 33.900 29.700
+ -4403695.529 4 -3431448.415 3 24014537.774 24014535.918 24014536.786
+ 27.900 22.100
+ -12377111.640 6 -9644486.291 5 22146348.441 22146346.918 22146347.433
+ 40.100 33.500
+ -23596252.095 7 -18386680.086 7 19992052.740 19992051.075 19992052.358
+ 46.500 45.500
+ -19427842.419 7 -15138570.994 6 21207983.850 21207980.605 21207982.874
+ 46.600 40.600
+ -7968370.900 5 -6209118.070 5 23063778.529 23063776.501 23063777.110
+ 32.000 30.600
+ 06 1 2 1 30 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20133464.454 7 -15688403.023 7 20485837.146 20485835.173 20485836.514
+ 45.200 44.700
+ -14339152.237 6 -11173354.629 5 22080064.976 22080063.663 22080064.221
+ 38.000 33.600
+ -3692685.495 5 -2877415.722 5 22989401.180 22989398.938 22989400.271
+ 34.600 30.400
+ -4399426.907 4 -3428122.214 3 24015349.071 24015348.600 24015348.231
+ 26.500 21.600
+ -12298799.568 6 -9583463.902 5 22161250.577 22161249.133 22161249.453
+ 39.700 33.100
+ -23613537.365 7 -18400149.128 7 19988763.630 19988761.808 19988763.090
+ 46.600 45.500
+ -19496914.958 7 -15192393.747 6 21194840.022 21194836.513 21194838.832
+ 46.600 40.600
+ -8068847.515 5 -6287411.522 4 23044657.771 23044656.133 23044656.487
+ 32.000 29.700
+ 06 1 2 1 30 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20113587.759 7 -15672914.679 7 20489619.756 20489617.582 20489619.047
+ 45.200 44.700
+ -14271610.148 6 -11120724.447 5 22092917.649 22092916.441 22092916.843
+ 37.200 33.500
+ -3771375.568 5 -2938732.631 4 22974426.505 22974423.914 22974425.595
+ 33.800 28.600
+ -4394578.029 4 -3424343.879 3 24016273.107 24016271.110 24016272.049
+ 28.600 20.500
+ -12220332.970 6 -9522321.099 5 22176182.415 22176180.884 22176181.323
+ 39.600 33.000
+ -23630136.826 7 -18413083.762 7 19985604.765 19985603.071 19985604.431
+ 46.700 45.600
+ -19565675.609 7 -15245973.470 6 21181755.139 21181751.824 21181754.075
+ 46.600 40.700
+ -8169204.929 5 -6365612.079 5 23025560.218 23025558.857 23025559.067
+ 31.800 30.400
+ 06 1 2 1 31 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20093160.114 7 -15656997.032 7 20493506.928 20493504.884 20493506.244
+ 45.100 44.800
+ -14203655.798 6 -11067773.014 5 22105848.815 22105847.831 22105848.013
+ 37.000 34.000
+ -3849905.917 5 -2999925.098 4 22959482.482 22959479.907 22959481.709
+ 33.900 27.400
+ -4389148.846 4 -3420113.338 3 24017306.205 24017304.154 24017305.097
+ 27.900 22.600
+ -12141712.798 6 -9461058.635 5 22191143.372 22191141.857 22191142.084
+ 39.500 33.000
+ -23646050.501 7 -18425484.019 7 19982576.832 19982574.857 19982576.286
+ 46.900 45.700
+ -19634122.408 7 -15299308.634 6 21168730.351 21168726.858 21168729.249
+ 46.700 40.700
+ -8269441.167 5 -6443718.230 5 23006485.561 23006484.726 23006484.911
+ 32.300 30.600
+ 06 1 2 1 31 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20072182.903 7 -15640651.152 7 20497498.880 20497496.730 20497498.139
+ 45.300 44.600
+ -14135291.663 6 -11014502.269 5 22118858.137 22118856.961 22118857.406
+ 37.100 33.200
+ -3928276.179 5 -3060992.828 4 22944570.249 22944567.264 22944569.274
+ 35.300 29.200
+ -4383139.146 4 -3415430.465 3 24018448.863 24018448.207 24018448.247
+ 28.800 23.400
+ -12062940.053 6 -9399677.281 5 22206133.011 22206131.649 22206131.949
+ 39.300 33.200
+ -23661278.328 7 -18437349.856 7 19979679.169 19979677.064 19979678.525
+ 46.800 45.800
+ -19702253.051 7 -15352397.435 6 21155765.336 21155762.073 21155764.242
+ 46.400 40.900
+ -8369554.024 5 -6521728.238 5 22987435.168 22987433.979 22987434.073
+ 32.800 31.600
+ 06 1 2 1 32 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20050657.600 7 -15623878.185 7 20501595.110 20501592.838 20501594.292
+ 45.300 44.700
+ -14066520.265 6 -10960914.181 5 22131944.713 22131943.936 22131943.953
+ 36.200 33.800
+ -4006485.472 5 -3121935.110 4 22929687.249 22929684.573 22929686.092
+ 34.400 29.900
+ -4376548.892 4 -3410295.177 3 24019703.704 24019701.555 24019702.411
+ 27.600 20.500
+ -11984016.074 6 -9338178.075 5 22221152.134 22221150.305 22221150.913
+ 39.100 33.600
+ -23675820.316 7 -18448681.268 7 19976911.625 19976909.820 19976911.143
+ 46.700 45.900
+ -19770065.034 7 -15405237.939 6 21142861.213 21142857.874 21142860.206
+ 46.700 41.000
+ -8469541.706 5 -6599640.696 5 22968408.038 22968406.751 22968407.189
+ 32.600 30.600
+ 06 1 2 1 32 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20028585.419 7 -15606679.080 7 20505795.110 20505793.015 20505794.348
+ 45.200 44.700
+ -13997344.091 5 -10907010.705 5 22145108.683 22145107.539 22145107.743
+ 35.900 33.200
+ -4084533.439 5 -3182751.654 4 22914834.184 22914831.870 22914833.178
+ 33.400 28.800
+ -4369377.703 4 -3404707.221 3 24021067.752 24021066.261 24021067.034
+ 27.600 20.500
+ -11904942.103 6 -9276561.999 5 22236199.684 22236197.755 22236198.519
+ 39.700 33.400
+ -23689676.499 7 -18459478.283 7 19974274.958 19974273.056 19974274.381
+ 46.700 45.900
+ -19837556.779 7 -15457828.904 6 21130017.952 21130014.592 21130016.884
+ 46.700 41.000
+ -8569402.230 5 -6677454.070 5 22949406.090 22949404.146 22949404.707
+ 33.200 31.000
+ 06 1 2 1 33 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -20005967.670 7 -15589054.860 7 20510099.188 20510096.957 20510098.371
+ 45.300 44.600
+ -13927765.398 6 -10852793.561 5 22158349.287 22158348.005 22158348.588
+ 36.900 33.000
+ -4162419.406 5 -3243442.016 4 22900013.194 22900010.218 22900012.401
+ 35.100 26.800
+ -4361625.121 4 -3398666.259 3 24022543.466 24022541.988 24022542.233
+ 27.600 21.600
+ -11825718.937 6 -9214829.662 5 22251275.177 22251273.521 22251274.016
+ 38.800 33.200
+ -23702846.862 7 -18469740.898 7 19971768.661 19971766.768 19971768.061
+ 46.700 45.900
+ -19904725.907 7 -15510168.479 6 21117236.121 21117232.667 21117235.014
+ 46.900 41.000
+ -8669133.582 5 -6755166.802 5 22930427.133 22930425.271 22930426.106
+ 33.000 30.600
+ 06 1 2 1 33 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19982806.031 7 -15571006.827 7 20514506.565 20514504.478 20514505.885
+ 45.200 44.400
+ -13857786.870 6 -10798264.859 5 22171665.737 22171664.429 22171665.049
+ 37.200 32.700
+ -4240143.220 6 -3304006.014 4 22885222.920 22885220.678 22885222.233
+ 36.000 29.700
+ -4353291.687 4 -3392172.643 3 24024128.372 24024127.572 24024127.514
+ 24.200 22.100
+ -11746347.790 6 -9152982.021 5 22266378.864 22266377.463 22266377.752
+ 38.700 33.100
+ -23715331.610 7 -18479469.267 7 19969392.781 19969391.081 19969392.279
+ 46.600 45.900
+ -19971570.166 7 -15562254.912 6 21104516.006 21104512.593 21104514.949
+ 46.800 41.100
+ -8768733.753 5 -6832777.302 5 22911474.005 22911472.518 22911472.945
+ 32.700 30.600
+ 06 1 2 1 34 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19959101.695 7 -15552535.913 7 20519017.214 20519015.173 20519016.624
+ 45.400 44.200
+ -13787410.946 6 -10743426.497 5 22185057.990 22185056.492 22185057.007
+ 36.600 32.400
+ -4317703.902 5 -3364442.877 5 22870463.617 22870461.654 22870462.636
+ 34.800 30.200
+ -4344377.309 4 -3385226.385 3 24025826.207 24025823.557 24025824.956
+ 29.200 20.500
+ -11666829.895 6 -9091020.030 5 22281510.335 22281509.034 22281509.231
+ 38.800 32.100
+ -23727130.654 7 -18488663.316 7 19967147.521 19967145.789 19967147.034
+ 46.600 46.000
+ -20038087.433 7 -15614086.543 6 21091858.302 21091854.851 21091857.198
+ 46.800 41.100
+ -8868200.798 5 -6910284.074 5 22892545.511 22892544.260 22892544.510
+ 33.200 30.400
+ 06 1 2 1 34 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19934856.221 7 -15533643.339 7 20523631.040 20523628.926 20523630.405
+ 45.400 44.100
+ -13716639.976 6 -10688280.318 5 22198525.307 22198523.748 22198524.583
+ 37.200 32.300
+ -4395101.238 5 -3424752.442 4 22855735.665 22855732.710 22855734.671
+ 34.400 27.900
+ -4334881.317 4 -3377826.915 3 24027631.290 24027630.751 24027630.533
+ 25.300 20.500
+ -11587166.118 6 -9028944.358 5 22296670.064 22296668.612 22296668.932
+ 38.400 32.700
+ -23738244.384 7 -18497323.361 7 19965032.630 19965030.838 19965032.153
+ 46.800 46.000
+ -20104275.498 7 -15665661.655 6 21079263.140 21079259.827 21079262.093
+ 46.800 41.500
+ -8967532.754 5 -6987685.584 4 22873643.813 22873641.808 22873642.765
+ 34.000 29.900
+ 06 1 2 1 35 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19910071.060 7 -15514330.222 7 20528347.673 20528345.379 20528346.963
+ 45.500 44.400
+ -13645476.713 6 -10632828.427 5 22212067.349 22212065.713 22212066.708
+ 37.200 32.600
+ -4472334.763 5 -3484934.425 4 22841038.381 22841035.361 22841037.682
+ 35.600 27.600
+ -4324804.578 4 -3369974.905 3 24029550.391 24029548.528 24029549.343
+ 28.800 21.100
+ -11507357.608 6 -8966755.916 5 22311857.675 22311855.878 22311856.422
+ 38.900 33.200
+ -23748672.853 7 -18505449.435 7 19963048.183 19963046.360 19963047.655
+ 46.600 45.900
+ -20170132.260 7 -15716978.609 6 21066731.153 21066727.525 21066729.971
+ 46.800 41.200
+ -9066727.477 5 -7064980.160 5 22854767.507 22854765.689 22854766.449
+ 33.000 31.000
+ 06 1 2 1 35 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19884747.367 7 -15494597.479 7 20533166.619 20533164.374 20533165.947
+ 45.700 44.300
+ -13573923.495 6 -10577072.684 5 22225683.333 22225682.113 22225682.456
+ 36.100 33.400
+ -4549404.100 5 -3544988.434 5 22826372.224 22826370.335 22826371.446
+ 34.600 30.600
+ -4314146.571 4 -3361669.950 3 24031578.058 24031576.625 24031576.615
+ 24.900 20.500
+ -11427405.253 6 -8904455.382 5 22327071.370 22327070.143 22327070.311
+ 38.600 32.800
+ -23758416.396 7 -18513041.802 7 19961194.086 19961192.258 19961193.467
+ 46.600 46.000
+ -20235655.664 7 -15768035.801 6 21054262.087 21054258.803 21054261.061
+ 46.800 41.300
+ -9165783.053 5 -7142166.308 5 22835917.665 22835916.334 22835916.727
+ 34.100 31.800
+ 06 1 2 1 36 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19858887.071 7 -15474446.598 7 20538087.604 20538085.434 20538086.897
+ 45.600 44.300
+ -13501982.951 5 -10521015.152 5 22239372.715 22239372.003 22239372.085
+ 35.800 33.200
+ -4626308.701 5 -3604914.057 5 22811738.266 22811736.075 22811737.416
+ 35.800 31.100
+ -4302907.782 4 -3352912.441 3 24033716.885 24033714.878 24033715.911
+ 28.400 19.300
+ -11347309.990 6 -8842043.491 5 22342313.017 22342311.748 22342311.997
+ 38.700 32.800
+ -23767475.125 7 -18520100.542 7 19959470.103 19959468.486 19959469.588
+ 46.400 46.100
+ -20300843.394 7 -15818831.432 6 21041857.253 21041854.020 21041856.303
+ 46.900 41.400
+ -9264697.386 5 -7219242.400 5 22817094.990 22817093.534 22817093.913
+ 33.600 31.800
+ 06 1 2 1 36 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19832491.321 7 -15453878.481 7 20543110.696 20543108.307 20543109.928
+ 45.700 44.300
+ -13429657.594 6 -10464657.735 5 22253135.920 22253135.003 22253135.255
+ 36.500 33.100
+ -4703047.899 6 -3664710.821 5 22797135.674 22797132.442 22797134.735
+ 36.600 30.100
+ -4291087.897 3 -3343702.142 3 24035965.231 24035964.366 24035964.339
+ 23.400 19.900
+ -11267072.792 6 -8779521.001 5 22357581.899 22357580.563 22357580.751
+ 38.000 32.800
+ -23775849.415 7 -18526625.959 7 19957876.561 19957874.911 19957876.036
+ 46.600 46.100
+ -20365693.476 7 -15869363.963 6 21029516.546 21029513.559 21029515.566
+ 46.600 41.900
+ -9363468.360 5 -7296206.760 5 22798299.331 22798298.070 22798298.198
+ 33.500 33.000
+ 06 1 2 1 37 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19805561.779 7 -15432894.423 7 20548235.086 20548232.937 20548234.417
+ 45.800 44.400
+ -13356950.000 6 -10408002.470 5 22266971.914 22266970.726 22266971.172
+ 36.200 33.000
+ -4779621.509 6 -3724378.556 5 22782564.094 22782560.892 22782563.073
+ 36.400 30.200
+ -4278686.871 4 -3334038.992 3 24038325.583 24038323.997 24038324.517
+ 25.600 19.300
+ -11186694.893 6 -8716888.891 5 22372877.246 22372875.988 22372876.125
+ 38.300 33.100
+ -23783539.462 7 -18532618.198 7 19956413.382 19956411.483 19956412.801
+ 46.600 46.200
+ -20430203.715 7 -15919631.673 6 21017240.697 21017237.580 21017239.638
+ 46.600 41.900
+ -9462093.894 5 -7373057.805 5 22779531.525 22779530.383 22779530.595
+ 33.800 32.700
+ 06 1 2 1 37 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19778099.868 7 -15411495.529 7 20553461.187 20553458.786 20553460.410
+ 45.600 44.300
+ -13283862.732 5 -10351051.368 5 22280879.674 22280878.609 22280878.906
+ 35.100 32.000
+ -4856028.840 6 -3783916.722 5 22768024.364 22768021.758 22768023.319
+ 36.700 31.600
+ -4265705.207 4 -3323923.432 3 24040796.237 24040794.746 24040795.179
+ 26.500 21.100
+ -11106177.438 6 -8654148.021 5 22388199.316 22388197.741 22388198.211
+ 38.200 32.600
+ -23790545.697 7 -18538077.597 7 19955080.121 19955078.254 19955079.543
+ 46.700 46.100
+ -20494371.787 7 -15969632.764 6 21005029.978 21005026.687 21005029.005
+ 46.500 41.600
+ -9560571.970 5 -7449793.954 5 22760791.680 22760790.623 22760790.685
+ 33.000 32.400
+ 06 1 2 1 38 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19750107.368 7 -15389683.193 7 20558787.699 20558785.622 20558787.087
+ 45.600 44.300
+ -13210398.362 6 -10293806.421 5 22294859.605 22294858.516 22294858.859
+ 36.200 32.400
+ -4932269.801 6 -3843325.234 5 22753515.697 22753513.848 22753514.846
+ 36.400 32.400
+ -4252142.988 4 -3313355.417 3 24043376.449 24043375.570 24043375.665
+ 24.600 21.600
+ -11025521.435 6 -8591299.190 5 22403547.596 22403546.187 22403546.449
+ 38.100 32.300
+ -23796868.282 7 -18543004.281 7 19953876.740 19953875.028 19953876.316
+ 46.500 46.100
+ -20558195.562 7 -16019365.571 6 20992884.863 20992881.443 20992883.866
+ 46.900 41.600
+ -9658900.395 5 -7526413.496 5 22742080.383 22742079.061 22742079.502
+ 34.400 31.800
+ 06 1 2 1 38 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19721585.576 7 -15367458.419 7 20564215.186 20564213.118 20564214.515
+ 45.600 44.300
+ -13136559.573 6 -10236269.704 5 22308911.039 22308909.661 22308910.194
+ 36.000 32.400
+ -5008343.361 6 -3902603.305 5 22739039.345 22739036.612 22739038.387
+ 36.600 30.400
+ -4238000.152 4 -3302335.054 4 24046067.984 24046067.247 24046067.010
+ 24.900 24.600
+ -10944727.873 6 -8528343.175 5 22418921.823 22418921.045 22418920.776
+ 38.400 32.600
+ -23802507.837 7 -18547398.737 7 19952803.547 19952801.830 19952803.025
+ 46.300 46.000
+ -20621673.107 7 -16068828.590 6 20980805.639 20980802.032 20980804.565
+ 47.000 41.600
+ -9757077.348 5 -7602915.020 5 22723398.351 22723396.487 22723397.418
+ 34.600 31.100
+ 06 1 2 1 39 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19692536.350 7 -15344822.661 7 20569743.269 20569741.047 20569742.424
+ 45.500 44.400
+ -13062348.934 5 -10178443.244 5 22323032.214 22323031.541 22323031.596
+ 34.900 32.100
+ -5084249.152 6 -3961750.679 4 22724594.636 22724591.900 22724593.824
+ 36.400 29.500
+ -4223277.078 4 -3290862.546 3 24048869.931 24048868.544 24048869.005
+ 27.400 23.000
+ -10863797.958 6 -8465280.909 5 22434322.679 22434321.260 22434321.541
+ 38.100 32.300
+ -23807464.435 7 -18551261.011 7 19951860.324 19951858.673 19951859.832
+ 46.400 46.100
+ -20684801.922 7 -16118019.873 6 20968792.520 20968789.051 20968791.645
+ 47.300 41.800
+ -9855100.759 5 -7679296.892 5 22704745.164 22704743.398 22704743.976
+ 34.400 32.100
+ 06 1 2 1 39 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19662960.994 7 -15321776.931 7 20575371.111 20575369.078 20575370.343
+ 45.300 44.400
+ -12987769.024 5 -10120329.054 5 22337224.330 22337223.595 22337223.518
+ 34.400 31.500
+ -5159986.854 6 -4020767.060 5 22710182.420 22710180.438 22710181.618
+ 37.100 32.000
+ -4207973.763 4 -3278937.849 4 24051781.817 24051781.281 24051781.020
+ 26.200 25.600
+ -10782732.597 6 -8402113.098 5 22449749.100 22449747.499 22449747.851
+ 37.500 32.000
+ -23811738.931 7 -18554591.786 7 19951047.089 19951045.274 19951046.593
+ 46.600 46.300
+ -20747580.240 7 -16166938.039 6 20956846.369 20956842.791 20956845.189
+ 46.900 41.900
+ -9952968.690 5 -7755557.596 5 22686121.262 22686119.846 22686120.161
+ 33.900 32.700
+ 06 1 2 1 40 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19632861.360 7 -15298322.668 7 20581099.057 20581096.820 20581098.236
+ 45.400 44.300
+ -12912822.539 5 -10061929.207 5 22351486.665 22351485.248 22351485.838
+ 35.700 31.100
+ -5235555.531 5 -4079651.691 5 22695801.643 22695800.352 22695800.826
+ 35.800 32.400
+ -4192090.601 4 -3266561.380 3 24054804.724 24054803.052 24054803.558
+ 27.100 21.600
+ -10701532.650 6 -8338840.423 5 22465200.748 22465199.472 22465199.577
+ 37.700 32.000
+ -23815331.566 7 -18557391.237 7 19950363.209 19950361.639 19950362.783
+ 46.400 46.100
+ -20810005.526 7 -16215581.116 7 20944966.916 20944963.720 20944965.841
+ 46.900 42.200
+ -10050678.707 5 -7831695.248 5 22667527.351 22667526.201 22667526.401
+ 34.100 33.000
+ 06 1 2 1 40 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19602239.091 7 -15274461.158 7 20586925.907 20586924.111 20586925.229
+ 45.200 44.400
+ -12837511.985 5 -10003245.655 5 22365817.639 22365816.563 22365816.983
+ 35.600 31.300
+ -5310954.750 6 -4138404.304 4 22681454.256 22681451.312 22681453.527
+ 37.300 29.700
+ -4175627.739 4 -3253733.172 4 24057937.374 24057936.414 24057936.517
+ 27.400 24.200
+ -10620199.105 6 -8275463.647 5 22480678.269 22480676.443 22480677.042
+ 37.500 31.500
+ -23818243.008 7 -18559659.891 7 19949809.226 19949807.576 19949808.706
+ 46.200 46.200
+ -20872075.777 7 -16263947.539 7 20933155.183 20933152.059 20933154.257
+ 46.900 42.100
+ -10148228.725 5 -7907708.229 5 22648964.474 22648963.059 22648963.347
+ 34.700 32.300
+ 06 1 2 1 41 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19571095.669 7 -15250193.559 7 20592852.292 20592850.478 20592851.557
+ 44.900 44.300
+ -12761840.073 5 -9944280.550 5 22380217.729 22380216.311 22380216.827
+ 34.700 31.500
+ -5386184.771 6 -4197025.113 4 22667139.114 22667135.465 22667138.129
+ 37.800 29.200
+ -4158585.694 4 -3240453.657 3 24061180.435 24061178.907 24061179.337
+ 26.500 21.600
+ -10538732.882 6 -8211983.476 5 22496179.935 22496178.753 22496178.935
+ 36.900 31.100
+ -23820473.683 7 -18561398.079 7 19949384.709 19949383.131 19949384.201
+ 46.400 46.100
+ -20933788.920 7 -16312035.699 7 20921411.829 20921408.561 20921410.818
+ 47.200 42.500
+ -10245616.544 5 -7983594.845 5 22630432.225 22630430.465 22630431.117
+ 35.500 31.500
+ 06 1 2 1 41 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19539432.826 7 -15225521.213 7 20598877.624 20598875.759 20598876.876
+ 45.100 44.300
+ -12685809.353 5 -9885035.844 5 22394685.555 22394684.510 22394684.928
+ 34.500 31.100
+ -5461244.437 6 -4255513.158 5 22652855.141 22652852.647 22652854.098
+ 36.400 31.300
+ -4140964.694 4 -3226722.995 3 24064533.173 24064532.182 24064532.232
+ 26.500 21.600
+ -10457135.120 6 -8148400.811 5 22511708.051 22511706.310 22511706.842
+ 37.300 30.800
+ -23822024.126 7 -18562606.211 7 19949089.794 19949088.050 19949089.214
+ 46.400 46.100
+ -20995142.652 7 -16359843.803 7 20909736.868 20909733.313 20909735.756
+ 47.400 42.500
+ -10342840.271 5 -8059353.588 5 22611930.823 22611929.415 22611929.867
+ 34.600 32.300
+ 06 1 2 1 42 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19507252.211 7 -15200445.412 7 20605001.513 20604999.448 20605000.740
+ 45.400 44.300
+ -12609422.640 5 -9825513.736 5 22409221.577 22409220.350 22409220.773
+ 34.900 31.000
+ -5536133.400 6 -4313868.150 5 22638603.803 22638601.754 22638602.947
+ 36.000 31.100
+ -4122765.244 4 -3212541.630 3 24067996.828 24067994.883 24067995.584
+ 26.500 19.300
+ -10375406.629 6 -8084716.269 5 22527260.196 22527258.845 22527259.048
+ 36.700 31.300
+ -23822895.007 7 -18563284.817 7 19948924.153 19948922.272 19948923.504
+ 46.400 46.100
+ -21056134.864 7 -16407370.204 7 20898130.148 20898126.763 20898129.160
+ 47.200 42.500
+ -10439897.574 5 -8134982.637 5 22593461.996 22593460.287 22593460.820
+ 35.500 33.200
+ 06 1 2 1 42 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19474555.436 7 -15174967.404 7 20611223.615 20611221.405 20611222.867
+ 45.700 44.100
+ -12532682.536 5 -9765716.256 5 22423824.777 22423823.460 22423824.059
+ 33.600 30.400
+ -5610850.781 6 -4372089.478 4 22624386.421 22624382.749 22624385.557
+ 38.300 29.900
+ -4103987.295 4 -3197909.443 3 24071570.075 24071568.616 24071569.037
+ 28.100 21.600
+ -10293548.604 6 -8020930.799 5 22542837.167 22542835.671 22542835.961
+ 36.600 30.600
+ -23823086.844 7 -18563434.300 7 19948887.662 19948885.821 19948887.115
+ 46.400 46.200
+ -21116763.343 7 -16454613.172 7 20886592.891 20886589.540 20886591.854
+ 46.900 42.500
+ -10536786.195 5 -8210480.253 5 22575024.413 22575022.983 22575023.513
+ 35.900 33.400
+ 06 1 2 1 43 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19441344.203 7 -15149088.518 7 20617543.474 20617541.255 20617542.755
+ 45.800 44.000
+ -12455591.710 5 -9705645.506 5 22438494.502 22438493.501 22438493.782
+ 34.000 31.300
+ -5685396.686 6 -4430177.200 5 22610200.315 22610197.045 22610199.411
+ 37.400 30.200
+ -4084631.092 4 -3182826.711 3 24075253.394 24075251.985 24075252.390
+ 26.200 21.100
+ -10211562.049 6 -7957045.177 5 22558438.780 22558437.321 22558437.742
+ 36.900 31.000
+ -23822600.317 7 -18563055.185 7 19948980.108 19948978.392 19948979.623
+ 46.500 46.300
+ -21177025.895 7 -16501571.002 7 20875125.240 20875122.007 20875124.203
+ 46.900 42.600
+ -10633504.277 5 -8285844.994 5 22556619.475 22556618.215 22556618.549
+ 35.700 33.800
+ 06 1 2 1 43 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19407620.508 7 -15122810.305 7 20623960.825 20623958.672 20623960.125
+ 45.600 44.000
+ -12378152.869 5 -9645303.569 5 22453230.977 22453229.887 22453230.328
+ 34.600 31.300
+ -5759770.784 6 -4488131.015 5 22596047.269 22596045.196 22596046.396
+ 37.800 32.300
+ -4064697.254 4 -3167293.837 3 24079046.507 24079044.786 24079045.461
+ 27.100 19.300
+ -10129447.776 6 -7893060.027 5 22574064.933 22574063.164 22574063.762
+ 36.900 30.800
+ -23821436.101 7 -18562148.002 7 19949201.693 19949200.072 19949201.183
+ 46.600 46.400
+ -21236920.493 7 -16548242.114 7 20863727.861 20863724.506 20863726.822
+ 47.000 42.800
+ -10730049.515 6 -8361075.033 5 22538247.668 22538246.524 22538246.634
+ 36.000 34.700
+ 06 1 2 1 44 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19373385.744 7 -15096133.867 7 20630475.557 20630473.380 20630474.808
+ 45.700 44.000
+ -12300368.614 5 -9584692.478 5 22468032.957 22468031.737 22468032.125
+ 35.300 30.800
+ -5833971.985 6 -4545950.100 5 22581927.619 22581925.196 22581926.805
+ 38.300 33.000
+ -4044186.489 4 -3151311.414 3 24082949.727 24082948.153 24082948.631
+ 25.600 19.900
+ -10047206.634 6 -7828976.021 5 22589714.852 22589713.306 22589713.769
+ 37.000 31.000
+ -23819595.004 7 -18560713.379 7 19949551.959 19949550.413 19949551.484
+ 46.500 46.400
+ -21296444.980 7 -16594624.831 7 20852400.467 20852397.235 20852399.578
+ 46.900 42.800
+ -10826419.567 6 -8436168.564 5 22519909.065 22519907.598 22519908.056
+ 36.400 34.300
+ 06 1 2 1 44 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19338641.751 7 -15069060.619 7 20637086.960 20637084.905 20637086.278
+ 45.800 44.100
+ -12222241.935 5 -9523814.565 4 22482899.860 22482898.502 22482899.236
+ 35.100 29.900
+ -5907999.991 6 -4603634.246 5 22567839.953 22567837.502 22567839.322
+ 37.700 32.000
+ -4023099.227 4 -3134879.785 2 24086962.186 24086960.458 24086961.075
+ 25.300 17.800
+ -9964839.608 6 -7764793.917 5 22605388.863 22605387.258 22605387.619
+ 36.500 30.800
+ -23817077.658 7 -18558751.806 7 19950031.007 19950029.432 19950030.500
+ 46.600 46.400
+ -21355597.145 7 -16640717.427 7 20841144.363 20841141.018 20841143.343
+ 47.100 43.000
+ -10922612.418 6 -8511124.026 5 22501604.215 22501602.429 22501603.040
+ 36.000 33.000
+ 06 1 2 1 45 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19303390.398 7 -15041592.032 7 20643794.949 20643793.004 20643794.327
+ 45.800 43.800
+ -12143775.100 5 -9462671.579 5 22497831.539 22497830.275 22497830.890
+ 34.600 30.400
+ -5981854.490 6 -4661183.182 5 22553786.153 22553783.290 22553785.335
+ 37.800 31.600
+ -4001435.588 4 -3117999.028 2 24091084.584 24091083.005 24091083.898
+ 24.900 16.100
+ -9882347.710 6 -7700514.528 5 22621086.364 22621084.700 22621085.248
+ 36.700 30.100
+ -23813884.852 7 -18556263.904 7 19950638.649 19950636.875 19950638.105
+ 46.400 46.200
+ -21414374.839 7 -16686518.222 7 20829959.387 20829955.920 20829958.239
+ 46.900 43.000
+ -11018625.911 6 -8585939.738 5 22483333.652 22483331.683 22483332.480
+ 36.300 33.400
+ 06 1 2 1 45 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19267633.300 7 -15013729.357 7 20650599.439 20650597.407 20650598.738
+ 45.800 44.000
+ -12064971.018 5 -9401265.811 5 22512827.357 22512826.518 22512826.631
+ 34.000 31.300
+ -6055534.616 6 -4718596.255 5 22539765.664 22539762.744 22539764.787
+ 38.400 32.100
+ -3979196.258 4 -3100669.672 2 24095317.188 24095315.087 24095316.241
+ 25.900 17.800
+ -9799731.979 6 -7636138.626 5 22636808.049 22636806.064 22636806.939
+ 36.500 30.100
+ -23810017.332 7 -18553250.250 7 19951374.539 19951372.790 19951374.016
+ 46.600 46.300
+ -21472776.194 7 -16732025.775 7 20818845.814 20818842.516 20818844.858
+ 47.000 43.000
+ -11114457.852 6 -8660613.968 5 22465097.061 22465095.639 22465096.101
+ 36.900 34.300
+ 06 1 2 1 46 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19231372.401 7 -14985474.104 7 20657499.728 20657497.689 20657499.027
+ 45.800 44.000
+ -11985832.594 5 -9339599.524 5 22527887.172 22527886.001 22527886.327
+ 33.800 31.000
+ -6129040.294 6 -4775873.386 5 22525777.745 22525774.996 22525776.775
+ 38.100 32.000
+ -3956381.713 4 -3082892.102 2 24099658.413 24099656.400 24099657.198
+ 26.200 17.000
+ -9716993.335 6 -7571666.950 5 22652552.274 22652550.882 22652551.102
+ 36.400 31.300
+ -23805475.950 7 -18549711.509 7 19952238.759 19952237.005 19952238.210
+ 46.600 46.200
+ -21530798.968 7 -16777238.321 7 20807804.547 20807801.227 20807803.506
+ 47.100 43.100
+ -11210106.167 6 -8735145.118 5 22446896.143 22446894.421 22446894.955
+ 36.400 34.300
+ 06 1 2 1 46 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19194609.399 7 -14956827.606 7 20664495.520 20664493.388 20664494.792
+ 45.800 44.100
+ -11906362.349 5 -9277674.664 5 22543009.181 22543008.619 22543008.700
+ 32.600 30.600
+ -6202370.860 6 -4833014.062 5 22511822.567 22511820.180 22511821.825
+ 37.400 31.000
+ -3932992.764 4 -3064666.948 3 24104108.787 24104106.902 24104107.840
+ 24.900 20.500
+ -9634132.729 6 -7507100.254 5 22668320.216 22668318.931 22668319.033
+ 36.200 31.100
+ -23800261.580 7 -18545648.361 7 19953231.075 19953229.305 19953230.487
+ 46.700 46.200
+ -21588440.773 7 -16822154.014 7 20796835.762 20796832.359 20796834.787
+ 47.100 43.400
+ -11305568.572 6 -8809531.397 5 22428729.676 22428728.382 22428728.672
+ 36.000 34.100
+ 06 1 2 1 47 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19157346.006 7 -14927791.193 7 20671586.405 20671584.366 20671585.711
+ 45.700 44.100
+ -11826562.813 5 -9215493.243 4 22558194.571 22558193.873 22558193.893
+ 32.400 29.700
+ -6275525.611 6 -4890017.761 5 22497902.793 22497899.222 22497901.906
+ 39.300 31.500
+ -3909029.790 4 -3045994.496 3 24108669.331 24108667.285 24108668.303
+ 27.100 19.300
+ -9551151.011 6 -7442439.180 5 22684111.195 22684109.463 22684109.948
+ 36.200 30.600
+ -23794375.119 7 -18541061.502 7 19954351.279 19954349.508 19954350.759
+ 46.800 46.400
+ -21645699.485 7 -16866771.189 7 20785939.804 20785936.405 20785938.803
+ 47.100 43.400
+ -11400842.913 5 -8883771.139 5 22410599.557 22410598.551 22410598.582
+ 35.700 34.600
+ 06 1 2 1 47 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19119584.192 7 -14898366.402 7 20678772.145 20678770.134 20678771.458
+ 45.600 43.900
+ -11746437.337 5 -9153057.827 4 22573442.725 22573441.290 22573441.825
+ 33.200 29.900
+ -6348504.452 6 -4946884.389 5 22484014.995 22484012.747 22484014.114
+ 38.700 33.000
+ -3884493.740 4 -3026875.503 3 24113338.123 24113337.407 24113337.102
+ 26.500 23.000
+ -9468049.284 6 -7377684.583 4 22699924.906 22699923.041 22699923.799
+ 36.600 29.700
+ -23787817.375 7 -18535951.568 7 19955599.380 19955597.402 19955598.762
+ 47.000 46.400
+ -21702572.916 7 -16911088.149 7 20775117.208 20775113.714 20775116.086
+ 46.800 43.400
+ -11495926.792 6 -8957862.456 5 22392506.156 22392504.547 22392504.909
+ 36.500 34.500
+ 06 1 2 1 48 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19081325.776 7 -14868554.647 7 20686052.487 20686050.531 20686051.788
+ 45.600 44.000
+ -11665988.018 5 -9090370.057 5 22588751.826 22588750.361 22588751.052
+ 34.100 30.100
+ -6421306.644 6 -5003613.307 5 22470160.843 22470159.160 22470159.778
+ 37.200 34.100
+ -3859385.099 4 -3007310.339 3 24118116.262 24118114.703 24118115.244
+ 27.600 21.100
+ -9384828.129 6 -7312836.931 5 22715761.804 22715759.685 22715760.512
+ 36.500 30.200
+ -23780589.307 7 -18530319.303 7 19956974.658 19956972.881 19956974.135
+ 46.900 46.300
+ -21759058.806 7 -16955103.122 7 20764368.150 20764364.834 20764367.095
+ 46.800 43.600
+ -11590817.956 6 -9031803.629 5 22374448.410 22374446.994 22374447.575
+ 37.400 33.500
+ 06 1 2 1 48 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19042572.602 7 -14838357.365 7 20693426.959 20693424.927 20693426.292
+ 45.800 43.800
+ -11585218.229 5 -9027432.576 5 22604121.238 22604120.685 22604120.624
+ 34.000 30.600
+ -6493931.716 6 -5060204.249 5 22456341.484 22456338.119 22456340.705
+ 40.000 32.300
+ -3833703.901 4 -2987299.039 3 24123003.583 24123001.723 24123002.371
+ 27.400 21.100
+ -9301488.577 6 -7247897.021 5 22731620.020 22731618.766 22731618.945
+ 36.100 30.400
+ -23772691.984 7 -18524165.539 7 19958477.426 19958475.621 19958476.782
+ 46.700 46.300
+ -21815155.536 7 -16998814.852 7 20753693.021 20753689.967 20753692.149
+ 46.800 43.700
+ -11685514.367 6 -9105593.045 5 22356428.673 22356427.132 22356427.538
+ 37.200 34.800
+ 06 1 2 1 49 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -19003326.551 7 -14807776.025 7 20700895.343 20700893.225 20700894.602
+ 45.700 43.800
+ -11504130.469 5 -8964247.329 4 22619551.744 22619551.076 22619550.972
+ 32.800 29.900
+ -6566379.003 6 -5116656.691 5 22442554.741 22442551.472 22442553.920
+ 39.300 31.100
+ -3807451.781 4 -2966842.827 3 24127998.630 24127997.876 24127997.793
+ 27.600 21.600
+ -9218031.777 6 -7182865.759 4 22747501.641 22747499.883 22747500.498
+ 36.200 29.900
+ -23764126.195 7 -18517490.894 7 19960107.114 19960105.620 19960106.679
+ 46.800 46.100
+ -21870860.923 7 -17042221.639 7 20743092.918 20743089.604 20743091.823
+ 47.000 43.700
+ -11780013.730 6 -9179228.916 5 22338445.470 22338444.515 22338444.744
+ 36.900 34.700
+ 06 1 2 1 49 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18963589.333 7 -14776811.954 7 20708456.801 20708454.957 20708456.206
+ 45.800 43.600
+ -11422727.230 5 -8900816.246 4 22635042.579 22635041.245 22635041.685
+ 33.400 29.500
+ -6638648.418 6 -5172970.496 5 22428802.261 22428800.013 22428801.424
+ 38.300 33.200
+ -3780628.932 4 -2945941.914 3 24133102.792 24133101.601 24133101.711
+ 25.300 19.300
+ -9134458.485 5 -7117743.715 5 22763405.304 22763403.409 22763404.076
+ 35.900 30.100
+ -23754893.074 7 -18510296.251 7 19961864.493 19961862.574 19961863.892
+ 47.000 46.100
+ -21926172.762 7 -17085321.770 7 20732567.452 20732563.920 20732566.441
+ 47.000 43.500
+ -11874313.584 6 -9252709.306 5 22320501.103 22320499.837 22320500.139
+ 36.900 34.700
+ 06 1 2 1 50 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18923363.059 7 -14745466.805 7 20716111.965 20716109.734 20716111.173
+ 45.900 43.700
+ -11341011.610 5 -8837141.740 4 22650591.991 22650591.357 22650591.514
+ 33.900 29.000
+ -6710738.933 6 -5229144.896 5 22415084.497 22415081.222 22415083.584
+ 39.900 32.600
+ -3753236.281 3 -2924596.968 3 24138315.680 24138314.616 24138314.618
+ 23.400 19.900
+ -9050769.294 5 -7052531.365 5 22779330.360 22779328.996 22779329.242
+ 35.300 30.100
+ -23744993.643 7 -18502582.403 7 19963748.185 19963746.326 19963747.685
+ 46.900 46.000
+ -21981088.647 7 -17128113.370 7 20722117.165 20722113.858 20722116.186
+ 46.900 43.700
+ -11968411.801 6 -9326032.592 5 22302594.909 22302593.536 22302593.821
+ 37.100 34.800
+ 06 1 2 1 50 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18882649.556 7 -14713741.994 7 20723859.420 20723857.167 20723858.730
+ 46.000 43.600
+ -11258986.509 5 -8773226.079 4 22666201.061 22666200.381 22666200.303
+ 32.000 28.800
+ -6782650.463 6 -5285179.860 5 22401399.604 22401396.476 22401398.629
+ 38.400 32.100
+ -3725274.117 4 -2902808.274 3 24143637.071 24143634.889 24143635.904
+ 27.600 19.300
+ -8966965.297 5 -6987229.565 5 22795278.011 22795276.402 22795276.849
+ 35.700 30.200
+ -23734428.956 7 -18494350.177 7 19965758.541 19965756.694 19965758.032
+ 47.000 46.000
+ -22035606.669 7 -17170594.937 7 20711742.856 20711739.482 20711741.756
+ 46.600 43.900
+ -12062306.153 6 -9399197.020 5 22284727.777 22284726.190 22284726.530
+ 37.100 35.200
+ 06 1 2 1 51 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18841450.776 7 -14681639.050 7 20731699.254 20731697.096 20731698.567
+ 45.900 43.600
+ -11176654.216 5 -8709071.084 4 22681868.612 22681867.445 22681867.903
+ 32.600 28.800
+ -6854382.174 6 -5341074.678 5 22387749.472 22387747.130 22387748.678
+ 38.900 33.900
+ -3696743.602 4 -2880576.705 3 24149066.046 24149064.677 24149065.228
+ 27.600 19.900
+ -8883047.461 5 -6921839.044 4 22811246.609 22811245.450 22811245.650
+ 35.500 29.500
+ -23723200.067 7 -18485600.387 7 19967895.321 19967893.587 19967894.875
+ 47.200 46.100
+ -22089724.704 7 -17212764.827 7 20701444.217 20701441.152 20701443.285
+ 46.600 43.900
+ -12155994.339 6 -9472200.798 5 22266899.216 22266897.639 22266898.126
+ 37.700 34.400
+ 06 1 2 1 51 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18799768.543 7 -14649159.384 7 20739631.262 20739628.944 20739630.498
+ 45.700 43.500
+ -11094017.867 5 -8644679.137 4 22697593.994 22697592.520 22697593.248
+ 31.500 28.600
+ -6925933.935 6 -5396829.276 5 22374134.100 22374131.446 22374133.145
+ 39.900 34.800
+ -3667645.416 4 -2857902.790 2 24154602.859 24154601.547 24154602.061
+ 26.800 17.800
+ -8799016.521 5 -6856360.397 4 22827236.831 22827236.164 22827235.880
+ 34.700 29.200
+ -23711308.242 7 -18476334.026 7 19970158.348 19970156.471 19970157.883
+ 47.100 46.100
+ -22143440.563 7 -17254621.332 7 20691222.562 20691219.346 20691221.519
+ 46.500 44.000
+ -12249474.007 6 -9545042.100 5 22249110.346 22249108.925 22249109.223
+ 36.900 34.000
+ 06 1 2 1 52 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18757604.774 7 -14616304.497 7 20747654.617 20747652.590 20747653.834
+ 45.600 43.600
+ -11011080.233 5 -8580052.431 4 22713376.511 22713375.381 22713375.773
+ 32.800 28.800
+ -6997305.079 6 -5452443.135 5 22360552.194 22360549.254 22360551.235
+ 39.200 33.200
+ -3637980.305 4 -2834787.104 2 24160248.743 24160246.604 24160247.647
+ 27.400 12.600
+ -8714873.427 5 -6790794.359 4 22843249.525 22843248.133 22843248.314
+ 35.100 28.800
+ -23698754.455 7 -18466551.846 7 19972547.380 19972545.388 19972546.867
+ 47.300 46.000
+ -22196752.114 7 -17296162.800 7 20681077.871 20681074.463 20681076.718
+ 46.500 44.000
+ -12342743.163 6 -9617719.357 5 22231362.008 22231360.611 22231360.987
+ 37.600 34.900
+ 06 1 2 1 52 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18714961.455 7 -14583075.933 7 20755769.383 20755767.290 20755768.653
+ 45.800 43.600
+ -10927844.106 5 -8515193.117 4 22729215.993 22729214.752 22729215.315
+ 32.800 28.600
+ -7068495.138 6 -5507915.909 5 22347005.108 22347002.321 22347004.232
+ 39.600 33.200
+ -3607749.368 4 -2811230.526 2 24166001.231 24165999.536 24166000.334
+ 27.400 17.800
+ -8630619.118 5 -6725141.662 4 22859282.777 22859281.028 22859281.591
+ 35.200 28.600
+ -23685539.932 7 -18456254.810 7 19975062.018 19975059.952 19975061.457
+ 47.200 46.100
+ -22249657.234 7 -17337387.563 7 20671010.194 20671006.974 20671009.206
+ 46.600 44.000
+ -12435799.404 6 -9690230.716 5 22213654.279 22213652.771 22213653.073
+ 37.700 35.500
+ 06 1 2 1 53 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18671840.583 7 -14549475.257 7 20763974.927 20763973.013 20763974.248
+ 45.800 43.600
+ -10844312.395 5 -8450103.486 4 22745111.382 22745110.345 22745110.711
+ 31.800 29.900
+ -7139503.398 6 -5563247.010 5 22333492.692 22333490.076 22333491.875
+ 39.700 33.100
+ -3576953.480 4 -2787233.735 3 24171861.263 24171859.545 24171860.179
+ 26.200 18.600
+ -8546254.380 5 -6659402.916 4 22875336.340 22875334.975 22875335.217
+ 34.600 29.000
+ -23671665.911 7 -18445443.879 7 19977702.051 19977700.221 19977701.521
+ 47.100 46.100
+ -22302154.091 7 -17378294.200 7 20661020.589 20661017.111 20661019.521
+ 46.500 44.000
+ -12528640.453 6 -9762574.370 5 22195987.602 22195985.476 22195986.313
+ 38.200 35.500
+ 06 1 2 1 53 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18628244.126 7 -14515503.982 7 20772271.160 20772269.092 20772270.379
+ 45.800 43.500
+ -10760487.888 5 -8384785.722 4 22761062.330 22761061.656 22761061.531
+ 32.000 29.700
+ -7210329.578 6 -5618436.236 5 22320014.944 22320012.170 22320014.021
+ 39.700 33.400
+ -3545593.300 4 -2762797.207 2 24177828.535 24177827.772 24177827.566
+ 24.600 17.000
+ -8461780.002 5 -6593578.737 4 22891411.623 22891410.196 22891410.517
+ 34.900 29.500
+ -23657133.535 7 -18434119.946 7 19980467.329 19980465.667 19980466.843
+ 47.100 46.200
+ -22354240.200 7 -17418880.773 7 20651108.920 20651105.357 20651107.851
+ 46.600 44.000
+ -12621263.751 6 -9834748.373 5 22178361.404 22178360.090 22178360.507
+ 38.800 35.600
+ 06 1 2 1 54 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18584173.914 7 -14481163.557 7 20780657.246 20780655.393 20780656.617
+ 45.600 43.700
+ -10676373.338 5 -8319241.939 4 22777069.229 22777067.963 22777068.390
+ 33.000 28.800
+ -7280973.076 6 -5673483.120 5 22306571.677 22306569.125 22306570.954
+ 39.500 32.700
+ -3513669.731 4 -2737921.675 2 24183903.872 24183902.043 24183902.794
+ 26.200 17.000
+ -8377196.897 5 -6527669.831 4 22907506.886 22907505.688 22907505.876
+ 34.700 29.500
+ -23641944.182 7 -18422284.082 7 19983357.833 19983356.155 19983357.366
+ 47.200 46.200
+ -22405913.592 7 -17459145.749 7 20641275.582 20641272.294 20641274.588
+ 46.500 44.200
+ -12713667.163 6 -9906751.014 5 22160777.506 22160776.266 22160776.570
+ 38.000 35.800
+ 06 1 2 1 54 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18539632.034 7 -14446455.599 7 20789133.270 20789131.345 20789132.654
+ 45.800 43.400
+ -10591971.536 5 -8253474.316 4 22793130.284 22793128.840 22793129.520
+ 32.600 27.600
+ -7351433.492 6 -5728387.332 5 22293163.789 22293161.281 22293162.951
+ 40.100 34.000
+ -3481184.009 4 -2712608.146 3 24190085.488 24190084.496 24190084.486
+ 26.200 21.100
+ -8292506.001 5 -6461676.944 4 22923623.324 22923622.078 22923622.186
+ 34.700 28.800
+ -23626099.071 7 -18409937.239 7 19986373.180 19986371.302 19986372.658
+ 47.400 46.200
+ -22457172.607 7 -17499087.837 7 20631521.618 20631517.923 20631520.488
+ 46.500 44.200
+ -12805848.432 6 -9978580.562 5 22143236.158 22143234.560 22143235.055
+ 38.400 35.700
+ 06 1 2 1 55 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18494620.497 7 -14411381.671 7 20797698.824 20797696.834 20797698.091
+ 45.700 43.400
+ -10507285.482 5 -8187485.181 4 22809245.372 22809244.032 22809244.831
+ 32.300 27.400
+ -7421710.311 6 -5783148.484 5 22279790.456 22279787.985 22279789.671
+ 40.200 34.000
+ -3448137.353 4 -2686857.514 3 24196373.956 24196372.849 24196372.948
+ 25.600 19.900
+ -8207708.098 5 -6395600.651 4 22939759.946 22939758.026 22939758.859
+ 34.600 27.600
+ -23609599.358 7 -18397080.313 7 19989513.033 19989511.047 19989512.458
+ 47.300 46.000
+ -22508014.744 7 -17538705.085 7 20621846.624 20621842.993 20621845.531
+ 46.600 44.300
+ -12897805.204 6 -10050235.181 5 22125737.019 22125735.671 22125736.196
+ 38.300 35.600
+ 06 1 2 1 55 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18449141.316 7 -14375943.345 7 20806353.290 20806351.194 20806352.591
+ 45.600 43.400
+ -10422317.883 5 -8121276.688 4 22825414.175 22825413.386 22825413.478
+ 32.400 28.800
+ -7491802.840 6 -5837766.027 5 22266452.373 22266449.681 22266451.476
+ 39.900 34.500
+ -3414530.149 4 -2660670.065 3 24202769.356 24202768.367 24202768.435
+ 25.300 22.600
+ -8122804.092 5 -6329441.682 4 22955916.618 22955915.137 22955915.485
+ 33.600 29.000
+ -23592446.549 7 -18383714.490 7 19992776.989 19992775.037 19992776.479
+ 47.400 46.000
+ -22558438.058 7 -17577995.971 7 20612251.271 20612247.892 20612250.251
+ 46.700 44.400
+ -12989535.145 6 -10121713.027 5 22108281.382 22108280.052 22108280.321
+ 37.700 35.500
+ 06 1 2 1 56 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18403196.622 7 -14340142.281 7 20815095.946 20815094.241 20815095.313
+ 45.600 43.400
+ -10337071.809 5 -8054851.200 4 22841636.112 22841634.994 22841635.430
+ 31.500 29.000
+ -7561710.651 6 -5892239.640 5 22253149.324 22253146.495 22253148.348
+ 39.800 34.000
+ -3380363.408 3 -2634046.636 3 24209270.452 24209269.668 24209269.574
+ 22.600 20.500
+ -8037794.849 5 -6263200.732 4 22972092.897 22972091.739 22972091.797
+ 33.500 28.100
+ -23574641.859 7 -18369840.700 7 19996165.072 19996163.221 19996164.554
+ 47.400 46.000
+ -22608440.403 7 -17616958.837 7 20602736.175 20602732.787 20602735.139
+ 46.600 44.600
+ -13081035.875 6 -10193012.278 5 22090869.980 22090867.944 22090868.904
+ 38.600 35.300
+ 06 1 2 1 56 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18356788.261 7 -14303979.921 7 20823927.449 20823925.399 20823926.651
+ 45.600 43.500
+ -10251549.774 5 -7988210.674 4 22857910.660 22857909.124 22857909.736
+ 31.300 28.400
+ -7631433.313 6 -5946568.978 5 22239881.389 22239878.628 22239880.599
+ 40.200 33.500
+ -3345638.060 4 -2606987.933 3 24215879.099 24215877.387 24215878.381
+ 26.500 20.500
+ -7952681.184 5 -6196878.399 4 22988289.455 22988288.186 22988288.506
+ 34.600 27.100
+ -23556186.746 7 -18355460.090 7 19999677.018 19999675.082 19999676.486
+ 47.500 46.000
+ -22658020.027 7 -17655592.306 7 20593301.324 20593298.140 20593300.448
+ 46.700 44.800
+ -13172305.183 6 -10264131.211 5 22073501.066 22073499.830 22073500.377
+ 38.600 35.200
+ 06 1 2 1 57 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18309918.327 7 -14267457.893 7 20832846.527 20832844.543 20832845.757
+ 45.600 43.400
+ -10165754.757 5 -7921357.444 4 22874236.611 22874235.534 22874235.973
+ 30.600 27.900
+ -7700970.267 6 -6000753.612 5 22226648.852 22226646.116 22226648.036
+ 40.000 33.600
+ -3310355.439 4 -2579494.994 3 24222593.766 24222592.010 24222592.581
+ 26.800 19.300
+ -7867463.703 5 -6130475.173 4 23004506.632 23004504.482 23004505.343
+ 34.300 26.800
+ -23537082.530 7 -18340573.688 7 20003312.359 20003310.563 20003311.826
+ 47.200 46.000
+ -22707174.637 7 -17693894.596 7 20583947.702 20583944.275 20583946.713
+ 46.600 44.700
+ -13263340.541 6 -10335067.839 5 22056178.523 22056176.708 22056177.402
+ 39.200 35.900
+ 06 1 2 1 57 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18262588.879 7 -14230577.802 7 20841853.015 20841850.952 20841852.334
+ 45.700 43.400
+ -10079689.673 5 -7854293.761 4 22890614.139 22890613.277 22890613.536
+ 30.800 27.900
+ -7770320.969 6 -6054793.111 5 22213451.941 22213449.305 22213451.124
+ 40.500 34.300
+ -3274516.927 4 -2551568.892 3 24229412.939 24229411.689 24229411.946
+ 25.300 20.500
+ -7782143.193 5 -6063991.666 4 23020742.551 23020740.699 23020741.239
+ 34.000 28.600
+ -23517330.782 7 -18325182.712 7 20007070.865 20007069.102 20007070.322
+ 47.300 45.900
+ -22755902.023 7 -17731863.987 7 20574675.243 20574671.684 20574674.126
+ 46.200 44.600
+ -13354139.634 6 -10405820.363 6 22038899.872 22038898.296 22038898.785
+ 39.300 36.700
+ 06 1 2 1 58 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18214801.976 7 -14193341.250 7 20850946.587 20850944.510 20850945.897
+ 45.800 43.400
+ -9993357.436 5 -7787021.913 4 22907042.894 22907041.720 22907041.905
+ 30.400 27.600
+ -7839484.889 6 -6108687.055 5 22200290.758 22200288.149 22200289.770
+ 40.500 35.100
+ -3238123.124 4 -2523210.084 2 24236338.645 24236336.813 24236337.535
+ 24.900 17.000
+ -7696720.568 5 -5997428.582 4 23036996.935 23036995.888 23036995.962
+ 33.000 28.100
+ -23496932.795 7 -18309288.176 7 20010952.527 20010950.747 20010951.974
+ 47.300 45.800
+ -22804200.090 7 -17769498.843 7 20565484.255 20565480.923 20565483.137
+ 46.100 44.800
+ -13444700.170 6 -10476386.992 6 22021666.520 22021665.340 22021665.368
+ 38.600 37.100
+ 06 1 2 1 58 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18166559.630 7 -14155749.809 7 20860126.611 20860124.704 20860125.938
+ 45.800 43.400
+ -9906760.821 5 -7719544.038 4 22923522.090 22923520.278 22923521.396
+ 32.700 27.100
+ -7908461.602 6 -6162435.127 5 22187164.827 22187161.995 22187163.896
+ 40.800 34.400
+ -3201175.086 4 -2494419.421 2 24243369.742 24243368.109 24243368.646
+ 25.600 17.800
+ -7611196.555 5 -5930786.499 4 23053272.319 23053270.115 23053271.078
+ 32.800 26.500
+ -23475890.089 7 -18292891.255 7 20014956.939 20014955.020 20014956.424
+ 47.400 45.800
+ -22852066.810 7 -17806797.581 7 20556375.212 20556372.133 20556374.254
+ 45.900 44.700
+ -13535019.861 6 -10546765.956 6 22004479.364 22004477.927 22004478.284
+ 39.300 37.000
+ 06 1 2 1 59 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18117863.883 7 -14117805.070 7 20869393.186 20869391.253 20869392.440
+ 45.500 43.200
+ -9819902.787 5 -7651862.471 4 22940050.411 22940048.835 22940049.481
+ 30.200 25.300
+ -7977250.209 6 -6216036.637 5 22174074.962 22174071.903 22174074.059
+ 41.200 34.000
+ -3163674.086 4 -2465197.847 2 24250505.321 24250504.222 24250504.389
+ 24.900 16.100
+ -7525572.203 5 -5864066.236 4 23069566.228 23069564.781 23069564.949
+ 33.800 28.600
+ -23454204.179 7 -18275993.144 7 20019083.763 20019081.736 20019083.178
+ 47.600 45.700
+ -22899500.548 7 -17843758.929 7 20547349.029 20547345.806 20547347.997
+ 45.900 44.700
+ -13625096.246 6 -10616955.324 6 21987338.276 21987336.893 21987337.236
+ 39.100 37.100
+ 06 1 2 1 59 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18068716.977 7 -14079508.778 7 20878745.388 20878743.609 20878744.730
+ 45.600 43.200
+ -9732786.015 4 -7583979.304 4 22956627.703 22956626.764 22956626.990
+ 28.800 26.500
+ -8045850.831 6 -6269491.659 5 22161020.526 22161017.811 22161019.637
+ 41.200 34.600
+ -3125621.439 4 -2435546.480 3 24257746.964 24257745.309 24257745.965
+ 27.400 18.600
+ -7439848.164 5 -5797268.278 4 23085878.770 23085877.343 23085877.762
+ 33.200 27.900
+ -23431876.685 7 -18258595.095 7 20023332.477 20023330.509 20023331.923
+ 47.500 45.900
+ -22946498.960 7 -17880381.063 7 20538405.713 20538402.283 20538404.695
+ 46.100 44.900
+ -13714926.922 6 -10686953.238 6 21970243.887 21970242.609 21970242.997
+ 39.600 36.600
+ 06 1 2 2 0 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -18019120.812 7 -14040862.413 7 20888183.310 20888181.431 20888182.570
+ 45.600 43.200
+ -9645413.609 4 -7515896.936 4 22973253.951 22973253.219 22973253.204
+ 28.800 25.900
+ -8114262.726 6 -6322799.616 5 22148002.269 22147999.318 22148001.378
+ 41.400 34.500
+ -3087018.398 4 -2405466.167 2 24265092.605 24265090.752 24265091.584
+ 25.900 17.800
+ -7354025.236 5 -5730393.299 4 23102210.118 23102208.899 23102209.040
+ 32.100 26.800
+ -23408909.019 7 -18240698.210 7 20027703.023 20027701.129 20027702.474
+ 47.600 45.800
+ -22993060.136 7 -17916662.499 7 20529545.565 20529542.005 20529544.466
+ 46.200 45.200
+ -13804509.587 6 -10756757.912 6 21953197.413 21953195.296 21953196.121
+ 39.700 36.500
+ 06 1 2 2 0 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17969077.619 7 -14001867.716 7 20897706.273 20897704.263 20897705.569
+ 45.600 42.900
+ -9557788.336 4 -7447617.512 4 22989928.429 22989927.676 22989927.546
+ 29.900 25.600
+ -8182485.161 6 -6375959.946 5 22135020.148 22135017.031 22135019.168
+ 41.200 34.300
+ -3047866.151 3 -2374957.905 3 24272543.113 24272542.263 24272541.945
+ 23.800 21.600
+ -7268104.171 5 -5663441.824 4 23118560.264 23118558.557 23118559.241
+ 32.600 27.100
+ -23385302.804 7 -18222303.750 7 20032195.134 20032193.195 20032194.678
+ 47.600 45.700
+ -23039182.047 7 -17952601.644 7 20520768.848 20520765.308 20520767.770
+ 46.100 45.100
+ -13893841.776 6 -10826367.388 6 21936197.883 21936196.326 21936196.679
+ 39.600 37.100
+ 06 1 2 2 1 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17918589.475 7 -13962526.299 7 20907313.935 20907311.867 20907313.195
+ 45.700 42.800
+ -9469913.002 5 -7379143.234 4 23006650.362 23006649.883 23006649.858
+ 30.100 25.300
+ -8250517.756 6 -6428972.338 5 22122073.726 22122071.034 22122072.929
+ 41.300 35.200
+ -3008165.691 4 -2344022.501 3 24280098.468 24280096.558 24280097.627
+ 29.200 19.900
+ -7182085.870 5 -5596414.572 4 23134929.410 23134927.675 23134928.158
+ 33.100 27.600
+ -23361059.510 7 -18203412.869 7 20036808.453 20036806.556 20036807.971
+ 47.500 45.900
+ -23084862.532 7 -17988196.821 7 20512076.230 20512072.579 20512075.134
+ 46.000 45.300
+ -13982921.106 6 -10895779.839 6 21919246.891 21919245.016 21919245.608
+ 39.800 37.100
+ 06 1 2 2 1 30.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17867658.569 7 -13922839.881 7 20917005.881 20917003.674 20917005.118
+ 45.800 42.800
+ -9381790.695 4 -7310476.525 4 23023419.545 23023419.043 23023418.717
+ 28.600 26.200
+ -8318359.823 6 -6481836.279 5 22109163.939 22109161.090 22109163.006
+ 41.300 35.400
+ -2967918.106 4 -2312660.736 3 24287756.844 24287755.205 24287755.628
+ 24.200 18.600
+ -7095971.165 5 -5529312.220 4 23151316.582 23151315.104 23151315.395
+ 32.800 27.900
+ -23336180.838 7 -18184026.887 7 20041542.639 20041540.910 20041542.129
+ 47.500 45.800
+ -23130099.762 7 -18023446.611 7 20503467.679 20503464.175 20503466.640
+ 46.100 45.200
+ -14071745.165 6 -10964993.391 6 21902344.033 21902342.179 21902342.926
+ 40.300 36.600
+ 06 1 2 2 2 0.0000000 0 8G29G 6G18G 8G10G26G21G15
+ -17816286.836 7 -13882809.958 7 20926781.535 20926779.423 20926780.832
+ 45.800 42.800
+ -9293424.280 4 -7241619.617 4 23040235.125 23040234.686 23040234.401
+ 28.100 26.800
+ -8386011.279 6 -6534551.685 5 22096290.253 22096287.495 22096289.313
+ 41.500 35.600
+ -2927124.833 4 -2280873.752 3 24295519.362 24295518.040 24295518.561
+ 26.500 19.300
+ -7009760.600 5 -5462135.165 4 23167721.478 23167720.560 23167720.556
+ 32.300 28.100
+ -23310668.424 7 -18164147.081 7 20046397.435 20046395.767 20046396.910
+ 47.400 45.800
+ -23174891.509 7 -18058349.268 7 20494943.970 20494940.641 20494943.007
+ 46.100 45.200
+ -14160311.695 6 -11034006.263 6 21885490.577 21885488.437 21885489.416
+ 40.700 36.500
+ 06 1 2 2 2 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17764476.456 7 -13842438.231 7 20936640.646 20936638.630 20936639.931
+ 45.700 42.700
+ -9204816.610 4 -7172574.714 4 23057096.473 23057096.066 23057095.926
+ 28.800 26.800
+ -8453471.071 6 -6587117.738 5 22083452.950 22083450.302 22083452.007
+ 41.500 35.900
+ -2885787.302 4 -2248662.699 3 24303385.436 24303384.537 24303384.804
+ 25.600 20.500
+ -6923454.950 5 -5394884.030 4 23184145.606 23184143.598 23184144.445
+ 33.200 27.100
+ -155466.940 2 -121142.740 9 24638445.168 24638443.528 24638443.480
+ 16.100 -3.000
+ -23284524.035 7 -18143774.827 7 20051372.664 20051370.895 20051372.092
+ 47.400 46.000
+ -23219236.053 7 -18092903.452 7 20486505.506 20486502.109 20486504.511
+ 45.800 45.200
+ -14248618.059 6 -11102816.423 6 21868686.147 21868684.428 21868685.071
+ 40.300 37.200
+ 06 1 2 2 3 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17712229.716 7 -13801726.482 7 20946582.766 20946580.787 20946582.084
+ 45.800 42.700
+ -9115970.479 5 -7103343.981 4 23074003.795 23074002.739 23074003.093
+ 30.200 26.500
+ -8520738.996 6 -6639534.292 5 22070652.143 22070649.460 22070651.350
+ 41.900 35.400
+ -2843906.950 3 -2216028.655 2 24311354.870 24311353.997 24311353.802
+ 22.100 15.100
+ -6837055.000 5 -5327559.397 4 23200586.550 23200585.274 23200585.449
+ 32.100 28.600
+ -272093.133 3 -212020.322 1 24616250.207 24616249.834 24616249.698
+ 19.300 6.500
+ -23257749.190 7 -18122911.309 7 20056467.614 20056465.917 20056467.085
+ 47.400 45.600
+ -23263131.357 7 -18127107.579 7 20478152.437 20478149.101 20478151.417
+ 45.800 45.300
+ -14336662.087 6 -11171422.151 6 21851931.943 21851930.371 21851930.799
+ 40.500 37.800
+ 06 1 2 2 3 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17659548.646 7 -13760676.297 7 20956607.876 20956605.677 20956607.053
+ 45.600 42.500
+ -9026888.936 5 -7033929.798 4 23090955.437 23090954.640 23090954.910
+ 30.200 26.200
+ -8587814.176 6 -6691800.654 5 22057888.492 22057885.336 22057887.357
+ 41.800 35.300
+ -2801485.125 4 -2182972.643 3 24319428.146 24319426.996 24319427.077
+ 25.900 18.600
+ -6750561.569 5 -5260161.928 4 23217045.891 23217044.440 23217044.674
+ 32.600 27.900
+ -388738.947 3 -302913.155 1 24594054.436 24594053.356 24594053.237
+ 22.100 11.000
+ -23230345.671 7 -18101557.911 7 20061682.291 20061680.581 20061681.770
+ 47.400 45.500
+ -23306575.436 7 -18160960.104 7 20469885.439 20469881.945 20469884.380
+ 45.700 45.300
+ -14424441.420 6 -11239821.624 6 21835227.995 21835226.612 21835226.896
+ 40.400 38.300
+ 06 1 2 2 4 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17606435.479 7 -13719289.410 7 20966714.890 20966712.707 20966714.176
+ 45.700 42.500
+ -8937574.926 4 -6964334.474 4 23107951.733 23107950.575 23107950.833
+ 28.800 24.900
+ -8654696.561 6 -6743916.790 5 22045160.903 22045158.058 22045160.026
+ 41.800 35.700
+ -2758522.818 4 -2149495.564 2 24327603.506 24327601.983 24327602.530
+ 24.200 17.000
+ -6663975.528 5 -5192692.301 4 23233522.319 23233521.091 23233521.165
+ 32.600 26.800
+ -505401.280 3 -393818.862 2 24571853.851 24571853.266 24571852.751
+ 23.000 17.000
+ -23202315.088 7 -18079715.894 7 20067016.446 20067014.536 20067015.865
+ 47.300 45.500
+ -23349566.431 7 -18194459.581 7 20461704.592 20461701.033 20461703.502
+ 45.500 45.400
+ -14511953.510 6 -11308012.851 6 21818574.959 21818573.546 21818573.865
+ 40.300 38.200
+ 06 1 2 2 4 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17552892.280 7 -13677567.438 7 20976903.870 20976901.677 20976903.157
+ 45.600 42.400
+ -8848031.184 4 -6894560.153 4 23124990.302 23124990.444 23124990.002
+ 27.600 26.800
+ -8721385.503 6 -6795882.187 5 22032470.128 22032467.572 22032469.202
+ 41.100 35.800
+ -2715021.450 4 -2115598.423 3 24335881.946 24335880.072 24335880.815
+ 26.500 19.900
+ -6577297.344 5 -5125150.862 4 23250016.989 23250015.328 23250015.732
+ 32.100 25.900
+ -622076.950 3 -484734.922 3 24549652.343 24549651.193 24549651.201
+ 23.800 19.900
+ -23173659.415 7 -18057386.793 7 20072469.329 20072467.561 20072468.770
+ 47.100 45.400
+ -23392102.136 7 -18227604.276 7 20453610.162 20453606.638 20453609.106
+ 45.600 45.200
+ -14599195.970 6 -11375993.989 6 21801973.465 21801971.581 21801972.412
+ 40.800 37.800
+ 06 1 2 2 5 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17498921.258 7 -13635512.095 7 20987174.153 20987171.967 20987173.433
+ 45.600 42.400
+ -8758260.582 4 -6824609.091 4 23142073.968 23142072.941 23142073.058
+ 28.600 26.800
+ -8787880.371 6 -6847696.354 6 22019816.670 22019814.230 22019815.744
+ 41.100 36.100
+ -2670982.624 4 -2081282.455 2 24344261.550 24344259.977 24344260.641
+ 25.600 17.000
+ -6490527.749 5 -5057538.201 4 23266528.425 23266527.007 23266527.266
+ 31.500 26.800
+ -738763.368 2 -575659.340 3 24527448.132 24527445.973 24527446.184
+ 17.000 19.300
+ -23144380.204 7 -18034571.821 7 20078040.859 20078039.165 20078040.364
+ 47.200 45.300
+ -23434180.882 7 -18260392.903 7 20445602.650 20445599.372 20445601.757
+ 45.600 45.300
+ -14686166.204 6 -11443763.000 6 21785423.573 21785421.817 21785422.438
+ 41.000 38.300
+ 06 1 2 2 5 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17444524.536 7 -13593125.037 7 20997525.459 20997523.466 20997524.748
+ 45.600 42.600
+ -8668266.221 4 -6754483.640 4 23159199.325 23159198.532 23159198.558
+ 29.200 26.800
+ -8854180.674 6 -6899358.911 6 22007200.270 22007197.672 22007199.287
+ 41.500 36.000
+ -2626407.570 4 -2046548.653 2 24352744.101 24352742.298 24352743.178
+ 24.200 16.100
+ -6403667.624 5 -4989854.993 4 23283056.616 23283056.244 23283055.805
+ 32.000 27.100
+ -855457.260 3 -666589.573 3 24505241.046 24505240.111 24505239.180
+ 19.300 21.100
+ -23114479.435 7 -18011272.516 7 20083730.906 20083729.118 20083730.386
+ 47.100 45.300
+ -23475800.597 7 -18292823.850 7 20437682.913 20437679.403 20437681.925
+ 45.700 45.500
+ -14772861.886 6 -11511318.076 6 21768925.938 21768924.069 21768924.747
+ 40.700 37.700
+ 06 1 2 2 6 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17389704.300 7 -13550407.973 7 21007957.370 21007955.382 21007956.655
+ 45.600 42.500
+ -8578051.027 4 -6684186.096 4 23176366.954 23176366.175 23176366.244
+ 29.500 27.100
+ -8920285.811 7 -6950869.403 6 21994620.804 21994618.185 21994620.002
+ 42.000 36.300
+ -2581297.990 4 -2011398.333 3 24361328.090 24361326.985 24361326.963
+ 25.300 18.600
+ -6316717.810 5 -4922101.920 4 23299603.233 23299602.362 23299602.066
+ 31.600 26.200
+ -972155.908 3 -757523.543 3 24483034.627 24483033.126 24483032.377
+ 21.600 20.500
+ -23083958.742 7 -17987490.154 7 20089538.722 20089537.045 20089538.219
+ 47.000 45.300
+ -23516959.343 7 -18324895.592 7 20429850.723 20429847.216 20429849.681
+ 45.600 45.700
+ -14859280.477 6 -11578657.237 6 21752480.656 21752479.078 21752479.648
+ 40.600 37.700
+ 06 1 2 2 6 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17334462.983 7 -13507362.793 7 21018469.536 21018467.550 21018468.719
+ 45.500 42.500
+ -8487617.770 4 -6613718.661 4 23193575.801 23193574.936 23193574.900
+ 27.400 26.200
+ -8986195.492 7 -7002227.584 6 21982078.577 21982075.999 21982077.781
+ 42.000 36.200
+ -2535655.167 4 -1975832.507 2 24370013.341 24370012.012 24370012.611
+ 25.600 17.800
+ -6229679.126 5 -4854279.569 4 23316166.272 23316164.645 23316165.177
+ 32.400 24.900
+ -1088855.875 3 -848458.551 2 24460827.906 24460825.820 24460825.367
+ 19.900 17.800
+ -23052820.088 7 -17963226.266 7 20095464.133 20095462.567 20095463.612
+ 47.200 45.100
+ -23557655.263 7 -18356606.692 7 20422106.736 20422103.071 20422105.590
+ 45.800 45.800
+ -14945419.751 6 -11645778.748 6 21736088.930 21736087.399 21736087.898
+ 41.200 38.100
+ 06 1 2 2 7 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17278802.409 7 -13463990.918 7 21029061.400 21029059.261 21029060.648
+ 45.600 42.200
+ -8396969.387 4 -6543083.601 3 23210825.427 23210824.616 23210824.499
+ 27.400 23.800
+ -9051908.767 6 -7053432.732 5 21969573.568 21969571.019 21969572.821
+ 41.900 35.700
+ -2489480.410 4 -1939852.175 2 24378800.874 24378799.266 24378799.913
+ 26.200 17.800
+ -6142552.016 5 -4786388.324 4 23332746.175 23332744.674 23332745.052
+ 31.500 25.900
+ -1205554.396 3 -939392.410 3 24438619.537 24438618.935 24438617.890
+ 23.000 19.900
+ -23021065.286 7 -17938482.258 7 20101506.818 20101505.294 20101506.314
+ 47.100 45.300
+ -23597886.207 7 -18387955.475 7 20414450.782 20414447.415 20414449.753
+ 45.600 45.800
+ -15031277.095 6 -11712680.573 6 21719751.204 21719749.297 21719750.066
+ 41.500 38.000
+ 06 1 2 2 7 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17222724.960 7 -13420294.206 7 21039732.333 21039730.526 21039731.761
+ 45.400 42.100
+ -8306108.794 4 -6472283.146 3 23228115.795 23228114.846 23228115.396
+ 28.400 23.400
+ -9117424.953 7 -7104484.293 6 21957106.457 21957103.877 21957105.624
+ 42.200 36.500
+ -2442775.891 4 -1903459.048 2 24387688.733 24387686.217 24387687.238
+ 26.500 16.100
+ -6055337.443 5 -4718428.919 4 23349342.705 23349341.355 23349341.533
+ 32.000 26.500
+ -1322247.636 3 -1030322.218 3 24416413.758 24416412.543 24416412.168
+ 20.500 21.100
+ -22988696.198 7 -17913259.589 7 20107666.545 20107664.858 20107666.052
+ 47.000 45.100
+ -23637650.373 7 -18418940.535 7 20406883.830 20406880.551 20406882.824
+ 45.600 45.900
+ -15116850.043 6 -11779360.797 6 21703466.774 21703465.396 21703465.796
+ 41.300 38.100
+ 06 1 2 2 8 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17166232.713 7 -13376274.275 6 21050482.563 21050480.626 21050481.832
+ 45.100 41.900
+ -8215038.996 4 -6401319.705 4 23245446.172 23245444.898 23245445.149
+ 27.900 25.300
+ -9182743.904 7 -7155382.166 6 21944676.944 21944674.134 21944676.000
+ 42.500 36.700
+ -2395542.606 4 -1866653.871 3 24396675.991 24396675.123 24396675.138
+ 24.600 19.900
+ -5968036.010 5 -4650401.841 4 23365955.479 23365954.366 23365954.374
+ 30.600 25.600
+ -1438932.531 3 -1121245.445 3 24394209.589 24394207.852 24394207.513
+ 20.500 21.600
+ -22955714.728 7 -17887559.742 7 20113942.810 20113940.954 20113942.279
+ 47.200 44.900
+ -23676945.994 7 -18449560.492 7 20399406.135 20399402.903 20399405.149
+ 45.400 46.000
+ -15202136.301 6 -11845817.614 6 21687237.606 21687236.150 21687236.548
+ 41.300 38.600
+ 06 1 2 2 8 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17109328.050 7 -13331932.980 6 21061311.054 21061309.225 21061310.364
+ 45.300 41.800
+ -8123762.930 4 -6330195.528 4 23262815.227 23262814.216 23262814.566
+ 28.400 24.900
+ -9247865.144 7 -7206125.978 6 21932284.824 21932282.006 21932283.823
+ 42.500 36.600
+ -2347781.996 4 -1829437.832 3 24405764.763 24405763.398 24405763.801
+ 24.600 18.600
+ -5880648.426 5 -4582307.655 4 23382584.838 23382583.248 23382583.571
+ 31.000 25.900
+ -1555606.932 3 -1212160.556 3 24372006.840 24372005.665 24372005.457
+ 21.600 21.100
+ -22922122.750 7 -17861384.172 7 20120335.226 20120333.310 20120334.682
+ 47.300 45.200
+ -23715771.154 7 -18479813.859 7 20392017.946 20392014.706 20392016.947
+ 45.300 46.100
+ -15287133.393 6 -11912049.097 6 21671063.022 21671061.575 21671062.033
+ 41.400 38.900
+ 06 1 2 2 9 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -17052013.181 7 -13287272.043 6 21072217.744 21072215.804 21072217.035
+ 45.100 41.600
+ -8032283.457 4 -6258912.843 3 23280223.139 23280221.660 23280222.380
+ 27.900 22.600
+ -9312787.909 7 -7256715.136 6 21919930.510 21919927.305 21919929.581
+ 43.200 36.300
+ -2299495.527 3 -1791812.006 3 24414952.705 24414952.002 24414951.532
+ 20.500 19.900
+ -5793175.449 5 -4514146.890 4 23399230.161 23399228.999 23399229.193
+ 31.300 26.200
+ -1672267.072 3 -1303064.473 3 24349806.748 24349806.109 24349805.301
+ 19.900 21.100
+ -22887922.332 7 -17834734.496 7 20126843.454 20126841.508 20126842.902
+ 47.700 45.000
+ -23754123.959 7 -18509699.157 7 20384719.567 20384716.331 20384718.623
+ 45.400 46.100
+ -15371838.745 7 -11978053.261 6 21654944.539 21654942.639 21654943.382
+ 42.000 38.900
+ 06 1 2 2 9 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16994290.192 7 -13242293.091 6 21083202.191 21083200.059 21083201.405
+ 45.100 41.700
+ -7940603.467 4 -6187473.918 3 23297669.841 23297668.049 23297668.589
+ 26.200 23.000
+ -9377511.665 7 -7307149.225 6 21907614.071 21907610.848 21907613.094
+ 43.100 36.500
+ -2250684.862 4 -1753777.759 3 24424241.640 24424240.653 24424240.631
+ 24.900 19.300
+ -5705617.743 4 -4445920.138 4 23415892.292 23415890.659 23415891.151
+ 29.500 26.800
+ -1788910.080 3 -1393955.120 3 24327611.848 24327609.752 24327609.697
+ 22.100 18.600
+ -22853115.201 7 -17807612.054 7 20133467.075 20133465.111 20133466.520
+ 47.700 45.100
+ -23792002.547 7 -18539214.932 7 20377511.660 20377508.249 20377510.639
+ 45.200 46.100
+ -15456249.869 6 -12043828.155 6 21638881.507 21638879.784 21638880.373
+ 41.900 39.000
+ 06 1 2 2 10 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16936161.357 7 -13196997.892 6 21094263.821 21094261.633 21094263.061
+ 45.100 41.300
+ -7848725.942 4 -6115881.080 3 23315152.218 23315152.115 23315151.882
+ 27.100 23.800
+ -9442036.044 7 -7357427.951 6 21895335.043 21895332.327 21895334.151
+ 42.700 37.100
+ -2201351.518 3 -1715336.199 3 24433629.818 24433628.408 24433628.585
+ 23.400 19.300
+ -5617976.110 5 -4377627.960 4 23432569.392 23432568.316 23432568.435
+ 30.100 25.300
+ -1905532.826 2 -1484829.939 2 24305418.643 24305416.303 24305416.354
+ 17.800 13.900
+ -22817703.576 7 -17780018.575 7 20140205.675 20140203.747 20140205.179
+ 47.600 45.200
+ -23829405.027 7 -18568359.717 7 20370394.173 20370390.760 20370393.145
+ 45.400 46.100
+ -15540364.328 7 -12109371.886 6 21622875.112 21622873.035 21622874.055
+ 42.100 38.400
+ 06 1 2 2 10 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16877628.987 7 -13151388.254 6 21105401.986 21105399.882 21105401.335
+ 45.100 41.300
+ -7756653.828 4 -6044136.581 4 23332673.845 23332672.734 23332673.176
+ 27.900 24.200
+ -9506360.559 7 -7407550.937 6 21883094.384 21883091.699 21883093.594
+ 42.800 36.600
+ -2151497.657 4 -1676489.009 2 24443116.580 24443115.057 24443115.962
+ 26.500 17.800
+ -5530251.053 5 -4309270.812 4 23449263.977 23449262.224 23449262.832
+ 30.200 26.200
+ -2022132.231 3 -1575686.632 3 24283229.764 24283229.103 24283228.520
+ 23.800 18.600
+ -22781689.199 7 -17751955.424 7 20147059.007 20147057.051 20147058.466
+ 47.600 45.200
+ -23866329.483 7 -18597132.017 7 20363367.625 20363364.248 20363366.615
+ 45.200 46.200
+ -15624179.666 6 -12174682.535 6 21606925.405 21606923.656 21606924.343
+ 41.500 38.800
+ 06 1 2 2 11 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16818695.202 7 -13105465.820 6 21116616.926 21116614.650 21116616.191
+ 45.100 41.300
+ -7664390.035 4 -5972242.755 4 23350231.042 23350229.988 23350230.277
+ 28.100 24.200
+ -9570484.364 7 -7457517.528 6 21870891.858 21870889.267 21870891.002
+ 42.600 36.700
+ -2101124.554 3 -1637237.238 3 24452701.774 24452700.882 24452700.794
+ 23.800 18.600
+ -5442443.302 4 -4240849.198 4 23465972.399 23465971.287 23465971.202
+ 29.500 24.600
+ -2138704.840 4 -1666522.444 2 24261047.231 24261045.641 24261045.628
+ 24.600 16.100
+ -22745074.234 7 -17723424.281 7 20154026.340 20154024.621 20154025.814
+ 47.300 45.200
+ -23902774.187 7 -18625530.481 7 20356432.605 20356429.046 20356431.469
+ 45.000 46.200
+ -15707693.320 7 -12239758.094 6 21591033.591 21591031.659 21591032.386
+ 42.200 39.100
+ 06 1 2 2 11 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16759362.274 7 -13059232.368 6 21127907.370 21127905.296 21127906.729
+ 45.200 41.200
+ -7571937.353 4 -5900201.750 4 23367823.840 23367823.177 23367823.286
+ 28.800 25.300
+ -9634406.931 7 -7507327.309 6 21858728.071 21858725.336 21858727.203
+ 42.900 36.900
+ -2050233.862 4 -1597582.167 3 24462386.363 24462385.063 24462385.466
+ 25.600 18.600
+ -5354553.433 5 -4172363.592 3 23482697.211 23482696.257 23482696.077
+ 30.600 23.800
+ -2255247.794 3 -1757335.137 2 24238869.256 24238868.433 24238867.738
+ 23.800 17.000
+ -22707860.556 7 -17694426.610 7 20161107.840 20161106.123 20161107.321
+ 47.300 45.100
+ -23938737.140 7 -18653553.554 7 20349588.827 20349585.484 20349587.824
+ 45.100 46.400
+ -15790902.930 7 -12304596.740 6 21575199.358 21575197.374 21575198.149
+ 42.200 39.100
+ 06 1 2 2 12 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16699632.504 7 -13012689.692 6 21139273.774 21139271.577 21139272.959
+ 45.100 41.300
+ -7479298.885 4 -5828015.973 4 23385452.434 23385451.948 23385451.826
+ 26.800 24.600
+ -9698128.112 7 -7556980.168 6 21846602.342 21846599.445 21846601.526
+ 43.200 36.700
+ -1998827.286 3 -1557525.072 3 24472168.066 24472167.256 24472167.526
+ 21.600 18.600
+ -5266582.406 4 -4103814.770 4 23499437.467 23499436.788 23499436.141
+ 29.500 25.600
+ -2371758.066 3 -1848122.353 3 24216698.731 24216697.664 24216697.332
+ 21.600 21.100
+ -22670050.457 7 -17664964.194 7 20168302.940 20168301.152 20168302.407
+ 47.200 44.900
+ -23974216.697 7 -18681199.959 7 20342837.373 20342833.965 20342836.411
+ 45.100 46.300
+ -15873806.320 7 -12369196.771 6 21559422.910 21559421.278 21559421.842
+ 42.000 39.000
+ 06 1 2 2 12 30.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16639508.069 7 -12965839.481 6 21150714.894 21150712.957 21150714.280
+ 45.400 41.500
+ -7386477.450 4 -5755687.642 3 23403115.983 23403115.017 23403115.235
+ 25.900 23.000
+ -9761646.972 7 -7606475.375 6 21834515.390 21834512.242 21834514.379
+ 43.200 36.800
+ -1946906.874 3 -1517067.602 3 24482048.599 24482047.144 24482047.676
+ 22.600 19.300
+ -5178530.766 4 -4035203.132 3 23516193.276 23516191.834 23516192.016
+ 29.900 23.800
+ -2488232.375 3 -1938881.504 3 24194533.318 24194532.952 24194532.510
+ 22.600 18.600
+ -22631645.831 7 -17635038.515 7 20175611.192 20175609.314 20175610.608
+ 47.200 45.000
+ -24009211.200 7 -18708468.399 7 20336178.233 20336174.782 20336177.229
+ 45.200 46.400
+ -15956400.719 7 -12433556.033 6 21543705.869 21543704.175 21543704.797
+ 42.400 39.300
+ 06 1 2 2 13 0.0000000 0 9G29G 6G18G 8G10G 9G26G21G15
+ -16578991.179 7 -12918683.463 6 21162230.992 21162228.970 21162230.261
+ 45.200 41.300
+ -7293476.071 4 -5683219.060 3 23420813.540 23420812.945 23420812.836
+ 25.900 23.400
+ -9824963.008 7 -7655812.535 6 21822466.496 21822463.699 21822465.659
+ 43.200 37.200
+ -1894473.748 4 -1476210.611 2 24492026.667 24492024.865 24492025.503
+ 24.200 13.900
+ -5090399.141 5 -3966529.129 4 23532964.295 23532963.354 23532963.108
+ 30.400 25.600
+ -2604667.126 3 -2029609.844 3 24172376.002 24172375.978 24172375.431
+ 23.000 22.100
+ -22592648.854 7 -17604651.260 7 20183031.873 20183030.259 20183031.424
+ 47.300 45.000
+ -24043718.704 7 -18735357.358 7 20329611.685 20329608.132 20329610.643
+ 45.100 46.500
+ -16038683.644 7 -12497672.588 6 21528047.551 21528046.100 21528046.657
+ 42.300 38.900
+ 06 1 2 2 13 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16518084.364 7 -12871223.607 6 21173821.076 21173819.009 21173820.390
+ 45.100 41.000
+ -7200297.705 4 -5610612.592 3 23438544.635 23438543.820 23438543.826
+ 25.900 23.000
+ -9888075.424 7 -7704991.027 6 21810456.883 21810453.805 21810455.938
+ 43.600 37.400
+ -1841529.652 4 -1434955.446 3 24502101.567 24502100.354 24502100.653
+ 26.200 19.900
+ -5002188.313 4 -3897793.439 4 23549750.275 23549749.090 23549749.205
+ 29.500 24.600
+ -2721059.528 4 -2120305.182 3 24150227.282 24150227.188 24150226.859
+ 24.900 23.000
+ -22553061.547 7 -17573804.004 7 20190565.232 20190563.424 20190564.665
+ 47.200 44.800
+ -24077737.117 7 -18761865.213 7 20323138.148 20323134.724 20323137.170
+ 45.200 46.400
+ -153335.498 4 -119482.291 1 24693702.484 24693699.365 24693701.908
+ 26.200 9.000
+ -16120652.650 7 -12561544.532 6 21512449.581 21512448.035 21512448.534
+ 42.200 39.400
+ 06 1 2 2 14 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16456789.587 7 -12823461.440 6 21185485.155 21185483.055 21185484.488
+ 45.100 41.000
+ -7106945.140 4 -5537870.356 3 23456309.625 23456308.349 23456308.825
+ 27.600 23.000
+ -9950983.967 7 -7754010.659 6 21798485.495 21798482.685 21798484.592
+ 43.200 37.700
+ -1788076.481 4 -1393303.634 3 24512273.258 24512271.828 24512272.180
+ 24.200 19.300
+ -4913898.912 4 -3828996.526 4 23566551.033 23566549.968 23566549.794
+ 28.600 24.200
+ -2837406.474 4 -2210965.127 3 24128086.498 24128086.730 24128086.698
+ 24.200 22.600
+ -22512886.049 7 -17542498.420 7 20198210.487 20198208.587 20198209.935
+ 47.400 44.800
+ -24111265.048 7 -18787990.872 7 20316758.122 20316754.573 20316757.081
+ 45.000 46.600
+ -241718.673 4 -188352.305 2 24676884.529 24676879.650 24676883.936
+ 26.200 15.100
+ -16202305.248 7 -12625169.919 6 21496911.342 21496909.916 21496910.380
+ 42.100 39.300
+ 06 1 2 2 14 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16395109.251 7 -12775398.841 6 21197222.643 21197220.447 21197221.936
+ 45.200 41.000
+ -7013421.491 4 -5464994.823 3 23474105.807 23474105.460 23474105.038
+ 24.900 20.500
+ -10013688.072 7 -7802870.985 6 21786553.218 21786550.408 21786552.376
+ 43.500 37.400
+ -1734116.029 3 -1351256.552 2 24522541.063 24522539.870 24522540.167
+ 19.300 12.600
+ -4825531.490 5 -3760138.816 3 23583367.219 23583365.622 23583366.202
+ 30.100 23.000
+ -2953704.840 3 -2301587.180 3 24105954.050 24105955.778 24105955.403
+ 23.000 20.500
+ -22472124.473 7 -17510736.152 7 20205967.178 20205965.123 20205966.591
+ 47.600 44.600
+ -24144300.723 7 -18813732.951 7 20310471.434 20310468.072 20310470.483
+ 44.800 46.700
+ -330043.087 3 -257176.503 3 24660075.937 24660072.991 24660075.719
+ 23.400 18.600
+ -16283638.847 7 -12688546.736 6 21481434.502 21481432.845 21481433.347
+ 42.700 39.900
+ 06 1 2 2 15 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16333045.543 7 -12727037.509 6 21209032.815 21209030.828 21209032.175
+ 45.100 40.900
+ -6919729.473 4 -5391988.102 3 23491935.291 23491934.210 23491934.664
+ 25.600 23.400
+ -10076187.115 7 -7851571.521 6 21774660.110 21774657.171 21774659.327
+ 44.000 37.500
+ -1679650.150 3 -1308815.617 2 24532906.049 24532904.953 24532905.161
+ 23.400 16.100
+ -4737086.865 4 -3691220.935 3 23600197.780 23600195.876 23600196.413
+ 29.200 23.800
+ -3069951.396 3 -2392168.918 2 24083832.391 24083834.573 24083834.675
+ 20.500 16.100
+ -22430779.158 7 -17478519.024 7 20213834.802 20213832.882 20213834.321
+ 47.700 44.500
+ -24176842.095 7 -18839089.861 7 20304278.789 20304275.631 20304277.873
+ 44.700 46.700
+ -418308.644 3 -325954.828 3 24643279.947 24643275.974 24643279.401
+ 23.800 21.600
+ -16364651.072 7 -12751673.128 6 21466018.316 21466016.833 21466017.127
+ 42.700 40.200
+ 06 1 2 2 15 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16270600.856 7 -12678379.315 6 21220915.863 21220913.561 21220915.098
+ 44.800 40.800
+ -6825872.209 4 -5318852.610 4 23509795.764 23509795.150 23509795.160
+ 27.100 24.200
+ -10138480.552 7 -7900111.856 6 21762806.261 21762802.918 21762805.357
+ 44.000 37.200
+ -1624680.528 3 -1265982.077 2 24543365.817 24543364.956 24543364.953
+ 21.600 16.100
+ -4648565.445 4 -3622243.208 4 23617042.395 23617040.926 23617041.348
+ 29.500 24.200
+ -3186142.372 4 -2482707.306 3 24061723.693 24061724.635 24061724.435
+ 24.600 22.100
+ -22388852.097 7 -17445848.580 7 20221813.257 20221811.319 20221812.773
+ 47.600 44.400
+ -24208888.009 7 -18864060.702 7 20298180.856 20298177.509 20298179.874
+ 44.700 46.700
+ -506514.636 3 -394686.725 3 24626494.434 24626491.097 24626493.867
+ 19.300 23.000
+ -16445339.301 7 -12814547.057 6 21450663.774 21450662.252 21450662.775
+ 43.000 40.000
+ 06 1 2 2 16 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16207777.352 7 -12629425.933 6 21232870.567 21232868.562 21232869.864
+ 44.700 40.900
+ -6731852.609 4 -5245590.617 4 23527687.423 23527686.256 23527686.599
+ 26.800 24.200
+ -10200567.859 7 -7948491.562 6 21750991.277 21750988.371 21750990.496
+ 44.100 37.800
+ -1569209.171 3 -1222757.680 3 24553922.333 24553921.127 24553920.954
+ 23.000 19.300
+ -4559968.075 4 -3553206.344 4 23633902.276 23633900.624 23633901.263
+ 29.200 24.900
+ -3302274.907 4 -2573200.196 3 24039624.686 24039625.819 24039624.768
+ 24.600 23.800
+ -22346345.535 7 -17412726.582 7 20229902.057 20229900.042 20229901.449
+ 47.500 44.300
+ -24240436.165 7 -18888643.675 7 20292177.596 20292174.217 20292176.574
+ 44.900 46.900
+ -594660.576 2 -463371.794 3 24609720.225 24609718.180 24609719.460
+ 15.100 23.000
+ -16525701.147 7 -12877166.665 6 21435371.443 21435369.779 21435370.298
+ 42.500 40.000
+ 06 1 2 2 16 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16144577.294 7 -12580179.135 6 21244897.197 21244895.116 21244896.436
+ 44.800 40.700
+ -6637673.555 4 -5172204.389 3 23545608.516 23545608.086 23545608.208
+ 27.900 23.400
+ -10262448.471 7 -7996710.206 6 21739215.494 21739212.871 21739214.716
+ 43.600 38.100
+ -1513237.769 3 -1179143.601 2 24564573.296 24564571.796 24564572.317
+ 23.000 17.800
+ -4471295.364 4 -3484110.720 3 23650776.628 23650774.560 23650775.177
+ 29.900 23.800
+ -3418345.939 4 -2663645.083 3 24017539.087 24017537.714 24017537.903
+ 24.200 23.400
+ -22303261.624 7 -17379154.702 7 20238100.419 20238098.674 20238099.946
+ 47.300 44.400
+ -24271485.370 7 -18912837.861 7 20286269.151 20286265.582 20286268.085
+ 44.700 46.800
+ -682746.063 2 -532009.803 3 24592959.127 24592955.725 24592958.561
+ 13.900 23.000
+ -16605733.965 7 -12939529.884 6 21420141.620 21420139.939 21420140.606
+ 43.000 39.800
+ 06 1 2 2 17 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16081003.094 7 -12530640.799 6 21256994.693 21256992.883 21256994.197
+ 44.700 40.600
+ -6543337.916 4 -5098696.133 4 23563560.929 23563560.107 23563560.129
+ 26.800 24.200
+ -10324121.022 7 -8044766.727 6 21727479.823 21727476.972 21727478.917
+ 43.600 38.000
+ -1456768.051 3 -1135141.299 3 24575318.663 24575317.975 24575317.925
+ 23.000 19.300
+ -4382547.960 5 -3414956.930 4 23667664.183 23667663.015 23667663.157
+ 30.400 24.900
+ -3534352.139 3 -2754039.512 3 23995463.742 23995462.006 23995462.261
+ 23.400 21.100
+ -22259602.575 7 -17345134.662 7 20246408.529 20246406.804 20246408.017
+ 47.400 44.600
+ -24302033.337 7 -18936641.475 7 20280456.022 20280452.507 20280454.938
+ 44.700 46.800
+ -770770.848 3 -600600.457 3 24576207.969 24576204.858 24576207.702
+ 18.600 23.800
+ -16685435.387 7 -13001634.883 6 21404975.233 21404973.124 21404974.036
+ 43.300 39.300
+ 06 1 2 2 17 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -16017056.802 7 -12480812.518 6 21269163.446 21269161.336 21269162.742
+ 44.600 40.300
+ -6448848.684 4 -5025068.207 3 23581540.558 23581540.222 23581539.947
+ 24.900 21.600
+ -10385586.077 7 -8092661.566 6 21715783.413 21715780.467 21715782.669
+ 44.000 37.900
+ -1399801.964 3 -1090752.143 2 24586159.412 24586158.006 24586158.316
+ 22.600 16.100
+ -4293726.706 4 -3345745.606 4 23684567.036 23684565.380 23684565.461
+ 29.900 24.900
+ -3650290.262 3 -2844380.869 3 23973401.068 23973400.341 23973400.341
+ 22.600 23.000
+ -22215370.730 7 -17310668.291 7 20254825.551 20254823.889 20254825.020
+ 47.100 44.600
+ -24332078.582 7 -18960053.350 7 20274738.565 20274735.132 20274737.497
+ 44.400 46.900
+ -858734.120 3 -669143.268 4 24559469.264 24559466.173 24559468.570
+ 22.600 24.200
+ -16764803.006 7 -13063479.769 6 21389871.704 21389870.075 21389870.772
+ 43.400 39.800
+ 06 1 2 2 18 0.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -15952740.750 7 -12430696.113 6 21281402.380 21281400.318 21281401.654
+ 44.500 40.400
+ -6354208.775 3 -4951322.864 3 23599550.452 23599550.192 23599549.588
+ 23.800 21.100
+ -10446842.650 7 -8140393.952 6 21704126.726 21704123.878 21704125.807
+ 44.000 38.300
+ -1342341.740 3 -1045977.927 3 24597093.580 24597092.773 24597092.267
+ 19.900 19.300
+ -4204832.026 5 -3276477.020 3 23701483.019 23701480.911 23701481.737
+ 30.400 23.400
+ -3766157.105 3 -2934666.658 3 23951352.445 23951351.197 23951351.245
+ 21.100 19.300
+ -22170568.327 7 -17275757.328 7 20263351.194 20263349.478 20263350.636
+ 47.100 44.500
+ -24361619.700 7 -18983072.398 7 20269117.222 20269113.647 20269116.134
+ 44.700 47.000
+ -946635.683 4 -737637.962 3 24542742.705 24542738.678 24542742.150
+ 25.600 22.100
+ -16843834.251 7 -13125062.547 6 21374832.564 21374830.995 21374831.465
+ 43.300 40.200
+ 06 1 2 2 18 30.0000000 0 10G29G 6G18G 8G10G 9G26G21G22G15
+ -15888057.538 7 -12380293.613 6 21293711.326 21293709.095 21293710.556
+ 44.500 40.300
+ -6259421.097 4 -4877462.365 2 23617587.760 23617586.632 23617586.870
+ 24.600 16.100
+ -10507890.297 7 -8187963.539 6 21692509.825 21692506.840 21692508.897
+ 44.000 38.300
+ -1284388.765 3 -1000819.742 2 24608122.015 24608120.391 24608120.969
+ 23.000 13.900
+ -4115864.649 5 -3207151.811 4 23718412.551 23718411.308 23718411.440
+ 30.400 24.600
+ -3881949.612 3 -3024894.580 3 23929318.884 23929316.439 23929317.416
+ 23.800 22.100
+ -22125197.558 7 -17240403.481 7 20271984.769 20271983.313 20271984.321
+ 47.100 44.600
+ -24390655.005 7 -19005697.314 7 20263591.958 20263588.425 20263590.780
+ 44.400 47.000
+ -1034475.158 4 -806084.284 3 24526027.335 24526023.190 24526026.632
+ 26.500 21.600
+ -16922526.556 7 -13186381.209 6 21359857.900 21359856.296 21359856.885
+ 43.400 40.200
+ 06 1 2 2 19 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15823009.136 7 -12329606.542 6 21306089.617 21306087.454 21306088.829
+ 44.300 40.000
+ -6164488.746 3 -4803489.100 3 23635651.997 23635651.961 23635651.807
+ 23.400 19.300
+ -10568728.477 7 -8235369.902 6 21680932.528 21680929.688 21680931.618
+ 43.800 38.100
+ -4026825.242 4 -3137770.481 4 23735356.166 23735354.743 23735355.021
+ 28.600 24.600
+ -3997664.425 4 -3115061.941 3 23907298.529 23907296.548 23907297.474
+ 27.400 23.400
+ -22079260.721 7 -17204608.541 7 20280726.435 20280724.745 20280725.914
+ 47.300 44.500
+ -24419182.464 7 -19027926.500 7 20258163.300 20258159.849 20258162.162
+ 44.400 47.000
+ -1122252.151 4 -874481.933 3 24509323.815 24509319.936 24509323.092
+ 25.300 20.500
+ -17000877.355 7 -13247433.777 6 21344948.290 21344946.625 21344947.173
+ 43.100 40.300
+ 06 1 2 2 19 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15757597.998 7 -12278636.828 6 21318536.671 21318534.734 21318536.067
+ 44.600 40.100
+ -6069414.388 3 -4729405.236 3 23653745.406 23653743.984 23653744.601
+ 23.400 19.300
+ -10629356.052 7 -8282612.155 6 21669395.374 21669392.562 21669394.570
+ 44.000 38.500
+ -3937714.137 4 -3068333.291 4 23752312.837 23752312.241 23752311.773
+ 27.100 24.600
+ -4113297.938 4 -3205165.913 4 23885293.702 23885292.920 23885292.410
+ 24.600 24.200
+ -22032760.071 7 -17168374.268 7 20289575.213 20289573.616 20289574.762
+ 47.400 44.400
+ -24447200.698 7 -19049758.886 7 20252831.531 20252828.115 20252830.513
+ 44.300 47.100
+ -1209966.073 4 -942830.449 3 24492631.989 24492628.663 24492631.570
+ 25.900 21.100
+ -17078884.213 7 -13308218.325 6 21330104.035 21330102.488 21330102.973
+ 43.500 40.500
+ 06 1 2 2 20 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15691826.307 7 -12227386.158 6 21331052.881 21331050.631 21331052.136
+ 44.800 40.000
+ -5974201.063 4 -4655213.042 3 23671863.517 23671863.072 23671863.098
+ 26.800 20.500
+ -10689772.764 7 -8329690.111 6 21657898.598 21657895.749 21657897.662
+ 44.000 38.300
+ -3848532.179 4 -2998840.881 4 23769283.971 23769282.869 23769282.689
+ 29.000 24.200
+ -4228847.397 3 -3295204.411 3 23863304.762 23863303.797 23863304.019
+ 22.100 19.900
+ -21985698.012 7 -17131702.531 7 20298530.995 20298529.127 20298530.407
+ 47.200 44.400
+ -24474708.100 7 -19071193.221 7 20247597.041 20247593.583 20247596.103
+ 44.500 47.000
+ -1297616.528 4 -1011129.495 3 24475953.419 24475949.128 24475952.688
+ 25.600 21.100
+ -17156544.659 7 -13368732.951 6 21315325.605 21315324.119 21315324.541
+ 43.200 40.600
+ 06 1 2 2 20 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15625696.500 7 -12175856.435 6 21343636.839 21343634.792 21343636.112
+ 44.700 40.000
+ -5878851.728 4 -4580914.880 3 23690008.488 23690007.553 23690007.684
+ 26.800 23.000
+ -10749978.276 7 -8376603.486 6 21646441.684 21646438.917 21646440.863
+ 44.200 38.600
+ -3759279.926 4 -2929293.676 4 23786267.779 23786267.395 23786266.772
+ 27.600 24.900
+ -4344309.184 4 -3385174.600 3 23841333.367 23841332.453 23841332.280
+ 25.900 21.600
+ -21938076.872 7 -17094595.151 7 20307593.041 20307591.113 20307592.448
+ 47.500 44.300
+ -24501703.112 7 -19092228.297 7 20242460.145 20242456.643 20242459.192
+ 44.400 47.000
+ -1385203.076 3 -1079378.743 3 24459285.578 24459282.362 24459284.862
+ 22.600 19.900
+ -17233856.225 7 -13428975.711 6 21300613.821 21300612.231 21300612.679
+ 43.100 40.700
+ 06 1 2 2 21 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15559210.702 7 -12124049.319 6 21356288.871 21356286.585 21356288.201
+ 44.700 39.700
+ -5783369.343 4 -4506513.082 3 23708177.917 23708177.129 23708177.263
+ 25.600 23.000
+ -10809971.746 7 -8423351.638 6 21635025.467 21635022.589 21635024.451
+ 44.100 38.900
+ -3669958.092 4 -2859692.290 3 23803265.317 23803263.991 23803264.301
+ 27.900 23.800
+ -4459679.881 4 -3475073.776 3 23819378.958 23819378.764 23819378.137
+ 26.500 23.400
+ -21889898.856 7 -17057053.840 7 20316760.947 20316759.038 20316760.394
+ 47.500 44.000
+ -24528183.892 7 -19112862.664 7 20237420.956 20237417.470 20237419.945
+ 44.400 47.100
+ -1472724.917 4 -1147577.578 3 24442630.808 24442627.354 24442630.234
+ 25.300 22.100
+ -17310816.410 7 -13488944.679 6 21285968.678 21285967.084 21285967.655
+ 43.600 40.500
+ 06 1 2 2 21 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15492371.326 7 -12071966.688 6 21369007.993 21369005.682 21369007.251
+ 44.400 39.800
+ -5687756.690 4 -4432009.773 4 23726372.722 23726371.777 23726371.849
+ 24.200 24.200
+ -10869752.513 7 -8469934.045 6 21623649.888 21623646.633 21623648.651
+ 44.200 38.500
+ -3580567.253 4 -2790037.096 3 23820276.360 23820274.843 23820275.065
+ 28.100 22.100
+ -4574956.582 4 -3564899.747 3 23797441.169 23797441.607 23797441.415
+ 25.300 23.000
+ -21841166.536 7 -17019080.601 7 20326034.384 20326032.504 20326033.858
+ 47.400 43.900
+ -24554148.987 7 -19133095.208 7 20232480.058 20232476.477 20232478.992
+ 44.300 47.100
+ -1560182.004 4 -1215725.947 3 24425988.689 24425984.917 24425988.056
+ 25.600 22.100
+ -17387422.774 7 -13548637.943 6 21271391.135 21271389.437 21271390.045
+ 43.600 40.700
+ 06 1 2 2 22 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15425180.632 7 -12019610.299 6 21381793.737 21381791.646 21381793.108
+ 44.100 39.700
+ -5592016.821 3 -4357407.300 3 23744590.939 23744590.715 23744589.929
+ 22.100 23.000
+ -10929320.195 7 -8516350.415 6 21612314.247 21612311.308 21612313.447
+ 44.800 38.800
+ -3491107.948 4 -2720328.569 4 23837299.055 23837298.618 23837298.402
+ 27.400 24.200
+ -4690135.671 3 -3654649.625 3 23775522.869 23775523.433 23775523.271
+ 23.000 22.600
+ -21791882.050 7 -16980677.101 7 20335413.046 20335410.953 20335412.419
+ 47.500 43.800
+ -24579596.994 7 -19152924.824 7 20227637.284 20227633.922 20227636.279
+ 44.300 47.200
+ -1647573.962 3 -1283823.549 3 24409356.928 24409354.751 24409356.874
+ 22.100 23.800
+ -17463672.569 7 -13608053.365 6 21256881.314 21256879.613 21256880.197
+ 43.800 41.000
+ 06 1 2 2 22 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15357640.854 7 -11966981.906 6 21394646.215 21394644.193 21394645.445
+ 44.200 40.000
+ -5496152.539 3 -4282707.927 3 23762832.669 23762832.818 23762832.070
+ 20.500 23.400
+ -10988673.943 7 -8562600.082 6 21601019.586 21601016.411 21601018.698
+ 44.500 38.400
+ -3401580.847 4 -2650567.220 3 23854335.906 23854334.519 23854334.403
+ 27.100 21.100
+ -4805214.399 4 -3744321.313 4 23753625.141 23753624.983 23753625.058
+ 26.200 24.200
+ -21742047.949 7 -16941845.332 7 20344896.046 20344894.126 20344895.422
+ 47.500 44.000
+ -24604525.654 7 -19172349.751 7 20222893.624 20222890.198 20222892.529
+ 44.000 47.300
+ -1734900.224 4 -1351869.963 3 24392740.568 24392736.981 24392740.171
+ 24.600 20.500
+ -17539563.500 7 -13667189.149 6 21242439.527 21242438.106 21242438.546
+ 44.000 41.000
+ 06 1 2 2 23 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15289754.433 7 -11914083.398 6 21407564.564 21407562.474 21407563.866
+ 44.100 39.700
+ -5400166.750 3 -4207913.872 3 23781099.281 23781098.081 23781098.462
+ 23.400 19.900
+ -11047813.314 7 -8608682.703 6 21589765.786 21589762.573 21589764.885
+ 44.600 38.400
+ -3311986.609 4 -2580753.538 3 23871384.372 23871384.170 23871383.487
+ 26.500 21.600
+ -4920188.960 4 -3833911.836 3 23731746.818 23731746.054 23731746.075
+ 27.100 23.800
+ -21691666.589 7 -16902587.126 7 20354483.329 20354481.399 20354482.720
+ 47.300 44.000
+ -24628934.118 7 -19191369.330 7 20218248.833 20218245.307 20218247.786
+ 44.000 47.300
+ -1822160.425 4 -1419864.915 3 24376135.416 24376131.655 24376134.933
+ 24.200 22.100
+ -17615093.151 7 -13726043.418 6 21228067.115 21228065.287 21228065.950
+ 44.100 41.100
+ 06 1 2 2 23 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15221523.620 7 -11860916.526 6 21420548.542 21420546.418 21420547.862
+ 44.300 39.700
+ -5304062.573 4 -4133027.521 3 23799387.329 23799385.846 23799386.451
+ 25.300 18.600
+ -11106737.630 7 -8654597.752 6 21578552.751 21578549.875 21578551.859
+ 44.400 39.000
+ -3222325.743 4 -2510887.952 3 23888447.579 23888446.110 23888445.994
+ 26.500 19.300
+ -5035056.177 4 -3923418.702 3 23709888.922 23709887.578 23709887.844
+ 25.600 23.400
+ -21640740.490 7 -16862904.454 7 20364174.041 20364172.325 20364173.560
+ 47.300 43.800
+ -24652820.472 7 -19209982.073 7 20213703.376 20213699.834 20213702.367
+ 44.000 47.200
+ -1909353.925 3 -1487807.870 3 24359542.473 24359539.531 24359541.848
+ 22.100 22.100
+ -17690258.847 7 -13784614.089 6 21213763.249 21213761.627 21213762.178
+ 43.900 41.000
+ 06 1 2 2 24 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15152950.769 7 -11807483.137 6 21433597.632 21433595.342 21433596.842
+ 44.400 39.700
+ -5207842.819 4 -4058051.102 3 23817697.586 23817696.392 23817696.596
+ 25.300 21.100
+ -11165446.680 7 -8700345.050 6 21567380.770 21567378.125 21567379.919
+ 44.500 39.800
+ -3132598.792 4 -2440970.867 3 23905520.737 23905520.048 23905520.564
+ 26.800 20.500
+ -5149812.581 4 -4012839.245 4 23688052.364 23688049.884 23688050.670
+ 25.300 24.600
+ -21589271.865 7 -16822799.029 7 20373968.307 20373966.517 20373967.781
+ 47.400 43.800
+ -24676183.749 7 -19228187.222 7 20209257.394 20209254.012 20209256.403
+ 43.900 47.200
+ -1996480.330 3 -1555698.575 3 24342962.987 24342959.526 24342962.253
+ 23.000 22.100
+ -17765057.990 7 -13842899.135 6 21199529.648 21199527.892 21199528.576
+ 44.200 41.200
+ 06 1 2 2 24 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15084038.070 7 -11753784.924 6 21446711.087 21446709.023 21446710.437
+ 44.200 39.600
+ -5111510.374 4 -3982986.862 3 23836028.083 23836027.633 23836027.592
+ 25.300 19.900
+ -11223939.238 7 -8745923.657 6 21556250.009 21556247.113 21556249.152
+ 44.700 39.300
+ -3042806.265 4 -2371002.692 3 23922609.427 23922607.696 23922607.708
+ 27.400 22.600
+ -5264455.484 4 -4102171.348 3 23666236.533 23666233.813 23666234.761
+ 25.900 23.800
+ -21537263.195 7 -16782272.792 7 20383865.246 20383863.465 20383864.702
+ 47.400 43.900
+ -24699022.368 7 -19245983.546 7 20204911.277 20204908.022 20204910.345
+ 43.700 47.300
+ -2083539.505 3 -1623536.874 3 24326396.970 24326392.648 24326396.268
+ 23.400 21.600
+ -17839488.069 7 -13900896.596 6 21185366.161 21185364.386 21185364.952
+ 44.000 41.500
+ 06 1 2 2 25 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -15014787.849 7 -11699823.714 6 21459889.100 21459886.928 21459888.355
+ 44.100 39.300
+ -5015068.084 4 -3907837.064 2 23854381.180 23854379.531 23854380.499
+ 26.500 17.000
+ -11282215.071 7 -8791333.392 6 21545160.345 21545157.551 21545159.540
+ 44.800 39.100
+ -2952948.929 4 -2300984.023 3 23939707.417 23939706.712 23939706.535
+ 27.900 22.600
+ -5378980.949 4 -4191411.945 3 23644443.069 23644440.681 23644441.148
+ 26.500 23.400
+ -21484716.874 7 -16741327.605 7 20393864.269 20393862.712 20393863.839
+ 47.400 43.700
+ -24721334.372 7 -19263369.519 7 20200665.406 20200662.195 20200664.528
+ 43.800 47.400
+ -2170530.466 4 -1691322.035 3 24309843.348 24309839.516 24309842.791
+ 25.900 21.600
+ -17913546.666 7 -13958604.588 6 21171273.136 21171271.435 21171271.997
+ 44.100 41.500
+ 06 1 2 2 25 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -14945202.489 7 -11645601.354 6 21473130.480 21473128.472 21473129.872
+ 43.800 39.100
+ -4918518.764 3 -3832603.846 3 23872754.066 23872753.300 23872753.272
+ 23.800 20.500
+ -11340273.555 7 -8836573.767 6 21534112.576 21534109.429 21534111.691
+ 45.300 39.300
+ -2863027.369 4 -2230915.283 3 23956820.401 23956818.302 23956818.877
+ 27.600 21.100
+ -5493385.823 4 -4280558.540 3 23622671.529 23622669.832 23622670.092
+ 24.600 23.400
+ -21431635.494 7 -16699965.492 7 20403965.201 20403963.667 20403964.802
+ 47.300 43.600
+ -24743118.521 7 -19280344.176 7 20196520.184 20196516.795 20196519.214
+ 43.500 47.400
+ -2257453.181 4 -1759054.011 3 24293302.049 24293298.123 24293301.601
+ 27.400 21.600
+ -17987231.329 7 -14016021.207 6 21157251.347 21157249.764 21157250.181
+ 44.000 41.700
+ 06 1 2 2 26 0.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -14875284.173 7 -11591119.547 6 21486435.580 21486433.539 21486434.875
+ 43.600 39.100
+ -4821865.564 4 -3757289.681 3 23891146.310 23891145.829 23891145.492
+ 25.900 19.900
+ -11398113.950 7 -8881644.200 6 21523105.938 21523102.750 21523105.077
+ 45.300 39.500
+ -2773042.052 4 -2160796.874 3 23973942.806 23973941.587 23973942.082
+ 26.500 21.600
+ -5607667.219 4 -4369608.966 4 23600923.688 23600923.270 23600923.305
+ 27.100 24.200
+ -21378021.550 7 -16658188.389 7 20414167.714 20414166.039 20414167.259
+ 47.200 43.500
+ -24764373.435 7 -19296906.445 7 20192475.467 20192472.156 20192474.482
+ 43.400 47.500
+ -2344306.859 4 -1826732.207 3 24276774.148 24276770.443 24276773.517
+ 25.600 22.100
+ -18060539.458 7 -14073144.419 6 21143301.327 21143299.657 21143300.274
+ 44.400 41.400
+ 06 1 2 2 26 30.0000000 0 9G29G 6G18G10G 9G26G21G22G15
+ -14805035.328 7 -11536380.184 6 21499803.542 21499801.352 21499802.812
+ 43.400 39.100
+ -4725111.294 4 -3681896.804 2 23909558.235 23909557.180 23909557.769
+ 24.200 16.100
+ -11455735.610 7 -8926544.194 6 21512140.974 21512137.744 21512139.947
+ 45.200 39.400
+ -2682993.469 4 -2090629.163 3 23991079.063 23991077.818 23991077.610
+ 25.600 22.100
+ -5721821.173 4 -4458560.061 3 23579200.766 23579199.366 23579200.373
+ 27.100 21.600
+ -21323877.426 7 -16615998.162 7 20424471.156 20424469.305 20424470.633
+ 47.300 43.600
+ -24785097.704 7 -19313055.222 7 20188531.821 20188528.378 20188530.778
+ 43.300 47.400
+ -2431091.246 4 -1894356.385 3 24260258.805 24260256.558 24260258.221
+ 24.900 23.000
+ -18133468.488 7 -14129972.236 6 21129423.479 21129421.574 21129422.363
+ 44.700 41.500
+ 06 1 2 2 27 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14734458.218 7 -11481385.036 6 21513233.801 21513231.889 21513233.096
+ 43.300 39.100
+ -4628258.798 3 -3606427.313 2 23927988.146 23927987.295 23927987.733
+ 23.000 17.800
+ -11513138.149 7 -8971273.443 6 21501217.438 21501214.302 21501216.363
+ 44.800 39.500
+ -88689.614 3 -69107.805 3 24574259.817 24574259.122 24574259.387
+ 20.500 21.600
+ -2592882.571 4 -2020412.933 3 24008226.167 24008224.665 24008225.404
+ 26.800 18.600
+ -5835843.843 4 -4547408.870 4 23557502.751 23557502.091 23557502.488
+ 25.300 24.200
+ -21269205.670 7 -16573396.794 7 20434874.855 20434873.014 20434874.362
+ 47.300 43.500
+ -24805289.866 7 -19328789.372 7 20184689.471 20184685.922 20184688.359
+ 43.400 47.400
+ -2517805.833 4 -1961926.187 4 24243758.894 24243754.981 24243758.108
+ 25.900 24.600
+ -18206015.954 7 -14186502.728 6 21115618.236 21115616.341 21115617.055
+ 44.700 41.600
+ 06 1 2 2 27 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14663555.062 7 -11426135.823 6 21526726.288 21526724.269 21526725.536
+ 43.200 39.100
+ -4531311.024 3 -3530883.604 3 23946436.841 23946436.722 23946436.231
+ 22.600 22.100
+ -11570320.882 7 -9015831.410 6 21490335.640 21490332.909 21490334.893
+ 44.900 39.600
+ -133830.482 3 -104282.495 3 24565670.854 24565668.206 24565669.730
+ 21.100 19.300
+ -2502709.880 4 -1950148.504 3 24025386.258 24025384.552 24025385.017
+ 26.200 21.600
+ -5949732.488 4 -4636153.226 4 23535830.289 23535830.565 23535830.042
+ 27.100 25.300
+ -21214008.820 7 -16530386.261 7 20445378.454 20445376.695 20445377.916
+ 47.300 43.600
+ -24824948.319 7 -19344107.645 7 20180948.514 20180945.091 20180947.464
+ 43.300 47.600
+ -2604450.371 4 -2029441.388 3 24227270.856 24227266.910 24227270.343
+ 27.100 23.800
+ -18278179.438 7 -14242734.011 6 21101886.010 21101884.042 21101884.901
+ 45.100 41.700
+ 06 1 2 2 28 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14592328.254 7 -11370634.414 6 21540280.219 21540278.327 21540279.489
+ 43.400 39.100
+ -4434270.920 3 -3455268.004 4 23964903.602 23964902.805 23964902.694
+ 19.900 24.200
+ -11627283.179 7 -9060217.609 6 21479496.320 21479493.358 21479495.412
+ 45.300 39.600
+ -178470.011 2 -139066.505 2 24557174.795 24557174.193 24557174.017
+ 17.000 17.000
+ -2412475.674 4 -1879836.157 3 24042556.739 24042555.580 24042555.526
+ 26.800 21.600
+ -6063484.157 4 -4724790.849 3 23514185.819 23514183.603 23514184.452
+ 28.600 23.800
+ -21158289.307 7 -16486968.459 7 20455981.501 20455979.767 20455981.001
+ 47.300 43.500
+ -24844072.005 7 -19359009.215 7 20177309.381 20177306.044 20177308.323
+ 43.600 47.700
+ -2691023.955 4 -2096901.339 3 24210796.277 24210793.036 24210795.665
+ 27.400 23.800
+ -18349956.503 7 -14298664.192 6 21088227.288 21088225.366 21088226.145
+ 45.000 41.800
+ 06 1 2 2 28 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14520780.215 7 -11314882.703 6 21553895.375 21553893.481 21553894.628
+ 43.500 38.600
+ -4337141.330 3 -3379582.688 3 23983385.766 23983385.962 23983385.160
+ 19.900 22.100
+ -11684024.334 7 -9104431.491 6 21468698.849 21468695.832 21468698.017
+ 45.500 39.900
+ -222606.802 3 -173458.805 3 24548776.866 24548775.265 24548775.681
+ 21.100 23.400
+ -2322180.482 4 -1809476.306 3 24059739.095 24059738.369 24059738.070
+ 27.400 21.600
+ -6177095.234 4 -4813318.968 4 23492566.617 23492564.778 23492565.036
+ 27.600 24.900
+ -21102049.705 7 -16443145.385 7 20466683.562 20466681.836 20466683.080
+ 47.300 43.300
+ -24862659.459 7 -19373492.938 7 20173772.388 20173768.889 20173771.305
+ 43.400 47.600
+ -2777526.429 4 -2164305.865 4 24194335.547 24194331.795 24194334.786
+ 26.200 24.600
+ -18421344.660 7 -14354291.319 6 21074642.352 21074640.551 21074641.283
+ 44.800 41.700
+ 06 1 2 2 29 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14448913.105 7 -11258882.357 6 21567571.514 21567569.177 21567570.672
+ 43.400 38.900
+ -4239925.133 3 -3303829.847 3 24001885.918 24001885.309 24001885.191
+ 19.900 23.000
+ -11740543.265 7 -9148472.213 6 21457943.593 21457940.504 21457942.711
+ 45.300 39.800
+ -266239.787 3 -207458.542 3 24540473.328 24540472.153 24540472.755
+ 21.600 21.100
+ -2231825.117 4 -1739069.538 3 24076933.516 24076932.173 24076932.272
+ 24.900 21.600
+ -6290562.143 4 -4901734.718 3 23470974.424 23470972.194 23470972.619
+ 26.200 23.400
+ -21045292.499 7 -16398918.994 7 20477484.091 20477482.351 20477483.598
+ 47.100 43.200
+ -24880708.634 7 -19387557.230 7 20170337.737 20170334.246 20170336.657
+ 43.300 47.600
+ -2863957.368 4 -2231654.633 4 24177887.984 24177884.192 24177887.222
+ 25.600 24.200
+ -18492341.392 7 -14409613.449 7 21061132.147 21061130.465 21061131.043
+ 44.900 42.000
+ 06 1 2 2 29 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14376729.216 7 -11202635.175 6 21581307.284 21581305.358 21581306.714
+ 43.800 38.800
+ -4142625.197 3 -3228011.747 3 24020401.042 24020401.082 24020400.167
+ 22.600 22.600
+ -11796839.949 7 -9192339.752 6 21447230.432 21447227.696 21447229.649
+ 45.300 39.900
+ -309367.606 2 -241064.583 4 24532266.931 24532265.671 24532266.164
+ 16.100 25.300
+ -2141410.093 4 -1668616.311 3 24094139.152 24094138.342 24094138.160
+ 24.900 22.600
+ -6403881.182 4 -4990035.236 4 23449409.678 23449408.435 23449408.302
+ 27.100 25.600
+ -20988020.341 7 -16354291.341 7 20488382.698 20488380.877 20488382.122
+ 47.200 43.100
+ -24898219.255 7 -19401201.866 7 20167005.401 20167002.135 20167004.299
+ 43.200 47.800
+ -2950316.051 4 -2298947.113 3 24161454.595 24161451.111 24161453.891
+ 26.200 23.400
+ -18562944.247 7 -14464628.653 7 21047696.876 21047695.255 21047695.825
+ 45.200 42.200
+ 06 1 2 2 30 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14304230.948 7 -11146143.015 6 21595103.512 21595101.199 21595102.783
+ 43.700 38.100
+ -4045244.514 3 -3152130.747 3 24038932.336 24038932.509 24038931.626
+ 22.100 22.100
+ -11852914.040 7 -9236033.845 6 21436560.251 21436557.235 21436559.313
+ 45.500 40.000
+ -351988.787 3 -274275.903 3 24524156.389 24524154.622 24524155.657
+ 22.100 23.800
+ -2050935.680 4 -1598116.812 3 24111355.942 24111355.339 24111354.365
+ 24.600 23.400
+ -6517049.632 4 -5078218.413 4 23427873.654 23427873.097 23427873.344
+ 28.100 24.900
+ -20930235.612 7 -16309264.277 7 20499378.564 20499376.909 20499378.054
+ 46.900 43.000
+ -24915189.619 7 -19414425.519 7 20163776.052 20163772.708 20163775.030
+ 43.100 47.700
+ -3036602.105 4 -2366183.013 4 24145034.768 24145031.620 24145034.177
+ 25.600 24.200
+ -18633150.532 7 -14519334.844 7 21034336.999 21034335.363 21034336.044
+ 45.000 42.200
+ 06 1 2 2 30 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14231420.554 7 -11089407.643 6 21608958.929 21608956.706 21608958.232
+ 43.600 38.500
+ -3947785.795 4 -3076188.921 3 24057478.105 24057478.163 24057477.735
+ 25.600 22.100
+ -11908764.564 7 -9279553.728 6 21425931.962 21425929.110 21425931.056
+ 45.300 40.000
+ -394102.264 3 -307091.607 3 24516142.407 24516140.253 24516141.411
+ 23.000 21.100
+ -1960402.629 4 -1527571.614 3 24128583.091 24128582.624 24128582.697
+ 24.200 19.900
+ -6630063.987 4 -5166281.511 3 23406366.834 23406366.957 23406366.886
+ 26.500 23.800
+ -20871941.108 7 -16263839.988 7 20510471.682 20510469.976 20510471.176
+ 47.000 43.000
+ -24931618.080 7 -19427226.915 7 20160649.823 20160646.374 20160648.847
+ 43.100 47.500
+ -3122815.144 4 -2433361.975 4 24128628.643 24128625.797 24128628.037
+ 24.200 24.900
+ -18702957.881 7 -14573730.176 7 21021053.267 21021051.593 21021052.092
+ 45.400 42.500
+ 06 1 2 2 31 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14158300.358 7 -11032430.870 6 21622873.205 21622870.991 21622872.487
+ 43.500 38.200
+ -3850252.024 4 -3000188.622 2 24076039.002 24076038.098 24076038.059
+ 26.500 17.000
+ -11964390.585 7 -9322898.673 6 21415346.763 21415343.698 21415345.870
+ 45.500 40.100
+ -435706.711 4 -339510.633 4 24508224.798 24508223.837 24508224.098
+ 24.200 24.900
+ -1869811.626 4 -1456981.214 3 24145822.770 24145821.322 24145821.333
+ 24.600 21.600
+ -6742920.781 4 -5254221.835 4 23384891.034 23384891.241 23384891.358
+ 27.400 26.500
+ -20813139.216 7 -16218020.333 7 20521661.453 20521659.582 20521660.849
+ 46.900 42.700
+ -24947503.597 7 -19439605.235 7 20157626.955 20157623.530 20157625.878
+ 42.700 47.700
+ -3208954.838 4 -2500483.772 4 24112236.680 24112233.759 24112236.465
+ 25.300 26.200
+ -18772363.886 7 -14627812.768 7 21007845.535 21007843.978 21007844.452
+ 45.400 42.500
+ 06 1 2 2 31 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14084872.726 7 -10975214.531 6 21636845.973 21636843.907 21636845.186
+ 43.200 38.400
+ -3752646.063 4 -2924132.038 2 24094612.471 24094610.996 24094611.523
+ 25.900 13.900
+ -12019792.040 7 -9366068.636 6 21404804.292 21404801.259 21404803.408
+ 45.600 40.100
+ -476800.759 4 -371531.941 4 24500405.288 24500404.017 24500404.250
+ 26.500 25.900
+ -1779163.137 4 -1386346.064 3 24163071.786 24163071.334 24163070.803
+ 25.900 21.600
+ -6855616.654 4 -5342036.749 4 23363447.705 23363446.273 23363446.430
+ 27.600 28.600
+ -20753832.706 7 -16171807.468 7 20532946.925 20532945.297 20532946.510
+ 47.100 42.800
+ -24962845.029 7 -19451559.593 7 20154707.338 20154704.179 20154706.377
+ 42.800 47.600
+ -3295020.493 4 -2567547.889 4 24095859.140 24095855.621 24095858.632
+ 27.400 24.200
+ -18841366.027 7 -14681580.663 7 20994714.820 20994713.410 20994713.729
+ 45.000 42.600
+ 06 1 2 2 32 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -14011139.886 7 -10917760.372 6 21650876.701 21650874.750 21650876.043
+ 43.000 38.100
+ -3654970.663 4 -2848021.305 2 24113199.930 24113197.573 24113199.221
+ 25.600 13.900
+ -12074967.701 7 -9409062.653 6 21394304.616 21394301.620 21394303.696
+ 45.400 40.200
+ -517383.211 4 -403154.627 3 24492682.554 24492681.515 24492681.551
+ 24.600 23.400
+ -1688457.620 4 -1315666.463 3 24180332.855 24180331.965 24180331.585
+ 25.600 20.500
+ -6968147.947 4 -5429723.447 4 23342033.851 23342031.968 23342032.642
+ 28.600 27.900
+ -20694023.977 7 -16125203.265 7 20544328.484 20544326.326 20544327.812
+ 47.100 42.400
+ -24977640.910 7 -19463088.848 7 20151891.843 20151888.544 20151890.834
+ 42.700 47.700
+ -3381011.648 4 -2634553.975 3 24079495.969 24079491.681 24079495.211
+ 27.900 23.000
+ -18909961.791 7 -14735031.892 7 20981661.479 20981659.797 20981660.374
+ 44.900 42.200
+ 06 1 2 2 32 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13937103.818 7 -10860069.928 6 21664965.340 21664963.231 21664964.643
+ 42.800 38.100
+ -3557228.767 3 -2771858.809 2 24131798.691 24131798.894 24131798.158
+ 22.100 17.000
+ -12129917.318 7 -9451880.531 6 21383848.035 21383845.086 21383847.165
+ 45.500 40.500
+ -557452.900 4 -434377.796 3 24485058.215 24485055.757 24485057.044
+ 25.300 21.100
+ -1597695.666 3 -1244942.890 3 24197605.728 24197603.146 24197604.107
+ 23.800 18.600
+ -7080511.712 4 -5517279.610 4 23320651.405 23320649.679 23320649.923
+ 27.400 25.600
+ -20633715.694 7 -16078209.799 7 20555804.450 20555802.607 20555803.936
+ 47.000 42.500
+ -24991890.334 7 -19474192.294 7 20149180.374 20149176.960 20149179.346
+ 42.900 47.700
+ -3466927.840 4 -2701501.638 3 24063146.478 24063142.335 24063146.062
+ 27.600 21.600
+ -18978148.818 7 -14788164.639 7 20968686.174 20968684.281 20968685.058
+ 45.100 42.200
+ 06 1 2 2 33 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13862767.173 7 -10802145.273 6 21679111.159 21679109.038 21679110.461
+ 42.700 38.100
+ -3459423.232 3 -2695646.763 3 24150411.050 24150410.515 24150410.080
+ 20.500 18.600
+ -12184639.880 7 -9494521.484 6 21373434.758 21373431.771 21373433.846
+ 45.600 40.400
+ -597008.796 3 -465200.524 4 24477530.222 24477529.144 24477529.340
+ 23.000 26.500
+ -1506877.954 4 -1174175.847 3 24214885.393 24214885.419 24214884.924
+ 25.900 20.500
+ -7192704.434 4 -5604702.476 4 23299301.305 23299299.621 23299299.772
+ 28.100 24.200
+ -20572910.508 7 -16030829.132 7 20567375.417 20567373.483 20567374.825
+ 47.000 42.400
+ -25005591.946 7 -19484868.875 7 20146573.154 20146569.732 20146572.126
+ 42.900 47.800
+ -3552768.464 4 -2768390.429 2 24046811.386 24046807.214 24046810.953
+ 26.200 17.000
+ -19045924.577 7 -14840976.910 7 20955788.789 20955787.017 20955787.611
+ 45.600 42.300
+ 06 1 2 2 33 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13788132.223 7 -10743988.173 6 21693313.530 21693311.557 21693313.049
+ 42.800 37.700
+ -3361557.000 3 -2619387.400 2 24169034.632 24169033.823 24169033.688
+ 21.100 15.100
+ -12239135.125 7 -9536985.310 6 21363064.824 21363061.613 21363063.898
+ 45.600 40.500
+ -636049.734 4 -495622.062 4 24470101.296 24470099.656 24470100.515
+ 26.500 26.500
+ -1416004.876 4 -1103365.688 3 24232178.708 24232178.145 24232177.377
+ 24.200 19.900
+ -7304722.672 4 -5691989.402 4 23277985.089 23277983.659 23277984.259
+ 29.500 25.300
+ -20511611.017 7 -15983063.296 7 20579040.355 20579038.454 20579039.857
+ 47.100 42.400
+ -25018744.276 7 -19495117.443 7 20144070.448 20144066.903 20144069.327
+ 42.700 47.700
+ -3638533.183 4 -2835220.060 3 24030490.274 24030486.706 24030489.861
+ 26.500 19.300
+ -19113286.531 7 -14893466.742 7 20942970.165 20942968.463 20942969.045
+ 45.400 42.500
+ 06 1 2 2 34 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13713201.033 7 -10685600.238 6 21707572.723 21707570.473 21707572.023
+ 43.000 37.700
+ -3263633.014 2 -2543082.983 2 24187668.400 24187668.523 24187667.702
+ 17.000 16.100
+ -12293401.821 7 -9579271.037 6 21352737.966 21352735.174 21352737.040
+ 45.400 40.900
+ -674574.492 4 -525641.334 3 24462769.971 24462768.649 24462769.083
+ 24.600 23.400
+ -1325076.886 4 -1032512.778 3 24249482.197 24249480.964 24249481.075
+ 26.200 19.300
+ -7416562.900 4 -5779137.615 3 23256701.476 23256700.436 23256701.534
+ 29.900 23.800
+ -20449820.024 7 -15934914.471 7 20590798.890 20590796.838 20590798.304
+ 47.300 42.300
+ -25031346.422 7 -19504937.294 7 20141672.345 20141668.773 20141671.239
+ 43.000 47.800
+ -3724221.281 4 -2901989.980 3 24014185.584 24014181.328 24014184.725
+ 27.100 21.600
+ -19180232.326 7 -14945632.288 7 20930230.571 20930229.013 20930229.542
+ 45.300 42.300
+ 06 1 2 2 34 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13637976.414 7 -10626983.652 6 21721887.414 21721885.136 21721886.759
+ 42.900 37.200
+ -3165653.848 2 -2466735.647 2 24206313.534 24206313.078 24206312.656
+ 17.800 17.000
+ -12347440.013 7 -9621378.712 6 21342454.899 21342451.970 21342453.943
+ 45.500 40.700
+ -712581.862 4 -555257.458 3 24455537.715 24455535.628 24455536.914
+ 26.200 22.600
+ -1234094.612 4 -961617.475 3 24266795.634 24266794.456 24266794.368
+ 24.900 19.300
+ -7528221.648 4 -5866144.399 4 23235453.444 23235453.133 23235453.168
+ 28.100 25.300
+ -20387539.944 7 -15886384.537 7 20602650.376 20602648.440 20602649.832
+ 47.200 42.200
+ -25043397.027 7 -19514327.373 7 20139379.327 20139375.675 20139378.221
+ 42.800 47.800
+ -3809832.827 4 -2968700.238 3 23997893.621 23997889.947 23997893.193
+ 27.600 23.800
+ -19246759.479 7 -14997471.621 7 20917571.009 20917569.343 20917569.922
+ 45.200 42.500
+ 06 1 2 2 35 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13562460.232 7 -10568139.869 6 21736257.727 21736255.444 21736257.070
+ 42.700 37.300
+ -3067622.509 3 -2390347.658 2 24224969.019 24224967.642 24224967.904
+ 21.600 15.100
+ -12401248.794 7 -9663307.627 6 21332215.438 21332212.541 21332214.494
+ 45.500 40.900
+ -750070.969 4 -584469.734 4 24448403.977 24448401.921 24448403.006
+ 26.200 24.600
+ -1143058.515 3 -890680.291 3 24284118.604 24284118.326 24284117.208
+ 23.000 19.900
+ -7639695.532 4 -5953007.131 4 23214241.446 23214240.431 23214240.713
+ 29.500 26.800
+ -20324773.367 7 -15837475.514 7 20614594.384 20614592.613 20614593.903
+ 47.000 42.300
+ -25054894.786 7 -19523286.665 7 20137191.146 20137187.745 20137190.095
+ 42.700 47.800
+ -3895366.952 4 -3035350.175 4 23981616.791 23981613.519 23981616.421
+ 25.900 25.600
+ -19312865.416 7 -15048982.731 7 20904991.471 20904989.751 20904990.440
+ 45.500 42.800
+ 06 1 2 2 35 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13486654.845 7 -10509070.744 6 21750683.036 21750680.845 21750682.302
+ 42.700 37.200
+ -2969541.804 4 -2313921.085 2 24243632.865 24243631.013 24243632.085
+ 24.900 15.100
+ -12454827.551 7 -9705057.299 6 21322019.929 21322016.988 21322018.997
+ 45.800 41.200
+ -787040.611 3 -613277.209 3 24441368.930 24441367.285 24441367.828
+ 23.800 22.600
+ -1051969.091 3 -819701.561 3 24301452.816 24301452.065 24301451.961
+ 23.400 22.100
+ -7750981.559 4 -6039723.486 4 23193065.428 23193063.472 23193063.664
+ 29.200 26.500
+ -20261523.093 7 -15788189.593 7 20626630.512 20626628.663 20626629.934
+ 46.800 42.100
+ -25065838.685 7 -19531814.378 7 20135108.538 20135105.115 20135107.444
+ 42.400 47.700
+ -3980823.127 4 -3101939.351 4 23965354.845 23965351.987 23965354.391
+ 26.500 26.800
+ -19378547.704 7 -15100163.731 7 20892492.592 20892490.791 20892491.500
+ 45.600 42.800
+ 06 1 2 2 36 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13410562.624 7 -10449778.107 6 21765162.966 21765160.842 21765162.328
+ 42.800 37.400
+ -2871414.636 3 -2237458.393 3 24262305.006 24262304.470 24262304.443
+ 23.000 18.600
+ -12508175.690 7 -9746627.270 6 21311868.020 21311865.002 21311866.995
+ 45.600 41.100
+ -823489.703 4 -641679.142 3 24434432.567 24434430.740 24434431.441
+ 25.300 21.100
+ -960826.919 4 -748681.682 3 24318796.477 24318795.530 24318795.750
+ 24.900 21.100
+ -7862075.915 4 -6126290.472 4 23171924.860 23171922.723 23171923.038
+ 28.400 28.100
+ -20197791.741 7 -15738528.795 6 20638758.180 20638756.260 20638757.657
+ 46.900 41.900
+ -25076227.496 7 -19539909.555 7 20133131.693 20133128.206 20133130.544
+ 42.300 47.700
+ -4066200.966 4 -3168467.489 4 23949108.280 23949104.948 23949107.777
+ 28.400 27.400
+ -19443804.098 7 -15151012.863 7 20880074.777 20880072.964 20880073.685
+ 45.800 43.000
+ 06 1 2 2 36 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13334185.676 7 -10390263.607 6 21779696.947 21779694.864 21779696.400
+ 42.700 37.300
+ -2773243.697 4 -2160961.595 3 24280986.560 24280986.304 24280985.676
+ 24.200 22.100
+ -12561292.420 7 -9788016.921 6 21301760.310 21301757.066 21301759.258
+ 45.400 41.000
+ -859417.230 3 -669674.601 3 24427595.500 24427593.985 24427594.856
+ 23.400 22.100
+ -869632.660 4 -677621.258 3 24336149.891 24336149.084 24336148.989
+ 24.600 18.600
+ -7972975.298 4 -6212705.555 4 23150820.775 23150819.375 23150819.702
+ 29.700 28.100
+ -20133582.012 7 -15688495.241 6 20650976.860 20650974.915 20650976.340
+ 46.800 41.900
+ -25086060.924 7 -19547571.965 7 20131260.342 20131257.011 20131259.286
+ 42.400 47.800
+ -4151499.832 4 -3234934.115 4 23932876.642 23932873.034 23932876.049
+ 29.500 26.800
+ -19508631.912 7 -15201528.036 7 20867738.567 20867736.655 20867737.378
+ 45.800 43.100
+ 06 1 2 2 37 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13257526.395 7 -10330529.105 6 21794285.221 21794282.620 21794284.353
+ 42.700 37.100
+ -2675031.973 3 -2084432.969 3 24299675.100 24299675.292 24299674.487
+ 21.100 21.100
+ -12614177.200 7 -9829225.834 6 21291696.362 21291693.539 21291695.459
+ 45.500 41.000
+ -894822.220 3 -697262.891 2 24420858.156 24420856.266 24420857.187
+ 20.500 13.900
+ -778386.789 4 -606520.592 2 24353512.553 24353512.202 24353511.944
+ 24.900 17.000
+ -8083676.299 5 -6298966.041 4 23129754.306 23129753.664 23129753.680
+ 30.100 27.100
+ -20068896.608 7 -15638091.031 6 20663286.304 20663284.231 20663285.701
+ 46.700 41.900
+ -25095336.922 7 -19554800.014 7 20129495.329 20129491.862 20129494.184
+ 42.300 47.800
+ -4236719.469 4 -3301338.997 4 23916660.086 23916656.054 23916659.558
+ 28.800 26.500
+ -19573028.774 7 -15251707.400 7 20855484.311 20855482.307 20855483.139
+ 45.800 43.100
+ 06 1 2 2 37 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13180587.135 7 -10270576.434 6 21808925.576 21808923.768 21808925.037
+ 42.600 37.200
+ -2576782.277 3 -2007874.831 3 24318372.260 24318371.650 24318371.175
+ 23.000 20.500
+ -12666829.005 7 -9870253.205 6 21281676.994 21281674.135 21281676.196
+ 45.700 41.100
+ -929703.675 3 -724443.236 2 24414220.638 24414218.784 24414219.730
+ 23.800 17.800
+ -687089.931 4 -535380.189 2 24370886.938 24370885.820 24370886.009
+ 26.200 17.800
+ -8194175.060 4 -6385068.922 4 23108727.055 23108726.112 23108726.360
+ 29.500 26.500
+ -20003738.170 7 -15587318.222 6 20675685.214 20675683.371 20675684.706
+ 46.600 41.500
+ -25104054.900 7 -19561593.242 7 20127836.262 20127832.808 20127835.176
+ 42.400 47.700
+ -4321859.242 4 -3367681.649 4 23900458.277 23900454.254 23900457.647
+ 28.600 25.900
+ -19636992.334 7 -15301549.130 7 20843312.327 20843310.299 20843311.206
+ 45.800 42.900
+ 06 1 2 2 38 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13103370.095 7 -10210407.312 6 21823619.855 21823617.578 21823619.099
+ 42.400 37.200
+ -2478497.374 3 -1931289.242 3 24337075.087 24337074.696 24337074.335
+ 23.000 22.100
+ -12719247.403 7 -9911098.702 6 21271702.301 21271699.289 21271701.453
+ 45.500 41.300
+ -964060.624 3 -751214.866 3 24407682.265 24407681.354 24407681.338
+ 19.900 18.600
+ -595742.494 4 -464200.371 2 24388271.195 24388268.006 24388269.565
+ 24.900 17.800
+ -8304468.773 5 -6471012.041 4 23087739.253 23087738.311 23087738.571
+ 31.300 26.500
+ -19938109.290 7 -15536178.837 6 20688173.881 20688172.237 20688173.401
+ 46.200 41.500
+ -25112213.432 7 -19567950.540 7 20126283.602 20126280.265 20126282.548
+ 42.100 47.800
+ -4406918.668 4 -3433961.705 4 23884272.181 23884268.156 23884271.482
+ 27.400 25.600
+ -19700520.171 7 -15351051.337 7 20831223.334 20831221.392 20831222.235
+ 45.600 43.000
+ 06 1 2 2 38 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -13025877.476 7 -10150023.455 6 21838366.208 21838364.081 21838365.483
+ 42.500 36.900
+ -2380180.082 3 -1854678.372 2 24355785.240 24355783.063 24355784.281
+ 22.100 15.100
+ -12771431.739 7 -9951761.811 6 21261771.722 21261768.972 21261770.909
+ 45.800 41.400
+ -997892.260 3 -777577.143 3 24401244.729 24401243.000 24401243.655
+ 18.600 19.900
+ -504344.864 3 -392981.459 2 24405662.346 24405661.051 24405660.979
+ 21.100 17.800
+ -8414553.525 5 -6556792.351 4 23066791.115 23066789.483 23066789.900
+ 30.800 27.100
+ -19872012.776 7 -15484675.063 6 20700751.756 20700749.955 20700751.164
+ 46.400 41.200
+ -25119811.818 7 -19573871.359 7 20124837.743 20124834.402 20124836.608
+ 42.200 47.700
+ -4491897.223 4 -3500178.734 4 23868100.477 23868097.268 23868100.024
+ 26.500 26.200
+ -19763609.722 7 -15400212.019 7 20819217.605 20819216.018 20819216.557
+ 45.900 43.200
+ 06 1 2 2 39 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12948111.683 7 -10089426.742 6 21853164.491 21853162.185 21853163.750
+ 42.100 36.500
+ -2281833.232 3 -1778044.467 2 24374500.078 24374498.102 24374499.133
+ 22.100 13.900
+ -12823381.479 7 -9992242.122 6 21251886.041 21251883.167 21251885.268
+ 46.100 41.300
+ -1031197.341 3 -803529.160 2 24394906.675 24394905.602 24394905.789
+ 23.800 13.900
+ -412897.488 3 -321723.806 3 24423064.022 24423063.529 24423063.200
+ 23.800 19.300
+ -8524426.074 5 -6642407.294 4 23045882.854 23045881.218 23045882.123
+ 30.800 26.800
+ -19805451.274 7 -15432808.955 6 20713418.083 20713416.265 20713417.561
+ 46.500 41.200
+ -25126848.924 7 -19579354.817 7 20123498.508 20123495.280 20123497.452
+ 42.000 47.700
+ -4576794.443 4 -3566332.382 4 23851945.649 23851941.868 23851944.962
+ 27.100 26.200
+ -19826258.559 7 -15449029.292 7 20807296.111 20807294.214 20807295.037
+ 46.100 43.100
+ 06 1 2 2 39 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12870074.795 7 -10028618.774 6 21868014.668 21868012.314 21868013.740
+ 42.000 36.600
+ -2183459.687 2 -1701389.816 2 24393218.051 24393218.403 24393217.187
+ 17.800 16.100
+ -12875095.823 7 -10032539.010 6 21242045.190 21242042.363 21242044.356
+ 46.000 41.600
+ -1063975.182 3 -829070.349 24388669.704 24388667.579 24388668.654
+ 23.400 3.000
+ -321400.959 3 -250427.835 3 24440475.869 24440474.995 24440474.489
+ 23.800 23.400
+ -8634083.259 5 -6727854.431 4 23025014.790 23025014.066 23025014.773
+ 30.800 26.200
+ -19738427.435 7 -15380582.592 6 20726172.285 20726170.527 20726171.759
+ 46.500 41.400
+ -25133323.824 7 -19584400.195 7 20122266.447 20122263.167 20122265.344
+ 42.100 47.700
+ -4661609.554 4 -3632422.039 4 23835805.906 23835801.900 23835805.328
+ 28.400 24.900
+ -19888464.454 7 -15497501.411 7 20795458.585 20795456.861 20795457.526
+ 45.900 43.200
+ 06 1 2 2 40 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12791769.300 6 -9967601.508 6 21882915.253 21882913.245 21882914.666
+ 41.900 36.700
+ -2085062.157 3 -1624716.476 3 24411943.038 24411943.219 24411942.051
+ 18.600 19.900
+ -12926574.078 7 -10072651.928 6 21232249.235 21232246.242 21232248.332
+ 45.900 41.400
+ -1096224.841 3 -854199.920 2 24382532.343 24382530.778 24382531.706
+ 21.100 13.900
+ -229855.897 3 -179094.042 3 24457895.125 24457894.654 24457893.691
+ 18.600 22.600
+ -8743520.999 5 -6813130.567 4 23004189.485 23004189.343 23004189.304
+ 30.400 27.400
+ -19670944.142 7 -15327998.208 6 20739013.993 20739012.156 20739013.440
+ 46.500 41.200
+ -25139235.436 6 -19589006.645 7 20121141.280 20121138.247 20121140.325
+ 41.900 47.700
+ -4746342.210 4 -3698447.480 4 23819681.993 23819677.742 23819681.185
+ 28.400 24.200
+ -19950225.013 7 -15545626.517 7 20783706.017 20783704.057 20783704.957
+ 45.900 43.100
+ 06 1 2 2 40 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12713197.402 6 -9906376.651 6 21897867.179 21897865.063 21897866.402
+ 41.800 36.500
+ -1986643.468 3 -1548026.686 2 24430671.666 24430671.605 24430671.191
+ 21.100 13.900
+ -12977815.501 7 -10112580.304 6 21222498.338 21222495.360 21222497.464
+ 46.100 41.500
+ -1127945.291 3 -878917.145 1 24376496.611 24376494.246 24376495.590
+ 22.100 9.000
+ -138262.733 3 -107722.787 3 24475324.293 24475324.072 24475323.650
+ 22.100 18.600
+ -8852735.825 5 -6898232.989 4 22983407.439 22983406.259 22983406.623
+ 30.800 27.900
+ -19603004.069 7 -15275057.888 6 20751942.345 20751940.677 20751941.839
+ 46.500 41.300
+ -25144583.168 7 -19593173.709 7 20120123.813 20120120.591 20120122.838
+ 42.400 47.700
+ -4830991.996 4 -3764408.315 4 23803573.264 23803569.535 23803572.790
+ 28.600 26.500
+ -20011537.963 7 -15593402.835 7 20772038.514 20772036.747 20772037.395
+ 45.800 43.400
+ 06 1 2 2 41 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12634361.173 6 -9844945.822 6 21912869.048 21912867.063 21912868.345
+ 41.500 36.100
+ -1888206.461 3 -1471322.494 24449403.967 24449403.207 24449403.296
+ 19.300 3.000
+ -13028819.561 7 -10152323.723 6 21212792.515 21212789.576 21212791.624
+ 45.800 41.500
+ -1159135.724 3 -903221.431 1 24370561.255 24370559.143 24370560.314
+ 22.100 9.000
+ -46621.962 3 -36314.415 2 24492764.495 24492762.472 24492763.668
+ 23.800 17.000
+ -8961725.249 4 -6983159.784 4 22962668.339 22962666.220 22962666.684
+ 29.000 28.600
+ -19534609.804 7 -15221763.662 6 20764957.567 20764955.714 20764956.967
+ 46.500 41.200
+ -25149365.982 7 -19596900.575 7 20119213.926 20119210.427 20119212.928
+ 42.500 47.700
+ -4915558.172 4 -3830303.999 4 23787480.798 23787477.111 23787480.072
+ 29.200 27.100
+ -20072400.679 7 -15640828.317 7 20760456.566 20760454.898 20760455.495
+ 45.800 43.400
+ 06 1 2 2 41 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12555262.938 6 -9783310.824 6 21927921.104 21927918.725 21927920.359
+ 41.500 36.000
+ -1789753.796 3 -1394606.133 24468138.465 24468137.534 24468137.428
+ 20.500 3.000
+ -13079585.439 7 -10191881.548 6 21203131.997 21203129.042 21203131.206
+ 45.800 41.700
+ -1189795.496 4 -927112.152 2 24364727.136 24364724.808 24364726.127
+ 24.900 13.900
+ 45065.843 4 35130.650 3 24510213.092 24510210.672 24510211.596
+ 24.200 19.300
+ -9070485.628 5 -7067908.090 4 22941971.853 22941969.815 22941970.437
+ 31.300 29.000
+ -19465764.221 7 -15168117.754 6 20778058.350 20778056.533 20778057.834
+ 46.700 40.900
+ -25153582.550 7 -19600186.214 7 20118411.350 20118408.027 20118410.382
+ 42.500 47.700
+ -5000040.534 4 -3896134.362 4 23771404.173 23771400.869 23771403.561
+ 29.900 27.600
+ -20132811.021 7 -15687901.301 7 20748960.700 20748959.175 20748959.684
+ 45.700 43.400
+ 06 1 2 2 42 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12475905.117 6 -9721473.565 6 21943022.246 21943020.259 21943021.545
+ 41.300 36.400
+ -1691288.485 2 -1317879.909 1 24486875.031 24486875.225 24486874.162
+ 15.100 11.000
+ -13130112.601 7 -10231253.356 7 21193517.215 21193514.324 21193516.254
+ 46.000 42.100
+ -1219923.689 4 -950588.644 2 24358993.529 24358991.621 24358992.704
+ 26.200 15.100
+ 136800.291 3 106612.020 3 24527668.673 24527667.403 24527667.446
+ 23.400 19.900
+ -9179012.920 5 -7152474.791 4 22921319.072 22921317.579 22921318.099
+ 30.200 27.900
+ -19396469.947 7 -15114122.216 6 20791244.573 20791242.865 20791244.133
+ 46.600 41.100
+ -25157232.312 7 -19603030.184 7 20117716.811 20117713.528 20117715.866
+ 42.600 47.600
+ -5084438.163 5 -3961898.690 4 23755344.631 23755340.255 23755343.905
+ 30.400 28.600
+ -20192766.480 7 -15734619.834 7 20737551.739 20737550.059 20737550.678
+ 45.800 43.500
+ 06 1 2 2 42 30.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12396289.826 6 -9659435.678 6 21958172.430 21958170.398 21958171.743
+ 41.200 36.200
+ -1592813.131 2 -1241145.892 2 24505614.142 24505615.548 24505612.872
+ 13.900 12.600
+ -13180400.443 7 -10270438.683 7 21183947.559 21183944.732 21183946.723
+ 45.800 42.000
+ -1249519.608 4 -973650.417 2 24353361.748 24353359.209 24353360.808
+ 25.300 13.900
+ 228580.802 3 178129.262 2 24545132.820 24545132.262 24545133.034
+ 23.800 17.000
+ -9287303.883 5 -7236857.311 4 22900710.613 22900710.553 22900710.570
+ 30.600 29.500
+ -19326729.621 7 -15059779.101 6 20804516.013 20804513.853 20804515.355
+ 46.400 41.000
+ -25160314.384 7 -19605431.797 7 20117130.316 20117127.085 20117129.330
+ 42.500 47.600
+ -5168751.136 5 -4027597.069 4 23739300.243 23739295.938 23739299.673
+ 31.300 28.600
+ -20252264.609 7 -15780982.008 7 20726229.652 20726227.893 20726228.617
+ 46.000 43.600
+ 06 1 2 2 43 0.0000000 0 10G29G 6G18G 3G10G 9G26G21G22G15
+ -12316419.306 6 -9597198.906 5 21973371.253 21973369.313 21973370.555
+ 41.100 35.900
+ -1494330.497 3 -1164406.275 2 24524355.977 24524355.391 24524354.737
+ 18.600 13.900
+ -13230447.875 7 -10309436.675 7 21174423.984 21174420.946 21174423.125
+ 45.900 42.000
+ -1278582.359 4 -996296.695 2 24347831.059 24347828.880 24347829.998
+ 25.300 17.000
+ 320406.995 3 249682.163 2 24562606.543 24562605.347 24562606.230
+ 23.400 15.100
+ -9395355.169 5 -7321053.076 4 22880149.295 22880148.837 22880149.179
+ 31.100 27.900
+ -19256546.134 7 -15005090.669 6 20817871.184 20817869.368 20817870.711
+ 46.400 40.900
+ -25162828.126 7 -19607390.556 7 20116651.952 20116648.655 20116650.973
+ 42.200 47.600
+ -5252978.570 4 -4093228.800 4 23723271.861 23723268.214 23723271.237
+ 29.900 28.400
+ -20311303.023 7 -15826985.958 7 20714995.101 20714993.305 20714993.952
+ 46.000 43.500
+ 06 1 2 2 43 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -12236295.766 6 -9534764.978 5 21988618.205 21988616.472 21988617.690
+ 41.500 35.700
+ -13280254.582 7 -10348247.095 7 21164946.225 21164943.089 21164945.263
+ 46.000 42.100
+ -1307111.345 4 -1018527.078 3 24342402.244 24342400.466 24342401.356
+ 26.200 18.600
+ 412278.411 3 321270.270 2 24580090.698 24580088.120 24580089.416
+ 21.600 13.900
+ -9503163.014 5 -7405059.175 4 22859634.849 22859633.652 22859633.833
+ 31.000 28.600
+ -19185922.229 7 -14950059.058 6 20831310.446 20831308.666 20831309.888
+ 45.900 40.600
+ -25164772.829 7 -19608905.909 7 20116281.788 20116278.536 20116280.892
+ 42.100 47.600
+ -5337119.827 4 -4158793.384 4 23707259.666 23707256.296 23707259.329
+ 29.000 25.900
+ -20369879.357 7 -15872629.849 7 20703848.631 20703846.600 20703847.575
+ 46.400 43.500
+ 06 1 2 2 44 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -12155921.424 6 -9472135.620 5 22003913.148 22003910.975 22003912.384
+ 40.900 35.700
+ -13329819.459 7 -10386869.074 7 21155514.170 21155511.271 21155513.288
+ 45.800 42.300
+ -1335105.793 4 -1040340.965 2 24337074.860 24337073.134 24337074.044
+ 27.100 17.000
+ 504194.601 3 392893.195 2 24597581.969 24597579.934 24597580.345
+ 23.800 16.100
+ -9610723.857 5 -7488872.767 4 22839167.245 22839165.827 22839166.121
+ 32.300 28.100
+ -19114860.610 7 -14894686.367 6 20844833.094 20844831.268 20844832.572
+ 45.900 40.800
+ -25166147.038 7 -19609976.724 7 20116020.487 20116017.060 20116019.498
+ 42.200 47.500
+ -5421174.293 4 -4224290.354 4 23691265.305 23691260.893 23691264.393
+ 27.400 25.600
+ -20427991.335 7 -15917911.909 7 20692790.281 20692788.265 20692789.188
+ 46.500 43.600
+ 06 1 2 2 44 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -12075298.460 6 -9409312.535 5 22019255.212 22019253.223 22019254.496
+ 41.000 35.800
+ -13379141.975 7 -10425302.197 7 21146128.420 21146125.496 21146127.514
+ 45.900 42.400
+ -1362565.022 4 -1061737.748 3 24331849.914 24331848.408 24331848.929
+ 25.900 19.900
+ 596154.796 3 464550.480 2 24615079.404 24615078.754 24615078.757
+ 23.000 12.600
+ -9718034.749 5 -7572491.605 4 22818746.108 22818744.723 22818745.614
+ 32.400 27.600
+ -19043364.004 7 -14838974.725 6 20858438.285 20858436.571 20858437.875
+ 46.000 40.500
+ -25166950.193 7 -19610602.561 7 20115867.463 20115864.244 20115866.608
+ 42.300 47.600
+ -5505141.867 4 -4289719.598 4 23675286.779 23675282.670 23675286.212
+ 28.800 24.900
+ -20485636.614 7 -15962830.300 7 20681820.672 20681818.707 20681819.554
+ 46.400 43.800
+ 06 1 2 2 45 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11994429.432 6 -9346297.710 5 22034643.913 22034642.017 22034643.334
+ 40.900 35.700
+ -13428221.806 7 -10463546.219 7 21136789.074 21136785.814 21136788.079
+ 46.100 42.400
+ -1389488.324 4 -1082716.910 3 24326726.796 24326724.994 24326725.706
+ 27.100 22.600
+ 688158.731 4 536241.901 2 24632588.239 24632586.889 24632587.427
+ 24.600 12.600
+ -9825092.147 5 -7655912.939 4 22798374.312 22798372.275 22798373.397
+ 32.400 28.100
+ -18971435.211 7 -14782926.315 6 20872126.047 20872124.138 20872125.504
+ 45.700 40.400
+ -25167181.660 7 -19610782.927 7 20115823.486 20115820.222 20115822.511
+ 42.300 47.600
+ -5589021.763 4 -4355080.516 4 23659324.893 23659320.871 23659324.149
+ 29.200 25.600
+ -20542812.896 7 -16007383.244 7 20670940.222 20670938.476 20670939.154
+ 46.400 43.800
+ 06 1 2 2 45 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11913316.307 6 -9283092.676 5 22050079.399 22050077.353 22050078.593
+ 40.700 35.800
+ -13477058.052 7 -10501600.434 7 21127495.551 21127492.631 21127494.707
+ 45.900 42.400
+ -1415874.888 4 -1103277.877 4 24321704.993 24321704.075 24321704.146
+ 24.200 26.500
+ 780205.810 3 607966.920 2 24650105.340 24650103.081 24650103.399
+ 21.600 15.100
+ -9931893.001 5 -7739134.345 4 22778050.849 22778049.178 22778049.600
+ 32.100 29.000
+ -18899076.991 7 -14726543.289 6 20885895.274 20885893.479 20885894.824
+ 45.800 40.500
+ -25166840.792 7 -19610517.317 7 20115888.331 20115885.048 20115887.399
+ 42.300 47.400
+ -5672813.239 5 -4420372.533 4 23643380.283 23643376.041 23643379.619
+ 31.600 28.400
+ -20599517.861 7 -16051568.926 7 20660149.796 20660147.902 20660148.694
+ 46.600 43.900
+ 06 1 2 2 46 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11831961.284 6 -9219699.158 5 22065561.022 22065558.647 22065560.108
+ 40.400 35.400
+ -13525649.583 7 -10539463.962 7 21118249.091 21118246.034 21118248.147
+ 46.100 42.600
+ -1441724.225 4 -1123420.196 4 24316786.589 24316785.011 24316785.585
+ 26.200 26.500
+ 872295.447 3 679724.993 2 24667628.474 24667627.090 24667626.724
+ 19.900 17.000
+ -10038433.392 5 -7822152.804 4 22757776.709 22757775.020 22757775.655
+ 31.300 29.500
+ -18826292.056 7 -14669827.758 6 20899745.939 20899744.124 20899745.421
+ 45.900 40.400
+ -25165926.680 7 -19609805.022 7 20116062.352 20116058.957 20116061.401
+ 42.100 47.500
+ -5756515.990 5 -4485595.425 4 23627451.718 23627447.385 23627451.125
+ 31.600 27.900
+ -20655749.236 7 -16095385.579 7 20649449.438 20649447.282 20649448.298
+ 46.500 43.800
+ 06 1 2 2 46 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11750366.556 6 -9156118.849 5 22081087.745 22081085.626 22081087.077
+ 40.800 35.400
+ -13573995.974 7 -10577136.468 7 21109048.821 21109045.936 21109048.011
+ 46.000 42.500
+ -1467035.663 4 -1143143.360 4 24311969.450 24311967.880 24311968.614
+ 25.600 25.600
+ 964427.434 3 751516.140 2 24685160.695 24685159.068 24685159.202
+ 22.100 12.600
+ -10144709.879 5 -7904965.607 5 22737552.208 22737551.463 22737551.698
+ 32.400 30.400
+ -18753083.219 7 -14612781.912 6 20913677.109 20913675.156 20913676.557
+ 45.900 40.100
+ -25164438.599 7 -19608645.479 7 20116345.458 20116342.207 20116344.463
+ 42.300 47.500
+ -5840129.383 5 -4550748.677 4 23611541.070 23611536.724 23611540.445
+ 31.100 29.000
+ -20711504.731 7 -16138831.416 7 20638839.542 20638837.372 20638838.473
+ 46.700 43.900
+ 06 1 2 2 47 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11668534.457 6 -9092353.571 5 22096659.533 22096657.742 22096658.965
+ 40.300 35.100
+ -13622096.664 7 -10614617.523 7 21099895.815 21099892.707 21099894.870
+ 46.000 42.700
+ -1491808.505 4 -1162446.862 4 24307255.407 24307253.924 24307254.702
+ 27.900 26.200
+ 1056601.115 3 823339.804 2 24702700.883 24702699.772 24702699.944
+ 22.600 17.000
+ -10250718.840 5 -7987569.943 5 22717379.414 22717378.411 22717378.926
+ 32.100 30.200
+ -18679453.187 7 -14555407.860 6 20927688.390 20927686.491 20927687.888
+ 46.000 40.300
+ -25162375.450 7 -19607037.829 7 20116737.829 20116734.911 20116736.976
+ 42.000 47.600
+ -5923652.952 5 -4615831.939 4 23595646.684 23595642.729 23595646.230
+ 31.100 27.900
+ -20766782.018 7 -16181904.625 7 20628320.588 20628318.503 20628319.423
+ 46.500 44.200
+ 06 1 2 2 47 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11586467.167 6 -9028405.031 5 22112276.837 22112274.473 22112276.021
+ 40.300 34.700
+ -13669951.137 7 -10651906.718 7 21090789.136 21090786.329 21090788.369
+ 46.000 42.600
+ -1516042.426 4 -1181330.418 4 24302644.074 24302642.806 24302643.181
+ 27.400 26.800
+ 1148816.255 3 895195.724 2 24720249.495 24720247.939 24720247.816
+ 20.500 12.600
+ -10356456.837 5 -8069963.149 4 22697258.497 22697256.980 22697257.610
+ 33.500 29.900
+ -18605404.762 7 -14497707.786 6 20941779.275 20941777.467 20941778.752
+ 45.700 40.200
+ -25159737.124 7 -19604981.992 7 20117240.178 20117236.964 20117239.221
+ 42.100 47.600
+ -6007086.108 5 -4680844.767 4 23579769.696 23579765.729 23579769.021
+ 30.200 28.400
+ -20821578.747 7 -16224603.374 7 20617893.025 20617890.996 20617891.888
+ 46.400 44.100
+ 06 1 2 2 48 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11504166.794 6 -8964274.872 5 22127938.161 22127936.118 22127937.302
+ 40.200 35.100
+ -13717558.267 7 -10689003.179 7 21081729.887 21081727.036 21081729.039
+ 46.000 42.800
+ -1539736.769 4 -1199793.561 4 24298134.987 24298133.546 24298134.118
+ 27.400 26.500
+ 1241072.329 3 967083.571 2 24737804.430 24737803.327 24737803.101
+ 21.100 13.900
+ -10461920.766 5 -8152142.814 4 22677189.869 22677187.847 22677188.535
+ 32.300 29.700
+ -18530940.733 7 -14439683.864 6 20955949.325 20955947.544 20955948.844
+ 45.700 40.000
+ -25156523.048 7 -19602477.520 7 20117851.776 20117848.557 20117850.821
+ 42.200 47.600
+ -6090428.321 5 -4745786.730 4 23563910.500 23563906.297 23563910.088
+ 31.600 29.000
+ -20875892.635 7 -16266925.875 7 20607557.001 20607555.454 20607555.948
+ 46.100 44.000
+ 06 1 2 2 48 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11421635.649 6 -8899964.895 5 22143642.791 22143641.081 22143642.155
+ 40.100 35.100
+ -13764917.353 7 -10725906.359 7 21072717.789 21072714.648 21072716.889
+ 46.000 42.600
+ -1562891.173 4 -1217835.915 4 24293729.125 24293727.319 24293728.182
+ 27.600 24.900
+ 1333368.629 3 1039002.776 2 24755368.770 24755366.729 24755367.235
+ 20.500 17.800
+ -10567106.835 5 -8234105.957 4 22657172.834 22657171.267 22657171.967
+ 32.000 28.100
+ -18456063.825 7 -14381338.225 6 20970197.714 20970196.216 20970197.239
+ 45.500 40.100
+ -25152732.528 7 -19599523.867 7 20118573.238 20118569.816 20118572.181
+ 42.500 47.500
+ -6173679.000 5 -4810657.364 4 23548068.834 23548063.968 23548068.090
+ 31.600 27.400
+ -20929721.512 7 -16308870.454 7 20597314.022 20597312.197 20597312.904
+ 46.400 44.200
+ 06 1 2 2 49 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11338875.822 6 -8835476.714 5 22159392.015 22159389.714 22159391.196
+ 39.800 34.800
+ -13812027.573 7 -10762615.621 7 21063752.991 21063749.866 21063752.103
+ 46.100 42.600
+ -1585505.058 4 -1235457.107 4 24289425.366 24289423.861 24289424.299
+ 24.200 24.200
+ 1425704.750 3 1110952.955 3 24772939.751 24772938.721 24772938.175
+ 21.100 20.500
+ -10672011.628 5 -8315849.937 4 22637210.463 22637208.506 22637209.784
+ 33.800 28.400
+ -18380776.910 7 -14322673.097 6 20984524.386 20984522.887 20984523.982
+ 45.600 40.000
+ -25148364.589 7 -19596120.280 7 20119404.433 20119401.049 20119403.405
+ 42.400 47.400
+ -6256837.580 5 -4875456.241 4 23532243.429 23532239.645 23532242.825
+ 30.100 27.600
+ -20983063.130 7 -16350435.347 7 20587163.143 20587161.622 20587162.110
+ 46.400 44.300
+ 06 1 2 2 49 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11255889.465 6 -8770812.032 5 22175183.354 22175181.754 22175182.814
+ 40.000 35.300
+ -13858888.611 7 -10799130.717 7 21054835.387 21054832.651 21054834.626
+ 45.900 42.900
+ -1607578.028 3 -1252656.806 4 24285225.158 24285223.609 24285224.204
+ 22.600 25.300
+ 1518080.030 2 1182933.617 3 24790517.206 24790516.561 24790515.598
+ 13.900 19.900
+ -10776632.040 5 -8397372.313 4 22617302.261 22617300.144 22617300.886
+ 32.300 29.900
+ -18305082.629 7 -14263690.543 6 20998928.621 20998927.031 20998928.127
+ 45.600 40.100
+ -25143418.953 7 -19592266.539 7 20120345.558 20120342.144 20120344.531
+ 42.300 47.300
+ -6339903.434 4 -4940182.863 4 23516436.557 23516433.114 23516435.827
+ 29.900 27.400
+ -21035915.252 7 -16391618.817 7 20577105.812 20577104.140 20577104.733
+ 46.400 44.300
+ 06 1 2 2 50 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11172678.923 6 -8705972.650 5 22191018.076 22191016.260 22191017.375
+ 40.000 34.900
+ -13905499.707 7 -10835451.046 7 21045965.660 21045962.966 21045964.823
+ 45.900 43.100
+ -1629109.704 3 -1269434.727 4 24281127.919 24281126.494 24281126.952
+ 23.000 26.800
+ 1610494.204 3 1254944.617 1 24808103.486 24808101.624 24808102.327
+ 19.900 9.000
+ -10880963.867 5 -8478669.808 5 22597448.360 22597446.411 22597447.387
+ 34.300 30.100
+ -18228983.793 7 -14204392.744 6 21013409.950 21013408.197 21013409.375
+ 45.400 39.800
+ -25137895.025 7 -19587962.181 7 20121396.731 20121393.226 20121395.703
+ 42.400 47.300
+ -6422875.850 5 -5004836.685 4 23500647.628 23500643.638 23500647.058
+ 30.800 27.900
+ -21088275.619 7 -16432419.102 7 20567142.038 20567140.122 20567140.907
+ 46.400 44.100
+ 06 1 2 2 50 30.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11089246.332 6 -8640960.237 5 22206894.417 22206892.862 22206893.864
+ 40.200 34.600
+ -13951859.959 7 -10871575.914 7 21037143.730 21037140.827 21037142.762
+ 45.800 43.100
+ -1650099.477 3 -1285790.346 4 24277132.858 24277132.311 24277131.681
+ 23.000 29.000
+ 1702947.084 3 1326985.887 1 24825696.471 24825695.162 24825695.057
+ 19.300 6.500
+ -10985004.538 5 -8559740.442 5 22577649.744 22577648.293 22577649.025
+ 33.400 31.000
+ -18152483.194 7 -14144781.892 6 21027967.607 21027965.747 21027967.054
+ 45.600 40.000
+ -25131792.178 7 -19583206.717 7 20122558.023 20122554.562 20122556.915
+ 42.400 47.200
+ -6505754.685 5 -5069417.578 4 23484876.282 23484872.258 23484875.574
+ 32.000 28.400
+ -21140141.981 7 -16472834.444 7 20557272.148 20557270.306 20557271.055
+ 46.300 44.100
+ 06 1 2 2 51 0.0000000 0 9G29G18G 3G10G 9G26G21G22G15
+ -11005593.709 6 -8575776.376 5 22222813.273 22222811.314 22222812.653
+ 40.000 34.700
+ -13997968.282 7 -10907504.472 7 21028369.554 21028366.719 21028368.665
+ 46.100 43.300
+ -1670546.798 3 -1301723.343 4 24273242.730 24273241.010 24273241.772
+ 23.800 27.400
+ 1795438.053 3 1399056.752 2 24843297.596 24843295.936 24843295.854
+ 19.900 16.100
+ -11088750.398 5 -8640581.330 5 22557906.859 22557905.997 22557906.630
+ 34.300 31.100
+ -18075583.622 7 -14084860.149 6 21042600.925 21042599.138 21042600.517
+ 45.600 39.700
+ -25125109.962 7 -19577999.797 7 20123829.432 20123826.189 20123828.405
+ 42.400 47.100
+ -6588539.051 5 -5133924.866 4 23469122.894 23469119.210 23469122.430
+ 32.100 29.900
+ -21191511.979 7 -16512863.016 7 20547496.826 20547494.986 20547495.705
+ 46.400 44.400
+ 06 1 2 2 51 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10921723.378 6 -8510422.868 5 22238773.319 22238771.344 22238772.584
+ 39.700 34.600
+ -14043824.271 7 -10943236.408 7 21019643.366 21019640.564 21019642.594
+ 45.900 43.100
+ -1690451.552 4 -1317233.504 4 24269454.886 24269453.148 24269454.252
+ 24.600 26.500
+ -11192197.466 5 -8721189.403 5 22538222.269 22538220.745 22538221.352
+ 34.600 31.000
+ -17998287.947 7 -14024629.756 6 21057309.839 21057307.980 21057309.253
+ 45.300 39.600
+ -25117848.015 7 -19572341.139 7 20125211.269 20125207.976 20125210.277
+ 42.300 46.900
+ -6671228.557 5 -5198358.217 5 23453387.911 23453383.546 23453387.161
+ 31.800 30.400
+ -21242383.531 7 -16552503.180 7 20537816.317 20537814.633 20537815.251
+ 46.400 44.700
+ 06 1 2 2 52 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10837637.443 6 -8444901.360 5 22254774.537 22254772.585 22254773.626
+ 39.300 34.600
+ -14089427.480 7 -10978771.375 7 21010965.446 21010962.518 21010964.569
+ 45.900 43.300
+ -1709813.236 3 -1332320.521 4 24265770.159 24265769.052 24265769.232
+ 20.500 25.900
+ -11295342.881 5 -8801562.438 4 22518594.340 22518592.472 22518593.184
+ 34.000 29.700
+ -17920598.697 7 -13964092.680 6 21072093.422 21072091.669 21072092.976
+ 45.100 39.500
+ -25110005.672 7 -19566230.218 7 20126703.687 20126700.306 20126702.663
+ 42.300 46.900
+ -6753822.373 5 -5262717.022 5 23437670.456 23437666.688 23437669.909
+ 32.700 30.600
+ -21292754.403 7 -16591753.203 7 20528231.197 20528229.232 20528230.092
+ 46.700 44.500
+ 06 1 2 2 52 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10753337.852 6 -8379213.365 5 22270815.594 22270814.056 22270815.097
+ 39.300 34.700
+ -14134777.109 7 -11014108.745 7 21002335.700 21002332.719 21002334.831
+ 45.800 43.300
+ -1728631.395 3 -1346984.020 4 24262189.051 24262187.954 24262188.169
+ 21.100 26.200
+ -11398182.525 5 -8881697.206 5 22499023.633 22499022.982 22499023.387
+ 34.700 30.200
+ -17842518.901 7 -13903251.281 6 21086951.627 21086949.823 21086951.108
+ 45.100 39.400
+ -25101582.607 7 -19559666.795 7 20128306.708 20128303.261 20128305.694
+ 42.600 47.000
+ -6836320.032 5 -5327000.895 5 23421971.380 23421967.929 23421970.968
+ 31.600 30.800
+ -21342622.387 7 -16630611.372 7 20518741.604 20518739.657 20518740.447
+ 46.600 44.400
+ 06 1 2 2 53 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10668827.134 6 -8313360.865 5 22286897.968 22286896.074 22286897.112
+ 39.100 34.900
+ -14179871.835 7 -11049247.491 7 20993754.571 20993751.508 20993753.610
+ 45.800 43.300
+ -1746905.719 3 -1361223.726 4 24258712.192 24258710.444 24258710.965
+ 22.600 24.200
+ -11500713.412 5 -8961591.376 5 22479512.851 22479511.867 22479512.229
+ 35.100 30.800
+ -17764051.352 7 -13842107.731 6 21101883.302 21101881.677 21101882.884
+ 45.100 39.200
+ -25092578.361 7 -19552650.500 7 20130020.166 20130016.801 20130019.183
+ 42.600 47.000
+ -6918720.902 5 -5391209.348 5 23406291.580 23406287.609 23406290.869
+ 33.100 31.000
+ -21391985.268 7 -16669075.951 7 20509348.087 20509346.207 20509346.981
+ 46.600 44.600
+ 06 1 2 2 53 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10584107.300 6 -8247345.406 5 22303019.447 22303017.645 22303018.624
+ 38.700 34.500
+ -14224711.313 7 -11084187.341 7 20985221.840 20985218.899 20985221.009
+ 46.200 43.700
+ -1764635.928 3 -1375039.428 4 24255337.482 24255336.365 24255336.723
+ 18.600 25.900
+ -11602932.067 5 -9041242.245 5 22460061.370 22460060.497 22460060.635
+ 34.500 31.300
+ -17685198.652 7 -13780664.070 6 21116888.643 21116886.874 21116888.149
+ 44.800 39.100
+ -25082992.420 7 -19545180.938 7 20131844.213 20131840.910 20131843.261
+ 42.700 47.000
+ -7001024.397 5 -5455341.933 5 23390629.740 23390625.855 23390628.950
+ 32.000 30.400
+ -21440840.907 7 -16707145.278 7 20500051.045 20500049.389 20500049.997
+ 46.600 44.700
+ 06 1 2 2 54 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10499180.297 6 -8181168.530 5 22319180.267 22319178.355 22319179.693
+ 38.500 34.000
+ -14269294.967 7 -11118927.847 7 20976737.801 20976734.980 20976736.968
+ 45.900 43.700
+ -1781821.773 4 -1388430.980 4 24252067.517 24252065.949 24252066.651
+ 26.800 24.900
+ -11704835.266 5 -9120647.298 5 22440669.591 22440668.732 22440669.342
+ 34.800 31.600
+ -17605963.590 7 -13718922.462 6 21131966.673 21131964.827 21131966.126
+ 44.800 39.200
+ -25072824.227 7 -19537257.673 7 20133779.129 20133775.878 20133778.184
+ 42.700 47.000
+ -7083230.209 5 -5519398.392 4 23374986.438 23374982.638 23374985.859
+ 32.400 29.900
+ -21489187.257 7 -16744817.753 7 20490850.865 20490849.315 20490849.866
+ 46.600 44.800
+ 06 1 2 2 54 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10414048.392 6 -8114831.976 5 22335380.510 22335378.696 22335379.749
+ 38.900 33.900
+ -14313621.894 7 -11153468.305 7 20968302.774 20968299.744 20968301.880
+ 45.800 43.600
+ -1798463.080 3 -1401398.271 4 24248901.093 24248899.461 24248900.051
+ 23.800 25.900
+ -11806418.910 5 -9199803.353 5 22421338.791 22421337.901 22421338.411
+ 34.300 31.000
+ -17526349.047 7 -13656885.155 6 21147116.713 21147115.004 21147116.175
+ 44.400 39.000
+ -25062073.692 7 -19528880.631 7 20135824.899 20135821.659 20135823.883
+ 42.600 47.100
+ -7165337.514 5 -5583378.097 4 23359361.572 23359357.618 23359361.022
+ 32.600 28.600
+ -21537022.213 7 -16782091.740 7 20481748.414 20481746.551 20481747.341
+ 46.600 44.600
+ 06 1 2 2 55 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10328713.737 6 -8048337.443 5 22351618.898 22351617.509 22351618.377
+ 38.700 34.400
+ -14357691.480 7 -11187808.241 7 20959916.627 20959913.571 20959915.725
+ 45.900 43.600
+ -1814559.796 3 -1413941.135 3 24245837.749 24245835.937 24245836.861
+ 23.800 22.600
+ -11907680.467 5 -9278708.431 5 22402069.809 22402068.344 22402068.815
+ 34.100 31.000
+ -17446357.858 7 -13594554.356 6 21162338.613 21162336.747 21162338.022
+ 44.600 39.000
+ -25050740.703 7 -19520049.731 7 20137981.571 20137978.274 20137980.460
+ 42.700 47.000
+ -7247345.639 5 -5647280.533 4 23343755.911 23343751.518 23343755.212
+ 32.400 26.800
+ -21584343.597 7 -16818965.547 7 20472743.512 20472741.644 20472742.432
+ 46.700 44.800
+ 06 1 2 2 55 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10243178.358 6 -7981686.496 5 22367895.954 22367893.942 22367895.320
+ 38.900 33.600
+ -14401502.711 7 -11221946.862 7 20951579.466 20951576.715 20951578.576
+ 45.900 43.800
+ -1830111.509 3 -1426059.331 4 24242877.337 24242876.947 24242876.426
+ 22.100 24.900
+ -12008615.831 5 -9357359.345 5 22382863.133 22382861.509 22382861.871
+ 35.400 32.100
+ -17365992.505 7 -13531932.007 6 21177631.545 21177629.884 21177631.030
+ 44.600 38.800
+ -25038824.549 7 -19510764.418 7 20140249.216 20140245.875 20140248.093
+ 42.500 46.900
+ -7329254.143 5 -5711105.336 4 23328168.997 23328164.857 23328168.544
+ 32.400 27.100
+ -21631149.231 7 -16855437.466 7 20463836.647 20463834.950 20463835.569
+ 46.600 44.800
+ 06 1 2 2 56 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10157444.429 6 -7914880.843 5 22384210.425 22384208.858 22384209.836
+ 38.700 33.500
+ -14445055.056 7 -11255883.747 7 20943291.630 20943288.966 20943290.781
+ 45.900 44.000
+ -1845117.956 4 -1437752.633 4 24240023.039 24240021.518 24240022.287
+ 25.300 26.500
+ -12109222.102 5 -9435753.798 5 22363717.981 22363716.692 22363717.073
+ 35.400 33.000
+ -17285255.990 7 -13469020.435 6 21192995.411 21192993.604 21192994.810
+ 44.700 39.100
+ -25026325.076 7 -19501024.572 7 20142627.670 20142624.419 20142626.662
+ 42.700 46.900
+ -7411062.147 5 -5774851.846 4 23312601.534 23312597.550 23312601.126
+ 33.100 27.100
+ -21677437.037 7 -16891505.883 7 20455028.355 20455026.616 20455027.242
+ 46.500 44.900
+ 06 1 2 2 56 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -10071513.980 6 -7847922.048 5 22400562.539 22400560.574 22400561.868
+ 38.600 33.100
+ -14488347.550 7 -11289618.156 7 20935053.534 20935050.505 20935052.525
+ 45.800 44.000
+ -1859579.029 3 -1449021.015 3 24237270.525 24237269.234 24237269.631
+ 23.000 23.000
+ -12209495.350 5 -9513888.778 5 22344636.665 22344635.263 22344635.553
+ 34.900 32.300
+ -17204151.115 7 -13405821.833 6 21208429.289 21208427.307 21208428.619
+ 44.700 38.800
+ -25013241.980 7 -19490829.952 7 20145117.475 20145114.050 20145116.354
+ 42.800 47.000
+ -7492769.172 5 -5838519.645 5 23297053.750 23297049.661 23297052.834
+ 32.700 30.200
+ -21723204.875 7 -16927169.128 7 20446318.930 20446317.198 20446317.847
+ 46.500 44.700
+ 06 1 2 2 57 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9985389.372 6 -7780811.963 5 22416951.776 22416949.768 22416950.865
+ 38.100 33.600
+ -14531379.371 7 -11323149.446 7 20926864.699 20926861.829 20926863.832
+ 45.700 44.100
+ -1873494.637 3 -1459864.318 3 24234622.453 24234621.116 24234621.289
+ 22.600 23.000
+ -12309432.044 5 -9591761.503 5 22325618.936 22325617.596 22325618.214
+ 35.100 31.800
+ -17122680.615 7 -13342338.327 6 21223932.362 21223930.474 21223931.865
+ 44.900 38.400
+ -24999574.897 7 -19480180.279 7 20147718.185 20147714.715 20147717.150
+ 42.900 46.700
+ -7574374.694 5 -5902108.327 5 23281524.373 23281520.663 23281523.899
+ 33.400 30.800
+ -21768450.577 7 -16962425.522 7 20437709.106 20437707.234 20437707.998
+ 46.400 44.800
+ 06 1 2 2 57 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9899072.541 6 -7713552.095 5 22433377.154 22433375.616 22433376.509
+ 38.700 34.000
+ -14574150.017 7 -11356477.220 7 20918725.832 20918722.826 20918724.977
+ 45.900 44.100
+ -1886864.546 3 -1470282.451 3 24232078.245 24232076.800 24232077.251
+ 18.600 19.300
+ -12409029.107 6 -9669369.584 5 22306666.097 22306665.110 22306665.818
+ 36.500 32.700
+ -17040847.201 7 -13278572.028 6 21239504.795 21239502.903 21239504.287
+ 44.700 38.300
+ -24985323.336 7 -19469075.169 7 20150430.230 20150426.603 20150429.186
+ 42.900 46.500
+ -7655878.024 5 -5965617.408 5 23266014.867 23266010.943 23266014.316
+ 34.400 31.100
+ -21813172.301 7 -16997273.614 7 20429198.857 20429197.084 20429197.741
+ 46.700 45.100
+ 06 1 2 2 58 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9812565.415 6 -7646143.963 5 22449838.979 22449837.035 22449838.328
+ 38.300 33.000
+ -14616658.792 7 -11389600.937 7 20910636.627 20910633.568 20910635.790
+ 45.900 44.000
+ -1899688.790 4 -1480275.327 3 24229638.493 24229636.456 24229637.309
+ 24.200 22.600
+ -12508282.594 6 -9746709.924 5 22287779.394 22287777.602 22287778.277
+ 36.000 32.700
+ -16958653.788 7 -13214525.212 6 21255145.539 21255143.863 21255145.079
+ 44.300 38.400
+ -24970487.808 7 -19457515.020 7 20153253.243 20153249.664 20153252.253
+ 43.000 46.300
+ -7737278.543 5 -6029046.362 5 23250524.477 23250520.934 23250524.007
+ 32.800 31.000
+ -21857367.947 7 -17031711.779 7 20420788.551 20420786.922 20420787.518
+ 46.700 45.200
+ 06 1 2 2 58 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9725870.233 6 -7578589.275 5 22466336.703 22466334.733 22466335.961
+ 38.100 33.200
+ -14658904.616 7 -11422519.757 7 20902597.528 20902594.500 20902596.589
+ 45.700 44.000
+ -1911967.209 3 -1489842.933 3 24227301.487 24227299.718 24227300.802
+ 23.800 21.100
+ -12607189.555 6 -9823780.252 5 22268958.001 22268956.192 22268957.219
+ 36.500 32.600
+ -16876102.979 7 -13150199.911 6 21270854.297 21270852.799 21270853.903
+ 44.200 38.100
+ -24955067.822 7 -19445499.448 7 20156187.497 20156184.108 20156186.446
+ 42.700 46.400
+ -7818575.269 5 -6092394.438 5 23235054.306 23235050.404 23235053.687
+ 32.400 30.800
+ -21901035.448 7 -17065738.397 7 20412479.053 20412477.289 20412477.918
+ 46.500 45.300
+ 06 1 2 2 59 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9638989.097 6 -7510889.692 5 22482869.449 22482867.671 22482868.817
+ 38.100 33.000
+ -14700887.044 7 -11455233.337 7 20894608.523 20894605.663 20894607.666
+ 45.700 44.200
+ -1923699.773 3 -1498985.165 3 24225068.593 24225067.519 24225067.763
+ 23.800 23.400
+ -12705746.698 6 -9900577.978 5 22250203.203 22250201.459 22250202.105
+ 36.500 33.000
+ -16793197.692 7 -13085598.389 6 21286631.024 21286629.014 21286630.346
+ 43.900 38.000
+ -24939063.265 7 -19433028.365 7 20159233.098 20159229.745 20159232.027
+ 42.800 46.400
+ -7899768.344 5 -6155661.747 5 23219603.545 23219600.037 23219603.199
+ 33.100 30.400
+ -21944172.796 7 -17099351.914 7 20404270.298 20404268.427 20404269.186
+ 46.600 45.200
+ 06 1 2 2 59 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9551923.919 6 -7443046.694 5 22499437.589 22499435.411 22499436.868
+ 37.700 32.800
+ -14742604.876 7 -11487740.733 7 20886669.794 20886667.156 20886668.978
+ 45.800 44.500
+ -1934886.399 4 -1507702.084 4 24222940.472 24222939.033 24222939.357
+ 25.300 25.300
+ -12803950.821 5 -9977100.631 5 22231515.497 22231513.730 22231514.397
+ 35.800 32.700
+ -16709940.657 7 -13020722.780 6 21302474.339 21302472.356 21302473.699
+ 43.800 38.000
+ -24922473.648 7 -19420101.394 7 20162389.936 20162386.664 20162388.911
+ 43.100 46.500
+ -7980856.705 5 -6218847.470 5 23204173.672 23204169.265 23204173.000
+ 34.400 30.600
+ -21986778.006 7 -17132550.777 7 20396162.884 20396161.060 20396161.685
+ 46.500 45.400
+ 06 1 2 3 0 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9464676.806 6 -7375061.936 5 22516040.408 22516038.081 22516039.532
+ 37.500 32.600
+ -14784058.034 7 -11520041.893 7 20878781.721 20878778.720 20878780.757
+ 45.700 44.400
+ -1945527.370 4 -1515993.718 4 24220915.662 24220914.172 24220914.734
+ 25.300 25.900
+ -12901798.030 6 -10053345.178 5 22212895.616 22212893.978 22212894.751
+ 36.900 33.100
+ -16626334.538 7 -12955575.161 6 21318384.027 21318381.973 21318383.405
+ 44.000 37.800
+ -24905299.138 7 -19406718.661 7 20165658.164 20165654.791 20165657.213
+ 43.300 46.300
+ -8061839.936 5 -6281951.270 5 23188762.994 23188758.796 23188762.411
+ 34.800 30.800
+ -22028848.960 7 -17165333.337 7 20388156.862 20388155.180 20388155.796
+ 46.400 45.400
+ 06 1 2 3 0 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9377250.104 6 -7306937.238 5 22532676.862 22532674.776 22532676.175
+ 37.500 32.600
+ -14825245.506 7 -11552136.024 7 20870943.858 20870940.874 20870942.969
+ 45.600 44.200
+ -1955622.475 3 -1523860.037 4 24218993.979 24218992.926 24218993.409
+ 21.600 25.300
+ -12999285.217 6 -10129309.193 5 22194343.939 22194342.884 22194343.141
+ 36.000 33.000
+ -16542382.121 7 -12890157.691 6 21334359.651 21334357.656 21334358.953
+ 43.800 37.500
+ -24887539.517 7 -19392879.996 7 20169037.904 20169034.363 20169036.879
+ 43.300 46.200
+ -8142717.259 5 -6344972.543 5 23173372.094 23173368.458 23173371.585
+ 34.500 31.500
+ -22070383.713 7 -17197698.079 7 20380252.772 20380251.483 20380251.806
+ 46.500 45.600
+ 06 1 2 3 1 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9289645.495 6 -7238673.911 5 22549347.183 22549345.311 22549346.606
+ 37.700 32.300
+ -14866166.094 7 -11584022.197 7 20863157.034 20863154.035 20863156.070
+ 45.600 44.500
+ -1965171.733 3 -1531300.987 3 24217177.401 24217175.548 24217176.627
+ 22.100 22.600
+ -13096408.766 6 -10204989.847 5 22175862.293 22175860.885 22175861.507
+ 36.500 33.100
+ -16458086.300 7 -12824472.640 6 21350400.448 21350398.487 21350399.971
+ 43.900 37.300
+ -24869195.061 7 -19378585.617 7 20172528.530 20172525.261 20172527.584
+ 43.100 46.400
+ -8223487.887 5 -6407910.669 5 23158002.248 23157998.112 23158001.565
+ 34.100 30.600
+ -22111380.180 7 -17229643.374 7 20372451.493 20372450.016 20372450.526
+ 46.400 45.500
+ 06 1 2 3 1 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9201865.279 6 -7170273.743 5 22566051.703 22566049.291 22566050.878
+ 37.200 31.600
+ -14906818.960 7 -11615699.749 7 20855420.976 20855418.185 20855420.113
+ 45.600 44.700
+ -1974175.298 3 -1538316.783 3 24215462.613 24215462.660 24215461.755
+ 21.600 23.400
+ -13193165.260 6 -10280384.502 5 22157449.846 22157448.453 22157449.287
+ 36.700 32.100
+ -16373449.667 7 -12758522.013 6 21366506.204 21366504.194 21366505.725
+ 43.900 37.100
+ -24850265.243 7 -19363835.112 7 20176130.679 20176127.416 20176129.701
+ 43.100 46.200
+ -8304150.795 5 -6470764.870 5 23142652.641 23142648.652 23142652.070
+ 34.000 32.000
+ -22151836.442 7 -17261167.732 7 20364752.861 20364751.511 20364751.900
+ 46.500 45.600
+ 06 1 2 3 2 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9113911.359 6 -7101738.226 5 22582788.309 22582786.316 22582787.711
+ 37.600 31.600
+ -14947203.732 7 -11647168.400 7 20847736.084 20847733.176 20847735.075
+ 45.600 44.800
+ -1982633.408 3 -1544907.526 4 24213854.126 24213853.156 24213853.309
+ 23.400 24.900
+ -13289551.604 6 -10355490.726 5 22139107.931 22139106.440 22139107.450
+ 36.700 31.500
+ -16288475.032 7 -12692308.014 6 21382676.191 21382674.513 21382675.742
+ 43.600 36.900
+ -24830750.266 7 -19348628.635 7 20179844.289 20179841.030 20179843.260
+ 43.200 46.100
+ -8384706.007 5 -6533535.145 5 23127323.553 23127319.255 23127322.865
+ 34.100 31.100
+ -22191750.932 7 -17292269.926 7 20357157.661 20357155.950 20357156.591
+ 46.600 45.600
+ 06 1 2 3 2 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -9025785.860 6 -7033068.996 5 22599557.906 22599556.232 22599557.234
+ 36.800 32.100
+ -14987319.739 7 -11678427.620 7 20840102.300 20840099.322 20840101.339
+ 45.600 44.800
+ -1990546.244 3 -1551073.332 4 24212348.558 24212347.320 24212347.838
+ 23.800 26.500
+ -13385564.505 6 -10430305.953 5 22120837.882 22120836.135 22120836.859
+ 36.700 33.000
+ -16203165.162 7 -12625832.789 6 21398910.472 21398908.464 21398909.941
+ 43.800 37.100
+ -24810649.933 7 -19332966.041 7 20183669.466 20183666.045 20183668.331
+ 43.100 46.100
+ -8465152.602 5 -6596220.777 5 23112014.902 23112010.699 23112014.290
+ 33.500 30.400
+ -22231121.516 7 -17322948.300 7 20349665.708 20349663.874 20349664.539
+ 46.500 45.500
+ 06 1 2 3 3 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8937490.715 6 -6964267.600 5 22616360.102 22616358.318 22616359.520
+ 37.000 32.100
+ -15027166.315 7 -11709476.900 7 20832519.879 20832516.786 20832518.886
+ 45.400 44.800
+ -1997913.520 3 -1556814.083 4 24210945.955 24210945.703 24210945.252
+ 23.000 25.900
+ -13481200.146 6 -10504827.204 5 22102638.229 22102637.356 22102638.010
+ 36.800 33.600
+ -16117522.966 7 -12559098.614 6 21415207.914 21415205.737 21415207.228
+ 43.700 37.500
+ -24789964.247 7 -19316847.330 7 20187605.525 20187602.341 20187604.591
+ 42.900 46.000
+ -8545490.014 6 -6658821.346 5 23096728.008 23096723.191 23096727.278
+ 36.100 32.000
+ -22269946.192 7 -17353201.291 7 20342277.637 20342275.748 20342276.511
+ 46.400 45.300
+ 06 1 2 3 3 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8849027.989 6 -6895335.612 5 22633193.612 22633192.398 22633193.160
+ 36.900 32.600
+ -15066741.957 7 -11740315.058 7 20824988.467 20824985.791 20824987.691
+ 45.500 45.000
+ -2004735.598 3 -1562129.971 3 24209647.960 24209646.536 24209646.591
+ 21.100 22.600
+ -13576455.339 6 -10579051.994 5 22084512.770 22084510.777 22084511.558
+ 36.500 33.900
+ -16031550.967 7 -12492107.453 6 21431567.858 21431565.594 21431567.187
+ 43.400 36.900
+ -24768693.262 7 -19300272.538 7 20191653.429 20191650.064 20191652.391
+ 43.000 45.700
+ -8625717.542 5 -6721336.301 5 23081460.650 23081456.197 23081459.958
+ 35.500 31.100
+ -22308223.039 7 -17383027.404 7 20334993.859 20334991.865 20334992.715
+ 46.600 45.300
+ 06 1 2 3 4 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8760399.568 6 -6826274.505 5 22650060.327 22650057.362 22650059.310
+ 37.300 31.300
+ -15106046.040 7 -11770941.619 7 20817509.284 20817506.409 20817508.453
+ 45.600 45.000
+ -2011012.398 3 -1567020.954 3 24208454.188 24208452.327 24208453.338
+ 22.100 23.000
+ -13671326.216 6 -10652977.326 5 22066459.693 22066457.434 22066458.547
+ 37.700 33.800
+ -15945252.063 7 -12424861.557 6 21447989.511 21447987.790 21447989.069
+ 43.500 37.000
+ -24746837.065 7 -19283241.742 7 20195812.423 20195809.185 20195811.376
+ 43.000 45.900
+ -8705834.255 5 -6783764.901 5 23066214.299 23066210.742 23066213.908
+ 34.900 32.600
+ -22345950.326 7 -17412425.287 7 20327814.596 20327812.658 20327813.530
+ 46.800 45.400
+ 06 1 2 3 4 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8671607.595 6 -6757085.958 5 22666956.253 22666953.855 22666955.445
+ 36.700 30.800
+ -15145078.345 7 -11801356.400 7 20810081.741 20810078.801 20810080.795
+ 45.500 45.000
+ -2016744.353 3 -1571487.455 3 24207362.707 24207361.436 24207362.020
+ 22.100 19.900
+ -13765810.393 6 -10726601.322 5 22048478.768 22048477.586 22048478.239
+ 37.200 33.900
+ -15858628.775 7 -12357362.887 6 21464473.397 21464471.631 21464472.982
+ 43.600 37.100
+ -24724396.215 7 -19265755.370 7 20200082.646 20200079.477 20200081.650
+ 43.100 45.600
+ -8785840.039 5 -6846107.040 5 23050990.231 23050986.301 23050989.514
+ 34.800 32.400
+ -22383126.145 7 -17441393.456 7 20320740.178 20320738.483 20320739.110
+ 46.600 45.600
+ 06 1 2 3 5 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8582654.091 6 -6687771.536 5 22683883.485 22683881.575 22683882.666
+ 36.600 31.300
+ -15183837.748 7 -11831558.528 7 20802705.888 20802703.166 20802705.049
+ 45.400 45.000
+ -2021931.758 3 -1575529.581 3 24206376.644 24206374.329 24206375.494
+ 22.100 23.400
+ -13859904.092 6 -10799921.058 5 22030574.391 22030572.223 22030572.937
+ 37.000 33.900
+ -15771684.043 7 -12289613.745 6 21481018.616 21481016.802 21481018.052
+ 43.200 36.800
+ -24701370.492 7 -19247813.250 7 20204464.202 20204461.088 20204463.257
+ 43.000 45.400
+ -8865733.709 5 -6908361.831 5 23035786.739 23035782.636 23035786.160
+ 34.600 32.400
+ -22419748.581 7 -17469930.416 7 20313771.109 20313769.488 20313770.049
+ 46.600 45.700
+ 06 1 2 3 5 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8493541.056 6 -6618332.816 5 22700840.888 22700839.126 22700840.181
+ 36.400 31.500
+ -15222323.679 7 -11861547.562 7 20795382.414 20795379.558 20795381.526
+ 45.500 45.200
+ -2026574.954 3 -1579147.636 3 24205492.086 24205491.324 24205491.237
+ 22.600 23.000
+ -13953604.104 6 -10872934.030 5 22012742.054 22012741.933 22012742.206
+ 37.800 34.600
+ -15684420.610 7 -12221616.268 6 21497624.191 21497622.256 21497623.672
+ 43.100 36.900
+ -24677759.747 7 -19229415.270 7 20208957.125 20208954.142 20208956.226
+ 43.000 45.500
+ -8945514.830 5 -6970528.932 5 23020604.547 23020600.872 23020604.019
+ 34.400 31.800
+ -22455815.881 7 -17498034.803 7 20306907.987 20306905.937 20306906.828
+ 46.500 45.600
+ 06 1 2 3 6 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8404270.401 6 -6548771.270 5 22717828.642 22717826.726 22717828.037
+ 36.600 31.000
+ -15260535.100 7 -11891322.694 7 20788110.981 20788108.092 20788110.052
+ 45.500 45.200
+ -2030674.104 3 -1582341.811 3 24204712.182 24204710.679 24204711.431
+ 23.000 19.900
+ -14046906.997 6 -10945637.555 5 21994988.694 21994986.907 21994987.565
+ 38.200 34.800
+ -15596841.063 7 -12153372.465 6 21514289.923 21514288.220 21514289.482
+ 42.900 36.700
+ -24653564.512 7 -19210561.844 7 20213561.527 20213558.390 20213560.527
+ 43.100 45.400
+ -9025182.720 5 -7032607.793 5 23005444.210 23005440.407 23005443.797
+ 34.800 31.000
+ -22491326.029 7 -17525705.041 7 20300150.564 20300148.598 20300149.407
+ 46.600 45.500
+ 06 1 2 3 6 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8314844.006 6 -6479088.364 5 22734845.843 22734843.875 22734845.130
+ 36.000 30.600
+ -15298471.164 7 -11920883.261 7 20780891.970 20780889.099 20780891.082
+ 45.200 45.200
+ -2034229.560 4 -1585112.275 3 24204036.338 24204034.273 24204035.510
+ 26.200 19.900
+ -14139809.257 6 -11018028.905 5 21977309.595 21977307.990 21977308.720
+ 38.300 34.700
+ -15508948.167 7 -12084884.495 6 21531015.614 21531013.598 21531014.945
+ 42.600 36.100
+ -24628784.835 7 -19191253.005 7 20218277.087 20218273.805 20218276.001
+ 43.100 45.400
+ -9104736.755 5 -7094597.948 5 22990306.038 22990301.960 22990305.469
+ 35.700 31.800
+ -22526277.198 7 -17552939.717 7 20293499.408 20293497.555 20293498.337
+ 46.700 45.500
+ 06 1 2 3 7 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8225263.974 5 -6409285.741 5 22751892.216 22751890.486 22751891.691
+ 35.800 30.600
+ -15336131.360 7 -11950228.867 7 20773725.616 20773722.651 20773724.630
+ 45.500 45.300
+ -2037241.450 3 -1587459.180 3 24203462.613 24203460.506 24203461.535
+ 22.600 20.500
+ -14232307.589 6 -11090105.495 5 21959707.061 21959706.057 21959706.617
+ 38.100 34.700
+ -15420744.709 7 -12016154.529 6 21547799.926 21547798.296 21547799.504
+ 42.700 36.500
+ -24603420.677 7 -19171488.725 7 20223103.448 20223100.466 20223102.501
+ 43.200 45.300
+ -9184176.175 5 -7156498.782 5 22975189.125 22975185.352 22975188.389
+ 34.900 32.300
+ -22560667.827 7 -17579737.609 7 20286955.049 20286953.265 20286954.051
+ 46.700 45.400
+ 06 1 2 3 7 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8135532.188 6 -6339364.874 4 22768967.913 22768965.483 22768967.153
+ 36.100 29.900
+ -15373514.556 7 -11979358.624 7 20766611.743 20766608.809 20766610.842
+ 45.200 45.400
+ -2039710.208 4 -1589382.851 3 24202992.926 24202991.006 24202992.398
+ 24.600 22.100
+ -14324398.999 6 -11161865.015 5 21942183.075 21942181.770 21942182.171
+ 38.200 34.800
+ -15332233.301 7 -11947184.602 6 21564643.101 21564641.359 21564642.576
+ 42.500 36.000
+ -24577472.506 7 -19151269.374 7 20228041.494 20228038.194 20228040.458
+ 43.300 45.300
+ -9263500.165 5 -7218309.665 5 22960094.191 22960090.542 22960093.569
+ 34.900 33.000
+ -22594496.211 7 -17606097.389 7 20280517.925 20280516.009 20280516.880
+ 46.800 45.700
+ 06 1 2 3 8 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -8045650.736 5 -6269327.377 5 22786071.714 22786069.487 22786070.893
+ 35.500 30.400
+ -15410620.020 7 -12008271.971 7 20759550.689 20759547.909 20759549.847
+ 45.200 45.500
+ -2041636.218 4 -1590883.634 3 24202626.791 24202625.085 24202625.912
+ 24.900 22.600
+ -14416079.735 6 -11233304.514 5 21924736.048 21924735.612 21924735.901
+ 38.100 35.100
+ -15243416.684 7 -11877976.850 6 21581544.388 21581542.493 21581543.849
+ 42.400 36.100
+ -24550940.694 7 -19130595.238 7 20233090.287 20233086.903 20233089.332
+ 43.400 45.000
+ -9342708.022 5 -7280030.061 5 22945021.111 22945017.512 22945020.741
+ 35.800 33.200
+ -22627760.538 7 -17632017.642 7 20274187.919 20274185.926 20274186.743
+ 46.800 45.600
+ 06 1 2 3 8 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7955621.397 6 -6199174.643 4 22803203.656 22803201.605 22803203.193
+ 36.000 29.900
+ -15447446.846 7 -12036968.197 7 20752542.800 20752540.031 20752542.021
+ 45.300 45.600
+ -2043019.927 3 -1591961.880 3 24202362.690 24202361.398 24202361.988
+ 22.100 21.600
+ -14507346.912 6 -11304421.778 5 21907369.257 21907367.583 21907368.076
+ 37.800 34.300
+ -15154297.597 7 -11808533.402 6 21598503.106 21598501.436 21598502.595
+ 42.300 36.300
+ -24523825.315 7 -19109466.377 7 20238250.339 20238246.818 20238249.233
+ 43.400 44.900
+ -9421799.246 5 -7341659.579 5 22929970.869 22929967.319 22929970.337
+ 35.600 34.000
+ -22660459.196 7 -17657497.112 7 20267965.372 20267963.630 20267964.319
+ 46.400 45.600
+ 06 1 2 3 9 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7865446.196 5 -6128908.256 5 22820363.656 22820361.424 22820362.822
+ 35.400 30.100
+ -15483994.626 7 -12065446.983 7 20745587.904 20745585.170 20745587.140
+ 45.300 45.500
+ -2043861.904 3 -1592617.945 3 24202201.941 24202201.047 24202200.774
+ 21.100 19.300
+ -14598197.140 6 -11375214.138 5 21890080.460 21890079.499 21890080.231
+ 38.600 34.500
+ -15064878.767 7 -11738856.390 5 21615519.043 21615517.124 21615518.459
+ 42.200 35.900
+ -24496126.891 7 -19087883.192 7 20243521.104 20243517.744 20243520.081
+ 43.700 44.900
+ -9500773.226 5 -7403197.711 5 22914942.834 22914938.887 22914942.080
+ 35.600 33.500
+ -22692590.287 7 -17682534.324 7 20261850.999 20261849.228 20261849.887
+ 46.300 45.500
+ 06 1 2 3 9 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7775127.049 5 -6058529.704 5 22837550.503 22837548.709 22837549.920
+ 35.100 30.200
+ -15520262.523 7 -12093707.682 7 20738686.737 20738683.609 20738685.738
+ 45.300 45.600
+ -2044162.349 3 -1592852.050 3 24202145.747 24202144.206 24202144.674
+ 23.000 23.800
+ -14688627.076 6 -11445679.006 5 21872873.397 21872871.293 21872872.089
+ 38.200 34.800
+ -14975162.885 7 -11668947.915 6 21632591.458 21632589.722 21632590.822
+ 42.100 36.100
+ -24467845.397 7 -19065845.670 7 20248902.747 20248899.521 20248901.867
+ 43.800 44.800
+ -9579628.798 6 -7464643.606 5 22899937.310 22899933.003 22899936.628
+ 36.100 32.100
+ -22724152.191 7 -17707128.014 7 20255844.945 20255843.239 20255843.850
+ 46.400 45.600
+ 06 1 2 3 10 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7684665.755 5 -5988040.391 5 22854764.338 22854762.645 22854764.013
+ 35.300 30.100
+ -15556249.631 7 -12121749.583 7 20731838.440 20731835.510 20731837.582
+ 45.300 45.700
+ -2043921.679 4 -1592664.509 3 24202191.730 24202189.825 24202190.600
+ 24.600 20.500
+ -14778633.680 6 -11515813.992 5 21855744.646 21855743.608 21855744.292
+ 38.800 35.100
+ -14885152.621 7 -11598810.045 5 21649719.749 21649717.934 21649719.233
+ 42.200 35.800
+ -24438981.121 7 -19043354.029 7 20254395.403 20254392.177 20254394.579
+ 43.900 44.700
+ -9658365.534 6 -7525996.904 5 22884954.122 22884949.651 22884953.398
+ 36.800 31.300
+ -22755143.130 7 -17731276.797 7 20249947.580 20249945.858 20249946.473
+ 46.300 45.600
+ 06 1 2 3 10 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7594064.399 5 -5917441.932 4 22872006.048 22872003.580 22872005.514
+ 35.500 29.500
+ -15591954.988 7 -12149571.938 7 20725043.869 20725041.018 20725043.032
+ 45.300 45.700
+ -2043140.511 3 -1592055.798 2 24202339.912 24202337.777 24202338.890
+ 23.000 17.800
+ -14868213.421 6 -11585616.355 5 21838698.513 21838697.144 21838697.743
+ 38.800 35.900
+ -14794850.719 6 -11528444.927 5 21666903.909 21666901.833 21666903.231
+ 41.900 35.900
+ -24409534.517 7 -19020408.626 7 20259999.165 20259995.728 20259998.140
+ 43.800 44.800
+ -9736982.618 6 -7587256.969 5 22869993.767 22869989.313 22869992.948
+ 36.300 32.000
+ -22785561.584 7 -17754979.484 7 20244159.205 20244157.434 20244158.153
+ 46.600 45.800
+ 06 1 2 3 11 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7503325.021 5 -5846735.921 5 22889273.179 22889271.008 22889272.148
+ 34.700 30.600
+ -15627377.648 7 -12177174.010 7 20718303.309 20718300.273 20718302.360
+ 44.900 45.800
+ -2041819.429 4 -1591026.403 3 24202591.690 24202589.579 24202590.729
+ 24.600 19.900
+ -14957363.082 6 -11655083.606 5 21821734.339 21821732.348 21821733.213
+ 38.900 35.500
+ -14704259.752 6 -11457854.564 5 21684142.561 21684140.745 21684142.004
+ 41.800 35.900
+ -24379506.229 7 -18997009.965 7 20265713.325 20265710.006 20265712.361
+ 43.900 44.700
+ -9815479.204 5 -7648423.131 5 22855055.754 22855052.171 22855055.257
+ 35.700 32.700
+ -22815405.606 7 -17778234.565 7 20238480.253 20238478.348 20238479.106
+ 46.600 45.800
+ 06 1 2 3 11 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7412449.130 5 -5775923.556 5 22906565.954 22906564.532 22906565.197
+ 34.400 31.600
+ -15662517.158 7 -12204555.443 7 20711616.219 20711613.518 20711615.380
+ 45.100 45.900
+ -2039958.749 3 -1589576.444 3 24202945.511 24202944.184 24202944.795
+ 22.600 23.400
+ -15046079.401 6 -11724213.189 5 21804851.783 21804850.144 21804851.019
+ 39.200 34.900
+ -14613382.447 6 -11387041.082 5 21701435.780 21701434.203 21701435.286
+ 41.300 35.700
+ -24348896.465 7 -18973158.203 7 20271538.103 20271534.810 20271537.136
+ 43.900 44.600
+ -9893855.024 6 -7709495.184 5 22840142.044 22840137.501 22840141.191
+ 36.600 33.100
+ -22844673.670 7 -17801040.845 7 20232910.415 20232908.829 20232909.403
+ 46.500 45.800
+ 06 1 2 3 12 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7321439.018 5 -5705006.593 4 22923884.769 22923882.462 22923884.049
+ 34.300 29.900
+ -15697372.518 7 -12231715.459 7 20704983.534 20704980.732 20704982.637
+ 44.900 45.900
+ -2037559.101 3 -1587706.604 3 24203402.218 24203400.643 24203401.115
+ 22.600 23.800
+ -15134358.743 6 -11793002.283 5 21788053.283 21788051.237 21788052.175
+ 39.700 35.600
+ -14522221.489 6 -11316006.579 5 21718783.310 21718781.598 21718782.673
+ 41.300 35.600
+ -24317705.444 7 -18948853.517 7 20277473.499 20277470.180 20277472.556
+ 43.600 44.400
+ -9972108.927 6 -7770472.239 5 22825250.108 22825246.354 22825249.748
+ 36.300 33.000
+ -22873364.425 7 -17823397.278 7 20227450.985 20227449.168 20227449.922
+ 46.600 45.800
+ 06 1 2 3 12 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7230296.280 5 -5633986.269 5 22941228.702 22941226.937 22941227.885
+ 34.600 31.000
+ -15731942.876 7 -12258653.400 7 20698405.108 20698402.166 20698404.218
+ 45.100 46.000
+ -2034620.931 4 -1585417.133 3 24203961.455 24203959.768 24203960.325
+ 24.900 22.600
+ -15222198.606 6 -11861448.910 5 21771337.242 21771335.933 21771336.623
+ 39.800 35.700
+ -14430779.540 6 -11244753.112 5 21736184.223 21736182.309 21736183.551
+ 41.100 35.100
+ -24285933.739 7 -18924096.347 7 20283519.569 20283516.088 20283518.508
+ 43.800 44.300
+ -10050240.314 5 -7831353.829 5 22810381.943 22810378.273 22810381.519
+ 35.900 33.200
+ -22901476.118 7 -17845302.491 7 20222101.498 20222099.642 20222100.376
+ 46.500 45.700
+ 06 1 2 3 13 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7139022.901 5 -5562864.165 5 22958597.171 22958595.469 22958596.484
+ 33.900 30.100
+ -15766227.617 7 -12285368.781 7 20691880.774 20691877.983 20691879.984
+ 45.100 45.900
+ -2031145.153 3 -1582708.710 3 24204622.212 24204620.815 24204621.682
+ 22.100 21.100
+ -15309595.274 6 -11929550.189 5 21754706.233 21754705.024 21754705.532
+ 39.800 35.900
+ -14339059.316 6 -11173282.808 5 21753637.943 21753636.082 21753637.261
+ 41.100 34.800
+ -24253582.078 7 -18898887.264 7 20289675.677 20289672.436 20289674.744
+ 43.900 44.300
+ -10128248.146 6 -7892139.130 5 22795537.976 22795534.221 22795537.468
+ 36.400 34.100
+ -22929007.226 7 -17866755.304 7 20216862.472 20216860.537 20216861.413
+ 46.400 45.600
+ 06 1 2 3 13 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -7047620.794 5 -5491641.757 4 22975989.710 22975988.606 22975989.251
+ 33.800 29.000
+ -15800225.859 7 -12311860.917 7 20685411.176 20685408.368 20685410.334
+ 45.000 46.000
+ -2027132.289 3 -1579581.828 4 24205386.794 24205384.784 24205385.414
+ 23.800 24.600
+ -15396545.846 6 -11997303.866 5 21738160.255 21738158.654 21738159.398
+ 39.500 35.900
+ -14247063.363 6 -11101597.647 5 21771143.967 21771142.305 21771143.548
+ 41.200 34.900
+ -24220650.956 7 -18873226.650 7 20295942.440 20295939.079 20295941.392
+ 44.000 44.200
+ -10206132.335 6 -7952828.094 5 22780717.374 22780713.412 22780716.773
+ 37.700 34.500
+ -22955956.131 7 -17887754.449 7 20211734.197 20211732.386 20211733.128
+ 46.200 45.700
+ 06 1 2 3 14 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6956091.830 5 -5420320.475 4 22993407.932 22993406.325 22993407.253
+ 34.500 29.700
+ -15833936.722 7 -12338129.119 7 20678996.405 20678993.444 20678995.523
+ 45.100 46.100
+ -2022582.968 4 -1576036.903 3 24206252.243 24206250.617 24206251.255
+ 24.600 23.400
+ -15483046.846 6 -12064707.227 6 21721699.795 21721698.043 21721698.789
+ 40.100 36.200
+ -14154794.292 6 -11029699.679 5 21788702.519 21788700.590 21788701.856
+ 41.000 35.300
+ -24187140.650 7 -18847114.733 7 20302319.087 20302315.917 20302318.099
+ 43.800 44.200
+ -10283891.923 6 -8013419.970 5 22765920.257 22765916.094 22765919.676
+ 37.900 33.800
+ -22982321.441 7 -17908298.847 7 20206716.972 20206715.229 20206715.946
+ 46.200 45.600
+ 06 1 2 3 14 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6864437.858 5 -5348901.807 4 23010848.921 23010847.494 23010848.257
+ 33.800 29.700
+ -15867359.486 7 -12364172.830 7 20672636.054 20672633.313 20672635.159
+ 44.900 46.100
+ -2017497.793 3 -1572074.405 3 24207220.113 24207217.853 24207219.273
+ 23.000 21.600
+ -15569095.619 6 -12131758.202 6 21705324.845 21705323.603 21705324.231
+ 40.400 36.300
+ -14062254.971 6 -10957591.116 5 21806311.831 21806310.180 21806311.360
+ 40.900 34.700
+ -24153051.415 7 -18820551.697 7 20308805.941 20308802.841 20308805.015
+ 43.800 44.100
+ -10361525.700 6 -8073913.812 5 22751147.341 22751142.695 22751146.592
+ 38.100 33.800
+ -23008101.512 7 -17928387.212 7 20201811.043 20201809.342 20201810.035
+ 46.100 45.600
+ 06 1 2 3 15 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6772660.724 5 -5277387.180 4 23028313.185 23028312.012 23028312.542
+ 33.500 29.900
+ -15900493.267 7 -12389991.361 7 20666331.043 20666328.083 20666330.100
+ 44.900 46.200
+ -2011877.219 3 -1567694.716 3 24208288.345 24208287.721 24208287.641
+ 20.500 23.000
+ -15654688.163 6 -12198453.659 6 21689037.589 21689035.849 21689036.612
+ 39.900 36.500
+ -13969447.927 6 -10885273.935 5 21823972.516 21823970.917 21823972.071
+ 40.900 34.800
+ -24118384.306 7 -18793538.370 7 20315403.068 20315399.799 20315401.952
+ 44.000 44.000
+ -10439033.046 6 -8134309.148 5 22736397.725 22736393.810 22736397.179
+ 37.700 34.500
+ -23033294.740 7 -17948018.299 7 20197016.998 20197015.234 20197015.915
+ 46.100 45.600
+ 06 1 2 3 15 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6680762.035 5 -5205777.804 4 23045801.708 23045799.355 23045800.935
+ 33.900 29.500
+ -15933337.066 7 -12415583.930 7 20660081.073 20660078.096 20660080.128
+ 45.000 46.100
+ -2005722.012 3 -1562898.478 3 24209460.736 24209459.018 24209459.585
+ 23.000 21.100
+ -15739821.980 6 -12264791.687 6 21672836.600 21672835.403 21672835.999
+ 40.100 36.100
+ -13876375.695 6 -10812750.130 5 21841683.695 21841681.902 21841683.223
+ 40.800 34.900
+ -24083139.933 7 -18766075.223 7 20322109.850 20322106.674 20322108.802
+ 44.100 44.000
+ -10516413.523 6 -8194605.603 5 22721673.033 22721668.749 22721672.222
+ 37.100 34.300
+ -23057899.729 7 -17967191.015 7 20192334.739 20192333.127 20192333.738
+ 45.900 45.700
+ 06 1 2 3 16 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6588743.980 5 -5134075.421 4 23063311.452 23063309.991 23063310.744
+ 33.100 28.100
+ -15965890.017 7 -12440949.863 7 20653886.437 20653883.505 20653885.548
+ 45.200 46.400
+ -1999032.981 3 -1557686.237 3 24210733.400 24210731.629 24210732.197
+ 23.800 19.900
+ -15824493.671 6 -12330769.598 6 21656724.851 21656722.953 21656723.689
+ 40.500 36.300
+ -13783040.854 6 -10740021.677 5 21859444.574 21859442.877 21859444.264
+ 40.700 34.600
+ -24047318.797 7 -18738162.657 7 20328926.440 20328923.161 20328925.461
+ 44.200 43.800
+ -10593666.309 6 -8254802.562 5 22706972.285 22706967.481 22706971.644
+ 37.800 33.000
+ -23081915.115 7 -17985904.301 7 20187764.786 20187763.113 20187763.771
+ 46.100 45.700
+ 06 1 2 3 16 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6496608.057 5 -5062281.232 4 23080844.498 23080842.926 23080843.679
+ 33.200 28.100
+ -15998151.630 7 -12466088.782 7 20647747.393 20647744.321 20647746.558
+ 45.400 46.300
+ -1991810.997 3 -1552058.703 3 24212107.377 24212105.796 24212106.293
+ 23.400 21.100
+ -15908699.923 6 -12396384.852 6 21640700.713 21640698.876 21640699.786
+ 41.200 36.100
+ -13689446.241 6 -10667090.816 5 21877255.126 21877253.479 21877254.696
+ 40.700 34.400
+ -24010921.424 7 -18709801.076 7 20335852.460 20335849.279 20335851.594
+ 44.300 43.600
+ -10670790.524 6 -8314899.353 5 22692295.832 22692291.330 22692295.205
+ 37.200 33.500
+ -23105339.570 7 -18004157.127 7 20183307.302 20183305.659 20183306.178
+ 45.900 45.800
+ 06 1 2 3 17 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6404356.357 5 -4990396.774 4 23098400.035 23098397.423 23098399.087
+ 33.200 27.600
+ -16030121.020 7 -12490999.994 7 20641663.864 20641660.738 20641662.960
+ 45.100 46.400
+ -1984056.842 4 -1546016.498 3 24213583.103 24213581.675 24213582.300
+ 24.200 23.400
+ -15992437.685 6 -12461635.043 5 21624765.410 21624764.168 21624764.638
+ 41.200 35.900
+ -13595594.336 6 -10593959.469 5 21895114.627 21895112.769 21895114.190
+ 40.600 34.500
+ -23973948.485 7 -18680990.998 7 20342888.392 20342885.066 20342887.256
+ 44.400 43.600
+ -10747785.309 6 -8374895.280 5 22677644.209 22677639.889 22677643.475
+ 37.800 33.500
+ -23128171.596 7 -18021948.313 7 20178962.416 20178960.923 20178961.340
+ 45.900 45.800
+ 06 1 2 3 17 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6311990.616 5 -4918423.466 4 23115976.983 23115974.262 23115975.857
+ 32.700 27.100
+ -16061797.229 7 -12515682.753 7 20635635.870 20635632.979 20635635.009
+ 44.900 46.500
+ -1975771.358 4 -1539560.289 3 24215159.757 24215158.196 24215159.034
+ 24.900 23.000
+ -16075704.107 6 -12526517.946 6 21608920.566 21608918.876 21608919.657
+ 41.400 36.000
+ -13501487.713 6 -10520629.633 5 21913022.239 21913020.690 21913021.866
+ 40.500 34.100
+ -23936400.655 7 -18651732.954 7 20350033.400 20350030.197 20350032.397
+ 44.300 43.500
+ -10824650.045 6 -8434789.878 5 22663017.163 22663012.842 22663016.642
+ 38.400 33.900
+ -23150409.722 7 -18039276.722 7 20174730.872 20174729.143 20174729.746
+ 46.100 45.800
+ 06 1 2 3 18 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6219512.588 5 -4846362.673 4 23133574.166 23133572.767 23133573.456
+ 33.100 28.400
+ -16093179.314 7 -12540136.324 7 20629664.004 20629661.124 20629663.213
+ 44.900 46.500
+ -1966955.190 3 -1532690.582 3 24216837.628 24216835.158 24216836.484
+ 23.800 19.300
+ -16158495.823 6 -12591030.951 6 21593165.245 21593164.125 21593164.958
+ 41.800 36.000
+ -13407129.039 6 -10447103.404 5 21930978.153 21930976.721 21930977.774
+ 40.600 34.500
+ -23898278.570 7 -18622027.437 7 20357287.752 20357284.543 20357286.874
+ 44.600 43.500
+ -10901383.847 6 -8494582.447 5 22648415.237 22648411.243 22648414.713
+ 38.900 34.700
+ -23172052.826 7 -18056141.477 7 20170612.470 20170610.598 20170611.370
+ 46.100 45.800
+ 06 1 2 3 18 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6126924.090 5 -4774215.812 4 23151192.724 23151191.630 23151192.079
+ 32.400 28.800
+ -16124266.702 7 -12564360.263 7 20623748.316 20623745.332 20623747.488
+ 44.800 46.500
+ -1957609.182 4 -1525407.968 3 24218616.288 24218614.521 24218615.299
+ 24.200 23.400
+ -16240809.720 6 -12655171.635 6 21577502.272 21577500.372 21577501.353
+ 41.900 36.300
+ -13312520.781 6 -10373382.680 5 21948981.488 21948980.009 21948981.065
+ 40.000 34.100
+ -23859583.096 7 -18591875.128 7 20364651.436 20364648.021 20364650.523
+ 44.800 43.300
+ -10977985.979 6 -8554272.416 5 22633838.377 22633834.316 22633837.819
+ 38.600 34.900
+ -23193099.366 7 -18072541.380 7 20166607.437 20166605.555 20166606.353
+ 46.000 45.700
+ 06 1 2 3 19 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -6034226.861 5 -4701984.198 4 23168832.507 23168831.335 23168832.286
+ 33.200 28.400
+ -16155058.460 7 -12588353.840 7 20617888.878 20617885.938 20617888.013
+ 44.900 46.700
+ -1947734.179 3 -1517713.185 3 24220495.118 24220493.848 24220494.319
+ 23.000 23.400
+ -16322643.070 7 -12718937.875 6 21561929.336 21561928.002 21561928.766
+ 42.200 36.700
+ -13217665.661 6 -10299469.601 5 21967032.167 21967030.496 21967031.613
+ 39.700 34.300
+ -23820314.782 7 -18561276.442 7 20372124.077 20372120.583 20372123.000
+ 44.800 43.200
+ -11054455.508 6 -8613859.044 5 22619286.827 22619282.750 22619286.178
+ 38.600 35.100
+ -23213548.011 7 -18088475.386 7 20162716.101 20162714.323 20162715.011
+ 46.100 45.800
+ 06 1 2 3 19 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5941422.674 5 -4629669.256 4 23186493.383 23186491.222 23186492.565
+ 32.400 28.600
+ -16185553.646 7 -12612116.319 7 20612085.838 20612082.909 20612084.971
+ 44.800 46.800
+ -1937331.372 4 -1509607.071 3 24222474.941 24222473.204 24222474.116
+ 24.200 23.000
+ -16403992.452 7 -12782326.994 6 21546449.402 21546447.701 21546448.536
+ 42.100 36.500
+ -13122566.093 6 -10225366.061 5 21985129.067 21985127.051 21985128.341
+ 39.400 33.200
+ -23780474.441 7 -18530232.028 7 20379705.173 20379701.928 20379704.306
+ 44.900 43.100
+ -11130791.735 6 -8673341.805 5 22604760.226 22604756.175 22604759.633
+ 38.600 35.300
+ -23233397.424 7 -18103942.459 7 20158938.753 20158937.108 20158937.695
+ 46.100 45.800
+ 06 1 2 3 20 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5848513.289 5 -4557272.327 4 23204172.779 23204171.194 23204172.012
+ 31.600 28.100
+ -16215751.667 7 -12635647.244 7 20606339.421 20606336.320 20606338.541
+ 44.800 46.800
+ -1926401.491 4 -1501090.284 3 24224554.753 24224552.658 24224553.830
+ 24.600 21.100
+ -16484855.230 6 -12845336.935 6 21531061.744 21531059.963 21531060.850
+ 41.900 36.600
+ -13027224.983 6 -10151074.289 5 22003271.845 22003270.225 22003271.363
+ 39.700 33.800
+ -23740062.912 7 -18498742.534 7 20387395.547 20387391.994 20387394.500
+ 44.900 43.100
+ -11206993.894 6 -8732720.114 5 22590259.650 22590255.211 22590259.063
+ 38.900 34.000
+ -23252646.371 7 -18118941.639 7 20155276.100 20155274.205 20155274.997
+ 46.100 46.000
+ 06 1 2 3 20 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5755500.635 5 -4484794.938 4 23221872.736 23221870.602 23221872.022
+ 31.500 26.500
+ -16245651.522 7 -12658945.831 7 20600649.658 20600646.643 20600648.816
+ 44.800 46.900
+ -1914945.394 3 -1492163.481 3 24226734.738 24226733.250 24226733.678
+ 22.100 21.100
+ -16565227.836 7 -12907964.934 6 21515767.075 21515765.599 21515766.503
+ 42.300 37.100
+ -12931644.604 6 -10076596.069 5 22021459.933 22021458.281 22021459.281
+ 39.100 33.500
+ -23699081.255 7 -18466808.776 7 20395194.402 20395190.564 20395193.113
+ 44.800 43.100
+ -11283061.057 6 -8791993.213 5 22575784.447 22575780.375 22575783.817
+ 39.000 34.600
+ -23271293.607 7 -18133471.952 7 20151727.553 20151725.660 20151726.460
+ 46.100 45.900
+ 06 1 2 3 21 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5662386.339 5 -4412238.359 4 23239592.366 23239589.944 23239591.396
+ 32.300 27.400
+ -16275252.654 7 -12682011.647 7 20595016.706 20595013.800 20595015.838
+ 44.600 47.000
+ -1902963.977 3 -1482827.311 3 24229014.836 24229012.923 24229013.835
+ 21.600 20.500
+ -16645107.219 7 -12970208.595 6 21500567.076 21500565.178 21500566.040
+ 42.500 37.200
+ -12835827.585 6 -10001933.458 5 22039693.405 22039691.882 22039692.798
+ 39.300 33.500
+ -23657530.069 7 -18434431.231 7 20403100.925 20403097.501 20403099.874
+ 44.900 42.900
+ -11358992.524 6 -8851160.595 5 22561334.919 22561330.758 22561334.440
+ 38.600 34.100
+ -23289337.900 7 -18147532.438 7 20148293.412 20148291.997 20148292.440
+ 45.900 46.000
+ 06 1 2 3 21 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5569172.190 5 -4339603.944 4 23257330.303 23257328.046 23257329.627
+ 32.100 27.600
+ -16304553.944 7 -12704843.819 7 20589440.850 20589437.788 20589439.921
+ 44.600 46.800
+ -1890458.282 3 -1473082.615 4 24231394.792 24231393.376 24231393.498
+ 22.100 24.200
+ -16724490.829 7 -13032065.935 6 21485460.652 21485458.887 21485459.787
+ 42.200 37.600
+ -12739776.471 6 -9927088.436 5 22057970.988 22057969.586 22057970.688
+ 39.400 33.200
+ -23615410.190 7 -18401610.557 7 20411115.804 20411112.668 20411115.002
+ 44.900 42.700
+ -11434787.463 6 -8910221.571 5 22546911.594 22546907.637 22546911.069
+ 38.100 34.400
+ -23306777.989 7 -18161122.118 7 20144974.812 20144973.325 20144973.819
+ 46.000 46.100
+ 06 1 2 3 22 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5475859.840 5 -4266893.039 4 23275086.389 23275084.988 23275085.955
+ 32.700 27.400
+ -16333554.611 7 -12727441.738 7 20583922.340 20583919.158 20583921.362
+ 44.200 46.800
+ -1877429.166 3 -1462930.061 3 24233873.790 24233872.032 24233872.790
+ 22.100 22.100
+ -16803375.243 7 -13093534.293 6 21470449.531 21470447.552 21470448.634
+ 42.400 37.600
+ -12643493.801 6 -9852062.982 5 22076293.308 22076291.605 22076292.727
+ 39.400 32.800
+ -23572722.567 7 -18368347.477 7 20419239.504 20419235.836 20419238.291
+ 44.700 42.700
+ -11510445.067 6 -8969175.544 5 22532514.670 22532510.375 22532514.030
+ 38.700 34.700
+ -23323612.789 7 -18174240.140 7 20141771.604 20141769.630 20141770.483
+ 45.900 46.100
+ 06 1 2 3 22 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5382451.007 5 -4194106.930 4 23292861.641 23292860.092 23292861.026
+ 31.800 27.400
+ -16362253.766 7 -12749804.713 7 20578461.020 20578458.016 20578460.117
+ 44.400 47.100
+ -1863877.905 3 -1452370.656 3 24236453.030 24236450.882 24236451.948
+ 23.400 23.000
+ -16881757.456 7 -13154611.321 6 21455533.853 21455532.030 21455532.878
+ 42.400 37.700
+ -12546982.122 6 -9776859.076 5 22094658.507 22094657.080 22094658.058
+ 38.900 32.700
+ -23529468.278 7 -18334642.839 7 20427470.513 20427466.821 20427469.144
+ 44.600 42.500
+ -11585964.555 6 -9028021.886 5 22518143.752 22518139.684 22518143.142
+ 39.100 35.300
+ -23339840.944 7 -18186885.455 7 20138683.253 20138681.534 20138682.220
+ 45.900 45.900
+ 06 1 2 3 23 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5288947.524 5 -4121247.081 4 23310654.447 23310653.221 23310654.205
+ 32.400 27.100
+ -16390650.764 7 -12771932.242 7 20573057.089 20573054.168 20573056.232
+ 44.400 47.000
+ -1849805.476 3 -1441405.113 3 24239130.172 24239128.776 24239129.410
+ 22.600 22.600
+ -16959635.124 7 -13215295.204 6 21440713.873 21440712.533 21440713.247
+ 42.800 38.100
+ -12450243.850 6 -9701478.604 5 22113067.343 22113065.895 22113066.955
+ 38.900 33.400
+ -23485647.651 7 -18300496.904 7 20435808.688 20435805.671 20435807.928
+ 44.800 42.400
+ -11661345.130 6 -9086759.984 5 22503799.415 22503795.204 22503799.000
+ 40.200 35.600
+ -23355461.278 7 -18199057.143 7 20135710.886 20135709.098 20135709.777
+ 45.800 45.900
+ 06 1 2 3 23 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5195351.015 5 -4048314.761 4 23328465.589 23328463.569 23328464.636
+ 30.400 25.600
+ -16418744.555 7 -12793823.507 7 20567711.204 20567707.999 20567710.276
+ 44.400 47.000
+ -1835212.811 3 -1430034.224 4 24241907.763 24241906.188 24241906.557
+ 23.000 24.900
+ -17037004.543 7 -13275583.047 6 21425991.302 21425989.460 21425990.355
+ 43.100 37.700
+ -12353281.620 6 -9625923.629 5 22131518.946 22131517.324 22131518.340
+ 38.800 33.200
+ -23441262.241 7 -18265910.882 7 20444255.040 20444252.036 20444254.203
+ 44.900 42.600
+ -11736585.654 6 -9145388.962 5 22489481.584 22489477.173 22489481.021
+ 39.500 35.300
+ -23370472.705 7 -18210754.355 7 20132854.256 20132852.524 20132853.181
+ 45.600 45.900
+ 06 1 2 3 24 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5101663.112 5 -3975311.191 4 23346294.187 23346291.929 23346293.394
+ 31.300 25.300
+ -16446534.301 7 -12815477.856 7 20562422.879 20562419.898 20562421.913
+ 44.200 47.000
+ -1820101.093 4 -1418258.880 3 24244783.510 24244781.608 24244782.407
+ 24.600 23.800
+ -17113863.130 7 -13335472.839 6 21411365.247 21411363.680 21411364.603
+ 42.900 37.400
+ -12256097.935 6 -9550196.087 5 22150012.194 22150010.508 22150011.690
+ 38.600 32.700
+ -23396312.813 7 -18230885.359 7 20452809.370 20452805.579 20452808.012
+ 45.100 42.500
+ -11811685.462 6 -9203908.287 5 22475190.464 22475186.229 22475189.878
+ 39.700 35.100
+ -23384874.347 7 -18221976.416 7 20130113.737 20130111.976 20130112.637
+ 45.700 45.900
+ 06 1 2 3 24 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -5007885.616 4 -3902237.819 4 23364139.171 23364137.148 23364138.314
+ 29.500 25.300
+ -16474019.494 7 -12836894.887 7 20557192.468 20557189.659 20557191.571
+ 43.800 47.100
+ -1804471.293 4 -1406079.784 4 24247757.109 24247756.071 24247756.396
+ 24.200 24.900
+ -17190207.680 7 -13394962.080 6 21396838.042 21396835.865 21396836.829
+ 43.000 37.600
+ -12158695.209 6 -9474297.858 5 22168547.066 22168545.675 22168546.701
+ 38.200 32.300
+ -23350800.174 7 -18195420.965 7 20461470.077 20461466.283 20461468.880
+ 45.100 42.300
+ -11886643.722 6 -9262317.318 5 22460927.274 22460922.441 22460926.341
+ 40.000 35.800
+ -23398665.013 7 -18232722.390 7 20127489.344 20127487.689 20127488.294
+ 45.700 45.900
+ 06 1 2 3 25 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4914020.298 5 -3829096.011 4 23382001.164 23381999.421 23382000.644
+ 31.500 26.800
+ -16501198.959 7 -12858073.689 7 20552020.478 20552017.535 20552019.562
+ 44.100 47.100
+ -1788324.703 3 -1393498.050 3 24250829.918 24250828.485 24250828.866
+ 23.000 23.800
+ -17266035.622 7 -13454048.776 6 21382407.740 21382406.212 21382407.178
+ 43.600 37.600
+ -12061076.163 6 -9398231.070 5 22187123.877 22187121.942 22187123.254
+ 38.600 32.100
+ -23304725.325 7 -18159518.491 7 20470237.145 20470234.041 20470236.426
+ 45.300 42.300
+ -11961459.797 6 -9320615.539 6 22446689.695 22446685.378 22446688.967
+ 39.700 36.200
+ -23411843.531 7 -18242991.364 7 20124981.600 20124979.881 20124980.560
+ 45.900 45.700
+ 06 1 2 3 25 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4820068.561 5 -3755886.879 4 23399879.503 23399877.573 23399878.794
+ 31.000 26.200
+ -16528071.779 7 -12879013.548 7 20546906.747 20546903.784 20546905.827
+ 44.000 47.200
+ -1771662.362 4 -1380514.402 3 24254000.511 24253999.108 24253999.397
+ 24.200 22.100
+ -17341343.811 7 -13512730.468 6 21368077.211 21368075.635 21368076.461
+ 43.500 37.800
+ -11963243.137 6 -9321997.546 5 22205741.086 22205739.044 22205740.345
+ 38.300 32.300
+ -23258089.496 7 -18123178.899 7 20479111.670 20479108.634 20479110.859
+ 45.100 42.200
+ -12036132.624 6 -9378802.150 6 22432479.464 22432475.615 22432478.943
+ 40.200 36.200
+ -23424409.092 7 -18252782.710 7 20122590.512 20122588.658 20122589.452
+ 45.800 45.600
+ 06 1 2 3 26 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4726032.373 5 -3682611.929 4 23417774.665 23417772.646 23417773.853
+ 30.600 27.600
+ -16554637.072 7 -12899713.769 7 20541851.605 20541848.656 20541850.629
+ 43.800 47.300
+ -1754485.518 4 -1367129.863 3 24257269.949 24257267.662 24257268.932
+ 24.600 22.600
+ -17416129.528 7 -13571005.032 6 21353846.299 21353844.122 21353845.233
+ 43.500 37.200
+ -11865198.594 6 -9245599.209 5 22224397.701 22224396.313 22224397.213
+ 37.700 32.600
+ -23210893.932 7 -18086403.144 7 20488093.429 20488089.705 20488092.118
+ 45.200 42.300
+ -12110661.285 6 -9436876.428 5 22418297.431 22418292.993 22418296.731
+ 39.800 35.800
+ -23436360.502 7 -18262095.497 7 20120316.442 20120314.457 20120315.284
+ 45.700 45.800
+ 06 1 2 3 26 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4631913.281 5 -3609272.383 4 23435684.647 23435682.403 23435683.907
+ 30.800 25.600
+ -16580894.368 7 -12920174.004 7 20536854.841 20536851.954 20536853.992
+ 43.900 47.200
+ -1736795.420 4 -1353345.377 4 24260635.718 24260634.072 24260634.796
+ 24.900 24.200
+ -17490389.925 7 -13628870.265 6 21339714.493 21339712.921 21339713.920
+ 44.100 37.400
+ -11766944.961 6 -9169037.947 5 22243095.258 22243093.440 22243094.648
+ 37.900 32.700
+ -23163139.436 7 -18049191.849 7 20497180.717 20497176.986 20497179.357
+ 44.900 42.000
+ -12185045.052 6 -9494837.795 6 22404142.375 22404138.406 22404141.937
+ 40.000 36.100
+ -23447696.700 7 -18270928.898 7 20118158.935 20118157.324 20118157.868
+ 45.600 45.700
+ 06 1 2 3 27 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4537712.809 5 -3535869.430 4 23453610.001 23453608.583 23453609.390
+ 30.600 25.900
+ -16606842.474 7 -12940393.303 7 20531917.017 20531914.182 20531916.141
+ 43.600 47.200
+ -1718592.830 4 -1339161.567 3 24264099.533 24264097.665 24264098.507
+ 25.300 22.100
+ -17564122.093 7 -13686323.898 6 21325683.657 21325682.296 21325683.152
+ 44.100 37.500
+ -11668484.717 6 -9092315.680 5 22261831.479 22261829.654 22261830.798
+ 38.000 32.300
+ -23114826.948 7 -18011545.764 6 20506373.464 20506370.581 20506372.731
+ 45.100 41.900
+ -12259283.002 6 -9552685.546 6 22390015.348 22390011.547 22390014.809
+ 40.100 36.400
+ -23458416.721 7 -18279282.158 7 20116119.034 20116117.312 20116117.915
+ 45.500 45.800
+ 06 1 2 3 27 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4443432.755 5 -3462404.454 4 23471550.431 23471549.654 23471550.040
+ 30.100 25.900
+ -16632480.971 7 -12960371.352 7 20527038.312 20527035.416 20527037.435
+ 43.700 47.400
+ -1699879.263 3 -1324579.537 4 24267660.333 24267659.286 24267659.529
+ 23.400 24.600
+ -17637323.026 7 -13743363.567 6 21311754.871 21311752.448 21311753.662
+ 44.000 37.200
+ -11569820.277 6 -9015434.304 5 22280606.679 22280604.900 22280606.185
+ 37.900 32.300
+ -23065957.788 7 -17973465.906 7 20515673.042 20515670.157 20515672.327
+ 45.300 42.000
+ -12333374.142 6 -9610418.896 5 22375916.394 22375912.215 22375915.719
+ 39.700 35.900
+ -23468519.647 7 -18287154.567 7 20114196.499 20114194.672 20114195.418
+ 45.300 45.600
+ 06 1 2 3 28 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4349074.775 5 -3388878.766 3 23489506.737 23489504.791 23489505.991
+ 30.200 23.800
+ -16657808.783 7 -12980107.308 7 20522218.593 20522215.753 20522217.671
+ 43.600 47.600
+ -1680655.971 4 -1309600.390 3 24271319.013 24271317.048 24271318.068
+ 26.800 23.000
+ -17709989.972 7 -13799987.144 6 21297926.167 21297924.388 21297925.458
+ 44.200 37.400
+ -11470954.215 6 -8938395.817 5 22299420.770 22299418.568 22299420.015
+ 37.600 32.300
+ -23016533.233 7 -17934953.276 6 20525078.374 20525075.208 20525077.452
+ 45.100 41.500
+ -12407317.791 6 -9668037.318 5 22361845.354 22361841.188 22361844.740
+ 39.800 35.800
+ -23478004.510 7 -18294545.370 7 20112391.428 20112389.750 20112390.327
+ 45.200 45.500
+ 06 1 2 3 28 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4254640.342 5 -3315293.475 3 23507476.824 23507474.544 23507476.072
+ 30.800 23.000
+ -16682825.253 7 -12999600.659 7 20517458.137 20517455.248 20517457.223
+ 43.400 47.500
+ -1660924.269 4 -1294225.040 4 24275073.864 24275072.109 24275072.634
+ 25.300 25.900
+ -17782119.996 7 -13856192.350 6 21284199.818 21284198.584 21284199.423
+ 44.500 37.500
+ -11371888.839 6 -8861202.016 5 22318271.923 22318270.098 22318271.430
+ 38.100 32.400
+ -22966554.157 7 -17896008.546 6 20534589.481 20534585.863 20534588.276
+ 45.100 41.500
+ -12481112.928 6 -9725540.017 6 22347802.757 22347798.624 22347802.014
+ 39.900 36.500
+ -23486870.515 7 -18301453.941 7 20110704.374 20110702.529 20110703.302
+ 45.500 45.500
+ 06 1 2 3 29 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4160131.257 5 -3241650.023 3 23525461.659 23525459.504 23525460.991
+ 31.100 23.400
+ -16707528.955 7 -13018850.296 7 20512757.289 20512754.323 20512756.275
+ 43.300 47.700
+ -1640685.550 4 -1278454.609 4 24278924.697 24278923.270 24278924.012
+ 25.300 24.600
+ -17853710.665 7 -13911977.278 6 21270577.062 21270575.184 21270576.131
+ 44.300 37.300
+ -11272626.589 6 -8783854.825 5 22337160.381 22337159.167 22337159.959
+ 37.200 32.000
+ -22916021.717 7 -17856632.623 6 20544205.490 20544201.832 20544204.331
+ 45.300 41.300
+ -12554758.762 6 -9782926.380 6 22333788.334 22333784.168 22333787.634
+ 40.200 36.300
+ -23495116.620 7 -18307879.481 7 20109135.275 20109133.382 20109134.264
+ 45.600 45.400
+ 06 1 2 3 29 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -4065549.114 5 -3167949.656 4 23543459.977 23543458.205 23543459.209
+ 31.000 25.900
+ -16731919.364 7 -13037855.809 7 20508115.997 20508113.042 20508114.963
+ 43.400 47.800
+ -1619941.242 4 -1262290.197 3 24282872.058 24282870.733 24282871.389
+ 26.500 23.000
+ -17924759.164 7 -13967339.731 6 21257056.894 21257054.999 21257056.036
+ 44.300 37.300
+ -11173169.981 6 -8706356.167 5 22356086.866 22356084.949 22356086.234
+ 37.500 31.300
+ -22864937.263 7 -17816826.564 6 20553926.153 20553922.940 20553925.142
+ 44.800 41.400
+ -12628254.443 6 -9840195.741 6 22319802.562 22319798.351 22319801.969
+ 40.600 36.000
+ -23502741.951 7 -18313821.297 7 20107684.422 20107682.377 20107683.320
+ 45.500 45.600
+ 06 1 2 3 30 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -3970895.406 4 -3094193.540 4 23561471.754 23561470.004 23561470.886
+ 28.400 24.600
+ -16755995.807 7 -13056616.674 7 20503534.265 20503531.347 20503533.378
+ 43.400 47.800
+ -1598692.227 4 -1245732.555 3 24286916.047 24286914.318 24286915.293
+ 27.400 23.000
+ -17995262.581 7 -14022277.447 6 21243640.963 21243638.686 21243639.950
+ 44.600 37.400
+ -11073521.431 6 -8628707.948 5 22375049.096 22375047.464 22375048.716
+ 37.200 31.300
+ -22813302.078 7 -17776591.364 6 20563751.948 20563748.823 20563751.068
+ 45.200 41.000
+ -12701599.064 6 -9897347.389 6 22305845.704 22305841.625 22305845.200
+ 41.300 36.700
+ -23509745.780 7 -18319278.825 7 20106351.553 20106349.746 20106350.485
+ 45.500 45.900
+ 06 1 2 3 30 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ -3876171.821 5 -3020382.944 4 23579497.381 23579495.137 23579496.592
+ 30.200 24.200
+ -16779757.401 7 -13075132.200 7 20499012.591 20499009.644 20499011.691
+ 43.300 47.800
+ -1576940.214 4 -1228782.933 4 24291055.353 24291054.148 24291054.034
+ 27.100 25.600
+ -18065218.326 7 -14076788.403 6 21230328.712 21230326.589 21230327.725
+ 44.600 37.500
+ -10973683.253 6 -8550911.969 5 22394047.847 22394046.067 22394047.193
+ 36.900 31.600
+ -22761117.407 7 -17735927.986 6 20573682.552 20573679.267 20573681.636
+ 45.300 41.100
+ -12774791.821 6 -9954380.701 6 22291917.525 22291913.475 22291916.992
+ 41.200 37.200
+ -23516127.317 7 -18324251.453 7 20105137.138 20105135.396 20105136.047
+ 45.400 45.800
+ 06 1 2 3 31 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3781379.733 4 -2946518.985 3 23597535.645 23597533.111 23597534.764
+ 29.500 22.100
+ -174726.599 3 -136150.537 1 24679827.400 24679825.557 24679826.451
+ 21.100 11.000
+ -16803203.227 7 -13093401.675 7 20494550.908 20494548.108 20494550.032
+ 43.200 47.800
+ -1554686.370 4 -1211442.267 4 24295290.067 24295288.490 24295289.120
+ 27.600 24.600
+ -18134623.330 7 -14130870.206 6 21217120.948 21217119.397 21217120.253
+ 44.600 38.400
+ -10873657.863 6 -8472970.110 5 22413082.308 22413080.318 22413081.750
+ 37.600 31.500
+ -22708384.625 7 -17694837.516 6 20583717.478 20583713.998 20583716.405
+ 45.100 41.000
+ -12847831.433 6 -10011294.683 6 22278018.865 22278014.413 22278018.252
+ 41.400 36.900
+ -23521885.845 7 -18328738.623 7 20104041.549 20104039.636 20104040.353
+ 45.400 46.000
+ 06 1 2 3 31 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3686520.959 4 -2872603.063 4 23615586.522 23615584.448 23615586.121
+ 29.700 24.600
+ -275359.260 3 -214565.592 2 24660677.911 24660675.769 24660676.916
+ 18.600 16.100
+ -16826332.642 7 -13111424.595 7 20490149.512 20490146.760 20490148.617
+ 43.000 47.900
+ -1531932.243 4 -1193711.782 3 24299620.257 24299618.304 24299619.313
+ 27.400 22.100
+ -18203475.050 7 -14184520.883 6 21204018.817 21204017.268 21204018.183
+ 44.800 37.800
+ -10773447.585 6 -8394884.193 5 22432150.765 22432149.745 22432150.470
+ 36.600 31.300
+ -22655104.702 7 -17653320.702 6 20593856.201 20593852.874 20593855.184
+ 45.300 41.100
+ -12920716.734 6 -10068088.426 6 22264148.948 22264144.810 22264148.278
+ 40.900 37.100
+ -23527020.603 7 -18332739.730 7 20103064.254 20103062.502 20103063.143
+ 45.500 45.800
+ 06 1 2 3 32 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3591597.088 4 -2798636.408 3 23633650.188 23633647.646 23633649.397
+ 28.800 23.800
+ -375865.507 3 -292882.101 2 24641552.064 24641550.269 24641550.704
+ 19.900 17.000
+ -16849144.923 7 -13129200.400 7 20485808.592 20485805.657 20485807.576
+ 42.900 47.800
+ -1508679.198 4 -1175592.532 3 24304044.621 24304043.146 24304043.704
+ 24.600 22.100
+ -18271770.793 7 -14237738.325 6 21191022.637 21191020.950 21191021.958
+ 44.600 37.800
+ -10673054.895 6 -8316656.122 5 22451255.793 22451253.657 22451255.202
+ 36.900 30.400
+ -22601279.038 7 -17611378.636 6 20604098.700 20604095.518 20604097.888
+ 45.500 40.800
+ -12993447.579 6 -10124761.793 6 22250308.508 22250304.648 22250307.937
+ 40.800 37.200
+ -23531530.816 7 -18336254.185 7 20102205.813 20102204.245 20102204.791
+ 45.500 45.900
+ 06 1 2 3 32 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3496609.483 4 -2724620.093 4 23651725.116 23651723.906 23651724.612
+ 28.100 24.600
+ -476244.350 3 -371099.357 2 24622450.480 24622448.221 24622449.502
+ 20.500 16.100
+ -16871639.013 7 -13146728.261 7 20481527.999 20481525.200 20481527.047
+ 43.000 47.900
+ -1484928.499 4 -1157085.509 3 24308564.434 24308562.946 24308563.711
+ 25.600 20.500
+ -18339507.876 7 -14290520.453 6 21178133.127 21178130.989 21178132.138
+ 44.600 38.100
+ -10572482.144 6 -8238287.749 5 22470393.614 22470391.755 22470393.057
+ 36.000 30.100
+ -22546909.529 7 -17569012.796 6 20614445.029 20614441.850 20614444.043
+ 45.300 41.000
+ -13066023.194 6 -10181314.216 6 22236498.138 22236493.669 22236497.513
+ 41.500 36.600
+ -23535415.686 7 -18339281.357 7 20101466.794 20101464.946 20101465.689
+ 45.600 45.800
+ 06 1 2 3 33 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3401559.842 4 -2650555.422 4 23669813.442 23669811.576 23669812.609
+ 28.100 25.900
+ -576494.508 2 -449216.342 2 24603373.813 24603371.440 24603372.657
+ 17.000 17.000
+ -16893813.745 7 -13164007.271 8 20477308.213 20477305.514 20477307.365
+ 42.900 48.100
+ -1460681.696 4 -1138191.910 2 24313178.529 24313176.324 24313177.494
+ 25.900 17.000
+ -18406683.392 7 -14342864.988 6 21165349.980 21165347.957 21165349.170
+ 44.900 38.400
+ -10471731.566 6 -8159780.810 5 22489566.510 22489564.272 22489565.573
+ 36.000 30.100
+ -22491996.684 7 -17526223.577 6 20624894.864 20624891.438 20624893.605
+ 45.100 40.700
+ -13138442.150 6 -10237744.580 6 22222717.346 22222712.780 22222716.606
+ 41.400 36.500
+ -23538674.655 7 -18341820.813 7 20100846.521 20100844.741 20100845.456
+ 45.400 45.700
+ 06 1 2 3 33 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3306449.593 4 -2576443.559 4 23687912.106 23687910.285 23687911.233
+ 27.600 26.200
+ -676614.679 2 -527232.015 3 24584321.411 24584319.140 24584320.339
+ 17.000 19.300
+ -16915668.011 7 -13181036.569 8 20473149.841 20473146.725 20473148.796
+ 43.100 48.000
+ -1435940.117 3 -1118912.735 3 24317886.664 24317885.254 24317885.705
+ 23.400 20.500
+ -18473295.792 7 -14394770.742 6 21152673.750 21152672.054 21152673.063
+ 44.800 38.400
+ -10370805.682 6 -8081137.254 4 22508771.960 22508769.517 22508771.261
+ 36.200 29.700
+ -22436541.172 7 -17483011.496 6 20635447.490 20635444.189 20635446.456
+ 45.200 40.700
+ -13210703.192 6 -10294051.882 6 22208966.447 22208962.250 22208965.858
+ 41.300 37.200
+ -23541307.116 7 -18343872.082 7 20100345.499 20100343.790 20100344.341
+ 45.000 45.700
+ 06 1 2 3 34 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3211280.406 4 -2502285.763 4 23706021.568 23706020.252 23706020.706
+ 27.600 24.900
+ -776603.932 3 -605145.675 2 24565293.509 24565291.336 24565292.536
+ 20.500 16.100
+ -16937201.167 7 -13197815.651 8 20469052.191 20469049.129 20469051.154
+ 42.900 48.000
+ -1410705.399 3 -1099249.310 3 24322688.858 24322686.819 24322687.671
+ 23.400 19.900
+ -18539341.719 7 -14446235.088 6 21140105.943 21140103.792 21140104.898
+ 44.900 38.600
+ -10269706.741 6 -8002358.863 5 22528009.965 22528008.463 22528009.310
+ 36.000 30.100
+ -22380545.715 7 -17439378.680 6 20646102.920 20646099.764 20646102.014
+ 45.200 40.500
+ -13282805.939 6 -10350235.833 6 22195245.773 22195241.672 22195245.076
+ 41.400 37.500
+ -23543312.310 7 -18345434.571 7 20099964.004 20099962.238 20099962.841
+ 45.300 45.700
+ 06 1 2 3 34 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3116053.744 4 -2428083.190 4 23724142.997 23724141.161 23724142.002
+ 26.800 24.600
+ -876461.152 3 -682956.459 3 24546291.760 24546289.835 24546291.112
+ 21.100 18.600
+ -16958413.089 7 -13214344.416 8 20465015.468 20465012.669 20465014.561
+ 42.900 48.100
+ -1384978.997 4 -1079202.775 2 24327584.409 24327582.249 24327583.232
+ 24.900 16.100
+ -18604818.470 7 -14497255.917 6 21127645.887 21127643.999 21127645.102
+ 45.000 38.600
+ -10168437.105 6 -7923447.470 5 22547280.981 22547279.364 22547280.420
+ 36.000 30.100
+ -22324011.645 7 -17395326.171 6 20656860.569 20656857.910 20656859.876
+ 45.200 40.600
+ -13354749.181 6 -10406295.491 6 22181555.290 22181551.172 22181554.628
+ 41.300 37.500
+ -23544689.754 7 -18346507.904 7 20099701.941 20099700.192 20099700.860
+ 45.500 45.800
+ 06 1 2 3 35 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -3020771.081 4 -2353836.957 4 23742274.743 23742273.102 23742274.002
+ 29.500 24.900
+ -976185.222 3 -760663.530 2 24527315.014 24527312.840 24527314.297
+ 20.500 17.000
+ -16979302.778 7 -13230622.098 8 20461040.115 20461037.455 20461039.370
+ 42.900 48.000
+ -1358762.404 4 -1058774.252 3 24332573.058 24332571.693 24332572.268
+ 25.900 18.600
+ -18669723.662 7 -14547831.380 6 21115295.138 21115292.907 21115294.105
+ 45.200 38.900
+ -10066998.970 6 -7844404.772 4 22566584.462 22566582.400 22566583.744
+ 36.000 29.900
+ -22266940.301 7 -17350855.006 6 20667720.808 20667718.221 20667720.245
+ 45.100 40.300
+ -13426531.936 6 -10462230.102 6 22167895.326 22167891.242 22167894.779
+ 41.600 37.400
+ -23545438.896 7 -18347091.651 7 20099559.485 20099557.558 20099558.411
+ 45.500 45.800
+ 06 1 2 3 35 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2925434.001 4 -2279548.329 3 23760415.906 23760414.927 23760415.416
+ 28.100 23.800
+ -1075775.052 3 -838265.949 2 24508363.271 24508361.388 24508362.641
+ 23.400 16.100
+ -16999868.962 7 -13246647.695 8 20457126.707 20457123.805 20457125.838
+ 42.900 48.000
+ -1332057.117 4 -1037964.937 3 24337655.031 24337653.003 24337653.989
+ 25.600 18.600
+ -18734054.681 7 -14597959.435 6 21103052.965 21103051.305 21103052.264
+ 45.400 39.200
+ -9965394.775 5 -7765232.669 4 22585918.801 22585917.221 22585918.180
+ 35.500 29.700
+ -22209332.857 7 -17305966.098 6 20678683.363 20678680.515 20678682.646
+ 45.300 40.200
+ -13498153.575 7 -10518039.163 6 22154266.348 22154262.056 22154265.735
+ 42.000 37.700
+ -23545559.026 7 -18347185.262 7 20099536.647 20099534.744 20099535.481
+ 45.500 45.900
+ 06 1 2 3 36 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2830043.972 4 -2205218.454 3 23778568.068 23778566.771 23778567.519
+ 27.400 23.000
+ -1175229.594 3 -915762.954 2 24489438.204 24489435.822 24489437.303
+ 19.900 12.600
+ -17020111.197 7 -13262420.865 8 20453274.727 20453271.883 20453273.861
+ 42.800 48.200
+ -1304864.839 4 -1016776.161 3 24342829.406 24342827.799 24342828.607
+ 24.200 19.900
+ -18797808.950 7 -14647638.073 6 21090920.913 21090919.292 21090920.118
+ 44.900 39.200
+ -9863626.812 5 -7685932.953 4 22605284.134 22605282.824 22605283.954
+ 35.400 29.900
+ -22151190.816 7 -17260660.624 6 20689747.722 20689744.721 20689746.815
+ 45.500 40.500
+ -13569613.043 6 -10573721.860 6 22140668.058 22140663.682 22140667.628
+ 41.900 37.400
+ -23545049.407 7 -18346788.155 7 20099633.493 20099631.711 20099632.373
+ 45.500 45.800
+ 06 1 2 3 36 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2734602.475 4 -2130848.454 3 23796730.241 23796728.595 23796729.730
+ 29.000 23.400
+ -1274547.832 2 -993153.768 2 24470538.151 24470536.158 24470536.957
+ 15.100 12.600
+ -17040028.301 7 -13277940.685 8 20449484.683 20449481.770 20449483.813
+ 43.000 48.200
+ -1277187.286 3 -995209.217 2 24348096.004 24348094.319 24348095.049
+ 23.800 17.800
+ -18860983.911 7 -14696865.299 6 21078899.417 21078897.415 21078898.465
+ 44.900 39.300
+ -9761697.386 5 -7606507.450 5 22624680.475 22624679.445 22624680.143
+ 35.300 30.200
+ -22092515.638 7 -17214939.721 6 20700913.515 20700910.193 20700912.444
+ 45.500 40.100
+ -13640909.216 6 -10629277.312 6 22127100.756 22127096.768 22127100.154
+ 41.500 38.000
+ -23543909.637 7 -18345900.022 7 20099850.397 20099848.588 20099849.269
+ 45.400 45.900
+ 06 1 2 3 37 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2639111.018 4 -2056439.517 3 23814901.933 23814900.100 23814901.163
+ 27.100 23.400
+ -1373728.329 3 -1070437.203 1 24451664.876 24451662.813 24451664.295
+ 21.100 11.000
+ -17059619.713 7 -13293206.717 8 20445756.384 20445753.670 20445755.571
+ 42.800 48.200
+ -1249025.847 3 -973265.249 2 24353455.567 24353453.334 24353454.631
+ 23.800 15.100
+ -18923577.434 7 -14745639.459 6 21066988.136 21066986.206 21066987.251
+ 44.700 39.200
+ -9659608.743 5 -7526957.847 4 22644108.066 22644106.222 22644107.363
+ 34.800 29.900
+ -22033308.967 7 -17168804.658 6 20712180.353 20712176.919 20712179.160
+ 45.600 40.200
+ -13712041.419 7 -10684705.002 6 22113564.725 22113560.634 22113564.167
+ 42.000 38.100
+ -23542139.462 7 -18344520.666 7 20100187.212 20100185.374 20100186.115
+ 45.300 45.700
+ 06 1 2 3 37 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2543570.958 4 -1981992.728 3 23833082.935 23833081.212 23833082.142
+ 27.400 23.400
+ -1472770.176 3 -1147612.650 2 24432818.066 24432816.294 24432816.723
+ 19.900 12.600
+ -17078884.372 7 -13308218.142 8 20442090.492 20442087.742 20442089.522
+ 42.700 48.300
+ -1220382.293 4 -950945.598 2 24358905.739 24358903.684 24358904.861
+ 24.900 16.100
+ -18985586.575 7 -14793958.261 6 21055188.010 21055186.220 21055187.227
+ 44.600 39.300
+ -9557363.194 5 -7447286.002 4 22663564.739 22663562.997 22663564.065
+ 34.300 29.200
+ -21973572.032 7 -17122256.402 6 20723548.118 20723544.416 20723546.795
+ 45.400 39.900
+ -13783008.322 7 -10740003.879 6 22100060.411 22100056.225 22100059.694
+ 42.400 38.100
+ -23539738.394 7 -18342649.707 7 20100644.070 20100642.298 20100642.981
+ 45.300 45.800
+ 06 1 2 3 38 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2447983.876 4 -1907509.306 4 23851272.295 23851270.724 23851271.736
+ 28.100 24.200
+ -1571672.372 2 -1224679.294 1 24413997.033 24413995.212 24413996.051
+ 15.100 9.000
+ -17097821.504 7 -13322974.349 8 20438487.001 20438484.100 20438486.090
+ 42.700 48.300
+ -1191258.218 4 -928251.495 2 24364448.362 24364445.606 24364447.189
+ 24.900 15.100
+ -19047009.300 7 -14841820.115 6 21043499.587 21043497.858 21043498.794
+ 44.600 39.300
+ -9454962.866 5 -7367493.549 5 22683050.733 22683049.044 22683050.285
+ 35.300 30.100
+ -21913306.796 7 -17075296.485 6 20735015.927 20735012.410 20735014.771
+ 45.300 39.800
+ -13853809.141 6 -10795173.342 6 22086587.007 22086582.990 22086586.507
+ 41.600 37.700
+ -23536705.933 7 -18340286.749 7 20101221.251 20101219.478 20101220.169
+ 45.300 45.900
+ 06 1 2 3 38 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2352351.332 4 -1832990.462 3 23869471.286 23869469.159 23869470.592
+ 28.400 23.800
+ -1670433.879 3 -1301636.313 1 24395204.058 24395201.470 24395202.909
+ 19.300 11.000
+ -17116430.289 7 -13337474.703 8 20434945.863 20434942.903 20434944.954
+ 42.600 48.300
+ -1161655.223 3 -905184.239 3 24370080.938 24370079.511 24370080.014
+ 23.400 19.900
+ -19107843.280 7 -14889223.212 6 21031923.108 21031921.373 21031922.346
+ 44.300 39.100
+ -9352410.127 5 -7287582.339 4 22702565.885 22702564.363 22702565.329
+ 35.100 29.900
+ -21852514.695 7 -17027926.027 6 20746584.229 20746580.817 20746583.110
+ 45.300 39.500
+ -13924442.955 7 -10850212.669 6 22073146.065 22073141.899 22073145.434
+ 42.100 37.900
+ -23533041.573 7 -18337431.407 7 20101918.388 20101916.801 20101917.354
+ 45.400 45.900
+ 06 1 2 3 39 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2256674.702 4 -1758437.218 3 23887677.689 23887674.814 23887677.180
+ 28.400 19.300
+ -1769053.513 3 -1378482.742 1 24376436.680 24376434.901 24376435.806
+ 19.300 11.000
+ -17134709.863 7 -13351718.526 8 20431467.193 20431464.460 20431466.330
+ 42.700 48.300
+ -1131575.130 4 -881745.227 3 24375805.002 24375803.666 24375804.139
+ 24.600 18.600
+ -19168085.723 7 -14936165.364 6 21020459.463 21020457.635 21020458.525
+ 44.000 39.400
+ -9249707.275 5 -7207554.124 4 22722109.880 22722107.911 22722109.386
+ 35.300 29.200
+ -21791197.310 7 -16980146.254 6 20758251.929 20758249.160 20758251.202
+ 45.300 39.400
+ -13994908.806 7 -10905121.119 6 22059736.749 22059732.579 22059736.232
+ 42.400 37.600
+ -23528744.979 7 -18334083.411 7 20102735.962 20102734.400 20102734.915
+ 45.400 45.900
+ 06 1 2 3 39 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2160955.352 4 -1683850.704 3 23905891.330 23905890.132 23905890.666
+ 24.200 19.900
+ -1867530.042 2 -1455217.652 1 24357696.934 24357695.223 24357696.063
+ 17.000 11.000
+ -17152659.554 7 -13365705.297 8 20428051.549 20428048.813 20428050.647
+ 42.700 48.300
+ -1101019.462 3 -857935.639 3 24381620.158 24381618.447 24381618.896
+ 23.400 20.500
+ -19227734.276 7 -14982644.743 6 21009108.826 21009106.954 21009107.944
+ 44.500 39.500
+ -9146856.339 5 -7127410.545 4 22741681.315 22741679.842 22741680.853
+ 35.300 28.400
+ -21729356.121 7 -16931958.331 6 20770019.762 20770017.151 20770019.190
+ 45.300 39.600
+ -14065205.623 7 -10959897.860 6 22046359.719 22046355.500 22046359.144
+ 42.300 38.100
+ -23523815.938 7 -18330242.604 7 20103674.231 20103672.383 20103673.116
+ 45.500 45.900
+ 06 1 2 3 40 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -2065194.758 4 -1609232.092 3 23924114.525 23924112.800 23924114.028
+ 27.400 21.100
+ -1965862.688 2 -1531840.454 2 24338985.306 24338983.256 24338984.710
+ 12.600 12.600
+ -17170278.128 7 -13379434.053 8 20424698.865 20424696.039 20424697.990
+ 42.700 48.400
+ -1069989.977 4 -833756.802 3 24387524.790 24387523.005 24387523.939
+ 26.500 18.600
+ -19286786.704 7 -15028659.607 6 20997871.523 20997869.655 20997870.660
+ 44.500 39.500
+ -9043859.640 5 -7047153.380 4 22761280.910 22761279.577 22761280.382
+ 34.300 29.200
+ -21666992.667 7 -16883363.447 6 20781887.297 20781884.589 20781886.736
+ 45.500 39.600
+ -14135332.354 6 -11014542.058 6 22033015.122 22033011.006 22033014.510
+ 41.900 38.400
+ -23518254.121 7 -18325908.720 7 20104732.522 20104730.770 20104731.426
+ 45.400 45.800
+ 06 1 2 3 40 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1969394.375 4 -1534582.438 3 23942345.143 23942342.963 23942344.277
+ 27.400 22.100
+ -2064050.345 2 -1608350.272 9 24320300.395 24320298.245 24320299.638
+ 13.900 -3.000
+ -17187564.940 7 -13392904.295 8 20421409.305 20421406.509 20421408.461
+ 42.700 48.500
+ -1038488.424 4 -809210.099 3 24393518.699 24393517.696 24393517.962
+ 25.300 18.600
+ -19345240.385 7 -15074207.920 6 20986748.041 20986746.308 20986747.285
+ 45.000 39.700
+ -8940719.466 5 -6966784.419 4 22780908.160 22780906.273 22780907.548
+ 34.600 28.800
+ -21604108.934 7 -16834363.153 6 20793853.844 20793850.920 20793853.093
+ 45.500 39.300
+ -14205288.069 7 -11069052.998 6 22019703.207 22019698.869 22019702.462
+ 42.200 38.100
+ -23512059.071 7 -18321081.410 7 20105911.174 20105909.499 20105910.081
+ 45.200 45.600
+ 06 1 2 3 41 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1873555.390 4 -1459902.702 3 23960581.987 23960580.425 23960581.807
+ 26.500 22.100
+ -2162091.892 2 -1684746.255 1 24301643.650 24301642.575 24301643.273
+ 17.800 6.500
+ -17204519.312 7 -13406115.493 8 20418183.051 20418180.220 20418182.110
+ 42.300 48.500
+ -1006516.387 4 -784296.852 3 24399603.419 24399601.491 24399602.392
+ 24.900 19.300
+ -19403093.097 7 -15119287.948 6 20975739.177 20975737.258 20975738.320
+ 44.800 39.800
+ -8837437.998 5 -6886305.357 4 22800561.242 22800559.936 22800560.957
+ 33.200 28.600
+ -21540706.388 7 -16784958.582 6 20805919.641 20805916.010 20805918.461
+ 45.400 39.000
+ -14275071.734 7 -11123429.873 6 22006423.836 22006419.552 22006423.164
+ 42.600 38.400
+ -23505230.564 7 -18315760.499 7 20107210.759 20107208.836 20107209.657
+ 45.300 45.600
+ 06 1 2 3 41 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1777679.426 4 -1385194.165 3 23978827.291 23978825.144 23978826.565
+ 26.800 22.100
+ -2259986.357 2 -1761027.659 9 24283016.170 24283014.183 24283013.932
+ 13.900 -3.000
+ -17221140.716 7 -13419067.237 8 20415020.184 20415017.216 20415019.218
+ 42.400 48.500
+ -974075.874 4 -759018.537 3 24405776.398 24405774.369 24405775.646
+ 25.900 18.600
+ -19460342.572 7 -15163897.917 6 20964845.174 20964843.081 20964844.263
+ 45.300 39.600
+ -8734017.397 5 -6805717.880 4 22820241.887 22820240.769 22820241.631
+ 34.100 29.000
+ -21476786.518 7 -16735150.899 6 20818083.260 20818079.588 20818082.101
+ 45.400 38.900
+ -14344682.454 7 -11177671.992 6 21993177.351 21993173.009 21993176.672
+ 42.900 38.600
+ -23497768.356 7 -18309945.792 7 20108630.969 20108628.905 20108629.838
+ 45.400 45.500
+ 06 1 2 3 42 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1681767.952 4 -1310457.963 4 23997079.138 23997077.191 23997078.542
+ 27.400 24.600
+ -2357732.358 1 -1837193.327 9 24264414.629 24264412.529 24264413.261
+ 9.000 -3.000
+ -17237427.681 7 -13431758.378 8 20411920.846 20411917.887 20411919.916
+ 42.500 48.400
+ -941168.704 4 -733376.584 3 24412038.964 24412037.216 24412038.013
+ 24.200 21.100
+ -19516986.843 7 -15208036.297 6 20954066.214 20954064.020 20954065.329
+ 45.700 39.700
+ -8630459.923 5 -6725023.758 4 22839948.307 22839946.584 22839947.861
+ 33.600 27.400
+ -21412351.064 7 -16684941.468 6 20830344.779 20830341.362 20830343.653
+ 45.300 39.000
+ -14414119.017 7 -11231778.395 6 21979963.801 21979959.699 21979963.181
+ 42.900 38.600
+ -23489672.126 7 -18303637.046 7 20110171.483 20110169.718 20110170.403
+ 45.300 45.600
+ 06 1 2 3 42 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1585822.212 4 -1235695.041 3 24015336.936 24015334.656 24015336.285
+ 26.500 22.600
+ -2455329.021 2 -1913242.646 1 24245843.051 24245841.205 24245841.908
+ 17.800 6.500
+ -17253379.797 7 -13444188.599 8 20408885.330 20408882.364 20408884.321
+ 42.400 48.400
+ -907796.434 4 -707372.221 3 24418388.923 24418387.518 24418388.087
+ 24.600 22.600
+ -19573023.712 7 -15251701.380 6 20943402.711 20943400.517 20943401.753
+ 45.500 39.500
+ -8526767.680 5 -6644224.593 4 22859680.300 22859678.632 22859679.704
+ 32.800 27.600
+ -21347402.093 7 -16634331.895 6 20842704.131 20842700.723 20842703.009
+ 45.100 39.000
+ -14483380.590 7 -11285748.442 6 21966783.726 21966779.456 21966783.251
+ 43.100 38.400
+ -23480941.689 7 -18296834.111 7 20111832.719 20111831.069 20111831.646
+ 45.200 45.700
+ 06 1 2 3 43 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1489843.691 4 -1160906.610 3 24033600.696 24033598.905 24033600.158
+ 25.600 22.600
+ -2552775.783 2 -1989175.154 1 24227298.953 24227297.381 24227298.079
+ 17.000 6.500
+ -17268995.927 7 -13456357.012 8 20405913.378 20405910.672 20405912.560
+ 42.200 48.300
+ -873960.953 3 -681006.940 3 24424827.850 24424826.156 24424826.833
+ 23.000 22.600
+ -19628450.789 7 -15294891.296 6 20932854.870 20932853.116 20932854.137
+ 45.400 39.700
+ -8422942.706 5 -6563322.016 4 22879437.258 22879435.898 22879436.930
+ 33.500 28.100
+ -21281941.164 7 -16583323.390 6 20855161.370 20855157.419 20855160.001
+ 45.100 38.700
+ -14552465.918 7 -11339581.174 6 21953637.378 21953633.004 21953636.672
+ 43.000 38.400
+ -23471576.920 7 -18289536.891 7 20113614.821 20113613.069 20113613.760
+ 45.200 45.600
+ 06 1 2 3 43 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1393833.626 3 -1086093.573 3 24051870.960 24051869.004 24051869.985
+ 23.800 22.100
+ -2650070.856 2 -2064989.521 24208784.530 24208782.413 24208783.747
+ 15.100 3.000
+ -17284275.192 7 -13468262.935 8 20403006.020 20403003.086 20403005.123
+ 42.500 48.400
+ -839663.955 3 -654282.022 3 24431353.725 24431352.702 24431352.995
+ 21.600 20.500
+ -19683265.705 7 -15337604.205 6 20922424.291 20922422.161 20922423.233
+ 45.600 39.500
+ -8318987.410 5 -6482317.903 4 22899219.573 22899218.065 22899219.005
+ 33.400 27.400
+ -21215969.881 7 -16531917.209 6 20867715.299 20867711.469 20867713.799
+ 44.800 38.900
+ -14621374.148 7 -11393275.885 6 21940524.179 21940520.366 21940523.759
+ 43.100 38.600
+ -23461577.733 7 -18281745.316 7 20115517.623 20115515.957 20115516.524
+ 45.300 45.600
+ 06 1 2 3 44 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1297793.393 4 -1011257.025 3 24070146.736 24070144.999 24070146.205
+ 28.600 20.500
+ -2747213.697 2 -2140685.189 24190299.079 24190296.383 24190298.434
+ 15.100 3.000
+ -17299216.992 7 -13479905.896 8 20400162.706 20400159.775 20400161.780
+ 42.500 48.500
+ -804907.478 3 -627199.055 3 24437968.783 24437966.492 24437967.499
+ 22.100 18.600
+ -19737466.303 7 -15379838.421 6 20912109.757 20912108.153 20912109.158
+ 45.500 39.600
+ -8214903.826 5 -6401213.806 4 22919025.926 22919024.528 22919025.342
+ 32.800 27.900
+ -21149490.089 7 -16480114.786 6 20880365.681 20880362.095 20880364.378
+ 45.000 38.400
+ -14690104.083 7 -11446831.680 6 21927445.764 21927441.516 21927445.155
+ 43.500 38.900
+ -23450943.861 7 -18273459.187 7 20117541.264 20117539.535 20117540.162
+ 45.300 45.700
+ 06 1 2 3 44 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1201724.461 4 -936398.112 3 24088428.339 24088426.255 24088427.633
+ 28.400 22.600
+ -2844203.185 2 -2216261.373 9 24171842.826 24171840.893 24171841.642
+ 12.600 -3.000
+ -17313820.799 7 -13491285.484 8 20397383.827 20397380.704 20397382.791
+ 42.300 48.300
+ -769693.477 3 -599759.575 3 24444669.567 24444667.078 24444668.205
+ 23.400 19.300
+ -19791050.436 7 -15421592.287 6 20901913.596 20901911.409 20901912.677
+ 45.700 39.500
+ -8110694.115 5 -6320011.456 4 22938855.837 22938854.842 22938855.433
+ 32.600 28.400
+ -21082503.600 7 -16427917.531 6 20893112.721 20893109.231 20893111.562
+ 45.100 38.500
+ -14758655.135 7 -11500248.083 6 21914400.774 21914396.797 21914400.170
+ 43.200 39.300
+ -23439675.086 7 -18264678.326 7 20119685.623 20119683.886 20119684.549
+ 45.200 45.600
+ 06 1 2 3 45 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1105628.172 4 -861517.881 3 24106714.373 24106712.835 24106713.725
+ 24.900 22.600
+ -2941038.139 1 -2291717.171 9 24153414.672 24153413.444 24153413.866
+ 11.000 -3.000
+ -17328085.592 7 -13502400.909 8 20394669.082 20394666.198 20394668.295
+ 42.400 48.200
+ -734023.624 3 -571964.890 2 24451456.463 24451455.225 24451455.525
+ 22.600 17.800
+ -19844016.199 7 -15462864.303 6 20891834.321 20891832.437 20891833.472
+ 45.600 39.600
+ -8006360.277 5 -6238712.373 4 22958711.006 22958709.212 22958710.418
+ 33.600 28.800
+ -21015012.076 7 -16375326.745 6 20905955.903 20905952.468 20905954.689
+ 44.700 38.200
+ -14827026.003 7 -11553524.072 6 21901390.187 21901386.166 21901389.525
+ 43.600 39.400
+ -23427771.606 7 -18255402.889 7 20121950.566 20121948.990 20121949.487
+ 45.000 45.400
+ 06 1 2 3 45 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -1009505.824 4 -786617.365 3 24125006.223 24125003.999 24125005.178
+ 24.200 22.100
+ -3037717.764 1 -2367051.921 1 24135016.981 24135016.544 24135015.776
+ 11.000 6.500
+ -17342010.300 7 -13513251.330 8 20392019.333 20392016.468 20392018.456
+ 42.400 48.400
+ -697899.820 3 -543816.471 3 24458331.370 24458329.595 24458330.456
+ 23.800 19.900
+ -19896361.492 7 -15503652.830 6 20881873.258 20881871.355 20881872.413
+ 45.300 39.700
+ -7901904.502 5 -6157318.262 4 22978588.060 22978585.999 22978587.501
+ 33.400 27.100
+ -20947017.598 7 -16322344.051 6 20918894.717 20918891.448 20918893.669
+ 44.800 38.400
+ -14895215.654 7 -11606658.856 6 21888414.047 21888409.930 21888413.332
+ 43.100 38.900
+ -23415233.364 7 -18245632.832 7 20124336.368 20124334.849 20124335.341
+ 45.100 45.300
+ 06 1 2 3 46 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -913358.670 4 -711697.528 3 24143302.321 24143300.481 24143301.701
+ 26.800 22.100
+ -3134241.025 2 24116650.662 24116649.744
+ 12.600
+ -17355594.380 7 -13523836.325 8 20389434.461 20389431.471 20389433.572
+ 42.100 48.200
+ -661324.029 3 -515315.886 3 24465291.571 24465289.664 24465290.414
+ 22.600 19.300
+ -19948083.668 7 -15543955.818 6 20872030.799 20872028.865 20872030.024
+ 45.100 39.500
+ -7797328.871 5 -6075830.754 4 22998487.170 22998486.407 22998487.116
+ 32.000 27.600
+ -20878521.931 7 -16268970.819 6 20931929.368 20931925.685 20931928.097
+ 44.700 38.100
+ -14963222.995 7 -11659651.585 6 21875472.982 21875468.533 21875472.330
+ 43.400 38.600
+ -23402060.297 7 -18235368.106 7 20126843.245 20126841.585 20126842.177
+ 44.800 45.000
+ 06 1 2 3 46 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -817188.155 4 -636759.448 3 24161602.485 24161600.804 24161602.207
+ 25.900 21.600
+ -3230606.873 1 -2517355.057 9 24098312.749 24098310.345 24098311.015
+ 6.500 -3.000
+ -17368836.676 7 -13534155.000 8 20386914.245 20386911.553 20386913.482
+ 42.600 48.400
+ -624298.248 2 -486464.675 3 24472336.975 24472335.526 24472335.775
+ 17.000 20.500
+ -19999181.466 7 -15583772.275 6 20862307.440 20862305.256 20862306.573
+ 45.400 39.800
+ -7692635.551 5 -5994251.572 4 23018409.458 23018409.135 23018409.252
+ 31.600 28.100
+ -20809526.826 7 -16215208.413 6 20945058.241 20945054.970 20945057.171
+ 44.800 37.900
+ -15031046.755 7 -11712501.272 6 21862566.464 21862562.107 21862565.802
+ 43.800 39.000
+ -23388252.389 7 -18224608.700 7 20129470.650 20129469.166 20129469.639
+ 45.100 45.300
+ 06 1 2 3 47 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -720995.572 4 -561804.221 3 24179907.652 24179905.786 24179906.646
+ 24.600 22.100
+ -3326814.281 -2592321.852 9 24080004.197 24080002.959 24080002.701
+ 3.000 -3.000
+ -17381736.620 7 -13544206.908 8 20384459.688 20384456.836 20384458.785
+ 42.200 48.400
+ -586824.421 3 -457264.322 3 24479467.674 24479466.672 24479467.074
+ 18.600 19.900
+ -20049652.516 7 -15623100.358 6 20852702.759 20852701.029 20852702.005
+ 45.000 40.100
+ -7587826.681 5 -5912582.311 4 23038354.742 23038353.297 23038354.265
+ 32.600 27.400
+ -20740034.302 7 -16161058.401 6 20958282.199 20958279.017 20958281.146
+ 44.600 37.700
+ -15098686.272 7 -11765207.387 6 21849695.231 21849690.820 21849694.565
+ 44.000 39.400
+ -23373809.803 7 -18213354.737 7 20132219.189 20132217.557 20132218.127
+ 45.100 45.200
+ 06 1 2 3 47 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -624782.176 4 -486832.731 3 24198216.144 24198214.152 24198215.693
+ 24.600 19.900
+ -3422862.330 2 -2667164.485 9 24061727.008 24061725.297 24061724.841
+ 12.600 -3.000
+ -17394293.404 7 -13553991.412 8 20382070.184 20382067.332 20382069.311
+ 42.400 48.400
+ -548904.677 3 -427716.460 3 24486683.891 24486682.910 24486683.158
+ 21.100 19.900
+ -20099494.661 7 -15661938.385 6 20843218.256 20843216.269 20843217.384
+ 45.200 40.000
+ -7482904.098 5 -5830824.459 4 23058320.750 23058319.893 23058320.381
+ 31.500 27.600
+ -20670046.084 7 -16106522.147 6 20971600.647 20971597.362 20971599.571
+ 44.600 37.900
+ -15166140.198 7 -11817768.885 6 21836859.019 21836854.969 21836858.326
+ 43.700 39.800
+ -23358732.715 7 -18201606.363 7 20135088.366 20135086.609 20135087.304
+ 45.300 45.200
+ 06 1 2 3 48 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -528549.377 4 -411846.140 3 24216528.460 24216527.189 24216527.760
+ 24.200 23.000
+ -3518749.976 1 -2741882.112 9 24043480.867 24043478.906 24043479.611
+ 6.500 -3.000
+ -17406506.313 7 -13563507.966 8 20379746.191 20379743.264 20379745.315
+ 42.500 48.400
+ -510540.841 3 -397822.598 3 24493984.887 24493982.616 24493983.429
+ 21.600 20.500
+ -20148706.243 7 -15700285.062 6 20833853.359 20833851.597 20833852.691
+ 45.300 40.000
+ -7377869.959 5 -5748979.700 4 23078308.602 23078306.921 23078307.911
+ 32.100 28.400
+ -20599564.133 7 -16051601.164 6 20985012.350 20985009.671 20985011.607
+ 44.700 37.700
+ -15233407.620 7 -11870185.040 6 21824058.292 21824054.310 21824057.706
+ 43.800 39.700
+ -23343021.051 7 -18189363.511 7 20138078.203 20138076.418 20138077.153
+ 45.300 45.200
+ 06 1 2 3 48 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -432298.302 4 -336845.325 3 24234844.818 24234843.559 24234844.105
+ 25.600 23.000
+ -3614476.195 1 -2816473.910 9 24025264.477 24025262.516 24025262.412
+ 9.000 -3.000
+ -17418374.391 7 -13572755.820 8 20377487.942 20377484.870 20377487.011
+ 42.400 48.400
+ -471734.910 3 -367584.223 2 24501369.212 24501367.225 24501368.159
+ 22.100 17.000
+ -20197284.853 7 -15738138.519 6 20824609.358 20824607.418 20824608.556
+ 45.400 40.200
+ -7272726.460 5 -5667049.699 4 23098317.114 23098314.295 23098316.496
+ 32.300 25.600
+ -20528590.151 7 -15996296.775 6 20998518.446 20998515.596 20998517.645
+ 44.600 37.700
+ -15300487.515 7 -11922455.087 6 21811293.304 21811289.186 21811292.792
+ 44.000 39.400
+ -23326674.983 7 -18176626.317 7 20141188.669 20141186.936 20141187.617
+ 45.300 45.100
+ 06 1 2 3 49 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -336030.353 4 -261831.345 2 24253164.244 24253161.646 24253163.552
+ 26.500 16.100
+ -3710039.871 1 -2890939.124 9 24007078.597 24007077.364 24007078.299
+ 6.500 -3.000
+ -17429896.726 7 -13581734.262 8 20375295.153 20375292.211 20375294.194
+ 42.300 48.500
+ -432489.017 3 -337002.992 2 24508837.194 24508835.404 24508836.050
+ 22.100 16.100
+ -20245228.955 7 -15775497.554 6 20815485.891 20815484.069 20815485.019
+ 45.100 40.200
+ -7167475.657 5 -5585036.076 4 23118345.386 23118343.497 23118344.717
+ 31.600 25.900
+ -20457126.451 7 -15940610.792 6 21012117.857 21012114.809 21012116.838
+ 44.500 38.000
+ -15367378.772 7 -11974578.139 6 21798564.627 21798560.230 21798563.865
+ 43.800 39.600
+ -23309694.537 7 -18163394.805 7 20144420.032 20144418.315 20144418.938
+ 45.200 45.300
+ 06 1 2 3 49 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -239746.682 4 -186805.079 2 24271485.388 24271483.182 24271484.940
+ 24.600 12.600
+ -3805440.187 1 -2965276.997 9 23988925.885 23988922.166 23988925.450
+ 11.000 -3.000
+ -17441072.893 7 -13590442.961 8 20373168.223 20373165.491 20373167.427
+ 42.300 48.400
+ -392805.140 3 -306080.487 1 24516389.206 24516386.816 24516387.970
+ 23.800 6.500
+ -20292536.296 7 -15812360.410 6 20806483.859 20806481.750 20806482.877
+ 45.500 40.200
+ -7062119.399 5 -5502940.303 4 23138394.306 23138392.554 23138393.501
+ 31.500 26.200
+ -20385174.772 7 -15884544.562 6 21025809.621 21025806.657 21025808.679
+ 44.500 37.600
+ -15434080.163 7 -12026553.249 6 21785871.855 21785867.346 21785871.087
+ 44.200 39.700
+ -23292079.855 7 -18149669.078 7 20147772.180 20147770.306 20147771.063
+ 45.400 45.200
+ 06 1 2 3 50 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -143448.741 3 -111767.717 2 24289810.379 24289808.677 24289809.716
+ 22.100 17.800
+ -3900676.005 1 -3039486.754 9 23970801.773 23970799.843 23970800.756
+ 9.000 -3.000
+ -17451901.751 7 -13598881.028 8 20371107.887 20371104.800 20371106.889
+ 42.300 48.500
+ -352685.213 3 -274818.236 1 24524023.045 24524020.836 24524022.335
+ 22.100 11.000
+ -20339205.520 7 -15848726.029 6 20797602.676 20797600.932 20797601.963
+ 45.700 40.600
+ -6956659.802 5 -5420763.993 4 23158462.696 23158460.486 23158461.991
+ 32.000 26.500
+ -20312737.047 7 -15828099.596 6 21039594.186 21039591.119 21039593.121
+ 44.100 37.300
+ -15500590.715 7 -12078379.644 6 21773214.980 21773210.944 21773214.393
+ 44.100 40.000
+ -23273831.178 7 -18135449.334 7 20151244.720 20151242.905 20151243.676
+ 45.500 45.200
+ 06 1 2 3 50 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ -47137.507 3 -36720.031 3 24308137.746 24308136.797 24308137.465
+ 23.800 19.300
+ -3995746.909 1 -3113567.974 9 23952709.642 23952707.936 23952708.895
+ 11.000 -3.000
+ -17462382.513 7 -13607047.851 8 20369113.293 20369110.309 20369112.451
+ 42.500 48.400
+ -312131.380 3 -243217.836 2 24531740.705 24531738.637 24531739.649
+ 21.100 12.600
+ -20385234.277 7 -15884592.589 6 20788843.654 20788841.893 20788842.865
+ 45.800 40.600
+ -6851098.803 5 -5338508.684 4 23178549.731 23178548.044 23178549.197
+ 30.600 27.100
+ -20239815.609 7 -15771277.715 6 21053470.485 21053467.653 21053469.618
+ 44.200 37.300
+ -15566909.463 7 -12130056.586 6 21760595.172 21760590.778 21760594.510
+ 44.400 39.500
+ -23254948.799 7 -18120735.797 7 20154837.899 20154836.068 20154836.819
+ 45.500 45.200
+ 06 1 2 3 51 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 49185.441 4 38336.835 2 24326468.519 24326466.304 24326467.498
+ 24.200 17.800
+ -4090651.377 2 -3187519.427 1 23934651.401 23934650.011 23934649.999
+ 15.100 6.500
+ -17472514.362 7 -13614942.801 8 20367185.261 20367182.250 20367184.432
+ 42.500 48.300
+ -271145.574 3 -211280.823 2 24539539.650 24539538.123 24539538.784
+ 22.100 16.100
+ -20430621.275 7 -15919959.071 6 20780206.585 20780205.048 20780205.856
+ 45.600 40.800
+ -6745438.472 5 -5256175.980 4 23198656.232 23198654.622 23198655.678
+ 31.100 26.500
+ -20166412.209 7 -15714080.276 6 21067438.518 21067436.019 21067437.753
+ 44.300 37.200
+ -15633034.989 7 -12181582.969 6 21748011.755 21748007.366 21748011.189
+ 44.400 39.600
+ -23235432.724 7 -18105528.469 7 20158551.649 20158549.790 20158550.575
+ 45.400 45.100
+ 06 1 2 3 51 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 145519.254 4 113402.117 3 24344799.068 24344797.612 24344798.556
+ 25.600 20.500
+ -4185388.550 2 -3261340.591 9 23916624.052 23916622.314 23916623.285
+ 15.100 -3.000
+ -17482296.639 7 -13622565.354 8 20365323.702 20365320.771 20365322.819
+ 42.300 48.300
+ -229730.102 4 -179009.012 3 24547420.812 24547419.681 24547420.154
+ 24.900 18.600
+ -20475363.850 7 -15954823.407 6 20771692.718 20771690.708 20771691.737
+ 45.600 40.900
+ -6639680.812 5 -5173767.422 4 23218781.210 23218779.260 23218780.594
+ 30.800 26.200
+ -20092528.923 7 -15656508.899 6 21081498.299 21081495.480 21081497.503
+ 44.300 37.300
+ -15698966.337 7 -12232958.045 6 21735465.636 21735461.247 21735465.047
+ 44.600 40.100
+ -23215283.208 7 -18089827.549 7 20162385.984 20162384.171 20162384.883
+ 45.300 45.000
+ 06 1 2 3 52 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 241862.369 3 188474.685 3 24363133.571 24363131.098 24363132.470
+ 23.400 19.900
+ -4279957.470 2 -3335030.645 9 23898627.024 23898626.527 23898626.840
+ 13.900 -3.000
+ -17491728.363 7 -13629914.747 8 20363528.939 20363525.995 20363528.051
+ 42.300 48.300
+ -187886.932 4 -146403.982 3 24555383.392 24555381.903 24555382.779
+ 25.600 19.300
+ -20519461.036 7 -15989184.843 6 20763301.258 20763299.253 20763300.364
+ 45.900 40.900
+ -6533827.753 5 -5091284.518 4 23238924.124 23238922.296 23238923.824
+ 30.200 25.300
+ -20018167.694 7 -15598565.098 6 21095649.200 21095645.976 21095648.095
+ 44.600 36.800
+ -15764702.468 7 -12284181.002 6 21722956.119 21722952.347 21722955.605
+ 44.000 40.800
+ -23194500.685 7 -18073633.378 7 20166340.892 20166339.013 20166339.803
+ 45.500 45.000
+ 06 1 2 3 52 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 338213.875 3 263553.774 2 24381467.816 24381465.845 24381467.070
+ 23.400 17.800
+ -4374357.168 1 23880663.242 23880663.366
+ 9.000
+ -17500808.977 7 -13636990.550 8 20361801.000 20361798.034 20361800.107
+ 42.400 48.300
+ -145618.250 4 -113467.372 3 24563427.092 24563425.437 24563426.161
+ 25.300 21.600
+ -20562910.826 7 -16023041.822 6 20755033.046 20755031.030 20755032.253
+ 46.300 40.700
+ -6427881.396 5 -5008728.926 4 23259084.731 23259083.476 23259084.158
+ 30.400 25.600
+ -19943330.534 7 -15540250.439 6 21109890.241 21109886.922 21109889.054
+ 44.300 36.500
+ -15830242.359 7 -12335251.035 6 21710484.417 21710480.198 21710483.885
+ 44.500 40.000
+ -23173085.531 7 -18056946.247 7 20170415.870 20170414.216 20170414.819
+ 45.400 45.300
+ 06 1 2 3 53 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 434572.058 3 338638.097 3 24399804.955 24399802.884 24399803.869
+ 22.100 21.100
+ -4468586.795 1 -3482014.473 9 23862733.094 23862731.593 23862732.926
+ 9.000 -3.000
+ -17509537.504 7 -13643791.999 8 20360139.979 20360137.050 20360139.047
+ 42.100 48.300
+ -102926.169 4 -80200.830 3 24571550.779 24571549.678 24571549.788
+ 24.900 23.000
+ -20605711.284 7 -16056392.820 6 20746888.387 20746886.491 20746887.649
+ 46.400 41.100
+ -6321843.544 5 -4926102.037 4 23279262.978 23279261.759 23279262.478
+ 30.800 24.900
+ -19868019.690 7 -15481566.683 6 21124222.064 21124218.118 21124220.470
+ 44.000 36.600
+ -15895584.749 7 -12386167.186 6 21698050.382 21698045.944 21698049.755
+ 44.300 40.300
+ -23151038.075 7 -18039766.419 7 20174611.272 20174609.632 20174610.208
+ 45.100 45.000
+ 06 1 2 3 53 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 530936.110 3 413726.954 3 24418141.902 24418140.524 24418141.359
+ 23.000 22.100
+ -4562645.409 2 -3555306.870 9 23844833.897 23844832.471 23844832.128
+ 15.100 -3.000
+ -17517913.451 7 -13650318.709 8 20358546.098 20358543.120 20358545.160
+ 42.100 48.300
+ -59812.806 4 -46606.033 3 24579755.147 24579753.669 24579754.319
+ 25.300 22.600
+ -20647860.791 7 -16089236.586 6 20738867.464 20738865.837 20738866.775
+ 46.200 41.500
+ -6215716.264 5 -4843405.462 4 23299458.538 23299457.555 23299458.180
+ 30.800 24.900
+ -19792237.180 7 -15422515.395 6 21138642.813 21138639.045 21138641.372
+ 43.900 36.700
+ -15960728.548 7 -12436928.580 6 21685653.896 21685649.532 21685653.298
+ 44.400 40.300
+ -23128358.709 7 -18022094.188 7 20178927.194 20178925.448 20178926.078
+ 45.300 45.200
+ 06 1 2 3 54 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 627304.653 3 488819.338 3 24436480.968 24436478.712 24436480.101
+ 23.400 20.500
+ -4656532.252 2 -3628465.452 9 23826968.174 23826967.189 23826966.736
+ 13.900 -3.000
+ -17525935.839 7 -13656569.921 8 20357019.533 20357016.566 20357018.623
+ 42.300 48.300
+ -16280.294 4 -12684.607 3 24588039.245 24588037.474 24588038.437
+ 25.600 20.500
+ -20689357.577 7 -16121571.742 6 20730970.873 20730969.293 20730970.041
+ 46.100 41.500
+ -6109501.468 5 -4760640.682 4 23319670.762 23319669.457 23319670.161
+ 31.000 24.900
+ -19715984.870 7 -15363098.029 6 21153152.996 21153149.283 21153151.584
+ 43.800 36.400
+ -16025672.554 7 -12487534.296 6 21673295.282 21673291.137 21673294.736
+ 44.400 40.500
+ -23105047.848 7 -18003929.886 7 20183363.261 20183361.345 20183362.157
+ 45.600 45.100
+ 06 1 2 3 54 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 723676.705 3 563914.413 3 24454819.394 24454817.679 24454818.744
+ 21.600 19.900
+ -17533603.976 7 -13662545.092 8 20355560.365 20355557.370 20355559.459
+ 42.300 48.400
+ 27668.962 4 21561.544 3 24596402.392 24596400.937 24596401.769
+ 25.900 21.600
+ -20730200.572 7 -16153397.447 6 20723198.802 20723196.937 20723197.968
+ 46.300 41.500
+ -6003201.035 5 -4677809.182 4 23339899.492 23339897.662 23339898.875
+ 30.600 25.600
+ -19639264.768 7 -15303316.146 6 21167751.929 21167748.703 21167750.839
+ 43.800 36.400
+ -16090415.947 7 -12537983.689 6 21660975.335 21660971.032 21660974.672
+ 44.900 40.700
+ -23081106.051 7 -17985273.943 7 20187919.195 20187917.349 20187918.102
+ 45.300 44.900
+ 06 1 2 3 55 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 820050.824 3 639011.114 2 24473159.371 24473156.405 24473158.518
+ 23.000 13.900
+ -17540917.198 7 -13668243.703 8 20354168.680 20354165.708 20354167.772
+ 42.400 48.400
+ 72032.893 4 56130.818 3 24604844.549 24604843.135 24604843.753
+ 24.900 20.500
+ -20770387.801 7 -16184712.157 6 20715551.406 20715549.514 20715550.531
+ 46.200 41.600
+ -5896816.987 5 -4594912.518 4 23360143.746 23360141.822 23360143.197
+ 30.400 25.600
+ -19562079.731 7 -15243171.975 6 21182439.652 21182436.517 21182438.846
+ 44.000 36.000
+ -16154957.292 7 -12588275.639 6 21648693.547 21648688.957 21648692.848
+ 45.100 40.300
+ -23056533.577 7 -17966126.564 7 20192595.015 20192593.351 20192594.004
+ 45.300 45.100
+ 06 1 2 3 55 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 916426.139 3 714108.792 2 24491497.786 24491496.115 24491497.596
+ 21.100 17.800
+ -17547874.362 7 -13673664.874 8 20352844.727 20352841.790 20352843.878
+ 42.500 48.400
+ 116809.326 3 91021.532 3 24613365.322 24613364.119 24613364.321
+ 23.000 20.500
+ -20809917.418 7 -16215514.448 6 20708029.184 20708027.164 20708028.348
+ 46.600 41.600
+ -5790351.099 4 -4511952.095 3 23380403.111 23380401.367 23380402.743
+ 29.700 23.400
+ -19484431.473 7 -15182666.848 6 21197215.654 21197212.575 21197214.836
+ 44.000 36.300
+ -16219295.456 7 -12638409.276 6 21636450.220 21636445.684 21636449.548
+ 44.900 40.100
+ -23031330.938 7 -17946488.147 7 20197391.020 20197389.240 20197389.931
+ 45.200 45.000
+ 06 1 2 3 56 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 1012801.340 3 789206.347 3 24509838.212 24509835.836 24509837.295
+ 23.000 19.300
+ -17554474.948 7 -13678808.186 8 20351588.890 20351585.769 20351587.975
+ 42.600 48.400
+ 161996.180 3 126232.071 3 24621963.820 24621962.367 24621962.865
+ 21.600 19.900
+ -20848788.426 7 -16245803.540 6 20700632.238 20700630.295 20700631.399
+ 46.700 41.700
+ -5683805.356 5 -4428929.429 4 23400678.209 23400676.448 23400677.884
+ 30.400 24.600
+ -19406322.017 7 -15121802.355 6 21212079.285 21212076.355 21212078.514
+ 43.900 36.100
+ -16283429.480 7 -12688383.840 6 21624245.478 21624241.611 21624245.055
+ 45.100 40.700
+ -23005498.683 7 -17926359.123 7 20202306.540 20202304.906 20202305.536
+ 45.100 44.900
+ 06 1 2 3 56 30.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 1109175.342 3 864302.943 3 24528177.737 24528174.894 24528176.948
+ 23.800 18.600
+ -17560717.907 7 -13683672.836 8 20350400.801 20350397.782 20350399.938
+ 42.600 48.400
+ 207591.251 3 161760.666 3 24630640.542 24630639.288 24630639.482
+ 19.900 19.900
+ -20886998.824 7 -16275577.866 6 20693361.388 20693359.111 20693360.381
+ 46.700 41.600
+ -5577181.545 4 -4345845.943 4 23420968.164 23420966.668 23420967.593
+ 29.900 24.900
+ -19327753.758 7 -15060580.344 5 21227030.127 21227027.411 21227029.478
+ 43.800 35.700
+ -16347357.806 7 -12738198.118 6 21612080.681 21612076.486 21612079.940
+ 44.800 40.800
+ -22979037.206 7 -17905739.798 7 20207342.200 20207340.349 20207341.028
+ 45.100 44.900
+ 06 1 2 3 57 0.0000000 0 8G29G18G 3G 9G26G21G22G15
+ 1205546.810 3 939397.574 2 24546516.345 24546514.063 24546515.593
+ 23.000 17.800
+ -17566602.656 7 -13688258.354 8 20349280.886 20349277.913 20349280.021
+ 42.600 48.400
+ 253591.989 3 197605.386 3 24639394.573 24639392.720 24639393.426
+ 19.900 19.900
+ -20924547.263 7 -16304836.386 6 20686216.027 20686213.854 20686215.138
+ 47.100 41.700
+ -5470481.674 4 -4262703.191 4 23441271.814 23441271.125 23441271.528
+ 28.400 24.900
+ -19248728.713 7 -14999002.396 6 21242067.884 21242065.444 21242067.398
+ 43.700 36.100
+ -16411079.762 7 -12787851.589 6 21599954.693 21599950.587 21599954.126
+ 45.000 40.900
+ -22951947.159 7 -17884630.673 7 20212497.167 20212495.347 20212496.174
+ 45.400 44.700
+ 06 1 2 3 57 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1301914.682 3 1014489.447 3 24564854.143 24564852.898 24564853.462
+ 22.100 19.900
+ -86474.514 1 -67383.357 9 23702836.080 23702833.474 23702834.945
+ 9.000 -3.000
+ -17572128.753 7 -13692564.407 8 20348229.401 20348226.330 20348228.449
+ 42.400 48.400
+ 299996.209 3 233764.502 2 24648224.764 24648222.970 24648223.801
+ 20.500 17.800
+ -20961432.266 7 -16333577.943 6 20679196.765 20679194.845 20679195.977
+ 47.100 41.700
+ -5363707.511 5 -4179502.557 4 23461591.141 23461589.474 23461590.403
+ 30.200 24.900
+ -19169249.109 7 -14937070.245 6 21257192.908 21257189.936 21257192.050
+ 43.600 36.100
+ -16474594.337 7 -12837343.461 6 21587868.300 21587864.113 21587867.597
+ 44.700 40.900
+ -22924229.278 7 -17863032.331 7 20217771.686 20217769.868 20217770.608
+ 45.100 44.400
+ 06 1 2 3 58 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1398277.896 3 1089577.621 3 24583191.716 24583190.570 24583190.934
+ 22.100 20.500
+ -178952.334 1 -139443.978 1 23685238.346 23685235.502 23685237.318
+ 9.000 6.500
+ -17577295.118 7 -13696590.147 8 20347246.202 20347243.211 20347245.268
+ 42.300 48.400
+ 346801.645 3 270236.234 2 24657131.638 24657129.908 24657131.030
+ 20.500 17.800
+ -20997652.460 7 -16361801.463 6 20672304.324 20672302.438 20672303.428
+ 47.000 41.800
+ -5256861.093 4 -4096245.596 4 23481922.622 23481921.894 23481922.531
+ 28.600 26.200
+ -19089317.513 7 -14874785.898 5 21272403.574 21272400.357 21272402.547
+ 43.400 35.800
+ -16537899.993 7 -12886672.539 6 21575821.648 21575817.223 21575821.041
+ 45.200 40.700
+ -22895884.130 7 -17840945.203 7 20223165.697 20223163.809 20223164.568
+ 45.100 44.700
+ 06 1 2 3 58 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1494635.282 4 1164661.319 3 24601528.045 24601526.474 24601527.080
+ 24.600 19.300
+ -271249.845 2 -211364.071 9 23667674.328 23667672.506 23667673.926
+ 12.600 -3.000
+ -17582101.065 7 -13700335.042 8 20346331.668 20346328.695 20346330.730
+ 42.200 48.400
+ 394006.141 3 307018.926 3 24666113.978 24666112.824 24666112.295
+ 18.600 20.500
+ -21033206.778 7 -16389506.120 6 20665538.756 20665536.658 20665537.769
+ 47.300 41.900
+ -5149943.990 4 -4012933.603 4 23502268.400 23502266.891 23502267.983
+ 27.900 24.600
+ -19008935.862 7 -14812150.858 6 21287699.867 21287696.666 21287698.734
+ 43.400 36.100
+ -16600995.558 7 -12935837.911 6 21563814.893 21563810.743 21563814.336
+ 44.900 41.000
+ -22866912.372 7 -17818369.813 7 20228678.746 20228677.064 20228677.637
+ 45.200 44.600
+ 06 1 2 3 59 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1590985.806 3 1239739.649 2 24619863.215 24619860.943 24619862.666
+ 21.600 13.900
+ -363365.929 1 -283142.838 9 23650145.835 23650143.400 23650143.591
+ 9.000 -3.000
+ -17586545.700 7 -13703798.391 8 20345485.952 20345482.882 20345485.028
+ 42.400 48.400
+ 441607.302 3 344110.773 3 24675171.929 24675170.827 24675171.265
+ 19.900 18.600
+ -21068093.135 7 -16416690.290 6 20658900.097 20658897.883 20658899.245
+ 47.400 41.600
+ -5042958.240 4 -3929568.066 3 23522627.785 23522625.603 23522627.121
+ 28.600 23.800
+ -18928106.169 7 -14749166.703 5 21303081.443 21303077.880 21303080.153
+ 43.200 35.700
+ -16663879.898 7 -12984838.692 6 21551848.532 21551844.307 21551847.964
+ 45.200 41.100
+ -22837314.642 7 -17795306.655 7 20234310.961 20234309.374 20234309.860
+ 45.100 44.600
+ 06 1 2 3 59 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1687328.338 3 1314811.775 2 24638196.287 24638194.280 24638195.446
+ 20.500 13.900
+ -455300.353 2 -354780.064 23632650.521 23632648.482 23632649.861
+ 13.900 3.000
+ -17590628.328 7 -13706979.659 8 20344709.205 20344705.961 20344708.185
+ 42.500 48.500
+ 489602.807 2 381509.797 3 24684305.744 24684304.353 24684304.661
+ 17.000 19.300
+ -21102310.415 7 -16443353.108 6 20652388.682 20652386.544 20652387.854
+ 47.400 41.900
+ -4935905.615 4 -3846150.439 4 23542999.419 23542997.214 23542998.821
+ 29.900 24.900
+ -18846830.924 7 -14685835.365 5 21318547.551 21318544.094 21318546.365
+ 43.100 35.300
+ -16726551.968 7 -13033674.073 6 21539922.635 21539918.057 21539921.884
+ 45.100 40.800
+ -22807091.520 7 -17771756.175 7 20240062.384 20240060.637 20240061.300
+ 45.300 44.600
+ 06 1 2 4 0 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1783661.513 2 1389876.584 24656527.176 24656525.502 24656526.620
+ 15.100 3.000
+ -547051.812 2 -426274.678 1 23615190.222 23615189.369 23615190.138
+ 16.100 6.500
+ -17594348.319 7 -13709878.354 8 20344001.049 20343998.085 20344000.193
+ 42.400 48.400
+ 537990.201 3 419214.270 2 24693513.390 24693511.729 24693512.281
+ 20.500 17.000
+ -21135857.336 7 -16469493.565 6 20646004.818 20646002.843 20646003.987
+ 47.600 41.800
+ -4828788.081 4 -3762682.243 3 23563382.526 23563380.734 23563382.185
+ 27.600 23.400
+ -18765112.372 7 -14622158.585 5 21334098.002 21334094.463 21334096.946
+ 43.100 35.100
+ -16789010.495 7 -13082343.052 6 21528036.849 21528032.639 21528036.319
+ 45.000 41.200
+ -22776243.775 7 -17747718.975 7 20245932.610 20245930.727 20245931.455
+ 45.000 44.300
+ 06 1 2 4 0 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1879984.531 3 1464933.525 2 24674857.469 24674855.942 24674856.780
+ 21.100 15.100
+ -638619.517 1 -497626.130 23597766.383 23597764.620 23597764.986
+ 9.000 3.000
+ -17597704.880 7 -13712493.859 8 20343362.297 20343359.386 20343361.401
+ 42.500 48.500
+ 586767.313 3 457222.383 3 24702794.929 24702794.319 24702793.971
+ 19.900 18.600
+ -21168732.211 7 -16495110.339 6 20639748.899 20639746.893 20639748.117
+ 47.600 41.800
+ -4721607.117 4 -3679164.612 3 23583778.611 23583777.166 23583777.947
+ 28.600 23.800
+ -18682952.722 7 -14558138.091 5 21349732.302 21349728.887 21349731.285
+ 43.200 34.600
+ -16851254.450 7 -13130844.826 6 21516192.271 21516188.019 21516191.647
+ 44.900 41.500
+ -22744772.203 7 -17723195.678 7 20251921.079 20251919.584 20251920.089
+ 45.300 44.300
+ 06 1 2 4 1 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 1976296.283 3 1539981.621 2 24693185.698 24693182.165 24693185.073
+ 22.100 12.600
+ -730002.673 2 -568833.755 23580376.463 23580374.593 23580375.896
+ 17.800 3.000
+ -17600697.286 7 -13714825.605 8 20342792.719 20342789.988 20342791.931
+ 42.300 48.500
+ 635931.927 3 495532.443 2 24712150.987 24712149.720 24712150.048
+ 18.600 16.100
+ -21200934.706 7 -16520203.185 7 20633621.059 20633619.082 20633620.209
+ 47.900 42.000
+ -4614364.792 4 -3595599.155 3 23604185.744 23604184.250 23604185.269
+ 28.400 21.600
+ -18600354.368 7 -14493775.753 5 21365449.921 21365447.118 21365449.183
+ 43.000 35.400
+ -16913282.352 7 -13179178.252 6 21504388.752 21504384.585 21504388.231
+ 45.200 41.400
+ -22712677.699 7 -17698186.980 7 20258028.861 20258026.957 20258027.723
+ 45.100 44.400
+ 06 1 2 4 1 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2072595.624 4 1615020.044 2 24711510.815 24711508.880 24711510.120
+ 24.600 17.000
+ -821200.339 2 -639896.864 2 23563021.505 23563020.186 23563020.858
+ 15.100 12.600
+ -17603324.915 7 -13716873.109 8 20342292.892 20342290.017 20342291.988
+ 42.600 48.500
+ 685481.661 3 534142.622 2 24721580.189 24721578.481 24721579.430
+ 20.500 15.100
+ -21232462.820 8 -16544770.537 7 20627621.308 20627619.515 20627620.563
+ 48.000 42.100
+ -4507062.756 4 -3511987.179 4 23624604.185 23624603.489 23624604.130
+ 28.100 24.600
+ -18517319.548 7 -14429073.310 5 21381250.686 21381248.039 21381250.096
+ 42.800 34.800
+ -16975093.317 7 -13227342.638 6 21492626.752 21492622.119 21492626.066
+ 45.500 40.900
+ -22679960.844 7 -17672693.329 7 20264254.365 20264252.824 20264253.353
+ 45.100 44.200
+ 06 1 2 4 2 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2168881.510 3 1690048.016 3 24729833.196 24729831.145 24729832.117
+ 20.500 18.600
+ -912211.587 2 -710814.693 1 23545703.874 23545701.032 23545702.768
+ 15.100 9.000
+ -17605586.896 7 -13718635.698 8 20341862.538 20341859.481 20341861.554
+ 42.400 48.400
+ 735414.175 3 573051.023 3 24731082.069 24731080.709 24731080.844
+ 19.900 18.600
+ -21263315.481 7 -16568811.568 7 20621750.258 20621748.447 20621749.508
+ 47.900 42.200
+ -4399702.785 4 -3428330.071 4 23645034.742 23645033.710 23645034.303
+ 27.900 24.600
+ -18433850.717 7 -14364032.681 5 21397134.774 21397131.695 21397133.789
+ 42.400 34.600
+ -17036685.996 7 -13275336.939 6 21480905.935 21480901.376 21480905.345
+ 45.700 41.100
+ -22646622.488 7 -17646715.396 7 20270598.580 20270596.883 20270597.411
+ 44.900 44.200
+ 06 1 2 4 2 30.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2265152.974 2 1765064.702 2 24748152.279 24748150.767 24748151.580
+ 17.000 15.100
+ -1003035.395 2 -781586.481 2 23528419.904 23528417.866 23528419.557
+ 12.600 13.900
+ -17607482.527 7 -13720112.813 8 20341501.799 20341498.680 20341500.933
+ 42.300 48.300
+ 785726.724 3 612255.601 3 24740656.526 24740654.436 24740655.222
+ 21.100 19.300
+ -21293492.003 8 -16592325.744 7 20616008.013 20616005.952 20616007.127
+ 48.100 42.100
+ -4292286.690 4 -3344629.217 4 23665475.486 23665473.817 23665474.794
+ 27.100 24.200
+ -18349950.115 7 -14298655.603 5 21413100.554 21413097.404 21413099.547
+ 42.300 34.600
+ -17098059.296 7 -13323160.289 6 21469226.965 21469222.466 21469226.425
+ 45.700 41.200
+ -22612663.638 7 -17620253.957 7 20277060.803 20277059.064 20277059.695
+ 45.000 44.200
+ 06 1 2 4 3 0.0000000 0 9G29G14G18G 3G 9G26G21G22G15
+ 2361408.919 3 1840069.337 2 24766470.881 24766467.149 24766469.616
+ 19.900 16.100
+ -1093671.404 2 -852211.917 1 23511172.299 23511170.502 23511171.442
+ 15.100 11.000
+ -17609010.917 7 -13721303.770 8 20341211.118 20341207.903 20341210.090
+ 42.200 48.300
+ 836417.026 3 651754.532 2 24750302.382 24750300.699 24750300.974
+ 20.500 17.000
+ -21322990.618 8 -16615311.679 7 20610394.598 20610392.613 20610393.808
+ 48.000 42.300
+ -4184816.259 4 -3260886.027 3 23685926.849 23685924.268 23685926.300
+ 29.000 21.600
+ -18265620.133 7 -14232943.943 5 21429148.553 21429144.739 21429147.243
+ 42.400 34.000
+ -17159211.981 7 -13370811.728 6 21457590.278 21457585.665 21457589.544
+ 45.700 41.400
+ -22578085.068 7 -17593309.623 7 20283640.756 20283639.017 20283639.708
+ 45.000 44.000
+ 06 1 2 4 3 30.0000000 0 8G29G14G18G 9G26G21G22G15
+ 2457648.287 3 1915061.051 2 24784783.323 24784781.793 24784782.818
+ 21.600 17.000
+ -1184118.506 3 -922690.162 2 23493961.175 23493958.815 23493960.385
+ 19.900 12.600
+ -17610171.394 7 -13722208.038 8 20340990.020 20340987.104 20340989.139
+ 42.400 48.300
+ -21351810.494 8 -16637768.727 7 20604910.434 20604908.419 20604909.571
+ 48.100 42.400
+ -4077293.205 4 -3177101.833 3 23706388.253 23706385.837 23706387.714
+ 28.800 22.100
+ -18180863.141 6 -14166899.556 5 21445276.091 21445273.749 21445275.502
+ 41.800 34.600
+ -17220142.546 7 -13418290.088 6 21445995.414 21445991.057 21445994.750
+ 45.700 41.600
+ -22542887.648 7 -17565883.069 7 20290338.782 20290336.760 20290337.694
+ 45.200 44.000
+ 06 1 2 4 4 0.0000000 0 8G29G14G18G 9G26G21G22G15
+ 2553869.899 3 1990038.951 3 24803093.300 24803092.003 24803092.859
+ 21.100 18.600
+ -1274375.877 3 -993020.565 2 23476785.448 23476783.617 23476784.585
+ 19.900 12.600
+ -17610963.489 7 -13722825.255 8 20340839.245 20340836.342 20340838.410
+ 42.400 48.400
+ -21379950.815 7 -16659696.243 7 20599555.526 20599553.448 20599554.535
+ 47.900 42.600
+ -3969719.212 4 -3093277.952 3 23726858.637 23726856.212 23726858.102
+ 27.100 21.100
+ -18095681.440 7 -14100524.222 5 21461485.678 21461483.234 21461485.145
+ 42.100 34.500
+ -17280850.337 7 -13465594.859 6 21434443.085 21434438.607 21434442.376
+ 45.500 41.400
+ -22507072.294 7 -17537975.009 7 20297154.217 20297152.324 20297153.161
+ 45.100 44.100
+ 06 1 2 4 4 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1364442.788 3 -1063202.578 2 23459646.556 23459644.811 23459645.538
+ 22.100 15.100
+ -17611386.706 7 -13723155.034 8 20340758.546 20340755.828 20340757.815
+ 42.400 48.300
+ -21407409.724 7 -16681092.792 7 20594330.175 20594328.221 20594329.307
+ 47.900 42.800
+ -3862095.988 4 -3009415.687 3 23747338.558 23747336.609 23747337.961
+ 26.800 21.100
+ -18010077.376 6 -14033819.770 5 21477775.996 21477772.940 21477775.055
+ 41.900 33.800
+ -17341333.886 7 -13512724.896 6 21422933.498 21422928.903 21422932.777
+ 45.400 41.600
+ -22470640.029 7 -17509586.236 7 20304087.142 20304085.328 20304085.941
+ 45.100 44.100
+ 06 1 2 4 5 0.0000000 0 7G14G18G 9G26G21G22G15
+ -1454318.089 3 -1133235.259 2 23442543.438 23442541.668 23442543.065
+ 22.100 17.000
+ -17611439.901 7 -13723196.485 8 20340748.752 20340745.771 20340747.834
+ 42.500 48.300
+ -21434186.549 8 -16701957.846 7 20589234.583 20589232.798 20589233.838
+ 48.200 42.800
+ -3754425.344 4 -2925516.497 3 23767827.108 23767825.431 23767826.639
+ 26.800 20.500
+ -17924053.532 6 -13966788.220 5 21494146.120 21494142.925 21494144.918
+ 41.600 34.000
+ -17401591.752 7 -13559679.072 6 21411466.735 21411462.361 21411466.044
+ 45.600 41.900
+ -22433591.696 7 -17480717.415 7 20311136.991 20311135.369 20311136.030
+ 45.400 44.100
+ 06 1 2 4 5 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1544001.089 3 -1203118.092 3 23425478.194 23425475.618 23425477.088
+ 21.100 19.900
+ -17611122.291 7 -13722948.996 8 20340809.223 20340806.178 20340808.259
+ 42.700 48.300
+ -21460280.339 8 -16722290.672 7 20584269.293 20584267.259 20584268.419
+ 48.200 42.900
+ -3646708.898 4 -2841581.603 3 23788324.862 23788323.025 23788324.232
+ 27.600 20.500
+ -17837612.063 6 -13899431.254 5 21510595.187 21510592.242 21510594.116
+ 41.400 33.600
+ -17461623.086 7 -13606456.725 6 21400043.019 21400038.734 21400042.354
+ 45.300 41.900
+ -22395928.318 7 -17451369.336 7 20318304.219 20318302.357 20318303.171
+ 45.400 44.000
+ 06 1 2 4 6 0.0000000 0 7G14G18G 9G26G21G22G15
+ -1633491.057 4 -1272850.514 2 23408448.540 23408445.861 23408447.667
+ 24.200 17.000
+ -17610433.226 7 -13722412.061 8 20340940.455 20340937.269 20340939.440
+ 42.600 48.300
+ -21485689.986 8 -16742090.391 7 20579434.042 20579431.908 20579433.162
+ 48.300 42.900
+ -3538948.423 4 -2757612.369 3 23808830.893 23808829.441 23808830.442
+ 26.800 21.100
+ -17750755.568 6 -13831750.885 5 21527122.629 21527120.571 21527122.232
+ 41.200 34.300
+ -17521426.258 7 -13653056.598 6 21388663.030 21388658.374 21388662.318
+ 45.600 41.500
+ -22357651.004 7 -17421542.862 7 20325588.203 20325586.295 20325587.128
+ 45.500 43.900
+ 06 1 2 4 6 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1722786.934 3 -1342431.704 2 23391456.071 23391453.924 23391455.062
+ 22.600 17.000
+ -17609372.310 7 -13721585.374 8 20341142.156 20341139.168 20341141.321
+ 42.700 48.200
+ -21510415.236 8 -16761356.816 7 20574729.069 20574726.875 20574728.153
+ 48.400 42.800
+ -3431145.481 4 -2673610.121 3 23829344.089 23829343.752 23829343.746
+ 24.900 22.100
+ -17663486.170 6 -13763748.769 5 21543729.792 21543727.395 21543729.046
+ 40.800 33.800
+ -17581000.470 7 -13699478.061 6 21377326.375 21377321.782 21377325.740
+ 45.800 41.600
+ -22318760.912 7 -17391238.907 7 20332988.796 20332986.945 20332987.644
+ 45.200 43.900
+ 06 1 2 4 7 0.0000000 0 7G14G18G 9G26G21G22G15
+ -1811888.074 4 -1411861.135 3 23374500.379 23374498.288 23374499.407
+ 24.200 21.100
+ -17607938.865 7 -13720468.408 8 20341414.919 20341411.843 20341414.040
+ 42.600 48.200
+ -21534454.173 8 -16780088.447 7 20570154.522 20570152.420 20570153.606
+ 48.100 42.700
+ -3323301.821 4 -2589576.116 3 23849866.598 23849865.998 23849866.447
+ 26.800 23.800
+ -17575806.765 6 -13695427.179 5 21560415.500 21560412.252 21560414.141
+ 40.900 33.900
+ -17640344.346 7 -13745720.046 7 21366033.461 21366029.221 21366032.827
+ 45.700 42.100
+ -22279258.924 7 -17360458.139 7 20340505.821 20340503.957 20340504.654
+ 45.200 43.800
+ 06 1 2 4 7 30.0000000 0 7G14G18G 9G26G21G22G15
+ -1900793.909 4 -1481138.396 3 23357582.607 23357580.274 23357581.474
+ 25.300 21.100
+ -17606132.140 7 -13719060.574 8 20341758.819 20341755.669 20341757.922
+ 42.700 48.200
+ -21557806.081 8 -16798284.738 7 20565710.682 20565708.633 20565709.889
+ 48.200 42.700
+ -3215419.039 4 -2505511.604 3 23870397.086 23870394.985 23870396.428
+ 27.100 22.600
+ -17487719.566 6 -13626787.829 5 21577177.633 21577174.605 21577176.500
+ 40.800 33.500
+ -17699456.517 7 -13791781.469 7 21354784.826 21354780.589 21354784.085
+ 45.500 42.300
+ -22239146.083 7 -17329201.387 7 20348138.780 20348137.154 20348137.802
+ 45.200 43.600
+ 06 1 2 4 8 0.0000000 0 7G14G18G 9G26G21G22G15
+ -1989503.261 4 -1550262.541 3 23340701.542 23340699.218 23340700.548
+ 26.200 18.600
+ -17603951.177 7 -13717361.120 8 20342173.821 20342170.775 20342172.954
+ 42.700 48.300
+ -21580470.750 8 -16815945.520 7 20561397.671 20561395.635 20561396.846
+ 48.200 42.600
+ -3107498.920 4 -2421418.009 3 23890933.171 23890931.242 23890932.986
+ 26.800 21.600
+ -17399226.983 6 -13557832.584 5 21594016.788 21594014.246 21594016.069
+ 40.900 33.500
+ -17758335.793 7 -13837661.419 6 21343580.727 21343576.052 21343579.960
+ 45.800 41.900
+ -22198423.734 7 -17297469.696 7 20355888.265 20355886.292 20355887.066
+ 44.900 43.600
+ 06 1 2 4 8 30.0000000 0 7G14G18G 9G26G21G22G15
+ -2078015.660 4 -1619233.233 3 23323858.153 23323855.688 23323857.149
+ 26.800 20.500
+ -17601395.549 7 -13715369.723 8 20342660.156 20342657.110 20342659.276
+ 42.800 48.300
+ -21602447.244 8 -16833070.056 7 20557215.963 20557213.693 20557214.947
+ 48.400 42.600
+ -2999543.006 4 -2337296.536 3 23911476.739 23911474.405 23911476.236
+ 26.800 19.900
+ -17310331.491 6 -13488563.384 5 21610933.037 21610930.299 21610932.313
+ 40.900 33.100
+ -17816980.977 7 -13883358.963 6 21332420.593 21332416.103 21332420.097
+ 46.000 41.800
+ -22157093.105 7 -17265264.016 7 20363752.931 20363751.221 20363751.809
+ 45.000 43.600
+ 06 1 2 4 9 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -24720.651 4 -19262.512 3 24805595.162 24805590.163 24805593.320
+ 25.300 21.600
+ -2166329.986 4 -1688049.583 3 23307052.628 23307049.939 23307051.626
+ 27.100 23.000
+ -17598464.397 7 -13713085.707 8 20343217.992 20343214.902 20343217.070
+ 42.800 48.200
+ -21623734.282 8 -16849657.358 7 20553165.053 20553162.957 20553164.229
+ 48.400 42.600
+ -2891552.938 4 -2253148.400 3 23932026.310 23932023.719 23932025.798
+ 27.400 20.500
+ -17221035.818 6 -13418982.362 5 21627926.276 21627922.807 21627925.027
+ 40.500 33.100
+ -17875390.931 7 -13928873.211 7 21321305.443 21321301.223 21321304.850
+ 45.700 42.300
+ -22115155.040 7 -17232585.010 7 20371733.103 20371731.702 20371732.171
+ 44.800 43.300
+ 06 1 2 4 9 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -35473.723 4 -27641.558 3 24803548.253 24803543.971 24803546.719
+ 24.600 20.500
+ -2254445.718 4 -1756711.173 3 23290284.333 23290281.878 23290283.477
+ 27.600 22.100
+ -17595157.338 7 -13710508.777 8 20343847.274 20343844.197 20343846.346
+ 42.700 48.200
+ -21644331.856 8 -16865707.408 7 20549245.399 20549243.376 20549244.573
+ 48.300 42.600
+ -2783530.335 4 -2168974.929 3 23952582.156 23952580.087 23952581.804
+ 26.500 19.300
+ -17131342.213 6 -13349091.270 5 21644994.084 21644990.909 21644993.059
+ 40.000 32.600
+ -17933564.161 7 -13974202.999 7 21310235.625 21310231.262 21310235.030
+ 46.100 42.400
+ -22072611.028 7 -17199433.838 7 20379829.485 20379827.568 20379828.340
+ 44.900 43.400
+ 06 1 2 4 10 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -45693.960 4 -35605.404 3 24801603.658 24801599.506 24801601.863
+ 24.600 22.100
+ -2342361.723 4 -1825217.129 4 23273554.325 23273552.268 23273553.456
+ 27.900 24.200
+ -17591473.523 7 -13707638.276 8 20344548.275 20344545.107 20344547.323
+ 42.700 48.000
+ -21664238.667 8 -16881219.210 7 20545457.054 20545455.208 20545456.349
+ 48.400 42.400
+ -2675476.779 4 -2084777.374 3 23973144.394 23973143.193 23973143.901
+ 25.600 22.600
+ -17041253.214 6 -13278892.066 5 21662137.053 21662134.465 21662136.310
+ 40.400 32.700
+ -17991499.615 7 -14019347.506 7 21299211.094 21299206.539 21299210.371
+ 46.100 42.400
+ -22029462.286 7 -17165811.445 7 20388040.278 20388038.580 20388039.318
+ 45.300 43.500
+ 06 1 2 4 10 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -55381.404 4 -43154.014 3 24799760.200 24799755.436 24799758.636
+ 26.500 18.600
+ -2430077.448 4 -1893567.013 4 23256863.005 23256860.425 23256862.036
+ 29.700 25.300
+ -17587412.493 7 -13704473.837 8 20345320.860 20345317.865 20345320.000
+ 42.600 48.000
+ -21683453.935 8 -16896192.145 7 20541800.678 20541798.649 20541799.893
+ 48.600 42.200
+ -2567393.729 4 -2000556.836 3 23993711.368 23993710.128 23993710.946
+ 24.200 21.100
+ -16950771.407 6 -13208386.780 5 21679355.696 21679352.486 21679354.478
+ 40.000 32.300
+ -18049195.994 7 -14064305.726 7 21288231.780 21288227.142 21288230.992
+ 46.000 42.400
+ -21985710.119 7 -17131718.856 7 20396366.205 20396364.475 20396365.028
+ 44.900 43.600
+ 06 1 2 4 11 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -64536.375 4 -50287.749 2 24798017.926 24798013.801 24798016.171
+ 25.900 17.800
+ -2517592.074 4 -1961760.212 4 23240209.539 23240206.771 23240208.515
+ 29.500 24.600
+ -17582973.331 7 -13701014.748 8 20346165.641 20346162.596 20346164.733
+ 42.700 48.000
+ -21701976.730 8 -16910625.493 7 20538275.910 20538273.820 20538275.076
+ 48.500 42.400
+ -2459283.068 4 -1916314.748 3 24014284.175 24014282.740 24014283.822
+ 26.200 20.500
+ -16859899.066 6 -13137577.195 5 21696648.030 21696644.942 21696646.787
+ 39.300 31.800
+ -18106652.019 7 -14109076.649 7 21277298.042 21277293.794 21277297.426
+ 45.900 42.600
+ -21941355.617 7 -17097156.915 7 20404806.562 20404804.830 20404805.463
+ 44.900 43.500
+ 06 1 2 4 11 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -73158.656 4 -57006.432 3 24796377.196 24796372.936 24796375.460
+ 25.900 19.300
+ -2604904.961 5 -2029796.206 4 23223594.468 23223591.720 23223593.529
+ 30.600 24.900
+ -17578155.191 7 -13697260.359 7 20347082.614 20347079.437 20347081.695
+ 42.700 47.900
+ -21719807.366 8 -16924519.489 7 20534882.924 20534880.862 20534882.089
+ 48.500 42.400
+ -2351146.274 4 -1832052.311 3 24034862.109 24034860.327 24034861.374
+ 26.200 19.900
+ -16768638.987 6 -13066465.459 5 21714013.797 21714011.068 21714013.013
+ 39.300 32.100
+ -18163866.351 7 -14153659.244 7 21266410.609 21266406.193 21266409.935
+ 45.800 42.500
+ -21896400.026 7 -17062126.595 7 20413361.140 20413359.602 20413360.207
+ 45.200 43.400
+ 06 1 2 4 12 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -81248.401 4 -63310.078 3 24794838.131 24794833.632 24794836.228
+ 29.000 20.500
+ -2692014.936 5 -2097674.095 4 23207017.939 23207015.298 23207016.865
+ 30.600 26.500
+ -17572958.076 7 -13693210.659 8 20348071.505 20348068.476 20348070.666
+ 42.900 48.000
+ -21736944.722 8 -16937873.271 7 20531621.851 20531619.773 20531620.901
+ 48.400 42.400
+ -2242984.921 4 -1747770.735 3 24055443.949 24055443.186 24055443.498
+ 24.600 23.000
+ -16676993.771 6 -12995053.617 5 21731452.894 21731450.520 21731452.520
+ 39.400 31.300
+ -18220837.910 7 -14198052.665 7 21255569.138 21255564.861 21255568.624
+ 46.100 42.600
+ -21850844.629 7 -17026628.890 7 20422030.360 20422028.557 20422029.140
+ 44.900 43.300
+ 06 1 2 4 12 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -88805.557 4 -69198.781 2 24793400.041 24793394.756 24793398.144
+ 27.400 17.800
+ -2778921.656 5 -2165393.601 4 23190479.719 23190477.408 23190478.968
+ 30.400 26.800
+ -17567381.237 7 -13688865.073 7 20349132.776 20349129.803 20349131.952
+ 42.700 47.900
+ -21753388.271 8 -16950686.424 7 20528492.565 20528490.578 20528491.746
+ 48.400 42.300
+ -2134800.495 3 -1663471.207 3 24076031.060 24076030.081 24076030.624
+ 23.800 22.100
+ -16584965.956 6 -12923343.649 5 21748966.606 21748963.017 21748965.195
+ 39.400 31.800
+ -18277565.259 7 -14242255.795 7 21244774.164 21244769.936 21244773.629
+ 45.700 42.700
+ -21804691.012 7 -16990665.044 7 20430812.734 20430811.247 20430811.810
+ 45.000 43.400
+ 06 1 2 4 13 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -95830.404 4 -74672.679 3 24792063.172 24792058.985 24792061.249
+ 25.900 22.100
+ -2865624.266 5 -2232954.040 4 23173980.890 23173978.632 23173979.960
+ 30.100 27.400
+ -17561423.419 7 -13684222.615 8 20350266.552 20350263.552 20350265.630
+ 42.700 48.000
+ -21769137.359 8 -16962958.440 7 20525495.683 20525493.656 20525494.881
+ 48.500 42.200
+ -2026594.586 4 -1579154.936 3 24096622.021 24096621.024 24096621.548
+ 27.100 20.500
+ -16492557.828 6 -12851337.345 5 21766551.654 21766547.482 21766550.014
+ 38.900 31.000
+ -18334047.255 7 -14286267.739 7 21234026.059 21234021.852 21234025.471
+ 45.700 42.700
+ -21757940.355 7 -16954235.970 7 20439709.469 20439707.586 20439708.306
+ 45.100 43.300
+ 06 1 2 4 13 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -102323.035 4 -79731.895 3 24790827.692 24790822.849 24790826.016
+ 25.900 21.100
+ -2952121.959 5 -2300354.822 4 23157520.844 23157518.675 23157519.972
+ 30.400 27.600
+ -17555084.595 7 -13679283.272 8 20351472.612 20351469.752 20351471.799
+ 42.800 48.000
+ -21784191.430 8 -16974688.881 7 20522631.164 20522629.023 20522630.257
+ 48.600 42.300
+ -1918368.772 4 -1494823.133 3 24117217.443 24117215.990 24117216.956
+ 26.500 19.300
+ -16399772.294 6 -12779036.940 5 21784206.586 21784204.190 21784206.207
+ 39.700 31.100
+ -18390282.499 7 -14330087.406 7 21223325.012 21223320.735 21223324.337
+ 46.000 43.100
+ -21710594.230 7 -16917342.891 7 20448719.063 20448717.247 20448717.995
+ 44.900 43.300
+ 06 1 2 4 14 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -108283.683 4 -84376.548 3 24789693.109 24789688.385 24789691.352
+ 24.900 18.600
+ -3038413.970 4 -2367595.331 4 23141100.245 23141097.730 23141099.124
+ 29.200 27.100
+ -17548364.060 7 -13674046.495 7 20352751.786 20352748.646 20352750.827
+ 42.800 47.900
+ -21798549.909 8 -16985877.307 7 20519898.619 20519896.760 20519897.870
+ 48.500 42.400
+ -1810124.536 3 -1410476.969 2 24137814.760 24137812.926 24137814.300
+ 22.600 16.100
+ -16306611.923 6 -12706444.456 5 21801935.030 21801932.103 21801934.138
+ 39.400 31.300
+ -18446269.685 7 -14373713.779 7 21212670.806 21212666.614 21212670.263
+ 45.800 42.800
+ -21662654.103 7 -16879986.958 7 20457841.515 20457839.980 20457840.588
+ 45.000 43.200
+ 06 1 2 4 14 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -113712.557 4 -88606.823 3 24788660.217 24788656.170 24788658.260
+ 24.600 19.900
+ -3124499.497 4 -2434674.948 4 23124718.991 23124716.182 23124717.883
+ 29.700 26.200
+ -17541261.210 7 -13668511.807 7 20354103.280 20354100.278 20354102.326
+ 42.800 47.800
+ -21812212.687 8 -16996523.625 7 20517298.629 20517296.750 20517297.905
+ 48.300 42.400
+ -1701863.267 3 -1326117.549 2 24158416.349 24158413.675 24158415.914
+ 23.400 13.900
+ -16213079.099 6 -12633561.761 5 21819734.694 21819730.913 21819733.131
+ 38.900 31.300
+ -18502007.719 7 -14417146.016 7 21202064.404 21202059.962 21202063.782
+ 46.000 42.900
+ -21614121.180 7 -16842169.106 7 20467077.247 20467075.398 20467076.095
+ 44.700 43.100
+ 06 1 2 4 15 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -118609.761 4 -92422.827 3 24787728.114 24787724.021 24787726.358
+ 24.600 21.600
+ -3210377.956 4 -2501593.202 4 23108376.599 23108374.208 23108375.869
+ 29.700 27.600
+ -17533775.200 7 -13662678.555 7 20355527.901 20355524.761 20355526.957
+ 42.800 47.800
+ -21825179.095 8 -17006627.318 7 20514831.334 20514829.243 20514830.505
+ 48.300 42.500
+ -1593586.630 3 -1241746.126 2 24179021.367 24179018.623 24179020.711
+ 23.800 15.100
+ -16119176.477 6 -12560390.909 5 21837602.249 21837599.934 21837601.812
+ 38.900 31.500
+ -18557494.955 7 -14460382.824 7 21191505.461 21191501.142 21191504.936
+ 46.100 43.000
+ -21564996.998 7 -16803890.535 7 20476425.266 20476423.480 20476424.158
+ 44.800 43.000
+ 06 1 2 4 15 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -122975.251 4 -95824.543 3 24786897.839 24786893.249 24786895.734
+ 27.100 22.600
+ -3296048.310 4 -2568349.296 4 23092073.936 23092071.777 23092073.322
+ 29.700 27.600
+ -17525905.330 7 -13656546.195 7 20357025.565 20357022.429 20357024.587
+ 42.800 47.800
+ -21837449.258 8 -17016188.477 7 20512496.334 20512494.386 20512495.464
+ 48.200 42.400
+ -1485296.187 4 -1157363.965 3 24199628.405 24199626.387 24199627.694
+ 24.900 19.300
+ -16024906.629 6 -12486933.901 5 21855541.791 21855539.109 21855540.805
+ 38.000 31.300
+ -18612730.426 7 -14503423.449 7 21180994.322 21180990.260 21180993.762
+ 45.800 43.200
+ -21515283.009 7 -16765152.371 7 20485885.509 20485883.906 20485884.425
+ 44.900 43.000
+ 06 1 2 4 16 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -126809.628 4 -98812.289 3 24786167.931 24786163.465 24786166.121
+ 26.800 19.900
+ -3381510.109 4 -2634942.879 4 23075810.779 23075808.991 23075810.325
+ 28.100 27.100
+ -17517651.517 7 -13650114.658 7 20358596.137 20358593.072 20358595.192
+ 42.900 47.800
+ -21849022.531 8 -17025206.613 7 20510293.881 20510292.108 20510293.072
+ 48.000 42.300
+ -1376993.119 4 -1072971.984 2 24220237.774 24220235.433 24220237.274
+ 25.300 17.800
+ -15930272.405 6 -12413192.982 5 21873551.782 21873546.936 21873549.805
+ 38.100 30.400
+ -18667712.812 7 -14546266.861 7 21170531.613 21170527.414 21170530.900
+ 45.700 43.100
+ -21464980.746 7 -16725955.817 7 20495457.850 20495456.112 20495456.628
+ 44.700 43.000
+ 06 1 2 4 16 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -130113.246 4 -101386.578 3 24785539.343 24785535.159 24785537.566
+ 25.300 22.600
+ -3466762.616 4 -2701373.363 4 23059588.031 23059586.066 23059587.364
+ 27.900 27.400
+ -17509012.813 7 -13643383.197 7 20360239.716 20360236.896 20360238.935
+ 42.800 47.700
+ -21859898.304 8 -17033681.243 7 20508224.511 20508222.446 20508223.629
+ 48.100 42.500
+ -1268679.252 4 -988571.575 3 24240848.550 24240846.910 24240847.920
+ 24.200 18.600
+ -15835276.052 6 -12339169.872 5 21891626.906 21891624.387 21891626.535
+ 38.400 30.800
+ -18722440.873 7 -14588912.102 7 21160117.144 21160112.936 21160116.613
+ 46.200 43.000
+ -21414091.912 7 -16686302.193 7 20505141.461 20505139.858 20505140.448
+ 45.000 42.700
+ 06 1 2 4 17 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -132886.306 4 -103547.396 3 24785011.437 24785007.146 24785009.801
+ 25.900 19.900
+ -3551804.948 4 -2767640.082 4 23043405.013 23043402.645 23043404.216
+ 27.600 25.900
+ -17499988.704 7 -13636351.426 7 20361957.134 20361954.151 20361956.194
+ 42.800 47.800
+ -21870076.312 7 -17041612.156 7 20506287.511 20506285.613 20506286.784
+ 47.800 42.700
+ -1160355.813 4 -904163.674 1 24261462.873 24261459.610 24261462.125
+ 26.800 11.000
+ -15739920.363 6 -12264866.748 5 21909773.485 21909770.053 21909772.214
+ 38.100 30.800
+ -18776913.277 7 -14631358.130 7 21149751.309 21149747.194 21149750.785
+ 46.000 43.100
+ -21362618.004 7 -16646192.662 7 20514936.852 20514935.047 20514935.732
+ 44.800 42.700
+ 06 1 2 4 17 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -135129.074 4 -105295.015 3 24784584.883 24784580.120 24784583.071
+ 29.000 21.100
+ -3636636.477 4 -2833742.556 4 23027262.193 23027259.847 23027261.407
+ 28.600 24.600
+ -17490578.660 7 -13629018.925 7 20363747.748 20363744.853 20363746.834
+ 42.700 47.700
+ -21879556.933 7 -17048999.654 7 20504483.510 20504481.506 20504482.678
+ 47.700 42.700
+ -1052024.444 3 -819749.619 2 24282076.856 24282075.055 24282076.259
+ 23.800 17.000
+ -15644208.160 6 -12190285.862 5 21927986.897 21927983.374 21927985.681
+ 37.800 30.600
+ -18831128.656 7 -14673603.880 7 21139434.771 21139430.323 21139433.995
+ 45.800 43.100
+ -21310560.509 7 -16605628.397 7 20524842.919 20524841.301 20524841.888
+ 44.800 42.800
+ 06 1 2 4 18 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -136841.625 4 -106629.458 3 24784258.426 24784254.542 24784256.699
+ 26.800 19.900
+ -3721256.642 4 -2899680.336 4 23011159.525 23011157.050 23011158.627
+ 29.500 24.200
+ -17480782.067 7 -13621385.214 7 20365611.969 20365609.079 20365611.163
+ 43.000 47.700
+ -21888339.464 7 -17055843.184 7 20502812.328 20502810.254 20502811.434
+ 47.700 42.700
+ -943686.448 4 -735330.387 3 24302693.671 24302691.766 24302693.126
+ 24.200 22.100
+ -15548142.101 6 -12115429.198 4 21946266.371 21946264.071 21946266.080
+ 37.500 29.700
+ -18885085.369 7 -14715648.067 7 21129167.152 21129162.597 21129166.415
+ 46.000 43.200
+ -21257921.072 7 -16564610.667 7 20534859.710 20534858.273 20534858.772
+ 45.000 42.700
+ 06 1 2 4 18 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -138024.703 4 -107551.352 3 24784033.957 24784029.184 24784032.194
+ 28.100 18.600
+ -3805664.621 5 -2965452.779 3 22995097.290 22995094.419 22995096.329
+ 30.600 22.600
+ -17470598.224 7 -13613449.756 7 20367549.960 20367547.055 20367549.044
+ 42.900 47.800
+ -21896423.612 7 -17062142.522 7 20501273.997 20501271.889 20501273.163
+ 47.600 42.700
+ -835343.179 4 -650907.128 3 24323310.533 24323308.457 24323309.907
+ 24.200 21.600
+ -15451724.752 6 -12040298.819 4 21964615.832 21964611.750 21964614.098
+ 37.600 29.900
+ -18938782.738 7 -14757490.176 7 21118948.728 21118944.393 21118948.142
+ 46.100 43.200
+ -21204701.369 7 -16523140.785 7 20544987.302 20544985.637 20544986.145
+ 44.600 42.700
+ 06 1 2 4 19 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -138678.693 3 -108060.950 2 24783908.942 24783905.023 24783907.552
+ 22.600 17.000
+ -3889859.647 5 -3031059.297 3 22979075.511 22979072.564 22979074.624
+ 32.300 23.400
+ -17460026.702 7 -13605212.211 7 20369561.619 20369558.794 20369560.734
+ 42.900 47.800
+ -21903809.147 7 -17067897.485 7 20499868.549 20499866.505 20499867.683
+ 47.400 42.900
+ -726996.378 3 -566481.063 2 24343927.601 24343926.800 24343927.036
+ 21.100 17.000
+ -15354958.536 6 -11964896.604 4 21983028.683 21983025.771 21983027.921
+ 37.700 29.700
+ -18992219.138 7 -14799128.927 7 21108780.102 21108775.875 21108779.545
+ 46.200 43.400
+ -21150903.041 7 -16481220.026 7 20555224.650 20555223.148 20555223.599
+ 44.700 42.600
+ 06 1 2 4 19 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -138803.889 4 -108158.533 3 24783885.180 24783880.935 24783883.195
+ 24.900 19.300
+ -3973841.011 5 -3096499.307 4 22963094.592 22963091.419 22963093.656
+ 31.600 25.600
+ -17449067.040 7 -13596672.215 7 20371647.158 20371644.279 20371646.244
+ 42.800 47.700
+ -21910495.982 7 -17073108.002 7 20498595.925 20498594.135 20498595.139
+ 47.300 42.800
+ -618647.235 3 -482053.150 2 24364546.353 24364544.591 24364545.637
+ 22.100 17.800
+ -15257846.409 6 -11889224.826 5 22001508.903 22001505.655 22001507.890
+ 37.600 30.200
+ -19045393.183 7 -14840563.246 7 21098661.673 21098657.145 21098661.017
+ 46.400 43.600
+ -21096527.645 7 -16438849.601 7 20565572.080 20565570.414 20565571.039
+ 44.700 42.300
+ 06 1 2 4 20 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -138400.896 4 -107844.504 3 24783962.201 24783957.990 24783960.563
+ 29.000 20.500
+ -4057607.991 5 -3161772.259 4 22947154.213 22947151.170 22947153.351
+ 32.000 25.900
+ -17437718.897 7 -13587829.507 7 20373806.822 20373803.728 20373805.808
+ 43.200 47.600
+ -21916484.431 7 -17077774.333 7 20497456.269 20497454.569 20497455.531
+ 47.300 42.900
+ -510297.175 3 -397624.557 2 24385164.102 24385162.161 24385163.967
+ 23.800 16.100
+ -15160390.839 6 -11813285.464 5 22020054.919 22020050.991 22020053.294
+ 37.200 30.400
+ -19098303.766 7 -14881792.272 7 21088592.919 21088588.578 21088592.312
+ 46.100 43.600
+ -21041576.849 7 -16396030.811 7 20576028.732 20576027.204 20576027.741
+ 44.600 42.200
+ 06 1 2 4 20 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -137469.813 4 -107118.954 3 24784138.825 24784134.487 24784136.866
+ 26.200 18.600
+ -4141159.761 5 -3226877.525 4 22931254.507 22931251.859 22931253.654
+ 32.700 26.500
+ -17425981.551 7 -13578683.526 7 20376040.180 20376037.324 20376039.335
+ 43.300 47.700
+ -21921774.425 7 -17081896.405 7 20496449.420 20496447.788 20496448.725
+ 47.200 42.700
+ -401947.659 4 -313196.338 2 24405782.626 24405779.458 24405782.119
+ 24.600 13.900
+ -15062594.840 6 -11737080.810 4 22038663.062 22038660.842 22038662.802
+ 36.800 29.500
+ -19150949.374 7 -14922814.824 7 21078574.800 21078570.492 21078574.185
+ 46.300 43.800
+ -20986052.419 7 -16352765.042 7 20586594.881 20586593.175 20586593.809
+ 44.600 42.200
+ 06 1 2 4 21 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -136011.283 4 -105982.424 3 24784417.066 24784412.303 24784415.198
+ 26.800 19.900
+ -4224495.934 5 -3291814.770 4 22915395.988 22915393.542 22915395.097
+ 30.200 28.100
+ -17413854.142 7 -13569233.594 7 20378347.949 20378345.031 20378347.063
+ 43.100 47.500
+ -21926365.459 7 -17085473.833 7 20495575.969 20495574.146 20495575.170
+ 47.000 42.800
+ -293600.054 4 -228769.621 2 24426400.850 24426398.333 24426400.239
+ 25.300 15.100
+ -14964460.884 6 -11660612.811 4 22057338.676 22057335.290 22057337.478
+ 36.600 29.200
+ -19203328.763 7 -14963629.929 7 21068607.692 21068603.145 21068606.963
+ 46.300 44.000
+ -20929956.127 7 -16309053.654 7 20597269.679 20597267.926 20597268.596
+ 44.900 42.200
+ 06 1 2 4 21 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -134025.793 3 -104435.332 3 24784794.516 24784790.115 24784792.626
+ 23.400 21.600
+ -4307615.857 4 -3356583.512 4 22899578.795 22899576.421 22899577.799
+ 29.200 27.900
+ -17401336.482 7 -13559479.578 7 20380730.103 20380727.036 20380729.244
+ 43.400 47.300
+ -21930257.343 7 -17088506.469 7 20494835.352 20494833.513 20494834.583
+ 47.100 42.700
+ -185255.672 3 -144345.452 3 24447018.156 24447016.544 24447017.392
+ 23.400 20.500
+ -14865991.577 6 -11583883.517 4 22076076.532 22076073.403 22076075.497
+ 37.100 29.500
+ -19255440.633 7 -15004236.580 7 21058690.847 21058686.521 21058690.181
+ 46.600 44.000
+ -20873289.686 7 -16264897.997 7 20608052.497 20608051.250 20608051.626
+ 44.400 42.100
+ 06 1 2 4 22 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -131513.905 3 -102477.951 3 24785272.934 24785268.459 24785270.860
+ 23.000 23.000
+ -4390518.505 4 -3421182.943 4 22883802.938 22883800.613 22883801.989
+ 29.500 29.000
+ -17388428.039 7 -13549421.053 7 20383186.529 20383183.506 20383185.687
+ 43.200 47.400
+ -21933450.722 7 -17090994.818 7 20494227.618 20494225.872 20494226.970
+ 47.200 42.600
+ -76915.902 3 -59924.888 3 24467633.016 24467632.311 24467632.757
+ 23.800 20.500
+ -14767189.831 6 -11506895.153 4 22094877.378 22094874.707 22094876.798
+ 37.100 29.000
+ -19307283.464 7 -15044633.589 7 21048825.661 21048821.156 21048824.859
+ 46.300 44.000
+ -20816054.803 7 -16220299.402 6 20618944.267 20618942.680 20618943.176
+ 44.500 41.900
+ 06 1 2 4 22 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -128476.200 4 -100110.906 4 24785850.544 24785846.643 24785849.044
+ 27.400 25.300
+ -4473203.495 4 -3485612.773 4 22868068.380 22868065.997 22868067.547
+ 29.900 27.900
+ -17375128.100 7 -13539057.465 7 20385717.423 20385714.399 20385716.466
+ 43.400 47.400
+ -21935945.458 7 -17092938.770 7 20493753.138 20493751.145 20493752.203
+ 47.000 42.700
+ 31417.918 4 24491.087 3 24488250.098 24488247.702 24488249.374
+ 25.900 18.600
+ -14668058.292 6 -11429649.840 4 22113742.760 22113738.995 22113741.180
+ 36.500 29.500
+ -19358856.189 7 -15084820.127 7 21039011.697 21039007.199 21039010.997
+ 46.500 44.100
+ -20758253.382 7 -16175259.341 6 20629943.685 20629941.910 20629942.487
+ 44.300 41.900
+ 06 1 2 4 23 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -124913.129 4 -97334.473 3 24786529.087 24786524.318 24786527.026
+ 26.200 22.100
+ -4555670.026 5 -3549872.396 4 22852375.802 22852373.218 22852374.896
+ 31.600 27.600
+ -17361436.177 7 -13528388.436 7 20388322.757 20388319.881 20388321.948
+ 43.600 47.400
+ -21937741.294 7 -17094338.120 7 20493411.054 20493409.382 20493410.345
+ 46.800 42.700
+ 139744.439 4 108901.326 2 24508863.895 24508861.514 24508863.449
+ 26.800 17.800
+ -14568599.748 6 -11352149.691 4 22132667.547 22132665.183 22132667.194
+ 36.200 28.800
+ -19410157.506 7 -15124795.181 7 21029249.321 21029244.804 21029248.697
+ 46.800 44.000
+ -20699887.379 7 -16129779.347 6 20641050.358 20641048.495 20641049.269
+ 44.400 41.600
+ 06 1 2 4 23 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -120825.383 4 -94149.254 3 24787306.540 24787302.294 24787304.689
+ 24.900 20.500
+ -4637917.578 5 -3613961.385 4 22836724.237 22836722.012 22836723.392
+ 32.300 27.400
+ -17347351.947 7 -13517413.713 7 20391003.168 20390999.999 20391002.273
+ 43.700 47.300
+ -21938838.919 7 -17095193.415 7 20493202.202 20493200.452 20493201.463
+ 47.000 42.600
+ 248062.204 3 193304.776 2 24529474.861 24529473.182 24529474.662
+ 19.900 15.100
+ -14468816.653 5 -11274396.667 4 22151656.850 22151653.257 22151655.346
+ 35.800 28.400
+ -19461185.860 7 -15164557.535 7 21019538.814 21019534.501 21019538.236
+ 46.600 44.300
+ -20640958.632 7 -16083860.849 6 20652264.245 20652262.365 20652263.033
+ 44.500 41.800
+ 06 1 2 4 24 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -116213.472 4 -90555.564 3 24788184.300 24788179.684 24788182.506
+ 26.800 19.900
+ -4719945.315 5 -3677879.084 4 22821114.715 22821112.628 22821114.000
+ 31.300 27.400
+ -17332874.737 7 -13506132.774 7 20393758.001 20393754.904 20393757.092
+ 43.600 47.200
+ -21939238.319 7 -17095504.631 7 20493126.356 20493124.405 20493125.550
+ 47.000 42.400
+ 356369.971 3 277700.449 1 24550085.258 24550083.649 24550084.766
+ 22.100 6.500
+ -14368712.035 6 -11196393.099 4 22170704.158 22170702.464 22170704.331
+ 36.500 28.600
+ -19511940.014 7 -15204106.227 7 21009880.800 21009876.423 21009880.170
+ 46.700 44.400
+ -20581468.973 7 -16037505.280 6 20663584.569 20663582.975 20663583.426
+ 44.000 41.900
+ 06 1 2 4 24 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -111078.259 4 -86554.096 3 24789161.663 24789157.127 24789159.816
+ 25.900 21.600
+ -4801752.551 5 -3741624.967 4 22805547.914 22805545.262 22805546.827
+ 31.800 27.600
+ -17318004.193 7 -13494545.337 7 20396587.738 20396584.631 20396586.739
+ 43.500 47.000
+ -21938939.623 7 -17095271.882 7 20493183.187 20493181.298 20493182.416
+ 47.100 42.400
+ 464666.421 2 362087.307 1 24570693.813 24570691.490 24570692.932
+ 17.800 11.000
+ -14268288.733 6 -11118141.192 4 22189816.801 22189812.750 22189815.101
+ 36.200 28.800
+ -19562418.541 7 -15243440.142 7 21000274.947 21000270.554 21000274.427
+ 46.600 44.300
+ -20521420.253 7 -15990714.080 6 20675011.395 20675009.838 20675010.261
+ 44.000 41.800
+ 06 1 2 4 25 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -105420.080 4 -82145.118 2 24790238.403 24790233.634 24790236.630
+ 27.400 17.000
+ -4883338.901 5 -3805198.728 4 22790022.401 22790019.939 22790021.462
+ 31.600 29.000
+ -17302739.722 7 -13482650.950 7 20399492.371 20399489.373 20399491.524
+ 43.800 47.000
+ -21937943.055 7 -17094495.326 7 20493372.799 20493370.870 20493371.993
+ 47.100 42.400
+ 572950.291 3 446464.340 2 24591299.555 24591298.116 24591299.075
+ 21.100 15.100
+ -14167549.306 6 -11039642.978 4 22208984.732 22208982.865 22208984.728
+ 36.000 29.500
+ -19612620.400 7 -15282558.473 7 20990721.926 20990717.461 20990721.267
+ 46.400 44.400
+ -20460814.502 7 -15943488.832 6 20686544.100 20686542.670 20686543.157
+ 44.300 41.600
+ 06 1 2 4 25 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -99239.923 4 -77329.407 3 24791414.400 24791409.894 24791412.619
+ 24.600 21.100
+ -4964703.488 5 -3868599.678 4 22774539.335 22774536.816 22774538.536
+ 31.500 28.600
+ -17287080.877 7 -13470449.254 7 20402472.468 20402469.230 20402471.433
+ 43.800 47.000
+ -21936248.934 7 -17093175.234 7 20493695.205 20493693.381 20493694.435
+ 47.300 42.300
+ 681220.275 3 530830.560 1 24611902.909 24611900.689 24611902.141
+ 21.600 9.000
+ -14066496.270 5 -10960900.368 4 22228216.595 22228212.665 22228214.869
+ 34.800 28.400
+ -19662544.013 7 -15321459.985 7 20981221.673 20981217.254 20981221.041
+ 46.400 44.500
+ -20399653.262 7 -15895830.737 6 20698183.134 20698181.297 20698181.935
+ 44.300 41.500
+ 06 1 2 4 26 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -92538.239 4 -72107.374 2 24792689.510 24792684.458 24792687.838
+ 27.900 15.100
+ -5045845.666 5 -3931827.335 4 22759098.207 22759095.948 22759097.338
+ 32.100 28.600
+ -17271027.104 7 -13457939.819 7 20405527.269 20405524.125 20405526.361
+ 43.900 46.800
+ -21933857.194 7 -17091311.534 7 20494150.629 20494148.555 20494149.830
+ 47.400 42.500
+ 789474.949 3 615184.830 2 24632502.634 24632500.514 24632502.122
+ 23.000 15.100
+ -13965132.541 5 -10881915.681 4 22247504.011 22247501.433 22247503.586
+ 35.600 27.900
+ -19712187.858 7 -15360143.502 7 20971774.814 20971770.379 20971774.190
+ 46.600 44.700
+ -20337938.521 7 -15847741.336 6 20709927.156 20709925.240 20709925.905
+ 44.100 41.300
+ 06 1 2 4 26 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -85315.996 4 -66479.575 2 24794063.709 24794059.108 24794062.105
+ 24.900 17.800
+ -5126764.893 5 -3994881.253 4 22743699.746 22743697.342 22743698.898
+ 33.000 27.900
+ -17254578.213 7 -13445122.501 7 20408657.244 20408654.194 20408656.369
+ 43.900 46.800
+ -21930768.463 7 -17088904.727 7 20494738.183 20494736.165 20494737.394
+ 47.300 42.400
+ 897713.204 3 699526.341 9 24653099.912 24653097.367 24653099.613
+ 22.100 -3.000
+ -13863461.181 5 -10802691.247 4 22266852.033 22266848.760 22266850.980
+ 35.300 28.100
+ -19761551.017 7 -15398608.298 7 20962381.083 20962376.830 20962380.552
+ 46.600 44.500
+ -20275672.407 7 -15799222.292 6 20721775.229 20721774.062 20721774.446
+ 44.000 41.100
+ 06 1 2 4 27 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -77573.808 4 -60446.722 3 24795537.092 24795532.943 24795535.377
+ 25.300 22.600
+ -5207460.437 5 -4057760.886 4 22728344.127 22728341.263 22728343.178
+ 33.200 26.200
+ -17237733.701 7 -13431996.908 7 20411862.778 20411859.608 20411861.807
+ 44.100 46.700
+ -21926982.925 7 -17085954.951 7 20495458.574 20495456.502 20495457.667
+ 47.300 42.300
+ 1005933.628 3 783853.953 2 24673693.039 24673691.573 24673692.337
+ 21.600 12.600
+ -13761484.822 5 -10723229.181 4 22286256.675 22286254.288 22286256.328
+ 35.600 27.900
+ -19810631.932 7 -15436853.166 7 20953041.400 20953037.100 20953040.806
+ 46.600 44.600
+ -20212856.884 7 -15750275.146 6 20733728.944 20733727.472 20733727.912
+ 44.100 41.200
+ 06 1 2 4 27 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -69312.419 4 -54009.228 3 24797109.598 24797104.648 24797108.016
+ 27.900 19.900
+ -5287931.748 5 -4120465.796 4 22713030.940 22713028.099 22713029.721
+ 32.800 26.200
+ -17220492.984 7 -13418562.584 7 20415143.473 20415140.395 20415142.617
+ 44.000 46.600
+ -21922500.938 7 -17082462.491 7 20496311.463 20496309.489 20496310.595
+ 47.400 42.200
+ 1114134.985 3 868166.669 3 24694283.476 24694281.814 24694282.795
+ 19.900 18.600
+ -13659206.006 5 -10643531.421 4 22305720.983 22305717.239 22305719.403
+ 33.800 26.500
+ -19859429.330 7 -15474877.118 7 20943755.518 20943751.236 20943754.970
+ 46.500 44.700
+ -20149494.007 7 -15700901.478 6 20745786.947 20745784.953 20745785.636
+ 44.100 41.300
+ 06 1 2 4 28 0.0000000 0 8G19G14G18G 9G26G21G22G15
+ -60532.874 3 -47168.072 3 24798779.997 24798775.701 24798778.262
+ 22.100 21.600
+ -5368178.131 5 -4182995.422 4 22697760.196 22697757.732 22697759.208
+ 32.100 27.400
+ -17202855.656 7 -13404819.214 7 20418499.983 20418496.715 20418499.052
+ 44.400 46.500
+ -21917323.178 7 -17078427.871 7 20497296.592 20497294.767 20497295.927
+ 47.500 42.300
+ 1222316.115 3 952463.665 2 24714869.681 24714867.768 24714868.982
+ 21.100 17.000
+ -13556627.777 5 -10563600.377 4 22325239.469 22325237.537 22325239.021
+ 34.500 28.600
+ -19907941.944 7 -15512679.151 7 20934524.062 20934519.626 20934523.320
+ 46.400 44.900
+ -20085585.694 7 -15651102.804 6 20757947.828 20757946.382 20757946.883
+ 44.100 41.000
+ 06 1 2 4 28 30.0000000 0 8G19G14G18G 9G26G21G22G15
+ -51235.228 3 -39923.167 3 24800549.431 24800544.329 24800547.039
+ 21.600 19.300
+ -5448198.792 5 -4245349.156 4 22682532.966 22682530.195 22682532.020
+ 33.100 28.100
+ -17184821.365 7 -13390766.525 7 20421931.725 20421928.560 20421930.851
+ 44.400 46.600
+ -21911449.335 7 -17073850.854 7 20498414.571 20498412.414 20498413.797
+ 47.800 42.000
+ 1330475.792 3 1036743.895 2 24735452.252 24735450.259 24735451.805
+ 21.600 17.800
+ -13453752.957 5 -10483438.200 4 22344817.520 22344813.893 22344815.984
+ 33.900 27.400
+ -19956168.249 7 -15550258.086 7 20925346.819 20925342.433 20925346.131
+ 46.300 44.900
+ -20021134.026 7 -15600880.745 6 20770212.687 20770211.126 20770211.686
+ 43.900 41.200
+ 06 1 2 4 29 0.0000000 0 7G19G14G18G 9G21G22G15
+ -41420.916 3 -32275.593 3 24802416.218 24802412.403 24802415.142
+ 20.500 19.300
+ -5527993.636 5 -4307526.935 4 22667348.844 22667345.854 22667347.941
+ 33.800 29.000
+ -17166389.684 7 -13376404.177 7 20425439.157 20425435.844 20425438.168
+ 44.300 46.300
+ -21904880.646 7 -17068732.390 7 20499664.752 20499662.436 20499663.857
+ 47.600 42.100
+ -13350584.229 5 -10403047.016 4 22364448.727 22364446.283 22364448.149
+ 34.500 27.100
+ -20004106.762 7 -15587612.771 7 20916224.473 20916220.141 20916223.780
+ 46.400 45.200
+ -19956141.149 7 -15550236.947 6 20782581.157 20782578.968 20782579.754
+ 43.800 41.300
+ 06 1 2 4 29 30.0000000 0 7G19G14G18G 9G21G22G15
+ -31090.791 3 -24226.166 2 24804381.877 24804377.758 24804380.265
+ 19.300 17.800
+ -5607561.795 5 -4369528.072 4 22652207.280 22652204.606 22652206.325
+ 33.100 28.600
+ -17147560.125 7 -13361731.799 7 20429022.055 20429018.926 20429021.256
+ 44.400 46.200
+ -21897616.993 7 -17063072.400 7 20501046.924 20501044.657 20501046.105
+ 47.900 42.000
+ -13247124.440 5 -10322429.005 4 22384136.855 22384133.811 22384135.842
+ 33.000 26.500
+ -20051756.271 7 -15624742.255 7 20907157.080 20907152.749 20907156.433
+ 46.400 45.200
+ -19890609.114 7 -15499173.034 6 20795050.695 20795049.236 20795049.824
+ 43.800 41.000
+ 06 1 2 4 30 0.0000000 0 6G14G18G 9G21G22G15
+ -5686902.518 5 -4431351.983 5 22637108.946 22637106.825 22637107.947
+ 32.600 30.100
+ -17128332.200 7 -13346749.003 7 20432681.195 20432677.986 20432680.319
+ 44.400 46.300
+ -21889659.193 7 -17056871.513 6 20502561.391 20502558.953 20502560.542
+ 47.900 41.900
+ -13143376.087 5 -10241586.173 4 22403878.715 22403876.653 22403878.262
+ 33.200 25.900
+ -20099115.469 7 -15661645.521 7 20898145.059 20898140.552 20898144.373
+ 46.500 45.100
+ -19824540.134 7 -15447690.728 6 20807623.116 20807621.782 20807622.286
+ 43.800 41.100
+ 06 1 2 4 30 30.0000000 0 6G14G18G 9G21G22G15
+ -5766015.267 5 -4492998.253 5 22622054.782 22622052.115 22622053.873
+ 34.400 30.200
+ -17108705.653 7 -13331455.593 7 20436415.876 20436412.867 20436414.979
+ 44.200 46.100
+ -21881007.941 7 -17050130.271 7 20504207.724 20504205.278 20504206.812
+ 47.700 42.100
+ -13039342.192 5 -10160520.833 4 22423676.877 22423673.664 22423675.437
+ 32.800 27.400
+ -20146183.014 7 -15698321.536 7 20889188.389 20889183.818 20889187.706
+ 46.600 45.100
+ -19757936.315 7 -15395791.663 6 20820298.054 20820295.999 20820296.833
+ 43.700 40.600
+ 06 1 2 4 31 0.0000000 0 6G14G18G 9G21G22G15
+ -5844899.311 5 -4554466.337 5 22607043.719 22607040.764 22607042.698
+ 34.400 30.200
+ -17088679.914 7 -13315851.119 7 20440226.804 20440223.667 20440225.889
+ 44.400 46.100
+ -21871663.875 7 -17042849.176 7 20505985.320 20505983.449 20505984.643
+ 47.500 42.000
+ -12935025.633 5 -10079235.233 4 22443526.167 22443524.539 22443526.027
+ 33.500 26.800
+ -20192957.172 7 -15734768.929 7 20880287.461 20880282.984 20880286.745
+ 46.400 45.200
+ -19690799.614 7 -15343477.354 6 20833073.847 20833071.642 20833072.477
+ 43.400 40.500
+ 06 1 2 4 31 30.0000000 0 6G14G18G 9G21G22G15
+ -5923554.401 5 -4615755.994 5 22592075.492 22592073.243 22592074.577
+ 32.800 30.200
+ -17068254.743 7 -13299935.403 7 20444113.528 20444110.424 20444112.610
+ 44.500 46.300
+ -21861627.200 7 -17035028.387 6 20507895.500 20507893.301 20507894.602
+ 47.700 41.900
+ -12830429.415 5 -9997731.715 4 22463432.172 22463428.552 22463430.432
+ 32.800 26.800
+ -20239437.113 7 -15770987.065 7 20871442.387 20871438.144 20871441.820
+ 46.500 45.300
+ -19623132.218 7 -15290749.518 6 20845949.797 20845948.381 20845948.925
+ 43.700 40.500
+ 06 1 2 4 32 0.0000000 0 6G14G18G 9G21G22G15
+ -6001979.821 5 -4676866.674 4 22577152.076 22577149.434 22577151.181
+ 33.600 29.700
+ -17047429.714 7 -13283708.106 7 20448076.350 20448073.251 20448075.391
+ 44.400 46.200
+ -21850898.716 7 -17026668.524 6 20509936.808 20509934.707 20509936.093
+ 47.400 41.900
+ -12725556.018 5 -9916012.205 4 22483386.898 22483385.360 22483386.935
+ 33.000 27.100
+ -20285621.425 7 -15806974.841 7 20862653.845 20862649.564 20862653.319
+ 46.700 45.400
+ -19554936.299 7 -15237609.853 6 20858926.938 20858925.669 20858926.150
+ 43.600 40.500
+ 06 1 2 4 32 30.0000000 0 6G14G18G 9G21G22G15
+ -6080174.931 5 -4737797.925 4 22562272.387 22562269.319 22562271.349
+ 34.900 29.700
+ -17026204.564 7 -13267169.034 7 20452115.645 20452112.331 20452114.655
+ 44.400 46.200
+ -21839479.460 7 -17017770.396 6 20512109.992 20512107.794 20512109.194
+ 47.600 41.900
+ -12620408.189 5 -9834078.875 4 22503397.735 22503394.264 22503396.207
+ 32.400 26.500
+ -20331508.699 7 -15842731.155 7 20853921.646 20853917.503 20853921.162
+ 46.400 45.300
+ -19486214.292 7 -15184060.251 6 20872004.947 20872003.179 20872003.791
+ 43.600 40.600
+ 06 1 2 4 33 0.0000000 0 6G14G18G 9G21G22G15
+ -6158139.085 5 -4798549.195 4 22547435.441 22547432.856 22547434.545
+ 33.400 29.700
+ -17004578.956 7 -13250317.913 7 20456230.650 20456227.571 20456229.764
+ 44.700 46.100
+ -21827369.706 7 -17008334.224 6 20514414.230 20514412.269 20514413.505
+ 47.400 41.800
+ -12514988.918 5 -9751934.006 4 22523457.446 22523455.019 22523456.864
+ 33.400 27.100
+ -20377097.249 7 -15878254.701 7 20845246.573 20845242.353 20845245.956
+ 46.400 45.500
+ -19416968.225 7 -15130102.281 6 20885182.198 20885180.243 20885180.912
+ 43.400 40.500
+ 06 1 2 4 33 30.0000000 0 6G14G18G 9G21G22G15
+ -6235871.715 5 -4859120.049 5 22532643.664 22532640.932 22532642.828
+ 34.000 30.400
+ -16982552.451 7 -13233154.409 7 20460422.096 20460419.075 20460421.244
+ 44.800 46.100
+ -21814570.267 7 -16998360.629 6 20516849.854 20516847.843 20516849.082
+ 47.300 41.900
+ -12409301.121 5 -9669579.925 4 22543569.008 22543566.731 22543568.622
+ 33.500 24.600
+ -20422385.863 7 -15913544.527 7 20836628.700 20836624.165 20836627.995
+ 46.500 45.600
+ -19347200.150 7 -15075737.558 6 20898458.023 20898456.686 20898457.083
+ 43.500 40.600
+ 06 1 2 4 34 0.0000000 0 6G14G18G 9G21G22G15
+ -6313372.218 5 -4919510.029 5 22517895.993 22517893.462 22517895.093
+ 34.400 30.600
+ -16960124.512 7 -13215678.097 7 20464690.030 20464686.988 20464689.092
+ 44.700 46.100
+ -21801082.043 7 -16987850.325 6 20519416.854 20519414.625 20519415.981
+ 47.500 41.900
+ -12303347.558 5 -9587018.706 3 22563732.728 22563728.786 22563731.295
+ 31.800 23.800
+ -20467373.405 7 -15948599.753 7 20828067.663 20828063.170 20828067.089
+ 46.400 45.400
+ -19276912.328 7 -15020967.844 6 20911833.149 20911832.081 20911832.345
+ 43.400 40.400
+ 06 1 2 4 34 30.0000000 0 6G14G18G 9G21G22G15
+ -6390640.201 5 -4979718.818 4 22503191.662 22503189.641 22503190.579
+ 33.200 29.700
+ -16937294.993 7 -13197888.858 7 20469034.381 20469031.332 20469033.396
+ 44.600 46.100
+ -21786905.687 7 -16976803.810 7 20522114.221 20522112.421 20522113.521
+ 47.500 42.100
+ -12197130.996 5 -9504252.602 4 22583943.122 22583941.229 22583942.960
+ 32.100 25.600
+ -20512058.371 7 -15983419.207 7 20819564.473 20819559.988 20819563.833
+ 46.500 45.500
+ -19206107.248 7 -14965795.078 6 20925307.382 20925305.860 20925306.347
+ 43.400 40.300
+ 06 1 2 4 35 0.0000000 0 6G14G18G 9G21G22G15
+ -6467674.603 5 -5039745.612 4 22488532.887 22488529.860 22488531.850
+ 33.500 29.200
+ -16914063.862 7 -13179786.677 7 20473455.035 20473452.042 20473454.132
+ 44.700 45.900
+ -21772042.370 7 -16965222.004 7 20524942.823 20524940.711 20524942.027
+ 47.600 42.000
+ -12090654.352 5 -9421283.837 4 22604206.926 22604203.166 22604205.436
+ 31.600 24.900
+ -20556439.322 7 -16018001.767 7 20811119.057 20811114.625 20811118.468
+ 46.600 45.600
+ -19134787.373 7 -14910221.161 6 20938879.721 20938877.440 20938878.356
+ 43.200 39.800
+ 06 1 2 4 35 30.0000000 0 6G14G18G 9G21G22G15
+ -6544475.746 5 -5099590.646 5 22473918.314 22473915.385 22473917.397
+ 34.500 30.100
+ -16890430.351 7 -13161370.953 7 20477952.343 20477949.303 20477951.476
+ 44.700 45.700
+ -21756492.602 7 -16953105.299 7 20527901.985 20527899.709 20527901.124
+ 47.600 42.100
+ -11983920.315 5 -9338114.463 4 22624516.020 22624514.169 22624515.870
+ 32.300 25.600
+ -20600514.783 7 -16052346.280 7 20802731.741 20802727.282 20802731.164
+ 46.700 45.600
+ -19062954.764 7 -14854247.705 6 20952548.604 20952546.684 20952547.440
+ 43.300 39.700
+ 06 1 2 4 36 0.0000000 0 6G14G18G 9G21G22G15
+ -6621042.279 5 -5159252.859 5 22459347.885 22459345.838 22459347.004
+ 34.500 30.800
+ -16866394.320 7 -13142641.580 7 20482526.231 20482523.162 20482525.409
+ 44.600 45.600
+ -21740256.658 7 -16940453.912 7 20530991.367 20530989.416 20530990.637
+ 47.700 42.000
+ -11876931.908 5 -9254746.904 4 22644875.826 22644873.134 22644875.270
+ 31.800 24.600
+ -20644283.670 7 -16086451.907 7 20794402.797 20794398.290 20794402.141
+ 46.400 45.700
+ -18990611.585 7 -14797876.413 6 20966314.659 20966313.218 20966313.747
+ 43.400 40.000
+ 06 1 2 4 36 30.0000000 0 6G14G18G 9G21G22G15
+ -6697373.939 5 -5218732.047 5 22444822.181 22444820.055 22444821.479
+ 34.500 30.100
+ -16841955.443 7 -13123598.301 7 20487176.981 20487173.691 20487176.044
+ 44.900 45.600
+ -21723336.831 7 -16927269.625 6 20534211.314 20534209.095 20534210.380
+ 47.500 41.900
+ -11769692.076 5 -9171183.412 4 22665283.780 22665280.375 22665282.334
+ 31.800 26.200
+ -20687744.483 7 -16120317.475 7 20786132.544 20786128.046 20786131.847
+ 46.400 45.800
+ -18917760.314 7 -14741109.200 6 20980177.548 20980176.378 20980176.798
+ 43.200 39.700
+ 06 1 2 4 37 0.0000000 0 6G14G18G 9G21G22G15
+ -6773470.153 5 -5278027.791 5 22430342.167 22430339.147 22430341.213
+ 34.700 30.200
+ -16817113.185 7 -13104240.696 7 20491904.290 20491901.082 20491903.345
+ 44.700 45.400
+ -21705733.460 7 -16913552.713 6 20537560.998 20537558.900 20537560.137
+ 47.400 41.900
+ -11662203.621 5 -9087426.208 4 22685737.444 22685735.026 22685736.530
+ 31.300 26.500
+ -20730895.799 7 -16153941.873 7 20777920.941 20777916.680 20777920.403
+ 46.500 46.000
+ -18844403.475 7 -14683948.041 6 20994137.226 20994135.659 20994136.209
+ 42.900 39.700
+ 06 1 2 4 37 30.0000000 0 6G14G18G 9G21G22G15
+ -6849330.470 5 -5337139.710 5 22415906.439 22415903.680 22415905.375
+ 35.700 31.300
+ -16791867.818 7 -13084568.985 7 20496708.336 20496705.177 20496707.360
+ 44.800 45.500
+ -21687447.258 7 -16899303.720 6 20541040.986 20541038.811 20541039.991
+ 47.500 41.900
+ -11554469.200 5 -9003477.341 4 22706239.145 22706235.906 22706238.318
+ 31.000 26.200
+ -20773736.455 7 -16187324.199 7 20769768.845 20769764.370 20769768.158
+ 46.400 46.100
+ -18770543.331 7 -14626394.698 6 21008192.750 21008190.795 21008191.461
+ 42.700 39.500
+ 06 1 2 4 38 0.0000000 0 6G14G18G 9G21G22G15
+ -6924954.250 5 -5396067.302 5 22401515.023 22401512.926 22401514.311
+ 34.400 31.000
+ -16766218.830 7 -13064582.764 7 20501588.929 20501585.966 20501588.084
+ 44.800 45.300
+ -21668479.206 7 -16884523.417 7 20544650.133 20544648.293 20544649.302
+ 47.500 42.000
+ -11446491.788 5 -8919339.143 4 22726786.161 22726783.735 22726785.236
+ 31.300 27.400
+ -20816264.940 7 -16220463.278 7 20761675.701 20761671.417 20761675.096
+ 46.400 46.100
+ -18696182.164 7 -14568450.941 6 21022343.190 21022341.425 21022341.991
+ 42.700 39.800
+ 06 1 2 4 38 30.0000000 0 6G14G18G 9G21G22G15
+ -7000340.753 5 -5454810.010 4 22387170.045 22387167.117 22387169.165
+ 35.400 29.700
+ -16740165.645 7 -13044281.588 7 20506546.928 20506543.649 20506545.944
+ 44.900 45.000
+ -21648830.527 7 -16869212.760 7 20548389.172 20548387.213 20548388.362
+ 47.500 42.000
+ -11338274.192 5 -8835013.791 4 22747378.853 22747376.659 22747378.338
+ 31.500 27.100
+ -20858479.751 7 -16253357.936 7 20753642.590 20753638.232 20753641.923
+ 46.600 46.100
+ -18621322.452 7 -14510118.712 6 21036588.090 21036586.783 21036587.018
+ 42.400 39.800
+ 06 1 2 4 39 0.0000000 0 6G14G18G 9G21G22G15
+ -7075489.621 5 -5513367.570 5 22372869.605 22372866.791 22372868.649
+ 35.600 31.100
+ -16713708.355 7 -13023665.528 7 20511581.543 20511578.290 20511580.669
+ 44.900 44.900
+ -21628502.162 7 -16853372.472 6 20552257.597 20552255.475 20552256.724
+ 47.500 41.800
+ -11229819.277 5 -8750503.508 4 22768018.585 22768014.946 22768017.259
+ 30.800 24.900
+ -20900379.419 7 -16286007.028 7 20745669.352 20745665.066 20745668.710
+ 46.600 46.300
+ -18545966.530 7 -14451399.823 6 21050927.266 21050926.552 21050926.725
+ 42.300 39.400
+ 06 1 2 4 39 30.0000000 0 6G14G18G 9G21G22G15
+ -7150400.579 5 -5571739.718 5 22358614.176 22358611.575 22358613.219
+ 35.300 31.000
+ -16686846.328 7 -13002734.080 7 20516693.242 20516690.014 20516692.292
+ 45.100 44.900
+ -21607495.214 7 -16837003.420 6 20556254.911 20556252.884 20556254.168
+ 47.300 41.600
+ -11121129.734 5 -8665810.400 4 22788700.793 22788697.749 22788699.868
+ 31.500 24.200
+ -20941962.996 7 -16318409.814 7 20737756.347 20737751.913 20737755.673
+ 46.700 46.200
+ -18470116.779 7 -14392296.133 6 21065360.787 21065360.396 21065360.396
+ 42.500 39.700
+ 06 1 2 4 40 0.0000000 0 6G14G18G 9G21G22G15
+ -7225072.882 6 -5629925.919 5 22344405.078 22344401.935 22344404.138
+ 36.500 31.000
+ -16659579.669 7 -12981487.331 7 20521881.860 20521878.647 20521880.966
+ 45.200 44.700
+ -21585810.674 7 -16820106.374 6 20560381.499 20560379.402 20560380.634
+ 47.300 41.800
+ -11012208.716 5 -8580936.921 3 22809427.163 22809424.739 22809426.638
+ 31.300 23.800
+ -20983229.139 7 -16350565.253 7 20729903.574 20729899.150 20729902.945
+ 46.500 46.200
+ -18393775.554 7 -14332809.481 6 21079888.506 21079887.609 21079887.770
+ 42.200 39.500
+ 06 1 2 4 40 30.0000000 0 6G14G18G 9G21G22G15
+ -7299505.908 5 -5687925.669 5 22330240.830 22330238.036 22330239.682
+ 35.400 32.000
+ -16631908.303 7 -12959925.230 7 20527147.634 20527144.272 20527146.692
+ 45.200 44.700
+ -21563450.191 7 -16802682.625 6 20564636.416 20564634.507 20564635.564
+ 47.500 41.700
+ -10903059.170 5 -8495885.362 3 22830198.672 22830195.292 22830197.418
+ 30.100 23.800
+ -21024176.165 7 -16382472.021 7 20722111.762 20722107.186 20722111.063
+ 46.600 46.200
+ -18316945.552 7 -14272941.964 6 21094508.911 21094507.781 21094508.138
+ 42.300 39.200
+ 06 1 2 4 41 0.0000000 0 6G14G18G 9G21G22G15
+ -7373699.344 5 -5745738.696 5 22316122.022 22316119.307 22316120.949
+ 35.800 31.000
+ -16603831.581 7 -12938047.266 7 20532490.522 20532487.210 20532489.472
+ 45.200 44.700
+ -21540414.386 7 -16784732.645 6 20569020.225 20569018.031 20569019.313
+ 47.500 41.600
+ -10793683.893 4 -8410657.882 3 22851011.852 22851008.476 22851010.809
+ 29.900 23.000
+ -21064802.778 7 -16414129.124 7 20714380.803 20714376.258 20714380.182
+ 46.700 46.300
+ -18239629.292 7 -14212695.541 6 21109221.815 21109220.529 21109220.990
+ 42.200 39.000
+ 06 1 2 4 41 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -161180.522 2 -125595.381 3 24445016.335 24445014.644 24445014.074
+ 17.800 20.500
+ -7447652.584 5 -5803364.600 5 22302049.304 22302046.211 22302048.479
+ 35.800 30.800
+ -16575349.272 7 -12915853.265 7 20537910.112 20537907.274 20537909.412
+ 45.300 44.700
+ -21516704.729 7 -16766257.585 6 20573531.874 20573529.744 20573531.054
+ 47.500 41.400
+ -10684085.516 5 -8325256.596 3 22871866.981 22871864.767 22871866.576
+ 30.400 21.600
+ -21105107.807 7 -16445535.639 7 20706710.901 20706706.443 20706710.212
+ 46.500 46.500
+ -18161829.116 7 -14152072.032 6 21124026.964 21124025.432 21124025.962
+ 42.000 38.700
+ 06 1 2 4 42 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -254057.528 3 -197966.998 3 24427338.701 24427340.204 24427339.288
+ 19.300 18.600
+ -7521365.083 6 -5860802.888 5 22288022.444 22288019.630 22288021.309
+ 36.200 31.800
+ -16546461.384 7 -12893343.226 7 20543407.664 20543404.387 20543406.725
+ 45.300 44.600
+ -21492322.375 7 -16747258.347 6 20578171.791 20578169.555 20578170.947
+ 47.400 41.300
+ -10574266.877 4 -8239683.673 3 22892765.208 22892762.255 22892764.483
+ 29.000 21.600
+ -21145089.528 7 -16476690.225 7 20699102.534 20699098.174 20699101.902
+ 46.400 46.400
+ -18083547.566 7 -14091073.434 6 21138923.660 21138921.832 21138922.411
+ 42.000 38.600
+ 06 1 2 4 42 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -346849.067 3 -270272.047 3 24409684.203 24409682.779 24409682.543
+ 22.100 19.300
+ -7594836.299 6 -5918053.164 5 22274041.167 22274038.510 22274040.047
+ 36.000 32.300
+ -16517167.858 7 -12870517.105 7 20548981.987 20548978.719 20548981.084
+ 45.400 44.600
+ -21467268.164 7 -16727735.585 6 20582939.406 20582937.174 20582938.518
+ 47.300 41.400
+ -10464231.182 4 -8153941.592 4 22913705.152 22913701.894 22913703.772
+ 29.000 24.900
+ -21184746.734 7 -16507591.944 7 20691556.031 20691551.615 20691555.391
+ 46.500 46.500
+ -18004787.154 6 -14029701.696 6 21153911.529 21153909.441 21153910.167
+ 41.900 38.400
+ 06 1 2 4 43 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -439551.940 3 -342508.042 1 24392042.669 24392041.646 24392041.449
+ 23.800 11.000
+ -7668065.713 6 -5975115.039 5 22260105.759 22260103.025 22260104.961
+ 36.300 31.100
+ -16487468.232 7 -12847374.544 7 20554633.504 20554630.460 20554632.620
+ 45.100 44.500
+ -21441544.052 7 -16707690.822 6 20587834.453 20587832.350 20587833.650
+ 47.400 41.300
+ -10353981.210 4 -8068032.550 4 22934684.554 22934681.891 22934683.252
+ 27.100 24.600
+ -21224078.231 7 -16538239.863 7 20684071.437 20684067.118 20684070.874
+ 46.600 46.600
+ -17925550.431 7 -13967958.803 6 21168989.958 21168987.750 21168988.549
+ 42.100 38.600
+ 06 1 2 4 43 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -532163.131 2 -414672.613 2 24374419.122 24374417.961 24374417.737
+ 15.100 12.600
+ -7741052.916 6 -6031988.168 5 22246216.937 22246214.257 22246215.842
+ 36.800 32.000
+ -16457362.263 7 -12823915.348 7 20560362.438 20560359.420 20560361.621
+ 45.200 44.400
+ -21415150.789 7 -16687124.645 6 20592856.834 20592854.860 20592856.065
+ 47.300 41.200
+ -10243519.982 5 -7981958.943 3 22955703.924 22955701.542 22955703.537
+ 30.200 23.000
+ -21263082.368 7 -16568632.698 7 20676649.200 20676644.857 20676648.680
+ 46.600 46.600
+ -17845840.125 6 -13905846.887 6 21184158.390 21184156.111 21184156.966
+ 41.900 38.400
+ 06 1 2 4 44 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -624679.534 3 -486763.280 2 24356813.164 24356813.596 24356812.510
+ 23.000 17.000
+ -7813797.276 6 -6088672.065 5 22232374.070 22232371.577 22232373.084
+ 36.500 32.000
+ -16426850.133 7 -12800139.669 7 20566168.794 20566165.564 20566167.891
+ 45.300 44.300
+ -21388089.953 7 -16666038.277 6 20598006.573 20598004.288 20598005.707
+ 47.500 41.100
+ -10132850.675 4 -7895723.163 4 22976764.244 22976761.481 22976763.082
+ 29.500 25.300
+ -21301757.944 7 -16598769.503 7 20669289.555 20669285.184 20669288.843
+ 46.300 46.800
+ -17765658.642 6 -13843367.821 6 21199416.199 21199414.217 21199414.794
+ 41.700 38.200
+ 06 1 2 4 44 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -717097.875 3 -558777.546 3 24339226.166 24339226.523 24339225.764
+ 22.600 18.600
+ -7886298.318 6 -6145166.372 5 22218577.243 22218574.989 22218576.469
+ 36.300 32.100
+ -16395931.366 7 -12776047.124 7 20572052.505 20572049.278 20572051.568
+ 45.300 44.400
+ -21360362.947 7 -16644432.818 6 20603282.805 20603280.567 20603282.011
+ 47.500 40.900
+ -10021975.319 4 -7809326.799 4 22997863.392 22997860.528 22997862.113
+ 29.000 24.600
+ -21340103.671 7 -16628649.291 7 20661992.498 20661988.242 20661991.969
+ 46.400 46.900
+ -17685008.591 6 -13780523.643 6 21214763.547 21214761.303 21214762.051
+ 41.300 38.200
+ 06 1 2 4 45 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -809415.220 2 -630713.071 2 24321659.478 24321658.836 24321658.433
+ 16.100 15.100
+ -7958555.565 6 -6201470.699 5 22204827.621 22204824.646 22204826.590
+ 36.300 32.300
+ -16364605.816 7 -12751637.607 7 20578013.406 20578010.511 20578012.545
+ 45.200 44.400
+ -21331970.874 7 -16622309.122 6 20608685.679 20608683.424 20608684.872
+ 47.400 41.000
+ -9910896.913 4 -7722772.271 4 23019000.227 23018998.075 23018999.664
+ 29.700 24.900
+ -21378117.943 7 -16658270.802 7 20654758.791 20654754.363 20654758.111
+ 46.600 46.900
+ -17603892.459 6 -13717316.279 6 21230199.550 21230197.298 21230198.090
+ 41.400 38.300
+ 06 1 2 4 45 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -901628.291 3 -702567.387 3 24304112.016 24304111.996 24304110.952
+ 19.300 21.600
+ -8030568.698 6 -6257584.810 5 22191123.851 22191120.803 22191122.853
+ 36.700 31.500
+ -16332873.417 7 -12726911.064 7 20584051.903 20584049.028 20584051.096
+ 45.400 44.400
+ -21302915.359 7 -16599668.463 6 20614214.686 20614212.459 20614213.835
+ 47.400 41.200
+ -9799618.673 5 -7636061.999 3 23040176.108 23040173.645 23040175.224
+ 30.100 23.400
+ -21415799.403 7 -16687632.977 7 20647588.173 20647583.815 20647587.520
+ 46.400 46.900
+ -17522312.868 6 -13653747.784 6 21245723.501 21245721.478 21245722.075
+ 41.500 38.400
+ 06 1 2 4 46 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -993733.877 3 -774337.911 3 24286585.258 24286584.615 24286583.675
+ 18.600 18.600
+ -8102337.162 6 -6313508.281 5 22177466.723 22177464.081 22177465.737
+ 37.000 33.000
+ -16300734.315 7 -12701867.614 7 20590167.872 20590164.712 20590166.982
+ 45.300 44.100
+ -21273198.205 7 -16576512.241 6 20619869.629 20619867.590 20619868.791
+ 47.300 41.200
+ -9688143.257 4 -7549198.054 3 23061389.871 23061386.451 23061388.365
+ 27.600 21.600
+ -21453146.960 7 -16716734.972 7 20640481.128 20640476.808 20640480.523
+ 46.400 47.000
+ -17440272.475 6 -13589820.225 6 21261334.863 21261333.171 21261333.579
+ 41.200 38.300
+ 06 1 2 4 46 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1085729.025 3 -846022.401 3 24269077.498 24269078.598 24269077.053
+ 21.600 20.500
+ -8173860.451 6 -6369240.696 5 22163856.353 22163853.741 22163855.282
+ 37.400 32.600
+ -16268187.939 7 -12676506.805 7 20596361.245 20596358.010 20596360.330
+ 45.400 44.000
+ -21242820.845 7 -16552841.566 6 20625650.194 20625648.239 20625649.438
+ 47.300 41.200
+ -9576473.999 4 -7462183.099 3 23082639.136 23082637.151 23082638.023
+ 26.500 23.800
+ -21490159.174 7 -16745575.655 7 20633437.901 20633433.717 20633437.319
+ 46.600 47.300
+ -17357773.907 6 -13525535.639 6 21277033.786 21277032.249 21277032.556
+ 41.100 37.800
+ 06 1 2 4 47 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1177610.518 3 -917618.317 1 24251594.615 24251592.987 24251593.327
+ 23.400 9.000
+ -8245138.081 6 -6424781.703 5 22150292.916 22150289.912 22150291.876
+ 37.600 33.000
+ -16235234.431 7 -12650828.754 7 20602632.015 20602628.991 20602631.058
+ 45.300 44.000
+ -21211784.125 7 -16528657.114 6 20631556.406 20631554.317 20631555.626
+ 47.400 41.200
+ -9464613.506 4 -7375019.127 3 23103925.347 23103923.041 23103924.539
+ 27.400 23.000
+ -21526834.355 7 -16774153.718 7 20626458.952 20626454.622 20626458.327
+ 46.600 47.300
+ -17274819.978 6 -13460896.224 6 21292819.679 21292817.843 21292818.391
+ 41.000 37.800
+ 06 1 2 4 47 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1269375.174 3 -989123.225 2 24234131.842 24234131.049 24234130.728
+ 23.400 16.100
+ -8316169.688 6 -6480131.000 5 22136775.957 22136772.890 22136774.883
+ 37.600 33.000
+ -16201873.528 7 -12624833.249 7 20608980.345 20608977.330 20608979.444
+ 45.400 43.800
+ -21180090.039 7 -16503960.423 6 20637587.550 20637585.528 20637586.781
+ 47.300 41.100
+ -9352564.611 4 -7287708.369 3 23125247.659 23125245.004 23125246.896
+ 27.100 21.100
+ -21563171.632 7 -16802468.485 7 20619544.225 20619539.643 20619543.608
+ 46.700 47.100
+ -17191413.201 6 -13395903.947 6 21308691.412 21308689.798 21308690.096
+ 40.800 38.200
+ 06 1 2 4 48 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1361019.962 3 -1060534.721 1 24216692.437 24216691.494 24216691.630
+ 23.800 11.000
+ -8386954.511 6 -6535287.984 5 22123305.928 22123303.239 22123304.954
+ 37.600 32.800
+ -16168105.265 7 -12598520.327 7 20615406.193 20615403.200 20615405.404
+ 45.500 43.800
+ -21147739.500 7 -16478752.208 6 20643743.559 20643741.660 20643742.788
+ 47.300 41.100
+ -9240329.999 4 -7200252.846 3 23146604.733 23146602.708 23146604.774
+ 28.100 20.500
+ -21599169.492 7 -16830518.764 7 20612694.111 20612689.567 20612693.457
+ 46.800 47.200
+ -17107556.282 6 -13330560.910 6 21324648.898 21324647.165 21324647.573
+ 40.900 38.100
+ 06 1 2 4 48 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1452541.578 3 -1131850.277 3 24199277.196 24199275.898 24199275.728
+ 21.600 19.300
+ -8457492.352 6 -6590252.526 5 22109883.199 22109880.331 22109882.257
+ 37.400 33.200
+ -16133929.458 7 -12571889.829 7 20621909.677 20621906.696 20621908.820
+ 45.300 43.800
+ -21114734.785 7 -16453034.247 6 20650024.226 20650022.230 20650023.479
+ 47.300 41.300
+ -9127913.014 4 -7112655.233 3 23167998.013 23167994.935 23167996.826
+ 26.800 18.600
+ -21634826.371 7 -16858303.344 7 20605908.751 20605904.376 20605908.173
+ 47.100 47.400
+ -17023251.851 6 -13264869.157 6 21340691.510 21340689.763 21340690.223
+ 40.800 37.400
+ 06 1 2 4 49 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1543936.959 3 -1203067.391 3 24181883.941 24181883.767 24181883.371
+ 23.400 18.600
+ -8527782.785 6 -6645024.277 5 22096507.252 22096504.245 22096506.312
+ 37.800 32.600
+ -16099346.092 7 -12544941.762 7 20628490.626 20628487.793 20628489.747
+ 45.200 43.800
+ -21081077.546 7 -16426807.824 6 20656428.912 20656426.953 20656428.207
+ 47.300 41.000
+ -9015316.124 4 -7024917.404 3 23189424.883 23189421.319 23189423.583
+ 27.900 18.600
+ -21670141.233 7 -16885821.417 7 20599188.633 20599184.073 20599188.056
+ 47.100 47.300
+ -16938502.389 6 -13198830.633 6 21356818.629 21356816.973 21356817.363
+ 40.600 37.600
+ 06 1 2 4 49 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1635202.887 3 -1274183.624 2 24164517.916 24164516.456 24164516.223
+ 21.600 17.800
+ -8597825.143 6 -6699602.733 5 22083178.507 22083175.765 22083177.564
+ 37.400 33.400
+ -16064355.332 7 -12517676.232 7 20635149.182 20635146.302 20635148.322
+ 45.500 43.600
+ -21046768.535 7 -16400073.527 6 20662957.724 20662955.645 20662956.939
+ 47.100 41.000
+ -8902542.670 4 -6937042.026 3 23210883.824 23210881.851 23210883.380
+ 27.100 21.100
+ -21705112.811 7 -16913072.000 7 20592533.954 20592529.223 20592533.238
+ 47.100 47.400
+ -16853310.662 6 -13132447.482 6 21373030.240 21373028.522 21373028.914
+ 40.900 37.500
+ 06 1 2 4 50 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1726336.222 3 -1345196.556 3 24147174.735 24147174.196 24147173.916
+ 21.600 18.600
+ -8667619.170 6 -6753987.672 5 22069897.199 22069894.582 22069896.189
+ 37.800 33.900
+ -16028956.588 7 -12490092.799 7 20641885.632 20641882.478 20641884.591
+ 45.600 43.600
+ -21011810.490 7 -16372833.492 6 20669610.105 20669608.039 20669609.283
+ 47.100 41.100
+ -8789595.280 4 -6849031.142 3 23232377.466 23232375.070 23232376.795
+ 26.800 21.600
+ -21739739.228 7 -16940053.622 7 20585944.620 20585940.159 20585943.954
+ 47.100 47.600
+ -16767679.532 6 -13065721.946 6 21389325.048 21389323.630 21389323.867
+ 40.600 37.200
+ 06 1 2 4 50 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1817333.774 3 -1416103.690 3 24129858.719 24129857.981 24129857.625
+ 23.400 18.600
+ -8737164.313 6 -6808178.673 5 22056662.875 22056660.404 22056662.075
+ 37.500 33.200
+ -15993150.104 7 -12462191.638 7 20648699.221 20648696.258 20648698.269
+ 45.700 43.700
+ -20976204.452 7 -16345088.526 6 20676385.597 20676383.681 20676384.820
+ 47.100 41.000
+ -8676476.637 4 -6760886.789 3 23253903.384 23253900.637 23253902.460
+ 25.600 21.600
+ -21774019.226 7 -16966765.307 7 20579421.293 20579416.874 20579420.653
+ 47.100 47.700
+ -16681611.819 6 -12998656.209 6 21405702.516 21405701.552 21405701.729
+ 40.500 36.700
+ 06 1 2 4 51 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -1908192.452 3 -1486902.639 3 24112568.857 24112567.884 24112567.612
+ 22.100 18.600
+ -8806460.136 6 -6862175.411 5 22043476.939 22043473.542 22043475.822
+ 38.100 33.200
+ -15956935.735 7 -12433972.639 7 20655590.676 20655587.467 20655589.783
+ 46.100 43.300
+ -20939952.259 7 -16316840.065 6 20683284.080 20683282.216 20683283.292
+ 47.100 40.900
+ -8563189.869 4 -6672611.419 3 23275461.758 23275458.977 23275460.587
+ 25.600 22.100
+ -21807951.651 7 -16993206.156 7 20572964.221 20572959.661 20572963.570
+ 47.200 47.700
+ -16595110.244 6 -12931252.401 6 21422163.724 21422162.400 21422162.721
+ 40.400 37.000
+ 06 1 2 4 51 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -1998909.066 3 -1557590.846 2 24095305.175 24095305.127 24095304.668
+ 20.500 17.800
+ -8875505.892 6 -6915977.291 5 22030337.682 22030334.778 22030336.672
+ 37.700 33.400
+ -15920313.569 7 -12405435.895 7 20662559.801 20662556.341 20662558.788
+ 46.000 43.100
+ -20903055.364 7 -16288089.233 6 20690305.470 20690303.384 20690304.606
+ 46.900 40.600
+ -8449737.850 4 -6584207.293 4 23297050.249 23297048.133 23297049.454
+ 27.400 24.900
+ -21841535.265 7 -17019375.206 7 20566573.345 20566568.996 20566572.787
+ 47.100 47.800
+ -16508177.560 6 -12863512.664 6 21438706.611 21438705.432 21438705.553
+ 40.200 37.700
+ 06 1 2 4 52 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2089480.364 3 -1628165.810 3 24078071.032 24078070.479 24078069.722
+ 20.500 20.500
+ -8944301.717 6 -6969584.412 5 22017246.375 22017243.591 22017245.140
+ 37.700 34.000
+ -15883283.677 7 -12376581.450 7 20669606.067 20669602.995 20669605.201
+ 46.000 43.100
+ -20865515.366 7 -16258837.290 6 20697448.967 20697447.006 20697448.154
+ 47.000 40.800
+ -8336123.332 4 -6495676.565 3 23318670.652 23318668.378 23318669.760
+ 27.400 23.400
+ -21874768.548 7 -17045271.271 7 20560249.232 20560244.899 20560248.668
+ 47.100 47.900
+ -16420816.530 6 -12795439.154 6 21455331.021 21455329.614 21455329.981
+ 40.600 37.200
+ 06 1 2 4 52 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2179903.266 4 -1698625.135 3 24060863.430 24060862.814 24060862.828
+ 24.200 21.100
+ -9012847.077 6 -7022996.370 5 22004202.129 22004199.549 22004201.271
+ 38.200 33.900
+ -15845846.139 7 -12347409.335 7 20676730.091 20676727.198 20676729.245
+ 45.900 43.200
+ -20827334.678 7 -16229086.099 6 20704714.808 20704712.485 20704713.944
+ 47.200 40.700
+ -8222349.024 4 -6407021.331 3 23340321.547 23340318.796 23340320.299
+ 26.800 23.000
+ -21907650.376 7 -17070893.475 7 20553992.168 20553987.724 20553991.525
+ 47.000 47.800
+ -16333029.804 6 -12727033.933 6 21472035.956 21472034.742 21472035.085
+ 40.300 36.200
+ 06 1 2 4 53 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2270174.535 3 -1768966.300 3 24043686.107 24043684.870 24043684.907
+ 23.800 21.600
+ -9081141.253 6 -7076212.609 5 21991206.568 21991203.467 21991205.600
+ 38.400 34.100
+ -15808000.422 7 -12317919.153 7 20683931.985 20683928.973 20683931.035
+ 45.700 43.100
+ -20788514.641 7 -16198836.717 6 20712101.834 20712099.732 20712101.006
+ 47.100 40.700
+ -8108418.123 4 -6318244.073 3 23362001.487 23361998.827 23362000.544
+ 24.200 19.300
+ -21940179.030 7 -17096240.479 8 20547802.123 20547797.724 20547801.479
+ 47.100 48.000
+ -16244820.187 6 -12658299.172 5 21488821.884 21488820.250 21488820.797
+ 40.200 35.600
+ 06 1 2 4 53 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2360290.985 4 -1839186.830 3 24026537.134 24026536.012 24026536.400
+ 25.600 22.600
+ -9149183.864 6 -7129232.816 5 21978258.471 21978255.656 21978257.473
+ 38.600 34.000
+ -15769746.897 7 -12288111.203 7 20691211.005 20691208.370 20691210.340
+ 45.700 43.100
+ -20749057.259 7 -16168090.708 6 20719610.568 20719608.373 20719609.662
+ 47.300 40.700
+ -7994333.598 4 -6229347.060 3 23383710.785 23383709.052 23383709.755
+ 24.600 21.100
+ -21972353.384 7 -17121311.401 8 20541679.334 20541675.048 20541678.778
+ 46.900 48.000
+ -16156190.324 6 -12589236.954 6 21505688.062 21505686.061 21505686.776
+ 39.900 36.400
+ 06 1 2 4 54 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2450249.453 4 -1909284.295 3 24009419.082 24009417.331 24009417.631
+ 25.600 18.600
+ -9216974.423 6 -7182056.611 5 21965358.576 21965355.635 21965357.464
+ 38.800 34.300
+ -15731085.516 7 -12257985.462 7 20698568.642 20698565.377 20698567.530
+ 45.800 42.900
+ -20708964.353 7 -16136849.482 6 20727239.887 20727237.702 20727238.995
+ 47.300 40.500
+ -7880097.974 3 -6140332.317 2 23405449.475 23405446.620 23405448.455
+ 23.800 17.800
+ -22004172.272 7 -17146105.341 8 20535624.444 20535620.118 20535623.872
+ 46.800 48.000
+ -16067143.419 6 -12519849.783 6 21522633.083 21522631.367 21522631.884
+ 40.000 36.600
+ 06 1 2 4 54 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2540046.772 3 -1979256.167 4 23992330.018 23992330.680 23992329.252
+ 23.800 25.300
+ -9284512.619 6 -7234683.766 5 21952506.296 21952503.093 21952505.241
+ 38.800 33.500
+ -15692016.366 7 -12227541.979 7 20706002.928 20705999.954 20706002.081
+ 45.800 42.800
+ -20668237.416 7 -16105114.207 6 20734989.893 20734987.718 20734989.069
+ 47.400 40.500
+ -7765714.722 4 -6051202.523 3 23427216.065 23427213.761 23427214.890
+ 24.200 23.400
+ -22035634.162 7 -17170621.101 8 20529637.392 20529633.258 20529636.815
+ 46.600 48.200
+ -15977682.162 6 -12450139.730 6 21539656.630 21539655.154 21539655.590
+ 39.800 36.100
+ 06 1 2 4 55 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2629679.767 4 -2049099.971 3 23975274.478 23975273.668 23975273.036
+ 26.200 22.100
+ -9351798.232 6 -7287114.106 5 21939702.068 21939699.259 21939701.242
+ 39.200 34.300
+ -15652539.319 7 -12196780.651 7 20713515.299 20713512.072 20713514.371
+ 46.100 42.500
+ -20626878.749 7 -16072886.668 6 20742860.019 20742857.864 20742859.326
+ 47.300 40.100
+ -7651186.039 4 -5961959.448 2 23449009.961 23449007.423 23449009.168
+ 27.400 17.800
+ -22066737.699 7 -17194857.622 8 20523718.683 20523714.481 20523717.996
+ 46.700 48.400
+ -15887809.282 6 -12380108.924 5 21556758.632 21556757.293 21556757.776
+ 39.700 35.700
+ 06 1 2 4 55 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2719145.242 3 -2118813.248 3 23958249.537 23958248.809 23958248.180
+ 23.800 22.100
+ -9418830.511 6 -7339347.046 5 21926946.136 21926943.541 21926945.246
+ 39.400 34.400
+ -15612654.588 7 -12165701.639 7 20721104.792 20721101.996 20721104.101
+ 46.000 42.600
+ -20584890.129 7 -16040168.261 6 20750850.195 20750848.139 20750849.469
+ 47.100 40.400
+ -7536515.103 4 -5872605.508 2 23470830.832 23470828.522 23470830.065
+ 27.600 17.000
+ -22097481.604 7 -17218813.910 8 20517868.258 20517863.962 20517867.624
+ 46.800 48.300
+ -15797527.570 6 -12309759.552 6 21573938.787 21573937.534 21573937.858
+ 39.800 36.100
+ 06 1 2 4 56 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2808439.936 3 -2188393.475 3 23941256.625 23941256.243 23941255.471
+ 23.800 18.600
+ -9485609.413 6 -7391382.539 5 21914238.438 21914235.727 21914237.414
+ 39.000 34.400
+ -15572362.302 7 -12134305.051 7 20728772.687 20728769.448 20728771.610
+ 46.100 42.600
+ -20542273.464 7 -16006960.474 6 20758959.994 20758957.901 20758959.141
+ 47.000 40.300
+ -7421704.738 4 -5783142.929 2 23492679.172 23492676.554 23492677.883
+ 26.200 17.000
+ -22127864.584 7 -17242488.960 8 20512086.485 20512082.272 20512085.960
+ 46.900 48.300
+ -15706839.948 6 -12239093.892 6 21591196.551 21591194.992 21591195.218
+ 39.500 36.200
+ 06 1 2 4 56 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -2897560.828 3 -2257838.280 2 23924297.386 23924296.769 23924296.646
+ 21.100 17.000
+ -9552134.218 6 -7443220.042 5 21901579.332 21901576.583 21901578.325
+ 39.100 34.500
+ -15531662.315 7 -12102590.777 7 20736517.353 20736514.394 20736516.625
+ 46.200 42.600
+ -20499030.906 7 -15973264.973 6 20767188.847 20767186.677 20767187.964
+ 47.000 40.500
+ -7306757.907 3 -5693573.945 2 23514552.338 23514549.779 23514551.057
+ 23.400 15.100
+ -22157885.435 7 -17265881.831 8 20506373.998 20506369.573 20506373.331
+ 47.000 48.500
+ -15615749.226 6 -12168114.133 6 21608530.829 21608529.016 21608529.475
+ 39.400 36.000
+ 06 1 2 4 57 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -2986504.572 4 -2327145.082 3 23907372.617 23907371.506 23907371.601
+ 26.200 19.900
+ -9618404.431 6 -7494859.160 5 21888968.707 21888966.014 21888967.811
+ 39.800 35.200
+ -15490554.982 7 -12070559.095 7 20744340.293 20744336.899 20744339.145
+ 46.100 42.700
+ -20455164.033 7 -15939082.994 6 20775536.477 20775534.389 20775535.556
+ 46.800 40.400
+ -7191677.755 4 -5603901.190 2 23536451.220 23536448.899 23536450.445
+ 25.300 17.000
+ -22187542.806 7 -17288991.473 8 20500730.380 20500725.818 20500729.723
+ 46.900 48.300
+ -15524258.302 6 -12096822.526 5 21625940.388 21625938.975 21625939.488
+ 39.400 35.300
+ 06 1 2 4 57 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3075268.006 4 -2396311.368 3 23890480.988 23890480.164 23890479.641
+ 24.900 19.900
+ -9684419.779 6 -7546299.679 5 21876406.387 21876403.693 21876405.320
+ 39.300 35.300
+ -15449040.349 7 -12038210.022 7 20752239.420 20752236.924 20752238.857
+ 46.200 42.700
+ -20410675.043 7 -15904416.252 6 20784002.334 20784000.202 20784001.513
+ 46.800 40.200
+ -7076466.485 3 -5514126.182 3 23558376.293 23558373.425 23558374.890
+ 23.400 19.900
+ -22216835.275 7 -17311816.768 8 20495155.962 20495151.614 20495155.439
+ 46.900 48.400
+ -15432370.217 6 -12025221.429 5 21643425.813 21643424.730 21643425.092
+ 39.700 35.500
+ 06 1 2 4 58 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3163848.108 3 -2465334.789 3 23873624.020 23873624.641 23873623.368
+ 21.600 22.100
+ -9750180.145 6 -7597541.514 5 21863892.331 21863889.550 21863891.421
+ 38.900 34.900
+ -15407118.426 7 -12005543.591 7 20760217.570 20760214.393 20760216.491
+ 46.200 42.500
+ -20365566.079 7 -15869266.409 6 20792586.174 20792584.167 20792585.394
+ 46.800 40.200
+ -6961127.363 4 -5424251.608 3 23580323.984 23580321.266 23580323.117
+ 27.100 19.300
+ -22245761.627 7 -17334356.784 8 20489651.580 20489647.203 20489650.948
+ 47.000 48.600
+ -15340087.724 6 -11953313.002 5 21660987.119 21660985.519 21660986.035
+ 39.000 35.200
+ 06 1 2 4 58 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3252241.476 3 -2534212.664 3 23856805.004 23856803.204 23856802.907
+ 22.100 20.500
+ -9815684.789 6 -7648584.081 5 21851427.117 21851424.512 21851426.214
+ 39.300 35.100
+ -15364789.093 7 -11972559.704 7 20768272.155 20768269.372 20768271.380
+ 45.900 42.400
+ -20319838.927 7 -15833634.862 6 20801287.789 20801285.842 20801287.074
+ 46.500 40.200
+ -6845663.262 4 -5334279.597 3 23602295.514 23602294.142 23602295.286
+ 26.800 23.400
+ -22274320.324 7 -17356610.312 8 20484217.168 20484212.708 20484216.523
+ 47.000 48.700
+ -15247413.600 6 -11881099.430 5 21678623.269 21678620.783 21678621.558
+ 38.100 35.100
+ 06 1 2 4 59 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3340444.787 4 -2602942.503 3 23840019.832 23840018.342 23840018.727
+ 24.200 19.300
+ -9880933.174 6 -7699426.975 5 21839010.917 21839008.254 21839009.948
+ 39.500 35.500
+ -15322052.608 7 -11939258.546 7 20776404.833 20776401.819 20776403.848
+ 46.100 42.300
+ -20273495.807 7 -15797523.341 6 20810106.513 20810104.457 20810105.748
+ 46.600 40.000
+ -6730077.058 3 -5244212.501 3 23624292.481 23624289.340 23624290.769
+ 22.100 19.900
+ -22302510.332 7 -17378576.550 8 20478852.830 20478848.305 20478852.193
+ 47.200 48.700
+ -15154350.716 6 -11808582.921 5 21696330.920 21696330.042 21696330.374
+ 38.200 34.400
+ 06 1 2 4 59 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3428455.088 4 -2671521.893 3 23823272.008 23823271.087 23823270.872
+ 26.500 21.100
+ -9945925.212 6 -7750070.106 5 21826643.140 21826640.633 21826642.204
+ 39.300 35.100
+ -15278909.252 7 -11905640.339 7 20784614.738 20784611.798 20784613.778
+ 46.100 42.400
+ -20226538.825 7 -15760933.485 6 20819042.397 20819040.312 20819041.498
+ 46.600 40.000
+ -6614371.765 3 -5154052.556 3 23646309.029 23646306.954 23646308.467
+ 23.400 18.600
+ -22330330.300 7 -17400254.446 8 20473558.835 20473554.318 20473558.198
+ 47.200 48.800
+ -15060902.011 6 -11735765.745 5 21714113.572 21714112.498 21714112.939
+ 38.600 34.000
+ 06 1 2 5 0 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3516269.127 4 -2739948.394 3 23806561.595 23806560.072 23806560.136
+ 24.600 20.500
+ -10010660.402 6 -7800513.101 5 21814324.473 21814321.863 21814323.541
+ 39.200 35.800
+ -15235359.033 7 -11871705.094 6 20792901.704 20792899.135 20792901.008
+ 46.000 41.900
+ -20178969.679 7 -15723866.617 6 20828094.415 20828092.308 20828093.564
+ 46.500 39.800
+ -6498549.917 3 -5063801.836 3 23668349.052 23668347.585 23668348.784
+ 23.800 21.100
+ -22357778.699 7 -17421642.806 8 20468335.295 20468331.111 20468334.733
+ 47.200 48.800
+ -14967070.459 6 -11662650.267 5 21731971.011 21731968.183 21731969.292
+ 38.200 34.800
+ 06 1 2 5 0 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3603883.727 4 -2808219.459 3 23789888.233 23789887.730 23789887.446
+ 25.900 23.000
+ -10075138.674 6 -7850755.900 5 21802054.836 21802052.186 21802053.890
+ 39.900 35.400
+ -15191402.165 7 -11837452.992 6 20801267.002 20801263.778 20801265.919
+ 46.100 41.900
+ -20130790.697 7 -15686324.551 6 20837262.458 20837260.473 20837261.667
+ 46.500 39.800
+ -6382614.459 4 -4973462.559 3 23690411.757 23690409.068 23690410.876
+ 25.300 19.300
+ -22384854.483 7 -17442740.819 8 20463183.109 20463178.740 20463182.477
+ 47.000 48.900
+ -14872859.132 6 -11589238.877 5 21749897.722 21749896.267 21749896.764
+ 38.400 35.200
+ 06 1 2 5 1 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3691295.720 4 -2876332.608 3 23773255.253 23773253.624 23773253.779
+ 25.300 23.000
+ -10139359.400 6 -7900798.014 5 21789834.130 21789831.385 21789833.158
+ 40.200 35.700
+ -15147038.529 7 -11802883.921 7 20809708.804 20809705.939 20809707.993
+ 46.200 42.000
+ -20082003.999 7 -15648308.944 6 20846546.305 20846544.366 20846545.467
+ 46.500 39.800
+ -6266568.137 3 -4883036.919 3 23712493.184 23712492.259 23712493.155
+ 22.600 18.600
+ -22411556.364 7 -17463547.480 8 20458101.864 20458097.537 20458101.277
+ 47.000 49.000
+ -14778271.008 6 -11515533.846 5 21767896.032 21767895.683 21767895.834
+ 38.400 34.600
+ 06 1 2 5 1 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3778501.737 4 -2944285.334 3 23756660.911 23756658.828 23756659.925
+ 27.600 21.600
+ -10203321.853 6 -7950638.885 5 21777662.275 21777659.444 21777661.451
+ 40.100 35.400
+ -15102268.629 7 -11767998.274 6 20818228.303 20818225.209 20818227.294
+ 45.900 41.500
+ -20032611.663 7 -15609821.405 6 20855945.491 20855943.298 20855944.570
+ 46.500 39.700
+ -6150414.120 3 -4792527.357 2 23734598.738 23734595.371 23734597.151
+ 23.800 17.000
+ -22437882.914 7 -17484061.672 8 20453092.209 20453087.837 20453091.543
+ 47.100 49.000
+ -14683308.775 6 -11441537.317 5 21785967.904 21785966.398 21785966.620
+ 37.300 34.300
+ 06 1 2 5 2 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -3865498.753 4 -3012075.161 3 23740104.986 23740103.778 23740103.689
+ 25.300 20.500
+ -10267025.934 6 -8000278.425 5 21765540.186 21765537.048 21765539.086
+ 40.300 35.500
+ -15057092.648 7 -11732796.212 6 20826824.527 20826821.994 20826823.864
+ 45.900 41.600
+ -19982616.059 7 -15570863.790 6 20865459.253 20865457.283 20865458.387
+ 46.500 39.800
+ -6034155.138 4 -4701935.968 2 23756720.707 23756718.989 23756720.053
+ 24.200 17.800
+ -22463832.944 7 -17504282.475 8 20448153.964 20448149.671 20448153.374
+ 47.200 48.900
+ -14587975.332 6 -11367251.553 5 21804109.463 21804107.775 21804108.152
+ 37.500 34.300
+ 06 1 2 5 2 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -3952283.628 4 -3079699.695 3 23723589.508 23723588.963 23723588.926
+ 25.300 20.500
+ -10330471.566 6 -8049716.568 6 21753466.737 21753463.877 21753465.629
+ 40.200 36.200
+ -15011510.605 7 -11697277.743 6 20835498.907 20835495.994 20835497.887
+ 45.900 41.500
+ -19932019.122 7 -15531437.605 6 20875087.476 20875085.473 20875086.685
+ 46.500 39.700
+ -5917793.832 4 -4611264.849 2 23778864.297 23778861.951 23778863.400
+ 25.600 16.100
+ -22489405.301 7 -17524208.988 8 20443287.889 20443283.351 20443287.204
+ 47.100 49.100
+ -14492273.945 6 -11292679.056 5 21822320.074 21822319.245 21822319.347
+ 37.500 34.000
+ 06 1 2 5 3 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4038853.041 4 -3147156.329 3 23707116.706 23707116.126 23707115.729
+ 27.400 21.600
+ -10393658.159 6 -8098952.864 5 21741442.497 21741439.706 21741441.729
+ 40.700 35.700
+ -14965523.038 7 -11661443.290 6 20844250.173 20844247.131 20844249.179
+ 45.800 41.400
+ -19880823.557 7 -15491544.954 6 20884829.755 20884827.709 20884828.956
+ 46.300 39.600
+ -5801333.178 3 -4520516.362 2 23801024.204 23801023.466 23801024.028
+ 21.600 16.100
+ -22514598.460 7 -17543840.022 8 20438493.674 20438489.300 20438493.061
+ 47.100 49.100
+ -14396207.464 6 -11217822.070 5 21840601.332 21840600.107 21840600.332
+ 38.100 34.000
+ 06 1 2 5 3 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4125203.730 4 -3214442.572 3 23690685.459 23690683.089 23690684.194
+ 28.800 19.900
+ -10456585.227 6 -8147986.937 6 21729468.190 21729465.117 21729467.120
+ 40.900 36.000
+ -14919129.935 7 -11625292.817 6 20853078.297 20853075.447 20853077.532
+ 46.100 41.200
+ -19829030.674 7 -15451186.863 6 20894685.444 20894683.626 20894684.596
+ 45.900 39.800
+ -5684776.294 3 -4429692.823 1 23823206.389 23823203.151 23823205.187
+ 23.800 11.000
+ -22539411.322 7 -17563174.721 8 20433771.887 20433767.663 20433771.310
+ 47.300 49.300
+ -14299778.641 6 -11142682.752 5 21858952.100 21858949.767 21858950.567
+ 37.400 33.600
+ 06 1 2 5 4 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4211332.648 4 -3281555.959 3 23674293.929 23674293.856 23674293.627
+ 26.500 23.400
+ -10519252.689 6 -8196818.720 6 21717543.064 21717539.942 21717542.097
+ 41.300 36.200
+ -14872331.514 7 -11588826.517 6 20861984.105 20861980.866 20861983.022
+ 46.100 41.200
+ -19776643.996 7 -15410366.076 6 20904654.364 20904652.390 20904653.494
+ 45.900 39.500
+ -5568125.595 3 -4338796.244 3 23845403.212 23845402.405 23845402.604
+ 23.400 19.900
+ -22563842.592 7 -17582212.069 8 20429122.935 20429118.484 20429122.304
+ 47.300 49.300
+ -14202990.545 6 -11067263.480 5 21877368.799 21877367.902 21877368.109
+ 37.300 33.000
+ 06 1 2 5 4 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4297236.534 4 -3348494.026 3 23657948.765 23657947.010 23657946.885
+ 26.500 23.000
+ -10581659.749 6 -8245447.591 6 21705667.359 21705664.404 21705666.414
+ 41.400 36.400
+ -14825128.000 7 -11552044.564 6 20870966.337 20870963.511 20870965.538
+ 46.300 41.300
+ -19723664.570 7 -15369083.406 6 20914736.111 20914734.123 20914735.255
+ 45.800 39.600
+ -5451384.059 3 -4247828.881 2 23867618.762 23867616.806 23867617.879
+ 22.100 17.000
+ -22587891.116 7 -17600951.177 8 20424546.596 20424542.076 20424545.949
+ 47.200 49.200
+ -14105846.295 6 -10991566.657 5 21895855.390 21895854.038 21895854.364
+ 36.800 33.800
+ 06 1 2 5 5 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4382912.241 4 -3415254.275 4 23641643.633 23641643.939 23641643.379
+ 26.500 25.300
+ -10643806.218 6 -8293873.406 6 21693841.108 21693838.121 21693840.094
+ 40.800 36.200
+ -14777519.697 7 -11514947.191 6 20880026.237 20880023.081 20880025.223
+ 46.300 41.200
+ -19670095.223 7 -15327341.060 6 20924929.946 20924927.931 20924929.065
+ 45.600 39.300
+ -5334554.332 3 -4156792.766 3 23889851.651 23889849.173 23889850.116
+ 19.900 19.900
+ -22611555.570 7 -17619391.008 8 20420043.325 20420038.899 20420042.691
+ 47.100 49.200
+ -14008348.881 6 -10915594.692 5 21914409.673 21914407.311 21914407.994
+ 36.300 34.500
+ 06 1 2 5 5 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4468356.577 4 -3481834.252 3 23625385.896 23625383.819 23625383.935
+ 24.900 21.600
+ -10705691.914 6 -8342096.014 6 21682064.554 21682061.731 21682063.611
+ 40.900 36.500
+ -14729507.241 7 -11477534.897 6 20889162.773 20889159.398 20889161.709
+ 46.200 41.000
+ -19615938.266 7 -15285140.839 6 20935235.578 20935233.584 20935234.733
+ 45.800 39.300
+ -5217639.425 3 -4065690.345 2 23912098.618 23912097.080 23912097.749
+ 23.000 16.100
+ -22634834.545 7 -17637530.469 8 20415613.485 20415609.057 20415612.819
+ 47.100 49.300
+ -13910501.215 6 -10839349.786 5 21933027.171 21933027.096 21933027.025
+ 37.500 34.000
+ 06 1 2 5 6 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4553566.251 4 -3548231.352 3 23609169.526 23609168.991 23609168.723
+ 25.600 22.100
+ -10767316.383 6 -8390115.076 6 21670337.778 21670335.085 21670336.797
+ 40.700 36.600
+ -14681090.102 7 -11439807.262 6 20898375.753 20898372.928 20898375.151
+ 46.400 41.000
+ -19561196.108 7 -15242484.612 6 20945652.942 20945650.702 20945651.944
+ 45.800 39.200
+ -5100642.743 3 -3974524.103 1 23934362.361 23934360.606 23934361.384
+ 21.600 11.000
+ -22657726.992 7 -17655368.737 8 20411257.177 20411252.730 20411256.574
+ 47.100 49.200
+ -13812306.387 6 -10762834.352 5 21951715.149 21951712.641 21951713.478
+ 36.800 33.000
+ 06 1 2 5 6 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4638538.173 4 -3614443.218 3 23593000.508 23592998.772 23592999.332
+ 25.600 19.900
+ -10828679.196 6 -8437930.243 6 21658660.599 21658658.164 21658659.792
+ 40.600 36.600
+ -14632268.746 7 -11401764.649 6 20907666.648 20907663.382 20907665.588
+ 46.300 40.700
+ -19505871.143 7 -15199374.245 6 20956180.573 20956178.548 20956179.750
+ 45.800 39.000
+ -4983566.384 4 -3883295.827 3 23956643.011 23956640.040 23956641.578
+ 25.600 18.600
+ -22680231.453 7 -17672904.685 8 20406974.689 20406970.331 20406974.041
+ 47.200 49.400
+ -13713767.335 6 -10686050.704 5 21970464.972 21970463.965 21970464.470
+ 37.200 32.000
+ 06 1 2 5 7 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4723269.104 4 -3680467.280 3 23576877.109 23576875.235 23576875.495
+ 28.100 23.800
+ -10889780.012 6 -8485541.264 6 21647033.960 21647030.887 21647032.995
+ 41.300 36.300
+ -14583043.748 7 -11363407.512 6 20917033.318 20917030.531 20917032.660
+ 46.500 40.700
+ -19449965.439 7 -15155811.359 6 20966819.270 20966817.217 20966818.390
+ 45.600 39.100
+ -4866413.283 3 -3792007.779 2 23978935.814 23978933.817 23978934.488
+ 23.000 16.100
+ -22702347.008 7 -17690137.583 8 20402766.280 20402761.893 20402765.589
+ 47.100 49.400
+ -13614887.116 6 -10609001.171 5 21989281.632 21989280.488 21989280.747
+ 36.400 33.100
+ 06 1 2 5 7 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4807755.897 4 -3746301.110 4 23560799.729 23560798.144 23560798.454
+ 28.600 25.900
+ -10950618.526 6 -8532947.897 6 21635456.417 21635453.618 21635455.504
+ 41.100 36.400
+ -14533415.242 7 -11324735.947 6 20926477.533 20926474.471 20926476.638
+ 46.300 40.600
+ -19393481.627 7 -15111797.995 6 20977567.753 20977565.742 20977566.991
+ 45.600 39.000
+ -4749186.496 3 -3700662.254 1 24001243.627 24001240.603 24001242.286
+ 23.400 11.000
+ -22724072.159 7 -17707066.275 8 20398632.220 20398627.659 20398631.551
+ 47.100 49.400
+ -13515668.607 6 -10531688.085 5 22008163.657 22008161.660 22008162.036
+ 36.300 34.000
+ 06 1 2 5 8 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -4891995.395 4 -3811942.224 4 23544769.369 23544767.916 23544768.373
+ 27.900 24.600
+ -11011194.517 6 -8580149.956 6 21623929.241 21623926.627 21623928.351
+ 41.100 37.100
+ -14483383.753 7 -11285750.373 6 20935998.609 20935995.084 20935997.423
+ 46.300 40.400
+ -19336421.321 7 -15067335.423 6 20988425.837 20988424.079 20988425.105
+ 45.800 39.100
+ -4631888.791 3 -3609261.496 2 24023564.601 24023562.451 24023563.235
+ 19.300 13.900
+ -22745405.842 7 -17723689.923 8 20394572.477 20394568.030 20394571.825
+ 47.300 49.200
+ -13416114.885 6 -10454113.784 5 22027105.844 22027105.800 22027105.821
+ 36.300 33.400
+ 06 1 2 5 8 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -4975984.341 4 -3877388.128 3 23528785.766 23528784.441 23528785.052
+ 27.100 23.800
+ -11071507.502 6 -8627147.081 6 21612452.107 21612449.582 21612451.218
+ 41.300 37.200
+ -14432949.286 7 -11246450.789 6 20945595.303 20945592.569 20945594.641
+ 46.300 40.600
+ -19278788.054 7 -15022426.385 6 20999393.360 20999391.046 20999392.444
+ 45.600 38.500
+ -4514522.953 3 -3517807.663 2 24045897.719 24045896.481 24045896.521
+ 19.900 13.900
+ -22766346.802 7 -17740007.555 8 20390587.536 20390583.132 20390586.904
+ 47.400 49.500
+ -13316229.049 5 -10376280.681 5 22046115.567 22046113.462 22046113.870
+ 35.200 32.400
+ 06 1 2 5 9 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5059719.629 4 -3942636.362 3 23512852.852 23512850.390 23512851.305
+ 27.400 23.000
+ -11131557.112 6 -8673938.976 6 21601025.199 21601022.328 21601024.088
+ 41.300 37.200
+ -14382112.614 7 -11206837.797 6 20955269.579 20955266.365 20955268.532
+ 46.100 40.200
+ -19220583.530 7 -14977072.210 6 21010469.174 21010467.049 21010468.335
+ 45.600 38.600
+ -4397091.664 3 -3426302.808 2 24068243.667 24068242.396 24068242.360
+ 21.600 12.600
+ -22786893.755 7 -17756018.169 8 20386677.765 20386673.149 20386677.080
+ 47.500 49.500
+ -13216014.010 5 -10298191.078 5 22065184.231 22065183.577 22065183.852
+ 35.800 32.600
+ 06 1 2 5 9 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5143197.986 4 -4007684.413 4 23496966.134 23496965.488 23496965.050
+ 27.100 25.300
+ -11191343.165 6 -8720525.500 6 21589648.150 21589645.404 21589647.152
+ 41.300 37.700
+ -14330873.478 7 -11166911.207 6 20965019.826 20965016.843 20965019.033
+ 46.000 40.100
+ -19161810.505 7 -14931275.048 6 21021653.342 21021651.403 21021652.463
+ 45.600 38.900
+ -4279597.764 3 -3334749.214 3 24090601.970 24090601.411 24090601.784
+ 21.600 18.600
+ -22807045.552 7 -17771720.870 8 20382842.715 20382838.411 20382842.128
+ 47.400 49.500
+ -13115472.769 5 -10219847.261 5 22084318.221 22084316.119 22084316.765
+ 35.700 32.700
+ 06 1 2 5 10 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5226416.249 4 -4072529.749 3 23481130.221 23481129.169 23481129.743
+ 28.400 23.000
+ -11250865.095 6 -8766906.215 6 21578321.495 21578318.795 21578320.541
+ 41.400 37.500
+ -14279232.425 7 -11126671.426 6 20974846.765 20974843.784 20974845.985
+ 46.200 40.100
+ -19102470.909 7 -14885036.404 6 21032945.365 21032943.251 21032944.478
+ 45.700 38.400
+ -4162044.141 3 -3243149.070 3 24112972.779 24112970.653 24112971.870
+ 21.100 19.300
+ -22826801.041 7 -17787114.755 8 20379083.287 20379079.044 20379082.648
+ 47.300 49.500
+ -13014608.357 6 -10141251.657 5 22103511.045 22103510.042 22103510.332
+ 36.500 32.600
+ 06 1 2 5 10 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5309371.279 4 -4137170.008 3 23465345.137 23465343.263 23465343.754
+ 27.600 23.400
+ -11310122.661 6 -8813080.944 6 21567045.357 21567042.242 21567044.308
+ 41.800 37.200
+ -14227189.796 7 -11086118.735 6 20984750.595 20984747.158 20984749.421
+ 46.000 40.000
+ -19042567.693 7 -14838358.570 6 21044344.354 21044342.444 21044343.638
+ 45.900 38.500
+ -4044433.674 3 -3151504.617 2 24135353.530 24135352.116 24135352.250
+ 19.900 17.800
+ -22846159.144 7 -17802198.994 8 20375399.558 20375395.316 20375398.956
+ 47.400 49.600
+ -12913424.194 5 -10062406.858 5 22122765.977 22122764.962 22122764.872
+ 35.600 32.800
+ 06 1 2 5 11 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5392059.941 4 -4201602.709 3 23449608.335 23449608.112 23449607.657
+ 27.100 22.600
+ -11369115.573 6 -8859049.443 6 21555819.135 21555816.421 21555818.144
+ 41.300 37.600
+ -14174746.263 7 -11045253.650 6 20994729.708 20994726.890 20994729.075
+ 46.300 39.900
+ -18982102.593 7 -14791242.909 6 21055850.616 21055848.426 21055849.821
+ 45.500 38.400
+ -3926768.654 3 -3059817.663 1 24157744.642 24157742.521 24157743.324
+ 22.600 11.000
+ -22865118.437 7 -17816972.470 8 20371791.895 20371787.519 20371791.250
+ 47.600 49.700
+ -12811923.357 5 -9983315.341 5 22142080.939 22142079.624 22142080.060
+ 35.900 32.100
+ 06 1 2 5 11 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5474479.024 4 -4265825.322 4 23433927.086 23433924.588 23433925.266
+ 29.000 24.900
+ -11427843.519 6 -8904811.472 6 21544643.585 21544640.844 21544642.615
+ 41.200 37.500
+ -14121902.539 7 -11004076.719 6 21004786.077 21004782.798 21004785.071
+ 46.300 39.700
+ -18921079.011 7 -14743692.062 6 21067462.785 21067460.911 21067461.992
+ 45.100 38.600
+ -3809052.290 3 -2968090.651 2 24180144.398 24180142.944 24180144.211
+ 22.100 17.000
+ -22883677.756 7 -17831434.281 8 20368260.140 20368255.805 20368259.511
+ 47.700 49.600
+ -12710108.694 5 -9903979.247 5 22161456.175 22161454.192 22161454.847
+ 34.700 30.200
+ 06 1 2 5 12 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5556625.395 4 -4329835.459 4 23418293.459 23418292.358 23418292.962
+ 28.800 24.200
+ -11486306.105 6 -8950366.721 6 21533518.318 21533515.911 21533517.388
+ 41.500 38.100
+ -14068658.274 7 -10962587.695 6 21014917.869 21014914.901 21014917.012
+ 46.300 39.800
+ -18859499.524 7 -14695708.053 6 21079181.085 21079179.178 21079180.276
+ 45.100 38.500
+ -3691287.530 3 -2876325.986 2 24202553.936 24202553.148 24202553.567
+ 19.300 13.900
+ -22901836.119 7 -17845583.651 8 20364804.850 20364800.335 20364804.195
+ 47.600 49.700
+ -12607983.173 5 -9824400.970 5 22180889.782 22180888.271 22180888.772
+ 35.400 32.100
+ 06 1 2 5 12 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5638495.949 4 -4393630.632 4 23402714.486 23402712.859 23402713.241
+ 26.800 24.900
+ -11544503.128 6 -8995715.043 6 21522443.967 21522441.159 21522442.899
+ 41.700 37.800
+ -14015014.181 7 -10920787.105 6 21025125.607 21025122.961 21025125.052
+ 46.400 39.500
+ -18797366.423 7 -14647292.652 6 21091004.506 21091002.724 21091003.649
+ 45.000 38.500
+ -3573476.832 2 -2784525.528 1 24224973.342 24224971.943 24224971.686
+ 17.800 11.000
+ -22919592.131 7 -17859419.510 8 20361426.056 20361421.506 20361425.430
+ 47.800 49.700
+ -12505550.001 5 -9744582.943 5 22200381.818 22200380.757 22200380.766
+ 35.200 32.600
+ 06 1 2 5 13 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5720087.390 4 -4457208.349 4 23387187.974 23387186.617 23387186.785
+ 27.100 24.200
+ -11602434.298 6 -9040856.217 6 21511420.195 21511416.981 21511419.097
+ 41.800 37.300
+ -13960970.478 7 -10878675.128 6 21035410.452 21035407.175 21035409.288
+ 46.000 39.700
+ -18734682.394 7 -14598447.954 6 21102932.954 21102931.209 21102932.193
+ 45.100 38.500
+ -3455622.959 3 -2692691.456 2 24247401.184 24247399.135 24247399.952
+ 20.500 13.900
+ -22936944.525 7 -17872940.855 8 20358124.006 20358119.452 20358123.296
+ 47.700 49.700
+ -12402812.102 5 -9664527.482 5 22219932.231 22219931.084 22219931.380
+ 35.300 32.000
+ 06 1 2 5 13 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5801396.693 4 -4520566.211 3 23371715.583 23371713.748 23371714.283
+ 29.000 23.400
+ -11660099.048 6 -9085789.782 6 21500446.827 21500443.909 21500445.832
+ 41.900 37.900
+ -13906528.038 7 -10836252.451 6 21045770.169 21045767.235 21045769.173
+ 45.800 39.500
+ -18671449.514 7 -14549175.577 6 21114966.002 21114963.794 21114965.212
+ 45.200 38.200
+ -3337728.777 3 -2600825.926 2 24269835.346 24269832.954 24269834.420
+ 23.000 12.600
+ -22953892.463 7 -17886147.039 8 20354898.745 20354894.315 20354898.097
+ 47.700 49.700
+ -12299772.646 5 -9584237.025 5 22239540.391 22239538.932 22239539.218
+ 34.300 31.500
+ 06 1 2 5 14 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -5882420.609 5 -4583701.699 4 23356296.762 23356295.654 23356295.871
+ 30.100 24.600
+ -11717497.281 7 -9130515.674 6 21489524.321 21489521.575 21489523.381
+ 42.100 38.100
+ -13851686.911 7 -10793519.110 6 21056205.565 21056203.217 21056205.018
+ 45.800 39.600
+ -18607670.535 7 -14499477.673 6 21127102.770 21127100.756 21127101.872
+ 45.300 38.600
+ -3219797.127 3 -2508931.164 2 24292277.227 24292274.681 24292276.385
+ 22.600 15.100
+ -22970434.801 7 -17899037.172 8 20351750.800 20351746.433 20351750.164
+ 47.700 49.700
+ -12196434.760 5 -9503714.047 5 22259204.347 22259203.314 22259203.562
+ 34.300 31.000
+ 06 1 2 5 14 30.0000000 0 7G 5G14G18G 9G21G22G15
+ -5963156.047 4 -4646612.394 4 23340932.917 23340932.167 23340932.139
+ 28.800 24.600
+ -11774628.472 7 -9175033.481 6 21478652.585 21478649.827 21478651.549
+ 42.000 38.100
+ -13796447.404 7 -10750475.349 6 21066718.035 21066714.941 21066716.993
+ 45.900 39.300
+ -18543347.988 7 -14449356.209 6 21139342.876 21139340.740 21139342.042
+ 45.300 37.700
+ -3101830.874 3 -2417009.450 2 24314725.059 24314723.498 24314724.389
+ 19.900 15.100
+ -22986570.165 7 -17911610.183 8 20348680.398 20348675.987 20348679.761
+ 47.700 49.700
+ -12092801.491 5 -9422960.874 5 22278925.682 22278924.227 22278924.577
+ 34.500 30.600
+ 06 1 2 5 15 0.0000000 0 7G 5G14G18G 9G21G22G15
+ -6043599.883 4 -4709295.848 3 23325624.806 23325623.675 23325623.860
+ 27.100 21.100
+ -11831492.553 7 -9219343.149 6 21467831.776 21467828.844 21467830.794
+ 42.300 38.400
+ -13740810.340 7 -10707121.805 6 21077305.586 21077302.349 21077304.435
+ 45.900 39.300
+ -18478484.689 7 -14398813.376 6 21151685.812 21151683.870 21151685.059
+ 45.100 37.800
+ -2983832.610 2 -2325062.867 2 24337179.101 24337177.947 24337178.184
+ 16.100 15.100
+ -23002297.393 7 -17923865.168 8 20345687.485 20345683.197 20345686.851
+ 47.700 49.800
+ -11988875.888 5 -9341979.919 5 22298701.721 22298700.633 22298700.907
+ 34.500 30.800
+ 06 1 2 5 15 30.0000000 0 6G 5G14G18G 9G22G15
+ -6123748.904 4 -4771749.613 4 23310373.130 23310372.039 23310372.346
+ 29.900 24.200
+ -11888089.111 7 -9263444.358 6 21457061.905 21457058.951 21457060.920
+ 42.700 38.300
+ -13684776.257 7 -10663458.892 6 21087967.855 21087965.406 21087967.217
+ 45.800 39.500
+ -18413083.289 7 -14347851.247 6 21164131.466 21164129.408 21164130.592
+ 45.000 38.100
+ -23017615.565 7 -17935801.407 8 20342772.687 20342768.247 20342772.017
+ 47.600 49.800
+ -11884660.988 5 -9260773.558 5 22318534.059 22318532.329 22318532.652
+ 33.500 31.300
+ 06 1 2 5 16 0.0000000 0 6G 5G14G18G 9G22G15
+ -6203600.014 5 -4833971.237 4 23295179.050 23295177.071 23295177.802
+ 30.600 24.600
+ -11944417.841 7 -9307336.872 6 21446342.965 21446340.006 21446341.872
+ 42.400 38.700
+ -13628345.459 7 -10619486.857 6 21098706.611 21098703.889 21098705.699
+ 45.700 39.300
+ -18347145.849 7 -14296471.424 6 21176678.886 21176676.883 21176677.957
+ 44.800 38.100
+ -23032523.607 7 -17947418.064 8 20339935.750 20339931.325 20339935.151
+ 47.800 49.700
+ -11780160.095 5 -9179344.312 5 22338419.064 22338418.141 22338418.337
+ 34.600 31.300
+ 06 1 2 5 16 30.0000000 0 6G 5G14G18G 9G22G15
+ -6283150.102 4 -4895958.276 4 23280040.580 23280039.350 23280039.599
+ 29.900 26.500
+ -12000478.446 7 -9351020.452 6 21435674.742 21435671.966 21435673.814
+ 42.300 38.400
+ -13571518.278 7 -10575205.951 6 21109520.753 21109517.578 21109519.635
+ 45.900 39.100
+ -18280675.448 7 -14244676.310 6 21189327.605 21189325.871 21189326.826
+ 44.600 38.100
+ -23047020.150 7 -17958714.074 8 20337177.311 20337172.730 20337176.671
+ 47.800 49.800
+ -11675376.239 5 -9097694.589 5 22358359.397 22358357.971 22358358.244
+ 34.000 31.300
+ 06 1 2 5 17 0.0000000 0 6G 5G14G18G 9G22G15
+ -6362396.049 4 -4957708.330 4 23264960.831 23264959.081 23264959.154
+ 28.100 24.900
+ -12056270.525 6 -9394494.794 6 21425057.654 21425055.107 21425056.709
+ 41.900 38.900
+ -13514295.307 7 -10530616.628 6 21120409.762 21120406.723 21120408.845
+ 46.000 38.900
+ -18213674.506 7 -14192467.787 6 21202077.431 21202075.626 21202076.672
+ 44.500 38.100
+ -23061104.244 7 -17969688.694 8 20334497.010 20334492.560 20334496.473
+ 47.800 49.700
+ -11570312.390 5 -9015826.671 5 22378351.993 22378351.070 22378350.964
+ 33.900 31.000
+ 06 1 2 5 17 30.0000000 0 6G 5G14G18G 9G22G15
+ -6441334.691 4 -5019218.918 4 23249939.072 23249937.435 23249937.821
+ 28.600 25.300
+ -12111793.871 7 -9437759.734 6 21414492.095 21414489.489 21414491.101
+ 42.400 39.300
+ -13456677.215 7 -10485719.420 6 21131374.045 21131371.004 21131373.163
+ 45.700 38.700
+ -18146145.955 7 -14139848.134 6 21214927.941 21214925.954 21214927.142
+ 44.600 37.900
+ -23074774.764 7 -17980341.052 8 20331895.690 20331891.052 20331895.045
+ 47.900 49.700
+ -11464971.732 5 -8933743.076 5 22398397.556 22398396.819 22398396.698
+ 34.300 31.300
+ 06 1 2 5 18 0.0000000 0 6G 5G14G18G 9G22G15
+ -6519962.991 5 -5080487.689 3 23234976.415 23234974.875 23234975.267
+ 30.600 23.000
+ -12167048.179 7 -9480815.044 6 21403977.568 21403974.784 21403976.571
+ 42.500 39.000
+ -13398664.579 7 -10440514.787 6 21142413.684 21142410.482 21142412.696
+ 45.900 38.900
+ -18078092.028 7 -14086819.107 6 21227877.854 21227876.278 21227877.107
+ 44.400 38.000
+ -23088030.552 8 -17990670.239 8 20329373.284 20329368.620 20329372.611
+ 48.000 49.700
+ -11359357.342 5 -8851446.182 5 22418495.802 22418494.524 22418494.595
+ 33.500 30.800
+ 06 1 2 5 18 30.0000000 0 6G 5G14G18G 9G22G15
+ -6598277.737 5 -5141512.159 4 23220073.565 23220071.983 23220072.617
+ 30.200 24.200
+ -12222033.165 7 -9523660.482 6 21393514.311 21393511.460 21393513.280
+ 42.600 38.900
+ -13340257.470 7 -10395002.756 6 21153527.996 21153524.974 21153527.143
+ 45.700 38.600
+ -18009516.045 7 -14033383.276 6 21240927.718 21240925.756 21240926.895
+ 44.400 37.800
+ -23100870.435 7 -18000675.345 8 20326929.879 20326925.423 20326929.203
+ 47.800 49.900
+ -11253472.529 5 -8768938.581 5 22438644.846 22438643.860 22438643.812
+ 33.600 30.600
+ 06 1 2 5 19 0.0000000 0 6G 5G14G18G 9G22G15
+ -6676275.864 4 -5202289.890 4 23205230.576 23205230.094 23205229.519
+ 29.200 25.900
+ -12276748.537 7 -9566295.833 6 21383102.429 21383099.401 21383101.358
+ 42.700 38.900
+ -13281456.694 7 -10349183.969 6 21164717.629 21164714.470 21164716.476
+ 45.500 38.600
+ -17940420.265 7 -13979542.410 6 21254076.145 21254074.305 21254075.333
+ 44.600 37.700
+ -23113293.540 7 -18010355.688 8 20324565.803 20324561.367 20324565.153
+ 47.900 49.800
+ -11147320.328 5 -8686222.618 4 22458844.936 22458843.744 22458843.995
+ 33.200 29.000
+ 06 1 2 5 19 30.0000000 0 6G 5G14G18G 9G22G15
+ -6753954.306 4 -5262818.508 4 23190449.680 23190447.985 23190448.030
+ 29.700 26.500
+ -12331194.022 7 -9608720.881 6 21372741.767 21372738.809 21372740.776
+ 43.000 38.900
+ -13222262.903 7 -10303058.941 6 21175981.842 21175978.624 21175980.762
+ 45.600 38.100
+ -17870807.364 7 -13925298.591 6 21267323.081 21267321.095 21267322.352
+ 44.700 37.100
+ -23125299.043 8 -18019710.627 8 20322281.179 20322276.733 20322280.558
+ 48.100 49.800
+ -11040903.661 5 -8603300.585 4 22479096.055 22479094.199 22479094.559
+ 31.500 29.200
+ 06 1 2 5 20 0.0000000 0 7G 5G14G18G30G 9G22G15
+ -6831309.920 5 -5323095.562 4 23175729.209 23175727.214 23175727.828
+ 30.200 25.900
+ -12385369.399 7 -9650935.459 6 21362432.509 21362429.559 21362431.488
+ 42.800 38.900
+ -13162676.853 7 -10256628.262 6 21187320.143 21187317.484 21187319.563
+ 45.600 38.100
+ -217909.700 3 -169799.458 1 24617054.169 24617055.005 24617055.024
+ 18.600 11.000
+ -17800680.116 7 -13870653.982 6 21280667.714 21280665.802 21280667.009
+ 44.700 37.200
+ -23136885.455 8 -18028739.002 8 20320076.457 20320071.986 20320075.805
+ 48.000 49.900
+ -10934225.704 5 -8520174.913 4 22499395.971 22499394.457 22499394.859
+ 33.200 29.500
+ 06 1 2 5 20 30.0000000 0 7G 5G14G18G30G 9G22G15
+ -6908339.627 5 -5383118.694 4 23161071.108 23161069.016 23161069.839
+ 30.600 25.900
+ -12439274.211 7 -9692939.202 6 21352174.802 21352171.813 21352173.787
+ 42.900 39.200
+ -13102698.954 7 -10209892.240 6 21198733.978 21198730.825 21198733.003
+ 45.600 38.100
+ -320024.971 3 -249369.678 3 24597624.327 24597622.991 24597623.896
+ 21.100 20.500
+ -17730041.354 7 -13815610.791 6 21294110.248 21294107.802 21294109.343
+ 44.700 37.000
+ -23148051.671 8 -18037439.948 8 20317951.348 20317947.108 20317950.806
+ 48.100 49.900
+ -10827289.535 5 -8436848.039 4 22519744.665 22519743.408 22519743.731
+ 32.800 28.800
+ 06 1 2 5 21 0.0000000 0 7G 5G14G18G30G 9G22G15
+ -6985040.412 5 -5442885.516 3 23146474.976 23146472.953 23146474.199
+ 31.100 23.400
+ -12492908.156 7 -9734731.886 6 21341968.600 21341965.596 21341967.581
+ 43.000 39.300
+ -13042329.727 7 -10162851.301 6 21210222.135 21210218.644 21210220.980
+ 45.700 38.000
+ -422117.024 3 -328921.839 3 24578196.909 24578195.988 24578195.915
+ 22.600 22.600
+ -17658893.907 7 -13760171.215 6 21307648.968 21307646.690 21307648.095
+ 44.300 37.000
+ -23158796.754 8 -18045812.742 8 20315906.765 20315902.277 20315906.083
+ 48.000 49.800
+ -10720098.302 5 -8353322.442 5 22540142.791 22540141.781 22540141.634
+ 32.600 30.400
+ 06 1 2 5 21 30.0000000 0 7G 5G14G18G30G 9G22G15
+ -7061409.133 5 -5502393.587 4 23131942.160 23131940.997 23131941.434
+ 30.200 26.200
+ -12546271.104 7 -9776313.397 6 21331813.646 21331811.072 21331812.874
+ 43.000 39.300
+ -12981569.731 7 -10115505.869 6 21221784.006 21221781.017 21221783.053
+ 45.500 38.200
+ -524182.932 3 -408453.640 3 24558772.897 24558773.647 24558773.330
+ 20.500 22.100
+ -17587240.341 7 -13704337.267 6 21321283.887 21321282.109 21321283.192
+ 43.800 37.100
+ -23169119.891 8 -18053856.746 8 20313942.248 20313937.870 20313941.668
+ 48.000 49.800
+ -10612655.215 5 -8269600.586 5 22560588.059 22560587.596 22560587.257
+ 32.400 31.000
+ 06 1 2 5 22 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7137442.754 5 -5561640.531 4 23117473.742 23117472.433 23117472.697
+ 30.600 26.800
+ -12599362.720 7 -9817683.487 6 21321711.148 21321707.991 21321709.951
+ 43.000 39.600
+ -12920419.593 7 -10067856.429 6 21233420.398 21233417.692 21233419.649
+ 45.600 38.300
+ -132143.175 1 -102969.198 9 24237196.205 24237195.377 24237195.970
+ 11.000 -3.000
+ -626219.632 3 -487962.673 3 24539355.587 24539356.423 24539356.489
+ 19.300 19.900
+ -17515083.260 7 -13648110.985 6 21335015.184 21335013.097 21335014.365
+ 44.100 37.100
+ -23179019.678 8 -18061570.869 8 20312058.353 20312054.095 20312057.822
+ 48.100 49.900
+ -10504963.245 5 -8185684.825 5 22581081.502 22581080.359 22581080.477
+ 31.600 30.200
+ 06 1 2 5 22 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7213138.197 5 -5620623.965 4 23103069.025 23103067.534 23103068.198
+ 31.000 25.600
+ -12652182.583 7 -9858841.822 6 21311659.480 21311656.797 21311658.594
+ 43.000 39.500
+ -12858879.621 7 -10019903.229 6 21245131.189 21245128.426 21245130.342
+ 45.700 38.100
+ -218183.971 1 -170013.937 24220823.726 24220822.803 24220823.082
+ 9.000 3.000
+ -728223.990 3 -567446.538 2 24519946.629 24519945.771 24519945.216
+ 18.600 17.800
+ -17442425.788 7 -13591494.766 6 21348841.363 21348839.333 21348840.620
+ 43.800 36.900
+ -23188495.461 8 -18068954.594 8 20310255.227 20310250.871 20310254.590
+ 48.100 49.900
+ -10397025.554 5 -8101577.570 4 22601621.439 22601620.297 22601620.275
+ 31.800 29.500
+ 06 1 2 5 23 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7288492.407 5 -5679341.498 4 23088729.684 23088728.312 23088728.403
+ 30.600 25.900
+ -12704730.304 7 -9899788.094 6 21301660.196 21301657.246 21301659.248
+ 43.200 39.500
+ -12796951.055 7 -9971647.217 6 21256915.769 21256912.893 21256914.957
+ 45.700 37.700
+ -304113.862 1 -236972.289 1 24204471.761 24204470.088 24204470.368
+ 11.000 9.000
+ -830193.053 2 -646902.902 3 24500541.686 24500541.352 24500541.470
+ 17.000 19.300
+ -17369270.617 7 -13534490.742 6 21362762.303 21362760.272 21362761.548
+ 43.800 36.600
+ -23197546.164 8 -18076007.093 8 20308533.185 20308528.527 20308532.516
+ 48.200 49.800
+ -10288845.370 5 -8017281.359 4 22622207.727 22622206.278 22622206.668
+ 32.700 29.200
+ 06 1 2 5 23 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7363502.332 5 -5737790.758 4 23074455.709 23074454.523 23074454.800
+ 31.600 26.800
+ -12757005.818 7 -9940522.260 6 21291712.403 21291709.511 21291711.352
+ 42.800 39.700
+ -12734634.146 7 -9923088.584 6 21268774.180 21268771.377 21268773.485
+ 45.600 37.700
+ -389932.504 2 -303843.891 1 24188141.417 24188139.702 24188139.505
+ 13.900 6.500
+ -932123.820 3 -726329.348 2 24481145.164 24481144.121 24481144.911
+ 19.300 17.800
+ -17295619.925 7 -13477100.587 6 21376777.262 21376775.541 21376776.468
+ 43.300 36.500
+ -23206170.454 8 -18082727.322 8 20306891.884 20306887.404 20306891.306
+ 48.500 49.800
+ -10180425.884 5 -7932798.659 4 22642839.524 22642837.857 22642838.314
+ 32.700 28.800
+ 06 1 2 5 24 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7438164.934 5 -5795969.388 4 23060248.689 23060246.592 23060247.168
+ 31.100 26.200
+ -12809009.029 7 -9981044.236 6 21281816.594 21281813.613 21281815.549
+ 43.000 39.800
+ -12671929.797 7 -9874228.058 6 21280706.951 21280703.568 21280705.886
+ 45.600 37.600
+ -475639.377 2 -370628.420 1 24171830.582 24171829.301 24171830.215
+ 12.600 6.500
+ -1034013.069 3 -805723.513 2 24461757.574 24461755.323 24461756.584
+ 21.600 17.000
+ -17221477.122 7 -13419326.978 6 21390886.298 21390884.587 21390885.574
+ 43.300 36.800
+ -23214367.531 8 -18089114.656 8 20305332.301 20305327.539 20305331.565
+ 48.400 49.800
+ -10071770.122 5 -7848131.878 4 22663515.549 22663514.400 22663514.548
+ 31.000 28.800
+ 06 1 2 5 24 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7512477.176 5 -5853875.010 4 23046106.186 23046105.592 23046105.602
+ 31.000 26.500
+ -12860739.564 7 -10021353.741 6 21271972.429 21271969.492 21271971.477
+ 42.700 39.700
+ -12608838.565 7 -9825066.066 6 21292712.522 21292709.509 21292711.612
+ 45.600 37.700
+ -561234.121 2 -437325.622 1 24155542.588 24155541.570 24155541.696
+ 12.600 9.000
+ -1135857.834 4 -885083.038 2 24442374.734 24442374.657 24442375.280
+ 24.200 16.100
+ -17146844.789 7 -13361171.916 6 21405088.679 21405086.456 21405087.662
+ 43.400 36.600
+ -23222136.226 8 -18095168.187 8 20303853.912 20303849.214 20303853.296
+ 48.600 49.800
+ -9962881.249 5 -7763283.430 4 22684236.642 22684235.504 22684235.511
+ 32.300 29.500
+ 06 1 2 5 25 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7586436.067 4 -5911505.268 4 23032033.433 23032031.600 23032031.849
+ 29.500 26.800
+ -12912196.973 7 -10061450.424 6 21262180.495 21262177.635 21262179.562
+ 43.300 40.100
+ -12545361.126 7 -9775603.126 6 21304791.655 21304788.761 21304790.928
+ 45.300 37.100
+ -646716.359 2 -503935.115 24139275.723 24139275.330 24139274.702
+ 13.900 3.000
+ -1237654.960 3 -964405.441 1 24423004.230 24423003.503 24423003.825
+ 21.600 6.500
+ -17071725.610 7 -13302637.487 6 21419383.271 21419381.168 21419382.421
+ 43.500 36.500
+ -23229475.903 8 -18100887.417 8 20302457.193 20302452.517 20302456.616
+ 48.500 49.800
+ -9853762.271 5 -7678255.692 4 22705001.190 22704999.948 22705000.382
+ 31.800 29.500
+ 06 1 2 5 25 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7660038.512 5 -5968857.823 4 23018027.350 23018025.196 23018026.397
+ 32.300 26.500
+ -12963381.000 7 -10101334.076 6 21252440.578 21252437.603 21252439.508
+ 43.100 40.200
+ -12481498.260 7 -9725839.866 6 21316944.647 21316941.495 21316943.699
+ 45.100 37.000
+ -732085.602 2 -570456.573 1 24123030.864 24123029.378 24123029.819
+ 15.100 6.500
+ -1339401.570 3 -1043688.480 1 24403642.752 24403641.435 24403641.761
+ 21.100 11.000
+ -16996123.022 7 -13243726.375 6 21433769.817 21433767.953 21433769.045
+ 43.200 36.300
+ -23236385.670 8 -18106271.654 8 20301142.312 20301137.643 20301141.604
+ 48.400 49.800
+ -9744416.412 5 -7593051.167 4 22725809.408 22725807.769 22725808.160
+ 32.700 28.800
+ 06 1 2 5 26 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7733281.691 5 -6025930.403 4 23004089.854 23004087.780 23004088.402
+ 32.400 27.600
+ -13014291.678 7 -10141004.732 6 21242752.363 21242749.716 21242751.407
+ 42.900 40.400
+ -12417250.537 7 -9675776.709 6 21329170.579 21329167.509 21329169.568
+ 45.000 37.200
+ -817341.449 3 -636889.728 1 24106807.004 24106806.496 24106806.325
+ 20.500 6.500
+ -1441094.390 3 -1122929.629 1 24384290.859 24384289.721 24384290.757
+ 22.100 6.500
+ -16920039.329 7 -13184440.387 6 21448248.213 21448246.192 21448247.324
+ 43.200 36.500
+ -23242864.241 8 -18111319.891 8 20299909.344 20299904.796 20299908.763
+ 48.500 49.800
+ -9634846.874 5 -7507672.314 4 22746659.572 22746658.110 22746658.532
+ 30.800 26.800
+ 06 1 2 5 26 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7806162.334 5 -6082720.480 4 22990220.681 22990219.201 22990219.277
+ 31.800 28.600
+ -13064928.385 7 -10180461.900 6 21233116.673 21233113.782 21233115.592
+ 43.100 40.200
+ -12352618.740 7 -9625414.291 6 21341469.600 21341466.511 21341468.638
+ 44.900 37.100
+ -902483.492 3 -703234.177 1 24090605.798 24090604.166 24090604.786
+ 19.300 9.000
+ -1542730.437 3 -1202126.524 1 24364949.790 24364948.227 24364949.784
+ 23.800 6.500
+ -16843477.456 7 -13124781.781 6 21462817.385 21462815.369 21462816.555
+ 43.000 36.000
+ -23248910.641 8 -18116031.372 8 20298758.782 20298754.193 20298758.188
+ 48.500 49.800
+ -9525056.650 4 -7422121.526 4 22767551.585 22767550.575 22767550.730
+ 29.700 26.200
+ 06 1 2 5 27 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7878677.571 5 -6139225.838 4 22976421.212 22976419.842 22976420.209
+ 32.700 27.900
+ -13115290.914 7 -10219705.427 6 21223532.915 21223530.436 21223531.960
+ 43.100 40.900
+ -12287603.804 7 -9574753.334 6 21353841.437 21353838.470 21353840.570
+ 44.800 36.800
+ -987511.266 3 -769489.568 2 24074425.236 24074423.864 24074424.419
+ 22.100 12.600
+ -1644306.586 3 -1281276.772 3 24345621.849 24345620.325 24345620.894
+ 23.400 19.900
+ -16766439.982 7 -13064752.587 5 21477477.200 21477474.973 21477476.375
+ 43.000 35.600
+ -23254524.053 8 -18120405.462 8 20297690.616 20297686.004 20297690.034
+ 48.700 49.800
+ -9415048.833 4 -7336401.171 4 22788485.840 22788484.584 22788484.506
+ 29.900 27.900
+ 06 1 2 5 27 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -7950824.416 5 -6195444.152 4 22962692.944 22962690.654 22962691.385
+ 33.100 26.800
+ -13165378.642 7 -10258734.825 6 21214001.649 21213998.725 21214000.592
+ 43.100 40.600
+ -12222206.160 7 -9523794.150 6 21366286.247 21366283.416 21366285.389
+ 44.600 37.100
+ -1072424.376 3 -835655.596 2 24058266.234 24058265.129 24058265.479
+ 23.400 12.600
+ -1745819.701 3 -1360377.853 3 24326303.948 24326303.046 24326303.210
+ 21.600 19.300
+ -16688930.694 7 -13004355.737 6 21492226.776 21492224.774 21492225.953
+ 43.000 36.100
+ -23259703.678 8 -18124441.536 8 20296704.986 20296700.367 20296704.351
+ 48.400 49.700
+ -9304826.585 5 -7250513.782 4 22809460.022 22809459.214 22809459.034
+ 30.100 27.900
+ 06 1 2 5 28 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8022599.896 5 -6251373.084 4 22949033.499 22949032.191 22949032.561
+ 32.700 27.100
+ -13215192.128 7 -10297550.525 6 21204522.506 21204519.610 21204521.423
+ 43.400 40.500
+ -12156426.511 7 -9472537.291 6 21378803.546 21378800.829 21378802.785
+ 44.800 37.000
+ -1157222.423 4 -901731.981 3 24042129.889 24042128.746 24042129.075
+ 25.300 18.600
+ -1847266.735 3 -1439427.414 3 24306998.853 24306997.385 24306998.223
+ 20.500 20.500
+ -16610950.955 7 -12943592.310 6 21507065.836 21507063.796 21507065.045
+ 43.400 36.000
+ -23264448.233 8 -18128138.592 8 20295802.139 20295797.509 20295801.454
+ 48.400 49.700
+ -9194393.280 5 -7164461.860 4 22830475.151 22830474.158 22830474.169
+ 31.800 28.800
+ 06 1 2 5 28 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8094001.022 5 -6307010.309 4 22935446.845 22935445.072 22935445.548
+ 32.400 27.400
+ -13264730.805 7 -10336152.091 6 21195095.507 21195092.611 21195094.523
+ 43.300 40.700
+ -12090265.944 7 -9420983.623 6 21391393.904 21391390.786 21391392.889
+ 44.800 36.600
+ -1241905.021 4 -967718.409 3 24026015.471 24026014.567 24026014.674
+ 25.600 19.300
+ -1948644.523 3 -1518423.081 2 24287706.855 24287706.054 24287706.471
+ 20.500 17.000
+ -16532504.918 7 -12882465.521 6 21521993.459 21521991.631 21521992.724
+ 42.700 36.100
+ -23268756.885 8 -18131495.985 8 20294982.245 20294977.625 20294981.589
+ 48.400 49.800
+ -9083751.977 4 -7078247.897 4 22851528.791 22851528.118 22851528.035
+ 29.900 26.500
+ 06 1 2 5 29 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8165024.804 5 -6362353.501 4 22921931.046 22921929.552 22921929.987
+ 32.600 26.500
+ -13313994.276 7 -10374539.210 6 21185720.935 21185718.092 21185720.092
+ 43.600 40.700
+ -12023724.594 7 -9369133.234 6 21404055.779 21404053.082 21404055.191
+ 44.900 36.500
+ -1326471.712 4 -1033614.533 3 24009922.752 24009921.867 24009921.716
+ 25.300 20.500
+ -2049949.975 3 -1597362.354 3 24268428.578 24268428.956 24268429.012
+ 21.600 21.600
+ -16453594.762 7 -12820977.094 5 21537009.748 21537007.570 21537008.882
+ 42.700 35.600
+ -23272629.088 8 -18134513.286 8 20294245.291 20294240.796 20294244.660
+ 48.300 49.800
+ -8972905.472 5 -6991874.028 4 22872622.983 22872621.948 22872621.639
+ 30.200 27.900
+ 06 1 2 5 29 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8235668.388 5 -6417400.418 4 22908487.828 22908486.878 22908486.877
+ 33.000 27.400
+ -13362982.328 7 -10412711.717 6 21176398.799 21176395.952 21176397.889
+ 43.500 40.600
+ -11956803.695 7 -9316987.103 6 21416790.551 21416787.711 21416789.876
+ 44.900 36.200
+ -1410922.075 4 -1099419.991 3 23993852.846 23993851.438 23993851.825
+ 26.200 21.100
+ -2151179.953 3 -1676242.802 3 24249167.234 24249165.035 24249166.363
+ 22.100 21.600
+ -16374223.349 7 -12759129.239 5 21552113.540 21552111.550 21552112.645
+ 42.600 35.900
+ -23276063.717 8 -18137189.622 8 20293591.757 20293587.163 20293591.091
+ 48.300 49.800
+ -8861856.958 4 -6905342.756 4 22893753.968 22893753.504 22893753.377
+ 29.500 27.400
+ 06 1 2 5 30 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8305928.767 5 -6472148.735 4 22895118.473 22895116.582 22895117.082
+ 32.700 27.900
+ -13411694.658 7 -10450669.374 6 21167129.244 21167126.454 21167128.243
+ 43.400 41.000
+ -11889503.860 7 -9264545.707 6 21429597.556 21429594.629 21429596.493
+ 44.600 36.400
+ -1495255.808 4 -1165134.568 3 23977803.805 23977803.073 23977803.156
+ 25.900 23.400
+ -2252331.269 2 -1755061.942 3 24229917.920 24229916.496 24229917.533
+ 17.800 19.900
+ -16294394.083 7 -12696924.616 5 21567304.419 21567302.484 21567303.533
+ 42.300 35.600
+ -23279059.988 8 -18139524.377 8 20293021.444 20293017.009 20293020.860
+ 48.400 49.800
+ -8750609.681 4 -6818656.602 4 22914924.446 22914923.268 22914923.490
+ 29.900 26.800
+ 06 1 2 5 30 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8375802.965 5 -6526596.152 4 22881820.809 22881820.037 22881820.402
+ 32.600 27.600
+ -13460131.058 7 -10488412.022 6 21157911.908 21157908.972 21157911.020
+ 43.400 40.600
+ -11821825.873 7 -9211809.621 5 21442476.543 21442473.221 21442475.270
+ 44.400 35.900
+ -1579472.445 4 -1230757.889 4 23961778.149 23961777.495 23961777.484
+ 27.100 24.600
+ -2353400.902 4 -1833817.462 2 24210685.158 24210683.920 24210685.049
+ 24.200 17.800
+ -16214109.451 7 -12634365.162 5 21582581.991 21582580.205 21582581.311
+ 42.100 35.200
+ -23281616.709 8 -18141516.628 8 20292535.036 20292530.542 20292534.370
+ 48.300 49.800
+ -8639166.820 5 -6731818.044 4 22936131.632 22936130.322 22936130.493
+ 30.600 27.600
+ 06 1 2 5 31 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8445288.118 5 -6580740.388 4 22868599.215 22868597.528 22868597.761
+ 33.000 27.900
+ -13508291.242 7 -10525939.439 6 21148747.381 21148744.571 21148746.495
+ 43.600 40.700
+ -11753770.779 7 -9158779.701 6 21455426.840 21455423.683 21455425.669
+ 44.400 36.100
+ -1663571.436 4 -1296289.536 4 23945774.935 23945774.041 23945773.899
+ 26.800 27.100
+ -2454385.613 3 -1912506.842 3 24191468.057 24191467.577 24191467.811
+ 23.400 19.300
+ -16133372.570 6 -12571453.312 5 21597945.623 21597943.919 21597944.883
+ 41.900 35.500
+ -23283733.196 8 -18143165.840 8 20292132.092 20292127.783 20292131.546
+ 48.400 49.800
+ -8527531.404 4 -6644829.454 4 22957374.341 22957374.105 22957373.555
+ 29.700 27.900
+ 06 1 2 5 31 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8514381.288 5 -6634579.178 4 22855451.077 22855449.217 22855449.846
+ 33.000 28.400
+ -13556174.966 7 -10563251.435 6 21139635.283 21139632.674 21139634.279
+ 43.100 40.900
+ -11685339.061 7 -9105456.286 6 21468448.318 21468446.011 21468447.723
+ 44.600 36.200
+ -1747552.421 4 -1361729.229 4 23929794.080 23929792.849 23929792.919
+ 27.900 27.600
+ -2555282.398 3 -1991127.648 3 24172268.854 24172267.788 24172268.022
+ 22.600 21.100
+ -16052185.938 7 -12508191.004 5 21613395.194 21613393.113 21613394.324
+ 42.100 35.200
+ -23285408.790 8 -18144471.502 8 20291813.268 20291808.854 20291812.706
+ 48.200 49.700
+ -8415706.752 4 -6557693.404 4 22978654.205 22978653.420 22978653.238
+ 28.600 27.100
+ 06 1 2 5 32 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8583079.612 5 -6688110.303 4 22842378.425 22842376.262 22842376.843
+ 33.100 28.400
+ -13603781.932 7 -10600347.766 6 21130576.076 21130573.374 21130575.101
+ 43.200 41.100
+ -11616531.816 7 -9051840.277 6 21481542.287 21481539.638 21481541.446
+ 44.300 36.100
+ -1831415.021 4 -1427076.674 4 23913835.561 23913834.228 23913834.527
+ 29.500 27.400
+ -2656087.919 3 -2069677.402 3 24153085.315 24153084.636 24153084.819
+ 23.400 20.500
+ -15970552.840 6 -12444580.793 5 21628929.418 21628927.376 21628928.618
+ 41.900 35.100
+ -23286642.399 8 -18145432.753 8 20291578.655 20291574.081 20291577.965
+ 48.200 49.600
+ -8303695.901 4 -6470412.274 4 22999969.534 22999968.616 22999968.190
+ 29.700 27.600
+ 06 1 2 5 32 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8651380.173 5 -6741331.484 4 22829381.157 22829379.169 22829379.983
+ 33.900 28.600
+ -13651111.558 7 -10637227.986 6 21121569.580 21121566.859 21121568.562
+ 43.300 41.200
+ -11547350.179 7 -8997932.523 6 21494707.288 21494704.343 21494706.255
+ 44.000 36.200
+ -1915158.846 4 -1492331.580 4 23897899.901 23897898.150 23897898.804
+ 28.800 26.800
+ -2756799.259 3 -2148153.728 2 24133919.259 24133918.856 24133919.774
+ 23.000 15.100
+ -15888475.722 6 -12380624.599 5 21644548.225 21644546.356 21644547.412
+ 41.800 35.200
+ -23287433.275 8 -18146049.021 8 20291428.138 20291423.628 20291427.521
+ 48.200 49.600
+ -8191501.873 5 -6382988.384 4 23021319.115 23021318.254 23021318.169
+ 30.200 25.900
+ 06 1 2 5 33 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8719280.096 5 -6794240.493 4 22816459.500 22816458.186 22816458.679
+ 33.400 28.100
+ -13698164.061 7 -10673892.276 6 21112615.827 21112613.114 21112614.855
+ 43.500 41.400
+ -11477794.229 7 -8943733.094 5 21507943.399 21507940.298 21507942.284
+ 43.700 35.500
+ -1998783.572 4 -1557493.677 4 23881986.833 23881984.936 23881985.547
+ 29.500 25.300
+ -2857413.232 3 -2226554.200 3 24114774.130 24114773.182 24114773.202
+ 22.100 19.300
+ -15805958.101 7 -12316325.155 5 21660250.842 21660248.866 21660250.073
+ 42.300 35.200
+ -23287780.606 8 -18146319.672 8 20291361.998 20291357.499 20291361.414
+ 48.200 49.600
+ -8079127.721 4 -6295424.124 3 23042702.964 23042702.084 23042702.130
+ 29.200 23.800
+ 06 1 2 5 33 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8786776.440 5 -6846835.014 4 22803615.502 22803613.999 22803614.399
+ 33.000 28.400
+ -13744939.242 7 -10710340.466 6 21103714.728 21103711.999 21103713.799
+ 43.700 41.400
+ -11407865.164 7 -8889242.913 6 21521250.477 21521247.533 21521249.437
+ 43.700 36.000
+ -2082288.766 4 -1622562.649 3 23866096.065 23866094.309 23866094.878
+ 27.400 23.800
+ -2957926.481 3 -2304876.191 3 24095646.235 24095645.998 24095646.030
+ 23.000 18.600
+ -15723002.278 7 -12251684.257 5 21676036.731 21676034.918 21676035.829
+ 42.000 35.100
+ -23287683.581 8 -18146244.072 8 20291380.624 20291375.993 20291379.974
+ 48.500 49.500
+ -7966576.756 4 -6207722.104 4 23064120.817 23064120.303 23064119.809
+ 27.900 26.200
+ 06 1 2 5 34 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8853866.473 5 -6899112.932 4 22790849.529 22790847.226 22790847.779
+ 33.000 28.800
+ -13791436.782 7 -10746572.312 6 21094866.738 21094863.847 21094865.743
+ 43.600 41.500
+ -11337564.222 7 -8834462.976 6 21534627.883 21534625.480 21534627.132
+ 43.700 36.000
+ -2165673.992 4 -1687538.127 4 23850228.387 23850226.600 23850227.101
+ 26.500 25.300
+ -3058336.067 4 -2383117.384 3 24076538.738 24076538.413 24076538.842
+ 25.300 18.600
+ -15639611.975 7 -12186704.800 5 21691905.357 21691903.413 21691904.650
+ 42.000 34.800
+ -23287141.339 8 -18145821.550 8 20291483.848 20291479.231 20291483.176
+ 48.400 49.600
+ -7853851.964 4 -6119884.638 4 23085571.446 23085570.681 23085570.484
+ 28.600 25.600
+ 06 1 2 5 34 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8920547.259 5 -6951071.951 4 22778159.226 22778158.186 22778158.442
+ 33.900 28.800
+ -13837656.442 7 -10782587.632 6 21086071.175 21086068.486 21086070.275
+ 43.600 41.400
+ -11266891.701 7 -8779393.497 5 21548076.631 21548073.972 21548075.745
+ 43.600 35.900
+ -2248938.877 4 -1752419.836 4 23834383.711 23834382.092 23834382.396
+ 25.900 24.900
+ -3158638.650 4 -2461275.221 2 24057452.792 24057451.590 24057452.155
+ 25.300 17.800
+ -15555789.361 6 -12121388.475 5 21707856.253 21707854.281 21707855.366
+ 41.900 34.700
+ -23286153.002 8 -18145051.416 8 20291671.609 20291667.311 20291671.043
+ 48.300 49.700
+ -7740956.442 4 -6031914.166 4 23107054.707 23107054.203 23107053.978
+ 29.000 26.200
+ 06 1 2 5 35 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -8986815.893 5 -7002709.813 4 22765549.790 22765547.996 22765548.194
+ 33.900 29.900
+ -13883597.555 7 -10818385.900 6 21077328.976 21077326.190 21077328.003
+ 43.600 41.400
+ -11195848.545 7 -8724035.202 5 21561595.292 21561592.892 21561594.595
+ 43.400 35.600
+ -2332083.070 4 -1817207.484 3 23818561.698 23818560.071 23818560.374
+ 25.300 23.800
+ -3258831.189 4 -2539347.292 3 24038386.784 24038385.814 24038386.552
+ 25.600 21.100
+ -15471537.476 6 -12055737.654 5 21723889.082 21723886.951 21723888.298
+ 41.700 35.100
+ -23284717.985 8 -18143933.221 8 20291944.764 20291940.296 20291944.154
+ 48.300 49.500
+ -7627893.378 4 -5943813.096 4 23128570.247 23128569.388 23128569.273
+ 28.100 24.900
+ 06 1 2 5 35 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9052669.636 5 -7054024.383 4 22753017.233 22753016.432 22753016.436
+ 34.300 28.800
+ -13929260.317 7 -10853967.273 6 21068639.933 21068636.943 21068638.799
+ 43.700 41.700
+ -11124435.984 7 -8668389.066 5 21575185.396 21575182.248 21575184.161
+ 43.100 35.200
+ -2415106.136 4 -1881900.750 3 23802762.420 23802761.307 23802761.596
+ 24.600 23.400
+ -3358910.451 3 -2617331.126 2 24019341.751 24019341.019 24019341.720
+ 23.000 17.800
+ -15386859.491 6 -11989754.805 5 21740002.437 21740000.749 21740001.771
+ 41.200 34.900
+ -23282835.339 8 -18142466.224 8 20292303.079 20292298.541 20292302.461
+ 48.200 49.600
+ -7514665.794 4 -5855583.864 4 23150117.175 23150116.057 23150115.983
+ 27.400 25.600
+ 06 1 2 5 36 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9118105.757 5 -7105013.539 4 22740565.652 22740564.225 22740564.353
+ 33.500 29.500
+ -13974644.353 7 -10889331.452 6 21060003.485 21060000.770 21060002.506
+ 43.800 41.900
+ -11052655.197 7 -8612455.997 5 21588844.784 21588841.641 21588843.539
+ 43.100 35.100
+ -2498007.809 4 -1946499.431 3 23786986.579 23786985.627 23786985.857
+ 26.800 23.000
+ -3458873.247 4 -2695224.144 3 24000319.117 24000319.104 24000319.343
+ 26.200 18.600
+ -15301758.394 6 -11923442.271 5 21756197.348 21756194.830 21756196.244
+ 41.100 35.100
+ -23280504.428 8 -18140649.931 8 20292746.631 20292742.199 20292746.057
+ 48.200 49.600
+ -7401276.968 5 -5767228.951 4 23171693.932 23171693.027 23171693.165
+ 30.100 24.600
+ 06 1 2 5 36 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9183121.187 5 -7155674.891 4 22728192.868 22728191.680 22728192.304
+ 33.900 28.400
+ -14019749.415 7 -10924478.254 6 21051420.157 21051417.395 21051419.335
+ 43.900 41.900
+ -10980506.487 7 -8556236.217 5 21602573.965 21602571.171 21602572.943
+ 43.000 34.900
+ -2580787.653 4 -2011003.203 3 23771234.370 23771233.331 23771233.758
+ 27.900 23.400
+ -3558716.289 4 -2773023.905 3 23981320.954 23981319.650 23981320.392
+ 26.800 21.100
+ -15216236.864 6 -11856802.120 5 21772471.019 21772469.305 21772470.094
+ 40.900 34.700
+ -23277724.543 8 -18138483.790 8 20293275.684 20293271.207 20293275.076
+ 48.100 49.600
+ -7287729.937 4 -5678750.813 4 23193301.681 23193300.415 23193300.331
+ 27.900 25.300
+ 06 1 2 5 37 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9247713.372 5 -7206006.446 4 22715902.369 22715900.435 22715900.789
+ 33.800 28.800
+ -14064575.290 7 -10959407.503 7 21042890.328 21042887.465 21042889.321
+ 44.100 42.100
+ -10907990.822 7 -8499730.505 5 21616372.538 21616370.434 21616372.157
+ 43.300 35.100
+ -2663445.297 4 -2075411.746 4 23755505.141 23755503.978 23755504.292
+ 29.000 25.600
+ -3658436.621 3 -2850727.997 3 23962343.507 23962343.737 23962343.346
+ 23.000 21.100
+ -15130298.236 6 -11789836.951 5 21788824.493 21788822.563 21788823.666
+ 41.100 34.300
+ -23274494.765 8 -18135967.085 8 20293890.224 20293885.726 20293889.571
+ 48.000 49.400
+ -7174028.001 4 -5590151.917 4 23214937.434 23214937.756 23214936.966
+ 27.600 26.800
+ 06 1 2 5 37 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9311879.500 5 -7256005.996 4 22703690.582 22703689.741 22703690.080
+ 34.300 28.100
+ -14109121.662 7 -10994118.962 7 21034413.494 21034410.559 21034412.447
+ 44.000 42.200
+ -10835109.471 7 -8442939.850 5 21630242.035 21630239.338 21630241.032
+ 43.000 34.700
+ -2745980.175 4 -2139724.615 4 23739798.820 23739798.024 23739798.144
+ 29.200 25.900
+ -3758030.854 4 -2928333.883 3 23943391.333 23943391.208 23943391.478
+ 25.600 19.300
+ -15043944.910 6 -11722548.639 5 21805257.134 21805255.080 21805256.256
+ 41.100 33.900
+ -23270814.485 8 -18133099.333 8 20294590.492 20294586.078 20294589.906
+ 48.100 49.400
+ -7060173.819 4 -5501434.438 3 23236604.196 23236602.875 23236602.724
+ 27.100 23.800
+ 06 1 2 5 38 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9375616.773 5 -7305671.392 4 22691562.913 22691561.137 22691561.645
+ 33.900 28.800
+ -14153388.466 7 -11028612.574 7 21025989.568 21025986.832 21025988.526
+ 43.700 42.400
+ -10761863.172 7 -8385864.833 5 21644181.015 21644177.471 21644179.585
+ 42.800 34.300
+ -2828391.959 4 -2203941.567 4 23724116.884 23724115.551 23724116.069
+ 29.900 24.900
+ -3857495.839 3 -3005839.072 3 23924464.607 23924463.682 23924463.967
+ 23.800 20.500
+ -14957180.214 6 -11654939.793 5 21821767.781 21821765.970 21821766.965
+ 40.700 34.100
+ -23266682.964 7 -18129879.966 8 20295376.963 20295372.315 20295376.235
+ 47.900 49.400
+ -6946170.543 4 -5412600.782 4 23258298.372 23258297.436 23258297.066
+ 26.800 25.600
+ 06 1 2 5 38 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9438922.463 5 -7355000.477 4 22679515.666 22679514.365 22679514.865
+ 34.100 28.600
+ -14197375.307 7 -11062888.028 7 21017619.079 21017616.378 21017618.319
+ 44.000 42.300
+ -10688252.953 7 -8328506.253 5 21658188.001 21658185.319 21658187.091
+ 42.900 34.900
+ -2910680.283 4 -2268062.327 4 23708457.847 23708456.436 23708457.139
+ 29.700 24.900
+ -3956828.466 3 -3083241.071 3 23905561.342 23905561.142 23905561.566
+ 23.000 21.600
+ -14870007.004 6 -11587012.616 5 21838356.395 21838354.518 21838355.646
+ 41.200 34.100
+ -23262099.453 8 -18126308.397 8 20296249.095 20296244.530 20296248.466
+ 48.200 49.500
+ -6832021.388 4 -5323653.420 3 23280019.610 23280018.824 23280018.642
+ 27.100 23.800
+ 06 1 2 5 39 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9501793.747 5 -7403991.069 4 22667551.911 22667550.037 22667550.791
+ 33.600 28.600
+ -14241081.952 7 -11096945.153 7 21009302.301 21009299.127 21009301.261
+ 44.000 42.100
+ -10614279.904 7 -8270864.927 5 21672264.167 21672261.987 21672263.746
+ 43.000 34.600
+ -2992844.712 4 -2332086.543 4 23692822.402 23692821.244 23692821.762
+ 29.000 24.200
+ -4056025.498 3 -3160537.445 3 23886685.875 23886684.037 23886685.325
+ 23.800 20.500
+ -14782428.427 6 -11518769.571 5 21855021.956 21855020.017 21855021.068
+ 40.600 33.000
+ -23257063.126 8 -18122383.986 8 20297207.327 20297202.930 20297206.727
+ 48.100 49.400
+ -6717729.496 4 -5234594.845 4 23301768.801 23301768.400 23301767.913
+ 27.900 24.900
+ 06 1 2 5 39 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9564227.879 5 -7452641.025 5 22655670.615 22655669.771 22655669.632
+ 33.500 30.400
+ -14284508.035 7 -11130783.659 7 21001038.326 21001035.501 21001037.203
+ 43.600 42.400
+ -10539944.967 7 -8212941.617 5 21686410.100 21686407.397 21686409.363
+ 42.700 34.600
+ -3074884.822 4 -2396013.889 4 23677210.499 23677209.525 23677209.938
+ 28.600 24.900
+ -4155083.677 4 -3237725.607 3 23867834.700 23867834.579 23867834.862
+ 24.200 22.100
+ -14694447.291 6 -11450212.834 5 21871764.421 21871762.130 21871763.523
+ 40.500 33.400
+ -23251573.734 8 -18118106.535 8 20298251.873 20298247.534 20298251.322
+ 48.000 49.500
+ -6603298.066 4 -5145427.541 4 23323544.726 23323543.710 23323543.696
+ 28.600 24.200
+ 06 1 2 5 40 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9626222.242 5 -7500948.272 5 22643873.955 22643872.517 22643872.586
+ 33.600 30.100
+ -14327653.486 7 -11164403.489 7 20992827.976 20992825.013 20992826.998
+ 43.800 42.000
+ -10465248.981 7 -8154736.975 5 21700624.724 21700621.546 21700623.582
+ 42.600 34.400
+ -3156800.332 4 -2459844.135 4 23661622.569 23661621.387 23661621.763
+ 27.100 24.200
+ -4253999.729 4 -3314803.011 3 23849011.830 23849011.589 23849011.860
+ 25.900 22.600
+ -14606066.513 6 -11381344.689 5 21888582.560 21888580.811 21888581.735
+ 40.600 34.000
+ -23245630.258 8 -18113475.253 8 20299383.012 20299378.525 20299382.346
+ 48.000 49.400
+ -6488729.914 4 -5056153.735 3 23345346.310 23345345.518 23345345.331
+ 28.100 22.600
+ 06 1 2 5 40 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9687774.037 5 -7548910.693 5 22632160.571 22632159.667 22632159.834
+ 34.400 30.600
+ -14370518.202 7 -11197804.560 7 20984670.842 20984668.224 20984669.958
+ 43.500 42.400
+ -10390192.829 7 -8096251.698 5 21714907.856 21714904.280 21714906.408
+ 42.600 34.500
+ -3238590.865 4 -2523576.989 4 23646058.271 23646056.936 23646057.622
+ 29.700 24.200
+ -4352770.587 4 -3391767.284 3 23830217.245 23830215.884 23830216.478
+ 26.200 21.600
+ -14517288.783 6 -11312167.244 5 21905476.467 21905474.620 21905475.619
+ 40.700 33.900
+ -23239232.082 7 -18108489.664 8 20300600.594 20300596.061 20300599.956
+ 47.900 49.400
+ -6374028.322 4 -4966775.877 3 23367173.331 23367172.488 23367172.217
+ 27.400 23.000
+ 06 1 2 5 41 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9748880.603 5 -7596526.157 4 22620533.242 22620531.238 22620532.127
+ 35.500 29.900
+ -14413101.534 7 -11230986.374 7 20976567.898 20976564.844 20976566.820
+ 43.600 42.200
+ -10314777.696 7 -8037486.682 5 21729258.141 21729255.400 21729257.221
+ 42.300 34.400
+ -3320255.921 4 -2587212.088 4 23630518.296 23630516.657 23630517.426
+ 29.500 24.200
+ -4451392.954 4 -3468615.857 3 23811449.580 23811448.735 23811448.930
+ 24.600 23.800
+ -14428117.401 6 -11242683.055 5 21922445.082 21922443.312 21922444.407
+ 40.600 33.800
+ -23232378.620 7 -18103149.305 8 20301904.670 20301900.248 20301904.100
+ 47.900 49.300
+ -6259196.303 4 -4877296.403 3 23389024.595 23389024.189 23389023.979
+ 26.200 22.600
+ 06 1 2 5 41 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9809539.252 5 -7643792.616 4 22608989.798 22608988.356 22608988.793
+ 34.500 29.500
+ -14455403.579 7 -11263949.005 7 20968518.123 20968515.014 20968517.075
+ 43.800 42.300
+ -10239004.685 7 -7978442.797 5 21743676.327 21743674.538 21743676.181
+ 42.300 34.000
+ -3401795.110 4 -2650749.108 4 23615001.878 23615000.131 23615000.711
+ 29.200 24.600
+ -4549863.654 3 -3545346.197 3 23792709.464 23792710.249 23792709.733
+ 21.100 21.600
+ -14338555.464 6 -11172894.535 5 21939488.338 21939486.477 21939487.480
+ 40.100 33.500
+ -23225069.234 8 -18097453.683 8 20303295.604 20303291.123 20303295.036
+ 48.000 49.300
+ -6144236.959 4 -4787717.726 4 23410901.321 23410900.661 23410900.189
+ 26.200 24.200
+ 06 1 2 5 42 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9869747.383 5 -7690708.005 5 22597532.836 22597530.923 22597531.729
+ 34.800 30.100
+ -14497424.129 7 -11296692.293 7 20960521.747 20960518.856 20960520.762
+ 43.800 42.500
+ -10162874.726 6 -7919120.781 5 21758163.676 21758161.440 21758163.134
+ 41.900 33.800
+ -3483208.042 4 -2714187.743 3 23599509.427 23599507.578 23599508.353
+ 28.400 23.800
+ -4648179.386 4 -3621955.832 3 23774002.980 23774000.737 23774002.152
+ 28.100 20.500
+ -14248605.705 6 -11102803.819 5 21956604.923 21956603.204 21956604.219
+ 40.300 33.000
+ -23217303.354 7 -18091402.353 8 20304773.424 20304768.883 20304772.849
+ 47.900 49.300
+ -6029153.390 4 -4698042.256 3 23432800.664 23432800.068 23432799.859
+ 24.900 23.000
+ 06 1 2 5 42 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9929502.211 5 -7737270.195 4 22586162.225 22586159.842 22586160.898
+ 35.500 29.700
+ -14539162.986 7 -11329216.073 7 20952579.138 20952576.137 20952578.165
+ 43.900 42.300
+ -10086388.986 6 -7859521.534 5 21772719.414 21772716.334 21772718.179
+ 41.800 33.800
+ -3564494.455 4 -2777527.788 4 23584041.040 23584039.525 23584039.991
+ 27.400 25.300
+ -4746337.056 4 -3698442.313 3 23755323.436 23755322.403 23755323.108
+ 25.600 23.000
+ -14158271.202 6 -11032413.295 5 21973795.178 21973793.295 21973794.298
+ 40.200 32.800
+ -23209080.186 7 -18084994.697 8 20306338.405 20306333.743 20306337.694
+ 47.800 49.300
+ -5913948.706 4 -4608272.409 4 23454723.720 23454723.091 23454722.902
+ 26.800 24.900
+ 06 1 2 5 43 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -9988801.249 5 -7783477.224 4 22574877.832 22574875.543 22574876.637
+ 35.900 29.200
+ -14580619.475 7 -11361519.832 7 20944690.285 20944687.375 20944689.269
+ 43.800 42.600
+ -10009548.677 6 -7799646.003 5 21787342.549 21787338.504 21787340.783
+ 41.900 33.600
+ -3645653.960 4 -2840768.921 4 23568597.095 23568595.605 23568596.040
+ 29.500 27.900
+ -4844333.422 4 -3774803.039 3 23736675.073 23736674.257 23736675.058
+ 27.100 19.900
+ -14067554.627 6 -10961725.055 5 21991058.116 21991056.059 21991057.299
+ 40.200 33.200
+ -23200399.216 7 -18078230.310 8 20307990.043 20307985.754 20307989.503
+ 47.600 49.200
+ -5798626.014 4 -4518410.621 4 23476669.609 23476668.567 23476667.930
+ 24.200 24.900
+ 06 1 2 5 43 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10047641.829 5 -7829327.029 5 22563680.595 22563678.740 22563679.437
+ 35.500 30.200
+ -14621793.909 7 -11393603.804 7 20936855.189 20936852.137 20936854.081
+ 44.000 42.800
+ -9932354.626 7 -7739494.821 5 21802030.868 21802028.120 21802030.156
+ 42.200 33.500
+ -3726686.038 5 -2903910.776 4 23553177.370 23553175.716 23553176.339
+ 30.600 28.100
+ -4942165.145 4 -3851035.554 3 23718059.553 23718057.870 23718058.468
+ 26.800 22.100
+ -13976458.862 6 -10890741.343 5 22008392.982 22008391.086 22008392.120
+ 40.200 33.200
+ -23191259.807 7 -18071108.698 8 20309729.314 20309724.905 20309728.725
+ 47.500 49.100
+ -5683188.588 4 -4428459.440 3 23498636.023 23498635.257 23498634.605
+ 24.200 23.000
+ 06 1 2 5 44 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10106021.279 5 -7874817.493 5 22552571.085 22552569.747 22552570.041
+ 35.200 30.100
+ -14662685.867 7 -11425467.669 7 20929073.590 20929070.579 20929072.637
+ 44.100 42.700
+ -9854807.761 7 -7679068.705 5 21816787.265 21816784.726 21816786.841
+ 42.400 33.200
+ -3807590.385 5 -2966953.108 4 23537781.120 23537779.820 23537780.347
+ 30.800 26.200
+ -5039829.115 4 -3927137.280 3 23699473.118 23699472.606 23699473.402
+ 26.500 23.800
+ -13884987.321 6 -10819464.823 5 22025799.428 22025797.221 22025798.598
+ 40.000 32.000
+ -23181661.583 7 -18063629.568 8 20311555.703 20311551.287 20311555.110
+ 47.400 49.100
+ -5567639.156 4 -4338420.969 3 23520623.590 23520623.450 23520622.816
+ 24.600 23.000
+ 06 1 2 5 44 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10163937.137 5 -7919946.729 4 22541550.639 22541548.545 22541549.249
+ 34.900 29.700
+ -14703294.662 7 -11457110.882 7 20921345.870 20921343.055 20921344.936
+ 44.000 43.100
+ -9776908.793 7 -7618368.229 5 21831610.886 21831608.744 21831610.439
+ 42.200 33.500
+ -3888366.582 5 -3029895.590 4 23522410.161 23522408.542 23522409.184
+ 30.100 24.900
+ -5137321.954 4 -4003105.696 3 23680921.269 23680919.984 23680921.389
+ 27.900 22.100
+ -13793142.942 6 -10747897.780 5 22043276.954 22043274.958 22043276.121
+ 39.700 32.800
+ -23171603.733 7 -18055792.287 8 20313469.776 20313465.280 20313469.137
+ 47.500 49.000
+ -5451980.800 4 -4248297.630 3 23542633.908 23542632.766 23542632.630
+ 25.300 23.400
+ 06 1 2 5 45 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10221386.678 5 -7964712.584 5 22530617.975 22530616.266 22530616.944
+ 35.600 30.200
+ -14743620.747 7 -11488533.803 7 20913672.175 20913669.121 20913671.246
+ 44.300 42.900
+ -9698659.677 7 -7557394.918 5 21846502.479 21846498.672 21846501.073
+ 42.000 33.000
+ -3969014.228 4 -3092737.904 4 23507063.347 23507061.757 23507062.539
+ 28.800 24.900
+ -5234640.611 4 -4078938.379 3 23662402.434 23662400.919 23662401.332
+ 24.600 23.000
+ -13700928.517 6 -10676042.385 5 22060824.691 22060822.656 22060823.849
+ 38.700 32.700
+ -23161085.830 7 -18047596.521 8 20315471.117 20315466.815 20315470.611
+ 47.500 49.100
+ -5336216.684 3 -4158091.872 4 23564662.731 23564662.293 23564661.458
+ 23.400 24.600
+ 06 1 2 5 45 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10278367.347 6 -8009113.111 4 22519774.697 22519773.021 22519773.850
+ 36.400 29.700
+ -14783663.461 7 -11519735.915 7 20906052.253 20906049.248 20906051.232
+ 44.000 42.800
+ -9620060.998 6 -7496149.235 5 21861459.630 21861455.552 21861458.020
+ 41.600 32.700
+ -4049532.976 5 -3155479.770 4 23491741.222 23491739.744 23491740.425
+ 30.200 25.300
+ -5331781.735 4 -4154632.718 4 23643914.722 23643915.857 23643916.122
+ 24.900 24.200
+ -13608346.775 6 -10603900.774 5 22078442.704 22078440.347 22078441.760
+ 38.900 32.300
+ -23150107.283 7 -18039041.816 8 20317560.433 20317555.961 20317559.763
+ 47.300 49.000
+ -5220350.051 4 -4067806.223 3 23586710.927 23586710.571 23586710.299
+ 26.800 20.500
+ 06 1 2 5 46 0.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10334876.725 6 -8053146.379 5 22509021.386 22509019.841 22509020.574
+ 36.500 30.200
+ -14823422.581 7 -11550717.045 7 20898486.257 20898483.308 20898485.378
+ 44.300 42.900
+ -9541114.003 6 -7434632.109 5 21876481.804 21876478.681 21876480.772
+ 41.600 32.800
+ -4129922.477 5 -3218120.915 4 23476443.648 23476442.531 23476442.658
+ 30.400 28.400
+ -5428742.078 4 -4230186.179 3 23625465.961 23625464.637 23625465.310
+ 28.100 23.400
+ -13515401.061 6 -10531475.544 5 22096129.826 22096127.636 22096128.769
+ 39.400 33.100
+ -23138667.727 7 -18030127.881 8 20319737.229 20319732.837 20319736.646
+ 47.300 48.900
+ -5104383.492 4 -3977442.703 3 23608779.120 23608778.318 23608778.090
+ 27.400 20.500
+ 06 1 2 5 46 30.0000000 0 8G 5G14G18G 1G30G 9G22G15
+ -10390912.181 6 -8096810.363 5 22498358.038 22498356.559 22498357.218
+ 36.500 31.000
+ -14862898.154 7 -11581477.232 7 20890974.534 20890971.373 20890973.404
+ 44.200 43.100
+ -9461820.301 6 -7372844.833 5 21891570.484 21891567.662 21891569.835
+ 41.200 32.600
+ -4210182.377 4 -3280661.062 4 23461170.417 23461169.451 23461169.466
+ 29.700 27.100
+ -5525518.451 4 -4305596.330 3 23607051.135 23607048.902 23607050.142
+ 28.400 22.600
+ -13422093.912 6 -10458768.676 5 22113885.101 22113883.092 22113884.315
+ 39.100 31.800
+ -23126766.480 7 -18020854.186 8 20322002.269 20321997.612 20322001.535
+ 47.300 48.900
+ -4988320.305 4 -3887003.916 3 23630865.367 23630864.319 23630864.080
+ 24.600 20.500
+ 06 1 2 5 47 0.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10446471.218 6 -8140103.104 5 22487785.864 22487784.107 22487784.677
+ 36.500 30.400
+ -14902089.853 7 -11612016.215 7 20883516.564 20883513.556 20883515.568
+ 44.300 43.300
+ -9382180.346 6 -7310787.751 5 21906724.486 21906723.015 21906724.597
+ 41.000 33.000
+ -4290312.325 4 -3343099.965 4 23445922.160 23445920.970 23445921.322
+ 29.500 26.200
+ -5622107.673 4 -4380860.578 3 23588668.391 23588668.644 23588668.901
+ 24.900 23.000
+ -13328428.975 6 -10385783.013 5 22131709.298 22131706.800 22131708.377
+ 39.600 32.000
+ -182514.640 2 -142219.048 2 24504324.795 24504324.788 24504323.958
+ 17.000 13.900
+ -23114403.055 7 -18011220.352 8 20324354.633 20324350.277 20324354.038
+ 47.300 48.800
+ -4872163.221 4 -3796491.931 3 23652968.330 23652968.672 23652967.951
+ 26.500 22.100
+ 06 1 2 5 47 30.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10501551.343 6 -8183022.661 5 22477304.332 22477302.776 22477303.108
+ 36.200 30.800
+ -14940997.418 7 -11642333.795 7 20876112.470 20876109.672 20876111.610
+ 44.300 43.400
+ -9302195.530 6 -7248461.954 5 21921945.258 21921943.377 21921945.237
+ 41.200 32.400
+ -4370311.669 5 -3405437.117 4 23430698.911 23430697.579 23430698.062
+ 30.800 25.300
+ -5718506.399 4 -4455976.442 3 23570326.791 23570323.519 23570325.584
+ 28.100 21.100
+ -13234408.792 6 -10312520.529 5 22149600.328 22149598.685 22149599.471
+ 39.400 32.400
+ -287635.002 2 -224130.928 1 24484320.730 24484320.643 24484320.082
+ 17.800 11.000
+ -23101576.856 7 -18001225.913 8 20326795.223 20326790.971 20326794.696
+ 47.100 48.800
+ -4755915.497 4 -3705909.347 3 23675090.276 23675089.986 23675089.146
+ 26.500 22.600
+ 06 1 2 5 48 0.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10556150.103 5 -8225567.124 5 22466914.070 22466912.665 22466913.121
+ 35.800 30.400
+ -14979620.561 7 -11672429.750 7 20868762.898 20868759.951 20868761.960
+ 44.300 43.400
+ -9221866.840 6 -7185868.178 5 21937232.212 21937229.733 21937231.377
+ 41.100 33.000
+ -4450180.128 5 -3467672.270 4 23415500.463 23415499.355 23415499.654
+ 31.000 27.900
+ -5814711.389 4 -4530941.357 3 23552017.731 23552016.813 23552017.723
+ 26.200 23.000
+ -13140036.086 6 -10238983.351 5 22167558.971 22167556.770 22167558.266
+ 38.900 31.600
+ -392624.170 3 -305940.615 2 24464342.482 24464341.555 24464341.842
+ 23.000 17.800
+ -23088287.598 7 -17990870.644 8 20329324.251 20329319.880 20329323.590
+ 47.100 48.800
+ -4639580.294 3 -3615258.572 3 23697228.678 23697227.579 23697227.201
+ 22.600 23.000
+ 06 1 2 5 48 30.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10610264.925 6 -8267734.509 5 22456616.631 22456614.857 22456615.646
+ 36.700 30.100
+ -15017958.988 7 -11702303.848 7 20861467.469 20861464.341 20861466.293
+ 44.000 43.400
+ -9141195.892 6 -7123007.719 5 21952584.708 21952580.685 21952582.894
+ 40.600 32.300
+ -4529917.312 5 -3529805.104 4 23400326.548 23400326.196 23400325.775
+ 30.200 29.700
+ -5910719.479 4 -4605752.791 3 23533747.825 23533747.234 23533748.401
+ 28.600 23.800
+ -13045314.251 6 -10165174.133 5 22185584.008 22185581.894 22185583.251
+ 38.400 32.300
+ -497480.402 3 -387646.676 2 24444389.200 24444388.870 24444388.682
+ 21.600 13.900
+ -23074534.776 7 -17980154.162 8 20331941.524 20331936.908 20331940.884
+ 47.200 48.700
+ -4523160.765 4 -3524542.127 3 23719381.872 23719381.815 23719381.338
+ 24.900 22.600
+ 06 1 2 5 49 0.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10663893.477 6 -8309522.969 5 22446411.256 22446409.711 22446410.131
+ 36.000 30.800
+ -15056012.582 7 -11731955.998 7 20854225.897 20854222.988 20854225.011
+ 44.100 43.500
+ -9060183.140 6 -7059880.919 5 21968000.403 21967996.990 21967999.014
+ 40.500 32.400
+ -4609522.931 5 -3591835.409 4 23385178.054 23385177.471 23385177.356
+ 30.400 28.800
+ -6006527.335 4 -4680408.220 4 23515517.105 23515515.628 23515516.366
+ 27.400 25.300
+ -12950246.358 6 -10091095.260 5 22203674.622 22203672.712 22203673.912
+ 38.400 31.500
+ -602201.920 3 -469247.838 2 24424462.373 24424460.614 24424461.251
+ 23.800 16.100
+ -23060317.775 7 -17969075.985 8 20334647.062 20334642.354 20334646.376
+ 47.200 48.600
+ -4406659.693 4 -3433762.084 3 23741550.757 23741551.247 23741550.273
+ 24.200 21.100
+ 06 1 2 5 49 30.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10717033.284 6 -8350930.590 5 22436299.354 22436297.787 22436298.200
+ 36.000 31.600
+ -15093781.136 7 -11761386.043 7 20847039.055 20847035.990 20847038.022
+ 44.200 43.700
+ -8978830.184 6 -6996489.026 5 21983480.372 21983478.033 21983479.672
+ 40.700 32.600
+ -4688996.570 5 -3653762.898 4 23370055.246 23370053.532 23370054.414
+ 32.000 26.500
+ -6102131.749 4 -4754905.137 4 23497324.022 23497323.148 23497323.726
+ 28.600 25.600
+ -12854834.872 6 -10016748.642 5 22221830.709 22221828.630 22221829.874
+ 38.100 30.800
+ -706787.104 4 -550742.722 3 24404559.676 24404558.903 24404559.189
+ 24.200 18.600
+ -23045636.323 7 -17957635.896 8 20337440.698 20337436.183 20337440.054
+ 47.300 48.600
+ -4290080.007 4 -3342920.861 3 23763736.820 23763735.318 23763735.442
+ 25.900 18.600
+ 06 1 2 5 50 0.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10769681.915 5 -8391955.465 5 22426281.168 22426279.368 22426279.727
+ 35.700 31.500
+ -15131264.399 7 -11790593.782 7 20839906.022 20839903.138 20839904.994
+ 44.100 43.800
+ -8897138.358 6 -6932833.072 5 21999025.427 21999023.545 21999025.186
+ 40.600 32.300
+ -4768337.965 5 -3715587.368 4 23354956.935 23354955.035 23354956.058
+ 31.500 26.200
+ -6197529.474 4 -4829240.975 3 23479169.941 23479168.618 23479169.985
+ 28.400 22.100
+ -12759082.984 6 -9942136.777 5 22240051.631 22240049.701 22240051.029
+ 38.500 30.600
+ -811234.088 4 -632129.967 2 24384684.315 24384683.184 24384683.438
+ 26.500 17.000
+ -23030490.081 7 -17945833.635 8 20340322.766 20340318.397 20340322.221
+ 47.200 48.700
+ -4173424.932 3 -3252020.788 3 23785934.218 23785934.379 23785933.570
+ 22.100 21.100
+ 06 1 2 5 50 30.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10821836.904 6 -8432595.715 5 22416356.256 22416354.250 22416355.195
+ 37.000 31.000
+ -15168462.046 7 -11819578.957 7 20832827.404 20832824.571 20832826.362
+ 43.700 43.700
+ -8815108.474 6 -6868913.704 5 22014635.450 22014633.443 22014635.032
+ 40.300 32.400
+ -4847546.611 5 -3777308.380 4 23339884.045 23339882.474 23339883.215
+ 31.300 27.100
+ -6292717.221 4 -4903413.233 3 23461058.125 23461055.170 23461056.448
+ 27.600 23.400
+ -12662993.605 6 -9867261.939 5 22258336.939 22258335.490 22258335.974
+ 37.200 31.800
+ -915541.312 3 -713408.252 3 24364834.351 24364834.431 24364834.030
+ 23.400 21.600
+ -23014878.399 7 -17933668.690 8 20343293.805 20343289.266 20343293.148
+ 47.100 48.700
+ -4056697.456 3 -3161064.406 3 23808147.496 23808146.711 23808146.138
+ 21.100 20.500
+ 06 1 2 5 51 0.0000000 0 9G 5G14G18G 1G30G 9G25G22G15
+ -10873495.947 6 -8472849.496 5 22406525.520 22406523.697 22406524.390
+ 36.200 30.200
+ -15205374.000 7 -11848341.513 7 20825803.436 20825800.432 20825802.450
+ 43.800 43.900
+ -8732742.135 6 -6804732.190 5 22030310.416 22030306.941 22030309.209
+ 40.700 31.500
+ -4926622.075 5 -3838925.580 4 23324836.422 23324835.082 23324835.578
+ 30.200 28.400
+ -6387691.851 4 -4977419.387 3 23442981.700 23442981.813 23442982.751
+ 27.400 23.400
+ -12566569.837 6 -9792126.531 5 22276685.647 22276683.835 22276684.962
+ 37.900 30.600
+ -1019706.995 3 -794576.258 3 24345012.819 24345012.352 24345012.435
+ 22.100 23.800
+ -22998801.245 7 -17921141.042 8 20346353.075 20346348.706 20346352.457
+ 47.000 48.700
+ -3939900.519 4 -3070053.855 3 23830373.297 23830372.606 23830372.342
+ 24.600 20.500
+ 06 1 2 5 51 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -10924656.664 6 -8512714.977 5 22396789.636 22396787.772 22396788.748
+ 36.200 30.200
+ -15242000.075 7 -11876881.316 7 20818833.721 20818830.900 20818832.754
+ 44.000 44.100
+ -8650040.432 6 -6740289.325 5 22046048.229 22046044.528 22046046.870
+ 40.400 31.100
+ -5005563.864 5 -3900438.641 4 23309814.539 23309812.830 23309813.608
+ 32.000 28.100
+ -6482449.911 4 -5051256.793 3 23424951.901 23424950.131 23424951.435
+ 29.200 23.800
+ -12469814.261 6 -9716732.578 5 22295097.431 22295095.876 22295096.993
+ 38.000 30.600
+ -1123729.459 3 -875632.650 3 24325218.450 24325217.085 24325217.500
+ 21.100 20.500
+ -71599.116 3 -55791.896 2 24584265.245 24584262.973 24584264.753
+ 21.600 16.100
+ -22982258.075 7 -17908250.271 8 20349501.134 20349496.733 20349500.457
+ 47.000 48.700
+ -3823036.968 3 -2978991.406 3 23852612.461 23852611.105 23852611.007
+ 22.100 19.900
+ 06 1 2 5 52 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -10975316.691 6 -8552190.310 5 22387150.227 22387147.442 22387148.624
+ 36.500 30.100
+ -15278339.830 7 -11905198.004 7 20811918.266 20811915.554 20811917.279
+ 43.800 44.100
+ -8567004.464 6 -6675585.987 5 22061848.923 22061845.930 22061847.930
+ 39.600 31.500
+ -5084371.714 5 -3961847.351 4 23294818.070 23294816.093 23294817.007
+ 32.000 27.400
+ -6576988.248 4 -5124923.019 4 23406961.701 23406959.806 23406961.123
+ 29.500 24.200
+ -12372730.251 6 -9641082.717 5 22313572.580 22313570.355 22313571.614
+ 38.300 30.800
+ -1227606.854 3 -956576.024 3 24305450.815 24305450.351 24305450.545
+ 23.800 21.600
+ -124774.166 3 -97227.003 1 24574147.336 24574144.366 24574146.508
+ 20.500 11.000
+ -22965248.310 7 -17894995.918 8 20352738.158 20352733.541 20352737.437
+ 46.800 48.500
+ -3706109.864 4 -2887879.400 3 23874862.610 23874861.306 23874861.403
+ 25.300 21.600
+ 06 1 2 5 52 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11025473.667 6 -8591273.645 5 22377605.012 22377603.095 22377603.906
+ 37.200 30.400
+ -15314393.174 7 -11933291.511 7 20805057.619 20805054.692 20805056.656
+ 44.000 43.800
+ -8483635.698 6 -6610623.345 5 22077713.036 22077710.480 22077712.249
+ 39.700 31.000
+ -5163045.314 4 -4023151.448 4 23279846.759 23279844.875 23279845.663
+ 29.900 27.100
+ -6671303.663 4 -5198415.528 4 23389013.043 23389012.739 23389013.201
+ 29.900 25.600
+ -12275320.620 6 -9565179.099 5 22332108.501 22332106.688 22332107.684
+ 37.700 30.400
+ -1331337.666 3 -1037405.178 2 24285710.912 24285710.333 24285710.607
+ 23.000 17.000
+ -177497.765 2 -138310.297 2 24564113.317 24564110.944 24564112.627
+ 17.800 13.900
+ -22947771.690 7 -17881377.774 8 20356063.613 20356059.236 20356063.055
+ 47.000 48.500
+ -3589122.308 3 -2796720.335 3 23897125.041 23897123.395 23897123.153
+ 22.600 23.400
+ 06 1 2 5 53 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11075125.252 6 -8629963.180 5 22368157.097 22368154.963 22368155.612
+ 36.700 31.300
+ -15350159.824 7 -11961161.627 7 20798251.790 20798248.574 20798250.757
+ 44.300 44.000
+ -8399934.833 6 -6545401.927 5 22093640.911 22093638.435 22093640.189
+ 39.800 31.500
+ -5241584.210 5 -4084350.551 4 23264901.016 23264899.387 23264900.037
+ 31.000 27.900
+ -6765393.019 4 -5271731.828 4 23371110.044 23371108.110 23371109.081
+ 28.800 25.900
+ -12177588.312 6 -9489024.059 5 22350706.508 22350704.436 22350705.618
+ 37.700 30.800
+ -1434920.177 3 -1118118.747 2 24266000.223 24265998.679 24265999.351
+ 19.300 13.900
+ -229768.535 4 -179040.776 2 24554167.555 24554164.344 24554166.657
+ 24.200 15.100
+ -22929827.825 7 -17867395.546 8 20359478.371 20359473.842 20359477.653
+ 46.800 48.500
+ -3472077.154 3 -2705516.375 3 23919397.347 23919396.612 23919396.426
+ 23.800 19.900
+ 06 1 2 5 53 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11124269.285 6 -8668257.201 5 22358804.525 22358802.707 22358803.788
+ 36.900 30.400
+ -15385639.528 7 -11988808.151 7 20791500.147 20791496.985 20791499.101
+ 44.000 44.000
+ -8315903.661 6 -6479923.117 5 22109631.813 22109628.843 22109630.723
+ 39.600 31.100
+ -5319988.019 5 -4145444.409 4 23249981.298 23249979.867 23249980.601
+ 32.400 28.600
+ -6859252.729 4 -5344869.265 4 23353247.519 23353247.013 23353247.821
+ 28.800 25.600
+ -12079536.231 6 -9412619.850 5 22369365.101 22369363.548 22369364.414
+ 37.600 31.000
+ -1538352.723 3 -1198715.540 2 24246317.185 24246316.801 24246317.338
+ 18.600 17.800
+ -281585.050 3 -219417.225 2 24544305.976 24544303.671 24544305.730
+ 18.600 17.800
+ -22911416.699 7 -17853049.220 8 20362981.861 20362977.371 20362981.224
+ 46.800 48.400
+ -3354977.524 4 -2614269.939 3 23941680.368 23941680.379 23941679.585
+ 25.900 20.500
+ 06 1 2 5 54 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11172903.395 6 -8706153.897 5 22349550.479 22349548.005 22349549.277
+ 37.400 30.800
+ -15420832.217 7 -12016231.019 7 20784802.916 20784800.123 20784801.999
+ 44.000 44.100
+ -8231543.443 6 -6414187.898 5 22125684.941 22125682.254 22125683.981
+ 39.200 31.100
+ -5398256.408 5 -4206432.739 4 23235087.589 23235085.795 23235086.550
+ 32.100 28.100
+ -6952879.850 4 -5417825.401 4 23335430.070 23335430.329 23335430.333
+ 27.400 25.300
+ -11981166.793 6 -9335968.346 5 22388084.370 22388082.409 22388083.494
+ 37.200 30.200
+ -1641633.576 3 -1279194.076 1 24226663.630 24226662.737 24226662.768
+ 21.600 11.000
+ -332945.806 4 -259438.565 2 24534533.242 24534530.492 24534532.767
+ 24.900 17.800
+ -22892537.602 7 -17838338.238 8 20366574.239 20366569.946 20366573.660
+ 46.600 48.300
+ -3237826.312 3 -2522983.324 3 23963973.971 23963973.361 23963972.862
+ 23.000 19.300
+ 06 1 2 5 54 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11221025.383 6 -8743651.540 5 22340392.826 22340390.580 22340391.899
+ 37.700 30.400
+ -15455737.649 7 -12043430.058 7 20778160.926 20778157.806 20778159.830
+ 44.000 44.100
+ -8146855.141 6 -6348197.044 5 22141800.705 22141797.809 22141799.804
+ 39.700 31.000
+ -5476388.860 5 -4267315.147 4 23220218.953 23220217.690 23220218.301
+ 32.000 28.400
+ -7046270.995 4 -5490597.687 3 23317659.367 23317657.627 23317658.991
+ 27.100 23.400
+ -11882483.747 6 -9259072.468 5 22406863.406 22406861.395 22406862.525
+ 37.200 30.600
+ -1744760.973 4 -1359553.085 2 24207039.424 24207038.700 24207039.028
+ 25.900 13.900
+ -383849.228 4 -299103.586 3 24524846.631 24524843.469 24524845.903
+ 24.600 20.500
+ -22873190.360 7 -17823262.471 8 20370255.729 20370251.547 20370255.179
+ 46.500 48.200
+ -3120626.556 3 -2431658.859 2 23986277.076 23986275.449 23986275.749
+ 20.500 17.800
+ 06 1 2 5 55 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11268632.907 6 -8780748.309 5 22331333.215 22331331.718 22331332.147
+ 37.700 31.600
+ -15490355.519 7 -12070405.023 7 20771572.993 20771570.287 20771572.076
+ 43.800 44.300
+ -8061840.285 6 -6281951.737 5 22157978.079 22157975.592 22157977.310
+ 39.100 30.400
+ -5554385.178 5 -4328091.490 4 23205377.166 23205375.333 23205376.424
+ 33.400 27.600
+ -7139422.973 4 -5563183.605 3 23299932.505 23299931.802 23299933.036
+ 29.900 23.000
+ -11783489.633 6 -9181934.213 5 22425701.126 22425699.344 22425700.259
+ 37.200 31.300
+ -1847733.389 4 -1439791.281 1 24187444.526 24187443.320 24187443.619
+ 25.300 11.000
+ -434293.726 4 -338410.970 3 24515247.624 24515243.780 24515246.820
+ 24.200 18.600
+ -22853374.498 7 -17807821.545 8 20374026.729 20374022.395 20374026.076
+ 46.400 48.200
+ -3003381.323 3 -2340298.999 3 24008588.066 24008586.861 24008587.030
+ 23.400 19.900
+ 06 1 2 5 55 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11315723.786 6 -8817442.483 5 22322371.894 22322370.575 22322371.075
+ 37.200 31.500
+ -15524685.691 7 -12097155.799 7 20765040.364 20765037.535 20765039.413
+ 44.000 44.300
+ -7976499.700 6 -6215452.614 5 22174218.772 22174215.258 22174217.591
+ 39.700 30.200
+ -5632244.920 5 -4388761.409 4 23190561.168 23190559.138 23190560.305
+ 33.500 27.600
+ -7232332.464 4 -5635580.572 3 23282253.466 23282252.123 23282252.804
+ 29.200 23.800
+ -11684187.874 6 -9104556.220 5 22444597.821 22444595.709 22444596.919
+ 36.900 30.400
+ -1950549.068 4 -1519907.397 2 24167879.087 24167878.089 24167878.264
+ 25.300 17.000
+ -484277.888 3 -377359.639 3 24505735.944 24505732.827 24505735.169
+ 23.400 21.600
+ -22833090.010 7 -17792015.458 8 20377886.772 20377882.503 20377886.158
+ 46.400 48.200
+ -2886093.619 3 -2248906.042 3 24030906.308 24030905.486 24030905.541
+ 22.100 18.600
+ 06 1 2 5 56 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11362295.802 6 -8853732.351 5 22313510.157 22313508.200 22313509.003
+ 37.900 32.000
+ -15558727.786 7 -12123682.109 7 20758562.513 20758559.352 20758561.458
+ 43.800 44.200
+ -7890835.220 6 -6148701.102 5 22190520.569 22190516.870 22190519.125
+ 39.500 31.000
+ -5709967.658 5 -4449324.582 4 23175770.974 23175769.165 23175769.987
+ 33.900 27.900
+ -7324996.371 5 -5707786.179 4 23264619.949 23264618.933 23264619.599
+ 30.400 24.600
+ -11584580.908 6 -9026940.396 5 22463552.041 22463550.446 22463551.461
+ 37.200 30.600
+ -2053206.406 4 -1599900.074 3 24148344.014 24148342.692 24148343.260
+ 26.800 21.100
+ -533800.263 4 -415948.464 3 24496312.235 24496308.458 24496311.520
+ 27.100 19.300
+ -22812336.653 7 -17775844.016 8 20381835.894 20381831.762 20381835.425
+ 46.600 48.200
+ -2768766.141 3 -2157482.098 3 24053234.140 24053232.771 24053232.559
+ 21.600 20.500
+ 06 1 2 5 56 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11408346.792 6 -8889616.217 5 22304746.876 22304744.889 22304745.657
+ 37.900 32.100
+ -15592481.513 7 -12149983.715 7 20752139.394 20752136.290 20752138.342
+ 43.800 44.400
+ -7804847.949 6 -6081698.078 5 22206882.920 22206880.129 22206881.863
+ 39.700 31.500
+ -5787553.048 5 -4509780.709 4 23161006.584 23161005.280 23161005.784
+ 32.300 29.700
+ -7417411.363 4 -5779797.808 4 23247034.185 23247032.618 23247033.915
+ 29.200 24.900
+ -11484671.364 6 -8949088.813 4 22482564.442 22482562.589 22482563.373
+ 36.200 29.700
+ -2155703.695 4 -1679768.046 3 24128839.663 24128838.478 24128839.022
+ 27.100 23.000
+ -582859.448 4 -454176.425 3 24486975.931 24486972.997 24486975.362
+ 25.900 21.100
+ -22791114.130 7 -17759306.991 8 20385874.663 20385870.255 20385873.990
+ 46.400 48.100
+ -2651401.887 3 -2066029.453 2 24075566.132 24075566.302 24075565.286
+ 21.600 17.800
+ 06 1 2 5 57 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11453874.652 6 -8925092.457 5 22296082.860 22296081.176 22296081.859
+ 37.900 31.600
+ -15625946.827 7 -12176060.580 7 20745771.003 20745768.153 20745770.091
+ 43.700 44.700
+ -7718539.440 6 -6014444.726 5 22223305.801 22223303.991 22223305.568
+ 39.300 30.600
+ -5865000.657 5 -4570129.469 4 23146268.787 23146267.415 23146267.977
+ 32.600 29.000
+ -7509574.270 4 -5851613.021 4 23229497.179 23229494.465 23229496.221
+ 29.200 24.600
+ -11384462.781 6 -8871004.212 4 22501633.884 22501631.370 22501632.847
+ 36.800 29.000
+ -2258039.308 4 -1759510.028 4 24109365.843 24109364.540 24109364.968
+ 26.800 24.200
+ -631454.110 4 -492042.403 2 24477728.772 24477725.577 24477728.218
+ 25.600 17.800
+ -22769422.104 7 -17742404.120 8 20390002.243 20389998.057 20390001.685
+ 46.400 48.000
+ -2534003.849 3 -1974550.550 3 24097906.504 24097906.536 24097905.688
+ 21.600 19.900
+ 06 1 2 5 57 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11498877.140 6 -8960159.315 5 22287519.449 22287517.281 22287518.195
+ 37.700 31.800
+ -15659123.282 7 -12201912.360 7 20739457.904 20739454.858 20739456.861
+ 43.900 44.600
+ -7631910.651 6 -5946941.806 5 22239790.680 22239788.791 22239790.518
+ 39.300 30.400
+ -5942310.056 5 -4630370.550 4 23131557.402 23131555.989 23131556.579
+ 33.200 29.500
+ -7601481.609 4 -5923229.086 4 23212005.541 23212005.286 23212005.782
+ 28.800 24.900
+ -11283957.984 6 -8792688.782 4 22520758.733 22520756.887 22520758.105
+ 36.400 29.000
+ -2360211.607 4 -1839124.757 3 24089922.716 24089921.609 24089922.059
+ 25.600 23.400
+ -679582.617 3 -529545.095 4 24468570.149 24468567.424 24468569.662
+ 23.800 24.200
+ -22747260.398 7 -17725135.259 7 20394219.660 20394215.306 20394218.961
+ 46.400 47.900
+ -2416575.082 3 -1883047.615 3 24120253.451 24120252.910 24120252.062
+ 23.800 18.600
+ 06 1 2 5 58 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11543352.094 6 -8994815.108 5 22279055.950 22279053.983 22279055.098
+ 38.400 31.600
+ -15692010.740 7 -12227538.951 7 20733199.263 20733196.537 20733198.397
+ 43.500 44.400
+ -7544962.926 6 -5879190.351 5 22256336.790 22256334.592 22256336.144
+ 38.800 30.200
+ -6019480.855 5 -4690503.619 5 23116872.335 23116870.934 23116871.356
+ 32.600 31.000
+ -7693130.300 4 -5994643.608 4 23194566.713 23194564.921 23194565.779
+ 29.700 24.600
+ -11183159.641 6 -8714144.627 4 22539939.808 22539937.906 22539939.312
+ 36.700 28.100
+ -2462218.951 3 -1918610.958 3 24070510.954 24070510.331 24070510.827
+ 22.100 23.400
+ -727243.709 4 -566683.615 3 24459500.154 24459497.626 24459499.513
+ 24.600 18.600
+ -22724629.021 7 -17707500.425 7 20398526.403 20398521.936 20398525.729
+ 46.500 47.900
+ -2299118.526 3 -1791523.082 3 24142604.398 24142604.161 24142602.913
+ 22.600 19.300
+ 06 1 2 5 58 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11587297.548 6 -9029058.303 5 22270693.984 22270691.583 22270692.687
+ 38.700 32.000
+ -15724609.265 7 -12252940.394 7 20726996.032 20726993.235 20726995.098
+ 43.500 44.500
+ -7457697.809 6 -5811191.591 5 22272943.872 22272940.291 22272942.392
+ 38.300 30.100
+ -6096512.720 5 -4750528.424 5 23102213.731 23102212.133 23102212.673
+ 33.400 30.800
+ -7784517.170 5 -6065854.117 3 23177174.897 23177174.252 23177175.385
+ 30.100 23.800
+ -11082070.760 6 -8635374.078 4 22559176.509 22559174.639 22559175.695
+ 36.300 28.800
+ -2564059.668 3 -1997967.293 3 24051131.347 24051130.682 24051130.590
+ 19.300 21.600
+ -774435.880 4 -603456.736 3 24450520.369 24450517.301 24450519.789
+ 24.600 21.100
+ -22701527.535 7 -17689499.274 7 20402922.233 20402918.080 20402921.688
+ 46.500 47.900
+ -2181636.783 3 -1699978.951 3 24164959.824 24164960.376 24164958.475
+ 19.900 20.500
+ 06 1 2 5 59 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11630711.299 6 -9062887.177 5 22262432.085 22262430.084 22262431.018
+ 38.100 32.300
+ -15756918.640 7 -12278116.532 7 20720847.782 20720844.928 20720846.811
+ 43.500 44.500
+ -7370116.803 6 -5742946.692 4 22289610.433 22289606.594 22289608.625
+ 38.100 29.500
+ -6173405.278 5 -4810444.688 5 23087580.820 23087580.119 23087580.115
+ 32.800 30.600
+ -7875638.898 5 -6136858.044 4 23159836.039 23159834.474 23159835.643
+ 31.100 25.600
+ -10980693.928 6 -8556379.125 4 22578468.106 22578465.679 22578467.443
+ 36.300 28.100
+ -2665732.167 3 -2077192.510 3 24031783.862 24031782.311 24031783.110
+ 19.300 20.500
+ -821158.000 4 -639863.548 3 24441630.051 24441626.337 24441629.167
+ 24.600 18.600
+ -22677955.621 7 -17671131.548 7 20407407.914 20407403.752 20407407.259
+ 46.400 47.800
+ -2064132.823 3 -1608417.476 3 24187321.205 24187321.161 24187319.900
+ 22.600 21.100
+ 06 1 2 5 59 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11673591.310 6 -9096300.151 5 22254272.439 22254270.280 22254271.089
+ 38.100 31.600
+ -15788938.412 7 -12303067.000 7 20714754.783 20714751.767 20714753.691
+ 43.400 44.600
+ -7282221.225 6 -5674456.671 4 22306336.485 22306332.234 22306334.597
+ 37.900 28.400
+ -6250158.158 5 -4870252.102 5 23072975.611 23072974.544 23072974.753
+ 33.600 31.000
+ -7966492.249 5 -6207652.827 4 23142546.691 23142545.715 23142546.632
+ 30.100 26.500
+ -10879032.423 6 -8477162.389 4 22597813.806 22597811.380 22597812.911
+ 36.200 27.900
+ -2767234.832 3 -2156285.440 3 24012468.694 24012467.586 24012467.982
+ 20.500 20.500
+ -867408.411 3 -675902.828 3 24432828.128 24432825.051 24432827.467
+ 23.800 18.600
+ -22653913.403 7 -17652397.367 7 20411982.983 20411978.771 20411982.369
+ 46.500 47.700
+ -1946609.745 3 -1516841.108 2 24209683.402 24209684.079 24209682.893
+ 18.600 17.000
+ 06 1 2 6 0 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11715935.530 6 -9129295.622 5 22246214.772 22246212.445 22246213.764
+ 38.900 31.800
+ -15820668.030 7 -12327791.377 7 20708716.589 20708713.824 20708715.645
+ 43.400 44.600
+ -7194012.295 6 -5605722.459 4 22323120.798 22323118.146 22323119.930
+ 37.500 29.000
+ -6326770.847 5 -4929950.281 5 23058397.070 23058395.612 23058396.157
+ 34.000 30.200
+ -8057074.060 5 -6278236.026 4 23125310.038 23125309.180 23125309.870
+ 30.600 27.900
+ -10777089.040 5 -8397725.982 4 22617212.780 22617210.874 22617211.968
+ 35.800 29.200
+ -2868566.050 4 -2235244.809 2 23993186.132 23993184.341 23993185.494
+ 24.600 17.000
+ -913185.903 3 -711573.614 3 24424116.715 24424114.012 24424116.051
+ 22.100 19.300
+ -22629400.735 7 -17633296.595 7 20416647.585 20416643.345 20416646.979
+ 46.400 47.700
+ -1829070.522 3 -1425252.156 2 24232051.480 24232051.655 24232049.935
+ 21.100 17.800
+ 06 1 2 6 0 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11757741.932 6 -9161872.035 5 22238259.164 22238256.731 22238257.982
+ 38.700 31.600
+ -15852107.930 7 -12352289.999 7 20702734.070 20702730.999 20702733.091
+ 43.700 44.600
+ -7105491.231 6 -5536745.027 4 22339964.752 22339963.249 22339964.923
+ 37.700 29.500
+ -6403243.026 5 -4989538.984 4 23043844.877 23043843.052 23043843.895
+ 33.000 27.900
+ -8147380.919 5 -6348604.975 4 23108126.046 23108123.803 23108125.105
+ 30.200 26.800
+ -10674867.000 5 -8318072.444 4 22636665.181 22636662.877 22636664.116
+ 34.700 27.600
+ -2969724.106 4 -2314069.254 2 23973936.605 23973934.986 23973935.774
+ 28.100 17.000
+ -958489.201 3 -746874.867 2 24415496.158 24415492.996 24415495.574
+ 23.000 17.800
+ -22604417.302 7 -17613828.987 7 20421401.827 20421397.520 20421401.231
+ 46.500 47.500
+ -1711517.973 3 -1333652.831 2 24254421.761 24254420.490 24254420.275
+ 19.900 16.100
+ 06 1 2 6 1 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11799008.533 6 -9194027.806 5 22230406.008 22230404.013 22230404.823
+ 38.000 31.500
+ -15883257.464 7 -12376562.364 7 20696806.283 20696803.513 20696805.395
+ 43.500 44.700
+ -7016659.630 6 -5467525.620 5 22356869.641 22356867.624 22356868.893
+ 37.700 30.100
+ -6479574.317 5 -5049017.914 4 23029319.308 23029317.310 23029318.309
+ 33.400 27.400
+ -8237409.750 5 -6418757.260 4 23090991.366 23090992.462 23090992.505
+ 30.800 27.400
+ -10572368.590 5 -8238203.553 4 22656169.654 22656167.793 22656169.134
+ 35.500 29.000
+ -3070707.444 4 -2392757.537 2 23954719.866 23954718.165 23954719.270
+ 28.400 17.000
+ -1003316.998 3 -781805.599 3 24406965.037 24406962.776 24406964.346
+ 21.600 18.600
+ -22578962.985 7 -17593994.458 7 20426245.650 20426241.310 20426245.112
+ 46.600 47.500
+ -1593955.152 3 -1242045.519 2 24276792.943 24276792.458 24276791.901
+ 23.000 17.000
+ 06 1 2 6 1 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11839733.392 6 -9225761.440 5 22222656.290 22222654.682 22222655.131
+ 38.300 32.600
+ -15914116.576 7 -12400608.422 7 20690934.078 20690931.199 20690933.170
+ 43.500 44.800
+ -6927518.626 6 -5398065.136 5 22373833.469 22373830.697 22373832.312
+ 37.800 30.200
+ -6555764.256 5 -5108386.683 4 23014821.373 23014819.014 23014820.407
+ 34.500 28.100
+ -8327157.321 5 -6488690.407 4 23073915.257 23073913.762 23073914.659
+ 31.600 26.200
+ -10469596.693 5 -8158121.571 4 22675726.432 22675724.946 22675725.579
+ 34.400 29.200
+ -3171514.453 4 -2471308.423 2 23935537.150 23935535.601 23935536.381
+ 28.800 17.000
+ -1047668.045 3 -816364.853 1 24398525.389 24398522.392 24398525.099
+ 20.500 11.000
+ -22553037.839 7 -17573793.056 7 20431179.131 20431174.682 20431178.496
+ 46.500 47.400
+ -1476384.856 3 -1150432.365 2 24299165.749 24299165.040 24299164.462
+ 22.600 17.000
+ 06 1 2 6 2 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11879914.488 6 -9257071.358 5 22215010.514 22215008.679 22215009.195
+ 38.700 33.100
+ -15944684.973 7 -12424427.953 7 20685116.988 20685114.129 20685116.147
+ 43.500 44.800
+ -6838069.555 6 -5328364.599 4 22390855.610 22390851.892 22390854.017
+ 37.700 29.000
+ -6631812.531 5 -5167645.076 5 23000349.542 23000348.012 23000348.804
+ 35.300 30.800
+ -8416620.349 5 -6558401.830 4 23056890.146 23056889.378 23056890.412
+ 31.600 27.600
+ -10366554.855 5 -8077829.243 4 22695335.381 22695332.623 22695334.366
+ 35.500 28.100
+ -3272143.475 4 -2549720.642 2 23916387.314 23916386.448 23916386.537
+ 27.400 17.800
+ -1091541.142 3 -850551.655 1 24390177.521 24390173.572 24390176.828
+ 23.800 9.000
+ -22526641.551 7 -17553224.526 7 20436202.145 20436197.775 20436201.529
+ 46.500 47.400
+ -1358809.830 3 -1058815.537 3 24321539.423 24321539.187 24321538.096
+ 21.100 19.300
+ 06 1 2 6 2 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11919549.872 6 -9287956.047 5 22207467.331 22207466.246 22207466.583
+ 38.800 32.600
+ -15974962.190 7 -12448020.588 7 20679355.422 20679352.590 20679354.503
+ 43.500 44.900
+ -6748314.465 6 -5258425.585 4 22407935.228 22407932.015 22407933.625
+ 37.100 29.700
+ -6707718.793 5 -5226792.785 5 22985904.903 22985903.395 22985903.897
+ 33.600 30.400
+ -8505795.709 5 -6627889.087 4 23039921.683 23039919.391 23039920.799
+ 30.600 25.900
+ -10263245.258 5 -7997328.264 4 22714993.726 22714992.270 22714993.116
+ 34.800 29.700
+ -3372592.857 4 -2627992.851 3 23897272.299 23897271.668 23897271.783
+ 26.800 20.500
+ -1134934.826 3 -884364.914 2 24381919.358 24381916.123 24381918.767
+ 19.900 15.100
+ -22499774.040 7 -17532288.807 7 20441314.937 20441310.519 20441314.276
+ 46.600 47.400
+ -1241232.965 3 -967197.295 3 24343913.175 24343913.517 24343912.583
+ 22.600 20.500
+ 06 1 2 6 3 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11958637.611 6 -9318414.002 5 22200029.936 22200027.773 22200028.609
+ 38.600 32.700
+ -16004948.337 7 -12471386.419 7 20673649.362 20673646.380 20673648.505
+ 43.600 44.900
+ -6658254.692 6 -5188249.187 4 22425072.764 22425069.732 22425071.501
+ 37.500 29.900
+ -6783482.595 5 -5285829.486 5 22971487.391 22971485.703 22971486.486
+ 34.300 30.100
+ -8594680.065 5 -6697149.606 4 23023007.251 23023005.477 23023006.929
+ 31.800 27.100
+ -10159671.300 5 -7916621.284 4 22734703.419 22734701.302 22734702.695
+ 34.500 28.100
+ -3472861.239 4 -2706124.002 3 23878191.888 23878191.248 23878191.269
+ 25.900 23.400
+ -1177848.171 3 -917803.874 1 24373753.044 24373749.792 24373752.609
+ 22.600 9.000
+ -22472435.478 7 -17510986.032 7 20446517.386 20446512.849 20446516.654
+ 46.500 47.200
+ -1123657.122 3 -875579.814 3 24366287.958 24366287.512 24366286.985
+ 22.100 19.900
+ 06 1 2 6 3 30.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -11997175.814 6 -9348443.753 5 22192695.879 22192693.995 22192695.071
+ 39.100 32.700
+ -16034643.199 7 -12494525.275 7 20667998.929 20667995.700 20667997.792
+ 43.400 45.100
+ -6567891.271 6 -5117836.160 4 22442267.197 22442265.195 22442266.805
+ 36.600 28.800
+ -6859103.447 5 -5344754.827 4 22957097.518 22957095.275 22957096.698
+ 34.500 29.700
+ -8683270.279 5 -6766180.893 4 23006148.140 23006146.907 23006148.234
+ 31.300 26.500
+ -10055835.467 6 -7835710.257 4 22754463.179 22754460.771 22754462.304
+ 36.400 27.600
+ -3572946.920 4 -2784112.796 3 23859146.359 23859145.368 23859145.716
+ 24.900 22.100
+ -1220279.590 4 -950867.370 1 24365679.340 24365676.017 24365678.453
+ 24.600 11.000
+ -22444625.761 7 -17489316.130 7 20451809.265 20451804.838 20451808.652
+ 46.400 47.000
+ -1006085.256 3 -783965.458 2 24388661.029 24388660.128 24388659.616
+ 19.300 16.100
+ 06 1 2 6 4 0.0000000 0 10G 5G14G18G 1G30G 9G25G11G22G15
+ -12035162.590 6 -9378043.825 5 22185467.928 22185465.215 22185466.457
+ 38.400 31.600
+ -16064046.471 7 -12517436.912 7 20662403.452 20662400.578 20662402.482
+ 43.600 45.100
+ -6477225.494 6 -5047187.511 4 22459520.588 22459518.400 22459520.218
+ 36.800 28.800
+ -6934581.025 5 -5403568.523 5 22942734.215 22942732.710 22942733.416
+ 34.600 31.500
+ -8771563.086 5 -6834980.454 4 22989347.943 22989345.665 22989347.300
+ 31.600 26.200
+ -9951740.594 5 -7754597.369 4 22774270.790 22774269.580 22774270.494
+ 35.700 28.100
+ -3672848.258 4 -2861957.926 3 23840135.364 23840134.603 23840134.710
+ 25.300 23.000
+ -1262228.096 3 -983554.495 2 24357696.761 24357693.641 24357695.897
+ 23.800 13.900
+ -22416344.863 7 -17467279.071 7 20457190.832 20457186.570 20457190.264
+ 46.400 46.900
+ -888520.193 3 -692356.379 1 24411032.960 24411032.265 24411031.976
+ 21.100 6.500
+ 06 1 2 6 4 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12072596.077 6 -9407212.763 5 22178344.247 22178342.107 22178343.004
+ 39.100 32.300
+ -16093157.849 7 -12540121.104 7 20656863.736 20656860.885 20656862.785
+ 43.600 45.300
+ -6386259.352 6 -4976304.829 4 22476831.905 22476828.760 22476830.401
+ 36.300 27.900
+ -7009914.938 5 -5462270.242 5 22928398.929 22928397.652 22928397.999
+ 34.000 33.100
+ -8859555.295 5 -6903545.780 4 22972601.657 22972601.219 22972602.041
+ 31.100 27.100
+ -9847389.535 5 -7673284.860 4 22794129.045 22794127.200 22794128.212
+ 35.400 29.000
+ -3772563.823 4 -2939658.313 4 23821160.747 23821159.551 23821159.660
+ 24.600 24.600
+ -1303692.617 4 -1015864.540 2 24349806.123 24349803.050 24349805.622
+ 27.400 15.100
+ -22387592.585 7 -17444874.703 7 20462661.962 20462657.955 20462661.483
+ 46.300 46.900
+ 06 1 2 6 5 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12109474.416 6 -9435949.123 5 22171326.168 22171324.079 22171325.154
+ 38.900 31.600
+ -16121977.316 7 -12562577.831 7 20651379.648 20651376.670 20651378.610
+ 43.400 45.400
+ -6294993.785 6 -4905188.841 4 22494199.428 22494195.874 22494197.775
+ 36.200 27.600
+ -7085104.781 5 -5520859.701 5 22914090.849 22914089.397 22914089.979
+ 35.700 32.700
+ -8947243.761 5 -6971874.427 4 22955917.319 22955914.213 22955915.959
+ 31.500 24.200
+ -9742785.290 5 -7591775.065 4 22814034.974 22814032.312 22814034.133
+ 35.800 27.600
+ -3872091.939 4 -3017212.599 4 23802220.052 23802219.843 23802219.936
+ 24.200 25.600
+ -1344671.917 4 -1047796.483 1 24342007.443 24342004.446 24342006.856
+ 24.200 11.000
+ -22358369.089 7 -17422103.149 7 20468223.399 20468218.960 20468222.715
+ 46.100 46.800
+ 06 1 2 6 5 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12145795.966 6 -9464251.614 5 22164414.614 22164412.227 22164413.175
+ 38.600 31.800
+ -16150504.427 7 -12584806.747 7 20645951.110 20645948.129 20645950.182
+ 43.600 45.500
+ -6203430.733 6 -4833841.035 4 22511623.929 22511619.822 22511622.048
+ 36.600 27.400
+ -7160150.062 5 -5579336.538 5 22899810.176 22899808.118 22899809.146
+ 34.900 30.200
+ -9034625.155 5 -7039963.811 4 22939286.240 22939286.151 22939287.170
+ 31.100 26.500
+ -9637930.682 5 -7510070.181 4 22833987.584 22833985.469 22833986.764
+ 34.300 27.600
+ -3971431.026 4 -3094619.655 4 23783316.999 23783316.441 23783316.261
+ 24.200 24.900
+ -1385164.765 4 -1079349.343 2 24334302.664 24334298.959 24334301.817
+ 26.800 17.800
+ -22328674.110 7 -17398964.206 7 20473874.039 20473869.802 20473873.423
+ 46.100 46.800
+ 06 1 2 6 6 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12181558.724 6 -9492118.681 5 22157608.615 22157606.691 22157607.766
+ 38.800 32.000
+ -16178739.069 7 -12606807.770 7 20640578.252 20640575.303 20640577.274
+ 43.600 45.600
+ -6111571.611 6 -4762262.527 4 22529103.116 22529100.143 22529102.025
+ 36.500 28.600
+ -7235050.531 5 -5637700.539 5 22885556.250 22885554.690 22885555.519
+ 34.400 30.100
+ -9121696.441 5 -7107811.517 4 22922718.750 22922717.107 22922718.426
+ 32.600 26.500
+ -9532828.333 5 -7428172.246 4 22853988.222 22853986.100 22853987.182
+ 34.600 27.400
+ -4070579.586 4 -3171878.206 3 23764449.865 23764448.913 23764449.245
+ 27.100 23.800
+ -1425170.042 4 -1110522.270 2 24326689.691 24326686.550 24326689.066
+ 25.900 17.000
+ -22298507.883 7 -17375458.056 7 20479614.422 20479610.318 20479613.902
+ 46.200 46.900
+ 06 1 2 6 6 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12216760.960 6 -9519548.978 5 22150910.321 22150908.091 22150909.093
+ 38.900 32.400
+ -16206680.973 7 -12628580.680 7 20635260.855 20635258.082 20635260.000
+ 43.500 45.600
+ -6019417.366 5 -4690454.049 4 22546639.029 22546636.373 22546638.207
+ 35.900 27.100
+ -7309805.720 5 -5695951.317 5 22871331.000 22871329.831 22871330.173
+ 33.900 32.100
+ -9208454.280 5 -7175415.014 4 22906209.544 22906207.485 22906209.235
+ 32.800 26.500
+ -9427481.783 5 -7346084.021 4 22874034.937 22874032.241 22874033.894
+ 34.100 27.100
+ -4169535.924 4 -3248987.014 3 23745619.617 23745618.121 23745618.738
+ 29.700 22.600
+ -1464686.718 4 -1141314.497 3 24319169.506 24319167.146 24319169.069
+ 24.200 23.800
+ -22267870.624 7 -17351584.868 7 20485444.440 20485440.335 20485443.965
+ 46.200 46.600
+ 06 1 2 6 7 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12251400.954 6 -9546541.161 5 22144318.339 22144316.473 22144317.341
+ 38.900 32.700
+ -16234329.724 7 -12650125.164 7 20629999.843 20629996.761 20629998.791
+ 43.400 45.600
+ -5926969.867 5 -4618417.068 4 22564230.847 22564228.869 22564230.151
+ 35.400 27.900
+ -7384415.172 5 -5754088.533 5 22857133.803 22857132.445 22857132.986
+ 35.900 32.600
+ -9294895.720 5 -7242771.933 4 22889759.732 22889758.512 22889759.882
+ 33.600 27.900
+ -9321893.157 5 -7263807.164 4 22894127.833 22894125.660 22894126.721
+ 33.500 26.800
+ -4268298.572 4 -3325944.900 3 23726825.111 23726824.000 23726824.425
+ 28.800 22.100
+ -1503713.580 4 -1171725.046 4 24311743.563 24311740.573 24311742.962
+ 26.500 24.900
+ -22236762.088 7 -17327344.456 7 20491364.206 20491360.010 20491363.697
+ 46.000 46.600
+ 06 1 2 6 7 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12285477.009 6 -9573093.914 5 22137834.023 22137832.099 22137833.022
+ 39.200 33.100
+ -16261685.461 7 -12671441.317 7 20624794.213 20624791.119 20624793.110
+ 43.300 45.700
+ -5834230.466 6 -4546152.608 4 22581878.769 22581876.581 22581878.225
+ 36.200 28.100
+ -7458878.430 5 -5812111.829 5 22842963.876 22842962.287 22842962.762
+ 34.600 32.100
+ -9381017.248 5 -7309879.593 4 22873372.578 22873370.336 22873371.794
+ 33.900 28.800
+ -9216064.840 5 -7181343.560 4 22914266.074 22914264.366 22914265.415
+ 34.600 27.100
+ -4366866.104 4 -3402750.749 3 23708068.335 23708067.006 23708067.538
+ 28.400 20.500
+ -1542249.864 4 -1201753.302 4 24304410.336 24304407.207 24304409.657
+ 27.600 24.600
+ -22205182.325 7 -17302736.855 7 20497373.572 20497369.454 20497373.145
+ 46.100 46.400
+ 06 1 2 6 8 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12318987.440 6 -9599205.937 5 22131457.661 22131455.284 22131456.385
+ 39.600 32.700
+ -16288747.599 7 -12692528.693 7 20619644.228 20619641.317 20619643.260
+ 43.000 45.600
+ -5741200.778 6 -4473661.962 4 22599582.185 22599579.417 22599581.154
+ 36.400 27.100
+ -7533195.068 5 -5870020.899 5 22828821.960 22828819.978 22828820.917
+ 35.100 30.400
+ -9466815.952 5 -7376735.690 4 22857043.197 22857043.539 22857044.281
+ 33.000 29.200
+ -9110000.320 5 -7098695.869 4 22934449.499 22934447.001 22934448.427
+ 33.000 25.600
+ -4465236.832 4 -3479403.259 2 23689348.811 23689347.290 23689348.402
+ 27.400 15.100
+ -1580294.172 4 -1231398.132 3 24297170.262 24297167.020 24297169.718
+ 25.300 23.800
+ -22173131.527 7 -17277762.218 7 20503472.825 20503468.491 20503472.263
+ 46.100 46.300
+ 06 1 2 6 8 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12351930.502 6 -9624875.844 5 22125187.929 22125186.462 22125187.219
+ 39.500 32.700
+ -16315516.264 7 -12713387.392 7 20614550.333 20614547.377 20614549.342
+ 43.100 45.600
+ -5647882.298 5 -4400946.297 4 22617340.652 22617337.538 22617339.009
+ 35.800 28.100
+ -7607364.675 5 -5927815.399 5 22814707.707 22814706.219 22814707.004
+ 35.700 31.800
+ -9552288.550 5 -7443337.691 4 22840780.856 22840778.033 22840779.759
+ 32.700 27.900
+ -9003702.514 5 -7015866.418 4 22954677.186 22954675.358 22954676.128
+ 32.300 26.800
+ -4563409.363 4 -3555901.319 2 23670667.466 23670665.867 23670666.870
+ 29.000 17.800
+ -1617845.479 4 -1260658.913 4 24290024.634 24290021.852 24290023.964
+ 25.300 24.200
+ -22140609.878 7 -17252420.678 7 20509661.629 20509657.158 20509660.930
+ 46.100 46.100
+ 06 1 2 6 9 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12384304.606 6 -9650102.406 5 22119027.857 22119025.760 22119026.525
+ 39.200 32.800
+ -16341991.041 7 -12734017.087 7 20609512.378 20609509.422 20609511.397
+ 43.100 45.600
+ -5554276.625 5 -4328006.851 4 22635153.019 22635150.175 22635151.562
+ 34.800 28.100
+ -7681386.892 5 -5985495.038 5 22800621.483 22800620.799 22800620.680
+ 35.200 32.700
+ -9637431.835 5 -7509683.093 4 22824576.217 22824576.219 22824577.196
+ 33.500 28.400
+ -8897173.860 5 -6932857.087 4 22974948.850 22974946.539 22974948.324
+ 33.900 24.900
+ -4661382.044 4 -3632243.631 3 23652024.057 23652022.633 23652023.291
+ 27.900 22.600
+ -1654902.933 4 -1289534.847 4 24282972.819 24282970.248 24282972.295
+ 24.900 25.600
+ -22107617.518 7 -17226712.351 7 20515940.120 20515935.443 20515939.252
+ 45.900 46.100
+ 06 1 2 6 9 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12416108.084 6 -9674884.320 5 22112975.596 22112973.705 22112974.590
+ 39.300 33.400
+ -16368171.544 7 -12754417.481 7 20604530.293 20604527.422 20604529.314
+ 43.100 45.800
+ -5460385.115 5 -4254844.681 4 22653019.989 22653016.814 22653018.385
+ 34.100 27.600
+ -7755261.370 5 -6043059.551 5 22786563.959 22786562.437 22786562.982
+ 35.100 32.000
+ -9722242.692 5 -7575769.447 4 22808439.536 22808436.868 22808438.483
+ 32.700 28.400
+ -8790417.418 5 -6849670.265 4 22995263.680 22995262.459 22995262.993
+ 33.500 26.800
+ -4759153.349 4 -3708429.043 3 23633418.564 23633417.284 23633417.966
+ 29.700 23.800
+ -1691465.464 3 -1318025.139 3 24276014.610 24276012.214 24276014.014
+ 21.100 23.400
+ -22074154.526 7 -17200637.300 7 20522307.750 20522303.241 20522306.932
+ 45.900 46.100
+ 06 1 2 6 10 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12447339.234 6 -9699220.272 5 22107032.817 22107030.660 22107031.876
+ 39.600 33.000
+ -16394057.793 7 -12774588.583 7 20599604.272 20599601.344 20599603.271
+ 43.100 45.700
+ -5366209.290 5 -4181460.944 4 22670940.713 22670938.274 22670939.741
+ 34.700 28.100
+ -7828987.632 5 -6100508.590 5 22772534.158 22772532.654 22772533.357
+ 35.800 31.300
+ -9806717.908 5 -7641594.267 4 22792362.652 22792361.965 22792363.084
+ 33.600 28.400
+ -8683435.583 5 -6766307.783 4 23015621.709 23015619.971 23015621.078
+ 33.000 25.300
+ -4856721.787 4 -3784456.350 4 23614851.612 23614850.401 23614851.041
+ 27.600 24.200
+ -1727531.985 3 -1346128.923 4 24269151.784 24269149.480 24269151.015
+ 23.000 25.600
+ -22040220.953 7 -17174195.558 7 20528764.948 20528760.623 20528764.237
+ 46.000 46.100
+ 06 1 2 6 10 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12477996.579 6 -9723109.103 5 22101198.830 22101196.621 22101197.590
+ 39.300 32.800
+ -16419649.468 7 -12794530.150 7 20594734.444 20594731.363 20594733.425
+ 43.100 45.600
+ -5271750.918 5 -4107857.049 4 22688914.537 22688912.897 22688914.608
+ 35.100 25.600
+ -7902565.288 5 -6157841.834 5 22758533.050 22758531.396 22758532.103
+ 35.600 31.300
+ -9890854.373 5 -7707155.104 4 22776353.519 22776351.528 22776352.697
+ 33.400 28.600
+ -8576231.390 5 -6682772.063 4 23036022.280 23036020.474 23036021.625
+ 34.300 25.600
+ -4954085.889 4 -3860324.432 3 23596324.100 23596322.632 23596323.130
+ 24.600 23.400
+ -1763101.844 3 -1373845.681 4 24262383.530 24262380.395 24262383.057
+ 23.000 24.200
+ -22005816.860 7 -17147387.180 7 20535311.972 20535307.499 20535311.217
+ 45.800 45.900
+ 06 1 2 6 11 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12508078.514 6 -9746549.542 5 22095474.064 22095472.214 22095473.093
+ 39.500 33.100
+ -16444946.368 7 -12814242.016 7 20589920.732 20589917.477 20589919.655
+ 43.200 45.600
+ -5177011.426 5 -4034034.088 4 22706942.652 22706941.015 22706942.980
+ 34.600 25.300
+ -7975993.958 5 -6215058.964 5 22744559.846 22744558.729 22744558.956
+ 35.600 32.600
+ -9974648.948 5 -7772449.570 4 22760406.777 22760405.754 22760406.886
+ 33.400 27.900
+ -8468807.323 5 -6599064.989 4 23056464.077 23056462.543 23056463.330
+ 33.100 26.200
+ -5051244.132 4 -3936032.114 3 23577835.124 23577833.806 23577834.625
+ 24.600 23.400
+ -1798173.856 3 -1401174.476 3 24255709.284 24255706.093 24255708.655
+ 23.800 23.400
+ -21970942.642 7 -17120212.472 7 20541948.376 20541943.878 20541947.589
+ 45.800 45.900
+ 06 1 2 6 11 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12537583.555 6 -9769540.470 5 22089859.436 22089857.529 22089858.471
+ 39.400 32.600
+ -16469948.277 7 -12833724.023 7 20585162.850 20585159.816 20585161.977
+ 43.200 45.700
+ -5081992.173 5 -3959993.125 4 22725024.657 22725023.132 22725024.439
+ 34.500 26.800
+ -8049273.107 6 -6272159.597 5 22730615.003 22730613.856 22730614.311
+ 36.200 32.800
+ -10058098.477 5 -7837475.150 4 22744527.730 22744525.799 22744527.176
+ 34.300 28.600
+ -8361166.377 5 -6515188.952 4 23076947.525 23076946.009 23076946.682
+ 32.100 26.800
+ -5148195.088 4 -4011578.275 3 23559385.830 23559384.280 23559385.262
+ 26.500 23.800
+ -1832747.328 4 -1428114.780 4 24249130.680 24249127.432 24249129.988
+ 25.900 24.600
+ -21935598.271 7 -17092671.409 7 20548674.283 20548669.661 20548673.387
+ 45.700 45.700
+ 06 1 2 6 12 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12566510.159 6 -9792080.670 5 22084355.397 22084352.943 22084354.071
+ 39.300 32.700
+ -16494654.970 7 -12852975.992 7 20580461.170 20580458.345 20580460.226
+ 43.200 45.700
+ -4986694.977 5 -3885735.585 4 22743159.911 22743157.424 22743158.740
+ 33.900 26.800
+ -8122402.322 5 -6329143.378 5 22716699.065 22716698.154 22716698.217
+ 35.600 33.600
+ -10141199.791 5 -7902229.405 4 22728713.170 22728711.919 22728713.112
+ 33.400 28.100
+ -8253311.242 5 -6431145.988 4 23097472.707 23097470.352 23097471.613
+ 34.300 26.500
+ -5244937.243 4 -4086961.761 3 23540976.961 23540975.124 23540976.379
+ 28.100 23.400
+ -1866821.103 4 -1454665.763 3 24242645.985 24242643.066 24242645.389
+ 24.200 22.100
+ -21899784.106 7 -17064764.273 7 20555489.528 20555484.907 20555488.715
+ 45.800 45.800
+ 06 1 2 6 12 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12594856.773 6 -9814168.935 5 22078960.675 22078958.539 22078959.788
+ 39.500 32.000
+ -16519066.343 7 -12871997.842 7 20575816.206 20575812.977 20575815.118
+ 43.200 45.800
+ -4891121.159 5 -3811262.520 4 22761347.962 22761344.480 22761346.110
+ 34.000 26.200
+ -8195381.314 6 -6386010.109 5 22702811.893 22702810.518 22702811.134
+ 36.400 33.500
+ -10223949.915 5 -7966709.998 4 22712967.194 22712965.262 22712966.624
+ 33.900 29.200
+ -8145244.630 5 -6346938.248 4 23118035.855 23118034.304 23118035.321
+ 32.400 24.900
+ -5341469.005 5 -4162181.310 3 23522607.665 23522606.133 23522606.904
+ 30.400 23.400
+ -1900394.295 3 -1480826.697 3 24236257.062 24236254.018 24236256.527
+ 22.600 21.100
+ -21863500.260 7 -17036491.144 7 20562393.985 20562389.500 20562393.187
+ 45.800 45.600
+ 06 1 2 6 13 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12622621.970 6 -9835804.143 5 22073677.189 22073675.248 22073676.131
+ 39.700 32.700
+ -16543181.972 7 -12890789.242 7 20571226.969 20571223.858 20571226.031
+ 43.400 45.700
+ -4795272.614 5 -3736575.375 4 22779587.781 22779583.852 22779585.926
+ 33.900 26.500
+ -8268209.619 6 -6442759.433 5 22688953.378 22688951.733 22688952.480
+ 37.100 33.500
+ -10306345.615 5 -8030914.426 4 22697287.005 22697285.839 22697286.900
+ 33.600 29.000
+ -8036969.466 5 -6262567.975 4 23138639.733 23138638.406 23138638.864
+ 31.600 24.900
+ -5437789.066 4 -4237235.872 4 23504278.213 23504276.941 23504277.667
+ 29.000 24.200
+ -1933466.259 3 -1506597.034 3 24229963.435 24229961.232 24229963.072
+ 22.100 23.800
+ -21826746.900 7 -17007852.163 7 20569387.903 20569383.436 20569387.137
+ 45.600 45.400
+ 06 1 2 6 13 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12649804.360 6 -9856985.209 5 22068504.749 22068502.967 22068503.744
+ 40.000 33.100
+ -16567001.668 7 -12909350.046 7 20566694.324 20566691.234 20566693.331
+ 43.100 45.900
+ -4699150.941 5 -3661675.420 4 22797877.614 22797875.325 22797876.848
+ 34.500 26.800
+ -8340886.738 6 -6499390.944 5 22675123.321 22675121.439 22675122.214
+ 36.500 32.700
+ -10388383.768 5 -8094840.236 4 22681675.898 22681674.800 22681675.511
+ 34.300 29.200
+ -7928488.706 5 -6178037.527 4 23159283.598 23159281.959 23159282.738
+ 33.100 25.600
+ -5533895.861 5 -4312124.262 4 23485990.087 23485988.536 23485989.408
+ 30.600 25.300
+ -1966035.943 3 -1531975.977 3 24223766.061 24223762.959 24223765.114
+ 21.100 21.100
+ -21789524.373 7 -16978847.606 7 20576471.245 20576466.563 20576470.388
+ 45.700 45.300
+ 06 1 2 6 14 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12676402.448 6 -9877710.980 5 22063443.189 22063441.185 22063442.311
+ 40.300 33.100
+ -16590525.128 7 -12927680.018 7 20562218.184 20562215.002 20562217.131
+ 43.400 46.000
+ -4602757.498 5 -3586563.662 4 22816219.098 22816218.378 22816219.960
+ 33.800 26.200
+ -8413412.265 6 -6555904.335 5 22661321.957 22661320.445 22661321.107
+ 36.900 33.200
+ -10470061.279 5 -8158485.014 4 22666132.472 22666132.010 22666132.425
+ 33.600 29.000
+ -7819804.443 5 -6093348.492 4 23179965.709 23179964.000 23179964.817
+ 30.600 26.800
+ -5629787.842 4 -4386845.268 4 23467742.284 23467741.039 23467741.474
+ 29.700 25.600
+ -1998102.713 3 -1556963.053 3 24217664.376 24217660.836 24217663.426
+ 23.800 23.400
+ -21751833.020 7 -16949477.728 7 20583643.688 20583638.978 20583642.744
+ 45.500 45.200
+ 06 1 2 6 14 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12702414.846 6 -9897980.378 5 22058493.301 22058491.048 22058492.119
+ 40.000 33.200
+ -16613752.215 7 -12945779.048 7 20557798.175 20557794.896 20557797.047
+ 43.300 46.000
+ -4506093.866 5 -3511241.367 4 22834612.930 22834612.680 22834614.372
+ 34.100 24.900
+ -8485785.891 6 -6612299.359 5 22647549.541 22647548.101 22647548.756
+ 36.800 32.800
+ -10551374.978 5 -8221846.325 4 22650659.910 22650658.061 22650659.204
+ 34.600 29.200
+ -7710919.526 5 -6008503.099 4 23200685.601 23200683.627 23200684.706
+ 31.300 24.200
+ -5725463.611 5 -4461397.779 4 23449535.828 23449534.358 23449535.197
+ 30.200 25.300
+ -2029665.554 4 -1581557.388 3 24211657.674 24211654.733 24211657.247
+ 26.800 23.400
+ -21713673.038 7 -16919742.686 7 20590905.207 20590900.585 20590904.304
+ 45.400 45.100
+ 06 1 2 6 15 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12727840.236 6 -9917792.362 5 22053655.153 22053653.085 22053654.032
+ 40.300 33.800
+ -16636682.608 7 -12963646.888 7 20553434.559 20553431.276 20553433.556
+ 43.400 46.000
+ -4409161.579 5 -3435709.737 4 22853060.662 22853058.839 22853059.879
+ 32.800 27.100
+ -8558007.053 6 -6668575.581 5 22633806.418 22633804.979 22633805.469
+ 36.200 33.000
+ -10632321.793 5 -8284921.739 4 22635255.766 22635254.559 22635255.530
+ 34.600 29.500
+ -7601837.125 5 -5923503.841 4 23221443.514 23221441.696 23221442.575
+ 31.800 26.800
+ -5820921.759 5 -4535780.760 3 23431370.353 23431369.262 23431369.991
+ 30.100 23.800
+ -2060723.756 4 -1605758.587 2 24205747.553 24205744.228 24205746.978
+ 26.200 17.800
+ -21675044.784 7 -16889642.757 7 20598255.898 20598251.350 20598255.033
+ 45.400 45.000
+ 06 1 2 6 15 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12752677.243 6 -9937145.852 5 22048928.533 22048926.822 22048927.561
+ 40.300 33.500
+ -16659316.215 7 -12981283.467 7 20549127.398 20549124.398 20549126.466
+ 43.200 46.100
+ -4311962.164 5 -3359969.986 4 22871559.153 22871554.672 22871556.971
+ 33.100 25.600
+ -8630075.365 6 -6724732.695 5 22620092.222 22620090.838 22620091.265
+ 36.600 32.600
+ -10712898.688 5 -8347708.903 4 22619923.415 22619921.004 22619922.551
+ 34.000 29.500
+ -7492559.138 5 -5838352.170 4 23242238.119 23242236.355 23242237.302
+ 32.600 24.200
+ -5916160.972 4 -4609993.095 3 23413246.844 23413245.733 23413246.339
+ 29.900 23.000
+ -2091276.632 4 -1629566.025 3 24199933.777 24199930.058 24199933.077
+ 24.600 19.300
+ -21635948.379 7 -16859178.032 7 20605695.646 20605691.197 20605694.857
+ 45.300 45.100
+ 06 1 2 6 16 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12776924.499 6 -9956039.816 5 22044314.907 22044312.566 22044313.520
+ 40.100 33.400
+ -16681652.892 7 -12998688.668 7 20544877.067 20544873.927 20544875.999
+ 43.200 46.300
+ -4214497.567 5 -3284023.580 4 22890105.530 22890102.078 22890103.618
+ 33.000 26.200
+ -8701990.353 6 -6780770.345 5 22606407.396 22606405.759 22606406.597
+ 37.200 33.100
+ -10793102.581 5 -8410205.432 4 22604660.051 22604658.880 22604660.041
+ 34.800 29.700
+ -7383088.717 5 -5753050.548 4 23263069.155 23263067.571 23263068.380
+ 30.600 24.200
+ -6011179.491 4 -4684033.488 3 23395165.994 23395164.008 23395164.917
+ 28.800 23.400
+ -2121323.375 4 -1652979.036 3 24194215.633 24194212.739 24194215.159
+ 24.600 20.500
+ -21596384.246 7 -16828348.847 7 20613224.621 20613220.019 20613223.695
+ 45.300 45.000
+ 06 1 2 6 16 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12800580.776 6 -9974473.258 5 22039812.484 22039810.930 22039811.677
+ 39.900 33.400
+ -16703692.208 7 -13015862.158 7 20540682.825 20540679.847 20540681.953
+ 43.300 46.200
+ -4116769.544 5 -3207871.917 4 22908701.404 22908699.238 22908700.605
+ 33.100 25.900
+ -8773751.636 6 -6836688.232 5 22592751.666 22592749.987 22592750.824
+ 37.200 32.400
+ -10872930.440 5 -8472408.924 4 22589470.028 22589468.054 22589469.547
+ 35.500 29.900
+ -7273428.600 5 -5667601.126 3 23283937.010 23283935.322 23283936.728
+ 31.500 23.000
+ -6105976.139 4 -4757900.986 4 23377125.982 23377124.603 23377125.470
+ 27.900 24.600
+ -2150863.208 3 -1675997.102 3 24188594.526 24188590.993 24188593.682
+ 23.400 19.300
+ -21556352.689 7 -16797155.428 7 20620842.339 20620837.764 20620841.523
+ 45.300 44.900
+ 06 1 2 6 17 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12823644.756 6 -9992445.190 5 22035424.307 22035421.911 22035422.945
+ 39.900 33.200
+ -16725433.802 7 -13032803.664 7 20536545.623 20536542.588 20536544.658
+ 43.300 46.200
+ -4018779.324 5 -3131515.954 4 22927348.134 22927346.117 22927347.620
+ 33.600 25.300
+ -8845358.788 6 -6892485.991 5 22579124.847 22579123.404 22579124.027
+ 36.800 32.700
+ -10952379.104 5 -8534316.956 5 22574350.448 22574349.499 22574350.580
+ 35.300 30.200
+ -7163581.373 5 -5582005.876 3 23304839.877 23304838.574 23304839.592
+ 31.800 23.000
+ -6200549.419 5 -4831594.427 4 23359129.890 23359128.258 23359129.092
+ 30.400 25.300
+ -2179895.566 4 -1698619.703 2 24183069.652 24183066.529 24183069.159
+ 24.600 16.100
+ -21515854.219 7 -16765598.174 7 20628548.734 20628544.384 20628548.029
+ 45.200 44.800
+ 06 1 2 6 17 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12846115.217 6 -10009954.630 5 22031147.738 22031145.796 22031146.800
+ 40.000 33.400
+ -16746877.631 7 -13049513.137 7 20532465.102 20532462.039 20532464.050
+ 43.000 46.400
+ -3920528.801 5 -3054957.121 4 22946044.225 22946042.722 22946043.896
+ 32.800 25.600
+ -8916811.262 6 -6948163.247 5 22565528.198 22565526.280 22565527.307
+ 37.200 32.100
+ -11031445.608 5 -8595927.200 4 22559305.921 22559303.684 22559304.926
+ 34.700 29.500
+ -7053549.597 5 -5496266.844 3 23325779.089 23325776.778 23325778.082
+ 31.000 23.000
+ -6294897.845 4 -4905112.662 4 23341175.887 23341174.235 23341175.235
+ 29.700 24.600
+ -2208419.282 3 -1720846.014 2 24177641.407 24177637.942 24177640.924
+ 23.800 13.900
+ -21474889.027 7 -16733677.247 7 20636344.170 20636339.799 20636343.448
+ 45.200 44.700
+ 06 1 2 6 18 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12867990.930 6 -10027000.633 5 22026985.312 22026983.118 22026983.941
+ 39.700 33.600
+ -16768023.420 7 -13065990.377 7 20528441.239 20528438.106 20528440.168
+ 43.100 46.300
+ -3822019.702 5 -2978196.848 3 22964790.189 22964788.088 22964789.578
+ 32.000 23.400
+ -8988108.578 6 -7003719.598 5 22551960.632 22551959.073 22551959.896
+ 37.400 33.200
+ -11110126.877 5 -8657237.254 4 22544332.170 22544330.694 22544332.122
+ 34.400 28.100
+ -6943336.437 5 -5410386.464 3 23346752.862 23346749.620 23346751.815
+ 31.600 23.800
+ -6389020.160 4 -4978454.700 3 23323264.702 23323263.177 23323264.225
+ 29.200 23.800
+ -2236434.480 3 -1742676.011 3 24172311.178 24172307.769 24172310.186
+ 23.800 19.300
+ -21433457.663 7 -16701393.075 7 20644228.381 20644223.918 20644227.661
+ 45.400 44.600
+ 06 1 2 6 18 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12889270.680 6 -10043582.247 5 22022935.466 22022933.942 22022934.519
+ 40.000 33.800
+ -16788871.037 7 -13082235.274 7 20524474.012 20524470.933 20524473.014
+ 43.100 46.400
+ -3723253.244 5 -2901235.986 3 22983585.688 22983582.578 22983584.611
+ 32.300 23.000
+ -9059250.363 6 -7059154.751 5 22538422.872 22538421.306 22538422.061
+ 37.900 33.200
+ -11188419.735 5 -8718244.658 4 22529435.019 22529432.376 22529434.047
+ 35.500 29.200
+ -6832944.051 5 -5324366.424 4 23367759.372 23367757.152 23367758.484
+ 30.400 25.300
+ -6482914.782 5 -5051619.325 4 23305397.870 23305395.779 23305397.105
+ 31.000 25.600
+ -2263939.964 4 -1764108.885 3 24167076.167 24167073.644 24167075.694
+ 24.200 19.300
+ -21391560.237 7 -16668745.726 7 20652201.031 20652196.655 20652200.336
+ 45.300 44.500
+ 06 1 2 6 19 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12909953.253 6 -10059698.536 5 22019000.515 22018998.074 22018998.955
+ 40.200 34.300
+ -16809420.129 7 -13098247.556 7 20520563.597 20520560.696 20520562.678
+ 43.100 46.600
+ -3624231.197 5 -2824076.008 3 23002428.826 23002425.732 23002427.502
+ 31.600 23.000
+ -9130236.213 6 -7114468.391 5 22524914.684 22524912.967 22524913.932
+ 37.800 32.800
+ -11266321.283 6 -8778947.135 4 22514608.914 22514608.075 22514609.497
+ 36.000 29.500
+ -6722375.105 5 -5238208.816 3 23388799.312 23388797.158 23388798.382
+ 30.800 22.600
+ -6576580.449 5 -5124605.545 4 23287573.740 23287571.969 23287572.916
+ 31.000 26.500
+ -2290935.464 4 -1785144.297 2 24161940.367 24161936.217 24161939.489
+ 26.500 16.100
+ -21349197.229 7 -16635735.596 7 20660262.724 20660258.170 20660261.937
+ 45.200 44.500
+ 06 1 2 6 19 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12930037.585 6 -10075348.660 5 22015178.286 22015175.972 22015177.157
+ 40.300 33.600
+ -16829670.646 7 -13114027.182 7 20516710.071 20516707.054 20516709.095
+ 43.100 46.500
+ -3524955.592 5 -2746718.433 4 23021320.431 23021317.610 23021319.434
+ 31.600 24.600
+ -9201065.583 6 -7169660.109 5 22511436.559 22511434.819 22511435.731
+ 38.100 34.000
+ -11343828.527 5 -8839342.357 4 22499860.924 22499858.838 22499860.345
+ 35.300 29.500
+ -6611631.957 4 -5151915.429 3 23409873.256 23409870.619 23409872.123
+ 29.900 20.500
+ -6670015.624 5 -5197412.169 4 23269793.179 23269791.773 23269792.671
+ 32.800 26.800
+ -2317419.865 4 -1805781.472 2 24156900.059 24156896.997 24156899.507
+ 26.800 17.800
+ -21306369.251 7 -16602363.147 7 20668412.336 20668408.047 20668411.668
+ 45.300 44.300
+ 06 1 2 6 20 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12949522.558 6 -10090531.752 5 22011469.701 22011468.217 22011468.947
+ 40.500 34.000
+ -16849622.377 7 -13129573.985 7 20512913.114 20512910.233 20512912.243
+ 42.700 46.400
+ -3425427.861 5 -2669164.380 4 23040259.958 23040257.458 23040258.987
+ 32.300 25.600
+ -9271738.060 6 -7224729.553 5 22497988.115 22497986.368 22497987.051
+ 37.700 34.600
+ -11420938.436 5 -8899427.977 4 22485186.729 22485185.356 22485186.699
+ 35.500 29.700
+ -6500717.500 5 -5065488.606 4 23430980.000 23430977.869 23430978.753
+ 31.000 24.200
+ -6763219.055 5 -5270038.203 4 23252057.202 23252055.892 23252056.487
+ 30.800 28.800
+ -2343392.976 4 -1826020.315 3 24151957.796 24151954.169 24151957.147
+ 28.600 18.600
+ -21263076.441 7 -16568628.496 7 20676650.738 20676646.416 20676649.991
+ 45.100 44.300
+ 06 1 2 6 20 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12968407.022 6 -10105246.909 5 22007877.018 22007874.722 22007875.590
+ 40.200 34.000
+ -16869274.538 7 -13144887.355 7 20509173.448 20509170.572 20509172.559
+ 42.800 46.500
+ -3325649.531 5 -2591415.107 4 23059246.490 23059244.783 23059245.819
+ 32.300 26.200
+ -9342253.247 6 -7279676.442 5 22484569.188 22484567.770 22484568.421
+ 38.000 34.500
+ -11497647.933 5 -8959201.583 4 22470589.721 22470587.880 22470589.164
+ 35.300 29.900
+ -6389634.424 5 -4978930.371 3 23452118.405 23452116.221 23452117.413
+ 30.100 23.400
+ -6856189.265 5 -5342482.505 4 23234365.218 23234364.269 23234364.719
+ 30.200 27.100
+ -2368854.170 3 -1845860.197 3 24147112.007 24147108.791 24147111.400
+ 22.600 19.300
+ -21219319.676 7 -16534532.320 7 20684977.338 20684972.975 20684976.653
+ 45.200 44.000
+ 06 1 2 6 21 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -12986689.943 6 -10119493.325 5 22004397.606 22004395.477 22004396.498
+ 40.400 33.900
+ -16888627.295 7 -13159967.427 7 20505490.950 20505487.924 20505489.969
+ 42.700 46.500
+ -3225622.648 5 -2513472.102 4 23078281.721 23078278.994 23078280.462
+ 31.000 24.200
+ -9412610.754 6 -7334500.464 5 22471181.217 22471178.984 22471180.192
+ 38.700 34.700
+ -11573953.991 5 -9018660.817 5 22456069.193 22456067.566 22456068.741
+ 35.600 30.200
+ -6278385.298 4 -4892242.741 3 23473287.516 23473285.815 23473286.838
+ 29.200 21.600
+ -6948924.896 5 -5414744.007 4 23216718.109 23216717.244 23216717.343
+ 30.100 27.600
+ -2393802.909 4 -1865300.752 2 24142364.912 24142361.476 24142364.246
+ 27.400 16.100
+ -21175099.193 7 -16500074.812 7 20693392.207 20693387.847 20693391.587
+ 45.300 44.100
+ 06 1 2 6 21 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13004370.278 6 -10133270.202 5 22001032.893 22001031.160 22001031.977
+ 40.400 33.900
+ -16907680.371 7 -13174813.978 7 20501865.382 20501862.226 20501864.327
+ 42.700 46.500
+ -3125348.695 5 -2435336.587 4 23097363.207 23097360.858 23097361.804
+ 30.200 24.900
+ -9482810.124 6 -7389201.265 5 22457822.094 22457820.691 22457821.336
+ 38.400 34.600
+ -11649853.856 6 -9077803.522 5 22441626.044 22441624.331 22441625.540
+ 36.000 30.400
+ -6166972.539 4 -4805427.607 3 23494488.212 23494486.916 23494487.673
+ 29.000 23.000
+ -7041424.703 5 -5486821.737 4 23199116.173 23199115.393 23199115.630
+ 31.100 28.100
+ -2418238.536 4 -1884341.491 2 24137714.810 24137711.224 24137714.282
+ 27.600 15.100
+ -21130415.271 7 -16465256.177 7 20701895.228 20701890.934 20701894.536
+ 45.200 43.900
+ 06 1 2 6 22 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13021446.932 6 -10146576.673 5 21997783.597 21997781.627 21997782.407
+ 40.500 33.900
+ -16926433.573 7 -13189426.864 7 20498296.581 20498293.630 20498295.691
+ 42.700 46.500
+ -3024829.541 5 -2357010.028 3 23116491.987 23116488.415 23116490.326
+ 30.200 22.600
+ -9552850.801 6 -7443778.412 5 22444494.190 22444492.221 22444493.309
+ 38.600 34.500
+ -11725344.423 6 -9136627.313 5 22427260.495 22427259.013 22427260.092
+ 36.100 31.000
+ -6055399.108 4 -4718487.290 4 23515720.329 23515718.504 23515719.464
+ 28.100 24.200
+ -7133687.176 5 -5558714.559 4 23181559.377 23181558.070 23181558.757
+ 31.500 28.100
+ -2442160.604 4 -1902982.069 2 24133162.362 24133159.016 24133161.697
+ 24.200 16.100
+ -21085268.764 7 -16430077.091 7 20710486.681 20710482.074 20710485.754
+ 45.300 44.000
+ 06 1 2 6 22 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13037918.993 6 -10159412.041 5 21994648.991 21994646.878 21994647.851
+ 40.600 34.000
+ -16944886.740 7 -13203805.957 7 20494785.163 20494782.072 20494784.155
+ 42.600 46.600
+ -2924066.513 4 -2278493.423 4 23135665.188 23135663.298 23135664.386
+ 29.700 24.200
+ -9622732.236 6 -7498231.466 5 22431196.051 22431194.362 22431195.147
+ 38.500 34.400
+ -11800422.686 6 -9195129.813 5 22412973.279 22412971.915 22412973.006
+ 36.100 31.100
+ -5943667.079 4 -4631423.372 3 23536982.323 23536980.616 23536981.621
+ 29.200 23.000
+ -7225711.068 5 -5630421.460 4 23164048.116 23164046.420 23164047.102
+ 32.000 27.900
+ -2465568.699 4 -1921222.143 2 24128708.233 24128704.768 24128707.476
+ 27.900 12.600
+ -21039660.191 7 -16394537.956 7 20719165.601 20719161.066 20719164.757
+ 45.200 43.800
+ 06 1 2 6 23 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13053785.510 6 -10171775.555 5 21991629.575 21991627.289 21991628.604
+ 40.300 33.400
+ -16963039.578 7 -13217951.028 7 20491330.810 20491327.750 20491329.772
+ 42.700 46.600
+ -2823061.553 5 -2199788.311 4 23154885.569 23154884.164 23154885.348
+ 32.300 24.200
+ -9692454.038 6 -7552560.140 5 22417928.126 22417926.627 22417927.342
+ 38.400 34.400
+ -11875085.847 6 -9253308.869 5 22398765.251 22398763.880 22398764.908
+ 36.200 30.600
+ -5831779.125 5 -4544237.962 4 23558274.631 23558272.665 23558273.817
+ 30.100 24.200
+ -7317494.979 5 -5701941.360 4 23146581.535 23146580.309 23146580.991
+ 30.800 26.500
+ -2488462.203 4 -1939061.250 2 24124351.669 24124347.898 24124351.125
+ 27.900 16.100
+ -20993589.799 7 -16358638.949 7 20727932.496 20727928.010 20727931.686
+ 45.200 43.800
+ 06 1 2 6 23 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13069045.535 6 -10183666.484 5 21988725.820 21988723.344 21988724.688
+ 40.500 33.000
+ -16980891.866 7 -13231861.902 7 20487933.554 20487930.615 20487932.558
+ 42.800 46.800
+ -2721816.138 5 -2120895.800 3 23174151.957 23174150.369 23174151.625
+ 31.100 22.600
+ -9762015.631 6 -7606763.967 5 22404691.361 22404689.498 22404690.299
+ 38.400 34.100
+ -11949330.676 6 -9311161.956 5 22384637.095 22384635.747 22384636.845
+ 37.000 31.800
+ -5719738.326 5 -4456933.451 3 23579595.303 23579592.810 23579594.485
+ 30.200 21.100
+ -7409037.579 5 -5773273.236 4 23129161.563 23129159.573 23129161.068
+ 31.300 24.600
+ -2510840.655 4 -1956499.007 2 24120093.289 24120089.703 24120092.561
+ 25.600 17.000
+ -20947058.091 7 -16322380.487 7 20736787.410 20736782.812 20736786.498
+ 45.100 43.900
+ 06 1 2 6 24 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13083698.085 6 -10195084.044 5 21985937.546 21985935.097 21985936.370
+ 40.300 33.100
+ -16998443.384 7 -13245538.410 7 20484593.630 20484590.679 20484592.674
+ 42.700 46.900
+ -2620332.356 4 -2041817.573 3 23193464.455 23193462.096 23193463.065
+ 29.700 23.400
+ -9831416.649 6 -7660842.675 5 22391484.714 22391482.956 22391483.779
+ 38.800 34.900
+ -12023154.396 6 -9368686.913 5 22370589.553 22370587.692 22370588.655
+ 36.700 32.000
+ -5607547.139 5 -4369511.720 2 23600943.555 23600941.819 23600943.262
+ 30.600 17.800
+ -7500337.527 5 -5844416.065 4 23111787.931 23111786.338 23111787.289
+ 32.000 24.600
+ -2532703.688 3 -1973535.108 2 24115932.109 24115928.781 24115931.460
+ 23.400 15.100
+ -20900065.933 7 -16285763.244 7 20745729.613 20745725.086 20745728.798
+ 45.200 43.600
+ 06 1 2 6 24 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13097742.376 6 -10206027.641 5 21983264.621 21983262.685 21983263.717
+ 40.600 33.100
+ -17015693.828 7 -13258980.312 7 20481311.185 20481307.966 20481310.091
+ 42.400 46.900
+ -2518612.114 5 -1962555.105 3 23212822.875 23212818.780 23212820.794
+ 30.400 22.600
+ -9900656.650 6 -7714795.925 5 22378308.617 22378306.855 22378307.700
+ 38.600 34.500
+ -12096554.078 6 -9425881.429 5 22356620.904 22356620.070 22356620.908
+ 36.600 31.800
+ -5495207.700 5 -4281974.498 3 23622320.973 23622319.226 23622320.811
+ 30.200 20.500
+ -7591393.524 5 -5915368.784 4 23094460.344 23094459.162 23094459.686
+ 30.800 25.900
+ -2554050.826 4 -1990169.234 2 24111870.359 24111866.929 24111869.735
+ 26.500 13.900
+ -20852613.728 7 -16248787.517 7 20754759.404 20754754.939 20754758.521
+ 45.200 43.700
+ 06 1 2 6 25 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13111177.451 6 -10216496.531 5 21980708.249 21980706.204 21980707.134
+ 40.600 33.600
+ -17032642.858 7 -13272187.349 7 20478085.484 20478082.693 20478084.571
+ 42.300 46.700
+ -2416656.538 4 -1883109.249 3 23232223.248 23232220.163 23232221.866
+ 29.000 21.100
+ -9969735.289 6 -7768623.428 5 22365163.268 22365161.960 22365162.419
+ 38.500 35.100
+ -12169526.760 6 -9482743.226 5 22342735.028 22342733.459 22342734.879
+ 36.800 31.000
+ -5382722.659 4 -4194323.800 3 23643726.595 23643724.803 23643725.648
+ 29.700 23.400
+ -7682204.331 5 -5986130.431 4 23077179.883 23077178.569 23077179.253
+ 31.300 27.400
+ -2574881.871 4 -2006401.239 2 24107906.847 24107902.879 24107906.122
+ 25.300 17.800
+ -20804702.125 7 -16211453.805 7 20763876.685 20763872.275 20763875.832
+ 45.300 43.700
+ 06 1 2 6 25 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13124002.534 6 -10226490.090 5 21978267.555 21978265.510 21978266.501
+ 40.700 32.800
+ -17049290.298 7 -13285159.381 7 20474917.654 20474914.795 20474916.745
+ 42.400 46.800
+ -2314467.794 4 -1803481.707 3 23251666.399 23251666.388 23251667.488
+ 29.500 23.000
+ -10038652.031 6 -7822324.773 5 22352048.912 22352047.467 22352047.899
+ 38.400 35.300
+ -12242069.663 6 -9539270.139 5 22328930.944 22328929.137 22328930.530
+ 37.200 31.000
+ -5270094.145 4 -4106561.358 3 23665158.583 23665157.405 23665157.366
+ 27.400 20.500
+ -7772768.537 5 -6056699.900 4 23059945.758 23059944.807 23059945.298
+ 31.500 28.600
+ -2595196.712 4 -2022230.930 1 24104040.629 24104037.007 24104039.972
+ 27.400 11.000
+ -20756331.826 7 -16173762.677 7 20773081.427 20773076.865 20773080.489
+ 45.500 43.600
+ 06 1 2 6 26 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13136216.758 6 -10236007.665 5 21975943.310 21975940.724 21975942.108
+ 40.300 32.700
+ -17065635.890 7 -13297896.206 7 20471807.563 20471804.330 20471806.500
+ 42.600 46.900
+ -2212047.445 5 -1723673.685 3 23271156.233 23271156.379 23271157.614
+ 30.200 23.800
+ -10107406.373 6 -7875899.577 5 22338965.419 22338963.984 22338964.548
+ 38.700 35.400
+ -12314179.791 6 -9595459.819 5 22315208.301 22315206.880 22315208.312
+ 37.000 31.000
+ -5157325.490 4 -4018689.690 3 23686617.686 23686616.609 23686617.205
+ 28.800 22.100
+ -7863084.824 5 -6127076.207 4 23042759.883 23042757.845 23042759.014
+ 33.100 27.100
+ -2614994.699 4 -2037657.967 2 24100273.732 24100269.467 24100272.905
+ 28.800 17.800
+ -20707503.163 7 -16135714.372 7 20782373.284 20782368.629 20782372.384
+ 45.300 43.300
+ 06 1 2 6 26 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13147819.384 6 -10245048.672 5 21973735.334 21973733.067 21973734.317
+ 40.500 33.200
+ -17081679.595 7 -13310397.797 7 20468754.371 20468751.279 20468753.311
+ 42.300 46.800
+ -2109397.010 4 -1643686.381 3 23290691.732 23290690.209 23290691.125
+ 29.900 22.600
+ -10175997.748 6 -7929347.400 5 22325913.094 22325911.344 22325912.238
+ 39.300 35.500
+ -12385854.367 6 -9651310.121 5 22301569.711 22301567.431 22301568.989
+ 36.500 31.100
+ -5044418.790 4 -3930710.402 3 23708103.241 23708101.890 23708102.470
+ 27.900 19.900
+ -7953151.934 5 -6197258.362 4 23025620.212 23025618.362 23025619.495
+ 32.400 27.600
+ -2634275.163 4 -2052681.743 3 24096604.262 24096601.170 24096603.642
+ 28.100 18.600
+ -20658216.902 7 -16097309.491 7 20791751.997 20791747.451 20791751.246
+ 45.400 43.300
+ 06 1 2 6 27 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13158809.614 6 -10253612.475 5 21971643.865 21971641.992 21971642.926
+ 40.500 33.600
+ -17097420.925 7 -13322663.770 7 20465758.716 20465755.851 20465757.741
+ 42.200 47.000
+ -2006518.717 4 -1563521.530 3 23310270.241 23310267.213 23310268.478
+ 29.000 22.600
+ -10244425.699 6 -7982667.881 5 22312891.668 22312889.956 22312890.755
+ 38.900 35.900
+ -12457090.499 6 -9706818.756 5 22288012.801 22288011.823 22288013.028
+ 37.100 31.000
+ -4931376.511 4 -3842625.533 3 23729613.383 23729613.745 23729613.370
+ 25.900 23.800
+ -8042968.593 5 -6267245.348 4 23008528.787 23008527.218 23008527.984
+ 32.100 27.600
+ -2653038.093 4 -2067302.211 2 24093034.224 24093030.490 24093033.719
+ 29.200 15.100
+ -20608473.719 7 -16058548.577 7 20801218.000 20801213.251 20801217.129
+ 45.500 43.100
+ 06 1 2 6 27 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13169186.784 6 -10261698.575 5 21969669.911 21969667.310 21969668.593
+ 41.000 33.600
+ -17112859.540 7 -13334693.861 7 20462820.795 20462817.991 20462819.881
+ 42.300 46.900
+ -1903414.180 4 -1483180.411 3 23329890.925 23329887.077 23329889.119
+ 28.800 19.300
+ -10312689.893 6 -8035860.742 5 22299901.116 22299899.874 22299900.222
+ 38.400 35.900
+ -12527885.212 6 -9761983.455 5 22274542.120 22274540.130 22274541.556
+ 37.000 31.100
+ -4818201.289 4 -3754437.083 3 23751151.243 23751150.210 23751149.990
+ 25.600 20.500
+ -8132533.487 5 -6337036.151 4 22991484.406 22991483.557 22991483.949
+ 32.400 28.100
+ -2671283.264 4 -2081519.207 2 24089562.255 24089558.320 24089561.454
+ 26.800 17.000
+ -20558274.224 7 -16019432.108 7 20810770.364 20810765.974 20810769.591
+ 45.200 43.100
+ 06 1 2 6 28 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13178950.165 6 -10269306.399 5 21967811.489 21967809.503 21967810.551
+ 40.800 33.400
+ -17127995.521 7 -13346488.131 7 20459940.539 20459937.565 20459939.546
+ 42.200 46.800
+ -1800085.032 4 -1402664.229 3 23349552.611 23349550.291 23349551.636
+ 29.900 21.100
+ -10380789.756 6 -8088925.565 5 22286942.643 22286940.784 22286941.733
+ 39.400 35.800
+ -12598235.811 6 -9816802.080 5 22261154.215 22261152.862 22261154.170
+ 36.800 31.500
+ -4704895.192 4 -3666146.614 3 23772713.901 23772711.247 23772712.663
+ 28.800 19.900
+ -8221845.320 5 -6406629.763 4 22974489.269 22974488.058 22974488.767
+ 33.500 28.100
+ -2689010.477 4 -2095332.606 3 24086188.998 24086184.969 24086188.111
+ 28.400 19.300
+ -20507619.142 7 -15979960.629 7 20820410.081 20820405.270 20820409.129
+ 45.200 42.900
+ 06 1 2 6 28 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13188099.021 6 -10276435.386 5 21966070.297 21966068.380 21966069.425
+ 40.900 33.600
+ -17142828.590 7 -13358046.367 7 20457118.192 20457114.938 20457117.192
+ 42.100 46.800
+ -1696533.203 4 -1321974.535 3 23369257.674 23369256.031 23369257.129
+ 29.200 22.100
+ -10448724.684 6 -8141861.871 5 22274014.928 22274013.147 22274013.926
+ 39.800 35.800
+ -12668139.365 6 -9871272.362 5 22247852.811 22247850.605 22247852.248
+ 37.000 32.000
+ -4591461.155 4 -3577756.447 3 23794298.753 23794296.742 23794298.362
+ 27.900 20.500
+ -8310902.912 5 -6476025.275 4 22957541.886 22957540.959 22957541.486
+ 32.300 28.800
+ -2706219.468 4 -2108742.222 2 24082913.704 24082910.325 24082913.200
+ 28.400 12.600
+ -20456509.145 7 -15940134.669 7 20830135.721 20830131.215 20830134.918
+ 45.200 42.800
+ 06 1 2 6 29 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13196632.811 6 -10283085.086 5 21964446.768 21964444.571 21964445.351
+ 41.000 33.400
+ -17157358.456 7 -13369368.345 7 20454353.343 20454350.173 20454352.264
+ 42.300 47.000
+ -1592759.947 4 -1241112.314 3 23389005.271 23389002.867 23389004.587
+ 29.000 22.600
+ -10516494.172 6 -8194669.261 5 22261118.550 22261117.130 22261117.646
+ 39.300 35.900
+ -12737593.108 6 -9925392.127 5 22234635.647 22234634.021 22234635.173
+ 37.200 32.000
+ -4477901.307 4 -3489268.247 3 23815908.620 23815906.378 23815907.789
+ 27.600 19.900
+ -8399705.057 5 -6545221.707 4 22940644.142 22940642.286 22940643.109
+ 32.700 27.400
+ -2722909.992 4 -2121747.837 3 24079737.979 24079734.416 24079737.316
+ 28.600 18.600
+ -20404944.870 7 -15899954.734 7 20839947.663 20839943.597 20839947.156
+ 45.300 42.700
+ 06 1 2 6 29 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13204550.820 6 -10289254.954 5 21962939.742 21962937.932 21962938.624
+ 40.900 33.600
+ -17171584.468 7 -13380453.548 7 20451646.112 20451643.048 20451644.996
+ 42.100 47.200
+ -1488767.821 4 -1160079.536 3 23408794.869 23408792.235 23408793.879
+ 29.700 23.800
+ -10584097.841 6 -8247347.440 6 22248254.089 22248252.540 22248253.193
+ 39.600 36.400
+ -12806594.264 6 -9979159.240 5 22221504.783 22221503.580 22221504.705
+ 37.500 32.600
+ -4364218.163 4 -3400683.967 3 23837541.012 23837539.995 23837540.363
+ 27.100 20.500
+ -8488250.426 5 -6614218.091 4 22923794.020 22923792.479 22923793.402
+ 32.400 27.400
+ -2739081.831 4 -2134349.239 2 24076660.487 24076655.933 24076659.854
+ 29.200 12.600
+ -20352927.174 7 -15859421.480 7 20849846.313 20849842.341 20849845.821
+ 45.400 42.800
+ 06 1 2 6 30 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13211852.520 6 -10294944.576 5 21961549.834 21961548.292 21961549.237
+ 41.300 34.000
+ -17185507.246 7 -13391302.466 7 20448996.764 20448993.559 20448995.759
+ 42.300 47.200
+ -1384558.325 4 -1078877.385 3 23428625.196 23428622.779 23428623.805
+ 28.100 23.400
+ -10651535.066 6 -8299895.918 6 22235421.152 22235419.626 22235420.166
+ 39.300 36.100
+ -12875140.051 6 -10032571.510 5 22208460.921 22208459.675 22208460.727
+ 37.200 32.700
+ -4250414.377 4 -3312005.738 4 23859197.620 23859196.396 23859196.734
+ 27.600 24.600
+ -8576537.696 5 -6683013.350 4 22906993.399 22906992.397 22906992.970
+ 33.500 29.000
+ -2754734.657 4 -2146546.261 2 24073681.870 24073677.556 24073681.120
+ 27.900 13.900
+ -20300456.801 7 -15818535.490 7 20859831.245 20859827.085 20859830.689
+ 45.500 42.700
+ 06 1 2 6 30 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13218537.291 6 -10300153.490 5 21960278.239 21960276.046 21960277.228
+ 41.100 33.900
+ -17199126.073 7 -13401914.538 7 20446404.901 20446402.061 20446403.971
+ 42.000 47.300
+ -1280133.269 4 -997507.281 3 23448496.751 23448494.130 23448495.414
+ 27.900 22.600
+ -10718805.380 6 -8352314.334 5 22222619.946 22222618.356 22222619.203
+ 40.000 35.900
+ -12943227.581 6 -10085626.696 5 22195504.245 22195503.151 22195504.175
+ 37.700 32.600
+ -4136491.996 4 -3223235.059 3 23880876.049 23880874.819 23880875.767
+ 28.800 22.100
+ -8664565.772 5 -6751606.630 4 22890242.118 22890241.035 22890241.514
+ 32.100 28.600
+ -2769868.425 4 -2158338.839 2 24070801.706 24070798.098 24070801.040
+ 27.400 17.800
+ -20247534.182 7 -15777297.100 7 20869902.261 20869897.961 20869901.614
+ 45.600 42.500
+ 06 1 2 6 31 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13224604.624 6 -10304881.275 5 21959123.797 21959121.377 21959122.614
+ 41.000 33.800
+ -17212440.490 7 -13412289.406 7 20443871.222 20443868.363 20443870.323
+ 42.100 47.100
+ -1175494.184 4 -915970.395 3 23468408.741 23468406.379 23468407.679
+ 28.600 22.600
+ -10785908.270 6 -8404602.306 6 22209851.166 22209849.183 22209850.168
+ 40.000 36.400
+ -13010854.163 6 -10138322.702 5 22182636.173 22182633.995 22182635.516
+ 38.100 32.100
+ -4022453.584 4 -3134373.980 3 23902576.046 23902575.369 23902575.822
+ 25.900 20.500
+ -8752333.341 5 -6819996.912 4 22873540.950 22873539.172 22873540.257
+ 33.100 27.400
+ -2784483.109 4 -2169726.884 2 24068020.725 24068016.801 24068019.892
+ 27.900 15.100
+ -20194160.461 7 -15735707.191 7 20880059.038 20880054.676 20880058.355
+ 45.500 42.400
+ 06 1 2 6 31 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13230053.982 6 -10309127.525 5 21958086.780 21958084.740 21958085.519
+ 41.000 34.100
+ -17225450.629 7 -13422427.177 7 20441395.593 20441392.508 20441394.638
+ 42.200 47.000
+ -1070642.836 4 -834268.061 3 23488361.022 23488358.380 23488360.099
+ 28.800 18.600
+ -10852843.297 6 -8456759.462 6 22197113.503 22197111.955 22197112.633
+ 39.800 36.500
+ -13078016.981 6 -10190657.364 5 22169854.591 22169853.264 22169854.656
+ 38.400 31.800
+ -3908301.823 4 -3045424.510 3 23924299.351 23924296.763 23924298.584
+ 27.600 18.600
+ -8839839.241 5 -6888183.323 4 22856889.010 22856887.093 22856888.349
+ 34.500 27.400
+ -2798578.514 4 -2180710.308 2 24065338.581 24065334.378 24065337.894
+ 28.100 15.100
+ -20140336.383 7 -15693766.341 7 20890301.410 20890297.001 20890300.713
+ 45.300 42.400
+ 06 1 2 6 32 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13234884.869 6 -10312891.846 5 21957167.302 21957165.792 21957166.312
+ 41.000 34.500
+ -17238156.022 7 -13432327.486 7 20438977.733 20438974.753 20438976.853
+ 42.200 47.100
+ -965581.353 4 -752401.991 3 23508353.472 23508351.508 23508352.624
+ 28.100 19.900
+ -10919609.941 6 -8508785.408 6 22184408.275 22184406.752 22184407.313
+ 39.400 36.800
+ -13144713.466 6 -10242628.632 5 22157163.357 22157161.380 22157162.865
+ 38.600 32.100
+ -3794038.368 4 -2956388.068 2 23946044.371 23946040.832 23946043.059
+ 28.800 17.000
+ -8927082.216 5 -6956164.874 4 22840287.732 22840285.437 22840286.848
+ 35.100 28.400
+ -2812154.596 4 -2191289.081 3 24062754.856 24062751.772 24062754.335
+ 27.900 20.500
+ -20086062.884 7 -15651475.298 7 20900629.146 20900624.905 20900628.497
+ 45.400 42.300
+ 06 1 2 6 32 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13239096.804 6 -10316173.869 5 21956365.683 21956363.950 21956364.972
+ 41.100 34.300
+ -17250556.352 7 -13441990.080 7 20436618.235 20436615.079 20436617.224
+ 42.300 47.100
+ -860311.756 4 -670373.777 3 23528385.539 23528383.381 23528384.829
+ 27.100 19.300
+ -10986207.725 6 -8560679.775 6 22171735.286 22171733.613 22171734.221
+ 39.600 37.000
+ -13210940.713 6 -10294234.264 5 22144559.812 22144558.618 22144560.013
+ 38.200 32.000
+ -3679666.013 4 -2867266.748 3 23967808.093 23967806.041 23967807.300
+ 28.100 22.600
+ -9014061.103 5 -7023940.616 4 22823735.668 22823734.072 22823735.059
+ 34.000 28.100
+ -2825211.291 5 -2201463.134 3 24060270.740 24060267.327 24060270.152
+ 30.100 19.300
+ -20031340.308 7 -15608834.332 7 20911042.492 20911038.227 20911041.862
+ 45.400 42.200
+ 06 1 2 6 33 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13242689.420 6 -10318973.309 5 21955682.440 21955679.898 21955681.198
+ 41.000 33.600
+ -17262651.523 7 -13451414.892 7 20434316.562 20434313.543 20434315.566
+ 42.000 47.200
+ -754835.139 4 -588184.242 3 23548457.631 23548455.491 23548456.461
+ 26.200 21.600
+ -11052636.082 6 -8612442.124 6 22159094.072 22159092.774 22159093.195
+ 40.300 37.100
+ -13276696.114 6 -10345472.215 5 22132048.104 22132045.503 22132047.534
+ 38.800 31.600
+ -3565187.579 4 -2778062.790 3 23989592.670 23989590.250 23989592.022
+ 25.900 19.300
+ -9100774.681 5 -7091509.619 4 22807234.313 22807233.153 22807233.828
+ 33.100 29.500
+ -2837748.528 4 -2211232.405 3 24057884.829 24057881.209 24057884.130
+ 28.600 18.600
+ -19976169.548 7 -15565844.141 7 20921540.895 20921536.902 20921540.388
+ 45.300 42.200
+ 06 1 2 6 33 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13245662.305 6 -10321289.837 5 21955117.067 21955114.088 21955115.602
+ 41.100 33.800
+ -17274441.180 6 -13460601.640 7 20432072.988 20432070.091 20432071.932
+ 41.800 47.300
+ -649153.913 4 -505835.301 3 23568568.227 23568565.803 23568567.030
+ 26.200 21.600
+ -11118894.394 6 -8664071.976 6 22146485.799 22146484.025 22146484.816
+ 40.800 36.600
+ -13341976.869 6 -10396340.314 5 22119624.379 22119623.066 22119624.516
+ 38.800 32.100
+ -3450605.526 4 -2688778.058 3 24011397.321 24011394.493 24011395.993
+ 26.800 19.300
+ -9187221.679 5 -7158870.877 5 22790783.815 22790782.938 22790783.352
+ 33.400 30.100
+ -2849766.142 4 -2220596.785 3 24055597.858 24055594.706 24055597.188
+ 26.200 20.500
+ -19920551.481 7 -15522505.399 7 20932124.644 20932120.656 20932124.114
+ 45.100 42.000
+ 06 1 2 6 34 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13248015.054 6 -10323123.143 5 21954668.955 21954666.687 21954667.944
+ 41.500 34.100
+ -17285925.191 6 -13469550.218 7 20429887.631 20429884.721 20429886.714
+ 41.900 47.300
+ -543269.982 4 -423328.372 3 23588718.009 23588714.867 23588716.426
+ 28.600 20.500
+ -11184982.244 6 -8715569.005 6 22133909.743 22133907.959 22133908.740
+ 40.700 36.400
+ -13406780.451 6 -10446836.589 5 22107293.040 22107291.546 22107292.931
+ 38.700 33.000
+ -3335921.608 4 -2599413.950 3 24033221.060 24033218.288 24033220.136
+ 28.800 18.600
+ -9273401.043 5 -7226023.611 4 22774384.705 22774383.392 22774384.144
+ 34.300 29.700
+ -2861264.425 4 -2229556.489 3 24053410.106 24053406.260 24053409.548
+ 28.100 19.300
+ -19864487.200 7 -15478818.960 7 20942793.506 20942789.418 20942792.915
+ 45.100 42.000
+ 06 1 2 6 34 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13249747.330 6 -10324472.967 5 21954339.102 21954337.049 21954338.074
+ 41.300 34.000
+ -17297103.392 7 -13478260.509 7 20427760.463 20427757.472 20427759.444
+ 42.000 47.200
+ -437185.012 4 -340664.801 3 23608905.238 23608902.217 23608903.890
+ 25.900 21.100
+ -11250899.106 6 -8766932.789 6 22121365.825 22121364.173 22121364.919
+ 40.000 36.200
+ -13471104.157 6 -10496958.928 5 22095052.740 22095051.231 22095052.521
+ 39.100 32.700
+ -3221138.034 4 -2509972.200 3 24055063.451 24055060.924 24055062.685
+ 27.400 19.900
+ -9359311.541 5 -7292966.833 5 22758036.490 22758035.390 22758035.855
+ 33.600 30.200
+ -2872243.170 4 -2238111.349 3 24051320.400 24051317.732 24051319.720
+ 26.500 21.600
+ -19807977.449 7 -15434785.407 6 20953547.165 20953542.824 20953546.444
+ 45.200 41.900
+ 06 1 2 6 35 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13250858.732 6 -10325338.993 5 21954127.833 21954125.486 21954126.566
+ 40.900 34.000
+ -17307975.489 7 -13486732.276 7 20425691.534 20425688.613 20425690.573
+ 42.000 47.100
+ -330900.862 4 -257846.044 2 23629129.889 23629127.385 23629128.727
+ 27.900 17.800
+ -11316644.499 6 -8818162.968 6 22108855.094 22108853.353 22108854.254
+ 40.900 36.500
+ -13534945.272 6 -10546705.238 5 22082903.897 22082902.594 22082903.859
+ 38.800 33.200
+ -3106257.501 4 -2420454.919 3 24076924.909 24076922.173 24076923.823
+ 27.400 21.100
+ -9444952.075 5 -7359699.686 5 22741739.280 22741738.590 22741738.843
+ 33.500 31.000
+ -2882702.521 4 -2246261.540 3 24049330.035 24049326.414 24049329.385
+ 26.200 19.300
+ -19751023.047 7 -15390405.378 6 20964384.848 20964380.932 20964384.350
+ 45.100 41.800
+ 06 1 2 6 35 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13251349.043 6 -10325721.052 5 21954034.545 21954032.005 21954033.391
+ 41.100 34.000
+ -17318541.257 6 -13494965.340 7 20423681.303 20423678.025 20423680.141
+ 41.700 47.200
+ -224418.976 4 -174873.185 3 23649391.952 23649390.549 23649391.703
+ 27.600 19.900
+ -11382217.869 6 -8869259.094 6 22096377.037 22096375.108 22096376.042
+ 40.500 36.500
+ -13598301.198 6 -10596073.476 5 22070848.349 22070846.262 22070847.870
+ 39.500 32.800
+ -2991282.469 4 -2330863.987 2 24098803.193 24098800.947 24098802.437
+ 26.800 15.100
+ -9530321.440 5 -7426221.235 5 22725494.209 22725493.194 22725493.692
+ 34.500 30.200
+ -2892642.404 4 -2254006.888 3 24047438.532 24047435.653 24047437.833
+ 25.900 20.500
+ -19693625.089 7 -15345679.714 6 20975307.357 20975303.478 20975306.923
+ 45.200 41.600
+ 06 1 2 6 36 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13251217.938 6 -10325618.893 5 21954059.804 21954056.880 21954058.510
+ 41.100 33.400
+ -17328799.917 6 -13502959.101 7 20421728.923 20421725.763 20421727.871
+ 41.900 47.200
+ -117741.387 4 -91747.835 3 23669692.417 23669690.450 23669691.783
+ 27.600 19.300
+ -11447618.695 6 -8920220.776 6 22083931.538 22083929.724 22083930.628
+ 40.700 37.200
+ -13661169.243 6 -10645061.553 5 22058884.356 22058882.862 22058884.119
+ 39.000 32.700
+ -2876214.410 3 -2241200.567 2 24120699.946 24120697.824 24120698.868
+ 23.000 16.100
+ -9615418.522 5 -7492530.627 5 22709301.210 22709299.565 22709300.484
+ 35.600 31.100
+ -2902062.826 4 -2261347.464 3 24045646.052 24045642.563 24045645.464
+ 26.800 21.100
+ -19635784.392 7 -15300609.054 6 20986314.184 20986310.054 20986313.756
+ 45.100 41.400
+ 06 1 2 6 36 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13250465.243 6 -10325032.375 5 21954202.662 21954200.277 21954201.629
+ 41.300 34.300
+ -17338752.010 6 -13510713.982 7 20419835.124 20419831.936 20419834.157
+ 41.900 47.100
+ -10870.549 4 -8471.898 3 23690029.686 23690026.936 23690028.392
+ 25.600 19.300
+ -11512846.467 6 -8971047.600 6 22071519.207 22071517.343 22071518.324
+ 41.200 36.900
+ -13723546.798 6 -10693667.415 5 22047014.693 22047013.182 22047014.301
+ 39.200 33.400
+ -2761056.983 4 -2151467.515 3 24142613.741 24142611.600 24142612.466
+ 24.200 19.300
+ -9700242.105 5 -7558626.908 5 22693159.510 22693158.046 22693158.773
+ 34.500 30.100
+ -2910964.004 4 -2268283.446 3 24043952.221 24043948.804 24043951.509
+ 26.500 21.600
+ -19577501.799 7 -15255194.063 6 20997405.065 20997400.873 20997404.572
+ 45.100 41.400
+ 06 1 2 6 37 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13249090.691 6 -10323961.293 5 21954464.299 21954462.046 21954463.153
+ 41.200 34.100
+ -17348397.005 7 -13518229.566 7 20417999.594 20417996.679 20417998.724
+ 42.100 47.300
+ 96192.432 4 74953.746 3 23710404.477 23710400.700 23710402.516
+ 25.900 19.900
+ -11577900.538 6 -9021739.086 6 22059139.510 22059137.798 22059138.663
+ 41.000 36.800
+ -13785431.413 6 -10741889.158 5 22035237.870 22035236.887 22035237.897
+ 38.800 33.500
+ -2645811.656 3 -2061665.954 2 24164543.075 24164541.632 24164542.692
+ 22.600 17.800
+ -9784791.145 5 -7624509.267 4 22677070.427 22677068.984 22677069.748
+ 35.300 29.700
+ -2919346.244 4 -2274815.064 3 24042357.706 24042353.675 24042356.889
+ 28.800 20.500
+ -19518778.417 7 -15209435.592 6 21008579.490 21008575.571 21008579.208
+ 45.200 41.200
+ 06 1 2 6 37 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13247094.126 6 -10322405.515 5 21954844.141 21954842.161 21954843.009
+ 41.000 34.600
+ -17357734.616 7 -13525505.626 7 20416222.608 20416219.881 20416221.757
+ 42.100 47.400
+ 203445.355 4 158527.407 3 23730812.377 23730810.707 23730811.671
+ 28.400 19.300
+ -11642780.485 6 -9072294.887 6 22046793.052 22046791.669 22046792.413
+ 41.200 37.000
+ -13846820.394 6 -10789724.713 5 22023556.235 22023554.689 22023556.143
+ 39.500 33.100
+ -2530480.965 4 -1971797.889 2 24186489.573 24186488.235 24186489.422
+ 25.600 15.100
+ -9869064.462 5 -7690176.771 5 22661033.513 22661032.428 22661033.046
+ 35.600 31.100
+ -2927209.588 4 -2280942.334 3 24040860.253 24040857.693 24040859.631
+ 24.200 20.500
+ -19459614.942 7 -15163334.196 6 21019837.888 21019834.039 21019837.585
+ 45.200 41.100
+ 06 1 2 6 38 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13244475.325 6 -10320364.889 5 21955342.633 21955340.648 21955341.409
+ 41.000 34.800
+ -17366764.715 7 -13532542.066 7 20414504.545 20414501.489 20414503.531
+ 42.000 47.300
+ 310886.413 4 242247.678 3 23751255.784 23751255.292 23751256.644
+ 26.800 19.300
+ -11707485.771 6 -9122714.584 6 22034480.407 22034478.574 22034479.592
+ 41.400 37.200
+ -13907711.257 6 -10837172.117 5 22011969.454 22011967.291 22011968.849
+ 39.100 32.400
+ -2415066.974 4 -1881864.871 1 24208452.846 24208450.825 24208452.182
+ 26.200 11.000
+ -9953060.920 5 -7755628.519 5 22645049.840 22645048.300 22645049.029
+ 34.900 31.000
+ -2934554.007 4 -2286665.243 3 24039462.907 24039460.355 24039462.288
+ 25.900 22.600
+ -19400012.436 7 -15116890.700 6 21031179.920 21031176.036 21031179.658
+ 45.300 41.100
+ 06 1 2 6 38 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13241234.209 6 -10317839.346 5 21955958.904 21955957.383 21955957.826
+ 40.800 34.800
+ -17375486.708 6 -13539338.425 7 20412844.622 20412841.704 20412843.694
+ 41.900 47.300
+ 418513.835 4 326113.160 3 23771736.820 23771736.839 23771737.208
+ 24.900 18.600
+ -11772015.676 6 -9172997.621 6 22022201.432 22022199.188 22022200.298
+ 41.500 37.700
+ -13968101.383 6 -10884229.362 5 22000477.120 22000475.087 22000476.995
+ 39.700 32.600
+ -2299571.802 4 -1791868.623 3 24230430.798 24230429.282 24230429.949
+ 27.600 20.500
+ -10036779.475 5 -7820863.742 5 22629118.590 22629116.948 22629117.930
+ 34.900 30.200
+ -2941379.993 4 -2291984.214 3 24038164.551 24038160.890 24038163.799
+ 27.100 21.600
+ -19339972.083 7 -15070106.031 6 21042605.704 21042601.408 21042605.091
+ 45.200 41.100
+ 06 1 2 6 39 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13237370.591 6 -10314828.727 5 21956693.876 21956692.372 21956692.870
+ 40.800 34.800
+ -17383900.466 6 -13545894.601 7 20411243.692 20411240.589 20411242.630
+ 41.900 47.400
+ 526325.687 4 410122.344 2 23792255.180 23792252.502 23792253.661
+ 25.300 17.800
+ -11836369.725 6 -9223143.636 6 22009954.990 22009952.719 22009954.021
+ 41.900 36.800
+ -14027988.309 6 -10930894.494 5 21989081.418 21989079.190 21989080.896
+ 39.700 32.700
+ -2183997.732 4 -1701810.920 3 24252424.056 24252422.306 24252422.838
+ 26.200 19.300
+ -10120218.969 5 -7885881.499 5 22613240.170 22613238.953 22613239.742
+ 34.800 30.400
+ -2947687.563 4 -2296899.212 3 24036964.370 24036961.004 24036963.737
+ 28.600 23.800
+ -19279494.525 7 -15022980.691 6 21054113.963 21054110.037 21054113.550
+ 45.200 41.200
+ 06 1 2 6 39 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13232884.449 6 -10311333.033 5 21957547.497 21957546.183 21957546.680
+ 41.100 34.400
+ -17392005.943 6 -13552210.556 7 20409701.139 20409698.228 20409700.177
+ 41.900 47.400
+ 634320.094 4 494273.759 3 23812806.556 23812803.327 23812804.851
+ 26.800 19.300
+ -11900547.395 6 -9273152.209 6 21997742.083 21997740.161 21997741.096
+ 41.200 37.300
+ -14087369.573 6 -10977165.583 5 21977781.447 21977779.313 21977781.200
+ 40.000 32.800
+ -2068347.399 3 -1611693.766 3 24274431.802 24274429.841 24274430.699
+ 23.800 19.900
+ -10203378.336 5 -7950680.984 5 22597415.619 22597414.457 22597415.089
+ 35.400 31.600
+ -2953476.807 4 -2301410.310 3 24035861.904 24035859.044 24035861.373
+ 26.800 21.600
+ -19218580.896 7 -14975515.543 6 21065705.751 21065701.427 21065705.167
+ 45.500 40.900
+ 06 1 2 6 40 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13227775.761 6 -10307352.240 5 21958520.377 21958518.241 21958519.178
+ 41.200 34.500
+ -17399802.849 6 -13558286.066 7 20408217.392 20408214.488 20408216.414
+ 41.900 47.300
+ 742495.228 4 578566.017 3 23833388.865 23833388.676 23833389.308
+ 27.100 19.300
+ -11964548.148 6 -9323022.925 6 21985563.204 21985561.291 21985562.268
+ 41.600 37.200
+ -14146242.583 6 -11023040.643 5 21966577.609 21966576.262 21966577.641
+ 39.500 32.800
+ -1952622.765 3 -1521518.744 2 24296452.341 24296450.521 24296451.882
+ 23.000 13.900
+ -10286256.512 5 -8015261.355 5 22581644.929 22581643.186 22581643.922
+ 35.500 31.800
+ -2958748.403 4 -2305518.043 3 24034859.276 24034856.005 24034858.679
+ 25.600 21.600
+ -19157232.326 7 -14927711.489 6 21077379.599 21077375.596 21077379.205
+ 45.100 40.900
+ 06 1 2 6 40 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13222044.475 6 -10302886.300 5 21959610.936 21959608.694 21959609.789
+ 41.000 34.100
+ -17407290.886 6 -13564120.903 7 20406792.461 20406789.537 20406791.516
+ 41.900 47.300
+ 850848.847 4 662997.356 2 23854008.368 23854007.557 23854008.207
+ 24.600 17.800
+ -12028371.464 6 -9372755.370 6 21973418.042 21973416.234 21973417.029
+ 41.600 37.800
+ -14204605.029 6 -11068517.862 5 21955472.565 21955470.306 21955472.018
+ 39.800 33.400
+ -1836826.420 3 -1431287.836 3 24318488.169 24318486.489 24318487.350
+ 23.400 19.300
+ -10368852.428 5 -8079621.772 5 22565927.247 22565925.563 22565926.525
+ 35.800 31.600
+ -2963502.265 4 -2309222.343 3 24033954.157 24033951.458 24033953.656
+ 24.900 22.100
+ -19095449.747 7 -14879569.237 6 21089136.506 21089132.556 21089136.089
+ 45.200 41.000
+ 06 1 2 6 41 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13215690.547 6 -10297935.183 5 21960820.174 21960817.782 21960818.912
+ 41.300 34.400
+ -17414469.705 6 -13569714.789 7 20405426.460 20405423.480 20405425.436
+ 41.800 47.300
+ 959379.569 4 747566.712 3 23874661.743 23874660.308 23874661.707
+ 26.800 19.300
+ -12092016.685 6 -9422349.045 6 21961306.485 21961304.977 21961305.649
+ 41.400 38.200
+ -14262454.244 6 -11113595.163 5 21944463.412 21944461.946 21944463.441
+ 39.800 33.100
+ -1720960.352 3 -1341002.599 2 24340536.884 24340534.808 24340535.581
+ 23.400 15.100
+ -10451164.973 6 -8143761.398 5 22550263.349 22550261.925 22550262.814
+ 36.200 31.300
+ -2967738.788 3 -2312523.513 3 24033148.188 24033144.643 24033147.188
+ 23.400 19.300
+ -19033234.168 7 -14831089.580 6 21100976.015 21100971.732 21100975.468
+ 45.400 40.600
+ 06 1 2 6 41 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13208713.948 6 -10292498.865 5 21962147.414 21962145.472 21962146.489
+ 41.300 34.300
+ -17421339.235 6 -13575067.669 7 20404119.275 20404116.237 20404118.230
+ 41.700 47.300
+ 1068085.267 4 832272.409 3 23895349.605 23895346.901 23895347.635
+ 25.600 21.100
+ -12155483.372 7 -9471803.597 6 21949229.503 21949227.728 21949228.578
+ 42.000 38.100
+ -14319787.778 6 -11158270.635 5 21933553.874 21933551.701 21933553.443
+ 40.000 33.800
+ -1605026.634 4 -1250664.605 3 24362597.670 24362596.519 24362597.101
+ 24.200 19.300
+ -10533193.077 6 -8207679.383 5 22534654.162 22534652.598 22534653.535
+ 36.200 31.800
+ -2971458.223 4 -2315421.780 3 24032440.739 24032437.497 24032440.286
+ 29.000 22.100
+ -18970586.674 7 -14782273.374 6 21112897.135 21112893.144 21112896.835
+ 45.000 40.300
+ 06 1 2 6 42 0.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13201114.838 6 -10286577.484 5 21963593.464 21963591.594 21963592.485
+ 41.000 34.600
+ -17427899.193 6 -13580179.328 7 20402870.686 20402867.967 20402869.854
+ 41.800 47.400
+ 1176964.187 4 917113.055 2 23916068.538 23916065.266 23916066.942
+ 24.600 13.900
+ -12218770.822 6 -9521118.495 6 21937186.149 21937184.357 21937185.318
+ 41.900 38.000
+ -14376603.383 6 -11202542.519 5 21922742.107 21922740.083 21922741.667
+ 39.800 33.600
+ -1489027.169 3 -1160275.417 2 24384673.165 24384670.441 24384671.972
+ 23.400 16.100
+ -10614935.677 5 -8271374.888 5 22519098.776 22519097.544 22519098.221
+ 35.700 32.300
+ -2974660.840 4 -2317917.322 3 24031831.431 24031828.019 24031830.574
+ 27.400 19.900
+ -18907508.342 7 -14733121.448 6 21124900.741 21124896.461 21124900.283
+ 45.200 40.500
+ 06 1 2 6 42 30.0000000 0 9G 5G14G18G 1G30G 9G25G11G22
+ -13192893.290 6 -10280171.084 5 21965158.013 21965155.936 21965156.955
+ 41.100 33.800
+ -17434149.072 6 -13585049.364 7 20401681.534 20401678.693 20401680.516
+ 41.600 47.400
+ 1286013.894 3 1002086.809 3 23936817.994 23936817.160 23936817.525
+ 21.600 18.600
+ -12281878.544 6 -9570293.341 6 21925177.222 21925175.329 21925176.305
+ 41.900 38.100
+ -14432898.600 6 -11246408.915 5 21912029.274 21912027.751 21912028.996
+ 40.100 34.400
+ -1372964.755 4 -1069837.194 3 24406758.683 24406756.686 24406757.712
+ 25.600 18.600
+ -10696391.764 6 -8334847.126 5 22503598.364 22503596.931 22503597.553
+ 36.000 32.100
+ -2977347.240 4 -2320010.636 3 24031320.027 24031316.553 24031319.503
+ 26.800 21.100
+ -18844000.677 7 -14683634.972 6 21136985.797 21136981.704 21136985.408
+ 45.100 40.400
+ 06 1 2 6 43 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13184049.369 6 -10273279.709 5 21966840.679 21966838.778 21966839.777
+ 40.900 34.100
+ -17440089.138 6 -13589677.992 7 20400551.350 20400548.301 20400550.350
+ 41.900 47.400
+ 1395233.171 4 1087192.691 2 23957601.830 23957600.947 23957601.313
+ 24.900 13.900
+ -12344805.846 7 -9619327.601 6 21913202.350 21913200.738 21913201.560
+ 42.300 38.200
+ -14488671.004 6 -11289867.908 5 21901416.243 21901414.474 21901415.849
+ 40.100 34.400
+ -10777560.372 6 -8398095.366 5 22488152.672 22488150.769 22488152.025
+ 37.200 31.500
+ -2979517.710 4 -2321701.898 3 24030906.765 24030903.993 24030905.949
+ 25.600 21.600
+ -18780064.276 7 -14633814.421 6 21149152.367 21149148.449 21149152.025
+ 45.000 40.300
+ 06 1 2 6 43 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13174583.205 6 -10265903.475 5 21968642.892 21968640.497 21968641.485
+ 40.800 34.000
+ -17445718.632 6 -13594064.614 7 20399480.046 20399476.961 20399479.059
+ 41.900 47.400
+ 1504619.357 4 1172428.672 2 23978417.799 23978416.049 23978417.011
+ 25.600 15.100
+ -12407552.342 7 -9668220.974 6 21901262.236 21901260.589 21901261.281
+ 42.200 38.100
+ -14543918.272 6 -11332917.718 5 21890902.533 21890901.293 21890902.634
+ 40.500 34.300
+ -10858440.435 6 -8461118.778 5 22472761.703 22472759.677 22472760.924
+ 36.500 31.500
+ -2981172.536 4 -2322991.386 3 24030591.656 24030588.637 24030591.031
+ 24.900 20.500
+ -18715700.322 7 -14583660.711 6 21161400.529 21161396.469 21161400.117
+ 45.000 39.700
+ 06 1 2 6 44 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13164495.025 6 -10258042.565 5 21970562.129 21970560.324 21970560.883
+ 40.900 34.100
+ -17451037.584 6 -13598209.253 7 20398467.718 20398464.829 20398466.829
+ 41.900 47.400
+ 1614171.242 4 1257793.710 2 23999266.189 23999263.263 23999264.669
+ 24.600 13.900
+ -12470117.282 7 -9716972.874 6 21889356.446 21889354.764 21889355.592
+ 42.200 38.400
+ -14598637.932 6 -11375556.404 5 21880489.875 21880488.500 21880489.745
+ 40.600 34.500
+ -10939030.866 6 -8523916.485 5 22457425.425 22457423.901 22457424.796
+ 36.300 31.800
+ -2982312.384 4 -2323879.543 4 24030375.608 24030372.213 24030374.649
+ 26.500 24.900
+ -18650910.086 7 -14533174.835 6 21173729.596 21173725.877 21173729.162
+ 44.700 40.200
+ 06 1 2 6 44 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13153784.984 6 -10249697.072 5 21972599.787 21972598.314 21972598.734
+ 40.600 34.300
+ -17456045.716 6 -13602111.699 7 20397514.893 20397511.919 20397513.847
+ 41.900 47.400
+ 1723886.639 4 1343286.168 2 24020145.004 24020142.090 24020142.601
+ 24.200 17.800
+ -12532500.058 7 -9765582.832 6 21877485.480 21877483.737 21877484.533
+ 42.300 38.400
+ -14652827.940 6 -11417782.365 5 21870178.327 21870176.312 21870177.790
+ 40.400 34.600
+ -11019330.708 6 -8586487.758 5 22442145.064 22442143.485 22442144.353
+ 36.900 32.600
+ -2982937.378 4 -2324366.597 3 24030255.720 24030252.855 24030255.071
+ 25.600 21.600
+ -18585694.578 7 -14482357.583 6 21186139.791 21186135.965 21186139.197
+ 44.400 40.200
+ 06 1 2 6 45 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13142453.254 6 -10240867.149 5 21974756.528 21974754.411 21974755.373
+ 40.600 33.900
+ -17460742.778 6 -13605771.744 7 20396620.930 20396618.039 20396619.955
+ 41.900 47.400
+ 1833763.791 4 1428904.660 1 24041053.153 24041049.754 24041051.783
+ 24.600 9.000
+ -12594700.130 7 -9814050.413 6 21865649.023 21865647.497 21865648.355
+ 42.600 38.800
+ -14706485.675 6 -11459593.579 5 21859967.291 21859965.764 21859967.044
+ 40.300 34.700
+ -11099339.047 6 -8648831.898 5 22426920.389 22426918.465 22426919.563
+ 36.900 32.600
+ -2983048.060 4 -2324452.838 3 24030235.059 24030232.136 24030234.291
+ 24.600 22.100
+ -18520055.118 7 -14431209.979 6 21198631.024 21198626.860 21198630.298
+ 44.700 40.100
+ 06 1 2 6 45 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13130500.092 6 -10231552.998 5 21977031.155 21977028.907 21977030.063
+ 41.000 33.900
+ -17465128.481 7 -13609189.180 7 20395786.318 20395783.339 20395785.422
+ 42.000 47.200
+ 1943800.671 3 1514647.691 3 24061990.532 24061989.689 24061990.794
+ 23.400 18.600
+ -12656716.837 7 -9862375.116 6 21853848.045 21853846.017 21853847.091
+ 42.900 38.600
+ -14759608.976 6 -11500988.348 5 21849858.236 21849856.449 21849858.011
+ 40.300 34.100
+ -11179054.791 6 -8710948.039 5 22411750.728 22411748.951 22411749.921
+ 36.700 32.100
+ -2982645.162 4 -2324138.880 3 24030311.324 24030308.313 24030311.046
+ 25.300 20.500
+ -18453992.896 7 -14379732.934 6 21211202.316 21211197.933 21211201.508
+ 44.800 39.900
+ 06 1 2 6 46 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13117925.805 6 -10221754.849 5 21979424.446 21979421.653 21979423.126
+ 40.700 33.800
+ -17469202.342 6 -13612363.623 7 20395011.177 20395008.213 20395010.193
+ 41.800 47.400
+ 2053995.165 3 1600513.448 2 24082960.516 24082959.129 24082959.997
+ 21.100 12.600
+ -12718549.721 7 -9910556.583 6 21842081.237 21842079.525 21842080.445
+ 42.500 38.600
+ -14812195.544 6 -11541964.885 5 21839851.587 21839849.594 21839851.161
+ 40.700 34.300
+ -11258477.014 6 -8772835.473 5 22396637.066 22396635.532 22396636.419
+ 37.100 32.600
+ -2981729.007 4 -2323424.990 3 24030486.251 24030482.921 24030485.361
+ 25.900 22.600
+ -18387509.003 7 -14327927.302 6 21223853.621 21223849.383 21223852.854
+ 44.500 39.900
+ 06 1 2 6 46 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13104730.668 6 -10211472.922 5 21981934.598 21981932.715 21981933.681
+ 40.700 34.000
+ -17472964.552 6 -13615295.216 7 20394295.229 20394292.319 20394294.193
+ 41.800 47.400
+ 2164345.681 4 1686500.810 2 24103961.235 24103958.120 24103959.517
+ 24.200 16.100
+ -12780198.146 7 -9958594.313 6 21830350.342 21830348.492 21830349.301
+ 42.500 39.100
+ -14864243.156 6 -11582521.450 5 21829947.217 21829945.336 21829946.864
+ 40.700 34.700
+ -11337604.638 6 -8834493.337 5 22381579.340 22381578.090 22381578.724
+ 37.100 33.100
+ -2980300.004 4 -2322311.495 3 24030758.170 24030754.608 24030757.325
+ 25.300 21.100
+ -18320604.488 7 -14275793.913 6 21236584.955 21236580.950 21236584.339
+ 44.600 39.900
+ 06 1 2 6 47 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13090914.944 6 -10200707.410 5 21984564.054 21984561.657 21984562.817
+ 40.600 33.500
+ -17476414.829 6 -13617983.746 7 20393638.613 20393635.759 20393637.645
+ 41.600 47.400
+ 2274850.271 3 1772608.204 3 24124989.368 24124986.188 24124987.469
+ 22.600 18.600
+ -12841661.570 7 -10006487.878 6 21818654.093 21818652.232 21818653.219
+ 42.700 39.000
+ -14915749.535 6 -11622656.272 5 21820145.754 21820144.085 21820145.490
+ 40.500 34.700
+ -11416436.743 6 -8895920.918 5 22366577.962 22366576.489 22366577.425
+ 37.200 32.100
+ -2978358.869 4 -2320798.941 3 24031127.323 24031124.480 24031126.666
+ 27.400 23.400
+ -18253280.744 7 -14223333.862 6 21249396.245 21249392.114 21249395.623
+ 44.600 39.700
+ 06 1 2 6 47 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13076479.039 6 -10189458.661 5 21987310.894 21987308.490 21987309.767
+ 40.500 33.200
+ -17479552.651 6 -13620428.803 7 20393041.506 20393038.679 20393040.535
+ 41.400 47.400
+ 2385506.379 3 1858833.670 2 24146045.638 24146043.935 24146045.149
+ 23.800 17.000
+ -12902939.361 7 -10054236.807 6 21806993.408 21806991.242 21806992.335
+ 42.500 38.700
+ -14966712.499 6 -11662367.656 5 21810447.901 21810446.147 21810447.542
+ 40.500 34.700
+ -11494972.432 6 -8957117.548 5 22351633.324 22351631.705 22351632.674
+ 38.200 33.000
+ -2975906.138 4 -2318887.715 3 24031594.375 24031590.864 24031593.608
+ 26.800 19.900
+ -18185538.879 7 -14170548.020 6 21262287.275 21262283.053 21262286.541
+ 44.600 39.800
+ 06 1 2 6 48 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13061423.327 6 -10177726.938 5 21990176.104 21990173.668 21990174.944
+ 40.900 33.100
+ -17482377.800 6 -13622630.217 7 20392504.012 20392501.077 20392502.993
+ 41.400 47.400
+ 2496312.704 3 1945176.215 2 24167130.474 24167129.802 24167130.925
+ 20.500 12.600
+ -12964030.891 7 -10101840.595 6 21795367.865 21795366.143 21795366.957
+ 42.800 39.400
+ -15017129.896 6 -11701653.921 5 21800853.503 21800851.841 21800853.250
+ 40.500 34.700
+ -11573210.669 6 -9018082.373 5 22336745.183 22336743.717 22336744.527
+ 38.300 33.400
+ -2972942.405 4 -2316578.311 3 24032158.080 24032154.052 24032157.400
+ 26.500 19.900
+ -18117380.430 7 -14117437.559 6 21275257.394 21275253.304 21275256.684
+ 44.400 39.900
+ 06 1 2 6 48 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13045748.259 6 -10165512.590 5 21993158.835 21993156.716 21993157.865
+ 41.100 34.000
+ -17484890.139 6 -13624587.886 7 20392025.981 20392022.943 20392024.923
+ 41.500 47.400
+ 2607266.922 3 2031633.981 2 24188246.121 24188243.612 24188244.752
+ 22.100 17.000
+ -13024935.532 7 -10149298.750 6 21783778.379 21783776.411 21783777.284
+ 42.900 39.700
+ -15066999.543 6 -11740513.384 5 21791363.791 21791362.015 21791363.522
+ 40.700 34.900
+ -11651150.571 6 -9078814.736 5 22321913.818 22321912.136 22321912.859
+ 37.800 33.600
+ -2969468.335 3 -2313871.242 3 24032818.766 24032816.020 24032817.900
+ 23.400 19.300
+ -18048806.242 7 -14064003.155 6 21288306.649 21288302.521 21288305.873
+ 44.400 39.600
+ 06 1 2 6 49 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13029454.127 6 -10152815.866 5 21996259.449 21996257.358 21996258.362
+ 40.900 33.800
+ -17487089.338 6 -13626301.548 7 20391607.418 20391604.516 20391606.382
+ 41.500 47.300
+ 2718367.570 3 2118205.815 2 24209387.830 24209385.955 24209386.090
+ 23.000 17.800
+ -13085652.696 7 -10196610.826 6 21772224.226 21772222.191 21772223.297
+ 43.300 39.400
+ -15116319.142 6 -11778944.229 5 21781978.895 21781977.000 21781978.364
+ 41.000 35.200
+ -11728791.171 6 -9139313.874 5 22307138.932 22307137.233 22307138.388
+ 38.200 32.600
+ -2965484.420 4 -2310766.885 3 24033577.315 24033573.907 24033576.640
+ 26.800 21.600
+ -17979817.728 7 -14010245.889 6 21301434.545 21301430.513 21301433.976
+ 44.300 39.300
+ 06 1 2 6 49 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -13012541.480 6 -10139637.181 5 21999477.769 21999475.785 21999476.838
+ 41.100 34.000
+ -17488975.355 6 -13627771.173 7 20391248.489 20391245.627 20391247.455
+ 41.600 47.400
+ 2829612.404 3 2204890.009 3 24230556.391 24230554.861 24230555.371
+ 23.800 18.600
+ -13146181.711 7 -10243776.292 6 21760705.657 21760704.123 21760704.724
+ 42.800 39.500
+ -15165086.778 6 -11816944.972 5 21772698.466 21772696.841 21772698.256
+ 41.200 35.400
+ -11806131.553 6 -9199579.101 5 22292422.152 22292419.882 22292421.331
+ 38.500 32.800
+ -2960991.344 4 -2307265.798 3 24034432.046 24034429.247 24034431.543
+ 26.500 22.100
+ -17910416.152 7 -13956166.762 6 21314641.338 21314637.195 21314640.671
+ 44.100 39.300
+ 06 1 2 6 50 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12995010.743 6 -10125976.863 5 22002814.306 22002811.820 22002813.075
+ 40.900 33.900
+ -17490547.776 6 -13628996.434 7 20390949.264 20390946.222 20390948.200
+ 41.500 47.100
+ 2940999.570 4 2291685.144 1 24251751.909 24251750.439 24251752.077
+ 25.900 9.000
+ -13206521.988 7 -10290794.683 6 21749223.131 21749221.710 21749222.344
+ 43.100 39.400
+ -15213300.130 6 -11854513.808 5 21763523.746 21763522.011 21763523.403
+ 41.300 35.200
+ -11883170.812 6 -9259609.661 5 22277761.730 22277760.055 22277761.019
+ 37.600 33.500
+ -2955989.969 4 -2303368.616 3 24035383.998 24035380.798 24035383.422
+ 26.500 19.900
+ -17840603.051 7 -13901766.959 6 21327926.402 21327922.341 21327925.661
+ 44.000 39.100
+ 06 1 2 6 50 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12976862.443 6 -10111835.333 5 22006267.623 22006265.117 22006266.458
+ 40.800 34.100
+ -17491806.395 6 -13629977.175 7 20390709.804 20390706.631 20390708.786
+ 41.700 47.100
+ 3052527.044 3 2378589.674 1 24272975.820 24272973.756 24272974.532
+ 22.600 11.000
+ -13266672.983 7 -10337665.587 6 21737776.982 21737775.321 21737776.235
+ 43.600 39.600
+ -15260957.173 6 -11891649.151 5 21754454.935 21754453.071 21754454.611
+ 41.100 34.700
+ -11959908.142 6 -9319404.961 5 22263159.245 22263157.134 22263158.627
+ 39.000 33.500
+ -2950480.995 4 -2299075.926 3 24036432.552 24036429.357 24036431.839
+ 28.100 20.500
+ -17770379.592 7 -13847047.409 6 21341289.501 21341285.388 21341288.891
+ 44.300 39.100
+ 06 1 2 6 51 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12958097.197 6 -10097213.063 5 22009838.160 22009836.053 22009837.057
+ 40.800 34.000
+ -17492750.902 6 -13630713.159 7 20390530.037 20390526.978 20390529.022
+ 41.800 47.000
+ 3164192.947 3 2465601.994 1 24294226.104 24294223.200 24294224.705
+ 22.100 6.500
+ -13326634.075 7 -10384388.516 6 21726366.592 21726365.317 21726365.724
+ 43.100 40.000
+ -15308055.891 6 -11928349.432 5 21745492.419 21745490.252 21745491.981
+ 41.100 34.600
+ -12036342.555 6 -9378964.234 5 22248614.197 22248612.304 22248613.572
+ 39.400 34.300
+ -2944464.574 4 -2294387.825 2 24037576.967 24037573.507 24037576.334
+ 25.600 17.800
+ -17699746.939 7 -13792009.002 6 21354730.226 21354726.347 21354729.777
+ 44.200 39.100
+ 06 1 2 6 51 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12938715.420 6 -10082110.375 5 22013526.274 22013524.493 22013525.214
+ 40.500 34.700
+ -17493380.971 6 -13631204.121 7 20390410.194 20390407.121 20390409.218
+ 41.800 47.100
+ 3275994.922 3 2552720.364 2 24315500.337 24315498.800 24315499.528
+ 23.400 15.100
+ -13386404.553 7 -10430962.906 6 21714992.751 21714991.118 21714991.876
+ 43.100 39.500
+ -15354594.242 6 -11964613.068 5 21736636.177 21736634.265 21736636.008
+ 41.200 34.500
+ -12112473.179 6 -9438286.780 5 22234126.615 22234125.112 22234126.086
+ 38.900 34.300
+ -2937941.850 4 -2289305.164 3 24038818.555 24038815.108 24038817.983
+ 26.200 19.900
+ -17628706.539 7 -13736652.867 6 21368248.706 21368245.049 21368248.309
+ 44.000 39.400
+ 06 1 2 6 52 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12918717.793 6 -10066527.804 5 22017332.104 22017330.132 22017330.929
+ 40.700 34.400
+ -17493696.312 6 -13631449.843 7 20390350.367 20390347.126 20390349.306
+ 41.900 47.100
+ 3387931.151 3 2639943.378 2 24336800.310 24336800.080 24336800.382
+ 22.100 12.600
+ -13445983.667 7 -10477388.192 6 21703655.443 21703653.493 21703654.410
+ 43.400 39.700
+ -15400570.183 6 -12000438.457 5 21727887.651 21727885.351 21727887.183
+ 41.400 34.600
+ -12188299.072 6 -9497371.874 5 22219697.740 22219695.504 22219697.022
+ 38.400 33.900
+ -2930913.560 4 -2283828.613 3 24040156.148 24040152.709 24040155.266
+ 25.300 19.900
+ -17557259.709 7 -13680980.027 6 21381844.716 21381840.851 21381844.230
+ 44.200 39.300
+ 06 1 2 6 52 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12898104.930 6 -10050465.835 5 22021254.497 22021252.578 22021253.336
+ 40.300 34.400
+ -17493697.067 6 -13631450.434 7 20390349.978 20390347.057 20390348.981
+ 41.700 47.200
+ 3500000.066 3 2727269.761 2 24358127.529 24358126.401 24358126.686
+ 21.600 15.100
+ -13505370.902 7 -10523663.960 6 21692354.100 21692352.589 21692353.225
+ 43.200 40.000
+ -15445981.649 6 -12035823.998 5 21719246.159 21719243.784 21719245.732
+ 41.800 34.700
+ -12263819.434 6 -9556218.906 5 22205326.929 22205324.673 22205326.098
+ 39.000 34.000
+ -2923380.609 4 -2277958.777 3 24041589.013 24041586.360 24041588.411
+ 26.200 19.900
+ -17485407.540 7 -13624991.348 6 21395517.515 21395513.900 21395517.183
+ 44.000 39.100
+ 06 1 2 6 53 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12876877.400 6 -10033924.901 5 22025293.466 22025292.088 22025292.524
+ 40.300 34.400
+ -17493382.746 6 -13631205.503 7 20390409.854 20390406.790 20390408.856
+ 41.900 47.300
+ 3612199.400 3 2814697.721 3 24379478.845 24379477.189 24379476.691
+ 18.600 18.600
+ -13564565.574 7 -10569789.674 6 21681089.747 21681088.370 21681088.961
+ 43.400 40.200
+ -15490826.626 6 -12070768.118 5 21710712.002 21710710.177 21710711.955
+ 41.800 34.600
+ -12339033.371 6 -9614827.147 5 22191013.794 22191012.092 22191013.162
+ 39.000 34.700
+ -2915343.533 4 -2271696.130 2 24043118.850 24043115.592 24043118.263
+ 27.600 17.800
+ -17413151.945 7 -13568688.294 6 21409266.949 21409263.550 21409266.761
+ 43.800 38.800
+ 06 1 2 6 53 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12855035.875 6 -10016905.535 5 22029450.125 22029448.323 22029448.935
+ 40.400 34.100
+ -17492753.120 6 -13630714.885 7 20390529.684 20390526.532 20390528.668
+ 41.600 47.100
+ 3724527.191 2 2902225.797 2 24400852.018 24400852.113 24400851.700
+ 16.100 16.100
+ -13623567.018 7 -10615764.820 6 21669862.321 21669860.655 21669861.483
+ 43.600 40.300
+ -15535103.160 7 -12105269.304 5 21702286.601 21702284.587 21702286.405
+ 42.100 34.400
+ -12413939.990 6 -9673195.928 5 22176759.695 22176757.870 22176759.024
+ 39.200 35.400
+ -2906803.326 4 -2265041.421 2 24044743.586 24044740.266 24044743.051
+ 27.100 16.100
+ -17340494.031 7 -13512071.757 6 21423093.721 21423089.980 21423093.313
+ 43.700 38.600
+ 06 1 2 6 54 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12832581.133 6 -9999408.326 5 22033723.007 22033721.176 22033722.101
+ 40.800 34.000
+ -17491808.124 6 -13629978.525 7 20390709.570 20390706.467 20390708.479
+ 41.700 47.200
+ 3836981.745 3 2989852.598 2 24422252.352 24422251.645 24422251.464
+ 21.100 15.100
+ -13682374.470 7 -10661588.802 6 21658671.739 21658669.818 21658670.837
+ 43.700 40.200
+ -15578809.425 7 -12139326.119 5 21693969.707 21693967.553 21693969.406
+ 42.100 34.600
+ -12488538.488 6 -9731324.619 5 22162564.082 22162562.247 22162563.278
+ 39.600 35.200
+ -2897760.874 4 -2257995.344 3 24046464.771 24046461.505 24046464.122
+ 26.500 20.500
+ -17267434.979 7 -13455142.639 6 21436996.166 21436992.693 21436995.964
+ 43.700 38.600
+ 06 1 2 6 54 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12809513.757 6 -9981433.746 5 22038112.916 22038110.770 22038111.867
+ 40.800 34.100
+ -17490547.220 6 -13628996.000 7 20390949.354 20390946.528 20390948.370
+ 41.800 47.300
+ 3949560.925 3 3077576.584 3 24443676.815 24443674.651 24443675.378
+ 21.100 18.600
+ -13740987.299 7 -10707261.131 6 21647518.131 21647516.015 21647517.147
+ 43.500 39.800
+ -15621943.368 6 -12172936.978 5 21685761.651 21685759.555 21685761.117
+ 41.700 35.200
+ -12562827.865 6 -9789212.431 5 22148427.152 22148425.371 22148426.356
+ 39.100 35.300
+ -2888217.053 4 -2250558.626 2 24048281.352 24048277.494 24048280.575
+ 27.900 13.900
+ -17193976.349 7 -13397902.169 6 21450974.629 21450971.271 21450974.505
+ 43.200 38.400
+ 06 1 2 6 55 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12785834.500 6 -9962982.374 5 22042619.217 22042616.712 22042617.968
+ 40.600 34.100
+ -17488970.186 6 -13627767.137 7 20391249.422 20391246.505 20391248.519
+ 41.700 47.200
+ 4062262.671 3 3165396.051 2 24465122.973 24465120.578 24465121.585
+ 19.900 13.900
+ -13799404.938 7 -10752781.371 6 21636401.654 21636399.543 21636400.713
+ 43.800 39.800
+ -15664503.190 6 -12206100.482 5 21677662.686 21677660.838 21677662.238
+ 41.800 35.200
+ -12636807.622 6 -9846858.976 5 22134349.301 22134347.544 22134348.615
+ 39.500 35.500
+ -2878172.584 4 -2242731.766 2 24050192.231 24050188.550 24050191.445
+ 25.900 17.000
+ -17120119.507 7 -13340351.404 6 21465029.242 21465025.810 21465029.032
+ 43.400 38.000
+ 06 1 2 6 55 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12761544.159 6 -9944054.838 5 22047241.144 22047239.036 22047240.052
+ 40.700 34.400
+ -17487076.732 6 -13626291.718 7 20391609.913 20391606.812 20391608.928
+ 41.900 47.300
+ 4175085.043 3 3253309.595 1 24486591.123 24486590.322 24486591.021
+ 22.600 11.000
+ -13857626.767 7 -10798149.024 6 21625322.232 21625320.535 21625321.274
+ 43.600 40.600
+ -15706486.929 6 -12238815.070 5 21669673.094 21669671.753 21669672.819
+ 41.600 35.500
+ -12710476.769 6 -9904263.493 5 22120330.672 22120328.576 22120330.065
+ 40.000 35.500
+ -2867628.401 4 -2234515.537 2 24052198.749 24052195.460 24052198.176
+ 27.900 17.000
+ -17045866.064 7 -13282491.593 6 21479159.891 21479155.950 21479159.227
+ 43.400 38.400
+ 06 1 2 6 56 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12736643.509 6 -9924651.732 5 22051979.326 22051977.333 22051978.283
+ 40.600 33.800
+ -17484866.931 6 -13624569.791 7 20392030.339 20392027.434 20392029.369
+ 41.900 47.300
+ 4288026.044 3 3341315.513 1 24508083.650 24508082.733 24508083.284
+ 22.600 9.000
+ -13915652.025 7 -10843363.509 6 21614280.434 21614278.565 21614279.561
+ 44.100 40.000
+ -15747892.851 7 -12271079.409 5 21661793.875 21661792.301 21661793.727
+ 42.100 35.400
+ -12783834.499 6 -9961425.347 6 22106371.404 22106369.076 22106370.634
+ 40.200 36.000
+ -2856585.456 4 -2225910.626 2 24054299.843 24054296.447 24054299.168
+ 27.100 17.000
+ -16971217.398 7 -13224323.821 6 21493365.039 21493361.136 21493364.331
+ 43.100 38.100
+ 06 1 2 6 56 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12711133.386 6 -9904773.713 5 22056834.046 22056831.754 22056832.861
+ 40.500 33.500
+ -17482340.167 6 -13622600.877 7 20392511.091 20392508.253 20392510.105
+ 41.900 47.300
+ 4401083.615 3 3429412.309 2 24529600.616 24529596.878 24529598.380
+ 18.600 12.600
+ -13973480.152 7 -10888424.388 6 21603275.849 21603274.078 21603274.958
+ 43.900 40.000
+ -15788719.007 7 -12302891.974 5 21654024.920 21654023.122 21654024.670
+ 42.100 35.400
+ -12856879.979 6 -10018343.877 6 22092470.957 22092469.264 22092470.366
+ 40.300 36.700
+ -2845044.596 4 -2216917.722 2 24056496.368 24056492.796 24056495.776
+ 29.200 17.800
+ -16896174.960 7 -13165849.211 6 21507645.361 21507640.997 21507644.461
+ 42.900 37.700
+ 06 1 2 6 57 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12685014.673 6 -9884421.470 5 22061804.543 22061802.299 22061803.275
+ 40.400 34.000
+ -17479496.577 7 -13620385.091 7 20393052.291 20393049.310 20393051.342
+ 42.000 47.300
+ 4514255.696 2 3517598.219 2 24551134.617 24551132.387 24551133.389
+ 17.800 16.100
+ -14031110.469 7 -10933331.123 6 21592309.062 21592307.563 21592308.301
+ 43.900 40.200
+ -15828963.620 6 -12334251.400 5 21646366.580 21646364.613 21646366.397
+ 41.900 35.100
+ -12929612.498 6 -10075018.528 6 22078630.365 22078628.554 22078629.762
+ 40.300 36.500
+ -2833006.886 4 -2207537.694 2 24058787.499 24058783.464 24058786.753
+ 28.600 17.000
+ -16820740.274 7 -13107068.947 6 21522000.328 21521995.878 21521999.490
+ 43.200 37.700
+ 06 1 2 6 57 30.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12658288.139 6 -9863595.605 5 22066890.284 22066888.108 22066889.062
+ 40.600 34.000
+ -17476335.763 6 -13617922.120 7 20393653.749 20393650.777 20393652.735
+ 41.900 47.200
+ 4627540.469 3 3605871.997 2 24572690.292 24572690.602 24572690.386
+ 19.300 15.100
+ -14088542.255 7 -10978083.165 6 21581380.577 21581378.749 21581379.620
+ 44.100 40.600
+ -15868624.858 7 -12365156.254 5 21638819.674 21638817.456 21638819.367
+ 42.100 35.200
+ -13002031.153 6 -10131448.639 6 22064849.609 22064847.641 22064848.866
+ 39.800 36.100
+ -2820473.041 4 -2197771.080 3 24061172.369 24061168.872 24061171.490
+ 28.600 18.600
+ -16744914.626 7 -13047984.043 6 21536429.559 21536425.141 21536428.636
+ 43.100 38.200
+ 06 1 2 6 58 0.0000000 0 8G 5G14G18G 1G30G25G11G22
+ -12630954.672 6 -9842296.798 5 22072091.560 22072089.474 22072090.438
+ 40.600 34.100
+ -17472857.329 6 -13615211.657 7 20394315.566 20394312.705 20394314.607
+ 41.900 47.200
+ 4740936.011 2 3694232.086 2 24594268.475 24594268.362 24594268.196
+ 17.800 12.600
+ -14145774.851 7 -11022679.993 6 21570489.574 21570487.837 21570488.605
+ 44.300 41.000
+ -15907701.180 7 -12395605.324 5 21631383.347 21631381.472 21631383.141
+ 42.100 35.400
+ -13074135.301 6 -10187633.674 6 22051128.346 22051126.771 22051127.599
+ 39.800 36.500
+ -2807444.512 4 -2187618.993 2 24063651.288 24063647.906 24063650.577
+ 26.800 17.800
+ -16668699.587 7 -12988595.733 6 21550932.535 21550928.471 21550931.789
+ 43.100 38.300
+ 06 1 2 6 58 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12603015.305 6 -9820525.860 5 22077407.891 22077406.001 22077406.800
+ 40.200 33.600
+ -17469061.318 6 -13612253.723 7 20395038.041 20395035.095 20395036.974
+ 41.600 47.200
+ -14202807.470 7 -11067120.991 6 21559636.114 21559634.769 21559635.472
+ 44.100 40.700
+ -15946190.613 7 -12425597.067 5 21624059.164 21624057.264 21624058.885
+ 42.100 35.200
+ -13145924.054 6 -10243572.938 6 22037467.512 22037465.780 22037466.828
+ 40.200 36.400
+ -2793922.199 4 -2177082.122 2 24066224.783 24066221.135 24066224.136
+ 29.200 15.100
+ -16592096.864 7 -12928905.323 6 21565509.408 21565505.346 21565508.766
+ 43.100 37.600
+ 06 1 2 6 59 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12574470.854 6 -9798283.431 5 22082840.027 22082837.867 22082838.908
+ 40.300 33.800
+ -17464947.246 6 -13609047.953 7 20395821.085 20395818.021 20395819.977
+ 41.800 47.200
+ -14259639.522 7 -11111405.706 6 21548821.603 21548820.000 21548820.784
+ 44.100 40.700
+ -15984091.569 7 -12455130.267 5 21616846.923 21616844.770 21616846.607
+ 42.100 34.800
+ -13217396.689 6 -10299265.882 6 22023866.880 22023864.832 22023866.081
+ 40.500 36.200
+ -2779906.866 4 -2166161.111 2 24068891.795 24068887.647 24068891.121
+ 29.200 16.100
+ -16515107.405 7 -12868913.548 6 21580159.874 21580155.945 21580159.350
+ 43.200 37.600
+ 06 1 2 6 59 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12545322.342 6 -9775570.302 5 22088386.397 22088384.664 22088385.494
+ 40.100 33.600
+ -17460514.808 6 -13605594.108 7 20396664.214 20396661.419 20396663.303
+ 41.700 47.100
+ -14316270.363 7 -11155533.632 6 21538045.035 21538043.741 21538044.272
+ 44.100 41.200
+ -16021402.257 7 -12484203.521 5 21609746.822 21609744.809 21609746.523
+ 42.100 35.300
+ -13288552.721 6 -10354712.130 6 22010326.211 22010324.496 22010325.564
+ 40.700 37.200
+ -2765399.802 4 -2154856.881 2 24071652.237 24071649.011 24071651.687
+ 28.600 16.100
+ -16437732.973 7 -12808621.804 6 21594883.957 21594879.983 21594883.324
+ 43.100 37.700
+ 06 1 2 7 0 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12515570.694 6 -9752387.201 5 22094048.630 22094046.210 22094047.376
+ 40.400 33.500
+ -17455764.041 6 -13601892.209 7 20397568.418 20397565.394 20397567.378
+ 41.600 47.000
+ -14372699.253 7 -11199504.191 6 21527307.251 21527305.448 21527306.391
+ 44.300 40.900
+ -16058120.995 7 -12512815.512 5 21602759.506 21602757.469 21602759.069
+ 42.200 35.200
+ -13359390.938 6 -10409910.728 6 21996846.186 21996844.519 21996845.594
+ 40.900 37.300
+ -2750401.915 4 -2143170.221 2 24074506.527 24074502.526 24074505.763
+ 28.800 15.100
+ -16359975.267 7 -12748031.401 6 21609680.805 21609676.777 21609680.041
+ 42.600 37.700
+ 06 1 2 7 0 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12485216.991 6 -9728734.964 5 22099824.598 22099822.562 22099823.451
+ 40.200 33.400
+ -17450694.665 6 -13597942.039 7 20398533.190 20398530.123 20398532.099
+ 41.800 47.100
+ -14428925.477 7 -11243316.831 6 21516607.492 21516605.808 21516606.682
+ 44.300 40.700
+ -16094246.244 7 -12540965.042 5 21595884.805 21595882.883 21595884.596
+ 42.100 35.200
+ -13429910.943 6 -10464861.366 6 21983426.479 21983424.753 21983425.898
+ 40.900 36.700
+ -2734914.408 4 -2131102.026 3 24077453.728 24077449.813 24077453.127
+ 28.400 18.600
+ -16281836.022 7 -12687143.699 6 21624550.453 21624545.961 21624549.536
+ 42.700 37.200
+ 06 1 2 7 1 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12454262.120 6 -9704614.290 5 22105715.303 22105712.799 22105713.947
+ 40.100 32.800
+ -17445306.230 6 -13593743.253 7 20399558.404 20399555.380 20399557.452
+ 41.900 46.900
+ -14484948.272 7 -11286970.958 6 21505946.503 21505944.979 21505945.757
+ 44.100 40.500
+ -16129776.364 7 -12568650.839 5 21589123.618 21589121.919 21589123.370
+ 42.200 35.300
+ -13500111.963 6 -10519563.448 6 21970067.681 21970065.793 21970067.194
+ 41.400 36.600
+ -2718938.397 4 -2118653.209 2 24080493.388 24080490.119 24080493.002
+ 26.800 16.100
+ -16203316.492 7 -12625959.675 6 21639492.104 21639487.774 21639491.419
+ 42.900 37.400
+ 06 1 2 7 1 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12422707.296 6 -9680026.121 5 22111719.844 22111717.574 22111718.689
+ 40.000 32.800
+ -17439598.712 7 -13589295.832 7 20400644.565 20400641.473 20400643.498
+ 42.100 47.000
+ -14540766.986 7 -11330466.058 6 21495324.703 21495323.017 21495323.851
+ 44.300 40.600
+ -16164709.662 7 -12595871.577 5 21582476.102 21582474.430 21582475.876
+ 42.400 35.800
+ -13569993.223 6 -10574016.373 6 21956770.014 21956767.961 21956769.266
+ 41.400 36.800
+ -2702475.232 4 -2105824.755 2 24083626.468 24083623.016 24083625.663
+ 25.600 17.800
+ -16124418.246 7 -12564480.548 6 21654505.839 21654501.786 21654505.305
+ 42.900 37.300
+ 06 1 2 7 2 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12390553.590 6 -9654971.277 5 22117838.267 22117835.896 22117837.055
+ 40.000 32.700
+ -17433571.802 6 -13584599.533 7 20401791.496 20401788.468 20401790.483
+ 41.900 47.000
+ -14596380.951 7 -11373801.614 6 21484741.780 21484739.984 21484740.914
+ 44.400 40.600
+ -16199044.725 7 -12622626.157 6 21575942.356 21575940.797 21575942.161
+ 42.700 36.000
+ -13639554.125 6 -10628219.656 6 21943532.990 21943530.791 21943532.169
+ 41.200 36.800
+ -2685525.715 4 -2092617.360 3 24086852.172 24086848.859 24086851.096
+ 25.600 19.300
+ -16045142.778 7 -12502707.491 6 21669591.651 21669587.584 21669590.847
+ 42.600 37.700
+ 06 1 2 7 2 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12357801.983 6 -9629450.537 5 22124070.656 22124068.354 22124069.680
+ 40.000 33.000
+ -17427225.221 6 -13579654.142 7 20402999.149 20402996.218 20402998.212
+ 41.900 46.900
+ -14651789.462 7 -11416977.078 6 21474198.154 21474196.198 21474197.292
+ 44.600 41.100
+ -16232779.953 7 -12648913.342 5 21569523.016 21569521.071 21569522.676
+ 42.700 35.900
+ -13708793.753 6 -10682172.601 6 21930357.201 21930354.907 21930356.468
+ 41.600 37.600
+ -2668091.092 4 -2079031.944 3 24090169.459 24090166.576 24090169.019
+ 26.200 19.300
+ -15965491.892 7 -12440641.897 6 21684748.423 21684744.451 21684747.832
+ 42.400 36.800
+ 06 1 2 7 3 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12324453.714 6 -9603464.875 5 22130416.641 22130414.608 22130415.537
+ 40.000 33.100
+ -17420558.762 7 -13574459.495 7 20404267.747 20404264.656 20404266.797
+ 42.000 46.900
+ -14706991.696 7 -11459991.809 6 21463693.260 21463691.705 21463692.439
+ 44.700 41.100
+ -16265913.874 7 -12674731.969 5 21563217.854 21563215.845 21563217.402
+ 42.700 35.900
+ -13777711.562 6 -10735874.769 6 21917242.217 21917240.482 21917241.451
+ 41.400 37.400
+ -2650172.688 4 -2065069.534 3 24093579.040 24093576.571 24093578.602
+ 25.600 20.500
+ -15885467.459 7 -12378285.223 6 21699976.871 21699972.671 21699976.082
+ 42.200 37.000
+ 06 1 2 7 3 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12290509.921 6 -9577015.166 5 22136876.007 22136873.565 22136874.867
+ 40.200 32.400
+ -17413572.179 6 -13569015.406 7 20405597.297 20405594.140 20405596.229
+ 41.900 46.700
+ -14761986.913 7 -11502845.223 6 21453227.985 21453226.555 21453227.128
+ 44.500 41.500
+ -16298444.946 7 -12700080.848 6 21557027.236 21557025.272 21557026.938
+ 42.500 36.100
+ -13846306.985 7 -10789325.734 6 21904189.089 21904186.795 21904188.360
+ 42.000 36.500
+ -2631771.621 4 -2050731.049 3 24097080.978 24097077.915 24097080.331
+ 25.600 21.100
+ -15805070.552 7 -12315638.317 6 21715275.788 21715271.769 21715275.039
+ 42.100 37.200
+ 06 1 2 7 4 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12255971.728 6 -9550102.289 5 22143448.345 22143446.363 22143447.271
+ 40.100 33.200
+ -17406265.248 6 -13563321.693 7 20406987.625 20406984.678 20406986.687
+ 41.900 46.700
+ -14816774.646 7 -11545536.956 6 21442802.133 21442800.706 21442801.299
+ 44.600 41.300
+ -16330371.530 7 -12724958.701 6 21550951.747 21550949.962 21550951.570
+ 42.800 36.000
+ -13914579.215 6 -10842524.877 6 21891196.977 21891194.967 21891196.358
+ 41.500 36.500
+ -2612889.175 4 -2036017.478 3 24100674.209 24100671.229 24100673.451
+ 24.900 22.100
+ -15724302.689 7 -12252702.354 6 21730645.170 21730641.395 21730644.653
+ 42.000 37.000
+ 06 1 2 7 4 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12220840.389 6 -9522727.219 5 22150133.478 22150131.677 22150132.583
+ 40.300 33.400
+ -17398637.749 7 -13557378.191 7 20408439.091 20408436.148 20408438.160
+ 42.100 46.600
+ -14871354.040 7 -11588066.354 6 21432416.206 21432414.407 21432415.436
+ 45.000 40.900
+ -16361692.350 7 -12749364.520 6 21544991.302 21544989.782 21544991.265
+ 42.800 36.200
+ -13982527.651 6 -10895471.693 6 21878266.857 21878265.255 21878266.263
+ 41.600 37.500
+ -2593526.527 4 -2020929.738 3 24104357.999 24104355.437 24104357.688
+ 24.200 22.100
+ -15643165.960 6 -12189478.965 6 21746084.689 21746081.271 21746084.421
+ 41.900 36.700
+ 06 1 2 7 5 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12185117.169 6 -9494890.944 5 22156931.624 22156929.482 22156930.445
+ 40.000 33.400
+ -17390689.614 7 -13551184.839 7 20409951.481 20409948.583 20409950.591
+ 42.200 46.600
+ -14925724.322 7 -11630432.815 6 21422069.960 21422068.085 21422069.096
+ 45.100 41.100
+ -16392405.966 7 -12773297.200 6 21539147.039 21539145.129 21539146.643
+ 42.800 36.500
+ -14050151.520 6 -10948165.599 6 21865398.437 21865396.862 21865397.651
+ 41.100 37.700
+ -2573685.029 3 -2005468.810 3 24108134.065 24108131.620 24108133.202
+ 23.000 22.600
+ -15561661.792 7 -12125969.259 6 21761594.465 21761590.920 21761594.268
+ 42.000 36.500
+ 06 1 2 7 5 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12148803.234 6 -9466594.365 5 22163841.530 22163839.625 22163840.631
+ 39.700 32.700
+ -17382420.377 7 -13544741.278 7 20411525.437 20411522.191 20411524.431
+ 42.200 46.600
+ -14979884.788 7 -11672635.776 6 21411763.586 21411761.758 21411762.728
+ 44.900 41.500
+ -16422510.974 7 -12796755.632 6 21533418.400 21533416.464 21533417.970
+ 42.400 36.000
+ -14117450.347 7 -11000606.228 6 21852592.101 21852590.194 21852591.370
+ 42.100 37.500
+ -2553366.004 4 -1989635.835 3 24112000.765 24111998.183 24112000.089
+ 24.200 21.100
+ -15479791.762 6 -12062174.453 6 21777173.783 21777170.526 21777173.555
+ 41.900 36.700
+ 06 1 2 7 6 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12111899.859 6 -9437838.499 5 22170864.534 22170862.106 22170863.088
+ 39.500 33.100
+ -17373829.754 7 -13538047.284 7 20413160.200 20413156.978 20413159.128
+ 42.200 46.700
+ -15033834.788 7 -11714674.739 6 21401497.234 21401495.609 21401496.319
+ 44.800 41.700
+ -16452005.964 7 -12819738.740 6 21527805.677 21527803.612 21527805.416
+ 42.700 36.200
+ -14184423.378 7 -11052792.984 6 21839847.393 21839845.771 21839846.828
+ 42.300 37.900
+ -2532570.531 4 -1973431.561 3 24115958.596 24115955.301 24115957.786
+ 25.300 22.100
+ -15397557.746 6 -11998096.032 6 21792823.145 21792819.195 21792822.410
+ 41.900 36.600
+ 06 1 2 7 6 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -12074408.373 6 -9408624.351 5 22177998.523 22177996.699 22177997.520
+ 39.700 33.200
+ -17364917.566 7 -13531102.724 7 20414856.035 20414852.912 20414854.936
+ 42.200 46.600
+ -15087573.590 7 -11756549.124 6 21391271.119 21391269.473 21391270.208
+ 45.100 41.900
+ -16480889.627 7 -12842245.473 6 21522309.161 21522307.246 21522308.871
+ 42.900 36.200
+ -14251070.100 7 -11104725.478 6 21827165.278 21827162.954 21827164.530
+ 42.400 37.100
+ -2511300.200 3 -1956857.305 3 24120005.587 24120002.844 24120004.537
+ 22.100 22.600
+ -15314961.468 6 -11933735.316 6 21808540.886 21808536.578 21808540.142
+ 41.900 36.400
+ 06 1 2 7 7 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -12036330.020 6 -9378952.908 5 22185244.990 22185242.911 22185243.969
+ 40.200 33.000
+ -17355683.692 6 -13523907.495 7 20416612.965 20416609.975 20416611.960
+ 41.900 46.500
+ -15141100.316 7 -11798258.262 6 21381085.209 21381083.435 21381084.433
+ 45.100 41.400
+ -16509160.650 7 -12864274.829 5 21516928.958 21516927.311 21516928.906
+ 43.000 35.900
+ -14317389.861 7 -11156403.209 6 21814544.642 21814542.705 21814544.016
+ 42.300 37.100
+ -2489556.192 3 -1939913.902 3 24124143.722 24124140.660 24124142.670
+ 23.400 22.100
+ -15232004.361 7 -11869093.437 5 21824327.041 21824322.796 21824326.407
+ 42.100 35.800
+ 06 1 2 7 7 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11997666.192 6 -9348825.246 5 22192602.298 22192600.141 22192601.221
+ 39.700 32.800
+ -17346127.990 7 -13516461.489 7 20418431.526 20418428.416 20418430.435
+ 42.000 46.500
+ -15194414.118 7 -11839801.487 6 21370940.159 21370938.093 21370939.194
+ 45.100 41.200
+ -16536817.675 7 -12885825.751 6 21511666.642 21511664.439 21511666.201
+ 43.200 36.100
+ -14383382.060 7 -11207825.686 6 21801986.675 21801985.026 21801985.947
+ 42.200 37.600
+ -2467339.928 3 -1922602.582 3 24128371.516 24128368.027 24128370.694
+ 23.800 21.600
+ -15148688.040 6 -11804171.652 5 21840181.687 21840177.231 21840180.908
+ 41.900 35.600
+ 06 1 2 7 8 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11958418.261 6 -9318242.447 5 22200071.053 22200068.923 22200069.814
+ 39.400 33.000
+ -17336250.157 7 -13508764.476 7 20420311.134 20420308.164 20420310.042
+ 42.100 46.500
+ -15247514.276 7 -11881178.231 6 21360835.335 21360833.690 21360834.551
+ 45.300 41.700
+ -16563859.519 7 -12906897.316 6 21506520.783 21506518.643 21506520.547
+ 43.400 36.200
+ -14449046.041 7 -11258992.423 6 21789491.322 21789489.648 21789490.724
+ 42.400 37.700
+ -2444652.967 3 -1904924.427 3 24132687.757 24132685.529 24132687.482
+ 22.100 22.600
+ -15065014.493 7 -11738971.512 5 21856103.708 21856100.029 21856103.371
+ 42.000 35.800
+ 06 1 2 7 8 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11918587.520 6 -9287205.504 5 22207650.148 22207648.360 22207649.127
+ 39.400 32.800
+ -17326049.952 7 -13500816.263 7 20422252.006 20422249.181 20422251.130
+ 42.000 46.600
+ -15300400.066 7 -11922387.939 6 21350771.627 21350769.837 21350770.709
+ 45.200 41.900
+ -16590284.947 7 -12927488.554 6 21501492.033 21501489.949 21501491.765
+ 43.100 36.200
+ -14514381.230 7 -11309902.962 6 21777058.927 21777056.841 21777058.183
+ 43.200 38.100
+ -2421496.601 4 -1886880.520 3 24137094.813 24137091.978 24137094.187
+ 24.200 23.000
+ -14980985.425 6 -11673494.337 6 21872094.098 21872090.302 21872093.550
+ 41.400 36.400
+ 06 1 2 7 9 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11878175.384 6 -9255715.525 5 22215340.650 22215338.441 22215339.609
+ 39.700 33.200
+ -17315527.065 7 -13492616.612 7 20424254.623 20424251.564 20424253.678
+ 42.000 46.500
+ -15353070.621 7 -11963429.927 6 21340748.770 21340746.914 21340747.992
+ 45.600 41.700
+ -16616092.692 7 -12947598.468 6 21496580.747 21496578.870 21496580.463
+ 42.800 36.500
+ -14579387.035 7 -11360556.829 6 21764688.501 21764686.683 21764687.713
+ 42.900 38.100
+ -2397871.967 3 -1868471.714 4 24141590.850 24141587.832 24141589.990
+ 23.800 24.200
+ -14896602.254 6 -11607741.246 5 21888151.487 21888147.611 21888150.982
+ 41.400 35.600
+ 06 1 2 7 9 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11837183.375 6 -9223773.708 5 22223141.431 22223139.115 22223140.095
+ 39.700 32.800
+ -17304681.309 6 -13484165.382 7 20426318.281 20426315.461 20426317.365
+ 41.900 46.500
+ -15405525.238 7 -12004303.658 6 21330767.133 21330764.988 21330766.215
+ 45.500 41.400
+ -16641281.660 7 -12967226.229 6 21491787.604 21491785.714 21491787.192
+ 42.900 36.600
+ -14644062.995 7 -11410953.661 6 21752380.813 21752379.245 21752380.141
+ 42.700 38.100
+ -2373780.772 4 -1849699.381 3 24146174.849 24146172.099 24146174.437
+ 24.200 23.400
+ -14811867.099 6 -11541713.875 5 21904276.468 21904272.315 21904275.722
+ 41.100 35.800
+ 06 1 2 7 10 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11795612.835 6 -9191381.088 5 22231051.778 22231049.721 22231050.485
+ 39.100 33.100
+ -17293512.556 6 -13475462.468 7 20428443.782 20428440.870 20428442.777
+ 41.800 46.400
+ -15457763.148 7 -12045008.526 6 21320826.472 21320824.533 21320825.594
+ 45.700 41.600
+ -16665850.534 7 -12986370.803 6 21487112.012 21487110.508 21487111.831
+ 42.900 36.800
+ -14708408.502 7 -11461093.010 6 21740136.292 21740134.478 21740135.733
+ 43.000 37.700
+ -2349224.512 4 -1830564.639 4 24150847.667 24150845.140 24150847.439
+ 24.600 24.600
+ -14726781.609 6 -11475413.525 5 21920467.478 21920463.580 21920466.895
+ 41.100 35.500
+ 06 1 2 7 10 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11753465.323 6 -9158538.862 5 22239072.304 22239070.412 22239071.128
+ 39.100 33.200
+ -17282020.590 7 -13466507.703 7 20430630.584 20430627.701 20430629.621
+ 42.000 46.400
+ -15509783.697 7 -12085544.017 7 21310927.171 21310925.527 21310926.364
+ 45.600 42.000
+ -16689798.248 7 -13005031.356 6 21482555.210 21482553.372 21482554.805
+ 42.800 36.600
+ -14772422.977 7 -11510974.428 6 21727955.180 21727952.839 21727954.339
+ 43.400 38.000
+ -2324204.669 4 -1811068.661 4 24155609.115 24155606.172 24155608.484
+ 24.200 24.600
+ -14641347.488 6 -11408841.520 5 21936725.238 21936721.270 21936724.521
+ 40.900 35.800
+ 06 1 2 7 11 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11710742.269 6 -9125248.178 5 22247202.093 22247199.957 22247200.898
+ 38.900 32.700
+ -17270205.041 7 -13457300.783 7 20432879.115 20432876.147 20432878.002
+ 42.000 46.300
+ -15561586.134 7 -12125909.552 6 21301069.766 21301067.702 21301068.774
+ 45.500 41.800
+ -16713123.633 7 -13023206.961 6 21478116.457 21478114.629 21478116.042
+ 43.100 37.000
+ -14836105.887 7 -11560597.477 6 21715836.531 21715834.283 21715835.736
+ 43.300 38.600
+ -2298722.447 4 -1791212.435 3 24160458.568 24160455.230 24160457.587
+ 25.300 23.400
+ -14555566.429 6 -11341999.164 5 21953049.126 21953044.912 21953048.163
+ 40.600 35.600
+ 06 1 2 7 11 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11667445.220 6 -9091510.215 5 22255440.924 22255438.993 22255440.014
+ 39.300 32.100
+ -17258065.726 7 -13447841.572 7 20435189.170 20435186.206 20435188.111
+ 42.000 46.300
+ -15613169.713 7 -12166104.548 6 21291253.264 21291251.600 21291252.562
+ 45.500 41.700
+ -16735825.701 7 -13040896.873 6 21473796.150 21473794.461 21473796.015
+ 43.100 36.600
+ -14899456.650 7 -11609961.704 6 21703781.068 21703779.056 21703780.291
+ 42.800 38.100
+ -2272779.506 4 -1770997.160 4 24165395.054 24165392.392 24165394.638
+ 26.200 24.200
+ -14469440.173 6 -11274887.822 5 21969438.637 21969434.083 21969437.652
+ 40.900 35.300
+ 06 1 2 7 12 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11623575.666 6 -9057326.144 5 22263789.501 22263787.085 22263788.321
+ 39.000 32.100
+ -17245602.470 7 -13438129.943 7 20437560.774 20437557.865 20437559.823
+ 42.100 46.300
+ -15664533.581 7 -12206128.342 6 21281479.159 21281477.323 21281478.318
+ 45.300 41.500
+ -16757903.427 7 -13058100.291 6 21469595.165 21469593.213 21469594.875
+ 43.100 36.800
+ -14962474.946 7 -11659066.856 6 21691789.260 21691787.146 21691788.599
+ 43.300 38.600
+ -2246377.398 4 -1750424.092 3 24170419.270 24170416.425 24170418.617
+ 25.600 23.400
+ -14382970.708 6 -11207509.053 5 21985893.225 21985888.851 21985892.140
+ 40.200 35.800
+ 06 1 2 7 12 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11579135.146 6 -9022697.168 5 22272245.939 22272243.790 22272244.868
+ 39.200 31.800
+ -17232815.253 7 -13428165.874 7 20439994.192 20439991.200 20439993.184
+ 42.400 46.300
+ -15715676.886 7 -12245980.268 7 21271746.989 21271745.153 21271746.152
+ 45.500 42.000
+ -16779355.614 7 -13074816.279 6 21465513.231 21465511.007 21465512.856
+ 43.300 36.500
+ -15025160.089 7 -11707912.412 6 21679860.629 21679858.771 21679859.910
+ 43.700 38.700
+ -2219517.624 4 -1729494.399 3 24175530.318 24175527.415 24175529.503
+ 25.300 21.600
+ -14296159.515 6 -11139864.002 5 22002412.373 22002408.493 22002411.663
+ 40.400 35.400
+ 06 1 2 7 13 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11534125.215 6 -8987624.500 5 22280811.178 22280808.842 22280810.054
+ 39.300 31.600
+ -17219703.700 7 -13417949.075 7 20442489.102 20442486.153 20442488.161
+ 42.400 46.100
+ -15766598.930 7 -12285659.782 7 21262056.819 21262055.160 21262055.985
+ 45.600 42.200
+ -16800181.402 7 -13091044.153 6 21461550.101 21461547.914 21461549.704
+ 43.100 36.200
+ -15087511.454 7 -11756497.874 6 21667995.458 21667993.608 21667994.827
+ 43.600 38.700
+ -2192201.927 3 -1708209.466 3 24180728.017 24180725.423 24180727.380
+ 23.800 21.100
+ -14209008.733 6 -11071954.328 5 22018996.392 22018992.645 22018995.870
+ 40.600 34.700
+ 06 1 2 7 13 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11488547.508 6 -8952109.395 5 22289484.885 22289482.086 22289483.568
+ 39.600 31.800
+ -17206267.483 7 -13407479.291 7 20445045.898 20445042.943 20445045.014
+ 42.400 46.100
+ -15817298.929 7 -12325166.273 7 21252408.978 21252407.264 21252408.112
+ 45.500 42.200
+ -16820379.749 7 -13106783.117 6 21457706.387 21457704.188 21457705.900
+ 42.800 36.500
+ -15149528.740 7 -11804823.022 6 21656194.110 21656191.973 21656193.338
+ 43.500 38.700
+ -2164431.565 4 -1686570.237 3 24186012.682 24186009.463 24186012.241
+ 24.900 18.600
+ -14121519.949 6 -11003781.268 5 22035644.821 22035641.200 22035644.514
+ 40.600 34.600
+ 06 1 2 7 14 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11442403.681 6 -8916153.166 5 22298265.254 22298263.311 22298264.055
+ 39.000 32.100
+ -17192506.462 7 -13396756.418 7 20447664.715 20447661.682 20447663.671
+ 42.500 46.100
+ -15867776.017 7 -12364499.068 7 21242803.426 21242801.814 21242802.584
+ 45.500 42.200
+ -16839949.725 7 -13122032.443 6 21453982.201 21453980.178 21453981.878
+ 43.100 36.600
+ -15211211.362 7 -11852887.392 6 21644455.951 21644453.913 21644455.193
+ 43.200 38.600
+ -2136208.300 4 -1664578.100 3 24191383.792 24191380.375 24191383.004
+ 24.900 20.500
+ -14033695.080 6 -10935346.322 5 22052357.098 22052353.827 22052357.017
+ 40.500 34.000
+ 06 1 2 7 14 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11395695.318 6 -8879757.038 5 22307153.408 22307151.774 22307152.410
+ 39.000 32.400
+ -17178420.582 7 -13385780.409 7 20450344.981 20450342.075 20450344.031
+ 42.300 46.000
+ -15918029.441 7 -12403657.579 7 21233240.633 21233238.768 21233239.664
+ 45.700 42.100
+ -16858890.364 7 -13136791.371 6 21450377.942 21450375.687 21450377.593
+ 43.200 36.500
+ -15272558.887 7 -11900690.645 6 21632782.015 21632780.037 21632781.340
+ 43.200 38.900
+ -2107534.006 4 -1642234.523 3 24196840.377 24196837.431 24196839.577
+ 25.300 22.100
+ -13945536.033 6 -10866650.986 5 22069133.427 22069130.017 22069133.104
+ 40.000 34.500
+ 06 1 2 7 15 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11348424.006 6 -8842922.260 5 22316149.065 22316146.846 22316148.014
+ 39.300 32.000
+ -17164009.605 7 -13374551.079 7 20453087.522 20453084.412 20453086.434
+ 42.500 45.900
+ -15968058.333 7 -12442641.133 6 21223720.201 21223718.537 21223719.420
+ 45.500 41.900
+ -16877200.828 7 -13151059.260 6 21446893.504 21446891.374 21446893.258
+ 43.500 36.400
+ -15333570.898 7 -11948232.470 6 21621171.862 21621170.065 21621171.195
+ 43.700 39.400
+ -2078410.169 3 -1619540.617 3 24202382.310 24202379.254 24202381.427
+ 20.500 19.900
+ -13857044.476 6 -10797696.562 5 22085973.314 22085969.540 22085972.642
+ 39.700 34.700
+ 06 1 2 7 15 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11300591.543 6 -8805650.217 5 22325251.420 22325249.053 22325250.059
+ 38.300 31.800
+ -17149273.151 7 -13363068.130 7 20455891.652 20455888.758 20455890.680
+ 42.400 46.000
+ -16017861.976 7 -12481449.164 7 21214243.098 21214241.240 21214242.307
+ 46.000 42.200
+ -16894880.273 7 -13164835.443 6 21443529.378 21443527.200 21443529.034
+ 43.600 36.500
+ -15394246.851 7 -11995512.412 6 21609625.658 21609623.775 21609624.999
+ 43.800 39.500
+ -2048838.085 3 -1596497.469 3 24208009.576 24208007.003 24208009.026
+ 23.800 22.100
+ -13768222.335 6 -10728484.540 5 22102875.909 22102871.595 22102875.071
+ 39.700 33.600
+ 06 1 2 7 16 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11252199.471 6 -8767942.106 5 22334459.970 22334457.906 22334458.739
+ 38.300 32.100
+ -17134211.098 7 -13351331.462 7 20458757.732 20458754.912 20458756.815
+ 42.500 45.800
+ -16067439.481 7 -12520080.992 7 21204808.815 21204806.927 21204807.965
+ 45.900 42.200
+ -16911927.812 7 -13178119.231 6 21440285.387 21440283.223 21440285.065
+ 43.600 36.600
+ -15454586.306 7 -12042530.162 6 21598143.421 21598141.332 21598142.742
+ 43.700 39.300
+ -2018819.460 3 -1573106.361 3 24213721.479 24213718.998 24213720.895
+ 23.000 20.500
+ -13679071.505 6 -10659016.366 5 22119840.258 22119836.384 22119839.664
+ 39.300 33.900
+ 06 1 2 7 16 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11203249.678 6 -8729799.411 5 22343774.469 22343772.337 22343773.432
+ 38.400 31.300
+ -17118823.388 7 -13339341.033 7 20461686.059 20461683.014 20461685.113
+ 42.800 45.800
+ -16116789.968 7 -12558535.914 7 21195417.689 21195415.953 21195416.778
+ 45.700 42.500
+ -16928342.523 7 -13190909.906 6 21437161.566 21437159.464 21437161.318
+ 43.700 36.500
+ -15514588.878 7 -12089285.405 6 21586725.255 21586723.171 21586724.536
+ 43.700 39.000
+ -1988356.214 4 -1549368.761 3 24219519.001 24219516.127 24219518.285
+ 24.600 21.100
+ -13589593.700 6 -10589293.434 5 22136867.232 22136863.782 22136866.777
+ 39.500 34.600
+ 06 1 2 7 17 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11153743.815 6 -8691223.412 5 22353195.348 22353193.784 22353194.277
+ 38.400 32.300
+ -17103109.608 7 -13327096.528 7 20464676.464 20464673.269 20464675.408
+ 42.700 45.700
+ -16165912.799 7 -12596813.442 7 21186070.065 21186068.279 21186069.156
+ 45.800 42.600
+ -16944123.750 7 -13203206.964 6 21434158.354 21434156.453 21434158.138
+ 43.600 36.600
+ -15574254.035 7 -12135777.728 6 21575371.456 21575369.359 21575370.774
+ 43.900 39.400
+ -1957449.938 4 -1525285.947 2 24225400.100 24225397.215 24225399.446
+ 24.900 17.800
+ -13499790.902 6 -10519317.258 5 22153956.054 22153952.782 22153955.684
+ 39.100 34.800
+ 06 1 2 7 17 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11103683.584 6 -8652215.438 5 22362721.191 22362719.679 22362720.225
+ 38.300 31.600
+ -17087069.697 7 -13314597.897 7 20467728.544 20467725.556 20467727.603
+ 42.700 45.600
+ -16214807.076 7 -12634912.877 7 21176765.634 21176763.933 21176764.798
+ 45.900 42.500
+ -16959270.719 7 -13215009.784 6 21431276.266 21431274.288 21431275.817
+ 43.400 37.000
+ -15633581.411 7 -12182006.843 6 21564081.952 21564079.700 21564081.110
+ 43.700 39.600
+ -1926102.261 3 -1500859.224 2 24231364.790 24231361.533 24231364.268
+ 23.400 15.100
+ -13409664.904 6 -10449089.238 5 22171107.418 22171103.134 22171106.438
+ 39.600 34.000
+ 06 1 2 7 18 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -11053070.708 6 -8612776.855 5 22372353.199 22372350.556 22372351.839
+ 38.200 30.800
+ -17070703.408 7 -13301844.944 7 20470843.078 20470839.961 20470842.076
+ 42.900 45.600
+ -16263471.894 7 -12672833.517 7 21167505.010 21167503.301 21167504.112
+ 45.900 42.500
+ -16973782.753 7 -13226317.859 6 21428514.863 21428512.743 21428514.467
+ 43.500 36.800
+ -15692570.594 7 -12227972.431 6 21552856.636 21552854.534 21552855.910
+ 43.900 39.900
+ -1894315.321 3 -1476090.201 3 24237413.739 24237411.778 24237413.444
+ 23.000 20.500
+ -13319217.709 6 -10378610.938 5 22188318.966 22188314.665 22188317.856
+ 38.400 33.800
+ 06 1 2 7 18 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -11001907.157 6 -8572909.144 5 22382089.268 22382086.731 22382087.908
+ 38.400 30.800
+ -17054010.479 7 -13288837.473 7 20474019.498 20474016.563 20474018.612
+ 43.000 45.600
+ -16311906.440 7 -12710574.722 7 21158288.407 21158286.465 21158287.494
+ 46.000 42.500
+ -16987659.089 7 -13237130.577 6 21425874.115 21425872.052 21425873.749
+ 43.600 37.200
+ -15751221.229 7 -12273674.215 6 21541695.485 21541693.754 21541694.894
+ 43.800 39.900
+ -1862090.416 4 -1450979.899 3 24243546.500 24243543.913 24243546.037
+ 25.300 21.100
+ -13228451.414 6 -10307883.979 5 22205590.555 22205586.793 22205589.998
+ 38.900 33.900
+ 06 1 2 7 19 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10950194.624 6 -8532613.662 5 22391929.544 22391927.301 22391928.479
+ 38.300 30.600
+ -17036990.818 7 -13275575.398 7 20477258.331 20477255.352 20477257.444
+ 43.100 45.700
+ -16360109.907 7 -12748135.864 7 21149115.180 21149113.767 21149114.455
+ 45.900 42.700
+ -17000899.003 7 -13247447.385 6 21423354.272 21423352.570 21423354.222
+ 43.800 37.000
+ -15809532.778 7 -12319111.776 6 21530599.425 21530597.381 21530598.687
+ 44.000 40.000
+ -1829429.645 4 -1425529.942 3 24249761.963 24249758.602 24249761.178
+ 24.200 19.300
+ -13137367.560 6 -10236909.571 5 22222922.862 22222919.624 22222922.719
+ 39.600 34.400
+ 06 1 2 7 19 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10897934.977 6 -8491891.854 5 22401873.769 22401871.960 22401872.931
+ 37.700 31.300
+ -17019644.261 7 -13262058.596 7 20480559.290 20480556.262 20480558.221
+ 43.000 45.500
+ -16408081.407 7 -12785516.249 7 21139986.713 21139984.992 21139985.895
+ 46.100 42.700
+ -17013501.923 7 -13257267.835 6 21420956.126 21420954.368 21420955.948
+ 43.700 37.000
+ -15867504.992 7 -12364284.925 6 21519567.759 21519565.622 21519567.000
+ 44.100 40.000
+ -1796334.620 3 -1399741.663 2 24256059.595 24256056.099 24256058.820
+ 23.400 17.800
+ -13045968.091 6 -10165689.230 5 22240316.051 22240312.667 22240315.561
+ 39.000 34.800
+ 06 1 2 7 20 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10845129.963 6 -8450745.100 5 22411922.247 22411920.700 22411921.296
+ 38.000 31.300
+ -17001970.511 7 -13248286.845 7 20483922.400 20483919.479 20483921.438
+ 42.900 45.600
+ -16455820.144 7 -12822715.268 7 21130902.659 21130900.590 21130901.711
+ 46.300 42.500
+ -17025467.150 7 -13266591.385 6 21418679.370 21418677.351 21418679.032
+ 43.500 36.600
+ -15925137.330 7 -12409193.233 6 21508600.184 21508598.548 21508599.644
+ 44.100 40.200
+ -1762807.088 4 -1373616.296 2 24262439.909 24262436.662 24262439.062
+ 26.200 17.000
+ -12954255.039 6 -10094224.553 5 22257769.101 22257764.932 22257768.214
+ 39.100 33.600
+ 06 1 2 7 20 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10791781.517 6 -8409174.886 5 22422074.852 22422071.970 22422073.607
+ 38.600 30.800
+ -16983969.491 7 -13234260.081 7 20487347.965 20487344.900 20487346.973
+ 43.100 45.400
+ -16503325.194 7 -12859732.191 7 21121862.652 21121860.741 21121861.705
+ 46.200 42.800
+ -17036794.107 7 -13275417.572 6 21416524.002 21416521.867 21416523.602
+ 43.400 37.000
+ -15982429.461 7 -12453836.440 6 21497697.990 21497696.242 21497697.369
+ 44.100 40.200
+ -1728848.807 4 -1347155.319 3 24268901.527 24268898.753 24268900.821
+ 24.900 20.500
+ -12862230.404 6 -10022517.067 5 22275281.008 22275276.412 22275279.865
+ 38.500 33.100
+ 06 1 2 7 21 0.0000000 0 7G 5G14G 1G30G25G11G22
+ -10737891.515 6 -8367182.675 5 22432330.000 22432327.242 22432328.680
+ 38.600 30.800
+ -16965640.841 7 -13219978.020 7 20490835.701 20490832.646 20490834.779
+ 43.000 45.400
+ -16550595.874 7 -12896566.484 7 21112867.318 21112865.432 21112866.459
+ 46.300 42.900
+ -17047482.347 7 -13283746.063 6 21414490.079 21414487.992 21414489.722
+ 43.600 37.100
+ -16039381.103 7 -12498214.335 6 21486860.459 21486858.542 21486859.818
+ 44.100 39.800
+ -1694461.596 4 -1320360.095 2 24275445.620 24275442.308 24275444.843
+ 26.200 17.800
+ -12769896.141 6 -9950568.325 5 22292850.908 22292847.361 22292850.372
+ 38.200 33.500
+ 06 1 2 7 21 30.0000000 0 7G 5G14G 1G30G25G11G22
+ -10683461.795 6 -8324769.905 5 22442686.965 22442684.934 22442685.869
+ 38.200 31.300
+ -16946984.716 7 -13205440.781 7 20494385.833 20494382.855 20494384.845
+ 43.200 45.400
+ -16597631.300 7 -12933217.466 7 21103916.773 21103914.903 21103915.938
+ 46.500 42.900
+ -17057531.139 7 -13291576.285 6 21412577.904 21412575.792 21412577.570
+ 43.600 37.300
+ -16095991.866 7 -12542326.613 6 21476087.698 21476086.064 21476087.111
+ 44.100 40.100
+ -1659646.987 4 -1293231.869 2 24282070.603 24282067.266 24282069.943
+ 26.200 17.800
+ -12677254.014 6 -9878379.680 5 22310479.519 22310476.463 22310479.318
+ 37.600 33.600
+ 06 1 2 7 22 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10628494.361 6 -8281938.139 5 22453146.865 22453144.854 22453145.902
+ 37.900 30.800
+ -16928000.819 7 -13190648.137 7 20497998.403 20497995.469 20497997.489
+ 43.100 45.400
+ -140267.552 3 -109299.810 2 24617305.217 24617302.795 24617303.912
+ 19.300 13.900
+ -16644430.578 7 -12969684.437 7 21095010.927 21095009.265 21095010.149
+ 46.400 42.900
+ -17066940.170 7 -13298907.994 6 21410787.329 21410785.201 21410787.056
+ 43.600 36.900
+ -16152261.387 7 -12586172.979 6 21465380.190 21465378.171 21465379.445
+ 44.200 40.000
+ -1624407.419 3 -1265772.441 3 24288775.865 24288773.509 24288775.306
+ 23.400 19.900
+ -12584306.386 6 -9805952.995 5 22328166.883 22328164.062 22328166.769
+ 38.100 33.600
+ 06 1 2 7 22 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10572991.108 6 -8238688.852 4 22463708.964 22463706.661 22463707.839
+ 37.900 29.900
+ -16908688.737 7 -13175599.771 7 20501673.616 20501670.396 20501672.536
+ 43.100 45.300
+ -245278.832 2 -191126.744 2 24597320.836 24597319.971 24597319.778
+ 16.100 16.100
+ -16690992.861 7 -13005966.733 7 21086150.224 21086148.752 21086149.490
+ 46.000 43.100
+ -17075708.858 7 -13305740.733 6 21409118.858 21409116.702 21409118.478
+ 43.600 37.100
+ -16208189.304 7 -12629753.170 6 21454737.672 21454735.404 21454736.922
+ 44.600 40.300
+ -1588744.601 4 -1237983.253 2 24295562.569 24295559.714 24295561.774
+ 25.900 17.000
+ -12491054.743 6 -9733289.407 5 22345912.985 22345909.032 22345912.164
+ 38.200 32.400
+ 06 1 2 7 23 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10516953.948 6 -8195023.520 5 22474372.699 22474369.898 22474371.476
+ 37.500 30.100
+ -16889048.523 7 -13160295.713 7 20505410.790 20505407.740 20505409.807
+ 42.900 45.200
+ -350125.292 3 -272825.222 3 24577370.963 24577367.984 24577369.879
+ 21.100 18.600
+ -16737317.349 7 -13042063.735 7 21077335.450 21077333.462 21077334.559
+ 46.300 43.100
+ -17083836.720 7 -13312074.130 6 21407572.217 21407570.050 21407571.741
+ 43.300 37.000
+ -16263775.351 7 -12673066.972 6 21444159.726 21444157.892 21444159.085
+ 44.400 40.500
+ -1552660.335 3 -1209865.660 3 24302429.493 24302426.035 24302428.651
+ 23.400 18.600
+ -12397501.235 6 -9660390.600 5 22363716.035 22363711.566 22363714.962
+ 37.600 32.400
+ 06 1 2 7 23 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10460384.937 6 -8150943.786 5 22485137.468 22485135.037 22485136.312
+ 37.700 30.800
+ -16869079.752 7 -13144735.634 7 20509210.721 20509207.675 20509209.712
+ 43.200 45.000
+ -454804.688 3 -354393.573 3 24557451.596 24557447.724 24557450.343
+ 23.000 18.600
+ -16783403.021 7 -13077974.651 7 21068565.485 21068563.654 21068564.651
+ 46.400 43.100
+ -17091323.353 7 -13317907.863 6 21406147.247 21406145.231 21406147.006
+ 43.500 36.900
+ -16319019.220 7 -12716114.135 6 21433647.430 21433645.276 21433646.611
+ 44.600 40.300
+ -1516156.739 4 -1181421.295 3 24309375.624 24309373.009 24309374.900
+ 24.200 21.100
+ -12303647.653 6 -9587257.974 5 22381574.789 22381571.409 22381574.415
+ 37.200 32.300
+ 06 1 2 7 24 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10403285.939 6 -8106451.060 5 22496002.644 22496000.576 22496001.729
+ 37.500 30.800
+ -16848782.474 7 -13128919.577 7 20513073.112 20513070.123 20513072.162
+ 43.100 45.000
+ -559314.534 4 -435829.816 3 24537563.981 24537561.087 24537562.900
+ 24.200 21.100
+ -16829249.131 7 -13113698.892 7 21059841.335 21059839.524 21059840.463
+ 46.400 43.400
+ -17098168.337 7 -13323241.612 6 21404844.794 21404842.653 21404844.396
+ 43.400 37.100
+ -16373920.532 7 -12758894.372 6 21423199.773 21423197.696 21423199.141
+ 44.600 39.900
+ -1479235.492 4 -1152651.507 3 24316401.775 24316398.645 24316401.090
+ 24.900 19.300
+ -12209496.289 6 -9513893.295 5 22399491.329 22399487.979 22399490.989
+ 38.000 33.100
+ 06 1 2 7 24 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10345659.092 6 -8061547.025 5 22506968.979 22506966.573 22506967.782
+ 37.200 30.400
+ -16828156.591 7 -13112847.464 7 20516998.170 20516995.138 20516997.160
+ 43.100 45.000
+ -663652.316 4 -517131.934 3 24517708.881 24517706.777 24517707.495
+ 25.600 21.600
+ -16874854.875 7 -13149235.832 7 21051163.004 21051161.097 21051162.130
+ 46.600 43.400
+ -17104371.436 7 -13328075.198 6 21403664.147 21403662.121 21403663.989
+ 43.500 36.500
+ -16428478.957 7 -12801407.411 6 21412817.616 21412815.873 21412816.969
+ 44.600 40.500
+ -1441898.514 4 -1123557.773 3 24323506.965 24323503.130 24323506.116
+ 24.200 18.600
+ -12115049.180 6 -9440298.172 5 22417463.886 22417460.880 22417463.537
+ 37.700 33.500
+ 06 1 2 7 25 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10287506.283 6 -8016233.157 5 22518035.314 22518033.026 22518033.951
+ 36.700 31.500
+ -16807201.607 7 -13096518.902 7 20520985.661 20520982.713 20520984.671
+ 43.200 44.900
+ -767814.965 4 -598297.622 3 24497887.883 24497884.532 24497886.413
+ 27.900 19.300
+ -16920219.197 7 -13184584.656 7 21042530.268 21042528.420 21042529.408
+ 46.300 43.300
+ -17109932.186 7 -13332408.249 6 21402606.305 21402604.106 21402605.943
+ 43.700 37.000
+ -16482694.391 7 -12843653.192 6 21402500.952 21402498.771 21402500.270
+ 45.200 40.000
+ -1404147.540 3 -1094141.461 3 24330690.198 24330687.229 24330689.539
+ 23.800 18.600
+ -12020308.006 6 -9366473.917 5 22435493.675 22435489.543 22435492.743
+ 38.100 33.100
+ 06 1 2 7 25 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10228829.636 6 -7970511.088 5 22529201.275 22529198.637 22529199.827
+ 36.800 31.100
+ -16785917.520 7 -13079933.898 7 20525036.119 20525032.963 20525035.065
+ 43.200 44.900
+ -871800.719 3 -679325.507 2 24478098.439 24478095.978 24478096.995
+ 22.600 16.100
+ -16965341.240 7 -13219744.687 7 21033943.706 21033941.954 21033942.878
+ 46.200 43.400
+ -17114850.231 7 -13336240.486 6 21401670.259 21401668.272 21401669.955
+ 43.600 37.000
+ -16536566.376 7 -12885631.358 6 21392249.409 21392247.169 21392248.836
+ 45.400 40.100
+ -1365984.881 3 -1064404.331 2 24337952.523 24337949.209 24337951.747
+ 22.600 17.800
+ -11925274.820 6 -9292422.116 5 22453578.046 22453573.630 22453576.926
+ 37.200 32.600
+ 06 1 2 7 26 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10169631.110 6 -7924382.375 5 22540465.806 22540464.073 22540464.797
+ 36.700 31.300
+ -16764304.504 7 -13063092.582 7 20529148.755 20529145.792 20529147.808
+ 43.200 44.800
+ -975606.972 3 -760213.412 2 24458344.237 24458343.419 24458344.027
+ 19.900 17.800
+ -17010220.300 7 -13254715.380 7 21025403.810 21025401.731 21025402.864
+ 46.400 43.400
+ -17119125.418 7 -13339571.794 6 21400856.573 21400854.760 21400856.344
+ 43.800 37.100
+ -16590094.595 7 -12927341.659 6 21382063.683 21382061.187 21382062.881
+ 45.500 40.500
+ -1327412.327 3 -1034347.837 2 24345292.374 24345289.341 24345291.605
+ 23.400 13.900
+ -11829951.769 6 -9218144.451 5 22471716.097 22471712.949 22471715.810
+ 36.800 32.400
+ 06 1 2 7 26 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10109912.843 6 -7877848.666 5 22551829.712 22551828.340 22551828.633
+ 37.100 31.800
+ -16742362.272 7 -13045994.739 7 20533324.075 20533321.227 20533323.158
+ 43.100 44.700
+ -1079230.874 3 -840959.276 2 24438626.674 24438624.002 24438625.963
+ 22.100 12.600
+ -17054855.455 7 -13289496.022 7 21016909.889 21016908.035 21016908.985
+ 46.600 43.500
+ -17122757.365 7 -13342401.877 6 21400165.852 21400163.493 21400165.388
+ 43.800 37.000
+ -16643278.862 7 -12968783.936 6 21371942.387 21371940.490 21371941.896
+ 44.800 40.300
+ -1288432.034 3 -1003973.587 2 24352710.507 24352707.221 24352709.448
+ 23.000 16.100
+ -11734341.021 6 -9143642.607 5 22489910.318 22489907.303 22489909.943
+ 37.000 32.800
+ 06 1 2 7 27 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -10049676.912 6 -7830911.576 5 22563292.550 22563290.458 22563291.373
+ 36.700 31.000
+ -16720090.330 7 -13028639.980 7 20537562.484 20537559.336 20537561.531
+ 43.300 44.700
+ -1182669.792 4 -921561.048 1 24418943.028 24418941.374 24418942.004
+ 24.600 9.000
+ -17099245.865 7 -13324085.949 7 21008462.506 21008460.780 21008461.752
+ 46.700 43.500
+ -17125745.902 7 -13344730.610 6 21399597.040 21399594.817 21399596.693
+ 43.800 36.900
+ -16696118.875 7 -13009957.964 6 21361887.442 21361885.448 21361886.806
+ 45.000 40.300
+ -1249045.789 3 -973283.044 2 24360205.673 24360202.276 24360204.587
+ 20.500 15.100
+ -11638444.713 6 -9068918.248 5 22508160.167 22508155.890 22508159.050
+ 37.100 33.200
+ 06 1 2 7 27 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9988925.365 6 -7783572.715 5 22574853.373 22574850.969 22574852.151
+ 36.900 30.600
+ -16697488.539 7 -13011028.197 7 20541863.580 20541860.470 20541862.538
+ 43.200 44.600
+ -1285921.485 4 -1002017.021 9 24399295.174 24399292.831 24399293.898
+ 27.400 -3.000
+ -17143390.613 7 -13358484.456 7 21000062.228 21000060.288 21000061.333
+ 46.500 43.500
+ -17128090.829 7 -13346557.822 6 21399150.753 21399148.721 21399150.366
+ 43.500 37.000
+ -16748614.479 7 -13050863.618 6 21351897.915 21351895.942 21351897.242
+ 44.700 40.600
+ -1209255.665 3 -942277.758 2 24367777.100 24367773.663 24367776.221
+ 22.600 13.900
+ -11542264.252 6 -8993972.485 5 22526461.947 22526458.164 22526461.307
+ 37.300 32.300
+ 06 1 2 7 28 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9927660.304 6 -7735833.703 4 22586511.404 22586509.359 22586510.385
+ 37.600 29.700
+ -16674556.957 7 -12993159.441 7 20546227.118 20546224.293 20546226.185
+ 43.400 44.600
+ -1388983.171 4 -1082324.819 3 24379682.593 24379679.842 24379681.343
+ 26.800 18.600
+ -17187288.783 7 -13392690.818 7 20991708.631 20991706.710 20991707.686
+ 46.400 43.500
+ -17129791.870 7 -13347883.301 6 21398827.046 21398825.029 21398826.708
+ 43.600 37.200
+ -16800765.325 7 -13091500.633 6 21341974.136 21341971.804 21341973.413
+ 44.900 40.200
+ -1169063.698 3 -910959.367 2 24375425.430 24375422.693 24375424.749
+ 21.600 17.800
+ -11445801.961 5 -8918807.082 5 22544817.451 22544814.088 22544817.204
+ 35.800 31.600
+ 06 1 2 7 28 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9865883.914 6 -7687696.259 5 22598267.062 22598265.091 22598265.756
+ 36.300 30.200
+ -16651295.463 7 -12975033.608 7 20550653.722 20550650.709 20550652.796
+ 43.400 44.400
+ -1491852.565 4 -1162482.766 3 24360106.686 24360104.765 24360105.896
+ 28.800 21.100
+ -17230939.364 7 -13426704.259 7 20983402.067 20983400.360 20983401.244
+ 46.400 43.700
+ -17130849.070 7 -13348707.089 6 21398626.007 21398623.691 21398625.633
+ 44.000 37.000
+ -16852571.237 7 -13131868.873 6 21332115.520 21332113.601 21332114.833
+ 44.700 40.600
+ -1128472.024 2 -879329.522 2 24383149.677 24383146.848 24383148.960
+ 17.800 17.800
+ -11349060.412 6 -8843424.088 5 22563225.896 22563223.472 22563226.346
+ 36.500 31.500
+ 06 1 2 7 29 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9803598.286 6 -7639162.002 5 22610119.440 22610117.809 22610118.356
+ 36.100 31.000
+ -16627703.749 7 -12956650.457 7 20555143.154 20555140.029 20555142.113
+ 43.500 44.400
+ -1594526.849 4 -1242488.697 4 24340568.594 24340566.893 24340567.783
+ 27.400 26.800
+ -17274341.449 7 -13460524.064 7 20975142.972 20975141.281 20975142.121
+ 46.500 43.900
+ -17131262.160 7 -13349028.971 6 21398547.574 21398544.894 21398547.170
+ 44.000 36.700
+ -16904031.975 7 -13171968.139 6 21322322.911 21322320.874 21322322.270
+ 44.900 40.700
+ -1087482.430 3 -847389.571 3 24390949.776 24390947.061 24390949.457
+ 19.900 19.900
+ -11252040.952 5 -8767824.527 5 22581689.844 22581685.801 22581688.981
+ 35.500 31.600
+ 06 1 2 7 29 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9740805.595 6 -7590232.634 5 22622068.961 22622066.601 22622067.604
+ 36.500 30.200
+ -16603781.933 7 -12938010.085 7 20559695.102 20559692.235 20559694.148
+ 43.200 44.200
+ -1697003.581 3 -1322340.643 4 24321068.330 24321066.116 24321067.056
+ 23.800 26.200
+ -17317494.380 7 -13494149.722 7 20966931.457 20966929.549 20966930.555
+ 46.600 43.800
+ -17131031.064 7 -13348848.891 6 21398591.372 21398588.869 21398591.012
+ 43.900 36.800
+ -16955147.323 7 -13211798.271 6 21312596.052 21312593.876 21312595.355
+ 44.900 40.600
+ -1046097.063 3 -815141.281 3 24398825.135 24398822.595 24398824.492
+ 21.600 19.300
+ -11154745.703 5 -8692010.107 5 22600205.484 22600200.589 22600204.091
+ 35.600 31.800
+ 06 1 2 7 30 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9677508.030 6 -7540909.870 5 22634113.858 22634111.668 22634112.675
+ 36.800 30.100
+ -16579529.629 7 -12919112.187 7 20564310.333 20564307.220 20564309.277
+ 43.400 44.100
+ -1799280.077 3 -1402036.596 4 24301606.728 24301603.226 24301605.149
+ 23.400 24.200
+ -17360397.112 7 -13527580.422 7 20958767.206 20958765.329 20958766.364
+ 46.600 43.800
+ -17130155.857 7 -13348166.909 6 21398757.366 21398755.665 21398757.226
+ 43.900 37.200
+ -17005917.100 7 -13251359.127 6 21302934.906 21302932.831 21302934.252
+ 45.100 40.900
+ -1004318.310 3 -782586.404 3 24406775.296 24406772.600 24406774.947
+ 20.500 21.100
+ -11057177.090 5 -8615982.649 5 22618770.173 22618767.443 22618770.347
+ 35.900 31.100
+ 06 1 2 7 30 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9613707.735 5 -7491195.347 4 22646254.244 22646252.313 22646253.313
+ 35.900 29.200
+ -16554946.897 7 -12899956.809 7 20568988.288 20568985.126 20568987.168
+ 43.400 44.100
+ -1901353.941 2 -1481574.653 4 24282180.379 24282180.156 24282178.972
+ 17.800 24.600
+ -17403048.734 7 -13560815.452 7 20950650.631 20950649.047 20950649.835
+ 46.500 43.800
+ -17128636.362 7 -13346982.877 6 21399046.862 21399044.936 21399046.491
+ 43.700 37.500
+ -17056340.968 7 -13290650.452 6 21293339.531 21293337.403 21293338.898
+ 45.100 40.700
+ -962147.951 3 -749726.412 3 24414799.606 24414797.360 24414799.315
+ 22.600 19.900
+ -10959337.478 6 -8539744.013 5 22637388.953 22637385.620 22637388.788
+ 36.700 31.000
+ 06 1 2 7 31 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9549406.934 6 -7441090.834 5 22658491.025 22658488.690 22658489.610
+ 36.800 30.100
+ -16530033.461 7 -12880543.740 7 20573728.854 20573726.041 20573727.990
+ 43.300 44.000
+ -2003222.627 3 -1560952.752 3 24262796.444 24262794.374 24262795.251
+ 20.500 23.000
+ -17445448.366 7 -13593854.123 7 20942582.364 20942580.688 20942581.474
+ 46.400 44.000
+ -17126472.649 7 -13345296.863 6 21399458.589 21399456.703 21399458.261
+ 43.700 37.500
+ -17106418.866 7 -13329672.179 6 21283809.862 21283807.857 21283809.245
+ 44.900 40.900
+ -919588.169 3 -716562.967 3 24422898.341 24422896.172 24422898.117
+ 21.100 20.500
+ -10861228.163 6 -8463295.221 5 22656059.738 22656055.315 22656058.656
+ 36.000 31.600
+ 06 1 2 7 31 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9484607.846 6 -7390598.040 4 22670821.463 22670819.308 22670820.452
+ 36.800 29.200
+ -16504789.008 7 -12860872.743 7 20578532.888 20578529.912 20578531.884
+ 43.400 44.000
+ -2104883.462 4 -1640168.959 3 24243451.323 24243448.587 24243450.126
+ 24.600 18.600
+ -17487594.990 7 -13626695.650 7 20934562.240 20934560.336 20934561.368
+ 46.600 43.700
+ -17123664.695 7 -13343108.844 6 21399992.819 21399990.906 21399992.569
+ 43.700 37.400
+ -17156150.582 7 -13368424.156 6 21274346.318 21274344.388 21274345.638
+ 44.800 41.300
+ -876641.192 3 -683097.803 3 24431071.345 24431068.581 24431071.046
+ 23.800 19.300
+ -10762851.437 6 -8386638.066 5 22674779.630 22674775.694 22674778.899
+ 36.400 30.600
+ 06 1 2 7 32 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9419312.594 6 -7339718.612 4 22683246.285 22683244.171 22683245.268
+ 36.200 28.400
+ -16479213.650 7 -12840943.890 7 20583399.740 20583396.792 20583398.777
+ 43.400 44.100
+ -2206333.780 4 -1719221.146 2 24224146.139 24224142.822 24224144.812
+ 25.300 17.800
+ -17529487.695 7 -13659339.317 7 20926590.181 20926588.447 20926589.287
+ 46.500 43.800
+ -17120212.520 7 -13340418.840 6 21400649.858 21400647.830 21400649.541
+ 43.800 37.200
+ -17205536.002 7 -13406906.293 6 21264948.703 21264946.634 21264947.992
+ 45.100 41.300
+ -833308.937 3 -649332.435 3 24439317.425 24439314.958 24439317.013
+ 23.800 21.100
+ -10664209.513 5 -8309774.254 5 22693549.318 22693546.837 22693549.557
+ 35.800 31.300
+ 06 1 2 7 32 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9353523.537 5 -7288454.417 4 22695765.852 22695763.589 22695764.781
+ 35.900 28.100
+ -16453307.257 7 -12820757.088 7 20588329.658 20588326.611 20588328.613
+ 43.600 44.100
+ -2307570.973 4 -1798107.255 2 24204881.873 24204878.670 24204880.866
+ 28.400 13.900
+ -17571125.602 7 -13691784.437 7 20918666.759 20918665.078 20918665.890
+ 46.400 43.800
+ -17116116.284 7 -13337226.973 6 21401429.068 21401427.393 21401428.909
+ 43.600 37.200
+ -17254574.835 7 -13445118.368 6 21255616.972 21255614.809 21255616.223
+ 45.100 41.400
+ -789593.645 4 -615268.584 3 24447636.089 24447633.468 24447635.703
+ 24.200 22.100
+ -10565304.532 5 -8232705.471 5 22712371.712 22712368.002 22712370.923
+ 34.700 31.100
+ 06 1 2 7 33 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9287242.915 5 -7236807.169 4 22708378.790 22708376.383 22708377.608
+ 35.600 28.400
+ -16427069.727 7 -12800312.254 7 20593322.515 20593319.465 20593321.510
+ 43.600 44.100
+ -2408592.424 4 -1876825.346 1 24185657.124 24185654.016 24185656.090
+ 29.200 6.500
+ -17612507.906 7 -13724030.388 7 20910792.150 20910790.264 20910791.227
+ 46.500 44.000
+ -17111376.052 7 -13333533.284 6 21402331.413 21402329.406 21402330.989
+ 43.400 37.500
+ -17303267.038 7 -13483060.338 6 21246351.106 21246348.976 21246350.407
+ 45.100 41.300
+ -745497.610 3 -580908.055 3 24456027.811 24456024.808 24456027.298
+ 23.800 21.100
+ -10466138.684 5 -8155433.418 4 22731242.562 22731238.401 22731241.568
+ 34.700 29.500
+ 06 1 2 7 33 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9220473.011 5 -7184778.691 4 22721084.671 22721082.563 22721083.200
+ 35.600 29.000
+ -16400500.857 7 -12779609.232 7 20598378.562 20598375.304 20598377.439
+ 43.600 44.000
+ -2509395.707 5 -1955373.366 2 24166475.644 24166471.903 24166474.351
+ 30.200 15.100
+ -17653633.609 7 -13756076.390 7 20902966.094 20902964.337 20902965.214
+ 46.500 44.100
+ -17105991.975 7 -13329337.893 6 21403355.933 21403353.968 21403355.654
+ 43.900 37.200
+ -17351612.332 7 -13520731.988 6 21237151.370 21237149.077 21237150.685
+ 45.300 41.500
+ -701022.724 3 -546252.340 3 24464490.482 24464488.192 24464489.845
+ 23.800 21.600
+ -10366713.994 5 -8077959.666 4 22750161.904 22750158.189 22750161.244
+ 34.100 29.900
+ 06 1 2 7 34 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9153216.000 5 -7132370.625 4 22733883.082 22733880.682 22733881.979
+ 35.600 28.400
+ -16373600.507 7 -12758647.918 7 20603497.199 20603494.233 20603496.235
+ 43.600 43.800
+ -2609978.047 5 -2033749.258 2 24147335.429 24147331.747 24147334.367
+ 30.200 15.100
+ -17694501.728 7 -13787921.672 7 20895189.288 20895187.411 20895188.269
+ 46.500 44.100
+ -17099964.165 7 -13324640.891 6 21404503.226 21404501.041 21404502.855
+ 43.800 37.100
+ -17399610.690 7 -13558133.300 6 21228017.597 21228015.385 21228016.890
+ 45.300 41.600
+ -656171.540 4 -511303.355 3 24473025.105 24473022.969 24473024.506
+ 24.900 21.100
+ -10267032.609 5 -8000285.883 5 22769129.867 22769127.172 22769129.816
+ 34.500 31.000
+ 06 1 2 7 34 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9085474.299 6 -7079584.895 4 22746773.349 22746771.991 22746772.634
+ 36.000 28.600
+ -16346368.591 7 -12737428.246 7 20608679.366 20608676.397 20608678.334
+ 43.800 43.800
+ -2710336.737 4 -2111950.821 2 24128237.691 24128234.424 24128236.314
+ 26.200 17.800
+ -17735111.351 7 -13819565.534 7 20887461.418 20887459.673 20887460.577
+ 46.800 44.200
+ -17093292.791 7 -13319442.413 6 21405772.664 21405770.498 21405772.279
+ 43.800 36.800
+ -17447261.949 7 -13595264.139 6 21218949.748 21218947.662 21218949.081
+ 45.200 41.700
+ -610945.956 4 -476062.665 3 24481632.187 24481629.187 24481631.417
+ 25.300 19.900
+ -10167096.550 5 -7922413.663 5 22788148.482 22788144.372 22788147.527
+ 34.300 30.400
+ 06 1 2 7 35 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -9017250.094 6 -7026423.167 4 22759756.792 22759754.281 22759755.597
+ 36.000 28.600
+ -16318804.902 7 -12715950.043 7 20613924.579 20613921.456 20613923.515
+ 43.800 43.700
+ -2810469.427 4 -2189976.296 3 24109182.320 24109180.201 24109181.508
+ 27.100 21.100
+ -17775461.529 7 -13851007.235 7 20879783.108 20879781.302 20879782.184
+ 46.800 44.300
+ -17085978.205 7 -13313742.731 6 21407164.469 21407162.414 21407164.103
+ 43.900 37.300
+ -17494565.868 7 -13632124.321 6 21209947.911 21209945.929 21209947.219
+ 44.800 41.800
+ -565348.134 4 -440531.884 3 24490309.294 24490305.996 24490308.449
+ 24.900 19.900
+ -10066907.986 5 -7844344.696 5 22807214.203 22807209.626 22807213.227
+ 35.300 30.600
+ 06 1 2 7 35 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8948545.774 5 -6972887.336 5 22772830.787 22772828.903 22772829.623
+ 35.200 30.100
+ -16290909.618 7 -12694213.458 7 20619232.675 20619229.747 20619231.727
+ 43.700 43.500
+ -2910373.516 3 -2267823.598 3 24090171.161 24090168.910 24090170.225
+ 22.600 23.000
+ -17815551.376 7 -13882246.075 7 20872154.264 20872152.425 20872153.298
+ 46.800 44.200
+ -17078020.484 7 -13307541.903 6 21408678.677 21408676.747 21408678.419
+ 43.800 37.200
+ -17541522.478 7 -13668713.879 6 21201012.503 21201010.442 21201011.814
+ 45.100 41.900
+ -519380.409 4 -404712.900 3 24499056.256 24499053.415 24499055.384
+ 25.300 19.900
+ -9966468.978 5 -7766080.561 5 22826325.620 22826322.490 22826325.443
+ 35.200 30.400
+ 06 1 2 7 36 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8879363.688 5 -6918979.231 4 22785995.323 22785993.320 22785994.194
+ 34.400 29.200
+ -16262682.568 7 -12672218.358 7 20624604.284 20624601.268 20624603.340
+ 43.800 43.400
+ -3010046.261 4 -2345490.644 3 24071204.129 24071201.331 24071202.914
+ 25.300 23.800
+ -17855380.075 7 -13913281.420 7 20864575.082 20864573.110 20864574.121
+ 46.700 44.000
+ -17069419.996 7 -13300840.222 6 21410315.191 21410313.304 21410315.003
+ 43.900 37.200
+ -17588131.598 7 -13705032.668 6 21192143.059 21192140.980 21192142.294
+ 45.000 41.800
+ -473044.881 4 -368607.309 3 24507873.940 24507871.148 24507873.182
+ 24.600 21.100
+ -9865781.829 5 -7687623.073 4 22845486.944 22845482.453 22845486.031
+ 34.600 29.500
+ 06 1 2 7 36 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8809706.150 5 -6864700.632 4 22799250.570 22799248.968 22799249.577
+ 34.300 28.600
+ -16234123.557 7 -12649964.583 7 20630039.031 20630035.886 20630038.017
+ 44.000 43.500
+ -3109484.970 4 -2422975.317 3 24052281.203 24052279.426 24052280.536
+ 24.900 23.800
+ -17894946.655 7 -13944112.519 7 20857045.818 20857043.828 20857044.950
+ 46.800 44.200
+ -17060177.026 7 -13293637.906 6 21412073.951 21412072.239 21412073.819
+ 43.800 37.300
+ -17634393.067 7 -13741080.563 6 21183339.756 21183337.641 21183339.136
+ 45.100 41.900
+ -426343.999 3 -332217.014 2 24516760.146 24516757.543 24516759.470
+ 23.800 16.100
+ -9764848.876 5 -7608974.044 4 22864693.127 22864689.699 22864692.230
+ 33.800 29.500
+ 06 1 2 7 37 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8739575.468 5 -6810053.336 4 22812595.774 22812594.323 22812594.899
+ 34.500 29.000
+ -16205232.393 7 -12627451.991 7 20635536.774 20635533.626 20635535.792
+ 44.000 43.400
+ -3208687.167 4 -2500275.724 3 24033405.329 24033401.970 24033403.952
+ 28.100 22.100
+ -17934250.151 7 -13974738.619 7 20849566.631 20849564.719 20849565.738
+ 46.800 44.200
+ -17050292.018 7 -13285935.299 6 21413955.254 21413953.219 21413954.868
+ 43.600 37.000
+ -17680306.939 7 -13776857.604 7 21174602.581 21174600.494 21174601.911
+ 44.800 42.100
+ -379279.796 4 -295543.637 2 24525717.198 24525713.388 24525716.251
+ 24.200 17.800
+ -9663671.763 5 -7530134.786 4 22883946.285 22883943.031 22883945.888
+ 34.400 28.800
+ 06 1 2 7 37 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8668974.073 5 -6755039.290 4 22826031.420 22826029.465 22826030.181
+ 34.900 29.900
+ -16176009.127 7 -12604680.615 7 20641097.991 20641094.636 20641096.891
+ 44.000 43.200
+ -3307650.065 4 -2577389.654 4 24014571.624 24014569.742 24014570.680
+ 26.500 24.200
+ -17973289.558 7 -14005158.937 7 20842137.732 20842135.738 20842136.785
+ 46.900 44.300
+ -17039765.169 7 -13277732.560 6 21415958.490 21415956.407 21415958.122
+ 43.700 36.900
+ -17725873.042 7 -13812363.651 7 21165931.559 21165929.703 21165930.911
+ 44.700 42.400
+ -331854.619 3 -258588.969 3 24534741.288 24534738.309 24534740.473
+ 23.000 18.600
+ -9562252.821 5 -7451107.045 4 22903245.908 22903242.436 22903245.489
+ 34.800 29.200
+ 06 1 2 7 38 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8597904.293 5 -6699660.241 4 22839555.435 22839553.751 22839554.212
+ 34.700 29.000
+ -16146453.451 7 -12581650.220 7 20646722.024 20646718.903 20646721.011
+ 44.000 43.400
+ -3406371.269 4 -2654315.246 3 23995786.452 23995783.422 23995785.331
+ 28.600 23.800
+ -18012063.836 7 -14035372.656 7 20834759.027 20834757.198 20834758.214
+ 46.800 44.300
+ -17028596.888 7 -13269030.003 6 21418083.492 21418081.544 21418083.163
+ 43.600 37.000
+ -17771091.289 7 -13847598.635 7 21157326.774 21157325.042 21157326.162
+ 44.700 42.700
+ -284070.904 3 -221354.907 3 24543835.238 24543831.378 24543834.205
+ 23.800 18.600
+ -9460594.093 5 -7371892.502 4 22922591.291 22922587.568 22922590.433
+ 34.400 29.500
+ 06 1 2 7 38 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8526368.587 5 -6643918.121 4 22853168.703 22853166.023 22853167.553
+ 35.900 28.400
+ -16116565.462 7 -12558360.878 7 20652409.339 20652406.430 20652408.371
+ 43.800 43.200
+ -3504848.157 4 -2731050.481 3 23977046.405 23977043.612 23977045.254
+ 26.500 21.100
+ -18050572.101 7 -14065379.096 7 20827431.049 20827429.346 20827430.216
+ 46.600 44.100
+ -17016787.632 7 -13259827.984 6 21420330.806 21420328.718 21420330.548
+ 43.700 37.100
+ -17815961.617 7 -13882562.515 7 21148788.355 21148786.375 21148787.708
+ 44.700 42.500
+ -235930.546 4 -183842.936 3 24552994.916 24552992.421 24552994.408
+ 24.600 18.600
+ -9358698.178 5 -7292493.104 4 22941980.651 22941977.709 22941980.475
+ 34.100 29.000
+ 06 1 2 7 39 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8454369.230 5 -6587814.735 4 22866869.262 22866866.915 22866868.172
+ 34.900 28.100
+ -16086344.958 7 -12534812.431 7 20658160.075 20658157.219 20658159.168
+ 43.900 43.200
+ -3603077.873 4 -2807593.111 3 23958354.510 23958351.922 23958353.427
+ 29.000 23.800
+ -18088813.357 7 -14095177.476 7 20820154.059 20820152.327 20820153.270
+ 46.800 44.300
+ -17004337.781 7 -13250126.803 6 21422700.064 21422697.928 21422699.755
+ 44.000 36.500
+ -17860483.975 7 -13917255.259 7 21140315.996 21140314.019 21140315.288
+ 44.700 42.500
+ -187436.158 3 -146055.147 3 24562222.511 24562220.611 24562221.977
+ 21.100 18.600
+ -9256566.897 5 -7212910.315 4 22961415.780 22961412.742 22961415.220
+ 33.200 28.800
+ 06 1 2 7 39 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8381908.758 5 -6531352.020 4 22880658.003 22880656.305 22880656.893
+ 34.600 29.500
+ -16055792.053 7 -12511004.970 7 20663974.336 20663971.254 20663973.256
+ 43.800 43.100
+ -3701057.838 4 -2883941.135 3 23939709.360 23939706.516 23939708.130
+ 29.000 21.600
+ -18126786.604 7 -14124767.020 7 20812928.124 20812926.202 20812927.287
+ 46.700 44.200
+ -16991247.829 7 -13239926.835 6 21425191.002 21425188.870 21425190.687
+ 43.700 36.500
+ -17904658.246 7 -13951676.764 7 21131910.128 21131908.191 21131909.429
+ 45.100 43.100
+ -138590.111 3 -107993.302 2 24571518.073 24571515.285 24571517.688
+ 22.600 16.100
+ -9154202.536 5 -7133145.922 4 22980895.540 22980891.932 22980894.846
+ 33.000 28.600
+ 06 1 2 7 40 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8308989.459 5 -6474531.802 4 22894534.274 22894532.257 22894533.117
+ 35.200 28.800
+ -16024906.576 7 -12486938.361 7 20669851.384 20669848.639 20669850.415
+ 43.700 43.200
+ -3798785.415 4 -2960092.501 3 23921112.274 23921108.992 23921111.289
+ 27.900 18.600
+ -18164490.958 7 -14154147.034 7 20805753.235 20805751.237 20805752.253
+ 46.600 44.200
+ -16977518.266 7 -13229228.468 6 21427803.632 21427801.489 21427803.196
+ 43.600 36.700
+ -17948484.482 7 -13985827.072 7 21123570.006 21123568.328 21123569.390
+ 45.000 43.300
+ -89394.655 3 -69659.198 3 24580879.812 24580876.844 24580879.269
+ 22.100 18.600
+ -9051607.341 5 -7053201.651 4 23000418.304 23000415.172 23000418.066
+ 33.600 27.900
+ 06 1 2 7 40 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8235613.848 5 -6417356.014 4 22908497.322 22908495.476 22908496.219
+ 35.800 29.700
+ -15993688.495 7 -12462612.580 7 20675792.114 20675789.082 20675791.135
+ 43.900 43.100
+ -3896258.019 4 -3036045.165 3 23902564.775 23902561.510 23902563.033
+ 25.900 21.100
+ -18201925.479 7 -14183316.788 7 20798629.416 20798627.772 20798628.606
+ 46.400 44.400
+ -16963149.639 7 -13218032.134 6 21430537.624 21430535.910 21430537.387
+ 43.700 36.800
+ -17991962.648 7 -14019706.155 7 21115296.302 21115294.328 21115295.730
+ 45.000 42.800
+ -39851.863 3 -31054.475 2 24590308.077 24590304.579 24590306.922
+ 20.500 17.000
+ -8948783.361 5 -6973079.081 4 23019985.268 23019981.992 23019985.068
+ 34.000 28.400
+ 06 1 2 7 41 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8161784.370 5 -6359826.556 4 22922546.612 22922544.292 22922545.361
+ 34.500 27.600
+ -15962137.563 7 -12438027.438 7 20681795.955 20681792.921 20681795.057
+ 43.800 43.000
+ -3993472.895 4 -3111796.985 3 23884064.381 23884061.129 23884063.090
+ 26.800 18.600
+ -18239089.193 7 -14212275.525 7 20791557.534 20791555.696 20791556.609
+ 46.500 44.300
+ -16948142.449 7 -13206338.219 6 21433393.690 21433391.678 21433393.451
+ 43.800 37.100
+ -18035092.581 7 -14053313.896 7 21107089.059 21107087.085 21107088.289
+ 44.800 43.000
+ 10035.848 3 7819.049 2 24599801.442 24599798.070 24599800.418
+ 20.500 17.000
+ -8845732.913 5 -6892780.062 4 23039595.290 23039591.906 23039594.748
+ 31.100 29.700
+ 06 1 2 7 41 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8087503.582 5 -6301945.417 4 22936682.124 22936678.885 22936680.725
+ 34.400 26.800
+ -15930253.898 7 -12413183.029 7 20687863.360 20687860.313 20687862.292
+ 44.000 42.900
+ -4090427.578 4 -3187346.114 2 23865614.951 23865611.315 23865613.755
+ 28.100 17.000
+ -18275981.250 7 -14241022.580 7 20784537.066 20784535.388 20784536.245
+ 46.500 44.400
+ -16932497.243 7 -13194147.140 6 21436371.073 21436368.841 21436370.670
+ 44.000 37.000
+ -18077874.413 7 -14086650.384 7 21098948.041 21098945.986 21098947.292
+ 44.900 43.200
+ 60266.080 3 46959.447 2 24609359.924 24609356.797 24609359.151
+ 21.100 15.100
+ -8742458.061 5 -6812306.202 4 23059247.281 23059244.550 23059247.035
+ 31.600 29.500
+ 06 1 2 7 42 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -8012773.710 5 -6243714.349 4 22950902.150 22950900.358 22950901.141
+ 34.500 27.400
+ -15898037.482 7 -12388079.331 7 20693993.898 20693990.949 20693992.871
+ 43.800 42.900
+ -4187119.277 5 -3262690.276 3 23847214.851 23847212.440 23847213.997
+ 30.600 22.600
+ -18312600.566 7 -14269557.112 7 20777568.649 20777567.030 20777567.872
+ 46.800 44.600
+ -16916214.776 7 -13181459.503 6 21439469.283 21439467.197 21439468.945
+ 43.800 36.700
+ -18120308.036 7 -14119715.538 7 21090873.144 21090871.175 21090872.425
+ 44.800 43.400
+ 110836.491 3 86364.949 1 24618982.692 24618979.839 24618981.744
+ 21.600 9.000
+ -8638961.057 5 -6731659.220 4 23078943.236 23078939.288 23078942.417
+ 33.000 29.000
+ 06 1 2 7 42 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7937597.358 5 -6185135.383 4 22965207.554 22965205.893 22965206.647
+ 34.000 28.100
+ -15865488.181 7 -12362716.240 7 20700187.805 20700184.818 20700186.853
+ 44.000 42.800
+ -4283545.248 4 -3337827.434 3 23828865.187 23828862.331 23828864.292
+ 29.700 19.900
+ -18348946.131 7 -14297878.329 7 20770652.387 20770650.701 20770651.555
+ 46.600 44.500
+ -16899295.487 7 -13168275.637 6 21442688.743 21442686.883 21442688.524
+ 43.700 36.700
+ -18162393.394 7 -14152509.313 7 21082864.577 21082862.600 21082863.829
+ 44.900 43.400
+ 161744.723 3 126033.695 2 24628670.112 24628667.374 24628669.430
+ 19.900 12.600
+ -8535243.964 5 -6650840.752 4 23098680.145 23098676.134 23098679.163
+ 32.800 29.000
+ 06 1 2 7 43 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7861976.959 5 -6126210.395 4 22979597.720 22979596.195 22979596.379
+ 32.600 28.100
+ -15832605.613 7 -12337093.466 7 20706445.289 20706442.195 20706444.228
+ 44.100 42.700
+ -4379702.979 4 -3412755.527 4 23810567.157 23810565.346 23810565.774
+ 28.600 25.900
+ -18385017.037 7 -14325985.526 7 20763788.397 20763786.599 20763787.522
+ 46.600 44.600
+ -16881740.167 7 -13154596.167 6 21446029.440 21446027.642 21446029.165
+ 43.600 36.800
+ -18204130.595 7 -14185031.803 7 21074922.351 21074920.110 21074921.608
+ 45.200 43.300
+ 212988.164 3 165963.639 2 24638421.095 24638418.935 24638420.504
+ 21.100 16.100
+ -8431309.161 5 -6569852.626 4 23118457.233 23118454.159 23118457.175
+ 33.100 28.400
+ 06 1 2 7 43 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7785915.079 5 -6066941.412 4 22994072.006 22994069.460 22994070.807
+ 33.100 26.800
+ -15799390.222 7 -12311211.340 7 20712765.855 20712762.968 20712764.886
+ 44.100 42.900
+ -4475589.894 4 -3487472.565 3 23792320.405 23792317.589 23792319.346
+ 27.400 21.600
+ -18420812.289 7 -14353877.929 7 20756976.823 20756974.948 20756975.966
+ 46.700 44.700
+ -16863549.406 7 -13140421.547 6 21449490.746 21449489.144 21449490.596
+ 43.500 36.800
+ -18245519.650 7 -14217283.012 7 21067046.130 21067044.036 21067045.421
+ 45.100 43.200
+ 264564.622 3 206153.068 1 24648236.400 24648232.890 24648235.776
+ 21.100 9.000
+ -8327159.144 5 -6488696.783 4 23138277.383 23138273.204 23138276.374
+ 33.400 28.100
+ 06 1 2 7 44 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7709414.105 5 -6007330.251 4 23008628.918 23008627.882 23008628.042
+ 33.400 28.100
+ -15765841.765 7 -12285069.685 7 20719149.908 20719146.991 20719148.957
+ 44.300 42.800
+ -4571202.906 4 -3561976.215 4 23774125.630 23774123.879 23774124.710
+ 27.900 25.900
+ -18456331.066 7 -14381554.898 7 20750217.824 20750215.959 20750216.944
+ 46.900 44.700
+ -16844723.884 7 -13125752.311 6 21453073.283 21453071.408 21453073.042
+ 43.700 36.700
+ -18286560.459 7 -14249262.854 7 21059236.351 21059234.341 21059235.667
+ 45.100 43.400
+ 316471.667 3 246600.114 2 24658113.928 24658110.957 24658113.006
+ 20.500 15.100
+ -8222795.749 5 -6407374.701 4 23158137.007 23158133.130 23158135.876
+ 31.000 28.100
+ 06 1 2 7 44 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7632476.688 5 -5947379.032 4 23023270.182 23023268.393 23023268.859
+ 33.000 27.100
+ -15731960.188 7 -12258668.458 7 20725597.259 20725594.427 20725596.335
+ 44.100 42.700
+ -4666540.129 4 -3636264.931 3 23755983.435 23755981.060 23755982.555
+ 29.000 22.600
+ -18491572.208 7 -14409015.527 7 20743511.477 20743509.853 20743510.626
+ 46.700 44.700
+ -16825264.350 7 -13110589.035 6 21456776.686 21456774.467 21456776.335
+ 43.900 36.700
+ -18327253.021 7 -14280971.337 7 21051492.916 21051490.703 21051492.164
+ 45.100 43.300
+ 368707.138 3 287303.036 2 24668053.474 24668050.755 24668052.887
+ 19.300 12.600
+ -8118221.024 5 -6325887.968 4 23178036.141 23178033.045 23178035.891
+ 31.500 28.400
+ 06 1 2 7 45 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7555105.184 5 -5887089.569 4 23037993.353 23037991.672 23037992.182
+ 32.700 27.400
+ -15697745.511 7 -12232007.673 7 20732108.107 20732105.263 20732107.108
+ 44.300 42.700
+ -4761598.280 4 -3710336.203 3 23737894.631 23737892.032 23737893.444
+ 29.200 23.000
+ -18526534.788 7 -14436259.093 7 20736858.468 20736856.629 20736857.573
+ 46.700 44.600
+ -16805171.689 7 -13094932.417 6 21460600.339 21460597.811 21460599.911
+ 44.100 36.500
+ -18367597.502 7 -14312408.588 7 21043815.389 21043813.388 21043814.721
+ 44.800 43.400
+ 421268.559 3 328259.992 2 24678056.429 24678052.655 24678055.491
+ 23.000 12.600
+ -8013437.367 5 -6244238.391 4 23197975.908 23197972.539 23197975.252
+ 31.800 27.100
+ 06 1 2 7 45 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7477302.265 5 -5826463.919 4 23052798.392 23052796.877 23052797.549
+ 32.300 24.200
+ -15663197.528 7 -12205087.166 7 20738682.333 20738679.572 20738681.387
+ 44.000 42.500
+ -4856374.930 5 -3784188.159 3 23719860.210 23719856.832 23719858.802
+ 30.200 22.600
+ -18561217.750 7 -14463284.777 7 20730258.519 20730256.634 20730257.708
+ 46.800 44.800
+ -16784446.572 7 -13078782.971 6 21464544.299 21464541.551 21464543.761
+ 43.900 36.500
+ -18407593.863 7 -14343574.576 7 21036204.483 21036202.386 21036203.722
+ 44.900 43.400
+ 474153.423 3 369468.959 2 24688119.540 24688116.822 24688118.767
+ 19.300 13.900
+ -7908447.290 5 -6162427.966 4 23217954.686 23217951.735 23217954.352
+ 30.600 27.100
+ 06 1 2 7 46 0.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7399070.342 5 -5765503.974 4 23067686.384 23067683.878 23067685.095
+ 33.100 26.500
+ -15628316.213 7 -12177906.924 7 20745320.168 20745317.194 20745319.185
+ 44.300 42.500
+ -4950867.369 4 -3857818.605 4 23701878.208 23701875.215 23701876.940
+ 27.600 24.600
+ -18595620.167 7 -14490091.855 7 20723712.013 20723710.162 20723711.123
+ 46.800 44.900
+ -16763089.732 7 -13062141.274 6 21468608.103 21468605.651 21468607.763
+ 44.000 36.400
+ -18447242.156 7 -14374469.343 7 21028659.450 21028657.558 21028658.863
+ 44.900 43.500
+ 527359.170 3 410927.960 2 24698243.772 24698241.690 24698243.184
+ 22.100 17.800
+ -7803252.827 5 -6080458.312 4 23237972.415 23237969.630 23237972.068
+ 30.200 27.400
+ 06 1 2 7 46 30.0000000 0 8G 5G14G20G 1G30G25G11G22
+ -7320412.061 5 -5704211.796 4 23082654.700 23082652.179 23082653.420
+ 33.600 25.600
+ -15593101.676 7 -12150467.026 7 20752021.185 20752018.307 20752020.154
+ 44.100 42.400
+ -5045072.937 4 -3931225.543 4 23683951.389 23683948.891 23683950.417
+ 29.900 24.200
+ -18629741.142 7 -14516679.623 7 20717218.890 20717217.284 20717218.059
+ 46.600 44.900
+ -16741102.163 7 -13045008.103 6 21472791.923 21472789.943 21472791.797
+ 44.000 36.500
+ -18486542.467 7 -14405092.958 7 21021180.982 21021179.046 21021180.360
+ 45.300 43.600
+ 580883.571 3 452635.266 2 24708429.882 24708426.960 24708429.323
+ 23.800 15.100
+ -7697855.979 5 -5998330.947 4 23258029.257 23258026.167 23258028.378
+ 30.200 27.400
+ 06 1 2 7 47 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -7241329.874 5 -5642589.335 4 23097702.859 23097701.376 23097701.493
+ 32.300 27.400
+ -15557553.897 7 -12122767.456 7 20758785.790 20758782.944 20758784.695
+ 44.300 42.500
+ -5138988.889 4 -4004406.777 3 23666079.889 23666076.999 23666078.636
+ 28.400 21.600
+ -18663579.668 7 -14543047.304 7 20710779.628 20710777.897 20710778.850
+ 46.800 44.900
+ -16718484.717 7 -13027384.115 6 21477095.915 21477094.040 21477095.636
+ 43.600 36.900
+ -18525494.887 7 -14435445.491 7 21013768.727 21013766.609 21013767.959
+ 45.300 43.500
+ -7592259.272 5 -5916047.854 4 23278122.826 23278120.536 23278122.740
+ 30.200 26.200
+ 06 1 2 7 47 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -7161826.415 5 -5580638.579 4 23112832.049 23112829.994 23112830.941
+ 33.600 27.400
+ -15521672.659 7 -12094808.051 7 20765613.675 20765610.896 20765612.683
+ 44.400 42.300
+ -5232612.679 4 -4077360.386 3 23648263.900 23648260.761 23648262.796
+ 29.000 22.100
+ -18697134.686 7 -14569194.070 7 20704394.346 20704392.460 20704393.446
+ 46.700 44.800
+ -16695238.235 7 -13009269.969 6 21481519.348 21481517.791 21481519.058
+ 43.300 37.000
+ -18564099.331 7 -14465526.871 7 21006422.561 21006420.422 21006421.798
+ 45.300 43.700
+ -7486464.821 4 -5833610.664 4 23298256.610 23298252.633 23298255.275
+ 29.700 27.400
+ 06 1 2 7 48 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -7081904.185 5 -5518361.518 4 23128040.554 23128038.570 23128039.504
+ 33.100 25.900
+ -15485458.164 7 -12066588.962 7 20772505.170 20772502.267 20772504.118
+ 44.300 42.500
+ -5325941.555 5 -4150084.190 3 23630504.142 23630501.153 23630502.956
+ 30.400 22.100
+ -18730405.193 7 -14595119.139 7 20698063.211 20698061.347 20698062.314
+ 46.700 44.900
+ -16671363.586 7 -12990666.345 6 21486063.086 21486060.929 21486062.624
+ 43.600 36.800
+ -18602355.996 7 -14495337.251 7 20999142.443 20999140.385 20999141.824
+ 45.400 43.600
+ -7380475.059 4 -5751021.280 4 23318424.791 23318421.771 23318424.393
+ 29.500 27.100
+ 06 1 2 7 48 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -7001565.831 5 -5455760.193 4 23143329.045 23143326.879 23143327.742
+ 32.600 27.900
+ -15448910.236 7 -12038110.061 7 20779459.978 20779457.067 20779459.032
+ 44.400 42.300
+ -5418972.940 5 -4222576.211 3 23612801.267 23612797.889 23612800.047
+ 31.500 23.800
+ -18763390.245 7 -14620821.776 7 20691786.445 20691784.704 20691785.561
+ 46.800 45.200
+ -16646861.803 7 -12971574.044 6 21490725.758 21490723.391 21490725.326
+ 43.600 36.700
+ -18640264.921 7 -14524876.670 7 20991928.692 20991926.520 20991927.978
+ 45.200 43.400
+ -7274291.990 4 -5668281.271 4 23338630.807 23338627.574 23338630.258
+ 29.700 24.900
+ 06 1 2 7 49 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6920813.834 5 -5392836.570 4 23158695.558 23158693.058 23158694.593
+ 33.800 25.900
+ -15412029.041 7 -12009371.472 7 20786478.574 20786475.338 20786477.451
+ 44.400 42.300
+ -5511704.370 5 -4294834.443 3 23595154.203 23595151.587 23595153.248
+ 31.100 21.600
+ -18796088.932 7 -14646301.269 7 20685564.198 20685562.294 20685563.302
+ 46.800 45.200
+ -16621733.812 7 -12951993.795 6 21495507.102 21495505.252 21495506.858
+ 43.800 36.700
+ -18677826.129 7 -14554145.134 7 20984780.781 20984778.853 20984780.158
+ 45.200 43.500
+ -7167917.985 4 -5585392.464 4 23358873.369 23358870.067 23358872.763
+ 29.700 26.200
+ 06 1 2 7 49 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6839650.886 5 -5329592.696 4 23174140.704 23174138.128 23174139.382
+ 33.200 27.900
+ -15374814.618 7 -11980373.222 7 20793560.226 20793557.011 20793559.103
+ 44.600 42.100
+ -5604132.858 5 -4366856.681 4 23577566.206 23577563.470 23577565.149
+ 32.700 24.900
+ -18828500.107 7 -14671556.730 7 20679396.460 20679394.554 20679395.660
+ 46.900 45.000
+ -16595980.564 7 -12931926.323 6 21500407.504 21500405.928 21500407.314
+ 43.200 36.700
+ -18715039.870 7 -14583142.851 7 20977699.448 20977697.280 20977698.721
+ 45.200 43.500
+ -7061355.252 5 -5502356.601 4 23379150.783 23379148.446 23379150.665
+ 31.000 27.400
+ 06 1 2 7 50 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6758079.488 5 -5266030.583 4 23189663.076 23189660.549 23189661.678
+ 33.100 26.800
+ -15337266.908 7 -11951115.265 7 20800705.009 20800702.100 20800704.043
+ 44.400 42.000
+ -5696255.700 5 -4438640.706 4 23560035.281 23560033.286 23560034.083
+ 30.100 25.600
+ -18860622.952 7 -14696587.520 7 20673283.536 20673281.791 20673282.704
+ 46.700 45.200
+ -16569603.078 7 -12911372.439 6 21505427.356 21505425.116 21505427.009
+ 43.600 36.500
+ -18751906.083 7 -14611869.767 7 20970684.112 20970681.902 20970683.326
+ 45.400 43.700
+ -6954606.035 5 -5419175.429 4 23399465.657 23399462.248 23399464.866
+ 30.100 27.900
+ 06 1 2 7 50 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6676102.372 5 -5202152.292 4 23205262.142 23205259.611 23205260.807
+ 31.500 24.200
+ -15299385.735 7 -11921597.473 6 20807913.492 20807910.635 20807912.523
+ 44.400 41.900
+ -5788070.460 4 -4510184.672 3 23542563.389 23542560.917 23542562.379
+ 29.000 22.100
+ -18892456.397 7 -14721392.799 7 20667225.938 20667224.140 20667225.043
+ 46.800 45.200
+ -16542602.494 7 -12890333.017 6 21510565.462 21510563.155 21510565.104
+ 43.600 36.500
+ -18788424.947 7 -14640326.018 7 20963734.693 20963732.537 20963733.943
+ 45.600 43.600
+ -6847672.746 5 -5335850.815 4 23419812.887 23419810.752 23419813.118
+ 30.100 26.800
+ 06 1 2 7 51 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6593721.995 5 -5137959.795 4 23220938.695 23220936.402 23220937.822
+ 32.600 24.900
+ -15261171.247 7 -11891819.944 6 20815185.570 20815182.593 20815184.571
+ 44.300 41.800
+ -5879574.460 4 -4581486.473 4 23525150.280 23525149.157 23525149.144
+ 28.600 26.800
+ -18923999.421 7 -14745971.775 7 20661223.383 20661221.709 20661222.592
+ 46.700 45.300
+ -16514979.713 7 -12868808.773 6 21515821.408 21515819.566 21515821.173
+ 43.400 36.200
+ -18824596.619 7 -14668511.735 7 20956851.462 20956849.281 20956850.714
+ 45.400 43.600
+ -6740557.355 4 -5252384.329 4 23440198.282 23440194.349 23440196.909
+ 29.500 26.800
+ 06 1 2 7 51 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6510941.063 5 -5073455.171 4 23236691.729 23236689.248 23236690.748
+ 32.700 25.600
+ -15222623.620 7 -11861782.838 6 20822520.748 20822517.842 20822519.850
+ 44.400 41.500
+ -5970765.009 5 -4652544.008 4 23507798.231 23507795.675 23507797.206
+ 31.500 26.200
+ -18955251.078 7 -14770323.715 7 20655276.403 20655274.711 20655275.537
+ 46.700 45.300
+ -16486735.901 7 -12846800.604 6 21521196.382 21521194.188 21521196.029
+ 43.400 36.500
+ -18860421.100 7 -14696426.908 7 20950034.188 20950032.206 20950033.481
+ 45.300 43.800
+ -6633262.331 4 -5168777.875 4 23460614.943 23460612.181 23460614.484
+ 29.700 27.400
+ 06 1 2 7 52 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6427762.229 5 -5008640.497 4 23252519.611 23252517.865 23252518.570
+ 30.600 25.300
+ -15183742.509 7 -11831485.871 6 20829919.516 20829916.658 20829918.676
+ 44.500 41.500
+ -6061638.935 5 -4723354.870 4 23490505.621 23490503.260 23490504.578
+ 32.700 26.500
+ -18986210.365 7 -14794447.835 7 20649384.812 20649383.269 20649384.112
+ 46.700 45.400
+ -16457872.232 7 -12824309.433 6 21526688.731 21526686.836 21526688.566
+ 43.600 36.200
+ -18895898.638 7 -14724071.738 7 20943283.010 20943280.946 20943282.373
+ 45.500 43.800
+ -6525789.873 4 -5085033.137 4 23481067.004 23481063.340 23481065.833
+ 29.000 26.200
+ 06 1 2 7 52 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6344188.001 5 -4943517.723 4 23268423.570 23268421.349 23268422.502
+ 32.000 25.600
+ -15144528.166 7 -11800929.239 6 20837382.142 20837379.015 20837381.125
+ 44.500 41.200
+ -6152194.463 5 -4793917.612 4 23473274.015 23473270.662 23473272.558
+ 33.000 24.200
+ -19016876.287 7 -14818343.359 7 20643549.342 20643547.771 20643548.585
+ 46.800 45.500
+ -16428389.780 7 -12801336.093 6 21532299.339 21532297.065 21532298.979
+ 43.400 36.000
+ -18931029.331 7 -14751446.304 7 20936597.645 20936595.820 20936597.085
+ 45.500 43.800
+ -6418142.276 5 -5001151.941 4 23501550.525 23501548.182 23501550.527
+ 30.600 26.200
+ 06 1 2 7 53 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6260221.057 4 -4878088.950 4 23284401.405 23284399.756 23284400.057
+ 29.500 25.600
+ -15104980.477 7 -11770112.862 6 20844907.637 20844904.666 20844906.699
+ 44.700 41.200
+ -6242428.313 5 -4864229.692 3 23456101.750 23456099.386 23456100.872
+ 31.600 23.000
+ -19047247.784 7 -14842009.461 7 20637770.065 20637768.283 20637769.334
+ 47.100 45.400
+ -16398289.657 7 -12777881.450 6 21538027.202 21538024.838 21538026.937
+ 43.600 36.100
+ -18965813.295 7 -14778550.685 7 20929978.531 20929976.658 20929977.863
+ 45.400 44.000
+ -6310321.921 5 -4917136.097 4 23522068.816 23522065.657 23522068.470
+ 31.100 26.800
+ 06 1 2 7 53 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6175864.022 5 -4812356.183 4 23300455.078 23300452.615 23300453.950
+ 34.000 26.200
+ -15065099.411 7 -11739036.710 6 20852496.890 20852493.756 20852495.954
+ 44.700 41.100
+ -6332337.898 5 -4934289.132 4 23438993.389 23438990.828 23438992.164
+ 32.000 25.300
+ -19077323.742 7 -14865445.274 7 20632046.936 20632044.924 20632046.128
+ 47.000 45.200
+ -16367573.181 7 -12753946.531 6 21543872.414 21543870.124 21543872.126
+ 43.600 36.200
+ -19000250.712 7 -14805385.025 7 20923425.646 20923423.454 20923424.908
+ 45.500 44.100
+ -6202330.977 4 -4832987.369 3 23542618.586 23542615.358 23542618.147
+ 29.200 23.400
+ 06 1 2 7 54 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -6091119.644 5 -4746321.587 4 23316581.484 23316578.655 23316580.004
+ 30.400 26.200
+ -15024885.236 7 -11707700.995 6 20860149.270 20860146.275 20860148.437
+ 44.800 41.200
+ -6421920.866 5 -5004094.030 3 23421946.118 23421943.207 23421945.050
+ 32.600 23.800
+ -19107103.221 7 -14888650.062 7 20626379.915 20626378.162 20626379.118
+ 46.900 45.500
+ -16336241.441 7 -12729532.187 6 21549834.480 21549832.453 21549834.195
+ 43.400 36.400
+ -19034341.718 7 -14831949.434 7 20916938.411 20916936.191 20916937.684
+ 45.800 44.200
+ -6094171.803 4 -4748707.539 3 23563201.555 23563197.544 23563200.242
+ 26.200 22.600
+ 06 1 2 7 54 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -6005990.451 5 -4679987.183 4 23332780.505 23332779.078 23332779.350
+ 31.600 26.800
+ -14984338.045 7 -11676105.785 6 20867865.409 20867862.086 20867864.395
+ 44.800 41.100
+ -6511174.413 5 -5073642.230 4 23404961.586 23404959.559 23404960.319
+ 31.100 27.600
+ -19136585.291 7 -14911623.102 7 20620769.704 20620767.953 20620768.944
+ 47.000 45.400
+ -16304295.745 7 -12704639.437 6 21555913.426 21555911.579 21555913.096
+ 43.400 36.200
+ -19068086.479 7 -14858244.046 7 20910516.801 20910514.854 20910516.158
+ 45.600 44.300
+ -5985846.998 4 -4664298.650 3 23583814.778 23583810.598 23583814.004
+ 28.100 22.600
+ 06 1 2 7 55 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5920479.148 5 -4613355.004 4 23349052.029 23349050.201 23349051.058
+ 31.500 24.200
+ -14943457.972 7 -11644251.180 6 20875644.601 20875641.322 20875643.567
+ 44.700 41.100
+ -6600095.561 5 -5142931.443 4 23388039.873 23388038.065 23388038.867
+ 31.500 25.600
+ -19165768.916 7 -14934363.592 7 20615216.300 20615214.440 20615215.455
+ 46.800 45.400
+ -16271737.371 7 -12679269.270 6 21562109.323 21562107.188 21562108.983
+ 43.700 36.300
+ -19101485.170 7 -14884268.991 7 20904161.482 20904159.248 20904160.798
+ 45.800 44.300
+ -5877357.988 4 -4579761.791 3 23604459.088 23604455.737 23604458.669
+ 29.900 23.800
+ 06 1 2 7 55 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5834588.431 5 -4546427.134 3 23365396.616 23365394.671 23365395.659
+ 30.600 21.600
+ -14902244.733 7 -11612136.969 6 20883486.845 20883483.994 20883485.981
+ 44.600 41.200
+ -6688682.060 5 -5211959.861 4 23371183.695 23371180.587 23371182.346
+ 32.400 26.200
+ -19194653.163 7 -14956870.796 7 20609719.680 20609717.932 20609718.889
+ 46.900 45.400
+ -16238567.573 7 -12653422.670 6 21568421.271 21568419.159 21568420.971
+ 43.400 36.400
+ -19134537.859 7 -14910024.333 7 20897871.526 20897869.422 20897870.839
+ 45.900 44.100
+ -5768707.520 4 -4495099.129 4 23625135.050 23625131.637 23625134.448
+ 28.100 25.900
+ 06 1 2 7 56 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5748320.870 5 -4479205.661 4 23381813.330 23381811.156 23381812.168
+ 31.800 24.900
+ -14860698.215 7 -11579763.064 6 20891392.847 20891389.974 20891392.080
+ 44.600 40.800
+ -6776931.205 5 -5280725.408 4 23354390.038 23354387.644 23354388.831
+ 32.300 27.400
+ -19223236.999 7 -14979143.915 7 20604280.477 20604278.611 20604279.619
+ 47.000 45.600
+ -16204787.659 7 -12627100.657 6 21574849.286 21574847.449 21574849.016
+ 43.300 36.700
+ -19167244.880 7 -14935510.314 7 20891647.659 20891645.404 20891646.995
+ 46.000 44.300
+ -5659898.038 4 -4410312.562 4 23645839.991 23645837.295 23645839.872
+ 28.600 25.600
+ 06 1 2 7 56 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5661679.176 4 -4411692.661 4 23398300.070 23398299.107 23398299.010
+ 29.000 24.900
+ -14818818.894 7 -11547129.823 6 20899362.462 20899359.337 20899361.425
+ 44.500 40.800
+ -6864840.277 5 -5349225.990 4 23337661.236 23337658.231 23337660.185
+ 32.800 24.900
+ -19251519.328 7 -15001182.095 7 20598898.637 20598896.586 20598897.784
+ 47.100 45.400
+ -16170398.995 7 -12600304.297 6 21581393.212 21581391.222 21581392.916
+ 43.400 36.400
+ -19199606.320 7 -14960727.020 7 20885489.417 20885487.222 20885488.801
+ 46.100 44.400
+ -5550931.592 4 -4325403.717 4 23666576.659 23666572.878 23666575.898
+ 28.100 25.600
+ 06 1 2 7 57 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5574666.062 5 -4343890.242 4 23414858.886 23414856.350 23414857.621
+ 31.500 24.200
+ -14776606.742 7 -11514237.236 6 20907395.170 20907392.148 20907394.247
+ 44.400 40.800
+ -6952406.604 5 -5417459.467 4 23320997.769 23320995.335 23320996.530
+ 31.600 25.900
+ -19279499.128 7 -15022984.537 7 20593574.215 20593572.284 20593573.360
+ 47.100 45.500
+ -16135402.749 7 -12573034.494 6 21588052.696 21588050.658 21588052.466
+ 43.400 36.400
+ -19231622.393 7 -14985674.602 7 20879396.928 20879394.729 20879396.193
+ 45.800 44.400
+ -5441810.590 4 -4240374.380 4 23687341.704 23687338.273 23687340.936
+ 29.200 25.300
+ 06 1 2 7 57 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5487284.140 5 -4275800.419 4 23431487.112 23431484.789 23431486.035
+ 32.300 24.200
+ -14734061.815 7 -11481085.351 6 20915491.002 20915488.179 20915490.180
+ 44.400 40.800
+ -7039627.666 5 -5485423.946 4 23304400.348 23304397.540 23304399.176
+ 33.400 25.300
+ -19307175.486 7 -15044550.531 7 20588307.388 20588305.719 20588306.589
+ 46.700 45.800
+ -16099800.490 7 -12545292.473 6 21594827.577 21594825.633 21594827.297
+ 43.300 36.500
+ -19263293.332 7 -15010353.249 7 20873370.337 20873367.901 20873369.634
+ 46.300 44.300
+ -5332537.704 4 -4155226.754 4 23708134.843 23708131.919 23708134.549
+ 28.400 25.900
+ 06 1 2 7 58 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5399536.146 5 -4207425.363 3 23448184.549 23448182.577 23448183.527
+ 31.000 23.000
+ -14691184.021 7 -11447674.086 6 20923650.529 20923647.559 20923649.491
+ 44.400 40.900
+ -7126500.358 5 -5553116.959 4 23287869.334 23287866.151 23287868.162
+ 33.500 25.300
+ -19334547.404 7 -15065879.296 7 20583098.878 20583097.007 20583098.016
+ 46.800 45.700
+ -16063593.603 7 -12517079.321 6 21601717.643 21601715.689 21601717.310
+ 43.200 36.100
+ -19294619.295 7 -15034763.086 7 20867409.170 20867406.698 20867408.448
+ 46.300 44.400
+ -5223114.475 4 -4069961.944 4 23728958.014 23728955.263 23728957.443
+ 27.900 27.100
+ 06 1 2 7 58 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5311424.739 4 -4138767.117 4 23464951.634 23464949.768 23464950.431
+ 29.500 24.200
+ -14647973.715 7 -11414003.723 6 20931873.391 20931870.271 20931872.251
+ 44.300 40.800
+ -7213022.456 5 -5620536.755 4 23271404.225 23271401.292 23271403.164
+ 32.400 24.900
+ -19361613.901 7 -15086970.071 7 20577948.498 20577946.463 20577947.569
+ 46.900 45.800
+ -16026783.546 7 -12488396.157 6 21608722.625 21608720.301 21608722.239
+ 43.500 36.200
+ -19325600.571 7 -15058904.332 7 20861513.691 20861511.173 20861512.909
+ 46.000 44.300
+ -5113543.662 4 -3984582.144 3 23749808.175 23749805.180 23749807.758
+ 27.100 23.800
+ 06 1 2 7 59 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5222952.614 5 -4069827.820 4 23481787.986 23481785.402 23481786.573
+ 30.100 24.200
+ -14604430.643 7 -11380074.062 6 20940158.742 20940156.408 20940158.062
+ 44.400 40.900
+ -7299191.384 5 -5687681.368 4 23255006.602 23255004.854 23255005.714
+ 32.800 27.900
+ -19388374.018 7 -15107822.107 7 20572855.837 20572854.181 20572855.010
+ 46.600 45.900
+ -15989371.670 7 -12459244.037 5 21615841.658 21615839.315 21615841.307
+ 43.400 35.500
+ -19356237.289 7 -15082777.096 7 20855683.631 20855681.328 20855682.921
+ 46.000 44.400
+ -5003827.400 4 -3899089.024 3 23770687.925 23770683.607 23770686.594
+ 25.300 23.400
+ 06 1 2 7 59 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -5134122.458 5 -4000609.525 4 23498691.793 23498689.448 23498690.649
+ 31.300 24.200
+ -14560555.242 7 -11345885.448 6 20948508.424 20948505.462 20948507.356
+ 44.200 40.600
+ -7385004.327 5 -5754548.594 4 23238677.405 23238674.680 23238676.357
+ 32.800 25.900
+ -19414826.547 7 -15128434.465 7 20567822.088 20567820.309 20567821.252
+ 46.600 45.700
+ -15951359.417 7 -12429624.097 5 21623074.989 21623072.860 21623074.710
+ 43.100 35.700
+ -19386529.797 7 -15106381.643 7 20849919.519 20849916.830 20849918.681
+ 46.300 44.500
+ -4893968.113 4 -3813484.439 3 23791591.840 23791589.453 23791591.814
+ 27.400 23.400
+ 06 1 2 8 0 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -5044936.958 4 -3931114.315 3 23515662.317 23515660.286 23515661.089
+ 29.000 23.800
+ -14516347.508 7 -11311437.864 6 20956920.878 20956917.807 20956919.919
+ 44.300 40.300
+ -7470458.620 5 -5821136.354 4 23222416.292 23222413.185 23222415.046
+ 35.100 27.400
+ -19440970.406 7 -15148806.302 7 20562847.065 20562845.235 20562846.237
+ 46.400 45.600
+ -15912748.369 7 -12399537.560 6 21630422.505 21630420.570 21630422.308
+ 43.000 36.100
+ -19416478.197 7 -15129718.056 7 20844220.100 20844217.842 20844219.449
+ 46.100 44.600
+ -4783968.259 4 -3727770.300 3 23812525.983 23812521.154 23812524.689
+ 27.100 19.900
+ 06 1 2 8 0 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4955398.846 4 -3861344.359 3 23532700.985 23532698.956 23532699.841
+ 29.000 22.600
+ -14471807.682 7 -11276731.511 6 20965396.425 20965393.455 20965395.405
+ 44.300 40.600
+ -7555552.020 5 -5887442.896 4 23206223.133 23206220.806 23206221.931
+ 34.100 27.600
+ -19466804.775 7 -15168936.979 7 20557930.990 20557929.209 20557930.176
+ 46.600 45.800
+ -15873539.877 7 -12368985.489 5 21637883.708 21637881.538 21637883.416
+ 42.700 35.600
+ -19446082.776 7 -15152786.553 7 20838586.488 20838584.292 20838585.790
+ 46.000 44.600
+ -4673830.034 4 -3641948.357 3 23833482.330 23833480.104 23833482.504
+ 25.600 21.100
+ 06 1 2 8 1 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -4865510.846 4 -3791301.753 3 23549806.222 23549804.659 23549804.958
+ 28.800 23.400
+ -14426935.315 7 -11241766.037 6 20973935.260 20973932.420 20973934.286
+ 44.000 40.300
+ -7640281.585 5 -5953465.922 4 23190099.378 23190097.295 23190098.271
+ 32.800 28.400
+ -19492328.609 7 -15188825.681 7 20553073.893 20553072.169 20553073.072
+ 46.600 45.800
+ -15833735.697 7 -12337969.247 5 21645458.037 21645455.881 21645457.825
+ 43.100 35.500
+ -19475343.714 7 -15175587.278 7 20833018.423 20833016.123 20833017.666
+ 46.000 44.800
+ -4563555.283 4 -3556020.013 3 23854468.889 23854464.236 23854467.630
+ 27.600 19.300
+ 06 1 2 8 1 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4775275.665 5 -3720988.621 3 23566977.056 23566975.567 23566976.410
+ 30.800 22.600
+ -14381731.174 7 -11206542.038 6 20982537.358 20982534.482 20982536.312
+ 44.300 40.100
+ -7724644.684 5 -6019203.370 4 23174045.628 23174043.247 23174044.630
+ 34.100 27.400
+ -19517540.823 7 -15208471.558 7 20548276.111 20548274.354 20548275.305
+ 46.400 45.600
+ -15793337.248 7 -12306489.928 5 21653145.619 21653143.582 21653145.345
+ 43.000 35.700
+ -19504261.440 7 -15198120.570 7 20827515.341 20827513.187 20827514.706
+ 45.800 44.700
+ -4453146.772 4 -3469987.481 3 23875478.263 23875475.281 23875477.880
+ 29.000 23.800
+ 06 1 2 8 2 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -4684695.917 4 -3650407.003 4 23584214.169 23584212.845 23584212.954
+ 29.900 24.600
+ -14336194.932 7 -11171059.255 6 20991202.600 20991199.762 20991201.605
+ 44.100 39.800
+ -7808638.670 5 -6084653.241 4 23158062.489 23158059.558 23158061.321
+ 34.600 26.200
+ -19542440.469 7 -15227873.877 7 20543538.071 20543536.114 20543537.261
+ 46.700 45.700
+ -15752346.078 7 -12274548.759 5 21660945.745 21660944.013 21660945.614
+ 42.800 35.600
+ -19532836.020 7 -15220386.469 7 20822077.787 20822075.719 20822077.151
+ 45.700 44.800
+ -4342606.794 4 -3383852.472 4 23896514.349 23896510.106 23896513.152
+ 28.600 24.200
+ 06 1 2 8 2 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4593774.335 4 -3579559.035 4 23601515.621 23601514.426 23601514.663
+ 29.900 24.200
+ -14290326.824 7 -11135317.881 6 20999930.962 20999928.191 20999930.074
+ 44.300 40.000
+ -7892261.049 5 -6149813.539 4 23142149.858 23142146.860 23142148.494
+ 33.500 26.800
+ -19567026.409 7 -15247031.749 7 20538859.519 20538857.765 20538858.658
+ 46.500 45.900
+ -15710763.890 7 -12242147.056 5 21668858.998 21668856.519 21668858.529
+ 42.700 35.100
+ -19561067.810 7 -15242385.260 7 20816705.536 20816703.372 20816704.872
+ 45.900 44.900
+ -4231937.580 4 -3297616.757 4 23917573.188 23917569.932 23917572.690
+ 27.100 24.200
+ 06 1 2 8 3 0.0000000 0 7G 5G14G20G 1G30G25G22
+ -4502513.621 4 -3508446.806 3 23618882.201 23618880.419 23618880.808
+ 28.600 22.100
+ -14244127.045 7 -11099318.055 6 21008722.826 21008719.661 21008721.632
+ 44.400 39.800
+ -7975509.055 5 -6214682.115 4 23126307.584 23126305.564 23126306.459
+ 32.800 27.100
+ -19591297.793 7 -15265944.516 7 20534240.729 20534239.077 20534239.853
+ 46.500 46.000
+ -15668592.234 7 -12209286.019 5 21676883.621 21676881.428 21676883.462
+ 42.700 34.800
+ -19588957.058 7 -15264117.137 7 20811398.408 20811396.114 20811397.711
+ 46.100 44.900
+ -4121141.393 4 -3211282.146 3 23938656.997 23938653.403 23938656.541
+ 25.300 22.100
+ 06 1 2 8 3 30.0000000 0 7G 5G14G20G 1G30G25G22
+ -4410916.568 4 -3437072.459 3 23636312.470 23636310.488 23636311.591
+ 29.500 21.100
+ -14197595.859 7 -11063059.985 6 21017577.178 21017574.219 21017576.303
+ 44.600 39.800
+ -8058380.203 5 -6279257.008 4 23110537.904 23110535.705 23110536.882
+ 33.900 27.100
+ -19615253.588 7 -15284611.369 7 20529681.998 20529680.358 20529681.213
+ 46.400 46.000
+ -15625832.772 7 -12175966.954 5 21685020.757 21685018.806 21685020.414
+ 42.500 35.500
+ -19616503.903 7 -15285582.214 7 20806156.433 20806154.159 20806155.732
+ 46.000 44.800
+ -4010220.784 4 -3124850.535 3 23959764.569 23959761.158 23959763.752
+ 25.300 22.100
+ 06 1 2 8 4 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4318985.910 5 -3365438.159 3 23653806.405 23653804.899 23653805.548
+ 30.400 23.000
+ -14150733.014 7 -11026543.489 6 21026494.775 21026491.943 21026493.904
+ 44.600 39.500
+ -8140871.825 6 -6343536.208 4 23094841.400 23094837.656 23094840.022
+ 36.100 25.900
+ -19638892.779 7 -15303031.514 7 20525183.693 20525181.991 20525182.946
+ 46.600 46.000
+ -15582487.086 7 -12142191.102 5 21693269.367 21693267.357 21693268.868
+ 42.500 35.400
+ -200612.751 3 -156322.013 2 24555836.039 24555835.470 24555835.024
+ 23.400 13.900
+ -19643708.850 7 -15306780.869 7 20800979.365 20800977.307 20800978.726
+ 45.700 44.900
+ -3899177.815 3 -3038323.617 3 23980895.846 23980892.130 23980894.645
+ 23.000 23.400
+ 06 1 2 8 4 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4226724.235 4 -3293545.940 3 23671363.342 23671361.031 23671362.085
+ 28.400 21.600
+ -14103538.792 7 -10989768.769 6 21035476.079 21035472.672 21035474.846
+ 44.700 39.400
+ -8222981.261 5 -6407517.600 4 23079215.831 23079212.656 23079214.633
+ 35.800 25.600
+ -19662214.353 7 -15321204.169 7 20520745.752 20520744.079 20520744.942
+ 46.400 46.100
+ -15538557.076 7 -12107959.923 5 21701628.472 21701626.605 21701628.238
+ 42.200 35.500
+ -316304.367 3 -246471.241 3 24533820.845 24533819.670 24533819.729
+ 19.900 18.600
+ -19670572.054 7 -15327713.231 7 20795867.560 20795865.367 20795866.860
+ 45.800 45.100
+ -3788014.827 4 -2951703.221 4 24002048.783 24002046.083 24002048.152
+ 24.600 24.200
+ 06 1 2 8 5 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4134134.248 4 -3221397.897 3 23688982.665 23688981.008 23688981.959
+ 29.200 23.000
+ -14056013.511 7 -10952736.086 6 21044519.475 21044516.492 21044518.651
+ 44.600 39.300
+ -8304706.014 5 -6471199.235 4 23063663.354 23063661.260 23063662.265
+ 33.600 27.100
+ -19685217.345 7 -15339128.577 7 20516368.459 20516366.667 20516367.603
+ 46.500 45.900
+ -15494044.277 7 -12073274.624 5 21710099.273 21710097.076 21710098.927
+ 42.600 35.300
+ -431958.508 3 -336591.281 2 24511812.156 24511810.769 24511811.225
+ 18.600 17.000
+ -19697093.826 7 -15348379.544 7 20790820.619 20790818.446 20790819.955
+ 45.900 45.200
+ -3676734.068 3 -2864990.994 3 24023224.882 24023221.567 24023224.106
+ 22.600 19.300
+ 06 1 2 8 5 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -4041218.845 4 -3148996.306 3 23706663.252 23706662.213 23706662.302
+ 27.400 23.000
+ -14008157.187 7 -10915445.449 6 21053626.343 21053623.170 21053625.256
+ 44.300 39.300
+ -8386043.736 5 -6534579.258 4 23048185.840 23048183.346 23048184.741
+ 34.000 27.600
+ -19707900.617 7 -15356803.855 7 20512052.000 20512050.183 20512051.168
+ 46.500 46.000
+ -15448950.351 7 -12038136.501 5 21718680.285 21718678.318 21718679.989
+ 42.700 35.700
+ -547572.985 3 -426680.376 2 24489811.874 24489810.530 24489810.439
+ 20.500 13.900
+ -19723274.485 7 -15368780.051 7 20785838.714 20785836.431 20785837.963
+ 45.900 45.100
+ -3565338.046 4 -2778188.926 3 24044423.110 24044419.862 24044422.534
+ 28.100 18.600
+ 06 1 2 8 6 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3947980.871 4 -3076343.332 4 23724405.464 23724405.221 23724404.981
+ 28.600 24.200
+ -13959969.918 7 -10877896.930 6 21062796.147 21062792.922 21062794.963
+ 44.300 39.100
+ -8466991.536 5 -6597655.450 4 23032781.951 23032779.652 23032781.025
+ 35.900 28.600
+ -19730263.238 7 -15374229.273 7 20507796.669 20507794.754 20507795.794
+ 46.400 45.900
+ -15403277.192 7 -12002547.025 5 21727371.754 21727369.612 21727371.324
+ 42.400 35.500
+ -663145.059 3 -516736.512 2 24467819.123 24467817.948 24467818.088
+ 21.600 12.600
+ -19749114.253 7 -15388914.929 7 20780921.655 20780919.368 20780920.862
+ 45.800 45.200
+ -3453829.251 4 -2691299.010 3 24065641.608 24065639.165 24065641.120
+ 24.900 19.300
+ 06 1 2 8 6 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3854422.736 4 -3003440.879 3 23742210.326 23742207.788 23742209.238
+ 27.900 21.100
+ -13911451.942 7 -10840090.718 6 21072028.443 21072025.635 21072027.636
+ 44.400 39.200
+ -8547546.737 5 -6660425.732 4 23017452.680 23017450.268 23017451.420
+ 34.400 27.900
+ -19752304.182 7 -15391404.037 7 20503602.430 20503600.439 20503601.473
+ 46.500 46.100
+ -15357026.447 7 -11966507.485 5 21736172.863 21736170.504 21736172.424
+ 42.100 35.100
+ -778672.089 3 -606757.518 2 24445834.162 24445833.907 24445833.110
+ 21.600 16.100
+ -19774613.441 7 -15408784.427 7 20776068.972 20776066.974 20776068.348
+ 45.700 45.300
+ -3342209.780 4 -2604322.877 3 24086882.422 24086880.215 24086882.167
+ 25.600 23.800
+ 06 1 2 8 7 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3760547.286 4 -2930291.174 4 23760074.257 23760072.186 23760072.817
+ 26.800 24.200
+ -13862603.649 7 -10802027.118 6 21081324.042 21081321.196 21081323.093
+ 44.000 39.100
+ -8627706.988 5 -6722888.270 4 23002199.164 23002196.409 23002197.822
+ 35.900 27.100
+ -19774022.445 7 -15408327.358 7 20499469.376 20499467.691 20499468.548
+ 46.400 46.200
+ -15310199.984 7 -11930019.324 5 21745083.379 21745081.459 21745083.136
+ 42.300 35.200
+ -894151.574 3 -696741.444 2 24423860.833 24423858.495 24423858.982
+ 23.800 12.600
+ -19799772.477 7 -15428388.863 7 20771281.415 20771279.405 20771280.705
+ 45.800 45.400
+ -3230481.876 3 -2517262.271 3 24108144.213 24108141.172 24108143.221
+ 23.800 23.400
+ 06 1 2 8 7 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3666357.277 4 -2856896.393 3 23777997.333 23777995.796 23777995.843
+ 26.500 23.400
+ -13813424.899 7 -10763706.015 6 21090682.686 21090679.677 21090681.568
+ 44.000 39.200
+ -8707469.802 6 -6785041.102 4 22987020.893 22987017.726 22987019.681
+ 38.000 26.800
+ -19795416.925 7 -15424998.379 7 20495398.148 20495396.484 20495397.353
+ 46.400 46.100
+ -15262799.535 7 -11893083.916 5 21754103.421 21754101.698 21754103.222
+ 42.500 34.900
+ -1009581.328 3 -786686.676 1 24401893.646 24401892.740 24401893.086
+ 21.600 11.000
+ -19824591.552 7 -15447728.399 7 20766558.625 20766556.400 20766557.857
+ 45.800 45.300
+ -3118647.606 3 -2430118.737 4 24129423.361 24129422.948 24129424.311
+ 23.000 24.900
+ 06 1 2 8 8 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3571855.467 4 -2783258.619 3 23795980.588 23795978.815 23795979.527
+ 28.400 22.100
+ -13763915.991 7 -10725127.648 6 21100103.477 21100100.936 21100102.612
+ 43.700 39.300
+ -8786832.302 6 -6846882.020 4 22971918.203 22971915.995 22971917.101
+ 37.100 28.600
+ -19816486.717 7 -15441416.403 7 20491388.879 20491386.960 20491387.981
+ 46.300 46.200
+ -15214826.957 7 -11855702.681 5 21763232.964 21763230.513 21763232.377
+ 42.400 34.900
+ -1124958.554 3 -876590.925 2 24379938.835 24379937.763 24379937.452
+ 18.600 16.100
+ -19849071.083 7 -15466803.355 7 20761900.373 20761898.085 20761899.653
+ 46.100 45.200
+ -3006709.662 3 -2342894.487 3 24150728.577 24150724.081 24150727.150
+ 23.800 22.100
+ 06 1 2 8 8 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3477044.480 4 -2709379.913 3 23814022.564 23814020.379 23814021.683
+ 29.200 22.100
+ -13714077.215 7 -10686292.245 6 21109587.838 21109584.877 21109586.635
+ 43.800 39.100
+ -8865792.129 6 -6908409.173 4 22956892.721 22956890.110 22956891.600
+ 36.500 28.100
+ -19837230.788 7 -15457580.616 7 20487441.372 20487439.555 20487440.473
+ 46.300 46.200
+ -15166284.166 7 -11817877.128 5 21772469.795 21772467.864 21772469.598
+ 42.200 35.300
+ -1240280.711 4 -966452.228 2 24357994.090 24357992.626 24357992.722
+ 24.200 16.100
+ -19873211.379 7 -15485613.977 7 20757306.827 20757304.355 20757306.036
+ 46.200 45.200
+ -2894670.356 4 -2255591.180 2 24172046.063 24172043.659 24172045.999
+ 24.200 15.100
+ 06 1 2 8 9 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3381927.083 4 -2635262.472 3 23832122.992 23832121.236 23832121.996
+ 27.100 22.100
+ -13663908.658 7 -10647199.868 6 21119134.223 21119131.612 21119133.394
+ 43.700 39.100
+ -8944346.865 5 -6969620.636 4 22941944.380 22941941.734 22941943.218
+ 35.700 28.100
+ -19857648.286 7 -15473490.356 7 20483556.160 20483554.279 20483555.240
+ 46.400 46.300
+ -15117172.862 7 -11779608.586 5 21781815.778 21781813.676 21781815.264
+ 42.400 35.400
+ -1355545.470 4 -1056268.869 2 24336060.390 24336057.677 24336058.474
+ 24.200 13.900
+ -19897012.809 7 -15504160.542 7 20752777.238 20752775.162 20752776.625
+ 46.200 45.400
+ -2782532.083 4 -2168210.729 3 24193384.942 24193383.364 24193385.535
+ 25.300 19.900
+ 06 1 2 8 9 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3286506.083 4 -2560908.432 2 23850281.788 23850278.585 23850280.532
+ 28.100 17.000
+ -13613410.275 7 -10607850.486 6 21128743.793 21128741.301 21128742.883
+ 43.800 39.100
+ -9022493.660 5 -7030514.248 4 22927073.109 22927071.127 22927071.845
+ 35.100 29.000
+ -19877738.085 7 -15489144.745 7 20479732.911 20479731.252 20479732.119
+ 46.300 46.200
+ -15067494.992 7 -11740898.561 5 21791268.776 21791266.912 21791268.518
+ 42.400 34.800
+ -1470750.416 3 -1146038.922 2 24314137.835 24314134.897 24314135.922
+ 23.400 12.600
+ -19920475.531 7 -15522443.181 7 20748312.531 20748310.249 20748311.806
+ 46.200 45.300
+ -2670296.992 4 -2080754.897 3 24214744.201 24214740.659 24214743.609
+ 27.100 19.300
+ 06 1 2 8 10 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3190784.138 4 -2486319.865 3 23868495.476 23868493.830 23868494.705
+ 24.600 19.900
+ -13562582.481 7 -10568244.421 6 21138416.305 21138413.527 21138415.204
+ 44.000 39.000
+ -9100230.013 6 -7091088.013 4 22912281.181 22912278.600 22912279.892
+ 36.800 29.900
+ -19897499.243 7 -15504543.051 7 20475972.650 20475970.790 20475971.760
+ 46.200 46.300
+ -15017252.487 7 -11701748.551 5 21800829.751 21800827.332 21800829.478
+ 42.300 34.600
+ -1585892.573 3 -1235760.017 3 24292224.047 24292224.197 24292224.155
+ 22.100 18.600
+ -19943599.918 7 -15540462.184 7 20743912.130 20743909.789 20743911.414
+ 46.100 45.300
+ -2557967.470 4 -1993225.412 3 24236120.044 24236116.522 24236118.949
+ 26.200 18.600
+ 06 1 2 8 10 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -3094763.925 4 -2411498.950 3 23886768.137 23886765.639 23886767.168
+ 28.600 19.900
+ -13511425.635 7 -10528381.951 6 21148151.022 21148148.145 21148150.157
+ 44.100 38.800
+ -9177553.691 6 -7151340.227 5 22897566.659 22897564.302 22897565.628
+ 36.900 30.100
+ -19916930.763 7 -15519684.495 7 20472274.867 20472273.246 20472274.008
+ 46.100 46.300
+ -14966447.209 7 -11662160.020 5 21810497.483 21810495.424 21810497.277
+ 42.100 34.900
+ -1700969.320 3 -1325430.102 2 24270328.113 24270325.434 24270327.214
+ 22.100 15.100
+ -19966386.453 7 -15558217.927 7 20739575.921 20739573.698 20739575.231
+ 46.100 45.300
+ -2445545.877 3 -1905624.252 3 24257512.643 24257510.011 24257512.394
+ 22.600 19.300
+ 06 1 2 8 11 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2998448.320 4 -2336447.831 3 23905096.371 23905094.650 23905095.317
+ 28.800 22.600
+ -13459939.755 7 -10488263.092 6 21157948.811 21157945.624 21157947.619
+ 44.000 39.000
+ -9254461.906 6 -7211268.695 4 22882930.874 22882928.540 22882929.977
+ 36.200 28.800
+ -19936031.637 7 -15534568.294 7 20468640.023 20468638.418 20468639.196
+ 46.300 46.300
+ -14915081.151 6 -11622134.517 5 21820272.502 21820270.379 21820272.072
+ 41.800 35.300
+ -1815978.155 3 -1415047.343 2 24248440.902 24248440.523 24248440.399
+ 22.100 17.000
+ -19988835.389 7 -15575710.604 7 20735304.151 20735301.906 20735303.441
+ 46.300 45.600
+ -2333034.464 3 -1817953.069 2 24278923.514 24278919.548 24278922.799
+ 23.000 17.000
+ 06 1 2 8 11 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2901840.001 4 -2261168.637 3 23923481.081 23923478.559 23923479.945
+ 29.900 19.300
+ -13408125.016 7 -10447887.985 6 21167808.696 21167805.781 21167807.722
+ 44.300 38.900
+ -9330952.377 6 -7270871.661 4 22868375.651 22868373.301 22868374.394
+ 36.000 28.800
+ -19954800.698 7 -15549193.539 7 20465068.512 20465066.722 20465067.668
+ 46.200 46.400
+ -14863156.198 6 -11581673.521 5 21830152.816 21830151.308 21830152.721
+ 41.800 34.500
+ -1930916.885 3 -1504609.856 3 24226568.600 24226568.550 24226568.233
+ 19.300 19.300
+ -20010947.171 7 -15592940.563 7 20731096.441 20731094.193 20731095.695
+ 46.300 45.600
+ -2220435.455 3 -1730213.593 3 24300348.527 24300347.314 24300348.912
+ 23.000 18.600
+ 06 1 2 8 12 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2804941.719 4 -2185663.429 2 23941919.522 23941917.079 23941918.197
+ 26.500 15.100
+ -13355981.881 7 -10407256.976 6 21177731.310 21177728.313 21177730.294
+ 44.400 38.900
+ -9407022.304 6 -7330146.942 4 22853900.098 22853897.049 22853898.812
+ 36.500 27.600
+ -19973237.069 7 -15563559.542 7 20461560.065 20461558.472 20461559.280
+ 46.100 46.300
+ -14810674.356 6 -11540778.581 5 21840140.106 21840138.096 21840139.752
+ 41.900 34.100
+ -2045782.638 3 -1594115.591 2 24204711.343 24204709.072 24204710.274
+ 23.400 13.900
+ -20032722.071 7 -15609908.015 7 20726952.692 20726950.654 20726952.015
+ 46.400 45.700
+ -2107751.278 4 -1642407.832 3 24321792.772 24321790.382 24321792.540
+ 25.300 23.400
+ 06 1 2 8 12 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2707756.184 4 -2109934.461 3 23960413.404 23960411.673 23960412.727
+ 27.100 19.300
+ -13303510.312 7 -10366370.046 6 21187716.016 21187713.311 21187715.218
+ 44.400 38.700
+ -9482669.187 6 -7389092.558 4 22839504.819 22839502.425 22839503.605
+ 36.400 29.500
+ -19991339.803 7 -15577665.568 7 20458115.209 20458113.612 20458114.394
+ 46.100 46.400
+ -14757637.596 6 -11499451.238 5 21850232.701 21850230.848 21850232.398
+ 41.900 34.700
+ -2160573.371 3 -1683562.851 3 24182866.776 24182865.899 24182865.665
+ 23.800 18.600
+ -20054160.527 7 -15626613.305 7 20722873.154 20722870.952 20722872.486
+ 46.400 45.700
+ -1994984.330 3 -1554537.542 3 24343253.981 24343249.066 24343252.599
+ 23.000 22.100
+ 06 1 2 8 13 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2610286.147 4 -2033983.787 2 23978961.806 23978958.947 23978960.416
+ 28.400 17.800
+ -13250710.891 7 -10325227.649 6 21197763.574 21197760.657 21197762.678
+ 44.400 38.500
+ -9557890.909 6 -7447706.890 4 22825190.659 22825188.408 22825189.520
+ 36.700 29.900
+ -20009107.856 7 -15591510.803 7 20454733.989 20454732.504 20454733.202
+ 46.000 46.300
+ -14704047.976 7 -11457693.088 5 21860430.434 21860428.295 21860430.219
+ 42.300 34.400
+ -2275285.864 4 -1772949.148 3 24161038.505 24161036.825 24161037.202
+ 25.300 20.500
+ -20075262.954 7 -15643056.753 7 20718857.712 20718855.230 20718856.957
+ 46.600 45.600
+ -1882136.784 3 -1466604.433 3 24364725.970 24364723.700 24364725.043
+ 21.600 22.600
+ 06 1 2 8 13 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2512534.319 4 -1957813.493 3 23997563.054 23997561.071 23997562.275
+ 28.800 19.900
+ -13197583.543 7 -10283829.720 6 21207873.539 21207870.490 21207872.449
+ 44.200 38.500
+ -9632684.822 6 -7505987.858 5 22810957.876 22810955.634 22810956.663
+ 37.300 30.200
+ -20026540.227 7 -15605094.469 7 20451416.835 20451415.199 20451415.949
+ 46.000 46.400
+ -14649907.432 6 -11415505.645 5 21870733.011 21870730.869 21870732.741
+ 41.800 34.100
+ -2389918.087 3 -1862272.885 3 24139223.676 24139223.022 24139222.924
+ 22.100 20.500
+ -20096029.574 7 -15659238.535 7 20714905.692 20714903.476 20714904.964
+ 46.300 45.700
+ -1769210.926 3 -1378610.371 4 24386214.651 24386213.264 24386214.489
+ 22.100 24.200
+ 06 1 2 8 14 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2414503.306 3 -1881425.707 3 24016217.157 24016215.782 24016216.254
+ 23.800 19.300
+ -13144128.613 7 -10242176.543 6 21218045.425 21218042.656 21218044.528
+ 44.300 38.100
+ -9707048.377 6 -7563933.478 5 22796807.115 22796804.618 22796805.850
+ 37.800 30.800
+ -20043635.979 7 -15618415.829 7 20448163.654 20448161.912 20448162.768
+ 46.000 46.300
+ -14595218.077 6 -11372890.568 5 21881140.263 21881138.089 21881139.969
+ 41.600 34.300
+ -2504467.210 3 -1951531.865 2 24117424.875 24117424.729 24117424.472
+ 20.500 17.800
+ -20116460.781 7 -15675158.953 7 20711017.859 20711015.526 20711017.137
+ 46.400 45.700
+ -1656209.470 3 -1290557.373 3 24407719.128 24407715.876 24407717.927
+ 21.100 23.000
+ 06 1 2 8 14 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2316196.042 4 -1804822.651 2 24034925.009 24034922.762 24034923.533
+ 25.900 17.000
+ -13090346.341 7 -10200268.288 6 21228279.918 21228276.913 21228278.944
+ 44.000 38.100
+ -9780979.032 6 -7621541.768 4 22782738.477 22782736.010 22782737.196
+ 37.300 29.900
+ -20060394.119 7 -15631474.120 7 20444974.672 20444972.977 20444973.835
+ 46.100 46.300
+ -14539981.880 7 -11329849.379 5 21891651.321 21891649.321 21891651.095
+ 42.100 34.400
+ -2618930.622 4 -2040724.067 3 24095644.391 24095643.338 24095643.634
+ 24.900 21.600
+ -20136557.053 7 -15690818.386 7 20707193.552 20707191.330 20707192.906
+ 46.500 45.700
+ -1543134.399 3 -1202446.968 3 24429236.215 24429233.322 24429235.563
+ 23.000 21.100
+ 06 1 2 8 15 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2217615.156 4 -1728006.372 3 24053684.514 24053682.428 24053683.221
+ 25.600 22.100
+ -13036236.974 7 -10158105.153 6 21238576.434 21238573.586 21238575.607
+ 44.000 37.800
+ -9854474.313 6 -7678810.828 4 22768752.653 22768750.225 22768751.527
+ 37.200 29.900
+ -20076813.592 7 -15644268.514 7 20441850.146 20441848.489 20441849.357
+ 46.200 46.400
+ -14484200.971 6 -11286383.735 5 21902266.539 21902263.917 21902265.959
+ 41.800 34.100
+ -2733305.951 4 -2129847.627 2 24073878.398 24073877.778 24073878.356
+ 26.200 13.900
+ -20156318.700 7 -15706217.072 7 20703432.908 20703430.783 20703432.326
+ 46.300 45.800
+ -1429988.177 3 -1114281.157 3 24450765.914 24450765.323 24450766.065
+ 22.100 21.100
+ 06 1 2 8 15 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2118763.412 4 -1650979.056 3 24072495.686 24072493.018 24072494.177
+ 26.500 19.900
+ -12981800.663 7 -10115687.261 6 21248935.479 21248932.544 21248934.483
+ 43.800 38.000
+ -9927531.787 6 -7735738.731 4 22754850.234 22754847.564 22754849.116
+ 37.600 28.600
+ -20092893.413 7 -15656798.244 7 20438790.297 20438788.531 20438789.505
+ 46.200 46.400
+ -14427877.510 6 -11242495.318 5 21912983.936 21912981.808 21912983.769
+ 41.900 33.900
+ -2847590.530 3 -2218900.499 3 24052131.305 24052130.843 24052130.413
+ 23.000 20.500
+ -20175746.180 7 -15721355.367 7 20699736.140 20699733.873 20699735.445
+ 46.300 45.800
+ -1316772.874 4 -1026061.560 3 24472312.463 24472309.197 24472311.453
+ 26.500 20.500
+ 06 1 2 8 16 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -2019643.510 4 -1573742.733 2 24091357.048 24091354.632 24091356.135
+ 26.200 15.100
+ -12927037.881 7 -10073014.983 6 21259356.657 21259353.633 21259355.658
+ 43.900 38.400
+ -10000149.215 6 -7792323.733 4 22741031.664 22741028.915 22741030.651
+ 38.500 28.100
+ -20108632.603 7 -15669062.549 7 20435795.280 20435793.407 20435794.416
+ 46.100 46.300
+ -14371013.482 6 -11198185.686 5 21923804.626 21923802.859 21923804.403
+ 41.200 33.600
+ -2961781.758 4 -2307880.633 2 24030400.826 24030400.372 24030400.193
+ 24.600 16.100
+ -20194839.873 7 -15736233.568 7 20696102.740 20696100.541 20696102.071
+ 46.300 45.900
+ -1203490.953 4 -937789.961 2 24493868.404 24493865.115 24493867.831
+ 25.600 17.000
+ 06 1 2 8 16 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1920258.128 4 -1496299.588 3 24110269.093 24110267.944 24110268.106
+ 24.600 20.500
+ -12871948.793 7 -10030088.433 6 21269839.913 21269836.871 21269838.752
+ 43.800 38.100
+ -10072324.047 6 -7848563.888 4 22727297.103 22727294.244 22727296.140
+ 38.100 28.800
+ -20124030.320 7 -15681060.769 7 20432865.101 20432863.351 20432864.269
+ 46.000 46.300
+ -14313611.073 6 -11153456.542 5 21934728.043 21934726.053 21934727.853
+ 41.300 33.500
+ -3075877.192 3 -2396786.093 2 24008688.480 24008688.639 24008688.520
+ 21.100 16.100
+ -20213600.092 7 -15750851.919 7 20692532.845 20692530.527 20692532.126
+ 46.300 46.000
+ -1090144.576 3 -849468.180 2 24515437.723 24515435.071 24515437.173
+ 23.800 13.900
+ 06 1 2 8 17 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1820610.138 4 -1418651.808 3 24129232.341 24129230.211 24129230.776
+ 25.600 20.500
+ -12816533.858 7 -9986907.971 6 21280384.630 21280381.914 21280383.755
+ 43.700 37.900
+ -10144053.783 6 -7904457.182 4 22713647.228 22713644.668 22713646.020
+ 37.300 28.600
+ -20139085.388 7 -15692791.988 7 20430000.310 20429998.435 20429999.438
+ 46.000 46.300
+ -14255672.461 6 -11108309.564 5 21945753.485 21945751.299 21945753.200
+ 41.200 33.900
+ -3189874.313 3 -2485614.997 2 23986995.816 23986995.664 23986995.870
+ 23.000 17.000
+ -20232027.328 7 -15765210.804 7 20689026.310 20689023.934 20689025.578
+ 46.300 45.800
+ -976736.402 3 -761098.232 1 24537018.032 24537016.632 24537017.720
+ 22.600 9.000
+ 06 1 2 8 17 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1720702.175 4 -1340801.473 3 24148242.414 24148241.875 24148241.924
+ 24.900 19.900
+ -12760793.276 7 -9943473.758 6 21290992.117 21290988.911 21290990.870
+ 43.400 37.700
+ -10215336.062 6 -7960001.820 5 22700083.081 22700080.392 22700081.799
+ 37.100 30.100
+ -20153796.832 7 -15704255.454 7 20427200.689 20427198.948 20427199.889
+ 46.100 46.200
+ -14197199.663 6 -11062746.344 5 21956880.480 21956878.540 21956880.302
+ 41.600 34.400
+ -3303770.391 4 -2574365.086 2 23965322.818 23965321.588 23965322.439
+ 24.200 17.800
+ -20250121.960 7 -15779310.516 7 20685582.820 20685580.687 20685582.158
+ 46.400 46.100
+ -863268.708 3 -672681.823 9 24558610.108 24558607.792 24558609.588
+ 21.100 -3.000
+ 06 1 2 8 18 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1620536.891 4 -1262750.594 2 24167303.607 24167302.403 24167303.056
+ 25.600 17.800
+ -12704727.096 7 -9899785.834 6 21301660.807 21301658.037 21301659.895
+ 43.600 37.700
+ -10286168.461 6 -8015195.881 4 22686603.916 22686601.435 22686602.942
+ 38.200 29.700
+ -20168163.747 7 -15715450.455 7 20424466.800 20424465.066 20424465.981
+ 46.100 46.200
+ -14138194.946 6 -11016768.647 5 21968108.833 21968106.951 21968108.455
+ 41.100 34.100
+ -3417562.865 3 -2663034.509 3 23943669.817 23943668.165 23943668.332
+ 23.400 21.100
+ -20267884.368 7 -15793151.355 7 20682202.842 20682200.630 20682202.109
+ 46.400 45.900
+ -749743.403 3 -584220.614 3 24580215.648 24580211.419 24580214.162
+ 21.600 18.600
+ 06 1 2 8 18 30.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1520117.039 3 -1184501.352 2 24186415.019 24186411.550 24186412.917
+ 23.800 17.000
+ -12648335.961 7 -9855844.697 6 21312391.692 21312389.033 21312390.730
+ 43.400 37.700
+ -10356548.527 6 -8070037.502 5 22673210.953 22673208.966 22673210.051
+ 38.700 31.000
+ -20182185.096 7 -15726376.183 7 20421798.604 20421796.851 20421797.792
+ 46.200 46.300
+ -14078660.481 6 -10970378.158 5 21979437.649 21979435.715 21979437.396
+ 40.900 33.600
+ -3531249.358 4 -2751621.270 3 23922035.964 23922034.346 23922034.588
+ 24.200 21.100
+ -20285315.047 7 -15806733.700 7 20678885.902 20678883.666 20678885.173
+ 46.300 46.000
+ -636163.336 3 -495716.765 2 24601826.536 24601825.464 24601826.597
+ 22.100 17.800
+ 06 1 2 8 19 0.0000000 0 8G 5G14G20G 1G30G16G25G22
+ -1419445.438 4 -1106055.943 2 24205570.647 24205569.113 24205569.598
+ 27.100 16.100
+ -12591619.964 7 -9811650.421 6 21323184.540 21323181.677 21323183.456
+ 43.400 37.700
+ -10426474.020 6 -8124524.898 4 22659905.144 22659902.281 22659903.824
+ 38.600 29.900
+ -20195859.967 7 -15737031.925 7 20419196.344 20419194.627 20419195.496
+ 46.000 46.300
+ -14018598.492 6 -10923576.603 5 21990867.640 21990865.100 21990867.231
+ 41.300 33.800
+ -3644827.047 4 -2840123.331 3 23900422.185 23900420.576 23900420.898
+ 24.200 19.900
+ -20302414.414 7 -15820057.877 7 20675631.984 20675629.703 20675631.288
+ 46.300 46.000
+ -522530.442 3 -407171.707 3 24623451.062 24623448.407 24623450.040
+ 21.100 19.900
+ 06 1 2 8 19 30.0000000 0 7G 5G14G20G 1G30G16G25
+ -1318524.768 4 -1027416.431 2 24224775.155 24224773.159 24224774.727
+ 28.100 16.100
+ -12534579.615 7 -9767203.404 6 21334038.870 21334036.087 21334037.809
+ 43.300 37.400
+ -10495942.491 6 -8178656.180 4 22646685.571 22646682.689 22646684.343
+ 38.100 29.000
+ -20209187.439 7 -15747416.969 7 20416660.296 20416658.546 20416659.416
+ 46.000 46.200
+ -13958011.144 6 -10876365.682 5 22002396.897 22002394.592 22002396.521
+ 41.000 34.000
+ -3758293.640 4 -2928538.808 3 23878830.339 23878828.904 23878829.587
+ 27.900 21.600
+ -20319182.920 7 -15833124.245 7 20672441.208 20672438.748 20672440.391
+ 46.400 45.900
+ 06 1 2 8 20 0.0000000 0 7G 5G14G20G 1G30G16G25
+ -1217357.635 4 -948584.899 3 24244026.310 24244024.983 24244025.393
+ 25.900 19.900
+ -12477215.027 7 -9722503.734 6 21344954.852 21344952.211 21344953.968
+ 43.400 37.500
+ -10564951.421 6 -8232429.385 5 22633553.567 22633550.934 22633552.441
+ 38.500 30.400
+ -20222166.616 7 -15757530.615 7 20414190.250 20414188.660 20414189.447
+ 46.000 46.200
+ -13896900.731 6 -10828747.185 5 22014025.505 22014023.486 22014025.244
+ 41.000 33.500
+ -3871646.363 4 -3016865.594 3 23857260.252 23857258.832 23857259.179
+ 26.800 19.300
+ -20335620.871 7 -15845933.039 7 20669312.909 20669310.722 20669312.230
+ 46.200 46.000
+ 06 1 2 8 20 30.0000000 0 7G 5G14G20G 1G30G16G25
+ -1115946.780 4 -869563.463 3 24263324.737 24263322.947 24263323.336
+ 24.600 18.600
+ -12419526.738 7 -9677551.827 6 21355932.881 21355929.983 21355931.779
+ 43.300 37.500
+ -10633498.667 6 -8285842.821 5 22620509.300 22620506.755 22620508.314
+ 38.900 30.400
+ -20234796.422 7 -15767372.023 7 20411786.994 20411785.246 20411786.160
+ 46.000 46.400
+ -13835269.354 6 -10780722.739 5 22025753.729 22025751.621 22025753.453
+ 40.900 33.900
+ -3984882.696 4 -3105101.645 3 23835713.135 23835709.952 23835711.419
+ 28.100 18.600
+ -20351728.805 7 -15858484.671 7 20666247.642 20666245.559 20666247.001
+ 46.200 46.100
+ 06 1 2 8 21 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -1014294.980 4 -790354.276 3 24282669.193 24282666.035 24282667.247
+ 24.600 20.500
+ -12361514.863 7 -9632347.785 6 21366972.044 21366969.187 21366971.038
+ 43.100 37.200
+ -10701581.792 6 -8338894.600 5 22607553.502 22607551.112 22607552.372
+ 39.000 30.800
+ -20247075.848 7 -15776940.410 7 20409450.310 20409448.511 20409449.467
+ 46.200 46.300
+ -13773119.449 6 -10732294.236 5 22037580.145 22037578.478 22037579.851
+ 40.200 34.000
+ -4098000.119 4 -3193245.024 3 23814185.159 23814184.894 23814184.824
+ 25.900 21.100
+ -20367507.164 7 -15870779.496 7 20663245.213 20663243.077 20663244.526
+ 46.500 46.200
+ -92302.160 3 -71923.565 3 24696493.257 24696493.793 24696494.130
+ 23.800 19.900
+ 06 1 2 8 21 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -912404.957 4 -710959.465 3 24302057.304 24302054.827 24302056.494
+ 26.200 18.600
+ -12303179.828 7 -9586891.921 6 21378072.717 21378069.961 21378071.790
+ 43.300 37.100
+ -10769198.411 6 -8391582.867 5 22594687.028 22594684.019 22594685.566
+ 39.100 31.100
+ -20259004.058 7 -15786235.122 7 20407180.584 20407178.690 20407179.741
+ 46.100 46.300
+ -13710453.135 6 -10683463.361 5 22049505.046 22049503.547 22049504.932
+ 40.600 34.300
+ -4210996.002 4 -3281293.711 3 23792683.074 23792682.025 23792682.227
+ 24.900 20.500
+ -20382956.268 7 -15882817.759 7 20660305.324 20660303.219 20660304.587
+ 46.400 46.200
+ -161281.082 3 -125673.369 3 24683369.917 24683367.903 24683368.000
+ 22.600 21.100
+ 06 1 2 8 22 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -810279.286 4 -631380.999 2 24321490.341 24321488.869 24321489.823
+ 25.600 15.100
+ -12244522.080 7 -9541184.597 6 21389235.126 21389232.181 21389234.021
+ 43.400 37.100
+ -10836346.351 6 -8443905.942 5 22581908.734 22581905.992 22581907.603
+ 39.300 30.400
+ -20270580.112 7 -15795255.424 7 20404977.848 20404975.935 20404976.905
+ 45.900 46.400
+ -13647272.799 6 -10634231.926 5 22061528.220 22061526.102 22061527.980
+ 40.700 33.400
+ -4323867.909 4 -3369245.773 3 23771204.982 23771203.387 23771203.918
+ 25.600 21.600
+ -20398076.666 7 -15894599.885 7 20657428.057 20657425.933 20657427.386
+ 46.400 46.200
+ -230045.019 3 -179255.649 2 24670284.710 24670282.025 24670282.680
+ 23.000 17.800
+ 06 1 2 8 22 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -707920.676 3 -551621.045 2 24340968.712 24340967.218 24340967.850
+ 22.600 15.100
+ -12185541.836 7 -9495225.968 6 21400458.328 21400455.712 21400457.632
+ 43.200 36.700
+ -10903022.970 6 -8495861.752 5 22569220.537 22569218.132 22569219.606
+ 39.500 31.000
+ -20281802.921 7 -15804000.467 7 20402842.035 20402840.246 20402841.205
+ 45.700 46.100
+ -13583580.682 6 -10584601.706 5 22073648.227 22073646.168 22073648.094
+ 40.200 32.300
+ -4436613.092 3 -3457099.128 3 23749749.774 23749748.756 23749748.836
+ 21.600 21.600
+ -20412868.786 7 -15906126.207 7 20654613.441 20654611.033 20654612.685
+ 46.400 46.300
+ -298591.214 4 -232668.235 2 24657239.993 24657238.555 24657238.889
+ 24.200 17.800
+ 06 1 2 8 23 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -605332.044 3 -471681.839 3 24360491.821 24360489.630 24360490.120
+ 21.100 18.600
+ -12126239.398 7 -9449016.288 6 21411743.632 21411740.621 21411742.544
+ 43.200 37.000
+ -10969225.600 6 -8547448.224 5 22556622.808 22556620.303 22556621.788
+ 39.900 31.600
+ -20292671.528 7 -15812469.515 7 20400773.722 20400771.976 20400772.921
+ 46.000 46.200
+ -13519379.111 6 -10534574.508 5 22085865.472 22085863.388 22085865.230
+ 40.900 32.700
+ -4549229.094 4 -3544851.801 4 23728320.087 23728318.891 23728319.071
+ 25.900 24.200
+ -20427333.125 7 -15917397.116 7 20651860.785 20651858.581 20651860.134
+ 46.500 46.400
+ -366916.820 3 -285908.919 2 24644237.525 24644235.871 24644236.898
+ 22.600 17.000
+ 06 1 2 8 23 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -502515.840 3 -391565.350 3 24380057.743 24380054.828 24380056.131
+ 23.000 19.300
+ -12066615.378 7 -9402556.017 6 21423089.430 21423086.842 21423088.629
+ 43.300 36.900
+ -11034953.178 6 -8598664.506 5 22544115.326 22544112.783 22544114.119
+ 39.600 32.100
+ -20303185.131 7 -15820661.935 7 20398773.177 20398771.340 20398772.261
+ 45.900 46.300
+ -13454670.384 6 -10484152.119 5 22098179.232 22098177.096 22098178.888
+ 40.500 32.800
+ -4661713.176 4 -3632501.675 3 23706914.965 23706913.336 23706914.153
+ 25.600 20.500
+ -20441470.025 7 -15928412.878 7 20649170.543 20649168.380 20649169.924
+ 46.700 46.400
+ -435019.243 3 -338975.718 2 24631278.070 24631276.337 24631277.152
+ 22.600 15.100
+ 06 1 2 8 24 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -399474.863 4 -311273.662 3 24399665.737 24399662.863 24399664.143
+ 25.600 21.100
+ -12006669.926 7 -9355845.290 6 21434497.205 21434494.123 21434496.003
+ 43.400 36.800
+ -11100202.934 6 -8649508.466 5 22531698.474 22531696.082 22531697.123
+ 39.100 31.300
+ -20313342.765 7 -15828576.976 7 20396840.214 20396838.453 20396839.318
+ 46.100 46.300
+ -13389456.823 6 -10433336.364 5 22110588.922 22110586.768 22110588.603
+ 40.600 32.800
+ -4774062.790 4 -3720046.773 3 23685536.139 23685534.257 23685534.603
+ 27.100 23.000
+ -20455280.012 7 -15939173.902 7 20646542.575 20646540.351 20646541.922
+ 46.400 46.400
+ -502895.591 3 -391866.344 1 24618361.137 24618359.520 24618360.527
+ 22.600 9.000
+ 06 1 2 8 24 30.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -296211.833 3 -230808.988 3 24419313.780 24419313.122 24419313.501
+ 22.600 18.600
+ -11946403.625 7 -9308884.540 6 21445964.962 21445962.287 21445964.227
+ 43.500 36.500
+ -11164972.405 6 -8699978.185 5 22519373.157 22519370.626 22519372.011
+ 39.800 30.600
+ -20323143.599 7 -15836213.989 7 20394975.099 20394973.383 20394974.221
+ 46.000 46.300
+ -13323740.880 6 -10382129.133 5 22123094.203 22123091.962 22123094.045
+ 40.800 32.400
+ -4886275.587 4 -3807485.276 3 23664182.571 23664180.349 23664181.338
+ 27.100 20.500
+ -20468763.551 7 -15949680.552 7 20643976.685 20643974.485 20643976.026
+ 46.400 46.300
+ -570543.137 3 -444578.712 1 24605488.228 24605486.662 24605487.401
+ 22.600 11.000
+ 06 1 2 8 25 0.0000000 0 8G 5G14G20G 1G30G16G25G 6
+ -192729.350 3 -150173.305 3 24439006.927 24439005.268 24439005.038
+ 19.900 18.600
+ -11885816.610 7 -9261673.890 6 21457494.733 21457491.519 21457493.623
+ 43.400 36.600
+ -11229259.159 6 -8750071.766 5 22507139.831 22507137.367 22507138.735
+ 40.000 30.600
+ -20332586.614 7 -15843572.182 7 20393178.183 20393176.297 20393177.358
+ 46.000 46.100
+ -13257524.850 6 -10330532.229 5 22135694.905 22135692.695 22135694.507
+ 40.000 32.400
+ -4998348.841 4 -3894815.001 3 23642855.635 23642853.879 23642854.193
+ 25.900 23.000
+ -20481921.071 7 -15959933.164 7 20641472.963 20641470.756 20641472.283
+ 46.400 46.400
+ -637958.878 4 -497110.422 2 24592660.077 24592658.470 24592659.080
+ 24.200 16.100
+ 06 1 2 8 25 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11824909.261 7 -9214213.629 6 21469084.577 21469081.962 21469083.738
+ 43.100 36.900
+ -11293061.140 6 -8799787.588 5 22494998.602 22494996.152 22494997.623
+ 40.100 30.200
+ -20341670.781 7 -15850650.755 7 20391449.495 20391447.621 20391448.691
+ 46.200 46.100
+ -13190811.058 6 -10278547.455 5 22148390.182 22148387.781 22148389.709
+ 40.000 32.000
+ -5110279.887 4 -3982033.981 3 23621556.630 23621553.573 23621554.744
+ 26.200 21.100
+ -20494752.984 7 -15969932.050 7 20639031.182 20639028.900 20639030.509
+ 46.400 46.400
+ -705140.339 3 -549459.613 3 24579875.821 24579874.913 24579874.869
+ 23.000 21.100
+ 06 1 2 8 26 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11763682.170 7 -9166504.227 6 21480735.856 21480733.170 21480734.838
+ 42.800 36.500
+ -11356375.985 6 -8849123.837 5 22482950.303 22482947.713 22482949.223
+ 40.200 30.400
+ -20350395.223 7 -15857449.022 7 20389789.186 20389787.456 20389788.475
+ 46.000 46.200
+ -13123602.003 6 -10226176.753 5 22161179.390 22161177.139 22161179.055
+ 40.000 31.300
+ -5222066.361 4 -4069140.240 3 23600283.372 23600281.824 23600282.235
+ 27.400 22.600
+ -20507259.932 7 -15979677.718 7 20636651.105 20636648.901 20636650.440
+ 46.300 46.400
+ -772084.462 3 -601623.831 3 24567136.520 24567135.577 24567135.735
+ 23.400 20.500
+ 06 1 2 8 26 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11702135.669 7 -9118545.929 6 21492447.986 21492445.087 21492446.899
+ 43.000 36.300
+ -11419201.457 6 -8898078.752 5 22470995.016 22470992.398 22470993.856
+ 39.700 30.200
+ -20358758.881 7 -15863966.157 7 20388197.849 20388195.949 20388197.000
+ 46.100 46.200
+ -13055900.010 6 -10173421.961 5 22174062.522 22174060.599 22174062.160
+ 39.500 31.800
+ -5333705.739 4 -4156131.925 3 23579039.090 23579037.142 23579038.037
+ 26.800 20.500
+ -20519442.331 7 -15989170.498 7 20634332.908 20634330.694 20634332.187
+ 46.300 46.500
+ -838788.669 3 -653601.094 3 24554441.914 24554442.170 24554441.790
+ 22.600 21.100
+ 06 1 2 8 27 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11640270.047 7 -9070338.960 6 21504220.394 21504217.662 21504219.613
+ 43.000 36.300
+ -11481535.589 6 -8946650.795 5 22459132.972 22459130.251 22459131.894
+ 39.300 30.200
+ -20366760.916 7 -15870201.511 7 20386675.175 20386673.301 20386674.261
+ 46.000 46.200
+ -12987707.572 6 -10120284.996 5 22187039.332 22187037.203 22187039.028
+ 39.900 32.700
+ -5445195.390 4 -4243006.915 3 23557823.694 23557821.207 23557822.374
+ 28.100 20.500
+ -20531300.590 7 -15998410.696 7 20632076.429 20632074.159 20632075.658
+ 46.400 46.500
+ -905250.036 3 -705389.133 3 24541795.345 24541794.667 24541794.460
+ 22.100 19.900
+ 06 1 2 8 27 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11578086.049 7 -9021883.913 6 21516053.988 21516050.969 21516052.730
+ 42.700 36.300
+ -11543375.867 6 -8994838.029 5 22447365.330 22447362.654 22447364.188
+ 40.000 30.200
+ -20374400.521 7 -15876154.448 7 20385221.260 20385219.588 20385220.423
+ 46.000 46.300
+ -12919027.011 6 -10066767.678 5 22200108.468 22200106.811 22200108.246
+ 39.300 32.700
+ -5556532.538 4 -4329763.120 3 23536636.448 23536634.377 23536635.228
+ 26.800 21.100
+ -20542835.237 7 -16007398.727 7 20629881.401 20629879.127 20629880.654
+ 46.300 46.400
+ -971465.964 3 -756985.917 3 24529195.275 24529193.636 24529194.518
+ 23.000 19.900
+ 06 1 2 8 28 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11515583.828 7 -8973180.905 6 21527947.238 21527944.757 21527946.486
+ 42.600 36.100
+ -11604720.623 6 -9042639.129 5 22435691.989 22435689.352 22435690.989
+ 40.300 31.500
+ -20381676.688 7 -15881824.192 7 20383836.858 20383834.967 20383835.934
+ 46.100 46.300
+ -12849860.793 6 -10012871.928 5 22213270.894 22213268.682 22213270.420
+ 39.600 31.800
+ -5667714.603 4 -4416398.435 3 23515479.228 23515477.103 23515477.973
+ 25.600 23.400
+ -20554046.669 7 -16016134.902 7 20627747.835 20627745.629 20627747.164
+ 46.100 46.500
+ -1037433.883 3 -808389.459 2 24516642.500 24516640.775 24516641.612
+ 22.600 17.800
+ 06 1 2 8 28 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11452763.968 7 -8924230.377 6 21539901.800 21539898.879 21539900.691
+ 42.400 36.100
+ -11665567.394 6 -9090052.198 5 22424113.157 22424110.731 22424112.119
+ 40.600 31.300
+ -20388588.499 7 -15887210.018 7 20382521.258 20382519.627 20382520.528
+ 46.200 46.300
+ -12780211.471 6 -9958599.727 5 22226524.322 22226522.755 22226523.980
+ 39.500 32.700
+ -5778739.258 4 -4502911.125 4 23494352.240 23494350.351 23494350.660
+ 26.800 24.900
+ -20564935.469 7 -16024619.680 7 20625675.752 20625673.565 20625675.121
+ 46.200 46.500
+ -1103150.683 3 -859597.339 2 24504135.512 24504134.765 24504135.522
+ 22.100 17.000
+ 06 1 2 8 29 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11389626.779 7 -8875032.586 5 21551916.470 21551913.258 21551915.373
+ 42.500 35.300
+ -11725914.033 6 -9137075.546 5 22412629.506 22412627.034 22412628.382
+ 40.600 31.300
+ -20395135.150 7 -15892311.306 7 20381275.623 20381273.765 20381274.779
+ 46.100 46.000
+ -12710081.352 6 -9903952.886 5 22239869.570 22239867.851 22239869.219
+ 39.000 32.300
+ -5889603.977 4 -4589299.161 3 23473255.330 23473252.613 23473254.171
+ 27.600 21.100
+ -20575502.132 7 -16032853.437 7 20623665.033 20623662.798 20623664.292
+ 46.000 46.400
+ -1168613.665 3 -910607.413 2 24491678.373 24491677.685 24491677.914
+ 21.600 17.800
+ 06 1 2 8 29 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11326172.602 7 -8825587.790 5 21563990.971 21563988.349 21563990.358
+ 42.500 35.400
+ -11785758.464 6 -9183707.570 5 22401241.820 22401239.065 22401240.566
+ 41.000 31.600
+ -20401315.760 7 -15897127.365 7 20380099.567 20380097.658 20380098.655
+ 46.200 46.100
+ -12639473.055 6 -9848933.431 5 22253305.973 22253304.019 22253305.788
+ 39.500 32.000
+ -6000306.106 4 -4675560.489 4 23452190.190 23452187.136 23452188.275
+ 27.900 24.200
+ -20585747.203 7 -16040836.604 7 20621715.332 20621713.275 20621714.694
+ 46.100 46.500
+ -1233820.390 3 -961417.825 3 24479270.576 24479269.831 24479270.312
+ 23.400 19.300
+ 06 1 2 8 30 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11262402.004 7 -8775896.441 5 21576127.203 21576123.635 21576125.738
+ 42.300 35.600
+ -11845098.307 6 -9229946.408 5 22389949.572 22389946.943 22389948.420
+ 40.900 31.100
+ -20407129.422 7 -15901657.494 7 20378993.359 20378991.391 20378992.449
+ 46.300 46.100
+ -12568388.965 6 -9793543.231 5 22266833.156 22266830.795 22266832.691
+ 39.400 31.500
+ -6110843.063 4 -4761693.165 3 23431154.677 23431152.394 23431153.323
+ 28.800 23.400
+ -20595671.050 7 -16048569.469 7 20619827.129 20619824.804 20619826.379
+ 46.200 46.500
+ -1298768.057 3 -1012026.373 3 24466911.649 24466910.898 24466910.566
+ 23.800 21.100
+ 06 1 2 8 30 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11198315.439 7 -8725958.877 5 21588321.546 21588318.903 21588320.834
+ 42.600 35.400
+ -11903931.614 6 -9275790.546 5 22378753.938 22378751.323 22378752.769
+ 40.600 31.100
+ -20412575.239 7 -15905900.985 7 20377956.927 20377955.104 20377956.105
+ 46.500 46.100
+ -12496831.504 6 -9737784.170 5 22280449.492 22280447.820 22280449.444
+ 39.100 31.600
+ -6221212.184 4 -4847695.013 4 23410151.695 23410149.974 23410150.604
+ 29.000 25.600
+ -20605274.081 7 -16056052.345 7 20617999.783 20617997.372 20617999.035
+ 46.300 46.400
+ -1363453.706 4 -1062430.774 2 24454603.168 24454601.241 24454601.807
+ 24.200 16.100
+ 06 1 2 8 31 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11133913.292 7 -8675775.398 5 21600577.241 21600574.188 21600576.124
+ 42.300 35.100
+ -11962256.410 6 -9321238.443 5 22367654.886 22367652.455 22367653.805
+ 40.300 31.300
+ -20417652.258 7 -15909857.098 7 20376990.994 20376988.968 20376990.109
+ 46.400 46.200
+ -12424803.226 6 -9681658.244 5 22294156.367 22294154.700 22294156.079
+ 39.000 32.400
+ -6331411.095 4 -4933564.270 4 23389182.627 23389179.362 23389181.074
+ 29.200 24.200
+ -20614556.966 7 -16063285.763 7 20616233.230 20616230.912 20616232.508
+ 46.000 46.400
+ -1427874.877 4 -1112629.082 3 24442343.516 24442342.506 24442342.749
+ 25.300 21.100
+ 06 1 2 8 31 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -11069196.228 7 -8625346.523 5 21612892.463 21612889.415 21612891.349
+ 42.400 34.900
+ -12020070.503 6 -9366288.381 5 22356653.671 22356650.643 22356652.419
+ 40.500 31.100
+ -20422359.509 7 -15913525.084 7 20376094.962 20376093.164 20376094.158
+ 46.400 46.100
+ -12352306.601 6 -9625167.380 5 22307951.824 22307950.239 22307951.610
+ 38.700 31.800
+ -6441436.851 4 -5019298.575 4 23368245.389 23368242.385 23368243.730
+ 28.100 24.200
+ -20623520.181 7 -16070270.085 7 20614527.604 20614525.253 20614526.845
+ 46.100 46.500
+ -1492028.607 3 -1162618.997 3 24430134.991 24430133.741 24430134.153
+ 23.400 19.900
+ 06 1 2 8 32 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -11004164.570 7 -8574672.520 5 21625267.038 21625264.622 21625266.587
+ 42.500 35.600
+ -12077371.657 6 -9410938.620 5 22345749.455 22345746.858 22345748.297
+ 40.600 31.100
+ -20426696.154 7 -15916904.291 7 20375269.768 20375267.950 20375268.984
+ 46.400 46.200
+ -12279344.264 6 -9568313.609 5 22321836.467 22321834.236 22321836.187
+ 39.300 31.500
+ -6551287.143 4 -5104896.171 3 23347340.889 23347338.536 23347339.462
+ 27.600 23.400
+ -20632164.229 7 -16077005.711 7 20612882.686 20612880.290 20612881.981
+ 46.200 46.300
+ -1555912.425 3 -1212398.572 3 24417978.474 24417977.377 24417977.711
+ 23.400 21.600
+ 06 1 2 8 32 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10938818.997 6 -8523753.909 5 21637702.610 21637699.670 21637701.316
+ 41.900 35.400
+ -12134157.851 6 -9455187.604 5 22334943.357 22334940.678 22334942.308
+ 40.900 31.800
+ -20430661.382 7 -15919994.083 7 20374515.131 20374513.420 20374514.374
+ 46.400 46.200
+ -12205918.680 6 -9511098.859 5 22335808.849 22335806.392 22335808.571
+ 38.900 30.600
+ -6660959.578 4 -5190355.176 3 23326471.149 23326468.604 23326469.584
+ 29.200 22.100
+ -20640489.635 7 -16083493.042 7 20611298.278 20611296.025 20611297.612
+ 46.100 46.300
+ -1619523.518 3 -1261965.597 3 24405873.031 24405872.627 24405872.461
+ 21.100 21.600
+ 06 1 2 8 33 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10873159.738 7 -8472590.872 5 21650196.895 21650194.009 21650195.978
+ 42.300 35.100
+ -12190427.234 6 -9499033.876 5 22324235.483 22324232.991 22324234.449
+ 40.700 31.300
+ -20434254.355 7 -15922793.803 7 20373831.362 20373829.671 20373830.586
+ 46.300 46.200
+ -12132032.328 6 -9453525.080 5 22349869.026 22349866.630 22349868.514
+ 38.600 31.300
+ -6770451.556 4 -5275673.546 4 23305634.907 23305633.036 23305633.939
+ 29.900 24.200
+ -20648496.894 7 -16089732.465 7 20609774.464 20609772.370 20609773.719
+ 46.000 46.400
+ -1682859.149 4 -1311317.997 3 24393821.582 24393819.803 24393820.658
+ 25.300 19.300
+ 06 1 2 8 33 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10807187.278 7 -8421183.762 5 21662750.631 21662748.223 21662750.020
+ 42.200 35.300
+ -12246177.732 6 -9542475.812 5 22313626.444 22313623.846 22313625.333
+ 40.600 31.300
+ -20437474.247 7 -15925302.814 7 20373218.597 20373216.909 20373217.907
+ 46.500 46.200
+ -12057687.783 6 -9395594.264 5 22364015.956 22364014.144 22364015.955
+ 39.300 31.800
+ -6879760.395 5 -5360849.237 4 23284833.044 23284832.194 23284832.812
+ 30.400 24.900
+ -20656186.486 7 -16095724.355 7 20608311.027 20608309.088 20608310.362
+ 46.000 46.400
+ -1745916.587 4 -1360453.645 3 24381821.691 24381820.757 24381820.992
+ 24.600 20.500
+ 06 1 2 8 34 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10740902.416 6 -8369533.232 5 21675365.082 21675361.921 21675363.736
+ 41.900 34.700
+ -12301407.260 6 -9585511.810 5 22303116.786 22303114.023 22303115.759
+ 41.400 31.000
+ -20440320.027 7 -15927520.305 7 20372677.093 20372675.459 20372676.357
+ 46.200 46.200
+ -11982887.617 6 -9337308.427 5 22378250.082 22378247.967 22378249.824
+ 38.800 31.100
+ -6988883.785 4 -5445880.387 4 23264069.162 23264066.513 23264067.744
+ 28.100 25.600
+ -20663559.001 7 -16101469.171 7 20606908.295 20606906.091 20606907.580
+ 46.100 46.400
+ -1808693.409 3 -1409370.607 3 24369875.619 24369874.882 24369875.133
+ 23.800 19.300
+ 06 1 2 8 34 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10674305.381 6 -8317639.459 5 21688037.867 21688034.886 21688036.695
+ 41.700 34.400
+ -12356114.017 6 -9628140.459 5 22292706.664 22292703.780 22292705.547
+ 41.600 31.000
+ -20442790.829 7 -15929445.609 7 20372207.055 20372205.345 20372206.273
+ 46.400 46.400
+ -11907634.431 6 -9278669.588 5 22392570.513 22392568.189 22392570.170
+ 39.300 30.600
+ -7097818.618 4 -5530764.629 4 23243339.605 23243337.062 23243338.164
+ 29.500 27.100
+ -20670614.847 7 -16106967.235 7 20605565.473 20605563.399 20605564.866
+ 46.000 46.400
+ -1871186.872 4 -1458066.804 3 24357982.588 24357982.489 24357982.708
+ 26.200 19.900
+ 06 1 2 8 35 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10607396.878 6 -8265502.970 5 21700769.800 21700767.278 21700768.888
+ 41.700 35.100
+ -12410295.755 6 -9670360.003 5 22282396.466 22282393.080 22282395.145
+ 41.500 30.800
+ -20444885.906 7 -15931078.141 7 20371808.469 20371806.642 20371807.632
+ 46.400 46.300
+ -11831930.723 6 -9219679.688 5 22406976.457 22406974.192 22406976.112
+ 38.700 30.600
+ -7206562.777 5 -5615500.309 4 23222645.951 23222643.367 23222644.857
+ 31.600 25.600
+ -20677354.676 7 -16112219.048 7 20604282.980 20604280.925 20604282.275
+ 46.100 46.400
+ -1933394.104 4 -1506539.972 2 24346145.579 24346144.408 24346145.110
+ 24.900 16.100
+ 06 1 2 8 35 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10540177.169 6 -8213123.990 5 21713561.553 21713558.907 21713560.388
+ 41.600 35.400
+ -12463950.549 6 -9712168.943 5 22272186.035 22272183.061 22272184.800
+ 41.400 31.100
+ -20446604.460 7 -15932417.276 7 20371481.442 20371479.588 20371480.623
+ 46.300 46.200
+ -11755779.023 6 -9160340.703 5 22421467.354 22421465.248 22421467.095
+ 38.100 30.100
+ -7315113.709 5 -5700085.410 4 23201989.135 23201986.999 23201987.996
+ 31.000 25.600
+ -20683778.903 7 -16117224.939 7 20603060.660 20603058.458 20603059.948
+ 46.100 46.400
+ -1995312.636 4 -1554788.160 3 24334364.426 24334362.262 24334362.969
+ 25.600 19.300
+ 06 1 2 8 36 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10472647.096 6 -8160503.174 5 21726411.942 21726409.447 21726410.941
+ 41.300 35.300
+ -12517076.523 6 -9753565.802 5 22262076.374 22262073.701 22262075.304
+ 41.500 31.800
+ -20447945.517 7 -15933462.258 7 20371226.131 20371224.429 20371225.386
+ 46.400 46.300
+ -11679182.121 6 -9100654.795 4 22436043.528 22436041.062 22436043.034
+ 37.800 29.700
+ -7423468.856 5 -5784517.934 4 23181370.431 23181367.507 23181368.900
+ 31.300 25.900
+ -20689888.030 7 -16121985.299 7 20601898.280 20601895.882 20601897.523
+ 46.100 46.400
+ -2056939.732 3 -1602809.249 2 24322637.049 24322634.662 24322635.361
+ 23.000 17.800
+ 06 1 2 8 36 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10404807.022 6 -8107640.780 5 21739321.220 21739318.859 21739320.550
+ 41.600 34.800
+ -12569671.628 7 -9794549.009 5 22252067.867 22252065.456 22252066.825
+ 42.000 32.600
+ -20448908.398 7 -15934212.557 7 20371042.907 20371041.164 20371042.140
+ 46.500 46.200
+ -11602142.511 6 -9040623.927 5 22450703.446 22450701.362 22450703.200
+ 38.400 30.200
+ -7531625.398 5 -5868795.709 4 23160788.621 23160786.073 23160787.320
+ 30.400 25.600
+ -20695682.697 7 -16126500.622 7 20600795.477 20600793.180 20600794.800
+ 46.200 46.400
+ -2118272.712 4 -1650601.161 3 24310964.876 24310963.429 24310963.838
+ 24.200 19.300
+ 06 1 2 8 37 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10336657.396 6 -8054537.195 5 21752290.476 21752287.476 21752288.924
+ 40.900 34.800
+ -12621734.176 7 -9835117.225 5 22242160.882 22242158.225 22242159.588
+ 42.000 32.400
+ -20449492.220 7 -15934667.484 7 20370931.833 20370930.061 20370931.007
+ 46.300 46.200
+ -11524662.755 6 -8980250.103 4 22465447.549 22465445.087 22465447.244
+ 38.300 29.900
+ -7639580.974 5 -5952916.880 4 23140245.069 23140243.048 23140243.903
+ 30.600 26.800
+ -20701163.321 7 -16130771.240 7 20599752.655 20599750.245 20599751.860
+ 46.100 46.500
+ -2179309.020 4 -1698161.893 3 24299349.933 24299348.647 24299349.093
+ 24.600 21.600
+ 06 1 2 8 37 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10268198.897 6 -8001192.925 5 21765317.328 21765314.435 21765316.105
+ 40.700 34.100
+ -12673262.210 6 -9875268.938 5 22232355.268 22232352.894 22232353.978
+ 41.600 32.400
+ -20449696.085 7 -15934826.345 7 20370893.262 20370891.343 20370892.389
+ 46.500 46.200
+ -11446745.519 6 -8919535.367 5 22480274.322 22480272.420 22480274.256
+ 37.700 30.200
+ -7747333.005 5 -6036879.474 4 23119740.599 23119738.364 23119739.299
+ 31.000 26.800
+ -20706330.482 7 -16134797.597 7 20598769.008 20598766.973 20598768.404
+ 46.100 46.400
+ -2240045.986 4 -1745489.368 3 24287793.207 24287791.163 24287792.002
+ 27.600 22.100
+ 06 1 2 8 38 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10199432.074 6 -7947608.409 5 21778402.608 21778400.187 21778402.029
+ 41.000 33.800
+ -12724253.737 6 -9915002.599 5 22222652.009 22222649.395 22222650.763
+ 41.700 32.100
+ -20449519.226 7 -15934688.537 7 20370926.811 20370924.978 20370926.005
+ 46.500 46.200
+ -11368393.405 6 -8858481.768 4 22495184.705 22495182.230 22495184.188
+ 37.500 29.500
+ -7854879.191 5 -6120681.641 4 23099275.260 23099272.907 23099273.961
+ 31.000 25.600
+ -20711184.792 7 -16138580.172 7 20597845.479 20597843.235 20597844.683
+ 46.100 46.500
+ -2300480.872 4 -1792581.504 3 24276291.668 24276290.557 24276290.859
+ 25.300 18.600
+ 06 1 2 8 38 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -10130357.593 6 -7893784.151 5 21791547.621 21791544.804 21791546.438
+ 40.700 34.400
+ -12774706.948 6 -9954316.790 5 22213050.968 22213048.230 22213049.853
+ 41.900 32.400
+ -20448960.777 7 -15934253.386 7 20371033.219 20371031.196 20371032.348
+ 46.500 46.100
+ -11289609.023 6 -8797091.346 5 22510176.669 22510174.745 22510176.405
+ 38.100 30.100
+ -7962216.842 5 -6204321.316 4 23078849.013 23078847.253 23078847.900
+ 31.000 28.100
+ -20715726.553 7 -16142119.203 7 20596981.274 20596978.892 20596980.543
+ 46.200 46.400
+ -2360611.187 4 -1839436.254 3 24264848.635 24264847.691 24264848.300
+ 25.900 20.500
+ 06 1 2 8 39 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -10060975.932 6 -7839720.532 5 21804750.857 21804747.673 21804749.475
+ 40.600 34.000
+ -12824620.065 6 -9993210.131 5 22203552.818 22203549.993 22203551.584
+ 41.500 31.500
+ -20448020.084 7 -15933520.381 7 20371212.008 20371210.234 20371211.257
+ 46.400 46.100
+ -11210395.046 6 -8735366.162 5 22525251.049 22525248.639 22525250.554
+ 38.100 30.200
+ -8069343.387 5 -6287796.492 4 23058463.411 23058461.663 23058462.231
+ 30.400 26.500
+ -20719956.547 7 -16145415.303 7 20596176.283 20596173.996 20596175.621
+ 46.300 46.500
+ -2420434.395 4 -1886051.718 3 24253464.897 24253464.344 24253464.576
+ 25.900 21.100
+ 06 1 2 8 39 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9991287.619 6 -7785417.966 5 21818011.666 21818008.976 21818010.745
+ 41.000 34.500
+ -12873991.286 7 -10031681.214 5 22194158.000 22194155.121 22194156.811
+ 42.100 32.300
+ -20446696.332 7 -15932488.889 7 20371463.828 20371462.104 20371462.982
+ 46.300 46.000
+ -11130754.034 6 -8673308.243 4 22540405.439 22540403.704 22540405.214
+ 37.000 29.900
+ -8176256.359 5 -6371105.251 4 23038119.101 23038116.483 23038117.781
+ 32.100 25.900
+ -20723875.115 7 -16148468.734 7 20595430.650 20595428.305 20595429.955
+ 46.200 46.500
+ -2479947.753 4 -1932425.748 3 24242140.294 24242138.772 24242139.406
+ 25.900 22.100
+ 06 1 2 8 40 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9921293.103 6 -7730876.799 5 21831331.316 21831328.616 21831330.387
+ 41.000 34.300
+ -12922818.454 7 -10069728.363 5 22184866.491 22184863.565 22184865.402
+ 42.200 32.100
+ -20444988.585 7 -15931158.177 7 20371788.924 20371787.077 20371788.089
+ 46.300 46.000
+ -11050688.784 6 -8610919.739 5 22555641.834 22555640.091 22555641.511
+ 37.400 31.000
+ -8282953.195 5 -6454245.602 3 23017814.734 23017812.555 23017813.804
+ 32.400 23.400
+ -20727482.945 7 -16151280.018 7 20594744.088 20594741.761 20594743.374
+ 46.400 46.400
+ -2539148.646 3 -1978556.257 3 24230874.557 24230873.657 24230874.207
+ 23.800 21.100
+ 06 1 2 8 40 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9850993.112 6 -7676097.604 5 21844709.145 21844706.030 21844708.026
+ 40.900 33.600
+ -12971100.033 7 -10107350.373 5 22175678.619 22175675.830 22175677.589
+ 42.200 31.600
+ -20442896.176 7 -15929527.727 7 20372187.172 20372185.277 20372186.254
+ 46.100 46.000
+ -10970201.699 6 -8548202.535 5 22570957.666 22570955.793 22570957.547
+ 36.800 30.100
+ -8389431.250 5 -6537215.492 4 22997552.721 22997550.836 22997551.548
+ 32.300 26.500
+ -20730780.487 7 -16153849.520 7 20594116.484 20594114.287 20594115.847
+ 46.300 46.400
+ -2598034.633 4 -2024441.411 2 24219669.089 24219667.409 24219668.179
+ 24.200 17.800
+ 06 1 2 8 41 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9780388.379 6 -7621080.968 5 21858144.251 21858141.736 21858143.397
+ 40.700 33.200
+ -13018834.336 7 -10144545.936 5 22166595.102 22166592.355 22166594.016
+ 42.300 32.400
+ -20440418.291 7 -15927596.904 7 20372658.510 20372656.715 20372657.683
+ 46.100 45.800
+ -10889295.711 6 -8485158.905 4 22586353.748 22586351.597 22586353.407
+ 37.200 29.200
+ -8495688.222 5 -6620013.083 4 22977333.557 22977330.723 22977331.867
+ 31.000 26.200
+ -20733768.327 7 -16156177.699 7 20593547.676 20593545.679 20593547.140
+ 46.100 46.400
+ -2656603.075 4 -2070079.175 3 24208524.404 24208522.824 24208523.149
+ 24.900 19.300
+ 06 1 2 8 41 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9709479.467 6 -7565827.282 5 21871637.742 21871635.347 21871637.139
+ 41.000 33.600
+ -13066019.408 7 -10181313.533 5 22157616.272 22157613.346 22157615.098
+ 42.600 32.600
+ -20437554.142 7 -15925365.097 7 20373203.441 20373201.744 20373202.572
+ 46.000 46.000
+ -10807973.408 6 -8421790.876 5 22601829.160 22601826.964 22601828.776
+ 37.500 30.200
+ -8601721.383 5 -6702636.260 4 22957155.136 22957153.046 22957153.961
+ 32.100 27.100
+ -20736446.978 7 -16158264.954 7 20593038.109 20593035.945 20593037.424
+ 46.400 46.400
+ -2714851.495 4 -2115467.515 3 24197439.596 24197438.652 24197438.815
+ 25.600 23.400
+ 06 1 2 8 42 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9638267.017 6 -7510337.068 5 21885189.325 21885186.654 21885188.311
+ 40.300 33.200
+ -13112653.829 7 -10217652.048 5 22148742.044 22148739.079 22148740.841
+ 42.100 32.100
+ -20434303.032 7 -15922831.756 7 20373822.070 20373820.453 20373821.249
+ 46.000 45.900
+ -10726237.313 6 -8358100.416 4 22617383.017 22617380.754 22617382.627
+ 36.500 29.500
+ -8707528.357 5 -6785083.208 4 22937020.914 22937018.736 22937019.603
+ 31.600 27.900
+ -20738816.978 7 -16160111.704 7 20592587.222 20592585.047 20592586.528
+ 46.400 46.500
+ -2772777.057 4 -2160604.261 3 24186416.991 24186415.717 24186415.830
+ 25.900 22.100
+ 06 1 2 8 42 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9566751.255 6 -7454610.513 5 21898798.317 21898795.606 21898797.316
+ 40.000 33.000
+ -13158735.484 6 -10253559.828 5 22139972.924 22139969.989 22139971.712
+ 41.900 32.000
+ -20430664.142 7 -15919996.253 7 20374514.663 20374512.918 20374513.841
+ 46.100 46.100
+ -10644090.265 6 -8294089.742 4 22633015.096 22633012.786 22633014.756
+ 37.200 29.700
+ -8813106.759 5 -6867352.056 4 22916930.962 22916928.045 22916929.160
+ 32.300 27.900
+ -20740878.994 7 -16161718.464 7 20592194.729 20592192.649 20592194.132
+ 46.500 46.600
+ -2830377.288 4 -2205487.536 3 24175454.880 24175454.163 24175454.346
+ 24.200 21.600
+ 06 1 2 8 43 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9494933.175 6 -7398648.390 5 21912464.513 21912462.088 21912463.727
+ 40.000 32.600
+ -13204262.697 6 -10289035.579 5 22131309.098 22131306.712 22131307.889
+ 41.800 33.000
+ -20426636.749 7 -15916858.024 7 20375281.064 20375279.302 20375280.306
+ 46.100 46.000
+ -10561534.921 6 -8229760.893 4 22648724.523 22648722.814 22648724.362
+ 37.100 29.500
+ -8918453.921 5 -6949440.713 4 22896883.397 22896880.871 22896882.045
+ 32.700 28.400
+ -20742633.447 7 -16163085.565 7 20591860.871 20591858.766 20591860.224
+ 46.400 46.600
+ -2887649.861 4 -2250115.518 3 24164557.353 24164555.326 24164556.326
+ 26.800 19.900
+ 06 1 2 8 43 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9422813.257 6 -7342451.053 5 21926188.367 21926186.300 21926187.635
+ 39.700 33.200
+ -13249234.037 7 -10324078.181 5 22122751.148 22122749.113 22122750.132
+ 42.000 32.800
+ -20422219.974 7 -15913416.386 7 20376121.556 20376119.792 20376120.696
+ 46.200 45.900
+ -10478573.981 6 -8165116.008 4 22664511.230 22664509.309 22664511.098
+ 36.400 29.700
+ -9023567.145 5 -7031347.067 4 22876880.234 22876878.676 22876879.169
+ 30.400 28.800
+ -20744080.877 7 -16164213.431 7 20591585.567 20591583.352 20591584.850
+ 46.500 46.600
+ -2944592.038 3 -2294486.023 3 24153720.833 24153719.827 24153719.987
+ 23.400 21.100
+ 06 1 2 8 44 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9350392.267 6 -7286019.139 5 21939969.696 21939967.685 21939968.889
+ 39.600 33.500
+ -13293647.751 6 -10358686.261 5 22114299.898 22114297.385 22114298.622
+ 41.900 33.000
+ -20417413.218 7 -15909670.865 7 20377036.150 20377034.446 20377035.331
+ 46.200 45.800
+ -10395210.026 6 -8100157.084 4 22680375.674 22680373.048 22680375.313
+ 36.800 29.000
+ -9128444.388 5 -7113069.559 4 22856923.841 22856920.952 22856922.193
+ 32.700 28.100
+ -20745221.944 7 -16165102.569 7 20591368.301 20591366.144 20591367.632
+ 46.300 46.400
+ -3001201.273 4 -2338597.099 3 24142949.030 24142947.556 24142948.574
+ 27.100 22.600
+ 06 1 2 8 44 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9277670.907 6 -7229353.150 5 21953808.479 21953805.827 21953807.387
+ 39.600 32.600
+ -13337502.034 6 -10392858.432 5 22105954.568 22105951.947 22105953.437
+ 41.900 32.600
+ -20412215.616 7 -15905620.788 7 20378025.392 20378023.480 20378024.562
+ 46.100 45.900
+ -10311445.847 6 -8034886.304 4 22696315.366 22696312.718 22696314.844
+ 36.600 28.600
+ -9233082.895 5 -7194605.998 4 22837010.994 22837008.844 22837009.688
+ 32.800 28.400
+ -20746057.109 7 -16165753.343 7 20591209.282 20591207.106 20591208.673
+ 46.300 46.400
+ -3057475.146 4 -2382446.814 3 24132240.554 24132239.196 24132239.949
+ 27.400 23.400
+ 06 1 2 8 45 0.0000000 0 7G14G20G 1G30G16G25G 6
+ -9204650.016 6 -7172453.762 5 21967703.589 21967701.286 21967702.801
+ 39.400 33.100
+ -13380795.544 6 -10426593.632 5 22097716.217 22097713.374 22097715.011
+ 41.900 32.700
+ -20406626.498 7 -15901265.633 7 20379088.817 20379087.052 20379088.039
+ 46.100 45.900
+ -10227284.138 5 -7969305.740 4 22712330.842 22712328.505 22712330.198
+ 35.900 28.800
+ -9337480.033 5 -7275954.390 4 22817144.585 22817142.824 22817143.661
+ 33.100 28.800
+ -20746586.857 7 -16166166.134 7 20591108.546 20591106.320 20591107.833
+ 46.400 46.300
+ -3113411.152 3 -2426033.286 3 24121595.486 24121594.457 24121594.458
+ 22.600 20.500
+ 06 1 2 8 45 30.0000000 0 7G14G20G 1G30G16G25G 6
+ -9131329.681 6 -7115321.048 5 21981656.016 21981653.709 21981655.264
+ 39.300 32.600
+ -13423526.162 6 -10459890.216 5 22089584.821 22089582.147 22089583.512
+ 41.900 33.100
+ -20400645.197 7 -15896604.881 7 20380227.188 20380225.328 20380226.287
+ 46.100 45.800
+ -10142727.561 6 -7903417.502 4 22728421.504 22728418.746 22728420.895
+ 36.100 27.100
+ -9441633.375 5 -7357112.800 4 22797325.252 22797322.748 22797323.668
+ 32.300 27.600
+ -20746811.852 7 -16166341.454 7 20591065.878 20591063.550 20591065.064
+ 46.300 46.400
+ -3169006.805 4 -2469354.549 3 24111017.340 24111014.876 24111015.887
+ 26.200 19.900
+ 06 1 2 8 46 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -178762.881 3 -139295.515 3 24627693.106 24627689.017 24627692.501
+ 22.100 23.000
+ -9057710.775 6 -7057955.690 5 21995665.608 21995662.977 21995664.538
+ 39.300 32.700
+ -13465692.736 7 -10492747.292 5 22081561.094 22081558.134 22081559.720
+ 42.100 33.200
+ -20394270.969 7 -15891637.955 7 20381440.114 20381438.322 20381439.232
+ 46.000 45.900
+ -10057778.892 6 -7837223.736 4 22744586.429 22744584.504 22744586.115
+ 36.000 28.600
+ -9545540.695 5 -7438079.511 4 22777553.406 22777549.830 22777551.463
+ 33.200 27.600
+ -20746732.652 7 -16166279.743 7 20591080.832 20591078.669 20591080.158
+ 46.400 46.400
+ -3224259.667 4 -2512408.708 3 24100502.654 24100500.442 24100502.024
+ 28.400 22.600
+ 06 1 2 8 46 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -281884.925 4 -219650.348 3 24608071.263 24608065.157 24608069.815
+ 24.900 23.000
+ -8983793.776 6 -7000358.049 5 22009731.540 22009728.662 22009730.402
+ 39.300 32.600
+ -13507293.630 7 -10525163.570 5 22073644.326 22073641.832 22073643.259
+ 42.600 33.400
+ -20387503.075 7 -15886364.271 7 20382727.917 20382726.189 20382727.050
+ 46.000 45.700
+ -9972440.782 5 -7770726.507 4 22760825.918 22760823.504 22760825.414
+ 35.400 28.100
+ -9649199.300 5 -7518852.414 4 22757826.601 22757824.262 22757825.364
+ 32.700 27.900
+ -20746349.796 7 -16165981.412 7 20591153.793 20591151.504 20591153.032
+ 46.400 46.300
+ -3279167.033 4 -2555193.609 4 24090053.714 24090052.485 24090052.929
+ 27.400 24.600
+ 06 1 2 8 47 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -384998.208 4 -299998.347 4 24588449.256 24588443.615 24588448.100
+ 29.200 24.600
+ -8909579.946 6 -6942529.086 5 22023854.068 22023851.321 22023852.978
+ 39.400 32.700
+ -13548327.168 7 -10557137.760 5 22065835.864 22065833.611 22065834.870
+ 42.500 33.500
+ -20380340.794 7 -15880783.278 7 20384090.922 20384089.052 20384090.054
+ 46.000 45.700
+ -9886715.926 6 -7703927.907 4 22777138.719 22777136.432 22777138.474
+ 36.200 28.600
+ -9752606.893 5 -7599429.737 4 22738148.478 22738146.570 22738147.542
+ 34.400 28.800
+ -20745663.843 7 -16165446.903 7 20591284.330 20591281.907 20591283.601
+ 46.400 46.300
+ -3333726.804 4 -2597707.688 3 24079672.516 24079669.930 24079670.620
+ 26.500 23.400
+ 06 1 2 8 47 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -488100.782 4 -380338.041 3 24568829.640 24568823.662 24568828.432
+ 29.700 20.500
+ -8835069.605 6 -6884469.098 5 22038033.298 22038030.169 22038032.014
+ 39.500 32.400
+ -13588791.848 7 -10588668.677 5 22058135.627 22058133.076 22058134.599
+ 42.500 33.100
+ -20372783.368 7 -15874894.385 7 20385528.883 20385527.177 20385528.102
+ 46.000 45.700
+ -9800607.106 5 -7636830.138 4 22793524.407 22793522.513 22793524.048
+ 35.300 27.900
+ -9855760.633 5 -7679809.242 4 22718519.471 22718517.229 22718517.991
+ 33.200 29.000
+ -20744675.354 7 -16164676.654 7 20591472.537 20591470.034 20591471.738
+ 46.400 46.300
+ -3387936.177 4 -2639948.750 3 24069356.211 24069354.276 24069355.318
+ 28.600 22.600
+ 06 1 2 8 48 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -591191.501 4 -460668.483 3 24549211.594 24549205.865 24549210.204
+ 26.800 23.400
+ -8760263.300 6 -6826178.487 5 22052268.209 22052265.472 22052266.983
+ 39.100 33.000
+ -13628686.222 7 -10619755.206 5 22050544.277 22050541.365 22050542.933
+ 42.100 32.700
+ -20364830.262 7 -15868697.164 7 20387042.471 20387040.653 20387041.610
+ 46.000 45.600
+ -9714117.021 5 -7569435.259 4 22809982.681 22809980.673 22809982.501
+ 35.600 27.600
+ -9958658.425 5 -7759989.294 4 22698938.383 22698936.340 22698936.934
+ 32.800 29.700
+ -20743384.861 7 -16163671.074 7 20591718.011 20591715.741 20591717.271
+ 46.500 46.400
+ -3441792.830 4 -2681914.939 3 24059106.153 24059105.370 24059106.142
+ 27.100 22.600
+ 06 1 2 8 48 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -694269.107 4 -540988.685 3 24529597.002 24529590.842 24529595.779
+ 25.600 22.100
+ -8685161.937 6 -6767657.971 5 22066559.266 22066556.809 22066558.417
+ 39.100 33.100
+ -13668008.904 7 -10650396.262 5 22043061.633 22043058.468 22043060.283
+ 42.800 32.300
+ -20356480.732 7 -15862191.044 7 20388631.252 20388629.571 20388630.422
+ 46.000 45.700
+ -9627248.430 6 -7501745.454 4 22826513.192 22826511.399 22826513.069
+ 36.400 28.100
+ -10061297.834 5 -7839968.006 5 22679405.574 22679404.634 22679405.109
+ 33.400 30.200
+ -20741792.820 7 -16162430.525 7 20592020.894 20592018.695 20592020.166
+ 46.400 46.400
+ -3495294.291 4 -2723604.367 3 24048926.445 24048924.215 24048924.900
+ 25.600 22.100
+ 06 1 2 8 49 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -797332.185 3 -621297.547 3 24509984.230 24509978.914 24509982.529
+ 22.100 23.400
+ -8609766.153 6 -6708908.035 5 22080907.357 22080904.058 22080905.746
+ 38.400 32.700
+ -13706758.317 7 -10680590.616 5 22035687.576 22035684.660 22035686.430
+ 42.700 32.600
+ -20347734.136 7 -15855375.526 7 20390295.828 20390294.024 20390294.960
+ 46.000 45.600
+ -9540004.278 5 -7433763.007 4 22843115.696 22843113.672 22843115.253
+ 35.600 29.000
+ -10163676.038 5 -7919743.213 5 22659923.877 22659922.725 22659923.465
+ 34.300 30.800
+ -20739899.979 7 -16160955.583 7 20592381.002 20592378.814 20592380.307
+ 46.300 46.400
+ -3548438.262 4 -2765015.190 3 24038813.289 24038811.415 24038812.531
+ 28.600 21.100
+ 06 1 2 8 49 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -900379.351 4 -701594.012 3 24490375.211 24490369.846 24490374.041
+ 24.900 19.900
+ -8534076.775 6 -6649929.320 5 22095310.225 22095307.138 22095308.965
+ 38.600 32.100
+ -13744933.155 7 -10710337.241 5 22028423.160 22028420.481 22028421.937
+ 42.700 33.200
+ -20338589.752 7 -15848250.036 7 20392035.995 20392034.117 20392035.153
+ 46.000 45.400
+ -9452386.897 5 -7365489.726 4 22859788.595 22859786.290 22859788.141
+ 34.900 26.500
+ -10265790.792 5 -7999313.119 5 22640493.639 22640490.719 22640492.045
+ 35.200 30.100
+ -20737706.755 7 -16159246.574 7 20592798.587 20592796.210 20592797.851
+ 46.600 46.400
+ -3601222.094 4 -2806145.432 3 24028768.214 24028767.229 24028767.605
+ 26.800 23.000
+ 06 1 2 8 50 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1003409.173 4 -781877.025 2 24470769.319 24470763.844 24470767.958
+ 26.800 17.800
+ -8458094.511 6 -6590722.382 5 22109768.592 22109766.045 22109767.775
+ 38.600 32.100
+ -13782531.668 7 -10739634.783 5 22021268.280 22021265.785 22021267.168
+ 42.600 33.600
+ -20329046.824 7 -15840813.986 7 20393851.803 20393850.083 20393851.026
+ 46.000 45.600
+ -9364399.287 5 -7296927.946 4 22876532.138 22876529.693 22876531.806
+ 35.700 27.600
+ -10367639.488 5 -8078675.694 4 22621113.644 22621109.396 22621111.423
+ 34.600 29.700
+ -20735213.775 7 -16157303.990 7 20593272.845 20593270.650 20593272.128
+ 46.600 46.400
+ -3653643.546 4 -2846993.287 3 24018793.053 24018792.185 24018791.764
+ 27.600 23.000
+ 06 1 2 8 50 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1106420.176 4 -862145.368 3 24451166.361 24451161.206 24451165.679
+ 25.900 23.000
+ -8381820.377 6 -6531288.021 5 22124283.155 22124280.648 22124282.309
+ 38.600 31.800
+ -13819552.558 7 -10768482.235 5 22014223.370 22014220.631 22014222.213
+ 42.300 32.700
+ -20319104.812 7 -15833066.957 7 20395743.725 20395742.002 20395742.845
+ 46.000 45.600
+ -9276044.117 5 -7228079.764 4 22893345.427 22893343.502 22893345.020
+ 34.600 28.400
+ -10469219.779 5 -8157829.104 4 22601781.813 22601779.131 22601780.534
+ 33.800 29.200
+ -20732421.551 7 -16155128.231 7 20593804.021 20593801.972 20593803.397
+ 46.600 46.400
+ -3705700.111 4 -2887556.813 3 24008887.107 24008885.643 24008886.150
+ 27.600 22.600
+ 06 1 2 8 51 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1209411.130 4 -942398.042 3 24431569.079 24431562.505 24431567.530
+ 27.400 23.000
+ -8305254.572 6 -6471626.383 5 22138853.768 22138850.435 22138852.421
+ 38.600 30.800
+ -13855994.522 7 -10796878.569 5 22007288.756 22007285.793 22007287.607
+ 42.600 32.300
+ -20308763.110 7 -15825008.484 7 20397711.653 20397709.895 20397710.852
+ 46.100 45.400
+ -9187324.125 5 -7158947.295 4 22910228.262 22910225.997 22910228.176
+ 35.600 27.100
+ -10570529.274 5 -8236771.543 4 22582501.687 22582500.387 22582501.729
+ 34.900 28.800
+ -20729330.690 7 -16152719.766 7 20594392.529 20594390.162 20594391.780
+ 46.800 46.400
+ -3757389.568 4 -2927834.284 4 23999050.721 23999049.899 23999050.041
+ 28.400 24.200
+ 06 1 2 8 51 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1312380.497 3 -1022633.870 4 24411973.875 24411968.478 24411972.442
+ 22.100 24.900
+ -8228397.978 6 -6411738.147 5 22153479.241 22153475.933 22153477.924
+ 38.800 31.100
+ -13891856.115 7 -10824822.670 5 22000464.768 22000461.563 22000463.624
+ 42.900 32.000
+ -20298021.069 7 -15816638.067 7 20399755.939 20399754.013 20399755.089
+ 46.100 45.500
+ -9098242.041 5 -7089532.702 4 22927179.608 22927177.799 22927179.547
+ 35.200 26.800
+ -10671565.764 5 -8315501.249 4 22563275.109 22563274.089 22563275.022
+ 35.600 29.900
+ -20725941.791 7 -16150079.067 7 20595037.270 20595035.013 20595036.646
+ 47.000 46.400
+ -3808709.388 4 -2967823.716 4 23989285.278 23989283.999 23989284.379
+ 27.100 24.900
+ 06 1 2 8 52 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1415326.957 4 -1102851.858 4 24392384.298 24392378.525 24392383.048
+ 27.600 24.200
+ -8151251.410 6 -6351623.963 5 22168159.283 22168156.583 22168158.135
+ 38.100 31.000
+ -13927136.422 7 -10852313.823 5 21993751.123 21993748.203 21993749.993
+ 43.100 33.000
+ -20286878.078 7 -15807955.220 7 20401876.152 20401874.568 20401875.339
+ 45.900 45.600
+ -9008800.613 5 -7019838.057 4 22944200.215 22944197.652 22944199.978
+ 34.000 26.800
+ -10772326.498 5 -8394016.072 5 22544102.615 22544100.149 22544101.178
+ 35.800 31.300
+ -20722255.375 7 -16147206.536 7 20595738.837 20595736.466 20595738.194
+ 46.900 46.300
+ -3859657.368 4 -3007523.418 3 23979590.578 23979588.892 23979589.155
+ 27.900 23.400
+ 06 1 2 8 52 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1518248.939 4 -1183050.758 3 24372797.714 24372793.163 24372797.083
+ 24.900 23.400
+ -8073815.615 6 -6291284.420 5 22182894.685 22182892.079 22182893.715
+ 38.400 31.300
+ -13961833.610 7 -10879350.590 5 21987148.368 21987145.570 21987147.281
+ 43.100 33.200
+ -20275333.484 7 -15798959.435 7 20404073.022 20404071.486 20404072.202
+ 45.800 45.600
+ -8919002.625 5 -6949865.627 4 22961288.456 22961286.801 22961287.961
+ 34.700 29.500
+ -10872809.292 5 -8472314.298 5 22524982.116 22524978.871 22524980.150
+ 35.500 31.300
+ -20718271.984 7 -16144102.596 7 20596496.942 20596494.530 20596496.223
+ 46.900 46.400
+ -3910231.043 4 -3046931.423 3 23969965.093 23969964.209 23969965.092
+ 28.400 21.100
+ 06 1 2 8 53 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1621145.115 4 -1263229.641 3 24353218.380 24353212.038 24353216.533
+ 26.500 18.600
+ -7996091.355 6 -6230720.085 5 22197684.724 22197682.515 22197684.083
+ 37.600 31.000
+ -13995946.521 7 -10905932.083 5 21980656.938 21980654.075 21980655.719
+ 43.000 33.100
+ -20263386.667 7 -15789650.224 7 20406346.741 20406344.805 20406345.803
+ 45.900 45.600
+ -8828850.905 5 -6879617.528 4 22978443.435 22978441.314 22978443.195
+ 34.300 27.100
+ -10973011.428 5 -8550393.844 5 22505914.196 22505910.736 22505912.293
+ 35.500 31.100
+ -20713992.268 7 -16140767.756 7 20597311.327 20597308.947 20597310.608
+ 46.800 46.400
+ -3960428.205 4 -3086046.077 3 23960412.940 23960411.796 23960412.003
+ 26.800 22.100
+ 06 1 2 8 53 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1724014.232 4 -1343387.428 3 24333642.256 24333636.818 24333641.258
+ 28.100 22.100
+ -7918079.355 6 -6169931.546 5 22212530.323 22212527.856 22212529.307
+ 37.300 31.000
+ -14029474.021 7 -10932057.412 5 21974277.023 21974274.073 21974275.748
+ 43.300 33.000
+ -20251036.961 7 -15780027.079 7 20408696.555 20408694.860 20408695.809
+ 46.100 45.400
+ -8738348.116 5 -6809095.872 4 22995664.752 22995663.439 22995664.865
+ 33.200 26.800
+ -11072930.579 6 -8628252.863 5 22486900.070 22486896.592 22486898.297
+ 36.000 30.600
+ -20709416.735 7 -16137202.411 7 20598181.934 20598179.576 20598181.275
+ 46.900 46.300
+ -4010246.244 4 -3124865.301 4 23950933.130 23950932.472 23950932.557
+ 26.800 24.600
+ 06 1 2 8 54 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1826854.635 4 -1423522.775 3 24314072.304 24314067.303 24314070.862
+ 26.200 21.100
+ -7839780.412 6 -6108919.392 5 22227430.484 22227427.584 22227429.251
+ 37.500 31.100
+ -14062414.598 7 -10957725.395 5 21968008.529 21968005.530 21968007.238
+ 42.900 32.800
+ -20238283.787 7 -15770089.541 7 20411123.542 20411121.710 20411122.658
+ 46.100 45.300
+ -8647496.984 5 -6738302.782 4 23012953.872 23012951.760 23012953.471
+ 33.000 26.500
+ -11172564.371 5 -8705889.535 5 22467939.536 22467936.941 22467938.149
+ 35.800 30.200
+ -20704545.846 7 -16133406.915 7 20599108.743 20599106.492 20599108.085
+ 46.800 46.200
+ -4059683.188 4 -3163387.543 4 23941526.249 23941524.761 23941525.442
+ 28.400 24.900
+ 06 1 2 8 54 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -1929664.730 4 -1503634.560 4 24294508.397 24294503.755 24294507.035
+ 27.600 24.600
+ -7761195.307 6 -6047684.268 5 22242384.763 22242381.864 22242383.600
+ 37.300 31.100
+ -14094767.182 7 -10982935.207 5 21961851.824 21961848.906 21961850.613
+ 42.800 32.700
+ -20225126.631 7 -15759837.212 7 20413627.170 20413625.432 20413626.347
+ 45.900 45.300
+ -8556300.331 5 -6667240.463 4 23030307.931 23030306.166 23030307.825
+ 34.500 27.900
+ -11271910.912 6 -8783302.399 5 22449033.451 22449031.930 22449033.113
+ 36.100 30.800
+ -20699380.323 7 -16129381.835 7 20600091.759 20600089.501 20600091.090
+ 46.700 46.400
+ -4108736.651 4 -3201610.997 3 23932191.026 23932190.173 23932190.726
+ 27.600 20.500
+ 06 1 2 8 55 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2032443.179 4 -1583721.630 4 24274950.856 24274945.475 24274949.365
+ 28.100 25.600
+ -7682325.069 6 -5986226.972 5 22257393.918 22257390.605 22257392.370
+ 37.800 31.300
+ -14126530.476 7 -11007685.828 5 21955807.392 21955804.810 21955806.387
+ 43.000 32.800
+ -20211564.916 7 -15749269.642 7 20416207.900 20416206.152 20416207.060
+ 46.100 45.400
+ -8464760.963 5 -6595911.080 4 23047726.688 23047725.407 23047726.839
+ 33.200 26.500
+ -11370966.989 6 -8860488.926 5 22430183.224 22430182.172 22430183.328
+ 36.100 31.500
+ -20693920.617 7 -16125127.521 7 20601130.680 20601128.427 20601130.006
+ 46.700 46.400
+ -4157404.301 4 -3239533.810 3 23922930.817 23922928.539 23922929.569
+ 28.100 22.600
+ 06 1 2 8 55 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2135188.601 4 -1663782.998 4 24255397.827 24255393.221 24255396.488
+ 28.100 26.200
+ -7603170.367 6 -5924548.014 4 22272455.968 22272452.950 22272454.829
+ 37.400 29.900
+ -14157703.359 7 -11031976.383 5 21949875.416 21949872.714 21949874.351
+ 42.800 33.100
+ -20197597.984 7 -15738386.322 7 20418865.821 20418864.050 20418864.997
+ 46.200 45.400
+ -8372881.543 5 -6524316.752 4 23065211.575 23065209.547 23065211.113
+ 33.500 26.200
+ -11469730.448 6 -8937447.448 5 22411389.462 22411388.102 22411389.370
+ 37.200 31.300
+ -20688167.324 7 -16120644.434 7 20602225.389 20602223.273 20602224.794
+ 46.600 46.300
+ -4205683.720 4 -3277154.124 3 23913743.009 23913741.097 23913742.127
+ 27.600 23.800
+ 06 1 2 8 56 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2237899.222 4 -1743817.243 3 24235852.744 24235847.370 24235851.344
+ 25.900 23.400
+ -7523731.859 6 -5862647.915 5 22287571.785 22287569.877 22287571.384
+ 37.400 30.200
+ -14188284.839 7 -11055806.110 5 21944055.757 21944053.347 21944054.624
+ 42.400 33.000
+ -20183225.378 7 -15727186.898 7 20421600.512 20421599.006 20421599.789
+ 46.100 45.400
+ -8280664.803 5 -6452459.536 4 23082759.732 23082757.400 23082759.385
+ 33.800 25.300
+ -11568199.143 6 -9014176.266 5 22392651.758 22392650.268 22392651.284
+ 36.600 32.000
+ -20682121.051 7 -16115933.050 7 20603376.015 20603373.843 20603375.314
+ 46.600 46.400
+ -4253572.814 4 -3314470.257 3 23904628.648 23904627.903 23904628.923
+ 27.100 19.900
+ 06 1 2 8 56 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2340573.648 4 -1823823.273 4 24216313.592 24216310.083 24216312.877
+ 24.900 24.900
+ -7444010.404 6 -5800527.336 5 22302742.219 22302740.343 22302741.798
+ 37.200 30.400
+ -14218273.566 7 -11079173.952 5 21938349.451 21938346.602 21938348.102
+ 42.700 33.200
+ -20168446.596 7 -15715670.974 7 20424413.086 20424411.220 20424412.227
+ 46.200 45.200
+ -8188113.618 5 -6380341.723 4 23100371.408 23100369.761 23100371.173
+ 33.100 27.100
+ -11666370.597 6 -9090673.469 5 22373970.904 22373968.660 22373969.819
+ 36.700 32.000
+ -20675782.307 7 -16110993.764 7 20604582.290 20604580.078 20604581.550
+ 46.600 46.300
+ -4301069.296 4 -3351480.489 3 23895591.034 23895590.181 23895590.250
+ 27.900 23.400
+ 06 1 2 8 57 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2443210.606 4 -1903800.097 4 24196783.765 24196778.839 24196782.832
+ 26.500 24.200
+ -7364006.874 6 -5738186.958 5 22317966.519 22317964.616 22317966.055
+ 37.200 30.100
+ -14247668.202 7 -11102078.868 5 21932755.776 21932753.139 21932754.506
+ 42.900 33.200
+ -20153260.920 7 -15703837.986 7 20427303.044 20427300.958 20427302.100
+ 46.100 45.200
+ -8095230.565 5 -6307965.351 4 23118046.769 23118044.680 23118046.444
+ 33.200 25.600
+ -11764242.302 6 -9166937.107 5 22355346.438 22355344.396 22355345.392
+ 37.200 32.000
+ -20669151.745 7 -16105827.085 7 20605843.979 20605841.756 20605843.290
+ 46.600 46.200
+ -4348170.740 4 -3388182.884 4 23886629.582 23886626.984 23886627.688
+ 27.400 24.600
+ 06 1 2 8 57 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2545808.376 4 -1983746.412 3 24177260.792 24177254.627 24177259.471
+ 27.100 23.400
+ -7283721.826 6 -5675627.216 5 22333245.523 22333242.358 22333243.994
+ 36.700 30.100
+ -14276467.580 7 -11124519.947 5 21927275.790 21927272.691 21927274.520
+ 43.200 33.100
+ -20137667.889 7 -15691687.577 7 20430270.089 20430268.254 20430269.293
+ 46.200 45.300
+ -8002018.664 5 -6235332.690 4 23135784.283 23135782.060 23135784.005
+ 32.400 25.600
+ -11861812.546 6 -9242965.837 5 22336779.140 22336777.423 22336778.115
+ 36.400 32.400
+ -20662229.822 7 -16100433.377 7 20607161.272 20607158.961 20607160.582
+ 46.800 46.200
+ -4394875.084 4 -3424575.843 3 23877739.752 23877739.200 23877739.480
+ 27.100 22.600
+ 06 1 2 8 58 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2648365.617 4 -2063661.152 3 24157743.756 24157738.515 24157743.007
+ 24.900 23.000
+ -7203156.355 6 -5612848.961 5 22348576.209 22348573.543 22348575.098
+ 37.200 30.400
+ -14304671.406 7 -11146496.949 5 21921908.639 21921905.809 21921907.448
+ 43.100 33.400
+ -20121667.006 7 -15679219.363 7 20433315.061 20433313.164 20433314.221
+ 46.200 45.300
+ -7908480.569 5 -6162445.853 4 23153583.891 23153581.995 23153583.457
+ 32.400 25.600
+ -11959077.975 6 -9318757.048 5 22318270.487 22318267.949 22318269.283
+ 37.200 31.100
+ -20655017.204 7 -16094813.150 7 20608533.648 20608531.513 20608533.003
+ 46.800 46.200
+ -4441180.218 4 -3460657.732 3 23868928.162 23868928.001 23868928.020
+ 28.400 22.600
+ 06 1 2 8 58 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2750880.526 4 -2143542.888 3 24138236.624 24138230.647 24138235.098
+ 26.800 23.000
+ -7122311.316 6 -5549852.856 5 22363960.996 22363957.953 22363959.452
+ 37.200 30.600
+ -14332278.256 7 -11168008.781 5 21916655.297 21916652.353 21916654.075
+ 43.300 33.500
+ -20105257.578 7 -15666432.792 7 20436437.406 20436435.728 20436436.680
+ 46.200 45.300
+ -7814619.019 5 -6089306.990 4 23171445.138 23171443.111 23171444.913
+ 34.000 26.200
+ -12056036.591 6 -9394309.190 5 22299820.186 22299817.603 22299818.807
+ 37.200 32.300
+ -20647514.370 7 -16088966.780 7 20609961.350 20609959.265 20609960.680
+ 46.800 46.200
+ -4487083.834 4 -3496426.728 3 23860195.125 23860192.928 23860193.827
+ 28.600 23.800
+ 06 1 2 8 59 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2853351.600 4 -2223390.493 3 24118737.336 24118731.053 24118735.688
+ 28.800 22.600
+ -7041187.458 6 -5486639.491 5 22379397.187 22379395.401 22379396.556
+ 36.500 30.400
+ -14359286.832 7 -11189054.431 5 21911515.618 21911512.828 21911514.427
+ 43.400 33.500
+ -20088439.280 7 -15653327.622 7 20439638.020 20439636.185 20439637.134
+ 46.100 45.300
+ -7720436.801 5 -6015918.255 4 23189367.401 23189365.465 23189367.213
+ 33.100 25.600
+ -12152686.174 6 -9469620.528 5 22281428.677 22281425.779 22281427.282
+ 37.600 32.600
+ -20639721.900 7 -16082894.722 7 20611444.486 20611442.126 20611443.749
+ 46.800 46.400
+ -4532583.700 4 -3531881.143 3 23851535.274 23851534.548 23851534.408
+ 28.100 23.800
+ 06 1 2 8 59 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -2955777.661 5 -2303202.975 3 24099245.702 24099239.991 24099244.784
+ 30.100 22.600
+ -6959785.695 6 -5423209.575 5 22394887.345 22394885.704 22394886.843
+ 36.000 30.200
+ -14385696.206 7 -11209633.167 5 21906490.061 21906487.067 21906488.926
+ 43.400 33.500
+ -20071211.507 7 -15639903.381 7 20442916.262 20442914.545 20442915.491
+ 46.100 45.200
+ -7625936.660 5 -5942281.780 4 23207350.047 23207348.268 23207350.100
+ 33.400 24.600
+ -12249024.337 6 -9544689.196 5 22263096.081 22263093.070 22263094.679
+ 38.200 32.400
+ -20631640.398 7 -16076597.447 7 20612982.292 20612980.059 20612981.571
+ 46.900 46.400
+ -4577677.683 4 -3567019.265 3 23842952.916 23842952.862 23842953.443
+ 27.600 23.400
+ 06 1 2 9 0 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3058156.601 5 -2382978.793 3 24079764.902 24079757.920 24079763.277
+ 32.100 20.500
+ -6878106.888 5 -5359563.790 4 22410430.212 22410428.509 22410429.937
+ 35.500 29.900
+ -14411505.380 7 -11229744.219 5 21901578.586 21901575.858 21901577.362
+ 43.100 33.500
+ -20053573.822 7 -15626159.731 7 20446272.676 20446270.963 20446271.850
+ 46.300 45.300
+ -7531121.347 5 -5868399.721 4 23225393.144 23225391.417 23225392.822
+ 32.600 26.200
+ -12345048.954 6 -9619513.541 5 22244823.174 22244820.002 22244821.663
+ 37.300 32.100
+ -20623270.443 7 -16070075.403 7 20614574.936 20614572.828 20614574.231
+ 46.800 46.200
+ -4622363.671 4 -3601839.508 3 23834451.582 23834449.184 23834450.525
+ 27.900 21.600
+ 06 1 2 9 0 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3160487.111 5 -2462716.905 3 24060291.411 24060285.510 24060289.932
+ 31.000 22.100
+ -6796151.888 6 -5295702.785 4 22426026.634 22426023.965 22426025.711
+ 36.600 29.500
+ -14436713.633 7 -11249387.016 5 21896781.490 21896779.077 21896780.317
+ 42.800 34.000
+ -20035525.706 7 -15612096.273 7 20449707.162 20449705.465 20449706.339
+ 46.100 45.400
+ -7435993.678 5 -5794274.274 4 23243495.517 23243493.309 23243495.399
+ 34.100 25.300
+ -12440757.577 6 -9694091.656 5 22226610.638 22226607.357 22226609.099
+ 37.800 32.700
+ -20614612.587 7 -16063329.021 7 20616222.554 20616220.249 20616221.841
+ 46.700 46.300
+ -4666639.441 4 -3636340.085 4 23826027.264 23826024.520 23826025.600
+ 29.200 24.600
+ 06 1 2 9 1 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3262767.788 4 -2542416.124 4 24040827.374 24040822.792 24040826.236
+ 29.000 26.200
+ -6713921.781 5 -5231627.395 4 22441675.038 22441671.849 22441673.669
+ 35.900 29.000
+ -14461319.986 7 -11268560.792 5 21892099.084 21892096.620 21892097.902
+ 42.900 34.300
+ -20017066.543 7 -15597712.515 7 20453219.892 20453218.115 20453219.040
+ 46.300 45.400
+ -7340556.396 5 -5719907.560 4 23261656.471 23261654.662 23261656.153
+ 32.700 27.100
+ -12536147.700 6 -9768421.590 5 22208458.531 22208455.144 22208456.898
+ 37.600 32.400
+ -20605667.410 7 -16056358.750 7 20617924.700 20617922.395 20617924.001
+ 46.800 46.300
+ -4710502.917 4 -3670519.389 3 23817677.813 23817677.022 23817677.800
+ 28.800 23.000
+ 06 1 2 9 1 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3364996.866 4 -2622075.153 4 24021373.432 24021368.707 24021372.635
+ 27.400 25.300
+ -6631417.006 5 -5167337.996 4 22457374.864 22457372.206 22457373.508
+ 35.600 29.200
+ -14485323.137 7 -11287264.550 5 21887531.523 21887528.991 21887530.184
+ 42.900 34.300
+ -19998195.922 7 -15583008.136 7 20456810.660 20456808.953 20456809.853
+ 46.100 45.200
+ -7244812.245 5 -5645301.734 3 23279876.137 23279873.873 23279875.739
+ 33.200 23.400
+ -12631216.976 6 -9842501.525 5 22190367.188 22190364.018 22190365.722
+ 38.000 32.400
+ -20596435.338 7 -16049164.926 7 20619681.552 20619679.225 20619680.819
+ 46.800 46.200
+ -4753951.988 5 -3704375.766 3 23809410.091 23809408.445 23809410.328
+ 30.400 23.000
+ 06 1 2 9 2 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3467172.572 3 -2701692.577 4 24001929.850 24001925.238 24001928.857
+ 23.800 27.600
+ -6548638.637 5 -5102835.424 4 22473127.487 22473124.157 22473125.796
+ 35.300 29.000
+ -14508722.705 7 -11305497.974 5 21883078.874 21883076.212 21883077.615
+ 43.100 34.500
+ -19978913.534 7 -15567982.898 7 20460479.934 20460478.316 20460479.152
+ 46.300 45.200
+ -7148764.031 5 -5570458.969 4 23298153.630 23298151.354 23298153.291
+ 32.400 25.600
+ -12725963.254 6 -9916329.757 5 22172337.265 22172334.458 22172335.951
+ 38.100 32.600
+ -20586917.014 7 -16041748.050 7 20621492.691 20621490.560 20621492.033
+ 46.900 46.200
+ -4796984.592 5 -3737907.660 3 23801222.340 23801219.401 23801221.426
+ 30.200 21.600
+ 06 1 2 9 2 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3569293.587 4 -2781267.319 4 23982497.596 23982491.846 23982496.236
+ 26.200 28.400
+ -6465587.785 6 -5038120.522 4 22488930.851 22488928.393 22488929.840
+ 36.000 28.400
+ -14531517.846 7 -11323260.428 5 21878741.068 21878738.476 21878739.876
+ 43.300 34.400
+ -19959218.874 7 -15552636.394 7 20464227.807 20464226.112 20464227.006
+ 46.300 45.300
+ -7052414.534 5 -5495381.434 4 23316487.659 23316485.801 23316487.573
+ 30.800 25.600
+ -12820384.381 6 -9989904.628 5 22154369.240 22154366.786 22154368.120
+ 38.200 33.000
+ -20577113.057 7 -16034108.597 7 20623358.277 20623356.255 20623357.652
+ 46.800 46.300
+ -4839598.602 4 -3771113.358 3 23793111.697 23793110.864 23793111.515
+ 28.100 23.000
+ 06 1 2 9 3 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3671358.239 4 -2860798.225 5 23963075.352 23963069.996 23963074.043
+ 28.600 30.200
+ -6382264.985 5 -4973193.703 4 22504786.549 22504784.344 22504785.779
+ 35.600 29.700
+ -14553707.566 7 -11340551.119 5 21874518.553 21874515.813 21874517.368
+ 43.200 34.300
+ -19939111.564 7 -15536968.359 7 20468053.950 20468052.310 20468053.189
+ 46.300 45.300
+ -6955766.455 5 -5420071.250 4 23334879.180 23334877.818 23334879.088
+ 31.600 25.900
+ -12914478.112 6 -10063224.386 5 22136463.491 22136461.155 22136462.592
+ 38.800 33.200
+ -20567024.012 7 -16026247.004 7 20625278.211 20625276.092 20625277.524
+ 46.800 46.200
+ -4881791.912 4 -3803991.238 4 23785082.395 23785081.910 23785082.792
+ 29.000 25.300
+ 06 1 2 9 3 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3773364.862 4 -2940283.863 4 23943664.141 23943658.973 23943662.886
+ 27.900 29.500
+ -6298671.480 5 -4908055.942 4 22520693.148 22520691.524 22520693.205
+ 35.600 29.000
+ -14575290.670 7 -11357369.126 5 21870411.494 21870408.715 21870410.170
+ 43.100 34.600
+ -19918591.176 7 -15520978.451 7 20471958.964 20471957.239 20471958.104
+ 46.000 45.100
+ -6858822.487 4 -5344530.527 3 23353326.829 23353324.955 23353326.726
+ 29.500 23.400
+ -13008241.969 6 -10136287.103 5 22118620.385 22118618.498 22118620.024
+ 39.100 33.500
+ -20556650.409 7 -16018163.674 7 20627252.258 20627250.095 20627251.590
+ 46.900 46.300
+ -4923562.504 4 -3836539.711 4 23777135.487 23777132.962 23777134.063
+ 28.800 24.200
+ 06 1 2 9 4 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3875311.763 5 -3019723.035 4 23924264.835 23924259.238 23924263.297
+ 30.600 28.400
+ -6214808.053 5 -4842707.839 4 22536652.981 22536650.369 22536651.944
+ 35.300 29.700
+ -14596266.851 7 -11373714.202 5 21866419.536 21866416.915 21866418.388
+ 42.900 34.300
+ -19897657.241 7 -15504666.296 7 20475942.423 20475940.925 20475941.642
+ 46.100 45.200
+ -6761585.523 5 -5268761.437 4 23371830.915 23371828.970 23371830.515
+ 31.100 25.600
+ -13101673.864 6 -10209091.140 5 22100841.102 22100839.092 22100840.336
+ 38.800 33.200
+ -20545992.810 7 -16009859.053 7 20629280.444 20629278.114 20629279.698
+ 46.800 46.200
+ -4964908.089 4 -3868757.026 4 23769267.844 23769265.371 23769266.575
+ 29.900 24.200
+ 06 1 2 9 4 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -3977197.247 4 -3099114.281 4 23904876.062 23904870.428 23904874.886
+ 29.700 25.600
+ -6130675.468 5 -4777149.999 4 22552663.014 22552660.031 22552661.791
+ 34.500 28.100
+ -14616635.135 7 -11389585.594 5 21862543.373 21862540.933 21862542.218
+ 42.600 34.300
+ -19876309.319 7 -15488031.549 7 20480004.911 20480003.305 20480004.068
+ 46.200 45.300
+ -6664058.271 5 -5192766.191 4 23390390.030 23390387.955 23390389.624
+ 31.000 25.600
+ -13194771.404 6 -10281634.648 5 22083126.046 22083123.252 22083124.828
+ 39.300 34.100
+ -20535051.774 7 -16001333.570 7 20631362.256 20631360.150 20631361.607
+ 46.800 46.100
+ -5005826.963 4 -3900641.829 3 23761478.965 23761478.872 23761479.354
+ 29.500 23.800
+ 06 1 2 9 5 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4079019.975 4 -3178456.698 4 23885500.280 23885494.093 23885498.768
+ 29.700 24.900
+ -6046274.725 5 -4711383.190 4 22568724.252 22568721.202 22568722.862
+ 34.700 27.100
+ -14636394.851 7 -11404982.777 5 21858783.487 21858780.856 21858782.409
+ 43.100 34.500
+ -19854547.004 7 -15471073.905 7 20484146.062 20484144.492 20484145.347
+ 46.100 45.300
+ -6566243.393 5 -5116546.807 3 23409003.370 23409001.035 23409003.155
+ 30.800 23.800
+ -13287532.040 6 -10353915.649 5 22065474.831 22065471.425 22065473.178
+ 39.100 34.000
+ -20523827.842 7 -15992587.648 7 20633498.350 20633496.009 20633497.587
+ 46.800 46.100
+ -5046316.948 5 -3932192.448 4 23753775.189 23753773.868 23753774.704
+ 30.100 25.300
+ 06 1 2 9 5 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4180778.121 5 -3257748.767 4 23866135.484 23866130.223 23866134.445
+ 31.500 24.900
+ -5961606.814 5 -4645408.203 4 22584835.305 22584832.730 22584834.419
+ 34.600 27.600
+ -14655545.252 7 -11419905.168 5 21855139.587 21855136.788 21855138.429
+ 43.500 34.300
+ -19832369.873 7 -15453793.023 7 20488366.308 20488364.706 20488365.461
+ 46.100 45.200
+ -6468143.768 5 -5040105.576 4 23427671.290 23427669.153 23427670.892
+ 31.500 24.900
+ -13379953.724 6 -10425932.529 5 22047887.734 22047884.069 22047886.106
+ 39.700 34.000
+ -20512321.589 7 -15983621.733 7 20635687.870 20635685.583 20635687.157
+ 46.800 46.200
+ -5086376.071 4 -3963407.310 4 23746153.503 23746150.062 23746151.803
+ 28.800 25.300
+ 06 1 2 9 6 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4282469.976 5 -3336989.189 3 23846785.391 23846779.769 23846783.715
+ 30.800 23.400
+ -5876672.683 5 -4579225.756 4 22600997.771 22600995.059 22600996.933
+ 34.700 27.400
+ -14674085.497 7 -11434352.117 5 21851611.401 21851608.716 21851610.232
+ 43.500 34.600
+ -19809777.513 7 -15436188.590 7 20492665.574 20492663.918 20492664.777
+ 46.400 45.100
+ -6369762.194 5 -4963444.566 3 23446392.813 23446389.870 23446392.375
+ 31.500 22.100
+ -13472034.417 6 -10497683.701 5 22030364.187 22030361.610 22030363.207
+ 39.500 33.900
+ -20500533.667 7 -15974436.334 7 20637930.910 20637928.744 20637930.247
+ 46.800 46.100
+ -5126002.412 5 -3994284.970 4 23738611.347 23738609.751 23738610.874
+ 30.200 24.200
+ 06 1 2 9 6 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4384093.900 5 -3416176.674 3 23827446.177 23827440.469 23827445.038
+ 30.800 22.100
+ -5791473.414 5 -4512836.709 4 22617211.209 22617208.325 22617210.049
+ 34.500 29.000
+ -14692015.098 7 -11448323.237 5 21848199.345 21848196.787 21848198.104
+ 43.100 34.400
+ -19786769.601 7 -15418260.352 7 20497043.830 20497042.164 20497043.027
+ 46.400 45.200
+ -6271101.265 5 -4886565.933 3 23465166.952 23465164.834 23465166.639
+ 31.100 22.600
+ -13563771.985 6 -10569167.491 5 22012906.567 22012904.667 22012905.897
+ 39.300 34.300
+ -20488464.452 7 -15965031.752 7 20640227.792 20640225.377 20640227.067
+ 47.000 46.100
+ -5165193.855 4 -4024823.726 4 23731153.006 23731152.570 23731152.682
+ 29.000 24.900
+ 06 1 2 9 7 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4485648.178 5 -3495309.902 3 23808121.446 23808115.542 23808120.170
+ 31.000 23.000
+ -5706009.785 5 -4446241.698 4 22633474.356 22633471.448 22633473.223
+ 34.900 27.600
+ -14709333.675 7 -11461818.239 5 21844903.417 21844901.269 21844902.246
+ 42.500 34.500
+ -19763345.880 7 -15400008.102 7 20501501.280 20501499.537 20501500.412
+ 46.400 45.100
+ -6172163.772 5 -4809471.788 3 23483994.368 23483992.056 23483994.021
+ 31.800 22.600
+ -13655163.910 6 -10640381.952 5 21995515.268 21995513.235 21995514.765
+ 40.500 34.100
+ -20476114.693 7 -15955408.562 7 20642577.905 20642575.444 20642577.200
+ 47.000 45.900
+ -5203948.543 4 -4055022.169 4 23723780.229 23723777.429 23723778.508
+ 29.700 24.600
+ 06 1 2 9 7 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4587130.990 4 -3574387.420 4 23788808.812 23788804.327 23788808.066
+ 28.100 24.900
+ -5620282.903 5 -4379441.544 4 22649787.143 22649784.731 22649786.325
+ 34.500 28.100
+ -14726040.319 7 -11474836.401 5 21841724.449 21841722.042 21841723.237
+ 42.800 34.500
+ -19739505.989 7 -15381431.566 7 20506037.942 20506036.076 20506037.089
+ 46.600 45.000
+ -6072952.481 5 -4732164.293 3 23502873.758 23502871.489 23502873.581
+ 32.000 21.600
+ -13746207.838 6 -10711325.245 5 21978190.241 21978188.087 21978189.684
+ 40.300 34.100
+ -20463484.829 7 -15945567.110 7 20644981.105 20644978.808 20644980.440
+ 47.100 46.000
+ -5242264.681 4 -4084878.876 4 23716487.890 23716486.035 23716486.810
+ 29.000 24.900
+ 06 1 2 9 8 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4688540.993 4 -3653408.186 4 23769511.852 23769506.438 23769510.264
+ 28.600 24.600
+ -5534293.412 5 -4312436.765 4 22666150.647 22666148.327 22666149.652
+ 34.400 28.800
+ -14742134.374 7 -11487377.233 5 21838662.076 21838659.474 21838660.973
+ 43.500 34.600
+ -19715249.449 7 -15362530.367 7 20510653.767 20510651.883 20510652.983
+ 46.600 44.900
+ -5973470.165 4 -4654645.578 3 23521803.637 23521802.356 23521803.593
+ 29.500 23.800
+ -13836901.967 6 -10781995.969 5 21960932.305 21960929.456 21960931.157
+ 39.700 33.900
+ -20450575.383 7 -15935507.802 7 20647437.756 20647435.394 20647437.104
+ 47.000 45.900
+ -5280140.190 5 -4114392.247 4 23709279.609 23709278.819 23709279.477
+ 30.400 26.200
+ 06 1 2 9 8 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4789876.388 4 -3732370.834 4 23750227.150 23750223.211 23750226.543
+ 28.600 25.300
+ -5448042.675 5 -4245228.429 4 22682563.466 22682561.162 22682562.448
+ 33.400 28.100
+ -14757615.544 7 -11499440.484 5 21835716.248 21835713.495 21835715.023
+ 43.500 35.100
+ -19690576.018 7 -15343304.325 7 20515349.145 20515347.088 20515348.227
+ 46.600 44.800
+ -5873719.439 5 -4576917.763 4 23540786.690 23540784.759 23540786.235
+ 31.000 25.600
+ -13927243.896 6 -10852392.263 5 21943741.672 21943738.108 21943739.927
+ 39.800 34.800
+ -20437387.035 7 -15925231.166 7 20649947.325 20649945.050 20649946.584
+ 46.900 45.800
+ -5317573.189 4 -4143560.805 4 23702157.320 23702154.956 23702156.258
+ 29.500 24.200
+ 06 1 2 9 9 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4891135.053 5 -3811273.671 4 23730959.212 23730954.371 23730958.379
+ 31.300 28.800
+ -5361531.402 5 -4177817.068 4 22699026.545 22699023.612 22699025.234
+ 34.500 27.900
+ -14772482.693 7 -11511025.286 5 21832887.024 21832884.170 21832885.803
+ 43.300 34.600
+ -19665485.412 7 -15323753.218 7 20520123.593 20520121.751 20520122.771
+ 46.600 44.800
+ -5773703.073 4 -4498982.945 3 23559818.434 23559816.887 23559818.067
+ 29.200 23.000
+ -14017231.422 6 -10922512.385 5 21926617.297 21926614.017 21926615.772
+ 40.500 35.300
+ -20423920.216 7 -15914737.537 7 20652510.064 20652507.691 20652509.328
+ 46.900 45.900
+ -5354561.776 4 -4172383.058 4 23695118.369 23695116.656 23695117.244
+ 29.700 24.600
+ 06 1 2 9 9 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -4992315.767 5 -3890115.769 5 23711705.960 23711700.344 23711704.521
+ 32.100 30.200
+ -5274760.748 5 -4110203.601 4 22715538.461 22715535.411 22715537.057
+ 34.100 26.500
+ -14786736.115 7 -11522131.851 5 21830174.472 21830172.028 21830173.337
+ 43.200 34.800
+ -19639977.333 7 -15303876.805 7 20524977.410 20524975.824 20524976.759
+ 46.600 44.700
+ -5673423.929 5 -4420843.373 3 23578901.284 23578899.125 23578900.974
+ 30.100 22.600
+ -14106862.494 6 -10992354.759 5 21909559.559 21909557.942 21909559.154
+ 40.300 35.100
+ -20410175.511 7 -15904027.373 7 20655125.638 20655123.291 20655124.955
+ 47.000 45.900
+ -5391104.087 4 -4200857.547 3 23688163.329 23688161.992 23688163.245
+ 29.700 23.400
+ 06 1 2 9 10 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5093416.557 5 -3968895.600 5 23692465.789 23692461.575 23692464.880
+ 31.300 31.000
+ -5187731.748 5 -4042388.821 4 22732099.018 22732096.529 22732098.120
+ 33.900 26.500
+ -14800374.998 7 -11532759.562 5 21827579.031 21827576.744 21827577.926
+ 43.100 35.100
+ -19614051.367 7 -15283674.759 7 20529911.147 20529909.383 20529910.266
+ 46.600 44.700
+ -5572884.720 4 -4342501.081 3 23598032.718 23598030.947 23598033.023
+ 29.500 22.600
+ -14196134.735 6 -11061917.505 5 21892572.055 21892570.105 21892571.448
+ 41.000 35.300
+ -20396153.568 7 -15893101.180 7 20657793.886 20657791.565 20657793.157
+ 47.000 45.900
+ -5427198.170 5 -4228982.790 4 23681295.818 23681293.686 23681294.805
+ 30.100 24.600
+ 06 1 2 9 10 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5194435.867 5 -4047611.880 4 23673243.643 23673237.897 23673242.375
+ 32.100 28.800
+ -5100445.321 5 -3974373.491 4 22748709.259 22748706.492 22748708.309
+ 33.900 26.800
+ -14813398.687 7 -11542907.899 5 21825100.743 21825098.370 21825099.598
+ 43.000 34.700
+ -19587707.276 7 -15263146.899 7 20534924.469 20534922.427 20534923.472
+ 46.500 44.600
+ -5472088.007 4 -4263958.229 3 23617214.328 23617212.666 23617213.703
+ 28.800 22.600
+ -14285046.165 6 -11131199.124 5 21875653.755 21875650.459 21875652.284
+ 40.800 34.700
+ -20381854.802 7 -15881959.284 7 20660514.732 20660512.527 20660514.098
+ 47.000 45.900
+ -5462842.317 5 -4256757.445 3 23674513.915 23674511.266 23674512.566
+ 30.600 23.800
+ 06 1 2 9 11 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5295371.583 5 -4126263.119 4 23654036.227 23654030.859 23654034.725
+ 30.800 29.500
+ -5012902.368 5 -3906158.259 4 22765368.157 22765365.554 22765367.361
+ 34.500 26.800
+ -14825806.795 7 -11552576.556 5 21822739.636 21822736.996 21822738.457
+ 43.100 34.700
+ -19560944.709 7 -15242292.945 7 20540016.739 20540015.141 20540016.130
+ 46.700 44.600
+ -5371036.723 4 -4185216.952 3 23636443.599 23636441.146 23636443.159
+ 27.900 21.100
+ -14373594.427 6 -11200197.754 5 21858804.037 21858800.452 21858802.181
+ 40.200 35.200
+ -20367279.878 7 -15870602.201 7 20663288.420 20663286.082 20663287.680
+ 47.000 46.000
+ -5498034.583 4 -4284180.005 3 23667815.652 23667813.971 23667815.025
+ 28.800 23.400
+ 06 1 2 9 11 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5396222.245 4 -4204848.018 4 23634844.302 23634839.039 23634842.947
+ 29.900 27.400
+ -4925103.817 5 -3837743.839 4 22782075.905 22782073.200 22782074.779
+ 32.400 26.500
+ -14837599.033 7 -11561765.321 5 21820495.888 21820493.015 21820494.542
+ 43.100 34.700
+ -19533763.330 7 -15221112.646 7 20545189.388 20545187.634 20545188.655
+ 46.600 44.600
+ -5269733.446 5 -4106279.320 3 23655722.038 23655719.337 23655721.501
+ 30.600 23.400
+ -14461777.777 6 -11268912.035 5 21842022.904 21842019.552 21842021.368
+ 40.800 35.300
+ -20352429.190 7 -15859030.240 7 20666114.236 20666112.128 20666113.636
+ 47.000 46.000
+ -5532773.320 4 -4311249.125 3 23661204.642 23661204.104 23661204.582
+ 29.900 23.800
+ 06 1 2 9 12 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5496985.956 5 -4283365.176 4 23615669.484 23615663.947 23615668.585
+ 30.100 26.500
+ -4837050.987 5 -3769131.274 4 22798831.466 22798829.233 22798830.539
+ 32.800 26.800
+ -14848775.036 7 -11570473.902 5 21818369.014 21818366.472 21818367.814
+ 43.200 35.300
+ -19506163.034 7 -15199605.920 7 20550441.829 20550439.760 20550440.827
+ 46.500 44.600
+ -5168180.864 4 -4027147.470 3 23675045.382 23675044.339 23675044.873
+ 27.400 23.800
+ -14549593.728 6 -11337340.027 5 21825311.095 21825308.808 21825310.268
+ 41.400 35.700
+ -20337303.398 7 -15847243.913 7 20668992.674 20668990.477 20668991.974
+ 47.100 46.000
+ -5567056.711 5 -4337963.440 4 23654681.978 23654680.107 23654680.892
+ 30.800 24.900
+ 06 1 2 9 12 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5597661.004 4 -4361813.253 4 23596511.737 23596506.880 23596510.544
+ 29.900 27.900
+ -4748744.848 5 -3700321.306 4 22815634.743 22815633.007 22815634.130
+ 32.300 26.200
+ -14859334.524 7 -11578702.078 5 21816359.436 21816357.185 21816358.306
+ 43.000 35.400
+ -19478143.712 7 -15177772.686 7 20555773.739 20555771.720 20555772.671
+ 46.500 44.400
+ -5066381.743 4 -3947823.503 3 23694418.055 23694415.548 23694417.510
+ 28.600 21.600
+ -14637040.432 6 -11405480.286 5 21808670.679 21808668.264 21808669.694
+ 41.000 35.600
+ -20321903.033 7 -15835243.631 7 20671923.267 20671921.031 20671922.559
+ 47.000 46.000
+ -5600882.840 4 -4364321.455 4 23648244.470 23648242.918 23648243.647
+ 29.700 24.900
+ 06 1 2 9 13 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5698245.488 5 -4440190.778 4 23577371.833 23577365.959 23577370.257
+ 31.600 26.200
+ -4660186.209 5 -3631314.572 4 22832487.134 22832485.236 22832486.544
+ 32.800 26.200
+ -14869277.020 7 -11586449.482 5 21814467.474 21814465.214 21814466.307
+ 43.200 35.500
+ -19449704.982 7 -15155612.638 7 20561184.894 20561183.479 20561184.300
+ 46.400 44.300
+ -4964338.887 4 -3868309.558 3 23713835.786 23713833.172 23713835.423
+ 28.800 19.300
+ -14724115.605 6 -11473331.050 5 21792101.330 21792098.317 21792099.919
+ 41.300 35.900
+ -20306228.655 7 -15823029.832 7 20674905.770 20674903.819 20674905.193
+ 47.000 46.000
+ -5634249.994 4 -4390321.811 4 23641894.326 23641893.263 23641894.127
+ 29.900 24.600
+ 06 1 2 9 13 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5798737.796 5 -4518496.457 4 23558248.904 23558243.059 23558247.469
+ 32.700 27.100
+ -4571376.314 5 -3562112.082 4 22849387.121 22849385.678 22849386.734
+ 32.800 28.100
+ -14878602.085 7 -11593715.765 5 21812693.200 21812690.598 21812691.877
+ 43.400 35.300
+ -19420846.607 7 -15133125.590 7 20566676.356 20566674.968 20566675.800
+ 46.600 44.600
+ -4862054.890 4 -3788607.742 3 23733299.073 23733297.821 23733299.064
+ 29.000 22.100
+ -14810817.097 6 -11540890.633 6 21775602.385 21775599.599 21775601.288
+ 41.900 36.000
+ -20290280.768 7 -15810602.909 7 20677940.789 20677938.634 20677940.022
+ 46.800 46.200
+ -5667156.391 5 -4415963.146 4 23635633.087 23635631.363 23635632.509
+ 30.400 24.200
+ 06 1 2 9 14 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5899135.678 5 -4596728.589 4 23539143.116 23539137.828 23539142.338
+ 32.400 24.600
+ -4482316.042 5 -3492714.506 4 22866335.145 22866333.037 22866334.331
+ 32.600 27.100
+ -14887309.599 7 -11600500.840 5 21811036.404 21811033.666 21811035.131
+ 43.500 35.500
+ -19391568.338 7 -15110311.358 7 20572248.363 20572246.443 20572247.340
+ 46.200 44.300
+ -4759532.530 5 -3708720.190 3 23752809.897 23752806.508 23752809.606
+ 30.400 21.100
+ -14897142.974 7 -11608157.525 6 21759174.866 21759172.404 21759173.972
+ 42.000 36.500
+ -20274059.884 7 -15797963.261 7 20681027.341 20681025.366 20681026.655
+ 46.800 46.100
+ -5699600.452 5 -4441244.217 3 23629459.137 23629457.011 23629458.287
+ 30.400 23.400
+ 06 1 2 9 14 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -5999438.207 5 -4674886.383 4 23520056.210 23520050.592 23520054.786
+ 31.300 27.100
+ -4393006.764 5 -3423122.870 4 22883330.227 22883327.969 22883329.293
+ 32.100 26.800
+ -14895399.220 7 -11606804.447 5 21809496.646 21809494.214 21809495.521
+ 43.400 35.300
+ -19361869.885 7 -15087169.706 7 20577899.893 20577897.849 20577898.837
+ 46.500 44.200
+ -4656774.378 4 -3628648.900 3 23772361.874 23772360.929 23772362.328
+ 27.600 20.500
+ -14983090.796 6 -11675129.838 6 21742819.875 21742817.018 21742818.523
+ 41.300 36.400
+ -20257566.609 7 -15785111.364 7 20684166.067 20684163.887 20684165.382
+ 46.800 46.000
+ -5731580.471 4 -4466163.703 4 23623372.616 23623371.989 23623372.547
+ 29.900 24.200
+ 06 1 2 9 15 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6099642.749 5 -4752967.853 4 23500988.465 23500982.889 23500986.781
+ 31.100 27.900
+ -4303449.286 5 -3353337.866 4 22900372.169 22900370.247 22900371.708
+ 32.100 27.400
+ -14902870.768 7 -11612626.435 5 21808075.163 21808072.560 21808073.979
+ 43.800 35.800
+ -19331751.160 7 -15063700.557 7 20583630.636 20583629.243 20583630.159
+ 46.600 44.000
+ -4553783.198 4 -3548396.042 3 23791962.243 23791959.737 23791961.839
+ 29.500 22.600
+ -15068658.812 6 -11741806.192 6 21726536.383 21726533.981 21726535.321
+ 41.600 36.400
+ -20240801.445 7 -15772047.601 7 20687356.228 20687354.166 20687355.601
+ 46.900 46.000
+ -5763094.652 5 -4490720.192 4 23617376.291 23617374.952 23617375.914
+ 30.100 24.200
+ 06 1 2 9 15 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6199747.721 5 -4830971.686 4 23481938.152 23481933.245 23481936.731
+ 30.200 28.100
+ -4213644.921 5 -3283360.480 4 22917461.686 22917459.353 22917460.820
+ 32.300 26.200
+ -14909724.285 7 -11617966.841 5 21806770.929 21806768.154 21806769.705
+ 43.600 35.600
+ -19301212.035 7 -15039903.823 7 20589441.914 20589440.612 20589441.356
+ 46.500 44.200
+ -4450561.768 5 -3467963.752 3 23811604.694 23811602.712 23811604.673
+ 31.000 22.600
+ -15153845.033 6 -11808185.042 6 21710325.816 21710323.463 21710324.829
+ 41.600 36.500
+ -20223764.960 7 -15758772.413 7 20690598.316 20690596.092 20690597.533
+ 46.800 45.900
+ -5794141.354 5 -4514912.424 3 23611469.255 23611466.666 23611468.230
+ 30.800 23.800
+ 06 1 2 9 16 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6299751.198 5 -4908896.476 4 23462908.049 23462903.132 23462906.965
+ 30.200 27.600
+ -4123594.222 5 -3213191.148 4 22934597.962 22934595.472 22934597.164
+ 32.300 24.200
+ -14915959.190 7 -11622825.215 5 21805584.601 21805581.777 21805583.358
+ 43.700 35.700
+ -19270252.309 7 -15015779.364 7 20595333.871 20595332.025 20595332.871
+ 46.500 43.900
+ -4347112.649 4 -3387354.037 3 23831290.107 23831287.645 23831289.646
+ 28.100 22.100
+ -15238647.250 7 -11874264.666 6 21694189.254 21694185.973 21694187.844
+ 42.100 36.300
+ -20206457.626 7 -15745286.180 7 20693891.600 20693889.514 20693890.949
+ 47.000 45.800
+ -5824719.016 5 -4538739.149 4 23605649.466 23605648.425 23605648.890
+ 30.200 25.600
+ 06 1 2 9 16 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6399651.701 5 -4986741.006 4 23443898.566 23443893.071 23443897.153
+ 32.100 28.800
+ -4033298.686 5 -3142831.056 4 22951780.465 22951778.544 22951779.722
+ 31.600 26.800
+ -14921575.520 7 -11627201.572 5 21804515.666 21804513.092 21804514.484
+ 43.600 35.700
+ -19238871.801 7 -14991327.032 7 20601305.698 20601303.519 20601304.571
+ 46.400 44.100
+ -4243438.547 4 -3306569.046 3 23851017.962 23851016.593 23851017.535
+ 26.800 23.000
+ -15323063.537 7 -11940043.571 6 21678124.775 21678122.166 21678123.740
+ 42.200 36.600
+ -20188880.111 7 -15731589.416 7 20697236.770 20697234.363 20697236.019
+ 47.000 45.700
+ -5854825.812 5 -4562198.975 4 23599920.690 23599919.120 23599920.299
+ 31.500 24.900
+ 06 1 2 9 17 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6499447.156 5 -5064503.698 5 23424907.560 23424902.687 23424906.262
+ 32.000 30.100
+ -3942759.351 5 -3072280.977 3 22969010.093 22969007.068 22969008.816
+ 31.600 23.000
+ -14926573.160 7 -11631095.845 5 21803564.456 21803562.134 21803563.280
+ 43.300 35.600
+ -19207070.421 7 -14966546.747 7 20607356.880 20607355.245 20607356.160
+ 46.500 44.000
+ -4139542.218 4 -3225610.884 3 23870790.502 23870787.352 23870789.845
+ 28.400 22.100
+ -15407091.826 7 -12005520.128 6 21662134.671 21662131.993 21662133.692
+ 42.500 36.500
+ -20171032.869 7 -15717682.474 7 20700632.827 20700630.589 20700632.078
+ 47.100 45.600
+ -5884460.174 5 -4585290.679 4 23594282.590 23594279.724 23594281.689
+ 31.800 24.200
+ 06 1 2 9 17 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6599135.569 5 -5142182.975 4 23405938.348 23405932.371 23405936.801
+ 34.600 29.200
+ -3851977.185 5 -3001541.652 4 22986285.463 22986282.503 22986284.084
+ 31.300 25.300
+ -14930952.080 7 -11634507.994 5 21802731.168 21802728.781 21802729.964
+ 42.900 35.500
+ -19174847.920 7 -14941438.313 7 20613488.388 20613487.029 20613487.904
+ 46.700 43.900
+ -4035426.259 4 -3144481.553 3 23890601.831 23890600.379 23890602.039
+ 27.900 21.100
+ -15490729.943 7 -12070692.672 6 21646218.952 21646216.211 21646217.778
+ 42.200 36.500
+ -20152916.396 7 -15703565.741 7 20704080.229 20704078.100 20704079.591
+ 47.200 45.700
+ -5913620.555 5 -4608013.059 4 23588732.815 23588730.806 23588731.874
+ 31.300 24.600
+ 06 1 2 9 18 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6698715.224 5 -5219777.533 4 23386988.949 23386982.803 23386987.513
+ 34.600 28.100
+ -3760953.521 5 -2930614.149 3 23003606.953 23003603.907 23003605.515
+ 31.000 23.800
+ -14934712.203 7 -11637437.967 5 21802015.889 21802013.345 21802014.532
+ 43.100 35.800
+ -19142204.163 7 -14916001.618 7 20619700.660 20619698.900 20619699.856
+ 46.600 43.800
+ -3931093.266 4 -3063183.136 3 23910455.239 23910453.437 23910454.760
+ 25.900 18.600
+ -15573976.029 7 -12135559.714 6 21630377.469 21630374.961 21630376.578
+ 42.500 36.800
+ -20134531.246 7 -15689239.658 7 20707578.969 20707576.666 20707578.207
+ 47.100 45.600
+ -5942305.490 5 -4630364.938 4 23583273.594 23583272.154 23583273.127
+ 30.400 24.200
+ 06 1 2 9 18 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6798184.279 5 -5297285.861 5 23368059.804 23368054.622 23368058.592
+ 32.800 30.200
+ -3669689.132 5 -2859499.099 4 23020973.913 23020971.293 23020972.463
+ 30.400 25.900
+ -14937853.191 7 -11639885.496 6 21801417.951 21801415.689 21801416.787
+ 43.400 36.000
+ -19109139.091 7 -14890236.639 7 20625993.125 20625990.946 20625991.966
+ 46.500 43.900
+ -3826546.019 4 -2981717.731 3 23930348.598 23930348.214 23930349.093
+ 25.300 19.300
+ -15656828.175 7 -12200119.812 6 21614611.965 21614608.772 21614610.500
+ 42.300 37.300
+ -20115877.998 7 -15674704.654 7 20711128.444 20711126.204 20711127.772
+ 47.100 45.500
+ -5970513.317 5 -4652345.037 4 23577906.107 23577904.724 23577905.484
+ 31.500 24.600
+ 06 1 2 9 19 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6897540.594 5 -5374706.367 5 23349153.656 23349147.822 23349152.364
+ 32.800 30.200
+ -3578185.476 5 -2788197.618 4 23038386.162 23038383.991 23038385.132
+ 31.000 24.900
+ -14940375.134 7 -11641850.648 6 21800938.096 21800935.682 21800937.037
+ 43.500 36.100
+ -19075652.604 7 -14864143.275 7 20632364.830 20632363.277 20632364.136
+ 46.800 43.800
+ -3721787.119 4 -2900087.444 2 23950285.931 23950283.306 23950285.465
+ 27.100 16.100
+ -15739284.270 7 -12264371.278 6 21598920.207 21598917.945 21598919.483
+ 42.900 37.200
+ -20096957.101 7 -15659961.102 7 20714728.988 20714726.764 20714728.304
+ 47.200 45.400
+ -5998242.389 5 -4673952.093 4 23572629.579 23572627.897 23572628.774
+ 31.100 24.200
+ 06 1 2 9 19 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -6996782.332 5 -5452037.594 4 23330269.312 23330262.924 23330267.120
+ 32.300 29.900
+ -3486443.434 5 -2716710.371 4 23055844.328 23055841.598 23055843.138
+ 30.800 25.600
+ -14942278.275 7 -11643333.618 6 21800576.174 21800573.565 21800574.964
+ 43.500 36.000
+ -19041744.620 7 -14837721.473 7 20638817.267 20638815.701 20638816.673
+ 46.600 43.800
+ -3616819.320 4 -2818294.316 3 23970260.894 23970258.374 23970260.375
+ 27.900 19.900
+ -15821342.298 7 -12328312.576 6 21583306.175 21583302.561 21583304.627
+ 42.500 36.900
+ -20077769.232 7 -15645009.512 7 20718380.348 20718378.190 20718379.626
+ 47.100 45.600
+ -6025491.408 5 -4695185.082 4 23567444.505 23567442.687 23567443.677
+ 31.000 24.200
+ 06 1 2 9 20 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7095907.859 5 -5529278.248 4 23311404.520 23311399.753 23311403.402
+ 32.000 29.200
+ -3394464.249 5 -2645038.343 4 23073347.651 23073344.787 23073346.416
+ 31.800 25.600
+ -14943562.626 7 -11644334.419 5 21800331.873 21800329.063 21800330.587
+ 43.600 35.600
+ -19007414.985 7 -14810971.115 7 20645350.016 20645348.335 20645349.312
+ 46.800 43.600
+ -3511645.145 4 -2736340.423 3 23990273.416 23990272.051 23990273.295
+ 27.100 21.100
+ -15903000.417 7 -12391942.254 6 21567766.024 21567763.547 21567765.220
+ 42.800 37.200
+ -20058314.728 7 -15629850.161 7 20722082.356 20722080.259 20722081.691
+ 47.000 45.600
+ -6052258.662 5 -4716042.690 3 23562350.168 23562348.485 23562349.541
+ 30.600 22.600
+ 06 1 2 9 20 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7194915.007 5 -5606426.668 4 23292564.506 23292559.084 23292563.209
+ 31.800 29.000
+ -3302249.116 5 -2573182.430 4 23090895.480 23090892.641 23090894.430
+ 31.300 24.200
+ -14944228.166 7 -11644853.028 6 21800204.958 21800202.514 21800203.754
+ 43.400 36.200
+ -18972663.633 7 -14783892.147 7 20651963.283 20651961.384 20651962.303
+ 46.400 43.600
+ -3406267.368 4 -2654227.893 3 24010326.937 24010325.202 24010326.490
+ 28.400 22.100
+ -15984256.620 7 -12455258.746 6 21552303.973 21552301.093 21552302.700
+ 42.800 37.400
+ -20038594.177 7 -15614483.497 7 20725835.165 20725832.922 20725834.448
+ 47.100 45.600
+ -6078542.704 5 -4736523.742 4 23557348.752 23557347.727 23557347.969
+ 30.100 26.800
+ 06 1 2 9 21 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7293801.975 5 -5683481.447 4 23273747.529 23273741.662 23273746.134
+ 33.900 28.800
+ -3209799.013 4 -2501143.438 4 23108488.213 23108485.767 23108486.876
+ 29.900 25.900
+ -14944274.866 7 -11644889.429 5 21800196.062 21800193.627 21800194.843
+ 43.500 35.800
+ -18937490.562 7 -14756484.572 7 20658656.663 20658654.615 20658655.661
+ 46.500 43.600
+ -3300688.586 4 -2571958.686 2 24030417.997 24030415.636 24030417.659
+ 28.100 16.100
+ -16065109.097 7 -12518260.643 6 21536917.477 21536915.188 21536916.921
+ 43.100 37.200
+ -20018608.182 7 -15598910.002 7 20729638.283 20729636.131 20729637.589
+ 47.100 45.600
+ -6104342.141 5 -4756627.173 4 23552438.928 23552438.301 23552438.493
+ 31.000 26.500
+ 06 1 2 9 21 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7392566.963 5 -5760441.192 4 23254953.442 23254947.243 23254951.910
+ 35.700 28.800
+ -3117114.976 5 -2428922.178 4 23126125.511 23126122.913 23126124.171
+ 30.400 24.900
+ -14943702.817 7 -11644443.681 6 21800305.042 21800302.666 21800303.887
+ 43.600 36.300
+ -18901895.718 7 -14728748.341 7 20665429.704 20665428.068 20665428.988
+ 46.600 43.400
+ -3194911.241 4 -2489534.799 3 24050546.254 24050544.488 24050545.831
+ 24.900 18.600
+ -16145555.566 7 -12580946.177 6 21521610.281 21521606.756 21521608.751
+ 42.800 37.300
+ -19998357.131 7 -15583129.961 7 20733491.903 20733489.803 20733491.266
+ 47.100 45.500
+ -6129655.508 5 -4776351.863 4 23547622.527 23547620.502 23547621.874
+ 31.600 25.300
+ 06 1 2 9 22 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7491207.826 5 -5837304.230 4 23236181.790 23236175.901 23236180.654
+ 34.800 28.100
+ -3024198.358 4 -2356519.650 4 23143806.546 23143804.574 23143805.328
+ 29.700 24.900
+ -14942512.323 7 -11643516.028 6 21800531.657 21800529.067 21800530.533
+ 43.800 36.300
+ -18865879.153 7 -14700683.486 7 20672282.999 20672281.806 20672282.539
+ 46.300 43.400
+ -3088938.273 4 -2406958.454 3 24070712.517 24070710.101 24070712.355
+ 27.400 18.600
+ -16225594.439 7 -12643314.105 6 21506378.718 21506375.978 21506377.640
+ 43.200 37.900
+ -19977841.603 7 -15567143.836 7 20737395.990 20737393.757 20737395.276
+ 47.000 45.500
+ -6154481.276 5 -4795696.619 4 23542898.363 23542896.007 23542897.431
+ 31.300 25.300
+ 06 1 2 9 22 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7589722.588 5 -5914068.970 4 23217434.840 23217430.158 23217433.680
+ 33.600 29.200
+ -2931050.061 4 -2283936.634 4 23161532.370 23161529.904 23161531.183
+ 29.500 24.600
+ -14940703.566 7 -11642106.618 6 21800875.708 21800873.329 21800874.518
+ 43.400 36.000
+ -18829440.880 7 -14672290.036 7 20679217.406 20679215.778 20679216.683
+ 46.300 43.200
+ -2982772.052 4 -2324231.517 3 24090915.805 24090913.234 24090915.227
+ 28.800 18.600
+ -16305223.742 7 -12705362.884 6 21491226.046 21491222.961 21491224.678
+ 43.300 38.000
+ -19957062.113 7 -15550952.019 7 20741349.923 20741347.956 20741349.384
+ 47.100 45.500
+ -6178818.147 5 -4814660.394 4 23538266.991 23538264.875 23538265.990
+ 30.100 24.900
+ 06 1 2 9 23 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7688109.443 5 -5990734.040 4 23198712.671 23198707.352 23198711.769
+ 34.700 28.800
+ -2837671.757 4 -2211174.341 3 23179301.797 23179298.980 23179300.286
+ 28.600 23.800
+ -14938276.623 7 -11640215.507 5 21801337.329 21801335.032 21801336.320
+ 43.400 35.700
+ -18792580.649 7 -14643567.792 7 20686232.012 20686230.010 20686231.034
+ 46.200 43.400
+ -2876415.220 4 -2241356.056 2 24111153.823 24111151.790 24111153.746
+ 25.900 17.800
+ -16384441.822 7 -12767091.240 6 21476150.719 21476148.234 21476149.923
+ 43.500 38.000
+ -19936019.284 7 -15534555.006 7 20745354.461 20745352.325 20745353.720
+ 47.000 45.500
+ -6202664.637 5 -4833242.057 4 23533729.517 23533727.285 23533728.815
+ 32.100 24.600
+ 06 1 2 9 23 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7786366.247 5 -6067297.794 4 23180014.532 23180009.543 23180013.957
+ 33.500 29.000
+ -2744064.135 4 -2138233.391 4 23197114.800 23197112.575 23197113.343
+ 29.900 25.300
+ -14935231.989 7 -11637843.070 5 21801916.908 21801914.365 21801915.734
+ 43.500 35.400
+ -18755298.362 7 -14614516.672 7 20693326.419 20693324.589 20693325.521
+ 46.300 43.200
+ -2769870.443 4 -2158334.157 2 24131429.261 24131426.832 24131429.253
+ 26.200 15.100
+ -16463246.378 7 -12828497.362 6 21461155.276 21461152.109 21461153.931
+ 43.100 37.700
+ -19914713.440 7 -15517953.043 7 20749408.585 20749406.647 20749407.992
+ 47.100 45.500
+ -6226019.432 5 -4851440.605 4 23529284.911 23529283.042 23529283.776
+ 31.500 24.900
+ 06 1 2 9 24 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7884490.999 5 -6143758.648 5 23161342.449 23161337.127 23161341.246
+ 33.100 30.100
+ -2650228.676 5 -2065114.891 3 23214970.519 23214968.531 23214969.746
+ 30.100 23.400
+ -14931569.682 7 -11634989.337 5 21802614.008 21802611.254 21802612.790
+ 43.600 35.700
+ -18717594.100 7 -14585136.743 7 20700501.056 20700499.580 20700500.375
+ 46.500 43.100
+ -2663140.366 3 -2075167.855 2 24151738.864 24151737.739 24151738.510
+ 23.400 17.000
+ -16541635.825 7 -12889580.035 6 21446237.400 21446235.259 21446236.626
+ 43.200 38.200
+ -19893145.206 7 -15501146.625 7 20753513.054 20753510.915 20753512.390
+ 47.400 45.400
+ -6248881.178 5 -4869254.912 3 23524935.003 23524932.216 23524933.855
+ 32.000 23.800
+ 06 1 2 9 24 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -7982482.258 5 -6220115.470 5 23142696.408 23142690.226 23142694.690
+ 34.800 30.100
+ -2556166.352 5 -1991819.600 4 23232870.313 23232868.265 23232869.338
+ 30.400 24.200
+ -14927289.701 7 -11631654.297 5 21803428.194 21803425.802 21803427.047
+ 43.200 35.900
+ -18679467.846 7 -14555427.984 7 20707756.416 20707754.847 20707755.692
+ 46.400 43.200
+ -2556227.524 4 -1991859.151 3 24172083.962 24172082.603 24172083.794
+ 27.900 19.300
+ -16619608.154 7 -12950337.675 6 21431400.229 21431397.555 21431399.076
+ 43.100 38.300
+ -19871315.082 7 -15484136.132 7 20757667.294 20757665.064 20757666.618
+ 47.300 45.400
+ -6271248.446 5 -4886683.954 4 23520678.647 23520675.945 23520677.896
+ 32.400 24.600
+ 06 1 2 9 25 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8080337.761 5 -6296366.502 5 23124075.170 23124069.002 23124073.326
+ 34.400 31.100
+ -2461878.325 4 -1918348.452 4 23250812.998 23250810.719 23250811.773
+ 28.800 24.200
+ -14922392.599 7 -11627838.386 5 21804360.167 21804357.673 21804359.020
+ 43.300 35.700
+ -18640919.626 7 -14525390.425 7 20715092.019 20715090.323 20715091.168
+ 46.400 43.100
+ -2449134.524 4 -1908410.036 3 24192464.533 24192461.209 24192463.143
+ 26.500 20.500
+ -16697161.645 7 -13010768.944 6 21416642.162 21416639.657 21416641.152
+ 43.400 38.400
+ -19849223.507 7 -15466921.910 7 20761871.047 20761868.982 20761870.463
+ 47.400 45.500
+ -6293120.058 5 -4903726.744 3 23516515.329 23516513.904 23516514.785
+ 31.600 23.800
+ 06 1 2 9 25 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8178055.153 5 -6372509.922 5 23105479.377 23105473.792 23105478.008
+ 34.100 31.300
+ -2367365.828 4 -1844702.403 4 23268798.262 23268795.966 23268797.005
+ 29.700 25.900
+ -14916878.821 7 -11623541.949 5 21805409.926 21805407.039 21805408.604
+ 43.300 35.900
+ -18601949.682 7 -14495024.248 7 20722507.860 20722506.058 20722506.940
+ 46.400 43.100
+ -2341863.944 3 -1824822.600 3 24212876.235 24212873.653 24212875.337
+ 23.400 21.100
+ -16774294.309 7 -13070872.303 6 21401964.676 21401961.669 21401963.436
+ 43.700 38.400
+ -19826871.073 7 -15449504.423 7 20766124.836 20766122.449 20766124.070
+ 47.500 45.400
+ -6314494.646 5 -4920382.246 4 23512448.583 23512446.458 23512447.824
+ 31.100 24.200
+ 06 1 2 9 26 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8275632.608 5 -6448544.297 5 23086910.962 23086905.369 23086909.829
+ 34.600 31.100
+ -2272629.949 4 -1770882.283 4 23286825.345 23286823.587 23286824.486
+ 27.900 24.600
+ -14910748.629 7 -11618765.184 5 21806576.080 21806573.624 21806574.835
+ 43.000 35.900
+ -18562558.000 7 -14464329.447 7 20730003.975 20730001.954 20730002.999
+ 46.400 43.000
+ -2234418.361 4 -1741098.788 3 24233321.791 24233319.997 24233321.563
+ 24.900 21.600
+ -16851004.389 7 -13130646.372 6 21387367.158 21387364.153 21387365.923
+ 43.800 38.700
+ -19804258.296 7 -15431884.080 7 20770427.884 20770425.534 20770427.176
+ 47.500 45.300
+ -6335370.962 5 -4936649.514 4 23508476.097 23508473.838 23508475.288
+ 32.100 24.600
+ 06 1 2 9 26 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8373068.327 5 -6524468.232 4 23068369.427 23068363.831 23068368.260
+ 34.500 29.200
+ -2177672.059 4 -1696889.154 3 23304895.381 23304892.732 23304894.386
+ 29.000 20.500
+ -14904002.328 7 -11613508.331 6 21807859.772 21807857.409 21807858.622
+ 43.100 36.000
+ -18522744.762 7 -14433306.158 7 20737579.911 20737578.128 20737579.134
+ 46.400 42.800
+ -2126800.380 4 -1657240.609 3 24253800.708 24253799.172 24253801.071
+ 24.900 19.300
+ -16927289.957 7 -13190089.651 6 21372850.412 21372847.353 21372849.260
+ 43.800 38.500
+ -19781385.573 7 -15414061.177 7 20774780.314 20774778.075 20774779.662
+ 47.600 45.300
+ -6355747.771 5 -4952527.523 4 23504598.295 23504596.524 23504597.448
+ 32.300 24.600
+ 06 1 2 9 27 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8470360.146 5 -6600280.035 4 23049855.962 23049849.703 23049854.402
+ 34.400 29.200
+ -2082493.383 4 -1622723.975 3 23323008.406 23323004.732 23323006.590
+ 27.900 21.600
+ -14896640.325 7 -11607771.719 6 21809260.705 21809258.399 21809259.442
+ 42.700 36.200
+ -18482509.942 7 -14401954.358 7 20745236.421 20745234.606 20745235.622
+ 46.300 42.900
+ -2019012.506 3 -1573250.066 2 24274310.959 24274310.170 24274312.347
+ 23.800 17.800
+ -17003149.612 7 -13249201.060 6 21358414.980 21358411.825 21358413.671
+ 43.700 38.700
+ -19758253.448 7 -15396036.146 7 20779182.448 20779179.982 20779181.696
+ 47.600 45.300
+ -6375623.711 5 -4968015.254 3 23500816.095 23500814.147 23500815.224
+ 32.000 23.800
+ 06 1 2 9 27 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8567506.197 6 -6675978.266 4 23031369.671 23031363.583 23031368.358
+ 36.000 29.500
+ -1987095.133 4 -1548387.681 3 23341161.393 23341158.445 23341160.260
+ 28.400 21.100
+ -14888663.165 7 -11601555.754 5 21810778.787 21810776.223 21810777.554
+ 42.900 35.700
+ -18441853.662 7 -14370274.152 7 20752973.097 20752971.317 20752972.296
+ 46.400 42.700
+ -1911057.360 4 -1489129.165 3 24294855.245 24294854.134 24294855.349
+ 25.600 19.300
+ -17078581.490 7 -13307979.117 6 21344060.235 21344057.539 21344059.319
+ 43.600 38.800
+ -19734862.427 7 -15377809.371 7 20783633.269 20783631.121 20783632.702
+ 47.600 45.300
+ -6394997.732 5 -4983111.893 4 23497129.383 23497126.945 23497128.544
+ 32.000 24.600
+ 06 1 2 9 28 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8664504.016 6 -6751560.999 5 23012911.296 23012905.688 23012910.003
+ 36.500 31.000
+ -1891478.623 4 -1473881.356 3 23359356.503 23359354.169 23359355.025
+ 26.800 23.000
+ -14880071.053 7 -11594860.611 5 21812413.697 21812411.250 21812412.559
+ 42.800 35.700
+ -18400776.062 7 -14338265.648 7 20760789.979 20760788.143 20760789.094
+ 46.500 42.900
+ -1802937.530 4 -1404879.951 1 24315430.649 24315428.097 24315429.532
+ 24.200 11.000
+ -17153583.555 7 -13366422.279 6 21329787.820 21329785.098 21329786.786
+ 43.700 39.000
+ -19711213.093 7 -15359381.319 7 20788133.914 20788131.491 20788133.004
+ 47.300 45.300
+ -6413868.583 5 -4997816.427 4 23493538.731 23493536.481 23493537.959
+ 33.100 26.500
+ 06 1 2 9 28 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8761351.840 5 -6827026.841 5 22994481.519 22994476.175 22994480.393
+ 35.800 30.600
+ -1795644.566 4 -1399205.523 3 23377593.150 23377591.128 23377591.856
+ 27.400 22.100
+ -14870864.768 7 -11587686.893 5 21814165.712 21814162.976 21814164.567
+ 43.100 35.500
+ -18359277.070 7 -14305928.781 7 20768687.196 20768685.068 20768686.168
+ 46.500 42.700
+ -1694655.469 4 -1320504.273 2 24336035.968 24336033.675 24336035.355
+ 24.900 16.100
+ -17228154.130 7 -13424529.201 6 21315597.876 21315594.859 21315596.515
+ 43.700 39.200
+ -19687305.805 7 -15340752.262 7 20792682.781 20792680.895 20792682.204
+ 47.300 45.300
+ -6432235.056 5 -5012127.953 4 23490043.451 23490041.447 23490042.839
+ 32.600 25.600
+ 06 1 2 9 29 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8858047.833 5 -6902374.368 5 22976080.892 22976075.610 22976079.720
+ 35.500 31.000
+ -1699594.964 4 -1324361.703 3 23395870.317 23395868.591 23395869.294
+ 27.100 23.400
+ -14861044.962 7 -11580035.104 5 21816034.461 21816031.742 21816033.178
+ 42.800 35.600
+ -18317356.882 7 -14273263.720 7 20776664.174 20776662.289 20776663.354
+ 46.400 42.700
+ -1586213.660 4 -1236004.162 3 24356672.476 24356669.818 24356671.800
+ 26.800 19.900
+ -17302291.594 7 -13482298.631 6 21301489.363 21301486.962 21301488.461
+ 43.900 39.200
+ -19663141.164 7 -15321922.674 7 20797281.444 20797279.281 20797280.729
+ 47.400 45.300
+ -6450096.099 5 -5026045.637 4 23486644.674 23486642.676 23486643.955
+ 33.000 25.900
+ 06 1 2 9 29 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -8954589.627 5 -6977601.723 5 22957709.703 22957704.156 22957708.442
+ 35.500 31.800
+ -1603330.615 4 -1249350.551 3 23414189.344 23414187.099 23414188.160
+ 28.800 22.100
+ -14850611.893 7 -11571905.450 5 21818019.735 21818017.197 21818018.608
+ 42.600 35.600
+ -18275015.716 7 -14240270.621 7 20784721.425 20784719.653 20784720.550
+ 46.300 42.800
+ -1477614.877 4 -1151381.734 3 24377338.276 24377335.520 24377337.354
+ 24.600 20.500
+ -17375994.129 7 -13539729.173 6 21287464.770 21287461.785 21287463.506
+ 43.600 39.300
+ -19638719.574 7 -15302892.865 7 20801928.573 20801926.630 20801927.905
+ 47.400 45.300
+ -6467450.309 5 -5039568.388 4 23483342.445 23483340.412 23483341.689
+ 32.600 27.100
+ 06 1 2 9 30 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9050975.385 6 -7052707.496 5 22939368.018 22939362.795 22939366.788
+ 36.600 32.300
+ -1506852.717 4 -1174173.001 3 23432548.453 23432545.986 23432547.031
+ 27.400 22.600
+ -14839566.189 7 -11563298.415 6 21820121.713 21820119.272 21820120.397
+ 42.700 36.000
+ -18232253.714 7 -14206949.592 7 20792858.165 20792857.039 20792857.636
+ 46.300 42.800
+ -1368861.505 3 -1066638.857 3 24398032.466 24398031.040 24398032.363
+ 23.800 21.600
+ -17449260.566 7 -13596819.883 6 21273522.768 21273519.770 21273521.452
+ 44.100 39.500
+ -19614041.652 7 -15283663.316 7 20806624.767 20806622.578 20806624.074
+ 47.600 45.000
+ -6484296.835 5 -5052695.543 4 23480136.550 23480134.969 23480135.704
+ 32.400 27.600
+ 06 1 2 9 30 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9147202.810 6 -7127689.898 5 22921056.829 22921051.356 22921055.440
+ 36.700 31.800
+ -1410162.803 4 -1098830.226 3 23450948.172 23450945.675 23450946.731
+ 27.100 23.000
+ -14827908.376 7 -11554214.412 5 21822339.903 21822337.630 21822338.636
+ 42.500 35.700
+ -18189070.978 7 -14173300.720 7 20801075.755 20801074.412 20801075.049
+ 46.100 42.700
+ -1259955.925 3 -981777.395 3 24418756.074 24418754.553 24418755.312
+ 21.600 19.300
+ -17522088.428 7 -13653568.851 6 21259663.832 21259660.999 21259662.714
+ 44.300 39.600
+ -19589107.651 7 -15264234.223 7 20811369.536 20811367.382 20811368.910
+ 47.600 45.000
+ -6500634.446 5 -5065426.126 4 23477027.803 23477025.534 23477027.096
+ 32.800 26.800
+ 06 1 2 9 31 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9243269.943 6 -7202547.408 5 22902775.344 22902770.100 22902774.306
+ 36.500 31.600
+ -1313261.902 4 -1023323.072 3 23469386.726 23469385.390 23469386.132
+ 27.400 22.600
+ -14815638.896 7 -11544653.781 6 21824674.586 21824672.520 21824673.552
+ 42.700 36.100
+ -18145467.620 7 -14139324.084 7 20809373.602 20809371.900 20809372.638
+ 46.100 42.800
+ -1150900.739 4 -896799.347 3 24439508.856 24439507.194 24439508.381
+ 24.200 19.300
+ -17594476.213 7 -13709974.909 6 21245888.712 21245886.071 21245887.752
+ 44.400 39.600
+ -19563918.247 7 -15244606.124 7 20816162.925 20816160.824 20816162.263
+ 47.600 45.200
+ -6516462.105 5 -5077759.365 4 23474015.229 23474013.810 23474014.406
+ 31.600 26.800
+ 06 1 2 9 31 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9339174.764 5 -7277278.431 5 22884525.423 22884520.326 22884524.438
+ 35.900 32.100
+ -1216151.386 4 -947652.570 3 23487867.488 23487864.589 23487866.043
+ 27.900 21.100
+ -14802758.663 7 -11534617.237 5 21827125.839 21827123.597 21827124.501
+ 42.400 35.700
+ -18101443.827 7 -14105019.838 7 20817751.199 20817749.444 20817750.155
+ 46.200 42.900
+ -1041698.559 3 -811706.704 2 24460288.999 24460287.314 24460288.797
+ 23.800 17.000
+ -17666422.269 7 -13766036.762 6 21232198.136 21232195.135 21232196.935
+ 44.300 39.700
+ -19538473.925 7 -15224779.379 7 20821004.750 20821002.664 20821004.114
+ 47.600 45.200
+ -6531778.769 5 -5089694.416 4 23471100.356 23471098.915 23471099.707
+ 31.600 26.500
+ 06 1 2 9 32 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9434915.364 6 -7351881.486 5 22866306.509 22866301.030 22866305.132
+ 36.000 31.800
+ -1118832.526 4 -871819.694 3 23506386.252 23506384.156 23506385.186
+ 27.100 23.000
+ -14789268.328 7 -11524105.288 5 21829692.896 21829690.617 21829691.621
+ 42.100 35.600
+ -18056999.858 7 -14070388.178 7 20826208.500 20826206.782 20826207.544
+ 46.100 42.800
+ -932351.855 4 -726501.484 2 24481096.507 24481095.189 24481096.855
+ 25.300 16.100
+ -17737925.134 7 -13821753.254 6 21218591.550 21218588.833 21218590.406
+ 44.400 40.300
+ -19512775.087 7 -15204754.313 7 20825895.147 20825892.943 20825894.450
+ 47.600 44.900
+ -6546583.485 5 -5101230.559 4 23468283.006 23468281.313 23468282.204
+ 31.600 25.600
+ 06 1 2 9 32 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9530489.234 6 -7426354.623 5 22848119.950 22848113.713 22848118.463
+ 36.900 30.800
+ -1021306.520 4 -795825.456 4 23524944.088 23524943.070 23524943.280
+ 26.200 24.200
+ -14775168.485 7 -11513118.405 5 21832375.944 21832373.892 21832374.832
+ 42.400 35.900
+ -18012135.872 7 -14035429.227 7 20834745.244 20834744.046 20834744.637
+ 46.000 42.700
+ -822863.063 3 -641185.514 2 24501931.606 24501930.177 24501931.499
+ 23.000 15.100
+ -17808983.152 7 -13877123.122 6 21205069.133 21205066.889 21205068.371
+ 44.700 40.200
+ -19486822.300 7 -15184531.365 7 20830833.917 20830831.488 20830833.188
+ 47.600 44.800
+ -6560875.164 5 -5112366.911 4 23465563.749 23465562.423 23465562.913
+ 31.000 27.400
+ 06 1 2 9 33 0.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9625894.294 6 -7500696.245 5 22829965.273 22829958.877 22829963.403
+ 36.500 30.400
+ -923574.640 4 -719670.775 4 23543542.514 23543540.873 23543541.767
+ 28.100 24.200
+ -14760459.948 7 -11501657.213 5 21835175.085 21835172.521 21835173.905
+ 42.400 35.200
+ -17966852.160 7 -14000143.230 7 20843362.589 20843361.201 20843361.898
+ 45.900 42.300
+ -713234.646 3 -555760.776 2 24522792.831 24522792.072 24522793.173
+ 22.100 17.000
+ -17879594.704 7 -13932145.105 6 21191632.598 21191629.822 21191631.508
+ 44.500 40.300
+ -19460615.997 7 -15164110.871 7 20835820.808 20835818.420 20835820.079
+ 47.600 44.700
+ -6574652.803 5 -5123102.728 4 23462941.647 23462940.874 23462941.043
+ 31.100 27.600
+ 06 1 2 9 33 30.0000000 0 8G23G14G20G 1G30G16G25G 6
+ -9721128.509 6 -7574904.712 5 22811842.272 22811836.436 22811841.078
+ 37.700 31.500
+ -825638.162 4 -643356.705 3 23562179.046 23562177.248 23562178.010
+ 26.200 21.600
+ -14745143.479 7 -11489722.314 5 21838090.044 21838087.004 21838088.763
+ 43.000 35.100
+ -17921148.966 7 -13964530.357 7 20852059.729 20852058.291 20852058.956
+ 45.900 42.300
+ -603469.185 3 -470229.270 2 24543680.640 24543679.160 24543680.308
+ 19.900 15.100
+ -17949758.063 7 -13986817.830 6 21178280.620 21178278.089 21178279.586
+ 44.100 40.300
+ -19434156.580 7 -15143493.148 7 20840855.595 20840853.584 20840855.019
+ 47.600 44.800
+ -6587915.419 5 -5133437.213 4 23460417.833 23460416.449 23460417.177
+ 31.000 27.400
+ 06 1 2 9 34 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -9816189.997 6 -7648978.614 5 22793752.454 22793747.121 22793751.127
+ 36.800 31.500
+ -727498.417 4 -566884.176 3 23580853.948 23580852.515 23580853.201
+ 25.300 20.500
+ -14729219.888 7 -11477314.329 5 21841120.001 21841117.116 21841118.714
+ 42.600 34.500
+ -17875026.497 7 -13928590.778 7 20860836.830 20860835.077 20860835.915
+ 45.900 42.300
+ -18019471.438 7 -14041139.914 6 21165015.027 21165012.058 21165013.769
+ 44.400 40.200
+ -19407444.677 7 -15122678.684 7 20845938.621 20845936.632 20845938.065
+ 47.500 44.700
+ -6600662.183 5 -5143369.738 4 23457992.475 23457991.163 23457991.710
+ 31.600 26.800
+ 06 1 2 9 34 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -9911076.325 6 -7722916.001 5 22775696.396 22775690.778 22775695.033
+ 36.500 32.300
+ -629156.627 4 -490254.255 3 23599568.197 23599566.486 23599567.448
+ 27.400 22.100
+ -14712689.849 7 -11464433.779 5 21844265.222 21844262.757 21844264.188
+ 42.500 34.700
+ -17828484.976 7 -13892324.673 7 20869693.463 20869691.724 20869692.473
+ 46.000 42.500
+ -18088733.516 7 -14095110.349 6 21151834.600 21151831.830 21151833.584
+ 44.700 40.200
+ -19380480.572 7 -15101667.694 7 20851070.042 20851067.726 20851069.302
+ 47.500 44.600
+ -6612892.083 5 -5152899.523 4 23455664.997 23455663.754 23455664.395
+ 31.500 26.500
+ 06 1 2 9 35 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10005785.500 6 -7796715.351 5 22757673.268 22757668.268 22757672.212
+ 36.400 32.400
+ -530614.176 4 -413467.967 3 23618320.832 23618318.722 23618319.423
+ 25.600 23.000
+ -14695553.939 7 -11451081.135 5 21847526.118 21847523.814 21847525.047
+ 42.300 34.900
+ -17781524.719 7 -13855732.279 7 20878629.568 20878627.989 20878628.676
+ 46.000 42.400
+ -18157543.023 7 -14148728.143 6 21138740.408 21138737.844 21138739.407
+ 44.700 40.500
+ -19353264.860 7 -15080460.645 7 20856249.063 20856246.692 20856248.370
+ 47.700 44.600
+ -6624604.196 5 -5162025.838 4 23453436.495 23453434.912 23453435.812
+ 32.400 26.200
+ 06 1 2 9 35 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10100315.323 6 -7870374.941 5 22739684.998 22739679.972 22739683.893
+ 37.900 33.000
+ -431872.343 4 -336526.291 3 23637111.541 23637108.120 23637109.873
+ 28.100 19.300
+ -14677813.370 7 -11437257.317 5 21850902.372 21850899.765 21850901.060
+ 42.300 34.800
+ -17734145.997 7 -13818813.805 7 20887645.021 20887643.855 20887644.431
+ 46.100 42.300
+ -18225897.988 7 -14201991.737 6 21125732.934 21125730.435 21125731.787
+ 44.600 40.800
+ -19325798.035 7 -15059057.926 7 20861475.643 20861473.469 20861475.023
+ 47.600 44.600
+ -6635797.566 5 -5170747.950 4 23451307.023 23451304.940 23451306.052
+ 32.100 27.400
+ 06 1 2 9 36 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10194663.828 6 -7943893.258 5 22721731.852 22721725.978 22721730.306
+ 38.400 33.100
+ -332932.344 4 -259430.228 3 23655938.435 23655936.613 23655937.272
+ 27.100 20.500
+ -14659468.937 7 -11422962.971 5 21854393.126 21854390.663 21854391.985
+ 42.800 34.900
+ -17686349.129 7 -13781569.491 7 20896740.742 20896739.311 20896740.038
+ 46.200 42.100
+ -18293796.868 7 -14254899.936 6 21112812.225 21112809.542 21112811.134
+ 44.500 40.700
+ -19298080.435 7 -15037459.796 7 20866750.108 20866747.939 20866749.432
+ 47.600 44.400
+ -6646471.583 5 -5179065.357 4 23449274.859 23449273.969 23449273.964
+ 31.600 27.600
+ 06 1 2 9 36 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10288828.728 6 -8017268.516 5 22703812.577 22703806.710 22703811.202
+ 38.400 32.000
+ -233795.765 4 -182180.964 3 23674803.119 23674801.637 23674802.303
+ 25.600 22.100
+ -14640521.685 7 -11408198.877 5 21857998.713 21857996.004 21857997.501
+ 42.400 34.600
+ -17638134.455 7 -13743999.606 7 20905915.899 20905914.269 20905915.090
+ 46.300 42.100
+ -18361238.263 7 -14307451.652 6 21099978.705 21099975.811 21099977.518
+ 44.600 40.600
+ -19270112.581 7 -15015666.661 7 20872072.078 20872069.979 20872071.528
+ 47.500 44.500
+ -6656625.235 5 -5186977.275 4 23447342.415 23447341.523 23447341.879
+ 31.300 27.900
+ 06 1 2 9 37 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10382807.804 6 -8090498.954 5 22685928.896 22685923.241 22685927.604
+ 38.200 33.200
+ -134463.709 4 -104779.432 3 23693705.967 23693703.685 23693704.805
+ 28.100 20.500
+ -14620972.256 7 -11392965.562 5 21861718.707 21861716.270 21861717.408
+ 42.200 34.900
+ -17589502.262 7 -13706104.386 7 20915170.469 20915168.640 20915169.515
+ 46.200 42.200
+ -18428220.785 7 -14359645.802 6 21087232.425 21087229.500 21087231.234
+ 44.700 40.900
+ -19241894.925 7 -14993678.875 7 20877442.042 20877439.756 20877441.239
+ 47.700 44.500
+ -6666257.563 5 -5194482.978 4 23445510.276 23445508.470 23445509.435
+ 32.400 27.100
+ 06 1 2 9 37 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10476598.885 6 -8163582.907 5 22668080.586 22668075.508 22668079.583
+ 38.400 33.400
+ -34937.453 4 -27226.532 3 23712645.260 23712642.803 23712643.630
+ 24.900 20.500
+ -14600821.817 7 -11377263.929 5 21865553.186 21865550.665 21865551.991
+ 42.400 34.000
+ -17540452.832 7 -13667884.056 6 20924504.450 20924502.411 20924503.417
+ 46.300 41.800
+ -18494742.894 7 -14411481.196 6 21074573.525 21074570.739 21074572.568
+ 45.000 41.000
+ -19213427.964 7 -14971496.824 7 20882858.792 20882856.859 20882858.290
+ 47.600 44.500
+ -6675368.029 5 -5201582.037 4 23443776.056 23443774.669 23443775.275
+ 31.500 26.800
+ 06 1 2 9 38 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10570199.874 6 -8236518.745 5 22650269.208 22650263.591 22650268.019
+ 38.400 32.600
+ 64781.462 4 50476.484 3 23731621.089 23731618.417 23731619.906
+ 25.300 18.600
+ -14580071.219 7 -11361094.639 5 21869501.895 21869499.431 21869500.558
+ 42.000 34.600
+ -17490986.453 7 -13629338.837 6 20933917.311 20933915.489 20933916.475
+ 46.300 41.600
+ -18560802.738 7 -14462956.386 6 21062002.993 21062000.025 21062001.797
+ 45.100 41.100
+ -19184712.197 7 -14949120.901 7 20888323.386 20888321.171 20888322.706
+ 47.700 44.300
+ -6683955.690 5 -5208273.710 4 23442142.234 23442140.771 23442141.576
+ 32.000 26.800
+ 06 1 2 9 38 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10663608.451 6 -8309304.644 5 22632494.205 22632488.718 22632492.897
+ 38.300 33.500
+ 164691.788 4 128328.671 3 23750633.769 23750630.991 23750631.819
+ 24.200 19.300
+ -14558721.452 7 -11344458.464 5 21873564.633 21873562.179 21873563.514
+ 42.400 34.400
+ -17441103.498 7 -13590469.021 6 20943409.616 20943407.925 20943408.879
+ 46.300 41.500
+ -18626399.254 7 -14514070.534 6 21049519.925 21049517.254 21049519.041
+ 45.000 40.900
+ -19155747.997 7 -14926551.395 7 20893835.162 20893832.804 20893834.515
+ 47.700 44.300
+ -6692019.768 5 -5214557.421 4 23440607.131 23440606.266 23440606.486
+ 31.300 26.800
+ 06 1 2 9 39 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10756822.417 6 -8381938.886 5 22614756.541 22614750.797 22614755.088
+ 38.900 34.000
+ 264792.228 4 206328.972 2 23769682.926 23769678.988 23769680.903
+ 24.200 15.100
+ -14536773.692 7 -11327356.327 5 21877741.390 21877738.651 21877740.175
+ 42.800 34.700
+ -17390804.337 7 -13551274.881 6 20952980.770 20952979.534 20952980.334
+ 46.300 41.700
+ -18691530.758 7 -14564822.344 6 21037126.139 21037123.062 21037125.011
+ 44.900 41.000
+ -19126535.854 7 -14903788.689 7 20899394.087 20899391.753 20899393.389
+ 47.800 44.300
+ -6699559.504 5 -5220432.522 4 23439172.304 23439171.790 23439171.755
+ 31.600 27.600
+ 06 1 2 9 39 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -10849839.837 6 -8454419.999 5 22597055.463 22597049.744 22597054.046
+ 38.000 33.200
+ 365081.373 3 284476.349 3 23788766.849 23788763.982 23788765.011
+ 22.600 21.100
+ -14514228.837 7 -11309788.910 5 21882031.637 21882028.848 21882030.472
+ 42.800 34.600
+ -17340089.289 7 -13511756.651 6 20962631.751 20962630.285 20962631.141
+ 46.100 41.700
+ -18756195.980 7 -14615210.808 6 21024820.590 21024817.749 21024819.573
+ 44.800 41.200
+ -19097076.146 7 -14880833.071 7 20905000.017 20904997.792 20904999.360
+ 47.600 44.300
+ -6706574.526 5 -5225898.757 4 23437838.078 23437836.637 23437837.331
+ 32.600 28.400
+ 06 1 2 9 40 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -10942658.447 6 -8526746.183 5 22579392.963 22579387.003 22579391.719
+ 38.900 33.500
+ 465557.695 3 362769.547 2 23807887.001 23807883.888 23807885.413
+ 23.800 17.800
+ -14491088.027 7 -11291757.120 5 21886435.131 21886432.528 21886433.978
+ 42.900 34.800
+ -17288958.823 7 -13471914.728 6 20972361.587 20972360.069 20972360.857
+ 46.000 41.600
+ -18820393.523 7 -14665234.854 6 21012604.217 21012601.227 21012603.153
+ 44.600 41.000
+ -19067369.304 7 -14857684.880 7 20910653.000 20910650.777 20910652.335
+ 47.700 44.200
+ -6713063.753 5 -5230955.290 4 23436602.999 23436601.571 23436602.440
+ 31.800 27.600
+ 06 1 2 9 40 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11035275.795 6 -8598915.529 5 22561768.394 22561762.844 22561767.105
+ 39.200 34.100
+ 566220.315 4 441207.912 3 23827042.959 23827039.334 23827041.099
+ 25.900 18.600
+ -14467352.280 7 -11273261.737 5 21890952.004 21890949.330 21890950.720
+ 42.600 34.500
+ -17237413.377 7 -13431749.457 6 20982170.510 20982168.969 20982169.705
+ 46.000 41.600
+ -18884121.979 7 -14714893.376 6 21000477.250 21000474.206 21000476.055
+ 44.800 41.400
+ -19037415.912 7 -14834344.576 7 20916352.996 20916350.726 20916352.347
+ 47.600 44.300
+ -6719026.663 5 -5235601.711 4 23435468.261 23435466.836 23435467.362
+ 30.600 27.100
+ 06 1 2 9 41 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11127689.733 6 -8670926.389 5 22544182.784 22544176.795 22544181.455
+ 39.300 33.600
+ 667067.414 3 519790.060 3 23846231.893 23846230.269 23846230.384
+ 23.400 20.500
+ -14443022.766 7 -11254303.682 5 21895581.851 21895579.048 21895580.642
+ 42.600 34.700
+ -17185453.410 7 -13391261.183 6 20992058.613 20992056.590 20992057.552
+ 45.800 41.600
+ -18947379.947 7 -14764185.286 6 20988439.608 20988436.549 20988438.452
+ 44.700 41.400
+ -19007216.314 7 -14810812.418 7 20922099.915 20922097.642 20922099.164
+ 47.500 44.300
+ -6724462.623 5 -5239837.527 4 23434433.662 23434432.393 23434432.704
+ 31.100 26.800
+ 06 1 2 9 41 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11219898.288 6 -8742777.211 5 22526636.101 22526629.994 22526634.622
+ 39.300 33.200
+ 768097.877 4 598515.044 3 23865459.228 23865456.042 23865457.328
+ 26.200 22.600
+ -14418100.842 7 -11234884.010 5 21900323.981 21900321.456 21900322.795
+ 42.000 33.900
+ -17133079.314 7 -13350450.214 6 21002025.125 21002023.086 21002023.914
+ 45.700 41.300
+ -19010165.896 7 -14813109.386 6 20976491.855 20976488.841 20976490.770
+ 45.100 41.400
+ -18976770.945 7 -14787088.756 7 20927893.274 20927891.263 20927892.628
+ 47.500 44.400
+ -6729371.011 5 -5243662.223 4 23433499.371 23433498.227 23433498.640
+ 31.000 26.200
+ 06 1 2 9 42 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11311899.095 6 -8814466.151 5 22509128.467 22509122.975 22509127.169
+ 39.200 34.600
+ 869310.242 3 677381.816 3 23884717.471 23884715.699 23884716.556
+ 22.600 20.500
+ -14392587.496 6 -11215003.485 5 21905178.822 21905176.396 21905177.626
+ 41.800 33.900
+ -17080291.515 7 -13309316.881 6 21012070.037 21012068.197 21012069.025
+ 45.400 41.300
+ -19072478.875 7 -14861664.942 6 20964634.052 20964631.046 20964632.850
+ 44.800 41.500
+ -18946080.361 7 -14763174.013 7 20933733.456 20933731.395 20933732.773
+ 47.500 44.200
+ -6733751.101 5 -5247075.300 4 23432666.667 23432665.273 23432665.762
+ 32.100 27.400
+ 06 1 2 9 42 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11403689.802 6 -8885991.356 5 22491661.324 22491655.935 22491659.975
+ 39.600 35.300
+ 970703.025 4 756389.147 3 23904011.557 23904010.155 23904010.823
+ 24.900 19.900
+ -14366484.032 6 -11194663.136 5 21910146.166 21910143.751 21910145.002
+ 41.800 34.300
+ -17027090.526 7 -13267861.583 6 21022193.650 21022191.986 21022192.778
+ 45.300 40.900
+ -19134317.256 7 -14909850.680 7 20952866.415 20952863.708 20952865.255
+ 44.800 42.000
+ -18915144.877 7 -14739068.440 7 20939620.304 20939618.172 20939619.620
+ 47.600 44.200
+ -6737602.446 5 -5250076.330 4 23431933.573 23431931.487 23431932.699
+ 32.300 25.900
+ 06 1 2 9 43 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11495268.218 6 -8957351.152 5 22474234.494 22474228.915 22474233.503
+ 39.900 34.300
+ 1072274.883 3 835536.023 2 23923340.707 23923338.922 23923339.394
+ 23.400 17.000
+ -14339791.689 6 -11173863.910 5 21915225.582 21915223.000 21915224.292
+ 41.100 33.800
+ -16973476.807 7 -13226084.668 6 21032396.015 21032394.389 21032395.174
+ 45.400 41.100
+ -19195679.673 7 -14957665.534 7 20941189.608 20941186.819 20941188.457
+ 45.100 42.100
+ -18883964.952 7 -14714772.395 7 20945553.438 20945551.572 20945552.890
+ 47.600 44.000
+ -6740924.524 5 -5252664.961 4 23431301.392 23431299.597 23431300.540
+ 32.300 25.300
+ 06 1 2 9 43 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11586632.064 6 -9028543.769 5 22456848.281 22456843.107 22456847.149
+ 39.800 34.300
+ 1174024.510 4 914821.415 3 23942703.288 23942701.179 23942701.885
+ 25.300 19.900
+ -14312511.398 6 -11152606.546 5 21920416.513 21920414.354 21920415.451
+ 40.900 34.100
+ -16919450.632 7 -13183986.364 6 21042676.395 21042675.276 21042675.833
+ 45.300 41.100
+ -19256564.674 7 -15005108.379 7 20929603.568 20929600.738 20929602.459
+ 45.100 42.400
+ -18852541.066 7 -14690286.248 7 20951533.530 20951531.287 20951532.831
+ 47.800 44.100
+ -6743716.615 5 -5254840.606 4 23430770.216 23430768.648 23430769.329
+ 33.000 27.400
+ 06 1 2 9 44 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11677779.370 6 -9099567.624 5 22439503.735 22439498.060 22439502.465
+ 39.700 33.500
+ 1275950.484 3 994244.243 2 23962098.799 23962096.557 23962097.535
+ 22.100 17.000
+ -14284644.710 6 -11130892.257 5 21925719.457 21925717.187 21925718.229
+ 40.700 33.600
+ -16865012.749 7 -13141567.240 6 21053035.729 21053034.435 21053035.122
+ 45.400 41.000
+ -19316971.235 7 -15052178.416 7 20918108.707 20918105.760 20918107.505
+ 44.900 42.300
+ -18820873.623 7 -14665610.314 7 20957559.659 20957557.409 20957558.933
+ 47.600 44.000
+ -6745978.305 5 -5256602.947 4 23430340.197 23430337.918 23430339.235
+ 32.000 26.200
+ 06 1 2 9 44 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11768707.514 6 -9170420.740 5 22422200.676 22422194.906 22422199.358
+ 39.700 33.100
+ 1378051.370 3 1073803.359 2 23981529.048 23981526.562 23981527.085
+ 22.100 17.800
+ -14256193.122 6 -11108722.199 5 21931133.862 21931131.282 21931132.690
+ 40.900 33.200
+ -16810163.571 7 -13098827.635 6 21063473.058 21063471.869 21063472.542
+ 45.300 40.700
+ -19376898.051 7 -15098874.626 7 20906704.905 20906702.072 20906703.763
+ 45.100 42.500
+ -18788963.043 7 -14640744.928 7 20963631.914 20963629.744 20963631.262
+ 47.600 43.800
+ -6747709.074 5 -5257951.586 4 23430009.758 23430008.170 23430009.278
+ 31.800 25.300
+ 06 1 2 9 45 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -11859414.588 6 -9241101.578 5 22404939.600 22404934.098 22404938.254
+ 39.500 33.900
+ 1480325.820 2 1153497.692 3 24000991.744 24000988.592 24000989.368
+ 17.800 18.600
+ -14227157.737 6 -11086097.230 5 21936659.005 21936656.677 21936657.900
+ 41.000 33.800
+ -16754903.657 7 -13055767.973 6 21073988.850 21073987.589 21073988.218
+ 45.400 40.800
+ -19436343.837 7 -15145196.013 7 20895392.703 20895389.866 20895391.516
+ 45.100 42.600
+ -18756809.767 7 -14615690.422 7 20969750.351 20969748.376 20969749.712
+ 47.700 44.000
+ -6748908.534 5 -5258886.216 4 23429781.847 23429780.371 23429781.289
+ 32.400 27.100
+ 06 1 2 9 45 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -11949897.857 6 -9311608.012 5 22387721.616 22387716.118 22387720.224
+ 40.500 35.500
+ 1582772.338 4 1233326.130 2 24020486.306 24020482.936 24020484.540
+ 24.600 16.100
+ -14197539.830 6 -11063018.356 5 21942295.305 21942292.902 21942294.042
+ 40.800 34.000
+ -16699233.476 7 -13012388.630 6 21084583.022 21084581.213 21084582.119
+ 45.500 40.700
+ -19495307.508 7 -15191141.723 7 20884172.210 20884169.406 20884171.088
+ 44.800 42.500
+ -18724414.205 7 -14590447.127 7 20975915.035 20975913.078 20975914.462
+ 47.700 43.800
+ -6749576.122 5 -5259406.409 4 23429655.329 23429653.355 23429654.490
+ 32.000 26.200
+ 06 1 2 9 46 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12040155.184 6 -9381938.387 5 22370545.941 22370540.537 22370544.707
+ 40.200 35.100
+ 1685389.573 3 1313287.577 2 24040013.298 24040009.626 24040011.862
+ 22.600 13.900
+ -14167340.803 6 -11039486.654 5 21948041.974 21948039.423 21948040.768
+ 41.000 33.500
+ -16643153.470 7 -12968689.936 6 21095254.911 21095252.926 21095253.851
+ 45.400 40.700
+ -19553787.589 7 -15236710.611 7 20873043.891 20873040.971 20873042.736
+ 45.000 42.500
+ -18691776.736 7 -14565015.332 7 20982126.048 20982123.696 20982125.313
+ 47.700 43.800
+ -6749711.340 5 -5259511.770 4 23429629.267 23429628.225 23429628.402
+ 32.100 27.400
+ 06 1 2 9 46 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12130184.502 6 -9452091.100 5 22353413.554 22353408.208 22353412.472
+ 40.300 33.600
+ 1788176.297 4 1393381.131 3 24059572.922 24059570.529 24059571.482
+ 24.600 18.600
+ -14136561.697 6 -11015502.939 5 21953899.182 21953896.551 21953897.846
+ 40.700 33.900
+ -16586664.232 7 -12924672.363 6 21106004.324 21106002.441 21106003.302
+ 45.500 40.700
+ -19611783.018 7 -15281901.842 7 20862007.553 20862004.819 20862006.436
+ 44.800 42.700
+ -18658897.835 7 -14539395.413 7 20988382.501 20988380.347 20988381.781
+ 47.600 43.700
+ -6749313.940 5 -5259202.096 4 23429704.989 23429702.950 23429704.175
+ 32.400 25.900
+ 06 1 2 9 47 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12219983.519 6 -9522064.363 5 22336325.989 22336319.968 22336324.745
+ 41.000 33.800
+ 1891130.919 3 1473605.469 2 24079164.400 24079161.463 24079163.120
+ 23.800 13.900
+ -14105204.481 6 -10991068.755 5 21959866.139 21959863.633 21959864.902
+ 40.600 33.500
+ -16529766.308 7 -12880336.333 6 21116831.552 21116829.775 21116830.665
+ 45.500 40.600
+ -19669292.530 7 -15326714.442 7 20851063.669 20851061.157 20851062.699
+ 44.800 42.800
+ -18625777.951 7 -14513587.710 7 20994685.118 20994682.877 20994684.396
+ 47.700 43.800
+ -6748383.572 5 -5258477.144 4 23429881.954 23429879.971 23429881.217
+ 32.300 26.200
+ 06 1 2 9 47 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12309549.918 6 -9591856.373 5 22319281.671 22319276.265 22319280.533
+ 40.700 34.600
+ 1994252.079 3 1553959.640 2 24098787.656 24098784.702 24098786.647
+ 23.800 16.100
+ -14073270.424 6 -10966185.094 5 21965942.651 21965940.509 21965941.469
+ 39.900 33.400
+ -16472460.219 7 -12835682.244 6 21127736.505 21127734.758 21127735.706
+ 45.500 40.400
+ -19726315.057 7 -15371147.577 7 20840212.822 20840210.090 20840211.760
+ 45.000 43.000
+ -18592417.401 7 -14487592.478 7 21001033.329 21001031.165 21001032.646
+ 47.600 43.700
+ -6746919.755 5 -5257336.489 4 23430160.693 23430158.812 23430159.869
+ 32.400 26.800
+ 06 1 2 9 48 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12398881.347 6 -9661465.283 5 22302282.832 22302277.254 22302281.482
+ 40.800 35.800
+ 2097538.285 3 1634442.343 2 24118442.389 24118440.134 24118440.649
+ 20.500 16.100
+ -14040760.920 6 -10940853.029 5 21972129.310 21972126.872 21972128.105
+ 40.700 33.600
+ -16414746.618 7 -12790710.620 6 21138718.702 21138717.330 21138718.171
+ 45.500 40.600
+ -19782849.456 7 -15415200.339 7 20829454.910 20829451.922 20829453.778
+ 44.900 42.900
+ -18558816.677 7 -14461410.100 7 21007427.329 21007425.250 21007426.608
+ 47.600 43.700
+ -6744922.108 5 -5255779.891 4 23430540.851 23430539.191 23430540.208
+ 33.100 27.400
+ 06 1 2 9 48 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12487975.447 6 -9730889.249 6 22285329.021 22285323.458 22285327.401
+ 40.500 36.400
+ 2200987.921 3 1715052.443 1 24138129.171 24138124.994 24138127.528
+ 23.400 11.000
+ -14007677.702 6 -10915073.917 5 21978424.982 21978422.294 21978423.682
+ 40.900 33.600
+ -16356626.076 7 -12745421.902 6 21149778.223 21149777.280 21149777.977
+ 45.400 40.300
+ -19838894.347 7 -15458871.671 7 20818789.962 20818786.943 20818788.859
+ 44.900 43.100
+ -18524976.090 7 -14435040.814 7 21013866.958 21013864.891 21013866.269
+ 47.500 43.700
+ -6742390.451 5 -5253807.145 4 23431022.764 23431021.089 23431021.845
+ 32.600 27.400
+ 06 1 2 9 49 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12576829.999 6 -9800126.552 5 22268420.338 22268414.638 22268418.623
+ 40.500 35.500
+ 2304599.591 4 1795788.809 2 24157844.505 24157842.458 24157843.570
+ 24.200 17.800
+ -13974022.099 6 -10888848.785 5 21984829.338 21984826.617 21984828.134
+ 40.600 33.100
+ -16298099.245 7 -12699816.605 6 21160916.062 21160914.631 21160915.497
+ 45.300 40.200
+ -19894448.555 7 -15502160.655 7 20808218.425 20808215.321 20808217.189
+ 44.800 43.100
+ -18490896.187 7 -14408485.050 7 21020352.193 21020350.047 21020351.515
+ 47.400 43.700
+ -6739324.436 5 -5251418.046 4 23431605.845 23431604.491 23431605.055
+ 32.600 27.900
+ 06 1 2 9 49 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12665442.531 6 -9869175.288 5 22251558.172 22251552.104 22251556.714
+ 41.100 34.700
+ 2408371.866 3 1876650.279 3 24177591.389 24177590.006 24177590.657
+ 21.600 19.900
+ -13939795.738 6 -10862178.902 5 21991342.366 21991339.657 21991341.276
+ 40.900 33.000
+ -16239166.744 7 -12653895.198 6 21172130.549 21172129.156 21172129.904
+ 45.300 40.000
+ -19949511.369 7 -15545066.735 7 20797739.947 20797737.290 20797738.938
+ 44.800 43.300
+ -18456577.250 7 -14381743.024 7 21026882.750 21026880.824 21026882.074
+ 47.400 43.800
+ -6735723.782 5 -5248612.362 4 23432291.091 23432289.624 23432290.609
+ 33.100 26.500
+ 06 1 2 9 50 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12753810.884 6 -9938033.752 5 22234741.561 22234736.001 22234740.429
+ 40.900 34.300
+ 2512303.220 3 1957635.717 2 24197369.117 24197367.477 24197368.525
+ 22.100 13.900
+ -13905000.010 6 -10835065.360 5 21997963.745 21997961.298 21997962.546
+ 40.400 33.400
+ -16179829.320 7 -12607658.256 6 21183422.483 21183420.691 21183421.591
+ 45.200 40.100
+ -20004081.440 7 -15587588.858 7 20787355.689 20787352.972 20787354.532
+ 44.700 43.500
+ -18422019.724 7 -14354815.086 7 21033458.872 21033456.813 21033458.244
+ 47.400 43.800
+ -6731588.128 5 -5245389.770 4 23433078.375 23433076.448 23433077.435
+ 32.800 26.500
+ 06 1 2 9 50 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -12841933.007 6 -10006700.349 5 22217972.365 22217967.123 22217971.348
+ 41.000 35.300
+ 2616392.493 3 2038744.221 2 24217176.635 24217174.957 24217175.561
+ 21.100 16.100
+ -13869636.742 6 -10807509.580 5 22004693.087 22004690.838 22004691.987
+ 40.600 33.400
+ -16120087.487 7 -12561106.184 6 21194790.909 21194789.215 21194789.932
+ 45.000 40.100
+ -20058157.953 7 -15629726.383 7 20777065.472 20777062.450 20777064.243
+ 45.000 43.700
+ -18387224.088 7 -14327701.603 7 21040080.229 21040078.111 21040079.491
+ 47.400 43.400
+ -6726917.386 5 -5241750.206 4 23433967.138 23433964.968 23433966.367
+ 33.000 27.100
+ 06 1 2 9 51 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -12929805.878 6 -10075172.717 6 22201250.905 22201245.750 22201249.759
+ 41.100 36.200
+ 2720638.179 3 2119974.611 3 24237013.692 24237012.927 24237012.728
+ 20.500 19.300
+ -13833707.165 6 -10779512.516 5 22011530.666 22011527.914 22011529.366
+ 40.600 33.000
+ -16059941.908 7 -12514239.522 6 21206236.407 21206234.511 21206235.313
+ 44.800 39.700
+ -20111739.638 7 -15671478.327 7 20766869.221 20766866.204 20766867.991
+ 44.900 43.500
+ -18352190.608 7 -14300402.788 7 21046746.957 21046744.893 21046746.127
+ 47.300 43.500
+ -6721711.202 5 -5237693.439 4 23434957.475 23434956.105 23434956.673
+ 32.100 26.800
+ 06 1 2 9 51 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13017427.630 6 -10143449.405 6 22184577.460 22184571.937 22184575.974
+ 41.100 36.300
+ 2825038.647 2 2201325.554 2 24256880.045 24256879.016 24256878.053
+ 16.100 17.000
+ -13797213.401 6 -10751075.821 5 22018475.034 22018472.424 22018473.798
+ 40.500 32.700
+ -15999393.314 7 -12467058.809 6 21217758.376 21217756.587 21217757.334
+ 44.800 39.700
+ -20164825.366 7 -15712843.814 7 20756767.403 20756764.296 20756766.166
+ 44.800 43.900
+ -18316919.791 7 -14272919.035 7 21053458.791 21053456.656 21053458.075
+ 47.500 43.500
+ -6715969.608 5 -5233219.462 4 23436050.020 23436048.590 23436049.222
+ 33.000 27.600
+ 06 1 2 9 52 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13104795.793 6 -10211528.489 5 22167951.400 22167946.024 22167950.374
+ 41.500 35.700
+ 2929592.355 3 2282795.960 2 24276776.825 24276774.967 24276775.783
+ 22.600 12.600
+ -13760156.965 6 -10722200.691 5 22025526.474 22025524.016 22025525.326
+ 39.900 33.100
+ -15938442.344 7 -12419564.561 6 21229356.934 21229355.280 21229355.916
+ 44.600 39.900
+ -20217414.136 7 -15753822.067 7 20746759.748 20746756.999 20746758.718
+ 44.800 44.000
+ -18281411.959 7 -14245250.592 7 21060215.670 21060213.555 21060214.988
+ 47.500 43.200
+ -6709692.253 5 -5228328.015 4 23437244.987 23437242.904 23437244.312
+ 33.100 26.800
+ 06 1 2 9 52 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13191908.259 6 -10279408.343 5 22151374.756 22151369.086 22151373.389
+ 41.400 35.700
+ 3034298.038 2 2364384.809 2 24296699.030 24296700.269 24296699.824
+ 17.000 16.100
+ -13722539.240 6 -10692888.194 5 22032685.015 22032682.557 22032683.663
+ 40.100 32.800
+ -15877089.627 7 -12371757.265 6 21241031.973 21241030.273 21241030.960
+ 44.500 39.900
+ -20269505.337 7 -15794412.607 7 20736847.221 20736844.241 20736846.124
+ 44.900 43.800
+ -18245667.524 7 -14217397.781 7 21067017.725 21067015.460 21067017.052
+ 47.700 43.200
+ -6702879.044 5 -5223019.016 4 23438541.479 23438539.518 23438540.771
+ 33.000 27.600
+ 06 1 2 9 53 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13278762.550 6 -10347087.008 5 22134846.923 22134841.055 22134845.612
+ 41.800 35.200
+ 3139154.004 4 2446090.696 2 24316654.652 24316653.512 24316653.879
+ 24.200 16.100
+ -13684362.021 6 -10663139.720 5 22039949.824 22039947.574 22039948.652
+ 40.200 32.700
+ -15815335.943 7 -12323637.532 6 21252783.231 21252781.692 21252782.269
+ 44.600 40.200
+ -20321097.617 7 -15834614.371 7 20727029.528 20727026.590 20727028.419
+ 45.100 44.100
+ -18209686.912 7 -14189360.938 7 21073864.567 21073862.300 21073863.946
+ 47.800 43.100
+ -6695529.903 5 -5217292.413 4 23439939.763 23439938.128 23439938.873
+ 32.700 27.400
+ 06 1 2 9 53 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13365356.214 7 -10414562.604 6 22118368.719 22118362.975 22118367.523
+ 42.200 36.100
+ 3244158.932 3 2527912.770 1 24336637.195 24336633.946 24336635.970
+ 20.500 9.000
+ -13645627.060 6 -10632956.650 5 22047321.023 22047318.774 22047319.892
+ 40.600 33.100
+ -15753182.012 7 -12275205.915 6 21264610.683 21264609.248 21264609.817
+ 44.600 39.800
+ -20372189.812 7 -15874426.458 7 20717307.013 20717304.081 20717305.900
+ 44.900 44.100
+ -18173470.431 7 -14161140.296 7 21080756.313 21080754.154 21080755.670
+ 47.900 43.100
+ -6687644.743 5 -5211148.130 4 23441440.364 23441438.566 23441439.552
+ 33.000 26.500
+ 06 1 2 9 54 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13451687.009 7 -10481833.359 6 22101940.505 22101935.001 22101939.211
+ 42.000 36.600
+ 3349311.420 3 2609849.736 3 24356646.872 24356644.756 24356645.557
+ 20.500 20.500
+ -13606336.147 6 -10602340.368 5 22054797.986 22054795.685 22054796.719
+ 40.600 33.000
+ -15690628.606 7 -12226463.013 6 21276514.143 21276512.732 21276513.342
+ 44.700 39.800
+ -20422781.364 7 -15913848.436 7 20707679.742 20707676.799 20707678.620
+ 44.800 44.300
+ -18137018.562 7 -14132736.229 7 21087692.881 21087690.702 21087692.185
+ 47.900 42.900
+ -6679223.392 5 -5204586.045 4 23443042.827 23443040.750 23443042.008
+ 32.300 26.500
+ 06 1 2 9 54 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13537752.574 7 -10548897.426 6 22085562.634 22085557.082 22085561.434
+ 42.000 36.200
+ 3454609.708 3 2691900.289 3 24376684.079 24376682.628 24376683.005
+ 21.100 21.600
+ -13566491.199 6 -10571292.367 5 22062379.942 22062377.973 22062378.776
+ 39.900 33.200
+ -15627676.469 7 -12177409.409 6 21288493.753 21288492.088 21288492.882
+ 44.800 39.500
+ -20472871.377 7 -15952879.605 7 20698147.816 20698144.964 20698146.701
+ 44.500 44.300
+ -18100331.608 7 -14104148.985 7 21094674.190 21094671.864 21094673.545
+ 47.800 42.800
+ -6670265.787 5 -5197606.085 4 23444747.169 23444745.619 23444746.266
+ 31.800 26.800
+ 06 1 2 9 55 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13623550.433 7 -10615752.902 5 22069236.022 22069230.092 22069234.649
+ 42.300 35.700
+ 3560052.403 2 2774063.390 2 24396749.059 24396747.503 24396747.957
+ 17.000 12.600
+ -13526093.709 6 -10539813.817 5 22070067.534 22070065.382 22070066.213
+ 40.300 33.200
+ -15564326.343 7 -12128045.680 6 21300548.886 21300547.228 21300548.020
+ 44.600 39.500
+ -20522458.781 7 -15991519.128 7 20688711.743 20688708.785 20688710.536
+ 44.500 44.400
+ -18063409.998 7 -14075378.895 7 21101699.998 21101697.903 21101699.349
+ 47.800 43.000
+ -6660771.968 5 -5190208.305 4 23446553.512 23446552.027 23446552.719
+ 31.800 26.200
+ 06 1 2 9 55 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13709078.227 7 -10682397.950 6 22052961.068 22052954.945 22052959.658
+ 43.200 36.000
+ 3665638.244 3 2856338.046 2 24416842.886 24416839.783 24416840.869
+ 22.100 17.800
+ -13485145.545 6 -10507906.164 5 22077859.674 22077857.488 22077858.629
+ 40.600 33.400
+ -15500578.993 7 -12078372.436 6 21312679.256 21312677.974 21312678.648
+ 44.700 39.400
+ -20571542.624 7 -16029766.265 7 20679371.083 20679368.412 20679370.117
+ 44.600 44.300
+ -18026254.026 7 -14046426.190 7 21108770.505 21108768.492 21108769.884
+ 47.700 43.000
+ -6650741.923 5 -5182392.682 4 23448462.626 23448460.377 23448461.611
+ 32.100 25.900
+ 06 1 2 9 56 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13794333.829 7 -10748830.891 6 22036737.082 22036731.342 22036735.725
+ 42.700 36.400
+ 3771365.318 2 2938722.752 2 24436962.237 24436959.273 24436960.050
+ 16.100 17.800
+ -13443648.581 6 -10475570.885 5 22085756.645 22085753.909 22085755.211
+ 39.900 33.000
+ -15436435.153 7 -12028390.238 6 21324885.684 21324884.083 21324884.940
+ 44.600 39.100
+ -20620122.187 7 -16067620.460 7 20670126.992 20670124.060 20670125.910
+ 44.700 44.400
+ -17988864.209 7 -14017291.265 7 21115885.814 21115883.384 21115885.040
+ 47.600 42.700
+ -6640175.681 5 -5174159.237 4 23450472.885 23450470.394 23450472.429
+ 31.800 24.200
+ 06 1 2 9 56 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -13879314.578 7 -10815049.657 6 22020565.550 22020560.025 22020564.237
+ 42.100 36.500
+ 3877232.463 3 3021216.573 24457107.600 24457105.373 24457105.530
+ 19.900 3.000
+ -13401604.776 6 -10442809.488 5 22093756.716 22093754.455 22093755.663
+ 40.000 32.400
+ -15371895.744 7 -11978099.794 6 21337167.054 21337165.464 21337166.324
+ 44.600 39.100
+ -20668196.570 7 -16105081.011 7 20660978.959 20660975.821 20660977.793
+ 44.800 44.400
+ -17951240.880 7 -13987974.383 7 21123045.378 21123042.911 21123044.620
+ 47.800 42.600
+ -6629073.210 5 -5165507.950 4 23452586.184 23452583.839 23452585.262
+ 32.000 24.900
+ 06 1 2 9 57 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -13964018.111 7 -10881052.405 6 22004447.112 22004441.630 22004445.776
+ 42.500 37.400
+ 3983237.984 3 3103818.352 9 24477280.835 24477278.431 24477278.429
+ 19.900 -3.000
+ -13359015.826 6 -10409623.303 5 22101861.276 22101858.961 22101860.018
+ 39.700 32.600
+ -15306961.465 7 -11927501.658 6 21349523.347 21349522.095 21349522.858
+ 44.700 39.100
+ -20715764.670 7 -16142147.046 7 20651926.950 20651923.886 20651925.804
+ 44.600 44.600
+ -17913384.443 7 -13958475.864 7 21130249.007 21130246.733 21130248.379
+ 47.800 42.600
+ -6617434.557 5 -5156438.870 4 23454801.039 23454798.546 23454800.190
+ 32.300 25.300
+ 06 1 2 9 57 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14048442.168 7 -10946837.372 6 21988381.928 21988376.201 21988380.566
+ 42.800 37.100
+ 4089380.231 3 3186526.540 1 24497478.598 24497475.559 24497476.849
+ 19.300 9.000
+ -13315883.717 6 -10376013.886 5 22110068.792 22110067.024 22110067.558
+ 39.300 33.200
+ -15241633.198 7 -11876596.528 6 21361955.237 21361953.612 21361954.472
+ 44.400 39.100
+ -20762825.883 7 -16178818.113 7 20642971.447 20642968.383 20642970.368
+ 44.700 44.800
+ -17875295.127 7 -13928795.881 7 21137497.183 21137494.844 21137496.543
+ 47.900 42.600
+ -6605260.036 5 -5146952.227 4 23457117.108 23457115.234 23457116.631
+ 31.000 24.900
+ 06 1 2 9 58 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14132584.426 7 -11012402.772 6 21972370.216 21972364.293 21972368.898
+ 43.300 36.600
+ 4195657.952 2 3269340.321 2 24517702.646 24517699.591 24517700.490
+ 17.800 12.600
+ -13272210.216 6 -10341982.606 5 22118379.651 22118377.759 22118378.499
+ 39.200 32.700
+ -15175911.740 7 -11825385.029 6 21374461.804 21374459.999 21374460.803
+ 44.300 38.900
+ -20809379.163 7 -16215093.387 7 20634112.622 20634109.630 20634111.516
+ 44.700 44.800
+ -17836973.476 7 -13898934.859 7 21144789.733 21144787.388 21144788.963
+ 47.700 42.700
+ -6592549.425 5 -5137047.854 4 23459536.069 23459534.359 23459535.225
+ 32.100 25.300
+ 06 1 2 9 58 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14216442.387 7 -11077746.638 6 21956412.344 21956406.697 21956411.145
+ 43.000 37.000
+ 4302069.389 3 3352258.291 24537952.239 24537948.502 24537950.168
+ 21.100 3.000
+ -13227997.451 6 -10307531.119 5 22126793.088 22126790.973 22126791.931
+ 39.500 32.300
+ -15109797.908 7 -11773867.786 6 21387042.724 21387041.239 21387042.002
+ 44.200 38.900
+ -20855424.177 7 -16250972.599 7 20625350.607 20625347.611 20625349.430
+ 44.800 45.100
+ -17798419.820 7 -13868893.054 7 21152125.879 21152123.950 21152125.262
+ 47.700 42.700
+ -6579302.939 5 -5126725.908 4 23462056.670 23462054.913 23462055.691
+ 30.200 25.900
+ 06 1 2 9 59 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14300013.792 7 -11142867.206 6 21940509.055 21940503.419 21940507.915
+ 43.100 36.700
+ 4408613.252 2 3435279.476 1 24558227.265 24558223.469 24558224.767
+ 15.100 11.000
+ -13183247.296 6 -10272660.877 5 22135309.265 22135306.609 22135307.909
+ 39.700 31.500
+ -15043292.596 7 -11722045.494 6 21399698.436 21399696.776 21399697.472
+ 43.800 38.700
+ -20900959.932 7 -16286454.994 7 20616685.254 20616682.397 20616684.134
+ 44.100 45.100
+ -17759634.461 7 -13838670.698 7 21159506.663 21159504.554 21159506.001
+ 47.500 42.800
+ -6565520.828 5 -5115986.607 4 23464679.705 23464677.423 23464678.934
+ 32.000 25.900
+ 06 1 2 9 59 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14383296.086 7 -11207762.498 6 21924661.362 21924655.334 21924659.994
+ 43.800 36.800
+ 4515288.051 2 3518402.645 2 24578525.951 24578522.991 24578523.961
+ 15.100 17.800
+ -13137961.785 6 -10237373.490 5 22143926.537 22143924.155 22143925.288
+ 39.500 32.100
+ -14976396.679 7 -11669918.815 6 21412428.181 21412426.643 21412427.319
+ 43.700 38.600
+ -20945985.498 7 -16321539.839 7 20608117.196 20608114.350 20608116.036
+ 44.400 45.300
+ -17720617.735 7 -13808268.054 7 21166931.202 21166929.178 21166930.540
+ 47.600 42.600
+ -6551203.166 5 -5104829.988 4 23467404.156 23467402.684 23467403.221
+ 31.500 27.600
+ 06 1 2 10 0 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14466287.098 7 -11272430.825 6 21908868.531 21908862.806 21908867.418
+ 43.800 36.700
+ 4622091.890 3 3601626.361 3 24598849.987 24598847.133 24598848.336
+ 18.600 19.900
+ -13092142.692 6 -10201670.317 5 22152645.560 22152643.161 22152644.214
+ 39.200 31.300
+ -14909111.007 7 -11617488.408 6 21425232.456 21425230.549 21425231.462
+ 43.700 38.400
+ -20990500.322 7 -16356226.705 7 20599646.406 20599643.409 20599645.182
+ 44.100 45.300
+ -17681370.049 7 -13777685.438 7 21174399.901 21174397.695 21174399.160
+ 47.600 42.700
+ -6536350.160 5 -5093256.221 4 23470230.968 23470228.443 23470229.934
+ 31.500 25.600
+ 06 1 2 10 0 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14548984.296 7 -11336870.194 6 21893131.539 21893125.851 21893130.402
+ 43.500 36.800
+ 4729023.590 2 3684949.703 2 24619198.576 24619195.480 24619197.042
+ 17.000 15.100
+ -13045792.228 6 -10165553.086 5 22161465.546 22161463.402 22161464.230
+ 38.800 31.300
+ -14841436.590 7 -11564755.097 6 21438110.357 21438108.551 21438109.443
+ 43.900 38.100
+ -21034503.621 7 -16390514.982 7 20591272.555 20591269.759 20591271.576
+ 44.300 45.300
+ -17641891.740 7 -13746923.111 7 21181912.230 21181910.225 21181911.667
+ 47.700 42.500
+ -6520962.069 5 -5081265.489 4 23473158.344 23473156.794 23473157.812
+ 31.000 25.600
+ 06 1 2 10 1 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14631385.172 7 -11401078.666 6 21877451.144 21877445.693 21877449.859
+ 43.200 37.400
+ 4836081.493 2 3768371.398 2 24639570.984 24639568.470 24639568.853
+ 17.000 16.100
+ -12998912.263 6 -10129023.255 5 22170386.283 22170384.315 22170385.108
+ 38.400 31.300
+ -14773374.356 7 -11511719.582 6 21451062.096 21451060.425 21451061.303
+ 44.000 38.200
+ -21077994.678 7 -16424404.106 7 20582996.624 20582993.667 20582995.582
+ 44.300 45.500
+ -17602183.124 7 -13715981.322 7 21189468.844 21189466.475 21189468.072
+ 47.900 42.500
+ -6505038.969 5 -5068857.880 4 23476189.049 23476187.548 23476188.319
+ 32.400 26.500
+ 06 1 2 10 1 30.0000000 0 7G23G14G20G 1G16G25G 6
+ -14713487.445 7 -11465054.457 6 21861827.885 21861822.235 21861826.531
+ 43.600 37.600
+ 4943263.857 3 3851890.085 2 24659967.775 24659964.453 24659965.492
+ 20.500 15.100
+ -12951505.142 6 -10092082.663 5 22179407.701 22179405.756 22179406.440
+ 38.100 32.300
+ -14704925.117 7 -11458382.516 6 21464087.129 21464085.951 21464086.592
+ 43.600 38.300
+ -21120972.801 7 -16457893.539 7 20574818.142 20574815.129 20574817.084
+ 44.200 45.400
+ -17562244.671 7 -13684860.438 7 21197068.743 21197066.452 21197068.102
+ 47.900 42.400
+ -6488581.235 5 -5056033.672 4 23479320.763 23479318.981 23479320.113
+ 31.800 26.200
+ 06 1 2 10 2 0.0000000 0 7G23G14G20G 1G16G25G 6
+ -14795288.640 7 -11528795.642 6 21846261.421 21846255.843 21846260.100
+ 43.900 37.600
+ 5050569.175 3 3935504.608 2 24680387.548 24680384.275 24680385.118
+ 22.100 16.100
+ -12903572.694 6 -10054732.722 5 22188528.757 22188527.100 22188527.668
+ 38.300 32.100
+ -14636089.802 7 -11404744.617 6 21477186.283 21477184.865 21477185.644
+ 43.700 38.400
+ -21163437.523 7 -16490982.922 7 20566737.487 20566734.342 20566736.402
+ 44.400 45.500
+ -17522076.661 7 -13653560.682 7 21204712.412 21204710.251 21204711.853
+ 47.800 42.600
+ -6471589.222 5 -5042793.149 4 23482553.769 23482552.536 23482553.107
+ 31.300 26.200
+ 06 1 2 10 2 30.0000000 0 6G23G20G 1G16G25G 6
+ -14876786.369 7 -11592300.365 6 21830752.951 21830747.524 21830751.832
+ 44.100 37.800
+ -12855116.989 6 -10016975.054 5 22197750.045 22197747.957 22197748.877
+ 38.900 32.300
+ -14566869.318 7 -11350806.596 6 21490358.773 21490357.147 21490357.961
+ 43.600 38.400
+ -21205387.925 7 -16523671.533 7 20558754.659 20558751.534 20558753.505
+ 44.300 45.600
+ -17481679.482 7 -13622082.360 7 21212399.707 21212397.537 21212399.025
+ 47.600 42.400
+ -6454063.134 5 -5029136.460 4 23485889.117 23485887.911 23485888.311
+ 31.100 27.100
+ 06 1 2 10 3 0.0000000 0 6G23G20G 1G16G25G 6
+ -14957978.333 7 -11655566.827 6 21815302.541 21815297.057 21815301.223
+ 43.700 37.800
+ -12806140.318 6 -9978811.435 5 22207070.173 22207067.671 22207068.992
+ 38.800 31.300
+ -14497264.445 7 -11296569.045 6 21503604.326 21503602.575 21503603.337
+ 43.800 38.200
+ -21246823.379 7 -16555958.895 7 20550869.572 20550866.606 20550868.473
+ 44.300 45.700
+ -17441053.446 7 -13590425.703 7 21220130.518 21220128.352 21220129.850
+ 47.500 42.400
+ -6436003.278 5 -5015063.847 4 23489325.873 23489323.997 23489325.312
+ 31.800 26.200
+ 06 1 2 10 3 30.0000000 0 6G23G20G 1G16G25G 6
+ -15038861.872 7 -11718592.954 6 21799911.034 21799905.330 21799909.800
+ 43.900 37.700
+ -12756644.855 6 -9940243.561 5 22216488.830 22216486.277 22216487.601
+ 38.900 30.400
+ -14427276.300 7 -11242032.858 6 21516922.285 21516921.010 21516921.545
+ 43.600 38.300
+ -21287743.533 7 -16587844.717 7 20543082.742 20543079.764 20543081.658
+ 44.300 45.700
+ -17400198.819 7 -13558590.934 7 21227904.987 21227902.775 21227904.267
+ 47.500 42.100
+ -6417409.921 5 -5000575.518 4 23492863.846 23492862.686 23492863.095
+ 30.800 26.800
+ 06 1 2 10 4 0.0000000 0 6G23G20G 1G16G25G 6
+ -15119434.649 7 -11781376.939 6 21784578.430 21784572.975 21784577.206
+ 43.900 38.100
+ -12706632.398 6 -9901272.830 5 22226005.907 22226003.421 22226004.645
+ 38.900 31.000
+ -14356905.815 7 -11187198.723 6 21530313.229 21530312.052 21530312.502
+ 43.500 38.100
+ -21328147.731 7 -16619328.497 7 20535394.160 20535391.003 20535393.010
+ 44.300 45.800
+ -17359116.079 7 -13526578.411 7 21235722.692 21235720.509 21235721.966
+ 47.400 42.000
+ -6398283.530 5 -4985671.850 4 23496504.021 23496502.140 23496502.954
+ 31.600 25.900
+ 06 1 2 10 4 30.0000000 0 6G23G20G 1G16G25G 6
+ -15199694.553 7 -11843917.113 6 21769305.596 21769300.020 21769304.336
+ 44.100 38.300
+ -12656105.260 6 -9861901.059 5 22235620.930 22235618.567 22235619.803
+ 39.300 30.800
+ -14286153.950 7 -11132067.423 6 21543776.952 21543775.642 21543776.176
+ 43.400 37.700
+ -21368035.411 7 -16650409.799 7 20527803.763 20527800.649 20527802.718
+ 44.500 46.000
+ -17317805.624 7 -13494388.447 7 21243583.709 21243581.615 21243583.086
+ 47.300 42.000
+ -6378624.418 5 -4970353.059 4 23500244.764 23500242.586 23500243.817
+ 31.100 25.600
+ 06 1 2 10 5 0.0000000 0 6G23G20G 1G16G25G 6
+ -15279639.040 7 -11906211.512 6 21754092.687 21754086.955 21754091.462
+ 44.100 37.800
+ -12605065.646 6 -9822129.952 5 22245333.660 22245331.199 22245332.400
+ 38.600 31.100
+ -14215021.787 7 -11076639.803 6 21557313.432 21557311.633 21557312.274
+ 42.700 37.700
+ -21407405.758 7 -16681087.980 7 20520311.818 20520308.792 20520310.682
+ 44.400 46.100
+ -17276267.615 7 -13462021.174 7 21251488.288 21251486.157 21251487.624
+ 47.500 42.100
+ -6358432.904 5 -4954619.417 4 23504086.997 23504084.819 23504086.036
+ 30.400 24.900
+ 06 1 2 10 5 30.0000000 0 6G23G20G 1G16G25G 6
+ -15359265.626 7 -11968258.200 6 21738940.314 21738934.595 21738939.038
+ 44.300 38.000
+ -12553515.889 6 -9781961.346 5 22255143.145 22255140.915 22255141.886
+ 38.600 31.500
+ -14143510.181 7 -11020916.517 6 21570921.436 21570920.029 21570920.441
+ 42.700 37.900
+ -21446258.309 7 -16711362.682 7 20512918.468 20512915.321 20512917.326
+ 44.100 46.100
+ -17234502.560 7 -13429476.975 6 21259436.063 21259433.731 21259435.379
+ 47.700 41.900
+ -6337709.574 5 -4938471.374 3 23508030.289 23508028.194 23508029.072
+ 30.200 22.600
+ 06 1 2 10 6 0.0000000 0 6G23G20G 1G16G25G 6
+ -15438571.796 7 -12030055.214 6 21723848.909 21723843.172 21723847.641
+ 44.600 38.000
+ -12501457.904 6 -9741396.704 5 22265049.343 22265047.315 22265048.090
+ 38.400 31.000
+ -14071620.236 7 -10964898.394 6 21584601.902 21584600.074 21584600.785
+ 42.600 37.400
+ -21484592.776 7 -16741233.687 7 20505623.535 20505620.498 20505622.447
+ 44.100 46.200
+ -17192510.734 7 -13396756.070 6 21267426.685 21267424.507 21267426.001
+ 47.500 41.800
+ -6316454.885 5 -4921909.262 4 23512075.619 23512073.356 23512074.819
+ 31.500 24.900
+ 06 1 2 10 6 30.0000000 0 6G23G20G 1G16G25G 6
+ -15517555.141 7 -12091600.677 6 21708818.602 21708813.112 21708817.382
+ 44.300 38.100
+ -12448894.259 6 -9700438.044 5 22275051.880 22275049.873 22275050.676
+ 39.200 31.000
+ -13999353.006 7 -10908586.282 6 21598353.920 21598352.138 21598352.757
+ 42.600 37.800
+ -21522408.746 7 -16770700.670 7 20498427.338 20498424.419 20498426.336
+ 44.300 46.300
+ -17150292.373 7 -13363858.654 7 21275460.689 21275458.418 21275459.930
+ 47.600 42.000
+ -6294669.301 5 -4904933.491 4 23516221.220 23516218.915 23516220.245
+ 32.100 24.900
+ 06 1 2 10 7 0.0000000 0 6G23G20G 1G16G25G 6
+ -15596213.212 7 -12152892.677 6 21693850.340 21693845.159 21693849.160
+ 44.200 38.700
+ -12395827.062 6 -9659087.004 5 22285150.482 22285148.106 22285149.119
+ 39.100 30.600
+ -13926709.482 7 -10851980.964 6 21612177.160 21612175.760 21612176.212
+ 42.500 37.500
+ -21559705.384 7 -16799762.976 7 20491330.019 20491327.119 20491328.977
+ 44.100 46.500
+ -17107847.928 7 -13330785.061 6 21283537.385 21283535.371 21283536.692
+ 47.500 41.900
+ -6272353.257 5 -4887544.350 3 23520467.758 23520464.754 23520466.773
+ 31.600 22.600
+ 06 1 2 10 7 30.0000000 0 6G23G20G 1G16G25G 6
+ -15674543.649 7 -12213929.364 6 21678944.717 21678939.366 21678943.472
+ 44.100 38.900
+ -12342259.065 6 -9617345.730 5 22295344.161 22295341.745 22295342.866
+ 38.600 30.800
+ -13853690.792 7 -10795083.304 6 21626071.983 21626070.785 21626071.226
+ 42.700 37.300
+ -21596482.143 7 -16828420.175 7 20484331.835 20484328.692 20484330.710
+ 44.300 46.400
+ -17065177.619 7 -13297535.478 6 21291657.619 21291655.340 21291656.880
+ 47.700 41.900
+ -6249507.223 5 -4869742.243 4 23524815.317 23524812.670 23524814.278
+ 32.600 24.200
+ 06 1 2 10 8 0.0000000 0 6G23G20G 1G16G25G 6
+ -15752544.214 7 -12274709.031 6 21664101.742 21664096.172 21664100.585
+ 44.700 38.400
+ -12288191.717 6 -9575215.356 5 22305632.954 22305630.406 22305631.645
+ 38.600 30.200
+ -13780298.089 7 -10737894.190 6 21640038.529 21640036.877 21640037.528
+ 42.600 36.800
+ -21632738.880 7 -16856672.164 7 20477432.203 20477429.264 20477431.113
+ 43.900 46.500
+ -17022281.940 7 -13264110.278 6 21299820.296 21299818.000 21299819.556
+ 47.400 41.600
+ -6226131.793 5 -4851527.598 3 23529263.230 23529260.455 23529262.487
+ 31.600 23.000
+ 06 1 2 10 8 30.0000000 0 6G23G20G 1G16G25G 6
+ -15830212.241 7 -12335229.566 6 21649321.909 21649316.481 21649320.596
+ 44.500 38.600
+ -12233627.588 6 -9532697.878 5 22316016.114 22316013.647 22316014.901
+ 38.900 31.100
+ -13706532.448 7 -10680414.490 6 21654075.425 21654073.964 21654074.617
+ 42.600 37.100
+ -21668474.905 7 -16884518.403 7 20470631.879 20470628.897 20470630.732
+ 43.800 46.600
+ -16979161.108 7 -13230509.641 6 21308025.938 21308023.574 21308025.201
+ 47.400 41.500
+ -6202227.438 5 -4832900.836 3 23533812.428 23533809.728 23533811.568
+ 32.800 23.800
+ 06 1 2 10 9 0.0000000 0 6G23G20G 1G16G25G 6
+ -15907545.391 7 -12395489.155 6 21634605.789 21634600.393 21634604.690
+ 44.900 38.600
+ -12178569.312 6 -9489795.353 5 22326493.239 22326491.089 22326492.136
+ 38.600 30.600
+ -13632394.808 7 -10622644.919 6 21668182.845 21668182.004 21668182.271
+ 42.100 36.700
+ -21703690.184 7 -16911958.860 7 20463930.596 20463927.686 20463929.557
+ 43.700 46.800
+ -16935815.435 7 -13196733.799 6 21316274.141 21316272.111 21316273.528
+ 47.400 41.600
+ -6177794.740 5 -4813862.366 4 23538461.516 23538459.324 23538460.730
+ 32.000 24.900
+ 06 1 2 10 9 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -15984541.292 7 -12455485.967 6 21619954.305 21619948.683 21619953.048
+ 45.100 38.900
+ -186154.576 3 -145055.192 9 24583853.158 24583851.568 24583853.522
+ 19.900 -3.000
+ -12123019.200 6 -9446509.561 5 22337064.226 22337061.925 22337062.906
+ 38.500 30.400
+ -13557886.334 7 -10564586.406 6 21682361.273 21682360.457 21682360.948
+ 42.300 36.600
+ -21738384.055 7 -16938993.029 7 20457328.636 20457325.604 20457327.506
+ 43.900 46.700
+ -16892245.207 7 -13162782.983 6 21324565.437 21324563.235 21324564.714
+ 47.200 41.400
+ -6152834.421 5 -4794412.769 4 23543210.686 23543208.706 23543210.013
+ 30.800 25.300
+ 06 1 2 10 10 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16061197.524 7 -12515218.090 6 21605367.063 21605361.513 21605365.779
+ 45.100 38.700
+ -293467.772 3 -228675.944 2 24563433.679 24563431.340 24563433.288
+ 22.600 17.000
+ -12066979.329 6 -9402842.147 5 22347728.092 22347725.886 22347726.994
+ 38.000 30.100
+ -13483008.116 7 -10506239.776 6 21696609.871 21696609.467 21696609.769
+ 42.200 36.800
+ -21772556.248 7 -16965620.693 7 20450825.826 20450822.744 20450824.750
+ 43.700 46.700
+ -16848450.847 7 -13128657.507 6 21332899.096 21332896.994 21332898.536
+ 47.400 41.300
+ -6127346.985 5 -4774552.443 4 23548061.515 23548059.575 23548060.322
+ 30.800 26.200
+ 06 1 2 10 10 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16137511.673 7 -12574683.661 6 21590844.665 21590839.122 21590843.529
+ 45.000 38.300
+ -400717.283 3 -312246.951 3 24543024.317 24543022.665 24543023.949
+ 19.300 18.600
+ -12010452.059 6 -9358794.950 5 22358485.139 22358482.499 22358483.816
+ 38.000 30.200
+ -13407761.221 7 -10447605.858 6 21710929.039 21710928.294 21710928.989
+ 42.400 36.300
+ -21806206.333 7 -16991841.521 7 20444422.343 20444419.346 20444421.328
+ 43.800 46.900
+ -16804432.635 7 -13094357.604 6 21341275.590 21341273.466 21341274.880
+ 47.300 41.500
+ -6101333.065 5 -4754281.850 4 23553011.534 23553009.884 23553010.538
+ 32.000 26.200
+ 06 1 2 10 11 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16213480.977 7 -12633880.523 6 21576388.588 21576382.785 21576387.324
+ 45.400 38.800
+ -507901.313 3 -395766.984 2 24522629.235 24522625.461 24522628.310
+ 21.600 15.100
+ -11953440.025 6 -9314370.008 4 22369334.021 22369331.465 22369332.884
+ 38.100 29.700
+ -13332146.859 6 -10388685.608 6 21725318.101 21725317.526 21725317.837
+ 41.900 36.600
+ -21839334.084 7 -17017655.335 7 20438118.336 20438115.346 20438117.285
+ 43.600 47.100
+ -16760190.861 7 -13059883.493 6 21349694.600 21349692.274 21349693.892
+ 47.400 41.100
+ -6074793.369 5 -4733601.567 4 23558061.379 23558060.120 23558060.684
+ 31.500 25.300
+ 06 1 2 10 11 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16289103.317 7 -12692807.022 6 21561998.024 21561992.428 21561996.701
+ 45.100 39.100
+ -615017.285 3 -479233.965 3 24502244.955 24502242.249 24502244.667
+ 21.600 22.600
+ -11895945.727 6 -9269569.273 5 22380275.155 22380272.344 22380273.897
+ 38.700 30.100
+ -13256166.236 6 -10329479.951 6 21739776.332 21739776.023 21739776.469
+ 41.900 36.300
+ -21871939.209 7 -17043061.915 7 20431913.973 20431910.729 20431912.830
+ 43.700 47.000
+ -16715725.926 7 -13025235.496 6 21358155.832 21358153.720 21358155.155
+ 47.200 41.000
+ -6047728.544 5 -4712512.101 4 23563212.128 23563210.243 23563211.397
+ 31.600 25.300
+ 06 1 2 10 12 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16364375.991 7 -12751461.048 6 21547674.179 21547668.489 21547672.770
+ 44.900 39.100
+ -722063.297 3 -562646.406 3 24481873.252 24481872.128 24481873.468
+ 23.400 23.000
+ -11837971.319 6 -9224394.429 4 22391307.186 22391304.500 22391305.976
+ 38.800 29.900
+ -13179820.360 6 -10269989.691 6 21754304.754 21754304.326 21754304.653
+ 41.900 36.500
+ -21904021.444 7 -17068061.047 7 20425808.887 20425805.704 20425807.787
+ 43.700 47.100
+ -16671038.067 7 -12990413.794 6 21366659.826 21366657.508 21366659.106
+ 47.400 41.200
+ -6020139.156 5 -4691013.869 4 23568462.084 23568460.445 23568461.270
+ 31.100 25.900
+ 06 1 2 10 12 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16439297.096 7 -12809841.131 6 21533416.981 21533411.612 21533415.673
+ 45.200 39.700
+ -829037.318 3 -646002.775 3 24461517.344 24461515.185 24461516.753
+ 21.100 21.600
+ -11779519.408 6 -9178847.500 4 22402430.179 22402427.546 22402428.935
+ 38.300 29.200
+ -13103110.458 7 -10210215.761 6 21768902.659 21768901.655 21768902.237
+ 42.100 36.400
+ -21935580.445 7 -17092652.473 7 20419803.196 20419800.204 20419802.191
+ 43.600 47.200
+ -16626127.626 7 -12955418.648 6 21375205.786 21375203.677 21375205.116
+ 47.100 41.000
+ -5992026.152 5 -4669107.629 4 23573812.307 23573809.986 23573811.403
+ 31.500 25.600
+ 06 1 2 10 13 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16513863.884 7 -12867945.116 6 21519227.072 21519221.817 21519225.971
+ 45.100 39.300
+ -935937.603 3 -729301.696 3 24441174.321 24441172.642 24441174.223
+ 19.300 19.900
+ -11720592.422 6 -9132930.390 5 22413643.740 22413641.293 22413642.482
+ 38.100 30.600
+ -13026037.557 6 -10150158.971 6 21783569.016 21783568.202 21783568.600
+ 41.700 36.100
+ -21966615.611 7 -17116835.714 7 20413897.504 20413894.463 20413896.450
+ 43.700 47.400
+ -16580994.899 7 -12920250.291 6 21383794.562 21383792.111 21383793.790
+ 47.400 40.800
+ -5963390.128 5 -4646793.835 4 23579261.510 23579259.022 23579260.506
+ 31.600 24.900
+ 06 1 2 10 13 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16588074.070 7 -12925771.239 6 21505105.492 21505100.001 21505104.223
+ 45.100 38.900
+ -1042761.900 3 -812541.394 2 24420847.081 24420844.209 24420847.225
+ 18.600 12.600
+ -11661192.811 6 -9086645.008 5 22424947.059 22424944.791 22424945.807
+ 37.700 30.600
+ -12948603.027 6 -10089820.412 6 21798305.074 21798303.615 21798304.092
+ 41.500 36.000
+ -21997127.145 7 -17140610.929 7 20408091.261 20408088.310 20408090.191
+ 43.500 47.600
+ -16535640.225 7 -12884908.987 6 21392425.087 21392422.771 21392424.368
+ 47.100 40.600
+ -5934231.878 5 -4624073.126 4 23584809.544 23584807.891 23584808.771
+ 31.000 24.200
+ 06 1 2 10 14 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16661925.062 7 -12983317.463 6 21491052.303 21491046.732 21491051.083
+ 45.500 39.200
+ -1149508.210 2 -895720.322 1 24400533.379 24400531.439 24400533.818
+ 17.800 9.000
+ -11601322.935 6 -9039993.187 5 22436339.861 22436337.687 22436338.715
+ 38.300 31.000
+ -12870808.000 6 -10029200.940 6 21813109.118 21813107.684 21813108.041
+ 41.600 36.000
+ -22027114.641 7 -17163977.802 7 20402384.808 20402381.922 20402383.773
+ 43.400 47.600
+ -16490063.921 7 -12849394.990 6 21401098.009 21401095.606 21401097.338
+ 47.300 40.600
+ -5904552.220 5 -4600946.133 4 23590457.258 23590455.658 23590456.648
+ 31.600 24.200
+ 06 1 2 10 14 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16735414.453 7 -13040581.926 6 21477067.841 21477062.168 21477066.555
+ 45.700 39.200
+ -1256174.221 4 -978836.697 2 24380237.060 24380233.983 24380236.912
+ 24.200 13.900
+ -11540985.375 6 -8992976.928 4 22447821.726 22447819.418 22447820.500
+ 38.200 29.900
+ -12792653.667 6 -9968301.484 5 21827981.662 21827979.774 21827980.368
+ 41.200 35.700
+ -22056577.972 7 -17186936.237 7 20396778.320 20396775.217 20396777.241
+ 43.600 47.700
+ -16444266.234 7 -12813708.487 6 21409813.275 21409810.655 21409812.460
+ 47.100 40.500
+ -5874351.836 5 -4577413.344 4 23596204.151 23596203.043 23596203.390
+ 30.400 25.900
+ 06 1 2 10 15 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16808539.778 7 -13097562.706 6 21463152.328 21463146.914 21463151.205
+ 45.600 39.400
+ -1362758.379 4 -1061889.294 2 24359955.569 24359951.162 24359955.151
+ 26.500 16.100
+ -11480182.692 6 -8945598.233 4 22459392.028 22459389.603 22459390.758
+ 38.100 28.800
+ -12714141.227 6 -9907122.968 5 21842921.961 21842920.052 21842920.719
+ 40.700 35.600
+ -22085516.870 7 -17209486.015 7 20391271.333 20391268.232 20391270.297
+ 43.600 47.900
+ -16398247.483 7 -12777849.725 6 21418570.274 21418567.776 21418569.533
+ 47.200 40.600
+ -5843631.584 5 -4553475.498 3 23602050.392 23602048.401 23602049.609
+ 31.000 23.800
+ 06 1 2 10 15 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -16881298.625 7 -13154257.910 6 21449306.809 21449301.470 21449305.462
+ 45.400 39.700
+ -1469258.173 4 -1144876.171 2 24339689.427 24339684.637 24339688.848
+ 25.300 17.800
+ -11418917.465 6 -8897859.114 4 22471050.200 22471047.743 22471049.161
+ 38.000 28.600
+ -12635271.927 6 -9845666.386 5 21857930.046 21857928.475 21857928.994
+ 41.000 35.300
+ -22113931.145 7 -17231627.004 7 20385864.237 20385861.171 20385863.163
+ 43.400 47.900
+ -16352007.939 7 -12741818.915 6 21427368.982 21427366.833 21427368.394
+ 47.200 40.600
+ -5812392.325 5 -4529133.190 4 23607995.124 23607993.503 23607994.258
+ 30.100 25.300
+ 06 1 2 10 16 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -16953688.669 7 -13210665.730 6 21435531.561 21435525.946 21435530.223
+ 45.500 39.500
+ -1575671.325 4 -1227795.509 3 24319439.040 24319435.639 24319438.742
+ 27.100 22.100
+ -11357192.247 6 -8849761.550 4 22482796.461 22482793.895 22482795.116
+ 37.100 29.000
+ -12556047.028 6 -9783932.718 5 21873006.188 21873004.525 21873005.164
+ 41.100 35.700
+ -22141820.766 7 -17253359.170 7 20380557.046 20380553.940 20380555.923
+ 43.200 47.800
+ -16305548.022 7 -12705616.382 6 21436210.070 21436207.900 21436209.430
+ 47.000 40.500
+ -5780634.961 5 -4504387.213 3 23614038.752 23614036.119 23614037.870
+ 31.500 22.600
+ 06 1 2 10 16 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17025707.548 7 -13266784.342 6 21421827.184 21421821.395 21421825.711
+ 46.200 39.800
+ -1681996.001 3 -1310645.922 4 24299204.701 24299203.092 24299204.749
+ 23.400 25.300
+ -11295009.553 6 -8801307.527 4 22494629.092 22494627.050 22494628.059
+ 36.800 29.200
+ -12476467.769 6 -9721922.927 5 21888149.223 21888147.913 21888148.460
+ 41.100 35.600
+ -22169185.649 7 -17274682.446 7 20375349.760 20375346.615 20375348.660
+ 43.300 47.800
+ -16258867.954 7 -12669242.308 6 21445093.325 21445090.867 21445092.433
+ 46.800 40.500
+ -5748360.343 5 -4479238.147 3 23620180.216 23620177.764 23620179.247
+ 31.100 23.400
+ 06 1 2 10 17 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17097352.923 7 -13322611.909 6 21408193.329 21408187.662 21408192.010
+ 46.100 39.900
+ -1788230.202 3 -1393425.752 4 24278988.092 24278986.872 24278988.379
+ 22.600 25.300
+ -11232372.000 5 -8752499.074 4 22506548.738 22506546.698 22506547.379
+ 35.400 28.600
+ -12396535.332 6 -9659637.948 5 21903360.368 21903358.561 21903359.311
+ 40.700 35.100
+ -22196025.536 7 -17295596.641 8 20370242.133 20370239.203 20370241.036
+ 43.200 48.000
+ -16211967.985 7 -12632696.884 6 21454017.513 21454015.707 21454016.958
+ 46.900 40.600
+ -5715569.335 5 -4453686.710 4 23626420.412 23626418.106 23626419.464
+ 31.300 24.600
+ 06 1 2 10 17 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17168621.878 7 -13378146.166 6 21394631.093 21394625.448 21394629.829
+ 46.000 39.800
+ -1894371.635 3 -1476133.349 3 24258791.266 24258788.989 24258791.202
+ 21.100 23.000
+ -11169282.113 5 -8703338.154 4 22518554.000 22518552.473 22518552.827
+ 35.600 28.800
+ -12316251.066 6 -9597078.822 5 21918637.540 21918636.312 21918636.741
+ 40.700 35.200
+ -22222340.454 7 -17316101.766 8 20365234.551 20365231.595 20365233.419
+ 43.100 48.000
+ -16164848.468 7 -12595980.375 6 21462984.241 21462982.222 21462983.599
+ 46.800 40.600
+ -5682262.893 5 -4427733.627 4 23632758.427 23632756.177 23632757.531
+ 31.500 24.900
+ 06 1 2 10 18 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17239512.353 7 -13433385.497 6 21381140.936 21381135.681 21381139.727
+ 45.900 40.000
+ -2000418.074 3 -1558766.959 3 24238612.797 24238608.546 24238611.807
+ 19.900 21.100
+ -11105742.541 6 -8653826.824 4 22530645.544 22530643.574 22530644.346
+ 36.700 29.700
+ -12235616.152 6 -9534246.466 5 21933981.924 21933980.756 21933981.072
+ 40.500 35.400
+ -22248130.225 7 -17336197.683 8 20360326.972 20360323.933 20360325.931
+ 43.100 48.000
+ -16117509.701 7 -12559093.025 6 21471992.626 21471990.498 21471991.884
+ 46.900 40.500
+ -5648441.865 5 -4401379.598 4 23639193.937 23639192.455 23639193.171
+ 30.600 25.900
+ 06 1 2 10 18 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17310021.927 7 -13488328.020 6 21367723.580 21367718.086 21367722.346
+ 46.100 40.100
+ -2106367.784 3 -1641325.093 3 24218450.206 24218447.520 24218449.615
+ 20.500 20.500
+ -11041755.853 6 -8603967.092 4 22542821.767 22542819.808 22542820.643
+ 37.200 28.800
+ -12154631.942 6 -9471141.914 5 21949392.578 21949391.299 21949391.793
+ 40.400 34.600
+ -22273395.102 7 -17355884.590 8 20355519.319 20355516.209 20355518.175
+ 43.100 48.100
+ -16069952.034 7 -12522035.100 6 21481042.617 21481040.394 21481041.901
+ 46.900 40.300
+ -5614107.267 5 -4374625.353 3 23645727.247 23645725.352 23645726.639
+ 30.100 23.800
+ 06 1 2 10 19 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17380148.458 7 -13542972.072 6 21354378.993 21354373.439 21354377.592
+ 45.700 40.000
+ -2212218.145 4 -1723805.879 3 24198306.949 24198304.678 24198307.288
+ 24.200 19.900
+ -10977324.752 6 -8553761.054 4 22555082.987 22555080.364 22555081.697
+ 37.700 28.100
+ -12073299.801 6 -9407766.251 5 21964869.494 21964868.444 21964868.706
+ 40.000 34.800
+ -22298134.406 7 -17375161.964 8 20350811.451 20350808.516 20350810.306
+ 43.000 48.400
+ -16022175.664 7 -12484806.756 6 21490134.159 21490132.067 21490133.399
+ 46.700 40.400
+ -5579260.163 5 -4347471.763 4 23652358.426 23652357.439 23652357.606
+ 30.100 27.100
+ 06 1 2 10 19 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17449889.545 7 -13597315.774 6 21341107.678 21341102.145 21341106.504
+ 46.200 40.100
+ -2317967.129 4 -1806207.698 2 24178183.491 24178180.944 24178183.754
+ 26.200 17.000
+ -10912451.961 6 -8503210.842 4 22567427.547 22567425.240 22567426.477
+ 37.100 26.800
+ -11991621.024 6 -9344120.472 5 21980412.751 21980411.466 21980411.793
+ 39.700 34.900
+ -22322348.282 7 -17394029.911 8 20346203.630 20346200.759 20346202.525
+ 42.700 48.400
+ -15974180.821 7 -12447408.183 6 21499267.057 21499265.111 21499266.491
+ 46.600 40.500
+ -5543901.358 5 -4319919.459 4 23659087.204 23659085.509 23659086.227
+ 30.800 25.900
+ 06 1 2 10 20 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17519242.263 7 -13651356.858 6 21327910.546 21327904.717 21327909.196
+ 46.100 39.900
+ -2423612.709 4 -1888528.947 3 24158081.242 24158077.477 24158080.741
+ 24.900 18.600
+ -10847139.899 6 -8452318.346 4 22579856.000 22579853.761 22579854.828
+ 37.200 27.400
+ -11909596.824 6 -9280205.534 5 21996021.282 21996020.385 21996020.405
+ 39.700 35.200
+ -22346037.013 7 -17412488.653 8 20341695.871 20341692.906 20341694.741
+ 43.000 48.400
+ -15925968.023 7 -12409839.770 6 21508441.692 21508439.753 21508441.124
+ 46.600 40.300
+ -5508031.931 4 -4291969.258 4 23665912.722 23665911.414 23665912.117
+ 29.900 25.300
+ 06 1 2 10 20 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17588204.383 7 -13705093.574 6 21314787.291 21314781.734 21314786.024
+ 46.400 40.300
+ -2529152.586 4 -1970767.799 2 24137998.452 24137993.631 24137997.540
+ 28.400 13.900
+ -10781391.463 6 -8401085.818 4 22592367.723 22592365.491 22592366.546
+ 37.100 28.100
+ -11827228.795 6 -9216022.666 5 22011695.507 22011694.282 22011694.731
+ 39.700 34.900
+ -22369200.378 7 -17430538.012 8 20337288.057 20337284.935 20337286.971
+ 42.800 48.400
+ -15877537.431 7 -12372101.643 6 21517657.949 21517655.737 21517657.089
+ 46.300 40.200
+ -5471652.894 5 -4263621.951 4 23672835.612 23672833.901 23672834.814
+ 30.200 25.900
+ 06 1 2 10 21 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17656773.585 7 -13758524.124 6 21301739.046 21301733.448 21301737.744
+ 46.400 40.600
+ -2634584.619 4 -2052922.660 2 24117933.514 24117930.764 24117933.543
+ 26.800 16.100
+ -10715209.144 6 -8349515.199 4 22604961.797 22604959.468 22604960.583
+ 36.500 27.900
+ -11744518.128 6 -9151572.813 5 22027434.557 22027433.449 22027433.952
+ 39.900 33.900
+ -22391838.610 7 -17448178.178 8 20332980.125 20332977.021 20332978.988
+ 42.900 48.500
+ -15828889.266 7 -12334193.979 6 21526915.176 21526913.069 21526914.557
+ 46.600 40.100
+ -5434765.393 4 -4234878.445 4 23679854.850 23679853.686 23679853.996
+ 29.700 27.600
+ 06 1 2 10 21 30.0000000 0 7G23G13G20G 1G16G25G 6
+ -17724947.657 7 -13811646.776 6 21288765.970 21288760.296 21288764.717
+ 46.700 40.600
+ -2739906.434 4 -2134991.620 2 24097890.974 24097888.201 24097890.957
+ 25.600 16.100
+ -10648595.755 6 -8297608.684 4 22617637.780 22617635.768 22617636.528
+ 36.300 28.800
+ -11661466.085 6 -9086856.963 5 22043238.312 22043238.167 22043238.166
+ 40.000 34.900
+ -22413951.841 7 -17465409.252 8 20328772.123 20328769.019 20328771.002
+ 42.700 48.400
+ -15780023.925 7 -12296117.091 6 21536213.951 21536211.819 21536213.273
+ 46.600 40.000
+ -5397370.498 4 -4205739.572 4 23686970.217 23686968.800 23686969.706
+ 29.500 24.200
+ 06 1 2 10 22 0.0000000 0 7G23G13G20G 1G16G25G 6
+ -17792723.981 7 -13864459.493 6 21275868.401 21275862.844 21275867.247
+ 46.500 40.500
+ -2845115.918 4 -2216973.056 2 24077871.380 24077867.981 24077870.858
+ 27.100 17.800
+ -10581553.977 6 -8245368.361 5 22630395.664 22630393.615 22630394.408
+ 36.200 30.100
+ -11578074.186 6 -9021876.298 5 22059107.616 22059106.930 22059107.211
+ 40.000 34.300
+ -22435540.279 7 -17482231.404 8 20324663.877 20324660.850 20324662.857
+ 42.800 48.600
+ -15730941.650 7 -12257871.164 6 21545554.166 21545551.802 21545553.464
+ 46.600 39.800
+ -5359469.199 4 -4176206.076 4 23694182.911 23694181.503 23694182.406
+ 29.700 25.900
+ 06 1 2 10 22 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -17860100.098 7 -13916960.368 6 21263047.225 21263041.682 21263045.921
+ 46.400 40.600
+ -2950211.171 4 -2298865.464 3 24057872.614 24057869.685 24057871.924
+ 25.600 22.100
+ -10514086.556 5 -8192796.382 5 22643233.970 22643232.336 22643232.788
+ 35.500 30.200
+ -11494343.792 6 -8956631.856 5 22075041.370 22075040.243 22075040.780
+ 40.200 34.000
+ -194225.796 3 -151344.347 2 24522886.480 24522885.957 24522885.218
+ 21.100 17.800
+ -22456603.494 7 -17498644.297 8 20320655.798 20320652.677 20320654.734
+ 42.900 48.600
+ -15681642.685 7 -12219456.392 6 21554935.599 21554933.086 21554934.845
+ 46.800 39.700
+ -5321062.629 4 -4146278.887 4 23701491.403 23701490.285 23701491.089
+ 28.600 25.900
+ 06 1 2 10 23 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -17927073.869 7 -13969147.718 6 21250302.518 21250297.122 21250301.231
+ 46.400 40.900
+ -3055189.782 3 -2380666.952 3 24037895.062 24037892.623 24037894.778
+ 22.100 23.800
+ -10446196.353 5 -8139894.972 5 22656153.459 22656151.401 22656152.143
+ 35.800 30.200
+ -11410276.156 6 -8891124.616 5 22091038.957 22091037.822 22091038.207
+ 39.500 33.600
+ -306296.240 3 -238671.913 2 24501560.478 24501559.677 24501559.242
+ 21.600 17.800
+ -22477141.868 7 -17514648.219 8 20316747.531 20316744.459 20316746.388
+ 42.900 48.800
+ -15632127.409 7 -12180873.062 6 21564358.021 21564355.621 21564357.309
+ 46.800 39.500
+ -5282151.874 5 -4115958.821 4 23708896.378 23708894.487 23708895.856
+ 30.600 25.600
+ 06 1 2 10 23 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -17993642.799 7 -14021019.612 6 21237635.009 21237629.394 21237633.659
+ 46.300 40.900
+ -3160049.520 4 -2462375.825 4 24017940.511 24017938.842 24017940.392
+ 24.200 25.600
+ -10377885.910 6 -8086666.084 4 22669152.678 22669150.345 22669151.485
+ 36.400 28.600
+ -11325872.705 6 -8825355.716 5 22107100.526 22107099.314 22107099.716
+ 39.700 33.900
+ -418375.635 3 -326006.442 3 24480232.677 24480231.678 24480231.354
+ 22.100 18.600
+ -22497155.498 7 -17530243.241 8 20312939.144 20312936.014 20312938.007
+ 43.000 48.800
+ -15582395.960 7 -12142121.282 6 21573821.438 21573819.175 21573820.697
+ 46.700 39.700
+ -5242738.199 4 -4085246.877 4 23716396.640 23716394.854 23716395.481
+ 29.700 24.600
+ 06 1 2 10 24 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18059804.562 7 -14072574.230 6 21225044.807 21225039.318 21225043.498
+ 46.600 41.000
+ -3264788.081 3 -2543990.245 4 23998009.937 23998007.520 23998009.586
+ 21.100 24.900
+ -10309157.943 6 -8033111.837 4 22682230.978 22682228.762 22682229.784
+ 36.300 27.400
+ -11241134.846 6 -8759326.240 5 22123225.612 22123224.548 22123224.842
+ 39.300 34.100
+ -530461.417 3 -413345.982 2 24458903.494 24458902.297 24458902.128
+ 22.100 13.900
+ -22516644.311 7 -17545429.320 8 20309230.661 20309227.339 20309229.466
+ 43.100 48.800
+ -15532448.731 7 -12103201.362 6 21583326.160 21583323.775 21583325.444
+ 46.700 39.700
+ -5202822.761 4 -4054143.914 3 23723992.658 23723990.297 23723991.630
+ 29.000 23.000
+ 06 1 2 10 24 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18125556.600 7 -14123809.584 6 21212532.515 21212527.207 21212531.255
+ 46.600 41.200
+ -3369403.240 4 -2625508.548 3 23978102.642 23978099.915 23978102.664
+ 24.600 23.400
+ -10240015.332 6 -7979234.492 4 22695388.336 22695386.235 22695387.174
+ 36.200 27.400
+ -11156064.010 6 -8693037.300 5 22139414.050 22139412.826 22139413.290
+ 39.100 33.800
+ -642551.070 3 -500688.521 3 24437573.277 24437573.087 24437572.127
+ 22.600 19.300
+ -22535608.726 7 -17560206.776 8 20305621.620 20305618.487 20305620.562
+ 42.800 48.900
+ -15482286.010 7 -12064113.529 6 21592872.050 21592869.522 21592871.255
+ 46.700 39.700
+ -5162406.574 5 -4022650.788 4 23731683.718 23731681.914 23731682.968
+ 31.600 25.300
+ 06 1 2 10 25 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18190896.822 7 -14174724.036 6 21200098.828 21200093.415 21200097.419
+ 46.600 41.200
+ -3473892.751 4 -2706928.953 4 23958218.960 23958216.143 23958218.549
+ 25.600 24.600
+ -10170460.884 6 -7925036.233 4 22708624.423 22708621.746 22708623.278
+ 36.500 27.100
+ -11070661.702 6 -8626490.080 5 22155665.711 22155664.275 22155664.703
+ 38.600 33.400
+ -754641.659 3 -588031.794 2 24416243.315 24416242.187 24416241.480
+ 20.500 17.000
+ -22554048.758 7 -17574575.628 8 20302112.400 20302109.495 20302111.389
+ 42.500 48.900
+ -15431907.984 7 -12024857.923 6 21602458.531 21602455.973 21602457.774
+ 46.600 39.400
+ -5121490.995 4 -3990768.531 4 23739468.115 23739467.945 23739467.523
+ 27.600 25.600
+ 06 1 2 10 25 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18255822.694 7 -14225315.623 6 21187743.548 21187738.315 21187742.270
+ 46.600 41.200
+ -3578254.283 4 -2788249.597 3 23938358.893 23938356.957 23938358.380
+ 25.900 23.400
+ -10100497.431 6 -7870519.277 4 22721937.872 22721935.116 22721936.665
+ 36.700 25.600
+ -10984929.356 6 -8559685.676 5 22171980.366 22171978.664 22171979.225
+ 38.600 33.600
+ -866730.397 3 -675373.637 2 24394912.432 24394912.443 24394911.300
+ 22.100 16.100
+ -22571964.898 7 -17588536.249 8 20298703.118 20298700.146 20298702.026
+ 42.600 48.900
+ -15381314.948 7 -11985434.774 6 21612085.821 21612083.700 21612085.140
+ 46.600 39.700
+ -5080077.126 4 -3958497.995 3 23747349.321 23747348.411 23747348.846
+ 29.500 23.800
+ 06 1 2 10 26 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18320331.822 7 -14275582.467 6 21175467.897 21175462.379 21175466.704
+ 46.300 40.600
+ -3682485.527 4 -2869468.758 4 23918524.946 23918522.389 23918524.803
+ 29.500 24.900
+ -10030127.902 6 -7815685.896 4 22735328.538 22735326.081 22735327.453
+ 36.300 26.200
+ -10898868.419 6 -8492625.232 5 22188357.433 22188355.919 22188356.051
+ 37.900 34.000
+ -978814.572 3 -762711.964 1 24373583.477 24373582.979 24373582.634
+ 23.800 9.000
+ -22589357.108 7 -17602088.613 8 20295393.395 20295390.502 20295392.366
+ 42.600 49.000
+ -15330507.230 7 -11945844.350 6 21621754.228 21621752.288 21621753.547
+ 46.400 39.800
+ -5038166.346 4 -3925840.218 4 23755324.935 23755323.357 23755324.469
+ 29.500 24.200
+ 06 1 2 10 26 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18384421.995 7 -14325522.865 6 21163272.069 21163266.497 21163270.720
+ 46.800 40.700
+ -3786584.391 4 -2950584.759 3 23898715.955 23898712.771 23898715.493
+ 28.600 21.600
+ -9959354.805 5 -7760538.037 4 22748796.277 22748794.028 22748795.114
+ 35.800 25.600
+ -10812480.226 6 -8425309.794 5 22204796.870 22204794.933 22204795.334
+ 38.300 33.400
+ -1090891.346 3 -850044.522 2 24352256.250 24352256.123 24352255.140
+ 23.000 17.800
+ -22606225.614 7 -17615232.893 8 20292183.441 20292180.491 20292182.373
+ 42.500 49.100
+ -15279485.093 7 -11906086.842 6 21631463.336 21631461.263 21631462.739
+ 46.400 39.500
+ -4995759.817 4 -3892796.190 4 23763394.619 23763393.313 23763393.756
+ 28.400 24.600
+ 06 1 2 10 27 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18448090.855 7 -14375134.965 6 21151156.223 21151150.753 21151155.031
+ 46.800 41.000
+ -3890548.642 4 -3031595.866 3 23878931.610 23878929.138 23878931.273
+ 27.100 22.100
+ -9888181.051 5 -7705077.982 4 22762340.265 22762338.009 22762339.043
+ 35.600 25.900
+ -10725766.346 6 -8357740.556 5 22221297.926 22221296.167 22221296.366
+ 38.000 33.500
+ -1202957.990 3 -937369.148 3 24330930.704 24330930.288 24330929.792
+ 22.600 18.600
+ -22622570.807 7 -17627969.392 8 20289073.225 20289070.096 20289072.127
+ 42.300 49.000
+ -15228248.857 7 -11866162.501 6 21641213.165 21641211.294 21641212.588
+ 46.400 39.500
+ -4952858.798 5 -3859366.810 3 23771559.210 23771556.865 23771558.221
+ 30.200 23.000
+ 06 1 2 10 27 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18511335.997 7 -14424416.896 6 21139121.043 21139115.630 21139119.853
+ 46.800 41.100
+ -3994375.927 4 -3112500.225 2 23859174.051 23859170.599 23859174.017
+ 26.500 17.800
+ -9816609.649 5 -7649308.074 4 22775959.603 22775957.579 22775958.526
+ 35.200 27.400
+ -10638728.268 6 -8289918.695 5 22237860.978 22237858.616 22237859.558
+ 38.900 32.800
+ -1315011.675 3 -1024683.656 3 24309606.296 24309607.323 24309606.131
+ 20.500 21.100
+ -22638392.906 7 -17640298.291 8 20286062.327 20286059.270 20286061.227
+ 42.100 49.100
+ -15176798.682 7 -11826071.457 6 21651004.001 21651002.016 21651003.401
+ 46.400 39.500
+ -4909464.456 4 -3825553.041 3 23779816.271 23779814.669 23779815.548
+ 28.800 23.000
+ 06 1 2 10 28 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18574155.170 7 -14473366.897 6 21127167.039 21127161.490 21127165.703
+ 46.600 41.100
+ -4098063.903 3 -3193296.084 2 23839442.726 23839439.324 23839442.371
+ 23.800 17.000
+ -9744643.261 5 -7593230.392 4 22789654.567 22789652.428 22789653.313
+ 35.200 27.100
+ -10551367.331 6 -8221845.261 5 22254484.940 22254483.049 22254483.716
+ 38.400 33.000
+ -1427049.626 3 -1111985.882 3 24288286.613 24288287.238 24288286.404
+ 23.000 21.600
+ -22653692.147 7 -17652219.774 8 20283151.039 20283147.916 20283149.865
+ 42.300 49.200
+ -15125134.838 7 -11785813.919 6 21660835.253 21660833.316 21660834.655
+ 46.400 39.800
+ -4865578.264 4 -3791356.005 3 23788167.438 23788165.565 23788166.598
+ 28.600 22.600
+ 06 1 2 10 28 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18636546.002 7 -14521983.129 6 21115294.449 21115288.928 21115293.070
+ 46.500 41.300
+ -4201610.162 4 -3273981.477 2 23819739.388 23819734.813 23819738.710
+ 26.800 16.100
+ -9672284.837 5 -7536847.225 4 22803423.819 22803421.900 22803422.680
+ 35.100 27.100
+ -10463685.018 6 -8153521.413 5 22271169.590 22271168.496 22271168.779
+ 37.500 32.800
+ -1539068.898 3 -1199273.561 3 24266969.971 24266970.392 24266969.977
+ 22.100 19.300
+ -22668468.841 7 -17663734.081 8 20280339.072 20280335.974 20280337.948
+ 42.400 49.200
+ -15073257.711 7 -11745390.186 6 21670707.384 21670705.114 21670706.633
+ 46.300 39.500
+ -4821201.534 5 -3756776.733 4 23796612.727 23796610.735 23796611.999
+ 30.100 24.600
+ 06 1 2 10 29 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18698505.628 7 -14570263.351 6 21103503.851 21103498.393 21103502.646
+ 46.800 41.200
+ -4305012.498 4 -3354554.742 3 23800061.503 23800059.338 23800061.049
+ 24.600 22.100
+ -9599537.709 5 -7480161.172 4 22817267.500 22817265.149 22817266.144
+ 34.500 26.500
+ -10375682.842 6 -8084948.334 5 22287915.446 22287914.897 22287915.016
+ 37.700 33.100
+ -1651066.883 3 -1286544.672 2 24245658.222 24245657.497 24245656.861
+ 19.900 16.100
+ -22682723.128 7 -17674841.309 8 20277626.653 20277623.515 20277625.443
+ 42.500 49.200
+ -15021167.528 7 -11704800.438 6 21680619.920 21680617.468 21680619.135
+ 46.300 39.300
+ -4776335.505 4 -3721816.192 3 23805150.066 23805148.135 23805149.503
+ 29.900 23.800
+ 06 1 2 10 29 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18760032.515 7 -14618206.382 6 21091795.773 21091790.171 21091794.469
+ 47.000 41.300
+ -4408268.690 4 -3435014.104 3 23780413.161 23780410.644 23780412.763
+ 26.200 23.400
+ -9526403.751 5 -7423173.698 4 22831184.196 22831182.196 22831182.890
+ 33.600 26.500
+ -10287362.344 6 -8016127.202 5 22304722.263 22304721.370 22304721.938
+ 37.600 31.800
+ -1763040.578 4 -1373796.881 3 24224349.820 24224349.842 24224348.917
+ 24.600 19.900
+ -22696455.636 7 -17685541.956 8 20275013.225 20275010.268 20275012.214
+ 42.700 49.200
+ -14968864.541 7 -11664044.868 6 21690572.560 21690570.499 21690571.959
+ 46.400 39.300
+ -4730981.669 4 -3686475.533 3 23813779.911 23813778.831 23813779.432
+ 28.100 22.600
+ 06 1 2 10 30 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18821124.083 7 -14665810.199 6 21080170.283 21080164.892 21080169.133
+ 47.100 41.400
+ -4511376.744 4 -3515358.034 3 23760792.199 23760789.301 23760791.631
+ 24.900 23.000
+ -9452886.371 5 -7365887.447 4 22845173.770 22845171.839 22845172.684
+ 32.700 26.500
+ -10198724.972 6 -7947059.142 5 22321589.034 22321588.605 22321588.867
+ 37.300 32.000
+ -1874987.022 3 -1461027.813 3 24203046.513 24203047.633 24203046.600
+ 23.000 21.100
+ -22709666.847 7 -17695836.397 8 20272499.298 20272496.206 20272498.285
+ 42.700 49.100
+ -14916349.031 7 -11623123.687 6 21700565.670 21700563.806 21700565.198
+ 46.100 38.900
+ -4685141.216 4 -3650755.719 4 23822504.094 23822502.510 23822503.244
+ 29.700 25.900
+ 06 1 2 10 30 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18881777.763 7 -14713072.806 6 21068628.453 21068622.951 21068627.174
+ 47.100 41.600
+ -4614333.435 4 -3595583.997 4 23741199.756 23741197.507 23741199.479
+ 26.800 25.900
+ -9378988.261 5 -7308304.535 4 22859236.616 22859234.150 22859235.250
+ 33.100 26.200
+ -10109772.278 6 -7877745.382 5 22338516.325 22338516.009 22338515.970
+ 37.700 32.000
+ -1986903.492 3 -1548235.395 2 24181751.415 24181749.766 24181749.487
+ 19.900 17.000
+ -22722356.641 7 -17705724.537 8 20270084.684 20270081.458 20270083.479
+ 42.600 49.300
+ -14863621.223 7 -11582037.081 6 21710599.808 21710597.502 21710598.984
+ 45.900 38.800
+ -4638815.662 5 -3614657.899 3 23831319.116 23831317.471 23831318.595
+ 31.300 22.100
+ 06 1 2 10 31 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -18941991.719 7 -14759992.767 6 21057170.038 21057164.576 21057168.856
+ 47.200 41.800
+ -4717136.785 4 -3675690.505 3 23721636.978 23721633.974 23721636.867
+ 27.400 22.600
+ -9304712.851 5 -7250427.619 4 22873370.789 22873368.549 22873369.570
+ 34.900 26.500
+ -10020505.904 6 -7808187.206 5 22355502.860 22355502.567 22355502.596
+ 36.500 31.800
+ -2098787.401 3 -1635417.596 3 24160460.290 24160458.907 24160458.289
+ 22.600 19.900
+ -22734525.753 7 -17715206.943 8 20267768.808 20267765.767 20267767.776
+ 42.800 49.300
+ -14810681.435 7 -11540785.302 6 21720673.699 21720671.560 21720673.073
+ 45.900 38.900
+ -4592006.502 5 -3578183.205 3 23840226.254 23840224.952 23840225.969
+ 30.600 21.600
+ 06 1 2 10 31 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19001763.370 7 -14806568.078 6 21045796.037 21045790.298 21045794.738
+ 47.100 41.500
+ -4819784.375 4 -3755675.652 3 23702104.732 23702101.514 23702104.336
+ 29.200 22.600
+ -9230062.633 5 -7192258.632 4 22887576.268 22887574.119 22887574.995
+ 35.100 26.800
+ -9930927.339 6 -7738385.758 5 22372549.135 22372549.160 22372549.208
+ 37.600 32.400
+ -2210635.660 3 -1722572.037 3 24139175.482 24139174.542 24139174.265
+ 20.500 19.300
+ -22746174.682 7 -17724284.019 8 20265552.291 20265548.890 20265551.145
+ 42.700 49.200
+ -14757529.882 7 -11499368.514 6 21730788.122 21730786.039 21730787.433
+ 45.600 38.900
+ -4544714.983 4 -3541332.677 3 23849226.129 23849223.883 23849225.364
+ 28.600 22.600
+ 06 1 2 10 32 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19061090.411 7 -14852796.944 6 21034506.359 21034500.679 21034505.083
+ 47.000 41.400
+ -4922274.134 4 -3835537.815 3 23682600.916 23682598.080 23682600.546
+ 26.200 23.400
+ -9155040.528 5 -7133799.871 4 22901852.098 22901850.497 22901850.934
+ 34.500 27.900
+ -9841038.177 6 -7668342.289 5 22389654.732 22389654.555 22389654.352
+ 36.700 32.400
+ -2322445.404 4 -1809696.448 2 24117897.777 24117897.786 24117897.521
+ 24.600 17.800
+ -22757303.520 7 -17732955.836 8 20263434.443 20263431.065 20263433.346
+ 42.700 49.200
+ -14704166.868 7 -11457786.949 6 21740942.913 21740940.752 21740942.243
+ 45.800 38.800
+ -4496942.559 4 -3504107.423 3 23858316.683 23858314.936 23858316.149
+ 29.200 22.100
+ 06 1 2 10 32 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19119970.811 7 -14898677.773 6 21023301.795 21023296.293 21023300.580
+ 47.100 41.800
+ -5024603.619 4 -3915275.043 4 23663128.003 23663125.646 23663127.528
+ 26.200 25.300
+ -9079649.566 5 -7075053.686 4 22916198.701 22916196.805 22916197.316
+ 33.100 26.800
+ -9750839.991 6 -7598058.022 5 22406819.821 22406818.412 22406819.082
+ 37.300 31.600
+ -2434213.519 3 -1896788.439 2 24096630.017 24096628.922 24096629.115
+ 21.600 15.100
+ -22767912.710 7 -17741222.729 8 20261415.436 20261412.231 20261414.339
+ 42.300 49.100
+ -14650592.599 7 -11416040.769 6 21751137.668 21751135.657 21751137.094
+ 45.900 38.900
+ -4448690.765 4 -3466508.609 3 23867499.039 23867496.292 23867498.160
+ 28.100 21.600
+ 06 1 2 10 33 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19178402.304 7 -14944208.801 6 21012182.665 21012177.105 21012181.408
+ 47.200 41.800
+ -5126770.505 4 -3994885.590 4 23643686.559 23643683.683 23643686.313
+ 26.800 24.200
+ -9003892.616 5 -7016022.318 4 22930615.005 22930612.845 22930613.811
+ 33.100 26.200
+ -9660334.319 6 -7527534.153 5 22424042.701 22424041.465 22424041.686
+ 36.900 32.000
+ -2545937.390 4 -1983845.976 3 24075369.696 24075369.379 24075368.975
+ 25.900 19.300
+ -22778002.818 7 -17749085.145 8 20259495.374 20259492.211 20259494.276
+ 42.500 49.200
+ -14596807.379 7 -11374130.207 6 21761372.819 21761370.519 21761372.170
+ 45.800 38.500
+ -4399960.995 4 -3428537.357 4 23876772.033 23876770.294 23876771.269
+ 29.900 25.300
+ 06 1 2 10 33 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19236382.482 7 -14989388.158 6 21001149.412 21001143.794 21001148.204
+ 47.200 41.700
+ -5228772.312 4 -4074367.511 3 23624276.620 23624273.274 23624276.182
+ 29.000 23.000
+ -8927772.932 5 -6956708.295 4 22945100.066 22945097.888 22945098.796
+ 33.400 26.800
+ -9569522.651 6 -7456771.847 5 22441323.835 22441322.213 22441322.820
+ 37.100 31.500
+ -2657614.376 4 -2070866.958 3 24054119.496 24054118.104 24054118.016
+ 27.400 19.300
+ -22787574.467 7 -17756543.572 8 20257673.837 20257670.808 20257672.786
+ 42.400 49.200
+ -14542811.486 7 -11332055.484 6 21771647.951 21771645.558 21771647.147
+ 45.700 38.300
+ -4350754.802 4 -3390194.895 3 23886135.840 23886133.370 23886135.162
+ 29.200 23.000
+ 06 1 2 10 34 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19293908.764 7 -15034213.830 6 20990202.539 20990196.906 20990201.249
+ 47.100 41.600
+ -5330606.499 4 -4153718.838 3 23604897.798 23604894.367 23604897.437
+ 27.600 20.500
+ -8851293.142 5 -6897113.681 4 22959653.410 22959651.677 22959652.281
+ 33.900 25.900
+ -9478406.519 6 -7385772.287 5 22458662.589 22458660.757 22458661.543
+ 36.800 31.300
+ -2769241.491 4 -2157849.120 2 24032877.322 24032875.268 24032875.831
+ 24.600 13.900
+ -22796628.024 7 -17763598.295 8 20255951.059 20255947.988 20255949.946
+ 42.700 49.200
+ -14488605.198 7 -11289816.820 6 21781963.055 21781960.752 21781962.319
+ 45.800 38.400
+ -4301073.488 4 -3351482.183 3 23895589.599 23895586.916 23895588.951
+ 29.900 21.600
+ 06 1 2 10 34 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19350979.153 7 -15078684.259 6 20979342.389 20979336.672 20979341.064
+ 46.900 41.700
+ -5432271.036 4 -4232937.966 3 23585551.116 23585549.136 23585550.767
+ 25.900 23.800
+ -8774456.320 5 -6837240.853 4 22974275.390 22974273.164 22974274.083
+ 33.800 27.100
+ -9386987.733 6 -7314536.916 5 22476058.803 22476057.667 22476057.635
+ 36.000 31.100
+ -2880815.917 4 -2244790.193 3 24011645.030 24011643.613 24011643.897
+ 25.900 18.600
+ -22805163.775 7 -17770249.524 8 20254326.752 20254323.652 20254325.673
+ 42.500 49.400
+ -14434188.809 7 -11247414.440 6 21792318.092 21792316.051 21792317.429
+ 45.600 38.600
+ -4250918.842 5 -3312400.651 3 23905134.258 23905131.192 23905133.449
+ 30.200 23.000
+ 06 1 2 10 35 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19407591.346 7 -15122797.654 6 20968569.326 20968563.770 20968568.049
+ 46.900 41.900
+ -5533763.370 4 -4312022.899 4 23566237.796 23566235.427 23566237.782
+ 27.100 24.200
+ -8697265.745 5 -6777092.382 4 22988964.185 22988962.120 22988963.084
+ 34.300 26.200
+ -9295267.916 6 -7243066.949 5 22493512.137 22493511.477 22493511.667
+ 36.800 31.800
+ -2992334.691 3 -2331687.899 3 23990422.978 23990422.381 23990422.264
+ 23.000 20.500
+ -22813182.524 7 -17776497.892 8 20252800.875 20252797.692 20252799.877
+ 42.800 49.200
+ -14379562.394 7 -11204848.408 6 21802713.114 21802710.929 21802712.490
+ 45.800 38.400
+ -4200292.201 4 -3272951.307 3 23914767.867 23914765.469 23914767.022
+ 29.200 22.600
+ 06 1 2 10 35 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19463743.190 7 -15166552.337 6 20957883.823 20957878.371 20957882.542
+ 46.700 41.900
+ -5635081.002 4 -4390971.674 4 23546958.449 23546955.291 23546958.109
+ 28.800 25.300
+ -8619723.976 5 -6716670.246 4 23003719.693 23003717.966 23003718.624
+ 33.900 26.800
+ -9203248.588 6 -7171363.624 5 22511022.818 22511022.199 22511022.108
+ 36.200 32.000
+ -3103795.093 4 -2418540.094 3 23969212.169 23969212.666 23969211.617
+ 24.600 23.800
+ -22820684.995 7 -17782343.967 8 20251373.423 20251369.988 20251372.241
+ 42.700 49.300
+ -14324726.411 7 -11162119.074 6 21813147.980 21813145.859 21813147.394
+ 45.700 38.200
+ -4149195.307 4 -3233135.543 3 23924490.641 23924488.282 23924489.929
+ 28.100 19.300
+ 06 1 2 10 36 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19519432.533 7 -15209946.628 7 20947286.717 20947281.123 20947285.370
+ 46.800 42.000
+ -5736221.327 4 -4469782.294 4 23527711.582 23527709.145 23527711.245
+ 28.100 25.300
+ -8541833.889 5 -6655976.698 4 23018541.965 23018539.981 23018540.600
+ 34.100 26.800
+ -9110931.463 6 -7099428.229 5 22528590.787 22528589.264 22528589.699
+ 36.200 31.300
+ -3215194.000 4 -2505344.404 4 23948013.526 23948014.195 23948013.333
+ 24.900 24.200
+ -22827671.441 7 -17787787.946 8 20250043.862 20250040.477 20250042.740
+ 42.700 49.200
+ -14269680.948 7 -11119226.503 6 21823622.614 21823620.837 21823622.071
+ 45.600 38.500
+ -4097629.658 4 -3192954.486 3 23934303.100 23934301.171 23934302.520
+ 27.400 21.600
+ 06 1 2 10 36 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19574657.169 7 -15252978.809 7 20936777.771 20936772.283 20936776.472
+ 46.900 42.100
+ -5837182.227 4 -4548453.121 4 23508500.090 23508496.812 23508499.715
+ 29.000 25.300
+ -8463598.850 5 -6595014.352 4 23033429.194 23033427.396 23033427.978
+ 33.400 25.300
+ -9018318.141 5 -7027262.032 5 22546214.333 22546213.176 22546213.289
+ 35.700 30.600
+ -3326528.614 4 -2592098.608 4 23926826.911 23926827.644 23926826.883
+ 24.900 24.200
+ -22834142.320 7 -17792830.181 8 20248812.407 20248809.048 20248811.321
+ 42.700 49.300
+ -14214426.379 7 -11076171.000 6 21834137.644 21834135.286 21834136.814
+ 45.600 38.100
+ -4045596.768 4 -3152409.423 3 23944204.508 23944203.472 23944203.783
+ 27.600 23.000
+ 06 1 2 10 37 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19629414.886 7 -15295647.158 7 20926357.560 20926352.158 20926356.396
+ 47.100 42.100
+ -5937961.334 4 -4626982.326 4 23489322.274 23489319.053 23489321.774
+ 29.700 24.600
+ -8385021.666 5 -6533785.389 4 23048381.956 23048380.010 23048380.822
+ 33.100 25.900
+ -8925410.124 5 -6954866.217 5 22563893.471 22563892.917 22563892.857
+ 35.300 30.600
+ -3437795.763 4 -2678800.240 4 23905652.921 23905654.427 23905652.693
+ 24.600 24.900
+ -22840098.379 7 -17797471.264 8 20247678.999 20247675.721 20247677.893
+ 42.800 49.300
+ -14158962.920 7 -11032952.723 6 21844691.794 21844689.677 21844691.201
+ 45.500 37.900
+ -3993098.224 4 -3111501.450 3 23954195.181 23954193.574 23954194.260
+ 29.000 23.400
+ 06 1 2 10 37 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19683703.386 7 -15337949.884 7 20916026.915 20916021.515 20916025.693
+ 47.200 42.200
+ -6038555.914 5 -4705367.700 3 23470180.124 23470176.570 23470179.603
+ 30.400 23.400
+ -8306105.250 5 -6472292.105 4 23063399.645 23063397.552 23063398.245
+ 33.400 26.200
+ -8832209.071 5 -6882242.052 5 22581628.645 22581628.909 22581628.601
+ 35.800 30.600
+ -3548992.803 4 -2765447.242 3 23884494.073 23884493.940 23884493.559
+ 26.200 21.100
+ -22845540.377 7 -17801711.783 8 20246643.476 20246640.195 20246642.354
+ 42.700 49.400
+ -14103290.859 7 -10989571.901 6 21855285.978 21855283.755 21855285.305
+ 45.300 38.100
+ -3940135.694 4 -3070231.932 3 23964273.019 23964272.056 23964272.576
+ 27.600 23.000
+ 06 1 2 10 38 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19737520.389 7 -15379885.209 7 20905786.231 20905780.430 20905784.900
+ 47.500 42.200
+ -6138963.817 4 -4783607.616 3 23451072.333 23451069.523 23451072.065
+ 27.600 23.800
+ -8226852.876 5 -6410537.038 4 23078480.544 23078479.050 23078479.486
+ 33.000 25.900
+ -8738716.641 5 -6809390.844 5 22599420.165 22599419.713 22599419.622
+ 35.500 30.400
+ -3660116.785 4 -2852037.363 3 23863348.835 23863348.159 23863347.517
+ 25.600 21.600
+ -22850469.163 7 -17805552.397 8 20245705.561 20245702.281 20245704.443
+ 42.900 49.400
+ -14047410.451 7 -10946028.724 6 21865919.780 21865917.343 21865919.083
+ 45.400 37.900
+ -3886710.685 4 -3028602.057 3 23974440.453 23974438.268 23974439.845
+ 29.700 23.400
+ 06 1 2 10 38 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19790863.751 7 -15421451.467 7 20895634.967 20895629.470 20895633.771
+ 47.400 42.200
+ -6239182.518 4 -4861700.119 4 23432001.049 23431998.507 23432000.817
+ 27.400 24.600
+ -8147267.418 5 -6348522.421 4 23093625.130 23093623.721 23093624.058
+ 33.600 26.200
+ -8644934.477 6 -6736313.851 5 22617266.926 22617265.797 22617266.233
+ 36.100 30.800
+ -3771164.835 3 -2938568.276 3 23842217.287 23842216.230 23842215.572
+ 23.400 21.600
+ -22854884.608 7 -17808992.998 8 20244865.342 20244862.057 20244864.273
+ 42.700 49.300
+ -13991321.906 7 -10902323.367 6 21876592.984 21876590.581 21876592.290
+ 45.300 37.800
+ -3832825.012 4 -2986613.252 4 23984694.078 23984692.678 23984693.401
+ 28.100 24.600
+ 06 1 2 10 39 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19843731.399 7 -15462647.038 7 20885574.431 20885569.187 20885573.251
+ 47.100 42.500
+ -6339209.507 4 -4939643.221 4 23412966.696 23412963.719 23412966.578
+ 29.500 24.200
+ -8067352.005 5 -6286250.697 4 23108833.042 23108830.835 23108831.701
+ 33.200 24.600
+ -8550864.338 5 -6663012.481 5 22635166.953 22635166.886 22635166.675
+ 35.100 30.200
+ -3882134.044 4 -3025037.776 3 23821100.924 23821099.355 23821098.803
+ 24.200 23.000
+ -22858787.628 7 -17812034.314 8 20244122.668 20244119.297 20244121.573
+ 42.900 49.400
+ -13935025.579 7 -10858456.104 6 21887305.877 21887303.624 21887305.075
+ 45.200 37.700
+ -3778480.053 4 -2944266.524 4 23995035.175 23995034.589 23995034.447
+ 27.900 24.600
+ 06 1 2 10 39 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19896121.144 7 -15503470.210 7 20875605.093 20875599.832 20875603.782
+ 47.000 42.700
+ -6439042.319 5 -5017435.023 4 23393969.538 23393966.578 23393969.040
+ 30.200 25.300
+ -7987109.704 5 -6223724.249 3 23124102.441 23124100.391 23124101.262
+ 33.800 23.800
+ -8456507.955 5 -6589488.046 5 22653122.212 22653122.173 22653122.170
+ 34.600 30.400
+ -3993021.086 4 -3111443.197 3 23799999.013 23799998.297 23799997.701
+ 27.600 23.000
+ -22862179.098 7 -17814677.015 8 20243477.179 20243473.919 20243476.082
+ 42.800 49.400
+ -13878521.645 7 -10814427.068 6 21898057.955 21898055.966 21898057.257
+ 44.900 37.800
+ -3723677.762 4 -2901563.469 3 24005464.029 24005462.457 24005463.317
+ 27.100 23.000
+ 06 1 2 10 40 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19948030.846 7 -15543919.326 7 20865727.130 20865721.754 20865725.921
+ 47.300 42.700
+ -6538678.385 4 -5095073.509 4 23375009.785 23375006.808 23375009.108
+ 29.700 26.500
+ -7906543.253 5 -6160945.229 3 23139433.774 23139431.625 23139432.432
+ 33.500 23.800
+ -8361866.886 5 -6515741.803 4 22671132.766 22671131.997 22671131.895
+ 34.500 29.700
+ -4103823.438 4 -3197782.682 3 23778913.733 23778913.013 23778912.449
+ 27.600 22.100
+ -22865059.824 7 -17816921.725 8 20242929.001 20242925.761 20242927.895
+ 42.800 49.600
+ -13821810.404 7 -10770236.495 6 21908849.948 21908847.571 21908849.112
+ 44.900 37.400
+ -3668419.715 4 -2858505.252 3 24015980.183 24015977.746 24015979.054
+ 27.900 23.400
+ 06 1 2 10 40 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -19999458.424 7 -15583992.764 7 20855940.816 20855935.316 20855939.522
+ 47.400 42.600
+ -6638115.619 4 -5172557.057 4 23356087.206 23356083.966 23356086.777
+ 28.100 25.900
+ -7825655.856 5 -6097916.111 4 23154826.087 23154824.202 23154824.854
+ 32.800 24.900
+ -8266942.841 5 -6441775.040 4 22689196.307 22689195.099 22689195.458
+ 35.100 28.800
+ -4214538.189 4 -3284053.909 3 23757845.489 23757844.440 23757844.561
+ 28.600 19.300
+ -22867430.202 7 -17818768.768 8 20242477.967 20242474.698 20242476.896
+ 42.900 49.600
+ -13764892.052 7 -10725884.530 6 21919680.858 21919678.869 21919680.214
+ 44.800 37.600
+ -3612707.607 4 -2815093.221 3 24026580.518 24026578.774 24026580.063
+ 27.100 19.300
+ 06 1 2 10 41 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20050401.548 7 -15623688.705 7 20846246.698 20846241.213 20846245.506
+ 47.500 42.500
+ -6737351.195 4 -5249883.478 4 23337203.145 23337199.999 23337202.645
+ 28.600 24.900
+ -7744450.811 5 -6034639.501 4 23170278.554 23170277.071 23170277.510
+ 31.300 24.900
+ -8171737.488 5 -6367589.079 4 22707312.925 22707312.572 22707312.458
+ 35.200 29.700
+ -4325162.335 4 -3370254.501 3 23736793.434 23736793.829 23736792.798
+ 24.900 18.600
+ -22869291.089 7 -17820218.810 8 20242123.819 20242120.572 20242122.780
+ 42.800 49.500
+ -13707766.907 7 -10681371.433 6 21930551.820 21930549.402 21930550.979
+ 44.700 37.300
+ -3556543.164 4 -2771328.701 3 24037269.099 24037266.944 24037268.160
+ 28.600 21.100
+ 06 1 2 10 41 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20100858.152 7 -15663005.542 7 20836645.139 20836639.623 20836643.857
+ 47.400 42.700
+ -6836382.815 5 -5327050.958 4 23318358.582 23318355.392 23318358.032
+ 30.100 26.500
+ -7662931.037 5 -5971117.645 4 23185791.699 23185789.730 23185790.334
+ 30.600 25.600
+ -8076252.604 5 -6293185.304 5 22725483.228 22725482.726 22725482.579
+ 33.900 30.200
+ -4435692.836 4 -3456382.184 2 23715760.428 23715759.493 23715759.974
+ 26.500 17.800
+ -22870643.188 7 -17821272.396 8 20241866.555 20241863.280 20241865.456
+ 42.800 49.500
+ -13650435.085 7 -10636697.286 6 21941461.765 21941459.178 21941461.023
+ 44.800 37.300
+ -3499928.184 4 -2727213.113 3 24048042.177 24048040.876 24048041.384
+ 28.100 22.100
+ 06 1 2 10 42 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20150826.195 7 -15701941.681 7 20827136.388 20827130.852 20827135.107
+ 47.300 42.700
+ -6935207.636 4 -5404057.330 4 23299552.280 23299549.495 23299551.924
+ 29.500 26.800
+ -7581099.473 5 -5907352.813 4 23201363.834 23201362.041 23201362.461
+ 32.600 24.900
+ -7980489.927 5 -6218565.065 5 22743706.448 22743705.724 22743705.532
+ 34.400 30.400
+ -4546126.935 4 -3542434.682 3 23694744.632 23694744.912 23694745.050
+ 26.200 19.900
+ -22871487.403 7 -17821930.221 8 20241705.957 20241702.630 20241704.888
+ 43.100 49.500
+ -13592897.094 7 -10591862.495 6 21952410.371 21952408.453 21952409.803
+ 44.700 37.200
+ -3442864.258 4 -2682747.720 3 24058900.808 24058899.176 24058900.117
+ 28.400 22.600
+ 06 1 2 10 42 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20200303.596 7 -15740495.500 7 20817721.197 20817715.735 20817719.987
+ 47.200 42.700
+ -7033823.923 5 -5480901.173 4 23280786.356 23280783.669 23280785.963
+ 30.400 26.800
+ -7498959.172 5 -5843347.415 4 23216994.885 23216992.737 23216993.642
+ 32.100 24.900
+ -7884451.184 5 -6143729.706 4 22761981.779 22761981.292 22761981.085
+ 33.500 29.500
+ -4656461.624 4 -3628409.721 3 23673749.250 23673749.311 23673749.112
+ 27.100 21.600
+ -22871824.306 7 -17822192.739 8 20241641.728 20241638.502 20241640.844
+ 43.200 49.400
+ -13535152.976 7 -10546867.087 6 21963398.588 21963396.838 21963398.075
+ 44.400 37.200
+ -3385353.044 4 -2637933.799 3 24069845.082 24069843.976 24069844.495
+ 27.100 23.400
+ 06 1 2 10 43 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20249288.264 7 -15778665.370 7 20808399.831 20808394.253 20808398.539
+ 47.300 43.000
+ -7132228.396 5 -5557579.986 4 23262060.652 23262057.429 23262060.219
+ 31.300 25.300
+ -7416513.322 5 -5779103.920 4 23232683.599 23232681.712 23232682.263
+ 32.000 24.600
+ -7788138.076 5 -6068680.553 4 22780309.856 22780309.003 22780309.150
+ 34.600 29.000
+ -4766693.871 4 -3714304.979 3 23652772.933 23652772.728 23652772.105
+ 26.200 23.000
+ -22871654.653 7 -17822060.546 8 20241673.986 20241670.734 20241672.991
+ 43.200 49.500
+ -13477203.062 7 -10501711.316 6 21974426.354 21974424.270 21974425.725
+ 44.500 37.200
+ -3327396.555 4 -2592772.914 3 24080874.250 24080872.002 24080873.322
+ 27.400 21.600
+ 06 1 2 10 43 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20297778.111 7 -15816449.667 7 20799172.760 20799167.128 20799171.455
+ 47.500 43.100
+ -7230418.866 5 -5634092.043 4 23243375.737 23243372.799 23243375.275
+ 31.300 25.600
+ -7333765.214 5 -5714624.906 4 23248430.032 23248428.219 23248428.824
+ 32.600 24.900
+ -7691552.401 5 -5993419.022 4 22798689.684 22798688.905 22798688.755
+ 34.000 29.200
+ -4876820.800 4 -3800118.105 4 23631818.020 23631816.431 23631816.475
+ 25.600 24.600
+ -22870979.116 7 -17821534.154 8 20241802.542 20241799.338 20241801.477
+ 43.100 49.500
+ -13419047.564 7 -10456395.348 6 21985493.180 21985490.968 21985492.415
+ 44.400 37.200
+ -3268996.448 4 -2547266.337 3 24091986.681 24091985.062 24091986.038
+ 27.600 21.100
+ 06 1 2 10 44 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20345770.938 7 -15853846.674 7 20790039.594 20790034.311 20790038.461
+ 47.300 43.100
+ -7328392.805 4 -5710435.384 4 23224732.015 23224728.930 23224731.323
+ 28.800 25.900
+ -7250717.617 5 -5649912.515 4 23264233.269 23264231.427 23264232.235
+ 32.400 24.600
+ -7594695.858 5 -5917946.420 4 22817120.693 22817120.020 22817120.010
+ 34.000 28.800
+ -4986839.380 4 -3885846.810 4 23610882.527 23610880.771 23610880.511
+ 26.200 25.300
+ -22869798.754 7 -17820614.392 8 20242027.316 20242023.944 20242026.134
+ 43.200 49.500
+ -13360686.800 7 -10410919.428 6 21996598.370 21996596.554 21996597.801
+ 44.300 36.900
+ -3210154.679 4 -2501415.583 3 24103185.443 24103182.619 24103184.239
+ 28.600 23.400
+ 06 1 2 10 44 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20393264.498 7 -15890854.642 7 20781001.940 20780996.457 20781000.687
+ 47.200 42.800
+ -7426147.679 5 -5786608.013 4 23206129.532 23206126.575 23206129.117
+ 31.300 26.200
+ -7167373.710 5 -5584969.218 3 23280093.730 23280091.199 23280092.250
+ 32.300 21.600
+ -7497570.323 5 -5842264.178 4 22835602.110 22835602.124 22835602.296
+ 33.600 27.900
+ -5096746.618 4 -3971488.744 4 23589967.174 23589965.838 23589965.571
+ 26.200 25.600
+ -22868114.387 7 -17819301.896 8 20242347.754 20242344.450 20242346.667
+ 43.100 49.400
+ -13302121.028 7 -10365283.765 6 22007743.209 22007741.264 22007742.618
+ 44.300 36.900
+ -3150872.648 4 -2455221.784 3 24114465.276 24114463.433 24114464.839
+ 27.400 22.100
+ 06 1 2 10 45 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20440257.308 7 -15927472.419 7 20772059.482 20772053.936 20772058.279
+ 47.100 42.900
+ -7523681.113 5 -5862608.094 4 23187569.483 23187566.755 23187569.303
+ 31.500 27.400
+ -7083736.559 5 -5519797.436 3 23296009.137 23296006.906 23296007.893
+ 31.600 23.800
+ -7400177.392 5 -5766373.632 4 22854135.562 22854135.753 22854135.397
+ 32.800 29.200
+ -5206539.709 4 -4057041.771 4 23569074.728 23569073.077 23569073.257
+ 28.800 26.800
+ -22865926.822 7 -17817597.294 8 20242764.100 20242760.688 20242762.957
+ 43.000 49.300
+ -13243350.398 7 -10319488.481 6 22018927.229 22018925.001 22018926.505
+ 44.300 36.700
+ -3091152.646 4 -2408686.715 3 24125830.051 24125827.787 24125829.249
+ 28.100 21.600
+ 06 1 2 10 45 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20486746.894 7 -15963698.070 7 20763212.886 20763207.349 20763211.589
+ 47.000 43.100
+ -7620990.347 5 -5938433.469 4 23169051.798 23169049.540 23169051.596
+ 30.200 27.100
+ -6999809.238 5 -5454399.542 4 23311979.831 23311978.065 23311978.620
+ 31.300 24.600
+ -7302518.868 5 -5690276.113 4 22872720.365 22872719.202 22872719.619
+ 33.900 27.400
+ -5316215.576 4 -4142503.399 4 23548203.786 23548201.830 23548201.973
+ 29.200 24.900
+ -22863236.874 7 -17815501.220 8 20243275.897 20243272.577 20243274.810
+ 43.000 49.400
+ -13184375.290 7 -10273533.855 6 22030149.494 22030147.623 22030149.071
+ 44.300 36.800
+ -3030996.190 4 -2361811.569 3 24137276.745 24137275.197 24137276.147
+ 26.800 22.600
+ 06 1 2 10 46 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20532731.424 7 -15999530.167 7 20754462.520 20754456.965 20754461.153
+ 47.200 43.600
+ -7718072.893 5 -6014082.177 4 23150577.758 23150575.138 23150577.587
+ 31.100 25.900
+ -6915594.810 5 -5388777.948 4 23328005.146 23328003.430 23328004.044
+ 30.600 24.200
+ -7204596.643 5 -5613973.088 4 22891354.228 22891353.243 22891353.432
+ 32.800 27.400
+ -5425771.361 4 -4227871.486 4 23527356.055 23527354.354 23527354.543
+ 27.600 24.600
+ -22860045.427 7 -17813014.377 8 20243883.212 20243879.888 20243882.076
+ 43.000 49.300
+ -13125195.873 7 -10227420.031 6 22041411.177 22041408.975 22041410.583
+ 44.400 36.500
+ -2970405.153 4 -2314597.783 3 24148806.470 24148805.338 24148806.230
+ 25.900 20.500
+ 06 1 2 10 46 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20578208.993 7 -16034967.228 7 20745807.992 20745802.765 20745806.841
+ 47.400 43.300
+ -7814926.174 5 -6089552.285 4 23132147.620 23132144.456 23132147.301
+ 32.100 26.500
+ -6831096.436 5 -5322935.100 4 23344085.112 23344083.096 23344083.693
+ 30.800 24.200
+ -7106412.356 5 -5537465.866 4 22910038.592 22910037.131 22910037.420
+ 33.000 28.800
+ -5535204.040 4 -4313143.658 3 23506531.255 23506529.344 23506529.856
+ 27.400 22.100
+ -22856353.575 7 -17810137.601 8 20244585.600 20244582.433 20244584.569
+ 43.200 49.400
+ -13065812.467 7 -10181147.253 6 22052711.511 22052709.179 22052710.810
+ 44.000 36.400
+ -2909381.543 4 -2267046.919 4 24160419.402 24160418.132 24160418.622
+ 24.900 24.200
+ 06 1 2 10 47 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20623177.283 7 -16070007.456 7 20737250.901 20737245.425 20737249.691
+ 47.300 43.100
+ -7911547.957 5 -6164841.984 4 23113760.934 23113758.183 23113760.528
+ 30.800 26.500
+ -6746317.380 5 -5256873.536 4 23360217.702 23360215.898 23360216.690
+ 31.000 24.600
+ -7007967.869 5 -5460755.892 4 22928772.737 22928770.442 22928771.170
+ 32.600 27.600
+ -5644510.557 4 -4398317.521 3 23485730.186 23485729.203 23485729.094
+ 27.600 23.400
+ -22852161.714 7 -17806871.210 8 20245383.569 20245380.087 20245382.404
+ 43.300 49.400
+ -13006225.381 7 -10134715.761 6 22064050.545 22064048.388 22064049.768
+ 44.000 36.400
+ -2847927.086 4 -2219160.346 3 24172114.104 24172112.439 24172113.247
+ 25.300 22.600
+ 06 1 2 10 47 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20667634.397 7 -16104649.363 7 20728790.990 20728785.463 20728789.767
+ 47.300 42.900
+ -8007935.749 5 -6239949.326 4 23095418.960 23095416.221 23095418.556
+ 31.800 27.400
+ -6661260.712 5 -5190595.636 3 23376403.560 23376401.725 23376402.240
+ 30.100 23.800
+ -6909264.969 5 -5383844.563 4 22947555.155 22947553.553 22947553.784
+ 32.700 28.800
+ -5753687.852 4 -4483390.706 4 23464954.452 23464953.681 23464953.372
+ 29.000 25.300
+ -22847470.979 7 -17803216.090 8 20246275.951 20246272.731 20246274.905
+ 43.200 49.400
+ -12946434.741 7 -10088125.655 6 22075428.168 22075426.255 22075427.573
+ 44.000 36.500
+ -2786043.792 4 -2170939.587 3 24183890.525 24183888.150 24183889.759
+ 28.600 22.100
+ 06 1 2 10 48 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20711578.610 7 -16138891.609 7 20720428.697 20720423.223 20720427.503
+ 47.300 43.400
+ -8104086.454 5 -6314871.962 4 23077122.062 23077119.352 23077121.807
+ 33.500 27.100
+ -6575929.612 4 -5124103.896 3 23392641.025 23392639.671 23392639.865
+ 29.000 23.000
+ -6810305.347 5 -5306733.191 4 22966385.471 22966384.240 22966384.633
+ 33.200 25.900
+ -5862733.173 4 -4568361.049 3 23444204.121 23444202.498 23444202.976
+ 29.900 21.600
+ -22842282.445 7 -17799173.074 8 20247263.507 20247260.057 20247262.345
+ 43.300 49.400
+ -12886440.783 7 -10041377.123 6 22086844.205 22086842.465 22086843.912
+ 43.800 36.200
+ -2723733.390 4 -2122386.042 3 24195747.923 24195745.671 24195746.689
+ 26.800 23.400
+ 06 1 2 10 48 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20755007.758 7 -16172732.501 7 20712164.446 20712159.072 20712163.248
+ 47.100 43.500
+ -8199997.715 5 -6389608.026 4 23058870.032 23058867.730 23058870.127
+ 32.400 27.100
+ -6490327.160 5 -5057400.705 3 23408931.379 23408929.357 23408930.077
+ 30.800 22.100
+ -6711090.958 5 -5229423.283 4 22985264.748 22985264.636 22985264.888
+ 33.000 27.400
+ -5971643.582 4 -4653226.235 3 23423478.626 23423477.484 23423477.641
+ 28.600 23.000
+ -22836596.886 7 -17794742.769 8 20248345.254 20248342.023 20248344.194
+ 43.300 49.400
+ -12826243.827 7 -9994470.412 6 22098299.490 22098297.720 22098299.017
+ 43.700 36.500
+ -2660997.837 4 -2073501.209 3 24207685.927 24207683.388 24207685.175
+ 29.200 22.100
+ 06 1 2 10 49 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20797920.012 7 -16206170.619 7 20703998.578 20703993.208 20703997.324
+ 47.300 43.700
+ -8295667.203 5 -6464155.662 4 23040665.490 23040662.416 23040665.262
+ 32.000 26.800
+ -6404456.289 4 -4990488.347 3 23425271.891 23425269.733 23425270.627
+ 29.700 21.100
+ -6611623.560 5 -5151916.231 4 23004192.099 23004192.929 23004192.427
+ 31.600 28.800
+ -6080415.776 4 -4737983.771 4 23402779.721 23402779.275 23402778.819
+ 26.500 24.200
+ -22830415.505 7 -17789926.105 8 20249521.567 20249518.366 20249520.465
+ 43.400 49.400
+ -12765844.239 7 -9947405.802 6 22109793.474 22109791.452 22109792.880
+ 43.800 36.400
+ -2597839.084 4 -2024286.586 2 24219704.630 24219701.719 24219703.778
+ 28.400 17.800
+ 06 1 2 10 49 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20840313.183 7 -16239204.260 7 20695931.341 20695925.988 20695930.138
+ 47.200 43.500
+ -8391092.354 5 -6538512.913 4 23022506.218 23022504.143 23022506.227
+ 32.300 28.800
+ -6318320.441 4 -4923369.537 3 23441662.452 23441661.130 23441661.373
+ 29.000 21.100
+ -6511904.889 5 -5074213.422 4 23023168.783 23023168.247 23023168.207
+ 31.800 27.400
+ -6189047.166 4 -4822631.572 3 23382108.885 23382107.008 23382107.387
+ 27.600 23.000
+ -22823738.991 7 -17784723.625 8 20250792.111 20250788.845 20250790.975
+ 43.500 49.500
+ -12705242.096 7 -9900183.359 6 22121325.843 22121323.680 22121325.114
+ 43.600 36.500
+ -2534259.078 3 -1974743.713 3 24231803.302 24231801.716 24231802.366
+ 23.400 18.600
+ 06 1 2 10 50 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20882185.507 7 -16271832.044 7 20687963.246 20687958.041 20687962.020
+ 47.100 43.800
+ -8486270.367 5 -6612677.608 4 23004394.807 23004392.035 23004394.542
+ 33.400 28.400
+ -6231922.356 4 -4856046.376 2 23458103.574 23458101.375 23458102.267
+ 27.900 15.100
+ -6411936.824 5 -4996316.229 4 23042192.284 23042191.616 23042191.414
+ 31.000 27.600
+ -6297534.360 4 -4907166.974 4 23361464.640 23361463.144 23361463.125
+ 28.800 25.900
+ -22816568.740 7 -17779136.412 8 20252156.567 20252153.213 20252155.480
+ 43.500 49.300
+ -12644437.703 7 -9852803.315 6 22132896.587 22132894.399 22132895.904
+ 44.000 36.500
+ -2470259.781 4 -1924874.121 3 24243981.304 24243980.200 24243980.687
+ 25.300 21.600
+ 06 1 2 10 50 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20923535.447 7 -16304052.772 7 20680094.690 20680089.311 20680093.420
+ 47.100 43.800
+ -8581198.679 5 -6686647.718 4 22986330.563 22986327.770 22986330.201
+ 32.400 28.400
+ -6145265.167 4 -4788521.312 3 23474593.868 23474591.984 23474592.890
+ 27.600 18.600
+ -6311721.126 5 -4918226.107 4 23061263.899 23061262.404 23061262.434
+ 32.300 27.600
+ -6405874.422 5 -4991587.795 4 23340848.058 23340846.699 23340846.683
+ 30.600 26.800
+ -22808904.993 7 -17773164.651 8 20253614.909 20253611.569 20253613.864
+ 43.500 49.300
+ -12583431.380 7 -9805265.930 6 22144505.537 22144503.525 22144505.059
+ 43.900 36.100
+ -2405842.936 4 -1874679.179 3 24256240.466 24256238.332 24256239.472
+ 27.600 21.600
+ 06 1 2 10 51 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -20964360.435 7 -16335864.451 7 20672325.880 20672320.648 20672324.642
+ 47.100 44.000
+ -8675874.647 5 -6760421.196 4 22968315.193 22968311.350 22968314.630
+ 33.800 27.900
+ -6058352.189 4 -4720796.939 2 23491132.893 23491130.944 23491131.781
+ 29.200 17.800
+ -6211259.745 5 -4839944.534 4 23080381.071 23080379.443 23080379.540
+ 31.600 27.600
+ -6514064.396 5 -5075891.633 4 23320260.394 23320258.468 23320258.796
+ 31.100 24.600
+ -22800749.280 7 -17766809.541 8 20255166.940 20255163.543 20255165.841
+ 43.500 49.300
+ -12522223.257 7 -9757571.297 6 22156153.250 22156150.980 22156152.524
+ 43.600 36.100
+ -2341010.789 4 -1824160.633 3 24268576.918 24268575.193 24268575.932
+ 26.500 21.100
+ 06 1 2 10 51 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21004658.760 7 -16367265.738 7 20664657.460 20664652.066 20664656.182
+ 47.100 43.900
+ -8770296.182 5 -6833996.424 4 22950347.143 22950343.577 22950346.483
+ 33.900 28.100
+ -5971186.666 5 -4652875.763 3 23507720.406 23507718.139 23507719.134
+ 30.600 19.300
+ -6110554.470 5 -4761472.927 4 23099543.721 23099542.756 23099542.879
+ 30.600 27.100
+ -6622101.341 4 -5160076.227 4 23299701.140 23299699.881 23299700.029
+ 29.900 25.600
+ -22792102.656 7 -17760071.906 8 20256812.380 20256808.912 20256811.322
+ 43.700 49.200
+ -12460813.770 7 -9709719.750 6 22167839.412 22167837.015 22167838.509
+ 43.400 36.600
+ -2275765.117 4 -1773319.856 3 24280992.689 24280991.359 24280992.095
+ 26.500 22.100
+ 06 1 2 10 52 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21044428.914 7 -16398255.466 7 20657089.473 20657084.062 20657088.220
+ 47.000 43.800
+ -8864460.285 5 -6907371.032 4 22932427.318 22932424.940 22932427.256
+ 32.700 27.900
+ -5883771.868 5 -4584760.353 3 23524355.104 23524352.890 23524353.897
+ 30.100 19.300
+ -6009607.147 5 -4682812.702 4 23118752.810 23118752.513 23118752.406
+ 30.600 26.800
+ -6729982.585 5 -5244139.518 4 23279172.484 23279170.422 23279170.806
+ 30.400 25.900
+ -22782966.003 7 -17752952.429 8 20258551.123 20258547.571 20258549.995
+ 43.700 49.300
+ -12399203.085 7 -9661711.437 6 22179563.459 22179561.186 22179562.548
+ 43.500 36.600
+ -2210107.923 4 -1722158.398 2 24293486.977 24293485.657 24293485.963
+ 26.500 17.800
+ 06 1 2 10 52 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21083668.751 7 -16428831.961 7 20649622.563 20649617.085 20649621.241
+ 47.300 43.900
+ -8958364.236 5 -6980542.958 4 22914558.536 22914555.408 22914558.175
+ 33.500 28.400
+ -5796110.742 5 -4516453.007 3 23541036.428 23541034.575 23541035.309
+ 31.000 21.600
+ -5908419.674 5 -4603965.344 4 23138007.465 23138007.838 23138007.395
+ 30.200 25.900
+ -6837704.777 4 -5328078.848 4 23258674.290 23258671.614 23258672.313
+ 28.800 26.500
+ -22773340.386 7 -17745451.946 8 20260382.684 20260379.234 20260381.555
+ 43.700 49.400
+ -12337391.445 7 -9613546.527 5 22191325.306 22191323.340 22191324.678
+ 43.100 35.800
+ -2144041.177 4 -1670677.833 3 24306058.721 24306057.159 24306058.191
+ 26.200 19.900
+ 06 1 2 10 53 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21122376.658 7 -16458993.964 7 20642256.709 20642251.151 20642255.446
+ 47.500 44.100
+ -9052005.934 5 -7053510.514 5 22896739.377 22896736.265 22896738.836
+ 33.000 30.100
+ -5708206.160 5 -4447955.963 3 23557764.180 23557762.138 23557762.794
+ 31.100 23.400
+ -5806993.978 5 -4524932.356 4 23157309.647 23157308.560 23157308.679
+ 31.500 26.500
+ -6945264.953 4 -5411891.915 4 23238205.836 23238203.707 23238203.849
+ 27.900 27.900
+ -22763226.988 7 -17737571.370 8 20262307.089 20262303.761 20262306.010
+ 43.700 49.300
+ -12275379.148 7 -9565225.265 5 22203126.092 22203123.777 22203125.282
+ 43.100 35.500
+ -2077566.993 4 -1618879.726 3 24318709.018 24318706.625 24318708.113
+ 26.500 18.600
+ 06 1 2 10 53 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21160550.609 7 -16488739.902 7 20634992.405 20634986.944 20634991.169
+ 47.400 44.100
+ -9145382.427 5 -7126271.412 4 22878969.551 22878967.313 22878969.451
+ 32.700 29.700
+ -5620061.465 5 -4379271.816 4 23574537.570 23574535.745 23574536.220
+ 30.100 24.200
+ -5705331.998 5 -4445715.256 4 23176655.637 23176653.977 23176654.604
+ 31.600 26.500
+ -7052660.048 4 -5495576.361 4 23217768.363 23217766.964 23217767.038
+ 29.000 26.800
+ -22752626.821 7 -17729311.495 8 20264324.123 20264320.936 20264323.052
+ 43.600 49.200
+ -12213166.476 7 -9516747.864 5 22214964.621 22214962.578 22214963.884
+ 42.900 35.600
+ -2010687.351 4 -1566765.752 3 24331434.943 24331433.651 24331434.068
+ 25.300 19.900
+ 06 1 2 10 54 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21198188.911 7 -16518068.447 7 20627829.865 20627824.469 20627828.685
+ 47.300 44.100
+ -9238491.272 5 -7198823.743 4 22861252.101 22861249.234 22861251.749
+ 33.000 28.800
+ -5531679.944 5 -4310403.131 3 23591355.846 23591354.097 23591354.861
+ 30.800 23.400
+ -5603435.592 5 -4366315.475 4 23196045.969 23196044.535 23196044.877
+ 31.300 26.200
+ -7159887.036 5 -5579129.825 4 23197364.263 23197362.312 23197362.656
+ 30.800 25.900
+ -22741540.993 7 -17720673.186 8 20266433.813 20266430.506 20266432.686
+ 43.400 49.200
+ -12150753.693 7 -9468114.537 5 22226841.163 22226839.391 22226840.650
+ 42.700 35.200
+ -1943404.250 4 -1514337.334 3 24344238.817 24344236.977 24344238.110
+ 27.100 18.600
+ 06 1 2 10 54 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21235289.761 7 -16546978.199 7 20620769.952 20620764.542 20620768.650
+ 47.000 44.200
+ -9331329.737 5 -7271165.410 4 22843585.679 22843582.705 22843585.293
+ 33.900 29.000
+ -5443064.806 5 -4241352.391 3 23608218.997 23608216.828 23608217.775
+ 30.400 23.400
+ -5501306.602 5 -4286734.461 4 23215480.062 23215479.029 23215479.109
+ 31.000 25.600
+ -7266942.922 5 -5662549.959 4 23176991.332 23176990.274 23176990.119
+ 31.500 26.500
+ -22729970.516 7 -17711657.226 8 20268635.532 20268632.309 20268634.398
+ 43.400 49.300
+ -12088140.911 7 -9419325.370 5 22238756.376 22238754.149 22238755.702
+ 42.800 35.200
+ -1875719.623 4 -1461596.060 3 24357118.798 24357117.632 24357118.217
+ 25.600 22.600
+ 06 1 2 10 55 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21271851.498 7 -16575467.865 7 20613812.512 20613806.971 20613811.149
+ 47.000 44.200
+ -9423895.403 5 -7343294.498 4 22825970.661 22825968.281 22825970.399
+ 33.500 29.500
+ -5354219.139 4 -4172122.005 3 23625125.459 23625124.025 23625124.364
+ 28.800 23.800
+ -5398946.993 4 -4206973.769 4 23234958.115 23234957.773 23234957.344
+ 29.200 26.800
+ -7373824.841 5 -5745834.519 4 23156652.458 23156651.234 23156651.056
+ 30.400 26.200
+ -22717916.661 7 -17702264.609 8 20270929.304 20270926.116 20270928.250
+ 43.400 49.300
+ -12025328.521 7 -9370380.655 5 22250709.339 22250706.885 22250708.468
+ 42.500 34.900
+ -1807635.660 4 -1408543.645 3 24370074.617 24370073.175 24370074.108
+ 26.200 20.500
+ 06 1 2 10 55 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21307872.152 7 -16603535.902 7 20606957.914 20606952.522 20606956.638
+ 47.100 44.100
+ -9516185.402 5 -7415208.779 5 22808408.433 22808405.957 22808408.321
+ 34.900 30.800
+ -5265146.193 4 -4102714.539 4 23642075.276 23642073.985 23642074.103
+ 25.900 24.600
+ -5296358.729 5 -4127034.903 4 23254479.181 23254479.430 23254479.514
+ 30.200 26.500
+ -7480529.759 5 -5828981.173 4 23136347.825 23136345.699 23136346.256
+ 31.100 25.600
+ -22705380.262 7 -17692495.983 8 20273314.859 20273311.737 20273313.783
+ 43.400 49.200
+ -11962316.783 7 -9321280.600 5 22262699.820 22262697.509 22262699.078
+ 42.400 34.800
+ -1739154.376 4 -1355181.610 3 24383106.856 24383105.046 24383106.159
+ 26.200 20.500
+ 06 1 2 10 56 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21343349.946 7 -16631180.938 7 20600206.581 20600201.275 20600205.350
+ 47.000 44.100
+ -9608197.261 5 -7486906.320 4 22790899.791 22790896.589 22790899.402
+ 35.300 29.500
+ -5175848.763 4 -4033132.185 3 23659068.152 23659066.572 23659066.825
+ 25.900 23.400
+ -5193543.667 4 -4046919.296 4 23274044.405 23274044.531 23274044.329
+ 29.900 25.600
+ -7587054.458 5 -5911987.401 4 23116076.875 23116075.089 23116075.119
+ 30.800 27.400
+ -22692362.820 7 -17682352.521 8 20275791.798 20275788.824 20275790.741
+ 43.400 49.200
+ -11899105.925 7 -9272025.397 5 22274728.068 22274726.258 22274727.687
+ 42.300 34.600
+ -1670277.861 3 -1301511.587 3 24396213.602 24396211.506 24396212.646
+ 23.400 21.600
+ 06 1 2 10 56 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21378283.220 7 -16658401.669 7 20593559.074 20593553.533 20593557.885
+ 47.100 44.300
+ -9699928.297 5 -7558385.075 4 22773443.506 22773440.648 22773443.283
+ 35.100 29.200
+ -5086330.063 4 -3963377.381 3 23676102.757 23676101.547 23676101.751
+ 27.600 23.000
+ -5090503.616 5 -3966628.381 4 23293653.397 23293652.157 23293652.418
+ 30.600 24.600
+ -7693396.008 5 -5994850.876 4 23095840.273 23095838.871 23095838.509
+ 31.300 27.400
+ -22678865.377 7 -17671835.031 8 20278360.544 20278357.272 20278359.402
+ 43.400 49.200
+ -11835696.239 7 -9222615.275 5 22286794.877 22286792.820 22286794.195
+ 42.300 34.900
+ -1601008.005 3 -1247535.089 2 24409394.690 24409392.773 24409393.652
+ 23.400 17.800
+ 06 1 2 10 57 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21412670.272 7 -16685196.770 7 20587015.510 20587010.045 20587014.218
+ 47.000 44.400
+ -9791376.108 5 -7629643.101 4 22756041.570 22756038.783 22756041.251
+ 35.100 29.900
+ -4996593.455 4 -3893452.776 3 23693179.642 23693177.647 23693178.213
+ 29.000 19.900
+ -4987240.466 5 -3886163.621 4 23313303.773 23313302.590 23313302.915
+ 30.100 24.900
+ -7799551.518 5 -6077569.404 4 23075638.807 23075637.500 23075637.812
+ 31.800 26.200
+ -22664888.736 7 -17660944.144 8 20281020.124 20281016.883 20281019.058
+ 43.500 49.100
+ -11772087.933 7 -9173050.368 5 22298899.065 22298896.719 22298898.427
+ 42.200 34.300
+ -1531347.170 3 -1193253.901 2 24422650.273 24422649.021 24422649.410
+ 22.600 13.900
+ 06 1 2 10 57 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21446509.525 7 -16711565.022 7 20580576.025 20580570.669 20580574.721
+ 47.000 44.400
+ -9882537.785 5 -7700678.182 4 22738694.295 22738691.299 22738693.924
+ 35.700 29.000
+ -4906641.979 4 -3823360.747 2 23710296.923 23710294.957 23710295.686
+ 29.200 17.800
+ -4883756.190 4 -3805526.552 4 23332995.909 23332994.943 23332994.968
+ 29.500 24.600
+ -7905517.812 4 -6160140.481 4 23055474.119 23055473.343 23055472.959
+ 29.200 27.600
+ -22650434.495 7 -17649681.100 8 20283770.616 20283767.434 20283769.569
+ 43.500 49.100
+ -11708281.354 7 -9123330.956 5 22311040.765 22311038.823 22311040.383
+ 42.000 34.600
+ -1461297.334 4 -1138669.606 2 24435981.182 24435979.770 24435980.178
+ 24.600 17.000
+ 06 1 2 10 58 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21479799.034 7 -16737504.898 7 20574241.107 20574235.971 20574239.879
+ 46.900 44.600
+ -9973410.944 5 -7771488.433 4 22721400.962 22721398.757 22721400.781
+ 34.400 29.900
+ -4816478.988 4 -3753103.881 2 23727454.217 23727452.176 23727452.876
+ 28.600 16.100
+ -4780052.671 4 -3724718.645 4 23352729.928 23352729.359 23352729.065
+ 29.700 24.900
+ -8011291.894 5 -6242561.787 4 23035345.723 23035344.987 23035344.899
+ 31.300 27.600
+ -22635503.731 7 -17638046.738 8 20286611.988 20286608.747 20286610.855
+ 43.700 49.100
+ -11644276.736 7 -9073457.234 5 22323221.170 22323218.661 22323220.282
+ 42.200 34.700
+ -1390860.643 4 -1083783.864 3 24449384.935 24449382.643 24449384.228
+ 26.800 19.900
+ 06 1 2 10 58 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21512537.333 7 -16763015.261 7 20568011.368 20568006.037 20568010.117
+ 46.900 44.600
+ -10063993.069 5 -7842071.901 5 22704164.481 22704161.592 22704163.897
+ 34.700 30.800
+ -4726107.331 4 -3682684.404 2 23744651.250 23744649.200 23744650.290
+ 27.600 17.000
+ -4676131.750 4 -3643741.323 3 23372505.343 23372504.678 23372504.611
+ 29.500 23.000
+ -8116870.754 5 -6324830.974 4 23015255.031 23015253.975 23015253.948
+ 32.000 26.800
+ -22620097.557 7 -17626041.926 8 20289543.587 20289540.517 20289542.534
+ 43.900 49.100
+ -11580074.255 7 -9023429.344 5 22335438.092 22335436.023 22335437.462
+ 42.200 34.600
+ -1320039.017 4 -1028598.164 3 24462861.248 24462859.917 24462860.737
+ 25.300 19.900
+ 06 1 2 10 59 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21544722.751 7 -16788094.807 7 20561886.632 20561881.265 20561885.316
+ 46.600 44.500
+ -10154281.153 5 -7912426.244 5 22686983.368 22686980.577 22686983.035
+ 35.900 32.000
+ -4635530.276 4 -3612104.908 2 23761887.199 23761885.120 23761885.789
+ 24.200 16.100
+ -4571995.403 4 -3562596.146 4 23392321.347 23392321.508 23392321.025
+ 28.600 24.600
+ -8222251.467 5 -6406945.773 4 22995201.246 22995200.523 22995200.661
+ 33.100 26.800
+ -22604217.431 7 -17613667.798 8 20292565.564 20292562.346 20292564.489
+ 44.000 49.100
+ -11515674.304 7 -8973247.575 5 22347692.795 22347690.975 22347692.291
+ 42.000 34.400
+ -1248834.746 4 -973114.338 3 24476411.104 24476409.677 24476410.483
+ 26.200 21.100
+ 06 1 2 10 59 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21576353.823 7 -16812742.394 7 20555867.542 20555862.159 20555866.261
+ 46.700 44.400
+ -10244272.826 5 -7982549.624 5 22669858.328 22669855.285 22669857.908
+ 35.500 31.100
+ -4544751.098 4 -3541367.918 2 23779162.011 23779160.131 23779160.870
+ 26.800 16.100
+ -4467645.735 4 -3481284.719 4 23412178.499 23412178.475 23412178.073
+ 28.600 25.600
+ -8327431.148 5 -6488903.946 4 22975186.289 22975185.514 22975185.713
+ 33.400 27.600
+ -22587864.423 7 -17600925.194 8 20295677.488 20295674.146 20295676.445
+ 44.000 49.000
+ -11451077.108 6 -8922912.108 5 22359985.724 22359983.497 22359984.824
+ 41.600 34.800
+ -1177249.874 4 -917333.929 3 24490033.327 24490031.423 24490032.485
+ 25.900 19.300
+ 06 1 2 11 0 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21607428.720 7 -16836956.599 7 20549954.113 20549948.697 20549952.826
+ 46.800 44.400
+ -10333965.294 5 -8052439.846 5 22652789.884 22652787.469 22652789.586
+ 34.600 31.100
+ -4453773.151 4 -3470476.010 3 23796474.928 23796472.915 23796473.743
+ 28.600 19.300
+ -4363084.675 4 -3399808.607 4 23432076.367 23432075.774 23432075.639
+ 29.200 24.900
+ -8432406.669 5 -6570703.009 4 22955209.317 22955209.513 22955208.947
+ 31.300 28.100
+ -22571039.501 7 -17587814.863 8 20298878.872 20298875.812 20298877.858
+ 43.900 49.000
+ -11386283.011 6 -8872423.195 5 22372315.419 22372313.143 22372314.697
+ 41.600 33.800
+ -1105286.681 4 -861258.679 3 24503726.639 24503726.195 24503726.084
+ 25.600 19.300
+ 06 1 2 11 0 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21637945.943 7 -16860736.256 7 20544146.948 20544141.456 20544145.662
+ 47.000 44.500
+ -10423356.060 5 -8122094.993 5 22635779.589 22635776.770 22635779.263
+ 35.600 30.600
+ -4362599.325 4 -3399431.498 3 23813824.844 23813823.192 23813823.606
+ 29.200 21.600
+ -4258314.207 4 -3318169.297 4 23452013.852 23452013.322 23452012.912
+ 29.900 25.900
+ -8537175.023 5 -6652340.608 4 22935273.491 22935272.345 22935272.478
+ 31.000 26.500
+ -22553744.335 7 -17574338.106 8 20302170.041 20302166.935 20302168.978
+ 43.900 48.800
+ -11321292.188 6 -8821781.011 5 22384682.226 22384680.987 22384681.823
+ 41.300 34.800
+ -1032947.143 4 -804890.203 3 24517493.457 24517491.379 24517492.593
+ 24.200 19.900
+ 06 1 2 11 1 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21667903.914 7 -16884080.126 7 20538446.242 20538440.631 20538444.951
+ 47.000 44.500
+ -10512442.409 5 -8191512.912 5 22618826.900 22618824.469 22618826.704
+ 34.900 31.600
+ -4271232.623 4 -3328236.691 3 23831211.176 23831209.728 23831209.990
+ 28.400 21.600
+ -4153336.195 4 -3236368.270 4 23471990.818 23471989.656 23471989.831
+ 29.000 25.300
+ -8641732.903 5 -6733814.247 4 22915377.463 22915375.899 22915376.239
+ 32.400 28.100
+ -22535979.862 7 -17560495.655 8 20305550.673 20305547.415 20305549.593
+ 44.000 48.900
+ -11256104.852 6 -8770985.702 5 22397087.424 22397085.727 22397086.699
+ 41.300 34.600
+ -960233.350 4 -748230.135 3 24531330.753 24531328.160 24531329.779
+ 25.600 19.900
+ 06 1 2 11 1 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21697300.922 7 -16906986.889 7 20532852.161 20532846.572 20532850.880
+ 47.200 44.600
+ -10601221.724 6 -8260691.589 5 22601932.939 22601930.161 22601932.782
+ 36.100 31.800
+ -4179676.666 4 -3256894.399 3 23848633.969 23848632.133 23848632.792
+ 27.100 21.100
+ -4048152.380 4 -3154406.905 4 23492005.417 23492006.020 23492005.059
+ 26.500 24.600
+ -8746077.554 5 -6815121.722 4 22895520.885 22895519.644 22895519.861
+ 33.200 27.900
+ -22517747.555 7 -17546288.659 8 20309020.163 20309016.934 20309019.117
+ 43.900 48.800
+ -11190721.338 6 -8720037.520 5 22409529.961 22409527.550 22409528.952
+ 41.200 34.400
+ -887147.722 4 -691280.282 3 24545238.245 24545236.129 24545237.267
+ 25.900 19.900
+ 06 1 2 11 2 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21726135.656 7 -16929455.517 7 20527365.046 20527359.551 20527363.862
+ 47.200 44.500
+ -10689691.669 6 -8329629.216 5 22585097.922 22585094.879 22585097.639
+ 37.300 31.600
+ -4087934.281 4 -3185406.836 3 23866091.784 23866090.565 23866090.545
+ 28.100 22.600
+ -3942764.954 4 -3072286.858 3 23512061.075 23512059.895 23512060.294
+ 29.500 23.400
+ -8850206.106 5 -6896260.821 4 22875706.699 22875704.663 22875705.056
+ 33.200 28.600
+ -22499048.590 7 -17531718.034 8 20312578.488 20312575.248 20312577.381
+ 43.900 48.900
+ -11125142.049 6 -8668936.780 5 22422008.577 22422006.505 22422008.125
+ 41.100 33.200
+ -813692.346 3 -634042.311 3 24559215.388 24559214.609 24559214.859
+ 23.800 19.300
+ 06 1 2 11 2 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21754406.216 7 -16951484.523 7 20521985.579 20521979.853 20521984.216
+ 47.100 44.600
+ -10777849.223 6 -8398323.419 5 22568321.922 22568319.304 22568321.635
+ 36.500 32.100
+ -3996008.488 4 -3113776.395 3 23883584.808 23883583.282 23883583.495
+ 26.200 22.600
+ -3837175.808 4 -2990009.612 3 23532154.780 23532152.997 23532153.344
+ 29.700 23.800
+ -8954115.112 5 -6977228.848 4 22855933.718 22855931.315 22855931.945
+ 32.300 28.400
+ -22479884.326 7 -17516784.838 8 20316225.378 20316222.079 20316224.261
+ 44.100 48.800
+ -11059367.152 6 -8617683.623 5 22434525.682 22434523.579 22434524.927
+ 41.400 34.100
+ -739869.252 3 -576517.835 3 24573264.053 24573262.961 24573263.220
+ 22.600 19.300
+ 06 1 2 11 3 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21782111.414 7 -16973072.991 7 20516713.117 20516707.764 20516711.915
+ 47.000 44.600
+ -10865691.849 6 -8466772.202 5 22551606.199 22551603.299 22551605.896
+ 37.100 32.300
+ -3903902.620 4 -3042005.602 3 23901111.411 23901110.170 23901110.331
+ 24.600 21.100
+ -3731386.971 4 -2907576.796 3 23552285.019 23552283.939 23552283.804
+ 28.400 23.800
+ -9057801.935 5 -7058023.744 4 22836201.460 22836200.308 22836200.331
+ 32.100 27.900
+ -22460256.015 7 -17501490.046 8 20319960.517 20319957.214 20319959.427
+ 44.100 48.800
+ -10993396.899 6 -8566278.248 5 22447079.626 22447077.384 22447078.847
+ 41.400 34.100
+ -665680.776 3 -518708.619 2 24587381.522 24587379.535 24587380.620
+ 23.400 17.000
+ 06 1 2 11 3 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21809249.856 7 -16994219.831 7 20511548.949 20511543.440 20511547.698
+ 47.100 44.700
+ -10953216.934 6 -8534973.572 5 22534950.615 22534947.733 22534950.373
+ 36.400 31.600
+ -3811619.969 4 -2970097.050 3 23918672.998 23918670.852 23918671.638
+ 25.300 19.300
+ -3625400.433 4 -2824989.905 3 23572452.447 23572452.349 23572452.346
+ 28.600 22.600
+ -9161263.408 5 -7138643.051 4 22816512.986 22816512.316 22816512.317
+ 33.500 27.900
+ -22440164.846 7 -17485834.587 8 20323783.715 20323780.481 20323782.615
+ 44.100 48.700
+ -10927231.599 6 -8514720.876 5 22459670.252 22459667.908 22459669.579
+ 41.100 33.800
+ -591129.030 4 -460616.301 3 24601568.569 24601566.483 24601568.236
+ 25.600 18.600
+ 06 1 2 11 4 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21835819.881 7 -17014923.745 7 20506492.712 20506487.389 20506491.517
+ 47.000 44.900
+ -11040421.576 5 -8602925.228 5 22518356.267 22518353.046 22518355.759
+ 35.700 31.500
+ -3719163.681 4 -2898053.223 3 23936265.996 23936264.791 23936265.176
+ 26.500 21.100
+ -3519218.313 4 -2742250.614 3 23592659.224 23592658.643 23592658.315
+ 26.800 23.800
+ -9264496.571 5 -7219084.442 4 22796867.960 22796867.372 22796867.567
+ 34.000 28.100
+ -22419612.517 7 -17469819.783 8 20327694.439 20327691.452 20327693.484
+ 44.300 48.800
+ -10860871.578 6 -8463011.776 5 22472297.447 22472295.729 22472297.084
+ 40.700 33.200
+ -516216.236 3 -402242.731 3 24615823.620 24615821.743 24615823.018
+ 23.800 21.600
+ 06 1 2 11 4 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21861819.918 7 -17035183.516 7 20501545.175 20501539.876 20501543.972
+ 47.000 44.900
+ -11127303.339 6 -8670625.302 5 22501822.915 22501820.445 22501822.700
+ 36.900 32.400
+ -3626536.744 4 -2825876.426 3 23953893.392 23953891.418 23953891.697
+ 24.900 20.500
+ -3412842.615 4 -2659360.475 4 23612901.984 23612901.285 23612900.957
+ 27.100 24.200
+ -9367498.479 5 -7299345.634 4 22777267.081 22777266.508 22777267.110
+ 33.600 27.600
+ -22398600.190 7 -17453446.538 8 20331693.075 20331689.937 20331692.004
+ 44.300 48.700
+ -10794317.044 6 -8411151.116 5 22484963.256 22484960.727 22484962.455
+ 41.200 33.500
+ -440944.618 4 -343589.518 3 24630147.884 24630146.028 24630146.921
+ 26.200 23.400
+ 06 1 2 11 5 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21887248.840 7 -17054998.261 7 20496706.174 20496700.783 20496704.974
+ 47.100 44.900
+ -11213859.787 6 -8738071.885 5 22485351.979 22485349.068 22485351.458
+ 36.100 32.000
+ -3533742.467 4 -2753569.231 3 23971550.374 23971549.272 23971549.794
+ 26.500 19.300
+ -3306275.276 4 -2576321.021 3 23633181.175 23633180.219 23633179.949
+ 27.900 23.000
+ -9470265.970 5 -7379424.175 4 22757711.630 22757711.055 22757711.031
+ 34.400 29.500
+ -22377129.079 7 -17436715.799 8 20335778.908 20335775.726 20335777.787
+ 44.200 48.600
+ -10727568.353 6 -8359139.156 5 22497664.870 22497662.869 22497664.247
+ 40.900 34.300
+ -365316.355 3 -284658.432 3 24644539.063 24644537.105 24644538.474
+ 23.000 19.900
+ 06 1 2 11 5 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21912104.956 7 -17074366.668 7 20491976.287 20491970.721 20491974.984
+ 47.000 44.800
+ -11300088.201 6 -8805262.848 5 22468942.922 22468940.093 22468942.741
+ 37.200 31.300
+ -3440783.847 4 -2681133.958 2 23989240.882 23989238.686 23989239.579
+ 26.500 17.000
+ -3199518.374 4 -2493133.837 3 23653495.759 23653495.220 23653495.017
+ 27.900 20.500
+ -9572796.072 5 -7459317.714 4 22738200.739 22738200.020 22738199.959
+ 32.300 29.500
+ -22355200.548 7 -17419628.629 8 20339951.748 20339948.601 20339950.685
+ 44.300 48.700
+ -10660625.768 6 -8306976.131 5 22510403.174 22510401.739 22510402.785
+ 40.700 34.300
+ -289333.705 4 -225451.167 3 24658998.056 24658995.492 24658997.285
+ 24.200 19.900
+ 06 1 2 11 6 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21936386.980 7 -17093287.724 7 20487355.525 20487350.062 20487354.232
+ 46.800 44.800
+ -11385985.932 6 -8872196.147 5 22452597.688 22452594.535 22452597.259
+ 37.800 31.800
+ -3347664.020 4 -2608573.076 2 24006961.096 24006958.851 24006959.684
+ 27.400 16.100
+ -3092573.663 4 -2409800.326 3 23673846.147 23673846.058 23673845.917
+ 27.600 19.300
+ -9675085.615 5 -7539023.809 4 22718737.298 22718734.942 22718735.543
+ 33.200 29.700
+ -22332815.950 7 -17402186.081 8 20344211.294 20344208.304 20344210.243
+ 44.200 48.700
+ -10593489.567 6 -8254662.219 5 22523179.474 22523177.256 22523178.511
+ 40.400 33.500
+ -212998.846 3 -165969.447 3 24673523.693 24673522.666 24673523.569
+ 22.600 19.900
+ 06 1 2 11 6 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21960093.429 7 -17111760.283 7 20482844.210 20482838.812 20482842.938
+ 46.800 44.600
+ -11471550.360 6 -8938869.725 5 22436314.765 22436312.318 22436314.669
+ 37.700 33.500
+ -3254386.416 4 -2535889.248 2 24024710.820 24024708.873 24024709.644
+ 25.600 17.000
+ -2985443.267 4 -2326322.100 3 23694233.110 23694231.825 23694232.354
+ 26.500 21.100
+ -9777131.815 5 -7618540.299 5 22699318.245 22699316.312 22699316.589
+ 34.300 30.200
+ -22309976.814 7 -17384389.345 8 20348557.643 20348554.475 20348556.508
+ 44.300 48.700
+ -10526159.977 6 -8202197.616 5 22535991.093 22535989.557 22535990.825
+ 40.500 33.200
+ -136313.860 4 -106214.952 3 24688117.071 24688115.551 24688116.224
+ 24.900 19.900
+ 06 1 2 11 7 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -21983223.361 7 -17129783.607 7 20478442.953 20478437.208 20478441.631
+ 47.000 44.500
+ -11556778.609 6 -9005281.339 5 22420096.588 22420093.959 22420096.269
+ 38.000 33.400
+ -3160953.838 4 -2463084.682 2 24042490.525 24042488.522 24042489.202
+ 26.800 16.100
+ -2878129.314 4 -2242700.848 3 23714655.320 23714653.697 23714653.566
+ 25.300 21.600
+ -9878931.779 5 -7697864.893 5 22679945.637 22679944.210 22679944.466
+ 33.800 30.200
+ -22286684.486 7 -17366239.477 8 20352989.943 20352986.876 20352988.862
+ 44.400 48.700
+ -10458637.301 6 -8149582.547 5 22548841.280 22548838.542 22548840.205
+ 40.500 32.600
+ -59281.408 4 -46189.646 2 24702775.256 24702773.732 24702774.797
+ 24.200 17.800
+ 06 1 2 11 7 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22005775.140 7 -17147356.426 7 20474151.472 20474145.855 20474150.209
+ 47.000 44.600
+ -11641668.354 6 -9071429.193 5 22403942.555 22403940.015 22403942.317
+ 38.100 33.400
+ -3067369.627 4 -2390161.928 1 24060298.915 24060296.818 24060297.606
+ 27.100 11.000
+ -2770633.685 4 -2158938.062 3 23735109.905 23735109.585 23735108.826
+ 24.900 22.600
+ -9980482.266 5 -7776995.114 4 22660620.240 22660619.662 22660619.919
+ 35.200 28.600
+ -22262940.365 7 -17347737.563 8 20357508.193 20357505.218 20357507.104
+ 44.300 48.600
+ -10390921.866 6 -8096817.279 5 22561726.360 22561724.545 22561725.865
+ 40.000 33.100
+ 18096.492 3 14104.845 3 24717500.866 24717498.927 24717500.019
+ 23.800 21.100
+ 06 1 2 11 8 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22027747.578 7 -17164477.809 7 20469970.235 20469964.739 20469968.939
+ 46.900 44.800
+ -11726216.692 6 -9137310.999 5 22387853.635 22387850.963 22387853.255
+ 37.700 33.100
+ -2973637.228 4 -2317123.706 1 24078135.478 24078133.611 24078134.228
+ 25.300 11.000
+ -2662958.315 4 -2075035.246 4 23755599.100 23755599.866 23755599.000
+ 27.100 24.600
+ -10081780.080 5 -7855928.451 4 22641344.113 22641343.280 22641343.648
+ 34.900 29.000
+ -22238745.711 7 -17328884.583 8 20362112.412 20362109.252 20362111.321
+ 44.400 48.600
+ -10323013.916 6 -8043902.014 5 22574649.016 22574646.956 22574648.287
+ 39.800 33.400
+ 95817.691 4 74666.782 3 24732289.846 24732288.549 24732289.081
+ 24.200 19.300
+ 06 1 2 11 8 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22049139.115 7 -17181146.536 7 20465899.433 20465893.999 20465898.189
+ 46.700 44.700
+ -11810421.027 6 -9202924.770 5 22371829.877 22371827.249 22371829.776
+ 38.500 33.100
+ -2879759.377 4 -2243972.115 2 24095999.685 24095997.845 24095998.569
+ 25.300 13.900
+ -2555105.284 4 -1990993.935 3 23776123.612 23776123.189 23776123.067
+ 26.800 23.800
+ -10182822.394 6 -7934662.705 4 22622117.249 22622115.771 22622116.223
+ 36.400 29.200
+ -22214102.038 7 -17309681.713 8 20366801.856 20366798.771 20366800.784
+ 44.500 48.500
+ -10254913.861 6 -7990837.044 5 22587607.920 22587606.059 22587607.273
+ 39.800 33.200
+ 173879.744 3 135494.395 3 24747143.868 24747142.784 24747143.518
+ 22.100 19.300
+ 06 1 2 11 9 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22069948.682 7 -17197361.787 7 20461939.607 20461934.002 20461938.323
+ 46.800 44.700
+ -11894278.700 6 -9268268.418 5 22355872.936 22355869.545 22355872.425
+ 38.600 32.400
+ -2785739.142 4 -2170709.643 1 24113891.812 24113889.265 24113890.676
+ 25.600 11.000
+ -2447076.648 4 -1906815.806 4 23796681.853 23796680.803 23796680.169
+ 26.200 24.200
+ -10283606.233 5 -8013195.530 5 22602939.106 22602937.536 22602937.565
+ 34.000 30.800
+ -22189010.790 7 -17290130.088 8 20371576.628 20371573.446 20371575.552
+ 44.600 48.400
+ -10186621.858 6 -7937622.517 5 22600603.386 22600601.442 22600602.883
+ 40.000 32.800
+ 252280.501 3 196585.873 2 24762063.511 24762062.720 24762062.833
+ 21.100 17.800
+ 06 1 2 11 9 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22090174.881 7 -17213122.461 7 20458090.508 20458085.220 20458089.266
+ 46.700 44.900
+ -11977787.014 6 -9333339.828 5 22339981.053 22339978.426 22339980.814
+ 37.800 32.700
+ -2691579.924 4 -2097338.845 2 24131809.516 24131807.645 24131808.449
+ 24.600 16.100
+ -2338874.441 4 -1822502.432 3 23817272.254 23817270.490 23817271.192
+ 27.100 23.000
+ -10384128.636 5 -8091524.622 5 22583810.303 22583808.550 22583808.882
+ 35.100 31.000
+ -22163473.512 7 -17270230.908 8 20376436.030 20376433.025 20376434.996
+ 44.600 48.400
+ -10118138.242 6 -7884258.661 5 22613635.617 22613633.515 22613634.987
+ 39.900 32.400
+ 331017.699 3 257939.557 2 24777047.249 24777045.155 24777046.403
+ 22.600 16.100
+ 06 1 2 11 10 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22109816.505 7 -17228427.624 7 20454352.980 20454347.538 20454351.710
+ 46.800 45.000
+ -12060943.689 6 -9398137.238 5 22324157.026 22324154.292 22324156.680
+ 38.100 32.700
+ -2597284.629 4 -2023862.023 2 24149753.324 24149751.830 24149752.459
+ 24.200 16.100
+ -2230500.709 4 -1738055.408 3 23837891.796 23837893.867 23837892.955
+ 25.300 23.000
+ -10484386.481 5 -8169647.590 5 22564730.545 22564729.922 22564729.960
+ 34.800 30.200
+ -22137491.122 7 -17249984.886 8 20381380.203 20381377.355 20381379.228
+ 44.600 48.400
+ -10049463.417 6 -7830745.824 5 22626704.011 22626701.901 22626703.547
+ 40.500 32.400
+ 410089.055 3 319553.589 3 24792094.224 24792092.513 24792093.308
+ 22.100 20.500
+ 06 1 2 11 10 30.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22128872.448 7 -17243276.410 7 20450726.819 20450721.218 20450725.580
+ 46.900 44.900
+ -12143745.914 6 -9462658.449 5 22308400.581 22308397.732 22308400.218
+ 38.100 33.400
+ -2502856.467 3 -1950281.667 3 24167722.252 24167720.704 24167721.098
+ 23.400 19.900
+ -2121957.526 3 -1653476.321 3 23858547.486 23858548.708 23858547.611
+ 22.100 19.900
+ -10584376.881 5 -8247562.140 5 22545701.893 22545702.332 22545702.105
+ 34.700 30.600
+ -22111065.438 7 -17229393.444 8 20386409.115 20386406.013 20386407.995
+ 44.800 48.400
+ -9980597.660 6 -7777084.215 5 22639809.082 22639806.638 22639808.271
+ 39.900 32.400
+ 489492.265 3 381426.181 3 24807203.156 24807202.600 24807202.521
+ 18.600 20.500
+ 06 1 2 11 11 0.0000000 0 8G23G13G20G 1G 3G16G25G 6
+ -22147341.510 7 -17257667.892 7 20447212.172 20447206.693 20447211.049
+ 47.000 44.900
+ -12226190.958 6 -9526901.341 5 22292711.660 22292708.772 22292711.403
+ 38.400 32.700
+ -2408298.720 4 -1876600.369 3 24185716.607 24185714.288 24185715.194
+ 26.200 19.900
+ -2013246.877 3 -1568766.780 2 23879236.542 23879235.535 23879234.952
+ 23.000 17.800
+ -10684096.763 5 -8325265.908 5 22526727.768 22526726.194 22526726.529
+ 35.300 30.800
+ -22084197.887 7 -17208457.689 8 20391521.783 20391518.719 20391520.776
+ 45.100 48.300
+ -9911541.122 6 -7723273.947 5 22652949.583 22652947.568 22652949.031
+ 39.700 32.000
+ 569224.969 3 443555.555 3 24822376.966 24822374.904 24822375.880
+ 21.100 18.600
+ 06 1 2 11 11 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22165222.250 7 -17271600.937 7 20443809.783 20443804.228 20443808.487
+ 47.000 45.100
+ -12308276.142 6 -9590863.826 5 22277091.421 22277088.553 22277090.987
+ 38.500 33.600
+ -2313614.449 4 -1802820.479 3 24203734.209 24203732.668 24203732.961
+ 27.100 21.600
+ -1904370.818 3 -1483928.310 3 23899953.501 23899954.082 23899953.131
+ 22.600 19.300
+ -10783543.171 5 -8402756.611 5 22507804.453 22507802.143 22507802.665
+ 35.300 31.000
+ -22056890.280 7 -17187179.032 8 20396718.363 20396715.115 20396717.244
+ 45.100 48.100
+ -9842294.193 6 -7669315.313 5 22666126.699 22666124.856 22666126.078
+ 39.400 31.800
+ 06 1 2 11 12 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22182514.055 7 -17285075.077 7 20440519.182 20440513.605 20440517.956
+ 47.100 45.100
+ -12389999.118 6 -9654544.075 5 22261539.810 22261537.320 22261539.587
+ 38.700 33.900
+ -2218806.714 4 -1728944.357 3 24221775.500 24221773.860 24221774.113
+ 26.500 18.600
+ -1795331.387 4 -1398962.546 3 23920702.224 23920703.834 23920703.052
+ 26.500 22.100
+ -10882713.365 6 -8480032.063 5 22488932.722 22488930.321 22488931.125
+ 36.400 30.100
+ -22029143.467 7 -17165558.138 8 20401998.336 20401995.160 20401997.249
+ 45.100 48.100
+ -9772857.208 6 -7615208.589 5 22679340.381 22679338.467 22679339.626
+ 39.500 32.400
+ 06 1 2 11 12 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22199215.322 7 -17298089.051 7 20437340.965 20437335.355 20437339.786
+ 47.000 44.900
+ -12471356.922 6 -9717939.758 5 22246057.809 22246055.471 22246057.628
+ 38.400 34.400
+ -2123878.827 4 -1654974.615 2 24239839.238 24239837.938 24239838.265
+ 24.600 17.000
+ -1686130.645 4 -1313871.103 3 23941484.643 23941483.864 23941483.680
+ 26.200 20.500
+ -10981604.288 6 -8557089.908 5 22470113.523 22470112.105 22470112.580
+ 36.700 30.600
+ -22000959.008 7 -17143596.214 8 20407361.699 20407358.501 20407360.608
+ 45.100 48.100
+ -9703230.371 6 -7560953.917 5 22692589.833 22692588.163 22692589.266
+ 39.300 33.100
+ 06 1 2 11 13 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22215325.134 7 -17310642.151 7 20434275.308 20434269.757 20434274.126
+ 46.900 44.800
+ -12552346.999 6 -9781048.901 5 22230645.864 22230643.574 22230645.653
+ 38.600 35.100
+ -2028834.093 3 -1580913.817 2 24257925.232 24257924.642 24257924.454
+ 23.400 17.800
+ -1576770.643 4 -1228655.537 3 23962296.583 23962294.535 23962294.642
+ 26.500 20.500
+ -11080212.827 6 -8633927.692 5 22451348.178 22451347.612 22451347.893
+ 36.200 30.600
+ -21972338.746 7 -17121294.707 8 20412807.919 20412804.735 20412806.811
+ 45.100 48.000
+ -9633414.084 6 -7506551.648 5 22705876.025 22705873.627 22705875.067
+ 38.900 32.700
+ 06 1 2 11 13 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22230842.464 7 -17322733.581 7 20431322.342 20431316.930 20431321.181
+ 46.800 44.900
+ -12632966.835 6 -9843869.547 5 22215304.286 22215301.996 22215304.013
+ 38.600 34.400
+ -1933675.040 4 -1506763.976 2 24276034.319 24276032.594 24276033.002
+ 24.900 13.900
+ -1467253.507 4 -1143317.535 2 23983135.053 23983134.639 23983134.334
+ 24.900 17.800
+ -11178536.005 6 -8710543.123 5 22432638.328 22432637.187 22432637.706
+ 36.200 31.000
+ -21943284.016 7 -17098654.654 8 20418336.879 20418333.660 20418335.767
+ 45.200 48.000
+ -9563408.628 6 -7452001.951 5 22719196.983 22719194.904 22719196.352
+ 38.400 31.500
+ 06 1 2 11 14 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22245765.980 7 -17334362.300 7 20428482.754 20428477.156 20428481.510
+ 46.800 45.100
+ -12713213.849 6 -9906399.688 5 22200034.304 22200031.208 22200033.942
+ 39.400 33.900
+ -1838404.980 4 -1432527.594 2 24294163.203 24294161.513 24294162.383
+ 24.600 13.900
+ -1357581.398 4 -1057858.765 3 24004005.438 24004003.915 24004004.753
+ 25.900 18.600
+ -11276570.773 6 -8786933.820 5 22413983.848 22413981.948 22413982.465
+ 36.000 31.800
+ -21913796.358 7 -17075677.263 7 20423948.095 20423945.022 20423947.088
+ 45.200 47.800
+ -9493214.298 6 -7397305.079 5 22732554.726 22732552.567 22732554.041
+ 38.300 32.000
+ 06 1 2 11 14 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22260094.784 7 -17345527.603 7 20425756.192 20425750.509 20425754.871
+ 46.700 44.900
+ -12793085.145 6 -9968637.076 5 22184835.423 22184832.214 22184835.053
+ 39.700 34.000
+ -1743026.947 3 -1358207.062 1 24312313.528 24312311.391 24312312.243
+ 20.500 11.000
+ -1247756.253 3 -972280.800 3 24024905.149 24024904.212 24024903.355
+ 22.100 20.500
+ -11374314.185 6 -8863097.494 5 22395384.452 22395381.870 22395382.754
+ 37.200 32.100
+ -21883877.771 7 -17052364.080 7 20429641.561 20429638.326 20429640.463
+ 45.200 47.800
+ -9422831.459 6 -7342461.303 5 22745947.866 22745946.194 22745947.313
+ 38.500 32.400
+ 06 1 2 11 15 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22273827.818 7 -17356228.671 7 20423142.762 20423137.144 20423141.480
+ 46.700 45.000
+ -12872578.441 6 -10030579.896 5 22169708.123 22169705.493 22169707.818
+ 39.300 34.800
+ -1647544.279 3 -1283805.008 1 24330483.376 24330481.471 24330482.168
+ 21.600 11.000
+ -1137780.173 4 -886585.163 3 24045832.740 24045831.569 24045831.722
+ 25.600 19.300
+ -11471763.399 6 -8939031.930 5 22376839.312 22376837.988 22376838.442
+ 37.500 32.000
+ -21853529.030 7 -17028715.700 7 20435416.535 20435413.421 20435415.542
+ 45.400 47.700
+ -9352260.429 6 -7287470.905 5 22759376.957 22759375.546 22759376.352
+ 37.700 32.400
+ 06 1 2 11 15 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22286964.382 7 -17366464.950 7 20420642.934 20420637.352 20420641.649
+ 46.600 45.100
+ -12951690.862 6 -10092225.932 5 22154653.360 22154650.893 22154653.120
+ 39.400 34.700
+ -1551959.954 3 -1209323.738 2 24348671.951 24348671.113 24348671.105
+ 23.800 13.900
+ -1027655.277 4 -800773.584 3 24066787.840 24066787.472 24066787.662
+ 24.900 19.900
+ -11568915.309 6 -9014734.691 5 22358351.234 22358350.479 22358350.818
+ 36.800 31.300
+ -21822751.529 7 -17004733.216 7 20441273.453 20441270.137 20441272.366
+ 45.500 47.700
+ -9281501.529 6 -7232334.093 5 22772842.169 22772840.447 22772841.500
+ 38.000 31.600
+ 06 1 2 11 16 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22299503.134 7 -17376235.410 7 20418256.937 20418251.338 20418255.624
+ 46.600 45.000
+ -13030419.880 6 -10153573.216 5 22139671.781 22139669.044 22139671.535
+ 39.400 34.800
+ -1456277.161 4 -1134765.757 1 24366880.030 24366878.402 24366878.760
+ 24.900 11.000
+ -917383.501 4 -714847.556 3 24087771.270 24087772.289 24087771.286
+ 24.900 21.100
+ -11665767.009 6 -9090203.528 5 22339922.218 22339920.203 22339920.685
+ 36.200 31.500
+ -21791547.333 7 -16980418.254 7 20447211.456 20447208.161 20447210.337
+ 45.400 47.600
+ -9210554.927 6 -7177051.028 5 22786343.456 22786341.119 22786342.533
+ 38.200 31.600
+ 06 1 2 11 16 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22311443.129 7 -17385539.307 7 20415984.709 20415979.290 20415983.524
+ 46.600 45.100
+ -13108763.029 6 -10214619.827 5 22124763.827 22124760.667 22124763.522
+ 40.000 34.400
+ -1360499.125 4 -1060133.556 3 24385106.972 24385104.908 24385105.646
+ 24.600 19.300
+ -806966.910 3 -628808.721 3 24108782.604 24108783.817 24108782.155
+ 18.600 21.600
+ -11762315.665 6 -9165436.227 5 22321549.405 22321547.871 22321548.027
+ 36.800 32.300
+ -21759918.034 7 -16955772.053 7 20453230.194 20453227.087 20453229.154
+ 45.600 47.500
+ -9139421.143 6 -7121622.105 5 22799879.110 22799877.390 22799878.542
+ 38.000 31.600
+ 06 1 2 11 17 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22322783.496 7 -17394375.959 7 20413826.883 20413821.338 20413825.572
+ 46.700 45.200
+ -13186717.560 6 -10275363.615 5 22109929.547 22109926.713 22109929.189
+ 40.000 34.500
+ -1264628.670 3 -985429.385 2 24403349.565 24403348.223 24403348.732
+ 22.100 15.100
+ -696407.746 3 -542658.788 3 24129822.264 24129822.477 24129822.142
+ 23.400 22.600
+ -11858558.045 6 -9240430.254 5 22303234.291 22303233.683 22303233.470
+ 37.200 32.800
+ -21727864.873 7 -16930795.568 7 20459329.682 20459326.601 20459328.583
+ 45.600 47.400
+ -9068100.457 6 -7066047.553 5 22813451.744 22813449.308 22813450.860
+ 38.400 31.300
+ 06 1 2 11 17 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22333523.507 7 -17402744.802 7 20411782.979 20411777.565 20411781.807
+ 46.700 45.200
+ -13264280.901 6 -10335802.575 5 22095169.624 22095166.925 22095169.326
+ 39.800 35.100
+ -1168669.345 3 -910655.913 2 24421609.461 24421608.237 24421608.655
+ 21.600 13.900
+ -585708.057 3 -456399.299 3 24150889.063 24150887.504 24150887.540
+ 23.800 21.100
+ -11954491.293 6 -9315183.409 5 22284978.827 22284977.825 22284978.056
+ 37.800 32.600
+ -21695389.350 7 -16905489.957 7 20465509.630 20465506.460 20465508.591
+ 45.700 47.400
+ -8996593.135 6 -7010327.602 5 22827058.619 22827056.681 22827058.076
+ 38.200 31.800
+ 06 1 2 11 18 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22343661.927 7 -17410644.871 7 20409853.776 20409848.284 20409852.507
+ 46.500 45.100
+ -13341450.434 6 -10395934.675 5 22080484.899 22080482.068 22080484.588
+ 40.200 35.100
+ -1072623.492 3 -835815.020 2 24439886.815 24439885.249 24439885.880
+ 22.100 15.100
+ -474869.886 3 -370031.977 3 24171979.931 24171979.856 24171978.953
+ 23.000 21.600
+ -12050112.559 6 -9389693.459 5 22266782.890 22266781.711 22266781.868
+ 37.200 32.100
+ -21662493.110 7 -16879856.520 7 20471769.698 20471766.417 20471768.618
+ 45.900 47.400
+ -8924899.590 6 -6954462.515 5 22840702.203 22840699.138 22840701.006
+ 37.700 30.800
+ 06 1 2 11 18 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22353198.035 7 -17418075.606 7 20408038.852 20408033.592 20408037.706
+ 46.400 45.100
+ -13418223.395 6 -10455757.754 5 22065875.309 22065872.615 22065874.941
+ 39.800 35.200
+ -976494.622 3 -760909.411 1 24458180.133 24458178.022 24458179.036
+ 23.400 9.000
+ -363895.373 4 -283558.383 3 24193096.504 24193098.028 24193096.738
+ 24.200 18.600
+ -12145418.930 6 -9463958.141 5 22248646.968 22248645.352 22248645.838
+ 37.700 32.300
+ -21629177.902 7 -16853896.616 7 20478109.209 20478106.062 20478108.246
+ 45.900 47.300
+ -8853020.095 6 -6898452.545 5 22854378.944 22854377.987 22854378.964
+ 37.700 32.000
+ 06 1 2 11 19 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22362131.229 7 -17425036.538 7 20406338.727 20406333.713 20406337.581
+ 46.300 45.200
+ -13494597.504 6 -10515270.043 5 22051341.822 22051338.965 22051341.507
+ 40.300 34.900
+ -880285.776 3 -685941.526 2 24476487.567 24476486.056 24476486.411
+ 21.600 16.100
+ -252786.713 4 -196980.227 2 24214241.425 24214240.670 24214240.417
+ 24.900 13.900
+ -12240407.303 6 -9537975.025 5 22230570.411 22230569.610 22230569.934
+ 38.000 32.100
+ -21595445.200 7 -16827611.397 7 20484528.347 20484525.163 20484527.317
+ 46.100 47.300
+ -8780954.927 6 -6842297.867 5 22868093.591 22868091.186 22868092.606
+ 37.300 30.600
+ 06 1 2 11 19 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22370460.440 7 -17431526.835 7 20404753.829 20404748.660 20404752.658
+ 46.300 45.100
+ -13570570.014 6 -10574469.401 5 22036884.793 22036881.736 22036884.537
+ 40.900 35.100
+ -784000.362 3 -610913.974 2 24494810.193 24494808.846 24494808.931
+ 23.800 17.800
+ -141545.882 4 -110299.081 1 24235411.743 24235409.187 24235409.963
+ 25.600 9.000
+ -12335074.947 6 -9611741.988 5 22212557.115 22212555.004 22212555.606
+ 38.000 32.600
+ -21561296.451 7 -16801001.978 7 20491026.496 20491023.451 20491025.519
+ 45.900 47.200
+ -8708704.519 6 -6785998.869 5 22881841.723 22881839.738 22881841.192
+ 36.600 30.200
+ 06 1 2 11 20 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22378184.909 7 -17437545.906 7 20403284.090 20403278.702 20403282.859
+ 46.400 45.100
+ -13646138.471 6 -10633353.913 5 22022504.573 22022501.612 22022504.236
+ 40.700 34.800
+ -687641.453 3 -535829.138 2 24513146.166 24513145.311 24513145.336
+ 23.400 15.100
+ -30175.053 4 -23516.626 1 24256601.744 24256601.387 24256602.375
+ 25.900 11.000
+ -12429418.936 6 -9685256.765 5 22194603.743 22194601.812 22194602.467
+ 38.200 32.600
+ -21526733.785 7 -16774070.030 7 20497603.718 20497600.516 20497602.609
+ 45.900 47.100
+ -8636269.205 6 -6729555.793 5 22895625.661 22895624.239 22895625.260
+ 36.900 31.000
+ 06 1 2 11 20 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22385304.001 7 -17443093.252 7 20401929.470 20401924.030 20401928.211
+ 46.300 45.100
+ -13721300.057 6 -10691921.382 5 22008201.999 22008198.939 22008201.630
+ 41.000 35.500
+ -591211.488 4 -460688.932 1 24531497.330 24531495.256 24531495.872
+ 25.900 11.000
+ 81323.731 3 63365.562 2 24277821.478 24277819.538 24277820.208
+ 23.800 13.900
+ -12523436.198 6 -9758516.947 5 22176712.062 22176710.888 22176711.367
+ 38.700 32.000
+ -21491758.165 7 -16746816.301 7 20504259.265 20504256.181 20504258.196
+ 45.700 47.000
+ -8563649.139 6 -6672968.702 4 22909445.450 22909443.059 22909444.652
+ 37.100 29.900
+ 06 1 2 11 21 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22391816.711 7 -17448168.091 7 20400690.233 20400684.661 20400689.005
+ 46.500 45.100
+ -13796052.196 6 -10750169.801 6 21993977.056 21993974.206 21993976.732
+ 40.900 36.100
+ -494713.633 3 -385495.807 2 24549859.728 24549858.823 24549858.673
+ 21.600 15.100
+ 192948.484 3 150345.824 1 24299063.324 24299061.384 24299061.595
+ 23.400 11.000
+ -12617123.791 6 -9831520.238 5 22158884.107 22158882.507 22158883.213
+ 38.400 32.100
+ -21456371.152 7 -16719242.011 7 20510993.310 20510990.081 20510992.115
+ 45.700 47.000
+ -8490844.924 6 -6616238.149 4 22923299.251 22923297.080 22923298.762
+ 37.300 29.000
+ 06 1 2 11 21 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22397722.456 7 -17452769.969 7 20399566.335 20399560.739 20399565.151
+ 46.500 45.000
+ -13870392.397 6 -10808097.224 6 21979830.297 21979827.787 21979830.041
+ 40.700 36.100
+ -398151.166 3 -310252.371 2 24568235.235 24568234.140 24568233.919
+ 21.600 12.600
+ 304697.041 3 237422.598 3 24320325.220 24320327.175 24320325.398
+ 19.900 19.900
+ -12710479.000 6 -9904264.547 5 22141119.403 22141117.856 22141118.355
+ 38.600 32.800
+ -21420574.701 7 -16691348.676 7 20517805.002 20517801.928 20517803.873
+ 45.900 46.800
+ -8417856.751 6 -6559364.258 5 22937188.302 22937186.750 22937187.758
+ 37.100 30.800
+ 06 1 2 11 22 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22403020.535 7 -17456898.344 7 20398558.102 20398552.615 20398556.838
+ 46.400 45.100
+ -13944318.433 6 -10865701.922 6 21965762.483 21965760.095 21965762.202
+ 40.400 36.200
+ -301527.119 3 -234960.966 2 24586621.957 24586620.403 24586620.856
+ 19.900 13.900
+ 416567.220 3 324594.072 3 24341614.775 24341615.663 24341613.786
+ 19.300 23.000
+ -12803498.780 6 -9976747.456 5 22123417.546 22123416.760 22123417.125
+ 38.600 33.400
+ -21384370.432 7 -16663137.557 7 20524694.486 20524691.401 20524693.384
+ 46.100 46.800
+ -8344685.078 6 -6502347.409 5 22951112.495 22951110.941 22951111.750
+ 36.500 31.300
+ 06 1 2 11 22 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22407710.079 7 -17460552.536 7 20397665.598 20397660.302 20397664.381
+ 46.300 45.200
+ -14017827.282 6 -10922981.543 5 21951774.303 21951771.672 21951774.026
+ 40.600 35.700
+ -204844.476 3 -159623.843 2 24605020.591 24605018.533 24605019.206
+ 21.600 12.600
+ 528557.009 3 411858.753 3 24362925.119 24362926.450 24362924.734
+ 19.300 21.100
+ -12896180.292 6 -10048966.772 5 22105781.395 22105780.093 22105780.498
+ 39.000 33.500
+ -21347759.835 7 -16634609.815 7 20531661.356 20531658.165 20531660.264
+ 46.300 46.700
+ -8271330.221 6 -6445187.810 5 22965071.607 22965069.695 22965071.125
+ 36.700 30.800
+ 06 1 2 11 23 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22411790.660 7 -17463732.214 7 20396889.028 20396883.825 20396887.921
+ 46.200 45.200
+ -14090916.522 6 -10979934.201 5 21937866.066 21937863.201 21937865.783
+ 41.200 35.800
+ -108106.465 3 -84243.646 1 24623428.694 24623426.775 24623427.467
+ 22.600 11.000
+ 640664.117 3 499214.874 3 24384257.825 24384259.837 24384258.099
+ 21.600 22.100
+ -12988520.616 6 -10120920.249 5 22088210.475 22088208.160 22088208.970
+ 39.100 33.600
+ -21310744.412 7 -16605766.626 7 20538705.120 20538701.951 20538704.095
+ 46.200 46.600
+ -8197792.454 6 -6387885.694 5 22979065.879 22979063.520 22979064.931
+ 36.300 30.800
+ 06 1 2 11 23 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22415261.621 7 -17466436.862 7 20396228.863 20396223.306 20396227.587
+ 46.400 45.300
+ -14163583.939 6 -11036558.165 6 21924038.323 21924035.187 21924037.913
+ 41.400 36.400
+ -11316.220 3 -8822.688 2 24641848.340 24641846.354 24641846.720
+ 21.100 12.600
+ 752886.404 4 586660.790 2 24405616.255 24405614.235 24405614.827
+ 24.900 16.100
+ -13080516.738 6 -10192605.505 5 22070703.052 22070701.828 22070702.217
+ 38.500 33.100
+ -21273326.296 7 -16576609.649 7 20545825.603 20545822.436 20545824.561
+ 46.300 46.600
+ -8124072.149 6 -6330441.337 4 22993093.877 22993092.138 22993093.245
+ 36.100 29.900
+ 06 1 2 11 24 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22418122.049 7 -17468665.770 7 20395684.390 20395679.040 20395683.315
+ 46.600 45.300
+ -14235826.520 6 -11092851.084 6 21910290.729 21910287.861 21910290.366
+ 41.200 36.500
+ 85523.542 3 66636.796 2 24660275.829 24660274.237 24660274.629
+ 21.100 13.900
+ 865221.813 3 674194.849 2 24426991.279 24426991.142 24426990.873
+ 23.400 17.800
+ -13172165.889 6 -10264020.389 5 22053262.122 22053261.609 22053261.972
+ 39.500 33.400
+ -21235506.571 7 -16547139.736 7 20553022.463 20553019.214 20553021.415
+ 46.400 46.500
+ -8050169.703 5 -6272855.042 5 23007156.818 23007155.308 23007156.374
+ 35.700 30.200
+ 06 1 2 11 24 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22420371.698 7 -17470418.747 7 20395256.437 20395250.904 20395255.234
+ 46.500 45.200
+ -14307642.086 6 -11148811.263 6 21896624.467 21896621.784 21896624.158
+ 41.300 36.400
+ 182409.720 4 142132.509 2 24678712.677 24678710.908 24678711.729
+ 24.600 15.100
+ 977668.344 3 761815.504 2 24448388.683 24448388.498 24448388.100
+ 21.600 16.100
+ -13263465.316 6 -10335162.764 5 22035889.863 22035888.010 22035888.450
+ 39.200 34.300
+ -21197286.886 7 -16517358.158 7 20560295.327 20560292.169 20560294.229
+ 46.500 46.300
+ -7976085.445 6 -6215127.076 4 23021255.608 23021252.962 23021254.536
+ 36.400 29.500
+ 06 1 2 11 25 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22422009.721 7 -17471695.135 7 20394944.746 20394939.189 20394943.486
+ 46.600 45.300
+ -14379027.797 6 -11204436.491 6 21883040.492 21883037.700 21883040.204
+ 41.700 36.600
+ 279339.209 4 217661.947 1 24697157.837 24697156.041 24697156.582
+ 24.200 9.000
+ 1090223.918 3 849521.062 2 24469808.835 24469807.311 24469807.092
+ 20.500 17.000
+ -13354412.207 6 -10406030.437 5 22018581.946 22018581.561 22018581.654
+ 39.600 34.800
+ -21158669.077 7 -16487266.353 7 20567644.014 20567640.867 20567642.944
+ 46.500 46.300
+ -7901819.697 6 -6157257.675 4 23035387.039 23035385.176 23035386.668
+ 36.300 29.200
+ 06 1 2 11 25 30.0000000 0 7G23G13G20G 1G 3G16G25
+ -22423035.839 7 -17472494.710 7 20394749.231 20394743.920 20394748.119
+ 46.400 45.200
+ -14449981.092 6 -11259724.778 6 21869538.143 21869535.588 21869538.069
+ 41.900 36.600
+ 376308.966 4 293222.719 24715609.709 24715608.943 24715608.977
+ 24.900 3.000
+ 1202886.100 3 937309.757 3 24491244.779 24491246.591 24491245.907
+ 22.100 18.600
+ -13445003.636 6 -10476621.121 5 22001343.795 22001342.187 22001342.871
+ 40.000 33.500
+ -21119654.848 7 -16456865.652 7 20575068.293 20575064.956 20575067.222
+ 46.600 46.200
+ -7827372.825 6 -6099247.145 4 23049553.695 23049552.218 23049553.259
+ 36.000 29.700
+ 06 1 2 11 26 0.0000000 0 7G23G13G20G 1G 3G16G25
+ -22423449.660 7 -17472817.174 7 20394670.652 20394665.146 20394669.527
+ 46.300 45.100
+ -14520499.628 6 -11314674.289 6 21856119.232 21856116.284 21856118.898
+ 41.900 36.500
+ 473315.986 4 368812.640 2 24734070.021 24734069.052 24734068.569
+ 25.300 13.900
+ 1315653.090 2 1025180.061 2 24512705.301 24512704.943 24512703.857
+ 15.100 15.100
+ -13535236.554 6 -10546932.469 5 21984173.249 21984171.167 21984171.939
+ 39.500 33.000
+ -21080245.789 7 -16426157.291 7 20582567.580 20582564.175 20582566.534
+ 46.700 46.000
+ -7752745.273 6 -6041095.805 4 23063755.676 23063752.987 23063754.702
+ 36.300 28.400
+ 06 1 2 11 26 30.0000000 0 6G23G13G 1G 3G16G25
+ -22423250.394 7 -17472661.903 7 20394708.685 20394703.081 20394707.387
+ 46.400 45.100
+ -14590580.958 6 -11369283.119 6 21842783.193 21842780.449 21842782.841
+ 41.600 37.000
+ 1428522.696 4 1113130.327 2 24534182.445 24534184.530 24534182.665
+ 24.200 16.100
+ -13625108.189 6 -10616962.282 5 21967071.046 21967069.268 21967070.057
+ 40.200 33.400
+ -21040443.740 7 -16395142.707 7 20590141.592 20590138.289 20590140.601
+ 46.700 45.900
+ -7677937.419 5 -5982803.962 4 23077990.520 23077988.589 23077989.941
+ 35.600 29.200
+ 06 1 2 11 27 0.0000000 0 6G23G13G 1G 3G16G25
+ -22422437.493 7 -17472028.474 7 20394863.234 20394857.817 20394862.042
+ 46.300 45.100
+ -14660222.442 6 -11423549.201 6 21829530.566 21829528.170 21829530.238
+ 41.000 37.100
+ 1541492.595 3 1201158.830 1 24555681.300 24555680.973 24555680.547
+ 19.900 11.000
+ -13714615.626 6 -10686708.305 5 21950038.554 21950036.530 21950037.366
+ 39.700 33.800
+ -21000249.991 7 -16363822.902 7 20597790.258 20597787.006 20597789.177
+ 46.700 45.900
+ -7602949.605 5 -5924371.927 4 23092260.111 23092258.662 23092259.707
+ 35.700 29.500
+ 06 1 2 11 27 30.0000000 0 6G23G13G 1G 3G16G25
+ -22421010.705 7 -17470916.694 7 20395134.844 20395129.262 20395133.619
+ 46.200 45.100
+ -14729421.777 6 -11477470.759 6 21816362.520 21816359.897 21816362.189
+ 41.400 36.900
+ 1654560.802 3 1289263.849 2 24577199.115 24577197.600 24577197.396
+ 18.600 12.600
+ -13803756.162 6 -10756168.430 5 21933075.102 21933073.847 21933074.420
+ 40.300 34.600
+ -20959666.526 7 -16332199.423 7 20605512.850 20605509.871 20605511.816
+ 46.600 46.000
+ -7527782.085 5 -5865799.825 4 23106564.903 23106562.499 23106563.699
+ 35.300 29.000
+ 06 1 2 11 28 0.0000000 0 6G23G13G 1G 3G16G25
+ -22418969.638 7 -17469326.256 7 20395522.754 20395517.674 20395521.699
+ 46.200 45.200
+ -14798176.346 6 -11531045.746 6 21803278.790 21803276.277 21803278.544
+ 41.800 36.700
+ 1767725.085 2 1377443.758 1 24598730.830 24598731.391 24598731.213
+ 17.800 11.000
+ -13892527.162 6 -10825340.588 5 21916182.778 21916181.180 21916181.693
+ 39.900 34.400
+ -20918694.752 7 -16300273.364 7 20613309.688 20613306.560 20613308.534
+ 46.600 46.000
+ -7452435.440 6 -5807088.161 5 23120901.852 23120900.548 23120901.564
+ 36.000 30.600
+ 06 1 2 11 28 30.0000000 0 5G23G13G 3G16G25
+ -22416313.744 7 -17467256.734 7 20396028.344 20396023.109 20396027.217
+ 46.100 44.900
+ -14866483.853 7 -11584272.379 6 21790280.513 21790277.806 21790280.231
+ 42.200 37.200
+ -13980925.577 6 -10894222.453 5 21899361.543 21899359.191 21899360.380
+ 40.400 33.500
+ -20877336.397 7 -16268046.071 7 20621179.875 20621176.756 20621178.759
+ 46.600 45.900
+ -7376909.952 5 -5748237.134 4 23135274.571 23135272.451 23135273.730
+ 35.500 29.700
+ 06 1 2 11 29 0.0000000 0 5G23G13G 3G16G25
+ -22413042.719 7 -17464707.888 7 20396651.123 20396645.556 20396649.808
+ 46.200 45.100
+ -14934341.336 7 -11637148.344 6 21777367.641 21777364.812 21777367.431
+ 42.000 36.600
+ -14068948.618 6 -10962811.821 5 21882610.526 21882609.040 21882609.841
+ 40.600 34.300
+ -20835593.439 7 -16235519.091 7 20629123.441 20629120.228 20629122.261
+ 46.700 45.900
+ -7301206.070 5 -5689247.143 4 23149681.331 23149678.550 23149679.994
+ 35.500 29.500
+ 06 1 2 11 29 30.0000000 0 5G23G13G 3G16G25
+ -22409156.218 7 -17461679.444 7 20397390.529 20397385.151 20397389.279
+ 46.100 44.900
+ -15001746.748 7 -11689672.040 6 21764540.854 21764538.066 21764540.525
+ 42.000 37.000
+ -14156593.583 6 -11031106.566 5 21865932.434 21865930.970 21865931.508
+ 40.600 35.100
+ -20793467.137 7 -16202693.404 7 20637139.725 20637136.563 20637138.647
+ 46.900 45.600
+ -7225324.142 5 -5630118.381 4 23164120.284 23164118.252 23164119.558
+ 35.300 29.000
+ 06 1 2 11 30 0.0000000 0 5G23G13G 3G16G25
+ -22404653.919 7 -17458171.165 7 20398247.232 20398241.888 20398246.067
+ 46.100 44.900
+ -15068697.316 6 -11741841.314 6 21751800.550 21751798.004 21751800.278
+ 41.900 37.600
+ -14243857.560 6 -11099104.450 5 21849327.116 21849325.292 21849325.776
+ 40.600 35.100
+ -20750959.439 7 -16169570.522 7 20645228.830 20645225.471 20645227.676
+ 46.900 45.600
+ -7149264.588 5 -5570851.209 4 23178593.806 23178591.709 23178593.283
+ 35.300 28.600
+ 06 1 2 11 30 30.0000000 0 5G23G13G 3G16G25
+ -22399535.620 7 -17454182.884 7 20399221.279 20399215.840 20399220.098
+ 46.300 44.900
+ -15135191.193 6 -11793654.717 6 21739147.200 21739144.691 21739146.794
+ 41.900 37.700
+ -14330737.769 6 -11166803.288 5 21832793.384 21832792.269 21832792.883
+ 41.400 34.700
+ -20708072.052 7 -16136151.778 7 20653389.940 20653386.653 20653388.893
+ 47.000 45.400
+ -7073027.713 5 -5511445.868 4 23193101.840 23193099.397 23193100.764
+ 34.900 28.100
+ 06 1 2 11 31 0.0000000 0 5G23G13G 3G16G25
+ -22393800.947 7 -17449714.313 7 20400312.841 20400307.207 20400311.550
+ 46.200 44.900
+ -15201225.021 7 -11845109.645 6 21726581.319 21726578.578 21726581.009
+ 42.100 37.200
+ -14417231.626 6 -11234201.081 5 21816334.870 21816332.880 21816333.666
+ 41.000 34.500
+ -20664806.542 7 -16102438.391 7 20661623.283 20661619.770 20661622.085
+ 47.100 45.200
+ -6996614.015 5 -5451902.777 4 23207642.746 23207640.812 23207641.750
+ 34.400 29.200
+ 06 1 2 11 31 30.0000000 0 5G23G13G 3G16G25
+ -22387449.744 7 -17444765.330 7 20401521.102 20401515.870 20401519.924
+ 46.200 45.100
+ -15266796.919 7 -11896204.636 6 21714103.383 21714100.607 21714103.074
+ 42.200 37.700
+ -14503336.115 6 -11301295.475 5 21799948.908 21799947.943 21799948.377
+ 41.000 35.100
+ -20621164.829 7 -16068431.861 7 20669927.906 20669924.439 20669926.804
+ 47.300 45.100
+ -6920023.758 5 -5392222.083 4 23222215.889 23222214.995 23222216.016
+ 33.900 28.600
+ 06 1 2 11 32 0.0000000 0 5G23G13G 3G16G25
+ -22380481.691 7 -17439335.682 7 20402847.059 20402841.826 20402845.887
+ 46.300 44.800
+ -15331904.544 7 -11946937.844 6 21701713.697 21701711.318 21701713.442
+ 42.100 37.900
+ -14589048.655 6 -11368084.436 5 21783639.035 21783637.371 21783637.974
+ 41.700 35.400
+ -20577148.151 7 -16034133.146 7 20678303.881 20678300.527 20678302.841
+ 47.300 45.200
+ -6843257.356 5 -5332404.116 4 23236825.031 23236823.230 23236824.231
+ 33.900 27.900
+ 06 1 2 11 32 30.0000000 0 5G23G13G 3G16G25
+ -22372896.183 7 -17433424.901 7 20404290.661 20404285.301 20404289.404
+ 46.100 45.100
+ -15396545.335 7 -11997307.290 6 21689413.156 21689410.433 21689412.903
+ 42.600 38.000
+ -14674366.396 6 -11434565.770 5 21767403.024 21767402.196 21767402.351
+ 41.400 35.900
+ -20532758.657 7 -15999543.932 7 20686751.122 20686747.651 20686749.893
+ 47.200 45.100
+ -6766315.350 5 -5272449.345 4 23251467.736 23251465.064 23251466.422
+ 34.400 29.200
+ 06 1 2 11 33 0.0000000 0 5G23G13G 3G16G25
+ -22364693.640 7 -17427033.314 7 20405851.406 20405846.232 20405850.260
+ 46.100 44.900
+ -15460716.914 7 -12047311.122 6 21677201.884 21677198.878 21677201.462
+ 42.500 37.300
+ -14759286.660 6 -11500737.364 5 21751243.599 21751242.136 21751242.704
+ 41.700 35.200
+ -20487997.823 7 -15964665.360 7 20695268.820 20695265.416 20695267.628
+ 47.000 45.200
+ -6689198.087 5 -5212358.011 4 23266141.343 23266139.508 23266140.999
+ 33.500 28.100
+ 06 1 2 11 33 30.0000000 0 5G23G13G 3G16G25
+ -22355874.022 7 -17420160.885 7 20407529.833 20407524.495 20407528.636
+ 46.100 44.900
+ -15524416.928 7 -12096947.486 6 21665079.977 21665077.273 21665079.683
+ 42.300 37.700
+ -14843806.543 6 -11566596.980 5 21735160.105 21735158.484 21735159.020
+ 41.300 35.500
+ -20442867.445 7 -15929498.834 7 20703856.660 20703853.421 20703855.504
+ 46.900 44.900
+ -6611905.994 5 -5152130.441 4 23280849.143 23280847.774 23280849.076
+ 34.100 26.800
+ 06 1 2 11 34 0.0000000 0 6G23G13G19G 3G16G25
+ -22346436.942 7 -17412807.320 7 20409325.541 20409320.310 20409324.431
+ 46.300 45.000
+ -15587642.781 7 -12146214.390 6 21653048.483 21653045.658 21653048.230
+ 42.800 37.500
+ -240465.409 4 -187375.807 3 24585255.017 24585251.851 24585253.153
+ 24.200 21.100
+ -14927923.378 6 -11632142.523 5 21719153.090 21719151.540 21719152.125
+ 41.500 35.500
+ -20397369.296 7 -15894045.730 7 20712514.567 20712511.392 20712513.499
+ 47.000 44.800
+ -6534439.464 5 -5091766.947 4 23295592.452 23295589.562 23295591.094
+ 34.500 27.100
+ 06 1 2 11 34 30.0000000 0 6G23G13G19G 3G16G25
+ -22336382.038 7 -17404972.335 7 20411239.049 20411233.719 20411237.761
+ 46.200 44.800
+ -15650392.219 7 -12195110.060 6 21641107.624 21641104.547 21641107.369
+ 42.400 36.700
+ -353167.581 4 -275195.609 3 24563807.642 24563805.168 24563806.497
+ 27.900 23.800
+ -15011634.721 6 -11697372.110 6 21703223.202 21703221.854 21703222.345
+ 41.500 36.100
+ -20351505.052 7 -15858307.356 7 20721242.396 20721239.101 20721241.290
+ 46.900 44.700
+ -6456798.928 5 -5031267.851 4 23310366.500 23310363.872 23310365.498
+ 34.100 27.400
+ 06 1 2 11 35 0.0000000 0 6G23G13G19G 3G16G25
+ -22325709.536 7 -17396656.102 7 20413269.760 20413264.646 20413268.572
+ 46.100 44.900
+ -15712662.996 7 -12243632.745 6 21629258.106 21629255.092 21629257.796
+ 43.000 38.000
+ -465855.874 4 -363004.610 3 24542363.787 24542361.178 24542362.460
+ 25.300 21.100
+ -15094937.811 6 -11762283.585 5 21687371.319 21687369.727 21687370.266
+ 41.600 35.700
+ -20305276.172 7 -15822284.852 7 20730039.309 20730036.112 20730038.283
+ 47.000 44.800
+ -6378984.708 5 -4970633.419 4 23325172.107 23325172.045 23325172.310
+ 32.800 28.100
+ 06 1 2 11 35 30.0000000 0 6G23G13G19G 3G16G25
+ -22314419.470 7 -17387858.653 7 20415418.131 20415413.100 20415417.049
+ 46.000 44.700
+ -15774452.610 7 -12291780.495 6 21617499.794 21617497.049 21617499.512
+ 42.900 38.000
+ -578527.982 4 -450801.016 3 24520923.370 24520920.141 24520922.317
+ 26.200 19.900
+ -15177829.943 7 -11826874.845 5 21671597.179 21671595.567 21671596.370
+ 42.200 35.600
+ -20258684.680 7 -15785979.796 7 20738905.359 20738902.221 20738904.231
+ 46.900 44.600
+ -6300997.382 5 -4909864.133 4 23340013.295 23340012.582 23340013.144
+ 33.400 28.400
+ 06 1 2 11 36 0.0000000 0 6G23G13G19G 3G16G25
+ -22302511.552 7 -17378579.758 7 20417684.557 20417679.039 20417683.264
+ 46.000 44.700
+ -15835758.831 7 -12339551.574 6 21605833.721 21605830.702 21605833.431
+ 42.800 37.800
+ -691181.321 3 -538582.799 2 24499485.564 24499482.806 24499484.034
+ 23.400 17.000
+ -15260308.320 7 -11891143.689 5 21655901.500 21655900.557 21655901.014
+ 42.000 35.600
+ -20211732.332 7 -15749393.551 7 20747840.077 20747836.862 20747839.089
+ 47.200 44.400
+ -6222837.241 5 -4848960.154 4 23354887.898 23354885.180 23354886.851
+ 33.500 25.600
+ 06 1 2 11 36 30.0000000 0 6G23G13G19G 3G16G25
+ -22289985.607 7 -17368819.285 7 20420067.946 20420062.533 20420066.763
+ 46.100 44.600
+ -15896579.174 7 -12386944.054 6 21594260.168 21594257.050 21594259.825
+ 42.900 38.100
+ -803813.227 4 -626347.856 2 24478053.696 24478049.298 24478050.952
+ 24.200 17.000
+ -15342370.387 7 -11955088.126 5 21640286.221 21640284.651 21640285.377
+ 42.700 35.700
+ -20164420.770 7 -15712527.395 7 20756843.214 20756839.959 20756842.167
+ 47.300 44.300
+ -6144504.763 5 -4787921.889 4 23369794.327 23369791.580 23369793.184
+ 32.700 26.800
+ 06 1 2 11 37 0.0000000 0 6G23G13G19G 3G16G25
+ -22276842.370 7 -17358577.805 7 20422569.249 20422563.618 20422567.978
+ 46.200 44.500
+ -15956911.390 7 -12433956.166 6 21582779.005 21582776.200 21582778.714
+ 42.900 38.300
+ -916421.077 4 -714094.199 3 24456625.591 24456621.251 24456622.690
+ 24.200 19.900
+ -15424013.628 7 -12018706.223 5 21624750.466 21624748.423 21624749.221
+ 42.500 35.800
+ -20116751.636 7 -15675382.610 7 20765914.357 20765911.059 20765913.277
+ 47.300 44.300
+ -6066000.363 5 -4726749.688 4 23384732.167 23384730.838 23384731.766
+ 33.100 27.100
+ 06 1 2 11 37 30.0000000 0 6G23G13G19G 3G16G25
+ -22263081.537 7 -17347855.077 7 20425187.839 20425182.299 20425186.562
+ 46.200 44.500
+ -16016753.026 7 -12480586.008 6 21571391.586 21571388.597 21571391.239
+ 42.800 37.900
+ -1029002.119 4 -801819.610 3 24435200.662 24435197.477 24435199.105
+ 24.900 21.600
+ -15505235.189 7 -12081995.727 5 21609294.090 21609292.346 21609293.368
+ 43.200 35.500
+ -20068726.542 7 -15637960.454 7 20775053.205 20775049.990 20775052.188
+ 47.500 44.400
+ -5987324.576 5 -4665443.898 4 23399703.548 23399701.897 23399703.392
+ 33.400 27.600
+ 06 1 2 11 38 0.0000000 0 6G23G13G19G 3G16G25
+ -22248702.844 7 -17336650.907 7 20427923.796 20427918.504 20427922.668
+ 46.100 44.400
+ -16076101.999 7 -12526831.963 6 21560097.925 21560095.053 21560097.562
+ 42.600 38.800
+ -1141553.634 4 -889522.076 3 24413782.767 24413779.795 24413781.624
+ 28.400 21.600
+ -15586032.531 7 -12144954.677 6 21593919.040 21593917.256 21593918.215
+ 42.900 36.100
+ -20020347.486 7 -15600262.487 7 20784259.677 20784256.260 20784258.468
+ 47.400 44.300
+ -5908477.719 5 -4604004.829 4 23414708.000 23414706.186 23414707.567
+ 32.700 27.400
+ 06 1 2 11 38 30.0000000 0 6G23G13G19G 3G16G25
+ -22233706.895 7 -17324965.754 7 20430777.893 20430772.011 20430776.600
+ 46.200 44.400
+ -16134955.950 7 -12572692.176 6 21548898.555 21548895.562 21548898.211
+ 43.200 38.400
+ -1254073.028 4 -977199.498 3 24392371.140 24392367.878 24392369.483
+ 26.500 22.600
+ -15666402.940 7 -12207580.952 6 21578625.237 21578623.257 21578624.268
+ 43.000 36.300
+ -19971615.971 7 -15562289.877 7 20793532.748 20793529.564 20793531.642
+ 47.200 44.000
+ -5829460.208 5 -4542432.789 4 23429745.455 23429742.854 23429744.277
+ 33.100 27.600
+ 06 1 2 11 39 0.0000000 0 6G23G13G19G 3G16G25
+ -22218093.663 7 -17312799.600 7 20433748.621 20433743.109 20433747.446
+ 46.100 44.300
+ -16193312.494 7 -12618164.806 6 21537793.612 21537790.619 21537793.294
+ 43.400 38.600
+ -1366557.715 4 -1064849.817 4 24370965.859 24370963.051 24370964.294
+ 25.600 25.600
+ -15746343.828 7 -12269872.537 6 21563413.462 21563411.232 21563411.995
+ 42.700 37.100
+ -19922533.826 7 -15524044.046 7 20802872.689 20802869.624 20802871.635
+ 47.200 44.100
+ -5750272.607 5 -4480728.192 4 23444813.804 23444812.087 23444812.984
+ 32.100 29.500
+ 06 1 2 11 39 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22201863.008 7 -17300152.342 7 20436836.951 20436831.726 20436835.815
+ 46.100 44.300
+ -16251169.659 7 -12663248.317 6 21526783.646 21526780.722 21526783.337
+ 43.400 38.800
+ -1479004.962 4 -1152470.993 2 24349567.260 24349564.805 24349565.820
+ 25.900 17.800
+ -114982.438 3 -89596.692 2 25149595.639 25149594.054 25149594.262
+ 19.900 17.000
+ -15825852.510 7 -12331827.337 6 21548282.747 21548281.185 21548281.688
+ 42.800 37.200
+ -19873102.954 7 -15485526.485 7 20812278.982 20812275.900 20812277.982
+ 47.200 43.900
+ -5670915.205 5 -4418891.308 4 23459914.319 23459913.540 23459914.263
+ 33.000 28.100
+ 06 1 2 11 40 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22185015.480 7 -17287024.402 7 20440043.061 20440037.734 20440041.891
+ 46.100 44.300
+ -16308524.844 7 -12707940.667 6 21515869.166 21515866.483 21515868.903
+ 43.400 38.800
+ -1591412.094 4 -1240060.964 3 24328176.891 24328173.264 24328175.766
+ 26.500 19.300
+ -201249.991 2 -156818.163 3 25133178.703 25133178.196 25133177.626
+ 12.600 20.500
+ -15904926.367 7 -12393443.311 6 21533235.458 21533233.827 21533234.505
+ 43.200 36.900
+ -19823324.948 7 -15446738.429 7 20821751.642 20821748.327 20821750.503
+ 47.400 43.900
+ -5591388.634 5 -4356922.584 4 23475048.005 23475046.700 23475047.885
+ 32.700 27.600
+ 06 1 2 11 40 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22167551.128 7 -17273415.819 7 20443366.345 20443361.175 20443365.190
+ 46.000 44.300
+ -16365375.900 7 -12752240.192 6 21505050.687 21505048.115 21505050.414
+ 43.300 39.100
+ -1703776.579 3 -1327617.633 3 24306794.700 24306791.661 24306792.934
+ 22.600 19.900
+ -287543.960 3 -224060.138 3 25116758.729 25116757.176 25116757.427
+ 18.600 23.400
+ -15983562.860 7 -12454718.469 6 21518271.148 21518269.759 21518270.353
+ 42.800 37.000
+ -19773201.628 7 -15407681.297 7 20831289.850 20831286.428 20831288.669
+ 47.400 43.800
+ -5511693.377 5 -4294822.408 4 23490213.815 23490212.042 23490213.311
+ 32.100 27.100
+ 06 1 2 11 41 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22149469.997 7 -17259326.631 7 20446807.430 20446801.968 20446806.027
+ 45.900 44.400
+ -16421720.616 7 -12796145.160 6 21494328.732 21494326.068 21494328.428
+ 43.200 39.100
+ -1816095.739 4 -1415139.011 2 24285422.243 24285417.669 24285419.919
+ 26.200 13.900
+ -373863.632 3 -291322.174 4 25100332.215 25100330.475 25100331.276
+ 20.500 24.600
+ -16061759.484 7 -12515650.881 6 21503391.565 21503389.451 21503390.152
+ 42.600 37.000
+ -19722734.516 7 -15368356.268 7 20840893.222 20840890.102 20840892.131
+ 47.300 43.900
+ -5431829.714 5 -4232591.030 4 23505412.490 23505409.483 23505411.177
+ 32.000 25.600
+ 06 1 2 11 41 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22130772.748 7 -17244757.348 7 20450365.165 20450359.930 20450364.024
+ 46.100 44.400
+ -16477556.585 7 -12839653.703 6 21483703.620 21483700.876 21483703.360
+ 43.700 39.300
+ -1928366.903 4 -1502623.024 3 24264058.183 24264053.753 24264055.426
+ 26.800 20.500
+ -460208.514 4 -358603.877 4 25083901.982 25083899.477 25083901.120
+ 25.600 24.600
+ -16139513.617 7 -12576238.482 6 21488594.671 21488593.281 21488593.804
+ 43.000 37.200
+ -19671925.287 7 -15328764.661 7 20850561.799 20850558.776 20850560.745
+ 47.100 43.800
+ -5351798.197 5 -4170228.837 3 23520640.669 23520639.117 23520640.250
+ 31.600 23.800
+ 06 1 2 11 42 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22111459.278 7 -17229707.896 7 20454040.440 20454035.117 20454039.239
+ 46.100 44.300
+ -16532881.796 7 -12882764.262 6 21473175.786 21473172.804 21473175.449
+ 43.900 39.300
+ -2040587.347 4 -1590067.485 3 24242702.674 24242699.253 24242700.260
+ 25.600 23.800
+ -546578.154 4 -425904.868 4 25067466.109 25067464.553 25067465.277
+ 25.600 26.500
+ -16216822.648 7 -12636479.262 6 21473883.417 21473881.750 21473882.491
+ 43.400 36.900
+ -19620775.965 7 -15288908.043 7 20860295.134 20860292.239 20860294.152
+ 47.300 43.800
+ -5271599.317 5 -4107736.242 4 23535901.367 23535900.982 23535901.876
+ 32.700 26.800
+ 06 1 2 11 42 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22091530.010 7 -17214178.601 7 20457832.701 20457827.555 20457831.644
+ 46.200 44.400
+ -16587694.154 7 -12925475.187 6 21462745.299 21462742.375 21462744.920
+ 43.600 39.500
+ -2152754.366 4 -1677470.284 3 24221358.554 24221354.104 24221355.771
+ 25.900 22.100
+ -632971.963 4 -493224.690 3 25051025.473 25051024.247 25051024.515
+ 24.900 23.800
+ -16293684.408 7 -12696371.514 6 21459257.055 21459255.503 21459256.012
+ 43.000 37.300
+ -19569288.210 7 -15248787.710 7 20870093.023 20870090.001 20870091.962
+ 47.300 43.700
+ -5191233.482 5 -4045113.553 4 23551194.793 23551194.123 23551194.735
+ 32.700 25.900
+ 06 1 2 11 43 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22070985.409 7 -17198169.825 7 20461742.570 20461737.070 20461741.298
+ 46.200 44.200
+ -16641991.458 7 -12967784.773 6 21452412.710 21452409.862 21452412.446
+ 43.800 39.100
+ -2264865.321 4 -1764829.467 3 24200024.017 24200020.093 24200021.587
+ 27.100 21.100
+ -719389.112 4 -560562.689 3 25034579.964 25034578.916 25034579.379
+ 24.600 23.000
+ -16370096.377 7 -12755913.277 6 21444716.082 21444714.911 21444715.274
+ 43.200 37.700
+ -19517463.859 7 -15208405.099 7 20879954.966 20879951.963 20879953.884
+ 47.400 43.800
+ -5110701.142 5 -3982361.111 3 23566520.685 23566518.580 23566519.979
+ 31.300 23.400
+ 06 1 2 11 43 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22049825.802 7 -17181681.824 7 20465769.007 20465763.630 20465767.828
+ 46.200 44.200
+ -16695771.614 7 -13009691.391 6 21442178.781 21442175.828 21442178.460
+ 43.700 39.400
+ -2376917.656 4 -1852142.929 4 24178701.256 24178697.535 24178698.652
+ 25.900 25.900
+ -805829.382 4 -627918.727 3 25018131.939 25018130.364 25018131.128
+ 27.100 23.000
+ -16446055.732 7 -12815102.356 6 21430261.802 21430260.009 21430260.734
+ 43.400 37.300
+ -19465304.767 7 -15167761.645 7 20889880.724 20889877.456 20889879.519
+ 47.300 43.600
+ -5030002.903 5 -3919479.387 3 23581875.648 23581874.374 23581875.737
+ 30.400 22.600
+ 06 1 2 11 44 0.0000000 0 7G23G13G19G27G 3G16G25
+ -22028051.492 7 -17164714.834 7 20469912.465 20469907.168 20469911.193
+ 46.000 44.200
+ -16749032.219 7 -13051193.162 6 21432043.717 21432040.668 21432043.346
+ 43.600 39.300
+ -2488908.474 4 -1939408.437 3 24157389.129 24157385.910 24157388.209
+ 29.000 21.100
+ -892292.017 4 -695292.215 3 25001678.613 25001676.573 25001677.748
+ 24.900 18.600
+ -16521560.040 7 -12873936.862 6 21415893.922 21415891.932 21415892.872
+ 43.500 37.300
+ -19412811.984 7 -15126858.180 7 20899869.735 20899866.513 20899868.584
+ 47.400 43.600
+ -4949139.050 5 -3856468.596 4 23597264.496 23597262.378 23597263.912
+ 30.600 24.200
+ 06 1 2 11 44 30.0000000 0 7G23G13G19G27G 3G16G25
+ -22005662.943 7 -17147269.214 7 20474172.905 20474167.492 20474171.731
+ 46.100 44.100
+ -16801771.133 7 -13092288.417 6 21422007.613 21422004.634 21422007.297
+ 43.500 39.300
+ -2600835.238 4 -2026624.090 4 24136089.439 24136087.293 24136088.682
+ 26.500 24.600
+ -978776.287 3 -762682.559 3 24985221.181 24985219.125 24985220.116
+ 22.600 19.300
+ -16596606.917 7 -12932414.934 6 21401612.762 21401610.976 21401611.805
+ 43.800 37.200
+ -19359987.955 7 -15085696.594 7 20909921.780 20909918.467 20909920.699
+ 47.700 43.300
+ -4868110.212 5 -3793329.290 4 23612684.548 23612682.277 23612683.217
+ 30.600 26.500
+ 06 1 2 11 45 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21982660.367 7 -17129345.134 7 20478550.234 20478544.628 20478548.969
+ 45.900 43.900
+ -16853986.232 7 -13132975.506 6 21412071.128 21412068.468 21412070.910
+ 43.400 39.500
+ -2712694.994 4 -2113787.472 3 24114803.596 24114801.000 24114802.094
+ 25.900 23.000
+ -1065281.670 3 -830089.331 2 24968759.666 24968757.241 24968759.310
+ 19.900 16.100
+ -16671194.001 7 -12990534.721 6 21387419.371 21387417.422 21387418.406
+ 44.000 37.400
+ -19306834.113 7 -15044278.015 7 20920036.751 20920033.326 20920035.623
+ 47.700 43.200
+ -4786916.777 5 -3730061.722 4 23628135.319 23628133.172 23628133.913
+ 30.800 25.600
+ 06 1 2 11 45 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21959044.627 7 -17110943.265 7 20483043.983 20483038.525 20483042.771
+ 45.900 43.800
+ -16905675.456 7 -13173252.819 6 21402235.123 21402232.374 21402234.808
+ 43.300 39.700
+ -2824485.239 5 -2200896.738 3 24093531.290 24093527.900 24093529.713
+ 30.100 19.900
+ -1151807.412 3 -897511.973 2 24952294.942 24952291.670 24952293.582
+ 19.900 15.100
+ -16745318.505 7 -13048294.048 6 21373313.771 21373312.263 21373312.786
+ 43.800 38.000
+ -19253352.268 7 -15002603.847 7 20930213.852 20930210.528 20930212.770
+ 47.700 43.100
+ -4705559.334 5 -3666666.352 4 23643617.197 23643614.982 23643615.974
+ 31.500 26.500
+ 06 1 2 11 46 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21934815.969 7 -17092063.794 7 20487654.444 20487649.173 20487653.288
+ 45.900 43.800
+ -16956836.693 7 -13213118.717 6 21392499.522 21392496.766 21392499.227
+ 43.700 39.600
+ -2936203.419 4 -2287949.852 4 24072272.204 24072268.604 24072270.059
+ 28.600 24.600
+ -1238352.700 3 -964949.848 2 24935824.375 24935823.151 24935824.105
+ 19.300 16.100
+ -16818978.248 7 -13105691.232 6 21359296.866 21359295.078 21359296.005
+ 44.400 37.500
+ -19199544.284 7 -14960675.546 7 20940453.162 20940449.908 20940452.115
+ 47.800 43.100
+ -4624038.440 5 -3603143.591 4 23659129.558 23659127.452 23659128.682
+ 30.400 26.800
+ 06 1 2 11 46 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21909974.702 7 -17072706.969 7 20492381.634 20492376.392 20492380.390
+ 45.800 43.800
+ -17007467.900 7 -13252571.608 6 21382864.721 21382862.006 21382864.442
+ 43.600 39.700
+ -3047846.556 4 -2374944.469 3 24051027.125 24051023.767 24051025.300
+ 27.600 23.000
+ -1324917.300 3 -1032402.732 3 24919352.820 24919350.821 24919351.636
+ 21.600 22.100
+ -16892170.586 7 -13162724.211 6 21345368.937 21345367.136 21345367.914
+ 44.200 37.900
+ -19145411.736 7 -14918494.336 7 20950754.345 20950750.967 20950753.253
+ 47.800 42.800
+ -4542354.411 4 -3539493.760 4 23674672.504 23674671.921 23674672.240
+ 29.000 26.500
+ 06 1 2 11 47 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21884521.623 7 -17052873.409 7 20497225.093 20497219.985 20497223.900
+ 45.900 43.900
+ -17057567.140 7 -13291609.977 6 21373330.934 21373328.417 21373330.605
+ 43.400 39.700
+ -3159412.186 4 -2461878.682 4 24029796.705 24029793.611 24029794.771
+ 27.400 24.600
+ -1411500.640 3 -1099870.246 3 24902875.247 24902874.724 24902874.267
+ 21.100 23.400
+ -16964893.246 7 -13219391.200 6 21331530.118 21331528.497 21331529.254
+ 44.300 38.000
+ -19090956.587 7 -14876061.752 7 20961116.733 20961113.506 20961115.648
+ 47.600 42.800
+ -4460507.779 4 -3475717.225 4 23690247.467 23690246.784 23690247.223
+ 28.100 25.900
+ 06 1 2 11 47 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21858457.387 7 -17032563.617 7 20502184.968 20502179.842 20502183.778
+ 45.900 43.800
+ -17107132.575 7 -13330232.394 6 21363899.137 21363896.490 21363898.876
+ 43.700 40.200
+ -3270897.448 5 -2548750.295 4 24008582.954 24008578.626 24008580.391
+ 30.600 24.900
+ -1498101.282 3 -1167351.248 3 24886396.492 24886395.535 24886395.397
+ 22.100 22.100
+ -17037143.898 7 -13275690.392 6 21317781.341 21317779.568 21317780.435
+ 44.300 37.900
+ -19036180.362 7 -14833378.981 7 20971540.261 20971537.028 20971539.164
+ 47.500 42.600
+ -4378499.229 5 -3411814.473 4 23705853.997 23705852.386 23705852.857
+ 30.800 24.900
+ 06 1 2 11 48 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21831782.549 7 -17011778.034 7 20507260.957 20507255.886 20507259.806
+ 45.700 43.700
+ -17156161.287 7 -13368436.587 6 21354569.138 21354566.515 21354568.865
+ 43.500 40.000
+ -3382299.790 4 -2635557.325 3 23987383.818 23987378.664 23987381.137
+ 27.400 19.300
+ -1584719.167 4 -1234845.674 3 24869914.223 24869912.428 24869913.222
+ 25.300 20.500
+ -17108920.377 7 -13331620.098 6 21304123.144 21304121.032 21304121.950
+ 44.200 37.900
+ -18981084.789 7 -14790447.367 7 20982024.535 20982021.339 20982023.431
+ 47.300 42.600
+ -4296329.065 5 -3347785.811 3 23721491.413 23721488.370 23721489.855
+ 30.100 23.400
+ 06 1 2 11 48 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21804497.539 7 -16990516.996 7 20512453.213 20512448.066 20512452.028
+ 45.900 43.700
+ -17204651.820 7 -13406221.415 6 21345342.041 21345339.082 21345341.688
+ 43.500 40.000
+ -3493616.488 4 -2722297.545 4 23966199.301 23966196.464 23966197.342
+ 26.500 24.900
+ -1671353.603 4 -1302353.010 3 24853428.547 24853425.937 24853427.511
+ 25.900 20.500
+ -17180219.767 7 -13387178.050 6 21290554.712 21290553.144 21290553.871
+ 44.400 38.100
+ -18925671.609 7 -14747268.265 7 20992569.465 20992566.125 20992568.372
+ 47.700 42.400
+ -4213997.873 4 -3283631.662 3 23737157.932 23737155.090 23737156.902
+ 29.900 23.000
+ 06 1 2 11 49 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21776603.026 7 -16968781.014 7 20517761.479 20517756.139 20517760.321
+ 46.000 43.600
+ -17252602.363 7 -13443585.473 6 21336217.366 21336214.554 21336217.055
+ 43.900 40.000
+ -3604844.665 4 -2808968.835 4 23945032.624 23945030.703 23945032.070
+ 27.400 25.600
+ -1758003.845 4 -1369872.690 2 24836939.999 24836936.865 24836938.965
+ 26.500 17.000
+ -17251039.880 7 -13442362.549 6 21277078.003 21277076.529 21277077.161
+ 44.300 38.400
+ -18869942.802 7 -14703843.219 7 21003174.292 21003170.998 21003173.209
+ 47.700 42.400
+ -4131506.210 5 -3219352.471 4 23752856.054 23752853.761 23752855.227
+ 31.100 25.900
+ 06 1 2 11 49 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21748099.389 7 -16946570.395 7 20523185.622 20523180.250 20523184.390
+ 45.900 43.600
+ -17300010.631 7 -13480526.976 6 21327195.689 21327192.877 21327195.452
+ 43.800 40.000
+ -3715981.596 4 -2895569.007 4 23923884.883 23923882.031 23923882.977
+ 27.400 27.400
+ -1844669.314 3 -1437404.219 3 24820447.397 24820445.880 24820446.096
+ 23.800 22.100
+ -17321378.546 7 -13497171.869 6 21263693.180 21263691.593 21263692.167
+ 44.400 38.400
+ -18813899.791 7 -14660173.342 7 21013838.951 21013835.561 21013837.825
+ 47.900 42.300
+ -4048854.528 4 -3154948.589 4 23768582.513 23768581.736 23768582.486
+ 28.600 25.900
+ 06 1 2 11 50 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21718987.661 7 -16923885.942 7 20528725.195 20528720.113 20528724.110
+ 46.000 43.600
+ -17346874.805 7 -13517044.519 6 21318277.988 21318274.860 21318277.613
+ 43.800 39.900
+ -3827024.798 4 -2982096.098 4 23902753.610 23902750.372 23902752.470
+ 29.900 24.600
+ -1931349.142 4 -1504946.940 3 24803952.008 24803951.443 24803951.436
+ 26.200 23.000
+ -17391233.547 7 -13551604.312 6 21250400.221 21250398.443 21250399.290
+ 44.600 38.400
+ -18757544.380 8 -14616260.031 7 21024562.902 21024559.663 21024561.861
+ 48.000 42.200
+ -3966043.277 4 -3090420.407 3 23784340.471 23784340.147 23784340.913
+ 28.800 22.600
+ 06 1 2 11 50 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21689268.781 7 -16900728.376 7 20534380.556 20534375.424 20534379.379
+ 46.000 43.600
+ -17393192.670 7 -13553136.368 6 21309463.664 21309460.987 21309463.383
+ 43.800 39.800
+ -3937971.480 4 -3068548.074 4 23881641.417 23881638.747 23881640.008
+ 29.000 27.900
+ -2018042.886 4 -1572500.471 3 24787455.726 24787453.733 24787454.616
+ 26.200 23.800
+ -17460602.416 7 -13605657.962 6 21237199.491 21237198.043 21237198.844
+ 44.800 38.400
+ -18700878.224 7 -14572104.584 7 21035346.325 21035342.895 21035345.174
+ 47.800 42.200
+ -3883073.162 4 -3025768.402 3 23800130.575 23800128.724 23800129.633
+ 29.700 22.600
+ 06 1 2 11 51 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21658943.080 7 -16877097.969 7 20540151.282 20540146.166 20540150.171
+ 46.000 43.400
+ -17438962.356 7 -13588801.057 6 21300754.111 21300751.396 21300753.773
+ 43.800 40.400
+ -4048818.733 4 -3154922.497 3 23860548.392 23860544.170 23860546.106
+ 29.000 22.600
+ -2104749.600 4 -1640064.135 4 24770956.165 24770953.691 24770955.201
+ 27.600 24.900
+ -17529483.025 7 -13659331.148 6 21224092.612 21224090.333 21224091.288
+ 44.600 38.500
+ -18643903.491 7 -14527708.691 7 21046188.185 21046184.834 21046186.994
+ 47.700 42.100
+ -3799944.666 4 -2960992.958 3 23815950.463 23815947.069 23815948.828
+ 29.500 21.600
+ 06 1 2 11 51 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21628011.304 7 -16852995.291 7 20546037.509 20546032.268 20546036.339
+ 46.100 43.300
+ -17484182.014 7 -13624037.155 6 21292149.163 21292146.498 21292148.850
+ 43.900 40.500
+ -4159563.853 4 -3241217.351 4 23839473.896 23839471.088 23839472.094
+ 28.400 28.100
+ -2191468.537 4 -1707637.322 4 24754453.797 24754451.301 24754452.361
+ 24.900 24.600
+ -17597873.003 7 -13712622.019 6 21211078.011 21211076.230 21211077.114
+ 45.100 38.600
+ -18586621.585 7 -14483073.440 7 21057088.276 21057085.100 21057087.277
+ 47.700 42.000
+ -3716658.313 4 -2896094.551 4 23831799.544 23831796.529 23831797.588
+ 27.900 24.200
+ 06 1 2 11 52 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21596474.476 7 -16828421.145 7 20552038.754 20552033.510 20552037.683
+ 46.100 43.300
+ -17528850.099 7 -13658843.452 6 21283648.996 21283646.292 21283648.742
+ 44.100 40.400
+ -4270204.356 5 -3327430.701 3 23818419.694 23818416.083 23818417.978
+ 31.100 23.400
+ -2278199.058 4 -1775219.526 3 24737949.549 24737946.668 24737948.814
+ 24.900 23.400
+ -17665770.040 7 -13765528.785 6 21198157.592 21198155.606 21198156.608
+ 45.100 38.600
+ -18529034.269 7 -14438200.206 6 21068046.819 21068043.628 21068045.855
+ 47.800 41.900
+ -3633214.552 4 -2831073.483 4 23847677.254 23847675.618 23847676.329
+ 29.200 24.600
+ 06 1 2 11 52 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21564333.160 7 -16803375.971 7 20558155.270 20558149.825 20558154.101
+ 46.100 43.200
+ -17572964.009 7 -13693217.935 6 21275254.397 21275251.531 21275254.067
+ 44.000 40.300
+ -4380737.589 4 -3413560.451 4 23797385.099 23797382.779 23797383.978
+ 27.900 26.200
+ -2364940.578 4 -1842810.304 4 24721443.014 24721440.499 24721442.318
+ 24.600 24.200
+ -17733171.864 7 -13818049.671 6 21185331.720 21185329.441 21185330.704
+ 45.300 38.400
+ -18471143.583 7 -14393090.581 6 21079063.238 21079059.893 21079062.120
+ 47.700 41.900
+ -3549614.062 4 -2765930.278 4 23863585.385 23863584.207 23863585.088
+ 29.200 24.600
+ 06 1 2 11 53 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21531588.116 7 -16777860.360 7 20564386.350 20564380.998 20564385.149
+ 46.000 43.100
+ -17616522.230 7 -13727159.406 6 21266965.558 21266962.771 21266965.264
+ 43.700 40.500
+ -4491160.519 4 -3499604.290 3 23776374.009 23776369.115 23776371.529
+ 28.800 21.600
+ -2451692.107 3 -1910408.848 4 24704934.826 24704932.504 24704933.800
+ 23.800 26.500
+ -17800076.399 7 -13870183.040 6 21172600.382 21172597.978 21172599.255
+ 45.200 38.900
+ -18412950.961 7 -14347745.683 6 21090137.046 21090133.676 21090135.964
+ 47.500 41.500
+ -3465857.287 4 -2700665.288 3 23879523.328 23879522.487 23879523.423
+ 29.200 21.600
+ 06 1 2 11 53 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21498240.535 7 -16751875.238 7 20570732.019 20570726.885 20570730.855
+ 45.900 43.100
+ -17659522.770 7 -13760666.321 6 21258782.783 21258780.040 21258782.515
+ 44.000 40.500
+ -4601470.490 5 -3585560.065 4 23755381.948 23755378.710 23755380.066
+ 30.600 27.100
+ -2538453.145 3 -1978014.841 4 24688423.203 24688422.368 24688422.610
+ 21.100 24.600
+ -17866481.273 7 -13921927.075 6 21159963.750 21159961.511 21159962.679
+ 45.400 38.800
+ -18354458.116 7 -14302166.843 6 21101267.645 21101264.392 21101266.612
+ 47.400 41.400
+ -3381944.804 4 -2635278.992 4 23895490.953 23895491.136 23895491.026
+ 29.000 24.900
+ 06 1 2 11 54 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21464291.124 7 -16725421.160 7 20577192.670 20577187.184 20577191.387
+ 46.000 43.100
+ -17701963.996 7 -13793737.405 6 21250706.353 21250703.690 21250706.104
+ 43.900 40.700
+ -4711664.989 4 -3671425.891 3 23734412.240 23734408.290 23734410.338
+ 28.800 19.300
+ -2625223.036 3 -2045627.674 3 24671911.742 24671910.146 24671911.177
+ 20.500 21.100
+ -17932384.496 7 -13973280.215 6 21147422.488 21147420.590 21147421.559
+ 45.300 39.000
+ -18295666.846 7 -14256355.467 6 21112455.277 21112451.903 21112454.133
+ 47.400 41.200
+ -3297877.209 4 -2569771.838 4 23911490.049 23911488.574 23911488.961
+ 28.800 24.600
+ 06 1 2 11 54 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21429740.908 7 -16698498.924 7 20583767.183 20583761.865 20583765.963
+ 46.100 43.100
+ -17743844.260 7 -13826371.375 6 21242736.949 21242734.314 21242736.569
+ 43.600 40.700
+ -4821741.246 5 -3757199.558 4 23713464.074 23713462.620 23713463.926
+ 31.600 27.100
+ -2712001.117 3 -2113246.949 3 24655399.772 24655397.391 24655398.301
+ 23.800 21.100
+ -17997783.843 7 -14024240.727 6 21134977.314 21134975.415 21134976.482
+ 45.300 38.900
+ -18236578.869 7 -14210312.889 6 21123699.457 21123695.966 21123698.271
+ 47.300 41.000
+ -3213654.961 5 -2504144.182 4 23927517.179 23927515.873 23927516.148
+ 30.100 24.600
+ 06 1 2 11 55 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21394590.854 7 -16671109.281 7 20590455.663 20590450.745 20590454.641
+ 45.900 43.100
+ -17785161.227 7 -13858566.411 6 21234874.472 21234872.070 21234874.193
+ 43.700 41.100
+ -4931696.375 5 -3842878.844 3 23692541.455 23692537.915 23692540.385
+ 31.500 23.000
+ -2798786.327 4 -2180871.779 3 24638885.364 24638882.465 24638884.497
+ 26.500 21.600
+ -18062677.035 7 -14074806.839 6 21122628.684 21122626.641 21122627.732
+ 45.400 39.100
+ -18177195.723 7 -14164040.310 6 21134999.556 21134996.288 21134998.436
+ 47.400 40.900
+ -3129278.832 4 -2438396.583 3 23943572.892 23943571.630 23943572.020
+ 28.100 22.600
+ 06 1 2 11 55 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21358841.488 7 -16643252.641 7 20597258.737 20597253.733 20597257.673
+ 46.100 43.000
+ -17825913.267 7 -13890321.244 6 21227119.726 21227116.979 21227119.455
+ 44.000 40.800
+ -5041527.545 4 -3928461.553 4 23671641.326 23671638.545 23671639.211
+ 26.800 28.100
+ -2885577.695 4 -2248501.426 3 24622368.302 24622366.221 24622367.630
+ 26.500 20.500
+ -18127061.883 7 -14124976.836 6 21110376.717 21110374.611 21110375.788
+ 45.600 39.300
+ -18117519.310 7 -14117539.212 6 21146355.475 21146352.346 21146354.470
+ 47.400 41.200
+ -3044749.155 4 -2372529.347 3 23959658.567 23959656.947 23959657.869
+ 27.400 21.100
+ 06 1 2 11 56 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21322494.286 7 -16614930.153 7 20604175.572 20604170.389 20604174.387
+ 45.900 42.900
+ -17866098.946 7 -13921634.772 6 21219472.875 21219469.848 21219472.543
+ 44.100 40.700
+ -5151232.350 5 -4013945.802 4 23650765.667 23650761.803 23650763.786
+ 30.800 25.900
+ -2972374.709 4 -2316135.451 3 24605852.008 24605849.318 24605850.818
+ 28.100 21.100
+ -18190936.235 7 -14174749.050 6 21098221.806 21098219.657 21098220.787
+ 45.600 38.900
+ -18057551.361 7 -14070810.938 6 21157767.384 21157763.978 21157766.228
+ 47.300 41.000
+ -2960066.617 4 -2306542.972 3 23975773.228 23975771.906 23975772.513
+ 28.600 22.600
+ 06 1 2 11 56 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21285549.916 7 -16586142.343 7 20611205.909 20611200.639 20611204.670
+ 45.900 42.900
+ -17905716.164 7 -13952505.333 6 21211934.026 21211931.091 21211933.710
+ 44.200 41.000
+ -5260807.761 5 -4099329.139 5 23629913.668 23629911.080 23629912.060
+ 32.000 30.200
+ -3059176.357 4 -2383773.117 2 24589334.742 24589331.272 24589333.428
+ 26.800 17.800
+ -18254298.200 7 -14224122.009 6 21086164.304 21086162.555 21086163.380
+ 45.600 39.700
+ -17997293.725 7 -14023856.943 6 21169234.020 21169230.644 21169232.812
+ 47.400 41.200
+ -2875231.773 4 -2240437.952 3 23991917.911 23991915.487 23991916.578
+ 28.100 22.600
+ 06 1 2 11 57 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21248009.547 7 -16556890.119 7 20618349.658 20618344.223 20618348.484
+ 46.100 42.500
+ -17944763.260 7 -13982931.641 6 21204503.610 21204500.763 21204503.270
+ 44.000 41.200
+ -5370251.071 5 -4184609.640 4 23609088.063 23609084.235 23609085.471
+ 30.100 26.800
+ -3145982.284 4 -2451414.121 3 24572815.228 24572812.877 24572814.607
+ 27.600 19.900
+ -18317145.430 7 -14273093.866 6 21074204.998 21074202.960 21074204.019
+ 45.900 39.300
+ -17936748.072 7 -13976678.518 6 21180755.275 21180752.104 21180754.109
+ 47.600 41.100
+ -2790245.180 4 -2174214.696 3 24008091.030 24008087.928 24008089.343
+ 27.400 22.100
+ 06 1 2 11 57 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21209874.267 7 -16527174.323 7 20625606.531 20625601.124 20625605.307
+ 46.000 42.300
+ -17983238.690 7 -14012912.496 6 21197181.875 21197179.091 21197181.552
+ 44.000 41.000
+ -5479559.596 4 -4269785.063 4 23588286.586 23588283.315 23588284.435
+ 28.800 26.800
+ -3232791.493 4 -2519057.653 4 24556296.671 24556294.808 24556295.464
+ 27.600 24.200
+ -18379476.014 7 -14321663.132 6 21062343.742 21062341.979 21062342.867
+ 45.800 39.700
+ -17875915.897 7 -13929276.828 6 21192331.110 21192327.976 21192330.064
+ 47.400 40.700
+ -2705107.397 4 -2107873.623 3 24024291.512 24024288.838 24024290.217
+ 27.100 23.000
+ 06 1 2 11 58 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21171145.040 7 -16496995.717 7 20632976.438 20632971.055 20632975.195
+ 46.100 42.400
+ -18021140.751 7 -14042446.573 6 21189969.320 21189966.375 21189969.028
+ 44.300 41.000
+ -5588730.684 4 -4354853.436 4 23567511.761 23567508.913 23567510.091
+ 28.800 27.100
+ -3319603.141 4 -2586703.069 4 24539776.178 24539774.741 24539775.467
+ 24.200 26.500
+ -18441288.057 7 -14369828.341 6 21050581.323 21050579.547 21050580.405
+ 45.800 39.900
+ -17814799.008 7 -13881653.282 6 21203961.152 21203958.198 21203960.250
+ 47.600 40.700
+ -2619819.127 4 -2041415.291 3 24040521.536 24040519.142 24040519.597
+ 27.100 23.000
+ 06 1 2 11 58 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21131823.043 7 -16466355.209 7 20640459.373 20640453.811 20640458.140
+ 46.200 42.500
+ -18058467.554 7 -14071532.395 6 21182866.196 21182863.336 21182865.930
+ 44.100 41.100
+ -5697761.742 5 -4439812.636 4 23546765.164 23546760.732 23546762.484
+ 30.800 27.400
+ -3406416.475 3 -2654349.789 4 24523255.409 24523254.061 24523254.768
+ 23.800 29.000
+ -18502579.184 7 -14417587.642 6 21038918.168 21038916.223 21038917.037
+ 45.700 39.800
+ -17753399.372 7 -13833809.410 6 21215645.279 21215642.098 21215644.301
+ 47.600 40.700
+ -2534380.881 4 -1974840.065 3 24056778.651 24056777.472 24056777.907
+ 26.800 23.400
+ 06 1 2 11 59 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21091909.412 7 -16435253.690 7 20648054.623 20648049.109 20648053.427
+ 46.200 42.400
+ -18095217.436 7 -14100168.669 6 21175872.923 21175870.256 21175872.614
+ 44.000 41.500
+ -5806649.750 5 -4524660.412 4 23526043.812 23526040.230 23526041.540
+ 32.100 27.100
+ -3493230.812 3 -2721997.242 4 24506735.083 24506734.013 24506733.929
+ 22.100 27.900
+ -18563347.610 7 -14464939.653 6 21027354.176 21027352.338 21027353.194
+ 45.900 39.900
+ -17691718.534 7 -13785746.423 6 21227382.972 21227379.619 21227381.757
+ 47.400 40.500
+ -2448793.259 4 -1908148.490 3 24073063.604 24073063.863 24073064.527
+ 27.100 21.600
+ 06 1 2 11 59 30.0000000 0 7G23G13G19G27G 3G16G25
+ -21051405.249 7 -16403692.015 7 20655762.231 20655756.862 20655761.032
+ 46.100 42.300
+ -18131388.574 7 -14128353.972 6 21168989.861 21168987.081 21168989.549
+ 44.000 41.000
+ -5915392.271 5 -4609394.819 4 23505350.026 23505346.841 23505348.759
+ 33.200 25.600
+ -3580045.090 4 -2789644.710 4 24490215.834 24490214.153 24490214.784
+ 25.300 29.200
+ -18623591.257 7 -14511882.738 6 21015889.946 21015888.335 21015889.122
+ 46.000 40.000
+ -17629758.149 7 -13737465.603 6 21239173.542 21239170.221 21239172.455
+ 47.300 40.300
+ -2363056.830 4 -1841340.928 3 24089379.047 24089379.055 24089379.669
+ 26.800 21.600
+ 06 1 2 12 0 0.0000000 0 7G23G13G19G27G 3G16G25
+ -21010311.638 7 -16371671.029 7 20663581.813 20663576.711 20663580.814
+ 46.000 42.400
+ -18166979.906 7 -14156087.476 6 21162217.103 21162214.142 21162216.813
+ 44.300 41.100
+ -6023986.157 5 -4694013.432 4 23484686.026 23484682.082 23484684.185
+ 33.000 25.900
+ -3666858.689 4 -2857291.634 4 24473695.523 24473694.335 24473694.689
+ 26.500 29.200
+ -18683308.056 7 -14558415.306 6 21004526.254 21004524.644 21004525.406
+ 46.000 40.000
+ -17567519.836 7 -13688968.221 6 21251017.217 21251013.751 21251016.067
+ 47.300 40.100
+ -2277172.242 4 -1774417.933 3 24105723.225 24105721.777 24105723.285
+ 27.100 22.100
+ 06 1 2 12 0 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20968629.660 7 -16339191.575 7 20671513.807 20671508.539 20671512.568
+ 45.900 42.100
+ -18201989.435 7 -14183367.632 6 21155555.090 21155552.093 21155554.735
+ 44.300 41.200
+ -6132429.079 5 -4778514.401 4 23464050.992 23464045.799 23464048.032
+ 32.600 25.600
+ -3753670.612 4 -2924937.265 4 24457176.679 24457174.620 24457175.593
+ 28.800 27.600
+ -18742496.198 7 -14604535.924 6 20993263.095 20993261.360 20993262.227
+ 45.800 39.800
+ -17505005.512 7 -13640255.767 6 21262913.017 21262909.807 21262911.964
+ 47.000 40.100
+ -2191140.100 4 -1707379.983 3 24122094.564 24122093.774 24122094.593
+ 24.600 22.100
+ 06 1 2 12 1 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20926360.642 7 -16306254.688 7 20679557.093 20679552.101 20679556.091
+ 46.100 42.100
+ -18236415.996 7 -14210193.525 6 21149003.756 21149001.014 21149003.403
+ 44.000 41.400
+ -6240718.070 5 -4862895.386 4 23443442.541 23443439.346 23443440.972
+ 31.800 27.100
+ -3840480.004 4 -2992580.953 3 24440655.996 24440654.644 24440655.357
+ 26.500 23.000
+ -18801153.609 7 -14650242.989 6 20982100.827 20982099.191 20982100.038
+ 45.800 40.000
+ -17442216.631 7 -13591329.369 6 21274861.530 21274858.227 21274860.471
+ 47.000 40.100
+ -2104960.888 4 -1640227.410 3 24138495.144 24138493.228 24138494.362
+ 26.200 19.300
+ 06 1 2 12 1 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20883506.228 7 -16272861.646 7 20687712.418 20687707.069 20687711.237
+ 45.900 42.200
+ -18270257.599 7 -14236563.608 6 21142563.890 21142561.092 21142563.589
+ 43.900 41.200
+ -6348850.385 5 -4947154.348 4 23422865.466 23422862.889 23422864.165
+ 32.300 28.600
+ -3927286.249 4 -3060222.195 3 24424138.697 24424135.607 24424137.524
+ 26.500 20.500
+ -18859278.282 7 -14695534.921 6 20971040.389 20971038.453 20971039.319
+ 45.600 39.900
+ -17379155.213 7 -13542190.611 6 21286861.740 21286858.436 21286860.671
+ 47.000 39.900
+ -2018635.424 4 -1572960.893 3 24154922.216 24154920.576 24154922.125
+ 27.400 21.600
+ 06 1 2 12 2 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20840067.187 7 -16239013.053 7 20695978.231 20695973.154 20695977.318
+ 46.100 42.100
+ -18303512.747 7 -14262476.713 6 21136235.612 21136232.759 21136235.276
+ 44.000 41.200
+ -6456823.400 5 -5031289.112 4 23402319.548 23402315.670 23402317.542
+ 31.600 26.800
+ -4014088.576 4 -3127860.368 3 24407620.264 24407617.698 24407619.315
+ 26.800 19.300
+ -18916868.338 7 -14740410.280 6 20960081.070 20960079.399 20960080.170
+ 45.800 40.000
+ -17315822.673 7 -13492840.588 6 21298913.309 21298910.135 21298912.369
+ 47.000 39.700
+ -1932164.162 4 -1505580.732 3 24171376.781 24171375.775 24171376.651
+ 27.400 22.100
+ 06 1 2 12 2 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20796045.084 7 -16204710.126 7 20704355.914 20704350.311 20704354.582
+ 46.100 42.000
+ -18336179.980 7 -14287931.698 6 21130019.257 21130016.505 21130018.958
+ 43.800 41.500
+ -6564634.288 5 -5115297.535 5 23381803.486 23381800.690 23381801.803
+ 31.800 30.400
+ -4100885.970 4 -3195494.703 3 24391102.996 24391101.332 24391101.996
+ 25.300 23.400
+ -18973921.853 7 -14784867.553 6 20949224.505 20949222.480 20949223.395
+ 46.000 40.100
+ -17252220.814 7 -13443280.701 6 21311016.435 21311013.257 21311015.376
+ 47.100 39.800
+ -1845547.863 4 -1438087.609 3 24187858.380 24187858.093 24187858.704
+ 26.500 19.300
+ 06 1 2 12 3 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20751440.961 7 -16169953.677 7 20712843.320 20712838.307 20712842.252
+ 45.800 42.000
+ -18368257.848 7 -14312927.437 6 21123915.178 21123912.268 21123914.870
+ 44.200 41.600
+ -6672280.335 5 -5199177.585 4 23361318.333 23361315.531 23361317.381
+ 33.000 26.800
+ -4187677.352 4 -3263124.342 4 24374587.092 24374585.188 24374585.918
+ 25.600 24.200
+ -19030437.239 7 -14828905.506 6 20938469.703 20938467.853 20938468.737
+ 46.000 39.900
+ -17188351.251 7 -13393512.216 6 21323170.544 21323167.275 21323169.479
+ 47.100 39.700
+ -1758787.068 4 -1370481.873 3 24204368.569 24204368.682 24204368.839
+ 26.200 21.600
+ 06 1 2 12 3 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20706256.360 7 -16134744.908 6 20721442.060 20721436.670 20721440.654
+ 45.700 41.900
+ -18399744.841 7 -14337462.764 6 21117923.407 21117920.449 21117923.061
+ 44.100 41.500
+ -6779758.701 5 -5282926.947 4 23340868.122 23340863.006 23340865.464
+ 32.800 29.000
+ -4274462.015 4 -3330748.750 3 24358073.032 24358070.440 24358072.087
+ 28.100 23.400
+ -19086412.458 7 -14872522.542 6 20927818.063 20927816.168 20927817.153
+ 46.200 40.100
+ -17124215.728 7 -13343536.486 6 21335375.017 21335371.907 21335374.005
+ 47.000 40.000
+ -1671882.409 4 -1302764.043 3 24220906.407 24220906.004 24220906.471
+ 25.600 21.100
+ 06 1 2 12 4 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20660492.472 7 -16099084.742 6 20730150.343 20730145.221 20730149.224
+ 46.100 41.900
+ -18430639.588 7 -14361536.597 6 21112044.347 21112041.518 21112044.055
+ 44.300 41.800
+ -6887067.038 5 -5366543.790 5 23320447.928 23320443.486 23320444.840
+ 33.000 30.100
+ -4361239.167 4 -3398367.296 4 24341559.553 24341557.629 24341558.608
+ 25.300 26.500
+ -19141845.628 7 -14915717.206 6 20917269.304 20917267.487 20917268.456
+ 46.300 40.000
+ -17059816.110 7 -13293354.975 6 21347629.877 21347626.705 21347628.852
+ 46.900 39.800
+ -1584834.611 4 -1234934.635 3 24237471.715 24237470.794 24237471.438
+ 25.900 19.300
+ 06 1 2 12 4 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20614150.763 7 -16062974.328 6 20738968.999 20738963.787 20738967.863
+ 46.100 41.900
+ -18460940.635 7 -14385147.805 6 21106278.076 21106275.532 21106277.784
+ 44.300 41.800
+ -6994202.330 5 -5450025.804 4 23300059.216 23300055.997 23300057.567
+ 33.800 29.700
+ -4448007.683 4 -3465979.114 4 24325047.014 24325045.965 24325046.245
+ 24.200 25.900
+ -19196735.193 7 -14958488.281 6 20906824.202 20906822.355 20906823.272
+ 46.300 40.200
+ -16995153.726 7 -13242968.711 6 21359934.881 21359931.511 21359933.664
+ 46.900 39.500
+ -1497644.242 4 -1166994.195 3 24254064.183 24254062.600 24254063.359
+ 26.500 19.300
+ 06 1 2 12 5 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20567232.624 7 -16026414.743 6 20747897.121 20747891.979 20747896.048
+ 46.000 41.700
+ -18490646.411 7 -14408295.166 6 21100625.309 21100622.504 21100624.962
+ 44.100 41.600
+ -7101161.706 5 -5533370.753 4 23279705.898 23279702.173 23279704.254
+ 34.000 28.800
+ -4534766.965 4 -3533583.722 4 24308537.477 24308536.826 24308536.729
+ 26.500 28.600
+ -19251079.230 7 -15000834.270 6 20896482.823 20896480.982 20896481.936
+ 46.300 40.000
+ -16930230.239 7 -13192378.989 6 21372289.346 21372286.151 21372288.301
+ 47.000 39.800
+ -1410311.896 4 -1098943.087 3 24270682.761 24270681.082 24270681.833
+ 25.600 19.300
+ 06 1 2 12 5 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20519739.459 7 -15989407.097 6 20756934.908 20756929.588 20756933.739
+ 46.100 41.600
+ -18519755.661 7 -14430977.702 6 21095086.013 21095083.210 21095085.657
+ 44.000 41.800
+ -7207942.730 5 -5616576.731 4 23259388.171 23259382.410 23259384.946
+ 33.000 29.500
+ -4621516.147 4 -3601180.456 4 24292030.672 24292028.419 24292029.706
+ 26.800 27.900
+ -19304876.043 7 -15042753.850 6 20886245.640 20886243.824 20886244.832
+ 46.400 40.400
+ -16865047.508 7 -13141587.255 6 21384693.467 21384689.841 21384692.217
+ 47.000 39.400
+ -1322838.263 4 -1030781.902 3 24287328.145 24287327.566 24287327.748
+ 25.600 21.600
+ 06 1 2 12 6 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20471672.696 7 -15951952.483 6 20766081.856 20766076.482 20766080.658
+ 46.100 41.600
+ -18548267.216 7 -14453194.502 6 21089660.415 21089657.733 21089660.090
+ 44.000 41.800
+ -7314542.373 5 -5699641.335 4 23239101.988 23239097.292 23239099.251
+ 32.600 29.000
+ -4708254.132 4 -3668768.507 4 24275524.954 24275522.873 24275523.849
+ 27.600 28.100
+ -19358123.805 7 -15084245.606 6 20876113.149 20876111.152 20876112.136
+ 46.300 40.500
+ -16799607.328 7 -13090594.916 6 21397146.014 21397142.827 21397144.884
+ 47.000 39.100
+ -1235224.036 3 -962511.157 3 24303999.884 24304000.196 24303999.988
+ 23.800 22.100
+ 06 1 2 12 6 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20423033.933 7 -15914052.162 6 20775337.411 20775332.182 20775336.239
+ 46.200 41.700
+ -18576179.500 7 -14474944.336 6 21084349.014 21084346.158 21084348.662
+ 44.100 41.700
+ -7420958.187 5 -5782562.726 4 23218848.960 23218847.076 23218849.140
+ 32.300 29.500
+ -4794980.332 4 -3736347.348 5 24259021.171 24259019.678 24259019.979
+ 27.100 30.100
+ -19410820.695 7 -15125308.109 6 20866085.101 20866083.455 20866084.171
+ 46.200 40.800
+ -16733911.371 7 -13039403.268 6 21409647.416 21409644.233 21409646.384
+ 46.900 38.900
+ -1147469.786 3 -894131.334 3 24320699.200 24320699.326 24320699.232
+ 20.500 21.100
+ 06 1 2 12 7 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20373824.602 7 -15875707.240 6 20784701.613 20784696.295 20784700.431
+ 46.000 41.300
+ -18603491.378 7 -14496226.319 7 21079151.653 21079148.987 21079151.342
+ 44.000 42.000
+ -7527187.237 5 -5865338.614 4 23198634.593 23198632.228 23198634.094
+ 33.900 28.400
+ -4881693.157 4 -3803915.745 4 24242519.829 24242518.339 24242518.882
+ 25.900 27.900
+ -19462965.080 7 -15165940.090 6 20856162.259 20856160.665 20856161.478
+ 46.600 40.800
+ -16667961.160 7 -12988013.496 6 21422197.270 21422194.306 21422196.340
+ 46.900 39.000
+ -1059576.292 4 -825642.988 3 24337425.308 24337424.415 24337424.770
+ 25.300 20.500
+ 06 1 2 12 7 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20324046.196 7 -15836918.885 6 20794174.251 20794168.686 20794173.133
+ 46.300 41.200
+ -18630201.052 7 -14517039.055 7 21074068.893 21074066.319 21074068.576
+ 43.900 42.100
+ -7633226.697 5 -5947966.764 4 23178457.739 23178453.205 23178455.737
+ 33.900 26.500
+ -4968392.098 4 -3871473.346 4 24226021.804 24226019.879 24226020.654
+ 27.100 25.900
+ -19514554.969 7 -15206140.000 6 20846345.163 20846343.362 20846344.309
+ 46.800 40.600
+ -16601758.347 7 -12936426.896 6 21434795.263 21434792.176 21434794.233
+ 46.500 38.800
+ -971544.137 4 -757046.589 2 24354178.240 24354176.125 24354177.891
+ 25.600 17.000
+ 06 1 2 12 8 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20273700.178 7 -15797688.231 6 20803754.886 20803749.281 20803753.546
+ 46.000 41.200
+ -18656307.623 7 -14537381.843 7 21069101.003 21069098.370 21069100.686
+ 44.100 42.100
+ -7739073.946 5 -6030445.091 4 23158316.220 23158311.217 23158313.712
+ 34.600 27.900
+ -5055076.185 4 -3939019.383 4 24209525.839 24209524.716 24209525.324
+ 27.900 26.200
+ -19565589.032 7 -15245906.797 6 20836633.831 20836631.854 20836632.817
+ 46.600 40.900
+ -16535304.613 7 -12884644.775 6 21447441.065 21447437.950 21447440.042
+ 46.400 39.000
+ -883374.049 4 -688342.710 3 24370955.855 24370954.769 24370955.859
+ 26.800 18.600
+ 06 1 2 12 8 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20222787.804 7 -15758016.263 6 20813442.842 20813437.656 20813441.664
+ 45.900 41.300
+ -18681809.691 7 -14557253.588 7 21064248.173 21064245.444 21064247.874
+ 44.100 42.000
+ -7844726.503 5 -6112771.743 4 23138209.944 23138206.404 23138208.468
+ 34.600 29.000
+ -5141744.498 4 -4006553.129 4 24193033.948 24193032.386 24193033.260
+ 28.100 25.900
+ -19616065.594 7 -15285239.170 6 20827028.299 20827026.398 20827027.347
+ 46.700 40.600
+ -16468601.626 7 -12832668.433 6 21460134.493 21460131.026 21460133.265
+ 46.500 38.800
+ -795066.598 4 -619531.842 3 24387759.502 24387759.570 24387759.690
+ 27.400 21.600
+ 06 1 2 12 9 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20171311.141 7 -15717904.592 6 20823238.464 20823233.266 20823237.418
+ 46.000 40.900
+ -18706706.008 7 -14576653.319 6 21059510.599 21059507.798 21059510.304
+ 43.900 41.900
+ -7950181.443 5 -6194944.430 4 23118141.877 23118139.036 23118140.969
+ 34.800 29.700
+ -5228395.915 4 -4074073.694 4 24176545.626 24176542.871 24176544.486
+ 28.400 26.500
+ -19665982.780 7 -15324135.667 6 20817529.491 20817527.451 20817528.414
+ 46.600 40.800
+ -16401650.931 7 -12780499.070 6 21472874.628 21472871.357 21472873.548
+ 46.300 38.600
+ -706622.512 3 -550614.471 3 24404588.933 24404589.841 24404589.704
+ 23.800 20.500
+ 06 1 2 12 9 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20119271.932 7 -15677354.571 6 20833141.354 20833136.040 20833140.236
+ 46.000 41.000
+ -18730995.646 7 -14595580.313 6 21054888.713 21054885.643 21054888.284
+ 44.100 41.900
+ -8055435.956 5 -6276960.906 4 23098113.054 23098109.658 23098111.669
+ 33.900 29.200
+ -5315029.720 4 -4141580.559 4 24160059.486 24160056.667 24160058.400
+ 27.900 24.600
+ -19715339.292 7 -15362595.272 6 20808137.173 20808135.272 20808136.219
+ 46.900 40.900
+ -16334454.241 7 -12728138.024 6 21485661.736 21485658.668 21485660.534
+ 46.100 38.500
+ -618042.519 4 -481591.192 3 24421447.240 24421445.919 24421446.570
+ 25.600 19.900
+ 06 1 2 12 10 0.0000000 0 7G23G13G19G27G 3G16G25
+ -20066671.511 7 -15636367.246 6 20843150.906 20843145.655 20843149.764
+ 45.900 41.000
+ -18754677.093 7 -14614033.395 7 21050381.967 21050379.252 21050381.673
+ 44.100 42.100
+ -8160487.485 5 -6358819.203 5 23078123.212 23078119.288 23078121.070
+ 35.100 31.300
+ -5401644.972 4 -4209072.938 4 24143577.369 24143574.568 24143576.077
+ 28.600 25.300
+ -19764133.450 7 -15400616.682 6 20798851.937 20798850.158 20798851.080
+ 47.000 41.100
+ -16267013.295 7 -12675586.643 6 21498495.043 21498492.056 21498494.195
+ 46.200 38.200
+ -529327.292 4 -412462.559 3 24438328.935 24438328.123 24438328.308
+ 24.600 18.600
+ 06 1 2 12 10 30.0000000 0 7G23G13G19G27G 3G16G25
+ -20013511.045 7 -15594943.519 6 20853266.989 20853261.845 20853265.849
+ 45.900 40.900
+ -18777749.460 7 -14632011.862 7 21045991.349 21045988.758 21045991.087
+ 44.100 42.000
+ -8265333.249 5 -6440517.190 5 23058172.099 23058167.638 23058169.603
+ 34.100 30.600
+ -5488240.568 4 -4276550.029 4 24127097.941 24127095.797 24127097.052
+ 27.900 24.900
+ -19812363.656 7 -15438198.644 6 20789674.299 20789672.191 20789673.311
+ 47.100 41.200
+ -16199329.597 7 -12622846.110 6 21511374.958 21511371.968 21511373.950
+ 46.200 38.400
+ -440477.464 4 -343229.018 3 24455236.848 24455235.878 24455236.318
+ 25.300 18.600
+ 06 1 2 12 11 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19959792.718 7 -15553085.097 6 20863489.300 20863484.023 20863488.218
+ 46.000 40.900
+ -18800211.466 7 -14649514.727 7 21041717.322 21041714.384 21041716.908
+ 44.100 42.100
+ -8369970.522 5 -6522052.701 5 23038259.884 23038255.521 23038257.705
+ 34.500 30.400
+ -5574815.678 4 -4344011.145 4 24110623.783 24110621.368 24110622.667
+ 27.100 25.600
+ -19860028.374 7 -15475339.973 6 20780603.901 20780601.870 20780602.948
+ 47.000 41.000
+ -16131404.897 7 -12569917.780 6 21524300.938 21524297.622 21524299.778
+ 46.300 38.400
+ -351493.784 3 -273891.207 3 24472169.795 24472169.325 24472169.147
+ 23.000 21.600
+ 06 1 2 12 11 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19905518.526 7 -15510793.532 6 20873817.531 20873812.194 20873816.257
+ 46.000 40.900
+ -18822061.886 7 -14666541.033 7 21037559.047 21037556.296 21037558.778
+ 44.100 42.000
+ -8474396.480 5 -6603423.557 5 23018387.459 23018383.858 23018386.202
+ 35.500 30.600
+ -5661369.077 4 -4411455.360 4 24094152.279 24094151.077 24094151.456
+ 26.800 26.200
+ -19907126.100 7 -15512039.496 6 20771641.468 20771639.505 20771640.494
+ 46.800 41.200
+ -16063240.809 7 -12516802.919 6 21537271.927 21537268.848 21537270.899
+ 46.400 38.400
+ -262376.930 4 -204449.611 3 24489127.829 24489127.903 24489127.828
+ 25.300 22.600
+ 06 1 2 12 12 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19850689.703 7 -15468069.787 6 20884250.919 20884245.819 20884249.843
+ 45.900 40.800
+ -18843299.791 7 -14683090.052 6 21033517.489 21033514.716 21033517.222
+ 43.900 41.800
+ -8578608.892 5 -6684628.019 5 22998556.129 22998553.220 22998555.033
+ 35.400 31.100
+ -5747899.959 4 -4478881.992 4 24077686.331 24077684.661 24077685.512
+ 27.900 26.200
+ -19953655.441 7 -15548296.125 6 20762787.239 20762785.331 20762786.214
+ 47.000 41.500
+ -15994838.721 7 -12463502.600 6 21550288.693 21550285.350 21550287.427
+ 46.200 38.300
+ -173127.649 3 -134904.835 3 24506111.447 24506111.383 24506111.238
+ 22.100 19.300
+ 06 1 2 12 12 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19795307.770 7 -15424915.047 6 20894789.813 20894784.496 20894788.581
+ 45.600 40.600
+ -18863924.013 7 -14699160.882 6 21029592.802 21029590.117 21029592.507
+ 44.000 41.900
+ -8682604.442 5 -6765663.501 4 22978767.210 22978763.205 22978765.282
+ 34.900 29.200
+ -5834407.151 4 -4546290.190 4 24061224.515 24061222.513 24061223.603
+ 27.400 24.200
+ -19999614.799 7 -15584108.605 6 20754041.452 20754039.465 20754040.435
+ 46.900 41.400
+ -15926200.513 7 -12410018.288 6 21563349.669 21563346.741 21563348.692
+ 46.100 38.000
+ -83746.511 3 -65257.300 2 24523120.354 24523119.964 24523120.057
+ 23.400 17.800
+ 06 1 2 12 13 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19739374.889 7 -15381331.000 6 20905433.226 20905428.119 20905432.114
+ 45.400 40.400
+ -18883933.511 7 -14714752.700 7 21025785.457 21025782.537 21025785.086
+ 43.900 42.200
+ -8786380.585 6 -6846528.005 4 22959020.253 22959015.235 22959017.609
+ 36.200 28.800
+ -5920889.675 4 -4613679.167 3 24044767.249 24044765.458 24044766.640
+ 28.600 23.800
+ -20045002.703 7 -15619475.799 6 20745404.479 20745402.501 20745403.470
+ 46.900 41.500
+ -15857327.744 7 -12356351.209 6 21576455.758 21576452.817 21576454.735
+ 45.900 37.700
+ 5765.666 3 4492.335 2 24540153.821 24540153.156 24540153.668
+ 22.600 17.800
+ 06 1 2 12 13 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19682892.615 7 -15337318.856 6 20916181.477 20916176.401 20916180.301
+ 45.200 40.600
+ -18903327.210 7 -14729864.676 7 21022094.701 21022092.049 21022094.426
+ 43.800 42.200
+ -8889934.369 6 -6927219.244 4 22939314.883 22939309.594 22939311.957
+ 36.000 29.000
+ -6007346.379 4 -4681048.036 4 24028315.494 24028313.168 24028314.595
+ 28.800 25.600
+ -20089817.693 7 -15654396.569 6 20736876.275 20736874.512 20736875.357
+ 46.700 41.600
+ -15788222.132 7 -12302502.690 6 21589606.445 21589603.093 21589605.343
+ 46.000 37.900
+ 95408.098 4 74343.480 2 24557212.578 24557211.571 24557212.425
+ 26.500 13.900
+ 06 1 2 12 14 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19625862.687 7 -15292879.970 6 20927033.838 20927028.897 20927032.735
+ 45.300 40.600
+ -18922104.209 7 -14744496.106 7 21018521.597 21018518.861 21018521.304
+ 44.000 42.300
+ -8993263.623 5 -7007735.530 5 22919651.499 22919647.070 22919648.952
+ 35.600 31.100
+ -6093776.791 4 -4748396.406 4 24011868.130 24011866.316 24011867.352
+ 28.800 26.200
+ -20134058.358 7 -15688869.816 6 20728457.494 20728455.641 20728456.558
+ 46.900 41.500
+ -15718885.002 7 -12248473.765 6 21602800.612 21602797.569 21602799.613
+ 45.900 37.600
+ 185180.184 3 144295.690 3 24574294.789 24574295.369 24574294.288
+ 21.100 19.300
+ 06 1 2 12 14 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19568287.000 7 -15248015.814 6 20937990.227 20937985.236 20937989.056
+ 45.200 40.600
+ -18940263.408 7 -14758646.135 7 21015066.271 21015063.333 21015065.949
+ 44.100 42.400
+ -9096365.531 5 -7088074.659 5 22900030.346 22900027.309 22900029.043
+ 35.800 31.600
+ -6180179.489 4 -4815723.176 4 23995426.524 23995424.340 23995425.315
+ 28.600 27.400
+ -20177723.185 7 -15722894.357 6 20720148.417 20720146.594 20720147.481
+ 47.100 41.600
+ -15649317.844 7 -12194265.605 6 21616038.808 21616035.745 21616037.835
+ 46.100 37.800
+ 275081.223 3 214348.315 2 24591402.744 24591402.786 24591402.693
+ 22.600 17.800
+ 06 1 2 12 15 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19510167.561 7 -15202727.956 6 20949050.126 20949045.038 20949048.983
+ 45.500 40.600
+ -18957803.849 7 -14772314.021 7 21011728.225 21011725.524 21011727.922
+ 44.000 42.300
+ -9199237.294 6 -7168234.456 5 22880453.788 22880451.399 22880453.524
+ 36.500 31.000
+ -6266553.450 5 -4883027.554 4 23978989.741 23978987.972 23978988.729
+ 30.200 29.000
+ -20220811.014 7 -15756469.284 6 20711949.112 20711947.200 20711948.165
+ 47.100 41.400
+ -15579522.712 7 -12139879.801 6 21629320.707 21629317.353 21629319.516
+ 46.000 37.700
+ 365110.314 3 284500.769 2 24608535.329 24608535.084 24608535.236
+ 22.600 16.100
+ 06 1 2 12 15 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19451506.121 7 -15157017.761 6 20960212.899 20960207.925 20960211.885
+ 45.500 40.400
+ -18974725.074 7 -14785499.395 7 21008508.268 21008505.446 21008507.910
+ 43.800 42.300
+ -9301876.057 6 -7248212.689 5 22860921.992 22860919.925 22860922.131
+ 36.700 31.500
+ -6352897.955 4 -4950308.954 5 23962559.263 23962557.630 23962557.952
+ 29.900 30.600
+ -20263320.483 7 -15789593.541 6 20703859.865 20703857.966 20703858.981
+ 47.300 41.600
+ -15509500.980 7 -12085317.425 6 21642645.192 21642642.137 21642644.207
+ 45.900 37.200
+ 455266.968 3 354752.578 2 24625691.893 24625690.821 24625691.357
+ 23.400 13.900
+ 06 1 2 12 16 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19392304.405 7 -15110886.572 6 20971479.037 20971473.644 20971477.725
+ 45.600 40.000
+ -18991025.911 7 -14798201.350 7 21005406.205 21005403.551 21005405.895
+ 43.600 42.200
+ -9404279.358 6 -7328007.439 5 22841436.415 22841433.141 22841435.449
+ 37.200 31.100
+ -6439211.600 4 -5017566.344 5 23946134.277 23946132.549 23946133.708
+ 29.900 31.000
+ -20305250.128 7 -15822265.991 6 20695881.103 20695878.988 20695880.058
+ 47.300 41.600
+ -15439254.437 7 -12030579.866 6 21656012.946 21656009.556 21656011.775
+ 45.800 37.100
+ 545550.339 3 425103.176 3 24642871.862 24642871.977 24642872.224
+ 23.000 19.900
+ 06 1 2 12 16 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19332564.269 7 -15064335.837 6 20982847.168 20982841.827 20982845.968
+ 45.700 40.000
+ -19006704.997 7 -14810418.829 7 21002422.724 21002419.960 21002422.366
+ 43.700 42.500
+ -9506444.391 6 -7407616.550 5 22821996.143 22821991.891 22821993.638
+ 36.800 31.600
+ -6525493.251 4 -5084798.788 5 23929715.366 23929713.769 23929714.223
+ 28.400 31.000
+ -20346598.776 7 -15854485.712 6 20688012.724 20688010.513 20688011.704
+ 47.400 41.800
+ -15368784.544 7 -11975668.277 6 21669422.714 21669419.541 21669421.691
+ 46.000 37.000
+ 635959.546 4 495551.807 2 24660076.507 24660076.411 24660076.564
+ 25.300 15.100
+ 06 1 2 12 17 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19272287.841 7 -15017367.206 6 20994317.166 20994312.016 20994316.106
+ 45.700 39.800
+ -19021761.805 7 -14822151.414 7 20999557.428 20999554.781 20999557.093
+ 43.700 42.400
+ -9608368.330 6 -7487037.783 5 22802600.899 22802596.326 22802598.298
+ 36.600 32.400
+ -6611741.801 4 -5152005.417 5 23913302.387 23913300.953 23913301.473
+ 29.000 30.100
+ -20387365.193 7 -15886251.745 6 20680255.036 20680252.950 20680254.018
+ 47.400 41.700
+ -15298092.551 7 -11920583.614 6 21682874.573 21682871.730 21682873.726
+ 45.700 36.700
+ 726493.969 3 566097.986 2 24677304.392 24677304.821 24677304.023
+ 22.100 17.800
+ 06 1 2 12 17 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19211476.807 7 -14969982.010 6 21005889.290 21005883.950 21005888.060
+ 45.600 40.000
+ -19036195.379 7 -14833398.360 7 20996810.786 20996808.149 20996810.468
+ 43.800 42.500
+ -9710048.703 6 -7566269.205 5 22783251.773 22783247.087 22783249.000
+ 36.000 32.000
+ -6697956.669 4 -5219185.850 4 23896896.518 23896894.409 23896895.729
+ 29.200 28.100
+ -20427548.091 7 -15917563.094 6 20672608.437 20672606.358 20672607.428
+ 47.300 41.600
+ -15227180.365 7 -11865327.380 6 21696369.060 21696365.994 21696368.067
+ 45.800 36.900
+ 817152.878 3 636741.170 2 24694557.151 24694555.953 24694556.659
+ 22.100 15.100
+ 06 1 2 12 18 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19150133.172 7 -14922181.791 6 21017562.776 21017557.296 21017561.562
+ 45.700 40.200
+ -19050005.205 7 -14844159.266 7 20994182.859 20994180.103 20994182.541
+ 43.600 42.200
+ -9811482.805 6 -7645308.734 5 22763949.673 22763944.467 22763946.840
+ 36.000 31.600
+ -6784136.329 4 -5286338.823 4 23880496.916 23880495.338 23880495.838
+ 29.500 27.600
+ -20467146.193 7 -15948418.756 6 20665073.057 20665071.188 20665072.142
+ 47.300 41.900
+ -15156049.790 7 -11809900.969 6 21709904.909 21709901.615 21709903.857
+ 45.600 37.100
+ 907935.371 3 707480.732 2 24711831.722 24711831.337 24711831.374
+ 23.000 15.100
+ 06 1 2 12 18 30.0000000 0 7G23G13G19G27G 3G16G25
+ -19088258.934 7 -14873968.119 6 21029336.747 21029331.686 21029335.638
+ 45.400 39.800
+ -19063190.702 7 -14854433.688 7 20991673.634 20991670.987 20991673.363
+ 43.700 42.200
+ -9912667.823 6 -7724154.184 5 22744694.115 22744689.806 22744691.607
+ 36.400 31.600
+ -6870279.827 5 -5353463.618 4 23864104.762 23864102.447 23864103.839
+ 31.500 26.500
+ -20506158.291 7 -15978817.792 6 20657649.449 20657647.347 20657648.426
+ 47.500 41.800
+ -15084702.005 7 -11754305.308 6 21723481.696 21723478.829 21723480.692
+ 45.500 37.100
+ 998840.961 3 778316.152 2 24729129.942 24729130.976 24729129.684
+ 21.600 17.800
+ 06 1 2 12 19 0.0000000 0 7G23G13G19G27G 3G16G25
+ -19025856.237 7 -14825342.664 6 21041211.819 21041206.614 21041210.502
+ 45.200 40.000
+ -19075750.430 7 -14864220.492 7 20989283.785 20989280.995 20989283.470
+ 43.700 42.200
+ -10013601.141 6 -7802803.509 5 22725486.160 22725482.869 22725484.612
+ 36.300 32.000
+ -6956385.905 5 -5420559.274 4 23847719.667 23847716.777 23847718.359
+ 30.400 27.400
+ -20544583.321 7 -16008759.368 6 20650337.389 20650335.340 20650336.423
+ 47.700 41.800
+ -15013138.237 7 -11698541.346 6 21737099.766 21737096.814 21737098.717
+ 45.200 36.700
+ 1089868.683 3 849246.736 3 24746453.115 24746453.410 24746453.127
+ 23.000 19.300
+ 06 1 2 12 19 30.0000000 0 7G23G13G19G27G 3G16G25
+ -18962926.654 7 -14776306.643 6 21053186.504 21053181.752 21053185.451
+ 45.300 39.900
+ -19087683.946 7 -14873519.341 7 20987012.839 20987010.120 20987012.539
+ 43.600 42.400
+ -10114280.124 6 -7881254.645 5 22706327.869 22706324.464 22706326.057
+ 36.800 33.000
+ -7042453.496 5 -5487624.950 4 23831340.872 23831338.985 23831340.049
+ 30.600 26.800
+ -20582420.174 7 -16038242.624 6 20643137.283 20643135.117 20643136.345
+ 47.700 41.500
+ -14941360.777 7 -11642610.873 6 21750759.028 21750755.577 21750757.839
+ 45.400 36.800
+ 1181017.857 3 920271.934 2 24763799.198 24763797.918 24763797.969
+ 19.900 16.100
+ 06 1 2 12 20 0.0000000 0 7G23G13G19G27G 3G16G25
+ -18899472.508 7 -14726861.869 6 21065261.440 21065256.665 21065260.465
+ 45.200 39.800
+ -19098990.761 7 -14882329.855 7 20984861.225 20984858.545 20984860.938
+ 43.500 42.200
+ -10214702.232 6 -7959505.613 5 22687218.682 22687214.571 22687216.734
+ 37.700 33.100
+ -7128481.899 4 -5554660.059 4 23814970.695 23814968.065 23814969.512
+ 29.900 26.200
+ -20619667.556 7 -16067266.559 6 20636049.256 20636047.268 20636048.416
+ 47.600 41.700
+ -14869370.990 7 -11586514.952 6 21764457.876 21764455.014 21764456.914
+ 45.300 36.600
+ 1272287.610 4 991391.220 24781167.450 24781165.801 24781165.922
+ 24.200 3.000
+ 06 1 2 12 20 30.0000000 0 6G23G13G19G27G 3G16
+ -18835495.841 7 -14677009.944 6 21077436.201 21077431.065 21077434.991
+ 45.200 39.800
+ -19109670.086 7 -14890651.414 7 20982828.984 20982826.372 20982828.739
+ 43.500 42.500
+ -10314864.676 6 -8037554.246 5 22668157.727 22668154.424 22668156.310
+ 37.200 33.000
+ -7214469.508 4 -5621663.381 4 23798607.021 23798605.906 23798606.253
+ 29.500 29.000
+ -20656324.250 7 -16095830.215 6 20629073.826 20629071.734 20629072.900
+ 47.700 41.900
+ -14797170.226 7 -11530254.636 6 21778197.313 21778194.218 21778196.395
+ 45.300 36.400
+ 06 1 2 12 21 0.0000000 0 6G23G13G19G27G 3G16
+ -18770998.573 7 -14626752.348 6 21089709.340 21089704.493 21089708.389
+ 45.300 39.700
+ -19119721.241 7 -14898483.491 7 20980916.253 20980913.729 20980915.926
+ 43.500 42.500
+ -10414764.749 6 -8115398.425 5 22649146.362 22649144.294 22649145.755
+ 37.300 34.100
+ -7300415.492 5 -5688634.260 4 23782253.342 23782251.083 23782252.056
+ 31.300 29.500
+ -20692389.365 8 -16123932.909 6 20622210.665 20622208.706 20622209.882
+ 48.000 41.800
+ -14724759.974 7 -11473831.076 6 21791976.600 21791973.660 21791975.586
+ 45.000 36.300
+ 06 1 2 12 21 30.0000000 0 6G23G13G19G27G 3G16
+ -18705982.737 7 -14576090.678 6 21102081.500 21102076.491 21102080.531
+ 45.200 39.700
+ -19129143.403 7 -14905825.441 7 20979123.283 20979120.809 20979123.008
+ 43.500 42.500
+ -10514399.762 6 -8193036.083 5 22630186.817 22630184.336 22630186.151
+ 38.700 33.000
+ -7386318.824 5 -5755571.912 4 23765905.896 23765903.560 23765904.798
+ 31.300 29.500
+ -20727861.612 8 -16151573.620 6 20615460.839 20615458.581 20615459.886
+ 48.000 41.900
+ -14652142.100 7 -11417245.741 6 21805795.329 21805792.354 21805794.301
+ 45.100 36.400
+ 06 1 2 12 22 0.0000000 0 6G23G13G19G27G 3G16
+ -18640450.473 7 -14525026.595 6 21114552.334 21114546.819 21114550.998
+ 45.200 39.700
+ -19137936.235 7 -14912677.005 7 20977450.166 20977447.567 20977449.851
+ 44.000 42.600
+ -10613767.082 6 -8270465.161 5 22611277.708 22611274.772 22611277.098
+ 37.900 32.000
+ -7472177.924 5 -5822475.109 4 23749567.363 23749565.320 23749566.498
+ 31.300 28.800
+ -20762740.054 7 -16178751.626 6 20608823.661 20608821.443 20608822.659
+ 47.800 41.800
+ -14579317.863 7 -11360499.593 6 21819653.182 21819650.173 21819652.125
+ 44.800 36.000
+ 06 1 2 12 22 30.0000000 0 6G23G13G19G27G 3G16
+ -18574404.052 7 -14473561.867 6 21127120.369 21127115.115 21127119.272
+ 45.500 39.300
+ -19146099.156 7 -14919037.730 7 20975897.097 20975894.320 20975896.786
+ 44.100 42.700
+ -10712864.176 6 -8347683.676 5 22592419.986 22592417.500 22592419.634
+ 38.900 32.700
+ -7557991.981 5 -5889343.208 4 23733237.303 23733235.516 23733236.703
+ 32.000 29.200
+ -20797023.642 7 -16205466.116 6 20602299.454 20602297.554 20602298.513
+ 47.600 41.900
+ -14506288.910 7 -11303593.929 6 21833550.081 21833547.371 21833549.086
+ 44.800 36.400
+ 06 1 2 12 23 0.0000000 0 6G23G13G19G27G 3G16
+ -18507845.581 7 -14421698.143 6 21139785.967 21139780.875 21139784.806
+ 45.400 39.100
+ -19153631.412 7 -14924907.031 7 20974463.618 20974460.916 20974463.341
+ 43.900 42.500
+ -10811688.318 6 -8424689.480 5 22573614.453 22573611.840 22573614.041
+ 38.600 33.200
+ -7643759.483 5 -5956175.031 4 23716916.822 23716914.172 23716915.811
+ 31.800 28.400
+ -20830711.384 7 -16231716.309 7 20595888.889 20595886.983 20595888.004
+ 47.600 42.100
+ -14433056.788 7 -11246529.959 5 21847485.962 21847482.744 21847484.863
+ 44.500 35.700
+ 06 1 2 12 23 30.0000000 0 6G23G13G19G27G 3G16
+ -18440776.965 7 -14369436.903 6 21152549.105 21152543.511 21152547.650
+ 45.300 39.100
+ -19160532.555 7 -14930284.556 7 20973150.558 20973147.664 20973150.199
+ 43.900 42.600
+ -10910236.878 6 -8501480.554 5 22554860.844 22554858.801 22554860.792
+ 38.500 33.200
+ -7729479.586 5 -6022969.910 4 23700604.144 23700602.711 23700603.311
+ 30.400 29.200
+ -20863802.511 7 -16257501.605 7 20589591.811 20589590.067 20589590.906
+ 47.600 42.200
+ -14359622.789 7 -11189308.679 6 21861459.731 21861457.009 21861458.834
+ 44.400 36.000
+ 06 1 2 12 24 0.0000000 0 6G23G13G19G27G 3G16
+ -18373200.597 7 -14316780.004 6 21165408.064 21165402.956 21165407.049
+ 45.500 39.000
+ -19166802.604 7 -14935170.320 7 20971957.299 20971954.565 20971956.950
+ 43.800 42.700
+ -11008507.295 6 -8578054.886 5 22536160.270 22536158.483 22536160.453
+ 38.400 33.200
+ -7815151.129 5 -6089726.947 4 23684301.691 23684299.452 23684300.700
+ 30.600 28.600
+ -20896295.849 7 -16282821.090 6 20583408.544 20583406.707 20583407.616
+ 47.600 41.900
+ -14285988.587 7 -11131931.405 5 21875472.014 21875468.967 21875470.917
+ 44.400 35.700
+ 06 1 2 12 24 30.0000000 0 6G23G13G19G27G 3G16
+ -18305118.586 7 -14263729.110 6 21178363.503 21178358.570 21178362.505
+ 45.100 39.200
+ -19172440.230 7 -14939563.282 7 20970884.292 20970881.699 20970884.064
+ 43.900 42.300
+ -11106496.871 6 -8654410.379 5 22517513.620 22517511.619 22517513.690
+ 38.700 33.600
+ -7900772.735 5 -6156445.085 4 23668007.694 23668005.945 23668007.151
+ 30.400 28.800
+ -20928190.462 7 -16307674.033 7 20577339.300 20577337.345 20577338.318
+ 47.500 42.000
+ -14212155.810 7 -11074399.379 5 21889522.000 21889518.690 21889520.882
+ 44.300 35.500
+ 06 1 2 12 25 0.0000000 0 6G23G13G19G27G 3G16
+ -18236532.711 7 -14210285.597 6 21191415.575 21191409.950 21191414.153
+ 45.000 39.100
+ -19177445.234 7 -14943463.292 7 20969931.964 20969929.338 20969931.644
+ 43.800 42.600
+ -11204202.957 6 -8730544.966 5 22498921.621 22498918.788 22498920.964
+ 39.500 34.100
+ -7986343.303 5 -6223123.447 4 23651725.250 23651722.734 23651724.229
+ 31.100 29.200
+ -20959485.540 7 -16332059.808 7 20571384.138 20571382.101 20571383.112
+ 47.600 42.300
+ -14138125.838 7 -11016713.707 6 21903609.513 21903606.659 21903608.392
+ 44.100 36.000
+ 06 1 2 12 25 30.0000000 0 6G23G13G19G27G 3G16
+ -18167445.890 7 -14156451.717 6 21204562.285 21204556.814 21204560.946
+ 45.000 39.100
+ -19181817.191 7 -14946870.024 7 20969100.101 20969097.385 20969099.775
+ 43.500 42.600
+ -11301622.899 6 -8806456.593 5 22480383.121 22480380.266 22480382.465
+ 39.300 33.600
+ -8071861.782 5 -6289761.223 5 23635451.555 23635449.373 23635450.548
+ 32.400 30.600
+ -20990180.239 7 -16355977.753 7 20565543.034 20565541.136 20565542.062
+ 47.800 42.400
+ -14063900.075 7 -10958875.472 5 21917734.372 21917730.970 21917733.158
+ 44.100 35.200
+ 06 1 2 12 26 0.0000000 0 6G23G13G19G27G 3G16
+ -18097860.020 7 -14102228.986 6 21217803.462 21217798.633 21217802.556
+ 45.300 39.100
+ -19185556.117 7 -14949783.476 7 20968388.431 20968385.784 20968388.115
+ 43.700 42.500
+ -11398754.114 6 -8882143.239 5 22461899.722 22461896.812 22461898.580
+ 38.800 33.100
+ -8157326.648 5 -6356357.216 5 23619187.463 23619185.887 23619186.684
+ 32.600 30.800
+ -21020273.637 7 -16379427.152 7 20559816.416 20559814.543 20559815.490
+ 47.800 42.300
+ -13989480.131 7 -10900885.920 5 21931895.910 21931892.841 21931894.777
+ 44.200 35.400
+ 06 1 2 12 26 30.0000000 0 6G23G13G19G27G 3G16
+ -18027777.169 7 -14047618.995 6 21231140.008 21231134.950 21231138.973
+ 45.300 38.600
+ -19188661.122 7 -14952202.972 7 20967797.617 20967794.856 20967797.277
+ 43.700 42.400
+ -11495594.077 6 -8957602.920 5 22443471.399 22443468.695 22443470.529
+ 39.500 33.800
+ -8242737.013 5 -6422910.747 5 23602934.584 23602932.764 23602933.727
+ 32.000 30.800
+ -21049764.913 7 -16402407.361 7 20554204.346 20554202.573 20554203.422
+ 47.700 42.500
+ -13914867.415 7 -10842746.160 5 21946094.411 21946091.146 21946093.164
+ 44.000 35.400
+ 06 1 2 12 27 0.0000000 0 6G23G13G19G27G 3G16
+ -17957199.803 7 -13992623.662 6 21244570.967 21244565.415 21244569.653
+ 45.300 38.900
+ -19191132.115 7 -14954128.430 7 20967327.533 20967324.776 20967327.234
+ 43.800 42.500
+ -11592140.149 6 -9032833.614 5 22425099.418 22425096.653 22425098.656
+ 39.500 33.600
+ -8328091.755 5 -6489420.945 5 23586692.364 23586690.257 23586691.373
+ 32.300 30.800
+ -21078653.366 7 -16424917.849 7 20548707.064 20548705.265 20548706.118
+ 47.600 42.300
+ -13840063.303 7 -10784457.262 5 21960329.176 21960325.838 21960328.028
+ 44.100 34.900
+ 06 1 2 12 27 30.0000000 0 6G23G13G19G27G 3G16
+ -17886130.128 7 -13937244.711 6 21258094.512 21258089.633 21258093.454
+ 44.900 39.100
+ -19192969.003 7 -14955559.781 7 20966977.967 20966975.121 20966977.617
+ 43.700 42.400
+ -11688389.616 6 -9107833.177 5 22406783.991 22406781.143 22406782.851
+ 39.600 34.400
+ -8413389.521 5 -6555886.731 4 23570461.049 23570458.240 23570460.048
+ 32.100 29.700
+ -21106938.041 7 -16446957.858 7 20543324.816 20543322.908 20543323.773
+ 47.700 42.600
+ -13765069.304 7 -10726020.402 5 21974599.975 21974596.773 21974598.750
+ 44.100 35.400
+ 06 1 2 12 28 0.0000000 0 6G23G13G19G27G 3G16
+ -17814570.448 7 -13881483.953 6 21271711.785 21271706.978 21271710.895
+ 45.100 38.600
+ -19194171.175 7 -14956496.547 7 20966749.124 20966746.548 20966748.832
+ 43.800 42.600
+ -11784340.046 6 -9182599.719 5 22388525.713 22388522.504 22388524.205
+ 40.200 35.200
+ -8498629.049 5 -6622307.141 5 23554239.829 23554238.145 23554238.961
+ 32.400 30.800
+ -21134618.195 7 -16468526.809 7 20538057.505 20538055.526 20538056.543
+ 47.800 42.400
+ -13689886.987 7 -10667436.796 5 21988906.405 21988903.417 21988905.469
+ 44.100 34.900
+ 06 1 2 12 28 30.0000000 0 6G23G13G19G27G 3G16
+ -17742523.259 7 -13825343.317 6 21285422.421 21285417.068 21285421.110
+ 44.600 38.700
+ -19194738.327 7 -14956938.494 7 20966641.291 20966638.607 20966640.976
+ 43.800 42.600
+ -11879988.937 6 -9257131.310 5 22370324.252 22370320.846 22370322.533
+ 39.700 34.300
+ -8583808.880 5 -6688681.029 5 23538031.128 23538028.919 23538029.972
+ 32.800 30.800
+ -21161693.223 7 -16489624.239 7 20532905.161 20532903.314 20532904.229
+ 47.500 42.400
+ -13614517.844 7 -10608707.622 5 22003248.787 22003245.875 22003247.726
+ 43.800 35.300
+ 06 1 2 12 29 0.0000000 0 6G23G13G19G27G 3G16
+ -17669990.482 7 -13768824.286 6 21299225.023 21299219.573 21299223.649
+ 44.600 38.600
+ -19194670.430 7 -14956885.600 7 20966654.191 20966651.570 20966653.871
+ 43.700 42.400
+ -11975333.514 6 -9331425.775 5 22352181.290 22352177.377 22352179.174
+ 39.800 34.800
+ -8668927.999 5 -6755007.614 5 23521833.051 23521831.566 23521832.352
+ 33.400 30.800
+ -21188162.246 7 -16510249.452 7 20527868.129 20527866.392 20527867.166
+ 47.400 42.400
+ -13538963.373 7 -10549834.031 5 22017626.319 22017623.363 22017625.388
+ 44.000 34.800
+ 06 1 2 12 29 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17596974.743 7 -13711928.924 6 21313119.066 21313114.082 21313117.954
+ 44.500 38.500
+ -19193967.236 7 -14956337.667 7 20966788.113 20966785.321 20966787.771
+ 44.000 42.500
+ -12070371.286 6 -9405481.159 5 22334096.846 22334092.220 22334094.064
+ 39.500 34.300
+ -8753985.139 5 -6821285.913 5 23505646.965 23505645.584 23505646.515
+ 33.400 30.800
+ -21214024.796 7 -16530402.091 7 20522946.488 20522944.966 20522945.608
+ 47.300 42.400
+ -13463225.018 7 -10490817.142 5 22032038.965 22032035.581 22032037.858
+ 43.500 34.000
+ -101042.383 3 -78734.452 2 24605987.985 24605986.987 24605986.921
+ 22.100 12.600
+ 06 1 2 12 30 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17523478.507 7 -13654659.164 6 21327104.258 21327099.893 21327103.653
+ 44.400 38.400
+ -19192628.374 7 -14955294.412 7 20967042.800 20967040.106 20967042.547
+ 43.800 42.400
+ -12165099.448 6 -9479295.291 5 22316070.520 22316065.777 22316068.144
+ 40.600 33.900
+ -8838978.902 5 -6887514.820 5 23489473.466 23489471.450 23489472.677
+ 32.800 30.600
+ -21239280.242 7 -16550081.672 7 20518140.722 20518139.029 20518139.699
+ 47.300 42.500
+ -13387304.040 7 -10431657.963 5 22046486.343 22046483.269 22046485.338
+ 43.600 34.500
+ -152712.123 3 -118996.507 2 24596156.459 24596154.798 24596155.035
+ 22.600 15.100
+ 06 1 2 12 30 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17449503.830 7 -13597016.590 6 21341181.638 21341176.820 21341180.760
+ 44.400 38.300
+ -19190653.704 7 -14953755.720 7 20967418.571 20967415.822 20967418.188
+ 43.900 42.300
+ -12259515.736 6 -9552866.412 5 22298103.329 22298099.144 22298101.177
+ 40.500 34.500
+ -8923908.409 5 -6953693.650 5 23473311.729 23473310.098 23473310.943
+ 32.700 30.600
+ -21263927.950 7 -16569287.680 7 20513450.527 20513448.653 20513449.457
+ 47.400 42.400
+ -13311201.854 7 -10372357.585 5 22060968.004 22060965.032 22060966.914
+ 43.600 34.900
+ -203974.371 3 -158941.100 2 24586399.430 24586399.773 24586398.950
+ 18.600 13.900
+ 06 1 2 12 31 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17375053.274 7 -13539003.194 6 21355350.180 21355344.329 21355348.516
+ 44.200 38.100
+ -19188043.384 7 -14951721.713 7 20967915.204 20967912.527 20967914.909
+ 43.600 42.200
+ -12353617.535 6 -9626192.465 5 22280195.634 22280192.387 22280194.180
+ 40.300 35.300
+ -9008771.714 5 -7019820.902 4 23457163.076 23457160.804 23457162.279
+ 33.000 29.500
+ -21287967.254 7 -16588019.608 7 20508876.001 20508874.068 20508875.015
+ 47.500 42.500
+ -13234920.082 7 -10312917.266 5 22075484.227 22075480.956 22075483.074
+ 43.200 34.300
+ -254826.668 3 -198566.244 2 24576724.411 24576722.916 24576723.280
+ 23.400 16.100
+ 06 1 2 12 31 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17300128.957 7 -13480620.635 6 21369607.359 21369601.970 21369606.001
+ 44.400 38.100
+ -19184797.194 7 -14949192.224 7 20968533.173 20968530.298 20968532.850
+ 43.900 42.300
+ -12447402.163 6 -9699271.373 5 22262348.769 22262345.699 22262347.620
+ 41.000 35.400
+ -9093567.754 5 -7085895.755 5 23441026.517 23441024.993 23441025.868
+ 33.500 30.400
+ -21311397.309 7 -16606276.799 7 20504417.418 20504415.480 20504416.453
+ 47.500 42.400
+ -13158460.111 7 -10253338.092 5 22090033.709 22090030.957 22090032.702
+ 43.100 34.500
+ -305266.462 4 -237869.986 2 24567125.406 24567124.855 24567124.597
+ 24.900 17.000
+ 06 1 2 12 32 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17224733.664 7 -13421871.083 6 21383954.423 21383949.358 21383953.054
+ 44.100 38.100
+ -19180915.082 7 -14946167.214 7 20969271.832 20969269.078 20969271.504
+ 43.800 42.300
+ -12540867.255 6 -9772101.289 5 22244562.506 22244559.832 22244561.818
+ 41.000 35.400
+ -9178295.424 5 -7151917.318 5 23424903.651 23424901.890 23424902.922
+ 33.600 30.600
+ -21334217.792 7 -16624058.999 7 20500074.927 20500072.903 20500073.870
+ 47.600 42.400
+ -13081823.333 7 -10193621.152 5 22104617.666 22104614.350 22104616.606
+ 43.400 34.400
+ -355291.331 3 -276850.360 2 24557605.626 24557605.414 24557604.671
+ 23.000 16.100
+ 06 1 2 12 32 30.0000000 0 7G23G13G19G27G 3G16G15
+ -17148869.579 7 -13362756.234 6 21398390.545 21398385.759 21398389.586
+ 44.400 37.900
+ -19176396.861 7 -14942646.530 7 20970131.451 20970129.029 20970131.179
+ 43.600 42.500
+ -12634010.035 6 -9844680.058 5 22226837.977 22226835.183 22226837.508
+ 41.600 35.600
+ -9262953.587 5 -7217884.716 5 23408793.913 23408791.832 23408793.000
+ 33.500 32.000
+ -21356428.216 7 -16641365.832 7 20495848.232 20495846.366 20495847.375
+ 47.700 42.200
+ -13005011.052 7 -10133767.449 5 22119234.431 22119231.135 22119233.288
+ 43.400 33.900
+ -404898.868 3 -315505.542 2 24548165.736 24548165.670 24548164.794
+ 23.000 17.000
+ 06 1 2 12 33 0.0000000 0 7G23G13G19G27G 3G16G15
+ -17072539.301 7 -13303278.119 6 21412915.460 21412910.948 21412914.681
+ 44.300 37.800
+ -19171242.642 7 -14938630.265 7 20971112.649 20971109.888 20971112.279
+ 44.000 42.600
+ -12726828.178 7 -9917005.879 5 22209176.022 22209172.580 22209174.680
+ 42.000 35.700
+ -9347540.600 5 -7283796.677 5 23392697.967 23392695.962 23392696.758
+ 33.000 32.400
+ -21378028.077 7 -16658196.902 7 20491738.059 20491736.108 20491737.037
+ 47.700 42.300
+ -12928024.830 7 -10073778.206 5 22133884.382 22133881.359 22133883.270
+ 43.100 34.000
+ -454086.793 3 -353833.791 2 24538806.132 24538804.520 24538804.765
+ 23.400 15.100
+ 06 1 2 12 33 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16995745.177 7 -13243438.575 6 21427529.130 21427524.588 21427528.210
+ 44.200 38.200
+ -19165452.357 7 -14934118.367 7 20972214.444 20972211.811 20972214.124
+ 44.000 42.700
+ -12819319.450 6 -9989076.986 5 22191575.893 22191571.961 22191573.808
+ 40.600 35.500
+ -9432055.243 5 -7349652.239 5 23376614.820 23376612.980 23376613.970
+ 33.900 32.000
+ -21399016.715 7 -16674551.686 7 20487743.790 20487742.127 20487742.945
+ 47.500 42.300
+ -12850866.033 7 -10013654.497 5 22148567.086 22148564.046 22148565.989
+ 42.700 33.800
+ -502852.583 4 -391833.094 2 24529526.648 24529525.405 24529525.327
+ 24.600 17.800
+ 06 1 2 12 34 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16918489.605 7 -13183239.459 6 21442230.611 21442225.709 21442229.565
+ 44.000 37.600
+ -19159025.953 7 -14929110.791 7 20973437.144 20973434.481 20973436.892
+ 43.800 42.400
+ -12911480.938 6 -10060891.111 5 22174038.660 22174034.216 22174036.213
+ 41.100 35.800
+ -9516496.287 5 -7415450.473 5 23360546.809 23360544.530 23360545.571
+ 33.500 31.800
+ -21419393.685 7 -16690429.855 7 20483866.343 20483864.612 20483865.445
+ 47.700 42.600
+ -12773535.878 7 -9953397.261 5 22163282.753 22163279.706 22163281.682
+ 43.100 33.600
+ -551194.021 3 -429501.701 3 24520327.668 24520326.230 24520326.164
+ 22.100 20.500
+ 06 1 2 12 34 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16840775.270 7 -13122682.858 6 21457019.527 21457014.242 21457018.217
+ 44.000 37.700
+ -19151963.628 7 -14923607.691 7 20974781.078 20974778.527 20974780.780
+ 43.700 42.200
+ -13003309.974 6 -10132446.187 5 22156563.773 22156559.666 22156561.688
+ 41.200 35.700
+ -9600862.241 5 -7481190.179 5 23344491.904 23344490.293 23344491.078
+ 33.200 32.100
+ -21439158.720 7 -16705831.187 7 20480105.368 20480103.355 20480104.358
+ 47.800 42.400
+ -12696036.143 7 -9893007.883 5 22178030.443 22178027.334 22178029.278
+ 43.100 33.200
+ -599108.565 3 -466837.718 2 24511209.418 24511208.191 24511207.845
+ 19.900 15.100
+ 06 1 2 12 35 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16762604.770 7 -13061770.809 6 21471894.861 21471889.656 21471893.553
+ 43.900 37.700
+ -19144265.396 7 -14917609.083 6 20976246.050 20976243.157 20976245.777
+ 43.800 41.900
+ -13094804.364 7 -10203740.511 5 22139152.462 22139148.654 22139151.091
+ 42.200 35.100
+ -9685151.802 5 -7546870.359 5 23328452.091 23328450.793 23328451.303
+ 33.500 32.000
+ -21458311.230 7 -16720755.227 7 20476460.683 20476458.782 20476459.786
+ 47.800 42.500
+ -12618367.999 7 -9832487.272 5 22192809.968 22192807.105 22192809.102
+ 42.900 33.500
+ -646594.052 3 -503839.370 3 24502172.433 24502172.705 24502171.170
+ 19.900 23.000
+ 06 1 2 12 35 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16683980.257 7 -13000504.986 6 21486856.433 21486851.425 21486855.310
+ 43.900 37.200
+ -19135931.453 7 -14911115.116 6 20977832.038 20977829.278 20977831.665
+ 43.800 41.900
+ -13185961.188 6 -10274771.790 5 22121805.249 22121802.249 22121804.650
+ 41.900 35.700
+ -9769363.661 5 -7612489.999 5 23312427.332 23312425.334 23312426.460
+ 34.600 31.100
+ -21476850.981 7 -16735201.792 7 20472932.790 20472930.777 20472931.783
+ 47.800 42.500
+ -12540532.681 7 -9771836.397 5 22207621.775 22207618.787 22207620.678
+ 42.500 33.000
+ -693648.263 3 -540504.953 3 24493218.723 24493218.552 24493217.785
+ 23.000 21.100
+ 06 1 2 12 36 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16604904.049 7 -12938887.188 6 21501904.095 21501899.024 21501902.971
+ 43.600 37.000
+ -19126961.802 7 -14904125.791 7 20979538.690 20979536.080 20979538.432
+ 43.900 42.000
+ -13276778.442 6 -10345538.468 5 22104523.937 22104520.272 22104522.654
+ 41.900 35.900
+ -9853496.556 5 -7678048.112 5 23296417.179 23296415.226 23296416.329
+ 34.500 31.800
+ -21494777.716 7 -16749170.686 7 20469521.482 20469519.489 20469520.541
+ 47.800 42.500
+ -12462531.823 7 -9711056.530 5 22222464.550 22222461.804 22222463.636
+ 42.400 33.500
+ -740268.662 4 -576832.552 3 24484347.779 24484346.473 24484346.274
+ 24.200 19.900
+ 06 1 2 12 36 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16525379.442 7 -12876919.988 6 21517037.248 21517032.020 21517036.017
+ 43.200 36.700
+ -19117356.640 7 -14896641.259 7 20981366.844 20981363.932 20981366.532
+ 44.100 42.000
+ -13367253.828 6 -10416038.752 6 22087307.620 22087303.654 22087305.579
+ 41.800 36.500
+ -9937549.137 5 -7743543.634 5 23280422.772 23280421.049 23280421.564
+ 34.700 32.700
+ -21512090.899 7 -16762661.484 7 20466226.922 20466224.851 20466225.952
+ 47.800 42.600
+ -12384366.599 7 -9650148.588 5 22237339.274 22237336.091 22237338.226
+ 42.300 33.000
+ -786453.048 3 -612820.374 3 24475558.706 24475558.712 24475557.732
+ 23.000 22.600
+ 06 1 2 12 37 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16445408.497 7 -12814604.997 6 21532255.140 21532250.202 21532253.868
+ 43.100 37.300
+ -19107116.363 7 -14888661.834 7 20983315.487 20983312.649 20983315.140
+ 44.000 42.000
+ -13457384.487 7 -10486270.420 6 22070156.461 22070152.318 22070154.328
+ 42.200 36.900
+ -10021519.821 5 -7808975.332 5 23264443.418 23264441.804 23264442.616
+ 34.700 32.600
+ -21528790.395 7 -16775674.080 7 20463048.912 20463047.031 20463048.029
+ 47.700 42.500
+ -12306038.491 7 -9589113.734 5 22252244.441 22252241.858 22252243.357
+ 42.000 33.200
+ -832199.283 4 -648466.758 2 24466853.467 24466852.352 24466852.519
+ 25.300 17.800
+ 06 1 2 12 37 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16364993.987 7 -12751944.375 6 21547557.394 21547552.588 21547556.271
+ 43.400 37.200
+ -19096241.250 7 -14880187.737 6 20985384.895 20985382.072 20985384.554
+ 43.600 41.900
+ -13547168.115 7 -10556231.683 6 22053070.467 22053066.863 22053069.024
+ 42.600 36.500
+ -10105407.270 5 -7874342.182 5 23248480.176 23248478.151 23248479.273
+ 34.600 32.000
+ -21544875.760 7 -16788208.136 7 20459987.859 20459986.139 20459986.940
+ 47.500 42.700
+ -12227548.729 7 -9527952.897 5 22267180.741 22267177.474 22267179.666
+ 42.100 32.100
+ -877504.936 4 -683769.887 3 24458232.264 24458231.475 24458230.981
+ 24.900 20.500
+ 06 1 2 12 38 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16284138.246 7 -12688939.929 6 21562943.933 21562939.109 21562942.881
+ 43.700 37.000
+ -19084731.241 7 -14871218.910 6 20987575.135 20987572.376 20987574.782
+ 43.600 41.900
+ -13636602.035 7 -10625920.435 6 22036051.507 22036048.208 22036050.219
+ 42.400 36.800
+ -10189210.084 5 -7939643.090 5 23232533.471 23232531.024 23232532.280
+ 34.300 32.100
+ -21560346.942 7 -16800263.611 7 20457043.630 20457042.178 20457042.814
+ 47.500 42.800
+ -12148898.803 7 -9466667.267 5 22282147.232 22282144.057 22282146.076
+ 42.000 32.300
+ -922367.703 4 -718727.865 3 24449695.160 24449694.606 24449694.183
+ 26.800 20.500
+ 06 1 2 12 38 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16202843.962 7 -12625593.766 6 21578413.820 21578408.878 21578412.721
+ 43.600 37.200
+ -19072586.387 7 -14861755.398 6 20989885.980 20989883.339 20989885.649
+ 43.600 41.900
+ -13725684.008 7 -10695334.953 6 22019100.582 22019096.368 22019098.603
+ 42.400 36.800
+ -10272927.155 5 -8004877.176 5 23216602.040 23216600.753 23216601.248
+ 35.100 32.100
+ -21575203.493 7 -16811840.151 7 20454216.644 20454215.053 20454215.719
+ 47.600 42.700
+ -12070090.168 7 -9405257.966 5 22297144.167 22297141.319 22297143.140
+ 42.100 33.100
+ -966785.266 4 -753338.907 3 24441242.495 24441241.641 24441241.481
+ 27.600 19.300
+ 06 1 2 12 39 0.0000000 0 7G23G13G19G27G 3G16G15
+ -16121113.771 7 -12561907.935 6 21593966.318 21593961.634 21593965.318
+ 43.300 37.200
+ -19059807.267 7 -14851797.657 7 20992317.813 20992315.337 20992317.501
+ 43.400 42.000
+ -13814411.447 7 -10764473.212 6 22002216.461 22002212.105 22002214.230
+ 42.300 36.700
+ -10356556.733 5 -8070043.082 5 23200687.951 23200686.139 23200687.120
+ 34.300 32.300
+ -21589445.302 7 -16822937.666 7 20451506.495 20451504.802 20451505.592
+ 47.400 42.500
+ -11991123.801 6 -9343725.754 5 22312170.630 22312167.903 22312169.778
+ 41.800 32.600
+ -1010755.465 4 -787601.403 3 24432875.964 24432875.132 24432874.547
+ 25.900 19.300
+ 06 1 2 12 39 30.0000000 0 7G23G13G19G27G 3G16G15
+ -16038950.092 7 -12497884.323 6 21609601.775 21609597.069 21609600.613
+ 43.400 37.100
+ -19046394.481 7 -14841346.152 6 20994870.149 20994867.570 20994869.813
+ 43.400 41.900
+ -13902781.992 7 -10833333.372 6 21985399.797 21985395.704 21985397.838
+ 42.600 36.500
+ -10440097.446 5 -8135139.753 5 23184791.400 23184788.923 23184790.308
+ 35.800 32.700
+ -21603072.062 7 -16833555.932 7 20448913.275 20448911.722 20448912.489
+ 47.600 42.600
+ -11912001.460 6 -9282072.006 5 22327227.096 22327224.412 22327226.053
+ 41.900 33.100
+ -1054276.147 4 -821513.584 3 24424593.532 24424592.592 24424592.831
+ 26.500 18.600
+ 06 1 2 12 40 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15956355.610 7 -12433525.020 6 21625319.079 21625314.040 21625317.946
+ 43.200 36.600
+ -19032348.485 7 -14830401.237 6 20997543.049 20997540.498 20997542.746
+ 43.400 41.900
+ -13990793.305 7 -10901913.601 6 21968651.356 21968647.750 21968649.892
+ 43.100 36.500
+ -10523548.292 6 -8200166.396 5 23168911.272 23168908.987 23168910.231
+ 36.100 32.800
+ -21616083.893 7 -16843695.029 7 20446437.390 20446435.531 20446436.560
+ 47.700 42.300
+ -11832724.150 6 -9220297.515 5 22342313.174 22342310.566 22342312.187
+ 41.500 32.700
+ -1097345.257 3 -855073.894 3 24416398.100 24416396.926 24416396.466
+ 23.000 18.600
+ 06 1 2 12 40 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15873333.216 7 -12368832.275 6 21641118.157 21641112.735 21641116.837
+ 43.200 36.700
+ -19017669.103 7 -14818962.772 6 21000336.598 21000334.009 21000336.300
+ 43.600 41.900
+ -14078443.052 7 -10970212.101 6 21951972.597 21951968.691 21951970.862
+ 43.100 36.900
+ -10606907.584 6 -8265121.704 5 23153048.149 23153045.911 23153047.145
+ 36.000 33.000
+ -21628480.542 7 -16853354.769 7 20444078.450 20444076.626 20444077.537
+ 47.600 42.300
+ -11753293.146 6 -9158403.267 5 22357428.610 22357425.874 22357427.561
+ 41.300 32.700
+ -1139960.543 4 -888280.602 3 24408288.478 24408287.609 24408287.415
+ 27.400 21.100
+ 06 1 2 12 41 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15789885.433 7 -12303808.061 6 21656997.574 21656992.379 21656996.445
+ 43.700 37.000
+ -19002357.014 7 -14807031.290 6 21003250.199 21003247.818 21003249.967
+ 43.700 41.900
+ -14165728.622 7 -11038226.818 6 21935363.196 21935358.637 21935360.848
+ 43.000 37.100
+ -10690173.776 5 -8330004.465 5 23137203.088 23137200.874 23137202.300
+ 35.700 32.600
+ -21640261.827 7 -16862534.992 7 20441836.577 20441834.805 20441835.685
+ 47.600 42.500
+ -11673709.744 6 -9096390.245 5 22372573.044 22372569.672 22372571.934
+ 41.200 32.600
+ -1182119.851 4 -921132.000 3 24400265.379 24400264.775 24400264.106
+ 24.200 18.600
+ 06 1 2 12 41 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15706014.871 7 -12238454.402 6 21672957.269 21672952.388 21672956.350
+ 43.100 36.500
+ -18986412.504 7 -14794607.011 6 21006284.510 21006281.841 21006284.249
+ 43.800 41.600
+ -14252647.660 7 -11105955.921 6 21918821.874 21918818.518 21918820.499
+ 43.200 37.400
+ -10773345.407 5 -8394813.541 5 23121376.183 23121373.883 23121375.165
+ 35.700 32.700
+ -21651427.868 7 -16871235.811 7 20439711.820 20439709.915 20439710.885
+ 47.700 42.500
+ -11593975.409 6 -9034259.625 5 22387746.103 22387743.101 22387744.793
+ 41.100 32.800
+ -1223821.053 4 -953626.399 3 24392329.650 24392329.684 24392328.705
+ 24.900 20.500
+ 06 1 2 12 42 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15621724.115 7 -12172773.330 6 21688997.577 21688992.552 21688996.423
+ 43.000 36.400
+ -18969836.179 7 -14781690.415 6 21009438.953 21009436.223 21009438.669
+ 43.800 41.800
+ -14339197.822 7 -11173397.576 6 21902352.004 21902348.478 21902350.602
+ 43.100 37.100
+ -10856421.543 5 -8459548.195 5 23105567.121 23105565.294 23105566.212
+ 35.500 33.600
+ -21661978.256 7 -16879456.892 7 20437704.126 20437702.226 20437703.200
+ 47.700 42.400
+ -11514091.470 6 -8972012.432 5 22402947.482 22402944.498 22402946.239
+ 41.200 32.700
+ -1265061.965 3 -985762.173 3 24384482.185 24384481.540 24384481.080
+ 23.800 22.600
+ 06 1 2 12 42 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15537015.905 7 -12106766.961 5 21705116.997 21705111.871 21705115.895
+ 42.800 35.600
+ -18952628.653 7 -14768281.970 6 21012713.551 21012710.679 21012713.222
+ 43.900 41.400
+ -14425376.786 7 -11240550.001 6 21885953.365 21885949.187 21885951.190
+ 42.800 37.300
+ -10939400.122 6 -8524206.838 5 23089776.952 23089774.914 23089776.099
+ 36.500 33.800
+ -21671913.125 7 -16887198.361 7 20435813.603 20435811.669 20435812.621
+ 47.700 42.200
+ -11434059.270 6 -8909649.703 5 22418176.957 22418174.000 22418175.886
+ 40.800 31.600
+ -1305840.618 3 -1017537.708 3 24376722.338 24376721.895 24376720.916
+ 23.400 20.500
+ 06 1 2 12 43 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15451892.977 7 -12040437.441 6 21721315.301 21721310.515 21721314.158
+ 42.900 36.500
+ -18934790.260 7 -14754381.941 6 21016108.167 21016105.253 21016107.835
+ 43.600 41.700
+ -14511182.146 7 -11307411.310 6 21869624.861 21869621.008 21869623.162
+ 43.000 37.700
+ -11022280.065 5 -8588788.625 5 23074005.176 23074003.317 23074004.379
+ 35.900 33.200
+ -21681232.525 7 -16894460.236 7 20434040.368 20434038.215 20434039.360
+ 47.600 42.500
+ -11353879.896 6 -8847172.309 5 22433434.609 22433431.923 22433433.639
+ 41.000 32.100
+ -1346154.778 4 -1048951.330 3 24369050.765 24369050.127 24369049.649
+ 26.500 20.500
+ 06 1 2 12 43 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15366357.941 7 -11973786.802 6 21737592.151 21737587.154 21737590.850
+ 42.500 36.100
+ -18916321.733 7 -14739990.900 6 21019622.517 21019619.926 21019622.224
+ 44.000 41.600
+ -14596611.743 7 -11373979.796 6 21853367.057 21853364.281 21853366.454
+ 43.400 37.500
+ -11105059.683 6 -8653292.233 5 23058252.858 23058250.898 23058251.952
+ 36.300 33.100
+ -21689936.787 7 -16901242.790 7 20432383.890 20432382.009 20432382.928
+ 47.500 42.500
+ -11273554.617 6 -8784581.206 5 22448720.143 22448717.195 22448718.976
+ 40.900 31.600
+ -1386002.396 4 -1080001.431 3 24361467.647 24361467.442 24361466.928
+ 24.900 21.100
+ 06 1 2 12 44 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15280413.704 7 -11906817.298 5 21753946.737 21753941.800 21753945.646
+ 42.400 35.800
+ -18897223.440 7 -14725109.135 6 21023256.785 21023254.231 21023256.461
+ 43.500 41.900
+ -14681662.911 7 -11440253.425 6 21837184.129 21837179.464 21837181.902
+ 43.400 37.400
+ -11187737.767 6 -8717716.723 5 23042519.690 23042517.864 23042518.773
+ 36.400 33.500
+ -21698025.673 7 -16907545.824 7 20430844.748 20430842.842 20430843.718
+ 47.600 42.700
+ -11193085.044 6 -8721877.676 5 22464032.512 22464030.060 22464031.547
+ 40.700 31.500
+ -1425381.398 4 -1110686.378 3 24353974.518 24353973.648 24353973.648
+ 25.300 19.300
+ 06 1 2 12 44 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15194062.686 7 -11839530.829 5 21770379.039 21770373.799 21770377.596
+ 42.000 35.600
+ -18877496.149 7 -14709737.239 6 21027010.871 21027008.173 21027010.509
+ 43.600 41.800
+ -14766333.481 7 -11506230.486 6 21821071.103 21821067.190 21821069.297
+ 43.600 37.800
+ -11270312.900 6 -8782060.999 5 23026806.407 23026804.428 23026805.384
+ 36.500 33.200
+ -21705499.037 7 -16913369.230 7 20429422.488 20429420.703 20429421.514
+ 47.500 42.600
+ -11112472.142 6 -8659062.454 5 22479372.818 22479370.142 22479371.758
+ 40.700 30.800
+ -1464289.897 4 -1141004.680 3 24346570.243 24346569.537 24346569.076
+ 24.200 18.600
+ 06 1 2 12 45 0.0000000 0 7G23G13G19G27G 3G16G15
+ -15107307.889 7 -11771929.724 5 21786887.519 21786882.733 21786886.349
+ 42.200 35.500
+ -18857140.199 7 -14693875.483 6 21030884.532 21030881.702 21030884.237
+ 43.900 41.500
+ -14850621.206 7 -11571909.212 6 21805031.282 21805027.847 21805029.947
+ 43.800 38.000
+ -11352783.318 6 -8846323.676 5 23011112.369 23011110.688 23011111.666
+ 36.500 33.400
+ -21712357.086 7 -16918713.175 7 20428117.356 20428115.598 20428116.444
+ 47.600 42.600
+ -11031717.270 6 -8596136.613 5 22494740.312 22494737.356 22494739.167
+ 40.300 31.100
+ -1502725.805 4 -1170954.757 3 24339256.226 24339255.998 24339255.358
+ 25.300 21.600
+ 06 1 2 12 45 30.0000000 0 7G23G13G19G27G 3G16G15
+ -15020152.006 7 -11704016.083 5 21803472.914 21803468.006 21803471.782
+ 42.300 35.800
+ -18836156.707 7 -14677524.730 6 21034877.661 21034874.838 21034877.249
+ 43.800 41.600
+ -14934523.584 7 -11637287.670 6 21789065.661 21789061.640 21789063.733
+ 43.800 38.100
+ -11435147.491 6 -8910503.561 5 22995439.312 22995437.393 22995438.372
+ 36.500 33.200
+ -21718600.061 7 -16923577.840 7 20426929.393 20426927.617 20426928.467
+ 47.700 42.500
+ -10950821.512 6 -8533100.992 5 22510134.214 22510131.230 22510133.200
+ 40.500 31.100
+ -1540687.052 4 -1200534.974 3 24332032.903 24332031.754 24332031.736
+ 24.600 20.500
+ 06 1 2 12 46 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14932597.652 7 -11635791.947 6 21820134.088 21820129.091 21820132.894
+ 42.300 36.000
+ -18814546.198 7 -14660685.388 6 21038989.910 21038987.232 21038989.609
+ 43.900 41.500
+ -15018038.074 7 -11702363.894 6 21773173.440 21773169.284 21773171.359
+ 44.000 38.100
+ -11517403.966 6 -8974599.526 5 22979786.247 22979784.481 22979785.299
+ 36.900 33.400
+ -21724228.096 7 -16927963.335 7 20425858.457 20425856.684 20425857.450
+ 47.700 42.700
+ -10869786.491 6 -8469956.854 5 22525554.383 22525551.833 22525553.474
+ 40.500 31.100
+ -1578171.792 3 -1229743.834 3 24324899.593 24324898.689 24324898.385
+ 23.000 18.600
+ 06 1 2 12 46 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14844647.691 7 -11567259.543 5 21836870.082 21836865.386 21836869.080
+ 42.000 34.900
+ -18792309.004 7 -14643357.721 6 21043221.571 21043218.862 21043221.240
+ 43.900 41.400
+ -15101162.711 7 -11767136.325 6 21757354.696 21757351.258 21757353.390
+ 44.300 38.100
+ -11599551.158 6 -9038610.339 5 22964154.382 22964152.334 22964153.540
+ 36.800 33.600
+ -21729241.255 7 -16931869.701 7 20424904.316 20424902.669 20424903.424
+ 47.600 42.700
+ -10788613.287 6 -8406705.045 5 22541001.786 22540998.224 22541000.493
+ 40.500 31.000
+ -1615177.846 3 -1258579.717 3 24317856.842 24317856.527 24317855.634
+ 22.100 19.900
+ 06 1 2 12 47 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14756304.833 6 -11498420.987 5 21853681.103 21853676.520 21853680.087
+ 41.400 35.300
+ -18769445.932 7 -14625542.364 6 21047572.326 21047569.455 21047571.935
+ 44.000 41.300
+ -15183894.749 7 -11831602.843 6 21741611.908 21741607.934 21741609.964
+ 43.900 38.100
+ -11681587.659 6 -9102534.910 5 22948543.683 22948541.459 22948542.645
+ 37.500 33.900
+ -21733639.895 7 -16935297.224 7 20424067.341 20424065.657 20424066.460
+ 47.600 42.400
+ -10707302.925 6 -8343346.354 5 22556474.469 22556471.148 22556473.416
+ 40.300 30.800
+ -1651703.236 4 -1287041.071 2 24310906.543 24310905.462 24310905.594
+ 24.600 16.100
+ 06 1 2 12 47 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14667571.689 6 -11429278.310 5 21870566.797 21870561.880 21870565.790
+ 41.900 35.100
+ -18745958.186 7 -14607240.243 6 21052041.821 21052039.095 21052041.530
+ 44.000 41.300
+ -15266233.108 7 -11895762.606 6 21725943.549 21725939.570 21725941.526
+ 44.100 38.100
+ -11763511.601 6 -9166371.763 5 22932953.765 22932952.063 22932952.728
+ 36.700 35.100
+ -21737424.163 7 -16938246.016 7 20423347.298 20423345.489 20423346.447
+ 47.800 42.600
+ -10625856.821 6 -8279881.897 5 22571972.959 22571970.152 22571971.783
+ 39.600 30.400
+ -1687746.010 3 -1315126.337 3 24304047.961 24304047.275 24304046.691
+ 23.400 19.900
+ 06 1 2 12 48 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14578451.298 6 -11359833.892 5 21887525.908 21887520.990 21887524.833
+ 41.400 35.400
+ -18721846.106 7 -14588451.631 6 21056630.199 21056627.523 21056629.869
+ 43.700 41.400
+ -15348174.997 7 -11959613.410 6 21710350.033 21710346.332 21710348.365
+ 43.900 38.000
+ -11845321.982 6 -9230120.115 5 22917385.712 22917383.873 22917384.720
+ 36.100 34.700
+ -21740594.157 7 -16940716.150 7 20422744.288 20422742.264 20422743.365
+ 47.800 42.700
+ -10544276.244 6 -8216312.657 5 22587497.167 22587494.459 22587496.226
+ 39.800 30.100
+ -1723304.305 3 -1342834.119 3 24297281.295 24297280.756 24297280.301
+ 23.400 19.900
+ 06 1 2 12 48 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14488946.463 6 -11290089.899 5 21904557.984 21904553.148 21904556.705
+ 41.000 35.300
+ -18697110.636 7 -14569177.257 6 21061337.247 21061334.463 21061336.906
+ 43.800 41.300
+ -15429717.605 7 -12023153.101 6 21694833.380 21694829.285 21694831.461
+ 44.400 38.100
+ -11927017.129 6 -9293778.673 5 22901839.533 22901838.049 22901838.590
+ 37.000 34.900
+ -21743150.083 8 -16942707.793 7 20422257.839 20422255.983 20422256.906
+ 48.000 42.700
+ -10462562.357 6 -8152639.530 5 22603047.004 22603044.249 22603046.006
+ 40.000 30.800
+ -1758376.199 3 -1370162.856 2 24290606.985 24290606.800 24290605.946
+ 23.400 17.800
+ 06 1 2 12 49 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14399059.794 6 -11220048.384 5 21921663.030 21921658.313 21921661.849
+ 41.500 35.400
+ -18671752.568 7 -14549417.747 6 21066162.714 21066159.867 21066162.433
+ 44.000 41.100
+ -15510858.860 7 -12086380.042 6 21679392.163 21679388.758 21679390.739
+ 44.300 38.800
+ -12008595.612 6 -9357346.336 5 22886316.213 22886313.942 22886315.142
+ 37.700 34.600
+ -21745092.552 7 -16944221.410 7 20421888.412 20421886.480 20421887.398
+ 47.800 42.800
+ -10380716.149 6 -8088863.308 5 22618622.111 22618619.030 22618620.850
+ 39.500 31.500
+ -1792959.935 4 -1397111.207 3 24284026.900 24284025.893 24284025.754
+ 25.300 21.100
+ 06 1 2 12 49 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14308794.187 6 -11149711.578 5 21938839.815 21938835.126 21938838.725
+ 41.400 34.900
+ -18645773.065 7 -14529173.994 6 21071106.443 21071103.709 21071106.147
+ 43.900 41.100
+ -15591596.749 7 -12149292.672 6 21664028.792 21664024.846 21664026.827
+ 44.400 38.700
+ -12090055.821 6 -9420821.845 5 22870814.614 22870812.511 22870813.767
+ 38.100 34.400
+ -21746421.821 7 -16945257.220 7 20421635.437 20421633.467 20421634.410
+ 47.900 42.700
+ -10298739.269 6 -8024985.262 5 22634221.906 22634218.614 22634220.682
+ 39.600 30.800
+ -1827053.690 3 -1423677.772 3 24277538.803 24277537.304 24277537.350
+ 21.600 18.600
+ 06 1 2 12 50 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14218152.698 6 -11079081.885 5 21956088.176 21956083.865 21956087.353
+ 40.700 34.900
+ -18619172.872 7 -14508446.592 6 21076168.270 21076165.700 21076167.935
+ 43.700 41.300
+ -15671929.356 7 -12211889.498 6 21648741.775 21648737.874 21648739.937
+ 44.300 38.600
+ -12171395.797 6 -9484203.660 5 22855336.304 22855333.850 22855335.251
+ 38.100 33.600
+ -21747138.002 8 -16945815.292 7 20421498.986 20421497.027 20421498.026
+ 48.000 42.600
+ -10216632.532 6 -7961006.025 5 22649846.260 22649843.097 22649844.912
+ 38.700 30.400
+ -1860655.495 3 -1449860.963 3 24271144.055 24271144.256 24271143.415
+ 22.600 20.500
+ 06 1 2 12 50 30.0000000 0 7G23G13G19G27G 3G16G15
+ -14127138.040 6 -11008161.409 5 21973408.183 21973403.185 21973406.862
+ 40.300 33.900
+ -18591952.960 7 -14487236.291 6 21081347.993 21081345.527 21081347.713
+ 43.600 41.200
+ -15751853.850 7 -12274168.307 6 21633532.669 21633528.862 21633530.924
+ 44.400 38.800
+ -12252614.280 6 -9547490.821 5 22839880.839 22839878.219 22839879.770
+ 37.700 33.400
+ -21747241.725 8 -16945896.126 7 20421479.278 20421477.308 20421478.316
+ 48.000 42.500
+ -10134397.117 6 -7896926.524 5 22665495.090 22665491.927 22665494.094
+ 39.700 30.800
+ -1893763.595 4 -1475659.483 3 24264843.568 24264843.792 24264842.770
+ 24.200 20.500
+ 06 1 2 12 51 0.0000000 0 7G23G13G19G27G 3G16G15
+ -14035752.972 6 -10936952.306 5 21990798.714 21990793.388 21990797.282
+ 40.700 34.500
+ -18564114.042 7 -14465543.648 6 21086645.714 21086643.225 21086645.342
+ 43.500 41.100
+ -15831368.549 7 -12336127.798 6 21618401.774 21618397.521 21618399.831
+ 44.500 38.400
+ -12333709.489 6 -9610681.908 5 22824448.998 22824446.864 22824448.033
+ 37.900 34.800
+ -21746733.217 8 -16945499.901 7 20421576.174 20421574.140 20421575.208
+ 48.100 42.600
+ -10052034.725 6 -7832748.082 5 22681167.962 22681165.217 22681166.894
+ 38.900 30.200
+ -1926376.154 4 -1501071.846 3 24258639.070 24258637.541 24258637.649
+ 24.200 20.500
+ 06 1 2 12 51 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13944000.184 6 -10865456.672 5 22008258.023 22008253.555 22008257.110
+ 41.200 35.100
+ -18535657.299 7 -14443369.584 6 21092060.545 21092058.345 21092060.249
+ 43.300 41.000
+ -15910470.908 7 -12397765.990 6 21603348.362 21603344.897 21603347.063
+ 44.900 38.700
+ -12414680.234 6 -9673776.004 5 22809040.567 22809039.124 22809039.506
+ 37.200 35.700
+ -21745612.803 8 -16944626.861 7 20421789.493 20421787.297 20421788.542
+ 48.200 42.500
+ -9969546.141 6 -7768471.295 4 22696864.825 22696861.880 22696863.793
+ 38.900 29.900
+ -1958491.431 4 -1526096.727 3 24252527.365 24252526.348 24252526.208
+ 24.600 21.600
+ 06 1 2 12 52 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13851882.696 6 -10793676.850 5 22025787.411 22025782.993 22025786.535
+ 41.200 35.100
+ -18506583.443 7 -14420714.651 6 21097593.078 21097590.705 21097592.773
+ 43.400 40.600
+ -15989159.026 7 -12459081.397 6 21588375.193 21588371.070 21588373.034
+ 44.600 39.000
+ -12495524.720 6 -9736771.715 5 22793656.277 22793654.384 22793655.373
+ 37.700 34.800
+ -21743881.011 8 -16943277.417 7 20422118.909 20422116.901 20422117.991
+ 48.200 42.400
+ -9886932.512 6 -7704097.074 5 22712586.289 22712583.228 22712585.016
+ 38.800 30.100
+ -1990107.667 3 -1550732.786 3 24246509.899 24246510.144 24246508.690
+ 23.000 23.000
+ 06 1 2 12 52 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13759403.299 6 -10721615.025 5 22043386.274 22043381.082 22043384.771
+ 40.300 34.300
+ -18476893.760 7 -14397579.850 6 21103243.059 21103240.553 21103242.759
+ 43.500 40.800
+ -16067430.501 7 -12520072.149 6 21573480.431 21573476.576 21573478.614
+ 44.900 39.200
+ -12576241.369 6 -9799667.825 5 22778296.568 22778294.667 22778295.806
+ 38.600 34.900
+ -21741538.412 8 -16941452.035 7 20422564.886 20422562.759 20422563.789
+ 48.100 42.700
+ -9804194.977 6 -7639626.316 4 22728330.595 22728327.482 22728329.388
+ 38.500 29.200
+ -2021223.148 4 -1574978.596 3 24240589.498 24240588.777 24240588.560
+ 24.600 19.900
+ 06 1 2 12 53 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13666565.099 6 -10649273.616 5 22061052.639 22061047.472 22061051.347
+ 40.300 33.900
+ -18446589.408 7 -14373966.095 6 21109009.723 21109007.380 21109009.410
+ 43.200 40.900
+ -16145283.404 7 -12580736.732 6 21558665.116 21558661.687 21558663.688
+ 45.100 39.300
+ -12656828.742 6 -9862463.204 5 22762961.487 22762959.394 22762960.386
+ 38.100 35.300
+ -21738585.624 8 -16939151.170 7 20423126.485 20423124.707 20423125.586
+ 48.000 42.600
+ -9721334.920 6 -7575060.070 4 22744098.106 22744095.386 22744097.000
+ 38.700 29.200
+ -2051835.954 3 -1598832.753 3 24234763.797 24234763.785 24234762.723
+ 23.400 21.600
+ 06 1 2 12 53 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13573370.905 6 -10576654.802 5 22078786.291 22078781.763 22078785.537
+ 40.300 33.500
+ -18415671.349 7 -14349874.122 6 21114893.422 21114890.682 21114893.069
+ 43.400 40.400
+ -16222715.482 7 -12641073.419 6 21543930.615 21543926.762 21543928.905
+ 45.000 39.300
+ -12737285.027 6 -9925156.422 5 22747651.009 22747649.289 22747650.109
+ 38.100 35.600
+ -21735022.938 7 -16936375.060 7 20423804.298 20423802.633 20423803.444
+ 47.900 42.700
+ -9638353.459 6 -7510399.232 4 22759889.180 22759886.280 22759887.999
+ 38.600 29.500
+ -2081944.530 4 -1622293.990 3 24229035.289 24229033.972 24229034.195
+ 25.300 21.600
+ 06 1 2 12 54 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13479823.560 6 -10503760.799 5 22096587.545 22096583.349 22096586.782
+ 40.000 33.600
+ -18384140.509 7 -14325304.655 6 21120893.516 21120890.942 21120893.175
+ 43.300 40.500
+ -16299724.575 7 -12701080.494 6 21529276.279 21529272.500 21529274.512
+ 45.100 39.600
+ -12817608.585 6 -9987746.222 6 22732365.884 22732364.247 22732364.857
+ 38.100 36.200
+ -21730851.003 7 -16933124.218 7 20424598.297 20424596.523 20424597.315
+ 47.800 42.600
+ -9555251.669 6 -7445644.634 4 22775702.677 22775700.412 22775701.578
+ 38.600 29.900
+ -2111547.153 4 -1645361.008 3 24223401.215 24223401.076 24223400.385
+ 25.900 23.000
+ 06 1 2 12 54 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13385925.793 6 -10430593.745 5 22114456.580 22114451.546 22114455.069
+ 39.500 34.000
+ -18351998.214 7 -14300258.734 6 21127010.001 21127007.414 21127009.665
+ 43.300 40.300
+ -16376308.801 7 -12760756.507 6 21514703.020 21514698.986 21514701.050
+ 45.200 39.700
+ -12897797.582 6 -10050231.163 5 22717106.604 22717104.739 22717105.705
+ 38.600 35.700
+ -21726070.399 7 -16929399.085 7 20425508.036 20425506.250 20425507.057
+ 47.700 42.500
+ -9472030.687 6 -7380797.158 4 22791539.646 22791536.764 22791538.432
+ 38.400 29.500
+ -2140642.160 4 -1668032.468 3 24217865.065 24217863.801 24217863.925
+ 25.900 21.600
+ 06 1 2 12 55 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13291680.450 6 -10357155.876 5 22132390.700 22132385.801 22132389.559
+ 40.300 33.500
+ -18319245.526 7 -14274737.182 6 21133242.627 21133239.876 21133242.327
+ 43.300 40.000
+ -16452465.869 7 -12820099.673 6 21500210.778 21500206.857 21500208.985
+ 45.400 40.000
+ -12977850.987 6 -10112610.457 6 22701872.996 22701871.185 22701872.037
+ 39.300 36.100
+ -21720681.647 7 -16925200.071 7 20426533.492 20426531.719 20426532.558
+ 47.600 42.500
+ -9388691.661 6 -7315857.697 4 22807398.713 22807395.610 22807397.383
+ 38.100 29.500
+ -2169228.043 4 -1690307.222 3 24212425.307 24212424.804 24212424.105
+ 25.600 21.100
+ 06 1 2 12 55 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13197090.603 6 -10283449.520 5 22150389.838 22150385.825 22150389.452
+ 40.500 33.900
+ -18285883.547 7 -14248740.856 6 21139591.175 21139588.598 21139590.823
+ 43.100 40.200
+ -16528193.824 7 -12879108.469 6 21485799.958 21485796.169 21485798.415
+ 45.700 39.400
+ -13057766.941 6 -10174882.648 5 22686665.271 22686663.266 22686664.392
+ 38.900 35.100
+ -21714685.272 7 -16920527.584 7 20427674.436 20427672.763 20427673.476
+ 47.700 42.400
+ -9305235.699 6 -7250827.117 4 22823279.931 22823276.688 22823278.733
+ 38.100 29.000
+ -2197303.029 3 -1712183.853 3 24207081.586 24207081.908 24207080.748
+ 23.000 21.100
+ 06 1 2 12 56 0.0000000 0 7G23G13G19G27G 3G16G15
+ -13102159.235 6 -10209477.067 5 22168456.815 22168451.013 22168454.786
+ 39.200 34.500
+ -18251913.549 7 -14222270.754 6 21146055.358 21146052.947 21146055.032
+ 42.900 39.800
+ -16603490.451 7 -12937781.163 6 21471471.549 21471467.670 21471470.009
+ 45.700 39.600
+ -13137543.504 6 -10237046.220 5 22671484.551 22671482.561 22671483.519
+ 38.800 35.400
+ -21708081.932 7 -16915382.137 7 20428931.074 20428929.288 20428930.202
+ 47.600 42.500
+ -9221664.085 6 -7185706.418 4 22839182.491 22839179.782 22839181.517
+ 37.800 28.100
+ -2224865.518 4 -1733661.179 3 24201837.867 24201837.214 24201836.636
+ 24.200 22.600
+ 06 1 2 12 56 30.0000000 0 7G23G13G19G27G 3G16G15
+ -13006889.074 6 -10135240.644 5 22186584.307 22186580.237 22186583.308
+ 38.900 34.500
+ -18217336.780 7 -14195327.839 6 21152635.124 21152632.691 21152634.806
+ 43.100 40.000
+ -16678353.985 7 -12996116.373 6 21457225.776 21457221.582 21457223.907
+ 45.600 39.900
+ -13217179.014 6 -10299099.879 5 22656330.124 22656328.256 22656329.260
+ 38.700 35.200
+ -21700872.375 7 -16909764.313 7 20430302.894 20430301.225 20430302.083
+ 47.700 42.400
+ -9137977.664 6 -7120496.257 4 22855107.182 22855104.688 22855106.119
+ 37.400 28.400
+ -2251914.070 4 -1754737.974 3 24196690.666 24196690.256 24196689.789
+ 26.800 23.000
+ 06 1 2 12 57 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12911283.095 6 -10060742.506 5 22204777.076 22204773.513 22204776.946
+ 39.100 33.900
+ -18182154.595 7 -14167913.174 6 21159330.329 21159327.779 21159330.040
+ 43.600 40.000
+ -16752782.006 7 -13054112.240 6 21443061.881 21443058.488 21443060.572
+ 45.600 40.100
+ -13296672.104 6 -10361042.572 5 22641203.294 22641201.287 22641202.309
+ 39.100 35.400
+ -21693057.258 7 -16903674.630 7 20431790.319 20431788.460 20431789.386
+ 47.700 42.600
+ -9054177.700 6 -7055197.627 4 22871054.339 22871051.945 22871053.060
+ 38.000 28.600
+ -2278446.891 4 -1775412.923 4 24191641.616 24191641.082 24191640.493
+ 25.300 24.200
+ 06 1 2 12 57 30.0000000 0 7G23G13G19G27G 3G16G15
+ -12815344.232 6 -9985985.009 5 22223035.738 22223029.910 22223033.790
+ 39.000 33.100
+ -18146367.997 7 -14140027.539 6 21166140.435 21166137.768 21166140.078
+ 43.500 39.800
+ -16826772.675 7 -13111767.290 6 21428982.515 21428978.556 21428980.564
+ 45.300 40.200
+ -13376021.149 6 -10422873.015 6 22626103.737 22626101.925 22626102.799
+ 39.700 36.500
+ -21684637.121 7 -16897113.502 7 20433392.594 20433390.792 20433391.614
+ 47.700 42.500
+ -8970265.192 6 -6989811.300 4 22887022.166 22887019.520 22887021.255
+ 38.100 28.400
+ -2304462.460 4 -1795684.816 4 24186691.259 24186691.313 24186690.244
+ 26.200 24.600
+ 06 1 2 12 58 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12719075.648 6 -9910970.563 5 22241353.210 22241349.127 22241352.615
+ 39.500 32.400
+ -18109978.515 7 -14111672.125 6 21173064.998 21173062.260 21173064.744
+ 43.800 39.700
+ -16900323.641 7 -13169079.733 6 21414985.689 21414982.242 21414984.178
+ 45.500 40.200
+ -13455224.012 6 -10484589.540 6 22611031.406 22611030.145 22611030.841
+ 39.600 36.700
+ -21675612.702 7 -16890081.502 7 20435109.799 20435108.072 20435108.934
+ 47.700 42.300
+ -8886241.443 6 -6924338.276 4 22903011.808 22903008.519 22903010.796
+ 38.100 28.400
+ -2329959.305 4 -1815552.504 3 24181839.047 24181838.702 24181837.811
+ 24.200 23.800
+ 06 1 2 12 58 30.0000000 0 7G23G13G19G27G 3G16G15
+ -12622480.040 6 -9835701.296 5 22259735.758 22259731.031 22259734.537
+ 39.300 32.700
+ -18072987.480 7 -14082847.960 6 21180104.252 21180101.614 21180104.009
+ 43.900 39.900
+ -16973433.277 7 -13226048.269 6 21401073.780 21401069.870 21401071.758
+ 45.300 40.200
+ -13534279.526 6 -10546191.256 6 22595987.950 22595986.346 22595987.214
+ 39.400 36.500
+ -21665984.881 7 -16882579.317 7 20436941.884 20436940.136 20436941.048
+ 47.800 42.300
+ -8802107.225 6 -6858779.190 4 22919022.344 22919019.367 22919021.183
+ 38.200 27.900
+ -2354935.831 4 -1835014.761 3 24177086.259 24177085.908 24177085.233
+ 26.800 22.100
+ 06 1 2 12 59 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12525560.334 6 -9760179.503 5 22278178.766 22278174.247 22278177.630
+ 38.900 33.200
+ -18035396.099 7 -14053555.998 6 21187257.853 21187255.149 21187257.485
+ 43.600 39.700
+ -17046099.657 7 -13282671.413 6 21387245.236 21387241.940 21387243.933
+ 45.400 40.200
+ -13613185.843 6 -10607676.720 6 22580972.925 22580970.871 22580971.979
+ 39.700 36.200
+ -21655754.334 7 -16874607.478 7 20438888.877 20438886.962 20438887.925
+ 47.600 42.100
+ -8717863.956 6 -6793135.117 4 22935052.953 22935049.996 22935051.862
+ 37.600 27.100
+ -2379390.680 4 -1854070.455 3 24172432.356 24172432.167 24172431.418
+ 25.600 23.000
+ 06 1 2 12 59 30.0000000 0 7G23G13G19G27G 3G16G15
+ -12428319.706 6 -9684407.612 5 22296682.516 22296678.368 22296681.962
+ 38.700 33.000
+ -17997206.125 7 -14023797.600 6 21194524.853 21194522.310 21194524.539
+ 43.500 39.600
+ -17118320.648 7 -13338947.509 6 21373502.662 21373498.772 21373500.754
+ 45.600 40.600
+ -13691941.254 6 -10669044.586 6 22565986.266 22565984.513 22565985.301
+ 40.000 37.200
+ -21644921.747 7 -16866166.515 7 20440950.295 20440948.410 20440949.310
+ 47.800 42.500
+ -8633512.503 6 -6727406.756 4 22951103.777 22951101.516 22951102.899
+ 37.400 27.400
+ -2403322.159 4 -1872718.404 4 24167878.569 24167878.812 24167877.582
+ 25.900 24.200
+ 06 1 2 13 0 0.0000000 0 7G23G13G19G27G 3G16G15
+ -12330760.649 6 -9608387.625 5 22315248.796 22315243.292 22315247.003
+ 37.600 32.100
+ -17958418.326 7 -13993573.367 6 21201905.964 21201903.482 21201905.704
+ 43.700 39.800
+ -17190094.150 7 -13394874.904 6 21359844.774 21359840.716 21359842.838
+ 45.900 40.700
+ -13770544.043 6 -10730293.531 6 22551028.556 22551026.633 22551027.712
+ 40.200 36.600
+ -21633488.094 7 -16857257.190 7 20443125.817 20443124.223 20443124.981
+ 47.600 42.300
+ -8549054.213 6 -6661595.144 4 22967175.885 22967173.791 22967174.995
+ 37.700 28.800
+ -2426729.172 4 -1890957.642 3 24163425.429 24163424.111 24163424.095
+ 27.900 23.000
+ 06 1 2 13 0 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -12232886.773 6 -9532122.323 5 22333871.976 22333868.156 22333871.541
+ 38.400 32.700
+ -17919034.443 7 -13962884.652 6 21209400.739 21209398.058 21209400.384
+ 43.800 39.600
+ -17261418.538 7 -13450452.355 6 21346271.752 21346268.120 21346270.232
+ 46.000 40.500
+ -13848992.360 6 -10791422.102 6 22536100.501 22536098.581 22536099.356
+ 39.300 36.900
+ -21621454.241 7 -16847880.176 7 20445415.836 20445414.281 20445414.929
+ 47.700 42.300
+ -8464490.071 6 -6595701.054 4 22983268.529 22983265.567 22983267.201
+ 37.100 27.900
+ -2449609.870 3 -1908786.754 3 24159070.016 24159069.995 24159068.777
+ 22.600 23.000
+ -226598.048 3 -176569.621 3 24723366.873 24723365.328 24723365.736
+ 23.400 23.000
+ 06 1 2 13 1 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -12134700.713 6 -9455613.737 5 22352557.427 22352552.326 22352555.967
+ 39.600 32.100
+ -17879055.925 7 -13931732.584 6 21217008.297 21217005.693 21217008.004
+ 43.500 39.700
+ -17332291.710 7 -13505678.202 6 21332785.267 21332781.435 21332783.515
+ 46.000 40.500
+ -13927284.872 6 -10852429.271 6 22521201.644 22521199.938 22521200.747
+ 39.700 36.900
+ -21608820.959 7 -16838036.071 7 20447820.009 20447818.306 20447819.070
+ 47.600 42.300
+ -8379820.854 6 -6529725.082 4 22999380.019 22999377.964 22999379.046
+ 36.200 28.600
+ -2471963.000 4 -1926204.829 3 24154816.650 24154816.121 24154815.598
+ 25.300 21.100
+ -332820.789 4 -259340.579 4 24703153.487 24703152.183 24703152.625
+ 25.900 24.900
+ 06 1 2 13 1 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -12036205.351 6 -9378864.143 5 22371299.394 22371295.569 22371298.955
+ 39.300 32.600
+ -17838484.248 7 -13900118.313 6 21224728.648 21224726.321 21224728.385
+ 43.400 39.700
+ -17402711.775 7 -13560550.970 6 21319385.046 21319380.775 21319383.063
+ 46.000 40.500
+ -14005419.697 6 -10913313.562 6 22506333.055 22506331.349 22506332.209
+ 40.200 36.500
+ -21595589.263 7 -16827725.673 7 20450337.983 20450336.251 20450337.051
+ 47.800 42.200
+ -8295047.888 6 -6463668.277 4 23015512.017 23015509.945 23015510.875
+ 36.200 28.100
+ -2493787.304 4 -1943210.765 3 24150663.517 24150663.529 24150662.391
+ 25.600 21.600
+ -439044.631 4 -342112.421 4 24682940.344 24682938.431 24682939.202
+ 25.900 24.200
+ 06 1 2 13 2 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11937403.698 6 -9301875.872 5 22390101.858 22390096.722 22390100.438
+ 37.400 32.100
+ -17797320.915 7 -13868043.020 6 21232561.867 21232559.504 21232561.540
+ 43.300 39.500
+ -17472676.756 7 -13615069.139 6 21306070.470 21306067.008 21306069.070
+ 46.100 40.600
+ -14083395.340 6 -10974073.825 6 22491494.991 22491492.911 22491494.044
+ 40.200 36.500
+ -21581759.970 7 -16816949.619 7 20452969.589 20452967.851 20452968.633
+ 47.600 42.300
+ -8210172.078 5 -6397531.332 4 23031663.683 23031661.154 23031662.462
+ 35.700 28.600
+ -2515081.393 4 -1959803.571 3 24146612.100 24146611.121 24146611.060
+ 25.900 22.100
+ -545268.560 4 -424884.261 3 24662727.089 24662724.175 24662725.995
+ 25.300 19.900
+ 06 1 2 13 2 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11838298.834 6 -9224651.367 5 22408960.236 22408955.613 22408959.185
+ 37.200 31.300
+ -17755567.411 7 -13835507.848 6 21240507.510 21240504.711 21240507.122
+ 43.300 39.300
+ -17542185.072 7 -13669231.451 6 21292843.905 21292840.007 21292842.105
+ 46.000 40.900
+ -14161209.867 6 -11034708.545 6 22476687.533 22476685.620 22476686.528
+ 40.400 36.800
+ -21567333.922 7 -16805708.555 7 20455714.591 20455712.991 20455713.750
+ 47.600 42.300
+ -8125194.595 5 -6331315.159 4 23047834.821 23047831.834 23047833.573
+ 35.800 27.900
+ -2535843.923 4 -1975982.194 3 24142660.638 24142660.728 24142659.390
+ 24.900 22.100
+ -651490.825 3 -507654.896 3 24642512.826 24642510.700 24642511.803
+ 23.800 20.500
+ 06 1 2 13 3 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11738893.958 6 -9147193.059 5 22427876.639 22427871.825 22427875.523
+ 37.000 31.800
+ -17713225.348 7 -13802514.050 6 21248564.897 21248562.252 21248564.567
+ 43.300 39.400
+ -17611234.314 7 -13723036.032 6 21279704.206 21279700.221 21279702.501
+ 46.200 40.700
+ -14238861.389 6 -11095216.239 6 22461910.855 22461909.059 22461909.825
+ 40.300 37.200
+ -21552312.098 7 -16794003.254 7 20458573.350 20458571.573 20458572.400
+ 47.800 42.100
+ -8040116.344 5 -6265020.466 4 23064024.136 23064021.145 23064023.017
+ 35.800 26.500
+ -2556073.700 4 -1991745.650 3 24138811.393 24138810.282 24138810.346
+ 25.600 21.100
+ -757710.396 3 -590423.417 3 24622299.758 24622298.078 24622298.894
+ 22.600 21.100
+ 06 1 2 13 3 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11639191.546 6 -9069502.928 5 22446849.703 22446844.827 22446848.286
+ 37.400 32.100
+ -17670296.243 7 -13769062.834 6 21256733.929 21256731.644 21256733.597
+ 43.100 39.700
+ -17679822.865 7 -13776481.642 6 21266651.651 21266648.338 21266650.369
+ 46.200 41.300
+ -14316348.161 6 -11155595.557 6 22447165.410 22447163.755 22447164.562
+ 40.700 37.000
+ -21536695.742 7 -16781834.684 7 20461545.013 20461543.257 20461544.101
+ 47.700 42.000
+ -7954938.549 5 -6198648.201 4 23080232.808 23080230.454 23080231.584
+ 35.300 28.400
+ -2575769.559 3 -2007093.093 3 24135063.137 24135062.704 24135061.858
+ 23.400 22.100
+ -863925.237 3 -673188.215 3 24602088.084 24602085.864 24602086.893
+ 22.600 19.900
+ 06 1 2 13 4 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11539194.778 6 -8991583.416 5 22465877.842 22465873.761 22465876.903
+ 37.100 32.700
+ -17626781.811 7 -13735155.510 6 21265014.617 21265012.214 21265014.227
+ 43.200 39.500
+ -17747948.926 7 -13829566.865 6 21253688.123 21253684.268 21253686.360
+ 46.300 41.100
+ -14393668.427 6 -11215845.133 6 22432451.876 22432450.120 22432450.964
+ 40.400 37.200
+ -21520485.747 7 -16769203.533 7 20464629.686 20464627.963 20464628.743
+ 47.800 42.000
+ -7869661.882 5 -6132198.909 4 23096460.220 23096458.057 23096459.396
+ 35.600 27.100
+ -2594930.092 4 -2022023.403 3 24131417.381 24131416.802 24131416.095
+ 26.800 22.600
+ -970134.179 2 -755948.448 3 24581876.635 24581875.823 24581875.658
+ 16.100 20.500
+ 06 1 2 13 4 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11438906.725 6 -8913436.934 5 22484962.798 22484957.894 22484961.305
+ 37.500 32.400
+ -17582683.514 7 -13700793.225 6 21273406.005 21273403.770 21273405.726
+ 42.800 39.300
+ -17815610.587 7 -13882290.213 6 21240812.832 21240808.693 21240810.914
+ 46.300 41.200
+ -14470820.580 6 -11275963.712 6 22417770.503 22417768.555 22417769.525
+ 40.500 37.100
+ -21503683.119 7 -16756110.592 7 20467827.282 20467825.382 20467826.228
+ 47.800 42.100
+ -7784287.666 5 -6065673.596 4 23112706.965 23112704.309 23112705.774
+ 35.100 27.900
+ -2613553.766 4 -2036535.339 3 24127872.991 24127872.438 24127871.863
+ 26.200 19.300
+ -1076335.483 3 -838702.695 3 24561668.077 24561665.976 24561667.210
+ 23.400 19.900
+ 06 1 2 13 5 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11338330.430 6 -8835065.846 5 22504101.397 22504096.890 22504100.337
+ 37.500 31.800
+ -17538003.041 7 -13665977.301 6 21281908.491 21281906.192 21281908.149
+ 42.800 39.400
+ -17882806.267 7 -13934650.458 6 21228025.645 21228021.866 21228024.125
+ 46.500 41.200
+ -14547802.878 6 -11335949.940 6 22403121.104 22403119.425 22403120.191
+ 40.600 37.600
+ -21486288.647 7 -16742556.474 6 20471137.267 20471135.428 20471136.304
+ 47.700 41.900
+ -7698816.975 6 -5999073.114 4 23128972.040 23128968.911 23128970.948
+ 36.000 28.100
+ -2631639.507 4 -2050628.118 3 24124431.237 24124431.005 24124430.048
+ 24.900 22.600
+ -1182527.497 3 -921449.765 2 24541459.178 24541457.416 24541458.306
+ 22.100 17.000
+ 06 1 2 13 5 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11237468.945 6 -8756472.525 5 22523294.708 22523290.147 22523293.771
+ 37.600 30.100
+ -17492741.896 7 -13630708.900 6 21290521.367 21290519.067 21290521.102
+ 42.800 39.000
+ -17949533.871 7 -13986645.983 6 21215328.027 21215324.026 21215326.253
+ 46.600 41.400
+ -14624613.726 6 -11395802.556 6 22388504.465 22388503.106 22388503.537
+ 40.600 38.200
+ -21468303.512 7 -16728542.101 7 20474559.745 20474557.997 20474558.782
+ 47.800 42.100
+ -7613250.544 5 -5932398.026 4 23145254.354 23145251.677 23145253.192
+ 35.800 27.100
+ -2649186.190 4 -2064300.885 3 24121092.226 24121092.068 24121090.881
+ 25.600 21.100
+ -1288709.221 3 -1004188.816 3 24521254.697 24521251.999 24521252.962
+ 21.100 21.600
+ 06 1 2 13 6 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11136325.425 6 -8677659.434 5 22542541.692 22542537.339 22542540.659
+ 36.900 31.100
+ -17446901.948 7 -13594989.487 6 21299244.417 21299242.134 21299244.088
+ 42.800 38.900
+ -18015791.860 7 -14038275.569 6 21202719.871 21202715.563 21202717.830
+ 46.700 41.600
+ -14701250.971 6 -11455519.896 6 22373921.091 22373919.257 22373920.201
+ 40.900 37.700
+ -21449728.886 7 -16714068.387 7 20478094.434 20478092.623 20478093.475
+ 47.800 42.000
+ -7527589.546 5 -5865649.254 4 23161555.094 23161552.180 23161553.906
+ 35.600 26.500
+ -2666192.610 4 -2077552.637 3 24117856.050 24117855.786 24117855.015
+ 27.100 21.100
+ -1394879.100 3 -1086918.559 3 24501051.350 24501048.766 24501050.391
+ 23.000 22.600
+ 06 1 2 13 6 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -11034902.778 6 -8598628.845 5 22561842.142 22561837.363 22561840.960
+ 36.600 30.600
+ -17400484.951 7 -13558820.418 6 21308077.531 21308075.151 21308077.214
+ 43.200 39.100
+ -18081578.282 7 -14089537.704 6 21190200.828 21190196.785 21190199.009
+ 46.800 41.600
+ -14777712.634 6 -11515100.433 6 22359371.108 22359368.728 22359370.025
+ 41.000 36.600
+ -21430565.890 7 -16699136.199 7 20481741.017 20481739.227 20481740.072
+ 47.700 42.100
+ -7441835.059 6 -5798827.634 4 23177873.992 23177870.597 23177872.780
+ 36.300 25.300
+ -2682657.676 4 -2090382.542 3 24114723.591 24114722.516 24114722.439
+ 27.400 20.500
+ -1501035.594 3 -1169637.922 2 24480849.375 24480846.949 24480848.333
+ 23.000 16.100
+ 06 1 2 13 7 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10933203.593 6 -8519382.779 5 22581194.504 22581190.235 22581193.553
+ 36.700 31.100
+ -17353492.396 7 -13522202.871 6 21317019.756 21317017.653 21317019.337
+ 42.300 39.200
+ -18146891.451 7 -14140431.075 6 21177772.185 21177768.159 21177770.341
+ 46.900 41.900
+ -14853997.593 6 -11574543.288 6 22344854.574 22344852.247 22344853.627
+ 41.200 37.200
+ -21410815.463 7 -16683746.273 7 20485499.414 20485497.631 20485498.421
+ 47.700 42.100
+ -7355987.912 5 -5731933.786 3 23194209.670 23194206.434 23194208.631
+ 35.700 23.800
+ -2698580.081 4 -2102789.606 3 24111692.408 24111692.014 24111691.849
+ 25.300 21.100
+ -1607177.077 4 -1252345.606 2 24460651.601 24460648.852 24460650.413
+ 24.900 15.100
+ 06 1 2 13 7 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10831231.032 6 -8439923.682 5 22600598.627 22600594.844 22600598.140
+ 37.200 30.200
+ -17305926.250 7 -13485138.374 6 21326071.319 21326069.193 21326071.021
+ 42.700 39.000
+ -18211729.813 7 -14190954.464 6 21165433.846 21165429.732 21165432.048
+ 46.800 41.600
+ -14930103.890 6 -11633846.907 6 22330371.545 22330369.926 22330370.744
+ 41.000 37.500
+ -21390478.823 7 -16667899.558 7 20489369.262 20489367.576 20489368.341
+ 47.700 42.100
+ -7270049.118 5 -5664968.529 4 23210563.311 23210560.630 23210562.275
+ 35.300 25.900
+ -2713958.834 4 -2114773.059 3 24108766.458 24108766.167 24108765.070
+ 24.600 22.100
+ -1713302.078 3 -1335040.431 3 24440456.686 24440454.600 24440455.623
+ 22.600 19.300
+ 06 1 2 13 8 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10728988.450 6 -8360254.184 5 22620055.709 22620051.267 22620054.542
+ 36.600 31.100
+ -17257788.330 7 -13447628.329 6 21335231.603 21335229.439 21335231.288
+ 42.700 38.900
+ -18276091.491 7 -14241106.408 6 21153186.212 21153182.038 21153184.280
+ 46.700 41.700
+ -15006029.282 6 -11693009.569 6 22315923.806 22315921.793 22315922.748
+ 41.300 37.700
+ -21369556.990 7 -16651596.847 7 20493350.754 20493348.857 20493349.675
+ 47.600 42.200
+ -7184019.572 5 -5597932.572 4 23226934.019 23226932.027 23226933.067
+ 35.600 26.500
+ -2728792.720 4 -2126331.926 4 24105943.848 24105943.969 24105942.719
+ 24.600 24.900
+ -1819409.050 4 -1417721.249 2 24420265.261 24420262.993 24420264.097
+ 24.600 17.000
+ 06 1 2 13 8 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10626478.828 5 -8280376.608 5 22639562.349 22639558.078 22639561.256
+ 35.600 30.200
+ -17209080.084 7 -13409673.883 6 21344500.365 21344498.321 21344500.126
+ 42.600 38.800
+ -18339974.586 7 -14290885.433 6 21141029.690 21141025.534 21141027.776
+ 46.600 41.900
+ -15081772.361 6 -11752030.164 6 22301510.306 22301508.743 22301509.382
+ 41.400 38.200
+ -21348051.246 7 -16634839.142 7 20497442.940 20497441.310 20497442.030
+ 47.500 42.300
+ -7097900.362 5 -5530826.741 4 23243322.338 23243319.896 23243321.200
+ 34.500 25.300
+ -2743080.751 4 -2137465.449 3 24103224.784 24103224.701 24103223.820
+ 25.300 22.600
+ -1925496.265 3 -1500386.631 3 24400076.430 24400075.764 24400075.800
+ 22.100 21.100
+ 06 1 2 13 9 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10523704.881 6 -8200293.076 5 22659120.211 22659115.617 22659118.816
+ 36.500 31.800
+ -17159803.629 7 -13371276.668 6 21353877.584 21353875.398 21353877.318
+ 42.700 38.900
+ -18403377.560 7 -14340290.336 6 21128964.343 21128960.199 21128962.542
+ 46.600 41.900
+ -15157331.261 6 -11810907.244 6 22287131.809 22287129.962 22287130.912
+ 41.400 37.500
+ -21325962.919 7 -16617627.477 7 20501646.267 20501644.642 20501645.361
+ 47.600 42.200
+ -7011692.563 5 -5463651.891 4 23259727.466 23259724.711 23259726.283
+ 34.800 26.500
+ -2756821.888 4 -2148172.825 3 24100609.796 24100609.845 24100608.520
+ 24.600 22.100
+ -2031562.752 3 -1583035.811 4 24379892.994 24379892.126 24379892.063
+ 23.400 25.300
+ 06 1 2 13 9 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10420669.733 6 -8120005.997 5 22678727.128 22678722.545 22678725.820
+ 36.000 30.600
+ -17109960.680 7 -13332438.036 6 21363362.239 21363360.280 21363361.917
+ 42.300 38.500
+ -18466298.780 7 -14389319.845 6 21116990.791 21116986.691 21116989.006
+ 46.700 41.900
+ -15232704.524 6 -11869639.683 6 22272788.570 22272786.914 22272787.851
+ 41.200 37.700
+ -21303293.356 7 -16599962.902 7 20505960.052 20505958.577 20505959.143
+ 47.600 42.000
+ -6925397.114 5 -5396408.736 4 23276148.923 23276146.472 23276147.746
+ 34.800 26.800
+ -2770015.172 4 -2158453.312 3 24098099.265 24098098.707 24098098.283
+ 25.900 22.100
+ -2137606.409 4 -1665667.243 4 24359714.705 24359712.669 24359713.659
+ 25.300 24.200
+ 06 1 2 13 10 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10317376.478 5 -8039517.796 4 22698382.615 22698378.459 22698381.868
+ 35.800 29.900
+ -17059553.310 7 -13293159.594 6 21372954.528 21372952.403 21372954.244
+ 42.500 38.400
+ -18528736.689 7 -14437972.743 6 21105109.170 21105105.088 21105107.436
+ 46.700 41.900
+ -15307889.923 6 -11928225.716 6 22258481.556 22258480.005 22258480.594
+ 41.600 38.700
+ -21280043.648 7 -16581846.262 7 20510384.339 20510382.972 20510383.443
+ 47.600 42.300
+ -6839014.874 5 -5329097.951 4 23292586.572 23292584.370 23292585.629
+ 35.200 26.200
+ -2782659.597 4 -2168306.110 3 24095693.793 24095692.436 24095692.574
+ 25.600 21.100
+ -2243626.087 4 -1748280.006 4 24339539.902 24339537.406 24339539.193
+ 26.500 25.300
+ 06 1 2 13 10 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10213828.323 5 -7958830.973 4 22718087.201 22718083.019 22718086.275
+ 35.300 29.700
+ -17008583.085 7 -13253442.557 6 21382653.909 21382651.666 21382653.649
+ 42.600 38.200
+ -18590689.576 7 -14486247.704 6 21093320.036 21093315.867 21093318.264
+ 46.600 41.900
+ -15382885.496 7 -11986663.830 6 22244210.551 22244208.908 22244209.637
+ 42.200 38.900
+ -21256214.998 7 -16563278.495 7 20514919.108 20514917.404 20514918.047
+ 47.700 42.100
+ -6752546.774 5 -5261720.261 4 23309040.870 23309038.285 23309039.696
+ 33.800 26.200
+ -2794754.178 4 -2177730.455 3 24093391.821 24093390.280 24093390.635
+ 25.900 19.900
+ -2349619.666 3 -1830872.416 3 24319370.421 24319367.346 24319369.094
+ 23.800 22.600
+ 06 1 2 13 11 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10110028.173 5 -7877947.779 4 22737840.157 22737835.595 22737839.082
+ 35.500 28.800
+ -16957052.252 7 -13213288.688 6 21392460.146 21392457.737 21392459.761
+ 42.400 38.500
+ -18652155.638 7 -14534143.331 6 21081623.278 21081619.292 21081621.592
+ 46.600 41.900
+ -15457689.804 6 -12044952.916 6 22229975.979 22229973.839 22229974.801
+ 41.800 38.200
+ -21231808.717 7 -16544260.631 7 20519563.452 20519561.842 20519562.435
+ 47.700 42.300
+ -6665993.588 5 -5194276.267 4 23325511.329 23325509.170 23325510.415
+ 34.100 26.200
+ -2806297.829 4 -2186725.476 3 24091195.538 24091194.590 24091194.245
+ 26.500 22.600
+ -2455585.867 3 -1913443.495 3 24299205.765 24299203.303 24299204.114
+ 23.400 22.600
+ 06 1 2 13 11 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -10005979.176 6 -7796870.685 4 22757639.924 22757635.559 22757638.895
+ 36.600 29.700
+ -16904962.461 7 -13172699.266 6 21402372.239 21402369.992 21402371.984
+ 42.300 37.900
+ -18713133.509 7 -14581658.552 7 21070019.461 21070015.530 21070017.785
+ 46.700 42.100
+ -15532300.723 7 -12103091.308 6 22215777.732 22215775.885 22215776.826
+ 42.000 38.200
+ -21206826.101 7 -16524793.669 7 20524317.261 20524315.757 20524316.326
+ 47.700 42.100
+ -6579356.324 5 -5126766.766 4 23341998.276 23341995.378 23341997.128
+ 34.400 25.600
+ -2817289.729 4 -2195290.625 3 24089103.709 24089102.143 24089102.377
+ 27.400 20.500
+ -2561522.840 4 -1995991.815 4 24279045.320 24279044.260 24279045.045
+ 26.200 24.600
+ 06 1 2 13 12 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9901684.090 5 -7715601.837 5 22777486.484 22777482.649 22777485.312
+ 35.400 31.300
+ -16852315.615 7 -13131675.771 6 21412390.664 21412388.412 21412390.300
+ 42.000 38.200
+ -18773621.371 7 -14628791.958 6 21058508.986 21058505.064 21058507.375
+ 46.800 41.900
+ -15606716.564 7 -12161077.698 6 22201616.780 22201614.857 22201615.899
+ 42.100 37.700
+ -21181268.497 7 -16504878.668 6 20529180.641 20529179.109 20529179.708
+ 47.700 41.700
+ -6492636.049 5 -5059192.582 4 23358500.433 23358498.203 23358499.471
+ 33.400 26.500
+ -2827729.061 4 -2203425.156 3 24087116.655 24087115.582 24087115.568
+ 25.600 20.500
+ -2667429.287 3 -2078516.345 3 24258891.852 24258891.180 24258890.739
+ 22.600 23.000
+ 06 1 2 13 12 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9797145.967 5 -7634143.625 5 22797379.185 22797375.370 22797378.335
+ 35.200 30.400
+ -16799113.909 7 -13090219.928 6 21422514.360 21422512.622 21422514.175
+ 42.100 38.100
+ -18833617.810 7 -14675542.443 7 21047092.159 21047088.145 21047090.517
+ 47.000 42.300
+ -15680935.485 7 -12218910.638 6 22187493.530 22187491.603 22187492.633
+ 42.200 38.100
+ -21155137.321 7 -16484516.725 6 20534153.416 20534151.674 20534152.453
+ 47.700 41.700
+ -6405833.621 5 -4991554.388 4 23375018.539 23375015.648 23375017.419
+ 33.500 25.300
+ -2837614.688 4 -2211128.226 3 24085235.738 24085234.809 24085234.559
+ 27.400 19.300
+ -2773303.414 4 -2161015.662 3 24238744.919 24238743.863 24238744.131
+ 25.300 19.900
+ 06 1 2 13 13 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9692368.102 6 -7552498.591 5 22817318.299 22817314.056 22817317.014
+ 36.000 30.100
+ -16745359.314 7 -13048333.260 6 21432744.007 21432741.626 21432743.611
+ 42.200 37.600
+ -18893121.347 7 -14721908.841 7 21035769.064 21035765.131 21035767.326
+ 46.800 42.400
+ -15754955.493 7 -12276588.582 6 22173407.962 22173406.149 22173407.069
+ 42.300 38.600
+ -21128433.827 7 -16463708.818 6 20539235.299 20539233.134 20539234.185
+ 47.600 41.600
+ -6318950.127 5 -4923853.020 4 23391551.157 23391549.267 23391550.302
+ 33.000 24.900
+ -2846945.892 4 -2218399.287 3 24083459.966 24083459.255 24083458.603
+ 25.600 18.600
+ -2879143.375 4 -2243488.419 3 24218605.156 24218602.863 24218603.782
+ 27.900 21.600
+ 06 1 2 13 13 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9587353.451 5 -7470669.035 4 22837301.927 22837297.740 22837300.803
+ 34.300 29.500
+ -16691053.603 7 -13006017.145 6 21443077.823 21443075.400 21443077.558
+ 42.200 37.300
+ -18952130.382 7 -14767889.917 7 21024539.891 21024536.059 21024538.234
+ 47.000 42.600
+ -15828774.909 7 -12334110.217 6 22159360.563 22159358.657 22159359.648
+ 42.300 38.500
+ -21101159.349 7 -16442455.990 6 20544425.104 20544423.379 20544424.214
+ 47.600 41.800
+ -6231986.460 5 -4856089.165 4 23408100.447 23408098.695 23408099.419
+ 33.900 25.900
+ -2855721.804 4 -2225237.677 2 24081789.758 24081789.164 24081788.759
+ 24.900 17.800
+ -2984947.898 4 -2325933.545 2 24198471.272 24198468.440 24198470.150
+ 28.400 17.000
+ 06 1 2 13 14 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9482105.099 5 -7388657.387 4 22857330.010 22857325.867 22857328.905
+ 35.300 29.700
+ -16636199.000 6 -12963273.320 6 21453516.220 21453514.038 21453516.008
+ 41.900 37.600
+ -19010643.490 7 -14813484.566 7 21013405.613 21013401.273 21013403.706
+ 47.000 42.300
+ -15902391.778 7 -12391474.025 6 22145351.619 22145349.998 22145350.801
+ 42.300 38.900
+ -21073315.495 7 -16420759.493 6 20549723.648 20549721.925 20549722.688
+ 47.700 41.800
+ -6144943.019 5 -4788263.179 4 23424664.283 23424662.430 23424663.220
+ 33.200 26.800
+ -2863941.757 4 -2231642.851 3 24080225.755 24080224.691 24080224.773
+ 26.800 18.600
+ -3090714.996 4 -2408349.521 2 24178343.738 24178340.996 24178343.176
+ 26.800 15.100
+ 06 1 2 13 14 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9376625.846 5 -7306465.831 4 22877402.262 22877398.069 22877401.042
+ 34.900 29.000
+ -16580797.618 6 -12920103.442 6 21464058.896 21464056.716 21464058.624
+ 41.900 37.400
+ -19068658.917 7 -14858691.403 7 21002365.669 21002361.307 21002363.838
+ 47.000 42.500
+ -15975804.163 7 -12448678.489 6 22131381.393 22131380.183 22131380.710
+ 42.300 38.900
+ -21044903.439 7 -16398620.245 6 20555130.185 20555128.598 20555129.281
+ 47.600 41.800
+ -6057821.165 5 -4720376.091 4 23441243.470 23441241.151 23441242.372
+ 33.600 24.900
+ -2871604.897 4 -2237614.113 2 24078768.011 24078766.525 24078766.716
+ 26.200 17.000
+ -3196443.132 4 -2490735.125 3 24158224.115 24158221.770 24158223.364
+ 28.100 18.600
+ 06 1 2 13 15 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9270919.122 5 -7224096.991 4 22897517.423 22897513.462 22897516.347
+ 34.000 29.000
+ -16524851.586 6 -12876509.150 6 21474705.165 21474702.773 21474704.834
+ 41.900 37.300
+ -19126175.210 7 -14903509.299 7 20991420.729 20991416.426 20991418.757
+ 46.800 42.700
+ -16049010.619 7 -12505722.494 6 22117451.243 22117449.339 22117450.229
+ 42.300 38.900
+ -21015924.617 7 -16376039.353 6 20560644.862 20560643.042 20560643.918
+ 47.600 41.800
+ -5970621.853 5 -4652428.617 3 23457837.297 23457833.659 23457836.047
+ 33.600 22.600
+ -2878710.380 4 -2243150.833 3 24077415.470 24077414.753 24077414.534
+ 27.600 20.500
+ -3302130.778 4 -2573089.182 3 24138112.422 24138110.995 24138111.231
+ 25.300 23.400
+ 06 1 2 13 15 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9164987.783 6 -7141553.149 4 22917675.633 22917671.439 22917674.586
+ 36.300 28.100
+ -16468362.574 7 -12832491.763 6 21485454.896 21485452.594 21485454.614
+ 42.300 37.700
+ -19183191.058 7 -14947937.237 7 20980570.754 20980566.715 20980568.866
+ 46.800 43.000
+ -16122008.945 7 -12562604.315 6 22103559.746 22103558.342 22103558.936
+ 42.100 39.100
+ -20986380.621 7 -16353018.071 6 20566266.852 20566265.122 20566265.880
+ 47.500 41.800
+ -5883345.934 5 -4584421.442 3 23474444.098 23474442.131 23474443.105
+ 32.400 23.800
+ -2885257.398 4 -2248252.457 3 24076169.619 24076168.364 24076168.595
+ 26.200 19.900
+ -3407776.269 3 -2655410.341 4 24118008.622 24118008.018 24118007.891
+ 21.600 26.200
+ 06 1 2 13 16 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -9058834.869 5 -7058836.646 4 22937875.755 22937871.713 22937874.849
+ 35.200 29.500
+ -16411332.968 7 -12788053.141 6 21496307.380 21496305.078 21496307.021
+ 42.100 37.700
+ -19239705.050 7 -14991974.118 7 20969816.283 20969812.520 20969814.593
+ 46.900 43.100
+ -16194797.033 7 -12619322.320 6 22089708.656 22089707.249 22089707.764
+ 42.500 39.300
+ -20956272.975 7 -16329557.579 6 20571996.170 20571994.535 20571995.242
+ 47.600 41.800
+ -5795994.094 5 -4516355.150 3 23491067.070 23491065.309 23491065.965
+ 32.600 23.400
+ -2891245.498 4 -2252918.509 3 24075030.032 24075029.173 24075028.978
+ 24.900 19.300
+ -3513377.576 3 -2737697.097 4 24097913.349 24097912.590 24097911.931
+ 21.600 25.900
+ 06 1 2 13 16 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8952463.420 5 -6975949.868 4 22958117.782 22958113.671 22958116.657
+ 34.600 29.500
+ -16353764.850 6 -12743194.899 6 21507262.020 21507259.646 21507261.704
+ 41.900 37.100
+ -19295715.481 7 -15035618.618 7 20959157.848 20959154.197 20959156.230
+ 46.900 43.100
+ -16267373.065 7 -12675875.084 6 22075898.159 22075896.297 22075897.143
+ 42.400 39.100
+ -20925603.093 7 -16305658.988 6 20577832.565 20577830.716 20577831.546
+ 47.400 41.500
+ -5708567.246 5 -4448230.390 4 23507704.313 23507702.240 23507703.151
+ 33.200 24.900
+ -2896673.856 4 -2257148.425 3 24073997.041 24073996.064 24073996.108
+ 26.500 18.600
+ -3618933.565 4 -2819948.511 4 24077827.251 24077826.265 24077826.540
+ 24.900 28.400
+ 06 1 2 13 17 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8845876.496 5 -6892895.168 4 22978400.846 22978396.273 22978399.614
+ 33.900 28.400
+ -16295660.469 6 -12697918.776 6 21518318.629 21518316.468 21518318.461
+ 41.600 36.800
+ -19351220.985 7 -15078869.655 7 20948595.745 20948591.791 20948593.963
+ 47.000 43.400
+ -16339735.377 7 -12732261.314 6 22062127.915 22062126.336 22062127.042
+ 42.800 39.100
+ -20894372.525 7 -16281323.496 6 20583775.422 20583773.796 20583774.466
+ 47.500 41.500
+ -5621066.465 5 -4380048.032 3 23524354.862 23524352.854 23524353.842
+ 32.700 22.100
+ -2901541.781 4 -2260941.626 3 24073070.854 24073070.133 24073069.865
+ 26.500 22.100
+ -3724442.115 4 -2902162.970 4 24057749.520 24057748.807 24057748.919
+ 27.600 28.400
+ 06 1 2 13 17 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8739077.279 5 -6809675.067 4 22998723.707 22998719.649 22998722.821
+ 33.000 28.100
+ -16237021.938 6 -12652226.440 6 21529477.372 21529475.397 21529477.000
+ 41.300 37.400
+ -19406220.463 7 -15121726.385 7 20938129.679 20938125.692 20938127.949
+ 46.900 43.200
+ -16411882.119 7 -12788479.570 6 22048398.691 22048397.240 22048397.953
+ 43.000 39.400
+ -20862582.745 7 -16256552.256 6 20589824.989 20589823.174 20589823.961
+ 47.700 41.500
+ -5533492.542 5 -4311808.678 3 23541019.081 23541017.776 23541018.104
+ 31.600 22.100
+ -2905848.685 4 -2264297.658 3 24072250.522 24072250.158 24072249.701
+ 24.900 18.600
+ -3829901.463 4 -2984339.133 4 24037681.337 24037680.199 24037680.322
+ 27.600 26.500
+ 06 1 2 13 18 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8632068.683 5 -6726291.797 4 23019087.289 23019083.148 23019085.919
+ 33.000 29.000
+ -16177851.112 6 -12606119.340 6 21540737.367 21540735.151 21540737.041
+ 41.300 37.200
+ -19460712.462 7 -15164187.676 7 20927760.189 20927756.157 20927758.420
+ 46.800 43.300
+ -16483811.325 7 -12844528.308 6 22034711.222 22034709.669 22034710.321
+ 43.000 39.500
+ -20830235.234 7 -16231346.412 6 20595980.337 20595978.784 20595979.377
+ 47.800 41.400
+ -5445846.111 5 -4243512.820 3 23557698.549 23557696.149 23557697.580
+ 33.200 21.600
+ -2909593.786 4 -2267215.940 3 24071539.095 24071538.220 24071537.953
+ 26.500 19.900
+ -3935310.100 4 -3066475.734 4 24017623.342 24017621.020 24017622.415
+ 27.600 24.600
+ 06 1 2 13 18 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8524853.820 5 -6642747.806 4 23039489.216 23039485.117 23039488.104
+ 33.400 28.600
+ -16118150.604 6 -12559599.493 6 21552097.809 21552095.541 21552097.572
+ 41.300 36.700
+ -19514695.262 7 -15206252.193 7 20917487.425 20917483.573 20917485.700
+ 47.000 43.500
+ -16555521.083 7 -12900406.057 6 22021065.232 22021063.665 22021064.434
+ 43.200 39.300
+ -20797331.661 8 -16205707.277 6 20602241.760 20602240.107 20602240.874
+ 48.000 41.400
+ -5358128.180 5 -4175161.252 3 23574390.342 23574388.471 23574389.289
+ 31.600 23.000
+ -2912776.619 4 -2269696.096 3 24070932.674 24070931.707 24070931.728
+ 24.900 19.300
+ -4040666.166 4 -3148571.394 4 23997574.948 23997572.790 23997573.764
+ 27.400 25.900
+ 06 1 2 13 19 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8417435.743 5 -6559045.464 5 23059930.564 23059926.665 23059929.434
+ 34.700 30.800
+ -16057922.769 6 -12512668.738 6 21563558.924 21563556.761 21563558.583
+ 41.300 37.100
+ -19568167.756 7 -15247919.070 7 20907312.139 20907308.065 20907310.263
+ 47.000 43.400
+ -16627009.528 7 -12956111.352 6 22007461.556 22007459.818 22007460.664
+ 43.100 39.500
+ -20763873.655 7 -16179636.119 6 20608608.402 20608607.009 20608607.515
+ 47.700 41.300
+ -5270339.458 5 -4106754.514 3 23591096.043 23591094.303 23591095.266
+ 32.100 23.800
+ -2915396.543 4 -2271737.603 3 24070434.866 24070433.626 24070433.724
+ 27.400 20.500
+ -4145968.041 4 -3230624.806 3 23977536.470 23977534.268 23977535.470
+ 28.400 23.800
+ 06 1 2 13 19 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8309817.640 5 -6475187.258 4 23080409.795 23080405.476 23080408.581
+ 33.400 29.000
+ -15997170.121 6 -12465329.040 6 21575119.719 21575117.797 21575119.427
+ 41.400 37.200
+ -19621128.492 7 -15289187.168 7 20897233.885 20897229.993 20897232.143
+ 47.000 43.600
+ -16698274.939 7 -13011642.854 6 21993900.489 21993898.661 21993899.456
+ 43.300 39.800
+ -20729862.592 7 -16153134.004 6 20615080.469 20615079.081 20615079.598
+ 47.700 41.300
+ -5182480.925 5 -4038293.425 3 23607815.539 23607813.537 23607814.405
+ 32.100 23.800
+ -2917453.042 4 -2273340.094 3 24070043.169 24070042.557 24070041.931
+ 27.600 19.900
+ -4251213.666 4 -3312634.439 3 23957508.136 23957506.566 23957507.248
+ 27.400 21.100
+ 06 1 2 13 20 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8202002.322 5 -6391175.386 4 23100926.330 23100921.936 23100925.414
+ 34.000 26.800
+ -15935893.894 6 -12417581.361 6 21586780.249 21586778.015 21586779.896
+ 41.100 36.600
+ -19673576.380 7 -15330055.650 7 20887253.572 20887249.544 20887251.765
+ 47.100 43.700
+ -16769315.025 7 -13066998.778 6 21980381.896 21980380.185 21980380.852
+ 43.200 40.000
+ -20695300.138 7 -16126202.236 6 20621657.588 20621656.048 20621656.655
+ 47.700 41.200
+ -5094553.491 5 -3969778.607 4 23624547.558 23624546.053 23624546.489
+ 32.100 25.300
+ -2918945.613 4 -2274503.154 3 24069759.198 24069758.287 24069758.016
+ 26.800 19.900
+ -4356401.449 4 -3394598.974 3 23937491.281 23937490.070 23937490.862
+ 28.600 20.500
+ 06 1 2 13 20 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -8093992.743 5 -6307012.143 4 23121479.942 23121475.709 23121478.848
+ 33.400 28.100
+ -15874096.890 6 -12369427.877 6 21598539.749 21598537.508 21598539.490
+ 41.200 36.000
+ -19725510.071 7 -15370523.457 7 20877370.900 20877366.980 20877369.094
+ 47.000 44.000
+ -16840127.731 7 -13122177.523 6 21966906.486 21966904.957 21966905.650
+ 43.100 40.000
+ -20660188.070 7 -16098842.197 6 20628339.327 20628337.632 20628338.292
+ 47.600 41.300
+ -5006557.945 5 -3901210.727 3 23641292.027 23641290.105 23641291.270
+ 32.600 23.800
+ -2919873.589 4 -2275226.256 3 24069582.359 24069581.720 24069581.350
+ 25.300 19.900
+ -4461529.739 4 -3476517.190 2 23917487.142 23917484.463 23917485.884
+ 27.900 17.800
+ 06 1 2 13 21 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7985792.181 5 -6222700.081 4 23142070.124 23142065.589 23142068.746
+ 32.600 27.600
+ -15811781.384 6 -12320870.366 6 21610397.934 21610396.016 21610397.708
+ 41.100 36.500
+ -19776928.229 7 -15410589.544 7 20867586.122 20867582.454 20867584.465
+ 47.000 44.000
+ -16910711.568 7 -13177177.919 6 21953474.729 21953473.360 21953473.827
+ 43.100 39.800
+ -20624528.243 7 -16071055.333 6 20635125.270 20635123.407 20635124.330
+ 47.600 41.000
+ -4918495.167 5 -3832590.441 3 23658049.982 23658048.048 23658049.129
+ 31.600 23.800
+ -2920236.609 4 -2275509.173 3 24069513.458 24069512.352 24069512.575
+ 27.100 19.300
+ -4566596.760 4 -3558387.650 4 23897492.773 23897492.018 23897492.138
+ 28.100 24.600
+ 06 1 2 13 21 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7877403.769 5 -6138241.630 4 23162695.491 23162691.358 23162694.347
+ 32.600 27.600
+ -15748949.761 6 -12271910.694 6 21622354.566 21622352.651 21622354.207
+ 41.000 36.600
+ -19827829.611 7 -15450252.960 7 20857900.010 20857896.133 20857898.255
+ 47.100 43.900
+ -16981064.326 7 -13231998.260 6 21940087.525 21940085.575 21940086.512
+ 43.700 39.800
+ -20588322.340 7 -16042842.955 6 20642014.906 20642013.311 20642013.957
+ 47.700 41.200
+ -4830365.702 5 -3763918.221 3 23674821.993 23674818.429 23674820.705
+ 32.100 22.100
+ -2920034.336 4 -2275351.565 3 24069551.733 24069551.089 24069550.685
+ 25.600 19.900
+ -4671600.230 4 -3640208.571 3 23877511.537 23877509.912 23877510.908
+ 25.300 22.100
+ 06 1 2 13 22 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7768830.395 5 -6053639.088 4 23183356.894 23183352.103 23183355.317
+ 32.700 28.100
+ -15685604.476 6 -12222550.759 6 21634408.635 21634406.873 21634408.391
+ 41.100 36.500
+ -19878213.148 7 -15489512.858 7 20848312.322 20848308.492 20848310.580
+ 47.000 44.100
+ -17051184.163 7 -13286637.106 6 21926743.971 21926742.096 21926743.031
+ 43.800 39.800
+ -20551571.811 7 -16014206.196 6 20649008.283 20649006.624 20649007.385
+ 47.600 41.200
+ -4742170.730 5 -3695194.925 3 23691605.067 23691601.894 23691603.839
+ 32.400 19.900
+ -2919266.157 4 -2274753.017 3 24069698.153 24069697.272 24069696.999
+ 26.200 19.300
+ -4776538.675 3 -3721978.828 2 23857543.336 23857539.998 23857541.846
+ 23.400 17.000
+ 06 1 2 13 22 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7660075.038 5 -5968894.704 4 23204051.165 23204047.849 23204050.556
+ 33.100 28.400
+ -15621747.614 6 -12172792.186 6 21646560.252 21646558.558 21646559.962
+ 40.800 36.600
+ -19928077.527 7 -15528368.219 7 20838823.492 20838819.537 20838821.772
+ 47.100 44.200
+ -17121069.277 7 -13341093.054 6 21913445.353 21913443.547 21913444.399
+ 43.800 40.300
+ -20514278.181 7 -15985146.241 6 20656105.114 20656103.431 20656104.102
+ 47.300 41.100
+ -4653910.702 5 -3626420.949 3 23708399.637 23708397.097 23708398.547
+ 31.100 21.100
+ -2917931.807 4 -2273713.256 3 24069952.100 24069951.663 24069951.099
+ 26.800 22.600
+ -4881410.407 4 -3803697.100 3 23837586.820 23837584.670 23837585.870
+ 25.900 23.400
+ 06 1 2 13 23 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7551140.769 5 -5884010.918 4 23224780.978 23224776.997 23224780.058
+ 33.000 25.900
+ -15557381.636 6 -12122636.918 6 21658808.979 21658806.971 21658808.602
+ 40.700 37.000
+ -19977421.485 7 -15566818.061 7 20829433.733 20829429.691 20829431.917
+ 46.900 44.100
+ -17190717.591 7 -13395364.477 6 21900191.708 21900189.871 21900190.798
+ 44.000 40.100
+ -20476443.260 7 -15955664.502 6 20663304.866 20663303.166 20663303.905
+ 47.500 41.200
+ -4565586.640 5 -3557597.085 3 23725207.166 23725205.166 23725206.189
+ 31.300 22.100
+ -2916030.988 4 -2272232.106 3 24070312.771 24070312.988 24070312.072
+ 25.600 21.600
+ -4986213.870 4 -3885362.151 4 23817642.777 23817641.836 23817641.945
+ 25.900 27.600
+ 06 1 2 13 23 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7442030.756 5 -5798990.183 4 23245543.938 23245540.424 23245543.103
+ 32.400 26.200
+ -15492508.888 6 -12072086.762 6 21671153.943 21671151.836 21671153.664
+ 40.700 36.300
+ -20026244.035 7 -15604861.613 7 20820142.850 20820139.083 20820141.166
+ 46.900 44.100
+ -17260127.352 7 -13449450.017 6 21886983.345 21886981.643 21886982.559
+ 44.200 40.200
+ -20438068.824 7 -15925762.361 6 20670607.257 20670605.731 20670606.311
+ 47.400 41.200
+ -4477199.434 5 -3488723.981 3 23742026.495 23742024.671 23742025.354
+ 31.600 22.100
+ -2913563.231 4 -2270309.211 3 24070783.457 24070783.253 24070782.313
+ 26.500 22.600
+ -5090946.400 4 -3966971.924 5 23797713.006 23797711.966 23797712.010
+ 28.100 30.100
+ 06 1 2 13 24 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7332747.967 5 -5713834.815 4 23266340.498 23266336.097 23266339.123
+ 31.800 26.500
+ -15427131.781 6 -12021143.594 5 21683595.068 21683592.542 21683594.601
+ 40.700 35.700
+ -20074543.720 7 -15642497.740 7 20810951.688 20810948.040 20810949.984
+ 46.800 44.300
+ -17329296.568 7 -13503348.115 6 21873821.063 21873819.213 21873820.038
+ 43.800 40.200
+ -20399156.688 7 -15895441.231 6 20678011.909 20678010.414 20678010.976
+ 47.300 41.000
+ -4388749.824 5 -3419802.275 3 23758858.381 23758855.818 23758857.134
+ 31.800 21.600
+ -2910528.145 4 -2267944.194 3 24071360.977 24071360.522 24071359.696
+ 26.200 20.500
+ -5195606.479 4 -4048525.225 4 23777796.888 23777795.549 23777795.811
+ 29.200 28.800
+ 06 1 2 13 24 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7223295.795 5 -5628547.485 4 23287168.066 23287164.199 23287166.956
+ 31.300 24.600
+ -15361253.162 6 -11969809.634 5 21696131.163 21696128.688 21696130.782
+ 40.900 35.400
+ -20122319.792 7 -15679725.849 7 20801860.374 20801856.564 20801858.521
+ 47.000 44.400
+ -17398222.996 7 -13557057.031 6 21860704.760 21860703.084 21860703.721
+ 43.700 40.700
+ -20359708.671 7 -15864702.536 6 20685518.986 20685517.179 20685517.922
+ 47.600 41.000
+ -4300238.517 5 -3350832.490 3 23775700.649 23775698.812 23775699.744
+ 30.200 20.500
+ -2906925.407 4 -2265136.887 3 24072046.097 24072046.098 24072045.157
+ 24.600 20.500
+ -5300192.474 4 -4130020.812 4 23757895.015 23757893.545 23757893.983
+ 28.800 28.600
+ 06 1 2 13 25 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7113677.035 5 -5543130.312 4 23308027.659 23308023.983 23308026.847
+ 32.300 24.600
+ -15294874.919 6 -11918086.357 5 21708762.324 21708760.286 21708762.060
+ 41.000 35.800
+ -20169570.653 7 -15716544.711 7 20792868.723 20792865.002 20792867.062
+ 47.000 44.600
+ -17466904.853 7 -13610575.368 6 21847635.039 21847633.296 21847633.981
+ 43.900 40.600
+ -20319726.321 7 -15833547.472 6 20693127.018 20693125.553 20693126.177
+ 47.500 41.100
+ -4211666.262 5 -3281815.218 3 23792556.176 23792553.686 23792554.931
+ 31.100 19.300
+ -2902754.918 4 -2261887.182 2 24072840.360 24072838.764 24072839.266
+ 27.400 16.100
+ -5404702.487 5 -4211457.234 4 23738008.439 23738005.683 23738007.191
+ 31.000 28.400
+ 06 1 2 13 25 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -7003894.608 5 -5457585.637 4 23328918.819 23328915.189 23328917.781
+ 31.600 27.400
+ -15227999.473 6 -11865975.647 5 21721488.396 21721486.377 21721488.086
+ 40.900 35.900
+ -20216295.425 7 -15752953.628 7 20783977.319 20783973.570 20783975.614
+ 47.000 44.600
+ -17535340.088 7 -13663901.537 6 21834612.120 21834610.501 21834611.117
+ 43.900 40.500
+ -20279211.440 7 -15801977.450 6 20700836.829 20700835.232 20700835.943
+ 47.600 40.800
+ -4123033.970 5 -3212751.147 2 23809422.333 23809419.660 23809421.115
+ 30.600 17.800
+ -2898016.310 4 -2258194.761 3 24073742.408 24073741.153 24073741.294
+ 29.000 20.500
+ -5509134.429 4 -4292832.795 4 23718134.512 23718132.995 23718133.730
+ 29.500 27.400
+ 06 1 2 13 26 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6893951.585 5 -5371915.837 4 23349840.772 23349836.547 23349839.599
+ 31.300 27.400
+ -15160629.519 6 -11813479.616 5 21734308.120 21734306.417 21734307.878
+ 40.100 35.700
+ -20262493.018 7 -15788951.754 7 20775186.205 20775182.459 20775184.550
+ 47.100 44.600
+ -17603526.999 7 -13717034.202 6 21821636.742 21821635.107 21821635.769
+ 44.100 40.900
+ -20238165.928 7 -15769993.954 6 20708647.636 20708645.957 20708646.654
+ 47.400 41.000
+ -4034342.229 5 -3143640.766 3 23826299.520 23826297.383 23826298.620
+ 30.200 19.900
+ -2892709.200 4 -2254059.347 3 24074751.866 24074751.171 24074750.917
+ 27.100 18.600
+ -5613486.835 4 -4374146.409 4 23698277.143 23698275.377 23698275.767
+ 28.400 26.800
+ 06 1 2 13 26 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6783851.084 5 -5286123.297 4 23370792.017 23370787.960 23370790.759
+ 31.100 26.200
+ -15092767.552 6 -11760600.194 5 21747222.137 21747220.037 21747221.867
+ 40.200 35.300
+ -20308162.416 7 -15824538.297 7 20766495.862 20766491.856 20766494.020
+ 47.200 44.800
+ -17671463.688 7 -13769971.890 6 21808708.804 21808707.081 21808707.868
+ 44.100 40.900
+ -20196591.734 7 -15737598.494 6 20716558.850 20716557.287 20716557.995
+ 47.400 40.700
+ -3945591.852 4 -3074484.702 3 23843188.678 23843185.813 23843187.361
+ 29.900 20.500
+ -2886833.542 4 -2249480.928 3 24075870.172 24075869.645 24075869.146
+ 27.100 22.100
+ -5717757.200 4 -4455396.031 4 23678434.275 23678433.629 23678433.579
+ 27.400 25.600
+ 06 1 2 13 27 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6673596.032 5 -5200210.329 4 23391772.214 23391769.118 23391771.835
+ 31.500 28.400
+ -15024416.007 6 -11707339.279 5 21760228.965 21760227.018 21760228.794
+ 40.400 35.400
+ -20353302.549 7 -15859712.430 7 20757905.817 20757901.979 20757904.064
+ 47.000 44.800
+ -17739147.865 7 -13822712.817 6 21795829.097 21795827.106 21795828.089
+ 44.400 40.700
+ -20154490.597 7 -15704792.437 6 20724570.541 20724568.929 20724569.601
+ 47.400 40.800
+ -3856783.710 5 -3005283.627 3 23860087.820 23860086.023 23860087.042
+ 30.800 22.600
+ -2880389.154 4 -2244459.352 3 24077096.905 24077095.885 24077095.649
+ 27.100 19.900
+ -5821944.204 5 -4536580.746 4 23658609.983 23658607.546 23658608.795
+ 30.100 25.900
+ 06 1 2 13 27 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6563189.800 5 -5114179.558 4 23412782.746 23412778.671 23412781.571
+ 32.700 27.600
+ -14955577.487 6 -11653698.908 5 21773328.828 21773326.719 21773328.496
+ 40.500 35.700
+ -20397912.453 7 -15894473.394 7 20749416.835 20749412.991 20749415.050
+ 47.100 44.700
+ -17806577.764 7 -13875255.604 6 21782997.424 21782995.650 21782996.427
+ 44.100 40.500
+ -20111864.402 7 -15671577.235 6 20732681.865 20732680.469 20732680.963
+ 47.300 40.700
+ -3767918.400 5 -2936037.999 3 23876998.657 23876996.236 23876997.579
+ 30.600 21.100
+ -2873375.800 4 -2238994.411 3 24078431.149 24078430.173 24078430.080
+ 26.800 18.600
+ -5926045.718 5 -4617698.866 3 23638799.790 23638797.085 23638798.443
+ 31.000 23.400
+ 06 1 2 13 28 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6452635.136 5 -5028033.152 4 23433820.564 23433816.716 23433819.425
+ 32.000 27.100
+ -14886254.472 6 -11599681.009 5 21786520.779 21786518.587 21786520.463
+ 40.800 35.400
+ -20441991.051 7 -15928820.355 7 20741029.199 20741025.023 20741027.260
+ 47.000 44.600
+ -17873751.277 7 -13927598.610 6 21770214.618 21770212.761 21770213.708
+ 44.000 40.400
+ -20068714.840 7 -15637954.217 6 20740893.050 20740891.626 20740892.136
+ 47.400 40.800
+ -3678996.850 5 -2866748.542 3 23893919.540 23893917.932 23893918.565
+ 30.600 22.100
+ -2865793.536 4 -2233086.216 3 24079873.797 24079873.138 24079872.812
+ 25.900 19.900
+ -6030059.750 5 -4698748.787 4 23619006.111 23619004.585 23619005.272
+ 31.000 25.300
+ 06 1 2 13 28 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6341934.859 5 -4941773.267 4 23454884.904 23454882.365 23454884.503
+ 30.100 26.500
+ -14816449.489 6 -11545287.552 5 21799804.240 21799801.708 21799803.885
+ 40.700 34.600
+ -20485537.370 7 -15962752.548 7 20732742.585 20732738.405 20732740.634
+ 46.900 44.800
+ -17940666.270 7 -13979740.173 6 21757481.359 21757479.479 21757480.284
+ 44.300 40.900
+ -20025043.931 7 -15603924.957 6 20749203.460 20749201.862 20749202.445
+ 47.300 40.700
+ -3590019.660 5 -2797415.738 3 23910851.064 23910849.873 23910850.220
+ 31.100 19.900
+ -2857642.191 4 -2226734.527 3 24081424.881 24081424.719 24081423.901
+ 26.800 22.100
+ -6133984.402 5 -4779729.082 4 23599230.356 23599228.612 23599229.126
+ 30.200 26.200
+ 06 1 2 13 29 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6231092.546 5 -4855402.717 4 23475978.989 23475974.977 23475977.531
+ 30.200 25.600
+ -14746165.180 6 -11490520.587 5 21813178.870 21813176.505 21813178.612
+ 40.500 35.100
+ -20528550.607 7 -15996269.352 7 20724557.373 20724553.228 20724555.529
+ 47.100 44.800
+ -18007320.875 7 -14031678.830 6 21744797.293 21744795.602 21744796.276
+ 44.300 41.100
+ -19980853.741 7 -15569491.061 6 20757612.411 20757610.969 20757611.551
+ 47.300 40.600
+ -3500988.025 5 -2728040.488 3 23927794.416 23927792.730 23927793.160
+ 30.400 22.600
+ -2848921.613 4 -2219939.275 3 24083084.620 24083084.082 24083083.473
+ 25.300 19.900
+ -6237817.882 4 -4860638.311 4 23579471.047 23579469.664 23579470.057
+ 29.700 26.800
+ 06 1 2 13 29 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6120110.880 4 -4768923.567 3 23497097.748 23497093.603 23497096.458
+ 29.700 23.400
+ -14675404.029 6 -11435382.060 5 21826644.369 21826642.135 21826643.997
+ 40.200 35.500
+ -20571029.985 7 -16029370.166 7 20716473.907 20716469.678 20716472.017
+ 47.200 44.800
+ -18073713.192 7 -14083413.114 6 21732163.165 21732161.659 21732162.201
+ 44.200 41.000
+ -19936145.967 7 -15534653.852 6 20766120.244 20766118.549 20766119.312
+ 47.500 40.400
+ -3411902.069 4 -2658622.951 3 23944746.425 23944744.778 23944745.352
+ 29.900 22.100
+ -2839631.682 4 -2212700.373 2 24084851.751 24084851.452 24084850.635
+ 24.900 17.000
+ -6341557.896 4 -4941474.690 4 23559729.710 23559728.153 23559728.849
+ 29.200 25.600
+ 06 1 2 13 30 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -6008992.999 4 -4682338.278 4 23518242.547 23518238.978 23518241.280
+ 29.200 24.600
+ -14604168.483 6 -11379873.887 5 21840199.537 21840197.671 21840199.298
+ 39.400 34.900
+ -20612973.974 7 -16062053.799 7 20708492.220 20708487.963 20708490.317
+ 47.100 45.000
+ -18139841.363 7 -14134941.564 6 21719579.588 21719577.815 21719578.564
+ 44.400 41.100
+ -19890922.414 7 -15499414.735 6 20774725.931 20774724.298 20774724.946
+ 47.100 40.300
+ -3322762.641 4 -2589163.762 3 23961709.352 23961707.632 23961708.253
+ 29.700 23.000
+ -2829772.374 4 -2205017.856 3 24086728.849 24086727.893 24086727.789
+ 27.900 21.100
+ -6445202.916 4 -5022237.080 4 23540006.961 23540005.336 23540005.586
+ 29.200 26.800
+ 06 1 2 13 30 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5897741.663 5 -4595648.968 4 23539413.292 23539409.413 23539412.546
+ 31.600 24.600
+ -14532461.383 6 -11323998.261 5 21853845.263 21853843.006 21853844.940
+ 40.200 34.300
+ -20654382.029 7 -16094319.823 7 20700612.314 20700608.336 20700610.574
+ 47.300 45.100
+ -18205703.471 7 -14186262.699 6 21707046.381 21707044.595 21707045.438
+ 44.600 41.000
+ -19845185.293 7 -15463775.435 6 20783429.473 20783427.872 20783428.538
+ 47.200 40.300
+ -3233570.571 4 -2519663.521 3 23978681.879 23978680.083 23978680.752
+ 28.800 18.600
+ -2819343.726 4 -2196891.639 3 24088713.093 24088712.341 24088712.113
+ 26.800 20.500
+ -6548750.778 4 -5102923.715 4 23520302.758 23520300.886 23520301.393
+ 29.000 25.600
+ 06 1 2 13 31 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5786360.160 5 -4508858.292 4 23560608.768 23560604.737 23560607.595
+ 31.000 24.200
+ -14460285.357 6 -11267757.232 5 21867579.993 21867577.861 21867579.664
+ 39.800 34.800
+ -20695253.062 7 -16126167.381 7 20692835.058 20692830.913 20692833.262
+ 47.300 45.300
+ -18271297.309 7 -14237374.795 6 21694564.367 21694562.627 21694563.359
+ 44.700 41.200
+ -19798936.231 7 -15427737.221 6 20792230.345 20792228.747 20792229.436
+ 47.000 40.200
+ -3144326.602 4 -2450122.829 3 23995664.235 23995662.413 23995663.296
+ 27.900 19.300
+ -2808345.575 4 -2188321.688 3 24090806.148 24090805.230 24090804.844
+ 27.900 19.900
+ -6652199.222 5 -5183532.926 4 23500617.635 23500615.869 23500616.248
+ 31.300 28.800
+ 06 1 2 13 31 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5674851.661 4 -4421968.609 4 23581827.722 23581824.200 23581826.599
+ 27.600 24.600
+ -14387643.143 6 -11211152.949 5 21881403.243 21881401.279 21881402.942
+ 39.800 34.800
+ -20735586.396 7 -16157595.961 7 20685160.072 20685155.834 20685158.104
+ 47.500 45.400
+ -18336620.951 7 -14288276.343 6 21682133.551 21682131.916 21682132.654
+ 44.600 41.300
+ -19752177.437 7 -15391301.814 6 20801128.583 20801126.715 20801127.547
+ 47.200 40.100
+ -3055031.582 4 -2380542.339 3 24012656.777 24012655.261 24012655.719
+ 27.900 21.100
+ -2796778.197 4 -2179308.187 3 24093006.282 24093006.850 24093005.445
+ 24.600 21.100
+ -6755546.644 5 -5264063.427 4 23480950.136 23480949.005 23480949.320
+ 31.300 27.400
+ 06 1 2 13 32 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5563219.041 5 -4334982.240 3 23603071.227 23603067.016 23603070.152
+ 30.800 22.600
+ -14314537.160 6 -11154187.281 5 21895315.097 21895312.666 21895314.701
+ 40.000 33.600
+ -20775381.195 7 -16188604.893 7 20677587.059 20677583.108 20677585.213
+ 47.200 45.600
+ -18401672.250 7 -14338965.677 6 21669754.663 21669753.132 21669753.702
+ 44.600 41.400
+ -19704910.838 7 -15354470.713 6 20810122.827 20810121.296 20810121.866
+ 47.000 40.200
+ -2965686.025 4 -2310922.514 3 24029658.877 24029656.808 24029657.813
+ 27.100 19.300
+ -2784641.590 4 -2169851.119 3 24095316.941 24095316.077 24095315.747
+ 26.800 19.300
+ -6858790.763 5 -5344513.406 4 23461303.377 23461302.051 23461302.572
+ 31.000 26.800
+ 06 1 2 13 32 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5451465.308 5 -4247901.457 3 23624336.796 23624333.267 23624336.099
+ 30.800 23.000
+ -14240970.447 6 -11096862.591 5 21909313.950 21909311.925 21909313.765
+ 39.100 33.500
+ -20814636.705 7 -16219193.608 7 20670116.912 20670113.006 20670115.210
+ 47.100 45.600
+ -18466449.713 7 -14389441.628 6 21657428.012 21657426.462 21657427.011
+ 44.700 41.500
+ -19657138.435 7 -15317245.485 6 20819213.385 20819212.053 20819212.437
+ 46.700 40.300
+ -2876290.692 4 -2241263.894 3 24046669.735 24046668.482 24046668.849
+ 27.600 19.900
+ -2771935.866 4 -2159950.618 2 24097734.456 24097733.523 24097733.353
+ 27.100 17.800
+ -6961929.982 5 -5424881.663 4 23441677.364 23441676.096 23441676.490
+ 30.800 29.700
+ 06 1 2 13 33 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5339593.409 4 -4160728.603 3 23645625.871 23645621.922 23645624.627
+ 29.900 23.400
+ -14166944.908 6 -11039180.395 5 21923400.604 21923398.633 21923400.287
+ 38.900 34.400
+ -20853351.977 7 -16249361.354 7 20662749.907 20662745.728 20662747.952
+ 47.100 45.500
+ -18530950.921 7 -14439702.321 6 21645153.849 21645152.220 21645152.914
+ 44.800 41.500
+ -19608862.308 7 -15279627.742 6 20828400.188 20828398.665 20828399.198
+ 46.800 40.000
+ -2786846.340 4 -2171567.059 2 24063690.186 24063688.719 24063689.444
+ 27.600 17.800
+ -2758661.182 4 -2149606.732 3 24100260.665 24100260.268 24100259.667
+ 25.300 18.600
+ -7064962.059 5 -5505166.421 4 23422070.973 23422069.720 23422070.023
+ 30.400 29.200
+ 06 1 2 13 33 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5227606.204 5 -4073465.918 4 23666936.024 23666933.199 23666935.212
+ 31.100 27.400
+ -14092463.714 6 -10981143.140 5 21937574.313 21937572.218 21937573.931
+ 39.400 34.600
+ -20891526.434 7 -16279107.679 7 20655485.521 20655481.380 20655483.560
+ 47.000 45.600
+ -18595173.894 7 -14489746.205 6 21632932.448 21632931.038 21632931.518
+ 44.400 41.500
+ -19560084.230 7 -15241618.866 6 20837682.541 20837680.915 20837681.482
+ 46.800 40.000
+ -2697353.659 4 -2101832.585 3 24080720.293 24080719.347 24080719.543
+ 29.500 19.900
+ -2744817.544 3 -2138819.505 2 24102894.287 24102894.744 24102893.337
+ 22.100 17.000
+ -7167884.929 5 -5585366.058 4 23402485.582 23402483.678 23402484.387
+ 31.000 28.100
+ 06 1 2 13 34 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5115506.720 5 -3986115.802 3 23688268.472 23688264.211 23688267.419
+ 30.800 23.800
+ -14017529.662 6 -10922753.002 5 21951833.679 21951831.404 21951833.370
+ 39.100 33.900
+ -20929159.296 7 -16308431.988 7 20648324.129 20648320.091 20648322.208
+ 47.100 45.500
+ -18659116.458 7 -14539571.583 6 21620764.821 21620763.133 21620763.855
+ 44.800 41.500
+ -19510806.282 7 -15203220.479 6 20847059.760 20847058.288 20847058.821
+ 47.000 39.800
+ -2607813.260 4 -2032060.929 3 24097759.898 24097758.013 24097758.780
+ 28.100 19.300
+ -2730405.297 3 -2127589.217 2 24105637.152 24105636.755 24105636.111
+ 22.600 16.100
+ -7270696.932 5 -5665479.322 4 23382920.624 23382918.993 23382919.486
+ 30.100 27.400
+ 06 1 2 13 34 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -5003298.413 4 -3898680.819 4 23709620.267 23709617.654 23709619.415
+ 27.100 26.800
+ -13942145.274 6 -10864011.945 5 21966179.110 21966176.661 21966178.786
+ 39.700 33.500
+ -20966249.421 7 -16337333.391 7 20641266.093 20641262.058 20641264.252
+ 47.100 45.900
+ -18722776.915 7 -14589177.146 6 21608650.501 21608649.007 21608649.603
+ 44.900 41.800
+ -19461030.616 7 -15164434.265 6 20856531.697 20856530.283 20856530.748
+ 47.100 40.000
+ -2518226.044 4 -1962252.769 2 24114807.336 24114805.174 24114806.409
+ 28.400 17.800
+ -2715424.465 3 -2115915.933 3 24108488.639 24108487.847 24108487.597
+ 23.400 18.600
+ -7373395.849 4 -5745504.482 4 23363377.060 23363375.971 23363376.335
+ 29.900 26.800
+ 06 1 2 13 35 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4890984.030 4 -3811163.228 3 23730993.936 23730989.754 23730992.189
+ 25.900 23.000
+ -13866313.344 6 -10804922.159 5 21980609.276 21980607.386 21980609.009
+ 39.400 34.300
+ -21002796.274 7 -16365811.452 7 20634311.270 20634307.427 20634309.508
+ 47.100 45.700
+ -18786152.923 7 -14638561.055 6 21596590.652 21596588.989 21596589.665
+ 44.900 41.900
+ -19410759.093 7 -15125261.665 6 20866098.055 20866096.515 20866097.136
+ 46.900 39.600
+ -2428592.346 4 -1892408.423 3 24131864.496 24131862.463 24131863.857
+ 29.500 19.300
+ -2699875.288 3 -2103799.711 2 24111447.063 24111446.353 24111445.922
+ 23.800 16.100
+ -7475979.226 5 -5825439.603 4 23343856.645 23343855.272 23343855.726
+ 31.000 27.900
+ 06 1 2 13 35 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4778566.455 4 -3723565.183 4 23752385.920 23752383.033 23752384.721
+ 28.800 27.900
+ -13790036.669 6 -10745485.833 5 21995123.897 21995122.479 21995123.566
+ 38.100 34.700
+ -21038799.059 7 -16393865.575 7 20627460.202 20627456.305 20627458.497
+ 47.100 45.600
+ -18849242.934 7 -14687722.110 6 21584584.908 21584583.412 21584583.976
+ 44.900 41.800
+ -19359993.876 7 -15085704.370 6 20875758.519 20875756.858 20875757.504
+ 47.000 39.700
+ -2338912.993 4 -1822528.486 2 24148930.235 24148928.260 24148928.934
+ 29.900 17.000
+ -2683757.935 4 -2091240.789 3 24114514.282 24114514.006 24114513.213
+ 24.200 19.900
+ -7578445.179 5 -5905283.222 4 23324358.061 23324356.637 23324357.185
+ 32.400 28.100
+ 06 1 2 13 36 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4666048.809 4 -3635889.209 4 23773797.015 23773793.886 23773796.292
+ 28.800 24.200
+ -13713318.070 6 -10685705.159 5 22009723.471 22009721.195 22009722.972
+ 38.500 33.500
+ -21074257.410 7 -16421495.464 7 20620712.731 20620708.773 20620710.996
+ 47.300 46.100
+ -18912044.851 7 -14736658.677 7 21572634.080 21572632.612 21572633.232
+ 45.100 42.100
+ -19308737.271 7 -15045764.175 6 20885512.284 20885510.643 20885511.314
+ 47.100 39.600
+ -2249188.688 4 -1752613.506 3 24166003.863 24166002.677 24166002.635
+ 26.800 20.500
+ -2667072.612 4 -2078239.295 2 24117689.780 24117688.794 24117688.440
+ 25.900 16.100
+ -7680791.794 5 -5985033.866 4 23304882.574 23304881.058 23304881.492
+ 33.000 28.100
+ 06 1 2 13 36 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4553434.031 5 -3548137.499 3 23795227.648 23795223.910 23795226.317
+ 31.000 23.800
+ -13636160.184 6 -10625582.154 5 22024406.219 22024403.858 22024405.962
+ 39.100 33.500
+ -21109170.784 7 -16448700.691 7 20614069.006 20614064.958 20614067.124
+ 47.200 46.100
+ -18974556.394 7 -14785368.974 7 21560738.554 21560737.073 21560737.636
+ 45.100 42.100
+ -19256991.133 7 -15005442.522 6 20895359.365 20895357.663 20895358.377
+ 47.100 39.700
+ -2159420.207 4 -1682664.115 2 24183087.037 24183084.405 24183085.849
+ 29.200 15.100
+ -2649819.573 4 -2064795.434 2 24120972.727 24120972.063 24120971.670
+ 24.600 17.800
+ -7783016.667 5 -6064689.624 4 23285429.511 23285428.291 23285428.454
+ 32.100 28.100
+ 06 1 2 13 37 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4440725.217 4 -3460312.561 3 23816675.732 23816671.683 23816674.201
+ 28.800 22.600
+ -13558565.791 6 -10565119.027 5 22039171.617 22039169.868 22039171.272
+ 38.200 34.100
+ -21143538.151 7 -16475480.456 7 20607528.934 20607525.140 20607527.260
+ 47.000 46.300
+ -19036775.804 7 -14833851.638 7 21548898.611 21548896.969 21548897.637
+ 44.900 42.000
+ -19204757.559 7 -14964741.056 6 20905298.917 20905297.392 20905298.077
+ 47.100 39.700
+ -2069607.969 4 -1612680.643 2 24200177.573 24200175.940 24200176.648
+ 28.400 17.800
+ -2631999.254 4 -2050909.524 3 24124363.606 24124363.598 24124362.614
+ 25.600 19.900
+ -7885118.000 5 -6144249.113 4 23266000.590 23265999.164 23265999.572
+ 32.300 29.200
+ 06 1 2 13 37 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4327925.213 5 -3372416.455 3 23838141.371 23838136.480 23838139.730
+ 30.800 21.100
+ -13480537.572 6 -10504317.867 5 22054019.838 22054018.109 22054019.509
+ 38.200 33.200
+ -21177359.030 7 -16501834.394 7 20601093.168 20601089.282 20601091.366
+ 47.100 46.400
+ -19098701.196 7 -14882105.204 6 21537114.663 21537112.909 21537113.594
+ 44.900 41.900
+ -19152038.746 7 -14923661.473 6 20915330.976 20915329.433 20915330.074
+ 47.000 39.300
+ -1979752.735 4 -1542663.651 3 24217276.428 24217274.491 24217275.129
+ 26.800 20.500
+ -2613611.734 4 -2036581.633 3 24127862.785 24127862.410 24127861.430
+ 24.900 18.600
+ -7987093.598 5 -6223710.643 4 23246595.081 23246593.572 23246593.876
+ 31.500 28.800
+ 06 1 2 13 38 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4215037.037 4 -3284451.756 3 23859622.603 23859618.732 23859621.014
+ 27.900 23.000
+ -13402078.718 6 -10443181.130 5 22068950.485 22068948.146 22068950.169
+ 39.000 32.300
+ -21210632.842 7 -16527762.041 7 20594761.182 20594757.449 20594759.485
+ 47.100 46.100
+ -19160330.540 7 -14930128.076 7 21525386.698 21525385.306 21525385.827
+ 44.900 42.000
+ -19098836.714 7 -14882205.360 6 20925455.240 20925453.518 20925454.246
+ 47.000 39.400
+ -1889855.103 4 -1472613.628 3 24234383.250 24234382.287 24234382.319
+ 27.100 19.300
+ -2594657.572 3 -2021812.186 2 24131469.784 24131469.307 24131468.547
+ 23.800 13.900
+ -8088941.362 5 -6303072.556 4 23227213.643 23227212.514 23227213.012
+ 31.500 29.700
+ 06 1 2 13 38 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -4102063.629 4 -3196420.576 3 23881120.566 23881116.615 23881119.381
+ 28.600 20.500
+ -13323191.625 6 -10381710.697 5 22083962.013 22083960.022 22083961.638
+ 38.000 32.400
+ -21243358.809 7 -16553262.796 7 20588533.851 20588529.871 20588532.116
+ 47.200 46.300
+ -19221661.656 7 -14977918.568 7 21513715.721 21513714.421 21513714.851
+ 45.000 42.000
+ -19045153.572 7 -14840374.359 6 20935670.701 20935669.085 20935669.687
+ 46.800 39.500
+ -1799915.934 4 -1402531.231 3 24251498.259 24251496.668 24251497.049
+ 24.900 20.500
+ -2575137.289 4 -2006601.618 3 24135183.942 24135184.513 24135183.116
+ 25.300 22.100
+ -8190659.101 5 -6382333.139 5 23207857.677 23207856.735 23207856.933
+ 32.000 30.600
+ 06 1 2 13 39 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3989007.879 4 -3108325.286 3 23902633.633 23902631.485 23902632.965
+ 24.900 23.800
+ -13243879.223 6 -10319908.884 5 22099054.622 22099053.112 22099054.280
+ 37.700 33.800
+ -21275536.758 7 -16578336.526 7 20582410.685 20582406.675 20582408.860
+ 47.400 46.400
+ -19282692.344 7 -15025474.957 7 21502102.192 21502100.716 21502101.142
+ 45.000 42.000
+ -18990991.519 7 -14798170.177 6 20945977.348 20945975.806 20945976.407
+ 46.900 39.300
+ -1709935.691 4 -1332416.852 3 24268620.608 24268619.408 24268619.789
+ 26.500 19.900
+ -2555051.114 4 -1990950.131 3 24139006.473 24139006.673 24139005.589
+ 25.300 23.000
+ -8292245.105 5 -6461491.073 4 23188526.886 23188525.226 23188525.874
+ 32.600 29.900
+ 06 1 2 13 39 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3875872.935 4 -3020168.290 3 23924163.486 23924159.388 23924162.472
+ 27.100 19.300
+ -13164144.528 6 -10257777.991 5 22114227.857 22114225.888 22114227.555
+ 38.400 33.000
+ -21307165.878 7 -16602982.594 7 20576391.742 20576387.809 20576389.970
+ 47.300 46.500
+ -19343420.862 7 -15072795.885 7 21490545.682 21490544.419 21490544.819
+ 44.900 42.300
+ -18936352.558 7 -14755594.384 6 20956374.657 20956373.270 20956373.786
+ 46.700 39.100
+ -1619914.958 4 -1262270.922 2 24285751.486 24285750.313 24285750.343
+ 28.400 16.100
+ -2534399.707 4 -1974858.170 3 24142936.998 24142936.207 24142935.685
+ 25.300 20.500
+ -8393696.896 5 -6540544.431 5 23169220.832 23169220.012 23169219.899
+ 32.100 30.100
+ 06 1 2 13 40 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3762661.803 4 -2931951.884 4 23945706.632 23945703.833 23945705.573
+ 25.300 24.200
+ -13083990.393 6 -10195320.259 5 22129480.539 22129478.432 22129480.224
+ 37.700 31.800
+ -21338245.823 7 -16627200.738 7 20570477.515 20570473.417 20570475.716
+ 47.300 46.400
+ -19403844.966 7 -15119879.615 7 21479047.722 21479045.996 21479046.751
+ 45.000 42.100
+ -18881238.782 7 -14712648.602 6 20966862.501 20966861.038 20966861.642
+ 46.500 39.100
+ -1529854.593 4 -1192094.072 2 24302888.085 24302887.675 24302887.357
+ 25.900 17.800
+ -2513183.329 4 -1958326.002 4 24146973.827 24146974.268 24146972.963
+ 26.200 24.600
+ -8495012.041 5 -6619491.294 5 23149941.222 23149940.302 23149940.411
+ 33.000 30.100
+ 06 1 2 13 40 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3649377.259 4 -2843678.327 3 23967264.687 23967260.650 23967263.638
+ 28.800 19.900
+ -13003419.302 6 -10132537.631 5 22144812.651 22144810.419 22144812.317
+ 37.200 31.500
+ -21368776.076 7 -16650990.546 7 20564667.879 20564663.730 20564665.989
+ 47.400 46.400
+ -19463962.854 7 -15166724.727 7 21467607.738 21467605.938 21467606.752
+ 45.000 42.100
+ -18825652.640 7 -14669334.749 6 20977440.357 20977438.763 20977439.422
+ 46.600 39.000
+ -1439755.075 4 -1121886.735 2 24320034.138 24320033.093 24320033.491
+ 26.200 17.000
+ -2491402.303 4 -1941353.814 3 24151118.853 24151118.365 24151117.790
+ 24.900 18.600
+ -8596189.063 5 -6698330.574 4 23130688.288 23130686.702 23130687.295
+ 34.400 29.200
+ 06 1 2 13 41 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3536022.604 4 -2755350.110 3 23988835.082 23988831.487 23988833.909
+ 27.600 19.900
+ -12922434.526 6 -10069432.643 5 22160224.245 22160221.545 22160223.837
+ 38.900 32.300
+ -21398756.226 7 -16674351.707 7 20558962.592 20558958.676 20558960.920
+ 47.300 46.500
+ -19523772.342 7 -15213329.529 7 21456226.385 21456224.595 21456225.447
+ 45.200 42.200
+ -18769595.969 7 -14625654.247 6 20988107.561 20988106.068 20988106.600
+ 46.500 39.100
+ -1349617.201 4 -1051649.522 2 24337187.044 24337185.844 24337186.312
+ 27.100 13.900
+ -2469057.249 4 -1923942.153 3 24155370.711 24155370.769 24155369.581
+ 24.900 19.900
+ -8697225.541 5 -6777060.315 4 23111461.703 23111459.866 23111460.651
+ 34.100 28.600
+ 06 1 2 13 41 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3422600.291 4 -2666969.170 3 24010418.941 24010415.269 24010417.928
+ 29.500 21.600
+ -12841038.959 6 -10006007.557 5 22175713.149 22175710.702 22175712.846
+ 38.700 32.400
+ -21428185.488 7 -16697283.605 7 20553362.579 20553358.428 20553360.800
+ 47.300 46.400
+ -19583271.613 7 -15259692.605 7 21444904.151 21444902.255 21444903.256
+ 45.500 42.200
+ -18713071.034 7 -14581608.866 6 20998863.934 20998862.356 20998862.971
+ 46.600 38.900
+ -1259441.457 4 -981382.794 3 24354347.752 24354345.970 24354346.637
+ 27.600 18.600
+ -2446149.013 3 -1906091.632 3 24159729.799 24159730.812 24159728.730
+ 21.600 22.100
+ -8798118.998 5 -6855678.613 4 23092262.453 23092261.066 23092261.338
+ 33.100 29.700
+ 06 1 2 13 42 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3309113.621 4 -2578538.099 3 24032014.515 24032011.153 24032013.507
+ 27.400 21.100
+ -12759235.383 6 -9942264.546 5 22191279.643 22191277.568 22191279.284
+ 37.500 32.600
+ -21457063.537 7 -16719785.983 7 20547867.401 20547863.146 20547865.567
+ 47.500 46.400
+ -19642458.420 7 -15305812.203 7 21433640.931 21433639.454 21433640.147
+ 45.500 42.500
+ -18656080.298 7 -14537200.521 6 21009708.931 21009707.352 21009707.985
+ 46.700 39.000
+ -1169228.276 4 -911086.897 2 24371514.407 24371512.804 24371513.331
+ 26.800 16.100
+ -2422677.991 4 -1887802.612 3 24164197.056 24164196.732 24164196.033
+ 24.900 20.500
+ -8898867.677 5 -6934184.093 4 23073090.304 23073088.729 23073089.461
+ 33.500 28.400
+ 06 1 2 13 42 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3195565.218 4 -2490058.869 4 24053621.705 24053619.042 24053620.493
+ 28.100 24.200
+ -12677026.649 6 -9878205.829 5 22206923.402 22206921.447 22206923.120
+ 37.700 32.100
+ -21485389.956 7 -16741858.525 7 20542477.166 20542472.909 20542475.340
+ 47.500 46.800
+ -19701330.842 7 -15351686.822 7 21422437.832 21422436.534 21422436.971
+ 45.200 42.800
+ -18598625.593 7 -14492430.642 6 21020642.086 21020640.609 21020641.190
+ 46.600 38.900
+ -1078978.577 3 -840762.535 2 24388688.182 24388686.799 24388686.935
+ 23.400 12.600
+ -2398644.555 4 -1869075.281 3 24168769.835 24168770.111 24168768.927
+ 24.200 19.300
+ -8999469.393 5 -7012575.059 4 23053945.918 23053944.743 23053945.325
+ 33.500 29.500
+ 06 1 2 13 43 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -3081958.330 4 -2401534.200 4 24075240.811 24075237.593 24075239.776
+ 27.900 24.200
+ -12594415.544 6 -9813833.575 5 22222643.748 22222642.095 22222643.493
+ 37.400 32.700
+ -21513164.362 7 -16763500.919 7 20537191.886 20537187.656 20537190.005
+ 47.800 47.000
+ -19759886.952 7 -15397314.962 7 21411295.137 21411293.575 21411294.159
+ 45.100 42.600
+ -18540709.304 7 -14447301.089 6 21031663.336 21031661.767 21031662.388
+ 46.600 39.000
+ -988692.971 4 -770410.180 2 24405869.039 24405867.262 24405867.971
+ 24.900 17.000
+ -2374049.283 4 -1849910.192 3 24173450.511 24173450.648 24173449.454
+ 24.200 22.100
+ -9099921.731 5 -7090849.615 4 23034831.718 23034829.587 23034830.259
+ 33.400 29.700
+ 06 1 2 13 43 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2968295.961 4 -2312966.151 3 24096869.581 24096866.977 24096868.592
+ 26.500 23.400
+ -12511405.336 6 -9749150.341 5 22238439.916 22238438.392 22238439.595
+ 36.600 32.400
+ -21540386.622 7 -16784713.074 7 20532011.434 20532007.520 20532009.703
+ 47.700 47.200
+ -19818124.940 7 -15442695.218 7 21400212.794 21400211.353 21400211.859
+ 45.200 42.700
+ -18482333.830 7 -14401813.725 6 21042771.745 21042770.314 21042770.825
+ 46.400 38.900
+ -898371.813 4 -700030.157 2 24423056.714 24423055.295 24423055.772
+ 25.300 15.100
+ -2348892.761 3 -1830307.751 3 24178237.419 24178237.538 24178236.329
+ 23.400 21.100
+ -9200222.826 5 -7169006.320 5 23015744.859 23015743.214 23015743.610
+ 34.600 31.100
+ 06 1 2 13 44 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2854580.751 4 -2224357.044 3 24118509.509 24118506.271 24118507.939
+ 27.900 23.400
+ -12427998.435 6 -9684157.993 5 22254312.130 22254310.077 22254311.766
+ 37.400 31.300
+ -21567056.223 7 -16805494.583 7 20526936.455 20526932.385 20526934.628
+ 47.600 47.000
+ -19876042.655 7 -15487825.916 7 21389191.426 21389189.961 21389190.565
+ 45.500 43.000
+ -18423501.292 7 -14355970.212 6 21053967.452 21053965.882 21053966.406
+ 46.300 39.100
+ -808015.933 4 -629623.048 2 24440251.155 24440249.986 24440250.327
+ 27.400 17.800
+ -2323175.827 4 -1810268.648 3 24183131.037 24183131.809 24183130.190
+ 24.200 20.500
+ -9300370.306 5 -7247043.328 5 22996686.777 22996685.674 22996685.928
+ 34.700 31.300
+ 06 1 2 13 44 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2740815.808 4 -2135709.129 3 24140157.488 24140154.901 24140156.832
+ 27.900 21.100
+ -12344198.209 6 -9618859.142 5 22270258.804 22270256.562 22270258.489
+ 37.700 31.100
+ -21593172.805 7 -16825845.172 7 20521966.666 20521962.558 20521964.857
+ 47.700 47.100
+ -19933637.942 7 -15532705.367 7 21378231.562 21378229.858 21378230.558
+ 45.500 42.700
+ -18364213.648 7 -14309772.072 6 21065249.311 21065247.990 21065248.312
+ 46.000 39.000
+ -717625.659 4 -559189.156 3 24457451.978 24457450.447 24457450.705
+ 24.600 18.600
+ -2296899.217 4 -1789793.402 2 24188131.936 24188131.587 24188130.541
+ 24.200 17.800
+ -9400361.737 5 -7324958.746 5 22977659.441 22977657.879 22977658.499
+ 34.500 31.100
+ 06 1 2 13 45 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2627003.864 4 -2047024.554 3 24161815.123 24161812.555 24161814.431
+ 26.200 18.600
+ -12260007.766 6 -9553256.227 5 22286279.228 22286277.632 22286279.079
+ 37.100 31.600
+ -21618736.191 7 -16845764.698 7 20517102.110 20517097.970 20517100.254
+ 47.800 47.100
+ -19990908.885 7 -15577332.084 7 21367333.212 21367331.541 21367332.246
+ 45.500 42.700
+ -18304473.285 7 -14263221.159 6 21076617.537 21076616.218 21076616.576
+ 46.200 38.800
+ -627201.799 4 -488729.117 2 24474659.395 24474658.050 24474658.340
+ 27.600 17.000
+ -2270063.402 3 -1768882.433 2 24193238.292 24193237.921 24193236.988
+ 22.600 17.000
+ -9500195.013 5 -7402750.921 5 22958661.474 22958660.273 22958660.366
+ 33.600 30.100
+ 06 1 2 13 45 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2513148.005 3 -1958305.812 3 24183482.162 24183478.961 24183480.671
+ 23.000 21.100
+ -12175429.508 6 -9487351.138 5 22302374.429 22302372.491 22302374.092
+ 36.900 31.500
+ -21643746.027 7 -16865252.893 7 20512342.928 20512338.788 20512341.098
+ 47.700 47.100
+ -20047853.285 7 -15621704.345 7 21356497.061 21356495.433 21356496.123
+ 45.400 42.900
+ -18244282.533 7 -14216319.301 6 21088071.529 21088070.085 21088070.525
+ 46.300 38.800
+ -536745.069 3 -418243.382 1 24491872.754 24491870.889 24491871.322
+ 21.600 11.000
+ -2242669.158 4 -1747536.268 3 24198451.593 24198451.523 24198450.368
+ 24.600 19.300
+ -9599867.756 5 -7480417.995 5 22939694.611 22939693.026 22939693.493
+ 34.000 30.400
+ 06 1 2 13 46 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2399251.049 3 -1869555.018 3 24205156.505 24205152.717 24205154.809
+ 22.600 23.400
+ -12090466.627 6 -9421146.324 5 22318542.188 22318540.227 22318541.863
+ 36.800 31.300
+ -21668201.938 7 -16884309.448 7 20507689.021 20507685.037 20507687.249
+ 47.700 47.300
+ -20104469.272 7 -15665820.709 7 21345723.346 21345721.731 21345722.442
+ 45.600 42.800
+ -18183643.723 7 -14169068.299 6 21099610.702 21099609.360 21099609.865
+ 46.500 38.600
+ -446255.786 4 -347732.376 3 24509092.147 24509090.760 24509091.202
+ 24.900 18.600
+ -2214717.131 3 -1725755.516 2 24203769.810 24203770.501 24203769.210
+ 23.800 16.100
+ -9699377.753 5 -7557958.266 5 22920758.218 22920757.326 22920757.196
+ 34.800 30.600
+ 06 1 2 13 46 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2285316.174 4 -1780774.714 3 24226837.156 24226833.567 24226836.164
+ 25.900 19.300
+ -12005122.216 6 -9354644.216 5 22334782.674 22334780.734 22334782.362
+ 36.100 30.800
+ -21692103.966 7 -16902934.412 7 20503140.579 20503136.531 20503138.809
+ 47.900 47.400
+ -20160755.003 7 -15709679.723 7 21335012.686 21335010.997 21335011.818
+ 45.800 43.100
+ -18122558.903 7 -14121469.761 6 21111234.778 21111233.384 21111233.877
+ 46.400 38.300
+ -355734.780 3 -277196.592 1 24526317.563 24526316.728 24526316.038
+ 21.600 11.000
+ -2186208.040 4 -1703540.622 3 24209195.677 24209196.082 24209194.618
+ 24.600 19.300
+ -9798722.768 5 -7635369.977 5 22901853.942 22901852.474 22901852.970
+ 35.500 30.400
+ 06 1 2 13 47 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2171346.094 3 -1691966.946 3 24248524.476 24248521.795 24248523.462
+ 22.100 20.500
+ -11919399.191 6 -9287847.101 5 22351095.505 22351093.591 22351095.042
+ 36.500 31.300
+ -21715451.864 7 -16921127.586 7 20498697.683 20498693.687 20498695.916
+ 47.900 47.400
+ -20216708.294 7 -15753279.696 7 21324364.919 21324363.452 21324364.079
+ 45.700 43.200
+ -18061030.459 7 -14073525.536 6 21122943.484 21122941.923 21122942.473
+ 46.300 38.500
+ -265182.224 3 -206636.216 2 24543548.404 24543548.763 24543547.660
+ 23.800 12.600
+ -2157142.698 4 -1680892.308 3 24214726.989 24214726.448 24214726.073
+ 26.200 19.300
+ -9897900.777 5 -7712651.566 4 22882980.263 22882979.102 22882979.561
+ 34.600 29.900
+ 06 1 2 13 47 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -2057343.278 4 -1603133.701 3 24270219.187 24270216.006 24270217.896
+ 25.900 19.900
+ -11833300.435 6 -9220757.197 5 22367479.542 22367477.695 22367479.262
+ 36.800 31.000
+ -21738244.860 7 -16938888.372 7 20494360.450 20494356.324 20494358.624
+ 47.900 47.500
+ -20272327.176 7 -15796619.088 7 21313781.047 21313779.585 21313780.235
+ 45.800 43.300
+ -17999060.542 7 -14025237.312 6 21134736.014 21134734.397 21134735.076
+ 46.200 38.300
+ -174598.924 4 -136051.943 3 24560786.912 24560786.170 24560785.749
+ 25.300 18.600
+ -2127521.958 4 -1657811.227 3 24220363.765 24220363.086 24220362.507
+ 27.100 18.600
+ -9996909.642 5 -7789801.342 5 22864139.806 22864138.792 22864138.842
+ 33.500 30.100
+ 06 1 2 13 48 0.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -1943311.275 4 -1514277.715 2 24291918.328 24291915.691 24291917.394
+ 24.600 16.100
+ -11746829.162 6 -9153377.017 5 22383934.307 22383932.473 22383933.982
+ 36.300 31.000
+ -21760483.130 8 -16956216.896 7 20490128.654 20490124.577 20490126.830
+ 48.000 47.600
+ -20327609.707 7 -15839696.384 7 21303261.281 21303259.510 21303260.260
+ 45.700 43.100
+ -17936651.517 7 -13976606.929 6 21146611.888 21146610.509 21146610.899
+ 46.200 38.400
+ -83985.648 4 -65444.265 2 24578029.820 24578029.414 24578028.912
+ 24.900 17.000
+ -2097346.465 4 -1634297.862 3 24226105.391 24226105.472 24226104.351
+ 24.900 19.300
+ -10095746.892 5 -7866817.374 5 22845331.388 22845330.226 22845330.648
+ 33.600 30.200
+ 06 1 2 13 48 30.0000000 0 8G23G13G19G27G 3G16G15G 8
+ -1829252.830 4 -1425400.994 2 24313623.400 24313619.696 24313622.506
+ 28.600 17.800
+ -11659988.390 5 -9085708.917 4 22400459.642 22400457.594 22400459.240
+ 35.800 29.900
+ -21782166.640 7 -16973113.141 7 20486002.316 20485998.291 20486000.486
+ 47.800 47.600
+ -20382553.848 7 -15882510.010 7 21292805.603 21292804.032 21292804.762
+ 45.700 43.200
+ -17873805.862 7 -13927636.310 6 21158570.739 21158569.587 21158569.962
+ 46.100 38.100
+ 6657.269 4 5186.507 3 24595278.880 24595278.114 24595278.161
+ 25.300 19.300
+ -2066617.203 4 -1610352.960 3 24231952.990 24231953.085 24231952.215
+ 26.200 19.300
+ -10194409.888 5 -7943697.652 5 22826557.179 22826555.500 22826555.906
+ 34.800 30.600
+ 06 1 2 13 49 0.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1715170.410 3 -1336505.764 3 24335332.057 24335330.034 24335331.044
+ 23.800 21.600
+ -11572780.981 6 -9017755.132 5 22417054.938 22417052.961 22417054.582
+ 36.500 31.100
+ -21803295.032 7 -16989576.827 7 20481981.560 20481977.681 20481979.791
+ 47.700 47.600
+ -20437157.410 7 -15925058.244 7 21282415.061 21282413.357 21282414.104
+ 45.600 43.400
+ -17810525.543 7 -13878326.998 6 21170612.891 21170611.496 21170611.984
+ 45.900 38.100
+ 97329.203 4 75839.821 2 24612532.937 24612532.718 24612532.199
+ 25.600 16.100
+ -2035334.934 3 -1585977.163 3 24237905.943 24237905.965 24237904.642
+ 23.800 19.300
+ -10292896.412 5 -8020440.409 5 22807815.995 22807814.326 22807814.782
+ 35.100 32.100
+ -183539.682 3 -143018.237 1 24898464.439 24898463.717 24898463.685
+ 23.000 6.500
+ 06 1 2 13 49 30.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1601067.233 3 -1247594.293 3 24357045.395 24357043.172 24357044.462
+ 23.800 19.900
+ -11485209.983 6 -8949518.023 5 22433718.834 22433717.292 22433718.697
+ 36.000 31.500
+ -21823868.144 7 -17005607.827 7 20478066.764 20478062.702 20478064.985
+ 47.900 47.700
+ -20491418.491 7 -15967339.613 7 21272089.410 21272087.912 21272088.518
+ 45.600 43.500
+ -17746812.924 7 -13828680.823 6 21182736.951 21182735.559 21182735.975
+ 45.500 38.100
+ 188029.544 4 146515.329 2 24629794.249 24629792.204 24629792.901
+ 25.300 17.800
+ -2003500.654 4 -1561171.193 2 24243963.862 24243963.564 24243962.931
+ 24.200 17.000
+ -10391204.380 5 -8097044.022 5 22789108.623 22789107.275 22789107.481
+ 35.800 33.000
+ -269501.964 3 -210001.863 24882106.522 24882105.370 24882105.264
+ 19.900 3.000
+ 06 1 2 13 50 0.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1486946.177 4 -1158668.887 3 24378763.675 24378759.620 24378761.704
+ 27.100 18.600
+ -11397278.457 5 -8881000.003 5 22450451.594 22450450.186 22450451.289
+ 34.900 30.800
+ -21843886.218 8 -17021206.333 7 20474257.711 20474253.362 20474255.753
+ 48.000 47.700
+ -20545335.286 7 -16009352.703 7 21261829.490 21261827.923 21261828.560
+ 45.700 43.800
+ -17682670.487 7 -13778699.724 6 21194942.622 21194941.592 21194941.830
+ 45.500 38.200
+ 278757.759 4 217212.558 3 24647058.602 24647057.225 24647057.692
+ 26.200 18.600
+ -1971115.313 3 -1535935.842 3 24250125.803 24250126.387 24250124.673
+ 20.500 19.900
+ -10489331.828 6 -8173506.978 5 22770435.365 22770434.134 22770434.374
+ 36.500 32.100
+ -355417.672 3 -276949.205 9 24865756.696 24865755.405 24865755.596
+ 18.600 -3.000
+ 06 1 2 13 50 30.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1372810.077 3 -1069731.752 2 24400481.476 24400479.346 24400480.561
+ 23.000 17.800
+ -11308989.526 5 -8812203.476 5 22467252.779 22467251.006 22467252.360
+ 34.900 31.100
+ -21863349.153 8 -17036372.257 7 20470553.810 20470549.742 20470552.059
+ 48.100 47.700
+ -20598905.306 7 -16051095.580 7 21251635.328 21251633.826 21251634.475
+ 45.900 43.600
+ -17618100.453 7 -13728385.440 6 21207230.167 21207228.930 21207229.122
+ 45.300 38.400
+ 369513.330 3 287931.106 2 24664328.192 24664327.278 24664327.559
+ 22.600 16.100
+ -1938179.820 3 -1510271.816 3 24256393.987 24256393.815 24256392.814
+ 23.000 18.600
+ -10587276.137 5 -8249827.234 5 22751796.805 22751795.806 22751795.770
+ 35.300 32.000
+ -441287.098 3 -343860.417 2 24849416.379 24849414.908 24849415.636
+ 19.900 15.100
+ 06 1 2 13 51 0.0000000 0 9G23G13G19G27G 3G16G15G 8G28
+ -1258661.719 3 -980785.104 3 24422202.951 24422201.447 24422202.153
+ 22.100 18.600
+ -11220346.344 5 -8743130.911 5 22484120.805 22484119.176 22484120.520
+ 35.500 30.400
+ -21882256.806 8 -17051105.497 7 20466955.774 20466951.734 20466953.985
+ 48.100 47.700
+ -20652126.865 7 -16092566.935 7 21241507.801 21241506.036 21241506.853
+ 45.700 43.600
+ -17553105.183 7 -13677739.794 6 21219598.320 21219597.021 21219597.400
+ 45.500 37.900
+ 460295.603 3 358670.425 2 24681602.780 24681602.744 24681602.158
+ 23.400 15.100
+ -1904695.280 3 -1484179.933 3 24262765.485 24262765.790 24262764.263
+ 22.600 19.900
+ -10685035.005 5 -8326002.974 5 22733194.136 22733193.153 22733193.279
+ 35.600 32.800
+ -527109.481 3 -410734.980 3 24833085.944 24833083.670 24833084.829
+ 19.300 19.300
+ 06 1 2 13 51 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -1144504.190 4 -891831.247 2 24443926.502 24443924.078 24443925.649
+ 25.300 12.600
+ -11131351.530 5 -8673784.332 5 22501055.976 22501054.394 22501055.628
+ 34.900 30.100
+ -21900609.001 8 -17065405.910 7 20463463.522 20463459.328 20463461.701
+ 48.100 47.600
+ -20704998.087 7 -16133765.294 7 21231446.713 21231444.983 21231445.789
+ 45.800 43.700
+ -17487686.856 7 -13626764.494 6 21232047.038 21232045.747 21232046.110
+ 45.300 37.700
+ 551104.238 3 429430.309 2 24698884.253 24698883.142 24698883.229
+ 23.000 13.900
+ -1870662.614 4 -1457660.988 3 24269241.719 24269241.629 24269240.782
+ 24.600 18.600
+ -10782605.999 6 -8402032.325 5 22714627.274 22714625.864 22714626.200
+ 36.300 32.000
+ -612884.377 3 -477572.564 2 24816762.842 24816760.987 24816761.689
+ 18.600 17.800
+ -223465.200 3 -174128.507 2 24441704.037 24441703.548 24441702.742
+ 19.300 15.100
+ 06 1 2 13 52 0.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -1030339.970 3 -802872.211 3 24465651.748 24465649.362 24465650.681
+ 22.100 19.900
+ -11042008.433 5 -8604166.388 5 22518057.214 22518055.814 22518056.947
+ 34.600 30.400
+ -21918405.711 8 -17079273.482 7 20460076.914 20460072.699 20460075.095
+ 48.300 47.700
+ -20757517.340 7 -16174689.395 7 21221452.636 21221450.998 21221451.762
+ 45.800 43.800
+ -17421847.722 7 -13575461.293 6 21244575.759 21244574.462 21244574.841
+ 45.300 37.700
+ 641938.705 4 500210.334 2 24716170.272 24716168.721 24716168.802
+ 24.900 17.000
+ -1836082.687 4 -1430715.609 3 24275822.608 24275822.864 24275821.333
+ 25.900 21.100
+ -10879986.836 6 -8477913.526 5 22696096.153 22696094.437 22696095.176
+ 36.900 31.100
+ -698611.913 3 -544373.202 2 24800449.773 24800447.455 24800448.971
+ 22.100 17.000
+ -328235.462 3 -255767.620 1 24421766.313 24421766.320 24421766.043
+ 19.900 11.000
+ 06 1 2 13 52 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -916172.050 3 -713910.299 3 24487376.708 24487374.671 24487376.166
+ 22.100 21.100
+ -10952320.132 5 -8534279.434 4 22535124.773 22535122.649 22535124.472
+ 34.500 29.000
+ -21935647.303 8 -17092708.497 7 20456796.004 20456791.812 20456794.227
+ 48.200 47.800
+ -20809681.915 7 -16215337.121 7 21211526.039 21211524.381 21211525.080
+ 45.700 43.600
+ -17355590.304 7 -13523832.153 6 21257184.172 21257182.849 21257183.214
+ 45.400 37.400
+ 732798.501 4 571010.086 2 24733459.748 24733458.594 24733458.475
+ 25.900 15.100
+ -1800956.558 4 -1403344.612 3 24282506.583 24282506.876 24282505.469
+ 24.600 20.500
+ -10977175.225 6 -8553644.755 5 22677601.682 22677600.533 22677600.717
+ 36.200 32.100
+ -784291.388 3 -611136.424 3 24784145.608 24784143.501 24784144.527
+ 22.600 18.600
+ -433015.379 3 -337414.253 2 24401826.318 24401826.593 24401826.798
+ 19.300 12.600
+ 06 1 2 13 53 0.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -802003.530 3 -624947.937 3 24509102.564 24509100.569 24509101.773
+ 22.600 22.600
+ -10862289.654 5 -8464125.858 4 22552256.916 22552255.104 22552256.688
+ 35.200 29.200
+ -21952333.219 8 -17105710.506 8 20453620.653 20453616.615 20453618.897
+ 48.200 48.000
+ -20861490.067 7 -16255707.120 7 21201666.866 21201665.643 21201666.105
+ 45.700 43.700
+ -17288917.021 7 -13471878.957 6 21269871.668 21269870.347 21269870.824
+ 45.500 37.400
+ 823682.738 4 641828.926 1 24750753.952 24750753.243 24750753.692
+ 24.900 6.500
+ -1765285.577 3 -1375549.089 3 24289294.305 24289294.650 24289293.284
+ 22.600 22.100
+ -11074168.818 5 -8629224.179 5 22659144.524 22659143.578 22659143.431
+ 35.600 33.400
+ -869922.660 3 -677862.096 2 24767850.605 24767848.454 24767849.386
+ 21.600 17.800
+ -537802.604 3 -419066.564 24381887.482 24381886.279 24381886.831
+ 19.300 3.000
+ 06 1 2 13 53 30.0000000 0 10G23G13G19G27G 3G16G15G 8G28G11
+ -687837.131 4 -535987.207 3 24530828.016 24530825.479 24530827.498
+ 25.300 19.900
+ -10771920.017 5 -8393707.992 4 22569453.639 22569451.901 22569453.387
+ 34.400 29.000
+ -21968463.525 8 -17118279.586 7 20450551.191 20450547.111 20450549.365
+ 48.100 47.900
+ -20912940.100 7 -16295798.060 7 21191876.532 21191874.933 21191875.591
+ 45.500 43.600
+ -17221829.995 7 -13419603.369 6 21282638.051 21282636.753 21282637.058
+ 45.100 37.500
+ 914591.426 3 712666.741 1 24768053.780 24768052.647 24768052.653
+ 23.800 9.000
+ -1729070.620 3 -1347329.675 3 24296186.025 24296186.147 24296184.993
+ 23.000 20.500
+ -11170965.056 6 -8704649.818 5 22640724.901 22640723.435 22640723.738
+ 36.100 33.100
+ -955505.058 3 -744549.681 3 24751564.959 24751562.437 24751563.905
+ 21.100 20.500
+ -642594.149 4 -500722.252 1 24361947.759 24361945.986 24361946.538
+ 24.200 11.000
+ 06 1 2 13 54 0.0000000 0 9G23G13G19G27G 3G15G 8G28G11
+ -573675.394 3 -447030.093 3 24552552.769 24552549.863 24552551.434
+ 23.800 18.600
+ -10681214.363 5 -8323028.317 5 22586714.591 22586712.817 22586713.999
+ 34.100 30.200
+ -21984038.893 8 -17130416.241 7 20447587.279 20447583.224 20447585.485
+ 48.200 47.900
+ -20964029.665 7 -16335608.119 7 21182154.773 21182152.945 21182153.789
+ 45.700 43.800
+ -17154331.747 7 -13367007.350 6 21295482.390 21295481.283 21295481.495
+ 45.300 37.600
+ -1692312.561 3 -1318687.030 2 24303180.621 24303180.270 24303179.947
+ 22.100 17.800
+ -11267561.697 6 -8779919.952 5 22622343.115 22622341.881 22622341.938
+ 36.400 33.100
+ -1041038.590 3 -811199.164 3 24735288.008 24735286.202 24735286.895
+ 23.400 19.300
+ -747387.178 3 -582379.120 1 24342004.764 24342004.221 24342003.943
+ 23.800 11.000
+ 06 1 2 13 54 30.0000000 0 9G23G13G19G27G 3G15G 8G28G11
+ -459521.363 4 -358078.989 2 24574276.202 24574273.040 24574274.661
+ 25.600 17.000
+ -10590175.823 5 -8252089.237 4 22604038.331 22604036.937 22604038.310
+ 34.600 29.900
+ -21999059.149 8 -17142120.338 8 20444729.240 20444725.022 20444727.437
+ 48.400 48.100
+ -21014757.029 7 -16375135.944 7 21172501.384 21172499.891 21172500.551
+ 45.600 43.800
+ -17086424.689 7 -13314092.776 6 21308404.813 21308403.427 21308403.834
+ 45.100 37.100
+ -1655012.623 3 -1289622.192 3 24310278.385 24310279.299 24310277.512
+ 21.100 22.100
+ -11363956.740 6 -8855032.976 5 22603999.973 22603998.707 22603998.725
+ 36.100 33.600
+ -1126522.915 3 -877810.345 2 24719020.758 24719018.822 24719019.611
+ 23.000 17.000
+ -852179.305 3 -664035.258 2 24322063.281 24322062.709 24322062.813
+ 22.600 16.100
+ 06 1 2 13 55 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10498807.313 5 -8180893.031 4 22621425.774 22621423.807 22621425.468
+ 34.500 29.200
+ -22013524.152 8 -17153391.779 8 20441976.675 20441972.481 20441974.829
+ 48.500 48.100
+ -21065119.882 7 -16414379.737 7 21162917.736 21162916.263 21162916.823
+ 45.600 44.000
+ -17018111.134 7 -13260861.458 6 21321404.459 21321403.234 21321403.477
+ 44.900 37.400
+ -1617172.060 4 -1260136.082 3 24317480.163 24317479.588 24317478.861
+ 24.900 19.900
+ -11460147.565 6 -8929986.877 5 22585695.473 22585693.923 22585694.213
+ 36.900 33.200
+ -1211957.355 4 -944382.636 3 24702763.343 24702761.072 24702762.239
+ 24.200 19.300
+ -956967.691 3 -745688.439 3 24302123.032 24302122.085 24302122.020
+ 21.600 18.600
+ 06 1 2 13 55 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10407112.191 5 -8109442.339 4 22638874.325 22638872.890 22638874.048
+ 33.600 29.200
+ -22027434.227 8 -17164230.809 8 20439329.409 20439325.438 20439327.694
+ 48.500 48.000
+ -21115116.320 7 -16453338.007 7 21153403.736 21153402.238 21153402.849
+ 45.600 44.100
+ -16949393.467 7 -13207315.246 6 21334481.115 21334479.691 21334480.049
+ 44.900 36.900
+ -1578791.871 4 -1230229.479 3 24324783.032 24324783.596 24324782.388
+ 24.600 18.600
+ -11556131.582 6 -9004779.630 5 22567429.982 22567428.864 22567429.199
+ 37.300 32.800
+ -1297342.119 4 -1010916.234 2 24686515.283 24686513.046 24686514.182
+ 25.900 17.800
+ -1061749.657 4 -827336.671 3 24282183.461 24282183.034 24282182.824
+ 24.900 19.900
+ 06 1 2 13 56 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10315093.629 5 -8037739.604 4 22656384.943 22656383.596 22656384.659
+ 33.900 29.200
+ -22040789.477 8 -17174637.504 8 20436788.095 20436783.984 20436786.308
+ 48.500 48.300
+ -21164744.757 7 -16492009.526 7 21143959.835 21143958.428 21143958.837
+ 45.900 44.300
+ -16880273.897 7 -13153455.869 6 21347633.942 21347632.790 21347633.033
+ 44.900 37.200
+ -1539873.054 3 -1199903.177 2 24332188.665 24332188.771 24332187.837
+ 21.600 16.100
+ -11651906.419 6 -9079409.395 5 22549204.854 22549203.597 22549203.935
+ 37.800 33.900
+ -1382676.506 4 -1077410.576 3 24670276.627 24670274.339 24670275.589
+ 24.900 19.300
+ -1166522.537 3 -908977.815 3 24262245.675 24262244.695 24262244.715
+ 23.000 18.600
+ 06 1 2 13 56 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10222754.393 5 -7965786.999 4 22673956.556 22673955.138 22673956.241
+ 33.800 29.000
+ -22053590.185 8 -17184612.089 8 20434352.115 20434348.131 20434350.414
+ 48.500 48.200
+ -21214002.978 7 -16530392.564 7 21134586.227 21134584.743 21134585.332
+ 46.100 44.100
+ -16810754.890 7 -13099285.233 6 21360862.812 21360861.682 21360861.944
+ 44.700 36.700
+ -1500417.167 3 -1169158.365 2 24339697.470 24339697.285 24339696.485
+ 22.600 17.800
+ -11747469.778 6 -9153874.355 5 22531019.576 22531018.513 22531018.586
+ 37.000 33.200
+ -1467960.129 4 -1143865.334 2 24654047.468 24654045.445 24654046.610
+ 24.600 17.800
+ -1271283.491 4 -990609.674 3 24242310.381 24242309.460 24242309.712
+ 25.300 19.300
+ 06 1 2 13 57 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10130097.654 5 -7893586.998 4 22691588.735 22691587.306 22691588.495
+ 33.900 29.200
+ -22065836.332 8 -17194154.546 8 20432021.833 20432017.779 20432020.073
+ 48.600 48.200
+ -21262889.123 7 -16568485.668 7 21125283.242 21125281.935 21125282.510
+ 45.900 43.900
+ -16740838.887 7 -13044805.262 6 21374167.563 21374166.490 21374166.555
+ 44.600 37.100
+ -1460425.401 3 -1137996.008 2 24347307.643 24347307.676 24347306.741
+ 23.800 12.600
+ -11842819.245 6 -9228172.652 5 22512875.454 22512873.822 22512874.381
+ 37.700 32.300
+ -1553192.757 4 -1210280.398 2 24637828.139 24637826.117 24637827.019
+ 24.600 17.800
+ -1376029.979 3 -1072230.281 3 24222378.048 24222376.737 24222376.908
+ 19.900 19.900
+ 06 1 2 13 57 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -10037126.691 5 -7821142.141 4 22709280.614 22709279.030 22709280.205
+ 33.900 28.800
+ -22077528.304 8 -17203265.176 8 20429796.894 20429792.860 20429795.136
+ 48.500 48.300
+ -21311401.418 7 -16606287.469 7 21116051.858 21116050.362 21116050.918
+ 45.700 44.000
+ -16670528.193 7 -12990017.735 6 21387547.326 21387546.079 21387546.318
+ 44.700 36.800
+ -1419898.862 3 -1106416.884 2 24355019.809 24355019.949 24355018.691
+ 23.000 15.100
+ -11937952.563 6 -9302302.522 5 22494772.095 22494770.578 22494771.111
+ 37.500 32.800
+ -1638374.157 4 -1276655.521 2 24621618.579 24621617.072 24621617.835
+ 24.200 17.000
+ -1480759.087 3 -1153837.330 3 24202446.500 24202447.297 24202446.270
+ 19.900 19.300
+ 06 1 2 13 58 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9943844.437 5 -7748454.721 4 22727031.844 22727029.959 22727031.575
+ 34.700 27.600
+ -22088666.262 8 -17211944.113 8 20427677.562 20427673.406 20427675.665
+ 48.400 48.300
+ -21359537.806 7 -16643796.353 7 21106892.000 21106890.475 21106891.056
+ 45.800 44.300
+ -16599825.255 7 -12934924.564 6 21401001.481 21401000.622 21401000.658
+ 44.600 37.000
+ -1378838.586 3 -1074421.917 2 24362833.099 24362833.137 24362832.018
+ 22.600 15.100
+ -12032867.289 6 -9376262.049 5 22476710.357 22476709.047 22476709.249
+ 37.400 32.800
+ -1723503.879 3 -1342990.402 1 24605419.471 24605417.687 24605418.479
+ 22.100 11.000
+ -1585468.316 3 -1235428.857 3 24182522.139 24182521.999 24182521.756
+ 20.500 20.500
+ 06 1 2 13 58 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9850254.355 5 -7675527.414 4 22744841.084 22744839.551 22744840.847
+ 33.900 27.900
+ -22099250.634 8 -17220191.680 8 20425663.045 20425659.289 20425661.319
+ 48.400 48.500
+ -21407296.040 7 -16681010.567 7 21097803.959 21097802.336 21097802.994
+ 46.000 44.300
+ -16528732.315 7 -12879527.500 6 21414530.246 21414528.968 21414529.335
+ 44.800 36.500
+ -1337246.138 4 -1042012.231 2 24370747.879 24370747.848 24370746.883
+ 24.200 13.900
+ -12127560.531 6 -9450049.016 5 22458691.010 22458689.254 22458689.893
+ 38.000 32.100
+ -1808581.622 2 -1409284.764 2 24589229.594 24589226.965 24589228.765
+ 17.800 13.900
+ -1690154.732 3 -1317002.683 2 24162600.490 24162600.672 24162600.914
+ 22.100 17.800
+ 06 1 2 13 59 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9756359.544 5 -7602362.677 4 22762708.828 22762707.661 22762708.487
+ 33.200 29.000
+ -22109281.448 8 -17228007.904 8 20423754.501 20423750.537 20423752.640
+ 48.400 48.400
+ -21454674.210 7 -16717928.637 7 21088788.399 21088786.572 21088787.363
+ 45.900 44.300
+ -16457251.806 7 -12823828.426 6 21428132.737 21428131.313 21428131.718
+ 44.900 36.800
+ -1295122.731 3 -1009188.835 2 24378763.399 24378763.988 24378762.598
+ 22.100 17.800
+ -12222029.737 6 -9523661.398 5 22440714.015 22440712.666 22440712.930
+ 38.000 33.400
+ -1893606.941 3 -1475538.257 2 24573049.132 24573047.459 24573048.272
+ 18.600 17.000
+ -1794815.507 3 -1398556.498 2 24142684.257 24142684.564 24142684.072
+ 19.300 15.100
+ 06 1 2 13 59 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9662163.009 5 -7528962.842 4 22780633.691 22780632.342 22780633.412
+ 32.800 26.800
+ -22118758.825 8 -17235392.872 8 20421950.852 20421947.040 20421949.199
+ 48.500 48.700
+ -21501670.624 7 -16754549.231 7 21079845.089 21079843.411 21079844.091
+ 45.900 44.300
+ -16385386.154 7 -12767829.251 6 21441808.023 21441807.108 21441807.210
+ 44.800 36.500
+ -1252469.841 3 -975952.906 3 24386881.087 24386881.004 24386879.812
+ 23.400 21.100
+ -12316273.103 6 -9597097.789 5 22422780.393 22422778.684 22422779.089
+ 38.000 34.000
+ -1978579.402 3 -1541750.586 2 24556880.336 24556878.193 24556878.982
+ 22.600 16.100
+ -1899448.375 3 -1480088.584 2 24122772.144 24122773.818 24122772.943
+ 21.600 12.600
+ 06 1 2 14 0 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9567667.907 5 -7455330.327 4 22798615.732 22798614.011 22798615.502
+ 33.400 26.800
+ -22127683.311 8 -17242347.020 8 20420252.649 20420248.745 20420250.859
+ 48.400 48.700
+ -21548283.062 7 -16790870.621 7 21070975.016 21070973.443 21070974.046
+ 45.700 44.400
+ -16313137.657 7 -12711531.743 6 21455556.789 21455555.229 21455555.764
+ 44.700 36.100
+ -1209288.826 3 -942305.378 2 24395097.761 24395098.285 24395096.743
+ 22.100 16.100
+ -12410288.134 6 -9670356.260 5 22404889.994 22404888.320 22404888.866
+ 38.500 33.600
+ -2063498.922 3 -1607921.658 3 24540720.802 24540718.054 24540719.839
+ 23.800 20.500
+ -2004050.255 3 -1561596.509 2 24102867.856 24102869.187 24102867.649
+ 22.100 16.100
+ 06 1 2 14 0 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9472877.303 5 -7381467.561 4 22816653.802 22816652.239 22816653.517
+ 33.000 27.400
+ -22136055.209 8 -17248870.585 8 20418659.234 20418655.624 20418657.576
+ 48.100 48.800
+ -21594509.826 7 -16826891.486 7 21062178.506 21062176.821 21062177.413
+ 45.700 44.400
+ -16240508.900 7 -12654937.933 6 21469377.456 21469376.263 21469376.444
+ 44.700 36.300
+ -1165580.892 3 -908247.279 2 24403414.678 24403414.851 24403413.822
+ 19.900 15.100
+ -12504072.246 6 -9743434.794 5 22387043.055 22387041.616 22387042.062
+ 38.600 33.200
+ -2148365.113 4 -1674051.165 3 24524571.396 24524568.974 24524570.067
+ 24.600 21.100
+ -2108618.420 4 -1643078.202 2 24082969.181 24082969.853 24082969.179
+ 25.300 15.100
+ 06 1 2 14 1 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9377794.479 5 -7307377.088 4 22834747.194 22834746.075 22834747.004
+ 30.800 28.100
+ -22143875.085 8 -17254963.998 8 20417171.414 20417167.511 20417169.604
+ 48.200 48.700
+ -21640349.196 7 -16862610.485 7 21053455.331 21053453.894 21053454.397
+ 45.700 44.600
+ -16167502.200 7 -12598049.622 6 21483270.425 21483268.912 21483269.358
+ 44.500 36.500
+ -1121347.356 3 -873779.645 2 24411832.034 24411832.552 24411830.846
+ 22.100 12.600
+ -12597623.400 6 -9816331.822 5 22369241.178 22369239.491 22369240.143
+ 39.000 33.200
+ -2233177.497 4 -1740138.737 3 24508431.911 24508429.515 24508430.737
+ 26.800 21.600
+ -2213150.049 4 -1724531.404 2 24063076.953 24063077.526 24063077.516
+ 24.600 16.100
+ 06 1 2 14 1 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9282422.611 5 -7233061.435 4 22852896.245 22852895.142 22852895.830
+ 32.300 28.800
+ -22151143.097 8 -17260627.388 8 20415788.379 20415784.508 20415786.654
+ 48.300 48.700
+ -21685799.034 7 -16898025.956 7 21044806.835 21044805.065 21044805.802
+ 45.800 44.400
+ -16094119.922 7 -12540868.653 6 21497234.033 21497233.378 21497233.265
+ 44.100 36.400
+ -1076589.824 3 -838903.718 3 24420349.170 24420349.494 24420348.346
+ 22.100 18.600
+ -12690938.588 6 -9889044.973 5 22351483.876 22351482.316 22351482.722
+ 38.800 33.800
+ -2317935.797 3 -1806184.150 3 24492302.832 24492300.515 24492301.412
+ 23.800 20.500
+ -2317642.331 4 -1805953.950 2 24043193.660 24043193.561 24043193.422
+ 26.500 15.100
+ 06 1 2 14 2 0.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9186764.772 5 -7158522.908 4 22871099.262 22871098.267 22871098.974
+ 33.100 28.400
+ -22157859.533 8 -17265860.975 8 20414510.515 20414506.372 20414508.660
+ 48.300 48.700
+ -21730857.388 7 -16933136.373 7 21036231.983 21036230.711 21036231.179
+ 45.700 44.400
+ -16020364.521 7 -12483396.944 6 21511269.702 21511268.439 21511268.686
+ 44.300 36.400
+ -1031309.884 3 -803620.695 2 24428965.939 24428966.473 24428964.730
+ 22.600 17.800
+ -12784015.168 6 -9961572.187 5 22333771.893 22333770.779 22333770.744
+ 38.600 34.900
+ -2402639.708 3 -1872187.199 3 24476183.860 24476182.412 24476182.586
+ 22.600 21.100
+ -2422092.620 3 -1887343.798 2 24023318.319 24023316.943 24023317.390
+ 23.400 12.600
+ 06 1 2 14 2 30.0000000 0 8G13G19G27G 3G15G 8G28G11
+ -9090824.158 5 -7083764.028 4 22889356.051 22889354.617 22889355.853
+ 33.000 27.600
+ -22164024.964 8 -17270665.211 8 20413337.012 20413333.170 20413335.266
+ 48.400 48.800
+ -21775522.486 7 -16967940.356 7 21027732.685 21027731.283 21027731.725
+ 45.500 44.500
+ -15946238.222 7 -12425636.208 6 21525375.326 21525374.273 21525374.455
+ 44.200 36.100
+ -985508.786 3 -767931.586 2 24437681.897 24437682.072 24437680.611
+ 21.600 17.800
+ -12876850.873 6 -10033911.692 5 22316105.664 22316104.822 22316104.638
+ 38.400 35.500
+ -2487288.963 3 -1938147.632 3 24460075.231 24460073.848 24460073.954
+ 22.600 20.500
+ -2526498.062 3 -1968698.682 2 24003451.698 24003449.976 24003450.143
+ 22.600 16.100
+ 06 1 2 14 3 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8994603.932 5 -7008787.263 4 22907666.367 22907664.789 22907665.957
+ 32.400 26.800
+ -22169639.756 8 -17275040.382 8 20412268.614 20412264.714 20412266.803
+ 48.200 48.700
+ -21819792.384 7 -17002436.388 7 21019308.349 21019307.033 21019307.433
+ 45.500 44.500
+ -15871743.550 7 -12367588.446 6 21539551.548 21539550.180 21539550.477
+ 44.400 36.100
+ -12969443.469 6 -10106061.772 5 22298486.287 22298484.735 22298485.037
+ 38.900 34.800
+ -2571882.785 3 -2004064.859 2 24443978.167 24443975.881 24443977.214
+ 22.600 17.800
+ -2630855.957 3 -2050016.466 3 23983592.728 23983591.794 23983591.104
+ 22.100 22.600
+ 06 1 2 14 3 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8898107.257 5 -6933595.097 4 22926028.794 22926027.675 22926028.557
+ 31.800 27.400
+ -22174704.352 8 -17278986.828 8 20411304.929 20411300.983 20411303.015
+ 48.200 48.800
+ -21863665.097 7 -17036622.932 7 21010959.584 21010958.265 21010958.746
+ 45.300 44.700
+ -15796883.070 7 -12309255.632 6 21553796.763 21553795.534 21553795.924
+ 44.500 36.000
+ -13061790.428 6 -10178020.470 5 22280912.915 22280911.533 22280911.926
+ 39.300 34.100
+ -2656421.156 4 -2069938.923 2 24427890.987 24427888.746 24427889.981
+ 24.200 17.800
+ -2735163.257 3 -2131294.814 3 23963744.126 23963742.351 23963742.327
+ 22.100 22.600
+ 06 1 2 14 4 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8801337.257 5 -6858189.960 4 22944443.993 22944442.643 22944443.738
+ 32.400 27.600
+ -22179219.253 8 -17282504.935 8 20410445.624 20410441.859 20410443.812
+ 48.300 48.800
+ -21907138.907 7 -17070498.643 7 21002687.004 21002685.584 21002686.000
+ 45.400 44.600
+ -15721658.974 7 -12250639.484 5 21568111.602 21568110.329 21568110.560
+ 44.300 35.700
+ -13153888.940 6 -10249785.565 5 22263386.959 22263385.809 22263386.213
+ 39.300 34.400
+ -2740903.884 4 -2135769.625 2 24411814.175 24411812.286 24411813.152
+ 26.800 16.100
+ -2839417.331 3 -2212531.681 3 23943904.692 23943903.526 23943903.283
+ 23.400 23.800
+ 06 1 2 14 4 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8704297.251 5 -6782574.425 4 22962910.123 22962908.537 22962909.743
+ 32.000 27.100
+ -22183184.918 8 -17285595.079 8 20409691.108 20409687.230 20409689.335
+ 48.500 48.900
+ -21950211.844 7 -17104061.986 7 20994490.339 20994489.062 20994489.396
+ 45.500 44.700
+ -15646073.777 7 -12191741.955 5 21582494.919 21582493.609 21582493.965
+ 44.200 35.400
+ -13245736.990 6 -10321355.491 5 22245909.339 22245908.073 22245908.365
+ 39.800 35.400
+ -2825330.313 4 -2201556.482 3 24395748.738 24395746.679 24395747.463
+ 26.800 19.900
+ -2943615.574 3 -2293725.042 3 23924076.433 23924075.344 23924074.891
+ 22.600 23.000
+ 06 1 2 14 5 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8606990.278 5 -6706750.865 4 22981426.774 22981425.545 22981426.512
+ 31.100 26.800
+ -22186602.016 8 -17288257.759 8 20409040.797 20409037.019 20409039.086
+ 48.700 48.800
+ -21992881.980 7 -17137311.455 7 20986370.581 20986369.199 20986369.672
+ 45.600 44.700
+ -15570129.758 7 -12132564.821 5 21596946.483 21596945.461 21596945.543
+ 43.800 35.100
+ -13337331.980 6 -10392728.221 6 22228479.094 22228478.082 22228478.145
+ 39.800 36.000
+ -2909700.210 4 -2267299.254 3 24379693.224 24379691.707 24379692.588
+ 24.600 21.100
+ -3047755.274 4 -2374872.831 3 23904260.037 23904257.827 23904258.430
+ 25.300 19.300
+ 06 1 2 14 5 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8509419.605 5 -6630721.816 4 22999993.882 22999992.447 22999993.694
+ 30.800 25.300
+ -22189470.739 8 -17290493.135 8 20408495.112 20408491.073 20408493.215
+ 48.700 48.800
+ -22035147.349 7 -17170245.521 7 20978327.611 20978326.431 20978326.790
+ 45.600 44.800
+ -15493829.504 7 -12073110.107 5 21611466.063 21611464.867 21611465.102
+ 43.700 35.100
+ -13428671.169 6 -10463901.621 5 22211097.936 22211096.927 22211096.947
+ 40.000 35.700
+ -2994013.228 3 -2332997.675 4 24363649.064 24363647.316 24363647.954
+ 23.000 24.200
+ -3151833.199 4 -2455972.462 3 23884454.301 23884452.546 23884452.692
+ 25.600 19.300
+ 06 1 2 14 6 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8411588.448 5 -6554489.791 4 23018610.877 23018609.309 23018610.473
+ 31.000 25.300
+ -22191791.652 8 -17292301.652 8 20408053.334 20408049.416 20408051.584
+ 48.800 48.800
+ -22077006.022 7 -17202862.687 7 20970362.302 20970361.006 20970361.409
+ 45.500 44.900
+ -15417175.440 7 -12013379.701 5 21626052.996 21626051.793 21626051.964
+ 43.600 34.900
+ -13519752.086 6 -10534873.777 5 22193765.634 22193764.319 22193764.684
+ 39.800 34.800
+ -3078268.909 3 -2398651.423 3 24347615.597 24347614.191 24347614.630
+ 21.100 23.000
+ -3255846.763 4 -2537021.943 2 23864660.137 23864659.152 23864659.193
+ 25.900 17.000
+ 06 1 2 14 6 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8313499.943 5 -6478057.228 4 23037276.656 23037275.054 23037276.275
+ 31.600 26.200
+ -22193565.588 8 -17293683.947 8 20407715.860 20407711.801 20407714.058
+ 48.900 48.700
+ -22118456.284 7 -17235161.607 7 20962474.515 20962473.178 20962473.631
+ 45.600 44.700
+ -15340169.842 7 -11953375.371 5 21640706.195 21640705.343 21640705.468
+ 43.400 35.200
+ -13610572.035 6 -10605642.583 5 22176483.289 22176482.082 22176482.251
+ 39.700 35.200
+ -3162467.229 3 -2464260.459 3 24331593.225 24331591.600 24331591.946
+ 21.600 23.800
+ -3359793.304 4 -2618019.184 3 23844879.817 23844879.068 23844879.064
+ 26.500 19.900
+ 06 1 2 14 7 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8215157.295 5 -6401426.642 4 23055990.537 23055989.078 23055990.183
+ 30.400 25.900
+ -22194792.832 8 -17294640.253 8 20407482.345 20407478.287 20407480.540
+ 48.900 48.800
+ -22159496.503 7 -17267141.015 7 20954665.008 20954663.474 20954664.048
+ 45.500 44.900
+ -15262815.257 7 -11893099.100 5 21655426.772 21655425.472 21655425.725
+ 43.200 34.800
+ -13701128.938 6 -10676206.410 5 22159251.437 22159249.512 22159250.072
+ 39.800 34.900
+ -3246607.382 4 -2529824.197 3 24315582.248 24315580.724 24315581.330
+ 25.300 21.600
+ -3463669.846 4 -2698961.897 3 23825111.522 23825111.916 23825111.486
+ 25.300 19.300
+ 06 1 2 14 7 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -8116563.524 5 -6324600.388 4 23074751.797 23074750.906 23074751.617
+ 30.100 25.600
+ -22195474.379 8 -17295171.336 8 20407352.796 20407348.679 20407350.936
+ 48.900 48.900
+ -22200124.957 7 -17298799.566 7 20946933.615 20946932.209 20946932.704
+ 45.500 44.800
+ -15185114.069 7 -11832552.755 5 21670212.659 21670211.568 21670211.652
+ 43.100 35.400
+ -13791419.950 6 -10746563.060 5 22142068.832 22142067.928 22142068.095
+ 40.500 35.700
+ -3330689.163 4 -2595342.463 3 24299581.700 24299579.981 24299580.637
+ 25.900 19.900
+ -3567473.439 4 -2779847.735 3 23805358.232 23805358.207 23805357.996
+ 24.900 19.900
+ 06 1 2 14 8 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -8017721.963 5 -6247581.040 4 23093561.809 23093559.727 23093561.328
+ 31.600 24.200
+ -22195610.526 8 -17295277.438 8 20407326.850 20407322.789 20407325.012
+ 48.900 48.800
+ -22240339.527 7 -17330135.605 7 20939281.211 20939279.756 20939280.239
+ 45.300 45.100
+ -15107068.618 7 -11771738.159 5 21685064.127 21685063.056 21685063.291
+ 43.200 35.300
+ -13881442.315 6 -10816710.363 6 22124938.580 22124937.499 22124937.580
+ 40.900 36.100
+ -3414712.223 4 -2660814.996 3 24283593.448 24283590.965 24283592.380
+ 26.800 19.900
+ -3671201.326 3 -2860674.560 3 23785619.176 23785619.497 23785619.241
+ 23.800 19.900
+ 06 1 2 14 8 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7918635.805 5 -6170371.089 4 23112416.986 23112415.323 23112416.709
+ 31.300 25.900
+ -22195202.079 8 -17294959.171 8 20407404.521 20407400.487 20407402.753
+ 49.100 48.800
+ -22280138.190 7 -17361147.560 7 20931707.762 20931706.297 20931706.812
+ 45.500 45.100
+ -15028681.381 7 -11710657.229 5 21699980.926 21699979.921 21699979.892
+ 42.800 35.100
+ -13971193.916 6 -10886646.683 5 22107859.031 22107858.098 22107858.232
+ 40.600 35.700
+ -3498676.186 4 -2726241.485 3 24267614.918 24267613.401 24267614.023
+ 25.900 19.300
+ -3774850.756 4 -2941440.304 3 23765894.648 23765895.399 23765895.211
+ 25.600 18.600
+ 06 1 2 14 9 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7819308.168 4 -6092972.975 3 23131318.340 23131316.516 23131318.027
+ 29.500 23.800
+ -22194249.967 8 -17294217.273 8 20407585.750 20407581.583 20407583.955
+ 49.100 48.700
+ -22319519.306 7 -17391834.161 7 20924213.620 20924212.253 20924212.728
+ 45.400 45.000
+ -14949954.771 7 -11649311.860 5 21714962.245 21714960.860 21714961.257
+ 43.100 34.600
+ -14060672.042 6 -10956369.904 5 22090831.972 22090830.903 22090831.024
+ 40.700 35.200
+ -3582580.728 4 -2791621.654 3 24251648.901 24251646.225 24251647.835
+ 25.900 21.600
+ -3878419.204 4 -3022142.891 3 23746187.170 23746187.055 23746186.972
+ 27.400 21.600
+ 06 1 2 14 9 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7719742.227 5 -6015389.172 4 23150264.993 23150263.601 23150264.782
+ 30.100 24.600
+ -22192754.314 8 -17293051.841 8 20407870.447 20407866.189 20407868.623
+ 49.100 48.600
+ -22358481.226 7 -17422194.110 7 20916799.510 20916798.087 20916798.497
+ 45.100 45.000
+ -14870891.123 7 -11587703.864 5 21730007.803 21730006.329 21730006.740
+ 43.300 34.900
+ -14149874.012 6 -11025877.946 5 22073857.684 22073856.143 22073856.670
+ 40.700 35.400
+ -3666425.309 4 -2856955.082 3 24235693.146 24235691.783 24235692.510
+ 26.800 23.000
+ -3981903.336 4 -3102779.784 3 23726494.759 23726494.273 23726494.247
+ 25.900 21.100
+ 06 1 2 14 10 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7619941.434 4 -5937622.397 4 23169256.030 23169255.381 23169255.801
+ 29.000 26.200
+ -22190716.100 8 -17291463.633 8 20408258.192 20408254.057 20408256.373
+ 48.900 48.700
+ -22397021.708 7 -17452225.668 7 20909465.409 20909464.140 20909464.497
+ 45.300 45.200
+ -14791492.893 7 -11525835.151 5 21745116.505 21745115.359 21745115.651
+ 43.200 34.100
+ -14238797.658 6 -11095169.115 5 22056935.829 22056934.460 22056934.827
+ 40.700 35.400
+ -3750209.788 4 -2922241.696 3 24219749.679 24219747.958 24219748.655
+ 25.900 22.600
+ -4085300.497 3 -3183348.945 3 23706819.826 23706818.804 23706818.427
+ 23.000 20.500
+ 06 1 2 14 10 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7519908.897 5 -5859675.016 4 23188292.113 23188290.998 23188291.715
+ 30.200 25.900
+ -22188135.709 8 -17289452.951 8 20408749.103 20408745.146 20408747.309
+ 49.100 48.600
+ -22435139.070 7 -17481927.523 7 20902212.065 20902210.621 20902211.044
+ 45.300 45.100
+ -14711762.578 7 -11463707.667 5 21760288.651 21760287.565 21760287.715
+ 43.100 34.300
+ -14327440.361 6 -11164241.359 6 22040067.547 22040066.579 22040066.623
+ 40.500 36.300
+ -3833933.784 4 -2987481.198 3 24203817.637 24203815.357 24203816.614
+ 26.500 22.600
+ -4188608.127 4 -3263848.337 3 23687162.236 23687159.660 23687160.411
+ 25.600 19.300
+ 06 1 2 14 11 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7419647.972 4 -5781549.669 4 23207371.041 23207370.021 23207370.857
+ 29.900 25.900
+ -22185014.246 8 -17287020.650 8 20409343.048 20409339.138 20409341.387
+ 49.100 48.700
+ -22472831.723 7 -17511298.434 7 20895039.323 20895037.908 20895038.388
+ 45.300 45.100
+ -14631702.443 7 -11401323.185 5 21775523.827 21775522.554 21775522.896
+ 43.400 34.500
+ -14415799.354 6 -11233092.529 6 22023253.779 22023252.709 22023252.719
+ 41.000 36.900
+ -3917596.846 4 -3052673.230 3 24187896.827 24187894.893 24187896.036
+ 25.300 19.900
+ -4291822.998 4 -3344275.429 2 23667520.783 23667517.881 23667519.127
+ 25.600 17.800
+ 06 1 2 14 11 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7319161.408 4 -5703248.517 4 23226492.862 23226491.988 23226492.632
+ 29.500 24.200
+ -22181352.310 8 -17284167.205 8 20410040.266 20410035.978 20410038.330
+ 49.000 48.600
+ -22510098.084 7 -17540337.175 7 20887947.858 20887946.356 20887946.824
+ 45.200 45.200
+ -14551315.194 7 -11338683.812 5 21790820.872 21790819.972 21790819.891
+ 42.800 34.400
+ -14503871.771 6 -11301720.389 6 22006494.330 22006492.855 22006493.300
+ 41.800 36.400
+ -4001198.461 4 -3117817.347 3 24171987.852 24171985.986 24171986.989
+ 24.600 20.500
+ -4394942.210 4 -3424628.000 3 23647895.947 23647895.903 23647895.513
+ 26.800 18.600
+ 06 1 2 14 12 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7218452.580 4 -5624774.159 4 23245657.155 23245656.014 23245656.818
+ 27.600 24.200
+ -22177150.716 8 -17280893.248 8 20410839.553 20410835.544 20410837.849
+ 49.100 48.600
+ -22546936.149 7 -17569042.175 7 20880937.677 20880936.410 20880936.740
+ 45.200 45.300
+ -14470602.893 7 -11275791.151 5 21806180.066 21806178.977 21806179.118
+ 42.700 34.400
+ -14591655.568 6 -11370123.362 6 21989789.352 21989788.213 21989788.457
+ 41.800 36.200
+ -4084738.338 4 -3182913.373 3 24156091.069 24156088.852 24156090.075
+ 25.600 19.900
+ -4497963.291 4 -3504904.119 3 23628291.753 23628291.331 23628291.318
+ 25.900 19.900
+ 06 1 2 14 12 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -7117524.725 5 -5546129.129 4 23264863.650 23264862.394 23264863.422
+ 30.400 24.600
+ -22172410.288 8 -17277199.417 8 20411741.538 20411737.610 20411739.823
+ 49.000 48.700
+ -22583343.915 7 -17597411.879 7 20874009.372 20874008.202 20874008.451
+ 45.100 45.300
+ -14389568.158 7 -11212647.253 5 21821600.213 21821599.535 21821599.305
+ 42.300 34.500
+ -14679148.012 6 -11438299.301 6 21973140.053 21973139.050 21973139.083
+ 41.300 36.500
+ -4168215.999 4 -3247960.914 3 24140205.583 24140203.982 24140204.627
+ 26.500 22.100
+ -4600883.140 4 -3585101.341 3 23608706.316 23608706.454 23608706.130
+ 24.600 20.500
+ 06 1 2 14 13 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -7016381.104 5 -5467315.993 4 23284110.813 23284109.453 23284110.677
+ 31.000 25.900
+ -22167131.779 8 -17273086.306 8 20412746.111 20412742.119 20412744.242
+ 48.900 48.700
+ -22619319.706 7 -17625444.971 7 20867163.497 20867162.235 20867162.530
+ 44.700 45.200
+ -14308213.327 7 -11149253.919 5 21837081.926 21837080.747 21837080.868
+ 42.400 34.500
+ -14766346.277 6 -11506246.013 6 21956546.575 21956545.593 21956545.813
+ 41.600 36.200
+ -4251631.357 4 -3312959.900 3 24124332.363 24124330.343 24124331.192
+ 26.500 22.100
+ -4703698.825 4 -3665217.390 3 23589141.444 23589141.635 23589141.130
+ 27.900 22.600
+ 06 1 2 14 13 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6915024.772 4 -5388337.092 4 23303398.374 23303397.173 23303398.035
+ 29.900 24.600
+ -22161315.933 8 -17268554.491 8 20413852.839 20413848.822 20413850.918
+ 49.000 48.700
+ -22654861.470 7 -17653139.873 7 20860400.373 20860398.895 20860399.390
+ 45.200 45.400
+ -14226540.959 7 -11085613.156 5 21852623.224 21852622.399 21852622.326
+ 42.000 33.900
+ -14853247.659 7 -11573961.385 6 21940010.298 21940008.861 21940009.236
+ 42.000 36.100
+ -4334983.870 4 -3377909.946 3 24108470.768 24108469.107 24108469.956
+ 27.900 22.100
+ -4806407.577 4 -3745250.126 3 23569596.980 23569596.186 23569596.144
+ 26.200 23.400
+ 06 1 2 14 14 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6813459.244 4 -5309195.178 4 23322725.268 23322724.196 23322724.941
+ 29.000 24.900
+ -22154963.743 8 -17263604.743 8 20415061.576 20415057.633 20415059.786
+ 49.000 48.600
+ -22689968.034 7 -17680495.649 7 20853719.726 20853718.297 20853718.722
+ 45.100 45.200
+ -14144553.379 7 -11021726.774 5 21868225.377 21868224.141 21868224.322
+ 42.400 33.500
+ -14939850.019 7 -11641443.756 6 21923530.173 21923529.030 21923529.175
+ 42.000 36.500
+ -4418273.201 4 -3442810.750 3 24092621.583 24092619.966 24092620.583
+ 27.600 23.400
+ -4909006.570 4 -3825197.344 4 23550073.580 23550072.385 23550072.293
+ 26.500 24.200
+ 06 1 2 14 14 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6711687.845 4 -5229892.857 3 23342091.967 23342090.803 23342091.637
+ 27.100 23.000
+ -22148076.042 8 -17258237.718 8 20416372.264 20416368.278 20416370.544
+ 49.200 48.700
+ -22724637.855 7 -17707511.113 7 20847122.209 20847120.785 20847121.200
+ 45.200 45.300
+ -14062252.862 7 -10957596.535 5 21883886.398 21883885.459 21883885.520
+ 42.000 33.800
+ -15026150.788 6 -11708691.116 6 21907107.562 21907106.276 21907106.591
+ 41.400 36.100
+ -4501498.760 4 -3507661.844 3 24076783.774 24076782.690 24076782.908
+ 26.200 23.800
+ -5011493.138 4 -3905056.969 3 23530571.493 23530570.018 23530570.149
+ 28.400 23.400
+ 06 1 2 14 15 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6609713.066 4 -5150432.056 3 23361496.991 23361495.794 23361496.460
+ 28.100 23.800
+ -22140653.477 8 -17252453.913 8 20417784.789 20417780.806 20417782.978
+ 49.100 48.600
+ -22758868.915 7 -17734184.677 7 20840608.327 20840606.906 20840607.303
+ 45.000 45.200
+ -13979641.989 7 -10893224.464 5 21899607.142 21899605.832 21899606.113
+ 42.100 33.500
+ -15112147.550 6 -11775701.590 6 21890743.158 21890741.670 21890742.057
+ 41.400 36.100
+ -4584660.109 4 -3572462.916 3 24060958.885 24060957.600 24060957.851
+ 26.200 21.600
+ -5113864.293 4 -3984826.650 3 23511090.805 23511089.122 23511089.483
+ 27.900 21.600
+ 06 1 2 14 15 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6507538.558 4 -5070815.628 3 23380939.875 23380939.237 23380939.758
+ 28.600 23.800
+ -22132697.448 8 -17246254.423 8 20419298.960 20419294.805 20419297.052
+ 49.100 48.700
+ -22792659.104 7 -17760514.708 7 20834178.264 20834176.935 20834177.385
+ 45.300 45.400
+ -13896723.153 6 -10828612.423 5 21915385.767 21915384.689 21915384.740
+ 41.200 33.600
+ -15197837.290 7 -11842472.820 6 21874436.937 21874435.570 21874436.060
+ 42.300 36.600
+ -4667757.264 4 -3637213.977 3 24045146.360 24045144.312 24045145.207
+ 27.100 23.400
+ -5216116.799 4 -4064503.916 3 23491632.464 23491631.367 23491631.127
+ 27.100 23.400
+ 06 1 2 14 16 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6405167.335 4 -4991045.913 3 23400420.998 23400419.971 23400420.667
+ 27.900 22.100
+ -22124208.355 8 -17239639.561 8 20420914.088 20420910.267 20420912.382
+ 49.100 48.600
+ -22826007.232 7 -17786500.276 7 20827832.400 20827831.038 20827831.431
+ 45.300 45.600
+ -13813498.770 6 -10763762.292 5 21931222.980 21931221.916 21931221.894
+ 41.600 32.800
+ -15283217.545 7 -11909002.902 6 21858189.725 21858188.311 21858188.625
+ 42.400 36.600
+ -4750789.507 4 -3701914.453 3 24029345.960 24029343.860 24029345.161
+ 27.900 23.000
+ -5318248.189 4 -4144086.780 3 23472197.586 23472196.365 23472196.889
+ 29.000 22.600
+ 06 1 2 14 16 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6302602.865 4 -4911125.602 3 23419938.522 23419937.061 23419938.009
+ 26.800 22.600
+ -22115187.233 8 -17232610.130 8 20422630.800 20422626.857 20422628.981
+ 48.900 48.400
+ -22858911.711 7 -17812140.149 7 20821570.856 20821569.485 20821570.012
+ 45.500 45.400
+ -13729971.111 6 -10698675.846 5 21947117.564 21947116.599 21947116.589
+ 41.300 32.800
+ -15368286.068 7 -11975290.072 6 21842001.523 21842000.378 21842000.629
+ 42.500 37.000
+ -4833756.365 4 -3766563.983 4 24013558.106 24013556.111 24013556.886
+ 26.200 24.900
+ -5420255.625 4 -4223573.067 3 23452784.820 23452784.764 23452784.853
+ 28.800 23.000
+ 06 1 2 14 17 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -6199848.137 4 -4831057.040 3 23439491.654 23439490.951 23439491.788
+ 28.400 22.600
+ -22105635.165 8 -17225166.976 8 20424448.534 20424444.601 20424446.784
+ 48.900 48.600
+ -22891370.648 7 -17837432.838 7 20815394.453 20815392.739 20815393.446
+ 45.600 45.500
+ -13646142.654 6 -10633355.004 5 21963070.048 21963068.644 21963068.825
+ 41.300 33.000
+ -15453039.697 7 -12041331.865 6 21825873.549 21825872.330 21825872.511
+ 42.400 37.100
+ -4916658.027 4 -3831162.669 4 23997782.607 23997780.311 23997781.576
+ 26.500 26.500
+ -5522136.013 5 -4302960.366 3 23433398.168 23433397.066 23433398.120
+ 30.800 18.600
+ 06 1 2 14 17 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -6096906.447 4 -4750842.808 3 23459081.425 23459079.991 23459081.105
+ 28.100 22.100
+ -22095553.119 8 -17217310.853 8 20426367.168 20426363.143 20426365.359
+ 49.000 48.400
+ -22923382.391 7 -17862377.070 7 20809302.477 20809301.224 20809301.614
+ 45.600 45.600
+ -13562015.903 6 -10567801.726 5 21979078.132 21979077.607 21979077.344
+ 41.100 32.800
+ -15537475.895 7 -12107126.321 6 21809805.926 21809804.623 21809804.961
+ 43.100 37.200
+ -4999493.479 4 -3895709.757 4 23982019.133 23982017.482 23982018.359
+ 28.100 26.200
+ -5623886.325 4 -4382246.289 3 23414035.243 23414034.130 23414034.917
+ 27.900 18.600
+ 06 1 2 14 18 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5993781.012 4 -4670485.389 4 23478705.784 23478704.332 23478705.244
+ 29.200 24.600
+ -22084942.043 8 -17209042.500 8 20428386.402 20428382.377 20428384.585
+ 49.100 48.400
+ -22954945.367 7 -17886971.608 7 20803296.339 20803295.019 20803295.368
+ 45.400 45.600
+ -13477593.117 6 -10502017.783 5 21995143.853 21995142.604 21995142.917
+ 41.700 32.700
+ -15621592.088 7 -12172671.417 6 21793798.627 21793797.971 21793797.783
+ 42.000 37.700
+ -5082262.212 4 -3960204.860 4 23966268.808 23966267.129 23966267.757
+ 28.600 24.900
+ -5725504.028 4 -4461428.894 3 23394699.475 23394697.268 23394697.940
+ 26.200 21.100
+ 06 1 2 14 18 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5890474.887 4 -4589987.173 4 23498364.343 23498363.149 23498363.975
+ 29.200 25.600
+ -22073802.743 8 -17200362.544 8 20430506.159 20430502.125 20430504.374
+ 49.200 48.400
+ -22986057.371 7 -17911214.742 7 20797375.987 20797374.517 20797375.035
+ 45.600 45.600
+ -13392876.575 6 -10436004.930 5 22011264.900 22011263.804 22011263.829
+ 41.300 32.700
+ -15705385.909 7 -12237965.297 6 21777853.376 21777852.576 21777852.391
+ 42.400 37.700
+ -5164964.053 4 -4024647.868 3 23950531.006 23950529.195 23950530.215
+ 28.800 23.000
+ -5826986.063 4 -4540505.719 3 23375388.756 23375386.649 23375387.315
+ 28.800 21.100
+ 06 1 2 14 19 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5786991.424 4 -4509350.771 3 23518055.946 23518055.409 23518055.569
+ 27.600 23.400
+ -22062136.420 8 -17191271.917 8 20432726.204 20432722.229 20432724.448
+ 49.400 48.500
+ -23016717.032 7 -17935105.403 7 20791541.655 20791540.222 20791540.684
+ 45.400 45.500
+ -13307868.547 6 -10369764.947 5 22027441.361 22027440.341 22027440.321
+ 41.700 32.700
+ -15788854.590 7 -12303005.843 6 21761969.790 21761968.917 21761968.873
+ 42.600 37.700
+ -5247598.736 4 -4089038.552 3 23934806.196 23934804.176 23934805.423
+ 29.500 22.600
+ -5928329.488 4 -4619474.622 3 23356103.385 23356101.316 23356102.196
+ 29.000 23.800
+ 06 1 2 14 19 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5683333.932 4 -4428578.776 3 23537781.798 23537780.746 23537781.304
+ 25.600 23.400
+ -22049944.126 8 -17181771.449 8 20435046.499 20435042.285 20435044.620
+ 49.200 48.200
+ -23046922.923 7 -17958642.473 7 20785793.499 20785792.288 20785792.548
+ 45.400 45.600
+ -13222571.666 6 -10303299.885 5 22043672.820 22043671.748 22043671.779
+ 40.900 33.000
+ -15871995.411 7 -12367790.906 6 21746148.953 21746147.743 21746148.025
+ 43.100 37.600
+ -5330165.819 4 -4153376.541 4 23919094.546 23919092.423 23919093.624
+ 28.800 24.900
+ -6029531.591 5 -4698333.402 3 23336843.030 23336843.352 23336843.437
+ 30.200 23.000
+ 06 1 2 14 20 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5579505.385 4 -4347673.495 3 23557539.142 23557538.599 23557538.788
+ 26.500 22.100
+ -22037226.757 8 -17171861.827 8 20437466.517 20437462.391 20437464.691
+ 49.300 48.300
+ -23076673.385 7 -17981824.661 7 20780132.336 20780130.949 20780131.350
+ 45.500 45.700
+ -13136988.378 6 -10236611.652 5 22059958.775 22059957.888 22059957.945
+ 41.400 32.800
+ -15954806.122 7 -12432318.748 6 21730390.680 21730389.327 21730389.637
+ 43.000 37.600
+ -5412664.617 4 -4217661.314 4 23903395.760 23903393.403 23903394.765
+ 27.900 25.300
+ -6130589.495 4 -4777079.759 3 23317612.421 23317611.764 23317612.512
+ 29.000 22.100
+ 06 1 2 14 20 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5475508.820 4 -4266637.281 3 23577329.504 23577328.063 23577329.237
+ 25.900 21.100
+ -22023985.418 8 -17161543.921 8 20439986.342 20439982.191 20439984.513
+ 49.500 48.300
+ -23105966.661 7 -18004650.607 7 20774558.078 20774556.572 20774557.118
+ 45.500 45.500
+ -13051120.983 6 -10169702.038 5 22076298.698 22076297.831 22076297.772
+ 41.000 32.600
+ -16037283.845 7 -12496587.117 6 21714695.651 21714694.517 21714694.594
+ 42.900 37.800
+ -5495095.027 4 -4281892.790 3 23887708.986 23887707.090 23887708.204
+ 26.500 23.400
+ -6231499.968 4 -4855711.255 3 23298409.592 23298409.663 23298409.524
+ 28.400 23.400
+ 06 1 2 14 21 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5371347.553 4 -4185472.725 3 23597150.712 23597149.900 23597150.611
+ 27.900 23.000
+ -22010221.303 8 -17150818.651 8 20442605.626 20442601.501 20442603.778
+ 49.600 48.300
+ -23134801.482 7 -18027119.313 7 20769071.144 20769069.464 20769070.099
+ 45.500 45.500
+ -12964971.696 6 -10102572.760 5 22092692.678 22092691.518 22092691.713
+ 41.000 32.400
+ -16119426.041 7 -12560594.027 6 21699064.206 21699063.498 21699063.227
+ 42.800 38.100
+ -5577456.423 4 -4346070.498 3 23872036.725 23872034.615 23872035.715
+ 28.100 23.800
+ -6332260.177 4 -4934225.669 4 23279236.797 23279235.713 23279235.882
+ 28.800 24.600
+ 06 1 2 14 21 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5267025.008 4 -4104182.475 3 23617002.293 23617001.925 23617002.156
+ 26.200 21.100
+ -21995935.340 8 -17139686.744 8 20445323.966 20445319.951 20445322.197
+ 49.500 48.400
+ -23163175.788 7 -18049229.178 7 20763671.507 20763670.120 20763670.572
+ 45.500 45.600
+ -12878543.188 6 -10035225.915 5 22109139.591 22109138.496 22109138.458
+ 40.400 32.600
+ -16201230.403 7 -12624337.688 6 21683497.393 21683496.488 21683496.472
+ 42.800 37.700
+ -5659748.637 4 -4410194.295 3 23856377.136 23856374.952 23856376.138
+ 29.200 23.000
+ -6432867.684 4 -5012621.080 4 23260092.990 23260090.377 23260091.632
+ 28.100 25.600
+ 06 1 2 14 22 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -5162544.160 4 -4022768.903 3 23636884.774 23636883.490 23636884.525
+ 26.500 18.600
+ -21981129.002 8 -17128149.352 8 20448141.562 20448137.486 20448139.769
+ 49.500 48.200
+ -23191088.142 7 -18070979.076 7 20758360.020 20758358.654 20758359.036
+ 45.300 45.600
+ -12791837.778 6 -9967663.299 5 22125638.701 22125638.241 22125637.901
+ 40.600 32.700
+ -16282693.808 7 -12687815.677 6 21667995.522 21667994.370 21667994.663
+ 43.400 38.100
+ -5741971.039 4 -4474263.709 4 23840730.329 23840728.522 23840729.463
+ 29.900 24.200
+ -6533319.239 4 -5090894.986 4 23240977.114 23240975.223 23240975.985
+ 29.700 25.300
+ 06 1 2 14 22 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -5057908.293 4 -3941234.531 3 23656796.539 23656795.545 23656796.289
+ 26.500 21.600
+ -21965802.951 8 -17116206.991 8 20451057.917 20451053.931 20451056.171
+ 49.500 48.300
+ -23218537.094 7 -18092367.884 7 20753136.536 20753135.275 20753135.602
+ 45.200 45.700
+ -12704857.920 6 -9899886.827 5 22142190.816 22142189.617 22142189.723
+ 39.800 32.300
+ -16363813.520 7 -12751025.849 6 21652559.002 21652558.031 21652558.005
+ 43.300 38.400
+ -5824123.038 4 -4538278.257 4 23825097.879 23825095.837 23825096.747
+ 29.700 25.600
+ -6633611.969 5 -5169045.110 4 23221891.445 23221890.045 23221890.866
+ 31.500 24.200
+ 06 1 2 14 23 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4953120.662 4 -3859581.897 3 23676736.492 23676736.401 23676736.195
+ 26.200 22.100
+ -21949958.350 8 -17103860.563 8 20454073.006 20454069.172 20454071.219
+ 49.300 48.200
+ -23245521.051 7 -18113394.355 7 20748001.720 20748000.379 20748000.763
+ 45.300 45.700
+ -12617605.697 6 -9831898.139 5 22158794.398 22158793.722 22158793.376
+ 40.400 32.700
+ -16444587.315 7 -12813966.481 6 21637188.454 21637187.057 21637187.419
+ 43.700 38.200
+ -5906204.557 4 -4602237.866 4 23809477.477 23809476.085 23809476.661
+ 29.200 25.900
+ -6733742.929 5 -5247069.192 3 23202836.663 23202836.170 23202836.359
+ 30.400 23.800
+ 06 1 2 14 23 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4848184.233 4 -3777813.321 3 23696705.929 23696704.748 23696705.530
+ 27.100 21.600
+ -21933596.358 8 -17091110.975 8 20457186.748 20457182.811 20457184.922
+ 49.500 48.200
+ -23272038.602 7 -18134057.394 7 20742955.553 20742954.320 20742954.633
+ 45.300 45.800
+ -12530083.642 6 -9763699.162 5 22175449.004 22175448.546 22175448.172
+ 40.300 32.000
+ -16525012.482 7 -12876635.455 6 21621883.929 21621882.824 21621882.961
+ 43.800 38.500
+ -5988214.926 4 -4666142.043 4 23793871.387 23793869.700 23793870.352
+ 28.600 25.600
+ -6833709.412 4 -5324965.113 4 23183813.332 23183812.844 23183813.133
+ 29.200 24.600
+ 06 1 2 14 24 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4743102.440 4 -3695931.463 3 23716702.036 23716701.866 23716701.779
+ 26.800 23.000
+ -21916718.558 8 -17077959.459 8 20460398.568 20460394.625 20460396.718
+ 49.600 48.400
+ -23298088.126 7 -18154355.736 7 20737998.420 20737997.290 20737997.527
+ 45.400 45.800
+ -12442294.055 6 -9695291.738 5 22192155.071 22192154.295 22192154.126
+ 40.200 32.100
+ -16605086.185 7 -12939030.546 6 21606646.185 21606645.327 21606645.335
+ 43.800 38.200
+ -6070153.843 5 -4729990.542 4 23778279.406 23778277.411 23778278.383
+ 30.100 25.300
+ -6933508.425 4 -5402730.535 3 23164823.000 23164821.598 23164822.247
+ 29.900 22.100
+ 06 1 2 14 24 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4637878.242 3 -3613938.665 3 23736725.996 23736724.933 23736725.364
+ 23.400 20.500
+ -21899325.988 8 -17064406.824 8 20463708.229 20463704.281 20463706.483
+ 49.600 48.400
+ -23323667.922 7 -18174288.058 7 20733130.974 20733129.620 20733130.018
+ 45.400 45.600
+ -12354239.319 6 -9626677.688 5 22208911.212 22208910.252 22208910.289
+ 40.000 31.500
+ -16684805.876 7 -13001149.796 6 21591475.802 21591474.825 21591474.969
+ 43.600 37.900
+ -6152020.672 5 -4793782.894 4 23762701.211 23762698.658 23762700.186
+ 30.800 25.600
+ -7033137.029 4 -5480363.199 3 23145865.444 23145862.499 23145863.840
+ 29.900 22.600
+ 06 1 2 14 25 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4532514.863 4 -3531837.423 2 23756775.603 23756774.492 23756775.324
+ 25.300 17.000
+ -21881419.523 8 -17050453.751 8 20467115.655 20467111.802 20467113.869
+ 49.400 48.300
+ -23348776.882 7 -18193853.499 7 20728352.751 20728351.493 20728351.906
+ 45.500 45.700
+ -12265921.894 6 -9557858.961 5 22225717.832 22225716.741 22225716.801
+ 40.200 30.600
+ -16764169.258 7 -13062991.394 6 21576373.891 21576372.816 21576372.896
+ 43.800 38.800
+ -6233815.211 4 -4857518.895 4 23747135.803 23747133.698 23747134.847
+ 28.600 25.900
+ -7132592.280 5 -5557860.756 4 23126938.744 23126937.376 23126937.818
+ 31.300 24.600
+ 06 1 2 14 25 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4427015.479 4 -3449630.153 3 23776851.698 23776851.039 23776851.306
+ 26.200 19.300
+ -21863000.853 8 -17036101.553 8 20470620.573 20470616.726 20470618.729
+ 49.400 48.200
+ -23373413.085 7 -18213050.557 7 20723664.769 20723663.399 20723663.850
+ 45.500 45.800
+ -12177344.010 6 -9488837.260 5 22242573.334 22242572.649 22242572.525
+ 40.300 31.100
+ -16843173.523 7 -13124553.165 6 21561339.859 21561338.811 21561338.840
+ 43.800 39.100
+ -6315536.919 4 -4921198.142 4 23731584.752 23731582.464 23731583.759
+ 29.200 25.300
+ -7231871.372 5 -5635221.067 4 23108045.527 23108045.093 23108045.385
+ 31.600 25.600
+ 06 1 2 14 26 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4321383.223 3 -3367319.383 3 23796952.418 23796952.347 23796952.237
+ 23.800 21.100
+ -21844070.890 8 -17021350.949 8 20474222.823 20474219.020 20474220.994
+ 49.200 48.200
+ -23397574.926 7 -18231877.974 7 20719066.852 20719065.580 20719065.984
+ 45.200 45.700
+ -12088508.130 6 -9419614.524 5 22259478.412 22259477.545 22259477.443
+ 39.700 30.800
+ -16921816.120 7 -13185833.110 6 21546374.982 21546373.741 21546373.800
+ 43.900 39.100
+ -6397185.492 4 -4984820.406 4 23716046.946 23716045.357 23716046.176
+ 29.200 24.600
+ -7330971.460 5 -5712441.882 3 23089188.119 23089186.629 23089187.488
+ 31.000 23.800
+ 06 1 2 14 26 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4215621.441 4 -3284907.655 3 23817079.082 23817077.838 23817078.652
+ 25.600 19.900
+ -21824630.692 8 -17006202.760 8 20477922.152 20477918.325 20477920.337
+ 49.200 48.100
+ -23421261.252 7 -18250334.864 7 20714559.586 20714558.203 20714558.577
+ 45.100 45.800
+ -11999416.642 6 -9350192.613 5 22276432.216 22276430.937 22276431.216
+ 39.900 30.600
+ -17000094.284 7 -13246829.081 6 21531478.743 21531477.996 21531477.799
+ 43.900 39.300
+ -6478760.031 5 -5048385.002 3 23700524.771 23700522.021 23700523.838
+ 31.300 23.400
+ -7429889.432 5 -5789520.802 4 23070364.708 23070363.518 23070363.747
+ 30.800 25.300
+ 06 1 2 14 27 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -4109732.918 4 -3202397.199 3 23837228.884 23837228.262 23837228.459
+ 24.900 22.100
+ -21804681.984 8 -16990658.325 8 20481718.360 20481714.471 20481716.459
+ 49.300 48.000
+ -23444470.632 7 -18268420.110 7 20710142.778 20710141.599 20710141.809
+ 45.000 45.700
+ -11910071.666 6 -9280573.188 5 22293433.427 22293432.999 22293432.552
+ 39.100 31.100
+ -17078005.405 7 -13307539.043 6 21516652.860 21516651.723 21516651.849
+ 44.000 38.700
+ -6560260.530 5 -5111891.911 4 23685015.484 23685012.980 23685014.537
+ 31.000 24.200
+ -7528622.527 4 -5866455.660 3 23051576.408 23051574.785 23051575.317
+ 29.700 23.800
+ 06 1 2 14 27 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -4003721.055 4 -3119790.604 4 23857401.237 23857401.727 23857401.139
+ 25.900 24.600
+ -21784225.847 8 -16974718.495 8 20485611.001 20485607.179 20485609.219
+ 49.400 48.100
+ -23467201.640 7 -18286132.598 7 20705817.374 20705816.018 20705816.415
+ 45.200 45.600
+ -11820475.596 6 -9210758.097 5 22310483.511 22310482.569 22310482.486
+ 39.600 31.500
+ -17155546.799 7 -13367960.917 6 21501897.104 21501896.051 21501896.167
+ 44.300 38.700
+ -6641686.286 5 -5175340.561 4 23669520.341 23669518.373 23669519.566
+ 30.400 24.200
+ -7627167.790 4 -5943244.166 4 23032823.671 23032822.502 23032822.791
+ 29.200 24.900
+ 06 1 2 14 28 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3897589.102 4 -3037090.483 3 23877599.049 23877598.013 23877598.677
+ 26.800 23.400
+ -21763263.314 8 -16958384.066 8 20489600.052 20489596.292 20489598.294
+ 49.600 48.200
+ -23489452.593 7 -18303471.016 7 20701583.199 20701581.841 20701582.334
+ 45.300 45.800
+ -11730630.605 6 -9140749.047 5 22327579.798 22327579.537 22327579.126
+ 39.000 30.600
+ -17232716.095 7 -13428092.831 6 21487212.468 21487211.481 21487211.480
+ 44.400 39.200
+ -6723037.013 4 -5238730.764 4 23654039.686 23654037.747 23654038.581
+ 29.900 25.900
+ -7725522.431 5 -6019884.109 4 23014106.827 23014106.179 23014106.533
+ 30.600 24.600
+ 06 1 2 14 28 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3791340.128 3 -2954299.161 3 23897816.428 23897816.717 23897816.331
+ 23.400 21.600
+ -21741796.134 8 -16941656.414 7 20493685.285 20493681.376 20493683.508
+ 49.500 47.900
+ -23511222.333 7 -18320434.465 7 20697440.643 20697439.221 20697439.655
+ 45.200 45.700
+ -11640538.934 6 -9070547.793 5 22344724.445 22344723.893 22344723.363
+ 38.800 31.600
+ -17309510.322 7 -13487932.499 6 21472598.899 21472597.850 21472597.905
+ 44.400 38.900
+ -6804312.107 5 -5302062.011 4 23638573.829 23638571.906 23638572.971
+ 31.100 28.400
+ -7823683.363 5 -6096373.121 4 22995427.824 22995426.712 22995427.280
+ 31.300 25.600
+ 06 1 2 14 29 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3684977.297 3 -2871419.106 3 23918056.932 23918056.567 23918056.732
+ 21.600 20.500
+ -21719825.471 8 -16924536.433 7 20497866.228 20497862.308 20497864.445
+ 49.600 47.900
+ -23532509.174 7 -18337021.631 7 20693389.917 20693388.578 20693388.907
+ 44.900 45.800
+ -11550203.164 6 -9000156.315 5 22361914.184 22361913.752 22361913.281
+ 38.400 30.600
+ -17385927.092 7 -13547478.034 6 21458057.398 21458056.387 21458056.371
+ 44.400 39.300
+ -6885511.170 5 -5365334.012 4 23623121.852 23623120.306 23623121.047
+ 31.100 28.800
+ -7921647.728 5 -6172708.958 4 22976786.495 22976784.768 22976785.483
+ 32.400 25.300
+ 06 1 2 14 29 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3578503.842 3 -2788452.896 3 23938318.076 23938317.930 23938317.741
+ 23.000 18.600
+ -21697352.596 8 -16907025.120 8 20502142.646 20502138.717 20502140.772
+ 49.500 48.000
+ -23553311.996 7 -18353231.634 7 20689431.043 20689430.002 20689430.117
+ 44.900 46.000
+ -11459625.529 6 -8929576.370 5 22379150.690 22379150.355 22379149.849
+ 38.800 30.800
+ -17461963.690 7 -13606727.335 6 21443587.997 21443587.018 21443587.013
+ 44.400 39.200
+ -6966633.711 4 -5428546.379 4 23607685.005 23607683.264 23607683.924
+ 29.500 28.800
+ -8019412.737 5 -6248889.470 4 22958181.683 22958180.392 22958181.019
+ 31.800 24.600
+ 06 1 2 14 30 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3471922.907 4 -2705402.848 2 23958600.176 23958599.134 23958599.978
+ 25.300 17.800
+ -21674378.943 8 -16889123.594 7 20506514.357 20506510.481 20506512.533
+ 49.400 47.900
+ -23573629.294 7 -18369063.307 7 20685564.834 20685563.745 20685563.893
+ 44.900 45.900
+ -11368808.549 6 -8858809.923 4 22396432.763 22396432.058 22396431.750
+ 38.600 29.700
+ -17537617.566 7 -13665678.406 6 21429191.798 21429190.395 21429190.751
+ 44.700 39.300
+ -7047679.249 4 -5491698.736 4 23592262.215 23592260.622 23592261.023
+ 29.000 27.100
+ -8116975.296 5 -6324912.208 4 22939615.710 22939615.015 22939615.434
+ 32.000 24.900
+ 06 1 2 14 30 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3365237.439 4 -2622271.405 2 23978902.079 23978900.709 23978901.902
+ 25.600 15.100
+ -21650905.886 8 -16870832.920 8 20510981.235 20510977.322 20510979.330
+ 49.600 48.000
+ -23593459.826 7 -18384515.687 7 20681791.310 20681790.083 20681790.345
+ 44.900 46.100
+ -11277754.402 6 -8787858.675 5 22413759.497 22413759.267 22413758.896
+ 38.400 31.000
+ -17612885.995 7 -13724329.143 6 21414868.680 21414867.437 21414867.761
+ 45.300 39.600
+ -7128647.056 5 -5554790.538 4 23576854.364 23576853.018 23576853.415
+ 30.200 27.100
+ -8214332.567 5 -6400774.971 4 22921089.110 22921088.524 22921088.780
+ 32.300 27.100
+ 06 1 2 14 31 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3258450.707 4 -2539061.011 2 23999223.048 23999221.720 23999222.745
+ 25.600 17.000
+ -21626934.736 8 -16852154.123 7 20515542.706 20515538.866 20515540.844
+ 49.500 47.800
+ -23612801.939 7 -18399587.475 7 20678110.492 20678109.530 20678109.601
+ 44.800 46.000
+ -11186465.432 6 -8716724.456 5 22431131.798 22431130.826 22431130.761
+ 39.000 30.200
+ -17687766.826 7 -13782677.851 6 21400619.366 21400618.050 21400618.407
+ 45.200 39.500
+ -7209537.134 5 -5617821.792 4 23561462.114 23561459.907 23561461.113
+ 30.600 26.200
+ -8311481.720 5 -6476475.590 4 22902603.315 22902601.831 22902602.467
+ 33.200 26.500
+ 06 1 2 14 31 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -3151565.703 4 -2455774.061 2 24019562.458 24019561.792 24019562.073
+ 27.400 17.800
+ -21602466.614 8 -16833088.071 7 20520198.858 20520195.024 20520197.036
+ 49.700 47.800
+ -23631654.432 7 -18414277.743 7 20674523.219 20674521.944 20674522.195
+ 44.900 46.000
+ -11094943.958 6 -8645409.045 5 22448547.401 22448546.883 22448546.536
+ 38.500 30.800
+ -17762257.184 7 -13840722.293 6 21386444.258 21386443.042 21386443.120
+ 44.800 39.700
+ -7290348.578 5 -5680791.750 4 23546083.990 23546082.120 23546083.022
+ 30.400 25.600
+ -8408419.797 5 -6552011.741 4 22884156.346 22884154.805 22884155.331
+ 32.100 24.900
+ 06 1 2 14 32 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -3044585.601 4 -2372413.011 2 24039920.618 24039919.478 24039920.212
+ 25.900 16.100
+ -21577503.067 8 -16813635.976 7 20524949.364 20524945.404 20524947.548
+ 49.500 47.600
+ -23650016.265 7 -18428585.682 7 20671029.149 20671027.730 20671028.202
+ 45.000 45.800
+ -11003192.113 6 -8573914.135 4 22466007.596 22466006.629 22466006.771
+ 39.300 29.700
+ -17836354.163 7 -13898460.193 6 21372343.812 21372342.957 21372342.948
+ 44.600 40.100
+ -7371081.376 5 -5743700.434 3 23530720.904 23530718.791 23530719.934
+ 30.600 23.800
+ -8505143.962 5 -6627381.200 4 22865749.578 22865748.628 22865749.267
+ 31.300 24.900
+ 06 1 2 14 32 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2937513.836 4 -2288980.551 3 24060294.902 24060294.774 24060294.644
+ 25.600 19.300
+ -21552045.753 8 -16793799.131 7 20529793.726 20529789.783 20529791.863
+ 49.300 47.600
+ -23667885.933 7 -18442510.110 7 20667628.735 20667627.282 20667627.808
+ 45.100 45.900
+ -10911212.239 6 -8502241.529 4 22483510.771 22483509.715 22483509.854
+ 38.800 29.000
+ -17910055.258 7 -13955889.630 6 21358319.154 21358317.976 21358318.140
+ 44.900 39.700
+ -7451734.789 5 -5806547.285 3 23515373.038 23515370.510 23515371.959
+ 31.000 23.000
+ -8601651.173 5 -6702581.575 4 22847383.958 22847384.262 22847384.319
+ 31.100 25.900
+ 06 1 2 14 33 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2830353.359 4 -2205478.957 2 24080687.120 24080686.944 24080686.788
+ 24.200 16.100
+ -21526096.111 8 -16773578.650 7 20534731.642 20534727.767 20534729.857
+ 49.300 47.600
+ -23685262.035 7 -18456049.943 7 20664322.166 20664320.751 20664321.255
+ 45.400 46.000
+ -10819006.685 6 -8430393.083 5 22501057.127 22501056.318 22501056.048
+ 38.700 30.400
+ -17983358.021 7 -14013008.667 6 21344370.097 21344368.974 21344369.060
+ 44.900 40.000
+ -7532308.236 5 -5869331.811 4 23500040.775 23500038.662 23500039.751
+ 30.800 26.200
+ -8697938.635 5 -6777610.727 4 22829062.596 22829061.290 22829061.609
+ 31.100 26.500
+ 06 1 2 14 33 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2723107.151 4 -2121910.513 2 24101096.129 24101094.865 24101095.656
+ 25.600 17.000
+ -21499655.250 8 -16752975.400 7 20539763.235 20539759.361 20539761.438
+ 49.400 47.600
+ -23702143.155 7 -18469204.078 7 20661109.677 20661108.481 20661108.784
+ 45.000 46.100
+ -10726577.569 6 -8358370.423 5 22518645.302 22518644.871 22518644.643
+ 38.100 30.100
+ -18056259.581 7 -14069815.086 6 21330497.413 21330496.185 21330496.395
+ 45.000 40.000
+ -7612801.299 5 -5932053.674 4 23484723.460 23484721.694 23484722.323
+ 30.800 27.600
+ -8794003.288 5 -6852466.267 4 22810782.775 22810780.838 22810781.516
+ 32.600 27.100
+ 06 1 2 14 34 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2615778.234 3 -2038277.663 3 24121520.327 24121519.555 24121519.774
+ 22.600 21.600
+ -21472724.795 8 -16731990.646 7 20544888.039 20544884.117 20544886.117
+ 49.100 47.500
+ -23718528.250 7 -18481971.696 7 20657991.802 20657990.517 20657990.828
+ 44.900 46.000
+ -10633927.025 6 -8286175.236 4 22536276.383 22536275.632 22536275.410
+ 37.400 29.500
+ -18128757.526 7 -14126306.992 6 21316701.343 21316700.410 21316700.358
+ 45.100 40.200
+ -7693213.501 5 -5994712.501 4 23469421.591 23469420.383 23469420.677
+ 31.500 29.700
+ -8889842.387 5 -6927146.063 4 22792543.099 22792542.913 22792543.365
+ 33.200 26.500
+ 06 1 2 14 34 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2508369.711 3 -1954582.826 3 24141957.377 24141959.300 24141957.964
+ 18.600 23.000
+ -21445306.138 8 -16710625.478 7 20550105.596 20550101.800 20550103.712
+ 49.200 47.400
+ -23734416.030 7 -18494351.795 7 20654968.307 20654967.094 20654967.369
+ 45.000 46.000
+ -10541057.638 6 -8213809.504 4 22553949.045 22553948.318 22553948.006
+ 37.900 29.500
+ -18200849.454 7 -14182482.533 6 21302982.999 21302981.834 21302981.974
+ 45.600 40.400
+ -7773544.171 5 -6057307.817 4 23454134.848 23454133.368 23454133.915
+ 32.000 28.600
+ -8985453.184 5 -7001647.943 4 22774349.394 22774348.747 22774349.282
+ 33.200 26.500
+ 06 1 2 14 35 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2400885.085 3 -1870828.706 3 24162411.345 24162412.919 24162411.793
+ 19.900 23.400
+ -21417400.999 8 -16688881.231 7 20555415.517 20555411.939 20555413.763
+ 49.100 47.400
+ -23749805.505 7 -18506343.610 7 20652039.770 20652038.544 20652038.874
+ 44.800 45.900
+ -10447971.730 6 -8141275.073 4 22571661.940 22571661.552 22571661.145
+ 37.000 28.600
+ -18272532.464 7 -14238339.429 6 21289342.133 21289341.075 21289341.117
+ 45.700 40.400
+ -7853793.031 5 -6119839.381 4 23438863.777 23438862.436 23438862.969
+ 32.100 28.400
+ -9080832.612 5 -7075969.548 4 22756200.735 22756198.842 22756199.501
+ 32.700 26.500
+ 06 1 2 14 35 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2293327.260 3 -1787017.496 3 24182879.517 24182879.751 24182879.295
+ 19.900 22.100
+ -21389010.522 8 -16666758.796 7 20560818.136 20560814.483 20560816.336
+ 49.000 47.200
+ -23764695.218 7 -18517945.996 7 20649206.090 20649205.145 20649205.265
+ 44.600 45.900
+ -10354671.485 6 -8068573.592 4 22589417.435 22589415.963 22589416.312
+ 37.300 28.100
+ -18343804.084 7 -14293875.768 6 21275779.578 21275778.383 21275778.618
+ 46.000 40.400
+ -7933959.532 5 -6182306.790 4 23423609.424 23423606.919 23423608.241
+ 32.800 28.400
+ -9175977.679 5 -7150108.536 4 22738095.200 22738092.995 22738094.055
+ 33.200 25.900
+ 06 1 2 14 36 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -2185699.282 3 -1703151.648 3 24203361.929 24203361.100 24203361.375
+ 23.800 21.100
+ -21360136.337 8 -16644259.451 7 20566312.666 20566309.060 20566310.914
+ 48.900 47.200
+ -23779083.584 7 -18529157.721 7 20646468.350 20646467.196 20646467.383
+ 44.900 45.900
+ -10261158.979 6 -7995706.729 4 22607211.309 22607211.480 22607210.546
+ 36.900 29.900
+ -18414661.847 7 -14349089.617 6 21262295.507 21262294.648 21262294.615
+ 45.600 40.600
+ -8014043.004 5 -6244709.478 4 23408368.874 23408367.908 23408368.207
+ 32.700 28.800
+ -9270885.584 5 -7224062.717 4 22720033.027 22720032.878 22720033.272
+ 33.500 27.100
+ 06 1 2 14 36 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -2078004.274 3 -1619233.539 3 24223854.247 24223854.908 24223854.425
+ 22.600 20.500
+ -21330780.221 8 -16621384.568 7 20571898.918 20571895.413 20571897.188
+ 48.900 47.200
+ -23792969.669 7 -18539978.059 7 20643825.958 20643824.816 20643825.012
+ 44.800 46.100
+ -10167436.392 6 -7922676.177 4 22625046.951 22625045.533 22625045.874
+ 37.900 27.600
+ -18485102.976 7 -14403978.819 6 21248891.193 21248890.161 21248890.213
+ 45.600 40.500
+ -8094043.151 5 -6307047.250 4 23393146.118 23393144.132 23393144.990
+ 32.000 27.400
+ -9365553.473 5 -7297829.853 4 22702018.912 22702018.165 22702018.541
+ 33.900 27.400
+ 06 1 2 14 37 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -1970245.254 4 -1535265.548 2 24244361.354 24244360.689 24244360.865
+ 26.800 17.800
+ -21300943.169 8 -16598134.932 7 20577576.714 20577573.189 20577574.955
+ 48.800 47.200
+ -23806352.479 7 -18550406.234 7 20641279.116 20641278.194 20641278.292
+ 44.800 46.200
+ -10073506.203 6 -7849483.842 4 22642921.149 22642920.436 22642920.160
+ 38.100 28.100
+ -18555125.243 7 -14458541.631 6 21235566.337 21235565.335 21235565.283
+ 45.600 40.700
+ -8173959.307 5 -6369319.584 4 23377938.290 23377936.536 23377937.306
+ 31.800 27.400
+ -9459978.685 5 -7371407.918 4 22684051.395 22684049.583 22684050.024
+ 32.400 27.900
+ 06 1 2 14 37 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -1862425.338 4 -1451250.091 2 24264879.278 24264877.830 24264878.797
+ 26.800 15.100
+ -21270627.323 8 -16574512.214 7 20583345.644 20583342.152 20583343.882
+ 48.700 46.900
+ -23819230.958 7 -18560441.423 7 20638828.648 20638827.425 20638827.701
+ 44.900 46.000
+ -9979370.622 6 -7776131.446 4 22660834.259 22660834.019 22660833.377
+ 37.000 29.000
+ -18624725.881 7 -14512775.904 6 21222321.806 21222320.757 21222320.794
+ 45.600 40.700
+ -8253790.780 5 -6431525.922 4 23362747.036 23362745.589 23362746.081
+ 31.800 28.400
+ -9554157.825 5 -7444794.227 4 22666128.623 22666127.774 22666128.182
+ 33.600 26.500
+ 06 1 2 14 38 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -1754547.539 4 -1367189.504 1 24285406.610 24285406.040 24285406.500
+ 24.200 11.000
+ -21239834.020 8 -16550517.444 7 20589205.437 20589201.902 20589203.648
+ 48.800 46.800
+ -23831603.814 7 -18570082.623 7 20636474.263 20636472.921 20636473.266
+ 44.700 46.000
+ -9885031.721 6 -7702620.659 4 22678786.681 22678785.884 22678785.666
+ 37.300 27.900
+ -18693902.287 7 -14566679.603 6 21209157.948 21209157.032 21209156.981
+ 45.800 41.100
+ -8333537.208 5 -6493665.979 4 23347571.723 23347570.058 23347570.741
+ 32.100 28.800
+ -9648088.401 5 -7517986.848 4 22648253.893 22648253.291 22648253.676
+ 33.400 26.800
+ 06 1 2 14 38 30.0000000 0 7G13G19G27G 3G 8G28G11
+ -1646615.007 3 -1283086.306 2 24305945.603 24305945.934 24305945.452
+ 22.100 17.800
+ -21208564.498 8 -16526151.598 7 20595156.014 20595152.252 20595154.253
+ 49.100 46.800
+ -23843469.683 7 -18579328.769 7 20634216.347 20634215.051 20634215.363
+ 44.800 46.100
+ -9790491.710 6 -7628953.117 4 22696776.745 22696776.274 22696775.863
+ 36.400 28.600
+ -18762651.768 7 -14620250.636 6 21196075.559 21196074.585 21196074.510
+ 45.900 41.100
+ -8413198.057 5 -6555739.361 4 23332412.623 23332411.030 23332411.595
+ 32.400 28.800
+ -9741767.389 5 -7590983.416 4 22630427.747 22630426.880 22630427.209
+ 34.100 27.900
+ 06 1 2 14 39 0.0000000 0 7G13G19G27G 3G 8G28G11
+ -1538630.958 3 -1198942.965 2 24326493.955 24326494.291 24326493.742
+ 20.500 12.600
+ -21176820.702 8 -16501416.189 7 20601196.784 20601192.857 20601194.969
+ 49.200 46.600
+ -23854827.830 7 -18588179.288 7 20632054.811 20632053.751 20632053.855
+ 44.800 46.100
+ -9695752.719 6 -7555130.565 4 22714804.769 22714804.739 22714803.952
+ 36.700 29.000
+ -18830971.493 7 -14673486.796 6 21183074.789 21183073.663 21183073.708
+ 46.100 41.100
+ -8492772.742 5 -6617745.594 4 23317270.130 23317268.167 23317269.199
+ 32.000 27.900
+ -9835192.008 5 -7663781.774 4 22612650.147 22612648.716 22612649.418
+ 34.300 27.600
+ 06 1 2 14 39 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1430598.244 3 -1114761.712 2 24347052.562 24347052.335 24347052.023
+ 20.500 16.100
+ -21144604.114 8 -16476312.369 7 20607327.408 20607323.492 20607325.577
+ 49.300 46.600
+ -23865676.803 7 -18596633.050 7 20629990.233 20629989.271 20629989.338
+ 44.800 46.100
+ -9600817.025 6 -7481154.726 4 22732871.009 22732870.241 22732869.978
+ 36.400 27.600
+ -74800.875 2 -58286.228 2 24774415.712 24774414.657 24774414.859
+ 17.800 17.800
+ -18898859.352 7 -14726386.436 6 21170156.002 21170154.947 21170155.051
+ 45.800 41.000
+ -8572260.985 5 -6679684.493 4 23302144.171 23302142.066 23302143.203
+ 32.600 27.400
+ -9928359.205 5 -7736379.550 4 22594920.767 22594919.489 22594920.232
+ 34.300 27.600
+ 06 1 2 14 40 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1322519.803 2 -1030544.800 2 24367619.048 24367619.124 24367619.135
+ 17.000 17.000
+ -21111916.177 8 -16450841.264 7 20613547.648 20613543.883 20613545.876
+ 49.200 46.600
+ -23876015.893 7 -18604689.500 7 20628022.652 20628021.858 20628021.867
+ 44.800 46.100
+ -9505687.085 5 -7407027.525 4 22750973.526 22750973.229 22750972.678
+ 35.900 28.600
+ -130371.400 3 -101587.950 3 24763840.754 24763841.189 24763839.884
+ 19.300 20.500
+ -18966312.775 7 -14778947.555 6 21157320.108 21157318.858 21157319.091
+ 45.900 40.600
+ -8651662.103 5 -6741555.485 4 23287034.519 23287032.669 23287033.663
+ 33.100 27.900
+ -10021266.136 5 -7808774.543 4 22577241.739 22577239.454 22577240.673
+ 33.500 27.400
+ 06 1 2 14 40 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1214398.802 2 -946294.812 2 24388193.910 24388194.617 24388193.395
+ 12.600 17.000
+ -21078758.866 8 -16425004.414 7 20619857.283 20619853.504 20619855.427
+ 49.300 46.600
+ -23885843.671 7 -18612347.526 7 20626152.670 20626151.688 20626151.759
+ 44.800 46.200
+ -9410364.971 5 -7332750.586 4 22769112.163 22769112.224 22769111.379
+ 35.900 28.100
+ -185485.742 4 -144534.229 3 24753353.899 24753352.098 24753352.983
+ 25.600 21.100
+ -19033329.036 7 -14831168.029 6 21144567.386 21144566.073 21144566.419
+ 46.000 40.800
+ -8730975.552 5 -6803358.169 4 23271942.054 23271939.882 23271941.068
+ 33.200 28.400
+ -10113909.889 5 -7880964.446 4 22559611.765 22559610.061 22559611.104
+ 34.000 27.600
+ 06 1 2 14 41 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -1106238.759 3 -862014.316 2 24408776.791 24408775.980 24408776.311
+ 23.400 16.100
+ -21045133.313 8 -16398802.700 7 20626255.883 20626252.299 20626254.210
+ 49.100 46.500
+ -23895159.435 7 -18619606.580 7 20624380.140 20624378.936 20624379.136
+ 44.900 46.100
+ -9314853.019 5 -7258325.736 4 22787288.084 22787288.049 22787287.252
+ 35.800 29.000
+ -240142.199 3 -187123.685 3 24742952.589 24742951.269 24742951.649
+ 19.900 18.600
+ -19099905.694 7 -14883045.951 6 21131898.324 21131897.154 21131897.287
+ 46.200 40.900
+ -8810200.601 5 -6865091.957 4 23256866.321 23256863.922 23256865.281
+ 33.500 29.700
+ -10206287.768 5 -7952947.183 4 22542031.853 22542031.326 22542031.888
+ 33.900 28.100
+ 06 1 2 14 41 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -998042.054 3 -777705.222 2 24429365.852 24429365.663 24429365.570
+ 23.800 16.100
+ -21011041.325 8 -16372237.531 7 20632743.548 20632739.786 20632741.769
+ 49.100 46.600
+ -23903962.000 7 -18626465.742 7 20622705.155 20622703.843 20622704.175
+ 44.700 45.900
+ -9219153.189 6 -7183754.485 4 22805499.662 22805498.729 22805498.520
+ 36.000 27.600
+ -294338.832 4 -229354.884 4 24732639.451 24732639.275 24732638.694
+ 24.900 24.200
+ -19166040.368 7 -14934579.476 6 21119313.162 21119312.126 21119312.137
+ 45.800 40.900
+ -8889336.799 5 -6926756.519 4 23241807.092 23241804.689 23241806.093
+ 33.400 29.700
+ -10298396.892 5 -8024720.494 4 22524505.076 22524503.239 22524504.215
+ 34.300 28.800
+ 06 1 2 14 42 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -889812.253 3 -693370.421 3 24449961.096 24449961.123 24449960.787
+ 21.100 21.100
+ -20976484.905 8 -16345310.469 7 20639319.495 20639315.725 20639317.617
+ 48.900 46.400
+ -23912250.092 7 -18632924.018 7 20621127.757 20621126.637 20621126.866
+ 44.900 45.900
+ -9123267.663 5 -7109038.524 4 22823745.737 22823744.736 22823744.620
+ 35.900 26.500
+ -348074.156 3 -271226.578 3 24722413.991 24722412.807 24722413.230
+ 23.800 21.100
+ -19231730.421 7 -14985766.539 6 21106812.595 21106811.745 21106811.581
+ 45.700 40.800
+ -8968383.601 5 -6988351.421 4 23226765.002 23226762.718 23226764.014
+ 33.800 29.900
+ -10390234.307 5 -8096282.113 4 22507029.545 22507027.384 22507028.426
+ 35.600 28.400
+ 06 1 2 14 42 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -781551.812 3 -609011.693 2 24470562.269 24470561.642 24470562.111
+ 22.100 16.100
+ -20941465.108 8 -16318022.335 7 20645983.052 20645979.750 20645981.428
+ 48.800 46.400
+ -23920023.092 7 -18638980.917 7 20619648.603 20619647.576 20619647.711
+ 45.000 46.100
+ -9027198.492 6 -7034179.472 4 22842027.293 22842026.885 22842026.222
+ 36.000 28.600
+ -401346.245 3 -312737.364 3 24712277.195 24712275.883 24712276.146
+ 23.400 19.900
+ -19296973.330 7 -15036605.175 6 21094397.297 21094396.432 21094396.286
+ 45.800 41.000
+ -9047340.402 5 -7049876.205 4 23211739.551 23211737.508 23211738.603
+ 33.200 29.000
+ -10481797.246 5 -8167629.843 4 22489604.412 22489603.610 22489604.042
+ 34.800 28.600
+ 06 1 2 14 43 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -673264.134 3 -524631.787 3 24491168.766 24491168.653 24491168.590
+ 22.100 20.500
+ -20905983.967 8 -16290374.713 7 20652735.269 20652731.630 20652733.252
+ 48.700 46.400
+ -23927280.270 7 -18644635.879 7 20618267.806 20618266.524 20618266.829
+ 45.000 46.000
+ -8930947.939 6 -6959179.084 4 22860342.780 22860342.700 22860341.834
+ 36.100 27.400
+ -454153.428 3 -353885.820 2 24702227.768 24702226.724 24702227.108
+ 18.600 17.000
+ -19361766.541 7 -15087093.401 6 21082067.814 21082066.754 21082066.776
+ 46.100 41.300
+ -9126206.820 5 -7111330.547 4 23196731.899 23196729.426 23196730.956
+ 33.900 28.600
+ -10573082.711 5 -8238761.346 4 22472233.386 22472232.379 22472233.203
+ 35.500 28.400
+ 06 1 2 14 43 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -564952.381 3 -440233.138 3 24511779.889 24511780.193 24511779.643
+ 22.100 22.100
+ -20870043.001 8 -16262368.783 7 20659574.528 20659570.932 20659572.717
+ 48.600 46.100
+ -23934019.997 7 -18649887.632 7 20616985.211 20616983.971 20616984.241
+ 44.900 46.000
+ -8834518.134 5 -6884039.026 4 22878692.636 22878693.029 22878691.999
+ 35.800 27.900
+ -506494.168 2 -394670.837 3 24692267.934 24692266.956 24692267.445
+ 17.800 19.900
+ -19426107.459 7 -15137229.187 6 21069823.962 21069822.920 21069822.972
+ 46.200 41.300
+ -9204981.970 5 -7172713.773 4 23181741.770 23181739.285 23181740.638
+ 34.000 29.200
+ -10664088.012 6 -8309674.566 4 22454916.859 22454914.717 22454915.865
+ 36.100 28.800
+ 06 1 2 14 44 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -456619.237 3 -355817.789 2 24532394.389 24532394.822 24532394.524
+ 21.600 17.000
+ -20833643.842 8 -16234005.821 7 20666501.029 20666497.475 20666499.210
+ 48.700 46.200
+ -23940241.726 7 -18654735.750 7 20615801.058 20615800.030 20615800.235
+ 45.000 45.900
+ -8737911.128 5 -6808760.891 4 22897076.695 22897076.079 22897075.851
+ 35.600 27.100
+ -558366.692 2 -435091.018 3 24682396.324 24682396.673 24682395.948
+ 17.800 20.500
+ -19489993.611 7 -15187010.612 6 21057667.052 21057665.861 21057666.070
+ 46.400 41.300
+ -9283665.374 5 -7234025.532 4 23166768.382 23166766.055 23166767.435
+ 34.400 27.400
+ -10754810.165 5 -8380367.143 4 22437651.672 22437650.806 22437651.367
+ 35.400 28.800
+ 06 1 2 14 44 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -348267.743 3 -271388.107 2 24553013.551 24553013.698 24553013.384
+ 22.600 16.100
+ -20796788.333 8 -16205287.261 7 20673514.431 20673510.847 20673512.633
+ 48.600 46.100
+ -23945944.438 7 -18659179.442 7 20614715.971 20614714.978 20614715.137
+ 45.000 46.100
+ -8641129.183 5 -6733346.432 4 22915494.094 22915493.219 22915493.138
+ 35.600 26.200
+ -609769.183 2 -475144.928 2 24672615.020 24672613.775 24672614.074
+ 15.100 12.600
+ -19553422.285 7 -15236435.560 6 21045596.873 21045595.807 21045595.916
+ 46.400 41.500
+ -9362256.858 5 -7295265.658 4 23151812.375 23151810.855 23151811.669
+ 33.900 29.500
+ -10845246.315 5 -8450836.858 4 22420443.193 22420441.360 22420442.177
+ 35.900 29.000
+ 06 1 2 14 45 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -239901.012 2 -186946.555 2 24573634.303 24573635.115 24573634.230
+ 17.800 16.100
+ -20759478.068 8 -16176214.346 7 20680614.627 20680610.850 20680612.718
+ 48.900 46.000
+ -23951127.073 7 -18663217.878 7 20613729.865 20613728.858 20613728.931
+ 44.900 46.200
+ -8544174.282 5 -6657797.192 4 22933943.334 22933942.817 22933942.512
+ 34.700 25.300
+ -660700.275 2 -514831.535 1 24662923.232 24662922.510 24662922.218
+ 17.000 6.500
+ -19616391.423 7 -15285502.426 6 21033614.429 21033613.181 21033613.381
+ 46.300 41.400
+ -9440755.202 5 -7356433.200 4 23136875.252 23136873.011 23136874.261
+ 34.100 29.700
+ -10935393.725 5 -8521081.587 4 22403287.939 22403286.986 22403287.652
+ 35.900 29.000
+ 06 1 2 14 45 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -131521.838 2 -102495.411 2 24594258.792 24594259.386 24594258.636
+ 13.900 16.100
+ -20721714.828 8 -16146788.463 7 20687800.655 20687796.910 20687798.880
+ 49.100 45.800
+ -23955788.855 7 -18666850.451 7 20612842.901 20612841.698 20612841.925
+ 45.000 46.000
+ -8447048.792 5 -6582115.039 4 22952426.035 22952425.365 22952424.962
+ 34.900 26.800
+ -711158.284 2 -554149.475 1 24653320.891 24653320.399 24653319.990
+ 17.000 9.000
+ -19678898.156 7 -15334208.982 6 21021719.728 21021718.408 21021718.682
+ 46.300 41.200
+ -9519160.257 5 -7417528.050 5 23121955.028 23121953.620 23121954.132
+ 33.600 31.300
+ -11025249.512 5 -8591099.084 4 22386189.323 22386187.662 22386188.718
+ 35.600 29.000
+ 06 1 2 14 46 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ -23133.471 3 -18037.034 2 24614884.448 24614885.158 24614884.384
+ 19.300 13.900
+ -20683500.426 8 -16117011.023 7 20695072.679 20695068.895 20695070.841
+ 49.100 45.800
+ -23959928.526 7 -18670076.183 7 20612055.188 20612053.896 20612054.219
+ 45.100 46.000
+ -8349754.731 5 -6506301.526 4 22970940.630 22970940.369 22970939.433
+ 34.400 27.400
+ -761141.562 2 -593097.554 2 24643809.762 24643808.790 24643809.023
+ 17.800 16.100
+ -19740940.429 7 -15382553.622 6 21009913.396 21009912.210 21009912.416
+ 46.600 41.400
+ -9597471.340 5 -7478549.650 5 23107052.811 23107051.600 23107051.906
+ 34.400 31.100
+ -11114810.812 6 -8660887.107 4 22369146.517 22369145.020 22369145.780
+ 36.100 29.000
+ 06 1 2 14 46 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 85260.984 3 66426.141 9 24635512.451 24635511.451 24635512.039
+ 23.000 -3.000
+ -20644836.562 8 -16086883.352 7 20702430.107 20702426.329 20702428.260
+ 48.900 45.700
+ -23963545.806 7 -18672894.859 7 20611366.704 20611365.584 20611365.774
+ 44.800 46.100
+ -8252294.243 5 -6430358.353 4 22989487.143 22989486.697 22989485.640
+ 33.200 26.800
+ -810648.374 3 -631674.283 2 24634389.010 24634388.316 24634388.181
+ 19.300 17.800
+ -19802515.471 7 -15430534.182 6 20998196.112 20998195.062 20998195.101
+ 46.500 41.600
+ -9675687.651 5 -7539497.427 5 23092169.490 23092167.316 23092168.274
+ 34.500 30.400
+ -11204074.866 5 -8730443.509 4 22352159.811 22352158.496 22352159.089
+ 35.900 28.600
+ 06 1 2 14 47 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 193658.891 3 150891.997 24656139.571 24656139.213 24656139.139
+ 19.900 3.000
+ -20605724.611 8 -16056406.530 7 20709872.696 20709869.128 20709870.942
+ 48.800 45.700
+ -23966639.780 7 -18675305.767 7 20610778.135 20610776.889 20610777.157
+ 44.900 46.100
+ -8154669.534 5 -6354287.183 4 23008065.155 23008063.528 23008063.799
+ 34.100 25.900
+ -859677.469 3 -669878.822 2 24625059.146 24625058.937 24625058.490
+ 21.100 16.100
+ -19863620.781 7 -15478148.718 6 20986568.369 20986567.029 20986567.285
+ 46.500 41.500
+ -9753808.883 5 -7600371.105 5 23077302.946 23077301.241 23077302.015
+ 34.500 30.400
+ -11293039.008 6 -8799766.211 5 22335230.592 22335229.255 22335229.955
+ 36.100 30.200
+ 06 1 2 14 47 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 302057.188 3 235358.201 1 24676766.422 24676766.895 24676766.519
+ 19.300 6.500
+ -20566166.495 8 -16025582.035 7 20717400.389 20717396.829 20717398.604
+ 48.800 45.700
+ -23969209.247 7 -18677307.966 7 20610289.106 20610287.977 20610288.163
+ 45.100 46.000
+ -8056882.601 5 -6278089.616 4 23026672.760 23026672.189 23026671.560
+ 34.500 26.800
+ -908227.102 3 -707709.703 2 24615820.370 24615819.536 24615819.740
+ 20.500 12.600
+ -19924254.222 7 -15525395.568 6 20975029.880 20975028.864 20975028.973
+ 46.600 41.700
+ -9831834.317 5 -7661170.153 5 23062455.218 23062453.582 23062454.248
+ 34.900 30.200
+ -11381700.080 6 -8868852.757 4 22318359.227 22318357.707 22318358.569
+ 36.600 29.500
+ 06 1 2 14 48 0.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 410452.965 3 319822.313 1 24697393.204 24697393.442 24697392.748
+ 18.600 6.500
+ -20526164.026 8 -15994411.298 7 20725012.835 20725009.211 20725010.948
+ 48.600 45.900
+ -23971253.571 7 -18678900.960 7 20609900.047 20609899.015 20609899.056
+ 44.800 45.900
+ -7958935.395 5 -6201767.172 4 23045311.193 23045310.572 23045310.081
+ 34.100 26.200
+ -956295.790 4 -745165.964 2 24606673.105 24606672.944 24606672.698
+ 24.200 15.100
+ -19984413.034 7 -15572272.572 6 20963582.191 20963580.987 20963581.169
+ 46.600 41.700
+ -9909763.149 5 -7721893.927 5 23047625.843 23047624.155 23047624.911
+ 35.300 30.400
+ -11470055.658 6 -8937701.244 4 22301545.615 22301544.301 22301544.895
+ 36.500 29.700
+ 06 1 2 14 48 30.0000000 0 8G13G19G27G 3G29G 8G28G11
+ 518843.026 2 404282.060 1 24718020.721 24718020.199 24718019.542
+ 17.800 11.000
+ -20485719.067 8 -15962895.764 7 20732709.080 20732705.610 20732707.311
+ 48.400 45.600
+ -23972772.030 7 -18680084.190 7 20609610.990 20609610.038 20609610.059
+ 44.900 45.900
+ -7860830.045 5 -6125321.465 4 23063980.094 23063979.773 23063979.071
+ 33.500 26.500
+ -1003881.705 4 -782245.871 2 24597618.442 24597617.065 24597617.933
+ 24.600 15.100
+ -20044094.753 7 -15618777.824 6 20952225.179 20952223.931 20952224.113
+ 46.400 41.900
+ -9987595.128 5 -7782542.234 4 23032814.951 23032812.987 23032814.057
+ 34.500 29.700
+ -11558102.489 6 -9006309.154 5 22284791.295 22284789.502 22284790.356
+ 36.800 30.400
+ 06 1 2 14 49 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20444833.196 8 -15931036.660 7 20740489.477 20740485.964 20740487.571
+ 48.500 45.900
+ -23973764.077 7 -18680857.233 7 20609422.164 20609421.138 20609421.278
+ 44.900 45.700
+ -7762568.551 5 -6048754.121 4 23082678.840 23082678.766 23082677.719
+ 34.300 27.100
+ -1050983.775 3 -818948.841 3 24588654.804 24588654.518 24588654.092
+ 22.600 19.900
+ -20103297.184 7 -15664909.599 6 20940959.074 20940958.133 20940958.100
+ 46.500 41.900
+ -10065329.232 5 -7843114.259 5 23018022.979 23018020.945 23018021.980
+ 34.900 31.100
+ -11645838.055 6 -9074674.520 4 22268095.558 22268093.664 22268094.697
+ 36.500 29.700
+ 06 1 2 14 49 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20403508.322 8 -15898835.476 7 20748353.260 20748349.874 20748351.417
+ 48.400 45.800
+ -23974228.728 7 -18681219.315 7 20609333.869 20609332.692 20609332.859
+ 44.900 45.700
+ -7664153.269 5 -5972066.944 4 23101406.527 23101406.436 23101405.433
+ 34.800 25.600
+ -1097600.356 3 -855273.469 2 24579784.095 24579783.046 24579783.132
+ 21.600 17.000
+ -20162017.898 7 -15710666.010 6 20929784.981 20929783.890 20929783.927
+ 46.400 41.900
+ -10142965.131 5 -7903609.767 5 23003248.961 23003247.413 23003248.092
+ 35.600 32.100
+ -11733259.632 6 -9142795.221 5 22251459.587 22251458.003 22251458.953
+ 37.500 30.600
+ 06 1 2 14 50 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20361746.135 8 -15866293.532 7 20756300.360 20756296.981 20756298.514
+ 48.400 45.600
+ -23974165.406 7 -18681169.991 7 20609345.937 20609344.849 20609344.981
+ 44.900 45.600
+ -7565586.022 5 -5895261.324 4 23120163.123 23120162.266 23120162.425
+ 35.100 25.300
+ -1143730.112 4 -891218.749 3 24571005.854 24571005.159 24571005.309
+ 24.900 20.500
+ -20220254.120 7 -15756044.894 7 20918703.020 20918702.051 20918701.992
+ 46.400 42.000
+ -10220502.189 5 -7964028.242 5 22988494.246 22988492.871 22988493.365
+ 35.300 32.700
+ -11820364.267 6 -9210668.970 5 22234884.228 22234882.425 22234883.487
+ 37.500 30.200
+ 06 1 2 14 50 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20319548.430 8 -15833412.214 7 20764330.324 20764326.980 20764328.499
+ 48.400 45.500
+ -23973573.273 7 -18680708.610 7 20609458.607 20609457.611 20609457.695
+ 44.900 45.800
+ -7466868.913 5 -5818338.948 4 23138947.868 23138948.321 23138947.305
+ 33.900 27.100
+ -1189371.262 4 -926783.354 3 24562320.823 24562320.441 24562320.149
+ 27.900 21.600
+ -20278003.795 7 -15801044.647 7 20907713.659 20907712.655 20907712.656
+ 46.500 42.200
+ -10297939.650 5 -8024369.113 5 22973758.527 22973756.803 22973757.521
+ 35.600 32.300
+ -11907149.177 6 -9278293.573 5 22218369.248 22218367.882 22218368.752
+ 37.200 30.800
+ 06 1 2 14 51 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20276917.105 8 -15800193.012 7 20772442.902 20772439.408 20772441.127
+ 48.500 45.500
+ -23972451.428 7 -18679834.466 7 20609672.238 20609671.122 20609671.190
+ 44.900 45.900
+ -7368003.896 5 -5741301.346 4 23157761.647 23157761.562 23157761.017
+ 34.000 24.900
+ -1234522.774 4 -961966.405 4 24553729.102 24553729.078 24553728.335
+ 28.600 27.600
+ -20335264.609 7 -15845663.480 7 20896817.092 20896816.277 20896816.208
+ 46.600 42.100
+ -10375276.878 5 -8084631.870 5 22959041.615 22959039.733 22959040.734
+ 35.700 31.600
+ -11993611.515 6 -9345666.797 5 22201916.107 22201914.880 22201915.379
+ 37.000 31.100
+ 06 1 2 14 51 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20233853.735 8 -15766637.155 7 20780637.665 20780634.130 20780635.822
+ 48.600 45.300
+ -23970799.236 7 -18678547.064 7 20609986.622 20609985.511 20609985.631
+ 45.000 45.800
+ -7268993.056 5 -5664150.083 4 23176602.807 23176602.585 23176601.948
+ 33.500 24.600
+ -1279182.856 5 -996766.497 4 24545230.398 24545229.134 24545229.802
+ 30.200 24.200
+ -20392033.918 7 -15889899.311 7 20886014.682 20886013.560 20886013.621
+ 46.900 42.300
+ -10452513.326 5 -8144816.140 5 22944343.950 22944341.868 22944342.985
+ 35.500 30.600
+ -12079748.605 6 -9412786.593 5 22185524.337 22185523.485 22185523.914
+ 36.900 31.000
+ 06 1 2 14 52 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20190360.522 8 -15732746.356 7 20788914.117 20788910.515 20788912.271
+ 48.500 45.000
+ -23968616.248 7 -18676846.056 7 20610401.984 20610400.931 20610401.005
+ 44.900 45.700
+ -7169838.653 5 -5586886.970 4 23195470.971 23195471.155 23195470.172
+ 32.600 25.600
+ -1323350.274 4 -1031182.680 4 24536825.908 24536824.765 24536825.209
+ 26.500 25.300
+ -20448309.237 7 -15933750.222 7 20875305.856 20875304.598 20875304.863
+ 47.100 42.400
+ -10529648.379 5 -8204921.366 5 22929666.060 22929663.776 22929665.011
+ 35.900 30.800
+ -12165557.823 6 -9479650.892 5 22169195.684 22169194.225 22169195.189
+ 37.300 30.600
+ 06 1 2 14 52 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20146438.928 8 -15698521.752 7 20797272.228 20797268.595 20797270.328
+ 48.700 45.200
+ -23965901.667 7 -18674730.818 7 20610918.705 20610917.490 20610917.678
+ 45.100 45.600
+ -7070542.691 5 -5509513.555 4 23214366.782 23214366.884 23214366.049
+ 33.100 26.200
+ -1367023.551 4 -1065213.807 4 24528515.039 24528514.325 24528514.208
+ 28.100 25.900
+ -20504088.184 7 -15977214.352 7 20864691.198 20864690.254 20864690.231
+ 46.900 42.400
+ -10606681.267 5 -8264947.001 5 22915007.036 22915005.072 22915005.969
+ 35.900 31.500
+ -12251036.158 6 -9546257.392 5 22152930.226 22152928.458 22152929.279
+ 38.000 31.100
+ 06 1 2 14 53 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20102090.844 8 -15663964.813 7 20805711.316 20805707.662 20805709.583
+ 48.900 45.100
+ -23962655.095 7 -18672201.037 7 20611536.418 20611535.324 20611535.448
+ 45.000 45.500
+ -6971106.981 5 -5432031.252 4 23233289.468 23233289.068 23233288.496
+ 34.300 24.600
+ -1410201.472 4 -1098858.963 4 24520298.407 24520298.032 24520297.693
+ 27.900 27.100
+ -20559368.754 7 -16020290.132 7 20854171.670 20854170.848 20854170.667
+ 46.600 42.800
+ -10683611.346 5 -8324892.495 5 22900367.507 22900365.926 22900366.591
+ 35.600 32.400
+ -12336181.042 6 -9612604.029 5 22136726.180 22136726.070 22136726.331
+ 37.200 31.500
+ 06 1 2 14 53 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -20057318.541 8 -15629077.315 7 20814231.251 20814227.694 20814229.401
+ 48.900 45.100
+ -23958875.904 7 -18669256.235 7 20612255.500 20612254.496 20612254.639
+ 44.900 45.500
+ -6871533.596 5 -5354441.662 3 23252236.600 23252236.565 23252235.628
+ 31.300 23.400
+ -1452882.565 4 -1132116.999 4 24512176.764 24512175.945 24512175.867
+ 28.400 26.500
+ -20614148.403 7 -16062975.582 7 20843747.423 20843746.701 20843746.382
+ 46.600 42.900
+ -10760437.964 6 -8384757.398 5 22885748.131 22885746.040 22885747.034
+ 36.200 31.500
+ -12420989.593 6 -9678688.608 5 22120589.634 22120587.395 22120588.316
+ 37.400 31.600
+ 06 1 2 14 54 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -20012123.177 8 -15593860.158 7 20822831.573 20822828.025 20822829.826
+ 48.800 44.800
+ -23954563.249 7 -18665895.747 7 20613076.018 20613075.218 20613075.184
+ 44.900 45.700
+ -6771824.725 5 -5276746.490 4 23271211.193 23271210.500 23271210.406
+ 32.700 24.900
+ -1495065.804 4 -1164987.069 4 24504149.425 24504148.919 24504148.799
+ 25.300 27.400
+ -20668424.991 7 -16105269.038 7 20833419.007 20833418.216 20833418.098
+ 47.000 42.800
+ -10837160.674 6 -8444541.317 5 22871148.262 22871146.360 22871147.282
+ 36.500 32.400
+ -12505459.086 6 -9744508.986 5 22104514.176 22104513.399 22104513.879
+ 37.700 31.300
+ 06 1 2 14 54 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19966506.952 8 -15558315.062 7 20831512.136 20831508.644 20831510.277
+ 48.600 44.900
+ -23949716.796 7 -18662119.309 7 20613998.590 20613997.515 20613997.507
+ 44.800 45.600
+ -6671982.044 5 -5198947.071 4 23290209.860 23290210.746 23290209.349
+ 31.800 25.300
+ -1536749.501 3 -1197467.910 4 24496217.203 24496216.562 24496216.456
+ 22.600 26.800
+ -20722196.295 7 -16147168.772 7 20823186.585 20823185.792 20823185.631
+ 47.000 42.900
+ -10913778.482 6 -8504243.506 5 22856568.320 22856566.276 22856567.236
+ 36.900 32.000
+ -12589586.671 6 -9810062.923 5 22088506.071 22088504.215 22088505.187
+ 37.600 31.500
+ 06 1 2 14 55 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19920471.536 8 -15522443.331 7 20840272.356 20840268.767 20840270.453
+ 48.600 44.900
+ -23944335.675 7 -18657926.250 7 20615022.487 20615021.575 20615021.600
+ 44.900 45.400
+ -6572007.888 5 -5121045.212 3 23309235.037 23309234.515 23309234.326
+ 32.400 23.800
+ -1577932.653 2 -1229558.679 4 24488379.873 24488379.847 24488379.408
+ 17.000 27.900
+ -20775459.820 7 -16188672.827 7 20813051.108 20813050.203 20813050.151
+ 47.000 43.100
+ -10990290.912 6 -8563863.578 5 22842008.321 22842006.288 22842007.299
+ 36.900 31.100
+ -12673369.732 6 -9875348.433 5 22072562.442 22072560.937 22072561.750
+ 38.200 32.000
+ 06 1 2 14 55 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19874018.912 8 -15486246.491 7 20849112.084 20849108.448 20849110.251
+ 48.700 44.800
+ -23938419.632 7 -18653316.367 7 20616148.159 20616147.291 20616147.305
+ 44.900 45.500
+ -6471904.033 5 -5043042.254 3 23328283.327 23328283.960 23328282.709
+ 31.600 23.000
+ -1618613.732 3 -1261258.249 4 24480638.895 24480638.576 24480638.363
+ 21.600 28.400
+ -20828213.089 7 -16229779.282 7 20803012.442 20803011.464 20803011.409
+ 47.000 42.900
+ -11066697.259 6 -8623401.005 5 22827468.752 22827466.671 22827467.733
+ 36.900 31.600
+ -12756805.789 6 -9940363.536 5 22056685.298 22056683.581 22056684.353
+ 38.200 31.800
+ 06 1 2 14 56 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19827151.081 8 -15449726.123 7 20858030.796 20858027.043 20858028.899
+ 48.700 44.600
+ -23931968.374 7 -18648289.440 7 20617376.076 20617374.939 20617375.048
+ 45.100 45.400
+ -6371672.317 5 -4964939.679 3 23347357.644 23347357.660 23347356.950
+ 32.700 23.000
+ -1658791.582 3 -1292565.657 4 24472992.614 24472992.805 24472992.111
+ 21.600 28.600
+ -20880453.987 7 -16270486.490 7 20793071.143 20793070.303 20793070.156
+ 46.900 42.800
+ -11142996.959 6 -8682855.314 5 22812949.285 22812947.536 22812948.252
+ 36.700 32.400
+ -12839891.956 6 -10005105.997 5 22040873.562 22040872.821 22040873.485
+ 38.900 32.000
+ 06 1 2 14 56 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19779869.857 8 -15412883.625 7 20867027.943 20867024.538 20867026.147
+ 48.700 44.700
+ -23924981.080 7 -18642844.819 7 20618705.670 20618704.657 20618704.687
+ 44.900 45.300
+ -6271314.608 5 -4886738.910 4 23366456.417 23366455.530 23366455.123
+ 32.600 24.600
+ -1698464.966 2 -1323479.990 2 24465442.619 24465444.011 24465442.159
+ 16.100 17.000
+ -20932180.155 7 -16310792.604 7 20783228.186 20783227.265 20783227.184
+ 46.900 43.100
+ -11219189.069 6 -8742225.790 5 22798450.472 22798448.720 22798449.527
+ 37.000 32.600
+ -12922625.494 6 -10069573.654 5 22025130.752 22025129.171 22025129.774
+ 37.700 32.100
+ 06 1 2 14 57 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19732176.986 8 -15375720.367 7 20876103.715 20876100.139 20876101.832
+ 48.600 44.600
+ -23917457.361 7 -18636982.207 7 20620137.081 20620136.387 20620136.236
+ 44.900 45.300
+ -6170833.134 5 -4808441.732 4 23385576.904 23385576.966 23385575.717
+ 32.100 25.600
+ -1737632.783 2 -1354000.392 3 24457989.799 24457988.772 24457989.077
+ 17.000 20.500
+ -20983389.257 7 -16350695.812 7 20773483.359 20773482.525 20773482.364
+ 47.100 43.400
+ -11295272.909 6 -8801511.897 5 22783972.578 22783970.214 22783971.533
+ 37.700 32.400
+ -13005003.467 6 -10133764.269 5 22009454.772 22009452.905 22009454.013
+ 38.700 31.300
+ 06 1 2 14 57 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19684074.328 8 -15338237.794 7 20885257.318 20885253.841 20885255.486
+ 48.600 44.700
+ -23909396.889 7 -18630701.342 7 20621671.058 20621670.255 20621670.153
+ 44.800 45.300
+ -6070229.799 5 -4730049.585 3 23404720.915 23404720.311 23404719.745
+ 31.800 23.400
+ -1776293.736 2 -1384125.783 3 24450632.853 24450632.454 24450632.326
+ 17.800 23.000
+ -21034079.273 7 -16390194.537 7 20763837.467 20763836.733 20763836.554
+ 47.000 43.500
+ -11371247.985 6 -8860713.266 5 22769514.731 22769512.626 22769513.793
+ 37.600 32.100
+ -13087023.391 6 -10197675.877 5 21993846.194 21993845.273 21993845.914
+ 38.900 32.100
+ 06 1 2 14 58 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19635563.955 8 -15300437.523 7 20894488.449 20894485.057 20894486.713
+ 48.600 44.500
+ -23900799.310 7 -18624001.956 7 20623307.235 20623306.353 20623306.338
+ 45.100 45.400
+ -5969506.581 5 -4651564.027 3 23423888.159 23423886.879 23423887.101
+ 32.300 22.100
+ -1814446.497 -1413855.217 3 24443370.676 24443375.305 24443370.742
+ 3.000 22.100
+ -21084247.808 7 -16429286.911 7 20754290.426 20754289.825 20754289.534
+ 46.900 43.400
+ -11447113.697 6 -8919829.415 5 22755078.111 22755075.824 22755076.900
+ 37.000 32.600
+ -13168683.023 6 -10261306.733 5 21978307.594 21978305.838 21978306.779
+ 38.700 32.300
+ 06 1 2 14 58 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19586647.702 8 -15262320.978 7 20903797.072 20903793.606 20903795.194
+ 48.700 44.600
+ -23891663.985 7 -18616883.545 7 20625045.679 20625044.785 20625044.775
+ 45.000 45.300
+ -5868665.541 5 -4572986.639 3 23443076.749 23443077.179 23443075.901
+ 31.100 23.400
+ -1852090.255 3 -1443187.982 4 24436209.371 24436208.195 24436208.447
+ 19.900 24.900
+ -21133892.609 7 -16467971.182 7 20744843.580 20744842.586 20744842.572
+ 46.900 43.300
+ -11522868.839 6 -8978859.404 5 22740662.315 22740660.328 22740661.332
+ 37.200 32.300
+ -13249979.155 6 -10324654.337 5 21962837.403 21962835.845 21962836.586
+ 39.200 32.300
+ 06 1 2 14 59 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19537327.410 8 -15223889.602 7 20913182.506 20913178.935 20913180.626
+ 48.700 44.600
+ -23881990.485 7 -18609345.777 7 20626886.454 20626885.591 20626885.528
+ 44.900 45.100
+ -5767708.338 5 -4494318.761 3 23462288.964 23462288.779 23462287.759
+ 32.000 23.000
+ -1889223.730 3 -1472123.212 3 24429143.415 24429142.972 24429142.890
+ 21.100 23.800
+ -21183011.491 7 -16506245.649 7 20735496.585 20735495.560 20735495.586
+ 46.700 43.100
+ -11598512.939 6 -9037802.866 5 22726266.939 22726265.656 22726266.320
+ 36.800 32.700
+ -13330909.279 6 -10387716.755 5 21947436.033 21947435.287 21947435.732
+ 38.900 33.100
+ 06 1 2 14 59 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19487604.989 8 -15185144.878 7 20922644.257 20922640.860 20922642.488
+ 48.500 44.500
+ -23871778.667 7 -18601388.539 7 20628829.760 20628828.857 20628828.813
+ 45.000 45.100
+ -5666636.921 5 -4415561.850 3 23481522.494 23481521.710 23481521.561
+ 31.500 21.600
+ -1925845.645 3 -1500659.763 3 24422174.537 24422174.553 24422173.673
+ 19.900 21.600
+ -21231602.487 7 -16544108.768 7 20726250.036 20726249.168 20726249.014
+ 46.800 43.400
+ -11674045.388 6 -9096659.323 5 22711894.451 22711892.359 22711893.385
+ 37.700 33.200
+ -13411470.637 6 -10450491.813 5 21932106.087 21932104.681 21932105.561
+ 39.700 31.800
+ 06 1 2 15 0 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19437482.392 8 -15146088.326 7 20932182.159 20932178.821 20932180.427
+ 48.400 44.400
+ -23861027.835 7 -18593011.294 7 20630875.601 20630874.684 20630874.664
+ 44.900 45.000
+ -5565453.081 5 -4336717.350 3 23500776.901 23500776.311 23500776.071
+ 30.200 22.600
+ -1961955.136 3 -1528797.043 3 24415303.686 24415302.623 24415302.982
+ 20.500 19.900
+ -21279663.119 7 -16581558.623 7 20717104.332 20717103.693 20717103.378
+ 46.900 43.600
+ -11749465.490 6 -9155428.239 5 22697542.324 22697540.543 22697541.343
+ 37.900 33.500
+ -13491660.550 6 -10512977.444 5 21916846.516 21916845.070 21916845.841
+ 39.300 32.300
+ 06 1 2 15 0 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19386961.601 8 -15106721.490 7 20941795.907 20941792.636 20941794.109
+ 48.400 44.400
+ -23849738.055 7 -18584214.090 7 20633024.175 20633023.008 20633023.116
+ 44.800 44.900
+ -5464158.992 5 -4257786.949 4 23520052.551 23520052.123 23520051.570
+ 30.200 24.600
+ -1997550.819 4 -1556533.990 3 24408529.698 24408529.427 24408529.122
+ 24.900 20.500
+ -21327191.411 7 -16618593.667 7 20708060.022 20708059.243 20708059.035
+ 47.000 43.600
+ -11824772.408 6 -9214108.966 5 22683211.888 22683209.907 22683210.868
+ 37.700 33.100
+ -13571476.586 6 -10575171.720 5 21901658.081 21901656.788 21901657.492
+ 39.700 32.700
+ 06 1 2 15 1 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19336044.348 8 -15067045.727 7 20951485.141 20951481.850 20951483.352
+ 48.400 44.200
+ -23837908.795 7 -18574996.512 7 20635274.960 20635274.075 20635274.100
+ 45.000 44.800
+ -5362756.402 5 -4178772.028 3 23539348.983 23539348.766 23539347.805
+ 30.400 22.600
+ -2032631.884 4 -1583869.896 3 24401853.931 24401853.989 24401853.165
+ 24.600 21.100
+ -21374184.646 7 -16655211.785 7 20699117.763 20699116.491 20699116.679
+ 47.000 43.300
+ -11899965.580 6 -9272701.061 5 22668903.004 22668901.082 22668902.013
+ 37.700 33.000
+ -13650915.730 6 -10637072.338 5 21886541.163 21886539.863 21886540.636
+ 39.600 33.100
+ 06 1 2 15 1 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19284732.609 8 -15027062.572 7 20961249.691 20961246.111 20961247.728
+ 48.300 44.000
+ -23825539.964 7 -18565358.490 7 20637628.750 20637627.815 20637627.790
+ 44.900 44.800
+ -5261247.339 4 -4099674.098 4 23558664.445 23558665.038 23558663.453
+ 29.000 24.200
+ -2067197.251 4 -1610803.956 2 24395276.731 24395275.572 24395276.198
+ 26.500 17.000
+ -21420641.325 7 -16691411.806 7 20690277.278 20690276.133 20690276.231
+ 46.900 43.500
+ -11975043.896 6 -9331203.652 5 22654616.383 22654614.239 22654615.381
+ 38.300 32.800
+ -13729975.724 6 -10698677.479 5 21871496.361 21871495.142 21871495.893
+ 39.700 32.800
+ 06 1 2 15 2 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19233028.383 8 -14986773.580 7 20971088.369 20971085.108 20971086.633
+ 48.100 44.000
+ -23812631.014 7 -18555299.591 7 20640085.267 20640084.240 20640084.306
+ 44.900 44.600
+ -5159633.344 5 -4020494.448 4 23578001.932 23578002.703 23578000.572
+ 30.400 24.200
+ -2101245.916 4 -1637335.413 2 24388797.309 24388795.998 24388796.424
+ 26.200 15.100
+ -21466559.424 7 -16727192.159 7 20681538.992 20681538.337 20681538.176
+ 46.900 43.700
+ -12050006.807 6 -9389616.329 5 22640351.335 22640349.414 22640350.207
+ 38.200 33.100
+ -13808653.959 6 -10759985.176 5 21856524.396 21856523.166 21856523.950
+ 39.500 32.700
+ 06 1 2 15 2 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19180933.463 8 -14946180.156 7 20981002.043 20980998.466 20980999.978
+ 48.000 43.800
+ -23799181.985 7 -18544819.859 7 20642644.697 20642643.565 20642643.741
+ 45.200 44.600
+ -5057916.559 5 -3941234.691 3 23597357.205 23597357.965 23597356.596
+ 30.400 23.000
+ -2134776.692 4 -1663463.323 2 24382416.991 24382415.809 24382416.390
+ 27.100 17.800
+ -21511936.465 7 -16762550.898 7 20672904.220 20672903.458 20672903.247
+ 46.900 43.900
+ -12124853.727 6 -9447938.610 5 22626108.241 22626106.390 22626107.292
+ 38.200 33.400
+ -13886947.640 6 -10820993.196 5 21841625.837 21841624.505 21841625.085
+ 39.400 33.200
+ 06 1 2 15 3 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19128449.974 8 -14905283.946 7 20990989.075 20990985.714 20990987.241
+ 48.200 43.600
+ -23785192.428 7 -18533918.932 7 20645306.697 20645305.781 20645305.777
+ 44.900 44.800
+ -4956098.509 4 -3861896.011 3 23616732.876 23616733.866 23616731.789
+ 29.700 23.400
+ -2167788.854 4 -1689187.100 2 24376134.960 24376133.288 24376134.249
+ 27.900 15.100
+ -21556770.286 7 -16797486.357 7 20664372.847 20664371.938 20664371.806
+ 47.100 43.800
+ -12199583.858 6 -9506169.896 5 22611887.196 22611885.612 22611886.343
+ 37.700 32.600
+ -13964854.365 6 -10881699.700 5 21826800.355 21826799.403 21826799.982
+ 40.000 33.900
+ 06 1 2 15 3 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -19075579.822 8 -14864086.446 7 21001049.986 21001046.675 21001048.175
+ 48.200 43.700
+ -23770661.958 7 -18522596.514 7 20648071.720 20648070.941 20648070.743
+ 44.900 44.600
+ -4854181.257 5 -3782480.027 3 23636127.168 23636127.608 23636126.207
+ 30.200 19.900
+ -2200281.292 4 -1714505.915 3 24369951.447 24369951.216 24369950.718
+ 26.200 21.100
+ -21601058.817 7 -16831996.912 7 20655944.746 20655944.046 20655943.775
+ 46.800 43.900
+ -12274196.423 6 -9564309.571 5 22597689.199 22597687.405 22597688.244
+ 38.100 33.200
+ -14042371.640 6 -10942102.724 5 21812049.827 21812048.134 21812048.997
+ 40.000 33.000
+ 06 1 2 15 4 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -19022324.958 8 -14822589.170 7 21011184.233 21011180.667 21011182.346
+ 48.100 43.500
+ -23755590.698 7 -18510852.701 7 20650939.714 20650938.857 20650938.801
+ 45.100 44.700
+ -4752166.774 4 -3702988.304 3 23655540.052 23655540.597 23655539.093
+ 29.700 22.600
+ -2232253.059 4 -1739419.017 2 24363867.629 24363866.362 24363866.928
+ 27.100 15.100
+ -21644800.262 7 -16866081.171 7 20647621.252 20647620.312 20647620.203
+ 46.900 43.900
+ -12348690.543 6 -9622356.941 5 22583513.806 22583511.791 22583512.845
+ 38.800 34.100
+ -14119496.545 6 -11002200.023 5 21797373.051 21797371.708 21797372.629
+ 40.400 33.200
+ 06 1 2 15 4 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18968687.427 8 -14780793.703 7 21021391.022 21021387.574 21021389.270
+ 48.200 43.500
+ -23739978.661 7 -18498687.505 7 20653910.779 20653909.807 20653909.772
+ 44.700 44.700
+ -4650056.892 5 -3623422.223 4 23674971.308 23674971.810 23674970.438
+ 30.400 24.200
+ -2263703.386 4 -1763925.770 2 24357882.728 24357881.718 24357882.026
+ 28.100 15.100
+ -21687992.086 7 -16899737.148 7 20639402.018 20639401.248 20639400.982
+ 46.900 44.000
+ -12423065.369 6 -9680311.362 5 22569360.703 22569358.728 22569359.694
+ 39.000 34.000
+ -14196226.652 6 -11061989.679 5 21782771.889 21782770.645 21782771.274
+ 40.200 33.900
+ 06 1 2 15 5 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18914669.131 8 -14738701.544 7 21031670.437 21031666.933 21031668.551
+ 48.000 43.400
+ -23723825.263 7 -18486100.465 7 20656984.495 20656983.790 20656983.586
+ 45.100 44.700
+ -4547853.267 4 -3543783.110 4 23694419.908 23694420.655 23694418.913
+ 29.000 24.200
+ -2294631.098 4 -1788025.337 2 24351997.595 24351996.813 24351996.940
+ 28.800 16.100
+ -21730632.731 7 -16932963.640 7 20631287.794 20631287.025 20631286.838
+ 47.100 44.000
+ -12497320.535 6 -9738172.550 5 22555230.509 22555228.271 22555229.367
+ 38.500 33.500
+ -14272559.628 6 -11121469.890 5 21768246.376 21768244.625 21768245.714
+ 40.500 33.400
+ 06 1 2 15 5 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18860271.633 8 -14696313.903 7 21042021.771 21042018.470 21042019.910
+ 48.100 43.400
+ -23707130.537 7 -18473091.615 7 20660161.665 20660160.653 20660160.620
+ 45.100 44.500
+ -4445557.828 5 -3464072.463 3 23713886.682 23713887.112 23713885.805
+ 31.000 21.600
+ -2325035.568 4 -1811717.169 2 24346211.340 24346210.374 24346210.535
+ 26.200 17.000
+ -21772719.979 7 -16965758.906 7 20623278.846 20623278.091 20623277.860
+ 46.700 44.100
+ -12571455.209 6 -9795939.839 5 22541123.084 22541121.097 22541122.140
+ 38.800 34.000
+ -14348492.714 6 -11180638.499 5 21753796.591 21753795.165 21753795.968
+ 40.600 34.000
+ 06 1 2 15 6 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18805497.212 8 -14653632.556 7 21052445.035 21052441.770 21052443.289
+ 48.200 43.400
+ -23689894.681 7 -18459661.102 7 20663441.441 20663440.436 20663440.505
+ 45.200 44.400
+ -4343172.393 4 -3384291.658 3 23733369.738 23733369.598 23733368.559
+ 29.700 20.500
+ -2354916.000 4 -1835000.657 1 24340525.646 24340524.016 24340524.979
+ 27.600 9.000
+ -21814251.364 7 -16998121.036 7 20615375.655 20615374.932 20615374.685
+ 47.000 44.100
+ -12645468.158 6 -9853612.276 5 22527039.044 22527036.939 22527037.989
+ 38.900 34.300
+ -14424023.321 6 -11239493.487 5 21739423.430 21739422.157 21739422.991
+ 40.700 33.800
+ 06 1 2 15 6 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18750348.076 8 -14610659.220 7 21062939.976 21062936.376 21062938.025
+ 48.400 43.600
+ -23672117.356 7 -18445808.665 7 20666824.403 20666823.439 20666823.441
+ 45.300 44.300
+ -4240698.741 4 -3304442.135 3 23752869.940 23752868.879 23752868.777
+ 27.600 19.300
+ -2384271.333 4 -1857874.963 1 24334939.411 24334937.228 24334938.755
+ 25.900 6.500
+ -21855225.579 7 -17030049.006 7 20607578.649 20607577.837 20607577.696
+ 47.200 44.200
+ -12719358.719 6 -9911189.340 5 22512977.994 22512975.876 22512976.867
+ 38.800 33.800
+ -14499148.876 6 -11298032.860 5 21725127.966 21725126.064 21725127.156
+ 40.700 33.400
+ 06 1 2 15 7 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18694825.751 8 -14567395.090 7 21073505.248 21073501.931 21073503.512
+ 48.200 43.500
+ -23653798.433 7 -18431534.208 7 20670310.388 20670309.538 20670309.430
+ 45.200 44.400
+ -4138138.597 4 -3224525.205 2 23772386.358 23772385.881 23772385.480
+ 28.600 17.800
+ -2413100.867 4 -1880339.565 1 24329453.508 24329451.404 24329452.740
+ 27.100 11.000
+ -21895640.457 7 -17061541.132 7 20599888.030 20599887.057 20599887.057
+ 47.300 44.200
+ -12793126.372 6 -9968670.633 5 22498940.459 22498938.225 22498939.378
+ 38.900 34.000
+ -14573867.029 6 -11356254.778 5 21710909.279 21710907.766 21710908.640
+ 40.900 34.000
+ 06 1 2 15 7 30.0000000 0 7G19G27G 3G29G 8G28G11
+ -18638932.212 8 -14523841.703 7 21084141.655 21084138.192 21084139.700
+ 48.100 43.300
+ -23634938.053 7 -18416837.833 7 20673899.540 20673898.603 20673898.526
+ 45.200 44.300
+ -4035493.896 4 -3144542.385 3 23791919.256 23791918.925 23791918.625
+ 29.500 21.100
+ -2441403.667 3 -1902393.715 2 24324067.076 24324066.484 24324066.540
+ 23.000 17.800
+ -21935493.825 7 -17092595.715 7 20592304.375 20592303.369 20592303.303
+ 47.100 44.300
+ -12866770.217 6 -10026055.460 5 22484926.425 22484924.601 22484925.489
+ 39.400 34.500
+ -14648175.055 6 -11414157.114 5 21696768.890 21696767.558 21696768.306
+ 40.700 34.100
+ 06 1 2 15 8 0.0000000 0 7G19G27G 3G29G 8G28G11
+ -18582669.804 8 -14480000.884 7 21094847.917 21094844.493 21094846.031
+ 48.000 43.100
+ -23615536.110 7 -18401719.460 7 20677591.561 20677590.629 20677590.593
+ 44.900 44.100
+ -3932766.232 5 -3064494.931 3 23811467.970 23811468.054 23811466.852
+ 30.400 22.100
+ -2469179.223 4 -1924037.060 2 24318782.016 24318781.460 24318781.383
+ 27.100 17.800
+ -21974783.830 7 -17123211.314 7 20584827.688 20584826.664 20584826.637
+ 47.100 44.400
+ -12940289.425 6 -10083343.155 5 22470936.115 22470934.297 22470935.061
+ 38.900 34.700
+ -14722070.989 6 -11471738.346 5 21682707.566 21682705.446 21682706.504
+ 40.900 34.500
+ 06 1 2 15 8 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -92663.369 3 -72205.094 3 24419313.368 24419313.327 24419312.606
+ 23.400 20.500
+ -18526040.157 8 -14435873.907 7 21105624.258 21105620.789 21105622.435
+ 48.200 43.000
+ -23595592.474 7 -18386178.990 7 20681386.505 20681385.765 20681385.683
+ 45.100 44.100
+ -3829957.469 4 -2984384.286 3 23831031.421 23831030.735 23831030.497
+ 29.900 19.300
+ -2496426.470 4 -1945268.702 2 24313597.066 24313596.052 24313596.356
+ 27.900 16.100
+ -22013508.759 7 -17153386.591 7 20577458.424 20577457.607 20577457.433
+ 47.100 44.400
+ -13013683.134 6 -10140533.062 5 22456969.623 22456967.862 22456968.733
+ 39.400 34.900
+ -14795552.052 6 -11528996.304 5 21668723.515 21668722.651 21668723.179
+ 41.100 35.100
+ 06 1 2 15 9 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -135205.921 4 -105355.193 3 24411217.623 24411217.780 24411217.168
+ 24.900 23.000
+ -18469045.551 8 -14391462.548 7 21116470.081 21116466.497 21116468.138
+ 48.000 43.000
+ -23575107.295 7 -18370216.539 7 20685284.885 20685283.998 20685283.955
+ 45.100 43.900
+ -3727069.552 4 -2904211.953 3 23850610.818 23850610.681 23850609.979
+ 28.800 21.100
+ -2523144.991 4 -1966088.320 2 24308513.209 24308511.286 24308512.462
+ 28.100 15.100
+ -22051666.576 7 -17183119.961 7 20570197.121 20570196.461 20570196.174
+ 46.900 44.600
+ -13086950.758 6 -10197624.724 5 22443027.427 22443025.519 22443026.367
+ 39.300 34.800
+ -14868615.600 6 -11585928.929 5 21654820.217 21654818.870 21654819.538
+ 40.600 34.600
+ 06 1 2 15 9 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -177176.424 3 -138059.535 3 24403230.644 24403231.413 24403230.127
+ 21.100 23.400
+ -18411687.811 8 -14346768.220 7 21127384.707 21127381.263 21127382.912
+ 48.000 42.700
+ -23554080.513 7 -18353832.058 7 20689285.928 20689285.341 20689285.092
+ 45.300 44.100
+ -3624103.977 4 -2823979.112 3 23870204.053 23870204.251 23870203.045
+ 26.500 21.600
+ -2549333.851 4 -1986495.271 2 24303529.096 24303528.368 24303528.523
+ 25.600 17.800
+ -22089254.991 7 -17212409.643 7 20563044.607 20563043.502 20563043.490
+ 46.900 44.400
+ -13160091.000 6 -10254617.119 5 22429108.971 22429107.570 22429108.105
+ 39.200 35.100
+ -14941259.223 6 -11642534.345 5 21640996.789 21640994.988 21640996.055
+ 41.000 34.000
+ 06 1 2 15 10 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -218573.368 2 -170316.924 3 24395353.192 24395353.246 24395352.276
+ 17.000 22.100
+ -18353968.767 7 -14301792.358 7 21138368.267 21138364.787 21138366.472
+ 47.800 42.400
+ -23532512.392 7 -18337025.754 7 20693390.518 20693389.644 20693389.578
+ 45.400 44.100
+ -3521062.232 4 -2743686.946 3 23889812.169 23889812.488 23889811.215
+ 27.400 19.300
+ -2574992.356 4 -2006488.942 3 24298646.725 24298645.473 24298645.968
+ 25.900 19.300
+ -22126272.380 7 -17241254.370 7 20555999.935 20555999.386 20555999.006
+ 46.800 44.500
+ -13233103.504 6 -10311509.970 5 22415215.131 22415213.624 22415214.230
+ 38.900 35.200
+ -15013480.685 6 -11698810.803 5 21627253.480 21627252.248 21627252.914
+ 41.300 35.300
+ 06 1 2 15 10 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -259395.445 2 -202126.257 3 24387585.107 24387584.995 24387584.987
+ 12.600 23.000
+ -18295890.770 7 -14256536.798 7 21149420.112 21149416.781 21149418.280
+ 47.800 42.400
+ -23510403.062 7 -18319797.729 7 20697598.002 20697596.865 20697596.885
+ 45.100 44.000
+ -3417946.351 4 -2663336.978 3 23909434.766 23909435.198 23909433.805
+ 28.400 19.900
+ -2600119.869 4 -2026068.814 3 24293864.911 24293864.852 24293864.273
+ 25.900 21.600
+ -22162717.470 7 -17269653.150 7 20549064.758 20549064.096 20549063.789
+ 46.700 44.400
+ -13305987.321 6 -10368302.558 5 22401345.749 22401344.092 22401344.873
+ 39.400 34.400
+ -15085277.345 6 -11754756.248 5 21613591.242 21613589.335 21613590.354
+ 41.500 34.400
+ 06 1 2 15 11 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -299641.243 3 -233486.606 3 24379926.822 24379926.940 24379926.373
+ 23.400 23.000
+ -18237455.463 7 -14211002.810 7 21160539.949 21160536.580 21160538.202
+ 47.900 42.400
+ -23487752.387 7 -18302147.876 7 20701907.849 20701907.128 20701907.021
+ 45.300 43.900
+ -3314758.060 4 -2582930.607 3 23929071.215 23929071.281 23929069.986
+ 27.400 18.600
+ -2624715.808 4 -2045234.513 3 24289183.729 24289183.045 24289183.416
+ 25.300 18.600
+ -22198587.532 7 -17297603.858 7 20542239.021 20542238.317 20542237.915
+ 46.800 44.600
+ -13378741.482 6 -10424994.121 5 22387501.239 22387499.362 22387500.389
+ 39.600 34.600
+ -15156646.677 6 -11810368.710 5 21600009.677 21600008.374 21600009.027
+ 41.400 35.500
+ 06 1 2 15 11 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -339309.356 4 -264396.858 3 24372378.147 24372378.424 24372377.579
+ 24.600 20.500
+ -18178664.924 8 -14165192.019 7 21171727.672 21171724.095 21171725.823
+ 48.000 42.200
+ -23464560.532 7 -18284076.326 7 20706321.056 20706320.342 20706320.264
+ 45.100 43.700
+ -3211499.185 5 -2502469.191 3 23948720.896 23948721.001 23948720.003
+ 30.200 21.100
+ -2648779.693 4 -2063985.592 3 24284605.790 24284604.414 24284605.056
+ 27.900 21.100
+ -22233880.967 7 -17325105.245 7 20535522.903 20535522.128 20535521.956
+ 46.600 44.600
+ -13451365.187 6 -10481584.024 5 22373681.794 22373679.751 22373680.831
+ 39.900 34.800
+ -15227586.523 6 -11865646.506 5 21586510.286 21586508.955 21586509.686
+ 41.400 34.900
+ 06 1 2 15 12 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -378398.566 4 -294855.999 3 24364939.614 24364939.980 24364939.121
+ 25.300 19.900
+ -18119521.198 8 -14119106.016 7 21182982.193 21182978.781 21182980.404
+ 48.000 42.100
+ -23440827.984 7 -18265583.458 7 20710837.233 20710836.618 20710836.345
+ 44.800 43.700
+ -3108171.204 4 -2421953.936 2 23968383.129 23968383.804 23968382.168
+ 28.600 17.800
+ -2672310.639 3 -2082321.420 3 24280126.469 24280126.915 24280125.910
+ 22.600 22.600
+ -22268596.051 7 -17352155.967 7 20528916.837 20528916.105 20528915.816
+ 46.800 44.700
+ -13523857.670 6 -10538071.679 5 22359886.907 22359884.850 22359885.891
+ 39.900 35.300
+ -15298094.427 6 -11920587.723 5 21573093.174 21573091.511 21573092.498
+ 41.200 34.300
+ 06 1 2 15 12 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -416907.638 3 -324863.116 2 24357611.892 24357611.412 24357611.442
+ 23.400 17.000
+ -18060026.265 8 -14072746.349 7 21194303.822 21194300.387 21194301.877
+ 48.000 42.300
+ -23416554.418 7 -18246669.021 7 20715456.464 20715455.868 20715455.492
+ 44.900 44.000
+ -3004775.899 4 -2341386.251 3 23988057.493 23988059.393 23988056.877
+ 26.800 19.900
+ -2695308.200 4 -2100241.618 4 24275751.138 24275751.261 24275750.529
+ 25.300 24.200
+ -22302731.366 7 -17378754.928 7 20522420.896 20522420.528 20522419.939
+ 46.600 44.800
+ -13596218.115 6 -10594456.451 5 22346117.276 22346115.269 22346116.183
+ 40.600 35.600
+ -15368168.126 6 -11975190.597 5 21559759.004 21559757.088 21559758.241
+ 41.900 35.200
+ 06 1 2 15 13 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -454835.127 3 -354416.982 2 24350394.601 24350394.222 24350394.069
+ 21.100 17.000
+ -18000182.203 8 -14026114.635 7 21205691.780 21205688.461 21205689.973
+ 48.000 42.300
+ -23391740.230 7 -18227333.316 7 20720178.536 20720177.955 20720177.628
+ 45.100 44.100
+ -2901315.081 4 -2260767.529 3 24007746.210 24007747.374 24007745.273
+ 26.800 20.500
+ -2717771.671 4 -2117745.634 4 24271476.525 24271476.675 24271475.875
+ 24.900 24.200
+ -22336284.609 7 -17404900.322 7 20516036.215 20516035.512 20516035.182
+ 46.600 44.800
+ -13668445.579 6 -10650737.594 6 22332372.742 22332371.042 22332371.754
+ 40.700 36.200
+ -15437805.101 6 -12029453.161 5 21546507.229 21546505.682 21546506.515
+ 41.400 35.200
+ 06 1 2 15 13 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -492179.923 3 -383516.825 3 24343287.647 24343287.738 24343287.184
+ 23.400 18.600
+ -17939990.763 8 -13979212.235 7 21217146.068 21217142.479 21217144.057
+ 48.200 42.300
+ -23366385.778 7 -18207576.627 7 20725003.318 20725002.635 20725002.359
+ 45.100 43.800
+ -2797790.482 4 -2180099.093 2 24027446.276 24027446.976 24027445.313
+ 27.100 17.800
+ -2739700.825 3 -2134833.251 3 24267303.471 24267303.187 24267302.688
+ 23.000 23.800
+ -22369254.163 7 -17430590.892 7 20509762.183 20509761.622 20509761.227
+ 46.800 44.800
+ -13740539.225 6 -10706914.462 5 22318653.678 22318651.789 22318652.647
+ 40.100 35.300
+ -15507002.930 7 -12083373.531 5 21533339.493 21533337.526 21533338.738
+ 42.000 35.100
+ 06 1 2 15 14 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -528940.699 4 -412161.590 2 24336292.522 24336291.843 24336291.880
+ 26.500 17.000
+ -17879454.048 8 -13932040.786 6 21228665.524 21228662.191 21228663.785
+ 48.200 41.900
+ -23340491.043 7 -18187398.938 7 20729930.871 20729930.229 20729930.022
+ 45.200 43.700
+ -2694203.428 4 -2099381.960 3 24047157.342 24047159.477 24047156.982
+ 26.800 20.500
+ -2761095.090 3 -2151504.115 3 24263232.162 24263231.973 24263231.548
+ 23.000 23.800
+ -22401638.558 7 -17455825.501 7 20503599.619 20503598.987 20503598.724
+ 47.100 44.800
+ -13812498.366 6 -10762986.528 5 22304960.275 22304958.455 22304959.302
+ 40.000 35.700
+ -15575759.544 6 -12136950.099 5 21520254.966 21520253.743 21520254.420
+ 41.700 35.400
+ 06 1 2 15 14 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -565116.400 3 -440350.465 2 24329408.067 24329408.288 24329407.478
+ 19.900 16.100
+ -17818574.134 8 -13884601.909 7 21240250.719 21240247.231 21240248.866
+ 48.200 42.100
+ -23314056.264 7 -18166800.441 7 20734961.360 20734960.573 20734960.456
+ 45.100 43.500
+ -2590555.604 4 -2018617.509 3 24066881.909 24066883.554 24066880.890
+ 25.300 21.600
+ -2781953.611 3 -2167757.509 4 24259262.922 24259262.829 24259262.195
+ 21.600 24.600
+ -22433435.765 7 -17480602.555 7 20497548.921 20497548.222 20497547.980
+ 47.000 45.000
+ -13884321.670 6 -10818952.746 5 22291292.820 22291290.852 22291291.821
+ 40.200 34.900
+ -15644072.343 7 -12190180.848 5 21507255.736 21507254.250 21507255.119
+ 42.000 35.300
+ 06 1 2 15 15 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -600705.794 3 -468082.463 2 24322635.897 24322635.197 24322635.310
+ 20.500 12.600
+ -17757353.052 8 -13836897.182 6 21251900.580 21251897.275 21251898.756
+ 48.000 41.800
+ -23287081.703 7 -18145781.323 7 20740094.720 20740093.708 20740093.602
+ 45.200 43.500
+ -2486848.898 4 -1937807.200 3 24086617.006 24086617.861 24086616.099
+ 25.900 18.600
+ -2802276.171 4 -2183593.258 4 24255395.835 24255395.550 24255394.970
+ 24.200 24.600
+ -22464644.464 7 -17504921.032 7 20491610.183 20491609.403 20491609.199
+ 47.100 44.800
+ -13956008.552 6 -10874812.655 5 22277651.258 22277649.456 22277650.197
+ 40.100 35.700
+ -15711938.746 7 -12243063.748 6 21494341.079 21494339.855 21494340.521
+ 42.200 36.000
+ 06 1 2 15 15 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -635707.606 2 -495356.606 2 24315975.035 24315975.569 24315974.903
+ 17.800 17.800
+ -17695792.720 7 -13788928.110 6 21263614.931 21263611.808 21263613.238
+ 47.600 41.800
+ -23259567.838 7 -18124341.971 7 20745330.183 20745329.495 20745329.245
+ 45.100 43.500
+ -2383085.008 4 -1856952.276 2 24106363.900 24106363.476 24106362.740
+ 28.800 17.800
+ -2822062.138 4 -2199010.943 4 24251630.236 24251630.793 24251629.889
+ 24.200 25.900
+ -22495262.605 7 -17528779.337 7 20485783.639 20485782.925 20485782.718
+ 47.000 44.800
+ -14027558.060 6 -10930565.518 5 22264036.022 22264033.958 22264034.890
+ 40.400 35.700
+ -15779356.721 6 -12295597.199 5 21481512.072 21481510.657 21481511.306
+ 41.900 35.700
+ 06 1 2 15 16 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -670120.846 3 -522172.105 2 24309426.718 24309425.873 24309426.297
+ 21.600 13.900
+ -17633895.179 7 -13740696.278 6 21275393.871 21275390.401 21275392.098
+ 47.600 41.600
+ -23231514.781 7 -18102482.471 7 20750668.373 20750667.912 20750667.532
+ 45.200 43.600
+ -2279265.560 4 -1776054.066 2 24126119.832 24126119.238 24126118.896
+ 29.200 17.800
+ -2841311.603 4 -2214010.529 4 24247967.993 24247967.662 24247967.050
+ 24.600 25.600
+ -22525288.334 7 -17552176.017 7 20480070.217 20480069.257 20480069.175
+ 47.000 45.000
+ -14098969.473 6 -10986210.788 6 22250446.775 22250444.961 22250445.733
+ 40.700 36.500
+ -15846324.447 7 -12347779.808 5 21468768.072 21468766.830 21468767.667
+ 42.300 35.500
+ 06 1 2 15 16 30.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -703944.449 3 -548528.192 3 24302990.522 24302990.877 24302990.003
+ 23.400 19.900
+ -17571662.415 7 -13692203.235 6 21287236.208 21287232.924 21287234.472
+ 47.400 41.500
+ -23202923.245 7 -18080203.374 7 20756109.497 20756108.622 20756108.459
+ 45.200 43.400
+ -2175392.138 4 -1695113.801 2 24145885.884 24145885.772 24145885.103
+ 27.100 17.000
+ -2860023.474 4 -2228591.221 4 24244406.911 24244406.744 24244406.328
+ 26.800 24.600
+ -22554720.349 7 -17575110.064 7 20474469.431 20474468.646 20474468.461
+ 46.800 45.000
+ -14170241.933 6 -11041747.763 6 22236884.074 22236882.140 22236883.089
+ 41.000 36.000
+ -15912839.093 7 -12399609.375 5 21456111.138 21456109.624 21456110.474
+ 42.400 35.600
+ 06 1 2 15 17 0.0000000 0 8G26G19G27G 3G29G 8G28G11
+ -737177.200 3 -574423.905 2 24296666.199 24296666.115 24296665.677
+ 22.100 12.600
+ -17509096.253 7 -13643450.401 6 21299142.371 21299138.969 21299140.591
+ 47.300 41.400
+ -23173793.401 7 -18057504.823 7 20761652.388 20761651.971 20761651.558
+ 45.100 43.400
+ -2071466.270 4 -1614132.681 2 24165662.074 24165662.571 24165660.992
+ 25.300 15.100
+ -2878197.731 4 -2242752.989 4 24240948.439 24240948.319 24240947.743
+ 25.600 26.200
+ -22583557.198 7 -17597580.349 7 20468981.846 20468981.171 20468980.881
+ 47.000 45.100
+ -14241374.213 6 -11097175.517 5 22223348.377 22223346.045 22223347.313
+ 41.200 35.700
+ -15978898.619 7 -12451084.301 5 21443540.350 21443538.687 21443539.698
+ 42.600 35.400
+ 06 1 2 15 17 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -769818.140 3 -599858.336 1 24290454.996 24290454.616 24290454.503
+ 19.900 9.000
+ -17446198.797 7 -13594439.417 6 21311111.302 21311108.017 21311109.574
+ 47.300 41.500
+ -23144125.820 7 -18034387.254 7 20767298.151 20767297.605 20767297.207
+ 45.100 43.600
+ -1967489.503 4 -1533111.909 2 24185448.263 24185448.997 24185447.208
+ 26.800 17.800
+ -2895834.150 3 -2256495.649 4 24237591.858 24237592.690 24237591.382
+ 21.100 27.600
+ -179002.093 2 -139482.430 3 24687845.685 24687846.351 24687844.979
+ 17.000 21.600
+ -22611796.711 7 -17619585.172 7 20463608.246 20463607.327 20463607.213
+ 47.000 45.100
+ -14312365.768 6 -11152493.628 5 22209838.926 22209836.683 22209837.872
+ 41.100 35.600
+ -16044500.628 7 -12502202.723 5 21431056.820 21431055.185 21431056.258
+ 42.800 35.800
+ 06 1 2 15 18 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -801866.240 3 -624830.888 24284356.611 24284356.078 24284355.882
+ 21.600 3.000
+ -17382972.119 7 -13545171.894 6 21323143.127 21323139.593 21323141.257
+ 47.500 41.300
+ -23113920.739 7 -18010850.846 7 20773046.282 20773045.335 20773045.197
+ 45.200 43.300
+ -1863463.523 4 -1452052.760 3 24205243.651 24205244.931 24205242.639
+ 27.100 21.100
+ -2912932.073 3 -2269818.708 4 24234338.815 24234338.795 24234338.199
+ 23.000 25.900
+ -282118.866 3 -219833.166 3 24668223.728 24668223.881 24668222.860
+ 19.300 22.100
+ -22639437.991 7 -17641123.841 7 20458348.165 20458347.286 20458347.201
+ 47.200 45.100
+ -14383215.380 6 -11207701.122 6 22196356.645 22196354.644 22196355.645
+ 41.100 36.400
+ -16109642.790 7 -12552962.811 6 21418660.266 21418658.962 21418659.775
+ 42.700 36.200
+ 06 1 2 15 18 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -833320.414 3 -649340.732 2 24278370.604 24278371.224 24278369.771
+ 22.100 15.100
+ -17319418.160 7 -13495649.346 6 21335237.008 21335233.633 21335235.117
+ 47.500 41.400
+ -23083178.268 7 -17986895.694 7 20778896.091 20778895.474 20778895.137
+ 45.100 43.300
+ -1759389.917 4 -1370956.499 2 24225048.390 24225049.222 24225047.300
+ 27.900 17.000
+ -2929491.337 3 -2282722.018 4 24231187.259 24231187.673 24231186.579
+ 23.000 26.800
+ -385121.913 3 -300095.311 4 24648622.572 24648622.983 24648621.878
+ 19.300 26.800
+ -22666479.363 7 -17662195.049 7 20453202.295 20453201.575 20453201.294
+ 46.800 45.000
+ -14453922.334 6 -11262797.451 6 22182901.571 22182899.624 22182900.577
+ 41.100 36.500
+ -16174323.082 7 -12603362.999 5 21406352.436 21406350.348 21406351.719
+ 43.000 35.700
+ 06 1 2 15 19 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -864179.655 4 -673386.865 3 24272498.972 24272498.610 24272498.522
+ 25.900 18.600
+ -17255539.105 7 -13445873.476 6 21347392.706 21347389.466 21347390.913
+ 47.500 41.300
+ -23051899.148 7 -17962522.377 7 20784848.326 20784847.787 20784847.399
+ 45.200 43.400
+ -1655270.278 4 -1289824.373 2 24244860.406 24244862.298 24244860.292
+ 24.600 15.100
+ -2945511.646 3 -2295205.394 4 24228139.324 24228138.955 24228138.489
+ 23.000 25.300
+ -488009.886 3 -380267.739 4 24629043.628 24629044.289 24629043.038
+ 20.500 26.800
+ -22692918.731 7 -17682797.163 7 20448171.103 20448170.254 20448170.089
+ 46.700 44.900
+ -14524485.681 6 -11317781.866 6 22169473.921 22169471.893 22169472.852
+ 41.300 36.600
+ -16238539.332 7 -12653401.613 6 21394132.152 21394130.660 21394131.542
+ 42.700 36.000
+ 06 1 2 15 19 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -894443.287 3 -696968.918 2 24266739.997 24266739.328 24266739.445
+ 22.100 12.600
+ -17191336.825 7 -13395845.745 6 21359610.178 21359606.779 21359608.240
+ 47.400 41.300
+ -23020084.062 7 -17937731.428 7 20790902.690 20790902.036 20790901.667
+ 45.300 43.400
+ -1551106.420 4 -1208657.770 2 24264683.616 24264684.411 24264682.642
+ 25.300 17.000
+ -2960992.665 3 -2307268.523 4 24225193.114 24225193.234 24225192.343
+ 23.400 26.500
+ -590781.559 3 -460349.559 4 24609486.495 24609487.657 24609486.219
+ 21.100 25.900
+ -22718754.952 7 -17702929.294 7 20443254.457 20443253.731 20443253.519
+ 46.900 44.900
+ -14594903.991 7 -11372653.281 6 22156073.776 22156071.688 22156072.852
+ 42.000 36.700
+ -16302289.301 7 -12703076.879 6 21382000.414 21381999.616 21382000.140
+ 42.900 36.300
+ 06 1 2 15 20 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -924110.212 4 -720085.975 2 24261094.679 24261093.897 24261094.060
+ 27.400 16.100
+ -17126813.293 7 -13345567.692 6 21371888.496 21371885.184 21371886.644
+ 47.300 41.100
+ -22987733.005 7 -17912522.834 7 20797058.794 20797058.173 20797057.850
+ 45.300 43.100
+ -1446899.619 4 -1127457.749 3 24284514.202 24284514.175 24284512.957
+ 24.900 18.600
+ -2975934.344 3 -2318911.409 4 24222349.839 24222349.780 24222349.118
+ 23.000 26.200
+ -693435.943 4 -540340.018 3 24589952.844 24589952.964 24589952.205
+ 24.200 23.800
+ -22743986.814 7 -17722590.494 7 20438453.212 20438452.319 20438452.174
+ 46.700 44.900
+ -14665177.323 6 -11427411.711 6 22142701.032 22142699.194 22142700.067
+ 41.400 36.700
+ -16365570.803 7 -12752387.115 6 21369958.944 21369957.289 21369958.293
+ 42.800 36.200
+ 06 1 2 15 20 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -953179.381 4 -742737.336 2 24255562.290 24255562.095 24255561.741
+ 24.200 13.900
+ -17061970.619 7 -13295040.953 6 21384227.593 21384224.313 21384225.833
+ 47.500 41.200
+ -22954846.708 7 -17886897.173 7 20803316.930 20803316.278 20803315.940
+ 45.200 43.300
+ -1342651.438 4 -1046225.489 3 24304351.427 24304352.579 24304350.311
+ 25.300 18.600
+ -2990336.252 3 -2330133.651 4 24219608.679 24219609.131 24219608.099
+ 21.100 27.100
+ -795972.042 4 -620238.310 3 24570440.580 24570441.118 24570440.367
+ 26.800 23.800
+ -22768612.444 7 -17741779.306 7 20433767.137 20433766.257 20433766.139
+ 46.700 44.900
+ -14735304.190 6 -11482056.026 6 22129356.257 22129354.269 22129355.354
+ 41.500 36.600
+ -16428381.562 7 -12801330.531 6 21358006.941 21358004.733 21358005.982
+ 43.100 36.000
+ 06 1 2 15 21 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -981650.111 4 -764922.360 2 24250144.373 24250144.943 24250144.083
+ 25.600 17.800
+ -16996810.436 7 -13244266.809 6 21396627.350 21396623.959 21396625.544
+ 47.600 40.900
+ -22921425.531 7 -17860854.724 7 20809676.604 20809676.234 20809675.778
+ 45.300 43.200
+ -1238363.476 3 -964962.230 2 24324196.406 24324197.654 24324195.490
+ 22.600 17.000
+ -3004198.275 3 -2340935.254 4 24216971.255 24216971.505 24216970.467
+ 22.600 26.500
+ -898387.893 4 -700042.921 4 24550952.039 24550952.222 24550951.257
+ 28.400 25.900
+ -22792630.712 7 -17760494.854 7 20429196.514 20429195.742 20429195.529
+ 46.800 45.000
+ -14805283.623 6 -11536585.452 6 22116039.726 22116037.883 22116038.766
+ 41.600 36.900
+ -16490719.500 7 -12849905.544 6 21346143.927 21346142.221 21346143.269
+ 42.800 36.200
+ 06 1 2 15 21 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1009521.490 4 -786640.297 3 24244841.162 24244841.470 24244840.638
+ 27.400 21.100
+ -16931335.197 7 -13193247.164 6 21409087.222 21409083.546 21409085.175
+ 47.500 41.000
+ -22887470.263 7 -17834396.102 7 20816138.400 20816137.780 20816137.383
+ 45.300 43.300
+ -1134037.166 4 -883669.063 3 24344048.772 24344049.880 24344048.325
+ 26.200 19.300
+ -3017519.972 4 -2351315.827 4 24214436.387 24214436.483 24214435.660
+ 24.600 27.100
+ -1000682.876 4 -779753.345 3 24531486.113 24531485.789 24531485.519
+ 28.800 23.000
+ -22816039.524 7 -17778735.500 7 20424742.039 20424741.324 20424741.006
+ 46.700 45.100
+ -14875114.613 6 -11590999.210 6 22102751.473 22102749.546 22102750.460
+ 41.800 37.500
+ -16552582.223 7 -12898110.261 6 21334371.737 21334370.302 21334371.129
+ 42.900 36.800
+ 06 1 2 15 22 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1036792.798 4 -807890.687 3 24239651.504 24239651.804 24239651.092
+ 29.000 22.100
+ -16865546.805 7 -13141983.508 6 21421606.034 21421602.702 21421604.173
+ 47.500 41.100
+ -22852981.546 7 -17807521.809 7 20822701.331 20822700.733 20822700.400
+ 45.500 43.100
+ -1029674.158 3 -802347.266 2 24363908.944 24363909.226 24363907.885
+ 23.400 16.100
+ -3030301.609 4 -2361275.523 4 24212004.310 24212003.882 24212003.489
+ 24.600 27.400
+ -1102855.390 4 -859368.312 2 24512042.591 24512042.984 24512042.281
+ 26.500 17.800
+ -22838838.021 7 -17796500.575 7 20420403.510 20420402.951 20420402.573
+ 46.700 45.300
+ -14944796.358 6 -11645296.665 6 22089491.159 22089489.356 22089490.214
+ 41.600 36.900
+ -16613968.225 7 -12945943.506 6 21322690.400 21322688.862 21322689.782
+ 43.400 36.500
+ 06 1 2 15 22 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1063463.222 4 -828672.830 4 24234576.554 24234576.555 24234576.134
+ 28.800 24.600
+ -16799446.998 7 -13090477.186 6 21434184.575 21434181.087 21434182.672
+ 47.300 40.900
+ -22817959.818 7 -17780232.177 7 20829365.868 20829365.178 20829364.888
+ 45.400 43.100
+ -925276.201 4 -720998.252 2 24383774.667 24383775.827 24383774.075
+ 24.200 15.100
+ -3042542.843 4 -2370814.156 4 24209674.495 24209674.941 24209673.791
+ 24.200 29.200
+ -1204904.471 3 -938887.102 3 24492623.052 24492623.982 24492622.405
+ 23.000 20.500
+ -22861024.878 7 -17813789.049 7 20416181.615 20416180.889 20416180.657
+ 46.700 45.200
+ -15014327.955 6 -11699477.128 6 22076260.047 22076257.931 22076258.922
+ 41.800 37.100
+ -16674875.163 7 -12993403.455 6 21311100.427 21311098.584 21311099.694
+ 43.400 36.500
+ 06 1 2 15 23 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1089531.791 4 -848986.051 3 24229615.511 24229615.699 24229614.917
+ 27.900 21.100
+ -16733038.134 7 -13038730.041 6 21446821.619 21446818.256 21446819.704
+ 47.100 40.900
+ -22782405.689 7 -17752527.690 7 20836131.569 20836130.951 20836130.620
+ 45.400 43.100
+ -820844.630 4 -639623.078 3 24403648.457 24403649.398 24403647.691
+ 27.400 19.900
+ -3054243.388 3 -2379931.491 4 24207447.987 24207447.832 24207447.194
+ 22.600 26.500
+ -1306828.839 3 -1018308.688 3 24473227.476 24473228.213 24473227.007
+ 22.100 20.500
+ -22882598.590 7 -17830599.747 7 20412076.150 20412075.545 20412075.278
+ 46.700 45.200
+ -15083708.430 7 -11753539.835 6 22063057.263 22063055.237 22063056.342
+ 42.200 37.000
+ -16735300.821 7 -13040488.369 6 21299601.748 21299600.045 21299601.018
+ 43.400 36.600
+ 06 1 2 15 23 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1114997.998 5 -868829.856 4 24224770.093 24224770.074 24224769.561
+ 30.400 25.900
+ -16666321.930 7 -12986743.414 6 21459517.142 21459513.929 21459515.293
+ 47.000 40.700
+ -22746319.800 7 -17724408.850 7 20842998.240 20842997.803 20842997.430
+ 45.200 42.600
+ -716380.914 4 -558222.873 3 24423526.804 24423528.004 24423525.967
+ 25.900 19.300
+ -3065403.513 4 -2388627.683 4 24205324.240 24205324.628 24205323.665
+ 24.200 27.100
+ -1408627.430 3 -1097632.291 3 24453856.429 24453856.416 24453855.622
+ 23.000 19.900
+ -22903557.735 7 -17846931.566 7 20408087.928 20408087.174 20408086.960
+ 47.000 45.100
+ -15152936.779 7 -11807484.002 6 22049883.344 22049881.514 22049882.436
+ 42.000 37.200
+ -16795242.925 7 -13087196.490 6 21288195.260 21288193.453 21288194.440
+ 43.400 36.700
+ 06 1 2 15 24 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1139860.979 5 -888203.639 4 24220038.628 24220038.667 24220038.147
+ 30.100 25.900
+ -16599300.395 7 -12934518.868 6 21472270.991 21472267.773 21472269.130
+ 46.800 40.800
+ -22709702.828 7 -17695876.175 7 20849966.472 20849965.628 20849965.404
+ 45.000 42.500
+ -611886.669 3 -476798.829 2 24443411.746 24443412.670 24443410.548
+ 22.600 17.800
+ -3076022.705 3 -2396902.413 4 24203302.954 24203303.855 24203302.426
+ 22.100 28.400
+ -1510298.909 3 -1176856.851 3 24434509.107 24434509.638 24434508.493
+ 22.600 22.100
+ -22923901.037 7 -17862783.508 7 20404216.640 20404216.027 20404215.778
+ 46.900 45.300
+ -15222011.717 7 -11861308.618 6 22036738.936 22036737.240 22036737.993
+ 42.200 37.800
+ -16854699.910 7 -13133526.589 6 21276880.445 21276879.284 21276880.013
+ 43.900 37.200
+ 06 1 2 15 24 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1164120.108 4 -907106.819 4 24215422.458 24215422.429 24215421.908
+ 27.900 25.600
+ -16531975.697 7 -12882058.097 6 21485082.409 21485079.109 21485080.584
+ 46.700 40.500
+ -22672555.403 7 -17666930.162 7 20857035.237 20857034.693 20857034.340
+ 45.200 42.500
+ -507363.400 4 -395352.193 2 24463301.248 24463302.738 24463300.676
+ 25.300 12.600
+ -3086101.304 3 -2404755.873 4 24201385.683 24201385.928 24201385.228
+ 22.600 28.800
+ -1611842.280 3 -1255981.520 4 24415186.063 24415186.299 24415185.333
+ 21.600 24.200
+ -22943627.485 7 -17878154.781 7 20400463.244 20400462.186 20400462.216
+ 46.900 45.200
+ -15290932.638 7 -11915013.226 6 22023623.844 22023621.916 22023622.807
+ 42.000 37.900
+ -16913669.299 7 -13179476.745 6 21265659.767 21265657.743 21265658.833
+ 43.800 37.200
+ 06 1 2 15 25 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1187774.708 4 -925538.990 4 24210920.777 24210921.003 24210920.383
+ 28.100 26.800
+ -16464349.606 7 -12829362.469 6 21497951.518 21497948.082 21497949.596
+ 47.000 40.500
+ -22634878.100 7 -17637571.258 7 20864205.218 20864204.500 20864204.171
+ 45.200 42.700
+ -402812.364 4 -313883.952 3 24483197.716 24483198.211 24483196.785
+ 27.600 19.900
+ -3095639.103 3 -2412187.923 4 24199570.825 24199570.966 24199570.037
+ 23.000 29.000
+ -1713256.213 3 -1335005.379 4 24395887.160 24395887.966 24395886.724
+ 23.000 24.200
+ -22962735.588 7 -17893044.227 7 20396826.789 20396826.027 20396825.880
+ 47.000 45.200
+ -15359698.526 7 -11968597.035 6 22010537.969 22010535.947 22010536.989
+ 42.200 37.300
+ -16972149.410 7 -13225045.643 6 21254531.226 21254529.123 21254530.437
+ 43.800 36.700
+ 06 1 2 15 25 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1210824.116 4 -943499.592 4 24206534.649 24206535.098 24206534.100
+ 27.400 28.100
+ -16396424.472 7 -12776433.818 6 21510877.231 21510873.704 21510875.316
+ 47.000 40.300
+ -22596672.028 7 -17607800.322 7 20871475.566 20871474.896 20871474.614
+ 45.100 42.300
+ -298235.096 4 -232395.239 2 24503097.646 24503098.127 24503096.901
+ 25.600 13.900
+ -3104636.111 3 -2419198.575 4 24197858.021 24197858.813 24197857.446
+ 19.900 29.500
+ -1814539.457 4 -1413927.354 4 24376613.760 24376614.254 24376613.559
+ 26.500 26.200
+ -22981223.823 7 -17907450.658 7 20393308.704 20393307.946 20393307.755
+ 47.100 45.300
+ -15428308.470 7 -12022059.330 6 21997481.666 21997480.113 21997480.741
+ 42.000 37.800
+ -17030137.792 7 -13270231.385 6 21243496.344 21243494.231 21243495.616
+ 43.900 37.200
+ 06 1 2 15 26 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1233267.820 4 -960988.235 4 24202263.845 24202264.006 24202263.365
+ 25.300 28.100
+ -16328202.044 7 -12723273.511 6 21523859.494 21523856.096 21523857.613
+ 47.100 40.400
+ -22557937.497 7 -17577617.607 7 20878846.386 20878845.786 20878845.530
+ 44.900 42.200
+ -193633.157 3 -150887.272 1 24523001.993 24523002.868 24523000.949
+ 21.600 11.000
+ -3113092.503 3 -2425788.009 4 24196249.083 24196249.478 24196248.717
+ 21.600 28.400
+ -1915690.888 4 -1492746.635 4 24357365.739 24357365.799 24357364.751
+ 26.500 25.900
+ -22999091.217 7 -17921373.316 7 20389908.771 20389907.914 20389907.791
+ 47.000 45.400
+ -15496761.051 7 -12075398.993 6 21984455.653 21984454.054 21984454.739
+ 42.300 38.200
+ -17087632.857 7 -13315032.727 6 21232554.922 21232553.112 21232554.508
+ 44.100 36.900
+ 06 1 2 15 26 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1255105.089 4 -978004.268 4 24198108.243 24198108.455 24198107.637
+ 25.900 29.200
+ -16259684.266 7 -12669883.061 6 21536898.044 21536894.556 21536896.106
+ 47.000 40.200
+ -22518675.504 7 -17547023.880 7 20886318.059 20886317.203 20886316.809
+ 45.000 42.300
+ -89008.030 3 -69361.289 1 24542912.566 24542911.714 24542910.966
+ 22.100 6.500
+ -3121008.255 3 -2431956.119 4 24194743.694 24194743.736 24194742.694
+ 22.600 28.800
+ -2016709.524 3 -1571462.424 4 24338141.869 24338142.468 24338141.297
+ 22.100 24.600
+ -23016337.003 7 -17934811.605 7 20386626.794 20386626.093 20386625.884
+ 46.800 45.200
+ -15565055.527 7 -12128615.467 6 21971459.684 21971457.888 21971458.784
+ 42.500 38.100
+ -17144632.594 7 -13359448.102 6 21221708.366 21221706.619 21221707.764
+ 44.000 37.200
+ 06 1 2 15 27 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1276335.393 3 -994547.382 5 24194067.960 24194068.681 24194067.478
+ 23.000 30.800
+ -16190873.070 7 -12616263.978 6 21549992.169 21549988.974 21549990.266
+ 46.900 39.800
+ -22478886.737 7 -17516019.679 7 20893888.966 20893888.788 20893888.208
+ 45.000 42.200
+ 15638.873 4 12181.748 2 24562825.774 24562826.489 24562825.160
+ 25.900 16.100
+ -3128383.424 3 -2437703.032 4 24193339.945 24193339.679 24193339.195
+ 22.600 26.500
+ -2117593.841 3 -1650073.545 4 24318944.025 24318945.057 24318943.787
+ 21.600 25.900
+ -23032959.240 7 -17947764.011 7 20383463.852 20383463.002 20383462.803
+ 46.900 45.200
+ -15633190.865 7 -12181707.937 6 21958494.079 21958492.309 21958493.045
+ 42.200 38.400
+ -17201135.029 7 -13403475.958 6 21210956.059 21210954.585 21210955.638
+ 44.300 37.400
+ 06 1 2 15 27 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1296958.207 3 -1010617.115 5 24190143.466 24190144.311 24190143.095
+ 21.600 30.200
+ -16121770.553 7 -12562417.886 6 21563142.005 21563138.903 21563140.145
+ 46.500 40.200
+ -22438571.870 7 -17484605.543 7 20901561.048 20901560.556 20901560.106
+ 45.300 42.300
+ 120306.051 4 93740.508 2 24582743.773 24582745.062 24582743.013
+ 26.200 17.000
+ -3135217.962 3 -2443028.684 4 24192038.761 24192039.649 24192037.929
+ 19.300 29.700
+ -2218343.019 4 -1728579.333 4 24299772.783 24299772.884 24299772.198
+ 24.900 24.600
+ -23048956.905 7 -17960229.735 7 20380419.327 20380418.691 20380418.420
+ 46.600 45.300
+ -15701166.254 7 -12234675.766 6 21945558.921 21945556.904 21945557.900
+ 42.500 38.100
+ -17257138.105 7 -13447114.700 6 21200299.315 21200297.515 21200298.647
+ 43.800 37.700
+ 06 1 2 15 28 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1316973.075 3 -1026213.138 4 24186334.613 24186335.946 24186334.054
+ 22.100 27.600
+ -16052378.716 7 -12508346.355 6 21576346.946 21576343.665 21576344.933
+ 46.500 40.100
+ -22397731.585 7 -17452781.981 7 20909333.099 20909332.252 20909331.914
+ 45.100 42.400
+ 224992.135 4 175314.009 2 24602665.088 24602665.909 24602664.089
+ 25.600 16.100
+ -3141512.149 3 -2447933.260 4 24190841.618 24190841.601 24190841.076
+ 21.600 29.200
+ -2318955.746 4 -1806978.829 4 24280626.909 24280627.043 24280625.984
+ 26.500 25.900
+ -23064329.104 7 -17972208.082 7 20377494.400 20377493.559 20377493.422
+ 46.800 45.200
+ -15768980.475 7 -12287518.018 6 21932653.988 21932652.245 21932653.131
+ 42.600 37.900
+ -17312639.903 7 -13490362.825 6 21189737.581 21189735.820 21189736.923
+ 43.900 37.300
+ 06 1 2 15 28 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1336379.377 3 -1041334.912 4 24182642.105 24182642.451 24182641.768
+ 23.400 28.400
+ -15982699.603 7 -12454050.972 6 21589606.323 21589603.311 21589604.564
+ 46.700 40.100
+ -22356367.082 7 -17420549.942 7 20917203.897 20917203.667 20917203.180
+ 45.200 42.100
+ 329695.800 3 256901.200 2 24622587.806 24622589.769 24622587.122
+ 21.600 13.900
+ -3147265.852 3 -2452416.690 4 24189746.764 24189746.818 24189746.031
+ 20.500 28.100
+ -2419430.864 4 -1885271.071 4 24261506.946 24261506.929 24261506.203
+ 25.900 25.900
+ -23079074.807 7 -17983698.252 7 20374688.056 20374687.545 20374687.144
+ 46.600 45.300
+ -15836632.384 7 -12340233.785 6 21919780.533 21919778.536 21919779.515
+ 42.500 38.300
+ -17367638.699 7 -13533218.995 6 21179272.018 21179269.823 21179271.147
+ 44.000 37.400
+ 06 1 2 15 29 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1355176.754 3 -1055982.238 5 24179064.828 24179065.672 24179064.330
+ 19.300 30.100
+ -15912734.989 7 -12399533.120 6 21602920.287 21602916.995 21602918.420
+ 46.500 39.600
+ -22314479.079 7 -17387909.985 7 20925175.472 20925174.589 20925174.390
+ 45.200 42.000
+ 434415.466 3 338500.892 2 24642516.669 24642516.897 24642515.756
+ 22.600 13.900
+ -3152479.424 3 -2456479.232 4 24188754.270 24188754.185 24188753.399
+ 18.600 25.300
+ -2519766.880 4 -1963454.951 4 24242413.729 24242413.350 24242413.045
+ 27.600 25.900
+ -23093192.541 7 -17994699.098 7 20372001.731 20372001.008 20372000.692
+ 46.500 45.100
+ -15904121.141 7 -12392822.427 6 21906937.604 21906935.859 21906936.705
+ 42.500 38.100
+ -17422132.539 7 -13575681.707 6 21168901.503 21168899.956 21168901.021
+ 44.100 37.500
+ 06 1 2 15 29 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1373364.873 3 -1070154.813 5 24175603.849 24175604.494 24175603.264
+ 22.600 30.100
+ -15842487.402 7 -12344794.768 6 21616287.870 21616284.818 21616286.011
+ 46.500 39.700
+ -22272068.631 7 -17354862.912 7 20933245.662 20933245.124 20933244.764
+ 45.000 42.000
+ 539149.598 3 420111.851 2 24662446.947 24662447.319 24662445.893
+ 22.100 12.600
+ -3157153.174 4 -2460121.163 4 24187865.143 24187865.232 24187864.584
+ 24.200 26.800
+ -2619963.077 5 -2041529.865 4 24223346.646 24223347.084 24223346.185
+ 31.100 28.600
+ -23106681.832 7 -18005210.243 7 20369434.618 20369434.156 20369433.614
+ 46.200 45.200
+ -15971445.694 7 -12445283.118 6 21894126.408 21894124.375 21894125.434
+ 43.100 38.000
+ -17476119.406 7 -13617749.377 6 21158628.311 21158626.659 21158627.599
+ 44.300 37.700
+ 06 1 2 15 30 0.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1390943.256 3 -1083852.291 4 24172258.676 24172259.378 24172258.348
+ 20.500 29.900
+ -15771957.993 7 -12289836.816 6 21629709.059 21629705.908 21629707.416
+ 46.600 39.200
+ -22229136.677 7 -17321409.485 6 20941415.095 20941414.876 20941414.406
+ 45.300 41.900
+ 643896.867 3 501733.065 2 24682379.253 24682380.465 24682378.656
+ 23.000 15.100
+ -3161287.081 3 -2463342.383 4 24187078.774 24187078.702 24187077.904
+ 22.100 27.900
+ -2720018.302 4 -2119494.939 4 24204307.175 24204306.957 24204306.335
+ 29.700 29.700
+ -23119541.048 7 -18015230.421 7 20366987.465 20366987.132 20366986.516
+ 46.300 45.200
+ -16038605.029 7 -12497615.072 6 21881346.510 21881344.456 21881345.508
+ 43.300 38.400
+ -17529597.500 7 -13659420.615 6 21148451.661 21148450.112 21148451.101
+ 44.300 37.500
+ 06 1 2 15 30 30.0000000 0 9G26G19G27G 3G29G17G 8G28G11
+ -1407911.598 3 -1097074.370 4 24169029.711 24169030.217 24169029.280
+ 20.500 28.600
+ -15701149.118 7 -12234661.097 6 21643183.824 21643180.601 21643181.958
+ 46.400 39.500
+ -22185683.705 7 -17287550.062 6 20949684.774 20949683.722 20949683.491
+ 45.300 41.900
+ 748656.152 3 583363.618 3 24702315.015 24702316.793 24702313.871
+ 21.100 21.100
+ -3164881.518 3 -2466143.263 4 24186394.505 24186394.890 24186393.895
+ 22.100 29.700
+ -2819931.084 4 -2197348.971 4 24185294.003 24185294.266 24185293.488
+ 29.200 29.200
+ -23131769.524 7 -18024759.110 7 20364660.634 20364660.085 20364659.651
+ 46.200 45.200
+ -16105598.046 7 -12549817.427 6 21868597.948 21868596.289 21868597.034
+ 43.100 38.800
+ -17582565.087 7 -13700694.041 6 21138372.450 21138370.739 21138371.799
+ 44.300 37.700
+ 06 1 2 15 31 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1424269.478 3 -1109820.830 4 24165917.521 24165917.795 24165916.931
+ 19.900 28.400
+ -15630062.776 7 -12179269.170 6 21656711.041 21656707.870 21656709.327
+ 46.500 39.400
+ -22141710.941 7 -17253285.608 6 20958052.138 20958051.429 20958051.210
+ 45.200 41.400
+ -3167936.684 3 -2468523.940 4 24185813.524 24185813.574 24185812.748
+ 23.000 28.800
+ -2919700.645 4 -2275091.439 4 24166308.430 24166308.550 24166307.764
+ 29.700 28.400
+ -23143366.079 7 -18033795.397 7 20362453.918 20362453.352 20362452.954
+ 46.300 45.200
+ -16172423.725 7 -12601889.382 6 21855881.653 21855879.621 21855880.544
+ 42.900 38.700
+ -17635020.520 7 -13741568.380 6 21128390.344 21128388.605 21128389.774
+ 44.500 37.700
+ 06 1 2 15 31 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1440016.725 2 -1122091.351 3 24162920.209 24162920.338 24162919.505
+ 16.100 20.500
+ -15558701.078 7 -12123662.681 6 21670290.801 21670287.649 21670288.956
+ 46.500 39.700
+ -22097219.298 7 -17218616.836 6 20966518.595 20966518.146 20966517.742
+ 45.400 41.600
+ -3170452.951 3 -2470484.704 4 24185333.691 24185334.677 24185333.178
+ 22.100 28.400
+ -3019325.796 4 -2352721.394 4 24147350.067 24147350.613 24147349.480
+ 28.600 28.800
+ -23154330.080 7 -18042338.784 7 20360367.526 20360366.960 20360366.544
+ 46.300 45.300
+ -16239081.041 7 -12653830.139 6 21843196.726 21843195.112 21843195.800
+ 42.700 38.700
+ -17686961.601 7 -13782041.927 6 21118506.579 21118504.566 21118505.908
+ 44.600 37.900
+ 06 1 2 15 32 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1455152.746 2 -1133885.679 4 24160039.777 24160039.852 24160039.672
+ 16.100 27.400
+ -15487065.773 7 -12067842.995 6 21683922.621 21683919.527 21683920.688
+ 46.200 39.500
+ -22052209.810 7 -17183544.543 6 20975084.064 20975083.263 20975082.848
+ 45.200 41.600
+ -3172430.323 3 -2472025.536 4 24184957.924 24184958.422 24184956.930
+ 18.600 29.500
+ -3118805.502 4 -2430238.024 4 24128420.078 24128420.193 24128419.191
+ 28.100 29.200
+ -23164660.092 7 -18050388.150 7 20358402.011 20358401.279 20358401.008
+ 46.400 45.300
+ -16305568.853 7 -12705638.825 6 21830544.902 21830542.950 21830543.794
+ 43.000 39.200
+ -17738386.915 7 -13822113.575 6 21108720.776 21108718.607 21108720.001
+ 44.500 38.100
+ 06 1 2 15 32 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1469677.423 2 -1145203.596 4 24157274.995 24157277.467 24157275.057
+ 12.600 28.400
+ -15415158.846 7 -12011811.654 6 21697606.046 21697602.940 21697604.271
+ 46.000 39.200
+ -22006683.643 7 -17148069.641 6 20983746.791 20983746.518 20983746.044
+ 45.200 41.300
+ -3173869.240 3 -2473146.832 5 24184684.043 24184685.200 24184683.354
+ 23.800 30.800
+ -3218138.582 4 -2507640.407 4 24109517.310 24109517.878 24109516.811
+ 29.500 29.500
+ -23174355.751 7 -18057943.219 7 20356556.899 20356556.309 20356555.979
+ 46.500 45.300
+ -16371885.890 7 -12757314.429 6 21817924.774 21817923.499 21817923.881
+ 43.100 39.300
+ -17789294.405 7 -13861781.724 6 21099033.122 21099031.331 21099032.565
+ 44.900 37.800
+ 06 1 2 15 33 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1483590.522 2 -1156045.006 3 24154628.708 24154628.438 24154627.946
+ 13.900 23.000
+ -15342982.462 7 -11955570.352 6 21711340.676 21711337.628 21711338.759
+ 45.800 39.200
+ -21960641.658 7 -17112192.812 6 20992508.556 20992507.964 20992507.669
+ 45.100 41.400
+ -3174770.216 3 -2473848.915 4 24184513.185 24184512.976 24184512.344
+ 22.600 27.900
+ -3317323.628 4 -2584927.447 4 24090642.892 24090643.262 24090642.410
+ 29.500 27.600
+ -23183416.141 7 -18065003.272 7 20354832.829 20354832.116 20354831.784
+ 46.300 45.400
+ -16438031.451 7 -12808856.417 6 21805338.295 21805336.277 21805337.126
+ 43.600 39.400
+ -17839682.360 7 -13901045.039 6 21089444.900 21089442.672 21089444.120
+ 45.100 38.000
+ 06 1 2 15 33 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1496891.825 2 -1166409.699 4 24152096.637 24152097.111 24152095.872
+ 16.100 27.100
+ -15270538.225 7 -11899120.333 6 21725126.392 21725123.249 21725124.431
+ 45.600 39.200
+ -21914085.151 7 -17075915.049 6 21001368.498 21001367.439 21001367.250
+ 44.800 41.300
+ -3175133.570 4 -2474132.045 4 24184444.332 24184443.976 24184443.842
+ 25.900 28.100
+ -3416359.692 4 -2662098.412 4 24071797.462 24071797.252 24071796.945
+ 29.200 27.900
+ -23191839.967 7 -18071567.302 7 20353229.649 20353229.096 20353228.707
+ 46.100 45.200
+ -16504004.286 7 -12860263.819 6 21792783.866 21792782.001 21792782.893
+ 43.800 39.200
+ -17889549.236 7 -13939902.319 6 21079955.244 21079953.488 21079954.548
+ 44.900 38.500
+ 06 1 2 15 34 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1509581.201 2 -1176297.507 4 24149683.099 24149683.665 24149682.275
+ 12.600 25.300
+ -15197828.288 7 -11842463.267 6 21738962.835 21738959.663 21738960.917
+ 45.700 38.900
+ -21867014.870 7 -17039236.943 6 21010325.151 21010324.585 21010324.244
+ 44.900 41.200
+ -3174959.433 3 -2473996.390 4 24184476.699 24184477.410 24184475.926
+ 21.600 28.800
+ -3515245.739 5 -2739152.492 4 24052979.845 24052980.245 24052979.192
+ 30.100 29.700
+ -23199626.720 7 -18077634.909 7 20351748.023 20351747.391 20351746.998
+ 46.200 45.200
+ -16569803.247 7 -12911535.724 6 21780262.802 21780260.784 21780261.739
+ 43.800 39.300
+ -17938893.161 7 -13978352.109 6 21070565.478 21070563.584 21070564.790
+ 45.100 38.600
+ 06 1 2 15 34 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1521658.354 3 -1185708.273 3 24147384.384 24147385.236 24147384.203
+ 18.600 23.400
+ -15124854.540 7 -11785600.639 6 21752849.324 21752846.096 21752847.350
+ 45.700 39.200
+ -21819431.721 7 -17002159.214 6 21019379.567 21019379.399 21019378.973
+ 45.100 41.000
+ -3174248.507 2 -2473442.436 4 24184611.840 24184612.374 24184611.365
+ 16.100 28.600
+ -3613980.565 5 -2816088.712 4 24034191.038 24034191.355 24034190.533
+ 30.200 28.100
+ -23206775.319 7 -18083205.254 7 20350387.533 20350387.140 20350386.609
+ 46.200 45.300
+ -16635427.299 7 -12962671.342 6 21767774.655 21767772.927 21767773.764
+ 43.500 39.300
+ -17987712.459 7 -14016393.095 6 21061275.399 21061273.613 21061274.785
+ 45.400 38.700
+ 06 1 2 15 35 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1533123.315 2 -1194642.039 4 24145202.633 24145203.694 24145201.883
+ 16.100 24.900
+ -15051619.016 7 -11728534.029 6 21766785.273 21766782.444 21766783.640
+ 45.800 38.900
+ -21771336.825 7 -16964682.707 6 21028532.584 21028531.693 21028531.346
+ 44.800 41.000
+ -3173001.082 3 -2472470.434 4 24184849.177 24184850.262 24184848.475
+ 21.600 29.700
+ -3712563.067 4 -2892906.261 4 24015431.765 24015431.883 24015431.060
+ 29.700 28.400
+ -23213284.979 7 -18088277.726 7 20349148.913 20349148.461 20349147.910
+ 46.200 45.400
+ -16700875.497 7 -13013669.922 6 21755320.378 21755318.371 21755319.423
+ 43.800 39.000
+ -18036005.723 7 -14054024.186 6 21052085.373 21052083.703 21052084.822
+ 45.400 38.600
+ 06 1 2 15 35 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1543976.017 3 -1203098.646 4 24143138.215 24143138.557 24143137.555
+ 20.500 26.500
+ -14978123.670 7 -11671264.958 6 21780770.978 21780768.077 21780769.427
+ 45.700 38.700
+ -21722731.543 7 -16926808.499 6 21037781.770 21037781.158 21037780.615
+ 44.700 41.300
+ -3171217.666 4 -2471080.795 4 24185189.520 24185188.913 24185188.572
+ 24.200 26.500
+ -3810992.146 5 -2969604.265 4 23996701.501 23996701.232 23996700.794
+ 31.300 28.400
+ -23219155.270 7 -18092851.990 7 20348031.720 20348031.220 20348030.763
+ 46.100 45.300
+ -16766146.609 7 -13064530.523 6 21742899.717 21742897.738 21742898.702
+ 43.700 39.500
+ -18083771.231 7 -14091244.046 6 21042996.120 21042994.226 21042995.411
+ 45.500 38.900
+ 06 1 2 15 36 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1554216.161 2 -1211078.034 3 24141188.522 24141189.249 24141187.052
+ 13.900 22.100
+ -14904370.456 7 -11613794.948 6 21794805.829 21794802.737 21794804.231
+ 45.700 38.500
+ -21673617.051 7 -16888537.508 6 21047127.312 21047127.397 21047126.532
+ 44.800 41.100
+ -3168898.654 3 -2469273.786 4 24185630.353 24185630.508 24185629.609
+ 23.000 27.400
+ -3909266.897 5 -3046181.990 4 23978000.299 23978000.340 23977999.659
+ 30.800 29.700
+ -23224385.458 7 -18096927.474 7 20347036.462 20347035.876 20347035.435
+ 46.100 45.000
+ -16831239.341 7 -13115252.121 6 21730512.937 21730511.161 21730511.985
+ 44.100 39.700
+ -18131007.440 7 -14128051.471 6 21034007.128 21034005.311 21034006.519
+ 45.300 38.800
+ 06 1 2 15 36 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1563843.874 2 -1218580.123 3 24139356.146 24139356.727 24139355.910
+ 15.100 21.600
+ -14830361.363 7 -11556125.555 6 21808889.795 21808886.368 21808887.782
+ 45.800 38.400
+ -21623994.432 7 -16849870.579 6 21056570.561 21056570.313 21056569.564
+ 44.600 41.200
+ -3166044.532 3 -2467049.809 4 24186173.145 24186173.640 24186172.462
+ 19.900 27.400
+ -4007385.715 5 -3122638.229 4 23959328.449 23959328.892 23959327.746
+ 30.200 29.200
+ -23228974.647 7 -18100503.474 7 20346163.166 20346162.692 20346162.243
+ 46.200 45.200
+ -16896152.934 7 -13165834.125 6 21718160.378 21718158.635 21718159.408
+ 43.800 40.000
+ -18177712.518 7 -14164445.034 6 21025119.423 21025117.692 21025118.747
+ 45.100 39.000
+ 06 1 2 15 37 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1572859.066 3 -1225604.950 3 24137642.166 24137642.438 24137641.495
+ 19.900 23.400
+ -14756098.058 7 -11498258.074 6 21823021.398 21823018.165 21823019.631
+ 45.600 38.200
+ -21573864.595 7 -16810808.410 6 21066110.298 21066109.729 21066109.147
+ 44.700 41.100
+ -3162655.986 3 -2464409.373 4 24186817.957 24186818.221 24186817.451
+ 22.100 25.900
+ -4105347.668 4 -3198972.219 4 23940687.322 23940687.494 23940686.525
+ 29.700 28.800
+ -23232921.960 7 -18103579.314 7 20345412.165 20345411.521 20345411.259
+ 46.300 45.200
+ -16960886.129 7 -13216275.559 6 21705842.211 21705840.260 21705841.105
+ 43.600 40.100
+ -18223884.699 7 -14200423.360 6 21016333.315 21016331.505 21016332.592
+ 45.300 39.100
+ 06 1 2 15 37 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1581261.725 3 -1232152.493 3 24136042.740 24136043.087 24136042.348
+ 21.600 22.100
+ -14681582.677 7 -11440194.164 6 21837201.219 21837198.112 21837199.440
+ 45.700 38.600
+ -21523229.381 7 -16771352.441 6 21075745.585 21075745.390 21075744.633
+ 44.700 41.200
+ -3158733.295 3 -2461352.758 4 24187564.396 24187564.679 24187563.879
+ 19.900 25.300
+ -4203152.005 4 -3275183.369 4 23922075.427 23922075.912 23922074.955
+ 29.900 28.800
+ -23236226.747 7 -18106154.485 7 20344783.206 20344782.681 20344782.287
+ 46.500 45.200
+ -17025437.781 7 -13266575.526 6 21693558.209 21693556.228 21693557.233
+ 44.000 39.800
+ -18269522.737 7 -14235985.475 6 21007648.602 21007646.839 21007647.929
+ 45.200 39.300
+ 06 1 2 15 38 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1589051.908 3 -1238222.793 4 24134559.796 24134560.915 24134559.341
+ 18.600 24.200
+ -14606816.962 7 -11381935.191 6 21851428.807 21851425.474 21851426.853
+ 45.600 38.200
+ -21472089.638 7 -16731503.336 6 21085477.153 21085476.936 21085476.217
+ 44.600 40.900
+ -3154277.313 3 -2457880.565 4 24188412.789 24188412.717 24188411.931
+ 21.600 25.900
+ -4300797.471 4 -3351270.707 5 23903494.955 23903494.832 23903493.912
+ 29.200 30.200
+ -23238888.873 7 -18108228.877 7 20344276.743 20344276.176 20344275.664
+ 46.200 45.200
+ -17089806.706 7 -13316733.124 6 21681309.454 21681307.046 21681308.329
+ 44.000 39.600
+ -18314625.097 7 -14271130.176 6 20999065.714 20999064.165 20999065.165
+ 45.200 39.200
+ 06 1 2 15 38 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1596229.692 3 -1243815.888 3 24133194.293 24133195.016 24133193.747
+ 22.100 23.400
+ -14531803.008 7 -11323482.784 6 21865703.641 21865700.191 21865701.708
+ 45.800 38.300
+ -21420446.256 7 -16691261.782 6 21095304.797 21095304.358 21095303.834
+ 44.700 40.900
+ -3149288.403 3 -2453993.124 4 24189361.812 24189362.596 24189360.764
+ 21.100 26.800
+ -4398282.981 5 -3427233.418 5 23884942.675 23884943.813 23884942.753
+ 30.100 30.200
+ -23240907.733 7 -18109802.029 7 20343892.319 20343891.978 20343891.392
+ 46.200 45.100
+ -17153991.805 7 -13366747.480 6 21669095.038 21669093.291 21669094.152
+ 43.900 40.100
+ -18359190.066 7 -14305856.126 6 20990585.467 20990583.696 20990584.712
+ 44.900 39.300
+ 06 1 2 15 39 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1602795.183 3 -1248931.850 4 24131945.204 24131945.913 24131944.664
+ 22.600 25.900
+ -14456542.896 7 -11264838.565 6 21880024.904 21880021.724 21880023.214
+ 45.300 38.400
+ -21368300.925 7 -16650629.096 6 21105228.011 21105227.270 21105226.823
+ 44.600 40.900
+ -3143767.292 3 -2449690.989 4 24190412.908 24190412.911 24190412.187
+ 23.000 26.200
+ -4495607.366 5 -3503070.560 5 23866423.248 23866423.316 23866422.652
+ 31.300 31.000
+ -23242282.199 7 -18110873.055 7 20343630.918 20343630.367 20343629.949
+ 46.300 45.100
+ -17217992.078 7 -13416617.805 6 21656916.446 21656914.572 21656915.387
+ 43.800 40.300
+ -18403216.140 7 -14340162.155 6 20982207.246 20982205.900 20982206.754
+ 45.000 39.300
+ 06 1 2 15 39 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1608748.455 4 -1253570.753 3 24130812.856 24130812.412 24130812.157
+ 24.200 22.600
+ -14381038.256 7 -11206003.806 6 21894392.759 21894389.890 21894391.162
+ 45.200 38.100
+ -21315654.660 7 -16609606.073 6 21115245.921 21115245.556 21115244.897
+ 44.100 40.500
+ -3137714.616 3 -2444974.622 4 24191564.328 24191564.772 24191563.804
+ 23.000 27.400
+ -4592769.789 5 -3578781.522 5 23847934.022 23847934.078 23847933.332
+ 31.100 32.000
+ -23243011.873 7 -18111441.643 7 20343492.339 20343491.535 20343491.335
+ 46.400 45.000
+ -17281806.244 7 -13466343.117 6 21644772.812 21644771.003 21644771.982
+ 44.100 40.400
+ -18446701.780 7 -14374047.070 6 20973932.476 20973930.902 20973931.731
+ 44.800 39.300
+ 06 1 2 15 40 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1614089.649 4 -1257732.703 3 24129795.943 24129796.446 24129795.666
+ 24.600 23.400
+ -14305291.145 7 -11146980.107 6 21908806.982 21908804.087 21908805.318
+ 44.800 38.000
+ -21262508.957 7 -16568193.883 6 21125358.893 21125358.883 21125358.135
+ 44.300 40.700
+ -3131131.022 3 -2439844.592 4 24192817.062 24192817.743 24192816.211
+ 22.600 26.500
+ -4689768.963 5 -3654365.280 5 23829475.734 23829475.702 23829475.035
+ 31.800 30.100
+ -23243096.214 7 -18111507.378 7 20343476.324 20343475.546 20343475.307
+ 46.400 45.100
+ -17345433.348 7 -13515922.672 6 21632664.941 21632663.062 21632664.052
+ 44.100 40.200
+ -18489645.691 7 -14407509.863 6 20965760.292 20965758.854 20965759.759
+ 45.100 39.500
+ 06 1 2 15 40 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1618818.927 3 -1261417.883 3 24128895.587 24128895.912 24128895.254
+ 23.000 22.100
+ -14229303.234 7 -11087768.776 6 21923267.192 21923264.094 21923265.551
+ 44.900 37.800
+ -21208864.840 7 -16526393.321 6 21135567.008 21135567.064 21135566.407
+ 44.700 40.500
+ -3124017.096 3 -2434301.283 4 24194171.346 24194171.466 24194170.797
+ 23.800 27.100
+ -4786603.817 5 -3729821.015 4 23811048.672 23811048.301 23811048.070
+ 32.800 29.000
+ -23242534.956 7 -18111070.045 7 20343583.098 20343582.383 20343582.112
+ 46.600 45.200
+ -17408871.996 7 -13565355.380 6 21620592.768 21620591.111 21620591.976
+ 44.100 40.200
+ -18532046.553 7 -14440549.499 6 20957691.837 20957690.179 20957691.208
+ 45.000 39.400
+ 06 1 2 15 41 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1622936.514 3 -1264626.381 4 24128111.906 24128112.797 24128111.511
+ 20.500 24.600
+ -14153076.726 7 -11028371.526 6 21937772.422 21937769.563 21937770.675
+ 44.700 37.500
+ -21154723.959 7 -16484205.669 6 21145870.234 21145869.717 21145869.220
+ 44.700 40.300
+ -3116373.659 3 -2428345.375 4 24195626.055 24195625.609 24195625.149
+ 22.600 24.900
+ -4883273.308 5 -3805147.886 4 23792652.241 23792652.700 23792651.847
+ 31.600 28.600
+ -23241327.460 7 -18110129.152 7 20343812.891 20343812.137 20343811.886
+ 46.400 44.900
+ -17472121.124 7 -13614640.401 6 21608557.234 21608555.446 21608556.187
+ 44.300 40.700
+ -18573902.369 7 -14473164.417 6 20949726.912 20949725.271 20949726.374
+ 45.300 39.300
+ 06 1 2 15 41 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1626442.702 3 -1267358.449 3 24127445.597 24127445.175 24127445.111
+ 23.400 21.100
+ -14076613.248 7 -10968789.624 6 21952323.353 21952320.250 21952321.508
+ 44.800 37.700
+ -21100087.788 7 -16441632.066 6 21156267.487 21156266.623 21156266.248
+ 44.500 40.000
+ -3108201.363 3 -2421977.388 4 24197180.484 24197180.645 24197179.692
+ 21.600 24.200
+ -4979776.416 5 -3880345.122 4 23774288.484 23774288.965 23774287.940
+ 32.100 29.500
+ -23239473.464 7 -18108684.493 7 20344165.556 20344164.920 20344164.527
+ 46.200 45.100
+ -17535179.386 7 -13663776.706 6 21596557.403 21596555.644 21596556.510
+ 44.400 40.500
+ -18615212.397 7 -14505354.056 6 20941866.197 20941864.111 20941865.487
+ 45.300 39.300
+ 06 1 2 15 42 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1629337.660 3 -1269614.278 3 24126893.873 24126894.885 24126893.606
+ 22.100 23.800
+ -13999914.938 7 -10909024.736 6 21966918.449 21966915.291 21966916.592
+ 44.600 37.600
+ -21044957.447 7 -16398673.394 6 21166757.900 21166757.689 21166757.104
+ 44.500 40.000
+ -3099501.090 3 -2415197.964 4 24198836.384 24198836.567 24198835.671
+ 23.400 26.200
+ -5076112.186 5 -3955411.958 4 23755956.923 23755956.742 23755956.146
+ 32.400 29.200
+ -23236972.281 7 -18106735.531 7 20344641.403 20344640.885 20344640.405
+ 46.200 45.000
+ -17598045.657 7 -13712763.401 6 21584594.259 21584592.418 21584593.366
+ 44.400 40.300
+ -18655974.875 7 -14537117.035 6 20934109.143 20934107.336 20934108.495
+ 45.400 39.700
+ 06 1 2 15 42 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1631621.702 4 -1271394.087 3 24126460.127 24126459.777 24126459.554
+ 25.900 21.600
+ -13922983.571 7 -10849078.240 6 21981557.987 21981554.911 21981556.249
+ 44.800 37.600
+ -20989334.706 7 -16355331.042 6 21177341.834 21177342.429 21177341.579
+ 44.200 40.000
+ -3090273.346 3 -2408007.538 4 24200592.194 24200592.587 24200591.330
+ 21.100 25.600
+ -5172279.451 5 -4030347.488 4 23737656.884 23737656.783 23737656.074
+ 32.400 29.900
+ -23233823.763 7 -18104282.154 7 20345240.542 20345240.056 20345239.539
+ 46.100 45.000
+ -17660719.342 7 -13761600.036 6 21572668.139 21572666.100 21572667.162
+ 44.500 40.300
+ -18696188.572 7 -14568452.385 6 20926456.786 20926454.957 20926456.105
+ 45.500 39.600
+ 06 1 2 15 43 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1633295.143 3 -1272698.071 3 24126140.594 24126140.807 24126140.247
+ 22.100 20.500
+ -13845821.055 7 -10788951.637 6 21996241.756 21996238.410 21996239.835
+ 44.700 37.300
+ -20933220.541 7 -16311605.762 6 21188020.458 21188020.572 21188019.878
+ 44.400 39.800
+ -3080519.146 3 -2400406.890 4 24202447.898 24202448.930 24202447.055
+ 22.100 26.200
+ -5268277.250 5 -4105150.970 4 23719388.576 23719389.116 23719388.070
+ 31.800 29.700
+ -23230027.573 7 -18101324.100 7 20345963.026 20345962.435 20345962.075
+ 46.100 44.900
+ -17723198.642 7 -13810285.202 6 21560778.687 21560776.772 21560777.732
+ 44.500 41.000
+ -18735852.182 7 -14599359.093 6 20918908.922 20918907.088 20918908.350
+ 45.400 39.500
+ 06 1 2 15 43 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1634358.344 3 -1273526.533 3 24125938.849 24125938.459 24125938.280
+ 22.100 18.600
+ -13768429.569 7 -10728646.613 6 22010968.647 22010965.819 22010966.805
+ 44.600 37.700
+ -20876616.545 7 -16267498.793 6 21198792.508 21198792.047 21198791.459
+ 44.100 39.900
+ -3070239.133 3 -2392396.542 4 24204405.032 24204404.910 24204404.197
+ 23.800 25.600
+ -5364104.374 5 -4179821.421 5 23701153.546 23701153.840 23701152.994
+ 31.300 30.400
+ -23225583.181 7 -18097860.952 7 20346809.103 20346808.183 20346808.035
+ 46.300 44.900
+ -17785482.554 7 -13858818.111 6 21548926.342 21548924.664 21548925.365
+ 44.300 41.200
+ -18774964.571 7 -14629836.277 6 20911466.112 20911464.376 20911465.489
+ 45.600 39.700
+ 06 1 2 15 44 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1634811.500 4 -1273879.656 3 24125852.866 24125852.928 24125852.487
+ 25.900 21.100
+ -13690810.632 7 -10668164.361 6 22025739.120 22025736.027 22025737.153
+ 44.200 37.200
+ -20819523.967 7 -16223011.114 6 21209657.312 21209656.618 21209655.983
+ 43.800 40.000
+ -3059434.313 3 -2383977.238 4 24206461.231 24206461.199 24206460.430
+ 23.800 24.600
+ -5459759.886 5 -4254358.149 5 23682950.984 23682951.304 23682950.426
+ 32.000 31.800
+ -23220490.585 7 -18093892.708 7 20347777.914 20347777.263 20347776.903
+ 46.200 44.900
+ -17847569.773 7 -13907197.754 6 21537111.558 21537109.727 21537110.651
+ 44.400 41.000
+ -18813524.077 7 -14659882.647 6 20904128.530 20904126.751 20904127.928
+ 45.600 39.700
+ 06 1 2 15 44 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1634655.063 4 -1273757.761 3 24125882.446 24125882.791 24125881.976
+ 25.900 22.600
+ -13612965.976 7 -10607506.220 6 22040552.454 22040549.424 22040550.635
+ 44.300 37.500
+ -20761944.525 7 -16178144.061 6 21220614.067 21220613.652 21220612.827
+ 43.700 40.100
+ -3048105.278 3 -2375149.413 3 24208616.400 24208616.993 24208615.701
+ 22.600 23.800
+ -5555242.668 5 -4328760.290 5 23664781.057 23664781.739 23664780.506
+ 31.300 32.300
+ -23214749.210 7 -18089418.924 7 20348870.471 20348869.853 20348869.499
+ 46.400 44.900
+ -17909459.222 7 -13955423.291 6 21525334.328 21525332.402 21525333.506
+ 44.300 40.800
+ -18851529.395 7 -14689497.179 6 20896896.549 20896894.567 20896895.798
+ 45.700 39.800
+ 06 1 2 15 45 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1633889.575 4 -1273161.267 3 24126028.253 24126028.488 24126027.876
+ 24.900 21.600
+ -13534897.555 7 -10546673.720 6 22055408.381 22055405.424 22055406.514
+ 44.000 37.300
+ -20703879.705 7 -16132898.796 6 21231663.411 21231662.909 21231662.273
+ 43.900 39.800
+ -3036253.154 4 -2365914.012 4 24210872.012 24210872.852 24210871.180
+ 24.900 24.200
+ -5650552.035 5 -4403027.294 5 23646644.129 23646644.658 23646643.697
+ 31.800 31.500
+ -23208358.848 7 -18084439.435 7 20350086.687 20350086.000 20350085.661
+ 46.400 45.000
+ -17971149.614 7 -14003493.729 6 21513595.175 21513593.056 21513594.204
+ 44.500 40.600
+ -18888979.602 7 -14718679.151 6 20889769.613 20889767.982 20889769.126
+ 45.600 39.900
+ 06 1 2 15 45 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1632515.429 4 -1272090.512 3 24126289.677 24126289.810 24126289.044
+ 24.900 22.600
+ -13456607.453 7 -10485668.482 6 22070307.087 22070303.452 22070304.883
+ 44.000 37.200
+ -20645330.468 7 -16087276.057 6 21242804.465 21242804.461 21242803.678
+ 43.600 39.700
+ -3023878.726 4 -2356271.644 3 24213227.675 24213227.059 24213226.707
+ 26.200 23.000
+ -5745686.708 5 -4477158.174 5 23628540.929 23628541.102 23628540.224
+ 32.300 31.800
+ -23201319.152 7 -18078953.972 7 20351426.191 20351425.594 20351425.226
+ 46.200 44.900
+ -18032639.946 7 -14051408.265 6 21501894.161 21501891.969 21501893.094
+ 44.700 41.200
+ -18925873.094 7 -14747427.319 6 20882749.176 20882747.324 20882748.582
+ 45.700 40.000
+ 06 1 2 15 46 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1630533.095 3 -1270545.827 3 24126666.999 24126667.086 24126666.475
+ 23.000 19.300
+ -13378097.513 7 -10424491.942 6 22085246.359 22085243.656 22085244.573
+ 43.700 37.100
+ -20586298.511 7 -16041277.179 6 21254037.560 21254037.956 21254037.159
+ 44.000 39.700
+ -3010982.896 4 -2346222.989 3 24215681.163 24215681.177 24215680.486
+ 26.500 22.100
+ -5840645.349 5 -4551151.905 5 23610470.853 23610471.096 23610470.334
+ 32.400 32.400
+ -23193630.186 7 -18072962.585 7 20352889.361 20352888.610 20352888.382
+ 46.300 44.800
+ -18093928.693 7 -14099165.729 6 21490231.146 21490229.190 21490230.159
+ 44.900 41.200
+ -18962208.802 7 -14775740.852 6 20875834.530 20875833.002 20875833.986
+ 45.500 40.200
+ 06 1 2 15 46 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1627942.973 4 -1268527.608 3 24127159.764 24127159.337 24127159.334
+ 25.600 20.500
+ -13299369.537 7 -10363145.504 6 22100228.133 22100225.051 22100226.251
+ 44.100 36.600
+ -20526785.944 7 -15994903.796 6 21265362.551 21265362.895 21265362.063
+ 43.800 39.600
+ -2997566.781 4 -2335768.890 3 24218233.967 24218233.990 24218233.325
+ 24.200 23.000
+ -5935427.506 5 -4625008.118 5 23592434.392 23592434.683 23592433.719
+ 32.100 31.500
+ -23185291.672 7 -18066465.055 7 20354476.024 20354475.458 20354475.015
+ 46.200 44.800
+ -18155014.888 7 -14146765.357 6 21478606.905 21478604.917 21478605.892
+ 44.800 41.400
+ -18997985.633 7 -14803618.888 6 20869026.435 20869024.933 20869025.872
+ 45.700 40.100
+ 06 1 2 15 47 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1624745.675 3 -1266036.179 3 24127767.886 24127768.338 24127767.645
+ 23.000 20.500
+ -13220425.428 7 -10301630.653 6 22115250.743 22115247.362 22115248.845
+ 43.600 36.600
+ -20466793.928 7 -15948156.818 6 21276779.097 21276779.029 21276778.163
+ 43.500 39.800
+ -2983631.235 4 -2324910.044 3 24220885.872 24220885.911 24220884.978
+ 25.300 23.000
+ -6030031.931 5 -4698725.840 5 23574431.621 23574432.018 23574431.088
+ 32.800 31.100
+ -23176303.352 7 -18059461.183 7 20356186.446 20356186.024 20356185.503
+ 46.300 44.900
+ -18215897.361 7 -14194206.243 6 21467021.127 21467019.214 21467020.192
+ 44.800 41.100
+ -19033202.192 7 -14831060.351 6 20862325.133 20862323.392 20862324.410
+ 45.700 40.200
+ 06 1 2 15 47 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1620941.701 3 -1263072.048 3 24128491.735 24128492.551 24128491.382
+ 23.400 23.800
+ -13141266.910 7 -10239948.729 6 22130313.787 22130311.111 22130312.015
+ 43.600 36.700
+ -20406324.106 7 -15901037.523 6 21288286.623 21288286.174 21288285.336
+ 43.400 39.400
+ -2969177.130 4 -2313647.127 3 24223636.631 24223636.587 24223635.948
+ 26.800 22.600
+ -6124457.574 5 -4772304.259 5 23556462.951 23556463.152 23556462.490
+ 32.400 31.600
+ -23166665.183 7 -18051950.936 7 20358020.705 20358020.070 20358019.685
+ 46.400 44.800
+ -18276574.734 7 -14241487.316 6 21455474.625 21455472.737 21455473.709
+ 44.900 41.400
+ -19067857.742 7 -14858064.663 6 20855730.412 20855728.648 20855729.706
+ 45.800 40.300
+ 06 1 2 15 48 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1616531.591 4 -1259635.670 3 24129331.545 24129331.750 24129331.043
+ 24.900 22.100
+ -13061895.884 7 -10178101.210 6 22145417.655 22145414.770 22145415.879
+ 43.200 36.600
+ -20345377.907 7 -15853547.026 6 21299884.521 21299883.949 21299883.144
+ 43.600 39.500
+ -2954205.573 4 -2301981.002 3 24226485.665 24226485.849 24226484.802
+ 26.200 21.100
+ -6218703.421 5 -4845742.567 5 23538528.612 23538528.889 23538528.113
+ 32.700 32.100
+ -23156377.113 7 -18043934.276 7 20359978.595 20359977.793 20359977.560
+ 46.400 44.800
+ -18337045.656 7 -14288607.507 6 21443967.280 21443965.537 21443966.353
+ 44.700 41.500
+ -19101950.950 7 -14884630.786 6 20849242.698 20849240.949 20849241.969
+ 45.600 40.500
+ 06 1 2 15 48 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1611516.117 4 -1255727.503 3 24130285.456 24130285.708 24130285.093
+ 24.900 18.600
+ -12982313.928 7 -10116089.329 6 22160561.575 22160558.865 22160559.785
+ 43.100 36.500
+ -20283957.014 7 -15805686.636 6 21311572.702 21311572.020 21311571.276
+ 43.300 39.500
+ -2938717.378 4 -2289912.303 3 24229432.985 24229432.672 24229432.262
+ 25.900 22.100
+ -6312768.951 5 -4919040.380 5 23520628.732 23520628.812 23520627.987
+ 32.400 31.800
+ -23145439.339 7 -18035411.352 7 20362059.948 20362059.180 20362058.984
+ 46.600 44.700
+ -18397309.079 7 -14335566.015 6 21432499.824 21432497.913 21432498.843
+ 45.000 41.600
+ -19135480.453 7 -14910757.665 6 20842862.223 20842860.425 20842861.552
+ 45.600 40.500
+ 06 1 2 15 49 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1605895.775 4 -1251348.008 3 24131355.416 24131355.499 24131354.931
+ 25.600 21.600
+ -12902523.237 7 -10053914.806 6 22175745.384 22175742.309 22175743.388
+ 43.000 36.100
+ -20222063.080 7 -15757457.636 6 21323350.848 21323349.927 21323349.370
+ 43.400 39.100
+ -2922714.068 4 -2277442.234 3 24232478.666 24232478.093 24232477.887
+ 26.200 21.100
+ -6406652.577 5 -4992196.443 5 23502763.013 23502763.443 23502762.477
+ 33.000 32.000
+ -23133851.344 7 -18026381.759 7 20364264.956 20364264.395 20364264.006
+ 46.400 44.800
+ -18457363.824 7 -14382361.915 6 21421071.799 21421069.791 21421070.824
+ 44.900 41.800
+ -19168445.339 7 -14936444.581 6 20836589.084 20836587.518 20836588.462
+ 45.900 40.700
+ 06 1 2 15 49 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1599671.210 4 -1246497.729 3 24132539.337 24132539.123 24132539.230
+ 24.600 19.300
+ -12822525.606 7 -9991579.017 6 22190968.644 22190965.416 22190966.569
+ 43.000 36.300
+ -20159697.993 7 -15708861.512 6 21335218.298 21335217.659 21335217.029
+ 43.200 39.100
+ -2906196.343 4 -2264571.308 3 24235621.453 24235621.432 24235620.660
+ 25.300 22.600
+ -6500353.277 5 -5065209.977 5 23484932.488 23484932.651 23484931.865
+ 33.000 31.600
+ -23121612.881 7 -18016845.311 7 20366593.856 20366593.299 20366592.856
+ 46.300 44.600
+ -18517208.526 7 -14428994.147 6 21409683.487 21409681.569 21409682.617
+ 44.900 41.600
+ -19200844.639 7 -14961690.770 6 20830423.548 20830421.963 20830423.016
+ 45.600 40.500
+ 06 1 2 15 50 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1592843.188 3 -1241177.181 3 24133839.240 24133839.241 24133838.159
+ 23.000 21.100
+ -12742322.731 7 -9929083.305 5 22206230.795 22206227.455 22206228.864
+ 43.200 35.800
+ -20096863.310 7 -15659899.469 6 21347174.785 21347174.727 21347173.929
+ 43.300 39.100
+ -2889165.374 4 -2251300.443 3 24238862.672 24238862.247 24238861.667
+ 25.300 21.100
+ -6593870.393 5 -5138080.450 5 23467136.749 23467136.915 23467136.119
+ 32.700 31.500
+ -23108724.906 7 -18006802.749 7 20369046.251 20369045.767 20369045.321
+ 46.500 44.700
+ -18576842.019 7 -14475461.799 6 21398335.716 21398333.813 21398334.780
+ 44.900 41.900
+ -19232677.199 7 -14986495.349 6 20824366.047 20824364.524 20824365.549
+ 46.000 40.500
+ 06 1 2 15 50 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1585412.388 3 -1235386.983 3 24135252.494 24135253.326 24135252.181
+ 21.100 19.900
+ -12661916.310 7 -9866428.981 6 22221531.730 22221528.609 22221529.748
+ 43.300 36.200
+ -20033560.556 7 -15610572.699 6 21359220.542 21359220.912 21359219.926
+ 43.400 38.700
+ -2871622.176 4 -2237630.448 3 24242201.295 24242201.143 24242200.504
+ 27.100 21.100
+ -6687203.032 5 -5210807.179 5 23449376.410 23449376.314 23449375.658
+ 33.200 33.000
+ -23095187.013 7 -17996253.758 7 20371622.628 20371622.011 20371621.592
+ 46.400 44.500
+ -18636262.990 7 -14521763.848 6 21387028.400 21387026.288 21387027.313
+ 44.800 41.800
+ -19263941.940 7 -15010857.471 6 20818416.613 20818415.000 20818416.086
+ 45.900 40.800
+ 06 1 2 15 51 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1577379.454 3 -1229127.544 3 24136781.773 24136782.029 24136781.233
+ 20.500 22.100
+ -12581308.280 7 -9803617.560 5 22236870.820 22236867.671 22236868.913
+ 43.100 35.900
+ -19969791.143 7 -15560882.297 6 21371355.770 21371355.978 21371354.835
+ 42.900 38.700
+ -2853568.139 4 -2223562.397 3 24245636.648 24245636.511 24245635.975
+ 27.100 22.600
+ -6780349.807 5 -5283389.068 5 23431650.867 23431651.169 23431650.364
+ 33.400 34.000
+ -23080998.980 7 -17985198.163 7 20374322.576 20374321.893 20374321.585
+ 46.400 44.600
+ -18695470.181 7 -14567899.316 6 21375761.663 21375759.523 21375760.604
+ 44.800 41.900
+ -19294637.975 7 -15034776.455 6 20812575.617 20812573.749 20812574.921
+ 46.000 40.700
+ 06 1 2 15 51 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1568745.301 4 -1222399.652 3 24138424.620 24138424.681 24138424.413
+ 24.600 21.600
+ -12500500.607 7 -9740650.572 5 22252248.263 22252244.774 22252246.374
+ 43.500 35.600
+ -19905557.120 7 -15510829.862 6 21383579.605 21383579.381 21383578.487
+ 43.100 38.600
+ -2835004.081 4 -2209096.932 3 24249169.344 24249169.351 24249168.425
+ 25.900 22.600
+ -6873309.885 5 -5355825.478 5 23413960.973 23413961.393 23413960.669
+ 33.400 34.000
+ -23066161.377 7 -17973636.408 7 20377146.021 20377145.309 20377145.087
+ 46.400 44.300
+ -18754462.326 7 -14613867.214 6 21364535.723 21364533.613 21364534.705
+ 44.800 41.900
+ -19324764.543 7 -15058251.689 6 20806842.703 20806840.943 20806842.009
+ 46.300 41.100
+ 06 1 2 15 52 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1559510.648 4 -1215203.779 2 24140182.655 24140181.062 24140181.996
+ 25.600 16.100
+ -12419494.898 7 -9677529.261 6 22267663.142 22267660.003 22267661.363
+ 43.200 36.000
+ -19840860.194 7 -15460416.722 6 21395890.521 21395890.949 21395889.750
+ 42.800 38.700
+ -2815931.493 4 -2194235.183 3 24252798.228 24252798.486 24252797.300
+ 24.200 23.400
+ -6966082.226 5 -5428115.600 5 23396307.188 23396307.329 23396306.680
+ 33.400 34.300
+ -23050674.170 7 -17961568.468 7 20380093.097 20380092.493 20380092.140
+ 46.300 44.300
+ -18813238.162 7 -14659666.566 6 21353350.933 21353349.023 21353349.971
+ 44.700 41.800
+ -19354320.417 7 -15081282.230 6 20801218.389 20801216.758 20801217.761
+ 46.100 41.200
+ 06 1 2 15 52 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1549676.202 3 -1207540.609 2 24142053.390 24142053.351 24142052.878
+ 23.800 17.800
+ -12338292.749 7 -9614254.884 5 22283115.012 22283112.106 22283113.384
+ 43.000 35.600
+ -19775702.170 7 -15409644.287 6 21408289.329 21408290.000 21408289.032
+ 43.100 38.300
+ -2796351.455 4 -2178978.065 3 24256524.671 24256524.156 24256524.122
+ 26.800 21.600
+ -7058666.191 5 -5500258.938 5 23378689.476 23378689.243 23378688.553
+ 32.800 34.400
+ -23034537.358 7 -17948994.347 7 20383163.967 20383163.342 20383162.945
+ 46.300 44.500
+ -18871796.493 7 -14705296.425 7 21342207.484 21342205.882 21342206.583
+ 44.600 42.200
+ -19383304.694 7 -15103867.369 6 20795702.784 20795701.157 20795702.197
+ 46.100 41.000
+ 06 1 2 15 53 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1539243.068 3 -1199410.920 3 24144038.581 24144039.327 24144038.051
+ 22.600 22.600
+ -12256896.320 7 -9550829.125 5 22298604.402 22298601.549 22298602.583
+ 42.900 35.800
+ -19710084.688 7 -15358513.833 6 21420776.210 21420776.672 21420775.716
+ 43.000 38.500
+ -2776264.988 4 -2163326.308 3 24260347.283 24260347.069 24260346.450
+ 27.100 22.100
+ -7151060.403 5 -5572254.412 5 23361107.141 23361107.240 23361106.594
+ 33.500 34.000
+ -23017751.618 7 -17935914.571 7 20386358.199 20386357.615 20386357.178
+ 46.400 44.600
+ -18930136.015 7 -14750755.787 7 21331106.025 21331104.134 21331105.100
+ 44.800 42.300
+ -19411716.591 7 -15126006.508 6 20790296.057 20790294.354 20790295.599
+ 46.100 41.000
+ 06 1 2 15 53 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1528211.942 3 -1190815.264 3 24146137.535 24146138.353 24146137.145
+ 21.600 21.600
+ -12175307.101 7 -9487253.135 5 22314130.007 22314127.373 22314128.350
+ 42.600 35.600
+ -19644009.326 7 -15307026.592 6 21433350.107 21433350.563 21433349.642
+ 43.200 38.700
+ -2755673.674 3 -2147281.160 3 24264264.690 24264264.635 24264264.265
+ 23.800 19.300
+ -7243264.669 5 -5644101.875 5 23343561.088 23343561.262 23343560.605
+ 33.200 34.400
+ -23000316.577 7 -17922328.839 7 20389675.926 20389675.433 20389674.927
+ 46.300 44.500
+ -18988255.282 7 -14796043.524 7 21320046.471 21320044.299 21320045.438
+ 44.900 42.200
+ -19439555.001 7 -15147698.764 6 20784998.789 20784996.851 20784998.148
+ 46.200 41.000
+ 06 1 2 15 54 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1516583.679 4 -1181754.278 3 24148350.982 24148350.641 24148350.448
+ 24.600 18.600
+ -12093527.107 7 -9423528.492 6 22329692.721 22329689.629 22329690.823
+ 42.200 36.200
+ -19577478.022 7 -15255184.064 6 21446010.900 21446011.058 21446010.157
+ 43.200 38.600
+ -2734578.430 3 -2130843.345 3 24268279.724 24268279.350 24268279.006
+ 23.800 21.100
+ -7335277.011 5 -5715799.799 5 23326051.879 23326052.051 23326051.226
+ 33.100 34.300
+ -22982232.690 7 -17908237.512 7 20393117.231 20393116.700 20393116.180
+ 46.300 44.700
+ -19046153.129 7 -14841158.726 7 21309028.594 21309026.732 21309027.656
+ 44.800 42.100
+ -19466819.358 7 -15168943.714 6 20779810.780 20779808.545 20779810.027
+ 46.200 40.800
+ 06 1 2 15 54 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1504359.265 3 -1172228.805 3 24150677.141 24150677.516 24150676.524
+ 23.800 23.000
+ -12011558.129 7 -9359656.589 6 22345290.677 22345288.007 22345288.796
+ 42.000 36.100
+ -19510492.723 7 -15202987.775 6 21458757.342 21458757.852 21458756.940
+ 43.000 38.100
+ -2712980.847 4 -2114014.097 3 24272389.563 24272389.615 24272389.096
+ 25.300 21.600
+ -7427096.981 5 -5787347.827 5 23308579.539 23308579.183 23308578.590
+ 33.200 33.800
+ -22963500.642 7 -17893641.126 7 20396681.723 20396681.348 20396680.744
+ 46.500 44.400
+ -19103828.149 7 -14886100.296 7 21298053.563 21298051.687 21298052.512
+ 44.900 42.700
+ -19493508.884 7 -15189740.734 6 20774731.894 20774729.706 20774731.096
+ 46.300 40.900
+ 06 1 2 15 55 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1491539.566 4 -1162239.459 3 24153116.428 24153116.920 24153116.082
+ 24.200 23.000
+ -11929401.810 7 -9295638.720 5 22360924.846 22360921.799 22360922.980
+ 42.400 35.700
+ -19443055.217 7 -15150439.117 6 21471590.214 21471590.866 21471589.841
+ 42.700 38.000
+ -2690882.093 3 -2096794.314 3 24276594.883 24276595.022 24276594.049
+ 23.400 22.100
+ -7518723.506 5 -5858745.114 5 23291143.287 23291143.304 23291142.625
+ 32.100 33.500
+ -22944120.040 7 -17878539.375 7 20400369.828 20400369.355 20400368.805
+ 46.400 44.400
+ -19161279.181 7 -14930867.328 7 21287121.009 21287119.020 21287119.988
+ 44.700 42.500
+ -19519622.596 7 -15210089.072 6 20769761.989 20769760.444 20769761.532
+ 46.100 41.000
+ 06 1 2 15 55 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1478125.607 3 -1151787.048 3 24155668.784 24155668.923 24155668.417
+ 21.600 20.500
+ -11847059.884 6 -9231476.215 5 22376593.669 22376591.133 22376591.680
+ 41.900 35.600
+ -19375167.351 7 -15097539.530 6 21484508.788 21484509.461 21484508.400
+ 42.600 37.800
+ -2668283.378 3 -2079184.970 3 24280894.972 24280895.280 24280894.415
+ 23.000 23.000
+ -7610155.874 5 -5929991.112 5 23273743.628 23273744.237 23273743.293
+ 31.500 33.500
+ -22924091.605 7 -17862932.817 7 20404181.315 20404180.652 20404180.267
+ 46.800 44.600
+ -19218505.268 7 -14975459.080 7 21276231.073 21276229.108 21276230.103
+ 44.700 42.600
+ -19545159.435 7 -15229987.907 6 20764902.700 20764900.922 20764902.106
+ 46.000 40.900
+ 06 1 2 15 56 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1464118.434 3 -1140872.340 3 24158334.879 24158333.797 24158334.297
+ 22.100 18.600
+ -11764534.064 7 -9167170.411 5 22392298.160 22392295.156 22392296.356
+ 42.400 35.800
+ -19306831.112 7 -15044290.566 6 21497513.109 21497513.600 21497512.551
+ 42.600 38.100
+ -2645186.163 3 -2061187.155 3 24285290.272 24285290.692 24285289.650
+ 23.000 22.100
+ -7701393.148 5 -6001085.077 5 23256382.259 23256382.489 23256381.643
+ 30.600 33.200
+ -22903415.522 7 -17846821.597 7 20408115.724 20408115.236 20408114.717
+ 46.700 44.500
+ -19275504.622 7 -15019874.161 7 21265384.596 21265382.490 21265383.632
+ 44.900 42.500
+ -19570118.784 7 -15249436.748 6 20760153.163 20760151.321 20760152.509
+ 46.100 41.100
+ 06 1 2 15 56 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1449518.919 3 -1129496.145 3 24161112.525 24161113.280 24161112.215
+ 22.600 22.600
+ -11681826.141 6 -9102722.713 5 22408036.146 22408033.741 22408034.560
+ 41.800 34.800
+ -19238048.078 7 -14990693.446 6 21510602.311 21510602.536 21510601.618
+ 42.200 37.600
+ -2621591.895 3 -2042802.058 4 24289780.249 24289780.500 24289779.578
+ 23.800 24.200
+ -7792434.284 5 -6072026.214 5 23239057.848 23239057.795 23239057.301
+ 32.100 32.000
+ -22882092.063 7 -17830205.933 7 20412173.278 20412172.889 20412172.363
+ 46.600 44.400
+ -19332276.145 7 -15064111.710 7 21254581.334 21254579.201 21254580.339
+ 44.900 42.500
+ -19594500.078 7 -15268435.155 6 20755513.586 20755511.661 20755512.919
+ 46.100 41.000
+ 06 1 2 15 57 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1434328.393 3 -1117659.427 3 24164003.786 24164003.837 24164003.306
+ 23.800 21.100
+ -11598937.952 7 -9038134.551 5 22423810.145 22423807.099 22423808.200
+ 42.000 35.100
+ -19168819.853 7 -14936749.424 6 21523775.729 21523776.225 21523775.404
+ 42.500 37.600
+ -2597501.518 3 -2024030.388 3 24294364.390 24294364.003 24294363.769
+ 22.100 22.100
+ -7883278.346 5 -6142813.801 5 23221770.808 23221770.565 23221770.081
+ 32.100 31.100
+ -22860121.977 7 -17813086.405 7 20416354.189 20416353.664 20416353.212
+ 46.700 44.400
+ -19388818.259 7 -15108170.499 7 21243821.813 21243819.664 21243820.792
+ 45.000 42.600
+ -19618302.539 7 -15286982.515 6 20750984.084 20750982.248 20750983.474
+ 45.900 41.100
+ 06 1 2 15 57 30.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1418547.770 3 -1105362.838 3 24167006.900 24167007.050 24167006.236
+ 23.000 22.600
+ -11515871.202 6 -8973407.244 5 22439617.160 22439614.051 22439615.109
+ 41.900 34.900
+ -19099148.904 7 -14882460.415 6 21537033.914 21537034.407 21537033.268
+ 42.200 37.700
+ -2572916.902 3 -2004873.556 3 24299042.393 24299042.577 24299041.565
+ 18.600 20.500
+ -7973924.319 5 -6213447.013 5 23204520.859 23204521.312 23204520.592
+ 31.300 31.100
+ -22837505.539 7 -17795463.221 7 20420657.983 20420657.498 20420656.968
+ 46.500 44.300
+ -19445129.946 7 -15152049.734 7 21233105.850 21233103.980 21233104.901
+ 45.100 42.800
+ -19641525.406 7 -15305078.257 6 20746564.960 20746563.154 20746564.289
+ 46.000 41.100
+ 06 1 2 15 58 0.0000000 0 8G26G19G27G29G17G 8G28G11
+ -1402178.061 3 -1092607.296 3 24170121.339 24170122.072 24170121.230
+ 22.100 22.600
+ -11432627.417 7 -8908541.993 5 22455458.258 22455455.023 22455456.498
+ 42.400 34.800
+ -19029036.940 7 -14827827.763 6 21550375.519 21550376.192 21550375.126
+ 42.000 37.600
+ -2547839.338 3 -1985332.619 3 24303814.600 24303815.264 24303814.334
+ 22.100 21.100
+ -8064371.370 5 -6283925.225 5 23187309.656 23187309.936 23187309.081
+ 31.300 31.600
+ -22814243.158 7 -17777336.702 7 20425084.691 20425084.227 20425083.645
+ 46.400 44.400
+ -19501209.833 7 -15195748.339 7 21222434.192 21222432.183 21222433.216
+ 44.800 43.100
+ -19664167.899 7 -15322721.755 6 20742256.234 20742254.407 20742255.575
+ 46.000 41.400
+ 06 1 2 15 58 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1385220.406 3 -1079393.584 3 24173349.016 24173348.755 24173348.322
+ 21.100 21.100
+ -11349208.485 6 -8843540.264 5 22471331.874 22471329.229 22471329.931
+ 41.900 34.500
+ -18958485.804 7 -14772852.907 6 21563801.129 21563801.781 21563800.572
+ 42.100 37.400
+ -2522270.152 3 -1965408.595 3 24308680.341 24308680.585 24308679.767
+ 22.600 19.900
+ -8154618.646 5 -6354247.754 5 23170136.211 23170136.308 23170135.474
+ 31.100 30.800
+ -22790335.169 7 -17758707.115 7 20429634.101 20429633.729 20429633.155
+ 46.500 44.300
+ -19557056.526 7 -15239265.243 7 21211807.067 21211804.978 21211806.081
+ 45.000 43.200
+ -19686229.558 7 -15339912.654 6 20738058.305 20738056.193 20738057.533
+ 46.300 41.400
+ -198529.043 3 -154698.093 2 24395951.831 24395954.822 24395950.821
+ 19.300 15.100
+ 06 1 2 15 59 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1367676.063 3 -1065722.701 3 24176686.575 24176687.797 24176686.104
+ 19.900 23.400
+ -11265616.156 7 -8778403.410 5 22487239.199 22487236.080 22487237.306
+ 42.000 34.100
+ -18887497.559 7 -14717537.432 6 21577309.983 21577310.254 21577309.404
+ 42.000 37.200
+ -2496210.936 3 -1945102.770 3 24313639.764 24313639.307 24313639.017
+ 20.500 22.600
+ -8244665.108 5 -6424413.807 5 23153001.033 23153001.002 23153000.194
+ 32.300 30.600
+ -22765782.466 7 -17739575.154 7 20434306.344 20434305.965 20434305.301
+ 46.100 44.200
+ -19612668.744 7 -15282599.432 7 21201224.453 21201222.305 21201223.370
+ 45.100 43.100
+ -19707709.560 7 -15356650.302 6 20733970.506 20733968.738 20733969.844
+ 46.000 41.500
+ -313003.823 3 -243899.168 2 24374167.341 24374170.955 24374167.257
+ 21.600 16.100
+ 06 1 2 15 59 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1349546.326 3 -1051595.692 3 24180137.461 24180137.537 24180136.876
+ 23.400 21.600
+ -11181852.079 6 -8713132.725 5 22503178.730 22503175.983 22503177.075
+ 41.700 33.900
+ -18816074.206 6 -14661882.920 6 21590901.811 21590901.776 21590900.905
+ 41.900 37.200
+ -2469663.048 3 -1924416.120 3 24318690.910 24318691.914 24318690.319
+ 19.900 23.000
+ -8334509.942 5 -6494422.752 5 23135904.238 23135904.057 23135903.440
+ 34.300 31.000
+ -22740585.695 7 -17719941.327 7 20439101.193 20439100.783 20439100.144
+ 46.400 44.300
+ -19668045.004 7 -15325749.756 7 21190686.466 21190684.587 21190685.510
+ 44.900 43.200
+ -19728607.528 7 -15372934.432 6 20729993.629 20729991.941 20729993.006
+ 46.000 41.500
+ -427430.858 4 -333063.053 3 24352392.830 24352397.191 24352392.408
+ 24.600 19.900
+ 06 1 2 16 0 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1330832.144 4 -1037013.214 3 24183698.452 24183698.927 24183698.257
+ 26.200 21.600
+ -11097917.816 6 -8647729.446 5 22519150.680 22519148.601 22519148.845
+ 41.200 34.700
+ -18744217.565 6 -14605890.778 6 21604575.624 21604575.885 21604574.808
+ 41.800 37.700
+ -2442628.028 3 -1903349.926 3 24323835.297 24323836.133 24323834.738
+ 18.600 21.100
+ -8424152.529 5 -6564274.106 5 23118845.699 23118845.442 23118844.999
+ 35.700 30.400
+ -22714745.366 7 -17699806.020 7 20444018.422 20444017.912 20444017.387
+ 46.400 43.800
+ -19723183.973 7 -15368715.178 7 21180194.123 21180192.098 21180193.069
+ 45.300 43.400
+ -19748923.022 7 -15388764.679 6 20726127.823 20726126.159 20726127.059
+ 46.000 41.600
+ -541807.578 3 -422187.715 3 24330628.763 24330631.423 24330627.594
+ 23.400 19.300
+ 06 1 2 16 0 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1311534.920 3 -1021976.444 3 24187370.150 24187371.107 24187370.000
+ 22.100 23.800
+ -11013815.530 6 -8582195.237 5 22535154.918 22535152.316 22535153.329
+ 41.300 34.000
+ -18671929.819 6 -14549562.716 6 21618331.509 21618331.739 21618330.545
+ 41.500 36.800
+ -2415107.542 3 -1881905.408 4 24329072.969 24329073.396 24329072.385
+ 19.900 24.600
+ -8513591.267 5 -6633966.610 5 23101826.069 23101825.933 23101825.460
+ 35.700 30.800
+ -22688261.548 7 -17679169.290 7 20449058.035 20449057.546 20449057.083
+ 46.400 43.800
+ -19778084.473 7 -15411494.783 7 21169746.833 21169744.827 21169745.864
+ 45.300 43.500
+ -19768655.197 7 -15404140.394 6 20722373.010 20722371.180 20722372.314
+ 46.300 41.700
+ -656131.065 3 -511270.878 2 24308873.885 24308876.126 24308872.581
+ 19.300 15.100
+ 06 1 2 16 1 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1291655.769 2 -1006486.243 3 24191153.241 24191154.150 24191152.704
+ 17.800 23.800
+ -10929546.397 6 -8516531.011 5 22551190.920 22551188.487 22551189.119
+ 40.800 34.400
+ -18599213.075 6 -14492900.363 6 21632169.231 21632169.349 21632168.159
+ 41.000 37.000
+ -2387102.952 3 -1860083.707 4 24334401.525 24334402.714 24334400.837
+ 21.600 25.600
+ -8602825.443 5 -6703499.716 5 23084845.394 23084845.349 23084844.818
+ 35.600 32.000
+ -22661135.188 7 -17658031.882 7 20454220.283 20454219.654 20454219.256
+ 46.600 43.800
+ -19832745.206 7 -15454087.552 7 21159345.243 21159343.202 21159344.157
+ 45.200 43.400
+ -19787803.631 7 -15419061.240 6 20718728.976 20718727.344 20718728.335
+ 46.400 41.900
+ -770398.643 3 -600310.494 2 24287128.555 24287131.079 24287127.134
+ 19.900 17.000
+ 06 1 2 16 1 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1271195.994 3 -990543.617 3 24195046.581 24195047.619 24195045.944
+ 21.600 23.800
+ -10845112.208 6 -8450738.172 5 22567258.611 22567255.484 22567256.726
+ 40.800 34.000
+ -18526069.208 6 -14435905.194 6 21646088.125 21646088.283 21646086.966
+ 41.300 37.100
+ -2358615.827 3 -1837886.004 4 24339822.989 24339823.779 24339822.186
+ 20.500 27.100
+ -8691854.595 5 -6772873.051 5 23067903.603 23067903.739 23067902.915
+ 34.700 34.300
+ -22633366.938 7 -17636394.301 7 20459504.291 20459503.892 20459503.291
+ 46.600 43.700
+ -19887164.768 7 -15496492.392 7 21148989.357 21148987.520 21148988.427
+ 45.100 43.500
+ -19806367.677 7 -15433526.725 6 20715196.400 20715194.732 20715195.798
+ 46.600 41.700
+ -884607.828 3 -689304.614 2 24265395.664 24265398.265 24265393.778
+ 21.100 17.000
+ 06 1 2 16 2 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1250156.952 3 -974149.619 3 24199049.853 24199050.878 24199049.420
+ 22.100 21.600
+ -10760514.872 6 -8384818.201 5 22583357.079 22583353.672 22583355.066
+ 40.500 33.000
+ -18452499.930 6 -14378578.533 6 21660087.953 21660088.003 21660086.825
+ 41.000 36.700
+ -2329647.794 3 -1815313.544 3 24345335.261 24345335.815 24345334.891
+ 21.600 23.400
+ -8780677.541 5 -6842085.688 5 23051000.767 23051001.430 23051000.309
+ 34.600 35.400
+ -22604957.848 7 -17614257.360 7 20464910.258 20464909.930 20464909.298
+ 46.600 44.000
+ -19941341.672 7 -15538708.156 7 21138680.166 21138677.933 21138679.106
+ 45.300 43.500
+ -19824346.947 7 -15447536.545 6 20711775.350 20711773.338 20711774.600
+ 46.500 41.600
+ -998756.016 3 -778251.139 3 24243673.292 24243677.002 24243672.574
+ 23.000 19.900
+ 06 1 2 16 2 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1228539.827 4 -957305.134 3 24203164.443 24203164.657 24203163.866
+ 25.600 23.800
+ -10675755.740 6 -8318772.169 5 22599486.046 22599483.066 22599483.927
+ 40.500 33.800
+ -18378507.372 6 -14320922.057 6 21674168.312 21674168.497 21674167.177
+ 40.700 37.200
+ -2300200.424 3 -1792367.577 4 24350939.190 24350939.823 24350938.244
+ 21.100 25.300
+ -8869293.636 5 -6911137.144 5 23034137.686 23034138.115 23034137.202
+ 34.500 35.500
+ -22575908.217 7 -17591621.302 7 20470438.484 20470437.855 20470437.500
+ 46.800 43.700
+ -19995274.646 7 -15580733.838 7 21128416.802 21128414.828 21128415.839
+ 45.300 43.700
+ -19841740.886 7 -15461090.253 6 20708465.282 20708463.402 20708464.677
+ 46.600 41.700
+ -1112840.591 3 -867148.143 2 24221962.888 24221966.926 24221962.453
+ 23.400 17.800
+ 06 1 2 16 3 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1206346.225 3 -940011.451 3 24207387.112 24207387.592 24207386.561
+ 21.600 21.600
+ -10590836.795 6 -8252601.598 5 22615645.945 22615642.717 22615644.069
+ 41.000 34.000
+ -18304093.924 6 -14262937.609 6 21688327.996 21688328.632 21688327.470
+ 41.000 36.100
+ -2270275.454 3 -1769049.467 4 24356633.452 24356634.527 24356632.704
+ 19.900 25.900
+ -8957701.970 5 -6980026.707 5 23017314.494 23017314.537 23017313.600
+ 33.400 35.900
+ -22546218.910 7 -17568486.793 7 20476087.916 20476087.650 20476086.984
+ 46.800 43.800
+ -20048962.449 7 -15622568.478 7 21118200.319 21118198.490 21118199.418
+ 45.400 43.800
+ -19858549.223 7 -15474187.658 6 20705266.600 20705264.784 20705266.012
+ 46.600 41.500
+ -1226858.665 3 -955993.349 2 24200264.983 24200269.394 24200264.838
+ 21.100 13.900
+ 06 1 2 16 3 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1183577.307 3 -922269.451 4 24211720.288 24211720.704 24211719.443
+ 19.300 24.900
+ -10505759.556 6 -8186307.686 5 22631835.087 22631832.337 22631833.349
+ 41.000 34.100
+ -18229261.700 6 -14204626.833 6 21702568.105 21702568.823 21702567.562
+ 40.700 36.200
+ -2239874.125 4 -1745360.145 4 24362419.132 24362419.606 24362418.522
+ 24.200 28.100
+ -9045901.500 5 -7048753.568 5 23000530.649 23000530.623 23000529.942
+ 33.500 35.800
+ -22515890.951 7 -17544854.636 7 20481859.233 20481858.818 20481858.249
+ 46.600 43.500
+ -20102403.535 7 -15664210.871 7 21108031.058 21108028.937 21108030.026
+ 45.400 43.900
+ -19874771.446 7 -15486828.346 6 20702179.878 20702177.703 20702179.113
+ 46.500 41.500
+ -1340807.511 3 -1044784.526 2 24178581.642 24178585.829 24178581.542
+ 19.300 13.900
+ 06 1 2 16 4 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1160234.468 2 -904080.273 4 24216161.820 24216163.306 24216161.561
+ 17.800 26.800
+ -10420525.582 6 -8119891.633 5 22648054.790 22648052.108 22648052.829
+ 40.800 33.900
+ -18154012.586 6 -14145991.207 6 21716887.978 21716888.437 21716887.110
+ 40.800 36.400
+ -2208998.494 4 -1721301.270 4 24368294.628 24368295.080 24368294.202
+ 24.900 25.600
+ -9133891.388 5 -7117317.060 5 22983786.229 22983786.587 22983785.973
+ 34.300 35.600
+ -22484924.477 7 -17520724.927 7 20487752.063 20487751.445 20487751.085
+ 46.800 43.600
+ -20155596.558 7 -15705659.969 7 21097908.630 21097906.548 21097907.719
+ 45.100 43.900
+ -19890407.067 7 -15499011.942 6 20699204.598 20699202.437 20699203.877
+ 46.600 41.700
+ -1454684.795 3 -1133520.040 2 24156911.473 24156915.735 24156910.999
+ 19.900 17.000
+ 06 1 2 16 4 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1136319.347 3 -885445.151 4 24220712.899 24220713.768 24220712.438
+ 19.300 25.600
+ -10335136.718 6 -8053354.916 5 22664303.970 22664300.864 22664301.948
+ 40.300 33.400
+ -18078348.450 6 -14087032.185 6 21731286.788 21731286.797 21731285.684
+ 40.700 36.300
+ -2177649.898 4 -1696873.848 3 24374260.030 24374260.191 24374259.326
+ 24.200 23.000
+ -9221670.701 5 -7185716.489 5 22967082.714 22967082.508 22967082.052
+ 34.600 34.400
+ -22453320.591 7 -17496098.536 7 20493766.011 20493765.566 20493765.060
+ 46.700 43.600
+ -20208540.311 7 -15746914.828 7 21087833.637 21087831.630 21087832.680
+ 45.100 44.100
+ -19905455.930 7 -15510738.323 6 20696340.634 20696338.706 20696340.012
+ 46.600 41.800
+ -1568487.861 3 -1222197.653 2 24135256.243 24135259.279 24135255.665
+ 22.600 15.100
+ 06 1 2 16 5 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1111833.312 3 -866365.138 4 24225372.696 24225373.744 24225372.098
+ 22.600 27.100
+ -10249594.445 6 -7986698.631 5 22680582.574 22680578.557 22680580.460
+ 40.600 32.800
+ -18002271.534 6 -14027751.537 6 21745764.461 21745763.897 21745762.917
+ 40.200 36.000
+ -2145830.338 3 -1672079.407 3 24380314.620 24380315.686 24380314.288
+ 23.800 23.800
+ -9309238.599 5 -7253951.189 5 22950418.810 22950418.713 22950418.325
+ 34.500 32.800
+ -22421080.442 7 -17470976.360 7 20499901.239 20499900.823 20499900.260
+ 46.600 43.600
+ -20261233.519 7 -15787974.459 7 21077806.624 21077804.446 21077805.655
+ 45.300 44.000
+ -19919917.408 7 -15522007.004 6 20693588.778 20693586.857 20693588.052
+ 46.600 41.900
+ -1682213.876 3 -1310815.265 2 24113615.150 24113618.300 24113614.105
+ 21.600 17.800
+ 06 1 2 16 5 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1086777.588 3 -846841.233 4 24230140.414 24230141.651 24230140.026
+ 23.000 26.200
+ -10163900.550 6 -7919924.201 5 22696889.155 22696885.904 22696887.198
+ 40.500 32.800
+ -17925784.126 6 -13968151.015 5 21760318.101 21760318.802 21760317.601
+ 40.400 35.500
+ -2113541.299 4 -1646919.165 3 24386459.755 24386459.787 24386458.734
+ 24.900 23.400
+ -9396594.412 5 -7322020.640 5 22933795.640 22933795.421 22933795.054
+ 35.200 32.000
+ -22388204.658 7 -17445358.878 7 20506157.186 20506156.719 20506156.238
+ 46.800 43.600
+ -20313674.835 7 -15828837.816 7 21067827.056 21067825.216 21067826.203
+ 45.100 44.300
+ -19933791.345 7 -15532817.850 6 20690948.581 20690946.750 20690947.910
+ 46.600 41.900
+ -1795860.187 3 -1399370.799 2 24091989.644 24091992.480 24091988.210
+ 22.600 17.800
+ 06 1 2 16 6 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1061153.848 3 -826874.747 4 24235016.579 24235017.542 24235016.093
+ 22.100 25.900
+ -10078056.567 6 -7853032.828 5 22713224.339 22713221.972 22713222.814
+ 40.300 33.500
+ -17848888.479 6 -13908232.363 5 21774950.426 21774951.773 21774950.488
+ 40.500 35.700
+ -2080784.611 3 -1621394.508 3 24392692.866 24392693.320 24392692.131
+ 22.100 22.600
+ -9483737.171 6 -7389924.082 5 22917213.000 22917212.807 22917212.240
+ 36.200 32.400
+ -22354694.137 7 -17419246.800 7 20512534.128 20512533.603 20512533.074
+ 46.800 43.500
+ -20365862.152 7 -15869503.252 7 21057896.190 21057894.277 21057895.292
+ 45.200 44.200
+ -19947077.470 7 -15543170.672 7 20688420.269 20688418.468 20688419.612
+ 46.600 42.000
+ -1909424.242 3 -1487862.230 3 24070378.818 24070381.304 24070377.333
+ 20.500 18.600
+ 06 1 2 16 6 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1034963.653 3 -806466.834 4 24240000.501 24240001.236 24239999.961
+ 21.100 25.300
+ -9992063.983 6 -7786025.661 5 22729587.951 22729585.789 22729586.270
+ 39.400 33.500
+ -17771586.780 6 -13847997.324 5 21789661.635 21789661.866 21789660.457
+ 39.600 35.700
+ -2047562.002 3 -1595506.785 3 24399015.577 24399015.392 24399014.554
+ 23.800 23.000
+ -9570666.224 6 -7457660.984 5 22900671.147 22900671.013 22900670.260
+ 36.600 33.800
+ -22320550.132 7 -17392641.096 7 20519031.468 20519031.027 20519030.499
+ 46.700 43.400
+ -20417794.659 7 -15909970.137 7 21048013.978 21048011.866 21048012.997
+ 45.200 44.400
+ -19959775.614 7 -15553065.331 6 20686004.309 20686002.031 20686003.421
+ 46.700 41.900
+ -2022903.392 3 -1576287.521 3 24048784.953 24048787.076 24048783.749
+ 22.600 20.500
+ 06 1 2 16 7 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -1008208.530 3 -785618.690 3 24245092.203 24245092.440 24245091.474
+ 23.800 23.400
+ -9905924.600 6 -7718904.113 5 22745980.088 22745977.003 22745977.999
+ 39.300 32.000
+ -17693880.866 6 -13787447.325 5 21804449.436 21804448.833 21804447.781
+ 39.500 35.600
+ -2013875.178 3 -1569257.398 3 24405425.365 24405426.347 24405424.839
+ 23.400 22.100
+ -9657380.564 5 -7525230.572 5 22884169.523 22884169.866 22884168.949
+ 34.700 35.400
+ -22285773.277 7 -17365542.265 7 20525649.268 20525648.820 20525648.248
+ 46.600 43.400
+ -20469470.892 7 -15950237.324 7 21038180.160 21038178.220 21038179.186
+ 45.000 44.400
+ -19971885.205 7 -15562501.372 6 20683699.786 20683697.600 20683699.053
+ 46.700 41.700
+ -2136294.881 4 -1664644.492 3 24027206.751 24027209.541 24027205.747
+ 24.900 21.100
+ 06 1 2 16 7 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -980889.960 3 -764331.531 4 24250290.507 24250291.270 24250290.010
+ 22.600 26.200
+ -9819639.839 6 -7651669.274 5 22762399.731 22762397.048 22762398.107
+ 40.300 33.400
+ -17615772.918 6 -13726584.053 5 21819313.036 21819312.217 21819311.441
+ 39.700 35.300
+ -1979725.948 3 -1542647.653 3 24411923.944 24411924.155 24411922.955
+ 23.400 19.900
+ -9743879.319 5 -7592632.156 5 22867709.468 22867709.815 22867708.883
+ 34.400 35.600
+ -22250364.429 7 -17337950.970 7 20532387.301 20532386.850 20532386.263
+ 46.600 43.200
+ -20520889.521 7 -15990303.782 7 21028395.330 21028393.602 21028394.467
+ 45.100 44.400
+ -19983406.139 7 -15571478.728 6 20681507.010 20681505.205 20681506.468
+ 46.800 41.800
+ -2249596.004 3 -1752931.051 3 24005644.413 24005649.136 24005644.240
+ 21.100 22.600
+ 06 1 2 16 8 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -953009.573 4 -742606.604 3 24255596.342 24255596.791 24255595.763
+ 24.200 23.800
+ -9733211.247 6 -7584322.367 5 22778846.488 22778843.421 22778844.453
+ 39.500 32.100
+ -17537265.552 6 -13665409.532 5 21834250.540 21834251.814 21834250.386
+ 39.500 35.300
+ -1945115.955 4 -1515678.875 3 24418509.898 24418510.224 24418509.347
+ 24.200 20.500
+ -9830161.535 5 -7659865.006 6 22851290.479 22851290.791 22851289.873
+ 34.700 36.100
+ -22214324.699 7 -17309868.074 7 20539245.549 20539245.077 20539244.534
+ 46.600 43.200
+ -20572049.117 7 -16030168.396 7 21018660.025 21018658.204 21018659.152
+ 45.000 44.400
+ -19994338.274 7 -15579997.274 6 20679427.035 20679424.903 20679426.262
+ 46.600 41.900
+ -2362804.225 4 -1841145.231 3 23984102.529 23984106.125 23984102.369
+ 27.400 22.100
+ 06 1 2 16 8 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -924568.999 3 -720445.156 4 24261007.597 24261008.934 24261006.973
+ 22.600 24.600
+ -9646640.839 6 -7516864.939 5 22795320.438 22795317.558 22795318.383
+ 39.300 32.300
+ -17458360.730 6 -13603925.292 5 21849265.828 21849267.014 21849265.509
+ 39.500 35.500
+ -1910047.293 3 -1488352.653 2 24425183.217 24425183.587 24425182.601
+ 23.800 17.800
+ -9916226.510 5 -7726928.571 6 22834913.026 22834913.024 22834912.370
+ 34.800 36.100
+ -22177655.013 7 -17281294.308 7 20546223.369 20546223.120 20546222.496
+ 46.600 43.200
+ -20622948.326 7 -16069830.110 7 21008974.238 21008972.525 21008973.335
+ 45.100 44.800
+ -20004681.392 7 -15588056.841 6 20677458.659 20677456.777 20677458.053
+ 46.600 41.900
+ -2475916.631 4 -1929284.799 3 23962579.087 23962581.291 23962577.470
+ 24.200 18.600
+ 06 1 2 16 9 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -895570.040 4 -697848.597 4 24266526.597 24266527.375 24266526.120
+ 24.600 25.600
+ -9559929.810 6 -7449297.944 5 22811820.336 22811818.332 22811818.784
+ 39.000 32.800
+ -17379060.638 6 -13542133.073 5 21864357.674 21864357.388 21864356.214
+ 39.100 35.400
+ -1874521.605 3 -1460670.361 2 24431943.624 24431943.870 24431943.165
+ 22.100 17.800
+ -10002073.732 6 -7793822.459 5 22818576.731 22818576.617 22818576.126
+ 36.200 35.700
+ -22140356.628 7 -17252230.650 7 20553321.229 20553320.750 20553320.200
+ 46.400 43.000
+ -20673585.605 7 -16109287.724 7 20999338.531 20999336.511 20999337.580
+ 44.900 44.800
+ -20014435.401 7 -15595657.376 7 20675602.344 20675600.739 20675601.745
+ 46.500 42.200
+ -2588930.687 3 -2017347.706 2 23941073.248 23941075.555 23941071.860
+ 23.000 17.800
+ 06 1 2 16 9 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -866014.009 3 -674817.947 4 24272150.765 24272151.636 24272150.113
+ 22.600 25.600
+ -9473079.888 6 -7381622.725 5 22828347.823 22828345.280 22828346.147
+ 38.900 32.300
+ -17299367.472 6 -13480034.568 5 21879521.795 21879522.486 21879521.016
+ 39.300 34.700
+ -1838540.738 3 -1432633.344 3 24438790.623 24438791.486 24438789.767
+ 19.900 23.000
+ -10087701.872 6 -7860545.656 5 22802281.828 22802281.880 22802281.480
+ 36.900 34.800
+ -22102430.667 7 -17222677.967 7 20560538.362 20560537.803 20560537.426
+ 46.800 43.100
+ -20723959.481 7 -16148540.092 7 20989752.811 20989750.629 20989751.772
+ 45.200 44.700
+ -20023600.395 7 -15602798.923 6 20673858.328 20673856.652 20673857.652
+ 46.500 41.900
+ -2701843.904 3 -2105332.014 3 23919585.072 23919588.928 23919584.563
+ 20.500 21.600
+ 06 1 2 16 10 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -835902.703 4 -651354.629 4 24277880.866 24277881.898 24277880.412
+ 25.300 25.300
+ -9386092.797 6 -7313840.615 5 22844901.356 22844898.412 22844899.395
+ 39.500 32.300
+ -17219283.615 6 -13417631.604 5 21894761.188 21894762.173 21894760.653
+ 39.300 34.800
+ -1802106.540 3 -1404243.127 3 24445723.819 24445724.341 24445723.248
+ 21.600 22.600
+ -10173110.255 6 -7927097.612 5 22786029.466 22786029.440 22786028.744
+ 37.200 35.100
+ -22063878.555 7 -17192637.380 7 20567874.576 20567874.109 20567873.535
+ 46.600 43.000
+ -20774068.860 7 -16187586.360 7 20980217.158 20980215.014 20980216.164
+ 45.100 44.700
+ -20032175.737 7 -15609481.015 7 20672226.589 20672224.790 20672225.911
+ 46.600 42.200
+ -2814653.476 3 -2193235.558 2 23898119.245 23898121.718 23898118.085
+ 21.600 17.000
+ 06 1 2 16 10 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -805237.808 3 -627459.919 3 24283716.236 24283716.409 24283715.609
+ 23.800 18.600
+ -9298969.934 6 -7245952.718 5 22861480.198 22861477.435 22861478.368
+ 39.700 32.600
+ -17138810.869 6 -13354925.627 5 21910074.869 21910075.624 21910073.957
+ 38.900 35.300
+ -1765221.030 3 -1375501.199 3 24452742.490 24452743.895 24452742.041
+ 20.500 22.100
+ -10258298.158 6 -7993477.757 5 22769818.487 22769818.609 22769818.037
+ 37.000 35.100
+ -22024701.314 7 -17162109.677 7 20575329.720 20575329.286 20575328.735
+ 46.700 42.900
+ -20823912.169 7 -16226425.303 7 20970732.141 20970730.198 20970731.278
+ 45.000 44.700
+ -20040161.675 7 -15615703.818 7 20670707.064 20670705.098 20670706.330
+ 46.800 42.200
+ -2927356.518 4 -2281056.081 3 23876671.697 23876675.773 23876671.175
+ 25.300 21.600
+ 06 1 2 16 11 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -774021.230 4 -603135.367 3 24289656.661 24289657.197 24289656.194
+ 24.900 22.100
+ -9211712.825 6 -7177960.205 5 22878084.164 22878081.760 22878082.297
+ 38.600 31.500
+ -17057951.771 6 -13291918.586 5 21925462.729 21925462.718 21925461.314
+ 39.300 35.400
+ -1727886.075 3 -1346409.095 2 24459847.068 24459847.591 24459846.377
+ 23.000 17.800
+ -10343264.922 6 -8059685.588 5 22753650.004 22753649.969 22753649.291
+ 36.000 34.900
+ -21984899.807 7 -17131095.533 7 20582903.852 20582903.217 20582902.810
+ 46.500 42.700
+ -20873487.952 7 -16265055.782 7 20961298.288 20961296.262 20961297.366
+ 44.900 44.800
+ -20047558.041 7 -15621467.210 7 20669299.449 20669297.661 20669298.893
+ 46.800 42.300
+ -3039950.586 3 -2368791.707 2 23855246.540 23855248.736 23855245.531
+ 23.800 17.800
+ 06 1 2 16 11 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -742254.574 4 -578382.184 3 24295701.559 24295702.266 24295700.976
+ 25.900 22.600
+ -9124322.951 6 -7109864.247 5 22894713.938 22894711.586 22894712.281
+ 38.900 31.800
+ -16976708.803 6 -13228612.440 5 21940922.033 21940922.567 21940921.321
+ 39.100 34.400
+ -1690103.259 3 -1316967.982 2 24467037.865 24467037.718 24467036.924
+ 23.400 16.100
+ -10428009.519 5 -8125720.286 5 22737523.465 22737523.611 22737522.862
+ 35.700 34.900
+ -21944475.143 7 -17099595.814 7 20590596.220 20590595.766 20590595.317
+ 46.600 42.700
+ -20922794.929 7 -16303476.803 7 20951915.330 20951913.435 20951914.454
+ 44.800 44.900
+ -20054364.798 7 -15626771.165 7 20668004.299 20668002.382 20668003.586
+ 46.900 42.200
+ -3152432.896 4 -2456440.201 3 23833841.244 23833844.424 23833840.408
+ 25.300 18.600
+ 06 1 2 16 12 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -709939.608 4 -553201.733 3 24301851.386 24301851.417 24301850.680
+ 26.800 21.600
+ -9036802.089 6 -7041666.210 5 22911368.854 22911366.262 22911366.712
+ 38.500 31.300
+ -16895084.280 6 -13165008.956 5 21956454.434 21956455.255 21956453.780
+ 38.400 34.600
+ -1651874.913 3 -1287179.675 2 24474312.071 24474312.523 24474311.535
+ 21.100 17.800
+ -10512531.085 6 -8191581.206 5 22721439.566 22721439.634 22721439.013
+ 36.200 35.600
+ -21903428.655 7 -17067611.556 7 20598407.480 20598406.698 20598406.312
+ 46.600 42.700
+ -20971831.635 7 -16341687.224 7 20942583.852 20942582.043 20942583.010
+ 44.800 45.000
+ -20060581.996 7 -15631615.725 7 20666820.897 20666819.192 20666820.405
+ 46.800 42.200
+ -3264800.829 4 -2543999.579 3 23812458.119 23812461.405 23812457.728
+ 25.300 19.900
+ 06 1 2 16 12 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -677078.236 3 -527595.500 3 24308103.967 24308104.855 24308103.462
+ 22.600 19.900
+ -8949151.373 6 -6973367.007 5 22928048.086 22928046.107 22928046.321
+ 38.600 31.600
+ -16813080.397 6 -13101109.871 5 21972060.077 21972060.230 21972058.888
+ 38.100 34.600
+ -1613202.777 3 -1257045.586 3 24481671.100 24481671.684 24481670.604
+ 23.400 22.600
+ -10596829.042 6 -8257267.882 5 22705398.363 22705398.148 22705397.700
+ 37.200 35.800
+ -21861761.624 7 -17035143.756 7 20606336.051 20606335.754 20606335.115
+ 46.600 42.800
+ -21020596.703 7 -16379685.978 7 20933304.258 20933302.355 20933303.440
+ 44.900 44.900
+ -20066209.505 7 -15636000.786 7 20665750.216 20665748.370 20665749.529
+ 46.900 42.200
+ -3377051.573 4 -2631467.672 2 23791097.382 23791100.633 23791096.743
+ 24.900 17.000
+ 06 1 2 16 13 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -643672.165 4 -501564.835 3 24314461.361 24314461.682 24314460.837
+ 25.600 21.100
+ -8861372.779 6 -6904968.159 5 22944752.150 22944749.651 22944750.286
+ 38.000 32.000
+ -16730699.243 6 -13036916.825 5 21987737.434 21987736.984 21987735.865
+ 38.300 34.900
+ -1574088.824 3 -1226567.241 3 24489114.720 24489115.384 24489113.925
+ 22.100 21.600
+ -10680902.737 6 -8322779.824 5 22689399.316 22689399.477 22689398.940
+ 37.300 35.900
+ -21819475.184 7 -17002193.302 7 20614382.929 20614382.676 20614381.841
+ 46.300 42.700
+ -21069088.554 7 -16417471.835 7 20924076.653 20924074.685 20924075.771
+ 44.900 45.000
+ -20071247.296 7 -15639926.319 7 20664791.435 20664789.693 20664790.832
+ 46.700 42.500
+ -3489182.762 4 -2718842.481 3 23769759.942 23769763.111 23769759.162
+ 25.600 21.600
+ 06 1 2 16 13 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -609723.158 4 -475111.099 3 24320921.761 24320922.150 24320921.154
+ 24.600 20.500
+ -8773467.813 6 -6836470.834 5 22961479.563 22961477.575 22961477.634
+ 37.300 32.000
+ -16647943.238 6 -12972431.690 5 22003483.650 22003485.134 22003483.292
+ 38.000 35.200
+ -1534535.111 4 -1195746.195 3 24496641.707 24496641.415 24496640.832
+ 24.600 21.100
+ -10764750.852 6 -8388115.975 6 22673443.465 22673443.717 22673442.979
+ 36.700 36.500
+ -21776570.880 7 -16968761.400 7 20622547.236 20622547.052 20622546.339
+ 46.500 42.500
+ -21117305.863 7 -16455043.766 7 20914901.311 20914899.284 20914900.326
+ 44.800 45.100
+ -20075695.719 7 -15643392.620 7 20663945.049 20663943.192 20663944.417
+ 46.900 42.300
+ -3601191.590 4 -2806122.058 3 23748445.588 23748448.135 23748444.958
+ 29.000 21.600
+ 06 1 2 16 14 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -575233.114 4 -448235.782 3 24327484.971 24327485.456 24327484.642
+ 26.200 21.600
+ -8685437.674 6 -6767875.991 5 22978231.693 22978229.364 22978229.788
+ 38.100 32.300
+ -16564815.043 6 -12907656.523 5 22019303.128 22019303.869 22019302.283
+ 38.400 34.700
+ -1494543.545 4 -1164584.000 3 24504251.207 24504251.534 24504250.876
+ 24.600 19.300
+ -10848372.878 6 -8453275.950 6 22657531.210 22657531.043 22657530.580
+ 37.500 36.500
+ -21733050.233 7 -16934849.227 7 20630829.262 20630828.797 20630828.180
+ 46.600 42.400
+ -21165247.158 7 -16492400.617 7 20905778.378 20905776.355 20905777.430
+ 44.800 45.200
+ -20079554.812 7 -15646399.695 7 20663210.705 20663208.765 20663210.014
+ 46.700 42.300
+ -3713075.069 4 -2893303.880 4 23727153.869 23727157.977 23727153.760
+ 27.100 25.300
+ 06 1 2 16 14 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -540204.014 3 -420940.400 3 24334150.454 24334151.172 24334149.992
+ 23.000 18.600
+ -8597283.995 6 -6699184.870 5 22995006.752 22995004.108 22995004.784
+ 37.300 32.000
+ -16481316.706 6 -12842592.947 5 22035193.513 22035193.121 22035191.803
+ 37.300 34.600
+ -1454116.167 3 -1133082.178 3 24511945.066 24511944.937 24511944.252
+ 23.000 20.500
+ -10931768.109 6 -8518259.210 6 22641661.642 22641661.303 22641660.923
+ 37.700 36.000
+ -21688914.010 7 -16900457.386 7 20639227.702 20639227.636 20639226.873
+ 46.400 42.400
+ -21212910.908 7 -16529541.197 7 20896708.323 20896706.195 20896707.343
+ 44.800 45.300
+ -20082824.540 7 -15648947.528 7 20662588.329 20662586.579 20662587.733
+ 46.700 42.400
+ -3824830.586 4 -2980385.972 3 23705887.331 23705890.644 23705886.624
+ 24.200 21.100
+ 06 1 2 16 15 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -504637.650 3 -393226.379 3 24340918.626 24340919.411 24340918.000
+ 21.600 19.900
+ -8509008.384 6 -6630398.735 5 23011805.004 23011802.367 23011803.073
+ 37.500 30.200
+ -16397450.524 6 -12777242.745 5 22051151.077 22051152.209 22051150.793
+ 38.100 33.500
+ -1413255.088 3 -1101242.381 3 24519719.934 24519720.283 24519719.587
+ 20.500 18.600
+ -11014935.510 6 -8583064.940 6 22625835.624 22625834.985 22625834.696
+ 38.100 36.300
+ -21644163.723 7 -16865587.051 7 20647743.952 20647743.285 20647742.847
+ 46.500 42.300
+ -21260295.789 7 -16566464.474 7 20887691.298 20887689.055 20887690.370
+ 44.900 45.200
+ -20085504.912 7 -15651036.128 7 20662078.584 20662076.515 20662077.811
+ 46.700 42.100
+ -3936455.721 4 -3067366.541 4 23684646.535 23684649.968 23684645.491
+ 26.200 24.900
+ 06 1 2 16 15 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -468535.945 4 -365095.228 3 24347788.654 24347789.501 24347788.249
+ 24.200 19.300
+ -8420612.242 6 -6561518.680 5 23028626.453 23028623.949 23028624.494
+ 38.100 30.800
+ -16313218.795 6 -12711607.674 5 22067180.081 22067181.278 22067179.311
+ 36.900 34.100
+ -1371962.320 3 -1069066.269 2 24527577.630 24527578.422 24527576.546
+ 19.900 17.800
+ -11097874.546 6 -8647692.718 6 22610052.478 22610052.139 22610051.629
+ 37.800 37.200
+ -21598801.164 7 -16830239.622 7 20656375.858 20656375.605 20656374.986
+ 46.600 42.500
+ -21307400.429 7 -16603169.386 7 20878727.457 20878725.366 20878726.463
+ 44.700 45.200
+ -20087596.439 7 -15652665.889 7 20661680.266 20661678.429 20661679.674
+ 46.600 42.100
+ -4047947.774 4 -3154243.345 3 23663429.726 23663432.809 23663429.276
+ 24.900 21.100
+ 06 1 2 16 16 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -431900.878 3 -336548.510 2 24354760.573 24354760.235 24354759.896
+ 23.400 16.100
+ -8332097.143 6 -6492545.935 5 23045470.307 23045468.146 23045468.536
+ 37.900 32.000
+ -16228624.162 6 -12645689.863 5 22083278.643 22083278.916 22083277.358
+ 36.600 34.000
+ -1330239.907 2 -1036555.329 3 24535517.100 24535517.767 24535516.678
+ 17.000 19.900
+ -11180584.775 6 -8712142.194 6 22594312.918 22594312.923 22594312.388
+ 37.600 37.100
+ -21552827.450 7 -16794415.968 7 20665124.569 20665124.172 20665123.524
+ 46.500 42.300
+ -21354223.456 7 -16639654.857 7 20869817.382 20869815.318 20869816.365
+ 44.700 45.500
+ -20089098.871 7 -15653836.617 6 20661394.475 20661392.458 20661393.715
+ 46.800 41.900
+ -4159303.944 4 -3241014.362 4 23642239.560 23642243.154 23642238.571
+ 24.600 26.500
+ 06 1 2 16 16 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -394734.470 4 -307587.670 2 24361832.830 24361833.204 24361832.403
+ 25.600 17.800
+ -8243464.542 6 -6423481.625 5 23062336.520 23062334.121 23062334.818
+ 37.900 30.800
+ -16143668.899 6 -12579491.025 5 22099443.518 22099445.664 22099443.759
+ 37.400 34.300
+ -1288089.767 2 -1003711.146 3 24543538.597 24543539.449 24543537.085
+ 16.100 23.800
+ -11263064.966 6 -8776412.428 6 22578617.666 22578617.459 22578617.073
+ 37.800 37.200
+ -21506244.230 7 -16758117.376 7 20673988.879 20673988.683 20673987.973
+ 46.400 42.000
+ -21400763.323 7 -16675919.679 7 20860961.047 20860959.089 20860960.104
+ 44.800 45.500
+ -20090012.654 7 -15654548.647 6 20661220.569 20661218.576 20661219.913
+ 46.600 41.900
+ -4270521.632 4 -3327677.404 3 23621075.787 23621078.737 23621075.023
+ 26.200 23.400
+ 06 1 2 16 17 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -357038.618 3 -278214.312 3 24369005.920 24369006.747 24369005.544
+ 23.400 20.500
+ -8154716.073 6 -6354327.015 5 23079224.177 23079222.278 23079222.712
+ 37.800 30.100
+ -16058355.582 6 -12513013.183 5 22115680.419 22115679.918 22115678.724
+ 37.200 33.000
+ -1245514.155 2 -970535.395 3 24551639.730 24551641.321 24551639.209
+ 17.800 21.600
+ -11345314.333 6 -8840502.792 6 22562965.737 22562965.830 22562965.308
+ 37.800 36.800
+ -21459052.699 7 -16721344.775 7 20682969.299 20682968.996 20682968.265
+ 46.400 42.200
+ -21447018.521 7 -16711962.678 7 20852159.094 20852156.936 20852158.044
+ 44.700 45.400
+ -20090337.956 7 -15654802.135 6 20661158.574 20661156.695 20661157.899
+ 46.800 41.900
+ -4381598.252 4 -3414230.582 3 23599939.669 23599941.475 23599938.251
+ 25.900 23.800
+ 06 1 2 16 17 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -318815.254 3 -248429.910 2 24376280.030 24376280.193 24376279.362
+ 22.100 17.800
+ -8065852.801 6 -6285082.959 5 23096134.963 23096132.689 23096133.174
+ 37.700 31.000
+ -15972686.530 6 -12446258.164 5 22131981.642 22131982.448 22131980.983
+ 37.700 33.200
+ -1202515.034 2 -937029.650 3 24559822.514 24559823.551 24559821.559
+ 17.800 21.100
+ -11427332.315 6 -8904412.864 6 22547357.665 22547358.072 22547357.381
+ 37.600 36.000
+ -21411254.727 7 -16684099.626 7 20692064.894 20692064.618 20692063.869
+ 46.100 42.300
+ -21492987.519 7 -16747782.669 7 20843411.431 20843409.252 20843410.478
+ 44.700 45.500
+ -20090074.927 7 -15654597.173 6 20661208.599 20661206.724 20661207.953
+ 46.500 41.900
+ -4492531.237 4 -3500671.809 3 23578828.625 23578831.420 23578827.529
+ 24.900 21.600
+ 06 1 2 16 18 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -280066.602 3 -218236.183 2 24383653.455 24383653.607 24383652.954
+ 23.000 12.600
+ -7976876.347 6 -6215750.700 4 23113066.822 23113063.826 23113064.997
+ 38.500 29.700
+ -15886664.103 6 -12379227.756 5 22148350.534 22148351.933 22148350.145
+ 36.700 33.000
+ -1159094.601 2 -903195.615 3 24568085.879 24568086.120 24568084.868
+ 17.000 21.100
+ -11509117.967 6 -8968141.902 6 22531794.564 22531794.778 22531794.233
+ 37.200 36.400
+ -21362851.466 7 -16646382.824 7 20701275.507 20701275.420 20701274.689
+ 46.300 42.200
+ -21538669.266 7 -16783378.828 7 20834718.437 20834716.333 20834717.424
+ 44.700 45.700
+ -20089224.117 7 -15653934.208 6 20661370.476 20661368.614 20661369.811
+ 46.600 41.700
+ -4603317.650 4 -3586998.923 3 23557747.956 23557749.458 23557746.542
+ 28.600 20.500
+ 06 1 2 16 18 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -240794.494 3 -187634.599 3 24391126.764 24391127.385 24391126.224
+ 23.400 18.600
+ -7887788.128 6 -6146331.331 5 23130019.518 23130017.004 23130017.773
+ 37.900 30.200
+ -15800290.809 6 -12311923.976 5 22164788.717 22164788.263 22164787.080
+ 37.200 33.200
+ -1115255.020 3 -869034.940 3 24576428.053 24576428.921 24576427.514
+ 19.900 21.100
+ -11590670.911 6 -9031689.603 6 22516275.708 22516275.693 22516275.320
+ 37.900 36.500
+ -21313844.466 7 -16608195.574 6 20710601.716 20710601.105 20710600.651
+ 46.300 41.700
+ -21584062.123 7 -16818749.871 7 20826080.454 20826078.389 20826079.470
+ 44.500 45.700
+ -20087785.481 7 -15652813.199 6 20661644.242 20661642.381 20661643.623
+ 46.600 41.800
+ -4713954.605 4 -3673209.533 3 23536692.743 23536695.869 23536691.952
+ 26.800 20.500
+ 06 1 2 16 19 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -201001.088 3 -156626.800 3 24398699.169 24398699.991 24398698.577
+ 21.100 20.500
+ -7798589.749 6 -6076826.145 5 23146993.583 23146991.209 23146991.619
+ 37.200 30.600
+ -15713568.890 6 -12244348.537 5 22181289.909 22181291.277 22181289.474
+ 36.700 32.800
+ -1070998.479 3 -834549.316 2 24584849.896 24584849.933 24584849.010
+ 19.900 16.100
+ -11671990.241 6 -9095055.268 6 22500801.457 22500800.981 22500800.614
+ 38.100 36.500
+ -21264235.361 7 -16569539.157 6 20720041.829 20720041.491 20720040.880
+ 46.500 41.600
+ -21629164.506 7 -16853894.574 7 20817497.778 20817495.637 20817496.851
+ 44.700 45.900
+ -20085759.508 7 -15651234.519 6 20662029.939 20662027.866 20662029.262
+ 46.900 41.800
+ -4824439.480 4 -3759301.679 3 23515668.827 23515671.396 23515667.627
+ 24.900 22.100
+ 06 1 2 16 19 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -160688.444 3 -125214.349 3 24406370.364 24406370.743 24406369.775
+ 19.900 19.300
+ -7709282.664 6 -6007236.260 5 23163988.013 23163986.026 23163986.242
+ 37.100 30.200
+ -15626500.462 6 -12176503.069 5 22197859.510 22197859.805 22197858.343
+ 36.400 33.200
+ -1026326.996 3 -799740.434 2 24593350.624 24593350.890 24593350.027
+ 20.500 16.100
+ -11753075.205 6 -9158238.314 6 22485371.553 22485370.922 22485370.748
+ 38.300 36.200
+ -21214025.914 7 -16530414.935 6 20729596.329 20729595.959 20729595.392
+ 46.500 41.400
+ -21673975.082 7 -16888811.890 7 20808970.558 20808968.435 20808969.636
+ 44.500 45.700
+ -20083146.526 7 -15649198.431 6 20662527.137 20662525.084 20662526.499
+ 46.800 41.900
+ -4934769.770 4 -3845273.242 4 23494674.512 23494676.641 23494672.956
+ 27.100 24.200
+ 06 1 2 16 20 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -119858.463 3 -93398.836 3 24414140.241 24414141.152 24414139.564
+ 23.000 20.500
+ -7619868.272 6 -5937562.752 5 23181002.652 23181000.592 23181000.992
+ 37.000 30.200
+ -15539088.768 6 -12108390.155 5 22214493.609 22214493.752 22214492.345
+ 36.400 32.700
+ -981242.751 3 -764609.894 3 24601930.245 24601930.126 24601929.278
+ 22.600 19.300
+ -11833925.063 6 -9221238.168 6 22469986.849 22469985.897 22469985.899
+ 38.600 37.200
+ -21163217.575 7 -16490824.047 6 20739264.779 20739264.382 20739263.882
+ 46.400 41.500
+ -21718492.283 7 -16923500.606 7 20800499.406 20800497.025 20800498.426
+ 44.700 45.800
+ -20079946.770 7 -15646705.112 6 20663136.161 20663134.053 20663135.438
+ 47.000 41.900
+ -5044942.740 4 -3931122.266 4 23473709.194 23473711.306 23473707.753
+ 28.100 25.300
+ 06 1 2 16 20 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -78513.546 3 -61182.076 2 24422008.004 24422008.281 24422007.805
+ 21.100 13.900
+ -7530347.836 6 -5867806.606 5 23198038.038 23198036.039 23198036.500
+ 37.100 30.600
+ -15451336.015 6 -12040011.436 5 22231191.346 22231192.644 22231190.936
+ 36.400 32.600
+ -935748.046 3 -729159.494 3 24610587.070 24610587.838 24610586.366
+ 20.500 19.300
+ -11914538.951 6 -9284054.138 6 22454645.830 22454645.831 22454645.298
+ 38.200 38.000
+ -21111812.125 7 -16450767.875 6 20749047.287 20749046.636 20749046.186
+ 46.100 41.400
+ -21762714.787 7 -16957959.692 7 20792084.167 20792081.751 20792083.092
+ 44.400 45.700
+ -20076160.874 7 -15643755.059 7 20663856.386 20663854.496 20663855.850
+ 47.100 42.000
+ -5154955.619 4 -4016846.518 4 23452773.054 23452776.431 23452772.513
+ 28.400 24.200
+ 06 1 2 16 21 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ -36655.875 3 -28565.724 2 24429972.979 24429973.548 24429972.228
+ 18.600 17.800
+ -7440722.848 6 -5797969.001 5 23215093.688 23215091.162 23215091.684
+ 36.200 30.400
+ -15363244.533 6 -11971368.820 5 22247956.000 22247956.196 22247954.530
+ 36.500 32.400
+ -889844.961 3 -693390.905 3 24619321.327 24619323.324 24619320.851
+ 19.900 21.600
+ -11994916.278 6 -9346685.769 6 22439350.573 22439350.240 22439349.947
+ 38.800 37.300
+ -21059811.127 7 -16410247.640 6 20758942.566 20758942.323 20758941.533
+ 46.100 41.500
+ -21806641.721 7 -16992188.458 7 20783725.069 20783722.753 20783724.042
+ 44.400 46.000
+ -20071789.101 7 -15640348.482 7 20664688.432 20664686.505 20664687.825
+ 47.000 42.000
+ -5264805.767 4 -4102443.954 4 23431869.352 23431872.506 23431868.705
+ 27.900 25.300
+ 06 1 2 16 21 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 5712.526 3 4448.590 3 24438035.865 24438036.321 24438035.236
+ 21.600 21.100
+ -7350994.990 5 -5728051.227 4 23232168.318 23232165.628 23232166.413
+ 35.900 29.700
+ -15274816.958 5 -11902464.282 5 22264781.441 22264783.306 22264781.262
+ 35.700 32.400
+ -843535.881 3 -657305.946 3 24628134.203 24628135.526 24628133.573
+ 22.100 22.600
+ -12075056.378 6 -9409132.572 6 22424100.562 22424099.859 22424099.983
+ 39.300 36.700
+ -21007216.432 7 -16369264.783 6 20768950.978 20768950.694 20768949.968
+ 45.900 41.100
+ -21850270.547 7 -17026184.938 7 20775422.797 20775420.537 20775421.818
+ 44.400 46.200
+ -20066831.648 7 -15636485.528 6 20665631.760 20665629.869 20665631.116
+ 47.000 41.900
+ -5374490.579 4 -4187912.482 4 23410996.321 23410999.943 23410995.913
+ 26.500 25.300
+ 06 1 2 16 22 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 48589.476 3 37859.144 2 24446194.360 24446195.688 24446193.891
+ 19.300 17.800
+ -7261165.307 5 -5658054.122 5 23249261.737 23249259.827 23249259.848
+ 35.700 30.100
+ -15186055.987 5 -11833299.981 5 22281673.931 22281674.118 22281672.501
+ 35.600 32.700
+ -796822.798 4 -620906.200 4 24637024.290 24637024.742 24637023.355
+ 24.200 24.200
+ -12154958.465 6 -9471393.903 6 22408895.250 22408895.108 22408894.511
+ 38.000 36.900
+ -20954029.620 7 -16327820.536 6 20779072.017 20779071.712 20779071.049
+ 46.000 41.200
+ -21893600.374 7 -17059948.427 7 20767177.314 20767175.132 20767176.226
+ 44.300 46.100
+ -20061289.199 7 -15632166.737 6 20666686.606 20666684.498 20666685.865
+ 47.100 41.900
+ -5484007.371 4 -4273250.102 4 23390155.905 23390159.856 23390155.438
+ 27.900 26.200
+ 06 1 2 16 22 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 91972.774 3 71664.271 2 24454450.330 24454451.037 24454449.395
+ 19.900 17.800
+ -7171235.104 5 -5587978.699 5 23266374.630 23266373.158 23266372.784
+ 34.800 30.200
+ -15096963.746 6 -11763877.523 5 22298625.806 22298627.788 22298625.939
+ 36.200 32.100
+ -749708.225 3 -584193.582 3 24645989.728 24645990.173 24645988.961
+ 23.400 23.400
+ -12234621.390 6 -9533468.870 6 22393735.640 22393735.838 22393735.125
+ 38.800 37.800
+ -20900252.302 7 -16285916.152 6 20789305.587 20789305.372 20789304.560
+ 45.900 41.100
+ -21936629.524 7 -17093477.623 7 20758988.750 20758986.960 20758987.848
+ 44.300 46.200
+ -20055162.255 7 -15627392.489 6 20667852.364 20667850.350 20667851.763
+ 47.000 41.600
+ -5593353.592 4 -4358454.770 3 23369349.154 23369351.225 23369347.857
+ 28.400 23.000
+ 06 1 2 16 23 0.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 135860.081 2 105862.145 3 24462801.377 24462802.537 24462800.872
+ 15.100 18.600
+ -7081206.294 6 -5517826.427 4 23283507.210 23283504.600 23283505.516
+ 36.000 29.000
+ -15007542.790 5 -11694198.916 5 22315644.051 22315643.930 22315642.542
+ 35.800 31.100
+ -702194.328 3 -547169.855 3 24655030.406 24655032.156 24655029.701
+ 20.500 23.400
+ -12314045.064 6 -9595357.405 6 22378622.195 22378621.928 22378621.618
+ 39.300 38.300
+ -20845886.360 7 -16243553.103 6 20799651.107 20799650.915 20799650.121
+ 46.200 41.200
+ -21979356.843 7 -17126771.630 7 20750858.255 20750856.147 20750857.264
+ 44.300 46.200
+ -20048451.142 7 -15622163.048 6 20669129.545 20669127.363 20669128.862
+ 47.100 41.800
+ -5702526.460 4 -4443524.358 4 23348573.638 23348576.572 23348572.440
+ 26.200 26.200
+ 06 1 2 16 23 30.0000000 0 9G26G19G27G29G17G 8G28G11G24
+ 180249.379 3 140451.135 3 24471249.326 24471249.726 24471248.903
+ 21.600 19.300
+ -6991080.075 6 -5447598.259 5 23300658.244 23300655.991 23300656.362
+ 36.300 30.400
+ -14917795.911 5 -11624266.361 5 22332720.581 22332722.545 22332720.429
+ 35.400 32.600
+ -654283.276 3 -509836.654 4 24664148.218 24664149.543 24664147.739
+ 21.600 24.600
+ -12393228.763 6 -9657058.946 6 22363554.055 22363553.893 22363553.227
+ 38.800 38.000
+ -20790933.682 7 -16200732.854 6 20810108.391 20810108.057 20810107.432
+ 46.100 41.000
+ -22021780.754 7 -17159829.219 7 20742785.204 20742783.165 20742784.257
+ 44.200 46.200
+ -20041156.195 7 -15616478.671 6 20670517.557 20670515.606 20670516.909
+ 46.800 41.900
+ -5811523.229 4 -4528456.758 4 23327831.897 23327834.567 23327831.055
+ 27.600 24.200
+ 06 1 2 16 24 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 225138.311 3 175429.491 2 24479790.296 24479791.676 24479789.897
+ 18.600 17.000
+ -6900857.438 6 -5377294.955 4 23317826.961 23317824.565 23317825.032
+ 36.300 29.700
+ -14827725.179 5 -11554081.437 5 22349861.652 22349862.345 22349860.485
+ 34.800 32.100
+ -154246.943 1 -120192.859 9 23338521.728 23338521.888 23338519.383
+ 6.500 -3.000
+ -605977.341 3 -472195.705 3 24673340.618 24673341.428 24673340.202
+ 22.100 23.000
+ -12472171.841 6 -9718572.987 6 22348531.549 22348531.511 22348530.989
+ 39.500 38.100
+ -20735395.922 7 -16157456.698 6 20820676.891 20820676.651 20820675.885
+ 46.200 41.300
+ -22063899.691 7 -17192649.166 7 20734770.322 20734768.198 20734769.323
+ 44.100 46.400
+ -20033278.413 7 -15610340.135 6 20672016.610 20672014.716 20672015.940
+ 46.800 41.600
+ -5920341.296 5 -4613249.922 4 23307124.382 23307127.255 23307123.871
+ 30.200 24.900
+ 06 1 2 16 24 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 270524.586 3 210795.381 3 24488427.888 24488428.835 24488427.430
+ 21.100 21.600
+ -6810539.761 5 -5306917.608 4 23335013.672 23335011.566 23335011.529
+ 35.500 29.000
+ -14737333.466 5 -11483646.413 5 22367062.434 22367063.554 22367061.408
+ 34.700 32.100
+ -233788.841 1 -182173.540 9 23323382.966 23323385.713 23323383.691
+ 9.000 -3.000
+ -557278.871 3 -434248.912 3 24682608.290 24682608.982 24682607.342
+ 22.600 23.800
+ -12550873.212 6 -9779898.690 6 22333555.180 22333554.786 22333554.698
+ 39.500 37.800
+ -20679274.721 7 -16113725.914 6 20831356.535 20831356.137 20831355.518
+ 45.900 41.200
+ -22105712.113 7 -17225230.268 7 20726813.649 20726811.530 20726812.663
+ 44.000 46.400
+ -20024818.104 7 -15603747.686 6 20673626.346 20673624.718 20673625.821
+ 46.700 41.900
+ -6028978.116 5 -4697901.880 4 23286451.702 23286454.316 23286450.968
+ 30.200 24.900
+ 06 1 2 16 25 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 316406.063 3 246547.102 3 24497158.849 24497159.584 24497158.636
+ 20.500 19.300
+ -6720128.919 5 -5236467.657 4 23352217.883 23352216.347 23352216.222
+ 35.500 29.000
+ -14646623.410 5 -11412963.327 5 22384324.307 22384325.041 22384322.853
+ 34.800 31.100
+ -313165.934 2 -244025.766 2 23308278.422 23308280.244 23308278.670
+ 15.100 12.600
+ -508190.227 3 -395998.113 3 24691949.467 24691950.074 24691948.499
+ 18.600 23.000
+ -12629332.324 6 -9841035.617 6 22318624.997 22318624.349 22318624.242
+ 39.500 37.700
+ -20622572.218 7 -16069542.165 6 20842146.618 20842146.212 20842145.605
+ 46.000 41.100
+ -22147216.984 7 -17257571.724 7 20718915.595 20718913.464 20718914.676
+ 44.200 46.500
+ -20015775.945 7 -15596701.842 6 20675347.213 20675345.417 20675346.570
+ 46.900 41.900
+ -6137430.848 5 -4782410.367 3 23265814.102 23265816.064 23265813.055
+ 30.800 23.400
+ 06 1 2 16 25 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 362780.277 3 282682.785 2 24505983.077 24505984.174 24505982.705
+ 19.300 17.000
+ -6629626.038 5 -5165945.982 4 23369440.353 23369438.176 23369438.722
+ 35.900 29.700
+ -14555597.236 5 -11342033.920 5 22401644.818 22401646.941 22401644.660
+ 34.900 31.600
+ -392377.680 2 -305749.161 2 23293206.533 23293207.100 23293205.452
+ 17.800 12.600
+ -458713.683 3 -357445.052 3 24701363.737 24701365.131 24701363.427
+ 18.600 21.600
+ -12707548.329 6 -9901983.117 6 22303740.816 22303740.501 22303740.182
+ 40.100 37.700
+ -20565290.441 7 -16024907.039 6 20853046.730 20853046.483 20853045.698
+ 45.700 40.700
+ -22188412.399 7 -17289672.047 7 20711076.666 20711074.237 20711075.593
+ 44.000 46.500
+ -20006152.763 7 -15589203.259 6 20677178.490 20677176.696 20677177.797
+ 46.900 41.900
+ -6245696.876 4 -4866773.395 4 23245210.915 23245213.746 23245210.308
+ 29.500 24.600
+ 06 1 2 16 26 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 409644.991 3 319200.750 2 24514901.555 24514902.410 24514900.552
+ 20.500 17.800
+ -6539032.323 5 -5095353.524 4 23386680.077 23386677.653 23386678.058
+ 34.800 29.200
+ -14464257.958 5 -11270860.518 5 22419028.223 22419028.021 22419026.524
+ 34.100 30.800
+ -471423.736 3 -367343.435 1 23278164.383 23278165.193 23278163.400
+ 18.600 11.000
+ -408851.648 2 -318591.551 3 24710852.795 24710853.673 24710851.774
+ 17.800 19.900
+ -12785520.637 6 -9962740.708 6 22288903.329 22288902.947 22288902.634
+ 39.500 38.400
+ -20507430.869 7 -15979821.681 6 20864057.177 20864056.938 20864056.117
+ 45.700 40.600
+ -22229297.264 7 -17321530.381 7 20703296.192 20703294.168 20703295.198
+ 43.800 46.600
+ -19995948.643 7 -15581251.989 6 20679120.306 20679118.500 20679119.645
+ 46.700 41.800
+ -6353773.438 4 -4950988.838 3 23224643.589 23224646.833 23224643.676
+ 28.800 22.600
+ 06 1 2 16 26 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 456997.782 3 356098.970 3 24523912.855 24523913.348 24523911.989
+ 19.300 20.500
+ -6448349.371 6 -5024691.552 4 23403936.774 23403933.823 23403935.053
+ 36.000 28.400
+ -14372607.932 5 -11199444.982 5 22436466.710 22436468.812 22436466.564
+ 35.100 31.000
+ -550303.557 3 -428808.190 2 23263154.002 23263154.756 23263152.330
+ 18.600 15.100
+ -358606.381 2 -279439.469 3 24720412.984 24720415.060 24720412.445
+ 17.000 18.600
+ -12863248.836 6 -10023308.080 6 22274111.864 22274111.434 22274111.413
+ 39.800 38.200
+ -20448995.561 7 -15934287.699 6 20875177.043 20875176.888 20875176.110
+ 46.000 40.800
+ -22269869.787 7 -17353145.331 7 20695575.377 20695573.470 20695574.428
+ 43.900 46.700
+ -19985164.465 7 -15572848.731 6 20681172.584 20681170.604 20681171.833
+ 46.800 41.900
+ -6461657.885 4 -5035054.571 4 23204114.796 23204117.595 23204114.028
+ 29.000 25.900
+ 06 1 2 16 27 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 504836.438 3 393375.810 3 24533015.853 24533016.929 24533015.347
+ 19.300 19.900
+ -6357578.324 5 -4953960.919 4 23421209.648 23421207.561 23421207.820
+ 35.600 29.000
+ -14280649.525 5 -11127789.158 5 22453968.205 22453967.842 22453966.369
+ 34.500 31.600
+ -629016.755 3 -490143.122 2 23248175.295 23248176.737 23248174.000
+ 21.600 17.000
+ -307980.210 3 -239990.543 2 24730047.411 24730048.917 24730046.689
+ 18.600 17.800
+ -12940732.180 6 -10083684.652 6 22259367.280 22259366.638 22259366.587
+ 39.900 37.900
+ -20389986.729 7 -15888306.817 6 20886405.974 20886405.843 20886405.017
+ 45.700 40.700
+ -22310128.686 7 -17384515.903 7 20687914.409 20687912.383 20687913.445
+ 44.100 46.700
+ -19973800.830 7 -15563993.951 6 20683334.861 20683333.075 20683334.247
+ 46.700 41.800
+ -6569347.754 4 -5118968.673 4 23183621.484 23183624.843 23183621.163
+ 28.600 24.600
+ 06 1 2 16 27 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 553158.410 3 431029.260 3 24542210.998 24542212.740 24542210.636
+ 21.100 19.900
+ -6266720.512 5 -4883162.685 4 23438498.885 23438497.392 23438497.106
+ 34.300 28.600
+ -14188385.420 5 -11055895.109 5 22471522.336 22471525.137 22471523.065
+ 34.000 31.300
+ -707562.821 3 -551347.804 3 23233228.958 23233229.817 23233227.990
+ 23.800 19.900
+ -256975.680 2 -200246.822 2 24739753.578 24739754.580 24739753.245
+ 17.000 16.100
+ -13017969.778 6 -10143869.745 6 22244669.528 22244669.077 22244668.956
+ 40.300 38.400
+ -20330406.254 7 -15841880.496 6 20897743.979 20897743.565 20897742.980
+ 45.700 40.300
+ -22350072.427 7 -17415640.892 7 20680313.465 20680311.336 20680312.473
+ 44.000 46.800
+ -19961858.476 7 -15554688.214 6 20685607.557 20685605.514 20685606.846
+ 46.700 41.600
+ -6676840.525 4 -5202729.175 3 23163165.994 23163169.319 23163166.001
+ 29.900 23.800
+ 06 1 2 16 28 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 601961.344 3 469057.486 3 24551498.344 24551499.500 24551497.779
+ 22.100 19.900
+ -6175777.288 5 -4812297.884 4 23455806.156 23455802.735 23455804.013
+ 35.900 28.100
+ -14095818.176 5 -10983764.882 5 22489139.321 22489140.266 22489138.384
+ 34.500 30.800
+ -785941.292 4 -612421.889 3 23218313.941 23218314.783 23218312.707
+ 25.600 23.400
+ -205595.078 3 -160210.029 2 24749531.596 24749531.529 24749530.865
+ 23.400 15.100
+ -13094960.969 6 -10203862.819 6 22230018.161 22230018.259 22230017.718
+ 40.000 39.300
+ -20270255.711 7 -15795009.967 6 20909190.169 20909189.992 20909189.240
+ 45.600 40.400
+ -22389699.505 7 -17446519.128 7 20672772.895 20672770.617 20672771.853
+ 44.100 46.900
+ -19949338.242 7 -15544932.190 6 20687989.820 20687988.082 20687989.166
+ 46.600 41.800
+ -6784133.255 5 -5286333.827 4 23142749.527 23142752.472 23142748.981
+ 30.200 26.200
+ 06 1 2 16 28 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 651243.040 3 507458.750 2 24560876.250 24560877.410 24560875.804
+ 23.800 17.800
+ -6084750.054 5 -4741367.638 4 23473127.841 23473125.258 23473125.968
+ 35.100 29.000
+ -14002950.476 5 -10911400.473 5 22506811.664 22506812.414 22506810.623
+ 33.600 30.600
+ -864151.725 4 -673365.039 4 23203430.857 23203432.129 23203429.557
+ 27.600 24.900
+ -153840.790 3 -119882.020 2 24759380.061 24759380.849 24759379.391
+ 19.300 17.000
+ -13171705.250 6 -10263663.493 6 22215414.037 22215414.191 22215413.536
+ 39.400 38.800
+ -20209537.482 7 -15747697.089 6 20920744.437 20920744.307 20920743.416
+ 45.400 40.200
+ -22429008.464 7 -17477149.479 7 20665292.488 20665290.182 20665291.525
+ 44.000 46.800
+ -19936241.076 7 -15534726.596 6 20690482.212 20690480.493 20690481.575
+ 46.600 41.800
+ -6891223.419 4 -5369780.607 4 23122369.818 23122373.377 23122369.686
+ 29.200 25.600
+ 06 1 2 16 29 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 701000.875 3 546231.055 3 24570345.203 24570346.243 24570344.969
+ 21.600 20.500
+ -5993640.012 5 -4670372.855 4 23490465.319 23490463.113 23490463.182
+ 34.400 29.200
+ -13909784.776 5 -10838803.928 5 22524540.333 22524541.104 22524539.611
+ 34.000 30.100
+ -942193.742 4 -734176.944 4 23188579.995 23188580.989 23188578.698
+ 28.600 24.900
+ -101715.201 3 -79264.774 2 24769298.852 24769299.190 24769298.199
+ 19.900 13.900
+ -13248202.036 6 -10323271.329 6 22200857.959 22200857.305 22200857.152
+ 40.500 38.900
+ -20148253.508 7 -15699943.369 6 20932406.511 20932406.197 20932405.457
+ 45.400 40.100
+ -22467998.014 7 -17507530.946 7 20657872.979 20657870.767 20657872.091
+ 44.000 46.800
+ -19922567.235 7 -15524071.653 6 20693084.129 20693082.402 20693083.473
+ 46.600 41.900
+ -6998108.148 5 -5453067.293 4 23102030.743 23102034.298 23102030.537
+ 31.100 27.600
+ 06 1 2 16 29 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 751232.589 4 585372.598 3 24579903.916 24579904.937 24579903.549
+ 24.200 21.100
+ -5902448.342 5 -4599314.479 4 23507818.031 23507816.041 23507816.123
+ 34.000 27.400
+ -13816323.940 5 -10765977.358 5 22542326.405 22542326.590 22542324.840
+ 33.800 30.800
+ -1020066.949 5 -794857.302 4 23173760.894 23173762.127 23173759.680
+ 30.100 27.400
+ -49220.825 3 -38360.100 3 24779288.678 24779289.045 24779287.781
+ 19.300 18.600
+ -13324450.608 6 -10382685.755 6 22186347.710 22186347.521 22186347.139
+ 40.100 38.900
+ -20086405.931 7 -15651750.480 6 20944175.864 20944175.428 20944174.804
+ 45.600 40.200
+ -22506666.615 7 -17537662.318 7 20650514.815 20650512.539 20650513.839
+ 44.000 47.100
+ -19908317.642 7 -15512968.065 6 20695795.910 20695793.958 20695795.251
+ 46.600 41.600
+ -7104784.747 4 -5536191.776 4 23081730.486 23081734.164 23081730.342
+ 29.900 28.100
+ 06 1 2 16 30 0.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 801935.470 3 624881.284 3 24589552.142 24589553.203 24589551.680
+ 23.000 19.900
+ -5811176.311 5 -4528193.465 4 23525186.569 23525183.839 23525184.707
+ 34.100 25.600
+ -13722570.608 5 -10692922.889 5 22560165.779 22560167.200 22560165.199
+ 34.400 30.200
+ -1097770.640 5 -855405.573 4 23158974.035 23158975.456 23158973.069
+ 31.600 29.000
+ 3640.022 3 2830.086 3 24789347.453 24789348.592 24789346.812
+ 19.900 18.600
+ -13400450.298 6 -10441906.232 6 22171885.178 22171885.267 22171884.765
+ 39.400 38.900
+ -20023996.587 7 -15603119.844 6 20956051.849 20956051.666 20956050.898
+ 45.400 40.400
+ -22545012.762 7 -17567542.427 7 20643217.446 20643215.459 20643216.567
+ 43.900 47.200
+ -19893493.152 7 -15501416.506 6 20698616.881 20698615.042 20698616.184
+ 46.700 41.700
+ -7211250.873 4 -5619152.245 4 23061470.954 23061473.623 23061470.449
+ 28.800 24.600
+ 06 1 2 16 30 30.0000000 0 10G26G19G27G 7G29G17G 8G28G11G24
+ 853107.016 4 664755.182 3 24599290.237 24599291.079 24599289.606
+ 24.900 21.100
+ -5719825.318 5 -4457010.922 4 23542570.480 23542568.061 23542568.510
+ 34.400 26.800
+ -13628527.001 5 -10619642.231 5 22578062.384 22578063.023 22578061.332
+ 33.600 30.200
+ -1175304.609 5 -915821.589 4 23144219.941 23144221.148 23144218.805
+ 32.400 29.900
+ 56864.768 3 44303.877 3 24799476.075 24799477.168 24799475.454
+ 21.100 20.500
+ -13476200.360 6 -10500932.211 6 22157471.044 22157470.368 22157470.315
+ 40.800 38.800
+ -19961027.830 7 -15554053.309 6 20968034.278 20968034.347 20968033.387
+ 45.400 40.200
+ -22583034.953 7 -17597170.105 7 20635982.239 20635979.978 20635981.216
+ 43.800 47.100
+ -19878094.609 7 -15489417.636 6 20701547.195 20701545.232 20701546.419
+ 46.600 41.600
+ -7317503.714 4 -5701946.513 4 23041251.744 23041254.609 23041251.166
+ 29.500 26.200
+ 06 1 2 16 31 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 904745.114 4 704992.617 3 24609116.105 24609117.330 24609115.988
+ 25.300 19.900
+ -5628396.842 5 -4385768.008 4 23559968.788 23559966.138 23559966.778
+ 33.500 27.100
+ -13534196.162 5 -10546137.729 4 22596013.137 22596013.714 22596011.850
+ 32.800 29.900
+ -1252668.466 5 -976105.047 5 23129497.922 23129499.367 23129496.927
+ 33.100 31.000
+ -13551700.104 6 -10559763.130 6 22143103.605 22143103.275 22143103.072
+ 40.300 39.300
+ -19897501.672 7 -15504552.435 6 20980123.145 20980122.884 20980122.116
+ 45.400 39.900
+ -22620731.824 7 -17626544.287 7 20628808.790 20628806.585 20628807.872
+ 43.800 47.300
+ -19862122.705 7 -15476971.985 6 20704586.317 20704584.508 20704585.710
+ 46.400 41.400
+ -7423540.779 5 -5784572.668 4 23021074.031 23021076.355 23021072.993
+ 31.100 28.100
+ 06 1 2 16 31 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 956846.978 4 745591.443 3 24619031.868 24619032.294 24619031.188
+ 26.200 21.600
+ -5536891.968 5 -4314465.579 4 23577381.768 23577379.192 23577379.883
+ 34.800 27.600
+ -13439580.556 5 -10472411.359 4 22614016.504 22614018.358 22614016.231
+ 32.400 29.000
+ -1329861.604 5 -1036255.464 5 23114808.818 23114809.962 23114807.546
+ 33.600 31.500
+ -13626949.069 6 -10618398.639 6 22128784.128 22128783.827 22128783.447
+ 40.600 39.300
+ -19833419.854 7 -15454618.569 6 20992317.468 20992317.162 20992316.476
+ 45.100 39.800
+ -22658101.812 7 -17655663.752 7 20621697.374 20621695.253 20621696.465
+ 43.700 47.300
+ -19845578.678 7 -15464080.526 6 20707734.767 20707732.815 20707734.020
+ 46.500 41.400
+ -7529359.294 4 -5867028.480 4 23000936.170 23000939.598 23000936.104
+ 29.200 26.200
+ 06 1 2 16 32 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1009410.041 4 786549.621 3 24629033.865 24629035.066 24629033.327
+ 24.200 23.400
+ -5445312.090 5 -4243104.692 4 23594808.587 23594806.373 23594806.794
+ 34.800 27.600
+ -13344682.728 5 -10398465.096 4 22632076.401 22632077.056 22632074.909
+ 32.000 29.900
+ -1406883.642 5 -1096272.553 5 23100151.874 23100152.987 23100150.851
+ 34.000 32.600
+ -13701946.468 6 -10676838.123 6 22114513.043 22114512.202 22114512.194
+ 41.200 39.500
+ -19768784.814 7 -15404253.631 6 21004616.856 21004616.931 21004615.954
+ 45.100 40.100
+ -22695143.478 7 -17684527.385 7 20614648.595 20614646.383 20614647.613
+ 43.400 47.100
+ -19828462.954 7 -15450743.596 6 20710991.519 20710989.807 20710990.881
+ 46.500 41.500
+ -7634956.666 4 -5949311.971 4 22980841.621 22980845.088 22980841.325
+ 29.000 26.500
+ 06 1 2 16 32 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1062431.866 4 827865.286 3 24639123.514 24639124.388 24639123.086
+ 24.900 23.000
+ -5353658.113 5 -4171686.088 4 23612249.498 23612247.361 23612247.700
+ 33.400 27.400
+ -13249505.516 5 -10324301.083 4 22650187.436 22650188.830 22650186.462
+ 32.800 29.000
+ -1483734.236 5 -1156156.046 5 23085527.504 23085528.518 23085526.439
+ 32.600 31.800
+ -13776691.815 6 -10735081.208 6 22100289.018 22100288.548 22100288.373
+ 41.100 39.600
+ -19703598.766 7 -15353459.334 6 21017021.546 21017021.387 21017020.516
+ 44.800 39.900
+ -22731855.629 7 -17713134.255 7 20607662.527 20607660.428 20607661.568
+ 43.400 47.400
+ -19810776.368 7 -15436961.835 6 20714357.164 20714355.388 20714356.559
+ 46.300 41.400
+ -7740330.485 5 -6031421.305 4 22960790.919 22960792.586 22960789.852
+ 30.800 26.200
+ 06 1 2 16 33 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1115909.958 3 869536.494 3 24649299.472 24649301.149 24649299.079
+ 23.000 23.400
+ -5261931.557 5 -4100210.906 4 23629705.144 23629703.224 23629703.361
+ 34.800 28.400
+ -13154051.568 5 -10249921.486 4 22668351.018 22668353.177 22668350.799
+ 32.600 29.200
+ -1560412.881 5 -1215905.545 5 23070935.827 23070936.868 23070934.806
+ 31.800 30.800
+ -13851184.198 6 -10793127.176 6 22086113.418 22086113.172 22086112.767
+ 40.700 39.500
+ -19637863.869 7 -15302237.362 6 21029530.488 21029530.350 21029529.479
+ 45.100 39.800
+ -22768236.497 7 -17741482.979 7 20600739.545 20600737.444 20600738.521
+ 43.400 47.500
+ -19792520.134 7 -15422736.196 6 20717831.566 20717829.505 20717830.763
+ 46.500 41.400
+ -7845477.830 5 -6113354.173 4 22940780.843 22940783.511 22940780.352
+ 30.400 24.600
+ 06 1 2 16 33 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1169841.860 3 911561.292 4 24659562.699 24659564.014 24659561.989
+ 22.600 24.200
+ -5170133.511 5 -4028680.054 4 23647173.661 23647171.615 23647171.811
+ 34.800 28.600
+ -13058323.544 5 -10175328.304 5 22686568.525 22686569.810 22686567.511
+ 33.000 30.400
+ -1636919.275 5 -1275520.834 5 23056377.512 23056378.090 23056376.383
+ 30.800 31.000
+ -13925423.210 6 -10850975.711 6 22071986.513 22071985.796 22071985.983
+ 41.400 39.600
+ -19571582.241 7 -15250589.369 6 21042143.443 21042143.341 21042142.488
+ 44.900 39.500
+ -22804284.675 7 -17769572.461 7 20593879.818 20593877.551 20593878.877
+ 43.400 47.500
+ -19773695.334 7 -15408067.521 6 20721413.939 20721411.780 20721413.113
+ 46.600 41.400
+ -7950396.149 5 -6195108.591 4 22920815.461 22920818.009 22920815.134
+ 31.500 24.600
+ 06 1 2 16 34 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1224224.741 3 953937.511 3 24669911.548 24669912.826 24669911.060
+ 21.100 23.000
+ -5078265.215 5 -3957094.426 4 23664655.260 23664653.237 23664653.391
+ 33.600 26.500
+ -12962323.880 5 -10100523.436 4 22704836.948 22704837.805 22704835.732
+ 32.400 29.000
+ -1713252.840 5 -1335001.457 4 23041851.901 23041852.477 23041850.741
+ 31.100 29.900
+ -13999408.253 6 -10908626.353 6 22057907.249 22057906.903 22057906.655
+ 41.000 39.900
+ -19504756.419 7 -15198517.324 6 21054860.302 21054859.880 21054859.230
+ 45.100 39.300
+ -22839998.802 7 -17797401.649 7 20587083.470 20587081.436 20587082.525
+ 43.400 47.500
+ -19754302.808 7 -15392956.460 6 20725103.920 20725102.044 20725103.239
+ 46.800 41.600
+ -8055082.596 5 -6276682.341 4 22900894.732 22900897.064 22900893.935
+ 32.300 27.100
+ 06 1 2 16 34 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1279056.177 3 996663.270 3 24680345.601 24680346.840 24680345.149
+ 19.300 23.400
+ -4986327.979 5 -3885455.111 4 23682150.486 23682148.249 23682148.714
+ 33.800 25.600
+ -12866055.501 5 -10025509.206 5 22723155.842 22723157.174 22723155.084
+ 33.400 30.100
+ -1789413.311 5 -1394347.185 4 23027358.525 23027359.489 23027357.397
+ 30.100 28.400
+ -14073138.885 6 -10966078.741 6 22043876.836 22043876.516 22043876.160
+ 41.300 40.000
+ -19437388.497 7 -15146022.861 6 21067679.596 21067679.621 21067678.768
+ 45.100 39.200
+ -22875377.256 7 -17824969.270 7 20580351.251 20580349.139 20580350.265
+ 43.300 47.600
+ -19734343.451 7 -15377403.718 6 20728902.136 20728900.303 20728901.362
+ 46.900 41.800
+ -8159534.601 5 -6358073.408 4 22881017.616 22881020.384 22881017.548
+ 32.400 27.400
+ 06 1 2 16 35 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1334333.444 3 1039736.411 4 24690864.774 24690866.092 24690864.183
+ 18.600 24.600
+ -4894323.096 5 -3813763.057 4 23699658.494 23699656.553 23699656.669
+ 33.400 25.900
+ -12769521.092 5 -9950287.685 5 22741526.295 22741527.199 22741525.284
+ 33.200 30.100
+ -1865400.241 5 -1453557.696 4 23012898.976 23012899.304 23012897.708
+ 31.000 26.800
+ -14146614.196 6 -11023332.184 6 22029895.375 22029894.470 22029894.579
+ 41.600 40.100
+ -19369480.851 7 -15093107.840 6 21080602.116 21080602.157 21080601.241
+ 45.100 39.300
+ -22910418.611 7 -17852274.217 7 20573683.098 20573680.907 20573682.172
+ 43.200 47.600
+ -19713818.254 7 -15361410.059 6 20732807.867 20732806.010 20732807.156
+ 46.900 41.600
+ -8263749.800 5 -6439279.967 4 22861185.276 22861188.719 22861185.537
+ 31.100 27.400
+ 06 1 2 16 35 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1390053.976 3 1083154.987 3 24701467.245 24701469.214 24701467.055
+ 18.600 23.000
+ -4802251.804 5 -3742019.271 4 23717179.257 23717177.077 23717177.551
+ 33.600 24.900
+ -12672723.367 5 -9874860.978 4 22759946.287 22759947.473 22759945.137
+ 31.600 29.200
+ -1941213.265 5 -1512632.712 4 22998472.373 22998472.280 22998470.979
+ 32.700 26.500
+ -14219833.777 6 -11080386.359 6 22015961.552 22015961.130 22015960.941
+ 41.400 39.700
+ -19301035.275 7 -15039773.654 6 21093627.295 21093626.998 21093626.109
+ 44.600 39.300
+ -22945121.549 7 -17879315.461 7 20567079.278 20567077.202 20567078.360
+ 43.100 47.700
+ -19692728.314 7 -15344976.340 6 20736821.187 20736819.163 20736820.621
+ 47.000 41.100
+ -8367725.418 5 -6520299.813 4 22841400.608 22841402.862 22841399.698
+ 31.800 28.400
+ 06 1 2 16 36 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1446215.162 2 1126916.897 3 24712154.967 24712156.434 24712154.227
+ 17.000 21.600
+ -4710115.240 5 -3670224.618 4 23734712.125 23734710.455 23734710.263
+ 33.400 26.200
+ -12575665.037 5 -9799231.210 4 22778416.257 22778416.982 22778414.920
+ 31.500 28.600
+ -2016851.878 5 -1571571.831 4 22984078.391 22984079.151 22984076.847
+ 33.000 29.500
+ -14292796.966 6 -11137240.743 6 22002077.189 22002076.615 22002076.744
+ 41.800 39.900
+ -19232054.758 7 -14986022.635 6 21106753.717 21106753.583 21106752.703
+ 44.600 39.300
+ -22979484.577 7 -17906091.838 7 20560540.342 20560538.035 20560539.352
+ 42.900 47.600
+ -19671074.536 7 -15328103.271 6 20740941.962 20740939.742 20740941.213
+ 47.300 41.200
+ -8471458.914 5 -6601130.986 4 22821661.238 22821663.014 22821660.203
+ 32.100 28.800
+ 06 1 2 16 36 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1502814.247 2 1171020.040 3 24722925.346 24722926.896 24722924.746
+ 15.100 19.300
+ -4617914.334 5 -3598379.829 4 23752257.339 23752255.467 23752255.856
+ 32.000 25.600
+ -12478348.494 5 -9723400.230 4 22796934.025 22796935.583 22796933.573
+ 32.400 27.900
+ -2092315.579 5 -1630374.629 5 22969717.584 22969718.991 22969716.435
+ 33.000 30.400
+ -14365503.076 6 -11193894.805 6 21988241.711 21988241.026 21988241.227
+ 41.900 39.800
+ -19162541.194 7 -14931856.261 6 21119981.353 21119981.636 21119980.529
+ 44.500 39.100
+ -23013506.353 7 -17932602.306 7 20554066.276 20554063.911 20554065.288
+ 42.900 47.800
+ -19648858.145 7 -15310791.797 6 20745169.566 20745167.342 20745168.933
+ 47.400 41.200
+ -8574947.664 5 -6681771.483 4 22801966.556 22801969.511 22801966.604
+ 32.700 28.400
+ 06 1 2 16 37 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1559848.766 2 1215462.469 3 24733778.483 24733780.407 24733778.057
+ 17.000 22.100
+ -4525650.366 5 -3526485.898 4 23769814.836 23769812.756 23769812.801
+ 31.600 26.500
+ -12380776.715 5 -9647370.353 4 22815501.994 22815502.930 22815500.932
+ 31.600 25.900
+ -2167604.201 5 -1689041.006 5 22955390.957 22955391.684 22955389.808
+ 33.100 31.100
+ -14437951.515 6 -11250348.092 6 21974455.338 21974454.543 21974454.600
+ 41.300 40.200
+ -19092496.738 7 -14877276.200 6 21133310.670 21133310.557 21133309.558
+ 44.300 38.900
+ -23047185.275 7 -17958845.614 7 20547657.094 20547655.090 20547656.192
+ 42.500 47.700
+ -19626080.127 7 -15293042.686 6 20749504.058 20749501.881 20749503.420
+ 47.300 41.100
+ -8678189.080 5 -6762219.255 4 22782319.933 22782323.236 22782320.422
+ 33.500 28.400
+ 06 1 2 16 37 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1617316.062 2 1260242.119 3 24744714.675 24744715.618 24744714.337
+ 17.800 19.900
+ -4433324.870 5 -3454544.053 4 23787383.277 23787381.942 23787381.617
+ 31.800 26.200
+ -12282952.169 5 -9571143.529 4 22834117.126 22834118.496 22834116.045
+ 30.400 27.100
+ -2242717.377 5 -1747570.680 5 22941097.391 22941097.910 22941096.225
+ 31.600 30.800
+ -14510141.641 6 -11306600.082 6 21960717.644 21960717.223 21960717.041
+ 41.400 40.600
+ -19021924.106 7 -14822284.567 6 21146740.311 21146740.094 21146739.262
+ 44.400 38.600
+ -23080519.714 7 -17984820.494 7 20541313.963 20541311.758 20541312.940
+ 42.800 47.800
+ -19602741.702 7 -15274856.908 6 20753945.302 20753943.131 20753944.635
+ 47.400 41.000
+ -8781180.561 5 -6842472.242 4 22762722.895 22762724.560 22762721.778
+ 32.300 28.600
+ 06 1 2 16 38 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1675213.105 3 1305356.639 2 24755732.352 24755732.890 24755731.511
+ 19.900 15.100
+ -4340938.646 5 -3382554.862 4 23804964.067 23804962.588 23804962.487
+ 32.600 27.100
+ -12184877.756 5 -9494722.006 4 22852779.847 22852781.747 22852779.050
+ 31.000 27.600
+ -2317654.434 5 -1805963.090 5 22926836.971 22926838.094 22926835.824
+ 30.600 31.300
+ -14582072.901 6 -11362650.368 6 21947029.605 21947029.306 21947029.104
+ 41.900 40.900
+ -18950825.944 7 -14766883.430 6 21160269.516 21160269.678 21160268.725
+ 44.400 38.800
+ -23113508.217 7 -18010525.821 7 20535036.591 20535034.197 20535035.604
+ 42.800 47.900
+ -19578843.951 7 -15256235.286 6 20758492.653 20758490.739 20758492.066
+ 47.100 41.100
+ -8883919.685 5 -6922528.562 4 22743171.937 22743173.884 22743171.014
+ 32.000 28.800
+ 06 1 2 16 38 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1733537.562 3 1350804.249 2 24766830.736 24766830.794 24766830.329
+ 21.100 12.600
+ -4248493.041 5 -3310519.396 3 23822556.420 23822553.736 23822554.435
+ 32.300 23.800
+ -12086556.417 5 -9418108.052 4 22871489.441 22871491.795 22871488.864
+ 30.200 28.800
+ -2392415.263 5 -1864218.195 5 22912610.812 22912611.649 22912609.899
+ 33.500 31.100
+ -14653744.869 7 -11418498.605 6 21933390.643 21933390.302 21933390.296
+ 42.000 40.600
+ -18879204.041 7 -14711074.192 6 21173898.987 21173899.063 21173897.999
+ 44.100 38.900
+ -23146149.800 7 -18035960.819 8 20528825.090 20528822.715 20528824.029
+ 42.700 48.000
+ -19554387.918 7 -15237178.638 6 20763146.464 20763144.596 20763145.743
+ 46.900 40.900
+ -8986403.664 5 -7002386.113 4 22723668.847 22723671.745 22723668.770
+ 32.800 28.400
+ 06 1 2 16 39 0.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1792286.459 3 1396582.587 2 24778010.198 24778011.696 24778009.733
+ 20.500 12.600
+ -4155989.225 5 -3238438.573 4 23840159.267 23840157.406 23840157.486
+ 31.800 25.300
+ -11987990.435 4 -9341303.510 4 22890246.588 22890248.238 22890245.592
+ 28.600 28.800
+ -2466999.292 5 -1922335.569 4 22898418.270 22898418.068 22898416.935
+ 34.000 29.000
+ -14725156.752 7 -11474144.192 6 21919801.822 21919800.761 21919801.128
+ 42.400 39.800
+ -18807060.862 7 -14654858.765 6 21187627.808 21187627.547 21187626.441
+ 43.900 39.300
+ -23178442.887 7 -18061124.260 8 20522679.733 20522677.647 20522678.807
+ 42.600 48.100
+ -19529374.750 7 -15217687.865 6 20767906.288 20767904.524 20767905.646
+ 47.100 40.900
+ -9088630.043 5 -7082042.942 4 22704216.920 22704218.432 22704215.892
+ 31.500 28.800
+ 06 1 2 16 39 30.0000000 0 9G26G19G27G 7G17G 8G28G11G24
+ 1851457.161 3 1442689.645 2 24789269.934 24789271.085 24789269.379
+ 19.900 12.600
+ -4063428.327 5 -3166313.277 4 23857772.769 23857771.167 23857770.625
+ 30.600 25.900
+ -11889182.698 4 -9264310.583 4 22909049.333 22909051.162 22909048.366
+ 29.700 29.000
+ -2541406.221 5 -1980314.952 4 22884257.862 22884258.690 22884256.790
+ 32.800 28.400
+ -14796308.205 7 -11529586.848 6 21906261.881 21906261.271 21906261.302
+ 42.200 40.300
+ -18734398.996 7 -14598239.159 6 21201454.329 21201454.493 21201453.399
+ 43.900 38.600
+ -23210385.696 7 -18086014.758 8 20516601.089 20516599.165 20516600.170
+ 42.500 48.300
+ -19503805.909 7 -15197764.098 6 20772771.862 20772769.987 20772771.285
+ 47.200 40.700
+ -9190596.096 5 -7161496.893 4 22684814.421 22684814.777 22684812.642
+ 31.500 27.600
+ 06 1 2 16 40 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3970811.314 5 -3094144.253 4 23875396.905 23875395.662 23875395.271
+ 31.000 25.900
+ -11790136.186 4 -9187131.567 4 22927897.097 22927898.846 22927896.357
+ 29.200 28.400
+ -2615635.789 5 -2038156.108 5 22870133.306 22870133.880 22870132.188
+ 33.500 31.300
+ -14867198.599 7 -11584826.083 6 21892771.983 21892771.205 21892771.410
+ 42.400 40.200
+ -18661220.863 7 -14541217.277 6 21215379.537 21215379.922 21215378.734
+ 43.900 38.600
+ -23241976.661 7 -18110631.094 8 20510589.616 20510587.590 20510588.639
+ 42.300 48.300
+ -19477682.352 7 -15177408.081 6 20777743.345 20777741.150 20777742.683
+ 47.300 41.100
+ -9292299.319 5 -7240746.061 4 22665459.895 22665461.290 22665458.883
+ 33.000 28.800
+ 06 1 2 16 40 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3878139.382 5 -3021932.422 4 23893032.330 23893030.637 23893030.563
+ 30.400 27.400
+ -11690853.367 4 -9109768.465 4 22946790.176 22946791.840 22946789.193
+ 29.900 27.100
+ -2689687.262 5 -2095858.494 5 22856041.978 22856042.508 22856040.729
+ 34.000 32.600
+ -14937826.891 7 -11639861.076 6 21879331.729 21879331.197 21879331.166
+ 42.300 40.700
+ -18587529.377 7 -14483795.382 6 21229402.807 21229402.978 21229401.823
+ 43.900 38.600
+ -23273214.877 7 -18134972.563 8 20504645.149 20504643.157 20504644.162
+ 42.300 48.300
+ -19451005.039 7 -15156620.573 6 20782819.956 20782817.690 20782819.174
+ 47.500 40.700
+ -9393737.167 5 -7319788.450 4 22646154.853 22646158.241 22646155.411
+ 33.400 28.400
+ 06 1 2 16 41 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3785414.072 5 -2949679.030 4 23910677.387 23910676.313 23910675.503
+ 30.100 27.100
+ -11591336.944 5 -9032223.246 4 22965727.544 22965729.470 22965726.601
+ 30.400 28.100
+ -2763560.608 5 -2153422.067 5 22841983.494 22841984.248 22841982.188
+ 32.400 31.800
+ -15008193.105 7 -11694691.866 6 21865941.835 21865940.738 21865941.139
+ 42.700 40.600
+ -18513326.535 7 -14425975.014 6 21243523.526 21243523.300 21243522.327
+ 43.800 38.100
+ -23304099.031 7 -18159038.140 8 20498767.918 20498766.088 20498767.013
+ 42.200 48.300
+ -19423775.592 7 -15135402.832 6 20788001.359 20787999.149 20788000.664
+ 47.200 40.700
+ -9494907.011 5 -7398622.028 4 22626903.519 22626906.210 22626903.542
+ 33.800 29.000
+ 06 1 2 16 41 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3692636.166 5 -2877384.649 4 23928332.300 23928331.479 23928330.671
+ 30.800 27.400
+ -11491589.812 5 -8954498.327 4 22984709.695 22984710.565 22984708.368
+ 31.100 27.100
+ -2837255.346 5 -2210846.485 5 22827960.488 22827960.247 22827959.321
+ 34.900 30.800
+ -15078296.476 7 -11749317.837 6 21852601.162 21852600.642 21852600.776
+ 42.800 40.800
+ -18438614.944 7 -14367758.224 6 21257740.472 21257740.380 21257739.354
+ 43.500 38.000
+ -23334627.314 7 -18182826.414 8 20492958.857 20492956.713 20492957.902
+ 42.400 48.400
+ -19395995.402 7 -15113755.936 6 20793287.704 20793285.747 20793286.955
+ 47.300 41.000
+ -9595806.262 5 -7477244.728 4 22607705.079 22607705.719 22607703.428
+ 33.500 29.500
+ 06 1 2 16 42 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3599806.735 5 -2805050.123 4 23945997.546 23945995.886 23945995.612
+ 31.100 25.900
+ -11391614.615 5 -8876595.700 4 23003733.736 23003735.581 23003732.936
+ 30.800 27.900
+ -2910771.069 5 -2268131.448 5 22813970.863 22813971.494 22813969.597
+ 34.300 32.000
+ -15148136.292 7 -11803738.437 6 21839311.215 21839310.644 21839310.582
+ 42.700 41.100
+ -18363396.971 7 -14309146.857 6 21272053.507 21272053.886 21272052.796
+ 43.600 37.700
+ -23364798.292 7 -18206336.273 8 20487217.504 20487215.323 20487216.527
+ 42.300 48.300
+ -19367665.429 7 -15091680.639 6 20798678.834 20798676.801 20798678.151
+ 47.300 41.000
+ -9696432.241 5 -7555654.488 5 22588557.056 22588557.246 22588555.102
+ 32.600 30.200
+ 06 1 2 16 42 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3506927.024 5 -2732676.398 4 23963671.854 23963670.144 23963670.115
+ 31.800 24.600
+ -11291414.090 5 -8798517.465 4 23022800.889 23022803.191 23022800.399
+ 30.100 27.900
+ -2984107.413 5 -2325276.580 5 22800014.315 22800016.070 22800013.100
+ 31.500 31.600
+ -15217712.111 7 -11857953.325 6 21826071.288 21826070.589 21826070.696
+ 42.600 41.100
+ -18287675.430 7 -14250143.107 6 21286463.081 21286463.417 21286462.314
+ 43.700 38.100
+ -23394610.605 7 -18229566.648 8 20481544.527 20481542.201 20481543.502
+ 42.200 48.200
+ -19338787.024 7 -15069177.995 6 20804173.932 20804172.187 20804173.322
+ 47.100 40.800
+ -9796782.567 5 -7633849.464 4 22569459.846 22569460.966 22569458.482
+ 33.200 29.900
+ 06 1 2 16 43 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3413997.883 4 -2660264.182 3 23981354.943 23981354.136 23981353.051
+ 29.900 23.000
+ -11190991.185 4 -8720265.956 4 23041911.960 23041912.532 23041910.406
+ 28.400 24.200
+ -3057263.995 5 -2382281.655 5 22786093.936 22786093.718 22786092.933
+ 34.100 30.100
+ -15287023.583 7 -11911962.231 6 21812881.841 21812881.006 21812881.237
+ 43.200 40.900
+ -18211452.437 7 -14190748.606 6 21300968.397 21300968.235 21300967.205
+ 43.500 37.800
+ -23424062.820 6 -18252516.432 8 20475939.865 20475937.613 20475938.910
+ 41.800 48.300
+ -19309361.444 7 -15046248.978 6 20809773.493 20809771.784 20809772.918
+ 47.100 41.000
+ -9896854.645 5 -7711827.628 5 22550415.255 22550417.960 22550415.109
+ 34.400 30.200
+ 06 1 2 16 43 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3321020.724 5 -2587814.491 3 23999048.312 23999046.439 23999046.603
+ 30.100 20.500
+ -11090348.481 4 -8641843.194 4 23061061.968 23061065.050 23061061.623
+ 28.100 28.400
+ -3130240.458 5 -2439146.437 5 22772207.092 22772206.908 22772205.910
+ 35.100 31.100
+ -15356070.112 7 -11965764.677 6 21799742.511 21799742.000 21799741.984
+ 42.900 40.900
+ -18134730.800 7 -14130965.546 6 21315567.924 21315567.940 21315566.692
+ 43.200 37.600
+ -23453153.422 7 -18275184.435 8 20470404.132 20470401.918 20470403.150
+ 42.000 48.400
+ -19279390.070 7 -15022894.669 6 20815476.657 20815475.074 20815476.038
+ 47.000 40.800
+ -9996646.142 5 -7789587.174 4 22531424.882 22531427.920 22531425.516
+ 34.400 29.500
+ 06 1 2 16 44 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3227996.267 5 -2515327.981 3 24016750.924 24016749.544 24016748.917
+ 30.800 23.000
+ -10989488.747 4 -8563251.283 4 23080255.568 23080257.863 23080254.841
+ 27.600 26.200
+ -3203036.468 5 -2495870.545 5 22758353.360 22758355.409 22758352.200
+ 32.700 33.400
+ -15424850.782 7 -12019359.980 6 21786654.258 21786653.266 21786653.717
+ 43.600 40.700
+ -18057512.814 7 -14070795.716 6 21330262.072 21330261.907 21330260.938
+ 43.400 37.400
+ -23481881.017 6 -18297569.577 8 20464937.250 20464935.301 20464936.284
+ 41.700 48.400
+ -19248874.361 7 -14999116.208 6 20821283.921 20821281.956 20821283.209
+ 47.200 40.600
+ -10096154.269 5 -7867125.898 5 22512490.169 22512492.299 22512489.643
+ 34.500 30.100
+ 06 1 2 16 44 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3134926.014 5 -2442805.763 3 24034460.897 24034459.843 24034459.079
+ 30.200 22.600
+ -10888414.806 4 -8484492.508 3 23099489.550 23099491.142 23099489.035
+ 28.800 23.800
+ -3275651.664 5 -2552453.738 5 22744536.019 22744536.963 22744534.865
+ 34.700 32.000
+ -15493365.408 7 -12072747.966 6 21773616.340 21773615.434 21773615.563
+ 43.300 41.100
+ -17979801.107 7 -14010241.175 6 21345050.051 21345049.887 21345048.967
+ 43.300 37.200
+ -23510244.369 6 -18319670.893 8 20459539.809 20459537.969 20459538.857
+ 41.800 48.500
+ -19217815.440 7 -14974914.460 6 20827194.251 20827192.173 20827193.521
+ 46.900 40.300
+ -10195376.493 5 -7944441.835 4 22493609.574 22493610.659 22493608.209
+ 34.000 29.200
+ 06 1 2 16 45 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -3041810.885 5 -2370248.619 4 24052180.374 24052179.447 24052178.733
+ 31.000 24.600
+ -10787129.530 4 -8405569.009 4 23118764.345 23118766.217 23118763.154
+ 29.200 27.100
+ -3348085.601 5 -2608895.751 4 22730752.501 22730751.770 22730751.377
+ 35.500 29.000
+ -15561613.240 7 -12125928.058 6 21760628.882 21760628.382 21760628.366
+ 43.200 41.200
+ -17901599.047 7 -13949304.542 6 21359930.949 21359931.330 21359930.212
+ 43.200 37.700
+ -23538241.858 6 -18341487.117 8 20454212.295 20454210.259 20454211.314
+ 41.800 48.600
+ -19186214.899 7 -14950290.667 6 20833207.594 20833205.554 20833206.875
+ 47.000 40.500
+ -10294310.398 5 -8021533.106 4 22474783.072 22474784.229 22474781.708
+ 33.800 29.500
+ 06 1 2 16 45 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2948651.920 5 -2297657.305 3 24069908.657 24069906.724 24069906.731
+ 30.200 23.000
+ -10685635.737 4 -8326483.037 4 23138078.463 23138079.550 23138076.867
+ 28.800 24.900
+ -3420337.995 5 -2665196.293 5 22717002.467 22717003.329 22717001.228
+ 34.300 31.600
+ -15629593.810 7 -12178899.885 6 21747692.589 21747692.053 21747692.215
+ 43.300 41.500
+ -17822908.606 7 -13887987.358 6 21374905.180 21374905.829 21374904.441
+ 42.900 37.800
+ -23565872.163 6 -18363017.227 8 20448954.347 20448952.262 20448953.370
+ 41.600 48.500
+ -19154074.093 7 -14925245.889 6 20839323.546 20839321.894 20839322.956
+ 46.900 40.400
+ -10392953.545 5 -8098397.821 4 22456011.815 22456012.707 22456010.517
+ 34.300 28.800
+ 06 1 2 16 46 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2855450.158 5 -2225032.623 3 24087644.752 24087642.856 24087642.727
+ 32.000 23.400
+ -10583935.738 4 -8247236.401 4 23157429.811 23157432.866 23157429.452
+ 29.200 26.800
+ -3492408.455 5 -2721355.020 5 22703288.884 22703289.727 22703287.702
+ 35.400 34.500
+ -15697306.711 7 -12231663.154 6 21734807.629 21734806.710 21734806.891
+ 43.700 41.700
+ -17743732.918 7 -13826292.057 6 21389972.239 21389972.426 21389971.317
+ 42.900 37.100
+ -23593133.738 6 -18384260.013 8 20443766.610 20443764.527 20443765.691
+ 41.800 48.400
+ -19121394.441 7 -14899781.236 6 20845542.344 20845540.591 20845541.690
+ 47.100 40.300
+ -10491303.413 5 -8175034.019 5 22437296.146 22437297.279 22437295.035
+ 34.900 30.100
+ 06 1 2 16 46 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2762206.730 5 -2152375.480 3 24105387.854 24105386.665 24105386.155
+ 30.800 23.400
+ -10482032.593 4 -8167831.436 4 23176822.583 23176824.108 23176821.412
+ 29.200 24.900
+ -3564296.637 5 -2777371.726 5 22689608.567 22689609.312 22689607.718
+ 35.600 33.100
+ -15764751.374 7 -12284217.394 6 21721973.017 21721972.147 21721972.387
+ 43.400 41.200
+ -17664074.173 7 -13764220.340 6 21405130.772 21405130.925 21405129.826
+ 42.900 36.500
+ -23620025.402 6 -18405214.557 8 20438649.250 20438647.254 20438648.378
+ 41.500 48.500
+ -19088177.413 7 -14873897.839 6 20851863.535 20851861.514 20851862.825
+ 47.000 40.200
+ -10589357.664 5 -8251439.856 4 22418637.174 22418638.108 22418635.992
+ 35.300 29.900
+ 06 1 2 16 47 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2668922.775 4 -2079686.767 4 24123139.044 24123139.040 24123137.261
+ 29.200 27.600
+ -10379928.928 4 -8088270.277 4 23196252.146 23196253.991 23196251.041
+ 29.000 25.300
+ -3636002.274 5 -2833246.203 5 22675962.590 22675963.019 22675961.551
+ 34.400 30.600
+ -15831927.106 7 -12336562.087 6 21709190.002 21709188.830 21709189.473
+ 43.600 41.100
+ -17583934.874 7 -13701774.164 6 21420381.022 21420381.101 21420379.913
+ 42.500 37.000
+ -23646545.690 6 -18425879.715 8 20433602.591 20433600.563 20433601.758
+ 41.500 48.400
+ -19054424.010 7 -14847596.492 6 20858286.595 20858284.592 20858285.966
+ 47.100 40.000
+ -10687113.461 5 -8327613.133 5 22400034.667 22400035.865 22400033.526
+ 34.700 30.600
+ 06 1 2 16 47 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2575599.068 4 -2006967.086 4 24140898.492 24140897.415 24140896.650
+ 28.400 24.200
+ -10277627.425 4 -8008554.878 4 23215718.532 23215721.629 23215718.075
+ 27.400 25.300
+ -3707524.982 5 -2888978.124 5 22662353.320 22662353.137 22662352.182
+ 35.600 32.400
+ -15898833.558 7 -12388696.956 6 21696458.157 21696457.396 21696457.452
+ 43.700 41.900
+ -17503318.018 7 -13638955.878 6 21435721.814 21435722.044 21435720.816
+ 42.400 37.000
+ -23672693.199 6 -18446254.395 8 20428626.885 20428624.827 20428626.028
+ 41.400 48.400
+ -19020136.387 7 -14820878.869 6 20864811.344 20864809.290 20864810.655
+ 47.200 40.000
+ -10784568.528 5 -8403552.067 5 22381488.953 22381491.019 22381488.453
+ 35.800 31.300
+ 06 1 2 16 48 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2482236.543 4 -1934217.143 3 24158664.652 24158663.148 24158663.274
+ 29.200 22.600
+ -10175131.077 4 -7928687.709 4 23235223.618 23235225.802 23235222.763
+ 26.200 24.600
+ -3778864.262 6 -2944567.116 5 22648777.591 22648778.463 22648776.631
+ 36.100 34.300
+ -15965470.227 7 -12440621.604 7 21683777.705 21683776.822 21683776.983
+ 44.200 42.000
+ -17422226.266 7 -13575767.526 6 21451152.834 21451153.323 21451151.957
+ 42.200 36.800
+ -23698466.547 6 -18466337.525 8 20423722.597 20423720.291 20423721.594
+ 41.500 48.300
+ -18985315.487 7 -14793745.709 6 20871437.461 20871435.522 20871436.857
+ 47.100 39.700
+ -10881720.179 5 -8479254.596 5 22363000.517 22363003.273 22363000.838
+ 35.900 30.600
+ 06 1 2 16 48 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2388836.442 4 -1861437.896 3 24176438.338 24176436.775 24176436.076
+ 28.600 23.000
+ -10072442.798 4 -7848670.980 4 23254764.804 23254767.106 23254763.518
+ 25.900 26.800
+ -3850020.034 5 -3000013.083 5 22635236.176 22635237.384 22635235.078
+ 34.500 32.600
+ -16031836.334 7 -12492335.439 6 21671148.522 21671147.417 21671147.935
+ 44.500 41.500
+ -17340662.209 7 -13512211.158 6 21466674.396 21466674.450 21466673.257
+ 42.500 37.000
+ -23723864.460 6 -18486128.108 8 20418889.591 20418887.239 20418888.594
+ 41.400 48.400
+ -18949963.033 7 -14766198.350 6 20878164.868 20878162.853 20878164.185
+ 47.100 39.500
+ -10978565.950 5 -8554718.791 5 22344571.234 22344574.174 22344571.567
+ 35.300 31.100
+ 06 1 2 16 49 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2295399.904 4 -1788630.308 3 24194218.434 24194217.016 24194216.753
+ 28.100 22.100
+ -9969565.223 4 -7768506.770 4 23274341.735 23274344.178 23274340.840
+ 26.800 27.100
+ -3920991.740 6 -3055315.670 5 22621731.636 22621731.090 22621730.528
+ 36.100 30.800
+ -16097931.569 7 -12543838.209 6 21658570.570 21658570.152 21658570.015
+ 43.600 41.900
+ -17258628.687 7 -13448288.971 6 21482284.386 21482284.868 21482283.508
+ 42.500 36.800
+ -23748885.349 6 -18505624.904 8 20414128.276 20414125.971 20414127.314
+ 41.500 48.400
+ -18914080.644 7 -14738238.061 6 20884993.127 20884990.995 20884992.496
+ 47.200 39.700
+ -11075103.618 5 -8629942.876 5 22326200.969 22326203.642 22326200.967
+ 34.900 31.300
+ 06 1 2 16 49 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2201927.963 4 -1715795.099 4 24212006.131 24212005.102 24212004.237
+ 26.200 25.900
+ -9866501.186 4 -7688197.236 4 23293954.435 23293956.788 23293953.348
+ 27.400 27.400
+ -3991779.078 6 -3110474.595 5 22608261.508 22608261.614 22608260.306
+ 36.500 33.500
+ -16163755.591 7 -12595129.638 7 21646044.831 21646044.550 21646044.271
+ 44.000 42.400
+ -17176128.160 7 -13384002.878 6 21497983.962 21497984.386 21497982.954
+ 42.100 37.100
+ -23773527.886 6 -18524826.886 8 20409438.774 20409436.613 20409437.845
+ 41.500 48.500
+ -18877669.678 7 -14709865.893 6 20891921.914 20891919.916 20891921.270
+ 47.400 39.400
+ -11171330.405 5 -8704924.717 5 22307889.678 22307892.392 22307889.654
+ 35.300 31.500
+ 06 1 2 16 50 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2108421.476 4 -1642933.007 4 24229799.965 24229798.465 24229797.721
+ 27.100 24.200
+ -9763253.496 4 -7607744.598 4 23313601.719 23313603.709 23313600.693
+ 27.600 24.200
+ -4062381.835 5 -3165489.657 5 22594825.561 22594826.942 22594824.344
+ 35.400 35.100
+ -16229307.715 7 -12646209.210 6 21633571.121 21633569.797 21633570.239
+ 43.900 41.600
+ -17093163.816 7 -13319355.374 6 21513771.682 21513772.060 21513770.659
+ 42.000 36.500
+ -23797790.688 6 -18543732.971 8 20404821.754 20404819.622 20404820.777
+ 41.500 48.600
+ -18840731.656 7 -14681083.031 6 20898950.897 20898948.938 20898950.227
+ 47.200 39.400
+ -11267244.054 5 -8779662.564 5 22289638.419 22289640.194 22289637.947
+ 35.600 31.000
+ 06 1 2 16 50 30.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -2014881.348 4 -1570044.658 3 24247599.789 24247597.653 24247597.746
+ 27.900 22.100
+ -9659825.062 4 -7527151.101 4 23333283.833 23333285.941 23333282.729
+ 27.900 24.200
+ -4132799.614 5 -3220360.575 5 22581425.846 22581425.932 22581424.603
+ 35.900 33.000
+ -16294587.464 7 -12697076.551 6 21621148.410 21621147.429 21621147.768
+ 43.900 41.500
+ -17009738.286 7 -13254348.506 6 21529647.054 21529647.360 21529646.075
+ 42.200 36.500
+ -23821672.361 6 -18562342.071 8 20400277.238 20400275.152 20400276.337
+ 41.400 48.600
+ -18803268.142 7 -14651890.694 6 20906079.919 20906077.998 20906079.222
+ 47.100 39.500
+ -11362842.130 6 -8854154.516 5 22271446.554 22271448.442 22271446.229
+ 36.000 31.000
+ 06 1 2 16 51 0.0000000 0 8G19G27G 7G17G 8G28G11G24
+ -1921308.568 4 -1497130.875 3 24265406.126 24265404.338 24265404.437
+ 29.900 20.500
+ -9556218.236 4 -7446418.609 3 23352999.227 23353001.581 23352998.674
+ 28.800 23.000
+ -4203032.002 6 -3275087.089 5 22568060.629 22568060.268 22568059.553
+ 36.100 32.100
+ -16359594.175 7 -12747731.121 7 21608777.952 21608777.492 21608777.324
+ 44.000 42.100
+ -16925854.359 6 -13188984.446 6 21545609.498 21545609.912 21545608.595
+ 41.900 36.300
+ -23845171.729 6 -18580653.270 8 20395805.424 20395803.381 20395804.594
+ 41.400 48.700
+ -18765280.934 7 -14622290.291 6 20913308.760 20913306.750 20913308.119
+ 47.100 39.500
+ -11458122.231 5 -8928398.667 5 22253314.763 22253317.063 22253314.705
+ 35.200 31.600
+ 06 1 2 16 51 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -195828.591 4 -152594.266 1 24648008.503 24648009.589 24648007.022
+ 24.600 11.000
+ -1827704.344 4 -1424192.590 3 24283218.449 24283217.383 24283216.457
+ 28.600 21.100
+ -9452436.148 4 -7365549.570 3 23372747.688 23372750.878 23372747.408
+ 26.200 23.800
+ -4273078.725 5 -3329668.910 5 22554730.758 22554731.940 22554729.696
+ 34.600 34.000
+ -16424327.386 7 -12798172.572 6 21596459.732 21596458.913 21596459.001
+ 44.000 41.700
+ -16841514.869 6 -13123265.397 6 21561658.977 21561659.330 21561657.977
+ 41.800 36.400
+ -23868287.365 6 -18598665.455 8 20391406.759 20391404.620 20391405.813
+ 41.500 48.700
+ -18726771.474 7 -14592282.937 6 20920636.762 20920634.908 20920636.140
+ 47.100 39.800
+ -11553081.754 6 -9002393.027 5 22235244.991 22235246.970 22235244.700
+ 36.500 31.000
+ 06 1 2 16 52 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -287477.157 3 -224008.822 1 24630568.150 24630569.603 24630566.446
+ 22.100 11.000
+ -1734069.599 4 -1351230.512 3 24301036.121 24301035.325 24301034.178
+ 28.600 19.300
+ -9348481.794 4 -7284546.267 3 23392530.047 23392533.034 23392529.526
+ 28.400 23.400
+ -4342939.464 5 -3384105.787 5 22541437.577 22541438.228 22541436.347
+ 35.900 34.300
+ -16488786.697 7 -12848400.607 6 21584193.343 21584192.464 21584192.863
+ 43.800 41.800
+ -16756722.312 6 -13057193.319 6 21577794.552 21577795.036 21577793.613
+ 41.800 36.600
+ -23891017.789 6 -18616377.475 8 20387081.270 20387079.051 20387080.341
+ 41.300 48.600
+ -18687741.229 7 -14561869.781 6 20928064.144 20928062.154 20928063.438
+ 47.100 39.500
+ -11647718.390 6 -9076135.781 5 22217235.604 22217238.106 22217235.762
+ 36.500 32.100
+ 06 1 2 16 52 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -379028.224 2 -295347.435 1 24613145.304 24613147.983 24613144.761
+ 16.100 9.000
+ -1640405.140 4 -1278245.296 3 24318860.130 24318859.318 24318858.155
+ 29.700 22.600
+ -9244357.670 4 -7203410.669 3 23412345.437 23412346.850 23412344.302
+ 28.100 21.600
+ -4412614.018 6 -3438397.618 5 22528178.960 22528178.389 22528177.739
+ 36.900 32.100
+ -16552971.603 7 -12898414.811 7 21571979.601 21571978.924 21571978.982
+ 44.200 42.600
+ -16671479.700 6 -12990770.546 6 21594015.770 21594016.073 21594014.756
+ 41.600 36.000
+ -23913361.568 6 -18633788.216 8 20382829.478 20382827.208 20382828.521
+ 41.300 48.600
+ -18648192.060 7 -14531052.266 6 20935590.030 20935588.125 20935589.352
+ 47.100 39.800
+ -11742029.641 6 -9149624.975 5 22199288.893 22199291.345 22199289.155
+ 37.000 32.400
+ 06 1 2 16 53 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -470478.605 3 -366607.530 2 24595745.151 24595746.006 24595743.317
+ 19.900 15.100
+ -1546712.172 5 -1205237.856 3 24336690.332 24336688.493 24336688.395
+ 32.000 21.100
+ -9140066.265 4 -7122144.754 3 23432190.398 23432192.966 23432189.993
+ 26.500 19.300
+ -4482101.840 5 -3492543.963 5 22514955.624 22514954.839 22514954.164
+ 35.900 32.100
+ -16616881.682 7 -12948214.859 7 21559817.872 21559817.134 21559817.278
+ 44.300 42.200
+ -16585789.854 6 -12923999.281 5 21610321.946 21610322.177 21610321.006
+ 41.500 35.400
+ -23935317.540 6 -18650896.768 8 20378651.373 20378649.120 20378650.395
+ 41.200 48.700
+ -18608125.657 7 -14499831.716 6 20943214.446 20943212.552 20943213.770
+ 47.100 39.800
+ -11836013.336 6 -9222858.934 5 22181404.312 22181406.666 22181404.309
+ 36.300 31.800
+ 06 1 2 16 53 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -561825.007 3 -437786.545 2 24578360.313 24578363.765 24578360.276
+ 19.300 17.800
+ -1452991.495 5 -1132208.849 3 24354525.222 24354523.094 24354523.227
+ 31.300 23.400
+ -9035611.077 4 -7040751.216 4 23452068.059 23452070.578 23452067.128
+ 26.200 25.900
+ -4551402.707 6 -3546544.605 5 22501767.970 22501768.488 22501766.909
+ 37.000 33.800
+ -16680516.502 7 -12997800.414 7 21547708.652 21547707.585 21547708.022
+ 44.800 42.200
+ -16499655.507 6 -12856881.645 5 21626712.747 21626713.003 21626711.827
+ 41.100 35.400
+ -23956884.308 6 -18667702.045 8 20374547.190 20374545.143 20374546.305
+ 41.100 48.500
+ -18567543.610 7 -14468209.360 6 20950936.953 20950935.073 20950936.283
+ 47.000 39.700
+ -11929666.957 6 -9295835.687 5 22163582.097 22163584.891 22163582.579
+ 36.500 32.000
+ 06 1 2 16 54 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -653064.561 3 -508882.286 2 24560999.575 24561000.836 24560998.165
+ 22.100 12.600
+ -1359244.201 4 -1059159.079 3 24372363.779 24372362.232 24372362.198
+ 29.500 21.600
+ -8930994.415 4 -6959231.839 3 23471975.830 23471978.614 23471974.779
+ 24.600 23.400
+ -4620516.237 6 -3600399.289 5 22488616.214 22488616.821 22488615.105
+ 37.100 34.500
+ -16743875.458 7 -13047171.017 7 21535651.939 21535650.946 21535651.345
+ 45.200 42.600
+ -16413079.700 6 -12789420.020 5 21643187.806 21643187.942 21643186.747
+ 41.100 35.500
+ -23978060.517 6 -18684202.992 8 20370517.584 20370515.465 20370516.677
+ 41.000 48.700
+ -18526447.302 7 -14436186.283 6 20958757.613 20958755.502 20958756.866
+ 47.300 39.500
+ -12022988.200 6 -9368553.449 5 22145823.848 22145826.415 22145824.235
+ 37.700 32.700
+ 06 1 2 16 54 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -744194.058 3 -579892.252 2 24543657.959 24543659.754 24543656.789
+ 23.000 13.900
+ -1265471.014 4 -986089.146 3 24390207.456 24390206.799 24390206.243
+ 27.100 20.500
+ -8826219.092 4 -6877588.850 3 23491914.220 23491916.773 23491913.387
+ 25.300 23.800
+ -4689442.200 6 -3654107.793 5 22475499.288 22475499.835 22475498.278
+ 36.200 33.800
+ -16806958.125 7 -13096326.314 7 21523647.739 21523646.686 21523647.018
+ 44.900 42.600
+ -16326065.160 6 -12721616.526 5 21659746.036 21659746.297 21659744.969
+ 40.600 35.300
+ -23998844.889 6 -18700398.614 8 20366562.360 20366560.351 20366561.404
+ 41.300 48.700
+ -18484838.631 7 -14403763.957 6 20966675.232 20966673.416 20966674.555
+ 47.000 39.300
+ -12115974.480 6 -9441010.211 5 22128129.338 22128131.468 22128129.401
+ 37.700 32.300
+ 06 1 2 16 55 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -835210.260 3 -650813.856 2 24526337.362 24526339.570 24526336.547
+ 19.900 16.100
+ -1171673.137 4 -912999.960 3 24408057.524 24408056.649 24408056.058
+ 29.700 22.100
+ -8721288.136 4 -6795824.580 4 23511882.398 23511884.314 23511881.054
+ 25.600 24.600
+ -4758180.226 6 -3707669.882 5 22462419.490 22462419.232 22462418.435
+ 37.700 33.100
+ -16869763.911 7 -13145265.862 7 21511695.757 21511695.066 21511695.236
+ 44.700 42.500
+ -16238614.691 6 -12653473.355 5 21676387.366 21676387.654 21676386.287
+ 40.500 35.800
+ -24019235.904 6 -18716287.721 8 20362682.203 20362679.973 20362681.250
+ 41.200 48.700
+ -18442719.226 7 -14370943.660 6 20974690.147 20974688.490 20974689.540
+ 46.900 39.500
+ -12208623.513 6 -9513204.177 5 22110498.723 22110501.033 22110498.674
+ 36.800 32.600
+ 06 1 2 16 55 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -926110.141 3 -721644.762 1 24509040.830 24509040.450 24509039.286
+ 22.100 6.500
+ -1077851.257 4 -839892.105 4 24425911.898 24425910.533 24425909.953
+ 28.800 25.900
+ -8616204.433 4 -6713941.276 3 23531877.929 23531881.300 23531877.509
+ 24.900 22.600
+ -4826729.951 6 -3761085.253 5 22449375.002 22449375.423 22449373.870
+ 37.600 34.800
+ -16932292.326 7 -13193989.273 7 21499797.131 21499796.209 21499796.472
+ 44.800 42.500
+ -16150731.123 6 -12584992.691 5 21693110.838 21693111.242 21693109.881
+ 40.400 35.500
+ -24039232.426 6 -18731869.432 8 20358877.289 20358874.728 20358876.337
+ 41.400 48.600
+ -18400090.845 7 -14337726.757 6 20982802.198 20982800.415 20982801.484
+ 47.000 39.300
+ -12300932.751 6 -9585133.370 5 22092933.026 22092935.237 22092932.803
+ 37.400 32.400
+ 06 1 2 16 56 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1016890.532 3 -792382.641 24491765.554 24491766.125 24491764.495
+ 23.400 3.000
+ -984006.218 4 -766766.230 3 24443768.622 24443768.467 24443767.035
+ 26.800 23.800
+ -8510970.723 4 -6631941.108 3 23551904.695 23551907.009 23551903.297
+ 26.500 23.000
+ -4895091.206 6 -3814353.734 5 22436366.222 22436366.758 22436364.891
+ 37.200 34.900
+ -16994543.208 7 -13242496.421 7 21487951.093 21487950.372 21487950.514
+ 45.000 42.700
+ -16062417.900 6 -12516177.254 5 21709916.119 21709916.847 21709915.328
+ 40.600 35.500
+ -24058833.301 6 -18747142.850 8 20355147.208 20355144.929 20355146.256
+ 41.400 48.700
+ -18356955.227 7 -14304114.604 6 20991010.518 20991008.892 20991009.898
+ 46.900 39.400
+ -12392900.038 6 -9656796.124 5 22075432.498 22075434.198 22075431.940
+ 37.100 32.600
+ 06 1 2 16 56 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1107548.517 4 -863025.072 1 24474514.125 24474514.508 24474513.085
+ 25.600 11.000
+ -890139.286 4 -693623.262 3 24461631.767 24461630.410 24461629.565
+ 27.600 21.100
+ -8405589.403 4 -6549825.906 3 23571958.197 23571959.903 23571957.113
+ 25.300 22.600
+ -4963263.514 6 -3867474.994 5 22423393.131 22423393.251 22423392.046
+ 36.700 33.200
+ -17056516.023 7 -13290786.897 7 21476158.122 21476157.339 21476157.510
+ 45.000 43.000
+ -15973677.382 6 -12447028.849 5 21726803.169 21726803.463 21726802.183
+ 40.400 34.700
+ -24078036.923 6 -18762106.720 8 20351492.753 20351490.601 20351491.860
+ 41.100 48.700
+ -18313314.133 7 -14270108.570 6 20999315.150 20999313.583 20999314.479
+ 46.800 39.200
+ -12484523.111 6 -9728190.665 5 22057998.340 22057998.926 22057996.954
+ 37.600 33.200
+ 06 1 2 16 57 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1198080.629 4 -933569.435 9 24457286.662 24457286.250 24457285.261
+ 27.900 -3.000
+ -796251.333 4 -620463.889 3 24479498.060 24479496.474 24479496.163
+ 24.900 21.600
+ -8300063.902 3 -6467598.326 3 23592037.105 23592040.994 23592036.620
+ 22.100 23.800
+ -5031246.570 6 -3920448.810 5 22410456.516 22410456.667 22410455.506
+ 38.100 34.300
+ -17118210.034 7 -13338860.121 7 21464418.281 21464417.298 21464417.656
+ 45.100 42.900
+ -15884512.794 6 -12377549.992 5 21743771.027 21743770.924 21743770.018
+ 40.900 34.400
+ -24096842.150 6 -18776760.150 8 20347914.371 20347912.077 20347913.437
+ 41.300 48.700
+ -18269169.516 7 -14235710.183 6 21007715.804 21007713.843 21007715.089
+ 47.100 38.900
+ -12575799.534 6 -9799315.085 5 22040629.122 22040629.702 22040627.605
+ 37.200 33.800
+ 06 1 2 16 57 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1288483.827 3 -1004013.367 2 24440082.001 24440083.732 24440080.905
+ 22.600 12.600
+ -702342.972 4 -547288.630 3 24497367.597 24497366.693 24497366.123
+ 24.900 19.900
+ -8194396.592 4 -6385260.296 3 23612148.308 23612149.213 23612146.635
+ 27.900 22.100
+ -5099040.216 6 -3973275.003 5 22397555.496 22397556.422 22397554.473
+ 36.800 35.600
+ -17179625.017 7 -13386715.929 7 21452731.154 21452730.261 21452730.658
+ 44.900 42.900
+ -15794926.974 6 -12307742.901 5 21760818.594 21760818.730 21760817.585
+ 40.500 34.600
+ -24115247.645 6 -18791102.106 8 20344411.960 20344409.568 20344410.976
+ 41.200 48.600
+ -18224522.638 7 -14200920.414 6 21016211.942 21016209.928 21016211.258
+ 47.400 38.900
+ -12666726.892 6 -9870167.517 5 22023326.156 22023326.284 22023324.615
+ 37.200 32.600
+ 06 1 2 16 58 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1378755.030 4 -1074354.381 2 24422904.956 24422906.006 24422903.333
+ 25.600 15.100
+ -608415.341 4 -474098.335 3 24515241.601 24515241.641 24515240.283
+ 25.900 22.100
+ -8088590.498 3 -6302814.142 4 23632281.468 23632283.225 23632280.084
+ 22.600 24.200
+ -5166644.032 6 -4025953.286 5 22384691.209 22384691.402 22384690.055
+ 37.500 34.500
+ -17240760.428 7 -13434353.885 7 21441097.663 21441096.524 21441097.056
+ 45.200 43.100
+ -15704922.754 6 -12237609.793 5 21777945.706 21777946.101 21777944.804
+ 40.200 34.700
+ -24133252.002 6 -18805131.483 8 20340985.709 20340983.521 20340984.786
+ 41.200 48.700
+ -18179375.455 7 -14165740.804 6 21024803.158 21024801.058 21024802.477
+ 47.400 38.900
+ -12757302.851 6 -9940746.140 5 22006090.105 22006090.392 22006088.665
+ 37.600 33.400
+ 06 1 2 16 58 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1468890.991 4 -1144590.030 1 24405751.657 24405753.003 24405751.039
+ 26.800 6.500
+ -514469.145 4 -400893.642 3 24533120.290 24533118.939 24533117.974
+ 27.400 20.500
+ -7982648.160 3 -6220261.785 3 23652441.033 23652443.334 23652440.095
+ 22.100 21.600
+ -5234057.707 6 -4078483.416 5 22371862.339 22371862.733 22371861.343
+ 36.500 33.900
+ -17301615.802 7 -13481773.636 7 21429517.305 21429516.305 21429516.515
+ 44.800 43.200
+ -15614502.796 6 -12167152.732 5 21795152.193 21795152.505 21795151.181
+ 40.000 34.700
+ -24150853.886 6 -18818847.242 8 20337636.218 20337634.004 20337635.210
+ 41.100 48.700
+ -18133729.996 7 -14130172.922 6 21033489.259 21033487.096 21033488.641
+ 47.400 38.800
+ -12847525.092 6 -10011049.124 5 21988920.886 21988921.504 21988919.590
+ 37.900 33.100
+ 06 1 2 16 59 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1558888.831 4 -1214718.190 1 24388625.439 24388626.979 24388624.093
+ 24.200 6.500
+ -420505.503 4 -327675.310 3 24551001.300 24550999.592 24550999.490
+ 29.500 21.600
+ -7876572.711 4 -6137605.711 3 23672628.115 23672629.848 23672626.704
+ 26.800 23.800
+ -5301280.888 6 -4130865.085 5 22359070.098 22359070.962 22359069.088
+ 36.800 34.700
+ -17362190.696 7 -13528974.829 7 21417990.017 21417989.104 21417989.429
+ 44.900 43.100
+ -15523670.390 6 -12096374.281 5 21812437.322 21812437.524 21812436.127
+ 39.700 34.600
+ -24168052.369 6 -18832248.664 8 20334363.541 20334361.204 20334362.503
+ 41.100 48.600
+ -18087588.001 7 -14094218.132 6 21042269.819 21042267.698 21042269.015
+ 47.200 38.600
+ -12937391.401 6 -10081074.761 5 21971818.979 21971820.518 21971818.387
+ 38.400 33.400
+ 06 1 2 16 59 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1648745.199 3 -1284736.046 1 24371526.142 24371527.853 24371525.215
+ 23.800 9.000
+ -326525.273 4 -254444.063 3 24568884.677 24568883.671 24568882.924
+ 27.100 21.600
+ -7770366.645 3 -6054847.889 3 23692836.215 23692839.302 23692835.717
+ 21.600 19.900
+ -5368313.320 6 -4183098.118 5 22346314.518 22346315.015 22346313.444
+ 37.200 34.600
+ -17422484.696 7 -13575957.151 7 21406516.639 21406515.673 21406515.937
+ 45.100 43.400
+ -15432428.630 6 -12025276.852 5 21829799.652 21829800.431 21829798.675
+ 39.500 35.100
+ -24184845.969 6 -18845334.591 8 20331167.669 20331165.598 20331166.799
+ 41.200 48.800
+ -18040951.090 7 -14057877.688 6 21051144.585 21051142.414 21051143.819
+ 47.100 38.900
+ -13026899.402 6 -10150821.179 5 21954786.084 21954787.842 21954785.526
+ 38.600 33.900
+ 06 1 2 17 0 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1738456.924 3 -1354641.195 2 24354454.965 24354455.601 24354453.626
+ 22.600 15.100
+ -232529.305 4 -181200.547 2 24586770.451 24586769.832 24586768.882
+ 25.900 17.800
+ -7664032.839 4 -5971990.480 3 23713072.059 23713074.810 23713071.413
+ 25.300 22.600
+ -5435154.706 6 -4235182.290 5 22333595.087 22333595.169 22333594.066
+ 38.100 34.400
+ -17482497.387 7 -13622720.263 7 21395096.417 21395095.744 21395095.736
+ 45.000 43.600
+ -15340780.322 6 -11953862.635 5 21847239.680 21847240.325 21847238.765
+ 39.300 34.300
+ -24201233.389 6 -18858104.010 8 20328049.509 20328047.127 20328048.536
+ 41.200 48.800
+ -17993821.248 7 -14021153.153 6 21060113.129 21060110.945 21060112.322
+ 47.100 38.600
+ -13116046.667 6 -10220286.523 5 21937822.764 21937823.521 21937821.616
+ 38.300 34.400
+ 06 1 2 17 0 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1828020.772 4 -1424431.153 2 24337412.635 24337412.575 24337410.540
+ 24.600 13.900
+ -138518.433 4 -107945.404 3 24604661.546 24604659.809 24604659.732
+ 29.200 19.900
+ -7557574.369 3 -5889036.030 3 23733330.621 23733333.284 23733329.382
+ 22.600 19.300
+ -5501804.671 6 -4287117.300 5 22320911.980 22320912.249 22320910.826
+ 37.500 34.500
+ -17542228.266 7 -13669263.792 7 21383730.114 21383729.037 21383729.504
+ 45.200 43.200
+ -15248728.671 6 -11882134.120 5 21864756.343 21864757.191 21864755.426
+ 39.400 34.400
+ -24217213.275 6 -18870555.872 8 20325008.512 20325006.212 20325007.611
+ 41.200 48.700
+ -17946200.167 7 -13984045.820 6 21069175.040 21069173.049 21069174.313
+ 46.900 38.600
+ -13204831.039 6 -10289469.088 5 21920927.921 21920928.094 21920926.565
+ 38.200 33.100
+ 06 1 2 17 1 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -1917433.794 3 -1494103.589 2 24320396.589 24320397.970 24320396.215
+ 23.400 16.100
+ -44493.382 4 -34679.188 3 24622553.773 24622552.415 24622552.209
+ 29.900 18.600
+ -7450993.800 4 -5805986.308 3 23753612.025 23753614.798 23753611.279
+ 26.500 20.500
+ -5568263.013 6 -4338902.977 6 22308265.543 22308266.110 22308264.341
+ 38.000 36.000
+ -17601677.002 7 -13715587.477 7 21372417.208 21372416.306 21372416.678
+ 45.100 43.300
+ -15156276.430 6 -11810093.453 5 21882349.522 21882350.303 21882348.652
+ 38.400 33.600
+ -24232784.534 6 -18882689.321 8 20322045.490 20322043.119 20322044.559
+ 41.300 48.700
+ -17898089.822 7 -13946557.251 6 21078330.016 21078328.225 21078329.266
+ 46.900 38.700
+ -13293250.259 6 -10358367.137 5 21904101.756 21904102.536 21904100.681
+ 38.500 33.900
+ 06 1 2 17 1 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2006692.795 4 -1563656.006 2 24303411.886 24303412.342 24303410.454
+ 25.600 15.100
+ 49544.956 4 38597.375 3 24640449.092 24640447.886 24640446.915
+ 25.300 19.900
+ -7344293.936 3 -5722843.712 3 23773917.143 23773919.613 23773915.791
+ 19.900 23.000
+ -5634529.341 6 -4390539.027 5 22295655.278 22295655.543 22295654.253
+ 38.100 34.700
+ -17660843.135 7 -13761690.947 7 21361158.402 21361157.495 21361157.789
+ 45.300 43.600
+ -15063426.469 6 -11737742.887 5 21900019.084 21900018.969 21900017.656
+ 38.800 33.800
+ -24247945.742 6 -18894503.249 8 20319160.356 20319158.045 20319159.454
+ 41.400 48.800
+ -17849492.324 7 -13908689.080 6 21087577.557 21087576.051 21087576.956
+ 46.700 38.700
+ -13381302.342 6 -10426979.089 5 21887345.443 21887346.693 21887344.767
+ 39.000 34.100
+ 06 1 2 17 2 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2095794.572 3 -1633085.904 3 24286455.728 24286457.033 24286454.015
+ 23.400 21.100
+ 143595.721 4 111883.637 3 24658345.529 24658345.875 24658343.815
+ 26.200 22.600
+ -7237477.522 3 -5639610.328 3 23794242.546 23794246.047 23794242.021
+ 23.000 19.900
+ -5700603.425 6 -4442025.289 5 22283081.791 22283081.835 22283080.670
+ 37.800 34.800
+ -17719726.149 7 -13807573.802 7 21349953.423 21349952.350 21349952.783
+ 45.800 43.600
+ -14970182.171 6 -11665085.045 5 21917762.557 21917763.033 21917761.527
+ 39.100 33.900
+ -24262695.696 6 -18905996.722 8 20316353.428 20316351.199 20316352.562
+ 41.400 48.700
+ -17800409.285 7 -13870442.566 6 21096917.916 21096916.146 21096917.262
+ 46.900 38.800
+ -13468984.706 6 -10495302.949 5 21870660.031 21870661.514 21870659.356
+ 38.900 34.600
+ 06 1 2 17 2 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2184735.757 3 -1702390.667 2 24269530.223 24269532.073 24269529.269
+ 22.100 17.000
+ 237657.907 3 185178.799 3 24676245.864 24676243.494 24676243.527
+ 23.400 18.600
+ -7130547.767 4 -5556288.539 3 23814590.905 23814594.433 23814590.601
+ 24.600 22.600
+ -5766485.038 6 -4493361.557 5 22270544.952 22270545.408 22270543.744
+ 38.000 35.900
+ -17778325.779 7 -13853235.841 7 21338802.331 21338801.234 21338801.727
+ 45.800 43.700
+ -14876546.141 6 -11592121.944 5 21935580.532 21935581.421 21935579.879
+ 39.100 34.000
+ -24277033.427 6 -18917168.981 8 20313625.192 20313622.789 20313624.246
+ 41.300 48.600
+ -17750842.521 7 -13831819.126 6 21106350.083 21106348.477 21106349.451
+ 46.800 38.600
+ -13556295.178 6 -10563337.024 5 21854045.328 21854046.633 21854044.716
+ 39.100 34.600
+ 06 1 2 17 3 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2273513.044 4 -1771567.732 2 24252637.872 24252637.245 24252635.760
+ 24.900 12.600
+ 331730.820 4 258482.269 3 24694147.263 24694146.008 24694145.481
+ 25.900 21.100
+ -7023507.277 4 -5472880.531 3 23834960.289 23834963.816 23834959.593
+ 24.600 23.000
+ -5832173.759 6 -4544547.524 6 22258044.847 22258045.436 22258043.666
+ 38.500 36.600
+ -17836641.326 7 -13898676.514 7 21327705.180 21327704.062 21327704.442
+ 45.600 43.600
+ -14782521.749 6 -11518856.239 5 21953473.472 21953473.733 21953472.345
+ 39.300 33.900
+ -24290957.647 6 -18928019.025 8 20310975.440 20310973.077 20310974.477
+ 41.000 48.600
+ -17700793.954 7 -13792820.257 6 21115874.020 21115872.337 21115873.392
+ 46.800 38.400
+ -13643231.604 6 -10631079.644 5 21837503.030 21837502.997 21837501.597
+ 39.300 34.000
+ 06 1 2 17 3 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2362123.647 4 -1840614.911 2 24235774.838 24235775.855 24235773.511
+ 25.300 15.100
+ 425813.543 4 331793.420 2 24712050.273 24712048.926 24712048.592
+ 24.200 15.100
+ -6916359.008 3 -5389388.511 3 23855348.764 23855353.300 23855348.563
+ 19.900 21.100
+ -5897669.394 6 -4595583.021 6 22245581.332 22245581.687 22245580.143
+ 38.500 36.400
+ -17894672.581 7 -13943895.658 7 21316661.882 21316661.080 21316661.486
+ 45.500 43.600
+ -14688111.904 6 -11445290.173 5 21971439.096 21971439.237 21971437.876
+ 38.500 32.700
+ -24304466.943 6 -18938545.754 8 20308404.657 20308402.238 20308403.704
+ 41.000 48.600
+ -17650265.513 7 -13753447.459 6 21125489.122 21125487.588 21125488.617
+ 46.800 38.400
+ -13729791.712 6 -10698529.034 5 21821031.098 21821031.263 21821029.806
+ 39.800 34.700
+ 06 1 2 17 4 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2450564.222 4 -1909529.577 2 24218944.514 24218946.263 24218944.119
+ 25.900 16.100
+ 519905.239 3 405111.578 2 24729954.773 24729954.282 24729953.252
+ 22.100 13.900
+ -6809105.461 4 -5305814.494 3 23875759.782 23875763.280 23875759.202
+ 25.900 22.600
+ -5962971.582 6 -4646467.801 5 22233154.390 22233154.908 22233153.403
+ 38.600 35.600
+ -17952418.802 7 -13988892.704 7 21305673.489 21305672.394 21305672.841
+ 45.800 43.800
+ -14593319.689 6 -11371426.150 5 21989476.878 21989477.586 21989476.095
+ 38.400 33.000
+ -24317560.207 6 -18948748.296 8 20305913.021 20305910.688 20305912.079
+ 41.000 48.600
+ -17599259.214 7 -13713702.306 6 21135195.537 21135193.820 21135194.918
+ 46.800 38.400
+ -13815973.178 6 -10765683.374 5 21804629.663 21804631.384 21804629.393
+ 39.300 34.600
+ 06 1 2 17 4 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2538831.636 4 -1978309.325 2 24202148.946 24202149.703 24202147.632
+ 24.900 17.000
+ 614005.289 3 478436.228 3 24747861.940 24747861.535 24747859.993
+ 23.400 18.600
+ -6701749.278 4 -5222160.461 3 23896190.178 23896192.281 23896189.014
+ 25.300 21.100
+ -6028080.035 6 -4697201.621 6 22220765.077 22220765.267 22220763.879
+ 38.700 36.100
+ -18009880.067 7 -14033667.699 7 21294738.919 21294737.858 21294738.215
+ 45.600 43.800
+ -14498148.214 6 -11297266.605 5 22007587.166 22007588.303 22007586.400
+ 38.000 33.200
+ -24330236.220 6 -18958625.712 8 20303501.014 20303498.640 20303499.951
+ 40.900 48.700
+ -17547776.953 7 -13673586.274 6 21144992.290 21144990.456 21144991.613
+ 47.000 38.200
+ -13901773.934 6 -10832541.043 5 21788302.123 21788304.000 21788302.122
+ 39.800 35.100
+ 06 1 2 17 5 0.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2626922.717 4 -2046951.639 2 24185384.624 24185386.484 24185383.762
+ 24.600 17.800
+ 708112.661 4 551766.605 2 24765770.478 24765769.342 24765768.637
+ 24.900 17.800
+ -6594293.404 3 -5138428.742 2 23916637.384 23916640.842 23916636.765
+ 23.800 17.800
+ -6092994.411 6 -4747784.210 6 22208412.045 22208412.518 22208410.937
+ 38.200 36.100
+ -18067055.773 7 -14078220.180 7 21283858.645 21283857.594 21283858.017
+ 45.600 43.800
+ -14402600.749 6 -11222814.076 5 22025770.110 22025770.331 22025768.951
+ 38.100 32.700
+ -24342494.086 6 -18968177.297 8 20301168.402 20301166.052 20301167.434
+ 41.000 48.600
+ -17495820.803 7 -13633100.981 6 21154879.463 21154877.452 21154878.751
+ 46.900 37.900
+ -13987191.654 6 -10899100.249 5 21772049.200 21772049.452 21772048.084
+ 40.200 34.100
+ 06 1 2 17 5 30.0000000 0 9G20G19G27G 7G17G 8G28G11G24
+ -2714834.370 4 -2115454.118 2 24168656.214 24168656.714 24168654.574
+ 25.300 13.900
+ 802226.547 4 625102.009 2 24783679.502 24783678.388 24783677.402
+ 25.600 17.000
+ -6486740.882 3 -5054621.722 3 23937104.431 23937107.902 23937103.225
+ 21.100 23.400
+ -6157714.488 6 -4798215.399 6 22196096.244 22196096.579 22196095.144
+ 38.500 36.000
+ -18123945.426 7 -14122549.762 7 21273032.693 21273031.866 21273032.178
+ 45.200 44.000
+ -14306679.717 6 -11148070.477 5 22044023.418 22044023.825 22044022.291
+ 37.900 32.800
+ -24354331.886 6 -18977401.556 8 20298915.784 20298913.357 20298914.859
+ 41.100 48.600
+ -17443392.611 7 -13592247.872 6 21164856.012 21164854.222 21164855.358
+ 46.600 37.700
+ -14072224.485 6 -10965359.577 5 21755867.807 21755868.188 21755866.762
+ 40.300 34.600
+ 06 1 2 17 6 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -2802563.335 4 -2183814.241 2 24151961.062 24151962.246 24151960.526
+ 25.900 13.900
+ -6379094.145 3 -4970741.340 3 23957589.578 23957592.313 23957588.088
+ 22.600 22.100
+ -6222239.964 6 -4848494.965 5 22183817.539 22183817.524 22183816.401
+ 39.200 35.600
+ -18180548.600 7 -14166656.115 7 21262261.808 21262260.607 21262261.028
+ 45.500 44.000
+ -14210388.467 6 -11073038.378 5 22062346.449 22062347.429 22062345.658
+ 38.600 33.100
+ -24365748.818 6 -18986297.872 8 20296743.132 20296740.823 20296742.254
+ 41.000 48.600
+ -17390494.432 7 -13551028.527 6 21174922.389 21174920.390 21174921.644
+ 46.800 38.000
+ -14156870.240 6 -11031317.259 5 21739758.909 21739760.632 21739758.701
+ 39.900 35.200
+ 06 1 2 17 6 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -2890106.283 4 -2252029.446 1 24135303.190 24135302.812 24135301.824
+ 27.100 11.000
+ -6271356.287 3 -4886789.910 2 23978090.746 23978093.688 23978090.069
+ 22.100 15.100
+ -6286570.553 6 -4898622.669 6 22171575.770 22171576.156 22171574.635
+ 39.100 36.500
+ -18236864.951 7 -14210538.977 7 21251545.069 21251544.129 21251544.416
+ 45.600 44.300
+ -14113730.388 6 -10997720.438 5 22080740.789 22080740.869 22080739.306
+ 37.600 32.800
+ -24376743.659 6 -18994865.282 8 20294651.018 20294648.546 20294649.985
+ 40.800 48.600
+ -17337127.800 7 -13509444.167 6 21185077.661 21185075.883 21185076.918
+ 46.600 38.100
+ -14241126.687 6 -11096971.580 5 21723725.815 21723727.204 21723725.354
+ 39.800 35.700
+ 06 1 2 17 7 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -2977460.260 4 -2320097.399 2 24118680.976 24118679.985 24118679.174
+ 28.600 12.600
+ -6163529.969 3 -4802769.530 3 23998609.722 23998613.342 23998608.540
+ 19.900 21.600
+ -6350705.917 6 -4948598.255 6 22159370.879 22159371.624 22159369.776
+ 38.900 36.500
+ -18292894.011 7 -14254197.969 7 21240882.727 21240882.016 21240882.264
+ 45.600 44.300
+ -14016707.946 6 -10922118.610 5 22099202.892 22099203.694 22099202.032
+ 37.100 33.400
+ -24387315.479 6 -19003103.067 8 20292639.175 20292636.820 20292638.191
+ 40.900 48.600
+ -17283295.376 7 -13467496.842 6 21195321.620 21195319.685 21195320.982
+ 46.800 37.500
+ -14324991.507 6 -11162320.747 5 21707767.918 21707768.098 21707766.688
+ 39.800 35.400
+ 06 1 2 17 7 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3064621.999 4 -2388015.501 1 24102092.461 24102093.704 24102091.405
+ 25.900 9.000
+ -6055618.050 3 -4718682.550 3 24019145.850 24019148.060 24019143.951
+ 22.100 21.100
+ -6414645.842 6 -4998421.546 6 22147203.810 22147203.947 22147202.614
+ 39.300 36.500
+ -18348635.401 7 -14297632.801 7 21230275.692 21230274.795 21230275.038
+ 45.600 44.300
+ -13919324.899 6 -10846235.762 5 22117733.624 22117735.044 22117733.019
+ 36.800 32.800
+ -24397462.954 6 -19011010.197 8 20290708.194 20290705.828 20290707.248
+ 40.900 48.600
+ -17228998.894 7 -13425187.913 6 21205653.813 21205652.168 21205653.227
+ 46.700 38.000
+ -14408462.502 6 -11227363.050 5 21691883.821 21691884.190 21691882.593
+ 40.200 35.400
+ 06 1 2 17 8 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3151588.429 4 -2455781.456 3 24085544.026 24085544.940 24085543.243
+ 28.400 19.300
+ -5947623.360 3 -4634530.975 3 24039696.153 24039699.484 24039694.530
+ 23.000 19.300
+ -6478390.071 6 -5048092.364 6 22135073.562 22135073.721 22135072.419
+ 38.700 36.000
+ -18404088.855 7 -14340843.274 7 21219722.964 21219722.335 21219722.464
+ 45.600 44.300
+ -13821584.240 6 -10770074.273 5 22136334.656 22136334.517 22136333.073
+ 36.700 32.700
+ -24407184.991 6 -19018585.818 8 20288858.025 20288855.806 20288857.168
+ 41.000 48.700
+ -17174240.188 7 -13382518.811 6 21216074.079 21216072.231 21216073.422
+ 46.500 37.700
+ -14491537.827 6 -11292097.034 5 21676074.304 21676075.514 21676073.762
+ 41.000 35.500
+ 06 1 2 17 8 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3238356.384 4 -2523392.733 2 24069032.870 24069033.543 24069031.374
+ 27.100 13.900
+ -5839548.251 3 -4550316.763 3 24060261.982 24060264.968 24060261.000
+ 23.000 19.300
+ -6541938.213 6 -5097610.377 6 22122980.650 22122981.077 22122979.574
+ 39.300 36.800
+ -18459253.838 7 -14383828.960 7 21209225.872 21209224.765 21209225.219
+ 45.900 44.400
+ -13723488.658 6 -10693636.208 5 22155000.108 22155001.600 22154999.697
+ 37.200 32.000
+ -24416480.435 6 -19025829.028 8 20287089.399 20287086.921 20287088.408
+ 41.100 48.700
+ -17119021.493 7 -13339491.276 6 21226582.069 21226580.118 21226581.379
+ 46.600 37.500
+ -14574215.434 6 -11356521.100 5 21660341.588 21660342.429 21660340.586
+ 40.600 35.800
+ 06 1 2 17 9 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3324922.653 4 -2590846.903 3 24052559.668 24052560.792 24052558.555
+ 27.400 21.100
+ -5731396.032 3 -4466042.398 3 24080841.695 24080846.091 24080841.228
+ 23.800 18.600
+ -6605289.997 6 -5146975.389 6 22110925.805 22110925.661 22110924.527
+ 39.800 37.200
+ -18514130.392 7 -14426589.901 7 21198783.012 21198782.085 21198782.413
+ 45.900 44.500
+ -13625041.984 6 -10616924.564 5 22173735.097 22173735.288 22173733.994
+ 37.200 31.500
+ -24425348.107 6 -19032738.912 8 20285401.823 20285399.525 20285400.953
+ 41.100 48.700
+ -17063345.017 7 -13296107.026 6 21237176.794 21237175.239 21237176.137
+ 46.500 37.900
+ -14656492.905 6 -11420633.385 5 21644685.071 21644685.440 21644683.836
+ 40.300 35.700
+ 06 1 2 17 9 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3411283.915 4 -2658141.287 3 24036125.618 24036126.480 24036124.189
+ 26.200 18.600
+ -5623169.255 3 -4381709.978 2 24101437.559 24101440.214 24101436.821
+ 21.100 17.800
+ -6668445.214 6 -5196187.232 6 22098907.216 22098907.524 22098906.168
+ 39.200 36.800
+ -18568717.639 7 -14469125.408 7 21188395.289 21188394.474 21188394.798
+ 45.900 44.600
+ -13526246.642 6 -10539941.242 5 22192535.559 22192535.661 22192534.424
+ 37.300 32.000
+ -24433786.901 6 -19039314.604 8 20283795.909 20283793.682 20283795.014
+ 41.100 48.800
+ -17007212.443 7 -13252367.373 6 21247858.422 21247856.731 21247857.829
+ 46.500 37.800
+ -14738368.376 6 -11484432.411 5 21629103.815 21629104.830 21629103.153
+ 40.700 35.400
+ 06 1 2 17 10 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3497437.071 4 -2725273.562 2 24019728.781 24019731.613 24019729.327
+ 24.600 17.000
+ -5514870.730 3 -4297321.646 2 24122044.137 24122049.634 24122044.029
+ 19.300 15.100
+ -6731403.541 6 -5245245.656 6 22086926.786 22086926.889 22086925.659
+ 39.600 36.700
+ -18623015.250 7 -14511435.228 7 21178063.073 21178062.033 21178062.400
+ 46.000 44.800
+ -13427106.043 6 -10462688.889 5 22211400.464 22211401.515 22211399.701
+ 36.500 32.000
+ -24441795.722 6 -19045555.251 8 20282272.199 20282269.662 20282271.212
+ 41.100 48.700
+ -16950625.689 7 -13208273.808 6 21258626.467 21258625.062 21258625.859
+ 46.300 37.700
+ -14819839.799 6 -11547916.593 5 21613600.661 21613601.509 21613599.765
+ 41.200 35.800
+ 06 1 2 17 10 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3583379.148 4 -2792241.304 2 24003377.742 24003377.517 24003376.137
+ 26.500 17.800
+ -5406503.433 3 -4212879.721 2 24142667.218 24142671.518 24142666.607
+ 19.900 17.800
+ -6794164.648 6 -5294150.402 6 22074984.096 22074983.855 22074982.945
+ 40.500 36.900
+ -18677022.702 7 -14553518.940 7 21167785.466 21167784.678 21167784.967
+ 45.800 44.800
+ -13327623.283 6 -10385169.921 5 22230332.432 22230332.421 22230331.118
+ 36.300 31.500
+ -24449373.449 6 -19051459.981 8 20280829.907 20280827.697 20280829.091
+ 40.800 48.600
+ -16893587.059 7 -13163828.134 6 21269480.721 21269479.149 21269480.009
+ 46.000 37.600
+ -14900904.847 6 -11611084.122 6 21598174.414 21598175.219 21598173.524
+ 41.200 36.400
+ 06 1 2 17 11 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3669106.650 4 -2859041.927 2 23987064.514 23987063.344 23987062.541
+ 26.500 16.100
+ -5298070.024 3 -4128386.238 3 24163302.376 24163305.953 24163300.886
+ 23.400 21.600
+ -6856728.315 6 -5342901.305 6 22063078.151 22063078.404 22063077.093
+ 40.300 37.000
+ -18730739.872 7 -14595376.471 7 21157563.634 21157562.568 21157562.980
+ 46.000 44.600
+ -13227801.431 6 -10307386.724 5 22249326.858 22249327.969 22249326.297
+ 36.600 31.600
+ -24456519.092 6 -19057028.020 8 20279470.271 20279467.868 20279469.270
+ 40.700 48.600
+ -16836098.643 7 -13119031.976 6 21280420.508 21280418.708 21280419.654
+ 45.600 37.700
+ -14981561.747 6 -11673933.596 6 21582825.510 21582826.801 21582824.938
+ 41.600 36.300
+ 06 1 2 17 11 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3754616.656 4 -2925673.015 2 23970791.204 23970791.912 23970790.301
+ 27.400 16.100
+ -5189573.201 3 -4043843.343 3 24183949.450 24183952.477 24183947.865
+ 22.100 19.300
+ -6919094.296 6 -5391498.154 6 22051210.402 22051210.673 22051209.386
+ 40.200 37.100
+ -18784166.190 7 -14637007.357 7 21147396.896 21147395.918 21147396.297
+ 45.900 44.700
+ -13127643.626 6 -10229341.742 5 22268387.551 22268387.465 22268386.136
+ 36.500 31.600
+ -24463231.543 6 -19062258.508 8 20278192.901 20278190.489 20278192.010
+ 40.900 48.500
+ -16778162.394 7 -13073886.858 6 21291445.388 21291443.702 21291444.666
+ 45.900 37.700
+ -15061808.320 6 -11736463.342 6 21567555.679 21567556.338 21567554.659
+ 41.300 36.500
+ 06 1 2 17 12 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3839905.668 4 -2992131.899 2 23954562.482 23954561.736 23954560.495
+ 26.500 17.800
+ -5081015.639 3 -3959253.126 3 24204606.657 24204609.977 24204605.582
+ 18.600 21.100
+ -6981262.202 6 -5439940.666 6 22039380.223 22039380.452 22039379.047
+ 40.300 37.300
+ -18837301.690 7 -14678411.629 7 21137285.534 21137284.529 21137285.036
+ 46.400 44.800
+ -13027152.924 6 -10151037.366 5 22287509.403 22287509.962 22287508.608
+ 37.000 31.000
+ -24469509.637 6 -19067150.532 8 20276998.267 20276995.823 20276997.352
+ 41.000 48.500
+ -16719780.793 7 -13028394.704 6 21302554.646 21302553.214 21302554.166
+ 45.900 37.500
+ -15141642.528 6 -11798671.765 6 21552363.273 21552364.311 21552362.591
+ 41.800 36.600
+ 06 1 2 17 12 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -3924970.824 3 -3058416.318 2 23938371.887 23938374.253 23938371.465
+ 23.800 15.100
+ -4972400.244 3 -3874617.821 3 24225276.130 24225278.884 24225274.631
+ 22.100 19.900
+ -7043231.778 6 -5488228.630 6 22027587.889 22027587.888 22027586.714
+ 40.500 36.900
+ -18890145.576 7 -14719588.674 7 21127229.840 21127228.760 21127229.116
+ 46.200 45.100
+ -12926332.794 5 -10072476.272 5 22306695.255 22306695.610 22306694.122
+ 35.900 31.100
+ -24475352.133 6 -19071703.130 8 20275886.554 20275884.074 20275885.610
+ 40.900 48.500
+ -16660955.146 7 -12982556.543 6 21313749.159 21313747.552 21313748.421
+ 45.900 37.600
+ -15221062.626 6 -11860557.493 6 21537250.485 21537250.980 21537249.360
+ 41.300 36.400
+ 06 1 2 17 13 0.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -4009808.861 4 -3124523.808 2 23922229.513 23922230.508 23922228.779
+ 28.800 17.800
+ -4863729.758 3 -3789939.572 2 24245955.496 24245958.264 24245954.149
+ 22.100 17.000
+ -7105002.792 6 -5536361.875 6 22015833.010 22015833.255 22015831.952
+ 40.300 37.700
+ -18942697.610 7 -14760538.293 7 21117229.196 21117228.428 21117228.640
+ 45.900 45.100
+ -12825186.501 6 -9993661.052 5 22325942.407 22325943.373 22325941.526
+ 36.100 31.500
+ -24480758.192 6 -19075915.644 8 20274857.662 20274855.293 20274856.780
+ 41.100 48.500
+ -16601688.251 7 -12936374.558 6 21325027.155 21325025.595 21325026.383
+ 45.800 37.400
+ -15300066.395 6 -11922118.813 6 21522216.388 21522216.964 21522215.496
+ 41.500 36.300
+ 06 1 2 17 13 30.0000000 0 8G20G27G 7G17G 8G28G11G24
+ -4094416.636 4 -3190451.818 3 23906130.402 23906130.411 23906128.363
+ 28.600 19.300
+ -4755007.097 3 -3705220.642 2 24266642.700 24266646.963 24266642.589
+ 19.900 13.900
+ -7166574.944 6 -5584340.155 6 22004116.156 22004116.473 22004115.062
+ 40.000 37.500
+ -18994957.328 7 -14801260.136 7 21107284.858 21107283.647 21107284.178
+ 46.400 44.900
+ -12723716.843 5 -9914593.834 4 22345251.512 22345252.273 22345250.564
+ 35.500 29.900
+ -24485726.604 6 -19079787.133 8 20273912.266 20273909.810 20273911.302
+ 40.800 48.500
+ -16541982.042 7 -12889850.247 6 21336388.790 21336387.149 21336388.140
+ 45.800 37.100
+ -15378651.837 6 -11983354.162 6 21507261.829 21507262.460 21507260.962
+ 41.700 36.500
+ 06 1 2 17 14 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -4178790.962 4 -3256197.963 3 23890073.356 23890073.326 23890071.767
+ 27.400 18.600
+ -7227947.896 6 -5632163.213 6 21992437.334 21992437.737 21992436.311
+ 40.600 38.200
+ -19046924.384 7 -14841753.935 7 21097395.627 21097394.524 21097394.984
+ 46.300 44.900
+ -12621926.781 5 -9835276.977 5 22364621.476 22364622.441 22364620.434
+ 35.100 31.100
+ -24490256.556 6 -19083316.963 8 20273050.061 20273047.797 20273049.282
+ 40.800 48.400
+ -16481838.612 7 -12842985.246 6 21347833.736 21347832.245 21347833.099
+ 45.700 37.100
+ -15456817.153 6 -12044262.144 6 21492387.370 21492388.053 21492386.557
+ 41.600 36.000
+ 06 1 2 17 14 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -4262928.504 4 -3321759.574 3 23874062.177 23874062.883 23874061.223
+ 28.100 20.500
+ -7289121.492 6 -5679830.923 6 21980796.313 21980796.526 21980795.244
+ 40.300 37.700
+ -19098598.523 7 -14882019.481 7 21087562.451 21087561.339 21087561.760
+ 46.300 44.900
+ -12519819.554 5 -9755712.964 5 22384051.852 22384052.925 22384050.915
+ 35.200 30.600
+ -24494346.921 6 -19086504.264 8 20272271.737 20272269.499 20272270.842
+ 40.700 48.500
+ -16421260.415 7 -12795781.463 6 21359361.474 21359359.543 21359360.738
+ 45.600 37.000
+ -15534560.308 6 -12104841.167 6 21477593.362 21477594.091 21477592.438
+ 41.500 36.600
+ 06 1 2 17 15 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -4346826.630 4 -3387134.611 3 23858096.908 23858097.258 23858095.880
+ 28.800 21.100
+ -7350095.407 6 -5727343.039 6 21969193.405 21969193.634 21969192.242
+ 40.200 37.900
+ -19149979.369 7 -14922056.493 7 21077784.991 21077783.754 21077784.290
+ 46.300 44.800
+ -12417398.636 5 -9675904.529 5 22403542.085 22403542.902 22403541.148
+ 34.700 30.800
+ -24497996.823 6 -19089348.344 8 20271577.140 20271574.972 20271576.245
+ 40.700 48.500
+ -16360249.025 7 -12748240.139 6 21370971.656 21370969.877 21370970.955
+ 45.800 37.000
+ -15611879.151 6 -12165089.563 6 21462880.204 21462880.730 21462879.261
+ 41.800 36.700
+ 06 1 2 17 15 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -4430481.730 4 -3452320.273 3 23842177.214 23842178.001 23842176.409
+ 27.400 19.300
+ -7410869.363 6 -5774699.344 6 21957628.485 21957628.894 21957627.499
+ 40.600 38.600
+ -19201066.677 7 -14961864.769 7 21068063.209 21068062.205 21068062.639
+ 46.100 45.100
+ -12314667.437 5 -9595854.304 5 22423091.071 22423092.098 22423090.195
+ 34.800 30.400
+ -24501204.969 6 -19091848.198 8 20270966.957 20270964.452 20270965.920
+ 41.000 48.500
+ -16298806.560 7 -12700362.900 6 21382663.608 21382662.020 21382662.946
+ 45.600 36.500
+ -15688772.142 6 -12225006.127 6 21448247.837 21448248.308 21448246.900
+ 41.800 36.200
+ 06 1 2 17 16 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -4513890.511 4 -3517314.098 2 23826306.367 23826305.715 23826304.679
+ 28.600 15.100
+ -7471443.027 6 -5821899.569 6 21946101.470 21946101.959 21946100.467
+ 40.800 37.900
+ -19251859.874 7 -15001443.871 7 21058397.710 21058396.653 21058396.988
+ 46.300 45.300
+ -12211628.858 5 -9515564.565 5 22442698.978 22442699.947 22442697.971
+ 35.100 30.200
+ -24503970.450 6 -19094003.124 8 20270440.537 20270438.250 20270439.660
+ 40.700 48.500
+ -16236935.493 7 -12652151.700 6 21394437.319 21394435.750 21394436.560
+ 45.300 36.700
+ -15765237.231 7 -12284589.272 6 21433696.746 21433697.497 21433695.988
+ 42.000 36.500
+ 06 1 2 17 16 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -4597050.339 4 -3582113.888 2 23810481.252 23810480.853 23810479.398
+ 28.400 17.800
+ -7531816.071 6 -5868943.470 6 21934613.297 21934613.153 21934612.230
+ 41.300 38.000
+ -19302358.665 7 -15040793.567 7 21048787.945 21048787.144 21048787.278
+ 46.200 45.400
+ -12108286.350 5 -9435037.993 4 22462364.562 22462365.064 22462363.517
+ 33.800 29.000
+ -24506292.172 6 -19095812.261 8 20269998.807 20269996.416 20269997.836
+ 40.900 48.400
+ -16174637.307 7 -12603607.675 6 21406292.179 21406290.751 21406291.515
+ 45.600 36.700
+ -15841272.295 7 -12343837.321 6 21419227.908 21419228.538 21419227.102
+ 42.100 37.100
+ 06 1 2 17 17 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -4679957.711 4 -3646716.969 3 23794703.323 23794704.578 23794702.732
+ 28.800 20.500
+ -7591988.313 6 -5915830.904 6 21923162.939 21923162.907 21923161.627
+ 40.700 38.100
+ -19352562.572 7 -15079913.483 7 21039234.549 21039233.542 21039233.931
+ 46.200 45.400
+ -12004642.598 5 -9354276.699 4 22482086.920 22482088.023 22482086.051
+ 34.100 28.800
+ -24508169.202 6 -19097274.886 8 20269641.585 20269639.146 20269640.619
+ 40.900 48.300
+ -16111915.189 7 -12554733.318 6 21418227.774 21418226.348 21418227.222
+ 45.900 36.600
+ -15916875.412 7 -12402748.812 6 21404841.465 21404841.775 21404840.493
+ 42.400 37.200
+ 06 1 2 17 17 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -4762609.464 4 -3711120.893 2 23778975.541 23778975.505 23778974.143
+ 29.500 17.000
+ -7651959.505 6 -5962561.668 6 21911750.507 21911750.369 21911749.384
+ 40.900 37.600
+ -19402471.465 7 -15118803.522 7 21029737.234 21029736.229 21029736.698
+ 46.400 45.500
+ -11900700.995 5 -9273283.303 4 22501866.459 22501867.571 22501865.420
+ 33.500 29.200
+ -24509600.684 6 -19098390.331 8 20269369.150 20269366.776 20269368.230
+ 40.700 48.300
+ -16048771.037 7 -12505530.094 6 21430244.087 21430242.412 21430243.404
+ 45.900 36.600
+ -15992044.804 7 -12461322.328 6 21390537.041 21390537.412 21390536.082
+ 42.300 37.100
+ 06 1 2 17 18 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -4845002.623 4 -3775323.326 3 23763295.778 23763297.402 23763295.708
+ 29.900 19.300
+ -7711729.381 6 -6009135.563 6 21900376.585 21900376.929 21900375.421
+ 40.900 38.600
+ -19452084.612 7 -15157463.098 7 21020296.223 21020295.181 21020295.567
+ 46.600 45.600
+ -11796464.956 5 -9192060.463 4 22521702.024 22521703.257 22521701.191
+ 34.700 29.500
+ -24510585.454 6 -19099157.688 8 20269181.742 20269179.404 20269180.848
+ 40.600 48.300
+ -15985206.510 7 -12455999.307 6 21442340.087 21442338.144 21442339.339
+ 46.000 36.400
+ -16066778.719 7 -12519556.522 6 21376315.393 21376315.878 21376314.577
+ 42.400 36.700
+ 06 1 2 17 18 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -4927133.949 4 -3839321.737 3 23747667.014 23747668.409 23747666.392
+ 28.600 18.600
+ -7771297.567 6 -6055552.296 6 21889041.136 21889041.310 21889040.048
+ 41.000 37.900
+ -19501401.910 7 -15195892.150 7 21010911.220 21010910.356 21010910.778
+ 46.500 45.600
+ -11691937.229 5 -9110610.349 4 22541593.863 22541594.098 22541592.678
+ 34.000 29.000
+ -24511122.821 6 -19099576.417 8 20269079.703 20269077.228 20269078.659
+ 40.700 48.200
+ -15921224.288 7 -12406143.034 6 21454515.489 21454513.506 21454514.773
+ 46.000 36.100
+ -16141075.309 7 -12577449.939 6 21362177.436 21362177.776 21362176.445
+ 42.300 37.700
+ 06 1 2 17 19 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -5009000.487 4 -3903113.814 3 23732089.315 23732089.603 23732087.483
+ 26.800 21.600
+ -7830663.944 6 -6101811.772 6 21877744.143 21877743.884 21877742.930
+ 41.500 37.700
+ -19550423.185 7 -15234090.526 7 21001582.869 21001581.936 21001582.381
+ 46.500 45.700
+ -11587121.681 5 -9028935.952 5 22561538.847 22561540.002 22561537.956
+ 33.100 30.200
+ -24511211.948 6 -19099645.870 8 20269062.624 20269060.188 20269061.699
+ 40.600 48.200
+ -15856826.379 7 -12355962.858 6 21466770.091 21466768.264 21466769.327
+ 45.700 36.500
+ -16214932.807 7 -12635001.217 6 21348122.549 21348123.147 21348121.834
+ 42.700 37.500
+ 06 1 2 17 19 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -5090598.684 4 -3966696.816 3 23716560.308 23716561.899 23716559.938
+ 27.900 19.900
+ -7889828.120 6 -6147913.698 6 21866485.467 21866485.686 21866484.282
+ 41.300 38.600
+ -19599148.047 7 -15272057.933 7 20992311.170 20992309.862 20992310.472
+ 46.900 45.700
+ -11482021.025 5 -8947039.411 5 22581538.876 22581540.127 22581538.062
+ 34.500 30.100
+ -24510851.685 6 -19099365.142 8 20269131.069 20269128.744 20269130.115
+ 40.600 48.200
+ -15792014.899 7 -12305460.416 6 21479103.046 21479101.403 21479102.346
+ 45.300 36.200
+ -16288349.298 7 -12692208.843 6 21334152.135 21334152.539 21334151.124
+ 42.600 37.600
+ 06 1 2 17 20 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -5171925.680 4 -4030068.476 3 23701085.317 23701085.974 23701084.181
+ 29.900 19.300
+ -7948789.731 6 -6193857.775 6 21855265.584 21855265.634 21855264.275
+ 41.200 38.500
+ -19647576.038 7 -15309794.014 7 20983095.137 20983094.222 20983094.697
+ 46.600 45.700
+ -11376638.733 5 -8864923.399 4 22601592.987 22601593.749 22601591.895
+ 34.100 29.500
+ -24510041.090 6 -19098733.510 8 20269285.304 20269283.101 20269284.374
+ 40.600 48.200
+ -15726792.311 7 -12254637.637 6 21491514.467 21491512.859 21491513.742
+ 45.100 36.200
+ -16361322.973 7 -12749071.429 6 21320265.121 21320266.139 21320264.556
+ 42.900 37.700
+ 06 1 2 17 20 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -5252978.371 4 -4093226.404 3 23685661.609 23685661.939 23685660.457
+ 28.800 19.900
+ -8007548.645 6 -6239643.912 6 21844084.129 21844083.963 21844083.004
+ 41.900 38.500
+ -19695706.767 7 -15347298.458 7 20973936.063 20973935.160 20973935.633
+ 46.400 45.500
+ -11270977.482 5 -8782590.012 4 22621699.667 22621700.262 22621698.477
+ 33.600 28.100
+ -24508779.517 6 -19097750.464 8 20269525.249 20269523.150 20269524.313
+ 40.500 48.300
+ -15661160.657 7 -12203496.100 6 21504004.016 21504002.071 21504003.292
+ 45.300 36.000
+ -16433851.855 7 -12805587.430 6 21306463.847 21306464.344 21306462.813
+ 42.800 38.300
+ 06 1 2 17 21 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -5333753.520 4 -4156168.061 2 23670290.630 23670290.379 23670289.276
+ 28.800 17.000
+ -8066104.565 7 -6285271.868 6 21832941.379 21832941.524 21832940.189
+ 42.000 39.300
+ -19743540.120 7 -15384571.176 7 20964834.006 20964832.797 20964833.396
+ 46.600 45.600
+ -11165041.015 5 -8700042.181 4 22641858.227 22641859.481 22641857.386
+ 33.000 28.600
+ -24507065.787 6 -19096415.090 8 20269851.367 20269849.216 20269850.497
+ 40.400 48.200
+ -15595121.985 7 -12152037.402 6 21516570.531 21516568.902 21516569.869
+ 45.400 36.300
+ -16505934.107 7 -12861755.390 6 21292746.354 21292747.574 21292745.713
+ 42.700 38.300
+ 06 1 2 17 21 30.0000000 0 7G20G 7G17G 8G28G11G24
+ -5414247.988 4 -4218890.999 3 23654973.723 23654973.283 23654972.132
+ 29.500 19.900
+ -8124457.275 7 -6330741.482 6 21821837.078 21821837.123 21821835.998
+ 42.100 39.100
+ -19791075.616 7 -15421611.805 7 20955788.205 20955787.095 20955787.580
+ 46.600 45.800
+ -11058832.576 5 -8617282.429 4 22662069.647 22662070.589 22662068.257
+ 32.400 28.800
+ -24504899.175 6 -19094726.824 8 20270263.729 20270261.509 20270262.839
+ 40.500 48.300
+ -15528678.998 7 -12100263.651 6 21529214.190 21529212.740 21529213.561
+ 45.300 36.200
+ -16577568.403 7 -12917574.309 6 21279115.115 21279115.839 21279114.359
+ 43.100 37.800
+ 06 1 2 17 22 0.0000000 0 7G20G 7G17G 8G28G11G24
+ -5494458.789 5 -4281392.879 3 23639709.635 23639709.406 23639708.674
+ 31.500 20.500
+ -8182606.375 6 -6376052.444 6 21810771.543 21810771.562 21810770.367
+ 41.900 38.900
+ -19838312.857 7 -15458420.017 7 20946799.234 20946798.161 20946798.612
+ 46.500 46.000
+ -10952355.129 5 -8534313.049 4 22682330.928 22682332.277 22682330.321
+ 33.400 27.600
+ -24502278.544 6 -19092684.774 8 20270762.376 20270760.270 20270761.504
+ 40.600 48.400
+ -15461833.603 7 -12048176.333 5 21541934.539 21541932.855 21541933.828
+ 45.300 35.900
+ -16648752.791 7 -12973042.653 6 21265569.443 21265569.801 21265568.333
+ 42.800 37.700
+ 06 1 2 17 22 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -5574382.976 5 -4343671.414 3 23624500.128 23624500.732 23624499.260
+ 30.200 19.900
+ -157022.251 3 -122353.996 2 24410856.558 24410857.366 24410855.441
+ 20.500 12.600
+ -8240551.746 6 -6421204.655 6 21799745.268 21799745.040 21799743.865
+ 41.900 38.900
+ -19885252.100 7 -15494996.026 7 20937866.938 20937865.851 20937866.406
+ 46.600 46.100
+ -10845611.750 5 -8451136.455 4 22702644.245 22702644.935 22702643.028
+ 32.400 28.800
+ -24499203.130 6 -19090288.346 8 20271347.535 20271345.470 20271346.663
+ 40.700 48.200
+ -15394587.781 7 -11995776.999 6 21554730.845 21554729.458 21554730.167
+ 45.100 36.200
+ -16719485.463 7 -13028158.999 6 21252108.852 21252109.900 21252108.151
+ 42.600 38.300
+ 06 1 2 17 23 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -5654016.980 4 -4405723.857 3 23609345.637 23609346.804 23609344.609
+ 29.200 19.300
+ -274685.101 3 -214039.187 1 24388464.572 24388468.476 24388464.375
+ 23.400 11.000
+ -8298292.887 7 -6466197.733 6 21788757.239 21788756.992 21788756.077
+ 42.300 38.700
+ -19931892.241 7 -15531338.973 7 20928991.588 20928990.434 20928991.060
+ 46.800 45.900
+ -10738606.162 5 -8367755.554 4 22723006.570 22723007.779 22723005.465
+ 31.600 29.200
+ -24495672.293 6 -19087537.051 8 20272019.650 20272017.296 20272018.700
+ 40.600 48.100
+ -15326943.886 7 -11943067.479 5 21567602.789 21567601.554 21567602.193
+ 44.700 35.700
+ -16789764.726 7 -13082922.037 6 21238735.443 21238736.231 21238734.650
+ 43.100 38.500
+ 06 1 2 17 23 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -5733357.729 4 -4467547.769 3 23594248.181 23594248.575 23594247.040
+ 29.700 19.900
+ -392256.652 3 -305653.273 2 24366092.277 24366094.651 24366091.307
+ 23.800 15.100
+ -8355829.677 7 -6511031.584 6 21777808.196 21777808.130 21777807.072
+ 42.000 38.600
+ -19978233.098 7 -15567448.714 7 20920173.299 20920172.002 20920172.678
+ 46.600 46.000
+ -10631341.374 5 -8284172.691 4 22743417.823 22743419.528 22743417.008
+ 32.100 28.600
+ -24491684.959 6 -19084430.040 8 20272778.200 20272776.055 20272777.346
+ 40.600 48.100
+ -15258904.294 7 -11890049.624 5 21580550.908 21580548.989 21580550.076
+ 44.800 35.300
+ -16859588.736 7 -13137330.331 6 21225448.632 21225449.065 21225447.524
+ 42.700 38.300
+ 06 1 2 17 24 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -5812402.312 5 -4529140.867 3 23579206.276 23579206.727 23579205.051
+ 30.800 18.600
+ -509734.530 3 -397194.317 3 24343736.026 24343739.533 24343735.598
+ 18.600 21.100
+ -8413161.830 7 -6555705.969 6 21766898.075 21766898.230 21766896.969
+ 42.000 39.000
+ -20024274.535 7 -15603325.143 7 20911411.914 20911410.631 20911411.229
+ 46.800 46.100
+ -10523820.269 5 -8200390.080 4 22763879.189 22763880.120 22763877.986
+ 32.600 28.800
+ -24487240.459 6 -19080966.797 8 20273624.103 20273621.855 20273623.113
+ 40.500 48.100
+ -15190471.271 7 -11836725.199 5 21593572.961 21593571.467 21593572.331
+ 44.800 35.900
+ -16928956.263 7 -13191382.919 6 21212247.697 21212248.791 21212247.174
+ 43.100 38.400
+ 06 1 2 17 24 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -5891147.604 5 -4590500.762 3 23564222.724 23564222.061 23564221.105
+ 31.300 21.600
+ -627116.534 3 -488660.722 3 24321399.635 24321402.178 24321398.388
+ 21.600 18.600
+ -8470289.013 7 -6600220.640 6 21756027.310 21756027.202 21756026.201
+ 42.200 39.000
+ -20070016.128 7 -15638967.929 7 20902707.477 20902706.251 20902706.910
+ 46.800 46.100
+ -10416046.551 5 -8116410.625 4 22784387.637 22784388.781 22784386.803
+ 32.100 28.100
+ -24482338.028 6 -19077146.727 8 20274556.883 20274554.817 20274556.047
+ 40.700 48.100
+ -15121647.143 7 -11783096.020 5 21606669.649 21606668.183 21606669.119
+ 44.800 34.900
+ -16997865.446 7 -13245078.364 6 21199135.076 21199135.783 21199134.267
+ 43.200 38.500
+ 06 1 2 17 25 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -5969590.569 5 -4651625.072 3 23549294.400 23549294.936 23549293.766
+ 31.100 19.900
+ -744400.441 2 -580050.609 3 24299081.022 24299084.058 24299080.269
+ 17.800 18.600
+ -8527211.023 7 -6644575.449 6 21745195.406 21745195.426 21745194.407
+ 42.600 39.500
+ -20115457.536 7 -15674376.804 7 20894060.046 20894059.075 20894059.595
+ 46.500 46.100
+ -10308023.505 5 -8032236.890 4 22804943.988 22804944.940 22804942.858
+ 32.600 27.600
+ -24476976.869 6 -19072969.205 8 20275577.292 20275575.025 20275576.302
+ 40.600 48.100
+ -15052433.892 7 -11729163.623 5 21619840.921 21619839.148 21619840.092
+ 44.500 35.300
+ -17066314.327 7 -13298415.126 6 21186110.179 21186110.460 21186109.078
+ 43.200 38.400
+ 06 1 2 17 25 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6047727.976 5 -4712511.264 3 23534425.934 23534425.186 23534424.431
+ 31.500 19.300
+ -861583.895 3 -671362.269 3 24276781.491 24276784.166 24276781.428
+ 22.600 20.500
+ -8583927.494 7 -6688770.082 6 21734402.491 21734402.691 21734401.360
+ 42.500 39.800
+ -20160598.775 7 -15709551.782 7 20885469.907 20885469.000 20885469.451
+ 46.600 46.200
+ -10199754.014 5 -7947871.125 4 22825547.056 22825548.036 22825546.105
+ 32.700 27.100
+ -24471156.074 6 -19068433.524 8 20276684.868 20276682.765 20276683.910
+ 40.700 48.100
+ -14982833.944 7 -11674929.905 5 21633085.100 21633083.488 21633084.427
+ 44.700 35.300
+ -17134301.468 7 -13351392.088 6 21173172.073 21173172.811 21173171.295
+ 43.400 38.500
+ 06 1 2 17 26 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6125556.827 5 -4773157.053 3 23519614.564 23519614.938 23519613.456
+ 30.800 18.600
+ -978664.599 3 -762593.806 3 24254501.090 24254504.958 24254500.917
+ 22.100 21.600
+ -8640438.180 7 -6732804.369 6 21723649.001 21723649.124 21723647.827
+ 42.200 40.000
+ -20205439.251 7 -15744492.404 7 20876937.329 20876936.100 20876936.789
+ 46.900 46.400
+ -10091241.289 5 -7863315.829 4 22846195.873 22846197.335 22846195.350
+ 31.300 27.400
+ -24464874.829 6 -19063539.053 8 20277880.228 20277878.047 20277879.245
+ 40.600 48.200
+ -14912849.512 7 -11620396.589 5 21646402.868 21646401.093 21646402.180
+ 44.600 35.200
+ -17201825.273 7 -13404008.012 6 21160322.873 21160323.489 21160322.033
+ 43.700 38.900
+ 06 1 2 17 26 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6203074.048 5 -4833559.992 3 23504863.938 23504863.765 23504862.945
+ 30.400 18.600
+ -1095640.347 3 -853743.541 3 24232241.200 24232244.323 24232240.901
+ 22.100 21.100
+ -8696742.943 7 -6776678.186 6 21712934.491 21712934.726 21712933.314
+ 42.300 40.200
+ -20249978.624 7 -15779198.407 7 20868461.824 20868460.651 20868461.182
+ 46.800 46.400
+ -9982488.901 5 -7778573.794 4 22866891.438 22866892.362 22866890.430
+ 32.100 27.400
+ -24458132.273 6 -19058285.116 8 20279163.146 20279161.033 20279162.293
+ 40.400 48.100
+ -14842483.053 7 -11565565.587 5 21659793.176 21659791.596 21659792.484
+ 44.500 34.900
+ -17268883.919 7 -13456261.470 6 21147562.235 21147562.714 21147561.240
+ 43.500 38.900
+ 06 1 2 17 27 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6280276.437 5 -4893717.621 3 23490173.230 23490172.760 23490171.827
+ 30.200 19.900
+ -1212508.869 3 -944809.668 3 24210001.910 24210005.104 24210001.756
+ 23.800 21.600
+ -8752841.334 7 -6820391.196 6 21702259.400 21702259.318 21702258.264
+ 42.300 39.700
+ -20294216.649 7 -15813669.589 7 20860043.414 20860042.423 20860042.914
+ 46.500 46.400
+ -9873499.493 5 -7693647.050 4 22887631.255 22887632.482 22887630.318
+ 31.800 26.800
+ -24450927.847 6 -19052671.282 7 20280534.114 20280532.021 20280533.249
+ 40.600 47.900
+ -14771736.543 7 -11510438.441 5 21673255.578 21673253.793 21673255.044
+ 44.300 34.600
+ -17335476.105 7 -13508151.449 6 21134890.080 21134890.453 21134889.121
+ 43.800 38.900
+ 06 1 2 17 27 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6357161.057 5 -4953627.623 3 23475541.785 23475541.895 23475540.961
+ 31.800 19.900
+ -1329267.829 3 -1035790.401 3 24187783.671 24187786.540 24187783.210
+ 21.600 19.300
+ -8808733.153 7 -6863943.244 6 21691623.490 21691623.491 21691622.362
+ 42.500 39.500
+ -20338152.810 7 -15847905.556 7 20851682.517 20851681.584 20851682.034
+ 46.800 46.500
+ -9764277.178 4 -7608538.815 4 22908415.904 22908416.877 22908414.677
+ 29.500 25.300
+ -24443260.757 6 -19046696.932 8 20281993.052 20281991.137 20281992.191
+ 40.600 48.200
+ -14700612.266 7 -11455016.937 5 21686790.542 21686788.412 21686789.724
+ 44.300 34.700
+ -17401600.294 7 -13559676.763 6 21122306.671 21122307.338 21122305.914
+ 43.700 38.900
+ 06 1 2 17 28 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6433724.930 5 -5013287.721 3 23460971.739 23460972.308 23460970.647
+ 30.100 19.900
+ -1445915.207 4 -1126684.198 2 24165586.131 24165588.899 24165586.226
+ 24.200 17.800
+ -8864418.126 7 -6907334.115 6 21681027.022 21681026.930 21681025.947
+ 42.800 40.000
+ -20381787.106 7 -15881906.302 7 20843379.479 20843378.374 20843378.757
+ 46.700 46.800
+ -9654824.715 4 -7523251.264 4 22929243.178 22929244.714 22929242.410
+ 29.700 27.100
+ -24435130.376 6 -19040361.574 7 20283540.269 20283538.236 20283539.365
+ 40.600 47.900
+ -14629112.631 7 -11399302.946 5 21700396.258 21700394.507 21700395.519
+ 44.000 34.800
+ -17467254.655 7 -13610835.974 6 21109813.152 21109813.812 21109812.415
+ 43.500 39.000
+ 06 1 2 17 28 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6509965.188 5 -5072695.647 3 23446463.934 23446464.297 23446462.677
+ 30.600 21.100
+ -1562448.559 3 -1217489.178 2 24143410.192 24143412.833 24143409.427
+ 22.600 12.600
+ -8919895.862 7 -6950563.498 6 21670470.009 21670469.817 21670468.834
+ 43.200 39.800
+ -20425118.845 7 -15915671.293 7 20835133.576 20835132.536 20835132.934
+ 46.600 46.600
+ -9545144.925 5 -7437786.572 4 22950115.053 22950116.490 22950114.077
+ 31.600 26.500
+ -24426535.777 6 -19033664.487 7 20285175.815 20285173.625 20285174.920
+ 40.600 47.800
+ -14557239.797 7 -11343298.154 5 21714073.093 21714071.469 21714072.371
+ 44.000 34.700
+ -17532437.824 7 -13661628.021 6 21097409.529 21097409.894 21097408.535
+ 43.600 39.200
+ 06 1 2 17 29 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6585878.558 5 -5131848.855 3 23432017.748 23432018.182 23432017.050
+ 31.000 19.300
+ -1678865.842 3 -1308203.663 1 24121256.172 24121258.913 24121256.083
+ 20.500 9.000
+ -8975166.278 7 -6993631.337 6 21659952.537 21659952.140 21659951.369
+ 43.300 39.800
+ -20468148.126 7 -15949200.599 7 20826945.297 20826944.335 20826944.767
+ 46.600 46.700
+ -9435241.610 5 -7352147.686 4 22971029.360 22971030.655 22971028.161
+ 30.800 26.500
+ -24417476.312 6 -19026605.169 7 20286899.771 20286897.657 20286898.802
+ 40.300 47.900
+ -14484996.703 7 -11287004.844 5 21727820.549 21727818.865 21727819.815
+ 43.900 34.700
+ -17597148.305 7 -13712051.738 6 21085095.587 21085095.826 21085094.621
+ 43.800 39.100
+ 06 1 2 17 29 30.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6661462.012 5 -5190745.029 3 23417635.650 23417635.157 23417634.411
+ 31.300 21.600
+ -1795164.752 3 -1398825.939 3 24099125.604 24099127.538 24099125.160
+ 20.500 18.600
+ -9030228.886 7 -7036537.244 6 21649474.180 21649473.808 21649473.057
+ 43.200 39.500
+ -20510874.448 7 -15982493.834 7 20818814.703 20818813.879 20818814.204
+ 46.700 46.900
+ -9325117.612 5 -7266336.859 4 22991985.017 22991986.635 22991984.185
+ 31.600 27.900
+ -24407951.352 6 -19019183.125 7 20288712.251 20288710.158 20288711.358
+ 40.400 47.700
+ -14412384.692 7 -11230424.069 5 21741638.103 21741636.442 21741637.392
+ 43.600 34.500
+ -17661384.489 7 -13762105.878 6 21072871.513 21072872.001 21072870.717
+ 43.900 39.300
+ 06 1 2 17 30 0.0000000 0 8G20G 4G 7G17G 8G28G11G24
+ -6736712.220 5 -5249381.512 3 23403315.571 23403315.536 23403314.395
+ 30.800 21.600
+ -1911343.013 3 -1489354.237 2 24077017.272 24077019.637 24077016.609
+ 21.100 12.600
+ -9085083.524 7 -7079281.104 6 21639035.861 21639035.522 21639034.665
+ 43.300 40.200
+ -20553297.627 7 -16015550.844 7 20810742.116 20810740.966 20810741.524
+ 47.000 47.000
+ -9214776.649 5 -7180356.967 4 23012981.817 23012983.696 23012981.103
+ 30.400 26.500
+ -24397960.274 6 -19011397.873 7 20290613.514 20290611.417 20290612.603
+ 40.600 47.800
+ -14339406.432 7 -11173557.904 5 21755525.397 21755523.766 21755524.726
+ 43.900 34.500
+ -17725144.939 7 -13811789.319 6 21060738.373 21060738.858 21060737.538
+ 44.200 39.300
+ 06 1 2 17 30 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -6811626.563 5 -5307756.299 3 23389060.381 23389060.368 23389058.829
+ 31.000 22.600
+ -2027398.318 3 -1579786.729 2 24054933.222 24054934.201 24054932.228
+ 22.600 17.800
+ -106918.687 4 -83312.600 4 24233306.138 24233307.219 24233305.390
+ 25.600 25.300
+ -9139729.877 7 -7121862.658 6 21628636.809 21628636.784 21628635.719
+ 43.300 40.300
+ -20595417.472 7 -16048371.502 7 20802726.808 20802725.663 20802726.193
+ 46.800 46.900
+ -9104221.484 4 -7094210.163 4 23034020.157 23034021.520 23034019.286
+ 28.400 26.800
+ -24387502.157 6 -19003248.695 7 20292603.914 20292601.596 20292602.850
+ 40.300 47.700
+ -14266063.925 7 -11116407.910 5 21769481.993 21769480.506 21769481.313
+ 43.700 34.700
+ -17788428.076 7 -13861100.833 6 21048696.140 21048696.408 21048695.301
+ 44.400 39.200
+ 06 1 2 17 31 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -6886201.805 5 -5365866.839 3 23374868.601 23374869.080 23374867.405
+ 31.000 22.600
+ -2143328.438 3 -1670121.737 2 24032871.396 24032874.058 24032871.200
+ 23.800 13.900
+ -186578.709 3 -145385.325 4 24218147.206 24218148.815 24218146.093
+ 22.100 28.600
+ -9194167.728 7 -7164281.744 6 21618277.619 21618277.607 21618276.509
+ 43.000 40.400
+ -20637233.426 7 -16080955.349 7 20794769.249 20794768.353 20794768.812
+ 46.700 47.000
+ -8993455.486 4 -7007899.065 4 23055097.936 23055099.766 23055097.133
+ 29.200 25.600
+ -24376576.922 6 -18994735.528 7 20294682.516 20294680.571 20294681.699
+ 40.800 47.800
+ -14192360.100 7 -11058976.380 5 21783507.429 21783505.695 21783506.725
+ 43.800 34.000
+ -17851232.548 7 -13910039.361 6 21036744.866 21036745.042 21036743.911
+ 44.300 39.200
+ 06 1 2 17 31 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -6960434.949 5 -5423710.826 3 23360742.735 23360742.767 23360741.574
+ 31.000 21.600
+ -2259131.389 4 -1760357.706 2 24010834.738 24010836.554 24010834.406
+ 27.100 15.100
+ -265782.570 4 -207102.552 4 24203075.991 24203075.846 24203075.069
+ 25.300 24.200
+ -9248396.765 7 -7206538.121 6 21607958.239 21607958.151 21607957.154
+ 43.500 40.400
+ -20678745.066 7 -16113302.071 7 20786870.068 20786868.997 20786869.387
+ 46.600 47.000
+ -8882481.751 4 -6921426.098 4 23076216.376 23076217.466 23076215.340
+ 29.900 26.200
+ -24365183.358 6 -18985857.431 7 20296850.890 20296848.649 20296849.911
+ 40.600 47.400
+ -14118296.655 7 -11001264.615 5 21797601.265 21797599.733 21797600.457
+ 43.300 34.500
+ -17913557.017 7 -13958603.860 6 21024884.720 21024885.172 21024883.889
+ 44.200 39.500
+ 06 1 2 17 32 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7034322.946 5 -5481285.881 3 23346682.689 23346682.426 23346681.178
+ 32.100 23.000
+ -2374804.636 4 -1850492.597 3 23988823.495 23988825.836 23988822.962
+ 27.900 21.100
+ -344528.263 4 -268462.821 3 24188090.071 24188090.793 24188089.570
+ 26.800 18.600
+ -9302416.670 7 -7248631.540 6 21597678.799 21597678.334 21597677.548
+ 43.300 40.300
+ -20719951.967 7 -16145411.334 7 20779028.780 20779027.490 20779027.934
+ 46.600 47.100
+ -8771303.848 4 -6834794.037 4 23097372.751 23097374.380 23097371.703
+ 29.900 27.600
+ -24353320.728 6 -18976613.828 7 20299108.165 20299106.075 20299107.252
+ 40.600 47.500
+ -14043875.778 7 -10943274.338 5 21811763.325 21811761.418 21811762.525
+ 43.400 34.300
+ -17975399.781 7 -14006793.001 6 21013116.344 21013116.861 21013115.506
+ 44.100 39.700
+ 06 1 2 17 32 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7107862.815 5 -5538589.649 3 23332687.602 23332688.203 23332686.836
+ 32.400 23.000
+ -2490346.043 4 -1940524.754 3 23966835.805 23966838.390 23966835.770
+ 25.600 21.600
+ -422812.649 4 -329463.631 3 24173193.667 24173194.333 24173192.650
+ 24.200 21.100
+ -9356227.303 7 -7290561.881 6 21587438.692 21587438.705 21587437.581
+ 43.500 40.600
+ -20760854.306 7 -16177283.272 7 20771244.967 20771244.138 20771244.432
+ 46.400 47.200
+ -8659924.669 4 -6748005.166 4 23118567.180 23118569.159 23118566.425
+ 29.700 26.800
+ -24340988.717 6 -18967004.469 7 20301454.739 20301452.777 20301453.868
+ 40.600 47.500
+ -13969100.067 7 -10885007.558 5 21825992.494 21825990.741 21825991.800
+ 43.500 34.000
+ -18036759.568 7 -14054605.800 6 21001440.057 21001440.446 21001439.239
+ 44.600 39.800
+ 06 1 2 17 33 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7181052.197 5 -5595620.333 3 23318760.517 23318760.418 23318759.518
+ 33.000 21.100
+ -2605753.418 3 -2030452.492 3 23944873.943 23944877.250 23944873.672
+ 22.600 23.000
+ -500633.535 3 -390103.258 2 24158384.524 24158385.158 24158383.636
+ 21.600 17.800
+ -9409828.263 7 -7332328.845 6 21577238.779 21577238.669 21577237.665
+ 43.500 40.600
+ -20801451.887 7 -16208917.733 7 20763519.632 20763518.625 20763519.212
+ 46.800 47.100
+ -8548347.475 4 -6661061.972 4 23139799.738 23139801.780 23139798.919
+ 28.800 27.100
+ -24328186.812 6 -18957028.968 7 20303891.164 20303888.888 20303890.080
+ 40.600 47.600
+ -13893972.071 7 -10826466.274 5 21840288.840 21840287.548 21840288.205
+ 43.300 34.700
+ -18097634.859 7 -14102041.073 6 20989856.046 20989856.218 20989855.015
+ 44.600 39.600
+ 06 1 2 17 33 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7253887.328 5 -5652374.958 3 23304900.622 23304900.407 23304899.226
+ 31.600 21.600
+ -2721024.403 3 -2120273.933 3 23922938.283 23922941.388 23922938.322
+ 21.600 21.100
+ -577988.165 3 -450379.568 2 24143664.496 24143665.222 24143663.609
+ 22.600 17.000
+ -9463219.205 7 -7373932.159 6 21567078.755 21567078.640 21567077.626
+ 43.600 40.700
+ -20841744.211 7 -16240314.333 7 20755852.170 20755851.211 20755851.686
+ 46.600 47.200
+ -8436576.049 4 -6573967.443 4 23161069.691 23161070.711 23161068.430
+ 29.000 24.900
+ -24314914.344 6 -18946686.792 7 20306416.538 20306414.594 20306415.654
+ 40.900 47.400
+ -13818493.830 7 -10767652.075 5 21854652.138 21854650.153 21854651.237
+ 42.800 33.900
+ -18158024.359 7 -14149097.811 6 20978364.152 20978364.392 20978363.354
+ 44.800 39.700
+ 06 1 2 17 34 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7326365.323 5 -5708851.311 3 23291107.657 23291108.287 23291106.841
+ 32.400 23.400
+ -2836156.717 3 -2209987.294 3 23901028.641 23901032.998 23901028.837
+ 19.300 23.400
+ -654873.531 4 -510290.160 2 24129033.957 24129033.841 24129033.200
+ 25.900 17.800
+ -9516399.941 7 -7415371.668 6 21556958.670 21556958.846 21556957.624
+ 43.600 40.900
+ -20881731.058 7 -16271472.899 7 20748243.247 20748241.944 20748242.600
+ 46.700 47.400
+ -8324613.225 5 -6486723.766 4 23182375.530 23182377.010 23182374.378
+ 30.800 25.300
+ -24301170.642 6 -18935977.417 7 20309031.822 20309029.913 20309031.039
+ 40.900 47.400
+ -13742667.893 7 -10708566.936 5 21869080.766 21869079.578 21869080.130
+ 42.600 34.000
+ -18217926.717 7 -14195774.956 6 20966965.432 20966965.277 20966964.435
+ 44.500 39.700
+ 06 1 2 17 34 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7398483.476 5 -5765047.260 3 23277384.313 23277384.918 23277383.377
+ 32.300 23.800
+ -2951148.164 3 -2299590.916 4 23879147.265 23879150.655 23879146.908
+ 18.600 24.900
+ -731287.204 3 -569833.230 2 24114492.440 24114492.958 24114491.585
+ 22.600 17.800
+ -9569370.114 7 -7456647.109 6 21546878.903 21546878.780 21546877.683
+ 43.600 40.600
+ -20921411.952 7 -16302393.058 7 20740692.124 20740690.929 20740691.629
+ 47.000 47.500
+ -8212462.141 5 -6399333.376 3 23203716.984 23203718.568 23203715.958
+ 30.100 23.400
+ -24286955.180 6 -18924900.435 7 20311737.179 20311735.032 20311736.196
+ 40.900 47.400
+ -13666496.404 7 -10649212.535 5 21883575.913 21883574.535 21883575.250
+ 43.000 34.300
+ -18277340.312 7 -14242071.244 6 20955659.050 20955659.235 20955658.137
+ 44.500 39.600
+ 06 1 2 17 35 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7470238.643 5 -5820960.360 3 23263731.042 23263730.068 23263729.298
+ 32.700 22.600
+ -3065996.477 4 -2389082.954 3 23857293.070 23857295.132 23857292.665
+ 24.600 19.900
+ -807226.979 3 -629007.063 2 24100042.041 24100042.288 24100040.970
+ 22.600 17.000
+ -9622129.520 7 -7497758.314 6 21536839.106 21536838.967 21536838.031
+ 43.800 40.700
+ -20960786.688 7 -16333074.653 7 20733199.150 20733198.247 20733198.793
+ 47.100 47.600
+ -8100125.972 4 -6311798.788 4 23225094.129 23225095.203 23225093.008
+ 28.100 24.200
+ -24272267.714 6 -18913455.664 7 20314531.990 20314529.979 20314531.064
+ 40.800 47.300
+ -13589981.445 7 -10589590.484 5 21898136.075 21898134.645 21898135.476
+ 42.700 33.500
+ -18336264.103 7 -14287985.862 6 20944446.159 20944446.485 20944445.232
+ 44.400 40.100
+ 06 1 2 17 35 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7541628.021 5 -5876588.418 3 23250145.087 23250145.449 23250143.844
+ 31.800 23.000
+ -3180699.358 4 -2478461.712 2 23835465.886 23835467.835 23835465.277
+ 24.200 17.000
+ -882689.888 3 -687809.275 1 24085681.659 24085682.545 24085680.809
+ 21.600 9.000
+ -9674677.823 7 -7538705.028 6 21526839.492 21526839.306 21526838.372
+ 43.500 40.600
+ -20999854.839 7 -16363517.349 7 20725764.855 20725763.712 20725764.249
+ 46.600 47.400
+ -7987608.291 4 -6224122.740 3 23246505.405 23246506.758 23246504.319
+ 27.900 23.800
+ -24257107.289 6 -18901642.349 7 20317416.900 20317414.953 20317416.025
+ 40.900 47.100
+ -13513125.530 7 -10529702.770 5 21912761.873 21912760.298 21912760.991
+ 42.800 33.800
+ -18394696.654 7 -14333517.692 6 20933326.714 20933327.171 20933325.839
+ 44.300 40.000
+ 06 1 2 17 36 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7612648.507 5 -5931929.022 4 23236629.945 23236630.437 23236628.628
+ 31.800 24.200
+ -3295254.664 4 -2567725.516 3 23813665.869 23813668.566 23813666.048
+ 25.300 19.900
+ -957673.236 3 -746237.978 1 24071412.318 24071412.685 24071411.532
+ 22.600 9.000
+ -9727014.715 7 -7579486.996 6 21516880.276 21516880.194 21516879.083
+ 43.700 41.200
+ -21038616.374 7 -16393721.123 7 20718388.754 20718387.614 20718388.047
+ 46.800 47.500
+ -7874912.070 4 -6136307.618 4 23267951.235 23267952.551 23267949.754
+ 28.400 25.600
+ -24241473.445 6 -18889460.139 7 20320392.127 20320390.031 20320391.143
+ 41.100 47.300
+ -13435930.877 7 -10469551.102 5 21927451.426 21927449.741 21927450.632
+ 42.800 33.600
+ -18452636.744 7 -14378665.776 6 20922301.260 20922301.377 20922300.213
+ 44.500 40.200
+ 06 1 2 17 36 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7683296.998 5 -5986979.766 3 23223186.326 23223186.444 23223185.229
+ 32.700 23.000
+ -3409660.134 4 -2656872.470 2 23791896.139 23791897.443 23791895.377
+ 24.200 17.800
+ -1032174.834 4 -804291.104 3 24057235.852 24057236.038 24057235.031
+ 27.900 18.600
+ -9779139.970 7 -7620104.057 6 21506960.870 21506960.768 21506959.833
+ 43.900 41.100
+ -21077070.825 7 -16423685.610 7 20711071.077 20711070.019 20711070.386
+ 46.600 47.600
+ -7762040.755 4 -6048356.039 4 23289429.255 23289431.415 23289428.223
+ 28.400 25.900
+ -24225365.773 6 -18876908.711 7 20323457.204 20323455.239 20323456.325
+ 41.100 47.200
+ -13358400.010 7 -10409137.439 5 21942204.902 21942203.074 21942204.199
+ 42.800 32.800
+ -18510083.205 7 -14423429.219 6 20911369.410 20911369.633 20911368.533
+ 44.600 40.200
+ 06 1 2 17 37 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7753570.886 5 -6041738.613 3 23209813.587 23209813.887 23209812.471
+ 32.800 23.800
+ -3523913.491 4 -2745900.915 2 23770153.589 23770155.563 23770153.107
+ 24.200 17.800
+ -1106192.186 4 -861966.926 2 24043150.449 24043149.813 24043149.551
+ 24.200 13.900
+ -9831053.285 7 -7660555.975 6 21497082.270 21497082.016 21497081.134
+ 43.900 41.200
+ -21115218.068 7 -16453410.715 7 20703811.645 20703810.803 20703811.143
+ 46.700 47.700
+ -7648997.190 4 -5960270.243 4 23310941.711 23310942.778 23310940.572
+ 29.000 24.900
+ -24208784.049 6 -18863987.886 7 20326612.580 20326610.571 20326611.758
+ 41.300 47.200
+ -13280534.968 7 -10348463.392 5 21957022.463 21957020.527 21957021.578
+ 42.900 33.200
+ -18567034.843 7 -14467807.086 6 20900531.992 20900532.055 20900531.035
+ 44.600 40.400
+ 06 1 2 17 37 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7823467.344 5 -6096203.344 3 23196512.795 23196512.799 23196511.567
+ 32.700 23.800
+ -3638012.499 4 -2834809.087 3 23748440.859 23748443.217 23748441.080
+ 24.900 21.100
+ -1179722.568 4 -919263.365 4 24029158.298 24029159.769 24029157.306
+ 26.800 24.900
+ -9882754.380 7 -7700842.523 6 21487243.714 21487243.621 21487242.559
+ 43.700 41.100
+ -21153057.796 7 -16482896.198 7 20696611.157 20696610.089 20696610.604
+ 46.600 47.700
+ -7535784.907 4 -5872052.981 4 23332484.487 23332486.774 23332483.704
+ 27.600 25.600
+ -24191727.414 6 -18850696.999 7 20329858.357 20329856.281 20329857.510
+ 41.400 47.000
+ -13202338.157 7 -10287530.830 5 21971902.602 21971900.718 21971901.914
+ 42.700 32.800
+ -18623490.294 7 -14511798.313 6 20889788.538 20889788.981 20889787.656
+ 44.500 40.200
+ 06 1 2 17 38 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7892983.261 5 -6150371.532 4 23183284.653 23183284.571 23183283.179
+ 33.200 24.200
+ -3751955.130 4 -2923595.418 2 23726758.771 23726760.241 23726758.325
+ 26.500 17.000
+ -1252763.515 4 -976178.365 3 24015258.869 24015259.465 24015257.909
+ 26.800 23.000
+ -9934242.968 7 -7740963.472 6 21477445.516 21477445.812 21477444.402
+ 43.600 41.400
+ -21190589.775 7 -16512141.876 7 20689468.865 20689467.952 20689468.378
+ 46.800 47.700
+ -7422406.858 4 -5783706.528 4 23354060.146 23354061.507 23354059.256
+ 29.700 24.900
+ -24174195.410 6 -18837035.703 7 20333194.621 20333192.486 20333193.683
+ 41.200 46.900
+ -13123812.093 7 -10226341.705 5 21986845.580 21986843.911 21986844.838
+ 42.500 33.500
+ -18679448.448 7 -14555402.037 6 20879140.019 20879140.464 20879139.103
+ 44.600 40.700
+ 06 1 2 17 38 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -7962115.873 5 -6204241.043 4 23170129.816 23170128.876 23170128.136
+ 34.000 24.200
+ -3865738.925 4 -3012257.968 3 23705106.887 23705108.176 23705106.229
+ 26.500 21.100
+ -1325312.478 5 -1032710.002 3 24001453.416 24001453.402 24001452.595
+ 30.200 23.400
+ -9985518.649 7 -7780918.528 6 21467688.666 21467688.111 21467687.415
+ 44.000 41.200
+ -21227813.864 7 -16541147.647 7 20682385.588 20682384.492 20682385.027
+ 46.800 47.900
+ -7308866.558 4 -5695233.687 4 23375666.442 23375667.624 23375665.390
+ 28.600 25.300
+ -24156187.798 6 -18823003.801 7 20336621.236 20336619.221 20336620.416
+ 41.100 46.900
+ -13044958.907 7 -10164897.688 5 22001851.050 22001849.070 22001850.342
+ 42.600 33.400
+ -18734907.995 7 -14598617.237 6 20868586.322 20868586.817 20868585.474
+ 44.400 40.500
+ 06 1 2 17 39 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8030862.267 5 -6257809.613 3 23157046.075 23157046.670 23157045.424
+ 33.500 23.800
+ -3979361.817 4 -3100795.189 3 23683484.197 23683486.250 23683483.498
+ 24.900 18.600
+ -1397366.878 4 -1088856.328 4 23987741.716 23987742.926 23987740.978
+ 29.900 27.100
+ -10036581.211 7 -7820707.517 6 21457971.521 21457971.219 21457970.342
+ 44.100 41.200
+ -21264729.328 7 -16569912.924 8 20675360.781 20675359.720 20675360.290
+ 47.000 48.000
+ -7195166.815 4 -5606636.579 3 23397302.535 23397304.413 23397301.274
+ 25.300 23.800
+ -24137704.050 6 -18808600.889 7 20340138.918 20340136.650 20340137.869
+ 41.200 46.900
+ -12965780.847 7 -10103200.520 5 22016918.216 22016916.109 22016917.394
+ 42.300 33.100
+ -18789867.631 7 -14641442.894 6 20858128.005 20858128.244 20858127.102
+ 44.400 40.700
+ 06 1 2 17 39 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8099219.379 5 -6311074.835 3 23144038.807 23144038.217 23144037.375
+ 33.100 22.100
+ -4092821.724 3 -3189205.357 3 23661893.413 23661895.903 23661893.045
+ 23.400 23.000
+ -1468924.752 4 -1144615.688 4 23974124.426 23974125.547 23974123.589
+ 26.200 27.100
+ -10087430.370 7 -7860330.216 6 21448295.190 21448294.909 21448294.004
+ 43.800 41.400
+ -21301336.185 7 -16598437.729 7 20668394.781 20668393.566 20668394.121
+ 46.900 47.800
+ -7081311.148 4 -5517917.977 3 23418968.865 23418970.071 23418967.717
+ 25.900 22.100
+ -24118743.907 6 -18793826.757 7 20343746.844 20343744.695 20343745.810
+ 41.100 47.000
+ -12886280.397 7 -10041252.141 5 22032046.476 22032044.777 22032045.728
+ 42.100 32.800
+ -18844326.235 7 -14683878.136 6 20847764.906 20847765.119 20847763.997
+ 44.600 40.500
+ 06 1 2 17 40 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8167184.509 5 -6364034.650 3 23131105.167 23131104.488 23131103.773
+ 32.100 22.600
+ -4206116.032 4 -3277486.539 3 23640334.471 23640336.451 23640333.847
+ 25.300 23.800
+ -1539983.392 4 -1199986.063 4 23960602.463 23960604.330 23960601.647
+ 27.900 29.900
+ -10138065.849 7 -7899786.417 6 21438659.552 21438659.202 21438658.340
+ 43.800 41.200
+ -21337634.141 7 -16626721.835 7 20661487.479 20661486.130 20661486.944
+ 47.000 47.700
+ -6967302.374 4 -5429080.051 3 23440663.686 23440665.612 23440662.741
+ 26.500 23.400
+ -24099306.692 6 -18778680.874 7 20347445.450 20347443.425 20347444.501
+ 41.100 46.900
+ -12806459.709 7 -9979054.225 5 22047235.654 22047233.924 22047235.004
+ 42.100 32.700
+ -18898282.880 7 -14725922.243 6 20837497.318 20837497.534 20837496.348
+ 44.600 40.700
+ 06 1 2 17 40 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8234755.246 5 -6416687.101 3 23118246.477 23118246.643 23118245.622
+ 33.100 22.600
+ -4319242.861 3 -3365637.238 4 23618806.537 23618809.118 23618806.059
+ 22.600 25.600
+ -1610540.583 3 -1254965.699 4 23947176.283 23947177.082 23947175.309
+ 22.600 28.100
+ -10188487.315 7 -7939075.850 6 21429064.521 21429064.308 21429063.351
+ 43.900 41.400
+ -21373622.905 7 -16654765.017 7 20654639.035 20654637.747 20654638.435
+ 47.200 47.800
+ -6853144.045 4 -5340125.641 3 23462387.633 23462388.979 23462386.488
+ 27.400 21.100
+ -24079391.999 6 -18763162.929 7 20351234.908 20351233.064 20351233.984
+ 41.100 46.600
+ -12726321.190 6 -9916608.655 5 22062485.751 22062483.927 22062484.955
+ 41.800 32.800
+ -18951736.418 7 -14767574.318 6 20827325.363 20827325.638 20827324.483
+ 44.800 40.700
+ 06 1 2 17 41 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8301927.674 5 -6469029.214 3 23105464.691 23105464.112 23105462.982
+ 32.600 23.400
+ -4432199.937 4 -3453655.618 4 23597312.422 23597313.761 23597311.781
+ 25.300 24.200
+ -1680593.800 3 -1309552.582 4 23933845.478 23933846.221 23933844.684
+ 19.300 27.100
+ -10238694.628 7 -7978198.410 6 21419510.163 21419510.325 21419509.204
+ 44.100 41.600
+ -21409302.203 7 -16682567.057 8 20647849.336 20647848.311 20647848.822
+ 47.000 48.000
+ -6738839.112 4 -5251056.934 3 23484138.405 23484140.622 23484137.826
+ 27.100 21.600
+ -24058999.653 6 -18747272.787 7 20355115.420 20355113.605 20355114.585
+ 41.300 46.800
+ -12645867.295 6 -9853917.332 5 22077795.303 22077794.202 22077794.635
+ 41.400 33.800
+ -19004685.330 7 -14808833.183 6 20817249.614 20817249.670 20817248.695
+ 44.900 40.500
+ 06 1 2 17 41 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8368699.704 5 -6521059.347 3 23092756.959 23092757.859 23092756.990
+ 34.100 23.000
+ -4544984.767 4 -3541539.826 3 23575849.744 23575851.538 23575849.497
+ 26.800 22.100
+ -1750140.475 3 -1363744.708 3 23920610.699 23920611.732 23920610.304
+ 19.900 23.800
+ -10288687.331 7 -8017153.736 6 21409997.232 21409996.881 21409996.018
+ 44.300 41.300
+ -21444671.679 7 -16710127.672 7 20641118.729 20641117.543 20641118.181
+ 47.000 47.900
+ -6624390.941 4 -5161876.622 3 23505918.210 23505920.022 23505917.170
+ 25.900 22.100
+ -24038129.201 6 -18731010.095 7 20359087.037 20359085.133 20359086.116
+ 41.600 46.800
+ -12565099.901 6 -9790981.730 5 22093164.703 22093163.633 22093164.026
+ 41.100 33.200
+ -19057128.687 7 -14849698.107 6 20807270.037 20807269.967 20807269.049
+ 44.900 40.600
+ 06 1 2 17 42 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8435068.489 5 -6572775.256 3 23080128.186 23080128.130 23080126.966
+ 33.800 23.000
+ -4657595.495 4 -3629288.402 3 23554420.435 23554421.970 23554420.059
+ 24.900 21.600
+ -1819178.217 2 -1417540.268 4 23907472.956 23907474.391 23907472.011
+ 15.100 26.200
+ -10338465.114 7 -8055941.603 6 21400524.669 21400524.420 21400523.604
+ 44.300 41.400
+ -21479731.350 7 -16737446.887 7 20634447.254 20634445.876 20634446.628
+ 47.100 47.900
+ -6509802.737 4 -5072587.237 3 23527723.025 23527725.294 23527722.225
+ 26.200 21.600
+ -24016780.188 6 -18714374.498 7 20363149.423 20363147.714 20363148.593
+ 41.800 46.800
+ -12484021.783 6 -9727803.996 5 22108593.632 22108592.268 22108592.909
+ 41.400 33.000
+ -19109065.358 7 -14890168.213 6 20797386.470 20797386.744 20797385.704
+ 44.900 40.900
+ 06 1 2 17 42 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8501031.334 5 -6624174.853 4 23067576.585 23067575.671 23067575.236
+ 34.100 24.200
+ -4770029.724 4 -3716899.417 4 23533025.051 23533027.119 23533024.437
+ 26.800 24.200
+ -1887704.560 3 -1470937.316 4 23894432.843 23894434.301 23894431.887
+ 23.000 25.300
+ -10388027.640 7 -8094561.732 6 21391093.243 21391093.113 21391092.086
+ 44.200 41.900
+ -21514480.838 7 -16764524.399 8 20627834.502 20627833.335 20627833.969
+ 47.100 48.000
+ -6395077.772 4 -4983191.252 3 23549554.828 23549557.261 23549553.929
+ 27.400 23.000
+ -23994952.423 6 -18697365.850 7 20367303.409 20367301.451 20367302.401
+ 41.500 46.400
+ -12402635.052 6 -9664385.783 5 22124080.738 22124079.794 22124080.211
+ 41.300 33.200
+ -19160494.527 7 -14930242.864 6 20787599.940 20787600.133 20787598.996
+ 44.700 41.000
+ 06 1 2 17 43 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8566585.118 5 -6675255.702 3 23055100.846 23055101.529 23055100.404
+ 34.400 22.600
+ -4882285.361 4 -3804371.264 2 23511663.307 23511664.473 23511662.997
+ 26.800 17.000
+ -1955717.003 3 -1523934.018 3 23881491.099 23881491.971 23881490.211
+ 22.100 20.500
+ -10437374.805 7 -8133014.041 6 21381702.975 21381702.653 21381701.828
+ 44.400 41.900
+ -21548919.627 7 -16791359.808 8 20621280.965 20621279.898 20621280.530
+ 46.900 48.100
+ -6280219.159 4 -4893691.107 4 23571411.561 23571413.873 23571410.835
+ 27.100 24.600
+ -23972645.333 6 -18679983.704 7 20371548.161 20371546.306 20371547.190
+ 41.500 46.500
+ -12320942.074 6 -9600728.936 5 22139626.965 22139625.448 22139626.221
+ 41.400 33.000
+ -19211415.282 7 -14969921.345 6 20777909.835 20777910.265 20777909.074
+ 44.800 41.100
+ 06 1 2 17 43 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8631727.195 5 -6726015.730 3 23042706.421 23042705.717 23042704.556
+ 34.300 23.800
+ -4994360.023 4 -3891702.078 3 23490335.649 23490337.832 23490335.283
+ 24.900 22.100
+ -2023213.853 4 -1576528.927 2 23868647.275 23868647.444 23868646.222
+ 28.800 17.800
+ -10486506.108 7 -8171298.146 7 21372353.434 21372353.275 21372352.344
+ 44.400 42.000
+ -21583047.678 7 -16817953.083 8 20614786.683 20614785.516 20614786.061
+ 46.800 48.200
+ -6165229.774 4 -4804089.095 4 23593294.179 23593295.796 23593292.795
+ 26.500 25.600
+ -23949858.873 6 -18662228.017 7 20375884.220 20375882.367 20375883.429
+ 41.600 46.300
+ -12238945.019 6 -9536835.147 5 22155229.790 22155228.959 22155229.381
+ 41.100 32.600
+ -19261826.186 7 -15009202.542 6 20768316.985 20768317.314 20768316.186
+ 44.800 41.100
+ 06 1 2 17 44 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8696454.509 5 -6776452.575 4 23030388.674 23030388.601 23030387.595
+ 35.300 24.600
+ -5106251.585 4 -3978890.179 3 23469043.680 23469045.802 23469043.319
+ 25.900 23.000
+ -2090192.281 5 -1628719.934 3 23855901.676 23855901.331 23855900.982
+ 30.100 20.500
+ -10535421.410 7 -8209413.940 7 21363044.984 21363045.005 21363043.945
+ 44.600 42.100
+ -21616864.741 7 -16844304.029 8 20608351.577 20608350.354 20608351.043
+ 46.900 48.300
+ -6050113.104 4 -4714387.904 4 23615200.359 23615201.968 23615198.893
+ 25.900 24.600
+ -23926592.846 6 -18644098.639 7 20380311.705 20380309.811 20380310.839
+ 41.800 46.300
+ -12156646.345 6 -9472706.323 5 22170891.255 22170889.688 22170890.527
+ 41.000 32.400
+ -19311726.372 7 -15048085.777 6 20758821.446 20758821.621 20758820.428
+ 44.700 41.300
+ 06 1 2 17 44 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8760764.668 5 -6826564.345 4 23018150.700 23018150.481 23018149.429
+ 34.700 24.600
+ -5217957.779 4 -4065933.821 3 23447787.078 23447788.639 23447786.483
+ 27.100 23.000
+ -2156650.386 4 -1680505.374 3 23843254.918 23843255.353 23843254.092
+ 26.500 19.300
+ -10584120.268 7 -8247361.077 6 21353778.017 21353777.651 21353776.932
+ 44.700 41.800
+ -21650370.348 7 -16870412.282 8 20601975.630 20601974.577 20601975.057
+ 47.000 48.500
+ -5934872.194 4 -4624589.876 3 23637129.391 23637131.749 23637128.247
+ 25.300 23.800
+ -23902846.904 6 -18625595.299 7 20384830.397 20384828.462 20384829.468
+ 41.900 46.300
+ -12074048.195 6 -9408344.141 5 22186609.208 22186607.457 22186608.372
+ 40.700 31.500
+ -19361114.997 7 -15086570.388 6 20749422.845 20749423.263 20749422.000
+ 44.800 41.300
+ 06 1 2 17 45 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8824654.930 5 -6876348.941 4 23005992.954 23005992.443 23005991.461
+ 34.500 24.200
+ -5329476.486 4 -4152831.367 4 23426565.613 23426567.132 23426565.149
+ 26.500 25.300
+ -2222585.389 4 -1731883.260 2 23830708.080 23830707.414 23830707.154
+ 29.200 15.100
+ -10632602.474 7 -8285139.399 7 21344552.095 21344551.782 21344550.947
+ 44.600 42.000
+ -21683564.502 7 -16896277.844 8 20595659.124 20595657.832 20595658.433
+ 47.100 48.400
+ -5819510.339 4 -4534697.637 3 23659082.619 23659084.357 23659081.566
+ 25.300 23.400
+ -23878620.647 6 -18606717.691 7 20389440.603 20389438.514 20389439.644
+ 41.800 46.100
+ -11991153.090 6 -9343750.565 5 22202383.786 22202381.819 22202382.927
+ 41.000 31.500
+ -19409991.029 7 -15124655.577 6 20740121.990 20740122.492 20740121.149
+ 44.800 41.300
+ 06 1 2 17 45 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8888122.280 5 -6925803.973 3 22993915.180 22993914.656 22993914.150
+ 34.300 23.400
+ -5440805.519 4 -4239581.103 3 23405379.907 23405381.792 23405379.525
+ 27.100 23.400
+ -2287994.894 4 -1782851.738 2 23818260.600 23818260.625 23818259.726
+ 26.500 16.100
+ -10680867.694 7 -8322748.642 7 21335367.760 21335367.264 21335366.465
+ 44.800 42.100
+ -21716446.937 7 -16921900.510 8 20589401.594 20589400.377 20589401.036
+ 46.900 48.400
+ -5704030.718 3 -4444713.633 4 23681056.941 23681059.649 23681055.841
+ 23.400 25.300
+ -23853913.968 7 -18587465.726 7 20394142.055 20394140.036 20394141.160
+ 42.000 46.000
+ -11907963.285 6 -9278927.346 5 22218213.889 22218212.400 22218213.314
+ 40.900 32.000
+ -19458353.513 7 -15162340.600 6 20730918.898 20730919.278 20730918.098
+ 44.900 41.300
+ 06 1 2 17 46 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -8951164.115 5 -6974927.431 3 22981918.920 22981918.143 22981917.360
+ 34.600 23.400
+ -5551942.806 4 -4326181.420 3 23384230.595 23384233.166 23384230.315
+ 24.900 23.400
+ -2352877.473 4 -1833409.530 3 23805914.155 23805913.785 23805913.057
+ 24.900 19.900
+ -10728915.640 7 -8360188.576 7 21326224.469 21326224.305 21326223.251
+ 44.500 42.400
+ -21749017.250 7 -16947279.957 8 20583203.721 20583202.444 20583203.132
+ 46.800 48.400
+ -5588436.594 4 -4354640.406 3 23703054.575 23703056.379 23703053.608
+ 26.500 23.800
+ -23828726.410 7 -18567839.058 7 20398935.463 20398933.096 20398934.404
+ 42.100 46.100
+ -11824481.095 6 -9213876.308 5 22234100.316 22234098.574 22234099.580
+ 40.600 31.800
+ -19506201.582 7 -15199624.788 6 20721813.833 20721814.043 20721812.980
+ 44.800 41.300
+ 06 1 2 17 46 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9013777.839 5 -7023717.282 4 22970002.903 22970003.552 22970002.161
+ 35.100 24.900
+ -5662886.022 4 -4412630.534 3 23363119.502 23363120.752 23363119.134
+ 27.900 23.400
+ -2417230.255 4 -1883554.511 2 23793667.882 23793667.770 23793666.918
+ 27.900 17.000
+ -10776745.958 7 -8397458.934 7 21317122.564 21317122.342 21317121.322
+ 44.500 42.500
+ -21781275.162 7 -16972415.974 8 20577065.256 20577064.038 20577064.618
+ 46.800 48.500
+ -5472730.789 4 -4264480.167 3 23725072.368 23725074.116 23725071.497
+ 26.500 20.500
+ -23803057.906 7 -18547837.629 7 20403819.939 20403817.577 20403818.890
+ 42.300 45.900
+ -11740708.780 6 -9148599.183 5 22250041.961 22250040.100 22250041.052
+ 40.600 31.600
+ -19553534.426 7 -15236507.499 6 20712806.573 20712806.881 20712805.732
+ 44.700 41.500
+ 06 1 2 17 47 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9075960.468 5 -7072171.228 3 22958170.320 22958170.604 22958169.150
+ 34.500 23.800
+ -5773633.052 4 -4498926.790 4 23342044.246 23342045.982 23342044.211
+ 28.800 24.900
+ -2481051.292 4 -1933285.139 3 23781523.083 23781523.941 23781522.302
+ 27.600 22.600
+ -10824358.217 7 -8434559.379 7 21308062.389 21308062.041 21308061.168
+ 44.700 42.400
+ -21813220.554 7 -16997308.468 8 20570986.039 20570984.990 20570985.518
+ 46.700 48.500
+ -5356916.734 4 -4174235.514 3 23747110.904 23747113.458 23747109.792
+ 27.100 23.000
+ -23776908.251 7 -18527461.276 7 20408795.998 20408793.755 20408794.908
+ 42.400 45.900
+ -11656648.483 6 -9083097.668 5 22266037.931 22266036.150 22266037.112
+ 40.600 31.300
+ -19600351.039 7 -15272987.943 6 20703897.744 20703898.009 20703896.862
+ 44.800 41.500
+ 06 1 2 17 47 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9137709.454 5 -7120287.247 4 22946419.220 22946420.075 22946418.401
+ 34.300 25.600
+ -5884181.778 4 -4585068.544 4 23321007.880 23321009.593 23321007.385
+ 28.100 26.500
+ -2544338.154 4 -1982599.503 3 23769480.304 23769480.532 23769479.188
+ 26.500 23.000
+ -10871752.276 7 -8471489.797 7 21299043.542 21299043.106 21299042.399
+ 44.700 42.300
+ -21844853.376 7 -17021957.403 8 20564966.583 20564965.297 20564965.988
+ 46.700 48.400
+ -5240997.443 4 -4083908.911 2 23769169.742 23769171.858 23769169.156
+ 27.400 17.800
+ -23750277.533 7 -18506710.068 7 20413863.552 20413861.469 20413862.506
+ 42.300 45.700
+ -11572302.794 6 -9017373.761 5 22282088.019 22282086.573 22282087.634
+ 40.500 31.100
+ -19646650.515 7 -15309065.429 6 20695087.348 20695087.562 20695086.440
+ 44.900 41.800
+ 06 1 2 17 48 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9199022.133 5 -7168063.290 4 22934751.740 22934752.438 22934751.378
+ 35.300 24.600
+ -5994530.038 4 -4671054.096 3 23300009.497 23300010.575 23300008.745
+ 28.100 23.800
+ -2607088.703 4 -2031495.989 4 23757539.286 23757539.299 23757538.323
+ 29.200 24.600
+ -10918927.879 7 -8508249.987 7 21290066.135 21290065.973 21290065.093
+ 44.800 42.500
+ -21876172.976 7 -17046362.266 8 20559006.674 20559005.459 20559006.065
+ 46.800 48.500
+ -5124976.244 4 -3993502.837 3 23791247.955 23791250.840 23791246.994
+ 24.600 23.000
+ -23723165.086 7 -18485583.487 7 20419022.813 20419020.745 20419021.903
+ 42.400 45.700
+ -11487674.057 6 -8951429.293 5 22298192.477 22298190.995 22298191.678
+ 39.400 31.100
+ -19692431.869 7 -15344739.182 6 20686375.475 20686375.594 20686374.568
+ 45.100 41.600
+ 06 1 2 17 48 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9259896.014 5 -7215497.423 4 22923169.096 22923168.840 22923167.320
+ 34.800 25.300
+ -6104675.571 4 -4756881.660 4 23279048.824 23279050.692 23279048.392
+ 26.200 26.800
+ -2669300.995 4 -2079973.015 4 23745700.280 23745700.797 23745699.541
+ 27.100 25.300
+ -10965884.523 7 -8544839.571 7 21281130.756 21281130.345 21281129.626
+ 44.900 42.500
+ -21907179.382 7 -17070523.084 8 20553106.299 20553105.140 20553105.751
+ 46.800 48.600
+ -5008855.883 3 -3903019.576 3 23813344.854 23813347.014 23813343.674
+ 23.800 21.100
+ -23695570.949 7 -18464081.560 7 20424273.802 20424271.729 20424272.818
+ 42.400 45.500
+ -11402764.260 6 -8885265.840 5 22314350.260 22314348.992 22314349.656
+ 40.000 31.600
+ -19737694.217 7 -15380008.527 6 20677762.368 20677762.398 20677761.457
+ 45.000 41.600
+ 06 1 2 17 49 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9320328.320 5 -7262587.449 4 22911668.115 22911668.658 22911667.627
+ 35.800 24.900
+ -6214616.135 4 -4842549.543 4 23258127.399 23258129.750 23258127.125
+ 26.800 26.800
+ -2730972.815 4 -2128028.905 4 23733964.083 23733965.215 23733963.334
+ 24.900 25.600
+ -11012622.045 7 -8581258.397 7 21272236.767 21272236.494 21272235.605
+ 44.800 42.600
+ -21937872.124 7 -17094439.488 8 20547265.445 20547264.360 20547264.963
+ 46.900 48.600
+ -4892639.747 4 -3812461.667 3 23835460.961 23835462.804 23835459.952
+ 25.300 20.500
+ -23667494.918 7 -18442204.141 7 20429616.786 20429614.467 20429615.686
+ 42.500 45.600
+ -11317576.034 6 -8818885.420 5 22330560.867 22330559.800 22330560.264
+ 39.800 31.800
+ -19782436.814 7 -15414872.863 6 20669247.939 20669248.143 20669247.069
+ 45.100 41.700
+ 06 1 2 17 49 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9380316.283 6 -7309331.229 4 22900253.621 22900252.998 22900252.286
+ 36.100 25.300
+ -6324349.582 4 -4928056.101 3 23237246.661 23237247.215 23237246.027
+ 27.400 20.500
+ -2792101.819 4 -2175661.853 4 23722331.756 23722332.732 23722330.969
+ 25.300 27.100
+ -11059140.096 7 -8617506.212 7 21263384.796 21263384.369 21263383.620
+ 45.100 42.600
+ -21968250.994 7 -17118111.322 8 20541484.614 20541483.539 20541484.181
+ 47.000 48.700
+ -4776331.360 4 -3721831.861 3 23857593.159 23857595.578 23857592.149
+ 25.300 20.500
+ -23638937.048 7 -18419951.257 7 20435051.029 20435048.824 20435049.969
+ 42.700 45.500
+ -11232111.278 6 -8752289.529 5 22346824.285 22346823.277 22346823.627
+ 39.300 31.500
+ -19826659.119 7 -15449331.771 7 20660832.532 20660832.890 20660831.764
+ 45.100 42.000
+ 06 1 2 17 50 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9439857.416 5 -7355726.847 4 22888922.847 22888922.373 22888921.847
+ 35.500 24.900
+ -6433873.933 4 -5013399.714 4 23216404.544 23216405.995 23216404.082
+ 29.200 24.200
+ -2852686.009 4 -2222870.221 4 23710803.089 23710803.736 23710802.341
+ 27.900 27.100
+ -11105438.196 7 -8653582.640 7 21254574.359 21254574.090 21254573.280
+ 44.900 42.800
+ -21998315.890 7 -17141538.502 8 20535763.521 20535762.477 20535762.974
+ 47.000 48.900
+ -4659933.422 3 -3631132.276 2 23879742.972 23879745.339 23879742.173
+ 23.000 17.800
+ -23609897.361 7 -18397322.926 7 20440576.852 20440574.936 20440575.949
+ 42.600 45.300
+ -11146372.469 6 -8685480.091 5 22363139.843 22363138.861 22363139.186
+ 39.000 31.300
+ -19870359.974 7 -15483384.346 7 20652516.524 20652516.803 20652515.730
+ 45.000 42.000
+ 06 1 2 17 50 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9498949.130 6 -7401772.266 4 22877678.380 22877677.320 22877677.296
+ 36.500 25.300
+ -6543186.797 4 -5098578.565 4 23195602.497 23195604.337 23195602.228
+ 27.600 24.200
+ -2912723.812 4 -2269652.846 4 23699378.312 23699378.228 23699377.681
+ 26.500 24.200
+ -11151516.241 7 -8689487.595 7 21245806.155 21245805.632 21245804.914
+ 44.700 42.700
+ -22028066.620 7 -17164720.877 8 20530102.300 20530100.996 20530101.611
+ 46.800 48.900
+ -4543448.917 3 -3540365.265 3 23901910.429 23901912.209 23901908.827
+ 20.500 23.400
+ -23580375.515 7 -18374318.885 7 20446194.429 20446192.816 20446193.726
+ 42.700 45.400
+ -11060361.808 6 -8618458.813 5 22379506.896 22379505.830 22379506.272
+ 38.800 30.600
+ -19913539.113 7 -15517030.404 7 20644299.943 20644300.105 20644299.065
+ 45.100 42.200
+ 06 1 2 17 51 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9557588.868 6 -7447465.499 4 22866520.410 22866518.875 22866518.913
+ 36.300 25.300
+ -6652286.197 4 -5183591.036 3 23174841.917 23174843.085 23174841.310
+ 26.200 23.400
+ -2972212.463 4 -2316007.585 4 23688058.051 23688058.177 23688057.176
+ 27.100 26.500
+ -11197373.814 7 -8725220.752 7 21237079.432 21237079.187 21237078.392
+ 44.900 42.700
+ -22057502.718 7 -17187658.084 8 20524500.658 20524499.408 20524500.069
+ 46.800 48.900
+ -4426881.218 4 -3449533.398 3 23924092.411 23924093.984 23924090.853
+ 24.600 19.900
+ -23550371.438 7 -18350939.080 7 20451904.096 20451902.359 20451903.287
+ 42.700 45.400
+ -10974081.794 6 -8551227.650 5 22395926.329 22395924.533 22395925.455
+ 39.800 30.800
+ -19956195.652 7 -15550269.243 7 20636182.699 20636182.742 20636181.788
+ 44.800 42.000
+ 06 1 2 17 51 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9615773.961 5 -7492804.449 4 22855446.632 22855447.227 22855445.807
+ 35.800 26.200
+ -6761169.832 4 -5268435.374 4 23154122.211 23154123.885 23154121.814
+ 28.400 26.200
+ -3031149.995 4 -2361932.849 4 23676842.298 23676842.636 23676841.593
+ 29.000 27.100
+ -11243010.622 7 -8760781.889 7 21228395.092 21228394.886 21228394.038
+ 45.000 42.700
+ -22086623.835 7 -17210349.861 8 20518959.198 20518957.968 20518958.602
+ 47.000 49.100
+ -4310233.403 4 -3358639.109 3 23946289.294 23946291.215 23946288.308
+ 24.900 20.500
+ -23519885.139 7 -18327183.517 7 20457705.375 20457703.621 20457704.715
+ 43.000 45.200
+ -10887534.524 6 -8483788.244 5 22412395.281 22412393.901 22412394.360
+ 38.900 31.000
+ -19998328.736 7 -15583100.186 6 20628165.101 20628165.054 20628164.077
+ 45.100 41.900
+ 06 1 2 17 52 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9673501.548 6 -7537786.923 4 22844462.157 22844461.644 22844460.652
+ 36.200 25.900
+ -6869835.558 4 -5353109.925 4 23133444.118 23133445.202 23133443.725
+ 29.000 25.600
+ -3089534.746 4 -2407427.405 4 23665731.868 23665732.492 23665730.929
+ 25.300 26.200
+ -11288426.280 7 -8796170.698 7 21219752.811 21219752.610 21219751.610
+ 44.600 43.200
+ -22115430.154 7 -17232796.332 8 20513477.463 20513476.297 20513476.886
+ 47.000 49.100
+ -4193508.793 4 -3267684.982 3 23968500.651 23968503.497 23968499.674
+ 25.300 20.500
+ -23488916.664 7 -18303052.236 7 20463598.479 20463596.749 20463597.838
+ 43.000 45.100
+ -10800722.485 6 -8416142.521 5 22428915.100 22428913.865 22428914.337
+ 39.700 31.100
+ -20039937.725 7 -15615522.739 7 20620246.939 20620247.039 20620246.052
+ 44.800 42.200
+ 06 1 2 17 52 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9730769.669 6 -7582411.382 4 22833563.218 22833563.429 22833562.545
+ 36.200 24.200
+ -6978281.235 5 -5437612.970 4 23112807.219 23112808.255 23112806.813
+ 30.600 24.900
+ -3147364.738 4 -2452489.657 4 23654727.002 23654728.096 23654726.563
+ 26.200 26.200
+ -11333620.467 7 -8831386.933 7 21211152.352 21211152.452 21211151.394
+ 44.900 43.100
+ -22143921.143 7 -17254997.097 8 20508055.979 20508054.591 20508055.313
+ 47.100 49.200
+ -4076710.103 3 -3176673.114 3 23990726.550 23990729.527 23990725.832
+ 23.400 18.600
+ -23457465.830 7 -18278545.095 7 20469583.282 20469581.641 20469582.704
+ 42.900 45.000
+ -10713647.838 6 -8348292.164 5 22445484.788 22445483.277 22445484.144
+ 39.500 30.800
+ -20081021.959 7 -15647536.405 7 20612428.758 20612429.027 20612427.983
+ 44.800 42.100
+ 06 1 2 17 53 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9787575.548 5 -7626675.650 4 22822754.850 22822753.499 22822753.054
+ 35.500 24.600
+ -7086504.788 4 -5521942.942 4 23092212.800 23092214.134 23092212.395
+ 28.600 26.500
+ -3204637.267 4 -2497117.564 4 23643828.242 23643829.290 23643827.335
+ 25.600 26.500
+ -11378592.994 7 -8866430.443 7 21202594.884 21202594.301 21202593.596
+ 44.800 43.100
+ -22172096.518 7 -17276951.929 8 20502694.391 20502693.013 20502693.755
+ 47.200 49.200
+ -3959840.426 3 -3085605.948 4 24012966.208 24012970.163 24012965.543
+ 23.000 25.300
+ -23425532.714 7 -18253662.155 7 20475660.000 20475658.331 20475659.336
+ 42.900 44.800
+ -10626313.024 6 -8280239.087 5 22462104.057 22462102.727 22462103.305
+ 39.000 30.100
+ -20121580.764 7 -15679140.638 7 20604710.827 20604710.954 20604709.946
+ 45.000 42.200
+ 06 1 2 17 53 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9843916.510 6 -7670577.633 4 22812032.641 22812032.472 22812031.428
+ 36.200 24.600
+ -7194504.227 4 -5606098.223 4 23071660.849 23071662.511 23071660.290
+ 27.900 26.200
+ -3261350.478 4 -2541309.663 4 23633035.899 23633036.737 23633035.221
+ 25.900 25.900
+ -11423343.396 7 -8901300.874 7 21194078.982 21194078.673 21194077.845
+ 45.100 43.200
+ -22199956.364 7 -17298660.889 8 20497392.819 20497391.461 20497392.184
+ 47.300 49.200
+ -3842903.294 4 -2994486.263 3 24035218.560 24035221.632 24035218.300
+ 25.900 21.600
+ -23393116.933 7 -18228403.117 7 20481828.621 20481826.779 20481827.941
+ 43.200 44.700
+ -10538720.186 6 -8211984.956 5 22478772.352 22478771.072 22478771.817
+ 39.500 30.100
+ -20161613.495 7 -15710334.939 7 20597092.700 20597092.938 20597091.848
+ 44.700 42.300
+ 06 1 2 17 54 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9899790.184 6 -7714115.497 4 22801399.993 22801400.333 22801398.961
+ 36.600 25.300
+ -7302277.120 4 -5690076.994 4 23051151.983 23051153.987 23051151.597
+ 27.100 26.500
+ -3317503.245 5 -2585065.048 4 23622351.261 23622351.721 23622350.483
+ 31.000 27.400
+ -11467871.364 7 -8935997.978 7 21185605.524 21185605.332 21185604.353
+ 44.900 43.200
+ -22227500.219 7 -17320123.627 8 20492151.309 20492149.970 20492150.742
+ 47.200 49.200
+ -3725901.309 4 -2903315.972 3 24057482.942 24057486.723 24057482.828
+ 24.200 19.900
+ -23360218.909 7 -18202768.317 7 20488089.138 20488087.153 20488088.267
+ 43.200 44.600
+ -10450871.470 6 -8143531.435 5 22495489.725 22495488.437 22495488.861
+ 38.800 30.800
+ -20201119.379 7 -15741118.719 7 20589574.799 20589575.169 20589574.112
+ 44.800 42.300
+ 06 1 2 17 54 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -9955194.162 6 -7757287.366 4 22790857.211 22790856.844 22790856.008
+ 36.200 25.300
+ -7409821.470 4 -5773877.675 4 23030687.327 23030688.981 23030686.878
+ 29.500 28.800
+ -3373092.919 4 -2628381.663 4 23611772.825 23611773.508 23611772.052
+ 29.200 27.600
+ -11512176.515 7 -8970521.461 7 21177174.577 21177174.306 21177173.442
+ 44.900 43.400
+ -22254727.997 7 -17341340.069 8 20486970.005 20486968.653 20486969.432
+ 47.200 49.300
+ -3608837.948 3 -2812097.879 3 24079760.553 24079763.364 24079759.519
+ 23.400 21.600
+ -23326838.568 7 -18176757.687 7 20494441.496 20494439.228 20494440.421
+ 42.900 44.700
+ -10362769.153 6 -8074880.310 5 22512255.004 22512253.522 22512254.310
+ 39.000 30.100
+ -20240098.086 7 -15771491.712 7 20582157.690 20582157.702 20582156.783
+ 44.700 42.400
+ 06 1 2 17 55 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10010125.821 6 -7800091.209 4 22780403.498 22780403.261 22780402.520
+ 36.200 24.600
+ -7517135.142 4 -5857498.589 4 23010265.861 23010267.680 23010265.714
+ 29.700 28.600
+ -3428117.741 5 -2671258.169 4 23601301.563 23601301.882 23601300.905
+ 30.400 25.300
+ -11556258.636 7 -9004871.144 7 21168785.923 21168785.830 21168784.786
+ 45.200 43.500
+ -22281639.216 7 -17362309.838 8 20481848.876 20481847.697 20481848.354
+ 47.100 49.500
+ -3491715.771 4 -2720833.918 3 24102048.172 24102050.589 24102047.415
+ 25.300 18.600
+ -23292976.004 7 -18150371.291 7 20500885.423 20500882.993 20500884.232
+ 43.000 44.600
+ -10274415.564 6 -8006033.410 4 22529068.324 22529066.898 22529067.438
+ 37.600 29.900
+ -20278549.001 7 -15801453.432 7 20574840.581 20574840.659 20574839.743
+ 44.700 42.300
+ 06 1 2 17 55 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10064582.542 6 -7842524.963 4 22770041.613 22770040.363 22770040.028
+ 36.400 24.900
+ -7624216.227 4 -5940938.280 4 22989889.581 22989890.579 22989889.088
+ 28.600 27.400
+ -3482575.893 4 -2713693.068 4 23590938.780 23590939.285 23590937.845
+ 28.400 24.900
+ -11600117.337 7 -9039046.744 7 21160440.298 21160439.675 21160438.977
+ 45.200 43.400
+ -22308233.621 7 -17383032.744 8 20476788.106 20476786.914 20476787.581
+ 47.100 49.500
+ -3374538.528 3 -2629527.063 3 24124346.826 24124349.392 24124345.614
+ 21.600 19.900
+ -23258631.271 7 -18123609.178 7 20507421.478 20507418.670 20507420.077
+ 43.100 44.400
+ -10185813.107 6 -7936992.546 4 22545928.341 22545927.303 22545927.699
+ 37.700 29.900
+ -20316471.349 7 -15831003.289 7 20567624.074 20567624.250 20567623.295
+ 44.700 42.200
+ 06 1 2 17 56 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10118562.180 6 -7884586.984 4 22759769.173 22759768.651 22759768.159
+ 37.200 26.500
+ -7731062.347 5 -6024194.888 4 22969557.217 22969558.334 22969556.754
+ 30.200 25.900
+ -3536465.591 4 -2755685.057 3 23580683.551 23580683.643 23580682.984
+ 29.200 22.100
+ -11643752.316 7 -9073048.003 7 21152136.377 21152136.158 21152135.294
+ 45.100 43.400
+ -22334510.993 7 -17403508.610 8 20471787.632 20471786.440 20471787.099
+ 47.300 49.400
+ -3257308.830 3 -2538179.357 3 24146654.250 24146657.558 24146652.951
+ 20.500 19.900
+ -23223804.512 7 -18096471.444 7 20514048.479 20514046.129 20514047.293
+ 43.000 44.500
+ -10096963.723 6 -7867759.302 5 22562836.493 22562834.645 22562835.618
+ 38.100 30.100
+ -20353865.000 7 -15860141.174 7 20560508.539 20560508.425 20560507.546
+ 44.900 42.300
+ 06 1 2 17 56 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10172062.265 6 -7926275.307 4 22749588.881 22749587.975 22749587.528
+ 37.200 26.200
+ -7837671.470 5 -6107266.842 4 22949270.011 22949270.921 22949269.698
+ 31.100 25.600
+ -3589784.834 4 -2797232.497 3 23570538.014 23570536.987 23570537.119
+ 28.400 20.500
+ -11687163.155 7 -9106874.615 7 21143875.824 21143875.326 21143874.625
+ 45.300 43.500
+ -22360471.496 7 -17423737.565 8 20466847.770 20466846.399 20466847.155
+ 47.400 49.600
+ -3140029.709 3 -2446793.158 3 24168972.006 24168974.934 24168971.021
+ 21.600 19.900
+ -23188495.723 7 -18068958.099 7 20520767.423 20520765.178 20520766.266
+ 43.200 44.700
+ -10007869.967 6 -7798335.623 4 22579789.751 22579788.685 22579789.366
+ 37.800 28.800
+ -20390729.012 7 -15888866.355 7 20553493.356 20553493.391 20553492.537
+ 44.800 42.400
+ 06 1 2 17 57 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10225080.212 6 -7967587.931 4 22739498.974 22739498.642 22739497.870
+ 36.200 25.900
+ -7944041.758 5 -6190152.714 4 22929028.390 22929029.145 22929027.893
+ 31.100 25.600
+ -3642531.964 4 -2838334.166 3 23560500.028 23560499.858 23560499.060
+ 26.800 22.600
+ -11730349.588 7 -9140526.361 7 21135657.713 21135657.137 21135656.548
+ 45.500 43.400
+ -22386114.865 7 -17443719.402 8 20461967.833 20461966.597 20461967.364
+ 47.400 49.600
+ -3022704.376 3 -2355370.874 2 24191298.643 24191301.135 24191297.824
+ 21.600 17.800
+ -23152705.167 7 -18041069.345 7 20527578.227 20527575.888 20527577.071
+ 43.400 44.400
+ -9918534.022 6 -7728723.223 4 22596790.272 22596788.778 22596789.634
+ 37.900 28.800
+ -20427062.847 7 -15917178.418 7 20546579.325 20546579.320 20546578.434
+ 44.800 42.400
+ 06 1 2 17 57 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10277613.898 6 -8008523.211 4 22729502.264 22729502.006 22729501.128
+ 36.300 25.900
+ -8050170.844 4 -6272850.616 4 22908832.332 22908833.796 22908831.898
+ 29.200 26.500
+ -3694704.770 4 -2878988.277 3 23550571.860 23550572.190 23550570.921
+ 27.400 22.600
+ -11773311.118 7 -9174002.858 7 21127482.279 21127481.777 21127481.004
+ 45.100 43.500
+ -22411440.408 7 -17463453.581 8 20457148.441 20457147.260 20457147.862
+ 47.400 49.600
+ -2905336.060 3 -2263915.171 3 24213633.467 24213635.569 24213631.729
+ 19.900 19.300
+ -23116432.633 7 -18012805.034 7 20534480.422 20534478.277 20534479.307
+ 43.400 44.400
+ -9828957.978 6 -7658923.724 4 22613835.654 22613834.547 22613835.024
+ 36.800 29.000
+ -20462866.390 7 -15945077.255 7 20539766.006 20539766.179 20539765.201
+ 44.900 42.500
+ 06 1 2 17 58 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10329660.952 6 -8049079.290 4 22719598.306 22719597.448 22719597.070
+ 36.700 27.100
+ -8156056.420 4 -6355358.778 4 22888682.925 22888684.065 22888682.384
+ 28.600 27.600
+ -3746301.666 4 -2919193.611 3 23540753.629 23540753.198 23540752.491
+ 27.100 23.000
+ -11816047.538 7 -9207303.942 7 21119349.878 21119349.320 21119348.628
+ 45.100 43.500
+ -22436448.020 7 -17482940.019 8 20452389.805 20452388.519 20452389.181
+ 47.500 49.700
+ -2787928.020 3 -2172428.515 2 24235974.568 24235977.610 24235973.308
+ 22.600 15.100
+ -23079678.341 7 -17984165.328 7 20541474.334 20541472.322 20541473.410
+ 43.500 44.200
+ -9739144.355 6 -7588939.107 4 22630927.028 22630925.523 22630926.195
+ 37.700 29.200
+ -20498138.899 7 -15972562.303 7 20533053.938 20533053.992 20533053.098
+ 44.900 42.600
+ 06 1 2 17 58 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10381218.686 6 -8089254.085 4 22709787.380 22709786.804 22709786.019
+ 37.300 25.900
+ -8261696.869 5 -6437675.927 4 22868580.268 22868581.645 22868579.920
+ 30.100 28.400
+ -3797321.051 4 -2958948.976 3 23531044.211 23531044.895 23531043.431
+ 25.900 21.600
+ -11858558.626 7 -9240429.444 7 21111260.449 21111259.792 21111259.195
+ 45.500 43.800
+ -22461137.544 7 -17502178.599 8 20447691.495 20447690.240 20447690.883
+ 47.400 49.800
+ -2670483.161 3 -2080913.081 2 24258322.688 24258326.918 24258322.324
+ 23.000 13.900
+ -23042442.635 7 -17955150.509 7 20548559.893 20548558.042 20548559.101
+ 43.400 44.000
+ -9649095.175 6 -7518770.941 4 22648063.238 22648061.314 22648062.421
+ 38.400 29.200
+ -20532880.111 7 -15999633.359 7 20526442.948 20526442.879 20526442.083
+ 44.900 42.500
+ 06 1 2 17 59 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10432284.977 6 -8129045.928 4 22700069.713 22700068.977 22700068.430
+ 37.700 26.800
+ -8367089.819 5 -6519800.252 4 22848524.699 22848525.695 22848524.393
+ 31.300 27.100
+ -3847761.556 4 -2998253.241 3 23521445.555 23521446.529 23521444.757
+ 25.600 22.600
+ -11900843.888 7 -9273378.979 7 21103213.688 21103213.174 21103212.546
+ 45.500 43.800
+ -22485508.693 7 -17521169.093 8 20443053.891 20443052.556 20443053.269
+ 47.500 49.900
+ -2553003.912 3 -1989370.921 2 24280680.137 24280682.144 24280678.988
+ 23.000 15.100
+ -23004725.819 7 -17925760.795 7 20555737.144 20555735.315 20555736.276
+ 43.400 44.000
+ -9558812.704 6 -7448420.977 4 22665242.751 22665241.674 22665242.041
+ 37.300 28.400
+ -20567089.511 7 -16026290.010 7 20519933.028 20519933.037 20519932.267
+ 44.800 42.400
+ 06 1 2 17 59 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10482857.504 6 -8168453.036 4 22690445.416 22690444.977 22690444.646
+ 37.700 26.500
+ -8472233.323 5 -6601730.216 4 22828516.448 22828517.568 22828516.038
+ 30.200 28.400
+ -3897620.510 4 -3037104.382 3 23511957.551 23511958.016 23511956.700
+ 25.300 22.100
+ -11942902.915 7 -9306152.227 7 21095210.178 21095209.575 21095208.945
+ 45.400 43.800
+ -22509561.625 7 -17539911.631 8 20438476.901 20438475.405 20438476.312
+ 47.700 49.900
+ -2435493.473 4 -1897804.462 3 24303041.142 24303044.273 24303040.493
+ 25.300 18.600
+ -22966527.832 7 -17895996.142 7 20563006.058 20563004.182 20563005.285
+ 43.600 44.000
+ -9468299.283 6 -7377891.062 4 22682467.164 22682465.634 22682466.534
+ 37.700 28.800
+ -20600766.617 7 -16052531.892 7 20513524.681 20513524.582 20513523.720
+ 44.900 42.600
+ 06 1 2 18 0 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10532933.813 6 -8207473.490 4 22680917.043 22680915.589 22680915.327
+ 36.500 26.200
+ -8577125.165 4 -6683464.084 4 22808556.178 22808556.975 22808555.619
+ 29.900 27.400
+ -3946896.502 4 -3075501.280 3 23502581.272 23502581.611 23502580.518
+ 27.600 23.400
+ -11984735.496 7 -9338749.022 7 21087249.632 21087249.052 21087248.424
+ 45.600 43.600
+ -22533295.480 7 -17558405.530 8 20433960.308 20433959.015 20433959.781
+ 47.700 50.000
+ -2317954.965 3 -1806216.120 3 24325408.383 24325411.561 24325407.219
+ 19.900 20.500
+ -22927848.956 7 -17865856.757 7 20570366.193 20570364.557 20570365.493
+ 43.500 43.900
+ -9377556.961 6 -7307182.764 4 22699734.895 22699733.440 22699734.078
+ 36.800 28.600
+ -20633910.957 7 -16078358.620 7 20507217.474 20507217.358 20507216.573
+ 45.000 42.800
+ 06 1 2 18 0 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10582511.847 6 -8246105.672 4 22671481.866 22671481.311 22671480.924
+ 37.500 25.900
+ -8681763.393 5 -6765000.314 4 22788643.349 22788645.182 22788643.288
+ 30.400 27.900
+ -3995588.262 4 -3113442.913 3 23493315.599 23493315.250 23493314.694
+ 27.900 21.600
+ -12026341.113 7 -9371168.964 7 21079332.236 21079331.631 21079331.054
+ 45.500 43.700
+ -22556710.589 7 -17576651.059 8 20429504.602 20429503.213 20429504.040
+ 47.600 49.900
+ -2200391.431 3 -1714608.326 2 24347780.885 24347783.251 24347779.525
+ 22.600 17.800
+ -22888689.454 7 -17835342.860 7 20577818.024 20577816.320 20577817.284
+ 43.400 43.600
+ -9286588.156 6 -7236298.015 4 22717046.092 22717044.427 22717045.212
+ 36.800 29.200
+ -20666522.371 7 -16103770.099 7 20501011.605 20501011.557 20501010.769
+ 44.800 42.700
+ 06 1 2 18 1 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10631589.190 6 -8284347.712 4 22662143.526 22662142.230 22662141.992
+ 37.700 26.200
+ -8786145.823 5 -6846337.221 4 22768780.630 22768781.948 22768780.253
+ 32.000 27.600
+ -4043693.380 4 -3150927.433 3 23484161.361 23484161.855 23484160.361
+ 26.800 23.000
+ -12067719.522 7 -9403411.863 7 21071458.034 21071457.657 21071456.939
+ 45.400 43.900
+ -22579806.487 7 -17594647.857 8 20425109.555 20425108.211 20425108.987
+ 47.700 50.100
+ -2082805.872 3 -1622983.322 2 24370155.359 24370158.750 24370154.757
+ 22.600 17.000
+ -22849049.585 7 -17804454.655 7 20585361.456 20585359.523 20585360.592
+ 43.500 43.500
+ -9195394.982 6 -7165238.425 4 22734399.550 22734397.907 22734398.504
+ 36.200 28.400
+ -20698600.486 7 -16128766.005 7 20494907.391 20494907.260 20494906.473
+ 44.900 42.900
+ 06 1 2 18 1 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10680163.629 6 -8322197.897 4 22652899.274 22652898.706 22652898.312
+ 37.200 25.900
+ -8890270.549 5 -6927473.338 4 22748965.822 22748967.249 22748965.617
+ 30.200 25.900
+ -4091210.683 4 -3187953.895 4 23475118.727 23475119.289 23475118.053
+ 26.800 24.600
+ -12108870.411 7 -9435477.472 7 21063627.452 21063626.951 21063626.287
+ 45.700 44.000
+ -22602583.104 7 -17612395.858 8 20420775.249 20420773.935 20420774.655
+ 47.600 50.000
+ -1965201.459 3 -1531343.644 2 24392535.210 24392538.099 24392534.463
+ 21.100 16.100
+ -22808929.575 7 -17773192.309 7 20592995.874 20592994.079 20592995.150
+ 43.400 43.400
+ -9103979.522 5 -7094005.630 4 22751794.822 22751793.797 22751794.219
+ 35.700 28.800
+ -20730144.938 7 -16153346.077 7 20488904.501 20488904.558 20488903.650
+ 44.700 42.900
+ 06 1 2 18 2 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10728232.849 6 -8359654.405 4 22643752.616 22643751.549 22643750.943
+ 36.800 27.100
+ -8994135.254 5 -7008406.825 4 22729200.843 22729202.422 22729200.806
+ 30.100 26.800
+ -4138138.838 4 -3224521.257 4 23466189.074 23466189.772 23466188.099
+ 27.600 27.400
+ -12149793.325 7 -9467365.442 7 21055840.175 21055839.530 21055838.965
+ 45.700 44.000
+ -22625039.985 7 -17629894.717 8 20416501.868 20416500.432 20416501.298
+ 47.700 49.900
+ -1847581.276 3 -1439691.715 2 24414918.799 24414920.661 24414917.413
+ 19.900 12.600
+ -22768329.480 7 -17741555.868 7 20600722.007 20600719.987 20600721.094
+ 43.500 43.300
+ -9012343.896 5 -7022601.286 4 22769232.904 22769231.756 22769232.036
+ 35.700 29.200
+ -20761155.604 7 -16177510.204 7 20483003.485 20483003.443 20483002.587
+ 44.900 42.900
+ 06 1 2 18 2 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10775794.749 6 -8396715.587 4 22634701.078 22634701.013 22634700.280
+ 37.400 27.100
+ -9097738.148 5 -7089136.298 4 22709486.931 22709487.671 22709486.250
+ 32.400 29.000
+ -4184476.307 4 -3260628.346 4 23457371.048 23457371.539 23457370.236
+ 24.900 25.900
+ -12190487.846 7 -9499075.446 7 21048096.164 21048095.598 21048095.012
+ 45.600 44.100
+ -22647176.945 7 -17647144.286 8 20412289.375 20412287.891 20412288.746
+ 47.700 50.000
+ -1729948.039 3 -1348029.555 2 24437304.425 24437305.817 24437302.893
+ 22.600 17.800
+ -22727249.817 7 -17709545.739 7 20608539.052 20608537.251 20608538.162
+ 43.600 43.200
+ -8920490.777 5 -6951027.452 4 22786711.589 22786710.543 22786710.955
+ 35.800 29.000
+ -20791632.102 7 -16201258.107 7 20477203.796 20477203.906 20477202.956
+ 44.700 43.000
+ 06 1 2 18 3 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10822846.871 6 -8433379.543 4 22625748.387 22625747.131 22625746.821
+ 37.700 27.100
+ -9201077.133 5 -7169660.126 4 22689821.896 22689822.879 22689821.537
+ 33.200 29.900
+ -4230221.209 4 -3296273.681 4 23448666.196 23448666.841 23448665.443
+ 28.800 27.900
+ -12230953.874 7 -9530607.403 7 21040395.784 21040395.086 21040394.610
+ 45.600 44.000
+ -22668993.800 7 -17664144.421 8 20408137.628 20408136.380 20408137.058
+ 47.500 50.100
+ -1612304.640 3 -1256359.564 3 24459689.937 24459692.951 24459688.643
+ 21.600 18.600
+ -22685691.026 7 -17677162.284 7 20616447.484 20616445.685 20616446.621
+ 43.500 43.000
+ -8828422.443 6 -6879285.948 4 22804231.787 22804230.952 22804231.024
+ 36.200 29.000
+ -20821574.351 7 -16224589.703 7 20471506.123 20471506.083 20471505.282
+ 45.000 42.900
+ 06 1 2 18 3 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10869387.368 6 -8469644.839 4 22616891.132 22616890.479 22616890.033
+ 37.600 27.400
+ -9304150.092 5 -7249976.626 5 22670207.592 22670208.875 22670207.329
+ 32.800 30.100
+ -4275371.719 4 -3331455.872 4 23440074.632 23440074.722 23440073.760
+ 29.200 26.200
+ -12271190.780 7 -9561960.828 7 21032738.653 21032738.273 21032737.563
+ 45.500 44.300
+ -22690490.441 7 -17680895.042 8 20404047.107 20404045.696 20404046.469
+ 47.500 50.200
+ -1494654.774 3 -1164684.464 2 24482078.353 24482080.502 24482076.946
+ 22.600 13.900
+ -22643653.025 7 -17644405.412 7 20624446.903 20624445.151 20624446.081
+ 43.700 43.100
+ -8736140.869 6 -6807378.260 4 22821793.114 22821791.063 22821792.033
+ 36.000 27.100
+ -20850981.769 7 -16247504.556 7 20465910.077 20465909.968 20465909.295
+ 45.200 43.000
+ 06 1 2 18 4 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10915414.136 6 -8505509.831 4 22608132.548 22608131.761 22608131.400
+ 37.500 27.100
+ -9406955.067 5 -7330084.318 4 22650644.468 22650645.120 22650643.925
+ 31.300 29.500
+ -4319926.687 4 -3366173.981 4 23431595.898 23431596.461 23431595.183
+ 28.800 27.600
+ -12311198.248 7 -9593135.472 7 21025125.638 21025125.189 21025124.453
+ 45.600 44.400
+ -22711666.699 7 -17697396.017 8 20400017.209 20400015.916 20400016.704
+ 47.500 50.200
+ -1377000.943 3 -1073006.296 1 24504466.816 24504469.637 24504466.002
+ 22.600 11.000
+ -22601136.266 7 -17611275.468 7 20632537.873 20632535.813 20632536.924
+ 43.800 43.100
+ -8643647.949 6 -6735305.901 4 22839392.794 22839392.247 22839392.429
+ 36.200 27.400
+ -20879854.256 7 -16270002.571 7 20460416.101 20460415.652 20460415.084
+ 45.000 43.100
+ 06 1 2 18 4 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -10960924.739 6 -8540972.607 4 22599471.925 22599471.499 22599470.777
+ 37.200 26.200
+ -9509490.102 5 -7409981.654 4 22631132.560 22631133.576 22631132.024
+ 31.100 29.500
+ -4363884.493 5 -3400426.770 4 23423231.107 23423231.169 23423230.422
+ 30.200 26.500
+ -12350976.008 7 -9624131.120 7 21017556.043 21017555.749 21017554.969
+ 45.500 44.300
+ -22732522.348 7 -17713647.164 8 20396048.658 20396047.364 20396047.967
+ 47.300 50.400
+ -1259345.914 3 -981327.203 2 24526857.066 24526858.889 24526855.786
+ 22.600 13.900
+ -22558141.295 7 -17577772.897 7 20640719.894 20640717.586 20640718.774
+ 44.000 43.000
+ -8550946.182 6 -6663070.794 4 22857033.997 22857032.844 22857033.339
+ 36.200 28.400
+ -20908191.347 7 -16292083.408 7 20455023.376 20455023.233 20455022.449
+ 44.800 43.000
+ 06 1 2 18 5 0.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -11005916.937 6 -8576031.436 4 22590910.328 22590909.910 22590909.180
+ 37.500 26.800
+ -9611752.973 5 -7489666.916 4 22611672.324 22611673.447 22611672.035
+ 32.100 29.000
+ -4407243.645 4 -3434213.069 4 23414979.908 23414980.233 23414979.011
+ 29.500 26.800
+ -12390523.659 7 -9654947.464 7 21010030.531 21010030.017 21010029.365
+ 45.600 44.500
+ -22753056.960 7 -17729648.152 8 20392140.772 20392139.790 20392140.246
+ 47.400 50.300
+ -1141692.696 3 -889649.505 2 24549245.391 24549247.027 24549243.970
+ 19.900 12.600
+ -22514668.422 7 -17543897.925 7 20648992.291 20648990.286 20648991.357
+ 44.100 43.100
+ -8458037.391 6 -6590674.375 4 22874713.759 22874713.186 22874713.008
+ 36.000 28.600
+ -20935993.136 7 -16313747.114 7 20449732.707 20449732.776 20449731.915
+ 44.700 43.200
+ 06 1 2 18 5 30.0000000 0 9G20G 4G 9G 7G17G 8G28G11G24
+ -11050389.023 6 -8610684.973 4 22582447.392 22582447.137 22582446.234
+ 37.600 27.600
+ -9713741.807 5 -7569138.655 4 22592264.883 22592265.576 22592264.337
+ 31.800 29.000
+ -4450002.918 4 -3467531.978 4 23406842.899 23406842.753 23406842.125
+ 29.200 24.900
+ -12429840.804 7 -9685584.194 7 21002548.466 21002548.148 21002547.334
+ 45.400 44.500
+ -22773270.542 7 -17745398.987 8 20388294.290 20388293.042 20388293.775
+ 47.400 50.300
+ -1024044.271 3 -797975.547 2 24571632.281 24571635.016 24571631.420
+ 19.300 13.900
+ -22470718.076 7 -17509650.892 7 20657355.907 20657353.729 20657354.809
+ 44.000 43.000
+ -8364924.083 5 -6518118.595 4 22892432.854 22892431.426 22892432.034
+ 35.700 26.800
+ -20963259.497 7 -16334993.614 7 20444544.307 20444544.196 20444543.387
+ 44.900 43.400
+ 06 1 2 18 6 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11094338.739 6 -8644931.463 4 22574084.580 22574083.672 22574083.343
+ 38.300 27.100
+ -9815454.609 5 -7648395.281 4 22572909.237 22572910.216 22572908.888
+ 31.600 28.800
+ -4492160.587 5 -3500382.093 4 23398820.797 23398820.914 23398820.056
+ 31.000 24.900
+ -12468927.055 7 -9716041.007 7 20995110.899 20995110.349 20995109.770
+ 45.600 44.600
+ -22793162.696 7 -17760899.360 8 20384508.992 20384507.744 20384508.445
+ 47.500 50.400
+ -22426290.544 7 -17475032.033 7 20665809.897 20665807.954 20665808.929
+ 43.800 43.100
+ -8271608.397 6 -6445405.103 4 22910190.717 22910188.950 22910189.843
+ 36.100 26.500
+ -20989990.330 7 -16355822.815 7 20439457.415 20439457.466 20439456.573
+ 44.700 43.300
+ 06 1 2 18 6 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11137763.870 6 -8678769.199 4 22565821.380 22565819.901 22565819.848
+ 38.300 27.600
+ -9916889.298 5 -7727435.223 4 22553606.889 22553607.490 22553606.553
+ 33.000 28.800
+ -4533715.151 5 -3532762.252 4 23390913.445 23390913.644 23390912.607
+ 30.600 27.100
+ -12507782.070 7 -9746317.640 7 20987717.000 20987716.468 20987715.828
+ 45.600 44.600
+ -22812733.103 7 -17776149.019 8 20380784.796 20380783.703 20380784.266
+ 47.400 50.500
+ -22381386.348 7 -17440041.764 7 20674355.090 20674353.134 20674353.907
+ 43.500 43.100
+ -8178092.501 5 -6372535.604 4 22927985.831 22927984.107 22927984.920
+ 34.900 27.100
+ -21016185.364 7 -16376234.516 7 20434472.811 20434472.681 20434471.904
+ 44.800 43.400
+ 06 1 2 18 7 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11180662.417 6 -8712196.599 4 22557657.514 22557656.842 22557656.399
+ 38.400 27.900
+ -10018044.116 5 -7806257.090 4 22534357.814 22534358.491 22534357.511
+ 33.900 29.500
+ -4574665.574 5 -3564671.663 4 23383120.774 23383120.422 23383119.999
+ 30.100 26.500
+ -12546405.414 7 -9776413.742 7 20980367.075 20980366.744 20980365.886
+ 45.400 44.600
+ -22831981.697 7 -17791147.922 8 20377122.130 20377120.717 20377121.567
+ 47.600 50.500
+ -22336005.935 7 -17404680.433 7 20682990.842 20682988.715 20682989.652
+ 43.700 42.900
+ -8084378.470 5 -6299511.717 4 22945818.826 22945817.633 22945818.318
+ 34.900 26.800
+ -21041844.359 7 -16396228.519 7 20429590.031 20429589.885 20429589.111
+ 44.600 43.100
+ 06 1 2 18 7 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11223032.593 6 -8745212.294 4 22549594.996 22549594.233 22549593.709
+ 38.700 29.000
+ -10118916.903 5 -7884859.189 5 22515162.262 22515163.281 22515161.855
+ 33.200 30.800
+ -4615010.728 4 -3596109.423 4 23375443.162 23375443.335 23375442.204
+ 29.200 26.500
+ -12584796.755 7 -9806329.060 7 20973061.237 20973060.950 20973060.134
+ 45.300 44.500
+ -22850908.282 7 -17805895.904 8 20373520.548 20373519.083 20373519.961
+ 47.700 50.500
+ -22290149.541 7 -17368948.196 7 20691716.740 20691714.810 20691715.664
+ 43.900 42.600
+ -7990468.485 5 -6226335.146 4 22963688.756 22963688.552 22963688.458
+ 34.000 28.100
+ -21066967.421 7 -16415804.918 7 20424809.110 20424809.109 20424808.261
+ 44.700 43.300
+ 06 1 2 18 8 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11264872.285 6 -8777814.605 4 22541632.788 22541632.314 22541631.861
+ 39.100 28.600
+ -10219505.514 5 -7963239.840 5 22496020.323 22496021.989 22496019.979
+ 32.700 30.800
+ -4654748.960 4 -3627074.275 4 23367881.092 23367881.791 23367880.253
+ 27.900 28.100
+ -12622955.770 7 -9836063.352 7 20965800.102 20965799.583 20965798.976
+ 45.500 44.600
+ -22869512.738 7 -17820392.875 8 20369980.238 20369978.839 20369979.629
+ 47.600 50.600
+ -22243817.810 7 -17332845.561 7 20700533.338 20700531.438 20700532.286
+ 43.900 42.600
+ -7896364.690 5 -6153007.575 4 22981596.845 22981595.779 22981596.115
+ 34.600 27.600
+ -21091554.556 7 -16434963.711 7 20420130.561 20420130.192 20420129.574
+ 44.700 43.200
+ 06 1 2 18 8 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11306179.360 6 -8810001.900 4 22533773.018 22533771.826 22533771.530
+ 38.900 28.400
+ -10319808.235 5 -8041397.712 4 22476933.298 22476934.947 22476933.117
+ 33.200 29.900
+ -4693878.983 4 -3657565.181 4 23360434.604 23360435.005 23360433.831
+ 28.600 26.800
+ -12660882.001 7 -9865616.245 7 20958583.074 20958582.606 20958581.804
+ 45.400 44.900
+ -22887794.793 7 -17834638.630 8 20366501.162 20366499.903 20366500.532
+ 47.500 50.600
+ -22197010.964 7 -17296372.706 7 20709440.441 20709438.616 20709439.438
+ 44.000 42.500
+ -7802069.169 5 -6079530.568 4 22999540.681 22999539.538 22999539.969
+ 33.800 27.600
+ -21115605.468 7 -16453704.667 7 20415553.434 20415553.473 20415552.716
+ 44.800 43.200
+ 06 1 2 18 9 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11346952.092 6 -8841772.817 4 22526013.295 22526012.967 22526012.145
+ 38.400 28.600
+ -10419822.924 5 -8119331.147 4 22457901.553 22457902.436 22457901.185
+ 34.400 29.900
+ -4732399.671 4 -3687581.293 4 23353104.407 23353104.918 23353103.609
+ 28.100 27.400
+ -12698575.075 7 -9894987.457 7 20951410.074 20951409.684 20951408.877
+ 45.300 44.800
+ -22905754.200 7 -17848632.967 8 20363083.445 20363082.334 20363082.891
+ 47.500 50.700
+ -22149729.779 7 -17259530.228 7 20718437.469 20718436.060 20718436.707
+ 44.200 42.600
+ -7707584.266 5 -6005906.012 4 23017520.801 23017519.671 23017520.066
+ 34.300 27.400
+ -21139120.440 7 -16472028.009 7 20411079.120 20411078.728 20411078.176
+ 44.900 43.200
+ 06 1 2 18 9 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11387188.209 6 -8873125.607 4 22518356.653 22518356.201 22518355.514
+ 38.500 28.400
+ -10519547.833 5 -8197038.796 4 22438924.722 22438925.165 22438924.128
+ 33.500 29.700
+ -4770309.451 4 -3717121.367 4 23345890.517 23345890.873 23345889.624
+ 27.900 27.100
+ -12736034.576 7 -9924176.659 7 20944281.867 20944281.349 20944280.759
+ 45.400 44.700
+ -22923390.599 7 -17862375.612 8 20359727.519 20359726.262 20359726.975
+ 47.600 50.800
+ -22101974.728 7 -17222318.508 7 20727525.030 20727523.441 20727524.221
+ 44.100 42.500
+ -7612912.175 5 -5932135.576 4 23035536.661 23035535.014 23035535.824
+ 34.900 26.800
+ -21162099.462 7 -16489933.730 7 20406706.348 20406706.002 20406705.455
+ 44.800 43.400
+ 06 1 2 18 10 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11426885.992 6 -8904058.912 4 22510802.175 22510801.667 22510801.296
+ 38.800 27.600
+ -10618980.772 5 -8274518.920 5 22420002.856 22420003.770 22420002.349
+ 33.400 31.000
+ -4807607.194 4 -3746184.518 4 23338793.318 23338793.572 23338792.373
+ 28.400 27.600
+ -12773260.047 7 -9953183.510 7 20937198.214 20937197.572 20937197.001
+ 45.500 44.900
+ -22940704.093 7 -17875866.644 8 20356432.909 20356431.525 20356432.365
+ 47.700 50.800
+ -22053746.348 7 -17184737.952 7 20736702.466 20736700.916 20736701.781
+ 44.300 42.100
+ -7518054.864 5 -5858220.846 4 23053587.453 23053585.384 23053586.660
+ 35.100 25.600
+ -21184541.908 7 -16507421.331 7 20402435.586 20402435.352 20402434.706
+ 44.800 43.400
+ 06 1 2 18 10 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11466043.748 6 -8934571.434 4 22503351.144 22503350.114 22503349.935
+ 39.100 28.100
+ -10718119.985 5 -8351770.156 5 22401137.431 22401137.854 22401137.081
+ 34.100 30.800
+ -4844291.787 4 -3774769.906 4 23331812.228 23331812.231 23331811.175
+ 28.100 26.500
+ -12810251.289 7 -9982007.837 7 20930158.696 20930158.353 20930157.627
+ 45.600 44.800
+ -22957694.284 7 -17889105.751 8 20353199.572 20353198.355 20353199.089
+ 47.600 50.800
+ -22005044.972 7 -17146788.839 7 20745970.108 20745968.452 20745969.359
+ 44.100 42.000
+ -7423014.349 5 -5784163.332 4 23071672.997 23071670.912 23071672.182
+ 34.800 25.300
+ -21206448.498 7 -16524491.390 7 20398266.865 20398266.667 20398265.959
+ 44.700 43.400
+ 06 1 2 18 11 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11504659.327 6 -8964661.454 4 22496002.572 22496001.959 22496001.574
+ 39.100 27.400
+ -10816963.502 5 -8428790.971 5 22382327.854 22382328.693 22382327.506
+ 34.000 32.000
+ -4880362.417 4 -3802876.863 4 23324948.258 23324948.435 23324947.423
+ 28.100 25.600
+ -12847007.699 7 -10010649.185 7 20923164.086 20923163.803 20923163.028
+ 45.500 44.800
+ -22974361.223 7 -17902092.973 8 20350028.078 20350026.794 20350027.491
+ 47.700 50.800
+ -21955871.441 7 -17108471.814 6 20755327.450 20755325.808 20755326.748
+ 44.100 41.800
+ -7327792.794 5 -5709964.761 4 23089792.314 23089791.482 23089791.815
+ 34.800 26.200
+ -21227819.103 7 -16541143.795 7 20394200.253 20394199.989 20394199.299
+ 44.800 43.600
+ 06 1 2 18 11 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11542730.705 6 -8994327.416 4 22488758.503 22488756.975 22488757.086
+ 39.300 28.600
+ -10915509.197 5 -8505579.714 5 22363575.001 22363575.793 22363574.554
+ 33.000 31.100
+ -4915817.046 4 -3830503.832 4 23318201.382 23318201.873 23318200.489
+ 29.000 27.100
+ -12883529.093 7 -10039107.398 7 20916214.446 20916214.040 20916213.303
+ 45.400 44.800
+ -22990704.378 7 -17914827.898 8 20346917.971 20346916.869 20346917.429
+ 47.600 51.000
+ -21906226.174 7 -17069787.200 6 20764774.779 20764772.991 20764773.953
+ 44.300 41.500
+ -7232392.507 5 -5635626.912 4 23107946.860 23107945.717 23107946.315
+ 34.800 26.800
+ -21248653.726 7 -16557378.553 7 20390235.525 20390235.242 20390234.559
+ 44.800 43.600
+ 06 1 2 18 12 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11580256.505 6 -9023568.250 4 22481616.990 22481616.120 22481616.021
+ 39.700 28.400
+ -11013755.235 5 -8582134.953 5 22344879.629 22344880.224 22344879.059
+ 34.000 31.300
+ -4950655.378 5 -3857650.571 4 23311572.172 23311572.532 23311571.595
+ 30.800 27.400
+ -12919814.888 7 -10067382.033 7 20909309.320 20909309.150 20909308.294
+ 45.400 45.000
+ -23006723.571 7 -17927310.384 8 20343869.794 20343868.561 20343869.181
+ 47.700 51.000
+ -21856110.026 7 -17030735.668 6 20774311.231 20774309.891 20774310.634
+ 44.400 41.800
+ -7136815.357 5 -5561151.262 4 23126134.757 23126133.614 23126134.210
+ 35.200 26.800
+ -21268952.480 7 -16573195.752 7 20386372.835 20386372.504 20386371.900
+ 44.800 43.700
+ 06 1 2 18 12 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11617234.499 6 -9052382.229 4 22474580.270 22474579.501 22474578.960
+ 39.300 28.100
+ -11111699.906 5 -8658455.375 5 22326241.130 22326241.381 22326240.762
+ 34.900 30.400
+ -4984876.119 4 -3884316.069 4 23305059.713 23305060.078 23305058.779
+ 29.700 24.900
+ -12955864.864 7 -10095472.912 7 20902449.504 20902448.976 20902448.310
+ 45.500 45.200
+ -23022418.805 7 -17939540.434 8 20340882.848 20340881.868 20340882.391
+ 47.700 51.100
+ -21805523.332 7 -16991317.473 6 20783937.536 20783936.214 20783936.967
+ 44.200 41.600
+ -7041063.540 5 -5486539.499 4 23144355.236 23144354.656 23144354.298
+ 33.000 26.200
+ -21288715.497 7 -16588595.489 7 20382612.171 20382611.717 20382611.229
+ 44.800 43.600
+ 06 1 2 18 13 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11653662.915 6 -9080767.942 4 22467648.105 22467647.217 22467646.967
+ 39.400 28.100
+ -11209340.952 5 -8734539.224 5 22307660.736 22307660.918 22307660.101
+ 34.800 30.100
+ -5018477.856 5 -3910499.213 4 23298666.016 23298666.183 23298665.216
+ 30.200 24.900
+ -12991678.486 7 -10123379.623 7 20895634.225 20895633.798 20895633.139
+ 45.600 44.900
+ -23037789.890 7 -17951517.900 8 20337957.884 20337956.786 20337957.365
+ 47.600 51.000
+ -21754466.598 7 -16951533.015 6 20793653.605 20793652.029 20793652.757
+ 43.800 41.400
+ -6945139.356 5 -5411793.434 3 23162610.025 23162607.715 23162609.043
+ 33.500 23.400
+ -21307942.808 7 -16603577.793 7 20378953.087 20378952.861 20378952.231
+ 44.800 43.700
+ 06 1 2 18 13 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11689540.031 6 -9108724.088 4 22460820.590 22460819.870 22460819.816
+ 39.800 27.400
+ -11306676.854 5 -8810385.296 4 22289138.038 22289138.183 22289137.571
+ 33.900 29.700
+ -5051459.698 5 -3936199.356 4 23292389.384 23292389.685 23292388.763
+ 30.600 24.900
+ -13027255.378 7 -10151101.866 7 20888864.233 20888863.698 20888863.111
+ 45.600 45.100
+ -23052836.344 7 -17963242.409 8 20335094.779 20335093.470 20335094.259
+ 47.700 51.100
+ -21702940.589 7 -16911382.879 6 20803458.886 20803457.016 20803457.945
+ 44.000 41.400
+ -6849044.564 5 -5336914.414 4 23180895.857 23180894.614 23180894.867
+ 32.700 25.300
+ -21326634.692 7 -16618142.878 7 20375396.252 20375395.849 20375395.269
+ 44.800 43.800
+ 06 1 2 18 14 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11724864.312 6 -9136249.456 4 22454099.163 22454098.022 22454097.634
+ 39.300 28.600
+ -11403705.404 5 -8885991.888 5 22270673.986 22270674.661 22270673.582
+ 34.100 31.000
+ -5083820.892 4 -3961415.862 4 23286231.378 23286231.744 23286230.519
+ 29.200 26.200
+ -13062595.173 7 -10178639.362 7 20882139.385 20882138.803 20882138.255
+ 45.500 45.000
+ -23067558.076 7 -17974713.890 8 20332293.295 20332292.099 20332292.663
+ 47.500 51.100
+ -21650946.049 7 -16870867.672 6 20813353.251 20813351.294 20813352.341
+ 44.300 41.300
+ -6752781.337 5 -5261904.151 4 23199213.758 23199212.808 23199212.869
+ 32.600 25.600
+ -21344791.404 7 -16632290.944 7 20371941.014 20371940.826 20371940.144
+ 44.700 43.800
+ 06 1 2 18 14 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11759633.989 6 -9163342.678 4 22447481.907 22447481.735 22447481.138
+ 39.300 28.400
+ -11500424.932 5 -8961357.676 5 22252268.941 22252269.658 22252268.483
+ 34.800 32.000
+ -5115559.920 5 -3986147.557 4 23280191.607 23280191.620 23280191.004
+ 30.800 24.600
+ -13097697.414 7 -10205991.749 7 20875459.343 20875459.093 20875458.306
+ 45.400 45.200
+ -23081955.018 7 -17985932.283 8 20329553.455 20329552.485 20329552.922
+ 47.400 51.200
+ -21598483.647 7 -16829987.893 6 20823336.480 20823334.599 20823335.597
+ 44.300 41.200
+ -6656352.016 5 -5186764.497 4 23217563.381 23217563.474 23217562.858
+ 33.000 27.100
+ -21362412.902 7 -16646021.969 7 20368587.695 20368587.540 20368586.816
+ 44.700 43.900
+ 06 1 2 18 15 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11793847.090 6 -9190002.189 4 22440972.348 22440971.379 22440970.924
+ 39.900 29.000
+ -11596833.540 5 -9036481.187 5 22233922.812 22233923.951 22233922.573
+ 35.400 33.000
+ -5146676.191 5 -4010394.017 4 23274270.698 23274271.127 23274269.800
+ 30.600 26.800
+ -13132561.740 7 -10233158.748 7 20868825.091 20868824.617 20868823.911
+ 45.300 45.200
+ -23096026.853 7 -17996897.344 8 20326875.812 20326874.598 20326875.144
+ 47.500 51.100
+ -21545553.912 7 -16788743.952 6 20833408.774 20833406.775 20833407.767
+ 44.200 40.900
+ -6559758.426 5 -5111496.824 4 23235944.538 23235944.027 23235943.949
+ 31.500 24.200
+ -21379499.330 7 -16659336.054 7 20365336.202 20365336.026 20365335.300
+ 44.600 43.800
+ 06 1 2 18 15 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11827502.101 6 -9216226.853 4 22434567.831 22434566.815 22434566.465
+ 39.800 28.600
+ -11692929.112 5 -9111360.790 5 22215636.341 22215637.225 22215636.004
+ 34.800 32.100
+ -5177168.624 4 -4034154.317 4 23268467.408 23268468.106 23268466.696
+ 29.000 25.600
+ -13167187.739 7 -10260140.039 7 20862235.977 20862235.406 20862234.823
+ 45.200 45.000
+ -23109773.500 7 -18007609.012 8 20324259.878 20324258.686 20324259.274
+ 47.400 51.200
+ -21492157.689 7 -16747136.527 6 20843570.113 20843567.755 20843568.849
+ 44.000 40.800
+ -6463002.540 5 -5036102.663 4 23254356.930 23254355.825 23254356.584
+ 32.800 26.200
+ -21396051.151 7 -16672233.560 7 20362186.575 20362186.302 20362185.636
+ 44.700 43.900
+ 06 1 2 18 16 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11860597.496 6 -9242015.430 4 22428269.597 22428268.848 22428268.181
+ 39.300 29.000
+ -11788709.999 5 -9185995.199 5 22197410.319 22197410.546 22197409.730
+ 35.200 31.500
+ -5207036.692 5 -4057428.150 4 23262784.577 23262784.584 23262783.759
+ 30.100 27.600
+ -13201575.015 7 -10286935.316 7 20855692.254 20855691.754 20855691.035
+ 45.200 45.200
+ -23123194.664 7 -18018067.063 8 20321706.008 20321704.812 20321705.361
+ 47.500 51.200
+ -21438295.797 7 -16705166.242 6 20853819.313 20853817.359 20853818.209
+ 44.300 40.900
+ -6366086.591 5 -4960583.795 4 23272799.251 23272798.901 23272798.466
+ 32.300 25.300
+ -21412068.585 7 -16684714.664 7 20359138.723 20359138.240 20359137.737
+ 44.600 44.000
+ 06 1 2 18 16 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11893131.304 6 -9267366.429 4 22422078.411 22422077.641 22422077.341
+ 39.700 28.400
+ -11884174.252 5 -9260382.886 5 22179243.582 22179244.287 22179243.163
+ 35.100 31.800
+ -5236279.063 4 -4080214.363 4 23257219.242 23257219.770 23257218.351
+ 28.800 27.900
+ -13235723.024 7 -10313544.151 7 20849194.001 20849193.747 20849192.851
+ 45.000 45.300
+ -23136290.081 7 -18028271.284 8 20319213.927 20319212.844 20319213.442
+ 47.600 51.200
+ -21383969.001 7 -16662833.678 6 20864157.483 20864155.462 20864156.222
+ 44.100 40.900
+ -6269012.567 5 -4884941.772 4 23291272.040 23291271.237 23291271.356
+ 32.100 24.600
+ -21427551.941 7 -16696779.604 7 20356191.984 20356191.945 20356191.207
+ 44.700 44.000
+ 06 1 2 18 17 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11925101.997 6 -9292278.635 4 22415995.134 22415993.892 22415993.838
+ 39.800 28.800
+ -11979320.089 5 -9334522.450 5 22161137.371 22161138.779 22161137.147
+ 35.200 32.700
+ -5264895.230 4 -4102512.673 4 23251774.329 23251773.864 23251773.517
+ 29.900 25.300
+ -13269631.510 7 -10339966.342 7 20842741.421 20842741.202 20842740.387
+ 45.400 45.400
+ -23149059.616 7 -18038221.565 8 20316784.100 20316782.799 20316783.474
+ 47.600 51.300
+ -21329177.949 7 -16620139.366 6 20874583.799 20874581.715 20874582.698
+ 44.200 40.600
+ -6171782.572 5 -4809178.183 3 23309773.836 23309773.168 23309773.127
+ 31.600 23.400
+ -21442501.392 7 -16708428.512 7 20353347.331 20353347.147 20353346.421
+ 44.700 44.100
+ 06 1 2 18 17 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11956508.140 6 -9316750.924 4 22410018.086 22410017.410 22410017.192
+ 39.700 28.600
+ -12074145.605 5 -9408412.412 5 22143092.675 22143094.083 22143092.557
+ 35.800 32.700
+ -5292883.716 4 -4124321.873 4 23246447.967 23246447.404 23246447.199
+ 28.800 25.900
+ -13303299.932 7 -10366201.473 7 20836334.748 20836334.165 20836333.664
+ 45.400 45.300
+ -23161503.279 7 -18047917.922 8 20314416.059 20314414.857 20314415.512
+ 47.400 51.200
+ -21273923.133 7 -16577083.694 6 20885098.318 20885096.528 20885097.299
+ 44.000 40.600
+ -6074398.442 5 -4733294.497 3 23328306.866 23328305.254 23328306.022
+ 33.800 23.800
+ -21456917.047 7 -16719661.480 7 20350604.122 20350603.950 20350603.161
+ 44.500 44.000
+ 06 1 2 18 18 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -11987348.354 6 -9340782.232 4 22404149.959 22404148.595 22404148.451
+ 39.500 28.400
+ -12168649.084 5 -9482051.429 5 22125109.596 22125110.319 22125109.111
+ 35.700 32.300
+ -5320244.422 4 -4145641.871 4 23241240.842 23241241.630 23241240.185
+ 28.800 24.900
+ -13336727.928 7 -10392249.260 7 20829973.712 20829973.067 20829972.590
+ 45.600 45.400
+ -23173620.620 7 -18057360.003 8 20312110.238 20312109.031 20312109.667
+ 47.700 51.300
+ -21218205.671 7 -16533667.524 6 20895700.930 20895699.180 20895700.008
+ 44.100 40.500
+ -5976862.691 5 -4657292.643 4 23346866.706 23346865.256 23346865.869
+ 32.100 24.900
+ -21470799.485 7 -16730478.947 7 20347962.249 20347962.171 20347961.435
+ 44.700 44.100
+ 06 1 2 18 18 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12017620.738 6 -9364371.069 4 22398388.730 22398388.154 22398387.656
+ 39.700 28.400
+ -12262828.407 6 -9555437.876 5 22107188.018 22107188.445 22107187.519
+ 36.000 33.000
+ -5346976.366 4 -4166471.937 4 23236154.552 23236154.400 23236153.594
+ 29.200 26.200
+ -13369915.025 7 -10418109.332 7 20823658.361 20823657.740 20823657.224
+ 45.500 45.400
+ -23185411.456 7 -18066547.667 8 20309866.423 20309865.286 20309865.867
+ 47.600 51.100
+ -21162026.309 7 -16489891.423 6 20906391.474 20906389.906 20906390.611
+ 44.100 40.600
+ -5879176.986 5 -4581173.960 4 23365455.564 23365454.730 23365454.642
+ 31.500 25.600
+ -21484148.978 7 -16740881.140 7 20345422.022 20345421.811 20345421.174
+ 44.700 44.100
+ 06 1 2 18 19 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12047323.745 6 -9387516.241 4 22392736.777 22392735.752 22392735.449
+ 39.800 29.000
+ -12356682.060 6 -9628570.538 5 22089328.425 22089328.844 22089327.939
+ 36.300 33.500
+ -5373078.501 4 -4186811.270 4 23231187.628 23231187.534 23231186.720
+ 29.700 26.200
+ -13402860.904 7 -10443781.438 7 20817388.762 20817388.369 20817387.677
+ 45.300 45.400
+ -23196875.676 7 -18075480.817 8 20307685.087 20307683.660 20307684.385
+ 47.700 51.200
+ -21105385.736 7 -16445755.933 6 20917169.782 20917168.306 20917168.913
+ 44.000 40.200
+ -5781343.175 5 -4504939.867 4 23384073.062 23384072.090 23384071.988
+ 31.600 24.200
+ -21496965.913 7 -16750868.354 7 20342983.115 20342982.832 20342982.080
+ 44.400 44.000
+ 06 1 2 18 19 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12076456.149 6 -9410216.791 4 22387192.787 22387192.069 22387191.722
+ 39.900 29.500
+ -12450208.114 6 -9701447.920 5 22071530.593 22071531.297 22071530.304
+ 36.100 33.200
+ -5398550.604 4 -4206659.653 4 23226340.385 23226340.353 23226339.022
+ 29.900 25.900
+ -13435565.101 7 -10469265.225 7 20811165.437 20811164.927 20811164.324
+ 45.500 45.400
+ -23208013.151 7 -18084159.367 8 20305565.488 20305564.307 20305564.917
+ 47.700 51.200
+ -21048284.799 7 -16401261.728 6 20928035.633 20928034.149 20928034.933
+ 44.100 40.300
+ -5683363.483 5 -4428592.092 4 23402717.652 23402716.999 23402716.922
+ 31.300 24.900
+ -21509250.624 7 -16760440.846 7 20340645.270 20340645.075 20340644.387
+ 44.400 44.100
+ 06 1 2 18 20 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12105016.115 6 -9432471.287 4 22381758.168 22381757.336 22381756.831
+ 40.100 29.200
+ -12543404.756 5 -9774068.622 5 22053795.472 22053796.108 22053795.348
+ 35.500 31.800
+ -5423391.346 4 -4226016.050 4 23221612.487 23221613.108 23221611.720
+ 29.700 25.900
+ -13468027.024 7 -10494560.213 7 20804988.256 20804987.661 20804987.020
+ 45.400 45.500
+ -23218823.719 7 -18092583.178 8 20303508.423 20303507.121 20303507.788
+ 47.800 51.300
+ -20990724.473 7 -16356409.560 6 20938988.822 20938987.461 20938988.316
+ 44.200 40.200
+ -5585239.939 5 -4352132.230 3 23421389.933 23421389.289 23421389.400
+ 32.100 23.800
+ -21521003.471 7 -16769598.903 7 20338408.874 20338408.609 20338407.939
+ 44.500 44.000
+ 06 1 2 18 20 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12133002.511 6 -9454278.854 4 22376432.297 22376431.594 22376431.179
+ 40.200 28.600
+ -12636270.250 6 -9846431.287 5 22036124.103 22036124.410 22036123.746
+ 36.200 32.100
+ -5447600.175 4 -4244880.080 4 23217006.000 23217006.901 23217005.321
+ 27.900 26.800
+ -13500246.408 7 -10519666.222 7 20798856.831 20798856.509 20798855.838
+ 45.500 45.500
+ -23229307.045 7 -18100752.001 8 20301513.534 20301512.200 20301512.875
+ 47.600 51.300
+ -20932705.509 7 -16311200.006 6 20950029.383 20950028.210 20950028.931
+ 44.000 40.100
+ -5486974.453 5 -4275561.758 3 23440089.868 23440088.126 23440089.077
+ 32.000 22.100
+ -21532224.789 7 -16778342.778 7 20336273.292 20336273.268 20336272.428
+ 44.200 44.000
+ 06 1 2 18 21 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12160413.607 6 -9475638.132 4 22371216.220 22371215.326 22371215.104
+ 40.200 29.000
+ -12728802.620 6 -9918534.371 5 22018516.388 22018516.233 22018515.761
+ 36.900 33.500
+ -5471177.203 4 -4263251.759 4 23212520.266 23212519.850 23212519.243
+ 29.500 24.900
+ -13532222.773 7 -10544582.862 7 20792772.025 20792771.577 20792770.889
+ 45.500 45.500
+ -23239462.940 7 -18108665.676 8 20299580.799 20299579.565 20299580.165
+ 47.700 51.300
+ -20874228.898 7 -16265633.824 6 20961157.246 20961155.943 20961156.719
+ 44.200 40.000
+ -5388569.130 5 -4198882.292 3 23458815.155 23458814.013 23458814.357
+ 31.000 23.000
+ -21542915.216 7 -16786672.973 7 20334239.169 20334238.942 20334238.230
+ 44.100 44.100
+ 06 1 2 18 21 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12187248.093 6 -9496548.092 4 22366109.994 22366109.058 22366108.475
+ 39.800 29.700
+ -12821000.266 6 -9990376.623 5 22000972.041 22000971.629 22000971.081
+ 36.300 33.500
+ -5494121.068 4 -4281130.081 4 23208153.463 23208153.662 23208152.652
+ 28.600 25.900
+ -13563955.662 7 -10569309.780 7 20786733.551 20786733.020 20786732.386
+ 45.500 45.600
+ -23249291.302 7 -18116324.136 8 20297710.655 20297709.304 20297710.058
+ 47.800 51.300
+ -20815295.423 7 -16219711.637 6 20972372.188 20972370.751 20972371.454
+ 43.800 40.000
+ -5290025.884 5 -4122095.376 4 23477567.726 23477566.187 23477566.761
+ 30.400 24.600
+ -21553074.930 7 -16794589.625 7 20332305.679 20332305.525 20332304.791
+ 44.100 43.900
+ 06 1 2 18 22 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12213504.715 6 -9517007.799 4 22361113.096 22361112.280 22361112.293
+ 40.600 29.200
+ -12912861.420 6 -10061956.679 5 21983490.575 21983490.806 21983490.107
+ 36.800 33.400
+ -5516431.528 4 -4298514.839 4 23203907.147 23203908.115 23203906.379
+ 26.500 27.400
+ -13595444.712 7 -10593846.696 7 20780741.429 20780740.860 20780740.222
+ 45.500 45.700
+ -23258791.627 7 -18123726.986 8 20295902.686 20295901.518 20295902.114
+ 47.900 51.500
+ -20755906.076 7 -16173434.242 6 20983673.476 20983672.189 20983672.740
+ 44.000 40.100
+ -5191346.910 5 -4045202.702 4 23496344.689 23496344.944 23496344.308
+ 30.200 25.900
+ -21562704.526 7 -16802093.201 7 20330473.200 20330473.005 20330472.285
+ 44.200 44.100
+ 06 1 2 18 22 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12239181.864 6 -9537015.954 4 22356227.542 22356225.980 22356226.112
+ 40.200 28.400
+ -13004384.258 6 -10133273.114 5 21966074.128 21966074.515 21966073.877
+ 37.100 33.900
+ -5538108.085 4 -4315405.626 4 23199782.589 23199783.407 23199781.803
+ 28.400 26.800
+ -13626689.382 7 -10618193.183 7 20774795.614 20774795.170 20774794.444
+ 45.400 45.700
+ -23267964.160 7 -18130874.410 8 20294157.207 20294155.987 20294156.586
+ 47.700 51.400
+ -20696061.903 7 -16126802.441 6 20995061.780 20995060.177 20995060.872
+ 44.100 39.800
+ -5092533.958 4 -3968205.647 4 23515149.276 23515148.250 23515148.397
+ 29.900 25.600
+ -21571804.586 7 -16809184.151 7 20328741.569 20328741.396 20328740.624
+ 44.000 44.100
+ 06 1 2 18 23 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12264278.579 6 -9556571.819 4 22351451.079 22351450.506 22351450.213
+ 40.600 29.200
+ -13095567.243 6 -10204324.721 5 21948722.247 21948723.089 21948722.004
+ 36.600 34.100
+ -5559149.884 4 -4331801.810 4 23195779.153 23195779.539 23195778.099
+ 29.200 28.100
+ -13657689.368 7 -10642349.010 7 20768896.272 20768896.070 20768895.255
+ 45.300 45.700
+ -23276808.526 7 -18137766.122 8 20292474.276 20292472.922 20292473.709
+ 47.900 51.400
+ -20635763.818 7 -16079816.942 6 21006536.279 21006534.305 21006535.315
+ 44.300 39.300
+ -4993589.144 5 -3891105.838 3 23533978.070 23533976.469 23533977.022
+ 30.400 23.000
+ -21580375.673 7 -16815862.910 7 20327110.477 20327110.381 20327109.564
+ 44.100 44.000
+ 06 1 2 18 23 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12288793.334 6 -9575674.231 4 22346787.137 22346785.426 22346785.618
+ 40.700 29.500
+ -13186408.445 6 -10275110.006 5 21931436.179 21931436.627 21931435.809
+ 37.400 34.300
+ -5579556.665 4 -4347703.206 4 23191895.484 23191896.181 23191894.780
+ 28.600 27.600
+ -13688444.158 7 -10666313.774 7 20763044.228 20763043.625 20763042.999
+ 45.300 45.800
+ -23285324.600 7 -18144402.028 8 20290853.789 20290852.421 20290853.106
+ 47.800 51.400
+ -20575012.425 7 -16032478.215 6 21018097.100 21018094.911 21018096.020
+ 44.300 38.900
+ -4894514.378 4 -3813904.766 4 23552831.583 23552830.106 23552830.400
+ 29.900 24.600
+ -21588418.262 7 -16822129.860 7 20325580.144 20325579.916 20325579.250
+ 44.400 44.000
+ 06 1 2 18 24 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12312724.950 6 -9594322.240 4 22342232.653 22342231.554 22342231.340
+ 40.700 29.500
+ -13276906.214 6 -10345627.697 5 21914215.047 21914215.386 21914214.745
+ 37.400 34.100
+ -5599327.756 4 -4363109.215 4 23188133.145 23188133.637 23188132.252
+ 28.600 27.400
+ -13718953.307 7 -10690087.136 7 20757238.437 20757237.965 20757237.270
+ 45.300 45.800
+ -23293512.116 7 -18150781.913 8 20289295.586 20289294.343 20289295.022
+ 47.700 51.500
+ -20513808.767 7 -15984787.066 6 21029743.609 21029741.748 21029742.600
+ 44.300 39.300
+ -4795311.463 5 -3736603.822 3 23571709.711 23571708.003 23571708.518
+ 31.000 23.800
+ -21595932.630 7 -16827985.206 7 20324150.172 20324150.000 20324149.291
+ 44.600 44.400
+ 06 1 2 18 24 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12336071.883 6 -9612514.652 5 22337789.295 22337788.865 22337788.416
+ 40.600 30.400
+ -13367058.789 6 -10415876.403 5 21897059.606 21897059.934 21897059.198
+ 37.500 34.600
+ -5618462.713 4 -4378019.565 4 23184491.954 23184491.714 23184491.255
+ 29.200 25.300
+ -13749216.328 7 -10713668.706 7 20751479.628 20751479.168 20751478.442
+ 45.200 46.000
+ -23301370.932 7 -18156905.671 8 20287799.944 20287798.872 20287799.406
+ 47.500 51.400
+ -20452153.878 7 -15936744.311 6 21041476.506 21041474.349 21041475.272
+ 44.000 39.300
+ -4695982.327 4 -3659204.551 3 23590610.973 23590609.781 23590609.827
+ 29.900 22.100
+ -21602919.530 7 -16833429.537 7 20322820.719 20322820.425 20322819.872
+ 44.500 44.100
+ 06 1 2 18 25 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12358832.983 6 -9630250.561 4 22333458.814 22333457.511 22333457.439
+ 40.700 29.700
+ -13456864.253 6 -10485854.641 5 21879970.179 21879970.416 21879969.629
+ 37.200 34.500
+ -5636961.459 4 -4392434.171 4 23180971.838 23180972.033 23180970.927
+ 29.700 27.400
+ -13779232.750 7 -10737058.121 7 20745767.718 20745767.167 20745766.558
+ 45.400 45.800
+ -23308901.007 7 -18162773.267 8 20286367.153 20286366.015 20286366.492
+ 47.800 51.400
+ -20390049.030 7 -15888350.943 6 21053294.710 21053292.472 21053293.473
+ 44.000 39.300
+ -4596529.018 5 -3581708.517 3 23609535.910 23609535.369 23609535.161
+ 30.600 23.800
+ -21609379.602 7 -16838463.357 7 20321591.412 20321591.112 20321590.489
+ 44.500 44.200
+ 06 1 2 18 25 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12381007.266 6 -9647529.210 5 22329238.675 22329237.775 22329237.499
+ 40.700 30.100
+ -13546321.123 6 -10555561.244 5 21862947.250 21862947.183 21862946.754
+ 38.100 34.000
+ -5654823.437 5 -4406352.609 4 23177572.957 23177573.556 23177572.293
+ 30.800 27.900
+ -13809002.160 7 -10760255.062 7 20740102.538 20740102.188 20740101.417
+ 45.200 45.900
+ -23316102.053 8 -18168384.479 8 20284996.893 20284995.649 20284996.375
+ 48.000 51.500
+ -20327495.100 7 -15839607.635 6 21065198.347 21065196.187 21065197.200
+ 44.000 39.100
+ -4496953.388 4 -3504117.168 3 23628484.104 23628483.535 23628483.298
+ 29.200 22.100
+ -21615313.431 7 -16843087.117 7 20320462.237 20320461.961 20320461.333
+ 44.600 44.200
+ 06 1 2 18 26 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12402593.368 6 -9664349.534 4 22325130.795 22325130.106 22325129.642
+ 40.400 29.900
+ -13635427.576 6 -10624994.814 5 21845990.772 21845990.444 21845990.197
+ 38.200 34.300
+ -5672048.161 5 -4419774.439 4 23174295.301 23174295.277 23174294.606
+ 31.300 27.100
+ -13838524.112 7 -10783259.174 7 20734484.734 20734484.328 20734483.563
+ 44.900 45.900
+ -23322973.866 8 -18173739.142 8 20283689.392 20283688.006 20283688.788
+ 48.100 51.500
+ -20264493.082 7 -15790515.165 6 21077186.823 21077185.141 21077185.923
+ 43.700 39.200
+ -4397257.489 4 -3426432.100 3 23647456.046 23647455.145 23647454.944
+ 29.900 22.600
+ -21620721.651 7 -16847301.313 7 20319433.006 20319432.787 20319432.134
+ 44.500 44.200
+ 06 1 2 18 26 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12423589.984 6 -9680710.506 4 22321135.028 22321134.535 22321134.127
+ 40.500 29.500
+ -13724182.162 6 -10694154.194 5 21829100.940 21829101.065 21829100.576
+ 37.800 34.700
+ -5688635.454 5 -4432699.590 4 23171138.757 23171139.115 23171137.913
+ 30.200 28.400
+ -13867798.129 7 -10806070.089 7 20728914.116 20728913.663 20728913.000
+ 45.200 45.900
+ -23329516.333 8 -18178837.174 8 20282444.346 20282443.085 20282443.793
+ 48.100 51.400
+ -20201043.865 7 -15741074.234 6 21089260.724 21089259.169 21089259.810
+ 43.700 39.100
+ -4297443.335 4 -3348654.892 3 23666449.610 23666449.535 23666448.984
+ 29.500 23.800
+ -21625604.709 7 -16851106.290 7 20318503.689 20318503.627 20318502.839
+ 44.700 44.300
+ 06 1 2 18 27 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12443996.070 6 -9696611.348 4 22317252.470 22317251.426 22317251.125
+ 40.600 29.500
+ -13812582.971 6 -10763037.893 5 21812278.855 21812279.281 21812278.413
+ 38.200 35.300
+ -5704584.862 5 -4445127.700 4 23168103.853 23168104.345 23168103.006
+ 30.600 29.700
+ -13896823.769 7 -10828687.467 7 20723390.812 20723390.257 20723389.577
+ 45.100 46.100
+ -23335729.105 8 -18183678.299 8 20281261.782 20281260.765 20281261.401
+ 48.100 51.400
+ -20137148.749 7 -15691285.843 6 21101419.217 21101417.897 21101418.487
+ 43.400 38.800
+ -4197512.675 5 -3270786.926 3 23685466.304 23685465.463 23685465.632
+ 30.400 21.100
+ -21629963.423 7 -16854502.689 7 20317674.325 20317674.235 20317673.438
+ 44.400 44.400
+ 06 1 2 18 27 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12463810.655 6 -9712051.258 5 22313481.953 22313481.095 22313480.533
+ 40.800 30.200
+ -13900628.391 6 -10831644.667 5 21795524.420 21795524.526 21795523.900
+ 38.200 34.900
+ -5719896.134 5 -4457058.538 4 23165190.230 23165190.196 23165189.549
+ 32.300 28.600
+ -13925600.586 7 -10851110.952 7 20717914.746 20717914.206 20717913.591
+ 45.300 46.100
+ -23341612.112 8 -18188262.462 8 20280142.632 20280141.206 20280142.013
+ 48.100 51.400
+ -20072808.604 7 -15641150.678 6 21113662.513 21113661.335 21113661.887
+ 43.400 38.600
+ -4097467.410 5 -3192829.602 3 23704505.046 23704503.063 23704504.329
+ 30.800 20.500
+ -21633798.250 7 -16857490.863 7 20316944.815 20316944.436 20316943.822
+ 44.700 44.400
+ 06 1 2 18 28 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12483032.510 6 -9727029.325 4 22309823.563 22309823.027 22309822.664
+ 40.800 29.700
+ -13988316.961 6 -10899973.375 5 21778837.268 21778837.762 21778836.993
+ 37.800 34.400
+ -5734568.888 5 -4468491.845 4 23162398.019 23162398.309 23162397.264
+ 31.300 29.500
+ -13954128.168 7 -10873340.232 7 20712486.263 20712485.535 20712485.154
+ 45.400 46.000
+ -23347165.036 8 -18192589.414 8 20279085.964 20279084.551 20279085.281
+ 48.000 51.300
+ -20008024.689 7 -15590669.718 6 21125990.774 21125989.448 21125989.997
+ 43.400 38.900
+ -3997309.451 4 -3114784.484 3 23723564.095 23723562.831 23723563.373
+ 28.800 20.500
+ -21637110.112 7 -16860071.531 7 20316314.473 20316314.159 20316313.595
+ 44.500 44.300
+ 06 1 2 18 28 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12501660.715 6 -9741544.803 4 22306279.334 22306277.912 22306277.995
+ 41.100 29.500
+ -14075646.749 6 -10968022.509 5 21762219.227 21762219.528 21762218.900
+ 38.500 34.900
+ -5748603.526 5 -4479427.914 4 23159726.983 23159727.588 23159726.114
+ 30.800 28.800
+ -13982405.931 7 -10895374.849 7 20707104.990 20707104.515 20707103.902
+ 45.400 46.100
+ -23352387.829 7 -18196659.118 8 20278091.856 20278090.643 20278091.252
+ 47.900 51.300
+ -19942798.243 7 -15539843.902 6 21138402.847 21138401.641 21138402.181
+ 43.600 38.500
+ -3897040.627 4 -3036652.989 3 23742644.767 23742643.964 23742643.667
+ 27.600 22.100
+ -21639899.465 7 -16862245.053 7 20315783.865 20315783.236 20315782.874
+ 44.600 44.300
+ 06 1 2 18 29 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12519694.165 6 -9755596.841 5 22302847.389 22302846.259 22302846.184
+ 40.900 30.200
+ -14162616.161 6 -11035790.836 5 21745669.535 21745669.742 21745669.253
+ 38.800 34.900
+ -5761998.950 5 -4489865.911 4 23157178.233 23157178.575 23157177.404
+ 31.600 29.500
+ -14010433.379 7 -10917214.413 7 20701771.473 20701771.100 20701770.288
+ 45.100 46.200
+ -23357280.487 8 -18200471.578 8 20277160.956 20277159.553 20277160.412
+ 48.000 51.300
+ -19877130.191 7 -15488674.004 6 21150899.019 21150897.725 21150898.434
+ 43.500 38.100
+ -3796662.899 4 -2958436.618 3 23761745.723 23761745.167 23761745.194
+ 29.500 22.600
+ -21642167.058 7 -16864012.006 7 20315352.060 20315351.781 20315351.256
+ 44.700 44.300
+ 06 1 2 18 29 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12537131.707 6 -9769184.533 4 22299529.105 22299528.112 22299528.002
+ 41.000 29.700
+ -14249223.756 6 -11103277.211 5 21729188.360 21729188.976 21729188.173
+ 38.600 35.700
+ -5774755.838 5 -4499806.314 4 23154750.114 23154750.664 23154749.362
+ 30.200 28.800
+ -14038210.116 7 -10938858.621 7 20696485.798 20696485.330 20696484.694
+ 45.300 46.200
+ -23361842.804 8 -18204026.627 8 20276292.830 20276291.318 20276292.310
+ 48.300 51.200
+ -19811021.744 7 -15437160.958 6 21163479.254 21163477.871 21163478.521
+ 43.600 38.400
+ -3696178.191 4 -2880136.892 3 23780866.970 23780866.217 23780866.169
+ 28.800 18.600
+ -21643913.911 7 -16865373.187 7 20315019.464 20315019.402 20315018.644
+ 44.700 44.200
+ 06 1 2 18 30 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12553972.598 6 -9782307.296 4 22296324.363 22296323.526 22296323.228
+ 40.900 29.900
+ -14335467.735 6 -11170480.253 5 21712777.243 21712777.155 21712776.772
+ 38.900 35.700
+ -5786873.587 5 -4509248.710 4 23152444.252 23152444.820 23152443.533
+ 31.000 29.000
+ -14065735.762 7 -10960307.178 7 20691247.830 20691247.330 20691246.746
+ 45.400 46.100
+ -23366074.529 8 -18207324.073 8 20275487.413 20275486.043 20275486.879
+ 48.100 51.200
+ -19744473.787 7 -15385305.438 6 21176143.500 21176141.429 21176142.342
+ 43.400 38.300
+ -3595588.356 4 -2801755.258 3 23800008.778 23800007.897 23800008.058
+ 28.400 19.300
+ -21645140.635 7 -16866329.069 7 20314786.080 20314785.959 20314785.260
+ 44.600 44.200
+ 06 1 2 18 30 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12570215.680 6 -9794964.250 4 22293233.155 22293232.634 22293232.120
+ 40.700 29.700
+ -14421346.606 6 -11237398.798 5 21696434.818 21696434.834 21696434.279
+ 38.300 35.600
+ -5798351.969 5 -4518192.899 4 23150260.602 23150260.740 23150259.813
+ 31.600 28.800
+ -14093009.746 7 -10981559.639 7 20686057.620 20686057.246 20686056.534
+ 45.300 46.200
+ -23369975.796 8 -18210364.020 8 20274745.116 20274743.706 20274744.506
+ 48.000 51.200
+ -19677487.612 7 -15333108.456 6 21188890.046 21188888.535 21188889.255
+ 43.400 38.000
+ -3494895.230 4 -2723293.105 3 23819170.041 23819169.556 23819169.328
+ 27.900 22.100
+ -21645847.833 7 -16866880.136 7 20314651.772 20314651.346 20314650.891
+ 44.700 44.300
+ 06 1 2 18 31 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12585859.910 6 -9807154.555 4 22290256.274 22290255.495 22290255.081
+ 40.600 29.900
+ -14506858.792 6 -11304031.605 5 21680162.283 21680162.258 21680161.666
+ 38.000 35.400
+ -5809191.254 5 -4526639.092 4 23148197.673 23148197.965 23148196.896
+ 31.100 28.400
+ -14120031.666 7 -11002615.680 7 20680915.760 20680915.227 20680914.630
+ 45.400 46.300
+ -23373545.760 8 -18213145.807 8 20274065.721 20274064.361 20274065.149
+ 48.100 51.300
+ -19610064.596 7 -15280571.086 6 21201720.113 21201718.645 21201719.442
+ 43.400 37.600
+ -3394100.494 4 -2644751.816 3 23838351.052 23838350.161 23838350.263
+ 28.800 23.800
+ -21646036.190 7 -16867026.906 7 20314615.695 20314615.537 20314614.985
+ 44.800 44.300
+ 06 1 2 18 31 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12600904.648 6 -9818877.718 5 22287393.621 22287392.634 22287392.494
+ 41.000 30.100
+ -14592002.463 6 -11370377.264 5 21663960.274 21663959.988 21663959.710
+ 39.100 35.800
+ -5819391.095 5 -4534587.019 4 23146257.053 23146256.703 23146256.324
+ 32.100 28.800
+ -14146800.907 7 -11023474.831 7 20675821.734 20675821.216 20675820.612
+ 45.400 46.400
+ -23376784.600 7 -18215669.577 8 20273449.250 20273448.034 20273448.718
+ 47.900 51.200
+ -19542205.764 7 -15227694.115 6 21214633.694 21214632.055 21214632.830
+ 43.300 38.000
+ -3293206.185 4 -2566132.940 3 23857551.197 23857550.014 23857550.363
+ 29.500 23.000
+ -21645706.719 7 -16866770.173 7 20314678.558 20314678.238 20314677.690
+ 44.600 44.300
+ 06 1 2 18 32 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12615349.101 6 -9830133.131 5 22284644.477 22284644.173 22284643.603
+ 41.000 30.100
+ -14676776.199 6 -11436434.670 5 21647828.214 21647827.867 21647827.596
+ 39.300 35.900
+ -5828951.494 5 -4542036.654 4 23144437.007 23144437.499 23144436.642
+ 32.100 28.400
+ -14173317.177 7 -11044136.860 7 20670775.858 20670775.231 20670774.660
+ 45.400 46.200
+ -23379692.276 8 -18217935.302 8 20272896.097 20272894.730 20272895.597
+ 48.200 51.200
+ -19473912.365 7 -15174478.519 6 21227629.525 21227627.794 21227628.582
+ 43.200 37.700
+ -3192214.052 4 -2487437.796 3 23876767.866 23876767.635 23876767.240
+ 24.600 21.100
+ -21644860.451 7 -16866110.740 7 20314839.711 20314839.355 20314838.760
+ 44.800 44.400
+ 06 1 2 18 32 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12629192.084 6 -9840919.862 5 22282011.056 22282009.782 22282009.510
+ 41.100 30.200
+ -14761178.516 6 -11502202.651 6 21631767.193 21631766.765 21631766.508
+ 39.200 36.200
+ -5837872.643 5 -4548988.207 4 23142739.737 23142740.078 23142738.683
+ 30.600 28.600
+ -14199579.824 7 -11064601.263 7 20665778.390 20665777.626 20665777.205
+ 45.500 46.200
+ -23382268.121 8 -18219942.463 8 20272406.135 20272404.574 20272405.487
+ 48.100 51.400
+ -19405185.568 7 -15120925.210 6 21240707.961 21240706.017 21240706.812
+ 43.000 37.200
+ -3091125.696 4 -2408667.710 2 23896004.679 23896003.531 23896004.087
+ 27.600 17.800
+ -21643497.933 7 -16865049.039 7 20315098.867 20315098.604 20315097.917
+ 44.400 44.400
+ 06 1 2 18 33 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12642432.749 6 -9851237.243 4 22279490.793 22279489.832 22279489.881
+ 41.100 29.200
+ -14845207.648 6 -11567679.841 6 21615776.435 21615776.631 21615776.069
+ 39.700 36.100
+ -5846154.367 5 -4555441.505 4 23141163.918 23141164.090 23141163.156
+ 32.000 28.100
+ -14225588.446 7 -11084867.717 7 20660829.032 20660828.428 20660827.914
+ 45.300 46.400
+ -23384512.566 8 -18221691.383 8 20271978.906 20271977.520 20271978.290
+ 48.000 51.400
+ -19336026.628 7 -15067035.154 6 21253868.576 21253866.500 21253867.425
+ 43.100 37.200
+ -2989943.436 4 -2329824.401 3 23915259.945 23915258.248 23915259.112
+ 29.500 20.500
+ -21641620.242 7 -16863585.907 7 20315456.104 20315455.883 20315455.204
+ 44.600 44.400
+ 06 1 2 18 33 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12655070.409 6 -9861084.755 4 22277086.327 22277085.064 22277085.138
+ 41.000 29.700
+ -14928862.420 6 -11632865.327 6 21599857.468 21599857.517 21599857.045
+ 39.200 36.200
+ -5853796.686 5 -4561396.536 4 23139709.680 23139709.465 23139708.896
+ 32.300 28.600
+ -14251342.543 7 -11104935.838 7 20655928.129 20655927.568 20655926.996
+ 45.200 46.300
+ -23386425.345 8 -18223181.865 8 20271615.018 20271613.562 20271614.370
+ 48.300 51.400
+ -19266436.976 7 -15012809.473 6 21267110.791 21267108.955 21267109.966
+ 43.200 37.100
+ -2888668.995 4 -2250909.269 3 23934531.732 23934530.734 23934531.003
+ 27.400 22.100
+ -21639228.106 7 -16861721.904 7 20315911.346 20315911.126 20315910.471
+ 44.600 44.400
+ 06 1 2 18 34 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12667104.459 6 -9870461.913 5 22274796.549 22274795.231 22274795.036
+ 40.900 30.200
+ -15012140.969 6 -11697757.659 6 21584009.766 21584009.962 21584009.451
+ 39.300 36.300
+ -5860800.289 5 -4566853.887 4 23138376.592 23138377.021 23138375.783
+ 31.100 29.700
+ -14276841.642 7 -11124805.260 7 20651075.794 20651075.105 20651074.694
+ 45.300 46.300
+ -23388006.226 8 -18224413.722 8 20271314.214 20271312.693 20271313.495
+ 48.100 51.400
+ -19196417.563 7 -14958248.929 6 21280435.212 21280433.342 21280434.222
+ 43.000 37.300
+ -2787304.042 4 -2171923.632 3 23953821.342 23953819.889 23953819.890
+ 25.600 21.100
+ -21636322.108 7 -16859457.498 7 20316464.305 20316464.161 20316463.390
+ 44.700 44.300
+ 06 1 2 18 34 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12678534.012 6 -9879368.038 4 22272620.796 22272620.007 22272619.875
+ 41.100 29.900
+ -15095042.010 6 -11762355.833 6 21568234.686 21568234.355 21568234.254
+ 39.900 36.300
+ -5867164.559 5 -4571813.068 4 23137165.640 23137166.153 23137164.697
+ 32.000 29.700
+ -14302085.144 7 -11144475.517 7 20646272.333 20646271.400 20646271.109
+ 45.200 46.200
+ -23389254.849 8 -18225386.675 8 20271076.356 20271075.143 20271075.836
+ 48.100 51.400
+ -19125969.785 7 -14903354.595 6 21293840.692 21293839.070 21293839.894
+ 43.200 36.800
+ -2685850.405 4 -2092868.904 3 23973127.720 23973125.956 23973126.493
+ 28.400 22.600
+ -21632903.638 7 -16856793.754 7 20317114.719 20317114.647 20317113.848
+ 44.600 44.300
+ 06 1 2 18 35 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12689358.138 6 -9887802.402 4 22270561.388 22270560.046 22270560.170
+ 41.000 29.900
+ -15177563.898 6 -11826658.568 6 21552530.965 21552531.080 21552530.529
+ 39.500 36.700
+ -5872890.304 5 -4576274.683 4 23136075.773 23136076.592 23136075.059
+ 31.100 29.200
+ -14327072.762 7 -11163946.377 7 20641517.164 20641516.537 20641515.976
+ 45.200 46.400
+ -23390171.150 8 -18226100.676 8 20270902.159 20270900.795 20270901.571
+ 48.200 51.400
+ -19055095.211 7 -14848127.680 6 21307327.553 21307326.221 21307326.911
+ 42.800 37.100
+ -2584309.775 4 -2013746.356 3 23992448.801 23992448.115 23992448.271
+ 26.200 19.900
+ -21628973.301 7 -16853731.152 7 20317862.825 20317862.533 20317861.946
+ 45.000 44.300
+ 06 1 2 18 35 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12699575.941 6 -9895764.303 5 22268617.355 22268615.660 22268615.938
+ 41.400 30.600
+ -15259705.141 6 -11890664.685 6 21536900.068 21536900.068 21536899.605
+ 39.800 36.500
+ -5877977.432 5 -4580238.680 4 23135108.281 23135108.227 23135107.304
+ 30.800 29.500
+ -14351803.931 7 -11183217.408 7 20636810.814 20636810.343 20636809.742
+ 45.200 46.400
+ -23390754.998 8 -18226555.620 8 20270791.029 20270789.619 20270790.436
+ 48.100 51.400
+ -18983794.808 7 -14792568.958 6 21320895.492 21320894.248 21320894.908
+ 42.900 37.100
+ -2482683.931 4 -1934557.432 3 24011788.327 24011787.028 24011787.636
+ 28.400 21.100
+ -21624532.132 7 -16850270.501 7 20318707.886 20318707.636 20318707.029
+ 44.800 44.300
+ 06 1 2 18 36 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12709187.466 6 -9903253.783 5 22266787.508 22266786.885 22266786.725
+ 41.200 30.600
+ -15341464.228 6 -11954373.039 6 21521341.747 21521341.626 21521341.365
+ 40.300 36.500
+ -5882426.416 4 -4583705.404 4 23134260.784 23134261.848 23134260.284
+ 29.500 29.000
+ -14376278.124 7 -11202288.199 7 20632153.603 20632152.971 20632152.506
+ 45.200 46.400
+ -23391006.210 8 -18226751.369 8 20270743.187 20270741.812 20270742.591
+ 48.200 51.400
+ -18912069.913 7 -14736679.449 6 21334544.136 21334543.123 21334543.720
+ 42.700 36.700
+ -2380974.799 4 -1855303.573 3 24031142.819 24031141.861 24031142.262
+ 27.100 19.300
+ -21619581.101 7 -16846412.552 7 20319649.990 20319649.805 20319649.126
+ 44.700 44.500
+ 06 1 2 18 36 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12718191.626 6 -9910269.997 5 22265074.249 22265073.406 22265073.278
+ 41.200 30.200
+ -15422839.605 6 -12017782.386 6 21505856.515 21505856.547 21505856.063
+ 39.800 37.200
+ -5886236.995 5 -4586674.689 4 23133536.508 23133536.490 23133535.421
+ 30.600 29.200
+ -14400494.907 7 -11221158.407 7 20627545.211 20627544.735 20627544.082
+ 45.100 46.400
+ -23390925.020 8 -18226688.101 8 20270758.524 20270757.292 20270758.039
+ 48.100 51.300
+ -18839922.036 7 -14680460.356 6 21348273.796 21348272.610 21348273.002
+ 42.500 37.100
+ -2279184.046 4 -1775986.172 3 24050512.457 24050512.219 24050511.884
+ 25.600 22.100
+ -21614120.972 7 -16842157.901 7 20320689.123 20320688.845 20320688.210
+ 44.700 44.400
+ 06 1 2 18 37 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12726587.964 6 -9916812.580 4 22263476.858 22263475.562 22263475.562
+ 41.400 29.900
+ -15503829.808 6 -12080891.605 6 21490444.480 21490444.703 21490444.157
+ 40.700 36.900
+ -5889408.991 5 -4589146.362 5 23132932.581 23132933.159 23132931.953
+ 30.800 30.100
+ -14424453.662 7 -11239827.558 7 20622985.942 20622985.677 20622984.786
+ 44.800 46.600
+ -23390510.876 8 -18226365.385 8 20270837.414 20270836.064 20270836.866
+ 48.100 51.300
+ -18767352.179 7 -14623912.452 6 21362083.663 21362082.071 21362082.646
+ 42.300 36.500
+ -2177313.355 4 -1696606.460 3 24069898.536 24069897.776 24069897.537
+ 26.800 20.500
+ -21608152.897 7 -16837507.448 7 20321824.866 20321824.548 20321823.896
+ 44.800 44.500
+ 06 1 2 18 37 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12734375.838 6 -9922881.040 4 22261994.617 22261993.400 22261993.479
+ 41.100 29.900
+ -15584433.515 6 -12143699.654 6 21475106.198 21475106.205 21475105.885
+ 41.000 36.600
+ -5891943.371 5 -4591121.209 5 23132450.054 23132450.862 23132449.228
+ 30.600 30.200
+ -14448154.003 7 -11258295.343 7 20618475.913 20618475.480 20618474.758
+ 44.800 46.500
+ -23389763.576 8 -18225783.068 8 20270979.544 20270978.192 20270978.954
+ 48.000 51.200
+ -18694362.063 7 -14567037.076 6 21375973.735 21375971.778 21375972.380
+ 42.200 36.600
+ -2075364.701 4 -1617166.021 3 24089298.884 24089297.409 24089297.900
+ 28.400 19.300
+ -21601677.793 7 -16832461.897 7 20323056.852 20323056.711 20323055.980
+ 44.700 44.400
+ 06 1 2 18 38 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12741554.359 6 -9928474.676 5 22260628.802 22260627.661 22260627.433
+ 41.100 30.100
+ -15664649.213 6 -12206205.364 6 21459841.387 21459841.668 21459841.094
+ 40.600 37.000
+ -5893840.594 5 -4592599.575 5 23132089.189 23132089.686 23132088.442
+ 31.000 30.100
+ -14471595.354 7 -11276561.327 7 20614015.311 20614014.715 20614014.092
+ 44.900 46.500
+ -23388682.990 7 -18224941.047 8 20271185.044 20271183.851 20271184.503
+ 47.800 51.200
+ -18620953.131 7 -14509835.352 6 21389943.114 21389940.909 21389941.779
+ 42.400 36.300
+ -1973339.807 4 -1537666.097 2 24108712.403 24108712.186 24108711.787
+ 26.200 16.100
+ -21594696.459 7 -16827021.889 7 20324385.143 20324385.185 20324384.324
+ 44.700 44.400
+ 06 1 2 18 38 30.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12748123.319 6 -9933593.334 5 22259378.659 22259377.429 22259377.368
+ 41.200 30.200
+ -15744475.392 6 -12268407.539 6 21444651.125 21444651.187 21444650.778
+ 40.900 37.200
+ -5895101.029 5 -4593581.715 5 23131849.207 23131849.623 23131848.271
+ 30.200 30.200
+ -14494777.266 7 -11294625.144 7 20609603.889 20609603.453 20609602.729
+ 44.900 46.700
+ -23387269.163 7 -18223839.359 8 20271454.076 20271452.936 20271453.491
+ 47.800 51.100
+ -18547126.555 7 -14452308.182 6 21403991.438 21403989.644 21403990.242
+ 42.200 36.200
+ -1871240.148 4 -1458107.966 2 24128142.292 24128141.219 24128141.229
+ 24.600 17.800
+ -21587210.064 7 -16821188.336 7 20325809.703 20325809.767 20325808.895
+ 44.600 44.300
+ 06 1 2 18 39 0.0000000 0 8G20G 4G 9G 7G17G28G11G24
+ -12754082.310 6 -9938236.698 5 22258244.456 22258243.368 22258243.254
+ 41.300 30.600
+ -15823910.647 6 -12330305.098 6 21429534.949 21429534.965 21429534.612
+ 40.500 37.200
+ -5895724.703 5 -4594067.684 5 23131730.318 23131731.378 23131729.650
+ 30.400 30.600
+ -14517699.259 7 -11312486.432 7 20605242.025 20605241.437 20605240.827
+ 45.100 46.700
+ -23385521.833 8 -18222477.794 8 20271786.568 20271785.395 20271786.054
+ 48.100 51.200
+ -18472883.755 7 -14394456.673 6 21418119.142 21418117.601 21418118.222
+ 42.200 36.000
+ -1769067.674 4 -1378493.117 3 24147585.155 24147584.085 24147584.156
+ 26.500 19.900
+ -21579219.983 7 -16814962.300 7 20327330.475 20327330.213 20327329.553
+ 44.700 44.300
+ 06 1 2 18 39 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12759430.534 6 -9942404.137 4 22257226.975 22257225.592 22257225.801
+ 41.300 29.700
+ -15902953.637 6 -12391896.997 6 21414493.452 21414493.396 21414493.123
+ 40.600 36.900
+ -5895712.136 5 -4594057.898 5 23131732.676 23131733.837 23131732.040
+ 31.300 31.500
+ -14540360.792 7 -11330144.765 7 20600929.738 20600928.996 20600928.439
+ 44.800 46.500
+ -235659.101 3 -183629.734 3 24768666.973 24768665.921 24768665.361
+ 22.600 20.500
+ -23383440.616 7 -18220856.065 8 20272182.847 20272181.421 20272182.170
+ 47.900 51.100
+ -18398225.924 7 -14336281.779 5 21432325.644 21432324.554 21432325.009
+ 42.100 35.700
+ -1666823.981 4 -1298822.739 2 24167041.049 24167040.332 24167040.330
+ 25.600 17.000
+ -21570726.947 7 -16808344.347 7 20328946.620 20328946.390 20328945.694
+ 44.800 44.500
+ 06 1 2 18 40 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12764167.416 6 -9946095.204 4 22256325.480 22256324.382 22256324.394
+ 41.400 29.500
+ -15981602.858 6 -12453182.055 6 21399527.279 21399527.238 21399526.889
+ 41.100 37.700
+ -5895063.492 5 -4593552.450 5 23131856.523 23131857.181 23131855.607
+ 31.300 31.300
+ -14562761.309 7 -11347599.703 7 20596666.669 20596666.403 20596665.594
+ 44.800 46.700
+ -345988.259 3 -269600.490 3 24747670.813 24747670.839 24747670.402
+ 21.100 19.900
+ -23381025.614 8 -18218974.242 8 20272642.343 20272640.961 20272641.722
+ 48.000 51.000
+ -18323155.078 7 -14277785.048 6 21446611.336 21446610.056 21446610.701
+ 42.400 36.000
+ -1564511.016 4 -1219098.400 3 24186510.242 24186509.875 24186509.314
+ 25.900 19.300
+ -21561732.147 7 -16801335.409 7 20330658.260 20330658.012 20330657.304
+ 44.800 44.400
+ 06 1 2 18 40 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12768292.711 6 -9949309.710 5 22255540.580 22255539.588 22255539.285
+ 41.300 30.800
+ -16059857.091 6 -12514159.324 6 21384635.449 21384635.863 21384635.334
+ 40.700 37.800
+ -5893779.467 5 -4592551.912 5 23132101.143 23132101.576 23132100.405
+ 32.300 31.300
+ -14584900.409 7 -11364850.939 7 20592454.161 20592453.437 20592452.982
+ 45.000 46.800
+ -456228.684 3 -355502.115 3 24726692.925 24726692.488 24726692.117
+ 21.600 18.600
+ -23378276.581 8 -18216832.134 8 20273165.430 20273164.099 20273164.892
+ 48.100 51.000
+ -18247672.114 7 -14218967.183 6 21460975.163 21460974.092 21460974.524
+ 42.100 36.000
+ -1462130.423 4 -1139321.327 2 24205992.514 24205991.964 24205991.894
+ 25.600 16.100
+ -21552236.615 7 -16793936.295 7 20332465.143 20332464.921 20332464.262
+ 44.700 44.200
+ 06 1 2 18 41 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12771806.116 6 -9952047.416 5 22254871.779 22254871.121 22254870.526
+ 40.900 30.400
+ -16137714.749 6 -12574827.582 6 21369819.973 21369819.758 21369819.571
+ 41.100 37.200
+ -5891861.247 5 -4591057.206 5 23132466.262 23132466.353 23132465.504
+ 32.100 30.800
+ -14606777.496 7 -11381898.014 7 20588291.091 20588290.331 20588289.913
+ 45.000 46.600
+ -566378.546 2 -441333.212 3 24705731.883 24705731.847 24705731.691
+ 17.000 20.500
+ -23375193.641 8 -18214429.838 8 20273752.073 20273750.753 20273751.554
+ 48.100 51.000
+ -18171778.684 6 -14159829.474 5 21475417.129 21475416.216 21475416.533
+ 41.800 35.500
+ -1359683.741 3 -1059492.787 3 24225486.441 24225487.374 24225485.995
+ 21.600 18.600
+ -21542241.477 7 -16786147.874 7 20334367.060 20334366.922 20334366.156
+ 44.600 44.200
+ 06 1 2 18 41 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12774706.965 6 -9954307.811 4 22254319.723 22254318.817 22254318.499
+ 41.100 29.900
+ -16215174.592 6 -12635185.862 6 21355079.937 21355079.559 21355079.457
+ 41.100 37.500
+ -5889308.584 5 -4589068.123 5 23132952.423 23132952.209 23132951.517
+ 32.700 30.400
+ -14628392.057 7 -11398740.521 7 20584177.801 20584177.252 20584176.708
+ 44.700 46.800
+ -676436.380 3 -527092.597 2 24684788.976 24684788.970 24684788.162
+ 20.500 16.100
+ -23371776.621 8 -18211767.222 8 20274402.384 20274400.939 20274401.773
+ 48.000 51.000
+ -18095476.598 6 -14100373.336 5 21489937.678 21489936.057 21489936.563
+ 41.500 35.900
+ -1257172.771 4 -979614.192 3 24244996.069 24244994.966 24244994.880
+ 26.500 20.500
+ -21531747.806 7 -16777970.989 7 20336363.981 20336363.805 20336363.104
+ 44.800 44.300
+ 06 1 2 18 42 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12776995.178 6 -9956090.817 5 22253884.325 22253883.493 22253883.111
+ 41.100 30.400
+ -16292235.350 6 -12695233.163 6 21340415.687 21340415.570 21340415.188
+ 41.200 38.100
+ -5886121.782 4 -4586584.897 5 23133557.896 23133558.376 23133557.059
+ 29.500 30.100
+ -14649743.681 7 -11415378.136 7 20580114.664 20580114.306 20580113.550
+ 44.900 47.000
+ -786400.662 4 -612779.038 3 24663863.289 24663863.126 24663862.675
+ 24.200 20.500
+ -23368025.015 8 -18208843.888 8 20275116.196 20275114.897 20275115.686
+ 48.200 51.000
+ -18018766.776 6 -14040599.482 5 21504534.958 21504533.640 21504533.962
+ 41.700 35.800
+ -1154599.076 4 -899686.676 2 24264514.313 24264513.642 24264513.708
+ 25.300 17.000
+ -21520756.846 7 -16769406.608 7 20338455.737 20338455.373 20338454.744
+ 44.900 44.300
+ 06 1 2 18 42 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12778670.365 6 -9957396.141 5 22253565.594 22253564.881 22253564.215
+ 41.000 30.800
+ -16368895.431 6 -12754968.256 6 21325827.657 21325827.558 21325827.215
+ 41.200 38.100
+ -5882301.909 5 -4583608.406 4 23134285.301 23134285.270 23134284.479
+ 30.600 29.200
+ -14670831.676 7 -11431810.334 7 20576101.667 20576101.352 20576100.507
+ 44.700 47.000
+ -896269.876 4 -698391.477 3 24642956.631 24642956.070 24642955.588
+ 27.100 22.100
+ -23363938.819 8 -18205659.839 8 20275894.109 20275892.505 20275893.405
+ 48.200 51.100
+ -17941650.917 6 -13980509.241 5 21519209.945 21519208.178 21519208.618
+ 41.400 35.600
+ -1051964.321 4 -819711.610 3 24284043.612 24284045.108 24284043.567
+ 24.600 19.300
+ -21509269.397 7 -16760455.353 7 20340641.534 20340641.464 20340640.754
+ 45.100 44.300
+ 06 1 2 18 43 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12779732.154 6 -9958223.491 5 22253363.567 22253362.469 22253362.272
+ 41.100 30.600
+ -16445153.658 6 -12814390.213 6 21311315.990 21311315.959 21311315.648
+ 41.400 38.100
+ -5877849.538 4 -4580139.024 4 23135131.869 23135132.643 23135131.243
+ 29.900 29.900
+ -14691655.754 7 -11448036.878 7 20572139.073 20572138.556 20572137.979
+ 44.700 47.000
+ -1006042.495 4 -783928.588 3 24622067.185 24622066.257 24622066.568
+ 25.900 18.600
+ -23359518.078 8 -18202215.104 8 20276735.174 20276733.689 20276734.586
+ 48.200 51.000
+ -17864130.537 6 -13920103.779 5 21533961.869 21533959.754 21533960.577
+ 41.400 35.100
+ -949270.338 3 -739690.357 3 24303586.654 24303587.011 24303585.633
+ 21.600 19.300
+ -21497286.804 7 -16751118.270 7 20342921.923 20342921.707 20342921.043
+ 45.100 44.300
+ 06 1 2 18 43 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12780180.160 6 -9958572.553 4 22253278.164 22253277.227 22253276.851
+ 41.300 29.900
+ -16521008.648 6 -12873497.957 6 21296881.305 21296881.310 21296880.929
+ 41.400 38.500
+ -5872765.222 5 -4576177.226 4 23136099.409 23136100.124 23136098.710
+ 30.600 29.000
+ -14712215.222 7 -11464057.238 7 20568226.839 20568226.233 20568225.645
+ 44.900 46.900
+ -1115716.871 3 -869389.052 3 24601197.082 24601196.142 24601195.766
+ 23.800 19.900
+ -23354762.594 8 -18198509.529 8 20277640.157 20277638.648 20277639.544
+ 48.300 51.000
+ -17786207.061 6 -13859384.211 5 21548790.077 21548787.990 21548788.891
+ 41.500 34.900
+ -846518.759 3 -659624.282 1 24323139.731 24323139.151 24323138.983
+ 22.100 11.000
+ -21484810.279 7 -16741396.302 7 20345296.130 20345295.819 20345295.198
+ 45.000 44.300
+ 06 1 2 18 44 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12780014.132 6 -9958443.157 5 22253309.977 22253308.863 22253308.650
+ 41.400 30.200
+ -16596459.202 6 -12932290.562 6 21282523.608 21282523.445 21282523.259
+ 41.600 38.400
+ -5867049.718 5 -4571723.604 4 23137187.478 23137188.137 23137186.497
+ 30.400 29.900
+ -14732509.596 7 -11479871.032 7 20564364.724 20564364.375 20564363.587
+ 44.700 47.100
+ -1225291.334 3 -954771.560 3 24580344.087 24580344.978 24580343.905
+ 23.000 20.500
+ -23349672.167 8 -18194542.963 8 20278608.805 20278607.383 20278608.176
+ 48.200 51.100
+ -17707882.391 6 -13798352.033 5 21563695.020 21563692.977 21563693.744
+ 41.400 35.500
+ -743711.075 3 -579514.375 3 24342703.511 24342703.288 24342702.748
+ 23.800 18.600
+ -21471841.008 7 -16731290.382 7 20347763.972 20347763.622 20347763.059
+ 45.000 44.100
+ 06 1 2 18 44 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12779233.982 6 -9957835.230 5 22253458.064 22253457.330 22253457.023
+ 41.400 30.600
+ -16671503.873 6 -12990766.908 6 21268243.230 21268242.571 21268242.752
+ 41.700 37.800
+ -5860703.682 5 -4566778.637 4 23138395.062 23138395.326 23138394.342
+ 30.600 29.200
+ -14752538.397 7 -11495477.884 7 20560553.405 20560552.982 20560552.352
+ 44.800 47.000
+ -1334764.513 4 -1040075.141 3 24559513.032 24559512.731 24559511.775
+ 25.900 23.000
+ -23344246.860 8 -18190315.448 8 20279640.991 20279639.758 20279640.565
+ 48.200 51.000
+ -17629157.685 6 -13737008.148 5 21578675.354 21578673.828 21578674.365
+ 41.300 35.300
+ -640849.156 3 -499362.304 2 24362278.259 24362277.833 24362277.118
+ 23.400 17.000
+ -21458380.200 7 -16720801.438 7 20350325.394 20350325.134 20350324.551
+ 45.000 44.300
+ 06 1 2 18 45 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12777839.605 6 -9956748.675 5 22253723.577 22253722.654 22253722.322
+ 41.300 30.600
+ -16746141.653 7 -13048926.204 6 21254040.072 21254039.886 21254039.671
+ 42.000 38.400
+ -5853727.881 5 -4561342.950 5 23139722.288 23139723.112 23139721.607
+ 31.000 30.100
+ -14772301.061 7 -11510877.362 7 20556792.926 20556792.300 20556791.754
+ 44.800 46.900
+ -1444134.893 4 -1125298.619 3 24538699.681 24538699.778 24538699.467
+ 26.200 22.600
+ -23338486.078 8 -18185826.529 8 20280737.282 20280735.951 20280736.835
+ 48.300 51.000
+ -17550034.735 6 -13675353.940 5 21593731.597 21593730.466 21593730.867
+ 41.200 35.200
+ -537934.485 4 -419169.069 3 24381861.938 24381861.830 24381861.316
+ 25.300 19.900
+ -21444428.754 7 -16709930.179 7 20352980.483 20352980.155 20352979.516
+ 45.100 44.400
+ 06 1 2 18 45 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12775830.729 6 -9955183.308 5 22254105.809 22254104.720 22254104.600
+ 41.400 30.400
+ -16820370.891 6 -13106767.150 6 21239914.608 21239914.392 21239914.205
+ 41.800 38.400
+ -5846123.017 5 -4555417.075 5 23141169.771 23141170.269 23141168.922
+ 31.500 30.100
+ -14791797.053 7 -11526069.041 7 20553082.972 20553082.385 20553081.810
+ 44.700 47.000
+ -1553401.212 3 -1210440.951 3 24517907.577 24517906.921 24517906.421
+ 23.000 22.600
+ -23332389.896 8 -18181076.259 8 20281897.535 20281896.053 20281896.833
+ 48.000 51.000
+ -17470515.124 6 -13613390.635 5 21608863.706 21608862.421 21608862.987
+ 40.900 34.600
+ -434968.834 4 -338936.122 3 24401456.418 24401455.253 24401455.489
+ 25.600 21.600
+ -21429988.229 7 -16698677.816 7 20355728.301 20355728.090 20355727.383
+ 45.000 44.400
+ 06 1 2 18 46 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12773207.074 6 -9953138.874 5 22254604.762 22254604.041 22254603.969
+ 41.400 30.600
+ -16894190.467 7 -13164288.882 6 21225867.211 21225867.055 21225866.863
+ 42.200 38.800
+ -5837889.620 5 -4549001.448 5 23142736.616 23142736.974 23142735.919
+ 32.400 30.200
+ -14811025.981 7 -11541052.616 7 20549423.846 20549423.251 20549422.638
+ 44.600 47.000
+ -1662561.723 3 -1295500.844 3 24497134.585 24497134.051 24497133.718
+ 21.600 23.400
+ -23325958.491 8 -18176064.773 8 20283121.336 20283119.951 20283120.725
+ 48.100 51.000
+ -17390600.020 6 -13551119.154 5 21624071.144 21624069.818 21624070.365
+ 40.800 34.600
+ -331953.565 4 -258664.537 3 24421058.542 24421059.341 24421058.018
+ 25.300 20.500
+ -21415059.835 7 -16687045.293 7 20358568.938 20358568.910 20358568.034
+ 45.000 44.400
+ 06 1 2 18 46 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12769968.569 6 -9950615.355 5 22255221.590 22255220.228 22255220.288
+ 41.600 30.400
+ -16967599.225 7 -13221490.500 6 21211898.232 21211897.911 21211897.858
+ 42.700 39.400
+ -5829028.747 5 -4542096.864 5 23144422.797 23144423.316 23144422.001
+ 32.400 30.400
+ -14829987.147 7 -11555827.546 7 20545815.638 20545814.991 20545814.443
+ 44.800 47.000
+ -1771614.984 3 -1380477.212 4 24476382.556 24476381.805 24476381.113
+ 22.600 24.200
+ -23319191.447 8 -18170791.750 8 20284408.839 20284407.655 20284408.409
+ 48.000 51.000
+ -17310291.341 6 -13488541.002 5 21639353.270 21639352.160 21639352.507
+ 40.700 34.400
+ -228890.536 4 -178355.722 2 24440671.516 24440670.898 24440670.464
+ 24.900 17.800
+ -21399644.652 7 -16675033.454 7 20361502.582 20361502.309 20361501.607
+ 44.900 44.200
+ 06 1 2 18 47 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12766115.108 6 -9947612.657 5 22255954.878 22255953.469 22255953.655
+ 41.600 30.400
+ -17040595.927 7 -13278371.032 6 21198007.271 21198007.104 21198006.863
+ 42.300 39.300
+ -5819540.986 5 -4534703.800 5 23146228.110 23146228.285 23146227.413
+ 32.800 30.200
+ -14848680.076 7 -11570393.464 7 20542258.325 20542257.816 20542257.240
+ 44.700 47.000
+ -1880559.714 4 -1465369.033 3 24455650.928 24455649.644 24455650.137
+ 25.900 19.300
+ -23312088.614 8 -18165257.076 8 20285760.615 20285759.254 20285760.058
+ 48.000 51.000
+ -17229590.666 6 -13425657.393 5 21654710.505 21654708.989 21654709.542
+ 40.500 34.300
+ -125781.271 3 -98010.831 2 24460291.921 24460291.956 24460290.901
+ 23.400 16.100
+ -21383744.213 7 -16662643.491 7 20364528.194 20364528.043 20364527.305
+ 45.000 44.300
+ 06 1 2 18 47 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12761646.706 6 -9944130.774 5 22256805.002 22256803.819 22256803.719
+ 41.600 30.200
+ -17113179.120 7 -13334929.358 6 21184195.134 21184194.683 21184194.735
+ 42.300 38.700
+ -5809427.735 5 -4526823.346 4 23148152.632 23148152.979 23148151.804
+ 33.100 29.900
+ -14867104.228 7 -11584749.940 7 20538752.377 20538751.799 20538751.242
+ 44.700 46.900
+ -1989393.977 4 -1550174.808 2 24434941.255 24434939.097 24434940.031
+ 25.900 17.800
+ -23304649.994 7 -18159460.742 8 20287176.210 20287174.786 20287175.606
+ 47.900 51.000
+ -17148499.721 6 -13362469.683 5 21670141.785 21670140.017 21670140.702
+ 40.200 34.000
+ -22627.168 3 -17631.030 2 24479920.535 24479922.213 24479920.276
+ 23.400 13.900
+ -21367359.780 7 -16649876.388 7 20367645.992 20367645.829 20367645.119
+ 44.900 44.300
+ 06 1 2 18 48 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12756563.349 6 -9940169.707 4 22257771.945 22257770.917 22257770.993
+ 41.300 29.900
+ -17185347.701 7 -13391164.614 6 21170461.974 21170461.502 21170461.501
+ 42.200 39.100
+ -5798689.351 5 -4518455.782 5 23150196.158 23150196.501 23150195.481
+ 33.000 30.600
+ -14885259.204 7 -11598896.669 7 20535297.673 20535297.017 20535296.465
+ 44.800 46.900
+ -2098116.489 3 -1634893.545 3 24414250.248 24414249.677 24414250.043
+ 23.000 19.300
+ -23296875.468 7 -18153402.664 8 20288655.576 20288654.266 20288655.016
+ 47.800 50.900
+ -17067019.800 6 -13298978.884 5 21685647.060 21685645.222 21685645.896
+ 40.400 34.100
+ 80569.967 3 62782.299 1 24499559.733 24499559.301 24499558.939
+ 23.800 11.000
+ -21350492.549 7 -16636733.081 7 20370855.849 20370855.543 20370854.935
+ 45.100 44.300
+ 06 1 2 18 48 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12750865.105 6 -9935729.510 4 22258856.371 22258855.512 22258855.257
+ 41.200 29.700
+ -17257100.462 7 -13447075.850 6 21156807.949 21156807.579 21156807.433
+ 42.400 39.300
+ -5787326.918 5 -4509601.956 5 23152358.120 23152358.703 23152357.464
+ 32.000 30.400
+ -14903144.370 7 -11612833.156 7 20531894.001 20531893.529 20531892.891
+ 44.700 47.000
+ -2206726.073 3 -1719524.233 2 24393583.752 24393581.481 24393582.560
+ 21.100 17.800
+ -23288764.631 7 -18147082.529 8 20290198.651 20290197.676 20290198.283
+ 47.800 50.900
+ -16985152.999 6 -13235186.621 5 21701225.579 21701224.205 21701224.535
+ 40.100 34.000
+ 183808.349 3 143227.825 2 24519204.981 24519204.807 24519204.529
+ 23.400 15.100
+ -21333143.797 7 -16623214.564 7 20374157.154 20374156.930 20374156.259
+ 45.200 44.400
+ 06 1 2 18 49 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12744551.741 6 -9930810.004 5 22260057.916 22260057.005 22260056.653
+ 41.000 30.200
+ -17328436.427 7 -13502662.313 6 21143233.169 21143232.643 21143232.634
+ 42.700 39.300
+ -5775341.389 5 -4500262.597 5 23154638.941 23154639.485 23154638.035
+ 31.100 30.400
+ -14920759.158 7 -11626558.959 7 20528542.258 20528541.538 20528541.076
+ 44.700 47.000
+ -2315220.582 4 -1804065.353 3 24372937.382 24372935.809 24372936.643
+ 25.300 19.300
+ -23280317.614 7 -18140500.431 8 20291806.459 20291805.066 20291805.826
+ 47.600 50.900
+ -16902900.727 6 -13171093.989 5 21716877.585 21716876.388 21716876.659
+ 40.500 34.500
+ 287086.652 3 223704.384 2 24538858.706 24538858.738 24538857.741
+ 23.000 17.000
+ -21315314.648 7 -16609321.712 7 20377549.922 20377549.705 20377549.111
+ 45.200 44.400
+ 06 1 2 18 49 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12737623.150 6 -9925411.101 5 22261375.932 22261375.625 22261374.928
+ 40.900 30.200
+ -17399354.101 7 -13557922.829 6 21129737.755 21129737.648 21129737.340
+ 42.600 39.700
+ -5762733.435 5 -4490438.231 4 23157038.309 23157038.746 23157037.438
+ 31.800 29.700
+ -14938103.022 7 -11640073.653 7 20525241.995 20525241.141 20525240.679
+ 44.600 47.000
+ -2423599.020 4 -1888516.068 3 24352313.346 24352312.477 24352312.911
+ 27.400 20.500
+ -23271534.320 7 -18133656.302 8 20293477.858 20293476.480 20293477.213
+ 47.800 50.900
+ -16820264.749 6 -13106702.355 5 21732602.633 21732601.222 21732601.767
+ 40.300 33.500
+ 390403.290 4 304210.824 2 24558519.768 24558519.670 24558518.798
+ 24.600 16.100
+ -21297006.469 7 -16595055.590 7 20381034.081 20381033.633 20381033.144
+ 45.300 44.300
+ 06 1 2 18 50 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12730079.957 6 -9919533.282 5 22262811.805 22262810.751 22262810.601
+ 41.300 30.200
+ -17469852.506 7 -13612856.637 6 21116322.078 21116322.270 21116321.885
+ 42.600 39.700
+ -5749504.553 5 -4480130.035 5 23159555.854 23159556.305 23159555.155
+ 32.300 30.200
+ -14955175.473 7 -11653376.854 7 20521993.016 20521992.341 20521991.843
+ 44.600 46.900
+ -2531859.503 4 -1972874.866 4 24331712.524 24331711.471 24331711.374
+ 25.900 24.600
+ -23262414.421 7 -18126549.882 8 20295212.976 20295211.937 20295212.514
+ 47.600 50.800
+ -16737246.572 6 -13042012.908 5 21748400.691 21748399.168 21748399.741
+ 40.500 33.800
+ 493756.720 3 384745.944 2 24578185.902 24578186.973 24578185.419
+ 23.400 17.000
+ -21278220.728 7 -16580417.343 7 20384608.774 20384608.462 20384607.898
+ 45.200 44.300
+ 06 1 2 18 50 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12721921.745 6 -9913176.238 5 22264364.528 22264363.302 22264363.363
+ 41.300 30.400
+ -17539930.435 7 -13667462.805 6 21102986.885 21102986.686 21102986.634
+ 42.900 39.200
+ -5735655.708 5 -4469338.740 4 23162191.192 23162191.378 23162190.384
+ 33.100 29.500
+ -14971975.969 7 -11666468.144 7 20518795.953 20518795.260 20518794.811
+ 44.400 46.900
+ -2640000.829 4 -2057140.804 4 24311133.236 24311132.898 24311132.706
+ 25.600 25.600
+ -23252958.037 7 -18119181.271 8 20297012.674 20297011.469 20297012.156
+ 47.700 50.800
+ -16653847.985 6 -12977027.039 5 21764271.001 21764269.442 21764269.941
+ 39.900 33.200
+ 597145.477 3 465308.598 2 24597860.993 24597860.066 24597860.101
+ 23.000 15.100
+ -21258958.737 7 -16565407.994 7 20388274.199 20388273.880 20388273.292
+ 45.200 44.500
+ 06 1 2 18 51 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12713148.682 6 -9906340.090 4 22266033.681 22266032.828 22266032.517
+ 41.000 29.900
+ -17609586.804 7 -13721740.482 6 21089731.936 21089731.430 21089731.501
+ 43.000 39.200
+ -5721187.826 5 -4458065.078 4 23164944.471 23164944.679 23164943.762
+ 32.600 29.500
+ -14988504.021 7 -11679347.141 7 20515650.483 20515650.168 20515649.421
+ 44.600 47.000
+ -2748021.257 4 -2141312.503 4 24290578.037 24290577.263 24290577.085
+ 26.200 25.900
+ -23243164.930 7 -18111550.274 8 20298876.328 20298875.045 20298875.751
+ 47.900 50.900
+ -16570070.796 6 -12911746.159 5 21780213.872 21780211.820 21780212.469
+ 40.100 33.400
+ 700568.121 3 545897.634 2 24617541.572 24617540.546 24617540.677
+ 20.500 16.100
+ -21239221.790 7 -16550028.550 7 20392029.992 20392029.701 20392029.085
+ 45.400 44.400
+ 06 1 2 18 51 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12703761.071 6 -9899025.060 5 22267819.843 22267819.186 22267818.743
+ 41.200 30.200
+ -17678820.413 7 -13775688.726 6 21076557.267 21076556.684 21076556.772
+ 43.100 39.500
+ -5706101.744 5 -4446309.696 4 23167815.229 23167815.520 23167814.254
+ 32.000 29.200
+ -15004758.932 7 -11692013.300 7 20512557.401 20512556.952 20512556.255
+ 44.400 47.000
+ -2855919.466 4 -2225388.965 4 24270045.334 24270044.753 24270044.472
+ 25.900 25.600
+ -23233035.016 8 -18103656.833 8 20300803.821 20300802.638 20300803.389
+ 48.000 50.700
+ -16485916.518 6 -12846171.447 5 21796227.718 21796225.898 21796226.625
+ 40.200 33.100
+ 804022.912 3 626511.702 3 24637228.001 24637227.632 24637227.131
+ 22.100 18.600
+ -21219011.353 7 -16534280.152 7 20395875.938 20395875.605 20395874.900
+ 45.100 44.400
+ 06 1 2 18 52 0.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12693759.121 6 -9891231.326 5 22269723.523 22269722.359 22269722.338
+ 41.400 30.100
+ -17747630.232 7 -13829306.742 6 21063463.113 21063462.564 21063462.571
+ 43.100 39.500
+ -5690399.086 5 -4434073.884 4 23170803.069 23170803.493 23170802.393
+ 33.000 29.000
+ -15020740.335 7 -11704466.337 7 20509516.473 20509515.729 20509515.216
+ 44.500 47.000
+ -2963693.829 4 -2309368.910 3 24249536.586 24249535.265 24249535.697
+ 24.200 23.000
+ -23222568.299 8 -18095500.951 8 20302795.691 20302794.368 20302795.170
+ 48.000 50.700
+ -16401386.870 6 -12780304.235 5 21812312.902 21812311.398 21812311.841
+ 39.100 33.000
+ 907508.420 3 707149.735 2 24656920.521 24656920.396 24656919.991
+ 22.100 17.800
+ -21198328.903 7 -16518163.954 7 20399811.546 20399811.344 20399810.529
+ 45.000 44.500
+ 06 1 2 18 52 30.0000000 0 9G20G 4G 9G 7G 2G17G28G11G24
+ -12683142.580 6 -9882958.701 5 22271744.053 22271742.701 22271742.736
+ 41.500 30.400
+ -17816015.098 7 -13882593.623 6 21050449.822 21050449.406 21050449.394
+ 43.200 39.800
+ -5674080.578 5 -4421358.174 4 23173908.793 23173908.562 23173907.824
+ 32.000 28.100
+ -15036447.574 7 -11716705.739 7 20506527.205 20506526.789 20506526.064
+ 44.500 47.000
+ -3071342.793 4 -2393251.085 3 24229051.335 24229050.707 24229051.004
+ 26.800 22.600
+ -23211764.504 8 -18087082.402 8 20304851.545 20304850.332 20304851.051
+ 48.200 50.700
+ -16316483.753 6 -12714146.009 5 21828468.718 21828467.865 21828468.230
+ 39.500 32.800
+ 1011022.609 3 787810.112 2 24676619.691 24676618.754 24676618.274
+ 19.900 17.800
+ -21177175.792 7 -16501681.006 7 20403836.998 20403836.669 20403835.879
+ 45.000 44.300
+ 06 1 2 18 53 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12671912.267 6 -9874207.807 4 22273880.717 22273879.411 22273879.662
+ 41.300 29.900
+ -17883973.835 7 -13935548.444 6 21037517.666 21037517.302 21037517.226
+ 43.100 39.900
+ -5657147.596 5 -4408163.675 4 23177130.734 23177131.174 23177129.903
+ 32.300 29.200
+ -15051880.292 7 -11728731.223 7 20503590.658 20503590.083 20503589.440
+ 44.400 47.100
+ -3178865.089 4 -2477034.573 3 24208590.907 24208589.398 24208590.036
+ 27.100 20.500
+ -23200623.715 8 -18078401.264 8 20306971.762 20306970.383 20306971.163
+ 48.000 50.700
+ -16231208.921 6 -12647698.131 5 21844696.006 21844695.339 21844695.455
+ 38.900 33.200
+ -21155553.153 7 -16484832.197 7 20407951.764 20407951.324 20407950.657
+ 45.200 44.400
+ 06 1 2 18 53 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12660068.375 6 -9864978.800 5 22276134.615 22276133.419 22276133.286
+ 41.100 30.800
+ -17951505.512 7 -13988170.497 6 21024666.681 21024666.364 21024666.245
+ 42.900 39.800
+ -5639601.480 5 -4394491.404 4 23180469.827 23180469.772 23180468.924
+ 32.600 28.100
+ -15067037.797 7 -11740542.256 7 20500706.294 20500705.617 20500705.170
+ 44.500 47.000
+ -3286259.215 4 -2560718.159 3 24188154.279 24188152.771 24188153.590
+ 24.600 18.600
+ -23189145.605 8 -18069457.279 8 20309155.865 20309154.556 20309155.310
+ 48.100 50.800
+ -16145564.014 6 -12580961.894 5 21860993.982 21860993.159 21860993.259
+ 39.700 32.800
+ -21133462.761 7 -16467618.903 7 20412155.300 20412154.915 20412154.288
+ 45.200 44.300
+ 06 1 2 18 54 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12647611.067 6 -9855271.805 5 22278505.501 22278504.191 22278504.080
+ 41.400 30.400
+ -18018609.078 7 -14040458.947 6 21011897.188 21011896.861 21011896.757
+ 43.000 39.800
+ -5621443.033 5 -4380342.009 4 23183925.050 23183925.479 23183924.167
+ 31.500 29.000
+ -15081919.514 7 -11752138.389 7 20497874.152 20497873.670 20497873.058
+ 44.400 46.900
+ -3393523.563 4 -2644300.631 3 24167741.922 24167740.933 24167741.331
+ 27.900 19.900
+ -23177330.276 8 -18060250.524 8 20311404.167 20311402.955 20311403.656
+ 48.000 50.800
+ -16059550.938 6 -12513938.758 5 21877362.562 21877360.891 21877361.272
+ 39.000 33.000
+ -21110905.959 7 -16450042.170 7 20416447.713 20416447.338 20416446.713
+ 45.300 44.100
+ 06 1 2 18 54 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12634540.399 6 -9845086.866 5 22280992.736 22280991.265 22280991.522
+ 41.500 30.600
+ -18085283.453 7 -14092412.967 6 20999209.500 20999209.290 20999209.087
+ 43.200 40.100
+ -5602673.726 5 -4365716.617 4 23187496.961 23187497.359 23187496.130
+ 31.800 28.100
+ -15096524.874 7 -11763519.181 7 20495094.965 20495094.358 20495093.784
+ 44.300 47.000
+ -3500656.800 4 -2727780.952 2 24147355.609 24147353.915 24147354.758
+ 29.000 17.800
+ -23165177.561 8 -18050780.870 8 20313717.048 20313715.566 20313716.325
+ 48.000 50.700
+ -15973171.404 6 -12446630.082 5 21893800.384 21893798.530 21893798.986
+ 38.700 33.100
+ -21087884.214 7 -16432103.146 7 20420828.417 20420828.243 20420827.533
+ 45.300 44.200
+ 06 1 2 18 55 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12620856.909 6 -9834424.406 5 22283596.459 22283595.255 22283595.079
+ 41.000 30.800
+ -18151527.760 7 -14144031.863 6 20986603.673 20986603.369 20986603.182
+ 43.100 40.500
+ -5583294.587 5 -4350616.014 4 23191184.629 23191184.869 23191183.660
+ 31.000 28.800
+ -15110853.421 7 -11774684.269 7 20492368.293 20492367.719 20492367.164
+ 44.500 46.900
+ -3607657.288 4 -2811157.830 3 24126993.381 24126992.347 24126992.658
+ 26.500 20.500
+ -23152687.164 8 -18041048.086 8 20316093.609 20316092.342 20316093.051
+ 48.000 50.600
+ -15886427.081 6 -12379037.161 5 21910306.585 21910305.424 21910305.608
+ 39.100 33.200
+ -21064398.730 7 -16413802.763 7 20425297.531 20425297.395 20425296.709
+ 45.300 44.000
+ 06 1 2 18 55 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12606560.883 6 -9823284.642 5 22286317.175 22286315.776 22286315.614
+ 41.100 30.400
+ -18217340.669 7 -14195314.604 6 20974080.093 20974079.813 20974079.477
+ 43.500 40.700
+ -5563306.773 5 -4335041.114 4 23194988.139 23194988.737 23194987.559
+ 32.100 28.800
+ -15124904.547 7 -11785633.186 7 20489694.340 20489693.821 20489693.215
+ 44.400 46.900
+ -3714523.664 4 -2894430.185 3 24106657.903 24106656.529 24106656.994
+ 27.900 22.100
+ -23139859.024 7 -18031052.129 8 20318534.652 20318533.394 20318534.113
+ 47.900 50.500
+ -15799319.959 6 -12311161.536 5 21926882.002 21926881.359 21926881.426
+ 38.900 32.700
+ -21040450.960 7 -16395142.156 7 20429854.637 20429854.391 20429853.848
+ 45.400 44.000
+ 06 1 2 18 56 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12591652.742 6 -9811667.904 5 22289153.293 22289152.783 22289152.222
+ 41.100 30.600
+ -18282721.230 7 -14246260.452 6 20961638.163 20961638.102 20961637.767
+ 43.400 40.600
+ -5542712.303 5 -4318993.508 4 23198907.269 23198907.645 23198906.347
+ 32.000 28.100
+ -15138677.810 7 -11796365.587 7 20487073.578 20487072.854 20487072.413
+ 44.600 46.900
+ -3821254.332 4 -2977596.813 3 24086347.914 24086346.192 24086347.041
+ 27.600 23.400
+ -23126693.309 7 -18020793.123 8 20321040.061 20321038.667 20321039.456
+ 47.800 50.400
+ -15711851.755 6 -12243004.532 5 21943526.571 21943525.997 21943526.165
+ 38.700 32.400
+ -21016042.483 7 -16376122.557 7 20434499.300 20434499.216 20434498.552
+ 45.500 44.100
+ 06 1 2 18 56 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12576132.894 6 -9799574.508 5 22292106.894 22292106.211 22292105.619
+ 40.900 31.000
+ -18347668.509 7 -14296868.681 6 20949279.033 20949278.731 20949278.669
+ 43.500 40.200
+ -5521511.647 5 -4302473.541 4 23202941.446 23202942.172 23202940.607
+ 31.100 29.000
+ -15152172.548 7 -11806880.956 7 20484505.512 20484504.933 20484504.366
+ 44.500 46.900
+ -3927848.043 4 -3060656.733 3 24066063.463 24066062.246 24066062.508
+ 27.400 22.600
+ -23113189.673 7 -18010270.802 8 20323609.706 20323608.369 20323609.169
+ 47.900 50.400
+ -15624024.288 6 -12174567.594 5 21960240.184 21960239.105 21960239.212
+ 38.100 32.100
+ -20991174.935 7 -16356745.242 7 20439231.380 20439231.435 20439230.547
+ 45.300 44.100
+ 06 1 2 18 57 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12560001.691 6 -9787004.736 5 22295176.689 22295175.669 22295175.271
+ 41.000 30.200
+ -18412181.510 7 -14347138.513 6 20937002.888 20937002.335 20937002.364
+ 43.700 40.300
+ -5499706.630 5 -4285482.645 4 23207090.689 23207091.411 23207089.921
+ 31.100 29.000
+ -15165388.329 7 -11817178.956 7 20481990.686 20481989.988 20481989.532
+ 44.600 46.900
+ -4034303.182 4 -3143608.672 4 24045805.964 24045804.162 24045804.910
+ 27.100 25.600
+ -23099348.100 7 -17999485.157 8 20326243.730 20326242.412 20326243.119
+ 47.900 50.500
+ -15535839.358 6 -12105852.117 5 21977021.859 21977019.814 21977020.388
+ 37.700 31.300
+ -20965849.771 7 -16337011.344 7 20444050.758 20444050.665 20444049.796
+ 45.300 44.300
+ 06 1 2 18 57 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12543259.661 6 -9773958.982 5 22298362.365 22298361.504 22298361.329
+ 41.300 30.600
+ -18476259.255 7 -14397069.183 6 20924809.446 20924808.694 20924808.853
+ 43.800 40.700
+ -5477299.222 5 -4268022.352 4 23211354.563 23211355.154 23211353.888
+ 30.600 28.100
+ -15178324.518 7 -11827259.100 7 20479529.203 20479528.258 20479527.985
+ 44.600 46.900
+ -4140618.347 4 -3226451.558 4 24025574.108 24025573.276 24025573.410
+ 26.500 26.500
+ -23085168.544 7 -17988436.149 8 20328942.056 20328940.740 20328941.464
+ 47.900 50.500
+ -15447298.949 6 -12036859.654 5 21993870.889 21993868.935 21993869.352
+ 37.800 32.000
+ -20940068.409 7 -16316921.964 7 20448956.844 20448956.667 20448955.886
+ 45.300 44.200
+ 06 1 2 18 58 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12525906.893 6 -9760437.326 5 22301664.730 22301663.675 22301663.668
+ 41.500 30.800
+ -18539900.761 7 -14446659.927 6 20912698.643 20912698.206 20912698.157
+ 43.700 41.000
+ -5454290.672 5 -4250093.610 4 23215733.627 23215733.929 23215732.786
+ 31.600 29.200
+ -15190980.673 7 -11837121.032 7 20477120.717 20477119.874 20477119.464
+ 44.600 46.900
+ -4246792.164 4 -3309184.292 4 24005370.081 24005368.799 24005368.996
+ 27.400 26.200
+ -23070650.877 7 -17977123.681 8 20331704.579 20331703.389 20331704.091
+ 47.900 50.400
+ -15358404.907 6 -11967591.614 5 22010785.822 22010784.767 22010784.856
+ 37.400 31.500
+ -20913832.371 7 -16296478.297 7 20453949.373 20453949.176 20453948.465
+ 45.400 44.100
+ 06 1 2 18 58 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12507944.348 6 -9746440.522 5 22305083.194 22305081.747 22305081.840
+ 41.200 30.400
+ -18603105.157 7 -14495910.069 6 20900671.115 20900670.797 20900670.723
+ 43.800 40.900
+ -5430681.766 5 -4231697.081 4 23220225.945 23220226.402 23220225.241
+ 31.300 28.800
+ -15203356.200 7 -11846764.293 7 20474765.487 20474765.030 20474764.419
+ 44.700 46.900
+ -4352822.920 4 -3391805.586 4 23985192.906 23985191.884 23985191.944
+ 27.100 26.500
+ -23055795.128 8 -17965547.777 8 20334531.586 20334530.296 20334531.030
+ 48.000 50.400
+ -15269158.979 6 -11898049.381 5 22027768.450 22027768.217 22027767.980
+ 38.000 32.000
+ -20887143.258 7 -16275681.586 7 20459028.229 20459027.970 20459027.281
+ 45.600 44.100
+ 06 1 2 18 59 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12489372.720 6 -9731969.116 5 22308616.973 22308615.889 22308615.706
+ 41.100 30.600
+ -18665871.575 7 -14544818.934 6 20888726.870 20888726.523 20888726.515
+ 43.700 40.700
+ -5406474.008 5 -4212833.903 4 23224832.505 23224833.206 23224831.780
+ 30.400 28.800
+ -15215450.396 7 -11856188.337 7 20472464.166 20472463.539 20472463.025
+ 44.700 47.000
+ -4458709.408 4 -3474314.444 4 23965043.422 23965042.180 23965042.758
+ 27.400 27.900
+ -23040601.139 7 -17953708.304 8 20337422.883 20337421.573 20337422.378
+ 47.800 50.200
+ -15179562.918 6 -11828234.322 5 22044817.943 22044817.412 22044817.464
+ 37.700 31.500
+ -20860002.311 7 -16254532.794 7 20464192.873 20464192.663 20464191.971
+ 45.500 44.000
+ 06 1 2 18 59 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12470192.506 6 -9717023.489 5 22312266.740 22312265.428 22312265.525
+ 41.200 30.400
+ -18728199.001 7 -14593385.731 6 20876866.540 20876866.063 20876866.131
+ 43.800 41.000
+ -5381669.155 5 -4193505.458 4 23229552.824 23229553.176 23229551.855
+ 30.800 27.600
+ -15227262.800 7 -11865392.807 7 20470216.447 20470215.623 20470215.286
+ 44.800 47.000
+ -4564450.175 4 -3556709.763 4 23944921.375 23944920.591 23944920.477
+ 27.900 27.600
+ -23025068.962 7 -17941605.315 8 20340378.344 20340377.233 20340377.886
+ 47.700 50.200
+ -15089618.786 6 -11758148.041 5 22061934.578 22061933.269 22061933.476
+ 37.900 31.000
+ -20832411.290 7 -16233033.294 7 20469443.358 20469443.027 20469442.417
+ 45.500 44.100
+ 06 1 2 19 0 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12450403.809 6 -9701603.718 5 22316032.518 22316031.135 22316031.188
+ 41.000 30.200
+ -18790086.568 7 -14641609.785 6 20865089.905 20865089.316 20865089.406
+ 43.800 41.300
+ -5356268.803 5 -4173712.976 4 23234385.795 23234386.527 23234385.063
+ 30.400 26.800
+ -15238792.817 7 -11874377.235 7 20468022.322 20468021.549 20468021.171
+ 44.700 46.700
+ -4670043.802 4 -3638990.426 4 23924827.881 23924826.561 23924826.815
+ 26.800 27.100
+ -23009198.066 7 -17929238.388 8 20343398.544 20343397.350 20343398.068
+ 47.700 50.100
+ -14999328.831 6 -11687792.284 5 22079116.560 22079114.992 22079115.295
+ 37.400 31.500
+ -20804371.756 7 -16211184.305 7 20474779.090 20474778.732 20474778.191
+ 45.500 44.100
+ 06 1 2 19 0 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12430007.665 6 -9685710.621 5 22319913.479 22319912.732 22319912.396
+ 41.000 31.000
+ -18851533.387 7 -14689490.399 6 20853396.743 20853396.308 20853396.318
+ 43.800 41.300
+ -5330274.452 4 -4153457.638 4 23239332.241 23239333.141 23239331.445
+ 29.700 26.800
+ -15250039.920 7 -11883141.212 7 20465881.911 20465881.334 20465880.817
+ 44.700 46.800
+ -4775488.669 4 -3721155.172 4 23904761.695 23904760.896 23904761.353
+ 29.700 24.900
+ -22992988.807 7 -17916607.804 8 20346483.130 20346481.904 20346482.570
+ 47.700 50.100
+ -14908694.356 6 -11617168.073 5 22096363.465 22096361.888 22096362.398
+ 37.200 30.400
+ -20775885.320 7 -16188987.085 7 20480199.866 20480199.555 20480198.916
+ 45.600 44.100
+ 06 1 2 19 1 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12409004.550 6 -9669344.549 5 22323910.210 22323909.681 22323909.257
+ 41.200 31.300
+ -18912538.554 7 -14737026.876 6 20841788.022 20841787.472 20841787.537
+ 43.800 41.400
+ -5303687.216 5 -4132740.321 4 23244392.026 23244392.819 23244391.454
+ 31.300 28.100
+ -15261003.626 7 -11891684.359 7 20463795.835 20463794.953 20463794.679
+ 44.700 46.800
+ -4880783.202 4 -3803202.785 3 23884726.036 23884723.832 23884724.881
+ 29.500 23.400
+ -22976440.858 7 -17903713.302 8 20349632.150 20349630.918 20349631.535
+ 47.600 50.100
+ -14817717.307 6 -11546276.899 5 22113674.600 22113674.297 22113674.589
+ 37.700 30.100
+ -20746953.453 7 -16166442.773 7 20485705.267 20485705.086 20485704.374
+ 45.500 44.100
+ 06 1 2 19 1 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12387394.987 6 -9652505.926 5 22328022.622 22328021.641 22328021.274
+ 40.900 30.800
+ -18973101.243 7 -14784218.563 6 20830263.143 20830262.661 20830262.728
+ 43.900 41.200
+ -5276509.276 5 -4111562.704 4 23249563.780 23249564.074 23249562.796
+ 30.100 26.800
+ -15271683.241 7 -11900006.141 7 20461763.549 20461762.666 20461762.402
+ 44.700 46.800
+ -4985926.128 4 -3885132.285 3 23864716.804 23864715.118 23864716.017
+ 29.000 21.100
+ -22959554.140 7 -17890554.828 8 20352845.575 20352844.378 20352845.012
+ 47.700 50.200
+ -14726399.911 6 -11475120.516 5 22131051.693 22131051.782 22131051.671
+ 37.500 31.300
+ -20717577.880 7 -16143552.718 7 20491295.387 20491295.071 20491294.487
+ 45.700 44.000
+ 06 1 2 19 2 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12365179.787 6 -9635195.375 5 22332249.944 22332248.875 22332248.819
+ 41.000 30.200
+ -19033220.374 7 -14831064.631 6 20818822.724 20818822.212 20818822.413
+ 44.000 41.300
+ -5248742.021 4 -4089925.900 4 23254847.647 23254848.370 23254846.757
+ 29.200 27.900
+ -15282078.323 7 -11908106.199 7 20459785.313 20459784.575 20459784.121
+ 44.600 46.800
+ -5090916.217 4 -3966942.698 3 23844738.028 23844735.848 23844737.249
+ 28.600 21.100
+ -22942328.811 7 -17877132.498 8 20356123.468 20356122.233 20356122.892
+ 47.800 50.100
+ -14634744.293 6 -11403700.600 5 22148494.402 22148493.374 22148493.501
+ 37.500 31.600
+ -20687760.007 7 -16120318.015 7 20496969.532 20496969.245 20496968.653
+ 45.800 44.000
+ 06 1 2 19 2 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12342359.975 6 -9617413.697 5 22336592.630 22336591.380 22336591.440
+ 40.900 30.800
+ -19092895.441 7 -14877564.673 6 20807466.970 20807466.594 20807466.551
+ 43.900 41.500
+ -5220387.187 4 -4067831.226 4 23260243.628 23260244.350 23260242.599
+ 28.600 28.800
+ -15292188.389 7 -11915984.170 7 20457861.288 20457860.754 20457860.211
+ 44.600 47.000
+ -5195752.075 4 -4048632.926 3 23824787.940 23824786.713 23824787.393
+ 27.900 20.500
+ -22924764.739 7 -17863446.208 8 20359465.832 20359464.514 20359465.263
+ 47.900 49.900
+ -14542751.989 6 -11332018.336 5 22166000.509 22165998.841 22165999.128
+ 36.400 31.100
+ -20657501.399 7 -16096739.884 7 20502727.509 20502727.219 20502726.693
+ 46.100 43.900
+ 06 1 2 19 3 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12318935.471 6 -9599160.833 5 22341049.768 22341048.878 22341048.663
+ 40.500 30.600
+ -19152125.417 7 -14923717.893 6 20796195.766 20796195.536 20796195.397
+ 43.900 41.500
+ -5191446.392 4 -4045279.973 4 23265750.671 23265751.568 23265749.844
+ 28.800 28.600
+ -15302012.758 7 -11923639.514 7 20455991.730 20455991.248 20455990.584
+ 44.300 47.000
+ -5300431.962 4 -4130201.590 3 23804867.998 23804866.941 23804867.164
+ 26.800 22.600
+ -22906861.897 8 -17849495.943 8 20362872.774 20362871.256 20362872.168
+ 48.000 49.800
+ -14450424.985 6 -11260075.274 5 22183569.329 22183568.265 22183568.282
+ 36.600 31.100
+ -20626803.665 7 -16072819.577 7 20508569.284 20508568.819 20508568.366
+ 46.000 43.900
+ 06 1 2 19 3 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12294907.852 6 -9580438.012 5 22345622.049 22345621.053 22345620.767
+ 40.300 30.200
+ -19210909.586 7 -14969523.732 6 20785009.722 20785009.218 20785009.222
+ 44.000 41.800
+ -5161921.417 5 -4022273.517 4 23271369.345 23271369.928 23271368.502
+ 30.400 27.600
+ -15311550.892 7 -11931071.824 7 20454176.776 20454176.216 20454175.636
+ 44.500 46.900
+ -5404954.508 4 -4211647.681 4 23784978.836 23784976.725 23784977.819
+ 28.600 24.600
+ -22888620.013 8 -17835281.492 8 20366343.894 20366342.637 20366343.471
+ 48.000 49.900
+ -14357765.234 6 -11187872.933 5 22201201.588 22201200.765 22201200.801
+ 36.500 30.600
+ -20595668.465 7 -16048558.385 7 20514494.167 20514493.628 20514493.210
+ 46.000 43.800
+ 06 1 2 19 4 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12270277.585 6 -9561245.597 5 22350309.503 22350308.261 22350308.319
+ 41.000 30.200
+ -19269247.329 7 -15014981.698 6 20773908.356 20773908.010 20773907.902
+ 44.100 41.900
+ -5131813.713 5 -3998812.981 4 23277098.851 23277099.101 23277098.048
+ 31.300 28.100
+ -15320802.240 7 -11938280.661 7 20452416.306 20452415.789 20452415.139
+ 44.300 47.000
+ -5509318.349 5 -4292970.091 4 23765118.931 23765117.205 23765118.021
+ 31.600 27.100
+ -22870039.297 7 -17820803.013 8 20369879.880 20369878.400 20369879.244
+ 47.900 49.800
+ -14264774.920 6 -11115412.983 5 22218897.096 22218896.277 22218896.588
+ 36.500 30.200
+ -20564097.454 7 -16023957.600 7 20520501.872 20520501.494 20520500.904
+ 45.800 44.000
+ 06 1 2 19 4 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12245045.595 6 -9541584.310 5 22355111.136 22355109.930 22355109.957
+ 41.100 30.600
+ -19327137.602 7 -15060090.993 6 20762892.122 20762891.726 20762891.694
+ 44.100 41.600
+ -5101125.428 5 -3974900.031 4 23282938.202 23282939.157 23282937.505
+ 30.400 28.100
+ -15329766.235 7 -11945265.585 7 20450710.413 20450710.009 20450709.268
+ 44.300 47.000
+ -5613522.030 4 -4374167.722 4 23745289.572 23745288.087 23745288.724
+ 29.700 28.800
+ -22851119.283 8 -17806060.143 8 20373480.146 20373478.710 20373479.663
+ 48.100 49.700
+ -14171455.895 6 -11042696.915 4 22236655.948 22236654.266 22236654.707
+ 36.200 29.700
+ -20532092.367 7 -15999018.572 7 20526592.235 20526591.905 20526591.293
+ 46.100 43.900
+ 06 1 2 19 5 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12219212.268 6 -9521454.442 5 22360026.481 22360025.773 22360025.485
+ 41.000 30.200
+ -19384579.763 7 -15104851.103 7 20751961.331 20751960.934 20751960.945
+ 44.400 42.000
+ -5069858.043 4 -3950535.857 4 23288888.632 23288889.108 23288887.832
+ 29.700 27.600
+ -15338442.291 7 -11952026.144 7 20449059.441 20449058.837 20449058.264
+ 44.100 46.900
+ -5717564.278 4 -4455239.525 4 23725490.410 23725489.503 23725489.675
+ 28.100 28.100
+ -22831860.375 8 -17791053.204 8 20377145.079 20377143.659 20377144.589
+ 48.100 49.600
+ -14077810.080 6 -10969726.191 4 22254475.863 22254474.380 22254474.861
+ 36.000 29.500
+ -20499654.840 7 -15973742.581 7 20532764.821 20532764.578 20532763.930
+ 46.000 44.000
+ 06 1 2 19 5 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12192779.094 6 -9500857.154 5 22365056.325 22365055.696 22365055.417
+ 40.900 30.100
+ -19441573.040 7 -15149261.428 7 20741115.967 20741115.336 20741115.499
+ 44.500 42.100
+ -5038013.637 5 -3925722.052 4 23294948.388 23294948.881 23294947.761
+ 30.100 27.100
+ -15346829.985 7 -11958562.008 7 20447463.450 20447462.653 20447462.217
+ 44.600 46.900
+ -5821443.444 4 -4536184.263 4 23705723.192 23705721.813 23705722.336
+ 27.600 29.000
+ -22812262.231 8 -17775781.925 8 20380874.299 20380873.030 20380873.738
+ 48.000 49.600
+ -13983839.466 5 -10896502.391 5 22272357.095 22272356.728 22272356.658
+ 35.800 30.400
+ -20466786.189 7 -15948130.643 7 20539019.448 20539019.363 20539018.534
+ 45.900 43.800
+ 06 1 2 19 6 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12165746.567 6 -9479792.853 4 22370201.046 22370199.560 22370199.689
+ 40.600 29.700
+ -19498116.579 7 -15193321.317 7 20730355.811 20730355.352 20730355.530
+ 44.600 42.000
+ -5005593.711 4 -3900459.797 4 23301117.401 23301117.905 23301116.598
+ 29.200 26.200
+ -15354928.581 7 -11964872.598 7 20445922.397 20445921.604 20445921.223
+ 44.600 46.700
+ -5925158.302 4 -4617000.976 4 23685986.287 23685985.254 23685985.854
+ 29.200 27.900
+ -22792324.978 7 -17760246.394 8 20384668.302 20384666.981 20384667.702
+ 47.900 49.600
+ -13889546.268 6 -10823027.238 5 22290300.109 22290300.285 22290299.964
+ 36.000 30.200
+ -20433488.524 7 -15922184.409 7 20545355.800 20545355.683 20545354.903
+ 45.900 43.800
+ 06 1 2 19 6 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12138115.937 6 -9458262.488 5 22375459.053 22375457.579 22375457.682
+ 40.700 30.100
+ -19554209.773 7 -15237030.275 7 20719681.655 20719681.280 20719681.194
+ 44.200 42.100
+ -4972600.553 4 -3874750.860 4 23307395.914 23307396.597 23307395.092
+ 28.600 26.200
+ -15362737.664 7 -11970957.599 7 20444436.316 20444435.680 20444435.221
+ 44.600 46.800
+ -6028707.492 5 -4697688.623 4 23666282.195 23666280.582 23666281.449
+ 32.100 28.600
+ -22772048.386 7 -17744446.454 8 20388527.006 20388525.598 20388526.354
+ 47.800 49.600
+ -13794932.437 5 -10749302.239 5 22308306.022 22308304.802 22308304.888
+ 35.500 30.100
+ -20399763.526 7 -15895905.191 7 20551773.746 20551773.351 20551772.701
+ 45.900 43.900
+ 06 1 2 19 7 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12109887.607 6 -9436266.382 4 22380830.450 22380829.362 22380829.357
+ 40.800 29.500
+ -19609851.721 7 -15280387.612 7 20709093.490 20709092.890 20709093.047
+ 44.500 42.000
+ -4939035.601 4 -3848596.372 4 23313782.480 23313783.110 23313781.635
+ 28.600 24.200
+ -15370256.693 7 -11976816.582 7 20443005.507 20443004.815 20443004.325
+ 44.600 46.800
+ -6132089.366 5 -4778245.912 4 23646609.220 23646607.756 23646608.543
+ 32.300 29.500
+ -22751432.452 7 -17728382.089 8 20392449.803 20392448.612 20392449.270
+ 47.900 49.700
+ -13699999.762 5 -10675328.782 5 22326370.818 22326369.898 22326369.869
+ 35.600 30.600
+ -20365612.413 7 -15869293.931 7 20558272.374 20558271.978 20558271.402
+ 45.900 43.800
+ 06 1 2 19 7 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12081062.971 6 -9413805.630 5 22386315.515 22386314.357 22386314.432
+ 40.600 30.100
+ -19665041.970 7 -15323392.981 7 20698590.945 20698590.539 20698590.526
+ 44.300 42.200
+ -4904900.560 4 -3821997.670 3 23320278.517 23320278.452 23320277.683
+ 28.400 22.600
+ -15377484.935 7 -11982448.981 7 20441629.984 20441629.282 20441628.863
+ 44.600 46.800
+ -6235302.610 5 -4858671.773 4 23626968.103 23626966.956 23626967.473
+ 32.100 28.800
+ -22730477.169 8 -17712053.296 8 20396437.559 20396436.174 20396436.993
+ 48.100 49.500
+ -13604750.524 5 -10601108.659 4 22344496.488 22344495.252 22344495.356
+ 35.700 29.900
+ -20331037.046 7 -15842352.085 7 20564851.774 20564851.466 20564850.835
+ 46.100 43.800
+ 06 1 2 19 8 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12051642.813 6 -9390880.834 4 22391914.090 22391913.053 22391912.854
+ 40.500 29.500
+ -19719779.718 7 -15366045.745 7 20688174.759 20688174.307 20688174.275
+ 44.400 42.400
+ -4870197.753 4 -3794956.518 3 23326882.404 23326882.769 23326881.897
+ 29.000 23.800
+ -15384421.938 7 -11987854.440 7 20440310.151 20440309.207 20440308.902
+ 44.600 46.800
+ -6338345.815 5 -4938965.127 4 23607359.858 23607358.344 23607359.076
+ 32.700 29.200
+ -22709182.550 8 -17695460.085 8 20400490.065 20400488.443 20400489.328
+ 48.100 49.400
+ -13509186.767 5 -10526643.443 4 22362681.307 22362680.235 22362680.479
+ 34.900 28.400
+ -20296039.433 7 -15815081.211 7 20571511.569 20571511.272 20571510.662
+ 46.000 43.700
+ 06 1 2 19 8 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -12021628.200 6 -9367492.832 4 22397625.680 22397624.691 22397624.508
+ 40.600 29.900
+ -19774064.309 7 -15408345.396 7 20677844.614 20677844.303 20677844.167
+ 44.400 42.500
+ -4834928.858 4 -3767474.289 3 23333593.851 23333594.402 23333593.045
+ 29.700 23.400
+ -15391067.166 7 -11993032.536 7 20439045.601 20439044.656 20439044.355
+ 44.600 46.700
+ -6441217.756 5 -5019125.025 4 23587783.856 23587782.255 23587782.974
+ 30.400 28.800
+ -22687548.632 8 -17678602.485 8 20404606.465 20404605.298 20404606.022
+ 48.200 49.400
+ -13413310.340 5 -10451934.595 4 22380925.482 22380925.007 22380925.017
+ 34.500 28.600
+ -20260620.842 7 -15787482.307 7 20578251.473 20578251.252 20578250.585
+ 46.100 43.800
+ 06 1 2 19 9 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11991020.061 6 -9343642.339 5 22403450.662 22403449.043 22403449.222
+ 40.700 30.100
+ -19827895.160 7 -15450291.481 7 20667601.206 20667600.648 20667600.705
+ 44.500 42.700
+ -4799095.894 4 -3739552.506 3 23340412.597 23340412.807 23340411.711
+ 28.800 23.800
+ -15397419.990 7 -11997982.788 7 20437836.403 20437835.688 20437835.367
+ 44.600 46.700
+ -6543917.044 5 -5099150.394 4 23568239.881 23568239.050 23568239.491
+ 30.400 25.300
+ -22665575.165 8 -17661480.299 8 20408787.995 20408786.718 20408787.485
+ 48.000 49.300
+ -13317123.377 5 -10376983.754 4 22399230.333 22399229.274 22399228.960
+ 34.500 29.500
+ -20224783.160 7 -15759556.836 7 20585071.149 20585070.901 20585070.270
+ 46.100 43.600
+ 06 1 2 19 9 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11959819.350 6 -9319330.098 4 22409387.921 22409386.663 22409386.595
+ 40.600 29.900
+ -19881271.556 7 -15491883.448 7 20657443.778 20657443.268 20657443.306
+ 44.300 42.600
+ -4762700.576 4 -3711192.540 3 23347338.290 23347338.785 23347337.454
+ 28.800 23.000
+ -15403479.895 7 -12002704.792 7 20436683.373 20436682.525 20436682.207
+ 44.500 46.700
+ -6646442.089 4 -5179040.000 4 23548730.095 23548729.019 23548729.467
+ 29.700 24.900
+ -22643262.324 8 -17644093.668 8 20413033.763 20413032.661 20413033.369
+ 48.100 49.300
+ -13220628.055 5 -10301792.653 4 22417592.322 22417591.759 22417591.568
+ 35.200 29.700
+ -20188527.785 7 -15731305.894 7 20591970.291 20591969.995 20591969.395
+ 46.000 43.600
+ 06 1 2 19 10 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11928027.227 6 -9294557.025 5 22415437.327 22415436.476 22415436.260
+ 40.300 30.600
+ -19934192.856 7 -15533120.793 7 20647373.218 20647372.505 20647372.795
+ 44.600 42.300
+ -4725745.259 4 -3682396.210 4 23354371.028 23354371.614 23354370.193
+ 29.900 24.600
+ -15409246.344 7 -12007198.125 7 20435585.910 20435585.195 20435584.812
+ 44.500 46.700
+ -6748791.795 4 -5258792.982 4 23529253.896 23529252.347 23529253.078
+ 29.000 25.300
+ -22620609.671 7 -17626442.251 8 20417344.754 20417343.308 20417344.140
+ 47.800 49.100
+ -13123826.420 5 -10226362.877 4 22436013.222 22436012.698 22436012.285
+ 34.400 29.500
+ -20151856.687 7 -15702731.009 7 20598948.531 20598948.263 20598947.651
+ 45.900 43.400
+ 06 1 2 19 10 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11895645.020 6 -9269324.138 5 22421599.573 22421598.407 22421598.348
+ 39.900 30.600
+ -19986658.457 7 -15574003.048 7 20637389.223 20637388.749 20637388.858
+ 44.600 42.700
+ -4688232.094 4 -3653165.176 3 23361509.955 23361509.848 23361508.899
+ 29.700 23.400
+ -15414718.736 7 -12011462.324 7 20434544.568 20434543.838 20434543.425
+ 44.500 46.700
+ -6850964.490 4 -5338408.022 4 23509811.044 23509809.216 23509810.464
+ 29.500 26.500
+ -22597617.672 8 -17608526.404 8 20421719.976 20421718.603 20421719.348
+ 48.000 49.200
+ -13026720.695 5 -10150696.143 4 22454491.292 22454491.121 22454490.918
+ 35.400 28.600
+ -20114771.387 7 -15673833.374 7 20606005.611 20606005.332 20606004.692
+ 45.800 43.400
+ 06 1 2 19 11 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11862673.808 6 -9243632.302 5 22427873.663 22427872.620 22427872.417
+ 40.100 30.400
+ -20038667.801 7 -15614529.778 7 20627492.298 20627491.723 20627491.885
+ 44.900 43.000
+ -4650163.006 5 -3623500.973 4 23368754.275 23368754.137 23368753.447
+ 30.800 24.900
+ -15419896.582 7 -12015497.007 7 20433559.241 20433558.612 20433558.151
+ 44.700 46.800
+ -6952958.987 5 -5417884.195 4 23490402.381 23490400.713 23490401.618
+ 31.100 27.100
+ -22574285.964 7 -17590345.850 8 20426159.492 20426158.481 20426159.036
+ 47.700 49.200
+ -12929312.587 5 -10074793.736 4 22473028.248 22473026.848 22473027.087
+ 34.300 28.600
+ -20077273.824 7 -15644614.493 7 20613141.050 20613140.909 20613140.212
+ 45.900 43.400
+ 06 1 2 19 11 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11829114.601 6 -9217482.270 5 22434259.777 22434259.020 22434258.532
+ 40.300 30.200
+ -20090220.271 7 -15654700.505 7 20617682.009 20617681.600 20617681.657
+ 44.900 43.000
+ -4611540.285 5 -3593405.366 4 23376103.798 23376103.845 23376102.918
+ 31.000 24.200
+ -15424779.256 7 -12019301.684 7 20432629.964 20432629.532 20432628.929
+ 44.500 46.800
+ -7054773.623 5 -5497220.216 4 23471027.598 23471026.130 23471026.725
+ 30.600 28.800
+ -22550614.667 7 -17571900.690 8 20430664.145 20430662.949 20430663.642
+ 47.900 49.000
+ -12831604.344 5 -9998657.502 4 22491621.791 22491620.294 22491620.293
+ 33.400 27.400
+ -20039365.813 7 -15615075.783 7 20620354.753 20620354.493 20620353.821
+ 46.100 43.100
+ 06 1 2 19 12 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11794968.404 6 -9190874.841 5 22440757.848 22440756.721 22440756.478
+ 40.200 30.600
+ -20141315.235 7 -15694514.732 7 20607959.016 20607958.500 20607958.687
+ 45.100 43.000
+ -4572365.729 4 -3562879.771 4 23383558.127 23383558.797 23383557.535
+ 29.900 24.600
+ -15429366.297 7 -12022875.997 7 20431757.101 20431756.682 20431756.080
+ 44.600 46.800
+ -7156407.285 5 -5576415.206 4 23451687.586 23451685.637 23451686.775
+ 33.100 28.800
+ -22526603.866 7 -17553190.971 8 20435233.450 20435232.060 20435232.873
+ 47.900 49.000
+ -12733598.281 5 -9922289.204 4 22510271.082 22510270.276 22510270.434
+ 34.000 27.600
+ -20001049.073 7 -15585218.580 7 20627646.245 20627645.979 20627645.336
+ 45.900 43.400
+ 06 1 2 19 12 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11760236.741 6 -9163811.211 4 22447367.054 22447365.877 22447365.656
+ 39.800 29.900
+ -20191952.185 7 -15733972.069 7 20598323.261 20598322.638 20598322.790
+ 44.900 43.100
+ -4532641.367 4 -3531925.761 4 23391117.310 23391117.997 23391116.527
+ 28.600 24.900
+ -15433656.926 7 -12026219.341 7 20430940.776 20430940.144 20430939.607
+ 44.500 46.700
+ -7257858.716 5 -5655468.185 4 23432381.908 23432380.016 23432381.012
+ 31.100 29.000
+ -22502253.387 7 -17534216.571 8 20439866.958 20439865.793 20439866.501
+ 47.700 48.800
+ -12635296.324 5 -9845690.303 4 22528977.699 22528976.873 22528976.830
+ 34.300 28.600
+ -19962325.242 7 -15555044.166 7 20635015.155 20635014.882 20635014.304
+ 46.200 43.300
+ 06 1 2 19 13 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11724920.540 6 -9136292.086 5 22454087.082 22454086.396 22454085.754
+ 39.800 30.100
+ -20242130.702 7 -15773072.185 7 20588774.452 20588773.889 20588774.085
+ 45.000 43.100
+ -4492368.896 5 -3500544.642 4 23398781.263 23398781.585 23398780.496
+ 30.200 24.200
+ -15437650.893 7 -12029331.519 7 20430180.755 20430180.041 20430179.581
+ 44.400 46.700
+ -7359126.383 5 -5734377.956 5 23413111.131 23413109.642 23413110.380
+ 31.500 30.400
+ -22477563.167 7 -17514977.441 8 20444565.590 20444564.139 20444564.961
+ 47.800 48.700
+ -12536700.935 5 -9768862.806 4 22547740.668 22547738.929 22547739.106
+ 33.100 28.800
+ -19923195.916 7 -15524553.781 7 20642461.367 20642460.985 20642460.424
+ 46.200 43.300
+ 06 1 2 19 13 30.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11689020.791 6 -9108318.244 4 22460918.839 22460917.641 22460917.633
+ 40.000 29.200
+ -20291850.071 7 -15811814.529 7 20579313.214 20579312.517 20579312.780
+ 44.800 43.000
+ -4451551.133 4 -3468738.603 4 23406548.660 23406548.922 23406547.870
+ 29.900 24.600
+ -15441347.414 7 -12032211.922 7 20429477.525 20429476.622 20429476.286
+ 44.600 46.600
+ -7460208.752 5 -5813143.316 5 23393875.785 23393874.390 23393874.784
+ 31.000 30.800
+ -22452533.322 7 -17495473.666 8 20449328.551 20449327.180 20449328.027
+ 47.700 48.700
+ -12437813.308 5 -9691807.607 4 22566557.278 22566556.806 22566556.606
+ 33.100 28.600
+ -19883662.952 7 -15493748.874 7 20649984.272 20649983.854 20649983.341
+ 46.400 43.300
+ 06 1 2 19 14 0.0000000 0 8G20G 4G 9G 7G 2G17G28G24
+ -11652539.233 6 -9079891.054 4 22467861.073 22467859.949 22467859.867
+ 40.100 29.700
+ -20341109.851 7 -15850198.750 7 20569939.416 20569938.633 20569938.927
+ 44.900 43.200
+ -4410189.835 4 -3436509.044 4 23414419.171 23414419.920 23414418.559
+ 29.000 25.600
+ -15444746.027 7 -12034860.188 7 20428830.888 20428829.867 20428829.686
+ 44.800 46.600
+ -7561104.822 5 -5891763.515 5 23374675.845 23374674.109 23374674.976
+ 32.000 30.100
+ -22427163.789 7 -17475705.202 8 20454156.078 20454154.804 20454155.531
+ 47.600 48.700
+ -12338636.436 5 -9614526.981 4 22585429.304 22585429.311 22585428.851
+ 31.800 27.100
+ -19843728.242 7 -15462630.921 7 20657583.628 20657583.139 20657582.636
+ 46.300 43.200
+ 06 1 2 19 14 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11615477.090 6 -9051011.463 5 22474913.651 22474912.815 22474912.568
+ 40.300 30.600
+ -20389909.609 7 -15888224.515 7 20560652.869 20560652.440 20560652.524
+ 44.900 43.300
+ -4368287.585 4 -3403857.957 4 23422393.190 23422393.910 23422392.277
+ 28.800 25.900
+ -15447846.194 7 -12037275.903 7 20428240.717 20428239.889 20428239.621
+ 44.900 46.800
+ -7661813.105 5 -5970237.383 5 23355511.307 23355509.956 23355510.504
+ 31.500 30.200
+ -22401454.576 7 -17455672.046 8 20459048.413 20459047.152 20459047.867
+ 47.600 48.600
+ -137096.975 3 -106828.322 3 24366392.627 24366393.749 24366391.393
+ 21.100 21.100
+ -12239172.309 5 -9537022.517 4 22604358.447 22604356.655 22604356.953
+ 33.100 27.400
+ -19803393.304 7 -15431201.108 7 20665259.012 20665258.618 20665258.048
+ 46.300 43.100
+ 06 1 2 19 15 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11577835.647 6 -9021680.458 4 22482076.534 22482075.490 22482075.351
+ 39.600 29.700
+ -20438248.687 7 -15925891.312 7 20551454.472 20551453.721 20551454.040
+ 45.000 43.400
+ -4325846.218 4 -3370786.791 4 23430469.442 23430470.079 23430468.499
+ 28.600 25.900
+ -15450647.378 7 -12039458.640 7 20427707.609 20427706.875 20427706.478
+ 44.900 46.700
+ -7762332.031 5 -6048563.709 4 23336383.518 23336381.319 23336382.422
+ 32.000 28.100
+ -22375405.674 7 -17435374.202 8 20464005.347 20464004.124 20464004.803
+ 47.500 48.500
+ -239688.326 3 -186769.597 3 24346869.011 24346871.296 24346868.536
+ 22.600 20.500
+ -12139422.914 5 -9459295.771 4 22623339.849 22623338.585 22623338.531
+ 32.600 27.600
+ -19762660.228 7 -15399461.047 7 20673010.254 20673009.890 20673009.335
+ 46.500 43.100
+ 06 1 2 19 15 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11539616.053 6 -8991898.948 5 22489348.801 22489348.527 22489347.844
+ 39.600 30.100
+ -20486126.781 7 -15963198.903 7 20542343.558 20542342.803 20542343.088
+ 44.900 43.400
+ -4282868.311 4 -3337297.519 3 23438647.877 23438647.941 23438646.937
+ 29.000 23.800
+ -15453148.927 7 -12041407.895 7 20427231.845 20427230.832 20427230.627
+ 44.900 46.700
+ -7862660.504 5 -6126741.645 4 23317290.837 23317289.391 23317290.377
+ 32.400 28.100
+ -22349016.972 7 -17414811.577 8 20469026.616 20469025.719 20469026.302
+ 47.400 48.500
+ -342078.879 2 -266554.372 2 24327385.040 24327386.077 24327383.933
+ 13.900 17.800
+ -12039390.439 5 -9381348.459 4 22642374.807 22642374.272 22642373.669
+ 32.600 27.400
+ -19721530.583 7 -15367411.977 7 20680837.012 20680836.699 20680836.099
+ 46.300 43.100
+ 06 1 2 19 16 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11500819.913 6 -8961668.185 5 22496732.246 22496731.317 22496730.982
+ 39.900 30.200
+ -20533543.412 7 -16000146.914 7 20533320.302 20533319.701 20533319.907
+ 45.100 43.400
+ -4239356.007 4 -3303391.845 3 23446927.714 23446928.019 23446927.012
+ 28.600 23.400
+ -15455350.306 7 -12043123.253 7 20426812.566 20426811.955 20426811.532
+ 44.900 46.700
+ -7962797.180 5 -6204770.143 4 23298235.902 23298234.061 23298235.099
+ 33.200 28.600
+ -22322288.666 7 -17393984.328 8 20474113.030 20474111.926 20474112.531
+ 47.500 48.300
+ -444266.134 3 -346180.724 3 24307939.857 24307941.327 24307938.455
+ 20.500 23.000
+ -11939077.198 5 -9303182.348 4 22661463.590 22661463.237 22661462.779
+ 32.000 26.800
+ -19680006.147 7 -15335055.282 7 20688738.930 20688738.491 20688737.978
+ 46.400 43.000
+ 06 1 2 19 16 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11461448.333 6 -8930989.021 4 22504224.620 22504223.333 22504223.329
+ 40.500 29.700
+ -20580498.165 7 -16036735.023 7 20524385.029 20524384.466 20524384.664
+ 44.900 43.400
+ -4195311.393 4 -3269071.393 3 23455309.287 23455309.756 23455308.685
+ 29.500 23.800
+ -15457251.008 7 -12044604.314 7 20426450.975 20426450.320 20426449.837
+ 44.800 46.700
+ -8062740.803 5 -6282648.203 4 23279217.170 23279215.370 23279216.426
+ 32.100 29.700
+ -22295220.690 7 -17372892.396 8 20479263.907 20479262.791 20479263.423
+ 47.500 48.300
+ -546247.470 4 -425646.623 4 24288533.767 24288534.883 24288532.456
+ 24.900 25.300
+ -11838485.141 5 -9224798.973 4 22680606.488 22680605.369 22680605.130
+ 31.800 27.400
+ -19638088.710 7 -15302392.353 7 20696715.422 20696715.219 20696714.504
+ 46.300 43.100
+ 06 1 2 19 17 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11421502.694 6 -8899862.548 5 22511825.668 22511824.760 22511824.394
+ 40.000 30.100
+ -20626990.362 7 -16072962.697 7 20515538.010 20515537.308 20515537.584
+ 45.000 43.600
+ -4150736.868 4 -3234338.006 4 23463791.292 23463792.184 23463790.603
+ 28.400 24.600
+ -15458850.535 7 -12045850.698 7 20426146.793 20426145.936 20426145.622
+ 44.800 46.600
+ -8162489.931 5 -6360374.723 5 23260235.322 23260233.615 23260234.677
+ 31.800 30.100
+ -22267812.986 7 -17351535.746 8 20484479.547 20484478.310 20484479.008
+ 47.300 48.300
+ -648020.238 4 -504950.034 3 24269167.119 24269167.497 24269165.860
+ 25.600 23.400
+ -11737616.613 5 -9146200.192 4 22699800.583 22699799.960 22699799.471
+ 32.300 26.800
+ -19595780.108 7 -15269424.621 7 20704766.515 20704766.279 20704765.538
+ 46.200 43.200
+ 06 1 2 19 17 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11380984.519 6 -8868289.931 5 22519535.405 22519535.266 22519534.488
+ 39.400 30.100
+ -20673020.048 7 -16108829.974 7 20506778.916 20506778.205 20506778.465
+ 45.200 43.600
+ -4105634.623 4 -3199193.412 4 23472373.980 23472374.783 23472373.392
+ 29.000 24.600
+ -15460148.223 7 -12046861.877 7 20425899.799 20425898.963 20425898.565
+ 44.900 46.700
+ -8262043.381 5 -6437948.747 5 23241290.341 23241289.357 23241289.963
+ 31.500 30.100
+ -22240065.717 7 -17329914.502 8 20489759.716 20489758.469 20489759.140
+ 47.600 48.300
+ -749582.018 3 -584089.010 3 24249839.924 24249841.052 24249838.980
+ 21.600 23.400
+ -11636473.727 5 -9067387.601 4 22719046.967 22719047.112 22719046.597
+ 33.100 26.500
+ -19553082.058 7 -15236153.424 7 20712891.560 20712891.490 20712890.642
+ 46.100 43.200
+ 06 1 2 19 18 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11339895.071 6 -8836272.174 4 22527354.972 22527353.689 22527353.976
+ 39.700 28.400
+ -20718586.376 7 -16144336.199 7 20498108.035 20498107.149 20498107.510
+ 45.100 43.600
+ -4060007.275 5 -3163639.640 3 23481057.220 23481057.298 23481056.569
+ 30.100 23.800
+ -15461143.575 7 -12047637.469 7 20425710.187 20425709.537 20425709.022
+ 44.700 46.700
+ -8361399.499 5 -6515369.032 4 23222384.252 23222382.256 23222383.327
+ 33.000 29.000
+ -22211978.693 7 -17308028.514 8 20495104.406 20495103.198 20495103.850
+ 47.600 48.200
+ -850930.222 4 -663061.580 3 24230554.402 24230554.977 24230553.405
+ 24.900 20.500
+ -11535058.609 5 -8988362.886 4 22738346.847 22738345.397 22738345.331
+ 31.500 26.200
+ -19509996.359 7 -15202580.165 7 20721090.444 20721090.365 20721089.575
+ 46.400 43.000
+ 06 1 2 19 18 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11298236.079 6 -8803810.608 4 22535283.239 22535281.141 22535281.789
+ 39.800 28.400
+ -20763689.120 7 -16179481.182 7 20489524.960 20489524.297 20489524.534
+ 44.800 43.700
+ -4013857.200 4 -3127678.567 4 23489839.009 23489839.330 23489838.286
+ 28.800 25.300
+ -15461836.081 7 -12048177.080 7 20425578.527 20425577.769 20425577.344
+ 44.500 46.700
+ -8460556.967 5 -6592634.556 4 23203515.202 23203513.126 23203514.327
+ 33.500 29.000
+ -22183552.153 7 -17285877.965 8 20500513.865 20500512.532 20500513.292
+ 47.600 48.000
+ -952062.288 3 -741865.744 3 24211308.320 24211309.545 24211307.627
+ 21.100 19.300
+ -11433373.349 5 -8909127.682 4 22757696.313 22757695.566 22757695.371
+ 30.800 25.600
+ -19466525.106 7 -15168706.474 7 20729362.974 20729362.563 20729362.091
+ 46.200 42.800
+ 06 1 2 19 19 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11256008.965 6 -8770906.366 4 22543318.373 22543316.940 22543317.034
+ 39.800 28.800
+ -20808327.779 7 -16214264.545 7 20481030.545 20481029.942 20481030.090
+ 44.900 43.600
+ -3967186.087 5 -3091311.485 4 23498720.520 23498720.739 23498719.717
+ 30.100 25.900
+ -15462225.067 7 -12048480.180 7 20425504.331 20425503.752 20425503.217
+ 44.600 46.600
+ -8559514.797 5 -6669744.504 5 23184683.858 23184682.218 23184682.990
+ 32.600 30.600
+ -22154785.984 7 -17263462.766 8 20505987.852 20505986.531 20505987.319
+ 47.700 48.000
+ -1052975.620 3 -820499.460 2 24192107.055 24192107.072 24192105.898
+ 22.600 16.100
+ -11331420.599 5 -8829684.040 4 22777096.970 22777096.608 22777096.362
+ 31.300 24.900
+ -19422669.780 7 -15134533.506 7 20737708.397 20737707.898 20737707.448
+ 46.300 42.700
+ 06 1 2 19 19 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11213215.051 6 -8737560.457 4 22551461.587 22551460.529 22551460.345
+ 39.700 29.000
+ -20852502.147 7 -16248686.119 7 20472624.264 20472623.906 20472623.938
+ 44.800 43.900
+ -3919997.074 4 -3054540.848 4 23507700.176 23507700.402 23507699.455
+ 29.000 25.600
+ -15462310.081 7 -12048546.421 7 20425488.172 20425487.512 20425487.101
+ 44.600 46.600
+ -8658271.635 5 -6746697.812 5 23165890.946 23165889.184 23165890.146
+ 32.700 30.100
+ -22125680.159 7 -17240782.905 8 20511526.713 20511525.302 20511526.143
+ 47.700 48.100
+ -1153667.659 3 -898960.737 1 24172945.276 24172946.493 24172943.662
+ 22.600 11.000
+ -11229202.418 5 -8750033.549 4 22796549.068 22796547.979 22796547.944
+ 31.800 26.500
+ -19378432.024 7 -15100062.540 7 20746126.512 20746126.103 20746125.550
+ 46.300 42.500
+ 06 1 2 19 20 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11169855.762 6 -8703773.998 4 22559712.342 22559711.441 22559711.215
+ 39.500 29.700
+ -20896211.935 7 -16282745.683 7 20464306.669 20464306.167 20464306.264
+ 44.800 43.900
+ -3872292.434 4 -3017368.426 4 23516778.044 23516778.700 23516777.246
+ 29.200 26.800
+ -15462090.637 7 -12048375.423 7 20425529.855 20425529.196 20425528.857
+ 44.600 46.500
+ -8756825.914 5 -6823493.314 4 23147136.963 23147134.650 23147136.113
+ 33.800 29.700
+ -22096234.755 7 -17217838.436 7 20517130.031 20517128.515 20517129.459
+ 47.900 47.700
+ -1254135.847 3 -977247.627 1 24153825.349 24153827.077 24153824.582
+ 20.500 11.000
+ -11126720.773 5 -8670177.787 4 22816051.013 22816049.879 22816049.901
+ 31.100 27.100
+ -19333813.898 7 -15065295.176 7 20754616.982 20754616.673 20754616.060
+ 46.200 42.500
+ 06 1 2 19 20 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11125932.939 6 -8669548.427 4 22568070.831 22568069.734 22568069.759
+ 39.800 29.200
+ -20939456.687 7 -16316442.881 7 20456077.582 20456076.951 20456077.075
+ 44.700 44.000
+ -3824074.221 4 -2979795.807 4 23525953.685 23525954.284 23525952.824
+ 28.600 25.600
+ -15461566.132 7 -12047966.715 7 20425629.812 20425628.967 20425628.627
+ 44.700 46.500
+ -8855176.635 5 -6900130.171 5 23128421.164 23128419.225 23128420.439
+ 33.000 30.800
+ -22066450.034 7 -17194629.560 7 20522797.672 20522796.324 20522797.202
+ 47.800 47.700
+ -1354377.556 4 -1055358.038 2 24134751.317 24134751.559 24134750.345
+ 26.500 16.100
+ -11023977.950 5 -8590118.509 4 22835600.665 22835601.539 22835600.851
+ 31.100 27.100
+ -19288817.439 7 -15030233.013 7 20763179.421 20763179.205 20763178.651
+ 46.400 42.500
+ 06 1 2 19 21 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11081447.965 6 -8634884.832 4 22576535.731 22576535.350 22576534.810
+ 39.100 29.900
+ -20982236.097 7 -16349777.469 7 20447936.922 20447936.242 20447936.514
+ 44.900 43.800
+ -3775345.196 4 -2941825.165 4 23535226.450 23535226.981 23535225.735
+ 29.000 25.900
+ -15460735.972 7 -12047319.839 7 20425787.864 20425787.003 20425786.665
+ 44.600 46.500
+ -8953322.203 5 -6976607.165 5 23109744.554 23109742.638 23109743.868
+ 32.600 30.600
+ -22036325.763 8 -17171156.101 7 20528530.179 20528528.824 20528529.720
+ 48.000 47.700
+ -1454390.235 4 -1133289.951 3 24115719.214 24115720.569 24115717.907
+ 28.600 23.800
+ -10920976.263 5 -8509857.506 4 22855202.765 22855202.032 22855201.629
+ 30.200 25.300
+ -19243444.196 7 -14994877.250 7 20771813.700 20771813.475 20771812.868
+ 46.400 42.500
+ 06 1 2 19 21 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -11036402.344 6 -8599784.361 4 22585107.083 22585106.867 22585106.267
+ 38.400 29.500
+ -21024549.943 7 -16382749.288 7 20439884.857 20439884.224 20439884.436
+ 45.000 44.100
+ -3726107.643 4 -2903458.279 4 23544596.225 23544597.060 23544595.483
+ 28.600 25.900
+ -15459599.703 7 -12046434.436 7 20426004.061 20426003.336 20426002.953
+ 45.000 46.600
+ -9051261.456 5 -7052923.370 5 23091107.624 23091105.532 23091106.637
+ 32.300 31.500
+ -22005861.985 7 -17147418.093 7 20534327.406 20534325.864 20534326.847
+ 47.800 47.800
+ -1554171.267 4 -1211041.352 4 24096731.684 24096732.401 24096730.704
+ 26.500 26.500
+ -10817717.791 4 -8429396.435 4 22874852.533 22874851.333 22874851.348
+ 29.700 25.600
+ -19197695.830 7 -14959229.177 7 20780519.451 20780519.125 20780518.568
+ 46.500 42.500
+ 06 1 2 19 22 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10990797.921 6 -8564248.477 4 22593786.126 22593784.874 22593784.969
+ 39.100 28.100
+ -21066397.819 7 -16415358.008 7 20431921.300 20431920.853 20431920.929
+ 44.900 44.300
+ -3676364.437 4 -2864697.361 4 23554061.872 23554062.746 23554061.277
+ 28.600 26.500
+ -15458156.760 7 -12045310.067 7 20426278.637 20426277.938 20426277.581
+ 44.900 46.700
+ -9148993.020 5 -7129077.729 5 23072509.732 23072507.612 23072508.973
+ 33.100 31.100
+ -21975058.896 7 -17123415.689 7 20540188.977 20540187.507 20540188.507
+ 47.900 47.500
+ -1653718.135 4 -1288610.287 4 24077788.948 24077789.171 24077787.930
+ 27.100 27.100
+ -10714205.042 5 -8348737.209 4 22894549.463 22894549.743 22894548.809
+ 31.300 26.500
+ -19151574.449 7 -14923290.443 7 20789296.040 20789295.814 20789295.209
+ 46.300 42.600
+ 06 1 2 19 22 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10944635.983 6 -8528278.158 4 22602570.542 22602569.662 22602569.375
+ 39.300 29.200
+ -21107779.546 7 -16447603.493 7 20424046.694 20424046.158 20424046.299
+ 45.000 44.200
+ -3626117.846 4 -2825544.207 4 23563623.327 23563624.352 23563622.591
+ 29.200 25.600
+ -15456406.607 7 -12043946.310 7 20426611.918 20426610.921 20426610.679
+ 45.100 46.600
+ -9246515.737 5 -7205069.354 5 23053951.296 23053949.582 23053950.702
+ 34.100 31.800
+ -21943916.342 7 -17099148.763 7 20546115.290 20546113.711 20546114.668
+ 47.900 47.500
+ -1753028.232 4 -1365994.706 4 24058889.650 24058891.209 24058888.779
+ 24.900 28.400
+ -10610439.990 5 -8267881.383 4 22914296.105 22914295.357 22914294.911
+ 30.400 25.900
+ -19105081.911 7 -14887062.491 7 20798143.338 20798143.029 20798142.363
+ 46.300 42.500
+ 06 1 2 19 23 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10897918.337 6 -8491874.822 4 22611460.399 22611459.574 22611459.125
+ 38.400 27.900
+ -21148694.728 7 -16479485.436 7 20416260.786 20416260.192 20416260.397
+ 45.000 44.400
+ -3575369.920 4 -2786000.384 4 23573280.641 23573281.034 23573279.917
+ 29.500 25.600
+ -15454348.727 7 -12042342.770 7 20427003.474 20427002.523 20427002.271
+ 45.100 46.400
+ -9343828.468 5 -7280897.338 5 23035433.428 23035431.340 23035432.632
+ 33.600 31.300
+ -21912434.425 7 -17074617.399 7 20552105.917 20552104.537 20552105.430
+ 47.700 47.400
+ -1852098.896 3 -1443192.573 4 24040038.023 24040038.075 24040037.053
+ 23.000 26.800
+ -10506425.148 5 -8186830.908 4 22934089.665 22934088.580 22934088.414
+ 31.500 25.600
+ -19058219.826 7 -14850546.574 7 20807060.846 20807060.618 20807059.882
+ 46.100 42.500
+ 06 1 2 19 23 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10850646.678 6 -8455039.793 4 22620456.007 22620454.884 22620454.757
+ 38.400 28.100
+ -21189143.068 7 -16511003.604 7 20408563.645 20408563.130 20408563.329
+ 45.200 44.300
+ -3524123.785 4 -2746068.374 4 23583032.462 23583032.868 23583031.602
+ 29.000 25.900
+ -15451982.578 7 -12040499.019 7 20427453.521 20427452.775 20427452.416
+ 45.100 46.500
+ -9440929.743 5 -7356560.566 5 23016956.359 23016953.549 23016955.363
+ 35.300 31.500
+ -21880613.563 7 -17049821.932 7 20558161.210 20558159.855 20558160.636
+ 47.600 47.400
+ -1950927.635 2 -1520201.885 3 24021230.190 24021231.753 24021229.292
+ 17.000 21.100
+ -10402162.637 5 -8105587.443 4 22953929.724 22953929.183 22953928.756
+ 30.800 24.600
+ -19010990.440 7 -14813744.448 7 20816048.271 20816048.026 20816047.376
+ 46.200 42.500
+ 06 1 2 19 24 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10802822.788 6 -8417774.452 4 22629556.835 22629555.409 22629555.698
+ 39.300 27.900
+ -21229124.629 7 -16542158.048 7 20400955.359 20400954.864 20400955.060
+ 45.000 44.300
+ -3472381.620 5 -2705749.837 4 23592878.978 23592879.675 23592878.161
+ 30.200 25.600
+ -15449307.472 7 -12038414.525 7 20427962.644 20427961.774 20427961.436
+ 44.900 46.400
+ -9537818.273 5 -7432058.031 5 22998518.579 22998516.320 22998517.804
+ 35.100 32.100
+ -21848453.303 7 -17024761.992 7 20564280.956 20564279.786 20564280.539
+ 47.700 47.400
+ -2049511.699 3 -1597020.532 4 24002470.699 24002473.019 24002470.225
+ 21.100 26.200
+ -10297654.720 5 -8024152.752 4 22973817.608 22973816.482 22973816.337
+ 31.100 24.900
+ -18963395.234 7 -14776657.260 7 20825105.339 20825105.130 20825104.444
+ 46.100 42.300
+ 06 1 2 19 24 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10754448.011 6 -8380079.842 4 22638761.926 22638760.847 22638760.962
+ 39.100 28.100
+ -21268639.143 7 -16572948.557 7 20393436.174 20393435.501 20393435.704
+ 45.200 44.500
+ -3420145.765 4 -2665046.604 4 23602818.991 23602819.719 23602818.277
+ 29.200 25.600
+ -15446323.084 7 -12036089.030 7 20428530.582 20428529.721 20428529.392
+ 45.000 46.400
+ -9634492.713 5 -7507388.670 5 22980121.320 22980119.671 22980120.888
+ 33.800 32.000
+ -21815953.480 7 -16999437.455 7 20570465.808 20570464.318 20570465.206
+ 47.700 47.300
+ -2147848.682 3 -1673646.694 3 23983757.332 23983759.042 23983756.520
+ 22.600 19.900
+ -10192903.386 4 -7942528.402 4 22993750.909 22993750.322 22993749.822
+ 29.000 24.900
+ -18915436.254 7 -14739286.617 7 20834231.655 20834231.305 20834230.767
+ 46.200 42.200
+ 06 1 2 19 25 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10705524.160 6 -8341957.385 4 22648071.757 22648071.233 22648070.767
+ 38.600 28.800
+ -21307686.144 7 -16603374.773 7 20386005.676 20386005.109 20386005.311
+ 45.200 44.600
+ -3367418.956 4 -2623960.797 4 23612852.241 23612853.016 23612851.438
+ 28.400 25.300
+ -15443028.762 7 -12033522.023 7 20429157.479 20429156.676 20429156.332
+ 45.100 46.400
+ -9730951.877 5 -7582551.554 5 22961766.348 22961763.924 22961765.400
+ 33.400 32.000
+ -21783114.848 7 -16973848.913 7 20576714.615 20576713.243 20576714.170
+ 47.700 47.400
+ -2245935.856 4 -1750078.241 3 23965093.388 23965092.741 23965092.185
+ 26.500 18.600
+ -10087911.304 4 -7860716.440 4 23013729.687 23013729.612 23013728.959
+ 28.800 24.600
+ -18867115.050 7 -14701633.725 7 20843427.015 20843426.539 20843425.961
+ 46.200 42.100
+ 06 1 2 19 25 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10656053.203 6 -8303408.610 4 22657485.941 22657485.263 22657484.775
+ 38.100 28.600
+ -21346265.599 7 -16633436.665 7 20378664.202 20378663.670 20378663.872
+ 45.200 44.600
+ -3314204.061 4 -2582494.697 4 23622978.710 23622979.374 23622977.768
+ 26.200 25.300
+ -15439423.991 7 -12030713.113 7 20429843.517 20429842.679 20429842.326
+ 44.900 46.400
+ -9827194.563 5 -7657545.776 5 22943451.712 22943449.183 22943450.852
+ 33.900 30.600
+ -21749937.280 7 -16947996.265 7 20583028.129 20583026.721 20583027.598
+ 47.700 47.300
+ -2343770.622 4 -1826313.078 3 23946475.218 23946476.650 23946474.118
+ 26.200 22.100
+ -9982680.617 4 -7778718.560 4 23033755.293 23033754.234 23033753.942
+ 28.600 24.900
+ -18818433.689 7 -14663700.188 7 20852690.630 20852690.262 20852689.643
+ 46.200 42.000
+ 06 1 2 19 26 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10606036.593 6 -8264434.652 4 22667003.626 22667002.765 22667002.724
+ 38.800 27.100
+ -21384377.331 7 -16663134.096 7 20371411.922 20371411.177 20371411.456
+ 45.000 44.500
+ -3260503.664 4 -2540650.274 3 23633197.796 23633198.286 23633197.046
+ 28.100 23.000
+ -15435508.296 7 -12027661.924 7 20430588.480 20430587.800 20430587.370
+ 44.900 46.500
+ -9923219.294 5 -7732370.192 5 22925178.699 22925176.249 22925177.801
+ 33.400 30.800
+ -21716420.794 7 -16921879.527 7 20589406.041 20589404.682 20589405.574
+ 47.700 47.100
+ -2441350.386 4 -1902349.198 2 23927905.974 23927906.707 23927905.149
+ 28.400 17.800
+ -9877213.708 4 -7696536.610 3 23053824.455 23053823.701 23053823.485
+ 28.800 23.800
+ -18769393.970 7 -14625487.409 7 20862022.427 20862022.236 20862021.532
+ 46.400 42.200
+ 06 1 2 19 26 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10555476.162 6 -8225036.909 4 22676625.262 22676623.857 22676624.056
+ 38.600 28.400
+ -21422021.280 7 -16692467.022 7 20364248.379 20364247.676 20364247.984
+ 45.000 44.600
+ -3206320.531 4 -2498429.696 3 23643508.486 23643508.740 23643507.682
+ 27.100 21.100
+ -15431281.116 7 -12024368.020 7 20431392.842 20431392.114 20431391.671
+ 44.800 46.400
+ -10019025.059 5 -7807023.995 5 22906947.209 22906945.107 22906946.545
+ 34.100 30.800
+ -21682565.396 7 -16895498.700 7 20595848.672 20595847.138 20595848.016
+ 47.500 47.100
+ -2538672.522 4 -1978184.659 2 23909387.040 23909385.799 23909385.982
+ 27.100 12.600
+ -9771512.693 4 -7614172.237 3 23073938.671 23073938.220 23073937.961
+ 29.700 23.400
+ -18719997.570 7 -14586996.701 7 20871422.522 20871422.010 20871421.529
+ 46.500 42.100
+ 06 1 2 19 27 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10504373.769 6 -8185216.860 4 22686349.907 22686348.856 22686348.667
+ 39.100 29.000
+ -21459197.166 7 -16721435.223 7 20357173.968 20357173.288 20357173.583
+ 44.800 44.600
+ -3151656.687 4 -2455834.524 3 23653910.669 23653911.386 23653909.867
+ 26.500 23.400
+ -15426741.898 7 -12020830.964 7 20432256.692 20432255.812 20432255.546
+ 44.900 46.200
+ -10114610.860 5 -7881506.394 5 22888757.989 22888755.966 22888757.159
+ 34.700 32.400
+ -21648371.388 7 -16868854.018 7 20602355.451 20602354.075 20602354.836
+ 47.300 47.000
+ -2635734.576 4 -2053817.395 2 23890915.505 23890915.757 23890914.941
+ 27.900 17.800
+ -9665579.846 4 -7531627.219 4 23094097.858 23094096.465 23094096.499
+ 29.000 24.600
+ -18670246.637 7 -14548229.734 6 20880889.794 20880889.242 20880888.867
+ 46.600 41.800
+ 06 1 2 19 27 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10452731.223 6 -8144975.919 4 22696177.153 22696176.678 22696175.876
+ 38.900 28.100
+ -21495904.882 7 -16750038.616 7 20350188.822 20350187.987 20350188.398
+ 45.000 44.600
+ -3096515.296 4 -2412867.247 3 23664403.094 23664404.361 23664402.147
+ 26.500 23.800
+ -15421890.174 7 -12017050.399 7 20433180.021 20433179.060 20433178.859
+ 44.900 46.200
+ -10209974.885 5 -7955816.001 5 22870610.586 22870608.645 22870610.063
+ 34.900 32.400
+ -21613838.510 7 -16841945.283 7 20608926.852 20608925.497 20608926.212
+ 47.400 47.000
+ -2732533.716 4 -2129245.300 3 23872496.475 23872496.610 23872495.243
+ 28.100 22.100
+ -9559417.653 4 -7448903.489 4 23114298.176 23114298.767 23114298.046
+ 29.200 24.200
+ -18620142.932 7 -14509187.884 7 20890424.213 20890423.688 20890423.315
+ 46.700 42.000
+ 06 1 2 19 28 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10400550.191 6 -8104315.372 4 22706106.631 22706105.953 22706105.617
+ 38.600 27.600
+ -21532144.278 7 -16778277.084 7 20343292.606 20343291.892 20343292.211
+ 45.000 44.700
+ -3040898.780 4 -2369529.758 3 23674987.243 23674988.225 23674986.333
+ 27.100 23.400
+ -15416725.439 7 -12013025.932 7 20434162.922 20434161.902 20434161.699
+ 44.800 46.100
+ -10305116.160 5 -8029952.041 5 22852506.096 22852503.725 22852505.357
+ 34.700 32.300
+ -21578967.092 7 -16814772.750 7 20615562.735 20615561.330 20615562.118
+ 47.400 47.100
+ -2829067.446 4 -2204466.316 4 23854126.380 23854127.643 23854125.152
+ 25.600 24.200
+ -9453028.315 4 -7366002.729 3 23134544.320 23134543.571 23134543.432
+ 29.000 23.000
+ -18569688.151 7 -14469872.468 6 20900025.472 20900024.950 20900024.496
+ 46.600 41.800
+ 06 1 2 19 28 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10347832.699 6 -8063236.795 4 22716138.451 22716137.311 22716137.369
+ 38.400 27.400
+ -21567915.136 7 -16806150.458 7 20336485.644 20336484.901 20336485.205
+ 44.800 44.800
+ -2984810.339 4 -2325824.510 4 23685660.718 23685661.352 23685659.873
+ 27.100 24.200
+ -15411247.136 7 -12008757.122 7 20435205.330 20435204.348 20435204.139
+ 44.900 46.200
+ -10400033.167 5 -8103913.346 5 22834444.075 22834441.582 22834443.133
+ 34.900 32.600
+ -21543757.047 7 -16787336.354 7 20622262.915 20622261.602 20622262.352
+ 47.500 47.100
+ -2925333.102 4 -2279478.458 3 23835807.028 23835808.031 23835806.121
+ 25.900 21.600
+ -9346414.004 4 -7282926.691 3 23154832.906 23154831.738 23154831.710
+ 28.400 21.600
+ -18518884.214 7 -14430284.987 6 20909692.902 20909692.656 20909692.026
+ 46.500 41.700
+ 06 1 2 19 29 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10294580.471 6 -8021741.555 4 22726271.704 22726270.889 22726270.553
+ 37.500 27.600
+ -21603217.604 7 -16833658.858 7 20329767.749 20329767.143 20329767.425
+ 45.100 44.900
+ -2928252.195 4 -2281753.260 3 23696423.657 23696424.010 23696422.911
+ 26.500 23.800
+ -15405454.778 7 -12004243.594 7 20436307.390 20436306.582 20436306.289
+ 44.800 46.200
+ -10494725.154 5 -8177699.322 5 22816425.053 22816422.428 22816423.977
+ 35.300 32.700
+ -21508208.183 7 -16759635.945 7 20629027.782 20629026.356 20629027.182
+ 47.700 46.900
+ -3021328.094 4 -2354279.692 4 23817540.464 23817540.759 23817539.160
+ 25.300 26.800
+ -9239577.188 4 -7199677.266 3 23175161.684 23175162.623 23175161.633
+ 29.000 23.400
+ -18467733.193 7 -14390427.046 7 20919426.446 20919426.441 20919425.648
+ 46.200 42.000
+ 06 1 2 19 29 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10240795.446 6 -7979831.148 4 22736507.067 22736505.933 22736505.869
+ 38.000 27.600
+ -21638051.429 7 -16860802.081 7 20323139.156 20323138.507 20323138.747
+ 45.000 44.900
+ -2871226.919 4 -2237318.030 4 23707274.976 23707275.309 23707273.946
+ 27.600 24.900
+ -15399347.816 7 -11999484.921 7 20437469.680 20437468.757 20437468.492
+ 45.000 46.100
+ -10589190.638 5 -8251308.788 5 22798449.047 22798446.314 22798447.975
+ 35.200 32.600
+ -21472321.287 7 -16731672.130 7 20635856.768 20635855.450 20635856.200
+ 47.800 46.900
+ -3117049.827 4 -2428867.954 4 23799325.556 23799325.848 23799323.972
+ 24.200 27.900
+ -9132520.287 4 -7116256.352 3 23195535.377 23195535.017 23195534.250
+ 28.800 23.000
+ -18416236.755 7 -14350299.958 6 20929226.041 20929226.000 20929225.093
+ 46.300 41.900
+ 06 1 2 19 30 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10186479.495 6 -7937507.030 4 22746843.347 22746841.829 22746841.808
+ 37.300 28.100
+ -21672416.678 7 -16887580.180 7 20316599.627 20316598.939 20316599.208
+ 44.800 45.100
+ -2813737.582 4 -2192521.189 4 23718214.618 23718215.788 23718213.890
+ 27.400 24.900
+ -15392925.843 7 -11994480.786 7 20438691.823 20438690.913 20438690.606
+ 44.800 46.300
+ -10683428.479 5 -8324740.891 5 22780515.844 22780513.419 22780515.015
+ 35.600 32.300
+ -21436096.227 7 -16703444.812 7 20642750.068 20642748.809 20642749.509
+ 47.500 46.800
+ -3212495.642 4 -2503241.264 3 23781162.568 23781161.965 23781161.395
+ 25.600 22.600
+ -9025245.381 4 -7032665.567 3 23215947.959 23215948.630 23215947.691
+ 28.600 23.800
+ -18364396.735 7 -14309905.134 6 20939090.881 20939090.692 20939089.991
+ 46.100 41.800
+ 06 1 2 19 30 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10131634.676 6 -7894770.813 4 22757279.754 22757278.576 22757278.440
+ 38.000 29.200
+ -21706313.243 7 -16913993.079 7 20310149.357 20310148.550 20310148.900
+ 44.900 44.900
+ -2755786.906 4 -2147364.867 4 23729242.053 23729243.408 23729241.481
+ 27.100 25.300
+ -15386188.206 7 -11989230.676 7 20439973.621 20439973.026 20439972.552
+ 44.900 46.300
+ -10777437.382 5 -8397994.591 5 22762626.328 22762624.070 22762625.557
+ 35.500 32.100
+ -21399532.905 7 -16674953.908 7 20649707.882 20649706.573 20649707.271
+ 47.500 46.900
+ -3307662.908 4 -2577397.558 4 23763052.395 23763053.234 23763051.413
+ 24.200 26.200
+ -8917754.814 4 -6948906.736 3 23236404.523 23236403.506 23236402.852
+ 26.500 23.800
+ -18312215.074 7 -14269244.099 6 20949020.625 20949020.539 20949019.759
+ 46.100 41.900
+ 06 1 2 19 31 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10076262.852 6 -7851623.946 4 22767816.386 22767815.653 22767815.034
+ 37.200 28.400
+ -21739740.970 7 -16940040.646 7 20303788.318 20303787.574 20303787.853
+ 44.600 45.100
+ -2697377.735 4 -2101851.274 4 23740356.766 23740358.270 23740356.170
+ 26.800 24.200
+ -15379134.448 7 -11983734.239 7 20441315.977 20441315.283 20441314.912
+ 44.800 46.100
+ -10871216.221 6 -8471069.020 5 22744781.209 22744778.733 22744780.419
+ 36.400 32.700
+ -21362631.534 7 -16646199.592 7 20656730.002 20656728.666 20656729.433
+ 47.600 46.800
+ -3402549.056 4 -2651334.671 4 23744996.093 23744997.360 23744995.213
+ 24.900 26.500
+ -8810050.773 4 -6864981.590 3 23256897.818 23256898.729 23256897.651
+ 26.800 23.000
+ -18259693.593 7 -14228318.270 6 20959015.282 20959014.961 20959014.351
+ 46.200 41.600
+ 06 1 2 19 31 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -10020365.804 6 -7808067.816 4 22778453.150 22778452.515 22778452.035
+ 37.700 28.100
+ -21772699.994 7 -16965722.989 7 20297516.167 20297515.706 20297515.782
+ 44.800 45.300
+ -2638512.087 4 -2055981.974 3 23751559.468 23751559.790 23751558.697
+ 29.200 23.000
+ -15371764.007 7 -11977991.041 7 20442718.715 20442717.873 20442717.514
+ 44.800 46.200
+ -10964763.349 6 -8543962.884 5 22726979.661 22726977.273 22726978.852
+ 36.000 33.600
+ -21325392.081 7 -16617181.836 7 20663816.235 20663815.012 20663815.805
+ 47.400 46.800
+ -3497151.426 4 -2725050.787 3 23726994.013 23726994.476 23726993.142
+ 26.500 23.400
+ -8702136.058 4 -6780892.230 3 23277433.962 23277434.262 23277433.324
+ 26.800 22.100
+ -18206834.316 7 -14187129.224 6 20969073.957 20969073.820 20969073.087
+ 46.300 41.900
+ 06 1 2 19 32 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9963945.579 6 -7764104.011 4 22789189.906 22789189.184 22789188.542
+ 37.700 29.000
+ -21805190.309 7 -16991040.106 7 20291333.531 20291333.018 20291333.130
+ 44.900 45.500
+ -2579193.260 4 -2009759.542 4 23762847.238 23762848.094 23762846.384
+ 28.400 24.200
+ -15364076.582 7 -11972000.833 7 20444181.611 20444180.687 20444180.327
+ 44.800 46.100
+ -11058077.981 5 -8616675.572 5 22709222.455 22709219.961 22709221.687
+ 35.800 33.200
+ -21287814.883 7 -16587900.903 7 20670967.004 20670965.844 20670966.485
+ 47.500 46.700
+ -3591467.493 4 -2798543.738 4 23709046.601 23709046.570 23709045.389
+ 29.500 25.600
+ -8594012.887 4 -6696640.440 3 23298010.202 23298009.123 23298008.658
+ 27.600 21.100
+ -18153638.981 7 -14145678.322 6 20979196.853 20979196.511 20979195.891
+ 46.300 41.800
+ 06 1 2 19 32 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9907004.010 6 -7719733.969 4 22800025.644 22800024.723 22800024.364
+ 37.000 27.900
+ -21837211.771 7 -17015991.887 7 20285239.873 20285239.485 20285239.550
+ 44.800 45.400
+ -2519424.531 4 -1963186.539 3 23774220.583 23774221.384 23774219.953
+ 27.100 23.000
+ -15356071.442 7 -11965763.063 7 20445704.899 20445703.999 20445703.696
+ 44.900 46.000
+ -11151158.849 6 -8689206.106 5 22691509.556 22691507.239 22691508.734
+ 36.200 33.500
+ -21249899.826 7 -16558356.700 7 20678182.070 20678180.848 20678181.543
+ 47.700 46.600
+ -3685494.497 5 -2871811.485 3 23691153.622 23691153.685 23691152.684
+ 30.100 22.100
+ -8485683.288 4 -6612227.795 3 23318623.726 23318623.964 23318623.201
+ 28.100 21.100
+ -18100109.449 7 -14103967.001 6 20989382.980 20989382.936 20989382.170
+ 46.100 41.800
+ 06 1 2 19 33 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9849543.262 6 -7674959.378 4 22810959.807 22810958.672 22810958.548
+ 36.900 27.900
+ -21868764.515 7 -17040578.434 7 20279235.788 20279235.193 20279235.353
+ 45.000 45.400
+ -2459208.159 4 -1916264.707 3 23785679.318 23785680.132 23785678.844
+ 25.900 22.600
+ -15347748.153 7 -11959277.380 7 20447288.732 20447287.925 20447287.592
+ 44.700 46.100
+ -11244004.633 5 -8761553.436 5 22673841.268 22673839.316 22673840.583
+ 35.900 34.100
+ -21211647.307 7 -16528549.538 7 20685461.337 20685460.026 20685460.760
+ 47.700 46.600
+ -3779229.857 4 -2944851.971 4 23673316.573 23673316.638 23673315.229
+ 26.500 25.900
+ -8377149.714 4 -6527656.231 4 23339278.448 23339277.397 23339277.211
+ 27.100 24.200
+ -18046247.535 7 -14061996.690 6 20999632.688 20999632.481 20999631.768
+ 46.300 41.800
+ 06 1 2 19 33 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9791565.300 6 -7629781.758 4 22821992.996 22821991.725 22821991.498
+ 37.200 27.600
+ -21899848.552 7 -17064799.754 7 20273320.650 20273320.097 20273320.282
+ 44.900 45.400
+ -2398546.996 4 -1868996.312 3 23797222.779 23797224.147 23797222.120
+ 25.600 21.600
+ -15339106.310 7 -11952543.480 7 20448933.255 20448932.387 20448932.028
+ 44.800 46.000
+ -11336614.261 6 -8833716.749 5 22656218.194 22656216.299 22656217.513
+ 36.500 33.800
+ -21173057.252 7 -16498479.358 7 20692804.620 20692803.437 20692804.253
+ 47.700 46.600
+ -3872671.051 4 -3017663.263 3 23655534.969 23655534.764 23655533.800
+ 28.800 23.400
+ -8268414.513 4 -6442927.562 3 23359967.825 23359969.228 23359967.750
+ 25.600 22.600
+ -17992055.264 7 -14019768.957 6 21009945.256 21009945.001 21009944.314
+ 46.200 41.800
+ 06 1 2 19 34 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9733072.209 6 -7584202.738 4 22833123.477 22833122.445 22833122.457
+ 37.200 27.100
+ -21930463.981 7 -17088655.926 7 20267494.849 20267494.134 20267494.354
+ 44.700 45.500
+ -2337444.335 4 -1821383.895 3 23808850.481 23808851.180 23808849.752
+ 26.800 22.600
+ -15330145.326 7 -11945560.894 7 20450638.268 20450637.563 20450637.166
+ 44.700 46.000
+ -11428986.617 6 -8905695.171 5 22638640.321 22638638.259 22638639.644
+ 36.200 33.400
+ -21134129.999 7 -16468146.432 7 20700212.438 20700211.050 20700211.955
+ 47.800 46.500
+ -3965815.446 4 -3090243.232 3 23637809.639 23637810.075 23637808.627
+ 25.600 23.400
+ -8159480.086 4 -6358043.670 3 23380700.048 23380698.656 23380698.307
+ 24.900 21.600
+ -17937534.583 7 -13977285.321 6 21020320.252 21020319.836 21020319.308
+ 46.600 41.600
+ 06 1 2 19 34 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9674065.851 6 -7538223.769 4 22844352.002 22844351.138 22844351.016
+ 37.300 27.900
+ -21960610.590 7 -17112146.785 7 20261757.780 20261757.445 20261757.441
+ 44.500 45.600
+ -2275902.673 4 -1773429.380 3 23820561.368 23820562.865 23820560.429
+ 26.200 23.800
+ -15320864.753 7 -11938329.278 7 20452404.309 20452403.624 20452403.145
+ 44.700 45.900
+ -11521120.339 6 -8977487.642 5 22621108.205 22621105.594 22621107.436
+ 36.200 33.000
+ -21094865.535 7 -16437550.745 7 20707684.359 20707682.797 20707683.765
+ 47.800 46.400
+ -4058660.408 4 -3162589.900 3 23620141.476 23620142.173 23620140.728
+ 26.500 20.500
+ -8050349.068 4 -6273006.546 3 23401464.355 23401465.313 23401464.175
+ 24.900 20.500
+ -17882687.189 7 -13934547.101 6 21030757.516 21030757.103 21030756.530
+ 46.500 41.500
+ 06 1 2 19 35 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9614548.428 6 -7491846.564 4 22855677.969 22855676.684 22855676.696
+ 37.100 27.100
+ -21990288.596 7 -17135272.501 7 20256110.596 20256109.855 20256110.121
+ 44.700 45.600
+ -2213924.638 4 -1725134.842 3 23832355.659 23832356.557 23832354.748
+ 24.900 23.400
+ -15311264.071 7 -11930848.232 7 20454231.324 20454230.599 20454230.158
+ 44.600 46.100
+ -11613014.251 6 -9049093.243 5 22603621.472 22603618.964 22603620.583
+ 36.400 34.100
+ -21055264.084 7 -16406692.471 7 20715220.088 20715218.702 20715219.568
+ 47.700 46.400
+ -4151203.259 4 -3234701.181 3 23602531.254 23602531.677 23602530.204
+ 26.800 22.100
+ -7941023.523 4 -6187817.846 3 23422271.082 23422269.634 23422269.448
+ 27.400 20.500
+ -17827514.908 7 -13891555.728 6 21041256.285 21041255.969 21041255.411
+ 46.500 41.300
+ 06 1 2 19 35 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9554521.944 6 -7445072.701 4 22867100.669 22867099.249 22867099.386
+ 37.400 26.800
+ -22019498.332 7 -17158033.336 7 20250552.190 20250551.455 20250551.789
+ 44.800 45.600
+ -2151513.122 4 -1676502.529 3 23844231.778 23844232.884 23844230.859
+ 25.900 23.400
+ -15301342.780 7 -11923117.354 7 20456119.343 20456118.554 20456118.201
+ 44.900 46.000
+ -11704667.348 6 -9120511.186 5 22586180.108 22586178.079 22586179.435
+ 36.700 34.100
+ -21015325.619 7 -16375571.589 7 20722820.203 20722818.795 20722819.580
+ 47.600 46.300
+ -4243441.382 4 -3306575.003 3 23584979.723 23584979.184 23584978.565
+ 28.800 20.500
+ -7831505.412 4 -6102479.142 3 23443110.282 23443110.038 23443109.829
+ 29.000 20.500
+ -17772019.718 7 -13848312.729 6 21051816.661 21051816.421 21051815.734
+ 46.200 41.300
+ 06 1 2 19 36 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9493988.711 6 -7397903.954 4 22878619.836 22878618.343 22878618.798
+ 38.100 25.900
+ -22048239.566 7 -17180429.098 7 20245082.917 20245082.158 20245082.480
+ 45.000 45.700
+ -2088671.615 4 -1627535.162 3 23856190.233 23856191.453 23856189.699
+ 26.800 23.000
+ -15291100.496 7 -11915136.359 7 20458068.300 20458067.651 20458067.196
+ 44.800 46.100
+ -11796078.387 6 -9191740.530 5 22568785.520 22568783.019 22568784.652
+ 37.100 34.300
+ -20975050.260 7 -16344188.198 7 20730484.258 20730482.843 20730483.697
+ 47.700 46.000
+ -4335372.095 4 -3378209.288 4 23567485.291 23567485.480 23567484.048
+ 27.400 24.600
+ -7721797.633 4 -6016992.598 3 23463988.215 23463986.978 23463986.654
+ 28.100 22.100
+ -17716203.204 7 -13804819.351 6 21062438.051 21062437.864 21062437.225
+ 46.200 41.000
+ 06 1 2 19 36 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9432950.369 6 -7350341.618 4 22890234.848 22890233.760 22890233.592
+ 36.900 26.500
+ -22076512.501 7 -17202459.954 7 20239702.690 20239701.949 20239702.254
+ 45.100 45.600
+ -2025402.749 4 -1578234.767 3 23868230.236 23868230.657 23868229.456
+ 27.100 21.600
+ -15280536.645 7 -11906904.785 7 20460078.620 20460077.885 20460077.473
+ 44.700 46.100
+ -11887245.993 6 -9262780.194 5 22551436.977 22551434.290 22551435.932
+ 37.200 34.400
+ -20934438.227 7 -16312542.458 7 20738212.438 20738210.933 20738211.949
+ 47.600 45.900
+ -4426992.862 4 -3449602.024 4 23550050.176 23550051.411 23550049.078
+ 27.600 27.100
+ -7611902.445 4 -5931360.057 3 23484898.919 23484899.049 23484898.630
+ 26.800 19.900
+ -17660067.611 7 -13761077.343 6 21073120.324 21073120.199 21073119.422
+ 46.200 41.200
+ 06 1 2 19 37 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9371409.326 6 -7302387.579 4 22901945.344 22901945.225 22901944.340
+ 36.700 27.400
+ -22104317.481 7 -17224126.168 7 20234411.549 20234410.821 20234411.101
+ 45.000 45.700
+ -1961709.154 4 -1528603.438 3 23880350.593 23880351.696 23880349.865
+ 26.500 23.400
+ -15269650.808 7 -11898422.318 7 20462150.089 20462149.376 20462148.859
+ 44.700 46.000
+ -11978169.231 6 -9333629.433 5 22534134.449 22534132.229 22534133.470
+ 36.500 34.500
+ -20893490.047 7 -16280634.792 7 20746004.646 20746003.132 20746004.148
+ 47.600 45.600
+ -4518301.130 4 -3520751.238 4 23532675.026 23532675.838 23532673.776
+ 26.200 25.900
+ -7501822.494 4 -5845583.518 3 23505847.328 23505846.845 23505846.454
+ 26.800 21.100
+ -17603614.763 7 -13717088.119 6 21083862.970 21083862.766 21083862.040
+ 46.000 41.100
+ 06 1 2 19 37 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9309367.272 6 -7254043.126 4 22913751.727 22913751.026 22913750.717
+ 36.900 25.300
+ -22131654.157 7 -17245427.470 7 20229209.572 20229208.774 20229209.219
+ 45.100 45.700
+ -1897594.062 4 -1478643.652 4 23892551.268 23892552.678 23892550.724
+ 26.800 24.200
+ -15258442.426 7 -11889688.514 7 20464282.754 20464282.217 20464281.704
+ 44.600 46.100
+ -12068846.995 6 -9404287.387 5 22516878.813 22516876.671 22516877.998
+ 36.300 34.000
+ -20852205.573 7 -16248465.073 7 20753860.916 20753859.400 20753860.296
+ 47.700 45.700
+ -4609294.201 4 -3591654.850 4 23515360.189 23515359.704 23515359.040
+ 29.200 25.600
+ -7391559.570 4 -5759664.422 3 23526829.145 23526829.204 23526828.502
+ 25.300 21.600
+ -17546846.304 7 -13672852.963 6 21094665.668 21094665.516 21094664.729
+ 45.900 41.100
+ 06 1 2 19 38 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9246826.937 6 -7205310.419 4 22925653.074 22925651.938 22925651.796
+ 36.900 25.300
+ -22158523.156 7 -17266364.350 7 20224096.810 20224095.802 20224096.354
+ 45.100 45.900
+ -1833060.191 4 -1428357.578 3 23904831.807 23904833.048 23904830.713
+ 26.200 23.400
+ -15246911.103 7 -11880703.066 7 20466477.380 20466476.644 20466476.186
+ 44.800 45.800
+ -12159278.079 6 -9474753.154 5 22499670.663 22499668.036 22499669.731
+ 37.200 34.000
+ -20810585.062 7 -16216033.510 7 20761780.946 20761779.449 20761780.471
+ 47.800 45.700
+ -4699969.434 4 -3662310.805 4 23498104.210 23498105.436 23498103.395
+ 29.900 26.200
+ -7281116.272 4 -5673604.748 3 23547846.007 23547846.329 23547845.165
+ 24.600 23.800
+ -17489764.322 7 -13628373.503 6 21105528.084 21105527.841 21105527.163
+ 46.200 41.000
+ 06 1 2 19 38 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9183790.416 6 -7156191.054 4 22937648.421 22937647.882 22937646.912
+ 36.300 26.200
+ -22184924.436 7 -17286936.771 7 20219072.661 20219071.854 20219072.211
+ 44.900 45.900
+ -1768110.457 4 -1377747.424 3 23917191.685 23917192.349 23917190.651
+ 25.300 22.100
+ -15235056.347 7 -11871465.592 7 20468733.176 20468732.527 20468732.022
+ 44.600 46.000
+ -12249461.132 6 -9545025.636 5 22482509.242 22482506.980 22482508.528
+ 37.500 34.500
+ -20768628.380 7 -16183339.997 7 20769765.364 20769763.536 20769764.691
+ 47.900 45.600
+ -4790324.293 5 -3732717.132 3 23480911.395 23480910.625 23480910.259
+ 31.500 23.800
+ -7170495.038 4 -5587406.459 3 23568897.024 23568896.874 23568896.222
+ 26.200 23.800
+ -17432370.733 7 -13583651.236 6 21116449.724 21116449.587 21116448.826
+ 46.400 41.100
+ 06 1 2 19 39 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9120259.741 6 -7106686.660 4 22949738.024 22949736.994 22949736.967
+ 36.300 24.900
+ -22210858.108 7 -17307144.820 7 20214137.548 20214136.844 20214137.154
+ 45.000 46.100
+ -1702748.130 4 -1326815.783 3 23929629.260 23929630.345 23929628.199
+ 24.900 20.500
+ -15222877.710 7 -11861975.742 7 20471050.465 20471049.946 20471049.368
+ 44.500 45.800
+ -12339395.061 6 -9615103.989 5 22465395.703 22465393.105 22465394.731
+ 37.800 34.900
+ -20726335.795 8 -16150384.745 7 20777813.373 20777811.572 20777812.720
+ 48.000 45.600
+ -4880356.115 4 -3802871.727 4 23463777.592 23463778.877 23463776.314
+ 26.500 26.800
+ -7059698.331 4 -5501071.478 3 23589980.101 23589980.937 23589979.782
+ 25.300 21.600
+ -17374667.244 7 -13538687.478 6 21127430.294 21127430.045 21127429.471
+ 46.500 40.700
+ 06 1 2 19 39 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -9056236.922 6 -7056798.770 4 22961921.541 22961920.175 22961920.009
+ 36.200 27.400
+ -22236324.444 7 -17326988.711 7 20209291.384 20209290.740 20209291.067
+ 44.800 46.100
+ -1636976.214 4 -1275564.956 3 23942145.397 23942146.725 23942144.705
+ 26.500 23.400
+ -15210374.732 7 -11852233.163 7 20473429.769 20473429.122 20473428.666
+ 44.700 45.700
+ -12429078.944 6 -9684987.509 5 22448329.315 22448326.810 22448328.424
+ 38.000 35.200
+ -20683707.500 8 -16117167.896 7 20785925.237 20785923.457 20785924.638
+ 48.100 45.600
+ -4970062.348 4 -3872772.599 4 23446707.688 23446707.639 23446706.470
+ 28.400 25.900
+ -6948728.310 4 -5414601.376 3 23611097.856 23611097.375 23611097.179
+ 24.900 19.300
+ -17316655.576 7 -13493483.584 6 21138469.766 21138469.345 21138468.825
+ 46.400 40.600
+ 06 1 2 19 40 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8991724.452 5 -7006529.343 4 22974197.229 22974196.304 22974196.204
+ 35.700 24.900
+ -22261323.638 7 -17346468.595 7 20204534.405 20204533.545 20204533.965
+ 44.800 46.000
+ -1570797.532 4 -1223997.189 3 23954738.730 23954739.989 23954738.051
+ 25.600 23.000
+ -15197546.842 7 -11842237.398 7 20475870.994 20475870.238 20475869.833
+ 44.800 45.700
+ -12518511.573 6 -9754675.222 5 22431310.641 22431308.417 22431309.785
+ 37.700 35.800
+ -20640743.982 7 -16083689.839 7 20794100.649 20794099.223 20794100.167
+ 47.800 45.600
+ -5059440.366 4 -3942417.711 4 23429698.741 23429699.823 23429697.619
+ 26.200 28.100
+ -6837587.550 4 -5327998.246 2 23632247.591 23632246.597 23632246.305
+ 24.200 13.900
+ -17258337.657 7 -13448041.054 6 21149567.049 21149566.855 21149566.212
+ 46.300 40.600
+ 06 1 2 19 40 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8926724.495 6 -6955880.044 4 22986566.229 22986565.634 22986565.224
+ 36.100 24.900
+ -22285855.917 7 -17365584.648 7 20199866.007 20199865.152 20199865.611
+ 45.000 46.100
+ -1504215.216 4 -1172114.898 3 23967408.856 23967410.298 23967408.208
+ 25.600 21.100
+ -15184393.830 7 -11831988.291 7 20478374.026 20478373.214 20478372.760
+ 44.800 45.700
+ -12607691.809 6 -9824166.261 5 22414340.097 22414337.689 22414339.185
+ 37.700 34.900
+ -20597444.939 7 -16049950.330 7 20802340.296 20802338.855 20802339.800
+ 47.900 45.600
+ -5148487.462 4 -4011804.976 3 23412753.636 23412754.101 23412752.604
+ 27.600 23.000
+ -6726278.439 4 -5241263.915 2 23653428.373 23653428.509 23653427.603
+ 24.900 17.800
+ -17199715.442 7 -13402361.414 6 21160722.408 21160722.382 21160721.567
+ 46.200 40.600
+ 06 1 2 19 41 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8861239.088 6 -6904852.471 4 22999028.451 22999027.514 22999027.139
+ 36.400 25.900
+ -22309921.437 7 -17384336.992 7 20195286.396 20195285.649 20195285.959
+ 44.700 46.100
+ -1437231.988 4 -1119920.205 3 23980155.550 23980156.789 23980154.776
+ 25.600 22.600
+ -15170915.019 7 -11821485.320 7 20480938.918 20480938.196 20480937.757
+ 44.800 45.800
+ -12696618.432 6 -9893459.665 5 22397417.717 22397415.443 22397416.930
+ 37.500 35.300
+ -20553811.038 7 -16015949.892 7 20810643.697 20810642.053 20810643.000
+ 47.700 45.400
+ -5237201.193 4 -4080932.522 4 23395871.724 23395872.713 23395870.871
+ 28.800 25.300
+ -6614803.506 4 -5154400.388 3 23674641.650 23674641.638 23674640.762
+ 24.200 18.600
+ -17140790.729 7 -13356446.057 6 21171935.635 21171935.230 21171934.661
+ 46.100 40.500
+ 06 1 2 19 41 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8795270.538 5 -6853448.424 4 23011581.387 23011580.885 23011580.127
+ 35.700 26.800
+ -22333520.492 7 -17402725.855 7 20190795.535 20190794.954 20190795.150
+ 44.700 46.100
+ -1369850.807 4 -1067415.417 3 23992977.833 23992978.965 23992976.944
+ 25.900 23.000
+ -15157110.063 7 -11810728.210 7 20483566.028 20483565.189 20483564.843
+ 45.100 45.700
+ -12785290.383 6 -9962554.608 5 22380543.980 22380541.508 22380543.048
+ 37.700 35.300
+ -20509842.297 7 -15981688.545 7 20819010.552 20819009.080 20819009.945
+ 47.700 45.500
+ -5325578.845 4 -4149798.155 3 23379054.677 23379054.281 23379053.730
+ 29.700 22.600
+ -6503164.685 4 -5067409.196 3 23695884.632 23695885.872 23695884.608
+ 24.200 23.800
+ -17081565.419 7 -13310296.468 6 21183205.804 21183205.496 21183204.872
+ 46.200 40.300
+ 06 1 2 19 42 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8728821.113 5 -6801669.684 4 23024225.696 23024225.810 23024224.731
+ 35.700 25.900
+ -22356653.373 7 -17420751.466 7 20186393.434 20186392.903 20186393.101
+ 44.700 46.300
+ -1302074.769 3 -1014602.949 3 24005874.912 24005876.709 24005874.416
+ 23.800 23.400
+ -15142978.455 7 -11799716.561 7 20486254.990 20486254.314 20486253.869
+ 45.100 45.700
+ -12873706.448 6 -10031450.145 5 22363718.979 22363716.473 22363718.156
+ 38.200 35.500
+ -20465538.873 7 -15947166.400 7 20827441.004 20827439.754 20827440.637
+ 47.600 45.200
+ -5413617.845 4 -4218399.944 4 23362300.858 23362301.769 23362299.834
+ 26.500 28.100
+ -6391364.707 4 -4980292.377 2 23717161.551 23717160.659 23717160.151
+ 25.600 17.800
+ -17022041.360 7 -13263914.087 6 21194532.846 21194532.502 21194531.929
+ 46.000 40.300
+ 06 1 2 19 42 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8661893.147 5 -6749518.040 4 23036962.326 23036961.209 23036961.246
+ 35.800 25.300
+ -22379320.286 7 -17438413.982 7 20182080.326 20182079.498 20182079.784
+ 44.700 46.400
+ -1233907.187 3 -961485.394 3 24018846.798 24018848.077 24018846.038
+ 23.800 23.000
+ -15128519.792 7 -11788450.073 7 20489006.451 20489005.642 20489005.275
+ 45.000 45.600
+ -12961865.469 6 -10100145.380 5 22346942.941 22346940.324 22346942.044
+ 38.100 35.400
+ -20420900.828 7 -15912383.514 7 20835935.383 20835934.024 20835934.961
+ 47.500 45.400
+ -5501315.684 4 -4286735.858 4 23345613.393 23345613.583 23345612.140
+ 29.500 27.900
+ -6279405.761 4 -4893051.714 3 23738465.351 23738465.797 23738465.078
+ 25.600 19.300
+ -16962220.537 7 -13217300.459 6 21205916.369 21205916.110 21205915.574
+ 46.100 40.300
+ 06 1 2 19 43 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8594488.896 5 -6696995.257 4 23049789.267 23049787.761 23049787.938
+ 35.900 24.200
+ -22401521.675 7 -17455713.754 7 20177855.228 20177854.696 20177854.886
+ 44.700 46.300
+ -1165350.688 3 -908064.814 4 24031893.102 24031894.315 24031892.237
+ 23.400 24.900
+ -15113733.730 7 -11776928.463 7 20491820.121 20491819.353 20491818.911
+ 45.100 45.600
+ -13049766.431 6 -10168639.541 5 22330215.854 22330213.144 22330214.986
+ 38.500 35.100
+ -20375928.462 7 -15877340.114 7 20844493.185 20844492.094 20844492.838
+ 47.500 45.400
+ -5588669.709 4 -4354803.868 4 23328989.702 23328990.397 23328988.516
+ 27.900 29.200
+ -6167290.373 3 -4805689.077 2 23759800.949 23759800.518 23759799.682
+ 22.100 17.000
+ -16902104.888 7 -13170457.092 6 21217356.005 21217355.649 21217355.111
+ 46.000 39.900
+ 06 1 2 19 43 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8526610.565 5 -6644103.066 4 23062706.276 23062705.051 23062704.817
+ 35.300 26.800
+ -22423257.721 7 -17472650.916 7 20173719.149 20173718.416 20173718.756
+ 44.800 46.300
+ -1096408.532 3 -854343.704 3 24045012.493 24045013.485 24045011.529
+ 23.800 23.800
+ -15098619.590 7 -11765151.212 7 20494696.290 20494695.392 20494695.085
+ 45.300 45.400
+ -13137408.563 6 -10236932.013 5 22313537.955 22313535.330 22313537.156
+ 38.400 35.100
+ -20330622.252 7 -15842036.582 7 20853115.006 20853113.591 20853114.298
+ 47.300 45.200
+ -5675677.298 4 -4422601.924 4 23312432.354 23312433.304 23312431.361
+ 28.600 27.600
+ -6055021.136 3 -4718206.635 3 23781164.272 23781165.358 23781163.577
+ 22.600 20.500
+ -16841696.185 7 -13123385.369 6 21228851.094 21228851.024 21228850.305
+ 45.700 39.800
+ 06 1 2 19 44 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8458260.487 5 -6590843.282 4 23075712.801 23075711.440 23075711.585
+ 35.300 25.600
+ -22444528.661 7 -17489225.666 7 20169671.481 20169670.626 20169671.027
+ 44.600 46.300
+ -1027084.200 3 -800324.818 4 24058204.039 24058205.471 24058203.100
+ 21.600 24.200
+ -15083177.250 7 -11753118.220 7 20497634.833 20497633.949 20497633.673
+ 45.100 45.400
+ -13224790.479 6 -10305021.727 6 22296909.554 22296907.230 22296908.790
+ 38.100 36.100
+ -20284982.238 7 -15806472.934 7 20861799.939 20861798.624 20861799.411
+ 47.400 45.200
+ -5762335.845 4 -4490127.999 4 23295942.560 23295942.917 23295941.337
+ 28.400 27.400
+ -5942600.106 3 -4630605.950 3 23802559.076 23802557.868 23802557.377
+ 21.600 21.100
+ -16780996.007 7 -13076086.527 6 21240402.294 21240401.779 21240401.347
+ 45.500 39.800
+ 06 1 2 19 44 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8389440.985 5 -6537217.724 4 23088808.579 23088807.389 23088807.431
+ 35.700 25.300
+ -22465334.828 7 -17505438.250 7 20165712.125 20165711.294 20165711.721
+ 44.500 46.200
+ -957379.866 4 -746009.793 3 24071468.353 24071469.697 24071467.917
+ 25.300 23.000
+ -15067406.047 7 -11740828.967 7 20500635.987 20500635.142 20500634.856
+ 45.300 45.400
+ -13311911.145 6 -10372907.867 6 22280331.308 22280328.610 22280330.455
+ 39.000 36.500
+ -20239008.472 7 -15770649.222 7 20870548.331 20870547.147 20870547.850
+ 47.200 45.300
+ -5848642.780 5 -4557380.137 4 23279518.695 23279518.868 23279517.747
+ 31.000 25.600
+ -5830029.814 4 -4542888.871 2 23823978.969 23823979.583 23823978.896
+ 26.500 17.800
+ -16720006.533 7 -13028562.254 6 21252008.165 21252007.734 21252007.184
+ 45.600 39.700
+ 06 1 2 19 45 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8320154.445 5 -6483228.208 4 23101993.540 23101992.141 23101992.271
+ 35.800 25.300
+ -22485676.670 7 -17521289.027 7 20161841.124 20161840.352 20161840.741
+ 44.400 46.300
+ -887298.996 4 -691401.355 4 24084804.540 24084805.862 24084803.859
+ 26.500 24.200
+ -15051305.664 7 -11728283.213 7 20503699.949 20503699.007 20503698.759
+ 45.300 45.400
+ -13398769.351 6 -10440589.513 6 22263802.698 22263799.971 22263801.983
+ 39.100 36.300
+ -20192701.519 7 -15734565.887 7 20879360.134 20879358.928 20879359.767
+ 47.300 45.100
+ -5934595.501 5 -4624356.216 4 23263162.376 23263162.858 23263161.339
+ 31.800 26.500
+ -5717312.562 3 -4455057.311 2 23845429.432 23845428.703 23845428.190
+ 22.100 16.100
+ -16658729.520 7 -12980813.925 6 21263668.568 21263668.376 21263667.776
+ 45.800 39.800
+ 06 1 2 19 45 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8250402.974 5 -6428876.422 4 23115266.840 23115265.860 23115265.424
+ 35.500 25.600
+ -22505554.195 7 -17536777.996 7 20158058.736 20158057.852 20158058.246
+ 44.400 46.300
+ -816844.997 4 -636502.175 3 24098211.792 24098212.848 24098210.870
+ 26.800 23.800
+ -15034875.576 7 -11715480.543 7 20506826.289 20506825.497 20506825.173
+ 45.300 45.300
+ -13485364.152 6 -10508065.923 5 22247323.825 22247321.280 22247323.238
+ 38.700 35.900
+ -20146061.483 7 -15698222.999 7 20888235.614 20888234.165 20888235.054
+ 47.200 45.000
+ -6020191.532 5 -4691054.408 4 23246874.139 23246874.147 23246872.927
+ 31.000 26.800
+ -5604451.162 3 -4367113.352 2 23866905.479 23866905.517 23866904.404
+ 21.100 15.100
+ -16597166.635 7 -12932842.835 6 21275383.815 21275383.507 21275382.871
+ 45.900 39.800
+ 06 1 2 19 46 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8180188.944 5 -6374164.208 4 23128627.214 23128626.650 23128626.294
+ 33.800 25.600
+ -22524968.091 7 -17551905.697 7 20154364.202 20154363.520 20154363.858
+ 44.400 46.400
+ -746020.855 4 -581314.555 3 24111689.533 24111690.186 24111688.555
+ 27.600 22.100
+ -15018115.621 7 -11702420.833 7 20510015.869 20510014.757 20510014.609
+ 45.400 45.200
+ -13571694.423 6 -10575336.218 6 22230895.959 22230893.213 22230895.145
+ 39.000 36.200
+ -20099088.408 7 -15661620.608 7 20897174.311 20897172.973 20897173.752
+ 47.300 44.900
+ -6105428.199 4 -4757472.547 4 23230653.926 23230654.343 23230652.847
+ 29.500 26.800
+ -5491447.514 3 -4279058.686 3 23888409.742 23888409.353 23888409.178
+ 22.100 19.900
+ -16535320.034 7 -12884650.672 6 21287152.977 21287152.572 21287152.005
+ 45.600 39.700
+ 06 1 2 19 46 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8109514.763 5 -6319093.437 4 23142076.377 23142076.306 23142075.540
+ 35.200 27.100
+ -22543918.568 7 -17566672.297 7 20150758.109 20150757.362 20150757.714
+ 44.600 46.400
+ -674829.091 4 -525840.494 3 24125236.877 24125237.336 24125235.965
+ 25.600 19.300
+ -15001025.121 7 -11689103.560 7 20513267.920 20513266.972 20513266.828
+ 45.600 45.200
+ -13657759.097 6 -10642399.562 5 22214518.064 22214515.579 22214517.266
+ 38.500 35.900
+ -20051782.688 7 -15624759.011 7 20906176.459 20906174.982 20906175.778
+ 47.400 45.000
+ -6190302.942 4 -4823608.658 4 23214503.083 23214502.938 23214501.766
+ 29.000 24.900
+ -5378304.341 4 -4190895.215 3 23909940.374 23909940.659 23909939.072
+ 24.200 22.100
+ -16473191.607 7 -12836238.913 6 21298975.604 21298975.263 21298974.598
+ 45.800 39.800
+ 06 1 2 19 47 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -8038383.082 5 -6263666.182 4 23155612.297 23155611.785 23155611.285
+ 35.300 25.900
+ -22562406.099 7 -17581078.158 7 20147239.974 20147239.319 20147239.562
+ 44.300 46.500
+ -603273.451 4 -470082.880 3 24138853.049 24138853.992 24138852.273
+ 25.900 18.600
+ -14983603.771 7 -11675528.480 7 20516583.164 20516582.151 20516581.966
+ 45.500 45.200
+ -13743557.002 6 -10709255.041 6 22198191.526 22198188.660 22198190.569
+ 38.800 36.300
+ -20004144.450 7 -15587638.304 7 20915241.752 20915240.086 20915241.118
+ 47.600 44.700
+ -6274813.284 5 -4889460.846 4 23198420.952 23198420.446 23198419.667
+ 31.100 24.900
+ -5265023.909 3 -4102624.812 3 23931495.497 23931497.198 23931495.428
+ 23.000 23.000
+ -16410782.783 7 -12787608.656 6 21310851.421 21310851.083 21310850.526
+ 45.900 39.700
+ 06 1 2 19 47 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7966796.174 5 -6207884.176 4 23169234.418 23169233.857 23169233.380
+ 33.200 25.300
+ -22580431.077 7 -17595123.592 7 20143809.880 20143809.204 20143809.465
+ 44.200 46.400
+ -531356.800 4 -414043.984 3 24152538.600 24152539.332 24152537.831
+ 25.900 20.500
+ -14965851.133 7 -11661695.254 7 20519961.438 20519960.401 20519960.188
+ 45.500 45.100
+ -13829087.305 6 -10775902.012 6 22181915.748 22181912.785 22181914.909
+ 39.400 36.400
+ -19956173.943 7 -15550258.690 7 20924370.276 20924368.589 20924369.717
+ 47.700 44.800
+ -6358956.528 5 -4955026.967 4 23182408.791 23182408.904 23182407.694
+ 30.100 26.800
+ -5151608.675 3 -4014249.400 2 23953078.593 23953078.869 23953077.557
+ 20.500 16.100
+ -16348095.491 7 -12738761.415 6 21322780.585 21322780.106 21322779.603
+ 46.100 39.600
+ 06 1 2 19 48 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7894756.108 5 -6151749.078 4 23182943.481 23182943.065 23182942.297
+ 34.100 24.600
+ -22597993.921 7 -17608808.925 7 20140467.817 20140467.135 20140467.412
+ 44.400 46.500
+ -459082.324 4 -357726.261 3 24166291.943 24166293.027 24166291.221
+ 24.900 19.900
+ -14947766.920 7 -11647603.657 7 20523402.512 20523401.719 20523401.439
+ 45.600 45.100
+ -13914348.788 6 -10842339.528 6 22165690.606 22165688.223 22165690.065
+ 40.000 36.700
+ -19907871.593 7 -15512620.502 7 20933561.703 20933560.295 20933561.238
+ 47.700 44.500
+ -6442730.187 5 -5020305.112 4 23166467.323 23166467.925 23166466.061
+ 31.100 28.800
+ -5038061.087 3 -3925770.816 1 23974685.714 23974686.135 23974685.149
+ 21.100 11.000
+ -16285131.663 7 -12689698.687 6 21334762.126 21334761.793 21334761.209
+ 45.900 39.500
+ 06 1 2 19 48 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7822265.322 5 -6095262.771 4 23196738.620 23196737.704 23196737.256
+ 34.500 24.600
+ -22615094.944 7 -17622134.397 7 20137213.637 20137213.043 20137213.253
+ 44.300 46.700
+ -386453.291 4 -301132.265 3 24180112.444 24180113.934 24180111.697
+ 25.600 21.600
+ -14929350.574 7 -11633253.260 7 20526907.161 20526906.218 20526905.947
+ 45.400 45.100
+ -13999340.278 6 -10908566.645 6 22149517.128 22149515.003 22149516.377
+ 38.900 37.400
+ -19859237.658 7 -15474723.930 7 20942816.734 20942814.898 20942815.955
+ 47.400 44.200
+ -6526131.676 5 -5085293.228 4 23150596.187 23150597.043 23150595.187
+ 30.100 28.400
+ -4924383.511 4 -3837190.936 2 23996318.442 23996318.341 23996317.831
+ 24.600 15.100
+ -16221893.063 7 -12640421.864 6 21346795.932 21346795.751 21346795.098
+ 45.900 39.300
+ 06 1 2 19 49 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7749326.707 5 -6038427.490 4 23210618.437 23210617.406 23210617.153
+ 33.800 24.600
+ -22631734.707 7 -17635100.444 7 20134047.214 20134046.553 20134046.808
+ 44.400 46.700
+ -313472.559 4 -244264.216 3 24194000.724 24194001.415 24194000.124
+ 25.300 23.400
+ -14910601.784 7 -11618643.810 7 20530474.943 20530473.970 20530473.796
+ 45.400 45.000
+ -14084060.869 6 -10974582.682 6 22133395.392 22133392.942 22133394.689
+ 39.700 36.400
+ -19810272.236 7 -15436569.054 7 20952134.432 20952132.731 20952133.734
+ 47.600 44.300
+ -6609158.409 4 -5149989.340 4 23134796.491 23134797.146 23134795.559
+ 29.700 25.900
+ -4810578.426 4 -3748511.665 2 24017975.037 24017974.651 24017974.013
+ 24.600 15.100
+ -16158381.847 7 -12590932.611 6 21358881.827 21358881.559 21358880.847
+ 45.600 39.500
+ 06 1 2 19 49 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7675942.340 5 -5981244.882 4 23224582.645 23224582.329 23224581.392
+ 34.100 24.200
+ -22647913.353 7 -17647707.182 7 20130968.639 20130967.791 20130968.143
+ 44.300 46.600
+ -240143.474 3 -187124.757 3 24207955.019 24207955.833 24207953.870
+ 23.800 22.100
+ -14891520.108 7 -11603774.974 7 20534106.091 20534105.108 20534104.935
+ 45.500 44.900
+ -14168509.415 6 -11040386.751 6 22117325.646 22117322.968 22117324.774
+ 39.400 36.600
+ -19760975.903 7 -15398156.324 7 20961514.902 20961513.587 20961514.490
+ 47.600 44.100
+ -6691808.000 5 -5214391.560 4 23119069.315 23119069.176 23119068.336
+ 31.000 27.100
+ -4696648.311 3 -3659734.974 2 24039654.714 24039655.151 24039654.187
+ 18.600 17.000
+ -16094599.751 7 -12541232.277 6 21371019.075 21371018.828 21371018.236
+ 45.500 39.100
+ 06 1 2 19 50 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7602114.727 5 -5923716.895 3 23238632.164 23238630.337 23238630.706
+ 34.800 22.600
+ -22663631.682 7 -17659955.229 7 20127977.457 20127976.621 20127977.000
+ 44.100 46.500
+ -166469.287 4 -129716.375 3 24221974.359 24221975.505 24221973.537
+ 24.900 21.600
+ -14872105.192 7 -11588646.472 7 20537800.456 20537799.731 20537799.343
+ 45.500 45.100
+ -14252685.137 6 -11105978.223 6 22101307.354 22101304.979 22101306.593
+ 39.500 37.200
+ -19711348.531 7 -15359485.650 7 20970958.750 20970957.273 20970958.305
+ 47.400 44.200
+ -6774077.790 5 -5278497.856 4 23103414.272 23103413.716 23103413.189
+ 32.100 26.200
+ -4582595.307 3 -3570862.590 2 24061359.726 24061359.291 24061358.186
+ 20.500 16.100
+ -16030548.290 7 -12491322.054 6 21383207.533 21383207.458 21383206.658
+ 45.400 39.300
+ 06 1 2 19 50 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7527846.404 5 -5865845.477 4 23252764.721 23252763.726 23252763.354
+ 32.700 24.600
+ -22678890.015 7 -17671844.836 7 20125073.785 20125073.060 20125073.368
+ 44.200 46.600
+ -92452.830 4 -72041.278 3 24236058.739 24236060.443 24236058.463
+ 24.600 22.600
+ -14852356.766 7 -11573258.091 7 20541558.607 20541557.730 20541557.444
+ 45.600 45.100
+ -14336587.030 6 -11171356.314 6 22085341.066 22085338.999 22085340.364
+ 39.300 37.200
+ -19661390.551 7 -15320557.359 7 20980465.533 20980463.986 20980464.907
+ 47.300 44.100
+ -6855965.177 5 -5342306.171 4 23087831.262 23087831.756 23087830.177
+ 33.000 29.200
+ -4468422.146 3 -3481896.491 2 24083084.312 24083084.748 24083083.652
+ 21.100 15.100
+ -15966229.261 7 -12441203.340 6 21395447.165 21395446.966 21395446.242
+ 45.400 39.300
+ 06 1 2 19 51 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7453139.586 5 -5807632.388 4 23266980.375 23266980.435 23266979.445
+ 33.200 25.600
+ -22693688.820 7 -17683376.369 7 20122257.610 20122257.003 20122257.202
+ 44.200 46.600
+ -18097.413 4 -14102.062 3 24250208.673 24250209.874 24250207.765
+ 24.200 19.900
+ -14832274.286 7 -11557609.404 7 20545380.280 20545379.253 20545379.020
+ 45.600 44.900
+ -14420213.882 6 -11236520.082 6 22069427.596 22069425.204 22069426.950
+ 39.300 37.300
+ -19611102.311 7 -15281371.718 7 20990035.029 20990033.646 20990034.425
+ 47.200 44.300
+ -6937467.747 5 -5405814.631 4 23072321.609 23072321.970 23072320.647
+ 31.800 28.800
+ -4354130.933 3 -3392838.532 3 24104834.470 24104834.990 24104833.768
+ 21.600 19.900
+ -15901644.460 7 -12390877.532 6 21407737.105 21407737.092 21407736.301
+ 45.400 39.100
+ 06 1 2 19 51 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7377996.668 5 -5749079.474 3 23281280.253 23281278.780 23281278.975
+ 33.500 22.100
+ -22708028.644 7 -17694550.252 7 20119528.921 20119528.248 20119528.431
+ 44.200 46.600
+ 56593.659 4 44098.694 3 24264422.299 24264423.554 24264421.163
+ 25.600 19.300
+ -14811857.487 7 -11541700.215 7 20549265.422 20549264.434 20549264.223
+ 45.700 45.000
+ -14503564.722 6 -11301468.788 6 22053566.948 22053564.048 22053566.158
+ 40.300 37.300
+ -19560483.926 7 -15241928.830 7 20999667.318 20999665.966 20999666.816
+ 47.000 44.200
+ -7018582.976 5 -5469021.247 4 23056886.096 23056885.945 23056885.053
+ 32.800 29.000
+ -4239724.215 3 -3303690.510 3 24126605.383 24126605.175 24126603.510
+ 19.300 20.500
+ -15836796.037 7 -12340346.303 6 21420077.398 21420077.303 21420076.545
+ 45.300 38.600
+ 06 1 2 19 52 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7302420.332 5 -5690188.846 4 23295661.273 23295661.225 23295660.241
+ 33.600 25.600
+ -22721909.781 7 -17705366.716 7 20116887.376 20116886.676 20116887.021
+ 44.300 46.600
+ 131617.230 4 102558.567 2 24278698.794 24278699.534 24278697.929
+ 25.600 16.100
+ -14791106.015 7 -11525530.242 7 20553214.305 20553213.298 20553213.177
+ 45.800 45.100
+ -14586638.337 6 -11366201.465 6 22037758.295 22037755.640 22037757.564
+ 40.300 36.900
+ -19509535.777 7 -15202228.985 7 21009362.214 21009360.993 21009361.882
+ 47.100 43.900
+ -7099308.293 5 -5531924.041 5 23041524.527 23041524.984 23041523.497
+ 32.800 30.400
+ -4125204.659 3 -3214454.551 3 24148396.516 24148397.413 24148396.285
+ 19.900 18.600
+ -15771685.713 7 -12289610.986 6 21432467.492 21432467.336 21432466.635
+ 45.300 38.900
+ 06 1 2 19 52 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7226413.114 5 -5630962.452 4 23310124.730 23310124.521 23310123.888
+ 33.000 24.200
+ -22735332.989 7 -17715826.351 7 20114333.189 20114332.275 20114332.722
+ 44.300 46.600
+ 206970.161 3 161275.083 2 24293037.856 24293038.884 24293037.140
+ 23.800 16.100
+ -14770019.530 7 -11509099.219 7 20557226.957 20557226.016 20557225.809
+ 45.900 45.000
+ -14669433.668 6 -11430717.300 6 22022002.823 22022000.039 22022002.107
+ 40.400 36.700
+ -19458258.506 7 -15162272.676 7 21019120.347 21019118.852 21019119.619
+ 46.900 44.100
+ -7179641.093 5 -5594521.009 4 23026237.876 23026237.723 23026236.778
+ 32.100 28.600
+ -4010574.357 3 -3125132.343 2 24170211.599 24170211.505 24170210.621
+ 20.500 15.100
+ -15706315.575 7 -12238673.228 6 21444907.092 21444906.906 21444906.153
+ 45.400 38.900
+ 06 1 2 19 53 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7149977.519 5 -5571402.259 3 23324670.727 23324669.689 23324669.107
+ 33.200 23.800
+ -22748298.609 7 -17725929.422 7 20111865.860 20111865.102 20111865.456
+ 44.300 46.900
+ 282649.595 4 220246.027 2 24307439.094 24307440.107 24307438.373
+ 24.200 12.600
+ -14748597.574 7 -11492406.792 7 20561303.174 20561302.535 20561302.102
+ 45.800 45.000
+ -14751949.858 6 -11495015.623 6 22006300.592 22006297.890 22006299.752
+ 40.300 37.700
+ -19406651.955 7 -15122059.786 7 21028940.691 21028939.288 21028939.984
+ 46.600 44.100
+ -7259579.068 5 -5656810.271 4 23011025.377 23011025.684 23011024.414
+ 30.600 26.200
+ -3895836.031 4 -3035725.846 2 24192046.875 24192045.085 24192044.934
+ 24.600 16.100
+ -15640687.333 7 -12187534.348 6 21457395.809 21457395.456 21457394.787
+ 45.300 38.800
+ 06 1 2 19 53 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -7073115.846 5 -5511510.071 4 23339296.868 23339296.181 23339295.758
+ 33.100 24.600
+ -22760807.194 7 -17735676.358 7 20109485.586 20109484.837 20109485.175
+ 44.400 46.800
+ 358652.162 2 279468.739 2 24321901.910 24321903.232 24321900.821
+ 17.000 15.100
+ -14726839.748 7 -11475452.646 7 20565443.762 20565442.843 20565442.576
+ 45.600 44.800
+ -14834186.093 6 -11559095.790 6 21990651.678 21990648.855 21990650.815
+ 40.600 37.700
+ -19354716.580 7 -15081590.670 7 21038823.663 21038822.312 21038823.045
+ 46.800 44.100
+ -7339119.596 5 -5718789.844 4 22995888.911 22995889.613 22995888.128
+ 30.200 26.800
+ -3780992.058 3 -2946237.056 2 24213898.820 24213899.578 24213898.162
+ 21.600 17.000
+ -15574802.284 7 -12136195.355 6 21469933.178 21469933.011 21469932.326
+ 45.500 38.900
+ 06 1 2 19 54 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6995830.566 5 -5451287.792 3 23354004.140 23354002.608 23354002.848
+ 33.900 21.600
+ -22772859.396 7 -17745067.673 7 20107192.090 20107191.300 20107191.637
+ 44.400 46.600
+ 434974.367 3 338940.503 2 24336425.538 24336426.323 24336424.889
+ 19.300 15.100
+ -14704745.821 7 -11458236.602 7 20569648.231 20569647.173 20569646.981
+ 45.500 44.700
+ -14916141.348 6 -11622957.006 6 21975056.009 21975053.269 21975055.249
+ 40.700 37.500
+ -19302452.669 7 -15040865.565 7 21048768.843 21048767.946 21048768.499
+ 46.900 44.100
+ -7418260.217 5 -5780457.820 4 22980829.916 22980829.544 22980828.703
+ 32.300 28.600
+ -3666044.640 2 -2856667.753 2 24235771.386 24235773.225 24235772.272
+ 16.100 17.800
+ -15508662.494 7 -12084657.870 6 21482519.248 21482518.937 21482518.372
+ 45.400 38.500
+ 06 1 2 19 54 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6918124.233 5 -5390737.408 3 23368790.917 23368789.762 23368789.618
+ 32.400 23.400
+ -22784455.669 7 -17754103.714 7 20104985.223 20104984.497 20104984.895
+ 44.400 46.700
+ 511613.272 3 398659.071 1 24351009.482 24351010.628 24351008.983
+ 19.900 11.000
+ -14682315.538 7 -11440758.460 7 20573916.410 20573915.466 20573915.225
+ 45.300 44.700
+ -14997814.620 6 -11686598.508 6 21959514.036 21959511.306 21959513.269
+ 40.300 38.000
+ -19249860.642 7 -14999884.775 7 21058777.304 21058775.761 21058776.469
+ 46.800 44.000
+ -7496998.375 5 -5841812.170 4 22965846.658 22965846.436 22965845.450
+ 33.400 29.900
+ -3550996.222 2 -2767019.725 3 24257665.600 24257666.554 24257665.266
+ 17.000 19.900
+ -15442269.605 7 -12032923.163 6 21495153.433 21495153.158 21495152.612
+ 45.400 38.600
+ 06 1 2 19 55 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6839999.432 5 -5329860.963 3 23383657.349 23383656.734 23383656.141
+ 33.100 23.000
+ -22795596.474 7 -17762784.851 7 20102865.252 20102864.448 20102864.874
+ 44.300 46.600
+ 588565.606 3 458621.886 2 24365653.152 24365654.063 24365652.581
+ 22.600 12.600
+ -14659548.380 7 -11423017.818 7 20578248.817 20578247.855 20578247.576
+ 45.400 44.500
+ -15079204.523 6 -11750019.201 6 21944025.957 21944023.243 21944025.168
+ 40.600 37.800
+ -19196940.910 7 -14958648.625 7 21068847.396 21068846.007 21068846.878
+ 47.100 43.900
+ -7575331.693 5 -5902851.074 4 22950940.443 22950940.035 22950939.065
+ 32.100 29.500
+ -3435849.353 3 -2677295.000 3 24279577.825 24279578.517 24279577.131
+ 20.500 18.600
+ -15375625.694 7 -11980992.852 6 21507835.532 21507835.171 21507834.624
+ 45.500 38.500
+ 06 1 2 19 55 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6761458.592 5 -5268660.323 3 23398603.679 23398602.344 23398602.309
+ 33.000 23.400
+ -22806282.616 7 -17771111.702 7 20100831.754 20100831.005 20100831.349
+ 44.200 46.700
+ 665828.274 4 518826.501 2 24380355.954 24380357.347 24380355.073
+ 24.900 17.000
+ -14636444.162 7 -11405014.525 7 20582645.481 20582644.479 20582644.220
+ 45.400 44.500
+ -15160310.460 6 -11813218.621 6 21928592.028 21928589.364 21928591.182
+ 40.500 37.900
+ -19143693.596 7 -14917157.219 7 21078980.055 21078978.584 21078979.514
+ 47.200 43.600
+ -7653257.550 5 -5963572.435 4 22936111.374 22936111.070 22936110.205
+ 33.000 27.900
+ -3320606.388 4 -2587495.358 2 24301508.490 24301508.708 24301507.440
+ 24.200 13.900
+ -15308732.542 7 -11928868.330 6 21520564.940 21520564.550 21520563.959
+ 45.300 38.600
+ 06 1 2 19 56 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6682504.529 5 -5207137.697 3 23413627.837 23413627.251 23413626.824
+ 32.400 22.100
+ -22816514.697 7 -17779084.734 7 20098884.647 20098883.921 20098884.190
+ 44.100 46.900
+ 743397.590 4 579270.057 2 24395116.869 24395118.177 24395116.086
+ 25.300 17.800
+ -14613002.348 7 -11386748.173 7 20587106.196 20587105.354 20587104.994
+ 45.400 44.400
+ -15241131.393 6 -11876195.959 6 21913212.253 21913209.665 21913211.508
+ 41.000 38.600
+ -19090119.413 7 -14875411.111 7 21089175.009 21089173.409 21089174.394
+ 47.500 43.600
+ -7730773.596 5 -6023974.485 4 22921360.482 22921360.505 22921359.366
+ 33.000 28.600
+ -3205269.977 3 -2497622.873 1 24323456.138 24323455.821 24323454.959
+ 21.100 6.500
+ -15241591.977 7 -11876551.021 6 21533341.398 21533340.870 21533340.465
+ 45.200 38.400
+ 06 1 2 19 56 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6603139.466 5 -5145294.811 3 23428730.548 23428729.871 23428729.297
+ 33.200 23.000
+ -22826293.208 7 -17786704.341 7 20097023.869 20097023.052 20097023.509
+ 44.500 46.900
+ 821270.906 4 639950.500 3 24409935.862 24409937.150 24409935.075
+ 26.800 19.900
+ -14589222.756 7 -11368218.617 7 20591631.196 20591630.389 20591630.086
+ 45.500 44.400
+ -15321666.246 6 -11938950.386 6 21897887.042 21897884.338 21897886.310
+ 40.900 38.000
+ -19036218.025 7 -14833410.025 7 21099432.216 21099430.556 21099431.580
+ 47.400 43.600
+ -7807877.387 5 -6084055.324 4 22906687.897 22906687.718 22906686.881
+ 33.600 28.800
+ -3089842.314 2 -2407679.299 9 24345419.492 24345419.710 24345419.855
+ 13.900 -3.000
+ -15174205.609 7 -11824042.174 6 21546164.327 21546164.218 21546163.489
+ 44.900 38.300
+ 06 1 2 19 57 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6523366.147 5 -5083133.801 3 23443910.524 23443909.780 23443909.523
+ 30.800 22.600
+ -22835618.681 7 -17793970.928 7 20095249.405 20095248.409 20095248.938
+ 44.400 46.700
+ 899444.729 4 700865.093 3 24424811.797 24424813.135 24424810.988
+ 27.400 22.600
+ -14565105.092 7 -11349425.628 7 20596220.758 20596219.854 20596219.615
+ 45.700 44.400
+ -15401914.145 6 -12001481.215 6 21882616.553 21882613.662 21882615.753
+ 41.300 38.200
+ -18981990.224 7 -14791154.603 7 21109751.214 21109749.722 21109750.789
+ 47.400 43.500
+ -7884566.430 5 -6143812.965 4 22892094.813 22892093.975 22892093.843
+ 33.800 27.900
+ -2974325.808 3 -2317666.405 9 24367401.280 24367403.119 24367401.965
+ 18.600 -3.000
+ -15106574.974 7 -11771342.992 6 21559034.193 21559033.810 21559033.204
+ 44.800 38.400
+ 06 1 2 19 57 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6443186.677 5 -5020656.284 4 23459168.653 23459168.327 23459167.398
+ 32.400 24.200
+ -22844491.744 7 -17800884.994 7 20093560.949 20093559.941 20093560.456
+ 44.600 46.800
+ 977915.559 4 762011.123 3 24439744.499 24439745.899 24439743.555
+ 27.100 22.100
+ -14540649.070 7 -11330368.982 7 20600874.685 20600873.663 20600873.483
+ 45.600 44.200
+ -15481874.252 6 -12063787.780 6 21867400.402 21867397.715 21867399.682
+ 41.100 38.100
+ -18927436.341 7 -14748645.096 7 21120132.549 21120131.063 21120132.018
+ 47.600 43.600
+ -7960838.319 5 -6203245.559 4 22877580.146 22877579.889 22877579.053
+ 31.800 28.100
+ -2858723.110 2 -2227586.464 3 24389400.972 24389401.927 24389400.316
+ 15.100 18.600
+ -15038702.072 7 -11718455.023 6 21571949.738 21571949.623 21571948.861
+ 44.700 38.400
+ 06 1 2 19 58 0.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6362604.333 5 -4957864.879 3 23474503.304 23474502.144 23474501.850
+ 32.100 21.600
+ -22852913.260 7 -17807447.198 7 20091958.237 20091957.415 20091957.792
+ 44.400 46.700
+ 1056680.951 4 823386.665 4 24454733.257 24454734.787 24454732.391
+ 25.300 24.900
+ -14515854.292 7 -11311048.370 7 20605592.759 20605591.924 20605591.663
+ 45.400 44.200
+ -15561545.348 6 -12125869.140 6 21852239.620 21852236.753 21852238.870
+ 41.100 38.000
+ -18872556.463 7 -14705881.557 7 21130576.050 21130574.442 21130575.304
+ 47.300 43.600
+ -8036690.521 5 -6262351.141 4 22863146.067 22863145.347 22863144.958
+ 33.000 25.900
+ -2743035.917 2 -2137440.704 3 24411415.179 24411416.828 24411414.483
+ 16.100 19.300
+ -14970589.153 7 -11665380.036 6 21584911.337 21584911.146 21584910.394
+ 44.700 38.100
+ 06 1 2 19 58 30.0000000 0 9G20G 4G 9G 7G 2G17G 5G28G24
+ -6281621.323 5 -4894761.235 3 23489913.867 23489912.503 23489912.505
+ 32.700 20.500
+ -22860883.685 7 -17813657.906 7 20090441.458 20090440.638 20090441.031
+ 44.500 46.700
+ 1135736.966 3 884988.669 3 24469776.821 24469778.676 24469775.946
+ 22.600 22.600
+ -14490720.446 7 -11291463.551 7 20610375.730 20610374.741 20610374.567
+ 45.500 44.100
+ -15640926.592 6 -12187724.648 6 21837133.959 21837131.351 21837133.295
+ 41.800 38.900
+ -18817351.291 7 -14662864.543 7 21141080.921 21141079.640 21141080.462
+ 47.200 43.600
+ -8112120.710 5 -6321127.867 4 22848791.965 22848791.845 22848791.010
+ 32.800 28.400
+ -2627267.388 3 -2047231.583 3 24433446.220 24433446.620 24433445.550
+ 20.500 19.300
+ -14902237.356 7 -11612118.900 6 21597918.567 21597917.965 21597917.431
+ 44.500 38.300
+ 06 1 2 19 59 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -6200240.298 5 -4831347.477 3 23505398.996 23505398.890 23505397.930
+ 31.000 22.100
+ -22868403.753 7 -17819517.687 7 20089010.529 20089009.530 20089010.112
+ 44.800 46.800
+ 1215080.535 3 946814.757 3 24484875.667 24484877.456 24484874.710
+ 23.000 22.600
+ -14465247.257 7 -11271614.312 7 20615223.061 20615222.107 20615221.922
+ 45.600 44.000
+ -15720017.050 6 -12249353.556 6 21822083.257 21822080.670 21822082.443
+ 41.300 38.700
+ -18761821.074 7 -14619594.244 7 21151648.085 21151646.544 21151647.544
+ 47.100 43.400
+ -8187126.389 5 -6379573.816 4 22834519.052 22834518.682 22834517.999
+ 33.000 28.400
+ -14833648.949 7 -11558673.396 6 21610970.190 21610969.962 21610969.286
+ 44.700 37.900
+ 06 1 2 19 59 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -6118463.829 5 -4767625.560 3 23520960.837 23520960.386 23520959.716
+ 30.100 21.600
+ -22875474.010 7 -17825026.969 7 20087665.120 20087664.096 20087664.764
+ 44.900 46.900
+ 1294708.614 3 1008862.537 3 24500028.324 24500029.852 24500027.380
+ 23.400 22.600
+ -14439434.479 7 -11251500.454 7 20620135.028 20620134.124 20620133.858
+ 45.400 44.000
+ -15798815.727 6 -12310755.106 6 21807088.121 21807085.768 21807087.343
+ 40.900 38.700
+ -18705966.186 7 -14576070.963 7 21162276.901 21162275.404 21162276.256
+ 46.900 43.200
+ -8261705.196 5 -6437687.141 5 22820327.344 22820327.030 22820326.074
+ 32.800 30.600
+ -14764825.425 7 -11505044.682 6 21624066.843 21624066.655 21624065.935
+ 44.800 38.000
+ 06 1 2 20 0 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -6036294.228 5 -4703597.306 3 23536597.566 23536596.928 23536596.350
+ 32.100 22.600
+ -22882095.129 7 -17830186.271 7 20086405.357 20086404.199 20086404.892
+ 45.200 46.800
+ 1374617.757 3 1071129.324 3 24515234.137 24515236.192 24515233.855
+ 22.600 23.000
+ -14413281.753 7 -11231121.706 7 20625111.782 20625110.894 20625110.583
+ 45.500 43.800
+ -15877321.864 6 -12371928.692 6 21792149.006 21792146.518 21792148.373
+ 41.100 38.800
+ -18649786.844 7 -14532294.860 7 21172967.013 21172966.123 21172966.748
+ 46.800 43.400
+ -8335854.658 5 -6495465.903 5 22806216.751 22806216.838 22806215.781
+ 33.800 30.800
+ -14695768.343 7 -11451233.971 6 21637207.943 21637207.863 21637207.067
+ 44.500 38.100
+ 06 1 2 20 0 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5953734.368 5 -4639264.962 3 23552308.240 23552307.246 23552307.168
+ 32.100 20.500
+ -22888267.893 7 -17834996.206 7 20085230.625 20085229.536 20085230.140
+ 45.100 47.000
+ 1454804.674 3 1133612.570 3 24530494.055 24530495.312 24530493.109
+ 22.100 23.400
+ -14386788.787 7 -11210477.831 7 20630153.148 20630152.280 20630151.970
+ 45.300 44.000
+ -15955534.483 6 -12432873.572 6 21777265.725 21777263.148 21777265.017
+ 41.700 38.600
+ -18593283.380 7 -14488266.188 7 21183719.787 21183718.291 21183719.097
+ 46.700 43.300
+ -8409572.459 5 -6552908.302 5 22792188.803 22792188.820 22792187.916
+ 34.800 30.600
+ -14626479.544 7 -11397242.706 6 21650393.177 21650392.973 21650392.207
+ 44.600 37.600
+ 06 1 2 20 1 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5870786.970 5 -4574630.662 4 23568092.255 23568092.500 23568091.214
+ 30.100 24.600
+ -22893993.033 7 -17839457.347 7 20084141.063 20084140.013 20084140.621
+ 45.100 46.900
+ 1535266.068 3 1196309.692 3 24545805.142 24545806.653 24545804.466
+ 21.100 22.100
+ -14359955.417 7 -11189568.710 7 20635259.451 20635258.419 20635258.195
+ 45.300 43.900
+ -16033452.522 6 -12493588.887 6 21762438.458 21762435.612 21762437.698
+ 41.600 38.800
+ -18536456.502 7 -14443985.511 7 21194533.658 21194532.087 21194532.923
+ 46.700 43.200
+ -8482856.109 5 -6610012.427 4 22778243.532 22778243.335 22778242.519
+ 34.600 29.900
+ -14556960.613 7 -11343072.108 6 21663622.196 21663621.906 21663621.282
+ 44.500 37.400
+ 06 1 2 20 1 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5787454.152 5 -4509696.036 3 23583950.290 23583949.072 23583949.385
+ 31.500 20.500
+ -22899271.120 7 -17843570.136 7 20083136.634 20083135.627 20083136.197
+ 44.800 46.800
+ 1615999.004 3 1259218.361 3 24561168.112 24561169.550 24561167.061
+ 22.100 23.800
+ -14332781.327 7 -11168394.090 7 20640430.468 20640429.527 20640429.322
+ 45.500 43.800
+ -16111075.110 6 -12554073.991 6 21747667.453 21747664.598 21747666.758
+ 41.700 38.800
+ -18479306.722 7 -14399453.218 7 21205408.487 21205407.306 21205408.136
+ 46.800 43.200
+ -8555703.221 5 -6666776.409 5 22764380.608 22764380.875 22764379.656
+ 34.100 30.100
+ -14487213.411 7 -11288723.642 6 21676894.785 21676894.333 21676893.818
+ 44.600 37.300
+ 06 1 2 20 2 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5703738.989 5 -4444463.438 3 23599881.297 23599880.225 23599880.204
+ 31.600 21.600
+ -22904103.111 7 -17847335.318 7 20082217.083 20082216.210 20082216.649
+ 44.900 47.000
+ 1697000.079 3 1322336.035 3 24576582.053 24576583.877 24576581.303
+ 22.100 22.100
+ -14305266.255 7 -11146953.773 7 20645666.263 20645665.573 20645665.185
+ 45.600 43.800
+ -16188401.347 6 -12614328.167 6 21732952.513 21732950.187 21732951.785
+ 41.800 39.300
+ -18421834.314 7 -14354669.531 7 21216345.419 21216344.088 21216344.757
+ 46.700 43.100
+ -8628111.488 5 -6723198.420 5 22750601.968 22750602.277 22750600.815
+ 33.900 31.500
+ -14417239.811 7 -11234198.757 6 21690210.417 21690209.951 21690209.357
+ 44.300 37.300
+ 06 1 2 20 2 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5619644.208 5 -4378935.068 3 23615883.211 23615882.672 23615882.165
+ 30.600 22.100
+ -22908489.364 7 -17850753.172 7 20081382.344 20081381.488 20081381.981
+ 44.800 47.000
+ 1778265.821 3 1385659.897 3 24592045.644 24592048.160 24592045.218
+ 22.100 22.600
+ -14277409.950 7 -11125247.556 7 20650967.161 20650966.434 20650966.031
+ 45.400 43.800
+ -16265430.233 6 -12674350.617 6 21718294.455 21718291.874 21718293.595
+ 41.600 39.600
+ -18364039.544 7 -14309634.651 7 21227343.415 21227341.965 21227342.768
+ 46.800 43.100
+ -8700078.597 5 -6779276.641 5 22736907.143 22736907.243 22736906.094
+ 34.100 30.600
+ -14347041.721 7 -11179498.952 6 21703568.343 21703568.175 21703567.487
+ 44.100 37.100
+ 06 1 2 20 3 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5535172.155 5 -4313112.727 3 23631957.281 23631957.622 23631956.392
+ 30.800 22.600
+ -22912430.754 7 -17853824.377 7 20080632.504 20080631.462 20080632.069
+ 45.000 46.900
+ 1859792.877 4 1449187.406 3 24607560.481 24607562.436 24607559.503
+ 24.200 23.400
+ -14249212.126 7 -11103275.223 7 20656333.199 20656332.322 20656332.008
+ 45.500 43.900
+ -16342161.161 7 -12734140.917 6 21703693.276 21703690.095 21703692.550
+ 42.200 39.100
+ -18305922.707 7 -14264348.810 7 21238402.625 21238401.246 21238402.174
+ 46.600 43.000
+ -8771602.086 5 -6835009.205 5 22723296.591 22723296.830 22723295.662
+ 34.300 31.100
+ -14276620.870 7 -11124625.573 6 21716969.074 21716968.796 21716968.150
+ 44.100 37.200
+ 06 1 2 20 3 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5450325.356 5 -4246998.376 3 23648104.690 23648102.979 23648103.159
+ 32.600 22.100
+ -22915927.937 7 -17856549.455 7 20079967.146 20079966.010 20079966.658
+ 45.200 47.000
+ 1941578.700 4 1512916.537 3 24623123.915 24623125.712 24623123.377
+ 25.900 19.900
+ -14220672.580 7 -11081036.612 7 20661764.022 20661763.213 20661762.890
+ 45.500 43.800
+ -16418592.989 6 -12793698.144 6 21689148.356 21689145.711 21689147.543
+ 41.500 39.400
+ -18247483.929 7 -14218812.106 7 21249523.336 21249521.613 21249522.651
+ 46.600 42.800
+ -8842679.581 5 -6890394.232 4 22709771.092 22709771.028 22709770.209
+ 34.500 29.700
+ -14205978.659 7 -11069579.696 6 21730411.462 21730411.710 21730410.764
+ 44.100 37.300
+ 06 1 2 20 4 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5365106.634 5 -4180594.179 3 23664320.311 23664319.679 23664319.318
+ 30.600 20.500
+ -22918981.775 7 -17858929.065 7 20079385.867 20079384.912 20079385.407
+ 44.900 47.000
+ 2023619.581 4 1576844.431 2 24638736.254 24638737.271 24638735.113
+ 27.100 16.100
+ -14191791.018 7 -11058531.492 7 20667260.036 20667259.165 20667258.895
+ 45.700 43.800
+ -16494724.870 6 -12853021.630 6 21674660.888 21674658.470 21674660.073
+ 41.900 39.400
+ -18188724.267 7 -14173025.362 7 21260704.592 21260703.238 21260704.125
+ 46.600 42.400
+ -8913308.908 5 -6945430.043 5 22696330.175 22696330.928 22696329.385
+ 34.800 30.100
+ -14135116.865 7 -11014362.728 6 21743896.401 21743896.192 21743895.471
+ 43.900 36.900
+ 06 1 2 20 4 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5279518.737 5 -4113902.327 3 23680607.336 23680606.439 23680606.168
+ 31.600 21.100
+ -22921593.155 7 -17860963.904 7 20078888.806 20078887.922 20078888.416
+ 44.900 46.900
+ 2105912.084 3 1640968.409 2 24654395.774 24654397.325 24654394.891
+ 23.800 15.100
+ -14162567.276 7 -11035759.743 7 20672821.180 20672820.227 20672820.063
+ 45.600 43.800
+ -16570555.821 7 -12912110.635 6 21660231.065 21660228.323 21660230.312
+ 42.500 39.800
+ -18129644.110 7 -14126988.886 7 21271947.427 21271945.895 21271946.842
+ 46.800 42.600
+ -8983487.593 5 -7000114.707 4 22682976.440 22682975.974 22682975.375
+ 34.800 29.200
+ -14064037.143 7 -10958975.938 6 21757422.120 21757422.269 21757421.327
+ 43.900 37.000
+ 06 1 2 20 5 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5193563.610 5 -4046924.321 3 23696964.974 23696963.277 23696963.348
+ 30.100 19.300
+ -22923762.642 7 -17862654.416 7 20078476.005 20078475.085 20078475.623
+ 45.100 47.000
+ 2188452.533 3 1705285.588 2 24670102.452 24670104.112 24670101.587
+ 23.800 17.000
+ -14133001.014 7 -11012721.093 7 20678447.466 20678446.474 20678446.238
+ 45.400 43.700
+ -16646085.244 7 -12970964.697 6 21645858.119 21645855.339 21645857.385
+ 42.400 39.800
+ -18070243.599 7 -14080702.776 7 21283250.690 21283249.579 21283250.380
+ 46.600 42.700
+ -9053213.411 5 -7054446.486 4 22669707.808 22669707.782 22669706.768
+ 34.700 29.900
+ -13992741.209 7 -10903420.675 6 21770989.438 21770989.330 21770988.598
+ 43.800 36.700
+ 06 1 2 20 5 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5107244.761 4 -3979662.920 3 23713390.399 23713389.360 23713388.939
+ 29.500 20.500
+ -22925491.128 7 -17864001.286 7 20078147.130 20078146.067 20078146.747
+ 45.200 47.000
+ 2271238.630 3 1769794.170 2 24685856.204 24685858.059 24685855.261
+ 22.100 17.000
+ -14103092.137 7 -10989415.464 7 20684138.765 20684137.929 20684137.649
+ 45.400 43.500
+ -16721312.047 7 -13029582.946 6 21631542.747 21631540.253 21631542.108
+ 42.500 40.000
+ -18010522.961 7 -14034167.225 7 21294615.278 21294614.075 21294614.814
+ 46.600 42.700
+ -9122483.990 5 -7108423.542 4 22656526.360 22656525.661 22656525.309
+ 35.200 29.700
+ -13921230.804 7 -10847698.291 6 21784597.773 21784597.307 21784596.633
+ 43.600 36.800
+ 06 1 2 20 6 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -5020564.591 4 -3912119.971 3 23729884.829 23729884.086 23729883.616
+ 29.900 19.300
+ -22926779.481 7 -17865005.197 7 20077901.938 20077900.914 20077901.507
+ 45.100 47.100
+ 2354266.620 3 1834491.265 3 24701655.942 24701657.914 24701655.397
+ 23.800 19.300
+ -14072840.326 7 -10965842.617 7 20689895.558 20689894.562 20689894.390
+ 45.600 43.500
+ -16796235.319 7 -13087964.674 6 21617285.561 21617282.591 21617284.735
+ 42.000 39.300
+ -17950483.188 7 -13987382.987 7 21306040.803 21306039.285 21306040.097
+ 46.500 42.600
+ -9191296.981 5 -7162044.027 5 22643431.412 22643431.304 22643430.409
+ 35.100 30.600
+ -13849507.750 7 -10791810.212 6 21798245.913 21798245.849 21798244.978
+ 43.800 36.600
+ 06 1 2 20 6 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -4933525.533 5 -3844297.328 3 23746447.948 23746446.970 23746446.718
+ 30.400 18.600
+ -22927628.277 7 -17865666.592 7 20077740.413 20077739.464 20077739.934
+ 45.000 47.100
+ 2437533.343 3 1899374.374 2 24717501.120 24717503.090 24717500.152
+ 23.000 16.100
+ -14042245.470 7 -10942002.472 7 20695717.566 20695716.580 20695716.411
+ 45.600 43.500
+ -16870854.369 7 -13146109.362 6 21603086.062 21603083.001 21603085.295
+ 42.800 39.800
+ -17890124.460 7 -13940350.220 7 21317526.477 21317525.116 21317525.990
+ 46.600 42.500
+ -9259650.269 5 -7215306.296 5 22630424.306 22630423.953 22630423.136
+ 35.100 31.000
+ -13777573.683 7 -10735757.698 6 21811934.661 21811934.451 21811933.665
+ 43.700 36.500
+ 06 1 2 20 7 0.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -4846130.559 5 -3776197.347 2 23763079.027 23763077.117 23763077.756
+ 30.400 17.800
+ -22928038.407 7 -17865986.169 7 20077662.455 20077661.409 20077661.951
+ 45.100 47.000
+ 2521035.047 3 1964440.616 2 24733390.888 24733392.915 24733390.013
+ 23.400 15.100
+ -14011307.257 7 -10917894.772 7 20701604.929 20701604.037 20701603.831
+ 45.400 43.500
+ -16945168.001 7 -13204016.061 6 21588944.588 21588941.677 21588943.899
+ 43.300 40.200
+ -17829447.580 7 -13893069.541 7 21329073.094 21329071.497 21329072.456
+ 46.400 42.500
+ -9327541.471 5 -7268208.501 5 22617504.831 22617504.724 22617503.677
+ 34.500 30.800
+ -13705430.421 7 -10679542.184 6 21825662.950 21825662.989 21825662.071
+ 43.600 36.700
+ 06 1 2 20 7 30.0000000 0 8G20G 4G 9G 7G 2G17G 5G24
+ -4758381.968 4 -3707821.835 3 23779776.903 23779775.480 23779775.463
+ 29.900 21.100
+ -22928010.645 7 -17865964.528 7 20077667.505 20077666.691 20077667.134
+ 45.000 47.100
+ 2604769.150 3 2029687.929 2 24749325.568 24749326.763 24749324.643
+ 23.800 13.900
+ -13980025.526 7 -10893519.397 7 20707557.602 20707556.820 20707556.447
+ 45.400 43.400
+ -17019175.829 7 -13261684.468 6 21574861.174 21574858.411 21574860.471
+ 42.800 40.000
+ -17768452.502 7 -13845540.921 7 21340679.870 21340678.458 21340679.418
+ 46.500 42.200
+ -9394968.373 5 -7320748.900 5 22604673.967 22604673.794 22604672.824
+ 34.700 31.500
+ -13633079.512 7 -10623164.862 6 21839430.922 21839430.787 21839430.156
+ 43.600 36.500
+ 06 1 2 20 8 0.0000000 0 7G20G 4G 7G 2G17G 5G24
+ -4670282.638 5 -3639173.020 3 23796541.634 23796541.225 23796540.416
+ 30.100 21.600
+ -22927545.897 7 -17865602.381 7 20077756.198 20077755.139 20077755.778
+ 45.200 47.200
+ -13948400.062 7 -10868876.177 7 20713575.794 20713574.928 20713574.659
+ 45.600 43.400
+ -17092877.024 7 -13319113.950 6 21560836.052 21560833.715 21560835.373
+ 42.500 40.300
+ -17707139.727 7 -13797764.737 7 21352347.548 21352345.824 21352346.820
+ 46.400 42.200
+ -9461928.700 5 -7372925.759 5 22591931.796 22591931.522 22591930.753
+ 34.800 31.600
+ -13560522.543 7 -10566626.981 6 21853237.949 21853238.004 21853237.205
+ 43.500 36.700
+ 06 1 2 20 8 30.0000000 0 7G20G 4G 7G 2G17G 5G24
+ -4581835.279 5 -3570253.030 2 23813373.170 23813371.111 23813371.437
+ 31.000 17.800
+ -22926645.019 7 -17864900.390 7 20077927.955 20077926.634 20077927.417
+ 45.300 47.200
+ -13916430.696 7 -10843964.983 7 20719659.334 20719658.432 20719658.267
+ 45.600 43.200
+ -17166270.476 7 -13376303.624 6 21546869.869 21546867.322 21546869.086
+ 42.500 40.600
+ -17645509.912 7 -13749741.506 7 21364075.125 21364073.773 21364074.591
+ 46.400 42.500
+ -9528420.243 5 -7424737.311 5 22579279.221 22579278.831 22579278.166
+ 35.900 32.100
+ -13487761.248 7 -10509929.888 6 21867084.317 21867084.065 21867083.372
+ 43.400 36.500
+ 06 1 2 20 9 0.0000000 0 7G20G 4G 7G 2G17G 5G24
+ -4493042.526 4 -3501063.872 3 23830268.306 23830268.169 23830267.329
+ 28.600 19.900
+ -22925308.806 7 -17863859.175 7 20078181.718 20078180.908 20078181.388
+ 45.400 47.300
+ -13884117.289 7 -10818785.711 7 20725808.573 20725807.410 20725807.319
+ 45.700 43.100
+ -17239355.107 7 -13433252.665 6 21532962.410 21532959.358 21532961.641
+ 42.900 40.000
+ -17583563.690 7 -13701471.733 7 21375863.245 21375861.747 21375862.429
+ 46.000 42.300
+ -9594440.737 5 -7476181.828 5 22566715.394 22566715.766 22566714.416
+ 35.900 32.800
+ -13414797.419 7 -10453074.971 6 21880968.571 21880968.624 21880967.757
+ 43.400 36.600
+ 06 1 2 20 9 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -4403906.983 4 -3431607.623 2 23847230.469 23847229.785 23847229.471
+ 29.200 17.800
+ -22923538.139 7 -17862479.421 7 20078518.676 20078517.725 20078518.252
+ 45.200 47.200
+ -87831.348 4 -68440.094 2 24676362.859 24676358.665 24676361.801
+ 28.600 13.900
+ -13851459.688 7 -10793338.234 7 20732022.938 20732021.914 20732021.850
+ 45.800 42.800
+ -17312130.274 7 -13489960.567 6 21519113.739 21519110.983 21519112.917
+ 42.600 40.300
+ -17521301.141 7 -13652955.468 7 21387710.874 21387709.896 21387710.594
+ 45.900 42.000
+ -9659987.980 6 -7527257.572 5 22554242.392 22554242.456 22554241.341
+ 36.500 32.600
+ -13341632.522 7 -10396063.379 6 21894891.629 21894891.776 21894890.664
+ 43.000 36.500
+ 06 1 2 20 10 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -4314431.410 4 -3361886.411 3 23864258.012 23864257.248 23864256.685
+ 28.400 20.500
+ -22921333.995 7 -17860761.896 7 20078938.026 20078937.131 20078937.623
+ 45.100 47.100
+ -144634.854 4 -112702.520 3 24665553.323 24665549.397 24665551.924
+ 26.800 18.600
+ -13818457.662 7 -10767622.371 7 20738303.267 20738301.925 20738301.937
+ 45.500 43.000
+ -17384595.403 7 -13546426.876 6 21505323.756 21505321.400 21505322.985
+ 42.600 40.700
+ -17458722.789 7 -13604193.124 7 21399619.521 21399618.124 21399618.973
+ 45.900 42.000
+ -9725059.787 6 -7577962.845 5 22541859.751 22541859.325 22541858.644
+ 36.200 31.800
+ -13268268.413 7 -10338896.558 6 21908852.535 21908852.248 21908851.577
+ 43.400 36.400
+ 06 1 2 20 10 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -4224618.433 4 -3291902.298 3 23881349.057 23881347.648 23881347.663
+ 29.500 19.300
+ -22918696.975 7 -17858707.064 7 20079440.033 20079438.915 20079439.524
+ 45.100 47.200
+ -201058.290 4 -156668.806 3 24654815.741 24654813.031 24654814.918
+ 27.100 20.500
+ -13785111.063 7 -10741638.005 7 20744648.661 20744647.670 20744647.549
+ 45.600 43.000
+ -17456749.468 7 -13602650.790 6 21491593.460 21491590.647 21491592.860
+ 43.100 40.600
+ -17395829.417 7 -13555185.307 6 21411587.761 21411586.288 21411587.079
+ 45.600 41.800
+ -9789653.954 6 -7628295.932 5 22529567.394 22529567.505 22529566.355
+ 36.000 31.600
+ -13194706.478 7 -10281575.581 6 21922850.514 21922850.602 21922849.768
+ 43.300 36.200
+ 06 1 2 20 11 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -4134470.880 4 -3221657.454 3 23898503.281 23898502.368 23898501.858
+ 29.500 19.300
+ -22915628.033 7 -17856315.672 7 20080023.741 20080022.966 20080023.398
+ 45.000 47.200
+ -257098.332 4 -200336.331 3 24644151.641 24644148.639 24644150.372
+ 26.200 19.300
+ -13751419.724 7 -10715385.024 7 20751059.782 20751058.973 20751058.752
+ 45.600 43.100
+ -17528591.707 7 -13658631.736 6 21477922.591 21477919.415 21477921.838
+ 43.100 40.600
+ -17332621.451 7 -13505932.360 6 21423615.647 21423614.293 21423615.159
+ 45.600 41.800
+ -9853768.182 6 -7678255.036 5 22517367.147 22517367.129 22517366.065
+ 36.200 33.000
+ -13120948.207 7 -10224101.614 5 21936886.305 21936886.296 21936885.517
+ 43.400 35.700
+ 06 1 2 20 11 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -4043991.232 4 -3151153.857 3 23915720.461 23915720.384 23915719.298
+ 26.500 22.600
+ -22912128.213 7 -17853588.527 7 20080689.846 20080688.977 20080689.435
+ 45.400 47.100
+ -312752.453 4 -243703.117 3 24633561.188 24633557.436 24633560.275
+ 26.800 19.300
+ -13717383.447 7 -10688863.253 7 20757536.984 20757535.881 20757535.708
+ 45.600 43.000
+ -17600121.176 7 -13714368.962 6 21464310.860 21464307.997 21464310.085
+ 43.100 40.700
+ -17269099.410 7 -13456434.669 6 21435703.792 21435702.387 21435702.951
+ 45.500 41.900
+ -9917400.553 6 -7727838.660 5 22505258.287 22505258.176 22505257.255
+ 36.200 32.300
+ -13046995.493 7 -10166476.136 5 21950959.215 21950958.931 21950958.245
+ 43.200 35.600
+ 06 1 2 20 12 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3953182.226 4 -3080393.631 3 23933000.311 23933000.466 23932999.634
+ 28.400 19.900
+ -22908198.277 7 -17850526.228 7 20081437.787 20081436.729 20081437.417
+ 45.400 47.200
+ -368018.177 4 -286767.288 3 24623045.000 24623041.224 24623043.778
+ 26.200 19.900
+ -13683002.073 7 -10662072.572 7 20764079.485 20764078.491 20764078.379
+ 45.800 43.000
+ -17671337.261 7 -13769861.987 6 21450758.874 21450755.867 21450758.032
+ 43.100 40.600
+ -17205263.707 7 -13406692.577 6 21447850.953 21447849.742 21447850.645
+ 45.800 41.600
+ -9980548.691 6 -7777044.964 5 22493241.647 22493241.119 22493240.545
+ 36.400 32.400
+ -12972850.175 7 -10108700.577 5 21965068.616 21965068.395 21965067.850
+ 43.100 35.500
+ 06 1 2 20 12 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3862046.645 4 -3009378.890 2 23950343.253 23950342.545 23950342.067
+ 28.400 17.800
+ -22903839.171 7 -17847129.517 7 20082267.416 20082266.243 20082266.985
+ 45.400 47.100
+ -422893.261 3 -329527.049 2 24612601.376 24612598.705 24612600.698
+ 23.400 17.800
+ -13648275.664 7 -10635013.033 7 20770687.914 20770686.638 20770686.597
+ 45.600 43.000
+ -17742239.048 7 -13825110.107 6 21437266.654 21437263.466 21437265.852
+ 43.100 40.300
+ -17141114.919 7 -13356706.504 6 21460058.536 21460056.816 21460057.616
+ 45.300 41.500
+ -10043210.580 6 -7825872.371 5 22481317.440 22481317.381 22481316.324
+ 36.000 32.800
+ -12898513.718 7 -10050776.079 5 21979214.217 21979214.152 21979213.383
+ 42.700 35.600
+ 06 1 2 20 13 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3770587.064 4 -2938111.707 3 23967747.900 23967747.060 23967746.553
+ 27.100 18.600
+ -22899051.762 7 -17843399.061 7 20083178.394 20083177.319 20083177.939
+ 45.800 47.300
+ -477374.614 3 -371980.000 3 24602233.971 24602230.855 24602232.687
+ 21.600 19.300
+ -13613203.852 7 -10607684.350 7 20777361.412 20777360.548 20777360.289
+ 45.800 42.700
+ -17812826.006 7 -13880112.907 6 21423834.380 21423831.487 21423833.621
+ 43.300 40.700
+ -17076653.461 7 -13306476.809 6 21472324.596 21472323.388 21472324.315
+ 45.700 41.400
+ -10105384.016 6 -7874319.176 5 22469485.851 22469485.826 22469484.810
+ 36.000 32.300
+ -12823987.616 7 -9992703.804 5 21993396.164 21993396.160 21993395.253
+ 42.400 35.600
+ 06 1 2 20 13 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3678806.530 4 -2866594.442 3 23985212.214 23985212.695 23985211.259
+ 28.100 21.100
+ -22893837.023 7 -17839335.622 7 20084170.628 20084169.640 20084170.291
+ 45.600 47.300
+ -531459.912 4 -414124.345 3 24591942.787 24591939.194 24591941.513
+ 25.600 19.900
+ -13577786.733 7 -10580086.603 7 20784101.288 20784100.196 20784100.141
+ 45.700 42.700
+ -17883096.804 7 -13934869.350 6 21410462.024 21410459.410 21410461.324
+ 43.100 40.900
+ -17011879.888 7 -13256003.897 6 21484651.139 21484649.508 21484650.386
+ 45.600 41.100
+ -10167066.819 6 -7922383.660 5 22457748.160 22457747.922 22457747.182
+ 36.700 31.800
+ -12749273.526 7 -9934485.049 5 22007613.832 22007613.691 22007612.833
+ 42.100 35.400
+ 06 1 2 20 14 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3586707.420 4 -2794828.907 3 24002739.013 24002738.196 24002737.614
+ 26.800 19.900
+ -22888195.793 7 -17834939.854 7 20085244.209 20085243.091 20085243.762
+ 45.600 47.200
+ -585146.565 4 -455958.085 3 24581726.659 24581722.992 24581725.049
+ 26.500 21.600
+ -13542024.025 7 -10552219.557 7 20790906.828 20790905.601 20790905.552
+ 45.600 42.400
+ -17953051.147 7 -13989379.192 6 21397150.310 21397147.543 21397149.548
+ 43.100 41.200
+ -16946794.754 7 -13205288.222 6 21497036.026 21497034.655 21497035.644
+ 45.600 40.800
+ -10228257.042 6 -7970064.327 5 22446104.446 22446103.786 22446103.287
+ 37.500 32.300
+ -12674373.149 7 -9876121.124 5 22021867.034 22021866.660 22021866.028
+ 42.200 35.600
+ 06 1 2 20 14 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3494292.341 4 -2722817.199 3 24020325.323 24020324.591 24020324.176
+ 28.800 21.100
+ -22882129.000 7 -17830212.479 7 20086398.685 20086397.610 20086398.265
+ 45.700 47.300
+ -638432.071 4 -497479.188 3 24571586.608 24571583.552 24571585.188
+ 25.300 22.100
+ -13505915.573 7 -10524083.102 7 20797777.685 20797776.756 20797776.663
+ 45.600 42.300
+ -18022687.947 7 -14043641.605 6 21383899.064 21383895.868 21383898.247
+ 43.500 41.200
+ -16881398.582 7 -13154330.161 6 21509480.985 21509479.234 21509480.226
+ 45.600 41.000
+ -10288952.478 6 -8017359.454 5 22434554.344 22434553.860 22434553.022
+ 37.500 32.400
+ -12599288.190 7 -9817613.388 5 22036155.073 22036155.241 22036154.138
+ 42.000 35.700
+ 06 1 2 20 15 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3401564.082 5 -2650561.440 2 24037970.581 24037969.502 24037969.371
+ 30.100 17.800
+ -22875637.760 7 -17825154.368 7 20087633.926 20087632.891 20087633.476
+ 45.600 47.300
+ -691313.955 4 -538685.834 3 24561522.716 24561519.538 24561521.822
+ 25.900 19.300
+ -13469461.546 7 -10495677.372 7 20804715.038 20804713.870 20804713.778
+ 45.600 42.700
+ -18092006.768 7 -14097656.241 6 21370707.991 21370704.910 21370707.272
+ 43.600 40.900
+ -16815691.938 7 -13103130.189 6 21521984.162 21521982.847 21521983.837
+ 45.600 41.000
+ -10349151.099 6 -8064267.444 5 22423098.783 22423098.293 22423097.584
+ 37.000 32.100
+ -12524020.133 7 -9758962.966 5 22050478.432 22050477.972 22050477.362
+ 42.200 35.300
+ 06 1 2 20 15 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3308525.172 4 -2578063.564 2 24055675.293 24055673.731 24055673.824
+ 27.400 13.900
+ -22868722.873 7 -17819766.141 7 20088949.781 20088948.682 20088949.317
+ 45.500 47.200
+ -743789.409 4 -579575.805 3 24551537.416 24551534.182 24551536.072
+ 28.400 19.300
+ -13432661.612 7 -10467002.101 7 20811717.435 20811716.702 20811716.386
+ 45.500 42.500
+ -18161006.514 7 -14151422.254 6 21357577.900 21357574.893 21357577.064
+ 43.600 41.400
+ -16749675.569 7 -13051688.864 6 21534547.324 21534545.452 21534546.475
+ 45.700 41.200
+ -10408850.987 6 -8110786.801 5 22411737.868 22411737.855 22411736.816
+ 36.800 32.300
+ -12448570.483 7 -9700171.052 5 22064835.706 22064835.641 22064834.778
+ 42.000 35.100
+ 06 1 2 20 16 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3215178.668 4 -2505326.022 2 24073438.778 24073437.106 24073437.329
+ 26.500 17.000
+ -22861385.430 7 -17814048.652 7 20090345.911 20090344.906 20090345.503
+ 45.500 47.200
+ -795855.812 4 -620146.991 3 24541630.190 24541625.840 24541628.668
+ 29.500 20.500
+ -13395515.689 7 -10438057.223 7 20818786.219 20818785.260 20818784.968
+ 45.400 42.300
+ -18229686.429 7 -14204939.042 6 21344508.441 21344505.354 21344507.610
+ 43.600 41.100
+ -16683349.720 7 -13000006.397 6 21547167.966 21547167.007 21547167.655
+ 45.400 41.400
+ -10468049.869 6 -8156915.766 5 22400472.403 22400472.502 22400471.519
+ 36.300 32.000
+ -12372940.904 7 -9641238.932 5 22079227.817 22079227.493 22079226.847
+ 42.400 35.100
+ 06 1 2 20 16 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3121527.131 4 -2432350.845 3 24091259.675 24091259.965 24091258.552
+ 27.600 19.300
+ -22853626.290 7 -17808002.566 7 20091822.322 20091821.400 20091822.013
+ 45.700 47.200
+ -847511.215 4 -660397.916 3 24531799.620 24531796.390 24531798.465
+ 27.600 21.100
+ -13358023.793 7 -10408842.755 7 20825920.652 20825919.613 20825919.462
+ 45.400 42.200
+ -18298045.865 7 -14258206.107 6 21331500.065 21331496.863 21331499.210
+ 43.700 41.100
+ -16616715.113 7 -12948083.336 6 21559848.624 21559847.037 21559847.861
+ 45.500 41.300
+ -10526745.799 6 -8202652.811 5 22389303.046 22389303.375 22389302.068
+ 36.200 32.700
+ -12297133.145 7 -9582167.969 5 22093652.942 22093653.101 22093652.306
+ 42.400 34.700
+ 06 1 2 20 17 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -3027573.359 4 -2359140.138 2 24109139.008 24109137.672 24109137.777
+ 29.500 17.800
+ -22845446.261 7 -17801628.516 7 20093379.125 20093378.066 20093378.686
+ 45.600 47.300
+ -898752.857 4 -700326.421 3 24522048.839 24522045.189 24522047.292
+ 26.800 21.100
+ -13320185.838 7 -10379358.635 7 20833120.768 20833120.019 20833119.766
+ 45.500 42.000
+ -18366084.162 7 -14311222.938 6 21318552.403 21318549.811 21318551.705
+ 43.400 41.800
+ -16549772.285 7 -12895920.107 6 21572587.004 21572585.753 21572586.713
+ 45.300 41.000
+ -10584936.784 6 -8247996.395 5 22378229.826 22378229.918 22378228.843
+ 36.400 33.000
+ -12221148.580 7 -9522959.223 5 22108112.918 22108112.556 22108112.132
+ 42.400 34.700
+ 06 1 2 20 17 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2933319.895 4 -2285695.863 3 24127074.545 24127073.364 24127073.458
+ 28.600 19.300
+ -22836846.704 7 -17794927.562 7 20095015.544 20095014.531 20095015.110
+ 45.700 47.300
+ -949578.162 4 -739930.539 3 24512376.927 24512373.785 24512375.900
+ 27.400 21.100
+ -13282001.715 7 -10349604.774 7 20840387.207 20840386.287 20840385.995
+ 45.400 42.300
+ -18433800.477 7 -14363988.865 6 21305666.769 21305663.928 21305665.918
+ 43.400 41.600
+ -16482521.660 7 -12843517.034 6 21585384.832 21585383.021 21585384.049
+ 45.100 41.100
+ -10642620.713 6 -8292944.890 5 22367253.283 22367252.785 22367252.139
+ 37.400 32.600
+ -12144988.662 7 -9463613.848 5 22122605.467 22122605.326 22122604.518
+ 42.000 34.500
+ 06 1 2 20 18 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2838769.542 4 -2212020.268 2 24145066.792 24145065.683 24145065.736
+ 27.900 16.100
+ -22827828.278 7 -17787900.216 7 20096731.744 20096730.648 20096731.277
+ 45.700 47.200
+ -999984.885 4 -779208.452 2 24502784.824 24502781.282 24502783.623
+ 26.500 17.800
+ -13243471.446 7 -10319581.196 7 20847718.947 20847718.264 20847717.913
+ 45.400 42.000
+ -18501194.087 7 -14416503.342 7 21292841.884 21292839.320 21292841.125
+ 43.200 42.100
+ -16414964.155 7 -12790874.840 6 21598240.240 21598239.006 21598239.834
+ 45.100 41.100
+ -10699795.720 6 -8337496.814 5 22356373.394 22356372.609 22356372.172
+ 38.100 32.300
+ -12068655.288 6 -9404133.305 5 22137131.180 22137131.188 22137130.367
+ 41.800 34.700
+ 06 1 2 20 18 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2743925.079 4 -2138115.505 3 24163114.655 24163114.359 24163113.717
+ 24.900 19.300
+ -22818392.201 7 -17780547.430 7 20098527.371 20098526.293 20098526.979
+ 45.700 47.300
+ -1049970.487 4 -818158.264 3 24493272.249 24493269.447 24493271.554
+ 25.600 21.100
+ -13204594.905 7 -10289287.790 6 20855117.235 20855116.191 20855115.966
+ 45.100 41.900
+ -18568264.180 7 -14468765.726 6 21280079.205 21280075.910 21280078.445
+ 43.900 41.600
+ -16347099.992 7 -12737993.687 6 21611154.616 21611153.139 21611153.834
+ 44.800 41.200
+ -10756459.754 6 -8381650.591 5 22345590.741 22345589.700 22345589.374
+ 38.000 32.400
+ -11992149.829 6 -9344518.675 5 22151689.769 22151689.807 22151688.850
+ 41.800 35.200
+ 06 1 2 20 19 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2648789.139 4 -2063983.636 2 24181219.437 24181217.773 24181218.088
+ 26.800 17.000
+ -22808539.303 7 -17772869.848 7 20100402.291 20100401.311 20100401.887
+ 45.700 47.300
+ -1099532.634 4 -856778.092 3 24483841.046 24483838.483 24483839.854
+ 27.400 19.900
+ -13165372.048 7 -10258724.529 7 20862580.807 20862580.113 20862579.782
+ 45.100 42.000
+ -18635010.228 7 -14520775.613 6 21267377.819 21267374.448 21267377.015
+ 43.800 41.500
+ -16278929.961 7 -12684874.206 6 21624126.884 21624125.454 21624126.288
+ 45.200 40.900
+ -10812610.923 6 -8425404.732 5 22334905.266 22334904.448 22334904.070
+ 38.300 32.600
+ -11915473.732 6 -9284771.066 5 22166280.760 22166280.673 22166279.835
+ 41.900 34.600
+ 06 1 2 20 19 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2553364.486 4 -1989626.760 2 24199377.364 24199376.926 24199376.376
+ 27.100 17.000
+ -22798270.464 7 -17764868.157 7 20102356.426 20102355.362 20102355.948
+ 45.900 47.300
+ -1148668.655 4 -895065.854 3 24474491.414 24474488.033 24474490.070
+ 26.800 22.100
+ -13125802.851 7 -10227891.397 6 20870110.946 20870109.889 20870109.564
+ 44.900 41.900
+ -18701431.369 7 -14572532.311 6 21254738.065 21254735.251 21254737.224
+ 43.700 41.900
+ -16210454.712 7 -12631516.883 6 21637156.827 21637155.914 21637156.578
+ 44.600 40.900
+ -10868247.228 6 -8468757.683 5 22324318.040 22324317.531 22324316.945
+ 38.700 33.500
+ -11838628.651 6 -9224891.783 5 22180903.786 22180903.993 22180902.958
+ 41.300 34.900
+ 06 1 2 20 20 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2457653.686 4 -1915046.950 2 24217590.616 24217590.274 24217589.667
+ 26.500 15.100
+ -22787587.096 7 -17756543.455 7 20104389.366 20104388.229 20104388.941
+ 45.700 47.300
+ -1197376.439 4 -933019.956 3 24465222.427 24465219.408 24465221.195
+ 27.100 21.600
+ -13085887.264 7 -10196788.355 6 20877705.980 20877705.534 20877705.058
+ 45.100 41.900
+ -18767526.887 7 -14624035.283 7 21242160.599 21242157.639 21242159.783
+ 44.000 42.100
+ -16141674.703 7 -12577922.093 6 21650245.912 21650244.399 21650244.954
+ 44.700 40.900
+ -10923366.844 6 -8511708.023 5 22313829.072 22313828.526 22313827.985
+ 38.100 33.900
+ -11761615.860 6 -9164881.823 5 22195559.426 22195559.138 22195558.281
+ 41.100 34.400
+ 06 1 2 20 20 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2361659.462 4 -1840246.289 2 24235857.981 24235857.227 24235856.567
+ 26.500 17.000
+ -22776489.953 7 -17747896.333 7 20106501.062 20106499.945 20106500.661
+ 45.900 47.300
+ -1245653.259 4 -970638.203 3 24456036.184 24456032.171 24456035.013
+ 29.700 21.600
+ -13045625.226 7 -10165415.345 6 20885368.058 20885367.170 20885366.847
+ 45.100 41.800
+ -18833296.043 7 -14675283.956 6 21229645.149 21229641.781 21229644.284
+ 43.900 41.700
+ -16072590.740 7 -12524090.458 6 21663391.481 21663390.526 21663391.346
+ 44.700 40.500
+ -10977967.749 6 -8554254.158 5 22303438.855 22303438.260 22303437.763
+ 38.400 33.200
+ -11684437.147 6 -9104742.562 5 22210245.430 22210245.466 22210244.481
+ 40.800 33.900
+ 06 1 2 20 21 0.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2265384.471 4 -1765226.827 1 24254179.209 24254177.278 24254177.625
+ 24.600 11.000
+ -22764980.133 7 -17738927.641 7 20108691.230 20108690.224 20108690.887
+ 46.000 47.300
+ -1293496.932 4 -1007918.971 3 24446931.525 24446927.807 24446929.907
+ 26.800 21.600
+ -13005016.787 7 -10133772.419 6 20893095.395 20893094.764 20893094.355
+ 44.900 41.600
+ -18898738.131 7 -14726277.763 7 21217191.690 21217188.840 21217190.967
+ 44.100 42.000
+ -16003203.151 7 -12470022.220 6 21676595.806 21676594.465 21676595.142
+ 44.700 40.400
+ -11032047.950 6 -8596394.574 5 22293147.586 22293146.847 22293146.397
+ 38.000 32.700
+ -11607094.046 6 -9044475.217 5 22224963.233 22224963.551 22224962.387
+ 41.000 34.400
+ 06 1 2 20 21 30.0000000 0 8G20G 4G23G 7G 2G17G 5G24
+ -2168831.660 4 -1689990.883 2 24272551.364 24272551.015 24272550.725
+ 24.900 16.100
+ -22753058.499 7 -17729638.060 7 20110959.776 20110958.875 20110959.455
+ 45.800 47.200
+ -1340904.953 4 -1044860.239 3 24437910.133 24437906.300 24437908.711
+ 27.600 21.600
+ -12964061.928 7 -10101859.553 6 20900889.481 20900888.224 20900888.077
+ 45.100 41.800
+ -18963852.644 7 -14777016.317 7 21204800.984 21204798.197 21204800.243
+ 44.300 42.500
+ -15933512.783 7 -12415718.048 6 21689857.599 21689856.023 21689857.008
+ 44.600 40.200
+ -11085605.837 6 -8638127.979 5 22282955.617 22282955.351 22282954.513
+ 37.300 32.600
+ -11529587.997 6 -8984080.888 5 22239712.094 22239712.088 22239711.288
+ 41.000 33.800
+ 06 1 2 20 22 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -2072003.532 4 -1614540.421 2 24290977.872 24290977.518 24290976.480
+ 26.500 17.800
+ -22740726.357 7 -17720028.596 7 20113306.700 20113305.538 20113306.244
+ 45.900 47.200
+ -1387875.170 4 -1081460.360 3 24428971.249 24428968.129 24428970.093
+ 25.600 21.600
+ -12922760.681 7 -10069676.772 6 20908748.382 20908747.579 20908747.302
+ 45.300 41.500
+ -19028638.666 7 -14827498.902 7 21192472.515 21192469.576 21192471.706
+ 43.800 42.500
+ -15863520.158 7 -12361178.368 6 21703176.690 21703175.223 21703176.192
+ 44.800 39.700
+ -11138639.277 6 -8679452.733 5 22272863.783 22272863.271 22272862.646
+ 37.800 33.000
+ -128729.685 2 -100307.875 2 24437624.212 24437624.730 24437623.709
+ 17.800 17.800
+ -11451920.502 6 -8923560.757 5 22254492.151 22254491.936 22254491.178
+ 41.000 34.000
+ 06 1 2 20 22 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1974902.985 4 -1538877.674 2 24309456.122 24309454.946 24309454.817
+ 27.400 17.000
+ -22727984.631 7 -17710099.981 7 20115731.407 20115730.173 20115730.959
+ 45.900 47.100
+ -1434405.289 4 -1117717.530 3 24420117.445 24420113.987 24420116.087
+ 25.900 21.600
+ -12881112.911 7 -10037223.979 6 20916673.995 20916672.880 20916672.689
+ 45.200 41.500
+ -19093095.402 7 -14877724.901 6 21180206.693 21180203.545 21180205.933
+ 44.000 41.900
+ -15793225.868 7 -12306403.612 6 21716553.612 21716551.751 21716552.921
+ 45.100 39.700
+ -11191146.584 6 -8720367.494 5 22262872.013 22262871.648 22262870.845
+ 38.100 33.200
+ -224931.122 3 -175269.941 3 24419318.086 24419319.029 24419317.787
+ 18.600 18.600
+ -11374093.020 6 -8862915.967 5 22269302.507 22269302.139 22269301.383
+ 41.100 33.900
+ 06 1 2 20 23 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1877532.284 4 -1463004.424 2 24327983.852 24327984.126 24327982.975
+ 24.600 16.100
+ -22714834.364 7 -17699853.022 7 20118233.776 20118232.664 20118233.341
+ 45.900 47.200
+ -1480492.956 4 -1153629.992 2 24411346.464 24411342.550 24411345.553
+ 24.600 16.100
+ -12839118.700 7 -10004501.225 6 20924665.046 20924664.120 20924663.971
+ 45.400 41.500
+ -19157222.521 7 -14927694.060 7 21168003.688 21168000.831 21168003.005
+ 44.300 42.500
+ -15722630.569 7 -12251394.304 6 21729987.212 21729985.656 21729986.679
+ 44.900 40.000
+ -11243125.810 6 -8760870.768 5 22252980.504 22252980.250 22252979.530
+ 38.100 33.200
+ -320833.580 3 -249999.019 3 24401068.162 24401069.751 24401067.762
+ 22.100 18.600
+ -11296107.279 6 -8802147.854 5 22284142.517 22284141.850 22284141.468
+ 41.100 32.600
+ 06 1 2 20 23 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1779894.620 4 -1386923.185 2 24346564.343 24346564.447 24346563.015
+ 25.900 17.000
+ -22701276.610 7 -17689288.541 7 20120813.662 20120812.615 20120813.270
+ 45.800 47.200
+ -1526135.806 4 -1189195.772 3 24402660.616 24402658.110 24402659.434
+ 25.600 22.100
+ -12796778.105 7 -9971508.562 6 20932722.583 20932721.175 20932721.227
+ 45.300 41.200
+ -19221019.144 7 -14977405.683 7 21155863.705 21155860.738 21155862.864
+ 44.000 42.600
+ -15651734.913 7 -12196150.953 6 21743478.457 21743476.612 21743477.666
+ 44.700 40.000
+ -11294575.276 6 -8800961.236 5 22243189.973 22243189.537 22243189.016
+ 37.900 32.700
+ -416434.296 3 -324493.007 3 24382876.962 24382877.160 24382876.391
+ 23.800 19.900
+ -11217964.598 6 -8741257.439 5 22299012.653 22299012.031 22299011.646
+ 41.500 33.400
+ 06 1 2 20 24 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1681992.545 4 -1310635.867 2 24365194.229 24365194.034 24365192.985
+ 26.800 12.600
+ -22687312.640 7 -17678407.525 7 20123470.732 20123469.820 20123470.416
+ 45.700 47.100
+ -1571331.535 4 -1224413.213 3 24394061.106 24394057.239 24394059.689
+ 25.600 19.900
+ -12754091.149 7 -9938246.009 6 20940845.404 20940844.334 20940844.296
+ 45.500 41.400
+ -19284484.709 7 -15026859.344 7 21143786.709 21143783.378 21143785.965
+ 44.500 42.500
+ -15580539.729 7 -12140674.206 6 21757025.984 21757024.684 21757025.781
+ 44.600 40.200
+ -11345493.041 6 -8840637.393 5 22233500.511 22233499.913 22233499.567
+ 38.100 32.600
+ -511730.357 4 -398749.639 2 24364741.996 24364743.002 24364742.021
+ 25.300 17.800
+ -11139666.369 6 -8680245.836 5 22313912.221 22313911.698 22313911.363
+ 41.200 33.600
+ 06 1 2 20 24 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1583828.620 4 -1234144.505 2 24383873.493 24383873.017 24383872.486
+ 25.300 15.100
+ -22672943.080 7 -17667210.468 7 20126205.223 20126204.225 20126204.830
+ 45.700 47.100
+ -1616077.985 4 -1259280.528 3 24385545.631 24385541.874 24385544.575
+ 27.400 21.100
+ -12711057.769 7 -9904713.525 6 20949034.601 20949033.393 20949033.393
+ 45.500 41.400
+ -19347618.250 7 -15076054.292 7 21131772.765 21131769.704 21131771.895
+ 44.200 42.700
+ -15509045.376 7 -12084964.343 6 21770631.312 21770630.035 21770630.697
+ 44.300 40.700
+ -11395877.514 6 -8879898.000 5 22223913.009 22223912.220 22223911.760
+ 38.100 32.600
+ -606719.209 4 -472766.833 2 24346666.770 24346666.768 24346666.428
+ 24.600 17.000
+ -11061214.291 6 -8619114.352 5 22328841.249 22328840.650 22328840.210
+ 40.400 33.500
+ 06 1 2 20 25 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1485405.639 4 -1157451.288 2 24402602.824 24402602.536 24402601.818
+ 26.200 12.600
+ -22658169.350 7 -17655698.473 7 20129016.459 20129015.679 20129016.115
+ 45.600 47.200
+ -1660372.781 4 -1293795.917 3 24377117.040 24377113.847 24377116.022
+ 28.100 23.400
+ -12667678.112 7 -9870911.196 6 20957289.268 20957288.285 20957288.128
+ 45.400 41.500
+ -19410419.312 7 -15124990.156 7 21119822.129 21119819.092 21119821.252
+ 44.300 42.800
+ -15437252.854 7 -12029022.151 6 21784293.492 21784291.568 21784292.362
+ 44.200 40.500
+ -11445726.728 6 -8918741.520 5 22214427.237 22214426.137 22214425.909
+ 38.600 32.700
+ -701397.956 4 -546542.429 3 24328649.873 24328649.648 24328649.469
+ 28.100 18.600
+ -10982609.959 6 -8557864.220 5 22343798.798 22343798.869 22343797.904
+ 40.500 33.800
+ 06 1 2 20 25 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1386726.172 4 -1080558.184 2 24421381.573 24421381.032 24421380.467
+ 26.500 13.900
+ -22642992.400 7 -17643872.282 7 20131904.781 20131903.805 20131904.286
+ 45.700 47.200
+ -1704213.688 4 -1327957.623 3 24368774.198 24368771.015 24368773.124
+ 28.100 23.400
+ -12623952.237 7 -9836839.096 6 20965610.210 20965609.041 20965608.932
+ 45.300 41.600
+ -19472887.369 7 -15173666.548 7 21107934.807 21107931.478 21107934.011
+ 44.500 42.600
+ -15365162.492 7 -11972847.863 6 21798010.608 21798009.944 21798010.690
+ 44.200 39.800
+ -11495039.098 6 -8957166.721 5 22205043.307 22205042.490 22205042.174
+ 38.900 33.000
+ -795763.871 3 -620074.266 2 24310692.162 24310692.407 24310691.737
+ 23.800 17.800
+ -10903854.569 6 -8496496.397 5 22358785.710 22358785.548 22358784.721
+ 41.000 33.400
+ 06 1 2 20 26 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1287793.155 3 -1003467.534 2 24440207.108 24440207.991 24440206.047
+ 23.800 17.000
+ -22627413.293 7 -17631732.724 7 20134869.384 20134868.330 20134868.912
+ 45.600 47.200
+ -1747598.639 4 -1361764.039 3 24360518.666 24360514.532 24360516.966
+ 28.100 21.600
+ -12579880.203 7 -9802497.260 6 20973996.483 20973995.748 20973995.469
+ 45.400 41.400
+ -19535021.462 7 -15222082.712 7 21096110.900 21096107.821 21096110.178
+ 44.500 42.900
+ -15292774.954 7 -11916442.010 6 21811786.226 21811784.682 21811785.530
+ 43.900 39.600
+ -11543812.670 6 -8995172.080 5 22195761.801 22195761.254 22195760.829
+ 39.500 33.400
+ -889814.336 3 -693360.247 2 24292794.268 24292795.811 24292794.085
+ 22.600 17.000
+ -10824949.591 6 -8435012.006 5 22373800.300 22373800.727 22373799.668
+ 40.700 33.200
+ 06 1 2 20 26 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1188609.177 4 -926181.324 2 24459082.254 24459081.924 24459081.039
+ 24.600 17.000
+ -22611433.381 7 -17619280.844 7 20137910.232 20137909.247 20137909.794
+ 45.700 47.200
+ -1790525.319 4 -1395213.351 3 24352349.828 24352346.536 24352348.564
+ 28.800 23.000
+ -12535461.989 7 -9767885.681 6 20982449.230 20982448.258 20982447.995
+ 45.100 41.300
+ -19596821.198 7 -15270238.335 7 21084350.931 21084347.804 21084350.169
+ 44.800 43.100
+ -15220091.184 7 -11859805.329 6 21825617.354 21825615.940 21825616.822
+ 43.900 39.400
+ -11592045.991 6 -9032756.478 5 22186583.350 22186582.648 22186582.284
+ 39.300 33.200
+ -983546.553 3 -766398.315 1 24274957.658 24274957.954 24274957.506
+ 23.000 11.000
+ -10745896.807 6 -8373412.450 5 22388843.745 22388843.716 22388842.807
+ 40.100 33.000
+ 06 1 2 20 27 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -1089177.006 4 -848701.751 2 24478003.682 24478002.810 24478002.208
+ 24.200 13.900
+ -22595053.466 7 -17606517.279 7 20141027.183 20141026.246 20141026.793
+ 45.800 47.300
+ -1832991.579 4 -1428303.922 3 24344268.535 24344265.317 24344267.406
+ 29.500 23.400
+ -12490697.666 7 -9733004.400 6 20990967.237 20990966.732 20990966.231
+ 45.100 41.400
+ -19658285.837 7 -15318132.845 7 21072654.695 21072651.420 21072653.864
+ 44.900 43.200
+ -15147111.904 7 -11802938.383 6 21839504.645 21839503.396 21839504.244
+ 43.600 39.400
+ -11639737.192 6 -9069918.444 5 22177508.153 22177507.466 22177506.851
+ 39.500 33.400
+ -1076957.717 3 -839186.231 1 24257183.092 24257182.605 24257182.209
+ 21.600 9.000
+ -10666697.176 6 -8311698.456 5 22403915.487 22403914.701 22403914.543
+ 40.300 32.400
+ 06 1 2 20 27 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -989499.404 4 -771030.871 2 24496970.878 24496970.477 24496969.989
+ 25.300 12.600
+ -22578274.534 7 -17593442.787 7 20144220.110 20144219.149 20144219.747
+ 45.700 47.100
+ -1874995.175 4 -1461033.958 3 24336275.211 24336272.231 24336274.365
+ 27.600 23.800
+ -12445587.428 7 -9697853.574 6 20999551.782 20999550.980 20999550.467
+ 44.700 41.200
+ -19719414.673 7 -15365765.694 7 21061022.350 21061018.993 21061021.531
+ 44.700 43.100
+ -15073837.581 7 -11745841.542 6 21853448.720 21853447.081 21853447.994
+ 43.800 39.500
+ -11686884.603 6 -9106656.671 5 22168536.221 22168535.374 22168535.092
+ 39.200 33.500
+ -1170045.078 4 -911721.865 2 24239469.359 24239468.442 24239468.585
+ 25.300 12.600
+ -10587352.345 6 -8249871.321 5 22419013.838 22419013.962 22419012.983
+ 40.000 33.100
+ 06 1 2 20 28 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -889578.769 3 -693170.637 2 24515985.485 24515985.356 24515984.087
+ 22.100 16.100
+ -22561098.034 7 -17580058.499 7 20147488.846 20147487.710 20147488.390
+ 45.900 47.200
+ -1916534.135 4 -1493401.947 3 24328371.289 24328367.582 24328369.834
+ 29.500 23.800
+ -12400131.393 7 -9662433.294 6 21008201.438 21008200.790 21008200.356
+ 44.700 41.100
+ -19780206.834 7 -15413136.197 7 21049453.996 21049450.618 21049453.056
+ 44.800 43.200
+ -15000269.172 7 -11688515.534 6 21867448.070 21867446.599 21867447.609
+ 43.700 39.100
+ -11733486.646 6 -9142969.940 5 22159667.922 22159667.258 22159666.907
+ 39.300 33.400
+ -1262805.871 4 -984002.950 3 24221816.285 24221817.716 24221816.139
+ 27.400 21.100
+ -10507863.665 6 -8187932.109 5 22434140.178 22434140.151 22434139.240
+ 40.000 33.800
+ 06 1 2 20 28 30.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -789418.060 4 -615123.352 2 24535045.503 24535045.279 24535044.180
+ 25.300 16.100
+ -22543524.930 7 -17566365.170 7 20150832.726 20150831.793 20150832.307
+ 45.700 47.200
+ -1957606.214 4 -1525406.120 3 24320555.585 24320552.215 24320554.184
+ 29.000 23.800
+ -12354329.466 7 -9626743.491 6 21016917.521 21016916.593 21016916.197
+ 44.400 40.900
+ -19840662.548 7 -15460244.545 7 21037949.391 21037946.392 21037948.668
+ 45.200 43.400
+ -14926407.137 7 -11630960.724 6 21881503.614 21881502.298 21881503.245
+ 43.800 39.100
+ -11779541.635 6 -9178856.930 5 22150903.635 22150903.297 22150902.803
+ 39.100 33.500
+ -1355237.470 4 -1056027.520 4 24204227.218 24204228.857 24204227.195
+ 29.200 24.900
+ -10428232.546 6 -8125881.890 5 22449293.351 22449293.201 22449292.488
+ 40.100 33.100
+ 06 1 2 20 29 0.0000000 0 9G20G 4G23G 7G 2G17G 5G30G24
+ -689019.395 4 -536890.647 2 24554151.061 24554150.196 24554149.625
+ 26.200 13.900
+ -22525556.340 7 -17552363.667 7 20154251.997 20154251.112 20154251.621
+ 45.700 47.100
+ -1998209.305 4 -1557044.872 3 24312829.084 24312825.294 24312827.699
+ 29.900 23.800
+ -12308181.893 7 -9590784.361 6 21025698.745 21025698.259 21025697.755
+ 44.800 40.800
+ -19900780.679 7 -15507089.835 7 21026509.134 21026506.228 21026508.416
+ 44.900 43.600
+ -14852251.934 7 -11573177.486 6 21895615.401 21895613.669 21895614.445
+ 43.400 39.700
+ -11825048.028 6 -9214316.433 5 22142244.312 22142243.658 22142243.243
+ 38.900 33.200
+ -1447337.112 4 -1127793.434 4 24186701.376 24186703.109 24186701.257
+ 27.400 28.400
+ -10348460.574 6 -8063721.923 5 22464473.446 22464473.437 22464472.566
+ 39.700 32.800
+ 06 1 2 20 29 30.0000000 0 10G20G 4G23G 7G 2G17G 5G30G13G24
+ -588386.378 4 -458475.293 2 24573299.863 24573300.348 24573299.372
+ 25.300 17.000
+ -22507193.252 7 -17538054.762 7 20157746.511 20157745.493 20157746.107
+ 46.000 47.100
+ -2038341.121 4 -1588316.383 3 24305191.403 24305188.492 24305190.529
+ 28.600 22.100
+ -12261688.753 7 -9554555.955 6 21034546.610 21034545.648 21034545.312
+ 44.600 40.800
+ -19960560.315 7 -15553671.361 7 21015133.612 21015130.685 21015132.823
+ 44.900 43.800
+ -14777804.794 7 -11515166.754 6 21909781.579 21909780.657 21909781.132
+ 43.100 39.500
+ -11870004.090 6 -9249347.111 5 22133689.370 22133688.721 22133688.222
+ 38.900 34.000
+ -1539101.979 4 -1199298.428 4 24169239.777 24169240.351 24169239.130
+ 24.600 29.500
+ -126580.048 3 -98633.347 2 24608273.261 24608272.218 24608272.455
+ 22.100 16.100
+ -10268548.796 6 -8001453.022 5 22479680.485 22479680.230 22479679.470
+ 39.600 33.200
+ 06 1 2 20 30 0.0000000 0 10G20G 4G23G 7G 2G17G 5G30G13G24
+ -487521.205 4 -379879.078 2 24592494.988 24592494.837 24592493.717
+ 25.300 15.100
+ -22488436.970 7 -17523439.469 7 20161315.722 20161314.690 20161315.294
+ 45.800 47.100
+ -2077999.686 4 -1619219.147 3 24297645.131 24297640.660 24297643.760
+ 28.400 19.300
+ -12214850.081 7 -9518058.303 6 21043459.582 21043458.592 21043458.444
+ 44.700 40.500
+ -20020001.220 7 -15599988.937 7 21003822.496 21003819.360 21003821.695
+ 45.200 44.100
+ -14703066.283 7 -11456928.975 6 21924003.897 21924002.849 21924003.425
+ 43.000 39.200
+ -11914408.306 6 -9283947.782 5 22125239.835 22125239.196 22125238.582
+ 39.100 34.500
+ -1630529.412 4 -1270540.478 4 24151841.129 24151842.059 24151840.621
+ 24.600 28.600
+ -208848.004 3 -162738.185 2 24592616.491 24592617.132 24592616.439
+ 21.600 17.800
+ -10188498.986 6 -7939076.556 5 22494913.851 22494912.952 22494912.724
+ 39.900 32.800
+ 06 1 2 20 30 30.0000000 0 10G20G 4G23G 7G 2G17G 5G30G13G24
+ -386426.454 3 -301103.969 2 24611731.685 24611732.161 24611731.554
+ 21.600 15.100
+ -22469288.694 7 -17508518.728 7 20164959.396 20164958.464 20164958.952
+ 45.800 47.200
+ -2117182.989 4 -1649751.562 3 24290188.730 24290184.970 24290187.377
+ 28.600 20.500
+ -12167666.057 7 -9481291.536 6 21052438.285 21052437.489 21052437.149
+ 45.000 40.500
+ -20079102.759 7 -15646042.079 7 20992575.799 20992572.632 20992574.979
+ 45.200 43.700
+ -14628037.057 7 -11398464.669 6 21938282.300 21938280.477 21938281.105
+ 43.000 39.300
+ -11958259.123 6 -9318117.235 5 22116895.031 22116894.479 22116894.021
+ 39.500 34.100
+ -1721616.745 3 -1341517.529 4 24134507.629 24134507.747 24134507.640
+ 19.300 27.600
+ -290888.200 3 -226665.524 1 24577003.900 24577004.517 24577005.179
+ 19.900 9.000
+ -10108312.466 6 -7876593.548 5 22510171.987 22510172.165 22510171.223
+ 39.500 32.600
+ 06 1 2 20 31 0.0000000 0 10G20G 4G23G 7G 2G17G 5G30G13G24
+ -285104.930 3 -222152.146 2 24631014.474 24631012.787 24631012.768
+ 22.100 12.600
+ -22449749.344 7 -17493293.257 7 20168677.441 20168676.732 20168677.071
+ 45.800 47.200
+ -2155889.048 4 -1679912.137 2 24282823.670 24282818.856 24282822.104
+ 28.600 17.800
+ -12120136.829 7 -9444255.793 6 21061482.966 21061481.947 21061481.747
+ 44.900 40.300
+ -20137864.324 7 -15691830.296 7 20981393.933 20981390.690 20981393.108
+ 45.200 43.900
+ -14552717.792 7 -11339774.364 6 21952614.199 21952613.228 21952613.851
+ 43.000 39.300
+ -12001554.978 6 -9351854.249 5 22108656.151 22108655.550 22108655.120
+ 39.500 34.100
+ -1812361.228 2 -1412227.351 4 24117237.802 24117239.889 24117237.744
+ 13.900 27.100
+ -372697.341 3 -290412.877 2 24561437.126 24561437.260 24561436.751
+ 19.900 12.600
+ -10027990.636 6 -7814005.117 5 22525456.912 22525457.083 22525456.008
+ 38.900 32.600
+ 06 1 2 20 31 30.0000000 0 10G20G 4G23G 7G 2G17G 5G30G13G24
+ -183559.280 3 -143025.675 1 24650336.732 24650335.904 24650335.572
+ 22.600 11.000
+ -22429820.208 7 -17477764.051 7 20172469.998 20172469.103 20172469.583
+ 45.900 47.200
+ -2194115.680 5 -1709699.092 3 24275548.863 24275544.951 24275547.664
+ 30.400 21.100
+ -12072262.603 7 -9406951.204 6 21070592.906 21070592.237 21070591.860
+ 44.800 40.300
+ -20196285.124 7 -15737352.986 7 20970276.719 20970273.400 20970275.902
+ 45.200 43.600
+ -14477109.164 7 -11280858.558 6 21967001.837 21967000.881 21967001.690
+ 42.900 38.600
+ -12044294.352 6 -9385157.638 5 22100523.186 22100522.583 22100522.049
+ 39.600 34.500
+ -1902760.185 2 -1482667.933 3 24100036.013 24100038.163 24100035.614
+ 17.000 23.000
+ -454272.242 2 -353977.694 1 24545913.487 24545913.166 24545914.062
+ 17.800 11.000
+ -9947534.836 6 -7751312.294 5 22540767.585 22540767.004 22540766.593
+ 39.000 32.100
+ 06 1 2 20 32 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22409502.322 7 -17461931.925 7 20176336.463 20176335.445 20176336.027
+ 45.900 47.100
+ -2231860.978 4 -1739110.975 3 24268365.942 24268362.892 24268364.638
+ 29.200 22.100
+ -12024043.436 7 -9369377.850 6 21079769.016 21079768.028 21079767.775
+ 44.900 40.100
+ -20254364.806 7 -15782609.865 7 20959224.527 20959221.323 20959223.697
+ 44.900 43.800
+ -14401212.338 7 -11221718.198 6 21981445.368 21981443.889 21981444.515
+ 43.100 39.200
+ -12086475.697 6 -9418026.192 5 22092496.325 22092495.695 22092495.170
+ 39.200 34.300
+ -1992810.782 4 -1552837.123 3 24082900.925 24082902.268 24082900.669
+ 24.200 23.800
+ -535609.384 3 -417357.273 2 24530434.687 24530435.603 24530435.764
+ 18.600 12.600
+ -9866946.510 6 -7688516.198 5 22556102.560 22556102.540 22556101.760
+ 38.900 31.300
+ 06 1 2 20 32 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22388796.963 7 -17445797.871 7 20180276.606 20180275.521 20180276.096
+ 45.700 47.100
+ -2269122.860 4 -1768146.198 3 24261275.426 24261271.578 24261273.659
+ 28.100 21.100
+ -11975479.571 7 -9331535.895 6 21089010.239 21089009.271 21089009.276
+ 45.200 40.000
+ -20312102.658 7 -15827600.381 7 20948237.167 20948234.105 20948236.469
+ 45.100 43.800
+ -14325027.575 7 -11162353.478 6 21995942.530 21995941.280 21995941.903
+ 42.900 38.900
+ -12128097.546 6 -9450458.782 5 22084575.886 22084575.399 22084574.620
+ 39.100 35.300
+ -2082510.302 4 -1622732.808 3 24065831.645 24065833.088 24065831.235
+ 24.600 21.600
+ -616705.572 3 -480549.068 2 24515005.829 24515004.289 24515004.154
+ 19.300 12.600
+ -9786227.167 6 -7625618.018 5 22571463.119 22571462.871 22571462.152
+ 39.000 31.600
+ 06 1 2 20 33 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22367705.353 7 -17429362.845 7 20184290.107 20184289.102 20184289.632
+ 45.800 47.000
+ -2305899.341 4 -1796803.149 3 24254277.109 24254273.324 24254275.806
+ 29.900 21.100
+ -11926571.113 7 -9293425.410 6 21098317.527 21098316.321 21098316.218
+ 44.900 40.100
+ -20369497.902 7 -15872323.931 7 20937314.998 20937312.147 20937314.205
+ 44.600 43.900
+ -14248555.674 7 -11102765.000 6 22010494.188 22010493.245 22010494.080
+ 43.200 38.300
+ -12169158.497 6 -9482454.307 5 22076762.134 22076761.688 22076760.944
+ 39.200 35.100
+ -2171856.187 4 -1692352.912 3 24048829.688 24048830.864 24048829.552
+ 29.200 19.300
+ -697557.484 3 -543550.551 1 24499618.906 24499617.992 24499618.910
+ 20.500 9.000
+ -9705378.152 6 -7562618.776 5 22586848.015 22586848.251 22586847.175
+ 39.100 31.600
+ 06 1 2 20 33 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22346228.416 7 -17412627.560 7 20188376.854 20188375.998 20188376.449
+ 45.800 46.900
+ -2342188.447 5 -1825080.371 3 24247371.368 24247367.527 24247370.397
+ 30.600 18.600
+ -11877318.277 7 -9255046.592 6 21107689.561 21107688.957 21107688.586
+ 44.800 40.200
+ -20426550.391 7 -15916780.395 7 20926458.555 20926455.453 20926457.695
+ 44.700 43.900
+ -14171798.017 7 -11042953.862 6 22025101.434 22025099.831 22025100.516
+ 42.600 38.100
+ -12209657.067 6 -9514011.620 5 22069055.642 22069055.085 22069054.564
+ 40.100 34.900
+ -2260845.605 4 -1761695.272 3 24031895.704 24031895.777 24031895.392
+ 27.400 18.600
+ -778162.204 3 -606359.369 3 24484279.932 24484280.020 24484279.617
+ 21.600 18.600
+ -9624400.510 6 -7499519.328 5 22602257.570 22602257.637 22602256.641
+ 38.600 32.300
+ 06 1 2 20 34 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22324367.296 7 -17395592.915 7 20192536.943 20192536.001 20192536.455
+ 45.600 46.900
+ -2377988.462 4 -1852976.425 3 24240558.831 24240554.918 24240557.425
+ 29.900 21.600
+ -11827721.258 7 -9216399.575 6 21117127.960 21117127.007 21117126.660
+ 44.600 40.100
+ -20483259.536 7 -15960969.316 7 20915667.025 20915663.960 20915666.206
+ 44.700 44.100
+ -14094754.852 7 -10982920.268 6 22039762.238 22039760.895 22039761.485
+ 42.500 38.500
+ -12249591.796 6 -9545129.576 5 22061456.517 22061455.676 22061455.470
+ 40.700 35.100
+ -2349475.894 4 -1830757.805 2 24015029.960 24015028.832 24015029.455
+ 28.400 13.900
+ -858516.338 4 -668972.955 3 24468990.205 24468988.811 24468989.584
+ 24.200 20.500
+ -9543295.585 6 -7436320.690 5 22617691.494 22617691.387 22617690.436
+ 38.300 31.600
+ 06 1 2 20 34 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22302123.451 7 -17378260.042 7 20196769.671 20196768.873 20196769.310
+ 45.800 46.900
+ -2413297.157 5 -1880489.643 3 24233839.856 24233836.786 24233838.670
+ 31.300 23.800
+ -11777780.132 7 -9177484.433 6 21126631.086 21126630.419 21126630.032
+ 44.400 39.900
+ -20539624.741 7 -16004890.231 7 20904941.212 20904938.053 20904940.392
+ 44.900 44.300
+ -14017426.749 7 -10922664.634 6 22054476.580 22054475.829 22054476.538
+ 42.500 38.300
+ -12288961.310 6 -9575807.109 5 22053964.481 22053963.942 22053963.532
+ 40.500 34.700
+ -2437744.479 4 -1899538.523 1 23998233.014 23998232.160 23998232.528
+ 27.600 11.000
+ -938616.466 3 -731388.608 3 24453747.198 24453746.405 24453746.706
+ 23.000 20.500
+ -9462064.957 6 -7373024.109 5 22633149.496 22633148.980 22633148.387
+ 38.500 30.800
+ 06 1 2 20 35 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22279497.785 7 -17360629.647 7 20201075.248 20201074.468 20201074.882
+ 45.800 46.900
+ -2448112.745 5 -1907618.643 3 24227215.219 24227211.493 24227213.853
+ 31.600 21.100
+ -11727495.246 7 -9138301.433 6 21136200.114 21136199.237 21136198.966
+ 44.400 39.800
+ -20595645.258 7 -16048542.557 7 20894280.845 20894277.640 20894280.053
+ 45.200 44.200
+ -13939815.007 7 -10862187.978 6 22069245.919 22069244.962 22069245.610
+ 42.300 38.100
+ -12327764.204 6 -9606043.122 5 22046580.279 22046580.181 22046579.275
+ 40.000 35.500
+ -2525648.539 4 -1968035.189 3 23981505.071 23981505.296 23981504.656
+ 27.100 19.300
+ -1018459.421 3 -793603.888 3 24438553.318 24438553.446 24438552.648
+ 20.500 20.500
+ -9380709.643 6 -7309630.366 5 22648631.057 22648630.580 22648630.126
+ 38.500 31.300
+ 06 1 2 20 35 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22256491.488 7 -17342702.657 7 20205453.209 20205452.466 20205452.801
+ 45.800 47.000
+ -2482433.262 5 -1934361.857 3 24220683.123 24220679.623 24220682.032
+ 30.200 22.100
+ -11676866.763 7 -9098850.700 6 21145834.638 21145833.531 21145833.368
+ 44.200 39.600
+ -20651320.547 7 -16091925.874 7 20883686.394 20883682.968 20883685.597
+ 45.400 44.400
+ -13861919.980 6 -10801490.589 6 22084069.651 22084067.829 22084068.605
+ 41.900 38.100
+ -12365999.132 6 -9635836.560 5 22039304.733 22039304.216 22039303.637
+ 40.500 35.300
+ -2613185.420 4 -2036245.659 3 23964846.833 23964847.088 23964846.760
+ 27.400 18.600
+ -1098042.311 3 -855616.485 3 24423408.695 24423408.980 24423408.523
+ 19.300 19.900
+ -9299231.291 6 -7246140.753 5 22664135.609 22664135.471 22664134.641
+ 38.400 31.800
+ 06 1 2 20 36 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22233105.900 7 -17324480.119 7 20209903.298 20209902.541 20209902.963
+ 46.000 46.900
+ -2516256.940 5 -1960717.925 3 24214247.604 24214243.585 24214246.008
+ 30.600 22.600
+ -11625894.862 7 -9059132.363 6 21155533.857 21155533.215 21155532.943
+ 44.500 39.900
+ -20706650.075 7 -16135039.770 7 20873157.478 20873154.116 20873156.654
+ 45.500 44.400
+ -13783742.722 6 -10740573.276 6 22098945.518 22098944.440 22098945.096
+ 41.700 37.600
+ -12403664.681 6 -9665186.317 5 22032137.347 22032136.718 22032136.045
+ 40.300 35.700
+ -2700352.415 4 -2104167.964 3 23948259.469 23948259.727 23948259.476
+ 26.200 20.500
+ -1177361.552 2 -917423.656 2 24408315.254 24408314.456 24408314.501
+ 17.800 16.100
+ -9217631.004 6 -7182556.134 5 22679663.146 22679663.140 22679662.459
+ 38.100 31.000
+ 06 1 2 20 36 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22209342.129 7 -17305962.894 7 20214425.655 20214424.620 20214425.154
+ 45.900 47.000
+ -2549582.032 5 -1986685.497 3 24207905.807 24207901.777 24207904.352
+ 30.200 18.600
+ -11574579.836 7 -9019146.653 6 21165299.621 21165298.257 21165298.100
+ 44.100 39.800
+ -20761633.254 7 -16177883.783 7 20862694.447 20862691.062 20862693.660
+ 45.600 44.400
+ -13705283.947 6 -10679436.586 6 22113875.041 22113874.818 22113875.445
+ 41.700 38.100
+ -12440759.602 6 -9694091.426 6 22025078.420 22025078.008 22025077.162
+ 40.300 36.600
+ -2787146.941 4 -2171799.986 3 23931744.556 23931744.250 23931743.861
+ 25.900 23.800
+ -1256413.790 3 -979022.767 2 24393271.010 24393271.648 24393271.206
+ 19.900 16.100
+ -9135910.483 6 -7118877.813 5 22695214.302 22695214.178 22695213.445
+ 37.900 31.100
+ 06 1 2 20 37 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22185201.368 7 -17287151.911 7 20219019.433 20219018.461 20219018.971
+ 45.900 47.000
+ -2582406.517 4 -2012263.008 3 24201659.251 24201655.173 24201657.653
+ 29.700 19.300
+ -11522921.783 7 -8978893.643 6 21175128.985 21175128.395 21175128.082
+ 44.200 39.400
+ -20816269.616 7 -16220457.547 7 20852297.438 20852294.229 20852296.629
+ 45.500 44.700
+ -13626544.519 6 -10618081.221 6 22128860.220 22128858.544 22128859.072
+ 41.500 38.400
+ -12477282.556 6 -9722550.844 6 22018127.981 22018128.041 22018126.898
+ 40.200 36.900
+ -2873566.157 4 -2239139.572 4 23915298.573 23915298.835 23915298.137
+ 24.600 24.900
+ -1335195.888 3 -1040411.399 2 24378279.905 24378279.272 24378279.863
+ 21.600 13.900
+ -9054070.923 6 -7055106.745 5 22710788.041 22710787.736 22710787.114
+ 37.800 31.300
+ 06 1 2 20 37 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22160684.831 7 -17268048.118 7 20223684.474 20223683.775 20223684.145
+ 45.700 47.000
+ -2614728.805 4 -2037449.159 3 24195507.742 24195504.806 24195507.101
+ 29.500 21.600
+ -11470921.065 7 -8938373.604 6 21185024.698 21185023.912 21185023.569
+ 44.200 39.500
+ -20870558.780 7 -16262760.764 7 20841966.508 20841963.253 20841965.666
+ 45.400 44.700
+ -13547525.190 6 -10556507.760 6 22143897.160 22143895.412 22143896.086
+ 41.900 38.400
+ -12513232.257 6 -9750563.576 6 22011287.035 22011287.059 22011285.998
+ 40.500 36.600
+ -2959607.511 4 -2306184.727 4 23898925.155 23898926.050 23898925.130
+ 25.600 25.300
+ -1413704.839 3 -1101587.154 1 24363340.338 24363339.643 24363340.215
+ 23.000 11.000
+ -8972113.529 6 -6991243.854 5 22726384.013 22726383.625 22726383.084
+ 38.200 31.100
+ 06 1 2 20 38 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22135793.669 7 -17248652.409 7 20228421.110 20228420.388 20228420.773
+ 45.900 46.800
+ -2646547.029 4 -2062242.583 3 24189454.176 24189449.583 24189452.576
+ 29.000 18.600
+ -11418577.822 7 -8897586.686 6 21194985.524 21194984.633 21194984.173
+ 44.000 39.600
+ -20924500.108 7 -16304792.948 7 20831701.603 20831698.507 20831700.838
+ 45.300 44.700
+ -13468226.816 6 -10494716.849 6 22158985.898 22158985.299 22158986.055
+ 41.800 37.600
+ -12548607.386 6 -9778128.589 6 22004555.294 22004555.073 22004554.305
+ 40.900 36.300
+ -3045268.314 4 -2372933.328 4 23882625.139 23882625.286 23882624.727
+ 27.900 28.100
+ -1491937.340 3 -1162547.514 2 24348452.915 24348452.481 24348452.850
+ 20.500 15.100
+ -8890039.494 6 -6927290.076 5 22742002.075 22742002.065 22742001.175
+ 37.800 31.100
+ 06 1 2 20 38 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22110528.968 7 -17228965.630 7 20233229.002 20233228.164 20233228.547
+ 45.700 47.000
+ -2677859.344 4 -2086641.729 3 24183494.618 24183491.351 24183493.654
+ 28.100 21.600
+ -11365892.444 7 -8856533.152 6 21205010.842 21205010.284 21205009.782
+ 44.200 39.300
+ -20978093.151 7 -16346553.738 7 20821503.088 20821499.940 20821502.401
+ 45.400 44.600
+ -13388650.203 6 -10432709.122 6 22174129.906 22174128.367 22174129.076
+ 41.900 37.900
+ -12583406.880 6 -9805245.056 6 21997933.447 21997932.815 21997932.281
+ 41.000 36.000
+ -3130545.953 4 -2439383.361 4 23866396.875 23866397.124 23866396.426
+ 26.500 26.800
+ -1569890.151 3 -1223289.881 2 24333619.353 24333618.100 24333618.970
+ 21.600 16.100
+ -8807850.241 6 -6863246.511 5 22757641.939 22757642.102 22757641.152
+ 38.400 31.100
+ 06 1 2 20 39 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22084892.102 7 -17208988.855 7 20238107.541 20238106.713 20238107.079
+ 45.700 46.800
+ -2708663.951 4 -2110645.323 3 24177632.696 24177629.105 24177631.769
+ 28.600 19.900
+ -11312865.087 7 -8815213.144 6 21215101.940 21215100.909 21215100.652
+ 44.100 39.200
+ -21031337.361 7 -16388042.720 7 20811371.394 20811367.981 20811370.633
+ 45.800 44.700
+ -13308796.002 6 -10370485.106 6 22189325.944 22189324.308 22189324.774
+ 41.400 38.100
+ -12617629.363 6 -9831911.911 5 21991421.115 21991420.367 21991419.964
+ 41.100 35.700
+ -3215437.707 4 -2505532.739 4 23850242.531 23850242.592 23850242.107
+ 24.900 26.200
+ -1647560.032 3 -1283811.773 2 24318838.085 24318837.614 24318838.004
+ 19.300 17.000
+ -8725546.849 6 -6799114.009 5 22773303.627 22773304.126 22773302.741
+ 37.200 31.100
+ 06 1 2 20 39 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22058884.148 7 -17188722.919 7 20243056.248 20243055.818 20243056.030
+ 45.800 46.900
+ -2738959.326 4 -2134252.052 3 24171867.531 24171863.465 24171866.246
+ 26.200 18.600
+ -11259496.140 7 -8773626.957 6 21225257.434 21225256.658 21225256.406
+ 44.000 39.300
+ -21084232.134 7 -16429259.410 7 20801305.629 20801302.404 20801304.903
+ 45.700 44.900
+ -13228665.013 6 -10308045.406 6 22204573.832 22204572.509 22204573.042
+ 41.200 37.300
+ -12651273.652 6 -9858128.231 5 21985018.618 21985017.928 21985017.517
+ 41.100 35.300
+ -3299941.032 4 -2571379.381 4 23834161.700 23834162.283 23834161.239
+ 25.600 26.500
+ -1724943.886 3 -1344110.835 2 24304112.708 24304112.430 24304112.589
+ 19.300 17.800
+ -8643130.688 6 -6734893.634 5 22788987.673 22788987.061 22788986.574
+ 37.900 30.800
+ 06 1 2 20 40 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22032506.411 7 -17168168.835 7 20248075.897 20248075.341 20248075.607
+ 45.800 46.700
+ -2768743.481 4 -2157460.457 2 24166199.605 24166195.807 24166198.610
+ 26.800 17.800
+ -11205785.885 7 -8731774.816 6 21235478.554 21235477.651 21235477.248
+ 43.800 39.500
+ -21136777.044 7 -16470203.475 7 20791306.801 20791303.500 20791306.083
+ 45.700 45.200
+ -13148258.552 6 -10245391.050 6 22219873.951 22219873.488 22219874.079
+ 41.400 37.000
+ -12684338.610 6 -9883893.126 5 21978726.777 21978725.977 21978725.680
+ 41.400 35.500
+ -3384053.223 4 -2636921.308 4 23818155.211 23818156.261 23818154.886
+ 25.900 24.600
+ -1802038.281 3 -1404184.304 3 24289442.913 24289441.964 24289442.475
+ 20.500 21.100
+ -8560603.018 6 -6670586.368 5 22804691.935 22804691.501 22804690.709
+ 37.200 31.000
+ 06 1 2 20 40 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -22005759.953 7 -17147327.441 7 20253165.786 20253165.047 20253165.416
+ 45.900 46.800
+ -2798014.741 4 -2180269.228 3 24160630.359 24160625.739 24160628.490
+ 28.600 21.100
+ -11151734.581 7 -8689656.916 6 21245763.842 21245763.179 21245762.806
+ 44.000 39.500
+ -21188971.659 7 -16510874.590 7 20781374.551 20781371.214 20781373.714
+ 45.700 45.200
+ -13067577.020 6 -10182522.359 6 22235227.885 22235226.702 22235227.331
+ 41.200 37.200
+ -12716823.150 6 -9909205.737 5 21972545.320 21972544.369 21972544.136
+ 41.200 35.600
+ -3467771.785 4 -2702156.483 4 23802224.585 23802225.372 23802224.283
+ 29.500 26.500
+ -1878840.069 3 -1464029.773 3 24274828.379 24274827.096 24274827.605
+ 23.000 19.300
+ -8477965.254 6 -6606193.319 5 22820417.146 22820416.764 22820416.233
+ 37.200 30.100
+ 06 1 2 20 41 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21978646.105 7 -17126199.761 7 20258325.467 20258324.620 20258325.065
+ 46.100 46.800
+ -2826771.680 5 -2202677.197 3 24155157.921 24155153.583 24155156.932
+ 30.800 18.600
+ -11097342.481 7 -8647273.455 6 21256114.407 21256113.728 21256113.289
+ 44.300 39.400
+ -21240815.485 7 -16551272.358 7 20771508.745 20771505.692 20771508.046
+ 45.500 45.300
+ -12986621.438 6 -10119440.117 6 22250633.705 22250631.983 22250632.640
+ 40.900 37.200
+ -12748726.100 6 -9934065.164 5 21966473.926 21966473.458 21966472.805
+ 40.800 35.600
+ -3551093.925 4 -2767082.772 4 23786368.717 23786369.549 23786368.298
+ 28.600 24.600
+ -1955346.414 4 -1523645.047 2 24260269.391 24260268.165 24260268.848
+ 24.200 17.800
+ -8395218.561 6 -6541715.369 5 22836163.144 22836163.077 22836162.372
+ 37.500 30.200
+ 06 1 2 20 41 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21951166.023 7 -17104786.703 7 20263554.831 20263553.872 20263554.465
+ 46.400 46.700
+ -2855012.523 4 -2224683.059 3 24149783.968 24149780.208 24149782.663
+ 29.900 21.100
+ -11042609.922 7 -8604624.718 6 21266530.023 21266528.915 21266528.667
+ 44.000 39.500
+ -21292307.787 7 -16591396.216 7 20761710.008 20761706.964 20761709.237
+ 45.300 45.400
+ -12905392.681 6 -10056145.016 6 22266090.669 22266089.198 22266089.915
+ 41.200 36.900
+ -12780046.175 6 -9958470.400 6 21960513.612 21960513.584 21960512.607
+ 40.600 36.000
+ -3634016.973 4 -2831698.097 3 23770588.712 23770589.033 23770588.647
+ 28.600 20.500
+ -2031553.822 3 -1583027.413 2 24245767.101 24245766.018 24245766.921
+ 22.100 16.100
+ -8312363.958 6 -6477153.344 5 22851929.885 22851930.199 22851929.002
+ 37.200 30.200
+ 06 1 2 20 42 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21923320.893 7 -17083089.198 7 20268853.563 20268852.617 20268853.173
+ 46.400 46.700
+ -2882735.750 4 -2246285.513 3 24144508.354 24144504.202 24144506.924
+ 28.800 19.900
+ -10987537.154 7 -8561710.874 6 21277009.367 21277009.006 21277008.570
+ 44.000 39.300
+ -21343448.407 7 -16631246.034 7 20751978.499 20751975.207 20751977.621
+ 45.300 45.400
+ -12823891.688 6 -9992637.769 6 22281599.018 22281598.310 22281599.049
+ 41.000 37.200
+ -12810782.442 6 -9982420.712 6 21954665.018 21954664.436 21954664.012
+ 41.000 36.000
+ -3716538.413 4 -2896000.466 3 23754885.736 23754884.797 23754885.543
+ 27.900 20.500
+ -2107459.129 3 -1642174.327 2 24231322.111 24231322.277 24231322.120
+ 22.100 17.800
+ -8229402.909 6 -6412508.370 5 22867717.322 22867717.376 22867716.257
+ 37.200 30.600
+ 06 1 2 20 42 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21895112.050 7 -17061108.276 7 20274221.451 20274220.625 20274221.039
+ 46.300 46.600
+ -2909939.731 4 -2267483.444 3 24139331.491 24139328.201 24139330.333
+ 29.900 22.100
+ -10932124.543 7 -8518532.213 6 21287554.538 21287553.593 21287553.177
+ 43.700 39.000
+ -21394236.584 7 -16670821.223 7 20742313.778 20742310.488 20742312.918
+ 45.500 45.500
+ -12742119.315 6 -9928919.046 6 22297159.870 22297159.313 22297159.796
+ 41.100 37.700
+ -12840933.817 6 -10005915.260 5 21948927.465 21948926.907 21948926.437
+ 41.200 35.900
+ -3798655.752 4 -2959987.917 3 23739259.390 23739258.726 23739258.702
+ 25.900 19.900
+ -2183059.211 3 -1701083.452 2 24216936.132 24216935.447 24216936.073
+ 22.600 12.600
+ -8146336.528 6 -6347781.332 4 22883523.714 22883523.953 22883522.881
+ 36.500 29.900
+ 06 1 2 20 43 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21866540.709 7 -17038844.891 7 20279658.437 20279657.524 20279657.953
+ 46.000 46.600
+ -2936622.641 5 -2288275.286 3 24134254.471 24134249.988 24134252.944
+ 30.600 22.100
+ -10876372.462 7 -8475089.036 6 21298163.741 21298162.927 21298162.452
+ 43.600 39.200
+ -21444672.095 7 -16710121.616 7 20732716.042 20732712.871 20732715.303
+ 45.500 45.300
+ -12660076.177 6 -9864989.356 6 22312773.451 22312771.564 22312772.143
+ 41.000 37.400
+ -12870499.277 6 -10028953.260 6 21943301.553 21943300.860 21943300.396
+ 41.200 36.200
+ -3880366.194 4 -3023658.318 3 23723710.362 23723710.179 23723709.952
+ 25.900 22.100
+ -2258350.786 3 -1759752.175 2 24202608.590 24202608.232 24202608.606
+ 22.100 17.000
+ -8063166.329 6 -6282973.377 4 22899350.650 22899350.474 22899349.781
+ 36.800 29.200
+ 06 1 2 20 43 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21837607.805 7 -17016299.767 7 20285164.203 20285163.309 20285163.756
+ 46.100 46.600
+ -2962783.090 4 -2308660.054 3 24129275.498 24129271.761 24129274.394
+ 29.200 21.600
+ -10820281.363 7 -8431381.686 6 21308837.131 21308836.767 21308836.173
+ 43.600 39.300
+ -21494754.563 7 -16749146.900 7 20723185.908 20723182.545 20723185.069
+ 45.500 45.400
+ -12577763.374 6 -9800849.534 6 22328436.590 22328435.176 22328435.654
+ 40.500 36.900
+ -12899477.771 6 -10051533.875 5 21937786.633 21937786.196 21937785.627
+ 41.300 35.800
+ -3961667.289 4 -3087009.749 3 23708238.706 23708238.323 23708238.375
+ 27.100 19.900
+ -2333330.861 4 -1818178.164 3 24188341.557 24188340.160 24188341.167
+ 24.200 19.300
+ -7979893.354 6 -6218085.352 5 22915196.723 22915197.038 22915195.952
+ 36.300 30.100
+ 06 1 2 20 44 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21808315.110 7 -16993474.290 7 20290738.167 20290737.600 20290737.852
+ 46.100 46.700
+ -2988419.344 4 -2328636.325 3 24124396.814 24124393.559 24124395.778
+ 29.500 23.000
+ -10763851.391 7 -8387410.283 6 21319575.501 21319575.001 21319574.383
+ 42.900 38.900
+ -21544483.203 7 -16787896.484 7 20713722.802 20713719.528 20713722.040
+ 45.700 45.500
+ -12495181.803 6 -9736500.282 6 22344150.848 22344150.000 22344150.651
+ 40.700 37.100
+ -12927868.305 6 -10073656.347 6 21932384.358 21932383.770 21932383.258
+ 41.400 36.300
+ -4042556.414 4 -3150040.166 3 23692845.999 23692846.321 23692845.743
+ 26.200 23.400
+ -2407996.278 3 -1876358.955 3 24174132.784 24174131.669 24174132.057
+ 20.500 19.900
+ -7896518.631 6 -6153118.041 5 22931063.274 22931062.611 22931062.348
+ 36.500 30.100
+ 06 1 2 20 44 30.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21778663.331 7 -16970369.003 7 20296380.844 20296380.082 20296380.487
+ 46.300 46.600
+ -3013530.140 4 -2348203.135 3 24119618.519 24119615.134 24119617.236
+ 28.100 22.600
+ -10707083.020 7 -8343175.201 6 21330378.066 21330377.720 21330376.970
+ 43.100 38.900
+ -21593857.697 7 -16826370.103 7 20704327.263 20704323.882 20704326.420
+ 45.900 45.700
+ -12412331.960 6 -9671941.970 6 22359916.513 22359915.857 22359916.395
+ 40.300 36.900
+ -12955669.976 6 -10095319.959 6 21927093.617 21927093.327 21927092.655
+ 41.500 36.100
+ -4123031.054 4 -3212747.597 3 23677532.850 23677532.718 23677532.394
+ 29.000 23.800
+ -2482343.879 3 -1934292.105 3 24159984.282 24159983.390 24159984.013
+ 21.600 18.600
+ -7813043.583 6 -6088072.550 4 22946947.891 22946947.459 22946946.907
+ 36.100 29.500
+ 06 1 2 20 45 0.0000000 0 9G 4G23G 7G 2G17G 5G30G13G24
+ -21748653.811 7 -16946984.960 7 20302091.554 20302090.624 20302091.131
+ 46.100 46.600
+ -3038114.138 5 -2367359.489 3 24114941.179 24114936.577 24114939.932
+ 30.400 23.400
+ -10649976.581 7 -8298676.684 6 21341245.374 21341244.699 21341244.096
+ 43.200 38.900
+ -21642877.782 7 -16864567.565 7 20694998.879 20694995.657 20694998.090
+ 45.800 45.800
+ -12329215.390 6 -9607175.815 6 22375733.334 22375732.467 22375732.898
+ 40.000 36.700
+ -12982881.736 6 -10116523.905 6 21921915.678 21921914.916 21921914.598
+ 41.600 36.200
+ -4203088.613 4 -3275130.051 4 23662298.218 23662298.185 23662297.713
+ 27.900 24.600
+ -2556370.263 3 -1991974.945 3 24145898.072 24145896.802 24145897.578
+ 23.000 18.600
+ -7729469.595 6 -6022949.969 5 22962851.277 22962851.570 22962850.400
+ 36.500 31.000
+ 06 1 2 20 45 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -209599.655 3 -163324.088 3 24476911.659 24476912.358 24476909.997
+ 23.800 19.300
+ -21718287.844 7 -16923323.168 7 20307870.052 20307869.123 20307869.632
+ 46.300 46.600
+ -3062169.466 4 -2386103.885 3 24110362.740 24110359.342 24110361.417
+ 28.800 23.000
+ -10592532.322 7 -8253914.932 6 21352176.687 21352175.979 21352175.531
+ 43.100 38.800
+ -21691542.639 7 -16902488.217 7 20685738.253 20685734.895 20685737.484
+ 46.000 45.600
+ -12245832.787 6 -9542202.383 6 22391601.328 22391599.620 22391599.964
+ 39.400 36.500
+ -13009502.665 6 -10137267.452 6 21916849.916 21916849.157 21916848.778
+ 41.600 36.300
+ -4282726.409 4 -3337185.436 4 23647144.037 23647143.688 23647143.537
+ 29.200 25.900
+ -2630072.485 3 -2049405.193 2 24131872.463 24131871.563 24131872.489
+ 23.800 13.900
+ -7645797.661 6 -5957751.058 4 22978773.681 22978773.403 22978772.597
+ 36.300 28.800
+ 06 1 2 20 46 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -330435.198 3 -257481.560 3 24453917.165 24453917.952 24453915.434
+ 20.500 19.900
+ -21687566.818 7 -16899384.701 7 20313716.058 20313715.213 20313715.636
+ 46.300 46.600
+ -3085694.838 4 -2404435.316 3 24105886.189 24105882.545 24105884.884
+ 29.900 22.600
+ -10534750.873 7 -8208890.440 6 21363171.803 21363171.395 21363170.817
+ 43.000 38.900
+ -21739851.912 7 -16940131.796 7 20676545.386 20676542.014 20676544.587
+ 46.100 45.700
+ -12162185.160 6 -9477022.418 6 22407518.658 22407517.094 22407517.723
+ 39.700 36.500
+ -13035531.877 6 -10157549.930 5 21911896.529 21911895.657 21911895.428
+ 41.300 35.800
+ -4361942.039 4 -3398911.828 4 23632068.771 23632068.889 23632068.681
+ 28.100 25.600
+ -2703447.374 4 -2106580.406 2 24117909.660 24117908.650 24117909.683
+ 25.900 13.900
+ -7562028.517 6 -5892476.394 4 22994713.550 22994714.192 22994712.982
+ 36.600 29.200
+ 06 1 2 20 46 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -451204.135 3 -351587.089 3 24430934.355 24430936.874 24430932.896
+ 20.500 22.100
+ -21656491.706 7 -16875170.325 7 20319629.392 20319628.547 20319629.004
+ 46.600 46.500
+ -3108688.898 5 -2422352.734 4 24101510.939 24101507.128 24101509.653
+ 30.100 25.600
+ -10476632.602 7 -8163603.469 6 21374231.987 21374230.839 21374230.542
+ 42.900 38.400
+ -21787805.459 7 -16977498.181 7 20667420.194 20667416.647 20667419.339
+ 45.900 45.700
+ -12078272.867 6 -9411636.239 6 22423485.992 22423485.119 22423485.638
+ 39.500 36.300
+ -13060968.517 6 -10177370.670 5 21907055.972 21907055.087 21907055.005
+ 41.700 35.500
+ -4440733.058 4 -3460307.361 4 23617074.426 23617075.969 23617074.192
+ 26.200 26.500
+ -2776491.744 3 -2163498.057 2 24104008.445 24104009.157 24104009.092
+ 22.100 17.800
+ -7478163.894 5 -5827127.353 4 23010673.171 23010673.404 23010672.064
+ 35.700 29.500
+ 06 1 2 20 47 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -571904.205 3 -445639.014 3 24407967.060 24407967.967 24407965.477
+ 23.400 18.600
+ -21625063.774 7 -16850681.028 7 20325610.090 20325609.067 20325609.603
+ 46.700 46.400
+ -3131150.165 5 -2439855.016 4 24097236.123 24097233.135 24097235.192
+ 30.100 25.900
+ -10418177.729 7 -8118054.217 6 21385355.345 21385354.357 21385353.961
+ 42.600 38.000
+ -21835402.677 7 -17014586.910 7 20658362.362 20658359.185 20658361.718
+ 46.000 45.900
+ -11994097.215 6 -9346044.840 6 22439503.966 22439503.327 22439503.793
+ 39.700 36.200
+ -13085811.700 6 -10196728.980 5 21902328.793 21902327.479 21902327.694
+ 41.800 35.400
+ -4519096.696 4 -3521369.887 4 23602162.820 23602164.008 23602162.376
+ 25.900 27.400
+ -2849202.623 3 -2220155.807 3 24090173.515 24090172.443 24090173.341
+ 22.600 19.300
+ -7394204.790 5 -5761704.680 5 23026650.132 23026650.165 23026649.233
+ 35.600 30.100
+ 06 1 2 20 47 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -692532.850 2 -539635.301 3 24385009.987 24385012.795 24385009.690
+ 13.900 19.900
+ -21593284.362 7 -16825917.841 7 20331657.457 20331656.530 20331657.043
+ 46.700 46.400
+ -3153077.203 4 -2456940.986 4 24093063.968 24093060.201 24093062.957
+ 29.900 25.600
+ -10359386.805 7 -8072243.107 6 21396542.489 21396541.978 21396541.471
+ 42.900 38.300
+ -21882643.191 7 -17051397.683 7 20649373.072 20649369.664 20649372.258
+ 45.900 46.000
+ -11909659.078 6 -9280248.934 6 22455572.383 22455571.726 22455571.891
+ 39.700 36.500
+ -13110060.609 6 -10215624.213 5 21897714.078 21897713.311 21897713.000
+ 41.600 35.400
+ -4597030.576 4 -3582097.522 4 23587332.677 23587333.345 23587332.469
+ 29.200 24.900
+ -2921576.823 3 -2276551.218 2 24076401.059 24076400.370 24076400.515
+ 22.100 16.100
+ -7310152.373 5 -5696209.308 4 23042644.809 23042644.725 23042643.858
+ 35.300 28.100
+ 06 1 2 20 48 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -813087.554 2 -633573.876 3 24362069.972 24362072.669 24362069.012
+ 17.000 20.500
+ -21561154.795 7 -16800881.811 7 20337771.591 20337770.567 20337771.139
+ 46.900 46.400
+ -3174468.320 4 -2473609.350 4 24088992.828 24088989.811 24088991.617
+ 28.100 25.300
+ -10300260.259 7 -8026170.462 6 21407794.259 21407793.220 21407793.019
+ 42.700 37.700
+ -21929526.509 7 -17087930.119 7 20640451.411 20640447.966 20640450.613
+ 46.000 45.900
+ -11824959.509 6 -9214249.286 5 22471690.759 22471689.192 22471689.717
+ 39.800 35.800
+ -13133714.351 6 -10234055.678 5 21893212.937 21893212.116 21893211.822
+ 41.500 35.900
+ -4674532.201 4 -3642488.397 4 23572584.353 23572584.837 23572584.199
+ 27.900 24.900
+ -2993611.179 4 -2332681.842 3 24062693.263 24062692.560 24062692.897
+ 24.600 18.600
+ -7226007.948 6 -5630642.212 4 23058656.880 23058656.268 23058655.932
+ 36.200 28.100
+ 06 1 2 20 48 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -933565.751 3 -727452.938 2 24339145.370 24339145.637 24339143.802
+ 22.600 17.800
+ -21528676.204 7 -16775573.814 7 20343952.034 20343951.008 20343951.623
+ 46.800 46.400
+ -3195322.690 4 -2489859.477 4 24085024.334 24085021.171 24085023.081
+ 27.600 25.300
+ -10240798.523 7 -7979836.655 6 21419109.374 21419108.540 21419108.205
+ 42.800 37.900
+ -21976052.233 7 -17124183.912 7 20631597.858 20631594.420 20631597.138
+ 46.100 45.900
+ -11739999.255 6 -9148046.461 5 22487858.196 22487856.420 22487856.921
+ 38.800 35.600
+ -13156772.235 6 -10252022.835 5 21888825.056 21888824.283 21888823.987
+ 41.400 35.800
+ -4751599.064 4 -3702540.466 3 23557919.112 23557919.206 23557919.044
+ 29.000 23.800
+ -3065302.549 4 -2388545.196 3 24049050.877 24049050.531 24049050.895
+ 25.900 19.300
+ -7141772.467 5 -5565004.189 4 23074686.130 23074686.350 23074685.139
+ 34.900 29.200
+ 06 1 2 20 49 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1053965.161 3 -821270.588 2 24316232.254 24316234.616 24316230.993
+ 19.300 17.800
+ -21495849.761 7 -16749994.761 7 20350198.680 20350197.647 20350198.254
+ 47.100 46.200
+ -3215638.918 4 -2505690.275 4 24081158.464 24081155.233 24081157.474
+ 28.800 24.200
+ -10181001.962 7 -7933241.932 6 21430488.383 21430487.383 21430487.174
+ 43.000 37.500
+ -22022219.858 7 -17160158.666 7 20622812.414 20622808.995 20622811.659
+ 46.000 46.100
+ -11654779.608 6 -9081641.577 5 22504074.227 22504073.367 22504073.645
+ 38.700 35.800
+ -13179233.512 6 -10269525.105 5 21884550.567 21884550.169 21884549.434
+ 41.000 35.500
+ -4828228.454 4 -3762251.637 4 23543337.165 23543337.981 23543336.944
+ 29.700 28.100
+ -3136647.993 3 -2444138.978 3 24035474.023 24035473.373 24035473.379
+ 20.500 20.500
+ -7057446.967 5 -5499296.022 4 23090732.796 23090733.020 23090731.815
+ 35.900 29.500
+ 06 1 2 20 49 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1174283.189 3 -915024.806 3 24293338.261 24293338.796 24293336.550
+ 21.100 19.900
+ -21462676.770 7 -16724145.672 7 20356511.327 20356510.271 20356510.910
+ 47.100 46.200
+ -3235415.417 4 -2521100.506 3 24077395.110 24077391.338 24077393.549
+ 27.900 23.800
+ -10120870.941 7 -7886386.585 6 21441931.380 21441930.016 21441929.918
+ 43.000 37.800
+ -22068029.128 7 -17195854.180 7 20614095.113 20614091.698 20614094.342
+ 45.900 46.100
+ -11569301.399 6 -9015035.218 5 22520339.518 22520339.588 22520339.695
+ 38.800 35.900
+ -13201097.370 6 -10286561.861 5 21880390.250 21880389.445 21880389.199
+ 41.100 35.800
+ -4904418.096 4 -3821620.099 4 23528838.875 23528839.468 23528838.471
+ 28.100 26.800
+ -3207644.386 3 -2499460.783 2 24021962.737 24021962.718 24021962.851
+ 22.600 17.800
+ -6973032.692 5 -5433518.664 4 23106796.289 23106796.024 23106795.351
+ 35.600 27.900
+ 06 1 2 20 50 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1294517.327 3 -1008713.670 3 24270456.138 24270458.644 24270455.257
+ 22.100 20.500
+ -21429158.540 7 -16698027.568 7 20362889.648 20362888.578 20362889.187
+ 47.000 46.200
+ -3254651.060 4 -2536089.311 4 24073734.683 24073731.200 24073733.485
+ 29.000 24.900
+ -10060405.988 7 -7839271.038 6 21453436.768 21453436.188 21453435.687
+ 42.800 37.900
+ -22113479.743 7 -17231270.223 7 20605446.176 20605442.796 20605445.437
+ 46.100 46.300
+ -11483565.600 6 -8948228.126 5 22536654.954 22536653.975 22536654.460
+ 38.600 34.900
+ -13222363.113 6 -10303132.549 5 21876343.526 21876342.662 21876342.358
+ 41.300 35.700
+ -4980165.467 4 -3880643.986 4 23514424.157 23514425.259 23514423.713
+ 26.500 28.400
+ -3278288.818 4 -2554508.362 2 24008520.438 24008519.711 24008520.297
+ 24.200 15.100
+ -6888530.900 5 -5367673.124 4 23122876.627 23122876.649 23122875.685
+ 34.500 29.200
+ 06 1 2 20 50 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1414665.176 3 -1102335.265 3 24247593.159 24247594.800 24247592.158
+ 20.500 20.500
+ -21395296.129 7 -16671641.267 7 20369333.255 20369332.343 20369332.863
+ 46.900 46.200
+ -3273344.618 4 -2550655.679 4 24070177.620 24070174.161 24070176.339
+ 29.700 25.300
+ -9999607.766 7 -7791895.805 6 21465005.777 21465005.640 21465005.114
+ 42.700 37.900
+ -22158571.143 7 -17266406.364 7 20596865.587 20596862.123 20596864.801
+ 45.900 46.200
+ -11397573.028 6 -8881220.970 5 22553019.797 22553017.937 22553018.513
+ 39.100 34.800
+ -13243030.053 6 -10319236.636 6 21872410.782 21872409.931 21872409.753
+ 41.500 36.100
+ -5055468.038 4 -3939321.227 4 23500094.845 23500095.434 23500094.776
+ 28.100 27.400
+ -3348578.107 4 -2609279.201 3 23995144.479 23995144.366 23995144.793
+ 24.600 19.300
+ -6803942.735 5 -5301760.280 4 23138973.084 23138972.800 23138972.312
+ 35.400 28.600
+ 06 1 2 20 51 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1534723.873 3 -1195887.391 3 24224746.874 24224748.973 24224745.825
+ 22.600 18.600
+ -21361090.971 7 -16644987.888 7 20375842.226 20375841.322 20375841.845
+ 46.800 46.100
+ -3291494.843 4 -2564798.698 4 24066723.045 24066720.029 24066722.230
+ 27.100 24.600
+ -9938476.532 7 -7744261.079 6 21476639.448 21476638.325 21476638.201
+ 42.600 37.200
+ -22203303.337 7 -17301262.598 7 20588353.183 20588349.826 20588352.498
+ 46.000 46.200
+ -11311324.280 6 -8814014.187 5 22569432.331 22569430.800 22569431.538
+ 39.300 35.500
+ -13263097.556 6 -10334873.641 5 21868591.832 21868591.091 21868590.803
+ 41.400 35.900
+ -5130323.518 4 -3997650.096 4 23485850.285 23485850.716 23485850.285
+ 27.600 24.600
+ -3418509.047 4 -2663770.827 3 23981838.296 23981836.715 23981837.263
+ 24.900 21.100
+ -6719269.312 5 -5235780.990 4 23155086.119 23155085.623 23155085.005
+ 33.900 27.900
+ 06 1 2 20 51 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1654690.826 3 -1289367.982 3 24201917.722 24201919.296 24201916.824
+ 22.100 19.900
+ -21326544.177 7 -16618068.301 7 20382416.330 20382415.334 20382415.876
+ 46.900 46.000
+ -3309100.696 4 -2578517.521 3 24063372.823 24063369.054 24063371.476
+ 27.100 21.600
+ -9877012.748 7 -7696367.223 6 21488335.820 21488334.565 21488334.530
+ 42.600 37.200
+ -22247675.406 7 -17335838.223 7 20579909.625 20579906.188 20579908.882
+ 46.100 46.500
+ -11224820.570 6 -8746608.737 5 22585893.009 22585892.057 22585892.488
+ 39.000 35.600
+ -13282564.903 6 -10350042.993 6 21864887.412 21864886.700 21864886.312
+ 41.600 36.200
+ -5204729.310 4 -4055628.589 4 23471691.483 23471691.316 23471691.145
+ 29.500 24.200
+ -3488078.684 4 -2717980.910 3 23968598.573 23968598.461 23968598.824
+ 26.200 23.400
+ -6634511.617 5 -5169736.047 4 23171214.689 23171214.829 23171213.698
+ 34.600 27.900
+ 06 1 2 20 52 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1774563.602 3 -1382775.172 2 24179107.095 24179107.950 24179105.650
+ 22.100 16.100
+ -21291657.215 7 -16590883.651 7 20389055.000 20389054.132 20389054.609
+ 47.000 45.800
+ -3326160.693 4 -2591811.010 4 24060126.407 24060123.311 24060124.874
+ 25.900 24.900
+ -9815217.060 7 -7648214.745 6 21500094.723 21500094.148 21500093.706
+ 42.600 37.700
+ -22291687.013 7 -17370132.963 7 20571534.510 20571531.089 20571533.732
+ 46.100 46.600
+ -11138063.108 6 -8679005.558 5 22602402.009 22602401.343 22602401.929
+ 38.800 35.100
+ -13301431.510 6 -10364744.241 6 21861297.186 21861296.409 21861296.091
+ 41.500 36.400
+ -5278683.072 5 -4113254.836 3 23457618.686 23457618.257 23457618.162
+ 30.600 23.800
+ -3557284.005 3 -2771907.087 3 23955429.257 23955429.140 23955428.845
+ 23.400 23.000
+ -6549670.898 5 -5103626.403 4 23187359.060 23187359.313 23187358.281
+ 34.900 27.600
+ 06 1 2 20 52 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -1894339.845 3 -1476107.147 3 24156313.723 24156315.630 24156312.694
+ 19.900 19.300
+ -21256431.054 7 -16563434.688 7 20395758.426 20395757.474 20395758.018
+ 47.200 45.900
+ -3342673.680 4 -2604678.240 3 24056984.452 24056980.527 24056983.240
+ 28.100 23.800
+ -9753089.929 7 -7599804.002 6 21511917.174 21511916.595 21511915.981
+ 42.400 37.400
+ -22335337.877 7 -17404146.614 7 20563227.986 20563224.680 20563227.230
+ 46.000 46.800
+ -11051052.830 6 -8611205.383 5 22618959.906 22618959.176 22618959.357
+ 38.300 35.500
+ -13319696.774 6 -10378976.902 6 21857821.595 21857820.711 21857820.430
+ 41.900 36.400
+ -5352182.297 4 -4170526.925 4 23443631.572 23443632.247 23443631.372
+ 29.900 26.500
+ -3626121.947 3 -2825547.003 3 23942332.223 23942329.394 23942330.514
+ 23.800 22.100
+ -6464748.307 5 -5037452.962 4 23203519.735 23203519.749 23203518.807
+ 35.100 28.100
+ 06 1 2 20 53 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2014017.249 3 -1569362.055 3 24133539.859 24133541.185 24133538.796
+ 23.400 19.900
+ -21220867.064 7 -16535722.484 7 20402525.912 20402525.071 20402525.585
+ 47.100 46.000
+ -3358638.544 4 -2617118.392 3 24053945.988 24053943.265 24053944.728
+ 28.100 23.800
+ -9690631.752 7 -7551135.303 6 21523802.680 21523801.978 21523801.422
+ 42.200 37.400
+ -22378627.831 7 -17437879.030 7 20554990.064 20554986.843 20554989.232
+ 45.800 46.800
+ -10963790.744 6 -8543209.003 5 22635566.227 22635564.621 22635565.159
+ 38.900 35.400
+ -13337360.166 6 -10392740.580 6 21854460.410 21854459.487 21854459.237
+ 41.800 36.500
+ -5425224.675 5 -4227443.031 4 23429732.614 23429732.798 23429732.374
+ 30.400 27.100
+ -3694589.456 4 -2878898.278 3 23929300.493 23929300.320 23929300.469
+ 25.600 21.100
+ -6379744.595 5 -4971216.308 4 23219695.215 23219695.521 23219694.403
+ 34.300 27.600
+ 06 1 2 20 53 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2133593.145 3 -1662537.880 3 24110785.207 24110786.586 24110784.228
+ 23.000 19.900
+ -21184966.536 7 -16507748.044 7 20409357.516 20409356.727 20409357.143
+ 47.000 45.800
+ -3374054.289 4 -2629130.636 4 24051012.889 24051009.383 24051011.739
+ 28.400 25.900
+ -9627843.208 6 -7502209.173 6 21535750.798 21535750.348 21535749.660
+ 41.900 37.700
+ -22421556.321 7 -17471329.784 7 20546821.205 20546817.721 20546820.368
+ 46.000 46.800
+ -10876277.836 6 -8475017.153 5 22652218.291 22652217.513 22652218.177
+ 38.400 34.700
+ -13354421.084 6 -10406034.796 6 21851213.707 21851212.892 21851212.654
+ 41.800 36.500
+ -5497807.717 5 -4284001.209 4 23415920.665 23415920.309 23415920.596
+ 31.600 25.900
+ -3762683.401 4 -2931958.467 3 23916342.472 23916341.943 23916342.945
+ 25.300 19.900
+ -6294660.978 5 -4904917.389 4 23235886.240 23235886.165 23235885.227
+ 34.100 27.900
+ 06 1 2 20 54 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2253064.827 3 -1755632.501 3 24088049.695 24088051.769 24088048.672
+ 23.800 20.500
+ -21148730.703 7 -16479512.330 7 20416252.953 20416252.239 20416252.576
+ 47.100 45.900
+ -3388919.712 4 -2640714.062 4 24048183.650 24048180.305 24048182.331
+ 27.600 24.900
+ -9564724.656 6 -7453025.902 6 21547761.600 21547761.570 21547760.662
+ 41.700 37.700
+ -22464122.994 7 -17504498.606 7 20538720.985 20538717.564 20538720.140
+ 46.100 46.700
+ -10788515.212 6 -8406630.714 5 22668918.864 22668918.204 22668918.682
+ 38.100 34.300
+ -13370878.999 6 -10418859.132 6 21848081.675 21848081.257 21848080.640
+ 41.600 36.800
+ -5569929.070 5 -4340199.604 4 23402196.353 23402196.566 23402195.951
+ 30.600 28.800
+ -3830400.693 4 -2984725.185 2 23903457.218 23903455.321 23903456.855
+ 27.100 17.800
+ -6209498.519 5 -4838557.039 4 23252092.446 23252091.949 23252091.383
+ 34.100 27.400
+ 06 1 2 20 54 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2372430.037 4 -1848644.157 2 24065335.328 24065336.889 24065334.230
+ 25.300 17.800
+ -21112160.777 7 -16451016.289 7 20423212.121 20423211.272 20423211.726
+ 47.100 45.900
+ -3403233.875 4 -2651867.946 4 24045459.460 24045456.823 24045458.532
+ 25.900 24.900
+ -9501276.648 6 -7403585.894 6 21559836.073 21559835.061 21559834.580
+ 41.400 37.200
+ -22506327.627 7 -17537385.318 7 20530689.610 20530686.304 20530688.836
+ 45.900 46.900
+ -10700503.784 6 -8338050.422 5 22685667.209 22685666.527 22685666.708
+ 37.700 34.900
+ -13386733.520 6 -10431213.294 6 21845064.770 21845064.194 21845063.632
+ 41.500 37.000
+ -5641586.252 4 -4396036.327 4 23388560.235 23388559.986 23388559.757
+ 29.700 26.800
+ -3897738.755 4 -3037196.385 3 23890643.703 23890641.803 23890643.145
+ 26.200 19.900
+ -6124258.213 5 -4772136.024 4 23268313.174 23268312.429 23268312.322
+ 34.500 26.200
+ 06 1 2 20 55 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2491686.182 3 -1941570.859 3 24042641.048 24042643.352 24042640.073
+ 22.100 22.600
+ -21075258.141 7 -16422260.993 7 20430234.465 20430233.628 20430234.054
+ 47.100 45.800
+ -3416995.450 4 -2662591.246 4 24042840.927 24042838.164 24042839.769
+ 26.800 25.900
+ -9437499.862 6 -7353889.711 6 21571971.965 21571971.018 21571970.728
+ 41.600 36.800
+ -22548169.833 7 -17569989.616 7 20522727.256 20522723.878 20522726.538
+ 46.100 46.800
+ -10612244.498 6 -8269276.971 5 22702462.983 22702461.631 22702462.121
+ 38.300 34.700
+ -13401984.065 6 -10443096.833 6 21842162.797 21842162.060 21842161.571
+ 41.900 36.500
+ -5712777.091 4 -4451509.633 4 23375012.747 23375012.659 23375012.478
+ 28.800 26.500
+ -3964694.530 4 -3089369.654 3 23877902.073 23877901.098 23877901.504
+ 26.200 21.600
+ -6038941.208 5 -4705655.231 4 23284548.358 23284547.497 23284547.355
+ 34.000 26.800
+ 06 1 2 20 55 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2610830.827 3 -2034410.694 3 24019968.446 24019969.902 24019967.778
+ 21.600 18.600
+ -21038023.667 7 -16393247.118 7 20437319.971 20437319.084 20437319.596
+ 47.300 45.700
+ -3430203.578 4 -2672883.266 3 24040327.947 24040324.171 24040326.494
+ 27.400 22.600
+ -9373394.708 6 -7303937.652 6 21584170.584 21584170.095 21584169.522
+ 41.600 36.900
+ -22589649.245 7 -17602311.221 7 20514834.303 20514830.477 20514833.452
+ 46.300 46.600
+ -10523738.373 6 -8200311.171 5 22719305.199 22719303.569 22719304.281
+ 37.700 33.800
+ -13416630.240 6 -10454509.422 6 21839375.590 21839374.783 21839374.502
+ 41.600 36.500
+ -5783499.082 5 -4506617.605 4 23361554.889 23361555.067 23361554.672
+ 30.800 25.900
+ -4031264.776 4 -3141242.551 3 23865233.750 23865233.024 23865233.628
+ 26.500 18.600
+ -5953548.420 5 -4639115.409 4 23300797.691 23300797.521 23300796.717
+ 34.000 26.500
+ 06 1 2 20 56 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2729861.319 3 -2127161.586 3 23997318.164 23997319.930 23997317.059
+ 23.400 23.000
+ -21000459.083 7 -16363976.020 7 20444468.212 20444467.394 20444467.838
+ 47.200 45.600
+ -3442857.511 4 -2682743.440 3 24037919.645 24037916.219 24037918.783
+ 27.100 23.000
+ -9308961.804 6 -7253730.197 6 21596431.545 21596431.186 21596430.649
+ 41.600 36.700
+ -22630765.431 7 -17634349.793 7 20507009.909 20507006.410 20507009.085
+ 46.100 46.900
+ -10434986.454 6 -8131153.865 5 22736194.088 22736192.649 22736193.201
+ 37.300 34.400
+ -13430671.583 6 -10465450.716 6 21836703.677 21836702.678 21836702.697
+ 41.700 36.100
+ -5853749.886 5 -4561358.433 4 23348186.451 23348186.318 23348186.343
+ 32.300 25.900
+ -4097446.741 4 -3192812.887 3 23852638.907 23852639.134 23852639.391
+ 27.400 21.100
+ -5868081.139 5 -4572517.541 4 23317061.430 23317061.893 23317060.572
+ 34.300 27.600
+ 06 1 2 20 56 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2848775.382 3 -2219821.789 3 23974689.068 23974690.988 23974687.874
+ 21.600 21.100
+ -20962565.325 7 -16334448.422 7 20451679.241 20451678.275 20451678.800
+ 47.300 45.500
+ -3454956.017 4 -2692170.853 3 24035617.696 24035613.940 24035616.276
+ 27.400 22.600
+ -9244201.782 6 -7203267.850 6 21608755.510 21608754.654 21608754.379
+ 41.700 36.500
+ -22671518.119 7 -17666105.111 7 20499254.952 20499251.521 20499254.096
+ 46.100 47.000
+ -10345989.808 6 -8061805.851 5 22753129.259 22753128.157 22753128.589
+ 37.200 34.600
+ -13444107.713 7 -10475920.421 6 21834146.971 21834145.931 21834145.916
+ 42.000 36.500
+ -5923527.303 5 -4615730.384 4 23334908.264 23334908.384 23334907.895
+ 31.300 27.100
+ -4163237.473 4 -3244078.317 3 23840120.064 23840119.953 23840119.894
+ 25.900 22.100
+ -5782540.395 5 -4505862.430 4 23333340.107 23333339.659 23333339.192
+ 34.100 28.400
+ 06 1 2 20 57 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -2967570.368 3 -2312389.252 3 23952083.183 23952084.850 23952082.357
+ 23.800 20.500
+ -20924343.851 7 -16304665.454 7 20458952.558 20458951.559 20458952.155
+ 47.300 45.500
+ -3466497.854 4 -2701164.458 4 24033420.867 24033417.659 24033420.122
+ 29.500 25.600
+ -9179115.071 6 -7152550.935 6 21621141.072 21621140.236 21621139.904
+ 41.500 36.600
+ -22711907.048 7 -17697576.979 7 20491569.079 20491565.722 20491568.289
+ 46.200 47.100
+ -10256749.458 6 -7992267.949 5 22770110.641 22770110.332 22770110.220
+ 36.700 34.800
+ -13456938.245 7 -10485918.241 6 21831705.531 21831704.325 21831704.343
+ 42.000 36.400
+ -5992828.891 5 -4669731.583 4 23321720.792 23321720.558 23321720.430
+ 31.800 26.800
+ -4228634.114 4 -3295036.683 3 23827675.201 23827674.715 23827674.948
+ 25.600 19.300
+ -5696926.892 5 -4439150.611 4 23349632.025 23349631.202 23349631.035
+ 34.000 26.800
+ 06 1 2 20 57 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3086243.855 3 -2404862.053 4 23929500.599 23929502.716 23929499.472
+ 23.800 24.200
+ -20885795.753 7 -16274627.981 7 20466288.318 20466287.039 20466287.786
+ 47.400 45.500
+ -3477482.325 4 -2709723.775 4 24031331.756 24031327.303 24031330.134
+ 28.100 24.900
+ -9113702.397 6 -7101580.028 6 21633588.518 21633587.975 21633587.549
+ 41.500 36.300
+ -22751931.881 7 -17728765.138 7 20483952.774 20483949.121 20483951.988
+ 46.300 46.900
+ -10167266.555 6 -7922541.026 5 22787138.983 22787138.386 22787138.391
+ 36.400 34.600
+ -13469162.842 6 -10495443.900 6 21829378.972 21829378.235 21829377.852
+ 41.400 36.300
+ -6061652.453 4 -4723360.285 4 23308623.634 23308623.399 23308623.376
+ 29.900 26.200
+ -4293633.551 4 -3345685.585 3 23815306.787 23815305.652 23815306.839
+ 26.200 20.500
+ -5611241.943 5 -4372383.133 4 23365936.618 23365936.379 23365935.792
+ 33.600 26.200
+ 06 1 2 20 58 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3204793.225 3 -2497238.172 3 23906941.316 23906942.643 23906940.420
+ 22.600 19.900
+ -20846922.323 7 -16244336.998 7 20473685.458 20473684.431 20473685.074
+ 47.600 45.600
+ -3487908.601 4 -2717848.126 3 24029347.234 24029343.044 24029345.955
+ 28.600 21.600
+ -9047964.275 6 -7050355.525 6 21646098.565 21646097.436 21646097.273
+ 41.200 36.500
+ -22791592.254 7 -17759669.308 7 20476405.718 20476402.008 20476404.957
+ 46.600 47.000
+ -10077541.852 6 -7852625.703 5 22804213.119 22804212.152 22804212.625
+ 36.800 33.800
+ -13480781.231 6 -10504497.183 6 21827168.064 21827167.231 21827167.089
+ 41.900 36.800
+ -6129995.581 5 -4776614.615 4 23295618.425 23295618.105 23295618.326
+ 30.200 25.900
+ -4358233.028 4 -3396022.790 3 23803012.305 23803013.367 23803013.105
+ 24.900 23.000
+ -5525486.642 5 -4305560.830 4 23382255.098 23382255.315 23382254.254
+ 33.200 27.400
+ 06 1 2 20 58 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3323215.879 3 -2589515.577 3 23884406.656 23884407.813 23884405.152
+ 21.600 22.100
+ -20807724.887 7 -16213793.539 7 20481144.357 20481143.430 20481144.004
+ 47.500 45.400
+ -3497775.752 4 -2725536.801 3 24027469.405 24027465.354 24027468.382
+ 28.800 23.400
+ -8981901.415 6 -6998877.985 6 21658669.986 21658668.938 21658668.553
+ 41.200 36.600
+ -22830887.745 7 -17790289.150 7 20468927.692 20468924.307 20468927.058
+ 46.400 47.100
+ -9987576.648 6 -7782522.968 5 22821333.305 22821332.022 22821332.291
+ 36.400 34.000
+ -13491793.040 7 -10513077.807 6 21825072.694 21825071.702 21825071.681
+ 42.100 36.700
+ -6197856.001 5 -4829492.804 4 23282705.637 23282704.552 23282705.110
+ 30.400 25.600
+ -4422429.413 4 -3446045.885 3 23790796.067 23790797.219 23790796.490
+ 25.300 23.000
+ -5439662.004 5 -4238684.506 4 23398586.440 23398587.215 23398585.713
+ 32.800 26.200
+ 06 1 2 20 59 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3441509.595 3 -2681692.590 3 23861896.376 23861897.617 23861894.949
+ 23.400 23.400
+ -20768204.534 7 -16182998.459 7 20488665.214 20488663.899 20488664.692
+ 47.600 45.400
+ -3507083.141 4 -2732789.282 3 24025698.658 24025694.268 24025697.120
+ 27.900 23.000
+ -8915514.278 6 -6947147.776 6 21671303.125 21671301.991 21671301.674
+ 41.000 36.600
+ -22869818.135 7 -17820624.504 7 20461519.605 20461515.985 20461518.854
+ 46.300 47.100
+ -9897371.845 6 -7712233.551 5 22838499.164 22838497.766 22838497.734
+ 36.000 34.000
+ -13502198.026 6 -10521185.580 6 21823092.663 21823091.856 21823091.540
+ 41.700 37.000
+ -6265231.602 5 -4881993.209 4 23269883.942 23269883.468 23269883.708
+ 31.000 25.600
+ -4486219.838 4 -3495752.643 3 23778659.587 23778657.555 23778658.365
+ 25.600 19.900
+ -5353768.895 5 -4171754.805 4 23414932.107 23414931.810 23414931.236
+ 32.700 25.900
+ 06 1 2 20 59 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3559671.695 3 -2773766.954 3 23839410.340 23839412.025 23839409.571
+ 23.000 21.600
+ -20728362.615 7 -16151952.809 7 20496246.366 20496245.574 20496246.071
+ 47.500 45.200
+ -3515829.558 4 -2739604.653 3 24024033.813 24024029.957 24024032.828
+ 28.400 23.400
+ -8848803.674 6 -6895165.492 6 21683996.948 21683996.392 21683996.172
+ 41.300 36.000
+ -22908383.380 7 -17850675.330 7 20454180.830 20454177.220 20454180.035
+ 46.200 47.100
+ -9806928.749 6 -7641758.435 5 22855709.704 22855708.137 22855708.723
+ 36.800 33.400
+ -13511995.909 6 -10528820.293 6 21821228.033 21821227.355 21821226.836
+ 41.300 36.600
+ -6332119.874 5 -4934113.902 4 23257155.424 23257155.839 23257155.230
+ 31.500 28.800
+ -4549601.336 4 -3545140.807 3 23766597.861 23766597.077 23766597.418
+ 26.800 22.600
+ -5267808.437 5 -4104772.635 4 23431289.539 23431289.729 23431288.789
+ 33.100 25.900
+ 06 1 2 21 0 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3677699.522 4 -2865736.701 4 23816951.101 23816952.601 23816949.948
+ 25.300 25.300
+ -20688200.411 7 -16120657.580 7 20503889.096 20503888.194 20503888.718
+ 47.300 45.300
+ -3524014.313 4 -2745982.390 3 24022476.502 24022472.561 24022475.012
+ 29.200 23.800
+ -8781770.084 6 -6842931.539 6 21696753.197 21696752.590 21696752.194
+ 41.300 36.200
+ -22946583.114 7 -17880441.343 7 20446911.520 20446908.034 20446910.708
+ 46.100 47.100
+ -9716248.399 6 -7571098.444 5 22872965.120 22872964.325 22872964.505
+ 36.700 33.800
+ -13521186.500 6 -10535981.782 6 21819479.105 21819478.416 21819477.876
+ 41.300 37.000
+ -6398518.801 5 -4985853.276 4 23244520.397 23244520.698 23244519.979
+ 31.100 28.600
+ -4612571.009 4 -3594208.019 3 23754613.543 23754614.300 23754613.882
+ 26.500 23.000
+ -5181781.376 5 -4037738.560 4 23447660.585 23447660.051 23447659.706
+ 33.500 25.900
+ 06 1 2 21 0 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3795590.637 4 -2957599.909 3 23794516.843 23794518.155 23794516.080
+ 26.200 21.600
+ -20647719.126 7 -16089113.728 7 20511592.405 20511591.595 20511592.055
+ 47.300 45.200
+ -3531636.798 4 -2751921.978 4 24021025.607 24021022.199 24021024.657
+ 28.400 24.600
+ -8714414.228 6 -6790446.496 6 21709571.793 21709570.076 21709569.980
+ 40.600 36.000
+ -22984416.898 7 -17909922.204 7 20439711.982 20439708.531 20439711.190
+ 46.100 47.200
+ -9625331.578 6 -7500254.206 5 22890265.857 22890265.417 22890265.786
+ 36.700 33.600
+ -13529769.624 6 -10542669.922 6 21817845.683 21817845.237 21817844.659
+ 41.400 37.200
+ -6464426.049 5 -5037209.518 4 23231978.460 23231978.818 23231978.067
+ 31.000 28.600
+ -4675126.489 4 -3642952.490 3 23742709.289 23742709.870 23742709.944
+ 26.800 22.100
+ -5095688.727 5 -3970653.407 4 23464043.148 23464043.350 23464042.385
+ 32.800 28.100
+ 06 1 2 21 1 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -3913342.586 4 -3049354.635 2 23772108.618 23772109.982 23772107.942
+ 25.600 16.100
+ -20606920.072 7 -16057322.259 7 20519356.413 20519355.405 20519355.969
+ 47.400 45.200
+ -3538695.797 4 -2757422.507 3 24019682.527 24019678.191 24019681.009
+ 27.600 23.000
+ -8646736.692 6 -6737710.783 6 21722448.923 21722448.857 21722448.109
+ 40.700 36.200
+ -23021884.404 7 -17939117.654 7 20432582.230 20432578.744 20432581.395
+ 46.100 47.400
+ -9534179.643 6 -7429226.752 5 22907611.732 22907610.722 22907611.478
+ 37.100 32.600
+ -13537745.036 6 -10548884.528 6 21816328.083 21816327.672 21816326.959
+ 41.500 37.300
+ -6529839.368 5 -5088180.859 4 23219530.366 23219530.471 23219529.974
+ 30.200 27.100
+ -4737264.445 4 -3691371.640 3 23730886.734 23730885.516 23730885.830
+ 27.600 23.400
+ -5009531.788 5 -3903518.142 4 23480438.285 23480438.749 23480437.362
+ 31.600 28.100
+ 06 1 2 21 1 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4030952.530 4 -3140998.648 3 23749728.666 23749729.882 23749727.787
+ 25.300 21.100
+ -20565804.498 7 -16025284.146 7 20527180.413 20527179.393 20527179.982
+ 47.500 45.000
+ -3545190.979 4 -2762483.668 3 24018446.274 24018442.605 24018445.155
+ 28.400 23.400
+ -8578738.169 6 -6684724.930 5 21735387.744 21735388.499 21735387.695
+ 40.400 35.900
+ -23058985.307 7 -17968027.441 7 20425522.035 20425518.656 20425521.227
+ 46.100 47.300
+ -9442793.139 6 -7358016.516 5 22925001.485 22925000.898 22925001.632
+ 36.700 31.500
+ -13545112.662 6 -10554625.531 6 21814926.281 21814925.618 21814925.029
+ 41.900 37.200
+ -6594756.667 4 -5138765.715 4 23207176.664 23207176.731 23207176.374
+ 29.200 27.600
+ -4798982.368 4 -3739463.460 3 23719142.081 23719140.544 23719141.231
+ 24.600 20.500
+ -4923311.253 5 -3836333.330 4 23496844.969 23496845.797 23496844.154
+ 32.400 26.500
+ 06 1 2 21 2 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4148417.988 4 -3232530.087 3 23727375.702 23727377.147 23727375.017
+ 25.300 22.600
+ -20524373.555 7 -15993000.291 7 20535064.226 20535063.314 20535063.948
+ 47.100 44.900
+ -3551121.705 4 -2767105.001 3 24017318.122 24017313.942 24017316.878
+ 29.000 23.800
+ -8510419.287 6 -6631489.441 5 21748390.371 21748389.163 21748388.671
+ 39.900 35.800
+ -23095719.727 7 -17996651.660 7 20418531.785 20418528.349 20418530.957
+ 45.900 47.500
+ -9351173.920 6 -7286624.941 5 22942437.022 22942435.820 22942436.270
+ 36.700 32.600
+ -13551872.399 6 -10559892.860 6 21813639.849 21813639.241 21813638.694
+ 41.900 37.100
+ -6659175.708 5 -5188962.326 4 23194918.696 23194917.545 23194918.350
+ 30.100 25.900
+ -4860277.153 4 -3787225.589 3 23707477.836 23707476.352 23707477.566
+ 27.400 21.100
+ -4837028.072 5 -3769099.679 4 23513264.401 23513264.203 23513263.568
+ 32.600 25.600
+ 06 1 2 21 2 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4265736.744 3 -3323947.134 3 23705050.297 23705051.710 23705049.566
+ 23.400 22.100
+ -20482628.598 7 -15960471.751 7 20543008.108 20543007.168 20543007.629
+ 47.100 44.800
+ -3556486.942 4 -2771285.690 3 24016297.525 24016293.085 24016295.904
+ 27.900 23.800
+ -8441780.811 6 -6578004.941 5 21761452.179 21761450.743 21761450.371
+ 40.000 35.900
+ -23132086.719 7 -18024989.571 7 20411611.092 20411607.976 20411610.418
+ 46.100 47.600
+ -9259322.965 5 -7215052.780 5 22959915.549 22959914.044 22959914.608
+ 35.200 32.400
+ -13558024.073 6 -10564686.376 6 21812469.259 21812468.648 21812468.162
+ 41.900 37.300
+ -6723094.275 5 -5238768.950 4 23182755.267 23182755.160 23182754.916
+ 31.500 27.900
+ -4921146.042 4 -3834655.852 3 23695894.470 23695893.084 23695894.554
+ 28.400 22.100
+ -4750683.244 5 -3701817.994 4 23529695.455 23529695.492 23529694.734
+ 32.300 25.600
+ 06 1 2 21 3 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4382906.299 4 -3415247.914 3 23682754.409 23682755.113 23682753.333
+ 25.900 23.000
+ -20440570.702 7 -15927699.361 7 20551011.389 20551010.530 20551010.974
+ 47.200 44.700
+ -3561285.896 4 -2775025.141 3 24015383.557 24015379.555 24015382.888
+ 29.200 23.000
+ -8372823.288 6 -6524271.816 5 21774572.433 21774572.792 21774572.035
+ 40.500 35.600
+ -23168086.523 7 -18053041.362 7 20404760.845 20404757.440 20404760.049
+ 46.100 47.700
+ -9167241.199 5 -7143300.797 5 22977438.551 22977437.173 22977437.448
+ 35.600 33.500
+ -13563567.616 6 -10569006.018 6 21811414.405 21811413.613 21811413.225
+ 41.900 36.900
+ -6786510.182 5 -5288183.898 4 23170687.223 23170687.492 23170687.097
+ 31.500 28.600
+ -4981586.278 4 -3881752.041 3 23684392.282 23684391.984 23684392.384
+ 26.200 22.100
+ -4664277.852 5 -3634489.123 4 23546137.860 23546138.110 23546136.820
+ 31.800 25.600
+ 06 1 2 21 3 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4499924.031 4 -3506430.378 4 23660486.798 23660487.549 23660485.537
+ 25.600 24.600
+ -20398201.437 7 -15894684.348 7 20559074.253 20559073.165 20559073.766
+ 47.200 44.600
+ -3565518.160 4 -2778322.979 3 24014577.694 24014574.492 24014576.653
+ 26.200 23.400
+ -8303547.447 6 -6470290.642 5 21787754.846 21787755.600 21787754.765
+ 40.200 35.500
+ -23203718.638 7 -18080806.647 7 20397980.331 20397976.803 20397979.605
+ 46.200 47.800
+ -9074929.431 6 -7071369.573 5 22995005.475 22995003.569 22995004.072
+ 36.100 33.600
+ -13568503.024 6 -10572851.796 6 21810475.133 21810474.398 21810473.957
+ 41.900 37.000
+ -6849421.567 5 -5337205.709 4 23158715.831 23158715.566 23158715.799
+ 32.400 27.400
+ -5041594.861 4 -3928511.930 3 23672975.063 23672972.747 23672974.266
+ 28.800 22.100
+ -4577812.711 5 -3567113.707 4 23562591.240 23562592.346 23562590.368
+ 31.800 26.800
+ 06 1 2 21 4 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4616787.372 4 -3597492.549 4 23638248.514 23638248.857 23638247.218
+ 26.200 24.600
+ -20355521.740 7 -15861427.433 7 20567195.681 20567194.754 20567195.319
+ 47.100 44.600
+ -3569183.190 4 -2781178.846 4 24013881.031 24013877.215 24013879.494
+ 26.500 24.600
+ -8233954.159 6 -6416062.119 5 21801000.278 21800998.463 21800998.446
+ 39.900 34.700
+ -23238983.314 7 -18108285.612 7 20391269.736 20391266.282 20391268.903
+ 46.200 47.900
+ -8982389.436 6 -6999260.503 5 23012614.772 23012613.253 23012613.916
+ 36.500 33.200
+ -13572830.348 6 -10576223.737 6 21809651.488 21809651.012 21809650.359
+ 41.300 37.100
+ -6911826.093 5 -5385832.543 4 23146839.984 23146840.805 23146839.951
+ 30.800 29.700
+ -5101169.455 4 -3974933.635 3 23661638.168 23661635.588 23661637.407
+ 28.100 21.600
+ -4491288.705 5 -3499692.396 4 23579056.593 23579056.649 23579055.829
+ 31.800 24.900
+ 06 1 2 21 4 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4733493.810 4 -3688432.446 4 23616039.621 23616040.385 23616038.415
+ 26.200 25.300
+ -20312532.930 7 -15827929.652 7 20575376.227 20575375.252 20575375.820
+ 47.300 44.600
+ -3572280.389 4 -2783592.233 3 24013291.403 24013286.765 24013290.410
+ 28.600 22.600
+ -8164043.850 6 -6361586.578 5 21814303.888 21814302.353 21814302.068
+ 40.300 35.800
+ -23273879.668 7 -18135477.570 7 20384629.155 20384625.619 20384628.383
+ 46.300 47.900
+ -8889621.835 6 -6926974.069 5 23030267.885 23030266.042 23030266.879
+ 36.200 32.700
+ -13576549.514 6 -10579121.790 6 21808943.725 21808943.188 21808942.635
+ 41.500 36.600
+ -6973721.619 5 -5434062.787 4 23135062.978 23135061.865 23135062.526
+ 32.600 27.900
+ -5160307.056 4 -4021014.821 3 23650383.771 23650381.993 23650383.424
+ 28.600 21.600
+ -4404706.728 5 -3432225.932 4 23595532.779 23595532.595 23595531.741
+ 30.800 25.300
+ 06 1 2 21 5 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4850041.078 4 -3779248.351 4 23593860.954 23593861.842 23593859.818
+ 27.100 26.200
+ -20269236.469 7 -15794192.145 7 20583615.271 20583614.318 20583614.936
+ 47.500 44.400
+ -3574809.230 4 -2785562.718 3 24012810.392 24012806.217 24012809.253
+ 27.100 22.100
+ -8093817.496 6 -6306864.758 5 21827665.543 21827665.934 21827665.264
+ 39.800 34.900
+ -23308407.633 7 -18162382.473 7 20378058.710 20378055.076 20378057.953
+ 46.400 47.800
+ -8796627.796 5 -6854511.209 5 23047963.189 23047962.640 23047962.609
+ 34.900 33.200
+ -13579660.594 7 -10581546.007 6 21808352.034 21808351.114 21808350.868
+ 42.100 36.700
+ -7035106.052 5 -5481894.747 4 23123381.820 23123381.208 23123381.364
+ 32.400 28.600
+ -5219004.973 4 -4066753.396 3 23639212.667 23639212.745 23639213.026
+ 27.600 23.400
+ -4318067.859 5 -3364715.144 4 23612020.075 23612019.486 23612019.007
+ 31.500 24.600
+ 06 1 2 21 5 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -4966426.515 4 -3869938.126 4 23571712.949 23571713.879 23571712.100
+ 27.100 24.200
+ -20225633.352 7 -15760215.686 7 20591912.781 20591911.750 20591912.364
+ 47.400 44.400
+ -3576769.007 4 -2787089.775 3 24012437.856 24012433.379 24012436.038
+ 28.600 23.800
+ -8023275.676 6 -6251897.111 5 21841089.147 21841089.489 21841088.868
+ 39.700 35.100
+ -23342566.944 7 -18189000.110 7 20371558.345 20371554.836 20371557.605
+ 46.300 47.900
+ -8703408.617 5 -6781872.900 5 23065701.147 23065701.995 23065701.844
+ 35.100 33.400
+ -13582163.552 7 -10583496.356 6 21807875.741 21807874.815 21807874.514
+ 42.000 36.600
+ -7095977.317 5 -5529326.872 4 23111797.908 23111797.745 23111797.613
+ 31.800 28.400
+ -5277260.449 4 -4112147.197 3 23628127.881 23628126.898 23628127.627
+ 26.800 23.000
+ -4231373.064 5 -3297160.751 4 23628517.240 23628516.946 23628516.339
+ 31.800 24.600
+ 06 1 2 21 6 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5082647.551 4 -3960499.834 4 23549597.107 23549597.826 23549595.818
+ 26.500 24.900
+ -20181724.835 7 -15726001.252 7 20600267.935 20600267.231 20600267.722
+ 47.300 44.300
+ -3578159.239 4 -2788173.083 3 24012172.894 24012168.833 24012171.573
+ 29.500 23.400
+ -7952419.215 6 -6196684.311 5 21854574.902 21854572.977 21854572.950
+ 39.500 34.800
+ -23376357.385 7 -18215330.314 7 20365128.227 20365124.672 20365127.479
+ 46.300 47.900
+ -8609965.040 5 -6709059.748 5 23083483.412 23083483.460 23083483.561
+ 34.700 32.700
+ -13584058.573 7 -10584972.993 6 21807515.135 21807514.093 21807513.968
+ 42.100 36.500
+ -7156333.455 5 -5576357.608 4 23100312.547 23100311.934 23100312.533
+ 33.200 26.800
+ -5335070.716 4 -4157194.107 3 23617126.834 23617125.850 23617126.413
+ 28.100 22.600
+ -4144623.327 5 -3229563.567 4 23645024.725 23645024.810 23645023.850
+ 31.300 24.900
+ 06 1 2 21 6 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5198701.608 4 -4050931.445 4 23527512.315 23527513.326 23527511.354
+ 25.300 24.200
+ -20137512.191 7 -15691549.837 7 20608681.514 20608680.592 20608681.149
+ 47.100 44.300
+ -3578979.497 4 -2788812.198 3 24012016.622 24012012.359 24012015.354
+ 27.900 22.100
+ -7881248.758 6 -6141226.840 5 21868117.761 21868116.162 21868116.123
+ 39.400 34.800
+ -23409778.741 7 -18241372.921 8 20358768.277 20358764.807 20358767.613
+ 46.400 48.000
+ -8516298.850 5 -6636073.136 5 23101307.276 23101307.476 23101307.451
+ 35.300 32.100
+ -13585345.709 7 -10585975.952 6 21807270.053 21807269.314 21807269.020
+ 42.200 36.600
+ -7216172.320 5 -5622985.267 4 23088925.312 23088925.059 23088925.185
+ 32.100 27.100
+ -5392433.108 4 -4201892.037 3 23606210.830 23606210.200 23606211.013
+ 27.400 22.600
+ -4057819.357 5 -3161924.114 3 23661543.320 23661542.504 23661542.255
+ 30.800 22.100
+ 06 1 2 21 7 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5314586.340 4 -4141231.107 3 23505460.937 23505461.113 23505459.570
+ 27.400 23.800
+ -20092996.730 7 -15656862.464 7 20617152.744 20617151.639 20617152.220
+ 47.000 44.300
+ -3579229.330 4 -2789006.856 3 24011969.036 24011965.076 24011967.826
+ 29.200 23.800
+ -7809765.219 6 -6085525.403 5 21881718.877 21881719.343 21881718.765
+ 39.500 35.200
+ -23442830.805 7 -18267127.768 8 20352478.866 20352475.226 20352478.062
+ 46.700 48.100
+ -8422410.753 5 -6562913.576 5 23119174.361 23119173.432 23119174.303
+ 35.100 31.300
+ -13586025.142 7 -10586505.377 6 21807140.713 21807139.963 21807139.710
+ 42.000 36.900
+ -7275491.825 5 -5669208.221 4 23077637.285 23077636.861 23077636.660
+ 32.000 27.900
+ -5449345.033 4 -4246238.933 3 23595379.816 23595380.321 23595380.982
+ 28.600 22.600
+ -3970962.022 5 -3094243.088 3 23678071.877 23678071.162 23678070.923
+ 31.500 23.800
+ 06 1 2 21 7 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5430299.529 4 -4231397.129 3 23483440.313 23483441.244 23483439.467
+ 26.800 23.400
+ -20048179.595 7 -15621940.020 7 20625681.000 20625680.019 20625680.565
+ 47.200 44.200
+ -3578908.031 4 -2788756.493 3 24012030.400 24012026.111 24012029.115
+ 29.000 23.400
+ -7737969.237 6 -6029580.506 5 21895381.586 21895381.500 21895380.958
+ 39.100 34.800
+ -23475513.420 7 -18292594.728 8 20346259.518 20346255.898 20346258.715
+ 46.500 48.100
+ -8328302.102 5 -6489582.174 4 23137083.071 23137081.548 23137082.294
+ 34.000 29.700
+ -13586096.967 7 -10586561.345 6 21807127.191 21807126.238 21807126.049
+ 42.100 36.600
+ -7334290.143 5 -5715025.072 4 23066448.438 23066447.829 23066447.965
+ 32.400 27.400
+ -5505803.778 4 -4290232.716 3 23584636.130 23584636.794 23584636.657
+ 28.100 23.800
+ -3884052.131 5 -3026521.093 3 23694609.758 23694609.866 23694609.022
+ 30.800 23.800
+ 06 1 2 21 8 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5545838.351 4 -4321427.307 3 23461454.054 23461455.107 23461453.070
+ 26.500 22.100
+ -20003062.170 7 -15586783.588 7 20634266.586 20634265.597 20634266.199
+ 47.200 44.100
+ -3578015.272 4 -2788060.784 3 24012199.796 24012195.786 24012198.661
+ 28.600 21.100
+ -7665861.528 6 -5973392.719 5 21909104.544 21909103.129 21909102.908
+ 39.300 34.600
+ -23507826.281 7 -18317773.567 8 20340110.792 20340106.974 20340109.926
+ 46.700 48.200
+ -8233973.890 5 -6416079.698 5 23155033.446 23155032.172 23155032.340
+ 33.900 32.000
+ -13585561.379 7 -10586143.999 6 21807229.107 21807228.165 21807227.983
+ 42.000 36.700
+ -7392565.119 5 -5760434.095 4 23055358.438 23055358.596 23055358.271
+ 31.500 28.600
+ -5561806.272 4 -4333870.985 3 23573980.410 23573979.295 23573980.242
+ 28.800 23.800
+ -3797090.926 5 -2958759.150 4 23711158.064 23711158.281 23711157.159
+ 30.100 25.600
+ 06 1 2 21 8 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5661200.190 4 -4411319.580 4 23439501.948 23439502.287 23439500.782
+ 27.600 24.900
+ -19957645.557 7 -15551394.021 7 20642909.356 20642908.015 20642908.781
+ 47.100 44.000
+ -3576550.825 4 -2786919.654 3 24012479.034 24012474.705 24012477.478
+ 29.200 22.600
+ -7593443.031 6 -5916962.755 5 21922885.706 21922884.045 21922883.745
+ 38.500 34.000
+ -23539769.280 7 -18342664.207 8 20334032.267 20334028.385 20334031.414
+ 46.700 48.300
+ -8139427.446 5 -6342407.168 5 23173025.212 23173023.662 23173023.909
+ 33.000 31.300
+ -13584418.664 7 -10585253.568 6 21807446.649 21807445.653 21807445.466
+ 42.000 36.600
+ -7450314.785 5 -5805433.815 4 23044369.106 23044368.985 23044368.939
+ 31.600 28.600
+ -5617350.337 4 -4377152.031 3 23563410.788 23563409.326 23563410.459
+ 27.600 23.400
+ -3710079.160 5 -2890957.775 4 23727715.818 23727716.031 23727714.876
+ 30.600 25.900
+ 06 1 2 21 9 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5776382.600 4 -4501072.035 4 23417583.620 23417583.586 23417582.354
+ 25.600 25.300
+ -19911931.177 7 -15515772.427 7 20651608.195 20651607.199 20651607.783
+ 47.100 44.000
+ -3574514.201 4 -2785332.640 3 24012866.715 24012862.320 24012865.298
+ 28.800 23.000
+ -7520714.374 6 -5860291.101 5 21936723.537 21936723.800 21936723.123
+ 38.800 34.100
+ -23571341.975 7 -18367266.300 8 20328023.980 20328020.410 20328023.200
+ 46.700 48.400
+ -8044663.782 5 -6268565.371 5 23191058.643 23191056.889 23191056.954
+ 33.400 32.400
+ -13582668.991 7 -10583890.178 6 21807779.535 21807778.546 21807778.445
+ 42.000 36.500
+ -7507537.270 5 -5850022.721 5 23033480.763 23033479.911 23033480.432
+ 32.800 30.100
+ -5672433.276 4 -4420073.766 4 23552928.354 23552927.583 23552928.440
+ 27.100 24.200
+ -3623017.487 5 -2823117.516 4 23744283.679 23744283.947 23744282.889
+ 31.500 26.500
+ 06 1 2 21 9 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -5891383.200 4 -4590682.831 4 23395699.606 23395699.878 23395698.555
+ 27.400 25.300
+ -19865920.010 7 -15479919.573 7 20660363.773 20660362.750 20660363.378
+ 47.100 44.000
+ -3571905.202 4 -2783299.637 3 24013362.956 24013358.763 24013361.811
+ 29.200 23.000
+ -7447676.518 6 -5803378.494 5 21950621.827 21950622.640 21950621.621
+ 38.500 34.000
+ -23602544.357 7 -18391579.834 8 20322086.081 20322082.736 20322085.396
+ 46.600 48.500
+ -7949683.808 5 -6194555.016 5 23209133.291 23209130.991 23209131.162
+ 34.800 31.800
+ -13580312.660 6 -10582054.069 6 21808227.500 21808226.987 21808226.453
+ 41.800 36.300
+ -7564230.557 5 -5894199.282 4 23022692.316 23022691.544 23022691.735
+ 32.600 28.800
+ -5727052.458 4 -4462634.119 3 23542534.335 23542534.261 23542534.480
+ 29.000 23.800
+ -3535906.962 4 -2755239.213 4 23760859.740 23760860.012 23760858.617
+ 29.900 25.300
+ 06 1 2 21 10 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6006199.378 4 -4680149.934 4 23373850.545 23373850.974 23373849.587
+ 28.400 24.600
+ -19819613.423 7 -15443836.519 7 20669175.565 20669174.650 20669175.169
+ 47.100 43.900
+ -3568723.468 4 -2780820.350 3 24013968.443 24013964.268 24013966.941
+ 29.900 23.000
+ -7374330.137 6 -5746225.498 5 21964581.442 21964579.923 21964579.710
+ 38.700 34.000
+ -23633376.241 7 -18415604.672 8 20316219.096 20316215.569 20316218.295
+ 46.600 48.400
+ -7854489.531 5 -6120377.673 5 23227247.020 23227245.534 23227245.202
+ 32.700 30.200
+ -13577349.948 6 -10579745.464 6 21808791.679 21808790.668 21808790.456
+ 41.900 36.500
+ -7620392.664 5 -5937961.942 4 23012004.568 23012004.178 23012004.215
+ 32.000 27.900
+ -5781205.266 4 -4504831.077 4 23532230.427 23532228.963 23532229.996
+ 28.800 24.200
+ -3448748.296 4 -2687323.379 3 23777445.513 23777445.458 23777444.727
+ 29.700 23.800
+ 06 1 2 21 10 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6120828.720 4 -4769471.413 4 23352037.507 23352037.707 23352036.492
+ 29.700 25.900
+ -19773012.594 7 -15407524.185 7 20678043.575 20678042.445 20678043.150
+ 47.200 43.800
+ -3564968.457 4 -2777894.346 3 24014682.554 24014678.643 24014681.439
+ 27.400 23.000
+ -7300676.108 6 -5688832.766 5 21978597.812 21978595.642 21978595.841
+ 38.000 33.800
+ -23663837.364 7 -18439340.606 8 20310422.448 20310419.037 20310421.651
+ 46.500 48.600
+ -7759081.275 5 -6046033.589 5 23245401.933 23245401.380 23245401.266
+ 33.600 31.300
+ -13573781.173 6 -10576964.589 6 21809470.898 21809469.886 21809469.689
+ 41.900 36.500
+ -7676021.832 5 -5981309.306 4 23001419.012 23001418.732 23001418.748
+ 33.200 28.600
+ -5834889.071 4 -4546662.592 3 23522014.854 23522013.462 23522014.211
+ 28.800 23.400
+ -3361542.641 5 -2619370.934 4 23794040.960 23794040.109 23794039.970
+ 30.800 24.200
+ 06 1 2 21 11 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6235268.762 4 -4858645.434 4 23330260.618 23330260.469 23330259.136
+ 28.100 24.600
+ -19726118.792 7 -15370983.563 7 20686967.318 20686966.135 20686966.837
+ 47.500 43.800
+ -3560640.099 4 -2774521.592 3 24015506.611 24015502.125 24015505.020
+ 27.100 23.000
+ -7226715.262 6 -5631200.973 5 21992670.898 21992670.262 21992669.751
+ 39.100 34.400
+ -23693927.450 7 -18462787.422 8 20304696.718 20304693.045 20304695.856
+ 46.800 48.700
+ -7663460.669 5 -5971524.003 5 23263597.719 23263597.016 23263597.472
+ 33.600 30.100
+ -13569606.722 6 -10573711.768 6 21810264.953 21810264.133 21810263.943
+ 41.800 36.400
+ -7731115.975 5 -6024239.785 4 22990934.661 22990934.522 22990934.395
+ 33.000 28.600
+ -5888101.205 4 -4588126.552 3 23511889.348 23511887.403 23511888.649
+ 29.200 23.000
+ -3274290.525 4 -2551382.279 4 23810643.882 23810644.000 23810642.819
+ 29.900 24.600
+ 06 1 2 21 11 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6349516.939 4 -4947669.909 4 23308519.294 23308519.770 23308518.128
+ 25.300 26.500
+ -19678933.156 7 -15334215.532 7 20695946.168 20695945.197 20695945.885
+ 47.500 43.700
+ -3555738.202 4 -2770701.913 3 24016439.017 24016435.255 24016437.987
+ 28.400 21.600
+ -7152448.505 6 -5573330.796 5 22006801.931 22006802.512 22006801.917
+ 38.900 34.000
+ -23723646.130 7 -18485944.831 8 20299041.323 20299037.803 20299040.597
+ 46.800 48.800
+ -7567628.821 5 -5896849.869 5 23281833.739 23281833.710 23281833.953
+ 33.800 32.300
+ -13564826.861 6 -10569987.194 6 21811174.692 21811173.603 21811173.546
+ 41.800 36.200
+ -7785673.278 5 -6066751.948 4 22980552.804 22980552.637 22980552.509
+ 33.100 29.500
+ -5940839.191 4 -4629221.028 4 23501852.311 23501851.607 23501852.575
+ 28.600 24.200
+ -3186993.006 5 -2483358.252 3 23827255.301 23827255.951 23827254.532
+ 30.100 22.100
+ 06 1 2 21 12 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6463570.773 4 -5036542.955 4 23286815.274 23286815.929 23286814.350
+ 29.700 26.500
+ -19631456.894 7 -15297221.042 7 20704980.651 20704979.662 20704980.306
+ 47.600 43.600
+ -3550262.415 4 -2766435.065 3 24017481.236 24017477.421 24017479.891
+ 27.600 23.800
+ -7077876.457 6 -5515222.719 5 22020993.033 22020993.491 22020992.589
+ 38.300 34.100
+ -23752993.713 7 -18508813.073 8 20293456.574 20293453.113 20293455.818
+ 46.900 48.800
+ -7471586.992 5 -5822012.081 4 23300109.991 23300109.259 23300110.075
+ 33.800 29.000
+ -13559442.027 6 -10565791.217 6 21812199.278 21812198.319 21812198.144
+ 41.900 36.400
+ -7839691.986 5 -6108844.407 5 22970273.672 22970273.181 22970273.174
+ 33.200 30.100
+ -5993100.477 4 -4669944.057 3 23491907.334 23491906.171 23491907.136
+ 28.600 22.600
+ -3099650.944 4 -2415299.499 3 23843876.119 23843876.152 23843875.230
+ 29.200 19.900
+ 06 1 2 21 12 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6577427.878 4 -5125262.708 4 23265149.212 23265149.546 23265148.153
+ 29.000 25.600
+ -19583691.549 7 -15260001.292 7 20714070.133 20714069.133 20714069.775
+ 47.600 43.700
+ -3544212.375 4 -2761720.749 4 24018632.334 24018628.773 24018631.255
+ 27.100 25.300
+ -7003000.125 6 -5456877.556 5 22035243.313 22035241.845 22035241.411
+ 37.400 34.100
+ -23781969.713 7 -18531391.772 8 20287942.735 20287939.106 20287941.960
+ 46.900 48.700
+ -7375336.374 5 -5747011.603 4 23318425.525 23318425.316 23318426.291
+ 33.500 29.900
+ -13553452.693 6 -10561124.197 6 21813338.921 21813338.249 21813337.839
+ 41.600 36.500
+ -7893170.129 5 -6150515.661 4 22960096.788 22960096.383 22960096.385
+ 32.800 29.900
+ -6044882.609 4 -4710293.689 4 23482054.898 23482052.911 23482054.032
+ 29.900 25.600
+ -3012265.186 4 -2347206.686 3 23860505.474 23860505.703 23860504.587
+ 29.700 23.000
+ 06 1 2 21 13 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6691085.771 4 -5213827.206 4 23243520.518 23243521.405 23243519.561
+ 29.700 27.100
+ -19535638.009 7 -15222556.974 7 20723214.509 20723213.351 20723214.129
+ 47.600 43.600
+ -3537588.055 4 -2756558.963 4 24019892.910 24019889.083 24019891.947
+ 28.100 24.600
+ -6927820.336 6 -5398295.936 5 22049550.080 22049548.180 22049547.932
+ 38.000 34.300
+ -23810573.893 7 -18553680.744 8 20282499.635 20282495.946 20282498.836
+ 47.000 48.800
+ -7278878.203 5 -5671849.408 5 23336780.177 23336780.866 23336781.047
+ 32.600 30.800
+ -13546859.189 6 -10555986.389 6 21814593.791 21814592.974 21814592.689
+ 41.900 36.500
+ -7946105.948 5 -6191764.308 4 22950023.513 22950023.167 22950023.194
+ 33.800 29.900
+ -6096183.209 4 -4750268.137 4 23472292.199 23472290.538 23472291.426
+ 29.000 24.200
+ -2924836.301 4 -2279080.284 3 23877142.649 23877142.535 23877141.791
+ 29.000 22.600
+ 06 1 2 21 13 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6804541.782 4 -5302234.414 4 23221930.912 23221930.765 23221929.568
+ 28.400 24.200
+ -19487297.401 7 -15184888.967 7 20732413.425 20732412.315 20732413.054
+ 47.300 43.500
+ -3530389.628 4 -2750949.793 3 24021263.199 24021258.600 24021262.052
+ 28.800 23.000
+ -6852337.961 6 -5339478.525 5 22063911.715 22063912.041 22063911.226
+ 38.100 34.100
+ -23838806.513 7 -18575680.189 8 20277127.328 20277123.534 20277126.430
+ 47.000 49.000
+ -7182213.660 5 -5596526.403 5 23355176.245 23355175.632 23355176.186
+ 35.300 30.400
+ -13539662.099 6 -10550378.258 6 21815963.243 21815962.672 21815962.191
+ 41.800 37.000
+ -7998497.584 5 -6232588.936 4 22940053.282 22940053.319 22940053.072
+ 33.500 29.000
+ -6146999.650 4 -4789865.298 4 23462620.636 23462620.124 23462621.004
+ 28.400 24.600
+ -2837365.157 4 -2210920.943 3 23893787.796 23893788.142 23893786.783
+ 27.900 23.400
+ 06 1 2 21 14 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -6917793.450 4 -5390482.402 4 23200379.256 23200379.480 23200378.172
+ 27.900 24.900
+ -19438671.335 7 -15146998.526 7 20741666.703 20741665.569 20741666.270
+ 47.500 43.500
+ -3522616.500 4 -2744892.828 3 24022741.860 24022737.667 24022740.917
+ 28.600 22.100
+ -6776553.926 6 -5280426.044 5 22078331.972 22078333.325 22078332.370
+ 37.900 33.600
+ -23866667.022 7 -18597389.674 8 20271825.599 20271821.822 20271824.736
+ 47.000 49.000
+ -7085343.836 5 -5521043.404 4 23373609.622 23373609.068 23373609.263
+ 31.100 29.700
+ -13531861.809 6 -10544300.110 6 21817447.781 21817447.078 21817446.492
+ 41.500 37.000
+ -8050343.323 5 -6272988.188 4 22930187.432 22930186.981 22930187.161
+ 33.200 28.800
+ -6197329.348 4 -4829083.190 4 23453043.474 23453042.724 23453043.547
+ 29.900 24.600
+ -2749852.672 4 -2142729.420 3 23910441.041 23910440.962 23910439.998
+ 29.500 21.100
+ 06 1 2 21 14 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7030838.376 4 -5478569.260 4 23178867.285 23178868.189 23178866.357
+ 27.400 26.200
+ -19389760.819 7 -15108886.437 7 20750973.893 20750972.979 20750973.560
+ 47.500 43.600
+ -3514268.727 4 -2738388.025 3 24024331.001 24024326.058 24024329.294
+ 28.800 20.500
+ -6700469.017 6 -5221139.123 5 22092812.388 22092811.787 22092811.027
+ 37.500 33.200
+ -23894155.396 7 -18618809.183 8 20266594.569 20266590.884 20266593.836
+ 47.300 48.900
+ -6988270.115 5 -5445401.560 4 23392081.155 23392081.296 23392081.132
+ 30.400 29.500
+ -13523458.928 7 -10537752.399 6 21819046.842 21819046.109 21819045.701
+ 42.000 37.100
+ -8101641.382 5 -6312960.666 4 22920425.680 22920425.443 22920425.403
+ 32.700 28.800
+ -6247170.132 4 -4867920.134 4 23443559.925 23443558.482 23443559.495
+ 29.500 24.900
+ -2662299.536 5 -2074506.193 3 23927102.266 23927101.480 23927101.398
+ 30.600 22.100
+ 06 1 2 21 15 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7143674.066 4 -5566493.066 4 23157395.555 23157396.669 23157394.286
+ 28.400 28.600
+ -19340567.075 7 -15070553.648 7 20760335.323 20760334.133 20760334.912
+ 47.500 43.400
+ -3505346.143 4 -2731435.363 3 24026027.868 24026024.386 24026027.126
+ 27.900 21.100
+ -6624084.078 6 -5161618.429 5 22107349.247 22107347.337 22107347.054
+ 37.200 33.500
+ -23921271.301 7 -18639938.460 8 20261434.763 20261430.905 20261433.932
+ 47.200 48.900
+ -6890993.608 5 -5369601.692 5 23410593.313 23410593.182 23410593.249
+ 32.800 31.500
+ -13514454.034 6 -10530735.598 6 21820760.246 21820759.470 21820759.178
+ 41.500 36.600
+ -8152390.007 5 -6352505.036 4 22910768.527 22910768.479 22910768.412
+ 33.200 29.000
+ -6296519.403 4 -4906374.072 3 23434169.594 23434167.442 23434168.842
+ 29.900 23.800
+ -2574706.552 4 -2006251.935 3 23943770.296 23943769.614 23943769.485
+ 29.200 21.100
+ 06 1 2 21 15 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7256298.102 4 -5654251.976 4 23135963.764 23135964.362 23135962.628
+ 28.800 27.600
+ -19291091.369 7 -15032001.151 7 20769750.028 20769748.984 20769749.749
+ 47.500 43.400
+ -3495848.861 4 -2724034.861 3 24027836.345 24027831.461 24027834.906
+ 29.000 20.500
+ -6547400.092 6 -5101864.678 5 22121940.620 22121939.337 22121939.284
+ 37.200 32.300
+ -23948014.615 7 -18660777.403 8 20256345.613 20256341.816 20256344.811
+ 47.300 49.000
+ -6793515.376 5 -5293644.670 5 23429143.020 23429142.310 23429142.195
+ 32.000 30.100
+ -13504847.632 6 -10523250.080 6 21822588.446 21822587.253 21822587.267
+ 41.700 36.500
+ -8202587.475 5 -6391619.909 4 22901215.788 22901215.864 22901215.750
+ 32.800 28.600
+ -6345374.699 4 -4944443.109 3 23424871.590 23424870.245 23424871.310
+ 29.500 23.400
+ -2487074.696 5 -1937967.355 3 23960446.127 23960445.721 23960445.429
+ 31.000 21.600
+ 06 1 2 21 16 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7368708.038 4 -5741844.019 4 23114572.581 23114573.468 23114571.482
+ 28.800 27.600
+ -19241334.806 7 -14993229.803 7 20779218.545 20779217.330 20779218.154
+ 47.500 43.300
+ -3485776.851 4 -2716186.536 3 24029752.507 24029748.280 24029751.332
+ 28.800 23.400
+ -6470418.039 6 -5041878.686 5 22136589.387 22136589.278 22136588.409
+ 37.000 33.100
+ -23974385.340 7 -18681326.011 8 20251327.302 20251323.625 20251326.528
+ 47.100 49.100
+ -6695837.004 5 -5217531.666 5 23447731.775 23447730.327 23447730.391
+ 32.100 31.600
+ -13494640.392 6 -10515296.392 6 21824530.591 21824529.766 21824529.488
+ 41.700 36.100
+ -8252231.985 5 -6430303.933 5 22891769.336 22891769.098 22891769.007
+ 33.500 30.400
+ -6393733.703 4 -4982125.402 4 23415668.605 23415667.604 23415668.829
+ 28.800 24.200
+ -2399404.695 5 -1869653.079 3 23977129.327 23977129.733 23977128.501
+ 30.400 23.800
+ 06 1 2 21 16 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7480901.211 4 -5829267.190 4 23093223.136 23093223.852 23093221.850
+ 28.800 28.100
+ -19191298.752 7 -14954240.672 7 20788739.918 20788739.041 20788739.590
+ 47.400 43.400
+ -3475130.092 4 -2707890.381 3 24031778.200 24031774.257 24031776.970
+ 27.600 23.400
+ -6393138.837 6 -4981661.149 5 22151294.565 22151294.545 22151293.928
+ 37.200 32.600
+ -24000383.225 7 -18701584.097 8 20246379.951 20246376.387 20246379.198
+ 47.100 49.100
+ -6597959.676 5 -5141263.622 5 23466357.014 23466355.468 23466356.023
+ 33.200 30.600
+ -13483832.837 6 -10506874.919 6 21826587.444 21826586.279 21826586.303
+ 41.800 36.000
+ -8301321.954 5 -6468555.836 4 22882428.119 22882427.047 22882427.581
+ 32.800 28.800
+ -6441593.957 5 -5019419.067 3 23406561.929 23406560.398 23406561.810
+ 30.200 23.800
+ -2311697.350 4 -1801309.693 4 23993819.010 23993819.496 23993818.246
+ 29.500 24.200
+ 06 1 2 21 17 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7592875.424 4 -5916519.737 4 23071914.858 23071915.403 23071913.794
+ 29.500 27.400
+ -19140984.212 7 -14915034.537 7 20798314.596 20798313.607 20798314.145
+ 47.400 43.400
+ -3463908.340 4 -2699146.155 3 24033913.134 24033909.602 24033912.239
+ 27.600 21.600
+ -6315563.271 6 -4921212.687 5 22166057.159 22166057.008 22166056.268
+ 37.600 33.000
+ -24026008.138 7 -18721551.555 8 20241503.742 20241500.042 20241503.047
+ 47.400 49.100
+ -6499884.452 4 -5064841.429 5 23485018.714 23485019.000 23485018.535
+ 29.500 31.800
+ -13472425.678 6 -10497986.221 6 21828758.046 21828756.970 21828756.841
+ 41.500 36.100
+ -8349855.618 5 -6506374.251 4 22873192.369 22873191.729 22873192.097
+ 33.800 29.900
+ -6488953.108 4 -5056322.291 3 23397550.189 23397548.760 23397549.464
+ 29.200 23.000
+ -2223953.361 5 -1732937.767 4 24010516.942 24010516.282 24010515.971
+ 30.100 24.200
+ 06 1 2 21 17 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7704627.969 5 -6003599.540 4 23050649.183 23050649.651 23050647.957
+ 30.400 27.400
+ -19090392.454 7 -14875612.388 7 20807941.879 20807940.960 20807941.470
+ 47.400 43.300
+ -3452112.069 4 -2689954.230 3 24036158.697 24036154.821 24036157.189
+ 27.900 23.400
+ -6237692.385 6 -4860534.107 5 22180875.969 22180875.164 22180874.705
+ 37.200 32.100
+ -24051260.003 7 -18741228.325 8 20236698.616 20236694.725 20236697.835
+ 47.400 49.100
+ -6401613.011 5 -4988266.319 4 23503720.081 23503718.926 23503719.026
+ 30.800 29.200
+ -13460419.531 6 -10488630.780 6 21831042.582 21831041.622 21831041.543
+ 41.200 36.000
+ -8397831.335 5 -6543757.876 5 22864062.133 22864062.257 22864062.080
+ 33.200 30.400
+ -6535808.888 5 -5092833.272 4 23388633.290 23388632.101 23388633.053
+ 30.200 24.200
+ -2136173.389 4 -1664537.767 3 24027220.283 24027220.369 24027219.564
+ 27.900 23.800
+ 06 1 2 21 18 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7816156.492 4 -6090504.810 4 23029425.813 23029426.543 23029424.580
+ 28.800 27.400
+ -19039524.922 7 -14835975.349 7 20817621.770 20817620.781 20817621.340
+ 47.400 43.400
+ -3439741.075 4 -2680314.477 3 24038512.102 24038508.129 24038511.273
+ 28.100 19.300
+ -6159527.094 6 -4799626.126 5 22195751.098 22195749.629 22195749.209
+ 36.800 32.100
+ -24076138.464 7 -18760614.128 8 20231964.460 20231960.653 20231963.607
+ 47.200 49.300
+ -6303146.295 5 -4911539.009 4 23522458.271 23522456.557 23522457.045
+ 32.400 29.900
+ -13447815.082 6 -10478809.124 6 21833441.151 21833440.293 21833440.024
+ 41.300 36.500
+ -8445247.482 5 -6580705.503 5 22855039.412 22855039.467 22855039.196
+ 33.000 31.000
+ -6582159.049 4 -5128950.267 3 23379812.739 23379811.336 23379812.884
+ 29.900 23.800
+ -2048358.111 5 -1596110.307 4 24043931.507 24043931.334 24043930.742
+ 30.100 24.900
+ 06 1 2 21 18 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -7927458.526 4 -6177233.613 4 23008245.728 23008246.411 23008244.747
+ 29.900 28.800
+ -18988382.355 7 -14796123.995 7 20827353.867 20827352.806 20827353.460
+ 47.400 43.300
+ -3426795.458 4 -2670226.965 3 24040976.358 24040971.584 24040975.234
+ 29.500 20.500
+ -6081068.363 6 -4738489.487 5 22210680.494 22210679.611 22210679.201
+ 36.600 31.600
+ -24100643.732 7 -18779709.128 8 20227301.269 20227297.523 20227300.495
+ 47.300 49.400
+ -6204485.244 5 -4834660.273 4 23541232.550 23541230.945 23541231.630
+ 31.100 28.100
+ -13434613.131 6 -10468521.890 6 21835953.551 21835952.634 21835952.355
+ 41.300 36.500
+ -8492102.551 5 -6617215.916 5 22846123.635 22846123.076 22846123.097
+ 33.800 31.300
+ -6628001.188 4 -5164671.383 4 23371089.515 23371088.143 23371089.549
+ 29.900 24.600
+ -1960508.378 4 -1527655.964 4 24060647.931 24060649.067 24060647.255
+ 29.500 25.300
+ 06 1 2 21 19 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8038531.716 4 -6263784.068 4 22987109.398 22987109.431 22987108.194
+ 29.000 27.400
+ -18936966.368 7 -14756059.589 7 20837137.706 20837136.958 20837137.392
+ 47.200 43.100
+ -3413275.320 4 -2659691.739 3 24043548.527 24043544.497 24043547.209
+ 27.100 20.500
+ -6002317.107 6 -4677124.919 5 22225665.241 22225665.752 22225664.895
+ 36.500 32.100
+ -24124775.531 7 -18798513.116 8 20222708.992 20222705.332 20222708.218
+ 47.400 49.500
+ -6105631.506 5 -4757631.392 5 23560043.242 23560042.495 23560042.691
+ 31.300 30.100
+ -13420814.334 6 -10457769.574 6 21838579.335 21838578.747 21838578.227
+ 41.700 37.000
+ -8538394.812 5 -6653287.782 5 22837314.656 22837313.735 22837314.148
+ 34.400 30.400
+ -6673332.864 5 -5199994.740 4 23362463.388 23362462.315 23362462.837
+ 30.200 25.900
+ -1872625.251 4 -1459175.599 3 24077372.431 24077371.534 24077371.422
+ 28.400 22.100
+ 06 1 2 21 19 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8149373.722 5 -6350154.389 4 22966016.766 22966016.839 22966015.662
+ 30.400 27.400
+ -18885277.902 7 -14715782.861 7 20846973.990 20846972.818 20846973.506
+ 47.200 42.900
+ -3399181.046 4 -2648709.191 3 24046231.116 24046226.791 24046229.677
+ 29.000 22.100
+ -5923274.455 6 -4615533.277 5 22240706.911 22240707.109 22240706.537
+ 36.700 31.600
+ -24148533.785 7 -18817026.030 8 20218187.843 20218184.263 20218187.076
+ 47.200 49.500
+ -6006586.339 5 -4680453.362 4 23578891.711 23578890.104 23578890.452
+ 32.000 27.600
+ -13406419.527 6 -10446552.841 6 21841318.562 21841317.961 21841317.467
+ 41.600 37.000
+ -8584122.729 5 -6688919.877 5 22828612.086 22828612.057 22828611.994
+ 34.700 30.400
+ -6718151.840 4 -5234918.592 4 23353935.158 23353933.169 23353934.492
+ 29.700 25.300
+ -1784709.179 4 -1390669.590 3 24094101.457 24094102.029 24094100.458
+ 26.800 22.600
+ 06 1 2 21 20 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8259981.893 5 -6436342.530 4 22944968.578 22944969.003 22944967.438
+ 30.600 29.000
+ -18833318.185 7 -14675294.766 7 20856861.634 20856860.529 20856861.154
+ 47.200 42.900
+ -3384512.859 4 -2637279.414 3 24049021.969 24049017.945 24049020.981
+ 29.000 22.100
+ -5843941.235 6 -4553715.228 5 22255805.226 22255804.132 22255803.571
+ 36.200 32.400
+ -24171918.446 7 -18835247.836 8 20213737.838 20213734.246 20213737.114
+ 47.100 49.500
+ -5907351.098 5 -4603127.230 4 23597774.148 23597774.230 23597773.667
+ 31.000 28.600
+ -13391429.390 6 -10434872.209 6 21844171.055 21844170.457 21844169.969
+ 41.500 37.200
+ -8629284.835 5 -6724111.098 5 22820018.007 22820018.126 22820017.932
+ 34.300 31.000
+ -6762456.118 4 -5269441.373 4 23345502.941 23345502.263 23345503.071
+ 29.200 25.600
+ -1696760.983 4 -1322138.519 3 24110837.697 24110837.724 24110836.760
+ 25.900 21.600
+ 06 1 2 21 20 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8370353.737 5 -6522346.517 4 22923965.574 22923965.756 22923964.459
+ 31.500 28.100
+ -18781088.566 7 -14634596.352 7 20866800.313 20866799.446 20866799.979
+ 47.200 43.000
+ -3369270.940 4 -2625402.575 3 24051922.706 24051918.243 24051921.275
+ 28.600 21.100
+ -5764318.279 6 -4491671.410 5 22270957.506 22270955.558 22270955.619
+ 36.500 32.300
+ -24194929.234 7 -18853178.308 8 20209359.052 20209355.450 20209358.275
+ 47.100 49.700
+ -5807926.882 4 -4525653.829 4 23616694.873 23616693.070 23616693.849
+ 29.200 26.800
+ -13375844.944 6 -10422728.478 6 21847136.834 21847135.997 21847135.743
+ 41.700 36.700
+ -8673879.492 5 -6758860.159 5 22811532.868 22811531.935 22811532.324
+ 34.100 31.300
+ -6806243.318 4 -5303561.217 4 23337170.098 23337169.689 23337170.270
+ 29.700 24.900
+ -1608781.370 4 -1253582.972 3 24127579.959 24127580.023 24127578.887
+ 27.900 21.100
+ 06 1 2 21 21 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8480486.795 4 -6608164.433 4 22903007.304 22903007.818 22903006.194
+ 29.000 28.400
+ -18728589.885 7 -14593688.282 7 20876790.588 20876789.665 20876790.243
+ 47.400 42.800
+ -3353455.085 4 -2613078.515 3 24054931.998 24054928.091 24054930.755
+ 27.900 22.100
+ -5684406.919 6 -4429402.863 5 22286162.286 22286162.434 22286161.666
+ 36.400 32.700
+ -24217566.173 7 -18870817.470 8 20205051.396 20205047.839 20205050.643
+ 47.300 49.700
+ -5708315.094 5 -4448034.279 4 23635650.785 23635649.331 23635649.673
+ 32.100 28.600
+ -13359666.934 6 -10410122.237 6 21850215.483 21850214.335 21850214.278
+ 41.400 36.400
+ -8717905.275 5 -6793165.931 5 22803154.803 22803154.185 22803154.229
+ 34.400 31.300
+ -6849511.154 5 -5337276.396 4 23328938.156 23328936.291 23328937.530
+ 30.800 25.900
+ -1520771.139 4 -1185003.576 3 24144327.566 24144327.718 24144326.724
+ 28.400 21.100
+ 06 1 2 21 21 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8590378.801 5 -6693794.530 4 22882096.075 22882096.242 22882094.886
+ 31.000 28.600
+ -18675823.613 7 -14552571.697 7 20886831.717 20886830.714 20886831.321
+ 47.400 42.700
+ -3337065.602 4 -2600307.463 3 24058050.564 24058046.869 24058049.179
+ 27.400 19.900
+ -5604207.961 6 -4366910.217 5 22301422.419 22301423.684 22301422.950
+ 36.600 32.000
+ -24239829.020 7 -18888165.134 8 20200815.029 20200811.350 20200814.200
+ 47.300 49.900
+ -5608517.035 5 -4370269.525 4 23654640.850 23654639.987 23654640.074
+ 30.400 27.600
+ -13342896.223 6 -10397054.148 6 21853406.703 21853405.627 21853405.516
+ 41.400 36.400
+ -8761360.661 5 -6827027.246 5 22794885.375 22794884.759 22794884.982
+ 34.400 31.300
+ -6892257.522 5 -5370585.230 4 23320804.216 23320802.369 23320803.509
+ 31.000 26.200
+ -1432731.221 4 -1116401.052 3 24161080.665 24161080.637 24161079.864
+ 26.500 21.600
+ 06 1 2 21 22 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8700027.168 4 -6779234.797 4 22861230.393 22861231.080 22861229.114
+ 29.900 29.900
+ -18622790.913 7 -14511247.510 7 20896923.587 20896922.400 20896923.161
+ 47.400 42.600
+ -3320103.176 4 -2587089.971 3 24061278.582 24061274.679 24061277.882
+ 28.600 21.100
+ -5523722.453 6 -4304194.252 5 22316740.241 22316739.505 22316738.967
+ 36.500 31.500
+ -24261717.742 7 -18905221.266 8 20196649.516 20196646.060 20196648.837
+ 47.100 49.900
+ -5508533.961 5 -4292360.682 4 23673667.538 23673666.553 23673667.094
+ 31.600 28.400
+ -13325533.717 6 -10383524.922 6 21856710.496 21856709.600 21856709.378
+ 40.800 36.400
+ -8804244.177 5 -6860442.949 5 22786724.361 22786724.434 22786724.158
+ 34.100 31.000
+ -6934480.183 4 -5403485.966 4 23312768.144 23312766.791 23312767.873
+ 29.700 24.600
+ -1344662.202 4 -1047775.828 3 24177840.389 24177840.166 24177839.442
+ 27.400 21.100
+ 06 1 2 21 22 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8809429.712 5 -6864483.494 4 22840411.861 22840412.181 22840410.777
+ 30.600 28.400
+ -18569492.946 7 -14469716.621 7 20907065.590 20907064.823 20907065.321
+ 47.500 42.500
+ -3302567.752 4 -2573425.983 3 24064615.363 24064611.515 24064614.244
+ 26.500 22.100
+ -5442951.316 5 -4241255.745 5 22332112.329 22332109.738 22332109.990
+ 35.900 31.600
+ -24283232.311 7 -18921985.856 8 20192555.413 20192552.003 20192554.643
+ 47.000 50.000
+ -5408367.258 5 -4214308.745 5 23692728.702 23692727.937 23692727.942
+ 30.200 30.600
+ -13307580.367 6 -10369535.299 5 21860126.850 21860125.741 21860125.736
+ 40.900 35.800
+ -8846554.274 5 -6893411.831 5 22778673.052 22778672.892 22778672.789
+ 34.800 31.300
+ -6976177.009 5 -5435976.973 4 23304833.929 23304831.906 23304833.775
+ 31.000 24.900
+ -1256564.817 4 -979128.540 3 24194604.682 24194604.823 24194603.644
+ 27.600 22.100
+ 06 1 2 21 23 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -8918583.898 5 -6949538.675 4 22819640.538 22819640.560 22819639.167
+ 31.000 27.400
+ -18515930.721 7 -14427979.820 7 20917258.290 20917257.277 20917257.927
+ 47.400 42.200
+ -3284459.700 4 -2559315.803 3 24068061.392 24068057.266 24068059.628
+ 26.800 23.800
+ -5361895.648 5 -4178095.530 5 22347536.874 22347534.507 22347534.350
+ 34.900 32.300
+ -24304372.542 7 -18938458.749 8 20188532.714 20188529.142 20188531.881
+ 47.100 50.000
+ -5308018.115 4 -4136114.661 4 23711823.410 23711823.463 23711823.555
+ 29.200 28.800
+ -13289037.104 6 -10355086.000 5 21863655.432 21863654.467 21863654.358
+ 41.000 35.800
+ -8888289.669 5 -6925932.912 5 22770731.721 22770730.632 22770731.290
+ 35.300 31.000
+ -7017346.029 5 -5468056.693 4 23296999.360 23296998.543 23296999.207
+ 30.100 26.500
+ -1168439.347 4 -910459.328 3 24211373.540 24211374.150 24211372.635
+ 26.500 23.000
+ 06 1 2 21 23 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9027487.236 5 -7034398.423 4 22798917.145 22798917.049 22798915.859
+ 31.300 28.600
+ -18462105.511 7 -14386038.093 7 20927500.682 20927499.891 20927500.403
+ 47.500 42.100
+ -3265779.525 4 -2544759.834 3 24071615.572 24071612.141 24071614.537
+ 26.500 21.600
+ -5280556.478 5 -4114714.409 5 22363013.098 22363012.700 22363011.973
+ 35.300 31.500
+ -24325138.289 7 -18954639.841 8 20184581.169 20184577.479 20184580.326
+ 47.300 49.900
+ -5207487.940 5 -4057779.477 4 23730953.469 23730953.591 23730953.519
+ 30.200 26.800
+ -13269904.839 6 -10340177.740 5 21867296.189 21867295.391 21867295.158
+ 41.200 35.600
+ -8929448.949 5 -6958005.048 5 22762899.202 22762898.653 22762898.793
+ 34.900 31.300
+ -7057984.806 4 -5499723.250 4 23289266.120 23289265.236 23289265.600
+ 29.900 25.600
+ -1080286.628 4 -841768.906 3 24228149.341 24228148.707 24228148.425
+ 27.900 19.900
+ 06 1 2 21 24 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9136137.484 5 -7119060.923 4 22778241.541 22778241.885 22778240.415
+ 32.300 29.000
+ -18408018.689 7 -14343892.515 7 20937793.385 20937792.213 20937792.938
+ 47.300 42.100
+ -3246527.464 4 -2529758.187 3 24075279.919 24075275.652 24075278.622
+ 28.400 20.500
+ -5198934.836 5 -4051113.137 5 22378543.264 22378544.670 22378544.030
+ 35.700 30.800
+ -24345529.610 7 -18970529.168 8 20180700.921 20180697.095 20180700.012
+ 47.300 50.000
+ -5106777.585 4 -3979303.900 4 23750118.334 23750117.871 23750118.149
+ 29.900 26.800
+ -13250184.650 6 -10324811.357 6 21871049.145 21871048.299 21871047.994
+ 41.400 36.400
+ -8970030.668 5 -6989627.158 5 22755176.769 22755176.183 22755176.389
+ 34.900 31.000
+ -7098091.444 5 -5530975.171 4 23281634.313 23281632.581 23281634.250
+ 31.300 25.900
+ -992107.638 4 -773058.004 3 24244928.463 24244928.978 24244927.575
+ 27.400 19.900
+ 06 1 2 21 24 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9244532.212 5 -7203524.316 4 22757614.925 22757614.673 22757613.587
+ 32.400 29.000
+ -18353671.147 7 -14301543.782 6 20948135.404 20948134.088 20948134.891
+ 47.100 41.900
+ -3226703.999 4 -2514311.347 3 24079051.488 24079047.567 24079050.399
+ 25.600 20.500
+ -5117031.883 5 -3987292.663 5 22394130.169 22394130.191 22394129.776
+ 35.400 30.600
+ -24365546.230 7 -18986126.527 8 20176891.820 20176888.054 20176891.088
+ 47.400 49.900
+ -5005888.793 5 -3900689.248 4 23769317.594 23769317.112 23769317.247
+ 30.600 27.400
+ -13229877.579 6 -10308987.673 6 21874913.863 21874912.881 21874912.687
+ 41.800 36.500
+ -9010033.560 5 -7020798.230 4 22747564.026 22747563.427 22747563.730
+ 33.800 29.200
+ -7137663.944 5 -5561810.871 4 23274103.360 23274102.387 23274103.429
+ 30.200 26.500
+ -903902.848 4 -704326.968 3 24261713.070 24261713.509 24261712.397
+ 28.100 19.900
+ 06 1 2 21 25 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9352668.910 5 -7287786.651 4 22737036.971 22737037.156 22737036.019
+ 32.400 28.800
+ -18299064.294 7 -14258992.978 6 20958526.496 20958525.471 20958526.092
+ 46.900 41.800
+ -3206309.405 4 -2498419.433 3 24082933.015 24082928.973 24082931.590
+ 28.400 21.600
+ -5034848.624 5 -3923253.784 5 22409771.646 22409769.325 22409769.408
+ 34.800 30.400
+ -24385188.279 7 -19001432.008 8 20173153.904 20173150.270 20173153.182
+ 47.300 50.000
+ -4904822.800 4 -3821936.537 4 23788549.295 23788548.690 23788548.791
+ 28.600 25.600
+ -13208984.609 6 -10292707.447 6 21878889.253 21878888.767 21878888.228
+ 41.100 36.700
+ -9049456.261 5 -7051517.199 5 22740062.176 22740061.895 22740061.909
+ 34.500 30.600
+ -7176700.099 5 -5592228.620 4 23266675.871 23266674.433 23266675.421
+ 31.100 26.800
+ -815672.761 4 -635576.280 3 24278502.183 24278503.562 24278501.594
+ 27.400 22.100
+ 06 1 2 21 25 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9460545.229 5 -7371846.087 5 22716508.336 22716509.331 22716507.489
+ 32.400 31.100
+ -18244199.027 7 -14216240.821 6 20968967.070 20968965.984 20968966.604
+ 46.800 41.800
+ -3185344.253 4 -2482082.953 4 24086922.351 24086919.151 24086921.165
+ 27.900 24.900
+ -4952386.130 5 -3858997.342 5 22425463.314 22425461.471 22425461.302
+ 34.300 30.800
+ -24404455.811 7 -19016445.660 8 20169487.449 20169483.849 20169486.669
+ 47.300 50.000
+ -4803581.084 5 -3743046.906 4 23807814.966 23807815.019 23807815.134
+ 30.100 28.400
+ -13187506.800 6 -10275971.499 6 21882976.370 21882975.883 21882975.216
+ 41.200 36.900
+ -9088297.390 5 -7081782.983 5 22732670.813 22732670.653 22732670.434
+ 34.000 30.800
+ -7215197.856 5 -5622226.870 4 23259349.807 23259347.919 23259349.322
+ 31.000 26.200
+ -727418.208 4 -566806.488 3 24295298.116 24295297.610 24295296.943
+ 28.400 21.100
+ 06 1 2 21 26 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9568158.775 5 -7455700.782 5 22696031.042 22696031.018 22696029.537
+ 32.300 31.300
+ -18189076.679 7 -14173288.337 6 20979456.728 20979455.454 20979456.186
+ 46.800 41.900
+ -3163808.893 4 -2465302.153 3 24091020.127 24091016.423 24091019.227
+ 28.100 21.600
+ -4869645.385 5 -3794524.065 5 22441206.639 22441206.271 22441205.822
+ 34.900 30.100
+ -24423348.595 7 -19031167.300 8 20165892.293 20165888.688 20165891.444
+ 47.200 50.100
+ -4702164.786 4 -3664021.281 4 23827112.383 23827113.543 23827113.795
+ 26.500 26.800
+ -13165445.284 6 -10258780.702 6 21887174.138 21887173.851 21887173.086
+ 40.900 36.500
+ -9126555.652 5 -7111594.615 5 22725390.585 22725390.498 22725390.196
+ 34.300 31.300
+ -7253155.534 4 -5651804.285 4 23252126.178 23252124.968 23252125.900
+ 29.900 26.500
+ -639140.045 4 -498018.297 3 24312096.296 24312096.234 24312095.274
+ 25.900 20.500
+ 06 1 2 21 26 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9675507.096 5 -7539348.783 4 22675602.789 22675603.094 22675601.607
+ 32.000 29.500
+ -18133698.284 7 -14130136.341 6 20989994.736 20989993.659 20989994.298
+ 47.000 41.800
+ -3141703.932 4 -2448077.521 4 24095226.713 24095223.452 24095225.579
+ 27.100 24.900
+ -4786627.607 5 -3729834.907 5 22457002.510 22457004.629 22457003.446
+ 34.900 31.300
+ -24441866.753 7 -19045597.024 8 20162368.169 20162364.746 20162367.458
+ 47.400 50.000
+ -4600575.472 4 -3584860.834 4 23846444.006 23846445.419 23846445.709
+ 27.900 27.900
+ -13142801.162 6 -10241135.934 6 21891483.035 21891482.855 21891481.976
+ 41.000 36.000
+ -9164229.819 5 -7140951.101 5 22718221.336 22718221.228 22718221.165
+ 34.900 30.800
+ -7290571.019 5 -5680959.174 4 23245006.582 23245005.688 23245006.310
+ 30.800 27.600
+ -550838.913 4 -429212.235 3 24328898.818 24328899.918 24328898.076
+ 25.300 22.100
+ 06 1 2 21 27 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9782587.699 5 -7622788.168 5 22655225.720 22655226.242 22655224.759
+ 31.800 30.100
+ -18078064.936 7 -14086785.682 6 21000581.343 21000580.287 21000580.905
+ 47.000 41.700
+ -3119030.039 4 -2430409.554 3 24099541.506 24099537.794 24099540.468
+ 26.800 22.600
+ -4703333.739 5 -3664930.619 5 22472853.991 22472854.638 22472853.609
+ 34.800 31.000
+ -24460009.945 7 -19059734.567 8 20158915.715 20158912.088 20158915.053
+ 47.400 50.000
+ -4498814.348 4 -3505566.478 4 23865809.475 23865809.724 23865810.354
+ 29.200 26.800
+ -13119575.576 6 -10223038.076 6 21895902.891 21895902.490 21895901.876
+ 40.900 36.400
+ -9201318.716 5 -7169851.523 5 22711163.582 22711163.436 22711163.543
+ 34.800 31.800
+ -7327442.380 5 -5709690.098 4 23237990.319 23237989.051 23237989.810
+ 30.400 27.400
+ -462515.456 4 -360388.763 3 24345707.155 24345707.194 24345706.249
+ 26.500 20.500
+ 06 1 2 21 27 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9889398.359 5 -7706017.192 4 22634900.591 22634900.676 22634899.261
+ 32.000 29.700
+ -18022177.926 7 -14043237.362 6 21011216.247 21011215.219 21011215.861
+ 46.900 41.800
+ -3095787.211 4 -2412298.256 3 24103964.515 24103960.595 24103963.371
+ 27.600 23.000
+ -4619764.995 5 -3599812.136 5 22488758.542 22488757.396 22488756.636
+ 33.600 30.600
+ -24477777.983 7 -19073579.785 8 20155534.587 20155530.906 20155533.865
+ 47.400 50.000
+ -4396882.830 4 -3426139.358 4 23885206.376 23885206.896 23885207.312
+ 29.700 27.400
+ -13095769.701 6 -10204488.049 6 21900433.213 21900432.595 21900432.087
+ 41.300 36.100
+ -9237820.981 5 -7198294.826 5 22704217.714 22704217.381 22704217.415
+ 34.900 31.500
+ -7363767.437 5 -5737995.314 4 23231077.825 23231076.888 23231077.295
+ 30.600 27.400
+ -374170.278 3 -291548.329 2 24362518.346 24362517.822 24362517.529
+ 23.800 17.800
+ 06 1 2 21 28 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -9995936.661 5 -7789034.000 5 22614627.290 22614626.960 22614625.985
+ 33.000 30.100
+ -17966038.417 7 -13999492.284 6 21021899.321 21021898.139 21021898.864
+ 46.700 41.500
+ -3071976.459 4 -2393744.433 3 24108495.996 24108491.463 24108494.680
+ 28.600 23.000
+ -4535922.403 5 -3534480.300 5 22504713.999 22504712.125 22504711.813
+ 34.300 31.000
+ -24495171.015 7 -19087132.789 8 20152224.869 20152221.114 20152224.039
+ 47.300 50.100
+ -4294782.166 5 -3346580.368 3 23904637.534 23904635.180 23904636.586
+ 31.000 23.000
+ -13071384.687 6 -10185486.742 6 21905073.612 21905072.835 21905072.463
+ 40.900 36.500
+ -9273735.501 5 -7226280.156 5 22697383.304 22697382.938 22697383.019
+ 34.700 31.800
+ -7399544.279 5 -5765873.340 4 23224270.454 23224268.131 23224270.023
+ 32.100 26.800
+ -285803.915 3 -222691.437 3 24379333.968 24379334.254 24379333.062
+ 23.400 21.100
+ 06 1 2 21 28 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10102200.189 5 -7871836.704 5 22594405.835 22594405.773 22594404.501
+ 33.000 30.100
+ -17909647.492 7 -13955551.298 6 21032630.069 21032628.989 21032629.732
+ 46.900 41.600
+ -3047598.358 5 -2374748.499 3 24113134.543 24113130.780 24113133.588
+ 30.100 23.000
+ -4451807.077 5 -3468935.932 5 22520719.214 22520718.793 22520717.989
+ 34.500 30.800
+ -24512189.071 7 -19100393.603 8 20148986.279 20148982.781 20148985.534
+ 47.300 50.100
+ -4192513.753 4 -3266890.735 4 23924096.877 23924097.205 23924096.616
+ 27.100 28.100
+ -13046421.780 6 -10166035.134 6 21909824.029 21909822.995 21909822.906
+ 41.000 36.300
+ -9309060.975 5 -7253806.481 5 22690661.330 22690660.676 22690660.864
+ 35.100 31.500
+ -7434771.095 5 -5793322.782 4 23217566.182 23217564.914 23217566.007
+ 32.300 27.100
+ -197417.327 4 -153818.828 3 24396154.409 24396153.287 24396153.486
+ 25.600 20.500
+ 06 1 2 21 29 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10208186.538 5 -7954423.439 5 22574237.275 22574237.332 22574236.088
+ 33.900 30.600
+ -17853006.219 7 -13911415.235 6 21043408.711 21043407.528 21043408.175
+ 46.800 41.500
+ -3022653.329 4 -2355310.823 3 24117882.016 24117877.419 24117880.479
+ 28.800 21.100
+ -4367420.274 5 -3403180.018 5 22536775.582 22536776.983 22536776.114
+ 34.600 30.400
+ -24528831.867 7 -19113362.010 8 20145819.473 20145815.772 20145818.586
+ 47.300 50.200
+ -4090078.893 4 -3187071.389 4 23943591.478 23943589.632 23943590.331
+ 28.400 24.900
+ -13020882.198 6 -10146134.162 5 21914683.887 21914682.965 21914682.839
+ 40.700 35.600
+ -9343796.312 5 -7280872.972 5 22684051.106 22684050.810 22684050.746
+ 35.200 32.000
+ -7469446.070 5 -5820342.216 4 23210967.103 23210966.364 23210967.109
+ 31.800 25.600
+ -109010.885 4 -84930.675 3 24412976.505 24412977.229 24412975.508
+ 25.600 20.500
+ 06 1 2 21 29 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10313893.712 5 -8036792.612 5 22554121.624 22554121.862 22554120.385
+ 33.500 30.100
+ -17796115.845 7 -13867085.071 6 21054234.491 21054233.549 21054234.052
+ 46.900 41.800
+ -2997142.160 4 -2335431.933 3 24122736.096 24122731.967 24122734.979
+ 28.100 20.500
+ -4282763.086 5 -3337213.402 5 22552884.971 22552886.780 22552885.779
+ 33.800 30.600
+ -24545099.712 7 -19126038.244 8 20142723.896 20142720.020 20142723.030
+ 47.500 50.100
+ -3987478.968 4 -3107123.405 4 23963114.476 23963114.165 23963113.593
+ 26.200 26.200
+ -12994767.192 6 -10125784.816 6 21919653.732 21919652.760 21919652.502
+ 40.900 36.200
+ -9377940.429 5 -7307478.765 5 22677553.853 22677553.415 22677553.492
+ 35.400 32.400
+ -7503567.110 5 -5846930.016 4 23204474.977 23204472.984 23204474.700
+ 32.400 25.900
+ -20584.948 4 -16027.362 3 24429802.539 24429803.908 24429801.823
+ 24.900 18.600
+ 06 1 2 21 30 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10419319.147 5 -8118942.251 5 22534059.794 22534059.934 22534058.666
+ 33.100 30.100
+ -17738977.436 7 -13822561.630 6 21065107.675 21065106.500 21065107.192
+ 46.800 41.400
+ -2971065.278 4 -2315112.277 3 24127698.319 24127694.454 24127697.263
+ 29.900 23.800
+ -4197836.525 5 -3271036.914 5 22569048.340 22569048.026 22569046.936
+ 33.900 30.600
+ -24560992.570 7 -19138422.279 8 20139699.323 20139695.723 20139698.556
+ 47.500 50.300
+ -3884715.285 4 -3027047.865 4 23982669.358 23982669.133 23982668.690
+ 25.300 25.600
+ -12968078.057 6 -10104988.088 6 21924732.438 21924731.591 21924731.233
+ 40.700 36.300
+ -9411492.145 5 -7333622.943 5 22671168.608 22671168.524 22671168.607
+ 34.700 31.600
+ -7537132.465 5 -5873084.806 4 23198087.277 23198085.559 23198087.102
+ 32.400 24.900
+ 67859.478 4 52890.362 2 24446634.510 24446633.161 24446633.391
+ 24.900 16.100
+ 06 1 2 21 30 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10524460.493 5 -8200870.509 5 22514052.454 22514052.326 22514051.202
+ 34.300 30.600
+ -17681592.003 7 -13777845.706 6 21076027.651 21076026.518 21076027.172
+ 46.600 41.300
+ -2944423.549 4 -2294352.484 3 24132767.951 24132764.279 24132766.766
+ 29.000 23.800
+ -4112641.834 5 -3204651.479 4 22585261.730 22585259.715 22585259.458
+ 33.500 29.700
+ -24576510.102 7 -19150513.858 8 20136746.440 20136742.947 20136745.699
+ 47.400 50.400
+ -3781789.404 4 -2946845.911 4 24002255.473 24002255.505 24002255.206
+ 27.100 25.600
+ -12940816.125 6 -10083745.034 6 21929919.994 21929919.296 21929918.941
+ 40.800 36.000
+ -9444450.505 5 -7359304.770 5 22664897.678 22664896.906 22664897.231
+ 35.400 32.100
+ -7570140.544 5 -5898805.362 4 23191806.146 23191804.506 23191805.865
+ 31.600 25.300
+ 156321.663 4 121821.964 2 24463468.407 24463467.312 24463467.249
+ 25.300 17.800
+ 06 1 2 21 31 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10629315.186 5 -8282575.402 5 22494099.260 22494099.078 22494098.020
+ 34.100 31.000
+ -17623960.950 7 -13732938.387 6 21086994.371 21086993.359 21086993.972
+ 46.700 41.300
+ -2917217.682 5 -2273153.111 3 24137945.683 24137941.018 24137944.447
+ 30.800 21.600
+ -4027180.050 5 -3138057.909 5 22601524.089 22601523.077 22601522.302
+ 32.800 30.400
+ -24591652.606 7 -19162313.204 8 20133865.176 20133861.444 20133864.334
+ 47.300 50.500
+ -3678702.570 4 -2866518.523 4 24021874.186 24021872.224 24021872.894
+ 29.700 24.200
+ -12912982.753 6 -10062056.692 6 21935216.947 21935215.813 21935215.646
+ 41.000 36.200
+ -9476814.301 5 -7384523.296 5 22658738.548 22658738.302 22658738.209
+ 35.400 31.000
+ -7602589.614 5 -5924090.314 3 23185631.313 23185629.198 23185630.805
+ 31.100 23.400
+ 244801.176 4 190767.040 3 24480304.651 24480305.004 24480303.755
+ 25.900 19.300
+ 06 1 2 21 31 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10733880.966 5 -8364055.159 5 22474200.610 22474200.636 22474199.345
+ 33.400 31.100
+ -17566085.285 7 -13687840.461 6 21098007.763 21098006.696 21098007.396
+ 46.900 41.000
+ -2889448.346 4 -2251514.640 3 24143229.445 24143224.932 24143228.185
+ 27.900 20.500
+ -3941452.412 5 -3071257.197 4 22617835.465 22617836.231 22617835.168
+ 34.000 29.700
+ -24606419.932 7 -19173820.202 8 20131054.822 20131051.191 20131054.128
+ 47.500 50.200
+ -3575456.161 4 -2786066.817 4 24041520.813 24041519.750 24041519.696
+ 28.100 27.100
+ -12884579.086 6 -10039923.968 6 21940621.644 21940620.984 21940620.538
+ 40.700 36.500
+ -9508582.584 6 -7409277.798 5 22652693.691 22652692.762 22652693.199
+ 36.000 30.800
+ -7634477.576 5 -5948938.051 4 23179563.696 23179561.568 23179562.946
+ 31.100 26.500
+ 333297.601 4 259725.282 3 24497145.542 24497145.754 24497144.526
+ 25.600 19.300
+ 06 1 2 21 32 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10838155.693 5 -8445308.103 5 22454357.921 22454357.797 22454356.401
+ 33.100 31.000
+ -17507966.046 7 -13642552.740 6 21109067.700 21109066.362 21109067.233
+ 46.800 40.700
+ -2861116.219 5 -2229437.647 3 24148621.262 24148617.064 24148619.972
+ 30.200 21.600
+ -3855460.201 5 -3004250.289 4 22634197.931 22634200.317 22634198.908
+ 32.700 29.700
+ -24620812.003 7 -19185034.797 8 20128316.016 20128312.403 20128315.238
+ 47.100 50.300
+ -3472051.784 5 -2705491.990 4 24061198.700 24061196.554 24061197.708
+ 30.600 25.300
+ -12855606.684 6 -10017348.076 6 21946134.686 21946134.288 21946133.686
+ 40.500 36.400
+ -9539754.347 5 -7433567.483 5 22646761.804 22646760.789 22646761.640
+ 35.900 31.000
+ -7665803.141 5 -5973347.535 4 23173601.687 23173600.876 23173601.405
+ 31.000 26.200
+ 421810.014 4 328695.993 2 24513989.030 24513987.661 24513987.923
+ 26.500 16.100
+ 06 1 2 21 32 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -10942136.905 5 -8526332.348 5 22434570.912 22434570.959 22434569.505
+ 34.100 32.000
+ -17449604.554 7 -13597076.246 6 21120173.348 21120172.160 21120172.954
+ 46.800 40.700
+ -2832222.301 5 -2206922.898 4 24154119.675 24154115.437 24154118.486
+ 30.400 24.200
+ -3769204.512 5 -2937038.103 4 22650614.252 22650614.144 22650613.226
+ 33.200 29.500
+ -24634828.817 7 -19195956.984 8 20125648.585 20125645.163 20125647.779
+ 47.200 50.400
+ -3368490.648 4 -2624795.012 4 24080905.915 24080903.806 24080904.311
+ 27.900 26.500
+ -12826066.885 6 -9994330.058 6 21951756.060 21951755.424 21951754.834
+ 40.000 36.300
+ -9570328.538 5 -7457391.513 5 22640943.403 22640942.537 22640943.133
+ 35.900 30.800
+ -7696564.342 5 -5997317.280 4 23167747.298 23167746.777 23167747.295
+ 31.600 25.600
+ 510337.754 4 397678.665 2 24530834.714 24530834.139 24530833.900
+ 26.200 16.100
+ 06 1 2 21 33 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11045822.281 5 -8607126.051 5 22414839.413 22414840.182 22414838.433
+ 33.900 32.000
+ -17391001.651 7 -13551411.649 6 21131324.925 21131323.949 21131324.586
+ 46.600 40.700
+ -2802767.247 4 -2183970.917 3 24159724.302 24159720.449 24159723.008
+ 29.000 23.000
+ -3682686.487 5 -2869621.504 4 22667079.269 22667077.860 22667077.310
+ 33.100 28.600
+ -24648470.291 7 -19206586.697 8 20123052.844 20123049.264 20123052.069
+ 47.300 50.400
+ -3264774.006 4 -2543976.934 4 24100641.911 24100640.434 24100640.830
+ 29.900 26.200
+ -12795961.216 6 -9970871.111 6 21957484.918 21957484.240 21957483.856
+ 40.000 36.300
+ -9600304.203 5 -7480749.161 5 22635238.993 22635238.866 22635238.796
+ 35.800 32.000
+ -7726759.287 5 -6020845.780 4 23162002.190 23162000.671 23162002.068
+ 31.100 25.300
+ 598880.166 3 466672.775 3 24547684.101 24547683.903 24547683.124
+ 23.000 19.300
+ 06 1 2 21 33 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11149209.668 5 -8687687.560 5 22395165.957 22395166.081 22395164.626
+ 34.000 31.600
+ -17332158.622 7 -13505559.935 6 21142522.638 21142521.421 21142522.209
+ 46.600 40.600
+ -2772751.856 4 -2160582.286 3 24165436.637 24165432.116 24165435.340
+ 29.500 22.600
+ -3595907.306 5 -2802001.392 4 22683592.815 22683591.228 22683590.764
+ 32.300 28.600
+ -24661736.530 7 -19216924.024 8 20120528.392 20120524.697 20120527.606
+ 47.400 50.300
+ -3160903.208 4 -2463038.616 4 24120407.917 24120406.261 24120406.461
+ 25.300 25.300
+ -12765291.000 6 -9946972.245 5 21963321.153 21963320.466 21963320.013
+ 40.100 35.700
+ -9629680.390 6 -7503639.682 5 22629649.360 22629648.574 22629649.058
+ 36.100 31.800
+ -7756386.651 5 -6043932.001 4 23156364.540 23156363.123 23156364.197
+ 32.100 26.200
+ 687437.030 3 535678.086 3 24564535.701 24564535.511 24564534.869
+ 23.000 19.900
+ 06 1 2 21 34 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11252296.621 5 -8768014.967 5 22375549.292 22375549.438 22375547.827
+ 34.300 32.400
+ -17273076.629 7 -13459522.012 6 21153765.636 21153764.365 21153765.189
+ 46.600 40.500
+ -2742177.032 4 -2136757.736 3 24171254.622 24171250.481 24171253.438
+ 29.900 22.600
+ -3508868.180 5 -2734178.747 4 22700154.675 22700154.450 22700153.553
+ 32.100 28.600
+ -24674627.292 7 -19226968.770 8 20118075.341 20118071.665 20118074.552
+ 47.300 50.200
+ -3056879.958 4 -2381981.617 4 24140203.060 24140202.281 24140201.942
+ 29.200 29.200
+ -12734057.774 6 -9922634.679 5 21969264.603 21969263.829 21969263.459
+ 39.500 35.700
+ -9658456.196 6 -7526062.361 5 22624173.560 22624172.897 22624173.155
+ 36.100 31.600
+ -7785444.466 5 -6066574.448 4 23150834.785 23150833.425 23150834.464
+ 31.600 25.900
+ 776007.670 3 604694.155 2 24581389.559 24581390.658 24581388.638
+ 23.800 17.800
+ 06 1 2 21 34 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11355080.953 5 -8848106.569 5 22355989.746 22355989.989 22355988.518
+ 34.800 31.800
+ -17213756.595 7 -13413298.605 6 21165053.563 21165052.573 21165053.224
+ 46.500 40.600
+ -2711043.806 4 -2112498.091 3 24177178.623 24177175.042 24177177.758
+ 28.600 23.000
+ -3421570.439 5 -2666154.552 4 22716765.183 22716766.628 22716765.582
+ 32.800 29.200
+ -24687142.837 7 -19236721.139 8 20115693.937 20115690.066 20115693.003
+ 47.300 50.400
+ -2952705.528 4 -2300806.746 4 24160026.833 24160025.087 24160025.209
+ 26.800 24.900
+ -12702263.048 6 -9897859.576 5 21975314.950 21975314.155 21975313.904
+ 39.800 35.300
+ -9686630.750 5 -7548016.541 5 22618811.704 22618811.071 22618811.315
+ 35.800 31.300
+ -7813931.157 5 -6088771.842 4 23145414.455 23145412.583 23145414.065
+ 32.800 25.900
+ 864591.345 4 673720.405 3 24598247.167 24598247.337 24598246.381
+ 25.300 20.500
+ 06 1 2 21 35 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11457560.305 5 -8927960.524 5 22336488.591 22336488.656 22336487.321
+ 34.900 32.300
+ -17154199.587 7 -13366890.543 6 21176387.027 21176385.928 21176386.634
+ 46.500 40.500
+ -2679352.666 5 -2087803.652 3 24183209.829 24183205.201 24183208.679
+ 30.200 21.100
+ -3334015.220 5 -2597929.735 4 22733427.931 22733428.349 22733427.041
+ 32.400 29.900
+ -24699283.054 7 -19246181.045 8 20113383.371 20113379.793 20113382.626
+ 47.300 50.300
+ -2848381.337 4 -2219515.186 4 24179878.769 24179877.403 24179877.169
+ 27.400 27.400
+ -12669908.248 6 -9872648.042 5 21981471.991 21981470.889 21981470.848
+ 40.000 34.800
+ -9714203.132 6 -7569501.505 5 22613564.848 22613564.292 22613564.499
+ 36.100 31.000
+ -7841845.217 5 -6110523.032 4 23140102.450 23140100.799 23140102.267
+ 33.100 26.200
+ 953187.610 3 742756.469 3 24615105.667 24615106.730 24615104.782
+ 23.400 19.300
+ 06 1 2 21 35 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11559732.499 5 -9007575.141 5 22317045.545 22317045.682 22317044.257
+ 34.700 32.100
+ -17094406.852 7 -13320298.800 6 21187765.351 21187764.061 21187764.852
+ 46.500 40.400
+ -2647104.599 4 -2062675.274 3 24189345.548 24189341.990 24189344.607
+ 27.100 21.100
+ -3246203.657 5 -2529505.189 4 22750139.241 22750138.208 22750137.164
+ 31.300 28.800
+ -24711047.996 7 -19255348.524 8 20111144.738 20111140.997 20111143.883
+ 47.300 50.300
+ -2743908.657 4 -2138107.977 4 24199759.173 24199757.433 24199757.659
+ 28.100 25.600
+ -12636994.898 6 -9847001.282 5 21987735.462 21987734.048 21987734.386
+ 40.400 34.800
+ -9741172.553 6 -7590516.622 5 22608432.804 22608431.888 22608432.603
+ 36.400 30.200
+ -7869185.069 5 -6131826.784 4 23134899.461 23134898.141 23134899.122
+ 32.100 26.500
+ 1041795.853 3 811801.831 3 24631967.327 24631968.095 24631966.526
+ 23.000 19.300
+ 06 1 2 21 36 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11661595.168 5 -9086948.570 5 22297661.691 22297661.807 22297660.556
+ 35.600 32.600
+ -17034379.269 7 -13273524.054 6 21199188.112 21199186.994 21199187.693
+ 46.600 40.300
+ -2614300.600 5 -2037113.719 3 24195588.796 24195584.502 24195587.866
+ 30.100 22.100
+ -3158137.053 5 -2460881.912 4 22766897.411 22766896.546 22766895.580
+ 32.400 28.400
+ -24722437.807 7 -19264223.697 8 20108977.207 20108973.579 20108976.445
+ 47.400 50.200
+ -2639288.878 4 -2056586.035 4 24219667.629 24219666.591 24219666.193
+ 26.200 27.600
+ -12603524.690 6 -9820920.601 5 21994104.645 21994103.517 21994103.445
+ 40.200 35.400
+ -9767538.090 6 -7611061.182 5 22603415.838 22603414.792 22603415.512
+ 36.100 30.100
+ -7895949.299 5 -6152682.004 4 23129806.369 23129805.384 23129806.220
+ 32.800 26.200
+ 1130415.571 3 880856.162 2 24648831.507 24648831.499 24648830.687
+ 22.100 17.000
+ 06 1 2 21 36 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11763145.910 5 -9166078.959 5 22278337.172 22278337.022 22278336.084
+ 35.600 32.100
+ -16974118.134 7 -13226567.326 6 21210655.307 21210654.286 21210654.853
+ 46.300 40.100
+ -2580941.869 4 -2011119.901 3 24201936.238 24201932.890 24201934.818
+ 27.600 23.400
+ -3069816.692 5 -2392060.880 4 22783702.013 22783703.212 22783702.294
+ 31.800 28.100
+ -24733452.234 7 -19272806.364 8 20106881.384 20106877.614 20106880.565
+ 47.500 50.300
+ -2534523.505 4 -1974950.759 4 24239604.870 24239602.456 24239602.802
+ 26.500 25.600
+ -12569499.025 6 -9794407.095 5 22000579.324 22000578.574 22000578.245
+ 39.800 35.500
+ -9793299.066 6 -7631134.658 5 22598513.573 22598512.705 22598513.298
+ 36.300 30.100
+ -7922136.141 5 -6173087.325 4 23124823.245 23124821.569 23124823.058
+ 33.000 25.300
+ 1219046.216 4 949918.991 2 24665697.664 24665697.011 24665696.637
+ 24.900 15.100
+ 06 1 2 21 37 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11864382.680 6 -9244964.707 5 22259072.424 22259072.504 22259071.404
+ 36.000 32.100
+ -16913624.402 7 -13179429.347 6 21222167.218 21222165.973 21222166.691
+ 46.400 40.500
+ -2547029.252 4 -1984694.472 3 24208389.558 24208385.240 24208388.597
+ 27.100 19.900
+ -2981243.813 5 -2323043.084 4 22800556.274 22800558.376 22800557.269
+ 32.600 29.200
+ -24744091.421 7 -19281096.632 8 20104856.816 20104853.060 20104856.012
+ 47.500 50.200
+ -2429613.996 4 -1893203.091 4 24259567.787 24259566.170 24259566.218
+ 24.900 25.600
+ -12534919.533 6 -9767462.039 5 22007159.841 22007158.828 22007158.646
+ 40.000 35.500
+ -9818454.800 5 -7650736.524 5 22593726.585 22593725.690 22593726.268
+ 35.600 30.600
+ -7947744.268 5 -6193041.681 4 23119950.661 23119948.444 23119950.419
+ 33.600 25.300
+ 1307687.068 4 1018989.793 2 24682565.088 24682564.798 24682564.506
+ 26.500 15.100
+ 06 1 2 21 37 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -11965303.032 5 -9323603.896 5 22239868.302 22239867.971 22239867.035
+ 35.600 32.100
+ -16852899.241 7 -13132111.039 6 21233722.596 21233721.647 21233722.171
+ 46.300 40.500
+ -2512563.525 4 -1957838.061 3 24214948.214 24214944.441 24214947.107
+ 27.600 21.100
+ -2892419.553 5 -2253829.410 4 22817461.142 22817461.196 22817460.002
+ 31.300 29.200
+ -24754355.564 7 -19289094.658 8 20102903.748 20102899.843 20102902.862
+ 47.600 50.300
+ -2324562.112 4 -1811344.541 4 24279558.852 24279557.078 24279557.284
+ 27.600 24.200
+ -12499788.078 6 -9740086.884 6 22013845.081 22013844.090 22013843.973
+ 39.900 36.100
+ -9843004.303 6 -7669866.007 5 22589055.290 22589053.868 22589054.760
+ 36.000 30.100
+ -7972772.205 5 -6212543.955 4 23115187.842 23115185.451 23115187.517
+ 32.700 25.600
+ 1396337.531 4 1088068.100 2 24699435.316 24699435.013 24699434.248
+ 24.600 17.800
+ 06 1 2 21 38 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12065904.806 5 -9401994.837 5 22220724.457 22220724.096 22220723.139
+ 35.300 33.100
+ -16791943.779 7 -13084613.271 6 21245321.965 21245320.846 21245321.594
+ 46.400 40.200
+ -2477545.997 4 -1930551.645 3 24221611.665 24221606.922 24221610.531
+ 26.500 18.600
+ -2803345.192 5 -2184420.878 4 22834414.576 22834411.540 22834411.667
+ 30.200 29.000
+ -24764244.434 7 -19296800.265 8 20101021.827 20101018.062 20101021.013
+ 47.400 50.300
+ -2219368.960 4 -1729375.831 3 24299575.518 24299574.620 24299574.722
+ 27.100 21.600
+ -12464106.042 6 -9712282.710 5 22020635.188 22020634.049 22020634.008
+ 39.700 35.300
+ -9866946.995 5 -7688522.633 5 22584498.793 22584498.047 22584498.470
+ 35.800 30.800
+ -7997218.359 5 -6231592.886 4 23110535.557 23110533.842 23110535.290
+ 32.300 26.200
+ 1484997.184 4 1157153.558 3 24716306.462 24716306.549 24716305.620
+ 24.200 19.300
+ 06 1 2 21 38 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12166185.752 5 -9480135.795 5 22201641.750 22201641.437 22201640.490
+ 35.800 33.600
+ -16730759.121 7 -13036936.905 6 21256965.226 21256964.001 21256964.740
+ 46.300 40.400
+ -2441977.657 4 -1902836.057 3 24228379.679 24228376.017 24228378.612
+ 26.800 20.500
+ -2714022.060 4 -2114818.472 4 22851412.496 22851408.871 22851409.591
+ 29.200 28.100
+ -24773758.245 7 -19304213.617 8 20099211.264 20099207.667 20099210.509
+ 47.500 50.300
+ -2114035.839 4 -1647298.103 4 24319620.898 24319619.119 24319619.287
+ 27.900 25.900
+ -12427875.198 6 -9684050.889 5 22027529.860 22027528.504 22027528.552
+ 40.200 35.300
+ -9890282.137 5 -7706705.844 5 22580058.113 22580057.274 22580057.987
+ 35.700 31.000
+ -8021081.368 5 -6250187.422 4 23105994.575 23105992.754 23105994.415
+ 32.800 26.200
+ 1573665.768 3 1226245.950 3 24733179.057 24733179.763 24733178.228
+ 23.800 19.900
+ 06 1 2 21 39 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12266143.734 6 -9558025.095 5 22182620.244 22182620.105 22182618.981
+ 36.200 33.900
+ -16669346.165 7 -12989082.647 6 21268651.643 21268650.415 21268651.228
+ 46.300 40.200
+ -2405859.624 4 -1874692.160 3 24235253.556 24235248.857 24235252.337
+ 28.800 19.900
+ -2624451.513 5 -2045023.300 4 22868452.961 22868453.809 22868452.736
+ 31.100 28.100
+ -24782896.795 7 -19311334.556 8 20097472.580 20097468.642 20097471.732
+ 47.700 50.400
+ -2008564.365 4 -1565112.550 3 24339691.096 24339689.561 24339689.621
+ 27.600 23.400
+ -12391097.211 6 -9655392.715 5 22034528.411 22034527.242 22034527.260
+ 40.000 35.600
+ -9913009.155 5 -7724415.191 5 22575732.980 22575732.487 22575733.044
+ 35.800 31.300
+ -8044359.817 5 -6268326.454 4 23101564.622 23101563.667 23101564.305
+ 32.300 26.200
+ 1662342.537 4 1295344.751 3 24750054.020 24750054.661 24750053.456
+ 25.600 20.500
+ 06 1 2 21 39 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12365776.355 6 -9635660.866 5 22163660.720 22163660.531 22163659.403
+ 36.600 33.800
+ -16607705.999 7 -12941051.339 6 21280381.125 21280380.112 21280380.781
+ 46.000 40.000
+ -2369192.830 4 -1846120.586 3 24242230.349 24242226.399 24242229.346
+ 28.800 19.900
+ -2534634.741 5 -1975036.233 4 22885541.808 22885545.235 22885544.330
+ 30.200 27.100
+ -24791660.217 7 -19318163.189 8 20095804.827 20095800.956 20095804.012
+ 47.700 50.400
+ -1902955.932 4 -1482820.252 3 24359785.719 24359785.722 24359785.151
+ 25.900 21.100
+ -12353773.750 6 -9626309.512 5 22041630.757 22041629.837 22041629.675
+ 40.000 35.500
+ -9935127.247 5 -7741650.052 5 22571524.496 22571523.446 22571524.157
+ 35.900 31.100
+ -8067052.319 5 -6286008.900 4 23097246.417 23097244.922 23097245.981
+ 32.000 26.200
+ 1751026.856 3 1364449.377 3 24766930.405 24766930.194 24766929.413
+ 21.600 19.900
+ 06 1 2 21 40 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12465081.387 6 -9713041.380 5 22144763.812 22144763.072 22144762.421
+ 37.000 33.800
+ -16545839.823 7 -12892843.923 6 21292153.781 21292153.009 21292153.498
+ 46.100 40.100
+ -2331978.390 4 -1817122.303 3 24249312.819 24249308.153 24249311.473
+ 29.900 21.100
+ -2444573.102 5 -1904858.343 4 22902682.557 22902683.748 22902682.250
+ 31.000 27.600
+ -24800048.617 7 -19324699.598 8 20094208.223 20094204.693 20094207.523
+ 47.500 50.300
+ -1797212.070 4 -1400422.421 4 24379907.926 24379908.757 24379908.214
+ 25.600 26.800
+ -12315906.533 6 -9596802.601 5 22048836.378 22048835.743 22048835.178
+ 39.800 35.100
+ -9956635.902 5 -7758410.026 5 22567431.503 22567430.531 22567431.120
+ 35.800 31.000
+ -8089157.675 5 -6303233.826 4 23093040.022 23093039.131 23093039.581
+ 32.400 27.100
+ 1839718.255 3 1433559.604 2 24783807.563 24783807.231 24783806.598
+ 23.000 15.100
+ 06 1 2 21 40 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12564056.578 6 -9790164.889 5 22125929.215 22125928.641 22125927.916
+ 37.600 33.600
+ -16483748.553 7 -12844461.110 6 21303969.285 21303968.434 21303969.038
+ 46.200 39.900
+ -2294217.452 4 -1787698.193 3 24256498.292 24256494.402 24256497.087
+ 28.800 22.600
+ -2354267.764 4 -1834490.586 4 22919870.317 22919868.380 22919867.724
+ 29.900 27.100
+ -24808062.071 7 -19330943.840 8 20092683.423 20092679.796 20092682.686
+ 47.600 50.200
+ -1691334.174 4 -1317920.188 4 24400056.858 24400056.286 24400056.408
+ 24.600 24.600
+ -12277497.358 6 -9566873.377 5 22056145.225 22056144.588 22056144.107
+ 38.900 35.200
+ -9977534.551 5 -7774694.665 5 22563454.612 22563453.749 22563454.101
+ 35.600 31.300
+ -8110674.146 5 -6319999.890 4 23088945.490 23088943.892 23088945.155
+ 32.600 25.900
+ 1928416.263 3 1502674.917 2 24800686.030 24800686.404 24800684.900
+ 21.600 17.000
+ 06 1 2 21 41 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12662699.688 6 -9867029.625 5 22107158.102 22107157.713 22107156.678
+ 36.900 33.800
+ -16421433.184 7 -12795903.670 6 21315828.001 21315826.828 21315827.535
+ 46.100 40.000
+ -2255911.054 4 -1757849.044 3 24263787.454 24263783.699 24263786.576
+ 28.400 23.000
+ -2263719.996 5 -1763933.933 4 22937100.954 22937098.917 22937098.721
+ 30.400 27.600
+ -24815700.620 7 -19336895.948 8 20091229.910 20091226.168 20091229.089
+ 47.400 50.300
+ -1585323.360 2 -1235314.353 4 24420228.738 24420229.498 24420228.725
+ 17.000 24.600
+ -12238547.962 6 -9536523.219 5 22063557.365 22063556.549 22063556.235
+ 39.600 35.500
+ -9997822.619 5 -7790503.533 5 22559593.744 22559593.239 22559593.467
+ 35.400 31.600
+ -8131600.922 5 -6336306.448 4 23084963.552 23084961.615 23084963.171
+ 33.200 25.900
+ 2017120.133 3 1571794.802 3 24817565.794 24817565.939 24817565.043
+ 21.600 18.600
+ 06 1 2 21 41 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12761008.889 6 -9943634.157 5 22088450.375 22088449.912 22088448.964
+ 36.300 34.000
+ -16358894.888 7 -12747172.523 6 21327728.185 21327727.380 21327727.940
+ 45.800 39.600
+ -2217060.575 4 -1727575.910 3 24271180.810 24271176.801 24271179.498
+ 27.600 21.100
+ -2172931.285 5 -1693189.523 4 22954374.797 22954375.181 22954374.091
+ 30.200 26.500
+ -24822964.245 7 -19342555.906 8 20089847.554 20089843.935 20089846.795
+ 47.600 50.200
+ -1479181.776 3 -1152606.673 3 24440426.451 24440427.315 24440426.768
+ 22.600 23.000
+ -12199060.199 6 -9505753.539 5 22071071.696 22071070.758 22071070.438
+ 39.100 35.100
+ -10017499.460 5 -7805836.099 5 22555849.204 22555848.804 22555849.089
+ 35.900 32.000
+ -8151936.500 5 -6352152.334 4 23081093.395 23081091.851 23081093.450
+ 33.100 27.100
+ 2105829.463 3 1640918.942 3 24834447.512 24834446.931 24834445.979
+ 19.300 19.300
+ 06 1 2 21 42 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12858981.852 6 -10019976.690 5 22069806.558 22069806.101 22069805.257
+ 37.100 33.800
+ -16296134.713 7 -12698268.484 6 21339671.254 21339670.342 21339670.867
+ 46.100 39.800
+ -2177667.170 4 -1696879.760 3 24278676.849 24278672.855 24278675.636
+ 28.100 22.100
+ -2081902.785 4 -1622258.261 4 22971694.959 22971697.638 22971696.211
+ 29.500 26.800
+ -24829853.107 7 -19347923.842 8 20088536.737 20088533.072 20088535.967
+ 47.700 50.300
+ -1372910.362 3 -1069797.747 3 24460649.524 24460649.987 24460649.716
+ 23.800 19.900
+ -12159035.753 6 -9474565.669 5 22078687.594 22078687.285 22078686.497
+ 38.700 34.600
+ -10036564.599 5 -7820692.030 5 22552220.958 22552221.052 22552220.846
+ 35.400 32.000
+ -8171679.822 5 -6367536.718 4 23077336.743 23077334.758 23077336.442
+ 33.000 25.300
+ 2194543.719 3 1710046.920 2 24851328.719 24851328.898 24851327.892
+ 23.400 17.800
+ 06 1 2 21 42 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -12956616.302 6 -10096055.435 5 22051227.574 22051226.870 22051226.267
+ 37.600 34.000
+ -16233153.644 7 -12649192.326 6 21351655.916 21351655.161 21351655.680
+ 45.900 39.400
+ -2137732.091 4 -1665761.474 3 24286275.856 24286272.103 24286275.186
+ 29.200 19.900
+ -1990635.891 4 -1551141.219 4 22989064.084 22989065.079 22989063.840
+ 29.000 27.100
+ -24836367.014 7 -19352999.605 8 20087297.190 20087293.494 20087296.420
+ 47.800 50.300
+ -1266510.558 4 -986888.833 3 24480896.274 24480897.052 24480897.545
+ 27.400 20.500
+ -12118476.511 6 -9442961.077 5 22086405.913 22086405.291 22086404.724
+ 38.500 34.400
+ -10055017.572 6 -7835070.949 5 22548709.781 22548709.260 22548709.484
+ 36.200 32.000
+ -8190829.287 5 -6382458.360 4 23073692.858 23073690.258 23073692.336
+ 32.800 24.900
+ 2283262.394 3 1779178.362 2 24868211.706 24868211.390 24868210.492
+ 22.100 17.800
+ 06 1 2 21 43 0.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -13053909.881 6 -10171868.572 5 22032712.885 22032712.549 22032711.641
+ 37.600 33.800
+ -16169952.793 7 -12599944.903 6 21363683.089 21363681.730 21363682.637
+ 46.000 39.500
+ -2097256.616 4 -1634222.135 3 24293978.716 24293974.450 24293977.124
+ 27.400 21.100
+ -1899132.030 5 -1479839.554 4 23006479.299 23006477.791 23006477.285
+ 32.000 27.100
+ -24842506.131 7 -19357783.321 8 20086128.982 20086125.248 20086128.226
+ 47.600 50.300
+ -1159984.080 4 -903881.168 3 24501168.321 24501168.444 24501168.950
+ 27.400 19.300
+ -12077384.405 6 -9410941.267 5 22094225.647 22094224.810 22094224.518
+ 38.800 34.400
+ -10072857.969 6 -7848972.533 5 22545315.190 22545314.483 22545314.827
+ 36.400 32.100
+ -8209383.781 5 -6396916.385 4 23070161.567 23070159.658 23070161.239
+ 32.700 25.600
+ 2371985.039 4 1848312.903 2 24885095.120 24885094.191 24885094.099
+ 24.900 15.100
+ 06 1 2 21 43 30.0000000 0 10G10G 4G23G 7G 2G17G 5G30G13G24
+ -13150860.518 6 -10247414.470 5 22014263.680 22014263.545 22014262.468
+ 37.200 34.400
+ -16106533.178 7 -12550527.012 6 21375751.098 21375750.102 21375750.811
+ 45.900 39.300
+ -2056241.708 4 -1602262.471 3 24301782.778 24301778.948 24301781.640
+ 25.300 20.500
+ -1807392.377 4 -1408354.142 4 23023937.377 23023935.529 23023935.145
+ 29.500 27.900
+ -24848270.788 7 -19362275.256 8 20085032.003 20085028.243 20085031.220
+ 47.700 50.200
+ -1053332.396 4 -820775.936 3 24521463.112 24521463.934 24521464.246
+ 26.500 20.500
+ -12035761.243 6 -9378507.642 5 22102146.273 22102145.261 22102145.019
+ 38.500 34.300
+ -10090085.215 6 -7862396.339 5 22542036.915 22542036.054 22542036.556
+ 36.500 32.400
+ -8227342.362 5 -6410910.060 4 23066744.752 23066742.499 23066744.253
+ 32.800 24.900
+ 2460711.254 3 1917450.267 2 24901979.185 24901977.816 24901978.007
+ 23.000 12.600
+ 06 1 2 21 44 0.0000000 0 9G10G 4G23G 7G 2G17G 5G30G13
+ -13247466.188 6 -10322691.566 5 21995880.446 21995879.924 21995879.165
+ 38.000 34.300
+ -16042895.815 7 -12500939.448 6 21387861.078 21387859.793 21387860.719
+ 45.800 39.100
+ -2014689.052 4 -1569883.779 2 24309690.209 24309685.843 24309689.352
+ 28.400 16.100
+ -1715418.339 4 -1336686.130 4 23041437.318 23041437.840 23041436.186
+ 28.800 27.600
+ -24853660.724 7 -19366475.197 8 20084006.347 20084002.555 20084005.547
+ 47.700 50.300
+ -946556.849 3 -737574.223 3 24541781.092 24541782.768 24541782.516
+ 22.100 20.500
+ -11993608.868 6 -9345661.648 5 22110167.171 22110166.753 22110166.218
+ 38.600 34.100
+ -10106699.010 6 -7875342.131 5 22538875.397 22538874.511 22538875.047
+ 36.500 32.300
+ -8244703.619 5 -6424438.298 4 23063441.254 23063438.125 23063440.678
+ 33.200 25.300
+ 06 1 2 21 44 30.0000000 0 9G10G 4G23G 7G 2G17G 5G30G13
+ -13343724.471 6 -10397697.965 5 21977563.015 21977562.341 21977561.735
+ 38.100 34.100
+ -15979041.653 7 -12451182.956 6 21400012.222 21400010.958 21400011.703
+ 45.600 39.100
+ -1972599.823 4 -1537086.950 3 24317699.792 24317696.095 24317698.718
+ 29.500 21.100
+ -1623211.356 4 -1264836.550 4 23058982.226 23058983.923 23058982.250
+ 29.700 25.900
+ -24858676.122 7 -19370383.293 8 20083051.915 20083048.174 20083051.081
+ 47.600 50.400
+ -839658.837 4 -654277.105 3 24562123.465 24562124.947 24562124.895
+ 24.200 23.800
+ -11950929.299 6 -9312404.845 5 22118289.055 22118288.553 22118287.829
+ 38.200 34.500
+ -10122698.986 6 -7887809.618 5 22535830.924 22535829.792 22535830.506
+ 36.500 32.100
+ -8261466.724 5 -6437500.424 4 23060250.802 23060248.358 23060250.682
+ 33.900 25.900
+ 06 1 2 21 45 0.0000000 0 9G10G 4G23G 7G 2G17G 5G30G13
+ -13439633.414 6 -10472432.155 5 21959311.786 21959311.419 21959310.590
+ 38.000 34.000
+ -15914971.774 7 -12401258.371 6 21412204.182 21412203.263 21412203.866
+ 45.900 39.300
+ -1929975.240 4 -1503873.007 3 24325809.906 24325807.108 24325808.828
+ 24.900 23.000
+ -1530772.635 4 -1192806.412 4 23076573.989 23076574.421 23076573.017
+ 29.500 27.400
+ -24863317.030 7 -19373999.575 8 20082168.465 20082165.038 20082167.737
+ 47.700 50.300
+ -732640.175 3 -570885.935 4 24582488.201 24582490.728 24582488.914
+ 18.600 24.600
+ -11907724.362 6 -9278738.669 5 22126510.509 22126510.438 22126509.543
+ 38.600 35.100
+ -10138084.779 6 -7899798.514 5 22532902.731 22532902.018 22532902.568
+ 36.900 31.600
+ -8277630.411 5 -6450095.499 4 23057175.203 23057172.695 23057174.716
+ 34.000 26.200
+ 06 1 2 21 45 30.0000000 0 9G10G 4G23G 7G 2G17G 5G30G13
+ -13535191.200 6 -10546892.708 5 21941128.032 21941127.381 21941126.842
+ 38.100 34.500
+ -15850687.249 7 -12351166.537 6 21424436.894 21424436.091 21424436.683
+ 45.600 39.100
+ -1886816.812 4 -1470243.047 3 24334023.759 24334019.485 24334022.606
+ 27.400 19.900
+ -1438103.645 4 -1120596.847 4 23094209.555 23094208.762 23094208.023
+ 29.000 27.400
+ -24867583.374 7 -19377323.992 8 20081356.872 20081353.151 20081356.082
+ 47.700 50.200
+ -625501.765 4 -487401.552 4 24602875.865 24602877.865 24602877.949
+ 24.200 24.600
+ -11863996.085 6 -9244664.704 5 22134831.887 22134831.844 22134830.610
+ 37.500 35.300
+ -10152855.821 6 -7911308.393 5 22530092.174 22530091.070 22530091.800
+ 36.500 31.800
+ -8293193.492 5 -6462222.553 4 23054212.953 23054211.553 23054212.775
+ 33.200 25.900
+ 06 1 2 21 46 0.0000000 0 9G10G 4G23G 7G 2G17G 5G30G13
+ -13630395.339 6 -10621077.691 5 21923010.767 21923010.688 21923009.735
+ 38.000 34.800
+ -15786188.972 7 -12300908.135 6 21436710.713 21436709.708 21436710.419
+ 45.600 38.900
+ -1843126.006 4 -1436198.217 3 24342337.927 24342333.823 24342336.795
+ 28.400 21.100
+ -1345205.632 5 -1048208.821 4 23111887.624 23111886.365 23111886.076
+ 30.100 24.600
+ -24871475.463 7 -19380356.784 8 20080616.286 20080612.525 20080615.513
+ 47.800 50.200
+ -518245.827 3 -403825.464 4 24623286.808 24623287.942 24623287.251
+ 23.800 27.100
+ -11819746.367 6 -9210184.425 5 22143252.297 22143252.220 22143251.208
+ 37.900 35.100
+ -10167012.193 5 -7922339.306 5 22527397.717 22527397.261 22527397.576
+ 35.500 32.000
+ -8308155.007 5 -6473880.855 4 23051366.629 23051364.730 23051366.184
+ 34.300 25.900
+ 06 1 2 21 46 30.0000000 0 9G10G 4G23G 7G 2G17G 5G30G13
+ -13725243.804 6 -10694985.536 5 21904961.928 21904961.500 21904960.827
+ 37.900 35.500
+ -15721477.991 7 -12250483.998 6 21449024.917 21449023.700 21449024.538
+ 45.300 38.700
+ -1798903.611 4 -1401739.219 3 24350753.257 24350749.035 24350752.208
+ 27.900 22.600
+ -1252080.129 4 -975643.493 4 23129607.197 23129607.348 23129606.420
+ 28.800 24.200
+ -24874993.445 8 -19383098.061 8 20079946.743 20079943.061 20079946.018
+ 48.000 50.200
+ -410873.307 3 -320158.621 3 24643718.175 24643719.447 24643718.853
+ 19.900 22.100
+ -11774977.223 6 -9175299.387 5 22151771.800 22151771.440 22151770.624
+ 38.500 34.400
+ -10180553.296 6 -7932890.798 5 22524821.287 22524820.665 22524820.846
+ 36.100 32.100
+ -8322514.103 5 -6485069.728 4 23048633.651 23048631.777 23048633.270
+ 33.500 26.500
+ 06 1 2 21 47 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -13819734.336 6 -10768614.460 5 21886980.786 21886980.367 21886979.597
+ 38.400 34.800
+ -15656555.503 7 -12199895.043 6 21461379.386 21461378.012 21461378.871
+ 45.300 38.800
+ -1754151.546 4 -1366867.487 3 24359269.459 24359264.780 24359268.012
+ 26.500 21.100
+ -1158728.508 4 -902902.011 4 23147370.525 23147372.229 23147370.531
+ 27.900 25.300
+ -24878137.308 7 -19385547.817 8 20079348.462 20079344.787 20079347.733
+ 47.900 50.200
+ -11729690.690 6 -9140011.192 5 22160389.723 22160389.109 22160388.492
+ 38.600 35.100
+ -10193478.996 6 -7942962.761 5 22522361.547 22522360.784 22522361.029
+ 36.000 32.300
+ -8336269.660 5 -6495788.325 4 23046015.946 23046014.213 23046015.551
+ 33.400 26.800
+ 06 1 2 21 47 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -13913864.861 6 -10841962.873 5 21869068.367 21869067.736 21869067.171
+ 38.400 34.900
+ -15591422.356 7 -12149141.942 6 21473773.567 21473772.586 21473773.105
+ 44.800 39.000
+ -1708870.968 4 -1331583.871 3 24367885.815 24367881.619 24367884.798
+ 29.200 19.900
+ -1065152.027 4 -829985.288 4 23165178.558 23165178.834 23165177.792
+ 28.600 24.200
+ -24880907.012 7 -19387706.023 8 20078821.404 20078817.725 20078820.628
+ 47.800 50.200
+ -11683888.790 6 -9104321.418 5 22169105.126 22169104.896 22169104.139
+ 37.900 34.900
+ -10205789.085 5 -7952555.013 5 22520018.732 22520018.197 22520018.409
+ 35.600 32.400
+ -8349420.704 5 -6506035.870 4 23043513.636 23043511.407 23043513.324
+ 33.900 25.900
+ 06 1 2 21 48 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14007633.530 6 -10915029.326 5 21851224.650 21851224.170 21851223.512
+ 38.700 34.900
+ -15526079.575 7 -12098225.492 6 21486207.821 21486206.748 21486207.420
+ 44.700 38.600
+ -1663063.467 4 -1295889.702 3 24376602.865 24376598.758 24376601.639
+ 28.600 23.400
+ -971352.265 4 -756894.597 4 23183030.499 23183028.717 23183028.168
+ 28.100 26.500
+ -24883302.770 7 -19389572.840 8 20078365.640 20078361.826 20078364.850
+ 47.900 50.200
+ -11637573.543 6 -9068231.639 5 22177918.673 22177918.282 22177917.553
+ 38.300 34.700
+ -10217483.376 6 -7961667.433 5 22517793.670 22517792.569 22517793.356
+ 36.500 31.600
+ -8361966.320 5 -6515811.651 4 23041126.422 23041124.156 23041126.048
+ 34.500 27.100
+ 06 1 2 21 48 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14101038.159 6 -10987812.114 5 21833450.218 21833450.011 21833449.088
+ 38.900 34.700
+ -15460528.148 7 -12047146.459 6 21498681.892 21498680.665 21498681.454
+ 44.800 38.400
+ -1616730.601 4 -1259786.177 3 24385419.385 24385415.207 24385418.286
+ 29.700 21.600
+ -877330.405 4 -683630.847 4 23200921.103 23200920.511 23200919.752
+ 29.200 25.600
+ -24885324.637 8 -19391148.313 8 20077980.933 20077977.116 20077980.086
+ 48.100 50.200
+ -11590746.998 6 -9031743.443 5 22186829.479 22186829.067 22186828.333
+ 38.000 34.300
+ -10228561.617 6 -7970299.825 5 22515685.330 22515684.502 22515685.047
+ 36.200 31.500
+ -8373905.461 5 -6525114.862 4 23038854.308 23038852.180 23038854.025
+ 34.000 25.600
+ 06 1 2 21 49 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14194076.848 6 -11060309.748 5 21815745.737 21815745.310 21815744.638
+ 39.100 35.400
+ -15394769.012 7 -11995905.576 6 21511195.465 21511194.393 21511195.073
+ 44.700 38.600
+ -1569873.819 4 -1223274.400 3 24394335.954 24394332.017 24394334.641
+ 26.800 21.100
+ -783088.074 4 -610195.296 4 23218851.796 23218854.562 23218852.934
+ 27.900 26.800
+ -24886972.737 8 -19392432.541 8 20077667.144 20077663.464 20077666.434
+ 48.000 50.200
+ -11543411.189 6 -8994858.409 5 22195837.193 22195836.868 22195835.920
+ 37.700 33.800
+ -10239023.701 6 -7978452.070 5 22513694.382 22513693.832 22513694.210
+ 36.300 32.100
+ -8385237.264 5 -6533944.821 4 23036697.735 23036695.479 23036697.551
+ 33.600 24.200
+ 06 1 2 21 49 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14286747.296 6 -11132520.455 5 21798111.145 21798110.496 21798110.014
+ 39.200 35.200
+ -15328803.092 7 -11944503.561 6 21523748.087 21523747.184 21523747.799
+ 44.700 38.400
+ -1522494.959 4 -1186355.771 3 24403351.829 24403347.585 24403350.733
+ 26.800 19.300
+ -688626.511 4 -536588.885 3 23236828.930 23236829.107 23236828.509
+ 28.600 22.100
+ -24888247.284 8 -19393425.689 8 20077424.737 20077420.928 20077423.915
+ 48.100 50.200
+ -11495568.278 6 -8957578.240 5 22204941.198 22204941.204 22204940.217
+ 37.600 34.000
+ -10248869.562 5 -7986124.156 5 22511820.739 22511820.168 22511820.482
+ 35.600 31.600
+ -8395961.025 5 -6542300.997 4 23034656.756 23034655.075 23034656.684
+ 33.500 25.600
+ 06 1 2 21 50 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14379047.393 6 -11204442.581 5 21780546.919 21780546.302 21780545.762
+ 39.100 35.100
+ -15262631.521 7 -11892941.295 6 21536340.438 21536339.394 21536340.037
+ 44.800 38.500
+ -1474594.915 4 -1149031.040 3 24412467.341 24412462.866 24412466.019
+ 27.600 21.600
+ -593947.149 4 -462812.803 4 23254848.367 23254846.903 23254846.288
+ 29.200 24.200
+ -24889148.294 7 -19394127.764 8 20077253.223 20077249.396 20077252.399
+ 47.900 50.200
+ -11447220.384 6 -8919904.584 5 22214141.803 22214141.491 22214140.646
+ 37.500 34.600
+ -10258098.889 5 -7993315.826 5 22510064.444 22510063.736 22510064.206
+ 35.600 31.800
+ -8406075.995 5 -6550182.777 4 23032732.270 23032729.821 23032731.902
+ 33.600 25.300
+ 06 1 2 21 50 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14470975.292 6 -11276074.683 5 21763053.295 21763053.073 21763052.353
+ 39.300 35.700
+ -15196255.340 7 -11841219.594 6 21548971.487 21548970.205 21548971.049
+ 44.700 38.000
+ -1426175.199 4 -1111301.383 3 24421681.078 24421676.668 24421679.772
+ 28.600 21.600
+ -499051.547 4 -388868.194 3 23272906.207 23272903.839 23272904.251
+ 28.400 23.000
+ -24889675.585 7 -19394538.628 8 20077152.955 20077149.043 20077152.139
+ 47.900 50.100
+ -11398369.655 6 -8881839.101 5 22223438.055 22223437.651 22223436.810
+ 38.100 34.700
+ -10266711.838 5 -8000027.197 5 22508425.519 22508424.904 22508425.190
+ 35.700 31.600
+ -8415581.100 5 -6557589.344 4 23030923.466 23030921.607 23030923.172
+ 34.000 27.100
+ 06 1 2 21 51 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14562529.142 6 -11347415.316 6 21745631.324 21745631.056 21745630.310
+ 39.700 36.100
+ -15129675.507 7 -11789339.198 6 21561641.082 21561639.942 21561640.682
+ 44.600 37.800
+ -1377237.604 4 -1073168.210 3 24430993.269 24430989.436 24430992.240
+ 27.900 22.100
+ -403941.096 4 -314756.171 4 23291003.633 23291004.004 23291002.826
+ 27.900 26.500
+ -24889829.721 8 -19394658.727 8 20077123.529 20077119.756 20077122.750
+ 48.000 50.100
+ -11349018.212 6 -8843383.450 5 22232829.122 22232829.111 22232828.046
+ 37.400 34.900
+ -10274708.312 5 -8006258.197 5 22506903.668 22506903.321 22506903.390
+ 35.500 32.600
+ -8424475.833 5 -6564520.281 4 23029231.140 23029229.326 23029230.751
+ 33.800 26.200
+ 06 1 2 21 51 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14653706.706 6 -11418462.746 5 21728280.964 21728280.430 21728279.888
+ 39.800 35.700
+ -15062892.816 7 -11737300.735 6 21574349.413 21574348.414 21574349.011
+ 44.700 38.100
+ -1327783.782 4 -1034632.766 3 24440403.673 24440399.999 24440402.660
+ 26.800 18.600
+ -308617.405 4 -240478.018 4 23309141.786 23309142.877 23309141.666
+ 28.400 24.900
+ -24889610.581 7 -19394487.957 8 20077165.089 20077161.442 20077164.402
+ 47.900 50.100
+ -11299168.280 6 -8804539.377 5 22242315.350 22242315.364 22242314.147
+ 37.000 34.500
+ -10282088.298 5 -8012008.819 5 22505499.537 22505498.819 22505499.217
+ 35.800 31.800
+ -8432759.087 5 -6570974.767 4 23027655.010 23027652.770 23027654.656
+ 34.000 25.900
+ 06 1 2 21 52 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14744505.911 6 -11489215.359 5 21711002.615 21711001.854 21711001.364
+ 39.500 35.400
+ -14995908.203 7 -11685104.935 6 21587096.206 21587095.044 21587095.762
+ 44.500 38.000
+ -1277815.363 4 -995696.307 3 24449913.925 24449908.690 24449912.217
+ 29.900 19.900
+ -213081.732 5 -166034.634 4 23327323.057 23327323.465 23327321.885
+ 30.200 26.200
+ -24889018.433 7 -19394026.533 8 20077277.875 20077274.145 20077277.076
+ 47.900 50.100
+ -11248822.000 6 -8765308.537 5 22251895.896 22251895.917 22251894.865
+ 37.500 34.100
+ -10288851.723 5 -8017279.007 5 22504212.459 22504211.819 22504212.011
+ 35.300 32.300
+ -8440430.218 5 -6576952.258 4 23026194.967 23026193.034 23026194.537
+ 33.800 26.200
+ 06 1 2 21 52 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14834924.738 6 -11559671.570 5 21693796.421 21693795.872 21693795.127
+ 39.700 35.900
+ -14928722.847 7 -11632752.702 6 21599880.910 21599880.013 21599880.617
+ 44.400 37.900
+ -1227333.880 4 -956360.090 3 24459518.635 24459514.546 24459517.864
+ 25.900 19.300
+ -117335.482 4 -91427.219 4 23345544.552 23345542.812 23345542.155
+ 24.900 26.200
+ -24888053.303 8 -19393274.469 8 20077461.499 20077457.771 20077460.755
+ 48.100 50.100
+ -11197981.554 6 -8725692.627 5 22261570.597 22261570.541 22261569.362
+ 37.500 33.900
+ -10294998.728 5 -8022068.870 5 22503042.785 22503041.986 22503042.447
+ 35.900 32.400
+ -8447488.782 5 -6582452.424 4 23024851.359 23024849.759 23024851.168
+ 33.600 26.800
+ 06 1 2 21 53 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -14924961.140 6 -11629829.785 6 21676662.966 21676662.641 21676661.778
+ 39.500 36.600
+ -14861337.670 7 -11580244.768 6 21612703.928 21612703.105 21612703.597
+ 44.300 38.100
+ -1176341.090 4 -916625.410 4 24469222.856 24469219.037 24469221.207
+ 27.400 24.200
+ -21380.162 4 -16656.871 4 23363804.178 23363802.975 23363801.844
+ 25.600 25.300
+ -24886715.252 8 -19392231.818 8 20077716.100 20077712.326 20077715.340
+ 48.100 50.000
+ -11146649.240 6 -8685693.445 5 22271338.378 22271338.585 22271337.277
+ 36.700 34.400
+ -10300529.247 6 -8026378.352 5 22501990.590 22501989.476 22501990.223
+ 36.200 32.000
+ -8453934.124 5 -6587474.756 4 23023625.152 23023623.101 23023624.872
+ 33.000 26.200
+ 06 1 2 21 53 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -15014613.264 6 -11699688.553 6 21659602.659 21659602.236 21659601.494
+ 40.100 36.700
+ -14793753.475 7 -11527581.753 6 21625564.753 21625563.751 21625564.436
+ 44.100 37.800
+ -1124838.484 4 -876493.517 3 24479022.773 24479019.285 24479021.897
+ 28.800 23.000
+ 74782.714 4 58275.189 3 23382101.891 23382101.591 23382100.723
+ 26.800 22.600
+ -24885004.361 8 -19390898.641 8 20078041.698 20078037.933 20078040.917
+ 48.000 50.100
+ -11094827.254 6 -8645312.705 5 22281199.683 22281199.956 22281198.704
+ 36.300 33.400
+ -10305443.600 6 -8030207.707 5 22501055.154 22501054.426 22501054.878
+ 36.600 31.800
+ -8459765.206 5 -6592018.452 4 23022515.836 23022513.394 23022515.316
+ 33.800 25.900
+ 06 1 2 21 54 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -15103879.231 6 -11769246.430 6 21642615.887 21642615.311 21642614.630
+ 40.300 36.600
+ -14725971.423 7 -11474764.565 6 21638463.631 21638462.317 21638463.124
+ 44.300 37.800
+ -1072827.929 5 -835965.778 3 24488921.022 24488916.355 24488919.615
+ 30.100 19.900
+ 171151.657 4 133367.876 3 23400439.585 23400439.959 23400438.764
+ 27.400 19.300
+ -24882921.044 7 -19389275.264 8 20078437.976 20078434.435 20078437.268
+ 47.900 50.200
+ -11042517.791 6 -8604552.116 5 22291154.050 22291154.041 22291153.030
+ 36.500 33.500
+ -10309741.788 6 -8033556.946 5 22500237.007 22500236.209 22500236.763
+ 36.500 31.300
+ -8464982.171 5 -6596083.605 4 23021523.056 23021520.721 23021522.594
+ 33.800 25.900
+ 06 1 2 21 54 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -15192756.960 6 -11838501.775 6 21625703.046 21625702.421 21625701.816
+ 40.000 36.200
+ -14657992.305 7 -11421793.816 6 21651399.926 21651398.318 21651399.271
+ 44.300 37.700
+ -1020310.817 4 -795043.371 3 24498913.694 24498910.058 24498913.282
+ 28.400 21.600
+ 267725.224 4 208619.976 4 23418817.666 23418818.058 23418816.235
+ 27.100 24.600
+ -24880465.384 7 -19387361.750 8 20078905.543 20078901.668 20078904.666
+ 47.900 50.000
+ -10989723.167 6 -8563413.468 5 22301200.666 22301200.341 22301199.541
+ 36.300 33.000
+ -10313423.812 6 -8036426.052 5 22499536.557 22499535.816 22499536.282
+ 36.200 32.000
+ -8469583.493 5 -6599669.042 4 23020647.047 23020645.086 23020646.825
+ 33.500 26.500
+ 06 1 2 21 55 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -15281244.496 6 -11907453.066 6 21608864.407 21608863.862 21608863.170
+ 40.300 36.500
+ -14589817.017 7 -11368670.206 6 21664372.462 21664371.660 21664372.217
+ 44.000 37.700
+ -967289.134 4 -753727.784 3 24509004.388 24508999.999 24509003.096
+ 29.900 19.900
+ 364502.025 3 284030.450 3 23437233.310 23437233.300 23437232.083
+ 23.400 23.400
+ -24877637.339 8 -19385158.067 8 20079443.599 20079439.721 20079442.774
+ 48.000 49.900
+ -10936445.724 6 -8521898.601 5 22311338.946 22311338.705 22311337.863
+ 37.200 32.800
+ -10316489.943 6 -8038815.242 5 22498953.088 22498952.465 22498952.751
+ 36.100 32.400
+ -8473568.993 5 -6602774.604 4 23019888.798 23019886.786 23019888.483
+ 33.600 27.100
+ 06 1 2 21 55 30.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -15369339.897 6 -11976098.797 6 21592100.318 21592099.880 21592099.204
+ 40.700 36.700
+ -14521446.660 7 -11315394.594 6 21677382.999 21677382.111 21677382.652
+ 43.900 37.400
+ -913764.575 4 -712020.319 3 24519189.110 24519184.988 24519187.932
+ 27.600 19.300
+ 461480.423 4 359598.016 4 23455688.115 23455688.283 23455686.918
+ 27.900 24.900
+ -24874436.992 8 -19382664.277 8 20080052.737 20080048.703 20080051.954
+ 48.000 49.900
+ -10882687.730 6 -8480009.272 5 22321568.753 22321568.729 22321567.720
+ 37.400 33.400
+ -10318940.523 6 -8040724.766 5 22498487.018 22498486.379 22498486.737
+ 37.100 33.000
+ -8476938.088 5 -6605399.861 4 23019247.117 23019245.791 23019247.034
+ 33.100 27.400
+ 06 1 2 21 56 0.0000000 0 8G10G 4G23G 7G 2G 5G30G13
+ -15457041.389 6 -12044437.581 6 21575410.985 21575410.884 21575409.993
+ 40.800 37.200
+ -14452882.035 7 -11261967.611 6 21690430.561 21690429.410 21690430.180
+ 44.200 37.400
+ -859738.718 4 -669922.223 3 24529469.978 24529466.034 24529468.475
+ 25.300 19.300
+ 558659.014 4 435321.545 3 23474179.726 23474180.636 23474178.740
+ 24.200 23.400
+ -24870864.707 7 -19379880.669 8 20080732.266 20080728.442 20080731.515
+ 47.900 49.800
+ -10828451.552 6 -8437747.336 5 22331889.951 22331889.788 22331888.794
+ 37.100 33.800
+ -10320775.612 6 -8042154.691 5 22498137.498 22498136.778 22498137.340
+ 37.000 32.000
+ -8479690.389 5 -6607544.499 4 23018724.138 23018722.235 23018723.897
+ 34.000 27.100
+ 06 1 2 21 56 30.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -135566.620 3 -105635.654 2 24787152.620 24787152.368 24787151.527
+ 21.100 16.100
+ -15544346.847 6 -12112467.755 6 21558797.628 21558797.072 21558796.423
+ 40.900 37.400
+ -14384124.097 7 -11208389.986 6 21703514.777 21703513.702 21703514.316
+ 43.900 37.400
+ -805213.261 3 -627434.833 3 24539845.223 24539841.866 24539844.647
+ 23.000 18.600
+ 656036.147 4 511199.801 3 23492710.860 23492710.856 23492709.496
+ 26.200 23.800
+ -24866920.410 7 -19376807.181 8 20081482.742 20081479.008 20081481.958
+ 47.700 49.700
+ -10773739.332 6 -8395114.457 5 22342301.378 22342301.058 22342300.212
+ 36.600 33.800
+ -10321995.411 6 -8043105.163 5 22497905.446 22497904.639 22497905.111
+ 37.100 32.000
+ -8481825.472 5 -6609208.184 4 23018316.998 23018315.908 23018317.043
+ 34.000 27.600
+ 06 1 2 21 57 0.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -237179.442 3 -184814.348 3 24767814.959 24767816.078 24767815.035
+ 21.600 19.300
+ -15631254.417 6 -12180187.893 6 21542259.992 21542258.980 21542258.717
+ 41.100 37.000
+ -14315173.897 7 -11154662.547 6 21716635.749 21716634.570 21716635.192
+ 44.000 37.200
+ -750190.252 4 -584559.781 2 24550316.303 24550312.314 24550315.181
+ 25.300 17.800
+ 753610.431 4 587231.680 4 23511278.204 23511279.112 23511277.247
+ 25.600 24.600
+ -24862604.345 7 -19373444.006 8 20082304.270 20082300.391 20082303.397
+ 47.600 49.800
+ -10718553.649 5 -8352112.654 5 22352802.451 22352802.337 22352801.407
+ 35.700 33.400
+ -10322600.191 6 -8043576.407 5 22497790.680 22497789.464 22497790.300
+ 37.200 31.600
+ -8483342.853 5 -6610390.537 4 23018028.969 23018027.041 23018028.746
+ 34.400 27.900
+ 06 1 2 21 57 30.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -338737.624 3 -263950.494 3 24748490.324 24748490.287 24748489.541
+ 22.600 18.600
+ -15717762.270 6 -12247596.564 6 21525797.832 21525797.111 21525796.660
+ 41.200 37.200
+ -14246032.297 7 -11100785.970 6 21729792.699 21729791.655 21729792.407
+ 43.900 37.100
+ -694671.524 4 -541298.397 2 24560881.691 24560876.642 24560880.469
+ 29.000 13.900
+ 851380.386 4 663416.048 3 23529883.574 23529883.509 23529882.479
+ 26.500 19.300
+ -24857916.772 7 -19369791.344 8 20083196.130 20083192.406 20083195.360
+ 47.700 49.700
+ -10662896.854 5 -8308743.755 5 22363393.730 22363393.276 22363392.602
+ 35.700 33.000
+ -10322590.491 6 -8043568.835 5 22497792.405 22497791.225 22497792.076
+ 36.800 32.300
+ -8484242.009 5 -6611091.174 4 23017857.677 23017855.890 23017857.432
+ 33.800 27.100
+ 06 1 2 21 58 0.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -440239.221 3 -343042.517 2 24729174.441 24729174.412 24729173.884
+ 23.800 16.100
+ -15803868.501 6 -12314692.286 6 21509412.432 21509411.619 21509411.213
+ 41.300 37.200
+ -14176700.262 7 -11046761.011 6 21742986.233 21742985.010 21742985.829
+ 44.000 37.100
+ -638658.758 4 -497652.100 3 24571540.227 24571535.787 24571538.884
+ 25.300 18.600
+ 949344.486 3 739751.687 4 23548524.352 23548525.947 23548523.785
+ 23.800 24.200
+ -24852857.820 7 -19365849.291 8 20084158.640 20084155.048 20084157.956
+ 47.700 49.800
+ -10606771.275 6 -8265009.553 5 22374074.490 22374073.618 22374073.249
+ 36.500 32.800
+ -10321966.464 6 -8043082.566 5 22497910.967 22497910.084 22497910.655
+ 36.700 32.400
+ -8484522.568 5 -6611309.801 4 23017803.976 23017802.648 23017803.747
+ 33.100 27.900
+ 06 1 2 21 58 30.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -541682.532 4 -422089.174 2 24709870.588 24709870.769 24709870.331
+ 24.900 17.000
+ -15889571.265 6 -12381473.614 6 21493103.725 21493102.644 21493102.571
+ 41.700 37.000
+ -14107178.557 7 -10992588.255 6 21756215.480 21756214.739 21756215.242
+ 43.800 37.500
+ -582153.408 3 -453621.947 3 24582291.928 24582288.902 24582291.337
+ 23.000 21.100
+ 1047501.073 4 816237.306 3 23567204.549 23567204.315 23567203.101
+ 26.500 20.500
+ -24847427.413 7 -19361617.804 8 20085192.202 20085188.394 20085191.386
+ 47.700 49.600
+ -10550179.212 6 -8220911.853 5 22384843.764 22384842.906 22384842.564
+ 36.900 32.600
+ -10320728.573 6 -8042117.958 5 22498146.186 22498145.805 22498146.002
+ 36.100 32.400
+ -8484184.126 5 -6611046.065 4 23017868.709 23017866.835 23017868.520
+ 33.600 27.400
+ 06 1 2 21 59 0.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -643065.560 3 -501088.838 3 24690578.365 24690578.520 24690577.615
+ 22.100 22.100
+ -15974868.805 6 -12447939.189 6 21476871.975 21476871.225 21476870.811
+ 41.500 37.300
+ -14037468.223 7 -10938268.510 6 21769481.104 21769480.167 21769480.732
+ 43.800 37.100
+ -525157.972 3 -409209.928 3 24593138.525 24593134.140 24593137.272
+ 22.600 19.900
+ 1145848.824 4 892871.896 3 23585919.374 23585919.433 23585917.785
+ 24.900 23.000
+ -24841626.090 7 -19357097.283 8 20086296.165 20086292.332 20086295.369
+ 47.800 49.600
+ -10493123.219 6 -8176452.642 5 22395701.205 22395700.394 22395700.151
+ 37.200 32.600
+ -10318877.075 6 -8040675.222 5 22498498.528 22498498.314 22498498.290
+ 36.500 32.700
+ -8483226.453 5 -6610299.820 4 23018050.446 23018049.137 23018050.400
+ 33.400 28.100
+ 06 1 2 21 59 30.0000000 0 9G 6G10G 4G23G 7G 2G 5G30G13
+ -744386.875 3 -580040.386 3 24671297.150 24671297.451 24671296.692
+ 23.800 23.400
+ -16059759.202 6 -12514087.494 6 21460717.616 21460717.032 21460716.542
+ 41.300 37.600
+ -13967570.188 7 -10883802.493 6 21782782.575 21782781.059 21782782.112
+ 43.700 36.600
+ -467674.176 4 -364417.418 2 24604077.321 24604073.226 24604076.101
+ 24.600 17.000
+ 1244386.040 4 969654.080 4 23604670.554 23604670.464 23604669.489
+ 27.100 25.300
+ -24835453.720 7 -19352287.644 8 20087470.843 20087466.923 20087469.996
+ 47.800 49.600
+ -10435605.642 6 -8131633.760 5 22406646.174 22406645.774 22406645.041
+ 36.200 33.500
+ -10316412.413 6 -8038754.692 5 22498967.904 22498967.306 22498967.687
+ 37.000 33.100
+ -8481649.069 5 -6609070.660 4 23018350.733 23018349.327 23018350.444
+ 32.600 27.400
+ 06 1 2 22 0 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -845644.339 4 -658942.218 3 24652028.794 24652028.384 24652027.777
+ 26.200 22.100
+ -16144240.451 6 -12579917.003 6 21444641.299 21444640.692 21444640.336
+ 41.800 37.800
+ -13897485.351 7 -10829190.938 6 21796118.980 21796117.799 21796118.614
+ 43.400 36.900
+ 1343111.146 3 1046582.717 3 23623455.961 23623456.848 23623455.202
+ 23.800 23.000
+ -24828910.552 8 -19347189.067 8 20088715.857 20088712.038 20088715.114
+ 48.000 49.500
+ -10377628.908 6 -8086457.118 5 22417678.600 22417678.442 22417677.538
+ 36.200 34.100
+ -10313335.105 6 -8036356.780 5 22499553.366 22499552.585 22499553.193
+ 36.700 32.600
+ -8479451.694 5 -6607358.403 4 23018769.021 23018767.568 23018768.799
+ 33.100 26.800
+ 06 1 2 22 0 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -946836.320 3 -737793.042 3 24632771.867 24632772.090 24632771.438
+ 23.800 21.100
+ -16228310.888 6 -12645426.388 6 21428643.314 21428642.781 21428642.165
+ 41.500 38.200
+ -13827214.497 7 -10774434.428 6 21809491.403 21809489.885 21809490.914
+ 43.500 36.500
+ 1442022.744 4 1123656.644 4 23642279.964 23642279.588 23642278.727
+ 25.900 24.200
+ -24821996.846 7 -19341801.761 8 20090031.479 20090027.667 20090030.740
+ 47.800 49.600
+ -10319195.567 6 -8040924.662 5 22428798.530 22428797.959 22428797.430
+ 36.200 33.800
+ -10309645.585 5 -8033481.824 5 22500255.310 22500254.857 22500254.983
+ 35.600 32.700
+ -8476634.040 5 -6605162.815 4 23019305.288 23019303.820 23019304.954
+ 33.200 28.100
+ 06 1 2 22 1 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1047960.863 3 -816591.305 3 24613529.184 24613529.376 24613528.161
+ 22.100 23.400
+ -16311968.799 6 -12710614.331 6 21412723.557 21412723.090 21412722.508
+ 41.600 37.800
+ -13756758.505 7 -10719533.655 6 21822898.338 21822897.380 21822897.927
+ 43.200 36.700
+ 1541119.163 4 1200874.590 4 23661136.909 23661137.101 23661135.719
+ 24.200 25.600
+ -24814712.727 7 -19336125.824 8 20091417.692 20091413.823 20091416.856
+ 47.900 49.500
+ -10260308.053 6 -7995038.312 5 22440004.630 22440003.886 22440003.397
+ 36.900 33.900
+ -10305344.214 5 -8030130.101 5 22501073.808 22501073.371 22501073.454
+ 35.800 32.800
+ -8473196.300 5 -6602484.039 4 23019959.258 23019957.854 23019958.946
+ 32.400 27.600
+ 06 1 2 22 1 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1149016.293 3 -895335.728 3 24594298.889 24594298.664 24594297.551
+ 22.600 18.600
+ -16395212.226 7 -12775479.299 6 21396883.293 21396882.308 21396882.042
+ 42.000 38.100
+ -13686118.482 7 -10664489.494 6 21836340.602 21836339.740 21836340.287
+ 43.100 36.400
+ 1640398.904 4 1278235.396 3 23680028.965 23680028.588 23680027.563
+ 24.600 21.100
+ -24807058.193 7 -19330161.251 8 20092874.215 20092870.474 20092873.422
+ 47.800 49.600
+ -10200968.775 6 -7948799.926 5 22451296.132 22451295.618 22451295.052
+ 36.900 33.800
+ -10300431.682 5 -8026302.148 5 22502008.511 22502008.207 22502008.243
+ 35.900 32.600
+ -8469137.899 5 -6599321.656 4 23020732.044 23020729.832 23020731.465
+ 33.100 27.100
+ 06 1 2 22 2 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1250000.764 3 -974024.906 3 24575082.073 24575082.181 24575081.151
+ 22.100 21.100
+ -16478039.424 7 -12840019.930 6 21381121.564 21381120.652 21381120.379
+ 42.400 38.000
+ -13615295.258 7 -10609302.565 6 21849818.083 21849816.715 21849817.574
+ 43.100 36.300
+ 1739860.394 3 1355737.817 3 23698954.757 23698956.072 23698954.709
+ 23.400 22.600
+ -24799033.645 7 -19323908.354 8 20094401.201 20094397.489 20094400.474
+ 47.800 49.600
+ -10141180.289 6 -7902211.504 5 22462673.290 22462672.902 22462672.154
+ 36.500 32.600
+ -10294908.515 6 -8021998.373 5 22503059.529 22503059.250 22503059.265
+ 36.200 33.200
+ -8464458.803 5 -6595675.577 4 23021622.097 23021620.085 23021621.689
+ 32.700 26.800
+ 06 1 2 22 2 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1350912.491 3 -1052657.290 3 24555878.216 24555879.151 24555878.199
+ 23.400 19.900
+ -16560448.639 7 -12904234.866 6 21365439.876 21365438.797 21365438.582
+ 42.400 38.200
+ -13544289.562 7 -10553973.455 5 21863330.110 21863328.730 21863329.668
+ 43.200 35.900
+ 1839502.076 3 1433380.669 3 23717916.419 23717916.888 23717915.654
+ 23.800 18.600
+ -24790639.131 7 -19317367.172 8 20095998.694 20095994.889 20095997.862
+ 47.700 49.500
+ -10080945.100 6 -7855275.007 5 22474135.941 22474135.403 22474134.707
+ 36.500 32.700
+ -10288775.098 6 -8017219.080 5 22504226.849 22504226.394 22504226.577
+ 36.200 32.400
+ -8459158.674 5 -6591545.590 4 23022630.474 23022628.619 23022630.207
+ 32.800 26.200
+ 06 1 2 22 3 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1451749.386 4 -1131231.468 2 24536690.207 24536689.240 24536689.522
+ 25.300 17.000
+ -16642438.406 7 -12968122.939 6 21349837.405 21349836.557 21349836.242
+ 42.400 38.400
+ -13473102.398 7 -10498502.932 5 21876876.537 21876875.034 21876875.991
+ 42.700 35.900
+ 1939322.292 3 1511162.651 3 23736912.183 23736912.408 23736911.180
+ 22.600 19.900
+ -24781875.026 7 -19310537.994 8 20097666.368 20097662.683 20097665.691
+ 47.800 49.700
+ -10020265.747 6 -7807992.412 5 22485683.156 22485682.332 22485681.991
+ 36.600 32.400
+ -10282032.146 6 -8011964.821 5 22505510.195 22505509.382 22505509.982
+ 36.100 32.300
+ -8453237.529 5 -6586931.695 4 23023757.442 23023755.344 23023757.155
+ 33.200 25.900
+ 06 1 2 22 3 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1552509.704 4 -1209745.944 3 24517516.594 24517516.071 24517515.606
+ 26.200 21.600
+ -16724006.551 7 -13031682.478 6 21334315.319 21334314.618 21334314.250
+ 42.500 38.400
+ -13401734.526 7 -10442891.605 5 21890457.229 21890455.883 21890456.906
+ 43.000 35.600
+ 2039319.573 3 1589082.576 3 23755941.515 23755941.228 23755939.505
+ 21.600 21.100
+ -24772741.342 7 -19303420.837 8 20099404.552 20099400.757 20099403.771
+ 47.800 49.600
+ -9959144.790 6 -7760365.699 5 22497314.063 22497313.398 22497312.828
+ 36.500 32.000
+ -10274680.355 6 -8006236.150 5 22506909.281 22506908.352 22506908.967
+ 36.500 31.800
+ -8446695.351 5 -6581833.878 4 23025002.622 23025000.152 23025002.135
+ 33.900 26.200
+ 06 1 2 22 4 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1653191.509 4 -1288199.236 3 24498356.674 24498357.051 24498356.538
+ 27.400 23.000
+ -16805151.330 7 -13094912.128 6 21318874.190 21318873.302 21318873.089
+ 42.800 38.700
+ -13330186.987 7 -10387140.282 5 21904072.480 21904071.130 21904071.996
+ 42.800 35.900
+ 2139492.329 4 1667139.209 3 23775004.065 23775003.133 23775002.710
+ 25.300 19.900
+ -24763238.495 7 -19296016.017 8 20101212.880 20101209.071 20101212.094
+ 47.700 49.600
+ -9897584.716 5 -7712396.809 5 22509028.513 22509028.048 22509027.297
+ 35.900 32.400
+ -10266720.355 6 -8000033.539 5 22508423.669 22508422.895 22508423.418
+ 36.400 31.100
+ -8439531.743 5 -6576251.830 4 23026365.972 23026363.275 23026365.367
+ 32.300 25.600
+ 06 1 2 22 4 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1753792.934 4 -1366589.893 4 24479212.001 24479213.188 24479212.007
+ 24.900 25.300
+ -16885871.166 7 -13157810.635 6 21303513.373 21303512.756 21303512.307
+ 42.200 38.900
+ -13258460.552 7 -10331249.563 5 21917721.645 21917720.286 21917721.140
+ 43.200 35.900
+ 2239838.925 3 1745331.373 3 23794098.708 23794099.483 23794097.011
+ 21.600 22.100
+ -24753366.625 7 -19288323.647 8 20103091.237 20103087.666 20103090.545
+ 47.800 49.700
+ -9835588.199 5 -7664087.844 5 22520825.771 22520825.451 22520824.685
+ 35.700 31.600
+ -10258152.716 6 -7993357.447 5 22510054.267 22510053.363 22510053.872
+ 36.500 30.800
+ -8431746.914 5 -6570185.723 4 23027846.542 23027844.837 23027846.152
+ 32.800 25.300
+ 06 1 2 22 5 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1854312.317 4 -1444916.592 4 24460084.347 24460085.450 24460083.654
+ 25.300 25.300
+ -16966164.103 7 -13220376.503 6 21288233.852 21288233.256 21288232.876
+ 42.300 38.500
+ -13186556.195 7 -10275220.196 5 21931404.656 21931403.240 21931404.210
+ 43.100 35.900
+ 2340357.756 4 1823657.696 2 23813227.232 23813226.585 23813226.081
+ 24.900 17.800
+ -24743125.598 7 -19280343.622 8 20105040.209 20105036.523 20105039.443
+ 47.600 49.600
+ -9773157.847 5 -7615440.829 5 22532705.704 22532705.589 22532704.580
+ 34.700 32.000
+ -10248978.233 6 -7986208.494 5 22511800.112 22511799.055 22511799.728
+ 36.100 30.600
+ -8423340.846 5 -6563635.536 4 23029446.702 23029444.365 23029446.268
+ 33.000 25.900
+ 06 1 2 22 5 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -1954747.713 3 -1523177.865 4 24440972.904 24440973.229 24440971.402
+ 21.600 24.600
+ -17046028.630 7 -13282608.542 6 21273036.126 21273035.578 21273035.051
+ 42.500 38.700
+ -13114474.598 7 -10219052.719 6 21945121.017 21945119.968 21945120.622
+ 43.000 36.100
+ 2441047.280 3 1902117.055 3 23832386.309 23832387.619 23832385.722
+ 23.400 19.300
+ -24732515.947 7 -19272076.357 8 20107059.090 20107055.437 20107058.278
+ 47.700 49.600
+ -9710296.125 5 -7566457.665 5 22544668.153 22544667.600 22544666.958
+ 35.400 31.600
+ -10239197.631 6 -7978587.237 5 22513661.460 22513660.327 22513661.062
+ 36.500 31.000
+ -8414313.717 5 -6556601.407 4 23031164.200 23031162.004 23031163.854
+ 32.800 26.800
+ 06 1 2 22 6 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2055097.091 3 -1601372.077 4 24421876.290 24421877.410 24421875.988
+ 23.000 28.100
+ -17125463.307 7 -13344505.627 6 21257920.467 21257919.797 21257919.275
+ 42.500 39.300
+ -13042216.558 7 -10162747.754 6 21958871.300 21958870.252 21958871.034
+ 42.900 36.300
+ 2541905.768 4 1980708.101 3 23851580.984 23851579.789 23851579.212
+ 25.600 20.500
+ -24721537.607 7 -19263521.803 8 20109148.315 20109144.478 20109147.468
+ 47.500 49.500
+ -9647005.661 5 -7517140.416 5 22556711.688 22556711.335 22556710.596
+ 35.500 31.600
+ -10228811.681 5 -7970494.289 5 22515637.417 22515636.609 22515636.987
+ 35.700 30.800
+ -8404665.159 5 -6549083.031 4 23033000.843 23032998.313 23033000.464
+ 33.100 25.600
+ 06 1 2 22 6 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2155358.626 3 -1679497.815 3 24402795.984 24402797.723 24402795.660
+ 21.600 23.800
+ -17204466.272 7 -13406066.310 6 21242886.485 21242885.959 21242885.341
+ 42.700 39.500
+ -12969783.129 7 -10106306.122 5 21972655.024 21972653.707 21972654.563
+ 42.800 35.900
+ 2642931.697 4 2059429.624 3 23870805.259 23870805.430 23870803.894
+ 24.200 20.500
+ -24710190.868 7 -19254680.181 8 20111307.355 20111303.680 20111306.561
+ 47.600 49.500
+ -9583289.137 5 -7467491.181 5 22568836.657 22568836.155 22568835.493
+ 35.600 31.600
+ -10217821.060 5 -7961930.173 5 22517729.031 22517727.925 22517728.531
+ 35.400 30.600
+ -8394395.575 5 -6541080.738 4 23034954.061 23034952.776 23034954.013
+ 32.600 27.100
+ 06 1 2 22 7 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2255530.386 4 -1757553.654 3 24383734.475 24383735.558 24383734.149
+ 26.800 22.100
+ -17283035.932 7 -13467289.358 6 21227935.104 21227934.451 21227933.932
+ 42.400 39.300
+ -12897175.127 7 -10049728.454 5 21986471.941 21986470.804 21986471.520
+ 42.700 35.900
+ 2744123.553 3 2138280.341 3 23890061.063 23890061.734 23890060.048
+ 22.100 20.500
+ -24698476.079 7 -19245551.765 8 20113536.685 20113532.926 20113535.830
+ 47.400 49.400
+ -9519149.123 6 -7417511.936 5 22581042.138 22581041.722 22581041.028
+ 36.100 32.400
+ -10206226.593 5 -7952895.480 4 22519935.597 22519934.417 22519935.064
+ 34.000 28.400
+ -8383504.915 5 -6532594.497 4 23037026.849 23037025.019 23037026.542
+ 32.600 24.900
+ 06 1 2 22 7 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2355610.392 4 -1835537.978 2 24364689.576 24364689.952 24364689.587
+ 24.900 17.000
+ -17361170.492 7 -13528173.377 6 21213066.582 21213065.792 21213065.539
+ 42.800 39.100
+ -12824393.432 7 -9993015.439 5 22000321.563 22000320.659 22000321.289
+ 42.200 35.800
+ 2845479.517 3 2217259.030 3 23909348.144 23909349.299 23909347.469
+ 23.000 19.300
+ -24686393.326 7 -19236136.621 8 20115835.977 20115832.117 20115835.153
+ 47.700 49.300
+ -9454588.305 5 -7367204.805 5 22593327.651 22593327.543 22593326.577
+ 35.500 32.400
+ -10194029.145 6 -7943390.973 5 22522256.758 22522255.381 22522256.340
+ 36.500 31.000
+ -8371993.441 5 -6523624.500 4 23039217.321 23039215.756 23039216.949
+ 32.300 27.600
+ 06 1 2 22 8 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2455596.792 4 -1913449.442 3 24345663.820 24345663.319 24345663.091
+ 25.600 18.600
+ -17438868.364 7 -13588717.111 6 21198281.291 21198280.254 21198280.136
+ 43.100 39.100
+ -12751438.795 7 -9936167.669 5 22014204.369 22014203.305 22014204.024
+ 42.000 35.500
+ 2946998.093 3 2296364.408 3 23928666.111 23928666.620 23928665.065
+ 19.300 18.600
+ -24673942.816 7 -19226434.918 8 20118205.221 20118201.390 20118204.403
+ 47.500 49.100
+ -9389609.251 5 -7316571.785 5 22605692.955 22605692.336 22605691.880
+ 35.600 32.600
+ -10181229.541 6 -7933417.247 5 22524692.117 22524691.340 22524691.623
+ 36.000 31.600
+ -8359861.048 5 -6514170.700 4 23041525.888 23041524.176 23041525.867
+ 33.000 26.200
+ 06 1 2 22 8 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2555487.634 4 -1991286.362 3 24326655.365 24326654.757 24326654.555
+ 26.800 18.600
+ -17516127.902 7 -13648919.299 6 21183578.980 21183578.253 21183577.913
+ 43.200 39.100
+ -12678312.205 7 -9879185.913 5 22028120.317 22028119.050 22028119.819
+ 42.700 35.900
+ 3048677.659 3 2375595.211 3 23948016.289 23948016.026 23948014.732
+ 20.500 20.500
+ -24661124.591 7 -19216446.678 8 20120644.365 20120640.700 20120643.571
+ 47.700 49.300
+ -9324214.734 5 -7265615.027 5 22618137.186 22618136.312 22618136.039
+ 35.300 31.500
+ -10167828.766 6 -7922975.072 5 22527242.248 22527241.336 22527241.818
+ 36.200 31.600
+ -8347108.233 5 -6504233.440 4 23043952.474 23043951.613 23043952.428
+ 31.600 26.800
+ 06 1 2 22 9 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2655280.942 4 -2069047.329 2 24307664.842 24307664.061 24307664.318
+ 27.100 15.100
+ -17592947.719 7 -13708778.850 6 21168960.816 21168959.938 21168959.642
+ 43.300 39.500
+ -12605014.377 7 -9822070.709 5 22042068.118 22042067.033 22042067.764
+ 42.000 35.200
+ 3150516.399 3 2454950.072 3 23967395.380 23967395.440 23967394.310
+ 23.800 19.900
+ -24647939.318 7 -19206172.429 8 20123153.477 20123149.705 20123152.693
+ 47.700 49.100
+ -9258407.381 5 -7214336.578 5 22630659.869 22630658.939 22630658.687
+ 35.100 30.600
+ -10153827.681 6 -7912065.124 5 22529906.741 22529905.680 22529906.317
+ 36.900 32.000
+ -8333735.059 5 -6493812.775 4 23046497.805 23046496.163 23046497.326
+ 31.800 26.800
+ 06 1 2 22 9 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2754974.943 4 -2146730.906 3 24288693.460 24288692.693 24288693.042
+ 26.800 19.300
+ -17669326.111 7 -13768294.440 6 21154426.429 21154425.576 21154425.233
+ 43.000 39.500
+ -12531546.007 7 -9764822.624 5 22056049.052 22056047.456 22056048.515
+ 42.100 34.700
+ 3252512.860 2 2534427.838 3 23986803.727 23986804.324 23986802.859
+ 17.800 21.600
+ -24634387.036 7 -19195612.196 8 20125732.653 20125728.511 20125731.790
+ 47.700 49.000
+ -9192189.848 5 -7162738.503 5 22643260.760 22643260.060 22643259.608
+ 35.100 30.800
+ -10139227.235 6 -7900688.141 5 22532685.189 22532684.159 22532684.820
+ 37.200 32.100
+ -8319741.587 5 -6482908.758 4 23049160.939 23049159.000 23049160.602
+ 31.800 27.100
+ 06 1 2 22 10 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2854567.599 4 -2224335.541 3 24269742.277 24269741.421 24269741.229
+ 29.500 19.300
+ -17745261.549 7 -13827464.866 6 21139976.472 21139975.532 21139975.295
+ 43.200 39.700
+ -12457908.130 6 -9707442.452 5 22070061.770 22070060.269 22070061.232
+ 41.800 34.600
+ 3354665.343 3 2614027.149 3 24006244.015 24006243.991 24006242.267
+ 22.600 23.800
+ -24620467.919 7 -19184766.118 8 20128381.132 20128377.243 20128380.434
+ 47.800 49.000
+ -9125564.963 5 -7110823.021 5 22655939.040 22655938.424 22655937.787
+ 34.400 31.000
+ -10124028.330 6 -7888844.827 5 22535577.341 22535576.390 22535576.871
+ 36.400 32.100
+ -8305128.390 5 -6471521.847 4 23051941.048 23051939.824 23051940.909
+ 32.600 27.400
+ 06 1 2 22 10 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -2954056.991 4 -2301859.670 3 24250809.483 24250809.304 24250808.916
+ 26.800 21.600
+ -17820752.519 7 -13886288.965 6 21125611.251 21125609.954 21125609.938
+ 43.500 39.700
+ -12384101.539 6 -9649930.829 5 22084106.463 22084105.196 22084106.084
+ 41.600 34.600
+ 3456972.293 2 2693746.814 3 24025712.420 24025712.143 24025711.235
+ 17.800 21.600
+ -24606182.210 7 -19173634.386 8 20131099.748 20131095.781 20131098.983
+ 47.800 49.000
+ -9058535.310 5 -7058592.128 5 22668694.171 22668693.568 22668692.943
+ 34.400 30.100
+ -10108232.019 6 -7876536.000 5 22538583.203 22538582.507 22538582.916
+ 36.800 32.400
+ -8289895.530 5 -6459652.090 4 23054839.766 23054838.421 23054839.738
+ 32.800 26.200
+ 06 1 2 22 11 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3053440.943 4 -2379301.653 4 24231897.557 24231897.884 24231896.514
+ 25.300 25.900
+ -17895797.096 7 -13944765.228 6 21111330.332 21111329.462 21111329.269
+ 43.600 39.700
+ -12310127.028 6 -9592288.340 5 22098183.083 22098182.066 22098182.891
+ 41.400 34.500
+ 3559431.963 3 2773585.555 3 24045209.385 24045209.550 24045208.467
+ 21.100 19.900
+ -24591530.369 7 -19162217.358 8 20133887.704 20133883.893 20133886.900
+ 47.600 49.000
+ -8991103.705 5 -7006048.029 5 22681525.632 22681525.373 22681524.519
+ 33.800 30.600
+ -10091839.231 6 -7863762.391 5 22541702.799 22541701.718 22541702.401
+ 36.700 31.800
+ -8274043.483 5 -6447299.828 4 23057856.820 23057854.784 23057856.429
+ 32.400 25.600
+ 06 1 2 22 11 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3152717.531 3 -2456659.963 4 24213006.525 24213005.633 24213005.123
+ 23.400 26.500
+ -17970394.016 7 -14002892.669 6 21097135.254 21097134.031 21097134.048
+ 43.800 39.900
+ -12235985.385 6 -9534515.624 5 22112291.964 22112290.484 22112291.518
+ 41.300 34.000
+ 3662042.676 3 2853541.948 3 24064735.400 24064735.911 24064734.269
+ 19.300 21.100
+ -24576512.086 7 -19150514.789 8 20136745.412 20136741.715 20136744.727
+ 47.600 48.900
+ -8923272.724 5 -6953192.736 5 22694433.796 22694433.058 22694432.561
+ 34.000 30.100
+ -10074850.999 6 -7850524.793 5 22544935.196 22544934.321 22544935.011
+ 36.400 32.000
+ -8257572.398 5 -6434465.201 4 23060990.874 23060989.304 23060990.715
+ 32.400 26.200
+ 06 1 2 22 12 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3251885.073 3 -2533933.285 4 24194134.377 24194134.528 24194133.471
+ 23.000 26.800
+ -18044541.800 7 -14060670.138 6 21083025.302 21083024.256 21083024.071
+ 43.600 39.900
+ -12161677.377 6 -9476613.265 5 22126432.424 22126430.886 22126432.016
+ 41.500 34.300
+ 3764802.872 3 2933614.802 3 24084290.563 24084290.398 24084288.955
+ 23.400 18.600
+ -24561127.858 7 -19138527.068 8 20139673.081 20139669.306 20139672.302
+ 47.400 48.700
+ -8855045.218 5 -6900028.458 4 22707416.928 22707416.396 22707415.884
+ 34.500 29.900
+ -10057268.494 6 -7836824.133 5 22548281.211 22548280.084 22548280.823
+ 36.200 31.300
+ -8240482.682 5 -6421148.533 4 23064243.199 23064241.302 23064242.993
+ 32.600 25.300
+ 06 1 2 22 12 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3350941.241 3 -2611119.825 4 24175285.019 24175284.949 24175283.426
+ 22.100 29.000
+ -18118238.863 7 -14118096.395 6 21069001.319 21069000.292 21069000.075
+ 43.700 40.500
+ -12087203.937 6 -9418582.008 5 22140604.113 22140602.615 22140603.753
+ 41.300 33.800
+ 3867710.696 3 3013802.747 2 24103873.663 24103872.267 24103871.674
+ 23.000 17.000
+ -24545378.282 7 -19126254.661 8 20142670.218 20142666.399 20142669.307
+ 47.500 48.900
+ -8786424.023 5 -6846557.410 5 22720475.372 22720474.655 22720474.067
+ 35.100 30.100
+ -10039092.733 5 -7822661.195 5 22551740.120 22551739.094 22551739.701
+ 35.800 31.800
+ -8222774.763 5 -6407350.134 4 23067612.990 23067610.623 23067612.724
+ 33.000 25.300
+ 06 1 2 22 13 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3449884.365 4 -2688218.340 4 24156457.831 24156455.562 24156456.523
+ 27.400 24.900
+ -18191483.566 7 -14175170.161 6 21055063.243 21055062.160 21055062.067
+ 43.600 40.300
+ -12012565.827 6 -9360422.437 5 22154807.615 22154806.095 22154807.081
+ 41.500 34.400
+ 3970764.672 3 3094104.554 2 24123483.135 24123482.902 24123482.053
+ 23.800 13.900
+ -24529263.188 7 -19113697.435 8 20145736.662 20145732.919 20145735.911
+ 47.500 48.800
+ -8717411.810 5 -6792781.663 4 22733607.552 22733607.336 22733606.493
+ 35.300 29.900
+ -10020324.884 6 -7808036.883 5 22555311.314 22555310.402 22555310.921
+ 36.000 31.800
+ -8204449.259 5 -6393070.515 4 23071100.290 23071098.039 23071099.795
+ 32.400 24.900
+ 06 1 2 22 13 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3548712.253 4 -2765227.016 4 24137650.753 24137650.340 24137649.632
+ 24.200 28.400
+ -18264274.604 7 -14231890.433 6 21041211.592 21041210.534 21041210.327
+ 43.800 40.500
+ -11937763.895 6 -9302135.212 5 22169041.584 22169040.494 22169041.230
+ 41.400 34.100
+ 4073963.081 3 3174518.970 1 24143119.965 24143119.924 24143119.935
+ 19.900 6.500
+ -24512782.951 7 -19100855.685 8 20148872.780 20148868.964 20148872.007
+ 47.500 48.900
+ -8648011.228 5 -6738703.298 4 22746814.469 22746813.916 22746813.301
+ 35.400 29.900
+ -10000965.925 6 -7792951.967 5 22558994.891 22558994.234 22558994.639
+ 36.000 31.800
+ -8185506.507 5 -6378309.944 4 23074704.739 23074702.701 23074704.363
+ 33.100 25.900
+ 06 1 2 22 14 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3647422.827 4 -2842144.359 4 24118866.178 24118866.251 24118865.121
+ 27.600 26.800
+ -18336610.472 7 -14288256.023 6 21027446.375 21027445.310 21027445.100
+ 43.600 40.500
+ -11862798.757 6 -9243720.813 5 22183307.104 22183305.843 22183306.776
+ 41.600 34.000
+ 4177304.138 3 3255044.542 1 24162786.291 24162785.504 24162785.111
+ 22.600 6.500
+ -24495937.708 7 -19087729.511 8 20152078.228 20152074.563 20152077.494
+ 47.500 48.800
+ -8578225.246 5 -6684324.609 4 22760094.148 22760093.568 22760093.058
+ 34.900 29.700
+ -9981017.155 6 -7777407.443 5 22562791.337 22562790.348 22562791.095
+ 36.500 32.000
+ -8165946.891 5 -6363068.678 4 23078426.495 23078424.820 23078426.317
+ 32.000 26.800
+ 06 1 2 22 14 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3746014.095 4 -2918968.670 4 24100104.549 24100105.427 24100103.846
+ 27.600 27.600
+ -18408489.843 7 -14344265.905 6 21013767.932 21013767.028 21013766.782
+ 43.800 40.400
+ -11787671.531 6 -9185180.097 5 22197603.291 22197602.144 22197602.897
+ 41.200 34.300
+ 4280786.290 3 3335680.022 2 24182480.261 24182477.892 24182478.042
+ 21.600 15.100
+ -24478727.683 7 -19074319.087 8 20155353.275 20155349.521 20155352.433
+ 47.400 48.700
+ -8508056.534 5 -6629647.699 4 22773446.785 22773446.145 22773445.643
+ 33.800 29.500
+ -9960479.815 6 -7761404.302 5 22566699.493 22566698.517 22566699.229
+ 36.500 31.800
+ -8145771.071 5 -6347347.247 4 23082266.069 23082264.259 23082265.800
+ 32.300 26.500
+ 06 1 2 22 15 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3844484.287 4 -2995698.673 4 24081367.226 24081366.322 24081365.964
+ 29.000 24.600
+ -18479911.071 7 -14399918.792 6 21000177.083 21000176.002 21000175.856
+ 43.800 40.300
+ -11712382.645 6 -9126513.433 5 22211930.287 22211929.039 22211929.788
+ 41.100 34.400
+ 4384407.783 3 3416424.061 3 24202197.414 24202197.177 24202195.866
+ 21.100 21.600
+ -24461153.360 7 -19060624.799 8 20158697.411 20158693.711 20158696.659
+ 47.400 48.700
+ -8437508.000 5 -6574674.828 4 22786871.276 22786870.997 22786870.241
+ 33.200 29.500
+ -9939355.069 5 -7744943.428 5 22570718.900 22570718.242 22570718.720
+ 35.600 31.100
+ -8124979.501 5 -6331146.022 4 23086222.508 23086221.239 23086222.234
+ 32.700 26.800
+ 06 1 2 22 15 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -3942831.107 4 -3072332.540 3 24062652.867 24062650.830 24062651.535
+ 29.000 21.600
+ -18550873.012 7 -14455213.792 6 20986673.522 20986672.466 20986672.312
+ 43.800 40.700
+ -11636933.183 6 -9067721.636 5 22226288.224 22226286.608 22226287.749
+ 41.000 34.000
+ 4488166.800 3 3497275.231 3 24221939.059 24221941.792 24221939.919
+ 18.600 23.000
+ -24443214.850 7 -19046646.737 8 20162111.056 20162107.368 20162110.307
+ 47.500 48.700
+ -8366582.437 5 -6519408.162 5 22800368.501 22800367.844 22800367.238
+ 33.900 30.200
+ -9917644.157 6 -7728025.820 5 22574850.501 22574849.816 22574850.257
+ 36.000 32.300
+ -8103572.803 5 -6314465.452 4 23090296.485 23090294.275 23090296.225
+ 33.200 26.200
+ 06 1 2 22 16 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4041052.559 4 -3148868.739 3 24043960.901 24043960.365 24043960.176
+ 29.200 21.600
+ -18621374.082 7 -14510149.667 6 20973257.640 20973256.440 20973256.447
+ 44.000 40.600
+ -11561323.601 6 -9008805.077 5 22240675.918 22240674.786 22240675.449
+ 40.300 34.500
+ 4592061.937 2 3578232.465 3 24241710.641 24241712.016 24241709.568
+ 15.100 21.100
+ -24424912.382 7 -19032385.060 8 20165594.122 20165590.257 20165593.250
+ 47.400 48.600
+ -8295282.639 5 -6463849.890 5 22813936.571 22813935.735 22813935.399
+ 34.700 30.200
+ -9895348.259 5 -7710652.376 5 22579093.295 22579092.700 22579093.035
+ 35.600 32.100
+ -8081551.236 5 -6297305.803 4 23094486.782 23094485.298 23094486.427
+ 32.700 26.200
+ 06 1 2 22 16 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4139146.940 4 -3225305.835 3 24025294.349 24025293.401 24025292.964
+ 25.300 19.900
+ -18691412.771 7 -14564725.249 6 20959929.693 20959928.459 20959928.453
+ 44.200 40.500
+ -11485555.077 6 -8949764.665 5 22255093.884 22255092.887 22255093.602
+ 40.600 34.600
+ 4696091.371 3 3659294.356 2 24261507.613 24261507.984 24261506.032
+ 19.300 16.100
+ -24406246.143 7 -19017839.931 8 20169146.006 20169142.269 20169145.227
+ 47.700 48.600
+ -8223611.484 5 -6408002.230 5 22827575.011 22827574.348 22827573.943
+ 34.500 30.400
+ -9872468.748 5 -7692824.153 5 22583447.119 22583446.613 22583446.888
+ 35.700 33.000
+ -8058915.778 5 -6279667.765 4 23098794.492 23098792.165 23098794.196
+ 33.100 26.200
+ 06 1 2 22 17 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4237111.617 4 -3301641.974 2 24006652.319 24006650.666 24006651.662
+ 27.600 16.100
+ -18760987.844 7 -14618939.569 6 20946690.030 20946688.711 20946688.818
+ 44.400 40.300
+ -11409628.097 6 -8890600.781 5 22269542.360 22269541.218 22269541.944
+ 40.400 34.600
+ 4800253.305 3 3740459.561 2 24281330.198 24281329.319 24281328.850
+ 21.600 17.800
+ -24387216.484 7 -19003011.610 8 20172767.261 20172763.452 20172766.513
+ 47.600 48.400
+ -8151571.715 5 -6351867.358 5 22841283.631 22841283.318 22841282.549
+ 34.000 30.400
+ -9849006.900 5 -7674542.166 5 22587911.909 22587911.305 22587911.409
+ 35.500 32.600
+ -8035666.792 5 -6261551.662 4 23103218.339 23103216.098 23103218.081
+ 33.200 25.600
+ 06 1 2 22 17 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4334944.949 4 -3377875.706 3 23988034.973 23988034.655 23988033.930
+ 25.600 21.100
+ -18830098.030 7 -14672791.641 6 20933538.832 20933537.516 20933537.611
+ 44.300 40.600
+ -11333543.503 6 -8831314.083 5 22284020.352 22284019.761 22284020.235
+ 40.000 34.100
+ 4904546.149 3 3821726.716 3 24301174.679 24301176.183 24301174.166
+ 19.900 23.000
+ -24367823.789 7 -18987900.408 8 20176457.535 20176453.786 20176456.775
+ 47.600 48.400
+ -8079166.282 5 -6295447.549 5 22855061.851 22855061.650 22855060.732
+ 33.800 31.000
+ -9824964.008 5 -7655807.429 5 22592486.859 22592486.620 22592486.459
+ 35.300 33.600
+ -8011805.008 5 -6242958.064 4 23107758.674 23107757.510 23107758.573
+ 33.100 27.100
+ 06 1 2 22 18 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4432644.692 4 -3454005.326 4 23969443.856 23969443.125 23969442.756
+ 27.100 25.300
+ -18898741.858 7 -14726280.313 6 20920476.266 20920475.139 20920475.018
+ 44.300 40.900
+ -11257302.204 6 -8771905.281 5 22298528.991 22298527.958 22298528.563
+ 39.800 33.600
+ 5008968.064 3 3903094.464 3 24321046.411 24321046.840 24321045.428
+ 22.100 22.600
+ -24348068.166 7 -18972506.409 8 20180216.742 20180213.143 20180216.087
+ 47.500 48.500
+ -8006397.895 5 -6238744.931 5 22868909.593 22868908.818 22868908.283
+ 33.100 31.100
+ -9800341.412 5 -7636620.972 5 22597172.845 22597171.874 22597172.271
+ 35.500 32.400
+ -7987331.255 5 -6223887.605 4 23112416.270 23112414.122 23112416.056
+ 33.000 25.900
+ 06 1 2 22 18 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4530208.916 4 -3530029.352 4 23950877.426 23950877.030 23950876.891
+ 27.600 27.600
+ -18966917.951 7 -14779404.511 6 20907502.572 20907501.777 20907501.454
+ 44.300 41.400
+ -11180904.736 6 -8712374.779 5 22313066.961 22313065.906 22313066.594
+ 40.000 33.500
+ 5113517.542 3 3984561.555 3 24340942.019 24340942.026 24340940.202
+ 21.100 19.900
+ -24327950.105 7 -18956829.991 8 20184045.299 20184041.439 20184044.512
+ 47.700 48.300
+ -7933269.570 5 -6181761.830 5 22882825.234 22882824.821 22882824.014
+ 32.800 30.800
+ -9775140.683 5 -7616984.029 5 22601968.194 22601967.477 22601967.853
+ 35.700 32.800
+ -7962246.113 5 -6204340.726 4 23117189.730 23117187.664 23117189.316
+ 32.000 25.900
+ 06 1 2 22 19 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4627635.419 4 -3605946.051 4 23932336.632 23932337.359 23932336.328
+ 27.100 27.100
+ -19034624.898 7 -14832163.144 6 20894618.349 20894617.523 20894617.249
+ 44.400 41.500
+ -11104351.974 6 -8652723.281 5 22327634.795 22327633.342 22327634.270
+ 40.000 33.500
+ 5218192.629 3 4066126.567 1 24360858.841 24360860.274 24360859.085
+ 20.500 11.000
+ -24307469.841 7 -18940871.336 8 20187942.693 20187938.676 20187941.799
+ 47.700 48.300
+ -7859784.050 5 -6124500.400 5 22896808.968 22896808.633 22896807.779
+ 32.000 31.300
+ -9749363.106 5 -7596897.582 5 22606873.180 22606872.761 22606872.827
+ 34.600 32.700
+ -7936550.443 5 -6184318.122 4 23122079.442 23122077.781 23122079.212
+ 32.700 26.500
+ 06 1 2 22 19 30.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4724922.234 4 -3681753.901 4 23913823.992 23913824.267 23913823.700
+ 29.200 28.800
+ -19101861.696 7 -14884555.426 6 20881823.659 20881822.637 20881822.575
+ 44.600 41.400
+ -11027644.689 6 -8592951.362 5 22342231.552 22342230.323 22342231.163
+ 40.300 33.000
+ 5322991.683 3 4147788.216 1 24380801.295 24380803.819 24380801.436
+ 21.100 6.500
+ -24286627.196 7 -18924630.308 8 20191908.566 20191904.896 20191907.819
+ 47.600 48.100
+ -7785944.332 5 -6066962.972 5 22910860.014 22910859.932 22910859.028
+ 31.000 31.600
+ -9723010.072 5 -7576362.744 5 22611888.326 22611887.350 22611887.894
+ 35.700 32.700
+ -7910245.003 5 -6163820.347 4 23127085.747 23127083.222 23127085.232
+ 32.400 26.200
+ 06 1 2 22 20 0.0000000 0 8G 6G10G 4G 7G 2G 5G30G13
+ -4822067.273 4 -3757451.244 4 23895337.724 23895338.075 23895337.182
+ 28.100 28.100
+ -19168627.065 7 -14936580.367 6 20869118.635 20869117.502 20869117.469
+ 44.600 41.100
+ -10950783.649 6 -8533059.640 5 22356857.800 22356856.316 22356857.349
+ 40.500 33.400
+ 5427913.058 3 4229545.200 1 24400769.983 24400769.531 24400767.684
+ 19.900 11.000
+ -24265422.904 7 -18908107.474 8 20195943.991 20195939.933 20195943.059
+ 47.500 48.100
+ -7711753.278 5 -6009151.783 5 22924978.572 22924977.985 22924977.375
+ 31.600 31.000
+ -9696083.122 5 -7555380.681 5 22617012.233 22617011.560 22617011.872
+ 35.400 32.600
+ -7883330.708 5 -6142848.154 4 23132206.321 23132204.992 23132206.318
+ 31.600 27.400
+ 06 1 2 22 20 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -4919068.265 5 -3833036.362 4 23876879.904 23876879.257 23876878.985
+ 30.100 27.100
+ -19234919.625 7 -14988236.884 6 20856503.562 20856502.528 20856502.457
+ 44.800 41.500
+ -10873769.605 6 -8473048.696 5 22371512.715 22371511.909 22371512.469
+ 39.600 33.800
+ -24243857.201 7 -18891303.021 8 20200047.485 20200043.650 20200046.720
+ 47.600 48.000
+ -7637213.682 5 -5951068.998 5 22939162.957 22939162.471 22939161.876
+ 32.700 30.200
+ -9668583.610 5 -7533952.473 5 22622245.131 22622244.731 22622244.826
+ 35.900 32.700
+ -7855808.251 5 -6121402.087 4 23137444.130 23137442.431 23137443.732
+ 31.600 27.400
+ 06 1 2 22 21 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5015923.388 4 -3908507.821 4 23858448.642 23858448.646 23858447.720
+ 25.900 28.400
+ -19300738.149 7 -15039524.024 6 20843978.554 20843977.496 20843977.481
+ 44.700 41.100
+ -10796603.357 6 -8412919.165 5 22386196.995 22386196.106 22386196.589
+ 39.100 33.800
+ -24221930.425 7 -18874217.213 7 20204219.826 20204216.214 20204219.113
+ 47.500 47.800
+ -7562328.582 5 -5892716.988 5 22953413.264 22953412.546 22953412.121
+ 33.000 30.200
+ -9640513.159 5 -7512079.377 5 22627586.526 22627586.244 22627586.323
+ 35.400 32.700
+ -7827678.261 5 -6099482.609 4 23142796.993 23142794.868 23142796.579
+ 31.800 25.600
+ 06 1 2 22 21 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5112630.357 4 -3983863.804 4 23840045.084 23840045.168 23840044.738
+ 26.800 24.600
+ -19366081.304 7 -15090440.742 6 20831544.266 20831543.161 20831543.099
+ 44.800 41.500
+ -10719285.495 6 -8352671.483 5 22400910.050 22400909.164 22400909.858
+ 39.500 33.400
+ -24199642.566 7 -18856850.041 7 20208461.192 20208457.504 20208460.516
+ 47.600 47.800
+ -7487100.826 5 -5834097.966 5 22967728.829 22967727.904 22967727.572
+ 33.500 30.100
+ -9611873.234 5 -7489762.533 5 22633036.647 22633036.137 22633036.482
+ 35.900 33.000
+ -7798941.613 5 -6077090.403 4 23148265.486 23148263.187 23148265.283
+ 33.000 26.200
+ 06 1 2 22 22 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5209187.293 4 -4059102.904 4 23821671.620 23821671.286 23821670.799
+ 28.800 25.600
+ -19430947.705 7 -15140985.961 6 20819200.563 20819199.682 20819199.400
+ 44.800 41.900
+ -10641816.899 6 -8292306.339 5 22415652.054 22415650.888 22415651.646
+ 39.400 33.200
+ -24176993.989 7 -18839201.793 7 20212771.095 20212767.386 20212770.381
+ 47.600 47.900
+ -7411533.330 5 -5775214.211 4 22982108.556 22982108.018 22982107.471
+ 34.100 29.900
+ -9582665.350 5 -7467003.139 5 22638594.800 22638594.102 22638594.450
+ 34.800 32.600
+ -7769599.498 5 -6054226.407 4 23153849.421 23153847.231 23153849.055
+ 32.700 25.600
+ 06 1 2 22 22 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5305591.760 4 -4134223.199 4 23803326.449 23803325.960 23803325.742
+ 29.900 25.300
+ -19495336.304 7 -15191158.874 6 20806948.135 20806946.789 20806946.819
+ 44.800 41.700
+ -10564198.277 6 -8231824.298 5 22430422.028 22430421.512 22430421.706
+ 38.700 33.500
+ -24153985.250 7 -18821272.896 7 20217149.661 20217145.829 20217148.888
+ 47.700 47.900
+ -7335628.936 5 -5716067.940 4 22996552.524 22996552.212 22996551.508
+ 32.800 29.500
+ -9552891.199 5 -7443802.487 5 22644260.660 22644259.836 22644260.200
+ 33.900 31.300
+ -7739652.637 5 -6030891.173 4 23159547.857 23159545.411 23159547.664
+ 33.000 24.900
+ 06 1 2 22 23 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5401841.907 5 -4209223.275 4 23785010.207 23785009.205 23785009.688
+ 30.800 24.200
+ -19559246.065 7 -15240958.662 6 20794786.478 20794784.974 20794785.198
+ 45.100 41.900
+ -10486430.235 6 -8171225.830 5 22445220.975 22445219.986 22445220.734
+ 39.200 32.800
+ -24130616.562 7 -18803063.527 7 20221596.598 20221592.724 20221595.769
+ 47.500 47.800
+ -7259390.735 5 -5656661.569 4 23011060.178 23011059.725 23011059.000
+ 32.100 28.600
+ -9522552.382 5 -7420161.843 5 22650033.820 22650033.254 22650033.577
+ 34.900 32.400
+ -7709102.030 5 -6007085.502 3 23165360.955 23165358.965 23165360.704
+ 31.000 23.800
+ 06 1 2 22 23 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5497935.494 5 -4284101.371 4 23766725.165 23766724.280 23766723.837
+ 30.200 26.200
+ -19622675.740 7 -15290384.358 6 20782716.044 20782714.807 20782714.854
+ 45.000 41.900
+ -10408513.639 6 -8110511.604 5 22460048.323 22460047.144 22460047.885
+ 39.000 33.000
+ -24106888.052 7 -18784573.773 7 20226111.830 20226108.090 20226111.031
+ 47.500 47.700
+ -7182821.560 5 -5596997.291 4 23025631.085 23025630.301 23025629.783
+ 31.600 28.400
+ -9491650.373 5 -7396082.338 5 22655914.301 22655913.692 22655913.965
+ 34.600 31.100
+ -7677948.759 5 -5982810.211 4 23171290.126 23171287.392 23171289.545
+ 32.400 25.300
+ 06 1 2 22 24 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5593870.352 4 -4358855.767 4 23748469.163 23748468.558 23748468.113
+ 28.800 27.100
+ -19685624.235 7 -15339435.112 7 20770737.381 20770736.039 20770736.166
+ 45.000 42.000
+ -10330449.085 6 -8049682.079 5 22474903.736 22474902.220 22474903.151
+ 38.900 32.600
+ -24082799.990 7 -18765803.847 7 20230695.591 20230691.825 20230694.786
+ 47.400 47.500
+ -7105924.399 5 -5537077.443 4 23040263.889 23040263.307 23040262.832
+ 31.100 27.600
+ -9460186.753 5 -7371565.225 5 22661901.633 22661900.830 22661901.310
+ 34.900 31.500
+ -7646193.768 5 -5958066.044 4 23177332.426 23177330.305 23177331.676
+ 31.500 25.600
+ 06 1 2 22 24 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5689644.362 4 -4433484.828 4 23730243.161 23730243.283 23730242.678
+ 29.700 27.900
+ -19748090.248 7 -15388109.905 7 20758850.361 20758849.157 20758849.170
+ 45.100 42.100
+ -10252237.539 6 -7988738.014 5 22489786.474 22489785.448 22489786.192
+ 39.100 32.600
+ -24058352.968 7 -18746754.216 7 20235347.657 20235343.924 20235346.951
+ 47.400 47.500
+ -7028702.155 5 -5476904.277 4 23054958.982 23054958.098 23054957.707
+ 31.000 27.100
+ -9428163.390 5 -7346611.954 5 22667995.313 22667994.681 22667995.078
+ 34.600 32.000
+ -7613837.952 5 -5932853.734 4 23183489.208 23183487.514 23183488.796
+ 31.600 24.900
+ 06 1 2 22 25 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5785255.486 4 -4507986.908 4 23712048.807 23712048.825 23712048.272
+ 29.500 26.200
+ -19810072.791 7 -15436407.970 7 20747055.338 20747054.247 20747054.179
+ 45.200 42.300
+ -10173879.508 6 -7927679.818 5 22504698.088 22504696.260 22504697.434
+ 38.800 31.800
+ -24033547.281 7 -18727425.104 7 20240068.078 20240064.316 20240067.330
+ 47.400 47.400
+ -6951157.782 5 -5416480.102 4 23069714.951 23069714.203 23069713.991
+ 31.500 27.400
+ -9395581.912 5 -7321223.784 5 22674195.631 22674194.623 22674195.224
+ 35.100 31.300
+ -7580882.529 5 -5907174.182 4 23189761.216 23189759.083 23189760.774
+ 33.000 26.200
+ 06 1 2 22 25 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5880701.586 4 -4582360.444 4 23693885.836 23693886.102 23693885.602
+ 29.500 27.100
+ -19871570.764 7 -15484328.445 7 20735352.655 20735351.573 20735351.545
+ 45.100 42.200
+ -10095375.832 6 -7866508.118 5 22519636.759 22519635.373 22519636.107
+ 39.000 32.100
+ -24008382.868 7 -18707816.466 7 20244856.827 20244852.936 20244855.999
+ 47.500 47.400
+ -6873294.352 5 -5355807.311 4 23084532.427 23084531.269 23084531.006
+ 31.800 26.800
+ -9362443.885 5 -7295401.931 5 22680501.493 22680501.006 22680501.035
+ 34.700 32.300
+ -7547328.307 5 -5881028.042 4 23196145.943 23196143.902 23196145.539
+ 32.000 25.900
+ 06 1 2 22 26 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -5975980.305 5 -4656603.549 4 23675755.378 23675754.738 23675754.676
+ 30.200 24.900
+ -19932582.861 7 -15531870.316 7 20723742.505 20723741.424 20723741.267
+ 45.100 42.300
+ -10016727.219 6 -7805223.480 5 22534602.920 22534601.548 22534602.484
+ 38.700 31.800
+ -23982860.288 7 -18687928.735 7 20249713.554 20249709.665 20249712.727
+ 47.500 47.100
+ -6795114.696 5 -5294888.117 4 23099408.742 23099408.307 23099407.730
+ 31.600 27.400
+ -9328751.198 5 -7269147.886 5 22686912.845 22686912.367 22686912.447
+ 34.700 32.000
+ -7513176.577 5 -5854416.284 4 23202644.869 23202642.589 23202644.454
+ 32.100 26.200
+ 06 1 2 22 26 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6071089.653 5 -4730714.688 4 23657656.636 23657656.232 23657656.033
+ 30.600 27.100
+ -19993108.192 7 -15579032.886 7 20712224.571 20712223.833 20712223.572
+ 45.000 42.700
+ -9937934.195 6 -7743826.316 5 22549596.344 22549595.292 22549596.030
+ 38.400 31.800
+ -23956979.815 7 -18667762.123 7 20254638.458 20254634.539 20254637.722
+ 47.400 47.100
+ -6716621.780 5 -5233724.819 4 23114345.554 23114345.100 23114344.636
+ 31.100 27.400
+ -9294505.623 5 -7242463.014 5 22693429.790 22693428.943 22693429.412
+ 34.800 31.600
+ -7478428.469 5 -5827339.818 4 23209257.699 23209255.222 23209257.110
+ 31.500 25.600
+ 06 1 2 22 27 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6166027.458 5 -4804692.178 4 23639590.693 23639590.242 23639589.644
+ 30.100 28.100
+ -20053145.681 7 -15625815.317 7 20700800.077 20700799.018 20700798.941
+ 45.000 42.600
+ -9858997.764 6 -7682317.416 5 22564617.443 22564616.340 22564617.187
+ 38.500 31.300
+ -23930741.632 7 -18647316.781 7 20259631.379 20259627.495 20259630.620
+ 47.500 46.900
+ -6637818.688 5 -5172319.843 4 23129341.779 23129340.981 23129340.370
+ 31.000 28.100
+ -9259708.812 5 -7215348.615 5 22700051.335 22700050.398 22700051.086
+ 34.900 31.100
+ -7443085.337 5 -5799799.721 4 23215981.863 23215980.798 23215981.884
+ 30.600 25.300
+ 06 1 2 22 27 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6260791.378 4 -4878534.163 4 23621557.324 23621557.186 23621556.728
+ 29.500 27.900
+ -20112694.156 7 -15672216.701 7 20689468.479 20689467.217 20689467.272
+ 45.200 42.600
+ -9779918.496 6 -7620697.217 5 22579665.974 22579665.148 22579665.535
+ 38.000 33.000
+ -23904145.976 7 -18626592.890 7 20264692.288 20264688.420 20264691.520
+ 47.600 46.900
+ -6558708.393 5 -5110675.471 4 23144395.427 23144395.286 23144394.387
+ 31.600 27.600
+ -9224362.611 5 -7187806.116 5 22706777.490 22706776.544 22706777.176
+ 33.600 31.000
+ -7407147.716 5 -5771796.375 4 23222821.077 23222819.313 23222820.706
+ 31.000 24.900
+ 06 1 2 22 28 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6355379.540 5 -4952239.168 4 23603558.728 23603557.610 23603557.570
+ 30.100 29.000
+ -20171752.707 7 -15718236.323 7 20678229.872 20678228.656 20678228.713
+ 45.100 42.400
+ -9700696.994 6 -7558966.201 5 22594741.379 22594740.196 22594740.873
+ 38.000 32.300
+ -23877193.496 7 -18605590.952 7 20269821.317 20269817.384 20269820.541
+ 47.700 46.900
+ -6479293.814 5 -5048793.998 4 23159507.670 23159507.342 23159506.648
+ 31.800 27.100
+ -9188468.842 5 -7159836.941 5 22713607.660 22713606.824 22713607.422
+ 34.400 30.400
+ -7370617.397 5 -5743331.202 3 23229772.735 23229770.247 23229772.441
+ 31.600 23.400
+ 06 1 2 22 28 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6449789.506 5 -5025805.329 4 23585592.659 23585591.983 23585591.789
+ 31.600 29.000
+ -20230320.241 7 -15763873.336 7 20667084.861 20667083.643 20667083.697
+ 45.200 42.600
+ -9621334.192 6 -7497125.056 5 22609843.794 22609842.194 22609843.137
+ 37.900 31.800
+ -23849884.581 7 -18584311.271 7 20275017.979 20275014.154 20275017.264
+ 47.800 46.900
+ -6399577.999 5 -4986677.798 4 23174677.654 23174676.585 23174676.224
+ 31.500 26.800
+ -9152029.333 5 -7131442.510 5 22720541.900 22720541.138 22720541.681
+ 34.000 31.500
+ -7333495.260 5 -5714404.865 4 23236836.745 23236835.128 23236836.406
+ 31.000 25.600
+ 06 1 2 22 29 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6544019.176 5 -5099231.002 4 23567661.373 23567660.227 23567660.433
+ 32.100 27.100
+ -20288395.773 7 -15809126.966 7 20656033.578 20656032.201 20656032.360
+ 45.300 42.700
+ -9541830.706 6 -7435174.292 5 22624972.531 22624971.698 22624972.058
+ 37.700 32.400
+ -23822219.303 7 -18562753.905 7 20280282.736 20280278.620 20280281.867
+ 47.700 46.800
+ -6319563.912 5 -4924329.167 4 23189903.349 23189902.960 23189902.422
+ 31.500 27.400
+ -9115045.954 5 -7102624.299 5 22727579.506 22727578.854 22727579.330
+ 34.300 30.800
+ -7295782.764 5 -5685018.488 4 23244013.057 23244011.410 23244012.853
+ 31.000 24.200
+ 06 1 2 22 29 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6638066.514 5 -5172514.599 4 23549764.259 23549764.163 23549763.755
+ 32.000 28.600
+ -20345978.226 7 -15853996.386 7 20645075.897 20645074.617 20645074.776
+ 45.400 42.700
+ -9462186.904 6 -7373114.203 5 22640128.442 22640127.255 22640127.878
+ 37.600 32.400
+ -23794198.187 7 -18540919.261 7 20285614.692 20285610.867 20285613.916
+ 47.600 46.700
+ -6239254.577 5 -4861750.476 4 23205185.743 23205185.341 23205184.711
+ 31.100 28.600
+ -9077520.565 5 -7073383.732 5 22734720.090 22734719.718 22734719.949
+ 34.400 30.800
+ -7257481.203 5 -5655173.146 4 23251301.803 23251300.566 23251301.459
+ 32.000 25.300
+ 06 1 2 22 30 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6731929.156 5 -5245654.311 4 23531902.686 23531902.046 23531902.069
+ 30.800 27.100
+ -20403067.022 7 -15898481.138 7 20634211.967 20634211.078 20634210.881
+ 45.300 43.100
+ -9382403.904 6 -7310945.645 5 22655310.390 22655309.498 22655310.019
+ 37.700 32.100
+ -23765821.361 7 -18518807.436 7 20291014.768 20291010.686 20291013.999
+ 47.700 46.500
+ -6158652.993 5 -4798944.070 4 23220524.010 23220523.561 23220522.801
+ 31.000 28.100
+ -9039455.004 5 -7043722.261 5 22741963.977 22741963.148 22741963.781
+ 34.400 30.400
+ -7218591.403 5 -5624869.407 4 23258702.541 23258700.602 23258702.133
+ 30.800 25.900
+ 06 1 2 22 30 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6825605.077 5 -5318648.481 4 23514076.929 23514076.366 23514076.129
+ 31.300 27.900
+ -20459660.960 7 -15942580.282 7 20623442.786 20623441.428 20623441.556
+ 45.500 42.900
+ -9302482.234 6 -7248669.014 5 22670519.248 22670517.824 22670518.726
+ 37.800 31.600
+ -23737089.120 7 -18496418.661 7 20296482.347 20296478.289 20296481.532
+ 47.800 46.500
+ -6077762.165 5 -4735912.282 4 23235916.596 23235916.792 23235915.604
+ 31.600 28.800
+ -9000851.351 5 -7013641.484 5 22749310.127 22749309.266 22749309.847
+ 34.300 30.100
+ -7179115.022 5 -5594108.579 4 23266214.549 23266212.743 23266214.122
+ 30.200 24.600
+ 06 1 2 22 31 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -6919091.770 5 -5391495.221 4 23496287.623 23496286.562 23496286.425
+ 31.300 29.000
+ -20515759.053 7 -15986293.053 7 20612767.355 20612766.222 20612766.262
+ 45.500 42.900
+ -9222422.603 6 -7186284.892 5 22685753.765 22685752.746 22685753.565
+ 37.900 31.600
+ -23708001.970 7 -18473753.328 7 20302017.560 20302013.441 20302016.644
+ 47.600 46.500
+ -5996585.122 5 -4672657.470 4 23251364.497 23251364.170 23251363.330
+ 31.600 28.600
+ -8961711.428 5 -6983142.831 5 22756758.140 22756757.447 22756757.802
+ 34.000 30.200
+ -7139053.342 5 -5562891.678 3 23273838.159 23273835.706 23273837.738
+ 32.000 23.400
+ 06 1 2 22 31 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7012387.360 5 -5464193.068 4 23478533.683 23478532.889 23478532.560
+ 31.000 28.100
+ -20571360.464 7 -16029618.804 7 20602186.792 20602185.715 20602185.669
+ 45.300 43.200
+ -9142225.702 6 -7123793.798 5 22701015.195 22701013.511 22701014.532
+ 36.900 30.600
+ -23678560.176 7 -18450811.660 7 20307619.848 20307615.961 20307619.125
+ 47.500 46.400
+ -5915124.928 5 -4609182.013 4 23266866.180 23266865.538 23266864.845
+ 32.100 29.000
+ -8922037.211 5 -6952227.865 5 22764308.005 22764307.114 22764307.587
+ 33.200 30.400
+ -7098407.652 5 -5531219.727 4 23281572.532 23281570.768 23281572.236
+ 30.800 24.900
+ 06 1 2 22 32 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7105489.372 5 -5536740.051 4 23460817.302 23460816.132 23460816.059
+ 30.400 28.800
+ -20626464.223 7 -16072556.774 7 20591700.853 20591699.812 20591699.787
+ 45.300 43.200
+ -9061892.011 6 -7061196.119 5 22716301.955 22716300.584 22716301.518
+ 37.700 30.800
+ -23648764.303 7 -18427594.089 7 20313289.814 20313285.922 20313289.032
+ 47.400 46.400
+ -5833384.581 5 -4545488.257 4 23282420.476 23282420.057 23282419.311
+ 32.300 28.400
+ -8881830.714 5 -6920898.135 4 22771958.778 22771958.082 22771958.366
+ 33.400 29.900
+ -7057179.590 5 -5499093.955 3 23289418.230 23289415.639 23289417.894
+ 32.100 23.800
+ 06 1 2 22 32 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7198395.689 5 -5609134.549 4 23443136.829 23443136.660 23443136.280
+ 31.800 29.700
+ -20681069.479 7 -16115106.299 7 20581309.986 20581308.702 20581308.780
+ 45.400 43.300
+ -8981422.524 6 -6998492.633 5 22731614.569 22731613.543 22731614.336
+ 37.700 30.400
+ -23618614.213 7 -18404100.503 7 20319027.211 20319023.335 20319026.414
+ 47.300 46.300
+ -5751367.046 5 -4481578.514 4 23298028.011 23298027.641 23298026.872
+ 31.600 27.400
+ -8841093.890 5 -6889155.157 4 22779710.581 22779710.025 22779710.310
+ 33.400 29.500
+ -7015370.580 5 -5466515.499 4 23297374.385 23297371.876 23297373.857
+ 31.300 24.200
+ 06 1 2 22 33 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7291103.985 5 -5681374.768 5 23425495.614 23425495.254 23425494.815
+ 32.700 30.400
+ -20735175.283 7 -16157266.637 7 20571013.915 20571012.631 20571012.712
+ 45.400 43.200
+ -8900817.745 6 -6935683.716 5 22746953.472 22746952.111 22746953.122
+ 37.700 30.800
+ -23588110.498 7 -18380331.370 7 20324831.865 20324827.869 20324831.024
+ 47.300 46.200
+ -5669075.377 5 -4417455.168 4 23313687.373 23313687.224 23313686.191
+ 30.100 28.100
+ -8799828.859 5 -6857000.586 4 22787563.339 22787562.318 22787563.079
+ 34.700 29.500
+ -6972981.748 5 -5433485.254 4 23305440.309 23305438.320 23305440.207
+ 32.000 24.200
+ 06 1 2 22 33 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7383612.293 5 -5753459.140 4 23407891.880 23407890.762 23407890.977
+ 32.000 28.600
+ -20788781.011 7 -16199037.315 7 20560812.952 20560811.718 20560811.894
+ 45.600 43.000
+ -8820078.275 6 -6872769.858 5 22762317.902 22762316.397 22762317.261
+ 37.000 30.600
+ -23557253.631 7 -18356287.048 7 20330703.758 20330699.750 20330702.980
+ 47.400 46.200
+ -5586512.642 5 -4353120.600 4 23329398.573 23329398.136 23329397.473
+ 31.300 26.500
+ -8758037.553 5 -6824435.931 4 22795516.017 22795514.893 22795515.663
+ 33.600 28.600
+ -6930014.428 5 -5400004.249 3 23313616.504 23313614.314 23313616.254
+ 30.600 23.400
+ 06 1 2 22 34 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7475918.210 5 -5825385.783 4 23390325.683 23390325.590 23390325.333
+ 31.600 28.800
+ -20841885.654 7 -16240417.535 7 20550707.504 20550706.281 20550706.336
+ 45.400 43.200
+ -8739204.935 6 -6809751.667 5 22777706.936 22777706.012 22777706.614
+ 36.500 30.600
+ -23526043.935 7 -18331967.797 7 20336642.706 20336638.856 20336641.877
+ 47.300 46.100
+ -5503681.824 4 -4288577.120 4 23345160.561 23345160.233 23345159.483
+ 29.200 25.600
+ -8715722.153 5 -6791462.893 4 22803568.436 22803567.198 22803568.058
+ 33.100 28.600
+ -6886470.341 5 -5366073.783 4 23321902.885 23321900.728 23321902.646
+ 31.500 24.600
+ 06 1 2 22 34 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7568019.484 5 -5897152.962 4 23372800.147 23372799.439 23372799.126
+ 31.100 28.400
+ -20894488.591 7 -16281406.812 7 20540697.731 20540696.236 20540696.546
+ 45.500 43.400
+ -8658198.477 6 -6746629.753 5 22793121.848 22793121.332 22793121.635
+ 36.300 31.100
+ -23494481.969 7 -18307374.053 7 20342648.949 20342644.849 20342648.075
+ 47.400 46.100
+ -5420586.029 4 -4223827.157 4 23360973.176 23360972.633 23360972.012
+ 29.500 24.600
+ -8672884.693 5 -6758083.056 4 22811720.070 22811718.962 22811719.747
+ 33.500 29.000
+ -6842351.094 5 -5331695.171 4 23330298.287 23330296.741 23330298.100
+ 32.100 24.600
+ 06 1 2 22 35 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7659913.972 5 -5968759.021 4 23355313.040 23355312.565 23355312.302
+ 32.400 29.500
+ -20946588.839 7 -16322004.389 7 20530783.253 20530781.935 20530782.134
+ 45.500 43.400
+ -8577059.308 5 -6683404.445 5 22808562.039 22808561.552 22808561.780
+ 35.700 31.500
+ -23462567.450 7 -18282505.590 7 20348721.768 20348717.992 20348721.022
+ 47.500 46.100
+ -5337228.336 5 -4158873.104 3 23376835.434 23376835.117 23376834.694
+ 30.100 23.400
+ -8629527.200 5 -6724298.003 4 22819970.533 22819969.634 22819970.320
+ 33.400 29.700
+ -6797658.037 5 -5296869.391 4 23338803.501 23338801.636 23338802.963
+ 31.000 24.200
+ 06 1 2 22 35 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7751599.420 5 -6040202.194 4 23337866.252 23337865.113 23337865.498
+ 33.200 29.700
+ -20998185.666 7 -16362209.689 7 20520964.781 20520963.535 20520963.591
+ 45.300 43.700
+ -8495788.195 6 -6620076.318 5 22824028.076 22824027.104 22824027.722
+ 36.100 31.600
+ -23430301.178 7 -18257363.027 7 20354861.891 20354857.972 20354861.156
+ 47.300 46.000
+ -5253611.743 4 -4093717.330 4 23392747.819 23392747.062 23392746.507
+ 29.200 25.300
+ -8585651.711 5 -6690109.329 4 22828320.072 22828319.123 22828319.879
+ 34.000 29.500
+ -6752392.516 5 -5261597.557 4 23347417.358 23347415.176 23347417.087
+ 31.600 25.600
+ 06 1 2 22 36 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7843073.482 5 -6111480.660 4 23320458.788 23320458.185 23320458.139
+ 32.800 29.500
+ -21049278.587 7 -16402022.331 7 20511242.041 20511240.770 20511240.808
+ 45.200 43.600
+ -8414385.925 6 -6556645.984 5 22839518.866 22839516.990 22839518.137
+ 36.500 30.400
+ -23397683.270 7 -18231946.474 7 20361068.910 20361065.009 20361068.102
+ 47.400 45.900
+ -5169739.266 4 -4028362.151 4 23408707.977 23408707.491 23408706.768
+ 28.600 25.300
+ -8541260.669 5 -6655518.894 5 22836767.530 22836766.625 22836767.278
+ 34.100 30.100
+ -6706556.245 5 -5225880.971 3 23356139.342 23356137.501 23356139.280
+ 32.000 23.400
+ 06 1 2 22 36 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -7934333.954 5 -6182592.693 4 23303092.972 23303092.030 23303092.101
+ 33.100 29.500
+ -21099866.528 7 -16441441.488 7 20501615.214 20501614.194 20501614.109
+ 45.100 43.800
+ -8332852.874 6 -6493113.735 5 22855033.071 22855032.492 22855032.921
+ 36.000 31.000
+ -23364714.445 7 -18206256.475 7 20367342.512 20367338.838 20367341.780
+ 47.400 45.900
+ -5085613.890 4 -3962809.939 4 23424716.933 23424716.194 23424715.635
+ 29.900 25.300
+ -8496356.016 5 -6620528.261 5 22845312.571 22845311.613 22845312.370
+ 34.100 30.600
+ -6660150.872 5 -5189720.917 4 23364969.517 23364968.512 23364969.413
+ 31.100 25.600
+ 06 1 2 22 37 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8025378.567 5 -6253536.538 5 23285767.670 23285767.058 23285766.946
+ 33.400 31.000
+ -21149948.913 7 -16480466.705 7 20492084.913 20492083.773 20492083.646
+ 45.200 43.800
+ -8251190.024 5 -6429480.374 5 22870573.374 22870572.451 22870572.997
+ 35.800 31.800
+ -23331394.819 7 -18180293.126 7 20373683.018 20373679.353 20373682.366
+ 47.400 45.900
+ -5001238.868 4 -3897063.182 4 23440772.733 23440772.154 23440771.416
+ 29.900 25.900
+ -8450940.004 5 -6585139.173 5 22853954.922 22853954.018 22853954.601
+ 33.900 30.100
+ -6613177.852 5 -5153118.591 4 23373908.472 23373906.603 23373908.374
+ 31.300 24.900
+ 06 1 2 22 37 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8116205.039 5 -6324310.394 5 23268483.546 23268483.325 23268482.999
+ 33.400 31.000
+ -21199525.070 7 -16519097.457 7 20482651.007 20482649.743 20482649.817
+ 45.300 44.000
+ -8169397.711 5 -6365746.118 5 22886137.727 22886136.844 22886137.346
+ 35.400 30.600
+ -23297724.636 7 -18154056.617 7 20380090.449 20380086.529 20380089.600
+ 47.400 45.700
+ -4916617.147 5 -3831124.192 4 23456875.700 23456875.196 23456874.574
+ 31.100 25.900
+ -8405014.857 5 -6549353.347 4 22862694.142 22862693.240 22862693.996
+ 34.600 28.800
+ -6565639.046 5 -5116075.356 3 23382955.162 23382952.542 23382954.847
+ 31.600 23.800
+ 06 1 2 22 38 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8206811.195 5 -6394912.561 4 23251241.703 23251241.205 23251241.074
+ 33.200 29.200
+ -21248594.231 7 -16557333.155 7 20473313.454 20473312.215 20473312.289
+ 45.300 44.000
+ -8087476.752 5 -6301911.610 4 22901727.117 22901726.058 22901726.604
+ 35.100 29.900
+ -23263704.626 7 -18127547.508 7 20386564.241 20386560.355 20386563.448
+ 47.500 45.800
+ -4831751.803 5 -3764995.368 4 23473025.355 23473024.739 23473024.104
+ 31.300 26.800
+ -8358582.688 5 -6513172.429 4 22871530.080 22871529.094 22871529.746
+ 33.000 29.900
+ -6517535.938 5 -5078592.397 4 23392109.005 23392106.608 23392108.649
+ 31.600 24.600
+ 06 1 2 22 38 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8297194.653 5 -6465341.200 4 23234042.775 23234041.732 23234041.657
+ 33.600 29.000
+ -21297155.802 7 -16595173.325 7 20464072.632 20464071.161 20464071.406
+ 45.400 43.800
+ -8005427.675 5 -6237977.277 4 22917340.266 22917339.239 22917339.971
+ 35.400 29.200
+ -23229334.994 7 -18100765.978 7 20393104.639 20393100.644 20393103.862
+ 47.600 45.600
+ -4746645.906 5 -3698679.108 4 23489220.387 23489219.854 23489219.202
+ 32.600 26.800
+ -8311645.729 5 -6476598.197 5 22880461.529 22880460.876 22880461.246
+ 32.000 30.400
+ -6468870.251 5 -5040671.084 3 23401369.813 23401367.507 23401369.504
+ 31.800 23.800
+ 06 1 2 22 39 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8387353.163 5 -6535594.568 4 23216886.062 23216885.100 23216885.063
+ 33.800 28.400
+ -21345208.973 7 -16632617.343 7 20454928.161 20454926.919 20454927.035
+ 45.500 43.900
+ -7923251.319 5 -6173943.770 5 22932978.078 22932977.075 22932977.737
+ 35.600 30.100
+ -23194616.161 7 -18073712.334 7 20399711.474 20399707.335 20399710.667
+ 47.700 45.500
+ -4661302.519 5 -3632177.799 4 23505460.612 23505460.249 23505459.360
+ 31.800 26.800
+ -8264206.406 5 -6439632.511 4 22889488.933 22889488.259 22889488.529
+ 32.400 29.900
+ -6419643.656 5 -5002312.704 4 23410736.830 23410735.588 23410736.653
+ 31.000 25.300
+ 06 1 2 22 39 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8477284.540 5 -6605670.935 5 23199772.324 23199771.740 23199771.555
+ 32.800 30.100
+ -21392753.131 7 -16669664.726 7 20445880.979 20445879.561 20445879.734
+ 45.400 44.000
+ -7840948.357 5 -6109811.600 4 22948639.795 22948638.513 22948639.346
+ 35.200 29.000
+ -23159548.534 7 -18046386.906 7 20406384.435 20406380.416 20406383.717
+ 47.500 45.300
+ -4575724.630 5 -3565493.758 4 23521745.291 23521745.185 23521744.357
+ 31.600 26.500
+ -8216266.761 5 -6402276.942 4 22898611.377 22898611.000 22898611.082
+ 31.600 29.200
+ -6369857.909 5 -4963518.606 4 23420211.272 23420209.132 23420211.008
+ 32.000 25.300
+ 06 1 2 22 40 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8566986.527 5 -6675568.565 5 23182702.520 23182702.258 23182701.859
+ 33.600 31.000
+ -21439787.500 7 -16706314.869 7 20436930.549 20436929.244 20436929.394
+ 45.400 44.000
+ -7758519.157 5 -6045581.064 4 22964325.659 22964324.241 22964325.292
+ 35.600 29.900
+ -23124132.236 7 -18018789.790 7 20413124.033 20413119.969 20413123.225
+ 47.500 45.200
+ -4489915.410 5 -3498629.444 4 23538074.253 23538073.993 23538073.114
+ 30.400 24.600
+ -8167829.146 5 -6364533.360 4 22907828.495 22907828.147 22907828.331
+ 30.800 28.800
+ -6319514.492 5 -4924289.976 3 23429791.710 23429788.923 23429791.154
+ 31.100 23.000
+ 06 1 2 22 40 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8656456.833 5 -6745285.643 5 23165677.254 23165676.470 23165676.330
+ 34.500 31.000
+ -21486311.550 7 -16742567.364 7 20428077.186 20428076.002 20428076.073
+ 45.400 44.200
+ -7675964.375 5 -5981252.687 5 22980034.788 22980034.497 22980034.708
+ 35.100 30.100
+ -23088368.010 7 -17990921.559 7 20419929.615 20419925.681 20419928.876
+ 47.600 45.300
+ -4403877.808 4 -3431587.195 4 23554446.773 23554446.361 23554445.501
+ 28.600 25.300
+ -8118895.830 5 -6326403.524 5 22917140.450 22917140.025 22917140.054
+ 31.800 30.100
+ -6268615.312 5 -4884628.248 3 23439476.818 23439474.815 23439476.550
+ 30.100 23.000
+ 06 1 2 22 41 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8745693.075 5 -6814820.354 5 23148695.819 23148695.424 23148695.210
+ 34.000 31.800
+ -21532324.923 7 -16778421.928 7 20419321.049 20419319.929 20419319.874
+ 45.200 44.100
+ -7593284.787 5 -5916827.033 4 22995768.335 22995767.212 22995767.966
+ 34.500 28.800
+ -23052256.065 7 -17962782.377 7 20426801.616 20426797.610 20426800.841
+ 47.600 45.400
+ -4317615.073 4 -3364369.508 3 23570861.169 23570861.659 23570860.424
+ 26.200 23.800
+ -8069469.248 5 -6287889.316 5 22926546.114 22926545.395 22926545.745
+ 32.300 30.100
+ -6217162.256 5 -4844534.967 4 23449268.255 23449266.357 23449268.049
+ 31.500 25.900
+ 06 1 2 22 41 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8834692.972 5 -6884170.874 5 23131759.448 23131759.377 23131758.999
+ 33.800 32.700
+ -21577826.983 7 -16813878.064 7 20410662.411 20410661.213 20410661.290
+ 45.400 44.300
+ -7510481.031 5 -5852304.651 5 23011526.052 23011525.026 23011525.505
+ 34.700 30.200
+ -23015796.655 7 -17934372.441 7 20433739.700 20433735.630 20433738.836
+ 47.700 45.400
+ -4231130.107 4 -3296978.648 4 23587319.319 23587319.540 23587318.082
+ 25.600 24.200
+ -8019551.732 5 -6248992.569 5 22936045.049 22936044.536 22936044.745
+ 31.300 30.600
+ -6165157.080 4 -4804011.438 3 23459164.050 23459162.314 23459163.769
+ 29.900 22.600
+ 06 1 2 22 42 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -8923454.263 5 -6953335.483 5 23114869.495 23114868.608 23114868.446
+ 33.900 32.400
+ -21622817.198 7 -16848935.362 7 20402101.210 20402099.750 20402099.970
+ 45.500 44.200
+ -7427553.779 5 -5787686.038 4 23027306.425 23027305.224 23027306.048
+ 35.100 29.700
+ -22978990.533 7 -17905692.342 7 20440743.735 20440739.481 20440742.832
+ 47.600 45.200
+ -4144426.114 4 -3229417.138 3 23603818.848 23603818.706 23603817.658
+ 26.800 23.000
+ -7969145.615 5 -6209715.093 4 22945637.335 22945636.401 22945636.939
+ 32.600 29.700
+ -6112601.386 5 -4763058.961 3 23469165.495 23469163.349 23469165.226
+ 30.200 23.000
+ 06 1 2 22 42 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -9011974.804 5 -7022312.488 5 23098024.210 23098023.303 23098023.423
+ 34.400 30.600
+ -21667295.052 7 -16883593.416 7 20393637.188 20393635.815 20393635.961
+ 45.100 44.300
+ -7344503.481 5 -5722971.517 4 23043111.111 23043108.919 23043110.218
+ 34.900 28.800
+ -22941837.968 7 -17876742.285 7 20447813.373 20447809.449 20447812.627
+ 47.600 45.300
+ -4057506.089 4 -3161687.276 4 23620358.858 23620358.982 23620357.912
+ 27.400 24.200
+ -7918253.190 5 -6170058.659 4 22955321.831 22955320.866 22955321.585
+ 34.000 28.600
+ -6059497.136 4 -4721679.009 3 23479270.568 23479268.434 23479270.179
+ 29.900 23.400
+ 06 1 2 22 43 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -9100252.141 5 -7091099.990 4 23081225.311 23081224.516 23081224.521
+ 34.100 29.500
+ -21711260.009 7 -16917851.807 7 20385270.901 20385269.580 20385269.689
+ 45.200 44.100
+ -7261330.840 5 -5658161.676 4 23058937.488 23058936.365 23058937.171
+ 34.700 29.000
+ -22904339.414 7 -17847522.633 7 20454949.343 20454945.197 20454948.382
+ 47.600 45.100
+ -3970373.179 4 -3093791.539 3 23636939.909 23636939.560 23636938.798
+ 28.600 23.000
+ -7866877.001 5 -6130025.263 4 22965098.696 22965097.597 22965098.260
+ 33.900 29.200
+ -6005845.972 4 -4679872.911 4 23489480.058 23489478.299 23489479.560
+ 29.200 24.600
+ 06 1 2 22 43 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -9188283.911 5 -7159696.137 4 23064473.601 23064472.369 23064472.919
+ 35.300 29.500
+ -21754711.447 7 -16951710.058 7 20377002.154 20377001.000 20377001.121
+ 45.300 44.400
+ -7178036.447 5 -5593256.962 4 23074787.748 23074786.634 23074787.488
+ 34.600 28.600
+ -22866494.840 7 -17818033.349 7 20462150.824 20462146.839 20462150.044
+ 47.700 45.000
+ -3883030.405 4 -3025732.245 3 23653560.794 23653560.540 23653559.592
+ 29.000 21.600
+ -7815019.318 5 -6089616.684 4 22974966.843 22974965.639 22974966.492
+ 33.800 29.700
+ -5951649.938 4 -4637642.238 3 23499793.290 23499791.573 23499793.179
+ 29.700 23.800
+ 06 1 2 22 44 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -9276068.022 5 -7228099.319 5 23047769.266 23047767.812 23047768.318
+ 35.600 30.400
+ -21797649.034 7 -16985167.909 7 20368831.783 20368830.247 20368830.524
+ 45.300 44.300
+ -7094621.020 5 -5528257.916 5 23090661.822 23090660.565 23090661.028
+ 34.300 30.400
+ -22828304.982 7 -17788275.017 7 20469417.950 20469414.081 20469417.177
+ 47.700 45.000
+ -3795480.795 4 -2957511.787 3 23670221.339 23670220.466 23670220.133
+ 29.700 21.600
+ -7762682.633 5 -6048834.871 5 22984926.033 22984925.316 22984925.781
+ 32.600 30.200
+ -5896910.980 5 -4594988.503 4 23510209.805 23510207.912 23510209.700
+ 30.800 24.200
+ 06 1 2 22 44 30.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -9363601.973 5 -7296307.554 5 23031111.428 23031110.812 23031110.823
+ 34.900 31.100
+ -21840072.043 7 -17018224.786 7 20360758.961 20360757.330 20360757.793
+ 45.500 44.400
+ -7011085.157 5 -5463165.067 4 23106557.529 23106556.286 23106557.428
+ 34.700 29.000
+ -22789770.415 7 -17758248.071 7 20476750.742 20476746.807 20476750.075
+ 47.700 45.000
+ -3707727.476 4 -2889132.582 3 23686919.858 23686919.303 23686918.573
+ 29.900 19.900
+ -7709869.278 5 -6007681.623 4 22994976.141 22994975.470 22994975.820
+ 32.100 29.900
+ -5841631.057 5 -4551913.250 3 23520729.165 23520727.206 23520729.010
+ 30.100 22.100
+ 06 1 2 22 45 0.0000000 0 7G 6G10G 4G 2G 5G30G13
+ -9450883.513 5 -7364319.105 5 23014502.185 23014501.881 23014501.581
+ 34.600 31.800
+ -21881980.124 7 -17050880.420 7 20352784.043 20352782.567 20352782.829
+ 45.300 44.600
+ -6927429.442 5 -5397978.801 4 23122477.193 23122475.435 23122476.447
+ 33.800 28.100
+ -22750891.221 7 -17727952.589 7 20484149.224 20484145.290 20484148.490
+ 47.600 44.800
+ -3619773.480 5 -2820597.009 3 23703657.276 23703656.435 23703656.049
+ 30.600 21.600
+ -7656581.811 5 -5966158.930 4 23005116.734 23005115.728 23005116.355
+ 33.800 29.200
+ -5785811.641 5 -4508417.567 3 23531351.659 23531349.145 23531351.290
+ 30.800 22.600
+ 06 1 2 22 45 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -9537910.484 5 -7432132.267 5 22997941.621 22997940.980 22997941.005
+ 34.100 31.800
+ -21923372.873 7 -17083134.491 7 20344907.197 20344905.830 20344906.025
+ 45.200 44.800
+ -6843654.357 5 -5332699.513 4 23138418.649 23138417.689 23138418.255
+ 33.900 29.000
+ -239636.210 2 -186729.572 3 24276041.844 24276043.647 24276041.366
+ 16.100 21.100
+ -22711667.883 7 -17697388.936 7 20491613.129 20491609.325 20491612.462
+ 47.600 44.700
+ -3531621.978 5 -2751907.537 3 23720432.245 23720431.293 23720430.887
+ 30.800 20.500
+ -7602822.667 5 -5924268.676 4 23015346.839 23015345.774 23015346.428
+ 33.500 28.600
+ -5729454.933 4 -4464503.267 4 23542076.315 23542073.766 23542075.874
+ 29.900 24.900
+ 06 1 2 22 46 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -9624680.527 5 -7499745.249 5 22981429.711 22981429.293 22981429.005
+ 34.900 32.600
+ -21964250.209 7 -17114986.947 7 20337128.638 20337127.144 20337127.429
+ 45.400 44.900
+ -6759760.698 5 -5267327.843 4 23154382.975 23154381.955 23154382.757
+ 34.300 27.900
+ -351927.731 3 -274229.355 2 24254674.280 24254674.713 24254673.735
+ 19.900 17.800
+ -22672100.685 7 -17666557.342 7 20499142.479 20499138.636 20499141.777
+ 47.600 44.600
+ -3443276.023 5 -2683066.553 3 23737243.414 23737243.172 23737242.327
+ 30.800 23.000
+ -7548594.330 5 -5882012.834 4 23025665.603 23025665.181 23025665.406
+ 32.300 29.500
+ -5672562.933 4 -4420171.837 3 23552901.534 23552899.941 23552901.198
+ 28.800 23.000
+ 06 1 2 22 46 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -9711191.278 5 -7567156.178 5 22964967.172 22964966.792 22964966.684
+ 35.100 32.700
+ -22004611.572 7 -17146437.341 7 20329447.900 20329446.582 20329446.750
+ 45.200 44.800
+ -6675748.975 5 -5201864.177 4 23170370.366 23170368.628 23170369.537
+ 33.200 28.100
+ -464191.283 3 -361707.423 2 24233311.374 24233311.392 24233310.544
+ 20.500 17.000
+ -22632190.186 7 -17635458.244 7 20506737.496 20506733.362 20506736.650
+ 47.800 44.600
+ -3354738.637 4 -2614076.407 4 23754091.477 23754091.436 23754090.267
+ 28.600 25.600
+ -7493899.302 5 -5839393.357 5 23036073.560 23036073.198 23036073.346
+ 30.800 30.200
+ -5615137.557 5 -4375424.785 3 23563829.700 23563827.409 23563829.256
+ 30.600 23.400
+ 06 1 2 22 47 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -9797440.325 6 -7634363.185 5 22948555.235 22948554.255 22948554.218
+ 36.000 33.100
+ -22044456.499 7 -17177485.318 7 20321865.811 20321864.279 20321864.554
+ 45.100 44.700
+ -6591619.726 5 -5136308.935 4 23186378.854 23186378.637 23186378.779
+ 34.000 29.500
+ -576423.894 3 -449161.350 2 24211954.655 24211954.595 24211953.737
+ 21.100 17.800
+ -22591936.946 7 -17604092.077 7 20514397.147 20514393.322 20514396.456
+ 47.700 44.600
+ -3266012.882 4 -2544939.480 4 23770975.577 23770975.245 23770974.171
+ 27.600 25.600
+ -7438740.056 5 -5796412.159 5 23046570.063 23046569.521 23046569.752
+ 30.400 30.100
+ -5557180.831 5 -4330263.707 3 23574858.409 23574856.463 23574858.164
+ 31.000 23.000
+ 06 1 2 22 47 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -9883425.502 5 -7701364.580 5 22932192.572 22932191.355 22932191.772
+ 35.900 32.100
+ -22083784.503 7 -17208130.501 7 20314381.876 20314380.516 20314380.659
+ 45.300 44.900
+ -6507373.725 5 -5070662.720 4 23202411.659 23202409.651 23202410.956
+ 33.500 27.900
+ -688622.975 3 -536589.140 2 24190603.017 24190603.299 24190602.114
+ 18.600 17.800
+ -22551341.412 7 -17572459.183 7 20522122.317 20522118.343 20522121.529
+ 47.700 44.500
+ -3177101.819 4 -2475658.177 4 23787894.876 23787894.713 23787893.945
+ 28.100 24.900
+ -7383119.113 5 -5753071.202 4 23057154.435 23057153.983 23057154.201
+ 31.300 29.900
+ -5498695.023 4 -4284690.313 3 23585987.976 23585985.512 23585987.472
+ 29.000 21.600
+ 06 1 2 22 48 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -9969144.402 5 -7768158.488 5 22915880.382 22915879.480 22915879.539
+ 35.600 31.100
+ -22122595.286 7 -17238372.655 7 20306996.277 20306995.032 20306995.158
+ 45.300 44.900
+ -6423011.475 5 -5004925.897 4 23218464.247 23218463.032 23218463.973
+ 33.100 28.100
+ -800785.300 3 -623988.292 2 24169259.236 24169259.923 24169258.593
+ 19.300 16.100
+ -22510403.907 7 -17540559.814 7 20529912.561 20529908.443 20529911.670
+ 47.600 44.400
+ -3088008.668 4 -2406234.959 4 23804848.722 23804848.408 23804847.496
+ 26.200 24.200
+ -7327039.029 5 -5709372.453 4 23067826.415 23067825.468 23067826.042
+ 33.000 28.400
+ -5439682.014 4 -4238706.165 3 23597216.720 23597215.392 23597216.560
+ 28.600 22.600
+ 06 1 2 22 48 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10054594.858 6 -7834743.224 5 22899620.074 22899618.702 22899619.092
+ 36.000 31.600
+ -22160888.688 7 -17268211.653 7 20299709.304 20299707.934 20299708.135
+ 45.200 45.000
+ -6338533.592 5 -4939098.980 4 23234540.337 23234538.962 23234539.753
+ 33.200 27.600
+ -912908.123 3 -711356.735 1 24147922.856 24147923.167 24147922.340
+ 22.100 6.500
+ -22469124.660 7 -17508394.158 7 20537767.476 20537763.605 20537766.716
+ 47.600 44.300
+ -2998736.368 4 -2336672.201 3 23821836.069 23821836.525 23821834.938
+ 24.200 22.600
+ -7270502.471 5 -5665317.994 4 23078584.784 23078583.793 23078584.663
+ 32.800 25.600
+ -5380143.681 4 -4192312.630 3 23608546.770 23608545.231 23608546.513
+ 28.400 22.600
+ 06 1 2 22 49 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10139774.485 6 -7901116.918 5 22883410.420 22883409.619 22883410.035
+ 36.500 32.300
+ -22198664.400 7 -17297647.258 7 20292520.933 20292519.386 20292519.792
+ 45.300 44.800
+ -6253940.707 5 -4873182.461 4 23250637.430 23250636.275 23250637.089
+ 33.100 28.100
+ -1024988.404 3 -798691.989 3 24126596.208 24126595.743 24126594.597
+ 21.100 19.300
+ -22427504.387 7 -17475962.764 7 20545687.829 20545683.717 20545686.948
+ 47.700 44.400
+ -2909287.999 4 -2266972.227 4 23838858.195 23838858.057 23838856.923
+ 26.200 24.200
+ -7213511.913 5 -5620909.753 3 23089429.685 23089428.466 23089429.365
+ 31.800 23.800
+ -5320082.126 4 -4145511.412 3 23619976.821 23619974.491 23619976.452
+ 29.900 23.400
+ 06 1 2 22 49 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10224680.810 5 -7967277.670 5 22867253.868 22867252.351 22867252.689
+ 35.900 32.000
+ -22235922.147 7 -17326679.253 7 20285430.842 20285429.427 20285429.793
+ 45.200 44.800
+ -6169233.451 5 -4807176.831 4 23266756.466 23266756.080 23266756.373
+ 32.800 28.800
+ -1137023.333 3 -885991.876 3 24105275.836 24105275.803 24105275.232
+ 20.500 19.300
+ -22385543.421 7 -17443265.896 7 20553672.853 20553668.724 20553671.972
+ 47.700 44.200
+ -2819666.722 4 -2197137.489 3 23855912.195 23855912.398 23855911.414
+ 29.200 23.800
+ -7156070.013 5 -5576149.819 3 23100360.562 23100358.929 23100360.211
+ 31.000 22.100
+ -5259499.274 5 -4098303.971 3 23631505.581 23631503.154 23631505.279
+ 31.100 23.800
+ 06 1 2 22 50 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10309311.702 5 -8033223.792 5 22851148.302 22851147.651 22851147.661
+ 35.800 32.100
+ -22272661.552 7 -17355307.345 7 20278439.606 20278438.269 20278438.485
+ 45.300 45.100
+ -6084412.305 5 -4741082.457 4 23282898.353 23282896.680 23282897.537
+ 33.200 28.100
+ -1249009.911 2 -973254.045 3 24083964.745 24083965.509 24083964.195
+ 17.800 21.600
+ -22343242.050 7 -17410303.784 7 20561722.541 20561718.417 20561721.737
+ 47.900 44.300
+ -2729875.626 4 -2127170.415 3 23872999.279 23872999.195 23872998.097
+ 28.800 23.400
+ -7098179.283 5 -5531040.143 4 23111376.866 23111375.074 23111376.706
+ 30.600 24.200
+ -5198397.464 5 -4050692.161 3 23643132.711 23643130.332 23643132.425
+ 30.200 22.600
+ 06 1 2 22 50 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10393664.626 6 -8098953.315 5 22835096.699 22835096.054 22835095.954
+ 36.200 32.800
+ -22308882.341 7 -17383531.320 7 20271547.033 20271545.641 20271545.886
+ 45.300 45.100
+ -5999477.930 5 -4674899.835 4 23299059.831 23299058.875 23299059.741
+ 32.300 27.100
+ -1360945.190 3 -1060476.246 3 24062664.277 24062664.615 24062663.509
+ 21.100 22.600
+ -22300600.874 8 -17377076.886 7 20569836.752 20569832.757 20569835.969
+ 48.100 44.400
+ -2639917.678 4 -2057073.348 4 23890117.616 23890117.480 23890116.383
+ 28.400 24.200
+ -7039842.323 4 -5485582.795 4 23122478.033 23122476.549 23122477.523
+ 29.700 25.600
+ -5136778.731 4 -4002677.537 4 23654858.025 23654856.681 23654857.764
+ 28.100 24.200
+ 06 1 2 22 51 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10477737.406 5 -8164464.527 5 22819097.997 22819097.514 22819097.336
+ 35.800 33.400
+ -22344584.335 7 -17411351.039 7 20264753.383 20264751.803 20264752.193
+ 45.300 45.300
+ -5914430.913 5 -4608629.432 4 23315244.737 23315243.028 23315243.937
+ 32.100 27.900
+ -1472826.346 3 -1147656.290 2 24041374.015 24041374.147 24041373.385
+ 21.600 16.100
+ -22257620.450 7 -17343585.647 7 20578015.537 20578011.654 20578014.858
+ 47.800 44.300
+ -2549795.948 4 -1986848.678 4 23907266.626 23907267.346 23907266.012
+ 27.100 24.600
+ -6981061.927 5 -5439779.918 4 23133663.418 23133662.296 23133663.098
+ 30.400 28.100
+ -5074645.374 4 -3954261.967 3 23666681.395 23666679.578 23666680.965
+ 28.600 22.600
+ 06 1 2 22 51 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10561527.843 6 -8229755.745 5 22803153.692 22803152.848 22803152.707
+ 36.300 33.500
+ -22379767.374 7 -17438766.378 7 20258058.243 20258056.682 20258057.029
+ 45.500 45.200
+ -5829271.866 5 -4542271.757 4 23331449.461 23331448.451 23331449.097
+ 32.800 28.100
+ -1584650.402 3 -1234791.855 2 24020094.495 24020094.251 24020093.681
+ 21.100 17.800
+ -22214301.129 7 -17309830.330 7 20586258.743 20586254.923 20586257.975
+ 47.700 44.300
+ -2459513.582 4 -1916498.830 4 23924448.024 23924447.806 23924446.603
+ 25.900 24.900
+ -6921840.576 5 -5393633.443 4 23144932.630 23144931.917 23144932.460
+ 31.600 29.500
+ -5011999.138 4 -3905446.707 3 23678602.163 23678601.149 23678601.948
+ 27.400 22.100
+ 06 1 2 22 52 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10645033.340 6 -8294824.941 5 22787262.786 22787262.204 22787262.170
+ 36.800 33.100
+ -22414431.102 7 -17465777.059 7 20251461.801 20251460.380 20251460.559
+ 45.200 45.200
+ -5744001.202 5 -4475827.108 4 23347675.676 23347674.812 23347675.288
+ 32.400 27.100
+ -1696414.440 3 -1321880.624 3 23998826.136 23998826.431 23998825.784
+ 20.500 19.900
+ -22170643.300 7 -17275811.240 7 20594566.689 20594562.849 20594565.968
+ 47.700 44.200
+ -2369073.611 3 -1846026.174 3 23941657.402 23941657.440 23941656.405
+ 23.800 23.800
+ -6862181.009 5 -5347145.484 4 23156285.899 23156284.967 23156285.512
+ 33.400 29.500
+ -4948842.546 4 -3856233.787 3 23690621.041 23690619.309 23690620.798
+ 29.500 21.100
+ 06 1 2 22 52 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10728251.703 6 -8359670.390 5 22771426.792 22771426.274 22771426.004
+ 36.200 33.200
+ -22448575.435 7 -17492383.017 7 20244964.126 20244962.886 20244962.969
+ 45.200 45.200
+ -5658619.668 5 -4409296.043 4 23363923.282 23363922.291 23363923.043
+ 32.800 28.100
+ -1808115.529 3 -1408920.298 2 23977569.057 23977570.691 23977569.795
+ 19.900 17.000
+ -22126647.419 7 -17241528.731 7 20602938.849 20602934.981 20602938.105
+ 47.500 44.100
+ -2278479.123 4 -1775433.088 3 23958897.350 23958897.489 23958895.975
+ 25.600 21.600
+ -6802085.909 5 -5300318.148 5 23167721.796 23167720.984 23167721.385
+ 33.400 30.800
+ -4885177.720 4 -3806624.830 3 23702736.154 23702734.541 23702735.764
+ 29.000 21.600
+ 06 1 2 22 53 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10811180.735 6 -8424290.390 5 22755645.908 22755645.095 22755645.148
+ 36.600 33.100
+ -22482200.385 7 -17518584.261 7 20238565.618 20238564.273 20238564.459
+ 45.200 45.300
+ -5573127.822 5 -4342679.038 4 23380191.816 23380191.172 23380191.559
+ 32.400 27.600
+ -1919750.705 3 -1495908.655 3 23956325.947 23956326.623 23956326.204
+ 20.500 19.900
+ -22082314.034 7 -17206983.239 7 20611375.090 20611371.317 20611374.338
+ 47.800 44.200
+ -2187733.070 4 -1704721.903 3 23976165.654 23976165.319 23976164.493
+ 27.900 19.300
+ -6741557.875 5 -5253153.457 4 23179239.742 23179239.037 23179239.439
+ 33.400 29.500
+ -4821006.661 4 -3756621.382 3 23714947.644 23714945.434 23714947.280
+ 29.700 22.100
+ 06 1 2 22 53 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10893817.884 6 -8488682.956 5 22739920.272 22739919.674 22739919.611
+ 36.600 32.400
+ -22515305.559 7 -17544380.486 7 20232266.086 20232264.502 20232264.907
+ 45.400 45.300
+ -5487526.356 5 -4275976.596 4 23396481.598 23396480.296 23396480.993
+ 32.300 26.500
+ -2031317.027 3 -1582843.349 3 23935095.746 23935096.739 23935095.525
+ 22.100 22.600
+ -22037643.404 7 -17172174.953 7 20619875.694 20619871.884 20619874.942
+ 47.600 44.100
+ -2096838.702 4 -1633895.152 3 23993462.509 23993462.063 23993461.443
+ 27.600 19.300
+ -6680599.684 5 -5205653.590 4 23190839.705 23190839.151 23190839.455
+ 33.600 29.500
+ -4756331.734 4 -3706225.360 3 23727254.791 23727252.387 23727254.468
+ 28.800 21.100
+ 06 1 2 22 54 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -10976160.915 6 -8552846.336 5 22724251.311 22724250.305 22724250.510
+ 37.300 33.100
+ -22547890.966 7 -17569771.703 7 20226065.256 20226063.651 20226064.051
+ 45.300 45.300
+ -5401815.655 5 -4209189.053 4 23412791.241 23412790.415 23412790.829
+ 31.300 26.500
+ -2142811.580 3 -1669722.094 3 23913881.045 23913879.067 23913879.634
+ 21.100 20.500
+ -21992636.220 7 -17137104.424 7 20628440.426 20628436.331 20628439.572
+ 47.600 43.900
+ -2005798.958 4 -1562955.131 2 24010786.324 24010786.218 24010785.399
+ 26.200 12.600
+ -6619213.986 5 -5157820.592 4 23202520.977 23202520.414 23202520.865
+ 32.700 29.000
+ -4691155.177 4 -3655438.430 2 23739657.408 23739654.974 23739657.175
+ 28.600 17.800
+ 06 1 2 22 54 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11058207.453 6 -8616778.675 5 22708638.093 22708637.847 22708637.548
+ 37.600 34.400
+ -22579956.354 7 -17594757.706 7 20219963.145 20219961.801 20219962.033
+ 45.200 45.400
+ -5315996.404 5 -4142316.925 4 23429121.998 23429121.290 23429121.875
+ 31.500 25.900
+ -2254231.420 3 -1756542.714 3 23892677.641 23892676.168 23892677.061
+ 23.400 18.600
+ -21947292.855 7 -17101771.928 7 20637068.783 20637064.925 20637068.062
+ 47.700 43.700
+ -1914616.885 4 -1491904.203 3 24028137.858 24028137.377 24028136.667
+ 27.600 19.300
+ -6557403.582 5 -5109656.656 4 23214282.975 23214282.627 23214282.830
+ 31.600 27.600
+ -4625479.154 4 -3604262.311 3 23752155.619 23752152.551 23752155.127
+ 28.400 21.100
+ 06 1 2 22 55 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11139955.256 6 -8680478.230 5 22693082.220 22693081.519 22693081.395
+ 37.400 34.300
+ -22611501.705 7 -17619338.482 7 20213960.216 20213958.991 20213959.155
+ 45.100 45.400
+ -5230069.097 5 -4075360.569 4 23445474.471 23445473.135 23445473.877
+ 32.000 27.600
+ -2365573.450 4 -1843302.666 3 23871489.949 23871489.004 23871489.276
+ 25.300 20.500
+ -21901613.495 7 -17066177.620 7 20645761.340 20645757.422 20645760.561
+ 47.600 43.600
+ -1823295.636 4 -1420744.837 2 24045515.938 24045515.639 24045514.868
+ 26.800 17.000
+ -6495171.126 4 -5061163.844 4 23226125.802 23226124.981 23226125.308
+ 29.000 24.900
+ -4559305.977 5 -3552698.806 4 23764747.800 23764745.875 23764747.541
+ 30.400 24.200
+ 06 1 2 22 55 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11221402.009 6 -8743943.216 5 22677582.950 22677582.541 22677582.527
+ 37.500 33.800
+ -22642527.098 7 -17643514.102 7 20208056.649 20208055.036 20208055.346
+ 45.100 45.500
+ -5144034.400 5 -4008320.556 4 23461844.742 23461844.918 23461844.906
+ 31.000 26.200
+ -2476834.818 4 -1929999.774 3 23850317.602 23850316.498 23850316.750
+ 25.600 19.300
+ -21855598.783 7 -17030322.001 7 20654517.877 20654513.680 20654517.011
+ 47.600 43.700
+ -1731838.110 4 -1349479.241 3 24062919.948 24062919.578 24062918.645
+ 24.900 20.500
+ -6432519.381 4 -5012344.307 4 23238047.674 23238047.301 23238047.411
+ 27.900 24.200
+ -4492638.053 4 -3500749.785 3 23777434.106 23777431.824 23777433.766
+ 29.000 21.100
+ 06 1 2 22 56 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11302545.216 6 -8807171.669 5 22662142.215 22662141.441 22662141.396
+ 37.700 33.500
+ -22673032.390 7 -17667284.451 7 20202251.494 20202250.061 20202250.352
+ 45.000 45.500
+ -5057892.846 5 -3941197.269 4 23478238.444 23478236.708 23478237.699
+ 31.500 25.300
+ -2588012.397 4 -2016631.594 2 23829160.403 23829160.032 23829159.966
+ 24.600 17.000
+ -21809249.271 7 -16994205.496 7 20663337.645 20663333.669 20663336.904
+ 47.400 43.300
+ -1640247.537 4 -1278109.992 3 24080348.655 24080348.889 24080347.792
+ 27.100 21.100
+ -6369450.995 4 -4963200.134 3 23250049.117 23250048.639 23250048.773
+ 25.600 22.600
+ -4425477.350 4 -3448416.749 3 23790214.815 23790212.434 23790214.325
+ 29.700 21.100
+ 06 1 2 22 56 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11383382.707 6 -8870161.903 5 22646759.584 22646758.461 22646758.727
+ 37.700 33.100
+ -22703017.444 7 -17690649.416 7 20196545.507 20196544.063 20196544.326
+ 45.100 45.500
+ -4971645.089 5 -3873991.240 4 23494649.262 23494649.666 23494649.811
+ 30.800 26.200
+ -2699103.560 3 -2103196.102 3 23808019.828 23808020.405 23808019.581
+ 22.600 19.900
+ -21762565.411 7 -16957828.459 7 20672221.164 20672217.371 20672220.510
+ 47.700 43.200
+ -1548526.860 4 -1206639.335 3 24097803.175 24097802.524 24097801.630
+ 25.300 22.600
+ -6305968.898 4 -4913733.551 3 23262128.951 23262128.987 23262128.906
+ 24.200 19.900
+ -4357826.304 4 -3395701.643 3 23803087.671 23803086.151 23803087.503
+ 27.900 21.600
+ 06 1 2 22 57 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11463912.085 6 -8932912.048 5 22631435.034 22631434.042 22631434.389
+ 37.600 32.700
+ -22732481.993 7 -17713608.792 7 20190938.576 20190937.121 20190937.399
+ 44.800 45.600
+ -4885291.584 5 -3806702.807 4 23511083.381 23511081.382 23511082.641
+ 31.600 24.200
+ -2810105.195 3 -2189690.829 3 23786896.174 23786897.084 23786896.499
+ 20.500 19.300
+ -21715547.572 7 -16921191.178 7 20681168.627 20681164.605 20681167.725
+ 47.900 43.500
+ -1456679.153 4 -1135069.771 3 24115280.825 24115281.026 24115279.705
+ 25.900 22.100
+ -6242075.852 3 -4863946.776 3 23274287.975 23274287.260 23274287.524
+ 20.500 18.600
+ -4289687.263 4 -3342606.239 2 23816054.382 23816052.051 23816053.866
+ 28.100 17.800
+ 06 1 2 22 57 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11544130.954 6 -8995420.247 5 22616170.014 22616168.844 22616169.220
+ 37.600 32.400
+ -22761426.273 7 -17736162.770 7 20185430.504 20185429.099 20185429.346
+ 44.700 45.500
+ -4798833.089 5 -3739332.575 4 23527535.385 23527534.500 23527535.333
+ 31.800 27.100
+ -2921014.199 3 -2276113.369 4 23765791.668 23765792.656 23765791.732
+ 23.400 24.600
+ -21668196.386 7 -16884294.147 7 20690179.243 20690175.285 20690178.490
+ 47.800 43.500
+ -1364707.471 4 -1063403.559 3 24132782.320 24132782.132 24132781.364
+ 25.900 21.600
+ -6177774.485 3 -4813841.835 2 23286523.433 23286523.383 23286523.498
+ 19.300 12.600
+ -4221062.330 4 -3289132.263 3 23829113.363 23829110.484 23829112.921
+ 28.100 18.600
+ 06 1 2 22 58 0.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11624037.102 6 -9057684.742 5 22600964.381 22600963.590 22600963.715
+ 38.100 34.400
+ -22789850.435 7 -17758311.453 7 20180021.598 20180020.163 20180020.514
+ 44.900 45.500
+ -4712269.867 5 -3671880.729 4 23544008.144 23544006.660 23544007.518
+ 30.800 25.600
+ -3031827.805 3 -2362461.556 4 23744704.442 23744705.406 23744704.230
+ 21.600 25.300
+ -21620512.349 7 -16847137.754 7 20699252.928 20699249.228 20699252.260
+ 47.700 43.400
+ -1272614.855 4 -991643.138 3 24150307.313 24150306.871 24150306.052
+ 27.400 21.100
+ -6113067.894 3 -4763421.113 2 23298837.506 23298836.826 23298836.923
+ 18.600 13.900
+ -4151954.128 4 -3235281.710 3 23842264.088 23842262.419 23842263.648
+ 28.600 21.100
+ 06 1 2 22 58 30.0000000 0 8G 6G10G 4G29G 2G 5G30G13
+ -11703628.133 6 -9119703.704 5 22585818.969 22585817.915 22585818.152
+ 38.900 34.400
+ -22817754.282 7 -17780054.702 7 20174711.827 20174710.230 20174710.591
+ 44.900 45.600
+ -4625602.617 5 -3604347.828 4 23560500.129 23560499.165 23560499.733
+ 30.600 25.600
+ -3142542.775 3 -2448732.913 4 23723634.669 23723636.852 23723635.710
+ 20.500 25.600
+ -21572496.000 7 -16809722.415 7 20708390.150 20708386.386 207083